pax_global_header00006660000000000000000000000064132337003130014505gustar00rootroot0000000000000052 comment=63e6063bbf6354f4138422f7ea63b174ebf71d83 pymvpa2-2.6.4/000077500000000000000000000000001323370031300131145ustar00rootroot00000000000000pymvpa2-2.6.4/.gitignore000066400000000000000000000012531323370031300151050ustar00rootroot00000000000000*,cover *-stamp *.bak *.kcache *.kcache.* *.prof *.pstats *.py[cod] *.swp *.o *.a *.valgrind.out* .pc *~ .coverage .nfs* /.idea /.emacs.local /coverage /logs /temp /trash /debugs \#* \.\#* /build /build-arch* data/haxby8x6 debian/*.debhelper debian/*.substvars debian/files debian/python-mvpa2/* mvpa2/*/*/*.dylib mvpa2/*/*/*.so profile.out svmc_wrap.cpp tests/.noseids tools/codeswarm tools/pdfbook *_flymake.py .ropeproject logs nobackup_* doc/examples/match_distribution_report doc/examples/match_distribution_report.pdf .eric4project doc/source/examples doc/source/cmdline/ doc/source/generated doc/api /datadb _nno .DS_Store .project .pydevproject searchlight_surfnew.py /venv* pymvpa2-2.6.4/.mailmap000066400000000000000000000007741323370031300145450ustar00rootroot00000000000000Yaroslav Halchenko Yaroslav Halchenko Per B. Sederberg Per B. Sederberg Scott Gorlin Scott Gorlin Swaroop Guntupalli Swaroop Guntupalli Matteo Visconti dOC Matteo Visconti di Oleggio Castello Richard Dinga dinga92 pymvpa2-2.6.4/.travis.yml000066400000000000000000000074411323370031300152330ustar00rootroot00000000000000# vim ft=yaml # travis-ci.org definition for PyMVPA build (based on nipype configuration # which in turn was based on nipy) # # We pretend to be erlang because we need can't use the python support in # travis-ci; it uses virtualenvs, they do not have numpy, scipy, matplotlib, # and it is impractical to build them language: erlang cache: - apt env: global: - PY=python PYSUF='' PYPI=0 COVERAGE="coverage run --rcfile=.travis_coveragerc" # - PYTHON=python3 PYSUF=3 : python3-numpy not currently available matrix: - PYTHON=$PY DOCTESTS=--with-doctest PYPI=1 - PYTHON="$PY -O" DOCTESTS=--with-doctest # Doctests are unguarded against absent externals, so no --with-doctest for them - PYTHONPATH=mvpa2/tests/badexternals # Some DEBUG targets are excluded since either their output could # not be redirected or they augment output in the doctests - MVPA_DEBUG=ENFORCE_CA_ENABLED DOCTESTS=--with-doctest # So we get duecredit report printed out, and identical to original run so we could compare # time impact - PYTHON=$PY DOCTESTS=--with-doctest DUECREDIT_ENABLE=yes before_install: # to prevent IPv6 being used for APT - sudo bash -c "echo 'Acquire::ForceIPv4 \"true\";' > /etc/apt/apt.conf.d/99force-ipv4" # The ultimate one-liner setup for NeuroDebian repository - bash <(wget -q -O- http://neuro.debian.net/_files/neurodebian-travis.sh) # - sudo apt-get install $PYTHON-dev - travis_retry sudo apt-get install swig $PY-numpy $PY-scipy $PY-matplotlib $PY-h5py $PY-nose $PY-nibabel $PY-mock # Optional Python modules # Note: it looks like the line could be truncated, thus spreading them through multiple lines - travis_retry sudo apt-get install $PY-psutil $PY-sklearn - travis_retry sudo pip install -e git://github.com/mdp-toolkit/mdp-toolkit#egg=MDP - travis_retry sudo apt-get install liblapack-dev $PY-statsmodels $PY-reportlab ipython - travis_retry sudo apt-get install $PY-pywt $PY-lxml $PY-pprocess $PY-nipy $PY-joblib - travis_retry sudo apt-get install python3-dev # for rudimentary testing of conversion # Very optional R interfaces via rpy2 - travis_retry sudo apt-get install $PY-rpy2 - mkdir -p $PWD/R-libs - echo "install.packages(c('energy', 'elasticnet'), '$PWD/R-libs', repos='http://cran.r-project.org')" | R --no-save install: - make - if [ ! -z "$COVERAGE" ]; then pip install --user -v coveralls codecov; fi - if [ ! -z "$DUECREDIT_ENABLE"]; then pip install --user -v duecredit; fi script: # Run only nonlabile tests - export MVPA_EXTERNALS_RAISE_EXCEPTION=off MVPA_MATPLOTLIB_BACKEND=agg - export MVPA_DEBUG_METRICS=all MVPA_DEBUG_OUTPUT=/dev/null - export MVPA_TESTS_LABILE=no MVPA_TESTS_VERBOSITY=2 MVPA_TESTS_WTF=1 - export PATH=$HOME/.local/bin:$PATH PYTHONPATH=.:$PYTHONPATH R_LIBS=$PWD/R-libs # Temp disable lars tests -- fails across the board but does not replicate locally - export MVPA_EXTERNALS_HAVE_LARS=no - export NOSETESTS=$(which nosetests) - eval $COVERAGE $NOSETESTS -v mvpa2 $DOCTESTS -s - make testsuite # test that all imports are available within the suite. adjust Makefile or suite.py to fix if fails # we cannot run those in badexternals "mode" - if [ ! -z "$COVERAGE" ] && [ "$DOCTESTS" = "--with-doctest" ]; then make coveragecmdline; fi - make build PYTHON=python3 after_success: - if [ ! -z "$COVERAGE" ]; then coveralls; codecov; fi deploy: provider: pypi distributions: sdist user: yarikoptic password: secure: mTxbioGS+sdfxnJRbAGZCxjWlaGJx+KqXPfYGESKcg6IVaSUM9D4CUhxgHHW88FYSnkmCvwuu57w7AAot9FyG6Q/1q656gluCbEJzfDJerSH1S06HqAEmjSPJvIEG/zwvPIUm3RPc+8j9XtedztM3aVWkqBHAzvUzEnsX1jJpic= on: tags: true branch: master repo: PyMVPA/PyMVPA condition: "$PYPI == 1 && $TRAVIS_TAG =~ ^upstream/.*" pymvpa2-2.6.4/.travis_coveragerc000066400000000000000000000002451323370031300166260ustar00rootroot00000000000000 [run] branch = True omit = /usr/* /home/travis/virtualenv/* */src/mdp/mdp/* [report] exclude_lines = pragma: no cover raise NotImplementedError pymvpa2-2.6.4/3rd/000077500000000000000000000000001323370031300136045ustar00rootroot00000000000000pymvpa2-2.6.4/3rd/libsvm/000077500000000000000000000000001323370031300151005ustar00rootroot00000000000000pymvpa2-2.6.4/3rd/libsvm/COPYRIGHT000066400000000000000000000027311323370031300163760ustar00rootroot00000000000000 Copyright (c) 2000-2012 Chih-Chung Chang and Chih-Jen Lin All rights reserved. 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 name of copyright holders nor the names of its 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 REGENTS 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. pymvpa2-2.6.4/3rd/libsvm/Makefile000066400000000000000000000005431323370031300165420ustar00rootroot00000000000000# Minimalistic makefile for libsvm LIB=libsvm.a MISC=svm.cpp LIBFLAGS=-fPIC CFLAGS=-Wall -O2 TDIR=../../build/libsvm all: prep $(LIB) prep: prep-stamp prep-stamp: mkdir -p $(TDIR) touch $@ .cpp.o: g++ $(CFLAGS) $(LIBFLAGS) -c $^ -o $(TDIR)/$(^:.cpp=.o) $(LIB): $(MISC:.cpp=.o) ar cur $(TDIR)/$@ $(TDIR)/$^ clean: rm -rf $(TDIR) rm -f *-stamp pymvpa2-2.6.4/3rd/libsvm/Makefile.win000066400000000000000000000005361323370031300173400ustar00rootroot00000000000000# Minimalistic makefile for libsvm LIB=libsvm.a MISC=svm.cpp LIBFLAGS= CFLAGS=-Wall -O2 TDIR=..\\..\\build\\libsvm all: prep $(LIB) prep: -@mkdir ..\\..\\build -@mkdir ..\\..\\build\\libsvm .cpp.o: g++ $(CFLAGS) $(LIBFLAGS) -c $^ -o $(TDIR)\\$(^:.cpp=.o) $(LIB): $(MISC:.cpp=.o) ar cur $(TDIR)\\$@ $(TDIR)\\$^ clean: -rmdir /S /Q $(TDIR) pymvpa2-2.6.4/3rd/libsvm/README000066400000000000000000000002611323370031300157570ustar00rootroot00000000000000This is a copy of LIBSVM 3.12. It is only here to be able to easily build a static lib for linking the LIBSVM python wrapper under windows (when building the binary installer). pymvpa2-2.6.4/3rd/libsvm/svm.cpp000066400000000000000000001736641323370031300164320ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include "svm.h" int libsvm_version = LIBSVM_VERSION; typedef float Qfloat; typedef signed char schar; #ifndef min template static inline T min(T x,T y) { return (x static inline T max(T x,T y) { return (x>y)?x:y; } #endif template static inline void swap(T& x, T& y) { T t=x; x=y; y=t; } template static inline void clone(T*& dst, S* src, int n) { dst = new T[n]; memcpy((void *)dst,(void *)src,sizeof(T)*n); } static inline double powi(double base, int times) { double tmp = base, ret = 1.0; for(int t=times; t>0; t/=2) { if(t%2==1) ret*=tmp; tmp = tmp * tmp; } return ret; } #define INF HUGE_VAL #define TAU 1e-12 #define Malloc(type,n) (type *)malloc((n)*sizeof(type)) static void print_string_stdout(const char *s) { fputs(s,stdout); fflush(stdout); } static void (*svm_print_string) (const char *) = &print_string_stdout; #if 1 static void info(const char *fmt,...) { char buf[BUFSIZ]; va_list ap; va_start(ap,fmt); vsprintf(buf,fmt,ap); va_end(ap); (*svm_print_string)(buf); } #else static void info(const char *fmt,...) {} #endif // // Kernel Cache // // l is the number of total data items // size is the cache size limit in bytes // class Cache { public: Cache(int l,long int size); ~Cache(); // request data [0,len) // return some position p where [p,len) need to be filled // (p >= len if nothing needs to be filled) int get_data(const int index, Qfloat **data, int len); void swap_index(int i, int j); private: int l; long int size; struct head_t { head_t *prev, *next; // a circular list Qfloat *data; int len; // data[0,len) is cached in this entry }; head_t *head; head_t lru_head; void lru_delete(head_t *h); void lru_insert(head_t *h); }; Cache::Cache(int l_,long int size_):l(l_),size(size_) { head = (head_t *)calloc(l,sizeof(head_t)); // initialized to 0 size /= sizeof(Qfloat); size -= l * sizeof(head_t) / sizeof(Qfloat); size = max(size, 2 * (long int) l); // cache must be large enough for two columns lru_head.next = lru_head.prev = &lru_head; } Cache::~Cache() { for(head_t *h = lru_head.next; h != &lru_head; h=h->next) free(h->data); free(head); } void Cache::lru_delete(head_t *h) { // delete from current location h->prev->next = h->next; h->next->prev = h->prev; } void Cache::lru_insert(head_t *h) { // insert to last position h->next = &lru_head; h->prev = lru_head.prev; h->prev->next = h; h->next->prev = h; } int Cache::get_data(const int index, Qfloat **data, int len) { head_t *h = &head[index]; if(h->len) lru_delete(h); int more = len - h->len; if(more > 0) { // free old space while(size < more) { head_t *old = lru_head.next; lru_delete(old); free(old->data); size += old->len; old->data = 0; old->len = 0; } // allocate new space h->data = (Qfloat *)realloc(h->data,sizeof(Qfloat)*len); size -= more; swap(h->len,len); } lru_insert(h); *data = h->data; return len; } void Cache::swap_index(int i, int j) { if(i==j) return; if(head[i].len) lru_delete(&head[i]); if(head[j].len) lru_delete(&head[j]); swap(head[i].data,head[j].data); swap(head[i].len,head[j].len); if(head[i].len) lru_insert(&head[i]); if(head[j].len) lru_insert(&head[j]); if(i>j) swap(i,j); for(head_t *h = lru_head.next; h!=&lru_head; h=h->next) { if(h->len > i) { if(h->len > j) swap(h->data[i],h->data[j]); else { // give up lru_delete(h); free(h->data); size += h->len; h->data = 0; h->len = 0; } } } } // // Kernel evaluation // // the static method k_function is for doing single kernel evaluation // the constructor of Kernel prepares to calculate the l*l kernel matrix // the member function get_Q is for getting one column from the Q Matrix // class QMatrix { public: virtual Qfloat *get_Q(int column, int len) const = 0; virtual double *get_QD() const = 0; virtual void swap_index(int i, int j) const = 0; virtual ~QMatrix() {} }; class Kernel: public QMatrix { public: Kernel(int l, svm_node * const * x, const svm_parameter& param); virtual ~Kernel(); static double k_function(const svm_node *x, const svm_node *y, const svm_parameter& param); virtual Qfloat *get_Q(int column, int len) const = 0; virtual double *get_QD() const = 0; virtual void swap_index(int i, int j) const // no so const... { swap(x[i],x[j]); if(x_square) swap(x_square[i],x_square[j]); } protected: double (Kernel::*kernel_function)(int i, int j) const; private: const svm_node **x; double *x_square; // svm_parameter const int kernel_type; const int degree; const double gamma; const double coef0; static double dot(const svm_node *px, const svm_node *py); double kernel_linear(int i, int j) const { return dot(x[i],x[j]); } double kernel_poly(int i, int j) const { return powi(gamma*dot(x[i],x[j])+coef0,degree); } double kernel_rbf(int i, int j) const { return exp(-gamma*(x_square[i]+x_square[j]-2*dot(x[i],x[j]))); } double kernel_sigmoid(int i, int j) const { return tanh(gamma*dot(x[i],x[j])+coef0); } double kernel_precomputed(int i, int j) const { return x[i][(int)(x[j][0].value)].value; } }; Kernel::Kernel(int l, svm_node * const * x_, const svm_parameter& param) :kernel_type(param.kernel_type), degree(param.degree), gamma(param.gamma), coef0(param.coef0) { switch(kernel_type) { case LINEAR: kernel_function = &Kernel::kernel_linear; break; case POLY: kernel_function = &Kernel::kernel_poly; break; case RBF: kernel_function = &Kernel::kernel_rbf; break; case SIGMOID: kernel_function = &Kernel::kernel_sigmoid; break; case PRECOMPUTED: kernel_function = &Kernel::kernel_precomputed; break; } clone(x,x_,l); if(kernel_type == RBF) { x_square = new double[l]; for(int i=0;iindex != -1 && py->index != -1) { if(px->index == py->index) { sum += px->value * py->value; ++px; ++py; } else { if(px->index > py->index) ++py; else ++px; } } return sum; } double Kernel::k_function(const svm_node *x, const svm_node *y, const svm_parameter& param) { switch(param.kernel_type) { case LINEAR: return dot(x,y); case POLY: return powi(param.gamma*dot(x,y)+param.coef0,param.degree); case RBF: { double sum = 0; while(x->index != -1 && y->index !=-1) { if(x->index == y->index) { double d = x->value - y->value; sum += d*d; ++x; ++y; } else { if(x->index > y->index) { sum += y->value * y->value; ++y; } else { sum += x->value * x->value; ++x; } } } while(x->index != -1) { sum += x->value * x->value; ++x; } while(y->index != -1) { sum += y->value * y->value; ++y; } return exp(-param.gamma*sum); } case SIGMOID: return tanh(param.gamma*dot(x,y)+param.coef0); case PRECOMPUTED: //x: test (validation), y: SV return x[(int)(y->value)].value; default: return 0; // Unreachable } } // An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918 // Solves: // // min 0.5(\alpha^T Q \alpha) + p^T \alpha // // y^T \alpha = \delta // y_i = +1 or -1 // 0 <= alpha_i <= Cp for y_i = 1 // 0 <= alpha_i <= Cn for y_i = -1 // // Given: // // Q, p, y, Cp, Cn, and an initial feasible point \alpha // l is the size of vectors and matrices // eps is the stopping tolerance // // solution will be put in \alpha, objective value will be put in obj // class Solver { public: Solver() {}; virtual ~Solver() {}; struct SolutionInfo { double obj; double rho; double upper_bound_p; double upper_bound_n; double r; // for Solver_NU }; void Solve(int l, const QMatrix& Q, const double *p_, const schar *y_, double *alpha_, double Cp, double Cn, double eps, SolutionInfo* si, int shrinking); protected: int active_size; schar *y; double *G; // gradient of objective function enum { LOWER_BOUND, UPPER_BOUND, FREE }; char *alpha_status; // LOWER_BOUND, UPPER_BOUND, FREE double *alpha; const QMatrix *Q; const double *QD; double eps; double Cp,Cn; double *p; int *active_set; double *G_bar; // gradient, if we treat free variables as 0 int l; bool unshrink; // XXX double get_C(int i) { return (y[i] > 0)? Cp : Cn; } void update_alpha_status(int i) { if(alpha[i] >= get_C(i)) alpha_status[i] = UPPER_BOUND; else if(alpha[i] <= 0) alpha_status[i] = LOWER_BOUND; else alpha_status[i] = FREE; } bool is_upper_bound(int i) { return alpha_status[i] == UPPER_BOUND; } bool is_lower_bound(int i) { return alpha_status[i] == LOWER_BOUND; } bool is_free(int i) { return alpha_status[i] == FREE; } void swap_index(int i, int j); void reconstruct_gradient(); virtual int select_working_set(int &i, int &j); virtual double calculate_rho(); virtual void do_shrinking(); private: bool be_shrunk(int i, double Gmax1, double Gmax2); }; void Solver::swap_index(int i, int j) { Q->swap_index(i,j); swap(y[i],y[j]); swap(G[i],G[j]); swap(alpha_status[i],alpha_status[j]); swap(alpha[i],alpha[j]); swap(p[i],p[j]); swap(active_set[i],active_set[j]); swap(G_bar[i],G_bar[j]); } void Solver::reconstruct_gradient() { // reconstruct inactive elements of G from G_bar and free variables if(active_size == l) return; int i,j; int nr_free = 0; for(j=active_size;j 2*active_size*(l-active_size)) { for(i=active_size;iget_Q(i,active_size); for(j=0;jget_Q(i,l); double alpha_i = alpha[i]; for(j=active_size;jl = l; this->Q = &Q; QD=Q.get_QD(); clone(p, p_,l); clone(y, y_,l); clone(alpha,alpha_,l); this->Cp = Cp; this->Cn = Cn; this->eps = eps; unshrink = false; // initialize alpha_status { alpha_status = new char[l]; for(int i=0;iINT_MAX/100 ? INT_MAX : 100*l); int counter = min(l,1000)+1; while(iter < max_iter) { // show progress and do shrinking if(--counter == 0) { counter = min(l,1000); if(shrinking) do_shrinking(); info("."); } int i,j; if(select_working_set(i,j)!=0) { // reconstruct the whole gradient reconstruct_gradient(); // reset active set size and check active_size = l; info("*"); if(select_working_set(i,j)!=0) break; else counter = 1; // do shrinking next iteration } ++iter; // update alpha[i] and alpha[j], handle bounds carefully const Qfloat *Q_i = Q.get_Q(i,active_size); const Qfloat *Q_j = Q.get_Q(j,active_size); double C_i = get_C(i); double C_j = get_C(j); double old_alpha_i = alpha[i]; double old_alpha_j = alpha[j]; if(y[i]!=y[j]) { double quad_coef = QD[i]+QD[j]+2*Q_i[j]; if (quad_coef <= 0) quad_coef = TAU; double delta = (-G[i]-G[j])/quad_coef; double diff = alpha[i] - alpha[j]; alpha[i] += delta; alpha[j] += delta; if(diff > 0) { if(alpha[j] < 0) { alpha[j] = 0; alpha[i] = diff; } } else { if(alpha[i] < 0) { alpha[i] = 0; alpha[j] = -diff; } } if(diff > C_i - C_j) { if(alpha[i] > C_i) { alpha[i] = C_i; alpha[j] = C_i - diff; } } else { if(alpha[j] > C_j) { alpha[j] = C_j; alpha[i] = C_j + diff; } } } else { double quad_coef = QD[i]+QD[j]-2*Q_i[j]; if (quad_coef <= 0) quad_coef = TAU; double delta = (G[i]-G[j])/quad_coef; double sum = alpha[i] + alpha[j]; alpha[i] -= delta; alpha[j] += delta; if(sum > C_i) { if(alpha[i] > C_i) { alpha[i] = C_i; alpha[j] = sum - C_i; } } else { if(alpha[j] < 0) { alpha[j] = 0; alpha[i] = sum; } } if(sum > C_j) { if(alpha[j] > C_j) { alpha[j] = C_j; alpha[i] = sum - C_j; } } else { if(alpha[i] < 0) { alpha[i] = 0; alpha[j] = sum; } } } // update G double delta_alpha_i = alpha[i] - old_alpha_i; double delta_alpha_j = alpha[j] - old_alpha_j; for(int k=0;k= max_iter) { if(active_size < l) { // reconstruct the whole gradient to calculate objective value reconstruct_gradient(); active_size = l; info("*"); } info("\nWARNING: reaching max number of iterations"); } // calculate rho si->rho = calculate_rho(); // calculate objective value { double v = 0; int i; for(i=0;iobj = v/2; } // put back the solution { for(int i=0;iupper_bound_p = Cp; si->upper_bound_n = Cn; info("\noptimization finished, #iter = %d\n",iter); delete[] p; delete[] y; delete[] alpha; delete[] alpha_status; delete[] active_set; delete[] G; delete[] G_bar; } // return 1 if already optimal, return 0 otherwise int Solver::select_working_set(int &out_i, int &out_j) { // return i,j such that // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) // j: minimizes the decrease of obj value // (if quadratic coefficeint <= 0, replace it with tau) // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) double Gmax = -INF; double Gmax2 = -INF; int Gmax_idx = -1; int Gmin_idx = -1; double obj_diff_min = INF; for(int t=0;t= Gmax) { Gmax = -G[t]; Gmax_idx = t; } } else { if(!is_lower_bound(t)) if(G[t] >= Gmax) { Gmax = G[t]; Gmax_idx = t; } } int i = Gmax_idx; const Qfloat *Q_i = NULL; if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1 Q_i = Q->get_Q(i,active_size); for(int j=0;j= Gmax2) Gmax2 = G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[i]+QD[j]-2.0*y[i]*Q_i[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } else { if (!is_upper_bound(j)) { double grad_diff= Gmax-G[j]; if (-G[j] >= Gmax2) Gmax2 = -G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[i]+QD[j]+2.0*y[i]*Q_i[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } } if(Gmax+Gmax2 < eps) return 1; out_i = Gmax_idx; out_j = Gmin_idx; return 0; } bool Solver::be_shrunk(int i, double Gmax1, double Gmax2) { if(is_upper_bound(i)) { if(y[i]==+1) return(-G[i] > Gmax1); else return(-G[i] > Gmax2); } else if(is_lower_bound(i)) { if(y[i]==+1) return(G[i] > Gmax2); else return(G[i] > Gmax1); } else return(false); } void Solver::do_shrinking() { int i; double Gmax1 = -INF; // max { -y_i * grad(f)_i | i in I_up(\alpha) } double Gmax2 = -INF; // max { y_i * grad(f)_i | i in I_low(\alpha) } // find maximal violating pair first for(i=0;i= Gmax1) Gmax1 = -G[i]; } if(!is_lower_bound(i)) { if(G[i] >= Gmax2) Gmax2 = G[i]; } } else { if(!is_upper_bound(i)) { if(-G[i] >= Gmax2) Gmax2 = -G[i]; } if(!is_lower_bound(i)) { if(G[i] >= Gmax1) Gmax1 = G[i]; } } } if(unshrink == false && Gmax1 + Gmax2 <= eps*10) { unshrink = true; reconstruct_gradient(); active_size = l; info("*"); } for(i=0;i i) { if (!be_shrunk(active_size, Gmax1, Gmax2)) { swap_index(i,active_size); break; } active_size--; } } } double Solver::calculate_rho() { double r; int nr_free = 0; double ub = INF, lb = -INF, sum_free = 0; for(int i=0;i0) r = sum_free/nr_free; else r = (ub+lb)/2; return r; } // // Solver for nu-svm classification and regression // // additional constraint: e^T \alpha = constant // class Solver_NU : public Solver { public: Solver_NU() {} void Solve(int l, const QMatrix& Q, const double *p, const schar *y, double *alpha, double Cp, double Cn, double eps, SolutionInfo* si, int shrinking) { this->si = si; Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking); } private: SolutionInfo *si; int select_working_set(int &i, int &j); double calculate_rho(); bool be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4); void do_shrinking(); }; // return 1 if already optimal, return 0 otherwise int Solver_NU::select_working_set(int &out_i, int &out_j) { // return i,j such that y_i = y_j and // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) // j: minimizes the decrease of obj value // (if quadratic coefficeint <= 0, replace it with tau) // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) double Gmaxp = -INF; double Gmaxp2 = -INF; int Gmaxp_idx = -1; double Gmaxn = -INF; double Gmaxn2 = -INF; int Gmaxn_idx = -1; int Gmin_idx = -1; double obj_diff_min = INF; for(int t=0;t= Gmaxp) { Gmaxp = -G[t]; Gmaxp_idx = t; } } else { if(!is_lower_bound(t)) if(G[t] >= Gmaxn) { Gmaxn = G[t]; Gmaxn_idx = t; } } int ip = Gmaxp_idx; int in = Gmaxn_idx; const Qfloat *Q_ip = NULL; const Qfloat *Q_in = NULL; if(ip != -1) // NULL Q_ip not accessed: Gmaxp=-INF if ip=-1 Q_ip = Q->get_Q(ip,active_size); if(in != -1) Q_in = Q->get_Q(in,active_size); for(int j=0;j= Gmaxp2) Gmaxp2 = G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[ip]+QD[j]-2*Q_ip[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } else { if (!is_upper_bound(j)) { double grad_diff=Gmaxn-G[j]; if (-G[j] >= Gmaxn2) Gmaxn2 = -G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[in]+QD[j]-2*Q_in[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } } if(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps) return 1; if (y[Gmin_idx] == +1) out_i = Gmaxp_idx; else out_i = Gmaxn_idx; out_j = Gmin_idx; return 0; } bool Solver_NU::be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4) { if(is_upper_bound(i)) { if(y[i]==+1) return(-G[i] > Gmax1); else return(-G[i] > Gmax4); } else if(is_lower_bound(i)) { if(y[i]==+1) return(G[i] > Gmax2); else return(G[i] > Gmax3); } else return(false); } void Solver_NU::do_shrinking() { double Gmax1 = -INF; // max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) } double Gmax2 = -INF; // max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) } double Gmax3 = -INF; // max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) } double Gmax4 = -INF; // max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) } // find maximal violating pair first int i; for(i=0;i Gmax1) Gmax1 = -G[i]; } else if(-G[i] > Gmax4) Gmax4 = -G[i]; } if(!is_lower_bound(i)) { if(y[i]==+1) { if(G[i] > Gmax2) Gmax2 = G[i]; } else if(G[i] > Gmax3) Gmax3 = G[i]; } } if(unshrink == false && max(Gmax1+Gmax2,Gmax3+Gmax4) <= eps*10) { unshrink = true; reconstruct_gradient(); active_size = l; } for(i=0;i i) { if (!be_shrunk(active_size, Gmax1, Gmax2, Gmax3, Gmax4)) { swap_index(i,active_size); break; } active_size--; } } } double Solver_NU::calculate_rho() { int nr_free1 = 0,nr_free2 = 0; double ub1 = INF, ub2 = INF; double lb1 = -INF, lb2 = -INF; double sum_free1 = 0, sum_free2 = 0; for(int i=0;i 0) r1 = sum_free1/nr_free1; else r1 = (ub1+lb1)/2; if(nr_free2 > 0) r2 = sum_free2/nr_free2; else r2 = (ub2+lb2)/2; si->r = (r1+r2)/2; return (r1-r2)/2; } // // Q matrices for various formulations // class SVC_Q: public Kernel { public: SVC_Q(const svm_problem& prob, const svm_parameter& param, const schar *y_) :Kernel(prob.l, prob.x, param) { clone(y,y_,prob.l); cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); QD = new double[prob.l]; for(int i=0;i*kernel_function)(i,i); } Qfloat *get_Q(int i, int len) const { Qfloat *data; int start, j; if((start = cache->get_data(i,&data,len)) < len) { for(j=start;j*kernel_function)(i,j)); } return data; } double *get_QD() const { return QD; } void swap_index(int i, int j) const { cache->swap_index(i,j); Kernel::swap_index(i,j); swap(y[i],y[j]); swap(QD[i],QD[j]); } ~SVC_Q() { delete[] y; delete cache; delete[] QD; } private: schar *y; Cache *cache; double *QD; }; class ONE_CLASS_Q: public Kernel { public: ONE_CLASS_Q(const svm_problem& prob, const svm_parameter& param) :Kernel(prob.l, prob.x, param) { cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); QD = new double[prob.l]; for(int i=0;i*kernel_function)(i,i); } Qfloat *get_Q(int i, int len) const { Qfloat *data; int start, j; if((start = cache->get_data(i,&data,len)) < len) { for(j=start;j*kernel_function)(i,j); } return data; } double *get_QD() const { return QD; } void swap_index(int i, int j) const { cache->swap_index(i,j); Kernel::swap_index(i,j); swap(QD[i],QD[j]); } ~ONE_CLASS_Q() { delete cache; delete[] QD; } private: Cache *cache; double *QD; }; class SVR_Q: public Kernel { public: SVR_Q(const svm_problem& prob, const svm_parameter& param) :Kernel(prob.l, prob.x, param) { l = prob.l; cache = new Cache(l,(long int)(param.cache_size*(1<<20))); QD = new double[2*l]; sign = new schar[2*l]; index = new int[2*l]; for(int k=0;k*kernel_function)(k,k); QD[k+l] = QD[k]; } buffer[0] = new Qfloat[2*l]; buffer[1] = new Qfloat[2*l]; next_buffer = 0; } void swap_index(int i, int j) const { swap(sign[i],sign[j]); swap(index[i],index[j]); swap(QD[i],QD[j]); } Qfloat *get_Q(int i, int len) const { Qfloat *data; int j, real_i = index[i]; if(cache->get_data(real_i,&data,l) < l) { for(j=0;j*kernel_function)(real_i,j); } // reorder and copy Qfloat *buf = buffer[next_buffer]; next_buffer = 1 - next_buffer; schar si = sign[i]; for(j=0;jl; double *minus_ones = new double[l]; schar *y = new schar[l]; int i; for(i=0;iy[i] > 0) y[i] = +1; else y[i] = -1; } Solver s; s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y, alpha, Cp, Cn, param->eps, si, param->shrinking); double sum_alpha=0; for(i=0;il)); for(i=0;il; double nu = param->nu; schar *y = new schar[l]; for(i=0;iy[i]>0) y[i] = +1; else y[i] = -1; double sum_pos = nu*l/2; double sum_neg = nu*l/2; for(i=0;ieps, si, param->shrinking); double r = si->r; info("C = %f\n",1/r); for(i=0;irho /= r; si->obj /= (r*r); si->upper_bound_p = 1/r; si->upper_bound_n = 1/r; delete[] y; delete[] zeros; } static void solve_one_class( const svm_problem *prob, const svm_parameter *param, double *alpha, Solver::SolutionInfo* si) { int l = prob->l; double *zeros = new double[l]; schar *ones = new schar[l]; int i; int n = (int)(param->nu*prob->l); // # of alpha's at upper bound for(i=0;il) alpha[n] = param->nu * prob->l - n; for(i=n+1;ieps, si, param->shrinking); delete[] zeros; delete[] ones; } static void solve_epsilon_svr( const svm_problem *prob, const svm_parameter *param, double *alpha, Solver::SolutionInfo* si) { int l = prob->l; double *alpha2 = new double[2*l]; double *linear_term = new double[2*l]; schar *y = new schar[2*l]; int i; for(i=0;ip - prob->y[i]; y[i] = 1; alpha2[i+l] = 0; linear_term[i+l] = param->p + prob->y[i]; y[i+l] = -1; } Solver s; s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, alpha2, param->C, param->C, param->eps, si, param->shrinking); double sum_alpha = 0; for(i=0;iC*l)); delete[] alpha2; delete[] linear_term; delete[] y; } static void solve_nu_svr( const svm_problem *prob, const svm_parameter *param, double *alpha, Solver::SolutionInfo* si) { int l = prob->l; double C = param->C; double *alpha2 = new double[2*l]; double *linear_term = new double[2*l]; schar *y = new schar[2*l]; int i; double sum = C * param->nu * l / 2; for(i=0;iy[i]; y[i] = 1; linear_term[i+l] = prob->y[i]; y[i+l] = -1; } Solver_NU s; s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, alpha2, C, C, param->eps, si, param->shrinking); info("epsilon = %f\n",-si->r); for(i=0;il); Solver::SolutionInfo si; switch(param->svm_type) { case C_SVC: solve_c_svc(prob,param,alpha,&si,Cp,Cn); break; case NU_SVC: solve_nu_svc(prob,param,alpha,&si); break; case ONE_CLASS: solve_one_class(prob,param,alpha,&si); break; case EPSILON_SVR: solve_epsilon_svr(prob,param,alpha,&si); break; case NU_SVR: solve_nu_svr(prob,param,alpha,&si); break; } info("obj = %f, rho = %f\n",si.obj,si.rho); // output SVs int nSV = 0; int nBSV = 0; for(int i=0;il;i++) { if(fabs(alpha[i]) > 0) { ++nSV; if(prob->y[i] > 0) { if(fabs(alpha[i]) >= si.upper_bound_p) ++nBSV; } else { if(fabs(alpha[i]) >= si.upper_bound_n) ++nBSV; } } } info("nSV = %d, nBSV = %d\n",nSV,nBSV); decision_function f; f.alpha = alpha; f.rho = si.rho; return f; } // Platt's binary SVM Probablistic Output: an improvement from Lin et al. static void sigmoid_train( int l, const double *dec_values, const double *labels, double& A, double& B) { double prior1=0, prior0 = 0; int i; for (i=0;i 0) prior1+=1; else prior0+=1; int max_iter=100; // Maximal number of iterations double min_step=1e-10; // Minimal step taken in line search double sigma=1e-12; // For numerically strict PD of Hessian double eps=1e-5; double hiTarget=(prior1+1.0)/(prior1+2.0); double loTarget=1/(prior0+2.0); double *t=Malloc(double,l); double fApB,p,q,h11,h22,h21,g1,g2,det,dA,dB,gd,stepsize; double newA,newB,newf,d1,d2; int iter; // Initial Point and Initial Fun Value A=0.0; B=log((prior0+1.0)/(prior1+1.0)); double fval = 0.0; for (i=0;i0) t[i]=hiTarget; else t[i]=loTarget; fApB = dec_values[i]*A+B; if (fApB>=0) fval += t[i]*fApB + log(1+exp(-fApB)); else fval += (t[i] - 1)*fApB +log(1+exp(fApB)); } for (iter=0;iter= 0) { p=exp(-fApB)/(1.0+exp(-fApB)); q=1.0/(1.0+exp(-fApB)); } else { p=1.0/(1.0+exp(fApB)); q=exp(fApB)/(1.0+exp(fApB)); } d2=p*q; h11+=dec_values[i]*dec_values[i]*d2; h22+=d2; h21+=dec_values[i]*d2; d1=t[i]-p; g1+=dec_values[i]*d1; g2+=d1; } // Stopping Criteria if (fabs(g1)= min_step) { newA = A + stepsize * dA; newB = B + stepsize * dB; // New function value newf = 0.0; for (i=0;i= 0) newf += t[i]*fApB + log(1+exp(-fApB)); else newf += (t[i] - 1)*fApB +log(1+exp(fApB)); } // Check sufficient decrease if (newf=max_iter) info("Reaching maximal iterations in two-class probability estimates\n"); free(t); } static double sigmoid_predict(double decision_value, double A, double B) { double fApB = decision_value*A+B; // 1-p used later; avoid catastrophic cancellation if (fApB >= 0) return exp(-fApB)/(1.0+exp(-fApB)); else return 1.0/(1+exp(fApB)) ; } // Method 2 from the multiclass_prob paper by Wu, Lin, and Weng static void multiclass_probability(int k, double **r, double *p) { int t,j; int iter = 0, max_iter=max(100,k); double **Q=Malloc(double *,k); double *Qp=Malloc(double,k); double pQp, eps=0.005/k; for (t=0;tmax_error) max_error=error; } if (max_error=max_iter) info("Exceeds max_iter in multiclass_prob\n"); for(t=0;tl); double *dec_values = Malloc(double,prob->l); // random shuffle for(i=0;il;i++) perm[i]=i; for(i=0;il;i++) { int j = i+rand()%(prob->l-i); swap(perm[i],perm[j]); } for(i=0;il/nr_fold; int end = (i+1)*prob->l/nr_fold; int j,k; struct svm_problem subprob; subprob.l = prob->l-(end-begin); subprob.x = Malloc(struct svm_node*,subprob.l); subprob.y = Malloc(double,subprob.l); k=0; for(j=0;jx[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } for(j=end;jl;j++) { subprob.x[k] = prob->x[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } int p_count=0,n_count=0; for(j=0;j0) p_count++; else n_count++; if(p_count==0 && n_count==0) for(j=begin;j 0 && n_count == 0) for(j=begin;j 0) for(j=begin;jx[perm[j]],&(dec_values[perm[j]])); // ensure +1 -1 order; reason not using CV subroutine dec_values[perm[j]] *= submodel->label[0]; } svm_free_and_destroy_model(&submodel); svm_destroy_param(&subparam); } free(subprob.x); free(subprob.y); } sigmoid_train(prob->l,dec_values,prob->y,probA,probB); free(dec_values); free(perm); } // Return parameter of a Laplace distribution static double svm_svr_probability( const svm_problem *prob, const svm_parameter *param) { int i; int nr_fold = 5; double *ymv = Malloc(double,prob->l); double mae = 0; svm_parameter newparam = *param; newparam.probability = 0; svm_cross_validation(prob,&newparam,nr_fold,ymv); for(i=0;il;i++) { ymv[i]=prob->y[i]-ymv[i]; mae += fabs(ymv[i]); } mae /= prob->l; double std=sqrt(2*mae*mae); int count=0; mae=0; for(i=0;il;i++) if (fabs(ymv[i]) > 5*std) count=count+1; else mae+=fabs(ymv[i]); mae /= (prob->l-count); info("Prob. model for test data: target value = predicted value + z,\nz: Laplace distribution e^(-|z|/sigma)/(2sigma),sigma= %g\n",mae); free(ymv); return mae; } // label: label name, start: begin of each class, count: #data of classes, perm: indices to the original data // perm, length l, must be allocated before calling this subroutine static void svm_group_classes(const svm_problem *prob, int *nr_class_ret, int **label_ret, int **start_ret, int **count_ret, int *perm) { int l = prob->l; int max_nr_class = 16; int nr_class = 0; int *label = Malloc(int,max_nr_class); int *count = Malloc(int,max_nr_class); int *data_label = Malloc(int,l); int i; for(i=0;iy[i]; int j; for(j=0;jparam = *param; model->free_sv = 0; // XXX if(param->svm_type == ONE_CLASS || param->svm_type == EPSILON_SVR || param->svm_type == NU_SVR) { // regression or one-class-svm model->nr_class = 2; model->label = NULL; model->nSV = NULL; model->probA = NULL; model->probB = NULL; model->sv_coef = Malloc(double *,1); if(param->probability && (param->svm_type == EPSILON_SVR || param->svm_type == NU_SVR)) { model->probA = Malloc(double,1); model->probA[0] = svm_svr_probability(prob,param); } decision_function f = svm_train_one(prob,param,0,0); model->rho = Malloc(double,1); model->rho[0] = f.rho; int nSV = 0; int i; for(i=0;il;i++) if(fabs(f.alpha[i]) > 0) ++nSV; model->l = nSV; model->SV = Malloc(svm_node *,nSV); model->sv_coef[0] = Malloc(double,nSV); int j = 0; for(i=0;il;i++) if(fabs(f.alpha[i]) > 0) { model->SV[j] = prob->x[i]; model->sv_coef[0][j] = f.alpha[i]; ++j; } free(f.alpha); } else { // classification int l = prob->l; int nr_class; int *label = NULL; int *start = NULL; int *count = NULL; int *perm = Malloc(int,l); // group training data of the same class svm_group_classes(prob,&nr_class,&label,&start,&count,perm); if(nr_class == 1) info("WARNING: training data in only one class. See README for details.\n"); svm_node **x = Malloc(svm_node *,l); int i; for(i=0;ix[perm[i]]; // calculate weighted C double *weighted_C = Malloc(double, nr_class); for(i=0;iC; for(i=0;inr_weight;i++) { int j; for(j=0;jweight_label[i] == label[j]) break; if(j == nr_class) fprintf(stderr,"WARNING: class label %d specified in weight is not found\n", param->weight_label[i]); else weighted_C[j] *= param->weight[i]; } // train k*(k-1)/2 models bool *nonzero = Malloc(bool,l); for(i=0;iprobability) { probA=Malloc(double,nr_class*(nr_class-1)/2); probB=Malloc(double,nr_class*(nr_class-1)/2); } int p = 0; for(i=0;iprobability) svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]); f[p] = svm_train_one(&sub_prob,param,weighted_C[i],weighted_C[j]); for(k=0;k 0) nonzero[si+k] = true; for(k=0;k 0) nonzero[sj+k] = true; free(sub_prob.x); free(sub_prob.y); ++p; } // build output model->nr_class = nr_class; model->label = Malloc(int,nr_class); for(i=0;ilabel[i] = label[i]; model->rho = Malloc(double,nr_class*(nr_class-1)/2); for(i=0;irho[i] = f[i].rho; if(param->probability) { model->probA = Malloc(double,nr_class*(nr_class-1)/2); model->probB = Malloc(double,nr_class*(nr_class-1)/2); for(i=0;iprobA[i] = probA[i]; model->probB[i] = probB[i]; } } else { model->probA=NULL; model->probB=NULL; } int total_sv = 0; int *nz_count = Malloc(int,nr_class); model->nSV = Malloc(int,nr_class); for(i=0;inSV[i] = nSV; nz_count[i] = nSV; } info("Total nSV = %d\n",total_sv); model->l = total_sv; model->SV = Malloc(svm_node *,total_sv); p = 0; for(i=0;iSV[p++] = x[i]; int *nz_start = Malloc(int,nr_class); nz_start[0] = 0; for(i=1;isv_coef = Malloc(double *,nr_class-1); for(i=0;isv_coef[i] = Malloc(double,total_sv); p = 0; for(i=0;isv_coef[j-1][q++] = f[p].alpha[k]; q = nz_start[j]; for(k=0;ksv_coef[i][q++] = f[p].alpha[ci+k]; ++p; } free(label); free(probA); free(probB); free(count); free(perm); free(start); free(x); free(weighted_C); free(nonzero); for(i=0;il; int *perm = Malloc(int,l); int nr_class; // stratified cv may not give leave-one-out rate // Each class to l folds -> some folds may have zero elements if((param->svm_type == C_SVC || param->svm_type == NU_SVC) && nr_fold < l) { int *start = NULL; int *label = NULL; int *count = NULL; svm_group_classes(prob,&nr_class,&label,&start,&count,perm); // random shuffle and then data grouped by fold using the array perm int *fold_count = Malloc(int,nr_fold); int c; int *index = Malloc(int,l); for(i=0;ix[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } for(j=end;jx[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } struct svm_model *submodel = svm_train(&subprob,param); if(param->probability && (param->svm_type == C_SVC || param->svm_type == NU_SVC)) { double *prob_estimates=Malloc(double,svm_get_nr_class(submodel)); for(j=begin;jx[perm[j]],prob_estimates); free(prob_estimates); } else for(j=begin;jx[perm[j]]); svm_free_and_destroy_model(&submodel); free(subprob.x); free(subprob.y); } free(fold_start); free(perm); } int svm_get_svm_type(const svm_model *model) { return model->param.svm_type; } int svm_get_nr_class(const svm_model *model) { return model->nr_class; } void svm_get_labels(const svm_model *model, int* label) { if (model->label != NULL) for(int i=0;inr_class;i++) label[i] = model->label[i]; } double svm_get_svr_probability(const svm_model *model) { if ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && model->probA!=NULL) return model->probA[0]; else { fprintf(stderr,"Model doesn't contain information for SVR probability inference\n"); return 0; } } double svm_predict_values(const svm_model *model, const svm_node *x, double* dec_values) { int i; if(model->param.svm_type == ONE_CLASS || model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) { double *sv_coef = model->sv_coef[0]; double sum = 0; for(i=0;il;i++) sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param); sum -= model->rho[0]; *dec_values = sum; if(model->param.svm_type == ONE_CLASS) return (sum>0)?1:-1; else return sum; } else { int nr_class = model->nr_class; int l = model->l; double *kvalue = Malloc(double,l); for(i=0;iSV[i],model->param); int *start = Malloc(int,nr_class); start[0] = 0; for(i=1;inSV[i-1]; int *vote = Malloc(int,nr_class); for(i=0;inSV[i]; int cj = model->nSV[j]; int k; double *coef1 = model->sv_coef[j-1]; double *coef2 = model->sv_coef[i]; for(k=0;krho[p]; dec_values[p] = sum; if(dec_values[p] > 0) ++vote[i]; else ++vote[j]; p++; } int vote_max_idx = 0; for(i=1;i vote[vote_max_idx]) vote_max_idx = i; free(kvalue); free(start); free(vote); return model->label[vote_max_idx]; } } double svm_predict(const svm_model *model, const svm_node *x) { int nr_class = model->nr_class; double *dec_values; if(model->param.svm_type == ONE_CLASS || model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) dec_values = Malloc(double, 1); else dec_values = Malloc(double, nr_class*(nr_class-1)/2); double pred_result = svm_predict_values(model, x, dec_values); free(dec_values); return pred_result; } double svm_predict_probability( const svm_model *model, const svm_node *x, double *prob_estimates) { if ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && model->probA!=NULL && model->probB!=NULL) { int i; int nr_class = model->nr_class; double *dec_values = Malloc(double, nr_class*(nr_class-1)/2); svm_predict_values(model, x, dec_values); double min_prob=1e-7; double **pairwise_prob=Malloc(double *,nr_class); for(i=0;iprobA[k],model->probB[k]),min_prob),1-min_prob); pairwise_prob[j][i]=1-pairwise_prob[i][j]; k++; } multiclass_probability(nr_class,pairwise_prob,prob_estimates); int prob_max_idx = 0; for(i=1;i prob_estimates[prob_max_idx]) prob_max_idx = i; for(i=0;ilabel[prob_max_idx]; } else return svm_predict(model, x); } static const char *svm_type_table[] = { "c_svc","nu_svc","one_class","epsilon_svr","nu_svr",NULL }; static const char *kernel_type_table[]= { "linear","polynomial","rbf","sigmoid","precomputed",NULL }; int svm_save_model(const char *model_file_name, const svm_model *model) { FILE *fp = fopen(model_file_name,"w"); if(fp==NULL) return -1; char *old_locale = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, "C"); const svm_parameter& param = model->param; fprintf(fp,"svm_type %s\n", svm_type_table[param.svm_type]); fprintf(fp,"kernel_type %s\n", kernel_type_table[param.kernel_type]); if(param.kernel_type == POLY) fprintf(fp,"degree %d\n", param.degree); if(param.kernel_type == POLY || param.kernel_type == RBF || param.kernel_type == SIGMOID) fprintf(fp,"gamma %g\n", param.gamma); if(param.kernel_type == POLY || param.kernel_type == SIGMOID) fprintf(fp,"coef0 %g\n", param.coef0); int nr_class = model->nr_class; int l = model->l; fprintf(fp, "nr_class %d\n", nr_class); fprintf(fp, "total_sv %d\n",l); { fprintf(fp, "rho"); for(int i=0;irho[i]); fprintf(fp, "\n"); } if(model->label) { fprintf(fp, "label"); for(int i=0;ilabel[i]); fprintf(fp, "\n"); } if(model->probA) // regression has probA only { fprintf(fp, "probA"); for(int i=0;iprobA[i]); fprintf(fp, "\n"); } if(model->probB) { fprintf(fp, "probB"); for(int i=0;iprobB[i]); fprintf(fp, "\n"); } if(model->nSV) { fprintf(fp, "nr_sv"); for(int i=0;inSV[i]); fprintf(fp, "\n"); } fprintf(fp, "SV\n"); const double * const *sv_coef = model->sv_coef; const svm_node * const *SV = model->SV; for(int i=0;ivalue)); else while(p->index != -1) { fprintf(fp,"%d:%.8g ",p->index,p->value); p++; } fprintf(fp, "\n"); } setlocale(LC_ALL, old_locale); free(old_locale); if (ferror(fp) != 0 || fclose(fp) != 0) return -1; else return 0; } static char *line = NULL; static int max_line_len; static char* readline(FILE *input) { int len; if(fgets(line,max_line_len,input) == NULL) return NULL; while(strrchr(line,'\n') == NULL) { max_line_len *= 2; line = (char *) realloc(line,max_line_len); len = (int) strlen(line); if(fgets(line+len,max_line_len-len,input) == NULL) break; } return line; } svm_model *svm_load_model(const char *model_file_name) { FILE *fp = fopen(model_file_name,"rb"); if(fp==NULL) return NULL; char *old_locale = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, "C"); // read parameters svm_model *model = Malloc(svm_model,1); svm_parameter& param = model->param; model->rho = NULL; model->probA = NULL; model->probB = NULL; model->label = NULL; model->nSV = NULL; char cmd[81]; while(1) { fscanf(fp,"%80s",cmd); if(strcmp(cmd,"svm_type")==0) { fscanf(fp,"%80s",cmd); int i; for(i=0;svm_type_table[i];i++) { if(strcmp(svm_type_table[i],cmd)==0) { param.svm_type=i; break; } } if(svm_type_table[i] == NULL) { fprintf(stderr,"unknown svm type.\n"); setlocale(LC_ALL, old_locale); free(old_locale); free(model->rho); free(model->label); free(model->nSV); free(model); return NULL; } } else if(strcmp(cmd,"kernel_type")==0) { fscanf(fp,"%80s",cmd); int i; for(i=0;kernel_type_table[i];i++) { if(strcmp(kernel_type_table[i],cmd)==0) { param.kernel_type=i; break; } } if(kernel_type_table[i] == NULL) { fprintf(stderr,"unknown kernel function.\n"); setlocale(LC_ALL, old_locale); free(old_locale); free(model->rho); free(model->label); free(model->nSV); free(model); return NULL; } } else if(strcmp(cmd,"degree")==0) fscanf(fp,"%d",¶m.degree); else if(strcmp(cmd,"gamma")==0) fscanf(fp,"%lf",¶m.gamma); else if(strcmp(cmd,"coef0")==0) fscanf(fp,"%lf",¶m.coef0); else if(strcmp(cmd,"nr_class")==0) fscanf(fp,"%d",&model->nr_class); else if(strcmp(cmd,"total_sv")==0) fscanf(fp,"%d",&model->l); else if(strcmp(cmd,"rho")==0) { int n = model->nr_class * (model->nr_class-1)/2; model->rho = Malloc(double,n); for(int i=0;irho[i]); } else if(strcmp(cmd,"label")==0) { int n = model->nr_class; model->label = Malloc(int,n); for(int i=0;ilabel[i]); } else if(strcmp(cmd,"probA")==0) { int n = model->nr_class * (model->nr_class-1)/2; model->probA = Malloc(double,n); for(int i=0;iprobA[i]); } else if(strcmp(cmd,"probB")==0) { int n = model->nr_class * (model->nr_class-1)/2; model->probB = Malloc(double,n); for(int i=0;iprobB[i]); } else if(strcmp(cmd,"nr_sv")==0) { int n = model->nr_class; model->nSV = Malloc(int,n); for(int i=0;inSV[i]); } else if(strcmp(cmd,"SV")==0) { while(1) { int c = getc(fp); if(c==EOF || c=='\n') break; } break; } else { fprintf(stderr,"unknown text in model file: [%s]\n",cmd); setlocale(LC_ALL, old_locale); free(old_locale); free(model->rho); free(model->label); free(model->nSV); free(model); return NULL; } } // read sv_coef and SV int elements = 0; long pos = ftell(fp); max_line_len = 1024; line = Malloc(char,max_line_len); char *p,*endptr,*idx,*val; while(readline(fp)!=NULL) { p = strtok(line,":"); while(1) { p = strtok(NULL,":"); if(p == NULL) break; ++elements; } } elements += model->l; fseek(fp,pos,SEEK_SET); int m = model->nr_class - 1; int l = model->l; model->sv_coef = Malloc(double *,m); int i; for(i=0;isv_coef[i] = Malloc(double,l); model->SV = Malloc(svm_node*,l); svm_node *x_space = NULL; if(l>0) x_space = Malloc(svm_node,elements); int j=0; for(i=0;iSV[i] = &x_space[j]; p = strtok(line, " \t"); model->sv_coef[0][i] = strtod(p,&endptr); for(int k=1;ksv_coef[k][i] = strtod(p,&endptr); } while(1) { idx = strtok(NULL, ":"); val = strtok(NULL, " \t"); if(val == NULL) break; x_space[j].index = (int) strtol(idx,&endptr,10); x_space[j].value = strtod(val,&endptr); ++j; } x_space[j++].index = -1; } free(line); setlocale(LC_ALL, old_locale); free(old_locale); if (ferror(fp) != 0 || fclose(fp) != 0) return NULL; model->free_sv = 1; // XXX return model; } void svm_free_model_content(svm_model* model_ptr) { if(model_ptr->free_sv && model_ptr->l > 0 && model_ptr->SV != NULL) free((void *)(model_ptr->SV[0])); if(model_ptr->sv_coef) { for(int i=0;inr_class-1;i++) free(model_ptr->sv_coef[i]); } free(model_ptr->SV); model_ptr->SV = NULL; free(model_ptr->sv_coef); model_ptr->sv_coef = NULL; free(model_ptr->rho); model_ptr->rho = NULL; free(model_ptr->label); model_ptr->label= NULL; free(model_ptr->probA); model_ptr->probA = NULL; free(model_ptr->probB); model_ptr->probB= NULL; free(model_ptr->nSV); model_ptr->nSV = NULL; } void svm_free_and_destroy_model(svm_model** model_ptr_ptr) { if(model_ptr_ptr != NULL && *model_ptr_ptr != NULL) { svm_free_model_content(*model_ptr_ptr); free(*model_ptr_ptr); *model_ptr_ptr = NULL; } } void svm_destroy_param(svm_parameter* param) { free(param->weight_label); free(param->weight); } const char *svm_check_parameter(const svm_problem *prob, const svm_parameter *param) { // svm_type int svm_type = param->svm_type; if(svm_type != C_SVC && svm_type != NU_SVC && svm_type != ONE_CLASS && svm_type != EPSILON_SVR && svm_type != NU_SVR) return "unknown svm type"; // kernel_type, degree int kernel_type = param->kernel_type; if(kernel_type != LINEAR && kernel_type != POLY && kernel_type != RBF && kernel_type != SIGMOID && kernel_type != PRECOMPUTED) return "unknown kernel type"; if(param->gamma < 0) return "gamma < 0"; if(param->degree < 0) return "degree of polynomial kernel < 0"; // cache_size,eps,C,nu,p,shrinking if(param->cache_size <= 0) return "cache_size <= 0"; if(param->eps <= 0) return "eps <= 0"; if(svm_type == C_SVC || svm_type == EPSILON_SVR || svm_type == NU_SVR) if(param->C <= 0) return "C <= 0"; if(svm_type == NU_SVC || svm_type == ONE_CLASS || svm_type == NU_SVR) if(param->nu <= 0 || param->nu > 1) return "nu <= 0 or nu > 1"; if(svm_type == EPSILON_SVR) if(param->p < 0) return "p < 0"; if(param->shrinking != 0 && param->shrinking != 1) return "shrinking != 0 and shrinking != 1"; if(param->probability != 0 && param->probability != 1) return "probability != 0 and probability != 1"; if(param->probability == 1 && svm_type == ONE_CLASS) return "one-class SVM probability output not supported yet"; // check whether nu-svc is feasible if(svm_type == NU_SVC) { int l = prob->l; int max_nr_class = 16; int nr_class = 0; int *label = Malloc(int,max_nr_class); int *count = Malloc(int,max_nr_class); int i; for(i=0;iy[i]; int j; for(j=0;jnu*(n1+n2)/2 > min(n1,n2)) { free(label); free(count); return "specified nu is infeasible"; } } } free(label); free(count); } return NULL; } int svm_check_probability_model(const svm_model *model) { return ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && model->probA!=NULL && model->probB!=NULL) || ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && model->probA!=NULL); } void svm_set_print_string_function(void (*print_func)(const char *)) { if(print_func == NULL) svm_print_string = &print_string_stdout; else svm_print_string = print_func; } pymvpa2-2.6.4/3rd/libsvm/svm.h000066400000000000000000000060711323370031300160620ustar00rootroot00000000000000#ifndef _LIBSVM_H #define _LIBSVM_H #define LIBSVM_VERSION 312 #ifdef __cplusplus extern "C" { #endif extern int libsvm_version; struct svm_node { int index; double value; }; struct svm_problem { int l; double *y; struct svm_node **x; }; enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */ enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */ struct svm_parameter { int svm_type; int kernel_type; int degree; /* for poly */ double gamma; /* for poly/rbf/sigmoid */ double coef0; /* for poly/sigmoid */ /* these are for training only */ double cache_size; /* in MB */ double eps; /* stopping criteria */ double C; /* for C_SVC, EPSILON_SVR and NU_SVR */ int nr_weight; /* for C_SVC */ int *weight_label; /* for C_SVC */ double* weight; /* for C_SVC */ double nu; /* for NU_SVC, ONE_CLASS, and NU_SVR */ double p; /* for EPSILON_SVR */ int shrinking; /* use the shrinking heuristics */ int probability; /* do probability estimates */ }; // // svm_model // struct svm_model { struct svm_parameter param; /* parameter */ int nr_class; /* number of classes, = 2 in regression/one class svm */ int l; /* total #SV */ struct svm_node **SV; /* SVs (SV[l]) */ double **sv_coef; /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */ double *rho; /* constants in decision functions (rho[k*(k-1)/2]) */ double *probA; /* pariwise probability information */ double *probB; /* for classification only */ int *label; /* label of each class (label[k]) */ int *nSV; /* number of SVs for each class (nSV[k]) */ /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */ /* XXX */ int free_sv; /* 1 if svm_model is created by svm_load_model*/ /* 0 if svm_model is created by svm_train */ }; struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param); void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target); int svm_save_model(const char *model_file_name, const struct svm_model *model); struct svm_model *svm_load_model(const char *model_file_name); int svm_get_svm_type(const struct svm_model *model); int svm_get_nr_class(const struct svm_model *model); void svm_get_labels(const struct svm_model *model, int *label); double svm_get_svr_probability(const struct svm_model *model); double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values); double svm_predict(const struct svm_model *model, const struct svm_node *x); double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates); void svm_free_model_content(struct svm_model *model_ptr); void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr); void svm_destroy_param(struct svm_parameter *param); const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param); int svm_check_probability_model(const struct svm_model *model); void svm_set_print_string_function(void (*print_func)(const char *)); #ifdef __cplusplus } #endif #endif /* _LIBSVM_H */ pymvpa2-2.6.4/AUTHOR000066400000000000000000000023141323370031300140410ustar00rootroot00000000000000Authors ------- Michael Hanke Yaroslav O. Halchenko Nikolaas N. Oosterhof Contributors in order of appearance ----------------------------------- Ingo Fründ Per B. Sederberg Emanuele Olivetti James M. Hughes Valentin Haenel Russell Poldrack Tiziano Zito Michael W. Cole Scott Gorlin Rajeev Raizada Swaroop Guntupalli Geethapriya Raghavan Florian Baumgartner Satrajit Ghosh Matthias Ekman James Kyle C. Gohlke Reka Daniel Wolf Zinke Adam Riggall Sven Buchholz Andy Connolly Richard Dinga Michael Notter David Armstrong pymvpa2-2.6.4/COPYING000066400000000000000000000043241323370031300141520ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: .. _chap_license: ******* License ******* The PyMVPA package, including all examples, code snippets and attached documentation is covered by the MIT license. :: The MIT License Copyright (c) 2006-2016 Michael Hanke 2007-2016 Yaroslav Halchenko 2012-2016 Nikolaas N. Oosterhof 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. ============== 3rd Party Code ============== Some code distributed within PyMVPA was not developed by PyMVPA team, hence you should adhere to the copyright and license terms of respective authors if you are to use corresponding parts. LIBSVM ------ :: Files: 3rd/libsvm/* BSD-3 License Copyright (c) 2000-2009 Chih-Chung Chang and Chih-Jen Lin. NIPY ---- :: Files: mvpa2/support/nipy/_*py, mvpa2/tests/test_emp_null.py BSD-3 License Copyright (c) 2006-2010, NIPY Developers PDFBook ------- :: Files: tools/pdfbook.c GPL version 2 License Copyright: Tigran Aivazian Jaap Eldering Roman Buchert Pierre Francois pymvpa2-2.6.4/Changelog000066400000000000000000001530271323370031300147360ustar00rootroot00000000000000.. -*- mode: rst -*- .. _chap_changelog: .. index:: changelog ********************* Development Changelog ********************* This changelog only lists rather macroscopic changes to PyMVPA. The full VCS changelog for 2.x series of PyMVPA is available here: https://github.com/PyMVPA/PyMVPA/commits/master .. note:: You could find relevant information on 0.4.x series at http://v04.pymvpa.org . In addition there is also a somewhat unconventional `visual changelog`_. .. _visual changelog: http://www.pymvpa.org/history.html 'Closes' and 'Fixes' statement IDs refer to the Debian and Github bug tracking systems accordingly and can be queried by visiting the URLs:: http://bugs.debian.org/ https://github.com/PyMVPA/PyMVPA/issues/ Releases ======== * 2.6.4 (Mon, Jan 29 2017) A bugfix release * Fixes - compatibility with :mod:`pywt` >= 0.4 - compatibility with :mod:`scipy.stats` >= 0.17.0 for `chisqprob` * Enhancements - make `h5save` "robust" in the presence of file locks - wait for a while to acquire the lock - consult :mod:`pkg_resources` about versions of external packages if no `__version__` was found * 2.6.3 (Fri, Nov 03 2017) Minor bugfix release -- getting ready for conda-forge * Fixes - variety of tune ups to test to pass all around - minor fixes to scatter and chunks plots * 2.6.2 (Tue, Oct 31 2017) Primarily a bugfix release * Fixes - fixed scaling in ProcrusteanMapper (gh-545). So if you are using Hyperalignment, you better re-pre-process, and do not mix results/transformations across versions of the PyMVPA - numpy 1.13.1 compatibility fixes - documentation: urls and building fix ups - some fixes for Python3 compatibility in hdf5 (h5save/h5load) support - use single line affine matrix representation in pymvpa2-prep-afni-surf - saving large .niml files should not crash now * New functionality - :func:`~mvpa2.misc.errorfx.mean_tpr` and :func:`~mvpa2.misc.errorfx.mean_fnr` error functions (to be used in disbalanced datasets) * 2.6.1 (Fri, Apr 14 2017) Primarily a bugfix release * Fixes - Deprecation: fixed typo in `manhattan_distance` - Documentation: various outdated links and project names fixed - Removed spurious quote within command line invocation of `prep-afni-surf` - Fixed computation of the edge lengths on the surface, which could have resulted in slightly incorrect surface searchlight sizes * New functionality - :class:`~mvpa2.measures.rsa.CDist` for cross-validated dissimilarity measures computation * Enhancements - :class:`~mvpa2.algorithms.hyperalignment.Hyperalignment` - `output_dim` option could be used to perform dimensionality reduction via SVD while composing the common space - `nproc` and `joblib_backend` parameters could be used to parallelize the last step of the alignment * 2.6.0 (Sat, 26 Aug 2016) Primarily a bugfix release with some added new functionality. People contributed code to the release: Matteo Visconti dOC, Yaroslav Halchenko, Nikolaas N. Oosterhof, Feilong Ma, Christopher J. Markiewicz, Swaroop Guntupalli. * **IMPORTANT** possibly backward-incompatible fixes - Dataset's :func:`~mvpa2.base.dataset.vstack` and :func:`~mvpa2.base.dataset.hstack` now by default would drop those feature or sample (`fa`, `sa`) attributes which do not have the same value across all datasets ("drop_nonunique"). Previous behaviour was to update aggregated collections, so the attribute value of the last dataset would have been stored in the stacked dataset. Such behaviour could be brought back by `fa="update"` for `vstack` or similar value for `sa="update"` for `hstack` calls. If you find that some `sa`/`fa` you have relied on using in your code is no longer available after stacking, verify that you did intend to maintain the "last known" value, and adjust argument in stacking function to "update". * Fixes - Fixed minor bug in computing ico linear divisions while working with surfaces - Handling of `ref_ds` in :class:`~mvpa2.algorithms.searchlight_hyperalignment.SearchlightHyperalignment` - Compatibility fixes for :mod:`scipy` 0.18.0 and :mod:`nibabel` 2.1.0. * New functionality - `pymvpa2 scatter` command line and :mod:`~mvpa2.misc.plot.scatter` module to scatter plot datasets and nifti volumes, with coloring based on spatial location (see e.g. `OHBM12 poster `__ for an example, proper demo is coming) * Enhancements - Allow for "4D" mri mask volumes with degenerate time dimension (e.g. coming from AFNI) - `pymvpa2 ttest` could operate now on h5save'd datasets - It is possible now to `h5save` trained Hyperalignment instances - :class:`~mvpa2.generators.resampling.Balancer` and :class:`~mvpa2.generators.permutation.AttributePermutator` now got `rng` argument to seed RNG. Please use an `int` as a seed specification if you want random selections/permutations be consistent across searchlights * 2.5.0 (Thu, 12 May 2016) * Fixes - Various python3 related small fixes - Minor fix allowing adhoc searchlights (e.g. gnbsearchlight) to work with CustomPartitioner - Fixed SmartVersion to not infinitely loop upon receiving an awkward version string * New functionality - :class:`~mvpa2.algorithms.searchlight_hyperalignment.SearchlightHyperalignment` to carry out full-datset/brain hyperalignment of functional data while honoring spatial neighborhoods. See :ref:`Guntupalli et al., Cerebral Cortex (2016) ` A Model of Representational Spaces in Human Cortex for more information - :class:`~mvpa2.measures.rsa.Regression` measure to compute regularized regression (Ridge or Lasso) on the computed neural dissimilarity matrix - :class:`~mvpa2.misc.surfing.queryengine.SurfaceRingQueryEngine` * Enhancements - The ``ofmotionqc`` command line command has been renamed to ``plotmotionqc``. It no longer requires a dataset formatted in OpenFMRI-style, but works with any organization of input data - SplitRFE docstring example reordered suggested mappers (l2 -> abs -> mean) - Show only summary of representation of internal _src2aux of VolumeMaskDictionary object, which otherwise could be too big to print * 2.4.3 (Tue, 15 Mar 2016) * Fixes - Fixed memory leaking in libsvm bindings introduced in 2.4.2 (gh-443) - Avoid overriding parameters defined in subclasses with the ones from super class - Address freshish deprecations (warnings) in sklearn, scipy, etc - Workaround in the test for numpy's corrcoef issue resulting in corrcoef a bit outside of [-1, 1] range * 2.4.2 (Tue, 8 Mar 2016) * Fixes - *Important:* Reverse mapping of some chained Flatten/StaticSelection mappers did not work correctly e.g. if you selected some features from already masked fmri_dataset. This could have resulted in incorrect cluster counts by :class:`~mvpa2.algorithms.group_clusterthr.GroupClusterThreshold`. Please recreate your datasets and re-estimate GroupClusterThreshold if that was the case for you - ad-hoc searchlights (gnb, m1nn) can now operate with partitioners which leave some samples out of training and testing sets. Also `splitter` argument was added to them for greater flexibility - Due to the bug in OpenfMRI datasets' TR within NIfTIs being hardcoded to wrong 1.0, so `scan_key.txt` will now be consulted if TR is 1 in the .nii* - Compatibility with :mod:`~numpy` 1.10 fixes - :class:`CachedQueryEngine` acquired .ids making it compatible with some ad-hoc searchlights - `FeatureSelection` acquired `__iadd__` fixing the incorrect behavior upon reverse after a sequence of feature selections * Deprecations/removal - `Hamster` is gone. * Enhancements - Bundled version of libsvm updated to 3.12. Now includes maxiter setting which prevents infinite looping which can happen in some rare cases - A swarm of stylistic improvements ("is not", PEP8, etc) which should not affect functionality but could result in more robust operation - `CrossValidation` can now operate with a None generator (i.e. partitioner) using solely `Splitter` to generate a single split on original dataset. Provides easier means for "cross-classification" - :class:`~mvpa2.measures.nnsearchlight.M1NNSearchlight` can now do classification based on correlation distance (just provide `dfx=one_minus_correlation` to kNN) - libsvm bindings for SVM were refactored to interface via svmc not _svmc interface, which made them also compatible with swig 3.x - :meth:`~mvpa2.base.dataset.AttrDataset.to_npz` and :meth:`~mvpa2.base.dataset.AttrDataset.from_npz` to interface Datasets through NumPy's npz files - Variety of PEP8 and other tune ups for more readable code - :class:`~mvpa.featsel.rfe.SplitRFE` can now work with static measures (e.g. `OneWayAnova`) and `BinaryFxFeaturewiseMeasure`. So do feature selection with nested cross-validation without double-dipping! * New functionality - :class:`~mvpa2.generators.partition.FactorialPartitioner` for factorial designs to cross-validate across sub-ordinate category samples (more efficient/avoids previously recommend ChainMapper of NFoldPartitioner and Sifter) * 2.4.1 (Wed, 18 Nov 2015) * New functionality - :class:`~mvpa.datasets.gifti` can write GIFTI files that contain both dataset samples and surface anatomy (vertices and faces). Such GIFTI files can be read by FreeSurfer. * Deprecations/removal - :file:`tools/niils` -- tool removed, since the functionality was moved into :mod:`nibabel` under the name `nib-ls` - Drop support for nibabel < 2.0.0 * Enhancements - "Native" use of :mod:`~duecredit` to provide citations for PyMVPA itself and functionality/methods it implements. - Unified use of os.path.join as pathjoin. - :class:`~mvpa.mappers.procrustean.ProcrusteanMapper` computes reconstruction now more efficiently (just a transpose with proper scaling) in case of non-oblique transformations. * Refactorings/misc changes - :class:`~mvpa.mappers.procrustean.ProcrusteanMapper` now just returns transpose in reverse if transformation is non-oblique (instead of an explicit inverse). * Fixes - 2.4.0 was released with incorrect `__version__` (as 2.3.1) - Fixes to `ofmotionqc` command implementation - Variety of fixes for compatibility with recent matplotlib, python3 - Fixes to SVDMapper in reverse when projection is not a matrix * 2.4.0 (Mon, 11 May 2015) * New functionality - Support for CoSMoMVPA (http://cosmomvpa.org) in :mod:`~mvpa2.datasets.cosmo` providing dataset input/output (:meth:`~mvpa2.datasets.cosmo.cosmo_dataset` and :meth:`~mvpa2.datasets.cosmo.map2cosmo`) and neighborhood input (:class:`~mvpa2.datasets.cosmo.CosmoQueryEngine`). This allows for for running searchlights (:class:`mvpa2.datasets.cosmo.CosmoSearchlight`) on data from CoSMoMVPA (fMRI and MEEG). - :func:`~mvpa2.datasets.miscfx.remove_nonfinite_features` removes features with non-finite values, i.e. NaNs or Infs, for any sample. - :func:`~mvpa2.misc.stats.binomial_proportion_ci` for computing confidence intervals on proportions of Bernoulli trial outcomes. - New mapper for removing sample means from features: :class:`~mvpa2.mappers.fx.MeanRemoval` - New algorithm for statistical evaluation of clusters in accuracy maps of group-based searchlight classification analyses. This is essentially an improved implementation of Stelzer et al., NeuroImage, 2013: :class:`~mvpa2.algorithms.group_clusterthr.GroupClusterThreshold` - New identity mapper. Does nothing, but goes were only mappers can go. - Simplified selection of samples/feature in a dataset. One can now specify sets of attribute values to define sample/feature subsets. - IO adaptor for OpenFMRI-formated datasets: :class:`~mvpa2.datasets.sources.native.OpenFMRIDataset`. Load arbitrary bits from such a dataset, or automatically build event-related dataset (optionally with NiPy-based HRF-modeling). `tutorial_data_25mm` was converted to OpenFMRI layout and extended also with `1slice` flavor. - New command line command to generate a motion plot for an OpenFMRI-formated dataset. - New convenience functions for boxplots and outlier detection. - Reincarnated (similar functionality was removed for 2.0 release) convenience methods ( :meth:`~mvpa2.base.collections.UniformLengthCollection.match` and :meth:`~mvpa2.datasets.base.Dataset.select`) to ease selecting parts of a dataset - New command line component ``ttest`` to compute a simple T-test across dataset samples. * Enhancements - :class:`~mvpa2.mappers.flatten.ProductFlattenMapper` accepts explicit names of factors in the constructor. - HollowSphere() can now, optionally, include the center feature. - :func:`~mvpa2.datasets.mri.fmri_dataset` no longer stores original copy of the NIfTI file header -- it converts it to `dict` representation to remain portable. Use :func:`~mvpa2.datasets.mri.strip_nibabel` to convert old datasets to new format if/when necessary. - Datasets created with :func:`~mvpa2.datasets.mri.fmri_dataset` do no longer contain instances of NiBabel classes. This improves robustness of re-loading serialized datasets in environments with changing NiBabel version. All previous functionality remains available. Dataset now contain an additional ``imgaffine`` attribute with the affine transformation of the source image. * Fixes - :class:`~mvpa2.algorithms.hyperalignment.Hyperalignment` with regularization (alpha != 1.0) was producing incorrect transformations because they were driven by offsets of the last subject. Fixed by not "auto_train"ing regularization projection. - :func:`~mvpa2.misc.plot.lightbox.plot_lightbox` should take a slice index from the last dimension, not the leading one if no `slices` argument was provided. - Improved Python3k compatibility in :mod:`~mvpa2.base.state`, :mod:`~mvpa2.tests`, and :mod:`~mvpa2.clfs.stats` modules, and in libsvmlrc msvc building. - Partial fix for compatibility with ancient scipy on SPARC using :mod:`~mvpa2.datasets.cosmo`. - Various fixes for example scripts and documentation snippets. - :class:`~mvpa2.mappers.skl_adaptor.SKLTransformer` can now deal with ``transform()`` implementations that do not support a ``y`` argument. * 2.3.1 (Tue, 20 May 2014) Primarily a bugfix release pushed out to avoid mvpa2.suite meltdown if new scipy 1.4.0 is used. * API changes - Deprecation: :class:`~mvpa2.base.param.Parameter` now uses `constraints` argument of type :class:`~mvpa2.base.constraints.Constraint` instead of string `allowedtype`. `allowedtype` argument will be removed completely in the future 2.4 release. * New changes - :mod:`~mvpa2.clfs.dummies` now provides utterly useful :class:`~mvpa2.clfs.dummies.RandomClassifier` and others for code testing which could also be used to verify absent double-dipping etc. * Enhancements - :class:`~mvpa2.mappers.fx.FxMapper` now will provide consistent order of groups of items. It also got a new argument `order` with available value of 'occurrence' to that groups would get ordered by their occurance in the original dataset. * Fixes - :class:`~mvpa2.mappers.corrstability.CorrStability` should be able to deal with other sample attributes (not only 'targets') and should divide by variance correctly to provide correlation coefficient as output. - robustify check scipy's rdist which should avoid crash upon import of mvpa2.suite because of stripped down scipy 1.4.0 API. - various typos in docstrings (we do welcome contributions ;) ). * 2.3.0 (Thu, 5 March 2014) * **Warning**: Due to a significant number of new features and some internal changes, loading of HDF5 files saved with previous versions might be impaired. * New functionality (>73 commits) - Multi-threaded, surface-based searchlight queryengine :func:`~mvpa2.misc.surfing.queryengine.disc_surface_queryengine` supporting as output space either surfaces (:class:`~mvpa2.misc.surfing.queryengine.SurfaceVerticesQueryEngine`; recommended) or volumes (:class:`~mvpa2.misc.surfing.queryengine.SurfaceVoxelsQueryEngine`). - :class:`~mvpa2.misc.plot.flat_surf.FlatSurfacePlotter` supporting flattened cortical surfaces. - I/O support for AFNI NIML (dset, :mod:`~mvpa2.support.nibabel.afni_niml_dset`; annotation, :mod:`~mvpa2.support.nibabel.afni_niml_annot`), AFNI 1D datasets (:mod:`~mvpa2.support.nibabel.afni_suma_1d`), SUMA surface specification (:mod:`~mvpa2.support.nibabel.afni_suma_spec`), Freesurfer ASCII surfaces (:mod:`~mvpa2.support.nibabel.surf_fs_asc`), GIFTI surfaces (:mod:`~mvpa2.support.nibabel.surf_gifti` through nibabel). Input support for Caret binary surfaces (:mod:`~mvpa2.support.nibabel.surf_caret`), EEGlab ASCII (:meth:`mvpa2.datasets.eeglab.eeglab_dataset`), AFNI NIML ( ROI, :mod:`~mvpa2.support.nibabel.afni_niml_roi`). - Experimental support for saving AttrDataset files directly to NIML format using :mod:`~mvpa2.datasets.niml`. - Freesurfer/AFNI/SUMA preprocessing wrapper script ``pymvpa2-prep-afni-surf`` for surface-based analyses. - Winner-take-all measures :mod:`~mvpa2.measures.winner`. - New command line interface that provides access to the most commonly used functionality (dataset creation, pre-processing, cross-vlaidation, searchlights and data export). - :class:`~mvpa2.mappers.glm.GLMMapper for data transformation into parameter estimates of a general linear model (built from pre-defined regressors and/or dataset sample attributes. Two implementations with different features are provided: :class:`~mvpa2.mappers.glm.statsmodels_glm.StatsmodelsGLMMapper` and :class:`~mvpa2.mappers.glm.nipy_glm.NiPyGLMMapper`. - Spectral filtering mapper :class:`~mvpa2.mappers.filters.IIRFilter`. * Enhancements (>130 commits) - :func:`~mvpa2.datasets.mri.fmri_dataset` load support for AFNI NIFTI volumes with time in the fifth dimension (data is automagically squeezed to 4D). - :func:`~mvpa2.datasets.mri.map2nifti` sets ``cal_`` fields to correspond to the range of the data. - Many parts of the tutorial were reworked, set of examples expanded, and also converted to IPython notebooks. - :func:`~mvpa2.datasets.eventrelated` extended to output GLM regression fits as features from HRF models (relying on NiPy for GLM modeling). - Class parameters now support programatic validation of values, auto-generated documentation and improved error messages. - More informative progress bar for long running processes, such as searchlights. - Replace all (broken) implementations for similarity structure analyses with new measures for computing pairwise pattern distances, and their consistency, or similarity to a target structure (:mod:`~mvpa2.measures.rsa`). - New examples to show integration with scikit-learn implementations of classification, regression, and data transformation algorithm. * Fixes (>88 commits) - Makefile fetch-data retrieves the data correctly. - HDF5 backend fixes to deal with nested/recursive structures and higher tolerance in loading HDF5 from older version. * 2.2.0 (Sun, Sep 16 2012) * New functionality (14 commits) - New HDF5-based storage backend for :class:`~mvpa2.measures.searchlight.Searchlight` the can significantly speed up serialization of large result dataset in parallelized computations. - New fast searchlight :class:`~mvpa2.measures.nnsearchlight.M1NNSearchlight` (and helper :func:`~mvpa2.measures.nnsearchlight.sphere_m1nnsearchlight`) to run mean-1-nearest-neighbor searchlights. - New mappers for adding an axis to a dataset (:class:`~mvpa2.mappers.shape.AddAxisMapper`), and for transposing a dataset (:class:`~mvpa2.mappers.shape.TransposeMapper`). - Improved implementation of SciPy's :func:`~mvpa2.misc.stats.ttest_1samp` with support for masked arrays and alternative hypotheses. - Individual tutorial chapters are now available for download as IPython notebooks. A ``rst2ipynb`` converter is available in ``tools/``. - New ``pymvpa2-tutorial`` command line utility to start a PyMVPA tutorial session, either in a console IPython session, or using the IPython notebook server. - New wrapper functions for data generators/loaders in ``sklearn.datasets``, available in :mod:`mvpa2.datasets.sources.sklearn_data`. * Enhancements (89 commits) - Initial Python 3 compatibility (spear-headed by Tiziano Zito). - Bayesian hypothesis testing with :class:`~mvpa2.clfs.transerror.BayesConfusionHypothesis` now supports literal hypotheses specification, custom hypotheses subsets, and computing of posterior probabilities. - Allow for accessing fitted distributions in :class:`~mvpa2.clfs.stats.MCNullDist`. - Extensions and improvements to the tutorial chapter on statistical evaluation. - Expose distance function as a property `dfx` of :class:`~mvpa2.clfs.knn.kNN`. - Extended :class:`~mvpa2.generators.base.Sifter` with ability to discard unbalanced partitions. - :func:`~mvpa2.base.hdf5.h5save` now creates missing directories automatically by default. - Dedicated training for :class:`~mvpa2.algorithms.hyperalignment.Hyperalignment`, and new auto-train capability. - :class:`~mvpa2.clfs.transerror.BayesConfusionHypothesis` now computes optional posterior probabilities, and supports hypothesis definitions using literal labels. * API changes - All command line tools have been renamed to have a consistent 'pymvpa2-' prefix. * Fixes (77 commits) - HDF5 now properly stores object-type ndarray, where it the array shape was unintentionally modified on-load before (Fixes #84). - HDF5 can now reconstruct 'builtin' objects (Fixes #86). - Check value data type and convert to float when collecting performance statistics to avoid numerical problems. - Do not fail in :class:`~mvpa2.clfs.transerror.BayesConfusionHypothesis` when a dataset does not provide class labels. * 2.1.0 (Fri, June 29 2012) * Fixes - :func:`~mvpa2.misc.support.mask2slice` failed to convert an array of ``False`` values into ``slice(None, 0, None)`` (Fixes #56). - A number of fixes to the HDF5 IO code that ignored parts of an object's state when custom ``__reduce__()`` implementations were used (Fixes #42), and had problems storing metaclass types (Fixes #78). - Proper single quotes in documentation code snippets within PDFs. - Memory leak (model pointer) in LIBSVM bindings. * Enhancements - All searchlight implementations can now optionally store the IDs of all features for each generated ROI (conditional attr. ``roi_feature_ids``) - Add :func:`~mvpa2.misc.neighborhood.scatter_neighborhoods` to aid sparse sampling of spaces. - Add :class:`~mvpa2.clfs.transerror.ConfusionMatrixError` to compute confusion matrices with an error function interface (e.g. for ``CrossValidation(errorfx=...)``). This class existed for a long time, but was hidden in the unit tests. - Add :class:`~mvpa2.clfs.transerror.Confusion` to compute confusion matrices with a Node interface (e.g. for ``CrossValidation(postproc=...)``). This is useful if confusion matrices are necessary as an intermediate result and further processing with other nodes is desired. * New functionality - Add :class:`~mvpa2.clfs.transerror.BayesConfusionHypothesis` to perform Bayesian hypothesis testing of multi-class confusion statistics. This is useful to assess the likelihood of a particular (or all possible) grouping of classes being distinguishable. - Add :class:`~mvpa2.mappers.fxy.FxyMapper` to perform arbitrary computations involving two datasets. - Add :class:`~mvpa2.mappers.base.CombinedMapper` to run a dataset through a set of mappers and combine their outputs. - Add :class:`~mvpa2.measures.statsmodels_adaptor.UnivariateStatsModels` a wrapper for using models from the statsmodels_ package as a FeaturewiseMeasure. - Add :class:`~mvpa2.misc.dcov.dCOV` and :func:`~mvpa2.misc.dcov.dcorcoef` to quantify independence of (multivariate) signals. * API changes - Deprecating ``GLM`` that is now implemented with UnivariateStatsModels. This deprecated GLM class no longer supports the ``zstat`` calculation, and none of its previous conditional attributes are available anymore. * 2.0.1 (Tue, Mar 27 2012) Primarily a bugfix release * Fixes (21 BF commits) - HDF5 storage -- handle loading of objects with bound ``builtin_function_or_method``. - Use system-wide ``autosummary/generate.py`` for sphinx >= 1.1.2 (Closes: #658593). - :class:`~mvpa2.base.state.ConditionalAttribute` should not loose value in deepcopy when default off (Fixes #63). - Correct handling of scalar mean/std values for :class:`~mvpa2.mappers.zscore.ZScoreMapper`. - MRI data import via _img2data now works with unicode filenames (Fixes #60). - Should work with IPython >= 0.11 now (Fixes #59). - Various small fixes to improve tests and functionality. - Fix :class:`SMLR` segfaults on Windows (Thanks cgohlke for the patch). * Enhancements (29 ENH, OPT, and NF commits) - :class:`~mvpa2.mappers.fx.FxMapper` calls functions natively (instead of a slow row/column at a time) if they carry ``axis`` as the 2nd argument. Provides tremendous speed up for :func:`mean_sample` etc. - :func:`~mvpa2.misc.support.xrandom_unique_combinations` generator for random unique combinations. - :func:`~mvpa2.misc.fx.dual_gaussian` made more robust by not handling negative values for the standard deviations. - :func:`~mvpa2.misc.fx.dual_positive_gaussian`. - Expose "sensitivities" for :class:`PLR`. - :class:`~mvpa2.generators.partition.NFoldPartitioner` float option for ``cvtype`` and intelligent behavior on 'random' limited by 'count' given a large number of folds. - Add few additional learners from :mod:`sklearn` to the warehouses: ExtraTrees, RandomForest, LassoLarsIC. - ``__repr__`` for :class:`Partitioner`s. - Add new performance metric -- F1 score -- in the confusion matrix summary stats. - :class:`CachedQueryEngine` does not rely now on id but on the exact value of the query parameters (converted to hashable types). Before it could behave incorrectly on rare occasions. * API changes - Deprecating ``.splitattr`` if favor of ``.attr`` in :class:`mvpa2.generators.partition.Partitioner` * 2.0.0 (Mon, Dec 19 2011) This release aggregates all the changes occurred between official releases in 0.4 series and various snapshot releases (in 0.5 and 0.6 series). To get better overview of high level changes see :ref:`release notes for 0.5 ` and :ref:`0.6 ` as well as summaries of release candidates below * Fixes (23 BF commits) - Significance level in the right tail was fixed to include the value tested -- otherwise resulted in optimistic bias (or absurdly high significance in improbable case if all estimates having the same value). - Compatible with the upcoming IPython 0.12 and renamed sklearn (Fixes #57). - Do not double-train ``slave`` classifiers while assessing sensitivities (Fixes #53). * Enhancements (30 ENH + 3 NF commits) - Resolving voting ties in kNN based on mean distance, and randomly in SMLR. - :class:`kNN`\'s ``ca.estimates`` now contains dictionaries with votes for each class. - Consistent zscoring in :class:`Hyperalignment`. * 2.0.0~rc5 (Wed, Oct 19 2011) * **Major**: to allow easy co-existence of stable PyMVPA 0.4.x, 0.6 development ``mvpa`` module was renamed into mod:`mvpa2`. * Fixes - Compatible with the new Shogun 1.x series. - Compatible with the new h5py 2.x series. - :file:`mvpa-prep-fmri` -- various compatibility fixes and smoke testing. - Deepcopying :class:`SummaryStatistics` during __add__. * Enhancements - Tutorial uses :mod:`mvpa2.tutorial_suite` now. - Better suppression of R warnings when needed. - Internal attributes of many classes were exposed as properties. - More unification of ``__repr__`` for many classes. * 0.6.0~rc4 (Wed, Jun 14 2011) * Fixes - Finished transition to :mod:`nibabel` conventions in `plot_lightbox`. - Addressed :mod:`matplotlib.hist` API change. - Various adjustments in the tests batteries (:mod:`nibabel` 1.1.0 compatibility, etc) * New functionality - Explicit new argument ``flatten`` to from_wizard -- default behavior changed if mapper was provided as well * Enhancements - Elaborated ``__str__`` and ``__repr__`` for some Classifiers and Measures * 0.6.0~rc3 (Thu, Apr 12 2011) * Fixes - Bugfixes regarding the interaction of FlattenMapper and BoxcarMapper that affected event-related analyses. - `Splitter` now handles attribute value `None` for splitting properly. - `GNBSearchlight` handling of ``roi_ids``. - More robust detection of mod:`scikits.learn` and :mod:`nipy` externals. * New functionality - Added a `Repeater` node to yield a dataset multiple times and `Sifter` node to exclude some datasets. Consequently, the "nosplitting" mode of `Splitter` got removed at the same time. - :file:`tools/niils` -- little tool to list details (dimensionality, scaling, etc) of the files in nibabel-supported formats. * Enhancements - Numerous documentation fixes. - Various improvements and increased flexibility of null distribution estimation of Measures. - All attribute are now reported in sorted order when printing a dataset. - `fmri_dataset` now also stores the input image type. - `Crossvalidation` can now take a custom `Splitter` instance. Moreover, the default splitter of CrossValidation is more robust in terms of number and type of created splits for common usage patterns (i.e. together with partitioners). - `CrossValidation` takes any custom Node as ``errorfx`` argument. - `ConfusionMatrix` can now be used as an ``errorfx`` in Crossvalidation. - ``LOE(ACC): Linear Order Effect in ACC`` was added to `ConfusionMatrix` to detect trends in performances across splits. - A `Node`\ s postproc is now accessible as a property. - `RepeatedMeasure` has a new 'concat_as' argument that allows results to be concatenated along the feature axis. The default behavior, stacking as multiple samples, is unchanged. - `Searchlight` now has the ability to mark the center/seed of an ROI in with a feature attribute in the generated datasets. - ``debug`` takes ``args`` parameter for delayed string comprehensions. It should reduce run-time impact of ``debug()`` calls in regular, non ``-O`` mode of Python operation. - String summaries and representations (provided by ``__str__`` and ``__repr__``) were made more exhaustive and more coherent. Additional properties to access initial constructor arguments were added to variety of classes. * Internal changes - New debug target ``STDOUT`` to allow attaching metrics (e.g. traceback, timestamps) to regular output printed to stdout - New set of decorators to help with unittests - ``@nodebug`` to disable specific debug targets for the duration of the test. - ``@reseed_rng`` to guarantee consistent random data given initial seeding. - ``@with_tempfile`` to provide a tempfile name which would get removed upon completion (test success or failure) - Dropping daily testing of ``maint/0.5`` branch -- RIP. - `Collection`\ s were provided with adequate ``(deep|)copy``. And `Dataset` was refactored to use `Collection`\ s ``copy`` method. - ``update-*`` Makefile rules automatically should fast-forward corresponding ``website-updates`` branch - `MVPA_TESTS_VERBOSITY` controls also :mod:`numpy` warnings now. - `Dataset.__array__` provides original array instead of copy (unless dtype is provided) Also adapts changes from 0.4.6 and 0.4.7 (see corresponding changelogs). * 0.6.0~rc2 (Thu, Mar 3 2011) * Various fixes in the mvpa.atlas module. * 0.6.0~rc1 (Thu, Feb 24 2011) * Many, many, many * For an overview of the most drastic changes :ref:`see constantly evolving release notes for 0.6 ` * 0.5.0 (sometime in March 2010) This is a special release, because it has never seen the general public. A summary of fundamental changes introduced in this development version can be seen in the :ref:`release notes `. Most notably, this version was to first to come with a comprehensive two-day workshop/tutorial. * 0.4.7 (Tue, Mar 07 2011) (Total: 12 commits) A bugfix release * Fixed - Addressed the issue with input NIfTI files having ``scl_`` fields set: it could result in incorrect analyses and map2nifti-produced NIfTI files. Now input files account for scaling/offset if ``scl_`` fields direct to do so. Moreover upon map2nifti, those fields get reset. - :file:`doc/examples/searchlight_minimal.py` - best error is the minimal one * Enhancements - :class:`~mvpa.clfs.gnb.GNB` can now tolerate training datasets with a single label - :class:`~mvpa.clfs.meta.TreeClassifier` can have trailing nodes with no classifier assigned * 0.4.6 (Tue, Feb 01 2011) (Total: 20 commits) A bugfix release * Fixed (few BF commits): - Compatibility with numpy 1.5.1 (histogram) and scipy 0.8.0 (workaround for a regression in legendre) - Compatibility with libsvm 3.0 - :class:`~mvpa.clfs.plr.PLR` robustification * Enhancements - Enforce suppression of numpy warnings while running unittests. Also setting verbosity >= 3 enables all warnings (Python, NumPy, and PyMVPA) - :file:`doc/examples/nested_cv.py` example (adopted from 0.5) - Introduced base class :class:`~mvpa.clfs.base.LearnerError` for classifiers' exceptions (adopted from 0.5) - Adjusted example data to live upto nibabel's warranty of NIfTI standard-compliance - More robust operation of MC iterations -- skip iterations where classifier experienced difficulties and raise an exception (e.g. due to degenerate data) * 0.4.5 (Fri, Oct 01 2010) (Total: 27 commits) A bugfix release * Fixed (13 BF commits): - Compatible with LIBSVM >= 2.91 (Closes: #583018) - No string exceptions raised (Python 2.6 compatibility) - Setting of shrinking parameter in :mod:`~mvpa.clfs.sg` interface - Deducing number of SVs for SVR (LIBSVM) - Correction of significance in the tails of non-parametric tests * Miscellaneous: - Development repository moved to http://github.com/PyMVPA/PyMVPA * 0.4.4 (Mon, Feb 2 2010) (Total: 144 commits) Primarily a bugfix release, probably the last in 0.4 series since development for 0.5 release is leaping forward. * New functionality (19 NF commits): - :class:`~mvpa.clfs.gnb.GNB` implements Gaussian Naïve Bayes Classifier. - :func:`~mvpa.misc.fsl.base.read_fsl_design` to read FSL FEAT design.fsf files (Contributed by Russell A. Poldrack). - :class:`~mvpa.datasets.miscfx.SequenceStats` to provide basic statistics on labels sequence (counter-balancing, autocorrelation). - New exceptions :class:`~mvpa.clfs.base.DegenerateInputError` and :class:`~mvpa.clfs.base.FailedToTrainError` to be thrown by classifiers primarily during training/testing. - Debug target `STATMC` to report on progress of Monte-Carlo sampling (during permutation testing). * Refactored (15 RF commits): - To get users prepared to 0.5 release, internally and in some examples/documentation, access to states and parameters is done via corresponding collections, not from the top level object (e.g. `clf.states.predictions` instead of soon-to-be-deprecated `clf.predictions`). That should lead also to improved performance. - Adopted copy.py from python2.6 (support Ellipsis as well). * Fixed (38 BF commits): - GLM output does not depend on the enabled states any more. - Variety of docstrings fixed and/or improved. - Do not derive NaN scaling for SVM's C whenever data is degenerate (lead to never finishing SVM training). - :mod:`~mvpa.clfs.sg` : + KRR is optional now -- avoids crashing if KRR is not available. + tolerance to absent `set_precompute_matrix` in svmlight in recent shogun versions. + support for recent (present in 0.9.1) API change in exposing debug levels. - Python 2.4 compatibility issues: :class:`~mvpa.clfs.knn.kNN` and :class:`~mvpa.featsel.ifs.IFS` * 0.4.3 (Sat, 5 Sep 2009) (Total: 165 commits) * Online documentation editor is no longer available due to low demand -- please submit changes via email. * Performance (Contributed by Valentin Haenel) (3 OPT commits): - Further optimized LIBSVM bindings. - Copy-if-sorted in :class:`~mvpa.datasets.base.Dataset.selectFeatures`. * New functionality (25 NF commits): - :class:`~mvpa.mappers.procrustean.ProcrusteanMapper` with orthogonal and oblique transformations. - Ability to generate simple reports using :mod:`reportlab`. See/run :file:`examples/match_distribution.py` for example. - :class:`~mvpa.clfs.meta.TreeClassifier` -- construct simple hierarchies of classifiers. - :func:`~mvpa.base.info.wtf` to report information about the system/PyMVPA to be included in the bug reports. - Parameter 'reverse' to swap training/testing splits in :class:`~mvpa.datasets.splitters.Splitter` . - Example code for the analysis of event-related dataset using :class:`~mvpa.datasets.nifti.ERNiftiDataset`. - :meth:`~mvpa.misc.io.base.SampleAttributes.toEvents` to create lists of :class:`~mvpa.misc.support.Event`. - :file:`mvpa-prep-fmri` was extended with plotting of motion correction parameters. - :class:`~mvpa.misc.io.base.ColumnData` can be explicitly told either file contains a header. - In :class:`~mvpa.atlases.base.XMLBasedAtlas` (e.g. :mod:`~mvpa.atlases.fsl` atlases) it is now possible to provide custom 'image_file' to get maps or indexes for the areas given an atlas's volume registered into subject space. - Updated included LIBSVM version to 2.89 and provided support for its "silencing". * Refactored (27 RF commits): - Dataset's :meth:`~mvpa.datasets.base.Dataset.copy` with deep=False allows for shallow copying the dataset. - :class:`~mvpa.clfs.meta.FeatureSelectionClassifier` s in :mod:`~mvpa.clfs.warehouse` not to reuse the same classifiers, but to use clones. * Fixed (70 BF commits): - :class:`~mvpa.measures.anova.OneWayAnova`: previously degrees of freedom were not considered while computing F-scores. - Majority voting strategy in :class:`~mvpa.clfs.knn.kNN`: it was not working. - Various fixes to ensure cross-platform building (:mod:`numpy` header locations, etc). - Stability fixes in :class:`~mvpa.clfs.transerror.ConfusionMatrix`. - :meth:`~mvpa.datasets.base.Dataset.idsonboundaries`: samples at the end of the sequence were not handled properly. - Proper "untraining" of :class:`~mvpa.clfs.meta.FeatureSelectionClassifier` s classifiers which use sensitivities: it could lead to various unpleasant side-effects if the same slave classifier was used simultaneously by multiple :class:`MetaClassifiers` (like :class:`~mvpa.clfs.meta.TreeClassifier`). * Documentation (25 DOC commits): citations, spelling corrections, etc. * 0.4.2 (Mon, 25 May 2009) * New correlation stability measure (:class:`~mvpa.measures.corrstability.CorrStability`). * New elastic net classifier (:class:`~mvpa.clfs.enet.ENET`). * New GLM-Net regression/classifier (:class:`~mvpa.clfs.glmnet.GLMNET`). * New measure :class:`~mvpa.measures.anova.CompoundOneWayAnova`. * New measure :class:`~mvpa.measures.ds.DSMDatasetMeasure`. * New meta-measure :class:`~mvpa.measures.splitmeasure.TScoredFeaturewiseMeasure`. * New basic :class:`~mvpa.measures.glm.GLM` implementation. * New examples for Gaussian process regression. * New example showing a searchlight analysis employing a dissimilarity matrix based measure. * New :class:`~mvpa.mappers.zscore.ZScoreMapper`. * New import helper for FSL design matrices (:class:`~mvpa.misc.fsl.base.FslGLMDesign`). * New implementation of a mapper using a self-organizing map (:class:`~mvpa.mappers.som.SimpleSOMMapper`) and a corresponding example. * Matplotlib backend is now configurable via :envvar:`MVPA_MATPLOTLIB_BACKEND`. * PyMVPA version is now avialable from :data:`mvpa.__version__`. * Renamed `mvpa.misc.plot.errLinePLot` to :func:`~mvpa.misc.plot.plotErrLine` for consistency. * Fixed :class:`~mvpa.datasets.splitters.NFoldSplitter` to support N-3 and larger splits. * Improved speed of LIBSVM backend. Thanks to Valentin Haenel and Tiziano Zito. * Updated included LIBSVM version to 2.89. * Adjust LIBSVM Python interface for recent NumPy API and latest LIBSVM release 2.89. * Refactored examples parser into a standalone tool to turn PyMVPA examples into restructured text sources. * 0.4.1 (Sat, 24 Jan 2009) * Unit tests and example data are now also installed. In conjunction with :func:`mvpa.test`, this allow to easily run unittests from within Python. * :class:`~mvpa.datasets.nifti.NiftiDataset` capable to handle files with less than 4 dimensions, which can, optionally, be provided as a list of filenames or :class:`~nifti.NiftiImage` objects. That makes it easy to load data from a sequence of files. * Changes (code refactorings) which *might impact* any user who imports from :mod:`~mvpa.suite`: - Pre-populated warehouses of classifiers and regressions are renamed from clfs and regrs into :data:`~mvpa.clfs.warehouse.clfswh` and :data:`~mvpa.clfs.warehouse.regrswh` respectively. - :class:`~mvpa.misc.io.hamster.Hamster` is not derived from :class:`dict` any longer -- just from a basic :class:`object` class. API includes methods 'dump', 'asdict' and a property 'registered'. * Changes (code refactorings) which *should not impact* any user who imports from :mod:`~mvpa.suite`: - Meta classifiers definitions moved from :mod:`~mvpa.clfs.base` into :mod:`~mvpa.clfs.meta`. - Splitters definitions moved from :mod:`~mvpa.datasets.splitter` into :mod:`~mvpa.datasets.splitters` * 0.4.0 (Sat, 15 Nov 2008) * Add :class:`~mvpa.misc.io.hamster.Hamster`, as a simple facility to easily store any serializable objects in a compressed file and later on resurrect all of them with a single line of code. * SVM backend is now configurable via :envvar:`MVPA_SVM_BACKEND` (libsvm or shogun). * Non-deterministic tests in the unittest battery are now configurable via :envvar:`MVPA_TESTS_LABILE`. * New helper to determine and plot the best matching distribution(s) for the data (matchDistribution, plotDistributionMatches). It is WiP thus API can change in the upcoming release. * Simplifies API of mappers. * Splitters can now limit the number of splits automatically. * New :class:`~mvpa.mappers.base.CombinedMapper` to map between multiple, independent dataspace and a common feature space. * New :class:`~mvpa.mappers.base.ChainMapper` to create chains of mappers of abitrary lenght (e.g. to build preprocessing pipelines). * New :class:`~mvpa.datasets.event.EventDataset` to rapidly extract boxcar-shaped samples from data array using a simple list of :class:`~mvpa.misc.support.Event` definitions. * Removed obsolete MetricMapper class. :class:`~mvpa.mappers.base.Mapper` itself provides the facilities for dealing with metrics. * :class:`~mvpa.mappers.boxcar.BoxcarMapper` can now handle data with more than four dimensions/axis and also performs reverse mapping of single boxcar samples. * :class:`~mvpa.misc.fsl.base.FslEV3` can now convert EV3 files into a list of :class:`~mvpa.misc.support.Event` instances. * Results of tests for external dependencies are now stored in PyMVPA's config manager (`mvpa.cfg`) and can be stored to a file (not done automatically at the moment). This will significantly decrease the time needed to import the `mvpa` module, as it prevents the repeated and lengthy tests for working externals. * Initial support for ROC computing and AUC as an accuracy measure. * Weights of LARS are now available via :class:`~mvpa.clfs.lars.LARSWeights`. * Added an initial list of MVPA-related references to the manual, tagged with keywords and comments as well is DOI or similar URL reference to the original document. * Added initial glossary to the manual. * New 'Module reference', as a middle-ground between manual and API reference. * New manual section about meta-classifiers (contributed by James M. Hughes). * New minimal example for a 'getting started' section in the manual. * Former :envvar:`MVPA_QUICKTEST` was renamed to :envvar:`MVPA_TESTS_QUICK`. * Update installation instructions for RPM-based distributions to make use of the OpenSUSE Build Service. * Updated install instructions for several RPM-based GNU/Linux distributions. * Switch from distutils to numpy.distutils (no change in dependencies). * Depend on PyNIfTI >= 0.20081017.1 and gain a smaller memory footprint when accessing NIfTI files via all datasets with NIfTI support. * Added workaround to make PyMVPA work with older Shogun releases and those from 0.6.4 on, which introduced backward-incompatible API changes. * 0.3.1 (Sun, 14 Sep 2008) * New manual section about feature selection with a focus on RFE. Contributed by James M. Hughes. * New dataset type :class:`~mvpa.datasets.channel.ChannelDataset` for data structured in channels. Might be useful for data modalities like EEG and MEG. This dataset includes support for common preprocessing steps like resampling and baseline signal substraction. * Plotting of topographies on heads. Thanks to Ingo Fründ for contributing this code. Additionally, a new example shows how to do such plots. * New general purpose function for generating barplots and candlestick plots with error bars (:func:`~mvpa.misc.plot.base.plotBars`). * Dataset supports mapping of string labels onto numerical labels, removing the need to perform this mapping manually in user code. 'clfs_examples.py' is adjusted accordingly to demonstrate the new feature. * New :meth:`mvpa.clfs.base.Classifier.summary` method to dump classifier settings. * Improved and more flexible :func:`~mvpa.misc.plot.erp.plotERPs`. * New :class:`~mvpa.measures.irelief.IterativeRelief` sensitivity analyzer. * Added visualization of confusion matrices via :meth:`mvpa.clfs.transerror.ConfusionMatrix.plot` inspired by Ingo Fründ. * The PyMVPA version is now globally available in :data:`mvpa.pymvpa_version`. * BugFix: :class:`~mvpa.misc.io.meg.TuebingenMEG` reader failed in some cases. * Several improvements (docs and implementation) for building PyMVPA on MacOS X. * New convenience accessor methods (:meth:`~mvpa.datasets.base.Dataset.select`, :meth:`~mvpa.datasets.base.Dataset.where` and :meth:`~mvpa.datasets.base.Dataset.__getitem__`) for :class`~mvpa.datasets.base.Dataset`. * New :func:`mvpa.seed()` function to configure the random number generators from user code. * Added reader for a MEG sensor locations format (:class:`~mvpa.misc.io.meg.TuebingenMEGSensorLocations`). * Initial model selection support for GRP (using openopt). * And tons of minor bugfixes, additional tests and improved documentation. * 0.3.0 (Mon, 18 Aug 2008) * Import of binary EEP files (used by EEProbe) and EEPDataset class. * Initial version of a meta dataset class (MetaDataset). This is a container for multiple datasets, which behaves like a dataset itself. * Regression performance is summarized now within RegressionStatistics. * Error functions: CorrErrorPFx, RelativeRMSErrorFx. * Measures: CorrCoef. * Data generators: chirp, wr1996 * Few more examples: curvefitting, kerneldemo, smellit, projections * Updated kNN classifier. kNN is now able to use custom distance function to determine that nearest neighbors. It also (re)gained the ability to do simple majority or weighted voting. * Some initial convenience functions for plotting typical results and data exploration. * Unified configuration handling with support for user-specific and analysis-specific config files, as well as the ability to override all config settings via environment variables. The configuration handling is used for PyMVPA internal settings, but can also be easily used for custom (user-)settings. * Improved modularity, e.g. SciPy is not required anymore, but still very useful. * Initial implementations of ICA and PCA mapper using functionality provided by MDP. These mappers are more or less untested and should be used with great care. * Further improved docstrings of some classes, but still a long way to go. * New 'boxcar' mapper, which is the similar to the already present transformWithBoxCar() function, but implemented as a mapper. * New SampleGroupMapper that can be used for e.g. block averaging of samples. See new FAQ item. * Stripped redundant suffixes from module names, e.g. mvpa.datasets.niftidataset -> mvpa.datasets.nifti * mvpa.misc.cmdline variables opt* and opts* were groupped within opt and optss class instances. Also names of the options were changed to match 'dest' of the options. Use tools/refactor.py to quickly fix your custom code. * Change all references to PyMVPA website to www.pymvpa.org. * Make website stylesheet compatible with sphinx 0.4. * Several minor improvements of the compatibility with MacOS. * Extended FAQ section of the manual. * Bugfix: double_gamma_hrf() ignoring K2 argument. * 0.2.2 (Tue, 17 Jun 2008) * Extended build instructions: Added section on OpenSUSE. * Replaced ugly PYMVPA_LIBSVM environment variable to trigger compiling the LIBSVM wrapper with a proper '--with-libsvm' switch in setup.py. Additionally, setup.py now detects if included LIBSVM has been built and enables LIBSVM wrapper automatically in this case. * Added proper Makefiles for LIBSVM copy, with configurable compiler flags. * Added 'setup.cfg' to remove the need to manually specify swig-opts (Windows specific configuration is in 'setup.cfg.win'). * 0.2.1 (Sun, 15 Jun 2008) * Several improvements to make building PyMVPA on Windows systems easy (e.g. added dedicated Makefile.win to build a binary installer). * Improved and extended documentation for building and installing PyMVPA. * Include a minimal copy of the required (patched) LIBSVM library (currently version 2.85.0) for convenience. This copy is automatically compiled and used for the LIBSVM wrapper when PyMVPA built using the `Make` approach. * 0.2.0 (Wed, 29 May 2008) * New Splitter class (HalfSplitter) to split into first and second half. * New Splitter class (CustomSplitter) to allow for splits with an arbitrary number of datasets per split and the ability to specify the association of samples with any of those datasets (not just the validation set). * New sparse multinomial logistic regression (SMLR) classifier and associated sensitivity analyzer. * New least angle regression classifier (LARS). * New Gaussian process regression classifier (GPR). * Initial documentation on extending PyMVPA. * Switch to Sphinx for documentation handling. * New example comparing the performance of all classifiers on some artificial datasets. * New data mapper performing singular value decomposition (SVDMapper) and an example showing its usage. * More sophisticated data preprocessing: removal of non-linear trends and other arbitrary confounding regressors. * New `Harvester` class to feed data from arbitrary generators into multiple objects and store results of returned values and arbitrary properties. * Added documentation about how to build patched libsvm version with sane debug output. * libsvm bindings are not build by default anymore. Instructions on how to reenable them are available in the manual. * New wrapper from SVM implementation of the Shogun toolbox. * Important bugfix in RFE, which reported incorrect feature ids in some cases. * Added ability to compute stats/probabilities for all measures and transfer errors. * 0.1.0 (Wed, 20 Feb 2008) * First public release. .. _statsmodels: http://statsmodels.sourceforge.net pymvpa2-2.6.4/MANIFEST.in000066400000000000000000000002411323370031300146470ustar00rootroot00000000000000include AUTHOR COPYING MANIFEST.in setup.* py3tool.py include Changelog TODO Makefile* recursive-include doc * recursive-include tools * recursive-include 3rd * pymvpa2-2.6.4/Makefile000066400000000000000000000673361323370031300145730ustar00rootroot00000000000000PROFILE_FILE=$(CURDIR)/$(BUILDDIR)/main.pstats COVERAGE_REPORT=$(CURDIR)/$(BUILDDIR)/coverage BUILDDIR=$(CURDIR)/build BUILD3DIR=$(CURDIR)/build/py3k HTML_DIR=$(BUILDDIR)/html DOC_DIR=$(CURDIR)/doc TUT_DIR=$(CURDIR)/datadb/tutorial_data/tutorial_data DOCSRC_DIR=$(DOC_DIR)/source DOCBUILD_DIR=$(BUILDDIR)/doc NOTEBOOKBUILD_DIR=$(HTML_DIR)/notebooks MAN_DIR=$(BUILDDIR)/man APIDOC_DIR=$(HTML_DIR)/api PDF_DIR=$(BUILDDIR)/pdf LATEX_DIR=$(BUILDDIR)/latex WWW_DIR=$(BUILDDIR)/website SWARM_DIR=$(BUILDDIR)/swarm WWW_UPLOAD_URI=www.pymvpa.org:/home/www/www.pymvpa.org/pymvpa WWW_UPLOAD_URI_DEV=dev.pymvpa.org:/home/www/dev.pymvpa.org/pymvpa DATA_HOST=data.pymvpa.org DATA_DIR=datadb DATA_SUBDIRS='$(DATA_DIR)/tutorial_data \ $(DATA_DIR)/mnist \ $(DATA_DIR)/face_inversion_demo \ $(DATA_DIR)/hyperalignment_tutorial_data \ $(DATA_DIR)/haxby2001' DATA_UPLOAD_URI=$(DATA_HOST):/home/www/data.pymvpa.org/www/datasets SWARMTOOL_DIR=tools/codeswarm SWARMTOOL_DIRFULL=$(CURDIR)/$(SWARMTOOL_DIR) RSYNC_OPTS=-az -H --no-perms --no-owner --verbose --progress --no-g --exclude prev/ RSYNC_OPTS_UP=-rzlhv --delete # -p --chmod=Dg+s,g+rw,o+rX # # The Python executable to be used # PYTHON = python PYTHON3 = python3 # Setup local PYTHONPATH depending on the version of provided $(PYTHON) PYVER = $(shell $(PYTHON) -c 'import sys; print(sys.version_info[0])') ifeq ($(PYVER),2) # just use the local sources and run tests 'in source' TEST_DIR = . LPYTHONPATH = .:$(PYTHONPATH) else # for 3 (and hopefully not above ;) ) -- corresponding build/ # since sources go through 2to3 conversion TEST_DIR = $(BUILD3DIR) LPYTHONPATH = $(BUILD3DIR):$(PYTHONPATH) endif # Assure non-interactive Matplotlib and provide local paths helper MPLPYTHONPATH = PYTHONPATH=.:$(LPYTHONPATH) MVPA_MATPLOTLIB_BACKEND=agg MPLPYTHON = $(MPLPYTHONPATH) $(PYTHON) MPLPYTHON3 = $(MPLPYTHONPATH) $(PYTHON3) NOSETESTS = $(PYTHON) $(shell which nosetests) # # Helpers for version handling. # Note: can't be ':='-ed since location of invocation might vary DEBCHANGELOG_VERSION = $(shell dpkg-parsechangelog | egrep ^Version | cut -d ' ' -f 2,2 | cut -d '-' -f 1,1) SETUPPY_VERSION = $(shell $(PYTHON) setup.py -V) # # Automatic development version # #yields: LastTagName_CommitsSinceThat_AbbrvHash DEV_VERSION := $(shell git describe --abbrev=4 HEAD |sed -e 's/-/+/g' |cut -d '/' -f 2,2) # By default we are releasing with setup.py version RELEASE_VERSION ?= $(SETUPPY_VERSION) RELEASE_CODE ?= # Conditional depends regulated from outside # ifdef PYMVPA_NO_3RD build_depends := else build_depends := endif # # Details on the Python/system # PYVER := $(shell $(PYTHON) -V 2>&1 | cut -d ' ' -f 2,2 | cut -d '.' -f 1,2) # # Little helpers # mkdir-%: if [ ! -d $($*) ]; then mkdir -p $($*); fi # # Building # all: build # build included 3rd party pieces (if present) 3rd: 3rd-stamp 3rd-stamp: find 3rd -mindepth 1 -maxdepth 1 -type d | \ while read d; do \ [ -f "$$d/Makefile" ] && $(MAKE) -C "$$d" || :; \ done touch $@ debian-build: # reuse is better than duplication (yoh) debian/rules build build: build-stamp build-stamp: $(build_depends) $(PYTHON) setup.py config --noisy $(PYTHON) setup.py build_ext --inplace touch $@ build3: build3-stamp build3-stamp: $(build_depends) $(PYTHON3) setup.py config --noisy $(PYTHON3) setup.py build_ext --inplace touch $@ # # Cleaning # # this target is used to clean things for a fresh build clean: @echo "I: Performing clean operation" # clean 3rd party pieces find 3rd -mindepth 1 -maxdepth 1 -type d | \ while read d; do \ [ -f "$$d/Makefile" ] && $(MAKE) -C "$$d" clean || : ; \ done # clean tools $(MAKE) -C tools clean # clean pics $(MAKE) -C doc/pics clean # clean docs $(MAKE) -C doc clean -@rm -f $(DOCSRC_DIR)/examples/*.rst -@rm -f $(DOCSRC_DIR)/cmdline/*.rst # clean all bits and pieces -@rm -f MANIFEST -@rm -f mvpa2/clfs/lib*/*.so \ mvpa2/clfs/lib*/*.dylib \ mvpa2/clfs/lib*/*_wrap.* \ mvpa2/clfs/lib*/*c.py \ mvpa2/tests/*.{prof,pstats,kcache} @find . -name '*.py[co]' \ -o -name '*,cover' \ -o -name '.coverage' \ -o -name 'iterate.dat' \ -o -iname '*~' \ -o -iname '*.kcache' \ -o -iname '*.gch' \ -o -iname '*_flymake.*' \ -o -iname '#*#' | xargs -L 10 rm -f -@rm -rf build -@rm -rf dist *report __pycache__ -@rm -f *-stamp *_report.pdf *_report.log pymvpa2.cfg # this target should put the source tree into shape for building the source # distribution distclean: clean # if we are on debian system - we might have left-overs from build -@$(MAKE) debian-clean -@rm -rf tools/codeswarm debian-clean: # remove stamps for builds since state is not really built any longer -fakeroot debian/rules clean # # Documentation # doc: website manpages pics: $(MAKE) -C doc/pics manpages: mkdir-MAN_DIR @echo "I: Creating manpages" PYTHONPATH=$(LPYTHONPATH) help2man -N -n 'preprocess fMRI data for PyMVPA' \ bin/pymvpa2-prep-fmri > $(MAN_DIR)/pymvpa2-prep-fmri.1 PYTHONPATH=$(LPYTHONPATH) help2man -N -n 'start a PyMVPA tutorial session' \ bin/pymvpa2-tutorial > $(MAN_DIR)/pymvpa2-tutorial.1 PYTHONPATH=$(LPYTHONPATH) help2man --no-discard-stderr -N -n \ 'preprocess FreeSurfer surfaces for AFNI/SUMA' \ bin/pymvpa2-prep-afni-surf > $(MAN_DIR)/pymvpa2-prep-afni-surf.1 PYTHONPATH=$(LPYTHONPATH) help2man --no-discard-stderr \ --help-option="--help-np" -N -n "command line interface for PyMVPA" \ bin/pymvpa2 > $(MAN_DIR)/pymvpa2.1 for cmd in $$(tr "\n'," ' ' < bin/pymvpa2 | sed -e 's/.*enabled_cmds = \[//' -e 's/\].*//'); do \ summary="$$(grep 'man: -*-' < mvpa2/cmdline/cmd_$${cmd}.py | cut -d '%' -f 2-)"; \ PYTHONPATH=$(LPYTHONPATH) help2man --no-discard-stderr \ --help-option="--help-np" -N -n "$$summary" \ "bin/pymvpa2 $${cmd}" > $(MAN_DIR)/pymvpa2-$${cmd}.1 ; \ done references: @echo "I: Generating references" tools/bib2rst_ref.py # Since mpl doesn't take env variables mpl-stamp: build echo "backend : Agg" >| $(CURDIR)/build/matplotlibrc touch $@ htmldoc: examples2rst build pics mpl-stamp notebooks manpages @echo "I: Creating an HTML version of documentation" cd $(DOC_DIR) && MVPA_EXTERNALS_RAISE_EXCEPTION=off \ PYTHONPATH=$(CURDIR):$(PYTHONPATH) \ MPLCONFIGDIR=$(CURDIR)/build HOME=$(CURDIR)/build \ $(MAKE) html BUILDDIR=$(BUILDDIR) SPHINXOPTS="$(SPHINXOPTS)" cd $(HTML_DIR)/generated && ln -sf ../_static cd $(HTML_DIR)/examples && ln -sf ../_static cd $(HTML_DIR)/workshops && ln -sf ../_static cd $(HTML_DIR)/datadb && ln -sf ../_static cp $(DOCSRC_DIR)/pics/history_splash.png $(HTML_DIR)/_images/ cp $(DOC_DIR)/pics/*-logo_h*.png $(HTML_DIR)/_static/ pdfdoc: examples2rst build pics pdfdoc-stamp pdfdoc-stamp: mpl-stamp @echo "I: Creating a PDF version of documentation" cd $(DOC_DIR) && MVPA_EXTERNALS_RAISE_EXCEPTION=off \ PYTHONPATH=$(CURDIR):$(PYTHONPATH) \ MPLCONFIGDIR=$(CURDIR)/build HOME=$(CURDIR)/build \ $(MAKE) latex BUILDDIR=$(BUILDDIR) SPHINXOPTS="$(SPHINXOPTS)" cd $(LATEX_DIR) && $(MAKE) all-pdf touch $@ # Create a handy .pdf of the manual to be printed as a book handbook: pdfdoc @echo "I: Creating a handbook of the manual" cd tools && $(MAKE) pdfbook build/tools/pdfbook -2 \ $(LATEX_DIR)/PyMVPA-Manual.pdf $(LATEX_DIR)/PyMVPA-Manual-Handbook.pdf examples2rst: examples2rst-stamp examples2rst-stamp: mkdir-DOCBUILD_DIR tools/ex2rst \ --project PyMVPA \ --outdir $(DOCSRC_DIR)/examples \ --exclude doc/examples/searchlight_app.py \ doc/examples tools/cmdex2rst \ --project PyMVPA \ --outdir $(DOCSRC_DIR)/cmdline/ \ doc/examples/cmdline touch $@ notebooks: notebooks-stamp notebooks-stamp: examples2rst mkdir -p $(NOTEBOOKBUILD_DIR) tools/rst2ipnbpy \ --baseurl http://pymvpa.org/examples \ --apiref_baseurl http://pymvpa.org/generated \ --glossary_baseurl http://pymvpa.org/glossary.html \ --outdir $(NOTEBOOKBUILD_DIR) \ --exclude doc/source/tutorial_prerequisites.rst \ --verbose \ doc/source/tutorial_*.rst doc/source/examples/*.rst touch $@ apidoc: apidoc-stamp apidoc-stamp: build # Disabled profiling for now, it consumes huge amounts of memory, so I doubt # that all buildds can do it. In theory it would only be done on a single # developer machine, because it is only necessary for the arch-all package, # but e.g. dpkg-buildpackage runs the indep target anyway -- not sure about # the buildds, though. #apidoc-stamp: profile @echo "I: Creating an API documentation with epydoc" mkdir -p $(HTML_DIR)/api LC_ALL=C MVPA_EPYDOC_WARNINGS=once tools/epydoc --config doc/api/epydoc.conf touch $@ # this takes some minutes !! # TODO: adjust for py3 compatibility profile: build mvpa2/tests/__init__.py @echo "I: Profiling unittests" @PYTHONPATH=$(LPYTHONPATH) tools/profile -K -O $(PROFILE_FILE) mvpa2/tests/__init__.py # # Website # website: website-stamp website-stamp: mkdir-WWW_DIR htmldoc pdfdoc cp -r $(HTML_DIR)/* $(WWW_DIR) cp $(LATEX_DIR)/PyMVPA-*.pdf $(WWW_DIR) tools/sitemap.sh > $(WWW_DIR)/sitemap.xml # main icon of the website cp $(DOCSRC_DIR)/pics/favicon.png $(WWW_DIR)/_images/ # for those who do not care about and just trying to download it cp $(DOCSRC_DIR)/pics/favicon.png $(WWW_DIR)/favicon.ico # provide robots.txt to minimize unnecessary traffic cp $(DOCSRC_DIR)/_static/robots.txt $(WWW_DIR)/ # provide promised pylintrc mkdir -p $(WWW_DIR)/misc && cp $(DOC_DIR)/misc/pylintrc $(WWW_DIR)/misc touch $@ upload-website: $(MAKE) website SPHINXOPTS='-D html_theme=pymvpa_online' rsync $(RSYNC_OPTS_UP) $(WWW_DIR)/* $(WWW_UPLOAD_URI)/ git update-ref refs/heads/website-updates/www HEAD upload-htmldoc: $(MAKE) htmldoc SPHINXOPTS='-D html_theme=pymvpa_online' chmod a+rX -R $(HTML_DIR) rsync $(RSYNC_OPTS_UP) $(HTML_DIR)/* $(WWW_UPLOAD_URI)/ git update-ref refs/heads/website-updates/www-html HEAD upload-website-dev: sed -i -e "s,http://disqus.com/forums/pymvpa/,http://disqus.com/forums/pymvpa-dev/,g" \ -e "s,^,
This content refers to an unreleased development version of PyMVPA
,g" \ doc/source/_themes/pymvpa_online/page.html $(MAKE) website SPHINXOPTS='-D html_theme=pymvpa_online' sed -i -e "s,http://disqus.com/forums/pymvpa-dev/,http://disqus.com/forums/pymvpa/,g" \ -e "s,^.*$$,,g" \ doc/source/_themes/pymvpa_online/page.html sed -i -e "s,www.pymvpa.org,dev.pymvpa.org,g" $(WWW_DIR)/sitemap.xml chmod a+rX -R $(WWW_DIR) rsync $(RSYNC_OPTS_UP) $(WWW_DIR)/* $(WWW_UPLOAD_URI_DEV)/ upload-htmldoc-dev: grep -q pymvpa-dev doc/source/_themes/pymvpa_online/page.html || \ sed -i -e "s,http://disqus.com/forums/pymvpa/,http://disqus.com/forums/pymvpa-dev/,g" \ -e "s,^,
This content refers to an unreleased development version of PyMVPA
,g" \ doc/source/_themes/pymvpa_online/page.html $(MAKE) htmldoc SPHINXOPTS='-D html_theme=pymvpa_online' sed -i -e "s,http://disqus.com/forums/pymvpa-dev/,http://disqus.com/forums/pymvpa/,g" \ -e "s,^.*$$,,g" \ doc/source/_themes/pymvpa_online/page.html rsync $(RSYNC_OPTS_UP) $(HTML_DIR)/* $(WWW_UPLOAD_URI_DEV)/ # upload plain .rst files as descriptions to data.pympa.org as descriptions of # each dataset upload-datadb-descriptions: for ds in doc/source/datadb/*; do \ ds=$$(basename $${ds}); ds=$${ds%*.rst}; \ scp doc/source/datadb/$${ds}.rst $(DATA_UPLOAD_URI)/$${ds}/README.rst; \ done # # Tests (unittests, docs, examples) # ut-%: build @cd $(TEST_DIR) && PYTHONPATH=$(LPYTHONPATH) $(NOSETESTS) --nocapture mvpa2/tests/test_$*.py unittest: build @echo "I: Running unittests (without optimization nor debug output)" @cd $(TEST_DIR) && $(MPLPYTHON) mvpa2/tests/__init__.py # test if PyMVPA is working if optional externals are missing unittest-badexternals: build @echo "I: Running unittests under assumption of missing optional externals." @cd $(TEST_DIR) && PYTHONPATH=mvpa2/tests/badexternals:$(LPYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ $(PYTHON) mvpa2/tests/__init__.py 2>&1 \ | grep -v -e 'WARNING: Known dependency' -e 'Please note: w' \ -e 'WARNING:.*SMLR.* implementation' # only non-labile tests unittest-nonlabile: build @echo "I: Running only non labile unittests. None of them should ever fail." @cd $(TEST_DIR) && MVPA_TESTS_LABILE=no \ $(MPLPYTHON) mvpa2/tests/__init__.py unittest-py3: build3 @echo "I: Running py3-compatible unittests. None of them should ever fail." -@rm -f build3-stamp # evil Tiziano! ;) @cd $(BUILD3DIR) && MVPA_TESTS_LABILE=no MVPA_TESTS_QUICK=yes \ MVPA_TESTS_LOWMEM=yes $(MPLPYTHON3) mvpa2/tests/__init__.py unittest-py3warn: build @echo "I: Running unittests with py3 warnings. None of them should ever fail." @MVPA_TESTS_LABILE=no MVPA_TESTS_QUICK=yes \ MVPA_TESTS_LOWMEM=yes $(MPLPYTHON) -3 mvpa2/tests/__init__.py # test if no errors would result if we force enabling of all ca unittest-ca: build @echo "I: Running unittests with all ca enabled." @cd $(TEST_DIR) && MVPA_DEBUG=ENFORCE_CA_ENABLED \ $(MPLPYTHON) mvpa2/tests/__init__.py # Run unittests with optimization on -- helps to catch unconditional # debug calls unittest-optimization: build @echo "I: Running unittests with $(PYTHON) -O." @cd $(TEST_DIR) && $(MPLPYTHON) -O mvpa2/tests/__init__.py # Run unittests with all debug ids and some metrics (crossplatform ones) on. # That does: # additional checking, # debug() calls validation, etc # Need to use /bin/bash due to use of PIPESTATUS unittest-debug: SHELL=/bin/bash unittest-debug: build @echo "I: Running unittests with debug output. No progress output." @cd $(TEST_DIR) && MVPA_DEBUG=.* MVPA_DEBUG_METRICS=ALL \ $(MPLPYTHON) mvpa2/tests/__init__.py 2>&1 \ | sed -n -e '/^[=-]\{60,\}$$/,$$p'; \ exit $${PIPESTATUS[0]} # reaquire status of 1st command, works only in bash! # Run all unittests # Run with 'make -k' if you like to sweep through all of them, so # failure in one of them does not stop the full sweep unittests: unittest-nonlabile unittest unittest-badexternals \ unittest-optimization unittest-ca unittest-debug tc-%: build @PYTHONPATH=.:$(PYTHONPATH) PATH=./bin:$(PATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_LOCATION_TUTORIAL_DATA=$(TUT_DIR) \ MVPA_DATADB_ROOT=datadb \ MVPA_WARNINGS_SUPPRESS=1 \ bash ./doc/examples/cmdline/$*.sh > /dev/null 2>&1 # test cmdline with coverage report # MVPA_DATA_ handling is because some examples use tutorial_data # while others testing data (mvpa2/data) tcc-%: build @echo "I: testing $* cmdline example with coverage" @grep MVPA_DATA_ROOT.*datadb ./doc/examples/cmdline/$*.sh \ && MVPA_DATA_="MVPA_DATA_ROOT=$$PWD/mvpa2/data/tutorial_data_20mm/data" || : ; \ eval PYTHONPATH=.:$(PYTHONPATH) \ PATH=$$PWD/tools/coverage-bin:$$PWD/bin:$(PATH) \ $${MVPA_DATA_} \ MVPA_TESTS_QUICK=yes \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_LOCATION_TUTORIAL_DATA=$(TUT_DIR) \ MVPA_DATADB_ROOT=datadb \ MVPA_WARNINGS_SUPPRESS=1 \ bash ./doc/examples/cmdline/$*.sh > /dev/null testcmdline: tc-start_easy tc-query_pymvpa tc-fmri_analyses tc-plot_motion coveragecmdline: tcc-query_pymvpa tcc-fmri_analyses tcc-plot_motion te-%: build @echo -n "I: Testing example $*: " @[ -z "$$MVPA_TESTS_LOGDIR" ] \ && logfile=temp-$@.log \ || { mkdir -p $$MVPA_TESTS_LOGDIR; logfile=$$MVPA_TESTS_LOGDIR/$@.log; }; \ MVPA_EXAMPLES_INTERACTIVE=no \ MVPA_LOCATION_TUTORIAL_DATA=$(TUT_DIR) \ $(MPLPYTHONPATH) /usr/bin/time $(PYTHON) doc/examples/$*.py >| $$logfile 2>&1 \ && { echo "passed"; ex=0; } \ || { echo "failed:"; ex=1; cat $$logfile; }; \ [ -z "$$MVPA_TESTS_LOGDIR" ] && rm -f $$logfile || : ; \ exit $$ex testexamples: te-svdclf te-smlr te-sensanas te-pylab_2d \ te-curvefitting te-projections te-kerneldemo \ te-erp_plot te-match_distribution te-permutation_test \ te-searchlight_minimal te-smlr te-start_easy te-topo_plot \ te-gpr te-gpr_model_selection0 te-mri_plot te-searchlight \ te-eventrelated te-clfs_examples testdocstrings: dt-mvpa dt-%: build @echo "I: Doctesting $*" @PYTHONPATH=$(LPYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_EXTERNALS_RAISE_EXCEPTION=off \ MVPA_DATADB_ROOT=datadb \ MVPA_WARNINGS_SUPPRESS=1 \ $(NOSETESTS) --with-doctest \ $(shell git grep -l __docformat__ | grep '^mvpa' \ | grep -v filter.py | grep -v channel.py | grep "$*") tm-%: build @PYTHONPATH=.:$(CURDIR)/doc/examples:$(PYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_LOCATION_TUTORIAL_DATA=$(TUT_DIR) \ MVPA_DATADB_ROOT=datadb \ MVPA_WARNINGS_SUPPRESS=1 \ $(NOSETESTS) --with-doctest --doctest-extension .rst \ --doctest-tests doc/source/$*.rst testmanual: build testdocstrings @echo "I: Testing code samples found in documentation" @PYTHONPATH=$(LPYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_LOCATION_TUTORIAL_DATA=$(TUT_DIR) \ MVPA_DATADB_ROOT=datadb \ MVPA_WARNINGS_SUPPRESS=1 \ $(NOSETESTS) -v --with-doctest --doctest-extension .rst \ --doctest-tests doc/source testtutorial-%: build @echo "I: Testing code samples found in tutorial part $*" @PYTHONPATH=$(LPYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_LOCATION_TUTORIAL_DATA=$(TUT_DIR) \ MVPA_WARNINGS_SUPPRESS=1 \ $(NOSETESTS) --with-doctest --doctest-extension .rst \ --doctest-tests doc/source/tutorial_$**.rst # Test either all # alt references in tutorials are correct # Just outputs filenames found missing -- doesn't fail the rule TUTORIAL_RESDIR=tutorial_data/results testtutorials-alt: @grep '# *alt' doc/source/tutorial*rst | \ sed -e "s/.*'\(.*\)'.*/\1/g" | \ while read f; do \ fs="$$(/bin/ls $(TUT_DIR)/results/$$f.* 2>/dev/null)"; \ [ -z "$$fs" ] && echo "$$f missing" || :; \ done testdatadb: build @echo "I: Testing code samples on the dataset DB website" @PYTHONPATH=$(LPYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ MVPA_DATADB_ROOT=datadb \ MVPA_WARNINGS_SUPPRESS=1 \ $(NOSETESTS) --with-doctest --doctest-extension .rst \ --doctest-tests doc/source/datadb/*.rst # Check if everything (with few exclusions) is imported in unitests is # known to the mvpa2.suite() # XXX remove \|spam whenever clfs.spam gets available testsuite: @echo "I: Running full testsuite" @tfile=`mktemp -u testsuiteXXXXXXX`; \ git grep -h '^\W*from mvpa2.*import' mvpa2/tests | \ grep -v '^\W*#' | \ sed -e 's/^.*from *\(mvpa[^ ]*\) im.*/from \1 import/g' | \ sort | uniq | \ grep -v -e 'mvpa.\.base\.dochelpers' \ -e 'mvpa.\.\(tests\|testing\|sandbox\|support\)' \ -e 'mvpa.\.misc\.args' \ -e 'mvpa.\.algorithms\.benchmarks' \ -e 'mvpa.\.misc\.surfing\.volgeom' \ -e 'mvpa.\.clfs\.\(libsvmc\|sg\|spam\)' \ | while read i; do \ grep -q "^ *$$i" mvpa2/suite.py || \ { echo "E: '$$i' is missing from mvpa2.suite()"; touch "$$tfile"; }; \ done; \ [ -f "$$tfile" ] && { rm -f "$$tfile"; exit 1; } || : # Check if links to api/ within documentation are broken. testapiref: @echo "I: epydoc support is depricated -- so, nothing to test" # testapiref: apidoc # @for tf in doc/*.rst; do \ # out=$$(for f in `grep api/mvpa $$tf | sed -e 's|.*\(api/mvpa2.*html\).*|\1|g' `; do \ # ff=build/html/$$f; [ ! -f $$ff ] && echo "E: $$f missing!"; done; ); \ # [ "x$$out" == "x" ] || echo -e "$$tf:\n$$out"; done # Check if there is no WARNINGs from sphinx testsphinx: htmldoc { grep -A1 system-message build/html/*html build/html/*/*html && exit 1 || exit 0 ; } # Check if stored cfg after whole suite is imported is safe to be # reloaded testcfg: build @echo "I: Running test to check that stored configuration is acceptable." -@rm -f pymvpa2.cfg @PYTHONPATH=$(LPYTHONPATH) $(PYTHON) -c 'from mvpa2.suite import *; cfg.save("pymvpa2.cfg");' @PYTHONPATH=$(LPYTHONPATH) $(PYTHON) -c 'from mvpa2.suite import *;' @echo "+I: Run non-labile testing to verify safety of stored configuration" @cd $(TEST_DIR) && PYTHONPATH=$(LPYTHONPATH) MVPA_TESTS_LABILE=no $(PYTHON) mvpa2/tests/__init__.py @echo "+I: Check all known dependencies and store them" @PYTHONPATH=$(LPYTHONPATH) $(PYTHON) -c \ 'from mvpa2.suite import *; mvpa2.base.externals.check_all_dependencies(force=False); cfg.save("pymvpa2.cfg");' @echo "+I: Run non-labile testing to verify safety of stored configuration" @cd $(TEST_DIR) && PYTHONPATH=$(LPYTHONPATH) MVPA_TESTS_LABILE=no $(PYTHON) mvpa2/tests/__init__.py -@rm -f pymvpa2.cfg testourcfg: build @echo "+I: Run non-labile testing to verify safety of shipped configuration" @cd $(TEST_DIR) && PYTHONPATH=$(LPYTHONPATH) MVPACONFIG=doc/examples/pymvpa2.cfg MVPA_TESTS_LABILE=no $(PYTHON) mvpa2/tests/__init__.py test-prep-fmri: @echo "+I: Smoke test the functionality of the pymvpa2-prep-fmri script" @td=`(mktemp -d)`; trap "rm -rf $$td" exit; \ ln -s $(CURDIR)/mvpa2/data/example4d.nii.gz $$td/; \ cd $$td; \ PYTHONPATH=$(CURDIR):$(PYTHONPATH) \ MVPA_MATPLOTLIB_BACKEND=agg \ $(CURDIR)/bin/pymvpa2-prep-fmri -p -e first -s T -b '-f 0.4' example4d.nii.gz; \ [ -e $$td/T ] \ && [ -e $$td/T/func_mc.pdf ] \ && [ -e $$td/T/func_mc.nii.gz ] \ && head -1 $$td/T/func_mc.par | grep -q '0 0 0' \ test: unittests testmanual testsuite testexamples testcfg testourcfg testcmdline # Target to be called after some major refactoring # It skips some flavors of unittests testrefactor: unittest testmanual testsuite testexamples testcmdline coverage: $(COVERAGE_REPORT) $(COVERAGE_REPORT): build @echo "I: Generating coverage data and report. Takes awhile. No progress output." @cd $(TEST_DIR) && { \ export PYTHONPATH=$(LPYTHONPATH) MVPA_DEBUG=.* MVPA_DEBUG_METRICS=ALL; \ python-coverage -x mvpa2/tests/__init__.py >/dev/null 2>&1; \ python-coverage -r -i -o /usr,/var >| $(COVERAGE_REPORT); \ grep -v '100%$$' $(COVERAGE_REPORT); \ python-coverage -a -i -o /usr,/var ; } # Check what modules aren't listed in the modref check-modref: find mvpa2 -iname \*.py \ | grep -v -e badexternals -e 'mvpa2/__init__.py' -e 'test_' -e 'cmd_' \ | while read mf; do \ m=$${mf%.py}; m=`echo $$m | sed -e 's,mvpa2/\(.*\)$$,\1,g' -e 's,/__init__,,g' | tr / . `; \ echo $$m | grep -q "^ *$$m\$$" doc/source/modref.rst || echo $$m; \ done # # Sources # pylint: pylint -e --rcfile doc/misc/pylintrc mvpa # # Generate new source distribution # (not to be run by users, depends on debian environment) # Check either everything was committed check-nodirty: # Need to run in clean tree. If fails: commit or clean first [ "x$$(git diff)" = "x" ] # || $(error "") check-debian: # Need to run in a Debian packaging branch [ -d debian ] check-debian-version: check-debian # Does debian version correspond to setup.py version? [ "$(DEBCHANGELOG_VERSION)" = "$(SETUPPY_VERSION)" ] embed-dev-version: check-nodirty # change upstream version sed -i -e "s/$(SETUPPY_VERSION)/$(DEV_VERSION)/g" setup.py mvpa2/__init__.py # change package name sed -i -e "s/= 'pymvpa',/= 'pymvpa-snapshot',/g" setup.py deb-dev-autochangelog: check-debian # removed -snapshot from pkg name for now $(MAKE) check-debian-version || \ dch --newversion $(DEV_VERSION)-1 --package pymvpa-snapshot \ --allow-lower-version "PyMVPA development snapshot." deb-mergedev: git merge --no-commit origin/dist/debian/dev orig-src: git archive --format=tar --prefix=pymvpa-$(SETUPPY_VERSION)/ HEAD | \ gzip -9 > pymvpa_$(SETUPPY_VERSION).orig.tar.gz devel-src: check-nodirty -rm -rf dist git clone -l . dist/pymvpa-snapshot #RELEASE_CODE=-snapshot RELEASE_VERSION=$(DEV_VERSION) \ $(MAKE) -C dist/pymvpa-snapshot -f ../../Makefile embed-dev-version orig-src mv dist/*tar.gz .. rm -rf dist devel-dsc: check-nodirty -rm -rf dist git clone -l . dist/pymvpa-snapshot #RELEASE_CODE=-snapshot RELEASE_VERSION=$(DEV_VERSION) \ $(MAKE) -C dist/pymvpa-snapshot -f ../../Makefile embed-dev-version orig-src deb-mergedev deb-dev-autochangelog # create the dsc -- NOT using deb-src since it would clean the hell first cd dist && dpkg-source -i'\.(gbp.conf|git\.*)' -b pymvpa-snapshot mv dist/*.gz dist/*dsc .. rm -rf dist # make Debian source package # # DO NOT depend on orig-src here as it would generate a source tarball in a # Debian branch and might miss patches! deb-src: check-debian distclean cd .. && dpkg-source -i'\.(gbp.conf|git\.*)' -b $(CURDIR) bdist_rpm: 3rd $(PYTHON) setup.py bdist_rpm \ --doc-files "doc data" \ --packager "PyMVPA Authors " \ --vendor "PyMVPA Authors " # build MacOS installer -- depends on patched bdist_mpkg for Leopard bdist_mpkg: 3rd $(PYTHON) tools/mpkg_wrapper.py setup.py build_ext $(PYTHON) tools/mpkg_wrapper.py setup.py install # # Data # fetch-data: echo "I: fetching data from datadb" [ -e datadb ] || mkdir -p datadb rsync $(RSYNC_OPTS) $(DATA_HOST)::$(DATA_SUBDIRS) $(DATA_DIR)/ for ds in datadb/*; do \ echo " I: looking at $$ds"; \ cd $(CURDIR)/$${ds} && \ md5sum -c MD5SUMS && \ tbs="$$(/bin/ls *.tar.gz 2>/dev/null)" && \ [ ! -z "$$tbs" ] && \ for tb in $${tbs}; do \ fn=$${tb%.tar.gz}; dn=$${fn%-*}; \ [ ! -d $$dn ] && tar xzf $$tb || : ;\ done; \ done # Various other data which might be sensitive and not distribu fetch-data-nonfree: fetch-data-nonfree-stamp fetch-data-nonfree-stamp: @mkdir -p temp # clean up previous location to make sure we don't have it @rm -f data/nonfree/audio/Peter_Nalitch-Guitar.mp3 # remove directories which should be bogus now @rmdir data/nonfree/audio data/nonfree 2>/dev/null || : rsync $(RSYNC_OPTS) dev.pymvpa.org:/home/data/nonfree temp/ && touch $@ # # Various sugarings (e.g. swarm) # AUDIO_TRACK=temp/nonfree/audio/Peter_Nalitch-Guitar.mp3 # With permission of the author, we can use Gitar for our visual history $(AUDIO_TRACK): fetch-data-nonfree # Nice visual git log # Requires: sun-java5-jdk, ffmpeg, ant codeswarm: $(SWARM_DIR)/pymvpa-codeswarm.flv $(SWARM_DIR)/frames: $(SWARMTOOL_DIR) $(SWARM_DIR)/git.xml @echo "I: Visualizing git history using codeswarm" @mkdir -p $(SWARM_DIR)/frames cd $(SWARMTOOL_DIR) && ./run.sh ../../doc/misc/codeswarm.config $(SWARM_DIR)/pymvpa-codeswarm.flv: $(SWARM_DIR)/frames $(AUDIO_TRACK) @echo "I: Generating codeswarm video" @cd $(SWARM_DIR) && \ ffmpeg -r $$(echo "scale=2; $$(ls -1 frames/ |wc -l) / 154" | bc) -f image2 \ -i frames/code_swarm-%05d.png -r 15 -b 250k \ -i ../../$(AUDIO_TRACK) -ar 22050 -ab 128k -acodec libmp3lame \ -y -ac 2 pymvpa-codeswarm.flv $(SWARM_DIR)/git.log: Makefile @echo "I: Dumping git log in codeswarm preferred format" @mkdir -p $(SWARM_DIR) @git log --name-status --all \ --pretty=format:'%n------------------------------------------------------------------------%nr%h | %an | %ai (%aD) | x lines%nChanged paths:' | \ perl -pe 's/Ingo .*d \|/Ingo Fruend |/' | \ sed -e 's,Yaroslav.*Halchenko,Yaroslav O. Halchenko,g' \ -e 's,gorlins,Scott,g' -e 's,Scott Gorlin,Scott,g' -e 's,Scott,Scott Gorlin,g' \ -e 's,hanke,Michael Hanke,g' \ -e 's,swaroop,Swaroop Guntupalli,g' \ -e 's,Per.*Sederberg,Per B. Sederberg,g' \ -e 's,Neukom Institute,James M. Hughes,g' >| $@ $(SWARM_DIR)/git.xml: $(SWARMTOOL_DIR)/run.sh $(SWARM_DIR)/git.log @$(PYTHON) $(SWARMTOOL_DIR)/convert_logs/convert_logs.py \ -g $(SWARM_DIR)/git.log -o $(SWARM_DIR)/git.xml $(SWARMTOOL_DIR)/run.sh: @echo "I: Checking out codeswarm tool source code" @svn checkout http://codeswarm.googlecode.com/svn/trunk/ $(SWARMTOOL_DIR) upload-codeswarm: codeswarm rsync -rzhvp --delete --chmod=Dg+s,g+rw,o+r $(SWARM_DIR)/*.flv $(WWW_UPLOAD_URI)/files/ # # Trailer # .PHONY: fetch-data deb-src orig-src pylint apidoc pdfdoc htmldoc doc manual \ all profile website fetch-data-misc upload-website \ test testsuite testmanual testapiref testexamples testrefactor \ testcfg testourcfg \ unittest unittest-debug unittest-optimization unittest-nonlabile \ unittest-badexternals unittests \ distclean debian-clean check-nodirty check-debian check-debian-version \ handbook codeswarm upload-codeswarm coverage pics pymvpa2-2.6.4/Makefile.win000066400000000000000000000022041323370031300153460ustar00rootroot00000000000000# Makefile to build PyMVPA under Windows using a standard Python # distribution and MinGW # # Adjust this path to match the version and location of your Python # installation PYTHON_VERSION=2.6 PYTHON_PATH=C:\\Python26 # # Building # all: build configure-inplace-use # build included 3rd party pieces (if present) 3rd: 3rd-stamp 3rd-stamp: cd 3rd\libsvm & $(MAKE) -f Makefile.win build: 3rd # build pymvpa extensions including libsvm set PYTHON_INCLUDE="$(PYTHON_PATH)\\include" \ & python setup.py build_ext installer: 3rd build # now build the installer python setup.py bdist_wininst --bitmap doc\source\pics\logo.bmp configure-inplace-use: copy build\\lib.win32-$(PYTHON_VERSION)\\mvpa\\clfs\\libsmlrc\\smlrc.pyd \ mvpa\\clfs\\libsmlrc copy build\\lib.win32-$(PYTHON_VERSION)\\mvpa\\clfs\\libsvmc\\_svmc.pyd \ mvpa\\clfs\\libsvmc # # Cleaning # clean: -rmdir /S /Q build -del /S *.a *.o *.gch *.pyd # # Testing # ut-%: build configure-inplace-use @set PYTHONPATH=$(CURDIR) & cd tests & python test_$*.py unittest: build configure-inplace-use @set PYTHONPATH=$(CURDIR) & cd tests & python main.py # # Trailer # .PHONY: all pymvpa2-2.6.4/README.rst000066400000000000000000000020161323370031300146020ustar00rootroot00000000000000======================================================================================== PyMVPA -- Multivariate Pattern Analysis in Python |build-status| |coverage-status| |doi| ======================================================================================== .. |doi| image:: https://img.shields.io/badge/doi-10.3389%2Fneuro.11.003.2009-green.svg :target: http://dx.doi.org/10.3389/neuro.11.003.2009 :alt: Original PyMVPA publication .. |build-status| image:: https://secure.travis-ci.org/PyMVPA/PyMVPA.png ?branch=master :target: http://travis-ci.org/PyMVPA/PyMVPA :alt: PyMVPA travis-ci build status .. |coverage-status| image:: https://coveralls.io/repos/PyMVPA/PyMVPA/badge.png ?branch=master :target: https://coveralls.io/r/PyMVPA/PyMVPA :alt: PyMVPA coveralls coverage status For information how to install PyMVPA please see doc/source/installation.rst . Further information and access to binary packages is available from the project website at http://www.pymvpa.org . pymvpa2-2.6.4/TODO000066400000000000000000000011271323370031300136050ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 79 -*- .. ex: set tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_todo: .. index:: todo ********* ToDo-List ********* * OptimizedClassifier: to automatically select the model in an easy and non-biased(i.e. non-cheating) way, so it could become a part of any more advanced pipeline as a regular classifier * IPython mode pymvpa2-2.6.4/bin/000077500000000000000000000000001323370031300136645ustar00rootroot00000000000000pymvpa2-2.6.4/bin/pymvpa2000077500000000000000000000167171323370031300152240ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """""" __docformat__ = 'restructuredtext' import sys import argparse import textwrap from mvpa2.cmdline import helpers from mvpa2.base.constraints import EnsureBool from mvpa2.base import verbose, error, cfg if __debug__: from mvpa2.base import debug try: import psyco psyco.profile() except: pass # need to correspond to files in mvpa2.cmdline.cmd_??? enabled_cmds = [ 'info', 'mkds', 'mkevds', 'describe', 'dump', 'preproc', 'crossval', 'searchlight', 'select', 'atlaslabeler', 'exec', 'scatter', 'plotmotionqc', 'ttest', ] # what version are we talking from mvpa2.base.info import get_pymvpa_gitversion pymvpa_version = get_pymvpa_gitversion() if not pymvpa_version: import mvpa2 pymvpa_version = mvpa2.__version__ def _license_info(): return """\ Copyright (c) 2006-2016 PyMVPA developers 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. Written by Michael Hanke & Yaroslav Halchenko, and numerous other contributors. """ # handler for common/non-command-specific cmdline arguments def _proc_common_args(args): # debug if __debug__ and args.common_debug: for dbg in args.common_debug: debug.active += dbg # verbosity if __debug__: debug("CMDLINE", "Setting verbose.level to %s" % str(args.common_verbose)) verbose.level = args.common_verbose for pl in args.preload: if __debug__: debug("CMDLINE", "Executing preload script '%s'" % pl) exec pl pl.close() # setup cmdline args parser # main parser parser = argparse.ArgumentParser( fromfile_prefix_chars='@', # usage="%(prog)s ...", description="""\ This is the command line interface of the PyMVPA framework. Specific functionality is provided through a collection of sub-commands. Available sub-commands are: """, epilog='', formatter_class=argparse.RawDescriptionHelpFormatter, add_help=False ) # common options helpers.parser_add_common_opt(parser, 'help') helpers.parser_add_common_opt(parser, 'version', version='pymvpa2 %s\n\n%s' % (pymvpa_version, _license_info())) if __debug__: parser.add_argument( '--dbg', action='store_true', dest='dbg_fallback', help="invoke a debugger when a crash occurs") parser.add_argument( '--dbg-channel', action='append', nargs=1, type=str, dest='common_debug', help="enable debug channel (see 'info' command for available channels)") parser.add_argument( '--preload', action='append', type=argparse.FileType('r'), default=list(), help="""filename of a custom Python script that is executed prior to, and in the same session as the actual command. This can be used to modify the execution environment, for example creating a custom classifier instance. This option can be given multiple times, and the associated scripts are ran in order of their appearance on the command line.""") parser.add_argument('--verbose', action='store', nargs='?', type=int, dest='common_verbose', default=0, help='output verbosity level') # subparsers subparsers = parser.add_subparsers() # for all subcommand modules it can find cmd_short_description = [] for cmd_name in enabled_cmds: cmd = 'cmd_%s' % cmd_name try: subcmdmod = getattr(__import__('mvpa2.cmdline', globals(), locals(), [cmd], -1), cmd) except Exception as exc: verbose(0, "%s not available: %s" % (cmd_name, exc)) cmd_short_description.append(('(%s)' % cmd_name, 'not available in this installation: %s' % str(exc))) continue # deal with optional parser args if 'parser_args' in subcmdmod.__dict__: parser_args = subcmdmod.parser_args else: parser_args = dict() # use module description, if no explicit description is available if not 'description' in parser_args: parser_args['description'] = subcmdmod.__doc__ # create subparser, use module suffix as cmd name subparser = subparsers.add_parser(cmd_name, add_help=False, **parser_args) # all subparser can report the version helpers.parser_add_common_opt( subparser, 'version', version='pymvpa2-%s %s\n\n%s' % (cmd_name, pymvpa_version, _license_info())) # our own custom help for all commands helpers.parser_add_common_opt(subparser, 'help') # let module configure the parser subcmdmod.setup_parser(subparser) # configure 'run' function for this command subparser.set_defaults(func=subcmdmod.run) # store short description for later sdescr = getattr(subcmdmod, 'short_description', parser_args['description'].split('\n')[0]) cmd_short_description.append((cmd_name, sdescr)) # create command summary cmd_summary = [] for cd in cmd_short_description: cmd_summary.append('%s: %s\n' \ % (cd[0], textwrap.fill(cd[1], 75, initial_indent=' ' * max(0, 12 - len(cd[0])), subsequent_indent=' ' * 16))) parser.description = '%s\n%s\n\n%s' \ % (parser.description, '\n'.join(cmd_summary), textwrap.fill("""\ Detailed usage information for individual commands is available via command-specific help options, i.e.: %s --help""" % sys.argv[0], 75, initial_indent='', subsequent_indent='')) # parse cmd args args = parser.parse_args() # process common arguments _proc_common_args(args) # run the function associated with the selected command try: args.func(args) except Exception as exc: error('%s (%s)' % (str(exc), exc.__class__.__name__), critical=False) if args.dbg_fallback or EnsureBool()(cfg.get('debug', 'cmdline', default=False)): import pdb pdb.post_mortem() sys.exit(1) pymvpa2-2.6.4/bin/pymvpa2-prep-afni-surf000077500000000000000000000013531323370031300200460ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrapper script for surface-based preprocessing using AFNI and FreeSurfer """ from mvpa2.support.afni.lib_prep_afni_surf import run_prep_afni_surf,\ getparser import sys __doc__=run_prep_afni_surf.__doc__ if __name__ == '__main__': p=getparser() d=p.parse_args(sys.argv[1:]) print ">", d run_prep_afni_surf(vars(d)) pymvpa2-2.6.4/bin/pymvpa2-prep-fmri000077500000000000000000000174151323370031300171170ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Tiny tool to prepare a directory for a typical analysis of fMRI data with PyMVPA. Tools from the FSL suite will be used for preprocessing. It takes a 4D fMRI timeseries as input and performs the following steps: - extract an example volume - perform motion correction using the example volume as reference - conservative skull-stripping and brain mask generation - masking of the motion-corrected timeseries with the brain mask All results will be stored either in the current directory, or in a subdirectory with the subject ID (if specified).""" import sys import os from subprocess import call # Import mvpa2 first so it could augment matplotlib backend if necessary import mvpa2 import numpy as np from mvpa2.base import verbose, externals, error from mvpa2.misc.cmdline import parser, opt from mvpa2.misc.fsl import McFlirtParams if __debug__: from mvpa2.base import debug _EXFUNC_CONV_DICT = {'last' : lambda x: x-1, 'first': lambda x: 0, 'middle': lambda x: int(x/2)} """Dictionary to get exemplar volume given a literal string""" ##REF: Name was automagically refactored def prep_parser(parser): # use module docstring for help output parser.usage = "%s [OPTIONS] \n\n" % sys.argv[0] + __doc__ parser.version = "%prog " + mvpa2.__version__ parser.add_option(opt.verbose) parser.add_option(opt.help) parser.add_option("-s", "--subject-id", action="store", type="string", dest="subj", default=None, help="Subject ID used as output path") parser.add_option("-e", "--example-func-vol", action="store", type="string", dest="exfunc", default='middle', help="Volume (numeric ID or 'last', 'first', 'middle') " "to be used as an example functional image. " "Default: 10") parser.add_option("-m", "--mcflirt-options", action="store", type="string", dest="mcflirt_opts", default='', help="Options for MCFLIRT. '-plots' is auto-added ") parser.add_option("-p", "--mcflirt-plots", action="store_true", dest="mcflirt_plots", help="Create a .pdf with plots of motion parameters") parser.add_option("-b", "--bet-options", action="store", type="string", dest="bet_opts", default='-f 0.3', help="Options for BET. '-m' is auto-added. " "Default: '-f 0.3' for a safe guess of the brain " "outline") def main(): """ """ prep_parser(parser) (options, infiles) = parser.parse_args() # late import of pynifti to be able to get help output without a big # external dep. externals.exists('nibabel', raise_=True) import nibabel as nb if len(infiles) > 1 or not len(infiles): error("%s needs exactly one input fMRI image as argument. " "Got %s" % (sys.argv[0], str(infiles))) func_fname = infiles[0] # compressed or uncompressed? decide by input image # XXX maybe add override option if func_fname.lower().endswith('nii.gz'): nii_ext = '.nii.gz' verbose(2, "Output files will be compressed NIfTI images") else: nii_ext = '.nii' verbose(2, "Output files will be uncompressed NIfTI images") # determine output path if options.subj is not None: opath = options.subj else: opath = os.path.curdir if not os.path.exists(opath): verbose(1, "Create output directory '%s'" % opath) os.makedirs(opath) else: verbose(2, "Using output path '%s'" % opath) verbose(2, "Load image file from '%s'" % func_fname) func_nim = nb.load(func_fname) func_nim_hdr = func_nim.header func_nim_data = func_nim.get_data() func_nim_shape = func_nim_data.shape # process exfunc option exfunc = options.exfunc.lower() timepoints = len(func_nim_shape) > 3 and func_nim_shape[3] or 1 if exfunc in _EXFUNC_CONV_DICT.keys(): exfuncid = _EXFUNC_CONV_DICT[exfunc](timepoints) else: try: exfuncid = int(exfunc) except ValueError, e: error("Failed to convert '%s' into numerical id of " "volume." % (exfunc)) if exfuncid >= timepoints or exfuncid < 0: error("Example functional volume id must be in the " "range 0 .. %d. Got %d." % (timepoints-1, exfuncid)) verbose(2, "Extract volume %i as example volume" % exfuncid) ef_nim = nb.Nifti1Image(func_nim_data[..., exfuncid], None, func_nim_hdr) ef_nim.to_filename(os.path.join(opath, 'example_func' + nii_ext)) # close input file -- will operate on motion-corrected one later on del func_nim, func_nim_data, func_nim_hdr mcflirt_call = \ ' '.join( ['mcflirt', '-in ' + func_fname, '-out ' + os.path.join(opath, 'func_mc'), '-reffile ' + os.path.join(opath, 'example_func'), '-verbose 0', '-plots', options.mcflirt_opts]).strip() verbose(2, "Perform motion correction ('%s')" % mcflirt_call) # run MCFLIRT (silence stderr; 5 being some random file descriptor) if call(mcflirt_call, shell=True, stderr=None): error("MCFLIRT failed to perform the motion correction.") if options.mcflirt_plots: verbose(2, "Plot motion parameters estimates") externals.exists('pylab', raise_=True) import pylab as pl mc = McFlirtParams(os.path.join(opath, 'func_mc.par')) for k, (title, fields, ylabel) in enumerate( (('Translation', ('x', 'y', 'z'), 'mm'), ('Rotation', ('rot1', 'rot2', 'rot3'), 'radians'))): pl.subplot(211+k) pl.title(title) pl.plot([0, timepoints], [0, 0], '0.6') for dim in fields: pl.plot(mc[dim], label=dim) pl.legend() pl.axis('tight') pl.ylabel(ylabel) pl.gcf().savefig(os.path.join(opath, 'func_mc.pdf')) bet_call = \ ' '.join( ['bet', os.path.join(opath, 'example_func'), os.path.join(opath, 'example_func_brain'), '-m', options.bet_opts]).strip() verbose(2, "Determine brain mask in functional space ('%s')" % bet_call) # run BET (silence stderr; 5 being some random file descriptor) if call(bet_call, shell=True, stderr=None): error("BET failed to perform the skull stripping.") verbose(2, "Threshold image background using brain mask") mask_nim = nb.load(os.path.join(opath, 'example_func_brain_mask' + nii_ext)) mask_nim_data = mask_nim.get_data() func_nim_filename = os.path.join(opath, 'func_mc' + nii_ext) func_nim = nb.load(func_nim_filename) func_nim_data = func_nim.get_data() # special case: single slice mask #if len(mask_nim_data.shape) < 3: # func_nim_data[:, np.asarray([mask_nim.data]) == 0] = 0 #else: # I think with xyzt ordering we don't really need special handling func_nim_data[mask_nim_data == 0] = 0 # yoh: NO I don't like (or just don't know how) nibabel API ;) nb.Nifti1Image( func_nim_data, None, func_nim.header).to_filename(func_nim_filename) if __name__ == '__main__': main() pymvpa2-2.6.4/bin/pymvpa2-tutorial000077500000000000000000000143671323370031300170640ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Script to start a PyMVPA tutorial session""" import sys import os import shutil import glob import getopt import subprocess import signal import mvpa2 from mvpa2.misc.support import SmartVersion def getandkillopt(opt): for i, arg in enumerate(sys.argv[1:]): if arg.startswith(opt[:-1]): if opt.endswith('='): val = '='.join(sys.argv[i + 1].split('=')[1:]) else: val = True del sys.argv[i + 1] return val return False def print_help(): print """ Usage: %s [options] [ipython options] Wrapper around the IPython executable creating a session directory for working with the PyMVPA tutorial. The necessary tutorial data is copied (or symlinked, if possible) into the session directory. If the tutorial shall run in IPython's notebook the relevant notebook files are copied into the session directory as well. Any additional options are passed on to IPython. IPython is executed in the tutorial session directory, and any potential relative path configurations (such as PYTHONPATH) need to take this into account. Options: --help print this help and exit --version show program's version number and exit --use-qtconsole start an IPython qtconsole --use-notebook start an IPython notebook server --workdir path to the tutorial session directory. Default: $HOME/pymvpa2_tutorial --clean-workdir delete tutorial session data on exit --overwrite-notebook overwrite existing notebook files in the tutorial session directory --tutorial-data-path= path to the tutorial data (need to contain the 'data' directory) --tutorial-notebooks-path= path to the tutorial notebooks """ % sys.argv[0] def get_latest_ipython(ipythons=['ipython01x', 'ipython']): """Choose the latest available ipython according to -V """ avail = [] for ipython in ipythons: try: p = subprocess.Popen([ipython, '-V'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) l = p.stdout.read().split('\n') l = [x for x in l if len(x)] # strip empty lines if len(l): ver = SmartVersion(l[-1]) avail.append((ver, ipython)) except OSError: pass avail = sorted(avail) if len(avail): return avail[-1] else: return None, None def main(): if getandkillopt('--version'): print mvpa2.__version__ sys.exit(0) if getandkillopt('--help'): print_help() sys.exit(0) want_qtconsole = getandkillopt('--use-qtconsole') want_notebook = getandkillopt('--use-notebook') want_clean = getandkillopt('--clean-workdir') want_overwrite_notebooks = getandkillopt('--overwrite-notebooks') workdir = getandkillopt('--workdir=') if workdir is False: # TODO create tmpdir workdir=os.path.expanduser('~/pymvpa2_tutorial') if not os.path.exists(workdir): os.makedirs(workdir) tutorial_datadir = getandkillopt('--tutorial-data-path=') if tutorial_datadir is False: tutorial_datadir = '/usr/share/data/pymvpa2-tutorial' notebook_srcdir = getandkillopt('--tutorial-notebooks-path=') if notebook_srcdir is False: notebook_srcdir = '/usr/share/doc/python-mvpa2/notebooks' # assemble session dir dst = os.path.join(os.path.abspath(workdir), 'data') src = os.path.abspath(tutorial_datadir) if os.path.lexists(dst): print "Use existing tutorial data path at '%s'." % (dst,) else: if not os.path.exists(src): print "Cannot find tutorial data at '%s'" % (src,) sys.exit(1) else: if hasattr(os, 'symlink'): os.symlink(src, dst) else: shutil.copytree(src, dst) # point pymvpa to the personalized folder os.environ['MVPA_LOCATION_TUTORIAL_DATA'] = dst # prep IPython call ipy_args = sys.argv[1:] ipy_args.append('--quiet') if not sum([arg.startswith('--pylab') for arg in ipy_args]): # user might want something like --pylab=inline ipy_args.append('--pylab') if want_notebook: ipy_args.insert(0, 'notebook') elif want_qtconsole: ipy_args.insert(0, 'qtconsole') if want_notebook: notebook_dstdir = workdir ipy_args.append('--notebook-dir=%s' % notebook_dstdir) ipy_args.append('--pylab=inline') # let's do inline figures if not os.path.exists(notebook_dstdir): os.makedirs(notebook_dstdir) notebook_files = glob.glob(os.path.join(notebook_srcdir, '*.ipynb')) if not len(notebook_files): print "Beware: no notebooks found under %s" % notebook_srcdir for nb in notebook_files: nb_dst_filepath = os.path.join(notebook_dstdir, os.path.basename(nb)) if not os.path.exists(nb_dst_filepath) or want_overwrite_notebooks: shutil.copyfile(nb, nb_dst_filepath) else: print "Keep existing notebook at '%s'" % nb_dst_filepath ipython_ver, ipython = get_latest_ipython() if ipython_ver is None: raise SystemExit("No reasonably versioned IPython was found") if ipython_ver < '0.12' and want_notebook: raise SystemExit( "ERROR: no notebook facilities are available in IPython prior " \ "version 0.12. Detected version of IPython on the system %s " \ "by %s" % (ipython_ver.vstring, ipython)) try: ipy = subprocess.Popen([ipython] + ipy_args, cwd=workdir) ipy.wait() except KeyboardInterrupt: ipy.terminate() if want_clean: shutil.rmtree(workdir) if __name__ == '__main__': main() pymvpa2-2.6.4/doc/000077500000000000000000000000001323370031300136615ustar00rootroot00000000000000pymvpa2-2.6.4/doc/Makefile000066400000000000000000000105371323370031300153270ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. PYTHON = python SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest export SHELL=/bin/bash help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR) source/generated source/intersphinx -rm generate-stamp SPHINXEXT_PATH=$(shell python -c 'import sphinx.ext; from distutils.version import LooseVersion; print LooseVersion(sphinx.__version__) < "1.1.2" and "sphinxext" or sphinx.ext.__path__[0]') #SPHINXEXT_PATH=sphinxext generate: generate-stamp generate-stamp: cache_intersphinx mkdir -p $(BUILDDIR) mkdir -p source/generated set -e; set -o pipefail; for man in $(BUILDDIR)/man/pymvpa*; do \ manfile=$$(basename $${man}) ; \ cmd=$${manfile#pymvpa2-*} ; \ cmd=$${cmd%*.1} ; \ man2html $${man} | sed -n '/
/{:a;n;/
/b;p;ba}' | sed -n '/ source/generated/$${manfile}.html ; \ underline="*****************$$(echo $${cmd} | tr A-Za-z0-9 \*)" ; \ printf ".. index:: command line, $${cmd}\n.. _chap_cmdline_$${cmd}:\n\n$${underline}\nMan page for \`\`$${cmd}\`\`\n$${underline}\n\n.. raw:: html\n :file: $${manfile}.html\n" > source/generated/cmd_$${cmd}.rst ; \ done @touch $@ cache_intersphinx: cache_intersphinx-stamp cache_intersphinx-stamp: # fetch intersphinx objects for explicit intersphinxing python source/conf.py cache_intersphinx @touch $@ html: generate $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: generate $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." pickle: generate $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: generate $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: generate $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: generate $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PyMVPA.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PyMVPA.qhc" latex: generate $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: generate $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: generate $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: generate $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." pymvpa2-2.6.4/doc/examples/000077500000000000000000000000001323370031300154775ustar00rootroot00000000000000pymvpa2-2.6.4/doc/examples/cachedkernel.py000077500000000000000000000074021323370031300204670ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Efficient cross-validation using a cached kernel ================================================ .. index:: Cross-validation This is a simple example showing how to use cached kernel with a SVM classifier from the Shogun library. Pre-caching of the kernel for all samples in dataset eliminates necessity of possibly lengthy recomputation of the same kernel values on different splits of the data. Depending on the data it might provide considerable speed-ups. """ from mvpa2.suite import * from time import time """The next few calls load an fMRI dataset and do basic preprocessing.""" # load PyMVPA example dataset attr = SampleAttributes(os.path.join(pymvpa_dataroot, 'attributes_literal.txt')) dataset = fmri_dataset(samples=os.path.join(pymvpa_dataroot, 'bold.nii.gz'), targets=attr.targets, chunks=attr.chunks, mask=os.path.join(pymvpa_dataroot, 'mask.nii.gz')) # do chunkswise linear detrending on dataset poly_detrend(dataset, polyord=1, chunks_attr='chunks') # zscore dataset relative to baseline ('rest') mean zscore(dataset, chunks_attr='chunks', param_est=('targets', ['rest'])) """Cached kernel is just a proxy around an existing kernel.""" # setup a cached kernel kernel_plain = LinearSGKernel(normalizer_cls=False) kernel = CachedKernel(kernel_plain) """Lets setup two cross-validation, where first would use cached kernel, whenever the later one plain kernel to demonstrate the speed-up and achievement of exactly the same results""" # setup a classifier and cross-validation procedure clf = sg.SVM(svm_impl='libsvm', C=-1.0, kernel=kernel) cv = CrossValidation(clf, NFoldPartitioner()) # setup exactly the same using a plain kernel for demonstration of # speedup and equivalence of the results clf_plain = sg.SVM(svm_impl='libsvm', C=-1.0, kernel=kernel_plain) cv_plain = CrossValidation(clf_plain, NFoldPartitioner()) """Although it would be done internally by cached kernel during initial computation, it is advisable to make initialization of origids for samples explicit. It would prepare dataset by cleaning up attributes used by cached kernel possibly on another version of the same dataset prior to this analysis in real use cases.""" dataset.init_origids(which='samples') """Cached kernel needs to be computed given the full dataset which would later on be used during cross-validation. """ # compute kernel for the dataset t0 = time() kernel.compute(dataset) t_caching = time() - t0 """Lets run both cross-validation procedures using plain and cached kernels and report the results.""" # run cached cross-validation t0 = time() error = np.mean(cv(dataset)) t_cached = time() - t0 # run plain SVM cross-validation for validation and benchmarking t0 = time() error_plain = np.mean(cv_plain(dataset)) t_plain = time() - t0 # UC: unique chunks, UT: unique targets print "Results for %i-fold cross-validation on %i-class problem:" \ % (len(dataset.UC), len(dataset.UT)) print " plain kernel: error=%.3f computed in %.2f sec" \ % (error_plain, t_plain) print " cached kernel: error=%.3f computed in %.2f sec (cached in %.2f sec)" \ % (error, t_cached, t_caching) """The following is output from running this example:: Results for 12-fold cross-validation on 9-class problem: plain kernel: error=0.273 computed in 35.82 sec cached kernel: error=0.273 computed in 6.50 sec (cached in 3.68 sec) """ pymvpa2-2.6.4/doc/examples/clfs_examples.py000077500000000000000000000102671323370031300207070ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Classifier Sweep ================ This examples shows a test of various classifiers on different datasets. """ from mvpa2.suite import * # no MVPA warnings during this example warning.handlers = [] def main(): # fix seed or set to None for new each time np.random.seed(44) # Load Haxby dataset example haxby8 = load_example_fmri_dataset(literal=True) haxby8.samples = haxby8.samples.astype(np.float32) # preprocess slightly poly_detrend(haxby8, chunks_attr='chunks', polyord=1) zscore(haxby8, chunks_attr='chunks', param_est=('targets', 'rest')) haxby8_no0 = haxby8[haxby8.targets != 'rest'] dummy2 = normal_feature_dataset(perlabel=30, nlabels=2, nfeatures=100, nchunks=6, nonbogus_features=[11, 10], snr=3.0) for (dataset, datasetdescr), clfs_ in \ [ ((dummy2, "Dummy 2-class univariate with 2 useful features out of 100"), clfswh[:]), ((pure_multivariate_signal(8, 3), "Dummy XOR-pattern"), clfswh['non-linear']), ((haxby8_no0, "Haxby 8-cat subject 1"), clfswh['multiclass']), ]: # XXX put back whenever there is summary() again #print "%s\n %s" % (datasetdescr, dataset.summary(idhash=False)) print " Classifier on %s\n" \ " : %%corr " \ "#features\t train predict full" % datasetdescr for clf in clfs_: print " %-40s: " % clf.descr, # Let's prevent failures of the entire script if some particular # classifier is not appropriate for the data try: # Change to False if you want to use CrossValidation # helper, instead of going through splits manually to # track training/prediction time of the classifiers do_explicit_splitting = True if not do_explicit_splitting: cv = CrossValidation( clf, NFoldPartitioner(), enable_ca=['stats', 'calling_time']) error = cv(dataset) # print cv.ca.stats print "%5.1f%% - \t - - %.2fs" \ % (cv.ca.stats.percent_correct, cv.ca.calling_time) continue # To report transfer error (and possibly some other metrics) confusion = ConfusionMatrix() times = [] nf = [] t0 = time.time() #TODO clf.ca.enable('nfeatures') partitioner = NFoldPartitioner() for nfold, ds in enumerate(partitioner.generate(dataset)): (training_ds, validation_ds) = tuple( Splitter(attr=partitioner.space).generate(ds)) clf.train(training_ds) #TODO nf.append(clf.ca.nfeatures) predictions = clf.predict(validation_ds.samples) confusion.add(validation_ds.targets, predictions) times.append([clf.ca.training_time, clf.ca.predicting_time]) tfull = time.time() - t0 times = np.mean(times, axis=0) #TODO nf = np.mean(nf) # print confusion #TODO print "%5.1f%% %-4d\t %.2fs %.2fs %.2fs" % \ print "%5.1f%% - \t %.2fs %.2fs %.2fs" % \ (confusion.percent_correct, times[0], times[1], tfull) #TODO (confusion.percent_correct, nf, times[0], times[1], tfull) except LearnerError, e: print " skipped due to '%s'" % e if __name__ == "__main__": main() pymvpa2-2.6.4/doc/examples/cmdline/000077500000000000000000000000001323370031300171125ustar00rootroot00000000000000pymvpa2-2.6.4/doc/examples/cmdline/fmri_analyses.sh000077500000000000000000000174651323370031300223220ustar00rootroot00000000000000#!/bin/bash set -e set -u # BOILERPLATE # where is the data; support standard env variable switch dataroot=${MVPA_DATA_ROOT:-"mvpa2/data/haxby2001"} # where to place output; into tmp by default outdir=${MVPA_EXAMPLE_WORKDIR:-} # which classifier we will use through out the analyses clf=${MVPA_EXAMPLE_CLF:-'SMLR(lm=1.0)'} if [ -z "$outdir" ]; then outdir=$(mktemp -d) # cleanup if working in tmpdir upon failure/exit trap "rm -rf \"$outdir\"" TERM INT EXIT fi #% EXAMPLE START #% Full-scale fMRI data analysis using pattern classification #% ========================================================== #% This script demonstrates a complete classification analysis as it could be #% found in actual research projects. It is a representative example of the #% functionality accessible from the command line interface -- when it was #% originally release with PyMVPA 2.3. #% We start by creating a dataset as a collection of information from various #% sources. fMRI data is loaded from a 4D NIfTI image, while only voxel with #% non-zero value in a mask image are kept. Each volume is associated with some #% attribute values that are read from a text file. In addition, a number of #% mask additional mask images are included as feature attributes, in order to #% be able to conveniently group voxel/features into ROIs. Lastly, motion #% estimates are included as per-volume attributes. The resulting dataset #% is stored in a compressed HDF5 file. pymvpa2 mkds \ --openfmri-modelbold "$dataroot" 1 1 '25mm' \ --mask "$dataroot"/sub001/masks/25mm/brain.nii.gz \ --add-sa-attr "$dataroot"/../attributes_literal.txt \ --add-vol-attr hoc "$dataroot"/sub001/masks/25mm/hoc.nii.gz \ --add-vol-attr gm "$dataroot"/sub001/masks/25mm/gray.nii.gz \ --add-vol-attr vt "$dataroot"/sub001/masks/25mm/vt.nii.gz \ --add-fsl-mcpar bold_moest.txt \ --hdf5-compression gzip \ -o "$outdir"/bold.hdf5 #% The describe command generates a terse summary of the dataset. pymvpa2 describe -i "$outdir"/bold.hdf5 #% One of the additional feature attributed was down-sampled and aligned #% brain parcelation of the Harvard-Oxford cortical atlas. The ``dump`` command #% can be used to extract any dataset component and convert it into a variety #% of formats -- including plain text -- for further processing with standard #% UNIX console tools. echo "Number of ROIs in the Harvard-Oxford cortial atlas: " pymvpa2 dump --fa hoc -f txt -i "$outdir"/bold.hdf5 | sort | uniq | wc -l #% The ``preproc`` command offers a few selected preprocessing procedures. Here #% we first regress out the motion parameter estimate time-courses that were #% included as sample attributes in the dataset. And finally, we perform spectral #% filtering using a Butterworth with selected pass and stop bands. #% As with every processing step, the result is stored as a dataset in an HDF5 #% file. pymvpa2 preproc --poly-detrend 0 \ --detrend-regrs bold_moest.txt_0 bold_moest.txt_1 bold_moest.txt_2 bold_moest.txt_3 bold_moest.txt_4 bold_moest.txt_5 \ --filter-passband 0.005 0.067 \ --filter-stopband 0.0025 0.1 \ --sampling-rate 0.4 \ --chunks chunks \ --hdf5-compression gzip \ -o "$outdir"/bold_mcf.hdf5 \ -i "$outdir"/bold.hdf5 #% For the subsequent classification analysis we are only interested in two #% out of all available experimental conditions, and only in voxels that are #% part of the "VT" mask. Sub-selection of dataset content #% is supported by indices, as well as a simple expressions. pymvpa2 select \ --samples-by-attr targets eq face or targets eq house \ --features-by-attr vt gt 0 \ -i "$outdir"/bold_mcf.hdf5 \ -o "$outdir"/faceshouses_inVT.hdf5 #% The easiest way to perform a classification analysis is the selection of a #% pre-crafted classifier instance from the "warehouse". A variety of data #% partitioning schemes is available -- we select "leave-one-out" -- by default #% operating on the ``chunks`` sample attribute of the dataset. Selection of error #% functions is possible by name, or by providing a Python script with a custom #% implementation. Many commands and options of the command line interface can be #% fed and extended with custom Python scripts. pymvpa2 crossval \ --learner "$clf" \ --partitioner n-1 \ --errorfx mean_match_accuracy \ --avg-datafold-results \ -i "$outdir"/faceshouses_inVT.hdf5 \ -o "$outdir"/xval_faces_vs_houses_inVT.hdf5 #% After this first ROI-based classification analysis, we are now aiming for #% a very similar classification analysis that, in contrast, is done in a #% "searchlight" -- a traveling ROI analysis throught the entire brain. #% Hence we create a new dataset, again with only face and house data samples, #% but this time including all voxels. pymvpa2 select \ --samples-by-attr targets eq face or targets eq house \ --hdf5-compression gzip \ -i "$outdir"/bold_mcf.hdf5 \ -o "$outdir"/faceshouses_brain.hdf5 #% The ``searchlight`` command can be used to compute arbitrary metric in this #% fashion, but has built-in support for cross-validated classification analyses #% (``--payload``). Spherical ROI with a radius of 4 voxels (``--neighbors``) will #% be generated, centered on gray-matter voxels only (``--roi-attr``). The #% computation will be parallelized with up to two concurrent processes. #% [Note: The ``--scatter-rois`` option is only present to speed up computation #% and can be removed in order to obtain a dense result map.] pymvpa2 --dbg-channel SLC searchlight \ --payload cv \ --neighbors 4 \ --scatter-rois 5 \ --roi-attr gm \ --nproc 2 \ --cv-learner "$clf" \ --cv-partitioner oddeven:chunks \ --cv-errorfx mean_match_accuracy \ --cv-avg-datafold-results \ --cv-permutations 2 \ --hdf5-compression gzip \ -i "$outdir"/faceshouses_brain.hdf5 \ -o "$outdir"/sl_faces_vs_houses_brain.hdf5 #% Using the ``dump`` command, results can be stored in various formats, #% including NIfTI. Saving as NIfTI automatically takes care of projecting #% back results into the 3D voxel space. pymvpa2 dump -s \ -f nifti \ -i "$outdir"/sl_faces_vs_houses_brain.hdf5 \ -o "$outdir"/sl_faces_vs_houses_brain_ACC.nii.gz pymvpa2 dump --fa null_prob \ -f nifti \ -i "$outdir"/sl_faces_vs_houses_brain.hdf5 \ -o "$outdir"/sl_faces_vs_houses_brain_NP.nii.gz #% An alternative to a searchlight with its often arbitrary ROI shapes and #% boundaries is an iterative ROI analysis -- cycling through a number of #% ROIs that are defined by localizers or an atlas. Here we perform the #% cross-validated classification analysis shown above on all areas defined #% in the Harvard-Oxford cortical atlas and present in our data. hoc_rois=( $(pymvpa2 exec -i "$outdir"/bold.hdf5 -e 'print(" ".join(map(str, dss[0].fa["hoc"].unique)))') ) echo "ROIs of the Harvard-Oxford cortial atlas present in the data: ${hoc_rois[*]}" for roi in ${hoc_rois[*]}; do echo -en " ROI $roi\t" #% Select corresponding voxels. pymvpa2 select --features-by-attr hoc eq $roi \ -i "$outdir"/faceshouses_brain.hdf5 \ -o "$outdir"/roi_tmp.hdf5 #% Report number of voxels present in the given ROI. nfeatures=$(pymvpa2 exec -i "$outdir"/roi_tmp.hdf5 -e "print(dss[0].nfeatures)") resultds="${outdir}/xval_faces_vs_houses_inROI${roi}.hdf5" echo -en "$nfeatures voxels\taccuracy=" #% And run the cross validation, finally printing the overall accuracy #% as a result on the console. pymvpa2 crossval \ --learner "$clf" \ --partitioner n-1 \ --errorfx mean_match_accuracy \ --avg-datafold-results \ -i "$outdir"/roi_tmp.hdf5 \ -o $resultds | awk '/ACC%/{printf "%.2f%%\n", $2}' [ -z "${MVPA_TESTS_QUICK:-}" ] || break # reserved for testing done #% EXAMPLE END pymvpa2-2.6.4/doc/examples/cmdline/plot_motion.sh000077500000000000000000000011621323370031300220140ustar00rootroot00000000000000#!/bin/sh set -e set -u # BOILERPLATE # where is the data; support standard env variable switch dataroot=${MVPA_DATA_ROOT:-"mvpa2/data"} # where to place output; into tmp by default outdir=${MVPA_EXAMPLE_WORKDIR:-} if [ -z "$outdir" ]; then outdir=$(mktemp -d) # cleanup if working in tmpdir upon failure/exit trap "rm -rf \"$outdir\"" TERM INT EXIT fi #% EXAMPLE START #% Generate a quick QC plot from motion estimates #% ============================================== pymvpa2 plotmotionqc \ -s "$dataroot"/haxby2001/sub*/BOLD/task001_run*/bold_moest.txt \ --savefig "$outdir"/motion.png #% EXAMPLE END pymvpa2-2.6.4/doc/examples/cmdline/query_pymvpa.sh000077500000000000000000000021401323370031300222070ustar00rootroot00000000000000#!/bin/sh set -e set -u #% EXAMPLE START #% Query properties and features of a PyMVPA installation #% ====================================================== #% The ``info``` command is the central interface to get information on a PyMVPA #% installation. #% PyMVPA has versatile debugging capabilities and allows for fine-grained #% access to process information. The ``--debug`` option lists all configured #% debug channels to can be enabled via the MVPA_DEBUG environment variable. # what was the name of the debug channel for 'searchlight' analyses? pymvpa2 info --debug | grep -i searchlight #% With ``--external`` information on known software dependencies can be #% retrieved. # what version of nibabel is used by pymvpa? pymvpa2 info --externals | grep nibabel #% When run without arguments, the ``info`` command generates a comprehensive #% report on the computational environment that is very useful for productive #% bug reporting. # create a description of the computing environment that can be posted on the # pymvpa mailing list to make a bug report more informative pymvpa2 info #% EXAMPLE END pymvpa2-2.6.4/doc/examples/cmdline/start_easy.sh000077500000000000000000000044331323370031300216330ustar00rootroot00000000000000#!/bin/sh set -e set -u # BOILERPLATE # where is the data; support standard env variable switch dataroot=${MVPA_DATA_ROOT:-"mvpa2/data"} # where to place output; into tmp by default outdir=${MVPA_EXAMPLE_WORKDIR:-} if [ -z "$outdir" ]; then outdir=$(mktemp -d) # cleanup if working in tmpdir upon failure/exit trap "rm -rf \"$outdir\"" TERM INT EXIT fi #% EXAMPLE START #% A simple start (on the command line) #% ==================================== #% This script is the exact equivalent of the :ref:`example_start_easy` example, #% but using the command line interface. #% First we load an fMRI dataset with some attributes for each volume, only #% considering voxels that are non-zero in a mask image. pymvpa2 mkds --mri-data "$dataroot"/bold.nii.gz \ --add-sa-attr "$dataroot"/attributes_literal.txt \ --mask "$dataroot"/mask.nii.gz \ -o "$outdir"/bold_ds.hdf5 #% Next we remove linear trends by polynomial regression for each voxel and #% each chunk (recording run) of the dataset individually. pymvpa2 preproc --chunks chunks \ --poly-detrend 1 \ -i "$outdir"/bold_ds.hdf5 \ -o "$outdir"/preproced.hdf5 #% For this example we are only interested in data samples that correspond #% to the ``face`` or to the ``house`` condition. pymvpa2 select --samples-by-attr targets eq face or targets eq house \ -i "$outdir"/preproced.hdf5 \ -o "$outdir"/facehouse.hdf5 #% The setup for our cross-validation analysis include the selection of a #% classifier from the "warehouse", a partitioning scheme, and an error function #% to convert literal predictions into a quantitative performance metric. pymvpa2 crossval --learner 'SMLR(lm=1.0)' \ --partitioner oddeven:chunks \ --errorfx mean_mismatch_error \ --avg-datafold-results \ -i "$outdir"/facehouse.hdf5 \ -o "$outdir"/crossval_results.hdf5 #% The resulting dataset contains the computed accuracy. echo -n "Error for cross-validation problem: " pymvpa2 dump -s -i "$outdir"/crossval_results.hdf5 #% EXAMPLE END pymvpa2 exec -i "$outdir"/crossval_results.hdf5 \ -e 'assert ds.shape == (1,1)' \ -e 'assert ds.samples[0,0] < 0.1' pymvpa2-2.6.4/doc/examples/curvefitting.py000077500000000000000000000103701323370031300205660ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Curve-Fitting ============= Here we are going to take a look at a few examples of fitting a function to data. The first example shows how to fit an HRF model to noisy peristimulus time-series data. First, importing the necessary pieces: """ import numpy as np from scipy.stats import norm from mvpa2.support.pylab import pl from mvpa2.misc.plot import plot_err_line, plot_bars from mvpa2.misc.fx import * from mvpa2 import cfg """ BOLD-Response parameters ------------------------ Let's generate some noisy "trial time courses" from a simple gamma function (40 samples, 6s time-to-peak, 7s FWHM and no additional scaling: """ a = np.asarray([single_gamma_hrf(np.arange(20), A=6, W=7, K=1)] * 40) # get closer to reality with noise a += np.random.normal(size=a.shape) """ Fitting a gamma function to this data is easy (using resonable seeds for the parameter search (5s time-to-peak, 5s FWHM, and no scaling): """ fpar, succ = least_sq_fit(single_gamma_hrf, [5,5,1], a) """ With these parameters we can compute high-resultion curves for the estimated time course, and plot it together with the "true" time course, and the data: """ x = np.linspace(0,20) curves = [(x, single_gamma_hrf(x, 6, 7, 1)), (x, single_gamma_hrf(x, *fpar))] # plot data (with error bars) and both curves plot_err_line(a, curves=curves, linestyle='-') # add legend to plot pl.legend(('original', 'fit')) pl.title('True and estimated BOLD response') """ .. image:: ../pics/ex_curvefitting_bold.* :align: center :alt: BOLD response fitting example Searchlight accuracy distributions ---------------------------------- When doing a searchlight analysis one might have the idea that the resulting accuracies are actually sampled from two distributions: one causes by an actual signal source and the chance distribution. Let's assume the these two distributions can be approximated by a Gaussian, and take a look at a toy example, how we could explore the data. First, we generate us a few searchlight accuracy maps that might have been computed in the folds of a cross-validation procedure. We generate the data from two normal distributions. The majority of datapoints comes from the chance distribution that is centered at 0.5. A fraction of the data is samples from the "signal" distribution located around 0.75. """ nfolds = 10 raw_data = np.vstack([np.concatenate((np.random.normal(0.5, 0.08, 10000), np.random.normal(0.75, 0.05, 500))) for i in range(nfolds)]) """ Now we bin the data into one histogram per fold and fit a dual Gaussian (the sum of two Gaussians) to the total of 10 histograms. """ histfit = fit2histogram(raw_data, dual_gaussian, (1000, 0.5, 0.1, 1000, 0.8, 0.05), nbins=20) H, bin_left, bin_width, fit = histfit """ All that is left to do is composing a figure -- showing the accuracy histogram and its variation across folds, as well as the two estimated Gaussians. """ # new figure pl.figure() # Gaussian parameters params = fit[0] # plot the histogram plot_bars(H.T, xloc=bin_left, width=bin_width, yerr='std') # show the Gaussians x = np.linspace(0, 1, 100) # first gaussian pl.plot(x, params[0] * norm.pdf(x, params[1], params[2]), "r-", zorder=2) pl.axvline(params[1], color='r', linestyle='--', alpha=0.6) # second gaussian pl.plot(x, params[3] * norm.pdf(x, params[4], params[5]), "b-", zorder=3) pl.axvline(params[4], color='b', linestyle='--', alpha=0.6) # dual gaussian pl.plot(x, dual_gaussian(x, *params), "k--", alpha=0.5, zorder=1) pl.xlim(0, 1) pl.ylim(ymin=0) pl.title('Dual Gaussian fit of searchlight accuracies') if cfg.getboolean('examples', 'interactive', True): # show the cool figures pl.show() """ And this is how it looks like. .. image:: ../pics/ex_curvefitting_searchlight.* :align: center :alt: Dual Gaussian fit of searchlight accuracies """ pymvpa2-2.6.4/doc/examples/erp_plot.py000077500000000000000000000051771323370031300177120ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ ERP/ERF-Plots ============= Example demonstrating an ERP-style plots. Actually, this code can be used to plot various time-locked data types. This example uses MEG data and therefore generates an ERF-plot. """ from mvpa2.suite import * # load data meg = TuebingenMEG(os.path.join(pymvpa_dataroot, 'tueb_meg.dat.gz')) # Define plots for easy feeding into plot_erp plots = [] colors = ['r', 'b', 'g'] # figure out pre-stimulus onset interval t0 = -meg.timepoints[0] plots = [ {'label' : meg.channelids[i], 'color' : colors[i], 'data' : meg.data[:, i, :]} for i in xrange(len(meg.channelids)) ] # Common arguments for all plots cargs = { 'SR' : meg.samplingrate, 'pre_onset' : t0, # Plot only 50ms before and 100ms after the onset since we have # just few trials 'pre' : 0.05, 'post' : 0.1, # Plot all 'errors' in different degrees of shadings 'errtype' : ['ste', 'ci95', 'std'], # Set to None if legend manages to obscure the plot 'legend' : 'best', 'alinewidth' : 1 # assume that we like thin lines } # Create a new figure fig = pl.figure(figsize=(12, 8)) # Following plots are plotted inverted (negative up) for the # demonstration of this capability and elderly convention for ERP # plots. That is controlled with ymult (negative gives negative up) # Plot MEG sensors # frame_on=False guarantees abent outside rectangular axis with # labels. plot_erp recreates its own axes centered at (0,0) ax = fig.add_subplot(2, 1, 1, frame_on=False) plot_erps(plots[:2], ylabel='$pT$', ymult=-1e12, ax=ax, **cargs) # Plot EEG sensor ax = fig.add_subplot(2, 1, 2, frame_on=False) plot_erps(plots[2:3], ax=ax, ymult=-1e6, **cargs) # Additional example: plotting a single ERP on an existing plot # without drawing axis: # # plot_erp(data=meg.data[:, 0, :], SR=meg.samplingrate, pre=pre, # pre_mean=pre, errtype=errtype, ymult=-1.0) if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ The ouput of the provided example is presented below. It is not a very fascinating one due to the limited number of samples provided in the dataset shipped within the toolbox. .. image:: ../pics/ex_erp_plot.* :align: center :alt: ERP plot example """ pymvpa2-2.6.4/doc/examples/eventrelated.py000077500000000000000000000203471323370031300205440ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Spatio-temporal Analysis of event-related fMRI data =================================================== .. index:: event-related fMRI In this example we are going to take a look at an event-related analysis of timeseries data. We will do this on fMRI data, implementing a spatio-temporal analysis of multi-volume samples. It starts as usual by loading PyMVPA and the fMRI dataset. """ from mvpa2.suite import * ds = load_tutorial_data(roi=(36,38,39,40)) """ The dataset we have just loaded is the full timeseries of voxels in the ventral temporal cortex for 12 concatenated experiment runs. Although originally a block-design experiment, we'll analyze it in an event-related fashion, where each stimulation block will be considered as an individual event. For an event-related analysis most of the processing is done on data samples that are somehow derived from a set of events. The rest of the data could be considered irrelevant. However, some preprocessing is only meaningful when performed on the full timeseries and not on the segmented event samples. An example is the detrending that typically needs to be done on the original, continuous timeseries. In its current shape our dataset consists of 1452 samples that represent contiguous fMRI volumes. At this stage we can easily perform linear detrending. We are going to do it per each experiment run (the dataset has to have runs encoded in the ``chunk`` sample attribute), since we do not assume a contiguous linear trend throughout the whole recording session. """ # detrend on full timeseries poly_detrend(ds, polyord=1, chunks_attr='chunks') """ Let's make a copy of the detrended dataset that we can later on use for some visualization. """ orig_ds = ds.copy() """ We still need to normalize each feature (i.e. a voxel at this point). In this case we are going to Z-score them, using the mean and standard deviation from the experiment's rest condition. The resulting values might be interpreted as "activation scores". We are again doing it per each run. """ zscore(ds, chunks_attr='chunks', param_est=('targets', 'rest')) """ After detrending and normalization, we can now segment the timeseries into a set of events. To achieve this we have to compile a list of event definitions first. In this example we will simply convert the block-design setup defined by the samples attributes into events, so that each stimulation block becomes an event with an associated onset and duration. The events are defined by a change in any of the provided attributes, hence we get an event for starting stimulation block and any start of a run in the experiment. """ events = find_events(targets=ds.sa.targets, chunks=ds.sa.chunks) """ ``events`` is a simple list of event definitions (each one being a dictionary) that can easily inspected for startpoints and duration of events. Later on we want to look at the sensitivity profile ranging from just before until a little after each block. Therefore we are slightly moving the event onsets prior the block start and request to extract a set of 13 consecutive volumes a as sample for each event. Finally, in this example we are only interested in `face` or `house` blocks. """ # filter out events events = [ev for ev in events if ev['targets'] in ['house', 'face']] # modify event start and set uniform duration for ev in events: ev['onset'] -= 2 ev['duration'] = 13 """ Now we get to the core of an event-related analysis. We turn our existing timeseries datasets into one with samples of timeseries segments. PyMVPA offers :func:`~mvpa2.datasets.eventrelated.eventrelated_dataset()` to perform this conversion -- given a list of events and a dataset with samples that are sorted by time. If a dataset has information about acquisition time :func:`~mvpa2.datasets.eventrelated.eventrelated_dataset()` can also convert event-definition in real time. """ evds = eventrelated_dataset(ds, events=events) """ Now we have our final dataset with spatio-temporal fMRI samples. Look at the attributes of the dataset to see what information is available about each event. The rest is pretty much standard. We want to perform a cross-validation analysis of a SVM classifier. We are not primarily interested in its performance, but in the weights it assigns to the features. Remember, each feature is now voxel-timepoint, so we get a chance of looking at the spatio-temporal profile of classification relevant information in the data. We will nevertheless enable computing a confusion matrix, so we can assure ourselves that the classifier is performing reasonably well, since only a generalizing classifier model is worth inspecting, as otherwise the assigned weights are meaningless. """ clf = LinearCSVMC() sclf = SplitClassifier(clf, enable_ca=['stats']) # Compute sensitivity, which internally trains the classifier analyzer = sclf.get_sensitivity_analyzer() sensitivities = analyzer(evds) """ Now let's look at the confusion matrix -- it turns out that the classifier performs excellent. """ print sclf.ca.stats """ We could now convert the computed sensitivities back into a 4D fMRI image to look at the spatio-temporal sensitivity profile using the datasets mapper. However, in this example we are going to plot it for two example voxels and compare it to the actual signal timecourse prior and after normalization. """ # example voxel coordinates example_voxels = [(28,25,25), (28,23,25)] """ First we plot the orginal signal after initial detrending. To do this, we apply the timeseries segmentation to the original detrended dataset and plot to mean signal for all face and house events for both of our example voxels. """ vx_lty = ['-', '--'] t_col = ['b', 'r'] pl.subplot(311) for i, v in enumerate(example_voxels): slicer = np.array([tuple(idx) == v for idx in ds.fa.voxel_indices]) evds_detrend = eventrelated_dataset(orig_ds[:, slicer], events=events) for j, t in enumerate(evds.uniquetargets): pl.plot(np.mean(evds_detrend[evds_detrend.sa.targets == t], axis=0), t_col[j] + vx_lty[i], label='Voxel %i: %s' % (i, t)) pl.ylabel('Detrended signal') pl.axhline(linestyle='--', color='0.6') pl.legend() """ In the next step we do exactly the same again, but this time for the normalized data. """ pl.subplot(312) for i, v in enumerate(example_voxels): slicer = np.array([tuple(idx) == v for idx in ds.fa.voxel_indices]) evds_norm = eventrelated_dataset(ds[:, slicer], events=events) for j, t in enumerate(evds.uniquetargets): pl.plot(np.mean(evds_norm[evds_norm.sa.targets == t], axis=0), t_col[j] + vx_lty[i]) pl.ylabel('Normalized signal') pl.axhline(linestyle='--', color='0.6') """ Finally, we plot the associated SVM weight profile for each peristimulus timepoint of both voxels. For easier selection we do a little trick and reverse-map the sensitivity profile through the last mapper in the dataset's chain mapper (look at ``evds.a.mapper`` for the whole chain). This will reshape the sensitivities into ``cross-validation fold x volume x voxel features``. """ pl.subplot(313) smaps = evds.a.mapper[-1].reverse(sensitivities) for i, v in enumerate(example_voxels): slicer = np.array([tuple(idx) == v for idx in ds.fa.voxel_indices]) smap = smaps.samples[:,:,slicer].squeeze() plot_err_line(smap, fmt='ko', linestyle=vx_lty[i]) pl.xlim((0,12)) pl.ylabel('Sensitivity') pl.axhline(linestyle='--', color='0.6') pl.xlabel('Peristimulus volumes') if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ .. figure:: ../pics/ex_eventrelated.* :align: center Sensitivity profile for two example voxels for *face* vs. *house* classification on event-related fMRI data from ventral temporal cortex. This demo showed an event-related data analysis. Although we have performed it on fMRI data, an analogous analysis can be done for any timeseries-based data in an almost identical fashion. """ pymvpa2-2.6.4/doc/examples/eyemovements.py000077500000000000000000000214521323370031300206000ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Analysis of eye movement patterns ================================= In this example we are going to look at a classification analysis of eye movement patterns. Although complex preprocessing steps can be performed to extract higher-order features from the raw coordinate timeseries provided by an eye-tracker, we are keeping it simple. Right after importing the PyMVPA suite, we load the data from a textfile. It contains coordinate timeseries of 144 trials (recorded with 350 Hz), where subjects either looked at upright or inverted images of human faces. Each timeseries snippet covers 3 seconds. This data has been pre-processed to remove eyeblink artefacts. In addition to the coordinates we also load trial attributes from a second textfile. These attributes indicate which image was shown, whether it was showing a male or female face, and wether it was upright or inverted. """ from mvpa2.suite import * # where is the data datapath = os.path.join(pymvpa_datadbroot, 'face_inversion_demo', 'face_inversion_demo') # (X, Y, trial id) for all timepoints data = np.loadtxt(os.path.join(datapath, 'gaze_coords.txt')) # (orientation, gender, image id) for each trial attribs = np.loadtxt(os.path.join(datapath, 'trial_attrs.txt')) """ As a first step we put the coordinate timeseries into a dataset, and labels each timepoint with its associated trial ID. We also label the two features accordingly. """ raw_ds = Dataset(data[:,:2], sa = {'trial': data[:,2]}, fa = {'fid': ['rawX', 'rawY']}) """ The second step is down-sampling the data to about 33 Hz, resampling each trial timeseries individually (using the trial ID attribute to define dataset chunks). """ ds = fft_resample(raw_ds, 100, window='hann', chunks_attr='trial', attr_strategy='sample') """ Now we can use a :class:`~mvpa2.mappers.boxcar.BoxcarMapper` to turn each trial-timeseries into an individual sample. We know that each sample consists of 100 timepoints. After the dataset is mapped we can add all per-trial attributes into the sample attribute collection. """ bm = BoxcarMapper(np.arange(len(ds.sa['trial'].unique)) * 100, boxlength=100) bm.train(ds) ds=ds.get_mapped(bm) ds.sa.update({'orient': attribs[:,0].astype(int), 'gender': attribs[:,1].astype(int), 'img_id': attribs[:,1].astype(int)}) """ In comparison with upright faces, inverted ones had prominent features at very different locations on the screen. Most notably, the eyes were flipped to the bottom half. To prevent the classifier from using such differences, we flip the Y-coordinates for trials with inverted to align the with the upright condition. """ ds.samples[ds.sa.orient == 1, :, 1] = \ -1 * (ds.samples[ds.sa.orient == 1, :, 1] - 512) + 512 """ The current dataset has 100 two-dimensional features, the X and Y coordinate for each of the hundred timepoints. We use a :class:`~mvpa2.mappers.flatten.FlattenMapper` to convert each sample into a one-dimensionl vector (of length 200). However, we also keep the original dataset, because it will allow us to perform some plotting much easier. """ fm = FlattenMapper() fm.train(ds) # want to make a copy to keep the original pristine for later plotting fds = ds.copy().get_mapped(fm) # simplify the trial attribute fds.sa['trial'] = [t[0] for t in ds.sa.trial] """ The last steps of preprocessing are Z-scoring all features (coordinate-timepoints) and dividing the dataset into 8 chunks -- to simplify a cross-validation analysis. """ zscore(fds, chunks_attr=None) # for classification divide the data into chunks nchunks = 8 chunks = np.zeros(len(fds), dtype='int') for o in fds.sa['orient'].unique: chunks[fds.sa.orient == o] = np.arange(len(fds.sa.orient == o)) % nchunks fds.sa['chunks'] = chunks """ Now everything is set and we can proceed to the classification analysis. We are using a support vector machine that is going to be trained on the ``orient`` attribute, indicating trials with upright and inverted faces. We are going to perform the analysis with a :class:`~mvpa2.clfs.meta.SplitClassifier`, because we are also interested in the temporal sensitivity profile. That one is easily accessible via the corresponding sensitivity analyzer. """ clf = SVM(space='orient') mclf = SplitClassifier(clf, space='orient', enable_ca=['confusion']) sensana = mclf.get_sensitivity_analyzer() sens = sensana(fds) print mclf.ca.confusion """ The 8-fold cross-validation shows a trial-wise classification accuracy of over 80%. Now we can take a look at the sensitivity. We use the :class:`~mvpa2.mappers.flatten.FlattenMapper` that is stored in the dataset to unmangle X and Y coordinate vectors in the sensitivity array. """ # split mean sensitivities into X and Y coordinate parts by reversing through # the flatten mapper xy_sens = fds.a.mapper[-2].reverse(sens).samples """ Plotting the results -------------------- The analysis is done and we can compile a figure to visualize the results. After some inital preparations, we plot an example image of a face that was used in this experiment. We align the image coordinates with the original on-screen coordinates to match them to the gaze track, and overlay the image with the mean gaze track across all trials for each condition. """ # descriptive plots pl.figure() # original screen size was axes = ('x', 'y') screen_size = np.array((1280, 1024)) screen_center = screen_size / 2 colors = ('r','b') fig = 1 pl.subplot(2, 2, fig) pl.title('Mean Gaze Track') face_img = pl.imread(os.path.join(datapath, 'demo_face.png')) # determine the extend of the image in original screen coordinates # to match with gaze position orig_img_extent=(screen_center[0] - face_img.shape[1]/2, screen_center[0] + face_img.shape[1]/2, screen_center[1] + face_img.shape[0]/2, screen_center[1] - face_img.shape[0]/2) # show face image and put it with original pixel coordinates pl.imshow(face_img, extent=orig_img_extent, cmap=pl.cm.gray) pl.plot(np.mean(ds.samples[ds.sa.orient == 1,:,0], axis=0), np.mean(ds.samples[ds.sa.orient == 1,:,1], axis=0), colors[0], label='inverted') pl.plot(np.mean(ds.samples[ds.sa.orient == 2,:,0], axis=0), np.mean(ds.samples[ds.sa.orient == 2,:,1], axis=0), colors[1], label='upright') pl.axis(orig_img_extent) pl.legend() fig += 1 """ The next two subplot contain the gaze coordinate over the peri-stimulus time for both, X and Y axis respectively. """ pl.subplot(2, 2, fig) pl.title('Gaze Position X-Coordinate') plot_erp(ds.samples[ds.sa.orient == 1,:,1], pre=0, errtype = 'std', color=colors[0], SR=100./3.) plot_erp(ds.samples[ds.sa.orient == 2,:,1], pre=0, errtype = 'std', color=colors[1], SR=100./3.) pl.ylim(orig_img_extent[2:]) pl.xlabel('Peristimulus Time') fig += 1 pl.subplot(2, 2, fig) pl.title('Gaze Position Y-Coordinate') plot_erp(ds.samples[ds.sa.orient == 1,:,0], pre=0, errtype = 'std', color=colors[0], SR=100./3.) plot_erp(ds.samples[ds.sa.orient == 2,:,0], pre=0, errtype = 'std', color=colors[1], SR=100./3.) pl.ylim(orig_img_extent[:2]) pl.xlabel('Peristimulus Time') fig += 1 """ The last panel has the associated sensitivity profile for both coordinate axes. """ pl.subplot(2, 2, fig) pl.title('SVM-Sensitivity Profiles') lines = plot_err_line(xy_sens[..., 0], linestyle='-', fmt='ko', errtype='std') lines[0][0].set_label('X') lines = plot_err_line(xy_sens[..., 1], linestyle='-', fmt='go', errtype='std') lines[0][0].set_label('Y') pl.legend() pl.ylim((-0.1, 0.1)) pl.xlim(0,100) pl.axhline(y=0, color='0.6', ls='--') pl.xlabel('Timepoints') from mvpa2.base import cfg if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ The following figure is not exactly identical to the product of this code, but rather shows the result of a few minutes of beautifications in Inkscape_. .. _Inkscape: http://www.inkscape.org/ .. figure:: ../pics/ex_eyemovements.* :align: center Gaze track for viewing upright vs. inverted faces. The figure shows the mean gaze path for both conditions overlayed on an example face. The panels to the left and below show the X and Y coordinates over the trial timecourse (shaded aread corresponds to one standard deviation across all trials above and below the mean). The black curve depicts the associated temporal SVM weight profile for the classification of both conditions. """ pymvpa2-2.6.4/doc/examples/gpr.py000077500000000000000000000104021323370031300166410ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ The effect of different hyperparameters in GPR ============================================== .. index:: GPR The following example runs Gaussian Process Regression (GPR) on a simple 1D dataset using squared exponential (i.e., Gaussian or RBF) kernel and different hyperparameters. The resulting classifier solutions are finally visualized in a single figure. As usual we start by importing all of PyMVPA: """ # Lets use LaTeX for proper rendering of greek from matplotlib import rc rc('text', usetex=True) from mvpa2.suite import * """ The next lines build two datasets using one of PyMVPA's data generators. """ # Generate dataset for training: train_size = 40 F = 1 dataset = data_generators.sin_modulated(train_size, F) # Generate dataset for testing: test_size = 100 dataset_test = data_generators.sin_modulated(test_size, F, flat=True) """ The last configuration step is the definition of four sets of hyperparameters to be used for GPR. """ # Hyperparameters. Each row is [sigma_f, length_scale, sigma_noise] hyperparameters = np.array([[1.0, 0.2, 0.4], [1.0, 0.1, 0.1], [1.0, 1.0, 0.1], [1.0, 0.1, 1.0]]) """ The plotting of the final figure and the actually GPR runs are performed in a single loop. """ rows = 2 columns = 2 pl.figure(figsize=(12, 12)) for i in range(rows*columns): pl.subplot(rows, columns, i+1) regression = True logml = True data_train = dataset.samples label_train = dataset.sa.targets data_test = dataset_test.samples label_test = dataset_test.sa.targets """ The next lines configure a squared exponential kernel with the set of hyperparameters for the current subplot and assign the kernel to the GPR instance. """ sigma_f, length_scale, sigma_noise = hyperparameters[i, :] kse = SquaredExponentialKernel(length_scale=length_scale, sigma_f=sigma_f) g = GPR(kse, sigma_noise=sigma_noise) if not regression: g = RegressionAsClassifier(g) print g if regression: g.ca.enable("predicted_variances") if logml: g.ca.enable("log_marginal_likelihood") """ After training GPR the predictions are queried by passing the test dataset samples and accuracy measures are computed. """ g.train(dataset) prediction = g.predict(data_test) # print label_test # print prediction accuracy = None if regression: accuracy = np.sqrt(((prediction-label_test)**2).sum()/prediction.size) print "RMSE:", accuracy else: accuracy = (prediction.astype('l')==label_test.astype('l')).sum() \ / float(prediction.size) print "accuracy:", accuracy """ The remaining code simply plots both training and test datasets, as well as the GPR solutions. """ if F == 1: pl.title(r"$\sigma_f=%0.2f$, $length_s=%0.2f$, $\sigma_n=%0.2f$" \ % (sigma_f,length_scale,sigma_noise)) pl.plot(data_train, label_train, "ro", label="train") pl.plot(data_test, prediction, "b-", label="prediction") pl.plot(data_test, label_test, "g+", label="test") if regression: pl.plot(data_test, prediction - np.sqrt(g.ca.predicted_variances), "b--", label=None) pl.plot(data_test, prediction+np.sqrt(g.ca.predicted_variances), "b--", label=None) pl.text(0.5, -0.8, "$RMSE=%.3f$" %(accuracy)) pl.text(0.5, -0.95, "$LML=%.3f$" %(g.ca.log_marginal_likelihood)) else: pl.text(0.5, -0.8, "$accuracy=%s" % accuracy) pl.legend(loc='lower right') print "LML:", g.ca.log_marginal_likelihood if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/gpr_model_selection0.py000077500000000000000000000061111323370031300221500ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Simple model selection: grid search for GPR =========================================== .. index:: GPR, model selection Run simple model selection (grid search over hyperparameters' space) of Gaussian Process Regression (GPR) on a simple 1D example. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.suite import * import pylab as pl # Generate train and test dataset: train_size = 40 test_size = 100 F = 1 dataset = data_generators.sin_modulated(train_size, F) dataset_test = data_generators.sin_modulated(test_size, F, flat=True) print "Looking for better hyperparameters: grid search" # definition of the search grid: sigma_noise_steps = np.linspace(0.1, 0.5, num=20) length_scale_steps = np.linspace(0.05, 0.6, num=20) # Evaluation of log maringal likelohood spanning the hyperparameters' grid: lml = np.zeros((len(sigma_noise_steps), len(length_scale_steps))) lml_best = -np.inf length_scale_best = 0.0 sigma_noise_best = 0.0 i = 0 for x in sigma_noise_steps: j = 0 for y in length_scale_steps: kse = SquaredExponentialKernel(length_scale=y) g = GPR(kse, sigma_noise=x) g.ca.enable("log_marginal_likelihood") g.train(dataset) lml[i, j] = g.ca.log_marginal_likelihood if lml[i, j] > lml_best: lml_best = lml[i, j] length_scale_best = y sigma_noise_best = x # print x,y,lml_best pass j += 1 pass i += 1 pass # Log marginal likelihood contour plot: pl.figure() X = np.repeat(sigma_noise_steps[:, np.newaxis], sigma_noise_steps.size, axis=1) Y = np.repeat(length_scale_steps[np.newaxis, :], length_scale_steps.size, axis=0) step = (lml.max()-lml.min())/30 pl.contour(X, Y, lml, np.arange(lml.min(), lml.max()+step, step), colors='k') pl.plot([sigma_noise_best], [length_scale_best], "k+", markeredgewidth=2, markersize=8) pl.xlabel("noise standard deviation") pl.ylabel("characteristic length_scale") pl.title("log marginal likelihood") pl.axis("tight") print "lml_best", lml_best print "sigma_noise_best", sigma_noise_best print "length_scale_best", length_scale_best print "number of expected upcrossing on the unitary intervale:", \ 1.0/(2*np.pi*length_scale_best) # TODO: reincarnate by providing a function within gpr.py # # Plot predicted values using best hyperparameters: # pl.figure() # compute_prediction(1.0, length_scale_best, sigma_noise_best, True, dataset, # dataset_test.samples, dataset_test.targets, F, True) if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/hyperalignment.py000077500000000000000000000515301323370031300211060ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Hyperalignment for between-subject analysis =========================================== .. index:: hyperalignment, between-subject classification Multivariate pattern analysis (MVPA) reveals how the brain represents fine-scale information. Its power lies in its sensitivity to subtle pattern variations that encode this fine-scale information but that also presents a hurdle for group analyses due to between-subject variability of both anatomical & functional architectures. :ref:`Haxby et al. (2011) ` recently proposed a method of aligning subjects' brain data in a high-dimensional functional space and showed how to build a common model of ventral temporal cortex that captures visual object category information. They tested their model by successfully performing between-subject classification of category information. Moreover, when they built the model using a complex naturalistic stimulation (a feature film), it even generalized to other independent experiments even after removing any occurrences of the experimental stimuli from the movie data. In this example we show how to perform Hyperalignment within a single experiment. We will compare between-subject classification after hyperalignment to between-subject classification on anatomically aligned data (currently the most typical approach), and within-subject classification performance. Analysis setup -------------- """ from mvpa2.suite import * verbose.level = 2 """ We start by loading preprocessed datasets of 10 subjects with BOLD-responses of stimulation with face and object images (:ref:`Haxby et al., 2011 `). Each dataset, after preprocessing, has one sample per category and run for each of the eight runs and seven stimulus categories. Individual subject brains have been aligned anatomically using a 12 dof linear transformation. """ verbose(1, "Loading data...") filepath = os.path.join(cfg.get('location', 'tutorial data'), 'hyperalignment_tutorial_data.hdf5.gz') ds_all = h5load(filepath) # zscore all datasets individually _ = [zscore(ds) for ds in ds_all] # inject the subject ID into all datasets for i, sd in enumerate(ds_all): sd.sa['subject'] = np.repeat(i, len(sd)) # number of subjects nsubjs = len(ds_all) # number of categories ncats = len(ds_all[0].UT) # number of run nruns = len(ds_all[0].UC) verbose(2, "%d subjects" % len(ds_all)) verbose(2, "Per-subject dataset: %i samples with %i features" % ds_all[0].shape) verbose(2, "Stimulus categories: %s" % ', '.join(ds_all[0].UT)) """ Now we'll create a couple of building blocks for the intended analyses. We'll use a linear SVM classifier, and perform feature selection with a simple one-way ANOVA selecting the ``nf`` highest scoring features. """ # use same classifier clf = LinearCSVMC() # feature selection helpers nf = 100 fselector = FixedNElementTailSelector(nf, tail='upper', mode='select', sort=False) sbfs = SensitivityBasedFeatureSelection(OneWayAnova(), fselector, enable_ca=['sensitivities']) # create classifier with automatic feature selection fsclf = FeatureSelectionClassifier(clf, sbfs) """ Within-subject classification ----------------------------- We start off by running a cross-validated classification analysis for every subject's dataset individually. Data folding will be performed by leaving out one run to serve as the testing dataset. ANOVA-based features selection will be performed automatically on training dataset and applied to testing dataset. """ verbose(1, "Performing classification analyses...") verbose(2, "within-subject...", cr=False, lf=False) wsc_start_time = time.time() cv = CrossValidation(fsclf, NFoldPartitioner(attr='chunks'), errorfx=mean_match_accuracy) # store results in a sequence wsc_results = [cv(sd) for sd in ds_all] wsc_results = vstack(wsc_results) verbose(2, " done in %.1f seconds" % (time.time() - wsc_start_time,)) """ Between-subject classification using anatomically aligned data -------------------------------------------------------------- For between-subject classification with MNI-aligned voxels, we can stack up all individual datasets into a single one, as (anatomical!) feature correspondence is given. The cross-validation analysis using the feature selection classifier will automatically perform the desired ANOVA-based feature selection on every training dataset partition. However, data folding will now be done by leaving out a complete subject for testing. """ verbose(2, "between-subject (anatomically aligned)...", cr=False, lf=False) ds_mni = vstack(ds_all) mni_start_time = time.time() cv = CrossValidation(fsclf, NFoldPartitioner(attr='subject'), errorfx=mean_match_accuracy) bsc_mni_results = cv(ds_mni) verbose(2, "done in %.1f seconds" % (time.time() - mni_start_time,)) """ Between-subject classification with Hyperalignment(TM) ------------------------------------------------------ Between-subject classification using Hyperalignment is very similar to the previous analysis. However, now we no longer assume feature correspondence (or aren't satisfied with anatomical alignment anymore). Consequently, we have to transform the individual datasets into a common space before performing the classification analysis. To avoid introducing circularity problems to the analysis, we perform leave-one-run-out data folding manually, and train Hyperalignment only on the training dataset partitions. Subsequently, we will apply the derived transformation to the full datasets, stack them up across individual subjects, as before, and run the classification analysis. ANOVA-based feature selection is done in the same way as before (but also manually). """ verbose(2, "between-subject (hyperaligned)...", cr=False, lf=False) hyper_start_time = time.time() bsc_hyper_results = [] # same cross-validation over subjects as before cv = CrossValidation(clf, NFoldPartitioner(attr='subject'), errorfx=mean_match_accuracy) # leave-one-run-out for hyperalignment training for test_run in range(nruns): # split in training and testing set ds_train = [sd[sd.sa.chunks != test_run, :] for sd in ds_all] ds_test = [sd[sd.sa.chunks == test_run, :] for sd in ds_all] # manual feature selection for every individual dataset in the list anova = OneWayAnova() fscores = [anova(sd) for sd in ds_train] featsels = [StaticFeatureSelection(fselector(fscore)) for fscore in fscores] ds_train_fs = [fs.forward(sd) for fs, sd in zip(featsels, ds_train)] # Perform hyperalignment on the training data with default parameters. # Computing hyperalignment parameters is as simple as calling the # hyperalignment object with a list of datasets. All datasets must have the # same number of samples and time-locked responses are assumed. # Hyperalignment returns a list of mappers corresponding to subjects in the # same order as the list of datasets we passed in. hyper = Hyperalignment() hypmaps = hyper(ds_train_fs) # Applying hyperalignment parameters is similar to applying any mapper in # PyMVPA. We start by selecting the voxels that we used to derive the # hyperalignment parameters. And then apply the hyperalignment parameters # by running the test dataset through the forward() function of the mapper. ds_test_fs = [fs.forward(sd) for fs, sd in zip(featsels, ds_test)] ds_hyper = [h.forward(sd) for h, sd in zip(hypmaps, ds_test_fs)] # Now, we have a list of datasets with feature correspondence in a common # space derived from the training data. Just as in the between-subject # analyses of anatomically aligned data we can stack them all up and run the # crossvalidation analysis. ds_hyper = vstack(ds_hyper) # zscore each subject individually after transformation for optimal # performance zscore(ds_hyper, chunks_attr='subject') res_cv = cv(ds_hyper) bsc_hyper_results.append(res_cv) bsc_hyper_results = hstack(bsc_hyper_results) verbose(2, "done in %.1f seconds" % (time.time() - hyper_start_time,)) """ Comparing the results --------------------- Performance ^^^^^^^^^^^ First we take a look at the classification performance (or accuracy) of all three analysis approaches. """ verbose(1, "Average classification accuracies:") verbose(2, "within-subject: %.2f +/-%.3f" % (np.mean(wsc_results), np.std(wsc_results) / np.sqrt(nsubjs - 1))) verbose(2, "between-subject (anatomically aligned): %.2f +/-%.3f" % (np.mean(bsc_mni_results), np.std(np.mean(bsc_mni_results, axis=1)) / np.sqrt(nsubjs - 1))) verbose(2, "between-subject (hyperaligned): %.2f +/-%.3f" \ % (np.mean(bsc_hyper_results), np.std(np.mean(bsc_hyper_results, axis=1)) / np.sqrt(nsubjs - 1))) """ The output of this demo looks like this:: Loading data... 10 subjects Per-subject dataset: 56 samples with 3509 features Stimulus categories: Chair, DogFace, FemaleFace, House, MaleFace, MonkeyFace, Shoe Performing classification analyses... within-subject... done in 4.3 seconds between-subject (anatomically aligned)...done after 3.2 seconds between-subject (hyperaligned)...done in 10.5 seconds Average classification accuracies: within-subject: 0.57 +/-0.063 between-subject (anatomically aligned): 0.42 +/-0.035 between-subject (hyperaligned): 0.62 +/-0.046 It is obvious that the between-subject classification using anatomically aligned data has significantly worse performance when compared to within-subject classification. Clearly the group classification model is inferior to individual classifiers fitted to a particular subject's data. However, a group classifier trained on hyperaligned data is performing at least as good as the within-subject classifiers -- possibly even slightly better due to the increased size of the training dataset. Similarity structures ^^^^^^^^^^^^^^^^^^^^^ To get a better understanding of how hyperalignment transforms the structure of the data, we compare the similarity structures of the corresponding input datasets of all three analysis above (and one in addition). These are respectively: 1. Average similarity structure of the individual data. 2. Similarity structure of the averaged hyperaligned data. 3. Average similarity structure of the individual data after hyperalignment. 4. Similarity structure of the averaged anatomically-aligned data. Similarity structure in this case is the correlation matrix of multivariate response patterns for all seven stimulus categories in the datasets. For the sake of simplicity, all similarity structures are computed on the full dataset without data folding. """ # feature selection as above anova = OneWayAnova() fscores = [anova(sd) for sd in ds_all] fscores = np.mean(np.asarray(vstack(fscores)), axis=0) # apply to full datasets ds_fs = [sd[:, fselector(fscores)] for sd in ds_all] #run hyperalignment on full datasets hyper = Hyperalignment() mappers = hyper(ds_fs) ds_hyper = [m.forward(ds_) for m, ds_ in zip(mappers, ds_fs)] # similarity of original data samples sm_orig = [np.corrcoef( sd.get_mapped( mean_group_sample(['targets'])).samples) for sd in ds_fs] # mean across subjects sm_orig_mean = np.mean(sm_orig, axis=0) # same individual average but this time for hyperaligned data sm_hyper_mean = np.mean( [np.corrcoef( sd.get_mapped(mean_group_sample(['targets'])).samples) for sd in ds_hyper], axis=0) # similarity for averaged hyperaligned data ds_hyper = vstack(ds_hyper) sm_hyper = np.corrcoef(ds_hyper.get_mapped(mean_group_sample(['targets']))) # similarity for averaged anatomically aligned data ds_fs = vstack(ds_fs) sm_anat = np.corrcoef(ds_fs.get_mapped(mean_group_sample(['targets']))) """ We then plot the respective similarity structures. """ # class labels should be in more meaningful order for visualization # (human faces, animals faces, objects) intended_label_order = [2, 4, 1, 5, 3, 0, 6] labels = ds_all[0].UT labels = labels[intended_label_order] pl.figure(figsize=(6, 6)) # plot all three similarity structures for i, sm_t in enumerate(( (sm_orig_mean, "Average within-subject\nsimilarity"), (sm_anat, "Similarity of group average\ndata (anatomically aligned)"), (sm_hyper_mean, "Average within-subject\nsimilarity (hyperaligned data)"), (sm_hyper, "Similarity of group average\ndata (hyperaligned)"), )): sm, title = sm_t # reorder matrix columns to match label order sm = sm[intended_label_order][:, intended_label_order] pl.subplot(2, 2, i + 1) pl.imshow(sm, vmin=-1.0, vmax=1.0, interpolation='nearest') pl.colorbar(shrink=.4, ticks=[-1, 0, 1]) pl.title(title, size=12) ylim = pl.ylim() pl.xticks(range(ncats), labels, size='small', stretch='ultra-condensed', rotation=45) pl.yticks(range(ncats), labels, size='small', stretch='ultra-condensed', rotation=45) pl.ylim(ylim) """ .. figure:: ../pics/ex_hyperalignment_similarity.* Fig. 1: Correlation of category-specific response patterns using the 100 most informative voxels (based on ANOVA F-score ranking). We can clearly see that averaging anatomically aligned data has a negative effect on the similarity structure, as the fine category structure is diminished and only the coarse structure (faces vs. objects) is preserved. Moreover, we can see that after hyperalignment the average similarity structure of individual data is essentially identical to the similarity structure of averaged data -- reflecting the feature correspondence in the common high-dimensional space. Regularized Hyperalignment -------------------------- According to :ref:`Xu et al. 2012 `, Hyperalignment can be reformulated to a regularized algorithm that can span the whole continuum between `canonical correlation analysis (CCA)`_ and regular hyperalignment by varying a regularization parameter (alpha). Here, we repeat the above between-subject hyperalignment and classification analyses with varying values of alpha from 0 (CCA) to 1.0 (regular hyperalignment). .. _`canonical correlation analysis (CCA)`: http://en.wikipedia.org/wiki/Canonical_correlation The following code is essentially identical to the implementation of between-subject classification shown above. The only difference is an addition ``for`` loop doing the alpha value sweep for each cross-validation fold. """ alpha_levels = np.concatenate((np.linspace(0.0, 0.7, 8), np.linspace(0.8, 1.0, 5))) # to collect the results for later visualization bsc_hyper_results = np.zeros((nsubjs, len(alpha_levels), nruns)) # same cross-validation over subjects as before cv = CrossValidation(clf, NFoldPartitioner(attr='subject'), errorfx=mean_match_accuracy) # leave-one-run-out for hyperalignment training for test_run in range(nruns): # split in training and testing set ds_train = [sd[sd.sa.chunks != test_run, :] for sd in ds_all] ds_test = [sd[sd.sa.chunks == test_run, :] for sd in ds_all] # manual feature selection for every individual dataset in the list anova = OneWayAnova() fscores = [anova(sd) for sd in ds_train] featsels = [StaticFeatureSelection(fselector(fscore)) for fscore in fscores] ds_train_fs = [featsels[i].forward(sd) for i, sd in enumerate(ds_train)] for alpha_level, alpha in enumerate(alpha_levels): hyper = Hyperalignment(alignment=ProcrusteanMapper(svd='dgesvd', space='commonspace'), alpha=alpha) hypmaps = hyper(ds_train_fs) ds_test_fs = [fs.forward(sd) for fs, sd in zip(featsels, ds_test)] ds_hyper = [h.forward(sd) for h, sd in zip(hypmaps, ds_test_fs)] ds_hyper = vstack(ds_hyper) zscore(ds_hyper, chunks_attr='subject') res_cv = cv(ds_hyper) bsc_hyper_results[:, alpha_level, test_run] = res_cv.samples.T """ Now we can plot the classification accuracy as a function of regularization intensity. """ bsc_hyper_results = np.mean(bsc_hyper_results, axis=2) pl.figure() plot_err_line(bsc_hyper_results, alpha_levels) pl.xlabel('Regularization parameter: alpha') pl.ylabel('Average BSC using hyperalignment +/- SEM') pl.title('Using regularized hyperalignment with varying alpha values') if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ .. figure:: ../pics/ex_hyperalignment_alphasweep.* Fig. 2: Mean between-subject classification accuracies using regularized hyperalignment with alpha value ranging from 0 (CCA) to 1 (vanilla hyperalignment). We can clearly see that the regular hyperalignment performs best for this dataset. However, please refer to :ref:`Xu et al. 2012 ` for an example showing that this is not always the case. Searchlight Hyperalignment -------------------------- Hyperalignment as described in :ref:`Haxby et al. 2011 ` aligns features within an ROI across subjects. :ref: `Guntupalli et al. 2016 ` extends hyperalignment to whole brain by using Searchlight Hyperalignment algorithm which applies hyperalignment within searchlights and aggregates resulting local transformations into a global transformation that can be applied to whole brain. Original hyperalignment algorithm is not constrained by anatomical location of features across subjects beyond the ROI definition, whereas Searchlight Hyperalignment can be constrained to perform alignment locally. We will perform the same analysis as performed previously with hyperalignment, but this time using Searchlight Hyperalignment. We will skip ANOVA-based feature selection, but perform feature selection within SL using a method described in :ref:`Haxby et al. 2011`. We will use spherical searchlights of 3-voxel radius and use a sparsely selected voxels as centers for quick computation. Searchlight Hyperalignment accepts custom queryengines instead of default volume searchlight through `queryengine` argument. """ verbose(1, "Performing classification analyses...") verbose(2, "between-subject (searchlight hyperaligned)...", cr=False, lf=False) # feature selection helpers slhyper_start_time = time.time() bsc_slhyper_results = [] # same cross-validation over subjects as before cv = CrossValidation(clf, NFoldPartitioner(attr='subject'), errorfx=mean_match_accuracy) # leave-one-run-out for hyperalignment training for test_run in range(nruns): # split in training and testing set ds_train = [sd[sd.sa.chunks != test_run, :] for sd in ds_all] ds_test = [sd[sd.sa.chunks == test_run, :] for sd in ds_all] # Initializing Searchlight Hyperalignment with Sphere searchlights of 3 voxel radius. # Using 40% features in each SL and spacing centers at 3-voxels distance. slhyper = SearchlightHyperalignment(radius=3, featsel=0.4, sparse_radius=3) # Performing searchlight hyperalignment on training data. # This step is similar to regular hyperalignment, calling # the searchlight hyperalignment object with a list of datasets. # Searchlight Hyperalignment returns a list of mappers corresponding to # subjects in the same order as the list of datasets we passed in. slhypmaps = slhyper(ds_train) # Applying hyperalignment parameters is similar to applying any mapper in # PyMVPA. We apply the hyperalignment parameters by running the test dataset # through the forward() function of the mapper. ds_hyper = [h.forward(sd) for h, sd in zip(slhypmaps, ds_test)] # Running between-subject classification as before. ds_hyper = vstack(ds_hyper) zscore(ds_hyper, chunks_attr='subject') res_cv = cv(ds_hyper) bsc_slhyper_results.append(res_cv) bsc_slhyper_results = hstack(bsc_slhyper_results) verbose(2, "done in %.1f seconds" % (time.time() - slhyper_start_time,)) """ Comparing the results --------------------- Performance ^^^^^^^^^^^ First we take a look at the classification performance (or accuracy) of all three analysis approaches. """ verbose(1, "Average classification accuracies:") verbose(2, "between-subject (searchlight hyperaligned): %.2f +/-%.3f" \ % (np.mean(bsc_slhyper_results), np.std(np.mean(bsc_slhyper_results, axis=1)) / np.sqrt(nsubjs - 1))) """ The output of this demo looks like this:: Performing classification analyses... between-subject (searchlight hyperaligned)...done in 250 seconds Average classification accuracies: between-subject (searchlight hyperaligned): 0.60 +/-0.032 Between-subject classification using searchlight hyperalignment is slightly worse than regular hyperalignment, but remember that we did not do ANOVA-based feature selection and used all voxels in the VT mask. Eventhough, we performed feature selection within each searchlight, it still retains a lot of features. """ pymvpa2-2.6.4/doc/examples/hyperplane_demo.py000077500000000000000000000160361323370031300212350ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Originally written by Rajeev Raizada in 2010 for Matlab and with permission # licensed under the terms of the PyMVPA's license. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Separating hyperplane tutorial ============================== This is a very introductory tutorial, showing how a classification task (in this case, deciding whether people are sumo wrestlers or basketball players, based on their height and weight) can be viewed as drawing a decision boundary in a feature space. It shows how to plot the data, calculate the weights of a simple linear classifier, and see how the resulting classifier carves up the feature space into two categories. .. note:: This tutorial was originally written by Rajeev Raizada for Matlab and was ported to Python by the PyMVPA authors. The original Matlab code is available from: http://www.dartmouth.edu/~raj/Matlab/fMRI/classification_plane_tutorial.m Let's look at a toy example: classifying people as either sumo wrestlers or basketball players, depending on their height and weight. Let's call the x-axis height and the y-axis weight """ sumo_wrestlers_height = [ 4, 2, 2, 3, 4 ] sumo_wrestlers_weight = [ 8, 6, 2, 5, 7 ] basketball_players_height = [ 3, 4, 5, 5, 3 ] basketball_players_weight = [ 2, 5, 3, 7, 3 ] """ Let's plot this. """ import pylab as pl pl.plot(sumo_wrestlers_height, sumo_wrestlers_weight, 'ro', linewidth=2, label="Sumo wrestlers") pl.plot(basketball_players_height, basketball_players_weight, 'bx', linewidth=2, label="Basketball players") pl.xlim(0, 6) pl.ylim(0, 10) pl.xlabel('Height') pl.ylabel('Weight') pl.legend() """ Let's stack up the sumo data on top of the basketball players data. """ import numpy as np # transpose to have observations along the first axis sumo_data = np.vstack((sumo_wrestlers_height, sumo_wrestlers_weight)).T # same for the baskball data basketball_data = np.vstack((basketball_players_height, basketball_players_weight)).T # now stack them all together all_data = np.vstack((sumo_data, basketball_data)) """ In order to be able to train a classifier on the input vectors, we need to know what the desired output categories are for each one. Let's set this to be `+1` for sumo wrestlers, and `-1` for basketball players. """ # creates: [ 1, 1, 1, 1, 1, -1, -1, -1, -1, -1] all_desired_output = np.repeat([1, -1], 5) """ We want to find a linear decision boundary, i.e. simply a straight line, such that all the data points on one side of the line get classified as sumo wrestlers, i.e. get mapped onto the desired output of `+1`, and all the data points on the other side get classified as basketball players, i.e. get mapped onto the desired output of `-1`. The equation for a straight line has this form: .. math:: \vec{w} \mathbf{D} - \vec{b} = 0 were :math:`\vec{w}` is a weight vector, :math:`\mathbf{D}` is the data matrix, and :math:`\vec{b}` is the offset of the dataset form the origin, or the bias. We're not so interested for now in :math:`\vec{b}`, so we can get rid of that by subtracting the mean from our data to get :math:`\mathbf{D_{C}}` the per-column (i.e. variable) demeaned data that is now centered around the origin. """ zero_meaned_data = all_data - all_data.mean(axis=0) """ Now, having gotten rid of that annoying bias term, we want to find a weight vector which gives us the best solution that we can find to this equation: .. math:: \mathbf{D_{C}} \vec{w} = \vec{o} were :math:`\vec{o}` is the desired output, or the class labels. But, there is no such perfect set of weights. We can only get a best fit, such that .. math:: \mathbf{D_{C}} \vec{w} = \vec{o} + \vec{e} where the error term :math:`\vec{e}` is as small as possible. Note that our equation .. math:: \mathbf{D_{C}} \vec{w} = \vec{o} has exactly the same form as the equation from the tutorial code in http://www.dartmouth.edu/~raj/Matlab/fMRI/design_matrix_tutorial.m which is: .. math:: \mathbf{X} \vec{\beta} = \vec{y} where :math:`\mathbf{X}` was the design matrix, :math:`\vec{\beta}` the sensitivity vector, and :math:`\vec{y}` the voxel response. The way we solve the equation is exactly the same, too. If we could find a matrix-inverse of the data matrix, then we could pre-multiply both sides by that inverse, and that would give us the weights: .. math:: \mathbf{D_{C}^{-1}} \mathbf{D_{C}} \vec{w} = \mathbf{D_{C}^{-1}} \vec{o} The :math:`\mathbf{D_{C}^{-1}}` and :math:`\mathbf{D_{C}}` terms on the left would cancel each other out, and we would be left with: .. math:: \vec{w} = \mathbf{D_{C}^{-1}} \vec{o} However, unfortunately there will in general not exist any matrix-inverse of the data matrix :math:`\mathbf{D_{C}}`. Only square matrices have inverses, and not even all of them do. Luckily, however, we can use something that plays a similar role, called a pseudo-inverse. In Numpy, this is given by the command `pinv`. The pseudo-inverse won't give us a perfect solution to the above equation but it will give us the best approximate solution, which is what we want. So, instead of .. math:: \vec{w} = \mathbf{D_{C}^{-1}} \vec{o} we have this equation: """ # compute pseudo-inverse as a matrix pinv = np.linalg.pinv(np.mat(zero_meaned_data)) # column-vector of observations y = all_desired_output[np.newaxis].T weights = pinv * y """ Let's have a look at how these weights carve up the input space A useful command for making grids of points which span a particular 2D space is called "meshgrid" """ gridspec = np.linspace(-4, 4, 20) input_space_X, input_space_Y = np.meshgrid(gridspec, gridspec) # for the rest it is easier to have `weights` as a simple array, instead # of a matrix weights = weights.A weighted_output_Z = input_space_X * weights[0] + input_space_Y * weights[1] """ The weighted output gets turned into the category-decision `+1` if it is greater than 0, and `-1` if it is less than zero. Let's plot the decision surface color-coded and then plot the zero-meaned sumo and basketball data on top. """ pl.figure() pl.pcolor(input_space_X, input_space_Y, weighted_output_Z, cmap=pl.cm.Spectral) pl.plot(zero_meaned_data[all_desired_output == 1, 0], zero_meaned_data[all_desired_output == 1, 1], 'ro', linewidth=2, label="Sumo wrestlers") pl.plot(zero_meaned_data[all_desired_output == -1, 0], zero_meaned_data[all_desired_output == -1, 1], 'bx', linewidth=2, label="Basketball players") pl.xlim(-4, 4) pl.ylim(-4, 4) pl.colorbar() pl.xlabel('Demeaned height') pl.ylabel('Demeaned weight') pl.title('Decision output') pl.legend() from mvpa2.base import cfg if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/kerneldemo.py000077500000000000000000000042431323370031300202040ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Kernel-Demo =========== This is an example demonstrating various kernel implementation in PyMVPA. """ import numpy as np from mvpa2.support.pylab import pl #from mvpa2.suite import * from mvpa2.base import cfg from mvpa2.kernels.np import * # np.random.seed(1) data = np.random.rand(4, 2) for kernel_class, kernel_args in ( (ConstantKernel, {'sigma_0':1.0}), (ConstantKernel, {'sigma_0':1.0}), (GeneralizedLinearKernel, {'Sigma_p':np.eye(data.shape[1])}), (GeneralizedLinearKernel, {'Sigma_p':np.ones(data.shape[1])}), (GeneralizedLinearKernel, {'Sigma_p':2.0}), (GeneralizedLinearKernel, {}), (ExponentialKernel, {}), (SquaredExponentialKernel, {}), (Matern_3_2Kernel, {}), (Matern_5_2Kernel, {}), (RationalQuadraticKernel, {}), ): kernel = kernel_class(**kernel_args) print kernel result = kernel.compute(data) # In the following we draw some 2D functions at random from the # distribution N(O,kernel) defined by each available kernel and # plot them. These plots shows the flexibility of a given kernel # (with default parameters) when doing interpolation. The choice # of a kernel defines a prior probability over the function space # used for regression/classfication with GPR/GPC. count = 1 for k in kernel_dictionary.keys(): pl.subplot(3, 4, count) # X = np.random.rand(size)*12.0-6.0 # X.sort() X = np.arange(-1, 1, .02) X = X[:, np.newaxis] ker = kernel_dictionary[k]() ker.compute(X, X) print k K = np.asarray(ker) for i in range(10): f = np.random.multivariate_normal(np.zeros(X.shape[0]), K) pl.plot(X[:, 0], f, "b-") pl.title(k) pl.axis('tight') count += 1 if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/knn_plot.py000077500000000000000000000025321323370031300177020ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ kNN -- Model Flexibility in Pictures ==================================== .. index:: kNN TODO """ import numpy as np """ """ import mvpa2 from mvpa2.base import cfg from mvpa2.misc.data_generators import * from mvpa2.clfs.knn import kNN from mvpa2.misc.plot import * mvpa2.seed(0) # to reproduce the plot dataset_kwargs = dict(nfeatures=2, nchunks=10, snr=2, nlabels=4, means=[ [0,1], [1,0], [1,1], [0,0] ]) dataset_train = normal_feature_dataset(**dataset_kwargs) dataset_plot = normal_feature_dataset(**dataset_kwargs) # make a new figure pl.figure(figsize=(9, 9)) for i,k in enumerate((1, 3, 9, 20)): knn = kNN(k) print "Processing kNN(%i) problem..." % k pl.subplot(2, 2, i+1) """ """ knn.train(dataset_train) plot_decision_boundary_2d( dataset_plot, clf=knn, maps='targets') if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/match_distribution.py000077500000000000000000000070451323370031300217550ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Determine the Distribution of some Variable =========================================== This is an example demonstrating discovery of the distribution facility. """ from mvpa2.suite import * verbose.level = 2 if __debug__: # report useful debug information for the example debug.active += ['STAT', 'STAT_'] """ While doing distribution matching, this example also demonstrates infrastructure within PyMVPA to log a progress report not only on the screen, but also into external files, such as - simple text file, - PDF file including all text messages and pictures which were rendered. For PDF report you need to have ``reportlab`` external available. """ report = Report(name='match_distribution_report', title='PyMVPA Example: match_distribution.py') verbose.handlers += [report] # Lets add verbose output to the report. # Similar action could be done to 'debug' # Also append verbose output into a log file we care about verbose.handlers += [open('match_distribution_report.log', 'a')] # # Figure for just normal distribution # # generate random signal from normal distribution verbose(1, "Random signal with normal distribution") data = np.random.normal(size=(1000, 1)) # find matching distributions # NOTE: since kstest is broken in older versions of scipy # p-roc testing is done here, which aims to minimize # false positives/negatives while doing H0-testing test = 'p-roc' figsize = (15, 10) verbose(1, "Find matching datasets") matches = match_distribution(data, test=test, p=0.05) pl.figure(figsize=figsize) pl.subplot(2, 1, 1) plot_distribution_matches(data, matches, legend=1, nbest=5) pl.title('Normal: 5 best distributions') pl.subplot(2, 1, 2) plot_distribution_matches(data, matches, nbest=5, p=0.05, tail='any', legend=4) pl.title('Accept regions for two-tailed test') # we are done with the figure -- add it to report report.figure() # # Figure for fMRI data sample we have # verbose(1, "Load sample fMRI dataset") dataset = load_example_fmri_dataset() # select random voxel dataset = dataset[:, int(np.random.uniform()*dataset.nfeatures)] verbose(2, "Minimal preprocessing to remove the bias per each voxel") poly_detrend(dataset, chunks_attr='chunks', polyord=1) zscore(dataset, chunks_attr='chunks', param_est=('targets', ['0']), dtype='float32') # on all voxels at once, just for the sake of visualization data = dataset.samples.ravel() verbose(2, "Find matching distribution") matches = match_distribution(data, test=test, p=0.05) pl.figure(figsize=figsize) pl.subplot(2, 1, 1) plot_distribution_matches(data, matches, legend=1, nbest=5) pl.title('Random voxel: 5 best distributions') pl.subplot(2, 1, 2) plot_distribution_matches(data, matches, nbest=5, p=0.05, tail='any', legend=4) pl.title('Accept regions for two-tailed test') report.figure() if cfg.getboolean('examples', 'interactive', True): # store the report report.save() # show the cool figure pl.show() """ Example output for a random voxel is .. image:: ../pics/ex_match_distribution.* :align: center :alt: Matching distributions for a random voxel """ pymvpa2-2.6.4/doc/examples/mdp_mnist.py000077500000000000000000000205171323370031300200530ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ .. index:: MDP Classifying the MNIST handwritten digits with MDP ================================================= This example will demonstrate how to embed MDP_'s flows_ into a PyMVPA-based analysis. We will perform a classification of a large number of images of handwritten digits from the :ref:`MNIST ` database. To get a better sense of how MDP blends into PyMVPA, we will do the same analysis with MDP only first, and then redo it in PyMVPA -- only using particular bits from MDP. .. _MDP: http://mdp-toolkit.sourceforge.net .. _flows: http://mdp-toolkit.sourceforge.net/tutorial/flows.html But first we need some helper to load the MNIST data. The following function will load four NumPy arrays from an HDF5 file in the PyMVPA Data DB. These arrays are the digit images and the numerical labels for training and testing dataset respectively. All 28x28 pixel images are stored as flattened vectors. """ import os from mvpa2.base.hdf5 import h5load from mvpa2 import pymvpa_datadbroot def load_data(): data = h5load(os.path.join(pymvpa_datadbroot, 'mnist', "mnist.hdf5")) traindata = data['train'].samples trainlabels = data['train'].sa.labels testdata = data['test'].samples testlabels = data['test'].sa.labels return traindata, trainlabels, testdata, testlabels """ MDP-style classification ------------------------ Here is how to get the classification of the digit images done in MDP. The data is preprocessed by whitening, followed by polynomial expansion, and a subsequent projection on a nine-dimensional discriminant analysis solution. There is absolutely no need to do this particular pre-processing, it is just done to show off some MDP features. The actual classification is performed by a Gaussian classifier. The training data needs to be fed in different ways to the individual nodes of the flow. The whitening needs only the images, polynomial expansion needs no training at all, and FDA as well as the classifier also need the labels. Moreover, a custom iterator is used to feed data in chunks to the last two nodes of the flow. """ import numpy as np import mdp class DigitsIterator: def __init__(self, digits, labels): self.digits = digits self.targets = labels def __iter__(self): frac = 10 ll = len(self.targets) for i in xrange(frac): yield self.digits[i*ll/frac:(i+1)*ll/frac], \ self.targets[i*ll/frac:(i+1)*ll/frac] traindata, trainlabels, testdata, testlabels = load_data() fdaclf = (mdp.nodes.WhiteningNode(output_dim=10, dtype='d') + mdp.nodes.PolynomialExpansionNode(2) + mdp.nodes.FDANode(output_dim=9) + mdp.nodes.GaussianClassifier()) fdaclf.verbose = True fdaclf.train([[traindata], None, DigitsIterator(traindata, trainlabels), DigitsIterator(traindata, trainlabels) ]) """ After training, we feed the test data through the flow to obtain the predictions. First through the pre-processing nodes and then through the classifier, extracting the predicted labels only. Finally, the prediction error is computed. """ feature_space = fdaclf[:-1](testdata) guess = fdaclf[-1].label(feature_space) err = 1 - np.mean(guess == testlabels) print 'Test error:', err """ Doing it the PyMVPA way ----------------------- Analog to the previous approach we load the data first. This time, however, we convert it into a PyMVPA dataset. Training and testing data are initially created as two separate datasets, get tagged as 'train' and 'test' respectively, and are finally stacked into a single Dataset of 70000 images and their numerical labels. """ import pylab as pl from mvpa2.suite import * traindata, trainlabels, testdata, testlabels = load_data() train = dataset_wizard( traindata, targets=trainlabels, chunks='train') test = dataset_wizard( testdata, targets=testlabels, chunks='test') # merge the datasets into on ds = vstack((train, test)) ds.init_origids('samples') """ For this analysis we will use the exact same pre-processing as in the MDP code above, by using the same MDP nodes, in an MDP flow that is shortened only by the Gaussian classifier. The glue between these MDP nodes and PyMVPA is the :class:`~mvpa2.mappers.mdp_adaptor.MDPFlowMapper`. This mapper is able to supply nodes with optional arguments for their training. In this example a :class:`~mvpa2.base.dataset.DatasetAttributeExtractor` is used to feed the labels of the training dataset to the FDA node (in addition to the training data itself). """ fdaflow = (mdp.nodes.WhiteningNode(output_dim=10, dtype='d') + mdp.nodes.PolynomialExpansionNode(2) + mdp.nodes.FDANode(output_dim=9)) fdaflow.verbose = True mapper = MDPFlowMapper(fdaflow, ([], [], [DatasetAttributeExtractor('sa', 'targets')])) """ The :class:`~mvpa2.mappers.mdp_adaptor.MDPFlowMapper` can represent any MDP flow as a PyMVPA mapper. In this example, we attach the MDP-based pre-processing flow, wrapped in the mapper, to a classifier (arbitrarily chosen to be SMLR) via a :class:`~mvpa2.clfs.meta.MappedClassifier`. In doing so we achieve that the training data is automatically pre-processed before it is used to train the classifier, and later on the same pre-processing it applied to the testing data, before the classifier is asked to make its predictions. At last we wrap the MappedClassifier into a :class:`~mvpa2.measures.base.TransferMeasure` that splits the dataset into a training and testing part. In this particular case this is not really necessary, as we could have left training and testing data separate in the first place, and could have called the classifier's ``train()`` and ``predict()`` manually. However, when doing repeated train/test cycles as, for example, in a cross-validation this is not very useful. In this particular case the TransferMeasure computes a number of performance measures for us that we only need to extract. """ tm = TransferMeasure(MappedClassifier(SMLR(), mapper), Splitter('chunks', attr_values=['train', 'test']), enable_ca=['stats', 'samples_error']) tm(ds) print 'Test error:', 1 - tm.ca.stats.stats['ACC'] """ Visualizing data and results ---------------------------- The analyses are already done. But for the sake of completeness we take a final look at both data and results. First and few examples of the training data. """ examples = [3001 + 5940 * i for i in range(10)] pl.figure(figsize=(2, 5)) for i, id_ in enumerate(examples): ax = pl.subplot(2, 5, i+1) ax.axison = False pl.imshow(traindata[id_].reshape(28, 28).T, cmap=pl.cm.gist_yarg, interpolation='nearest', aspect='equal') pl.subplots_adjust(left=0, right=1, bottom=0, top=1, wspace=0.05, hspace=0.05) pl.draw() """ And finally we take a peak at the result of pre-processing for a number of example images for each digit. The following plot shows the training data on hand-picked three-dimensional subset of the original nine FDA dimension the data was projected on. """ if externals.exists('matplotlib') \ and externals.versions['matplotlib'] >= '0.99': from mpl_toolkits.mplot3d import Axes3D pts = [] for i, ex in enumerate(examples): pts.append(mapper.forward(ds.samples[ex:ex+200])[:, :3]) fig = pl.figure() ax = Axes3D(fig) colors = ('r','g','b','k','c','m','y','burlywood','chartreuse','gray') clouds = [] for i, p in enumerate(pts): print i clouds.append(ax.plot(p[:, 0], p[:, 1], p[:, 2], 'o', c=colors[i], label=str(i), alpha=0.6)) ax.legend([str(i) for i in range(10)]) pl.draw() if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ .. image:: ../pics/ex_mdp_fda.* Note: The data visualization depends on the 3D matplotlib features, which are available only from version 0.99. """ pymvpa2-2.6.4/doc/examples/mri_plot.py000077500000000000000000000102541323370031300177030ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Basic (f)MRI plotting ===================== .. index:: plotting When running an fMRI data analysis it is often necessary to visualize results in their original dataspace, typically as an overlay on some anatomical brain image. PyMVPA has the ability to export results into the NIfTI format, and via this data format it is compatible with virtually any MRI visualization software. However, sometimes having a scriptable plotting facility within Python is desired. There are a number of candidate tools for this purpose (e.g. Mayavi_), but also PyMVPA itself offers some basic MRI plotting. .. _Mayavi: http://code.enthought.com/projects/mayavi/ In this example, we are showing a quick-and-dirty plot of a voxel-wise ANOVA measure, overlaid on the respective brain anatomy. Note that the plotting is not specific to ANOVAs. Any feature-wise measure can be plotted this way. We start with basic steps: loading PyMVPA and the example fMRI dataset, only select voxels that correspond to some pre-computed gray matter mask, do basic preprocessing, and estimate ANOVA scores. This has already been described elsewhere, hence we only provide the code here for the sake of completeness. """ from mvpa2.suite import * # load PyMVPA example dataset datapath = os.path.join(mvpa2.cfg.get('location', 'tutorial data'), 'haxby2001') dataset = load_tutorial_data(roi='gray') # do chunkswise linear detrending on dataset poly_detrend(dataset, chunks_attr='chunks') # exclude the rest conditions from the dataset, since that should be # quite different from the 'active' conditions, and make the computation # below pointless dataset = dataset[dataset.sa.targets != 'rest'] # define sensitivity analyzer to compute ANOVA F-scores on the remaining # samples sensana = OneWayAnova() sens = sensana(dataset) """ The measure is computed, and we can look at the actual plotting. Typically, it is useful to pre-define some common plotting arguments, for example to ensure consistency throughout multiple figures. This following sets up which backround image to use (``background``), which portions of the image to plot (``background_mask``), and which portions of the overlay images to plot (``overlay_mask``). All these arguments are actually NIfTI images of the same dimensions and orientation as the to be plotted F-scores image. the remaining settings configure the colormaps to be used for plotting and trigger interactive plotting. """ mri_args = { 'background' : os.path.join(datapath, 'sub001', 'anatomy', 'highres001.nii.gz'), 'background_mask' : os.path.join(datapath, 'sub001', 'masks', 'orig', 'brain.nii.gz'), 'overlay_mask' : os.path.join(datapath, 'sub001', 'masks', 'orig', 'gray.nii.gz'), 'cmap_bg' : 'gray', 'cmap_overlay' : 'autumn', # YlOrRd_r # pl.cm.autumn 'interactive' : cfg.getboolean('examples', 'interactive', True), } """ All that remains to do is a single call to `plot_lightbox()`. We pass it the F-score vector. `map2nifti` uses the mapper in our original dataset to project it back into the functional MRI volume space. We treshold the data with the interval [0, +inf] (i.e. all possible values and F-Score can have), and select a subset of slices to be plotted. That's it. """ fig = plot_lightbox(overlay=map2nifti(dataset, sens), vlim=(0, None), slices=range(25,29), **mri_args) """ The resulting figure would look like this: .. image:: ../pics/ex_plot_lightbox.* :align: center :alt: Simple plotting facility for (f)MRI. F-scores In interactive mode it is possible to click on the histogram to adjust the thresholding of the overlay volumes. Left-click sets the value corresponding to the lowest value in the colormap, and right-click set the value for the upper end of the colormap. Try right-clicking somewhere at the beginning of the x-axis and left on the end of the x-axis. """ pymvpa2-2.6.4/doc/examples/nested_cv.py000077500000000000000000000121151323370031300200260ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Nested Cross-Validation ======================= .. index:: model selection, cross-validation Often it is desired to explore multiple models (classifiers, parameterizations) but it becomes an easy trap for introducing an optimistic bias into generalization estimate. The easiest but computationally intensive solution to overcome such a bias is to carry model selection by estimating the same (or different) performance characteristic while operating only on training data. If such performance is a cross-validation, then it leads to the so called "nested cross-validation" procedure. This example will demonstrate on how to implement such nested cross-validation while selecting the best performing classifier from the warehouse of available within PyMVPA. """ from mvpa2.suite import * # increase verbosity a bit for now verbose.level = 3 # pre-seed RNG if you want to investigate the effects, thus # needing reproducible results #mvpa2.seed(3) """ For this simple example lets generate some fresh random data with 2 relevant features and low SNR. """ dataset = normal_feature_dataset(perlabel=24, nlabels=2, nchunks=3, nonbogus_features=[0, 1], nfeatures=100, snr=3.0) """ For the demonstration of model selection benefit, lets first compute cross-validated error using simple and popular kNN. """ clf_sample = kNN() cv_sample = CrossValidation(clf_sample, NFoldPartitioner()) verbose(1, "Estimating error using a sample classifier") error_sample = np.mean(cv_sample(dataset)) """ For the convenience lets define a helpful function which we will use twice -- once within cross-validation, and once on the whole dataset """ def select_best_clf(dataset_, clfs): """Select best model according to CVTE Helper function which we will use twice -- once for proper nested cross-validation, and once to see how big an optimistic bias due to model selection could be if we simply provide an entire dataset. Parameters ---------- dataset_ : Dataset clfs : list of Classifiers Which classifiers to explore Returns ------- best_clf, best_error """ best_error = None for clf in clfs: cv = CrossValidation(clf, NFoldPartitioner()) # unfortunately we don't have ability to reassign clf atm # cv.transerror.clf = clf try: error = np.mean(cv(dataset_)) except LearnerError, e: # skip the classifier if data was not appropriate and it # failed to learn/predict at all continue if best_error is None or error < best_error: best_clf = clf best_error = error verbose(4, "Classifier %s cv error=%.2f" % (clf.descr, error)) verbose(3, "Selected the best out of %i classifiers %s with error %.2f" % (len(clfs), best_clf.descr, best_error)) return best_clf, best_error """ First lets select a classifier within cross-validation, thus eliminating model-selection bias """ best_clfs = {} confusion = ConfusionMatrix() verbose(1, "Estimating error using nested CV for model selection") partitioner = NFoldPartitioner() splitter = Splitter('partitions') for isplit, partitions in enumerate(partitioner.generate(dataset)): verbose(2, "Processing split #%i" % isplit) dstrain, dstest = list(splitter.generate(partitions)) best_clf, best_error = select_best_clf(dstrain, clfswh['!gnpp']) best_clfs[best_clf.descr] = best_clfs.get(best_clf.descr, 0) + 1 # now that we have the best classifier, lets assess its transfer # to the testing dataset while training on entire training tm = TransferMeasure(best_clf, splitter, postproc=BinaryFxNode(mean_mismatch_error, space='targets'), enable_ca=['stats']) tm(partitions) confusion += tm.ca.stats """ And for comparison, lets assess what would be the best performance if we simply explore all available classifiers, providing all the data at once """ verbose(1, "Estimating error via fishing expedition (best clf on entire dataset)") cheating_clf, cheating_error = select_best_clf(dataset, clfswh['!gnpp']) print """Errors: sample classifier (kNN): %.2f model selection within cross-validation: %.2f model selection via fishing expedition: %.2f with %s """ % (error_sample, 1 - confusion.stats['ACC'], cheating_error, cheating_clf.descr) print "# of times following classifiers were selected within " \ "nested cross-validation:" for c, count in sorted(best_clfs.items(), key=lambda x:x[1], reverse=True): print " %i times %s" % (count, c) print "\nConfusion table for the nested cross-validation results:" print confusion pymvpa2-2.6.4/doc/examples/permutation_test.py000077500000000000000000000320221323370031300214610ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Monte-Carlo testing of Classifier-based Analyses ================================================ .. index:: statistical testing, monte-carlo, permutation It is often desirable to be able to make statements like *"Performance is significantly above chance-level"* and to help with that PyMVPA supports *Null* hypothesis (aka *H0*) testing for any :class:`~mvpa2.measures.base.Measure`. Measures take an optional constructor argument ``null_dist`` that can be used to provide an instance of some :class:`~mvpa2.clfs.stats.NullDist` estimator. If the properties of the expected *Null* distribution are known a-priori, it is possible to use any distribution specified in SciPy's ``stats`` module for this purpose (see e.g. :class:`~mvpa2.clfs.stats.FixedNullDist`). However, as with other applications of statistics in classifier-based analyses there is the problem that we typically do not know the distribution of a variable like error or performance under the *Null* hypothesis (i.e. the probability of a result given that there is no signal), hence we cannot easily assign the adored p-values. Even worse, the chance-level or guess probability of a classifier depends on the content of a validation dataset, e.g. balanced or unbalanced number of samples per label and total number of labels. One approach to deal with this situation is to *estimate* the *Null* distribution using permutation testing. The *Null* distribution is then estimated by computing the measure of interest multiple times using original data samples but with permuted targets. Since quite often the exploration of all permutations is unfeasible, Monte-Carlo testing (see :ref:`Nichols et al. (2006) `) allows to obtain stable estimate with only a limited number of random permutations. Given the results computed using permuted targets one can now determine the probability of the empirical result (i.e. the one computed from the original training dataset) under the *no signal* condition. This is simply the fraction of results from the permutation runs that is larger or smaller than the empirical (depending on whether one is looking at performances or errors). Here is how this looks for a simple cross-validated classification in PyMVPA. We start by generated a dataset with 200 samples and 3 features of which 2 carry some relevant signal. """ # lazy import from mvpa2.suite import * # enable progress output for MC estimation if __debug__: debug.active += ["STATMC"] # some example data with signal ds = normal_feature_dataset(perlabel=100, nlabels=2, nfeatures=3, nonbogus_features=[0,1], snr=0.3, nchunks=2) """ Now we can start collecting the pieces that play a role in this analysis. We need a classifier. """ clf = LinearCSVMC() """ We need a :term:`generator` than will produce partitioned datasets, one for each fold of the cross-validation. A partitioned dataset is basically the same as the original dataset, but has an additional samples attribute that indicates whether particular samples will be the *part* of the data that is used for training the classifier, or for testing it. By default, the :class:`~mvpa2.generators.partition.NFoldPartitioner` will create a sample attribute ``partitions`` that will label one :term:`chunk` in each fold differently from all others (hence mark it as taken-out for testing). """ partitioner = NFoldPartitioner() """ We need two pieces for the Monte Carlo shuffling. The first of them is an instance of an :class:`~mvpa2.generators.permutation.AttributePermutator` that will permute the target attribute of the dataset for each iteration. We will instruct it to perform 200 permutations. In a real analysis the number of permutations should be larger to get stable estimates. """ permutator = AttributePermutator('targets', count=200) """ The second mandatory piece for a Monte-Carlo-style estimation of the *Null* distribution is the actual "estimator". :class:`~mvpa2.clfs.stats.MCNullDist` will use the constructed ``permutator`` to shuffle the targets and later on report p-value from the left tail of the *Null* distribution, because we are going to compute errors and are interested in them being *lower* than chance. Finally we also ask for all results from Monte-Carlo shuffling to be stored for subsequent visualization of the distribution. """ distr_est = MCNullDist(permutator, tail='left', enable_ca=['dist_samples']) """ Now we have all pieces and can conduct the actual cross-validation. We assign a post-processing :term:`node` ``mean_sample`` that will take care of averaging error values across all cross-validation fold. Consequently, the *Null* distribution of *average cross-validated classification error* will be estimated and used for statistical evaluation. """ cv = CrossValidation(clf, partitioner, errorfx=mean_mismatch_error, postproc=mean_sample(), null_dist=distr_est, enable_ca=['stats']) # run err = cv(ds) """ Now we have a usual cross-validation error and ``cv`` stores :term:`conditional attribute`s such as confusion matrices`: """ print 'CV-error:', 1 - cv.ca.stats.stats['ACC'] """ However, in addition it also provides the results of the statistical evaluation. The :term:`conditional attribute` ``null_prob`` has a dataset that contains the p-values representing the likelihood of an error equal or lower to the output one under the *Null* hypothesis, i.e. no actual relevant signal in the data. For a reason that will appear sensible later on, the p-value is contained in a dataset. """ p = cv.ca.null_prob # should be exactly one p-value assert(p.shape == (1,1)) print 'Corresponding p-value:', np.asscalar(p) """ We can now look at the distribution of the errors under *H0* and plot the expected chance level as well as the empirical error. """ # make new figure pl.figure() # histogram of all computed errors from permuted data pl.hist(np.ravel(cv.null_dist.ca.dist_samples), bins=20) # empirical error pl.axvline(np.asscalar(err), color='red') # chance-level for a binary classification with balanced samples pl.axvline(0.5, color='black', ls='--') # scale x-axis to full range of possible error values pl.xlim(0,1) pl.xlabel('Average cross-validated classification error') """ We can see that the *Null* or chance distribution is centered around the expected chance-level and the empirical error value is in the far left tail, thus unlikely to belong to *Null* distribution, and hence the low p-value. This could be the end, but sometimes one needs to have a closer look. Let's say your data is not that homogeneous. Let's say that some :term:`chunk ` may be very different from others. You might want to look at the error value probability for specific cross-validation folds. Sounds complicated? Luckily it is very simple. It only needs a tiny change in the cross-validation setup -- the removal of the ``mean_sample`` post-processing :term:`node`. """ cv = CrossValidation(clf, partitioner, errorfx=mean_mismatch_error, null_dist=distr_est, enable_ca=['stats']) # run err = cv(ds) assert (err.shape == (2,1)) print 'CV-errors:', np.ravel(err) """ Now we get two errors -- one for each cross-validation fold and most importantly, we also get the two associated p-values. """ p = cv.ca.null_prob assert(p.shape == (2,1)) print 'Corresponding p-values:', np.ravel(p) """ What happened is that a dedicated *Null* distribution has been estimated for each element in the measure results. Without ``mean_sample`` an error is reported for each CV-fold, hence a separate distributions are estimated for each CV-fold too. And because we have also asked for all distribution samples to be reported, we can now plot both distribution and both empirical errors. But how do we figure out with value is which? As mentioned earlier all results are returned in Datasets. All datasets have compatible sample and feature axes, hence corresponding elements. """ assert(err.shape == p.shape == cv.null_dist.ca.dist_samples.shape[:2]) # let's make a function this time def plot_cv_results(cv, err, title): # make new figure pl.figure() colors = ['green', 'blue'] # null distribution samples dist_samples = np.asarray(cv.null_dist.ca.dist_samples) for i, e in enumerate(err): # histogram of all computed errors from permuted data per CV-fold pl.hist(np.ravel(dist_samples[i]), bins=20, color=colors[i], label='CV-fold %i' %i, alpha=0.5, range=(dist_samples.min(), dist_samples.max())) # empirical error pl.axvline(np.asscalar(e), color=colors[i]) # chance-level for a binary classification with balanced samples pl.axvline(0.5, color='black', ls='--') # scale x-axis to full range of possible error values pl.xlim(0,1) pl.xlabel(title) plot_cv_results(cv, err, 'Per CV-fold classification error') """ We have already seen that the statistical evaluation is pretty flexible. However, we haven't yet seen whether it is flexible enough. To illustrate that think about what was done in the above Monte Carlo analyses. A dataset was shuffled repeatedly, and for each iteration a full cross-validation of classification error was performed. However, the shuffling was done on the *full* dataset, hence target were permuted in both training *and* testing dataset portions in each CV-fold. This basically means that for each Monte Carlo iteration the classifier was tested on a new data/signal. However, we may be more interested in what the classifier has to say on the *actual* data, but when it was trained on randomly permuted data. As you can guess this is possible too and goes like this. The most important difference is that we are going to use now a dedicate measure to estimate the *Null* distribution. That measure is very similar to the cross-validation we have used before, but differs in an important bit. Let's look at the pieces. """ # how often do we want to shuffle the data repeater = Repeater(count=200) # permute the training part of a dataset exactly ONCE permutator = AttributePermutator('targets', limit={'partitions': 1}, count=1) # CV with null-distribution estimation that permutes the training data for # each fold independently null_cv = CrossValidation( clf, ChainNode([partitioner, permutator], space=partitioner.get_space()), errorfx=mean_mismatch_error) # Monte Carlo distribution estimator distr_est = MCNullDist(repeater, tail='left', measure=null_cv, enable_ca=['dist_samples']) # actual CV with H0 distribution estimation cv = CrossValidation(clf, partitioner, errorfx=mean_mismatch_error, null_dist=distr_est, enable_ca=['stats']) """ The ``repeater`` is a simple node that returns any given dataset a configurable number of times. We use the helper to configure the number of Monte Carlo iterations. The new ``permutator`` is again configured to shuffle the ``targets`` attribute, but only *once* and only for samples that were labeled as being part of the training set in a particular CV-fold (the ``partitions`` sample attribute will be created by the NFoldPartitioner that we have configured earlier). The most important difference is a new dedicated measure that will be used to perform a cross-validation analysis under the *H0* hypotheses. To this end we set up a standard CV procedure with a twist: we use a chained generator (comprising of the typical partitioner and the new one-time permutator). This will cause the CV to permute the training set for each CV-fold internally (and that is what we wanted). Now we assign the *H0* cross-validation procedure to the distribution estimator and use the ``repeater`` to set the number of iterations. Lastly, we plug everything into a standard CV analysis with, again, a non-permuting ``partitioner`` and the pimped *Null* distribution estimator. Now we just need to run it, and plot the results the same way we did before. """ err = cv(ds) print 'CV-errors:', np.ravel(err) p = cv.ca.null_prob print 'Corresponding p-values:', np.ravel(p) # plot plot_cv_results(cv, err, 'Per CV-fold classification error (only training permutation)') if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ There a many ways to futher tweak the statistical evaluation. For example, if the family of the distribution is known (e.g. Gaussian/Normal) and provided with the ``dist_class`` parameter of ``MCNullDist``, then permutation tests done by ``MCNullDist`` allow determining the distribution parameters. Under the (strong) assumption of Gaussian distribution, 20-30 permutations should be sufficient to get sensible estimates of the distribution parameters. But that would be another story... """ pymvpa2-2.6.4/doc/examples/projections.py000077500000000000000000000041661323370031300204220ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Visualization of Data Projection Methods ======================================== """ from mvpa2.support.pylab import pl from mvpa2.misc.data_generators import noisy_2d_fx from mvpa2.mappers.svd import SVDMapper from mvpa2.mappers.mdp_adaptor import ICAMapper, PCAMapper from mvpa2 import cfg center = [10, 20] axis_range = 7 ##REF: Name was automagically refactored def plot_proj_dir(p): pl.plot([0, p[0,0]], [0, p[0,1]], linewidth=3, hold=True, color='y') pl.plot([0, p[1,0]], [0, p[1,1]], linewidth=3, hold=True, color='k') mappers = { 'PCA': PCAMapper(), 'SVD': SVDMapper(), 'ICA': ICAMapper(alg='CuBICA'), } datasets = [ noisy_2d_fx(100, lambda x: x, [lambda x: x], center, noise_std=0.5), noisy_2d_fx(50, lambda x: x, [lambda x: x, lambda x: -x], center, noise_std=0.5), noisy_2d_fx(50, lambda x: x, [lambda x: x, lambda x: 0], center, noise_std=0.5), ] ndatasets = len(datasets) nmappers = len(mappers.keys()) pl.figure(figsize=(8,8)) fig = 1 for ds in datasets: for mname, mapper in mappers.iteritems(): mapper.train(ds) dproj = mapper.forward(ds.samples) mproj = mapper.proj pl.subplot(ndatasets, nmappers, fig) if fig <= 3: pl.title(mname) pl.axis('equal') pl.scatter(ds.samples[:, 0] - center[0], ds.samples[:, 1] - center[1], s=30, c=(ds.sa.targets) * 200) plot_proj_dir(mproj) fig += 1 if cfg.getboolean('examples', 'interactive', True): pl.show() """ Output of the example: .. image:: ../pics/ex_projections.* :align: center :alt: SVD/ICA/PCA projections """ pymvpa2-2.6.4/doc/examples/pylab_2d.py000077500000000000000000000137511323370031300175570ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Simple Plotting of Classifier Behavior ====================================== .. index:: plotting example This example runs a number of classifiers on a simple 2D dataset and plots the decision surface of each classifier. First compose some sample data -- no PyMVPA involved. """ import numpy as np # set up the labeled data # two skewed 2-D distributions num_dat = 200 dist = 4 # Absolute max value allowed. Just to assure proper plots xyamax = 10 feat_pos=np.random.randn(2, num_dat) feat_pos[0, :] *= 2. feat_pos[1, :] *= .5 feat_pos[0, :] += dist feat_pos = feat_pos.clip(-xyamax, xyamax) feat_neg=np.random.randn(2, num_dat) feat_neg[0, :] *= .5 feat_neg[1, :] *= 2. feat_neg[0, :] -= dist feat_neg = feat_neg.clip(-xyamax, xyamax) # set up the testing features npoints = 101 x1 = np.linspace(-xyamax, xyamax, npoints) x2 = np.linspace(-xyamax, xyamax, npoints) x,y = np.meshgrid(x1, x2); feat_test = np.array((np.ravel(x), np.ravel(y))) """Now load PyMVPA and convert the data into a proper :class:`~mvpa2.datasets.base.Dataset`.""" from mvpa2.suite import * # create the pymvpa dataset from the labeled features patternsPos = dataset_wizard(samples=feat_pos.T, targets=1) patternsNeg = dataset_wizard(samples=feat_neg.T, targets=0) ds_lin = vstack((patternsPos, patternsNeg)) """Let's add another dataset: XOR. This problem is not linear separable and therefore need a non-linear classifier to be solved. The dataset is provided by the PyMVPA dataset warehouse. """ # 30 samples per condition, SNR 2 ds_nl = pure_multivariate_signal(30, 2) l1 = ds_nl.sa['targets'].unique[1] datasets = {'linear': ds_lin, 'non-linear': ds_nl} """This demo utilizes a number of classifiers. The instantiation of a classifier involves almost no runtime costs, so it is easily possible compile a long list, if necessary.""" # set up classifiers to try out clfs = { 'Ridge Regression': RidgeReg(), 'Linear SVM': LinearNuSVMC(probability=1, enable_ca=['probabilities']), 'RBF SVM': RbfNuSVMC(probability=1, enable_ca=['probabilities']), 'SMLR': SMLR(lm=0.01), 'Logistic Regression': PLR(criterion=0.00001), '3-Nearest-Neighbour': kNN(k=3), '10-Nearest-Neighbour': kNN(k=10), 'GNB': GNB(common_variance=True), 'GNB(common_variance=False)': GNB(common_variance=False), 'LDA': LDA(), 'QDA': QDA(), } # How many rows/columns we need nx = int(ceil(np.sqrt(len(clfs)))) ny = int(ceil(len(clfs)/float(nx))) """Now we are ready to run the classifiers. The following loop trains and queries each classifier to finally generate a nice plot showing the decision surface of each individual classifier, both for the linear and the non-linear dataset.""" for id, ds in datasets.iteritems(): # loop over classifiers and show how they do fig = 0 # make a new figure pl.figure(figsize=(nx*4, ny*4)) print "Processing %s problem..." % id for c in sorted(clfs): # tell which one we are doing print "Running %s classifier..." % (c) # make a new subplot for each classifier fig += 1 pl.subplot(ny, nx, fig) # select the clasifier clf = clfs[c] # enable saving of the estimates used for the prediction clf.ca.enable('estimates') # train with the known points clf.train(ds) # run the predictions on the test values pre = clf.predict(feat_test.T) # if ridge, use the prediction, otherwise use the values if c == 'Ridge Regression': # use the prediction res = np.asarray(pre) elif 'Nearest-Ne' in c: # Use the dictionaries with votes res = np.array([e[l1] for e in clf.ca.estimates]) \ / np.sum([e.values() for e in clf.ca.estimates], axis=1) elif c == 'Logistic Regression': # get out the values used for the prediction res = np.asarray(clf.ca.estimates) elif c in ['SMLR']: res = np.asarray(clf.ca.estimates[:, 1]) elif c in ['LDA', 'QDA'] or c.startswith('GNB'): # Since probabilities are logprobs -- just for # visualization of trade-off just plot relative # "trade-off" which determines decision boundaries if an # alternative log-odd value was chosen for a cutoff res = np.asarray(clf.ca.estimates[:, 1] - clf.ca.estimates[:, 0]) # Scale and position around 0.5 res = 0.5 + res/max(np.abs(res)) else: # get the probabilities from the svm res = np.asarray([(q[1][1] - q[1][0] + 1) / 2 for q in clf.ca.probabilities]) # reshape the results z = np.asarray(res).reshape((npoints, npoints)) # plot the predictions pl.pcolor(x, y, z, shading='interp') pl.clim(0, 1) pl.colorbar() # plot decision surfaces at few levels to emphasize the # topology pl.contour(x, y, z, [0.1, 0.4, 0.5, 0.6, 0.9], linestyles=['dotted', 'dashed', 'solid', 'dashed', 'dotted'], linewidths=1, colors='black', hold=True) # plot the training points pl.plot(ds.samples[ds.targets == 1, 0], ds.samples[ds.targets == 1, 1], "r.") pl.plot(ds.samples[ds.targets == 0, 0], ds.samples[ds.targets == 0, 1], "b.") pl.axis('tight') # add the title pl.title(c) if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/pymvpa2.cfg000066400000000000000000000077451323370031300175730ustar00rootroot00000000000000### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Example configuration file to be used with PyMVPA # # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # This is a comprehensive list of all settings currently recognized by PyMVPA. # Users can add arbitrary additional settings, both in new and already existing # sections. [general] #debug = #verbose = #seed = 12345 [verbose] # causes the output of __str__ to be truncated to the given number of # characters truncate str = 200 # causes the output of __repr__ to be truncated to the given number of # characters truncate repr = 200 # # XXX The previous verbose section and verbose() should better be called info() # to not collide with the concept of verbosity. We would have messages of # types: debug, info, warning, error (familiar concepts that all can be # subsumed as verbosity. # comma-separated list of handlers, e.g. stdout #output = [error] #output = [warnings] # integer #bt = # integer #count = # comma-separated list of handlers, e.g. stdout #output = # Boolean (former: MVPA_NO_WARNINGS) suppress = no [debug] # comma-separated list of handlers, e.g. stdout #output = #metrics = # either to use custom (improved) exception handler to report # information about pymvpa useful during bug reporting #wtf = no #cmdline = no [examples] interactive = yes [svm] # which SVM implementation to use by default: libsvm or shogun backend = libsvm [matplotlib] # override the default matplotlib's backend # backend = pdf [rpy] # to prevent stalled exectution of PyMVPA upon problems in R # session of R is always responding '1' whenever R asks for input. # 1 corresponds to "abort (with core dump, if enabled)". # Unfortunately such callback does not work reliably, thus disabled # by default interactive = yes # Control over warnings spit out by R modules. From help(options) If # 'warn' is negative all warnings are ignored. If 'warn' is zero # (the default) warnings are stored until the top-level function # returns. ... If 'warn' is one, warnings are printed as they occur. # If 'warn' is two or larger all warnings are turned into errors. # By default we want no warnings warn = -1 [externals] # whether to really raise an exception when an externals test fails _and_ # raising an exception was requested raise exception = True # whether to issue warning when an externals test fails _and_ # issuing a warning was requested issue warning = True # whether to retest the availability of an external dependency, depite an # already present (but possibly outdated) test result retest = no # options starting with 'have ' indicate the presence or absence of external # dependencies #have scipy = no [tests] # whether to perform tests where the outcome is not deterministic labile = yes # if enabled, the unit tests will not run multiple classifiers on the same # test, which reduces the time to run a full test significantly. quick = no # if enabled, unit tests consuming lots of memory will not automatically run # as part of the main unittest battery lowmem = no # verbosity level of the unittest runner verbosity = 1 # scale SNR of simulated data more than 1 to reduce failures of labile tests snr scale = 1.0 [doc] # whether to enhance the docstrings with base class and state information pimp docstrings = yes [data] # root directory where datasets from pymvpa.org reside. By default this is going # to be a directory 'data' in the installation path of PyMVPA #root = [datasets] # repr by default prints a complete content of the Dataset so it could # be inspected or stored as a string. For large datasets it might be # an overwhelming amount of textual information, so possible options are possible # full -- default, entire content; str -- use __str__ for __repr__. # Option is in effect at import time, i.e. change of it wouldn't effect after dataset # has already being loaded repr = full pymvpa2-2.6.4/doc/examples/rsa_fmri.py000077500000000000000000000215251323370031300176630ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Representational similarity analysis (RSA) on fMRI data ======================================================= .. index:: rsa_fmri In this example we are going to take a look at representational similarity analysis (RSA). This term was coined by :ref:`Kriegeskorte et al. (2008) ` and refers to a technique where data samples are converted into a self-referential distance space, in order to aid comparison across domains. The premise is that whenever no appropriate transformation is known to directly compare two types of data directly (1st-level), it is still useful to compare similarities computed in individual domains (2nd-level). For example, this analysis technique has been used to identify inter-species commonalities in brain response pattern variations during stimulation with visual objects (single-cell recordings in monkeys compared to human fMRI, Kriegeskorte et al., 2008), and to relate brain response pattern similarities to predictions of computational models of perception (Connolly et al., 2012). """ import numpy as np import pylab as pl from os.path import join as pjoin from mvpa2 import cfg """ In this example we use a dataset from :ref:`Haxby et al. (2001) ` were participants watched pictures of eight different visual objects, while fMRI was recorded. The following snippet load a portion of this dataset (single subject) from regions on the ventral and occipital surface of the brain. """ # load dataset -- ventral and occipital ROIs from mvpa2.datasets.sources.native import load_tutorial_data datapath = pjoin(cfg.get('location', 'tutorial data'), 'haxby2001') ds = load_tutorial_data(roi=(15, 16, 23, 24, 36, 38, 39, 40, 48)) """ We only do minimal pre-processing: linear trend removal and Z-scoring all voxel time-series with respect to the mean and standard deviation of the "rest" condition. """ # only minial detrending from mvpa2.mappers.detrend import poly_detrend poly_detrend(ds, polyord=1, chunks_attr='chunks') # z-scoring with respect to the 'rest' condition from mvpa2.mappers.zscore import zscore zscore(ds, chunks_attr='chunks', param_est=('targets', 'rest')) # now remove 'rest' samples ds = ds[ds.sa.targets != 'rest'] """ RSA is all about so-called dissimilarity matrices: square, symmetric matrices with a zero diagonal that encode the (dis)similarity between all pairs of data samples or conditions in a dataset. We compose a little helper function to plot such matrices, including a color-scale and proper labeling of matrix rows and columns. """ # little helper function to plot dissimilarity matrices # since we are using correlation-distance, we use colorbar range of [0,2] def plot_mtx(mtx, labels, title): pl.figure() pl.imshow(mtx, interpolation='nearest') pl.xticks(range(len(mtx)), labels, rotation=-45) pl.yticks(range(len(mtx)), labels) pl.title(title) pl.clim((0, 2)) pl.colorbar() """ As a start, we want to inspect the dissimilarity structure of the stimulation conditions in the entire ROI. For this purpose, we average all samples of each conditions into a single exemplar, using an FxMapper() instance. """ # compute a dataset with the mean samples for all conditions from mvpa2.mappers.fx import mean_group_sample mtgs = mean_group_sample(['targets']) mtds = mtgs(ds) """ After these preparations we can use the PDist() measure to compute the desired distance matrix -- by default using correlation distance as a metric. The ``square`` argument will cause a ful square matrix to be produced, instead of a leaner upper-triangular matrix in vector form. """ # basic ROI RSA -- dissimilarity matrix for the entire ROI from mvpa2.measures import rsa dsm = rsa.PDist(square=True) res = dsm(mtds) plot_mtx(res, mtds.sa.targets, 'ROI pattern correlation distances') """ Inspecting the figure we can see that there is not much structure in the matrix, except for the face and the house condition being slightly more dissimilar than others. Now, let's take a look at the variation of similarity structure through the brain. We can plug the PDist() measure into a searchlight to quickly scan the brain and harvest this information. """ # same as above, but done in a searchlight fashion from mvpa2.measures.searchlight import sphere_searchlight dsm = rsa.PDist(square=False) sl = sphere_searchlight(dsm, 2) slres = sl(mtds) """ The result is a compact distance matrix in vector form for each searchlight location. We can now try to score each matrix. Let's find the distance matrix with the largest overall distances across all stimulation conditions, i.e. the location in the brain where brain response patterns are most dissimilar. """ # score each searchlight sphere result wrt global pattern dissimilarity distinctiveness = np.sum(np.abs(slres), axis=0) print 'Most dissimilar patterns around', \ mtds.fa.voxel_indices[distinctiveness.argmax()] # take a look at the this dissimilarity structure from scipy.spatial.distance import squareform plot_mtx(squareform(slres.samples[:, distinctiveness.argmax()]), mtds.sa.targets, 'Maximum distinctive searchlight pattern correlation distances') """ That looks confusing. But how do we know that this is not just noise (it probably is)? One way would be to look at how stable a distance matrix is, when computed for different portions of a dataset. To perform this analysis, we use another FxMapper() instance that averages all data into a single sample per stimulation conditions, per ``chunk``. A chunk in this context indicates a complete fMRI recording run. """ # more interesting: let's look at the stability of similarity structures # across experiment runs # mean condition samples, as before, but now individually for each run mtcgs = mean_group_sample(['targets', 'chunks']) mtcds = mtcgs(ds) """ With this dataset we can use PDistConsistency() to compute the similarity of dissimilarity matrices computes from different chunks. And, of course, it can be done in a searchlight. """ # searchlight consistency measure -- how correlated are the structures # across runs dscm = rsa.PDistConsistency() sl_cons = sphere_searchlight(dscm, 2) slres_cons = sl_cons(mtcds) """ Now we can determine the brain location with the most stable dissimilarity matrix. """ # mean correlation mean_consistency = np.mean(slres_cons, axis=0) print 'Most stable dissimilarity patterns around', \ mtds.fa.voxel_indices[mean_consistency.argmax()] # Look at this pattern plot_mtx(squareform(slres.samples[:, mean_consistency.argmax()]), mtds.sa.targets, 'Most consistent searchlight pattern correlation distances') """ It is all in the face! It would be interesting to know where in the brain dissimilarity structures can be found that are similar to this one. PDistTargetSimilarity() can be used to discover this kind of information with any kind of target dissimilarity structure. We need to transpose the result for aggregation into a searchlight map, as PDistTargetSimilarity can return more features than just the correlation coefficient. """ # let's see where in the brain we find dissimilarity structures that are # similar to our most stable one tdsm = rsa.PDistTargetSimilarity( slres.samples[:, mean_consistency.argmax()]) # using a searchlight from mvpa2.base.learner import ChainLearner from mvpa2.mappers.shape import TransposeMapper sl_tdsm = sphere_searchlight(ChainLearner([tdsm, TransposeMapper()]), 2) slres_tdsm = sl_tdsm(mtds) """ Lastly, we can map this result back onto the 3D voxel grid, and overlay it onto the brain anatomy. """ # plot the spatial distribution using NiPy vol = ds.a.mapper.reverse1(slres_tdsm.samples[0]) import nibabel as nb anat = nb.load(pjoin(datapath, 'sub001', 'anatomy', 'highres001.nii.gz')) from nipy.labs.viz_tools.activation_maps import plot_map pl.figure(figsize=(15, 4)) sp = pl.subplot(121) pl.title('Distribution of target similarity structure correlation') slices = plot_map( vol, ds.a.imgaffine, cut_coords=np.array((12, -42, -20)), threshold=.5, cmap="bwr", vmin=0, vmax=1., axes=sp, anat=anat.get_data(), anat_affine=anat.affine, ) img = pl.gca().get_images()[1] cax = pl.axes([.05, .05, .05, .9]) pl.colorbar(img, cax=cax) sp = pl.subplot(122) pl.hist(slres_tdsm.samples[0], normed=False, bins=30, color='0.6') pl.ylabel("Number of voxels") pl.xlabel("Target similarity structure correlation") if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/searchlight.py000077500000000000000000000234171323370031300203600ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Searchlight on fMRI data ======================== .. index:: Searchlight The original idea of a spatial searchlight algorithm stems from a paper by :ref:`Kriegeskorte et al. (2006) `, and has subsequently been used in a number of studies. The most common use for a searchlight is to compute a full cross-validation analysis in each spherical region of interest (ROI) in the brain. This analysis yields a map of (typically) classification accuracies that are often interpreted or post-processed similar to a GLM statistics output map (e.g. subsequent analysis with inferential statistics). In this example we look at how this type of analysis can be conducted in PyMVPA. As always, we first have to import PyMVPA. """ from mvpa2.suite import * """As searchlight analyses are usually quite expensive in terms of computational resources, we are going to enable some progress output to entertain us while we are waiting.""" # enable debug output for searchlight call if __debug__: debug.active += ["SLC"] """The next few calls load an fMRI dataset, while assigning associated class targets and chunks (experiment runs) to each volume in the 4D timeseries. One aspect is worth mentioning. When loading the fMRI data with :func:`~mvpa2.datasets.mri.fmri_dataset()` additional feature attributes can be added, by providing a dictionary with names and source pairs to the `add_fa` arguments. In this case we are loading a thresholded zstat-map of a category selectivity contrast for voxels ventral temporal cortex.""" # data path datapath = os.path.join(mvpa2.cfg.get('location', 'tutorial data'), 'haxby2001') dataset = load_tutorial_data( roi='brain', add_fa={'vt_thr_glm': os.path.join(datapath, 'sub001', 'masks', 'orig', 'vt.nii.gz')}) """The dataset is now loaded and contains all brain voxels as features, and all volumes as samples. To precondition this data for the intended analysis we have to perform a few preprocessing steps (please note that the data was already motion-corrected). The first step is a chunk-wise (run-wise) removal of linear trends, typically caused by the acquisition equipment.""" poly_detrend(dataset, polyord=1, chunks_attr='chunks') """Now that the detrending is done, we can remove parts of the timeseries we are not interested in. For this example we are only considering volumes acquired during a stimulation block with images of houses and scrambled pictures, as well as rest periods (for now). It is important to perform the detrending before this selection, as otherwise the equal spacing of fMRI volumes is no longer guaranteed.""" dataset = dataset[np.array([l in ['rest', 'house', 'scrambledpix'] for l in dataset.targets], dtype='bool')] """The final preprocessing step is data-normalization. This is a required step for many classification algorithms. It scales all features (voxels) into approximately the same range and removes the mean. In this example, we perform a chunk-wise normalization and compute standard deviation and mean for z-scoring based on the volumes corresponding to rest periods in the experiment. The resulting features could be interpreted as being voxel salience relative to 'rest'.""" zscore(dataset, chunks_attr='chunks', param_est=('targets', ['rest']), dtype='float32') """After normalization is completed, we no longer need the 'rest'-samples and remove them.""" dataset = dataset[dataset.sa.targets != 'rest'] """But now for the interesting part: Next we define the measure that shall be computed for each sphere. Theoretically, this can be anything, but here we choose to compute a full leave-one-out cross-validation using a linear Nu-SVM classifier.""" # choose classifier clf = LinearNuSVMC() # setup measure to be computed by Searchlight # cross-validated mean transfer using an N-fold dataset splitter cv = CrossValidation(clf, NFoldPartitioner()) """In this example, we do not want to compute full-brain accuracy maps, but instead limit ourselves to a specific subset of voxels. We'll select all voxel that have a non-zero z-stats value in the localizer mask we loaded above, as center coordinates for a searchlight sphere. These spheres will still include voxels that did not pass the threshold. the localizer merely define the location of all to be processed spheres.""" # get ids of features that have a nonzero value center_ids = dataset.fa.vt_thr_glm.nonzero()[0] """Finally, we can run the searchlight. We'll perform the analysis for three different radii, each time computing an error for each sphere. To achieve this, we simply use the :func:`~mvpa2.measures.searchlight.sphere_searchlight` class, which takes any :term:`processing object` and a radius as arguments. The :term:`processing object` has to compute the intended measure, when called with a dataset. The :func:`~mvpa2.measures.searchlight.sphere_searchlight` object will do nothing more than generate small datasets for each sphere, feeding them to the processing object, and storing the result.""" # setup plotting parameters (not essential for the analysis itself) plot_args = { 'background' : os.path.join(datapath, 'sub001', 'anatomy', 'highres001.nii.gz'), 'background_mask' : os.path.join(datapath, 'sub001', 'masks', 'orig', 'brain.nii.gz'), 'overlay_mask' : os.path.join(datapath, 'sub001', 'masks', 'orig', 'vt.nii.gz'), 'do_stretch_colors' : False, 'cmap_bg' : 'gray', 'cmap_overlay' : 'autumn', # YlOrRd_r # pl.cm.autumn 'interactive' : cfg.getboolean('examples', 'interactive', True), } for radius in [0, 1, 3]: # tell which one we are doing print "Running searchlight with radius: %i ..." % (radius) """ Here we actually setup the spherical searchlight by configuring the radius, and our selection of sphere center coordinates. Moreover, via the `space` argument we can instruct the searchlight which feature attribute shall be used to determine the voxel neighborhood. By default, :func:`~mvpa2.datasets.mri.fmri_dataset()` creates a corresponding attribute called `voxel_indices`. Using the `mapper` argument it is possible to post-process the results computed for each sphere. Cross-validation will compute an error value per each fold, but here we are only interested in the mean error across all folds. Finally, on multi-core machines `nproc` can be used to enabled parallelization by setting it to the number of processes utilized by the searchlight (default value of `nproc`=`None` utilizes all available local cores). """ sl = sphere_searchlight(cv, radius=radius, space='voxel_indices', center_ids=center_ids, postproc=mean_sample()) """ Since we care about efficiency, we are stripping all attributes from the dataset that are not required for the searchlight analysis. This will offers some speedup, since it reduces the time that is spent on dataset slicing. """ ds = dataset.copy(deep=False, sa=['targets', 'chunks'], fa=['voxel_indices'], a=['mapper']) """ Finally, we actually run the analysis. The result is returned as a dataset. For the upcoming plots, we are transforming the returned error maps into accuracies. """ sl_map = sl(ds) sl_map.samples *= -1 sl_map.samples += 1 """ The result dataset is fully aware of the original dataspace. Using this information we can map the 1D accuracy maps back into "brain-space" (using NIfTI image header information from the original input timeseries. """ niftiresults = map2nifti(sl_map, imghdr=dataset.a.imghdr) """ PyMVPA comes with a convenient plotting function to visualize the searchlight maps. We are only looking at fMRI slices that are covered by the mask of ventral temproal cortex. """ fig = pl.figure(figsize=(12, 4), facecolor='white') subfig = plot_lightbox(overlay=niftiresults, vlim=(0.5, None), slices=range(23,31), fig=fig, **plot_args) pl.title('Accuracy distribution for radius %i' % radius) if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """The following figures show the resulting accuracy maps for the slices covered by the ventral temporal cortex mask. Note that each voxel value represents the accuracy of a sphere centered around this voxel. .. figure:: ../pics/ex_searchlight_vt_r0.* :align: center Searchlight (single element; univariate) accuracy maps for binary classification *house* vs. *scrambledpix*. .. figure:: ../pics/ex_searchlight_vt_r1.* :align: center Searchlight (sphere of neighboring voxels; 9 elements) accuracy maps for binary classification *house* vs. *scrambledpix*. .. figure:: ../pics/ex_searchlight_vt_r3.* :align: center Searchlight (radius 3 elements; 123 voxels) accuracy maps for binary classification *house* vs. *scrambledpix*. With radius 0 (only the center voxel is part of the part the sphere) there is a clear distinction between two distributions. The *chance distribution*, relatively symetric and centered around the expected chance-performance at 50%. The second distribution, presumambly of voxels with univariate signal, is nicely segregated from that. Increasing the searchlight size significantly blurrs the accuracy map, but also lead to an increase in classification accuracy. """ pymvpa2-2.6.4/doc/examples/searchlight_app.py000077500000000000000000000103141323370031300212100ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Parameterizable Python Scripting: Searchlight Example. ====================================================== Example demonstrating composition of analysis script with optional command line parameters and arguments to make the computation easily parameterizable. That would allow you to process multiple datasets and vary classifiers and/or parameters of the algorithm within some batch system scheduler. Searchlight analysis on an fMRI dataset is taken for the example of actual computation to be done. Run `searchlight.py --help` to see the list of available command line options. """ from mvpa2.suite import * def main(): """ Wrapped into a function call for easy profiling later on """ parser.usage = """\ %s [options] [] where targets+blocks is a text file that lists the class label and the associated block of each data sample/volume as a tuple of two integer values (separated by a single space). -- one tuple per line.""" \ % sys.argv[0] parser.option_groups = [opts.SVM, opts.KNN, opts.general, opts.common] # Set a set of available classifiers for this example opt.clf.choices=['knn', 'lin_nu_svmc', 'rbf_nu_svmc'] opt.clf.default='lin_nu_svmc' parser.add_options([opt.clf, opt.zscore]) (options, files) = parser.parse_args() if not len(files) in [3, 4]: parser.error("Please provide 3 or 4 files in the command line") sys.exit(1) verbose(1, "Loading data") # data filename dfile = files[0] # text file with targets and block definitions (chunks) cfile = files[1] # mask volume filename mfile = files[2] ofile = None if len(files)>=4: # outfile name ofile = files[3] # read conditions into an array (assumed to be two columns of integers) # TODO: We need some generic helper to read conditions stored in some # common formats verbose(2, "Reading conditions from file %s" % cfile) attrs = SampleAttributes(cfile, literallabels=True) verbose(2, "Loading volume file %s" % dfile) data = fmri_dataset(dfile, targets=attrs.targets, chunks=attrs.chunks, mask=mfile) # do not try to classify baseline condition # XXX this is only valid for our haxby8 example dataset and should # probably be turned into a proper --baselinelabel option that can # be used for zscoring as well. data = data[data.targets != 'rest'] if options.zscore: verbose(1, "Zscoring data samples") zscore(data, chunks_attr='chunks', dtype='float32') if options.clf == 'knn': clf = kNN(k=options.knearestdegree) elif options.clf == 'lin_nu_svmc': clf = LinearNuSVMC(nu=options.svm_nu) elif options.clf == 'rbf_nu_svmc': clf = RbfNuSVMC(nu=options.svm_nu) else: raise ValueError, 'Unknown classifier type: %s' % `options.clf` verbose(3, "Using '%s' classifier" % options.clf) verbose(1, "Computing") verbose(3, "Assigning a measure to be CrossValidation") # compute N-1 cross-validation with the selected classifier in each sphere cv = CrossValidation(clf, NFoldPartitioner(cvtype=options.crossfolddegree)) verbose(3, "Generating Searchlight instance") # contruct searchlight with 5mm radius # this assumes that the spatial pixdim values in the source NIfTI file # are specified in mm sl = sphere_searchlight(cv, radius=options.radius) # run searchlight verbose(3, "Running searchlight on loaded data") results = sl(data) if ofile is not None: # map the result vector back into a nifti image rimg = map2nifti(data, results) # save to file rimg.save(ofile) else: print results if __name__ == "__main__": main() pymvpa2-2.6.4/doc/examples/searchlight_minimal.py000077500000000000000000000050531323370031300220620ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Minimal Searchlight Example =========================== .. index:: searchlight, cross-validation The term :class:`~mvpa2.measures.searchlight.Searchlight` refers to an algorithm that runs a scalar :class:`~mvpa2.measures.base.Measure` on all possible spheres of a certain size within a dataset (that provides information about distances between feature locations). The measure typically computed is a cross-validation of a classifier performance (see :ref:`CrossValidation ` section in the tutorial). The idea to use a searchlight as a sensitivity analyzer on fMRI datasets stems from :ref:`Kriegeskorte et al. (2006) `. A searchlight analysis is can be easily performed. This examples shows a minimal draft of a complete analysis. First import a necessary pieces of PyMVPA -- this time each bit individually. """ import numpy as np from mvpa2.generators.partition import OddEvenPartitioner from mvpa2.clfs.svm import LinearCSVMC from mvpa2.measures.base import CrossValidation from mvpa2.measures.searchlight import sphere_searchlight from mvpa2.testing.datasets import datasets from mvpa2.mappers.fx import mean_sample """For the sake of simplicity, let's use a small artificial dataset.""" # Lets just use our tiny 4D dataset from testing battery dataset = datasets['3dlarge'] """Now it only takes three lines for a searchlight analysis.""" # setup measure to be computed in each sphere (cross-validated # generalization error on odd/even splits) cv = CrossValidation(LinearCSVMC(), OddEvenPartitioner()) # setup searchlight with 2 voxels radius and measure configured above sl = sphere_searchlight(cv, radius=2, space='myspace', postproc=mean_sample()) # run searchlight on dataset sl_map = sl(dataset) print 'Best performing sphere error:', np.min(sl_map.samples) """ If this analysis is done on a fMRI dataset using `NiftiDataset` the resulting searchlight map (`sl_map`) can be mapped back into the original dataspace and viewed as a brain overlay. :ref:`Another example ` shows a typical application of this algorithm. .. Mention the fact that it also is a special `SensitivityAnalyzer` """ pymvpa2-2.6.4/doc/examples/searchlight_surf.py000077500000000000000000000277741323370031300214310ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Surface-based searchlight on fMRI data ====================================== .. index:: surface, searchlight, cross-validation This example employs a surface-based searchlight as described in :ref:`Oosterhof et al. (2011) ` (with a minor difference that distances are currently computed using a Dijkstra distance metric rather than a geodesic one). For more details, see the `Surfing `_ website. Surfaces used in this example are available in the tutorial dataset files; either the tutorial_data_surf_minimal or tutorial_data_surf_complete version. The surfaces were reconstructed using FreeSurfer and subsequently preprocessed with AFNI and SUMA using the pymvpa2-prep-afni-surf wrapper script in PyMVPA's 'bin' directory, which resamples the surfaces to standard topologies (with different resolutions) using MapIcosehedron, aligns surfaces to a reference functional volume, and merges left and right hemispheres into single surface files. A more detailed description of the steps that this script takes is provided in the documentation on the `Surfing `_ website. If you use the surface-based searchlight code for a publication, please cite both :ref:`PyMVPA (2009) ` and :ref:`Oosterhof et al. (2011) `. As always, we first have to import PyMVPA. """ from mvpa2.suite import * from mvpa2.clfs.svm import LinearCSVMC from mvpa2.base.hdf5 import h5save, h5load """As searchlight analyses are usually quite expensive in term of computational resources, we are going to enable some progress output to entertain us while we are waiting.""" if __debug__: from mvpa2.base import debug debug.active += ["SVS", "SLC"] """Define surface and volume data paths:""" rootpath = os.path.join(pymvpa_datadbroot, 'tutorial_data', 'tutorial_data') datapath = os.path.join(rootpath, 'haxby2001') surfpath = os.path.join(rootpath, 'suma_surfaces') """Define functional data volume filename:""" epi_fn = os.path.join(datapath, 'sub001', 'BOLD', 'task001_run001', 'bold.nii.gz') """ In this example we are concerned with the left hemisphere only. (Other possible values are 'r' for the right hemisphere and 'm' for merged hemispheres; the latter contains the nodes from the left and right hemispheres in a single file. Both the 'r' and 'm' options require the tutorial_data_surf_complete tutorial data.) """ hemi = 'l' """ Define the surfaces that enclose the grey matter, which are used to delineate the grey matter. The pial surface is the 'outside' border of the grey matter; the white surface is the 'inside' border. The surfaces in this example were resampled using AFNI's MapIcosahedron (for more details, see the top of this script). ld refers to the number of linear divisions of the twenty 'large' triangles of the original icosahedron; ld=x means there are 10*x**2+2 nodes (a.k.a. vertices) and 20*x**2 triangles (a.k.a. faces). """ highres_ld = 128 # 64 or 128 is reasonable pial_surf_fn = os.path.join(surfpath, "ico%d_%sh.pial_al.asc" % (highres_ld, hemi)) white_surf_fn = os.path.join(surfpath, "ico%d_%sh.smoothwm_al.asc" % (highres_ld, hemi)) """ Define the surface on which the nodes are centers of the searchlight. This surface should be an 'intermediate' surface, which is formed by the node-wise average spatial coordinates of the inner (white) and outer (pial) surfaces. In this example a surface coarser (fewer nodes) than the grey matter-enclosing surfaces is employed. This reduces the number of searchlights and therefore the script's execution time. Of course one could also use a surface that has the same number of nodes as the grey-matter enclosing surfaces; this is actually the default and used when souce_surf_fn (assigned below) is set to None. It is required that highres_ld is an integer multiple of lowres_ld, so that all nodes in the low-res surface have a corresponding node (i.e., with the same, or almost the same, spatial coordinate) on the high-res surface. Choice of lowres_ld and highres_ld is somewhat arbitrary and a trade-off between spatial specificity and execution speed. For highres_ld a value of at least 64 is be advisable as this ensures enough anatomical detail is available to select voxels in the grey matter accurately. Typical values for lowres_ld range from 8 to 64. Note that the data in tutorial_data_surf_minimal only contains all necessary surfaces for visualization for lowres_ld=16. For other values of lowres_ld (4, 8, 32, 64 and 128) the surfaces in tutorial_data_surf_complete are required. """ lowres_ld = 16 # 16, 32 or 64 is reasonable. 4 and 8 are really fast source_surf_fn = os.path.join(surfpath, "ico%d_%sh.intermediate_al.asc" % (lowres_ld, hemi)) """ Radius is specified as either an int (referring to a fixed number of voxels across searchlights, with a variable radius in millimeters (or whatever unit is used in the files that define the surfaces), or a float (referring to the radius in millimeters, with a variable number of voxels). Note that "a fixed number of voxels" in this context actually means an approximation, in that on average that number of voxels is selected but the actual number will vary slightly (typically in the range +/- 2 voxels) """ radius = 100 """We're all set to go to create a query engine that performs 'voxel selection', that is determines, for each node, which voxels are near it (that is, in the corresponding searchlight disc). As a reminder, the only essential values we have set so far are the filenames of three surfaces (high-res inner and outer, and low-res source surface), the functional volume, and the searchlight radius. Note that if the functional data was preprocessed and subsequently masked, voxel selection should take into account this mask. To do so, the instantiation of the query engine below takes an optional argument 'volume_mask' (which can be a PyMVPA dataset, a numpy array, a Nifti volume, or a string representing the file name of a Nifti volume). It is, however, recommended to *not* mask the functional data prior to voxel selection, because the voxel selection uses (implicitly) a mask based on the grey-matter enclosing surfaces already, and this mask is assumed to be more precise than typical volume-based masking implementations. Also note that, as described above, the argument defining the low-res source surface can be omitted, in which case it is computed as the node-wise average of the white and pial surface.) """ qe = disc_surface_queryengine(radius, epi_fn, white_surf_fn, pial_surf_fn, source_surf_fn) """ Voxel selection is now completed; each node has been assigned a list of linear voxel indices in the searchlight. These result are stored in 'qe.voxsel' and can be saved with h5save for later re-use. (Linear voxel indices mean that each voxel is indexed by a value between 0 (inclusive) and N (exclusive), where N is the number of voxels in the volume (N = NX * NY * NZ, where NX, NY and NZ are the number of voxels in the three spatial dimensions). For certain analyses one may want to index voxels by 'sub indices' (triples (i,j,k) with 0<=i`. Just like classifiers, implementations of regression algorithms in scikit-learn use the `estimator and predictor API`_. Consequently, the same wrapper class (:class:`~mvpa2.clfs.skl.base.SKLLearnerAdapter`) as before is applicable when using scikit-learn regressions in PyMVPA. The example demonstrates this by mimicking the "`Decision Tree Regression`_" example from the scikit-learn documentation -- applying the minimal modifications necessary to the scikit-learn decision tree regression algorithm (with two different parameter settings) implementation on a PyMVPA dataset. .. _estimator and predictor API: http://scikit-learn.org/stable/developers/#apis-of-scikit-learn-objects .. _Decision Tree Regression: http://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html """ print(__doc__) import numpy as np from sklearn.tree import DecisionTreeRegressor rng = np.random.RandomState(1) X = np.sort(5 * rng.rand(80, 1), axis=0) y = np.sin(X).ravel() y[::5] += 3 * (0.5 - rng.rand(16)) """ So far the code has been identical. The first difference is the import of the adaptor class. We also use a convenient way to convert the data into a proper :class:`~mvpa2.datasets.base.Dataset`. """ # this first import is only required to run the example a part of the test suite from mvpa2 import cfg from mvpa2.clfs.skl.base import SKLLearnerAdapter from mvpa2.datasets import dataset_wizard ds_train=dataset_wizard(samples=X, targets=y) """ The following lines are an example of the only significant modification with respect to a pure scikit-learn implementation: the regression is wrapped into the adaptor. The result is a PyMVPA learner, hence can be called with a dataset that contains both samples and targets. """ clf_1 = SKLLearnerAdapter(DecisionTreeRegressor(max_depth=2)) clf_2 = SKLLearnerAdapter(DecisionTreeRegressor(max_depth=5)) clf_1.train(ds_train) clf_2.train(ds_train) X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis] y_1 = clf_1.predict(X_test) y_2 = clf_2.predict(X_test) # plot the results # which clearly show the overfitting for the second depth setting import pylab as pl pl.figure() pl.scatter(X, y, c="k", label="data") pl.plot(X_test, y_1, c="g", label="max_depth=2", linewidth=2) pl.plot(X_test, y_2, c="r", label="max_depth=5", linewidth=2) pl.xlabel("data") pl.ylabel("target") pl.title("Decision Tree Regression") pl.legend() if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/skl_transformer_demo.py000077500000000000000000000134411323370031300222760ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: """ ============================================= Using scikit-learn transformers with PyMVPA ============================================= Scikit-learn is a rich library of algorithms, many of them implementing the `transformer API`_. PyMVPA provides a wrapper class, :class:`~mvpa2.mappers.skl_adaptor.SKLTransformer` that enables the use of all of these algorithms within the PyMVPA framework. With this adaptor the transformer API is presented as a PyMVPA mapper interface that is fully compatible with all other building blocks of PyMVPA. In this example we demonstrate this interface by mimicking the "`Comparison of Manifold Learning methods`_" example from the scikit-learn documentation -- applying the minimal modifications necessary to run a variety of scikit-learn algorithm implementation on PyMVPA datasets. This script also prints the same timing information as the original. .. _transformer API: http://scikit-learn.org/stable/developers/#apis-of-scikit-learn-objects .. _Comparison of Manifold Learning methods: http://scikit-learn.org/stable/auto_examples/manifold/plot_compare_methods.html """ print(__doc__) from time import time import pylab as pl from mpl_toolkits.mplot3d import Axes3D from matplotlib.ticker import NullFormatter from sklearn import manifold # Next line to silence pyflakes. This import is needed. Axes3D n_points = 1000 n_neighbors = 10 n_components = 2 """ So far the code has been identical. The first difference is the import of the adaptor class. We also load the scikit-learn demo dataset, but also with the help of a wrapper function that yields a PyMVPA dataset. """ # this first import is only required to run the example a part of the test suite from mvpa2 import cfg from mvpa2.mappers.skl_adaptor import SKLTransformer # load the S-curve dataset from mvpa2.datasets.sources.skl_data import skl_s_curve ds = skl_s_curve(n_points) """ And we continue with practically identical code. """ fig = pl.figure(figsize=(15, 8)) pl.suptitle("Manifold Learning with %i points, %i neighbors" % (1000, n_neighbors), fontsize=14) try: # compatibility matplotlib < 1.0 X = ds.samples ax = fig.add_subplot(241, projection='3d') ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=ds.targets, cmap=pl.cm.Spectral) ax.view_init(4, -72) except: X = ds.samples ax = fig.add_subplot(241, projection='3d') pl.scatter(X[:, 0], X[:, 2], c=ds.targets, cmap=pl.cm.Spectral) methods = ['standard', 'ltsa', 'hessian', 'modified'] labels = ['LLE', 'LTSA', 'Hessian LLE', 'Modified LLE'] for i, method in enumerate(methods): t0 = time() # create an instance of the algorithm from scikit-learn # and wrap it by SKLTransformer """ The following lines are an example of the only significant modification with respect to a pure scikit-learn implementation: the transformer is wrapped into the adaptor. The result is a mapper, hence can be called with a dataset that contains both samples and targets -- without explcitly calling ``fit()`` and ``transform()``. """ lle = SKLTransformer(manifold.LocallyLinearEmbedding(n_neighbors, n_components, eigen_solver='auto', method=method)) # call the SKLTransformer instance on the input dataset Y = lle(ds) """ The rest of the example is unmodified except for the wrapping of the respective transformer into the Mapper adaptor. """ t1 = time() print("%s: %.2g sec" % (methods[i], t1 - t0)) ax = fig.add_subplot(242 + i) pl.scatter(Y[:, 0], Y[:, 1], c=ds.targets, cmap=pl.cm.Spectral) pl.title("%s (%.2g sec)" % (labels[i], t1 - t0)) ax.xaxis.set_major_formatter(NullFormatter()) ax.yaxis.set_major_formatter(NullFormatter()) pl.axis('tight') t0 = time() # create an instance of the algorithm from scikit-learn # and wrap it by SKLTransformer iso = SKLTransformer(manifold.Isomap(n_neighbors=10, n_components=2)) # call the SKLTransformer instance on the input dataset Y = iso(ds) t1 = time() print("Isomap: %.2g sec" % (t1 - t0)) ax = fig.add_subplot(246) pl.scatter(Y[:, 0], Y[:, 1], c=ds.targets, cmap=pl.cm.Spectral) pl.title("Isomap (%.2g sec)" % (t1 - t0)) ax.xaxis.set_major_formatter(NullFormatter()) ax.yaxis.set_major_formatter(NullFormatter()) pl.axis('tight') t0 = time() # create an instance of the algorithm from scikit-learn # and wrap it by SKLTransformer mds = SKLTransformer(manifold.MDS(n_components=2, max_iter=100, n_init=1, dissimilarity='euclidean')) # call the SKLTransformer instance on the input dataset Y = mds(ds) t1 = time() print("MDS: %.2g sec" % (t1 - t0)) ax = fig.add_subplot(247) pl.scatter(Y[:, 0], Y[:, 1], c=ds.targets, cmap=pl.cm.Spectral) pl.title("MDS (%.2g sec)" % (t1 - t0)) ax.xaxis.set_major_formatter(NullFormatter()) ax.yaxis.set_major_formatter(NullFormatter()) pl.axis('tight') t0 = time() # create an instance of the algorithm from scikit-learn # and wrap it by SKLTransformer se = SKLTransformer(manifold.SpectralEmbedding(n_components=n_components, n_neighbors=n_neighbors)) # call the SKLTransformer instance on the input dataset Y = se(ds) t1 = time() print("SpectralEmbedding: %.2g sec" % (t1 - t0)) ax = fig.add_subplot(248) pl.scatter(Y[:, 0], Y[:, 1], c=ds.targets, cmap=pl.cm.Spectral) pl.title("SpectralEmbedding (%.2g sec)" % (t1 - t0)) ax.xaxis.set_major_formatter(NullFormatter()) ax.yaxis.set_major_formatter(NullFormatter()) pl.axis('tight') if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() pymvpa2-2.6.4/doc/examples/smellit.py000077500000000000000000000053141323370031300175300ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Simple Data-Exploration ======================= Example showing some possibilities of data exploration (i.e. to 'smell' data). """ from mvpa2.suite import * # load example fmri dataset ds = load_example_fmri_dataset() # only use the first 5 chunks to save some cpu-cycles ds = ds[ds.chunks < 5] """ It is always useful to have a quick look at the summary of the dataset and verify that statistics (mean, standard deviation) are in the expected range, that there is balance among targets/chunks, and that order is balanced (where appropriate). """ print ds.summary() """ Now we can take a look at the distribution of the feature values in all sample categories and chunks. """ pl.figure(figsize=(14, 14)) # larger figure hist(ds, xgroup_attr='chunks', ygroup_attr='targets', noticks=None, bins=20, normed=True) # next only works with floating point data ds.samples = ds.samples.astype('float') # look at sample similarity # Note, the decreasing similarity with increasing temporal distance # of the samples pl.figure(figsize=(14, 6)) pl.subplot(121) plot_samples_distance(ds, sortbyattr='chunks') pl.title('Sample distances (sorted by chunks)') # similar distance plot, but now samples sorted by their # respective targets, i.e. samples with same targets are plotted # in adjacent columns/rows. # Note, that the first and largest group corresponds to the # 'rest' condition in the dataset pl.subplot(122) plot_samples_distance(ds, sortbyattr='targets') pl.title('Sample distances (sorted by targets)') # z-score features individually per chunk print 'Detrending data' poly_detrend(ds, polyord=2, chunks_attr='chunks') print 'Z-Scoring data' zscore(ds) pl.figure(figsize=(14, 6)) pl.subplot(121) plot_samples_distance(ds, sortbyattr='chunks') pl.title('Distances: z-scored, detrended (sorted by chunks)') pl.subplot(122) plot_samples_distance(ds, sortbyattr='targets') pl.title('Distances: z-scored, detrended (sorted by targets)'); if cfg.getboolean('examples', 'interactive', True): pl.show() # XXX add some more, maybe show effect of preprocessing """ Outputs of the example script. Data prior to preprocessing .. image:: ../pics/ex_smellit2.* :align: center :alt: Data prior preprocessing Data after minimal preprocessing .. image:: ../pics/ex_smellit3.* :align: center :alt: Data after z-scoring and detrending """ pymvpa2-2.6.4/doc/examples/smlr.py000077500000000000000000000063751323370031300170440ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Compare SMLR to Linear SVM Classifier ===================================== .. index:: SMLR, SVM Runs both classifiers on the the same dataset and compare their performance. This example also shows an example usage of confusion matrices and how two classifers can be combined. """ from mvpa2.suite import * if __debug__: debug.active.append('SMLR_') # features of sample data print "Generating samples..." nfeat = 10000 nsamp = 100 ntrain = 90 goodfeat = 10 offset = .5 # create the sample datasets samp1 = np.random.randn(nsamp,nfeat) samp1[:,:goodfeat] += offset samp2 = np.random.randn(nsamp,nfeat) samp2[:,:goodfeat] -= offset # create the pymvpa training dataset from the labeled features patternsPos = dataset_wizard(samples=samp1[:ntrain,:], targets=1) patternsNeg = dataset_wizard(samples=samp2[:ntrain,:], targets=0) trainpat = vstack((patternsPos, patternsNeg)) # create patters for the testing dataset patternsPos = dataset_wizard(samples=samp1[ntrain:,:], targets=1) patternsNeg = dataset_wizard(samples=samp2[ntrain:,:], targets=0) testpat = vstack((patternsPos, patternsNeg)) # set up the SMLR classifier print "Evaluating SMLR classifier..." smlr = SMLR(fit_all_weights=True) # enable saving of the estimates used for the prediction smlr.ca.enable('estimates') # train with the known points smlr.train(trainpat) # run the predictions on the test values pre = smlr.predict(testpat.samples) # calculate the confusion matrix smlr_confusion = ConfusionMatrix( labels=trainpat.UT, targets=testpat.targets, predictions=pre) # now do the same for a linear SVM print "Evaluating Linear SVM classifier..." lsvm = LinearNuSVMC(probability=1) # enable saving of the estimates used for the prediction lsvm.ca.enable('estimates') # train with the known points lsvm.train(trainpat) # run the predictions on the test values pre = lsvm.predict(testpat.samples) # calculate the confusion matrix lsvm_confusion = ConfusionMatrix( labels=trainpat.UT, targets=testpat.targets, predictions=pre) # now train SVM with selected features print "Evaluating Linear SVM classifier with SMLR's features..." keepInd = (np.abs(smlr.weights).mean(axis=1)!=0) newtrainpat = trainpat[:, keepInd] newtestpat = testpat[:, keepInd] # train with the known points lsvm.train(newtrainpat) # run the predictions on the test values pre = lsvm.predict(newtestpat.samples) # calculate the confusion matrix lsvm_confusion_sparse = ConfusionMatrix( labels=newtrainpat.UT, targets=newtestpat.targets, predictions=pre) print "SMLR Percent Correct:\t%g%% (Retained %d/%d features)" % \ (smlr_confusion.percent_correct, (smlr.weights!=0).sum(), np.prod(smlr.weights.shape)) print "linear-SVM Percent Correct:\t%g%%" % \ (lsvm_confusion.percent_correct) print "linear-SVM Percent Correct (with %d features from SMLR):\t%g%%" % \ (keepInd.sum(), lsvm_confusion_sparse.percent_correct) pymvpa2-2.6.4/doc/examples/som.py000077500000000000000000000076601323370031300166630ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Self-organizing Maps ==================== .. index:: mapper, self-organizing map, SOM, SimpleSOMMapper This is a demonstration of how a self-organizing map (SOM), also known as a Kohonen network, can be used to map high-dimensional data into a two-dimensional representation. For the sake of an easy visualization 'high-dimensional' in this case is 3D. In general, SOMs might be useful for visualizing high-dimensional data in terms of its similarity structure. Especially large SOMs (i.e. with large number of Kohonen units) are known to perform mappings that preserve the topology of the original data, i.e. neighboring data points in input space will also be represented in adjacent locations on the SOM. The following code shows the 'classic' color mapping example, i.e. the SOM will map a number of colors into a rectangular area. """ from mvpa2.suite import * """ First, we define some colors as RGB values from the interval (0,1), i.e. with white being (1, 1, 1) and black being (0, 0, 0). Please note, that a substantial proportion of the defined colors represent variations of 'blue', which are supposed to be represented in more detail in the SOM. """ colors = np.array( [[0., 0., 0.], [0., 0., 1.], [0., 0., 0.5], [0.125, 0.529, 1.0], [0.33, 0.4, 0.67], [0.6, 0.5, 1.0], [0., 1., 0.], [1., 0., 0.], [0., 1., 1.], [1., 0., 1.], [1., 1., 0.], [1., 1., 1.], [.33, .33, .33], [.5, .5, .5], [.66, .66, .66]]) # store the names of the colors for visualization later on color_names = \ ['black', 'blue', 'darkblue', 'skyblue', 'greyblue', 'lilac', 'green', 'red', 'cyan', 'violet', 'yellow', 'white', 'darkgrey', 'mediumgrey', 'lightgrey'] """ Now we can instantiate the mapper. It will internally use a so-called Kohonen layer to map the data onto. We tell the mapper to use a rectangular layer with 20 x 30 units. This will be the output space of the mapper. Additionally, we tell it to train the network using 400 iterations and to use custom learning rate. """ som = SimpleSOMMapper((20, 30), 400, learning_rate=0.05) """ Finally, we train the mapper with the previously defined 'color' dataset. """ som.train(colors) """ Each unit in the Kohonen layer can be treated as a pointer into the high-dimensional input space, that can be queried to inspect which input subspaces the SOM maps onto certain sections of its 2D output space. The color-mapping generated by this example's SOM can be shown with a single matplotlib call: """ pl.imshow(som.K, origin='lower') """ And now, let's take a look onto which coordinates the initial training prototypes were mapped to. The get those coordinates we can simply feed the training data to the mapper and plot the output. """ mapped = som(colors) pl.title('Color SOM') # SOM's kshape is (rows x columns), while matplotlib wants (X x Y) for i, m in enumerate(mapped): pl.text(m[1], m[0], color_names[i], ha='center', va='center', bbox=dict(facecolor='white', alpha=0.5, lw=0)) """ The text labels of the original training colors will appear at the 'mapped' locations in the SOM -- and should match with the underlying color. """ # show the figure if cfg.getboolean('examples', 'interactive', True): pl.show() """ The following figure shows an exemplary solution of the SOM mapping of the 3D color-space onto the 2D SOM node layer: .. image:: ../pics/ex_som.* :align: center :alt: Color-space mapping by a self-organizing map. """ pymvpa2-2.6.4/doc/examples/start_easy.py000077500000000000000000000037761323370031300202470ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ A simple start ============== Here we show how to perform a simple cross-validated classification analysis with PyMVPA. This script is the exact equivalent of the :ref:`example_cmdline_start_easy` example, but using the Python API instead of the command line interface. First, we import the PyMVPA suite to enable all PyMVPA building blocks """ from mvpa2.suite import * """ Now we load an example fMRI dataset that comes with PyMVPA. It has some attributes associated with each volume, and is masked to exclude voxels outside of the brain. """ # load PyMVPA example dataset with literal labels dataset = load_example_fmri_dataset(literal=True) """ Next we remove linear trends by polynomial regression for each voxel and each chunk (recording run) of the dataset individually. """ poly_detrend(dataset, polyord=1, chunks_attr='chunks') """ For this example we are only interested in data samples that correspond to the ``face`` or to the ``house`` condition. """ dataset = dataset[np.array([l in ['face', 'house'] for l in dataset.sa.targets], dtype='bool')] """ The setup for our cross-validation analysis include the selection of a classifier, and a partitioning scheme, and an error function to convert literal predictions into a quantitative performance metric. """ cv = CrossValidation(SMLR(), OddEvenPartitioner(), errorfx=mean_mismatch_error) error = cv(dataset) """ The resulting dataset contains the computed accuracy. """ # UC: unique chunks, UT: unique targets print "Error for %i-fold cross-validation on %i-class problem: %f" \ % (len(dataset.UC), len(dataset.UT), np.mean(error)) pymvpa2-2.6.4/doc/examples/svdclf.py000077500000000000000000000062721323370031300173440ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Classification of SVD-mapped Datasets ===================================== .. index:: mapper, SVD, MappedClassifier Demonstrate the usage of a dataset mapper performing data projection onto singular value components within a cross-validation -- for *any* classifier. """ from mvpa2.suite import * if __debug__: debug.active += ["REPM"] # # load PyMVPA example dataset # dataset = load_example_fmri_dataset(literal=True) # # preprocessing # # do chunkswise linear detrending on dataset poly_detrend(dataset, polyord=1, chunks_attr='chunks') # only use 'rest', 'cats' and 'scissors' samples from dataset dataset = dataset[np.array([ l in ['rest', 'cat', 'scissors'] for l in dataset.targets], dtype='bool')] # zscore dataset relative to baseline ('rest') mean zscore(dataset, chunks_attr='chunks', param_est=('targets', ['rest']), dtype='float32') # remove baseline samples from dataset for final analysis dataset = dataset[dataset.sa.targets != 'rest'] # Specify the class of a base classifier to be used Clf = LinearCSVMC # And create the instance of SVDMapper to be reused svdmapper = SVDMapper() """Lets create a generator of a `ChainMapper` which would first perform SVD and then subselect the desired range of components.""" get_SVD_sliced = lambda x: ChainMapper([svdmapper, StaticFeatureSelection(x)]) """Now we can define a list of some classifiers: a simple one and several classifiers with built-in SVD transformation and selection of corresponding SVD subspaces""" clfs = [('All orig.\nfeatures (%i)' % dataset.nfeatures, Clf()), ('All Comps\n(%i)' % (dataset.nsamples \ - (dataset.nsamples / len(dataset.UC)),), MappedClassifier(Clf(), svdmapper)), ('First 5\nComp.', MappedClassifier(Clf(), get_SVD_sliced(slice(0, 5)))), ('First 30\nComp.', MappedClassifier(Clf(), get_SVD_sliced(slice(0, 30)))), ('Comp.\n6-30', MappedClassifier(Clf(), get_SVD_sliced(slice(5, 30))))] # run and visualize in barplot results = [] labels = [] for desc, clf in clfs: print desc.replace('\n', ' ') cv = CrossValidation(clf, NFoldPartitioner()) res = cv(dataset) # there is only one 'feature' i.e. the error in the returned # dataset results.append(res.samples[:,0]) labels.append(desc) plot_bars(results, labels=labels, title='Linear C-SVM classification (cats vs. scissors)', ylabel='Mean classification error (N-1 cross-validation, 12-fold)', distance=0.5) if cfg.getboolean('examples', 'interactive', True): pl.show() """ Output of the example analysis: .. image:: ../pics/ex_svdclf.* :align: center :alt: Generalization performance on the selected PCs. """ pymvpa2-2.6.4/doc/examples/svm_margin.py000077500000000000000000000066551323370031300202320ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Analysis of the margin width in a soft-margin SVM ================================================= .. index:: SVM Width of the margin of soft-margin SVM (:class:`mvpa2.clfs.svm.LinearCSVMC`) is not monotonic in its relation with SNR of the data. In case of not perfectly separable classes margin would first shrink with the increase of SNR, and then start to expand again after learning error becomes sufficiently small. This brief examples provides a demonstration. """ import mvpa2 import pylab as pl import numpy as np from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.clfs.svm import LinearCSVMC from mvpa2.generators.partition import NFoldPartitioner from mvpa2.measures.base import CrossValidation from mvpa2.mappers.zscore import zscore """ Generate a binary dataset without any signal (snr=0). """ mvpa2.seed(1); ds_noise = normal_feature_dataset(perlabel=100, nlabels=2, nfeatures=2, snr=0, nonbogus_features=[0,1]) # signal levels sigs = [0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0] """ To mimic behavior of hard-margin SVM whenever classes become separable, which is easier to comprehend, we are intentionally setting very high C value. """ clf = LinearCSVMC(C=1000, enable_ca=['training_stats']) cve = CrossValidation(clf, NFoldPartitioner(), enable_ca='stats') sana = clf.get_sensitivity_analyzer(postproc=None) rs = [] errors, training_errors = [], [] for sig in sigs: ds = ds_noise.copy() # introduce signal into the first feature ds.samples[ds.T == 'L1', 0] += sig error = np.mean(cve(ds)) sa = sana(ds) training_error = 1-clf.ca.training_stats.stats['ACC'] errors.append(error) training_errors.append(training_error) w = sa.samples[0] b = np.asscalar(sa.sa.biases) # width each way r = 1./np.linalg.norm(w) msg = "SIGNAL: %.2f training_error: %.2f error: %.2f |w|: %.2f r=%.2f" \ %(sig, training_error, error, np.linalg.norm(w), r) print msg # Drawing current data and SVM hyperplane+margin xmin = np.min(ds[:,0], axis=0) xmax = np.max(ds[:,0], axis=0) x = np.linspace(xmin, xmax, 20) y = -(w[0] * x - b) /w[1] y1 = ( 1-(w[0] * x - b))/w[1] y2 = (-1-(w[0] * x - b))/w[1] pl.figure(figsize=(10,4)) for t,c in zip(ds.UT, ['r', 'b']): ds_ = ds[ds.T == t] pl.scatter(ds_[:, 0], ds_[:, 1], c=c) # draw the hyperplane pl.plot(x, y) pl.plot(x, y1, '--') pl.plot(x, y2, '--') pl.title(msg) ca = pl.gca() ca.set_xlim((-2, 4)) ca.set_ylim((-1.2, 1.2)) pl.show() rs.append(r) """ So what would be our dependence between signal level and errors/width of the margin? """ pl.figure() pl.plot(sigs, rs, label="Margin width of %s" % clf) pl.plot(sigs, errors, label="CV error") pl.plot(sigs, training_errors, label="Training error") pl.xlabel("Signal") pl.legend() pl.show() """ And this is how it looks like. .. image:: ../pics/ex_svm_margin.* :align: center :alt: Relation between signal level, errors and the width of the soft-margin SVM's margin """ pymvpa2-2.6.4/doc/examples/topo_plot.py000077500000000000000000000033661323370031300201030ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Generating Topography plots =========================== Example demonstrating a topography plot.""" from mvpa2.suite import * # Sanity check if we have griddata available externals.exists("griddata", raise_=True) # EEG example splot pl.subplot(1, 2, 1) # load the sensor information from their definition file. # This file has sensor names, as well as their 3D coordinates sensors=XAVRSensorLocations(os.path.join(pymvpa_dataroot, 'xavr1010.dat')) # make up some artifical topography # 'enable' to channels, all others set to off ;-) topo = np.zeros(len(sensors.names)) topo[sensors.names.index('O1')] = 1 topo[sensors.names.index('F4')] = 1 # plot with sensor locations shown plot_head_topography(topo, sensors.locations(), plotsensors=True) # MEG example plot pl.subplot(1, 2, 2) # load MEG sensor locations sensors=TuebingenMEGSensorLocations( os.path.join(pymvpa_dataroot, 'tueb_meg_coord.xyz')) # random values this time topo = np.random.randn(len(sensors.names)) # plot without additional interpolation plot_head_topography(topo, sensors.locations(), interpolation='nearest') if cfg.getboolean('examples', 'interactive', True): # show all the cool figures pl.show() """ The ouput of the provided example should look like .. image:: ../pics/ex_topo_plot.* :align: center :alt: Topography plot of MEG data """ pymvpa2-2.6.4/doc/misc/000077500000000000000000000000001323370031300146145ustar00rootroot00000000000000pymvpa2-2.6.4/doc/misc/asciiart.txt000066400000000000000000000002551323370031300171560ustar00rootroot00000000000000 ____ __ __ _ _ ____ _ ( _ \ ( \/ )( ) ( )( _ \ (_) )___/_ _ ) ( \ \/ / )___/ /___\ (__) ( ) )(_/\/\_) \__/ (__) (_) (_) \ / (_/ pymvpa2-2.6.4/doc/misc/codeswarm.config000066400000000000000000000051031323370031300177660ustar00rootroot00000000000000# This is a sample configuration file for code_swarm # Frame width Width=480 # Frame height Height=360 # Input file InputFile=../../build/swarm/git.xml # Particle sprite file ParticleSpriteFile=src/particle.png #Font Settings Font=SansSerif FontSize=12 BoldFontSize=14 # Project time per frame MillisecondsPerFrame=21600000 # Maximum number of Background processes MaxThreads=4 # Optional Method instead of MillisecondsPerFrame #FramesPerDay=4 # Background in R,G,B Background=0,0,0 # Color assignment rules # Keep in order, do not skip numbers. Numbers start # at 1. # # Pattern: "Label", "regex", R,G,B, R,G,B # Label is optional. If it is omitted, the regex # will be used. # ColorAssign1="Examples","doc/examples/.*", 0,255,255, 0,255,255 ColorAssign2="Docs","doc/.*\.(rst,txt)", 0,0,255, 0,0,255 ColorAssign3="Tests",".*test_.*\.py", 0,255,0, 0,255,0 ColorAssign4="Datasets","mvpa/dataset.*", 255,0,255, 255,0,255 ColorAssign5="Classifiers","mvpa/clf.*", 255,160,65, 255,160,65 ColorAssign6="Mappers","mvpa/.*mapper.*\.py", 255,0,0, 255,0,0 ColorAssign7="MVPA Generic",".*", 255,255,0, 255,255,0 # Save each frame to an image? TakeSnapshots=True # Where to save each frame SnapshotLocation=../../build/swarm/frames/code_swarm-#####.png # Draw names (combinatory) : # Draw sharp names? DrawNamesSharp=true # And draw a glow around names? (Runs slower) DrawNamesHalos=true # Draw files (combinatory) : # Draw sharp files DrawFilesSharp=false # Draw fuzzy files DrawFilesFuzzy=true # Draw jelly files DrawFilesJelly=false # Show the Legend at start ShowLegend=true # Show the History at start ShowHistory=true # Show the Date at start ShowDate=true # Show edges between authors and files, mostly for debug purpose ShowEdges=false # Turn on Debug counts. ShowDebug=false # Natural distance of files to people EdgeLength=75 # Amount of life to decrement EdgeDecrement=-2 FileDecrement=-2 PersonDecrement=-1 #Speeds. #Optional: NodeSpeed=7.0, If used, FileSpeed and PersonSpeed need not be set. # FileSpeed=7.0 PersonSpeed=2.0 #Masses FileMass=1.0 PersonMass=10.0 # Life of an Edge EdgeLife=250 # Life of a File FileLife=200 # Life of a Person PersonLife=255 # Highlight percent. # This is the amount of time that the person or # file will be highlighted. HighlightPct=5 ## Physics engine selection and configuration # Directory physics engine config files reside in. PhysicsEngineConfigDir=physics_engine # Force calculation algorithms ("PhysicsEngineLegacy", "PhysicsEngineSimple"...) : PhysicsEngineSelection=PhysicsEngineLegacy # OpenGL is experimental. Use at your own risk. UseOpenGL=false pymvpa2-2.6.4/doc/misc/emacs000066400000000000000000000122101323370031300156230ustar00rootroot00000000000000;; emacs: -*- mode: emacs-lisp; indent-tabs-mode: nil -*- ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;; ; ; See COPYING file distributed along with the PyMVPA package for the ; copyright and license terms. ; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;; ;; ;; This file is to help PyMVPA users who use emacs for their needs. ;; It enables suggested modes (if available), and sets up environment ;; variables needed by Python and pylint ;; ;; Recommended usage: ;; ;; * symlink this file as .emacs.local into the root of PyMVPA project: ;; ln -s doc/misc/emacs .emacs.local ;; ;; * add following snippet into your .emacs to enable loading of local ;; emacs configuration: ;; (push "." load-path) ;add current path ;; (load ".emacs.local" t) ;; (pop load-path) ;clean up ;; * for flymake to work correctly, you would need to have epylint script ;; installed anywhere in the PATH. You can obtain the script from ;; ;; http://git.onerussian.com/?p=etc/emacs.git;a=blob;f=.emacs.d/bin/epylint;hb=HEAD ;; ;; Now, whenever you start emacs in the root directory of PyMVPA project, ;; it should load .emacs.local and setup suggested Emacs environment. ;; ;; Disclaimer: this config file is not extensively tested and was ripped away ;; from Yaroslav's .emacs configuration available from ;; http://git.onerussian.com/?p=etc/emacs.git;a=summary (setenv "PYTHONPATH" (expand-file-name default-directory)) (setenv "PYLINTRC" (concat (expand-file-name default-directory) "doc/misc/pylintrc")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Python ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Set IPython to be the python command and give it arguments (when (locate-library "python-mode") (when (locate-library "ipython") (require 'ipython) (when (locate-library "ansi-color") (add-hook 'py-shell-hook 'my-activate-ansi-colors))) ;; We want pylint call (add-hook 'python-mode-hook '(lambda () (when (and (stringp (buffer-file-name)) (not (string-match ".*/tmp/python-.*" (buffer-file-name)))) (when (locate-library "pylint") (load-library "pylint") (local-set-key "\C-xc" 'pylint) ) (when (locate-library "pymacs") (load-library "pymacs") (when (pymacs-load "ropemacs" "rope-" t) (ropemacs-mode t) (set ropemacs-guess-project t))) (when (not indent-tabs-mode) (when (locate-library "show-wspace") (when (not show-ws-highlight-tabs-p) (show-ws-toggle-show-tabs)))) (when (locate-library "outline") (defun py-outline-level () "This is so that `current-column` DTRT in otherwise-hidden text" ;; from ada-mode.el (let (buffer-invisibility-spec) (save-excursion (beginning-of-line) (skip-chars-forward "\t ") (/ (current-column) py-indent-offset)))) ;; this fragment originally came from the web somewhere, but the outline-regexp ;; was horribly broken and is broken in all instances of this code floating ;; around. Finally fixed by Charl P. Botha ;; enable our level computation (setq outline-level 'py-outline-level) ;;(setq outline-regexp "[^ tn]|[ t]*(def[ t]+|class[ t]+)") ;;(setq outline-regexp "\\([ \t]*\n\\)?[ \t]*\\(if\\|for\\|def\\|class\\)[ \t]+.*[:\\\][ \t]*\\(#.*\\)?$") ;; (setq outline-regexp "\\(^[ \t]*\n\\)?[ \t]*\\(if\\|for\\|def\\|class\\|else\\|elif\\|try\\|except\\|finally\\)") ;; (setq outline-regexp "\\(^[ \t]*\n\\)?[ \t]*\\(def\\|class\\|@\\)") (setq outline-regexp "\\([ \t]*\\(def\\|class\\|@\\)\\|^#\\)") ;; without explicit keywords: ;;(setq outline-regexp "^[ \t\n]*\\([^ \t]+\\)[ \t]+.*[:\\\][ \t]*\\(#.*\\)?$") ;; custom shortcuts ;;(outline-shortcuts) ;; turn on outline mode (outline-minor-mode t) ;; initially hide all but the headers (hide-body) ) (show-paren-mode 1) (flymake-mode 1) ))) ;hook ) ;python-mode ;; Lets enable flymake + pylint tandem (when (load "flymake" t) (defun flymake-pylint-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "epylint" (list local-file)))) (add-to-list 'flymake-allowed-file-name-masks '("\\.py\\'" flymake-pylint-init)) ;; helper to put pylint errors into the status line ;; borrowed from ;; http://plope.com/Members/chrism/flymake-mode (load "flymake-cursor" t) (add-hook 'find-file-hook 'flymake-find-file-hook) ) (setq enable-local-variables t enable-local-eval t search-highlight t ;highlight found matches query-replace-highlight t ;highlight found matches tab-width 4 show-trailing-whitespace t ;show trailing spaces by default inhibit-startup-message t ;ok I've seen the copyleft &c ) (custom-set-variables '(safe-local-variable-values (quote ((py-indent-offset . 4))))) pymvpa2-2.6.4/doc/misc/epydoc.conf000066400000000000000000000105311323370031300167460ustar00rootroot00000000000000[epydoc] # Epydoc section marker (required by ConfigParser) # The list of objects to document. Objects can be named using # dotted names, module filenames, or package directory names. # Alases for this option include "objects" and "values". modules: mvpa # The type of output that should be generated. Should be one # of: html, text, latex, dvi, ps, pdf. output: html # The path to the output directory. May be relative or absolute. target: build/html/api # An integer indicating how verbose epydoc should be. The default # value is 0; negative values will supress warnings and errors; # positive values will give more verbose output. verbosity: 0 # A boolean value indicating that Epydoc should show a tracaback # in case of unexpected error. By default don't show tracebacks debug: 0 # If True, don't try to use colors or cursor control when doing # textual output. The default False assumes a rich text prompt simple-term: 0 ### Generation options # The default markup language for docstrings, for modules that do # not define __docformat__. Defaults to epytext. docformat: restructuredtext # Whether or not parsing should be used to examine objects. parse: yes # Whether or not introspection should be used to examine objects. introspect: no # Don't examine in any way the modules whose dotted name match this # regular expression pattern. #exclude # Don't perform introspection on the modules whose dotted name match this # regular expression pattern. #exclude-introspect # Don't perform parsing on the modules whose dotted name match this # regular expression pattern. #exclude-parse # The format for showing inheritance objects. # It should be one of: 'grouped', 'listed', 'included'. inheritance: listed # Whether or not to inclue private variables. (Even if included, # private variables will be hidden by default.) private: yes # Whether or not to list each module's imports. imports: yes # Whether or not to include syntax highlighted source code in # the output (HTML only). sourcecode: yes # Whether or not to includea a page with Epydoc log, containing # effective option at the time of generation and the reported logs. include-log: no ### Output options # The documented project's name. name: PyMVPA: Python MultiVariate Pattern Analysis # The CSS stylesheet for HTML output. Can be the name of a builtin # stylesheet, or the name of a file. css: white # The documented project's URL. url: http://www.pymvpa.org # HTML code for the project link in the navigation bar. If left # unspecified, the project link will be generated based on the # project's name and URL. #link: My Cool Project # The "top" page for the documentation. Can be a URL, the name # of a module or class, or one of the special names "trees.html", # "indices.html", or "help.html" #top: os.path # An alternative help file. The named file should contain the # body of an HTML file; navigation bars will be added to it. #help: my_helpfile.html # Whether or not to include a frames-based table of contents. frames: yes # Whether each class should be listed in its own section when # generating LaTeX or PDF output. separate-classes: no ### API linking options # Define a new API document. A new interpreted text role # will be created #external-api: epydoc # Use the records in this file to resolve objects in the API named NAME. #external-api-file: epydoc:api-objects.txt # Use this URL prefix to configure the string returned for external API. #external-api-root: epydoc:http://epydoc.sourceforge.net/api ### Graph options # The list of graph types that should be automatically included # in the output. Graphs are generated using the Graphviz "dot" # executable. Graph types include: "classtree", "callgraph", # "umlclass". Use "all" to include all graph types graph: all # The path to the Graphviz "dot" executable, used to generate # graphs. dotpath: /usr/bin/dot # The name of one or more pstat files (generated by the profile # or hotshot module). These are used to generate call graphs. pstat: build/main.pstats # Specify the font used to generate Graphviz graphs. # (e.g., helvetica or times). graph-font: Helvetica # Specify the font size used to generate Graphviz graphs. graph-font-size: 10 ### Return value options # The condition upon which Epydoc should exit with a non-zero # exit status. Possible values are error, warning, docstring_warning #fail-on: error pymvpa2-2.6.4/doc/misc/flexds_transition_status.txt000066400000000000000000000062221323370031300225210ustar00rootroot00000000000000This file documents the current state of the transition to the new dataset implementation. May the source be with us! Examples -------- clfs_examples.py broken (SVM cannot handle literallabels) curvefitting.py pass erp_plot.py pass eventrelated.py broken (event-stuff is waiting for new mappers) gpr_model_selection0.py broken by design gpr.py pass kerneldemo.py pass match_distribution.py pass mri_plot.py pass permutation_test.py pass projections.py pass searchlight_2d.py pass searchlight_dsm.py broken (waiting for new-style mapper) searchlight_minimal.py broken (waiting for new-style mapper) searchlight.py pass sensanas.py pass smellit.py pass smlr.py pass som.py pass start_easy.py pass svdclf.py broken (waiting for new-style mappers) topo_plot.py pass Unit tests ---------- test_args.py pass test_arraymapper.py pass test_atlases.py pass test_base.py pass test_boxcarmapper.py pass test_clfcrossval.py pass test_clf.py pass (SG cannot handle literal labels, TreeClassifier relies on labels_map) test_cmdline.py pass test_config.py pass test_datameasure.py pass (sg literal labels) test_datasetfx.py pass test_datasetfx_sp.py pass test_datasetng.py pass test_dataset.py broken by design (merge remaining tests elsewhere) test_dochelpers.py pass test_eepdataset.py pass (missing test) test_enet.py broken (literal labels, so Rpy complaints Numeric/NumPy arrays containing numpy.ndarray are not supported) test_externals.py pass test_hamster.py pass test_icamapper.py pass test_ifs.py pass test_iohelpers.py pass test_kernel.py pass test_knn.py pass test_lars.py pass (same as for _enet) test_meg.py pass test_neighbor.py pass test_niftidataset.py pass (some test could be re-added and moved elsewhere) test_params.py pass test_perturbsensana.py pass test_plr.py pass test_procrust.py pass test_regr.py pass test_report.py pass test_rfe.py pass test_ridge.py pass test_samplegroupmapper.py pass test_searchlight.py pass test_smlr.py pass test_som.py pass test_splitsensana.py pass test_splitter.py pass test_state.py pass test_stats.py pass test_stats_sp.py pass test_suite.py pass test_support.py pass test_svdmapper.py pass test_svm.py pass test_transerror.py pass (sg literal labels, testAUC) test_transformers.py pass test_verbosity.py pass test_waveletmapper.py pass test_zscoremapper.py pass pymvpa2-2.6.4/doc/misc/header.py000066400000000000000000000006501323370031300164170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """""" __docformat__ = 'restructuredtext' pymvpa2-2.6.4/doc/misc/ipy_profile_pymvpa.py000066400000000000000000000021371323370031300211060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PyMVPA mode for IPython. """ __docformat__ = 'restructuredtext' from IPython import ipapi # The import below effectively obsoletes your old-style ipythonrc[.ini], # so consider yourself warned! import ipy_defaults import mvpa2 def main(): ip = ipapi.get() # PyMVPA specific ip.ex('import mvpa2') # and now the whole suite # but no, since ipython segfaults (tested with version 0.8.4) # the whole things seems to be related to RPy and friends # running the same command after IPython startup is completed # is no problem, though. #ip.ex('from mvpa2.suite import *') print """ ########################### # Welcome to PyMVPA %s # ########################### """ % mvpa2.__version__ main() pymvpa2-2.6.4/doc/misc/kernels.tex000066400000000000000000000412301323370031300170010ustar00rootroot00000000000000\documentclass[a4paper,11pt]{article} \usepackage[latin1]{inputenc} \usepackage[english]{babel} \usepackage{epsfig} \usepackage{amsmath} \usepackage{amsfonts} \newcommand\R{{\mathbb R}} \newcommand\x{{\mathbf x}} \newcommand\X{{\mathbf X}} \newcommand\K{{\mathbf K}} \newcommand\J{{\mathbf J}} \newcommand\LL{{\mathbf L}} \newcommand\ELL{{\Ivec \ell}} %%\newcommand\L{{\mathbf L}} %%\DeclareMathOperator*{\argmax}{arg\,max} %% \DeclareMathOperator*{\argmax}{argmax} %% (argmax wihtouth mid space) \DeclareMathOperator*{\argmin}{arg\,min} \DeclareMathOperator*{\var}{var} \DeclareMathOperator*{\dm}{dm} \newcommand{\Rvec}[1]{{\bf #1}} \newcommand{\Ivec}[1]{\mbox{\boldmath $#1$}} \title{Kernels} \author{Emanuele Olivetti} \begin{document} \maketitle \section{Introduction} This document gives a detailed description of kernels implemented in PyMVPA together with derivation of their gradients. These kernels are used mainly by Gaussian Process Regression but can be of use for other kernel methods. Gradients are useful when trying to maximize the marginal likelihood of a Gaussian Process, i.e., during model selection. In some cases a further reparametrization in log scale is provided in order to reduce numerical stability issues when computing likelihoods. The following notation and definitions are used: \begin{itemize} \item $\x \in \R^D$ : a $D$-dimensional column vector, $\x = (x_1,\ldots,x_D)$. \item $\X = (\x_1^{\top},\ldots,\x_N^{\top})$ : a $N \times D$ matrix where each row is a $D$-dimensional vector. $\X$ is also called set of \emph{samples}. $\X_{* i}$ indicates the $i$-th column of $\X$ and is a column vector. $\X_{j *}$ indicates the $j$-th row of $\X$ and is a row vector. \item $k: \R^D \times \R^D \rightarrow \R$ : a covariance (or kernel) function. \item $\K(\X,\X')$ : the matrix extension of $k$, i.e., $\K_{pq} = k(\X_{*p},\X'_{*q})$. If $\X$ is a $N \times D$ matrix and $\X'$ is $N' \times D$ then $\K(\X,\X')$ is a $N \times N'$ matrix. \item $\J_{n,m}$ : the $n \times m$ matrix of ones, i.e., a matrix where each element is 1. \item $\|\mathbf{z}\|_p$ : the $p$-norm of vector $\mathbf{z}$ defined as $\|\mathbf{z}\|_p = (\sum_{i=1}^D \|z_i\|^p)^{\frac{1}{p}}$. Euclidean norm is $p=2$, then $\|\mathbf{z}\|_2 = \sqrt{\mathbf{z}^{\top}\mathbf{z}} = \sqrt{\sum_{i=1}^D z_i^2}$. \item $\|\mathbf{z},\mathbf{w}\|_p$ : the \emph{weighted} $p$-norm of vector $\mathbf{z}$ defined as $\|\mathbf{z},\mathbf{w}\|_p = (\sum_{i=1}^D w_i|z_i|^p)^{\frac{1}{p}}$. Euclidean norm is $p=2$, then $\|\mathbf{z},\mathbf{w}\|_2 = \sqrt{\mathbf{z}^{\top} \mathbf{W}^{-1} \mathbf{z}} = \sqrt{\sum_{i=1}^D w_i z_i^2}$, where $\mathbf{W} = diag(\mathbf{w})$. \item $\dm(\X,\X')$ : the \emph{Euclidean distance matrix} between $\X$ and $\X'$ defined element by element as $\dm(\X,\X')_{pq} = \|\X_{p *} - \X'_{q *}\|_2 = \sqrt{\sum_{i=1}^D (\X_{p i} - \X'_{q i})^2}$. If $\X$ is a $N \times D$ matrix and $\X'$ is $N' \times D$ then $\dm(\X,\X1)$ is a $N \times N'$ matrix. Note that $\dm(\X,X')$ is the square root of what it is usually called ``distance matrix''. \item $\dm(\X,\X',\mathbf{w})$ : the \emph{weighted} Euclidean distance matrix between $\X$ and $\X'$ defined element by element as $\dm(\X,\X',\mathbf{w})_{pq} = \|(\X_{p *} - \X'_{q *})^{\top}, \mathbf{w}\|_2 = \sqrt{\sum_{i=1}^D w_i(\X_{p i} - \X'_{q i})^2}$ through the weight vector $\mathbf{w} \in \R^D$. It is straightforward that $\dm(\X,\X') = \dm(\X,\X',\mathbf{J}_{D,1})$. \item $\X \bullet \mathbf{Y}$ : the Hadamard (or Schur) matrix product, i.e. the entry-wise product between matrices of the same size. Let $\mathbf{Z} = \X \bullet \mathbf{Y}$, then $z_{ij} = x_{ij} y_{ij}$. \item $\X^{\alpha}$ : $(\X^{\alpha})_{ij} = (X_{ij})^{\alpha}$. \end{itemize} \section{Constant kernel} $$k(\x,\x') = \sigma_0^2$$ where $\sigma_0 \ge 0$ is the standard deviation of the Gaussian prior probability $\mathcal{N}(0,\sigma_0^2)$ of the value of the constant. $$\K(\X,\X') = \sigma_0^2 \J_{N,N'}$$ $$\mathbf{\Theta} = \{\sigma_0\}$$ $$\frac{\partial k}{\partial \sigma_0}(\x,\x') = 2\sigma_0$$ $$\frac{\partial \K}{\partial \sigma_0} = 2\sigma_0 \J_{N,N'}$$ $$A = \sigma_0^2$$ $$A \ge 0$$ $$\mathbf{\Theta}^* = \{A\}$$ $$k(\x,\x') = A$$ $$\K(\X,\X') = A \J_{N,N'}$$ $$\frac{\partial k}{\partial A} = 1$$ $$\nabla_A \K = \frac{\partial \K}{\partial A} = \J_{N,N'}$$ Note that using $A$ as hyperparameter the gradient becomes constant. \section{Linear kernel} Let $\Ivec{\Sigma}_p$ be the $D \times D$ covariance matrix of the Gaussian prior probability $\mathcal{N}(\Ivec{0},\Ivec{\Sigma}_p)$ of the weights of the Bayesian linear regression. $$k(\x,\x') = \x^{\top} \Ivec{\Sigma}_p \x' + \sigma_2^2$$ $$\K(\X,\X') = \X \Ivec{\Sigma}_p \X'^{\top} + \Ivec{I}\sigma_0^2$$ In order to simplify formulas we assume $\Ivec{\Sigma}_p$ is diagonal, i.e., $\Ivec{\Sigma}_p = diag(\Ivec{\sigma}^2_p)$ where $\Ivec{\sigma}^2_p = ({\sigma^2_p}_1,\ldots,{\sigma^2_p}_D)$: $$k(\x,\x') = \sum_{i=1}^D {\sigma^2_p}_i x_i x'_i + \sigma_0^2$$ $$\mathbf{\Theta} = \{{\sigma_p}_1,\ldots,{\sigma_p}_D,\sigma_0\}$$ $$\frac{\partial k}{\partial {\sigma_p}_i} = 2 {\sigma_p}_i x_i x'_i$$ $$A_i = {\sigma_p^2}_i$$ $$A_i \ge 0$$ $$\mathbf{A} = (A_1,\ldots,A_D)^{\top}$$ $$\frac{\partial k}{\partial \sigma_0} = 2 \sigma_0$$ $$B = \sigma_0^2$$ $$\mathbf{\Theta}^* = \{ \mathbf{A} , B\}$$ $$k(\x,\x') = \x^{\top} diag(\mathbf{A}) \x' + B$$ $$\K(\X,\X') = \X diag(\mathbf{A}) \X'^{\top} + \Ivec{I}B$$ $$\frac{\partial k}{\partial A_i} = x_i x'_i$$ $$\frac{\partial \K}{\partial A_i} = \X_{* i} {\X'_{* i}}^{\top}$$ $$\nabla_{\mathbf{A}} \K = ( \X_{* 1} {\X'_{* 1}}^{\top}, \ldots, \X_{* D} {\X'_{* D}}^{\top})$$ $$\frac{\partial k}{\partial B} = 1$$ $$\frac{\partial \K}{\partial B} = \Ivec{I}$$ As expected the gradient is independent of the hyperparameters values and can be computed once for all at the beginning. Logscale: $$A_i = \ln{\sigma_{p_i}^2}$$ $$\sigma_{p_i}^2 = e^{A_i}$$ $$\frac{\partial k}{\partial A_i} = \sigma_{p_i}^2 x_i x_j$$ $$B = \ln{\sigma_0}$$ $$\sigma_0^2 = e^{2B}$$ $$\frac{\partial k}{\partial B} = 2 e^{2B} = 2 \sigma_0^2$$ Another reparametrization: $$C = \ln{\sigma_0^2}$$ $$\sigma_0^2 = e^C$$ $$\frac{\partial k}{\partial C} = \sigma_0^2$$ \section{Polynomial kernel} $$k(\x,\x') = (\sigma_0^2 + \x^{\top} \Ivec{\Sigma}_p \x')^p = (\sigma_0^2 + \sum_{i=1}^D {\sigma^2_p}_i x_i x'_i)^p$$ $$\K(\X,\X') = (\sigma_0^2 \mathbf{J}_{N,N'} + \X \Ivec{\Sigma}_p \X'^{\top})^p$$ In order to simplify formulas we assume $\Ivec{\Sigma}_p$ is diagonal, i.e., $\Ivec{\Sigma}_p = diag(\Ivec{\sigma}^2_p)$ where $\Ivec{\sigma}^2_p = ({\sigma^2_p}_1,\ldots,{\sigma^2_p}_D)$. $$\sigma_0 \ge 0$$ $$\Ivec{\sigma}_p = ({\sigma_p}_1,\ldots,{\sigma_p}_D)$$ $${\sigma_p}_i \ge 0$$ $$\mathbf{\Theta} = \{\sigma_0,\Ivec{\sigma}_p, p\}$$ $$A = \sigma_0^2$$ $$B_i = {\sigma^2_p}_i$$ $$\mathbf{B} = (B_1,\ldots,B_D)$$ $$\mathbf{\Theta}^* = \{A,\mathbf{B}, p\}$$ $$k(\x,\x') = (A + \x^{\top} diag(\mathbf{B}) \x')^p = (A + \sum_{i=1}^D B_i x_i x'_i)^p$$ $$\frac{\partial k}{\partial A} = p(A + \sum_{i=1}^D B_i x_i x'_i)^{p-1}$$ $$\frac{\partial \K}{\partial A} = p(A\mathbf{J}_{N,N'} + \sum_{i=1}^D B_i \X_{*i} {\X'_{*i}}^{\top})^{p-1}$$ $$\frac{\partial k}{\partial B_i} = p(A + \sum_{i=1}^D B_i x_i x'_i)^{p-1} x_i x'_i = \frac{\partial k}{\partial A} x_i x'_i$$ $$\frac{\partial \K}{\partial B_i} = \frac{\partial \K}{\partial A} \X_{*i} {\X'_{*i}}^{\top}$$ $$\frac{\partial k}{\partial p} = k(\x,\x') \ln(A + \sum_{i=1}^D B_i x_i x'_i)$$ $$\frac{\partial \K}{\partial p} = \K(\X,\X') \bullet \ln(A \mathbf{J}_{N,N'}+ \sum_{i=1}^D B_i \X_{*i} \X'_{*i})$$ $$\mathbf{M} = A \mathbf{J}_{N,N'}+ \sum_{i=1}^D B_i \X_{*i} \X'_{*i}$$ $$\nabla_{A,\mathbf{B},p} \K = \left(p\mathbf{M}^{p-1},\left\{p\mathbf{M}^{p-1} \X_{*i} {\X'_{*i}}^{\top} \right\}_{i=1,\ldots,D}, \K(\X,\X') \bullet \ln(\mathbf{M}) \right)$$ \section{Exponential kernel} \subsection{Scalar Length-scale $\ell$} $$k(\x,\x') = \sigma_f^2 e^{-\frac{\|\x-\x'\|_2}{\ell}}$$ $$\ell > 0$$ $$\sigma_f \ge 0$$ $$\mathbf{\Theta} = \{ \sigma_f, \ell \}$$ $$\K(\X,\X') = \sigma_f^2 e^{-\frac{1}{\ell}\dm(\X,\X')}$$ $$A = \sigma_f^2$$ $$A \ge 0$$ $$B = -\frac{1}{\ell}$$ $$B < 0$$ $$\mathbf{\Theta}^* = \{ A, B \}$$ $$k(\x,\x') = A e^{B\|\x-\x'\|_2}$$ $$\K(\X,\X') = A e^{B \dm(\X-\X')}$$ $$\frac{\partial k}{\partial A} = e^{B\|\x-\x'\|_2} = \frac{1}{A}k(\x,\x')$$ $$\frac{\partial \K}{\partial A} = e^{B \dm(\X,\X')} = \frac{1}{A} \K(\X,\X')$$ $$\frac{\partial k}{\partial B} = A e^{B\|\x-\x'\|_2} \|\x-\x'\|_2 = k(\x,\x') \|\x-\x'\|_2$$ $$\frac{\partial \K}{\partial B} = \K(\X,\X') \bullet \dm(\X-\X')$$ $$\nabla_{A,B} \K = (\frac{1}{A} \K(\X,\X'), \K(\X,\X') \bullet \dm(\X-\X'))$$ Note that if $\K(\X,\X')$ is precomputed, then the gradient consists in just two element-by-element products, the second being against a constant matrix independent of the hyperparameters. \subsection{Vector of Length-Scales $\Ivec{\ell}$} Given $\Ivec{\ell} = (\ell_1,\ldots,\ell_D)$, $\ell_i \ge 0$ and $\ELL^{-1} = (1/\ell_1,\ldots,1/\ell_D)$ $$k(\x,\x') = \sigma_f^2 e^{-\|\x-\x',\ELL^{-2}\|_2}= \sigma_f^2 e^{-\sqrt{\sum_{i=1}^D \left(\frac{x_i - x'_i}{\ell_i}\right)^2}}$$ $$K(\X,\X') = \sigma_f^2 e^{-\dm(\X,\X',\ELL^{-2})}$$ $$\mathbf{\Theta} = \{ \sigma_f, \ELL\}$$ $$\sigma_f \ge 0$$ $$\ell_i > 0$$ $$A = \sigma_f^2$$ $$\mathbf{B} = \ELL^{-2}$$ $$A \ge 0$$ $$B_i > 0$$ $$\mathbf{\Theta}^* = \{ A, \mathbf{B}\}$$ $$k(\x,\x') = A e^{-\|\x-\x',\mathbf{B}\|_2} = A e^{-\sqrt{\sum_{i=1}^D B_i(x_i - x'_i)^2}}$$ $$K(\X,\X') = A e^{-\dm(\X,\X',\mathbf{B})}$$ $$\frac{\partial k}{\partial A} = e^{-\sqrt{\sum_{i=1}^D B_i(x_i - x'_i)^2}} = \frac{k(\x,\x')}{A}$$ $$\frac{\partial \K}{\partial A} = e^{-\dm(\X,\X',\mathbf{B})} = \frac{1}{A}\K(\X,\X')$$ $$\frac{\partial k}{\partial B_i} = A e^{-\|\x-\x',\mathbf{B}\|_2} \left( -\frac{1}{2} \|\x-\x',\mathbf{B}\|_2^3 \right) (x_i - x'_i)^2 = -\frac{1}{2} k(\x,\x') \|\x-\x',\mathbf{B}\|_2^3 (x_i - x'_i)^2 $$ $$\frac{\partial \K}{\partial B_i} = -\frac{1}{2} K(\X,\X') \bullet \dm(\X-\X',\mathbf{B})^3 \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$$ $$\nabla_{A,\mathbf{B}} \K = \left(\frac{1}{A}\K(\X,\X'), \left\{-\frac{1}{2} K(\X,\X') \bullet \dm(\X-\X',\mathbf{B})^3 \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2 \right\}_{i=1 \ldots D} \right)$$ Note that $\frac{\partial \K}{\partial A}$ requires just the multiplication of a constant by the kernel matrix $\K(\X,\X')$ whose values usually already available. Instead $\frac{\partial \K}{\partial B_i}$ is a entry-wise product of 3 matrices: $\K(\X,\X')$ (usually already available), $\dm(\X-\X',\mathbf{B})^3$ (which is, apart the cube, part of the computation of $\K(\X,\X')$ so it can be stored in advance), and $(\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$ which does not depend upon $A$ and $\mathbf{B}$ so it can be computed once for all. Note that in NumPy $(\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$ can be computed as {\ttfamily numpy.subtract.outer($X_{*i},X'_{*i}$)**2}. \section{Squared Exponential kernel} \subsection{Scalar Length-Scale $\ell$} $$k(\x,\x') = \sigma_f^2 e^{-\frac{1}{2\ell^2} (\x-\x')^{\top}(\x-\x')} = \sigma_f^2 e^{-\frac{1}{2\ell^2} \sum_{i=1}^D (x_i - x'_i)^2} = \sigma_f^2 e^{-\frac{1}{2\ell^2} \|\x-\x'\|_2^2}$$ $$\K(\X,\X') = \sigma_f^2 e^{-\frac{1}{2\ell^2} \dm(\X,\X')^2}$$ $$\sigma_f \ge 0$$ $$\ell > 0$$ $$\mathbf{\Theta} = \{ \sigma_f, \ell \}$$ $$\frac{\partial k}{\partial \sigma_f} = \frac{2}{\sigma_f}k$$ $$\frac{\partial \K}{\partial \sigma_f} = \frac{2}{\sigma_f}\K$$ $$\frac{\partial k}{\partial \ell} = \ell^{-3} k \|\x-\x'\|_2^2 $$ $$\frac{\partial \K}{\partial \ell} = \ell^{-3} \K \bullet \dm(\X,\X')^2$$ $$\nabla_{\sigma_f,\ell} \K = \left(\frac{2}{\sigma_f}K(\X,\X'), \ell^{-3} \K \bullet \dm(\X-\X')^2 \right)$$ Logscale: $$A = \ln{\sigma_f}$$ $$\sigma_f = e^A$$ $$\frac{\partial k}{\partial A} = 2k$$ $$\frac{\partial \K}{\partial \sigma_f} = 2\K$$ $$B = \ln{\ell}$$ $$\ell = e^B$$ $$\frac{\partial k}{\partial B} = \ell^{-2} k \|\x-\x'\|_2^2$$ $$\frac{\partial \K}{\partial B} = \ell^{-2} \K \bullet \dm(\X,\X')^2 = \K \bullet \dm(\X,\X',\ell^{-2}\J_N)^2$$ $$\nabla_{A,B} \K = \left( 2\K(\X,\X'), \ell^{-2} \K \bullet \dm(\X-\X')^2 \right)$$ Another mapping: $$A = \sigma_f^2$$ $$B = -\frac{1}{\ell^2}$$ $$A \ge 0$$ $$B < 0$$ $$\mathbf{\Theta}^* = \{ A, B\}$$ $$k(\x,\x') = A e^{B (\x-\x')^{\top}(\x-\x')}$$ $$\K(\X,\X') = A e^{B \dm(\X,\X')^2}$$ $$\frac{\partial k}{\partial A} = \frac{k(\x,\x')}{A}$$ $$\frac{\partial \K}{\partial A} = \frac{1}{A}\K(\X,\X')$$ $$\frac{\partial k}{\partial B} = k(\x,\x') \|\x-\x'\|_2^2$$ $$\frac{\partial \K}{\partial B} = K(\X,\X') \bullet \dm(\X,\X')^2$$ $$\nabla_{A,B} \K = (\frac{1}{A} \K(\X,\X'), \dm(\X-\X')^2 \bullet \K(\X,\X'))$$ Note that $\nabla_{A,B} \K$ is similar to that of the exponential kernel so almost all comments made before applies here as well. \subsection{Vector of Length-Scales $\ELL$} Let $\mathbf{L} = diag(\ELL)$: $$k(\x,\x') = \sigma_f^2 e^{-\frac{1}{2}(\x-\x')^{\top} \LL^{-2} (\x-\x')} = \sigma_f e^{-\frac{1}{2}\sum_{i=1}^D \frac{(x_i - x'_i)^2}{\ell_i^2}} = \sigma_f^2 e^{-\frac{1}{2}\|\x-\x',\ELL^{-2}\|_2^2}$$ $$\K(\X,\X') = \sigma_f^2 e^{-\frac{1}{2} \dm(\X,\X',\ELL^{-2})^2}$$ $$\sigma_f \ge 0$$ $$\ell_i > 0$$ $$\mathbf{\Theta} = \{ \sigma_f, \ELL\}$$ $$\frac{\partial k}{\partial \sigma_f} = \frac{2}{\sigma_f}k$$ $$\frac{\partial \K}{\partial \sigma_f} = \frac{2}{\sigma_f}\K$$ $$\frac{\partial k}{\partial \ell_i} = \ell_i^{-3} k \|\x_i-\x_i'\|_2^2 $$ $$\frac{\partial \K}{\partial \ell_i} = \ell_i^{-3} \K \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$$ $$\nabla_{\sigma_f,\ell} \K = \left(\frac{2}{\sigma_f}K(\X,\X'), \ell_i^{-3} \K \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2 \right)$$ Logscale: $$A = \ln{\sigma_f}$$ $$\sigma_f = e^A$$ $$\frac{\partial k}{\partial A} = 2k$$ $$\frac{\partial \K}{\partial \sigma_f} = 2\K$$ $$B_i = \ln{\ell_i}$$ $$\ell_i = e^B_i$$ $$\frac{\partial k}{\partial B_i} = \ell_i^{-2} k \|\x_i-\x'_i\|_2^2$$ $$\frac{\partial \K}{\partial B_i} = \ell^{-2} \K \bullet \dm(\X,\X')^2 = \ell_i^{-2} \K \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$$ $$\nabla_{A,\mathbf{B}} \K = \left( 2\K(\X,\X'), \left\{ \ell_i^{-2} \K \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2 \right\}_{i=1 \ldots D} \right)$$ Another mapping: $$A = \sigma_f$$ $$\mathbf{B} = -\frac{1}{2}\ELL^{-2} = \left(-\frac{1}{2\ell_1^2},\ldots,-\frac{1}{2\ell_D^2} \right)$$ $$A \ge 0$$ $$B_i < 0$$ $$\mathbf{\Theta}^* = \{ A, \mathbf{B}\}$$ $$k(\x,\x') = A e^{(\x-\x')^{\top} diag(\mathbf{B}) (\x-\x')} = A e^{\sum_{i=1}^D B_i (x_i - x'_i)^2}$$ $$\K(\X,\X') = A e^{\dm(\X,\X',\mathbf{B})}$$ $$\frac{\partial k}{\partial A} = \frac{k(\x,x')}{A}$$ $$\frac{\partial \K}{\partial A} = \frac{1}{A}\K(\X,X')$$ $$\frac{\partial k}{\partial B_i} = k(\x,\x') (x_i -x'_i)^2$$ $$\frac{\partial \K}{\partial B_i} = \K(\X,\X') \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$$ $$\nabla_{A,\mathbf{B}} \K = \left(\frac{\K(\X,\X')}{A}, \left\{ K(\X,\X') \bullet (\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2 \right\}_{i=1 \ldots D} \right)$$ Note that $\nabla_{A,\mathbf{B}} \K$ requires to compute $K(\X,\X')$ (which is usually already available), and its entry-wise product with $(\X_{*i}J_{1,N'}- (\X'_{*i}J_{1,N})^{\top})^2$ which is independent of the value of the hyperparameters and can be precomputed once for all. \section{$\gamma$-Exponential kernels} $$k(\x,\x') = \sigma_f^2 e^{-(\frac{\x-\x'}{\ell})^\gamma}$$ $$k(\x,\x') = \sigma_f^2 e^{-(\frac{\x-\x'}{\ELL})^\gamma}$$ \section{Mat\'ern kernels} %% $$k_{\mbox{Mat\'ern}}(\x,\x') = \frac{2^{1-\nu}}{\Gamma(\nu)} \left(\sqrt{2\nu} \frac{\|\x-\x'\|_2}{\ell}\right)^{\nu} \K_{\nu}\left(\sqrt{2}\nu \frac{\|\x-\x'\|_2}{\ell} \right)$$ %% $$\ell > 0$$ %% $$\nu > 0$$ %% where $K_{\nu}$ is a modified Bessel function (REMOVE?). Let $\nu$ be half integer, i.e., $\nu = p + 1/2$ ($p \in \mathbb{Z}^+$), then $$k_{\nu=p+1/2}(\x,\x') = e^{-\sqrt{2\nu}\frac{\|\x-\x'\|}{\ell}} \frac{\Gamma(p+1)}{\Gamma(2p+1)} \sum_{i=0}^p \frac{(p+i)!}{i!(p-i)!}\left(\sqrt{8\nu}\frac{\|\x-\x'\|}{\ell}\right)^{p-i}$$ is the class of Mat\'ern covariance functions with half-integer $\nu$. $$\nu > 0$$ $$\ell > 0$$ When $\nu \rightarrow \infty$ we obtain the squared exponential covariance function. Most popular cases of the Mat\'ern functions are $p=0$ (exponential kernel), $p=1$ and $p=2$: $$k_{\nu=1/2}(\x,\x') = e^{-\frac{\|\x-\x'\|_2}{\ell}}$$ $$k_{\nu=3/2}(\x,\x') = \left(1+\sqrt{3}\frac{\|\x-\x'\|_2}{\ell} \right) e^{-\sqrt{3}\frac{\|\x-\x'\|_2}{\ell}}$$ $$k_{\nu=5/2}(\x,\x') = \left(1+\sqrt{5}\frac{\|\x-\x'\|_2}{\ell} + \frac{5\|\x-\x'\|_2^2}{3\ell^2}\right) e^{-\sqrt{5}\frac{\|\x-\x'\|_2}{\ell}}$$ \section{Rational Quadratic kernels} $$k_{RQ} = \left(1+\frac{\|\x-\x'\|_2^2}{2\alpha\ell^2} \right)^{-\alpha}$$ $$\alpha > 0$$ $$\ell > 0$$ \end{document} % LocalWords: Logscale pymvpa2-2.6.4/doc/misc/pylintrc000066400000000000000000000056541323370031300164150ustar00rootroot00000000000000# PyLint configuration file for the project pymvpa. # # Agreed formatting (per yoh+michael voice dialog) is camel. # # This pylintrc file will use the default settings except for the # naming conventions, which will allow for camel case naming as found # in Java code or several libraries such as PyQt, etc. # # At some moment it was modified by yoh from the original one # which can be found on debian systems at # /usr/share/doc/pylint/examples/pylintrc_camelcase # # Just place it in ~/.pylintrc for user-wide installation or simply # use within a call to pylint or export environment variable # export PYLINTRC=$PWD/doc/misc/pylintrc [BASIC] # Regular expression which should only match correct module names module-rgx=([a-z][a-z0-9_]*)$ attr-rgx=[a-z_][a-z0-9_]{,30} # Regular expression which should only match correct class names class-rgx=[A-Z_]+[a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-z_]+[a-z0-9_][a-z0-9]*$ # Regular expression which should only match correct method names # Allow upper cases in testFeatureSelection where FeatureSelection # is a class name method-rgx=(([a-z_]|__)[a-z0-9_]*(__)?|test[a-zA-Z0-9_]*)$ # Regular expression which should only match correct argument names argument-rgx=[a-z][a-z0-9]*_*[a-z0-9]*_*[a-z0-9]*_?$ # Regular expression which should only match correct variable names variable-rgx=([a-z_]+[a-z0-9]*_*[a-z0-9]*_*[a-z0-9]*_?||(__[a-zA-Z0-9_]*__))$||[A-Z]+ # Regular expression which should only match correct module level names # Default: (([A-Z_][A-Z1-9_]*)|(__.*__))$ const-rgx=([a-z_]+[a-z0-9]*_*[a-z0-9]*_*[a-z0-9]*_?|__[a-zA-Z0-9_]*__)$||[A-Z]+ [FORMAT] indent-string=' ' [DESIGN] # We are capable to follow that many, yes! max-branchs = 20 # some base class constructors have quite a few arguments max-args = 14 # and due to ClassWithCollections and conditional attributes classes by default have lots # of attributes max-attributes = 14 # some sci computation can't be handled efficiently without having #lots of locals max-locals = 35 [MESSAGES CONTROL] # Disable the following PyLint messages: # R0903 - Not enough public methods # W0105 - String statement has no effect # often used for after-line doc # W0142 - Used * or ** magic # W0232 - Class has no __init__ method # W0212 - Access to a protected member ... of a client class # W0613 - Unused argument # E1101 - Has no member (countless false-positives) disable-msg=R0903,W0142,W0105,W0212,W0613,E1101 [REPORTS] # set the output format. Available formats are text, parseable, colorized and # html output-format=colorized # Include message's id in output include-ids=yes # Tells wether to display a full report or only the messages reports=no [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. # FIXME -- something which needs fixing # TODO -- future plan # XXX -- some concern # YYY -- comment/answer to above mentioned concern notes=FIXME,TODO,XXX,YYY pymvpa2-2.6.4/doc/misc/references.bib000066400000000000000000001747301323370031300174270ustar00rootroot00000000000000@Comment{x-kbibtex-encoding=utf-8} @Article{HBL+12, title = "Decoding Semantics across {fMRI} sessions with Different Stimulus Modalities: A practical {MVPA} Study", volume = {6}, issn = {1662-5196}, url = {http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2012.00024/full}, doi = {10.3389/fninf.2012.00024}, abstract = {Both embodied and symbolic accounts of conceptual organization would predict partial sharing and partial differentiation between the neural activations seen for concepts activated via different stimulus modalities. But cross-participant and cross-session variability in {BOLD} activity patterns makes analyses of such patterns with {MVPA} methods challenging. Here we examine the effect of cross-modal and individual variation on the machine learning analysis of {fMRI} data recorded during a word property generation task. We present the same set of living and non-living concepts (land-mammals, or work tools) to a cohort of Japanese participants in two sessions: the first using auditory presentation of spoken words; the second using visual presentation of words written in Japanese characters. Classification accuracies confirmed that these semantic categories could be detected in single trials, with within-session predictive accuracies of 80-90\%. However cross-session prediction (learning from auditory-task data to classify data from the written-word-task, or vice-versa) suffered from a performance penalty, achieving 65-75\% (still individually significant at p<<0.05). We carried out several follow-on analyses to investigate the reason for this shortfall, concluding that distributional differences in neither time nor space alone could account for it. Rather, combined spatio-temporal patterns of activity need to be identified for successful cross-session learning, and this suggests that feature selection strategies could be modified to take advantage of this.}, journal = {Frontiers in Neuroinformatics}, author = {Akama Hiroyuki and Murphy Brian and Na Li and Shimizu Yumiko and Poesio Massimo}, year = {2012}, pymvpa-keywords = "pymvpa, fmri" } @Article{DTM+11, journal = "NeuroImage", year = 2011, volume = "60", pages = "189--203", title = "Task-driven {ICA} feature generation for accurate and interpretable prediction using {fMRI}", url = "http://www.ncbi.nlm.nih.gov/pubmed/22227050", author = "Eugene P. Duff and A. J. Trachtenberg and C. E. Mackay CE and M. A. Howard and F. Wilson and Stephen M. Smith and Mark W. Woolrich", journal-impact = "5.895" } @Article{ KKO+11, Author = "Lisandro Nicolas Kaunitz and Juan Esteban Kamienkowski and Emanuele Olivetti and Brian Murphy and Paolo Avesani and David Paul Melcher", Title = "Intercepting the first pass: rapid categorization is suppressed for unseen stimuli", Journal = "Frontiers in Perception Science", Volume = "2", Pages = "198", url = "http://www.frontiersin.org/perception_science/10.3389/fpsyg.2011.00198/full", year = 2011, doi = "10.3389/fpsyg.2011.00198", pymvpa-keywords = "pymvpa, eeg" } @inproceedings{XLR2012, author = {Hao Xu and Alexander Lorbert and Peter J. Ramadge and J. Swaroop Guntupalli and James V. Haxby}, title = {Regularized hyperalignment of multi-set {fMRI} data}, year = 2012, booktitle = {Proceedings of the 2012 IEEE Signal Processing Workshop}, address = {Ann Arbor Michigan} } @article{GMS+12, author = {Gorlin, Scott and Meng, Ming and Sharma, Jitendra and Sugihara, Hiroki and Sur, Mriganka and Sinha, Pawan}, title = {Imaging prior information in the brain}, volume = {109}, number = {20}, pages = {7935--7940}, year = {2012}, doi = {10.1073/pnas.1111224109}, URL = {http://www.pnas.org/content/109/20/7935.abstract}, journal = {Proceedings of the National Academy of Sciences} } @Article{ CGG+12, Author = "Andrew C. Connolly and J. Swaroop Guntupalli and Jason Gors and Michael Hanke and Yaroslav O. Halchenko and Yu-Chien Wu and Hervé Abdi and James V. Haxby", Title = "The Representation of Biological Classes in the Human Brain", Journal = "Journal of Neuroscience", Volume = "32", Pages = "2608--2618", url = "http://www.jneurosci.org/content/32/8/2608#aff-4", year = 2012, doi = "10.1523/JNEUROSCI.5547-11.2012", journal-impact = "6.908" } @Article{ CRK+11, Author = "Johan D. Carlin and James B. Rowe and Nikolaus Kriegeskorte and Russell Thompson and Andrew J. Calder", Title = "Direction-Sensitive Codes for Observed Head Turns in Human Superior Temporal Sulcus.", Journal = "Cerebral Cortex", Volume = "", Pages = "", url = "http://cercor.oxfordjournals.org/content/early/2011/06/27/cercor.bhr061.short", year = 2011, doi = "10.1093/cercor/bhr061", pymvpa-keywords = "pymvpa, fMRI, searchlight", journal-impact = "6.544" } @Article{ MRH11, title = "Dynamic Changes In The Medial Temporal Lobe During Incidental Learning Of Object–Location Associations", author = "Anna Manelis and Lynne M. Reder and Stephen José Hanson", journal = "Cerebral Cortex", year = "2011", journal-impact = "6.544", abstract = "The role of the medial temporal lobe (MTL) in associative memory encoding has been the focus of many memory experiments. However, there has been surprisingly little investigation of whether the contributions of different MTL subregions (amygdala, hippocampus [HPC], parahippocampal [PHc], perirhinal cortex [PRc], and temporal polar cortex [TPc]) shift across multiple presentations during associative encoding. We examined this issue using event-related functional magnetic resonance imaging and a multivoxel pattern classification analysis. Subjects performed a visual search task, becoming faster with practice to locate objects whose locations were held constant across trials. The classification analysis implicated right HPC and amygdala early in the task when the speed-up from trial to trial was greatest. The same analysis implicated right PRc and TPc late in learning when speed-up was minimal. These results suggest that associative encoding relies on complex patterns of neural activity in MTL that cannot be expressed by simple increases or decreases of blood oxygenation level—dependent signal during learning. Involvement of MTL subregions during encoding of object–location associations depends on the nature of the learning phase. Right HPC and amygdala support active integration of object and location information, while right PRc and TPc are involved when object and spatial representations become unitized into a single representation.", doi = "10.1093/cercor/bhr151", pymvpa-keywords = "pymvpa, fMRI" } @Comment{ This file is used to autogenerate doc/references.rst using tools/bib2rst_ref.py . Due to external dependency on pybliographer (which is discontinued project), automatic regeneration is not enabled, thus you are required to run make references to regenerate doc/references.rst if you modified this file. } @Article{ HGF+01, Author = "James V. Haxby and M. I. Gobbini and M. L. Furey and A. Ishai and J. L. Schouten and P. Pietrini", Title = "Distributed and overlapping representations of faces and objects in ventral temporal cortex.", Journal = "Science", Volume = "293", Pages = "2425–2430", year = 2001, doi = "10.1126/science.1063736", pymvpa-keywords = "split-correlation classifier" } @Article{ CPL+06, Author = "X. Chen and Francisco Pereira and W. Lee and Stephen Strother and Tom Mitchell", Title = "Exploring predictive and reproducible modeling with the single-subject {FIAC} dataset.", Journal = "Human Brain Mapping", Volume = "27", Pages = "452–461", url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?cmd=prlinks&dbfrom=pubmed&retmode=ref&id=16565951", year = 2006, doi = "10.1002/hbm.20243", pymvpa-keywords = "feature selection, feature selection stability", pymvpa-summary = "This paper illustrates the necessity to consider the stability or reproducibility of a classifier's feature selection as at least equally important to it's generalization performance." } @Article{ LSC+05, issn = "1053-8119", volume = "26", year = "2005", journal = "NeuroImage", title = "Support vector machines for temporal classification of block design fMRI data.", pages = "317–329", affiliation = "Biomedical Engineering, Georgia Institute of Technology, Emory University, Atlanta, 30322, USA.", author = "Stephen LaConte and Stephen Strother and Vladimir Cherkassky and Jon Anderson and Xiaoping Hu", doi = "10.1016/j.neuroimage.2005.01.048", pymvpa-summary = "Comprehensive evaluation of preprocessing options with respect to SVM-classifier (and others) performance on block-design fMRI data.", pymvpa-keywords = "SVM" } @Article{ KGB06, issn = "0027-8424", volume = "103", year = "2006", journal = "Proceedings of the National Academy of Sciences of the USA", title = "Information-based functional brain mapping.", pages = "3863–3868", author = "Nikolaus Kriegeskorte and Rainer Goebel and Peter A. Bandettini", doi = "10.1073/pnas.0600244103", pymvpa-keywords = "searchlight", pymvpa-summary = "Paper introducing the searchlight algorithm.", affiliation = "Section on Functional Imaging Methods, Laboratory of Brain and Cognition, National Institute of Mental Health, Building 10, Room 1D80B, 10 Center Drive MSC 1148, Bethesda, MD 20892-1148, USA. niko@nih.gov" } @Article{ KWO11, issn = "0956-7976", volume = "in press", year = "2011", journal = "Psychological Science", title = "Emergence of perceptual gestalts in the human visual cortex: The case of the configural superiority effect", author = "Jonas Kubilius and Johan Wagemans and Hans {Op de Beeck}", doi = "10.1177/0956797611417000", pymvpa-keywords = "pymvpa, fMRI", journal-impact = "4.431" } @Article{ HR06, issn = "1471-003X", volume = "7", year = "2006", journal = "Nature Reviews Neuroscience", title = "Decoding mental states from brain activity in humans.", pages = "523–534", author = "John-Dylan Haynes and Geraint Rees", doi = "10.1038/nrn1931", pymvpa-summary = "Review of decoding studies, emphasizing the importance of ethical issues concerning the privacy of personal thought." } @Book{ Vap95, title = "The Nature of Statistical Learning Theory", author = "Vladimir Vapnik", publisher = "Springer", address = "New York", isbn = "0-387-94559-8", year = "1995", pymvpa-keywords = "support vector machine, SVM" } @Article{ KCF+05, Author = "B. Krishnapuram and L. Carin and M. A. Figueiredo and A. J. Hartemink", Title = "Sparse multinomial logistic regression: fast algorithms and generalization bounds.", Journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", Volume = "27", Pages = "957–968", url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?cmd=prlinks&dbfrom=pubmed&retmode=ref&id=15943426", year = 2005, pymvpa-keywords = "sparse multinomial logistic regression, SMLR", doi = "10.1109/TPAMI.2005.127" } @Article{ EHJ+04, title = "Least Angle Regression", author = "Bradley Efron and Hastie. Trevor and Iain Johnstone and Robert Tibshirani", journal = "Annals of Statistics", pages = "407–499", volume = "32", year = "2004", doi = "10.1214/009053604000000067", pymvpa-keywords = "least angle regression, LARS" } @Article{ HH08, issn = "0899-7667", volume = "20", year = "2008", journal = "Neural Computation", title = "Brain reading using full brain support vector machines for object recognition: there is no ``face'' identification area.", pages = "486–503", author = "Stephen José Hanson and Yaroslav O. Halchenko", doi = "10.1162/neco.2007.09-06-340", pymvpa-keywords = "support vector machine, SVM, feature selection, recursive feature elimination, RFE", affiliation = "Rutgers Mind/Brain Analysis Laboratories, Psychology Department, Rutgers University, Newark, NJ 07102, U.S.A. jose@tractatus.rutgers.edu." } @Article{ NPD+06, issn = "1364-6613", volume = "10", year = "2006", journal = "Trends in Cognitive Science", title = "Beyond mind-reading: multi-voxel pattern analysis of fMRI data.", pages = "424–430", author = "Kenneth A. Norman and Sean M. Polyn and Greg J. Detre and James V. Haxby", doi = "10.1016/j.tics.2006.07.005" } @Article{ Dem06, author = "Janez DemÅ¡ar", title = "Statistical Comparisons of Classifiers over Multiple Data Sets", journal = "Journal of Machine Learning Research", volume = "7", year = "2006", issn = "1533-7928", pages = "1–30", publisher = "MIT Press", address = "Cambridge, MA, USA", url = "http://portal.acm.org/citation.cfm?id=1248548", pymvpa-summary = "This is a review of several classifier benchmark procedures." } @Article{ NH02, issn = "1065-9471", volume = "15", number = "1", year = "2002", Journal = "Human Brain Mapping", title = "Nonparametric permutation tests for functional neuroimaging: a primer with examples.", pages = "1–25", author = "Thomas E Nichols and Andrew P Holmes", doi = "10.1002/hbm.1058", affiliation = "Department of Biostatistics, University of Michigan, Ann Arbor, Michigan, USA.", pymvpa-summary = "Overview of standard nonparametric randomization and permutation testing applied to neuroimaging data (e.g. fMRI)" } @Article{ SMM+08, volume = "172", number = "1", year = "2008", journal = "Journal of Neuroscience Methods", title = "The impact of functional connectivity changes on support vector machines mapping of fMRI data.", pages = "94–104", doi = "10.1016/j.jneumeth.2008.04.008", author = "João Ricardo Sato and Janaina Mourão-Miranda and Maria da Graça {Morais Martin} and Edson Amaro and Pedro Alberto Morettin and Michael John Brammer", pymvpa-summary = "Discussion of possible scenarios where univariate and multivariate (SVM) sensitivity maps derived from the same dataset could differ. Including the case were univariate methods would assign a substantially larger score to some features.", pymvpa-keywords = "support vector machine, SVM, sensitivity" } @Article{ WCW+07, issn = "1053-8119", volume = "36", number = "4", year = "2007", journal = "NeuroImage", title = "Support vector machine learning-based fMRI data group analysis.", pages = "1139–51", author = "Ze Wang and Anna R. Childress and Jiongjiong Wang and John A. Detre", doi = "10.1016/j.neuroimage.2007.03.072", pymvpa-keywords = "support vector machine, SVM, group analysis" } @Article{ OJA+05, title = "Partially Distributed Representations of Objects and Faces in Ventral Temporal Cortex ", author = "A. J. O'Toole and F. Jiang and H. Abdi and James V. Haxby", journal = "Journal of Cognitive Neuroscience", pages = "580–590", volume = "17", year = "2005", doi = "10.1162/0898929053467550" } @Article{ OJA+07, Author = "A. J. O'Toole and F. Jiang and H. Abdi and N. Penard and J. P. Dunlop and M. A. Parent", Title = "Theoretical, statistical, and practical perspectives on pattern-based classification approaches to the analysis of functional neuroimaging data.", Journal = "Journal of Cognitive Neuroscience", Volume = "19", Pages = "1735–1752", doi = "10.1162/jocn.2007.19.11.1735", year = 2007 } @Article{ GE03, author = "I. Guyon and A. Elisseeff", title = "An Introduction to Variable and Feature Selection", volume = "3", year = "2003", pages = "1157–1182", journal = "Journal of Machine Learning", url = "http://www.jmlr.org/papers/v3/guyon03a.html" } @Article{ HMH04, Author = "Stephen José Hanson and T. Matsuka and James V. Haxby", Title = "Combinatorial codes in ventral temporal lobe for object recognition: {H}axby (2001) revisited: is there a ``face'' area?", Journal = "NeuroImage", Volume = "23", Pages = "156–166", year = 2004, doi = "10.1016/j.neuroimage.2004.05.020" } @Article{ ZH05, title = "Regularization and variable selection via the elastic net", author = "H. Zou and Trevor Hastie", journal = "Journal of the Royal Statistical Society Series B", volume = "67", number = "2", pages = "301–320", year = "2005", publisher = "Blackwell Synergy", pymvpa-keywords = "feature selection, statistical learning", url = "http://www-stat.stanford.edu/%7Ehastie/Papers/B67.2%20(2005)%20301-320%20Zou%20%26%20Hastie.pdf" } @Article{ MHN+04, title = "Learning to Decode Cognitive States from Brain Images", author = "Tom Mitchell and Rebecca Hutchinson and Radu S. Niculescu and Francisco Pereira and Xuerui Wang and Marcel Just and Sharlene Newman", doi = "10.1023/B:MACH.0000035475.85309.1b", journal = "Machine Learning", volume = "57", pages = "145–175", year = "2004" } @Article{ PP07, issn = "1047-3211", volume = "17", year = "2007", journal = "Cerebral Cortex", title = "Decoding near-threshold perception of fear from distributed single-trial brain activation.", pages = "691–701", author = "Luiz Pessoa and Srikanth Padmala", pymvpa-summary = "Analysis of slow event-related fMRI data using patter classification techniques.", doi = "10.1093/cercor/bhk020" } @Article{ KT05, issn = "1097-6256", volume = "8", year = "2005", journal = "Nature Neuroscience", title = "Decoding the visual and subjective contents of the human brain.", pages = "679–685", author = "Yukiyasu Kamitani and Frank Tong", pymvpa-summary = "One of the two studies showing the possibility to read out orientation information from visual cortex.", doi = "10.1038/nn1444" } @Manual{ HHS+latest, title = "The PyMVPA Manual", author = "Michael Hanke and Yaroslav O. Halchenko and Per B. Sederberg and James M. Hughes", address = "Available online at http://www.pymvpa.org/PyMVPA-Manual.pdf" } @Article{ HHS+09a, title = "PyMVPA: A Python toolbox for multivariate pattern analysis of fMRI data", author = "Michael Hanke and Yaroslav O. Halchenko and Per B. Sederberg and Stephen José Hanson and James V. Haxby and Stefan Pollmann", journal = "Neuroinformatics", year = "2009", pymvpa-summary = "Introduction into the analysis of fMRI data using PyMVPA.", pages = "37–53", volume = "7", doi = "10.1007/s12021-008-9041-y", pymvpa-keywords = "PyMVPA, fMRI", journal-impact = "3.054" } @Article{ PMB09, title = "Machine learning classifiers and f{MRI}: {A} tutorial overview", author = "Francisco Pereira and Tom Mitchell and Matthew Botvinick", journal = "NeuroImage", year = "2009", doi = "10.1016/j.neuroimage.2008.11.007", url = "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2892746/", pages = "199–209", volume = "45", pymvpa-keywords = "pymvpa-reference" } @Article{ HHS+09b, issn = "1662-5196", volume = "3", year = "2009", journal = "Frontiers in Neuroinformatics", title = "PyMVPA: A Unifying Approach to the Analysis of Neuroscientific Data.", pages = "3", author = "Michael Hanke and Yaroslav O. Halchenko and Per B. Sederberg and Emanuele Olivetti and Ingo Fründ and Jochem W. Rieger and Christoph S. Herrmann and James V. Haxby and Stephen José Hanson and Stefan Pollmann", doi = "10.3389/neuro.11.003.2009", pymvpa-keywords = "PyMVPA, fMRI, EEG, MEG, extracellular recordings", pymvpa-summary = "Demonstration of PyMVPA capabilities concerning multi-modal or modality-agnostic data analysis." } @Article{ MBK09, year = "2009", journal = "Social Cognitive and Affective Neuroscience", title = "Revealing representational content with pattern-information fMRI–an introductory guide.", author = "Marieke Mur and Peter A. Bandettini and Nikolaus Kriegeskorte", doi = "10.1093/scan/nsn044", pymvpa-keywords = "pymvpa-reference" } @Article{ JL09, title = "OMPC: an open-source MATLAB-to-Python compiler.", author = "Peter Jurica and Cees {van Leeuwen}", journal = "Frontiers in Neuroinformatics", pages = "5", volume = "3", year = "2009", doi = "10.3389/neuro.11.005.2009" } @Article{ KFS+09, title = "Center-surround patterns emerge as optimal predictors for human saccade targets", author = "Wolf Kienzle and Matthias O. Franz and Bernhard Schölkopf and Felix A. Wichmann", journal = "Journal of Vision", year = "In press", pymvpa-summary = "This paper offers an approach to make sense out of feature sensitivities of non-linear classifiers." } @Article{ KMB08, volume = "2", year = "2008", journal = "Frontiers in Systems Neuroscience", title = "Representational similarity analysis - connecting the branches of systems neuroscience.", pages = "4", author = "Nikolaus Kriegeskorte and Marieke Mur and Peter A. Bandettini", doi = "10.3389/neuro.06.004.2008" } @Article{ SET+09, title = "Elucidating an MRI-Based Neuroanatomic Biomarker for Psychosis: Classification Analysis Using Probabilistic Brain Atlas and Machine Learning Algorithms", author = "Daqiang Sun and Theo G.M. {van Erp} and Paul M. Thompson and Carrie E. Bearden and Melita Daley and Leila Kushan and Molly E. Hardt and Keith H. Nuechterlein and Arthur W. Toga and Tyrone D. Cannon", journal = "Biological Psychiatry", pages = "1055–1060", volume = "66", year = "2009", doi = "10.1016/j.biopsych.2009.07.019", pymvpa-summary = "First published study employing PyMVPA for MRI-based analysis of Psychosis.", pymvpa-keywords = "pymvpa, psychosis, MRI", journal-impact = "8.926" } @Article{ JSW09, title = "Does Cognitive Science Need Kernels?", volume = "13", url = "http://www.sciencedirect.com/science/article/B6VH9-4X4R9BC-1/2/e2e90008d0a8887878c72777462335fd", author = "Frank Jäkel and Bernhard Schölkopf and Felix A. Wichmann", journal = "Trends in Cognitive Sciences", pages = "381–388", year = "2009", doi = "10.1016/j.tics.2009.06.002", pymvpa-keywords = "kernel methods, similarity", pymvpa-summary = "A summary of the relationship of machine learning and cognitive science. Moreover it also points out the role of kernel-based methods in this context." } @Article{ Ioa05, issn = "1549-1676", volume = "2", number = "8", year = "2005", month = "Aug", journal = "PLoS Med", title = "Why most published research findings are false.", pages = "e124", author = "John P A Ioannidis", doi = "10.1371/journal.pmed.0020124", pymvpa-keywords = "hypothesis testing", pymvpa-summary = "Simulation study speculating that it is more likely for a research claim to be false than true. Along the way the paper highlights aspects to keep in mind while assessing the 'scientific significance' of any given study, such as, viability, reproducibility, and results." } @Article{ HHH+10, title = "Statistical learning analysis in neuroscience: aiming for transparency.", author = "Michael Hanke and Yaroslav O. Halchenko and James V. Haxby and Stefan Pollmann", journal = "Frontiers in Neuroscience", pages = "38–43", volume = "4", year = "2010", doi = "10.3389/neuro.01.007.2010", pymvpa-summary = "Focused review article emphasizing the role of transparency to facilitate adoption and evaluation of statistical learning techniques in neuroimaging research." } @Article{ MHH10, title = "Implicit memory for object locations depends on reactivation of encoding-related brain regions", author = "Anna Manelis and Catherine Hanson and Stephen José Hanson", journal = "Human Brain Mapping", year = "2010", doi = "10.1002/hbm.20992", pymvpa-keywords = "pymvpa, implicit memory, fMRI", journal-impact = "5.107" } @Book{ HTF09, title = "The Elements of Statistical Learning: Data Mining, Inference, and Prediction", author = "Trevor Hastie and Robert Tibshirani and Jerome H. Friedman", publisher = "Springer", address = "New York", edition = "2", year = "2009", isbn = "978-0-387-84857-0", url = "http://web.stanford.edu/\%7Ehastie/ElemStatLearn/", doi = "10.1007/b94608", pymvpa-summary = "Excellent summary of virtually all techniques relevant to the field. A free PDF version of this book is available from the authors' website at http://web.stanford.edu/\%7Ehastie/ElemStatLearn/" } @Article{ LBB+98, title = "Gradient-based learning applied to document recognition", author = "Y. Lecun and L. Bottou and Y. Bengio and P. Haffner", journal = "Proceedings of the IEEE", pages = "2278–2324", volume = "86", number = "11", month = "Nov", year = 1998, issn = "0018-9219", doi = "10.1109/5.726791", pymvpa-keywords = "handwritten character recognition, multilayer neural networks, MNIST, statistical learning", pymvpa-summary = "Paper introducing Modified NIST (MNIST) dataset for performance comparisons of character recognition performance across a variety of classifiers." } @Article{ Coh94, title = "The earth is round (p< 0.05)", author = "J. Cohen", journal = "American Psychologist", pages = "997–1003", volume = "49", number = "12", year = "1994", url = "http://www.citeulike.org/user/mdreid/article/2643653", pymvpa-keywords = "hypothesis testing", pymvpa-summary = "Classical critic of null hypothesis significance testing" } @Article{ Wri09, title = "Ten Statisticians and Their Impacts for Psychologists", author = "D.B. Wright", journal = "Perspectives on Psychological Science", pages = "587–597", volume = "4", number = "6", year = "2009", doi = "10.1111/j.1745-6924.2009.01167.x", pymvpa-keywords = "statistics, hypothesis testing", pymvpa-summary = "Historical excurse into the life of 10 prominent statisticians of XXth century and their scientific contributions." } @Book{ Fis25, title = "Statistical methods for research workers", author = "Ronald A. Fisher", year = "1925", publisher = "Oliver and Boyd", address = "Edinburgh", url = "http://psychclassics.yorku.ca/Fisher/Methods/", pymvpa-keywords = "statistics, hypothesis testing", pymvpa-summary = "One of the 20th century's most influential books on statistical methods, which coined the term 'Test of significance'." } @Article{ MKE10, title = "Predicting visual stimuli based on activity in auditory cortices.", author = "Kaspar Meyer and Jonas T. Kaplan and Ryan Essex and Cecelia Webber and Hanna Damasio and Antonio Damasio", journal = "Nature Neuroscience", year = "2010", doi = "10.1038/nn.2533", journal-impact = "14.191" } @Article{ VS06, title = "Bias in error estimation when using cross-validation for model selection", author = "Sudhir Varma and Richard Simon", journal = "BMC Bioinformatics", pages = "91", volume = "7", year = "2006", issn = "1471-2105", abstract = {BACKGROUND: Cross-validation (CV) is an effective method for estimating the prediction error of a classifier. Some recent articles have proposed methods for optimizing classifiers by choosing classifier parameter values that minimize the CV error estimate. We have evaluated the validity of using the CV error estimate of the optimized classifier as an estimate of the true error expected on independent data. RESULTS: We used CV to optimize the classification parameters for two kinds of classifiers; Shrunken Centroids and Support Vector Machines (SVM). Random training datasets were created, with no difference in the distribution of the features between the two classes. Using these "null" datasets, we selected classifier parameter values that minimized the CV error estimate. 10-fold CV was used for Shrunken Centroids while Leave-One-Out-CV (LOOCV) was used for the SVM. Independent test data was created to estimate the true error. With "null" and "non null" (with differential expression between the classes) data, we also tested a nested CV procedure, where an inner CV loop is used to perform the tuning of the parameters while an outer CV is used to compute an estimate of the error. The CV error estimate for the classifier with the optimal parameters was found to be a substantially biased estimate of the true error that the classifier would incur on independent data. Even though there is no real difference between the two classes for the "null" datasets, the CV error estimate for the Shrunken Centroid with the optimal parameters was less than 30\% on 18.5\% of simulated training data-sets. For SVM with optimal parameters the estimated error rate was less than 30\% on 38\% of "null" data-sets. Performance of the optimized classifiers on the independent test set was no better than chance. The nested CV procedure reduces the bias considerably and gives an estimate of the error that is very close to that obtained on the independent testing set for both Shrunken Centroids and SVM classifiers for "null" and "non-null" data distributions. CONCLUSION: We show that using CV to compute an error estimate for a classifier that has itself been tuned using CV gives a significantly biased estimate of the true error. Proper use of CV for estimating true error of a classifier developed using a well defined algorithm requires that all steps of the algorithm, including classifier parameter tuning, be repeated in each CV loop. A nested CV procedure provides an almost unbiased estimate of the true error.}, url = "http://www.ncbi.nlm.nih.gov/pubmed/16504092", doi = "10.1186/1471-2105-7-91", affiliation = "Biometric Research Branch, National Cancer Institute, Bethesda, MD, USA. varmas@mail.nih.gov", pymvpa-keywords = "statistical learning, model selection, error estimation, hypothesis testing", pymvpa-summary = "Demonstration of overfitting and introducing the bias in the error estimation using cross-validation on entire dataset for performing model selection." } @Book{ SS01, title = "{Learning with Kernels: Support Vector Machines, Regularization}", author = "B. Scholkopf and A.J. Smola", publisher = "MIT Press", address = "Cambridge, MA", journal = "Optimization, and Beyond.", pages = "2", edition = "1", month = "December", year = "2001", isbn = "0-262-19475-9", pymvpa-keywords = "statistical learning, kernel methods, error estimation", pymvpa-summary = "Good coverage of kernel methods and associated statistical learning aspects (e.g. error bounds)" } @Article{ SS09, title = "Python in Neuroscience", author = "Martin Spacek and Nicholas Swindale", journal = "The Neuromorphic Engineer", year = "2009", doi = "10.2417/1200907.1682", pymvpa-keywords = "pymvpa-reference" } @Article{ GF09, url = "http://www.ncbi.nlm.nih.gov/pubmed/19521545", volume = "3", year = "2009", journal = "Front Neuroinformatics", title = "OpenElectrophy: An Electrophysiological Data- and Analysis-Sharing Framework.", pages = "14", author = "Samuel Garcia and Nicolas Fourcaud-Trocmé", doi = "10.3389/neuro.11.014.2009", pymvpa-keywords = "pymvpa-reference" } @Article{ Ban09, title = "Seven topics in functional magnetic resonance imaging.", author = "Peter A Bandettini", journal = "Journal of Integrative Neuroscience", pages = "371–403", volume = "8", year = "2009", url = "http://www.ncbi.nlm.nih.gov/pubmed/19938211", pymvpa-keywords = "pymvpa-reference" } @InProceedings{ TRL09, title = "Development of an autonomous robot for ground penetrating radar surveys of polar ice", booktitle = "The 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)", author = "Eric Trautmann and Laura Ray and Jim Lever", pages = "1685–1690 ", year = "2009", doi = "10.1109/IROS.2009.5354290", pymvpa-summary = "Study using PyMVPA to perform immobilization detection to improve navigation reliability of an autonomous robot." } @InProceedings{ OVG+10, title = "Brain Connectivity Analysis by Reduction to Pair Classification", booktitle = "The 2nd IAPR International Workshop on Cognitive Information Processing", author = "Emanuele Olivetti and Sriharsha Veeramachaneni and Susanne Greiner and Paolo Avesani", year = "2010" } @Article{ MBL+10, title = "Resting developments: a review of fMRI post-processing methodologies for spontaneous brain activity.", author = "Daniel S Margulies and Joachim Böttger and Xiangyu Long and Yating Lv and Clare Kelly and Alexander Schäfer and Dirk Goldhahn and Alexander Abbushi and Michael P Milham and Gabriele Lohmann and Arno Villringer", journal = "Magnetic Resonance Materials in Physics, Biology and Medicine", pages = "289–307", volume = "23", year = "2010", url = "http://www.ncbi.nlm.nih.gov/pubmed/20972883", doi = "10.1007/s10334-010-0228-5", pymvpa-keywords = "pymvpa-reference" } @InProceedings{ LB10, title = "An Application of Pattern Matching for the Adjustment of Quality of Service Metrics", booktitle = "The International Conference on Emerging Network Intelligence", author = "D. Legge and A. Badii", volume = "2", year = "2010", pymvpa-keywords = "pymvpa-reference" } @Article{ WTB+10, title = "Multi-voxel coding of stimuli, rules, and responses in human frontoparietal cortex.", author = "Alexandra Woolgar and Russell Thompson and Daniel Bor and John Duncan", journal = "NeuroImage", year = "2010", url = "http://www.ncbi.nlm.nih.gov/pubmed/20406690", doi = "10.1016/j.neuroimage.2010.04.035", journal-impact = "5.937" } @Article{ LaC10, title = "Decoding fMRI brain states in real-time.", author = "Stephen M Laconte", journal = "NeuroImage", year = "2010", url = "http://www.ncbi.nlm.nih.gov/pubmed/20600972", doi = "10.1016/j.neuroimage.2010.06.052", pymvpa-keywords = "pymvpa-reference" } @Article{ Shi10, title = "Perspectives on Modeling in Cognitive Science", author = "R.M. Shiffrin", publisher = "Wiley Online Library", journal = "Topics in Cognitive Science", pages = "736–750", volume = "2", year = "2010", doi = "10.1111/j.1756-8765.2010.01092.x", pymvpa-keywords = "pymvpa-reference" } @Article{ CAS+10, url = "http://www.ncbi.nlm.nih.gov/pubmed/20661296", volume = "4:47", year = "2010", journal = "Frontiers in Human Neuroscience", title = "Decoding developmental differences and individual variability in response inhibition through predictive analyses across individuals.", author = "Jessica R Cohen and Robert F Asarnow and Fred W Sabb and Robert M Bilder and Susan Y Bookheimer and Barbara J Knowlton and Russell A Poldrack", doi = "10.3389/fnhum.2010.00047", journal-impact = "2.906" } @Article{ HGC+11, title = "A Common, High-Dimensional Model of the Representational Space in Human Ventral Temporal Cortex", author = "James V. Haxby and J. Swaroop Guntupalli and Andrew C. Connolly and Yaroslav O. Halchenko and Bryan R. Conroy and M. Ida Gobbini and Michael Hanke and Peter J. Ramadge", publisher = "Cell Press,", journal = "Neuron", pages = "404–416", volume = "72", number = "2", month = "Oct", year = "2011", issn = "0896-6273", doi = "10.1016/j.neuron.2011.08.026", url = "http://www.cell.com/neuron/abstract/S0896-6273%2811%2900781-1", journal-impact = "14.736", pymvpa-keywords = "pymvpa, hyperalignment" } @InProceedings{ GWC10, title = "Scribe Identification in Medieval English Manuscripts", booktitle = " Proceedings of the International Conference on Pattern Recognition", author = "Tara Gilliam and Richard C. Wilson and John A. Clark", year = "2010", url = "ftp://ftp.computer.org/press/outgoing/proceedings/juan/icpr10b/data/4109b880.pdf" } @Article{ CSM+10, url = "http://www.ncbi.nlm.nih.gov/pubmed/20347995", year = "2010", journal = "NeuroImage", title = "Within- and cross-participant classifiers reveal different neural coding of information.", author = "John A Clithero and David V Smith and R McKell Carter and Scott A Huettel", doi = "10.1016/j.neuroimage.2010.03.057", journal-impact = "5.937" } @Article{ MKE+11, title = "Seeing Touch Is Correlated with Content-Specific Activity in Primary Somatosensory Cortex", author = "Kaspar Meyer and Jonas T Kaplan and Ryan Essex and Hanna Damasio and Antonio Damasio", journal = "Cerebral Cortex", year = "2011", url = "http://www.ncbi.nlm.nih.gov/pubmed/21330469", doi = "10.1093/cercor/bhq289", journal-impact = "6.544" } @Article{ SSS+11, title = "The integration of negative affect, pain and cognitive control in the cingulate cortex", author = "Alexander J Shackman and Tim V Salomons and Heleen A Slagter and Andrew S Fox and Jameel J Winter and Richard J Davidson", journal = "Nature Reviews Neuroscience", pages = "154–167", volume = "12", year = "2011", url = "http://www.ncbi.nlm.nih.gov/pubmed/21331082", doi = "10.1038/nrn2994", pymvpa-keywords = "pymvpa-reference" } @Article{ PSR11, issn = "1664-1078", volume = "2", year = "2011", journal = "Front Psychol", title = "Single-trial analyses: why bother?", pages = "322", author = "Cyril R Pernet and Paul Sajda and Guillaume A Rousselet", doi = "10.3389/fpsyg.2011.00322", affiliation = "Brain Research Imaging Centre, SINAPSE Collaboration, University of Edinburgh Edinburgh, UK.", pymvpa-keywords = "pymvpa-reference" } @Article{ JP11, title = "Analyses of regional-average activation and multivoxel pattern information tell complementary stories", author = "K. Jimura and R.A. Poldrack", publisher = "Elsevier", journal = "Neuropsychologia", year = "2011", doi = "10.1016/j.neuropsychologia.2011.11.007", journal-impact = "3.636" } @Article{ CCK+11, issn = "1879-0445", volume = "21", number = "21", year = "2011", month = "nov", journal = "Curr Biol", title = "A head view-invariant representation of gaze direction in anterior superior temporal sulcus", pages = "1817–21", author = "Johan D Carlin and Andrew J Calder and Nikolaus Kriegeskorte and Hamed Nili and James B Rowe", doi = "10.1016/j.cub.2011.09.025", affiliation = "Medical Research Council Cognition and Brain Sciences Unit, 15 Chaucer Road, Cambridge CB2 7EF, UK.", journal-impact = "9.647" } @Article{ RC12, title = "What makes different people's representations alike: neural similarity-space solves the problem of across-subject f{MRI} decoding", author = "Rajeev D.S. Raizada and Andrew C. Connolly", journal = "Journal of Cognitive Neuroscience", year = "2012", volume = "24", pages = "868--877", url = "http://raizadalab.org/publications.html", journal-impact = "4.493" } @article{ OWD+11, author = {Oosterhof, Nikolaas N and Wiestler, Tobias and Downing, Paul E and Diedrichsen, Jörn}, title = {A comparison of volume-based and surface-based multi-voxel pattern analysis.}, journal = {NeuroImage}, year = {2011}, volume = {56}, number = {2}, pages = {593--600}, } @inproceedings{ OGA2012, year = {2012}, isbn = {978-3-642-34712-2}, booktitle = {Machine Learning and Interpretation in Neuroimaging}, volume = {7263}, series = {Lecture Notes in Computer Science}, editor = {Langs, Georg and Rish, Irina and Grosse-Wentrup, Moritz and Murphy, Brian}, doi = {10.1007/978-3-642-34713-9_6}, title = {Induction in Neuroscience with Classification: Issues and Solutions}, publisher = {Springer Berlin Heidelberg}, author = {Olivetti, Emanuele and Greiner, Susanne and Avesani, Paolo}, pages = {42-50} } @article{PVG+11, author = {Pedregosa, Fabian and Varoquaux, Gael and Gramfort, Alexandre and Michel, Vincent and Thirion, Bertrand and Grisel, Olivier and Blondel, Mathieu and Prettenhofer, Peter and Weiss, Ron and Dubourg, Vincent and Vanderplas, Jake and Passos, Alexandre and Cournapeau, David and Brucher, Matthieu and Perrot, Matthieu and Duchesnay, Edouard}, title = {Scikit-learn: Machine Learning in Python}, journal = {Journal of Machine Learning Research}, volume = {12}, year = {2011}, pages = {2825--2830}, url = {http://dl.acm.org/citation.cfm?id=1953048.2078195}, pymvpa-keywords = "pymvpa-reference" } @article{PB11, title={Information mapping with pattern classifiers: a comparative study}, author={Pereira, Francisco and Botvinick, Matthew}, journal={Neuroimage}, volume={56}, pages={476--496}, year={2011}, doi ={10.1016/j.neuroimage.2010.05.026}, pymvpa-keywords = "pymvpa-reference" } @article{VCL11, title = "Ubiquity and Specificity of Reinforcement Signals throughout the Human Brain ", journal = "Neuron ", volume = "72", pages = "166--177", year = "2011", doi = "http://dx.doi.org/10.1016/j.neuron.2011.08.011", url = "http://www.sciencedirect.com/science/article/pii/S089662731100732X", author = "Timothy J. Vickery and Marvin M. Chun and Daeyeol Lee", journal-impact = "14.736" } @article{HS11, title={High-resolution imaging of the fusiform face area (FFA) using multivariate non-linear classifiers shows diagnosticity for non-face categories}, author={Hanson, Stephen José and Schmidt, Arielle}, journal={NeuroImage}, volume={54}, pages={1715--1734}, year={2011}, doi = {10.1016/j.neuroimage.2010.08.02}, pymvpa-keywords = "pymvpa-reference" } @article{HRB+11, title={Predicting decisions in human social interactions using real-time fMRI and pattern classification}, author={Hollmann, Maurice and Rieger, Jochem W and Baecke, Sebastian and Lützkendorf, Ralf and Müller, Charles and Adolf, Daniela and Bernarding, Johannes}, journal={PloS one}, volume={6}, pages={e25304}, year={2011}, doi = {10.1371/journal.pone.0025304}, pymvpa-keywords = "pymvpa-reference" } @article{EDT+12, title={Predicting errors from reconfiguration patterns in human brain networks}, author={Ekman, Matthias and Derrfuss, Jan and Tittgemeyer, Marc and Fiebach, Christian J}, journal={Proceedings of the National Academy of Sciences}, volume={109}, pages={16714--16719}, year={2012}, doi = {10.1073/pnas.1207523109}, journal-impact = {9.737} } @article{CEZ+11, title={Rapid transfer of abstract rules to novel contexts in human lateral prefrontal cortex}, author={Cole, Michael W and Etzel, Joset A and Zacks, Jeffrey M and Schneider, Walter and Braver, Todd S}, journal={Frontiers in Human Neuroscience}, volume={5}, year={2011}, doi = {10.3389/fnhum.2011.00142}, journal-impact = {2.906} } @article{MSB+12, title={Perception of words and pitch patterns in song and speech}, author={Merrill, Julia and Sammler, Daniela and Bangert, Marc and Goldhahn, Dirk and Lohmann, Gabriele and Turner, Robert and Friederici, Angela D}, journal={Frontiers in psychology}, volume={3}, pages = {76}, year={2012}, doi = {10.3389/fpsyg.2012.000} } @article{ST12, title={Statistical inference and multiple testing correction in classification-based multi-voxel pattern analysis (MVPA): Random permutations and cluster size control}, author={Stelzer, Johannes and Chen, Yi and Turner, Robert}, journal={NeuroImage}, volume = {65}, pages = {69--82}, year={2012}, doi = {10.1016/j.neuroimage.2012.09.063}, journal-impact = {6.252}, pymvpa-keywords = "pymvpa-reference" } @article{vdL+12, title={Appearance matters: neural correlates of food choice and packaging aesthetics}, author={Van der Laan, Laura N and De Ridder, Denise TD and Viergever, Max A and Smeets, Paul AM}, journal={PloS one}, volume={7}, number={7}, pages={e41738}, year={2012}, doi = {10.1371/journal.pone.0041738}, journal-impact = {3.730} } @article{AVM+12, title={mlpy: machine learning Python}, author={Albanese, Davide and Visintainer, Roberto and Merler, Stefano and Riccadonna, Samantha and Jurman, Giuseppe and Furlanello, Cesare}, journal={arXiv preprint arXiv:1202.6548}, year={2012}, pymvpa-keywords = "pymvpa-reference" } @article{CBR+12, title={A distinct role of the temporal-parietal junction in predicting socially guided decisions}, author={Carter, R McKell and Bowling, Daniel L and Reeck, Crystal and Huettel, Scott A}, journal={Science}, volume={337}, number={6090}, pages={109--111}, year={2012}, doi = {10.1126/science.1219681}, journal-impact = {31.027} } @article{KM12, title={Multivariate pattern analysis reveals common neural patterns across individuals during touch observation}, author={Kaplan, Jonas T and Meyer, Kaspar}, journal={Neuroimage}, volume={60}, pages={204--212}, year={2012}, doi={10.1016/j.neuroimage.2011.12.059}, journal-impact = {6.252} } @article{JK12, title={Improving robot manipulation with data-driven object-centric models of everyday forces}, author={Jain, Advait and Kemp, Charles C}, journal={Autonomous Robots}, pages={1--17}, year={2012}, doi={10.1007/s10514-013-9344-1}, url={http://www.hrl.gatech.edu/pdf/improve_everyday_forces.pdf} } @article{SRR+13, title={PRoNTo: Pattern Recognition for Neuroimaging Toolbox}, author={Schrouff, Jessica and Rosa, Maria Joao and Rondina, JM and Marquand, AF and Chu, Carlton and Ashburner, John and Phillips, Christophe and Richiardi, Jonas and Mourão-Miranda, Janaina}, journal={Neuroinformatics}, pages={1--19}, year={2013}, doi = {10.1007/s12021-013-9178-1}, pymvpa-keywords = "pymvpa-reference" } @article{KKD+12, title={Sight and sound converge to form modality-invariant representations in temporoparietal cortex}, author={Man, Kingson and Kaplan, Jonas T and Damasio, Antonio and Meyer, Kaspar}, journal={The Journal of Neuroscience}, volume={32}, number={47}, pages={16629--16636}, year={2012}, doi = {10.1523/JNEUROSCI.2342-12.2012} } @article{SFK+12, title={Interpersonal liking modulates motor-related neural regions}, author={Sobhani, Mona and Fox, Glenn R and Kaplan, Jonas and Aziz-Zadeh, Lisa}, journal={PloS one}, volume={7}, number={10}, pages={e46809}, year={2012}, doi = {10.1371/journal.pone.0046809}, journal-impact = {3.730} } @article{FWJ+12, title={Toward Fast Determination of Protein Stability Maps: Experimental and Theoretical Analysis of Mutants of a Nocardiopsis prasina Serine Protease}, author={Farrell, Damien and Webb, Helen and Johnston, Michael A and Poulsen, Thomas A and O’Meara, Fergal and Christensen, Lars LH and Beier, Lars and Borchert, Torben V and Nielsen, Jens Erik}, journal={Biochemistry}, volume={51}, number={26}, pages={5339--5347}, year={2012}, doi={10.1021/bi201926f}, journal-impact = {3.377} } @article{VCG12, title={On the geometric structure of fMRI searchlight-based information maps}, author={Viswanathan, Shivakumar and Cieslak, Matthew and Grafton, Scott T}, journal={arXiv preprint arXiv:1210.6317}, year={2012} } @article{LMH+13, title={Primary sensory cortices contain distinguishable spatial patterns of activity for each sense}, author={Liang, M and Mouraux, A and Hu, L and Iannetti, GD}, journal={Nature communications}, volume={4}, year={2013}, doi={10.1038/ncomms2979}, pymvpa-keywords = "pymvpa" } @article{AHL+13, title={Penalized Likelihood Phenotyping: Unifying Voxelwise Analyses and Multi-Voxel Pattern Analyses in Neuroimaging}, author={Adluru, Nagesh and Hanlon, Bret M and Lutz, Antoine and Lainhart, Janet E and Alexander, Andrew L and Davidson, Richard J}, journal={Neuroinformatics}, pages={1--21}, year={2013}, doi={10.1007/s12021-012-9175-9}, pymvpa-keywords = "pymvpa-reference" } @article{MRO13, title={Category-dependent and category-independent goal-value codes in human ventromedial prefrontal cortex}, author={McNamee, Daniel and Rangel, Antonio and O'Doherty, John P}, journal={Nature neuroscience}, volume={16}, number={4}, pages={479--485}, year={2013}, doi={10.1038/nn.3337}, pymvpa-keywords = "pymvpa" } @article{MK11, title={Cross-Modal Multivariate Pattern Analysis}, author={Meyer, Kaspar and Kaplan, Jonas T}, journal={Journal of visualized experiments: JoVE}, number={57}, year={2011}, doi={10.3791/3307}, pymvpa-keywords = "pymvpa-reference" } @article{SPB+13, title={Multivoxel Pattern Analysis Reveals Auditory Motion Information in MT+ of Both Congenitally Blind and Sighted Individuals}, author={Strnad, Lukas and Peelen, Marius V and Bedny, Marina and Caramazza, Alfonso}, journal={PloS one}, volume={8}, number={4}, pages={e63198}, year={2013}, doi={10.1371/journal.pone.0063198}, pymvpa-keywords = "pymvpa" } @article{ARV+13, title={7T fMRI reveals feasibility of covert visual attention-based brain--computer interfacing with signals obtained solely from cortical grey matter accessible by subdural surface electrodes}, author={Andersson, Patrik and Ramsey, Nick F and Viergever, Max A and Pluim, Josien PW}, journal={Clinical Neurophysiology}, year={2013}, pymvpa-keywords = "pymvpa" } @article{BHG+13, title={Evidence for feature binding in the superior parietal lobule}, author={Baumgartner, F. and Hanke, M. and Geringswald, F. and Zinke, W. and Speck, O. and Pollmann, S.}, journal={NeuroImage}, volume={68}, pages={173--180}, year={2013}, doi={10.1016/j.neuroimage.2012.12.002}, pymvpa-keywords = "pymvpa" } @article{LB13, title={Cortical representation of medial axis structure}, author={Lescroart, Mark D and Biederman, Irving}, journal={Cerebral Cortex}, volume={23}, number={3}, pages={629--637}, year={2013}, doi={10.1093/cercor/bhs046}, pymvpa-keywords = "pymvpa" } @article{SCR+13, title={Decoding the anatomical network of spatial attention}, author={Smith, David V and Clithero, John A and Rorden, Christopher and Karnath, Hans-Otto}, journal={Proceedings of the National Academy of Sciences}, volume={110}, number={4}, pages={1518--1523}, year={2013}, doi={10.1073/pnas.1210126110}, pymvpa-keywords = "pymvpa" } @article{HSN+13, title={Imagine all the people: How the brain creates and uses personality models to predict behavior}, author={Hassabis, Demis and Spreng, R Nathan and Rusu, Andrei A and Robbins, Clifford A and Mar, Raymond A and Schacter, Daniel L}, journal={Cerebral Cortex}, year={2013}, doi={10.1093/cercor/bht042}, pymvpa-keywords = "pymvpa" } @article{KFR+13, title={Pattern classification precedes region-average hemodynamic response in early visual cortex}, author={Kohler, Peter J and Fogelson, Sergey V and Reavis, Eric A and Meng, Ming and Guntupalli, J Swaroop and Hanke, Michael and Halchenko, Yaroslav O and Connolly, Andrew C and Haxby, James V and Tse, Peter U}, journal={NeuroImage}, year={2013}, volume={78}, pages={249--260}, doi={10.1016/j.neuroimage.2013.04.019}, pymvpa-keywords = "pymvpa" } @article{MR13, author = {Manelis, Anna and Reder, Lynne M.}, title = {He Who Is Well Prepared Has Half Won The Battle: An fMRI Study of Task Preparation}, year = {2013}, doi = {10.1093/cercor/bht262}, URL = {http://cercor.oxfordjournals.org/content/early/2013/10/02/cercor.bht262.abstract}, eprint = {http://cercor.oxfordjournals.org/content/early/2013/10/02/cercor.bht262.full.pdf+html}, journal = {Cerebral Cortex}, pymvpa-keywords = "pymvpa" } @article{ARV+13, title={7T fMRI reveals feasibility of covert visual attention-based brain–computer interfacing with signals obtained solely from cortical grey matter accessible by subdural surface electrodes}, author={Patrik Andersson and Nick F. Ramsey and Max A. Viergever and Josien P.W. Pluim}, journal={Clinical neurophysiology}, year={2013}, volume={124}, pages={2191--2197}, doi={10.1016/j.clinph.2013.05.009}, pymvpa-keywords = "pymvpa" } @article{HBI+14, title={A high-resolution 7-Tesla fMRI dataset from complex natural stimulation with an audio movie}, author={Michael Hanke and Florian J. Baumgartner and Pierre Ibe and Falko R. Kaule and Stefan Pollmann and Oliver Speck and Wolf Zinke and Jörg Stadler}, journal={Scientific Data}, year={in press}, URL = {http://www.studyforrest.org}, pymvpa-keywords = "pymvpa" } @article{HSC+14, author = {Helfinstein, Sarah M. and Schonberg, Tom and Congdon, Eliza and Karlsgodt, Katherine H. and Mumford, Jeanette A. and Sabb, Fred W. and Cannon, Tyrone D. and London, Edythe D. and Bilder, Robert M. and Poldrack, Russell A.}, title = {Predicting risky choices from brain activity patterns}, volume = {111}, pages = {2470--2475}, year = {2014}, doi = {10.1073/pnas.1321728111}, URL = {http://www.pnas.org/content/111/7/2470.abstract}, journal = {Proceedings of the National Academy of Sciences}, pymvpa-keywords = "pymvpa" } @article{REA+14, author = {Shirley-Ann Rueschemeyer and Matthias Ekman and Markus van Ackeren and James Kilner}, title = {Observing, Performing, and Understanding Actions: Revisiting the Role of Cortical Motor Areas in Processing of Action Words}, year = {2014}, doi = {10.1162/jocn_a_00576}, journal = {Journal of Cognitive Neuroscience}, pymvpa-keywords = "pymvpa" } @article{HCG14, title={Decoding neural representational spaces using multivariate pattern analysis}, author={Haxby, James V and Connolly, Andrew C and Guntupalli, J Swaroop}, journal={Annual review of neuroscience}, volume={37}, pages={435--456}, year={2014}, publisher={Annual Reviews}, pymvpa-keywords = "pymvpa-reference" } @article{GSD+15, title={Photometric Redshifts and Model Spectral Energy Distributions of Galaxies From the SDSS-III BOSS DR10 Data}, author={Greisel, N and Seitz, S and Drory, N and Bender, R and Saglia, RP and Snigula, J}, journal={arXiv preprint arXiv:1505.01157}, year={2015}, URL={http://arxiv.org/abs/1505.01157}, pymvpa-keywords = "pymvpa" } @article{McMLZ+15, title={Characterizing the Associative Content of Brain Structures Involved in Habitual and Goal-Directed Actions in Humans: A Multivariate f{MRI} Study}, author={McNamee, Daniel and Liljeholm, Mimi and Zika, Ondrej and O'Doherty, John P}, journal={The Journal of Neuroscience}, volume={35}, number={9}, pages={3764--3771}, year={2015}, DOI={10.1523/JNEUROSCI.4677-14.2015}, pymvpa-keywords = "pymvpa" } @article{SHA+14, title={The Animacy Continuum in the Human Ventral Vision Pathway}, author={Sha, Long and Haxby, James V and Abdi, Herve and Guntupalli, J Swaroop and Oosterhof, Nikolaas N and Halchenko, Yaroslav O and Connolly, Andrew C}, year={2014}, journal={Journal of Cognitive Neuroscience}, publisher={MIT Press}, doi={10.1162/jocn_a_00733}, pymvpa-keywords = "pymvpa" } @article{SDV+14, doi = {10.1093/cercor/bhu124}, url = {http://dx.doi.org/10.1093/cercor/bhu124}, year = {2014}, month = {jun}, publisher = {Oxford University Press ({OUP})}, author = {M. Schönwiesner and P. Dechent and D. Voit and C. I. Petkov and K. Krumbholz}, title = {Parcellation of Human and Monkey Core Auditory Cortex with {fMRI} Pattern Classification and Objective Detection of Tonotopic Gradient Reversals}, journal = {Cerebral Cortex}, pymvpa-keywords = "pymvpa" } @article{KZ14, doi = {10.1093/cercor/bhu003}, url = {http://dx.doi.org/10.1093/cercor/bhu003}, year = {2014}, month = {jan}, publisher = {Oxford University Press ({OUP})}, author = {M. E. Klein and R. J. Zatorre}, title = {Representations of Invariant Musical Categories Are Decodable by Pattern Analysis of Locally Distributed {BOLD} Responses in Superior Temporal and Intraparietal Sulci}, journal = {Cerebral Cortex}, pymvpa-keywords = "pymvpa" } @article{HS14, doi = {10.1002/hipo.22321}, url = {http://dx.doi.org/10.1002/hipo.22321}, year = {2014}, month = {jul}, publisher = {Wiley-Blackwell}, volume = {24}, number = {11}, pages = {1394--1403}, author = {Derek J. Huffman and Craig E.L. Stark}, title = {Multivariate pattern analysis of the human medial temporal lobe revealed representationally categorical cortex and representationally agnostic hippocampus}, journal = {Hippocampus}, pymvpa-keywords = "pymvpa" } @article{CIB15, doi = {10.1093/cercor/bhv072}, url = {http://dx.doi.org/10.1093/cercor/bhv072}, year = {2015}, month = {apr}, publisher = {Oxford University Press ({OUP})}, author = {M. W. Cole and T. Ito and T. S. Braver}, title = {The Behavioral Relevance of Task Information in Human Prefrontal Cortex}, journal = {Cerebral Cortex}, pymvpa-keywords = "pymvpa" } @article{ALR+14, doi = {10.1016/j.neuroimage.2013.09.048}, url = {http://dx.doi.org/10.1016/j.neuroimage.2013.09.048}, year = {2014}, month = {jan}, publisher = {Elsevier {BV}}, volume = {84}, pages = {698--711}, author = {Brian B. Avants and David J. Libon and Katya Rascovsky and Ashley Boller and Corey T. McMillan and Lauren Massimo and H. Branch Coslett and Anjan Chatterjee and Rachel G. Gross and Murray Grossman}, title = {Sparse canonical correlation analysis relates network-level atrophy to multivariate cognitive measures in a neurodegenerative population}, journal = {{NeuroImage}}, pymvpa-keywords = "pymvpa-reference" } @article{SAF+15, doi = {10.1016/j.neuroimage.2014.11.014}, url = {http://dx.doi.org/10.1016/j.neuroimage.2014.11.014}, year = {2015}, month = {jan}, publisher = {Elsevier {BV}}, volume = {105}, pages = {440--451}, author = {Alexander Schlegel and Prescott Alexander and Sergey V. Fogelson and Xueting Li and Zhengang Lu and Peter J. Kohler and Enrico Riley and Peter U. Tse and Ming Meng}, title = {The artist emerges: Visual art learning alters neural structure and function}, journal = {{NeuroImage}}, pymvpa-keywords = "pymvpa" } @article{Kas14, doi = {10.1016/j.neunet.2014.01.006}, url = {http://dx.doi.org/10.1016/j.neunet.2014.01.006}, year = {2014}, month = {apr}, publisher = {Elsevier {BV}}, volume = {52}, pages = {62--76}, author = {Nikola K. Kasabov}, title = {{NeuCube}: A spiking neural network architecture for mapping, learning and understanding of spatio-temporal brain data}, journal = {Neural Networks}, } @article{JCS+14, doi = {10.3389/fnhum.2014.00339}, url = {http://dx.doi.org/10.3389/fnhum.2014.00339}, year = {2014}, month = {may}, publisher = {Frontiers Media {SA}}, volume = {8}, author = {Koji Jimura and Fabienne Cazalis and Elena R. S. Stover and Russell A. Poldrack}, title = {The neural basis of task switching changes with skill acquisition}, journal = {Front. Hum. Neurosci.}, pymvpa-keywords = "pymvpa" } @article{LMcC14, doi = {10.1093/cercor/bhu292}, url = {http://dx.doi.org/10.1093/cercor/bhu292}, year = {2014}, month = {dec}, publisher = {Oxford University Press ({OUP})}, author = {S. M. Lee and G. McCarthy}, title = {Functional Heterogeneity and Convergence in the Right Temporoparietal Junction}, journal = {Cerebral Cortex}, pymvpa-keywords = "pymvpa" } @article{WHA14, doi = {10.1016/j.neuroimage.2014.05.045}, url = {http://dx.doi.org/10.1016/j.neuroimage.2014.05.045}, year = {2014}, month = {oct}, publisher = {Elsevier {BV}}, volume = {99}, pages = {402--410}, author = {David M. Watson and Tom Hartley and Timothy J. Andrews}, title = {Patterns of response to visual scenes are linked to the low-level properties of the image}, journal = {{NeuroImage}}, pymvpa-keywords = "pymvpa" } @article{SP14, doi = {10.1073/pnas.1404396111}, url = {http://dx.doi.org/10.1073/pnas.1404396111}, year = {2014}, month = {oct}, publisher = {Proceedings of the National Academy of Sciences}, volume = {111}, number = {44}, pages = {15845--15850}, author = {M. L. Schlichting and A. R. Preston}, title = {Memory reactivation during rest supports upcoming learning of related content}, journal = {Proceedings of the National Academy of Sciences}, pymvpa-keywords = "pymvpa" } @article{MBT+14, doi = {10.1523/jneurosci.2062-14.2014}, url = {http://dx.doi.org/10.1523/JNEUROSCI.2062-14.2014}, year = {2014}, month = {dec}, publisher = {Society for Neuroscience}, volume = {34}, number = {49}, pages = {16286--16295}, author = {M. Mittner and W. Boekel and A. M. Tucker and B. M. Turner and A. Heathcote and B. U. Forstmann}, title = {When the Brain Takes a Break: A Model-Based Analysis of Mind Wandering}, journal = {Journal of Neuroscience}, pymvpa-keywords = "pymvpa" } @article{WLM+14, doi = {10.1523/jneurosci.0351-14.2014}, url = {http://dx.doi.org/10.1523/JNEUROSCI.0351-14.2014}, year = {2014}, month = {may}, publisher = {Society for Neuroscience}, volume = {34}, number = {22}, pages = {7522--7530}, author = {Q. Wang and S. Luo and J. Monterosso and J. Zhang and X. Fang and Q. Dong and G. Xue}, title = {Distributed Value Representation in the Medial Prefrontal Cortex during Intertemporal Choices}, journal = {Journal of Neuroscience}, pymvpa-keywords = "pymvpa" } @article{PLW14, doi = {10.1523/jneurosci.2159-13.2014}, url = {http://dx.doi.org/10.1523/JNEUROSCI.2159-13.2014}, year = {2014}, month = {jan}, publisher = {Society for Neuroscience}, volume = {34}, number = {5}, pages = {1979--1987}, author = {C. Parkinson and S. Liu and T. Wheatley}, title = {A Common Cortical Metric for Spatial, Temporal, and Social Distance}, journal = {Journal of Neuroscience}, pymvpa-keywords = "pymvpa" } @article{KLE+14, doi = {10.3389/fnhum.2014.00632}, url = {http://dx.doi.org/10.3389/fnhum.2014.00632}, year = {2014}, month = {aug}, publisher = {Frontiers Media {SA}}, volume = {8}, author = {Na Yeon Kim and Su Mei Lee and Margret C. Erlendsdottir and Gregory McCarthy}, title = {Discriminable spatial patterns of activation for faces and bodies in the fusiform gyrus}, journal = {Front. Hum. Neurosci.}, pymvpa-keywords = "pymvpa" } @article{GM15, doi = {10.1016/j.neuroimage.2015.04.006}, url = {http://dx.doi.org/10.1016/j.neuroimage.2015.04.006}, year = {2015}, month = {apr}, publisher = {Elsevier {BV}}, author = {Bingbing Guo and Ming Meng}, title = {The encoding of category-specific versus nonspecific information in human inferior temporal cortex}, journal = {{NeuroImage}}, pymvpa-keywords = "pymvpa" } @article{PZB+14, doi = {10.1016/j.neuroimage.2014.07.021}, url = {http://dx.doi.org/10.1016/j.neuroimage.2014.07.021}, year = {2014}, month = {nov}, publisher = {Elsevier {BV}}, volume = {101}, pages = {289--297}, author = {Stefan Pollmann and Wolf Zinke and Florian Baumgartner and Franziska Geringswald and Michael Hanke}, title = {The right temporo-parietal junction contributes to visual feature binding}, journal = {{NeuroImage}}, pymvpa-keywords = "pymvpa" } @article{FKM+14, doi = {10.3389/fpsyg.2014.00601}, url = {http://dx.doi.org/10.3389/fpsyg.2014.00601}, year = {2014}, month = {jun}, publisher = {Frontiers Media {SA}}, volume = {5}, author = {Sergey V. Fogelson and Peter J. Kohler and Kevin J. Miller and Richard Granger and Peter U. Tse}, title = {Unconscious neural processing differs with method used to render stimuli invisible}, journal = {Frontiers in Psychology}, pymvpa-keywords = "pymvpa" } @article{PSE14, doi = {10.1080/17470919.2014.978026}, url = {http://dx.doi.org/10.1080/17470919.2014.978026}, year = {2014}, month = {nov}, publisher = {Informa {UK} Limited}, volume = {10}, number = {2}, pages = {113--125}, author = {Mark Plitt and Ricky R. Savjani and David M. Eagleman}, title = {Are corporations people too? The neural correlates of moral judgments about companies and individuals}, journal = {Social Neuroscience}, pymvpa-keywords = "pymvpa" } @article{KWO14, doi = {10.1167/14.9.11}, url = {http://dx.doi.org/10.1167/14.9.11}, year = {2014}, month = {jul}, publisher = {Association for Research in Vision and Ophthalmology ({ARVO})}, volume = {14}, number = {9}, pages = {11--11}, author = {J. Kubilius and J. Wagemans and H. P. Op de Beeck}, title = {Encoding of configural regularity in the human visual system}, journal = {Journal of Vision}, pymvpa-keywords = "pymvpa" } @article{HPL+14, doi = {10.1007/s10515-014-0157-z}, url = {http://dx.doi.org/10.1007/s10515-014-0157-z}, year = {2014}, month = {nov}, publisher = {Springer Science + Business Media}, volume = {22}, number = {2}, pages = {159--197}, author = {Constance L. Heitmeyer and Marc Pickett and Elizabeth I. Leonard and Myla M. Archer and Indrakshi Ray and David W. Aha and J. Gregory Trafton}, title = {Building high assurance human-centric decision systems}, journal = {Autom Softw Eng}, pymvpa-keywords = "pymvpa" } @article{HGH2015, doi={10.3389/fninf.2014.00088}, author={Hebart, M. N. and Görgen, K. and Haynes, J.-D.}, title={The Decoding Toolbox (TDT): a versatile software package for multivariate analyses of functional imaging data}, journal={Frontiers in Neuroinformatics}, volume={8}, number={88} } @article{ GHH+16, title = {A Model of Representational Spaces in Human Cortex}, author = {Guntupalli, J. Swaroop and Hanke, Michael and Halchenko, Yaroslav O. and Connolly, Andrew C. and Ramadge, Peter J. and Haxby, James V.}, ISSN = {1047-3211, 1460-2199}, DOI = {10.1093/cercor/bhw068}, note = {PMID: 26980615}, journal = {Cerebral Cortex}, year = {2016}, month = {Mar}, pymvpa-keywords = "pymvpa, hyperalignment" } pymvpa2-2.6.4/doc/misc/references.in000066400000000000000000000013241323370031300172650ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: references .. _chap_references: ********** References ********** This list aims to be a collection of literature, that is of particular interest in the context of multivariate pattern analysis. It includes all references cited throughout this manual, but also a number of additional manuscripts containing descriptions of interesting analysis methods or fruitful experiments. pymvpa2-2.6.4/doc/misc/replace_header.sh000077500000000000000000000026271323370031300201050ustar00rootroot00000000000000#!/bin/bash # emacs: -*- mode: shell-script; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- # vi: set ft=sh sts=4 ts=4 sw=4 noet: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## #echo "./tests/crossval.py" | \ #echo "tests/test_algorithms.py" | \ #echo "mvpa2/datasets/mapper.py" | \ find -iname '*.py' | \ while read fname; do grep -q 'This package is distributed in the hope' $fname || continue descr="`grep '[#"]* *PyMVPA: ' "$fname" | head -1 | sed -e 's/^.*PyMVPA: //g' -e 's/"""//g'`" [ "$descr" == "" ] && \ descr="`sed -n -e '/###/,/^[^#]/p' "$fname" | grep '"""' | head -1 | sed -e 's/^"""\(PyMVPA: *\)*\(.*\)"""/\2/g'`" [ "$descr" == "" ] && \ descr="`sed -n -e '/###/,/^[^#]/p' $fname | sed -n -e '3s/^# *//gp'`" echo "$fname:$descr" cat $fname \ | sed -e '0,/### ###/d' -e '0,/### ###/d' \ | sed -e '1rdoc/misc/header.py' \ | sed -e 's/\t/ /g' \ | sed -n -e "s/\(\"PyMVPA: \)\"/\1${descr}\"/g" -e '2,$p' \ | sed -e 's/ -- loosely implemented//g' \ | sponge $fname done exit 0 problematic: mvpa2/misc/fsl/__init__.py -- removed header completely for some reason... tests/test_algorithms.py os gone! mvpa2/datasets/mapper.py is gone pymvpa2-2.6.4/doc/pics/000077500000000000000000000000001323370031300146175ustar00rootroot00000000000000pymvpa2-2.6.4/doc/pics/.gitignore000066400000000000000000000016451323370031300166150ustar00rootroot00000000000000pymvpa_logo.png pymvpa_logo.jpg download_icon.png download_icon.jpg tutorial_icon.png tutorial_icon.jpg documentation_icon.png documentation_icon.jpg support_icon.png support_icon.jpg movie_icon.png movie_icon.jpg ex_searchlight_vt_r3.pdf ex_searchlight_vt_r1.pdf ex_plot_lightbox.pdf pymvpa_logo.pdf ex_searchlight_vt_r0.pdf ex_searchlight_vt_r3.png ex_searchlight_vt_r1.png ex_plot_lightbox.png ex_searchlight_vt_r0.png .o ex_eventrelated.pdf ex_eventrelated.png ex_sensanas.pdf ex_sensanas.png ex_eyemovements.pdf ex_eyemovements.png ex_curvefitting_bold.pdf ex_curvefitting_searchlight.pdf ex_curvefitting_bold.png ex_curvefitting_searchlight.png ex_mdp_fda.pdf ex_mdp_fda.png pymvpa_icon.png pymvpa_icon.jpg pymvpa_icon_custom.pdf pymvpa_icon_custom.png ex_svm_margin.pdf ex_svm_margin.png dartmouth-logo.pdf dartmouth-logo.png ccn-logo_h70.png uni-md-logo_h70.png dartmouth-logo_h70.png pymvpa_logo_pie.pdf pymvpa_logo_pie.png pymvpa2-2.6.4/doc/pics/Makefile000066400000000000000000000073001323370031300162570ustar00rootroot00000000000000all:: pymvpa_logo.jpg download_icon.jpg tutorial_icon.jpg \ documentation_icon.jpg support_icon.jpg movie_icon.jpg \ pymvpa_icon.jpg \ pics # where the rendered images should go TARGETDIR = ../source/pics STATICDIR = ../source/_static # special case of icon svg ICON_SVG_BASE = pymvpa_icons ICON_HEIGHT = $(shell inkscape -z -f $(ICON_SVG_BASE).svg -H) ICON_WIDTH = $(shell inkscape -z -f $(ICON_SVG_BASE).svg -W) ICON_NUMBER = 6 LOGO_HEIGHT = 70 # PICS_IGNORE must contain a rule for grep PICS_IGNORE ?= "$(ICON_SVG_BASE)" # For every .svg we must have a pdf PDFPICS=$(shell find . -iname \*svg \ | sed -e 's/svg$$/pdf/g' -e 's/\([^\]\)\([ \t:]\)/\1\\\\\2/g' \ | grep -v -e $(PICS_IGNORE) ) # and a png PNGPICS=$(shell find . -iname \*svg \ | sed -e 's/svg$$/png/g' -e 's/\([^\]\)\([ \t:]\)/\1\\\\\2/g' \ | grep -v -e $(PICS_IGNORE) ) LOGOPICS=ccn-logo_h$(LOGO_HEIGHT).png uni-md-logo_h$(LOGO_HEIGHT).png dartmouth-logo_h$(LOGO_HEIGHT).png pics: $(PDFPICS) $(PNGPICS) $(LOGOPICS) clean:: for p in *.svg; do \ rm -f $(TARGETDIR)/$${p%*.svg}.pdf; \ rm -f $(TARGETDIR)/$${p%*.svg}.png; \ rm -f $(TARGETDIR)/$${p%*.svg}.jpg; \ done for p in *.svg; do \ rm -f $${p%*.svg}.pdf; \ rm -f $${p%*.svg}.png; \ rm -f $${p%*.svg}.jpg; \ rm -f $(STATICDIR)/$${p%*.svg}.jpg; \ done -rm -f $(STATICDIR)/*_icon.jpg *_icon.* .PHONY: ignore-% ignore-%: @grep -q "^$*$$" $(TARGETDIR)/.gitignore || { \ echo "$*" >> $(TARGETDIR)/.gitignore; echo "Ignore $*"; } @grep -q "^$*$$" $(STATICDIR)/.gitignore || { \ echo "$*" >> $(STATICDIR)/.gitignore; echo "Ignore $*"; } @grep -q "^$*$$" .gitignore || { echo "$*" >> .gitignore; } # # Inkscape rendered figures # %.pdf: %.svg ignore-%.pdf @echo "Rendering $@" @inkscape -z -f "$<" -A "$@" --export-dpi=300 @cp "$@" $(TARGETDIR) %.png: %.svg ignore-%.png @echo "Rendering $@" @inkscape -z -f "$<" -e "$@" --export-width=500 @cp "$@" $(TARGETDIR) %.jpg: %.png ignore-%.jpg @echo "Converting $*.png to $*.jpg" @convert -flatten -resize x130 $*.png $*.jpg @cp "$@" $(STATICDIR) # logo sized versions %_h70.png: %.png ignore-%_h70.png @echo "Generating downscaled $@" @convert -geometry x70 "$<" "$@" # special cases download_icon.png: $(ICON_SVG_BASE).svg inkscape -z -f $(ICON_SVG_BASE).svg -e $@ \ --export-area=$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 0" | bc):0:$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 1" | bc):$(ICON_HEIGHT) $(MAKE) ignore-$@ tutorial_icon.png: $(ICON_SVG_BASE).svg inkscape -z -f $(ICON_SVG_BASE).svg -e $@ \ --export-area=$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 1" | bc):0:$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 2" | bc):$(ICON_HEIGHT) $(MAKE) ignore-$@ documentation_icon.png: $(ICON_SVG_BASE).svg inkscape -z -f $(ICON_SVG_BASE).svg -e $@ \ --export-area=$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 2" | bc):0:$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 3" | bc):$(ICON_HEIGHT) $(MAKE) ignore-$@ support_icon.png: $(ICON_SVG_BASE).svg inkscape -z -f $(ICON_SVG_BASE).svg -e $@ \ --export-area=$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 3" | bc):0:$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 4" | bc):$(ICON_HEIGHT) $(MAKE) ignore-$@ movie_icon.png: $(ICON_SVG_BASE).svg inkscape -z -f $(ICON_SVG_BASE).svg -e $@ \ --export-area=$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 4" | bc):0:$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 5" | bc):$(ICON_HEIGHT) $(MAKE) ignore-$@ pymvpa_icon.png: $(ICON_SVG_BASE).svg inkscape -z -f $(ICON_SVG_BASE).svg -e $@ \ --export-area=$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 5" | bc):$(shell echo "$(ICON_HEIGHT) * 0.463/4.211" | bc):$(shell echo "$(ICON_WIDTH) / $(ICON_NUMBER) * 6" | bc):$(ICON_HEIGHT) $(MAKE) ignore-$@ .PHONY: all pics pymvpa2-2.6.4/doc/pics/ccn-logo.png000066400000000000000000001445401323370031300170360ustar00rootroot00000000000000‰PNG  IHDR™@íkgAMA± üasRGB®Îé cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYs  ÒÝ~ü€IDATxÚìÝw|SÕÿ?ðWÒ½[º)«eïQFÙ[Á¢ ÏWTA”¥Š"CP àA¦LÙ{•½ËjéÞMšûûƒßI“f§7i_Ïǃ49÷æ}OrJï»ç¼LDDDDDDDDDVK9?&™ˆˆˆˆˆˆˆˆÈjL2‘Õ˜d"""""""""«1ÉDDDDDDDDDVc’‰ˆˆˆˆˆˆˆˆ¬Æ$YI&""""""""²“LDDDDDDDDd5&™ˆˆˆˆˆˆˆˆÈjL2‘Õ˜d"""""""""«1ÉDDDDDDDDDVs•:’žJ¥BNN²³³µþvqqú··7||| —37Iä,8¾‰ˆˆˆˆ¨´0ÉT=~ü×®]Sÿ¹yó&ÒÓÓõÞhfgg#//Ϭó{yyiÝ”úøø $$111ˆŽŽFtt´úßRwQ™ÂñMDDDDDŽJ&‚ ud¾¤¤$\»v W¯^Õºá¼víÒÓÓ¥O-((HçÆ´N:hÑ¢|}}¥È!q|‘3b’É dffâÀØ»w/öíÛ‡óçÏ#++Kê°¬âââ‚  ..qqqhݺ5jÕª™L&uhD¥Šã›ˆˆˆˆˆÊ &™PZZþý÷_ìÝ»{÷îÅ©S§PTT$uXv¤¾)‹‹C«V­ uXD6ÅñÍñMDDäHü5Ù “LàñãÇØ·oŸz&ÃÙ³g¡R©¤Kr2™ M›6Eï޽ѻwo4lØPêˆÌÆñ­Ç7QÙÃ$“DîÞ½‹Õ«WcÍš58{ö,ø6£¾!mÛ¶-wÁ"‡Åñm>Žo"""iqFÙ“L¥(##üñV­Z…½{÷J~ã)î"åëë«õG|¬¨¨999ê?âŽU⟼¼<É®!44Ï?ÿŒþù»ví‚B¡°É¹[·n±cÇ¢oß¾pss“úRÉÉp|[ãÛù˜›d€ˆˆœùä,X°À¢™ \.SzöîÝ‹ùóçcãÆÏByñÅ1{ölÔ¨QCêË¡RÀñí<8¾KŸµI&€õ™È90ÉDD¥éèѣؽ{7”J%d2™ÞÙÖ•+WÆàÁƒ¥•Èbr©pT«W¯FíÚµ1þ|³oj"""0wî\6!!-Z´ÀÂ… ¥¾ 2ÇwùÁñ-­)S¦ C‡ÛìܹÓ¦M“:T¢rO¥RaÓ¦MèÝ»7fÏžÔÔTÿÕ…ÑWFóæXü€ÞÄTff&æÎ‹aÆáĉR_.‘ävïÞ­3âß `‚‰ÔÊZ‚ (Ç3™V¯^‘#G";;Ûäc<==1yòd¼ûî»fÝÄã¹sç&OžŒøøx³¶­ïÓ§–.]jQáa*=ßåÇ·õÌ™É<éóæÍ›œIÆúLäˆÊÓL¦¤¤$L˜0çϟי±$ÖT’Éd@óæÍ†#88YYYxðàúÏ… ÔÿÏŸÝ$&¦ºwïŽÉ“'ÃÍÍ­ôú‘ÈA‚€3f@¥R©‹ˆˆÀðáÃ¥PYšÑä*u¥-??o¿ý6/^lÖq;wÆ¢E‹P³fM©/l J•*X¹r%Ƈ &`ïÞ½&·nÝ:?~ñññh×®Ô—AÅp|Àñ-…*UªàÇD¯^½JLì©T*¼úê«8uêwÎ!*egϞń ðøñcçd2*T¨€.]º K—.ˆ5i©[aa!öìÙƒM›6áøñãêÇ5g>íØ±˜>}:—ÏQ¹“‘‘¡ÞÅX\jZ¿~}©Ã"UVL@9[.wõêUÄÅÅ™uŒåË—c×®]¼-ƒbcc±gÏüñÇ 1é˜;wî S§Nøâ‹/¤Ÿ4p|SqߥëùçŸÇ¤I“ ¶yøð!^}õU­ßê‘}ýõ×_>|¸V‚ILûøøàÍ7ßĦM›0iÒ$´lÙÒäd»»;žzê)|óÍ7øý÷ßѼys­çÅ›êýû÷cêÔ©÷Tôÿ–¤V©REê°ÈJår˜™ÊM’é·ß~Cll,Μ9cò1ƒÆÅ‹1lØ0©Ã';{饗pöìY<õÔS&µ/**ÂäÉ“ñÆoð‡&ÀñM†p|—ž©S§¶sçNL:UêP‰Ê…ßÿŸ|ò µ—Édxæ™g°nÝ: 6Ìêᢢ¢0þ|Œ7N½ä\³¾Ó®]»°qãF©»ƒ¨Ti&™Ä¤+k}:¿²4ãÈ^Ê|’©  cÆŒAÿþý‘••eÒ1111ؾ};V®\‰ÐÐP©/JIdd$¶nÝŠ¹sçÂÃÃäc~øá 4 …BêðË%Žo2ÇwépssÃÊ•+l°Ý矎þùGêp‰Ê´'N`Ö¬Y´k&¹¸¸à“O>ÁôéÓmúÿ L&C¿~ý°xñbøúúªwssÃÛo¿Þ½{KÝ%eVFFÖ¯_¯õçæÍ›R‡Uîi&™€'‰W&™¨<(ÓI¦7n mÛ¶øþûïMjïêꊉ'âüùóèÞ½»Ôá“d2Æ£Gš¼fú—_~A¯^½››+uøå Ç7™‹ã»tT«V K—.Õ»º¨¨¨¯¾új‰—‰È:<À;ï¼¥R©U'ÍÓÓ_}õ•]>5jÔÀçŸWWWT©R‹-Bß¾}¥î’2-33ëÖ­c’ÉÁèû%•©¿è"rfe6É´nÝ:4kÖÌäíSkÔ¨cÇŽaæÌ™Ì05j„ãÇcìØ±&µß²e ž~úidddHz¹ÀñMÖàø¶¿Þ½{ãÝwß5ØæÁƒ¬ÏDdxë­·t¾g¹ººâûï¿GÇŽíCóæÍ1wî\,[¶ µjÕ’ºKÊC‰}’–øÞˆKæˆÊº2™dš3g^zé%“ož{î9?~Mš4‘:tr žžžøöÛo±yóf„……mÿï¿ÿ¢S§Nxôè‘Ô¡—ißd ßö7}út´nÝÚ`›;wbÚ´iR‡JT¦¬^½W®\QÏ`’ÉdãÆCÓ¦MK-ŽØØXþb§•´³'IO|oøQyQæ’L~ø!Þÿ}Ó.^.ÇÔ©S±qãFH:9¨gžyçÎC‡Œ¶=}ú4Ú·oÛ·oKv™ÄñM¶Æñm?îîîXµj*T¨`°ÝôéÓYŸ‰ÈF²³³±|ùrÇ;tè€JÙgÈ‘£(3I&•J…Q£FaÆŒ&µ ¦M›ðÉ'Ÿð›2†mÛ¶áùçŸ7ÚöêÕ«hÛ¶-.^¼(uØeÇ7ÙÇ·ýÄÄÄ`ñâÅÛ°>‘íüôÓO꙾âÿ˜6mÿ?,ã8K†ˆE™H2) 8‹-2©}ãÆqüøqôìÙSêÐɉxzzbݺu2dˆÑ¶?Frr²Ô!— ßT8¾í祗^Â;ï¼c°Íƒ0dÈÖg"²Bjj*V®\©“l8p ¥ìŒIDÇ¥Y“‰¨}ú”ɺ„™™™HNNFjj*ÒÒÒàé鉠  !,, îîîR‡…Bääd$%%!==ÞÞÞ@xx¸]f–i&–J;™‘““ƒ´´4dff"33ðó󃿿?‚‚‚àææVªñhÙÙÙHIIAZZ€'É׊+ÂÏÏO²¸ì)33¹¹¹ÈÍÍE~~>ÜÝÝáíí oooøùùÁÅÅ¥Tã””öÌÍÍEVV²³³<ùy!88˜›89§M2=zôO?ý4Μ9c´­¯¯/6n܈Î;K6•!~ø!BBBðÆo¨—x¼ñƘ8q¢Ô¡9=Žo’Ç·íÕ¨Q‹-28«¢¨¨ƒÆÉ“'!uÈDN#33gΜÑÙQ®OŸ>R‡f3wîÜÁþýûqðàAÝó4ÿöôôDll,âââжm[øúúZýÚ©©©Z³ªÅ^ñÝIAÀñãDZmÛ6œ>}Z«½¦ªU«¢iÓ¦xöÙgÍJ8mÛ¶ ÷îÝÓ9gvv¶:±(>wøðaܽ{Wýµæóâc:uBåÊ•-꓇âÔ©S8sæŒÖ†âL:ñõÜÝÝQ·n]4lØ7†···UïEff&¶oß®u-]ºtAPPV»ììl}LZâvêÔ)œ;wN+‰SR½ŸK—.áòåËzûHT¿~}³“L©©©Ø°aŽ9Râû þ[&“A¡PàìÙ³8{ö,Ö¯_=z cÇŽϦQ(8|ø°Öë5lØPd[·nÅþýûÕcB³¯ÄcŒí|jªÜÜ\?~¼Ä~c_ûäÉ“%ö[pp°YI&¥R‰S§NáØ±cꥲÅL©TâÆ¸qãöïßúõë£E‹ðññ±º/”J¥ÖÆ(2™ ÑÑÑê$“˜„½pá‚Î÷+Í—Õf%14ÓËY9]’))) ]ºtÁ7Œ¶ ¶mÛТE ©Ã¦2¬oß¾¨X±"š4iRêÓOËŽor4ß¶7sæL8p@ýC¹>;vìÀgŸ}†)S¦H.‘SØ·oŸNMcuМÁ/¿ü‚åË—C©Tª+>ƒI|LL&ˆÏÉd2äää`É’%ؼy3¦L™bÑ,àÉòªâ‰"qyOQQV¬X7–xÓ\RÒ¡  ¿ýö1vìX£ÿÏhÖöÑL˜èkW<ÁU<~KlÛ¶ ýõ …V?z}M¹¹¹X¿~=þý÷_Œ1‘‘‘fÇàéé©s~q¦RAAâããqéÒ¥|¢àà`«úÂúb1ôþ™âúõëØ¾};rrrô¾^Iׯ9FŠŠŠpöìY$$$ eË–hÞ¼¹Uש¹LU|Mq¦’B¡À®]»˜˜¨õ¼f\âcþþþ¶~ ZYK0N–dÊÍÍÅóÏ?oÒ hpp0vìØ¦M›J6•mÛ¶•:§ÇñMŽŠãÛ¶<==–-[ª·Z×ç³Ï>CûöíYŸ‰Èׯ_×¹imÙ²¥ÔaYL¡P`îܹضmÝR___4iÒááá BJJ nß¾Û·oëý¾rÿþ}¼û2e 4h`v<ÞÞÞZ7ír¹¹¹¹Ÿ}ö™Öò~™LT®\5kÖDXX²²²œœŒsçÎ!77Wë\pðàAøûûãÿûŸIñ?¾¤YŸúfÖX’lR*•Xµj:¤óœ ðòòBíÚµ ???dddàÁƒxøð¡:§éñãǘ7o^ýuT¯^ݬX<==u®¿  EEEX´h‘:‰¡ï=tssCnn.ŠŠŠìšd2ÔÇÅ¢€ù…Ú>ŒÿýWçxñï   „‡‡ÃÇÇÞÞÞ(((@nn.RRRðèÑ#TQQ:„äädtëÖÍâZšI&ñÜ………P©Tؼy3?~¬7¹æááWWW@¥R•»™Lê>CÙI89M’I¥RaàÀ8zô¨Ñ¶aaaøçŸ,úO„ˆJÇ7QùR«V-|ÿý÷ëaáÕW_ÅÉ“'.uÈD-%%E禵fÍšR‡e‘¢¢"|ðÁêÚ.š7¤ááá3f ZµjUâò·ŒŒ lÙ²+W®DQQ‘úñììlLž<_~ù¥Ù}ãêê u>A P(°nÝ:­“··7FŒ¸¸8xxxèœG©Tbß¾}Xºt©zv–x};vì@Ïž= Ö£8p Þ™+IIIX¶l™úk™L†§Ÿ~ºÄ_Ɖ¯Y©R%£×®R©ðí·ßâÒ¥K:çFß¾}Ñ Aƒß±6Òßÿ­õ~äååáûï¿ÇÛo¿*Uª˜ü^¸¸¸@.—«ß qIÞöíÛµj Éår´mÛÑÑѨX±¢Vͦ´´4›Õ"ªP¡†ª÷¹£GâòåËZ3ÏXbRД%|[·nÅùó絟7FãÆRâñYYY¸|ù2Ž=ªþ Šñ]¿~x饗,J4Éår­š (**‰'Ô &ñý©_¿>ÂÃìõ^dggÃÓÓÓ&ï³)+ &À‰’LãÆÃ† Œ¶«X±"þùçÔ©SGê‰ÈDßDåÏÀqèÐ!,X° Ä6÷ïßÇ!C°eËÖg"* HMMÕ™P¼²³X¸p¡Nñ`xî¹ç0räH£…£0`À´jÕ sæÌQÏ………˜5k¾ýö[³w¯’ËåZud.\¸ õ˱š5kb„ “â®®®èÒ¥ ¢¢¢0gÎdffªoðU*Ö¬YƒñãÇ—x|IËýŠÏü¨[·®ÕïÇü¡®³£ùž´oß/½ô’Ñ„€¯¯/žzê)Ô¯_+W®Ä½{÷Ô׬T*ñóÏ?ãý÷ß×›”3ô^¨T*uBãúõëHHHP?‚–˜D³åØpwwGµjÕô>§™˜/ÕªU³x™Ü±cÇpîÜ9÷ÂÛÛ={öDtt´Ñsøùù¡yóæˆ‰‰ÁÖ­[µ’?‚ àñãÇØ±cžyæ‹b,>Nûì3©C%rXZ5‹l]ظ4íÚµ k×®ðßM¹··7fÏžñãÇ›µ3Ytt4¾ùætèÐA«_îÝ»‡¥K—š››››ÖLŒƒªgætìØ3fÌ0yÖeíÚµñùçŸÃÇÇG+YpäÈ\»v­´»½DÇŽÃÎ;µúÏÓÓãÆÃ AƒÌšq…÷Þ{M›6ÕIjüùçŸfÅ¥Y»J&“áüùóê™M7ƸqãLš¥Uš¬­ÁtëÖ-ìÝ»W}.QÕªU1tèP“Lš*T¨€þýû£I“&:³ oÞ¼iÒê}Ä÷F‚€›7oªß›èèhôîÝÛàL+gÀ“qŸdZ»v-Þ}÷]£íªU«†}ûö¡FR‡LD&âø&*ß¼¼¼o´ÈçgŸ}†]»vI.‘CJIIÑ©¹ãééétKN ðÝwßéö~ûí·kÑ9]]]1vìX­™>2™ ;vì@JJŠYç’Ëå:…·'³¬Geöæáááhß¾½Ö9`Ó¦Möîj“( üúë¯:8ÐâR...èׯŸN²ðÈ‘#kôé;fŸ‰BCCÑ¿­Ú@ޤx¼¦R©Tرc‡zö–(&&/¿ü²Å;ù¸¸ C‡êÚ“šKÝNœ8ÌÌL³Ï©o‡AàÉ ÃŽ;Z\‹C'™:„Áƒ«³Ÿ% ÆÎ;KœªHDŽ‡ã›ˆ N:—ÌÿÕgzôè‘Ôá9ÍYL"gÜ sÆ Z 3AеkWtëÖͪóúûûcøðáê¯A€R©4{öLñbÓ¢áÇ[œÐëÖ­›Îì–{÷îYÝ—Öî"{öìAFF†Öõ¶lÙÒê] }}}Ñ«W/­ÇT*öìÙcò9JJÖôéÓ§L&1Î;‡ôôtuH¸¸¸ K—.6y¯›6mª³„P¥RY<›I“ø^µm۶ĺ]Tö8l’éÚµkxá…ŸŸo°»»;Ö­[göÎD$Žo"ÒôꫯbÔ¨QÛˆõ™Œ%¦‰Ê›àà`Ù?999(,,”:4“) ¬Y³Fk&EDDÆg“ó?õÔS¨]»¶Öc;wî4{fIñ%OUªT±j§Û*Uª¨‹‹ç}ôè‘Å3^DÖ¯T*±eË­¸*T¨€Zu^Q\\œVm"ApôèQ“ãÖ·k^ÅŠvÆ»¾xM%<¨³¤­eË– ´I|r¹\½¬TÓ•+WžžnÕ5O¾GU¬XÑ&±’spÈ$SJJ žyæ<~üØhÛ~øAï  "ÇÄñMDú|õÕWhܸ±Á6Û·oÇôéÓ¥•È¡©—riÞˆ¦¥¥IšÉΞ=‹´´4­ø{öìiñ2 âd2™Î œŒŒ ܺuËìsi.oëÞ½»Õ±Õ­[W+¹VXXhõ{gíì–«W¯"++Kë±¶mÛš],ÝP|õë××JŽfggãÁƒf§ø,+GU|I¤9îÝ»§ó^øùùÙüz«T©‚˜˜¸¯_¿nñ5‹×[<ÁKeŸC&™† ‚«W¯m÷Þ{ïáÿûŸÔá‘8¾‰Hooo¬^½ÚèÎ2Ó¦MÃîÝ»¥—Èa¸¸¸ @g¶DjjªÔ¡™ìðáÃê‹ñÛÀ\5kÖÔ¹É/¾¼1š[ÑËd24hÐÀ긴j<Éd2<|øÐªsZ;“Ißf¶Ø©NS•*U´â•Édf=׌¯¬Îz“<š‰È–-[ÚeY`Ë–-u”æ&b‹×dÀYLåÃ%™¾ÿþ{üý÷ßFÛ½ð ˜9s¦Ôá‘8¾‰ÈzõêÝm²¨¨ƒf}&" ÁÁÁ:ݹsGê°LV¼ö‹———Íw“­Y³¦:9$&5¬™¥áííªU«Z—¸äI31$õ÷71ù&ÎFñðð°ymÌÊ•+k}-‚Éõ¨ŠÏ òôô4yg?)Y2ÃLüŒj&8mñ¹Ó'$$^^^:ŸEcå- qwwש÷DeŸCUߺté’I;M5jÔñññË.GFD%àø&"S 6 Ä’%KJlsÿþ} :ÿý7¿WáÉöðÅoF>Œ§Ÿ~ZêÐL’˜˜¨þ· ¨\¹2._¾¬~ÌÔ›sÍ’>~~~ÈÊÊR·3w÷,Í󆄄ؤèr@@€Ö¹ÅÂäR“\bL¸}û¶Eýdˆ··7òòòÔÇäääXoPPMÞ {±&¶â3½½½Q¡B»Å¥µâ@ddd˜\ܾx}8Í©üp˜$“B¡ÀàÁƒÕßhJŽ¿þúËètz"rßDdޝ¿þ‡V/ÙÐgÛ¶m˜>}:>ùä©Ã%’\Û¶m±oß>ÿ§>räˆÔa™$++ J¥Rk¹ØÕ«Wñæ›oª¿.N_!eÍÇ £ÉÜ$“x-—Ëmvó,žÇPrÌ\Öœ'77W½Á‚ÓíÛ·1kÖ,¶b-0Í>/þÚú¾.©­©I¦âÇÛªV”½‚`Ñ/D Ôï…x­bRÒ^üüütÞ—ÜÜ\‹®x2“‰Ê‡ùõß§Ÿ~Š'Nlãéé‰?ÿüSk /9>Žo"2‡V¯^m´è/ë3=Ѿ}{Ú³aîß¿»wïJšQšE®5ã7EñvæoÉÌñ5lU”\L>X³™±~1Gff¦Yý_R¼ú’}Å¿.þ:æ.Ëwô$“f=%sèû|ÚûZõߨ/‰ ]·‡‡¬«FÎÈ!’Lÿþû¯IõW–.]Џ¸8©Ã%"3p|‘%4h€ùóçlÃúLDOTªT ÕªUÓÚÑIlÞ¼YêÐŒ*,,Tÿ»xüš›Bs©NñãŠï¾<)šn AàêjÛ!Öì@Vœ5‰*…B¡Õb"©¤„^Iñë»c×hjܶzK›¹ï­R©Ôê3{|îŠÓ×—Ö,ß”ËåpÜ…Œd/’/—ËÌÌÄ«¯¾ªž X’AƒaРAR‡KDfàø&"k¼öÚk8xð –-[VbÖg"z¢}ûö:usÖ¬Yƒ¡C‡:ôLÀÀ@Y<õë×G·nÝÔ•4cÆXRÂØ1æ$Ö<ÖÉ s®¥´ˆË÷4ß“˜˜´jÕÊì¸ ÍrÒ÷žúûû›ÕW¶œýe/š×jnœÞÞÞ:Ç[:«ÈTúÎïÈß?Ê(s‰8É“Lo¾ù¦Ñ­£¢¢Œî6CDŽ‡ã›ˆ¬5þ|9r.\(±Í¶mÛðùçŸãã?–:\"É<ÿüóXµj•Ö iFFÖ®]‹ÁƒK^‰ÄDfÒÆßß½{÷–:4š‰['6lY“ÉšXñD ðññA§Nlz½R]Ÿ±Zú¾z{{Ðþ¬YZÝTú’LbæpäÄŸ£)‹=%é¯ü~ÿýw¬X±Âh»¥K—rëC"'ÃñMD¶àëë‹Õ«Wý!wêԩسgÔáI¦N:èÞ½»N1ì•+WZµ¹½¹¸¸¨wÿ<|øPê°JdËd>Rßœk5ß””Ic*N³ö–³$œ,©Ë$—˵M‚ 55v‹3))I'Nsê™[þS–zL²$Óýû÷1räH£íFމ=zH&Y€ã›ˆl©Q£F˜;w®Á6b}¦¤¤$©Ã%’ÌèÑ£u–t%%%™TQJM›6UÇ+nݺ¥³u»#“.ö¼–º&Ô­[W+–{÷_i‘:)gj|–&'«V­ªu¼ v+蟟Ÿääd­8}||hò94?¿L4™Ç±?Éæ‘,ÉôÁhí&¡OLL ¾üòK©B$" q|‘­9C† 1ØæÞ½{2dˆÑ:pDeULL ž}öY›Ù 6`ëÖ­¥OQQ‘Ií47þo¤8PêñbïY3¶L–XgÆ u;}ú´Ý®ÝÒësô“-ÄÄÄè;ÕªU³è\–Ô ¢²C’$ÓÉ“'±råJÃÉåøé§Ÿàëë+IÇ‘e8¾‰È^,X þ {IÄúLDåÕ˜1cô./ýüóÏu ƒÛ“R©Ä„ ðñÇ•§S¸ÕªUÈÍÍ-µxѼi¶çl&G¨ËÔ A8¶lÙâ0Ë.õílçÈsf¬Yb£“°¹víšÑš§æÊÍÍÅ‘#Gtâ47ÉäŒKÉö$I2M˜0Áè‡nüøñhß¾½$BD–ãø&"{ñóóC||¼ÑnXŸ‰Ê³Š+bæÌ™:7‹ÙÙÙxíµ×péÒ¥R‰cÖ¬Y8vìvïÞÁƒcóæÍ%¶õ÷÷ÇÓO?­•¼INNÆ?ü`³x qèÐ!«Î¡¹¼= Û’5ËÛ|}}ѦMõ×2™ ©©©øã?lŸB¡À¹sç,>¾xí1Gž3#~®-y½¼¼Ð°aCõñâuïڵ˦³v<…B¡c`` z¹ž©4çL¦ò«Ô“L6l0úƒ_½zõ0}út©ú„ˆ,ÄñMDöÖ´iS£KmYŸ‰Ê»:¨ë3iÞô¥¤¤`øðá8zô¨]_Ù²eøûï¿Õ7™YYY˜5k–Á$ϰaÃàêêª5bÓ¦M8qâ„Mbúæ›o0mÚ4|÷ÝwP*•ŸÇggxxxh}m‹bÝÏ?ÿ<\]]µ®yÿþý¸xñ¢Mbþå—_°dÉüþûï&/«Ôä,3e4—öYštiÛ¶­zlˆ×ššj³±ñðáC½ïk\\Ed‘RM2) ¼ÿþûÛ¸ººbÅŠðôô”´cˆÈ<ßDTZFAƒlsïÞ= :”õ™¨Ü>|8ºvíª3ã#''o¾ù&~úé'( ›¾fvv6fÍš…ü€vB¦oß¾hݺu‰Ç†‡‡£wïÞ:õv¾üòKÜ»wÏâ˜AÀÏ?ÿŒ;w6mÚ„‰'Z”„±gkŠŠ‹»Ái^³µ;ô£sçÎêØD+V¬°*/&;™L†ÿýß|ó 222,ê/ñœŽÎšýüüЬY3­kžÌ>º|ù²Uq%''cûöí:ŸëˆˆT¯^Ýâó29U¾•j’é‡~À•+W ¶yã7+i§‘ù8¾‰¨4}ÿý÷¨]»¶Á6[·nÅ_|!u¨D’ÉdøüóÏѽ{wõcâ®B¡À7ß|ƒ¾}ûbÿþý6y½}ûöaРAذaƒV 2™ íڵØ1cŒžãõ×_G:u´bMJJˆ#°nÝ:³oÔsrr0mÚ4¬Y³FëñË—/[|s®¹dÎV¬½!÷òòÒªs)“ÉpõêU«}úôAtt´Öµ¦¦¦â³Ï>ÃîÝ»Í¼<,Y²Û·o×êÃ;wî˜]/ÌY–eÙª~Wûöí¥õ˜B¡À_ý…mÛ¶Y”0>yò$~ÿýwdddhÅèåå…§žzʪxe¦ÙG©%™ÒÓÓ1uêTƒmüýýñÉ'ŸHÝ'Dd&Žo"*mþþþˆ7:3òÓO?ÅÞ½{¥—H˜={6Þxã ½7âwïÞŸqãðúë¯cýúõFw†-.;;[¶lÁ¸qã0iÒ$$''ë´©[·.¦L™¢SØ[777L›6MgËô‚‚|÷Ýw˜0a‚I3tòóó±iÓ&Œ=Z½DO¼Ù—Ëå˜0a‚VÍ!S‰5qì5£ÉšZO7Ö:üüóÏz·»W©T8sæŒÑÂê®®®9r¤ÎL)…B_ý_ýµI3 ñï¿ÿbæÌ™:u˜d2 „FÙ¼?…5³ÔD...èÝ»·Î{çÎÃÊ•+ñèÑ#“Εõë×ãßÿU/?w...èÙ³§Þ×1õZõý›Ê×Òz¡éÓ§ý&4iÒ$„„„HÝ'Dd&Žo"’Bll,æÏŸ‘#G–ئ¨¨ƒ ÂÉ“'&uÈD’xýõ×Q£F |üñÇÈËË t9qâNž<‰™3g¢iÓ¦hݺ5"""Œ#77ÉÉÉHNNFRRŽ;†#GŽèÔÓÏëââ‚~ýúaÔ¨Qpss39Ö°°0|õÕWøðÑ””¤•x9sæ † †F¡M›6¨Zµ**T¨¹\ޤ¤$1Éd„R©DZZÒÓÓáç燰°0Ž""”µô«]ÿ—øî»ï Þ€Êd2Ì™3Gê> " p|‘#Z´hªW¯n°Í–-[0cÆ ©C%rx®®® EÍš5Á‘i&˜÷Wxæ±ÛÿyyyX´h‘Á6ƒF“&M¤î"2Ç79ª   ¬ZµÊh‰O?ý{÷î•:\""""egF“Ý’L+W®DJJJ‰ÏËd2|ôÑGR_?Y€ã›ˆY\\¾üòKƒm”J%Œääd©Ã%"""*3ì–dš?¾Áç{ôèZµjI}ýDdŽo"rtcÇŽEŸ>} ¶ILLÄСCºÆ‘3±K’iûöíHHH0Øæ­·Þ’úÚ‰ÈßDä d2/^Œèèhƒí¶lÙ‚/¾øBêp‰ˆÈ üU‘ã°K’é믿6ø|íÚµ¹¥9‘“âø&"gŒU«VÁÍÍÍ`»O?ýûöí“:\""²PY©eCTØ<ÉtéÒ%lÛ¶Í`›·Þz 2¿9Žo"r6mÚ´ÁìÙ³ ¶Q*•4hë3YÉæI¦ùóç¬m€¡C‡J}ÝDdŽo"rFo¿ý6zõêe°Mbb"† ÆúLDDDDV°i’)-- +V¬0Øæµ×^ƒÔ×MDfâø&"g%“ɰtéRT­ZÕ`»¿ÿþ3fÌ:\""""§eÓ$Óºuë››[ò‹Éå;v¬Ô×LDàø&"g‚•+W­Ï4eÊÖg""""²M“Lüñ‡Áç_x᣻¼‘câø&"g×¾}{£3•XŸ‰ˆˆˆÈr6K2¥¥¥áŸþ1؆ۚ9'Žo"*+Þyç<÷ÜsÛ°>‘el–dÚ¸q# E‰Ï7hÐ;w–úz‰ÈßDTVÈd2üøã¨\¹²Áv¬ÏDDDšøk"ÓØ,Édl)ÍÀ¥¾V"²Ç7•%aaaX±b\]] ¶›2e öïß/u¸DDädR@ä$l’dÊÈÈÀöíÛ ¶yùå—¥¾V"²Ç7•E:uÂçŸn°R©ÄÀYŸ‰ˆˆˆÈD6I2ýõ×_(,,,ñù† ¢fÍšR_+Y€ã›ˆÊªwß}={ö4؆õ™ˆˆˆˆLg“$“±¥4œå@ä¼8¾‰¨¬’ËåX¾|9¢¢¢ ¶ûûï¿1sæL©Ã%""¢2¬¬ü:Ëê$SVV¶mÛf°ÍK/½$õu‘8¾‰¨¬ ÇŠ+àââb°Ý'Ÿ|ÂúLDDDd7e¥î—ÕI¦Í›7#??¿ÄçëÔ©ƒúõëK}DdŽo"*ºté‚iÓ¦l£T*1hÐ <~üXêp‰ˆˆˆ–ÕI¦ßÿÝàóœå@ä¼8¾‰¨¼˜4ižzê)ƒmîÞ½ËúLDDDDX•dÊÍÍÅ–-[ ¶a½"çÄñMDå‰\.ÇO?ý„ÈÈHƒí6oÞÌúLDD†©"ÇaU’éÀÈËË+ñùêÕ«£I“&R_#Y€ã›ˆÊ›ÈÈHüüóϬÏDDädÊJ-¢²Àª$Ó¡C‡ >Ï¥4D΋㛈ʣîÝ»cÊ”)Û°>‘~V%™üðCtíÚÕ`Ög""""Òeq’I>|¸Äç+T¨€-ZH}}DdŽo"*Ï\\\°bÅ DDDl·yófÌš5Kêp‰ˆˆˆ†ÅI¦„„ddd”ø|\\d2®Ž%rFßDTÞU¬XË—/‡\nøG¥?þÿþû¯Ôá9‹“LÆ–Ò´nÝZêk#" q|=zôÀÇl°R©ÄÀYŸ‰ˆˆˆV$™ŒnÓ¦Ô×FDâø&"zâ£>BçÎ ¶¹{÷.þ÷¿ÿ±>Q1ü®HTþØe&“‹‹ Z¶l)õµ‘…8¾‰ˆžpuuÅŠ+f°Ý¦M›XŸ‰ˆ¨˜²T\ 3"ÓX”dJIIÁåË—K|¾aÆðõõ•úÚˆÈßDDÚ*Uª„eË–­EÇúLDDeWYJ˜Ù“EI&C»N\JCäÌ8¾‰ˆt=û쳘Ž˜˜©¯‹ˆ,ÀñMDdX•*U°téR“ê38p@êp‰ˆˆÈI”•ä¿ÙI¦ ''§Äç¹”†Èyq|÷ /`âĉÛ( 8)))R‡KDDDTjÌN2ݼyÓàóqqqR_Yˆã›ˆÈ4Ó¦MCÛ¶m ¶a}&"""*olždªS§ŽÔ×DDâø&"2››V­Z…àà`ƒíþúë/Ög""²3¦ò‰‡ÙI¦7n|>::Zêk"" q|™®ZµjX²d ë3I¬¬Ô²!* l>“‰7¡D΋㛈È•6M2q–‘sãø&"2Ÿ»»;V­Z… *l÷×_aΜ9R‡KDDDfேÌcV’I¡P 11±ÄçyJä¼8¾‰ˆ,ƒE‹m÷ÑG±>‘aÍ/ó¸šÓøöíÛP©T%>#õõ‘…8¾‰ˆ¬óòË/ãwÞÁܹsKl#Ög:yò¤ÑéˆJ“J¥Â… pøða<|ø)))HMMEJJ ÒÓÓáëë‹°°0„„„ 44áááhܸ1š5k¹ÜìÅDDTF™•dbQ`¢²‹ã›ˆÈz_|ñþý÷_=z´Ä6wîÜÁÿýßÿáÏ?ÿ4º3‘=åççãàÁƒØ¿?8€´´4õsšŸM™L†ôôtdddàêÕ«ZÏ }ûöèÔ©Z´hwww©/‹ˆÎ!*olšdâL"çÅñMDd=ÄÇÇ£E‹HOO/±ÝÆ1gμÿþûR‡LåB¡ÀÚµkñã?ªKÅ“J‚ ¨Ak¶’ø¸L&Cff&6oތ͛7ÃßßÇÇ‹/¾©/“€¡ÓÕ«W±iÓ&$%%¡råÊèÕ«¢¢¢¤7oÞÄŽ;ðøñcT¬XO?ý4"##™0#2‘Ys[oܸaðyÎt r^ßDD¶Q£F üðÃFÛ}ôÑG8xð ÔáR9¢R©°iÓ&ôéÓsæÌAjjªÞvš &™L¦N:ék§)++ _ý5† †'NH}¹äÀnÞ¼‰ï¿ÿ·nÝB^^®\¹‚o¿ý)))’Æu÷î]üôÓOHLLD~~>nܸåË—#-- &"™]“©$...¨R¥ŠÔ×CDâø&"²þýûãСC˜?~‰mÄúL'Nœ`}&²»¤¤$¼ûî»8þ<”¸T3 -Z´@hh(BCCŒ * ++ <ÀÇqÿþ}$$$ ++KëX1étãÆ ¼õÖ[èÞ½;&Ož 777©/Ÿ̾}ûPTT¹\®NjæççãСCxî¹ç$‹ëСCê¥âÉÏÏÇñãÇѽ{w©»Í&8#‹ìͬ$“¡ißQQQü„ȉq|ÙÖÌ™3qàÀ?~¼Ä6·oßf}&²»³gÏâÝwßÅãÇÿ[‡ÿn4CBBЩS'tíÚÍš53i©[aa!öîÝ‹¿þú 'NœÐšý$Ú¹s' 0}út.Ÿ#-YYY:Ë2e2²³³%+''ǬÇÿ§!{3k¹œ¡ÁU¡B©¯…ˆ¬ÀñMDd[žžžˆG@@€Áv7nÄ—_~)u¸TFýõ×_1b’““!‚ú €··7ÆŽ‹7bÒ¤IhÑ¢…ÉÉ wwwtïÞß|ó ~ûí74oÞ\}nà¿Y ÿþû/¦M›fp[*ÄZŸÅ—bJ]žAœ¹_ùäj=.“ÉðÌ3Ï`ݺu6l˜Õ;ÂEEEaþüù?~<<==µ^vïÞ7JÝä@ºwïŽêÕ«kÍdjÚ´)Z¶l)i\;vDµjÕ´kذ!š4i"i\T>”•Yff-—34Ó7¡DÎ㛈È>ˆƒâ»ï¾+± ë3‘­8q³fÍÒzL&“ÁÅÅ“'OFïÞ½múz2™ }ûöEÓ¦M1fÌäää@¸»»côèÑ6=rnnnnxóÍ7‘€¤¤$TªT 5kÖ4ëYYY8tèúk™L†ºuë¢R¥JÇåêêŠÿû¿ÿÕ+WÔ»ËI=»ŠÈÙ0ÉDD8¾‰ˆìiΜ98tèNžÏ›P"çÅñMDT:^}õUŒ5Ê`…BW^y©©©R‡KN&;;Ë—/­»Ú·oJ‘]ß¡Žˆ¤er’ÉÐR€7¡DΌ㛈¨ô|õÕWhܸ±Á6b}&Þ8‘9~þùgdddø¯FM`` ¦M›Æ:_Tf‰;Ôñ3NäLN2ZJ°f ‘3ãø&"*=ÞÞÞX½z5|}} ¶Û°a¾úê+©Ã%'‘ššŠ•+Wª¿‚ `àÀ ”:<"»g21)OöÂO–y8“‰ˆ8¾‰ˆJY½zõðí·ßm÷ᇲ>™dÆ ÈËËÓšÍáíí~ýúI‘]‰3™ˆì…Ÿ.ó¸šÚÐØLÞ„9/Žo"¢Ò7lØ0|çÎ+±Í­[·ðÿ÷X¿~=o¢H¯ÌÌLœ9s€öÍvŸ>}¤ÍfòòòpäÈ9rÇŽCzzºVͱáé鉦M›¢yóæhݺ5‚ƒƒK-·âèÑ£8~ü8.]º•JUbŒ-[¶D‡РA½ § 6 %%EýuXXž{î9“âHOOdž ´^÷™gžAHHˆV;ApæÌìÙ³ ê%gbߊŸ§¨¨(4lØ]»v5+á$ äY [¶lAvv¶úëððptèÐA§ÝþýûñèÑ#ïš3ñÅçNŸ>hµ+~\«V­YbÌ»víÒúÙ844qqq%¶?pà€ºš(66ááá&÷“1ÙÙÙ:³ZƒƒƒÑ¬Y3‹Î—––†k×®áæÍ›:}«ùo777T®\ÕªUCLL <<ŒÃ‡cÑ¢EèÑ£ `×dÓãDZfÍ­eb¬"ÍNAAöïßýû÷#((ƒF»ví´Ž=ränݺ¥>¦zõê&'™ víÚ¥•àŠÕJ2:u kÖ¬AJJŠV;;ÿ}ïÞ=Ü»w»wïF=гgO“’Þ†Z?~?V¿n­Zµô&™påÊõ׆f€Ý¼y7oÞÔéÍ¿kÕªe0ÉtæÌõîžb¿J2 ‚€ãÇk½ŽB¡@¯^½Lz¯LqîÜ9œ>}Zë5ºuëföy²²²pèÐ!\¾|YïóÅßS¥R‰›7oâÖ­[8tèbccѰaC‡›…GŽÅäO‡———Áçóòò¤¾"²Ç7‘t4h€yóæmÇúLT’ýû÷ë77‚ `Þ¼yHHHÐêOWWWT¬XÑÑÑ Avv6RSSqñâEäççëœÿرcðõõEÿþý­êCs®±øgÜÐsúÚj>fêk‰1âããƒ:uêàÂ… Z3™дiS«únß¾­N>Šç¯S§ÜÝÝM:¾¨¨ÿüóž/“iÍ0swwGåÊ•áçç///äææ"55©©©êÍ4“¢øóÏ?ѳgOƒ3¨ü²Y’ÉØîTDä¸8¾‰ˆ¤÷Í7ßàèÑ£¸páB‰mnݺ…×^{ ëÖ­c}&Rg£hÞ Ö¬YÓà1†jåHmΜ9زe‹Îg\.—ã…^ÀsÏ=‡èèèONNÆîÝ»ÂÂBuÂ@&“áàÁƒxôèfÍšet&·! …S§NÕJ,ˆËårôîÝ:uBÅŠK<ǃ°{÷nlÞ¼Y½Ü133sæÌÁgŸ}¦n§¿©\]]áââ‚¢¢"õñJ¥ÿý·:Á<™ñ4hÐ ÄÆÆêMZ(•J9rkÖ¬B¡ÐŠaÿþýèܹ3ÂÂÂ,îGS®í¹çžÓ;«>%%üñ‡ºïe2Úµk§5ÃG_R*""ÂìiÞ¼¹V¿OêCÙ"ÉtöìYõµˆ7nlÒ±*• 6lÀ;wtúÙßß:t@ÕªUK,î——‡„„?~\«¾Xaa!6oÞŒ^½z!44Ôêk¤²Åä$“···Áç9ÓÈyq|IÏ×׫W¯FëÖ­ &÷ÿüóOÌ;&L:dr‚ 55UçF8((ÈàqŽš`úõ×_ñ÷ßë$1qâD´lÙÒè9BCCѯ_?ÄÅÅaÆŒêºFb]»v _~ù%>úè#‹“µK—.U'„5gÈ„‡‡ãwÞ1šä€ÈÈH 8-[¶Ä‚ ðèÑ#O’OóçÏW×Ì4u‰Xqb’I<þòåËêº>‘#GL¸ºº¢mÛ¶ˆˆˆÀ÷߯õ3aQQ6lØ€#FXÔ‡¦^[TT”ÞÇ5I*ŠêÕ«[Oñ¸LUµjU„„„¨kL@bb"’““­JÂäççãêÕ«êk”Édˆˆˆ0¹¨øþýûqçÎ~jÔ¨Ú¶mkt6”——bccQ­Z5üóÏ?êBô2™L=C꥗^býVÒbrM&Ît *»8¾‰ˆC£F0wî\£í>øà>|XêpÉdddh%4 ;›ãÇcÑ¢Eê¯Åk‰Å’%KLJ0iªR¥ ¾ùæôêÕKgÉÏáDZzõj‹âܵk¶oß®gÇŽ1wî\“LšjÔ¨Y³f¡K—.ê8Ï;‡ÄÄD«ú³øì”'N¨ë(ÅÅÅáƒ>09R½zuLš4Ikö— 8yò¤VÏ\¶ª‘eÏ™¦ž;66Vç8q×GK%$$èÔ¾jÒ¤‰IÇ^¾|§NRÇ"ÜÝÝѧOtîÜÙäåvÀ“ì^~ùeT¯^]+1˜‘‘Áÿ‹H‡ÉI&OOOƒUä9ÓÈyq|9Ž‘#GbÈ!Û( ¼òÊ+,¾Jê™âͺ ðôô´IÍ¡ÒTTT„ùóçëÔÐiÕªfÍšeqÒÌÍÍ £F°aÃt’¿þú+>|hÖùòòòðÓO?i=&zôè·ß~Ûâ%x1b^zé%½õ†ó)âÏvÅ9ááá2dH‰K¤JŠV­Z©cãÙ±c‡E×lÉ5•Ä–ÝKêc5jWWW­ãÎ;§^ i‰sçÎi½ÿ¨]»¶Ñã”J%öíÛ§‹L&CçÎQ¹re‹b‘ËåèС<<<´Šª_¾|™÷ ¤Å¬½ -©áL"çÆñMDä8,X€ºuël#Ög²ÇnYä<”J%ícs“Ž`Ë–-Z3wd2ÜÜÜ0vìX›$"úô飾¹ÇŒJ¥B||¼YçÙ´i“ÖNw€AƒÙ¤z÷î*Uªè>Þ謱>•_ÁÁÁZ_Ëd2äää °°PêÐL¦R©°bÅ ­ÚF‚  ÿþ g›ÃÕÕ#GŽT÷‘hÏž=&/K+((ÀŸþ©“Њ?¦ïq}3ÆÊC’ÉñÊÓ;6³f2…‡‡—ø\rr2g;91Žo""Çöúë¯cÀ€ÛbàÀ¬ÏTΈÛÊ‹AÀƒLž9!¥´´4Y1v}Mqö‘fŸK2¥§§kažÔ&²'±,M hö« 6ÛO.—kõƒ-’2¶®=%µ°°0T®\Y+®‹/ÝõQœ;wNk)bÕªUhÒëŠ%.Šf4“Væ¼oúÚèÛµ E©õ/96³’LÑÑÑŸ¿uë–Ô×CDâø&"r| .D5 ¶¹yó&ë3•3•*URÿ?®y3ù÷ßKšQ:õ}ÜÝÝíúšúÎoìæ_.—«ãcµf‰˜)ŠŸßÚÙ:¦.·2…æ¬Cq™šú±öÚìQ|ÝZ±±±Z‰I…B‹/<ææÍ›:õÁLÅEEEVõ•¡Ä“±ñ= i˜µ\ÎØMèÍ›7Q¿~}©¯‰ˆ,ÀñMDäø:    Ävb}¦wÞyGê©”´oß^«à¯ X½z5† ///©Ã+Qññd2222ìúšâù5oŠÍžÒ7“¤´â:–ÌÖ±¦h¸)ŒÅdèUÅkr´ÝálÕWuëÖÅöíÛ‘››«¾ÆÓ§O£qãÆ%söìY­~ñõõ5ú‹M^^^:ñGFF¢nݺ]³9Ûj9&9?›&™8ÓÈyq|9‡–-[bîܹ3fŒÁv|ðÚ¶m‹V­ZI2•‚矫V­R-“É™™‰µk×bðàÁR‡W¢   õ,!Qjjª]_³xò€ÑåH~~~ËåZõn=zdóz@šRRR.£5Ëùì³4.[pqqAãÆqèÐ!õc‰‰‰HIIApp°Nûܼ<\»vM«_6l¨3> ñööÖùLzyyi"'²7³–ËÅÄÄ|þæÍ›R_Yˆã›ˆÈyŒ=}ûö5ئ°°¯¼ò ë3•µk×F·nÝtê­¬\¹Ò¡ òº¸¸¨g3‰1'&&ÚµäåË—uÓwÓ¯I&“éÔ¯ÔÜÌÎ;g“¢ØšÛ’-g!9RM¦â×dMÿ7kÖL§Àö™3gô¶½pþ¼z‰¤Ø·†f=é#—ËÕ‰&Qff¦v_Ù¬§ˆô3»ð·¡ip¼ %r^ßDDÎeÑ¢E&ý‚`øðáR‡J¥d̘1:³’’’0sæL¶Žt£Ù´iSÿÝÌ«TªoÄ­•••…7nh½^pp0¢¢¢Œ+ÖØÑtìØ1»Ä™‘‘¡þÙK³(º¹ì9CHsY—-Îeíñ¶¼Vcõ‡L¤þ>-žóܹs:;Àÿ-•ÅÄĨ‹Ô›£øv?V¸SÙŸYI&¨V­Z‰Ïq9 ‘sãø&"rAAAˆ7Z$yݺuøú믥—JAtt4žyæÚ7É6lÀÖ­[µÚ–Ʀ)Eˆ uëÖZ_ ‚€-[¶Ø%¦;wêÜà7oÞܤc›5k¦õµL&ßþitg:Kˆ[΋¯#ö‹¹ì½ÔΚ™L¶JäˆÇÛêZmÝgâçFš×oÍL&[&†ì=c˵jÕRnÄë->SOœÅ$¾–¿¿¿Ñ™ª%Ñ—d:vì˜Ñ‰lÅì$“¡{zzº]2ùDT:8¾‰ˆœÏرcѧOƒmXŸ©ü¨X±"f̘¡3Ã$;;ÇÇ¥K—J%ŽÙ³gãØ±cسgŒÍ›7—ØÖßß={öT-Æþí·ßªkÔØÂòåËuj=U®\Ùä™Lîîîxùå—µ“Édؽ{·Þ:O–(((À’%K´³v¹œ=f3i&D¬9¿­’Cb YYY6¹6}ç¶æ|M›6Õê³ëׯ«?‹ … ZI·FYÜ7žžž:»ÉeffâßÿµºoDEEE\å@%²éL&€KjˆœÇ7‘ó‘ÉdX¼x±Ñïá¬ÏT~tèУGÖ¹I}üø1FŒ£GÚõõ—-[†¿ÿþ[ýuVVfΜ©µËVqC‡…›››úk™L†»wïbݺu6‰éÒ¥Kعs'í¤Í«¯¾jÖî]=zô@PPúk11ðÃ?àñãÇVÅ(V®\©÷<ÖÎú±u¢©xalk`–¯¹TX<ÞQ!Ú¤I­k,**Âùóç<ùljÎ2’ËåVï§ó¹>wîœÍ Õïݻ۶mÿÿþ«·¾•o6O2qI ‘óâø&"rNÁÁÁX¹r¥ÖMº>¬ÏT~ >]»vU-&rrrðÖ[oá§Ÿ~‚B¡°ékfggcöìÙøñÇužëß¿¿Ní%MaaaèÓ§Îì˜+V`Ïž=VÅuýúuÌ™3G'¡Q»vm´iÓÆ¬s¹»»ã7ÞÐêW¸sçÞy烉4Cîß¿O?ý»víR?V<éfͬ{-'E–Ö‹²&.Ç’““­¾&[.ãùùù¡fÍšêkÖÜeNséœL&C5àëëkÕëùûûkíL'öóÎ;­NÄ;v W®\$$$`ãÆvÝ ’_ñÑbó$“½v‚ "ûãø&"r^mÛ¶ÅìÙ³¶›4i’Ýg²ôd2>ÿüstïÞ€ö³B¡À‚ Я_?ìß¿ß&¯·oß> 46lÐI´k×£G6zŽáÇ£Aƒêø //Ÿ}ö¾üòKäç盓 X»v-Ƈû÷ïk%0iÒ$‹’-Z´À+¯¼¢~ ñ|ùå—øî»ïL޵¨¨þù'&Nœˆ+W®¨Ï7`ÀDEEÙ´8¶-i&—Œõ¡)Q[rmžžž:‰¦[·nYýKQ{Õ°jÖ¬™Öì­””œ;wwïÞÕêq·Ekµk×êó ‚€¬¬,¬^½Ú¢Ÿé ±uëVœ8qB+œœœŒ¤¤$›÷9â£Å¦5™àðáÃR_#Yˆã›ˆÈ¹½ýöÛèÕ«—Á6¬ÏT~xxx`öìÙ=z4är¹NÁë;wî`üøñ9r$Ö¯_oög";;[·nÅøñã1iÒ$e^2™ uëÖÅ”)SLZ’æêêŠiÓ¦!44T'é°uëVŒ5J=ƒÂ˜ÇãÃ?Ä’%K T*µ...˜Í~Kâs!!!èÝ»7¾úê+>Ów¼9JJ¶Ùоþ·„µÇ·nÝ­Zµ2ùš%™ì9“ÉÛÛuêÔÑ{ýµk׆———Ý^÷¥—^B‡Ô¯a¬¯Jz¬~ýú0`@¹I0L0™Ëâ™L†:tÿûßÿ¤¾6"²Ç7QÙðÎ;ï`Ïž=Ø´iS‰mÄúL'NœÐ©BeWõêÕ1wî\\¸pÛ¶mÃþýû‘˜˜¨ÓN_²©øÌñæø…^@÷îÝ­ÞK“L&C—.]бcGìØ±;vìÀùóçµ–FJNDGG£]»vèÝ»·ÞÈl­U«VhÕªRSSqêÔ)œ={?FFF233!BCC‚ÈÈHÄÅÅ¡N:%^Cñþ77£Y˜ÛËåÄe‘š±ZÊÚã_~ùe4oÞ»víÂåË—õöŸ»»;jÔ¨!ù÷ºfÍšáÂ… :×oë¥rʏ¸ iÓ¦¨_¿>NŸ>«W¯"--­Ä¤²æã¾¾¾ˆŽŽF:u"iÿ‘ã“ Œh…Bÿ‹¦5lØgÏž•úÚˆÈßD4~üxÌ›7¯Äçi‡#2,)) Í›7/q´è¥—^*—õ™"##ñðáC½Ï 0kÖ¬)½`îݺTÓÿÜ®[@TU»¾üíÛ·ñï¿ÿâèÑ£xøð!RSS‘••¥5Þ]]]ŠˆˆDDD ** ;wF5J­›rrrpâÄ \¹riiiHOOGff&|}}ˆ   T©RÍ›7wú›á7Þxê›ÿæÍ›cüøñR‡åð²²²ššª.dïãã___„……ÁÅÅEêðJff&nß¾ôôtäææ"77*• ¾¾¾ðññ*V¬ˆððp©C% HµÌÏ¢™LnnnhÑ¢E‰[ž^¸pYYYðóó“à’ˆÈßDDeGXXV¬XîÝ»ë-Ð,b}&ªZµ*ªV­ŠAƒ©S*•êDŽŸŸÂÂÂLÚ%Ξ|||СCtèÐAê.³«üü|ddd¨¿–Éd “:,§àçç???T­jßÄlYàïï† JÙ‰TËü,þ_ÂÐ’•JÅõýDNŒã›ˆ¨ìèÔ©¦OŸn´ë3QqâÌ¥š5k"""BòSyòèÑ#ÚK˜BCC¥‹ìˆs„©¬°ø &*»8¾‰ˆÊ–÷Þ{={ö4ØF¬Ï”žž.u¸D垸ŒSs‡9&™Ê6—¦²Â.3™Þ„93Žo"¢²E.—cùòåFwÖºqãFŒ!u¸DåÞ;whoÏ$9‹“LaaaZ[twèÐ!¨T*©¯ˆ,ÀñMDTö„‡‡cÅŠF ßþñǘ?¾Ôá•[¹¹¹Ø±c€ÿ¶·÷ññADD„Ô¡eÕÂjCKjRRRpèÐ!©¯ˆ,ÄñMDTötéÒÓ¦M3Úîý÷ßDZcǤ—Èa"²Ç7QÙ$—ËñÓO?!22Ò`»ëׯ³>Q1'NœÀ×_ •J…;wîàã?FRR’MÎ-V¬XÂÂB­Ç4h€ÚµkK}éDD&±*ÉÔ¨Q#T­ZµÄçoÞ¼‰Ó§OK}DdŽo"¢²+22?ÿü³Ñ-éYŸ‰è?—/_ƬY³PTT¤~ìîÝ»xûí·±qãF«êU* |ýõ×8räˆÖãîîîø¿ÿû?©/ˆÈdV%™à¥—^2øooo|ôÑGxúé§õ>ýúuÌ™3#FŒÀ²eËpþüy$%%iÍ|€¼¼<\¼xkÖ¬Á{g¯¿þV£F |þùçL0‘Ó²:ÉpI QYÆñMDTöõèÑü±Ñvï¿ÿ>ë3ý¾¾¾:t(,X€gŸ}ÁÁÁZÏkÎV ^W<±$ªV­Š#F`Ú´i7^!"rt2¡xÚÝ*• •*Uƒô¿ˆL†;wî R¥JR_/™‰ã›¨ü?~<æÍ›Wâó6øÑR©ÄSO=…Ý»wlW½zu?~R‡lµÈÈÈ— 0kÖ¬)½`îݺTÓÿÜ®[@ÎàÆ8räÎ;‡””¤§§kí:'“Éàáက„††¢yóæhÑ¢¤ˆÈ&¬®ÉQ9gó$“¯¯/^{í5ƒm8¥šÈ9q|•?nnnXµj‚ƒƒ ¶»ví^ýu©Ã%""" Ù<Éo¾ù&\\\J|þèÑ£8zô¨Ô×NDàø&"*ªU«†%K–­ÏôÛo¿ñ— DDDå˜]’LÕªUCïÞ½ ¶Y°`Ô×NDàø&"*Ÿ^|ñE¼ûî»FÛ½÷Þ{8qâ„Ôᑃ¤€ÈBüìZÆ.I&7nœÁçýõW<|øPêë'" p|•OÓ§OGëÖ­ ¶)((À€XŸ‰ˆ2ëOA$ ~v-c·$S»ví[âó………˜6mšÔ×ODàø&"*ŸÜÝݱjÕ*T¨PÁ`;Ög"""*Ÿì–d€ñãÇ|~É’%¸råŠÔ}@Dàø&"*Ÿbbb°hÑ"£í~ûí7.Ÿ&""*gìšdêׯ*V¬XâóJ¥~ø¡Ô}@Dàø&"*¿^~ùe¼óÎ;FÛ½ûÏDDDTŽØ5Éäææ†Ñ£Gl³víZ>|Xê~ "3q|•o_|ñZ¶li° ë3•/vM2À¨Q£`°Íûï¿/u?‘8¾‰ˆÊ/ÄÇÇ#00Ð`»k×®aäÈ‘R‡KDDT®Hµ;žÝ“LÁÁÁ˜ËT~•J’ x²UëÖ­ ¶™2e rss¥î"2Ç7Qùæé鉸øx£uú®^½ÊúLD0Ñ@DήԒLðÕW_|þþýû˜;w®¤BD–áø&"*ßjÕª…ï¿ÿÞh»_ýß}÷Ôá‘”j’©uëÖèß¿¿Á6Ó§OGBB‚¤BDæãø&"¢b̘1FÛ½ûî»8yò¤Ôá‘•j’ f̘Ÿ/((ÀСC¡T*%í"2Ç7Í™3M›65Ø&?? @ff¦Ôá‘ •z’)::Úè$ÇÇ_|!Y§‘e8¾‰ˆÈËË «W¯†¿¿¿Áv¬ÏDDDTö”z’ &OžŒƒm¦OŸŽS§NIÒ)Dd9Žo""ªS§,X`´Ý/¿üÂúLDDDeˆ$I¦€€|úé§Û( :………R„HDâø&""xõÕW1jÔ(£íXŸ‰ˆˆ‘ uNz ’$™à7Þ@»ví ¶9wî¦L™"UˆDd!Žo""žì<Ú¸qcƒmXŸ‰ˆˆ‘Lêœô\¥ºX¹\Ž•+W¢qãÆ¨˜3gzõê…¸¸8©B%"3q|x{{cõêÕhÕª²³³Kl'ÖgZ³fÔ!;µ àСC™ì¿[‹ØØXŒ?¾ÔâX¶l™:1–I“&!&&Fê.""";“l&T«V ß~û­Á6EEE:t(òòò¤ •ˆÌÄñMDDP¯^=£ÿOê3}ÿý÷R‡ëÔqáÂ$$$àÂ… ê?+V¬ÀÞ½{K-Žû÷ïãâÅ‹¸xñ"._¾Œ‹/òÿz¢Rt÷î]üòË/øá‡°nÝ:$''K•#’&™`È!èÛ·¯Á6W®\Á¤I“¤•ˆÌÄñMDD0lØ0Œ1Âh» &°>“AÐú[ÓôéÓ‘žž^ªñÈd2‚ 5«ŠˆìëÁƒX·n>|ˆüü|ܹsüñ222¤Ê É“LðÃ? **Ê`›o¿ý¿ÿþ»Ô¡‘™8¾‰ˆ¾þúk4lØÐ`›üü|¼òÊ+¬Ïd)))˜1cF©¼KDÒ9uê”N¢¹°°çÏŸ—:4*'"ÉT¡BüôÓOÿ3C‡ÅñãÇ¥—ˆÌÀñMDDàããƒÕ«WÃÇÇÇ`»+W®˜´+é2öíÎ;±uëVIã "ûÊÍÍÕúZœQÈ%«TZ"Éݺuøqã ¶ÉËËC¯^½pïÞ=©Ã%"3p|4hÐóæÍ3ÚnÍš5¬Ïdqö‚¾$x£9sæÌR©Ï"‚Áå{DdÅWˆ3 +V¬(uhTN8L’ f̘atõýû÷ñ /èdh‰È±q| >ÿûßÿŒ¶›0aN:%u¸NEL.i&u\]µ7“ÎÌÌÄgŸ}V*±hþ±¦¯ˆ´µhÑB'ÑT»vmÔ«WOêШœp¨$“‡‡V­ZƒíNž<‰!C†ð·"DN„㛈ˆDß|ó êׯo°M~~> ÀúLfМÉ$þ{ìØ±ËåZÿ¯8pëÖ­+•XìýÿyY[˜ÇŸ~ÈZ®®®èÛ·/zõê…:àå—_F=¤‹Ê‡J2@£F0sæL£íÖ®]‹?þXêp‰È ßDD¾¾¾ˆ‡···Áv¬ÏdÍCâ¿[´hþýû«¿g}ýõ×¥²D]3áEÆ•µ¤I'::Íš5C¥J•¤…ʇK2À¸qãLÚæöóÏ?G||¼Ôá‘8¾‰ˆ7nŒ¹sçm·fÍ,\¸Pêp†f-$Ñ[o½…Ê•+kµÉËËÃÔ©S¡R©ì‡æÒ='"[cêÚq9d’ ¾ÿþ{“¦õ½öÚk8tèÔá‘8¾‰ˆFމ!C†m÷Î;ï°>“‰ô%t<==1mÚ4Èår­6'OžÄêÕ«íg/‘=1uí¸6ÉäêêŠß~û Mš41Ø®  /¾ø"®_¿.uÈDd"Žo""-X°uëÖ5؆õ™Ì£/ÑÔ¸qc =BÇŽqåÊ©C&RÛ³gZµj…GIŠCâø&gÆñMd;~~~ˆ‡———ÁvW®\Áo¼!u¸Nmôèш‰‰Ñ*^PP€O>ùEEE6}­ÒÚ]Žˆˆ‹C'™ bÅŠøûï¿áïïo°Ý½{÷бcG$$$H2Ž?Ž^xGE»vípûöm©CrHßäŒ8¾‰l¯iÓ¦øòË/¶[½z5ë3 9sHßì!wwwL:®®®ê62™ —.]Â?þXª±QÙäðI&hРÖ®] 777ƒí>|ˆN:áìÙ³R‡LåXBBzô謬,Àµk×Ю];\ºtIêÐÇ79Žo"û=z4 d´ë3•LßîrÅÕ«WÆ Óy~ùòå6ý^V|7;""*}R¤ø]¥¾hSuëÖ K–,Á°aà ¶KNNFçα}ûvÄÆÆJ6•37oÞD÷îÝ‘’’¢õxbb":t耭[·¢Y³fR‡ép8¾Ép|Ùßwß}‡cÇŽ\"ŸŸW^yÇŽƒŸŸŸÔ!;$cI#F`ß¾}¸zõªú1¥R‰)S¦`åÊ•pww·:q–”½w—ËÌÌDrr2ÒÒÒ––OOO!((¡¡¡6¹–²Jdff")) )))¾¾¾¨R¥ lrþ´´4dee!++ 999ðòò‚¯¯/üüüW×Ò½U(êÏJ^^üüü€€€£¿ð´%A‘‘ÜÜ\äææ"//OÝ7þþþðöö.Õ~±T~~>rrrÔ×àææ///õµ¸¸¸H"T*rrr‚‚¸¹¹ÁÃþ¾¾ðôô”$&q‡ÏÂÂBB¡PÀÍÍ žžžðôô´é÷-Cß} …V r¹îîîê>7‹0—Ó$™`èС¸uë>ýôSƒíRSSѵkWlݺqqqR‡MåăЭ[7Ü¿_ïóÉÉÉèÒ¥ 6mÚ„víÚI®Ãáø&GÆñMT:°zõj´k×ùùù%¶»|ù2F…øøx©CvHÆ;®®®˜:u*† ¥R©~üÆX¸p!Þ~ûm«c°gbéîݻؿ?:„+W®¨¯·økzzz¢Y³fˆ‹‹C›6màëëkõk?~ük×®Õz¬cÇŽ¨S§ŽÕç>þ<Ž9¢Õ/¿ü²Ñ²¢ôôtlذAëøgžy!!!Zí233±k×.ìÙ³YYY:}׬Y3‹ëŸàüùóHHH@BB²³³ÕÏŸÝæææ†Zµj¡^½zhРM[ú¤¥¥áÀ8wîœúz‹Çäââ‚5j qãÆ¨S§Ž]’“¹¹¹¸vínܸ[·n!//O+͸‚ƒƒQ«V-ÔªU f¿Ö¡C‡››«>g… Œn¸cªôôtܸq·oßFrr²Ö5hŽEWWWDEE¡jÕª¨Zµ*<<<¬~í¼¼<œ;wNë±úõëÃÇÇGë1Apÿþ}\»v =Òùž(þ; ‘‘‘¨Y³¦ÝN………HJJBrr2RRR P(´âÑì?„‡‡#<<ÜäñoªÜÜ\<~ü)))ÈÉÉÑÛ72™ r¹¨P¡*T¨`VBØ©’L0eÊ$&&béÒ¥Ûeddà©§žÂæÍ›Ñ¾}{©Ã¦2.55Ý»wÇ7 ¶ËÈÈÀ™3gxZŽorDßD¥+66óæÍèQ£ ¶[½z5Ú·oo´]ydJ‚§V­Z1b„N«Õ«W£C‡hÚ´©U1ˆu˜är¹Íj2%%%aÙ²eصk—ÖÍlI×›ŸŸC‡áСCX²d ^yå¼ð VÍžÉÌÌÄÖ­[µú:&&Æ&I¦Û·ocçÎZ×óì³Ïš|“©P(°k×.­ãcccÕI&A°víZìØ±C\ÛjÞh†……™»B¡ÀÞ½{±}ûväææjõ>‚  °°.\@BBÖ¯_Ö­[£[·n6K6=zô»wïÖ)µ ï¦º¨¨W®\Á•+Wàéé‰îÝ»£E‹6I–æççãðáÃ8vì …Ñe­2™ ©©©8|ø0Ž9‚Š+¢K—.ˆŒŒ4ù5/_¾Œôôtõ×U«Vµ:É”#GŽàÚµkzã×ç‚ @©TâÎ;¸sçŽ9‚¦M›¢^½zÏŽ ~ŸÄ×–Éd¨R¥ŠV’)11'OžDNNŽVbSŒK3™“™™‰ÌÌL\»v uêÔA:ulž W(¸~ý:nß¾ ¥R©7¡S\NNnܸ›7o"00µk×¶z\àæÍ›HJJÒ‰¡ø˜EEEHKKCjj*\]]Q©R%DFFšÔ?NQ“©¸Å‹ã­·Þ2Ú.++ ={öÄ®]»¤™Ê°ììlôìÙ.\0ÚöóÏ?ǘ1c¤Ù¡q|“#áø&’ÆÈ‘#1`À£íÞyçœ>}Zêp†f±mS :õêÕÓ9Ç´iÓ´fYXÊ–Ëå~ýõW :;wîÔ¹™_Kßë‹rrr°téRŒ5 wîܱ:ž’^Ó–ç4÷üžžž:Ççääx’è˜?>¶lÙ¢5{­xÿÉd2„††šõºçÎÃ'Ÿ|‚õë×—˜`? %]kQQþý÷_|þùç:ï±%=z„~øgΜ1øºbh^AA6mÚ„Ÿ~ú iiiVÅqúôi,X°Ôš¹R¼ÿ5ÿ]ü=¹ÿ>âãã±eËX5×±zõj­%¶ÆÆœ&…B#GŽ`ݺuZÉ/s¹¹¹i%fAP÷‰J¥Â©S§°ÿ~­“fÿOL‹}]TT„ .àØ±cP©T6ë·»wïb×®]¸~ýºÖ¸Ó×W%ͶJOOÇÑ£GqáÂs˜ÇÑ£GuLÅ_·¤1[TT„Û·oãôéÓ&ýßàt3™Ä ž?>‚‚‚0uêTƒmsrrðÜsÏaÕªUèÓ§Ô¡S“ŸŸ¯ÞeʘI“&áÃ?”:d‡ÇñMŽ‚ã›HZ .Äñãǵ~k^\^^ ÀúLrqqÁ§Ÿ~ŠÁƒ£°°Pýxbb"æÍ›‡>øÀ¢óÚ²“R©Äܹs±}ûvÚɱ†PãÆŽ   ¤¤¤àöíÛ¸}û6222´Žž,~÷Ýw1eÊÔ¯_ߪØì]oÊÜD‹———V\‚ 77J¥³fÍÂíÛ·uâ—渻»#''J¥Ò¬™L[·nÅ_ýUbüaaaêO¾¾¾ÈÏÏGFF=z„;wîè$" 6oÞŒÄÄD 8ТekX¶l™zÉ­æ5W¬X€‹‹ ÒÓÓ‘’’¢•xã¹yó&–/_ŽQ£F™]#I¥RaÇŽ8vì˜VRC3–€€DEEÁÇÇ>>>(((@ff&Ôz]\\àïïx{{£°°¹¹¹HJJÒ™U|øüñúöíkrÎÒñ¨R©°iÓ&Ü»wOç9___´mÛUªT)±_òóóqùòeœW¥JT­ZÕà2Ø´´4ܹs>Ôú¾ž™™‰S§N¡iÓ¦FM‚ àܹszgŽyxx zõê¨P¡‚ÁÙg=Bbb¢Ö½˜R©ÄÅ‹õÖÂR¿Oõœyûí·ñÓO?™tc9sæLôèÑ?–:lrr hÙ²¥IKµ†Šo¿ýVêÇ7Iã›Èq´lÙsçÎ5Ú.>>?üðƒÔáJÎÒ%Fƒ BãÆh×.ùüóÏ‘••eq,Ö.yZ´h‘:Á$&0AÀsÏ=‡%K– M›6o´пÌŸ?Õ«W׊I©TbΜ9 ÌcÏYLbšËÅÅEë=¼téþþûoõס¡¡øðÃÑ¿4kÖL+Á<)8mJòbÇŽ8xð VŸ ‚???Œ=ýúõ3˜`ž$’»víŠ &hÕãOLLÄêÕ«Íꇋ/ª =‹Ç5iÒƒ *1Á$^÷³Ï>‹ÿýï:³–ÒÓÓÕ³âL±k×.\½zU+n™L///ôíÛ={ö4:[¬råÊèÝ»7žþye^^^f-›²t:tH`Ð|ýzõê¡_¿~¨V­šÁÄ›§§'7nŒ^½zé|ÎT*öîÝ«w ¡1Å—»%%%áìÙ³êë F=P­Zµï!är9¢££Ñ¡C­]5gYêÒ¥Kê“f¿yxx E‹hذ¡Ñ:kAAAhܸ17n¬þ'~¦ÝÜÜLZÒwýúu¤¥¥iOA‰ØØXüæææ†J•*¡Q£FZcB&“A¥RáÚµkê„¶NÿZÜ{dÈ!X»v­IYî;w"66Vý‘¹6mÚ„¸¸8\¿~ÝhÛ—^z ?þø£Ý)Ë8¾©4q|9žÑ£G£oß¾FÛ±>SÉEd‘Ëå˜2eŠÖîJ2™ ?Æœ9s¬ŠÅÒï‘»wïÖÙÅÍÇdzgÏÆÛo¿ýßÒ0Îyóæélrÿþ}üøãÅX~ón¨Ï¬Uü¦úĉêÒæÍ›cêÔ©¨V­šU¯qñâE¬_¿^çúëÔ©ƒ?üP§Î—1áááxçwСCÚýzþüyõRISœ9sFÝ—2™ ¾¾¾xùå—MîÛèèh¼öÚkêÄC½zõðÆo ((ȤãpðàAÇ«W¯Ž#F FfõM:uп¸¹¹ÁÅÅ]ºtAŸ>}L^¾gé¼zõ*Μ9£µë™»»;ž{î9ÄŒ1*TÀ /¼ õ¹™™™8~ü¸Ù±¹¸¸h-%»{÷®:V­Z5tëÖÍäYH!!!èÚµ+ÜÝݵW÷îÝCjjªÙ±‰;Ú†öíÛ›]T?""Í›7‡‹‹ är9êÔ©ƒ&MšM'%%!11QëýwuuE£FP³fM³V~x{{£Q£F:‰ÂüüüëÛ•‰$ôêÕ ÿý·I¨;wî ]»vX¶l™Ôa““™5kzõêeÒoõzöì‰Õ«Wsù– p|Siàø&r\‹-BLLŒÁ6b}&KgÞ”–&>*W®Œ7ß|S§øð¶mÛðÏ?ÿX‡%ñà»ï¾S-Þä¾ùæ›hÖ¬™V[SoŸ]]]1fÌ;vì@JJŠE}fkÆ T›Bóÿ%Íe6ááá>|¸Õµ|T*~ùåX4h€±cÇZ¼Ýº««+^|ñE<÷ÜsZ‡AÀ?ÿücò{$ÎhŽŽ6{7³ÐÐP<óÌ3èÙ³' `òÖöJ¥Û·o׉¿V­Zèß¿‰K‹Œ C¯^½0xð`Ï¿1–Œ?¥R‰èß®];TªTÉ¢kËåhÓ¦úó'~6¯^½ªU,Þúgb}¶-Z˜ý~ûúú¢J•*Ofúà¿ï7šEÎM¡R©páÂ÷?<<-Z´°xìùùù¡qãÆhÕª*W®lRb¢Kóý«Q£†ÉÉR}}£5sT<~üX«žŸ¨Ì$™ K—.صk—N–MŸüü|¼öÚk5j”ÞŽ!Ò”ŸŸÁƒcÒ¤I&MOìØ±#Ö®]kQ±BÒã›ì…ã›Èñ!>>Þè¸ë3‘eúöí‹æÍ›k=&“É0{öl‹~«/o®7jíê%ºvíŠnݺYu}þþþø¿ÿû?­˜”J%6nÜXj×Všç ‚€W_}Õ&ÿoUªT1{ ›>*• ›7oÖ‰«[·nfp.‰‹‹ ^|ñEÏÏÉ“'‘œœlôx1‘¦¹#Wi(**Ò;û§M›6(•ô1wÄ¢¢"œ:uJ«ÿýýýÕK­U«V-„††jͲ3´ƒhId2 1£) @«®—¹P¡B­exb¢Í*•J«—W5JõgF•J¥ÞµQäååe³ ´’]2™Loó2—dž¬=uêž}öY“Ú9r±±±X·nÔ¡“ƒ9zô(š7oŽcÇŽ™Ô~À€ؽ{7·Q¶#Žo²Žo"ç3vìXôéÓÇh»ñãÇ«k³”7ÖÎ&‰ŒŒÄÛo¿­“HØ¿?6mÚdv,æÆsæÌÝzöìiñR#}1µlÙRë±ÌÌLܾ}ÛìsÙ¢¸¹±X-9¦x\¶JܸqiiiZ ˆ   <ýôÓ6½îÚµk£aÆ:»%š2¦Õ±‰1—ÆrÈ;wîè$%*T¨`ÑîŒRzðàÎòµ:uêØtö¶¸4 xò>åççkÍ\4… €ÆçÜÜZWúh&¿€' ·¼¼<“ŽMIIAaa¡ÖñÞÞÞ¨^½ºÍúÍ(,,ÔÿÏðÒG\r'~Ÿ)**ÒùÌ”É$ðdPÿõ×_˜9s¦I53’’’ðÒK/¡W¯^œõ@(**ÂܹsѱcG”µ4?çb,bâÕVÄ™®šßgŠÿ_[f“LÀ“Ýĉ±{÷n£[hŠ6n܈zõêáÛo¿5©6•=ÇG‹-0a“¶µ À_ý…‰'Jz¹ÂñM–àø&r~ÁÁÁXµj•ÑÝ.]º„Ñ£GK®Óúè£àïï¯u3‘Ï>ûÌ®³wŽ=ªõµ———Í’$"}³nÞ¼iöy,©wcι­I`‰Ç{{{›üs’1b’Is¦”fRÇ–*V¬¨ž9,öÃ;wŒ‰ŽÕ¹ ÎÈÈÀ×_ß~ûÍnËçôíJm—×2‡¹Ÿ#1ɤYSÊ M!!!:Ésk¾iïææf“DЇ‡‡NòÊœ$“f‚W&“YTCËZb’I|ß]\\,.Æ_­ï{2™Lg\ÚnÞ”kß¾=NŸ>AƒaÇŽFÛgeeá­·ÞªU«°xñb4nÜXêK R••…>ú ,09Q»vmlܸÑêBxd9Žo2Ç7QÙÒ¶m[Ìž=ãÇ7ØnÕªUh×®FŽ)uÈ¥ÂÜú+†„††b„ øôÓOüwÓrâÄ üþûïèׯŸ]b¹wïžÖ,ŠÊ•+ãÊ•+%¶=Æ^«øó¾¾¾ÈÎÎV]¼`´©l9“IóÆÍÒäUñYLš³F¬U¼àw@@€ÕÅ„ ©Q£NŸ>­õþ>~üØ`mN___üïÿÃâÅ‹ÕË—A€J¥ÂéÓ§qúôi¢zõê¨Q£jÔ¨a“¥˜Ågøûû[¼“—-™û9ÇØçHJJ²xéfI<<<´–—iª6ç¼2™L«†œ54w¯ßÔŸ‹'£<<<àíímuLæ*¾ïÞÞÞ&Íè5§ÿd2\]]QTT¤_ …B«M¹H2Oþ£Üºu+¦OŸŽ©S§šôëu¼óÎ;øôÓO¹L¢ [¿~=Þ|óMÜ»wÏäcž}öYÄÇÇKZÌžàø&C8¾‰Ê¦·ß~{öìÁ†  ¶?~<âââÊÅ/LM¸˜ªgϞؽ{7öíÛ࿯… "..®Ä›}qpseeeA©Tj{åʼùæ›:3 ŠßhLT|¹JI3;,I2Ù²¯KŠß’˜4ÙêF777W뽑ÉdvO¢éloÊ s¥J•0xð`üüóÏz“,ééé8yò$Nž< ¹\ŽŠ+¢víÚ¨U«¢¢¢Ì~òóóu~ö´õìK™s-(**Ò:.99ëׯ×:Ÿ¾±Wü5 WͯÅ1dÊìrQñ%¡¶Z®éîî®>·9ý¦P( R©´¾ÿJ‘`R*•êÄæìÓ“§NA¼Cß+5Ÿ3ö¾iŽK™L¥R©Õ®L/—+N.—ã“O>ÁöíÛMκ+•JÌž= 4ÀöíÛ¥¾²±»wï¢W¯^èÓ§Y7 |ð6nÜÈPÂñMÅq|•m2™ K—.ÕÚRYŸò\ŸÉ&Mš¤³l.??Ÿ}öY‰¿ÔѼ-1g&…)Å5ÆÎ]üF¨¤ïÌÝIª´X›tgyØ‚8~4ûßÞaøúúê¼W¦ŽãZµjaüøñhÒ¤‰Áv‚ àþýûصk-Z„Y³fáÀêd‹)4gĶíwk™3þ4—<_Îfhü”ôº†–“¿Åg˜ÃVI&ñ‹'6gai&¨Œ-綇ÂÂBõ¿µâ×S§Í˜’®¿¤Ç‹—r•duíÚ§NBçÎM>æÆxúé§1`ÀƒSvÉ9á믿F½zõ°qãF“óööÆ/¿ü‚/¾ø¢Ô ¹‘i8¾‰ã›¨ü ÁÊ•+îœÃúL–«P¡&Nœ¨SƒãÂ… X¹r¥ÑãÍI”ˆ7Iú’@ú3÷¦·¤˜A°¨@³­‹~—tCg 16[žÖ¼Ïoïiq\kΞ(>cÂôë×ãÇGÛ¶mÕµ…ô½ÿš5x¶mÛ†o¿ýÖ¤Bãtb²ôó$5ÍD¾>*þ\I³\Äk&]Œ_kÆ’-f“_†fü”Ôoš;;Jñþk&ý ½†f1ÿº¤ë7öþ•›årÅEFFâŸþÁÏ?ÿŒ÷ßÉÉÉ&÷믿â?þÀ+¯¼‚>úµk×–úRÈ *• þù'>ûì3œ>}Ú¬c[´h¥K—¢Q£FR_Áñ]>q|•OíÛ·ÇŒ3ðÞ{ïl·jÕ*´o߯¿þºÔ!;®]»b÷îÝøçŸ´ÿñÇѶm[›lü·5¶æ KýúõѵkW­v†n|ô=fè&V|Ü’¥_¶^.g¬¨µ¹±ÙRñYK¦.]³†8CH³Ÿ}}}Í>Ohh(ž}öYO–Ê]½zW¯^ŵk×´ê6i¾—©©©X³f Ú´iƒ=z<ñYK2™ yyyvíS™Sœ^³t„Ø‘‘‘:»1š[ÿÌÐ1âãæ–­°dY›%ç7…‡‡‡úQñ¤liÐLújî,fÖ÷LcÏé{¼x¹Ü&™€'4lØ0ôêÕ |ð–,YbR-—¢¢"¬Zµ kÖ¬Á€ðñÇófÔÁbÅŠ˜3gŽÙ3UðÅ_`Ô¨QœÝàD8¾ËŽo"š0aöîÝ‹M›6l7nÜ8´jÕªL×g²×M×{g“'Oj-iS*•˜6m~üñG½³ZÌ%00PçôêÕ«zÎ|b¬¶J(_²gm±e[~ôÕ*¾LÌÖŠŸ_‹’LšÑ¢E ´hÑ*• wîÜÁùóçqúôièôÙÁƒQ©R%4hРÄsO2 ‚à0Ë/ÍI–xyyé$¥<<< ^»ÌÅhî¹õýÛÍåzâ1R$™ÜÝÝuâwuuETTT©ÇŸ¨ñä7?üð:„ØØX“+**B||<êÕ«‡ÁƒãòåËR_ “™™‰Ù³g£Zµj1b„Ù7 ¯¼òŠzŠ=o@ÇwÙÅñMD"™L†ü•+W6ØN¬Ïdï›c©ÙúÆ x’”ÿàƒtÎíÚ5,]º´Ä8̉ÅÅÅZǴ댻wïÐ^ºcËz‰r¹ÕªUÃsÏ=‡÷ß½zõÒÙž6lØ€ÔÔTƒç)^è9%%E’Dƒµý!Î(ûÜÒ]íÉÐÒW[Ñ\úfŒ\.WÏfegg›µ´ÓV1‹ÅËEæT·%þT­¡eË–8zô(,X`Ö70•J¥¾4h.]º$õ¥”{>Ä|€*Uª`âĉfÿ€R³fMlß¾«W¯FDD„Ô—C6Àñ]vp|‘>aaaX±bE¹¯Ïdë%\šÚ·ož={j=&“ɰfÍœ?^§½%ËYŠj¾}û¶ÁüÒ¦oY]zzºMÎ}íÚ5­¯-yíy^»vm­‚΂ àêÕ«6} Qnn®Î¦þþþ µËë¹»»£yóæ9r¤ºv“¨°°Ðèu߀@¥RáöíÛv‰ÕžŠÏzIKK³é2N[±G"Ýšóë OII)õ~gƒjÖ“"ÙÉ$S1r¹cÆŒÁåË—1xð`³ŽU©TX½z5êׯâСCR_N¹sõêUŒ9ÕªUÃÌ™3ÍþÍ’‡‡¦L™‚sçΡ{÷îR_ÙÇ·sãø&"c:uê„éÓ§m·råJxzzâáÇR‡ìtƯu.”J%¦OŸ®ó[sKnØâââtf dåENNÖ¬YƒçŸuêÔÁâÅ‹Õ[Iš£[·n8wî>ýôS)T¶p|;Žo"2×{ï½§3ÛFcßKìõ›r{³×,&‘ŸŸ>üðC×¼{÷.¾ÿþ{«ÏߪU+kX½zu‰³)¤x—ÄY°âgÄÉÊ£GÚý½³Vƒ ´–— ‚€3gΘ¼ ›©²²²°mÛ6þúõë—Êu <<Àãéþýû©Q£†NrïâÅ‹¸uëV©Ä\sgV©REë™L†“'OB¡PHzůIìc{ÿ¶ä{¿fqmñø”z‚GœQ¥Ù7wîÜÑÚ9°40ÉdDÇŽqöìY¬\¹Òì›Q¸rå &OžŒªU«â©§žÂêÕ«f·gVPP€?ÿüýû÷GXXˆM›6™Tع¸˜˜ÄÇÇcÇŽ:»'PÙÆñí˜8¾‰Èr¹Ë—/—¤Ø©#(äX«V­ÔŸ5oøÖ­[‡ãÇkÅan<þþþxúé§µŽKJJ¢E‹ô¶·äö²°°‡¶øú‹/µ~ðàUËéAÀ–-[ônón [ß|ûøø uëÖ:ÿöÛo6½‰Ý¼y³zVœ8;$,,¬Tf2‰ÄÙzâ{b¬¶¯¯¯úgIÍ1±mÛ6‹~~±sÇŸ§§§zY¤x|vv¶MgáÎ;V]“Ýv•tfr™Úo+VŠþüùRý……›››Ö÷'APPP€ëׯÛì5T*•Öú0Éd <çÏŸÇÚµkѬY3³Ï¡úíÝip\å™/ðÿé–ºÕ›ö­½È²%Ûx·cÙØ„LàBHH%$30Üfj¨š;„$E†!™Ê‡;jR™LÂ…!,1`‚w ¼àE^%Û²%k³dµ¶Vïûyï‡Ó}Ô-õ¢Í2ÿ_•ËÝÒÛo¿çôiYýøyžW–±cÇ|÷»ßEyy9{ì1ìß¿ªmZ ‡Ãضm~øa”••á¾ûîÖ-[Æ]'¼zõjlÙ²çÏŸÇw¾ó©><š"|1ðýMD“©¬¬ ¯¾ú*´ZíT/åšõ÷ÿ÷°Z­#>ðýÛ¿ýœNgÂÿ¦Õ÷¿ÿýÛqoݺuuu“²ö_ÿú×øùÏŽ—^zi\Íyã?LÆþÞ±cǸ׳gÏôôô|á3™àî»ïVûžÅÖÛÓÓƒ={öLÊümmm8räHÂׄؼyó¨6éˆýNöÎ;ïLh±~P±cM?Ï7ªkŒ=®¯¯oÄñŒ×x2¹‡ï7«W¯VvÆæÌ™IËÜß¿?vî܉ƒŽ;w%šÛJÐz¼}Í.\8â|{<žI+7íϪÊÊʇ—/_έ––466¢µµ5åùgi $IÂ7¿ùMÔÕÕáã?FMM͸æq:øÝï~‡õë×cÁ‚øÅ/~Ó§OOÛ´ì+I–eÔÖÖâ?ø¬V+6oÞŒW_}uÜ»xH’„»îº {÷îÅáÇqÿý÷óPÀ÷÷Tàû›ˆ®¤Ûn» ÿú¯ÿ:Õ˸fFüä'?F£Iø7Îf³%d=Œçß¿²²25S*Þ¿ÿû¿h=BüÏÿüvïÞ @ɘyæ™gÆÜ wÍš5#æÝ¿ÿ¸v-ìîîÆk¯½–r½ãý~¥V¸õÖ[G¬sëÖ­8vìØ„æîììÄþð‡ËÊÊJ,[¶,ããN'þû¿ÿ»víB]]:4®u¸ÝnµÙ|ìúMÖð}¸¢¢"¬X±"ášB ¶¶gΜ÷yB`ÇŽøÝï~7æò»ñdýX,õ|Ç?~Ïž=ÞI±®®MMM$ çÎÃ'Ÿ|2®ÿP”$ ¸‚¥rãékf6›ÕNãþüùŒå–™ÖtöìYìß¿T?«rrr2yckillœpÅEGG‡Ú;Îf³áìÙ³I‹3È4NwÞy'öíÛ‡½{÷N¨ì… ðÓŸþË—/Gii)î¿ÿ~¼øâ‹úA4 !P__ÿüÏÿÄ<«ÕŠM›6á7¿ùÍ„jZu:yäÔ××ã£>ÂÆ§úPé Œïï+ƒïo"ºÚ~ô£áöÛoŸêe\UW3æúë¯Ç·¾õ­”r'Ò/å±ÇSË£â3füq¼÷Þ{c^y<<ÿüóøãÿ˜°¦ÆÆFœ?~Ls-X°7ß|³Ú\W’$„B!<ÿüócjÞÐЀçž{N-Å*,,Lø¾$Ic.CËÖëãuÏ=÷ ºº:áy0ÄË/¿Œ×_}Ì»Y !°gϼð èïïOX¿ÙlÆ÷¾÷½Œ×‘Ífà /¼ f!ðç?ÿ;wîÓ¹e|ðz\±¿“5=OæŽ;îPKíb×8Æûï¿?üpÌç& âÝwßÅÉ“'áóùðî»ïâ³Ï>»â%xk×®Mhð/IÜn7Þ~ûmœ>}zÌóƒAìܹ'Ož0¼ééé×ï€Bà \çýù¹téRäææ&|-‰àøñã8yòä˜3'Ãá0Nœ8K—.! âøñãhjjÊxÜóæÍƒÅbIøZ @]]ݸõ‘H Ùl±RJÇ3b<ƒL´qãFlß¾‡Â=÷Ü3¡ ³¯¯ï¼óžxâ ,Y²åååøö·¿ÿú¯ÿBccãTê!Ë2Ž?Ž^x÷ÝwJJJ°lÙ2<ùä“xûí·ÑÓÓ3¡ùóóóñôÓO£µµ/¿üò¸úîЗßßÃ÷7M5FƒW^yV«uª—rÕ\íÌÙüà˜5kVÂ×&cw³ììlüìg?C~~~B0#àÅ_Ä?ÿó?Ãf³eœÇï÷cëÖ­xòÉ'Gd¶H’„§žz*iŸ¡Lzè!hµÚ„ò˜¦¦&<ýôÓûÍȲŒ-[¶àç?ÿ¹”ÊËËÃßüÍß$Œ‹íÜ7ñ™'WêZÈÊÊÂßýÝß©A±øç9pà~ùË_ŽºçŽÃáÀo~ó|ðÁ‡Ã ë×h4xøá‡‘ŸŸŸqžÒÒRÌ;7a-²,c×®]øýïŽŽŽŒsx½^¼ûî»j­ØZ vK';;<ðrrrF”t>}¿ÿýïGý!¿¿¿o¼ñFB¹•‡S³õñ\Z­›7o†ÑhL8ápÀ‡~—Ë•qžp8Œ³gÏâý÷ßO¸&b¸ 6 ¢¢bÌë›H9îhÎÕðŒ¦±œ·Õ«W()”L½}ûö:íñxpäÈ5s(6WkkkÆÍ4 –.]Šììì„c‘e/^Ä©S§2ö”÷Pww7N:¥f÷ÅæÒh4˜7o^Ò,?I°†cRÕ××ãå—_Æ›o¾9éÛâΘ1›6mÂÆ±xñbÌŸ?_Ýù`ºp88sæ öíÛ‡ÚÚZìÛ·oÂi—ÉTUUá‰'žÀ£>:"ŠK4^|§Ç÷÷µã©§žÂ /¼òûüÕ¦›;v`óæÍcúßÿ|o½õÖÕ[dgð•ÊäßÛÝ Ìœ“qŠýèGøä“O>ؼþúëW<úôi<ñÄêùM–ÙôÒK/kw°‹/â§?ý)l6ۈ̨ììl,_¾ëÖ­CEE ¡ÑhÐÓӛ͆ÖÖVìÞ½;áÚã?œþÃ?üÄ2Ý~ûÛßâ/ùˈݸ Ö®]‹5kÖÀjµ"//n·MMMhnnF}}=:::óÌ3ÏÀb±à'?ùIÂ:Ÿ{î¹Q8à‰'ž€ÇãQ¿zõjüð‡?œ¬—:Aoo/^z饄`_üë3kÖ,¬X±³gÏFnn.L&ü~?œN'l6êëë“6$ŽÃï}ï{cjö‡Õ’²d×`l=EEEêµâr¹àr¹ÐØØˆ†††?#Ìf3}ôÑYf™twwcË–- ˜Øu"„@ii),X«Õ ³Ù £Ñˆ@ —Ë…ÁÁAœ={]]]I³o¾ùæŒm^yå ª­¨¨À}÷Ý7æ×¸¿¿ü1Ün÷ˆsªÕjaµZQYY‰‚‚ h4¸Ýn¸\.Øív455©Ù[Ã_SSƒ ŒyMo¿ý6€:ßœ9s°~ýú1Ï3œÃáÀÎ;ÖºjÕ*Ì;w\s9rdD­Ø¼¹¹¹(++C^^ôz=t:Âá0ü~?¼^/l6[B0*þgÅܹsQUU5ªu¸ÝnÔ×׫눟G£Ñ //EEE0 Ðétj ?Àëõ¢··7i6¥$I¨ªªBIIIÒçeé ‰D"عs'þð‡?à½÷ÞKšF6, æÏŸêêjÌŸ??áOªýJóz½hjjÂùóçqáÂ\¸pA½=ÑÌ…t*++qÿý÷ãÁÄ 7Ü0%ÇN_|óý}­c‰®EÏ?ÿ<ž}öÙQŸŽA¦§Ÿ~Û·oOøÚÕ2À‹/¾ˆ×_=e¹ÜxƒL`·Ûñì³ÏªÙÃ:ñÇ‹ÿPß·°°?üáÇ•ÁÏårá_þå_ÐÒÒ’}“¬Nüýø1z½>ú(6lØ€®®.üÓ?ýSÂãžyæ™Qõ#ŠyòÉ'zC­Y³æŠ™%Sì•W^QK¨Rw² O²Jl'¹¿ýÛ¿×ï:>Ÿo½õ–š%žêùcç?Ýu¤×ëñÈ#¨ÞÇÊívãÝwßÅ¥K—Ò–”Æ_/©Þ?± @MM nºé¦ŒÏ 2ÅÌ™3g\A&@ùÝoÛ¶mj01Ý9~ý'k2™°víZÌ™“ùgZ2ï¼óü~¿z~***&=È[óxƒL€RžvôèQõuˆ?É®¿t?7b¯UU*++Ç´Ž`0ˆ††5à9žë/ž^¯ÇܹsÓö)Ëšð«AIiµZÜqǸãŽ;àñxðÞ{ïáµ×^î]»&u‹O—Ë…cÇŽ%m´———§~ ---…Ùl†Éd‚Ùlq;Ù÷Âá0Ün·~;þk===êÎÎÎΫö¤¢¢÷ß?xàM‰®¾¿ùþ&¢éçÇ?þ1jkk±k×®©^Ê“êƒÊÕðØcáÀJcbIÂd®   ¿úÕ¯ðÁà7ÞU–lªR_ÿú×ñðÃÃd2Mx]‹Ï?ÿ<~ùË_¢¡¡aTç?~ÌÌ™3ñÔSO©å†f³yÄø±6ê½Úÿ ““ƒÇuuuغukÆ]ò†˜?_F£·Þz+n¹åètºq­Ç`0à‘GÁéÓ§ñÑG%-éJö DæååáßøÆ¸LÀP?©cÇŽáÀ#²†¯%]@®´´›7oNè“4“ñ³Àh4âÞ{ïE}}=Ž;–E4ü82]ÿ‹- 7Ü0î×wø9›ìë}xðg"ôz=Ö­[‡¶¶6477«±áëO`Š}/77‹/W¶N‡•+W¢³³ %¸éLÃI’„²²2TTTdÜX‡™LWÙåË—ñæ›oâµ×^É'¦z9ÓÒÌ™3Õžk×®Û½Ò—ßßÇ÷7}iMãr¹˜sçÎáñÇQr$IÒ„2™ây½^üéOBmm-ÚÚÚ>ˆ¥Ê())AMM n»í¶1•ž–Ä›o¾‰Ë—/§ü€3oÞ<Ü~ûíX¿~}‡mY–ñÐC%<æ±ÇæM›F½–X¹\ìñW²\n8Y–qèÐ!>|ÍÍÍ å“é2t¬V+V¬X7"''gÒÖpèÐ!Ô××øO²TÙT³fͺuë°dÉ’„ ÓD…ÃaÔÕÕáìÙ³èîîN¹–ø¿5 fϞŋcéÒ¥cú(>“)–í3ÞL¦x¡P§NBss3ìv{Ê µØßB˜ÍfTVVbþüù(**šðÞ~ûí„ê“].ÿódåÊ•˜7oÞ„çŽD"hooGWWœNçˆs6ü6 ¼þ°Z­˜1cƤüN‰DÐÙÙ‰ÞÞ^uW¿dïÍøŸ§z½EEE())upžA¦)ÔÐЀ-[¶`ïÞ½8tèЈšMRUU…¯ýëxàPSSÞô…Ç÷÷èñýMD„I 2}ÙtwwãðáÃèìì„ÝnÇàà Âá0ŠŠŠP\\ŒÂÂB,]º×]wÝUû·¥½½'OžD[[›šl2™PRR‚òòr,Z´èŠº¾h|>Î;‡ŽŽ8N¸\.x½^ X,X,”••aÑ¢E£jì=Q‡€Óé„Óé„ÈËËC~~>¬Vëˆ&öW‚×ëEKK zzzàñxàõzá÷û¡×ëÕ¬óXÆúddÜ]).— íííp8ðù|ðù|e&“ &“ F£åååcξºÖƒAôõõÁår!  ! !++ z½z½F£%%%ÐëõWl~¿v»>ŸÁ`áp²,C§Ó©}¢rssÇ•=Å ÓD À矎O?ýµµµ8xð ]ü²‰uÃß°aƒúg"©ªDSïï!|¥À ]dú‚ …B8räjkkQ[[‹ýû÷'4ñ»–èt:ÜxãêΚšš«ò?DS…ïïü©^уLDDt `iš‡Ã8vìöíÛ‡sçΡ©© MMMèììÓv¼SÍd2¡ººÕÕÕX¹r%6lØ€5kÖÀ`0LõÒˆ¦ ßßDDÄ ] dšæü~?.^¼ˆææfõƒiìO[[Û¤ît5Z‹Eý ûÛ†½¼¼œýVˆF‰ïo"""""šNdº†…B!´¶¶¢µµ.— n·;íßñ·µZmÂè™þX­VTWW£¬¬lªèšÇ÷7}Ñ0ÈDDDDDDDDD¦™êÑôÇ MƒLDDDDDDDD4a 2Ñ„1ÈDDDDDDDDDÆ MƒLDDDDDDDD4a 2Ñ„1ÈDDDDDDDDDÆ MƒLDDDDDDDD4a 2Ñ„1ÈDDDDDDDDDÆ MƒLDDDDDDDD4a 2Ñ„eMõˆˆˆˆˆˆˆˆèêè³ÛÔÛFƒÆÓ¤ÍÍ Ñ—@ èÇùÖz$ ¨®XÄ Ñtáöºpàø.õ¾)vC•¥ÍB®¹…yÅ(È+F®9‰nhryýnÄ_xÆó¤ÎÏ ÑÔekÃÁ»!Iʇ{ †âL’úõXv A£ÑâºyËQ³ê6”–Oõ!Ð5ÂëóÄÝ“`È1Nêü 2]A¶.€b(;I’$A@D3›âÒš „Œ³Í'p¶ùÎ]†õ×¥E3¦úPhšóúÜêí½vRçg‰ˆˆˆˆˆˆè êéïRok4Z¬¸n ¤¸L&Y–aw  °^Ÿ €!$I‚ ç[êq¾µßüÚ÷± réTMc¿€rmMv©À ‘ª®~?ìÎ~äá†%5“2§­¯ $”–ãîM¦ë xÑg·áÀñ]¸ØÑ8”é$€÷¼…ïßûJ ­S}šFe÷ç)6IÂÌÒ l¸ñŽ©^Ò5çLó 8݃$ ¹EiƒBøý^(ALÀh˜¼†ß1ì"FDDDDDDµýÀûØõù‡¸ØÑ8)óE"aôö’Ò{)SÉ›AoÄìò¹xðÎGñ¯>³1Wù†„#!¼³íxýžQ<óÔëêi‡Ûë„Ûë„^o˜êå\“®‚~‚~dgéÒŽõ¼…¬Þ7]L&™ˆˆˆˆˆˆˆ |w¸åÅ3'eÎ>» ² d’”> iѼxä›ÿˆœh€F§gíykªOUFþ€þ€Ñ…£0¯dª—tÍ …ƒ†ê}“Á’v¼RŠ©$f2]1¶¾NÄú!•Ïšœ9£åb1eEc ^™|åæ»Õû$´tž‡ÃeŸêÓ•–ÝÙ¡.ZBa^ñT/éšã‰kâ-„€ÉhÎ0~(N#i¡×M~vƒLDDDDDDDºû:ÕÛe“”ÉÔÓíÇmä=–L¦˜å Vcvù\P{4»xjLsCt÷u¢ÏnC 蟔cBÀãu¢»ï]ý ß³;zÕÛIƒ¶6tÚÚÑÝw z]ŽÒyîR¬¿þkÈ5çxœÃmÇgG·ˆf]Rú0i4>«Ûýª¢¤°«—móÚlý—ÕL&CŽi¨ÇÒÍŸ³—l­êý^ûå´ãe9‚ÓçëÐÜqƒ=pyœ±x„ôYyÝMX<tizùDäÞßùåIÖ_ÿ5”YÑÔ~Gë?àSɨ*Ì+†É`A8¢Ü^gÜ,¶îÝ2´£ž$aíŠ[Q\P@ Výå³w@n\²¥EVtõ´ãĹÃè´©¯‘$I˜3£+Ý”p..;šŽ¡£»B–Õs®ËÖcþœÅX\µZíèC —/¢£»}vÛP`I´-,Æ<”•ÌÄüŠÅ£šsÀыƖzåôKV-Z ½.'åx!dÔ5PïWX穽¼Nœ=¤öUR‚hÑ“àÔ¹ÃJï¯èýªÙ×Ál:G^¿;zþ£AÉzry¸dk…Ó=;D@’£3¢Â:ù¹c 2ÈDDDDDDDÓR8ƧG>Á¶ýï!ð)™ÑàB0€Ûë@G÷Eì=ô|÷žÿ ×$<¾åÒy|zt›HR2;$ȲÀ¾ºqUnÖ­úʸÖhëïŒÛYnü»Â•Z!¢ÙP€XKFÆ–S8p|7£ý¥”#Pv¨“$¥Ðá@íÑOp®å¾uû_§líò8ÐÝwI \dgeãLóIÔþX=_’ä™ ÐÚu!îkC:Y£g K €1.ëÆç÷ §ÿrô5PžãbG#öß©œ»è7bY\m]M°õwáöšoÀbÊÀ£»?ÿÁP áy%IB(Ä™æèènÅ×ÖÝ“±9v èG]Ã~Øú»âBŒP×-Ë2n;n;.u·bIõ*XKf§ÓîèW{}iµYÐeëÓŽ÷øÜJ9dôé³´Ùѵù`wö«ç)>I–e8=Ž¡Ktº¡ç‰DÂð|$²³\Ž ƒÎ~4¶Ö«A4u>!àzq¡­Ö’Y˜Í¢ ™ˆˆˆˆˆˆhÚ …ƒø¿/ÿÝ}]\7o9æÎ\€ŠU(),‡ÇçÂÅŽF|ztœîA¼ùÑoQ”WŠYå•ê¦3n¹ñJfÿñe3Ë*0oö¢¸°dþõc^£?à…+š!ev–K§¸°,á¾/Ås]=íØZ»±…$I0,(+ž‹)^Ÿ —[ (=£¶í{woz0é|θõC’Ð3pŸùKì „ Ó娦w/° zƒšI(¬èô”ç8tª ÏÎAQA)BáìŽ>ˆh?àÅéóGqݼØýù‡†‚$ yæ|˜Œ¹p{pyÑ “·×SGpÃ’š”縻ïŽ5P2„â‚ZFƒù¹…ðù½pyå$I‚ÏïÅÑúýX³lCÚòÊØñÌFKBp(5 ,zMFKôë®”I˜S’¥Kfyýž„1þ —[ „ V “Á!dø¾„èºû:‘Ÿ[ ³1}Sñ™ˆˆˆˆˆˆhÚÉÎÒaÙÂ5â0þêŽG° rIÂ÷‹ Ê0gF5–/\_½ò,|/Ž6ìK2ͯ\‚ùÑǹ½.|V· €„ë—Ô fÕm^£­ÿrB ¥tA&`( R–[Í,›ƒ…•ËÐØz‹«®ÇºU_Až¥ aL0ÀGµDGw $­‡••=b¾Áž¡ç°÷ÐÇXµøfÌ™Q’‚2Dän^y+% ñζÿMt½n¼sfTÇ•Ë%¶‡Žeç( _‡NÕ"[››W}•3ç«ãœn;¶í{OÝQ­­«]=톨°Vaõ² 祵󂬂.^jÄŠënBV’·þÁ8¾[=N U­ÀœÕêî~‘Ã8{ñZ:‹8w×܉œ´]^‡š…f6æe|ݱ,5I¹ÎcÇT[Œõ7|Uy C­ß§^] æ,AQAiܵ’xŽ=êÎrÊšm}Ðj³0oæ"”©×V$FsÇ95 Nž.˜ 3_ `‰ˆˆˆˆˆˆ¦©;×›×3iÐ ¦(¿KªW¡îÌ´w5§×ÝwI½m¤åzú;îO$“©w [ THÒövÚtÓ]X½ü–”ϧÓé±iõxíÃ! ôo²õwafÙœcû‡x !­ÓãÎ[þ Ö’Äsžêµw'dÍ”ÍHÔ _ÙÚlÜuëƒÈ5å'ŒË5 ÂZ…¦ö3ÑõȆ¨®X„5Ë7Ž˜·ræ|œm>©dIÊún; óJ”ÇC ÑȲŒcg*k Óå`õ² I˵š,,­¾½gšNP²ê[N(ÇDôÜz¼®hÐGÀbÊÜ“+>c)>ƒH£Ñ@£QÊý†Ê%•£È5ç§-ôª™oJy£V›…å nDŽÞ˜x|Ú,Ì,›“Pjéó{3®Y]ã¨G}hµYiL1%…å”æÐ©t÷ÆBå%“³³œ­ÿrBÉ]Éz2õ\NÜÄ—› g6Z2´òóŠD³v$Im =Ü€c(“ ’„šëo`ñ˜Á^! h4Zä™ ÒŽŒËd€ÕËo`ЉÏDBÉèZµøæ”sÏ(«Z>¤„€Iìl^hkPKÚ€ÕK×gìŸ5oÖBXLCYI±cÎí‹íH§ƒ,£Èdry€@Ê`¢ÛëT{)i¤Qì,çz}…PpÃL1&ƒE XÅúZƒLDDDDDDtM DË«Li².÷vPXsÌ£š7[_4p%I(È+†.[7î¹zºÕÛ3J+Æ=W$V{- (ÁšdÇ,„€}°Oí§T^< ç.Ë8ÿ€£W ˆäC£Ñdß;Mȳ¢ºbQʱñ%}’$áºy+Òfðä› ãÛDȨ ý8Û|R Ø”ÏUY£$I <·Ç‰H$2bœËíHš3d2…ÂAƒõœ› É{!)ÙQÑ&êsÆ>O¿±aÌ1f ¢ôF!ÔÆã£Ár9""""""šöÜ^'Ú»šÑÑÝ¯Ï 0€`È@ЮžvHJ ÊR>Þ-—+/™œR9° t)ù+BL¨TN–#hïnQËå4’U³Ó÷È GBèîíDWO;.÷v °P¡PPmž¸Øb%dñ®„#¡è8 óf®/O4“I#I(Ì+N;Öãs©»Â ̱V¥ïV›h+ff¶B~µ.N@À2,CÊîìGD -©^9ê×ÅlÊUKü”’´áåp®hÆ‘$IÐeëRöÒRÏëTŽCJ“ɤöX’26冈DÂêøÂüRd º2­9ƒLDDDDDD4-u÷]ÂŽFë¥ èìQ²9¢ ¶Í»’E#˜Qš|«y!º£ý“Ê‹'§TnÐ9 d¤D£iú}èT-q=rf•W¦,u †øôÈ'8}¾²¡‰5€Ž5ÝŽÛuB@DwŸ3䌜¯°w¨Q€Šé@€tõ+A# c@ÃîèWÏ‘$³Ëç¦W–¦×å ?·(íø¡ÞE€1Ç<"›,þ¼j5Zäf(í‹§ì¢×£adÉšÛãPwÝ˔ŤŒOÜAΔ$€$„ ¯Ï ^¥ÎvŠñøâK! 2œ3!„Ú\]’¤¤×F* 2Ñ´‡°ýÀûØyàDä´ f–Ub¶µ³Ëç¡ ·z½AÉÀ¿zõg$ å%ɃLýƒ=‡CrÌXÙú»”Ñ(Äx3™®ì?¶3ákk–Ý’tl[W¶ï{÷`BùTa~1J ¬0•^;ÙY:´u^@go;€Ô^ýŽuýYYÙƒ0è²C–eõù3e2Ù}j¦„RV˜~þ¡ PAnú±Êù J%ë  2I’‹)/cÙY´¹Ç7ØÎ³f\#Ú{ òs S|_@dlž=œÓ3¨&z™M#HÁP€?zOÊ ”¦é±l³T™Oñ»Ï¦\.>È”£3@“$ϧîDÍdÒ3ÈDDDDDDD× ö¾[$IƒÇø?X\½*íøSçP¶¥O•Us¹·Céu¤ÍBiÁøw€‹g‹–ßAdeé’ömãs@iú ¢ ™›Ú{}ž„ûÛ¥§Ã MÇ@‚„eóoÈ`ŠDÂ8~æs€µ8u†ÒåþN!PZP­6}–Çh©år’„’‚²¡ÞH£p¹·ì~Ž¡Ý wmz¥…#Ëî{áVˬ$¬[u[Ê4¶œRAGƒ/ÅIÊå‘RJ“—ºizÂZ¢;Å™ËÙd!ÃáˆÛ‰.}iÐÙ?TZ ß’~¼ÃeWt€<ËÈ SA^‘úZ¹¼‚èuú´ó !Ðpá ’äè˜3£zÄ8_À›pßð¥·õÒ5À$ Rf(y¼Jf’$eÎbB$d&¦ôÍoÈ1©„pôW9Ñryê÷Ò¢òŒã?Øó&\„°–¥Þ…¬§¯ ’”¹ÐhE"a¥Ô „uÓï@ÐÏŽnÇ«ïÿZiº eG4¸õ¦»°hÞŠ¤tÙ£·2ïÖ?Ø‹}u;Ôû6i0hÀѯd1 åù‹ 2ïH.·] Jdg§Ï°qº‘ÃÑçÈtþãKë€äA£xñM½5’fÄÎr@,¦<¿õêÒÎ) õŽÁÍ~XR½*iï¤ì¬lu^@BïÀå”óv÷]R²ß„Pw—3¥ØYμÒf*} xzd&“Éçš?S&ÚpÌd""""""¢iÁ˜c‚.[`(€®žŽ´cß…}uÛ¡d›H(+J½k\¬9s¬ù÷DõÙmÑÆÉŠìl]ByZŒ?è‡Çç‚ÇãBk×´u5CÀЮxúìܽéA,˜»4åóÅ—Ipöâ)¬¿þ«#Ƶu5c×Á?# eåB£™ë­ˬm¹\DŽ®@—­ ¡pH ¶ gwö©¯d(tíDg1å' ì$Œ™$e|²ã´–ÌFQ~©Ôkïj‚.[ÅÕ+GpüŽ6ìSú&E×QVdMÙë+Öè;V.7àè…ÇëJèÍ$„@[WšÚϽ€ˆ5èNžu$Ë‘¸sØH$’2Ï›°³œ²Ã^:²QKö€±÷©b‰ˆˆˆˆˆˆ¦­F‹¹3 ±õ4Î6ŸÄ§G¶¡æ†¯&º{/áÏ»ßÀùÖÓ¸qéÔ5ìç§ÎÄ)È-‚­¯-—.àÜÅS¨ªXFƒö®f̵`Ìë쎖_E«´p´~ŽÖïƒ Ø ®úh¨Œ.\º]9£›7ü òÒ—…ç—A¯3 ôpèä :û0wÖBdgé00؃ÎÞv´w5C‚„!‘#8Ú°ù–Bäè ¨œ9_ 2 ! Õh3öWòF³˜b%{cÙY`‰ˆˆˆˆˆˆ¦‘o|õ!üÇkÏÁðáݯbûþ?¡¼d6d9‚Ë=„€ 7| ·®½[ î¤ë÷³¨j%l}G‚xå½ÿ@VV6„,£¤°ÿø×Ïy=±~L€š’Ll‹øøž74¨š³ëW݆esFõ|’$áöšûðÑÞ7ÕY[êq¾µ!¡§“FÒ`à ·cÀÙ§ô’$˜R4—î´©·‹òGW*ó+—à’­U °¹½N4µ,_¸:a¬=®S~naÚÞ?BµA7:8# yh¼”~':“Á‚µ+nű3ÔþE^Ÿ^¿’m(Ó*v*µ-Î]ŽêŠEû-Ÿ#öߥf¨Edy¨)|tR]¶7,©AÇåõzIÜ)+ž‰G¯š!åø` *»Î*Ÿ«œ¯èr=q™L£é¯äó{IRË4™ÉDDDDDDD׬™esðÄw~Š÷¾‰ó­ py]pGƒ’FƒªY ±y÷P=g1z¢=p„i38¾¶î^x¼.Ô5ì‡,ˇCÐh4¨ªX4®5Úú” ‚¤<¹Rrÿá>ÈÑa4˜`2XPZhÅÜY 0gfõ˜ûàÀ¹K¡Ñ|ïF¯ýrìÙ! `ÐQ^2 ëV~eÅ3ñáÞ·ÔÇéõÉû7õÛ{Õ€Gá‚LÕ‹àøpâìAµÑµ€H˶»›R.‡h0}?&§{áHXÍüÊ´ÛãT{=AdîßTZdÅ×jîEãÅÓhj?‹ˆQt±@  Š Ê°¸jå¨2©ÀlÊźU_Qú8¹ì$¨ë’$ ò,XZ}=LFKBƒît×kYÑ „ÂA´w5#ªkDtG?`(YÎëj>ªåüõšÍÖfC—¡¯Öp’PÏ:Ñô1èìGŸÝÀ“Q Ô˜2ì¶•Ž?àÅ€£YÚ,äš Æ´uûIÿ`.;J ­°˜ò®ú"r.÷ <>7²³²‘g)LÛü‹DÏ —g¯ ÙY:èõæC—­÷¼.¯^¯ ¾€ºl=,¦¼ ½6²á÷{ù¡ÕdÁcJÙÿêja‰ˆˆˆˆˆˆˆè ˆ•­}Yüöh‘G{âõQ%tEXtdate:create2013-10-15T15:12:57-04:00J¾Æ¤%tEXtdate:modify2013-10-15T14:54:02-04:00Aj…›tEXttiff:alphaunassociatedŒ(³tEXttiff:endianmsbTu}ttEXttiff:photometricRGB³ IßtEXttiff:rows-per-strip27ô?ä¥IEND®B`‚pymvpa2-2.6.4/doc/pics/dartmouth-logo.svg000066400000000000000000005467221323370031300203250ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_curvefitting_bold.svg000066400000000000000000002167471323370031300215660ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_curvefitting_searchlight.svg000066400000000000000000002305211323370031300231250ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_eventrelated.svg000066400000000000000000011060171323370031300205240ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_eyemovements.svg000066400000000000000000010346611323370031300205670ustar00rootroot00000000000000 image/svg+xml inverted upright 400 500 600 700 800 900 600 500 400 Screen coordinate [px] 0.5 1.0 1.5 2.0 2.5 0.5 1.0 1.5 2.0 2.5 Gaze Position (Y) Gaze Position (X) Peristimulus Time [s] SVM Sensitivity SVM Sensitivity pymvpa2-2.6.4/doc/pics/ex_mdp_fda.svg000066400000000000000000024345031323370031300174410ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_plot_lightbox.svg000066400000000000000000004546431323370031300207320ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_searchlight_vt_r0.svg000066400000000000000000005135321323370031300214540ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_searchlight_vt_r1.svg000066400000000000000000005170461323370031300214610ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_searchlight_vt_r3.svg000066400000000000000000005252521323370031300214610ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_sensanas.svg000066400000000000000000006274261323370031300176700ustar00rootroot00000000000000 image/svg+xml pymvpa2-2.6.4/doc/pics/ex_svm_margin.svg000066400000000000000000000765261323370031300202160ustar00rootroot00000000000000 pymvpa2-2.6.4/doc/pics/pymvpa_icons.svg000066400000000000000000005126021323370031300200550ustar00rootroot00000000000000 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 00 1 0 1 1 1 01 0 0 0 0 0 00 1 1 0 1 0 0 image/svg+xml pymvpa2-2.6.4/doc/pics/pymvpa_logo.svg000066400000000000000000002453561323370031300177130ustar00rootroot00000000000000 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 00 1 0 1 1 1 01 0 0 0 0 0 00 1 1 0 1 0 0 image/svg+xml pymvpa2-2.6.4/doc/pics/uni-md-logo.png000066400000000000000000002123261323370031300174620ustar00rootroot00000000000000‰PNG  IHDR(¿[“°sRGB®Îé IDATxÚì}yœ\U•ÿ÷{î}UÕ{'ÝYI !!!a „Š È₌ƒŒ¨8ã 3ˆè8þ€AAT£Ž‚Ã*²é. ‚ì[„5È"!{:é½ë½{Îï[]4½Bpèó EuÕ«÷î{ï¾ó½çœï9‡f€Ht‹‚·™˜I@°FX:Êزïçf¶råÊ?ýéOwÞyç²eËÖ­['"å-GŒQ__?jÔ¨©S§Îœ9sÇwÜqÇkkk·z$[þÃ×qYìñ&~H ˰ Ë;] ¬[-s0ý@5ƒãoc-¢0–”žpÛ(¼žúº_ðD›‹Åæææ¶¶¶Í›7G,'YWWWUUµyóæ‹/¾øŠ+®Ø´iSù«2Þ¿êff&"“'Ož1cÆÜ¹s÷Ûo¿Y³f1báõ;°øá""ˆ¹>óéí¸@–a–·y¶|1J³ðjÝ¡Ý;zµBá[b#©A÷{˜lƒ‘½¦¾6³ÎÎΧŸ~záÂ… ,Xºté²eËÖ¯_Ÿ¦i±X4³¸‡B¡à½ïêêjkkrˆˆªöý|„ pÀûßÿþ|àãÆë 'ƒ›\Cm÷¨‚–fˆà†ía–a†U@;é?‘·Á égKÀ†dGGǽ÷Þ{ã7Þu×]O?ýt_)küøUO8é‰:½/‹s.„Ðó«Ñ£GÏ›7ïøã?äC’$é9æ2ªaÛøÙÀ‚AJ‡ˆ7ÁÐm)˰ Ë;[Ô¢+j ª_­Øñ¶u¹Jcš½äUJ ì7X_—/_~õÕW_}õÕO>ùdO´ ßG/YO˜‰{ˆÒ/,õs?^ H½Æ¿Ú{ï½O<ñÄN8¡±±që@tk¸ûâjÆî±Ò ?tÃ2,ÃòjÃ@×BLM}tÛ›i)Ú#0ööTGˆ@C Ño“é–w¾xñâýèG×\sÍÆ{FO<èK¶ÄÜÈ✢Lœ8ñä“OþÌg>3a„²Ñ£ªÎ¹¡E U% ¨™@B Þ±èø–a–w6ât;xdD„¦Z˜ÒÔºM¥L$”{[²•ŒŠ 2gï†üòõÔÔO>ùä%—\rÕUWµ´´ôk…¼&T nâl9äô4°zXCCÿøÅSN9eܸq=qb½mÑã'  £­©y=Äa–aygØ:e]Áãï¯ hÕöEkž}lÃâ—ŠëÛCÇ?ykV¸4±LÓÆ\ÿÌ<¶Á× ptÛ`úè£Ë(ø†x€†€ ô–e_xèüŸ=äò¢b„SqBRâ¢fØ×6,ÃòŽ‘Z`ª$Mˆ 1ÃcöøÝ{~0º¢„ÂÖ#Uik\Ô¿å×ÓN;íÇ?þq¿&ÈVØñ'…Báᇞ6mÚܹs,XP†„² 4œŒ=zï½÷nhhhmm]¾|ùâÅ‹ÛÛÛ·Üê»Muuõm·Ý¶ï¾û¾ÑôÒî<ƒ‰1høâÿõÓ%Wx_-â©!ó”@fmØÙ6,ÃòŽq´‰¹`*%BmˆðC³¬Ø~ùþßùÄNïM¢µàoYy7}áhiP¥sª@°žÁ›a²™3Ë{kïØ½açßüƒÑÑÏÃRdJÙê´ù¸ê'™¦éI'tõÕW÷ÔÚQqoꔘ³Ï>{×]w5³_ýêW‡zèÒ¥KãW=wØË¡ÿŒµ æÌ™SWW`É’%óçÏ¿øâ‹UuKÓ×`jmm=å”Sî¹çžšššèEÜJì!hÁèf€9\²ïW7„æë—Þâ¤ÊÌq3À›éðÃ8,ÃòŽqµ™ƒ ¦“ê•ê¤ ïXýÐ'v:L "εÌ鼃u4  Ô9 .´uÌ9å†C¾?©jL0“!Bµ„¶‹ÅÏ|æ3×\s zT’øà?ø£ý(^Ɔ†Ã?üxùå—Ëê5’ž¶Èc=vÕUWýüç?_¹rå>ûì3qâÄÃ;l¯½öºí¶ÛÚÛÛ{ía»§ç›µk×zï>øà2ãn+N*ƒ •3’Aƒ‘yç>Õ´ôÙ Ï{…˜W¨'U‡éÃ2,ï$_›F‡ÐÁ`„ €©rŸr$LIoTºKß…Bˆ¡`FW—ªÃ[F§¦™k—û§C/Ù­vº¥rÔ}q •ð¯ñ^v[|òÉ¿øÅ/ð†iͽ䀸Ýï~핲¿®¹¹ùßÿýßñ‹_¤iÚçzÚX}{»ì²Ë•W^9kÖ,>øà¼yóšššÊý¶$¯¨§Ãí±Ç›2eÊ óXdëG‹ ¡)m>æŽ/ÿeõ}9_J…Üœ‡ØðÃ8,ÃòNÁ@H‹»Õ8¡JˆºL;v¹óãGüºœ#bÂ2ꔌ&y’x ƒ0ª• E €!«}ݵï9w·ºéFe¹K¹"`tº½ŽÅ{Oó‚ä¹çž{饗âÕìç^æÂ ÆDO³£çöÇsLuzÉjkkçÏŸçw{챑â_ûõ’Eyê©§?üð'žxÀ¾ûî{ùå—çr9ë–Á‡Úko­­­ßÿþ÷ñ†mY–þ“òûIíž¿{ã.iÖJ‘Å8V´³mSlX†eXþO¹ÚJ:GÊþvã h0ÄqùùwîÃbêË{xSZó0"Ä"Í¡1³àƒ\vÀ>î=P0ºv¶Ê¥ÖSÍõä+ÿñ<å”SÊkÿ×4z¾ö[€d}}ý9çœsá…VTT”^@dLœ8ñ˜cŽ9ꨣ¦M›·ikk‹ ¼ýTDZZZî¾ûîcŽ9¦ªªjÚ´iÞûÛo¿}+48ÉÅ‹Ÿp õõõC[¾:@ër…FͺiÅ=ÍY%1 ".ZÛÃ83,Ã2,ªÙ˜ŠQ§NûØ+)ùÅ~V¯T0Æ$žm­2 („šA ½0 dYûù{þÛ»}Z¢³ÏÉlEiœ^E_¢*_µjÕ~ûí·bÅŠ-ßÏ@µ>£Œ3æøã?í´Ó¦L™²…(1¯¹¹yåÊ•k×®-oZZZÖ¬Yóøãß}÷Ý‹/.îãÿøUW]wrä‘GÞ|óÍqŸÑ\Ûr?á¹çž{ÖYg -ð” zéîþõ+)2Ï$ ³òÚgX†eXÞÙ’e»œñø¯}[ õ Ð|¥! -'M:ú¿ßýMßÝì²×Áë.¿ßoE3;餓.¿ürlA‡‚žHS__¿çž{®Zµª³³“d’$³gÏÞo¿ý>øàñãÇ÷Ř-yÓÓ-Öó“ööök¯½öë_ÿúÊ•+ãç×]w]LÇY±bÅœ9s^~ùå¾älôWG§çYìºë®?üp>ŸR‹Ð={ùi÷Ûªa2õ° ˰¼ '*_2vSGëjÝ{ÔìÛÞ;¿.W¥4«è,C±YÀm·ÝvØa‡áÕ¯ùó)S¦\qÅsæÌ !´¶¶:ç’$Éçó[m~õ$ôb©õĤçž{î¸ãŽ{ì±ÇL:õ‘G‰Ñ£?üáGyd–e½ªÌ½fMk¹ãŽ;Þýîwo[ÚbOÁÏ>tÎ¥Ïþ:ï+Ãpþè° Ë° úè\.GòÝï~÷?øÁ©S§Nž<¹¢¢bíÚµ!„^U_Ù°aÃÁyCé¡QIÕÔÄ1º¢aL¾þ·+î ˆˆ+_ŽWÝóa–ayÇH_VÛ6·xJÚÍÈÇ23BDȬØ2£~×óf &dB‰Õæ8d–™ˆÜrË-?þø vI¿_…~ö³Ÿõ°°mË ¼.u7þ¯ÿú¯C=À­·Þú‘|$ÞÌš5ëôÓOÿÉO~r×]w-X°àCúPO3n ]vÙeý~»•6áÊ0i 5šüã´£>¾ã<Í: ¡Â¨ˆu4ÞÎQ+È‚¤®Ä ¤˜–&!iTSÑ@£Š N‰R›1À@:S³Øò.r^Œf£Z,‹š‚b`Ì[R*5rÉ%1eÍÌJ¼’›m±„0 NKÓh ‡·l8öüGj)%.ni  jf"N]€‰Å;®€Â KN¬l·Jw#/@cÉÇxÄ@š"ÈRæ6L(±š°Æ³€`*€šÂ@1€2HÅa£ÿ ñŽÄ/¼Ñ¨ ï¾›,_Qg@Ü’âWTS3̱8éF‹IÚíÍ.ßcwNa0Õø«>c-¿ÆCÇý˜ƒ)YºÝ›XÜM‘R¶¢ÆkÒ}Ñ¢z2Bâ- Œñr¿2< å' s±–24ÎÐx›ŒJt·g¤÷ôqþˆÁ¨j0 :œ(W÷¥båýŸ°x^•ŠC2T̺*]Õe~s×úºB¹-Ò O?ýô%K–lÅ,X0qâÄY³f•‹Š-ypȉ>±$IŽ<òÈ•+W.Z´héÒ¥—^zé‹/¾ØÖÖV]]=bĈ¸ñ¨Q£Þ÷¾÷ýüç?ïììÄíJ#:>÷ÜsGuTccc™ìЫ.êÖ¶§Ø¿a×kWÞÞÔÕœÀ)éáÒ7#TŸwŒôæ‹ `B€ªuÂH¥GŽ *ÍÅ„dQ¨M‹Á©©*ÌÔT3’ ‰8USªÑ$CMc†œj€!ƒBDM!FÀ‰3˜‚*BP ]ÔD`ÎD­È~ÁH­¨(§Ià „Dò‚B£¾s¦&”è¾6éJ,¡¥)hZ¤f™ÁÄyç4¤A*ƒ‰¸43I„èT…y…Ñ›3æŒ>e§š:3Ð;–à›BS%;/£z#¨ç2x2‚¥4³Ì@¨9o€H0ÄÒùb4˜Ì4PÈ.Q§"Ž¢fêÄAR+B™7€B1*éTEœW¨OC@f°€Ô(‚³ ¦dA@Èœ)|‚E ™Zf˜ªÑ¬ cβT̙ͫ7éòVAMS¤‰9£0Ð@1S15=²ªU3³Ì Æ âÌ@Â!s™333õæcµdÂL  ±LÅI©Œ@œ9ªÆ !þ0µ4®PÄí¹Œ4x˜ )ôµxÞ,àá«ÿoT €jš1óO™þQf4Wª»0dkßneºxñâ3Ï<3ÒÀ^ïNB¿ýío³,;è ƒÊáœ7Aö‚B¡ð‘|döìÙišnÞ¼yÙ²e!„}÷ÝwÔ¨QåŸxïçÏŸßÚÚ:øUuýúõûØÇâ!z– ’óŠl‹Ú|í¸Â¨–ÿ’ˆH€:xˆnk¢µ!Ö%…ª ¦. A;+GL¨?ªÐ˜'7…¶ÀNG‚91˜Á4ŠÚˆ󕾢𕅤¢J* IU¥ä+\¾«ÊB–‘> $’eí5ùšª\!ï •Ì|EÁ窤²ÒUä|¾ÊòÞ·‡."œf&jbR´öD“‰•cÆTŽ‘Œð@sÚáÙ—ÀiìQ±£ô•ÿ %'…:_SÊvm%à)i@Hgi]®¦ÊùT3£7˜   ³PÌŠ¨¯9±fLC¡¡Ú6w¶kOè 35£ 3O¯ù,he.©Kª*\¡-kU„s0˜eð–ŒJFt2 ÚI£ ½©‚4Ñ´.–/P2ÉÒÐ’CÍÕ£ÇW®Ïrâ[Ò¶ E³Œ‰õ÷…ÎD\¦Æ—¤!©™2sâ…„š…º\uU’o·¢iPgAé&0d YÀˆBC“œ¯ªa¡B U.É'¹JVf– D™GËHíô¨‘«­ô•R(¸|…Ëy溲.ËRqB&™ÁÕ‹Ó`ŽªN]ꀹ‘Á….ë$ -×ĤtÈC:[³]ÕØ‘•õU¾bsÚ¡YðÎ p„W³€Pí*«óù6í„©§3ƒZjÈFøÚJ_)‚ÌÚ‰j ‘YV/UU¾²B’*_™wy—Tú\•Ô$d‡ ¡9ÄÌjõßxü›ìì+ÌWŠ…®]GîòåY'Po¢Jº¡:åžÊôÆoŒù7[ÝcíÜsÏmiiùþ÷¿ooV‡¼~#CúЇŽ<òÈh•yåo7lØÐÚÚÚ«ºv¿”ë_ÿú×Ç{ìQGõz#O¯gðáøÉ¸åo÷\¹ìz§µp4šeä6vîz ˜€‚ÒKVÌv¨™|æÌæ;x\ÝH§²9mypÝc=sí«îG.Ó¸ðÔ â.Ûïœ}Æì2 @%ÌèÀè&í¯/=ðO .0R;;÷kÜã¿çœ[Ť –SfÎrDÈHGe Î~äû×¾ü{/U™Yb’±¨à 3ZPouÿóî³w­ŸñÌÆç>vïW[µ3q ÌBÓêv¼î€ó«s…ë–Ýùï~Ï™ˆ×LE 4µíKÓ>õ¥]>¨S%ËH5<Û´ôøûÏÜdm¢¢ ÐÁtD®ñš9çL1‘ŒÎbê!ŠKš—^³ä¶ëVýµ:ò’W„”L f4¯øåÜÿ7gôìÅ›^<é ›<Ò —H©¶›…÷Žžó…éÇÎm˜ÕXÙH±æbË¢¦çÏ^øÃûÖ,|¥„̼Z(ι÷Ï=;'¹sŸ¸ì²o4§ Ô â’w}àè]„¹kWüñŒßI$G™¶ïU?ëçsΪóÕ€oÈ A´²_xèü¿¬¹Ï»‚£x›ë·m<¥Ÿ=,žhƒ«‰ú f±Ñ×–Ò††4Õ½§ÚýýïÿFâCQYÿîw¿;ï¼óªªªÞ4ì‰ãïI™¨R\|}òÉ'7oÞŒú;ô‚Ÿ/~ñ‹³gÏž4iÒà¡­v»Àîyòí+ï^Ú`$H›õlCIM¬ÓKu›fÔM¿å½?šT=Ž€2й‘®~ÞÄ÷:áÝŸ»÷[—>“j“ Á*¤ð¡íÈç2ú¦<{ÅWTr“Âc?lÕÍÌdZÝä]ê'ÎØÝ(йúÖݵè]£wùõò[´ 9s Õºþc·/}sSã„WX…KvªÝþŒÝ>ûÞQû~ð®Ó×vmôÞ›Yß§ßéa!ÛyÄ”í«ÇrèøýX³€yU¨e’šQ’ã&}`RÍ8Bë“Jd¹èvQ m»Õϸ齗L©ÆÁcLe㇠>vÿzðœ_,¾Á%PË"B „†jwØ£a& r\ݘ^üË +þ€¤Ê€D’ƒÆí3¾flm¾&ÿp¾=+Ò áLÎ!ÆqúWF¦B×YlŸPh¸òÀ‹3 t€L̯7®jì¡cç®Ï6^óÂÍ.Ÿ3˜dãê?0áÇ\’$Õ¹ÊÖÎ.XL;×ñUõ»œÈ‘÷?ëñﻌYd˪©#3ÛoìSª'Ä[é>v'0Ž©ÑP1rSs¤ !åkž°¯‡‹a0šÄBùSk&±Ý!‡>wÃÉ—"¥9a’A  ¹¤æÐ±û,Ôn—oh¬±ª¥ p E·*–Yçé3>ÁìÏ©øRþ¢±>_wÐØ½><é ûÖ=¬–‰øZšN1iFý¿ÿè™W¼p¡"d­ÿ6ëÔOLGµ¢vÞ°ìv.fudÙÞ£¦Ïj˜%Ïo`¬!MØ¥q‡¿®ºN¡˜d0ʶ.½í‡†þúYÚy┣›p Y I dh;Wƃ>ûì³ .|#;‰Š µµµ¥¥¥ªªêM«tÙ+ýs»$~Éâ} »žvO9iõêÕ'œpÂ-·Ü2räÈ¡2z^•K1³k&}mÖç¿øà7}®F áM¨h Fs–µµš•—îûõIÕ£IÜ¿náO_ß:Žßáð£&ìÈïÎ9ãþM‹žjzαRÌ7k×yÏþò]c¦g]¦Ž»ÔLžV;AiOmX¶´åEó¾àÜËtdt‰&úÀêE×/ýc!_L}¹ãváêéôž—nH7Ðyܰü/æÅàB–Ýî½ßÜýT³izñ³7ݵöž)Û~æ''׎ÙkÌnÍ>ã|Ù¬ê•ØÇ6zù:w¦\qÏçf€Gí—4E3f“ógÔî@µ ]›ïY÷(\Þ™ÆðˆóÕ—ÌùÆäšqföèÚ§øüµÒ–OM<üc;ì4ùážÿúàú§ŸÜôŒaf.BZóL ÷é©G\ÿòïÕ¼X qYê€íŒî gFcJ£)‹ð$&Ò…bER{å4vOÒÔn_sÿ¢MÏTHÅÌÚ©ûÙ³ˆÎÅ-/Á%‘âjŒš…®€J¯YÚ‘©ºRÿuš1d‘Q©]A5vŠ2GÉ€D4 æSM*oX¸ºc“¹`Þy{`õ‚—[×ÐHÕbÌ0dÞÚ²®:_Ø”¶>°fAªj^v©ž<µnÔNÜéÈ;×?ñËç®e®6ƒ @2˜fÚeDºÒ²n£BiΨìêl;yçã.œý%ÎÒE›–Þñòƒ­¡}NÃÌÚBåuÏÿ…È%æ-®Ùĺ˜'2(ÓŽÆìý•]O4„g<ô½Ö-,äk:™:Š€Š\L”¶ºuíÞ„˜ˆ kéÜüû呜IpU“WJÆü=O?ÖZªÆž½ç©%® )šQüТN4V~÷»ßµ··ouGѲ̞=;Fòßhé­r¸õ´lúâDüóŽ;îÀý³{õþ‰;yàbG¢XØôê«ö F¡NžþÑ+VüþÁu‰T ¶y_[3 E‘,MçípȾcö ññ¦gçýå_7·¯yÓ²;¯°sN˜|x­«úçiŸ8寤sÔŽÿ·è¢^\ÖuÖÞÿò­Ý?çL~¾ä×?|êgðU1ñŽêÝ’Î—Ž½çkÀ .É/˜w͈õ*Û–k IDAT!ÕÏ-øöS+¼Ôf!3ŸΚq" €ûÆ‚‹Ïê ë¼kâ?¿~½¯9nò!ß}v·…M‹sñAh®š‚Ò Ùmë>UõÂ]êvj¨ÕTl¡˜š!Ëö=½6_­À}ë¹ãe‘ŠH‚2íøÈöï? q7ŸÙ´ôˆ;¿°¦mœÜüâiø¯OLWÈU1ýøOßû $&&2(Œ„ó`h·¬Ê‡÷Ÿ»gí® ›žW €AaŽæ¡ 8HfêlÀ4%“ͺN~ÒAc÷´©Øü‰»¾ñ§•wÀ2ƒƒó3ë¦Ô³âÑæÅ9çCt´u»lÕÁ,ó ËRi’•l:ðžõ÷—Ó‘Ëů…)à}RA#BP¡Wè¶Oº{³ht²MÿyÆñ“ªÆ¥ÌJñRúÖ+åð1„pýõ×÷2 ^¯«íãÿøµ×^{Ýu×åóùrpåÍqµ rj½ í455=õÔS}³bû­ Wþð·¿ýí¯ýkl5—zpvs’;w×/$FA°mŸÆ# GÍwüøÃHBô’%7nn_™äë]¡Ú~÷©Ëcm…#Æ0º0Z‘‰)ŸTÐ弯â*-9ýÎ%Lr.©ô>ŸXNÔ;£‡‚t>çY餢à*%v’w¨ÄUzŸJFÇuL¯™¼Ï˜=YÞ²â{/Þ€|u.WË7.X÷ø /ýB:ùð„L³Wœ{è.&ß3ïòÊŸ÷®[´>ÛøÊQ»×׬(A‡ sÆï ÿ²æa*„ŒtgÉÜ1Û #.Y|õš¶U®b¤K*!üî³—wXÈCÆÏm¬ª£ÐŒÝS(²¶Ö4ÿ šä%ÿñ?ë4ˆ:Þ'GSMŒ,U°u&&/8B–2«Iê?7õCÌä?ŸšëŠ?JRárU’/0—<³iùM‹r@i„QÔ©EÞqÈÃ3M(P ‘¨^z‚•€z0ÑDÑè$6Œ Ž•ð.‘|N*ó¾’¾à“<éTif9…Î)¨Ñ-é 9ç-ç݈µë.\|•( [Yé냪Q ƒ˜)½”:X†ž¦%NµŠS‡bñ““?ØPQÈýë:óÑïu3q•y_ë½u1õðæ4X&â¡ Š˜ÆX…CÖñ¯3OÜmä @^j^}Ú‚‹Dbtbð%Ÿ·)‘8ƒ„9ï\!ñ•^*œÏIR™KªD-c'¢NÑ•üïxĹŠO—Z׌‘S¿4õCæ@+ñâ-ßÈxúU?üpt@ ’«ßïJ¿üá7¾ñ«®ºêØc­£ßÌŽ2[~,’K–,Y³fÍ@ž™¾–?lkkÛV' €%´pÈvï:fâaYÖá,K½¡b愌C7-À$ÓÚŠú=ÆÌ´#¤­YW0¨d°¤â™Ö/n^ÃØê1Sk&[Úeâ ªF9øJ€5² CL>+‚–ƒ#c§’TC—Y4R±ãŒJ—õÑϳÍù ¦"ܹòq3pïQ{ˆKÔÄ ¥ì º³mJ7Úí¾¦w•kÛÖÜ·æéS:pìXˆý_½«œÛ¸;¨!¤w¯Y¤(΂ZUeÍ‚4»ý"ø‚ *–£çâÖåK7­"t\ÅÈéõ;©Å'ÔHŠBi!𠛟ÝTÜ⸭+4ÌbB’^L̺³Ah˜\-¤{œ>¹~2L7t¬»þ…;5WE@ÌH2/ô¥öê¥yËÉ1˜”ðCcóF"ˆ)K),ì•Ô–%aêÕ…A˜ tê,‹ Wf"¢4!Sª(ECbÌ=MTH)lOÛŒ*í–¥Ú ”«®麕¸h$ÙÃÎLM,uæs…#&ì·¿lÉ-YÖ*ù„ Á@€ÊSQòrÆDªÍÚ¶Ëè}¾²ë'ÁTMN]pÞËÍ/K’ËPʨ‹ìD^Œ§.Ê.Àh*j9c!Öh¦ ä~ýý=lbª™¥0ûêΟ©*T„*¤+Úå—_þšhÑ× …îÚ3§žz*ºSGßÎ}Ìžy晘‘ózí¹ÝvÛm[œš™A–ºü¹û‰•¹Ê”–¨s`Íb’¥!¸aˆBŠ4ˆÂ}ý¸ª˜4u5o,n„8á fÅ´mYû*P…˜T=¦;Á”40¦HbH©¦trÕÄÈPXѾ!ÝæÜ í+ƒ©™íTµ}ÁåK ¬¬*6XŽ‘Ýò·»! ³÷ÔÏöâ”bi˜\;v—Ú ²hÓs‹ZŸO¤Â‚ŠÁ,áj&äGÁ°>Û¼¦Ø :¨eš9JGÖöbËË€ˆøI…ñŠÁ„43˜™ XÑÖt÷ºG L¨wäv‡ZWáD}ýišCÈöh˜á£<ºù…µëœsJ-Z::‹i›vµ†b‹:f“^5÷ð5² Es* #ZµÕÒfèæ¬½Õ:Ú,m5ªª¨Tª‘TJ(Y.5íÒ¢e­iZ4ÃqSDïZ³ ZºA¥¡´è~IG禌Ø@1ëztÓs&ùˆí–±;áw@µ:Ê×ÿ`ö¿Uù ArñSWܼâÏ>Wèç'eCÙ€ È:,Ͳ´# mišvƒx%¾d^‡ Û¶yŒGb(y:ç4îuì”ÃKŒ—¡xÂ{)Ír fýúõ7ÝtS¯èz/Ÿ[¿þ·²Ãj÷Ýw‰2=“]Þž²hÑ¢×ëNŒ”¹¸ò³cwf[ Ðl÷‘»|zÇÎê:Ë{‹yñ$gC{Q£bÒlL¾¾BòëÈ:Ûµ,XB-¬êZ­†q• dLÙcÎöz•S8¿]ÕXPAy±c]<„)¨Jñ›Ûš;ÓΊ|UUR“ƒk×"gɸ)¹lT@’<´aA{ÚQ‘TͽsCuÚö&aºGÝ´ê|-Ôî]»0íÜ”ÏÕ¥„‚«]%UšC[«v:•ààG–BÓ5麸çñ…Fô¬7§V€9´f—.ùí‡'¼—tŸ™ú¡+—ßs+›·¯­Ã•Í«³¬#aeŽ¹Ã¶?¸1W«šy°Ù­+ZÍ ®»E¿ý–sWŒ™ ‚†Ûí”ÏìøÑ4ñÞŵ´·ýÇ3?_Ùò’À9s –‚L )B¥±ÆÉ»÷HCgm¾öø‰ïÿìN…á¹M/þxÉðΨTðJ¤3ƒ‘ÈÒ‰#ÆŒp5Ö[V¶­…8…€ÐL!6RÓîpp]®ÛW?rö¢ÒWÞõ)I"ÑÀjïjØãºC.V81Ë yòê¥7߸ò/‚ŠŒ011˜p¨óGß àaœN#‚&_ÞåòÎ÷ –¼­×÷·åÀûÍ7ß¼fÍšr¹¾‘ö¾¿Â«‹°M˜0¡/¼½­¨<˜eË–¡¿¢>ƒ×ʲìW¿úÕ9çœÓo¥ƒ74°¸Â’’³ÿ:ãÄë_¸c½®w¨@âÌÐ^J<¨.:–jú0&%:ªÚ²B@xæÌT ¡ÄÑ… i7!QÄÕùÊßÓ’÷Œ¤S½ 8 "ç*ë65w˜ªÐYœ­±TÊñ^ñ¹g7-{²éÅ}FÍ“±WíÎh¹SÕö7;΀¿¬\‘L•̈èj¤@ï pÁ$„àèÄ"› *ÚSÚ >AßþîU.÷çU÷,Ù¼|jýÄ9£wž];sa˲UÊJhÒXQãí–’f]ü¾_x~D2e Ü…µ?ÿ÷‡/¶¼‹ …~ºª[)ÿ5<Ý횣ÛÑÙ"Uf¯°‚YF-ªY0@œMª;©vÞ+OÚÄšq7­¸Û’”&JJfÛ˜ºíkµ•NÐÌÌÒtßQ»tâÜØW´—NßêìÎ~}nföË_þÝ%az¢WqO PLzüøñý~þö‘8*UݰaC¿¤ƒ×¼t\pÁüùó·Ñ½ï^+aSkvøø”Ã-M!°îfàç ”f®» €ôåz…·£½šO qC¹ï”ciᩯÒáÁT Q ýë«ægè´öÛ×>¬t0¼kä,³,WQwÀ¨Ù [Ó±þ¦' ðôT”]14v©²r‡ŽÒƒi°œOÊL¥€<]{WóuKH^ 'ít„f™…H‘z½Àl¢!1WJä£É”¥øo<²¡!Wi‰õ»Ðì{Ñ·„–åAÒð|ËÊG×=ñèÆÅ‹šž}¼iÉ‚õO<¶þ‰à+Ì)}´†Sh`¬6#TSç’D™áo.yú—K›^È%UJƒpë`=©0¡/eײ»J^÷t|úÄÚgZÒNš~Ô¾ÛíÒvc±d÷õ„ÒäWÙn|dÃ3m\ò؆gl\¼¨iÉo—ÞmS'&¢Cw½¾¿s‹ÇÊð+ èüòŒOzIb<°×*:olûöôÓOßÿý}M¹\.MÓ~m‚¾vO/óÛ'ÒÓsxiš655õb lQø,‹Ÿÿü盚šÎ:ë¬!öx•´†‘0*à¾4ãØË—üv“¶9$Fdȉ›N¢¥å,v ÆRÄ)Hp ˆå“œu³°J*¸Tº–:´#*Ñ~C›u±tãh€3(LÔ@õTS1 S­©³ÅÆ*íÝÑAî©@ä¶—ï=s—Ïì€Ñ»‰¦ÆìV³£¬juûª¼¯È3‰u"Ó,‹å¿ÈR$D +gzÒ#”¾.PTÕ2ák_ûÚo~ó›!™B Œ‘ £Áv¬Ùþèɇ"Kãº/Ö…Ú’ÕѶÝªŽ 23«`./yh©@q€‘nLÒgçúâ&”¹RÛÀ®õ¦꺎uqõ¹CEc·WÍ9„tD¡ºÂå ´j[‡vÔHÉ%MñH¨ê\å‚K–µ,%¸GãN…¤z†yWpÐ?¯~ÐJ4Òr@è_îÚX´ †*_¨ò1 ”èùel¡!nÛZk6—ˆd=ÜÔ"tùÅ›–ݼê^FWùðøw¯j^·Uˆ€®í\Oƒc 1&Ѧá·Ëo½ü¹«îZÿ@,ynê_ͳxud7¸z(LeGßKȬŒMô,P/"‰ä$Ÿ$Þ UÔ  ƒMZÓö;W/üÍ‹þÐ_¿pëŠû6Æœ¿Ç©^ÑA÷3˜™Å2áäK­ëZ­ @£¯_9¡ÈW¶Ì`@’¸óž¼|m{hûŽÚã´Ç#+š…Xr½·NÀE>½À‰£ä|NrLÔ\° T£“RÊÖß;𘧃Ëu}v§ãr®‚ÈÊ+‚!|Î{Æf6lØPngÐËL™;wnìé¹%ÑšX¦×Pßr‹§_ë§/ñu°ü“!®Dgb’IäÉĺ÷|~úGòâƒ3G³ît‹!cµ ×›7v5“l¨ÑX K°¥K|Å•ãbm…—Ú6¤¬[¥ eŒÇ f€pyËÊx„í+ƘˆQAP!G'ô†•m+»´(à+ ýå`V¡ ¡µ«õŽuјkØgÔ®{7Ì€ ˜uݹf!|Þ„FdFUs›B˦örµµ•µŠ@Àѧ¼«œP9TCXÖö$VS†T“R]~xà²+—Ü/ùǦ¼§à¶ªÄWHi²¸éÅ’Ø¥~r]~d‘™—„¾Æ’ªÄå!±Žh?‰¡ Aèé>ív :ŸÍ•CX&§FõŠà•AT¤ä¹î6bTï}eR!¾6M;¿öØO;² ÄaÛ0{ÔôL[[®4½„°ÜÆtÓK­/Èç*ö¬ŸŠ¬ƒ4†’ujëgy)¬Þüô%Ï]M€Ô¯îr┺)ýœr7¹ Ð’3Š3Š8h첩šzgš‰ÒT¶y϶žHUÕIµS?¶Ã{ ˱;ƒ½o·´-1nÒ¿e»äë_ÿúÊ•+{YTñÏÊÊʵk×–]mMͪªª/}éKŸûÜçÐ'aóuiç7²”îë:W¶n„eÌ^²dɆ †4ÀãKQXÎÌf5ìöþ±û£Ø`æDÂy(† .ßn|rÓó€æÅï5r:T™ÁÚ5©rÌ´Úí ØTl~¬u™£ˆ!±&‰£B»Ã׆ÈÕ{%µ‡ÝêWü(ßåRiw…9+µ³€†GšÇ~,{6Ψvµ°£)©!ì?v€X¸ñù,í*¬TX“†ÁT™Ä,V¼uõ}ÑkvðÈÙ³GNðTë‹Ïµ.cÌt1ƒó4‡M›o^ ÂKá]53%tP¡–š³i£§ÕìhæbÛÓ­/I©ËŒš‰ƒs´h©ß¯¼}íƒ÷o|€½jwWÑÀ²Uk)ÁfðyâÌÉ#ÍO´;˜V³ýÁc÷C±ƒqaÐ Þ01Às@×Ú:Ò @]®2ƒöÝ%¸+Y = ›Óvc1ì• ”J-”æ€AœJ +Õv¢3ŠJ‹3@@-Í@_½póÂ[ÿöW”ä¤ÉGJ°îv<*ÄiGTàJ–HwÜ3qÉæ´éîµÇüéÉGÂ×dÚed$>t/€ô•)gÝöŽA &µ?~öšç6/7ÈȈóöúgµ",>j’ÔPêe"DF#aŒñ8ÑŽ œÛºPÞ”<QÀ4ûä„÷5ja¸õ­¬{åÞ÷Š*“üÎw¾3þüÜh›7oβ¬_À‹+ÍéÓ§ß~ûí?øÁbŽËêýÁÁ`·^?±ñ>uqúV˜î¹}/ˆÚ’®t}¥³³³££ã;?¹q¿ŸŸv4èŒjÈœÄnlCêjƒï¬Øúç—5#L>=éƒÎ¹,m˲"²¶ÏLùHU®ÒjzfUËJç#í»D³L cw4Á˜ÅU°0Ðê§›@;èRs” ,ˆÁœtýs+6¯ÃÔš>:ز¢7Ž©ܤÃÌ ·¯|¸Ï£!¯õ\Ѓù‡V/jîjV“ýÇí9¡j"€{W-lO›ˆYB!®]šuܺþáènúÔ·'®6Õ6 ]èØt”Öç+úðš…/7¯NàÍH‹$tK1¹¡)†Žkž»Ъ\åÔºb†)bŽ>³C>©{±iÍkîÃ;wϘR=¹XlM³ ÈÚ:5 V$ õ Ñ\° t`KGëÚÎu õ‡ŒÝíMfš¶!mýÀö³c±‚%›—1uB$êJÀ`Î+ UÚC‹…–³ÐB[š¶j±CUK—™3 P*2 ÀiˆgÀ®øÛ­°à€c¶ߨªÑ!KMèTÌ\\0v—0¥ÅµI7$˜:úk^üslÐwÐvûœµëÉ–jZÓb³²¨i10U:˜ ãÏ T15/M¾õÄO…Ú±ßôv‡iÖaTnÕáà5f2#EjikÚÓ¬%+vfY»vµB —8G¢ÿÈΘYZík>±Óè.d(·DÞ*åõj™Ù$_z饯}íkW\qÅàûY¾|ù@` ªuuu¿úÕ¯fÍšÕK×÷"¼^¼ÜrçØ«ê£ôÁ­¾ BÒ{ŸÏçûõ ¾&±­¼A¼†}]—CBï±}ïvsw1í‰Í‹½Ï™Æ.]C9’° ]p•×,½ñ_f;:?òàñû^yÀù—<{m{è^H À©Ó?‹Üô·Ûc“ÙÌ)áhæq|j‡ì5r†G¥°hƒkîjúéó¿mG|‚Æd#@ÌÄd–B$* ÷­Z´¦£iteã¨üÈoàÏÿ¯K5͉„Œ**Bi>6£I¬± µËÿuÝÂ_-¿õ¸íƒñœ=OÝÌn¿Y~[GÈ={Zݸ}øGm~R\e—¡dkÎ(%%r•¿^zÛ?N=úà1ï2„s÷øÒ]kXZ<* `ŒìE½°ÛÈiÿ±çéÎ9˜w¦R§¿yáîÇ[Ÿ4É\&©ƒcwIþ¿cà èì:d»wO¯ŸVjº[®Ç½UFO_$ ÙÒÒò“Ÿü䢋.ŠecRñ¹\nÔ¨Q¿øÅ/úUÐñõøã/£Î–@à뛞_õ<…ÁwÞï–=%I’ØQ´×½æìé;žÂfCf‘€âóŸš<ïßy:rÈ`CY¢C €óžÉ²®ÿúÈw¯Øÿ[;ùÇOš´Í¹ ˜ÿÌå7¯¿=ïªSénMl@ r1¾›0È3–$t×Üï5y‚Yâ:LE…&М2ömQHõ·Ÿ¿jÿ {¾ÜùÆÏùF{1­HòJº©Ø|Ú#´i‡“¤;TÕ+–<àÂ΋yù¾#ÆÏ­ÎU°¡«é–§ ‘LS¸\lû áVµ½ôåG.¸jîyâ’cwüÿì½wœUÕÕ>þ¬µÏ¹wzc Cï]ŠŠ`QPT¢Æ±óÆ ÆXû[¾Ñ˜bŒ&¨$F“71ŠþÐ@°!X° ¨TAšÚ30L¿÷ìµ~ì{/—i Ã`ô}ÝŸù w.·œ³Ï>kíµÖ³žgì…ÝNxð4àÉÕÏÍþâ ã…•ÙXk…V&£`@)&̆ÄÂÛ^µã™Í¯þ¤ßd§f_bOc²Ò,ÍÔðH¬1¼÷w|pË’©¼‘áuI/úé)B1ï¦;ƒ %?]`™X¨‚<ï«gžÛá´£Úõ-JÍŸvòí5A$Ì!uàFÆŸýë•’ŒÇê8@¢¦p¢Ê2©×iÀ8MÀTÁºpïê÷·|äûDÄ–"†‘J!R„)œB~µD>tGÍÖ÷wr~—±ÊtYç³þ¼þ%«d¬5b¢ê“ª1ã*'Ž=0¦ríX‘¢×/~¨s8ïÄ¢ã:«ãÉguxì±ÇÞzë­;vìH¤ËÓ‘¸?/¸à‚ŒŒŒ^x¡žcHÎnzê©Íø‡vKNp5sœ ‹4õreîCê!èþ>hŸµk×®žcna’˜œ½{÷îÙ³§)·Ô–A0pa§Ñ9áR¡6µˆ„¢„‘ýÌÆ}gþ¯*ûœA 0§ØZUz÷G]÷áoECPßSã² FU1Jm®ÝNDVìöª&VVuš-@ì–Ê]*Ø)¯¨©V2¢ %ÇÏFJmP>ñÝ;ÿ´æ…òÚR N ù€2¢on]|î×-ØµÌøáýÞ²¤ª'ªÊÆeë»[ªw 3?Ÿ·»b·!ÏŠ‘@D$ì1iÈ÷gl˜sñ»w¬Þý™#Èñ¼‡Ð–šmw/ûà ýN=†acUˆA⦴zOm´ŠIvW”$F§þeýìòÚ½ÈÖªq5bU%–€L3~ÇxjAž §Mýì©oÍýÉÂ’å(9d CQm«>صâïæ3ùÌLÊ@ˆÄ·dˆÃ[#%Þ»qúº×*ë*œÊ)Ìl;ª¶ß»üÏ×/þ…g­O}C à !ëöÊ‘2TEã:X+m$RÇèZe IDATbœV¹ÏLÕuµ;jKAØZSRÔ)‹ Hf}ñ¶Z!àè‚þ=Ò;ZµÆRŽÚ nsõ6(—V–UE+A$"1à8€0RvÕn=çí›§®ž¾-ºNÛ ¢ª%5¥•®æ[RÀ2ÈßÝëvð[ª¶ªZÎy{÷‡þtºUQàúÞ—ôËêD€ÄšÔmU»ë$ã:Çì;ЈªµÀÖÊ=€'õ”ÄÆEoì ÿÉ‘šb5I”Ú‘ ´Õ7[tIï²lüSYá,еSÈáB®_¿~æÌ™óçÏ_³fMMMMYYY]]]CÏT/6‘ãŽ;nþüù÷Ýwßý÷ßߨuvoýõ×O;í´¦‚ħT+ºQõÏ„Út²¶BÃÏLöLÉîf¾îî»ï¾ï¾ûµ6S¯ŒôøãO™2Å=$2omë~T•”ÀÁ¹óo½ù5ãe@EAmÕ8  b]=ܵbQžæåÛnh—´vF©$¨ø¤lMIåf˜4Ã!×§mÝÜ«:9 ?=Ð㊪ ìýÌJL°¬†\‚âaÅ'¼}(sHn¿-•%+ª6øÄ– YvÓ(50P²jU"=²: ËêŸJ’Ïö|þñžÏ"¨6&“m¸l~«&ñމôÈìÒ'½[¥V--ý¬N#Ž¢R¬R L\eÒت´pö1¹ƒº¥å± •UW|²gÕ–Šm …4lÙ:º|e¡H”ô¸¬þ9~úâ=k÷U†ÔÂcÑ(ÕöKëÙ5»½ˆl¨Ø¶¹j‹G)u€çz£ Ô6Ù"$FC¢QCVÀ BHéÓyPvö•tgdïºòÍ_Ôì ‚:6©¤fOÕ‚Œ8‘‚Õ("AßÜnýr»çš)§¤ªìh`@M µíLÁÑíz0‚€ÔPð˜yW¤tÙžµ`CŽËZ ¤¶f—Nií×–±¹j»ñBKcYŸB#rx^ÈJÍ’]kë±°Dl¥N;euÕusÅ®ÕUk² ()[#FH™9°jÕÖ§w::§_»” "ÞVS¶bϧÛëöÀóQ  FAD# Mÿ¸tU%*õ`ij<¬`P‡ª5X\¾²:RòUªµö¤Ü©^¶"J¢jBP VQbDÞ+ý´.¨õ9ˆP_!m»ã ‚ÚÁyý—MxîËsÔ€¢ª*ìY[!pÔÀ·ª¤V €DC&UöwþŠÓΠ6íìþ8«Á;§=~Rá1‹§ŒK¡¶"Ë÷ä“Oþà?hÞ€6´¹:t¸ãŽ;®¹æš™3g^vÙeN®Qëììo=º³† ´ýèGS§Nm¾„ãTVV¦¥¥5JPYY9kÖ¬÷Þ{oýúõµµµ;vÌËËëÒ¥KïÞ½O>ù䢢""ÚºuëâÅ‹7nÜ …®¸âŠ´´´füÐÇHEY5ðØõÔ@!Ÿ(jµ.Rñl8àZ¢X'R`mˆ)@Ì‚ƒ4¤¸èƒ ©°’%Ã(Œª0+[£jÉ, ÊÆDI|ËV-R([cJ6jB!±"#"†=Q +¬2<׋ĞZ“sM !1q}eòD} 1 5 +dȪ!²U1†!¾cåp¤G 0±FI½@±Z†Ô·jÁFÔ«6R«ä)1Q¢—œ¶ÍK0 O› «S<øFjƒêA9}F “ãrº®/¢_á”cœ­,(((..Þ²eK‚*¦¡ÁíÓ§Ïå—_~Í5×dffÞ~ûí<ð@©4enb®7}ôѾ}û^wÝu ÝÉJJJ¦L™ò÷¿ÿ=''§\­¬¬ìŒ3ÎhT©Ú÷ýgŸ}¶  `Ú´iÿüç?]‘ˆ–-[öÄO4JçãF¯^½:vìøùçŸ7Ì×5$×®L:õøãŸ8qbó¾§õ‰‰` (LÍ;1ÿ详hZ´íûbu>&ŠGKໜZ„ˆà{€ã‹‰m’àòŸn bqÝ@à<#èÎñªª‚sê/ Q”œ¾&“¨c^5Gò{)Çþ%K-+VY·Kˆ=pø 1 uÐWuáŠqÚ9KŽDÀÙøôZ1bÈw°{Þš:м¡ª†Ùº½||ï!Š‹`X%§¥@ug R!K±KlcËW4,R ªAÊN– `#¥ý5fÑØ»„\w²ƒ´ÙxŸ“ÚÄôR!I¤‰oŒF£·ÜrËÆŒ3&;;{ýúõ+W®üË_þ2yòäÑ£G7ôŽndff<ØqTŽÎ·µöª«®êÕ«×ÑG]/é×Pl»u¾‡¡ ì·»Œ™±éÕ€4–®úf|3þ¯Žzwk3@Öÿ÷I[©IY!^<º„a…÷­âÑñý…S<9x¸“Ì–°}®âà†nøÕ¯~ …*++³²².ºè¢ /¼ˆœMwŸPRRòÎ;ï<ôÐC¯¼òJ‚ö&‘IkÊ"'û÷ÖÚzËÂÛ¾}û~ðƒÌ™3'''§ÑˆGU333ÓÓÓ§OŸþ‹_ü"ñFw„½{÷þâ‹/Ö­[·víÚeË–íÙ³''''VVVfdd¨jÿþýGݵkWûöí?~üÂ… ï»ï¾Ñ£G7,$¾ô¬³Îš={öaÒŽ1syyù\0oÞ¼ž={6ÚÍsPx÷Á¯/@ S Ž-Lm·3RžB~ðíùfü ÌÍ š|•µÁZä,ÚªÆ#Žƒc⨠"³‹?9cz^JNl÷G<÷=õöD´|ùò’’’qãÆXºtée—]VUUU\\\TTÔ¹sçÜÜÜòòò/¾øbóæÍkÖ¬I$©Zr!“xnnî·¿ýíI“&egg/Y²dÞ¼yëÖ­ûôÓOF''œpÂC=4|øð¦RR·ÝvÛÔ©S׬YÓ¥K—dǶqãÆ™3gÞpà žç5¿¤ÜŸï½÷Þ˜1c‚ øùÏ~×]w5Äg»±uëÖÁƒ—••5µ:¤1dÈýë_]»vMŽ{=¼ÃÉÏŽóÚ¹Ûç‡fùãóÍøf$ßÔ’Då×bApÆÓ­Š€ØS…­ÛwI¯sŸ>ùWõJ²8˜ã©'Ú–À\%lœµv̘1ï¾ûn+b؆Ï'ÜF8¾á†®¹ægm_WSS³nݺ¹sç¾þúëóæÍK)B¡Ð…^øÈ#8ÏzcÕªUC† 9á„fΜٮ]ŒôwóæÍãÇß¶mÛ† Úµk—¨5å„Tõ¯ýë•W^i­½õÖ[õ«_Õ+D%þ¼ýöÛýë_¦ËI¼½OŸ>3fÌÆ kX/,,,))yá…^yå)++›5kÖÕW_½aƺºº—_~ù‰'ž¨««9rdC/‚AÆ ;öØcß|óÍ×^{­¦¦fܸqõò{îÅC‡1cFyy¹‹QÇ÷0óîÝ»gÍšuÔQGõîÝ»žïo}Gá*Án)øJûü‹¯}êà›ñÍhwƒxÿÀÝúþû­µÏÿ¹!¥ü°ÏEG$∆’UëÿÃñÿ8*·çþ®XÇW“=<É·´´tÖ¬Y‹-ŠD"………Î0mÚ´iáÂ…[·nEÓn‡î¸ÇƘ™3gN˜0¡¦¦æ…^xñÅ7mÚ´wïÞªª*cLïÞ½ïºë®N8@(ºé¦›~øaĵDdÊ”) †øDÇúC«ªª.¾øâ_|1ÉÕ›O<±cÇŽ]ºt)((8ñÄGŽ™F4^¸ã\¾|ù¤I“Ö®]ûꫯž~úéɘD6ì¹çžûÎw¾s˜±NòãP(tï½÷ÞrË-ɧ‹ÒZ÷ìy#AÍàW.]»w£ç…¾1:ߌÿËñM2Y.5a÷‹‘Í#ž¶DµA!dœb»etê™Ñ‰–q‚“8h†Í¹sç^ýõŸ}öY3f±)•„†:Íæ]~ùå&LXºtéW\±lÙ2çw^ß¾}ìܹsýúõÝ»wÿÉO~Ò¾}û»îºëŒ3Î8묳ŸæÊ*ÉQK¢"’žž>kÖ¬Çüæ›o®ªªºð ï¹çž6Œ½*++‰(ѬÓ³ "ƒž={ö˜1c®½öÚeË–¥¦¦Ö õTuÒ¤IÏ>ûl«UÝÎ^$¹í¶ÛÞ~ûíûï¿È!Îw6ÅÞ¢”lb(B^êÈü~kËÖß8žoÆÿááöìIÅ…zFOUE•™c(Sýz×~Ú®Ôu°©'"²‘ŠÉÝ/úÛ¨{DÐh~3Î`Þ¼y&Lp’9GŽ$5a© ?ýôÓ-[¶œ~úé%%%ΰΞ=ûÌ3Ϭ‡ãÚ°aÃ<ðòË/÷êÕëwÞIÀ F=þü††Ø5ǸÓ/(((**Z¹reò1¬X±â¥—^Z²dÉ–-[ÊËËÇŒ3mÚ´¦8¾lÙ²#FÜ|óÍŽ#§á÷®ZµjøðáÉm2Q“&Múþ÷¿ï‚¿V +@ã@”€É{ü³ç¯Zôs㥠¦.×ÂqUÃÃ+®¶p%7¯Úè®3éŒõ›mð<éà «zMÔu–ªRËN¤%…=73‰H\LèpSCõ7 ­Úî¸$5¶ž[r±÷〠aÿ„$ê[òáõÒÝGE—£¥ R“ò{¤wÝ^]Z- …¼@8¤e¶AmÇ´üLÊÜP±EDòšbøªI$7ñ´–H ŽZÞ‘q©òðöýõÐ?¿¢¢âºë®‹F£GTñ3ùòdgg¯]»ö¢‹.Ú¹sgE}çw{ì±}úô5jÔüã3f”••õìÙóüãw¿ûÝùóç»åè2NiiiM©‚&¬vAAÁ¤I“¾jõêÕçwÞĉW¯^=vìØ[o½õ±Ç»ùæ›Ñ´ž•––¾óÎ;C† yþùçŸþù 6 ©,”xýÀÏ?ÿü6Ÿ±ÊÊÊ'Ÿ|òä“O>óÌ3W®\ÙJDu¼Ç bÀàÜž¾Ÿêà¤õOù°—'µØð4JNþ_Mú¡xM"v“zªõ:Ú˜k¡¡o«TGòO+l®{¤I§Ó­jòð§·¤ýZœæ!iN¶rwÕà%~ý.UµA]¿¼^sNÿËÂñÿ³xÂ?&u8;RPTaƒÈµ=/ùøÌg?˜ðÔs§<Ø>+Ǫ4ù-_“H¨ kB^'9>ˆ ¶[ë’Ç{ì3ÏëžÝÕa>7Wm[Wño ¤|\þiy¤<ÇÏϰ`÷ ‘Zãe4ºZ¡ZMÿ‰Ý[[æ1¬µp ¾*C úA¹uéÑ#äoöŸs<¼¨Ó8Bh"bæÁƒ¿ûî»Î£äçç«jÇŽùË_Ž=zìØ±7ÞxãŒ3TµgÏžŽáæ Çìæ!O:uΜ9}ûö3gN×®]—-[öÊ+¯„Ãa§`ݧOŸâââ·ß~û¼óλûî»]zmâĉååå ÛÍ7ßüæ›owÜqh¬ä„B!ß÷ÃNùì³ÏÞyç?ÿùωèµ×^‹F£EEE÷ßÿÚµkï¸ãU½÷Þ{‹‹‹¯¾úê}ûö½ñÆ]t‘ûüââââââfV³ˆ„B¡p8|Dr I{äÍ›7ºÁR‚qÚŸüž] B$£ñ ™9LYUu|ÅÍoƒšYlõ"kˆlcÕ]!(Q„•­6ÚÛ$ªŽcXc|ÏìŒb }¼6D¬$ܘ€L²ã "'l“÷°VãÄx.“ÙäÒ!xIÁ™$v«Ž>>äÙÖ¤üvÌÄó~%_:Ð4Ókù@I-Y…ªB&%“*"qVfN©Ôä~׿ ™Éø‚Ѧ|¤xâ|0f(´©vÇYï^Û%-O]u¹­H!/BˆÇ^Êó^~cËûi~êÖÚ]ÃÌMA9œ!;”m¸Š89Jà9¿„Ñf‚ J¬$lzfvÒVi¬Ô ŽhÜã}·nÝ Uõ¼óλᆦM›6jÔ¨Y³f­^½º²²²¸¸øôÓOŸ9sæÄ‰EdܸqçŸþˆ#ž~úióæÍKMMu´ÙÍoŽ˜yÑ¢EG}ôyç·~ýúÌÌ̳Ï>Û½%333?¾ªªjâĉ÷ÜsOâ]×^{íúõë/½ôÒßþö·-LÖ»ÞÕºº:Ç©Úö©ù$ÛÑ”vQ³ëÜÅ41[C QtL/ÎÈÈÈÚhlcôK¶u®1±“X4#? 97þ#ªVÄý¶MŸ—'Î8iµäÞkÙº·*Òg¨*95 X•J­™<›ÀŠ8<›sZV¤ypUX€d¿eoN×&‹ƒÄƒ~nt{®ªJñ)"‰G#¢$ûU’NTls¼–nŠârïÂÆ. HÖJÔ‘ÀFö»Æ–_t• Z+Ñ ÏÏ”ÓcdÑ࣠uËìᳺ:n3±ˆªZk­µ"ÄGüè©Á¹ªÖmkšü‰;ÍÄÒjú¾¢éZwì åÎZQhaÜ …|ðÁK.¹¤¶¶öšk®ù裦L™rÒI'8óÌ3Ï<óÌŠŠ wg:ðuìØñùçŸwyÅK/½týúõÇ/,,lI”½mÛ6kí©§žúðÃ÷ïßÿœsÎùÞ÷¾wÓM7õë×/WWWOž•½Æ©¹¸=/‘9Tœ+”D•ÔV+õ«c¯7ÆdkåöÉïݵ'RGI<+L+=³ý¨_s¥rªÇfã¾/®xÿç;#¥žR‰ûÈø)[h u×öšøÃ“‚À°)¯úç£ëŸòüL Œ{ÆV™}hØÍc;Ÿ ""×,ùý‚Ýzä5¥a¥vxî€ÇN¸=l2„P©¼nÁoí[éQX“KA4ˆÖ^×gò•¾£j R+uw,ùÓ¼ío?Õ ”à+jÁªjHêÂH{|äO‡ô 6øËg/>´ò NM‡¨›OC¬Híu=¿{eÿóUÉcDHCJQCKŠ‚¢J"joúðÑ·v¼¤7‘‡Î=êÇÿ8Ód“ª0©*)ˆUÁªh°µjËÒk^Û±daÙÇŠs‹ˆQ…! ”‰ÔUeRe‚yÐÀêPí™ô ;ž~Y3ç *禅Â6¨­´uÛjö¬Þ³vþŽ%¯îxKÅn„À–,Ü¡“€ DY)Â5ƒ3ÿé„gúyªT¡·½÷»w+?I¦šˆ +©*Tk9èú =Nañ,bcËÃmµc:K¸ÊHHØ þôÙ¿~¿æïž‚šx!Mœœ–…-[±=³º?1âŽüÔ"h4 ëÛ»}É-þŠL˜Ï(” *Pˆ@˜|²…^Áã'ü¿îÙUIÕ:¦(±‰Q”‰%VXOs™nÿS«‘ünQéj2Ø °¿ IDATétŠi•’6‚‚Šæz)y)y­ûœììì¦Ì\Ë+-7ß|s”?õÔS“'O>ûì³{ôè1~üøaÆ…ÃኊŠ>ø oß¾×_}fffrjî¿þ뿞{î9ãÆó}ÿ ¨qU;vìÂ… Ý ^uÕUíÛ·ùå—ËËËûôésÝu×Ý{ï½ýúõKKK+//OIIyðÁ'Mš´jÕªûî»oÚ´i¿ÿýﯾúêüüüd:œ†ä: ÇSZZšŒlÃp'9©Ø¹sg4€€Bë_¼Ææy^‡Ô¼OË7:°µR6o|?A"BQ>©Ã°!¹ýÜó³z´O+ÚUWf@>XT-”A¤žµµc: ”7Ð!½ûeç¥d팔6ººD•¬œÑéøY= 5 RþÙðþsûÛjË|3¬Xk‰…l¥Oè|rÏÌ®JÕ ú¾·ã g5 vè1ECŽÉ¢dADÂGµxÏ'àp#é ¢®Ùíew“RÉUýΟ»ëm_LÀ…ÚØ%#‚ªÚc û]Ús‚%ŠyÕQ¶ºÖoXU5ìY‰¹¨×˜A¹½bÆQÔ2™ý™$<ǺU‚œP<è­¯³×Ôµ®>&§ûȼ£] K0û3ñSZ–ÛçìN§Ü!úÜç/ݾô±­µ;<“ kJËBj‰`‰M5ª#ýs{>zÜOOé0‚bŸ&€’ÎñRsÃrº_Ômüâ²Oxõ* †Ñ@0j…«\'C:uY0<¾2õ¤.ǾûÉB §Š€HÖ2“°jøüžãzgv‹aD(‘ôsèq¸ ]]—ô$ÂYFü~ÍßÉ3‘‹8„ŒAÄ^Ñã싇úêØí»úçôøÛ¦.Û½ÎgƒA ƒ¢.smƒÚ)§øì.'Cb©=A<¹àÂS¡ØÅš¸÷TGuè¿ ìý‰¨((úõpTÉjË4IjÂY°EÔå‚W•€%µ òˆH$ªL`‰&r;„ªH]Ã|¸ûóž{îyíµ×öìÙó׿þµ)>¡Ä3k×®=rþ&ù¤’'?Úhŧ8à+ZÓÇã*¦ˆbBJˆU° aO‰ªlbÙŽý A…›:RVcÖr5‘Xâ䊞禛´:µ[?¶¶"bY8V.(^ì M-  °€¸ÎÔÛÆ)Ìì}P¶z[õ.q$„gôuh"%(+”HIÞÉEC=ˆƒï®-[¸{›&""±³¶* eØÇ †‰Ö!M.Ÿ‹+4íØ··™ûNYK.bŒùõÊ»‘FÙ*¢–ImÝ€Ì^ »É|†¨ *°XËV ÒòØ1wvÏ訫¾G¾‚÷Ö–oØ·u}Å¿wÕí!eCž…}¿ì£ÀF ¤ì L ²"âðÖ¢`®e%ˆ2ð– Á2Ã(„XD¬5ˆEiÍn ?–Y#ФÄB¸Â ‰Õ‘ÝWSÕä©¢‘êžÙ]äõPU•TîŽÚˆ›ŸS;Ÿd(l¡Ög‹((XH€˜¹²ðaÙší5»‰=Q0‘ ,{ÆùSef…'PˆóiÛªw_õÁÏöI«@á%âBCDj>Þû¹ñ›.Ъ±C3?\üÛå{W…Ù«c [¿^׫z]<8·§ˆ‡Eƒ³:ž|bÇcço[ö  Ê0ª¸”H42¡Óø1ÅÇ(L¬ØÙsßÒÇgîx½¤f5ZèôÏèvVÇ‘#ò~nÃ|&U &ÑCÆ « B ¾’( †Q«ÄIÈb_¡1üÝÿï¨ü^–ØWo±ÖÚ½¹wv'ë'»6ݱâ!<°zƒè⊕D¦©ÝF ÉÉùƒ3ÂéV•¡‹JW“Û·Sv±#ÛÕ%»Ëç[ªQ@E@ä©FUȘ‹Ï÷m9ù­µOËf¨Zömé™Úá·Ã¯ ›L‚(ô™Ms¦>Û3i®D'Ä‘htÁÎ!?JªñŒØ€¾.Ž'¾« T´](nGH¦`3G`ÓB¿ÒhÜAUcUµwïÞ a-M)÷4TÞt¿1Éhˆæá¤õž …BÇê©§ƒ{ܯ_¿Ÿýìg P¬×ë6¨çöÜïuëÖÑuã¾hÛ¶m «q- R뽬0¥™kìpw9H[Ñ@+«BaHœ!’$"Pë±'DÖ!ËHŒ°ºÒøÍ3Ÿ/ÍG†Ân JvTmycÇ[Ì9"µ^8…j¼$`•ñ›‹À¤&±* B¬ æšœÊ`²¢¤,À¦Ú/6ý{$PõAŠrý÷Ð+ûÂÀ*˜v»_Ýô*›T1DñH†LªanÔ¦¢Ê>)Nk?\Á¬Á[¼gEaJzǬö JóSÇŸV¾ÉšTÝ¿AkF¬Ö²‚¢î\·¯rݤÑêžíþR~6Va@X·çó—׿ ? žGâ©H}ß7¾*XI,kûª¦ÚâkÁTÎi5&/##Ã1ÐR4SO?­%¹þýû£F\£d‘õŠç8°[[[Û D‚c´sçÎ ¿(ñ‚Dòª^0Q|!ÙˆD";wî<ÒŽÀ’%K’·8 fQJ.SØj ª ®a=ôö~Û°–ÈåwT‰I™@ «,DJ¤°!bQ¹Š;ƒ„›Ü0Ùý|– eß÷WíÙH³:ê–Þ%Šˆ%µBL¸DŸºì>)XAs›7W¦Š‡Ú0P¯x4LøíÝV×UÁ²bPNŸÜp;ÿ4ǾjaetÑÑ,³/¢ J– ±‚Av9@`E‰=y"(ƒ ±ï¥€SC&Ý3~8©&%ݘ4/œNF”µlté³Äé„”Aa°Ç¡°ÇaNõü”̽u[îZùh¢>X¡Ú'½+þ03ƒY&¾U1¡Ì¾™}@¬ÑÐºŠ­ÿÜþ:¹žIY‡á“—æ{ið`üIÌùˆÈ°k“r$ª*” y¤&^ìÔ]G¨§,ê#äIŠçg/…)͘øé!2 £ªðÔƒŸ ?9-d²MjšöCh2…ËFÕÖæ¦´YxT õ¼±sɪ}Ÿ“’#œ[|AH)a ˆˆDE CäûœbLš1iRÉK§ÔÌT/¤Æ‚NØ3HÉàP&Q ù!ŸSàù†<@`–'yæ¶ìãq—Ìù)í\º M8 ü˜û‘‘Ñ’7¦¥¥%˜oj1‹‹‹:ØðQO§^æ-¡USVVÖò~½°¦žövÃqÕ DÇL½ckŠ»¶¶¶²²òˆ®w<Ë—/_²d Ú¢Ý*×K÷¼ˆãý_5‹´d÷Ýß‚N ãRMJPR%"võTr99°©8ŠžX&¬ÉFIÙ3RL ÚP½µ²®ìÁ";”}iÇoA¢ªê-HÌœè3$ÍÝØª® kVDÑ(±ª†¼•›ïYA®\Û5«óÀœÞªµâJ÷+ 1™Ðð‚A¸4ʧ{×®ªXKÌ OÁ r^ƒ2;x“±ÄИ´ÎmAÙ*P&5„á+ 7Í­Gä€Ñ€Z0©B< kH([x9•~º»º`QÖÔpšá°'FUfK$¤ú¡v©í”„È€±¥êßÕ!…²2û dµ²œÜa`û´ŽÕ¹õ#r³BaŪg0ˆD0êCÔ²‡0[ `R2Š kHØ0|¶%ãNVIIåkãxÇBpgº{·åÛßÄ?++ëÈÈÈpÖvâĉk×®}óÍ7¯¿þúaÆuêÔ)??¿   ??¿¸¸¸W¯^£G¾é¦›f̘qÎ9ç´°Ÿ‘ˆzõêåˆpšò €&žÉÎÎN8¹äQ kòÕçnŠ%K=ØÔ9~ ]`Aü÷ÿwë0õF8%Ý%€””I!¤L0­Z‹ªªîWL…!Ñ“J’_J®­“û+Ý’F'0B ѽ»ªlõž $ªÆ¸¤×øT/$ u@q JˆH!Í®O³_~ž@ðÑÄ‚!äQ42oÇBdÜP8c¨@U‚¼pÑ1¹}10îÛÛ—U×VøJ6Öî“«q»(€„!ñªتÄãx AQ€Æ€@QËÍD<±ù%bs×Ed 0ÊQ˜ â“€M,+êJ£ZõX_UVqùW"â@ê‚JBlØ'³wn8ÓJõ"¤ bR­+D4êò €b„&IüFªJdæ7q½(AÎGÖ‹1œrd·Ûw›Š,±^˜'î^ü™|Ë8ɨ¢Á Ÿì][iË?Ú»&jkÁFD B…Ç… ê`ÑqÆ)ò&5ɹXVr%‡¦sùX%¢€qœ¢‚,iŒAŽ<Õh›¦ÚbmJÈJK?ÔON®«_xá…/½ôRÇŽ|ç;ßéСØ1c~ÿûß/]ºtÙ²e}ôÑÒ¥K—.]úÉ'Ÿ¬\¹rþüù¿ýío:ꨗ^z©%¶Øm†ÚòüXÃÏÌÌÌL`¢–¥]hFح͇1ÆqäÇ[o½5yòd§"Ñð¬›z¦‘H—Â)Ší]_M™EŠu€h¬¥ß ù3¶½ "†•þy=Ƶ)‘ºX‡ÿFE=ž·}iT£ˆ³ ŒÊ?Š™AÄV& K†åônŸÞjYŠ7J¸ªÆþc© gˆÈ04@ Ÿ§eÑ E2‰iú&bkXdÄê°(1sÀðÒhdpz·ü”üØzéÞÏH5kŒÛÉ –#D´ÏÖn®Ù«•Ι?z 4\'•øχ:ƒkÕûDdÕ¯‡³BŒ—>¾pDF¥¥ŸvÕ¾köme˜@øVÇ“H‰âk>Ú0Õ†8€Æ„´5V/y;?jÔ¨×^{mÀ€ɸa"ÊÍÍíÔ©“ž&èÈnºé¦ƒ¶­$nôîÝû*áõj?YYY®Ã@C‚€¦RgɱŽ$/EJJJ~~þ—¶†¦OŸ~ÒI'ýùÏN.w%(dZX«KóR<|QÚaË–ÄÛA€oR^Ø4·*Z ÄF¿Ûã°¨˜ÖEl‡tBˆüÕû>[W¾9°@†æ ÌKÍ lD=žÁ ùƒ ìîÐ’šÝ‹Ë–ƒÃ¤€šf¨n@"€‚ÕJm´ ¶Bm j­ÔF¤ÚFê¢Aµ•¢Q&¿™HN­°«›hB3¤V)†$ŠFkXÃ׸$d5$ØÙ_,TöEÉØø›TTÕWbõÔV¿³c9T¢°ÖÒµ}ÏiôCóX[nmT4Ô1†|–€ÄÖ|W™•º>éäõ².ØÞÚñÁ‹HÕ¢’péAÑÑùóRs£¤ˆi@üŸw<ˆA¢ òµ•$ù] ˜3gNÿþý]»e3¡Ão¼1gΜ¦Òb}×rßrðB½ÈÌÌLXöÝ»w7ÜÔ7Nµ |óKfNÈÿñý?‘ª®]»öÊ+¯>|x"î¬×|ðT¤ ˆ5t(ÁQH‘~åE8¾mwí0ð¶î]ÿê–wc )jÇwÙ/«‰ºÄÔ‘x¿ºnßü’¥'êÊíÓòûg÷€X ¢ÐÀ*`üQŽÅÞðáÞOwT”z&Õéi&âaJÒû¢ïõžôý^}¿×ESzŸ?¥×Äï÷9ÿª^—Nî6±]¸•ZÓ´=qÆžTA 0 56Š ‚`ŸµUvËìøäÈ;'u; ¬ÀÓÖN_^ºÒx©ìņ€ ¬ëzzÓ+Û#Û™˜Ù·†ÄÚ³»œúÞOÿõ„ûŽ/DRÅXŠEŠ ” }…"iM4õ¤‚£RüÀº»¶ì³ò/È„aåÝÝK!f°öÌî8,«ÔT©ï+>Ú¾Qˆ”3SÒÇ!ÎåܹsçN:%ºmìnÙ²åÚk¯M`«šÏí$:­œÞA MyC\õÂ… ·lÙÀ‘@×;°F³Þÿ&ì òøãúé§¿„l[²‹]¹rå¹çžûÈ#\sÍ5õ„Žz¦L”ê‡P«ÄôUfv7®±0FËL€¤x>€'6Î:¿ÇXbC t?õ²^gßõáïáŽpÐÖ„IÔ¾²uÁúLt%>)è{[?ðB©!°A‡ôöGeõˆÏ«ÌÙº€Ø•f<|ŒV©¹¿~ ‘‰›: £ÃÏW‘•,IJwíÖêmd|òSÞ-]Y©Jó3Ea@:ž<ÇõC_ýôÀ—ñìßÅKL1³Õ¾ØùcL£rUÉ‘ÄæÍ›Ï9çœ5kÖÒ5`f§wÐ'Ý|¬“øóÑGD"®¿þú1cÆÔs3:•FGÂ1¸I;å”SœÆÏ—±i‹_#wÝo¼ñÆE‹9<^Ë?$ýìÔtØ„I'jýõÛ¡ŠkJeÕL/8e~É¢ÊÖP %»ŒËJÉRŠñT›«ñQéÊ’ªÝ€ëfÅÉCÕx¨Q‚Ô ÍìY˜šïrƒ‘Hðî®ÕÕÝ™¤9°v¬_•¢ÈDÕñ.«’QhV@íü|XmNè“ÅwͰŽa‡uL‡—÷˜pIñç÷BÑÐl?‡ Õ‘šee«§,úÅeïß#uJbŒ²5d¡¾! Á(U‰=!ë‡3þ¹ùÍï¼sç–ªu¹Zñ`ÉjÒÐ…]F½1îñŽþ]¿ôA6('([﫵¨D$;#÷¸Â! A­,عZlÄë·VïX±w#ÅÛN)>>JA\¼õkê|¸ ÍebcbØ÷$Q+|Xr3|£­>úèôÓOÿøã‹j‰™K”yª««Ñ2x€>ûì³¹sçQZZÚÕW_ݽ{÷†,¹ž”< õpwGÂ1¸¹êÓ§OŸ>}¾4U¨dµ•ºº:Gv—|~ïQLÞEU<|þªÝ0pBòƒˆÂÌJ¨‹ÖþmílPõÎê2¡Ó(ŽD¿„™·Ö.­Þµ°lYL%Fí ‚¾Å©íUc}M'‚[}««þ½¶l#SȺ¬“25mˆMU™B ëÇíy€…eFUPCŽj¨ÉXѰÝ,ŠkÕb%#*¤DÕ{uë»ãßøÑ_VÿÕ’Š"RA,Q Šr)Æ4 "ÕNU"ñ‰¢d›jÁ‰‘{•Öî{|íÿW¥u˰©ü‹ºë–Ñù¿ÞýÙªÊ5d|!ј¶Ø¸.Ž¡Ä"!/{KMÉ‹3mí ßívö÷{|»CF¡Â’õ„%PmŸÚîéQ|{þõï”,òL¦?v ¿*Þ‘?ÿ?y_fEuu½Ö>U÷öÀ< ‚" ** ˆ Ž8eR£Æ$æuޝÆÄ$š7jc4æMÔ J4jŒÃ‡8g1*"ˆ€Ú  ("243 t÷½UgïïÇ©¾´Mw ñËóÕÃÃsûöíº5œÚãÚkAœy@VÕ¯}wí‰ÊR¨S0µz‡ù2q±=GT­œƒÿämÇqµi ¾òf\ŸlÌHP·Ë¨¶R¤ ¦í¾ûî;ÿüó“$ÙVnÊPÄSÕ… 6¡ øô&„Hð=ãÇïŒ5 ÍÁš‹EäÑG]¾|ùÅ_Ü +Ïô:áÿÀ8÷ïÉuš )ª««?þøã½öÚ«¥Ð¡™L"Õ ¬³A?Ð˶‘r4+>ÐBk"Ä×&ðFq0¯taïfQCé,˜Y윆q–F´= s?’¡Úè8Sˆå Ë7|ôèâ/üusž*GírÈϬ™¦‘<Ä™wÈr êŽqª$4oOª~»6)TÄy3<´ë¾/WOôI}ŸŠžûvh!¯Q÷Òò75G‚B©µžñÒuÅõ×;½6ÙÍß4Vf%‹Ä€W´äÀè2¦S069÷­ëß]9'»‘öûî>_ضŸ1ê²×ÃG\äËç­,¬#r‘0UADS m S¾Ì LéSœ‹#-›_óÑÕoÿîOÿzè¼þ§^0è=ËÚƒÌ)½÷òm~wà÷Ƽpá&ÉFy²Ñš†ËøïJxJ¤Oŧâ*G÷<Ð2"V¾¹rÆŠ TzU#úä•ÓWÖ¯ïRað…n£Ã{Ä …tpEà·‡ëã?¼ÔžÈ0¤fØÑõùRÑæ±Ç;çœs’$)ÑlGlþÐC•€Ú­{O y‰¤iºxñâðccäX³\;lØŽ9æ˜Gy¤®®îS[JŸÝ”üY‡J£KØièífáyÞûåË—oéÔ[;¡h¨Ð²dÐt;@ùaÔœ„”œ–€ð â9OLÁHÌŒê d*ªO˜Ëþn[¦p” FwOF¾© IDAT/x:Õ„&FÆ.:}Àqiª’± xÀ¶øt‡Ý÷ 2Î-ذxæš¹ rÀÀðnûˆäá‹ûwÙ«[y‡à-–WÏ\5ÏŒ‘d% ýt…úlN>—3®ˆ£ò(ßÖ•WºòJWVéÊ*]® \ÞÓùV¸…©*áÌ"©؂õÍ^;ïÝ5 n{ÿÞ1/^0eåL"N]ê {uìÿ›¾¯Z¡‡! Òá‘©ÒàUC3IUÙ@¤9$RŒãr”·_R\]Õ-‡¼ðÍgOdàpN ûuzDÏQÞorö¹¥;,ÑAiÐ$¦ƒÛöÒ~„YïŠn¿~Íïúɸ?7â§ã¹æg{‡H©ö`h·=vØ£X, hº¹Ð"ÿ9µ¶É\` ;Et™ä¢E‹.ºè"U *Û½Ÿ©S§^vÙeØŠ ÿ&äiõõõ¡Î ð¡m)E³%ú„NH’äøCã}îp÷S:†€ñkÓ¦M·—ô45TªëÖ­Û¦¬®½÷¶Yú­5½ç­:Ó}n¨}+(f)à„„šSÂDEÌâJ2ëß”.×ÖÅ΀8?cí¬×–LËqø¯õ>¦g›îÒ:’.°öžt" 8•Äoz¥zjðFÐup·\g˜Žj?&ÚŠY–;Wf>eƦºUÍQ18F01F0 M²Y Ðz—Á$åY¦‚ã"Âç¤cuýês&ÿtma]l‘Чšœ¾Ç첿OjAŠÁ4U„*Óµ‰H`FOEÄ›ŠY,1Ê*Õ|øµ —½ºt© üÄaÝ÷EJOù¼ n¸FÎè JMÙ倊\ÞècŸªq¿Î{}wÈ7/Ùëä‹~íâA§ÿ÷ Ó.rZ‡Š.ç2Ñ.ªÝå@J¦zu”ÍÜÔ`ß3üúÂîëö§?ýiåÊ•"â½/qlÇ®HŽ7Π[ÿWåååÔä+¯¼RªÝ5‰ýK–%üªG—]vÙ’%KvRw§I^®Lد^½Ž:ê¨C©­Éû¹\n›\]}±ÎÓgZÉÖs»É+D¨g_Ì ©ªÀ$”ËÌLà‚Äd .ñumëæèTýŸ>|*°Ôˆ·^mvÕyèÊM«Â°¿5("oæÛÙ!%Võ€yƒ0ziÙT… Ò®ùŽû´ß“âÙe¨ÁŒbWª§Á/QÚ§Ä”¡Ñ0•%Èø¿(å¸UWÖXl09b15Š@iÇïÕ̽彇@5xÇ(G÷í~§¡aYDÂÍñ¢.D¸ ¨ÄÑâ‹/A= L“,î5À'Þ‹©:õP#T3ßs”€Þ'„:X§ô?^ ;Ôå®A«ñ›°J§I’üãÿ@CŸ»3ž°”ÍìÞ{ï=÷ÜsCÍmëmúqÇÞyíµ×žþy|?Ý8ÝiÌ*],W®\¹3º;MœY邲Ñ)§œrôÑGï¤Æ¶à;///¿tâ¼5ï˜88à‹}+" ®ŒŒ;RÑ^IOÕåªVÏ[X³B1 x`×Aòöì° ¤ÉkÕÓ‰H2*B‹`+EÓù³FnÇZ‡öÑfå8MCçÍFŠ&Lœ¹v·½ÿøŠúÕDŽ^i8©Ï˜>•} ‰QM%0cÒ`BÐL<¨D úØ{Z;žƒÂtùwkl,Ô˜µumásÌ 2É€ØD5íZÞex÷¡¢Žfd,p1ƒÒ¶`ƒ€”¤·Ðyä!Ý÷éVÑ Pµ¿Ðÿ,\õŽDµ5›Éªâúq¬µµµÕÕÕÍš¼mu%qÿý÷3æüóÏÿTÛZúñ{ßûÞc=6{öì$I.¼ðÂ@¯Ð˜7šäÂ… gÍšU,‡ 2hÐ ’|ð.»ì²5möÏž|„=ù¸Q£FUTT4‡Ú¾ëö©—´4œkfguV¿~ý¶é×úM‰iâHŸE¤Û)À زºhóëY±Ë;Q•ú6€Ñ"ˆF*ÞRônÛ B§¢>)¬M6™tçÖ:gL=éjë×Þÿá ¿è8p0Œì²ï>¶†JMd‡Î.Ü0|¡£lHÖ½¼ü~mw3KÁè€N÷ì¸G縃 iþ_k?˜»îCÄFš*E¼©îÓOCY'°wC2vœ­îeƒ­L‚©9™ó²¼fé3‹^?kàÉpŽfË;|e×Ão^poŒ²„ 0€ R3P $bäE{x‚e`Cõm£ò¼äJÈ¿A L#ãçä{6@R3õþ öƒ{Vt1ƒBÝˋߚ¼êí¼Ä)H:*•E1I~¥Ï1C;õO½ÁY·òŽ#{ìÿÄÂñ” êgT3áÿwŽ'ÃjaV]¿¾¡Æ¡;0©Š¢(—Ë}¯Ó¬™~衇Zq<[‚ßÚµk÷Øcxâ‰óçÏ_¼xñ¾ð…x`äÈ‘hª¸âŠ+n»í¶B¡ÆwüñÇ_wÝuãÆÛ©u6|’&®gϞᢠ>¼¬¬,©aÛ5[·éÛUõè£þÕ¯~Õ¬ÈP+[ua­¦õŽš…ƒäöæË¬_¢÷k—¥ôQƒøØ—zöüÏ Âh¡tS,vÌuÝe_ž`QÝòÕéza æÖšW¥9‰Ò4q¹û>xîÒ½¿Ñ)îdÔžeÝÒ4%‚ˆhHHwd}Û™©Aa ÔÈ—VLúö€“L=*{Ôf°ˆ$¦1ùUS‹¾Ö¢rg"è¿}ú)ƒ #¤Å“ éÙÒ] ÐáUHHbfNé,—ŠŠ3¯öàG/3ð$%Œ0È™N¸kÁãõ>Ñ|)LÍœˆZð[êŠE+’åŽÎ;Šªš ¥µâ†ãúT—gXGùµ‹Õ¢|üyÁ Y6CµHÍ›µËÁP‘³È˜þæ½»^ùè‹*J)êѧZ³>©¹©ãe‘@• œØý'ßÙ‰„*.ÜÿÛœ;¯ÇxЬ©«ÁNh*//Æ´Iîò}Ï?ÿùÏVÆzšLA† ~À€/¾øb€S/\¸ðøãÿóŸÿ>ÿÐCÝpà ;vœ3gÎûï¿Ê)§|ûÛßÞgŸ}*++s¹ÜNbÊi¶öµÇ{tëÖmÊ”)Ý»wß©mžÆéÎ…^øè£†d«‰/l}«êÖ!M!ÔΡÛÄq å+Œæ­ý¨zÓd˜`ûúîÇŒè9B“šDëKSMR«¥ùïïur¯¶=aI1âõe3“BͶÞ#º4–ˆ‹ê?óÑ$£ª¡,.Ю™yKaðºƒùÛ<ê­÷I]ÿ,•VI® ìÙæC™ èSñ„÷Jçß\=gÁº¥[€:í5¼Ë¾†‚S§ðFPU˜´´PL׃n8臣»RåS¿1-ÔÓ i±6-Ö¢P{tÏ#~±ïÅ>v€‰µú]äÝçX— ªG4FÆÔù|>?ºÇ&2qU}ͬš‘ï(qy”/sq.ås(«@Ôñ­Uï1ÚÐ)³ËþmË*}jTãæ:Áÿo¥¶0î ΈUÉ3OsÙ!f´dñ‡úúë¯ï¨Ø<¼X·nÝâÅ‹CG¤•4 Ìc¡KÔ·oß³Î:kòäÉaçŸþ¤I“~õ«_ýõ¯pÀôïßÀƒ>xöÙg/X°à¬³ÎB 4n;Üë„c.//?å”Sî¸ãŽ+¯¼ò—¿üåøñã‹Åbé{ËËËK9ÙÖë5[¯#Ù¦M›±cÇ~ÿûß5jT³'¸ùGÛœ+¼XêhuýJ:¥ E=@K•Âm—¾ÎžmÉ9µÕu+ÿ¶hüÝ«‡XE\ùØá¿½iæ_þ¾äµU馮_›gõ;ù¼~§zK‘Ñ«ê#½È(ÚÜÄhbèa0“0ò“¥ù"€RiE¨Sx1ܽà©oô;‘$(‘8# à7*ÌeÓB[SÄÓ´•k@¨Æ¥êI§‹7­šºzÆq½ÆÐÐÞµÖc(º¬vÍ´ê¹WPi4 2)i<@ *4Õˆâ³amè^™Ñv‰ÛÝ9âZÓzHàžW2‚‡Ijp =ýá«,}…tͯm-+¸Д´LœæŽ4ÙT¿ò•ê©ý;œLKp"ßè{ô«+ÞR1JsW>Qæ\î§C/>´û¾— ù¯yë>š²jæ´µóÖÕ¯O4­,«8®ëˆ/öS•(cbêÊ™“—MÊi%÷ï &òzý&`€˜ûl|VÍK‹883ÁüÄø¢ HzmÈ83÷Q@ {¶íµw§=ƒš€™+¬ªýØ$„r!³CóÆsÖ/XX³¼_»Þb†=ÚöÖqŸ ÕMÊ£Q)øàgœñÌ3ÏÜrË-ßþö·Ã¯Ž;î¸ßýîwË—/ÿîw¿;kÖ¬­LJÃöÊËË;vìØ½{÷áÇ1b̘1}ûömLœÓj‘; vìÌ…,Û´ ÂÀXê"lOTáÅÂ8wËœ»OÝíˆÞ•»„çe]o~ùOÒK¬¨¾C¾ „ŸÑ@º;ÿõääê·$ߦ¥l=² Œj%?*Hˆ<½£’j~ÊÊ“VMÝy¸1i"¨Òe#’ZK؉Œ”Ó,8¡p‘µ,°fÀ”jÊ„¹¢Ö_ööq½Æ¤æ;æËÚ¡­Hygõ¬UuË•7Ÿ99R"©*œhêiPDAsʲ²ö_ë;6Ã~4`6‰€4t³{zb‹wÍ¢ ´ÉÛÔè„jŠË=³tâùO–@Ç=¶Ïá=fß±¼nMìr)Ô•jž¾GY·}Úõ!TávØ}`‡=΄…Á¸ €ì¡æsê µ—½;®6Ù„|ži —”RFSRh8[Ra1"ÐC)®EkCõ L5»AgÚ‡ØJ#Q¯".Qg¢¦¦`ìQW?¶ËÁeÌäì&®y×kZU&¡1©¦ÁT²®°nÊêY{´ë @ÅèÝ ½{mùæ$ós ÀLŒJЍ¥°00¤YŒ’Å|41Büç7Ï´ƒáÔ¤D×®¨I6|ÆFE×R*íð!3 TÓŸê`„ 'Nlœa„1£ 9½xñâ0îSR¦ H¼-Oj‡×»ïy÷Ýwì±Ç&Ož¼ß~û3æÞ{ï jcÇŽ4hÐá‡~ûí·ví­Ä»þúë_ýõwÞy§ªªêí·ß¾í¶ÛÎ>ûìp_J™Ó§‹ „Ǭæ|°q™YÌLÓ2j€íYž.XRÅ¢E›–œ3ù'«ëÖ†0j ¶wí+Út.k/3QŸ8œ>·lâª~íâò\Ë££^¡c€­Ô9ê2rBCG¨÷ïù׋ÈátÃ\’”Ö8Í Î4€ú "…l­‘Ȫ‰!2~ùõI$.8É`Tÿ±ôí€hn^W³ñC¥˜sQ j3…x˜¶7 7È`*¦áRõ *]ä’––€ 8@ARÂ(¨W˜såŒêš RŠ÷~×ònÇõ8 –z3Sñ™½OýžívoWÞÞ²T•ÂAé4¬FFn}qÓ9SùFõ$æ*„ô.¡ÑB¬ÌP T€ x·\%Vŵ2È,Þt§ˆ²î¤SCdNEA£o(D“ìT€(qøÈž£@%à’oTO QË j0ª¦N‰iÙ[4•H)rlÏe¹r¯I˜ä‚¤7MƒÇ!á$[˜&0Œ>Õ ø7þ›O`²¨ñWÔ®úŒ» –º‰™.‰¿íX“Ýè¼åa”üGÉáyﯾúêÆH¶Æøðá<ð@EEE‰8 DPúðNjï§iŠäw#=òÈ#ß|óÍ,^¼ø[ßúÖ¬Y³®¼òʉ'.Z´ÀÁÊ\»°èóqC3„Lµ €À­ëÿø6ó6±müx¯Žý?“Kü$ÑKèF´k×®}ûö%€ÖŽJsly᫃=}ï½÷¦OŸþüóÏ¿þúëM¸¨Kÿ9òÀlì–¶ìWí ˆÁĉÛ´i³ÿþû7Ñ•2dÈO<à'?ùɱÇ{Ýuשj˜œ­«««©©Ùʺe¸K—.möó[ª µÔ³4êN˜Ù²Âê•ŵ"B–pwÛ›s|àôʦy’<Û¼³®ê‹¯]rP·ýŽé~à]öéYÞ©L"1¬ôµ‹k–¼²bêëËÞþpÓ”Š(Šaˆƒk¼àêo™û×õ¶N¥¦÷Íû{š«Ï[¥yМw"j1ËVWž÷Ö¯¿±ûq&®>‡ŠšÂ†'Md\*iÍïßUŒÿxòß{°K¾#€U…µÏ,)oùbf¶.À¥@йBZ¸èkÏÛóôroÉ×–M™Wÿ€ÅÍÞS…TU(ozç•kI DaUô¬›íÜ xzÑø”i†Ürñ¸Š‰ÕUø×ýÝ¢NÎÉûk?š¹ö}q9Qdî‡PU w7̺§6ÝÐ>ß.UFj/,+œ¡ÁG\s+‹›ÎzuYÝê¸ï>]úïݾ_\§Nù¶¤¿¤X]µæ½,kÒÊ–+âö^zxþ$Q3¡/£Ï¹çV¼sÓ?ïïYÙÉÀÕɆ'?ø‡äòŽÌˆ([¸ü‘YÑàÀk«î9uÀæñ÷ÿëЕo¡‰zsŽÞTÄ©)ŒEó¿ûçÿÖq`Iᾓª‹kœ+s)Ó Si {zŠ˜Š³ù……çOøåØÝFAMœ-ß´jmݘW•H²·ÔS\ #)Ž k_UõÇ}:íáºúú{Þ6Ž˜B§Þ>/Æw´2¿¹lÛÀϸ­FQ-ëe9H¡¸þæW]2ø›Ÿ±Á³åo׬Y3lذ?üp‡tzJÛI'ôøã7ë{Jï¼þúë7ÝtÓË/¿ÜDRaK`wÿþý§M›ÂöÎ;ï<üðù\nÈ!cÇŽíØ±ãïñ¨êi§vÍ5× 2@¡P©aICïÑG=ýôÓÛ´isíµ×žvÚi:uª®®¾îºëî¼óÎf‹u-9éŸýìg?ÿùÏ›=þ­›RÊÙSuÒꙣ_8Ÿ¤H¦‰*qÛA £‰‡9ŠŠ§:/ž€SMÒ˜¸(E .)@=áMÊã( ….XÑZ¡0F,!Z,@ Q ø|T‘¨wÎQáiBúT]$‰/š(¼Ps–³Jß2R&š¦¡; ÐYD—kÑð!›ªi˜œee÷i áN`EXœ‹òÆ–;g¡ôd 8’=÷R˜åh0¾O"¯žÎ¤¡$¤Ï‰KMÊ¥ÅÖU”Ø&&Ec$3‹Êrˆ<6?>ZM¼PbO5ƒÀEyä ‘º4|0RxQ@LÌ ^Y€š0Ÿ/c…‘E$V,0§‘TR\O5Ð`â 3BÔБ‘hÑ„I±ÞiªBXŒØ„•„7jKÉAhFŠ‘(Ó"@Ç4µ8ï$v!§" Ìd„H¯êDLŤàµ©£ˆyÈE;8S1—uI§æ"˜9015M-­ƒˆŒre°X ÂÈ•b¦„2…æ-(áU"¨I Ì™xü»Ò´~ßNƒg|áo;>ã( Hùfmø`ûöS]]],ûôé³¥3³B¡š(Ÿ¡Ó̶lÙ²&¡zãQüºººË/¿ü¶Ûnk,ÂÝ8kiì{DdÁ‚ßúÖ·Î;ï¼õë×6l¯½öš4iÒ¯ýëð‡ýúõ»êª«þë¿þk[¥ÒZwÕo¾ùfUUUôð§?ý)MÓþð‡Áë<ùä“矾™mܸñûßÿþÏþó=z,_¾¼1£ZëÀÒ Î˜1£Iž× RÒÞn½ºÛÀk¡ n~͇š]›¹`ü„¡s½Íô*&&i¤±Â,ÕA‘ bGƒ¡ž–¦^H‘8’|*žf‰XäY‹LZfù¥)Ëhš‹i -Òœ‚±ÐFBMÄÑaEqQ¼³H"UXçÕDZq¨*pIl`*ž&®¥ü«t³N°¡Ðšs‘ .ŠF•1H¨d¶èwH=ÍC¤ÌI‚2Ä%–JË™ ‡«x1†ö¶3±–î˜"˜w¹2„ª™DL-„AÝÐ[)¹Hr(o0Â7` 3Ðè ©ˆcCJŸ‹b/±™'+Í|Ñ ¦T‘8WáLS‹¨Þ3‰Õƒy 9sÌpÍ5+3oâ¼¥’Ë;-¡b‰RaÚJIÊÌ ž!'¹>¢(#‚óÎgUhST3/0oyg£Ø˜ˆЋOSÀŽf ³PœÌrqZÖ¬›bé#¤^bxÉjˆ´ïhQžÞ¹ØR3gQ"S13±ÈîðnË¿½Ôf¸OL½1þך…fÛ3¢½víÚ›o¾yܸq%y·ÆælÙ²eÛ$¥³•Û† ’$‰ãxKä† N=õÔ_|qËü¦1âk_ûÚèÑ£/¾øâàœž}öÙ§Ÿ~:ˆÅ 4hÑ¢E¥=¿ÿþûçž{nUUÕ7Þ„P?;† @´k×.üøÔSO½úê«ãÇßo¿ýfÏžýüóÏ—R3[·nÝúõë›0j·žî”ÜÌ”)SV¬XÑ­[74Ò» ìp¥ÛÔJÆ“™‚HÅs×|Äl¦_B‹y»CŠHáé)†ÔŒ‘2%%è@APœ‰Š 5Œ$pNÔè‰È"Oˆi³IeM¤DH a¥Âp—h°à,—¨RL1"Uš”0÷ߊC —}‘Š:Ð|Ë%ˆ†œAI#U )© ćaM¨7Ð ÔšG£@‘¨k€Ð‘L<(¸ÞÐÝj@ƒbTIÌž £ÌN6 ^€‚¹ÔRÂChÂÔ{ Èl£QÀ„Ðyz3@HË b€7 tŸšU¥ássd¹)1™šL@P³¬„9htbÞ,³ÿiƒ8†©™ˆÄR¢¼½4Ó:"nëásjjjÖ¯_߬võ¥—^úâ‹/¶RP2³\.wá…^xá…Ço²óM›6½ýöÛ«V­*}>8Ô[n¹åßøFcPöšÚÆG[[[ûÌ3Ï 6¬”ÀUUUxñÅýë_?ûì³[ú•-¿®É;Í^CY¾|ùÝwßÝMÎÀ‚ …BëõÃik˜Ð(4Òw׿gtfTUbópÉv<ž$’ÀÃ:æ™–M_Ñ ¨š.HŠYýopH‘©+ƨøÉ€E5†ð\n);àPPñ´Èˆ‘I&˜àLIÑ 5ÚÆA‰AÌ.€¥ÙL"@’Âõb#§yé@¤ê›j¨B3¥M,{°CÙ<¥˜Á>#*mô¯Ñó+Á=X`85¡¹Ìùlh4ƒ¬›4æ3ugQÊÄ‚=ÍK÷% ð>Se$8ªSQ:ÀœdÆð¯ ÌšK¡:[5g‹SªdSB)B3ÐóÐ)µ5œ]¨Ç¤a0()È4¤3eé€9ó ’G˜¥)Õ6B=0 ÚPX 5„\öÖÂQ. 6е…Õd„kX`@Æ\.5¤¤ABTgIHÙ ¤%3†ð0 ¬oÆðåHU©a½g¬Rx"2И’Mæ|þ38“4M™0Z¾aÅüš%Û1K[YYÙ¹sçÿøÇwÞyg©øn§ªÞu×]-ÙÍRÿR{Æà IDATë?¥­ZµjíÚµæÎÛ8›yóÍ7KF¶±°MéÃ$é£>:zôh—_~9A¨Ëá4Ƴ•š.#FŒ¸í¶ÛæÍ›·nݺƺõão‚e0{öìeË–vØaáÓ¦M[»víg,å5{ !mºþúëÇßý1gΜË.»¬ººº¼¼üÓZ0¡±€±®°qþºE;ª×EQš&"bª(µ»IgD0—PJ9ÌôÁ¾‹)•žÈ9Cjª9•T<ØÌ¢ÚÊ5¦„ ÔRgÌ|! Jç(0‰BK[í󪢤i0§„³PÐ 5‚*$,Lf& ¨YŒH=úO¡…nqpÊÔ3ufF…Ó,‚ªY"7‰Ñ í£Î`^„–:‰£hÉÕ^kJ¦Xá¼…ŒÀ3”­ëaPÅX„ª˜¥©ˆÒLó»aÿj¦f Õ7ÌQjHuÖêý¢‰ÅÄÌ48m¶G'¦šZæ1iJ³Væ®Â±EaÌÈÄC)êÔÙæ!7 ÑIB€ÞAA s©žŒr­pÂø¦š˜cFt-æ - §|p~@d4 ƒÅ^Õ¤ßÎO…v˜ãÉÀÎ)<áÖ¿½ö=Âm«A‰¢¨¼¼Ü̾ýíoÿøÇ?x³ÔÿèG?š:uji­7IP¶»8º8kÖ¬) Çü¹çž;oÞ¼ð« &4ÎoJÕ*ÉçóÆ »é¦›¦OŸþÅ/~1|ओNºë®»öÜsÏ’4jº’öv»víâ8^¸páE]4lذýöÛoÞ¼yÅbñ†n°±O­°56…'N0tèÐÒM`ÍÖhûÔ 2`À€Ð+ и& ªÖÔÔœ|òÉ_|ñ½÷Þ;nܸ“O>ùØc5jÔ¡‡Ú¸ ÖRi¨<j `aÍ’¥…å ÒŸÝñxà@3qÙýÒ„¥B¡4 ³8T3sp$5LlPAÌRS:Šj’Î"Bà…ˆ„›s~ò_Ë^l GÐTBL ˆ(J}~õJö­^7s^‚%Q3…y™M¢Í 4DóÖþ ¡ª¦‘969ìͧc¡LhæH0βs!–Š ³Š i ®É2 êè Î$«94$²p¥h¨ÁM2rÞ{’Ì\qQ×*Š bæBªJ30\–Æ»2<±t„7Ìòi9¬M‚åU/JPDšz‘OdªE@o…V ˆŒšÂŒjÞ&ê)¢Æ*-2U³È;ÔÖ@CIÉ0¯­Ä(” !І@a® ÷EjÅ„°ØŠ:ºPÝ‹°Ó·†j ÔwávCáýƳ|õ/£~±­À-ïý8cÆŒ`"{öì9räÈŠŠŠªªªÙ³g·„¼ÊÀ<[Œþl%,BUŸxâ‰Q£FõéÓ§X,–——>|—]v™2eÊÂ… ›¸·\.wÕUW}ñ‹_:thˆúKÖ6ü_(Þ}÷ÝwÞygÒ¤IS¦Lùàƒ¶ìÒ?øàƒƒ úÊW¾æiDdÞ¼yeee½{÷~饗Ž9昭‡ÿøò—¿2Gab¡aæcòêw¬œΩEÎ\juðTIB™%d^j´Q8£7¥9ƒÒL…̪1jõ¢æ- I ˜¦E—«ØŽŠ¥–MBa¾PŸÆù˜±¦jÎ0MJ©•æXèG©x¡ÓT•©%E¸¨"*/‹Ë¡¦šÖ")ëé7*â8†÷*tJºØ¼µ<¢iš`Ô^´ãL-q”i=%W©¤B)±€—–D£¸Â+„B$.ŸI˜˜)¡˜¥(HÀPq[äè ÃCJÄï‹j(Ò\ÐÄ•V4¨Ç’𖉓<脦0Ò±5°†y˜ÂP,)éÞI ‰Ñ@°ÝÈ[kj©& }!ËKšH$ˆÐJµMï@ÎP…âµh_ZJç¢rõJ3š£Y 5aK*×&Þ)ÈHÍh¦VÔD%ÎŹ\™Ä‘1ñZ«õiº ¢8‚‰"¡1'.……ÒáÎnõìऊ¤WB\4¿æÃ×}8¤ÓÀmm*œp 'N,¥/»»>[VŸ¾ð…/TUU-^¼xkz$M¶9sæär¹ÊÊÊ’²ucU’ž;ýôÓ/¼ðB“'O¾ë®»&Mš´víÚO<ñÊ+¯ìß¿ÿ³Ï>{ûí·O:µ¾¾¾W¯^'tÒ¥—^úàƒ®X±âÕW_ ~+ìù7Þ9rdàrÞ®C‡ï¾û.€àw·Þøá‡ÕÕÕcÆŒ åˆb±xçwŽ1âÖ[o1cF)!+e3%[£ªù|þ¾ûî;õÔS·¬ø·ºJJ1£%iý´Õ³!¹·ó ½Ó¡ütßósïÀ ûf…{Þîé%¯S@ï)b&€™*)¤Ré}a×|÷xNßòî MÔ@§Ô×—NÿÝü‡·öK†R e¾ý/¸``»=4€)$š¶fæu³ïõL˜I6€lÄÿÖâÂuPO§Hc•DuS¯Ê~_é7jt¯¡ýÚìÞ#ß=/ñ†bíŠúUó6,ž²|æ «&°þÀűKSõ¨YÇffÐô¢_?¶çŸZ$ 4 T¦‚8V§ë—Ô.›¼âŸ“×Ì\S[-Q™Ñ‰ˆf¥¯ÆM!¤ cÚ1-j»Çχœ—ÏçØôqZ€£)SúHøì¢Éw,|²Å%“ÐI/"mŸïð‹!çöm·«iŠOF“áÿ4MçÔ.z£úÝñÕÓU ”|C°•Œœ†Âá]F\:øt…sÏ]7ÿºÙ·×ªÿä'aÞ'‡uöƒ½¾A•ÑŒõs¯Ÿ}GÑ—è9›-…¥æÝCÎÕm/SPtÈkT%•f¾:­™»nþË˦Í^û/ËD šD.p¥¶×9O iªLµïû…>GÙeèn»´+ëTF·¾°~Iqõ¼µMX>ýkª–­_WQ\¢ž´N;d°#õx4ÔÙ$»&õ¾îÍÕ³¶Þñ”Œ×YguóÍ7/[¶¬¶o™âlIãÖ«W/ç\H¶Òà6öaï½÷^E]»vmv:5É—¿üå;î¸cÊ”)×^{í /¼P:ª»ï¾û…^8âˆ#xàðùÎ;/^¼ø—¿üå¸q㮺êª[n¹åÌ3Ï ~¥ñnÿô§?Í;÷é§ŸnÓ¦ €À/жmÛ­éñ”^Ï;WUGŒ~œ:uj ±}"­=öØ5×\Ó«W¯GyäÄO л&ibØóÿøÇÓN;­tK¶V§4¤< F³6,ü f1¶˜“ØîÑàp,N¥×ÚûÈ“w;f3ŽJHßv{¼´ü‚÷âÊM“€vcè=AÔÌœØçˆ‹~ 0 mÞiÐÝ>·.Ù¸MŽG“Úv;êûœˆ‡:%„Ç÷õzõÌWWLV€ÚÐài…ÌT¼¤¹Ä×VFeWìõƒ µK¾S(]†Œ£s¾ÃnízÔmß3û¸®¸þÅ¥oÞ8ãÿ¼³qVŒ6^ÓæûöfÖF:~¿ÿWûuÚ#Ì·(Là(A a„Ì­Y|óœûoÿ!z ®)}©€)Õ‰iªæxÖ×9àÀÓœÐâÚh”x`×6=ïüèÉ–¼°AÄIšö­ètÉ^§zæ\ËÏÈÉ색K¦^1ãöI+¦Åù¼©s/-O$þ„Þ‡y·cÂU=¡çAþàé5mîwfǬæ‹_î}ôz:_Géˆ[ç=¶©°Æ™o© c©uÈw¸t¯3ºæ;Qà¡.kíp³8Á «}~É´«gÞõÔS?ûÙÏ:tèðä“OŽ=úöÛoŸ5kÖ¼yóæÏŸ?gΜŸüä'=ôÐÙgŸEQeeåž{îÙ½{÷1cÆ~™0aÂÑGýÆoÜwß}/½ôRyyyÀV|j…­ôzòäÉmÚ´)!&OžüsÖuëÖÝqÇ<ðÀ§Ÿ~º_¿~ͺÿqãÆ{î¹› J à=´g7H[I+g×7IävÜ:ôFI™†U•^iªšBámP‡^Ûö‹f…Í@#zS1x85ã=2À3úŒ_õ%Ϻõ¾Ç4Ûó0@TÕA@Ÿ˜Ò丞™Oö9  êVÁ\ çES¸¢nêÕv×§wåþt*ë˜0UÕ ý½WB¡ÖÁµ=m÷ã®Øÿ,M €óÆ-¬Éæ Æ‹æ ¤jf¥ˆŠÅfÞÌèᡃÛö¾mäž:äwmË+JñGÀ5€Ô!ÀÑa»)`lÐT…ÍÌ›y@…%F5$˜¦Jo%RªjŒÈ¸s½ÎÎx"0…AÍ‘©®bòšé5éÆvQ›O43-ÐåJK>ÀgœQUUuà 74îî46ø$@ùôÓOïÝ»÷õ×_¿­R»bãÆ³gÏþêW¿:~üøfƒnU½å–[Âë§žzjï½÷¯÷Þ{ï/}éKW\qEMMM«,mÝ»wðÀiš–.Èïÿû‹/¾¸qlk-r ¯" |<ÉœÅ[tÕ?'…4R$@¹6—FâË;|—3WÏb·a"Ð{s5CªI׊žcº 5 ó'¡ÝØt¢Í†»l¶˜éáЩ ‘WÊÊòv‡w;À "º±X MTÑãºþ©»#AJ<}höº†±˜Æ=ÿƒ’˜Uø¤®KyÇ¿þ;]‡À+¨1"“ °c@@¤Kˆè¹êiN½w‰zJ&$ÔÌunèÒ(áŒ^,<èÂl¿!` è©„}q÷#ùÆ„+êU%6S5:jðÔ'ÃP£nºˆ^Õ SƒƒªˆêEÄdmZ£æ[§lžd… é2¢.À¼Á…î:3èHÄÈ«¡"ßîÏ#®>hÍ‚k—ç|¤-R¹†a©L_s³OÜôLZ»´¸@D`F/Ûr:…$eHc3Ù  ™|sɪ¤0ç}׊vãÈ¿¾hãrÇœ2 æ-H !AÅÁCT}ì´¸aŸÎûûð]‡g,aæVå§æZ¿þõ¯ëëëo¾ùæf{¥òN¿~ýÎ=÷ÜŽ;~ÿûß/ ŸZýè£þö·¿½æškšð`îºë®_ùÊWž{î¹>íÚk¯½îºëz÷î-"õõõµµµmÚ´iìu¼÷‹Ô ¹€PUkÛ¶ío~ó›ƒ>¸¾¾¾qaºG%&·­ñK—.­ªª:ãŒ3›óçÏ, ÛçuJŽ|õêÕÿó?ÿDízõêuÏ=÷|÷»ß}â‰'Þzë­yóæsÎ9ßûÞ÷³ 5[åhÙ1d:Œ+6®|sÕ<º8ÈNnf*½¨S"Gv=àf— žOÅ" æè2¨Geçìî«)},Q ~Öb/'pŽ…˜4«›‰¢¸o‡Á»µéF s×,ÈÇeûvÞ`ÿ޽÷é8púºw“(/aÊÇK‹ì,‰«¯¤xëWí:0/òaÏ-~åÑ…¯¾½é£Èo"Ýà¶ýé±÷q=ï[Ùëýš…-xÎÇy§¤!ë4Ÿ™,°Ao¯®xû’i7:çEãnqåÈî{ÿWÿ“û¶íi*ÆB ùò®‡_<ðk7üóN—¶‰i-h}ÅTñÄ5U·-«[YÞÄJ ö"}¬§–½cÔm.Æoþ×_ïœ÷p>ׯÌêͬèù•ÞGÙÿX 'ô°¨K¾ýwûŸúƒªß[¬ÐŸÇfŒ©.Üåp†o®˜qÏüÇ•ù˜ª*ÊÛŸÒgÌ]öqžJ3Kz”wüÁà3¾7ý O%èiÎÓJ*‰T3RE,­ou¸ïàŸïRÖN‘P8¤¾îÞ^záÉ 6.ñâÛY¼wçA‡v=àè]GöÈw~nÉÔ——Osq¥xzW¤Æ 5:ìd¸.Pdj‚›Ç-Q`úlõ”Ã{jH¾‘A÷ZC£†Þ9÷‡?ü¡ÿþW_}õÚµkWØr¹ÜèÑ£÷Þ{ïæóùçŸþ‘G13ç\ÐؾíñÇ¿îºëž|òÉŸýìgüñ®»î:xðàý÷ßÿ˜cŽéÑ£ÇW\që­·Þ}÷ÝË–-{øá‡Ÿ~úéþýûGQ´|ùò 6<òÈ#ï¾ûn2dH˜$-¥JÍ6?öÛo¿K/½ôÿ÷Ÿø‘G¹•¥áo½õV±X0v9…'8}ýÜžmzì‹þæQ•ÕcøôÕo PÀÑZ,¶XxÁÕ~y×c¿Ú÷Xš÷ªP¸tÊÿÞþ¯'àRøipxgõ¼û<Ù­âÏÇïvØÜu¯×ZadfNœjŒ[:xÉÄFÕ××ýsõLÄ"_Z:ñÎyOÞ5âÇõ=TU"óæ¢K÷ú拞]R·:‡œÂbHBm%€ Fž$ôÁ%Ï,X5ŸŒ@5qðYñ5ò¹” rŒP±­ëÄ¢ÚÕÿ\=Q%h‚tÞª9O~4¾j՜ߎ¼Œ‚q:¾Ïè«fÝž$8|>›™‰g)ß2Y°añófä ¬~7ÿ¾qÃ/?¯ïÉAÐGõÓæÛj‘"°¡£—Ñx1§5Ó´pÉþ í8HI(ádymõy¯ýâù•ã"̪ɫ߽}ÞßúµßýðžûOZ:‘sÞ,$BšøVïãÿ[=žO”YœdU'/-{³>“y¥j¦Øó©Ô%–K.¹äí·ß¾üòË=ôÐÑ£G÷ë×/µ¾}û®\¹òÎ;ï<çœs~øáÆØ³íX ¡X´zõêK/½ô ƒzþùçgΜùüóÏÿö·¿=óÌ3{ôèaf={ö¼öÚk«ªªÆw衇¦i:kÖ¬ªªª8ŽûÛߎ;öK_úÒ—¾ô¥W^yåG?úѬY³BÞÓlW¦ô¥¿øÅ/~øÃvêÔ)üØ¿ÿ™ÛJ@€W_}ÕÌ ~œ:uê¶Ì>¹Û&‡úï|ç(½N§±× ¿Z³fÍ[o½UB¶îu2M<ˆôªi}̦õ;c«Þ¸bua-ªvkÓed÷}­¸©”g §æÍ磊#ºSø¦†9k>H±y`¹u§ž-Bêf´…ËÛsT¦¶j2uõŒª•ïeiŸÙ±=Ž¥¬!1¡% dR½•kü?ƒ¾EƒEE~úÎmw¼÷7)ËE¬påy”çbÉG®Ü•µ]á7Ü;ï‘é+&GÌåÄ1k`·æ§™¨©ž€8Hå‘ä3Ÿï¸"YùÍ©WþsÝ¿"‰a´gE×Sz _(Xh%%dv ” VÂUäâ¶.j'¬ˆsQÜÆE•,Ëås屿¶ç)¦–‹“.Ž£(Š\YYÜùܸÎZ÷AßSXòνʻ§bø<7Ý‚N"‰#‰£\”ÏÅírq—b’^þæ­ó7,‰¢Ô¾¹î»·í­¾«AuYµ/”GÍÌL“]+vù΀ÓD’y-œÿÖ5Ï.Eâq¾#£2çry)‹¥2ÊU|P»ô/sžxoã{”Ø;§`¬cgç_žçxh¥Â`˜sŽÌ ÜÜ5ïO[9×#Ÿeûöiìtÿ—»/“ªº¶^{ŸsoUOLÍ<É (*‚8ãlŒŠÉ31OcLDÍ`>£‰‰Ï¨ñ%jô©ILòâð4‰‰(£qdqDDd††î¦z¬ªsöþþ8·Ë²'†ýÞW?m÷åÖ­so³÷Ù{¯½V«–û¡C‡Þ}÷ݯ¾úêœ9süqfÎd2øÃþüç?/\¸°`ï„òeÒI“&ÍŸ?¿íEò¦§W¯^×\sÍܹs—.]:cÆŒzš8q"rÈ!_üâ?øàƒï|ç;\pÁøÃ“N:iË–-­n§ð£(ºçž{/^<{öìÙ³g¿öÚkûí·_ç©Â|Ÿ,€\.7}úô¢¢¢Ã;,8†ÂÛÝÍiZÑ"d³ÙK/½ô{ßû^@úå™@‰hÛ¶mo¾ùæÝwß}öÙg>|êÔ©¡wu—ež¼OuvˬêwØe‰ØìsŠŽÒ¼~g%HÑÓúÈÖ4?sȪkÜ¿ë໚’9Ÿý nMʦói7ÓyÄ£¯©À/0¨¸ï˜òfPNÜÂͼUó¾¶´¬ÕóÀa¥I—'HÇ2"äÆö<ôèÞ£b–n_ñàªÉ“2 ³ EgRR2Ä6.CÜU•r*Pî|iX°"41„¼9+‰Õ8KŽ©h[fó‹DC)Eå CN4l HÅ:‹)A¨%‰x"qPæ«WG ·Çæ,Pñ–QŽ#å\ý¢š÷•…¦¦„SìsŸ™ÓÑÐ5F-€hQA¬”‚g/„Èš®bîÆ…Ê!9ÊÅ©¸Ø¦M‹%Ç0ž -ùQ%ªJæœA§ö)î¡ê”yvíì¬{դˌ¸ (/޼c(ˆ`mºÄš4«'"”¼j'¡÷ÿ‹©¶‚îΖøC (‡æ)ëgØûphˆy ²ó]Uû? Iš7Çwî¹ç†ÆÆV …能ߊˆL:õ¨£ŽjµyoäË6õõõ•••ýúõ È®’’’{î¹g¿ýöûå/yûí·wïÞ½Ûi!&"0`ÀÀw¿í&ßUóöÛo/[¶ìÔSO îjÓ¦MYÐjػܤ#/HÜAøLŸxâ‰cŽ9fÔ¨Qݺu«¨¨X±bŲeËÖ¯_μñÆo¹å–¶Âw}d¢oT¹°¢q“µÅ¡Ñz_Ïôf—[W¿áÈÞ‡… îi½Çš¨8)#“QçO.UlÓê…­¹ëê6qnP(¡ ä–‚sKÞPŸ;¶ç˜.qˆ‚µ¢©ú£úM[¥qgóÎ.é.”F¥§õ9bùG«£¨ÄA»Ýíö¹ñƒO4A JÀã«^hjÞ™ŠKr¤¤X¼2ƒ…ã P—È… Áh§Ôðªáû@Åb‰”Õ$~¹zÊÁ¥Fu= ¼¤oMãvëI˜D¤ã°ÊRõPx2¬ÄJ¤FX­’W(k¤pØ  - gA©ÛxÎyc(aF f’Œ4 ìg&½I5à ËÀƒäÈ[0VÉ©2)×»F {†Ùé›vH}HÈ2±J±¾‹Ã½“1†  "ƃ]û°c"ÏAj!d'w°¨gT ‘ã ‰±Ï×㿎º%Ù…@^çˆeû N3U IDATMswfvÀ =ë®ÚßÂÖE"ºõÖ[S©T¡™n«'ýÏ´ÁÏœ9³£ÒE+cO—ýõ¯Íf³ù\_Ç£G¾ë®»n¾ùæ<öm:ÿÛºÉ]Úîüùá„_ýêWDtÅW„?—,YR__¿G8ÿAÇ{졇Únd`ëÖ­/¾øâÝwß}ÓM7=øàƒÓ¦M«¨¨@‹.\^j»Á›êÉ yzÍ,À {#ÉâÛ§¯²tÉ«5‹CTâ#ˆÖõ@qͨDrlÓŸë?Ì„±¼qm]®¡…Î$l繓ÂUò0ɦˆ!>»ïñ “‚ço_š‘¦ªÆÍïlûB7 ôÌ'‚Ø+LÈ÷¶×îž„ãq|rÑÉöì!36Ï'’,>¦ˆ¶j€@ýÆBžˆ " H!HçDñBbT› ‡1“þmh¤,_Œ’­™mïm_A!Uªè“î}pzˆJ «¢óXØ^HJB=Ï%5ª¬p²K˜B»Ó˜!õ*ä˜a%匣\l{Ñý àº•PÕ´u]¦qê3̳QZ˜|”8¨»Š°(Á±¢èà^ÃDÜÕ×4ÖT4ÖÀXU•Ød/©*”½HÏtù˜n(‰GÄÌÕõ• 6SÁ¨À‹’*'T=ä“·¨gŠBFs*Uù4Ôþ…}<"n„•C LÑŠí«çV-‚‚Õ @YvÇrB3søe̘1_þò— ·ÿm-ÝÞ=ás-Z´iÓ&´×ªÙ*î Y¯3fÜsÏ=§Ÿ~zeee¾góŽ;îøú׿ÞêvÚ ùä_…vÔ³wKÁ½MŸ>}òäÉ|ðW¾ò•p¢E‹ö(à+ÏYgõÔSOõêÕ+?€¶¤¢ù`4_íøÿøÛn»­Ýo­³yB´¦¾rfÕŽR$ê˜dCh¤È,¨y¿Ù5Ç(JÔk”"K0V®f»Å]êu¨޼’,¨ü ë³ï˜¯:]’!â–Tsq×w›ÕKX½¸Ì¼­KÔÜÇõ=¨¤Ü‰£žÄt¶š~Ým—¡]öÓ„¥T66lY[¿^M±iÉò±ø\B+5P§JB0¾HÉEm°Ô­Â€E˜ÓX$ x%ï…HÙðAí*$b„ý» dAÐ/bñmLÙ¨ßä3âsÞ59ŸU×ä\Öû¬¸æ¬kò"†Hyo Ba¯*¢^}Nš$‹ÌŽoð•úW¨W&`òú™™æzë?;¿ƒ ««AzþO,ÄàE3®¹öøcO(?BSO óJÕ» õ†À!cèÜyÙ¯¤OŸâ¤jÄòQ݆šÌfË&#¹`bXÄxljÇgUõêDUÔ°Ž˜HIäS)€ýëRm¤ùÔ PN1H$ó؆Ît ’Jí¦Òw[ûVãí·ßÞµk×yóæ-^¼xï@\âÚÚÚ  0 -( -n¸¡¡aÇŽ••••••Û·oïß¿¸È‘G¹Ë;Úëâ?­^½zâĉ"rçwæã¿·Þz«mbp—ÚnáïýAôüóÏŸþù›6m*d÷iG†#…^§Ãè0ô턵’nÑ k§oËl0Q7…§}Žj‹©hyÝŠ%;Ö]~D•è”~G?ðÁ¤ ‰jªÇt9 ¤/–Ê/T¿1²t «¬¬»jç²(¬ì\Óá=^˜Íf§L™ríµ×nݺu¯VÚÍéÍ›7ï¼óÎëÖŽ)ÏÂ2I»±Ñ^g/[I?„nܸñË_þòºuë¾ùÍož{î¹y¸lÙ²VÛäݪK—.%¢cŽ9fÆŒW_}õ«¯¾Ú60Ê_°¤¤ä†nøéOÚ¹ÒhøŸ2!0%ñ®f$û§µSA©@Ì)‰dÖ¾ï #ë›§o|ë¨òC‚t̸^‡÷+í¹©a3¥‹ÔõÙSúÍJ Odª›¶,Üüþ˜.Ã’ÑôÕqVHH%ÔFDNî7–¬!QK´¾¾rYÃrQÇ&ý~íÊM}‹ÒPvß“&­{ž•U’)d>.-ôIu+2§’ZÕT›AŽMDBN›é:êG‡_Ö±‡Õ áÙ2é‹oýnõä4©R§¬ÆNpRâ¢ÚlCØ] ƒÀÝP”Ì6†ìÂbI(°=|ÌOÔF¡ÇS•ÞD&ÌÜøöYs¾›5ÛiŸMÛ¹íU0êkß<ð‚Ej”…{¤º¶üœŠW7¾öõùwmËÔš8åÕQ žºM®{ßÎÃPi ù€0ªÇ!7~CšŠ<åÊŠºŽ)|Zßc‰#ñ`#M®ñ[oþ|ùÎe—A°A‹U ^Á ¹êûšnJ•T™Ù‚ !’Õæñ}Nš¸ÿy–­ƒª²¢bX¼ðØ’g_ØòØ&b¬±kÿoq|øð£Ž:êôÓO7nܸËf„ñ‹È|^`@s«½½u±‰J)›¬û:ÙæEÀÑœê?Á×a˜€žéîG–ô\ã&ã5lê¤^G(4§ˆ ¯×¼ÛÐT™$V ÏÐŽKóAŽž Q|zÏ#)/¬]¹½y[•Šê¶ÆÊÅÛVö/%":©Ï‘Ý‹zÔfcŠü'µ^ >ÌÙâ„Êž‰@;rupæH Èê)ýÇ^:x¼Âƒ(iƒ‡BH‡”ô{dÍßrp¤V´çÓ“ž4 Aˆrš ;(tMwE¨æjçûI¦„÷À©%Møú´ENEBohé€RŽj}óžÚƒ\©)-+.Mb @ Na¡9_ÿ‡ÏÞ´ðÞfß`ãRužQúlÕá;ÌobÝã Ñ=F@YI(è#@. š½iáíK~½zal‹!ê)0‰*>ÄNA ‘žEÝ íÆ¦¦ZILˆsÿ>ì ç =³E:7]Úƒ¾þ³fŽ%‘Jm_÷ý™ãÈ’ÿ´zæw¾¬,î3©d‰ö’¸ö¦ª‡vX«rúÞ¹ŸÂÌÒÊ•+«««CûNg¶µ ÀÞ¹w?îyþù篾úêÊÊÊ‘#G>ùä“¥¥¥ytÜ’%KÀ¡´óGQˆehjjúÒ—¾tÝu×Mœ8qèС×]wݵ×^»dÉ’•+W644ôîÝ{ðàÁC‡-++k¹îð~ŠR"£‰ ì&¿[1™‚á‚a¯NÁûz¦!µ`ˇ›kúõQwjŸcžÛ0SHË +?àðòA‰QÕéUo1\öŠrç(S%J¨O!’Ù¿lèá=Gjñ±Î­\e&ÀÁÍ®YtöÀS¯ÊûuísD·C_©|MLì!¦Ã:Œm‰¬€’§ ­ 4³Q$°%< ”24«HèâÏÆî©‡OR[`Ï¢ N®jÀ¼pÞM*:L™z€AýŽ ô(Z`[z¬%#Y/‰Rõž“£<Áœ"™––DEŠMÉ7†ilùÁ¿XòøË›æÆD>!š Oßñ(¬Â& ŒÐ¼òà ÃA+vl¹nÁ/þ^1•sœòjØ(|’%åCLõ`%â€@g1Jª‡ŒMdàãL9¡Ê*`k@J‚\‹écåÐŽ ÕÿÝŽGÌEv厕_?ý«Ã¿ä=³‰ÿIœw?o¿ýva™gOÕ¯ÛµP555o½õÖ„ vyrqqqqqñ¶mÛö¢l³§÷~ûí·ßqÇιáÇÿío8p` æ K6´Ž¶RÃÛ# ðæææ_üâÿýßÿ}ÑE]uÕU£G>âˆ#ÆŽ[øÌ[Áê:»ßÀñ¥‰d½`˜À‹·}4mãkl‹(IL`x߇< OF¶gj^­^xáгHa`Oëst±)Íyau§u“ŠÒP¯¬R7kó;ž-TI˜L‹XhÇ×u^ÈÀx?®ë!eq™oÙxɼ¹ý=&UάAüzõâ²RsVÿãflxULmû¸ÞU@´$f’Jdî8CQ&ÛÀÀDÕ(#pyQU¼É°÷„ïUË~à>“d$-S]T@ðºËg œ=iübÅkõn'È‚žaÃzá~ÊÆÙ ¾Öš¢½ãâ-Ë—ì\Ù’ ÄÚÅ”W~p÷¢nJZ”*:©÷è“N»ÿÊ·o{dÙ$Ë]ðE<Ðȱ䠠гÛ E€2‘Â’,éõ³#¯­“Æ™›æ,´x6 OLìȉrÐpãÕ%Ùd@UB)!“ØISŸ©ÀäAÆ‚È3OdT”à)$L*~_{å}ñ¨©QòL¿[õü%CÎa[¤{%ê]hìÂÏæææ‡z¨p›ÿÏ{ðÞ¿ýío&LØ¥úI:¢˜kjj¾ò•¯Ì™3@ïÞ½Ÿ~úéƒ>ŸÄ‘oß¾=¨Ž¶•)Úìba”ç,xòÉ''Mštùå—ÿô§?2dö@q'lÉ)ŸI!¬iX7iÍKD–:2É0HHö}Ã¥7söõ­Kvºº.¶Ä‹Äqúøî£W¿×£¤ï‘½F fW-pšQ øe0ÁK'£$"2ÄÍ>Û5îzbßÃ)±ž"â®ÙBÌVÕå=š³aƲªÙe¿C»ŽX°õÃD•?ö=Ú²ÞžÝá$s*Ø•¾élӢʤlц‡W>Mj ªÚtZ¿cŽè•´Ñ)±ªg"R–f'+¨B»G%y*0Õ£‰Ùí"‚P&& Å)ŠJŒM«¦Â‰Á¤"6 Ñ­G¶#²ÔN^)cÈ™¨”ˆ¼mÈn¸iÑ]õÚtÇáW+ ©/ŠÍ‡}ýÙ×í½Ö¿`7I’ˆ['|ªhØø /kTßüø²gî?ö‡_;àßµE©â_ýÓ_úú6·Ó"VVÃðb]Q%03©*sM¦6øÔ*ê ‘PL'˜ uU¿ÛñP×HQ—oxAß@áY9U˜À4Èì[v´ûx=îûG­Â f1`÷O8Ÿ%ÚÊŠBd}ôÑG·ÜrK»çìõÅóå¢mÛ¶aÐNΟ3gÎùçŸ_[[Œõ–-[PÐŽóÏïЙyýúõgžyæœ9sTµ¬¬lÊ”)GqD+ï`ÅŠÕÕÕáøˆ#¬µØ+yˆB×&ßc=vì±Ç>ýôÓ{ì×5¼ '*׬¤¿]>e[n“1©,Ä›©Ð¾ï㨒2­¨­\´õ}(2Îé{< Gt?d¿â¤Þ0DÝÔª7• %R ä·¡ÈÓ‰r¥2Y¼Œé>ì€Ò-:2²ë¹åÞ£oºÿ˜î?æ‡÷ýÃߌ»aT·a"ÂÄ5ÖžÝ÷8¸æd=~¢””lm74m©s ª;ŠþÅåEœ6 #Æxbؘ»š¨ˆR)J•Xæ|°BBÊ&QÆÙ 6©`ËTLJ‰G=Z¸DªL­zi‰:¤ãd ƒ@B,JL^ ªPOªŽ[vÚâ÷Âë$% °2‰WÃ0b`Rˆìo>üóš•RÔ÷Ä¡eƒó 韲û!ñ!\ dD`fXËQ¥Kê¨ùÛoßñÚæ%š°»ÈÝö¿ò/å4g"Pa _.q¢½é¡¯iª†« SfHI_pÌ\[ŠMTÄd)]Tl‹˜°M>Ë‹²=úbAÞ÷n'Ô¬Ø0•Ì­yë›æ‘Fh¡cÒ–ÝÔeÜs×\sM0úÕö¢Q&ÿÄßyçNB¢¿üå/çœsNEEE>µ•J¥Ú^§“èÄ”‡ ®]»ö _øBh 5Æüá7n\»i´!“1a›ÈŸŠ#Þ率(Àÿâ-à>x"'€ Jö)áÀ®SCa">úè£3fÌ(4å­úWÚZçÝ?½÷×]w]`\›£üeß}÷Ý›nºé²Ë.khhÈ?ùä“Ï<óÌBòž¶\8Ñä,_(Z·nÝ„ Þ{ï½püÞ{ï½è¢‹ÚFfÏöûßÿÀ!Cxà~ýú}þóŸß} ƒ„ÌߘVO,?0föÞ_{íµyQðÝs?hZ|u ~ûá_k·`7:[÷É<„ˆ±%D37-ô>k˜ Ú·¸ÏɽƎë}˜ªzR…¾VóN]ãöO6 ï:Ô3ÂŽ¼'µ”:¹ß˜PÝ"13©!f(³,ˆ™c¤ˆ ÈxtùAûwÜn7tH 9ßðζ”`Ô²R1¥?×ïäš‚˜ €ˆTàCò|/˜¶¬&¾Æý`Õ@Ú%š3d…•%òšM¥Šï12dyH£úLý¦æ-ºSU¥“‘ h|ßãÔçD•aX9Ï…MŒ0‘2kTÝP½fGˆÊ )4¶ÛÑfeK`Dj­ÄÏFšÏޤ{ß;hÐ)3ŽfW¿þ̆€UUÇ’0*‘B¥ÝÙ˜×××ßsÏ=mZ޵¬¬,Ï‘ÜÖ>î&cf¾’ñþûïßqÇ…×Y¹råøñã<òÈ»îº+˜ƒ<¨ìüóÏãø¿øÅË/¿œÏSår¹gžyæG?úÑ„ n¸á†¥K—æ+ù…¥ <,"ïV—,YrÖYg¯ÃÌ÷Ýwß÷¾÷½¶7îúÆolhhð½ï}¯gÏžDtÁì~hòñ>W•ˆ.¼ðÂ_ýêW?ýéO>úèB÷sçιsçî~¶M3ÔeÂG;×þ~ÍŠSŸIb=ŒÙ0lŒY´cÅê†õùçs½Æ ,îK¤Ì —+ßò=º¾W0³hvXɠû”÷+w®ú˪çŸ^óòä5/O^7mÒú©“×½òôªi¯~nÙöå-µ)±E§ô= škõl™È„9¦~ææÅÉ’%@ùÒ¡grœàU”à¡Ð jÚ­Euþ­åHU=˜”¸”ƒÁ‰ˆ7*pÙÊÛ¿´¿ª*eAòAÃúõUÆÚ"ØNíI‹)XIƒB ð¤ªV4ÄF¤noJ¶¬6èÔ¨x“ä:-+(ë0 )¼‚äÚ·ÁP±ÙšÙª‰†6—F©Þ©ž µ‚x¯ð±'€âý» ЖŠl-íÈRV ¤²ó“)H€2Ø?´æY8U˜iéòý¿¨†Áäখ؄ς]ýŒÍó!A@ÔX6_=à,xa—“a°‡8rÌð*`Ó.äSÛ~ 5É#s «Ìw-y´![g˜H}¢Q 5`ì†o³$ðÄìvøöÛo_´hÑo¼që­·͘B/²G¤yé¶ûî»ïõ×_—/_~Æg¼üòËy•|Ï)€^½z9ç~þóŸŸ{î¹÷ÜsOÒ† .¸à‚»ï¾ûù矿çž{Ž;î¸oûÛëÖ­kÕdšaíôéÓÏ8㌠)WTTôØc]wÝu耺æ×¿þõË/¿ `ðàÁ—]vY8xê©§:tæP¸‹n¸áÉ'ŸüÎw¾s뭷Ξ=ûä“O.l_ãxºS!$P6Ž<w¼ÿHcãNKéÏn‹E^À¤Â¶1S;£f1%}rxŸC»EexðŽlÃÜêwa÷ÜA2±'¸Üñ½F—Æ]  {ãï>zúÒ™×_8ïÆ¯¼zÃspÑk×_4÷ú¯¼~ý3¯»ûýÇ“ ޲Ît,\R7Ö‚ ¯ªN…ÙN¯~c{sm ¤[î}ø·†\è2;™\’‘ƒ( ‰ïL*µ³ˆ„  Qøì`HI &±YuÝpàUÆDªDˆ¡<³r¡kÞa$‘(ûÎB¤Ï—jåÓ Œ”dÔ˜Žv3Ý‹ƒ3 …±jÁ†”DêêràQ}ƪz‚2¬kÚ2yë÷‰@ŸTÙ¬lØÒj oÙßk4¼Ë‰!š92ÞK׸ëè®ûSË…6í¬hl®¿ç»«7 p@jΖwVe6â%œÖçˆ1Ý”œKXìT! ø$J€8žT1S ¤Øa.rÎéN̹FøXငû) ¨ûœ-ä³­ñ€ÒûÀJsÉ¢­ïýaÅ3ŠD%PB%åÉ]yU---ýîw¿[XÆ¿þúëo¾ùæáÇ;ö–[nyöÙgKJJ Mêî`‹QÐZd𛛝ºêª†††††† /¼0äšòÉ´‚0`ÀO~ò“/|á kÖ¬qÎyïo¸á†¿ÿý諸nÝ:yì±Ç†  ®®îÁ<âˆ#~ýë_ï•}ÂÏL&sÇwœsÎ9UUUªÚ»wïçŸ>¸“Vþ&œ?þü›o¾9¿å–[ÊËÁæ²²² /¼p÷³‹áÕ¯_¿›nº)?˜¢¢¢Ñ£Gçÿ<à€Î8ãŒBA‡]@æÀa#aa_«\ø·µ/QTôW>“‰N0^…ˆ˜Dagl|S5©¢Žé2¢Øƒ™ó·/ÝØ¸)Hv<¥Ý1ðPf>µÏQHä¯ÅC^Û¼ E±5±R‘-b“¥ kºìõ4º@ 9Æ•XV.ÎkK¹ÄP"0“c*vT>µú%( ¼‚úË£¿û/ð¹œÏ4;Édœw9l£oç‘:…;›„D,Ù1ç¤ ¹¬qÞ7zטÍì(Špï17ž9ð(U)²>÷·õ3•#O¤ê‰:«ú¦l³4×ûÌNu ’«w™F—«Ïø:—m”LfÈçÚ–ýµó¨]Ñìrð’Ë5z—ɺf—Ûéü¶Þ\þ›c¿ßÅ”  º¡fuÝÚ7Ÿt–!¶ïo]V×ÔJã¾1rB¿²ÞÕ;/¤Ö¹œw;‘ÛñÎݯË@¨8x@ÞÞþQ¦¹Ùì%- lh˜2QT¡“Tâ IDATß°mÚ¦y # R±6þÚ°³!Y+`"ÉçÛ•[JFqz~Í’ÙU AE–fûèñ?9µÏ‰È58çœwN2È5Õûæ,e…|¾/íÓG–Û}¿àÃÂ"ËO€€mÑÝËŸ8èéûH‚‚ˆc¶»ô:a:^|ñÅwÝuתU«ˆ¨OŸ>×_}ð!Íõ¹Ï}îŠ+®øÍo~ƒ6Ä3»¼~+ñÒ¥K/ºè¢^½z…Ä×Yg5oÞ¼úúúüiC‡ýÙÏ~FD«V­Êáxà &œp óçÏ5jÔý÷ߟ_ü[·nýîw¿ûì³ÏÞwß}AÀ-|ÖsÏ=wçwæeè† 6yòä1cÆ´dB‰±iÓ¥—^ZWW`üøñW\q H/¹ä’x ©©i÷Ë%=…”<ÙôÃã~ö¥Ág<±zÆ‚ºEÞ5J÷‹ËG–î·çÏG 7d»{•Ÿ5ð4¤•­‰*ôåÞŸÝ÷ ¯e°Á“ÿX°ùÝ(*öZŒ [ÖîãaRq «G^´­i«1‘ªéDQ 9µ´nså_7½\(¿[ŨîCN||*.309ƒèЮC¿:ì¼]÷S8#&°e¼¼éÊÆu Œ@†”?j¬˜^ýÆùC>§5¹ýÒýŸ;å—7¾ýÛwÞÏå¼5én¶çe‡ž÷ãþ®Ê€¼÷\ý""Qâ=æ:S8KFŃ,¹œ½°îop11Œžvû’GvúŒ&…2e-Ce°Š7¢ÙÛÿþÄ>¿‹ŒUEi`Ñ€Ïx`ÒºéÏ­ù~ÃñY&{DùÈ^q†~VËñÓh %fH QUYŠªê*~±øÑßwQ&TfÛÉshUT/--ýÎw¾sÝuשêÙgŸÝ»wïB@0uíÚŸdþß}ßÓêÈ /¼÷v£Gž6mZá9ï¿ÿþ¶mÛ²ÙìïÿûüV¬XÑÔÔ4kÖ¬Áƒ§R©’’’VWž9sæÉ'Ÿ|÷Ýw~øásæÌ™oëëëë/½ôÒ+VQß¾}ûÛßæÛzB iÔ¨Q'tR«¡¶ëoòŽ9²Uàÿ§?ýé‹¿æ^g ¶ðDF Zõ9ÕoŦ$‡œ%ûÙtí)§Ù6¸¬7Îz»¡qÃ[5ï=ðT…X¯Ž‰¼f§U¾MQ‘ë¨ÜØÌ—Å7-;¬¬Þè¼^óÞŽL5¢°zb+P‚ñNR5kÃÜšùG÷Û•èÜ>ÇM^=Ý;5¬ ‰“ݨç\‘O­mXÿ­Eÿùäñ÷ÄDBä”#ø3œ8~À‰ ¿3×STÙ0Î=‚ E¢DCÈæü1å£_<ý~*HŠˆB=ˆ„) ¯¬ÛpóÛ¿7,ªÊä äµ£'$‰¸aäE¡o>L’Ä«$‘‡bùË«ÞÚ¼”È&r®»Áü$"—ýâþœï“NQˆ“ ÀÛ³;îYò?–¸£k’W6„,ݽìáñƒÇ™"rä,Žì1fæøßT·~G¦©¦Yïîq7!¯±‘¿¬˜º z!Gi r´ÇÄÌìœ3ƨª·V)õúÖ**• í×eðé=~ªâ•(NÂF!a3WõÖ¤_­~õ¶Å¿¹cÌÿ8%/jÒ¦èòaç^>ì<ñ¹Úl¦(.*b@–ÿ_§ÚH½: † +1©ˆLÉ럙¹é]-Q{ÒÏq饗öíÛÀ©§žš·¹¡ÅçÞ{ïýùÏŽ6¢m»¯ÈÙÖ@Çq|Úi§Ýÿý­ Gµµµ—\rÉ1ÇÒkùãÍÍÍ·Þzë•W^²X­X«‰¨¶¶öª«®:î¸ã~ðƒ¯0vìØ©S§rÈ!(À’𦦦Ë/¿|öìÙâ8~ä‘Gò ž…·çNíÜëä ®úãÜ‹1m½ÎžD<,ðUM[úþoöDF-üg£IÛ¨k\„Ð?Á,’{¥j!‚`¼UȇµKkW‰™Z¡Úv9sDäÏp8”½$tioV½§ RÃ;(AU\Dä"º¹›—ªˆ"V:¡ÿQIϲ¶TU!Vä†Kž]ýÊ5oügC.Ç,Á‹°*# k\Rdã,XáÛp§¶°¥‡—d­QyV%UäàDÈ{Ê3Ȯܱþ¢YßÝà6©-£ "áNHTA¢ xvÉDA2k=XE¯@÷¸Z$qw7Ä- %ÀsP×TxÉAˆ=HhÌÕ{Þï×/׸㠷!U¬}«zñæÿ ¬5 Õ¬BF” 9²çÈCzŽèwˆ1ìXuVÍ{×/¼WµjÝãlçˆLZ•,ˆ²#Úž­™Uù¶R@ê_Ùÿ,°‘ÐwCP‚¤²ÌB†ãÿùþoYò±eŠ’H v3¦{Qi85 §«üëx`”‹HI™Ž”ˆ½ÏþàÿªÏ5…ˆh›~ŽvAÉùéX^^~ÕUW=ztaSý’%K~ô£µ¥Û%½Xç&uÈ! ,¨ªªjË?=mÚ´ 6hkíöíÛ×®]ûá‡677§ÓéV•¤ü½8ç á\pÁôéÓƒ¨vÛ% ÿþïÿþÌ3Ï„?xàñãÇú³ü»Î9眃:(ž={þÛ¿ý[ÿþýó#iuý@9º;Õ ]|½ºº¹uáƒvVD¦˜à…ƒªò>Oª©@Õb’n "CY‚a \V”žUõ¶Â› \c=”çV½Ñä•,Ô+„HºÇeµ€ˆbªuŸxòJRÄÅ'÷'¤† é›[ßUJRë@­ €È5«¶øíšêÝ‘a% -p|÷Ñ$ÍJª°’’ÔCÙ€¼%Ž"óÈÊ'Ïzå[³+0&R&¥!tP…))mn®ypÅ3YßDˆ•>nÔmu LÊQì¡ `·‰Ô8yBb«†8Ú™mx裿4}âÂÚuFÓPò¢äƒ¸YÂ9ý±t²†é@¢€ FZXÈp¢ÎD«Q„¾Rä¤Iï?Æ>ä‡ðÖOˆLÏDÔ£aUbb5àÙ›æŸóʵ­˜j¸”Åt4ÕŒgcãè7Ëþzñì›ÖÔoqL°(h® `ÃŒÈc+þö¥W¾_“Ýj)í LÒyjØ¥l* YCê%u*È‘'c‰„4÷|õÛ$÷uÎÀ“†– öðîcðH´ºq¡1ëï} S@üã4 OÝögçy§v½ÝàÁƒßzë-|’`¦£ëÔ××ßrË-555©Tªªªª²²r—aVß¾}o»í¶‰'¢VW˜Ý"¢ªªª‹/¾xöìÙáàwÞyõÕW’žŸN§¯¾úêïÿûºtéò /uÔQëׯŸ8qâôéÓ q á-sæÌÉÃçö@yé% ÆCX,YLÙ0ë±5ϱíJê”m¥¡}Ý; †(´ÆÏ®{íèòÑ]ã"õfÚÆ9U~“3‹8ްdÇš;ý÷™ýÍY·Ôm¾ùeÀ ¨ÚhʆWîqHIª[Ög_Z?g»«ïˆd“`3ðÓ6Ì‹Èx/†Üô‹Õ®jÛ Õâ#ÃZÓTóÃ\<ü¼[êÜŽõM[”LàˆcmÑ3T'¯™(õZÕ‚3ç|÷äžcÎëÊèîìße@l#`kfû††Êåu•¯o^ãŒ3ºté’?rþùçO™2¥UÞn?iGÌfmOfæ»îºëÑGýðÃw è*<¡¨¨è‰'žøþ÷¿¿nݺÓÊD ´xñâ|i mhl.\xùå—øá‡áøwÞyà 7´«M?R]]=vìØM›6¥Óé·ß~{Ô¨QªÚÔÔôíoûþçZÕ½â8ž:uêÉ'ŸÜöÓw5 %Èy)‰€YA„šæmǾxñêúJc‹Œª˜¬b_;"òPVÀ@š³àTÌP’ŒoйXÉ ¼ª2[ï2ŠŒåËä¡ÞçÄH,Ö“!x6–³¹fÃ&VÊ’ªªÑ²I¢ÊDN2%œr`š|3™ÈRû´WAA€IoŠ©‹pŽ= œx£‘7-Ű@2MJBŽØÇBbIr`¯¾QámT’ŽJR³°Ÿ‘æfÍH® ŠR)eêK0¾CU'™§ìÈ)rPk5vä8—…d‰ˆL13µtª¶×†˜T¬/™"x—%2´!ÈJx,“B&—eCÆDè˜D™W"ä$›˜Žâ—dHL!iV%²±y(Çž:ú¡¤ìVr¶€óÍ^s@ºÈ¦Š£""ãÕyÉ6¹ÆœÏ°5iã5KÃäHYÙŽ#rÍXSdIÄSF›È¤C¡[”™"õJVsPM™4©*Œ—œã¬1q'Ô†šŽ0)‰æ¼oLÚ–™ÈZ QiÒLss=4K$)ccuP0“2 L ù_õr®ù°#Ÿ;©ÀO«Ñw²Ø×Ž'¨FlÆgïXþÕýζ&"IÚbÚM‹µ•EpðÁ[k Ó_“'OþàƒZT û ¥¼Â¤Sþ:­2QqÿøÇ?ž:ujuu5ö¦Çñ† ‚¢ZçïÚ±cÇ„  ÔV^(05\zé¥JJJzè¡k®¹¦Ðs´ÕŒÚÚÚW_}Õ9ÇñYgEDQwÞyqÏ™3'-…­èܹs'L˜Ð­[·Â`h—^'É—ˆ€H†*ßYpÏìÊ7lªˆ’:=‰"¢}NF¯@%eU°µ€ËAU…MšA`Õ‡ê#6Ä‘€¸ Ál`…؆ⴅ""f‰¿@ˆ¦:úÊ"'êYÔ1qG¹JR‚!£2BêÔk¨½GdÈ´=#Hvª¨aÃÞy Ã+fN‘I+4ã2M.Ó(Íiò"¶QÌ\ÌÄ Ð$¾Ge׉6/*ÞC‘#‰€ØDlRl"ò›z䶉»p!@XC§+T•‚SñP!äñPTT B>§’ä°LÔ:N&Йsà€!8r*ðª^U ^UT=”˜Ù¤ØÄD‘Šk@v¦$ë#D$&,ž,qdÉäÔ7úÆFר,™Œ8Uܲ”b!!%ªG pÇr{Bdˆ•Ø3Ägj£4©¢x†)„}&eŽÔ‰÷FÁj4ft¦àlTÖ„˜lŠÙzqMÚܘklôM;Y¼‘IbCV¡J äj4áû§¿Åõ)êõ­|z5žkxA Þ˜Ô‚­‹o|÷WP%Ü-íVûÛµ­­(“rÈ!­Ìea=Áy~^çóŸÿ|h… $y³ËÌ™Læ™gž)--ͳìfÄÓÔÔˆ¥;¯‘ÑI'tøá‡Ž9Üׯ¯¸âŠ+¯¼2hl1âÅ_üêW¿š×KíÈ¥…aLœ8±gÏž&MšTSS“×üã)S¦„>Óü“YµjÕøñã.\X(õÖ.KÛ2¡öAÅ ü×5Óþgå6%õêÃ}G¤nßst ]åUe…1–8ÃSàK ´ŸìOð†9p¨?æàˆ„¾PlÁŒÄtRÛæ@ue™I#e˜HÉu‚¾€z§d 00–¡^åcR2B5`Û”#%2^„II„½ª’‚ÕZŽ CL0ÄL& êU1g+V2d;Ëø"6`µÊÆf¤ˆYm¤ÊêU[„ðD­´ÉÞ!kÍf"#‰ZbKl@›ð‹%fÃlV­5VU#bh‡Ï-RU…ªÁ3ƒ,,·¼ò|"†˜AÄbTvtÀhX‡V+±WyJD>) Oá¡DÖÄ)Šb±1ÛÔóì È ‰&tÝŒ”H…Ù°¨1)"¤@ÁàB•“+XY ‘0’´‘¶kâÙ8õV” ÁH¨±11lšâ˜"Ã3³"Ìjeõ¦g ä¨ElpßÚÿÏ*âVȲ'¤ß¬™?ªûˆƒ»íßʘvôþR¦èÑ£Ç#<âœë(éÒ¥Ëyçwþùç¯Y³fçΪZ^^þàƒ˜1c€Q£F=úè£O=õTáE–/_^[[ØÛv"ÙI Sˆe(--}òÉ'XXÑQÕ?þñ—]vYÞu}ùË_~úé§à­ÝGÔ6-Ö­[·-[¶¼þúëAHôøãÏSÉxà\pÁÆ µ|¶lÙ2iÒ¤îÝ»92Žã]G »|çº çÞØ¨Ml9 [LìÉÙ}Í%ðK¤É”­Jœ¬™`ë¬? ï2´ÝH¸PŒ§-®¬UÆé¢‹.š4iR^'MDúöí{î¹çžzê©x`¯^½ `õêÕ?ûÙÏR©Ô7ÞXUUuÊ)§är¹8ާOŸ~â‰'~ãßxì±ÇZå÷:*uý´{~á:|衇ð:ÿqóæÍ»ýöÛ§M›Nîß¿ÿ-·ÜrõÕWçŸ@»h‹¶˜@f®¨¨3fÌÖ­[8à€ Öûž~úé{ï½7@'ò7kÖ¬#F´û´?ùè=B«¶(Xr™sf\3gó[QTˆ:…µª$y44Uïã(ŒªKì9©œ²!j‘¯!" öD ˆ(™ÀŠìˆB€§€ï€!– 0,&ßXÓŽáÖ¼¤–€•E5PuP# þÊÁ…í'ÁŠxnÙy$cŒB˜ Ê*Jd@¤ðÁ‡&·® ôF)Ç‘záD)aG;P„*ÔGHTÂ1bÕ„Ìk¨9%_&µgõUCFÈ…±%©j«H2š¹¤,ƒX%ËùŒOÛj+œÀÙg`=„:HBEÑÐx#©E%¼fÐ'X†£f1öÇØ6u,Ä=‚€ ž;ªñ(r*ÆŠ!£.„²-E$Èá„ê‘’g5 „Ð38/J,]ŸD… ³‚TÉ<7^4¢üWÜ2pA{;D9>a ø¿ÚÖx>3Ç>Â@B™Tas ãú=íô?XkÛúžB×Òn'c¡}_³fÍQGµmÛ¶€m³ÖN›6-´ûÌ÷Mj&“;vl¨ Ý~ûí7ß|³ªVVVžp kÖ¬Ù%ïuçΦsLª^tÑEýë_óÇçÍ›÷_ÿõ_S¦L ï2Æ|ík_»ùæ›óÍ:m ]ý™ÿôýßö®=>¦km¿ïÚ3“Dˆ\—¨~BKSêC‰­:A¾Ó櫪8)zê^ô¸q¿–¸4Zý)B[Ѻµ=¨Óãôó‹ªËAÃ×jðÕQMÕÁDTdö^ï÷Ç;Ù¦3“ˆKOÖó›?öìÙ³gíÌd=û]ëYÏ“”´hÑ"X¸páĉÝü¼yv÷î݇ºzõjDDD|||DD„çaÅ~•ÄKT`ÂáùKÿïCa«MH(I f€Ã ÖB¢TÞ‰o¨‘!AãŸ1®H¶ZDh Ô€3˜%¿"ˆçš%!ä:/œ¾–¨ê@BˆâÔJÁJBG 4$h8÷yë#I V@§a£$@ ‰€†š‘4rŽÖómª ¾^ˆÎ¾Ô)%”H H“ D5 ¡¡‘Kˆ©;[³$€’!{@Mq'w à.%@_‚F¨ %ZP$H“šA¹VDÏ7J”©I,šS¡¡Ô¡¤¢ÄüZ ,Y±‚w¾²RÝ/§ÁKñkYQaIœmp5¢Ð¥´*~j ÒM;S¶(rv¹‚HG¾CÒJ $@+ê“ R8CE¼7_ºüŒ©hÅóï]€ŠôšºÈípþ*€x,t›ƒÈÂâJì„¢KD’Rzá°æ/®|rªB€½ $Üë°ã¦M›úõëÇÛÍ›7?qâ„)l5æ0Ý´iÓÞxã xæ™gþö·¿±&"~÷ÝwÏ>ûìÙ³gKŸ'}¯ :~üxýúõ ÃØµkתU«>ûì3£HzÔ«W¯‰'ÆÄÄ€‹4ÜKÖ¿%;;»M›6.\¨_¿þ·ß~Z{;µ&\Œ@ pÊŠÉÙ{CÀÚ“›†š+}ýmJ¬<Ëu…*Dr8 Zµ8÷1§Û A$ ÀÉ:DH¨{WWmwf6QhÖÕ?l^vrƒÒ Τ" Q†É®„„„… òöåË—³³³Ý¦ŽLÖÉÌÌ\ºt)¿ûî»®Á QQQ;vìhß¾½gðÛjSwÍR)–©@@@À{gˆ)));vìѣǖ-[ Ã`áÙ_|ñùçŸ3ë@Ñš5¸Ç€;>844tĈ`·ÛÍD‰šŠ.p~A‚u4à JMӈ؎I«Œ B“ ¥Ÿßß&è‘È€‡x´‘G÷\‰uîÜÙÏÏ/===??ÿÊ•+ñññn7õq6pàÀS§N@jjj×®]YÝ`v¸¡¡¡ýúõó÷÷?~üøÍ›7]Њëå½®­UžÅbéÔ©SVVÖØ±c·oßn·Û‰¨~ýú\¶lÙøñã›5kVòIî©èiÓ¦ÍÇœ›››™™âUŠ]ìwÃ…‚'° Y„)ÁBœüå§Þ{Ç^¾uÕ}tPýË)((±ÌGñ­ûjó>,ô@M{®>+ÖÑÞHÙu¸ÐŠ ¬…² Ý~¨kýö j„ i+Ó|EGG׫Wo÷îÝGŽ9räH“&MÂÃÃyfž•—~øaJJ 4hêÔ©ðk™?õññùÝï~ÇÕÙÙÙÙÙÙàMÛ]òT7òàq³¬¬¬'NäççתUë©§žJJJzë­·úôéÞ–‘–mÚå¾¾¾Û¶m+,,¼páBBB‚g˜iÉ·.þ¼0JP"hÙ—zïyýdîVÍ¿ÀÏ" •çB­  P•ÆÙP€ÒÑÀ/xxó>Î[X´¾ßm€†’e`hd¡JòÒÐÑ*eÞCþÒ»¥FÔnX¦ˆ ³4Ù¿ÿèÑ£=:gΜ¤¤$žìAD»ÝþÄOØíö-Z~ü8kBBB›6mÚªU«ÈÈȨ¨¨fÍšÕ©S§\™Æ+“™sWC‡]½z5Œ7Ž…¥kƒ@¡f€a †˜±æôf-ÀR¦ƒ`+/IBýÓ)((æA†ƒò»Gïé±RÕ;–Aÿ÷ÆQ‹ÍªêE¬SYÁtÎO&ÒH…4òÏÈþß¾{Æ~ýv_í2œÐU{æzão·ÛÙa3&&fÊ”)¥!ÏÈ<á÷ßÏ-[¶ÌÏÏ¿xñ"ÄÆÆ&''‡……[,¯ÔUÔûçrÞ0~fÍšµ}ûöK—.-[¶ìùçŸïܹs©>‘W¾€†ЀŒ±‡ß\óã§š5PGIêBCB º¤Ô „`€@]¬vcpÊØijMžº­>/–s¾X¹Åˆ’Ð"…ð©±ëÂöŽ¿Z˜ †C7@‚䘕ÒÖe®ôÃÛ'NüùçŸRSS™î:›â¦Æv¥Ÿ“'OòÓ–-[æääpàt»ví¢¢¢ÂÂÂà¿÷Œ¹xë²fµ)AÛÓÞ5±Ôsý ¤¥¥}ôÑGTÊ‘k÷SL â?þÈѼyóK—.1ñ4kÖ¬êL°»ÉíÜ¥K"úî»ï¦Njo•ï:Ô&-(u0†íŸõöÉ4«¥¦¡Ùø&…ÔC=Ô£?hd!t )4©àÈëÒ¦gÃß±1¼"´Fèò'&û€¯! Î’ {uÜ«€‡sX,6C¢°8HÜÖüêì³gÄí•uó¼!,DûëÜC™ÂZ²'Np6Zß¾}_yå•2sƒë4OVVøùù5oÞüÌ™3üAìøY‰f^ )Ê;{öì™3gxÏÖ­[™)ïzÁˆÚmGÁ+ûf§þ¸AXýt¾²Ð,‡ÐeC=ÔC=ªÕƒ#•€tÁ"9—[CCwû5JùÏÉ6´:$!  ,Rê½›tÏï2Ô× ro_2,5-š@•Ö]²e”D@¤06´ˆBh>ßæ~ûÅÐÍݵ Œ4¤†¦w|ñS2®BˆÂÂÂÑ£G_»v­iÓ¦ìVPæ™óøüüüS§N!bpppXXعsç˜o6lè¦A¨ôŠÇ$ÂY³fq´:Ö¬Y³ïÕ.\zù«YÿcÿÊf $ƒH aX בY%eSP¨†à4q $@3À0 ó#k5}·ËŒÇëþG¡4,B G[,’ ±I¯¶A½•¹ikök·r$ê%uêå{s HRI*À¢#ùجðcÞÙž_¼ö^çq ctÔ@qéÝn–6ŒþóŸ»wïöóó[±bEXX˜ëTºr~—ÝnÏÉÉ!"68wîÏ£„„„ÜçÂÏ^ñð /¿ü2--¯=::zÈ!wÕŽÑñk§íŸ}äê7V›¯A@B‰(´ŠIhWPP¨ÊÐÙE[ ¡!I´>\ã¡ç#:d`][0H² Œ ®,ìüN„-Z¬ê2kέk§od9$ ªœ…À!ÐW§B+X !$Ꚏ$$!hPèȯm©Y(%¢v×GnééÓ§ñ¹çž‹½Ï’ÎC»xñb^^4iÒþõ¯@ƒ x9jk©9ÑnÊ”)üÔb±,^¼Øb±”Æxɘ5´¶M+ÐÐÇVCp˜¤&T™£ P½aIhRBê’B-4¬áëO$ žAI„Î_‹.8«¤@À0¿Úa5žàΪ²Š6pQP‘Å‚ik ìBJË]‰Ç­3½páq"§+y”­(á·ìÚµ‹'ç9Ÿc‚‚‚4íNÂ|¥=¦]ÂÊ•+322¸aƒ êØ±ci[µx´n þ.$:Åø@@(•†MA¡ºƒ—P¸¦H)¥ ÍÐ$ Brø¸D²X€ãïl #h ÑÙ½WÒ @bç6§?²? GJÁyóì—\š^Ïœáà6à!¾çf!âöíÛ,XÀ{"##¥”—.]"¢üãË—/9r$†Á$Ti? ".wΟ?ÏéP¿~ý™3gB)¦ œ†N‘½ᜅ A­UP¨ö@ €¢„À;khœÏ*¢:gÏ9Ó‚,{S¹ë0œ­.êÎ8ðõN.œ(bT÷²Ê•{Ïëׯ€Yñ”yØŠ{êÇ¿üòË, }üñlj¨}ûö——7jÔ¨·Þz 5íWÆe¯Ú0IeæÌ™—/_æ=3f̨W¯žkÆÏݾqçKAç}‰T厂‚¸¤²z¸pbÞ¹"XÿoW‹ëî™9JOnG²6ììÙ³ ×®]CÄ­[·6nÜX±iÓ¦åË—s¨Ï¸qãRRRÜzöÊXïÛ·/--·;wîÌš‚ÊâB…êŒgâñt£ÉËËc‡i7ëÒœ‡3 oܸ‘˜˜˜••e²N§NL‚1bÄæÍ›}}}‰èõ×__³f 凖2<ûR/Oíèº>a¾p›Í¶dɶè†_/ñQÿ ŠxXÝÃÝëÍ›7‰ÈÍæôù¤×¸þýû¿ùæ›àp8 ”žž^YU…ÝnŸ9s&×[áááÓ¦MEŸg‚ƒ‚‚‚‚"žFB¾¾¾PjU›™ Bˆõë׳ŒÍÇÇç£>â6(f½êèÑ£ÇÏC|‰‰‰ß~û­ù*€ULÅ3kÖ,΀¹sçš @žU)(((â¹ß>×ë¶Ùé—æßµ”9xðàðáÃY¨¶fÍšØØXÏi$øõœÐâÅ‹ûöíKD—/_îÝ»7;¤=hÑRbÿþý|ð7©k×® (¡¤S‚‚‚"ž_ôWÜ•ÃìvûÀóòòˆ(99ù¥—^•§ncn¬DX½z5¯ÓúèÚµkMWÍâz×3˜“’’ÂǬZµjþüùà1ÌÅ,hfT—í2ÍsΙ3Çn·óöüùóCCCë((((⩈*ǵ_fÇè↶¼.m9vìØÈ‘#‰(00pÆ ÁÁÁwqq.>ümèС&Là—¦M›¶~ýzÏ·ûW—qYsðàÁÔÔT>O÷îÝ tI£ Šxî£Êqë‘…ˆ˜››ëv€§Ç»nܸ1`À–¬X±â±Ç»§A6OëëyóæõêÕ‹™iøðá_}õ­¹ÊÊ|Éü^¶f˜4i’®ëDäã㓜œÌŸ¨iZ…ɸªñx4fóæÍXʵæ7nÜÑ£G )))!!¡”z„Nn³ÙÖ®]Û¢E ¸uëÖÿøÇ“'O²´šÇèÊ,³6ÇèÜ4£FjÛ¶­k «úÑ+(((â)÷ºÇœwñ÷÷ׂâœÊqíÚµl³Ö«W¯9sæx%³â>ÔÕ“ÍUÚ@D!!!6l $"»ÝÞ·oßììl7\æx˜VñÊ•+óæÍã“4nÜxÒ¤Iž-QPPPPÄSÎ)÷¼¬++NMàêãyâĉ1cÆ@“&MV®\Éön¥/üàÁƒ%0x› âÕ9W¯^>}:75""bòäÉæ¬’"E<Ä:ž„a³Ù‘£<Íq„ YYYD´téÒæÍ›?ðÌPÏ•=ì¦ãããׯ_饗ØÁÚkYV\•sçÎ=wî¿´páBVͩ߷‚‚‚"žŠƒW €:uêÑ7ÀÛ ÙÆ×­[}ûöåøÏÌÐ2÷æžå—9î×­[·¥K—òh^VVVbb"·Ðõxž|òÌþá=«V­âýøÃ^xáe˦   ˆ§J€×ñܼyÓµç²Æn·76løöÛoóš¯|Vf#5O20O5|øð?ÿùÏ|؆jÌMeZòºÖGJ9uêÔüü|vÂfŸÅ: Šx* ®<áïï/„ÈÉÉa;“ qìØ±/^€”””°°0³£÷êùö`Ë2¦–ää丸8nϦM›¦OŸîêeàµ|ð† Ø9ÆŒóÈ#@‰…ÊVŸ™"úå—_Z´hqóæÍ³gϲa(ãÓO?íÓ§$&&~øá‡^«“òWWl:ðôÓO;vŒ÷§¥¥y†š×ÂÍËÉÉi×®ÝO?ý‘‘‘‡r½.UñT*Ç"úøøݺu+77×dÜK—.M˜07n¼dÉ’’szÊå;(2V¨[·îæÍ›ÃÂÂxÿ«¯¾ºoß>f&7›8³yÉÉÉÌ:°hÑ"“u”²@AAAO•€Íf 0 ãêÕ«æŒýœ9sXH¶páÂzõêqP4Tìò³‚iÙ²eZZšŸŸܺu«_¿~§OŸBxŒûæ›o–-[Æ;ãããŸ}öYðæ´­    ˆ§ò®Vˆ:uê "'¤ !öîÝËz°Þ½{'$$@%ùiºz•ÆÆÆ._¾œ›qþüù~ýúåææº›r 'Ož\XXHDµk×NNN6k£2ü(((((â¹ß2Âsg½zõˆˆ‡§ &Nœ(¥ Z²d  iš«M@E¶ÓtýÓŸþ4{ölÞsäÈ‘!C†èºn²ˆ”R±aÆ;wòž‰'FFF2•š*mE< ¯‘Mš4€óçÏÀ{ï½÷õ×_Ñ‚ """Š[°Yaít-h¦OŸ>lØ0nÉ_þòv5unׯ_Ÿ>}:ߺuk‚›p5—SPPPPÄS™ 5€S§Nåææ.X°zôè1xð`ð°Ï©0a›g¾î;ï¼Ï/Í›7oíÚµf{æÏŸÿÓO?q…´`Ážºó¥ª¢GAAAOÅ£¸´P6F;sæÌÌ™3Ï;W§N”””ò^¯S^ô\[jµZÓÒÒºtéÂOGŽɹ¢™™™ï¾û.ïLHHˆ‹‹«”BMAAA¡Œ^uë­Nœ8Ñ®];Ã0,]º”ߪ,.\¸Ð³gÏÌÌLˆˆˆøûßÿ>uêÔ-[¶@PPБ#Gš6mª–‹*(((⩺ÈÉÉ‰ŠŠ:wî"FGGïÚµËjµVÍŠÍä’Ó§O÷êÕëôéÓDÔ Aƒììl)¥”rÉ’%ãÇW?bE£±IÞ?’¢Ñ(¯¾ú*?ü0½½½g•ûÖm£cÊ׈Ô7_ÖqÏòÁÊÀž}Cº“Ü×W`»áÊË:àX”|÷u˜Ksèœýj8@h×A”! iŽQuý¯ÿ¹×µª„¤[«tþ`õNP5RÎù›ÊêõzÙ²e ‹…@ €¦iLž<™Y³fát:Çmg±XxñÅ9zô(Ï?ÿüYå—ÁjF´Y.«¼gi°ï§@ ÇÈßü¿ ¸Ãd™VDê²ùú»Òã‡1îDäÎ>úV½AÏc¿UÓùÁ7j¼Qó7—3³dɪ««éíí¥¹¹™G}”)S¦ðþûïÛN¦OŸÀXwΛÍÄÆÿÁRY|Yå°Ü3ˆoíVl³&c™ZxYºr-™‹è´‰K”Xë)4MÓUU³\Øo®@êì%°iªª&øNŒ¹i¨ªŠ“ðoÚCÿÏ61TÛˆ¢(ÄŽw1ðó-Ä:{ï= ¬ÛF´ÉMè¯M VïDUU"ûZ}Ê ÁÍ{éûÉïüö”hUUÉËËÃd2±hÑ"žyæÖ¬YÃþýû)((à‘GA’$4MãÍ7ßäÞ{ïåšk®áÉ'ŸDQŒÆ„Áôz½,[¶Œ[n¹…?þñ¬[·Ž[ï¼M›6qüøqüqæÎËŒ3¸ï¾ûøðÃxûí·¹é¦›xùå—Yµj3gÎdÁ‚„BcûïQmª£ìu_¿(`F‚0 DÜ; /¾¢(£Y–Ïz$I‚ŒdRŸ|@ï×ÿú{H’¤?²,£™ ˆiI$/¸…¾gßBŽÅ‘$ !Í‚‹ãž÷ ê]¨@×WÊà¯wÚsŒÞoW#GãȲL¸¡ÞÇ_%>¤ÿ‡ð­ÝJÏÓ¿¦ké:$IâÔC/ÐýØ/Q#1úô[Üs¿‹¡ª*©©©‚ Ëe³Ùxê©§hoo§¶¶–·Þz‹E‹1gÎV­ZÅêÕ«yå•W0  –.]Цi>|˜û×K,£¦¦‹Å‚ÛífãÆ:xuuu|ãßÀétRWWÇK/½Dvv6“&Mâõ×_gëÖ­cb3ʇkŽ Ú̳SþÊ4œž+¯ÂÄ[½Èž~lŸŸ†&ËD÷µ`Ÿ;ãœíÆâÙÝÊà‹@éñxy;Î'ïGpž6iªADö‡IûþC7|Àà¯v‘ô•Ù’‘pC+R‹‡ÌÆ5 (’ÄÐ[»Iùñ“²ŒáмĨIfLW—ûÅvTQ óÏ«ˆï"²}?¹Ík’,$­¸ ïô„êŽa½!q’EY>éO›6 ·ÛMuu5•••,\¸A˜4iõõõˆ¢ˆ¢(Üÿý,X°€+¯¼’eË–Q__ÙlÖûºá†hnnFøäÙÚÚÊúõë‰F£X, ={öl}ôQn¼ñF6lØ@SSÓø+Š@ä¯M˜§$4å<ÀÆ÷wüÍûÄêšÐÂ1,7\AòÎG1 h&æ9•gõ3Àcn¾y‘ û¸ã”|½®"‚&+¨N+ŽÇæãÿÉï1ß} šA@SU"ïÁPœEhgâ¶L E‰íiFþğ˲Œ*I¨I&ý4j ‚ýÑÛQDˆ¼{㔋>ÑXUDdÇ ה게8)) ¿ßOcc#‡ƒ¥K—">Ÿ#GŽPQQ@UU²,3uêTy<ž„%¡½š¦!\uÕUÞ;vä /´ÜèFH² fè•”¦S„¿Y &#I´s|NàåOûQ_Úv¢ï4úÉ7=.Ûé~»a0„ð¹+F÷U×’ˆ¤§$¢cú‚h'Ál„ò¾;pRìPœ {ÚrSÑÂ1è Ì>ãb§³­µ !? aòºººØ·o¢(¢ª*¹¹¹”””‘1ú‡Ahkk£½½»ÝNyy9N§“ŽŽ:;;ÉÊÊ¢¢¢«ÕŠ ´¶¶â÷ûÉÊÊ¢¨¨·ÛM?Ó§OÇãñàñx˜8q"’$qòäI233™8q">ŸÖÖV’““õ mä9sæx„ªª*ï;3s&#óÊÞ6䚣hQ óS÷\4¨cÖ‘hè@ÝÕ»Ѽƒ£·4 ž}@ì|Ç« á_ ãüR4$ïRóã¥Rg¬tdþ¶Ûnó!a¿Ïudª  †c({Û0Ä%0ˆçqÌ4ƒÝÍhï…ÚfFÏZ4-/mñÍhó§£ À'>¬½½‡ÃAnn.‚  ( ½½½ô÷÷“——‡ÕjÅï÷ÇÑ4H$BVV‹…®®.ý†)--òòòðz½8²³³X,¦ß/G"DQÔûðx<ø|>‡è8RSSõ³i0$ FuŸ˜™™‰ÏçÃh4êG¼¼šN¡mùéµ÷Î>wý3Ó¶n„?@ÛÔ€àKø ­,f– ¼w õú2Ô®E½¾,ì'Çšp8ÌáÇÉÎÎ&33“žžúûû‰D"øý~rsséèè@Ó4òòòHIIADQ¤££ƒH$B^^YYY>|ŸÏGqq1GŽ!==ÔÔTðx:„Óéäøñãô÷÷3mÚ4’““u0ëêê((( ==·ÛÃá ''‡ &`0â£>"++‹+¯L˜ÿÝ»w ™2e GŽ!RRRBmm-iiiLœ8‘h4JMM ¥¥¥”——³oß>ü~?×]wƒ½{÷ÒÝÝÍõ×_Ãá`Ã35YÓ4„ÊÊJïæÍ›sΘ¦ih„cÈË…€€°r\U4v›˜„ÖÞƒPׂøn#4{Okh~ZE>êMå§Pî»%7e´ÕPUp»Ýdee‡Q—Ë…$Iøý~²³³illäŠ+® ‹ÑÓÓƒ,ˤ¥¥éå999„ÃaÚÛÛu­q»Ý¸\.ÊËˉÇã444PQQËå"‰ÐÝÝ @FFØívJJJ0 hšÆàà Ç'99™p8L8¦¨¨EQ8qâ6› ‹ÅBww7'N¤¸¸˜þþ~:::HIIÁétÒÒÒBQQEEEˆ¢H `hh·ÛM<§²²ƒÁÀþýûq¹\Ìœ9“@ ÀÁƒIMMeúôé˜L&DQ×TÏ›7Ï#Lž<ùÄ;ï¼Sx&PãæcÚ6ÃÆ}p{Ü:-3ÍbBØÝ {ÛZº ezÕ™ÅÈ ?‡:-ºýh.šÓvÖæ6mmmmôöö’‘‘Óé$++‹h4JKK N§“ââbTU%H™AÀn·c2™èééÁét’””„¢(ôôôàp$‚¬P(Dzz:@§Ó‰Ñh$  …°Z­X­Vl6½½½ttt››KJJ ñxâÎ;c2™ÈÏÏÇd2áõz ‡Ã8ÝÌ{½^ŒF#¥¥¥ø|>DQÔÍy8¦»»›ììl’““ñz½ú¤ $%%‘ÍÐФ¦¦êÇ*«ÕJzzúY&y<|ûí·,6lÛ¶m†Íf;7°gjêÑS/½ G=à ( •e¡M+@-φ¾¡`“sP§ä¢¥&ÓB çUUÕµÕd2éþm˜¯iv»ý´E8O”>ÖûH+xö•ÃmAÀjµb4ÏZÄáTÓ4'OžÄápP\\_äz>ÞÅ”_(@Ÿ¶ýòåË}555b±XÓc=6¹©©©hÖ¬Y6³Ù<µxšA€Ú‘õ¥‚{1õÆz†O#Ó‘ÏðÍðû˜Öiœ¹Ž¤ ÙDr\ºÐzãyf½P(Ä÷¾÷½þ½{÷nìííý‰0,œËåºÛét~×f³¥™L¦óþì|.Íø{—]jùxgÞËQþ÷.$IŠD"Á`ðéÁÁÁ­ÿbmg¦¬§IEND®B`‚pymvpa2-2.6.4/doc/source/_static/nitrc.jpg000066400000000000000000000051631323370031300204350ustar00rootroot00000000000000ÿØÿàJFIF––ÿÛC     ÿÛC   ÿÀ#x"ÿÄ ÿÄ< !"1AQaq2Ñ#BTb‘35CRUst“”¡ÔÿÄÿÄ.!1QAq‘"2a¡ÁÑáR±ðÿÚ ?ýHŸPK„ô¹o%ˆì¤­Çz$ fk¯µMÏtV¥Qv¾ÛfsÌ+¨ÔšzFúvR?Íq½Jû`ÖêP¶æ•G§KU5»‚µ•2 ƒ…EŽâðµèODgÓž“T)«µj6®ÙØŒG·šœ™+TÎè,D‹ˆqÀ“ÑÉ RÒ9/8É':Q÷ÔÛ°Ês8æh“ "T¥&¬$‘Ìuчaœ(Åâ$æ$-¤jy› nH´×Rí7SI”›ÄÓ ëÜ1mÀS#åƒ)ncðΚÚ?6mòõçmR7€Èç%Êw©ÕVZyχw£ ç­?e­¶[Iž'W%~Ôª”×qGð  GXÛªtªl¤Ñä<в•ÀuÂãhR@$#=[^!@úŒô:ئê)W G¹*žƒíIw¬®Å¼¼‰>ÇóNûM»6ÖöXÔû²Ôž'Rf#‹,tSn'Í+IèAÔµÉ-4â·P…¬á R€*ú{ë5vFÛé6õ»¿ ÑnO¨Â”à [LÅÅBåp@))8ò)#Ó_{KØìnVúí·*tÚs2¢VœD˜©§Yy ´¶œ¥*àô×G Ð}̪0 ™‰ÐñI¼KS¼{Åisø–‚œê2ØÊÇ!à}}µJm~ìÖ­Û¥­µÜå6ÅÖM&¸”ð‹^e?´ƒä—ÀûÍþ#PФ—¿N;YŽùÀ¢S c™ð²Þ9O·_m85)*:AÔT#¯´kA/ôZuÊœFŠBå°‚ HÈ>GÏË^>Øûôo÷“ùêÛ­™²·j¶ö­r[Ñk#mÓš2d•”†@$(z“üõìÿ± Ï3sU¶"NM:ï yK=ËáÅ´øº$dãë«vr¬©Gí†ñüª»ÅÈ úþ«R.§°‚¹l ,e%N¤rã¯]yMZÔ™‘ÔO@ÉÉÿ½díܶ¶h‹Z‘yEb=¡Ñy¸–Óî´‡D”ñÂ[ç.§\.zÏef-Ú“ˆ§}ÚâÁžÛ©_Ç‚¸ +8Á$tdà3%*G5ì™ó¬à`Fçõ[ÇËjZÔ”!#*RŽ3¤¤”ŸñX?òùë'5›“nû6Ù—ƒÒÜ[”£W޹.[LÅqÖ[ui9RHáÈg®:êó™6¬'ˆ±©òþˆþz ˜f˜€âÍæ  7VÒâ—åyMYŒ¼Ü†ÒãKK­¨e+AÈ?B4jµ;LÎÓɹ#Ó&¨Ûõ¢\ QäQOÚR¶ÐI>¤•`` èÒK J¡GJ:I"â)´DŠLz“”îëy¶^‡Z¡ÄÉ\W ñÀ ©æ–ÒJJøø±¨=™uÛ—¤jkôkê™s;HY\*‚¥"%b!#‰nC.a+Ê@Jùp*ÀƲ¤…5Ý ­¡nå¬íºÂÊ9£LŽ®!¾ž¨y•ލZOPGãÓU‡Ùòø¤S·t]7-2½U¼iÑéÑj,¶¶‰ Fv:}Ti½qJ¬1Ü~­·xñB²ˆc®2>zcÝÉÎÅÞ=ŸBd¸ÃÏœ@p¥ 1ÀPÎ_}9oÝŠM™L}”³-K¸) .kIåá äg>ÞùÕgY‘>}z×M Ê`çÓÓÄSñJ¥m´ç÷î ô$Æû5Š´•F<»ââžKC¦8á$yç婵bšŠ¥"t"†Ô$°ã82“É%=G·]fªþöîK•k½êtI ShÕ)pØ0("¡m°qÉÇÃà¥G’xå>ZRÍý~\{–™4ÛΓN ?gÇ®†€§£¶’£Þ, …0zû`c:µ%k‚£ §‡b:”•)I'‰ÚÖ÷§Ùæå¦ífØ@¤Öi¬Þ¶©~$‰HqÈ2V¦Üexa B‡ˆ Ž=´›â·ßÕ{wŸµ'æÕlîüîßt×¢Ú1dN¤Ò f.›FnP”\ŒÛÝêûÉ ©°®óŸº<óœ<ÙûÁîBߢSÝ£ÚõG(ïTç¾óB`qh”c„6”8R>ï%J)'šeN¸«¸Ô߄߅ ]‚óIÎV Mô"DN›O­X[?b]ÝFé®Þ5h3ë•ùhyQi]çÁÂm¶ÂÛ}爜 “’|´j7ÙÖEmwnìǯÕ«Op6Ñz(RCc¢PTx|À>yѤžQRÉW§õHâ0Ãçr0ž`š»±£4hµÑ5*QÑ£R¥Ñ5*TróÛ‹[qŠÍÏ@§×šŠ²ã¨GK¡µ‚S‘ÐãLô}ˆÛ»yNm•D‚\[N(± 䦖lœ4­!CØŒèÑ­fP 2œSèGv—NÒc¥'®özÛK–µ&«T²(“j2œï_ìD•<³æ¥ÿxŸR|ôåulÝz·Nn»iR*¨§¶ˆ™1 Ëcû4ôèáòùhѫέë_Y‰ðžñ^.mËjGrì6Ý]õN¬YtióÚ»<ø$qBI¨òï]Ùâ¤Si•:‹*5¸QÕ 1’z”·áõ yèÑ©[ÔÌHÊŠðésn[Sµ·öÖßC~%³BBŒú´—ÉXN>Ú4hÖI&æ—ZÔâŠÖdž&¿ÿÙpymvpa2-2.6.4/doc/source/_static/robots.txt000066400000000000000000000001431323370031300206560ustar00rootroot00000000000000# robots.txt for http://www.pymvpa.org User-agent: * Disallow: /files/pymvpa_exampledata.tar.bz2 pymvpa2-2.6.4/doc/source/_themes/000077500000000000000000000000001323370031300166055ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/_themes/pymvpa_offline/000077500000000000000000000000001323370031300216235ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/_themes/pymvpa_offline/indexsidebar.html000066400000000000000000000021761323370031300251600ustar00rootroot00000000000000

Quick links

Search mailing list archive

pymvpa2-2.6.4/doc/source/_themes/pymvpa_offline/layout.html000066400000000000000000000015541323370031300240330ustar00rootroot00000000000000{% extends "basic/layout.html" %} {% block extrahead %} {% endblock %} {% block rootrellink %}
  • PyMVPA Home
  • Sitemap »
  • {% endblock %} {%- block sidebarlogo %} {%- endblock sidebarlogo %} {% block relbar1 %} {{ super() }} {% endblock %} {% block sidebarsearch %} {{ super() }}

    NeuroDebian

    NITRC-listed

    {% endblock %} pymvpa2-2.6.4/doc/source/_themes/pymvpa_offline/static/000077500000000000000000000000001323370031300231125ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/_themes/pymvpa_offline/static/pymvpa.css_t000066400000000000000000000133151323370031300254660ustar00rootroot00000000000000/** * Sphinx stylesheet -- default theme * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ #header { height: 130px; margin: 0px; padding: 0 15px 5px 0; background-color: #fff; background-image: url(pymvpa_logo.jpg); background-repeat: no-repeat; border-bottom: 5px solid #822; } #hdrsubtitle { color: #444; font-weight: bold; font-size: 1.5em; text-align: right; position: relative; top: 100px; } body { font-family: {{ theme_bodyfont }}; font-size: 100%; background-color: {{ theme_footerbgcolor }}; color: #000; margin: 0; padding: 0; } div.document { background-color: {{ theme_sidebarbgcolor }}; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 230px; } div.body { background-color: {{ theme_bgcolor }}; color: {{ theme_textcolor }}; padding: 0 20px 30px 20px; } {%- if theme_rightsidebar|tobool %} div.bodywrapper { margin: 0 230px 0 0; } {%- endif %} div.footer { color: {{ theme_footertextcolor }}; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } div.footer a { color: {{ theme_footertextcolor }}; text-decoration: underline; } div.related { background-color: {{ theme_relbarbgcolor }}; line-height: 30px; color: {{ theme_relbartextcolor }}; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; } div.related a { color: {{ theme_relbarlinkcolor }}; } div.related a:hover { text-decoration: none; border-top: 1px solid {{ theme_relbarlinkcolor }}; border-bottom: 1px solid {{ theme_relbarlinkcolor }}; } div.sphinxsidebar { {%- if theme_stickysidebar|tobool %} top: 30px; margin: 0; position: fixed; overflow: auto; height: 100%; {%- endif %} {%- if theme_rightsidebar|tobool %} float: right; {%- if theme_stickysidebar|tobool %} right: 0; {%- endif %} {%- endif %} } {%- if theme_stickysidebar|tobool %} /* this is nice, but it it leads to hidden headings when jumping to an anchor */ /* div.related { position: fixed; } div.documentwrapper { margin-top: 30px; } */ {%- endif %} div.sphinxsidebar form { margin-bottom: 1em; } div.sphinxsidebar h3 { font-family: {{ theme_headfont }}; color: {{ theme_sidebartextcolor }}; font-size: 1.4em; font-weight: normal; margin: 0; padding: 0; border-bottom: 1px dashed #ccc; } div.sphinxsidebar h3 a { color: {{ theme_sidebartextcolor }}; } div.sphinxsidebar h4 { border-bottom: 1px dashed #ccc; font-family: {{ theme_headfont }}; color: {{ theme_sidebartextcolor }}; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { color: {{ theme_sidebartextcolor }}; } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 10px 0 10px 2px; padding: 0; color: {{ theme_sidebartextcolor }}; } div.sphinxsidebar li { padding-top: 0.2em; } div.sphinxsidebar a { color: {{ theme_sidebarlinkcolor }}; display: block; padding-left: 3px; padding-right: 3px; border: 1px solid {{ theme_sidebarbgcolor }}; } div.sphinxsidebar a:hover { text-decoration: none; background-color: #fafafa; border-top: 1px solid {{ theme_sidebarlinkcolor }}; border-bottom: 1px solid {{ theme_sidebarlinkcolor }}; } div.sphinxsidebar input { border: 1px solid {{ theme_sidebarlinkcolor }}; font-family: sans-serif; font-size: 1em; } p.searchtip { display: none; } /* -- body styles ----------------------------------------------------------- */ a { color: {{ theme_linkcolor }}; text-decoration: none; } a:hover { text-decoration: underline; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: {{ theme_headfont }}; background-color: {{ theme_headbgcolor }}; font-weight: normal; color: {{ theme_headtextcolor }}; border-bottom: 1px dashed #ccc; margin: 20px -5px 10px -5px; padding: 0 5px 0 5px; } div.body h1 { margin-top: 10px; font-size: 200%; } div.body h2 { font-size: 160%; } div.body h3 { font-size: 140%; } div.body h4 { font-size: 120%; } div.body h5 { font-size: 110%; } div.body h6 { font-size: 100%; } a.headerlink { color: {{ theme_headlinkcolor }}; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } a.headerlink:hover { background-color: {{ theme_headlinkcolor }}; color: white; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.admonition p.admonition-title + p { display: inline; } div.note { background-color: #eee; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } div.seealso { background-color: #fff8e4; border-top: 1px solid #fcbd00; border-bottom: 1px solid #fcbd00; } div.admonition-exercise { background-color: #dcf1ff; border-top: 1px solid #459cff; border-bottom: 1px solid #459cff; } div.topic { background-color: #eee; } div.warning { background-color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre { padding: 10px; background-color: {{ theme_codebgcolor }}; color: {{ theme_codetextcolor }}; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } tt { background-color: #ecf0f3; padding: 0 1px 0 1px; font-size: 0.95em; } tt.xref { font-size: 16px; } pymvpa2-2.6.4/doc/source/_themes/pymvpa_offline/theme.conf000066400000000000000000000011161323370031300235730ustar00rootroot00000000000000[theme] inherit = basic stylesheet = pymvpa.css pygments_style = sphinx [options] rightsidebar = true stickysidebar = false footerbgcolor = #fff footertextcolor = #000 sidebarbgcolor = #fff sidebartextcolor = #444 sidebarlinkcolor = #000 relbarbgcolor = #fafafa relbartextcolor = #555 relbarlinkcolor = #000 bgcolor = #ffffff textcolor = #000000 headbgcolor = #fff headtextcolor = #444 headlinkcolor = #993e4c linkcolor = #993e4c codebgcolor = #eeffcc codetextcolor = #333333 bodyfont = Arial, sans-serif headfont = Arial, sans-serif pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/000077500000000000000000000000001323370031300214655ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/indexsidebar.html000066400000000000000000000022661323370031300250220ustar00rootroot00000000000000

    Quick links

    Search mailing list archive

    pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/layout.html000066400000000000000000000026751323370031300237020ustar00rootroot00000000000000{% extends "basic/layout.html" %} {% block extrahead %} {% endblock %} {% block rootrellink %}
  • PyMVPA Home
  • Sitemap »
  • {% endblock %} {%- block sidebarlogo %} {%- endblock sidebarlogo %} {% block relbar1 %} {{ super() }} {% endblock %} {% block sidebarsearch %} {{ super() }}

    NeuroDebian

    NITRC-listed

    {% endblock %} {% block footer %} {{ super() }} {% endblock %} pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/page.html000066400000000000000000000004671323370031300232760ustar00rootroot00000000000000{% extends "basic/page.html" %} {% block body %} {{ super() }}
    {% endblock %} pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/static/000077500000000000000000000000001323370031300227545ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/static/pymvpa.css_t000066400000000000000000000137101323370031300253270ustar00rootroot00000000000000/** * Sphinx stylesheet -- default theme * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ #header { height: 130px; margin: 0px; padding: 0 15px 5px 0; background-color: #fff; background-image: url(pymvpa_logo.jpg); background-repeat: no-repeat; border-bottom: 5px solid #822; } #hdrsubtitle { color: #444; font-weight: bold; font-size: 1.5em; text-align: right; position: relative; top: 10px; } #header div.logos { display: block; margin-top: 15px; float: right; } body { font-family: {{ theme_bodyfont }}; font-size: 100%; background-color: {{ theme_footerbgcolor }}; color: #000; margin: 0; padding: 0; } div.document { background-color: {{ theme_sidebarbgcolor }}; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 230px; } div.body { background-color: {{ theme_bgcolor }}; color: {{ theme_textcolor }}; padding: 0 20px 30px 20px; } {%- if theme_rightsidebar|tobool %} div.bodywrapper { margin: 0 230px 0 0; } {%- endif %} div.footer { color: {{ theme_footertextcolor }}; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } div.footer a { color: {{ theme_footertextcolor }}; text-decoration: underline; } div.related { background-color: {{ theme_relbarbgcolor }}; line-height: 30px; color: {{ theme_relbartextcolor }}; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; } div.related a { color: {{ theme_relbarlinkcolor }}; } div.related a:hover { text-decoration: none; border-top: 1px solid {{ theme_relbarlinkcolor }}; border-bottom: 1px solid {{ theme_relbarlinkcolor }}; } div.sphinxsidebar { {%- if theme_stickysidebar|tobool %} top: 30px; margin: 0; position: fixed; overflow: auto; height: 100%; {%- endif %} {%- if theme_rightsidebar|tobool %} float: right; {%- if theme_stickysidebar|tobool %} right: 0; {%- endif %} {%- endif %} } {%- if theme_stickysidebar|tobool %} /* this is nice, but it it leads to hidden headings when jumping to an anchor */ /* div.related { position: fixed; } div.documentwrapper { margin-top: 30px; } */ {%- endif %} div.sphinxsidebar form { margin-bottom: 1em; } div.sphinxsidebar h3 { font-family: {{ theme_headfont }}; color: {{ theme_sidebartextcolor }}; font-size: 1.4em; font-weight: normal; margin: 0; padding: 0; border-bottom: 1px dashed #ccc; } div.sphinxsidebar h3 a { color: {{ theme_sidebartextcolor }}; } div.sphinxsidebar h4 { border-bottom: 1px dashed #ccc; font-family: {{ theme_headfont }}; color: {{ theme_sidebartextcolor }}; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { color: {{ theme_sidebartextcolor }}; } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 10px 0 10px 2px; padding: 0; color: {{ theme_sidebartextcolor }}; } div.sphinxsidebar li { padding-top: 0.2em; } div.sphinxsidebar a { color: {{ theme_sidebarlinkcolor }}; display: block; padding-left: 3px; padding-right: 3px; border: 1px solid {{ theme_sidebarbgcolor }}; } div.sphinxsidebar a:hover { text-decoration: none; background-color: #fafafa; border-top: 1px solid {{ theme_sidebarlinkcolor }}; border-bottom: 1px solid {{ theme_sidebarlinkcolor }}; } div.sphinxsidebar input { border: 1px solid {{ theme_sidebarlinkcolor }}; font-family: sans-serif; font-size: 1em; } p.searchtip { display: none; } /* -- body styles ----------------------------------------------------------- */ a { color: {{ theme_linkcolor }}; text-decoration: none; } a:hover { text-decoration: underline; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: {{ theme_headfont }}; background-color: {{ theme_headbgcolor }}; font-weight: normal; color: {{ theme_headtextcolor }}; border-bottom: 1px dashed #ccc; margin: 20px -5px 10px -5px; padding: 0 5px 0 5px; } div.body h1 { margin-top: 10px; font-size: 200%; } div.body h2 { font-size: 160%; } div.body h3 { font-size: 140%; } div.body h4 { font-size: 120%; } div.body h5 { font-size: 110%; } div.body h6 { font-size: 100%; } a.headerlink { color: {{ theme_headlinkcolor }}; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } a.headerlink:hover { background-color: {{ theme_headlinkcolor }}; color: white; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.admonition p.admonition-title + p { display: inline; } div.note { background-color: #eee; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } div.seealso { background-color: #fff8e4; border-top: 1px solid #fcbd00; border-bottom: 1px solid #fcbd00; } div.admonition-exercise { background-color: #dcf1ff; border-top: 1px solid #459cff; border-bottom: 1px solid #459cff; } div.topic { background-color: #eee; } div.warning { background-color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre { padding: 10px; background-color: {{ theme_codebgcolor }}; color: {{ theme_codetextcolor }}; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } tt { background-color: #ecf0f3; padding: 0 1px 0 1px; font-size: 0.95em; } tt.xref { font-size: 16px; } iframe.twitter-timeline { border-bottom: 1px dotted #aaa; margin-left: 1%; width: 99%; } div.tweet { border-bottom: 1px dotted #aaa; margin-left: 2em; } pymvpa2-2.6.4/doc/source/_themes/pymvpa_online/theme.conf000066400000000000000000000011161323370031300234350ustar00rootroot00000000000000[theme] inherit = basic stylesheet = pymvpa.css pygments_style = sphinx [options] rightsidebar = true stickysidebar = false footerbgcolor = #fff footertextcolor = #000 sidebarbgcolor = #fff sidebartextcolor = #444 sidebarlinkcolor = #000 relbarbgcolor = #fafafa relbartextcolor = #555 relbarlinkcolor = #000 bgcolor = #ffffff textcolor = #000000 headbgcolor = #fff headtextcolor = #444 headlinkcolor = #993e4c linkcolor = #993e4c codebgcolor = #eeffcc codetextcolor = #333333 bodyfont = Arial, sans-serif headfont = Arial, sans-serif pymvpa2-2.6.4/doc/source/changelog.rst000077700000000000000000000000001323370031300220752../../Changelogustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/classifiers.txt000066400000000000000000000641211323370031300202350ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_classifiers: .. index:: classifier *********** Classifiers *********** .. automodule:: mvpa2.clfs .. only:: html Related API documentation ========================= .. currentmodule:: mvpa .. autosummary:: :toctree: generated clfs.base clfs.meta clfs.blr clfs.enet clfs.glmnet clfs.gnb clfs.gpr clfs.knn clfs.lars clfs.plr clfs.ridge clfs.smlr clfs.svm clfs.sg clfs.libsvmc clfs.distance clfs.similarity clfs.stats clfs.transerror clfs.warehouse PyMVPA includes a number of ready-to-use classifiers, which are described in the following sections. All classifiers implement the same, very simple interface. Each classifier object takes all relevant parameters as arguments to its constructor. Once instantiated, the classifier object's :meth:`~mvpa2.clfs.base.Classifier.train` method can be called with some dataset. This trains the classifier using *all* samples in the respective dataset. The major task for a classifier is to make predictions. Predictions are made by calling the classifier's :meth:`~mvpa2.clfs.base.Classifier.predict` method with one or multiple data samples. :meth:`~mvpa2.clfs.base.Classifier.predict` operates on pure sample data and not datasets, as in some cases the true label for a sample might be totally unknown. This examples demonstrates the typical daily life of a classifier. >>> import numpy as np >>> from mvpa2.clfs.knn import kNN >>> from mvpa2.datasets import dataset_wizard >>> training = dataset_wizard(samples=np.array( ... np.arange(100),ndmin=2, dtype='float').T, ... targets=[0] * 50 + [1] * 50) >>> rand100 = np.random.rand(10)*100 >>> validation = dataset_wizard(samples=np.array( ... rand100, ndmin=2, dtype='float').T, ... targets=[ int(i>50) for i in rand100 ]) >>> clf = kNN(k=10) >>> clf.train(training) >>> np.mean(clf.predict(training.samples) == training.targets) 1.0 >>> np.mean(clf.predict(validation.samples) == validation.targets) 1.0 Two datasets with 100 and 10 samples each are generated. Both datasets only have one feature and the associated label is 0 if the feature value is below 50 or 1 otherwise. The larger dataset contains all integers in the interval (0,100) and is used to train the classifier. The smaller is used as a validation dataset, to check whether the classifier learned something that generalizes well across samples not included in the training dataset. In this case the validation dataset consists of 10 random floating point values in the interval (0,100). The classifier in this example is a :class:`~mvpa2.clfs.knn.kNN` (k-Nearest-Neighbour) classifier that makes use of the 10 nearest neighbours of a data sample to make its predictions (k=10). One can see that after the training the classifier performs optimally on the training dataset as well as on the validation data samples. The choice of the classifier in the above example is more or less arbitrary. Any classifier in PyMVPA could be used in place of kNN. This demonstrates another useful feature of PyMVPA's classifiers. Due to the high-level abstraction and the simple interface, almost all classifiers can be combined with most algorithms in PyMVPA. This makes it very easy to test different classifiers on some dataset (see Fig. 1). .. image:: pics/classifier_comparison_plot.png :align: center :alt: Classifier comparison A comparison of the behavior of different classifiers (k-Nearest-Neighbour, linear SVM, logistic regression, ridge regression and SVM with radial basis function kernel) on a simple classification problem. The code to generate these figure can be found in the `pylab_2d.py` example in the :ref:`example_pylab_2d` section. .. index:: ca Stateful objects ================ Before looking at the different classifiers in more detail, it is important to mention another feature common to all of them. While their interface is simple, classifiers are in no way limited to report only predictions. All classifiers implement an additional interface: Objects of any class that are derived from :class:`~mvpa2.base.state.ClassWithCollections` have attributes (we refer to such attributes as conditional attributes), which are conditionally computed and stored by PyMVPA. Such conditional storage and access is handy if a variable of interest might consume a lot of memory or needs intensive computation, and not needed in most (or in some) of the use cases. For instance, the :class:`~mvpa2.clfs.base.Classifier` class defines the `trained_targets` conditional attribute, which just stores the unique targets for which the classifier was trained. Since `trained_targets` stores meaningful information only for a trained classifier, attempt to access 'clf.ca.trained_targets' before training would result in an error, >>> from mvpa2.misc.exceptions import UnknownStateError >>> try: ... untrained_clf = kNN() ... targets = untrained_clf.ca.trained_targets ... except UnknownStateError: ... "Does not work" 'Does not work' since the classifier has not seen the data yet and, thus, does not know the targets. In other words, it is not yet in the state to know anything about the targets. Any conditional attribute can be enabled or disabled on per instance basis at any time of the execution (see :class:`~mvpa2.base.state.ClassWithCollections`). To continue the last example, each classifier, or more precisely every stateful object, can be asked to report existing state-related attributes: >>> list_with_verbose_explanations = clf.ca.listing 'clf.ca' is an instance of :class:`~mvpa2.base.state.ConditionalAttributesCollection` class which is a container for all conditional attributes of the given class. To access (query the value or set the value if state is enabled), and enable or disable you should operate on `ca` collection (which is different from version prior '0.5.0' where you could query values directly from the object, i.e. `clf` in this example) >>> clf.ca.trained_targets array([0, 1]) >>> print clf.ca ca{distances training_time*+ predicting_time*+ training_stats...} >>> clf.ca.enable('estimates') >>> print clf.ca ca{distances training_time*+ predicting_time*+ training_stats...} >>> clf.ca.disable('estimates') A string representation of the state collection mentioned above lists all conditional attributes present accompanied with 2 markers: '+' for an enabled conditional attribute, and '*' for a variable that stores some value (but might have been disabled already and, therefore, would have no '+' and attempts to reassign it would result in no action). .. TODO: Refactor By default all classifiers provide conditional attributes `estimates` and `predictions`. The latter is simply the set of predictions that was returned by the last call to the objects :meth:`~mvpa2.clfs.base.Classifier.predict` method. The former is heavily classifier-specific. By convention the `estimates` key provides access to the raw values that a classifier prediction is based on (e.g. votes or probabilities per each label). Depending on the classifier, this information might required significant resources when stored. Therefore all ca can be disabled or enabled (`ca.disable()`, `ca.enable()`) and their current status can be queried like this: >>> clf.ca.is_active('predictions') True >>> clf.ca.is_active('estimates') False States can be enabled or disabled during stateful object construction, if `enable_ca` or `disable_ca` (or both) arguments, which store the list of desired conditional attributes names, passed to the object constructor. Keyword 'all' can be used to select all known ca for that stateful object. .. index:: error, classifier error, transfer error .. _transfer_error: Error Calculation ================= The :class:`~mvpa2.clfs.transerror.TransferError` class provides a convenient way to determine the transfer error of a trained classifier on some validation dataset, i.e. the accuracy of the classifier's predictions on a novel, independent dataset. A :class:`~mvpa2.clfs.transerror.TransferError` object is instantiated by passing a classifier object to the constructor. Optionally a custom error function can be specified (see `errorfx` argument). To compute the transfer error simply call the object with a validation dataset. The computed error value is returned. :class:`~mvpa2.clfs.transerror.TransferError` also supports a conditional attribute `stats` that contains the full confusion matrix of the predictions made on the validation dataset. The confusion matrix is disabled by default. If the :class:`~mvpa2.clfs.transerror.TransferError` object is called with an optional training dataset, the contained classifier is first training using this dataset before predictions on the validation dataset are made. >>> from mvpa2.clfs.transerror import TransferError >>> clf = kNN(k=10) >>> terr = TransferError(clf) >>> terr(validation, training ) 0.0 .. index:: cross-validation .. _cross-validation: Cross-validated Transfer Error ------------------------------ Often one is not only interested in a single transfer error on one validation or test dataset, but on a cross-validated estimate of the transfer error. A popular method is the so-called leave-one-out cross-validation. The :class:`~mvpa2.algorithms.cvtranserror.CrossValidatedTransferError` class provides a simple way to compute such measure. It utilizes a :class:`~mvpa2.clfs.transerror.TransferError` object and a :class:`~mvpa2.datasets.splitters.Splitter`. When called with a :class:`~mvpa2.datasets.base.Dataset` the splitter generates splits of the Dataset and the transfer error for all splits is computed by training on one of the splitted datasets and making predictions on the other. By default the mean of transfer errors is returned (but the actual `combiner` function is customizable). The following example shows the minimal code for a leave-one-out cross-validation reusing the transfer error object from the previous example and some :class:`~mvpa2.datasets.base.Dataset` `data`. >>> # create some dataset >>> from mvpa2.misc.data_generators import normal_feature_dataset >>> data = normal_feature_dataset(perlabel=50, nlabels=2, ... nfeatures=20, nonbogus_features=[3, 7], ... snr=3.0) >>> # now cross-validation >>> from mvpa2.algorithms.cvtranserror import CrossValidatedTransferError >>> from mvpa2.datasets.splitters import NFoldSplitter >>> cvterr = CrossValidatedTransferError(terr, ... NFoldSplitter(cvtype=1), ... enable_ca=['stats']) >>> error = cvterr(data) Error Reporting =============== PyMVPA is equipped with easy ways to have a glance overview over the generalization performance of a cross-validated classifier. Such summary is provided by instances of a :class:`~mvpa2.clfs.transerror.ConfusionMatrix` class, and is accompanied by various performance metrics. For example, the 8-fold cross-validation of the dataset with 8 targets with the SMLR classifier produced the following confusion matrix:: >>> # Simple 'print cvterr.stats' provides the same output >>> # without the description of abbreviations >>> print cvterr.stats.as_string(description=True) \ ... # doctest: +SKIP --------. 3kHz 7kHz 12kHz 20kHz 30kHz song1 song2 song3 song4 song5 predict.\targets 38 39 40 41 42 43 44 45 46 47 `------ ---- ----- ----- ----- ----- ----- ----- ----- ----- ----- P' N' FP FN PPV NPV TPR SPC FDR MCC 3kHz / 38 84 42 27 4 4 2 1 0 15 19 198 1351 114 90 0.42 0.93 0.48 0.92 0.58 0.36 7kHz / 39 43 94 16 0 1 1 1 2 1 24 183 1331 89 80 0.51 0.94 0.54 0.93 0.49 0.43 12kHz / 40 21 16 103 5 2 2 0 0 6 13 168 1312 65 70 0.61 0.95 0.6 0.95 0.39 0.51 20kHz / 41 1 2 13 158 1 0 0 1 3 1 180 1202 22 15 0.88 0.99 0.91 0.98 0.12 0.77 30kHz / 42 3 0 2 3 162 0 0 0 0 0 170 1194 8 11 0.95 0.99 0.94 0.99 0.05 0.82 song1 / 43 3 1 1 0 1 160 0 0 2 5 173 1199 13 14 0.92 0.99 0.92 0.99 0.08 0.8 song2 / 44 1 1 0 0 0 0 171 0 0 0 173 1176 2 2 0.99 1 0.99 1 0.01 0.86 song3 / 45 1 1 1 0 0 0 0 170 2 0 175 1179 5 4 0.97 1 0.98 1 0.03 0.84 song4 / 46 7 3 3 2 2 2 0 0 139 7 165 1240 26 34 0.84 0.97 0.8 0.98 0.16 0.71 song5 / 47 10 14 7 1 0 7 0 1 5 104 149 1310 45 69 0.7 0.95 0.6 0.97 0.3 0.55 Per target: ---- ----- ----- ----- ----- ----- ----- ----- ----- ----- P 174 174 173 173 173 174 173 174 173 173 N 1560 1560 1561 1561 1561 1560 1561 1560 1561 1561 TP 84 94 103 158 162 160 171 170 139 104 TN 1261 1251 1242 1187 1183 1185 1174 1175 1206 1241 Summary\Means: ---- ----- ----- ----- ----- ----- ----- ----- ----- ----- 173 1249 38 39 0.78 0.97 0.78 0.97 0.22 0.66 ACC 0.78 ACC% 77.57 # of sets 8 Statistics computed in 1-vs-rest fashion per each target. Abbreviations (for details see http://en.wikipedia.org/wiki/ROC_curve): TP : true positive (AKA hit) TN : true negative (AKA correct rejection) FP : false positive (AKA false alarm, Type I error) FN : false negative (AKA miss, Type II error) TPR: true positive rate (AKA hit rate, recall, sensitivity) TPR = TP / P = TP / (TP + FN) FPR: false positive rate (AKA false alarm rate, fall-out) FPR = FP / N = FP / (FP + TN) ACC: accuracy ACC = (TP + TN) / (P + N) SPC: specificity SPC = TN / (FP + TN) = 1 - FPR PPV: positive predictive value (AKA precision) PPV = TP / (TP + FP) NPV: negative predictive value NPV = TN / (TN + FN) FDR: false discovery rate FDR = FP / (FP + TP) MCC: Matthews Correlation Coefficient MCC = (TP*TN - FP*FN)/sqrt(P N P' N') # of sets: number of target/prediction sets which were provided In addition to the abusively informative textual representation, there is an alternative graphical representation of the confusion matrix via the :meth:`~mvpa2.clfs.transerror.ConfusionMatrix.plot` method of a :class:`~mvpa2.clfs.transerror.ConfusionMatrix`:: >>> import pylab as pl >>> cvterr.stats.plot() \ ... # doctest: +SKIP >>> pl.show() \ ... # doctest: +SKIP .. image:: pics/confusion_matrix.* :align: center :alt: Classification confusion matrix Basic Supervised Learning Methods ================================= PyMVPA provides a number of learning methods (i.e. classifiers or regression algorithms) that can be plug into the various algorithms that are also part of the framework. Most importantly they all can be combined or enhanced with :ref:`metaclassifiers`. .. index:: Gaussian process regression, GPR Gaussian Process Regression --------------------------- :class:`~mvpa2.clfs.gpr.GPR` (`Wikipedia entry about Gaussian process regression`_). .. _Wikipedia entry about Gaussian process regression: http://en.wikipedia.org/wiki/Gaussian_process_regression .. index:: k-nearest-neighbour, kNN k-Nearest-Neighbour ------------------- The :class:`~mvpa2.clfs.knn.kNN` classifier makes predictions based on the targets of nearby samples. It currently uses Euclidean distance to determine the nearest neighbours, but future enhancements may include support for other kernels. .. index:: least angle regression, LARS Least Angle Regression ---------------------- :class:`~mvpa2.clfs.lars.LARS` :ref:`Efron et al. (2004) ` .. index:: logistic regression, penalized logistic regression Penalized Logistic Regression ----------------------------- The penalized logistic regression (:class:`~mvpa2.clfs.plr.PLR`) is similar to the ridge in that it has a penalty term, however, it is trained to predict a binary outcome by means of the logistic function (`Wikipedia entry about logistic regression`_). .. _Wikipedia entry about logistic regression: http://en.wikipedia.org/wiki/Logistic_regression .. index:: ridge regression Ridge Regression ---------------- Ridge regression (aka Tikhonov regularization) is a variant of a linear regression (`Wikipedia entry about ridge regression`_). The ridge regression classifier (:class:`~mvpa2.clfs.ridge.RidgeReg`) performs a simple linear regression with a penalty parameter to help avoid over-fitting. The regression inserts an intercept term so that you do not have to center your data. .. _Wikipedia entry about ridge regression: http://en.wikipedia.org/wiki/Ridge_regression .. index:: sparse multinomial logistic regression, SMLR Sparse Multinomial Logistic Regression -------------------------------------- Sparse Multinomial Logistic Regression (:class:`~mvpa2.clfs.smlr.SMLR`; :ref:`Krishnapuram et al., 2005 `) is a fast multi-class classifier that can easily deal with high-dimensional problems (`research paper about SMLR`_). PyMVPA includes two implementations: one in pure Python and a faster one that makes use of a C extension for the performance critical pieces of the code. .. _research paper about SMLR: http://www.cs.duke.edu/~amink/publications/manuscripts/hartemink05.pami.pdf .. index:: support vector machine, SVM Support Vector Machines ----------------------- Support vector machine (:ref:`Vapnik, 1995 `) classifiers (and regressions) are popular since they can deal with very high dimensional problems (`Wikipedia entry about SVM`_), while maintaining reasonable generalization performance. The support vector machine classes provide a family of classifiers by wrapping LIBSVM_ and Shogun_ libraries, with corresponding base classes :class:`~mvpa2.clfs.svm.libsvm.SVM` and :class:`~mvpa2.clfs.svm.sg.SVM` accordingly. By default SVM class is bound to LIBSVM's implementation if such is available (shogun otherwise). While any SVM class provides a complete interface, the others child classes make it easy to run some subset of standard classifiers, such as linear SVM, with a default set of parameters (see :class:`~mvpa2.clfs.svm.LinearCSVMC`, :class:`~mvpa2.clfs.svm.LinearNuSVMC`, :class:`~mvpa2.clfs.svm.RbfNuSVMC` and :class:`~mvpa2.clfs.svm.RbfCSVMC`). .. _LIBSVM: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ .. _Shogun: http://www.shogun-toolbox.org .. _Wikipedia entry about SVM: http://en.wikipedia.org/wiki/Support_Vector_Machine .. _metaclassifiers: Meta-Classifiers ================ *This section has been contributed by James M. Hughes.* A meta-classifier is essentially a blanket term used to describe all classes that appear functionally equivalent to a regular :class:`~mvpa2.clfs.base.Classifier`, but which in reality provide some extra amount of functionality on top of a normal classifier. Furthermore, they generally do not implement a :class:`~mvpa2.clfs.base.Classifier` *per se*, but rather take a :class:`~mvpa2.clfs.base.Classifier` as input. The methods then typically called on a classifier (e.g., `train` or `predict`) can be called on the meta-classifier, but will call the input classifier's routines, before or after some other function that the meta-classifier provides. Examples of Meta-Classifiers ---------------------------- At present, there are two primary meta-classifiers implemented in the PyMVPA package, beneath which there are several specific options: :class:`~mvpa2.clfs.meta.BoostedClassifier` typically uses multiple classifiers internally :class:`~mvpa2.clfs.meta.ProxyClassifier` typically performs some action on the data/targets before classification is performed Within these more general categories, specific classifiers are implemented. For example, there are several :class:`~mvpa2.clfs.meta.BoostedClassifier` subclasses: :class:`~mvpa2.clfs.meta.CombinedClassifier` combines predictions using a :class:`~mvpa2.clfs.meta.PredictionsCombiner` functor :class:`~mvpa2.clfs.meta.MulticlassClassifier` performs multi-class classification by means of a list of :class:`~mvpa2.clfs.meta.BinaryClassifier` instances. Typical use-case is to wrap a binary classifier to give it ability to operate on multiple classes via voting over classifiers for all possible pairs of the categories :class:`~mvpa2.clfs.meta.SplitClassifier` combines a :class:`~mvpa2.clfs.base.Classifier` and an arbitrary :class:`~mvpa2.datasets.splitters.Splitter` Furthermore, there are also several :class:`~mvpa2.clfs.meta.ProxyClassifier` subclasses: :class:`~mvpa2.clfs.meta.BinaryClassifier` maps a set of targets into two categories (+1 and -1) :class:`~mvpa2.clfs.meta.MappedClassifier` uses a mapper on input data prior to training/testing :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` performs some kind of :class:`~mvpa2.featsel.base.FeatureSelection` prior to training/testing Implementation Examples ----------------------- Classifiers such as the :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` are particularly useful because they simplify the process of selecting features and then using only that subset of features to classify novel exemplars (the `predict` stage). They become even more powerful when combined with :class:`~mvpa2.clfs.meta.SplitClassifier`, so that even the task of withholding certain data points to create statistically valid training and testing datasets is abstracted and wrapped up within a single object (and, ultimately, very few method calls). Consider the following code, which can be found in `mvpa2/clfs/warehouse.py`_: .. _mvpa2/clfs/warehouse.py: api/mvpa2.clfs.warehouse-pysrc.html >>> from mvpa2.clfs.meta import SplitClassifier, FeatureSelectionClassifier >>> from mvpa2.clfs.svm import LinearCSVMC >>> from mvpa2.clfs.transerror import ConfusionBasedError >>> from mvpa2.featsel.rfe import RFE >>> from mvpa2.featsel.helpers import FractionTailSelector >>> >>> rfesvm_split = SplitClassifier(LinearCSVMC()) >>> clf = \ ... FeatureSelectionClassifier( ... clf = LinearCSVMC(), ... # on features selected via RFE ... feature_selection = RFE( ... # based on sensitivity of a clf which does ... # splitting internally ... sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer(), ... transfer_error=ConfusionBasedError( ... rfesvm_split, ... confusion_state="stats"), ... # and whose internal error we use ... feature_selector=FractionTailSelector( ... 0.2, mode='discard', tail='lower'), ... # remove 20% of features at each step ... update_sensitivity=True), ... # update sensitivity at each step ... descr='LinSVM+RFE(splits_avg)' ) This analysis combines the :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` and the :class:`~mvpa2.clfs.meta.SplitClassifier` to perform internal splitting of the data and then perform FeatureSelection based on those splits. Such analyses can be easily created due to the straightforward way that classifier and meta-classifiers can be combined. Please refer to the relevant documentation sections for more information about the specifics of each meta-classifier. Retrainable Classifiers ======================= Some classifiers have ability to provide quick (i.e in terms of performance) re-training if they were previously trained, and only part of their specification got changed. For instance, for kernel-based classifier (e.g. GPR) it makes no sense to recompute kernel matrix, if only a classifier (not kernel) parameter (e.g. ``sigma_noise``) was changed. Another similar usecase: for :ref:`null-hypothesis statistical testing ` it might be needed to train classifier multiple times on a randomized set of targets. Only classifiers which have ``retrainable`` in their ``__tags__`` are capable of efficient retraining. To enable retraining, just provide ``retrainable=True`` to the constructor of the classifier. Internally retrainable classifiers will try to deduce what was changed in the specification of the classifier (e.g. training/testing datasets, parameters) and act accordingly. To reduce training/prediction time even more, classifier might directly be instructed with what aspects were changed. It must be previously trained / predicted, so later on :meth:`~mvpa2.clfs.base.Classifier.retrain` and :meth:`~mvpa2.clfs.base.Classifier.repredict` methods could be called. :meth:`~mvpa2.clfs.base.Classifier.repredict` can be called only with the same data, for which it was earlier predicted. See API doc for more information. Implementation of efficient retraining is not straightforward, thus it is strongly advised to * enable ``CHECK_RETRAIN`` debug target while developing the code for analysis. That might guard you against obvious misuses of retraining feature, as well as to spot bugs in the code * validate on a simple dataset that analysis code provides the same results if classifier was created retrainable or not Classifiers "Warehouse" ======================= To facilitate easy trial of different classifiers for any specific task, :class:`~mvpa2.clfs.warehouse.Warehouse` of classifiers clfs.warehouse.clfs was defined to create a sample collection of some commonly used parameterizations of the classifiers present in PyMVPA. Such collection can be queried by any set of known keywords/tags with tags prefixed with ``!`` being excluded:: >>> from mvpa2.clfs.warehouse import clfswh >>> tryme = clfswh['multiclass', '!svm'] to simply sweep through classifiers which are capable of multiclass classification and are not SVM based. pymvpa2-2.6.4/doc/source/cmdline.rst000066400000000000000000000100531323370031300173250ustar00rootroot00000000000000.. -*- mode: rst -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: .. _chap_cmdline: ********************** Command line interface ********************** Since version 2.3 PyMVPA includes a command line interface that allows for using PyMVPA in shell scripts and other non-Python environments. The scope of the command line interface is to expose the most commonly used building blocks of PyMVPA and connect them using a series of commands, where intermediate results are stored in HDF5 files. It is not intended to provide the same flexibility as the Python API, but aims to avoid boilerplate code for the most commonly used analysis and processing strategies. At present, the command line interface is still in its early development stages and future API changes cannot be ruled out, and further extensions are expected for future releases. When installed, PyMVPA offers a single :command:`pymvpa2` command through which all supported functionality is made available. Analogous to the Python interface, the command line interface is broken down into modules that individually serve a specific purpose, and can be combined into more complex analysis pipelines. Each module is exposed as a sub-command of :command:`pymvpa2`. All sub-commands are documented individually below. Both the primary command :command:`pymvpa2`, as well as all sub-commands support specific options that need to be given in the right location on the command line. The basic structure of any command line is this:: $ pymvpa2 [{{primary options}}] {{sub-command}} [{{secondary options}}] where ``[]`` indicates an optional segment, ``primary options`` are any options for the main :command:`pymvpa2` command, and ``secondary options`` are options of a sub-command. For example:: $ pymvpa2 --help will yield the documentation of the main command, but:: $ pymvpa2 mkds --help will yield the documentation of the ``mkds`` sub-command. Documentation of the main ``pymvpa2`` command ============================================= The documentation of the :command:`pymvpa2` command (accessible via ``--help``) includes a list of all available sub-commands on a particular system. .. toctree:: generated/cmd_pymvpa2 Sub-command documentation ========================= Create, modify and convert datasets ----------------------------------- .. toctree:: generated/cmd_mkds generated/cmd_mkevds generated/cmd_select generated/cmd_preproc generated/cmd_dump generated/cmd_describe Perform analyses ---------------- .. toctree:: generated/cmd_crossval generated/cmd_searchlight Auxilliary command ------------------ .. toctree:: generated/cmd_info generated/cmd_exec generated/cmd_atlaslabeler generated/cmd_ofmotionqc generated/cmd_ttest .. _cmdline_example_scripts: Example scripts =============== Here are a few executable example that come with the PyMVPA source code and demonstrate how to use PyMVPA's command line interface in actual scripts. .. toctree:: cmdline/start_easy cmdline/fmri_analyses cmdline/query_pymvpa For developers ============== Create a new PyMVPA command --------------------------- For now just a few notes: - No positional arguments, only options The majority of all commands (can) have very complex argument lists. Positional arguments are harder to identify, and only offer a flat list for structured input, without the possibility to specify nested list like input. - whenever possible use (and improve) common option definitions from mvpa2.cmdline.helpers - An option specifying an output location should be called -o/-output-... - Whenever a dataset needs to be loaded and there is no special reason to do anything fancy, ``arg2ds()`` should be used to load it. This will allow all relevant command to vstack input datasets on the fly, and significantly shapes the "standard" workflow, as data can be keep in fine grained structures avoiding the need to produce tailored datasets for any particular operation. - If a command requires multiple separate datasets multiple --input options should be used to specify them. pymvpa2-2.6.4/doc/source/conf.py000066400000000000000000000272711323370031300164710ustar00rootroot00000000000000# emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: # # PyMVPA documentation build configuration file, created by # sphinx-quickstart on Tue Dec 29 10:32:00 2009. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os, re import numpy as np import mvpa2 # To troubleshoot buildbot documentation build problem print "D: PyMVPA path %s" % mvpa2.__path__ print "D: PYTHONPATHs", '\n '.join([]+sys.path) # We need to know sphinx version for decisions below import sphinx from distutils.version import LooseVersion sphinx_version = LooseVersion(sphinx.__version__) from mvpa2.base import externals try: import matplotlib # Disable warning from matplotlib import warnings warnings.filterwarnings( 'ignore', 'This call to matplotlib.use() has no effect.*', UserWarning) matplotlib.use('svg') except: pass ################################################## # Config settings are at the bottom of the file! # ################################################## # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.append(os.path.abspath('..')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.ifconfig', 'sphinx.ext.inheritance_diagram', # we have a local copy of the extension, imported from NumPy 1.3 # this also includes the docscrape* extensions externals.exists('numpydoc') and 'numpydoc.numpydoc' or 'sphinxext.numpydoc', # finally our own little thingie to display tasks 'sphinxext.exercise_directive'] # Things change across sphinx versions try: import sphinx.ext.imgmath extensions.append('sphinx.ext.imgmath') except ImportError: import sphinx.ext.pngmath extensions.append('sphinx.ext.pngmath') # we have a local copy of autosummary from the unreleased sphinx # 1.0 -- reason: the 0.6 extension creates half-empty summaries extensions += [sphinx_version < '1.1.2' and 'sphinxext.autosummary' or 'sphinx.ext.autosummary'] # the following doesn't work with sphinx < 1.0, but will make a separate # sphinx-autogen run obsolete in the future autosummary_generate = True # Add any paths that contain templates here, relative to this directory. templates_path = ['../templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General substitutions. project = 'PyMVPA' copyright = '2006-2016, PyMVPA Authors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = mvpa2.__version__ # The full version, including alpha/beta/rc tags. release = mvpa2.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # what to put into API doc (just class doc, just init, or both autoclass_content = 'both' # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None #default_role = "autolink" # causes actual running of code and crashes # the problem with this setting is that is also confused things # `Dataset` might lead to a link to the h5py.Dataset` docs default_role = "obj" # seems to be sufficient to provide basic hyperlinking # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'pymvpa_offline' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. html_theme_path = ['_themes'] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = 'pics/pymvpa_logo.jpg' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_sidebars = {'index': 'indexsidebar.html'} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {'index': 'index.html'} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'PyMVPAdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). latex_paper_size = 'a4' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('pdfmanual', 'PyMVPA-Manual.tex', 'PyMVPA Manual', 'PyMVPA Authors', 'manual'), ('devguide', 'PyMVPA-DevGuide.tex', 'PyMVPA Developer Guidelines', 'PyMVPA Authors', 'manual'), # ('modref', 'PyMVPA-Reference.tex', 'PyMVPA Reference', # 'PyMVPA Authors', # 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = 'pics/pymvpa_logo.pdf' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. latex_preamble = r""" \usepackage{enumitem} \setdescription{style=nextline,font=\normalfont} % to get proper single quotes % source: http://stackoverflow.com/questions/5757630/sphinx-pdf-output-apostrophes-in-python-source-are-replaced-by-right-single-quo \usepackage{upquote} % more table of contents \setcounter{tocdepth}{3} % Have gray background for notes and exercises \definecolor{MyBluishGray}{rgb}{0.90,0.90,1.00} \makeatletter\newenvironment{graybox}{% \begin{lrbox}{\@tempboxa}\begin{minipage}{\columnwidth}}{\end{minipage}\end{lrbox}% \colorbox{MyBluishGray}{\usebox{\@tempboxa}} }\makeatother \makeatletter \renewenvironment{notice}[2]{ \begin{graybox} \bf\it \def\py@noticetype{#1} \par\strong{#2} \csname py@noticestart@#1\endcsname } { \csname py@noticeend@\py@noticetype\endcsname \end{graybox} } \makeatother """ # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True # ----------------------------------------------------------------------------- # Intersphinx configuration # ----------------------------------------------------------------------------- # to link to related projects intersphinx_mapping = {'http://docs.python.org/': None, 'http://nipy.sourceforge.net/nipype': None, 'http://nipy.sourceforge.net/nipy/stable': None, 'http://docs.h5py.org/en/2.3/': None, 'http://docs.scipy.org/doc/scipy/reference': None, 'http://docs.scipy.org/doc/numpy/': None, 'http://matplotlib.sourceforge.net/': None, } # check if we have a local copy intersphinx_dir = os.path.join(os.path.dirname(__file__), 'intersphinx') def get_intersphinx_file(url): site = url.split('/')[2] return os.path.join(intersphinx_dir, site + '_objects.inv') def test_get_intersphinx_file(): assert(get_intersphinx_file('http://docs.python.org/').endswith('docs.python.org_objects.inv')) def update_intersphinx_mapping(mapping): """Updates mapping to use local files if available """ for url in mapping: f = get_intersphinx_file(url) if os.path.exists(f): intersphinx_mapping[url] = f def fetch_intersphinx_objects(mapping): import urllib if not os.path.exists(intersphinx_dir): os.makedirs(intersphinx_dir) for url in mapping: objects_url = '%s/objects.inv' % url try: f = get_intersphinx_file(url) urllib.urlretrieve(objects_url, f) print("D: fetched %s" % f) except Exception, e: print("D: failed to retrieve from %s: %s" % (objects_url, e)) if __name__ == '__main__': if len(sys.argv) > 1: if sys.argv[1] == 'cache_intersphinx': fetch_intersphinx_objects(intersphinx_mapping) if os.path.exists(intersphinx_dir): update_intersphinx_mapping(intersphinx_mapping) print("D: interersphinx_mapping %s " % (str(intersphinx_mapping))) pymvpa2-2.6.4/doc/source/contributors.txt000066400000000000000000000100671323370031300204630ustar00rootroot00000000000000.. -*- mode: rst -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: Authors and Contributors ======================== The PyMVPA developers team currently consists of: * `Michael Hanke`_, University of Magdeburg, Germany * `Yaroslav O. Halchenko`_, Dartmouth College, USA * `Nikolaas N. Oosterhof`_, University of Trento, Italy We are very grateful to the following people, who have contributed valuable advice, code or documentation to PyMVPA: * Florian Baumgartner, University of Magdeburg, Germany * Sven Buchholz, University of Magdeburg, Germany * Andrew C. Connolly, Dartmouth College, USA * Michael W. Cole, Washington University in St. Louis, USA * Ceyhun Çakar * Reka Daniel, Princeton University, USA * `Greg Detre`_, Princeton University, USA * Matthias Ekman, Donders Institute, Netherlands * `Ingo Fründ`_, TU Berlin, Germany * Christoph Gohlke, University of California, Irvine, USA * `Scott Gorlin`_, MIT, USA * Satrajit Ghosh, MIT, USA * `Jyothi Swaroop Guntupalli`_, Dartmouth College, USA * `Valentin Haenel`_, TU Berlin, Germany * `Stephen José Hanson`_, Rutgers University, USA * `James V. Haxby`_, Dartmouth College, USA * `James M. Hughes`_, Dartmouth College, USA * `James Kyle`_, UCLA, USA * `Emanuele Olivetti`_, Fondazione Bruno Kessler, Italy * `Russell Poldrack`_, University of Texas, USA * `Stefan Pollmann`_, University of Magdeburg, Germany * Geethapriya Raghavan, University of Texas Austin, USA * `Rajeev Raizada`_, Dartmouth College, USA * `Per B. Sederberg`_, Princeton University, USA * `Tiziano Zito`_, BCCN, Germany .. _Greg Detre: http://www.princeton.edu/~gdetre .. _Ingo Fründ: http://www.cognition.tu-berlin.de/menue/members/ingo_fruend .. _Scott Gorlin: http://www.scottgorlin.com .. _Jyothi Swaroop Guntupalli: http://www.dartmouth.edu/~swaroop/ .. _Valentin Haenel: http://www.cognition.tu-berlin.de/menue/members/valentin_haenel .. _Yaroslav O. Halchenko: http://www.onerussian.com .. _Michael Hanke: http://www.psychoinformatics.de .. _Stephen José Hanson: http://psychology.rutgers.edu/~jose .. _James V. Haxby: http://dbic.dartmouth.edu/haxby .. _James M. Hughes: http://www.cs.dartmouth.edu/~hughes/index.html .. _James Kyle: http://www.ccn.ucla.edu/users/jkyle .. _Emanuele Olivetti: http://sra.fbk.eu/people/olivetti/ .. _Nikolaas N. Oosterhof: http://www5.unitn.it/People/it/Web/Persona/PER0120101 .. _Russell Poldrack: http://www.poldracklab.org .. _Stefan Pollmann: http://apsy.gse.uni-magdeburg.de/pollmann .. _Rajeev Raizada: http://www.dartmouth.edu/~raj .. _Per B. Sederberg: http://www.princeton.edu/~persed/ .. _Tiziano Zito: http://itb.biologie.hu-berlin.de/~zito Acknowledgements ================ We are greatful to the developers and contributers of NumPy_, SciPy_ and IPython_ for providing an excellent Python-based computing environment. Additionally, as PyMVPA makes use of a lot of external software packages (e.g. classifier implementations), we want to acknowledge the authors of the respective tools and libraries (e.g. LIBSVM_, MDP_, scikit-learn_, Shogun_) and thank them for developing their packages as free and open source software. Finally, we would like to express our acknowledgements to the `Debian project`_ for providing us with hosting facilities for mailing lists and source code repositories. But most of all for developing the *universal operating system*. .. Please add some notes when you think that you should give credits to someone that enables or motivates you to work on PyMVPA ;-) .. include:: link_names.txt Grant support ------------- PyMVPA development was supported, in part, by the following research grants. This list includes grants funding development of specific algorithm implementations in PyMVPA, as well as grants supporting individuals to work on PyMVPA: German Federal Ministry of Education and Research * BMBF 01GQ11112 German federal state of Saxony-Anhalt * Project: Center for Behavioral Brain Sciences German Academic Exchange Service * PPP-USA D/05/504/7 McDonnel Foundation US National Institutes of Mental Health * 5R01MH075706 * F32MH085433-01A1 US National Science Foundation * NSF 1129764 pymvpa2-2.6.4/doc/source/courses.rst000066400000000000000000000101611323370031300173750ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Courses .. _chap_courses: ************** PyMVPA Courses ************** :ref:`chap_tutorial` provides a collection of materials which could either be used for learning PyMVPA independently, or for teaching PyMVPA in workshops. This page provides a collection of programs, slides, and tutorials used in the past PyMVPA courses. Justus-Liebig-Universitat, Giessen Germany, September 19-20, 2014 ----------------------------------------------------------------- Day 1 - `Administrative remarks `__ - Lecture â€`A very short introduction to multivariate pattern analysis (MVPA) for neuroscience `__†- Quiz: â€`Python foundations `__†- Hands-on “:ref:`Data representation in PyMVPA `†- Hands-on “:ref:`PyMVPA building blocks ` and :ref:`the command line interface `†- Lecture â€`Basic MVPA strategies `__†- Hands-on “:ref:`Classification and cross-validation `“ - Hands-on “:ref:`Meta-classifiers ` and :ref:`Searchlights `“ Day 2 - Lecture “`Advanced methods, other data modalities and current developments `_†- Hands-on “:ref:`Searchlights (revamped) ` and :ref:`RSA `†- Hands-on “:ref:`Feature extraction and preprocessing `†- Lecture “`PyMVPA and the larger scientific software eco-system `__†- Hands-on “:ref:`Group analyses `†- Hands-on “:ref:`Statistical evaluation ` and Q&A†Hanse-Wissenschaftskolleg, Germany, March 6-7, 2014 --------------------------------------------------- Day 1 - `Administrative remarks `__ - Lecture â€`A very short introduction to multivariate pattern analysis (MVPA) for neuroscience `__†- Quiz: â€`Python foundations `__†- Hands-on “:ref:`Data representation in PyMVPA `†- Hands-on “:ref:`PyMVPA building blocks ` and :ref:`the command line interface `†- Lecture â€`Basic MVPA strategies `__†- Hands-on “:ref:`Classification and cross-validation `“ - Hands-on “:ref:`Searchlights `“ Day 2 - Lecture “`PyMVPA and the larger scientific software eco-system `__†- Hands-on “:ref:`Feature extraction and preprocessing `†- Hands-on “:ref:`Connecting building blocks into analysis workflows `†- Lecture “`Advanced methods, other data modalities and current developments `_†- Hands-on “:ref:`Group analyses `†- Hands-on “:ref:`Statistical evaluation `†University of Magdeburg, Germany, 2012 -------------------------------------- Dartmouth College, USA, 2010 ---------------------------- pymvpa2-2.6.4/doc/source/datadb.rst000066400000000000000000000032521323370031300171340ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Dataset Database .. _chap_datadb: **************** Dataset Database **************** Provided collection of datasets is not aiming to replace other data repositories available online. Rather it is a selection of datasets which was repeatedly analyzed by PyMVPA team and found to be useful for demonstration of concrete analysis methodologies especially in the context of neural data analysis. .. toctree:: :maxdepth: 1 datadb/tutorial_data datadb/face_inversion_demo datadb/haxby2001 datadb/mnist datadb/hyperalignment_tutorial_data ========================== External Data Repositories ========================== Repositories containing generic datasets in the realm of :term:`Machine Learning`: * `UC Irvine Machine Learning Repository`_ Neural data repositories: * `OpenFMRI`_ * `NITRC Image Repository`_ * `fMRI Data Center`_ * `1000 Functional Connectomes`_ * `Test-Retest Resting State Data`_ (Shehzad, Kelly et al. (2009)) .. _OpenfMRI: https://openfmri.org/ .. _NITRC Image Repository: http://www.nitrc.org/ir/ .. _UC Irvine Machine Learning Repository: http://archive.ics.uci.edu/ml/ .. _fMRI Data Center: http://www.fmridc.org .. _1000 Functional Connectomes: http://www.nitrc.org/projects/fcon_1000/ .. _Test-Retest Resting State Data: http://www.nitrc.org/frs/?group_id=274 pymvpa2-2.6.4/doc/source/datadb/000077500000000000000000000000001323370031300164005ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/datadb/face_inversion_demo.rst000066400000000000000000000005321323370031300231300ustar00rootroot00000000000000 .. _datadb_face_inversion_demo: ********************************* Eye-tracking Data: Face inversion ********************************* TODO Terms Of Use ============ TODO Download ======== A tarball is available at: http://data.pymvpa.org/datasets/face_inversion_demo Tarball Content =============== TODO References ========== TODO pymvpa2-2.6.4/doc/source/datadb/forrestgump_audio.rst000066400000000000000000000030141323370031300226660ustar00rootroot00000000000000.. _datadb_forrestgump_audio: **************************************************** Hanke et al. (2014): Forrest Gump audio movie (f)MRI **************************************************** tba Terms Of Use ============ All data are made available under the terms of the `Public Domain Dedication and Licence`_ (PDDL). In short this means that anybody is free to download and use this dataset for any purpose, as well as to produce and re-share derived data artifacts. While not legally required, the authors hope that all users of the data will acknowledge the original authors by citing the associated publication, and follow good scientific practice as laid out in the `ODC Attribution/Share-Alike Community Norms`_. .. _Public Domain Dedication and Licence: http://opendatacommons.org/licenses/pddl/1.0/ .. _ODC Attribution/Share-Alike Community Norms: http://opendatacommons.org/norms/odc-by-sa/ Download ======== Data will be made available on http://www.openfmri.org Usage ===== Detailed information on the nature of the dataset is given in the data descriptor. In order to faciliate re-use of this dataset a reference implementation of a data access module has been made available at: https://github.com/hanke/gumpdata This module include basic unit tests to check data integrity and consistency. The source code used to create the group template images is available at: https://github.com/hanke/openfmri_helpers The associate configuratiuon file is included in the ``gumpdata`` repository. References ========== tba pymvpa2-2.6.4/doc/source/datadb/haxby2001.rst000066400000000000000000000107721323370031300205570ustar00rootroot00000000000000.. _datadb_haxby2001: ************************************************************************ Haxby et al. (2001): Faces and Objects in Ventral Temporal Cortex (fMRI) ************************************************************************ This is a block-design fMRI dataset from a study on face and object representation in human ventral temporal cortex. It consists of 6 subjects with 12 runs per subject. In each run, the subjects passively viewed greyscale images of eight object categories, grouped in 24s blocks separated by rest periods. Each image was shown for 500ms and was followed by a 1500ms inter-stimulus interval. Full-brain fMRI data were recorded with a volume repetition time of 2.5s, thus, a stimulus block was covered by roughly 9 volumes. This dataset has been repeatedly reanalyzed. For a complete description of the experimental design, fMRI acquisition parameters, and previously obtained results see the references_ below. Terms Of Use ============ The original authors of :ref:`Haxby et al. (2001) ` hold the copyright of this dataset and made it available under the terms of the `Creative Commons Attribution-Share Alike 3.0`_ license. .. _Creative Commons Attribution-Share Alike 3.0: http://creativecommons.org/licenses/by-sa/3.0/ Download ======== Separate tarballs for each subject are available at: http://data.pymvpa.org/datasets/haxby2001 Stimuli-tarball content ======================= Contains images of the stimuli used in the study. .. note:: Answer-4-FAQ: The original sequence of presentation is N/A. Subject-tarball content ======================= anat.nii.gz High resolution anatomical image. For *subject 6* there is no anatomical image available. bold.nii.gz 4D fMRI timeseries image. (1452 volumes with 40 x 64 x 64 voxels, corresponding to a voxel size of 3.5 x 3.75 x 3.75 mm and a volume repetition time of 2.5 seconds). The timeseries contains all 12 runs of the original experiment, concatenated in a single file. Please note, that the timeseries signal is *not* detrended. mask*.nii.gz Various masks in functional space provided by the original authors. "vt" refers to "ventral temporal", "face" and "house" masks are GLM contrast based localizer maps. labels.txt A two-column text file with the stimulation condition and the corresponding experimental run for each volume in the timeseries image. Labels are given in literal form (e.g. 'face'). .. note:: Data for the run 9 (chunk 8) of subject 5 was corrupted and therefore should not be used for the analyses. In the 'labels.txt' file all samples in that chunk are marked as 'rest' condition. (Acknowledgement goes to MS Al-Rawi who reminded us about this non-disclosed 'feature' of the dataset) Instructions ============ >>> from mvpa2.suite import * >>> subjpath = os.path.join(pymvpa_datadbroot, 'haxby2001', 'subj1') >>> attrs = SampleAttributes(os.path.join(subjpath, 'labels.txt'), ... header=True) >>> ds = fmri_dataset(samples=os.path.join(subjpath, 'bold.nii.gz'), ... targets=attrs.labels, chunks=attrs.chunks, ... mask=os.path.join(subjpath, 'mask4_vt.nii.gz')) >>> print ds , , > References ========== :ref:`Haxby, J., Gobbini, M., Furey, M., Ishai, A., Schouten, J., and Pietrini, P. (2001) `. Distributed and overlapping representations of faces and objects in ventral temporal cortex. Science 293, 2425–2430. :ref:`Hanson, S., Matsuka, T., and Haxby, J. (2004) `. Combinatorial codes in ventral temporal lobe for object recognition: Haxby (2001). revisited: is there a “face†area? NeuroImage 23, 156–166. :ref:`O’Toole, A. J., Jiang, F., Abdi, H., & Haxby, J. V. (2005) `. Partially distributed representations of objects and faces in ventral temporal cortex. Journal of Cognitive Neuroscience, 17, 580–590. :ref:`Hanke, M., Halchenko, Y.O., Sederberg, P.B., Olivetti, E., Fründ, I., Rieger, J.W., Herrmann, C.S., Haxby, J.V., Hanson, S. and Pollmann, S (2009) `. PyMVPA: a unifying approach to the analysis of neuroscientific data. Frontiers in Neuroinformatics, 3:3. :ref:`Hebart, M. N., Görgen, K., & Haynes, J.-D. (2015) `. The Decoding Toolbox (TDT): a versatile software package for multivariate analyses of functional imaging data. Frontiers in +Neuroinformatics, 8, 88. pymvpa2-2.6.4/doc/source/datadb/hyperalignment_tutorial_data.rst000066400000000000000000000062151323370031300251000ustar00rootroot00000000000000.. _datadb_hyperalignment_tutorial_data: ********************************************************************************** Hypearalignment Tutorial Data: Faces and Objects in Ventral Temporal Cortex (fMRI) ********************************************************************************** This is a block-design fMRI dataset from a study on face and object representation in human ventral temporal cortex. It consists of 10 subjects with 8 runs per subject. In each run, the subjects passively viewed greyscale images from seven face & object categories. Each image was shown for 500ms and was followed by a 1500ms inter-stimulus interval. Full-brain fMRI data were recorded with a volume repetition time of 2.5s, thus, a stimulus block was covered by roughly 16 volumes. For a complete description of the experimental design, fMRI acquisition parameters, and preprocessing steps, and previously obtained results see the references_ below. This tutorial dataset is based on data from a study published by :ref:`Haxby et al. (2011) `. The datasets have been preprocessed to a degree that should allow people without prior fMRI experience to perform meaningful analyses. Moreover, it should not require further preprocessing with external tools. All preprocessing has been performed using tools from AFNI & PyMVPA. Specifically, the 4D fMRI timeseries has been preprocessed as described in :ref: `Haxby et al. (2011) ` and aligned to the standard MNI brain. A Ventral Temporal Cortex mask in MNI space is applied to the data. Terms Of Use ============ The original authors of :ref:`Haxby et al. (2011) ` hold the copyright of this dataset and made it available under the terms of the `Creative Commons Attribution-Share Alike 3.0`_ license. .. _Creative Commons Attribution-Share Alike 3.0: http://creativecommons.org/licenses/by-sa/3.0/ Download ======== A single compressed hdf5 is available at: http://data.pymvpa.org/datasets/hyperalignment_tutorial_data Content ======================= hyperalignment_tutorial_data.hdf5.gz The list of datasets for 10 subjects stored as a compressed hdf5 file. Each dataset contains category & run labels. hyperalignment_tutorial_data_2.4.hdf5.gz This file contains the same data as the first one, but it can be opened on systems that have no NiBabel installed. Loading this file requires PyMVPA version 2.4 or later. Instructions ============ >>> from mvpa2.suite import * >>> filepath = os.path.join(pymvpa_datadbroot, 'hyperalignment_tutorial_data', ... "hyperalignment_tutorial_data.hdf5.gz") >>> datasets = h5load(filepath) >>> print len(datasets) 10 >>> print datasets[0] , , > References ========== :ref:`Haxby, J. V., Guntupalli, J. S., Connolly, A. C., Halchenko, Y. O., Conroy, B. R., Gobbini, M. I., Hanke, M. & Ramadge, P. J. (2011) .` A Common, High-Dimensional Model of the Representational Space in Human Ventral Temporal Cortex. Neuron, 72, 404–416. DOI: http://dx.doi.org/10.1016/j.neuron.2011.08.026 pymvpa2-2.6.4/doc/source/datadb/mnist.rst000066400000000000000000000047341323370031300202740ustar00rootroot00000000000000.. _datadb_mnist: ********************************************************************* LeCun et al. (1999): The MNIST Dataset Of Handwritten Digits (Images) ********************************************************************* The MNIST_ dataset of handwritten digits, available from this page, has a training set of 60,000 examples, and a test set of 10,000 examples. It is a subset of a larger set available from NIST. The digits have been size-normalized and centered in a fixed-size image. It is a good database for people who want to try learning techniques and pattern recognition methods on real-world data while spending minimal efforts on preprocessing and formatting. See http://yann.lecun.com/exdb/mnist for more information. .. note:: The version that is offered here is identical to the four files distributed there, but has been converted into a single HDF5 file than can easily be read by PyMVPA. Terms Of Use ============ `Yann LeCun`_ (Courant Institute, NYU) and `Corinna Cortes`_ (Google Labs, New York) hold the copyright of MNIST_ dataset, which is a derivative work from original NIST datasets. MNIST_ dataset is made available under the terms of the `Creative Commons Attribution-Share Alike 3.0`_ license. .. _MNIST: http://yann.lecun.com/exdb/mnist .. _Creative Commons Attribution-Share Alike 3.0: http://creativecommons.org/licenses/by-sa/3.0/ .. _Yann LeCun: http://yann.lecun.com/ .. _Corinna Cortes: http://web.me.com/corinnacortes/work/Home.html Download ======== A single hdf5 file containing entire MNIST_ dataset is available from http://data.pymvpa.org/datasets/mnist/ Requirements ============ * HDF5 access facility. * *PyMVPA 0.5* (or later) provides the `h5load()` function (utilizes H5PY_ package). .. _H5PY: http://h5py.alfven.org/ Instructions ============ >>> from mvpa2.suite import * >>> filepath = os.path.join(pymvpa_datadbroot, 'mnist', "mnist.hdf5") >>> datasets = h5load(filepath) >>> train = datasets['train'] >>> test = datasets['test'] >>> print train > >>> print test > >>> # assign a mapper able to recreate 28x28 pixel image arrays >>> test.a.mapper = FlattenMapper(shape=(28, 28)) >>> test.mapper.reverse(test).shape (10000, 28, 28) References ========== :ref:`LeCun, Y., Bottou, L., Bengio, Y., and Haffner, P. (1998) `. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86, 2278--2324. pymvpa2-2.6.4/doc/source/datadb/tutorial_data.rst000066400000000000000000000211421323370031300217660ustar00rootroot00000000000000.. _datadb_tutorial_data: ******************************** Tutorial Data: Block-design fMRI ******************************** This dataset is a compilation of data and results for :ref:`PyMVPA Tutorial `. At the moment dataset is based on data for a single subject from a study published by :ref:`Haxby et al. (2001) `. The full (raw) dataset of this study is also :ref:`available `. However, in contrast to the full data this single subject datasets has been preprocessed to a degree that should allow people without prior fMRI experience to perform meaningful analyses. Moreover, it should not require further preprocessing with external tools. All preprocessing has been performed using tools from FSL_. Specifically, the 4D fMRI timeseries has been motion-corrected by applying MCFLIRT to a skull-stripped and thresholded timeseries (to zero-out non-brain voxels, using a brain outline estimate significantly larger than the brain, to prevent removal of edge voxels actually covering brain tissue). The estimated motion parameters have been subsequently applied to the original (unthresholded, unstripped) timeseries. For simplicity the T1-weighed anatomical image has also been projected and resampled into the subjects functional space. For surface-based mapping two other archives are distributed, called 'tutorial_data_surf_minimal-0.1.tar.gz' and 'tutorial_data_surf_complete-0.1.tar.gz'. Both contain surfaces that were reconstructed using FreeSurfer and preprocessed using AFNI and SUMA. The 'minimal' archive contains the minimal set of surfaces to run doc/examples/searchlight_surf.py. The latter contains the full output from FreeSurfer's recon-all and the full output from the anatomical preprocessing by the alignment script in bin/pymvpa2-prep-afni-surf. This output includes left, right, and merged (left combined with right) hemispheres at various resolutions. Surfaces produced by the alignment script are stored in ASCII format and can be read by the module mvpa2/misc/nibabel/surf_fs_asc. The surfaces can be visualized using AFNI's SUMA (SUrface MApper). Terms Of Use ============ The orginal authors of :ref:`Haxby et al. (2001) ` hold the copyright of this dataset and made it available under the terms of the `Creative Commons Attribution-Share Alike 3.0`_ license. The PyMVPA authors have preprocessed the data and released this derivative work under the same licensing terms. .. _Creative Commons Attribution-Share Alike 3.0: http://creativecommons.org/licenses/by-sa/3.0/ Download ======== Tarballs are available at: http://data.PyMVPA.org/datasets/tutorial_data Tarball Content =============== haxby2001/ Contains data files: bold.nii.gz The motion-corrected 4D timeseries (1452 volumes with 40 x 64 x 64 voxels, corresponding to a voxel size of 3.5 x 3.75 x 3.75 mm and a volume repetition time of 2.5 seconds). The timeseries contains all 12 runs of the original experiment, concatenated in a single file. Please note, that the timeseries signal is *not* detrended. bold_mean.nii.gz The voxel-wise average image of bold.nii.gz (averaged over time). Generated using AFNI's 3dTstat. bold_mc.par The motion correction parameters. This is a 6-column text file with three rotation and three translation parameters respectively. This information can be used e.g. as additional regressors for :ref:`motion-aware timeseries detrending `. mask*.nii.gz A number of mask images in the subjects functional space, including a full-brain mask. attributes.txt A two-column text file with the stimulation condition and the corresponding experimental run for each volume in the timeseries image. The labels are given in literal form (e.g. 'face'). anat.nii.gz An anatomical image of the subject, projected and resampled into the same space as the functional images, hence also of the same spatial resolution. The image is *not* skull-stripped. freesurfer/ Data used for and generated by FreeSurfer_\'s recon-all. Only included in the ``tutorial_data_surf_complete`` archive. anat_nii.nii A high-resolution version of the anatomical image that was used for surface reconstruction with FreeSurfer's ``recon-all``. subj1 Contains the output from FreeSurfer's recon-all. The command used to generate the output was:: recon-all -subject subj1 -i anat_nii.nii -all -cw256 Note that the environmental variable SUBJECTS_DIR was set to point to the current working directory (freesurfer). The version of FreeSurfer used for reconstruction is: freesurfer-Linux-centos4_x86_64-stable-pub-v5.0.0. subj1/surf/SUMA Contains the output from `AFNI`_'s @SUMA_Make_Spec_FS program that converts FreeSurfer's output to AFNI-readable files. It also contains surfaces resampled using MapIcosahedron. For the command used to generate these files, see the suma_surfaces description below. results/ Some analyses presented in the tutorial takes non-negligible time to compute. Therefore, we provide results of some analysis so they could simply be loaded while following the tutorial (commands to load them are embedded in the code snippets through out tutorial and prefixed with ``# alt:``). start_tutorial_session.sh Helper shell script to start an interactive session within IPython to proceed with the tutorial code. suma_surfaces/ Surfaces generated by the AFNI_ / SUMA_ wrapper script in bin/pymvpa2-prep-afni-surf. Most files are available only in the tutorial_data_surf_complete archive. The minimal set for running ``doc/examples/searchlight_surf.py`` is provided in the tutorial_data_surf_minimal archive. These surfaces are aligned to bold_mean.nii.gz as indicated by the infix ``_al`` in the file name. The contents of this directory can be generated with:: PyMVPAROOT/bin/pymvpa-prep-afni-surf.py \ --refdir suma_surfaces \ --surfdir data/freesurfer/subj1/surf \ --epivol data/bold_mean.nii.gz where PyMVPAROOT is the directory where PyMVPA is installed. Using this script requires that FreeSurfer, AFNI and SUMA are installed. The prefixes icoXX_Yh indicates that the surface was generated using AFNI's ``MapIcosahedron`` with XX linear divisions (ld parameter) and represents the Y hemisphere (l=left, r=right, m=merged). Such a surface has 10*XX**2+2 nodes and 20*XX*2 surfaces for a single hemisphere, and twice that number for merged hemispheres. Merged hemispheres contain first the nodes of the left hemispheres, followed by the nodes in the right hemisphere. SUMA .spec files that define several views are also provided for these surfaces. Files were generated using FreeSurfer version stable5, and AFNI AFNI_2011_12_21_1014 running on a Mac with Mac OS 10.7.5. Instructions ============ >>> from mvpa2.suite import * >>> datapath = os.path.join(pymvpa_datadbroot, 'tutorial_data', ... 'tutorial_data', 'haxby2001') >>> attrs = SampleAttributes(os.path.join(datapath, 'attributes.txt')) >>> ds = fmri_dataset(samples=os.path.join(datapath, 'bold.nii.gz'), ... targets=attrs.targets, chunks=attrs.chunks, ... mask=os.path.join(datapath, 'mask_brain.nii.gz')) >>> print ds.shape (1452, 39912) >>> print ds.a.voxel_dim (40, 64, 64) >>> print ds.a.voxel_eldim (3.5, 3.75, 3.75) >>> print ds.a.mapper -> >>> print ds.uniquetargets ['bottle' 'cat' 'chair' 'face' 'house' 'rest' 'scissors' 'scrambledpix' 'shoe'] References ========== :ref:`Haxby, J., Gobbini, M., Furey, M., Ishai, A., Schouten, J., and Pietrini, P. (2001) `. Distributed and overlapping representations of faces and objects in ventral temporal cortex. Science 293, 2425–2430. .. _AFNI: http://afni.nimh.nih.gov .. _FSL: http://www.fmrib.ox.ac.uk/fsl .. _FreeSurfer: http://surfer.nmr.mgh.harvard.edu .. _SUMA: http://afni.nimh.nih.gov/afni/suma Changelog ========= 0.3* * Added tutorial_data_surf_{complete,minimal}-0.1.tar.gz descriptions to this README file. 0.3 * Removed tutorial_lib.py which is superseded by using mvpa2.tutorial_suite * Removed start_tutorial_session.sh which is superseded by the pymvpa2-tutorial command * Removed outdated intermediate tutorial results. The tutorial can now be ran on downsampled data that allow for near-realtime computing on reasonable hardware. * Data is now structured according to an openfmri.org-like scheme. 0.2 * Updated tutorial code to work with PyMVPA 0.6 * Removed dependency on PyNIfTI and use NiBabel instead. 0.1 * Initial release. pymvpa2-2.6.4/doc/source/datasets.txt000066400000000000000000000365341323370031300175450ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: dataset, sample attribute, dataset attribute .. _chap_datasets: ******** Datasets ******** .. automodule:: mvpa2.datasets .. only:: html Related API documentation ========================= .. currentmodule:: mvpa .. autosummary:: :toctree: generated base.dataset datasets.base datasets.mri datasets.eventrelated datasets.eep datasets.miscfx datasets.splitters The Basic Concepts ================== A minimal dataset in PyMVPA consists of a number of :term:`sample`\ s, where each individual sample is nothing more than a vector of values. Each sample is associated with a :term:`label`, which defines the category the respective sample belongs to, or in more general terms, defines the model that should be learned by a classifier. Moreover, samples can be grouped into so-called :term:`chunk`\ s, where each chunk is assumed to be statistically independent from all other data chunks. The foundation of PyMVPA's data handling is the :class:`~mvpa2.datasets.base.Dataset` class. Basically, this class stores data samples, sample attributes and dataset attributes. By definition, sample attributes assign a value to each data sample (e.g. targets, or chunks) and dataset attributes are additional information or functionality that apply to the whole dataset. Most likely the :class:`~mvpa2.datasets.base.Dataset` class will not be used directly, but through one of the derived classes. However, it is perfectly possible to use it directly. In the simplest case a dataset can be constructed by specifying some data samples and the corresponding class labels. >>> import numpy as np >>> from mvpa2.datasets import dataset_wizard >>> data = dataset_wizard(samples=np.random.normal(size=(10,5)), targets=1) >>> print data > .. index:: chunks, targets, feature, sample The above example creates a dataset with 10 samples and 5 features each. The values of all features stem from normally distributed random noise. The class label '1' is assigned to all samples. Instead of a single scalar value `targets` can also be a sequence with individual targets for each data sample. In this case the length of this sequence has to match the number of samples. Interestingly, the dataset object tells us about 10 `chunks`. In PyMVPA chunks are used to group subsets of data samples. However, if no grouping information is provided all data samples are assumed to be in their own group, hence no sample grouping is performed. Both `targets` and `chunks` are so called *sample attributes*. All sample attributes are stored in sequence-type containers consisting of one value per sample. These containers can be accessed by properties with the same as the attribute: The *data samples* themselves are stored as a two-dimensional matrix where each row vector is a `sample` and each column vector contains the values of a `feature` across all `samples`. The :class:`~mvpa2.datasets.base.Dataset` class provides access to the samples matrix via the `samples` property. >>> data.samples.shape (10, 5) >>> data.shape (10, 5) The :class:`~mvpa2.datasets.base.Dataset` class itself can only deal with 2d sample matrices. However, PyMVPA provides a very easy way to deal with data where each data sample is more than a 1d vector: `Data Mapping`_ .. index:: mapper, sample, feature Data Mapping ============ It was already mentioned that the :class:`~mvpa2.datasets.base.Dataset` class cannot deal with data samples that are more than simple vectors. This could be a problem in cases where the data has a higher dimensionality, e.g. functional brain-imaging data where each data sample is typically a three-dimensional volume. One approach to deal with this situation would be to concatenate the whole volume into a 1d vector. While this would work in certain cases there is definitely information lost. Especially for brain-imaging data one would most likely want keep information about neighborhood and distances between data sample elements. In PyMVPA this is done by mappers that transform data samples from their original *dataspace* into the so-called *features space*. In the above neuro-imaging example the *dataspace* is three-dimensional and the *feature space* always refers to the 2d `samples x features` representation that is required by the :class:`~mvpa2.datasets.base.Dataset` class. In the context of mappers the dataspace is sometimes also referred to as *in-space* (i.e. the initial data that goes into the mapper) while the feature space is labeled as *out-space* (i.e. the mapper output when doing forward mapping). The task of a mapper, besides transforming samples into 1d vectors, is to retain as much information of the dataspace as possible. Some mappers provide information about dataspace metrics and feature neighbourhood, but all mappers are able to do reverse mapping from feature space into the original dataspace. Usually one does not have to deal with mappers directly. PyMVPA provides some convenience subclasses of :class:`~mvpa2.datasets.base.Dataset` that automatically perform the necessary mapping operations internally. .. index:: MaskedDataset For an introduction into to concept of a dataset with mapping capabilities we can take a look at the :class:`~mvpa2.datasets.masked.MaskedDataset` class. This dataset class works almost exactly like the basic :class:`~mvpa2.datasets.base.Dataset` class, except that it provides some additional methods and is more flexible with respect to the format of the sample data. A masked dataset can be created just like a normal dataset. However, unlike :class:`~mvpa2.datasets.base.Dataset` the :class:`~mvpa2.datasets.masked.MaskedDataset` class can deal with sample data arrays with more than two dimensions. More precisely it handles arrays of any dimensionality. The only assumption that is made is that the first axis of a sample array separates the sample data points. In the above example we therefore have 5 samples, where each sample is a 3x4 plane. .. index:: forward mapping, reverse mapping If we look at the self-description of the created dataset we can see that it doesn't tell us about 3x4 plane, but simply 12 features. That is because internally the sample array is automatically reshaped into the aforementioned 2d matrix representation of the :class:`~mvpa2.datasets.base.Dataset` class. However, the information about the original dataspace is not lost, but kept inside the mapper used by :class:`~mvpa2.datasets.masked.MaskedDataset`. Two useful methods of :class:`~mvpa2.datasets.masked.MaskedDataset` make use of the mapper: `mapForward()` and `mapReverse()`. The former can be used to transform additional data from dataspace into the feature space and the latter performs the same in the opposite direction. Especially reverse mapping can be very useful when visualizing classification results and information maps on the original dataspace. Another feature of mapped datasets is that valid mapping information is maintained even when the feature space changes. When running some feature selection algorithm (see :ref:`chap_featsel`) some features of the original features set will be removed, but after feature selection one will most likely want to know where the selected (or removed) features are in the original dataspace. To make use of the neuro-imaging example again: The most convenient way to access this kind of information would be a map of the selected features that can be overlayed over some anatomical image. This is trivial with PyMVPA, because the mapping is automatically updated upon feature selection. .. index:: feature selection The above example selects four features from the set of the 12 original ones, by passing their ids to the `selectFeatures()` method. The method returns a new dataset only containing the four selected features. Resultant dataset contains a copy of the corresponding features of the original dataset. All other information like class labels and chunks are maintained. By calling `mapReverse()` on the new dataset one can see that the remaining four features are precisely mapped back onto their original locations in the data space. .. index:: syntactic sugaring .. _data_sugaring: Data Access Sugaring ==================== Complementary to self-descriptive attribute names (e.g. `targets`, `samples`) datasets have a few concise shortcuts to get quick access to some attributes or perform some common action ================ ============ ================ Attribute Abbreviation Definition class ---------------- ------------ ---------------- samples S :class:`~mvpa2.datasets.base.Dataset` targets T :class:`~mvpa2.datasets.base.Dataset` uniquetargets UT :class:`~mvpa2.datasets.base.Dataset` chunks C :class:`~mvpa2.datasets.base.Dataset` uniquechunks UC :class:`~mvpa2.datasets.base.Dataset` origids I :class:`~mvpa2.datasets.base.Dataset` samples_original O :class:`~mvpa2.datasets.mapped.MappedDataset` ================ ============ ================ .. index:: data formats .. _data_formats: Data Formats ============ The concept of mappers in conjunction with the functionality provided by the :class:`~mvpa2.datasets.base.Dataset` class, makes it very easy to create new dataset types with support for specialized data types and formats. The following is a non-exhaustive list of data formats currently supported by PyMVPA (for additional formats take a look at the subclasses of :class:`~mvpa2.datasets.base.Dataset`): * NumPy arrays PyMVPA builds its dataset facilities on NumPy arrays. Basically, anything that can be converted into a NumPy array can also be converted into a dataset. Together with the corresponding targets, NumPy arrays can simply be passed to the :class:`~mvpa2.datasets.base.Dataset` constructor to create a dataset. With arrays it is possible to use the classes :class:`~mvpa2.datasets.base.Dataset`, :class:`~mvpa2.datasets.mapped.MappedDataset` (to combine the samples with any custom mapping algorithm) or :class:`~mvpa2.datasets.masked.MaskedDataset` (readily provides a :class:`~mvpa2.mappers.array.DenseArrayMapper`). * Plain text Using the NumPy function `fromfile()` a variety of text file formats (e.g. CSV) can be read and converted into NumPy arrays. * NIfTI/Analyze images PyMVPA provides a specialized dataset for MRI data in the NIfTI format. :class:`~mvpa2.datasets.nifti.NiftiDataset` uses NiBabel_ to read the data and automatically configures an appropriate :class:`~mvpa2.mappers.array.DenseArrayMapper` with metric information read from the NIfTI file header. * EEP binary files Another special dataset type is :class:`~mvpa2.datasets.eep.EEPDataset`. It reads data from binary EEP file (written by eeprobe_) .. _NiBabel: http://nipy.org/nibabel/ .. _eeprobe: http://www.ant-neuro.com/products/eeprobe .. index:: data splitting, splitter, leave-one-out .. _data_splitter: Data Splitting ============== In many cases some algorithm should not run on a complete dataset, but just some parts of it. One well-known example is leave-one-out cross-validation, where a dataset is typically split into a number of training and validation datasets. A classifier is trained on the training set and its generalization performance is tested using the validation set. It is important to strictly separate training and validation datasets as otherwise no valid statement can be made whether a classifier really generated an appropriate model of the training data. Violating this requirement spuriously elevates the classification performance, often termed 'peeking' in the literature. However, they provide no relevant information because they are based on cheating or peeking and do not describe signal similarities between training and validation datasets. .. this point about 'peeking' is a critical one and maybe deserves emphasis. i was just looking at how we deal with it in our documentation, and we need to improve ours too! With the splitter classes derived from the base :class:`~mvpa2.datasets.splitters.Splitter`, PyMVPA makes dataset splitting easy. All dataset splitters in PyMVPA are implemented as Python generators, meaning that when called with a dataset once, they return one dataset split per iteration and an appropriate Exception when they are done. This is exactly the same behavior as of e.g. the Python `xrange()` function. .. index:: working data, validation data To perform data splitting for the already mentioned cross-validation, PyMVPA provides the :class:`~mvpa2.datasets.splitters.NFoldSplitter` class. It implements a method to generate arbitrary N-M splits, where N is the number of different chunks in a dataset and M is any non-negative integer smaller than np. Doing a leave-one-out split of our example dataset looks like this: >>> from mvpa2.datasets.splitters import NFoldSplitter >>> data = dataset_wizard(samples=np.random.normal(size=(10,5)), ... targets=1, chunks=range(10)) >>> splitter = NFoldSplitter(cvtype=1) # Do N-1 >>> for wdata, vdata in splitter(data): ... pass where `wdata` is the *working dataset* and `vdata` is the *validation dataset*. If we have a look a those datasets we can see that the splitter did what we intended: >>> split = [ i for i in splitter(data)][0] >>> for s in split: ... print s , > , > >>> split[0].uniquechunks array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> split[1].uniquechunks array([0]) In the first split, the working dataset contains nine chunks of the original dataset and the validation set contains the remaining chunk. Behavior of the splitters can be heavily customized by additional arguments to the constructor (see :class:`~mvpa2.datasets.splitters.Splitter` for extended help on the arguments). For instance, in the analysis in fMRI data it might be important to assure that samples in the training and testing parts of the split are not neighboring samples (unless it is otherwise assured by the presence of baseline condition on the boundaries between chunks, samples of which are discarded prior the statistical learning analysis). Providing argument `discard_boundary=1` to the splitter, would remove from both training and testing parts a single sample, which lie on the boundary between chunks. Providing `discard_boundary=(2,0)` would remove 2 samples only from training part of the split (which is desired strategy for `NFoldSplitter` where training part contains majority of the data). .. index:: processing object The usage of the splitter, creating a splitter object and calling it with a dataset, is a very common design pattern in the PyMVPA package. Like splitters, there are many more so called *processing objects*. These classes or objects are instantiated by passing all relevant parameters to the constructor. Processing objects can then be called multiple times with different datasets to perform their algorithm on the respective dataset. This design applies to the majority of the algorithms implemented in PyMVPA. pymvpa2-2.6.4/doc/source/devguide.rst000066400000000000000000000670651323370031300175250ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 79 -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_devguide: ******************** Developer Guidelines ******************** Git Repository ============== Layout ------ The git repository is structured by a number of branches and clones (forks) at github_. Anyone is welcome to fork the repository on github_ (just click on "Fork" button), and file a "Pull request" whenever he/she thinks that his changes are ready to be included (merged) into the main repository. Alternatively, if you just want quickly submit a patch -- just email it to the mailing list. Concise accompanying description is a plus. You might take advantage of ``git format-patch`` command. .. _github: http://github.com/PyMVPA/PyMVPA/ Branches -------- Any developer can have an infinite number of branches. If the number of branches causes gitk output to exceed a usual 19" screen, the respective developer has to spend some bucks (or euros) on new screens for all others ;-) The main release branch is called *master*. This is a merge-only branch. Features finished or updated by some developer are merged from the corresponding branch into *master*. At a certain point the current state of *master* is tagged -- a release is done. Only usable feature should end-up in *master*. Ideally *master* should be releasable at all times. Something must not be merged into master if *any* unit test fails. Maintenance branches should be gone into *maint/epoch.major* branches (e.g. *maint/0.4*). Additionally, there are packaging branches (prefixed with *dist/*). They are labeled after the package target (e.g. *debian* for a Debian package). Releases are merged into the packaging branches, packaging get updated if necessary and the branch gets tagged when a package version is released. Packaging maintenance (as well as backport) releases should be gone under *dist/target/flavor/codename* (e.g. *dist/debian/maint/lenny*, *dist/debian/security/lenny*). Branch *dist/debian/dev* is dedicated for Debian packages of development snapshots. Besides *master*, *maint/...*, *dist/...* we are following the convention for additional prefixes for new branches: _bf/... Bugfix branches -- should be simply deleted on remotes whenever accepted _tent/... Tentative new features which might be adopted or not. Whenever feature gets adopted (merged into some *master*), corresponding HEAD of *_tent/* branch should be tagged with a corresponding non-annotated *+tent/* tag Please do not base your work on *_tent/* branches of the others since those could be forcefully rebased without further notice. Commits ------- Please prefix all commit summaries with one (or more) of the following labels. This should help others to easily classify the commits into meaningful categories: * *BF* : bug fix * *RF* : refactoring * *NF* : new feature * *ENH* : enhancement of an existing feature/facility * *BW* : addresses backward-compatibility * *OPT* : optimization * *BK* : breaks something and/or tests fail * *PL* : making pylint happier * *DOC*: for all kinds of documentation related commits .. _reST: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html .. _EmacsreST: http://docutils.sourceforge.net/docs/user/emacs.html .. _Pylint: http://packages.debian.org/unstable/python/pylint Merges ------ For easy tracking of what changes were absorbed during merge, we advice to enable automagic inclusion of their log entries into the commit message of the merge:: git config merge.log true .. note:: `merge.log` superseeds deprecated x`merge.summary` Code ==== Formatting ---------- pylint Code should be conformant with Pylint_ driven by config located at `doc/misc/pylintrc `__. Previously we used camelBack notation, but since 0.5.0.dev we decided to mainly follow PEP8_. Provided *pylintrc* file assures consistent coding style and also warns about obvious errors in the code. To engage, use 1 of 3 methods: - place it in *~/.pylintrc* for user-wide installation - use within a call to pylint:: pylint --rcfile=$PWD/doc/misc/pylintrc - export environment variable from mvpa sources top directory:: export PYLINTRC=$PWD/doc/misc/pylintrc 2 empty lines According to original python style guidelines: single empty line to separate methods within class, and 2 empty lines between classes **BUT** we do 2 empty between methods, 3 empty between classes module docstring Each module should start with a docstring describing the module (which is not inside the hashed-comment of each file) look at mapper or neighbor for tentative organization if copyright/license has to be present in each file. header Each file should contain a header from `doc/misc/header.py `__. notes Use following keywords will be caught by pylint to provide a summary of what yet to be done in the given file FIXME something which needs fixing (sooner than later) TODO future plan (i.e. later than sooner) XXX some concern/question YYY comment/answer to above mentioned XXX concern WiP Work in Progress: API and functionality might rapidly change .. _PEP8: http://www.python.org/dev/peps/pep-0008/ Docstrings ---------- All documentation should be written using NumPy_ documentation conventions: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt Classes ------- Classes should define: __repr__ whenever possible, should be the string representation of the object which could be digested with func:`eval` if necessary. __str__ most of the classes should provide meaningful and concise summary over their identity (name + parameters + some summary over results if any), not necessarily *eval*\uable. .. note:: Classes derived from :class:`~mvpa2.base.state.ClassWithCollections` and using `params` and `ca` collections for their need of parametrization (e.g. :class:`~mvpa2.clfs.base.Classifier`) would obtain an acceptable definitions of `__repr__` and `__str__` automagically. Function Arguments ------------------ dataset vs data Ones which are supposed to be derived from :class:`~mvpa2.datasets.base.Dataset` class should have suffix (or whole name) ``dataset``. In contrast, if argument is expected to be simply a NumPy_ array, suffix should be ``data``. For example:: class Classifier(ClassWithCollections): ... def train(self, dataset): ... def predict(self, data): class FeatureSelection(ClassWithCollections): ... def __call__(self, dataset, testdataset): Such convention should be enforced in all ``*train``, ``*predict`` functions of classifiers. .. _NumPy: http://numpy.scipy.org/ Documentation ============= Examples -------- Examples should be complete and stand-alone scripts located in `doc/examples`. If an example involves any kind of interactive step, it should honor the :envvar:`MVPA_EXAMPLES_INTERACTIVE` setting, to allow for automatic testing of all examples. In case of a matplotlib-based visualization such snippet should be sufficient:: from mvpa2 import cfg if cfg.getboolean('examples', 'interactive', True): pl.show() All examples are automatically converted into RsT documents for inclusion in the manual. Each of them is preprocessed in the following way: * Any header till the first docstring is stripped. * Each top-level (non-assigned) docstring is taken as a text block in the generated RsT source file. Such a docstring might appear anywhere in the example, not just at the beginning. In this case, the code snippet is properly split and the text block is inserted at the corresponding location. * All remaining lines are treated as code and inserted in the RsT source with appropriate markup. The first docstring in each example must have a proper section heading (with '=' markup). Finally, each example should be added to the appropriate `toctree` in `doc/examples.rst` and included into a test battery by adding it to `testexamples` rule within :file:`Makefile` in the toplevel directory of the source tree. Tests ===== We are slowly moving toward utilizing `nose testing framework`_. It allows to carry out not only unit testing, but also verify correctness of the code snippets provided in the docstrings and the manual. All unit tests are stored in :mod:`mvpa2.tests`, and they make use of :mod:`mvpa2.testing` which provides :mod:`~mvpa2.testing.tools` basic tools (imported wiithin :mod:`~mvpa2.testing.__init__`) :mod:`~mvpa2.testing.clfs` some additional classifiers to be used in the unittests :mod:`~mvpa2.testing.datasets` pre-crafted datasets *warehouse* to be used in the tests :mod:`~mvpa2.testing.sweepargs` defines a custom decorator to allow running the same unittest on a range of input values and later on nicely summarize the detected failures While working on the project we adhere to the following rules: * Every more or less "interesting" bugfix should be accompanied by a unittest which might help to prevent it in the future refactoring * Every new feature should have a unittest * Unit tests that might be non-deterministic (e.g. depending on classifier performance, which is turn is randomly initialized) should be made conditional like this: >>> from mvpa2 import cfg >>> if cfg.getboolean('tests', 'labile', default='yes'): ... pass * Every additional unit test submodule (or a unittest method itself) requiring specific external being present should make use of :func:`~mvpa2.testing.tools.skip_if_no_external`, e.g. >>> from mvpa2.testing import * >>> skip_if_no_external('numpy') Furthermore we encourage detailed docstrings for the classes, including *Examples* section with the demonstration of most typical use cases and aspects of the classes. Those snippets are also part of the tests battery .. _`nose testing framework`: https://nose.readthedocs.org Changelog ========= The PyMVPA changelog is located in the toplevel directory of the source tree in the `Changelog` file. The content of this file should be formated as restructured text to make it easy to put it into manual appendix and on the website. This changelog should neither replicate the VCS commit log nor the distribution packaging changelogs (e.g. debian/changelog). It should be focused on the user perspective and is intended to list rather macroscopic and/or important changes to the module, like feature additions or bugfixes in the algorithms with implications to the performance or validity of results. It may list references to 3rd party bug trackers, in case the reported bugs match the criteria listed above. Changelog entries should be tagged with the name of the developer(s) (mainly) involved in the modification -- initials are sufficient for people contributing regularly. Changelog entries should be added whenever something is ready to be merged into the master branch, not necessarily with a release already approaching. Extending PyMVPA ================ This section shall provide a developer with the necessary pieces of information for writing extensions to PyMVPA. The guidelines given here, must be obeyed to ensure a maximum of compatibilty and inter-operability. As a consequence, all modifications that introduce changes to the basic interfaces outlined below have to be documented here and also should be announced in the changelog. Adding an External Dependency ----------------------------- Introducing new external dependencies should be done in a completely optional fashion. This includes both build-dependencies and runtime dependencies. With `mvpa2.base.externals` PyMVPA provides a simple framework to test the availability of certain external components and publish the results of the tests throughout PyMVPA. Adding a new Dataset type ------------------------- * Required interface for Mapper. * only new subclasses of MappedDataset + new Mappers (all other as improvements into the Dataset base class)? go into `mvpa2/datasets/` Adding a new Classifier ----------------------- To add a new classifier implementation it is sufficient to create a new sub-class of :class:`~mvpa2.clfs.base.Classifier` and add implementations of the following methods: `__init__(**kwargs)` Additional arguments and keyword arguments may be added, but the base-class contructor has to be called with `**kwargs`! `_train(dataset)` Has to train the classifier when it is called with a :class:`~mvpa2.datasets.base.Dataset`. Successive calls to this methods always have to train the classifier on the respective datasets. An eventually existing prior training status has to be cleared automatically. Nothing is returned. `_predict(data)` Unlike `_train()` the method is not called with a :class:`~mvpa2.datasets.base.Dataset` instance, but with any sequence of data samples (e.g. arrays). It has to return a sequence of predictions, one for each data sample. With this minimal implementation the classifier provides some useful functionality, by automatically storing some relevant information upon request in conditional attributes. .. autoconditional: clfs.base Classifier Supported conditional attributes: ================== ============================================== ========= Name Description Default ------------------ ---------------------------------------------- --------- feature_ids Feature IDS which were used for the actual Disabled training. predicting_time Time (in seconds) which took classifier to Enabled predict. predictions Most recent set of predictions. Enabled trained_dataset The dataset it has been trained on. Disabled trained_targets Set of unique labels it has been trained on. Enabled training_stats Confusion matrix of learning performance. Disabled training_time Time (in seconds) which took classifier to Enabled train. values Internal classifier values the most recent Disabled predictions are based on. ================== ============================================== ========= If any intended functionality cannot be realized be implementing above methods. The :class:`~mvpa2.clfs.base.Classifier` class offers some additional methods that might be overridden by sub-classes. For all methods described below it is strongly recommended to call the base-class methods at the end of the implementation in the sub-class to preserve the full functionality. `_pretrain(dataset)` Called with the :class:`~mvpa2.datasets.base.Dataset` instance that shall be trained with, but before the actual training is performed. `_posttrain(dataset)` Called with the :class:`~mvpa2.datasets.base.Dataset` instance the classifier was trained on, just after training was performed. `_prepredict(data)` Called with the data samples the classifier should do a prediction with, just before the actual `_predict()` call. `_postpredict(data, result)` Called with the data sample for which predictions were made and the resulting predictions themselves. Source code files of all classifier implementations go into `mvpa2/clfs/`. Outstanding Questions: * when ca and when properties? Adding a new Measure -------------------- There are few possible base-classes for new measures (former sensitivity analyzers). First, :class:`~mvpa2.measures.base.Measure` can directly be sub-classed. It is a base class for any measure to be computed on a :class:`~mvpa2.datasets.base.Dataset`. This is the more generic approach. In the most of the cases, measures are to be reported per each feature, thus :class:`~mvpa2.measures.base.FeaturewiseMeasure` should serve as a base class in those cases. Furthermore, for measures that make use of some classifier and extract the sensitivities from it, :class:`~mvpa2.measures.base.Sensitivity` (derived from :class:`~mvpa2.measures.base.FeaturewiseMeasure`) is a more appropriate base-class, as it provides some additional useful functionality for this use case (e.g. training a classifier if needed). .. TODO: deprecate transformers etc All measures (actually all objects based on :class:`~mvpa2.measures.base.Measure`) support a `transformer` keyword argument to their constructor. The functor passed as its value is called with the to be returned results and its outcome is returned as the final results. By default no transformation is performed. If a :class:`~mvpa2.measures.base.Measure` computes a characteristic, were both large positive and large negative values indicate high relevance, it should nevertheless *not* return absolute sensitivities, but set a default transformer instead that takes the absolute (e.g. plain `np.absolute` or a convinience wrapper Absolute_). To add a new measure implementation it is sufficient to create a new sub-class of :class:`~mvpa2.measures.base.Measure` (or :class:`~mvpa2.measures.base.FeaturewiseMeasure`, or :class:`~mvpa2.measures.base.Sensitivity`) and add an implementation of the `_call(dataset)` method. It will be called with an instance of :class:`~mvpa2.datasets.base.Dataset`. :class:`~mvpa2.measures.base.FeaturewiseMeasure` (e.g. :class:`~mvpa2.measures.base.Sensitivity` as well) has to return a vector of featurewise sensitivity scores. .. autoconditional: measures.base Measure Supported conditional attributes: ================== ============================================== ========= Name Description Default ------------------ ---------------------------------------------- --------- null_prob Conditional attribute. Enabled raw_results Computed results before applying any Disabled transformation algorithm. ================== ============================================== ========= Source code files of all sensitivity analyzer implementations go into `mvpa2/measures/`. Classifier-independent Sensitivity Analyzers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nothing special. Classifier-based Sensitivity Analyzers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A :class:`~mvpa2.measures.base.Sensitivity` behaves exactly like its classifier-independent sibling, but additionally provides support for embedding the necessary classifier and handles its training upon request (boolean `force_train` keyword argument of the constructor). Access to the embedded classifier object is provided via the `clf` property. .. autoconditional: measures.base Sensitivity Supported conditional attributes: ================== ============================================== ========= Name Description Default ------------------ ---------------------------------------------- --------- base_sensitivities Stores basic sensitivities if the sensitivity Disabled relies on combining multiple ones. null_prob Conditional attribute. Enabled raw_results Computed results before applying any Disabled transformation algorithm. ================== ============================================== ========= Outstanding Questions: * What is a :class:`mvpa2.measures.base.ProxyClassifierSensitivityAnalyzer` useful for? * Shouldn't there be a `sensitivities` state? .. _Absolute: api/mvpa2.misc.transformers-module.html#Absolute Adding a new Algorithm ---------------------- go into `mvpa2/algorithms/` Developer-TODO ============== Things to implement for the next release (Release goals) -------------------------------------------------------- * A part of below restructuring TODO but is separate due to it importance: come up with cleaner hierarchy and tagging of classifiers and regressions -- now they are all `Classifier` * Unify parameter naming across all classifiers and come up with a labeling guideline for future classifier implementations and wrappers:: Numeric parameters can be part of .params Collection now, so they are joined together. * Restructure code base (incl. renaming and moving pieces) Let's use the following list to come up with a nice structure for all logical components we have: * Datasets * Sensitivity analyzers (maybe: featurewise measures) * Classifier sensitivities (SVM, SMLR) -> respective classifiers * ANOVA -> mvpa2.measures.anova * Noise perturbation -> -> mvpa2.measures.noisepertrubation * meta-algorithms (splitting) -> mvpa2.measures FeaturewiseMeasure? * Mappers:: mvpa2.mappers (AKA mvpa2.projections mvpa2.transformers) * Along with PCA/ICA mappers, we should add a PLS mapper:: PCA.train(learningdataset) .forward, .backward Package pychem for Debian, see how to use from PyMVPA! ;-) Same for MDP (i.e. use from pymvpa) * Feature selection algorithms * Simple thresholding * RFE * IFS * .mapper conditional attribute mvpa2.featsel (NB no featsel.featsel.featsel more than 4 times!) mvpa2.featsel.rfe mvpa2.featsel.ifs * several base classes with framework infrastructure ( ClassWithCollections, virtual properties, ...) * Transfer error calculation * Cross-validation support * Monte-Carlo-based significance testing * Dataset splitter * Metrics and distance functions * Functions operating on dataset for preprocessing or transformations * Commandline interface support * Functions to generate artificial datasets * Error functions (i.e. for TransferError) * Custom exception types * Python 2.5 copy() aka external code shipped with PyMVPA * Several helpers for data IO * Left-over from the last attempt to establish a generic parameter interface * Detrending (operating on Datasets) * Result 'Transformers' to be used with 'transformer=' kwarg * Debugging and verbosity infrastructure * plus additional helpers, ranging from simple to complex scattered all over the place * Resultant hierarchy: - mvpa + datasets + clfs + measures + featsel * Add ability to add/modify custom attributes to a dataset. * Possibly make NiftiDataset default to float32 when it sees that the data are ints. * Add kernel methods as option to all classifiers, not just SVMs. For example, you should be able to run a predefined or custom kernel on the samples going into SMLR. * TransferError needs to know what type of data to send to any specific ErrorFX. Right now there is only support for predictions and labels, but the area under the ROC and the correlation-based error functions expect to receive the "values" or "probabilities" from a classifier. Just to make this harder, every classifier is different. For example, a ridge regression's predictions are continuous values, whereas for a SVM you need to pass in the probabilities. For binary: 1 value multiclass: 1 value, or N values * In a related issue, the predictions and values ca of the classifiers need to have a consistent format. Currently, SVM returns a list of dictionaries for values and SMLR returns a NumPy_ ndarray. Long and medium term TODOs (aka stuff that has been here forever) ----------------------------------------------------------------- * selected_ids -> implement via MaskMapper? yoh: it might be preferable to manipulate/expose MaskMapper instead of plain list of selected_ids within FeatureSelection classes * unify naming of working/testing * transerror.py for instance uses testdata/trainingdata * rfe.py dataset, testdataset * implement proper cloning of classifiers. untrain() doesn't work in some cases, since we can create somewhat convolved object definitions so it is hard, if not impossible, to get to all used classifiers. See for instance clfswh['SVM/Multiclass+RFE']. We can't get all the way into classifier-based sensitivity analyzer. Thus instead of tracking all the way down in hierarchy, we should finally create proper 'parametrization' handling of classifiers, so we could easily clone basic ones (which might have active SWIG bindings), and top-level ones should implement .clone() themselves. or may be some other way, but things should be done. Or may be via proper implementation of __reduce__ etc * mvpa2.misc.warning may be should use stock python warnings module instead of custom one? * ConfusionBasedError -> InternalError ? * Renaming of the modules transerror.py -> errors.py * SVM: get_sv and get_sv_coef return very 'packed' presentation whenever classifier is multiclass. Thus they have to be unpacked before proper use (unless it is simply a binary classifier). * Regression tests: for instance using sample dataset which we have already, run doc/examples/searchlight.py and store output to validate against. Probably the best would be to create a regression test suite within unit tests which would load the dataset and run various algorithms on it a verify the results against previously obtained (and dumped to the disk) * feature_selector -- may be we should return a tuple (selected_ids, discarded_ids)? Michael: Is there any use case for that? ElementSelector can 'select' and 'discard' already. DO we need both simultaneously? * Non-linear SVM RFE * ParameterOptimizer (might be also OptimizedClassifier which uses parameterOptimizer internally but as the result there is a classifier which automatically optimizes its parameters. It is close in idea to classifier based on RFE) Building a binary installer on MacOS X 10.5 =========================================== A simple way to build a binary installer for Mac OS is bdist_mpkg_. This is a setuptools extension that uses the proper native parts of MacOS to build the installer. However, for PyMVPA there are two problems with bdist_mpkg_: 1. PyMVPA uses distutils not setuptools and 2. current bdist_mpkg_ 0.4.3 does not work for MacOS X 10.5 (Leopard). But both can be solved. Per 1) A simple wrapper script in `tools/mpkg_wrapper.py` will enable the use of setuptools on top of distutils, while keeping the distutils part in a usable state. Per 2) The following patch (against 0.4.3.) makes bdist_mpkg_ compatible with MacOS 10.5. It basically changes the way bdist_mpkg_ determined the GID of the admin group. 10.5 removed the `nidump` command:: diff -rNu bdist_mpkg-0.4.3/bdist_mpkg/tools.py bdist_mpkg-0.4.3.leopard/bdist_mpkg/tools.py --- bdist_mpkg-0.4.3/bdist_mpkg/tools.py 2006-07-09 00:39:00.000000000 -0400 +++ bdist_mpkg-0.4.3.leopard/bdist_mpkg/tools.py 2008-08-21 07:43:35.000000000 -0400 @@ -79,15 +79,12 @@ yield os.path.join(root, fn) def get_gid(name, _cache={}): - if not _cache: - for line in os.popen('/usr/bin/nidump group .'): - fields = line.split(':') - if len(fields) >= 3: - _cache[fields[0]] = int(fields[2]) - try: - return _cache[name] - except KeyError: - raise ValueError('group %s not found' % (name,)) + for line in os.popen("dscl . -read /Groups/" + name + " PrimaryGroupID"): + fields = [f.strip() for f in line.split(':')] + if fields[0] == "PrimaryGroupID": + return fields[1] + + raise ValueError('group %s not found' % (name,)) def find_root(path, base='/'): """ .. _bdist_mpkg: http://undefined.org/python/#bdist_mpkg pymvpa2-2.6.4/doc/source/docoverview.rst000066400000000000000000000032251323370031300202510ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Documentation overview .. _chap_docoverview: ********************** Documentation Overview ********************** For users ========= * :ref:`Installation Instructions ` (where to obtain it, and how to get it running) .. comment to separate the two lists * :ref:`Tutorial ` (hands-on topics) * :ref:`Courses ` (course materials) * :ref:`chap_examples` (batteries included) .. comment to separate the two lists * :ref:`User Manual ` [PDF-manual_] * :ref:`FAQ ` (short answers to common problems) * :ref:`Module Reference ` (comprehensive reference) * :ref:`Bibliography ` (references to interesting literature) * :ref:`Development Changelog ` [:ref:`Movie version `] (see what has changed) .. _PDF-manual: PyMVPA-Manual.pdf .. comment to separate the two lists * :ref:`genindex` (access by keywords) * :ref:`search` (online and offline full-text search) For developers ============== * :ref:`Developer Guidelines ` [PDF-guide_] (information for people contributing code) * :ref:`Achievements of the first PyMVPA Extravaganza ` at Dartmouth College (Nov 30 -- Dec 4 2009) .. _PDF-guide: PyMVPA-DevGuide.pdf pymvpa2-2.6.4/doc/source/examples.rst000066400000000000000000000047071323370031300175410ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: example .. _chap_examples: **************************** Example Analyses and Scripts **************************** Each of the examples in this section is a stand-alone script containing all necessary code to run some analysis. All examples are shipped with PyMVPA and can be found in the `doc/examples/` directory in the source package. This directory might include some more special-interest examples which are not listed here. All examples listed here utilize the Python API of PyMVPA. Additional examples that demonstrate the command line interface are :ref:`also available `. Some examples need to access a sample dataset available in the `data/` directory within the root of the PyMVPA hierarchy, and thus have to be invoked directly from PyMVPA root (e.g. `doc/examples/searchlight.py`). Alternatively, one can download :ref:`a full example dataset `. Preprocessing ============= .. toctree:: examples/projections examples/smellit Analysis strategies and Background ================================== .. toctree:: examples/start_easy examples/hyperplane_demo examples/searchlight_minimal examples/searchlight examples/searchlight_dsm examples/searchlight_surf examples/rsa_fmri examples/sensanas examples/svdclf examples/permutation_test examples/nested_cv examples/match_distribution examples/eventrelated examples/hyperalignment examples/eyemovements Visualization ============= .. toctree:: examples/erp_plot examples/knn_plot examples/pylab_2d examples/topo_plot examples/som examples/mri_plot Integrate with 3rd-party software ================================= .. toctree:: examples/skl_transformer_demo examples/skl_classifier_demo examples/skl_regression_demo examples/mdp_mnist Special interest and Miscellaneous ================================== .. toctree:: examples/kerneldemo examples/cachedkernel examples/curvefitting examples/clfs_examples examples/svm_margin examples/smlr examples/gpr examples/gpr_model_selection0 pymvpa2-2.6.4/doc/source/faq.rst000066400000000000000000000304011323370031300164600ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_faq: ************************** Frequently Asked Questions ************************** General ======= .. index:: Matlab I'm a Matlab user. How hard is learning Python and PyMVPA for me? ----------------------------------------------------------------- If you are coming from Matlab, you will soon notice a lot of similarities between Matlab and Python (besides the huge advantages of Python over Matlab). For an easy transition you might want to have a look at a `basic comparison of Matlab and NumPy`_. .. _basic comparison of Matlab and NumPy: http://www.scipy.org/NumPy_for_Matlab_Users .. index:: MVPA toolbox for Matlab It would be nice to have some guidelines on how to use PyMVPA for users who are already familiar with the `Matlab MVPA toolbox`_. If you are using both packages and could compile a few tips, your contribution would be most welcome. .. _Matlab MVPA toolbox: https://code.google.com/p/princeton-mvpa-toolbox/ A recent paper by :ref:`Jurica and van Leeuwen (2009) ` describes an open-source MATLAB®-to-Python compiler which might be a very useful tool to migrate a substantial amount of Matlab-based source code to Python and therefore also aids the migration of developers from Matlab to the new *"general open-source lingua franca for scientific computation"*. .. index:: optimization It is sloooooow. What can I do? ------------------------------- Have you tried running the Python interpreter with `-O`? PyMVPA provides lots of debug messages with information that is computed in addition to the work that really has to be done. However, if Python is running in *optimized* mode, PyMVPA will not waste time on this and really tries to be fast. If you are already running it optimized, then maybe you are doing something really demanding... I am tired of writing these endless import blocks. Any alternative? ------------------------------------------------------------------- Sure. Instead of individually importing all pieces that are required by a script, you can import them all at once. A simple: >>> import mvpa2.suite as mvpa2 makes everything directly accessible through the mvpa namespace, e.g. `mvpa2.datasets.base.Dataset` becomes `mvpa2.Dataset`. Really lazy people can even do: >>> from mvpa2.suite import * However, as always there is a price to pay for this convenience. In contrast to the individual imports there is some initial performance and memory cost. In the worst case you'll get all external dependencies loaded (e.g. a full R session), just because you have them installed. Therefore, it might be better to limit this use to case where individual key presses matter and use individual imports for production scripts. I feel like I want to contribute something, do you mind? -------------------------------------------------------- Not at all! If you think there is something that is not well explained in the documentation, send us an improvement. If you implemented a new algorithm using PyMVPA that you want to share, please share. If you have an idea for some other improvement (e.g. speed, functionality), but you have no time/cannot/do not want to implement it yourself, please post your idea to the PyMVPA mailing list. .. index:: Git, development I want to develop a new feature for PyMVPA. How can I do it efficiently? ------------------------------------------------------------------------ The best way is to use Git for both, getting the latest code from the repository and preparing the patch. Here is a quick sketch of the workflow. First get the latest code:: git clone git://github.com/PyMVPA/PyMVPA.git This will create a new `PyMVPA` subdirectory, that contains the complete repository. Enter this directory and run `gitk --all` to browse the full history and *all* branches that have ever been published. You can run:: git fetch origin in this directory at any time to get the latest changes from the main repository. Next, you have to decide what you want to base your new feature on. In the simplest case this is the `master` branch (the one that contains the code that will become the next release). Creating a local branch based on the (remote) `master` branch is:: git checkout -b my_hack origin/master Now you are ready to start hacking. You are free to use all powers of Git (and yours, of course). You can do multiple commits, fetch new stuff from the repository, and merge it into your local branch, ... To get a feeling what can be done, take a look `very short description of Git`_ or `a more comprehensive Git tutorial`_. .. _very short description of Git: http://sysmonblog.co.uk/misc/git_by_example/ .. _a more comprehensive Git tutorial: http://www-cs-students.stanford.edu/~blynn/gitmagic/ When you are done with the new feature, you can prepare the patch for inclusion into PyMVPA. If you have done multiple commits you might want to squash them into a single patch containing the new feature. You can do this with `git rebase`. Any recent version of `git rebase` has an option `--interactive`, which allows you to easily pick, squash or even further edit any of the previous commits you have made. Rebase your local branch against the remote branch you started hacking on (`origin/master` in this example):: git rebase --interactive origin/master When you are done, you can generate the final patch file:: git format-patch origin/master Above command will generate a file for each commit in you local branch that is not yet part of `origin/master`. The patch files can then be easily emailed. The manual is quite insufficient. When will you improve it? ----------------------------------------------------------- Writing a manual can be a tricky task if you already know the details and have to imagine what might be the most interesting information for someone who is just starting. If you feel that something is missing which has cost you some time to figure out, please drop us a note and we will add it as soon as possible. If you have developed some code snippets to demonstrate some feature or non-trivial behavior (maybe even trivial ones, which are not as obvious as they should be), please consider sharing this snippet with us and we will put it into the example collection or the manual. Thanks! Data import, export and storage =============================== What file formats are understood by PyMVPA? ------------------------------------------- Please see the :ref:`data_formats` section. What if there is no special file format for some particular datatype? --------------------------------------------------------------------- With the :func:`~mvpa2.base.hdf5.h5save` function, PyMVPA supports storing *any* kind of serializable data into a (compressed) HDF5 file. The facility is particularly useful for storing any number of intermediate analysis results, e.g. for post-processing. Data preprocessing ================== .. index:: invariant features Is there an easy way to remove invariant features from a dataset? ----------------------------------------------------------------- You might have to deal with invariant features in case like an fMRI dataset, where the *brain mask* is slightly larger than the thresholded fMRI timeseries image. Such invariant features (i.e. features with zero variance) are sometime a problem, e.g. they will lead to numerical difficulties when z-scoring the features of a dataset (i.e. division by zero). The `mvpa2.datasets.miscfx` module provides a convenience function `remove_invariant_features()` that strips such features from a dataset. .. index:: Block-averaging How can I do block-averaging of my block-design fMRI dataset? ------------------------------------------------------------- The easiest way is to use a mapper to transform/average the respective samples. Suppose you have a dataset: >>> dataset = normal_feature_dataset() >>> print dataset > Averaging all samples with the same label in each chunk individually is done by applying a mapper to the dataset. >>> from mvpa2.mappers.fx import mean_group_sample >>> >>> m = mean_group_sample(['targets', 'chunks']) >>> mapped_dataset = dataset.get_mapped(m) >>> print mapped_dataset , > `mean_group_sample` creates an `FxMapper` that applies a function to every group of samples in each chunk individually and therefore yields one sample of each label per chunk. Data analysis ============= .. index:: feature selection, feature_ids How do I know which features were finally selected by a classifier doing feature selection? ------------------------------------------------------------------------------------------- All feature selection classifier use a built-in mapper to slice datasets. This mapper can be queried for selected features, or simply used to apply the same feature selection to other datasets. >>> clf = FeatureSelectionClassifier( ... kNN(k=5), ... SensitivityBasedFeatureSelection( ... SMLRWeights(SMLR(lm=1.0), postproc=maxofabs_sample()), ... FixedNElementTailSelector(1, tail='upper', mode='select'))) >>> clf.train(dataset) >>> len(clf.mapper.slicearg) 1 >>> final_dataset = clf.mapper.forward(dataset) >>> print final_dataset > In the above code snippet a kNN classifier is defined, that performs a feature selection step prior training. Features are selected according to the maximum absolute magnitude of the weights of a SMLR classifier trained on the data (same training data that will also go into kNN). Absolute SMLR weights are used for feature selection as large negative values also indicate important information. Finally, the classifier is configured to select the single most important feature (given the SMLR weights). After enabling the `feature_ids` state, the classifier provides the desired information, that can e.g. be applied to generate a stripped dataset for an analysis of the similarity structure. .. index:: sensitivity, cross-validation How do I extract sensitivities from a classifier used within a cross-validation? -------------------------------------------------------------------------------- .. The answer depends on size of the classification problem and the used classifier. If you can afford to keep a copy of the trained classifier for each data split, the most elegant solution is probably a :class:`~mvpa2.clfs.meta.SplitClassifier`... ...BUT no yet In various parts of PyMVPA it is possible to extract information from inside loops via callbacks. To extract sensitivities from inside a cross-validation analysis, without unnecessary retraining of the classifier one only needs to write a corresponding callback function. here is a sketch: >>> sensitivities = [] >>> def store_me(data, node, result): ... sens = node.measure.get_sensitivity_analyzer(force_train=False)(data) ... sensitivities.append(sens) >>> >>> cv = CrossValidation(SMLR(), OddEvenPartitioner(), callback=store_me) >>> merror = cv(dataset) >>> len(sensitivities) 2 >>> sensitivities[0].shape == (len(dataset.uniquetargets), dataset.nfeatures) True First we set up a container (a list) to store the sensitivies for a cross-validation folds. next is the callback: It takes three arguments, as described in the documentation of :class:`~mvpa2.measures.base.RepeatedMeasure`. The second argument is the node that is evaluated inside the loop. For a cross-validation this is a :class:`~mvpa2.measures.base.TransferMeasure` that exposes its internal classifier via the ``measure`` property. The rest is straightforward. We contruct a sensitivity analyzer and pass the input dataset. Finally, we store the returned sensitivities. .. _faq_literal_labels: Can PyMVPA deal with literal class labels? ------------------------------------------ Yes. For all external machine learning libraries that do not support literal labels, PyMVPA will transparently convert them to numerical ones, and also revert this transformation for all output values. pymvpa2-2.6.4/doc/source/featsel.txt000066400000000000000000000277001323370031300173530ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Feature Selection .. _chap_featsel: ***************** Feature Selection ***************** *This section has been originally contributed by James M. Hughes.* It is often the case in machine learning problems that we wish to reduce a feature space of high dimensionality into something more manageable by selecting only those features that contribute most to classification performance. Feature selection methods attempt to achieve this goal in an algorithmic fashion. This section is a complement to Tutorial sections :ref:`chap_tutorial_classifiers` and :ref:`chap_tutorial_sensitivity` aiming to also cover additional topics, such as RFE_. .. index:: FeatureSelectionClassifier PyMVPA's flexible framework allows various feature selection methods to take place within a small block of code. :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` (which in mvpa2 is just a wrapper around :class:`~mvpa2.clfs.meta.MappedClassifier`) extends the basic classifier framework to allow for the use of arbitrary methods of feature selection according to whatever ranking metric, feature selection criteria, and stopping criterion the user chooses for a given application. Examples of the code/classification algorithms presented here can be found in :mod:`~mvpa2.clfs.warehouse`. More formally, a :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` is a meta-classifier. That is, it is not a classifier itself -- it can take any *slave* :class:`~mvpa2.clfs.base.Classifier` and a :class:`~mvpa2.featsel.base.FeatureSelection`. When trained on a dataset, it first performs the `feature_selection`, and then trains the provided *slave* `clf` on those selected features. Externally, however, it looks like a :class:`~mvpa2.clfs.base.Classifier`, in that it fulfills the specialization of the Classifier base class. The following are the relevant arguments to the constructor of such a :class:`~mvpa2.clfs.base.Classifier`: `clf`: :class:`~mvpa2.clfs.base.Classifier` classifier based on which mask classifiers is created `feature_selection`: FeatureSelection_ whatever feature selection is considered best .. index:: FeatureSelection Let us turn out attention to the second argument, FeatureSelection_. As noted above, this feature selection can be arbitrary and should be chosen appropriately for the task at hand. For example, we could perform a one-way ANOVA statistic to select features, then keep only the most important 5% of them. It is crucial to note that, in PyMVPA, the way in which features are selected (in this example by keeping only 5% of them) is wholly independent of the way features are ranked (in this example, by using a one-way ANOVA). Feature selection using this method could be accomplished using the following code (from `mvpa2/clfs/warehouse.py`_): >>> from mvpa2.suite import * >>> fs = SensitivityBasedFeatureSelection( ... OneWayAnova(), ... FractionTailSelector(0.05, mode='select', tail='upper')) A more interesting analysis is one in which we use the weights (hyperplane coefficients) to rank features. This allows us to use the same classifier to train the selected features as we used to select them: .. here we'll put the warehouse.py example of linear svm weights from yarik's email >>> sample_linear_svm = clfswh['linear', 'svm'][0] >>> clf = \ ... FeatureSelectionClassifier( ... sample_linear_svm, ... SensitivityBasedFeatureSelection( ... sample_linear_svm.get_sensitivity_analyzer(postproc=maxofabs_sample()), ... FractionTailSelector(0.05, mode='select', tail='upper')), ... descr="LinSVM on 5%(SVM)") >>> print clf It bears mentioning at this point that caution must be exercised when selecting features. The process of feature selection must be performed on an independent training dataset: it would be incorrect to select features using the entire dataset, re-train a classifier on a subset of the original data (but using only the selected features) and then test on a held-out testing dataset. This results in an obvious positive bias in classification performance (see :ref:`chap_magic_feature_selection`). PyMVPA allows for easy dataset partitioning and splitting, however, so creating independent training and testing datasets is easily accomplished. .. fill in end of last paragraph with suggestions for how to take in an entire original dataset and split it: should we just do a cross-validated outer loop that uses multiple training/testing splits and does RFE on each of these splits? .. index:: recursive feature selection, RFE .. _recursive_feature_elimination: Recursive Feature Elimination ============================= Recursive feature elimination (RFE_, applied to fMRI data using SVM in (:ref:`Hanson et al., 2008 `)) is a technique that falls under the larger umbrella of feature selection. Recursive feature elimination specifically attempts to reduce the number of selected features used for classification in the following way: * An arbitrary feature ranking/weighting (usually classifier's sensitivity/weights) is performed on a subset of the data. * Some amount of those features is either selected or discarded according to a pre-selected rule. * Above steps are repeated until some criterion determined \textit{a priori} (such as classification error) is reached. * One or more classifiers trained only on the final set of selected features are used on a generalization dataset and performance is calculated. PyMVPA's flexible framework allows each of these steps to take place within a small block of code. Flexible parametrization allows to explore quite a variety of possible specific RFE_ recipes. To actually perform recursive feature elimination, we consider two separate analysis scenarios that deal with a pre-selected training dataset: * We split the training dataset into an arbitrary number of independent datasets and perform RFE on each of these; the sensitivity analysis of features is performed independently for each split and features are selected based on those independent measures. * We split the training dataset into an arbitrary number of independent datasets (as before), but we average the feature sensitivities and select which features to prune/select based on that one average measure. .. index:: SplitClassifier We will concentrate on the second approach. The following code can be used to perform such an analysis: >>> rfesvm_split = SplitClassifier(LinearCSVMC(), OddEvenPartitioner()) >>> # design an RFE feature selection to be used with a classifier >>> rfe = RFE(rfesvm_split.get_sensitivity_analyzer( ... # take sensitivities per each split, L2 norm, mean, abs them ... postproc=ChainMapper([ FxMapper('features', l2_normed), ... FxMapper('samples', np.mean), ... FxMapper('samples', np.abs)])), ... # use the error stored in the confusion matrix of split classifier ... ConfusionBasedError(rfesvm_split, confusion_state='stats'), ... # we just extract error from confusion, so need to split dataset ... Repeater(2), ... # select 50% of the best on each step ... fselector=FractionTailSelector( ... 0.50, ... mode='select', tail='upper'), ... # and stop whenever error didn't improve for up to 10 steps ... stopping_criterion=NBackHistoryStopCrit(BestDetector(), 10), ... # we just extract it from existing confusion ... train_pmeasure=False, ... # but we do want to update sensitivities on each step ... update_sensitivity=True, ... enable_ca=['errors']) >>> clf = \ ... FeatureSelectionClassifier( ... LinearCSVMC(), ... # on features selected via RFE ... rfe, ... # custom description ... descr='LinSVM+RFE(splits_avg)' ) >>> # Just an example of application >>> from mvpa2.misc.data_generators import normal_feature_dataset >>> ds = normal_feature_dataset(perlabel=20, nlabels=2, nfeatures=100, snr=0.5) >>> clf.train(ds) >>> # See how errors go down and possibly back up while removing the features >>> print zip(rfe.ca.nfeatures, rfe.ca.errors) # doctest: +SKIP The code above introduces the :class:`~mvpa2.clfs.meta.SplitClassifier`, which in this case is yet another *meta-classifier* that takes in a :class:`~mvpa2.clfs.base.Classifier` (in this case a LinearCSVMC_) and an arbitrary :class:`~mvpa2.generators.partition.Partitioner` object, so that the dataset can be partitioned to be split in whatever way the user desires. Prior to training, the :class:`~mvpa2.clfs.meta.SplitClassifier` splits the training dataset, dedicates a separate classifier to each split, trains each on the training part of the split, and then computes transfer error on the testing part of the split. If a :class:`~mvpa2.clfs.meta.SplitClassifier` instance is later on asked to *predict* some new data, it uses (by default) the MaximalVote_ strategy to derive an answer. A summary about the performance of a :class:`~mvpa2.clfs.meta.SplitClassifier` internally on each split of the training dataset is available by accessing the `stats` conditional attribute. To summarize somewhat, RFE_ is just one method of feature selection, so we use a :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` to facilitate this. To parameterize the RFE process, we refer above to the following: `fmeasure` in this case just the default from a linear C-SVM (the SVM weights), taken as an average over all splits (in accordance with scenario 2 as above) `pmeasure` confusion-based error that relies on the confusion matrices computed during splitting of the dataset by the :class:`~mvpa2.clfs.meta.SplitClassifier`; this is used to provide a value that can be compared against a stopping criterion to stop eliminating features `splitter` defines how to split the dataset into two parts: one for training `fmeasure` and another one for assessing `pmeasure`. In our case we rely on `SplitClassifier` to provide both, so no splitting is necessary so we just repeat dataset twice `fselector` in this example we simply discard the 50% of features deemed least important `update_sensitivity` true to retrain the classifiers each time we eliminate features; should be false if a non-classifier-based sensitivity measure (such as one-way ANOVA) is used As has been shown, recursive feature elimination is an easy-to-implement, flexible, and powerful tool within the PyMVPA framework. Various ranking methods for selecting features have been discussed. Additionally, several analysis scenarios have been presented, along with enough requisite knowledge that the user can plug in whatever classifiers, error metrics, or sensitivity measures are most appropriate for the task at hand. .. _RFE: generated/mvpa2.featsel.rfe.RFE.html .. _MaximalVote: api/mvpa2.clfs.meta.MaximalVote-class.html .. _FeatureSelection: api/mvpa2.featsel.base.FeatureSelection-class.html .. _LinearCSVMC: api/mvpa2.clfs.svm.LinearCSVMC-class.html .. _mvpa2/clfs/warehouse.py: api/mvpa2.clfs.warehouse-pysrc.html .. index:: incremental feature search, IFS .. _incremental_feature_search: Incremental Feature Search ========================== IFS_ (to be written) .. _IFS: api/mvpa2.featsel.ifs.IFS-class.html .. What are the practical differences (besides speed) between RFE and IFS? .. automodule:: mvpa2.measures .. only:: html Related API documentation ========================= .. currentmodule:: mvpa .. autosummary:: :toctree: generated featsel.base featsel.ifs featsel.rfe featsel.helpers pymvpa2-2.6.4/doc/source/glossary.rst000066400000000000000000000224451323370031300175650ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_glossary: ******** Glossary ******** The literature concerning the application of multivariate pattern analysis procedures to neuro-scientific datasets contains a lot of specific terms to refer to procedures or types of data, that are of particular importance. Unfortunately, sometimes various terms refer to the same construct and even worse these terms do not necessarily match the terminology used in the machine learning literature. The following glossary is an attempt to map the various terms found in the literature to the terminology used in this manual. .. glossary:: Block-averaging Averaging all samples recorded during a block of continuous stimulation in a block-design :term:`fMRI` experiment. The rationale behind this technique is, that averaging might lead to an improved signal-to-noise ratio. However, averaging further decreases the number of samples in a dataset, which is already very low in typical fMRI datasets, especially in comparison to the number of features/voxels. Block-averaging might nevertheless improve the classifier performance, *if* it indeed improves signal-to-noise *and* the respective classifier benefits more from few high-quality samples than from a larger set of lower-quality samples. Classifier A model that maps an arbitrary feature space into a discrete set of labels. Meta-classifier An internal to PyMVPA term to describe a classifier which is usually a proxy to the main classifier which it wraps to provide additional data preprocessing (e.g. feature selection) before actually training and/or testing of the wrapped classifier. Cross-validation A technique to assess the :term:`generalization` of the constructed model by the analysis of accuracy of the model predictions on presumably independent dataset. Chunk A chunk is a group of samples. In PyMVPA chunks define *independent* groups of samples (note: the groups are independent from each other, not the samples in each particular group). This information is important in the context of a cross-validation procedure, as it is required to measure the classifier performance on independent test datasets to be able to compute unbiased generalization estimates. This is of particular importance in the case of fMRI data, where two successively recorded volumes cannot be considered as independent measurements. This is due to the significant temporal forward contamination of the hemodynamic response whose correlate is measured by the MR scanner. Conditional Attribute An attribute of a :term:`learner` which might be enabled or disabled, grouped within ``.ca`` attributes collection. If enabled, it might cause additional computation and memory consumption, so the "heaviest" conditional attributes are disabled by default. Confusion Matrix Visualization of the :term:`generalization` performance of a :term:`classifier`. Each row of the matrix represents the instances in a predicted class, while each column represents the :term:`sample`\s in an actual (target) class. Each cell provides a count of how many :term:`sample`\s of the target class were (mis)classifier into the corresponding class. In PyMVPA instances of :class:`~mvpa2.clfs.transerror.ConfusionMatrix` class provide not only confusion matrix itself but a bulk of additional statistics. Dataset In PyMVPA a dataset is the combination of samples, and their :term:`Dataset attribute`\s. Dataset attribute An arbitrary auxiliary information that is stored in a dataset. Decoding This term is usually used to refer to the application of machine learning or pattern recognition techniques to brainimaging datasets, and therefore is another term for :term:`MVPA`. Sometimes also 'brain-reading' is used as another alternative. Epoch Sometimes used to refer to a group of successively acquired samples, and, thus, related to a :term:`chunk`. Exemplar Another term for :term:`sample`. Feature A variable that represents a dimension in a :term:`dataset`. This might be the output of a single sensor, such as a voxel, or a refined measure reflecting specific aspect of data, such as a specific spectral component. Feature attribute Analogous to a :term:`sample attribute`, this is a per-feature vector of auxiliary information that is stored in a dataset. Feature Selection A technique that targets detection of features relevant to a given problem, so that their selection improves generalization of the constructed model. fMRI This acronym stands for *functional magnetic resonance imaging*. Generalization An ability of a model to perform reliably well on any novel data in the given domain. Label A label is a special case of a :term:`target` for specifying discrete categories of :term:`sample`\s in a classification analyses. Learner A model that upon training given some data (:term:`sample`\s and may be :term:`target`\s) develops an ability to map an arbitrary :term:`feature` space of :term:`sample`\s into another space. If :term:`target`\s were provided, such learner is called :term:`supervised` and tries to achieve mapping into the space of :term:`target`\s. If the target space defined by a set of discrete set of labels, such learner is called a :term:`classifier`. Machine Learning A field of Computer Science that aims at constructing methods, such as classifiers, to integrate available knowledge extracted from existing data. MVPA This term originally stems from the authors of the Matlab MVPA toolbox, and in that context stands for *multi-voxel pattern analysis* (see :ref:`Norman et al., 2006 `). PyMVPA obviously adopted this acronym. However, as PyMVPA is explicitly designed to operate on non-fMRI data as well, the 'voxel' term is not appropriate and therefore MVPA in this context stands for the more general term *multivariate pattern analysis*. Neural Data Modality A reflection of neural activity collected using some available instrumental method (e.g., EEG, :term:`fMRI`). Processing object Most objects dealing with data are implemented as processing objects. Such objects are instantiated *once*, with all appropriate parameters configured as desired. When created, they can be used multiple times by simply calling them with new data. Sample A sample is a vector with observations for all :term:`feature` variables. Sample attribute A per-sample vector of auxiliary information that is stored in a dataset. This could, for example, be a vector identifying specific :term:`chunk`\ s of samples. Sensitivity A sensitivity is a score assigned to each :term:`feature` with respect to its impact on the performance of the learner. So, for a classifier, sensitivity of a feature might describe its influence on :term:`generalization` performance of the classifier. In case of linear classifiers, it could simply be coefficients of separating hyperplane given by :term:`weight vector`. There exist additional scores which are similar to sensitivities in terms of indicating the "importance" of a particular feature -- examples are a univariate :ref:`anova` score or a :ref:`noise_perturbation` measure. Sensitivity Map A vector of several sensitivity scores -- one for each feature in a dataset. Spatial Discrimination Map (SDM) This is another term for a :term:`sensitivity map`, used in e.g. :ref:`Wang et al. (2007) `. Statistical Discrimination Map (SDM) This is another term for a :term:`sensitivity map`, used in e.g. :ref:`Sato et al. (2008) `, where instead of raw sensitivity the result of significance testing is assigned. Statistical Learning A field of science related to :term:`machine learning` which aims at exploiting statistical properties of data to construct robust models, and to assess their convergence and :term:`generalization` performances. Supervised Is a :term:`learner` which obtains both :term:`sample`\s data and :term:`target`\s within a :term:`training dataset`. Target A target associates each :term:`sample` in the :term:`dataset` with a certain category, experimental condition or, in case of a regression problem, with some metric variable. In case of supervised learning algorithm targets define the model to be trained, and provide the "ground truth" for assessing the model's :term:`generalization` performance. Time-compression This usually refers to the :term:`block-averaging` of samples from a block-design fMRI dataset. Training Dataset :term:`Dataset` which is used for training of the :term:`learner`. Testing Dataset :term:`Dataset` which is used to assess the :term:`generalization` of the :term:`learner`. Weight Vector See :term:`Sensitivity`. pymvpa2-2.6.4/doc/source/history.rst000066400000000000000000000035121323370031300174150ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_code_swarm: .. index:: code swarm ****************** PyMVPA - The Movie ****************** If you are interested in the evolution of PyMVPA you might also be interested in the following movie. It is a visualization of the activity in the PyMVPA source repository since it first has been published in May 2007. The movie is generated with tools from the `code_swarm project`_. .. _code_swarm project: http://vis.cs.ucdavis.edu/~ogawa/codeswarm/ In the movie, each file in the PyMVPA sources that is changed appears as a particle on the screen centered around the name of the developer that contributed this change. The colors indicate which part of PyMVPA the respective file belongs to (see the legend on the left). The animation is regenerated every couple of weeks to include the more recent commits. .. raw:: html Play video Music by `Peter Nalitch`_. Many thanks for his special permission to use his song *Gitar* (© Peter Nalitch) for our project history. Please be sure to also watch the `outstanding video clip`_! .. _Peter Nalitch: http://peternalitch.ru .. _outstanding video clip: http://www.youtube.com/watch?v=AOzkN8dHnjk pymvpa2-2.6.4/doc/source/howtocite.txt000066400000000000000000000064561323370031300177420ustar00rootroot00000000000000.. -*- mode: rst -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: Below is a list of publications about PyMVPA that have been published so far (in chronological order). If you use PyMVPA in your research please cite the one that matches best, and email use the reference so we could add it to our :ref:`chap_whoisusingit` page. Peer-reviewed publications -------------------------- **Hanke, M., Halchenko, Y. O., Sederberg, P. B., Hanson, S. J., Haxby, J. V. & Pollmann, S.** (2009). `PyMVPA: A Python toolbox for multivariate pattern analysis of fMRI data`_. Neuroinformatics, 7, 37-53. First paper introducing fMRI data analysis with PyMVPA. .. _PyMVPA\: A Python toolbox for multivariate pattern analysis of fMRI data: http://dx.doi.org/10.1007/s12021-008-9041-y **Hanke, M., Halchenko, Y. O., Sederberg, P. B., Olivetti, E., Fründ, I., Rieger, J. W., Herrmann, C. S., Haxby, J. V., Hanson, S. J. and Pollmann, S.** (2009) `PyMVPA\: a unifying approach to the analysis of neuroscientific data`_. Frontiers in Neuroinformatics, 3:3. Demonstration of PyMVPA capabilities concerning multi-modal or modality-agnostic data analysis. .. _PyMVPA\: a unifying approach to the analysis of neuroscientific data: http://dx.doi.org/10.3389/neuro.11.003.2009 **Hanke, M., Halchenko, Y. O., Haxby, J. V., and Pollmann, S.** (2010) `Statistical learning analysis in neuroscience: aiming for transparency `_. Frontiers in Neuroscience. 4,1: 38-43 Focused review article emphasizing the role of transparency to facilitate adoption and evaluation of statistical learning techniques in neuroimaging research. **Haxby, J. V., Guntupalli, J. S., Connolly, A. C., Halchenko, Y. O., Conroy, B. R., Gobbini, M. I., Hanke, M. & Ramadge, P. J.** (2011). `A Common, High-Dimensional Model of the Representational Space in Human Ventral Temporal Cortex `_. *Neuron*, *72*, 404–416 The :class:`~mvpa2.algorithms.hyperalignment.Hyperalignment` paper demonstrating its application to fMRI data in rich perceptual (movie) and categorization (monkey-dog) experiments. .. `Data ` used for the analyses in .. the paper and `PyMVPA analysis script `__ .. are available Posters ------- **Hanke, M., Halchenko, Y. O., Sederberg, P. B., Hanson, S. J., Haxby, J. V. & Pollmann, S.** (2008). `PyMVPA: A Python toolbox for machine-learning based data analysis.`_ Poster emphasizing PyMVPA's capabilities concerning multi-modal data analysis at the annual meeting of the Society for Neuroscience, Washington, 2008. **Hanke, M., Halchenko, Y. O., Sederberg, P. B., Hanson, S. J., Haxby, J. V. & Pollmann, S.** (2008). `PyMVPA: A Python toolbox for classifier-based data analysis.`_ First presentation of PyMVPA at the conference *Psychologie und Gehirn* [Psychology and Brain], Magdeburg_, 2008. This poster received the poster prize of the *German Society for Psychophysiology and its Application*. .. _PyMVPA\: A Python toolbox for classifier-based data analysis.: http://www.pymvpa.org/files/PyMVPA_PuG2008.pdf .. _PyMVPA\: A Python toolbox for machine-learning based data analysis.: http://www.pymvpa.org/files/PyMVPA_SfN2008.pdf .. _Magdeburg: http://www.magdeburg.de/ pymvpa2-2.6.4/doc/source/index.rst000066400000000000000000000134721323370031300170310ustar00rootroot00000000000000.. -*- mode: rst -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: PyMVPA is a Python_ package intended to ease statistical learning analyses of large datasets. It offers an extensible framework with a high-level interface to a broad range of algorithms for classification, regression, feature selection, data import and export. It is designed to integrate well with related software packages, such as scikit-learn_, shogun_, MDP_, etc. While it is not limited to the neuroimaging domain, it is eminently suited for such datasets. PyMVPA is free software and requires nothing but free-software to run. PyMVPA stands for **M**\ ulti\ **V**\ ariate **P**\ attern **A**\ nalysis (:term:`MVPA`) in **Py**\ thon. .. _Python: http://www.python.org .. raw:: html
    Installation Tutorial Documentation Support
    Installation Tutorial Documentation Support
    News ==== .. raw:: html .. _twitter: http://twitter.com/pymvpa Contributing ============ We welcome all kinds of contributions, and you do **not need to be a programmer** to contribute! If you have some feature in mind that is missing, some example use case that you want to share, you spotted a typo in the documentation, or you have an idea how to improve the user experience all together -- do not hesitate and :ref:`contact us `. We will then figure out how your contribution can be best incorporated. Any contributor will be acknowledged and will appear in the list of people who have helped to develop PyMVPA on the front-page of the `pymvpa.org `_. License ======= PyMVPA is free-software (beer and speech) and covered by the `MIT License`_. This applies to all source code, documentation, examples and snippets inside the source distribution (including this website). Please see the :ref:`appendix of the manual ` for the copyright statement and the full text of the license. .. _MIT License: http://www.opensource.org/licenses/mit-license.php .. _appendix of the manual: manual.html#license How to cite PyMVPA ================== .. include:: howtocite.txt .. contributors.txt also would include link_names.txt .. include:: contributors.txt Similar or Related Projects =========================== .. in alphanumerical order There are a number other projects with -- in comparison to PyMVPA -- partially overlapping features or a similar purpose. Some of their functionality is already available through and within the PyMVPA framework. *Only* free software projects are listed here. * 3dsvm_: AFNI_ plugin to apply support vector machine classifiers to fMRI data. * CoSMoMVPA_: Matlab/Octave toolbox designed after PyMVPA and with good interoperability with PyMVPA. * Elefant_: Efficient Learning, Large-scale Inference, and Optimization Toolkit. Multi-purpose open source library for machine learning. * MDP_: Python data processing framework. MDP_ provides various algorithms. *PyMVPA makes use of MDP's PCA and ICA implementations.* * `MVPA Toolbox`_: Matlab-based toolbox to facilitate multi-voxel pattern analysis of fMRI neuroimaging data. * nilearn_: `scikit-learn`_ based Python module for fast and easy statistical learning on NeuroImaging data. * NiPy_: Project with growing functionality to analyze brain imaging data. NiPy_ is heavily connected to SciPy and lots of functionality developed within NiPy becomes part of SciPy. * OpenMEEG_: Software package for low-frequency bio-electromagnetism solving forward problems in the field of EEG and MEG. OpenMEEG includes Python bindings. * Orange_: Powerful general-purpose data mining software. Orange also has Python bindings. * PROBID_: Matlab-based GUI pattern recognition toolbox for MRI data. * `PyMGH/PyFSIO`_: Python IO library to for FreeSurfer's `.mgh` data format. * PyML_: Interactive object oriented framework for machine learning written in Python. PyML focuses on SVMs and other kernel methods. * NiBabel_: Read and write NIfTI images from within Python. *PyMVPA uses NiBabel to access MRI datasets.* * `scikit-learn`_: Python module integrating classic machine learning algorithms in the tightly-knit world of scientific Python packages. * Shogun_: Comprehensive machine learning toolbox with bindings to various programming languages. *PyMVPA can optionally use implementations of Support Vector Machines from Shogun.* .. toctree:: :hidden: manual mvpa_guidelines release_notes_0.5 release_notes_0.6 workshops/2009-fall pymvpa2-2.6.4/doc/source/installation.rst000066400000000000000000000641741323370031300204300ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_installation: ************ Installation ************ This section covers the necessary steps to install and run PyMVPA. It contains a comprehensive list of software dependencies, as well as recommendation for additional software packages that further enhance the functionality provided by PyMVPA. If you don't want to read this whole document, and you are on a Debian-based system, such as Ubuntu, all you need to know it:: sudo aptitude install python-mvpa2 .. _requirements: Dependencies ============ PyMVPA is designed to be able to easily interface with various libraries and computing environments. However, most of these external software packages only enhance functionality built into PyMVPA or add a different flavor of some algorithm (e.g. yet another classifier). In fact, the framework itself has only two mandatory dependencies (see below), which are known to be very portable. It is therefore possible to run PyMVPA on a wide variety of platforms and operating systems, ranging from computing mainframes, to regular desktop machines. It even runs on a cell phone. .. image:: pics/pymvpa_on_phone.jpg :alt: Picture showing PyMVPA running on an OpenMoko This picture shows PyMVPA on an OpenMoko_ cell phone --- running the `pylab_2d.py` example in an IPython_ session. .. note:: In general a phone might not be the optimal environment for data analysis with PyMVPA, but PyMVPA itself does not restrict the user's choice of the platform to the usual suspects. (A `highres image`_ is available, if you want to double check. ;-) .. _OpenMoko: http://www.openmoko.com .. _highres image: http://www.onerussian.com/php/album.php?page=Photos/Geek/20081015FR/&image=img_1107.jpg .. index:: required software, NumPy Must Have --------- The following software packages are required or PyMVPA will not work at all. Python_ 2.x These days there should be little reason to use anything older than Python 2.7. However, if you are on a tight budget 2.6, or even 2.5 should work -- maybe even 2.4 with (at least) ctypes_ 1.0.1. Python 3.X should work too, but none of the core developers are using it in production (yet), hence it should be considered as less tested. NumPy_ PyMVPA makes extensive use of NumPy to store and handle data. There is no way around it. .. _Python: http://www.python.org .. _NumPy: http://numpy.scipy.org/ .. _ctypes: http://python.net/crew/theller/ctypes/ .. index:: recommended software, SciPy, NiBabel, Shogun, R, RPy Strong Recommendations ---------------------- While most parts of PyMVPA will work without any additional software, some functionality makes use (or can optionally make use) of external software packages. It is strongly recommended to install these packages as well, if they are available on a particular target platform. SciPy_: linear algebra, standard distributions, signal processing, data IO SciPy_ is mainly used by the statistical testing, and some data transformation algorithms. However, the SciPy package provides a lot of functionality that might be relevant in the context of PyMVPA, e.g. IO support for Matlab .mat files. NiBabel_: access to NIfTI and other neuroimaging file formats PyMVPA provides a convenient wrapper for datasets stored in the NIfTI format, that internally uses NiBabel. If you don't need that, NiBabel is not necessary, but otherwise it makes it really easy to read from and write to NIfTI images. All dataset types dealing with NIfTI data will not be available without a functional NiBabel installation. .. _SciPy: http://www.scipy.org/ .. _NiBabel: http://nipy.sourceforge.net/nibabel/ .. index:: suggested software, IPython, FSL, AFNI, LIBSVM, matplotlib, hlcuster Suggestions ----------- The following list of software is, again, not required by PyMVPA, but these packages provide additional functionality (e.g. classifiers implemented in external libraries) and might make life a lot easier by leading to more efficiency when using PyMVPA. IPython_: frontend If you want to use PyMVPA interactively it is strongly recommend to use IPython_. If you think: *"Oh no, not another one, I already have to learn about PyMVPA."* please invest a tiny bit of time to watch the `Five Minutes with IPython`_ screencasts at showmedo.com_, so at least you know what you are missing. In the context of cluster computing IPython_ is also the way to go. FSL_: preprocessing and analysis of (f)MRI data PyMVPA provides some simple bindings to FSL output and filetypes (e.g. EV files, estimated motion correct parameters and MELODIC output directories). This makes it fairly easy to e.g. use FSL's implementation of ICA for data reduction and proceed with analyzing the estimated ICs in PyMVPA. AFNI_: preprocessing and analysis of (f)MRI data Similar to FSL, AFNI is a free package for processing (f)MRI data. Though its primary data file format is BRIK files, it has the ability to read and write NIFTI files, which easily integrate with PyMVPA. scikit-learn_: large parts of its functionality PyMVPA can make use of pretty much any algorithm that implements the transformer or estimator and predictor API. Shogun_: various classifiers PyMVPA currently can make use of several SVM implementations of the Shogun_ toolbox. It requires the modular python interface of Shogun to be installed. Any version from 0.6 on should work. LIBSVM_: fast SVM classifier Only the C library is required and none of the Python bindings that are available on the upstream website. PyMVPA provides its own Python wrapper for LIBSVM which is a fork based on the one included in the LIBSVM package. Additionally the upstream LIBSVM distribution causes flooding of the console with a huge amount of debugging messages. Please see the `Building from Source`_ section for information on how to build an alternative version that does not have this problem. Since version 0.2.2, PyMVPA contains a minimal copy of LIBSVM in its source distribution. R_ and RPy_: more classifiers Currently PyMVPA provides wrappers around LARS, ElasticNet, and GLMNet R libraries available from CRAN_. On Debian-based machines you might like to install r-cran-* packages from cran2deb_ repository. matplotlib_: Matlab-style plotting library for Python This is a very powerful plotting library that allows you to export into a large variety of raster and vector formats (e.g. SVG), and thus, is ideal to produce publication quality figures. The examples shipped with PyMVPA show a number of possibilities how to use matplotlib for data visualization. .. _scikit-learn: http://scikit-learn.org .. _Shogun: http://www.shogun-toolbox.org .. _LIBSVM: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ .. _matplotlib: http://matplotlib.sourceforge.net/ .. _IPython: http://ipython.scipy.org .. _Five Minutes with IPython: http://showmedo.com/videos/series?name=CnluURUTV .. _showmedo.com: http://showmedo.com .. _FSL: http://www.fmrib.ox.ac.uk/fsl/ .. _AFNI: http://afni.nimh.nih.gov/afni/ .. _RPy: http://rpy.sourceforge.net .. _R: http://www.r-project.org .. _cran2deb: http://debian.cran.r-project.org .. _CRAN: http://cran.r-project.org .. index:: installation, binary packages .. _obtaining: Installing Binary Packages ========================== .. Don't forget to mention that the only reasonable way to use this piece of software (like every other piece) is under Debian! Also mention that Ubuntu is no excuse ;-) The easiest way to obtain PyMVPA is to use pre-built binary packages. Currently we provide such packages for the Debian/Ubuntu family, additional installers are provided by contributors (see below). If there are no binary packages for your operating system or platform yet, you can build PyMVPA from source. Please refer to `Building from Source`_ for more information. .. note:: If you have difficulties deploying PyMVPA or its dependencies, we recommend that you try the `NeuroDebian virtual machine`_. With this virtual appliance you'll be able to deploy a fully functional computing environment, including PyMVPA, in a matter of minutes on any operating system. .. _NeuroDebian virtual machine: http://neuro.debian.net/vm.html .. index:: binary packages .. index:: Debian .. _install_debian: Debian ------ PyMVPA is available as an `official Debian package`_ (``python-mvpa2`` or ``python-mvpa`` for the previous stable release). The documentation is provided by the optional `python-mvpa2-doc` package. To install PyMVPA simply do:: sudo aptitude install python-mvpa2 .. _official Debian package: http://packages.debian.org/python-mvpa2 .. index:: backports, Debian, Ubuntu .. _install_debianbackports: Debian backports and inofficial Ubuntu packages ----------------------------------------------- Backports for the current Debian stable release and binary packages for recent Ubuntu releases are available from a `NeuroDebian Repository`_. Please refer to NeuroDebian for installation instructions. .. _NeuroDebian Repository: http://neuro.debian.net .. index:: Windows, Windows installer .. _install_win: Windows ------- There are a few Python distributions for Windows. In theory all of them should work equally well. Christoph Gohlke runs a `repository of unofficial Windows binaries`_ for various scientific Python packages, including PyMVPA, that could ease deploying a PyMVPA installation on Windows significantly. .. _repository of unofficial Windows binaries: http://www.lfd.uci.edu/~gohlke/pythonlibs/ First you need to download and install Python. Use the Python installer for this job. Yo do not need to install the Python test suite and utility scripts. From now on we will assume that Python was installed in `C:\\Python25` and that this directory has been added to the `PATH` environment variable. For a minimal installation of PyMVPA the only thing you need in addition is NumPy_. Download a matching NumPy windows installer for your Python version (in this case 2.5) from the `SciPy download page`_ and install it. Now, you can use the PyMVPA windows installer to install PyMVPA on your system. If done, verify that everything went fine by opening a command prompt and start Python by typing `python` and hit enter. Now you should see the Python prompt. Import the mvpa module, which should cause no error messages. >>> import mvpa2 >>> Although you have a working installation already, most likely you want to install some additional software. First and foremost install SciPy_ -- download from the same page where you also got the NumPy installer. If you want to use PyMVPA to analyze fMRI datasets, you probably also want to install NiBabel_. Download the corresponding installer from the website of the and install it. Verify that it works by importing the `nibabel` module in Python. >>> import nibabel >>> Another piece of software you might want to install is matplotlib_. The project website offers a binary installer for Windows. If you are using the standard Python distribution and matplotlib complains about a missing `msvcp71.dll`, be sure to obey the installation instructions for Windows on the matplotlib website. With this set of packages you should be able to run most of the PyMVPA examples which are shipped with the source code in the `doc/examples` directory. .. _SciPy download page: http://scipy.org/Download .. _GnuWin32 project: http://gnuwin32.sourceforge.net/ .. index:: MacOS X .. _install_macos: MacOS X ------- The easiest installation method for OSX is via MacPorts_. MacPorts is a package management system for MacOS, which is in some respects very similiar to RPM or APT which are used in most GNU/Linux distributions. However, rather than installing binary packages, it compiles software from source on the target machine. *The MacPort of PyMVPA is kindly maintained by James Kyle .* .. note:: MacPorts_ needs `XCode developer tools`_ to be installed first, as the operating system does not come with a compiler by default. .. _XCode developer tools: http://developer.apple.com/tools/xcode/ .. _MacPorts: http://www.macports.org In the context of PyMVPA MacPorts is much easier to handle than the previously available PyMVPA installer for Macs (which was discontinued with PyMVPA 0.4.1). Although the initial overhead to setup MacPorts on a machine is higher than simply installing PyMVPA using the former installer, MacPorts saves the user a significant amount of time (in the long run). This is due to the fact that this framework will not only take care of updating a PyMVPA installation automatically whenever a new release is available. It will also provide many of the optional dependencies of PyMVPA (e.g. NumPy_, SciPy_, matplotlib_, IPython_, Shogun_, and pywt_) in the same environment and therefore abolishes the need to manually check dozens of websites for updates and deal with an unbelievable number of different installation methods. .. _Shogun: http://www.shogun-toolbox.org .. _pywt: http://www.pybytes.com/pywavelets MacPorts provides a universal binary package installer that is downloadable at http://www.macports.org/install.php After downloading, simply mount the dmg image and double click `MacPorts.pkg`. By default, MacPorts installs to `/opt/local`. After the installation is completed, you must ensure that your paths are set up correctly in order to access the programs and utilities installed by MacPorts. For exhaustive details on editing shell paths please see: http://www.debian.org/doc/manuals/reference/ch01.en.html#_customizing_bash A typical `.bash_profile` set up for MacPorts might look like:: > export PATH=/opt/local/bin:/opt/local/sbin:$PATH Be sure to source your .bash_profile or close Terminal.app and reopen it for these changes to take effect. Once MacPorts is installed and your environment is properly configured, PyMVPA is installed using a single command:: > $ sudo port install py27-pymvpa +scipy +nibabel +hcluster +libsvm > +matplotlib +pywavelet The `+foo` arguments add support within PyMVPA for these packages. For a full list of available 3rd party packages please see:: > $ port variants py27-pymvpa If this is your first time using MacPorts Python 2.7 will be automatically installed for you. However, an additional step might be needed:: $ sudo port select python python27-apple MacPorts has the ability of installing several Python versions at a time, the `port select python` command ensures that the default Python (located at `/opt/local/bin/python`) points to your preferred version. Upon success, open a terminal window and start Python by typing `python` and hit return. Now try to import the PyMVPA module by doing: >>> import mvpa2 >>> If no error messages appear, you have succesfully installed PyMVPA. .. index:: OpenSUSE .. _install_rpm: .. RPM-based GNU/Linux Distributions --------------------------------- To install one of the RPM packages provided through the `OpenSUSE Build Service`_, first download it from the `OpenSUSE software website`_. .. note:: This site does not only offer OpenSUSE packages, but also binaries for other distributions, including: CentOS 5, Fedora 9-12, RedHat Enterprise Linux 5, OpenSUSE 11.0 up to 11.2. Once downloaded, open a console and invoke (the example command refers to PyMVPA 0.4.4):: rpm -i python-mvpa-0.4.4-1.1.i386.rpm The OpenSUSE website also offers `1-click-installations`_ for distributions supporting it. A more convenient way to install PyMVPA and automatically receive software updates is to included one of the RPM-package repositories in the system's package management configuration. For e.g. OpenSUSE 11.0, simply use Yast to add another repository, using the following URL: http://download.opensuse.org/repositories/home:/hankem:/suse/openSUSE_11.0/ For other distributions use the respective package managers (e.g. Yum) to setup the repository URL. The repositories include all core dependencies of PyMVPA (usually Numpy and NiBabel), if they are not available from other repositories of the respective distribution. There are two different repository groups, one for `SUSE-related packages`_ and another one for `Fedora, Redhat and CentOS-related packages`_. Please note that on Redhat and CentOS systems you will also have to enable the `Extra Packages for Enterprise Linux (EPEL)`_ repository. .. _Extra Packages for Enterprise Linux (EPEL): http://fedoraproject.org/wiki/EPEL .. _SUSE-related packages: http://download.opensuse.org/repositories/home:/hankem:/suse/ .. _Fedora, Redhat and CentOS-related packages: http://download.opensuse.org/repositories/home://hankem://rh5/ .. _1-click-installations: http://software.opensuse.org/search?baseproject=ALL&p=1&q=python-mvpa .. _OpenSUSE software website: http://software.opensuse.org/search?baseproject=ALL&p=1&q=python-mvpa .. _OpenSUSE Build Service: https://build.opensuse.org/ .. _buildfromsource: .. index:: building from source, source package, MacOS X Building from Source ==================== If a binary package for your platform and operating system is provided, you do not have to build the packages on your own -- use the corresponding pre-build packages instead. However, if there are no binary packages for your system, or you want to try a new (unreleased) version of PyMVPA, you can easily build PyMVPA on your own. Any recent GNU/Linux distribution should be capable of doing it (e.g. RedHat). Additionally, building PyMVPA also works on Mac OS X and Windows systems. .. _PyMVPA project website: http://www.pymvpa.org .. index:: releases, development snapshot Obtain the Sources ------------------ .. index:: Git, Git repository Get the sources by cloning the Git_ repository on GitHub_: :command:`git clone git://github.com/PyMVPA/PyMVPA.git` After a short while you will have a `PyMVPA` directory below your current working directory, that contains the PyMVPA repository. If you are not familiar with Git or GitHub, visit the `GitHub help pages`_ for more information and tutorials. .. _Git: http://git.or.cz/ .. _GitHub: https://github.com/PyMVPA/PyMVPA .. _GitHub help pages: https://help.github.com .. index:: build instructions Build it (General instructions) ------------------------------- In general you can build PyMVPA like any other Python module (using the Python *distutils*). This general method will be outline first. However, in some situations or on some platforms alternative ways of building PyMVPA might be more convenient -- alternative approaches are listed at the end of this section. To build PyMVPA from source simply enter the root of the source tree (obtained by either extracting the source package or cloning the repository) and run: :command:`python setup.py build_ext` If you are using a Python version older than 2.5, you need to have python-ctypes (>= 1.0.1) installed to be able to do this. Now, you are ready to install the package. Do this by invoking: :command:`python setup.py install` Most likely you need superuser privileges for this step. If you want to install in a non-standard location, please take a look at the :command:`--prefix` option. You also might want to consider :command:`--optimize`. Now you should be ready to use PyMVPA on your system. .. index:: LIBSVM, SWIG Build with enabled LIBSVM bindings ---------------------------------- From the 0.2 release of PyMVPA on, the LIBSVM_ classifier extension is not build by default anymore. However, it is still shipped with PyMVPA and can be enabled at build time. To be able to do this you need to have SWIG_ installed on your system. If you do not have a proper LIBSVM_ package, you can build the library from the copy of the code that is shipped with PyMVPA. To do this, simply invoke:: make 3rd Now build PyMVPA as described above. The build script will automatically detect that LIBSVM_ is available and builds the LIBSVM wrapper module for you. If your system provides an appropriate LIBSVM_ version, you need to have the development files (headers and library) installed. Depending on where you installed them, it might be necessary to specify the full path to that location with the `--include-dirs`, `--library-dirs` and `--swig` options. Now add the '--with-libsvm' flag when building PyMVPA:: python setup.py build_ext --with-libsvm \ [ -I -L ] The installation procedure is equivalent to the build setup without LIBSVM_, except that the '--with--libsvm' flag also has to be set when installing:: python setup.py install --with-libsvm .. _SWIG: http://www.swig.org/ .. index:: alternative build procedure Alternative build procedure --------------------------- Alternatively, if you are doing development in PyMVPA or if you simply do not want (or do not have sufficient permissions to do so) to install PyMVPA system wide, you can simply call `make` (same as `make build`) in the top-level directory of the source tree to build PyMVPA. Then extend or define your environment variable `PYTHONPATH` to point to the root of PyMVPA sources (i.e. where you invoked all previous commands from): export PYTHONPATH=$PWD .. note:: This procedure also always builds the LIBSVM_ extension and therefore also requires LIBSVM and SWIG to be available. .. index:: building on Windows .. _build_win: Windows ------- On Windows the whole situation is a little more tricky, as the system doesn't come with a compiler by default. Nevertheless, it is possible to build PyMVPA from source. One could use the Microsoft compiler that comes with Visual Studio to do it, but as this is commercial software and not everybody has access to it, we will outline a way that exclusively involves free and open source software. First one needs to install the packages required to run PyMVPA as explained :ref:`above `. Next we need to obtain and install the MinGW compiler collection. Download the *Automated MinGW Installer* from the `MinGW project website`_. Now, run it and choose to install the `current` package. You will need the *MinGW base tools*, *g++* compiler and *MinGW Make*. For the remaining parts of the section, we will assume that MinGW got installed in `C:\\MinGW` and the directory `C:\\MinGW\\bin` has been added to the `PATH` environment variable, to be able to easily access all MinGW tools. .. note:: It is not necessary to install `MSYS`_ to build PyMVPA, but it might handy to have it. If you want to build the LIBSVM wrapper for PyMVPA, you also need to download SWIG_ (actually *swigwin*, the distribution for Windows). SWIG does not have to be installed, just unzip the file you downloaded and add the root directory of the extracted sources to the `PATH` environment variable (make sure that this directory contains `swig.exe`, if not, you haven't downloaded `swigwin`). PyMVPA comes with a specific build setup configuration for Windows -- `setup.cfg.win` in the root of the source tarball. Please rename this file to `setup.cfg`. This is only necessary, if you have *not* configured your Python distutils installation to always use MinGW instead of the Microsoft compilers. Now, we are ready to build PyMVPA. The easiest way to do this, is to make use of the `Makefile.win` that is shipped with PyMVPA to build a binary installer package (`.exe`). Make sure, that the settings at the top of `Makefile.win` (the file is located in the root directory of the source distribution) correspond to your Python installation -- if not, first adjust them accordingly before your proceed. When everything is set, do:: mingw32-make -f Makefile.win installer Upon success you can find the installer in the `dist` subdirectory. Install it as described :ref:`above `. .. _MinGW project website: http://www.mingw.org/ .. _MSYS: http://www.mingw.org/msys.shtml .. index:: OpenSUSE .. _build_suse: OpenSUSE -------- Building PyMVPA on OpenSUSE involves the following steps (tested with 10.3): First add the OpenSUSE science repository, that contains most of the required packages (e.g. NumPy, SciPy, matplotlib), to the Yast configuration. The URL for OpenSUSE 10.3 is:: http://download.opensuse.org/repositories/science/openSUSE_10.3/ Now, install the following required packages: * a recent C and C++ compiler (e.g. GCC 4.1) * `python-devel` (Python development package) * `python-numpy` (NumPy) * `swig` (SWIG is only necessary, if you want to make use of LIBSVM) Now you can simply compile and install PyMVPA, as outlined above, in the general build instructions (or alternatively using the method with LIBSVM). If you want to run the PyMVPA examples including the ones that make use of the plotting capabilities of `matplotlib` you need to install of few more packages (mostly due to broken dependencies in the corresponding OpenSUSE packages): * `python-scipy` * `python-gobject2` * `python-gtk` .. index:: Fedora .. _build_fedora: Fedora ------ On Fedora (tested with Fedora 9) you first have to install a few required packages, that are not installed by default. Simply do:: yum install numpy gcc gcc-c++ python-devel swig You might also want to consider installing some more packages, that will make your life significantly easier:: yum install scipy ipython python-matplotlib Now, you are ready to compile and install PyMVPA as describe in the :ref:`general build instructions `. .. index:: MacOS X .. _build_macos: MacOS X ------- Since the MacPorts_ system basically compiles from source there should be no need to perform this step manually. However, if one intends to compile without MacPorts_ the `XCode developer tools`_, have to be installed first, as the operating system does not come with a compiler by default. If you want to use or even work on the latest development code, you should also install Git_. There is a `MacOS installer for Git`_, that make this step very easy. .. _MacOS installer for Git: http://code.google.com/p/git-osx-installer/ Otherwise follow the :ref:`general build instructions `. pymvpa2-2.6.4/doc/source/intro.rst000066400000000000000000000170571323370031300170600ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_intro: ************ Introduction ************ .. index:: MVPA PyMVPA is a Python_ module intended to ease pattern classification analysis of large datasets. It provides high-level abstraction of typical processing steps and a number of implementations of some popular algorithms. While it is not limited to neuroimaging data it is eminently suited for such datasets. PyMVPA is truly free software (in every respect) and additionally requires nothing but free software to run. Theoretically PyMVPA should run on anything that can run a Python_ interpreter, although the proof is yet to come. PyMVPA stands for *Multivariate Pattern Analysis* in Python_. What this Manual is NOT ======================= .. index:: textbook, review, API reference, examples This manual does not make an attempt to be a comprehensive introduction into machine learning *theory*. There is a wealth of high-quality text books about this field available. Two very good examples are: `Pattern Recognition and Machine Learning`_ by `Christopher M. Bishop`_, and :ref:`The Elements of Statistical Learning: Data Mining, Inference, and Prediction ` by `Trevor Hastie`_, `Robert Tibshirani`_, and `Jerome Friedman`_ (PDF was generously made available online_ free of charge). There is a growing number of introductory papers about the application of machine learning algorithms to (f)MRI data. A very high-level overview about the basic principles is available in :ref:`Mur et al. (2009) `. A more detailed tutorial covering a wide variety of aspects is provided in :ref:`Pereira et al. (2009) `. Two reviews by :ref:`Norman et al. (2006) ` and :ref:`Haynes and Rees (2006) ` give a broad overview about the literature. This manual also does not describe every technical bit and piece of the PyMVPA package, but is instead focused on the user perspective. Developers should have a look at the `API documentation`_, which is a detailed, comprehensive and up-to-date description of the whole package. Users looking for an overview of the public programming interface of the framework are referred to the :ref:`chap_modref`. The :ref:`chap_modref` is similar to the API reference, but hides overly technical information, which are only relevant for people intending to extend the framework by adding more functionality. More examples and usage patterns extending the ones described here can be taken from the examples shipped with the PyMVPA source distribution (`doc/examples/`; some of them are also available in the :ref:`chap_examples` chapter of this manual) or even the unit test battery, also part of the source distribution (in the `tests/` directory). .. _API Documentation: api/index.html .. _Christopher M. Bishop: http://research.microsoft.com/~cmbishop/ .. _Pattern Recognition and Machine Learning: http://research.microsoft.com/~cmbishop/PRML .. _online: .. _The Elements of Statistical Learning\: Data Mining, Inference, and Prediction: http://web.stanford.edu/~hastie/ElemStatLearn/ .. _Trevor Hastie: http://www-stat.stanford.edu/~hastie/ .. _Robert Tibshirani: http://www-stat.stanford.edu/~tibs/ .. _Jerome Friedman: http://www-stat.stanford.edu/~jhf/ .. _history: .. index:: history, MVPA toolbox for Matlab, license, free software A bit of History ================ The roots of PyMVPA date back to early 2005. At that time it was a C++ library (no Python_ yet) developed by Michael Hanke and Sebastian Krüger, intended to make it easy to apply artificial neural networks to pattern recognition problems. During a visit to `Princeton University`_ in spring 2005, Michael Hanke was introduced to the `MVPA toolbox`_ for `Matlab `_, which had several advantages over a C++ library. Most importantly it was easier to use. While a user of a C++ library is forced to write a significant amount of front-end code, users of the MVPA toolbox could simply load their data and start analyzing it, providing a common interface to functions drawn from a variety of libraries. .. _Princeton University: http://www.princeton.edu .. _MVPA toolbox: https://code.google.com/p/princeton-mvpa-toolbox/ However, there are some disadvantages when writing a toolbox in Matlab. While users in general benefit from the powers of Matlab, they are at the same time bound to the goodwill of a commercial company. That this is indeed a problem becomes obvious when one considers the time when the vendor of Matlab was not willing to support the Mac platform. Therefore even if the MVPA toolbox is `GPL-licensed`_ it cannot fully benefit from the enormous advantages of the free software development model environment (free as in free speech, not only free beer). .. _GPL-licensed: http://www.gnu.org/copyleft/gpl.html For these reasons, Michael thought that a successor to the C++ library should remain truly free software, remain fully object-oriented (in contrast to the MVPA toolbox), but should be at least as easy to use and extensible as the MVPA toolbox. After evaluating some possibilities Michael decided that `Python`_ is the most promising candidate that was fully capable of fulfilling the intended development goal. Python is a very powerful language that magically combines the possibility to write really fast code and a simplicity that allows one to learn the basic concepts within a few days. .. index:: RPy, PyMatlab One of the major advantages of Python is the availability of a huge amount of so called *modules*. Modules can include extensions written in a hardcore language like C (or even FORTRAN) and therefore allow one to incorporate high-performance code without having to leave the Python environment. Additionally some Python modules even provide links to other toolkits. For example `RPy`_ allows to use the full functionality of R_ from inside Python. Even Matlab can be used via some Python modules (see PyMatlab_ for an example). .. _RPy: http://rpy.sourceforge.net/ .. _R: http://www.r-project.org .. _PyMatlab: http://code.google.com/p/pymatlab/ After the decision for Python was made, Michael started development with a simple k-Nearest-Neighbor classifier and a cross-validation class. Using the mighty NumPy_ package made it easy to support data of any dimensionality. Therefore PyMVPA can easily be used with 4d fMRI dataset, but equally well with EEG/MEG data (3d) or even non-neuroimaging datasets. .. index:: NIfTI By September 2007 PyMVPA included support for reading and writing datasets from and to the `NIfTI format`_, kNN and Support Vector Machine classifiers, as well as several analysis algorithms (e.g. searchlight and incremental feature search). .. _NIfTI format: http://nifti.nimh.nih.gov/ During another visit in Princeton in October 2007 Michael met with `Yaroslav Halchenko`_ and `Per B. Sederberg`_. That incident and the following discussions and hacking sessions of Michael and Yaroslav lead to a major refactoring of the PyMVPA codebase, making it much more flexible/extensible, faster and easier than it has ever been before. .. _Yaroslav Halchenko: http://www.onerussian.com/ .. _Per B. Sederberg: http://www.princeton.edu/~persed/ .. index:: citation, PyMVPA poster How to cite PyMVPA ================== .. include:: howtocite.txt .. include:: contributors.txt .. include:: link_names.txt pymvpa2-2.6.4/doc/source/legal.rst000077700000000000000000000000001323370031300204532../../COPYINGustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/link_names.txt000066400000000000000000000240001323370031300200360ustar00rootroot00000000000000.. This (-*- rst -*-) format file contains commonly used link targets and name substitutions. It may be included in many files, therefore it should only contain link targets and name substitutions. Try grepping for "^\.\. _" to find plausible candidates for this list. .. NOTE: reST targets are __not_case_sensitive__, so only one target definition is needed for nipy, NIPY, Nipy, etc... .. _nipy: http://neuroimaging.scipy.org .. _nipype: http://nipy.sourceforge.net/nipype .. _`Brain Imaging Center`: http://bic.berkeley.edu/ .. _dipy: http://nipy.sourceforge.net/dipy .. _`dipy github`: http://github.com/Garyfallidis/dipy .. _nibabel: http://nipy.sourceforge.net/nibabel .. _dipy: http://nipy.sourceforge.net/dipy .. _Neuron: http://www.neuron.yale.edu/neuron .. _XPPAUT: http://www.math.pitt.edu/~bard/xpp/xpp.html .. _Genesis: http://www.genesis-sim.org .. Documentation tools .. _graphviz: http://www.graphviz.org/ .. _Sphinx: http://sphinx.pocoo.org/ .. _`Sphinx reST`: http://sphinx.pocoo.org/rest.html .. _reST: http://docutils.sourceforge.net/rst.html .. _docutils: http://docutils.sourceforge.net .. Licenses .. _GPL: http://www.gnu.org/licenses/gpl.html .. _BSD: http://www.opensource.org/licenses/bsd-license.php .. _LGPL: http://www.gnu.org/copyleft/lesser.html .. Source control .. _git: http://git-scm.com/ .. _github: http://github.com .. _github help: http://help.github.com .. _msysgit: http://code.google.com/p/msysgit/downloads/list .. _git-osx-installer: http://code.google.com/p/git-osx-installer/downloads/list .. _bazaar: http://bazaar-vcs.org/ .. Other working process .. _nibabel: http://nipy.org/nibabel/ .. _nifticlibs: http://nifti.nimh.nih.gov .. _nifti: http://nifti.nimh.nih.gov .. _`nipy launchpad`: https://launchpad.net/nipy .. _launchpad: https://launchpad.net/ .. _`nipy trunk`: https://code.launchpad.net/~nipy-developers/nipy/trunk .. _`nipy mailing list`: http://projects.scipy.org/mailman/listinfo/nipy-devel .. _`nipy bugs`: https://bugs.launchpad.net/nipy .. _pep8: http://www.python.org/dev/peps/pep-0008/ .. _`numpy coding style`: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt .. Code support stuff .. _pychecker: http://pychecker.sourceforge.net/ .. _pylint: http://www.logilab.org/project/pylint .. _pyflakes: http://divmod.org/trac/wiki/DivmodPyflakes .. _virtualenv: http://pypi.python.org/pypi/virtualenv .. _flymake: http://flymake.sourceforge.net/ .. _rope: http://rope.sourceforge.net/ .. _pymacs: http://pymacs.progiciels-bpi.ca/pymacs.html .. _ropemacs: http://rope.sourceforge.net/ropemacs.html .. _ECB: http://ecb.sourceforge.net/ .. _emacs_python_mode: http://www.emacswiki.org/cgi-bin/wiki/PythonMode .. _doctest-mode: http://www.cis.upenn.edu/~edloper/projects/doctestmode/ .. _nose: https://nose.readthedocs.org .. _`python coverage tester`: http://nedbatchelder.com/code/modules/coverage.html .. _screen: http://www.gnu.org/software/screen/ .. _ccache: http://ccache.samba.org/ .. Other python projects .. _numpy: http://www.numpy.org .. _scipy: http://www.scipy.org .. _ipython: http://ipython.scipy.org .. _`ipython manual`: http://ipython.scipy.org/doc/manual/html .. _matplotlib: http://matplotlib.sourceforge.net .. _pythonxy: http://www.pythonxy.com .. _ETS: http://code.enthought.com/projects/tool-suite.php .. _`Enthought Tool Suite`: http://code.enthought.com/projects/tool-suite.php .. _python: http://www.python.org .. _mayavi: http://mayavi.sourceforge.net/ .. _sympy: http://code.google.com/p/sympy/ .. Python imaging projects .. _PyMVPA: http://www.pymvpa.org .. _BrainVISA: http://brainvisa.info .. _anatomist: http://brainvisa.info .. _pydicom: http://code.google.com/p/pydicom/ .. _PyMGH/PyFSIO: http://code.google.com/p/pyfsio .. _OpenMEEG: http://openmeeg.gforge.inria.fr .. _PROBID: http://www.brainmap.co.uk/probid.htm .. Not so python imaging projects .. _Caret: http://brainvis.wustl.edu/wiki/index.php/Caret:About .. _CoSMoMVPA: http://www.github.com/CoSMoMVPA .. _matlab: http://www.mathworks.com .. _spm: http://www.fil.ion.ucl.ac.uk/spm .. _spm8: http://www.fil.ion.ucl.ac.uk/spm/software/spm8 .. _eeglab: http://sccn.ucsd.edu/eeglab .. _AFNI: http://afni.nimh.nih.gov/afni .. _FSL: http://www.fmrib.ox.ac.uk/fsl .. _LIPSIA: http://www.cbs.mpg.de/institute/software/lipsia .. _FreeSurfer: http://surfer.nmr.mgh.harvard.edu .. _voxbo: http://www.voxbo.org .. _mricron: http://www.cabiatl.com/mricro/mricron .. _slicer: http://www.slicer.org/ .. _XNAT: http://xnat.org .. ML projects not mentioned above .. _3dsvm: http://afni.nimh.nih.gov/pub/dist/doc/program_help/3dsvm.html .. _Elefant: http://elefant.developer.nicta.com.au .. _LIBSVM: http://www.csie.ntu.edu.tw/~cjlin/libsvm .. _MDP: http://mdp-toolkit.sourceforge.net .. _Shogun: http://www.shogun-toolbox.org .. _Orange: http://magix.fri.uni-lj.si/orange .. _PyML: http://pyml.sourceforge.net .. _MVPA Toolbox: https://code.google.com/p/princeton-mvpa-toolbox/ .. _scikit-learn: http://scikit-learn.org .. _nilearn: http://nilearn.github.io .. File formats .. _DICOM: http://medical.nema.org/ .. _`wikipedia DICOM`: http://en.wikipedia.org/wiki/Digital_Imaging_and_Communications_in_Medicine .. _GDCM: http://sourceforge.net/apps/mediawiki/gdcm .. _`DICOM specs`: ftp://medical.nema.org/medical/dicom/2009/ .. _`DICOM object definitions`: ftp://medical.nema.org/medical/dicom/2009/09_03pu3.pdf .. _dcm2nii: http://www.cabiatl.com/mricro/mricron/dcm2nii.html .. _`mricron install`: http://www.cabiatl.com/mricro/mricron/install.html .. _dicom2nrrd: http://www.slicer.org/slicerWiki/index.php/Modules:DicomToNRRD-3.4 .. _Nrrd: http://teem.sourceforge.net/nrrd/format.html .. General software .. _gcc: http://gcc.gnu.org .. _xcode: http://developer.apple.com/TOOLS/xcode .. _mingw: http://www.mingw.org .. _cygwin: http://cygwin.com .. _macports: http://www.macports.org/ .. _VTK: http://www.vtk.org/ .. _ITK: http://www.itk.org/ .. _swig: http://www.swig.org .. _NeuroDebian: http://neuro.debian.net .. _Debian: http://www.debian.org .. _`Debian project`: http://www.debian.org .. _Ubuntu: http://www.ubuntu.com .. _Xubuntu: http://www.xubuntu.org .. _exppsy: http://alioth.debian.org/projects/pkg-exppsy .. _`Debian Med`: http://debian-med.alioth.debian.org .. _`Debian Science`: http://wiki.debian.org/DebianScience .. _Comedi: http://www.comedi.org .. _RTAI: https://www.rtai.org .. |RTAI| replace:: :abbr:`RTAI (Real Time Application Interface)` .. _Lin4Neuro: http://www.nemotos.net/lin4neuro .. _fail2ban: http://www.fail2ban.org .. Debian releases .. _Debian 6.0 (squeeze): http://www.debian.org/releases/squeeze .. _Debian 7.0 (wheezy): http://www.debian.org/releases/wheezy .. _Debian 7.8 (wheezy): http://www.debian.org/releases/wheezy .. _Debian 8.0 (jessie): http://www.debian.org/releases/jessie .. Desktop environments .. _GNOME: http://www.gnome.org/ .. _GNOME3: http://www.gnome.org/gnome-3/ .. _XFCE: http://www.xfce.org/ .. _XFCE4: http://www.xfce.org/ .. Functional imaging labs .. _`functional imaging laboratory`: http://www.fil.ion.ucl.ac.uk .. _FMRIB: http://www.fmrib.ox.ac.uk .. Other organizations .. _enthought: .. _kitware: http://www.kitware.com .. _nitrc: http://www.nitrc.org .. General information links .. _`wikipedia FMRI`: http://en.wikipedia.org/wiki/Functional_magnetic_resonance_imaging .. _`wikipedia PET`: http://en.wikipedia.org/wiki/Positron_emission_tomography .. Mathematical methods .. _`wikipedia ICA`: http://en.wikipedia.org/wiki/Independent_component_analysis .. _`wikipedia PCA`: http://en.wikipedia.org/wiki/Principal_component_analysis .. Mathematical ideas .. _`wikipedia spherical coordinate system`: http://en.wikipedia.org/wiki/Spherical_coordinate_system .. _`mathworld spherical coordinate system`: http://mathworld.wolfram.com/SphericalCoordinates.html .. _`wikipedia affine`: http://en.wikipedia.org/wiki/Affine_transformation .. _`wikipedia linear transform`: http://en.wikipedia.org/wiki/Linear_transformation .. _`wikipedia rotation matrix`: http://en.wikipedia.org/wiki/Rotation_matrix .. _`wikipedia homogenous coordinates`: http://en.wikipedia.org/wiki/Homogeneous_coordinates .. _`wikipedia axis angle`: http://en.wikipedia.org/wiki/Axis_angle .. _`wikipedia Euler angles`: http://en.wikipedia.org/wiki/Euler_angles .. _`Mathworld Euler angles`: http://mathworld.wolfram.com/EulerAngles.html .. _`wikipedia quaternion`: http://en.wikipedia.org/wiki/Quaternion .. _`wikipedia shear matrix`: http://en.wikipedia.org/wiki/Shear_matrix .. _`wikipedia reflection`: http://en.wikipedia.org/wiki/Reflection_(mathematics) .. _`wikipedia direction cosine`: http://en.wikipedia.org/wiki/Direction_cosine .. Some common terms as links outside and abbreviations .. _FOSS: http://en.wikipedia.org/wiki/Free_and_Open_Source_Software .. |FOSS| replace:: :abbr:`FOSS (Free and Open Source Software)` .. _DFSG: http://www.debian.org/social_contract#guidelines .. |DFSG| replace:: :abbr:`DFSG (Debian Free Software Guidelines)` .. Homepages .. _yoh: http://www.onerussian.com .. _mih: http://mih.voxindeserto.de .. Debian specifics .. _ITP: http://www.debian.org/devel/wnpp .. _ITPs: http://www.debian.org/devel/wnpp .. |ITP| replace:: :abbr:`ITP (Intent to Package)` .. |RFP| replace:: :abbr:`RFP (Request for packaging)` .. |DBTS| replace:: :abbr:`DBTS (Debian Bug Tracking System)` .. _debian-installer: http://www.debian.org/devel/debian-installer/ .. mailing lists .. _neurodebian-users: http://lists.alioth.debian.org/mailman/listinfo/neurodebian-users .. _neurodebian-devel: http://lists.alioth.debian.org/mailman/listinfo/neurodebian-devel .. _neurodebian-upstream: http://lists.alioth.debian.org/mailman/listinfo/neurodebian-upstream .. task pages .. _neuroscience-electrophysiology: http://blends.alioth.debian.org/science/tasks/neuroscience-electrophysiology .. _task_bci: http://blends.alioth.debian.org/science/tasks/bci .. _task_dataacquisition: http://blends.alioth.debian.org/science/tasks/dataacquisition .. _task_psychophysics: http://blends.alioth.debian.org/science/tasks/psychophysics> .. more to sort out .. _NeuralEnsemble: http://www.neuralensemble.org .. _`repository mirror`: http://neuro.debian.net/mirrors-status.html pymvpa2-2.6.4/doc/source/manual.rst000066400000000000000000000003651323370031300171740ustar00rootroot00000000000000.. _manual: ****************** PyMVPA User Manual ****************** .. toctree:: :maxdepth: 2 intro installation support tutorial examples cmdline misc faq glossary changelog references modref legal pymvpa2-2.6.4/doc/source/mappers.txt000066400000000000000000000014371323370031300173760ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Mapper .. _chap_mappers: ******* Mappers ******* .. automodule:: mvpa2.mappers .. only:: html Related API documentation ========================= .. currentmodule:: mvpa2.mappers .. autosummary:: :toctree: generated base boxcar detrend flatten fx lle mdp_adaptor procrustean projection prototype som svd wavelet zscore pymvpa2-2.6.4/doc/source/measures.txt000066400000000000000000000216631323370031300175560ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: measure, sensitivity .. _chap_measures: ******** Measures ******** .. automodule:: mvpa2.measures .. only:: html Related API documentation ========================= .. currentmodule:: mvpa .. autosummary:: :toctree: generated measures.base measures.anova measures.corrcoef measures.corrstability measures.ds measures.irelief measures.noiseperturbation measures.searchlight measures.statsmodels_adaptor PyMVPA provides a number of useful measures. The vast majority of them are dedicated to feature selection. To increase analysis flexibility, PyMVPA distinguishes two parts of a feature selection procedure. First, the impact of each individual feature on a classification has to be determined. The resulting map reflects the sensitivities of all features with respect to a certain decision and, therefore, algorithms generating these maps are summarized as :class:`~mvpa2.measures.base.Sensitivity` in PyMVPA. .. index:: feature selection Second, once the feature sensitivities are known, they can be used as criteria for feature selection. However, possible selection strategies range from very simple *Go with the 10% best features* to more complicated algorithms like :ref:`recursive_feature_elimination`. Because :ref:`sensitivity_measures` and selections strategies can be arbitrarily combined, PyMVPA offers a quite flexible framework for feature selection. .. index:: processing object Similar to dataset splitters, all PyMVPA algorithms are implemented and behave like :term:`processing object`\ s. To recap, this means that they are instantiated by passing all relevant arguments to the constructor. Once created, they can be used multiple times by calling them with different datasets. .. Again general overview first. What is a `SensitivityAnalyzer`, what is the difference between a `FeatureSelection` and an `ElementSelector`. Finally more detailed note and references for each larger algorithm. .. index:: sensitivity .. _sensitivity_measures: Sensitivity Measures ==================== It was already mentioned that a :class:`~mvpa2.measures.base.Sensitivity` computes a featurewise score that indicates how much interesting signal each feature contains -- hoping that this score somehow correlates with the impact of the features on a classifier's decision for a certain problem. Every sensitivity analyzer object computes a one-dimensional array with the respective score for every feature, when called with a :class:`~mvpa2.datasets.base.Dataset`. Due to this common behavior all :class:`~mvpa2.measures.base.Sensitivity` types are interchangeable and can be combined with any other algorithm requiring a sensitivity analyzer. By convention higher sensitivity values indicate more interesting features. There are two types of sensitivity analyzers in PyMVPA. Basic sensitivity analyzers directly compute a score from a Dataset. Meta sensitivity analyzers on the other hand utilize another sensitivity analyzer to compute their sensitivity maps. Basic Sensitivity (and related Measures) ---------------------------------------- .. index:: anova, F-score, univariate, measure .. _anova: ANOVA ^^^^^ The :class:`~mvpa2.measures.anova.OneWayAnova` class provides a simple (and fast) univariate measure, that can be used for feature selection, although it is not a proper sensitivity measure. For each feature an individual F-score is computed as the fraction of between and within group variances. Groups are defined by samples with unique targets. Higher F-scores indicate higher sensitivities, as with all other sensitivity analyzers. .. index:: classifier weights, weights, SVM, measure Linear SVM Weights ^^^^^^^^^^^^^^^^^^ The featurewise weights of a trained support vector machine are another possible sensitivity measure. The :class:`mvpa2.clfs.libsvmc.sens.LinearSVMWeights` and :class:`mvpa2.clfs.sg.sens.LinearSVMWeights` classes can internally train all types of *linear* support vector machines and report those weights. In contrast to the F-scores computed by an ANOVA, the weights can be positive or negative, with both extremes indicating higher sensitivities. To deal with this property all subclasses of :class:`~mvpa2.measures.base.Measure` support a `mapper` arguments in the constructor. A mapper is just some :class:`~mvpa2.mappers.base.Mapper`, `forward_dataset()` method of which is called with the resultant sensitivity map as the argument. In most of the cases you would like just to apply some simple transformation function (taking absolution values etc) or a bit more advanced where you would like to combine some sensitivities (e.g. per class) into a single measure. For that purpose :class:`mvpa2.mappers.fx.FxMapper` was created and some convenience factory methods where provided for most common operations. So in the example below we will use `maxofabs_sample()` which will return a mapper giving maximal absolute value among multiple sensitivities (in our case it is just a single one for binary classification). >>> from mvpa2.suite import * >>> >>> ds = normal_feature_dataset() >>> print ds > >>> >>> clf = LinearCSVMC() >>> sensana = clf.get_sensitivity_analyzer() >>> sens = sensana(ds) >>> sens.shape (1, 4) >>> (sens.samples < 0).any() True >>> sensana_abs = clf.get_sensitivity_analyzer(postproc=absolute_features()) >>> (sensana_abs(ds).samples < 0).any() False Above example shows how to use an existing classifier instance to report sensitivity values (a linear SVM in this case). The computed sensitivity vector contains one element for each feature in the dataset. :mod:`~mvpa2.misc.transformers` can be used to post-process the sensitivity scores, e.g. reporting absolute values for feature selection purposes, instead of raw sensitivities. .. note:: The `SVMWeights` classes *cannot* extract reasonable weights from non-linear SVMs (e.g. with RBF kernels). Other linear Classifier Weights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Any linear classifier in PyMVPA can report its weights. The procedure is identical for all of them. As outlined in the example using linear SVM weights, simply call :meth:`~mvpa2.clfs.base.Classifier.get_sensitivity_analyzer` on a classifier instance and you'll get an appropriate :class:`~mvpa2.measures.base.Sensitivity` object. Additionally, it is possible to force (re)training of the underlying classifier or simply report the weights computed during a previous training run. Examples of other classifier-based linear sensitivity analyzers are: :class:`~mvpa2.clfs.smlr.SMLRWeights` and :class:`~mvpa2.clfs.gpr.GPRLinearWeights`. .. index:: noise perturbation, measure .. _noise_perturbation: Noise Perturbation ^^^^^^^^^^^^^^^^^^ Noise perturbation is a generic approach to determine feature sensitivity. The sensitivity analyzer :class:`~mvpa2.measures.noiseperturbation.NoisePerturbationSensitivity`) computes a scalar :class:`~mvpa2.measures.base.Measure` using the original dataset. Afterwards, for each single feature a noise pattern is added to the respective feature and the dataset measure is recomputed. The sensitivity of each feature is the difference between the dataset measure of the original dataset and the one with added noise. The reasoning behind this algorithm is that adding noise to *important* features will impair a dataset measure like cross-validated classifier transfer error. However, adding noise to a feature that already only contains noise, will not change such a measure. Depending on the used scalar :class:`~mvpa2.measures.base.Measure` using the sensitivity analyzer might be really CPU-intensive! Also depending on the measure, it might be necessary to use appropriate :mod:`~mvpa2.misc.transformers` (see :mod:`~mvpa2.misc.transformers` constructor arguments) to ensure that higher values represent higher sensitivities. .. index:: meta measures Meta Sensitivity Measures ------------------------- Meta Sensitivity Measures are FeaturewiseMeasures that internally use one of the `Basic Sensitivity (and related Measures)`_ to compute their sensitivity scores. .. index:: splitting measures, measure Splitting Measures ^^^^^^^^^^^^^^^^^^ The SplittingFeaturewiseMeasure uses a :class:`~mvpa2.datasets.splitters.Splitter` to generate dataset splits. A FeaturewiseMeasure is then used to compute sensitivity maps for all these dataset splits. At the end a `combiner` function is called with all sensitivity maps to produce the final sensitivity map. By default the mean sensitivity maps across all splits is computed. .. _SplitFeaturewiseMeasure: api/mvpa2.measures.splitmeasure.SplitFeaturewiseMeasure-class.html pymvpa2-2.6.4/doc/source/misc.rst000066400000000000000000000356761323370031300166670ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_misc: .. index:: misc ************* Miscellaneous ************* .. automodule:: mvpa2.misc .. only:: html Related API documentation ========================= .. currentmodule:: mvpa2 .. autosummary:: :toctree: generated atlases misc.args misc.attrmap misc.cmdline misc.data_generators misc.errorfx misc.exceptions misc.fx misc.neighborhood misc.sampleslookup misc.stats misc.support misc.surfing misc.transformers misc.vproperty .. index:: settings, configuration, cfg Managing (Custom) Configurations ================================ PyMVPA provides a facility to handle arbitrary configuration settings. This facility can be used to control some aspects of the behavior of PyMVPA itself, as well as to store and query custom configuration items, e.g. to control one's own analysis scripts. An instance of this configuration manager is loaded whenever the `mvpa2` module is imported. It can be used from any script like this: >>> from mvpa2 import cfg By default the config manager reads settings from two config files (if any of them exists). The first is a file named `.pymvpa2.cfg` and located in the user's home directory. The second is `pymvpa2.cfg` in the current directory. Please note, that settings found in the second file override the ones in the first. The syntax of both files is the one also known from the Windows INI files. Basically, `Python's ConfigParser`_ is used to read those file and the config supports whatever this parser can read. A minimal example config file might look like this:: [general] verbose = 1 It consists of a section `general` containing a single setting `verbose`, which is set to `1`. PyMVPA recognizes a number of such sections and configuration variables. A full list is shown at the end of this section and is also available in the source package (`doc/examples/pymvpa2.cfg`). .. _Python's ConfigParser: https://docs.python.org/2/library/configparser.html In addition to configuration files, the config manager also looks for special environment variables to read settings from. Names of such variables have to start with `MVPA_` following by the an optional section name and the variable name itself (with `_` as delimiter). If no section name is provided, the variables will be associated with section `general`. Some examples:: MVPA_VERBOSE=1 will become:: [general] verbose = 1 However, :envvar:`MVPA_VERBOSE_OUTPUT` `= stdout` becomes:: [verbose] output = stdout Any lenght of variable name is allowed, e.g. ``MVPA_SEC1_LONG_VARIABLE_NAME=1`` becomes:: [sec1] long variable name = 1 Settings read from environment variables have the highest priority and override settings found in the config files. Therefore environment variables can be used to quickly adjust some setting without having to edit the config files. The config manager can easily be queried from inside scripts. In addition to the interface of `Python's ConfigParser`_ it has a few convenience functions mostly to allow for a default value in case no setting was found. For example: >>> cfg.getboolean('warnings', 'suppress', default=False) True queries the config manager whether warnings should be suppressed (i.e. if there is a variable `suppress` in section `warnings`). In case, there is no such setting, i.e. neither config files nor environment variables defined it, the `default` values is returned. Please see the documentation of `ConfigManager`_ for its full functionality. .. _ConfigManager: api/mvpa2.base.config.ConfigManager-class.html .. index:: config file The source tarballs includes an example configuration file (`doc/examples/pymvpa2.cfg`) with the comprehensive list of settings recognized by PyMVPA itself: .. literalinclude:: ../examples/pymvpa2.cfg :language: ini .. index:: progress tracking, verbosity, debug, warning Progress Tracking ================= .. some parts should migrate into developer reference I guess There are 3 types of messages PyMVPA can produce: verbose_ regular informative messages about generic actions being performed debug_ messages about the progress of computation, manipulation on data structures warning_ messages which are reported by mvpa if something goes a little unexpected but not critical .. _verbose: api/mvpa2.misc-module.html#verbose .. _debug: api/mvpa2.misc-module.html#debug .. _warning: api/mvpa2.misc-module.html#warning .. index:: redirecting output Redirecting Output ------------------ By default, all types of messages are printed by PyMVPA to the standard output. It is possible to redirect them to standard error, or a file, or a list of multiple such targets, by using environment variable ``MVPA_?_OUTPUT``, where X is either ``VERBOSE``, ``DEBUG``, or ``WARNING`` correspondingly. E.g.:: export MVPA_VERBOSE_OUTPUT=stdout,/tmp/1 MVPA_WARNING_OUTPUT=/tmp/3 MVPA_DEBUG_OUTPUT=stderr,/tmp/2 would direct verbose messages to standard output as well as to ``/tmp/1`` file, warnings will be stored only in ``/tmp/3``, and debug output would appear on standard error output, as well as in the file ``/tmp/2``. PyMVPA output redirection though has no effect on external libraries debug output if corresponding debug_ target is enabled shogun debug output (if any of internal ``SG_`` debug_ targets is enabled) appears on standard output SMLR debug output (if ``SMLR_`` debug_ target is enabled) appears on standard output LIBSVM debug output (if ``LIBSVM`` debug_ target is enabled) appears on standard error One of the possible redirections is Python's ``StringIO`` class. Instance of such class can be added to the ``handlers`` and queried later on for the information to be dumped to a file later on. It is useful if output path is specified at run time, thus it is impossible to redirect verbose or debug from the start of the program: >>> import sys >>> from mvpa2.base import verbose >>> from StringIO import StringIO >>> stringout = StringIO() >>> verbose.handlers = [sys.stdout, stringout] >>> verbose.level = 3 >>> >>> verbose(1, 'msg1') msg1 >>> out_prefix='/tmp/' >>> >>> verbose(2, 'msg2') msg2 >>> # open('%sverbose.log' % out_prefix, 'w').write(stringout.getvalue()) >>> print stringout.getvalue(), msg1 msg2 >>> .. index:: verbosity Verbose Messages ---------------- Primarily for a user of PyMVPA to provide information about the progress of their scripts. Such messages are printed out if their level specified as the first parameter to verbose_ function call is less than specified. There are two easy ways to specify verbosity level: * command line: you can use opt.verbose_ for precrafted command line option for to give facility to change it from your script (see examples) * environment variable :envvar:`MVPA_VERBOSE` * code: verbose.level property The following verbosity levels are supported: :0: nothing besides errors :1: high level stuff -- top level operation or file operations :2: cmdline handling :3: n.a. :4: computation/algorithm relevant thing .. index:: warning Warning Messages ---------------- Reported by PyMVPA if something goes a little unexpected but not critical. By default they are printed just once per occasion, i.e. once per piece of code where it is called. Following environment variables control the behavior of warnings: * :envvar:`MVPA_WARNINGS_COUNT` `=` controls for how many invocations of specific warning it gets printed (default behavior is 1 for once). Specification of negative count results in all invocations being printed, and value of 0 obviously suppresses the warnings * :envvar:`MVPA_WARNINGS_SUPPRESS` analogous to :envvar:`MVPA_WARNINGS_COUNT` `=0` it resultant behavior * :envvar:`MVPA_WARNINGS_BT` `=` controls up to how many lines of traceback is printed for the warnings In python code, invocation of warning with argument ``bt = True`` enforces printout of traceback whenever warning tracebacks are disabled by default. .. index:: debug Debug Messages -------------- Debug messages are used to track progress of any computation inside PyMVPA while the code run by python without optimization (i.e. without ``-O`` switch to python). They are specified not by the level but by some id usually specific for a particular PyMVPA routine. For example ``RFEC`` id causes debugging information about `Recursive Feature Elimination call`_ to be printed (See `base module sources`_ for the list of all ids, or print ``debug.registered`` property). Analogous to verbosity level there are two easy ways to specify set of ids to be enabled (reported): * command line: you can use optDebug_ for precrafted command line option to provide it from your script (see examples). If in command line if optDebug_ is used, ``-d list`` is given, PyMVPA will print out list of known ids. * environment: variable :envvar:`MVPA_DEBUG` can contain comma-separated list of ids or python regular expressions to match multiple ids. Thus specifying :envvar:`MVPA_DEBUG` `=CLF.*` would enable all ids which start with ``CLF``, and :envvar:`MVPA_DEBUG` `=.*` would enable all known ids. * code: debug.active property (e.g. ``debug.active = [ 'RFEC', 'CLF' ]``) Besides printing debug messages, it is also possible to print some metric. You can define new metrics or select predefined ones: vmem (Linux specific): amount of virtual memory consumed by the task pid (Linux specific): PID of the process reltime How many seconds passed since previous debug printout asctime Time stamp tb Traceback (``module1:line_number1[,line_number2...]>module2:line_number..``) where this debug statement was requested tbc Concise traceback printout -- prefix common with the previous invocation is replaced with ``...`` To enable list of metrics you can use :envvar:`MVPA_DEBUG_METRICS` environment variable to list desired metric names comma-separated. If ``ALL`` is provided, it enables all the metrics. As it was mentioned earlier, debug messages are printed only in non-optimized python invocation. That was done to eliminate any slowdown introduced by such 'debugging' output, which might appear at some computational bottleneck places in the code. Some of the debug ids are defined to facilitate additional checking of the validity of the analysis. Their debug ids a prefixed by ``CHECK_``. E.g. ``CHECK_RETRAIN`` id would cause additional checking of the data in retraining phase. Such additional testing might spot out some bugs in the internal logic, thus enabled when full test suite is ran. .. TODO: Unify loggers behind verbose and debug. imho debug should have also way to specify the level for the message so we could provide more debugging information if desired. .. _opt.verbose: api/mvpa2.misc.cmdline-module.html#opt.verbose .. _optDebug: api/mvpa2.misc.cmdline-module.html#optDebug .. _base module sources: api/mvpa2.base-pysrc.html .. _Recursive Feature Elimination call: api/mvpa2.featsel.rfe.RFE-class.html#__call__ PyMVPA Status Summary --------------------- While reporting found bugs, it is advised to provide information about the operating system/environment and availability of PyMVPA externals. Please use :func:`~mvpa2.base.info.wtf` to collect such useful information to be included with the bug reports. Alternatively, same printout can be obtained upon not handled exception automagically, if environment variable :envvar:`MVPA_DEBUG_WTF` is set. Additional Little Helpers ========================= .. index:: random number generation, RNG Random Number Generation ------------------------ To facilitate reproducible troubleshooting, a seed value of random generator of NumPy can be provided in debug mode (python is called without ``-O``) via environment variable :envvar:`MVPA_SEED` `=`. Otherwise it gets seeded with random integer which can be displayed with debug id ``RANDOM`` e.g.:: > MVPA_SEED=123 MVPA_DEBUG=RANDOM python test_clf.py [RANDOM] DBG: Seeding RNG with 123 ... > MVPA_DEBUG=RANDOM python test_clf.py [RANDOM] DBG: Seeding RNG with 1447286079 ... Unittests at a Grasp -------------------- .. index:: unittests If it is needed to just quickly grasp through all unittests without making them to test multiple classifiers (implemented with sweeparg), define environmental variable :envvar:`MVPA_TESTS_QUICK` e.g.:: > MVPA_WARNINGS_SUPPRESS=no MVPA_TESTS_QUICK=yes python test_clf.py ............... ---------------------------------------------------------------------- Ran 15 tests in 0.845s Some tests are not 100% deterministic as they operate on random data (e.g. the performance of a randomly initialized classifier). Therefore, in some cases, specific unit tests might fail when running the full test battery. To exclude these test cases (and only those where non-deterministic behavior immanent) one can use the :envvar:`MVPA_TESTS_LABILE` configuration and set it to 'off'. .. index:: FSL, detrending, motion correction FSL Bindings ============ PyMVPA contains a few little helpers to make interfacing with FSL_ easier. The purpose of these helpers is to increase the efficiency when doing an analysis by (re)using useful information that is already available from some FSL output. FSL usually stores most interesting information in the NIfTI format. Therefore it can be easily imported into PyMVPA using NiBabel. However, some information is stored in text files, e.g. estimated motion correction parameters and *FEAT's three-column custom EV* files. PyMVPA provides import and export helpers for both of them (among other stuff like a *MELODIC* results import helper). .. _motion-aware_detrending: Here is an example how the *McFlirt* parameter output can be used to perform motion-aware data detrending: >>> from os import path >>> import numpy as np >>> >>> # some dummy dataset >>> from mvpa2.datasets import Dataset >>> ds = Dataset(samples=np.random.normal(size=(19, 3))) >>> >>> # load motion correction output >>> from mvpa2.misc.fsl.base import McFlirtParams >>> mc = McFlirtParams(path.join('mvpa2', 'data', 'bold_mc.par')) >>> >>> # simple plot using pylab (use pylab.show() or pylab.savefig() >>> # afterwards) >>> mc.plot() >>> >>> # merge the correction parameters into the dataset itself >>> for param in mc: ... ds.sa['mc_' + param] = mc[param] >>> >>> # detrend some dataset with mc params as additonal regressors >>> from mvpa2.mappers.detrend import poly_detrend >>> poly_detrend(ds, opt_regs=['mc_x', 'mc_y', 'mc_z', ... 'mc_rot1', 'mc_rot2', 'mc_rot3']) All FSL bindings are located in the `mvpa2.misc.fsl`_ module. .. _FSL: http://www.fmrib.ox.ac.uk .. _mvpa2.misc.fsl: api/mvpa2.misc.fsl-module.html pymvpa2-2.6.4/doc/source/modref.rst000066400000000000000000000124551323370031300171760ustar00rootroot00000000000000.. -*- mode: rst -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: .. _chap_modref: **************** Module Reference **************** This module reference extends the manual with a comprehensive overview of the currently available functionality, that is built into PyMVPA. However, instead of a full list including every single line of the PyMVPA code base, this reference limits itself to the relevant pieces of the application programming interface (API) that are of particular interest to users of this framework. Each module in the package is documented by a general summary of its purpose and the list of classes and functions it provides. Entry Point =========== .. autosummary:: :toctree: generated mvpa2 .. the rest of the modules are relative to the top-level .. currentmodule:: mvpa2 Basic Facilities ================= .. autosummary:: :toctree: generated base base.attributes base.collections base.config base.constraints base.dochelpers base.externals base.hdf5 base.info base.learner base.node base.param base.progress base.report base.state base.types base.verbosity Datasets: Input, Output, Storage and Preprocessing ================================================== .. autosummary:: :toctree: generated base.dataset datasets.base datasets.channel datasets.eventrelated datasets.eep datasets.formats datasets.gifti datasets.mri datasets.niml datasets.cosmo datasets.eeglab datasets.miscfx datasets.sources datasets.sources.native datasets.sources.bids datasets.sources.openfmri datasets.sources.skl_data Mappers: Data Transformations ============================= .. autosummary:: :toctree: generated mappers mappers.base mappers.boxcar mappers.detrend mappers.filters mappers.flatten mappers.fx mappers.fxy mappers.glm mappers.lle mappers.mdp_adaptor mappers.procrustean mappers.projection mappers.prototype mappers.shape mappers.skl_adaptor mappers.slicing mappers.som mappers.staticprojection mappers.svd mappers.wavelet mappers.zscore Generators: Repetitive Data Processing ====================================== .. autosummary:: :toctree: generated generators generators.base generators.partition generators.permutation generators.resampling generators.splitters Classifiers and Errors ====================== .. autosummary:: :toctree: generated clfs.base clfs.meta clfs.blr clfs.enet clfs.gda clfs.glmnet clfs.gnb clfs.gpr clfs.knn clfs.lars clfs.mass clfs.model_selector clfs.plr clfs.ridge clfs.similarity clfs.skl clfs.smlr clfs.svm clfs.sg clfs.libsvmc clfs.distance clfs.similarity clfs.stats clfs.transerror clfs.warehouse Kernels ------- .. autosummary:: :toctree: generated kernels kernels.base kernels.libsvm kernels.np kernels.sg Measures: Searchlights and Sensitivties ======================================= .. autosummary:: :toctree: generated measures.base measures.anova measures.corrstability measures.corrcoef measures.irelief measures.noiseperturbation measures.gnbsearchlight measures.nnsearchlight measures.rsa measures.searchlight measures.statsmodels_adaptor measures.winner Feature Selection ================= .. autosummary:: :toctree: generated featsel.base featsel.ifs featsel.rfe featsel.helpers Additional Algorithms ===================== .. autosummary:: :toctree: generated algorithms algorithms.hyperalignment algorithms.searchlight_hyperalignment algorithms.group_clusterthr Algorithm benchmarks ==================== .. autosummary:: :toctree: generated algorithms.benchmarks algorithms.benchmarks.hyperalignment Miscellaneous ============= .. autosummary:: :toctree: generated atlases atlases.base atlases.fsl atlases.warehouse misc.args misc.attrmap misc.data_generators misc.dcov misc.errorfx misc.exceptions misc.fx misc.neighborhood misc.sampleslookup misc.stats misc.support misc.support.afni misc.surfing misc.surfing.queryengine misc.surfing.surf_voxel_selection misc.surfing.volgeom misc.surfing.volsurf misc.surfing.volume_mask_dict misc.transformers misc.vproperty support.bayes Testing ======= .. autosummary:: :toctree: generated testing testing.clfs testing.datasets testing.tools testing.sweepargs tests Basic Plotting Utilities ------------------------ .. autosummary:: :toctree: generated viz misc.plot misc.plot.base misc.plot.erp misc.plot.flat_surf misc.plot.lightbox misc.plot.topo misc.plot.scatter 3rd-party Interfaces -------------------- .. autosummary:: :toctree: generated misc.bv misc.bv.base misc.fsl misc.fsl.base misc.fsl.flobs misc.fsl.melodic misc.io misc.io.base misc.io.meg support.nibabel support.nibabel.afni_niml_annot support.nibabel.afni_niml_dset support.nibabel.afni_niml_roi support.nibabel.afni_niml support.nibabel.afni_suma_1d support.nibabel.afni_suma_spec support.nibabel.surf_fs_asc support.nibabel.surf_caret support.nibabel.surf_gifti support.nibabel.surf .. include:: link_names.txt pymvpa2-2.6.4/doc/source/mvpa_guidelines.rst000066400000000000000000000012201323370031300210610ustar00rootroot00000000000000When is fMRI data independent? To get independent chunks of data, the experiment itself has to be designed to allow for this partitioning. Ideally, an experiment is split into several :term:`chunk`\ s, where each chunk is like a mini-version of the whole experiment. It contains all conditions, i.e. experimental manipulations of the independent variables. Another run of the experiment is basically another version of the mini-experiment, preferrably with a different randomized trial-order, to minimize this type of signal artefacts in the data. At ISMRM 2009, Stephen LaConte presented some guidelines when fMRI data can be considered *independent* pymvpa2-2.6.4/doc/source/overview.rst000066400000000000000000000101201323370031300175530ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### *************** Getting Started *************** For the Impatient ================= If you only have five minutes to decide whether you want to use PyMVPA, take the first minute to look at the following example of a cross-validation procedure on an fMRI dataset (the full source code!). It is not heavily commented, but should simply give you an idea how PyMVPA feels like. First import the whole PyMVPA module: >>> from mvpa2.suite import * Now, load the dataset from a NIfTI file. An additional 2-column textfile has the label and associated experimental run of each volume in the dataset (one volume per line). Finally, a mask is loaded to exclude non-brain voxels. >>> attr = SampleAttributes(os.path.join(pymvpa_dataroot, ... 'attributes_literal.txt')) >>> dataset = fmri_dataset( ... samples=os.path.join(pymvpa_dataroot, 'bold.nii.gz'), ... targets=attr.targets, ... chunks=attr.chunks, ... mask=os.path.join(pymvpa_dataroot, 'mask.nii.gz')) Perform linear detrending and afterwards zscore the timeseries of each voxel using the mean and standard deviation determined from *rest* volumes (all done for each experiment run individually). >>> poly_detrend(dataset, polyord=1, chunks_attr='chunks') >>> zscore(dataset, param_est=('targets', ['rest']), dtype='float32') Select a subset of two stimulation conditions from the whole dataset. >>> interesting = np.array([i in ['face', 'house'] for i in dataset.sa.targets]) >>> dataset = dataset[interesting] Finally, setup the cross-validation procedure using an odd-even split of the dataset and a *SMLR* classifier -- and run it. >>> cv = CrossValidation(SMLR(), OddEvenPartitioner()) >>> error = cv(dataset) Done. The mean error of classifier predictions on the test dataset across dataset splits is stored in `error`. If you think that is a good start, take the remaining four minutes to take a look at the examples shipped in the source distribution of PyMVPA (`doc/examples/`; some of them are also listed in :ref:`chap_examples` section of this manual). The examples provide a coarse overview of a substantial portion of the functionality provided by PyMVPA, ranging from basic classifier usage, over more sophisticated analysis strategies to simple visualization demos. All examples are executable scripts that are meant to be run from to toplevel directory of the extracted source tarball, e.g.:: $ doc/examples/start_easy.py which would run the example shown in the first part of this section. However, once you found something interesting in the examples you should consider skipping through this manual, as it contains a lot of information that is complementary to the API reference and the examples. And now for the details ... .. index:: introduction, modular architecture Module Overview =============== The PyMVPA package consists of three major parts: :ref:`Data handling `, :ref:`Classifiers ` and various algorithms and measures that operate on datasets and classifiers. In the following sections the basic concept of all three parts will be described and examples using certain parts of the PyMVPA package will be given. .. image:: pics/design.* :alt: PyMVPA architecture The manual does not cover all bits and pieces of PyMVPA. Detailed information about the module layout and additional documentation about all included functionality is available from the :ref:`Module Reference ` -- or the `API Reference`_ if you are interested in a more technical document. The main purpose of the manual is to give an idea how the individual parts of PyMVPA can be combined to perform complex analyses -- easily. .. _API Reference: api/index.html pymvpa2-2.6.4/doc/source/pdfmanual.rst000066400000000000000000000013321323370031300176610ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ********************************** PDF version of the PyMVPA Manual ********************************** The PDF version of the manual is available for download_. .. _download: PyMVPA-Manual.pdf .. toctree:: :maxdepth: 3 intro installation overview tutorial misc examples faq glossary references legal changelog pymvpa2-2.6.4/doc/source/pics/000077500000000000000000000000001323370031300161175ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/pics/.gitignore000066400000000000000000000016451323370031300201150ustar00rootroot00000000000000pymvpa_logo.png pymvpa_logo.jpg download_icon.png download_icon.jpg tutorial_icon.png tutorial_icon.jpg documentation_icon.png documentation_icon.jpg support_icon.png support_icon.jpg movie_icon.png movie_icon.jpg ex_searchlight_vt_r3.pdf ex_searchlight_vt_r1.pdf ex_plot_lightbox.pdf pymvpa_logo.pdf ex_searchlight_vt_r0.pdf ex_searchlight_vt_r3.png ex_searchlight_vt_r1.png ex_plot_lightbox.png ex_searchlight_vt_r0.png .o ex_eventrelated.pdf ex_eventrelated.png ex_sensanas.pdf ex_sensanas.png ex_eyemovements.pdf ex_eyemovements.png ex_curvefitting_bold.pdf ex_curvefitting_searchlight.pdf ex_curvefitting_bold.png ex_curvefitting_searchlight.png ex_mdp_fda.pdf ex_mdp_fda.png pymvpa_icon.png pymvpa_icon.jpg pymvpa_icon_custom.pdf pymvpa_icon_custom.png ex_svm_margin.pdf ex_svm_margin.png dartmouth-logo.pdf dartmouth-logo.png ccn-logo_h70.png uni-md-logo_h70.png dartmouth-logo_h70.png pymvpa_logo_pie.pdf pymvpa_logo_pie.png pymvpa2-2.6.4/doc/source/pics/classifier_comparison_plot.png000066400000000000000000004163151323370031300242530ustar00rootroot00000000000000‰PNG  IHDRô›Û8sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ 8½ú] IDATxÚìyxUöþ?UÕ{wö=@XE@öˆl "8¨ŒëFGÑaÐq\TÔqTEÆu”aæ ¢¢*²#$@VH:½WÕïªÞ’@¤ƒ÷}žz’îyï{î¹çHº®ë4P3räHžþyÎ<óÌ£ž«iß}÷;vì`È!´k×.öÚ'Ÿ|B§NèÚµkJý>¯×ËþóÎ?ÿ|\.×ÏÛºu+_ý5 à´ÓN‹=¿fͬV+¬ö³¾ûî;n¿ýv^}õU:uêtÔs#‘3gÎÄjµò׿þµÊsþò—¿°wï^^xá$I7ë †,š@@@àT@MCUU^ýu®½öZæÍ›‡¦i±×|ðAV¬X‘r¿+??Ÿ3fpèС£ž·bÅ &OžÌÿøGB¡Pìù_|‘×_½FŸÕ±cGþüç?Ó¼ysqC5@XDœJ,Y²„-Z0jÔ(d¹²néܹ3K—.å†nHR³•ñªU«øùçŸÉÌÌäì³Ï¦C‡”••ñõ×_³eË4M£S§NŒ=«Õ À—_~Iii)ééé¬_¿žîÝ»3räHöíÛÇÊ•+),,$;;›sÎ9‡ôôt8ÀòåË9xð ‡>}úpúé§óî»ïRZZʳÏ>Kzz:çw}ûö­ò;ggg³uëVÞ{ï=.½ôÒ*'9‘H„Õ«W³qãF¬V+ƒ¦wïÞ„B! QU56úòË/Y¿~= 8/¾ø‚I“&a±Xbç|ûí·¬Y³†´´4ÆO³fÍ’>󫯾bݺu¸ÝnÆŒC«V­b¯íܹ“ÿýï>|˜nݺ1bÄ\.ªªòÞ{ïÑ­[7zöì €ßïç7Þ`„ 4kÖŒÏ?ÿ<ö=~üñG P­—F(tŠC‡ñüóÏsñÅ3vìX.¹äî½÷^òòò8xð ãÇ笳Î"///iPΙ3‡Þ½{Çfß¡Pˆ^½z±nݺJŸQ^^ÎСC1bcÆŒaüøñÜyçìß¿_t€À)]×)**â`éÒ¥´k×½_¿~Œ?žÇœòòòJ¯ûý~¦NÊ‚ (**bõêÕLž<™íÛ·°eËÞyç}:¡PˆC‡qÓM7ñþûïSVVÆ–-[øè£ÐuH$‚®ë„ÃaÂáp’W¡*BŸ4iÏ=÷¬r²óÈ#ððówï^6nÜÈÔ©SY¹r%º®“››ËsÏ=GQQº®³dÉn¹å~þùg~øán»í6î¿ÿ~|>_ìš«V­âoû………¼ýöÛ•¼ ß|ó O=õû÷ïçwÞaÊ”)äææÆÚñòË/ç³Ï>ãàÁƒ<úè£üéO" ¢ª*¯¼ò ß~ûm’{â‰'bvëƒ>àöÛogÑ¢EVëÅ ]à„BÓ4ž}öYÞyçfΜIÛ¶m)++ã§Ÿ~Âçóáp8øå—_8xð ÿþ÷¿¹ñÆ(--eéÒ¥äææRTT»Ö¦M›’[âçlÞ¼™{ï½—Áƒ³ÿ~æÌ™ÃáÇ™7oÞQ׿¼^/·Ýv , M›6G<×ét2}útFÍêÕ«3fLÒëŸ~ú)Û¶mã­·Þ¢]»vƒAþô§?ñâ‹/2gÎúôéóÏ>‹¢(lÛ¶+®¸‚Ë.»,¶¯ª*sæÌ!++‹H$ÂM7ÝÄ€˜={6‡ƒ½{÷rÅW°víZÚ·oÏ×_ÍêÕ«éܹslÒn±X¸üòËyá…˜6m­[·>ºB“e®¸â >üðC>üðC¦L™’ôú–-[øç?ÿÉâÅ‹éÝ»7š¦ñòË/óÌ3Ïпÿ¤s yþùç¹ñƹõÖ[Q…ùóçóå—_&gµZyâ‰'hÚ´)¿üò Æ cß¾}dffPTTÄ‚ hÑ¢\tÑE¼ûî»Ü|óÍÌ›7îÝ»óì³Ï’––Æš5k¸òÊ+™YÉ+ ]à¤#‰°bÅ ÆŽËW\{~̘1H’Dnn.N§“ &ðþûïs饗’‘‘ÁÊ•+iÛ¶mÒZYu$‰îÝ»“““ƒ®ëìÞ½›7ß|“‚‚Ú·o/:C Á¢´´”[o½•0oÞ<š6mŠ×ëeáÂ…lÞ¼I’7nãÆ‹½§cÇŽLš4‰ÇœáÇ']oùòåóàƒÆžÛ¶miii„B! bäUР¸¸8vþ AƒbkÑùùùlܸ‘ôôt¦Nó(ÌO<Íf ¤¤„;wrøðá¤s÷ìÙáC‡8çœsb—ÁƒW"ÎAƒÑ´iÓØgÛl6ü~ìõ¡C‡ÆÚ¡Y³fäääðý÷ßsðàA¶lÙÂõ×_OZZÝ»wç´ÓNcíÚµ5&ô¡C‡Ò¨Q#1¡×?E¡k×®|òÉ'ôë׳Î:‹fÍša±X’Ü…#GŽä™gžaýúõ 2„÷Þ{Ñ£Góæ›oÖÚ# ª*¡Pˆ;w’™™‰Ûí!Рa³ÙèÕ«;wî$//¦M›bµZéß¿?mÛ¶E’¤*£¶¯ºê*>þøc>þøãJí¬¬,Î;ï¼Øsçw-[¶D’$^xá6mÚÄC=D£F‡Ã\tÑEIîp‡Ãêª"Ë2ýúõ£_¿~I÷3Î8ƒôôtæÎËÚµkÙ°a³gϦM›6¼ýöÛU.ôìÙǃ$I´k×.)N@’$ÆÏßÿþwÞxãØzxôw5oÞœ‘#Gât:cÏgddиqcòóócÏ麎®ë•®]1&!7xNE¯AE›§iZìúÑÉBâõ£íXñZ‘H¤R[$¶³ tz'ô|çž{Ž pçwâp8¸á†¸á†b祥¥qþùç³dÉ»víâ©§žbñâÅ5þ,]×™={6Ï?ÿ<¹¹¹”••ñÆoÄf× ‡ƒ;իWsýõ×óì³Ï2pà@Î>ûì¤óÂápÒã.]ºpË-·ðøã'Å“Œ5ЧŸ~šœœœX œ®ëx½^$IbË–- 6ŒáÇ£iK—.=êÚvË–-éÚµ+áp˜ &àp8#î%ºNîp8¸à‚ ¸à‚ :t(×\s yyy1²J¼~NN999Gü<ÇÃÌ™3¹þúëiÓ¦MLÁæää0þ|úôéCŸ>}b¿Ëçó%<@ûöíÉÌÌdåÊ•tïÞEQøú믓H¿&X½z5………4kÖŒ¢¢"¾úê+&NœHË–-éÖ­Ÿ}ö&LÀív³mÛ66oÞÌìÙ³‘e™-Z°yóæØï_±bÅQÛYº@½£Y³fÜsÏ=üîw¿£  €~øY³fa³Ù˜8qb’B¸ùæ›ÉÈÈ oß¾µ&bI’˜8q" à믿æ7Þ  ¢ëº˜á 4xȲ̭·ÞŠÝngÚ´i<õÔS 4¨Ê(÷DL˜0E‹QPP@4-Ǹqãxï½÷¸å–[8묳P…íÛ·3tèP&OžÌÈ‘#yñÅñù|„ÃavïÞ}T¢±Z­ÜqÇL:•ßÿþ÷œvÚix½^¶mÛÆ<€Ãá`Ú´iôîÝ›´´4V¯^M=hÑ¢¥¥¥dggóè£Ò­[7Î9çzõêUm{ 0€#FðÖ[oż=zô`âĉÜu×] 4ˆŒŒ öîÝKëÖ­™>}z%»4yòdž|òIöîÝ‹ÍfcõêÕx<žjÛ4Ñæ¤§§3mÚ4zöìÉwß}‡Ãáàâ‹/Æf³1uêT&MšÄm·ÝFÇŽY±b£F¢gÏž(ŠÂرcyä‘G˜5kŠ¢°k×.DꔣÄxàÑ ©aŒ<-Z´ wïÞ|ÿý÷ìÙ³‡Ñ£GóöÛo3bÄȪU«øàƒ¸÷Þ{éС¯¾ú*§vgžy&‘H„‡~˜ë®»Ž¬¬¬¤ë‡B!æÍ›ÇÍ7ß̹çžËàÁƒñûý,\¸1cÆÄÖ°ª§kàÀ4iÒ„~ýú‘™™ÉèÑ£Gl[S”`:uêD÷îÝcê¾k×®´mÛ–#FЦMl6çŸ>Í›7'??I’èÛ·/cÆŒÁãñЫW/²²²((( ++‹[o½•ôôtÎ<óL222Ðu¬¬,ºwï#¿–-[rþùç‰D(..&##ƒsÏ=—~ýúár¹ÈÈÈ ¬¬ ¿ßÏðáùóÎ;IKKÃét2pà@Š‹‹)))¡cÇŽUüéºN«V­èÝ»7V«›ÍÆi§F£F>|8]ºtÁjµröÙg“••EII Á`®]»rá…Æ‚ÛíŽ}§ž={Ò£GŠ‹‹iÞ¼9£Gæ¿ÿý/wÜqGìwuêÔ)i9C’$rrrHOOG×u† ˆ#ÈÍÍ¥{÷îÌœ93fŸ¢[ ~¿Ÿ /¼[o½§Ó‰$ItëÖÎ;SPP@‡˜2e  4ǃ®ëtîÜ™N: QH"S\ý"‰°xñb:vìHëÖ­Q…ƒrÝu×qÝu×qÅW0qâDî»ï>ÆÇO?ýÄÞ½{2d‡³Ï>›‹/¾˜iÓ¦p¹\,^¼˜Ä>Ãívãr¹ÈÎÎæõ×_çüóÏŒ@¢Aƒ1}útnºé&ÑI((( //ÌÌL‚Á =ö@ Æ‰jN.„˽¾gT’D~~>/½ôR,2TÓ4&NœÈµ×^K0L:¿GôèÑã¨×œ9sfÒzبQ£˜={v¥óÒÓÓ¹á†X¸p!W^ye,Á…€€€ÀÞ½{™:uj,¶GÜ{ï½¢a²B?pàÛ¶m£¤¤„¾}ûÆò«ªÊöíÛÙ¾};‡3Ï<»Ý.Zµ–PU•p8Œªª±¨O›Í†¢(躎ßïÇf³%¹£ðûýX,–X¤©×ë­Ë²eËbчW]uëÖ­ãÞ{ï¥ÿþlß¾þýûsÛm·‰8FÒ¼ñÆ ìÚµ‹·ß~›nݺU:oÕªU<þøã 0€Í›7“““ÃÔ©S«œðÕ¾úê+î»ï>¼^/:uâÿø`ìaž6m™™™hšÆ¡C‡X¸p¡Ø ) p ‡Ã<þøã|ùå—lÚ´‰ $åNˆ¢¤¤„)S¦••E0DÓ4~øaÐkˆp8¬OžhÐ }Æ º€€À±£¬¬L0`€þóÏ?Wùú%—\¢ÿóŸÿÔu]×wìØ¡4Hß¿ÿIùno¼ñ†>iÒ¤Øã… êS¦LÑ#‘ˆ õ믿^å•WD' ‚Á >qâDý£>ªòõgŸ}V¿õÖ[õ`0¨kš¦_zé¥úâÅ‹õçr¯(äKKKÉËË£W¯^H’„Ûí¦Y³fIùÆê»wmܸ1-Z´`ÇŽõ¢&~úé'ú÷ï[&êÓ§?üðƒØZ$ Pî÷#aýúõôíÛ›Ís¹oܸñ؃â|>š¦%­ñ¥¥¥UZÃýë_ÿZeñ†ˆ?ÿùÏ5ŠÉÏÏgÁ‚Õžg±X¸ÿþûkõB¡Pì;X­V<O½¥PU•²²2222bÏeddàõz‰D"IKo"JàT¢(Ôt·÷Oûì*vLXXo;¥v«*䙟zƯ¼•kòm© 8–ðÑþýû³~ýz‚Á 6›uëÖq饗֌ÐW­ZÅûï¿Ï·ß~K~~>›6mâÏþ3Ó¦McÖ¬Ylݺ•;w2iÒ¤j÷HÿJ4 j½*„ †¶R,Vl”ƒÄí‘ÁïÇãÒÐ#:6Ùdi|cŠ š°ŽjΩxGÌŸ?ŸíÛ·³oß>þú׿2f̆ ÂÅ_ÌË/¿L¯^½˜1c?ü0?üð[·nåšk®9áùø÷ïßÏßþö76lØÀ®]»¸óÎ;¹þúë¹ì²Ëøâ‹/¸õÖ[c….½ôRÑù§t`ð>V‚ DÕ‡ÚA® ¨8AX¶lË–-cãÆ,Z´ˆ 60cÆ ¦NÊi§ÆwÜÁW\ÁòåË™1cÁ`–-[2zôèšz»ví5j#GŽŒÍÌ- ={ödþüùìܹ·ÛMÿþýOèÖ™“‡æ'ùó|æ\Pà [ BŠD°º¬hv„#:…˜¿< ƒÃB]E+§$¡WçœW*<0`;wŽeókÛ¶-Mš4aîܹ±"!ƒ bîܹìÚµ‹‹.º(–÷úDÂãñ0bĆ {®iÓ¦¤§§3gÎ~úé'$I¢G'|O¼¸;OÖwk€§ƒ«¸_… ¨žÐí5°‰ÈÎÎæ¼óÎãÜsÏ5¼N'‹…?üᤥ¥ÅòãÏŸ??V¸wïÞdffÖŒÐ;tè3&Q1ï©ì|} q—¼xAÊ0ºNd-j—GG÷ûIsEˆulŠ¡Î‰€O§d¸Ôs€|ÑÊ ŽÐ+*ô³Î:«Êó† ,Ó¥KºtérÒ~KZZ£G®Ú(7o«w-lÀ©ô5¢®ö¬ÜË¡WTèGÛgœqFÒã–-[VJ:#R¿žtT\[Ôr ­ñRÈ 67R$ˆ.é(VÍÂá(öjØ-æ[tðë¡'^©º`7±™èäA9B8µ¬}múñŠ“jâ•*(Ö ¤/E¼àð`Ñ}¨v+r$Œ¤ª8:~¯†ÇN,l݉9êÑI|;Úœ[úÉëíêh¡ ¤.j"ªßÕÙ€º\Æ„žƒ¦Ì ô¨B·{ B²ÛPý!$]ÃåÔñ•©¤;++t1ì¡ Ô½]úÈÇ4 rÌ ]ú¯nàøAr=.— )B¶[ @AÅíTñ—©x¬Qîø4pêÆº&2åp,kè©Àÿa%Ây@[Ñ Ç¬Ðk»†.=åæd‰ÔÍÑCàd›ñ–°ì‘‚°ÛÐü!$Ýp¹{K5::Œ9€®AqM䪧B±§¡W·eEÍ$rЀ­@„Ó€¾¢AŽ‹Ð«³b =å»PªÁ9Ñõt cõÛb-¨É¶5“Kè"(N a¡ÓX¨ó:#t±ýWGè .÷p¬vðzQÒœ¨þb¬I× –ë8-&¡ë‰Ä;PG(õTñÅ}øá‡üãÿ  ѵkWî¹çž¤ò¤kÖ¬áÅ_¤¤¤„ÌÌL¦M›FŸ>}ª(ˆ" P"@5"êÐÂ×6—ûöíÛy衇8|ø05âöÛo§wïÞIçýôSJKKc甕•QXXȈ#hÕªçž{.ëׯ§¨¨H4¸Àq` °•‹€.¢AêŒÐ«³– “úõë×3yòdÚ´iÃe—]ÆþýûÙ¾}{Ü òÍ7ß0~üx²²²2dV«•¯¿þZú‰…D|kÄä0HvP, ë †Ài‡r/6ͬ´&#« €Ý\r×TÐ" i"±L*÷¾EJ>tà0Pbá„ó iÒ$ž“«uëÖ”””$©o‡Ãpà8pUUÙ¿?ÅÅÅœ'Ÿ|’ï¿ÿžçŸžž={ÒªU+^{í5>ûì3òòòÈËË#==?þ˜fÍš1dÈÑwõlò Œä0{Õk°€Û ¡ „¼Aœ,”—šAVæzYÐ(ª‚Æ*˜*5u¦q ÈÕ¥‰ ÆÿÍÈÈ`þüù¼üò˼òÊ+\{íµ\rÉ%>|˜¢¢""‘Hl0ðÁH’ĸqã¸à‚ °XÄP8ø€€]´.B¤{­[F¯ÞÈ FÛf³qß}÷±páB,XÀgœÁ¤I“8|ø0éééèºN(bñâÅ”——sÆg0þ|ÒÓӡןbÂ$t$P}1—»Ž YB>‡ÇŽ?`nPݨ´f“Db’TÌÕºP*8n:vìÈìÙ³“žkÔ¨O>ùdìñرc;v¬h_:@°4n÷º‡R;‘§ÓÉí·ß^é´?üá±ÿ³³³yúé§«”ˆõÒÖ„²Ç0ìº\p)H¡ 6«FØÂãqãó’6sÛzyìU„¶kĪ« ¤B7×B¡ œ|1ü{.Aæ'fR_ ÕÝÇ B?)*<ñ9©Âã€Q  …îtÄR …îW±¹|…Æn6 S¡«†kL¬¡§8¡[á68)(V"$æ(xIÞD%P'4P ¨C#.ý„Zs¹ŠéšR¡ùƒ ¸N×ËÁå6N …‘-2ªªa³€¯ \vC£‚/R91‰@Tè¢êàS —,à·$M4ʉ!ôêl@²° ôz‡äæf–8“еº®!½a™c IDAT[e"ªŽÅ>¸œÄ6—«f€œ.ö¡ B¨-‚…X 2?Q8ÉõS¡§ÂLYvªùÀ傈Å*cµè„4›¢á÷ÓWèÕ¸OT3SœˆnOÑÁ\Ë 8“&$ðÕ{„ŽS¡×2(NzƒƒÕlz«AèŠéf×Ê!ÃjŠÝ‚Å"ªaWT ËÀm3'Öa#ÊÝ%‹~‹VUÄžb Ýzò³€@ÍP,Êè t rb ]¬¡ÿš:ÜTèfP\S”#Û$‹‚¦é(ðŒ ¸(ü8k@z…¿'Y¡ BH)D€¯€BÚ£@”J­oBkè§’„óÅŠj9x:@À‹Å&c³j誆UÑ)÷As{\†ûTh&U¯È5âõÜN2¢åÖ¡ ¤ 4Œú:·h?©¯ÎBo¨SµŠ[ÖÂ@¤tÐUPýàN¿ÅnARd4ÕHóî [Ô£p~ œR< N(侮.RÈö¢ež: ]¸Ü¢e·\FU1ÈœÈi†ìÖ|™2l+–pEÖ±J*~?x2â ݯ„ŽñP$’IÕÙ¹¥>ÑÜæç³dÉ >|8gŸ}v¥·>|˜?þ˜M›6Ñ¢E .ºè"²²²D{ Tƒýi^Ë88“yR½:PÐ#‘K–,á§Ÿ~¢gÏžŒ7·;Ù—¢ª*+V¬`Íš5ȲÌùçŸÏÀ…>¨_•6ÙTè‘rðxÀïÅê±.óãpIH²±†îIضæÓÀ% eÞ ýhGÂôù|LŸ>‚‚zõêÅc=ÆòåË+]ö/ù Ÿþ9çž{.åååL™2¯×+Ú[à(П|Ú#1jAœ$B¯¡ ˆD"<õÔS,_¾œ³Î:‹O>ù„¹sçVºì²eËxä‘G8ãŒ3èÚµ+wÞy'kÖ¬ ½~,|”ÔUƒÐ-i E —{šåX=64¯»CBB'O¶5¿¹]Dµ§¸cÆVƒoâ›o¾áðáÃÜqǤ¥¥áõzyë­·:t(‡#vÞ÷ßÏŸþô'Î9ç:vìÈ;ï¼C0Äãñˆ68 ?^Z nK:4ùµH,“ŸŸÏ|À«¯¾J§NhÞ¼9üã¹å–[hÒ¤Iì¼ü‘œœ&L˜€$I¼ûî»ìÛ·Ozý"h 2Ù5.øcO·¡––ãpIȲŽÏiæzD7Òÿºå#ÏÅ5ÄÚz½ÃB­’JüüóÏIõÏsrrxùå—)--M"ô›o¾™_|‘mÛ¶ñã?rá…Vª™. " ½„^RRB$¡eË–têÔ ‹ÅÂÎ;“ýÒK/eƌ̙3‡`0ˆËååSS‚Ð%»aÔ%5>› kèš×ÃФâ‚ÇLýRAÕ«Þ¶fÖnA3ÿ B¯çÙy…€˜ˆe¡x¿„:(cµÆß`³ÙˆD"hZr„ÄþýûÑuMÓP…üü|Âá06›Ð]G‚Ž‘îµòŸÀɵà ¶À›0¼5MC’â½c±X$‰p8œt¢¢"‚A£²“,Ë”——sèÐ!Aèõ×Ë2ÆºÝøWR I–ÐËK±ylDJ}8]º®QÁ®wCP3n§'ïÄC …z…-+Å~X™As­d þZ“&M(..Ž=>pà™™™Iêॗ^âÕW_¥oß¾sÕUW±qãFrrrD› ÌÖa:"Š:T…^Á„"ðE øÇ߆ÓÍ×GÒ$þðáÃD"‘$uðÜsÏqÉ%—pã7pÿý÷óÎ;¸ú#t%™ÐQAIÉçÅæ±¢–py$tMG2ß…fªA-Q%® EžšƒYI>š{àònpMãhŸà)8p ………|óÍ7ñ¯ý‹³Î: §ÓÉO?ý„ßï ú={öPZZJnn.^¯—KlB8~þ…À>ˆÝ’õivÛ1n†´ŽŸÞ¼ys:uêħŸ~Ê¡C‡øüóÏÉÈÈ ;;›Ý»wsàÀ233Ù³gÅÅÅ’››KzzºPè'‡¸äàŠÄ ]×@EÑPå8Ò<öp¹@WUCÓkÉ„î"êDHI$–½?Ú-b¢S§N\~ùåÌž=‹ÅBFF3f̈©ð×^{Þ½{3cÆ -ZÄâÅ‹ñù|Œ9’®]»Šö8¼@^ˆ½Ê'Ðka222¸ë®»˜={6o¿ý6ªªrÇw`µZyàèÑ£wÝu¿ûÝï¸çž{˜2e š¦Ñ¨Q#&Nœ(úöÄ÷¦|BãÕPè ´‡§j¹O&èªWè:4C‰;ÄBXêz-3Å]sÍ5üö·¿EUU‡MÓø¿ÿû¿Ø^Ôßþö·\pÁD"dYÆåra±ˆ¡,PtŒd2FxޏKêAÓÕ2S\¿~ýxýõ×c15QïÛ3Ï<ƒ¢(H’D÷îÝyýõ×cëèN§»Ý~üý‡QÕøæ)«ÕŠ¢ˆš£+öè¬fa#(N"á Œæ ân­#iƒÐMÿzH›IæbÍ<Å ½–™âE©±.Ë2éééISi‹šªªIA;Š¢$÷ Ô'™o¾ÂôGd‡«Mw ¹Ü+&’©ê9§Ó‰Óé¬îR5‡Ïç㦛nbÛ¶m´jÕ €›nº‰óÏ?_tä{7ñðfaÌ 8Mƒ@Gº±†îvƒ¦jÈÈR\¡'dHUüJr¹¿òÊ+±$C‡eêÔ©ØívqÔ+ò±d$ÐW4HƒPèÇkrŽÓ¦Mcüøñ•"r•yEy9f¾Å‚E px,¨¾ n·±=IdsOZP5ï-y›ÚÑ ö¥×ÓüM®Á9§FŽÉ“O>‰,ËX­V±….5|'@;ÐV4Fýšÿ“4©¯B_¶l»wïfÀ€ 6L¸Ûjl¹Kñ’æ»I@$ŒÕa!RÂé’ˆDt,ròzâ´©&D-ȼð+*βeË,X@»víøÍo~#&öõØhØI¶'ÙìŸDp\„n±X¸øâ‹‘$ MÓ˜?>ëÖ­cæÌ™ g…€Â„_—^ƒ_økÈ47…zÁîBÒT$‹‚E¡C¤»UBå:. Èfa– f(tM¥QO$"æ”+êý¨õŽ‚š¤~=ýŒ3Î`Ê”)4nܘ•+W²|ùræÍ›GãÆÎ &ØÙ´"DëÄ@èy¾'pÐT4Ê1# ”%Ø`mÕy-2ÅÕ+¡Ûl6.¹ä’ØãÆsÏ=÷p×]w!Ër‚Y<”ðë\‚Ðc(ÚÆºÕ ª†d± …T´°ŠÓ¥s WÃmÛþ€.fÜ'ªIè‘cÈ5Uè§€Ë}àÀ 8€áÇ3zôhvïÞ]ÐC v Z¼Sú‰ø ™ 9@wDf¸ãµ‡‰×ÍÕµBOÕzèqO„ è|Šu±ŒQâ <ÁÜË5[³w£G9H³¼àpcQCH=†H„4ÆŽÃ*›å@$^:5 Ýü&"ê½î`:$<Þz,„n¯Á9§$I:‚H;Å쀸M3ïOA…B 2?n80²ëEñSm©¢¡Å•””ðî»ïÒµkWTUeþüùŒ5êúT"óA)~–sì5ÏBqŒæ«"†Ë] ©h — ʽ:n›åÎÑK§Šuò»U~)¹Þ|óM5jDzz:Ë–-£E‹´k×îÿÕaæþד*zò; ˆÛ$t°ÕÍ SÐm6‹…>øI’¸ñÆ5jÔ)Þ;i&™·6ÿß<Æké›C­»\HjÙ"#‡ŽÐÈ&Pª„n*ôÃAH×A×EùԔƯd ½Q£F|ñÅø|>ºtéÂôéÓiÔ¨Ñ)n¡{bøot“Ü¿O‘ï¶ XE:"¢ÛSâV©EÅÅz%t·ÛÍäÉ“e=Tì<@.Pr ׈îC7ºè°¹!‹-MÃn¿W§¹-.¿Ë"ÐA2]D¯ŸZ„ …8pà¡PˆÆWX‡6°k×.B¡ä•¼ìììzÛ]2vìXÆŽû+êX Ø ´Ç™ÊK‘ï¥c, ©ô@&[,ÀÕ?jY>@×u8€×ë%--fÍšUJÖVPPTÈ  E‹"*¥öˆŸ›3òCÔ2D"ÁŠ+qBWü`oŠ%D±HH¡«„E×”i¸,Ä*°”†Á­QîÑo$”zŠz-·¬,\¸+VžžN0äÉ'Ÿ¤M›6Içüãÿˆi8xð ÿûßÿظqc¬†²ÀÉÀÀ>â1ЩBè>@†$ °¤ŠB¯ePÜš5k˜3gÍ›7§  €©S§rÞyç%ûaV­bùò們©qéҥ̟?_ú±AåØÝìIz,A¡ûÀîD‘ìVÔŠÅ® k~/¡'(ô4éèÃZ¨ö†§Ð7mÚÄG}ļyóh×®sçÎå¹çžãÁLš¡Ïš5 ]7zø‰'ž ==ýwq§"t 8…¾OX& h ìÝÔz‚ø...æñÇgêÔ© 6Œÿüç?ÌŸ?ŸaÆ%åv˜0aB,™Û_|Á–-[|˜@ ê”6+V¬@Ó´Jî8‰tŒ¬èªI¢å)ò½ Y@'ÑI©7±¯¡ X,–ØN±ôôtE©´^ÅþýûY¶l/¿ü2’$ B¯9ÀPà4Œ}§û€‚j¦f‰„^¡Ê=2HÍjkzœ¤r/V— B¬V Y…±¼[CE@Ñ¡7…ž€¼Bøð ð™Yj¶íK¸Ãüþøžæòòr£$b¥QC¡Ë–-cذadffж>i艱]Íœ„³.¾Sˆh‰T ‹Q±Q µz|Aøp5ä×n†ß™õÌ, ªªÆ–Ô‚Á š¦UªªÅÚµkiÚ´)ÙÙÙÆûE‹×FLÅÿ«›ziU#`X|Ùfœ¢ûÁáB+óaIs¢…"X2’8óc5FÀª„.â„^ÁÞº ÜtYüñúOZ=Xºt)‡"33“¯¾úŠ.]º‘‘QYò¿ÿý·ÞzK´óIE˜x”J8¾ø7°&@Wš"q@tSª@ªl\v¸ü‚øãW?Šÿ߸qc¹¹¹tëÖíÛ·£iZŒ°“îÄp˜·Þz‹K.¹$VNYúQáÂp`A'û0Ü[‡ðž&ûS 0¢àe*g0K§JPl … ãàp¢û°´p¡‡Âج„ ÀXC7ë¡#¦¨Oض&¸=a¡VAqýû÷'++‹‡zˆ®]»òþûïóç?ÿ™ÒÒR¦NÊìÙ³éÒ¥ `D:ýôÓÉÊÊí|ÂáÆÈrç6™Ê\vÅnt6Év''vÊ`茲™§žB¯EP\³f͸ꪫ˜={6£GæÓO?å /$33“ûî»N:qÍ5× Ißÿ=ùùùœwÞyH’$½ú©Õ@ ÷š ¼oôú£ P0#ÑDF©Àz0 ’Õ$ô QÕå„`«#H0ŒÕ!ôçTˆ¹Üƒ*Ø”xœØ¶– ½¹Üív;<òË–-£¤¤„û￟Aƒáõz;vl’k½uëÖLŸ>´´4ÑÎ'¼‡`d‡T·1¢ÛRõ‚— œ œežÿFFÉ… ‘†á#‚4R‹mkŠ¢pà 7жm[vìØÁ5×\È#”«à’ºDB®÷T$t…M©†Ð£§.ÒÍ1~0ÿö0mÃ&±axñºMK€7ÍçüDS²Ö4àŸHq:ÆfZ—è¨Ô%tY"d³Uc'êÎÏ*½J8s0¶ª6Ù4 L;wî¤sçÎ\ýõ´mÛ6ùººÎÆY¼x1¿üò :tছn›fŽŒB`MÂ`ŒfN·'̃$s}‡±]-ÓœL.ÀX_W*(sɼޤtƒðÃ^°¦A°E‘°Ø"! › üÁ…®ƒW‹zÔ— ªƒYF«æHt¹s÷ÝwÓ§O¦OŸÎgŸ}Æ’%K*]÷£>â¹çžãÚk¯åþûï笳ΊÕO¨K”›c{wÂsasÒî"^F«#ºÝbyFäûEÀ…ÔÝ*÷§@Ý0áDRÙ†©6 >v=ô‘H„»ï¾¿ßÏ#ú(n·›™3gòöÛo B?2Z`lQ±˜8Ж]Fesà‡€OLõ.U3Mê•Í5¸ˆ™ú5àÃê²)bµ™ =§Aèš~=y =ñ› T{ŠºL¸Â‹Hš¢¡iFOéR|vÖ²eKV®\‰ªª(ŠÂž={hÖ¬Ng²ƒµC‡´oßEQðx<4mÚ”¢¢"Ñàu0#È5XÁt!^ÓÁiÚ ø ø‰ºõ¡­¼´ÅÈ'¢%’G"\a sU1쀮Ä_w¹\¨ªJ(ÂívSTT„ªª´hÑ¢’ x<E!++‹Ý»w‹{ãhæ8¹r’Lå-iaó5›©ØU1ÃÏHPéŒu6Ýøß"ƒ¢ƒ›)P†Í­ –ú°ÛÁnÕð–CšÝ˜D"4]îa’힊³s %ép¤YéÚÏM=r<¤7Žæ¡C‡âõzy÷ÝwÙ¼y3/½ôãÇGQÞzë­iOš4‰%K–°cÇV­ZEnnn¥ºÈucŽã#+Zi§¢È3'ñ`¬¯·®@äÆò[:ÇVBE7•¿qu±¨Òð¼<m€lµÐ¡‡+fZgÇw±´jÕŠAƒñüóϳsçN^{í5:tè@ÇŽY¾|9ëÖ­à²Ë.cÆ ¬Y³†Í›7³|ùr,ú‘Q€Qã<#­kâkèÑY„Ùbu§™Ä¾ÇœÙ÷1ÕûWzt=NMÙŠða3ºÝ² 8Í%˜°A<"IRèÖjI?ŠfÍš1kÖ,þþ÷¿³téRúöíËe—]†ÏçãŸÿü'}ûö¥I“&L™2…^x»ï¾ÇÃ}÷ÝG«V­Dƒ×9Ê1"Ë;šcvñ@רpa,ÁEcileVÛb$™Ò€sÍëýÇ´ µ!ó@VŒì mR_“5ô8 ;NfÍšÅã?άY³hÛ¶-3gÎàóÏ?§sçÎôíÛ—~ýúqÓM7±páBTUeüøñŒ7NúÑÓVsÀ^RaÇæS çœ47‰¿FTj¦9¨3*Ìü- ˜ =A²)È!/Ž&2xËq»Á¢GÐTc™Bª¡Ð=¢sˆ¾«IP\²“lذa 6,é9·ÛÍ¿þõ¯Øã¦M›r÷Ýw‹>)8h=ˆoAÕìAÛ 6 ‹9‰8Þ‘`':Ö’Ðþ?CÌ« 44‘kкukžzê©Jç=ú裱ÿ- W_}5W_}uÒ9‚ЫEGó¨ŠÐ²„±îž¸5-—x&¹Ã¦Ò—â ]’Œ²iº ²ü>ì o·ÇˆR5Ã3n(ô€©Ð½¢c€B¯]”»@ªBÂHñj­âùŠv qâ.cb\¥ IDAT”XŽ&hÝ^ËÏÝøICf(š0Ö rR/ÕšÐâ©v ·M¸RR7Ä·²Etô(ĈpýÅœ¡Û‰Ó(6 (’éÅWA‘Bn…@‰·KGÒUC¡›Võr§dL´S u›ϳuªôÕÖå.Ê“úÈ[ªbBŸçè÷°#¨ âkí5§ãÊÒ)m¨% ¿f#שdtAè©„FëaU©(¹Â߈‘-*ÃEg5‰ÜK<ÉL£éeÉ(›¦GdÉ_Ž=ÝFÙ/‡ð¤º†ªU1>"¤Vq qôêȃ¨†/£–TÅsæ·.­ãAfÅX6èä˜×Þ|AÝÔ¦²aD<¸LSZ\o³s¥Ú´B¡§:¬@_“r**s½ þcúA¢ûÆã¹,R毋˜ÄWÅ9N³ÊêÐH¦¥ a¤äék¶Þ'À÷uð9F: Ž©§‰BÍR¿ B?I(ÇŽkBåä0R¥n1¨¯Ì|-šN©âÜP¡ë GÀ"!}ØÝ¨¾îÆ:ŠAÕÌ•;S¡[ã÷¤2G#ôªÎqîæ¿#Ä/‘/6‰w½Iø5ÝßVpËáÀl’pö2¯ÿÆÂ„lN4"ÇÐkí16E}"ËëÉ›¡!¡V£ÀEµµÔ÷³‘ìˆg;’ Í;vW|n„xÚi 'jK`¨i'JÍqžˆ4à7æ/ÿcÑ@«ÁxŠZ¾ª*>J@o`9ÕÉ"p¦Ùz6Œœ{ˆÆø×™¦ hbÚ“w©ŸeJ½6 .'õ‚Њ ð F ‹µíÛܼ…Ö™CãhðnƒÐu“²$|>œéMˆx¤µ×‘t -Jâ¦B·é ëÇ_=Z 2j²"Ⱦ»ù«£î°.««ÍÏmŒáöU¡Ž‡˜oÍ÷$¢±yíô ­-sÓg~î§fk‹)Œ¦ Q.<­ŠÄ2•¼p¹§64Œ¬o.óή8þ¥ Sç–&Eí=Ž;OþØHp:«IuƒèøÐìA¢2ïGÜG9#40#¦ŒáÃp•ùYäcñ¦­vžDE|' ܹ%©e·_†Š:¯ì¨· P88žÖ^ƒùçWÊ·[¢HŸ/W±Tøébáë×ERåêÃ>`‹Üh)x 8ËgÒl£tâ{5~¢|Wµ|ÿd‘U!YÉwÄC0SÎ?Z®=%«0øŒ¼îf2Ù.RIq bŠÈ¶i朅š8L3† dk=.Ω;µxÍc"ö•_ñ D¢ÖÐ4Ðm;oR“´H§âáÒ²µ0žËÝöY×5ò+FâU¾»¿*.âèã>M¸^€{…{g„‰\Ñ2RVB/Su\Ê óÅu«ÅP1´£Q.ü„OùÐPè®r_›"+ØVac¦º¹c¹ºãêäúÄn:Pf¶ƒ¤¸AB:^ȬMø÷B¼ ÛþÙµoÏAŹ7 ÷-“ı:VÔäžî6™‘,¥·¾›aÂß*>í¦ÒÁsmhÞñË·…ô á§°ð]HòPïùw­k9—s»ÙðSE~$}ž?¿/ãX1‘\-+Öè»#¦\K½¬zq?w¬'2 *ÇìäÐÕJ:1T>÷TT„øaJ Â\æÖgUè .TU‰}¹Y{ã>´~]Þ©xÝé€h ÇPºn›X¹"µU6»¶Ú$Â*nŽ£f¡'Û.­zß#L5IÀÝYTRÙ¹òѬ6*–=/?'ξ·dÓT˜ÑßNÇÏŒ–XÔ§‰%]~+À</oÊ_GìzQ‹Ü4"Ý'ò¢ÍÏõýŽÚýܱVùíïù¾sU%`8ð"Œ–‹eáÀ¢œôX<Ë}ЀùÄŸeàe~8x•.n!gT8Ê”ñqÆpÔt4G¸ïÐÙ”ÛñFÅlñyß^—«w]صr定r†EU´<%Ç"jKˆÊ-t|-²¸@x6%ü7YßJšÂoq9f¦Ïdr]ùî¹çÈ9C¾U ¿¥üŽY¨›ë^"¿£<ü>)R{ð;ùÍ™~÷ž¸ÜÍb¡›¦ÉÒ¥KùãÿÀÂ… 9å”S0 c1s/E+!7ð&+M“íä߯†°‡ siaêu‹.¬Æ*]¶OTþ4DâàØh8h¶…•7©NØdÚa¯¤#e©+µm\K½M¾q‚Ýj¹²·ä&Ÿ%ßñÙã)þ8L´ãxî•lˆ÷äøÙx®úˆ€ieà¿LÎ5ŠÒ±îß·D!iA3¯HÐuù한(€¯‹`rcƒCPwÒئï:jðºp+×™?K{?í¬é÷úë¯óË_þ’ÖÖV>ððÙÏ~–H¤4ÐrçwòÜsÏuNa»ôÒK¹ä’KJF¯JêÉ5|÷zì ]vâÛÀewí. 6i>n ûvkQlÎ'è‘|i˜,GÊ•P!®'„_O§t6ÜhJ›×ŽF%§µŠÏ!¼å¡I@ùd¼ÖYUÀ™tuÑo¯CÄ÷ž»[wËj» ³ä»C>O`Z~GB MdŠ+fÉë®ÑC…ò>c"æ“ôÕ¢Lùóx?©^½íåÐÖÖÆ]wÝÅúõë™>}:ŸûÜçºÌjX¾|9·Ür ÕÕÕhšÆŒ3øêW¿zp€þòË/óýo¾˲¸þúë¹÷Þ{™5kÖ bævTÄi&*ÒíYö/ÙÞó*@›k£î”ãSbwnÂk$Sïs•SVm/°ÓKvŠvǶ Gm2mUQá¼,:<A9|n¡L›^#~ƒ¸h½c|àªù˜àXy@×jÛ¼0£á³Sb² iÑœ3ÞþÆ7uò£âfWת‹¥ïºåÒ>%å!qá œè³ Þ“÷G “†}VÀd¼<·aÎTîpXònªãùÀŸÅ-ØF×2¼ƒt½1tOôµ¶¶rã7²`ÁŽ?þxn¾ùfâñ8—]vYÉ1œvÚi\~ùåJY©©9l`ÞÒÒ 7ÜÀ'?ùIŽ;î8n¾ùf‰ŸùÌg‘ °„ßC²‹7É®Y+;÷l*OK‹ÈN ËÃ⦃VË9û¦ÿYTTæ}8ñ‹>3$_ö™¬ìÿ"ÑŽõyÞüJöxŸe]IÆøñ’l-áÓ·}оã3ª+Xú® ‹,'À<ÚÜÈ‹Ç`“<¿@Îï*¢r ´Óþùl›FŠòüETVÔN‘Uõ"&°èÛzõÞÆÐóù<7ß|3Ñh”o¼‘û￟ï|ç;üä'?)9f÷îÝD"‘NF …BèúÓŸøð‡?̼yóÐuãŽ;ŽçŸ~º#pÔèsBùݬàhr·÷J٧ʶ7TP©g!àY¼\òób•®*7Z€ÿ•+0Pضˆp•ý&T\Fd£‚dó7±Íûxv“ðÝX¼’4Ëg%»<›ó·#^¶å¢´»„¸O™&×\ ì£>?ç©xS5\9ñ®xOðÉ’7å¸c|2è]Ÿq³V¤õX¼pà‘9_•ÈÔÖƒF—žXèžR¿cÇ–/_Îã?N}}=‹-bñâÅlݺ•qãÆ•¢H>OSSC† aâĉhÚA¶Þ¼y3\pº®.hêÔ©lذÁGN…(Š›¥tÜ©KuâÈÞë³Ýv¯GÉûŽèŽ{)-[ËîºÜ3H&ººma„4tri¨2Df¤ Z´®uèŸX‰ˆþ;ºŽƒHù´l‡®ñ°FŸ Ø—ç[——[î?6泞mÑœ[Dã]'¯åe%æ”1;eJ€_°„Å?©‚…ï •Çĵv¼X.kDÓ&D®$V¥«ä»ÇÈÒž‚WïꆞE5Ñ98@ï]§¸-[¶0jÔ¨NwõôéÓÙ±cétºÐ]>»ÿþûY¿~=W]u ,èäÃCI›7o.¹æiÓ¦±}ûvÒéô töáŸqÛt…'ö(|¨á>ÕwÂAúÙóI9ÛËb—K1×·p¹Ïåþ¥å[iy„¨‰Ÿ‡,/úTWðákýx¼Ì‡Ê=4Ÿ:õº°®•Õ¡*{\|*ž?Y®#U“J䘔ȑx98“s6 jr…,=é§—(ꚦuòûèÑ£ …BlÛ¶­Ðkkk1b=öœ|òÉ\ýõèŽã”¸út]ǶËA®£ÃÝìÓèšæ4i,^E¦åÛzþ-/slÅdk7⥞4û"Lî#š¸Ü­$ÆA1‚e ièŽF&í0ÒÝYÃ`]»šçRåTn¿h”ŧ*óT|ýT9¾®Ìo°Jô·<Ž—÷Ë“ã\Í?ä{­NîxJq^ÆËìþò˜Í@ÛuÇöðpÿFEøü]ΙƒŠ|f÷á`}/9!¯å|îÆ½·}ªÞβÐKcÉÛ;XÿäzŠ¥65¯oÛ'?išš¸WN_üâ;Ÿ¿øâ‹|å+_áCú555‡^® Ç©pÝÍ>99P=äÀÙú> 'ä >¹ªr½¨ÒïÈo}ã ¯b·xƈ?qc^Be^°JràùUÃʬ`ä{Þ®ÐÝ€Wb:œ®!5w®ä¼,Cîøkr= äûÜØ}«()®õŸòyµ2%<—3S ô#r ËäyZÀz#^óîJ&Üf¹î¸\[ȦÑ>¹§‰âä7tš{m¡—Ê€b¦ÈÛO®'µ]©Û_ÚWW>Þå­r~úà?ØéooogÁ‚|à88@¯¯¯§©©©ÄÂhhh(ûTÀÇ`" Ïàj¹ÅµezM™}”è¤m>˽¬r[Ë+ Ý =–€B #A³-Œè6dÓ0qކûáäv8ÕwouŸf¹]DDZ„-AFE s¾ €[â¶[4é >{£cNw¼% @{®Ï5îgÂJ‘Äx™ÈËïØ"×5Í÷žåc´¢ZN’ß…ä5q™ïFÈ5‚j\ã¦AÎ’ï\#w~n™K³7¤bè¥,3„Ùלì êWZJøéÙgŸÅ¶mt]gË–- >¼3ù­s×…=ÞØ±c) ˜¦yX8eÔ¨Q¼ð ׼yóæŠ×¬ `°É] 'W4Õ&»ÇçÛÁ†pÐk¨Î½Ÿ²VY ý?”ùYá-²O]å{ •›ÆîB¥ü}Jö{Føª(@X‹úCiÿ ÅŠ«àï90¯än^Óìê2 Yf"…Ë| –¸É7Éoš Sû‹ªzqïÒvY«žtÔ-~V ø‡„$&É}] ‚jñ@ºÔ›R•†³h‰Ó?=»óÿÈ/_õäC<Žiš‹*EoÏž=X–ÅÈ‘#K7ÃèL>2dC‡¥µµõàýcû·Þz+gžy& âiwÝuƒ›ÜJé1¢ó"JIØç’3}°¦— €±èia¿HehÔâ’['Iq¹ŒdÛv0º£½ÊMœ5ÔFŠ êÐýòd¹šç…)ÝÕØ2íÔ­Gß+ª‡›7¹\\ã»ñ&·›>«Û‘cÝr˜wñò{ÝŒtK*/ÇÖ”iî2Qô©7y±¶‰MòYÝoÉëÿæsñ?+bòÃä1T‚‹ß Wë£;:7Cž›éðbî$U¶éÖ-ï׺ö³Ÿñ‡?üc=–%K–pá… …xì±Ç˜?>C‡å¹çžcüøñhšÆoû[&L˜P@ ù¯yÖ¬Yüüç?ç /<,Þ‚¾• ¨&Q»VfÈNl@wa§’ ³Uޱ«äýòü¿ŸÓþÛŠ×ÍΕ¬Í¨ºø³}¾Fñ0†PÉ}S(­q×ÄÀy•žu¿?F‘kï‰Lz³v’*[Û¿ ðþ˜1c8ùä“ùéOʧ?ýizè!ÆϤI“xöÙg2dsæÌá•W^!‘HL&yõÕWÙ½{7G}ôÁú)§œÂ¥—^Êm·Ý†mÛ\wÝuÌœ9súp¼>HM;iÙbÕ²mÞ“m;¡`“-•Ú‡Æ/ÎrM,t; ‰$tì!€#ÒЊÛ 'ú¦¡äŠ^£I·EÔ'ª…1Øv–1ý'„Á–Ë/sÕ“­òÐE•ù@™Û.%¿Òý¥¯Š%|´¸æçøÄ`Nc*]‹öŠ¢4Œó¹®–‰Bò¹ð÷ˆ@™'Œì† Þa³•dù´·1Æf*Ǽ\¥Àµc·‰¸ÕDIéêIRœ?Ë}Ĉ\ýõ<ðÀ<òÈ#Ìž=›O}êS¤R)î¿ÿ~Ž9æ†ÊÿøG¶mÛ†mÛ444pë­·‹Å ·Œ9’믿ž_ýêW<òÈ#Ì™3‡K/½tË€8ªÂyŠ@ÓN¼Ìu¿·í=“dä O]o½VlÑ•,EãNä?XÁ¹¨xðÛ¢x–ûb’x%™Õò­Í²çßóYó!T]ùñ`­ðö.á7ÉíTŸRàš0~y³IÌ–"WŽÂk£^ ך²•q{íù‹ýž¦4Çå÷6‘ ³|ÊúV¹N¸]7DΕÙÖ²uÉ 4Sb³(÷n'º>Iõ²—{<ç†nà¶Ûnã+_ù cÆŒáúë¯àÏþ3S§NeöìÙ¬Y³†¥K—R,I&“ÜtÓMè±XŒE‹±hÑ"Ž*øXf¤l«e²ÅݘyƒÏî”mÙ"û.~rõ[w>ºvÕ°û=ô!l+‹ahàÀÑP¿Û;}¾èÅ‹ÜÇV¼ŒÑ7…‘¶ˆ²·Ìµt”|nš0¤î_n`ÀŸáàþ27ކ¸¡Üùè­>Åý¼›äv£ò»Ù"Äîy÷Šû0ç[½Ñþ/Âë0g‰åá&ä¼)Ì“Ϲ蟵+¨h§Éyþ)׿øµï:úÐõnÛ:–w‰š?>óçÏ/µÀªªøÓŸþÔùÿøÃÅ1gŸ}6gŸ}ö$,ß®Œ T½ ªèTßnw:eãÚ¨½%Õæ¥@ŠUx•jàaxÅ´å`µ[L”Š„O™†Òö²ŽOErg@¸FC‹ |×°M<‰îÿ«åµÊg-T ê&*§8Ÿ%²b•¬r>÷·ôG? •gt+'üÔÐÐPÑÓ}Çwt>_¸p! .ìò™ S\ Eö6ÊVr›…žŠ×<±/“Õµ3÷ú7njoyuŸS“ÕŒq»*+Åžš$Ž&¡ „#Ŭ4áS£ ¦¨üQz†‰•òi²Ëe3g|@[jÛE[‹¦Ÿô‰¢˜Ïþ6Þh™ˆØa±º_ue¸¿;ØaŽOóމ`É Sº­(5û6o0Ë,Iñ¸×´E„ØzJSÝsû= {¨\Ÿ{"*î–Ð,ÃTÑŸdWˆ¡ïÏåÐ@!]Äüx*CøÙmÅdÊnYæ—r@ÛEÕÖ(m¬Z™IPdq¢Â«,­x× èLëtìa[d@ÈgJtTøž½xU/ë)-/‹ú<㓎ÏÜ¡)n ØTÙÛ>>ï«–ã›EŽÔøÝoÞDPe´O‰¥>¯q¶_É_.îöt XzF…ë¦o݇‡n¢(õ®B±Kd”ÃÁ—¦uèÝÉ«»E€^BSPý›uærû)Ó)Ý©½¶l³f±Ú5Ù*cQ©Z¦8¨ý[Y¥«„4ƒ[ßøÇìy™{Ö­ä‰|#¡1‰& EIR»j¤TþäÍ0ÃñÆ»´úÜÈÝÍûM£Z³FåXwXüªY7aî]±/ÎÃkÀâ&Ï%äõ)"\öú´òÏsàÆ¿ÜþZ)qÓ}×­¹Õ§\„Dl¦eõWŠ^‰Ü¦å7ì«!ḐTÊþez¯\î š‰×[q§ðxµÏ—å¦nÚ¾Ïæ3 6ËûU"CÆáåÛhe vQ®¯J®Y&Wt–¼¹€@ÅÉ[|Ǻ }»¬ìj*'ÔæåZó"GšöcªùeÀ¡R£ƒñ©‡]3×|Û÷5ym^êE€ý¡µ_îL¢½y®³h—j µý5ãµ7¹ò½¨¶Sð‡Y>a ¡d”|GDµA!­Q,8$¥W¡i‚íT.ÝØ·æ¯2ÞÝLôêQ¨7Î.Óz]—Þk"@ >—»?ÃÝM¿/²˜E%¯½%Ï'È÷­fs}nÁR< ¢\Ô ÃíDÕ—§÷Ë,*ð&ûá–âYò›ÙÁ<ôA.±?_ŽñçdÇd÷”ÖüBlÕ-ÂY'ˆêkËÎÛÜå›Nc ÿÁ+è8d ±‚ñ]\¿®?Àe~>Üi¨¨|½\ÁN9WUŠõxé¾TŸË‰' &ž­¼ï¼þx·%^|ž°Çå» ´k…W'Š7Î4í¶p®å]‰–•|“ý÷ÙÛ.¿ËÙÏçÖ‹¤®’»y¨³€~XéT¥ˆlõOŠÞç/ºr{8»‘¥vTÁƒerû1M”ç”°ª¬ÞhLgs¼†ìz^›|,)­ÀˆX˜|Ê$š4(Á2!R³•Ûi»Q§gµÓÄ…å2ìrŸë­ÍçzÚWã„÷P^Ë÷™ *V½S˜µEl¨¬Ä³¢<¸Œõx™°‹÷ã».·‰î㨸ûa¾žût7Ëjjœ£Ã¡í®­z¹.÷ÁGnË×ñ¨èì˜ ðéæv»é›.ˆ»rÀîš$»®eg([©¡–kE¶›ýÒ üEñXåÃļHxºRò"¥ÆŠ,hÛgï ¼¾ .¥ÄÚŸ"ü5WÝ–ëzS䃛Àû'yÿl¼V±F™H‹7¢MV~„œ+×2  ¿="×î¢d£w+@ï7Ê¡:טÁ+î*_6Ç·]§‹ Ùæ¯ˆ†¶nø#·žÚ$¨¬’«0?G׸t¯sy隉ŠÍ¿&ƆëyëkÊBËÜo¡›Ýzé@ïgʈv=/s=%Û÷¼(ŒÛHÐÔäNönÍ|¨8«ÖúX)¯ºÄi°;gwl(„C„ Œøri“aà ‚’áï¬í‰žÒÛx #åV²ì;6ÝjG5¨#ß·/mz“¬HDV,„ŠÕÿ“¾h»10é@²ÜH´´Šàe®o…”ïs}w–ØxTríñÔÇ«ÍèJÛ©f{I×¼¡@“^@c.U ­˜æÖ=µ‰wj¥]]e¡/JµòâµÛ&Šù¾¬ý"Ukä]Vt*^Ÿ?BwQo³Ü@ïs2Qi"nß°7PëVÙ®s} ~*ÚÔ,l3™ÒfŠn ˆ-MÐã‚ÿyE! Z1C$ÂÌ‰Ç ˆ¸©¥d‹ ;êj >†´ºq3u_îŽÂb§ìÙ‡{Ïm¡¸¹›ó¼) ”s%ä¯u$Å.÷Lo  OD9¨Ÿœ„JzmÀ›v’Ȇ‘#ÀmÂíÅ÷>ŠÍŸy k™È0ûÃA%—n<ˆUpç‘ç`ŸjEÊ·¹?j~ƒ ´ÈФ“÷ìP*õA }@ŽŠ©§Py–nôõŸ²}/Æ+K‹—_©á|¸É-ŸƒIú¸ØÐUe¹VÈJD(dm¢1|"®`+—»!›ï÷EŒÈ-)™"áɃТÝÌw7öŸzì +HŠädˆÝ™°K^w È.Åkµ2¯ÇbLn-ûÔ¥O5y9}„ê< 5%/€|0e^ûQ ŽDêIRœzSÕSiªlß•Ângc—qâ[9«…‘7 tGE©‹xƒó Ig)§¡ØE4»H$®cæ,"QÂ^±Ð êðœåÝ,{¿QyûP•ˆ©ÊÁXÍ‘ëëíÜÊÖ5Jxs³ÔwùìÕ¨¥þÜî]"#&‹Üø;*¿fUûƒRÿ<²Ã§ÒŒÞ¯BZƒÑ§€ÄйŽê–ªœ'L^Äk<êZå1T¦Z”s9ŠrÏEñ:ž£LF•d†äÁˆB1ƒæX„“²9‹xÜ ß1ߜҴ ßà·CÁâm¨ô¾£Å&i 6C/-t½×Yîííí¬\¹’öövf̘±ßVÊ»wïfÙ²eÌ™3‡‰' ÞçäŸY&õ£ÌF5<ÖEøÓ»êP qËÀ3¢è^*¢ªV(÷ø¦`S ‡ze¡Û¶Í‹/¾È¶mÛhhh`îܹD£•C6¹\ŽçŸžššN=õÔÀ<¨LYaÊ‚òd±°‡ŠÎêºÔüzìlym]g'x-2 '¤“Šk¡çѰ' ̼I,jS,øbè6dMˆk˜[\l¼g¦Š‹ý•¸b£—̬ccì÷áOг,‹[n¹…Gy„µk×rýõ×óÆ•Go‹E~þóŸó¥/}‰^x!Xì~¡¡\ÞET¿Ácñ’ßÜ àþ’Ô‘¨zŽ]#Ãú µŸÞE%Öý™ÀCw €Þ½ ð`Øq{ì1¾ÿýï³iÓ&n¿ývyä‘}žÅŠ\{íµ,Y²$°Ð»w6¹ÙìF¹ÙªdK‡ñjÎ]föþðkøÕxùÝ2¨Ð+‡ä ƒb ‹H"D!k‹käsQ Ý‚„VyzÿZ™ï¯˜Wß[è=w¹¯ZµŠ5kÖðë_ÿšáÇsï½÷rÏ=÷pçw‰”ö¸û׿þÅ»ï¾ËqÇW2< ¾¤”=Š :]ˆò¾|Jºw'=Ž1+€ùÄ øý7¨¿@éÈ­D94zϓ⚚š¸çž{øÑ~ıÇËŠ+øÆ7¾Á%—\BuuuÉq;vìà—¿ü%_|1étºs§¨D¶ãP)`º0òÙκhèõxó¾Ê‡®£«SÚ-aicãÊú7ªeB bU`fѱ‰ÆtŠ9IŠËCÄðYè6Ä´ÒºÒ€6¹1ôý=üIqk×®eܸq ®ÆgÌ›7õë×ÓÞ^Ú;l×®]Üwß},^¼x)ˆT «MþÞ×d9„7íû_>+Ü•ͨÔÑòq?õ¨"³ñÚ0ô~ôý=ü€ÞÒÒB&“é ¡M›6 Ã0x÷ÝÒÐM±Xä¾ûîcþüùL:µóõÀBï´Æç ³YÀ¯P®ó? :óYä5”ö:Ë¢Ê[Víjs‚ÊîÔð45ÒL*‘j03háVÑ&³Éå ^–åžÐ÷ÈL Ý P¦›»ZÈ<½;§Šó›¼©Íétšd2Ùùmm-™L†b±t°Çý÷ßϬY³ë¼Ï) œ‰*K-÷ ˜¿ŒJ’5(‘êŸ-¨V-ïTàÆŒœO[× –ú}£Ôë]d€“Í“~ú%Ì&ef–½GÝ Ô†atòu<G×uR©Òº U«Vñî»ïòÅ/~‘ßþö· Wff·ëSÈÖîÈ—‘Ýs·8lª«Ô$TKØõ”–¨¸Ý‰ã¨„¹”èÅHTA1 ±(N6‡¡ÛÄc{ÒP÷º£\î•Üa \@/–ƒ>‚è…ç‚£îXáoÿ*ð½{=ënÏž=TUU•$ÄìÚµ‹ÿýßÿåšk®á÷¿ÿ=›7ofÕªUÌ›7É“'‹~P¤UnIšáûŒ.üî0º^äÂx½]Ú ü•4÷=¯CQóXì@9ýõm0Zèe2 &2ÿ4¦ žš9/ˆF1MÛV¯¥R),Ë¢¶¶¶ó3|ÿûßgöìÙ<óÌ3¼òÊ+lܸ‘åË—.wWôªô¯¨R“m>@oÇkáâo÷ºÕßèY”[ýlTçô£+œÛmŸ ÍCÕ2§%Ñ*´bbQìL–î9¤3P%#Ó] =®y½Ï-Jãwü@df½ôa„¡¦jkÔ#ìiï³fÍbÇŽìØ±Çqxá…˜1cÕÕÕX–…ã8†ÁÅ_ÌÎ;Y³f ­­­lÞ¼™Ý»w ~ÐT@%Á­k{·pX ÞLCwÚb^^kÙ±•ý~¦€z¹[½‰®½Úº£YÀѤ€ß£åbGŠ Ð œd•'ñÎÏ:”ºº:q‡·Þz €I“&aÛ6¶m£ë:\p¶m³fͶnÝÊž={ذaC`¡{Ô,`î§ð(*6øˆ¼þ²|ÖÍfwÛ@ê¨Ñ‹Q¼ÉÃ~­^Æ.êq™Ó¢|bQÌTÃpˆÅ4ÚÓ0Q zÇVek ¾¤8ÿŸªú@Rõ^5–™;w.gžy&_ü⩯¯gË–-üèG?¢¹¹™|ä#<ðÀÌž=››nº©ó˜M›6qÎ9çpê©§ Þ'´ 5çÏï{AÀ8„j&S…JŽ{VøÜF¹à]îœ+r¢é ®%†<úv³†‡Q&ꃛ4È,ôž'Å1‚¯|å+|ó›ßäè£fݺu|þóŸ'‘H°páBŽ9æþû¿ÿ›E‹usß}÷±zõj®¸âŠÐ{¦µo v—k¬0íV¼„8Õ»y´€®’eè òÊÖ"BV;F<‚–ËÒmQ“Tª†«ÓÛ¶š¶– nÆ ¢ž5–)u¢~éK_bݺud³Y?~<…Bûî»I“&u9þÆodÈ!Áb÷ó¤ÓéíºäëQ-a7‹âß‚Jˆ›!–õñò¹§8¸VOQQ 4³Žßbð9LqÆt¤:ÀÙgŸÍرcinnfĈ¡´n¸d2Ù%oæÂ /äÌ3Ï‚z/h;ÊÕæfº^†øÙ( ½'‰×òµ’`p@3$G.¡Z!‹‹be „ ‡HÒ9HFÕÇM²T’Af¡˜NweJoj"‘àøã/y-‰pÒI'U<~ÆŒÁB2jBU¸ÌAiä'ËëG¹ãסâåÓENäéŸY5pÛØC;¯¡Rx€Þ °œR@×u½"_ï‹×ÇŒÓù<ô.äÎ;wǦn }÷i¢™GðÚ>º´ÕTÂF¹ðx3’Ý YdzÐMe¡kÅ,z< ™ ñ¸CH³T/wé gY Ы´CÓP& >tS§PèÆåniN“† òatT¦ûzQèÿ& }–¼7DĨ›¹¾ xå–ß@ße´':ŵ«&;gøvœîe€i­_û‘êPƒWÜ"þTK×½ÂÔ“Ð+E¬ó¨˜š!ÖºVö ]7ÔGŠ´h½˜AODp²í$â6!LŠÅ2@· »YíÝe¶1õÁÌ–Õ ‹9ÛeàQ åæž7>ùwx‚·•qZ©Ïåàf›í&-¼ŽÉ1œ×/SÃêc½[`ÛÁøÔ~$Ò¶­(‰q¬E¹Õmaðý§\‡¶<@×Q.÷p-ÓQ“ÀL7S•t0°È›•Ö¯¦ÄЫ|ú~O=°ä3 [:faÿ,fú$­ŒçCPÝŠòØU¡†¶Ñu ìáeVñ³ ä<žÛZ·2À¶ ½©•½z¦ÏJwÉmþT9[jöq›À÷' Ë,t»!åj×GTcgó$âN§…T¶lU¶l8Jt@=HÝ4(÷ÏbZèrÀsÂß#ËU0TFûJ”×.JMáu”ƒþñÅQå±íäiäQÂLe6æ_Á-¨€îhÝÊÇ ,ôþõ‘°5:u¥“Õ>Œê"•B58 otªí{}_MønRœ)ÃYRiôšQX-’ U­˜+@TÂî¦#ª‚4‘\ºùH7|àr˜2`ðªbÅ­=5 å#ò™'Q™ï§ŠX#ŸÍ£jÓû£z Õ½ò)šy ‡78C > h¡ëXÝÈ̾ƒáÐ+’…è Æ!¶£Ük#Äáu2P±6×7åðºM¹¬:Ö0@·Á)B$ŒÖœ"TÅÚV ·Ñ±(šékY^  \ìÖú@ÞF:tãn#ôJ*Ám=*&îÆÅë|bs$*)N9p¢O¸Ã‡ûƒÀ Àk˜äI€>€]ë^.÷þ¦cQ®-ð±ŒwD[Šž w{µçÊ„‚ÿ‘R¬§jÒš#Œ“Π'ã3E5Ží`Z]-tCë èµ>]ƒb7€hd”ꀣrh:|œæçï òw›XêºOdûùúT'º*H8<¸a×ÙÓ 0û.ìzEŠùìá*T£ˆÙx3ͨ6/í¨2–¤0XF´ú}Q‡:Ö0@k‡pHM`)0":v&GÍ( 3S ¤{Yî¦%*íµ| hë°éŽá€õñ{LÀ»¯Ï„ŽêGa‹Ü§ETÙþ¤aÀIdYÍãLe—ðrpÛ" ›= ÷'½7€%ŠY…ÄÂNâµqÍ ú=¿‡r¹étÍŠ÷SZÎk€#¬’âL t3g’HB&å5d|ª–ã¹Üù?˜,tºO€,ôJMÀ3(—úà<”'n¯ð}ž·®‰C?ã<Œò"Éð*[x•xÝ3@J}w2À컯 ½"íEe²Lö©Zo¢¢UCQõæ¯áÍDÞé>…@,t'­sD"èf‘nceòÔ&mÒ- Уâ‰):*!α¼=R °`à“I÷³8Ênâc=ƯýkLÓdâĉ|ë[ßêÒÚõž{îáé§Ÿ¦P(‡ù÷ÿw.¼ðBt=ˆÇ÷­$^!ÏkñªWÚPñô©ä+E©?G%ê´ð KHr³¸ˆ•ÁíHÛ(ß9á£uëÖñ­o}‹t:Muu5×]w]—î‘+V¬àÎ;ï$ŸÏcš&çž{.W_}uèû÷•€ª9ý›XÖkQns×½¾¿ØGBôe,-£Î£i`eÀáaËM£˜5I&!•rˆ„ÄBGÕ G:CéúÖ­[ùÙÏ~Æu×]ÇŒ3øÎw¾Ãƒ>Ⱦð…’þÍùÈG¸è¢‹ˆÅb<ÿüóüà?`þüùTWWkÞ/2 xåb3UøyæUDŽiïGУfµ7a±…"«ƒ.rm õÂBO¥RÜ~ûíœuÖY|üãçÑGå?ø>ø`‰Â>mÚ4¾÷½ïQSSCss3W]u'Ÿ|r0>uÿ45µJlâ3ðjNn˜l>ªMì±xM)2@R<ò)ˆF!¬ƒe¡éf¦HMÜ"»×"¦Kº{óP­uMŠs÷‹[XдРÝ<|€¾|ùr†ÊyçǸqã¸âŠ+øûßÿ^2#ਣŽbìØ±ÔÖÖ‡©ªª ¬ó~£¨ðýdTúÙ\à‘ûóÈ€þ•d×_”À­—w(a¹f¡w'|ÛhçμñÆ\vÙeŒ5ŠK.¹„¦¦&6lØPrÚaÆ1iÒ$† B,#‹‰D }ߤ¡&&ˆ—OjP£3û8F!•çÕ¨ÌØ‚#*¬ $"øM4±Ð«’°c$"Þ×¶›*r¯9A }ÐiçåšV1íÍj„@Îóà4773lذÎÿGMkk+¹\®Ë©ýë_óøãÓÚÚÊâÅ‹‰ÅbÁz÷ >€ ›E9/ âêûK€ÕÅpåÁL`ý×Unb3&ë 3ŽÉ~©ƒ¨×T.l Ú÷(Y°·8 €l6K(Â0”{¶®®Ã0hnnfêÔ©%§y饗¸ë®»xï½÷øÐ‡>ÄŒ3@ß?¥ñ:§›(Ó:·ÍÜ­I×P1ø·PS™â¨q«;@Ë–Ì… Ä’ ;h–©bè–M(´;$ Ïôn/@ÂQsÑÍÀ\Œ\.¿Û;`Ýj3ïñva`YÞݵ, Ã0ºŒK¸øâ‹™?>ÿøÇ?¸ûî»9ï¼ó¨­­ Ö¼Ï)+ü’›’ÿsÝW@5—Š ½%çê¯Úôãvöò"SÅÅ9¼ܾb¡—(õExçMèÞß¶AO=õ‰D‚‘#G²víZY´hQèû×ÔV5ëy*–î·ÐSÊBϵ£Ç"hº†æ8èšF*U> =eÂXÍ;«Ûò5À÷A`¡wW²b•ZÝ÷Þ{/¿øÅ/xøá‡Y¼x1^x!mmm‹ÅN÷›ã8üêW¿"ŸÏsì±ÇòÐCî–:PÞ•Ì:há_A”9ÝnÀ€úÐ{Q¶‰D¸é¦›X²d ?ýéO9ᄸì²Ë”¨°¬Î\mm-¿ÿýïimmeôèÑÜwß}Ìœ9óà=ŸÏÓÖÖV⨭­­óôð”hº}©M‹Õîä”¶®vC ˜Æˆ†ÑuÐml FÈèT,Èš^›Ë÷êÐ8õ¤Ù~™V6vìX¾ño”ÚŒuuÜzë­ÿ/\¸…  '„eÑÒÒÒ©lhšÆ°aÃ*ÆüµE¹ÜߤûXù@£“Y–ówl†£2x:Ì Þ‹÷Ãá0×^{m—]sÍ5Ïç͛Ǽyó*úh˜þú׿òå/™SO=Ã0˜={6ÿùŸÿIÂÍÞt”‡"4PÝ“;ºñ§hxým/)NÌv¨ªBz<Œ¦ih8è¤Òb¡‹žµ Z!Ã=Î2Àé}Ð)nË–-\pÁ}ôÑTUUÇùîw¿[’­?ø´°Fytg סBi©týQT¹ìj²dÙúáóBäDÑA»ÜO>ùdîºë.b±†a‰DŽð;Be¬ÎB5˜øó~î˜ èÐYtlÄUSv;ÕUPHaDàƒ†ƒ¦id20èL°Ï[©C}z/;Å F=z4·Þz+Guš¦½OJèŽÎ@ÿ=Ð<€®M"Ødi94š9Œúa/;Å t7ŠuëÖqË-·pï½÷²wïÞAìnï)%‰¨v ¨²£Ëè¾×dÊ Žº v’5OJDÐm M,\ªB ç¬þÍ ¨Ÿ¨—e+íÙ³‡ÿøÇÜyç¬]»ö} t`ÊK7jÚÀ1à$lÂ,þEUÀ‹‡ÛBïac™~³ÐÇ¡±±‘7v=(âƒü 3fÌàÿý¿ÿG}}=ÿüç?Y¸p!?ýéOihh8‚ïP*¶¦£²_[ö¡•ºHo=®´z+ UÕ°s¡ª(dsDb:– ¹TÕy€žµ@´ú w¹ïÙ³‡—^z©â{Çw555|ík_£¡¡µk×ò¥/}‰ï}ï{œ~úéG¸”^‹jæR@•¨$2Pnw‹ϰŒ ¨â¹€ƒ…>P†³¬]»–¿ýío]õ¿XŒ“O>™éÓ§3}útN?ýt–.]ʺuëʽ xѷѦ‰u;˜™ùE`ªQ„ÝCGGQµz3bb¡ç ª­&<4 ©±¸†mjä ¨Æ2–xllÙA2Ü¡¦4ªs·ë1Ûy [eOݽ{7O<ñDÅ÷FŒÁ‰'žÈ§?ýiN;í4vìØÁO<Á¼yóÊ,õfŸ‹Ì™ùn§8“þŸ}~  >xŽvë~&\£•{\(ãS5McÁ‚,X° g×í8ض]ÁÝVœzjèmx5ç=¡‚‚c=ìU­_«j ×A(ÅjOKêX¶XèR¶V°U—Јãõ¬ ÊÕ %qû7)jyZèG}4÷ÜsO¯d@å¾òÃ09à–¥d qr¤ÙˆjqPï©ÕÜ¥¦ÞBÅ`ŸúðÃ+È®«cÅŠ >œ™3g; “ܱ©bnk:„BÊBÇQÝc i"Uœt†XBÃ.häóP%Iqyùh´l–ú K9f3 wGË—/ç­·Þ¢¡¡ÆÆFžyæî¸ãŽ÷A}0Ð`>c ª™G{0‘ëPë}Åȉ>Dœ¦ &°uëVV®\ICCK–,a̘1ÁM,õuÐ9ØA‹¨Ñ©Ž šº¹¡ª(V{–hÜÀ²¡hB<¤6CÎÇñzMù÷I`©prËìï1È}̘1äóy–-[†mÛüä'?ᤓN îý€ Ø–'SÀá-ÚTÝû‚ìÈ€b¡ŸvÚiœvÚiÁMë‘Þd‚Œ/‚n€¡£åRD“5dv·’H8X5&U“Á,9Sí‰P7²ß Õ ?À,ô#¼}„ ,^¼8¸×šFÁ˜åÃf¡—{@½!éãÊB× e¼gS„’#p29b ¢ !CåÏᨄ8ˆtÃŒÅ>@-ô^úÎ;yøá‡ijjâì³Ïæ¼óÎërÈßÿþwV¬XA[[sçÎå’K.!™LëÐ>¨ HÒBš7€ rh-ô^ºišüæ7¿áõ×_gΜ9ù»±±‘?ýéOlß¾Q£Fqùå—3f̘ œÒ÷B%£¸®ö<Ï©„¸ßB·ÀÌ­ãd2T%Ì‚£Ýò,tÐ]+<ˆ"íÜêæáÓÂÒé4_øÂÈårœqÆüð‡?ä¯ýk—Ó>÷Üs}ôÑ,X°€åË—óµ¯}B¡¬w@û ñÀ…˜Äx†OSÈ$|7£X,rÛm·±lÙ2.¼ðBž}öY¾÷½ïu9íŠ+¨©©aÁ‚D£Q-ZĶmÛ ½IóýÍ+µÐÍ"Z±@¨*ŠÉë˜&„|%ìy¢ZÐéiPR/]î/½ô¹\Ž/|á TUUÑÖÖÆ£>ÊüùóKº¯}ó›ß$R¬›L&Y¼x1¹\î}Ð¥1 —Cәج¦…L”‘Ð!ô^XèMMMüõ¯åÁdâĉÔÖÖòßÿýß4773|øðÎÏ}ö³Ÿí”§œr ¿ÿýïyçw ½-uwy  FB=5L0 u§­‰*-&‘„bÎ!¤I"¼©³DÕÑ}j èPP/“âÞ~ûm¨ªR½N8áÞ}÷]ÚÛÛKw–0²ã8¼ð L™2…h4h=Pw ®êþS±ôCF½LŠkkkò,FŽ Àĉ …B]¼¹2à•W^AÓ4 ýÐQVµ}5P@ ƒ–Eî6à, IDAT³òÄ«tœlŽdÂÆj ]jÓrÄô}+ëlYè¹í°ëIÕË }½‡ÿ¦Y2¥,cYVç$³9aÛüå/aéÒ¥Ü|óÍ Ô@? ¨c+m<ÈÎÄf:ïKs¨-t+£d@~» øKÀÕ|í/ù …BhšF±X¹öíí·ßæÛßþ6×\s &LýÐÝÕ0j_3N€Y€bp2Œ•ÉOh¥Iq(@kû?s@ƒÐõ10ÚƒHê•Χǧ¥Åk_³sçNêêê*;yúé§ùÁ~Àw¾óæÎ¬u@= IÀùX<ÁvÞ£ƒéÁ¢ô¿…ÞÅ垀áŸöéZ¿ì|‹Å0M³sîy[[¦i–¸Û]Ú°a7ÜpýèGùä'?‰®ë˽ÉMŠ iÕH™ˆV¡Y94C#¤ÛËS•tÈç¢!S f‰‰WÆ}¸îw7§*h23€™¹»„rÊ)ìÙ³‡eË–±k×.~ûÛßrÆg‹Åxå•WH§Ó<þøãÜrË-|õ«_eÖ¬Y¤R)'Píê MD •*’'‡Â–ëER\}}=Ó¦Mã‰'ž`Ïž=,]º”¡C‡2iÒ$Þ~ûm¶nÝ À»ï¾ËâÅ‹9ýôÓ¹ôÒKÉf³˜¦XèýK^:[ ô*±ÐSI‚YÄ ‡±ò&X6ѸN:ɨwTN’âܲ4§‚e0å¶Ð{Ñ)n„ |ö³ŸíÌj­¯¯çsŸû­­­|îsŸãW¿ú³gÏæë_ÿ:Ùl–{»ï¾›êêjî¹çžÎØ{@íßÈPép;F«@ïNøbè555\ýõÜtÓM<ú裄Ãa®»î:B¡·Þz+3gÎä+_ù wß}7«V­B×uþùωDøò—¿zß‘W¢V齄kÕG̈UaØyôX#—FwLj’Û:ª£žö–µ ,îà$7)®;Ð÷Ñå—_Χ>õ)ÇÁ0 B¡ŽãðÒK/‡X½zu‰E®iZáP) œìà𹕹|šf¦²%Xšþ ›^ÏCŸ={6<òHç\7îg?ûš¦¡ißýîwùÎw¾S"Âápè}kï²^ÙZ! ‰šY„p;g¢Ù6ÑXˆTÖg¡;’¨Ðƒ×Bïec™Jà\þZÐÁÑ8à\þˆÉ_ÿZèÐ)ÎUÞ÷õZ8®ø™ÐûÝbw­öéášè( ² ¡å2èŽIUB£= 51ÐràXv Jóbæ 2@ïN;’:,45 sGçÌB? ’âúÅR¯dRˆzËÌA8ÅD%†î8DcÎBB 0Û´­Ý¯ðuÇ€ƒ fîE§¸€:t­K_4QMRÕŠ}“â@päÎH׺ºVoÙ9ˆÇÐÍz$Œ“+ kÄt“\ÁQ“ÖLÕP.m¹l׳Œö`´êcäb7àFtX( œ åm4îf »;%M@}ªÔw'úÐõ¨d‡„$ÕQ —Zè…=hÑ0v®H(BÃ$[€˜„FRTkÁð•A è…l€:,Tœ<¼h—ý%ú»“ F2A ÝÊC$†QH£UG!Ÿ#ÕѱÉ f¨›lÛÊåžp‚¡,G, 75 Ãn©‡B [ö—…~ǧ.÷¢}ÅÉ+}Æ]â‚ÏBÏB$ííÕI¬l‘pÜ@Ç"ëºÜe¡U‡^®ôûàÐáºíãd:tX©5/ÝáÿÐi",I_[èÝÉ€bß}]èæFÝÍr7ŸgĈÔ××w9¤££ƒ¦¦&R©cÇŽ­8¸! €zoÛ¬úЋ=øŒÿ_ÇaóæÍìÝ»—ºº:ÆŒS2. X,²mÛ6R©UUUŒ?^u• V¼?É¡§¨²ÐÉ¡A,¹F,ŒÕV$Õ)¦Mtb!Ÿrç€î”*{¥>Ⱥt÷Ýw³lÙ2† ÂÞ½{¹óÎ;7n\Égyäzè!6nÜÈ 7ÜÀµ×^¬s@!2àùçŸçûßÿ> lݺ•Å‹sþùç—|¦±±‘Ïþó´··3uêT~ùË_Ç—û¡ôèzœ è еB#b`f Ä’Ù ˆKØÝõØ>@\ïG.½öÚk,]º”Ûo¿Ÿüä'œp Üu×]˜fiì¿ýÛ¿ñ»ßýŽ~ô£Á¢ÔGt @K°‡öìÙÃwÜÁu×]ÇÿüÏÿpíµ×òãÿ˜l6[ò¹éÓ§óøãóµ¯}­d~z臄ÄB×Cª§«XèN¡€60ÓbUù´î8Ät<—;ûŽ‹à>ЩwAô×^{Q£F1yòd¢Ñ(çž{.¯½öííí%gM$ÔÔÔTìåP@FGS0?e‰`IúŒzDonnf÷îÝœp D"æÎ‹išlܸ±Tý ‡©««#+­J\R@4쬲У1(Ð"aòé±ê¹´jºYSéÍáýxr@ÈäеÈt/ª‰‡›K¼«ó¶¶6êêê:ÿ1bíííäóù`)êgJEšYÏsÀ„`QúIDì•ÿß@Í©‡|>O(Bו­]SSƒa´¶¶öèÛ@?h*/cóeqŸg@KJ[B„ÃP(Ž€™.HF1;t"bص hvÐXfp’I×®PëcroŠZ<'“Éxj`*E,ë’P@ýCqÔЖõd‚Åè#ªÔYƪðäÉËÛ²¬Îñȹ\Û¶I$zæ1 \î}èZ…ÿÝø¹ZZº8ÒTF×pòEô°A!U$– ‘Ë@T—$8ö!!jAÐHf°zy ClŸ)ò¨êüôÌ™3Ù¶m[§6¾bÅ ¦NJmmm°”b™Pßz¥nRc|2`d秇 B<gË5Ÿ~ýúõضͤI“ ýÐÒ¾†²¤A¯’¶¯YˆÇ HRœ•·ˆÆtò» !m_±`o⎲Ь€žëæ3^W‰O<‘)S¦ðÍo~“É“'ó·¿ý›nº‰½{÷rÕUWqÛm·1}útyê©§X³f ;wîIJ,-ZÔ%žP@CõÕJv'¼º¶‘#G²páB¾ýíosÖYgñüƒO|âÔÖÖrã72eÊ®¼òJòùûÙÏ2vìX6nÜÈ5×\üyó8ï¼ó:t(š¦¡iº®sì±Çrì±ÇvÊ…ÐûÝj÷ÅÐu÷dœš¡‰–I4d‘í’5KÝ㎂š…î¦U˜ôù´½€ú];·zÀð>q:d ,(y-™LòéOºóÿiÓ¦1mÚ´`yêšìÅd9ÿ‹ÁÅXÌ šÁ$ [=†Á¹çžÛåSçœsNçóh4ÊâÅ‹»|&ôCBi ¡,t+ ±ä3èa-l`™FH#—÷jв–²Ðq*‰þ€>Y=ÐÎõ, f„œ lÅäÞf‹rJ}Ï-ôƒ¥Ðû :s4UÒ”= ÕIpRè#¬cY±M& ]Òþµ|‹ â\Ÿzçr( AÄ”vç!ô¾ëžúAQO³A3 IÙ•xriô°1°ÅBoÏ•ÆÐ³¶*p (ô€ h0Rïbè 6ÒK­ð}~FSX(©z¸ÚiH…B#¬ ;¤,›pÈ!›†á:YîSM*h°RàrhpS‡@RPÈÖŸzßzP‡Þ/V»Vv³Š '¥CL’ÕKcÄBh:Ø–ƒ‚l’nÑ9ÊBÔ n =ˆÐ`4Væq6Ï¢@úAzw2 ôA`¹k¥€n$@·ÀÎ@U5Ó„aŒ|–îÖ,è!ÏhËXªkœiu†ÕtÌlvóTµ€"MΡHŒçÐÙú’ÓÐw’=p¹÷«¥îúÏ‹ª± 6˜)¨®…Ý[Wǰ:2Dâ:š¡‘ÉBu˜Î&íÛMMñ¶F þ›…ÞóÆ24°èàU`+©`1л“A }!±ÒBqÐm•W“„íB‰0N*C$¦£kÙ$«”Œ·,ȋ˽\üÛûØ6 4² ÛÞÀåP@G.Ù= "*ª¦%@OƒS€X r)¢CÂÐÑA,Ý$›ê* L[XÝèÅ`‘±…z@Ù€ÞóÖ¯ýè;vìà‡?ü!Lž<™;súS[[¿øÅ/X½z5Éd’ÿú¯ÿbúôé%×'mÆÀqZ…ÿ 2]ÇVlMÁêÈ’ˆjh:äò—{ÁÓñ\îݹÛôŠã*.@ï…¾råJxàÚÛÛ9餓¸ú꫉Çã%Ÿiiiáç?ÿ9¯¾ú*#FŒàª«®bæÌ™ýÆw…B»îº‹Õ«W“Ïç¹ýöÛ™8Q{´,‹Çœ'Ÿ|MÓøØÇ>ÆÇ?þñÎñï?p$]³+ÑK5#è@ïCà‘/zo¡755qçw²yóf&L˜ÀUW]Å„ J0M}ôQ–.] Àe—]Æ9çœÓ}Rœ¦iLŸ>SO=• 6tŽux衇xå•Wøú׿ιçžË—¿üešššŽ€›°õ7ˆÒ1ªÒÇUÉ¿"¼£Ò„«ÂØ© ñ„0±mѰl(•…Çk¸?[nóûd•3[Ý<<~jnnæ[ßúóæÍãÆodùòå<úè£]Îzï½÷òÎ;ïpÓM71sæL¾úÕ¯–Œ]íkr‡úúz>þñ³qãFr9ÏâXµj÷Þ{/W_}5 .äÇ?þ1o¼ñÆûTi׿ÃhDã&ëc§î‘/è ð${.—ã–[n!‹qÓM7¡ë:ßýîwKp`õêÕüìg?ãꫯîÜôÚk¯uè£FbÑ¢Eœx≥N‚b‘¥K—rÅW0cÆ >ñ‰OÍfill|Ÿ»XüekRƒ®Eå%4te¡GªÅB¯Ö±Åx×5±Ðme¡ÇâãƒÛBÏuóð*Ë–-#™Lò™Ï|†Y³fqå•Wòä“OÒÑÑQrÖ§žzŠ+®¸‚©S§rñÅ“J¥Ø¼¹ÿTºh4Êå—_ÎG>ò ÃëMlÛ6O=õgžy&óæÍãŒ3ÎàŒ3Îà‰'žnýC££ÆC¾A{à;¥¾;à­éŽ;X¹r%ÿùŸÿÉÔ©SY¸p!6lèÂßøÃ8ÿüó9í´Ó8ýôÓ™;w.Ï=÷Ü—­µ¶¶’Ëå3f  ¦Ä >œ={ö¼Ïo ßR×Õ 5¢2§EÝòYbÉN:C"©ãضzKÌñ¢EG)ȃÌšyÏëзoßN}}}gHkòäÉ455u±¾ÛÚÚ2d‰D‚#Fô+ ï‹ŠÅ"Û·oïtjÿŸ½3o¢Nÿø{&Iïû¾9ÊQ(wPN•Và'‚¢‚Èz®"®¨Ë ¸ë…Ȫ°*àŠ¢(¸ë… ˆ‚t9åZ @zÑ+msÍïLÓ$M/hBRæóz $™édò=žÏ÷y¾Ï!´iÓ† .`4*£¶õ((a€0)—EèMC¯¨¨@EË6[TTjµšÜÜ\›»fee‘””dÙfk×®gÏžEýöÛo³fÍš:¡Ñhذa‘‘‘WôsþøÇÞ”•exX'D-ùÌþÀ4óË¡ð¯gÌLý¡P¡e(ýB’{óg#æZ.¡ ð|¿!8q·²³ÑYžMAHHwß kð:¦»Í{{ÓšCÛÂ{åtX¹ `áÂ…Œ5ꊿcêÔÖÛž6:ýÌwPÙÂßà‰­ÜSÝôm‡ñã{SXx¬‘«üˆŽŽnÞ2« ž2e ·Ýv›Ã“aaa ,²³³éÖ­&“‰ÂÂBÂÃÃm®[±b…²HSpÍ!!!ÁáB¹!ÄÇdzmÛ6 jµšÌÌL¢¢¢ðóó«3÷Š‹‹Ðjµäçç“””tÙÏÚ¥K‡{õ5ßUÿbDC\\gΜ±,F²²²ˆ·1ÍÍn  Z^}õÕæ©~þþ˜L&*++ñ÷÷çâÅ‹Fbbl“€'%%‘••…$I‚À™3ghÛ¶-ê   ‚‚‚êýƒÁÀ™3g8þ<åååüþûï$$$ÌÈ‘#Y»v-‰‰‰>|___:wî¬ô¢—òÏþ“O>ù„=z°jÕ*n»í6Aàƒ>`ôèÑDFFZæ]tt4?þø#WDè^^^–­³úpîÜ9 ©ªªâôéÓ„„„ÃÈ‘#Y¸p!C‡E¯×³}ûv^ýu¥3(¸ ÄÆÆÒ¿Þzë-¦L™ÂÚµkiß¾=mڴ᫯¾"""‚~ýú1nÜ8žzê) „$Iìß¿Ÿ»îº AjÄÆWPPÀüùó)**¢¬¬ŒˆˆæÍ›Ç°aÃ,ak{÷­¥¤¤ :ŽììlJKK ´„¹€Ù™&//üü|üüüÌ+ µ{…ÄWVVrüøqË{:vìèVÏ)IÙÙÙ@BB^^^n;X%I²C âââšmnrÅssñâEôz=mÛ¶%000‡iåääPXXHPPIIIu´Ñ+ÁîÝ»yÿý÷)--¥_¿~Ìœ9“ŠŠ æÎË‹/¾HÇŽ),,´„­EEEqÿý÷“ššêÔpÑ päÈòóó cذaÌ;Qùâ‹/ؼy3¢(rÛm·1nÜ8DQ´ŒÏ’’DQ¤]»vx{{[îY\\Lvv6¢(’˜˜H@@€[½^Off¦CçÎëXLÜe^B||¼ÛÉSk˜L&Ξ=Ë¥K—l4N{ëîÕFEEyyy”••m£%››‹Z­¦M›6uBK¯/^ä•W^±„­Íœ9“¶mÛò—¿ü…ääd¦M›†Ñhä“O>± [>|xã„~¹Ø»w/?þ8ÅÅÅtîÜ™?þØrîÀ<÷ÜsÄÅÅqáÂþïÿþ;ï¼Ó­bW<Èí·ßÎèÑ£ñõõ%66–Ù³g»•ÐÙ»w/‹/&&&†ììl&NœÈÔ©SÝv"WWW3oÞ<Î;G—.];v,C‡u»ç|þùçÙ½{7™™™¬^½ÚòŒÛ·oçÿø‰‰‰œ?žx€1cÆ´‚Ü -òòr¦NJYYEEE|öÙg´o߀²²2þô§?¡×ëÑét$%%ñ׿þÕ­¤¹¹¹Lœ8‘ääd Ù<úè£$$¸WäôÏ?ÿ̲eËHLL$++‹x€Ûo¿Ý­ÇÅ}÷ÝgY,Lš4‰ë¯¿Þ­žsÆ ¬\¹’sçÎ1mÚ4ž}öYÀœâÁ$ €ÒÒRÒÒÒxüñÇ›ì_ãìÕS Óé¤ââbiíÚµÒ¤I“,Ÿ›L&iÚ´iÒ»ï¾+UWWK§N’(effJî„HÆ “rrr$½^/ ·z>­V+M:Uú÷¿ÿ-UWWK»ví’n¸á©¼¼\rWTUUI<ð€ôÞ{ïIz½^Òëõ’Ñht»ç4™LRYY™”ŸŸ/9RÚºu«åóÑ£GKŸ}ö™¥Í‡*H ·ã¥K—¤œœ©W¯^RFF†åÜ?ÿùOiÖ¬YRyy¹TTT$M˜0AÚ¼y³[=NNŽ4|øpéÀ–ñj2™Üê‹‹‹¥;î¸CúöÛo¥êêjiË–-Ò-·Ü"iµZ·eeeÒwÞ)}ùå—n-*++¥¢¢"é™gž‘^|ñEËçûÛߤ'Ÿ|RÒjµ±}ûv·xf§©Ä†[ÍêìüùóôéÓ///‹™8//Ï­Vg‚ ‘‘Ác=ÆÓO?ÍÑ£G›äìÊ-ŒŒ úöí‹——;w&88˜cÇŽáÎE‘?ü™3gòþûï׉±v—¾ ÀÆœ^RRBqq1©©©xyyѾ}{*++)--UÔñzÚ188ÿ:¦ì}ûö1`Àüýý ¥[·n|8mÚ´qxN§ÓQRRbÎÙ³g1™L-ê“ÐJJJظq#&SÝèêë®»Ž:ð /Ë… xá…(..fÚ´inÓ:Q-mˆF£±DA¸#¼½½™7oAAAèõz/^Ìo¿ýƲeËÜ~ÌWVVR^^NDD„å³°°0.]ºdñ8÷HB/))!''§Î9___‡Äú¼$I–ô‘’$QYYérG­VëðùkÈ2::šaÆбcG~øáöìÙã6„.Š"‚ `0,[§Ó¹c‘5T*ýúõ³¼Ÿ;w.÷ß?F£ÑeBüJàïïÁ`@§3çf6ètºuˆñ$TUUÕ;‡¬ÓÃ:¾¾¾”—×嬨¨À×××¥~4ƒœœ‡òª¼¼† @§N¸pá_ý5S§NuµZÉd²ü†ªª*ŒF£Û9îYC£Ñ0`À9ðì³Ïz„ðòòÂÛÛ›ŠŠ ›±ë~4—Eè¢(2bÄFŒÑì¿ #$$„'NЭ[7ÊËË)--%**Ê¥?üºë®«“ζ>˜L&***ÜÊaÇ××—˜˜222hß¾=.\   €®]»z!‚à1e5Y›Îž=Kûöí)((@’$‚ƒƒ¯IBïØ±# .lößùøøÐµkWöìÙÄ 0 =z”Q£F¹t,„‡‡³`Á‚&__VV†···[×àà`9{ö,aaadffR]]MÇŽ=fUVV¢R©|I’,»» ¬{ï½—·ß~›ÌÌL~ýõWFÕ`2 «ÒÒR^}õUKøÇÿû_¦M›æ–•¹~úé'öîÝË™3gøüóϹxñ"&L`ÆŒ¼ù曜:uŠ;v0yòd·nó«>úȲØ\³f C† aðàÁL™2…‡zˆ¥K—RQQÑhl‘Œt-‰ƒòŸÿü‡¸¸8òòòزe /¼ð‚[OXX÷Þ{/K–,aذaüðÃŒ7έ™¹¹¹¼ýöÛÄÇÇ£Ó騼y3÷ÜsÛÉÌÌL¾ùæÒÓÓåË—s÷ÝwóÀ0gÎDQ$//¸¸8 äÏì´°µââb>ûì3ôúÚÄó#FŒ }ûö öíÛÇo¿ýFTT·Þz+>>>n×™;w¢‚ððp T'[ÏÕ†Édâ×_åèÑ£$$$0hÐ ·6¹ëõz~úé'Μ9ƒ$ItíÚ•´´´:Ž“î€Ÿþ™C‡ÙhsøÃ$‰ôôtŽ;F›6m¸é¦›ÜòùÝü1EEE–÷©©© 4Q9uê»víB­VsÓM75šÜÆÕ(,,ä—_~!''???úôéãÔ2µW"¶oßNFFíÚµcÀ€n½ TYYÉŽ;8{ö,¢(Ò³gOzöìéa_V8}ú4[¶l±q„œ2e !!!9r„={öàëë˰aÃÜ&†Þi„®@ (pD¥ (P @…Ð(P @ ¡+P @ BW @ („®@ („®@ (P] (P º \6.]ºDaa!………QQQaSéíܹs<üðÃäææ:üûS§NñØcqñâE§<ŸV«µy¾ÒÒRKÝOÂG}Äo¼’îÄ5P+M @‚k }úôAE¢¢¢ÐëõøùùñÔSOYÒϪT*BCCë-RRRÂÎ;©¬/…B IDAT¬tÊó-\¸÷ߟ””L&ÕÕÕÜu×]<ôÐCn]xÅþþþ êQ ºG ªªŠ¬¬,’““=¢’˜×zè!¦L™BUUK—.eÑ¢EÜpà „„„ÆäÉ“-ežM&âíím©¸g‹/RTT„F£!22’ÜÜ\ÚµkgIiZQQAnn.:âãã” iii¬Y³“ÉÄ÷ßÏ /¼@ïÞ½-5%jªÝUVVâïïOLLŒMâ‚‚ Ðh4DGG“Mbb"¾¾¾äçç£Óéðöö¦°°   bcc-U(««« $&&Æòü•••dggS]]Z­&,,ŒˆˆL&EEE`2™ðõõ%66úöí‹N§³¤Ë5 äææRVV†——ÑÑÑ–tÕeeeINNF£‘èèhBBB<¦€“BèŒüü|þñðÔSObsî÷ßg„ üïÿ«sîjÁd2±{÷n~úé'JKK !--þýû“žžÎ¡C‡˜={6jµÚæo¾þúkrss™1c+V¬ 77—Y³f‘˜˜h¹nÿþý|òÉ'¤¥¥1qâDep(p{ À7ÞÈöíÛ¹xñ"!!!dffr×]w±qãFÚµkÇþýûyì±ÇÐétEuuµÍ|Ÿ={6eee„‡‡Ï×_Mzz:ñññäææòÒK/‘žžŽ¿¿?Z­–|»îº«^R÷öö¶<߈#X¸p!ÙÙÙ€Ù$ÿÜsϱsçNüüüÐjµŒ3ÆR=îĉ<ñÄdggI§Nøâ‹/ظq#iii¬ZµŠmÛ¶„V«eèС̘1ƒçŸž={öXž±Æ*PQQÁ+¯¼Â¦M› Á`0Э[7Þ|óMŽ?Σ>JEE>>>hµZ^zé%Ì»ï¾Ë¹sçxçw0|øá‡¬\¹ÒR>·{÷î,_¾~üñGž}öYnºé&N:Enn.;väµ×^s»: ¡·B±lÙ2æÌ™S‡´;vìȦM› t2_±bï½÷Æ #11‘üü|Ö®]K›6mXµj}ûö¥ÿþ–¿»téýë_™ŸV«%33ƒÁÀ7ß|CHHˆ¥,ê»ï¾Ë±cÇX³f QQQdff2{ölLZZK—.%<<œÕ«W£V«ù׿þEII‰Íý<ÈW_}E§NÐh4,^¼˜¼¼<6lØ@PPGŽáñÇçúë¯' €Õ«Wóå—_Ò¶m[ŒF£eAóùçŸÀ‡~ˆ——UUU·N:Å_þò^{í5† Æ… x衇X¾|9O>ù$`ÞÊèÝ»7/¼ð•••Œ7Žo¿ý–éÓ§+V!tç£>SPAAï½÷Ï?ÿ<¾¾¾¼þú뤤¤P\\ÌŽ;ˆeîܹ„††Z÷àÁƒ|òÉ'2pà@ÆO`` &“‰Ã‡óÅ_••Edd$ãÇ·O>ù$ãÇgûöíäääð裒””d#”Ö­[Çĉyúé§-Ï]QQF£!..ŽÐÐP¶lÙBß¾}-ZÃÑ£G9wî#GŽ´ÜkäÈ‘lÙ²…ûî»ÈÈHΞ=ËÞ½{:t¨2 x Þzë-Ö¯_OEE¼ýöÛøûû×¹.##ƒ‹/²`ÁKU­?üáüüóÏäåå±ÿ~V¯^MTTwÞy'¯¼òŠå_|ñ“'Oæ—_~±™“'Nœ¨—Ð÷îÝËøñãÑëõð÷¿ÿ´´4*++ùöÛo‰‹‹ã·ß~³È???~úé'RRRرc+W®$22€iÓ¦ñ·¿ýÍæþ×_=½zõB­VSQQÁÖ­[éׯééé–{ÖT3f !!!¬]»–±cÇÒ¯_?‹ÇÚµkùòË/8p`½µØþùg:tèÀ7ÞHPPAAAŒ;–~øÙ³g[î5räH‚ƒƒ  --ŒŒ e°6Š—»“P\\Ì_|N§C’$~üñG,XÀo¿ýÆ 7ÜÀ¾}ûxðÁ©¨¨`ýúõLŸ>ÐÐPn¾ùf6mÚÄÌ™3ÑëõèõzvîÜIPP#FŒ €û￟­[·Z¾ïÃ?䡇ÂÛÛ›o¼±N9ZQ 䨱c?~ÜâÌãïï——¾¾¾Ü{ï½üûßÿ¦´´0ïw­ZµŠÑ£G[´x€~ýúa4Ù·oß|ó ½{÷&::Zéxƒçž{Ž}ûöñå—_âççÇÿû_L&SëÊÊÊP©T–ýt€   ËÓétTTTa9ïëëkSÊ8??Ÿ}ûöñÅ_XŽž={ZLêŽpã7ràÀ~üñG¦L™ÂG}DQQZ­–òòrŽ?n¹×æÍ›IHH 99£ÑHii©…ÌêÈ„¨¨(˾¼¼­VË¡C‡lîÙ¹sg’’’HJJâÓO?EE–.]JïÞ½yþùç1 üßÿý/¿ü2?üðÓ§OgÀ€ìܹӡL ÁËËËòYtt4Z­Ö¢ík4›EU}þ  ýª£gÏž¼ð h4zôèÁŒ3ÈÊÊ"66–÷ߟ™3gr÷Ýw#Š")))<ôÐC>|˜^½z1cÆ ÊËËÑétÜpà ðÕW_qÓM7¡V«ÑëõÜ}÷ÝüéOrøÝÞÞÞ<ñÄ,Z´ˆéÓ§NJJ 3fÌ k×®¨T* d©±>jÔ(Nž<É¡C‡xöÙgm„——cÇŽåóÏ?gÈ!|ýõ×Ìœ9Óf¡@Gh4¢HçÎyòÉ'Y´hwÜq½{÷¶¹&66“ÉÄ™3gèÙ³'gÏžµ,|ˆŠŠâÈ‘#tèÐAÈÎΦ°°ÐrÎ;3iÒ$î½÷^ ‰:Z<8Bdd$ ,`ôèÑ|úé§Ìœ9“¸¸8ºtéÂÂ… -Ö4I’$‰’’8|ø0=zô@NŸ>V«­÷;BCC‰ŽŽfìØ±Ì;Qmî)Iíڵ㥗^¢´´”7òÊ+¯0uêTÚ¶mËØ±c9r$999<ñļ÷Þ{ 0Àæ;Ú·oÏÇÌ¥K— Âh4røðaÇ8 ¡{ úöíkñMHH@§Ó¡ÕjÉÊÊâìÙ³¬]»–M›6`4ÉÊÊâÔ©S¤¦¦òá‡òî»ï"Ijµšœœn¸át:jµš   zôèQïw ‚Àˆ#,«þC‡ñË/¿0zôhÖ¬YÃÍ7ßLbb"#GŽdíÚµ :”-[¶ Š"·Þzk!8räHæÌ™Ãš5kúè#6mÚ„ŸŸ×]wŇÆ‰‰‰F›ÏFŶmÛØ±c£Gfùòå¬_¿žíÛ·ãëëKrr2ÑÑѨÕjfÍš…J¥²<ÏĉIOO·D°ÄÄÄ ×ëm~ìØ±²~ýz¾úê+üýýIMM%22I’¨¬¬dõêÕTWW“””Ä믿NDDaaa|ÿý÷lÚ´ FÃþð¦M›fYìÔ´Ahh(ï¿ÿ>ï¼ó¯¿þ:ÁÁÁ,Y²Ä†L§N,rLlF ¤à²qüøqIE)++«Î¹ƒJ:tŠ‹‹%£Ñ(ÝqÇÒÊ•+-ç ¥ÔÔTiÏž=’V«•Æ'=óÌ3Ruuµåš’’©ººZ:v옔`ùžœœiÈ!Ò]wÝ%UTTH’$I;v”~øá‡zŸÕ`0H°¹YY™”šš*½ôÒK–Ïôz½Ô¿iÊ”)RRR’tàÀ›ûôíÛWzûí·%I’¤;wJ3gΔΜ9#I’$Í™3Gºï¾û”¡àšCuuµd2™,ï?øàiÀ€RqqñU{£Ñ(I’$™L&iãÆRÿþý¥óçÏ+ÕŠ¡hèW¾ âþûïÇ×××òÙ˜1cêx®6”Á××—Å‹óÄOpÇwcqRyï½÷ˆeôèÑLš4‰Î;STTÔl•^¯çÕW_åôéÓ$$$ Š"§OŸ¦{÷îLš4©Öd£VsÏ=÷ð§?ý‰É“'Ó©S§zïÙ¿®»î:›¸u ®E9r„ Å¥K—(((à©§ž"88øª<Ï¡C‡X¼x1AAA\ºt‰ììl,X@\\œÒY­yûHjB’]“É„Ñh´ìßZ›ŽF#F£AP«Õ×TFŸ²²2¾þúë:ŸwèÐvíÚ±k×.†ŽF£açÎÄÄÄœœ ˜=c·mÛÆõ×_Ohh(’$qñâE~ûí7JJJð÷÷§M›6¤¤¤ Š"………¤§§SUUe1K]ºtÉB¨_}õ×]w%lÆÑÂ#77—S§NQPP€$I„††Ò«W¯:f¿üü|~þùgRRRèÒ¥‹Í¹ï¿ÿžvíÚY~‡5öíÛ‡Ñh¬7 GA㨙O5[1õÍ'WÏ;I’0˜L&DQ¬“|¨&ϸ½|¸V ÕjIOO§¨¨µZMrr2]ºt¹jmQQQÁþýûÉËËC­VÓ¶m[‹ƒœ÷FC|ký¼k”ÐF#|ðëÖ­ãÈ‘#¼òÊ+Üu×]deeñÜsÏQXXˆN§ãá‡fäÈ‘×ä„V  %Haîܹœ8q‚²²26lØàÐaêÔ©Süõ¯¥¸¸€™3g2jÔ(§Î»ýû÷óôÓO“™™I¿~ýX·n`Ž¥^¶l»wïÌ±Í ,P¬6 \ +V¬àóÏ?çøñã¬^½š1cÆÔ¹®ªªŠçŸžÃ‡c0¸õÖ[yðÁwŠE‘›o¾™Þ½{³xñb›ÞêÕ«‰‰‰aéÒ¥œ;wŽÇ{Œ.]ºÐ®];¥g(h&¼¼¼xøá‡1™LÌœ9³^mêÍ7ߤC‡Ìž=›={ö°téRèÔÃmÛ¶eñâÅüôÓO–ü[·neÿþý¬X±ƒÁÀ£>ÊöíÛ-ŽN (h:DQdôèÑ <Ø’Æ×¶nÝʉ'xýõ×Q©TÌš5‹^½z5žXFÚµkG·nÝlÒ˜VVV’žžÎèÑ£‰ŠŠ"-- ///233•^Q à2 V«éÕ«:ujÐ4ºk×.FŒAxx¸%òôéÓN}¶ÐÐPÒÒÒl’FvìØÁàÁƒiÛ¶-:t`РAlݺU)—©@ÁezÇŽIMMmÐOêÛo¿eèС´oßž6mÚЯ_?víÚuùak¥¥¥F›Ð°°0‹°{öì±Äk*Pàéèׯ_“µZ-lÒ¾þúë›õ Z­Ö’MËÛÛ›ÐÐÐzëv;z½žÂÂBK²0gþÊÈÈÀh4Ú˜ÝýõW…ä´ÒmêœÝ·oŸMŸúššj“‰°1äçç3hÐ Ëû˜˜Ž?~ù„^#Ôj6åk&¸}ÌàèÑÓÉÏ÷4üiÀú™j³äZ¿­Þ«äÿÕògÞò¡ü/ 8šCà7âjþì'*aÄBƒ2(×ÏëƒZ å_ï$4ÄĈ%˜J$>Ze`LWˆ3e@PK a´ h%¨t€0ʯ€A>Lòü¹5ŒW©•ÝG€ƒ%%Mšx™™™Ì0€äF®;êãCf3kj«T*K–±š««[ãg½`×ëõô ø#’ÔÓIORd=œ8:3åù øÈóÙO~í/¿Öȯe™à#‹ù”¯<߬D‚,2¼u¾úÞ‰fQ!AÁ„_~*-¢ á‹ ?´ˆ˜,ÿl;L›¡íð¦/tøP…7Õ¨1àCÕ¥:¶­Ëåöiñ¦ ¼uzD“ ±„*YhTÊ‚B+ - É2GÊe¢*äÏ*à¢6–Àdèôµª³ú¿R>.Wœ“ÿ¾“Çöo˜Å³£ìG¼¼8Ý’¸ÿ Î*_ˆ#œ^ݶ›o¾¹ÉϧÑhêÌ;Fsù„FXX'Nœ Gèt:rssä&<ÍëÙh÷Ì¢‰«¬>«yí%¿®ùß_ž¹¾@¨<ƒc€m 2‚ßlH/W @ŒŸM`ì/Tmù‘®÷_@~Ñâc ̸¿c®‰Ýÿ5ðǾÐÃ\”åŒÞ+†Q&èKæ9VTYM&f¢¯¶#uƒ<k`¸J­ìîÈoæõ‰@¿F®¹½:..ŽsçÎÑ­[7KHRCá…΂F£¡S§NüöÛo–B‡&%%Å#܉½!³P_'ŽNÌÊ×òü‘_‡aò\«• 5kù ùT<ß#d‘à/ÿ¹7 …3¿Â ;!¹DË·‰®FPñ )%È«Q0Â%DL„RŒ!\BuU9=g_Oåø¢%2)à A”Q–SÎÑŸŠ¸ãÞb#t âCþZ#ƒ U¥2[–ÊÂã’üÓ/ÉMR ÿŸ/ b³BѼ09Q ûKaº*ôµª5K8´@‰|\® PËïLÙ‘-/-ÈsšqŸÀ&È€ËYŠwëÖ#GŽ`4E‘ß~û6ÐÏ;lj'ÈÉÉáÈ‘#lß¾2aÂ>øàBCCÙ»w/íÛ·oRÃkv{£`j)UI2¿j^מÂÙ–K•‹5õÖ µ,«ÔríÞïÙ³‡¼¼<ÊÊÊØµkF£‘¨¨(/^ÌüùóiÓ¦ ãÇgõêÕøùù±uëVRRRê Wl)”——³wï^Ž9Bnn.Û¶m£GŒ=š¹sçòñÇc08xð <òˆ‹[Zr¿).ÖêMú.+sæWH­¨·[¢™Ä&È{>}ú4'Ož$??ŸƒJ¿~ýX¹r%‰‰‰ÜqÇŒ7Žû￟Ï>û ½^Ï… ¸ñÆ›FèlÞ¼™:PRR—_~Iß¾}7nAAA|÷ÝwDEEñÖ[o¹Mýï+ƒ¿“‡‰©îg–Ì„n’]Édu 09Ñ>BË t¡´²§º½ûã?ræÌ†Îÿþ÷?T*£G&22Ò²'=}útbccùòË/INNæ‘G©SI«¥Q3﫪ªèܹ37n$22’îÝ»óꫯ²aÃDQdÅŠ6•ù®ÚBùjŽNÁêh.S]ÛúÅ4,{­EŒ3ɶ9?ÝßÍeTKŒÊÆd€½†~ôèQ¾ùæzôèAvv6ß~û-½{÷&88Øâ;Ó±cGÞxã 6n܈(Š–È—&ú!C2dˆÃs#FŒ`Ĉ­L_Ž•Á(gÍe EÁæ¥`Eðf\jTCOTƒdlý­ÜÚ5ôÇÜáuO?ýt­Ðh3fŒÃøTg!>>ž¿ÿýïÏuëÖnݺ]Å–Ö`ÞÞræè”œÌ„R“uO"u+µµ½-µQ¶mtÍ`²eW@èΔ®²\- ½¾¹]“¿½zõ¢W¯^ ÞK`Þ躜!Д¡æ@C0Y©á"²†.›ÜMµ— ‚c ]#¸áÑ)­ìIP]††®àrÐF><|tJM3¹ õÌtM€7f™ˆ°)Bâ ‰ä¢Vö ½)„Þ’î¬ ¡_#ŒÔ †µ•Ø›p¡f1/4<™¬ýí\½É¬jÂhPà ð$½°áŸ \E“{îµÒBd@KæwTÝ]ì6ÊkÕp ]þÇä`´)Äàžº— '³WÌÝ«¯¡_ÉíArj>w ×È"OÚCoL´$ +„~5ºØ$Õ„‹Èörɼw%/o%I²p»dåæná~±îm•´î…šÐãÆH_'¡Æö匥˜³½Ü%§³akðroIßA± 2@1¹·F Ýú¼µVnåå^cÊr´‡®h芆~í¢&£‚'‹3銽ܛÌç.0¹+zíüV4ôkЩ5¹›I1JFT–˜t#*e‚švWWj̉ÀBw6Îbηu£“õ6gÓˆ*ÁyfÙ“^t¢¤œoð8/wŸ&È …Ð=qÞ †^{ÞÞ³½&Íf½¾«¢ª»¡+º+P9'©§‹'ï¡Súê4#ƒkrã({è ¡_MÔdQ—ÐÐí2Åɬ- *L²J.V^îFŽ QBIñæF“Yñrwek»bAîÌÛKN·‡KÎ44͆Fï‰QŠ—û5!xÛC·J&cçìfI,£x¹{„†Þ˜¹MqŠ»ÖD|c?ÃÙ^îÂU [ó„žZpD5Åä®8ŵ6B·ÚC·Ogöj—lÝTÃbÃwUpõ ½¹&÷ììlþõ¯‘››ËÈ‘#;vl¿)..æ£>bÿþý¤¥¥1uêT”yåÑ‹ÉéßQ¶æìïP–oÖó»¹&w½^ÏêÕ«9pàiiiLž<¹NJu£ÑÈæÍ›Ù²e aaaÌš5‹ÄÄDe 睊á=tk“»½Š^_êWA [s[ ½¡ÃZC/--eÖ¬Y0eÊV¬XÁçŸ^ç¾sæÌáܹsÌ›7ãÇóØc¡Óé®á–Žºº¿ˆqSš+öé=|ùÖ’„Þ˜ °ÖÐu:‹-âÈ‘#Ìœ9“}ûö±hÑ¢:÷ýàƒxï½÷˜6míÚµãÞ{ï%++K!t÷ÑбÓЭ ¼özQPÂÖ<‰Ð½9¬'àîÝ»E‘™3g2pà@î»ï>>ÿüs´Z­åšÊÊJŽ;ÆôéÓéÑ£÷ß??ü𥥥×pK‡Iž1õÝÀ©ÂÙæjWØJ<Å#4AXkèyyyüøã<ùä“ôéÓ‡9sæpðàAòòòl4øo¿ý–{þýû3}útt:Y~(b× ÝJC¯Éâd³‡Þ ECw7Ô¤~mè°L™™™ÄÇÇãçç@Ïž=ÉÊÊ¢¼¼Üæ¾5µÇkÆKQQçÏŸWÜ#D¼sèV@²õþ+™rY?¿ »®ŠCwEO·¤S\C‡5 —––b2™  )) µZÍÙ³gëô¥I®ÿ!Z­–S§N){è›¬HÛJ ·Uõiè.•9 š•ÞvKæ* Oª D¨´ê_£ÑˆJU«Â©T*ŒF£eâøúúÒ¯_?Þ~ûmÆdž ¨®®¶¹F'ê¶-±€45HèWÄT`jÚe­Á Ðb}"€·ËeP%¿¿$Ù.Ö­SóŠ¢h‘ 5Ðh4Ü~ûí¬]»???NžoÊwH.É.ëôŸá)‹A¬+‚¼aˆO­ ècEø111tëÖõëד››Ë_|ATTÉÉÉ勆z /©ÔWžSUª‡mEˆÆ–iA¥Úšƒu¡ PÝÝQ.÷zöÐ;eÞãøµFèåuT¼XW¼Ü]ý;š"ìÎoݺ•×^{””Ž?άY³¸ýöÛm®9~ü8óçϧsçÎèõzŠ‹‹Y²d‰BèWO(Øí¡[Ç [%“¬¼Ü-º «ÕVATr¹»§†Þ “û¾}ûؾ};ï¿ÿ>ÑÑѼñƼöÚk¼üò˨յSuÍš5<ñÄÜzë­dff2~üxž~úék˜ÐÝtWU¬;O¯*UIR«ñro­‰eòóóyùå—Y¼x1×]wÛ·oçoûÇÇÏÏÏrÝæÍ›éÙ³'K–,A&NœHzzº²ƒçú5ž£=ôZ ]@°)Îb¯‘‹‚ãâ,Ö:¾7#ô†«xäÈâââˆEE̱cÇ(--µ¹mÿþýùé§ŸÈÊÊbçÎtèСNÍtž¦{º zs˜Pºü_¡T[³[Ô5&¬LîEEE”””’’‚ tíÚ€ÌÌL›Û^wÝudddpøðaöîÝ‹N§#99YÑÐ[jÖSFE Öµ ëî¡#9[£~“»ˆ¢¡»ÔÍÓÐKJJlöÂÃÃÃ)//§ººÚæOÌßÿþwN:Eqq1cÆŒÁËËënèh ÄSD| =‰„ b3“ª6y ÝÔ€»ªË¬¶Ö ½ººµZ(šC@@*•Š’[‘Î;£R©øË_þ‚Á` }ûö$%%)„~õÖ}R=³Ì6Sœ½·[C^îfp%*»¾< ZƒùýI+åÛßßŸŠŠ ‚÷óó«ã³xñbüqn¾ùf²²²xøá‡¹å–[,«ùkñ­Ç à‚È8g“¡+¼Ü–Z|y²µæ÷éa¦|N£Ñ`4-ŽÐ•••˜L&lî±bÅ ºuëÆüùó‘$‰gžy†O>ùD!t·1äØhèÔëå®hèFèv¬qA0«{íûýeµ¯SSSùä“O(,,$<<œ]»vÑ©S'‚ƒƒmîQXXH||<DGG;\Á+ð4½ÐEÒ§$–ñôLq~*˜Ô¹öýûÇk_‡……áïïÏéÓ§éÞ½;¿ÿþ;&“‰öíÛÛÜ#''‡b¶L…‡‡“——§º{hèµ¹Ü%DD$H–â,VQÏz}UØ\E4Å)ÎJj¤¥¥Ñ£Gžzê)’’’ؽ{7K–,¡¨¨ˆ»îº‹7Þxƒ®]»2qâD^zé% ÄÉ“' "55Uio—Šx¡euQÉùº§«2ÅyÙºbQß “{TT>ø ‹-¢ÿþìÚµ‹©S§ÈüùóéÔ©=ôwÝuË–-ãâÅ‹FöìÙâE‹B¿:BÁ~—¦vxš•™Ð%¢C“»¤$–i=„nµ‡®R©xæ™gøõ×_)--e„ tíÚ•ÊÊJyäbccxüñÇÙ·oÙÙÙtèд´´k<ýjÍcU R‹kìá.ˆCÐ×{0Ø1‰è„±!Õ’¹ “se½Ùº»är7=z”Q£F1bÄBCC¯1í[¼Ìa"9 ckuÛ6]BDB°>Uç®Êº›¡)«óV@èÙÙÙ„††òâ‹/"Š"~~~.£Ócޱj p溋ê¡KõW„ô¥Uˆ­¹P´È­ÊÊÊÈÏÏG|}}¯1B—.s(6 v ¢—;˜‘ÔÐBwCBW5r´’½‘êêj.^¼ˆV«% Àé9ïÎ|wòoròæ³$9ßËÝ%ÕГîR]RRR8}ú4§NâäÉ“<ú裌9RæÍÒÐë¼dËÚ×¢¨„­y ®‘jkQQQøúú²nÝ:Nž<É­·Þʃ>èÂìu­)?™ó× ¡Ù^å¥[‹º'ÕC÷õõå‰'ž°¬Æ7mÚIJeË1b„Õ ýð«•„ë„sW<ÐÛ©‚U š`_>µ!§8E®µ(*€ßšçÏŸÌÛ^çÏŸç»ï¾³¤†Uà ý­f«­¦ƒ½[àžNftÜ^Q*´w33Å;wŽeË–‘——Gll,sæÌ¡S§N6×|ðÁlÞ¼Ùl41™ÈÈÈà/ù‹’PìòP¦™þŽõ}¡þ„í‚Uå5;å½Î2A™LnHè^V3ðâÅ‹,[¶Œ1cÆðâ‹/rìØ1>þøã:·}î¹çX¹r%+W®äŽ;î **êÏåžœv‰[Cä…-7óœ<]UœEÙCw ¡7tXYé*++Y²d ñññ,[¶ŒÈÈH–.]jÃ&L°È€§Ÿ~FCûöíBw=êÑÐí<ß$S=\oí'ÔÞN”ß«”u¯®Ö4rXõ×Ï?ÿLpp0ãǧS§N<ðÀü÷¿ÿ¥´´Ôæ¶aaaDEE·ß~Ë”)Sðóó»†:fú;IÄרc*çܾ˜°µ-žò;„&È«á’Íÿþ÷?|ðAÚ¶mËÝwßMVV§OÛ.XˆŠŠ"""‚ü‘ž={Ò£G…Л/ÌŽ0!-»lß uгH6—Jõì¡+pCBoF¦¸¼¼<"""Eó´LLL¤  €ÊÊJ‡·?tè……… 2¤ffs#Õ¶N§FcÃó¼6op˜H-ÓÊ¢ÁŽÐ›‘)®²²µZFc¶Ó‡‡‡£R©¸xÑñ‚µ¸¸˜ï¿ÿžñãÇ£V«•=ô¦C zbN9²–æy·Û/Ã%³/( ™¥MˆH¢ “$aDUGC·8¿Ù eÝ á ½¨ öÞü>§Ç 9d'¦z$°ÑhdóæÍtïÞ:(mí²T#]€Qòëý˜+½µäW '#âÌòFMîÆ+"­AC—ZzXÚÉ€j½YËÑŽϘ¡÷Ymø²#>|˜’’hYn*hÔ˜cOkzÈï zØÎUThžSœIÉåîY„nuø@r[è˜l>ýk/OLL$77NÀï¿ÿN\\þþþun]ZZÊwß}ÇwÞ©´³K Ô–BkÁÔ¶®H±†‹ê¡7pÎSü|Zlaâ`]í‰ µ2 :²öòÀÀ@$I¢¼Ü¬,æää`4†šL&>ýôSFeñ¡Q½Ñ aönOŽ»1ÇŸ×'Åéߵ±žLq6ù]k÷ÔM‚h[—M“I!tYÚz ´o’͇µû€¨ªªbݺuìÛ·U«Vqûí·#Io¾ù&¹¹µÉg÷ìÙƒ¯¯/©©©J;!Ï9gÊòwŽ'©7°t™ìådõÖ%Nqõ¬KjÂ×[‚Ð=ÊùW¨+T¾˜X+b¢j/‰‰aàÀ¼ñÆ=z”Õ«WÓ¹sgøì³Ïرc‡åÚ¬¬,<Ș1c,ÉÜBo=»å#³Wû×2±;VÌé-oúá8œ­¾8t+! Öjè ±ÕÝCäÏ•s{ ½!/÷ÐÐP–,Y‘#GX¾|9cÆŒa„ èt:8`“NõèÑ£LŸ>ððp¥é´sÒ½Ey.¯ž’çø`PY?ã1ÃèÝHë”<È;¼µ|GS¼Ü­hÂÛÛ›… âããÃ’%Kæ™gžàäÉ“\¸pÁb†ÏÌ̤ÿþôîÝÛF‡PPow&b.$#CåÿÈroÄÅò ö"1›â‚å÷ú& Ùän°RÃ¥Z²·QÞ±#tÙéB ÝíPã× ©Ñ½{wþñØ|ΪU«l>»6¹4§¡¹*K”­f? æ0¹"¹ýwtM*wkÎ\4 x¹;B;!!!3®>õÔS6ï‡ÊСCm>S½Á.ý ³¹ÝO&nLâYòL½CžìYÀ÷v €ÌNsÞ kè`l¨ºù”&Œ ærWÝ yFӼɬÀÝ —5ò* ³ûRée¿<ç“å‰lç$«¦éÛì'×–§C FÉèB÷pF—\-T-ûu êE°Ú€o#æ˜×JYû?gnˆÜ;’¼z—X"7þM°5¹Ó„LqJb7DM¦¸†%Üм+Ï2³)­H^BûQë$g'™5Í‘°.˜½Î2¹K.ýž…fÆ¡_) ½Ñ‘šÄÈ=sNÖÄM˜ë¼ïÃì,sšÚª¹þ2ñg[õ”‰Ú¼ï&™‘Hýj°Ý.”IlÔ¯5áÏ:¥ƒ 5gU)ÍtåÐÒâ^çuäÀ@ ­üþKÀ±`µŽw§Ié"{¸²‡n'Ú‘’Bè®ÄI`—LÎ{åYZ£ãv—5ôLÌÅZº}åáð? ¤án‡ný¶6ö\°ö‚@TÕ¯¡+„îfBAFu㤯àJQEã•WŠÿ`Þ+ŽÛ żÝ&ÙNírÙhèthörwr‰VejÛBã2Àä.åS¯añ£Lâ–Ônòîƒ965s.iµÕpV535É~j"[¼/©kNpÓ HM'êVPmMò ûKBã2À¤j¹oT½Á¦‰—'r¥<"äÏ‹äÏÊ0y Þó¾šZ&þ\•;×(Õ¯µ ‚ÕË&–OULîn£JDï¥j„ôÝ}E¼DQzj’‰;–Zv=f߯ºÓÙW¾\Ài¾fw]S“]rÉ] [³'t½—º9Ñrª˜BèጺaÎ÷æð”[ånþsùÔÃòêÜsіØÍò*y_¡KvB¨f’Õhå¢h•úo(SœQé8÷"tQ…^ݰ)Ø$(*zËQ[K£/0L&ò}˜d§Ë ø³˜3ÆiäŽO-k×ÅxÓt/wIrÏV’h–/€G9¬¹à;$AhTT…ÐOèAr—†ãäI\Ó1qòäí+“¹ s‘†âf { ]p¨†;ÔÐëÑ% ݽ`B…¾‘½]IÙ(iôr’( •ï+OÊïkr¹`ÞjK¦6ílKЙ“÷Ð…fâfíå){èöí!4*Œ(&w'£øóþ¹?fÓ»@­é=èa5„/[åóÞ˜mm4˜&wÉ„„¢ˆÉ&‡ÕÖêÍå®0º›ºˆ¡‘)fr§Ü ‹'Ý÷€¬y`¶Àya6±WËó¼<×k‚FµòµÔ¦mîœt&º"Ô]RݞЗ-g[U½Þ‘8#káñòge˜÷Ì­›í"°s˜š—<¡‡Éþœ|¾ ÝÊ)΄ˆ$ˆ²Ïœ(;ÅIŽ”wÛ» ŠSœ;º±‘ÍS [sÛŽ;øàƒ¨¨¨ W¯^Ì›7??ÛÊ~•••üç?ÿ᫯¾¢ªªŠÞ½{3þ|¼½½•FoQä_aÎ+ÏoÀxÌžìòÜ®)Æ/_c°#u¡6hEl.3Hué@0-¦¡ ör£e)X’œ/wU‘b8ÒÑŸÝgÛÏ?6 ;Ôš™b)GŒF¶³CõØhDÝrä£"Bp“² 2Wd[OØ*=ùRÿñvã3™@¢l­kHâä뤄]±ÙF‘L}1½QŸÚ‰H–kD¸år¢á7dŠn,£[“âÂߊ™åÞ]Ê’êJ-±'·§bè‹qÞã€S¥VÿbÊ´?Iç W|„o$ÝÚy<ÀÖe(•J‘˜…hóÉm]d²©˜5èy˜bÓ¦,ëö–m¤‰Þ¬ÒÃ÷íÌînD½FÑïX`¶äÓD÷Ö<¿Í@`_7…ä{‘jRw«C]ÞÚ öM\·¾ ‘@çÁœ¶ÖäX>Œ]¶è ¨îØ€ÞŒR‰8NªËå_«<:EI¦Ð“²½a ¢÷Ö‹šs"ûàßÙ×ÒÃkÈ»ððŸ^ò^ˆNqnÐû ˆo%‚—“yº]²–ÛÓÆåžýdÏš`–‡¥î ø¯J­ÿdLgeÀ^à$j¡“*R«¼¤aÃΗ²H“´žeÊçWJ™² 1ɾ£î‚p¹»ãÊ ÐÓB­ÀJàrËRé„ÕúÍoi IDATœ†È(];’€:+†.­vE 7É#,ôd “a8(˜ãd-ªÊ0à4ÌÊû­4ö`6ÀôÛ0›ayçKE¤+½TZåe„)Œ>ó0‡Ôîê¡_ÅðfÒ{áCw\î™MAĬ†ˆ©‹Š t)}§7=x-‰öëæH÷È.Õ~©Í¿.½Mš¼%˜éCð뀢ƒK‡5Ú\3[Zäã±ÏJ*”2 ÑÙcu„œI„—(‡ÖótГEJ\L" ;€—rå2Ù1¯µ~ìx G«¥NÏ'e—5¯£é*:®ð:t̆#ÖÛÙ Ý¡É,^ Ôµ’™Ê…vÃ-FF™d0°T>Ÿ,Áý¿Ì6¸B®Ø*iq[Õ¦ \‘×Ý%™|-æ €‘=ôjù½r¤"Ò[-qµ„’â =9P•Êulµp„DFXêzBªWÉf™|_tá9ÄåÑÅL© °Ñ óMÄxƒ?F8!³ÇÖHfË•BÁPÎuÈ÷‹@cPo£"y-м.u‰#Rrz“糤oÝϱ©—jØñˆ:…Ö^Û™ÝOŠs=e¤^g¢K(tÞHB·Ø§FC¥›:½Ü¥;VZïas[l@¶Å6…Ÿ†Þ)ÔíµK@þT2Xpž´Ì³åqmòQ,_Ë’bm’ü;Ñ£ëH„†í²\×øå7{§´¼çÊïqX~~+ÂÅÄìˆ_„¨/ØBœ^eåMyÝ@/îž`BóÐ ýèÁümDxLŠ®1œ²^³°,ضaK;ªgµùÈomC¯TÂòu= ~<ÐKJ‡Ž«AC£¢ýXÅ ÿö¯€ßIë¼]~¥l)òŒò»€DÌ­ˆRýlÌ©±zx´Á}È–1’çßD¤VHÿÇ{òu7¢HÐÈ!œ&õˆÆn,­.•ùõÑN„´êV‰º“— /—°2ÎÀÀß1£ÀVí¼G,•€-ÝØ6rEAÓElE‰H¦U ]‡IMP©Eçã‘À[/}S¤èÛ)7¼‘„V(½i¹–Ëí’Êúly¤õ^‚YŒ™l²_Zå…R¹Ï‘ל*W4üx˜ƒË`aÀCÀŸä{3¥[. µìî:J{›´F':1ôdPGŠT·B„ãw’‰X¡*–÷äî-Іƒ9´žÊž®ÉEÐ6éÍÝࢯ¾JùÞ:6.žÀáó+AÂõ-L¼ïJwwP7#:¥÷7“¿ÒKàz.ÑÍnÕls´Då¡/ ,à=„ šÓðºÁïrÇ/ …2ÌööAà÷’߯”+¬KéêþŠ(¾XZÙň„¹îÜeä$Ù- Ç—N =Éä’ŒÙ"·ÌDà|¢[½ÖÊ÷vKј´¦!r´ËçÜõÀBW²ÜíÊÖ¢È %ÍP¢C[쩆ëªD‚i"û;OþoxÖ ÕÉ<ŠüöMˆVn‹ý1ÒâxtKuIU§C2Ð6 à'Híº”ð€Åt);Ê-öÍ)RjÇ솯ZîN¼;ÖÉè×õ1Ž…ž<%<Þ8?憛$§øÃ™F©þ®“Ö{¶äy ²i’) Ò·Ç¿¿‡ϬCÕtÔ<·N=ŠaÄ0àå:èPRï£è¶ ÅË[q5ê¸|ªÐKÉŸ|‘´M¼Òž)EÄάèN©¹[õ—`DE&ÞT±jR)/':DXEx'ü‰ˆý ê~‹(½Vk;òŽõMÿ‘W8.÷¤ƒùéü©þ%·Ÿ‘õц™b5Tn£Òžo—;?ˆ}:H @Çšå®Ê:tcº*~£çŒC·~< ô,Ð;Âû'¥GÌà·†h“s¾üe>É·Êc'Hû#‹èä5ã#²8EžïeÉx3¥(Ö Íòù1R~¸0»á{$ówH%`l¢ÚzÇHoÃ‹Ì ÆXñò{1×)•ñu 5.3;zrÄæÑƒùXD È ¼"mB£Þ¢Sî:T‡óäÞ.Õå{…ÂÝ=ãè½5c+ð–äÓÜAÝø2¹.²€ú™ÅtÎÂsÄÏȽ~ø¿&tè*è¹:ÊûR´í“ÌwœÔ”×Ï'ˆ–uÀ8+uÈÕÄ ºb±˜]ò1K®¬!'TÌÏ —wÃCäWÜnsÇ:¤óÀß©](ùEò\äOtÅÉnýÚ5 ÷ ]×uvìØÁ[o½…¢(œwÞyQMäû>Ir Ô´×!¼Fóü|ɰÊ4̶(%r Þ²ø¢ ºèJxº¦GXïöŸ4îb°ôCâŠòhˆ0W'f€À J‹õd´w1ñ ˯³ûÆÌÄ–éR´éÀ9d­úæ&Éœ–×¹êFõ~»ôày%³M´¬¾_~ÅbÑçH…c€¼kÓ¤ÁpH¿J*2‘¿÷Z)’·J¦x7…~OËÔ×׳bÅ ˜1c3gÎŒúÌ?ÿùOÖ¯_z>gÎfÍše;™-TWWÇ?þñ.¿sß¶ÐU)†É]9\zÜÖHˆÙލÍ(‰øÌPÌá-– ˜Ñ4&+½z‰ÇëG h(:xÚ(R†¼| k&OeÈß2âéC¸ý ø#¹>ÔQÞ¶hÊgKçd.¢Þó@[ÈÐì}â1UòoV˜AÌì##¦ÞˆÈ¯kA„ù %O·¬¬&y[E¸çGK`ܱ* ìÊ;òÔO¬”\"õ•O‰³ã¤"°*EÊ}"e"³ÜƒÁ +V¬`çÎŒ3†ÓN;ÜÜܰcvîÜÉK/½z>lØ0.»ì²£S víÚÅâÅ‹ñz½466²xñböíÛ—a€Þ"]èÒÎk”®õ×äm."zÂ’aSzåçÛåv¨—Û£Ur´«.wéWÀsÚ4”=ô–q:E3¿¥+BFì”›wÜôŠd8·å—yejWŸ³hÊ^ãnd¤º¥û½Üâ밸όGNÑ¥¹ºT 6Êë- W(¯×‚¨Ý%­þ«äã ·ÜPà$©õ—òH`fã;Œ•^…¹ˆ.ý›ã“è~<]>¬€ÞÙÙÉw¾óÖ¬YƒËåâ¾ûîcÕªUQçýÓŸþÄÎ;5j£F¢¤¤¤×¸ÇúUUùS 䓤ZÙs±+vY­D°òµJ¿“ ûÖ²¹˜&-\ëVIlÊÑz}LÀöù)®o u$Ô¶ãé è[ãEõ›}-ÚÆåñògKùÍÜ|ZOÉCQÅ×VZ¤›Ü(Aûp7ðD .–Δ'×`TŸxÿ]ä–+ä&º¿Ž¡l‘+ù`¡Z#ù=DÞÍé™{X$=ŒõÏ\"t7EÊ¢‹5 ³”­XÊ»IRUBÜ™y=¶ÐãÉ«Ë= òÔSOñûßÿž¢¢"–-[Æ“O>uÞM›6ñòË/3tèPFÅ!CPUõè,ô¿þõ¯Œ?ž¯|å+¸Ýn®¸â þóŸÿpå•Wf $ã~`äÅ¢kê6>¦ÿJø™Ù¬Ù-·Ú$yÜž¬‰ˆÌ7E ë—[¯3ðŽ Zìár—ÂcW>lUàLÙÞcñ”ù¥ÊbÌ…šb±­r$Knh»JÛOå¦wËÏZãèõRY¨àžáÿh±0 XV.+âŽÇ’ÖõB•1èÒ~zâû f-B@j룱üäñû¥ÁQ$5ø1ò7ŒÌ?BŠô­òõú$8AƒÝβvíZ>ýôSž}öYJJJp»Ý<ýôÓL›6ììðöÁS§Nå’K.éuîY³f ûöíãø%%%¸\.–-[ÆôéÓC£SOÃ’à²ß€ÆtžÎ­H›.R(ÒÞüTÂÔàpUÚ@*/f§¸„,t{Dw‚|éÇOsÒ{²â†³xçÒ¹Qè¾éCù×·ç1°ú0{?7”Áo¢cj6áBÌ7x¶MÏã³Wå¡üàyou¢´ Y¢X™¯!Æ÷$E¤WWñÝ=°Q\ŸàU%b¥4‹Ü°¾7TÊ»¢@—”;$OO”ò)ËVJsê4ùõTyDÕN"ˆê“ÿ¯” ý!)S ¨JÊ"/¢ì~²ÅŸ @§ø‡Â&55<ûì³üú׿fܸqŒ7Žï|ç;\sÍ5QŠû°aøð ÉËËKŽË}Ó¦MÌ›7·[œfÆŒ¬_¿>ÃÝØÅGlÜpƒ,æHû²LÂÈ0‹öž/ál¬ÅÔhãÔa¡k–á,—û)uek¼(”¶ïå~H×8Onè2©õ¶E0È^¹‘]„Ot7ޯÌ)–L”#]ç-’¡ò#ÄZ©ôÒ‰l-˜}(VIY+EÞè׻dži\õèTÌŽrÖŸ=V ¿ ²êgJùù±Ôâ+$SïÂÌ´}Çâ[9Wºìõ$Åögäùÿ…!-3»ÑúuË–- ><ĸ³gÏæøÍÍÍTVVš;¯¬Œ_|‘W_}•òòrn½õV¦NÚ+.w»ïüÜsÏÑÜÜšÙž¤]1òCXd€Ž<’ÓüÑ¢4haû†—W¬Ë+±­ô>ÞÊÂ_,gÀáZŠÚšÙô™ñø‡D¸j=.ÞüÞ©³Ñ‘Ô¿EÊŠe€µECC &”Ô1cÆàr¹ØµkÓ§›í‡srrؽ{7 ,àšk®á‚ .8:@÷z½ää˜öX~~>{÷î8ªQŠuCTM`w÷ª”Îgr"·]–´íšm€ºÙ²Ë;lô¦1tKmšÕBßãVæ+¸ü:ƒÅî´³+”pkÛ®ù¬Onà Ì$5Å¢ñ¾-_?Y~^“+07ÂrŽd<«ýâ•àyPª<'J ؃Ù1ÒmùÅŸJ0µ P”ÇøF–{"ë¡Úâz3¬y#bu¬‚æUyÞyìùž‘õ0Dºú¶aÖÀê¶#×E B;o9жWvhb¢v»™<ÙÑÑÅOá áM7Ý„ªª¨ªÊŸþô'î¹çžþù0M=]d'ì¾³PéVY€p,]Ïí+4LzÛÔžµ {EÀŠý9‰‰þÐÆ¶‘Ê5ƒP7 Œ²º?ˆö¢|<6Ý4·J鎊öµ èàÞ èãZªD¢ˆ‡ÿDz¾mzôЖ³€ÏJßv£dàFDìNÐÀ#´q·ååFÌæ ÌaÓ"gÔUý­’#k‹\˜³"uŸ\É«k¥[)r$0ûOOÖ-zÖ‡ò'u3,²ÉH",Ïc”Ü,;¹;€)üí~¶½²Ö¢ÝÍþÕáFiZ¨ªRγ³³QU¯7<3qÆŒ<óÌ3°yófî¹çFŽyt€^VVFCCC˜»`À€G•HgF&“SF{c»eG('årën”j­¡OÇ·Ðu hícÆãvïbË3• î褳º }I„>àÕ»Ð\ Åæ‹T5T NoJë{ t52¤E‚ðtù:–t'Ñ .uTP¥ ”+ÿΑ«SbctDª2y„·çðKð<(ý&#BÖ;R ½Mà?BÔ±B#VCš,z0Z̾'™®¼Öz øÖA¦õÝv¹G7–ÉRÆä›N6yf]C—üT\\˜Çw\èÿ /¼eË–ÑÑÑÑ+€^^^Î|õ#CB|ÏÎPÞ·zò¼µÏØÙ6Љ¨ÍIŽýR; ‚kß|ŠÑ[v°ÖYnŠ-»;§¥ƒÊCµ´ŽÊgÿ)Ch/Ë%·¡ƒÃgTPsz%¹x…k]2QÛE¹Ô®,¤ôŽ\›u¨۸gHÔÚ`q2¶[Ú*¾ @/6L['äiBƒæ]ÙkÓa0hR‚ÖH‹Úèa¡Dx ãg¥ü*–^·ÿHe¼ûÁSÖï0Gžû9ùS'cvj•ww†U¹:Z—{ž‡±WL1• ¥…YÞ~¿Mzk››› ƒ”••Eñ]yy9ä¿ø;vì8º< SN9…Õ«WS__OKK «V­âä“O&ói „#Bcl·¶ˆÝìŠP¿U¹õtK°ÉŽb”­¥¶¬ª¡,wwP'ðW¹ñMö ºÍÆ2‚3Ý0öLÑMdŒLã1\Í‹ï JÛvùKWH¦¨³ ré0fv#h§ÀZù<(™¸,".¦[˜ÒðJ‘®­áå++õC-Z§ÕƒujŽÝÓ¥"2G~~/]w—;Q‚÷i+î•¿íoˆ¦“°‹Œz¢IqS§N¥¦¦†­[·ÒÖÖÆo¼Á´iÓÈÏÏçðáÃøýþ[ÎëõâõzÙ¶myyy¡°WºiêÔ©>|8ì;OŸ>¢¢¢4îA’ßÜ3O˜‚rw|zÄ"êÓ4ËËÝM#° ›¨Z¼¶všÊŠøàÔéø³Â"«ÝÇ57>Ë—.^Ê©¿ÇÀjÈnñ¡ Ó2¦€`ŽÙõEÕ@i ÍfÆý_õ ü©_¾Ù}*ß2èŒ0ÇÞ[Σ:ä2yÙ#•ìb7Ì6|˜5RbZ¥âNɤû\•r§AÊ£DíDDBìéRœ!•‰ƒ]€¹AS¤+®ü®õˆ¢ÅÅÒ,Ózwv/)®¢¢‚!C†°jÕ*¼^/«W¯&;;›Q£F…p ¥¥…¶¶6:::Ø¿?µµµTVV…~ÁðÞ{ïñµ¯} ŸÏǬY³8å”S2Ì‹¹ÔEÒöl“ÌmŒ0Ñåö+þÐt„ŒÔtɵØg¹‡ÇÐ=­~N{d “>i§`½ ¦›Æ¼®ZäK›°NRE—&+xZypœÅúôaÆÎ>•Êx@òéÔˆ_Ö!?g”¼&Wc¢¥óÿX]°RüIgzÄ{ ˜Õüõˆ,ö,Mã{wÈ8ØD̺Ò×$“O•^ãXkã‰%²ø,ƆUVu&q'êånúøñã9ÿüóùö·¿Maa!,Y²„ºº:Î;ï<–-[ÆäÉ“ùÚ×¾J8;|ø0wÝu½Â-&Là¼óÎãÛßþ6øý~–,Y‚ËåJÓ70z Ž“NÖdP6"Ü6Aª¸‡,Á_Ø63>,Qèîf·wAªäê?=ÇEoÿw.™ËkW•=6tó~&½¾™üF/ÿ¼™5·LGËRQÑñ•g‡ŽWt˜þ—a_ì ãÂ,˜ ºáú |Yþ¼6ÌzWÃ1¡jCP?A.͉œ Té¦[ÛEôÔxãtVùò†êÏGXèÍÌgÉã5y§!eÃ|̆5Ö; ñ¸w'f}B§E6Ôœ Z‰±Ö²µ²²2¾ùÍoòãÿ˜çŸž#GŽpÛm·‘ÍM7ÝÄ„ ¸ãŽ;xâ‰'Ø´iYYYìß¿Ÿùóç3kÖ¬£ô’’~üãsøðaEaÈ!Qõr™G9–í6Lêÿ‘Ž˜by›óˆNÑ-ªª'ΖŠS‡.cè£Wîdú¯·¡4š—ºhŸ'Ýšeee”——xñÅC=|ðAÚÚÚÐu¢¢"*++QÕÞë8·hÑ".ºè"|>åååQîÁôP2 Ï›"íË!ÀÿIh91¶‡-Ô“@#?ÝÃ7~ñã·naÌάûÌ:F†‡`ŽÌÖyc¾iŸœ7–çWñ—?ŸOE] Ÿ-A—[p¨O㌵^н:9Û|´>• 9Š@úR)¶Œ ó+"ÌPRò$cñÖ¨-ß*°(ö á%·ÖðZqÄ< Áü3˜µˆ|¼ÍòøU˜½;Gɯþ®4Ã"ûP¨RÝ+’®xãýuRž¤LLÅ“‘š>ó™Ïðë_ÿšÖÖV Caìÿ÷ÿþYYY(ŠÂõ×_O]]Á`ÜÜ\ DVVÖÑwŠ+,,¤°0’[ yËÇbŽañ?ù0Gpè•;\—Û³ ûºUËu4 MSÑtº¦Ó4°ˆ@® w»†° ]…ü¥Y2Ý ÄnÞÖ «Âu’‘Ú"ø«Ã¢5·a&¤†í¤Û,–o'fÞþz æ• j¬”Q–bd°ú,š¸±²F# ãב–öV©ìÌ?³¨Y^wµÅ6ê@d³Àìt§ÊßÐb³ÚÓ¤AGTo”çÚ–âÝ”Hë×È>ÎYYYa1r·ÛÍÈ‘#CÏûZó&»ïœÙÔ!U¾ˆj¾Ü1ƒäÖä1†*jXïs³ÛéW*ÝnvÐTXD}I)ºªÒX^B[Q•‡j¸¯†š©à†ŽÂ~»ìZ†ØGÓØbr]^>ýìp(¡²$ç´¨ ͽS'X®¢¥VG ‚þ±dUþÄr‹n£[´ÿ™’Á›13ÝKd¼Jº@1f\ÝFõ±æÃdIKû5D’ÚTù~)f>#¬÷f¥œÑŸsfÕN6"îm× gp™”G¥W eÜ–ª‡‰tŠÓ"ß0Ž#iðàÁ¡ÿKKK)--:ÆiýFÇ—Êe©•À¬K@·f°»DADƒ´‘>ð̶°u6wYAÕ\Qû,“}xö¸ËÙ„Ž®éhš"„¼'æù—ÏàÃï½Ï›óþ–ãïû½½³ Ó#8Cëb6!zFÝÙÆc6¨Ýaq…½iÑ`O‘~ $S#V?'?_'W„Žüü‡ˆ¸V–Åf•g%ò\û0[GçJöK þ¿R+·kçZ'µõãåßæ¿ÝZ!l¤,¦ƒzÒ)Ρž¸Ü“=>u¬Tsä®:$!f ÅÕ^/ÕZƒ;ZU_Þ3?f`8ÇèÝÁ׬ZÆñGÖð‡`€mX[^ÁÕÿ·”Sw®¤zöHÜ~?¿žs%µ¼ö•sxþ¾Ë!¼Å9Ô·5¸þï ÅT^˜ƒ6ò÷´¡çJùq™dÈfi‹,’à½1I ùóÆJÑg´d<nG6ŽÙ/ã)’?Ï–‚¡å[T«RvÙMMë”ïçɯ«±5±vfÅMª)‘Nqgzª¨3ƒõ f§¸«,¶e™tÒéJ82:ïA”¹½ŽìR+Æh[ytÏý”kõŒZ½•µfš,íát‚ª›#ãŠy¿ØÃU9 žMÔ&É4-€Ã}k´XõIÆhÄ̘b±€­‰#>Ìäû-Öw% Q!AºP~ÖjÿS®Ê>yr¹šÛ¥ÓÒ:i4•ŠÙâ5[¾wXjíºð^5èù˜µïv´SºÛ´º×í¿Ÿš€vîôr?z¯š›äöùhñ°}Œ(ÂÌ‹›ù’CŠ%g)Ò7Vd"W›Åí#GpÒÁ <öÒmäø½ 9n*·ýQ³¿ÄŠñgSª6pÒ{2`_ _€ã7ì!»­Ã´-bPîn/åÛëQÛ‚´—ºh™ŸO^C;yùP›@/Ed”Z—0Wz.bZ§<ÆèvÝ9ïØÄΊPyšäaFr«º3‚—ȇpv?ŒxúcÈ9£¶üSËgíÈ—%]ë¾8*bòÔÍ êåÞÿh›ÜViuŸ*·à^DN¸#Y¡}DÿVÌÔ -îöâ"¨»1 zÐuÕLŠSE/w%¬+lÇ%Y´ý¶m‰“ÃÛ*6—*Å’²V„çìt5+xeó ß"Ïå—ªË.¹y’Ç7Hw–qþg¤ Ô)-ïíà‡G¬P3"lw‚´¢?ŠæX¾¼LÖõR¹ÐˆÝ+uº3=µ¤J?O2i³T[Kåc¦äo=BUÎÃl¢Ü;Jb>\¿ê `ò«jÜa=gNä•ÎcØÎýü}ÑÙ´–PÒäî÷rÆi+É;àeÿ G®*6—ÍcñÇ2"‡wI¼Ââq(Zrµü|«ðë@£jƒ‚ç|Àû˜y7YòcÃ->Ã÷wÉÏ¥œX‹} ùÑ5Oȯ}˜ÔeŠt_7:Å9€žTj’va¢qà(ÌOk¥õó{N•ï} µz£hÃOt‡`…]Ê(®ù[&ø6ñ—“/¢eí¡À¸biýª)âÚº.¾Îá›á‘¯ËÁSojÕvC[²-J·µ9K µ^H"ëè‚Qjl^Û€pÓw`Ö‡"}/‚YÚåãli[õ]* »$à~*ÿæÈÏèIcªî5ƒH&3kÎ<ô ¤ZDë¡3¥Y:³ Ò —E.Þ¹ˆJƒ<ÉþEÄl.³eÐx®¹j#ެá/û?ÂëêZøwŸFÜ> ¤Ád›Eô½/µíºÐ”;,ö”õ<„hÙX¦­†·«ÍdÒ*[s½oR‡e7[³DZ±Öâ2Í\ÃIgô<÷!·vÖ™êâDVD IDAT/“/}&üþ愪3/_^Å]ŽhÔ8¹˜­·¦rC-k‹\4¹‚!DÔF«tÞéÁÝ¢ãò÷@¨˜ *¯@½“l~‡ðZ ãµ·zc„ç-Ћw?™Iqñe€c¡§™×`v߃(pØ'Ý{Ã-öïd ImÒIø\¡,‹R <+±æ¡Ûµ~U"ß²íång¡™ÜطݰjÈ=µ†5DâÚR³Žužµˆ˜ûH©}ï”ÖyS?ÞE¢½{Yîõ%úQ¦6sÈæDðè̇nù¿&žõXV&‰ÛàÀè¿jßÙÜ¥{ô t·ÂÖoæPG%Gþz}sŠ|UEBl®j‚±1Ô RªVIÜ&¹ª‡º Þzí èî¸rÂô”Ó>DAƒ†(š2ìÈ—ÎãÏ`&ÉK[5_xeÄÒZÌ:]×±ªÕcÕÚsFÇ>N·Ý,][áñ4Ñ,Ì6ª¾.@Ýç<^D'ºbi÷ø”È´5'˽/Sƒ„fà—˜9Ù¤*z fOмpÔ{`ò¥©tBÐãBWèÙ ádŒ×õNé:6­Ikü#B!÷> ÂÉIee%O=õTh”¢•öíÛÇ?ÿùOFݳ¸¨C ÐDÔ×\,”æ¶Ñè¸ëÞ‚pàuö¢T뉅®HærD%oVï¨Vé–þɵП¶ÖÔÔÄÃ?ÌUW]Å“O>É%—\ÂÏ~ö³Ð¤ÅH+þé§Ÿfüøñx<Уwn%ælc¯…iK$CÖ÷>¢SÓj­hÐDsÒ¡À·ƒ_Õ¢¥«QÜDECXŸFpÕŽFÍÙ =X»øãS­úš5k¨¬¬dÖ¬Y”——s饗²råJš›Ã‹;::øùÏÎ¥—^ÊðáÃ…N*Œ¨Òú6:74Yä@9ÂKg4PöG@@ ®ìDDä¶ ­ƒ½µLzÏ–I‘¢ËÓ{¾’LUº è555ìܹ“Ï}îs”””pæ™gÒÔÔÄ®]»Âe‹¦ñÇ?þ‘‚‚Î:ë¬RïzhÇž ü/p-"ö]h.aô7tY,ñ€åsƼ µ6°§[>g-W±u¹kÖ,wÝÌj×L¬O´l͡ޥ€…ÞÙ õã½´l¨¦eC5þ&³ê¾¾¾>lRÙÀijj¢£# p¿+õ‘ˆþîÆXÕZ©Ôç!¼zª‰÷î2¤ž$L&¢Í/#”†tÜ¥L9"­_­ek `þüù<øàƒ\vÙe¼ð œvÚi”••±dÉŽ;î8.½ôRxàáå[ºt)6là®»îr=ü6¶Ù¼¶áv;‹p›Ñê_E”¶”#Üu#þµÕ˜M­óÍyEE×Ef{¬Ö¯ŽË=ÝÕ­Nqyyyüô§?åü#ëׯçÎ;ïäôÓO§¹¹™ªª*rrrp¹\”–š…À_|1cÆŒ!''ÇYð¤ÉÈFÉõˆ¶J7ç"|æ%R.4K¹à—J|®+÷³ïŒ­ùlÌRO¥…ž†ÕK‹^’!»IK@©·6–q»ÝÜ~ûí¼ð ¬\¹’sÏ=—óÏ?€¡C‡R^^Žªªš9#§œr #FŒ   ÀôÄ© 3ÛuÂöÂÞ„˜™üÄà?á¾5 33Ðí\îáãS*¶z‚•íõ:3w8Ë€¸å–[Â^+**âöÛo·ýü•W^é0w·'…×ÑçðˆTØd¼ýOÁsÃÙ¾[zrcè½¶NR\,t=¼õ«Ëå⪫®J˜×gÏžm*Î’ÛQf;¤:ɨK¡1FZ㕈VFü#€˜£ì–à}bõèUb¹Ü·'×C%l!^zãõÞw˜¨ZèA¿?ŽË]w MŽŽˆaÀŸA4}J©ò| µn$¾½ŠÈ—9³£äÁhíZExæ] 2§Þ}(TÑPº¡58Yî½èºW4§—{ŠÁ|mqõ?"Üëÿ–V@yŒÏ6"\íªÔÔó»pÙ¹Ü#Ëè Ëyè‘s[t‡k2€™U‚A5.Ã;” Jæ:z±ò©òy;"†nÌlØ.½ ]ÀCxÅj"€®tç×ê¨òÑ ™I¸FÒ’ât%¾ Ð’·w@¢ ؆˼ѪF®ÑØX“š{”]–àv±Ïrÿ«fݪ^¦¦Äð­;.÷¾i¡âhçŠæzßñ9ˆA/† ÈB”Æɲ ˆxyÉm»¤¤|•¶Ð´½×È0õ-•»Iו¸2 p,ôÒ!ÄxÄI’¡˜Ér "In¹dnc”Rg¶£}–»a¡ë˜eÄÆ0{¹GÕ¡«¦àPô€ ½³kfÎÒ—{rÄo2E¼1Ë¡ fÓ™ï•ò:Aà-„N—à”××ûX ½‡í(uÝq¹GZß¾82@8ÓÖRH¢3Ô DŒÜpŸ{iˆ  ˆ>޳Ù­Ûäîï@dÄÆã„xºÙß5V–{Ø©@ï›;)èB÷ÅIŠs= ¶ZÉmz©#æ /y^G´pFÊ…3åõ¶ rmF üë£GÛLÏrWR§Ï(@ׂqd€t,ôS3"ÁM—`}Djêã$c—!bíƒå1F?í ð_DŒ­€®INˆr¹ë1³Üõ®Œ‡úˆ‰Ðq= "ìt¯ë.¨—!ú¶¿ ÌCT¸à>XÊ#³=Ëݽ­‘h«’šÆÜJÜúΦ ãï¸2Àq¹§šF3™-å6­ŒlXâ~„«=(ÚHmÍNЪˆtTB±8%zÚš‘‡S‡Þ÷) €/³:So’`¡¥à¼¹ÀÙˆvЛ1kÓ­ƒrò¤en´|UŽB¹Ž€ÂDÇ®ö5 ô\#c~ƒN|HÞvÝ–F`f²E¸ØO°w.¢kT3° 19‘ ³«û€âFºÕ,×t͈©ë]æÈ;ÔWȦ“–ãUɪČ–úqò¯ÁqC$בÀïVºuzwÐ6¶­"6(yÓSw‰tüŒþ"’(¸@·¥O$k´¯ÃL~˶pk‘$·E02.ÉÔjÛ±‹¤8E4è·ºÙ5]xÒ=>Õ¡£±Ð‰Ÿ/t–©oÒÉ×…ˆv°¿N”J»OÊ#‰Í/-ø!z’Û–†¤8]ΆPÐCL´Ð3N©ïL@N8€žJ:¼(ïÆ(Ì¡ ÕRsÏÇ™Úd±u|ÇôˆvpÆô5«!1œÉq¹÷A bŽÌNÐB¯®®æé§Ÿ¦¦¦†³Î:‹K/½4lÚÀ«¯¾ÊŠ+hnnf̘1,\¸#FãR3Ù0^–À­gÈÿÛ¤E>HûaD®ìhÑ6õ«”ŽNq:hšã- ³¾ý l5 y½^žxâ 6mÚÄ”)SX°`AX»g€­[·òÛßþ–#GŽP\\ÌÕW_ÍŒ3œyè±D¦ }"Ñí=`)ð{àYùšÞ…®”ÃZOÀånmØntÕR¢èŽjÜ÷½3ÎÃb¡755që­·2pà@¾øÅ/²téR^|ñŨÓqÕUWq×]w¡( 7ß|3íííǰd-ÑýדAÝÉóÛ5ˆMoJy°7¶›ÅÆLP椡[::Å¡÷œ²kd Ç“@÷ù|ÜÿýìÞ½›¯~õ«lÛ¶ûï¿?A…sÎ9‡o}ë[œqÆÜvÛm|ôÑG wM9ˆøÙV)4Ênõt­ƒºuì'!bíjº˜‹ªU9q K+X³Í»¢Ø+óJÆíôcÈBïêa¹g«V­Âãñpýõ×3{öln¸á^zé¥(°>õÔS™={6cÆŒáì³Ï¦¹¹94yéØ\ä]t¿D¢¤Uˆ:ôHé[Žh ÇôjEô£ú4PO×p–~ÒúUɔߠ' ,{ãСC¼óÎ;ÜqÇL™2…E‹±iÓ& o/«`Ë–-üùÏfëÖ­œtÒILŸ>Ýô®)WjèŠåa$¿uE-ˆûqòÇ–ý®+Â'e­WUh²Ý«1>Uµ·Ê{õÃô>hßµ.ŒAß}÷ÝÐóPZZ²Ø­TUUEUU&LàÒK/¥®®îôdSfC™OIyàF”¯zCZŠ»>M¾üH‹ÜÄî›´"qXu0º3>5ý¤ÙÈ%f_a>ÏYjš¹¹øýþ€744 ©¬¬Œ:uEEóæÍcÞ¼y¬[·Ž÷ß߉¡‡ÓñÀ—€ë-ëq³w1ôWÝ Bg"+¾A>Úm¶~ H–#SÑu¸Â\îV} ìÓ²å¢Ë¹£}‡Œ²µ®wÛܹsihhàµ×^c÷îÝ,]º”sÏ=—¬¬,þñÐÔÔÀ|ÀÞ½{9|ø0«W¯FUU ÑEVy.YI:_>p p-pžäÉ?Ö+0»H&`ÊSã@aªÝáɸ„F—éCéj,“1qún&Å <˜iÓ¦ñÌ3ϰÿ~þøÇ?2xð`ªªªX³f [·nD–û®]»¨©©aãÆìÙ³‡áÇ;z8•KKZÁ xYkÄônn»yÇò lÈ}ü^îºn1Ñ#|îŠãrÏ ÝŸÃ[˜ù–[naéÒ¥tvv2vìX®¾újšššxàøÕ¯~Eqq1Ë—/§ººš`0Hqq1÷Þ{/EEEÇè"{³Ð“E…òá–Vz6æè1ºÏeYˆÎÐ9tÝV¨CM &-)N£4døŽJIR\<9a¨“ùùÜyç<ðÀüóŸÿ¤¬¬Œo|ã(ŠÂÓO?͸qã;v,kÖ¬áå—_Æçóáñxøüç?Ï©§žêz8mC$Á¸õIº›F3O„UaŸå.þ w¹+À+„:è=Ô&Ýrÿ8u¢i nwŠ›?>óçÏ{­¸¸˜wÞy'ôü'?ù‰³¶)£„7nð!æ¤Å£Ô9âIZmSœ¾–²5‡Â¤›âFͲeË¢ûå/úáÂ…,\¸ÐV¾÷˜Þzë-î¿ÿ~***P…©S§²xñâ Žå5—ðØÇ“}°«±LDmšudªN\ Ýa¨>h¡ûºÇÌ™F`Ñ¢E¸ÝnÜn7¹¹¹,Y²„ŠŠŠ ÖÂÞ‘¦uáñèHÆsÑý¯]]W‰#5zÎÝbÖ“Šæe„uÛ”=ÐW:Å566RVVÆücrssÉÎζMàÉ,Š·ú ¢äDDS‰uÉtÅòšÑÌârtt›iLŽÛ½z¼òè tŸÏGSS=ô#FŒ@Q”¨®V™yã¼qŽ)&H&lJ‚ào>«h¨G±aúSÙZƸõ52«õkkk+Û¶m£¬¬Œ‰'¦|Ãô> êÓ‡!²\ö ’Þ’a¡GÄб·Ð±ÿtTÇX‡z™ýßBðûýìÚµ‹`0ȨQ£ÂJïÒc5!âÞ®^#’ÛF"ÜòIº‰ºžr¨Š«3$IxôHî´µ ô²²2FŒÁ»ï¾ËÆ™fèõs@÷xaÈ!lÛ¶ŸýìgTUU…}ä¾û°òòrÖ­[Ǿð,XµèPÚ„§ SèF¹›î4–±Ý:ÝLŒ}ýõ×ùå/É”)SX¿~=×]w—]vYØ1¿ûÝïøè£1b;vì`øðáÜsÏ= §ÿîÆô5œt èÖɪÆs½‹+¨8ZrŸ±Ð;8FÒ|À{ï½Çï~÷; Àã?Σ>Ê’%KÂ,ð'žx‚œáb^»v-_ûÚ׸øâ‹á‰kýD6(©…ª”ÅÐuÂgO873\Ù‰',Ã[jjjxä‘Gxøá‡™6mÿùϸï¾û8÷ÜsÉÏÏ·hÑ¢ èìì䬳ÎâÃ?t ¹Þ!•è™Åªeº*ùDGÃ…®¨a‡*6Z“åÞ) ™µ«‡%F²yóf†Ê€"§vîܹlݺ•æææ°ÓŒl€ÂÂBÇ:O e¦Ë=üJ&¯RÚÌ®¤O[ëêaQêëëëiiia̘1œp ¨ªÊ®]»bÊ€†Ñ©4??ß±Ð{O0h]ZèF–».·–¦um¡ƒš4 ¹O[è¾ZhX š|£}_è­–––0+»´´”¶¶6|>û ÜöíÛyì±ÇX´hQD:Zò[ó28@O±³ZÚJê/á$Åųе¨üµâyíjà8!|>ÜnwHñÊÏÏÇårE)õ577s÷Ýwsæ™g2iÒ$Ð{ÏBFƒ|XÙ–ÆqŠ=ö•4ºè}Ð#g!ëEw²©Ð¹ÿz«°°ÖÖÖÐóÆÆFòóó£b@”ŒÞqÇ|þóŸçüóÏ?f(tèëÑ)týèÙÝ1{޶.‚ mI‡Î. =£bèQ2 r&A¶TÔ[ö‡ÞÊÊÊ"„º„¶··£išm8­©©‰üàäææòµ¯} Çã¸Ü¿+Z’·£fèöÃYBek²Ñ^ˆï•è×—{Ó΃= <ƒÁ3T<³MÅøñãÙ¿?GŽ`åÊ•Œ;–¢¢¢°ÓVWWóÍo~“Ï~ö³,\¸ðÎpO7)©ûh_Îkw£g«cPØ,H¤ ÐTpWš2ÀeN',++£°°;w°mÛ64M‹ªvéììäÞ{凉¹™{ï½7Ô¹Õ±Ð{ÅÉcÓË]Q£Z¿êÖyèšd5ÂB7Ng¸ÜõÔÍœr¨z7:ÅtÒI̘1ƒ;aƱaÃ~ò“ŸPWWÇå—_Îo~ó&L˜Àu×]‡×륽½Çœœœn¸á†°¸šC}™ÿ»@[%µ×è¶'§¶ŒîXöüÝNq•••Üzë­Ü{ï½LŸ>>ø€n¸‚‚n¾ùfÆÇm·ÝÆOúS^zé%,XÀÒ¥Kq»ÝœwÞy ÷ž¦ßÕp–ðÂsEQÂŽvZ¿f w£Sœªª|ë[ßâÃ?¤µµ•k¯½–±cÇÒÑÑÁý÷ßϰaÃøæ7¿Ig§)%²²²œ¤8GiHHgpˤÜýe»Ñ\JQæÏŸÏСC9pàçŸ>“&Mà†n ¨¨EQ8ûì³;vlès.—ËIŠë=Ré*)NhÑJXPJ—‡ÓX¦ÏQ€n÷r/,,dÞ¼ya¯åääpæ™g†žŸþùÎÚ†ñÒÒã—Jq–{†O[KטœŒRºY¶f(ö3f̈:ÌúÚ;»œ[ IDATI'ÄI'uŒè}ÉB·¢¶etšÑI&Êåná"Ð3×Bw¨'” ÌEôsï ¯&I™°G[—[ÃåÒ’ö3œá,i¦¾2>Õ¡T[‘E‘W",ôDǧ:‹Û·=^ŸfГ Ú³3ÿg„4ôÈŠ–äõ_×ûAÙZÆÉ7=àz?±Ðƒ˜=Z#´ £ÜŒ©uM¬cåUÐû4i 0³sÃ2ŒoSè)o,Þ)NÑt\zEw6aJ=`;€Þ,t-B GN`Á’#§Ä4Þ#]sx³oYèŽË½ŸHåtXè©üz¿i,“Q.ýD¦­9€Þ]~M×Tð+ãHh|ªcð9€~l‚m;GfW@§§õk:üáÆ%ü$:pºï’z2g|j?'%NëרÕPMzèãvºâàƒèÇuoÿCjg¢§FBÓÖRÝX&…ç·Y¥cÞÀp案N—u耮¨u—­…n—$çÄÐû `f‡’ 1ëS¬¥À´U¥ôUÒi¡ë)oœjù“‘Iq ÷wR# Ë£-t%¤µ‹^î1ÂëŽÁ××±&³:mýŽ5ß……ž&["z†ý„Ô,J+]@ïA/!YŸª£vm:jTº3>5(˜³f;Ëä( $=Ë]EØ’†Dú~Q¶–Ô߈Ë=‰?ÊéÙ[ºmcÝÖb·¶yŠèZœGÄ {ã7X°`—]vwß}7---Q§}å•W¸òÊ+™4iÏ<óŒ³Î™nÚ†,t…ÔgQ’··õÞ±Ð3ÎJï¦ ¨®®æÆoä²Ë.cÑ¢ElÞ¼9ê”ÕÕÕ\{íµÌ;—E‹ÑÑÑázï ;—{xW+ˆG&ÅÙyèœÖ¯™M‡æ§?ý)Ÿÿüçy衇سgË—/:î¸ãŽcáÂ…Lœ8‘¶¶¶c|Õr€9ýÀÕ‘žš²¤]¢ ï“ÓX¦çÔÞÞÎC=Ä 'œÀÏ~ö3FŽÉÃ?&ÿ ¸ôÒK¹ä’Khll ½ïz_°Ðu@—(m¸fÜDUX/øXYî8€žÑôÎ;ïPZZÊE]DUU_þò—yíµ×hjj ;nòäÉœsÎ9 8ÐY4ÜÀHR›ŒŽ©&Zʧ­éºŽ¢¦v•ôƒJºÆ³ö–àÀ¬]»–/ùË >œ«¯¾šýû÷‡Æ©TYYÉE]Ä 'œ…,õŠ…®‡k»ºAÝvG…5–QíëЗ{_$#+Îúèê€Zù0lGŽ¡¼¼<ä:t(õõõx½^g)û;¥iZ:†³¤K‚fŒç%Jø‹ 0Ãj^¯ǃË%ÔÒÒR\.µµµ «·%ýƳ“m¦­Ee¾‡O_sÊÖ2‘ìÆ­Õ ê¦;äó}æPU4ÍÜÁ`EQR^jäP’¡ÊhͬtóJbP¥ ¡ô€Ó¤¸Þ¸†n#¼R‘Ï×-²Þü†|x‚{á4‚¼Åož@–{Ï ½ A¡Ýb•謒ÙM13Ð;â–-[Æš5kxê©§¸è¢‹ƒ,Y²„ƒÐÐÐÀ† ¨­­eÿþý¬_¿ž@ pŒ®±ØIò›Œ¦[D¤«õ«Ò=QÕ“Ÿ‘ázrIK@˜¼;pà@æÎËOúS6nÜÈO<Á‰'žÈ!CX¾|9ÿþ÷¿á½[¿~=»w鈴±‘7ÒÐÐàzïXíŠ ×ØÍHÕC¨¬kæÿªÛå®%ÁXp(ÙzWˆJJJxä‘Gصk¿ùÍoøÂ¾À¥—^J  ºº:Tš²yóf~øaÚÚÚØ²e >øà1gïV“Ú–|éHÅJG ]¯3$â`Œ¶™.kRc¡wõð‡ŽÎÎÎæž{î¡¢¢‚Gy„¡C‡r÷ÝwpðàAêêêÐu¯×˃>ÈÛo¿MNN<ò›6mr\î½Cvz¸†nÍrO4~âÄÐû¢vÞ½ù©cÇŽåÁ {­¬¬ŒÇ<ô|îܹÌ;×YÞ°uÎtÑÍ ™ëˆ èúQÞ­ÌSºß*®  €;ï¼3ê¨Ûo¿=ì»’VÐû( ‡ÊK®”mºQñâ”­õ%r¦³ôJ×øÔÔ»Ü{{|ªž„ŸY¾’ô6sw½W(†s\ÑßUMWÐŒ‰õ ¡ò[%}¢Ç¡„É.)ÎôÌåY+Ó%;Z)ÑV%u™M©pgœõœÒ ÷á`cbG˜Ý¡q节¦‡ìQ ½S¶–©€t–é¨HJHo~o K×SŽˆ}ÁBOÆ5RM©Ïr$¿è™/„ºŸŠ¢ )ëuèJŒL7ÇåÞ×(èXè)§<Ä,ô¬Ì†=õ¶­®ƒ[ÑQSü{œ^~ Zèq\î(1÷XâP ½ïz÷’âê /åöIO×—tXè™c=§ãn'’—œ /¼ââÔ­d0äwÞaÓ¦M\yå•TVV†Þߺu+¯½öªªrÞyç1f̘4¯qÉ÷MYwgšËÚê´ï­'wxnL\I×´µTʀ̛¶Ö} =ð׿þ•­[·râ‰'rÎ9ç——±]t¶lÙÂo¼¢(\rÉ%wÜqñ‹7kjjxíµ×øøãyþùçÃÆ;¾þúë<ôÐCTUU±gÏî¼óNZZZú Þ–ýOÆ™a )jD]±ó¾ÇôWê3/)ný4Ì›ëaÞI¯×ËwÜAuu5#FŒàG?úo½õVÔY_xáüqÆÏúõë¹ûî»éììLÙ¯èììäÕW_eß¾}üö·¿ ›Í\]]Í7¾ñ rssq¹\Üzë­8p Ê€¾ßŸlç+ŸÄ½DÝ(ØÐ“k¡oëÁ*ÑçïDäÙâÉ- Ìüqþö·¿1~üx^zé%{챨³îÞ½›Ûn»‚‚<‹/f÷îÝñ-ôªª*žzê)V¬XÖOZ×už}öY,XÀå—_Î…^Èé§ŸÎÖ­[™1cF†3sªÝ Ÿ¹iµËídEqU‰Nv‹xÞ©e^ ½ÿ;›»—å¾víZjkkùùÏNQQ>Ÿ?üáœrÊ)dg›îägŸ}–›nº‰ùóç3}út®¸â Ž9°aÃRò+òòòøÉO~B[[[”‚ñÊ+¯PUUÅ7Þˆ¦ilÙ²…¿þõ¯Ü|óÍýHd‚…ÁÎ`œKè Ï…8ZéæÈ+'žå^SSË/¾ÈSO=Ř1c>|8ßúÖ·¸ñÆ)++ ÷—¿ü…iÓ¦qÝu×ár¹X½z5o¿ývÏÛ+Õ××S[[ËøñãQ…ììl ÔO´ódÞL¿Ýlo‹…ÖŽ.cèv"ÆIŠëk”ÈøTS¤mÙ²…áÇSTTÀ¬Y³Ø±cMMMagÝ·oÇ<¥¥¥ :”mÛÒïïðù||òÉ'L›6 UUq»ÝL™2…Í›7‡yòê¶gª+ãÒÑ)ΩΤO®…O˜1ô††ü~?C† `ôèѸÝnvíÚvÖõë×3eÊÜn7Š¢0mÚ46n܈û¹çžã¥—^Šún·›Ç{,L+°’ßïG×u<Oèµììì(×_I‰—`ðõ c® 1ŽîiÝVÖÿn.ÌžÏnù¶|Þ ìï  *°h?®&”;?7x¶æð/ñJq ÕÍö¬ ï+cý6xx?<å‘§j‡j7´Â.žÏ7=d†C'`qþh„WÁëQ¶bzDL¬Uî«TKâ“ï\.ee»âþœœæ0€ÌÊʲ¼—ƒßïÇ`0ÊcQUÇ­Úúä“O¸ï¾ûlß»ùæ›™7ož½ºªiø|>rrrÂd€ñUÕ´ÊÊšÑõTÈàÞ$¹í_­»³h^•|ì‘ÝòáAtª“¼nôcWå×k’|Ú(_óDœBš>ÍlâCn5;€¢è¸Ü¼’‹ýÒâ«Å‚އ mÕGø×ºz\qÄMT4\z€O7¸øý¼ú¤‚ 9¨z® Ž¢éWü„{‚ý#S·`!æý¦Úé‚O‹áN]ü´NÝLIIIã‚p··· !ÚÙIcc#ìñw:t(_ÿú×mß«ªªŠù9ÇCYY‡½väÈJKKC GHªÝål ‡Ž9Z¿þýn©Ä755 £ ëÊÊJŽ9&+ˆ{øðá ><æ4M£­­¶¶6ÍÍÍ‘——ÇäÉ“yóÍ7™0a‡Æëõ†\9äP÷褓NbÙ²e¬[·Ž‘#GòòË/3kÖ,òòòعs'C‡%''‡éÓ§óî»ïr 'ðñÇãõzm•òD©°°Y³fuyL[[ÍÍ̓AZ[[ñz½äææ2{öl^xᮼòJ«V­âúë¯OK¬Ö!‡úUVVrüñÇóæ›orÆgðî»ïRPPÀ¨Q£Ø¿?ÙÙÙTTTpúé§ó§?ý‰‹/¾·ÛÍÚµk¹õÖ[Qt½ëÞbµµµ,^¼˜êêjª««9ù䓹õÖ[9óÌ3©®®æ{ßûš¦ÑÜÜÌõ×_Ï%—\æ2pÈ!‡§'Ÿ|’¿ýíodgg“““ÃC=„®ë|îsŸã™gžaòäÉlÙ²…x€öövþ÷ÿ7å|÷Ýï~—7²råJ¦M›Æ\À-·ÜB àûßÿ>[·n`ìØ±<ðÀa¡8‡r(qZ³f ?üáÉËËÃëõ²xñbæÍ›Ç¿øEÆÏ7¿ùM:::¸ë®»8pà~¿Ÿ“O>™Å‹Çô`0È‘#G°V\\L^^º®‡¬w3, •mÛ¶ñÃþmÛ¶1eÊ~ýë_‡>¿oß>}ôQvíÚEnn.·ß~;Ó¦MëSZýÇÌe—]FUU‡#Fðýï?¥õ¾Ý¥ýû÷³dÉöìÙCqq17Þx#³gÏî³ÕçóñÝï~—U«VQQQÀ5×\Ã%—\Ò§¾§ßïç©§žâïÿ;{÷îåç?ÿ9sæÌ`ûöí<öØc8p€ÒÒR¾þõ¯‡C“A@€¦¦&ùùù ©¯¯§¤¤ÇÃÿgï¼Ã£(·?þ™²%½'”@è¡Io¢bA@DEiÂE¯¨(¢\‘ŸR¥ "^‘bEŠW,Àõ"ˆ^,€¢tDJD„$„ôl²mÊï-d!x)œïó̳™ÝÙÙɼóžïû=ç¼çÕu›ÍFii)f³™¨¨¨³\Ü—yyyq¼¢¢¢§ÓIQQ‚ éØív^xá8€ÛíæwÞ!%%Åÿ,ÌŸ?ŸM›6!Š"wß}7ýû÷¿ìÿÇÅàÔ©S :·ÛíŸüÊ+¯üaâj ==3f““C\\O<ñÍ›7Z;PZZʳÏ>ËÁƒ‰ŽŽà‰'žàöÛoªëܸq#o¿ý6¿þú+C† áé§Ÿö?ׯ¼ò »víB’$ D=.Ù€Z×uŠŠŠp8X­V"##E‘ÂÂBdYö‡ÂÅÅžœèèhÌfóù§­I’D•*U*üÌg¯(ÖIïÞ½ùå—_سgOÀgï¼ón·›9sæ°mÛ6ÆÏâÅ‹ŠUƒQOJJâÕW_%66Y–‰ˆˆªë[°`f³™×^{õë×3iÒ$Ö®]´îN߃úàƒÒ§O‚î:EQ¤I“&Ô­[—)S¦$z¾úê«T©R…1cưvíZ¦NÊ[o½uÉ *ɲL\\ÜY}°|߈ˆˆ+ú<žyMåa±XHLL¬ÐvtîÜ™îÝ»óÜsÏ¡ª§3ú¿ýö[¾üòKfΜ‰ÍfãÅ_¤Y³fAEDªªâp8˜8q" 6ôÎ`‚Ãá`öìÙÔ¬Y“^x>úˆ—_~™eË–µ(((`øðátîÜ ( ’U«V°zõjl6›ÿýµkײcÇf̘ÁÉ“'™gg¾gµZRáò% R¥Jî¹çž³ªF9¾ÿþ{úõëGÍš5¹óÎ;)))!===è´  €7²eËœNgP…l67ndèСԨQƒž={¢( ûöí z—ÒþýûùòË/9|øpP†g$I⦛n⦛n Ͳ²2vîÜÉý÷ßOrr2÷ÜsGŽ!??ßðV³ÙL=Îò©ªÊš5kèÕ«M›6¥C‡´mÛ–õë×Ýÿ ( ?üð7näÔ©SAåAO2ÔÖ­[yøá‡INNö×$HKK úçc×®]lذcÇŽÝ}HMM¥{÷îT¯^=@H}òÉ' <˜ÔÔT:uêDJJ ?üðCP\óŸ®å^\\Liii…ê&!!ᜆÚgü|Y{¢(Iaá•ÀTVVvÖü^âã㉈ˆ {÷Ê_|Á¿þõ/fΜиWÛÐ(Šâ¡…‡‡AVVM›6 Ê,Š":t   €“'O²téRîºë.üñJAP§Nò»À|„eµZýn¯¿œNç93111g©‡òßËËËóϵHJJ"333`JÞ•èC¹¹¹TuŒˆˆÀb±Ð­[7ÂÂÂØ³g ,`ÆŒ´k×.¨ÚÀWÀ§âÌf39994hÐ (ŸI’¸ùæ›Q…'N°hÑ"†Jÿþýƒþ™÷ñFùg7!!Áÿ]m¯ÈŸ"tUUY±b«W¯®°#,X°àœó×}D_¾9÷îJà믿fÁ‚~öÆoP§Nf̘áÿû÷ïφ 2dHй¯|¯š¦åHדÉÄßþö7ÿ~Û¶myê©§>|x¥H¤”$ ]מ]]׃úž_NìÞ½ûœó×ÇÇõ×_ÿ‡ƒ»òóë}6àJÄììlüqåìÕ®zè!úöíËØ±cýíºüuI ]’$샞ùû̹ԯÅb!##ƒÔÔTB/IêJ¡k×®.|œuý>/ÂÿR¼ãRÃl6A^^µjÕ"//ÂÂBêÔ©SiÁ—X©W’EÜ“’’PU•“'OR³fMJJJp¹\ø¼_ËhÙ²%Ë–-«ð³?ЉZ­Vj֬ɸûî»Ñu#GŽÐ¸qã+j«V­Ê’%K*|þBBBβk111Øíö Pb>„……!Ë2EEEÄÄÄÓé¤fÍš•æ9Šˆˆ@UÕJa¨V­äúë¯GÓ4222hÓ¦MP<ÚårÖC_‡ƒß~ûôôt Ù½{7µjÕ"**Š®]»²hÑ"øöÛoINNög¿^)X,–³ v”ÇæÍ›ýî”;wò믿òè£̓N·nÝX¸p!O=õ«W¯&111¨ë”••±~ýzêÕ«ÀÂ… iÑ¢EP*Ü'N™™Iqq1‡&99™zõêÑ©S'/^LXX+W®¤Y³fçôF]ë0™Lg’:‡"//»ÝÎþýû1›ÍT¯^^½z1fÌÚ¶mKqq1ûöíóg_IË%¹9r„P·n]233Y¼x1 *ÏÍ7ßÌ?ÿùO† Æ’%K¨_¿þe«ë)PPPÀwß}GýúõýɽíÛ·:;PTTÄÑ£GÉÎÎFEvïÞMÆ éׯS§N¥AƒdddŸŸÿ‡Þ¨+êAÐ/Ó°èĉŒ7Ž’’¬wÔ¨Q´k×›ÍÆG}ĦM›¨V­O>ùäÿTéêr`óæÍ¬X±‚ââbyðÁý5«ƒ‰ ?øà¶nÝJݺuãäÉ“ý]§ÓÉÊ•+ÉÎÎþËÞ¿ôôtV­Z…Ûí6& 0ýüx÷Ýw>|ø%?oqq1Ë—/'++ëËÏÏçïÿ;»víò¿g·ÛY²d 'Nœ¸èßýú믹ýöÛ¹óÎ;¹çž{0`+V¬Àn·Wªv9|ø0~ø!.—Ëè} 0p !_«ÿXFF¿þúë%?oÕªUy÷Ýw ýÃãÜn7ûöí XZ3**Š¥K—vÑ¿›——Gvv6ãÆ#))‰={ö0jÔ(DQ¤oß¾•¦]n¼ñFÚ´isÞûgÀ€ B?/Ž?Μ9sسg¢(rà 7ðä“OúÙøî»ï˜;w.………4nܘ˜˜²²²xóÍ7ÉÊÊbäÈ‘¼øâ‹4kÖŒŸþ™9sæ““ƒÉd¢^½z¼þúë¼ôÒKìÛ·‘#GE÷îÝyôÑG8p “&M¢uëÖ8¾úê+Þ}÷]Š‹‹ cÀ€ç$èÐÐPÚ¶mK:uhݺ5_|ñ7n¤oß¾hšÆîÝ»yíµ×ÈÌÌÄl6sÿý÷Ó·o_BCCq»Ý¼ÿþû¬\¹Y–éÔ©{÷î¥{÷î 0€o¾ù†Ù³gs×]wñå—_Æâŋٲe o¾ù&'OžÄb±0dÈîºë.¬V+;vì`Μ9dff"Š"-Z´`ôèÑDEE±dÉ>ûì3\.!!! 8~ýú±iÓ&Þ|óM-ZDXX™™™Ìš5‹_~ù]×¹ùæ›>|8 ”””pÇwððÃóí·ßrìØ1jÕªÅÌ™3ƒ²þ»g¢°°={öø÷CBB¨Y³f@­õãÇsäÈÿ¾Ùl&99™jÕª!Š"Š¢pðàAòòòΜœ\áꊺ®“““ñcÇp8X­Vbbb¨]»6§N"##ƒæÍ›c2™¾wìØ1 hܸ1iiiäååÑ´iÓ€xòóóÙ·oñññ¤¦¦VŠe B¿†QRR„ ÈÏÏçÅ_¤¬¬ŒiÓ¦¡i/¼ðEEE<óÌ3Ü|óÍŒ=šC‡1yòdš4i€¢(þ% ‹‹‹™|˜U«V1bÄ$IbÚ´iÌŸ?ŸqãÆÕB T„;vpûí·sÏ=÷ ë:Ç'99™™3gÒ°aCt]gÅŠ̘1ƒN:¡ë:¹¹¹È²ÌôéÓ騱#eeeŒ;–C‡ѰaCÿ¹{öìY!¡ïÛ·§žzв²2ÿÀØáp°råJ~ÿýwúöíËæÍ›©[·nÀ `üøñ‚Àœ9s?~<«W¯æŸÿü‘ IDATgÀÚåK—.eôèÑôîݛŋcµZF6ýêáĉ|þùçlÚ´‰ øGÄ#FŒ`ذalܸ‘ððpÆŒCbb"­[·f×®]üöÛogKÓ4œN'V«•¨¨(jժŠ7Ü@­Zµ £Aƒ´lÙÒ?º-ùóçÓ·o_†zA䔑‘ÁSO=…ÕjeÿþýÔ®]ÛßÙÖ¬YƒÙl¦k×®‚@DD·ß~;~ø!={ödñâÅôèу!C† Ë2)))|óÍ7çOJJbÔ¨Q4hÐ]×3f U«Våæ›oFÂÃÃ騱#}ô·Ür .— ³ÙLtt45jÔð‡\.š¦JµjÕhÙ²e…K#îß¿Ÿÿþ÷¿¬^½šÆû ËÀ™0a‚ÿÙgŸ¥S§Nþ{ðñÇc³Ùˆˆˆ0z° ‡ ¬\¹Q),,¤[·n,Z´ˆiÓ¦ùûE:uøä“OüÏü<Àüùó騱£ÿ<<ð'N 8ï™PU• &P»vm^{í5BCCýƒ„ˆˆÂÃÃiÚ´)Ë—/gܸqþïýòË/ìÚµ‹iÓ¦ù—•nÓ¦ ü1Æ Ãb±àt:ùä“OhݺµÑ¨¡ Ìb±¸‘êׯOnn.N§“¬¬,ÂÃÃýîwY–©^½z€K̇¨¨(ÆŽË+¯¼Âºuë¨Zµ*½zõ¢_¿~t-ééé 0à‚•ftt4÷ÝwQQQ¬^½šÂÂBÿw=Ê¡C‡Öl·ÙlÔ¬Y§ÓI^^×]w²ìiòÈÈȳÜÖ¡¡¡~W ®ë¤§§³}ûö€sÑ¢E L&Ï=÷3gÎäá‡&66–~ýúqß}÷Ñ®];|ðA¦M›†Õj%%%…çž{ŽÔÔÔ³¼%6›-@)$&&"6› «ÕJHHH@[EDDàr¹PÅè½* $IBEbbbHLL$??MÓü„®ë:N§ÓOʪªúmŠ¢øÁO¼gzQQ)))ˆ¢ˆ H’D•*UËÿÎ;ïdÍš5<þøã~Ïá×_MHH7Þx£ÿ\mÛ¶åÀlݺ•N:ñÃ?`µZiÒ¤ F£„~õŽÃá ´´”„„²²²ˆŒŒÄd2ƒÃá ¤¤„˜˜TU%//MÓ*ì¤;wæ¶Ûn#77—>úˆ‰'R«V-êÕ«w^¢NLL$##㢮ý–[n¡N:téÒ…{ï½—ùóç3yòd¸é¦›X¹re…<<<œÜÜ\4MCEìv{@žÏH”wùÇÇÇsÏ=÷0oÞ¼ ¯§S§NtêÔ‰œœ¾ûî;ž|òIâââèÖ­cÆŒaôèÑüúë¯Ì›7'Ÿ|’+V|?$$«ÕJvv6)))€gªª„††¢išáV7Pé¡ë:?þø#àq‡§¥¥1hР€öáÇéÝ»·?,ÎÌ™3γråJÿ¬™^~ùeêׯpŒÙlfÈ!¼ð :tˆÖ­[Ó¼ys:vìH•*UE‘ûî»wß}—ï¿ÿž^½za·ÛY±býúõ#22Ò?s&))‰5j°råJZ´hÁ‡~H÷îÝ)((0=HqMg48N222üÛ‰'ˆ¥U«V¼ùæ›?~œÃ‡3oÞ|Aÿ[DDÇgíÚµüòË/téÒ…´´4þóŸÿpâÄ ²²²Ø¿?@EzôèÁ† غu+YYY¬[·Ž={öœ“0}ßÙ¶m6l 33“¬¬,öîÝËáDZÛíüøã¤§§£iÍ›7G–eEáÈ‘#ìÙ³‡“'OGjj*ªªž¥ªëÕ«G³f͘;w.G%==·ß~›Î;bôN× &NœÈ¸qã˜6mwÞy'=zôè{Õ«WgÚ´iLŸ>™3gÅ;ï¼`wn»í6¦M›Æ´iÓ˜0aÕ«W¯ð·úôéÃgŸ}FçÎ9|ø0S¦L¡wïÞ8p€””ÚµkÇgŸ}†ªªìÚµ‹S§Nѵk׳ÎÕ«W/~úé'~üñG¶oßν÷Þk4¦¡Ð¯öíÛG÷îÝýêà½÷ÞcÚ´iŒ?žÞ½{£ë:õêÕcÒ¤I„‡‡“ššÊ³Ï>Ëo¼Á¢E‹HJJ¢Q£F*t‡ÃÁÂ… IKKCEáöÛo§cÇŽþ,ó¹sç²hÑ"zôèÁßÿþ÷€NÜ¿l6>ú(‹“ÉÄý÷ßÏ“O>yÖo ‚ð]AèÑ£ï¾û.K–,aòäɼôÒKÌž=‡Ã$I˜L&yäRSSyàعs'>ú(ñññÔ©S‡zõêù“Õ*B—.]ÈÏÏgêÔ©¸ÝnDQÄb±0jÔ(Y´h¿üò ¢(ât:8p :t`ïÞ½L™2»ÝŽ®ë‚À /¼àw§ûþøøx^zé%ÆŒCß¾}QU•ÔÔT^zé%h ¢û`À@e‚ ¬[·UUÙ°acÇŽå‡~ [·nþcBCCý¹6à G=þøãŒ;Ö¯ä«T©p̹`6›iÕª­Zµ<á¸ÁƒóöÛo3kÖ,DQäÁdÈ!äää°téR:uêDíÚµÏ:Wrr2µk׿•W^¡Aƒ~×½ }ÖôФç5›Í†Íf;ëýØØXÌf3%%%ØívA ,,,`^´Ó餬¬Ì_üdìØ±Ô¨QƒI“&¡ª*………DFF"Ë2eee”••¡ªª_•ûHÒívSTT„¢(„„„A~~>‘‘‘þcEñ#IÆÆ|a‚èè耳¢¢"t]'** ð¸¬N'º®c6› ÷„²²2JKKÑu“'O2tèPÞxã :tè€ÓéÄf³@šš¦ù³d¬V+aaaH’DYYv»EQeÙÿ)Š‚ÍfóÇû, QQQ‚€Ó餴´”˜˜ÿïøÚûŒððpÿˆßb±T8E‘¨¨¨ Ï{®ÿ]–e¢££+¼ŽŠ~ç\m!‚?Ïá|÷Á€ÊQéׯË—/çÛo¿å®»î   €O?ýÔOÈóçϧK—.ÄÇÇW®;Eaüøñ˜ÍfZ¶lIhh(›6mâçŸfÑ¢E~’OHH [·nLž<™””n¹å–sžóŽ;î }ûöÉ©‚ÒÄòó PZZÊöíÛùå—_HHH`êÔ©þyè•YYYlß¾#GŽpÓM71iÒ$cê——v»›ÍF¯^½ü©˜˜âââÈÈÈ M›6þÙàСC2tèPž}öYÌf3š¦‘ŸŸOjj*5úcƒ.IÔ«WÂÂBöîÝËo¿ýF­Zµ˜2e íÛ·,ׯ_Ÿììl†z–+?77— ššŠ,Ë„‡‡û½d………ÄÅÅѦM› §£¸z8¯Ë]×u6oÞ̪U«HKKã©§ž¢sçÎ~âûðÃÙ¼y3ÑÑÑ<ýôÓÔ¨QÈs0ð'àv»Y´h;vì@Ó4&L˜@rròYÇ•””°bÅ ¶lÙBrr2Æ «0þy)qìØ1Þ{ï=öíÛGË–-yþùçüSž>ùäDQ¤wïÞÜvÛm† 0`àOÀןþóŸÿžžÎóÏ?0óAUUÖ¯_Ïš5k}ú——wQõ þ êׯϨQ£ü¥†}ƒýuëÖqã7rë­·Ò¥Kn¼ñF¿j0`ÀÀÅA–eî½÷^PïÿL¬ZµŠnݺqóÍ7Ó¹sgš6mÊwß}wáóÐÏôÌPZZJÍš5Oì&!!œœ£U ¸ŒÈÏÏ÷'W†‡‡“˜˜ÈÑ£G¯øu¸\.Ž?î/¢$Š"uëÖ娱c¨ªj4”— ¿ÿþ;uêÔñÏô©_¿>‡þóYî>‚/+Eñ,âoР%yy•-+¹¸ØŒN¡‚}Ñû*y_eï«ÕûY§ ¢)àm/BË&è'ŽnÇaA;zœÍœø¥”„HÔ=‡þžº ªéPdñ€(€^ÁF¹×Êz—¯&r€]G^P"áþýûéuãÄžœ­Vž8qÑ}ïÌšÕI¸ðU,o4M;Ë4ižD£æ•gRÍñ#*5jW®„/㚯 Ò~Ý;.¬ÏvhÞá<Þ³b`áªUþ…²þŒ ðõ»?Ý⢢0™Lœ:uÊÿùùùgÕ., !?¿[%#ôù‘ÀÂ{2`ö¾Zá}­î}= â×Pã Ð2Á9qÒ,ô÷Ò´y&‘õÐÞzÿ{%Š¥§G]èî²aÆ7 C7–·{¸žR/©»½¯j¹W½ß嫉µÀ…–mPU•”ü|n8ÏqÿþSð"""üS™yyy&Ï]n˜L¦³ÊŸ8q‚¤¤¤³ 5h^ÊŒ%•gø¶xN)CGU® Æ5_<7øÂ§Z ¹íŒE¹ÎÄ.¸èµ)ªU«FVV–?##ƒäää s¹“žžŽÍf#''‡ôôtL&]»veÙ²e>|˜µk×"IÒY p¨ˆô}›°œÖ΢N;rˆŒZæÄdöhz—¬¦ÓrÛ©ƒY.Åm ’wH÷GÛ™033“ôôtœN'Ç'77—ÒÒR>ûì3ÿj}ݺucÅŠ¤§§³nÝ:,ËeÏrw¹\¤§§sêÔ)l6GŽÁápн{w6nÜÈŽ;غu+7n¤gÏžFã0€ÇvŸÏœéŸ(((àèÑ£”••qòäIŽ?ަi|ûí·ìÙ³€{ï½—µkײ}ûvvìØÁO?ýÄ-·Üra }ãÆ¼óÎ;ddd••ŦM›xï½÷0`sçÎåùçŸÇl63mÚ´k¤4àår‰Þsû6à­Y®{\¦¢ ºËl•Ð.¡ n¡kBw&Á³‹Wïw9¸ —®ýÑQ¯¼ò û÷ïGQ¦OŸN=èÓ§o¿ý65"66–¿ÿýï¼ñÆ<ûì³DGG3qâÄ€J‡—'NœàÿøÙÙÙØl6FŒÁøñãi×®}ûöåå—_F DóæÍ+}Û™-‚qÍÆ5_‹>p¦í^»v-Ë—/'33“÷ߟï¿ÿžyóæ±fÍ4hÀu×]GÛ¶méÝ»7³fÍB×u†N‹-.ŒÐ{öìYá¨;<<œI“&]ƒÍÐà ýްzZ]õP³ èN&Kî³€€îQè2~ºKõ(t:w¹Rú™ƒšW_}µÂãÖ®]ëÿ»J•*L™2åŠþ/µk׿ã?®ð³¡C‡2tèÐkªín»;ĸf㚯¡ŸI `À€g7{öìÓƒ“‰áÇ3|øð?<—¢® ¡‡xsç4D4TÅ)$ç)7+ é§]î^BwêP~p›w9è<«Ð ªÖŒk6®ù†ð'úÿ*" \¶±ÙùÜI<‰r€®ƒèq¯ ª Ù*¢9]˜-º^N¡{áÒº~šë Ñ _@‡7`ÀÀµKèç³—rPoúemÊó™k»W[º‚ˆ «àvc²ÊèNB×½ ÝRžÐÏPèà¯øæ9 Ý€¿î þ|6àR’°AèWÞºNM¨ ¸1YE4§‹tïcQÀ3ïLõº„gzšj(ó Ä…¸Ü¥- ¸¶ ýbcè¡WvBݲA×<„"£9ݘ£< ]¼„î›¶¦y”3 ǘ<­k(tþ„~>`ÄÐ+ |UâdNW‰óé2Ÿ¾–½ ݲQPf¯B·Ztt]õ8ð½•aTÕ£ÊÍF¶Ò+tƒÐ ¸¶ÀPè×Ts–ßÎüLAöü©y]Ðup+H ÍáÆdöLQφŠšfƒ ‚žÐ¯dBŒ‚Îg.eØÍ ô« ¿ÃEw€É‚ˆªâ‰;Ý„XMCÐAôÊÝš‡Ð-Æ zB?Ÿ;Í t®]ˆ` B¿¦ÝÛœšd³‡©EAP] f‹¯¿W¡{¿¥a¸Ü+¡.wþÚ Ýp¹_³½ã5»=û2žºÙ‚¨©’ˆ$¨h7!ݯÐo†»[=Mèç+é¯rþc \¾Ö>_BÌ™£óââb~þùgŠ‹‹iذ!5:ë;v»;w’™™Irr2­ZµÂl67Ü€ Tè›§i?ýô'Nœ 99™-Z`±XÎ:æ×_%--ÐÐP:tè@TT”!‚J¡K&Ï5ÉÓ,šKÅdÐÊÇÐ9C7 =è ýbgQU•iÓ¦±lÙ2öìÙÃ?þñöíÛwÖy.\Èܹs9zô(³fÍbÉ’%Æúã )¡ŸÏ”WÕº®óé§ŸòòË/óÛo¿1cÆ V®\yÖyúé'ž{î9öíÛÇÇÌĉ)))1úå1ãç+*ãSêêéñ™î³QU$ Íé&Ī®{VW÷.vîV¼1tÝSšÆ@åUèå }Û¶mìÚµ‹¥K—Ï‚ X°`sæÌÁdò<'n·›÷ߟ%K–ЬY3¶oßÎ!C¸ÿþû‰ŽŽ6nº•X¡çää0þ|^{í5š5kÆ–-[?~<={ö$""Â?ðŸ?>}ûö塇ÂétrÛm·±iÓ&C¡_}…îÍr×]ÞºŠ I誆®iX,x:Žz€…W ig–ϳ•ï€û÷ï'99™øøxn¸á:DQQ‘ÿ§Ó‰(Š„„xµ'//ììlã†0d.ÒäççSVVF:uhР’$ñû￟f EÁf³ùí„ÙlFE8`(ô  t \ ‡"*nPÜ誊Ŭ{ Ë‚—¹ï«è]ÝW-Î@pAΟ¸(–ûÜf³æßŠŠ¢¬¬ ·Ûí/,,ŒÈÈH¾ùæªV­ÊºuëÈÍÍ¥¸¸Ø¸á !¡Ÿoz±\N‘¹Ýn$IBðÆWCCCE›Íæ?Æb±Ð¬Y3>ÿüsÚ·oÏ8tèÅÅÅ¡_uB÷ÍCÇr4x]¡«V«Ni‰Ž,ž®çÖ½õõÓê\¯`3pu!Ë`9#ë- øB=*ù½¡GFFs~~>ááá o‚ 0gÎæÏŸÏúõëINN¦Aƒ$$$7Ü€ ƒ(‚åŒ|Õ2`Y^#½]ƒ¦åÈZQ4o¹o›Í†ªªDE®M9räH¦OŸÎ£>JÕªUiÖ¬UªT1ýêß%o^œ LfO–»(€¢€ªa1k:5,&/ï{³Üe< ´iåݧÔUƒÐƒƒÐ+è̵€ÇÊíÿR®¡š6mʲeË8yò$IIIlÚ´‰† åºèaÿ–-[²`Áìv;Û¶mãàÁƒ¡0Œ„.œm,Àƒåö—¸NÿKTTiii´jÕŠƒP§Nt]÷êcbb˜1ceeeØívú÷ïOË–- B¿ò˜òÑðò…e<„Žª Ⱥ¢¢«!VG™ŽU>k²› ‡$Ãùf“‰§½é´jÕŠN:ñä“O’””Dzz:¯¿þ:§NâÎ;ïäý÷ß§Y³f,[¶Œ½{÷âv»ÉÈÈ`Ê”)„‡‡7Ü€`³øâùm@y—{BBÿøÇ?7n5bÿþý<ñÄ„††2dÈš4iÂèÑ£ÙµkË–-Ãd2‘––Æ!Ch×®AèWx¼Æé™Ç¾ÙáÞ}Ý &3‚ªx¦§)*¨V³ŽË¡a‘Aô6¼Û˜²VyÆoâSO?ý4 ´´”””RRRp:,\¸ÐŸ(Ó©S'jÖ¬‰ ¤¤¤P£F ã^0Ìfÿ"l@çΩV­¹¹¹üío£~ýú<÷Üs„……!õêÕã¾ûîÃív3hÐ RSS=ƒãn_­v{È\”½ îS襧º¦a±‚½ B÷ÇÝúùºŽ±>úÕ—èœ1dwànXX­[·xÏb±Ð¾}{ÿ~5 7` ²˜ú‹´¢(Ò¤I“³kܸ±ÿ:vìx¶Ú7îøÕ’n*å]wÉäu¹‹èŠ ªŽÙ,àt觺æ©å. ¡_„n0`àÚ6õç³ÎK÷s¡_±ašH oÅ…=.Ï´5³œD‹ Õ“/'h8í:VÉ«Ð5P40©ì•ƒÐÕY øk›þ+¸:‹AèWl˜&V0,+G躗ÐN‹ MQM":N»G¡ûÝ¥ž¶f ˆ!c¬ÎbÀ€¡Ð¯ „~Õàö¸Ü%_Rœ·RœÓ‰d5ƒêB’DMÃíÐ /×R —»·,*§§¯òq\EÇJ¨—h´%¢#£oÃ\A½AèW .ÏídÏ„rÝ ²ÝîD´šÐ;’, è:N»Fœ)ð›¾AŸQH&ˆq!1tC¡-ôK6Ú2z§¡ÐÏc' B¯Ì½ºZòº¨xüé^—»dõÄÐ%Y@TU»ŽEÄ_5Æ­1ôJCèF ½Ò@Cüƒ.% ]`c èå|fžïé†jÿ«úùl€ár¿ZÙ;m Oª³²­Ô‰l1£)’äQè.‡î)!ê%q‡ VÁ tC¡¸´Šüܪ\¿(Åx¤îïóåßÓhË_2mÍPè•ÙÂûn¹ D“'.¸BÇïr·«hzåÏï)‡O?ý”¥K—¢( uêÔaâĉDGGóý÷ß3oÞ<ÊÊÊE‘ž={2hÐ dÙèÎNègºÀ ½Ì¦±‡“]›ílÿÞŽ$‹¤4´P¿y(‰É&beLfUÑ)ÎWÉ9áæ÷}N~|%Ÿâ<…ÔæVÚu£Q+ñI""º÷7|„î)ûtf$]À˜øpÍQÀEÚ€ƒ2yòdl6‘‘‘<óÌ3´lÙ2à˜ììl&L˜@ff&º®Ó²eKFeúÕ“n*ˆf¯€wƒ ÕŠ‚hý ]TAqy+Õs¹›5ϺèÆx¾’ÎËu挌 Þzë-FEãÆ™2e |ð#FŒð¯´0gÎn½õVúõëÇ®]»3f ÷Þ{ïYÄo be®ìKŸ¹œ:[ÿ[Æ–a³A³BùÛÄjÔl`!,ÚäSÒ«©ÀM÷ë¸ì*'»øõç2>_^ÌG èÐ%Œ{†Å&" º_…{´y ËÝç)Œž}íúE–±ÙlÌœ9“o¼‘^½z±råJfϞ͒%KÅÓÏÝêÕ«±ÙlÌ›7MÓxä‘Gؼy³AèWÏÒ»@0{\wz³Ü-èn7¢IBskÈ&A÷*ôr‰²eª'†®ë†Hj\da™-[¶K·nÝ£¯9B·\€(§¼÷îÝËœ9sˆŒŒä¾ûîãßÿþ7‡ö/ÒžZî&“‰ððpEÁjµbúÕƒÛC÷ý-Jž´Ý ’IDs+Ȳ×åî“/Ë]õÄšþáØ IDATЭ*£ÀL:b."†ž››K\\ÜiåWµ*8Ž€¯ 6ŒéÓ§óå—_RRRÂÀ 3î÷(s?{e‘†HQÆÇo—°k‹.ý¢i{G,Ñ.orœ“—È¥óº/ÉÍGÿÕ›ùÛ”0üdã‹Å¹üôß“ M£fLrùxºïqPÓEm ¥~ h·‹ˆ¡ÛívdYFò‹ŽŽF’$rss½sçά[·ŽAƒ¡( -Z´ uëÖ¡_=”+£»Aò¨u]QMj©ŠlA—Ë›çen·Zñò©ÆÔô $ô32\sìðm&8=v›ô²r‡Kªªú÷UUE’¤³Ô÷ܹs¹õÖ[éÓ§»wïæµ×^£[·n$''÷ü"•ù‘CnÞ~)™Ñs«“TÄ­œ"WýD~~B×½ntÑ;\Ù,ÒìÆpš´ aãÊ^{ŠÛï ã¾aQXÌB’ΘÔvM)ô3l€CõØ€SÞ…™¶äBŠïpA@×Ë…`4ÍoÊãÓO?EfÍš…¦iL˜0¯¿þÚ ô+gÙår›( Y<»šËO—A÷*tÕ®`¶ ènËÝ„W‚+B5Ð4¡ò•5„ùŒ„˜˜P¸­æiOÊçÙ§?«S§_|ñv»öìÙCÍš5‰ˆˆ8Ǿ}ûø¿ÿû?ÿg .äèÑ£¡ŸC™—O€ó‘²KÙ¹ÙÎ[SòéÒ'Š.CÌ8py¹Ëë+ubFG@ñ+uÑOøbLÄâWê**2Šç3³›NZ©ß&‚339š–ÇC£ãH¬&Ÿ•Ý.¡  ! Jý²fÚWõ,ƒ P œþ,** Q)(( ,,ŒãÇ£( )))çØ²e ;wö/©Ú²eKvîÜiLš¹r­*œ±_N¡kÞ9邇ÐEYÂíT1[%Å#/Låb芒¨> é8θ™, ÞÍ\Î×¾}{TUåwÞaóæÍ¼ûî»Ü{ク\.&MšDFF†Ÿø—/_ί¿þÊš5kÈÌ̤V­ZÆý¾lZ[Ê/äòð¸zÆâ«Ý¸iˆ_ÌVÑùj¦Z9»‚ 0cD6EùÚy¹¡Ö+µé?Èfˆ?m"ÊÅO“’’¸å–[˜5k;wîdþüù4kÖŒ¤¤$-ZĺuëÐu¶mÛòÉ'Ÿðã?òý÷ßóÕW_qÝu× ýêÁB‚÷oïÂ,’W¡›»B¨UÀe÷xîÌå²Ü}ë¡ûg¹¨ñ_yÈ\Ta™ÈÈH,XÀ¢E‹X¶lÇçî»ï¦°°»Ýîw¿½ýöÛ,_¾œÙ³g“˜˜È’%K¨^½ºq¿”¹pÆÜr¯2w‹|ñ¯Ö./a̼ª¤4€+nLhˆØ±¢#`'Ôû‚æ=FG,S½6ûtìÜ£ÒÝx÷enÁ‰„êµâÀ-ñÈŒ¾\rŠÿ˜ÉÈ—©¥‚1¡b4feÆ…TŠ+ÇÂf³™ &ðöÛo³`ÁZ·n̓>èñ9¸Ýn{ì1âââxÿý÷E‘çž{Ž®]»„~y‡fçé¤8ÍíQèxc貄ۡb QO6»ÉWXPµKZ-ÐÀåìÌYX&99™ñãǼÌ3Fñ£F2îïÅ’¼[ÿ[Æ¿—óäŒ$ê7·âôöÓ3³ØÏ|=½Iåbê§ Ý;×½ƒg Õ_YNCô£û'ª È&‘;ŠÅQª°pÂ)ž™DZ‚` ½¯9…~„î#õ'žxâ¬Ã{ì1ÿß&“‰0`À€?:ÕÅAQ6lØÀüïÝvÛm4oÞÜhH$þ¸ ˜äPO .OR….›‡‚%DÆåð(s‹7ìî‹¡#±J¢Ðÿë¡ïÝ»—¯¾úʿߠAºvíŠÉdºê׿!eMÙ¾ÉÎû³ 1-‘º­"qùU·G…—ŠŠ„ptJˆ@C¤˜H4DXP‘pa ðøbÜ"2 f\Xpú•º&Ü„`GB! 2 ÙÉÝ#j`<Éô9²ôÇ Åà ¡_Á¥¯BCCÙ·o½{÷Æl6óÈ#pë­·^ñÚòú3I|sÏ?[TDI1<="ÝìqŽûâà>5î„ 3*¬(nô-é\¶“¬ ØN©>yæI8Íh’h «*¢âD/*¢tó.ö-ú‰´×7P÷ÎzÔìÕ9)ÌG—Q°àÄ…Ùï¢÷X Ñ,ÐïÙ$<ŸÉÇ ¸xŒ—Ô ˆÑJ½¡2­¶f6›9r$f³çŠçÍ›ÇÔ©SY¶lY¹£ ËY¯@”Aè¸@ ñŒàT7È&ÐÜ"H&·ª!ËàöM[ó}Í[Ã]:§:ñ„Ú ñþ¿£88½ûÙ†B¯·ß~;íÛ·',,ŒmÛ¶1nÜ8>üðÀ©t‡÷»Y<§ð¬NÖùn+ U/íhÆ—læ#= ‘´}nþ»ÆÎ¨×ª"Zdœ~7£!úãåÅDRD4 2' BÙ;o3G7¦S¥ÿÍÔœÒ â9%D£è2=Å-ãr˜ÑuÏošÌnä* !ý[uoo„mÛI[º†ßÖ}FÑ©vs=b„B̸PQË]ƒ§7¯£1ðÅÌœFf!t¼Å\îqò‘¿¡Ô¯$r2U¾þ·G™guäÐEÌ<¸ÈZîW•Ð%I¢víÚþýÞ½{óøã£(J¹Ñy4Ðá‚]¨e½›—Ð}.wÝ ²'¢’YÄ©èȲ€«$ÑÛæ:hÞÍÈr¿üʯq”9ú5—˜˜Hbb"àIŠ={6'Ož ôºL ueòk|™äE:óÆçÑÿ™8ê^êWæ*’?>îÄ⵩¡dþ”Á'®ÂÚ2•úkgÙBŽ# µL¢Ô¦‰¸fT·ˆjÑu$Å,¢É&°J¸e+æ‰i×ç¦-lŸþ>yßì£Éc7žfÜ€€:&Ühˆ˜qWÃÊC/Vá½é'iÚ¢*Ѿ9í"œµ>›Ëþ|W“xðÑpÿþþ%þå ™¶v sGÿ'BWU›Í†ÅbA×uöïßOTTTPÄÑ./ÂñëË .Â*ûÖÓÔ¼„nõ²´d ¨NÁ£Ð5EC’tÜ.¯{Ý«ÎÝúùóç  þ"ë¡#Ë2¢(’™™IIIÉUMŽÕ½S̾ù܆)T¦õmå\ë§Ýê…îq‡«aì]ŸÅ®W77òA¢º´æ„%U“È,ª Ev´ƒÅ°õ[H;ÙPrH¥P%wõšÐüFÊêÕƒ¤ˆ‘°FÚ°ÜKü»©ä¼²€‚gþM£ý’cAðÔˆ÷Mo;!ïDD£É QÔoeã_ <:‹éô‚.ÆÜôJ¦÷®  øŸ=//_|ÑãîÒ4Nž<ÉóÏ?¯üdzàY01X”]@«Š&Ü …z»Lñ 8½.wÏ:˲ì­ã^®•œ*ȺgµUÍ»|ªo3„ù/å>{ölŽ?Ž,ËdffòÈ#P·nÝ+HàgkÖ‚\•uÿ*aØø$Ì!²·¤‹„ORœŠ„PM`÷ÇGرøug £¤ÕÍ2E9qè%¥èk>Fÿr sBb ˆo ÊPøµ>ˆ*D~ G÷À–¹`Ê…öíá¦Pš¦BT8¥‘ ǽ„û_ËØõð›˜gõÂÜ,Ò¯Ð5¿B÷¼†Å*Ógtu&?pö]#¸®µ) ާ×t+bÿ_¼ •º®ý…Ø€`!ô¸¸8&L˜€Íf 666`µ¨k2žÅK}Ù–‹ tÁßAõÌ=uÐ`²‚Û… ‚ìUè²ì]iM>=p*Þ%Ô½®wc•µ ~Tþ.÷'Ÿ|’‚‚TU%44”ªU«^Ñ9è>»Ÿè4Xÿ¯j7²’Ú*Ô?MAÆÉ¯ÐU$lZ‡7eû¢½T›ú8´iÌ)-Å …«÷Â'oƒ;Ú„¶M@Žb {Çåš–.а 4.ý$Y³_DiÚ¥ç0×%BT U÷G´°m¿‘_êFõ&Q˜OLÝêÍxwcFCEA&,V¤s¿V½[DÃæ HgXk_¢]eIÿ¤•:sÖB¥#ôÊ’'IÒ_°äd)° (Žâ‰¬ Hä>¨ž÷DÁó‘â¡«NDd“€¦jȲÇån–½Œ­ƒS?½¼‹AâAŽ¿H =>>žøøø ¹žÂ|«Ë1³*Ȳ‰Ù¯ÌK CEâÈ®¾{y5güâ×S¤X±ýnAYõ,ù:> Õ{‚j‚,<’…Þvò¶qp0‡AD¨ú4Ä÷„Ý !íq4šu¤¸fòí#Û¶Y‰üÞØ"Q‘°âÄ‚Ó?µÍ‚Aйù¾X6~”½?9iÓQöÎkÿßÕreŠÃ_ÈõjÁÚ‘.$†,IqMèÀoÀ/¥ ’ÐE¡‹º×åŠÃ“' hn¯ËÝíUèúiB—¼Ï€ÛhŒkŽÐ׬YÃÒ¥Kq¹\Ô¯_Ÿ_|‘¨¨ÀY!#FŒàøñã”””––ÆÖ­[©V­šqÏ/?¶Q·Yµ[á|Ép 2,Ø U¾{ñkê=~jÛæ¸c(ËwR6a z~!ôÿ̱pXðy† Aîq(;‚ t §€¥„ׇ˜D“ ²6´› E_Á?'ÀÝ#(íÓb#©: º³€íÿ·†ˆWî@Œ õχ÷e¾»1!¢o¢ûÐx>y+ŸÆ- ýß•je$ôJ‹?¡ÐÓÒÒ˜2e EEEÄÄÄðôÓOŸU}uñâŬZµÊë‘ÒØ½{73fÌ0ýÏC-×b3\“8Xñ~Wuz–áRœHf QÐQ “7)Î_Ç]—â©?£«†B¯„~ 1™™™ÌŸ?Ÿ§žzŠ&Mš0yòd–-[Æc=—2uêTÿºé+V¬àóÏ?'::Új#RR¬óãWv|6 É쉻‘qaÆ ;¡¸0Qäc˼0]×€Ð7sH¨NIš ç?_EÏ’àî×à·8ÏÐ4'®…ÌÁ– ŽÐÕ½Ãê} ­kœ¼†Ad ˆ“!º\— «ž±nL¡¥ñ¢xäs¤}´‡úÜ„V„QŠŒB(¥ˆh(È4¹!š5 O‘“á&¥ _êßù-ŽvmäEüŸA¡æ/¤°L9.--eæÌ™´iÓ†Þ½{óá‡òÊ+¯øañ¡oß¾ôìÙ€C‡ùm†‘,}ÑíXÎ_œ÷¾ï[6ÍKèz9…îv [=ëkÞik~—»W¡ÛÕÓ1tݘ½ü‹tž­ÜxpÓ¦MÄÆÆrçw’’’ÂСCY¿~=ÅÅÅ§ŠŠ"66–°°0¾øâ úõëGhh¨AèìúÁ‰(‹4é°°ŠZ.)Ή#ßerô›ãÔ÷ ÎhŠfœó_GÉqÃ3@‰‡S¤ý;ûÁáÕ`ûèÿý-`$0x˜ êÇPú>äÅBÆCpt 䜂<¬Máú·àßÁ—Ÿb/²â0Å3þqö}°›œC…8±ø¾)u¾-2ÞDÛ.løØæÿ?õ 0ÝB… ¸ê×hWÓ/x»*û ´YYYìÚµ‹‡zˆjÕªñÀÍáÇNJll,QQQ|õÕW´hт뮻Πô‹jµú÷^€å|ê^Ið4¨îõ««$³ˆˆæÍr×qùº®r1ô@cf” Z…^ns pªNÚ<›³\Ü$777 ©´Zµj`·Û+<ýŽ;())á–[nù˸ê]¸@×u¶l(£mç0Að¹‡ÀX)#:Cؽx7)Ãn%?¬&§”x ßüuÇ1¸q2 ùöÎ<Îβ¼ûßg9ëì“ÉÌd™,3IB!„UÙP,o©R»ØÖ"Úº¼ÖO±T°¯}-ÅVky+Õ"Y"RY%Äd_g&³og{–÷ûºÏsŸ3g2™$l2÷çsr&gyÎsžs_×ïº~×/à¹ïÃon€á« ð!¿’â5nõy^Ù‹¡ÿZx†Ú•pÔ5pçW(t’õÓÔà|²ýº~¹©˜oÞ4Ô,Z‘Æq-^z.;%¯õµôtßÈÛkåÍ¿&,]™È[ðÜÖH¼´Ëx¹eÔk ;&êí²~ýzr¹'t0w¿FB,ò,ªh ª™Ìþ¼g2úSº%j)ׯòÐs9bn (w#†žõ!aIÙL7|3¯ ek3›áòó¢ÿÿü™èïööv~þóŸ“ÍfI&“lذ¶¶¶ŠMZxðÁ¹å–[Þö—9Ÿí׿È0oIœ–ù‰b‰Z^n9dIÒÛïò›ßDÝ'®¦/ÝÆîÎz²_¼N¼ ²Ç‹<ùï°ÿ^È}z›PÕ,!Ћ*Y#:a3ªÚEÇVô¼Ü$P Á;Ô îý,ìÿ`1Ô\ ÁÓ„ÿömÂ?ü,}ËfÁ]͆ïßAú¼S¨OÕ'O=Øøä%9ηã,?½šçŸÈ²æì$–VL޶*ÄÖ­Iâí¯­'ÁOeŠ޹9Ô8¹SA£VÙ\…,÷dÎ;Í`]ËRWW‡mÛ PUUÅîÝ»ñ}Ÿyóæ?¯ à®»îâ’K.)êˆiý€kð^à]ÒO?~,–x%0?¸Õ4Ôšp«=Â@yè…îfHàÉ'ŸŒïûÜ~ûíüú׿æ;ßù—^z)…B/~ñ‹ìÙ³§øÚ§Ÿ~šúúz–,Y2 è@X<ñÀ(§œ_E, f)¿u­ïÇ¡ve;.ùÇŸÁÛÛ§^ž{Ÿƒž@Ý!hUq,\  ˜+ÆüóÀsðžq+È-Ìfçƒ5d?¹.(Äà¸?…_ývlÇܳN#c§ÙÿØ+%pXuîKW¥Ø¼>KY¹½bËS÷Ä}8Òßå°Žg„0Üê––Î<óLnºé&Ö­[Çm·ÝƱÇKkk+ßûÞ÷x衇Šü¶mÛxùå—¹à‚ Šü´‡~À_bŠf× œ6ŠPëËWƒ*DõQ…©+V c™ØCw-•²øX1ÛËKX„Ù,® q7 §]ºÇäBˆ[Óñò·Ì²â5†uþo|ƒÛo¿ï}ï{|øÃæ²Ë.cppþþ~õ- z‚p|J\¹nþ"]ñaG #Äúá‹‘ã”<÷ÚzñzpÎ!üu@<çïþîïøÖ·¾Å7¿ùMV¬XÁUW]¨ÕÑÑÑâk÷ìÙÃùçŸÏÊ•+KHÁé5¡Ýß…Š‹ƒÊj˜)z8CÑh¼xä? wm€9'’:q£·ÝN®{ÄB5]ƒ°þ.é‡ „ÜXˆ[k–Wiv˜‹®á©\?RÆe…ãŽ}“³”‡P‡žL&ùøÇ?>îe×\sMÉÿÏ<óLÎ<óÌjz•®gBŸ+€®…¼8VÝ^ÅÏ·ˆGg|º³/ï‘¶@QîV!K<é@6G,1×'—ƒd2²1²¾ò¦×ï& O¯C[;^-0§#.\šGŒ¼”‚åH!É+¿Úƒ³´ƒ\ó\:‡êèÿçû Oú0ìo€^…]÷߀pD@|ŸÈz*“½ 8Y~Øœõó•õ"×u"ÛûÝòÿ4„WCæ«°í;PÓMï‚{“Y>pÅñl{t .d„j\-õ-³¥–àWÊ‹¡Ó†ÏBaØôˆÜzâkïúEñÄmÑæLò4*ܶYÞ»8E^óQÒl¿r‚CÿFˆ-‡¹ÃÓ÷ãí¿šÛHÍ™Kï†.²‹ªpñ(¯Ò!È„Œø4Πø -B\®çávnðC,m£Ê'±<pMæHÎe+{8 ³¥ý'³1‹ –91,-ˆ'U4äÔG¸|¡²=Ç.jßq]oÛbEšÔ“¯äµOöüêÖä: ˜¦Ü_ϵ¸K0ÝÆN¬VÖ6³PY­w£ÊÜtÍpó=§¼wKR:B™¾–/à$üœG<¡ÚÂæ<ñЉ<ôkÚ+Kx‘¶ô!™Dà§×á­¯¨k´©or0}W O½ÌTç) IDATûÙ]Ô;;ÀÉÁ¾Ýpé1°'„Wï…Ä;¡®€hö¢’amT²¬–À:àTNÍ\ðÙ¢Ba÷önop,xƒ´ßB8Ô M³HÓÎØK; Þ{4¡UZÀ• ¼êšñSñê›xßAt_<ßZ¯‚‡>øNÕS?#!4ØóŒ~¼!ñƇD²²¨ÜW¼ìa¢¹©ƒºhÆ®E<õõ¢+ò(:^#ãˆ÷tèÿàü! ×CX»ö@Ý,ìãŽaøûÿAÖ[NSßE—– ÷ä©ippm‡8yl’d±ƒ·PÀBb…Û;oY9ÈSZBï ȇärª=±WP¹» †Dº6¸¸quï˜C'CBÈûê½ÙŒå`, £YÈä —‡‚¯æQX–*ÍMÇ¡. uUÐT©¤á¡' O]çÛòóØ’Y unB$Ü B; BÛ'°Á‹Gñ÷жñ‡ÀöV±À¡zèe‘Ø÷œ#çžMú„`~ª}ð *VþNyîTBÜ#ÀEbŸ†J–¹ß0-'â"1t,%5ÚU+äq.Ù¾ ñ¸² ó¾Ô¡kß>Ÿ7½Þ¬€îàÅœI<ôiÎýpWçέóâ㜼¢´ í¡í¨Yt†ù·¶,Û…Ñ`§£n3<òP·U¨­Ãþ"Ñ¿Ö °ÿ*ÔV§Àš;Ÿ®c²ì¸³!ßþ0„MjÔjçV8fvCþà¡@¬TÐwoÉ1kA ÛÆh7SÙ§<^î‘û ÈóyÈe`,Û÷¦°³:û¡wX¯çƒïGà,K&?Û*ϧø·€z*ð÷}(àyPððWÅ!åBÒQ3*,y}Þƒ± åÔ{jRÐZǶÁŠvX2ÒUÔyÄ6¥4¾9÷ ãûÚeæ—(µkY@b[!¡yí–ŽÑËu>/=´,¼Xl=qä‚§Ó€^qU£êÎuƒ]Þ*Ï- \q?EówL3MJ­´u{Ȭr²àÄÁ²° 9©™\žT*Ä }B_õžÑ–tÖW›zz½›¼u`ažntx«PéÞçsüé®qMbc™ z{ÆÆB¬¶9ŒdŒ­ßNØt¾ÂâÎmà¶CÎÙÕ=Ù}TB¬–ù3D~ÈýѨæ2ͨ›‰0yúXä=~¡áƒ0ð" ž©cáÅ °êæ×áå| ƒ% rl1O^xt˜Õg§HZy,BRd°ƒ€d6‡íC,+dÌø*Y9…äÇà¥ðÂVxr ìîU€:3 óªa^ W 3[ Î…*WŠoõ´çPnÞ‡œ¯œ /Ïðàc¶î*j\ÕK#f—¬‘¶ÁÖøívøçuЕ…ú”šD{J3f5 a¢»m[ñ7žßIÿV,âIEÑã¨A̧ˆ¼öÀqð\·dj_p€r·Ê,’5©ð >ŸôŠkL(óÙ ÇB9‚ª=]*»(.TÜ/€>¢^~婿¯–®È‚ 'i«*†î&kð³ñ†!8väräÂi@«¬o’aÈátÐä°V>Ò¿ß§¥->®¼Hg¼íÃj¬'t\‚‘ÁŽÝ°z™•‘PuŒA‹›qó¨ÕPF÷FåÓœ,1<ðg—PU/6ш°ìø1eø 8 ’s¡ó ãN& ó_Úõm¸'Ͼí9Ž:¾‹‚‚_• Y¾$·Ê(u¹èëƒWöÀ/Ÿ‡ç6—…ÅMpQ;,^ ¨ !€eÆÕ+ÅÒ­Rš{Ò:jIÀ+¹ØöÕ18. ÇÕÁ{Ú cA{2ðL'Üñ(ôç¡¥V.‚Õ0·ÒÖžzù¹RÁ“wŒ×Ês–«@ÞÕ¶(Í ÔK,{J~zˆ5©ð Y? è—‡ª3Ý –øYòËïi™KT’¢Ol‘¿ãÀ™âå¿* ï–:²»ðƒ,¸1Õ6Ÿ#ž´ r’IU;†ŠÎÒýgòLSîo•¥³“üšRW¥»»›ýèGtwwóŽw¼ƒ³Ï>»âû^}õU~üã344ÄŠ+¸ôÒK‹5¸o§•Ë…dÇBj]£º.àr±Éôe`Æ 5BµÏ »6 Œl‡ºs#÷•QPy*¡­ 8O€xn›%Þ{\ä><…*Wu€PñôWä¦å^ô ÿªòªfÂþÏMAãAü`º¯†eF‚? *IœÜr ƒtæÄ`õLø‹Ù°Ï‡u}ðÂNøÇç` MU°fœØÇ/„ªzî2=õ4QlÞU¸ŽÉÇB'Àw=|ÇÂs-|×Åwœ)Ušœ(=¢çyüð‡?äÅ_äØcåâ‹/¦ªªjÜûz{{¹÷Þ{Ù¼y3óçÏçòË/Ÿô›•C¨ŒU½“g»Aïò‘ˆSˆQ,7Lç+…²[0+5äóÄ’~Ö#™V?uDT—'ÔVÒš|Tª±›^oåîP`2Ê=rUÆÆÆøÄ'>ÁÒ¥KY±b_ýêWñ<óÎ;¯ä==ö7ÝtøÀ˜5kÃÃÃÅ1‹o;=b;àºÖ8Eª«²vŸ×¢À>›SµOnB€«ìڔ߆„R×Àv.f¼F3z+÷¡bïºt§0{¦§>ø%8*S,3¦‚Òñ~&Taz>ígÍ™qb¶ë{Ê3ω7­©v¹ïï…_¿ÿõKسÎ逛ÎUtzÊ++¯Õ¶Ë¨ÐI²(—%”~3EgRÇñ t˪¬ˆB¢¯ê[@·äË‘›ŽVÆEeJ½®‡9 ˜ÓÍ…l£1x¥~±nù-ôûÐܤ¨ù“‚ùÐÖ,£¨õ9ûe,ƒÎ®7"¤ú¥ŽZÒ ié!Ö¤:À§PæÿøÿÈ+¯¼ÂW\Á]wÝŦM›øüç??Ì?úѲråJ.¼ðBúûûÉçóÓ€~àUEiS™*ƒ£ÉÈ«E%ÏY²C6ˆTÄ €¯ÄÄEr Ðm <7fáç $C¬0P€F&…G4œe2@Ÿ&sßh@·)L"báÚ<óÌ3 ñWõWÔÔÔ022Â]wÝÅgœA25)ºí¶ÛxÏ{ÞÕW^©ŒeUœ™þ¶ô\ˆíZØŽe\ÓhbY};Fˆ{,.Áhbqb0Z/^-QÚ·_æB:¨8¹y˜2ùÈ•d©ñš-r¼@<ú¬á$è{“2üªT1òÐAXÚÊ4FL†GøË¿ˆ“ GMn+§W'žyÐÿ¾ýxyø½£áÌc 5Ö0*¬Ÿ1n倞WþEXP§:@gúñ£³8Pm©òÙWq‘Ž®;ÞQBó 7„¾öÐëÃ@ *v4ó]mA“ ólXà@£ˆKG`’(ÛÝôªS¶!] 3-8í(È/]>lÍÀ†^¸íÇÐ5 ‹šá¼¥pÞ ÐP–.`ÐéNIùyõ·' N,TÙü®‡ï‚Äz*@w'5üM†î¾ûîãŽ;î ££ƒ™3gò™Ï|†ÞÞÞ’AL?ýéOI§Ó|ìc#™LbÛ6–eMúW+k2€|¿ÔKʸ'=3ùNú1Ù)Df-¶tLý¬ª¯…lÙ–òГcè¶Ä|ü a)Ù?í¿Ù=ôøAÓm›6m*™¾zõj¾óï044Tè?þ8¾ïsß}÷‘Éd8ï¼ó¸öÚk‰M’Mû»¸†|)7VÞ/-¢ÞG»G‰·Ô+Źw44+7¯7XÕŠ~Ÿ°H:@•žµˆq¯Më.ñ¼W2~DHø™¼~?%…ÓÅc6 /> V„äFEÈ ¸q§ØêgØÌn•RµŒxæc ˆƒ!øåoáÛÿ ÞüÙ)pî|±%°‡EíèD¹¬Jß+ÀŽ lñ`s6f`_ú|•ü–œ“.¬E“D‡éµMC%å»Vt5¼P=ÊqRÂoÖZŠ·HŽò ôûåTklhuae–`aæIi›í€“T÷då ž\æœrx:ÒÐQç5(+ãÃÚðàópÛ#0{œ¿Î9 涨D¹"Iã?³m +.Ñ…)(]eTXxEƒâTÅÖV•ŒÙÑÑëºlݺµÐ~øa:;;ùã?þciooçºë®›ô‰W¸L¬óÀZ]‡ZeñªŸûT·(Í]¥ËŽiËn)D€NV™¶ŽJ¶°­Pyè Õ¯(dª|¤D€0Ý-îͼ©‡6W÷^ÿ¹o˜ì˜Ú;Û_è¶B¡PʱX ÏóÆÑéÝÝÝÌž=›Ï}îslß¾k¯½–K.¹äm9}ïæ9.n F6r”™ìΓ¨IãáîÛ53•‡Þ·GÉrP…Êu)î:¨a,†g3Ø»Eò¸F€^T/ŠõKcTžÎa”²9æXà{P(æ $ª\<\?ÇK÷måôóÓÔ§‰áˆ<óž^¸ãnxôE¸r\|&Ôå…õD!d^3 Á(Œd`ëü<Oåa(€Y¡jn{Š˜!‰È Æ%ÊÒs|1,.õç6¥ÞôHƒ„ü„³ŠzäÍPƒyØ”‡gPÍ*àhÎuayR±É´tÓYîšDMըתÞ7ÀE«a¯­<÷û×ÁQYó<æÌx½|Ym¥È½GT¾5¥«’âJu@v,äÑû†Ù¿Wq¨ŸÎrÚGdgA Ûæº.–eQ(JŽ122‚çy\ýõÔ××ó©O}Š{î¹gÐ'^ºœe˜ŽXó¦¬wÓT=j†É3D  B ´ü5å¡'TàÊŒ¡kË8iAaúzÓ/s„^3fǹìÏ"K{Óó=Ñs3fÐ××WüWWõõõ%Þ9@KK çž{.MMM$“IÚÚÚØºuëÛЃ²LöÝ[=Zçű\»¤;œ 깡< µi|žýP?SµïØÖ,TÐJ…Û´›(-xÖM§¼Vàª^Ø»>J›ô›íÌ´q¦ë¨ %ÞV.‹í8ÄÕʵïÕ>6÷qöçëHe ¸¯€Ú‡—^‚¿û´àÛ—@‹¦Ï‡Ä–T æUÉûú,¬ƒGÇ —…å|ÈVÍ«ŒÏ‰ O|¢¥AÛL&·+˜/:H2q³8€“+Þ‚*ÔÝ<¶¿ àëyÈxÐæÂJ–Ù°<u$²ê î¨ü|¶X ¶º&Ž m5ÐV§âï[á¿6ß|N<>üX:[@;.'ª½wUb,³\ÄÒðÎß«/þÿ¾;"72™,1âñ<¯Ä;hmmeîܹ,Y²Û¶Y³f /½ôÒ4 O¼:QÙ¬Úôk4€\ß¡"H®á¹çŒF‰ Dë¶è±8ºý¿e…ø9E¹[a¨²Ü55#Iq©i@ÿ¤ÜO:é$î¸ãž~úiÚÛÛ¹ûî»9í´ÓH¥Rlܸ‘öövR©—\r ?þ8§žz*;wîdß¾}´··¿- ¤ò±–Ý{=Ž95%¾îò•Ëøø~ˆS›&C8ÐÍ‹” íkvÙìsó~•ì¦Ç¥Î¤¤ˆ+ì£2ÞÑ1‘}=”e‘¼¯‡Ò´qásCɈqãXc£X‰1Ç#Zl¢“ùËRÌj*ê.àú>A?<µ®ÿø_+ámö„ š]î‡à‰QøÑìõáøþBÓ ë7*ß´<Ç_{â1ÌÚ$)Õ ±ˆû˜(¿Çf|ò¼NROm¨TÂóQ‰p{ò°1¯ †sÂ¥ž“€ãhOB}Ðò£†÷.ÀŽ«,ŒŽ|êø_GÁ=»á¯ï€ ß;Z›å¤“†R˜  ånŽwmnn¦££ƒû￟óÏ?Ÿµk×R__O{{;Û¶m#•JÑÚÚÊ»Þõ.n½õV¶nÝJ}}=Ï=÷'Ÿ|ò4 O¼2ÀD0A•¢ÙÆVŽ~Žh[·¢ÊUªÅ¨ÓCGzG åîhÊ=a€e©ŽOaÁ'• ÇQî:†KËB}C§cêo&@·"Ë=¨ŽŽ®¼òJn¼ñFÇ)Ri}}}\uÕUüÛ¿ýË—/çÚk¯å†nàOÿôOñ}Ÿ÷½ï},\¸ðmÉ€ìïô™Ñê#M¹«Æ2.£Ýc¸ÉvM ‡p ÚU|¨X. º’ôxºýFøÛ÷Sšg‰ÁîPUšñЂʿéݪâå•2’ÙR¥«–é4öÈ N*FÒ.à|^x¸‹Kþ°žš`VxòiøÛ;á³'À9íàv Oݹ7 ÀwÅ~ðç¶Â&5hs]*î•é“Éj'ìƒôòJüðºmümÉùjÚß6‚í¨qX\åW_äàûT`eNµaͰ*õM׌tb`WC[®YÎ…[ž?Þ_º Ž[$?¹Wvq¦°G'Ïr̘ºº:>ó™Ïð…/|ÿüÏÿ$þú¯ÿšX,Æßÿýß³lÙ2>ýéOóÎw¾“_ýêW|ò“ŸÄqæÍ›Çe—]6 蓃z=°†¨®ÁózJSÓN5À½ÆðÊ­²÷I †„9ˆ% u`) ñ ÉdHªÍ»èOÏ/+·«˜ô7=|0ek¥á™}èC¼ÿýï'‰‰D‚ xì±ÇH§UNÆ¢E‹øÖ·¾E.—ömÒé4Žã¼í®ïØHÀèpÈÌÙ®ÑÈT‡‘}#¸5Iìê~hÃ@/Ô4Á®FöCØlz¥å RžF±T LU—yìK Hj˜± Ÿ“2gÀQ™îøP]K°cñ¶fâNÀèÎ>F{³,Y'f°†B~û|î{ð¹ ༔d¯êõ) ® n/—ûª'òÆ O\;›yƒI.ç)¦²b%“ã¡Sf(8e`®½vGÎÝFõóùjaâ¹æåo¶DY×eåyGí [{è9ˆÇÁÕªºÓT2ÄÏû¸Ni–»ó;VTN`þîQî“uŠ+¥mÛ¦ººzÜc:ó]¯d29.¶þvòÌClz»•gÜØìLHÏvo¬&päG}‚lÍC~üÃ.=VN,×—íV«ÂÿÍi-óëPt€Jš5¡Í“’Õ铚 xv+鎪íQ^¼w=«N1¯1KªÇ£sKÈu·Áµ+àÜF°¶ *ïS•ë‚›‡áçp±ï°Õ™ËÍ3€¼Päq_îQˆr·ËLŸÉ»‰½óJWÖxËt×Ézå]^«P3ðÎv‡ð\ÿ{Z\¸"§9Ð0ªºn»#¢âGÕE‰Çáüz˜¹ nXÃøèÙP5C>8dÝ«ÐxFïz,‹«l™ô®p\…mgZôÚsïŠ-‰Š»m•-7 öc:ÚªV^%źR**MÔÏ+@Ïf áF­_½ðÈþ`Ú²Õñ³×{5'Ê•|•µp¤€=MÔ à2ìq®“yèÓk*t{@ªÊ¢ªÆ®è4…XŒí"9«Nýý#…ª› Ÿü°òÐ}“r+HÉšèŸÒÞ¢û…Óíª~Uc k§°Ì|°à:p, [v“>ó¼¾ÍìxàU>ú*R–JEÿÊà¸V¸¬¬ŒnAݯ‚ë÷Àܾî)Þ`Ð/b”®p#oxæº\RîÇ*|{@wÊ^{(k†\ݼ¸@™¸MÐãó-Ø0ë‘t×€vTãÞð\îÌ÷,ø`.M«zz<Ãõ—ˆèÊz¸ýBøø/à‹Ãð·—KkÙÃÌr¯Ää©5 è\ ˆË½ñò\ÎݨôŒ8Qb\ú4ž‘O)]ù^@*02qÇh,Š…¶€†.s€Õ¨ˆ7pãít¹Éó@&]3Qs¬N$êÃw4ð+à…#À À{åÜCu×~cý`Ú>Nú¡®þý3]¡Ø||ƒn°ë!Þ² 2ƒc¾±:ÈvAa ü†I K꞊Ý!­ Ï›·xÒpã&ê*6¢t€¿Z ž%èé¡~~ c›öŠû¬h#–õùù½Ð¹ >÷°¶‰@î?¿Þ _‚Óóp¹­´Ï~ùí™g‰ ïÃ3oC }à!1ªËuGÌðŠ+eLTth0- ;‚ša9SŽ]ü\Ž«Á:(ÓI–quÝ2^×U£âëMò^!ªYøðBwåá><+“P1T·ŒÛ¨o€¯®‚Ï<ß|>qîÔ=ôÉtÀ‘4ê§ý€kP¬ìó*\*«ÂÿÓ²E™dKûFÙZbõQ = >É$ôì [‘ð¸èˆ)Tº^“lþ™J?”Î9¨®õÀFT1ÎÈA»Z¬þÞ çR\Ž d˜Wq*úøQÉC÷¹¨šZK޹‰7fªÙÁµ~Ÿz¨«¯Û§a¦c e±J´!dºGH_O¯˜0) ¾ Y™Äá½I'2¾#pÐ> Y¬áj¬‚ÿZ¾†rXI(ô@óLèÚ‚¨š?ƒ÷wÒ¾º‘¤½ƒ¡€oý>{4ǵ¥„¯õÁ']`Ù b… ‚K¼Ž®ÅÛTv¸–›½e²’Fe•WOeÄߺ’ЉaÝWú:(q*¶oÎH±ÄЯ‘ã׋ &1¡*iâ¤è6³×gÞxî$à”~âÁßxðçÀâ×ñr‘Ó\ 7žy–5OM)\ ýÈÁð4 OòsDãPË“aÊ·Ô‰_¢(w½õÊS< ª+œ“«ŸƒDlUaKè|Òñ€ühyè¾Jj9RäLF€®J<ôýr¦)Tþ"ñ ùVÇŠµÿbÀ.NbgÙÕh®nãWÀseÏëî–A<ÊÚ$û»åù(Í >Ø¥Ï+.œ‡CŸ^)™!ôï÷™Ñâ–G¾xêbd²c}yÒ³šÈ§Ð7B˜¡”u&«À4/ƒJ Ïä¸B¹Ñ º zà9Æ“ed¶hq)ŽW'!»æÏƒžM4,¬bFj”Oìåý×̤¡oŒ{þ3d^N´QÅ3ûT¥Û/vÃ? Á_ú°$Pr¬éõ¬œq¹gnº?Ó*ëiðšWœ#TøRùfM†)r§Èz;*3`¥Åx JÌ6ì_HÔ¹Ug'„Æ9o,ý€úóbHøØC»ÂãÚcïÐ lGe1$ @×¼ÏOþ[yØÔÏAmâž\v3§¾p"\ÿô䦢ì)'ÅMúkºâ€yùc yílÐ+yòJ*8IŠ |°-Â/ ‡l&$îJR\¨(÷#õƒù¨ÙP¯ˆÅí õÖ!ß f|3³ñÒTß"±žÿ’ {š‰ªuç£R‚t[ž™ò÷s¨ùu¡(”çEùôË9èŠÿcÄИª§ÞüP®ðиsüCÈrŸ^©(ýþŸË’2g…œOv0G¢E5 ú‡ “—ʪøuhzùM¯Z1kËsh*ÍæL ?ôƒ›µ*ÜFÔk-[zË)ðêzê7’ïê#;œ§mI’þýÿýcøüéê§X(¾; ÿ0×Ä`e^f’Sš¥î—yãA…o¸Ud,ìïÕ=`¦øé&l)ù†§^ý ö®Zœ‚*9F•ȤûaâbB»ƒš€±N^×"72ËN¹“˜Tæcyq(ªÅy °÷ ¨õÔÿá_=¸%Ÿv n¦ýû*~U |`)|éé#í¡Oúk¼´`Ɖf¡ë-°^`kNÙëGÅ×Ý#[¾Òvs"x³â†‡ž?‹w±CKwìpHÂŽbèªW²Ùß@oÊÅ¢v6–Qç-beï“3×–©ñ^yÝLñÈë÷C,]MËi +ÆøáNÖ4*î‹PŸ)Æ€'Âÿm¡ÜV õÿßBϽ"Êb–a8ü—(ž©¬Ñ7Á.:˜:ôiý¯­¯<ôÆÖXÑ3×T»‡Cv4 — qjÉ\òû Þ"]YÇ Ô~bXæ¡›Æ|Jv¢)9T}ú*'ÓÈ35ÆÛ? )‰…àB}:_aÞ»ª}à)Ž_pts}fÅáDG¨§œjp÷7=piN((ï³ ÚlQê/‹Œ{ò ŽPû­È†-Ôö°€h(žëвÀB(Þn^äñ¤[‰&\X”Ž8ß/²¿HΣW>ëxÑóåxÿOŒûËEä…ßÜ-ß&úë ñÒEÔ›s²œž‚qMbFðÄ’ÇuN€QµÆG€[@ኯ IDAT ð/Ãð—!ÄRà˜¥>|p<Ô8 èo±5AŽ£¢»Ú"ß-äÍï„lOxVDã$Ù"¿® ÐV=±x9¬xŒ0 ±KÍÈBܘ`äQ™r¯E%¸%‰’JÆäÿ§ e¦›IÌ«øå2*kX5mífÊZÃÿ8¾ìt¤Ðlïx¿€÷ˆä†2ˆ‹ð˜œ«në¸Z>o?p/*Qf…(£¦ €®}£7sí½®‡žLà§×¡xèŠÁJW;%-_M/ÝËz‰$ضb¾ö÷Bí2¦apk?XÅTçËî×YšÞ'†û˜Ë}ro£Huˆ#ðŒÈá&gZ¨·¬jEÛÛMÕì¥l¿gï>7A„¬} .>YZ‘ŠË}ߨúþ— úRhï»ZLMð÷ˆ¶9•§|â‹r¶³ÅȆ¨Ýk—È®-ÿß-¦L½¡¢W4]þŠèÇ`ž0 ¤0rú ig`&ÑXr 5tz?½¥“[gQl”[²l&Î2‹ µÑafÈ—3 À'¿`MNNŒ§8¬)Il¥î†¯%K7 èÅËP/ÖuA|Æ…´i»pžÜFPÓ”Nm;,°³@ …­•mGË]?èg ™PzÂÅ ÇÂõ cªóP“í^ }:)îÐ)wß7n•(OC± Ç“œùœ‹ßÙ­­`Þ¶Ùʵ &¦^ͲË,1Sõ–´ö|1]»„­Û.;½Eø2ÍÚí âÔÌ]7¦>ÏUXnÜ# Gª0ÌØÖNNûlg(ÇöpÂÙ‚ÂÝ0oÀ 1eNxDÕkf @{¨YCƒ9"—+)­íÞ' Þáe‘ó”h¸™ef™Q¤)ì69n—°í¨\=­ªìü,1ÚÍXh×^yýƒ\ ¿È.C¿µ«8*ÎÀ¥%o!¥%m®|ÇzyMè‘[ªy÷|e¾@½cX®qq¨‡þ&JЦ«« ˲˜={v±«Í[ ÌÏ{p»Ø†;‰r´3²]ËéøsˆÒDtû×1ÙVÚÖ-‡!“ø‰©-æ!‘‚̈xèj„*Xä²! 㚨}X,âvJ“SrBa%D™Öl5ð.C¸r¨ä•.ñIN*órK×—ÏZ!jO Þ2gkX{Ös °åX#òÙ§Ê· *ÐlQœ.Ç8Z„s“üj¾üŠå•%ÕBÝ¥PÑÍŒ!•bsG tpÈO1†žÏçÙ·où|žÆÆÆqC:;;ˆ:455ÑÔÔô†IP.—£³³ó€ç|Ä¥<b1«¢ ±ðra<¡âÔ„cH ´x}à6ïš!»)'ÆzŸHCJ óŲ‹ôçÅd÷Ï¡´‹¤'Ln$ãQ9;§Žg…ä±BµÛ Ù‚€Æxü9:š¡µFmì0€ÿêWžì21dµ\"?/ (½dÙFÕc0]ðÅ Ö¼áSÆ{Ï1L“°âÞèêwˆ TÏ©'š1—6t@–¨ß^Ü4{˜E… cb¬2®œk\}Ô¶Š¨Å Ñ¼:n¾•¨ÌÎ24ýrž»å{ΕÏ6®åT ß«Àª¬ ìBOÑCÏO è¥F}†ìÛ·‘‘jjjhnn× rdd„Ý»wGÎJ:M[[ÛáúÀÀŸûÜç!ŸÏsÔQGñ©O}j\W«7÷ª¸k4|Ó-¨<Î4ª/sù–¶)Ö¢Éð]¨~ͺ®¤Ê°iÝ2Ê=¶¸ÞÉ$ ÷`Ç'ÄñUeMÜl†‚Ï„mþ«DXÛÄ¬Ø kå>)›YSÝIJ‹n.`­!ª·ÊL’PT](•‚qZÅŠ6;l%JŒ©D‰=m|æYòºZƒyAkQ²NÁðúuyÌ*y>~"T¢¹fFÂ9ò‹ø¨ØýÆ×ÈcŸêp€Ûn»Gy„ºº:²Ù,7ÝtsæÌ)yÍõ×_ϦM›X¶LÑÇ_|1^xaÉØÅ×sÝvÛm<úè£ÔÖÖ’Ëå¸é¦›˜={ökî¡>Äâ•ÝÃel$é£wòšlèùA5˜¥µFp©Y|¾ŠH‹ÙJDÌf|Ý*ëÃI ©,µy5“p\Ü0C˜t°rRi›gîñŽyV<<ÿÝõaLšÆø"'Ò …£DFú‰riÆ„ÊÞ'¡­Æ7Õò£×¹B‹¼Tš^ûDŸœRæ´Î® 1u€¡’Ø'ì^JôÊIrŽÚý‘Ä~¶KðƒqÐ4z½¼÷ yüyàaJ:~€:¢ä¼Y¢­5ŒŠ´„~äÁñUä$äBƘbc™© gxâ‰'øò—¿LKK ÝÝÝ\sÍ5œwÞy%¯Y»v-ŸùÌg8묳p]—E‹qÍ5× ßwß}d2n¾ùfb±W\qO<ñ\pÁ[ЇĿ³PÙé:Ed@~ÚÚ28Ów Ôb'&Ä/Ô‘èåÆv5!ÑS”»íB˜Uõ'±$䳨‰„¶cc…ÏAÒ‰‚Yµ½j£‡áø¸‘™ 6CTˆ¦ŸzÅû¶4—ËëË©³:ù¶VÕ•!*û0Í“˜Äê ¬ƒÒº€a¹R¨0K,ñ”öÐÊÜÈãòyk o!~JˆÏÅeŸ¹@|›Xâ¡D<·ŠBq„[‰‰!ÁÞ)çj4åáyèSë·qãF~úÓŸòõ¯yóæqÓM7që­·ò…/|aœ…~ÅWð'ò'Ê\”þÎoÄÚ°a?ûÙϸå–[hkkãk_ûÿüÏÿÌõ×_ÿšö—¤²{ç';Å­«"´-%4¾ŽÔû°S†ÛÕ'»:+»@ïú‚À`º´„«’]Ø"Ú~PŽ{œìÌ­DÃCCÃv!?¤²¯úqjÉå©jŒ“¶Ø¾>¾†böka.Ë+¸`œ¹³Å ½Š¨\WYuŦO™s)͉IŠLUÚû9JšW—ôV‰ñ4*g&]v¥úß _¯¹¨|€˜ÁÄ™,ÀÓâb5 ÐÎ7‚šk峎'š{©uà)ò¹ZKŠ™Ö!:K‡D ¾u«Üs€¯…j.{à ÂCŸL˜z___ùÊWøØÇ>Æé§ŸÎC=Ä-·ÜÂgœ1®Õó 'œÀ—¿üeÒé4¶mãºîáðž|òIÖ¬YCcc#555¬Y³†gžyæ-F¹û9ºK¶‡™?é• b¹g¿MÄFÃà ¥DdÖEƒ1lJGõsµ=èñ$²8q5ÝÄC·åc^‚Up© i)ï·Y¬ps!ÑØýMr½”–p”ïÓPŽÓMÔ"òDé=æDxÛ¨“ÊhýPB ½ÕSf$Xrõ @ÖfË•\\L”™ ßß.Àý¤ÂQ–üY¢XªËü¦»Ä+2Ôê;äõ—ï rÖ¡Ü­âô¯‰nfRܺuëhiiaéÒ¥¤Ói.¼ðBÖ­[ÇÐÐøâ»»ï¾›}ìc|ÿûß/hx#Öºuëhmm娣Ž"NsÁðüóÏW<ç#¹¼B¨Ú9¸Ö„×>;RÀ®JX’8ˆìy€Ÿƒ0A”ÙÞ+„í£”ÖHF`¨\¸†ñßlìÚ²;/$JïÔºÆlRjƒ? N{x·>E¶g„ÆÖÙ®±˜—ÓéƒÆ^¸ÚS†wÁ8s=l¥•àöŠç¡ZbÅÊLõÂ|¹F° \þµÎèŽì ¶I¸Ê—ã·õƒ×^òª Ç̉þгævWpFt3ªD™~ˆ£bø EÌ2ŽÛ,ŒÄvÑ3”¹P§£âøº\V—²Ý <"ßM‡êÄÐÑÙ«€³èõTâ„­þ't&ÕfMOO¬Y³†T*ÅêÕ«ÉårlÛ¶­¢ì}ò“ŸäK_ú‡Cïë룾>*çhnnæå—_.{UF.¹¦ª›™xØÉ ê}eÕWu:.¿Tµ¢ú{˶ Åó ªd ((@¯JŸÅN8X‡ã*5ŸËA¢¬F#UaÃxFô!ÇÁu]þõ_ÿ•'žx‚[o½•D"ñºKN___ÅsÎåJ»oôvù<ý¨z,·X|ŒKuí¡û¹LH,naÓŠÌÆ2!6ÞX+UG€KàÛB•:¢˜óQ·ÆbXO׿r“HU%¹Ž dn(cáì²×[«{?§ØºÑ v:I¦/ËŒ.#ýŒAÂ[çЄ°¾Èû¢t¾&»ò¡­£Œo¥Ÿ{F…üÿIñŒ—Mx§,¤–Qêy¡Ñ{Eèéðº·|Zt”c€~Aܤò©­L÷Ä|‡å³4=*¯Ÿg˜]1Cÿ È/ô˜xï9Ñ%ú:4Êó—ËõòaS Cêû§Ðú5À§ü¼Ïþ=䆔wÜqüÓ?ýÍÍͬ]»–~ðƒÜ~ûí‡è©TªDÙŒŽŽRUUUA-'*ÀÇ›}Õ•«èô«ì;T•ùÉš´ÖM%̈³ è²½BÃC÷rØñJRäóâ¡ÏWÒô‹nØ7¦’ÙÊÕh#šÚbGC ‘‘ÞNi¯æ.óeê¨Æ ðÃ2ž¹Jê Ÿ+ï­6”NXfþxvEVo›Xåãç[剒ߞÏ£Z:„蜨UmÎ`~)×!#œŠ-ô¡öƒ_™š‡îŒ£Û|'Ī®ÂöÔ¾±bÑóÉd²ÄÛ%‘HລÇ8õÔS‹§Óiþàþ€±±±7Ð+é€JçìÆ,ªj¬âßÎaŽ ,B×Â:€Màç},³î3 À¶#ÕnÌ/ZoðGAİw°ŽBŠì;"°ÏI *!üY¹.ø`Ù„¹<$bäÇ|3]²9UübráwÇàØÒ…ñ€®KÕ´k’—³!ê5a®—åù¥rö5†Ù+2¹BtÄnq$ôr3d–68ŠZãÊÄDd\%êˆPš®¯ì€èú±aãóƒ fU`\ùgä¾ Fþ°|ÿ® ß_³“=ržâ„8¢oRâ-j-¨±¡ ±Fw [·åîÛ6V:…ªÇ­TôC»®‹ïû„¡Ò’¹\Ž Æ%›···ÓÞ®:,]º”|õë× wÜqlذÏóp]—gŸ}–Ë/¿¼ìU‰#D`¾ž+)*½Øq¢’¶™e¶£™R’aÖcFj £ ÌCwKˆ³t ËÏáÆ,ßÇqTfe.+º49^ïAllü™®’OX'Ôö‰F\«¤£ÿ—È¡wÊ7Û"›®¡rLrÑ!*ùª7,Þr)Ãê>Éœ°‚bÒq]²CLïÿgæ'•¸‚è â ˆÚøXrÕï—ït µTèu䳑÷¿,çß'ׯÙxOú<ô²_¡:FÃòèHñúHP—-[ÆÝwßÍÀÀõõõ<ùä“,^¼˜ººº›JGz£bèË–-ãž{î)9ç%K–P[[[j7ÚsBüˆ}nà+l¶ˆÊÕÊkúC/ÀrL‘0Tù+% Zi¹˜wËMÇÇ÷ˆŒ›us (Óå­Ïˆao—™…D$uào©¦óAˆeYAˆíZx>”ØD<PÍd(£¥ ˜½( ªÏn#ã»%êóM¨¬ï”°dƒDEé2Ž"VfHˆ&Ôöy¼]4¢-FuGŽÂ6Äââ¡»„~€-ºŸ…¦3[2~”¢§×,±~µ×©7­cV] E6%‡!@þÅBšb¦:†­+õ÷ˆ‡?Sw%¥ "r"P•2]ób1ëz‚AT²^U™×®-ó”x :óà1D–±:»ì\Ór®“±bÕÆ÷7•ËÀ äØSÊr?ñÄ™?>7Üp‹/æ¾ûîãºë®cppk®¹†o¼‘Å‹óùÏžööv,Ëâg?ûï{ßû*0c¯ÏZµjmmmÜxã,Z´ˆŸüä'\wÝuÄãñ×õ<¬ Íð³ñ+—Ên@·)2ª½u· ²še—ï=ÀgH'9;¦t€…ÐäZE»£xþ=Jðš<¶Æ“ú5r¦ºœk‹Áh%˼ڙB]ï4øKTÌòí e2©½c]‰ï•ÃÖŠ±D®”n»O®˜O7=cÛÐO‰Q¥çvН&êYñ2Q߉cQ¹;åÁ¸¼~¤LûVº¥ ž2xÕµÀÑ6Ô:ªê±$p KÕ¡|–ûÌ™3¹êª«¸ñÆ9ï¼óxà¸ä’K¨««ãºë®£££ƒ«¯¾š;|>Omm-O>ù$­­­¬^½úð}áÂ…Ü|óÍ<òÈ#¤Óin¾ùæ×¼\åµ_3dËëÞìÃbçÎ%‚Óa¢ôòÂ.æ5\s)™´f{*~³°‚BTWW“„³P%®Ðf_K@:#Â}–€¨é-gˆ’߆EX·ÉëâF@E[Ð:ImV™)“7yÝvTÚk¼½(¨6ƒ‚ëD¥.êa.ºp¡(Ž>9¯ß0~ž²Ž‹™ùÇ/¥2n|vR(1ÝɾhJ&|ñ‹_äÁ¤¿¿Ÿë¯¿ž“N:‰ÑÑQÞýîwóUV¯^ÍŽ;Ã|ä#œ~úéÄb±7ÆüM$ø‡ø‡’s^µjÕkþ¹¶ªð¯LõäÓ nK:¢e£Ï&؇¦L`èÚÄ%«&Ê•NŠ©ª9¦BYÐ ÃDœ3  K€ÈN€ïÆãøy;­èöxÒ"WÍü° βàÁdD{k3BOTÓŒ×naëâ¨&/º'J •(7G^s¯ÈSªNM¢Ê×’eÌžâ¼ÈÚÈž®0¹H_B^ ‰âþ–qÕÆù>%W»ÑxM—ã}D%´#¨r´í:¼#¿`«œGž¨²¥×0j\# š2ô‡#.›7 Éy‰ÁòU€@ùÍ™Š8˜ñ©Ñþq‡?ú£?bîܹlÙ²…«¯¾š3Ï<€ÓN;3f`Y+W®äé§Ÿ¦»»›SO=•óÏ?Ÿ†††Ãt˲X´h‹-âwg ÄÍ%*¾Økغý˜l==ÏHûÃûe;MÏ̃•3Tݼ,vÜÅËù¸ Bpr`-à @2ŒL7d¹_ÎLZ=ó ¢Vަ?`·Û&‚`¶aÔYqQOÿ#B¦­æ¹J"LAk-'šîdN‘®¢tº|\^¿ •”¢sŽsB£i_çg ‡å¢V ZÉ<:A¼ðXTêR(Jl+Q}¾V>¯Åò§X¶¦)·+¯¼²ªªøÐ‡>TüÿÅ_ü¦’˜JçüZ/×µð¥ÙÊDžºå8„ž¯³4݈î¦pyRkFvú Ù•3„ˆ^HÔUG©õ̯Œ±»‡*&cÇÀ­R‰qé$ÁÞ‰¹1Æ=R5!cYe¼Û²A›,Øä«¯áM¦ñ„¾Ê­«ÔhD,˜· V¢šmMƒõÄhKºÜ÷Ø‹j´P+Öûlãu½e¯gJÏ7Ï<êæ²³3KºÑeæì€uÝï\®²îe5æ³~TÉÉ ‘1Jû7˜Ì˜ Äìv`v޼gTtƒY–ºO öù";–„³tSÛF¹"M†|ÚDíY=‘݇åÏçólzQ$qýN¿®Kÿ—AoõÀ=ú?öÏt c&ªÓÖ±÷è¶YúãúÛíx%ñA휼ÑÌå.KîûÐ…"ÜÞ^.+fã§û2ˆ›‡%÷ˆj.SÒ^A¢ækç|¡¾"Ã’(Ríj5—mЫ£]ßV걓ÂNæ1 Íßêç»É6¦ÌžÀm˜XUAzÐc cù‰®º1Å.š+ÔËmú[áš]p¬ÇšªEtàZ„«\‚DÖI¸fêu$“­Õ¯éÐëТ0n\™§°ßÚ¸_ÿçš8´è½à·ú ØrUF6Uf:]ƒv¸+\—ï‡õëžÒîЮ¢Ï5BÀ%J™ hgúïíYA>OxEÀµÀq ø| Äo'¡½ ýݯí…ëžøú¢©úHIqeÉ}™ÔÞµº ‚3Jˆ•àîi›I>†îê…äVÏ%Ÿíª+@E5®aqÕ¬÷§ƒ¾#ߎõû[0#&nÚ#3ðtËÁ𴵌î‹á²g³Ö…ƒ\ƒyÅA¬{¬Õ=Á¤5ÈǺ´«2¬\,èζ ´Àd( ð{Íă¿#Ma÷ûñ}5#Êiåyè¯Í C`ày{¾zí„…Let\µx¤§³¾bÍìåzC"­Ò”ÂÃ8˜ Xü‘!Î×­5²:òQZŠÝÁ‘_®žOäcç3p÷œ™ˆc×$ظÙeÚL1l6 IDAT‹êx¾š«ô6äÀ¤Z8; —µCÊPy(1ò!«€™L½SØöØùäs`ò‰p^‘ô^ÌØ)ÚGv‘/— ž×­?×(ÚÉç”»«§ßãšN¹!i>x³HG1öè6…ÙDH Ok pþ*¯à‚¼·bUú ªÑ/Ôßû®| >}ܽvl€î˜[fèû؆P¹m! €z>ùôŽ /Únòíag‘Ï„‘o0jj(ÏÇŽƒ%®ƒ1Ȧ=ªâ×Ñ’{¨AUÖßó “%ÝvàN}_‰Å˜y¾©Ý¨,ɨ¤–¡=<ïò%f=Z&_O~p›ÑÊ1ô}ËÐ…¡ûl—ÛM<¢ o(R"L‰° ¤ïj”ˆƒLàÎnÐyeh†ôÎ 1ôjTÿ‰ íÉTÏÁ†l$ 65À«4ýŒ'M‚'ã[$g´ðìÓ}L:(ÉIo…_>+WjÀчVÁ7\ø¯Ý𾃺,8¾êWá„À3h–Ô«ÿš 6œ…Ü¢[ä°‡åùWõº·…-¶@¦V3ö®ã~Mqÿ³È‹3ØÃ²zÐc¡Ÿ}ý÷=¬–PoÀ×’pX"Iò©õUúÔT¨z§€¯ü à?Þ‘ʱ¡æhæ¡»e@ßç‚*?;B>âHmݨùüÐsÃ2| >ûäó+3!2«ä>“|ºtøX?ëa[Š¡û®êôÊr}ÕÖ“cú󚿅嚣lÐLÜß‹:0’ ê÷9PLÅÐËekûŒ¡‹Ò =wýšá{ÒÅ0‚ !É]fJÀFxsmÕšR•RÕ‚¸WP…[•!h ˺ªWéý ›áE[zñX•П‚šVº¶<ÏÔ­à¥oßÅËÛ£6Ïâý“\û]oƒšHÈ–PãÂg#°<wï‚ {a… gYÐà©yAIWP—LPô‹Ý ¹GaSªƒô{<z¾¤p6¥7›lGÑ7þFŒ"`\Ÿp»Ö@ß0B·Á*K†@<ˆ »µ£RJ›õþôd+á [5ÐÓ MSè}ùDm Õ¼ô|÷Dƒ·Ÿ(Ys·ÇuOÁÅÇB4ÐÍ“ Q4# ØV?ë‚KRPí©¿t¡VÆ‚¸r01-ÓÉ…—ÃMÏÃÇgƒèËYò³I‡`b>×gfàïƒðP|w@m‡š°ÜP¨¶ž›!ŸS ŽÍ†@=bø&ùùâ2ä` … ®FðáØxø°C m…~ÒƒÏêž¶`¯Ž*%áœj˜fÁäÄ }¯Ôoô(x h—pý#°®®>=HGHƒúÀèØúXZ¿ìÞ½›ï~÷»lÚ´‰™3grÞyç1iÒ¤ÒjÇŽ\vÙeÌœ9“Ë.»¬ è¥ÍEE…Ó<õdTiqqD`A3Õz½€‹…¤ùÌ™< {i°bàfÒÇŒ˜¤³>¶mâº`™yàúª„Ö,á ï+sPY “ïHU¶Ñ[©yè¥@?°®®.¾üå/sÆg°hÑ"®¼òJ*++ùà?8ÜÙছnbÓ¦MìÚµë€ûn…}b@ްäR9±(dua#: @²ŸNBÅË[ÈO0‹¨ZPÎ0÷Q8f5¡•ºAòa9Cµ 5„ÆI8=™¾ “mäw÷¼DFÚ`¦N†kÎ… ¯Ws¹Ï; ªbzKŠ…tnCµŠ`ÁÞ* ]ëáO)¸#¾j!=UªVZ“PYA©Wà¦|‡Ö$]òí Ãã’K…ÿŠÙ»?3z˜™òzàÕ.ÓT,>˜]18ÎV a&Y`þWÀÈEÑïfH>Ö4üäøÝf8ù¸õ,hl _ÛöÉÆ4>Õq~:檫®"™Lrùå—³jÕ*®ºê*®»îº’NýO~òÖ®]›W\ô‚#i²C—Ø4àýÚµ Ò̪‹Xz/…“wƒË²I_n†–è2`1ôDâ 3|쨟õ‰D ÜtáøDGJKo”e)=O¸l£ôÑHîyPxøá‡I$œuÖYضÍùçŸÏ­·ÞÊ»ßýn***òî¦ëòãÿ˜ Ì"?Ж«(ô<@¨ö¯Â4”¬%%†)CJéJ´hQ§¸ð>4ƒ ƇÑÝÙzoŽÖv ø÷pŒïÖ@¿AóÝ ÷»¡c!¨nÁu ú;Ò$g¶ ’q{Ê`á’$­´æsó×á«ß‚Oü>4Ìo…h•FÚAýç¥ô­þ˜˜ ‡Á†²Ðï@GÖöóCðPú¾f×è!ŽaD brZž$…r+ZbÀ“*­àÕ¬b©›øGó¡Ë‡”Ôãi¤ @N µ!º§œ¹Æ^ ÐÃ3)]½Ë>¢] )a±€Eáˆ(4U‚ú¶†ó’#E¢hÑc¾PÉn÷m‚ÚAðÖ9ðÝÃŒ©`TEFÌǘúÈeká,÷ ÃÈCniiÁ²,¶oß^èCCCÜrË-üÛ¿ýÏ=÷\îþ2>來%¨ô`êvu¨„˜à²Œ…~Gó×?j¿1QÂ}•üt6‚ K/ ‰øiž8áxDmI6–‘×¹W Œ’ÞðØT–7 Ø›Erw_ÝEÿoþ„RrofÃÖaRrøgY4ÔÛq¾ùÍorÞyç‘L&ñ}×uñ}Ã8p2æ…€hLI«,&Þ°™è†e <Cº˜–‡Y…W‡4Ô3Š ÌF¥PMÔhø¬^¿»)*µZ ­Âµz(µãw¢&Ô ¢¼Q½`6蚪,˜jÓ7ªqv0@ÓO[Äïßÿ /¶ÇhžQO´µ Ó÷Hœ§ ?[ =5qX9V´Áô z*c # ƒ¢ñ,ù.PY°²0Ň)©«k|ÝØÊËB‡a“/e` »²*I·Z@„I†J ®G)@ÜË·W5KìQAKž~í>í2`ƒk¥ryZ,xk .®‚¶*%ªÁa†Š"Y=©ž lJÁ¦ÝðÈs°ax–Ïÿ<æMU‚©¦³ãQƒBvý»´À³Á³ÀsÙZáà¥øÍŸp_U)Æé¿=·÷÷ ížçqýõ׳`Á-ZÄÓO?ÛÊ€žseƒŽoùùcÁ-nûZzmÐöÿdýøc¨(O`}z1'CÞ|ÐÍjpUœa)†nÚ"C×W¾# )”m<\UbX‹1¡™êŸžû½ûés?·¶¶²zõj<ÏÃ4M6oÞLcc#ñx<ï¾ú*=öƒƒƒÜxã<ñļøâ‹´´´”¹øft;"pÒ{Î"1B’»‹£cèÂTÞqWRŽy£FÃ`®Cmˆq«pYˆþv½ÆŸD•¶æ];5Ü·Qï5ÓÔ#t[9fU¯‰ VaÒÜ$ÿX3À‘3 | ÂP©”Õ•pÁ;à}Kà‰ ð§gáÎ5P‡c¦À1aJT5§²MÝù gšúY…Bÿ·ú_žjÂTÞªÅHOBw z|èÒ€¿Åƒg=Åê» H%kÇô˜×¸ÌKé~(2ê6*Ôxع¦*¹›mÔ8ăAîvH‹·C^‚fѾ©ŒŒ Ûàñ.xª6ö¨Ç§ÕÊÙðÁ#aúd¨­Ò©LÁ{ëþ¡C‡)ÆV•"uªf%Tœ‘_«}«~z(çyd2’É$xžGsssþù}}¬^½ÇqX³f ›6m¢§§‡k®¹¦ èy@LoŠ|>w–ÖæèçLAj—þ¿i¹¾-MÞ=\á ˜†Ö•ÒÊ=ôSˆˆ…‰‡çøD#בØC÷´ä.ó ¢ÌÊÇ‹ä>ú²µ£Ž:Šo¼‘_üârÈ!Ü|óÍœrÊ)˜¦ÉOúSN8á&NœÈ<óÚ¿øÅ/²bÅ V¬XqÀIîѸÀt‡1s…EÛ–ÒE¸YLÃÃHF!;¨7ñ`|jà¨Yeë´B7@¾Ê3A\Íàí5>¼KËèLJ «S? D@‹£Š(Ȉ¦˜`_?Tµ)Y<ÃÊ’%°$ Þ9‘‡ò2ï=­–Xuz9 ÆºGU_ŠÆ8ù 8y%¤R°æøãSð•ÇUÊ@s•е/œ³`r˜~~o)(RwBL>¸ XËù&І ÚN7Ð~‘”0 ™|oVÍžÈx t ©fTT*þÝDT¨KÝ ò ƒøµ¾Ï7aKžÝ Om†¿ï„® TDaÎd8z\4Ú&«&D¹æñ¥ŠØƒzw—¶z×Ï4q-ß0BàU)É}ô1ôÖÖV–.]Êõ×_Ï>ðn¿ývÚÚÚ˜6m<ðuuu,\¸n¸!—?óÓŸþ”uëÖqÎ9甽Ôw–…žBÕ—. ßî±Õ…¼/tïÖ2Ü í‰?FéfAÛ* bèXJr bèY·(†.óÛŽS>YãFrÏŽáfð \vÙe¬ZµŠ_þò—,Y²„ÓO?ÁÁAîºë.–,YBCC3fÌȽfΜ9Ìž=›êêê Ð A,.H•ʯV·†m`Ç,¼4ÔêºÛ«£^¶Ž¡\¸½³ˆ¾¶k¯–üà>-É?K¾DmªgE* î T é0‹’çºÀš¢3ͺ¡r10"2ë"µº3ci«oØÄ?žsh^d x¦Ã’ ØCÌ㽎š}=йÚwÁÓ/ÃOCg$M˜S óêaATPa«íHTƒ´º ÏcÍ–5¦¾OH¨ô¡RRØ¥¦xÊ LÃŒ»Ðu2ZÖVÎÁÖxüðÈNØí*‡åˆðöÅ0¡j’PU­ž‚¸ºº5BŸ£o¥fäß@"\?!òãxG è£ÏrÇã\zé¥|ë[ßâÒK/eòäÉ|éK_àü#3gÎdñâÅLœ81÷šÙ³gãº.&L(úè€~(t€êþt(j6PZ/ø;Q‰rsõجï/~/©º©cg¶ð20ô¬OÄ– ãC½ãå¯Á2 —+gäñ©ÅrÜQGÅQGU¤Ð%¸çž{J¾þë_ÿúùÝ ±„`hбrK·ð0ñ°-_PÄÄÃLDÞÒB-“ŽêÔ„7œ E '!CaÃâ T¬}#ùÝÏQI´oCE“§£RºÌV¬S¾D/$'+FèuA]­®q6Áóqˆ Ø UÌ~ÛdîýÙvœ jûØÕY„”T˜i„fªˆig•øPÝÕSa†ÇiÆÝÕ /¼ß Ïlƒ»‡Œîµ3±f6ÀÜ&˜^£ŽX°my¡¯!|ë…¾’tä ½&|[p^¯f1¬½Ë€‡wÀê—àµaAœõvX<šêÈÇЃ´+ÄȼŒ¼™gãÒPŒÜ3Á7 ²¶…B±rí\ùº~ÂÇõu*G5½òO˜0oûÛ£^ë§Ÿžá•½¤YÏ* ¹¬µ¨²µNí…Kí±?§ï÷ÉÏ9%؃ÞÄeL á:`ÛHÏÃ÷%¶ ® vh SP¶*M/ÛþÎÐ}“¬7‚ä.Ë­__‹ÄCý¥+œ`ÚvÂÂíR[ke‘íG¨ +ßQ ¹€A‡ß!¨,fõiù}¹^‰Óôþ°]S×´VófkívùÙçáÀì Š™[IåP¸ƒ«„”ŠÞ†Þ¢wNàgldwG’æ‰&.Ï2t‡i©âêxEPD.B [g¥Õ5‘µpä!àf †ôô †m°nüf#ììQUYЇִUÃĸ’´+MHD i)¹3j Q¥óƒÑi±€)t©—š©KS% HK …bãž RøBÉë>y@úØœz1âàúåNqûr«V¢Ú¶òújTéJ¥–Õš(]DÖÜzŸj ;øE€®PÛ„mã` I$â+†š´æøù¨_>IメûÏ¡S\Ù;{ÍKôõÉ=º$bC$aáö `âcVÄN¿ÚècQ¶F;Ç,’Åg :˜ƒê1ñ*ö)½R¤ßš!ðÿ_ èéž ƒ­…¸­²Æü!¨HB „—Ųb!@0©i‰Ñ:=ÎßõyÛû¤ˆ+É=¡ÚÚÚ¶ƒáƒ•7ι»8&.Uv{…§Ž Ó†·ëçÀö]ÐÑ­À}G'<¿ ~·SµLC: 1 jbP—„IÕÐR©À¿1 õI¨Ce•ä^÷YèLÁæ^ØÔëvÂK»¡' •pÐ$8u%4Ú¦€ ±÷ m$äÅ€nÀ­ý ½+ÐÏ ´ÍüõL³À= ÝÐ9Yc`è’÷ß+O݇Ö, ]õ¨D™¨LUWK륆’JT2M0£,ì$yº-LCwCÏö!"62Å0$‘ˆJ( 3ôŒ¯G©–mº‰›Ý»Ü&ü2C­–¨ìØVz @b«KàtöcàcÕU œ…x‘¤•Úb ……ÆIT÷À©ŸlÖ`Þ‡Jz§ŸÛWBKš¨ÚŽ ôäÇ ±"Cªc]EØ~:¯DhqW"°£&GœRÏCwmã˜wW‘´U,]1uôð…¢À†‰D#Õ'á)æ.4CáÉ)v‘œäýyŒÀ̘<–Õ}óÝ<ñ|èê‡WwÃö^ØÒ ÛúaÍ6è‚¡4 e”¤V…Ð §[ë'bPW Sëàðùð±)0½l]G.ö€yq×™€uë[_‡«¥)–Ú0ÌÓ¿+B,ð Cm¯"Ͼ}­ª2x8v^(-ŒÐ}cÄ=À÷Ê }Z7*&Ö¢OœKáÄu!×÷å¦5ë7 õB¥«›Âs¶‰ º%É:Ú«ÕåxºsÙÆäîàì}‰YeÉýµz…ÁЀ_bµÉ\Ä3VŸ «³ »&aNÄk!VÛÀœB¾I°¶w£’[Í"ç]è=â~Tàv}h‡g<„„`ýiÔ› v‚ÊBsÚ!YÕ ˆ¹øC)¬D$÷÷ûzÀœ#ëøíuÛX¿Ögù Ä!‚i ð>BJ ßGø>¦çcú!U;Xს'6”ª 4Ásó,>ÿ¡¦5Bçô4·B³‹Ã m<Èz ÈÓ5ñ-›UµíUg@<ɸêó“ó}ì°a„NMqc÷ªvpëšÏ ×ê)övù¬;\bªÛósÇ"ªI)ÈŽ°”}ŸZJKf§¢Û‚†2KP­ÛQsÑSZŽ ß&r§ŽÂ:t7C?£º­B,”éÈá ý˜¸V¶‚¡»&¾³÷ WÃ+{i¯Å>U5‚?Çf #êH´Vñê3=T⭯ˆ™Ð³ MP; :_{9…­ž}`¦†3ôš®ÒŸ\‹Ää¡‘VGëýá9-χ¥û 4g…(ñf°RàÔõ4LÁHÄ–‡×ÓO¤:>¬/Qm³ð¨ ûý ‡/Žb‰‡‰@’ÅÎ%ª¾õ†á#…/}ä†v!Aø2„bÛÂRâ…ðB[UࣸE·~¼‡=Ç×dÚ×Yáìöâ”…â‰,‚ÂŒwýõI[5w‘ú1i踷­z{f˜}ƒ'LõœPwYÊÅ -‚†ÁPÄȃ«êµ1tAv„=· èoKߤ=𭨚ó*&èç<…|g¹¨ØÙ“è÷4ÆD'Õek2‹zÄ'‹!$‘ˆ$“Qñ©`8"¢°•¢¤OߟMz&dFÍT–Ü_˜«-ºªÚ ¿×_bùn!?L;âj/‰MToûêã°äpˆƒ%²¤7l¢vv=®ä“ý›8=ÂÆ'{‹.!¡qX²íŒ´Ô}ŠÑ>ãtê—Ì}†¿€ãYÃËÂÂg²8Ym´ÿ×ësʼn’zƘ=3Š}"ìœx?ü0ííí´µµqØa‡‹Å žÓÑÑÁ#ûì°·}ê©§hooghhˆ;«¯¾Çyó7ññ¼ð:yšÅŽWU¦jЩZÀ*–>ñÐ&RkþNŒ4-&ÑE3aÛÃ*‚6i=Põ XšeW jу¾)½¤PãTÿ„šÕpªéT6àaOè÷«Ö{ÁïÀzTF ZÂî5°àp¨ÛÄéeêj$‚ƒ…‹‰›û«j°èÙít$ §†¥çðý{;Ô7¥Žà[ ß>"8DJ>–{ŽÓ‘vÑgØ8DÈbçþ¦àïñ ÎòØŽ×æ¥ÞGŽJFÚB‚†ïûüüç?ç{ßû]]]\{íµÜqÇÃÞö•W^aݺu¤R)þö·¿qñųeË–2Cy q{ôÏž–×þN¾ÎbO¯›šÂ¶k8  C¥‹J©z*ˆ%ñ—hTmTN"E­_¢Ü)nÜ1ô1HîkÖ¬aýúõÜ~ûíÔ××SSSà 7ÜÀµ×^K$’wç>üáç~>öØcùÈG>Â¥—^ZðœÅf-ˆðóÉ:2×­9ÌÎm²4Ï®Â}ù,gˆX$Kåñ‡“¾æ~üwœ 'ÀÜ·ÂÚ›@\¦Á8©O^g‡”¹€ÇQqù6ýûï!êCõ1*<Ÿ~ ¼^ŒÙ!¬t/ÞÖÔÌ<‹l®½¡U‰€uWT›¤‡$ž·g}U1õÑ2Y5vdtìÓÛ‡ƒœKIꯥíê?ÇÂ_'Ö?Fɽ££ƒ›o¾™ï~÷»ÌŸ?Ÿ¥K—rùå—sÚi§¨pK—.eéÒ¥êï”’N8õë×—}ï6xKhg®B5–ypX­RÒ5¨D™íúH+0·LHg0b|'KL3t× µ~Õ ½Fäû<”mœ=Þ(ž£mýúõLš4‰úúz–/_Î]wÝE__ /Û¼y3íííÜÿýwÜq3Ó$klµèëvqI$èfˆc6NMPUo1ðÔËfQ³b.]òNüWŸ††åpćᙃ»Õ%2©O\\s4zjö> :§¥2}Wéu߆*kxê>ªš£Wûðâ=pÈ1-5É bÛ, b5Ql²¹²»07T NõJÙÓXîp¶{1 ŠÁgŒÈÞXqwx-øëæû<¶îøÏ嬻»›¡¡!ÚÚÚ”Ã:k¦i²iÓ&-ZTð²®®.6lØÀÚµkilldÞ¼ye@ß;;oCéráâÉ)zÁ÷…q•@K‘ZvkBIørí ýŒv 2 ÐåK4¢–ëi@×›¾ãNr7w*Û¿ØJ%Åu~NJýþê¦ÜCCCC$‰¼[XUE*•"›Þ×àùçŸçÁdíÚµœtÒIÆ=KTxYŸlÊ%Z%‡Õ¢ÛdIÄ#L:j2÷?KÕG#âXljûè/‘KŽ€ŠF˜v ¼p3Ô^ ]µ 9éCÉåÕz}'ÈOiÑê›bæÁ¬Ï¸t3¿*Å™P;Um'ñ°í¸àĪÒD)†þ¼†Ú…“IVDIc‘Uýç‹€=Ý狌æt@U Ü÷æ ¼Ìß_¢É¥º“‚§~Ýz\÷ ÂIgÍf1M¡=¶x<Ža {ëíÛ·sï½÷²nÝ:𛛉Åbe@ß;4®Ó€îh0®×Ò[‘§Z|ñ¤Pñõ£õkjÈw’Ó=âýŒêwh˜NcÄ#x=.ѨZV®—Ÿê£=6Ê¿º,Éï'V*).ÞKOËÇ@×þ9÷PMM ½½ù„§ÎÎN*++‰F£ÃÞú¤“NâÄOdÓ¦MœuÖY|à µµõ€ûŠ+ª [-6ÿ#Âæ¸NðÊÇÑMÍÒg½wë?z•Û;HL00ßq|æ8d;ÔL„yçÀöÏ‚{ˆOjpJкõï'ß52M~ÔWxîgÀêǬSíržÚFª-÷ÀÒ0k‘Än¢ÙNú|‚i_<žˆéåzð?¨,t•×µ3K]³¹gŠçBz2:@óìÞbùCJ$ÅÅ`þ‰Úi¤@rF£¸®‹¯ëïïÇó}:™L&§Öe³Y<](„Èíe†^`Ó÷k`ÿƒïð`–Þ1îæ/i¯¾ZŸ´ŒòÜ ÓŠëÆ2FÄÂËxDô¹Íúz8‹Ô€.!n^'e'€>Ò‚×¶páBV®\Éç>÷9èèèàÚk¯¥³³““O>™Ûn»C9„ /¼H$‚eY¼òÊ+|èCÊÅÝ4®ˆqçõ}¼7ãcFEÁÖHÖQ[²ðÃó×›dâÛ"Ïb\ôz¿ùÜýPó.hó¾ 5iÖ”íÈ.ùd¹ .° v=‚’Úp/p#Ô^ M¶é&Âc_ƒãÞ‰˜;#á1Rtÿä7Ì9õ¢™û{­\ÙZ¾€Ës%[^Ì°è¬ø¨÷HŒUŒãÀܸ Œ1)®¡¡/|á \uÕU̘1ƒ7òéOšx<Î9çœÃÁÌ%—\ÂM7ÝÄóÏ?O2™dÇŽ455q '”½ÐªB µúuÒ[ú´UgVÔèNŽ¢à–‰ð=LSà;Y¢µy.˜:±Þ÷ ÇÄðkÅ+³õý{1!!à3Ÿù 7n$•J1aÂ&Nœˆã8¬ZµŠ™3gð…/|®®®œ×ÖÖ†mÛ˜kž9‰ÍÍ]Û6f˜6/j,“%‚ƒA‚!æUϳ·¯gà÷Ñø® dcv\|éïÿÿì%0gD“Rãö¨÷ ·QµñÍTQ8¦,hý¬ewÓk¸ß‡è6˜ñÿ þ0EÚ+xå&h´à¬Ó¨jªû™';v2íØåTÓK%j2\Œ4>6Ùœs2Ðå°s‹Ã¬5¯ÓåiŒꣿ¿Ñ`=®Ô…1îÇw“'O¦»»›ººº\‚Üå—_N<GÁ駟βeËp‡xsæLÞÿþ÷+‚?¶A³rUsþzï@ˆˆrà}-¹›x>Â4ðh’\ ÝÖ-£}YЃ­¥œ7ŽzÑÉ‹ÇãÌŸ?¿à¾H$ÂÂ… ó:ÒôéLŸ>}¿ø{zz¸ùæ›Èý­ŸúÔ§¨®®~C>_ IT̘g³ö±ÓçE‡5— ŽxÒààsãñoÿ•©Ç¼•hm5‘ÆßÖNúÖÏÁÊïA[ ̰SBêq軼•`œL¾dØ[3P¡´§Áÿ5¸O@ʼnÐô¨ªË—´o¼:„Oß µX‘X}l»æ§ÌþÄ $'Tb‘Îe懅ñ lm×¶,¦ 5 ¯ ÿ,þÍ”œ7*†î«N‚Y³f {ZàÐL¾¸òþÉNqÿøÇ?øë_ÿÊÅ_L4¥¾¾ËϤ¿x@KfÙ½<¯ 5um;ªÅãh-”çi@˜à{&ÈL–X­’Ü\OæNއNŠ“e6þ¦ôq~2{zz¸ûî»ùô§?MKK –e•Lâ{½AÜÄÓp­6þ£ONpçý¼÷ÜJ=yÌE"põ<ó$ƒ˜xÌ^VÃæYôÝòKæ^x<ÓãU¸ç-g}ÇîŸÿÎþœ526œƒsà™» ó2¥ïÛÓ@ÔS!sø€_@Ô‚¦ã¡õ|¨iƒSåÃÆû`ýÿ@ÿcðŸWÁÜ&š&m£5º¾oÿˆ¦Ú,óNšL DÉd0§.(†îäBÏýµŸCŽˆé w™—ºoñ¨œfõOz'ã«õkKKË›¬v¤o7œ€j³•(70Ê÷vÈIú~™Ôó†Àsœíðè¨Ntü7Lo†¨Ä´\úÿü4½x’£¾*–Ű´®âÁ,nV²fõg~¦&”à^Þ Þ }ôx÷>ù\ú²íG =3ŠçŒc3M˲¸è¢‹Èd2,Y²„K/½”ÊÊÊ7ôïhšh±ì„8¿ZÕLJ¾Ã2\=¸ÄÀÄGbÅÆÇ bªÍ[¾z$«/ý%ó[IΛŒllùƇ¼¿Ô·>\|,9*›a«·ºëÀ=\%½? <§—ÿaÓ•*%d·Á‹¿‚ÇÏ@|ètD}„æºv⑱~KÇÕ«8ò;ïaælA‚íTÓ‹M6§$$B ‰â <ù‡Ý$“’%+¢Ãƪ–m?ô1örß'€.¥äŽ;îàÞ{ïöX,ã;ßùË–-ãÇ?þ1Éd’—_~™O~ò“Ì;· Þ7ÜE±`\Ë8C¨þÍ;Pr{ïþ±†®cè2vTùؾT‡ŸH|_"e¨]æÝƒ²½±j™âAþkYÌþ(>d?¶µk×rÕUW•|쳟ý,‡z(×_=ÕÕÕìܹ“Ë.»Œ»ï¾›sÎ9§Ðoq%Cº»€hL`¼ŽÝC…€Ϩâ«çï䄳\¦ØzÜT xÂYò©Ãyò ?åàoœ‰9 VD{çJœèü»oÿá8øm0åýo+¢r^$°D‹u1 “]•äº{+<ûxù0eâ3ßD,<#™EX.¦ï^ýÝßù‡|þx™€IWÁ–bU 3äñ§ÿíã-§T)Ohzã1ÙƒLZæZGxîkØÞ =ÀÚósÌ1ø°WžL&‰D"¹ä—††š››Ùºuk  ¦—4ƒüLáñºÍoCÅσ¦%¹K v@DõK2‚%‘žÂÀs\q'¥À<èçB‚Q¦ßo¨¥€M!wt÷¾`èûù92e ]tQÉÇfÍšE4ÍIíuuu¬\¹’'Ÿ|’³Ï>» 6~ë+¿ùéRö‚#OˆQßôú¸¨†öœ&·|h”Õ¿èáÌ‹#€À&›cê.UA«˦áŒôq0m¨oƒ–©‚j;0°6½=¯‚iÀ’åˆÏ}1w•ƒ$“[©¢è`©ý’Ý?_Íò+OdΑuTð*ô%CX¸TÒ¯øH!Dpx᩺¶gYþöú´Ab–u¹}j]ÿ!C:¥w[û’ý…¡‹yÊ”){|¼³³˲°,‹ÎÎN:::hll,zV•vgˆ æ¡£cèA×8xŽG, ™”ê7“«C—yq_RŽ£¿Q–@uólÇkôqC¯®®fÙ²e{|¼¿¿ÇqˆÅbô÷÷³fÍ=ôÐan¦Î´8ãcÉ×ý „àgUðß_îæ­§ei˜lÄÏEQ}:ÀÁ§Ï%YkóðåwRù‘ õï^N¬²“ÄAS‘³.ÄÝœ‚ŽøÛaó‹øýЦ™Q¨¯C,~/bâDDs3¢¡ #ácØbF†HvwÓ&vÿ¿›Hxý,¹ñ\Z§[XôäjÎÃGáÀPÉ@ËÿÞÐÉ;?RME•‘#ežþÆYC³É»?”oÉüä_úÇÆÿÆK ý¶ÛnãÉ'ŸÄ0 º»»9ï¼óJÎo.[°ãd”§º)¾aH|Ç%‘8ƒžbè¹:t:÷åÚóqb@RÜ£>Ê~ô#„ ÐÚÚÊ?øÁ7ä³ =¹Àe»ÏYeÉÑ1î¹®“_шA3t‰êòn© nšNª£bÒqüõ`Çÿ=ȤϟJÕâiÔÔ÷âcÐ×\¥£ÚKðüÃÉd#HiàûBøX–KÌÎ`ÑOœÝå-ƒ±µÝ7ýŠÞ?=Ç̳—qð©Ç¨r©¡“ ˆ’&Á*5C…˜¹ô%÷ÝÑE<o}OKxZû+ÇÐǧ¤¸O|â àû>¶mSSS3ÎËÖö’‡([4_‡®ÇC)É]àf|âQIzH±sK3tOŽœ~W¶ýÐÞ’ûHö–·¼…Å‹“Íf±,‹ÊÊÊYÅ‹@bxïG«¸ü£;yêσ,9ÞÖŒÜD - î6¾0˜tH=o½î=lþÝ‹¬¿âvhl â#ï&9£…ŠÖ‰ø¦‰‡‡AÔˆ ¥À&†ð1…«Ú´ºÆ®†^l§ó¾¿ Ÿ]KË[ç²ø¶S3¹’Jc›4=ñÛ&‹MVÏ>W=ÛóMY}^X3ÄC÷ôòÅï·è–Ð…Ì\”™úþo’ýGrÉ’É$Éd²|ÒF´ðÔ%[ÿê@Dõu¾¯³Ü=b¶GvHÇÐ 1t©âË6ÎýMÎÐ#‘H‰0Û¿ÊmV<½¡ÉäÌOUs纙>?Nm‹Ô_µ¡›1¹ô8‚ÉHU­§MdÊQ“hp/\{+]½i’s&R»|6 g“˜9‘L¨×K¯o€ôÆm >÷2=]OzÓv¢5qÚŽŸMÛy§Ð0³š¤‘"Âv⤰pI2HœœÜ}QÝ.†êIßùÊ ·|õU>tqÓçØz`Ká®RÖèÊ ýuô²†™q¯¬t#`èiˆÔ€ïêÇàe=bèïQ Ý c)3ôqº˜Ç˜áú³ŸýŒÛo¿ß÷™2e W_}5uuuÏùÜç>ÇK/½„”’x<ÎE]ÄŠ+Ø-y¦ªò !9æä_p¸ö’\z}+‘ %wYxøÈ\ã™AŒ4.6&Í­4~p³ÏZBºkˆ-ÝBç£/Ðñ«¿0Ô™Â÷$Ò´Àó°"ñ†3™{ê\š—¾D]”¨PV" #M–8)ÕWžŒ~ÌÉ1t+4"µ{§Ã·>»cßUÉ1ïHŽëžëe†>Š= èñuëÖñÕ¯~•t:M"‘à’K.aéÒ¥Ϲýö۹뮻ð<ß÷9ãŒ38óÌ3Ë€¾ïÝÔ·º«“¡ºŸ†X dÃ61¦«jõ´ÄyFî…Þ­lo^†ÞÞÞΪU«øÒ—¾Äœ9s¸ú꫹í¶Û¸è¢‹ Àú}ï{“'O¦¢¢‚ûî»o|ãüìg?+˜¥~ º‰ÄSc ø˜Þ~%×^ÚÅ]ÿ½‹3>×H$aåRä¼\CUuk ±qñ0‰‘R /ÒÈzAó»[ñß5ŒEº'ƒëHJ}}=Çw&LଳÎbõêÕ3ÒŽ>úhÚÚÚhhh`îܹtwwçF)Ø+Oj]YUÉÅßh`Óú ·\݉ïúz©§Ç«º9¦Õ 'E‚! QÁ  PÁ•b€úØ Z<&MLžf2iŠ ¥Ñ£.:H5½TÑG$ ‚A’úH0DœTîˆé8zôªw»ÇöM)®½x;“¦Yœ}I‰ú…ÿgèÇJ7Ò’ÜwìØÁ /¼Ài§FSS§œr lܸ±àm.\Èœ9sr{@___™¡ï@7KðiW#tP¶–†hÜ4†miÕ]bH“–Dͼ\ãû9U¾lã¡ûiÈì©ØÌ=ÔÙÙY ¯·¶¶ÒÝÝM:.ùö½½½Üpà ¼ë]ï:`Ùy1SÈX¯¨\ôõz~ø_ÝÜòµÎøl•uvŽ¡«#(S‰rY$Bw˜d±C1w¡Ù½¡§•#ZýøæG º¹[?ÄÆìÐcÒõXÿ·V]µ“cßUÁ)©Æ¶¤ÞM|í臽 æãš¡KOí¾^׃»€©¤Ói,Ëʱñ Ñ|÷îÒ]0Çᦛn¢­­ ”ýyM·Í|G1tO1t!h›@6­z„)G–-Û~ èÎô¬WçÀɳo˲ ˜v6›Å4M c¸6“N§ùêW¿J"‘à‚ .(ãÊF%‚Ö)Ÿ¿¦o]²‹~y'ÿj5-B?K8> Oººu°‡Y”LgLtË‹ù~n„k>{]•¢ƒc,ä&]_^·›?ÿo/¾¸–£ÞÇ´òn1órŠqÈЇ9õ.to„l—ú}` p˜:dž”ùsìyRÊ=®ï;3{ï½—ï}ï{ÿüøÔ²Ðõ S#ÂS­_cqȦ0"fnà‚À)ô´¯FºH¿<.uÜ-æb%ܬƒú“ò¿wÝûqÖ¬Yüö·¿eppd2É3ÏÜËTTTpÝu×qÛm·ñ«_ýŠ /¼O<‘žž¢ÑhNz—R2mÚ4n½õV@õƒ¸úê«Ë=! s°6‚tµ£¶ä-ä˜8¿üŸ>¾øÞÍûžJN8£†ºÖB(f®NŸ©ý2+ô¥Ú¹äñp[¸í¬ô$[^LñÀ]}<ýÐËVÆùÎÝ-TV›Ú É·}-vNòŠCÙÆ¥J7ÒÍÿhÛ6_ùÊWXµj?þñ9âˆ#8í´ÓrÒû®]»8ì°Ãx衇x衇°m›}ìce@ßwV<œÅ,}—Š¡g0#–bBÅÊ3iˆùÍ>åéT:Y¨â”—ø8`èÙÑ:¨D¸ÿ÷/¸¯¦¦†+®¸"÷û·¿ýíòw; Pƒ`Pž4Ÿ©¬²øÐ…ÕvlŒ{ïèçkçmeá‘IŽ}w“¦Gˆ% º_Ý{’êvÃIDATÜó¿+¦í¹’þÏ¥X}wÛ^vX|dŒË¾ßÄ´9–™×ØÉ~¸ÚPfæãž¡gG±O„̲,Î?ÿüaO;ï¼ór?Ÿ{{î¹ÃžSô}ÎÒ }냰ògÐwT–»“ƈÚzFªÚr2H„²ÜS®bèbŒ×Q9…f?ô7ù<ôñb*.žgê>€ƒ—ØÌ[\Ç+}Vÿï?ø÷Ä«,YgÑQI¦Ì¶‰Wä;Í ^ʾ¤c«Ã†gS<÷hŠ<•¢®Apì;+øäÔPßl…Ü/Ø)ÂŒœºP¶79C/wŠo€nª³Ô  OM^‹ÄÀIcÆ,~N¤Ï¤¡Î$§«’ûX½ìÛ Øûc/fêÁ2m›iqöÅ5¼÷£•lXïñÄCCÜ|eÙŒ¤¶Ñ¤¾Å¤ºÞ¦q‚Ee­I,!p³0Ôï±{‡G÷.—®—Îí.YGÒ4ÁbÁ1N=·‘æVƒDRH2Å€f÷åòÔ7¡c?Ò>Qôý”®?,«Ý@•­I"6d31 |µ ©zÔ̟씫’â‚~se G 9ûÆ-æ²–©ËÐ×oäÖ0 ®^°ôh›Ã®&“lowÙÑž¥s‡Go—Gû߇è•dR>¦-ˆ'u&&™Ì_§¾ÕbÒ4›ê:ƒ Ú°4xË#—ØzÙ §¾ÌÐ÷W@ß[Ñ€£JÖ }…†È¦±jl¤ç! •7—΄ÊÖ|H{ õu/ qãÐßäÓÖÆ'Sþõ—’¿£Q‹¶YêÈ=ßW²º ž'†^·¥;Ϻå^•ƒ²½ImÔöUêÖoà¥1£&d2X¶ºÛqBek@Ƈ˜£Z¶2C/Ûëgár0¿(‚m” VÆkèÁ\ ØFHV/ƒùÀÐǘWôqÀ r’;¨ÖB÷owÒ1™Ê`G „¤3‹äü´Õ¨NqeG6Ʋµ²ýk{!{â×s7(y™¡—ú¸¶l^ržrõMn+jA:C$">d³’ ˜;n®|ÉëÅ¥,Ãï· ÝÅ‚/Û~a{k­ÌQ­“`ìåÄ–ÁücèåyèoR@M_[>²Ï¯¾b¡Ü4ÃÖoá+†þÿ·wæÑQ•wÿÜY“I†l#$1&LØQYZáRáÅ£-PŠT<#´…²´K5`)”ä=µ †"’UÁˆ¯4(’h 5!@ØBÂd_&™¹÷ÎûÇLnfL …8ƒ÷{Μ3s—™gžç>¿ïó[® 8£§­½QÀ)º5t‘q¸k¹«ðC ½=¹®¬ß½¶ƒÎNu¦Â‹ÐÛÓÐUB÷RïøZÝû·|èn ÝÑ„ÆhBªoBoÐ ;¢GÚ. ](?ÕÐåÎÍÀ’’þñPZZÊøñã™8qb«[òóó9räL:•GyDíkšõ*Txz'Mê¢(²}ûvrss4h?ùÉOöº¦²²’ôôtΜ9CŸ>}˜={6ƒAÝœåÎÁ3']ë"t­É%À5h´ ÀnèÃikÄ`DÑÐ÷ƒ ‚C ¢¤ÂZ³änC]])))‚À¤I“ظq#{÷îmuÝ7ß|ƒÕj¥°°3gΨ§BÅ]‡ÃÁªU«øüóÏ™>}:'Nœ`ÕªU­®³Z­|óÍ7466rôèQes&Uñë²u¼ „  ]p…­;ìhŒ:ä&‡KC—i¥¡;du ¾ÈÎÎF’$RRR âúõ뤧§ó裨\÷ä“O2yòd–,Y¢vš wJKKùàƒHKK#..Ž   -ZDYYÝ»wW®KHH`ݺuìÛ·wÞyG9®jè·ž~sO4‚Æäz+7›ÜEè]yèF£ÉáÖÐ=òÐíNÕÕêŸðÜïF¯œ={–˜˜e×´AƒqáÂjkkÕ®T¡Âo!wXTWW#I‹€øøxt:.\èÐ/©Š_— vh]<ït›Üe AÑu8›è $DѽۚûV5(Î_ÑV"úU`¿ëyà›–«EQÙ\Û%J’„,«Éê*Tø/™[4¸e@‰ûóçÀ ®«eÁ£ì V«EŤ®ºÏ ´.w:vÐ\´È"† ØíMNd‡§ ºætI%ô»‹Ð#€Ÿz|>­¼³X,TTT(ŸKJJ # @íJ*îB×ÿãñ¹%à-00Q¯ªªBE""":ôkªÉýŽBðx¹Mî 5‚>d$m€g“ƒQ@ÁCICv—|Õ9[WŠSóÏýÐÛyµ¬¼GŽIyy9YYY”””°sçNÆŒC@@ÙÙÙÔÕÕ¹–†”••ÑÐÐ@mm-eeeª¯B…Ïz{2 ¥6l=èׯ{öìáúõëìÛ·‹ÅBïÞ½ÉÏϧ¸¸XÑäËÊʨ®®VäAcc£ª¡ßY4ïÀæŽr×]oåFÐ\)9Ð5`w 7€$‚FhñÀ7WäÖQí©Y â»Dçvg‰åÙgŸeíڵȲLll,³fÍ¢²²’ääd¶oßNRRŸ|ò «V­âܹsràÀ233 Q»\… ŸBçj¿šÍf–.]Êï~÷;vïÞÉdbÉ’%hµZÖ®]KÿþýY²d õõõL›6òòrJKK™5k¿ýíoUBïZmÍÝÝ’ ô²AѺ*Å›5tM‹úmwo¯¦÷ÿªVîO«s©¾3fÌ`úôé.ûއ/íôéÓÊçG}”qãÆyÛ‚5KZ… ß$ôΕŠ0`ééé8N¯y½uëV/â?zôh+ z—jkn[ºÜ:#‚ìYDgÔ‚ÝÁ²èD+´pCr™Úõ†j\õ§E\çËDµEÎß>¦¸ þ²¨¿µbîíÍñ¶Î«„Þ•„.è\VxÑæ2¿»´Z¹Éáò¡×»|è‚[Cw¸85(Î_ ½± =*Tܽ„Þž pܶ_S ½+…»Fë&ôF4ºJ¿éthqÚŒ Õº|èxºS(ÿ]Ä©û§ªPñ=F×ò㆖ 8/“»Ôz#ÖEèMvWa·]p? ÷ZUôû©†®º ßo ½= jè~BèZZ2¥–î–í 3#È"‚^‡à©¡Kn ½y¨e—]‹jœõO ½ ·ZR¡B…jèíÉ€Û'ÙUBïJá®ÑºUmèôhdè´¢²L€Á‰ä'·˜ÜõîÇùÓê¼sQî*T¨¸Û½= ºBtÅ n ]«Ñ:N‡A–15-&wº§žßüˆ¨EeüZJ¼ÞùɬB… _\Ô·'T“»AÀ{«Ôhè¢ z48@¯‡ˆà”1d—†Þ\öUR#ÜýªÉ]… •Ðo-mM%ôïŒÐ;’, uÇǹk¹K.“»lÁ)c0hqˆ.ŽW¢ÜeЫ)Ç~ŠŽÅ©º w7¡ûP”»ÝnçÒ¥KTUULbb¢’Ð.Ë2%%%\»v€€Ñëï}Ònã÷5ûQš+Å9@«G#Ûq굇[C—©ht wm—Þܽàr‘ûΛüpuv»{ùnÐÐm6çÏŸÇf³Etttë;d™«W¯ríÚ5‚ƒƒéÕ«ÃëI§ÓÉ•+W(// 11ÑköÊÊJŠ‹‹¸¸8BCCý~äêëœ j›Õ6ßÙß9 ]–eΟ?Oee%áááÄÆÆ¢Óµ–î\¼x€Þ½{c6›Ûç€sçΑœœLCCQQQ¤§§+¤]PPÀ²eˈ‰‰áòåËL™2…Ù³g{méŸøØÉ{<ÓÔ´Ú»¦Eh î¿…{R×ÐbŠ×તo),ã&tdA×BèF°5A€¥h»ÃÙ1zí÷¤—ý 3¹çääðᇲeË¢¢¢Ø¸q#¯½ökÖ¬ñZ¡ÿéOâ‰'ž`æÌ™0gÎ&MšD÷îÝïÈ¿0™L¼õÖ[Øl6üq¯séééØl66oÞŒ(Ф¤¤‘‘¡Ô£÷WX¯Ij›Õ6ߦE}ÇóЭV+k×®eÅŠ >œcÇŽ±~ýzÆŒƒÉÔ²ðÙ½{7ƒ?ÿùÏ f̘Á‘#GÚß>U«ÕÔʤW__Ï… :t(z½‹ÅBxx8W®\A¤Ž{@õ-š»ì Š$‚NƒÓ!"8õ2M0´Üéïv³ô÷ÐoöjYçååEll,z½ž1cÆðõ×_SSSãõ­………$%%¡Ó鈊Š"""‚óçÏß±!&“©Õ¾ì¢(òå—_òÐCˆÙlfðàÁœ:u §SÍÁP¡¢…ÐoöjÑàËËË©¨¨PæwRR’b‚÷ÄÉ“':t(f³£ÑÈàÁƒùòË/ÑeggóÅ_´IäÏ<ó AAAmk„µµH’äµecHHÕÕÕߺ²øÌÏáb ù¶©‰{ú|´/ .úÕA€pkaW |+4BÍ o/Žš¸p–¯Ó T\¶±s³üÏdìuðº N×CïàòÄTÓ’ %ºß‹Àw œ-ʽϧµÝ¬—}e¾ãp¼=EyWUUå5Ÿ, µµµ45y¯ð¶Á` [·nX­Ö[þ_%%%dff¶ynìØ±ôéÓ§íåŠ(RUUEDD„r,""‚3gÎ Š¢W<Íù‘´×ëüf¬¿ø?;†€:¿’Zj›»Åg;ÄVÝpIy×ÔÔ„N§C£qéÚf³­VKUU•×ÍþuOY‘——‡®©©‰ÚÚÚ6 ]–oœRˆF£¡¡¡ÁKk÷4 ìß¿ QQáiªüßÖ§Ý.’Çy¤vœOáF Üo£W¯^œ8ñfûvM‹‘Ìd2yͧÚÚZ[š ìv»Bª ˜Íæ[þO’$µ)ŽçÈ6[ï<ï­««Ãd2µòçÿmÃG~5ÎùáÄSÛÜ5˜8¸ãA|o(sõfèß¿?z½I’ —ÍfC–åVr'88˜úúz/Ya6›Ñ=šÑ£GwúO…„„I^^ƒÆf³QVVÖ**wèС* ¨øÞÁd21bĈNÝ3`ÀvïÞMEEáááœ8q‚„„ºuëæu]ll,EEE<ðÀTTTPZZJBBÂ-·5&&†¥K—vú>½^Oÿþý9}ú4²,#I999 >Ük¡tº/T¨¸0xðàN]ŽÉd¢¸¸˜PXXˆ,ËôêÕË[Ñ4ˆœœ:ŽÓ§O3yòd´¿ÿýﳨ­­eË–-|ôÑGäææb³Ù ¡GtïÞ¿ýío”••‘––Æ AƒxòÉ'Û ±W¡BÅÍINN‡&??ŸC‡±dÉôz=S§NeÈ!X,ÂÂÂxã7°Z­ìÚµ‹aÆ1a„;š]òî»ïrðàA>úè#‡ƒ^½zÇž={ÈËËãØ±c\¹r…eË–µò·«P¡¢cŠ€^¯góæÍ\»v;wòÄO0räH/^Ìùóç2dñññlÛ¶¢¢"Ž9‚ÍfcîܹÎv¢WêëëÙ³g—Ù`Ô¨Q$&&"I_}õ_}õ!!!Œ?^ñíY­V233ÉËË£_¿~$''+÷755qðàAŽ=J\\sçÎ%88ا:öòå˼üòËÊç{ï½—E‹µÒ–¾KH’Äž={8~ü8}ûöeúôé^~_ƒ(ŠìرƒãÇ[|J?þñ™8q¢OµS–e²³³ùàƒ¨¨¨ 99™¾}û.Xff&Ÿ~ú)dæÌ™­ÜLÿ ªªªøä“O¨®®fàÀ$%%ÑÐÐÀÁƒyä‘GG’$rssÉËË£G<üðÃvÜ*öíÛGii©ò¹wïÞŒ5 ­VËÅ‹9q↑#G£Œwff&999èõzRRR¸çž{”ïøì³Ïxï½÷0Ìœ9“ÄÄDŸzjjjxíµ×(..VŽ­X±‚¸¸8Ÿ›Wiiiœ:uŠx€©S§ú”œú6šššØºu+Ÿþ¹rìÙgŸåá‡ö©vqàÀþóŸÿ0qâD&Ož ¸2¼>þøcöíÛ‡Ùlæ¹çžSžùÛ%>þøc.^¼H||<Æ # €¬¬,ÂÂÂHJJÂétR\\Lvv6‚ 0zôh"##Û'ô[E~~>o¿ý6µµµTUU±sçNåÜæÍ›9tè‹/æØ±c²iÓ¦ÿÊx»‘››Ë /¼Àúõë % €ØØXŸÉ±—$‰¿þõ¯üûßÿfÁ‚dffRRR¶mÛ|z"/X°€Þ½{3eʺwïîTå °ÛílÙ²…ÚÚZÒÓÓùãÿÈØ±cHMMåìÙ³¼øâ‹ìÚµ I’X³fßç]ß Ô×׳zõjÂÃÃIKK#==]1æææòóŸÿœE‹QSSÃÖ­[yûí·[åÜ—¸víÏ<ó ¿üå/¹ÿþûèÙ³§OYk×®¥¸¸˜9sæ°}ûv ùË_|ö¹¨««cΜ9Œ7ŽQ£Fíê 8räYYYäåå1tèPV¬XÀ§Ÿ~ʯýk–/_ÎÅ‹ù׿þÅ›o¾IddäwÞfÍúâþýû³nÝ:Æ׊ˆöîÝËóÏ?Ï~ðæÏŸOAARñÆ—`4±X,DGGãSsØ·oóçÏgĈÌ;—sçÎùEÚ`³Ë&66Ö'- ƒ_|‘… Ò£G¯g÷СCÌ›7aÆ‘’’Bvv6*{·   ^}õUæÍ›çuÜét’‘‘Á¸qã˜2e O?ý4÷ß?‡ö¹ÿ Ñh'22ÒçÈ\iN‡fñâÅ >œ””rss½¬)¾ŠÐÐPzôèA\\œOZÆÏ+¯¼Â Aƒ¼´ç;v0}út{ì1ž{î9L&'Nœð絫Ðjµb³Ù”•z`` ¡¡¡\¿~Ý焺N§cåÊ•L›6?üá7Œþ.ÐØØHuu5QQQ€ËÿAAAÏN`A¸ï¾û8zô(ÉÉÉ<ýôÓ=zÔgÛûmãÕµk×ÐjµJàgHHz½¾TM7ëÇÆÆF%¨O´Z-‰‰‰Ý4³¦«¡Õj¹÷Þ{yýõ×™={6sæÌáÒ¥K>Õ·µµµØívÅ•K@@çÎóÙçA£ÑOFFsçÎeæÌ™œÓß·Dè†I“&µ9aµZíMÍ'¡¡¡8N*++•ª©©éò FŒqC]tt4ƒA)¥LBB‚O¹ôz=:N):RWWG]]Oøqn¦¡‡……)Ÿzè!6lØ€$I~‘a±Xð¬Ûàp8°Ùl>€t'Ñ·o_V¯^Ýæ¹›ŽFÂÃÃ)))QŽ•––Ñ¥n-‹Åâøê‰ÈÈH´Z­¢ù3jÔ(ÒÒÒe¹UZÞw£Ñ¨,ÀÈ穱ûª†î73bÄÞ}÷]dYöù}@L&ݺuózv­V+ >±¹%)*ÑÑÑmîÕ Q©¬¬¤ººšÆÆFJKK Åd21dÈÞÿ}âããÉËËÃh4ÞÖ(ÁŽ ""â¦ÁX—/_VðêÕ«äçç+Q޾€   †NFF?ûÙÏÈÊÊÂét* |UÃ=wîœb½ùðÃ‰ŠŠòI2oæljj¢ªªŠŠŠ ÂÂÂèÓ§‡¦{÷îdeeíµHù>Ál63pàͷש¨¨ ªª Q±Z­ÜsÏ=˜Íf&L˜À;ï¼Ã¸qãhhhàôéÓ¼ôÒK]N†7kUUååå„……QSSÃxðÁ}†Ì›%III¤§§óÔSO±ÿ~BBBþ«ºw\¼xQÉØ8|ø0={öô92ožûuuuhµZJKK±X,üèG?bÏž= <˜òòrŠ‹‹Y°`o(Mw*ʽ¸¸˜””Š‹‹¹~ý:ýúõã•W^aôèÑ‘ššJYY‚ °dÉFíSeÇŽüóŸÿD’$dYæñÇçù矿­)Jÿ-ŠŠŠxùå—±Z­F^xá&L˜à³¹¦¦†_ýêW\½z§ÓIHH¿øÅ/|²èȦM›Ø½{7ùùùÄÄÄ0tèP6mÚDaa!kÖ¬¡ºº£ÑȲeË6l˜_¸ ¾ Ì™3‡‚‚rsséß¿?Ó¦MSÌÜ©©©œ:u €‰'2þ|ŸZÜ}ñŬ[·ŽššdY¦gÏž¬\¹Ò+PÒpæÌV®\©Té[¸p!?üá}ö™())aùò唕•át:±X,,^¼˜¤¤$ŸjçñãÇIMM¥°°PÙxûöí„……ñ›ßü†³gÏât:™1c3gÎô‰Éÿ¡‚i?Êë’IEND®B`‚pymvpa2-2.6.4/doc/source/pics/confusion_matrix.png000066400000000000000000001454051323370031300222250ustar00rootroot00000000000000‰PNG  IHDRôºqæ#ÁsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEØ 2ñšû IDATxÚì}w|Õúþ{ffûnv³)›Þ ¡†Þ =ÒQAA@PÔkãzý©WÍU”¢*_”ŽÒ¤ !¤Ò{Ûl¶·™9¿?Ö(f£Áy>ü±ÌnöÝ3çÌsÞóV„1þN iúÂ… ÇGµ˜ÜíÛ·GGGwêÔI˜÷áø»ÁårmÙ²åÃ?la¹o¼ñÆ®]»„û/àþ%Ü7”——WVVÆ3gÎ „"##ƒ‚‚****++Íf3BÈßß?&&F©T€Éd*)) ¨¯¯¯­­ ILL4 ùùùf³Y©T†††644ûûû#„ÜnwYYYee¥ÓéT(QQQ$IfddØíöòòò3gÎH¥Òˆˆ…BQZZZYYér¹$‰N§KLLfG€@îÜ%~ùå— . †+V „}ôÑ!C†lÚ´)==Ýb±¸Ýn‰DòðÃOž}ëÖ­ýúõ›5k–D"Ñh4|ðÁ`x饗âããÍfóÕ«W…© »wàààÀÀÀÊÊÊäädCuèСYYYYYY.—K­V›L¦ÌÌÌÎ;sïŽ7.55U.—[­ÖO>ù$ `öìÙAAAœÝæØ±cÜÇΟ?éÒ¥wß}7::’““ãããO:õð÷iÓF*•%''€ÕjecL„¿¿|||×®]…© »|¢¡¡aÕªUééé~~~J¥Òh4Ò4m±X<ˆ•Éd@ÓtYYY@@€N§ãÞŠŽŽöññá^geeÆo¿ýÖã8-,,ôõõ¥iú‰2™lôèÑUUUË–-Ójµñññ?ü°Àïr €O>|xÏž=sæÌéÒ¥‹D")..ÎÌÌdYö·uLQœŽ‰Dn·cÌ]q»ÝžO¡Ñh¦M›Æ)õ”J¥g'ð€ ˆ~ýú…‡‡çææ9räÅ_\³fMBB‚0r à.A’$˲4M‹D"N¿–J¥}ûö‹‹c¦°°P¯×ßòE"Q»víöìÙ“““Ó®];8þ|mm-÷nçÎY–%IràÀ·x(ª© /•Jãããûõë7zôè=zœ?^ w¹ p·‹’¢¢££·lÙ²víÚøøøøøøÐÐЪªª;wN˜0!++ë7Þø£ä&©T:vìØÍ›7ÿç?ÿyì±Çêëëøá‡††¹÷èÑcÉ’% ÃôêÕËáp¤§§«ÕêÁƒ+•ʈˆˆtíÚ5 @.—Ÿ9sF.—÷ìÙS$íÙ³„Ù »w ±XEQ°hÑ¢×_ý¥—^ Ÿ={¶^¯ÿßÿþ§×ë1ÆË—/ïׯŸ0;Z P~@@kÁ`°X,AAAœ­æÀ²¬Ãá‹ÅE9Îï¿ÿþ½÷Þûâ‹/zôèÁéûc«ÕÚØØ(“ÉÔj5Çì·„ÓélhhàÈýÏ…  hîÜ%|}}}}}oû1“É´wï^‰Dâëë[^^þÍ7ß$''GDDx,9!¥RÉ%¸þ9$Ipp°pçä.@À_ŒqEEÅÑ£GišF%$$Ìž=;00P¸3þQÌ2îC8Îêêj“É$—˃ƒƒår¹pOä.@€Z=„’¿ »È]€ä.àÖ0›Íÿýï8àqœ;wî§Ÿ~jZ9ëÞQ[[»zõêÝ»wÛívÜ%K–ðî•Y½zõªU«<õ^***vïÞ]TT$L´¹ÿ³àt:ׯ_ÿúë¯ñÅ\]ò¢¢¢ÌÌL‡ÃÁ£“ÉtòäÉgžyfÅŠõõõc»Ý¾sçNÞÉýçŸNKK{î¹çêêê0ƃáÂ… uuu÷ÇdaŒ‡Ëåâñ;Y–µÛív»aÏE—Ëů—Ëe2™, ˲\öVCCƒÍfójÌEmmmeeeÓp¼L˲ÜÏæ–qcc£Á`ðh-ÿqî­ƒ/"""þõ¯}õÕW Ó§Oç÷að ...99ùèÑ£z½~îܹžœ~Þ±téÒ­[·ÎŸ?ÿßÿþ7W«ë¾‰ÚjhhøþûïÃÃÃGŒÁ˺Ýî³gÏîÚµ‹ ˆþýû÷éÓÇÇÇ!ÄU-ž0a/R,ËŽ;vîÜ©ÑhæÌ™sìØ±õëד$ùÀ<ûì³7Wͼ;Øíöššš¦[ÔúõëM&ÓÌ™3ƒ‚‚|}}I’¼w)F£±´´4**J¥R|ùå—§OŸfYvÀ€óæÍãk,¹ à"‘hРAAAA«V­úôÓOårùUκGôèÑcôèÑ .\¸páã?î%Î ]¶lYZZÚ{ï½×»wïVªRUUU566Þp‹êëë/_¾Ìcd}QQÑ‹/¾$•JOŸ>=räÈ©S§åääð¸N:µyóæððpš¦-ZT\\üì³ÏºÝî={ö|óÍ7/½ô/²._¾üÜsÏÉd2O-‡²²2·Û™™9~üøÇÜSyÿ^PPP°nݺ9sæDEE}üñÇùùù£F"Iò‡~°ÙlK—.%ˆ„ÅB ÷V’$ûôé£P(>ÿü󃦤¤xIPbbâ²eËÞÿýwß}÷æ.¼€kž7þü/¿üróæÍ­qF6mÚtâÄ ‘HÔ”øG}}}=ø’ròäÉððð¯¾úŠ$ÉC‡}óÍ7.—kúôéž‚õ¼ °°°M›6/¿ü²J¥JMM1cÆ“O>ér¹T*ÕþýûN§T*½w)*•Š+æÓ·o_®Äæl6Ûˆ#:tè ‘Hø ‚‚‚úúú—_~yРA$IvéÒeþüù&“I£Ñä.ào™L6a‰D‚JNN~á…6mÚÉïàÑhzõê ÁÁÁï¼óÎ'Ÿ|b6›yÎÈ‘#¹£±N§›={¶N§«ªªò÷÷oš»R©ìÖ­[Ó‰0™Léééú¨B¡àñ¦¹\®úúz›Íæçç§Óé8kORR’H$jllÈ]ÀßJ¥rîܹž³dBBÂË/¿Œ1æ÷yð÷÷>|¸ç¿>>>¯¼òŠÙlæý ûÄOxTN??¿)S¦8ŽÖX! **ÊßßêÔ©Z­Ös±¶¶cÌã¾uäȧÓ)‘H(Šêß¿?EQ+W®¼té_wN§®©©1›Í …âñÇš¦M&“X,æ…Ù¹[×®]###÷îÝûÓO?]ºt©¨¨Èç¶¢¢¢ÿýïc³Ùì‰;0™Ln·ûN Æ äþ·†Ãá0›Í¾¾¾ž‚®&“‰ ~§Ön·[­VFÃIá"%œN'_ªAiiéÖ­[oÓ¥K—ð‰ÕÕÕ»wïö´+jŠÀÀÀ™3gòrü·Z­?üðCYYÙÍo…††6,$$¤u­±ÔÔT®R|Ó‹>>>cÆŒáq™uëÖíØ±c555pÝ:'‹W¬XÁ]áÝ»w×étÜ2ö´©r»Ýœ—ß3¢¿¿ÿ#<’””tðàÁÌÌÌáÇóë@ ãú´p§^OKÅúúúþCÔöû™Ü³³³-Z4vìØ‰'rîŽ;|||ÆÇ£”‹/®\¹²ÿþ?þ¸T*eæÜ¹sÏ>û,_›G^^žÍfs»ÝeeeãØØXî­¦Q÷¸q´{õêU‘HÆ=ç\ä%/ iº¤¤$//ôz}AAÇ0Í0Lkô©ÆÆÆbŒo8ÙH¥Ò¤¤$¥¿ð ~~~ž+AtïÞýí·ßæ1œ)!!!::ú‹Å}ûö%‚wï½D"áTøêt:~7€€€G}ÔQæùò„„„çŸþOÊ÷ äÞ:`4¯^½º}ûvƒÁ0cÆ FS^^ÞôøÌ ƒÃáøüóÏËËËÿûßÿbŒŠ‹‹y<’¿ùæ›,ËšL¦ï¾ûŽeÙ9sæxl5|™eBBBž{î9·Û Ë—/W«Õ&Làtϼ…÷h\zê©§œN'œ>}ú³Ï>[¼x±çñkúB!TSSS^^Þ48•$ÉÀÀ@NÇK’$#"",ËÅ‹¹9jzJðóóã…­D"‘H$2›Í%%%M7Z„T*åÑnFÓtff&ç«§(J¯×ëõz¥RÅËvE„T*u8eeeMß’ÉdJ¥R­V ä޺ѵkשS§._¾Ü`0<÷Üs^’Ò¶mÛ§Ÿ~zÑ¢EÏ=÷Ü{ï½Ç»‚Ãy89/˲ááá¼A,{Ž®>>>¾¾¾aaaœGp”ǽÎÏÏ—J¥ÞKËãàÁƒ‹/®¯¯W©T Ã8®¥ß AƒÞxãèèh^¤äåå=óÌ3EEEÜ—Ûl6…BÁ²lTTÔ‡~صkW¾¤¼ñÆçÏŸ—J¥‰¤±±Q*•ŠÅ∈ˆ×^{mÈ!¼8`Ìfó¼yó¸5 ‰¬V«D"!Â××÷ý÷ß6l/c©©©IKKÛ±cAr¹Üc••ËåóæÍ›>}ú}ßZë~Ž÷‹Å|ÿý÷sss_ýõÒÒR¯lÕ¶mÛmÛ¶ÕÔÔL:UH£ÿ§¡C‡aaa¼råÊ¥K—–,Y2qâÄuëÖÙl¶Í›7›L&^¤h4š¼÷Þ{—/_ÎËËÛ²eKÛ¶m÷ìÙ3tèЗ_~™/£VdddHHÈ|••µsçÎÔÔÔ>ø`Ĉ›6mÊÍÍåë‘é۷﫯¾zùòåÜÜÜ={ö 2dõêÕO=õÔ³Ï>ËíîþþþáááÏ>ûlzzzNNÎÅ‹‡:þü ìÝ»÷ðáÃ÷ýʼoÉ]$©T*„PRRRZZìß¿Ÿ÷ÄN±X,—ËI’T«Õ_~ùellìgŸ}Æ£Ñét–———–––——s)Ô¥×ÑÐÐÀ×p\.Wuu5÷µF£Ñ`0”••qÿ­®®æk, ÃÔÔÔp_[[[ëp8''gÒ¤I"‘¨  €¯SˆÉd8p`pp0I’AAAÏ?ÿüÆ{ö왜œÌ—Á,ó ..n„ Ü)2,,ìý÷ßß´iSrr2¿RÚ´iÀ™§Õjõ‚ ºuëÆcÈvAAÁ’%K¬V+MÓ\Œ]NN÷Vjjê£>ÊKF_yyù'Ÿ|RRR½¦(*== ŽŒŒLKKãÅìn6›—/_Îý~£ÑXYYù /po%&&>ùä“\ø]«B¨¤¤¤±±Q­VÓ4]SS£×ë9ý”߃¿Ùl.//‹‹#¢¡¡¡¦¦&::š »ä%kŸC}}}MMM`` I’œ›$I‘HÄWP,MÓ4M%&&’$i4kjjüüüx‹Ùl®®®¶Ûíœ >//!D„X,þ'$©Þ‡än³ÙŒF#DGG7U<|ðA^¨Ð#Ål6sv䯯FßfèС<ºžÔjuÿþýoyPMHHà‹;T*U÷îÝcbbn~«iƽŸr:wîì1î7EPPSÓÂHMM}ë­·>þøã„„›Í–žžÎYêÎ;צM^œÞ¡¨¨(­VûÑGõèÑC,geeUVVöíÛ×f³…††òEšœœ¼}ûöÕ«W÷êÕK"‘äææfggϘ1Ãáp„††òU•%  {÷îï½÷^JJŠ\.ÏÏÏÏÎΞ7oMÓ\æ*/&&N÷ý÷ßWVVúûû×ÔÔüøã'NäÒµî{r¿Ûì;vlãÆ·|kâĉC† áEʉ'¾ÿþû›mb±8%%…ÇìA£él³Ù¸EM@\À¥B¡ðD_¸Ýî«W¯&%%ñ WVVÖÔ•JÓtuuµR©l¥È,ËîÝ»w÷îÝEEGG7®K—.J¥R§Óñ¢$ºÝŒ~ø¡¤¤„eYÿÑ£G<Øh4VWW·oßž¯á\¸paÛ¶m Ãøûû6ì0‹%$$„—l&–eóóó7nܘŸŸOÓ´¯¯ïСC‡ Ʋlqq1Ç뢢¢;v\¸pór÷ë×oòäÉPYYÙªõ‰.¹§§§ïÞ½222BCC=»ô<лwo^¤üúë¯ûöíãt꯿þzèС\X‹H$êÞ½{jj*¿çñ´´´™3grJÝnçö•‰'òHˆåååGŽéСC‡8>:xðàŽ;>þøc~ϰ˖-|øäɓߩR©5jT—.]ø%©ìììC‡ÕÖÖzéƒæW€¬¬¬ŸþÙSc ˆnݺñ{eY¶¤¤dÏž=•••žD¼Þ½{6ŒßŠeee?ÿüs~~¾Ç]Ïe„ äÞZA’$G¯b±˜sñ^m®©î‹ÅÞÂA&“M™2å³Ï>[¹reLLÌ?þ8f̘~ýú‰Åb¥¨Tª|pÅŠ_~ùeŸ>}ÒÒÒ&Nœ8iÒ$ÞÉý(..^¼xñ´iÓ¶nÝ:iÒ$ÞóËZ ‡^²dIÏž=ýýý¹{%—ËyWÞóóóÓÒÒ(ŠŠ‹‹óè(üR!.]ºT*•FGGsRB¼gø ®®ÎÓB«Õ>óÌ3M‹ãß;233_yå•ââb•Jå¡ÚiӦ͞=›_³ÌâÅ‹Ï;ç‰ù!IräÈ‘óçÏçQJccã”)S®^½ªR©<‘ñãÇÏœ9“Ç’^åååüñÎ;år¹R©äÖXllìºuëZõzûG“;“ÉT__ï1@qq±ÑhìÔ©R¸„lî©fY¶²²R¯×ó(…+oIÓ´N§ ã4ÊÊJ—ËÊ‹=cl2™rrr²²²JKK¹Ö111ÉÉÉ <vívûÕ«W/]ºtõêU®ûDdddûöí[o¡¾ªª*.ö¼©q#**Šß ž3aÝP2,,ŒÇ’ÂÂB›ÍÖôÐè)4Í Ün÷Í.ƒ‚‚ÂÃÃy´ï;ÎìÞô¢\.ç=Mýo rÁ‚÷åÀrss¿ùæ›èèhÎ?^PPðá‡j4~kmgddìÞ½[§ÓqRÊËË¿ú꫚ššž={òòýN§“ëˆ}äÈ‘K—.Éåò‘H´yóæ3gδoßž—ó²Édúá‡V­ZuåÊ»Ýîp8jjjΞ={äȵZÀ‹¦Ã0ÌÎ;?þøã .Øl6‡ÃQWWwáÂ…ãÇã½p#¯‚  6™LV«cìïïŸÀû^%‘HüýýY–5›Í\;¡¤¤¤€€~•P‰DÀ0ŒÉdr¹\J¥2>>ž÷&*$Irna£Ñèr¹äry\\\pp0¿•Ö)ŠÒjµEq͘(ŠŠ‰‰‰‹‹ƒ îÛh???’$¿ùæ›'Ÿ|Òét®X±‚¢¨^½zñ+%11ñÇüòË/9›û_|QWW÷ðÃóõý9996lxñÅýüüNœ8±fÍ£Ñ8räH–ey,‚VTTtàÀqãÆ3†+*ÂenÞ¼yÅŠä%“¥¦¦fÓ¦M)))>ø`XX'¥¦¦fûöíÇoß¾=_uk[6›mýúõÇçxV&“ 4hÔ¨Qüò»Õj=|øðîÝ»Íf3BcÜ©S§Y³fñë-dfÿþý;vìà\#A´mÛöÑGŒŒäQ MÓ§OŸþöÛo¹›–˜˜8uêÔ¨¨(÷*Œñùóç·lÙÂ…W`Œƒ‚‚f̘Ác6¯ ¹ÿeúTppð/¿ürþüùÇSõì³ÏFDDð«épJÇÑ£G/]ºtêÔ©šššýë_íÚµãëû:ÔØØøÎ;ï$$$téÒÅn·ïÛ·ôz½ÛíîÖ­/š{~~þùóçg̘ɵÝáê\†‡‡¯_¿~ܸq¼ðTaaáÑ£Gç̙Õ¾â¤øøøÈd²ÌÌÌÈÈÈ[·ùûãСC«W¯~ðÁܱcG§ÓyêÔ)NÇoðO^^ÞgŸ}:zôèîÝ»lÛ¶M­VóKUùùù}ôQddä¨Q£zõê¥Õjùå—†††^½zñøà˜L¦·ÞzË××wܸq½zõ >zô(Ã0III<ºyjkk×®]k6›GÕ¿ÿøøøÌÌÌ3gÎŒ1âyjî•••œ9O"‘ôêÕëË/¿”H$³fÍ"Âb±ðâ+§iº±±Ñ“‘8vìØeË–¹Ýî—_~ÙÇÇÇ`0ð•+!•J=¦I­V;yòd‰D²cǃÁЭ[7¾î˜Z­fYvûöíãÆ “H$\=Þ7ð5–àà`‚ ¾ûî» &ÄÄÄH¥R§ÓYZZº{÷n›ÍÖzSÃ=š’’2cÆ Žþ’““—-[–››;xð`•ÐŠŠ —Ë5oÞ<®ò˲õõõÇ犥ð…ììl__ßéÓ§s;SïÞ½¥Réž={¬V+A& W¯^MKKã >,Ë:ÎÌÌL³ÙÌc gyy¹ÝnŸ0a Aƒ¸ô¨˜˜˜§žzª¾¾ž¯HeÜ[¯¿þº§ ³Ûí.--‹Åï¿ÿ>EQO?ý4/‰ÔõõõëÖ­ûù矛ª<––&‘HÆŽËWÀe—.]Þ|óÍÒÒRÎo¦Ñhzè!’$?úè#³ÙÌ׋‰‰?~üúõëwîÜ)“ÉH’dÆl6‡„„¼üòË|=oþþþ³fÍZ³fÍþýû•J%EQ4MÛív­V;uêÔVZï—³]Ð4íQl¹Þã1¸<2È IDAT[Ü BùBˆkŠÝt_áâšø4dS»"A ÃðÙâD‹W1bÄ®ïDÏž=].×Áƒ¯^½:zôh~y*44!ôöÛo3F¥R?~Æ ‹-âw,]»výòË/.\8~üxF“‘‘±k×®‘#Gò›… V«_yå•É“'kµÚìììM›6M:•_/ELLŒB¡øôÓO«ªª¢££«ªªÖ®]ÛµkW«XÿÍq߆BÞ7àBéoP8M‡$I~P ÃÐ4ÍåˆD"/é8 øÝnN¤(ªµw£w»Ýû÷ïOKKËÏωD]ºt™9sæ AƒøÍ iúܹs«V­:sæŒÃáˆŠŠš9sæ„ ø-/òlffæ§Ÿ~züøq«Õ3yòäÇ{ŒßÚ,Ë^½zõ£>:vì˜Åb }ôÑGyä~ƒ¸\ëuëÖíÞ½»®®Ž3ñ?ÿüó­1E ÷kp¹\GŽÙ»woRRÒðáÃ=ºeË‘H4{öìaÆñõÈ;vìüùóƒ Љ‰‘Éd-ÌP‡6C† áÅŠ16 gÏž-))éܹs»víär9B¨¡¡áÛo¿}úé§ùzäjjjÖ¯__RR2uêÔ€€€´´´ÜÜÜ=zLŸ>¯€Ë–˲Ü̲¬ÛífÆù_ÜÖ˽p»Ý4M‹D"~S:oBÓ´Ëå‰D\Kn~‡CÓ´GŠÛí¦(J*•ò^õ×cíaÆétr²ÿ =˜®™¿î¿h™ .̘1ƒ$ÉœœœmÛ¶&&&ŠD¢Ï?ÿ<%%å–€îû÷ï_¶lÙ¶mÛÎ;Ç0Œ\.çÚªñû¸ÝnÎskû=öíÛWZZÚ¥K^¬ Ÿ|òÉÒ¥K/^¼¸mÛ6‹Å¯T*«««çÏŸ?gÎ^år¹þýï=zT"‘¬]»öêÕ«555=zô8{öliiirr²W«¦xùùù™™™±±±ëׯ߸q£Åb‰ŒŒä·0@}}ý… |||(ŠÚ±cÇš5k®\¹’””į9«¡¡áÌ™3r¹üÇüä“O®\¹Éo©‡ÃqèÐ!___©TzìØ±U«V]ºt)<<\£ÑðøøX­Ösç΀V«½xñâ‡~xìØ1ûIýýqÚÜ:4dÈU«V={váÂ…£Fš9s&Bhîܹà1?mÒ¤I½{÷>~üø§Ÿ~ÊõyIII‰ŽŽÖét|Ù(‹ŠŠ–/_î©yíANNާ|ùÄn·Ï;—ßy)..æ2»uë–––¶qãÆ½{÷êtº£G~ûí·|í»-ŒÍ›7;Δ””³gÏnذaèС?þø£Z­æ×ì~ùòåuëÖ-[¶,==}ëÖ­mÚ´Ù¿``àŒ3x”rîܹíÛ·sÍm^}õÕ‡z¨¨¨hݺuo½õ oCC ¶oßž——÷í·ßÊåò‹/*•Ê™3gòhÿ)**Úºuë˜1c‚‚‚Þ~ûíèèh’$,X°iÓ&/ÕÕø»á><¡˜L¦„„®:c—.]BBBH’$¢C‡µµµ< ’Ëå)))iii6l˜2eÊ•+W/^¼dÉ’cÇŽñ%Âl6ïÞ½[*•Ê~~«°Úív™L–œœ,•JxàE‹ååå}ôÑG•••hÐ ¾"%t:]lllYY™çéjß¾ý‚ (Šâ«=wíÚ•¢(ŒqLLÌ´iÓ<›®N§k¥6HMM-((HKK“Ëå½zõª««ãÎ(ü’{dddhhhZZšÉdêܹ³T*½xñ"ïð;vì(—Ë9#ø„ ìv{qq±F£áײ¯Õjûõë÷á‡^¾|¹OŸ> …"//O­Vó륈ˆˆˆˆˆØ¾}ûþýû‡.“Éòòò(ŠB![1ìv{CCà !í,Ër_ù–UUUN§“¯ºŒ~†•J¥^Æq¹\¥¥¥EEFF6õhTUUõíÛ—/7WUU•Ï {RMMÉd k¥%ÝÝn÷©S§ª««’““õz}NNNDD¿õX\.W^^^nnnHHHÇŽ ž}û¢¢¢Ú´iãŒqVVVnn®J¥2dÃ0—/_fY–G÷0^¼xQ«ÕvîÜY£Ñœ:uJ©T¶mÛ–ß§©¤¤$##!Ô·o_î€UXXxËôÜp{~ä¼Ùɲl HñRÂí}<Ü @€ÑjªœWGØŠà]…!¾r³9ʺCÖâQn+Óܯ^½:cÆŒ‹—/"²N`Ì`@d3b´»™·˜¥AbhÎq4×iYÕÜßÖÜÉ- ¯ž^¹ñ7ï>K$ü\¸åìM³.Ws£P˜æŽånoxy^¸ÐÜÙGÍ> À6_¹DÍŸÔ̰fȾ˗/ç¥ùÔc=¶{ÇN i øv· 9båÊ•ž°Iµ>抎Yÿ'uHÆí«Š#•…övßm &Ö¾/È•!ÆÀ`¤"®ÈÇ©p%Sí8¤¢«¸ U1•¥’þ™ÊGyœD)ØüQÄÕ8Ì{+^.TÍbB:7´Ö{$b¤`#Œ‘ $.xƒ| `( °7ˆpk롦}8:§òÈ;ŽŸ3@$7¨ø%²c "ÈT=Ü}Å.1²$Á÷J¨-ÆVà€öƒ+ma«L,FˆÈƒÑ&»±„§‰Ã@Þ.°”…[”Ë*..®ªªâúØ´k×ÎsÝd2egg³,Õ§O·Û]ZZš——g0$I\\\RR’X,æ™ÜåryçÎŒFãÇ\__ÿ¿ÿýeY—Ëåi]È5~t:ûöí öûåË—³³³GåëëÛ´9$Bè;¯£BõæAö…¾LÏP"»ŽØ” rŠ™Ûƒ›Dâl9õs{´=”Ä:ã lsu‡A“Õf"Hµ2»^ä¶—…öeIQ\ÁÉk­rÿš€Žw»&XºÜB5ˆâ”tuë¶œVÏw#™‘ w!%ÈÙú®æÕ¥’þ¼åÜÐ˰U„\^ÕvÕÈ 3¤ Õ‚\X‚‰ÁÁˆö‰]×@ `h Z]Ê RD¶Å{Ä× æ!ÀJ¨#€.‡.vP€üïIi 2± ò‡+•¸úú9»Âg"°_À3$È”» …§hس;2¹Ü2‰é§Ÿ~ÊÏÏ?qâDJJÊûï¿ídc±lݺõرc‰„$ɼ¼¼>}ú466îß¿ÿüùó"‘Èd2¹\®_|±G<“{jjªçuzzúÍÝÙ/^¼xâĉQ£F55ÑÜ€úúúU«Vyv‚   ‘#GÞ‘øz+˜ø‘l€(ˆcÅPo½v‹«-èë 0%Ÿ.æa¥²txùI™ÃPЮr«÷ks¬ï4)A AõøõSsÅ]“;‹¨ åtš²@Š±Í—ÎqþJ`ÚJʆqŸikÝj% eCx<øû€á@rÓÞ[ñr°Ê°ÕZ%˜ZµEÕÅnp+€R  ÜÞ wHH¸( [ã2A° ËÁÐ>¿á-$NPZÁß þ̽áìàû <§ƒË8ÇC˜r¨ †‹ÇàÿU@O;åH?æâñ¦–È¢„€¼]•ê[še:wîÜ«W¯ÂÂB«ÕÚ”T÷ìÙ3vìØñãÇËd²êêjJ¥=zô6lXxxxuuõsÏ=·{÷îN:ñïP-))ÉÍÍ­©©ÉÎÎ~øá‡›‰Ž?þÍ7ß$$$pÝ2].WFFÆîÝ»¹äæær Åb1×ù×h4îÝ»W¥R 6ìºa Fèúy £ßi081‹'–Ÿ&“ƒQqÂ}"1D³äÆ âÃà§­¥¶± ´òLuPgŒH_CÁµ5JI=Ô¯´Õ²„Èyñï‹¸æ ±KM—™©ý¦PØ•hÛY"h#xä\)²±V ï‘ Œª1b-´ÌÁØ›hjáŒ3ì_šÙêÀ©„ºxt˜—/ãqV¸—L=øÆÀ,ËÅM „ ”P}ÜÙ&Ÿg›ßfá¶G–;0Ë [,šž={@ÓÆÂ,Ëž:uJ­Vk4š¨Õêþýû€J¥êÚµ+÷™ððp­Vk2™X–åŸÜ+++OŸ>••UTTä1Ñ4ýÓO?ÕÖÖöéÓçÁÔjµ \Ï_‰äÚᨨ¨( Ôjõ´iÓœNçîÝ»U*ÕO<QTT€ò¿ÏÒgÖx<ê8mDjœHy]QÒÊpœ–Ø‘C6ØP™‘UKq˜'JÑ=ótB!¾w6‘:Q%‡R\>À_cáo„±®îR\Á•ÁÝëüx°ÿ Àí¬ßª™’#ªwØ&>’w–ŸûÊyÕl¾,¼¸U¨Ñ 2È} Ñ{§T?Tã‘Ô*h¼o*ò@ˑŅ%­×ð—0{ ô©‡Kä ïÛYD¦ã'ø•bƒ€ˆo›Í(X¦xø‘·9€ ¡í€J~; áKÍDøeFòë‹ä®+ –ßeB”/*j5V¶Þ†ýäwÁŠãÀú¬°ŠÓ™í§bDP´dR§É¬d1"`?C^÷sŸš•A—ÛMqH5÷ÎìIÖ­,N¨ÿ_•¸kÓë1öF*¢NÜ–¯‰S‚I N((pS@#ÄJÀéÂb~݃R°©¡¡‡‹‹Œ»Ü jÕ /B¬4²@Ú@‰ÿ1%±ø8÷fÀaˆÆUÆã#ç`¿îb7–F/tµƒà¿vÐÚÀ_Œ-ôµdo ã~€»\ŸG7€࿚;u+U½!ÃuÒgjï äüZ‡œœœåË—÷ë×oàÀ"‘ˆrW©T*• †úÚk¯éõzˆŠŠ >qâDÏž=SRR(Š’$ýüü"#¯™J4Mee%÷º´´tÁ‚©©©?ü°TêɇÆÊ•&NûGÍ:ˆ‹Uˆ"é¾@!V+#"ÔèJT‘ÉA|›AnËB€@oߥcš¥ŸïuWû0#·ÖF.?ÔҮ§§¦>oã£lrsEßÓKRr¶Û FUØ=>çp¢m{_ãû‡}I3è7K®Œ­wœÈ—r"~¬` 9XdØŠ‰°ŠŠJ žá•vEÈI e4 îTU‹C¬ j­Ì¬0FfP³­-ˆå¯¡ô[ÙµX ]XI"'?ñ ¯ë!éü—6~V ZóµºuDÓv»Òñ>à›×„ãÎø· 7B¡²Û*FR©L&kß¾}‡ÂÃÃCCCƒƒƒ3228r/((Xºt©N§{ê©§8Ÿän·ÛN§H$"‚eÙ£GjµÚââb‰D2yòäòòòwß}—a˜AƒýÉ÷X­ÖY³fµiÓföìÙ,Ë:æ~›S^¤†¨6S¹õt´•™PN-ŽÖâ¶®¯Å Ôæìk˜‰íÝME–  âF­›sÍ.v6ͯáʱ~oÙe~ {ýÃÿ¦ç¡AoؤZж3¤„%¨»¦Œ6¶ýR¿R&éC€ a†F„G:Ž‘Ø]"éÏðTmj€€|-V!•IÀQ‚ãy×CÍX“jn;ñA-ÔUA„d­”¨`Õ`ÀFðÅ€Ð5÷º7”wŒ#ÀÐ:«å"`Eà#+`M V¤8eÈàÂr¤ ÐÇÂÑ*hïA™@ÀŠU6ÑØÅ`¡AÂ)+$ j_(Ž„cåÐËܼn…÷°BPèåšò‚°ô¦OxškcŒ†AI$’èèh“Éät:1Æn·Ûl6«T*ŒqAAÁ{ï½'‰žþùððð›EÜ+*++?üðCƒÁàïï_ZZZ]]½téR‰D"‹ÕjµB¡xüñÇÅbñ‡~¨ÕjcccýýýåryS•ß××—$É£G½ôÒK7qâÄ;bÞØñm‰i›Å Pg…3©–þ6FÌ"SƒZ ÔÝ7€v"·øš§Ô" Èmb F(¼ìDXå/&Uذƒ/€K¤8×íÙ²ÐÞwÇÖ”dýµ³ná^Ô‰ÚV¿â$”3®ì iO ¥ãñIg›´E¦ADë =_ÏÁA€YLÒHÌb¢õZÞ%ÈAb7‹I5€Âr§jo‘ÀHÀÁå1I€e€òR@½— „úžh­Š\àÓV[‘ÿYü„|ÛãëF26PįxÚ½,1² ƒù>P!S2¬‹‚#¿ÂSÕÐ1öÆÁ>7HUPS=2ñc¸¥Ì€€¸ƒ8÷›j._¾\QQQWWg³Ù<Ù¦M›Aƒ9sfç΃Þ·oA©©©uuu«W¯¾téÒ´iÓrsssss;wîÌ'¹GGGÿç?ÿÉÊÊ2 ©©©}úôáÒ‘fÍšåç燚ø ÍfóóóëÙ³çÆ›’¾N§óXlþŒ8$$ýñ(”YU&ð•ã6þØGò{S†o&B€‚/NÌMxPDÛì2-”…õýăß~ A41wýø¹åqÍÿ³fÏ'áã&¤œmè²â'áãà51µ) ñ6p3Ë[ÀÇŽî¿´"ë= úw¥kãÖ`€t€¼©­¡u÷-àž%€á~5Ârȳ0Cõblw€ÊŠ˜{S7]Xqý?âzÇ:(ø +x\=J’Á!ö`Ùße†êÉ“'Oœ8ÁQèÆxà6mÚtêÔé™gžY·nÝÎ;W­Z]YYéëë}âĉ'N@çÎÛµkÇç ‚ˆˆˆˆˆ¸1ùÓc…„PRÒµ’öíWÑ;44”{áçç×»wï»?»vÔAGݽ 1|¢Iú›5I`•ó•ÈU'jûo‰ô¢¯®H·Äêçb·[µý˜ÅdK¹‚Ûš]µ'¾…[Å ²FþâÍ1F|‹pgd5¸Ó_d¸C"@·¹›×ÐÓO?ýôÓOßüÉôë×ÏårI$.2%$$äõ×_‡?µü @€^÷dt{ã&jfm‚ š„™ü!r @€¯‘;Ü"ÎýfµyÁ¿%»x‘ÜoKÛ×;hólvÈ]€¼FîH@Þ‹‰:1  @@ë8«ËŸ½æPå9$X wð¢æNÝŽµ‰kXÍ]€Zæ~û°b¦U´Ù @€¿iî·ê²tHï””È]€¼¦¹ºÍ š{‹ e  ûl<„gFÀ­tꆦB·bañÏ­ŠÜ*/ wd%!’ôÞ*u›E}:÷öP ¤¦äB˜Íêíjˆ,€€i‘5ÜûÛ"ë ·[µ˜Ay[ JÀF/…ʼYìyaZšçþÏÖÜ3íŒ,Ã0òÖÛ&,{ΘO½= ªÝÛFÛt^–Ãbl¯wÝD^3Þt~mrÇ-$¨E¢–¨ËfÅ8ËÛ !1wÀHâÝ•L#Þ'€ºâÌØåïrw8¤¬E„×ȱŒ›R+½=…ÔB`oW^d½ÑòÔv¡OÅßÖ0Ð'*Úûgöz¹h/¦x·ŽˆÛ=„Ä$@€­îèDQèöš»0Ü À‹ä~Gš;þ‡;T  µ‘;y;G-€r @€€VEp}‚þŒ…IÁ,#@€­‹ÜÉÛÅ “ˆ¡ä¯´ $yÛfˆ`A¨ )@€­¾mä6öJˆ§@îàEÍÈ;PÊ‘àP @€€ÖÄîœ=ý6A^Èbj rw:‹E¡PÜIÇn¾C$Æ€½æ§Àf(—ÀŒS¢Âˆ¸÷SK.ARX$aÁ“^Œ‰ëéšbùXËþ¾¤ ÀMƒ "Ü‚uÈøš ëw Ý/ñý4Ï*íðG³ÄÞTƒkˆÑÒ ºƒr8Ø+)ª|’{}}ýž={ŠŠŠ®Ÿ3PHHÈìÙ³óóó80hРN:y>l³Ù¾ýöÛäää.]ºpWŽ?^WW7tèPŸ{º™˜õÓ_évvEeh˦b@!#¾3 IDATém/oR™*ËØ”ºË+ï}×sŒ1ªº"9º^S™'Kq·±–.£Œë0“[ß 4ÖQÜlEurô~¤Qê¾ë(¡6ý¢…è_ñஓ@‡ÃÙ(t\ F¨ x¤·k]O Ü0@ƒˆiåÇGhháoU>!€¡ÀÍIqƒØ …€• ‡; IJ@8°ÜKÃA€EàBÀb@4ˆXþjÅÑ{"Ùc ¶Î‰T%äÀ"rˆýF&2¬ïê^eB™¢©¬7 Ý8Zò¶”˜ðÆšáq•“¤F£ ¸ŽÝ»wgdd€ÉdÊÏÏ7W4ÎáplÙ²%++Ës%==}ß¾}‹å†ÄeévveTÑáàÊsœæáÉK¢Ÿï1ï\¯çJÜÿÈB•©â®¿ßPIZã×X-2ÓÔq¨íçuš‚tË · åS*}™ž{>dLèc•ùÜSý))2Qà°€.ÿ,³g©DÂé6hO޾„']Á¸AÖê‘#)²õ—èâHŠLz³@§u"À$0È; 5 ŒÄv,g€ôA"pyo,·)òøµ‘ìqŠËM4 Øô†Xfq}!ÀÜ_%Ò;¢˜Ã³-¸>еÚ1þïoîPU«Õ©©© À^¯_¼xñ°aÃnøŒÛí>{ö¬N§óõõµX,.—«©õÆf³±,k±XNœ8á¹®ÑhÚ´isç?#ºð©´<²Á2ÜÒû'6ø%² €œ2ßñ›'©‹M>aw7̆rqeŽ$å CÇáFÆòÎÈÝíÓÝ €H";8;4"€ îiáp¤ BPß ¾ôL½ "щz—©NðAÀ¶ÆbÚn#` `îS" ƒÀØ›R(H¸H`¼d-a€²a€\X*‡nó.ˆ b~·C è´è7’3 ®"ºø¸Êƒ™óEä;Ò@{9š9TLñÁ¥-¼ù#Ýþ§ÿÍÉ U}ýúõ©©©MŽØ`0¼ûî»UUU|ðwÅívÛívïcŒÀl6oÛ¶ †ÉÏÏ—Éd .T©T€aaú·}Ýè­PZjºŸþßÑ¡‹r¶S´ãÚb"D³ÚF¹íqWvY•A ~‰w=LÚ…hÉ}i‚Ä•¾Lþ/rÆ…°ËAžÝ¦)º( Kr$0ûG8ïeÎ1 ’þ¾d«*dÐh‚Ðöh› •¸c1¤´:BÄ-Tÿ½ÅÆÒ–\ì墈7L ,öZ¥O/ Ćü=z:n'’³@€,)ÎgÄ/1n"wæ÷¯ùVêïl¥ãÖâPu:ÿ÷ÿ7mÚ4×3 STT´uëVX¶lYPP^¯7™L+W®Ü¹s'÷™‚‚‚¤¤$þì³Ï†9wî\ZZÚ€:vìXTT„éËx+tLP'L]“"rÛSŽ,ÈîøhRloz^SXjFîzJ«¿ŠHòç¡K2Í]N¡¥¥J¦ðœ<²£Ãa&‹/Iõ•Ë"1Ûut£&„qÛÑÙí>™‡”ߪ ï`ç÷ÞŠÁª€úXôs °‚o´JÕñ”ûΛ'à¯4š)ÀŒr`Yküý¶GÑGÔ¸ìWj¤©Hpuq®'“JÉ~AÌÅΈMGPïÑÜ0{‘çm a|»$&À¨ÕĹŸ9s¦¬¬lâĉž+õõõiiiýúõ{íµ×‚ƒƒ¹‹r¹|È!cÆŒáþûõ×_76^+¤Î²l^^Þš5k§M›&‹°ˆÄù[³Žßv-ø) &ãl¯çÕÆR‰ÓD1…µÖ*÷g ʪÔízèÿÄ.KûÌ }.6hbjÛßÝè£\ÝÇ™NlÔÔ‰]vd7R2‹–ª˜‰ïTsŸIìkýîM]áyyh['ÁkÙ &̆q ˆ]HÑ 6gÂà HVÀ ³K‘M‚f¬i9¯#ŸŒæˆf'2Û¯’#KÉþ(˜9M<.~SÉV‹±™‡ ô6ðgâbY0nJƒï7Ht×ÂGËÐ4"oê=‡1f†$Iô{ã˲,Ër×ù'w†a¶lÙÒ§OŸˆˆˆ¦?E«ÕR¥×냃ƒ)Š‘HÓ«W/î3‡öxS«ªª¾øâ ‘HôÌ3Ï4 žÁ¡Ý˜ØT§#ø]“ ê‹Ÿ°N¾¤h»®&ƒ`阂ýy £í2-F„]ª±K5ÉÓÛdÿTuþ®É]¢`{?ÒÙÉ^uU¢ bN§±[Iýnò|Ý25k7‘ Ísg¨l u€†d¡bd£À)»>ˆˆ•‚]†mP¹ZáŠ"ÁÉkïÞPBȦ&Ñ € ö¼ùÆÒûAû«WÇÒûò©‘V@a¢g“/p!lÈäó–ÞAœû-Ãh/_¾\QQ¡×ëccc{öìyû/^ÌÎÎîß¿SšµÙl¿üò‹Á`àbù'÷²²²S§N½ñÆM·”   ñãÇçææ®Y³æÉ'Ÿly3¬VëêÕ««««ßyç   nBS#Ö »aNÒCªÐ „±Äiò1–“¬»> -MIÕÆRL©†`éàÊs3UÐ]eˆüÂh]Œ»ô²´*_Ôÿ±F‘”µH³žò bþ*· MûÒo ¥`–A,ƒ  4CB4¨Dëi„  Öêf`0Ì¥g_ŸÖ֪굱¼fGÀzd!/d¬#ÀR°ËÕ 7HÌb¯åÚ ¾¤D2ǺºWUÝòȱ¶ÑHZJö·  œ¾lÌfJ{ÁQü‡·õöf™[,ÿC‡]¹råÈ‘#ƒ¾Ü+++W¯^ýõ×_ûí·rÇŸ9sfÉ’%íÛ·÷ ¹ïûÿìy|U¶Ç·ª÷%=!Y! [@@E•MQÅý9.øôë8ÎøÜÞŒ»¾Ôax↣‚ * âȾY„¬dëôÞ]UçýQ¡‰IH‡Ðç~?ýG§ºSÕU÷Öïž{êÜsV®t8cÇŽm³=++k„ ¯½öÚ_ÿú×[n¹%''çd{ؾ}û‹/¾8qâÄwß}@zzúĉ»rèš”¡5)C˜} u{E9PÕo1–^ñ}jÕf¢ H×ÑùS«ÒJº}‚Ríß`ÙµÚFD͵úüѾ!ç»uªØcøâ•SŒ$K¬©RŸ?Ê—WâÄî‹»MØgvÔ`ÍÇç tàÎó ñ “ÇVc‹AB,m£Ë•ž¨“ݹsP€ÂZÂ)ºÁÎ=n-Ê"BÉ d@P†(iÐjœ»©GH†"E{ñš’ ^Ò!d… C@»AsW;€IПþÃ[eDð•8:ÐÈr‡IP# =$N¨†Ô CTE©—ÝaݹrÝ2Œ1!r´Lû"ªÓ¦M»üòËÞê0@`É’%¹¹¹ª³:Ì‘#GÖ®]›˜˜èõz7h´2dHnnnBBBxKNNÎ¥—^šŸŸŸ––vÓM7­^½Úb±X­Ößþö·­c/¼ðÂQ£FÅÆÆúýþGyDuÝp8zý©µDÐ`--šÍH&Ƭ6y“¯`åÙã+ÓJ|¦øîßÌzJÌ eBA çËís$‡Ä¥…ŠÆ{¼N ƒÎñf÷Î &Œ ”ëB¿J „M‚‰ Tbxlq8$@>DãÔOû D‚^¾D}ùi°ˆ2tÇ×%kaB` Dud-åD£~"‚6aL!QãsÑ#ª¡S»ô—éÈ>އ¥(Lßêõeº‰Õ4¬G- Fˆhá)¬}¯)((P‡†6Û×­[wèС›o¾ù™gžiíùüóÏM&ÓØ±ckkkµ÷qãÆµÙ’ššö®¤¤¤\vÙeêž5kVëŸ>räHõM~~~^^^ë‘@û¬dÑX“zÂóS—XXŸ8áxB‚Ó²Ôt”^äO/ ÷%´´\L’4ö²F;þ,àtï¾ì‡1®ƒ³ƒ¡ƒk1 ê›e©å_PR£°æj A4nk¢ sÏ,›ÐbrCJusÚÄ­‡ b­PŒövT:>@l“›5ò¶ùºô«ÊËË?ýôÓsÏ=7''',žD´uëÖ]»vÍ™3§¢¢¢ÕT¬ç}”Ç;y8‹vL?Qt÷y2Ë)²ÞÅ3âáN»›"¢Öö´ÞµúA¯Œa%$è»à¿ ƒ~ø¡Ãá7n\ë<]UUU«V­ÊÍÍ9rdUUÕÏ)î‡óï‰m‡=Ñ0›‘(( û#…åååßÿ}EEÅáÇAhnn^¸p¡ÏçËÉÉùä“ORSS·lÙrèСÒÒÒßÿþ÷=öw‡ÃÑPÜÛσ¡µ” ¬½å.Ë2‘¢(’$ ‚””tà 7TVVªŽ÷ß¿¸¸xÀ€™™™÷Þ{¯šÊåû￯®®3fLll,w‡ÃÑ Aɤ°öÑ2«W¯.--=räȱcÇ^}õÕ¡C‡Ž7n„ ê§DôÀŒ?^}T9wî\u»ÉdÚ¿ÿÅ_œœœÌÅÃáp´³Ü»ð°Oè s˜Ëå:v옪æuuu§Ín¼ñÆÖ'* ¸ä’KbccÁ}¥¸#b($S:¨Ä4{öìÙ³gŸô_»ï¾ûÚo/....nY{ÏÅÃáp´÷®„°FÝw‡ÃùYÅÐëËìq8§¸“©-õ•”¿‡Ã@ èJE6.îB³ÂêeíV™ L YuU{Sµ>“)9í˜(KZw­#ûD¢X•÷ [.ÛçÒC+™£_Z¨ãË%jÑt £ –‡‚¤¨_ÖËýßÝ-ÃÊ—ŒtÚ\‰–û€íÓç<òüoµ>—ágo»õÁWÓûWi}?\T0W ´—/C°GD¤':ë‰\1 õÀÉôÈbfˆ‡ÖyI„¯’4MÕËB Ç¢ÞgIˆd^Ñ¿½åNy¡±Ê0¯õ¹݆¸Ä¦Ô¬/™žAÔ¾•eÆÍöÞ¬½=At3‘HÒ¶u(&k1«‰ÜÌü*§·ÊOaÆáaÇÓ@&váî¢qqçp8-ͱk_ãâÎáp8}IÜ…ÚÍÆÝ2‡Ó÷Ľsn¹s8NßB`]zXÊ-w‡ÃéS–;AŒMF2#.î‡Ó§ÄAG]ø–áp8œ¾e¹ ‘¿Â}î‡Ó— 0ЏÆõJq'¢6s µîŸº1¼]–eƘ íÿ½ÍÿžöôDaLa ‚@ô“‡Ð EíBh7.“E=uï)8A!FAøI "(2#@ OE¤(Œ1ÆHÀ:í“:Ñß¾4é ´_ÐjÓº` @Œ¢ÝÍXKÞž{f vü†UºbKGñÇ`º.tž^åsolllnn®¯¯‰‰ÉÏÏW7º\®#GŽìÛ·/çääX,¿ß¿lÙ2«ÕzÑE…µ[Q”êêꦦ¦¢¢"u£×ëÝ¿ÿþýG÷~’€Pö¤a£ nô;Š1Nd)Ð ¬¨qàp,W¡¤§yÕŒpÅ£,‡dŽàLâÔí"‚‰ØŸ fælFZã©å ÄÊC¶};bª›ÇO¯é? YÕëPPüqk캩¯nȘú’ójcbƒ`ønUêöoš vGpè¸úag×Yl¡n+{,êcXµt7ÔSªÖ¨÷9²=dB0„` >;Š0AB ºŒ²öyiú:+šâXA?³5 ÕOÖhu­XTÄ¢Âw- ê‘­nÇát¶Ó‚b=²+hˆ1=7êGnÒDÜ»¿Ë… ^}õÕsæÌyì±ÇÂ?øàƒßþö·ï¼óÎ?ÿùÏyóæ-Z´H’¤P(´mÛ¶={öüDÅ‚ÁÅ‹ß~ûíŠÒ’µ®¬¬ìºë®Û²eKxË©be5ãñh<‰¹øü<ößIl7@Ô‰ÿ…—&àì›Ó·8R±s{«ˆ}:ŸYÐîXøa,{ÁÌœM诃ßשî¼ü€å²?y£ÿâÿÍ?°+V!€¶o{ì³÷ qÖ-1Òÿ½·ò,ŸW°]ãLVyÀЦ`P|å±¢‹³¹ûmj‡ÓŽF“H‚N£,>æµ0/‰L¶ÃianÖg^= X™[„ ÀÂý’K.yá…œNgxãÈ‘#'L˜žž.ŠâK/½ôâ‹/Ι3Çn··v¼üÔSO©ïëêêjjZRàN:Õçó9Î÷Þ{¯®®N ß1PG{©DÃS›[ËÈ\ýñƒR‰‘=v³YPoBS v7³~F¸2°±”.*Çhù´ó\+2kn48Z&’Ö˜P0 „jy:´×¾ú£Œòý6YÂìëéôÝÃ܈!b D= Æã°@J4¬[¢CH`¥ïû©(&xeèB¤§ëùH 2³¡X«EV¥jýÜÅwûÚŠ&;jvaòq«Kv°ãžU0Ø­[&‚p3bLˆ~UMÄÝãñ<÷ÜsuuuúÓŸÌf³ËåðùçŸïß¿„ sæÌ‰‰‰ñûýÌfs^^žj¹›Íf£QµFѯ_?¿ß¿eË–²²²«¯¾zäÈ‘eeeÀt C«Z ºöQ :(ÀòL|³›æCQö["èjQ¸‹fáÅ^Kg›j©Ð‹„(h£pÛý¤Vzj–w܅յſMk’·_0¤Édé^æD¼ ‘¤t”¥°£ ”¬hZ ƒdan¢ŸÌÔÇ­]²0·Ž$ì  AÈ@`._Cýõf²½±¨mF|FM‚¥’Î0À›Âö$c_ Š<ˆÀ˜Ç €0HõæS}îÔ¹[†‘Àú€¸{½ÞgŸ}výúõ<òÈgœp»ÝŠÄÄD³ù„G2--íšk®EÀ®]»–-[Ö2s—å7.^¼xæÌ™çŸ¾Áp¼ü $šüÓšm#ÐÇ…øp»ì Η5î1­ñ!.[r%˜d]è‹#:ø£ ì"9u-W“Áh"ƒYR‡µÔLoj¦7àÓ;ëMÛ¾8ËØ¯7Kü„…I†Îƒ˜Ôhß'2ÙŠfó‘Mîã‹-Te7PÀ˜`ö·>J&b‚q Ä L~XlpŠ´wSŠ(2é±vVë¡8@GTÜê[A0PÝ9ÝÏ•ò7ÊF™Ïç{þùçׯ_ÿÀŒ5ªµGþ‚ .˜3gÎßþö·õëׇ}ë'ãàÁƒO<ñĸqãæÌ™c±XÚy°Z¿~¢ìùX9¯íÄeûiJ–VÚD`DŒÀ¢ãÞbíšÄ‹„f¤9p =¼VÔa“~â2ê&z£2`XÓÞ­W£I–Ļބ@lB@‘™$µ(c0 ¸õôF¥Û"%@Vm Šƒ5`Ô""˜1²£ €‡ìÒ/@Ùá6‘Ï Wö®à‡-@f šˆá— jü(;q˃©m¤Cè¸ñ¬è™W€ÒÊYÊÂ/Ò"=c{Å:Ù+ú“ãî²iÓ¦-[¶ìÙ³Çëõ¾ù曃1bÄ믿þ÷¿ÿý‚ .Ø·o_YY™Íf;ûì³US=>>~þüùF£ñÁ|ôÑGGÕÉÎï¾ûn§Ó™‘‘ñõ×_(,,ìÊOŠgÆã… iØœ‚] ÄrŒ=„sEHƒØ{ñØo¥š¶ÂŠº26¡ŠFvûܱ¯}šŒ=6Í^«CÁVš€­”¦žÁÞu°r#¹¨ÜJ¿ö#ö”öÜPcúüƒÌ_¦”í‰[ú’~Ýò”«ï*Í.t3­ê»UIÞ2<>)¸wkÌœÊR3½ÎýC7ŒÊâ2[¥ƒ»c*ÊÌ—/8ŸÔÍ/©(703yMä+C¡… Í&òûa¶À£Î0õÑðp#ó[È-C4Ák‚O À‚œ“ C¬`éØoaÍzLðV _ŠÒ¸¨C`û4e 8lAc,ŽîǹÈÃ^—¡÷ Þ†úD(LjFJï¹sŽ˜~@ëU¡eee›6mJOO'¢o¾ùÆf³1"&&füøñ¡PhÆ †3bÄ‹Åb³Ù®ºêª¸¸¸•+W2dðàÁD^¶;}úôÔÔTÆXvvvBBš5k0Æ CFFFÄŸ„m+® «ö&A 2+ó#ÖMý6b‘bf §¬æGl†ÕR‚ŸÅ(è`b3¥÷cÛܬߺ´9§ê5Zä‚b§Ý·~ò¥GŠF6L²¨Wæÿvß®Mq>·~ä¹Ç®ÿ]}VA³ vÓrÂxŒõ³À¥#ÉÍnŠ Â¨…S&ƒ öð°¡0¨ïJ•Î {x‚H`Ä_ªÚ9µ”éc6ê‚0W"ßC1Ñzè¢@<†<’a4À$fÀöàÂ$Úoa ÍH9@gס¿Üc°Šô@•$D?¿ £>rcíÝ»wþü«6múÑ”“;±è$ó":/WhÒútαþöÇ_Î-:¤íaH?Ê´ 4i|62ƒÑxºÐ9ï½?sæÌ:†kÇÝîàË/o¾çîµZŸ AB¿””†$h.—a i0Rˆ±ÏÎ?õK/½˜——wú»»ôÒK3ë?~ê"çíØ[›…z¦.|å•~ýúýü–{¯„âv‡ÃÑR’XäzŒ:þN(òù|z½>„BD^¯×ãñ‘Ýnoýý7ÞØ´iSIIÉã?Àf³Ý}÷ÝIIIÓ¦M{â‰'îºë®ÔÔÔýë_×_}LLLŸw/à„¶I¦B€[ëÓðû”ºJ‡Ùš¤íaH—ŠF‰i».\\¤ø9÷#õHV€K<Ð3˳•è›è i|KÐ1tžå…€v¡ùùù¢(Ž=€N§ËÊÊaúôé­ó"F“É`äÈ‘=öØ_|ÑØØøç?ÿù¬³Î2™L}NÜ73&‚Æwæ5Ž÷ï W™a±i{ÊÝôW iªµ°„![(Cûã ô IDATÖïA”)êwxÇjاôO1BˆùÖgÂh—Æc•Ñà§GJŒÖQ¦á±cÇŽ;¶ÍÆ’’’’’’Žæ¬      õÆ>'î•DVÅ]`ÐüQDCMJ}M ­ºëzFØm$Ÿ¦G9Œ„õÈÒñK€zftïIÇ€öû'@ÒÚr'Шñˆ(38£y"ÊIoËçÎé3bÅáôíñ£_›ˆ^dÐ Q4w‡ÃÑÎÐ5qç–;‡Ãáô¥™sW²BʤàâÎáp8½¹†žÀzW™=‡ÃáD°Ê5÷n§u…[î‡Ó×L÷ö ”ÚYÏÅÃápúжw%±:E.ÅÇÅÃápzĺàrašD“rqçp8í,wêÊ"&úfœ»¢(Š¢‚ < eô:MKºŠž[?¢®¡f|Y‡s*êÎÄ7)Óõ¦h™êêêÝ»wWUUÆÂ¢¢"QȲ¼k×®ÒÒRÆØèÑ£Õ‚~‡Ú¹sgIIIZZZxÁ`pãÆùùù)))ê–½{÷J’”ŸŸo4£%d¤€)I$$B‚„AŽÞx©C •VÔé¬Ä`b0(ñ8œˆ2=|±)•(–¡?¥=ËÊP‰XLQcêöÃ,¡”RüÇ÷65E¨Ðë6dT  ,4Ž@¹ §•(L€,@ @P´MÇ9å[F¿¥SìT]Ç ¯~Š!cfEƒ5< Ä P’¡§Ÿkm—ÒP/ZÄôæ›o=zÔáp¸\®O?ýôòË/Ÿ36™L999õõõ«V­Š_°`Ýn?.î; '. %ƒãÏÞ_E&ÇPS–L=p¸FÊØ‡scYå ¬Èb›vÒEQ™-\@¥°O E†ðº0æYš8’•a/’0C™Ì„/©àG–\@5Â/*é9§,câ ð[á6Áì‘»¦Ã9$a;Рúm¨úGód R˜#‰½,Òãñ<üðÃ[·n}å•Wrrr¨žô`°eèkll4 v»]µÁ;vÛm·egg‡"­VëôéÓgÏž­þYQQvÁ»\®E‹íرãùçŸOOo]b¨ l¹÷­’ƒÌ覘¹7àA¼ñÕ4ÈÏìgâÍ=˜$Á|ú{6"dŸoÖ¬YªË%99yøðá±±±#GŽÔëõ|ðAEEEvvöùçŸß:ò½¸¸ØëõÆêêê±cÇz<ž÷Þ{ÀÀããã»+î²úÐ\Õbt‡HF$3=A0°€º!H†è‰{(‰í7ÁY†3Mp&±nJòÃa„;‰í!X%†üˆ Ýè²{‘r„âGá[Y†~höÂðeHÐPB‡ç²Í))pÍÅ–•T´ù¡j&vœæU2;n¾©'.î½ÂÊ$52½zïD]܈lh@`ؽ°k´ˆI„Ì HЫïeÍ"÷#ˆ{—j¨F ÛMq¿ï¾û$I ÿ©×ëm6€ÜÜÜûï¿ÿèÑ£¢(æää¨îõœœ“ÉଳÎ*..fŒÙl¶?þñˉؒ9sæ‘Åb9ï¼óFÕzçV«ÕårêT  hœ_A‚®Ÿ=Ц¶-4›ýį$Ø>:÷ ÆŠÉÐK0to¸º’6Q«ÿHa  ±ç\¶/Š™‚ŒHµæPM.ê|LÏ@f ‰tº¥ƒ?ùÙÄ"{ ²ö‹}¬IR½‚H]þÚÌÈ•˜DPïqËt²ªÈb± 0 õ½^¯×Ÿ3U/<€6žw«Õª¾1›Íf³¹¯ÜšNô"utD Féô:®¹½»›L2ud•ë ÛIŽj—ïð=çß‚#/uÉ-ÓkÄÃáp8]wÖ· ÏçÎáp8} ña©Èx>w‡ÃéK¨­"Z÷ÄzM´ ‡Ãáp"‹»À”H*«È¼@6‡Ãáô1q'E@ç‹õdÔ{B!9‡YÜY]Û™¸3¹[F’$Çã÷ûÍfsL̉xë`0ØÐÐà÷û-KRR’ºJTQ”æææææfEQl6[\\œ(Š\Ü9G3qgL‰T^”DÖ>¹ÌêÕ«KKK÷íÛ7räÈ«¯¾ZÝè÷ûW¯^½zõj—Ëe±X®½öÚââbEQöíÛ÷ÑG•••ˆ‹‹»ä’K† Æ—r8޶âñÕ>¢fëÖ­n·{óæÍ7n oܶmÛ+¯¼b³Ù.¾øb¯×{ÿý÷»\.§ÓùÎ;ï¬^½úÜsÏ>}úÞ½{ŸyæÇÃ-w‡ÓW`}.Ó1¦ˆb»Ÿ­JyËFEdJ;q¿ë®»c;wî<±+¢uëÖÙíö_ÿú×ÅÅÅcƌٺukNNNEEÅðáÃçΫÓéŽ=úÖ[o…B!]ßl`M×4Rt µøŸÖ"‰‰:Ÿ¬È‘Øé݉g‘ì ÖcwM_”+EÚþr:þ…u°ÐµsÔòòòÔÔTumFFFrròÎ;‡^RRòÍ7ß¼ÿþû‹eãÆ“&M2™L}NÜ `Fm“L‘LhßöBãLF èp±ÖU5ôå²êbì׺íóp–€\JOIûC( ¹GÒHh] U¦ÓΛÔn8dj›=ÉïV}*TW¶l–Bز)ò >Ÿ/...œÍÅáp455Y,–ÂÂÂeË–-Y²Äb±QEQ’$Eiù‘¡PH¯××ÖÖ®\¹2??Þ¼yF£ñÃ?|ë­·ÆÏ}îí&Q=t˜šÆJ'ù “Hr\4§O®¥½ËE‡ÌVUˆ‚Ú¾•voŠÐ½Ífs|||cc£×ë‹‹“$©²²2++«¾¾~ß¾}'N=z4cÌét.^¼¸¾¾žGËp8ŽfâÎD™éÛ¿”V/zbb»QT ]}CD¢(2äСCGŽQeÅŠ’$?Þ`0‚PQQˆhß¾}¢(Z­Vn¹s8Žvê9¿±´¯[ùøã¯ZµêСC¢(N›6mΜ97ÞxãôéÓ·nÝzÏ=÷¤¥¥ýðÃ?þxjjj||ü%—\òøãoܸÑl6ïÞ½ûÖ[o‹‹ãâÎáp8Z¡€)‘*q(`í]7—_~ù…^HjÁAHNN`·Ûzè¡-[¶=zôÁ4hƒÁ0gΜ’’’;v„B¡Aƒåååéõz.Œ),Âs/…¡ýÓ¾ììììììö_6cÆŒi³Q„ößçâÎáp8ZÑ•R‚ :xèzúpqçp8 Å]Ž$ÜrGn.î‡ÓË-w1Òw4)Åܱ¸={öÑСC‡Kr8N÷Är$·Œ¬©[Æãñ,_¾ÜårÍ›7O„§Ÿ~zÙ²e¡PèÒK/½ï¾ûã 9§{–»ÐùŠÅC!£&îuuuëÖ­ËËË3 6løä“O.»ì2‡Ãñ?ÿó?]tÑ!CÚÿgCCÑ#GAÈÊÊŠ oƒ ¢ÂÂBÕ꯬¬Ü³gÏÀ322Nœ3‘Çã1 ƒ!<]eÙd2Ei®@"$=B" º úöD„,0E @Ú¬¤ èÔC"°Œr4¼v!¦o†I„b'ŸØjm·Ÿ!É}?8©Y„LŒÕÃ~ñ"”ÔÙÉG|I*§ÏÃ" 7©7Ÿv–»ÛíNJJaÓ¦Mýúõ›5kVffæ¢E‹¶lÙÒ^Ü—.]úÇ?þQ]+IÒwÜqå•WŠ¢xèСßýîw¥¥¥~¿ðàÁ¯¾új\\\yyù'Ÿ|b4[‹{SSÓUW]uùå—_qÅê–—_~yïÞ½<ð@ZZÚ韘ÁÔŠ:„‚0×!YÒ8Q—V½dgMˆaòÀ.G;¯Å¢Þ†f z’¹i~X»­¯~è¿bƒ–¡Ä ë8üxÖ'Â¥~TÎÿ‚É~ìÌKž™lÓªZ‚³Ö¢(‘¹ý0ÈŠp-[=Œs}çôu·ÌÏ-#‚¢(.—ËãñlÛ¶-???..Î`0X,¯×Ûþß&Mš4cÆ ³Ùì÷ûßzë­×_½¸¸xèСÏ=÷œÁ`øôÓOãããg̘ñØc=ù䓊¢„B!u)­,ËÇl6+ŠÒÔÔä÷ûÃûôz½.—KQY–].׉Ÿ¨Ó™L¦S6a¨AºzY ð§ Â BŸt1ÉèFŒQ N|^X£{.Öˆ„F$% :µÈîv¾ä3px0«XCƒª[]ùÓ=‹ig üJ¬Ó‘$C€3px ¶Å)îÓ¿!Œ‡Æ°* ¸@pú¾[‘Ü2ѧEÜãââ?ýôÓêêêmÛ¶Ýyç6›Íçó>|¸C;:!!AõÀ(Š’””d6›%I:tèPiié5×\“””¤×민òÊçŸÞãñœ0åüþ 6|üñÇóæÍËÊÊRµ> ªŸÊrKæ©ÚÚÚ‡~€:Þ¤§§ßpà ݸ¦ªH1ÀÔ—û‡õ½ ‘A(êiÎ1( ¤@GÄNç:(©Ô$“(²ŸäÛËÒª”¸¿ª)V$ů*¦ò–$9µ{)ÝÏ pqçôar¤2HCË=))iΜ9Ï>ûìgŸ}6nܸ1cÆ †íÛ·÷ë×oèСÿ Y~ÿý÷›ššÖ­[7lذAƒmß¾]’¤ÔÔT5ÝðÀÝnwee¥úýæææ+V,]ºtæÌ™ƒv¹\@`óæÍáÚ¯»víR­ûØØØ«¯¾šˆª««—.]ÚÜÜl2™ŽÛøÍÀ±°ŠÁ@°ŸÌ]Å@FøŒð™àS óÃÒGÍöÖè aÔ(¥A|zmp5°$-®ØJÕ3e-Š*Y¼6•ig"šÃ_p2ëVôÏfµ1äãêÀÑØkâBaUcð Úbbçû$†TA;vlaaaSSSrr²ÍfÿôÓOgffv<")Êš5k¼^¯ÇãIKKSmpAD±Å¬ú^€ªì}ô‘,ËW\qÅù矯>D ƒ¥¥¥jòLOOWÿq̘1N§sÓ¦Mz½þúë¯ïß¿ÿÞ½{U©jÎ 0†“‰»É€ )…¾ï½ÕA2Á'31HFíž©êÒC’¡Ó(Å®7L ÌÇÚ,õsüÐvõq«Æ•ìŒ&²\…¯t=‘XŸóomX3Ԯ㕑 Hж¸GL5wŒ1«Õª««Ã‚ï÷û-K&¤^¿páB¯×ûᇾýöÛƒ6™Lª{]ý‚ËåEÑb±¸Ýn§Ó¹gÏž3f”””„èv»}þüù×_½úçŸþô§Ý»w«ïÀG}ôÕW_Ýxã£FjuØþ ¦:µÔî8é„ȃbô&£ÒW†¾k¼‹Ìð0—l²f«Ï0`f âPçM‰ö“[|F Mf;bÉßndT"!Èôf x™q†ï¦Ì_áÛªæÚÃÑɘ|\¢(×êQãÜY„PH-W¨ÑÞ{ï½;wz<ž°¸[,–{î¹gذa'û‹Å2`ÀAjkkÇŒc2™Ž9ŒFãŽ;SRRjkk“’’ŠŠŠª««ß{ï½ùóç;ŽÎÖ矾téÒk®¹f„ ?²7¬§6$A¯@!1Pw²…y’½°‡´ù!° ê‹úÎsX-#E‚îÖø`\á›YÎeôí:ÌË¥r´‡F¢V64 Ñ.Ħºe:wÒp…jCCÃ’%KV¬Xqæ™g6,ìZ1j1Ö6¬ZµÊd2¥¥¥566~ðÁŒ±ôëׯ¤¤dÅŠÙÙÙf³ùwÞ™>}ºÕj`2™&Mš$¢E‹ÀM7ÝÔÉoÚ¿ÿ£>ZRR’‘‘±sçN«ÕÚàH‚xB0˜ >‚.ÄôQeg +sÉïcŠ™DbtOG„l‚€ Ù¬§c¶+`u,fúAb=ì?°Ü¨Ê¤º\ªÉfuËP2†í+cÉ5ä‚#„>a#–cÄtÃô`…¿€ªÌrâô]¨Å*g‘Ä]ËEL?þøã´iÓn¼ñF›Í6–cáEF­©¯¯ÿòË/AHMM½õÖ[‹ŠŠ Ã5×\³hÑ¢_|QQ”³Ï>ûºë®cŒÙíö¼¼¼äääAƒ©¢¿~ýú1cÆ :4555¼ÏÌÌLY–Fã‘#GÌf³×ë]²d €œœœ‹/¾¸#²A3¼ ¤@p"Þ[_õÉ0ˆ$+LÔARÝÐ0k1?0ÃË ,óiFŽX#l;Y¦%î2¤ØH£F3¯fk¿Äàl¸Òx¶g•1P€ésQ#€v²LIhÎB½™¸¸sú¶¸G¼‰ºòî‹»êpÏÊÊRSÂGdêÔ©cÆŒ ‚ Øíöøøxu èß¿ÿí·ßÞØØHD‰‰‰ªÕ_PP––f±Xôzý™gž™““c6›m6Û< >¹U™1cF(Š‹‹:tèßÿþ÷ðvuöpèСSuÅ8‘À 0@“!RŸ]¡JÄ\Ì¡uo!za÷ÃÊ ¨øOs”ÊÆ±¹Êw'|j,d@@U%£)½ºrÕ„€)´m"v¶êšŠ~®œ>.îˆXÇXÒ4255µ  `Ïž=n·»µàž ‡Ãѡߜ1– FÁ·Vg£ÑØrËb¿~ýÂm³OõÕjU9§9`J¿ œ—2‰=q”Óô6`¤ ±µ_…ÂS%ž6~H;¼\ 8¿0]XÄDuy?ñ@5&&æí·ßÞ´iÓèÑ£Ãá1F£ñ’K.ÉÉÉáÄáp8§£HVfKœ{´ZŽêõz<(IRMMÍÇ|˜²ÛÏ>ûl.î‡Ó-Bä¼1Ú¦üíׯßc=ö裶ÿÏçÎáp8ÝwAî’[FËEL‚ øýþÊÊÊÚÚZI’l6[vvvë\¾‡Ã9Eq\‰I¢m%¦ºººåË—¯\¹²²²R–e³ÙŸ/--mĈf³¹W]ý+¯(š6m\8#±–ôÀÝM=rÔ§ÁpAAš·ŠÁ ;ëœì³Ïɸ¼ÿÛ ÿïÿjßzkKt;-E*àÜa(¤ßﯭ­õù|&“)111œnËãñÔÕÕ©5”ÒÒÒ:C]SS“(ŠV«ÕçóƒÁøøø³Î:+¼÷@ `µZÕš¨½bŠÓ"X¿Œý2ŽÂ~i׋Ëú¿3Q/:Ï"ZåDýdJþùÏ~øá‡^¯7&&fÒ¤IsçεÙln·ûƒ>X¹r¥Çã1 ,8çœsN*î/½ôRRRÒܹsW­ZµukÛùˆÉdúõ¯ŸŸÏÛœÃápº1ZE0”v¦ý®]»žxâ‰k®¹fÚ´ißÿýo¼‘šš:eÊ”ï¾ûîÝwß1cÆøñãßyç{ï½÷ã?n“…÷„¸WTT(Š"IR]]Ý‘#GÚ|l±Xü~žS›Ãápºi¹wåj›U¬7n4›Í—_~ybb¢ÅbY³fÍ—_~yÁ|ÿý÷)))^xavvöm·Ý¶hÑ¢M›6Mž<¹cqðÁu:]LL̼yóæÌ™ÓæcA"Ö;åp8ÎÉÄ]fb[q'HA…ä{] @ ýÄvgŒ)Š¢( "r:n·ÛétVUU%%%Ùívñññ))){÷î=©¸«Á0õõõ«W¯NIIiãÁ¹ï¾û®ºêªAƒñFâp8œné{Û¯ _Ù»ªÚUåSÿ”%åÐ÷u‰8±¢èÌ3Ï|õÕW.\xá…nÞ¼yÓ¦MÆ óx<Á`Ðh4†—"Y­V·Û}²ã¶ÕãñlܸñÇlóñ{ï½WYYÉ›‡Ãápº&Chóbz1eH\ÖÙÉ-¯qÉ ŽÖÖ}QQѶX,÷ÜsϰaÃx#q8Ω‹» G*R/w”8 âžžžž’’¢Óé²²²Ú|l6›{[l‡ÃéC–{WÒhò@õ±ÇSß]uÕUW]uo ‡Ã‰]wE‹òïºêêjµ˜SÇ¿‹±øøxž[†Ãápºe¹#²¸“¨âþðÃ777Ÿìc‹ÅòŸÿùŸÅÅż‘8çÔÅ)Ùr×d…jÿþýssssssFãÆËËË333Aøâ‹/ª««¹ÏÃápº-î2”Î_å–¹ùæ›Einn~ûí·Fã 7Ü‘‘¡ÓéÜn÷¬Y³žxâ Ax q8N÷P tn–+LP˜–{LLLlll (///))>|xrrr|||VVÖŒ3 Æ xóp8N·”)åH/ ³BJ’ÔØØèóùX«„1ÖÐÐàr¹x q8N7  ÄÎ]êJºv_Ü“’’rrrþñÄÇÇŸwÞy&“©¦¦æ‰'žðx<`åp8N§t%’i˜211ñÊ+¯¬¨¨¸÷Þ{AÐét^¯×n·?ùä“äíÃáp8Ý@ëBâ0-Sþ4hÐóÏ?¿aÆ;wú|¾ÔÔÔ &äææòæáp8œÓÐ÷ŸÕrW1™LLNNNIIINN…BN§Óápðæáp8œn@]²ÜEESq?vìØŠ+Ö¬YsôèÑùóç_rÉ%µµµo¾ùæwÞi±XzÇ…bkÖmj*Õ8:“ùe7D;•hûvA¤¼wQáœñ™™Æ4<I’ïÇ=[¶h}.GIAü2ò­2D®$•£4íf’úhß~]ñ¹ké–ñù|Ÿ}öÙ[o½5dȲ²²êêjY–-Ë¢E‹¦M›6räÈ^Ò‰ým·ÁÈMÅ]ùAâêq×õ€¸ÿmÑô´~1:†R¦5k*zHësù'†¿ƒÑM°ü"ú˜È ×ø® b5= ‘”yf4;˜šÏ"|GÑ0Z¦¶¶ö»ï¾+))¹ë®»}ôQ5{rrrZZÚîÝ»{¸;A‚_{q÷ý‚Ľꛫ†›æ‹Ý‚ígTDäõʵµZ_1k¬#oƒö#bO‰»¤y`‘Iã)‚ HQÿÝr¤ßLP´ˆsoÙ£Çãñz½EEEñññ­§½F£Ñãñ€Ãáp8ݲÜéE [Æh42Æjkk‰NL ËÊÊÒÓÓy q8N÷Ä=¢[F¢áÕÔÔÔâââ÷ß?//Ïëõ*вoß¾ÇÜf³ñEL‡Ó]º管¸[­Ö_ýêWG޹馛<(Š<òHRRÒ’%Kbccyûp8N7PÀd:jPˆi&î¡PÈh4Þÿý—^zé† ÜnwffæÔ©S“““yóp8N·-w…E²Ü™B?ýŽ×ë­««“å–ƘÃላ‹óx< ^¯—ˆl6[jjªüÒ™¸9räå—_=zô¯~õ«qãÆñáp8œÓ§+5T©]œû®]»^{íµ††~¿ÿرc×^{ío~ó›Õ«W/]º´²²R’$»Ý~×]w{î¹Ä1šššˆHÓE"‡óï$î!°ÎÝ2`m|î………wÝu—$IŠ¢lÚ´é/ùK~~>‹Åò«_ýª¤¤„ˆþüç?ß{ï½k×®=YÔqOHH8pàÖ­[¿ûî;µ*SXô­Vk'–?‡Ãáp:±Ü u*î-–{+y·Ûív»€Ïç{ÿý÷û÷ï_RR`âĉáïLž<ùÝwßõûýÄ]–e§Ó¹råÊ;väç燿m6›ÿã?þ£¨¨¨‡¯H]]]UU•ÙlVÇ+‡Ãé‹tœRVBU Š/Ð"îA)XãìPÿ›šš¾üòËË.»¬MŽ/¿ß¿bÅŠQ£FY­Ö“ú„Iž‘‘1}úô6 †ž/³·xñâ/¾øB}¨ûÔSOu{? QË2í`Ú/ñçôX«ÙöO¶û™^‚`BHGáe´,ÈtAˆ"ÞCÚßž¤å]bPÚZÇ?‡åÞÞçN!ÉWZ!Õ9Ãú×v¸Ä÷Ûo¿mnnž2eJë¡PèÿøÇæÍ›Ÿ~úéÈTÇÅ_ÁÐÈf@:g³ÍÔ Cøžå}‰Âf˜“ྚ­O&'tó)À˜Ld À¤íEq8–„ªðýS,'Åý,£Xw«Þ¨’¯ Ö»¯Ê‰ªŠöÿüÎ;ïŒ;6+++¼E’¤7ß|óÝwß½ûî»GÝé]EÑápÄÄÄTVVîÛ·Ïçó¥¥¥ 4H¯×Ÿì?Ýn÷ý×íØ±Ã`0$''ß|óÍ“&M*--}î¹çvíÚ 'Nœxÿý÷Ûíö5kÖ,_¾ÀæÍ›½^ï¼yón¸á“ÉTQQñØcmÙ²%>>~À€ óæÍËÍÍ9rd(Ú±cÇNgÀ Àì‡E`‚/ ô^X¢¾Ì—AµÊ=‚˜´´‰ ƒ‚>.î‚ "DÐGĽ‘YuÐ6Êœ‚³ƒ˜°˜¹‹2æ²6CL$l7KÿÃÎÀÑBVõ1†-¤sïgŸŠôKÊ6Úý¾lD ½LfBfæà§è'P3ÂǘrŒÒ‚0õg9[µÌ^Û­¢(¤$œøN (&Ä€ÚŠ{yyù7ß|óÆoˆ¢6/^¼dÉ’›o¾yêÔ©áíÜ2µµµ¯¼òÊ›o¾ÙÐÐ@D:nàÀ/½ôÒ Aƒ:üÏ?ü°¬¬ì7Þ0›ÍÍÍÍv»Ýét>ýôÓ¢(¾ð ‚ Üzë­Ï>ûìÿøÇººº?þøúë¯ùå—·oßþÐCM™2%--íoû[EEÅ /¼@DO?ýôöíÛgÍš¥Ž4¡Pè4¯© 6c@+šõ0X¢>7–¡S Šõhê¹ Á(B´\9"€Æ)¶YV<›~ÌPbÏmtE™”OÕ\Úr‘ƒÀ,½É€PPƒ´ˆ `ð ÆóÏí‹ØÉ;.Öñî»ïfddœuÖYaOÉ|ðòË/Ï;wðàÁµµµ‚ têÞrA].×믿þúë¯_|ñÅK—.]¹rå3Ï<#IÒܹs««;î‘’$ùý~ŸÏçp8òòò222¶nÝZ[[{ÅW 2¤¸¸ø¶Ûn[¶l™×ë0lذéÓ§çççÏš5Ën·ïÝ»×çó­]»ö²Ë.>|øˆ#¦NšššÚ%•ƒÜê¥tn¼ PD„¬p  LIIÏøòìãµí‹çb€d¢`ë{'Ò-5Ãò»àeá¼È ^¦¯Bl29cáa lª·²à>$<ÈX½‡[Üß ` …4©CD€ÍÙ¬4;Q%ž´HÃO%…)Qïê bç¯öc›¢(«W¯¾ñÆ CXrKKKkjj^~ùåY³f]xá…sçέ¬¬Œ`¹WUUmÞ¼ùºë®»ûî»UWÌÈ‘#§L™RRRòùçŸ_yå•íÿóÒK/ݸqãüùó&L˜0oÞ<§Ó©Fð¨Þó¼¼<ŸÏרØÀf³Ùl6‚ ˜ÍæP(¤(JsssJJŠúåøøøNû¶ž©0P«›$æÿÛ;óðªªsÿß=œyJN摌„DˆŒZ© ¢V´èUQé£R«¿VíÓZ¥ýY{ï¯O«½zí@­mõz¯­¶µT¼Z½ « @BBæäÌçì½Öï“Ä0ȉÉÙ!‰ëóDŸä°ÏYgï½öw½ë]ïz_Ž@ýŒKw£Û‰÷ÁƒI,i ’ì«­ Îÿåg_H5ŸðôßaÉ×é³Ð檕¢ñÅUâÌNÑ>nkªÇ[³ÜLa ,³âN~¸u®Ä`²‘?7˜(Ú Ožxú†ýì˜IO¹Ø+IÒºu놾¢ªêüãÿøÇÃlZ4øNgnnîP'»ÇãÉÏÏÜ{V«õ‘GéééÙ¶mÛ“O>ùÔSO-X°  õõõ1Æ$I:tèÝnkúÉȲìõz>Ì㜷¶¶öõõ ã ËCëBœþª1È=HíƒÇŠ` :b0ûáâÂz$\ãòÒÆRÖÚ ÇÓ‚í(©B‹Llhy ’Úïƒú> ì›y( k f#šðÁãƒ@OŽ–žÊa" ± Þ0qFøƒ‘•˜¼^oiii]]]cccNNŽ,ËÁ`p÷îÝœóxðüÉìÚµ+x<·Û——'IRyy¹Ûíþç?ÿi2™ˆèoûÛ\ðYÁ6V«uÑ¢EëׯÏÌÌ䜿ù曽½½ƒÓˆÚÚÚÇ÷ôôlÙ²%++«¨¨hà}yÃ/ À!ép:ÐgF(§wAÉ@Ÿ‹B)<@…–‚àQî1‘îD¨¶0™l< ‹–,êÊþ©²[ˆ‡<}Q8( ‹ÌµS_Jœ 5äp8¹­'ý34Ÿ»Ýnæ™gš››Ï>ûl³ÙÜÖÖ¶~ýz—ËõÎ;ïlݺÕn·Ïž={êÔ©ƒï¬««{çw‡¦if³yéÒ¥ùùù+W®|î¹çžyæMÓ²²²n»í6™™™•••ƒ±’³fÍÊÈȰX,_ûÚ×|>ß‹/¾èv»EÉÌÌŒ/þï‰I` b€TDdha£|îœÀãÛ‹ †…Ói…#<·Ô:ŒÀø˜”`%¨äð“%Ê•N²›yÌŽHŽZýò¿Äë’çRó©ËŠH Úß¡ÒC<ÝDú*³ñH™XMÀLa÷GaŽÀïÒIïÌ2t"q«YEÔM~î:#Cë°ÄKœVf/ ƒÁÔÔÔC‡555I’‹Åìv»Édzá…¤¥¥¥¥¥ ÷Ë/¿|Ú´i===f³yÊ”)ÙÙÙ.\X\\|øða"ª¬¬LMM0cÆŒâââÁÔÁ·Ýv›×ë%¢ÌÌÌ[n¹EÓ´X,¶víÚH$âr¹L›6íæ›ol(55upIáóÜݘ ݃w:5§Ãc|‘ÀRe4˜¸—*"ñ8HÇ rHôñV8QêøÜ?$yÿ‰-ðøÉ²gÏ”çñƒy辿‰òÊôÃj£ØB^'s6›†w¦oAÉî½;Ó¸_Èz;|éWlðˆÁœô "tº¬à qÞŠœ¡MLÃèÛ²5T=Ïòåˇ&.8UUO(Éäp8fΜy¢ ¹àv»‡:gâ>ÎyssóüÇX­Ö@ Ð××·råÊ´´´¸ÈëõŽòÄt(AØhäÌLÆÜxbÜD`rÖÎTœ; C¸ô¹›L¦ââââââ±›˜¥§§_y啪ªuÖYŸ•gdò„s`ýŠ ½y:Ô1è"šñ­Œ:&^*ºLÞ—‰S¬ùÛxdIÄù ‚xïÎF'’8ƒ`aØŒn"¾)=Ç?Y>ŒJL ‰‘aâ~Fp¹\K—.Åb’$)ŠbLªa±|* N©àNbõ‹ ΰå~Æ IJ¢µ.ãLܥĖ{™½$ë»HÔ.Ɖû0|î$',Å'Ä] Æ•¸#qT—ŒØà&Ä] Œ´Üù0|îÂ-# ‰Q¢XO’IÂr‚ d¹#±åÎeÎ)éñ2BÜÀ0qç’ÎXîÄân!î@0aÄXBáfÃñË qF?‘ˆû’4qÓŠ»Ä˜XPoøš$ˆO®'O‚‹Æ@}d9LiFŸFˆ7z$„ m%Sƒ4×|L:4ÀÐ:´:HK¾å®'rËèÒÔ_\q€‡&ERè“EßyÂ’‡É{¼½õQ(›0í§|¥Ñg2 {.á묋ûa*ü;®ƒû£ÇßXtðÞ$?LÒµ2KšÎ™$Tù@µ”ÉaêN2ã}2œC¦ãNE!Ù´#`h+V'×Ý×ÿüd×PåàŒ &61 Á281–Èe1›˜`‰»žHÜuIb"ZF &’ºƒ1éô—þU!î@0q,w‰'ZPÓ!,w@ ˜PêN‰…Û‡»w@ 0F¤' sÔea¹ ÁD³ÜuÂikˆ’nHùt!î@`œ¸ó„qîÐ)ñ1BÜ`ÁZ¢ÕŒƒ%ßtwâ®ëúÓO?½~ýúæææÜÜÜk¯½ö²Ë.E´_ S/Ì&õïZ$b\úô¸4°—’Câ §±È!‰ñž`½´‡êñ¯1Æyÿ='"I’Nœ0&I}¶ÃgTâ®ëz àœ«ªj6›eY‹ÅB¡›Í¦(Jü0Æ€H$Â9·Ùlñ#–eÙd2qÎE‰F£ëÖ­»âŠ+Š‹‹·lÙ²zõêP(týõ×àë¸]‚Î!éP JŸ4Ð #ðL|2作1"dî„·é!²Lç{íÜ S=•`K¿%íEü¢]”ÚŽônxÒÑQÂDNËñg¹'ÎEF'ÎOÖM›6ƒÁ¸¦»Ýî™3g:ÎÁêëëkjjæÍ›—“““|qF£›7oþè£t]ÏÈȘ?þÔ©S»ºº¶mÛV[[«ëzuuõyççr¹Ž9RSS£(ÊÁƒûúúÎ9çœùó竪êóù¶lÙòÑGy<žüü|sæÌIOO_³fM|TÈÍÍÝ·oßÞ½{9A—å241‚Î 3ÈÉ® MAŒÀeh1˜DgŒ†cÈøÓ}puð´"¶Ã€sŠ’) €0,xÉY´w °s|ÜÕG®\4£AXãp"–pBÅ8;Q]W­Zåt:‹ŠŠ•”” Š{GGǃ>¸fÍšgžyæ_þå_’/îûöí»ë®»–/_žššzôèÑÆÆÆ)S¦¬Y³fÆ sæÌQUõÞ{ï½å–[n¹å–½{÷þüç?/)))++kkk»çž{žzê©)S¦lܸqõêÕçw^(Ú°aCooï¯~õ«ŒŒŒ¸²sÎûúúü~EEÅÈLj ªÕ„ˆdd¾¡x+ 4šèÉ‚Q’Ç›sÑÒHù›±xðE ³ø®øï TÜI©ù8bBÒæL[0_LÇ­¸óDùÜI?…[Àí·ß~ã7ž8·‹Dž~úéââb“))9rq?tèÅbY¾|yAAËå"¢†††M›6]{íµ+V¬°X,ÙÙÙO<ñÄòåË8Ž+V\|ñÅápø²Ë.ûðÃ333_zé¥óÏ?ÿ¾ûî#¢'Ÿ|ò¹çžúùÝÝÝëÖ­ãœ/Y²dˆ_Iô`Ád&îI§Ï´$”fä:áOå]ñè9…Ç¢PÅu¿Ú·‘Ëò3’oß¾]Ó´´´´êêê‚‚‚ø‹ï¾ûnMMÍw¾óßýîwF‰ûÌ™3«ªª}ôQ§ÓYYY¹dÉ’––"š:uªÅb°xñâ_üâ­­­qK~~>Y­ÖôôôžžMÓš››/ºè¢¸^RR’‘‘1øá@à©§žÚ±cÇ7¿ùÍ3f i¶ÒùàÙ"æGð¡—ÜíH+À£sa`@(Ø¿n \ɵÜédq×bth/ü½ƒâpÝqc¼$-\¸Ðf³ÕÔÔ´´´lÞ¼ù»ßýnQQQSSÓºuë-ZTTTDDF‰{~~þüã}ûö}òÉ'›6mêíí­®®Öu]×õÁéŵ[’¤ÁÕÞøw""³Ùô÷Ñp8öçûgŒ=þøã¯½öÚ·¿ýí /¼ppõ5þ… êq—Åú‘à 3¿§Vdé3qLEL\¤@¤ê€¢0@Nòç3@?Ñ.—4&ûýÔÛ3`¹Çxè¸ÌûªªÞu×]n·›ˆ¶oßþÛßþvÆ 7ß|óºuël6Ûüùó­Vk¦G.îGŽÉÉÉ)//ïíííë뫯¯Ç,nݺµººÚn·¯]»¶°°0''gÿþý'2f³¹ººúÕW_½è¢‹¬Vëo¼ÑÔÔ4¨ì/¼ðÂ~ô£ .¸@UO˜rfq^2DÜI8j_°E–}©¼K\$!qž=Ä'¢A$µ<ç'.–`² %gcÀ¦X„Ú[qððP˽¤¤$þûœ9s¦L™R__ìØ±­[·677;vL–eŸÏ÷ä“Ojšw}'SÜßzë­Ç{¬   ‹ùýþ•+W^ýõ<òÈöíÛcííí÷Þ{¯Ífpr¸‹Åb¹îºëî¿ÿþk¯½Öãñ¤¤¤x½^"jkk{衇Ž=zï½÷>ðÀ®ºêªoûÛÇ«ùçÊà Œ{ÁÄ´Ô§ )=ð”£Þv õ&ÎÈmë!W'ÿJ2ýä%¦:×JH Kªå³> ‰´··OŸ>Ýív¯\¹²µµ5îY³fMYYY<œ&Éâ¾lÙ²²²²¦¦&³Ù\ZZZPP`2™.¹ä’ªªª}ûöÅC!sss|ùË_>묳233ão|àœN§$IÓ¦MûÍo~ÓÕÕ%Ëò–-[¶mÛf±XRSS×®];èÛžž÷í|^dh*¢t7#¤C‰Â”ô›'CWZ± ¨CŽÁ,B#£“¼{QuyÝ<õ Zh£ÀWðš‰GtÈí”P6Z?ݬDøÕPr ™à|}uö•òƒb7Óørü0â ÇñãïØ›o¾ùÖ[o•––X·n][[ÛW¿úU·Û½hÑ¢øž!ÎùªU«Î9çœêêêä‹»Ëåš;wîìÙ³i€¸³¥´´´¸¸8>³ˆév»ãá4ñ?—:::žy晳Î:«½½ýÙgŸ]°`Ann®Éd:ùë&\:8õ IƒJã#ƒd„à éPu(1˜Å4A0J¬åãH:8Å7r¹?Ø‚²Ñš‰6/ïúd¤£]E¬ûAÀRÐ-úàø’vè‰tç¤h™ÂÂB³ÙüÊ+¯hš6}úô{ï½·¤¤„ˆÝÔœó;ï¼³ªªê4†ï¨âLˆèøÕÎOF§QçÁ߉¨¥¥eÆ ªª^vÙe×\sÛí±”Ÿj8”4ãKiÇw ŠN,H 6,Â't’kF†–É[Oê|<-¹h9µG0`à‰B!I;ÑrŸ2eÊÝwß}zíýÑ~tú=“ª”‘‘ñàƒŠ»/œ ¦ ¬z²3¡O’N9f IDATÎÌ)a™=0CÎLˆûTviL•]Ç#‡xa/¹d#«ûðPï2l0ú\Z÷>ŸÛÑ2É›xú>ŒU ª“NÜEZà/.=ðôp£Õ¥h(çD‚ü14n¹sLÄúSœƒ%H?À…¸ Á„³Ü¹ŽÓ¯Ä!î@0¡ÄÀûܹ…‚‰´Dn1M$‚ f¹óáå–I~ËBÜÀ8q±DÒ-|î@0ÑÄ}qî: Rþ ÁIJ܇³CU¸e`Bi;çH˜7FÿÂ,¨rÎ@,3›ÍV«•Hlöâ4ŒÙ,ù;ÖǸkš¶víÚ£Gêºn6›gÍš5wî\›Í&z‰@p¦ ‹lEŸï¢ g±T§/„[†1VWWçp8¬VëÞyçÛo¿}É’%#3Á$0ãdnÌv— býy  é$ò@Ð!ó1ÊK#˜œDa:†Œ¸á°~!X‘燣¿cwÀÏ^à‡½]ä±ðH1>IAÏhÔHALALã LšOÍx°Üá$c”ôô #÷X,öü£¾¾žˆJKKçÏŸŸžžÞÝÝýöÛo×ÕÕY­Ö‹.º¨¼¼\×õúúú¶¶6ÎùîÝ»m6ÛÒ¥KóòòˆÈçómÚ´éÀyyyÙÙÙv»½¢¢Âf³}ÿûßw¹\jkkúÓŸ¾ÿþû#w ,Þ‡(‹Aâ.A—¡I`2t Ša­p1'p³.Ä]0 Áé%WJ#07"σ÷Ð!ÉæƒjPQ‚OÊq0 ˪lB®]í”Ö‚ì ù6FܼœIÐMˆ„àˆÂ4i-÷aúÜ Èù;røßÿýß'žx‚sND--->Ÿï±Ç{öÙg5M;tèÐ~ðƒ}ûö麾}ûö{ï½wãÆº®¿õÖ[?üp ˆD"k×®ýãÿ …öîÝ»zõêgŸ}¶§§‡ˆÜnw(êììŸOUÕK/½´¼¼|Ö¬Y?øÁV­Ze2™Ö¬Y³bÅŠ«¯¾:<øàƒÇŽÓ´þü´«W¯Þ°aC4]²dÉ\0bAŒÿ±÷Nâ€dpïä YȺ )½ÉŠ¡.xO˜éZŠÿ¾åv ñCÔKn J6ŽY¶ð¶Tê>ŒüJì…SÈ<¨?’DœOÚ$©Ã …4@ÜGn¹/\¸ð¹çžûáøÒK/ƒA›ÍvðàÁÔÔÔéÓ§§¥¥åææ.Y²dûöíñƒ‹‹‹§OŸÿ×p8 ;;;[[[/^œžž^XX8}útçÓ ¨ßúÖ·þð‡?|ë[ßúè£6mÚ4ÔD€pü‡&b P`|à €³¦aŸ à p ÂñY£þ>¸’dZÆdè1¨gn ‰b@ˆB„’^ÿ€ô?\g–ûÕW_]QQñú믿ð ùË_þíßþMÓ4Y–%©ÿ>™Íæh4Úߌ¢¨ª @–eŒ1Î9ç<~0 ¾+Nfffff¦×ëÝ¿ÿ¶mÛ®¸âŠù˜èÈA>ü,|j‚Ñr„r;¹÷*Z78kìÿ/nrÆHJ†ôÄlðÇ †¹åÌ«úÐ=ÄN 8¹mž`ÆM§ÚÄÄ‹ë$ɲ<4"<þO$I:A9“#î~¿¿´´tÚ´iW]uÕï~÷»]»vUUU½úê«yyy±XìwÞ©®®îÿö'¹FÒÒÒ²²²Þx㌌Œ@ ðñǃA‘H$‰˜Íf½½½}}}©©©ñ!0‹ó2ˆåDÀ(³]úUt$…w ÀÄ£ Šñþ5ÏÙìŽ^Ùð1Èî<£¡_ çsŽÓzìŨÏîø Êùçß¡‰D^ýõÚÚÚ¾¾¾ŒŒŒ TTT˜L¦¸*nß¾}×®]º®Ïš5ëÒK/M¾¸ÿ×ý—ÙlÎÊÊ:zôhWW×\pÎ9ç¼öÚkþóŸ>ÜÚÚZSSóðÃÇMx«Õ:¨ò.—K–e§Óyã7þíokjj |ðAuu5ÕÖÖ¾üòË………víÚÕÞÞ~íµ×ÆÏjÔ®¯ ØÍ%HžÉ*Ç«žêtÈXÜ6ï#W#Ï[@[ºwÂO`HÉ@{€lö@õiæÀÈš6!XˆZ/ZâÚiB8ç\z w>ŒôNãkÓ¯ýëÇ|þüù‘H$55õ{ßû^JJÊ}÷Ý·cÇŽòòò={ö”——?þøã‘Hä±Çûç?ÿY\\LD»víúö·¿}ë­·2Æ~ùË_®]»¶ºº:îß¿ÿšk®¹ãŽ;RSS[ZZ~ýë_ßwß}O>ù䈿ž©ïó¯Ä÷RK >èA:K¶TéPŽ!—A"@F, M.ôt"#éæO'29 ±4³Ã—tû€(,!nÓI!ÎSx§½½ð&ݨCîBºÎ‰˜ûlðëPô±ÈÕeˆeÖGžW² ä@ŸFjÒ'ˆ”L‹ÿGU[ކ]¿«›cŸÎin+ßµjÚN , ›VïûÒ‹G¦žíiÕ¸üëÚsvöÛWçí9Hù×ÿå“wUlYJ™0ìu|N¿F±YØØŽ¼3ä–áN(ä¸ZP}ñÅï¹çžk®¹Æfë7!×®]ÛØØøðÃÏ›7¯««kÉ’%Ï=÷ܲeË"‘Hiiéƒ>XPPð׿þuíÚµ+W®looöÙgûÛß^tÑEõõõwß}w, ï¿ÿþ¯}íkeee£vv€D,Gýð„¹ÝQõr®Cá 2àN1H„þÜL ²Î)ŸsppP ªŠ¨.Â-ý-rI#Uá1ÃÄ÷ÔÁ+¤Aá$®Cp©‘Jµ=¤+'äsÈQÆ) «a&[¤˜M‰IÄ÷õ¦)’þåôFRLÁ WÇ®®ì€fr(‘Ñ<þRpLA´œ± ¡ëñGâ~ÁlذÁï÷WTTL™2åàÁƒEEEDäõz.\øÞ{ï-[¶Ìb±TVV(++ëëëÓu½¦¦Æd2þùJJJ¦M›&Ë2€õë××ÕÕýë¿þkwww$ …B@`pü:€æ!ëÀÀsz]°Âç@Ï1Æ KÒmAPEÄ‚°=§!ö!¸Š¨ " ¢~x 5u%è*¢2š‰O†® ª“̸<Ñ…,~ƒ8A"÷‚Ï¢3j¡©üHÀýaOÖUùµy6ß'Ó±°=ËÜajkØÙ³vE-#÷žÌÒÐÜ‹´0¬Ÿ¡©]@dˆ w'Ûh"ޏ+Ë}ÕªUÏ?ÿüž={Þ~ûíÜÜÜÛn»1&I d@SU5î1—$)îIÿÎyÿyQü÷øÿão|饗ÒÓÓÿú׿öõõÕ××wwwoÙ²eÑ¢EͶÉCÄÝ˹ã4âNà´3H>¤2!u1× H`ܨV˜‚1Èñ‰‚A‹·t;ù„¸ ƒ JH`„d®á`˜ðë&D¬ sk ªÐîij7&7ÜÝQ«C‰J„ˆ.Ïp·U¸º­›}IÎÁ£ALJ=™.%ª±Ñv ùœènäÓ>ÃbDMCG“C8ÌÅR–ügyäâFo¾ùfMÓ¶oßþè£îÙ³'77wóæÍ­­­™™™½½½»wï¾üòϬSZZªëúÛo¿½xñâƒÖÖÖVVV¸úê«[ZZ8ç±XLQUUM&}š2³œó³†\}§µÇUD]èÀ†Ý¸ž€+—‚XŽ9Ñ‚5ée%8( kVZ*ÚmðG`Ñ Ð Ì¿Ìu\ ²AÊNàM‡`_öh ”Ý„[ÂÉ^垬äY{6ã núÃÁ™¯´”Ìp·žÒzwåÖçT¼Óžo–´©ÎÎÞ¨Ù¡FGùܤ⨓)üÔ’-s>uÐoB¤:p(¹îpuãkAõþûï÷z½n·»±±Ñb±͘1cçοÿýï§M›vðàA«ÕºlÙ²Ïz{QQÑW\ñÛßþöå—_–$©­­­ººšˆ®¼òÊøÍÍÍõõõ¥¥¥‹/>ÎÇð‡VzÌu!;Æ WYƒ¢"–t[wè2ÈñÈ#jÄ•]$G̰UA¬˜)âvã‚GÇRÙä‹rs.*ÖÏR‰O=mr4Óâ09¤+æ¦6Wº::£–®>¼^†+b îÖDÝhïEZôÔ>™Î8øÅ¸FdIúÙ‚ ÃØãÉœG.î‹-úä“O¢ÑhiiiuuuUU•ªªßýîw·mÛÖÓÓ3uêÔo~ó›EEEápøÒK/ûÓÞyçv»Ýb±Üzë­Û·oïééIKKëèèp:&Ó§ìñxn¸áÇ3÷‚:?÷ôÔ™QÖ¡pHf„,úáNz[æFo*ƒdBÔŠ`ö¤ûÜ ÜŠ€¡(¬Ä¹2¬6SÐÎýná ¢ ’e‚Ê¢JQú8HƒbB”9ò'Éø4ÓG=™Û:ò†œ;ºrÒdIUƒþ¤:Ëâ÷šCÍAçKMSs­¾<›À¦cEŠÄdb[‹[‚ޝWmUiT«ÓNt©ˆô ];ƒz8è -±üœ¯¸â ŸÏ§išÙl¶ÛíqÏÉôéÓKJJB¡Åb±Ûí,ˬY³ß•––¶lÙ²xü{sssNNδiÓvîÜÙÕÕUZZïw–Ùl‹-"ù3/Cc¤t /lXè1T³“ŸÀ¤>¤`H_ ºA œƒpàdˆ;qH24 t:d#Ä]æºN’Ä™!:«>13aHœÅ#¦Ìà°qÒÕš¾ŒÆ »ÜÙå™¶µçÎò¶¥¨!I/5Oõk&“¤Ïð»,·>Ûêб¿qlJHWs¬¾ïO{wfÊÑQNeÒºàî3i:pÎq&¾ÀÈŸ(I’ÜîS«µÙlC‚[@Dƒ«©ñw šçMMM?þxwwwJJÊUW]µ`ÁI’†¾QUGåSÖ`:ʧpHÆ=lL}”2éE:$nÀÚ ƒÔ‹O[a˜1­á ñöôH„`sÛÐV&®7# óЕpˆMªý¤šBËóö^ž³ðò¤šÃ~mÁÞKsê5&És(Q‡•‰¸4»þü´Fd“cSXš<» YgÜnˆGœþ¢ñä–í|VU/»ì²%K–Äcl,Ë(¥ü”ó!ÍàÅ:Ò!AŒöØ´26Q+lÉß@œJ\ˆÒiîR#.52ü×GñÔLàĈ|"jõrÎcƒ¯ŸÆ·q&OÞd2 u²  ÎǼ{÷îšššÙ³g_{íµñƒÁ૯¾úꫯvttddd|ãߘ9sæPé?ι".¢@ Œ7³ý‰'žxï½÷6oÞüÖ[o ¾þâ‹/®^½:++ë†nPåºë®;räÈx´Ü@p2DôÐCÑõ×_?ôõÝpà ÅÅÅ‹-úÛßþV[[[XX(Ä] Æž‘d;¥3½²²²¡¡açÎÝÝÝuuu%%%Âr‚3¢ì'‹{˜h'Ð9ðg Ø=œÏš9sæúõë׬Y3eÊ”-[¶\zé¥ÅÅÅBÜ`ì9e…lÈø4ˆ–'Ž1¶}ûvÆØå—_^XXXYYùüóÏôÑG3gÎâ.c,í 8¹Z‡Äùì!;›ÂDí@ãé?* mÛ¶-##ãŠ+®HOO_°`ÁÿøÇ-[¶q‚qb¹ŸÀ°Š¨*Šb2™ÚÛÛC¡ŸÏ×ÝÝ=tǨw@ #üT–û h'‹ûo~ó›Í›7¿÷Þ{ªª=ztÙ²e_ÿú×—.]zÿý÷ß~ûíS¦LÙ½{÷”)S¾úÕ¯Nqçcq;ŒÏÁ'e7|ž‹5iú8ˆ\è\qI↟Jò?3¡UÎNn÷’K.9ûì³u] ªjnn.-Z´¨¬¬ìý÷ßooo¿ä’KÎ?ÿüS怙 ânY Þ{e%8~òQNÁáàeÇ /#ܨ*gfh·©ÆŸ‰è3þŒh 6*6ø²ÿëÀâ KØÐVtWÝñn1ðttÆî=_róI°a<槈¨©¨¨¨¨¨8Q¯¥°°ð³Û'¸¸“ Ühq7qî1þLüàíCê{¥!GÇDÜuCª@žâƒÄÌwãðÉžú¦Þ—Uï+‡Á%¨¬vß+ÿøkjV§qMhQüó‚ÿ2=¹–»ebFØyÂç.ÆÎ:†q@ò‡y!î@`ÜDñaˆ; q‚ tAUˆ»@ ŒoÛ]¸e`ÒÁz"³\–»@ L8Ë=a´Œ.¢e`‚‰û0T5á–‚ &îÃpˈU@ ˜`0@O”™á ³ ZWWâ¿Ûl¶ÜÜ\‡Ã!úˆ@ ˜xv;8 ó™—Ø%Îý¦›nêìì,((P^^~Ûm·MŸ>Ü Á˜ŠŠ‡„‹$* 0úL2(x4˜Fó %è*B& £C@àVôZÐ'CÓ¡„à ÃÁ“‘)A"næiˆçNƒ……†À àÌømë“•¢*ÓÀœšƒb°ÄF×»Î,̰$f Ë<€)³6 !âœB~¥¯Ç *iÙA»+6øO}ݦö[4*y3ÂiÙ¡¡IÇbQ©«ÍB„ÔŒ°¢š‚ñÄÂ=΢e8çµµµÍÍÍŒ±´´´ÒÒR·Û‰D8ÐÜܬ(JEEENN€ŽŽŽîîn"jll”e¹ªªÊëõQ4ìr¹¼^¯¢(YYY‹À7¾ñï~÷»$I2™>Ç£âÆ±lÔ[Ñ«C©Å¢¬ñ/ëÅ‘|ì•¡¬9‡Q= }çN´åÓNã@ ¿¤Y$hyôA*%è´R?áçö"‡:]¢–I‡ÍÅ3‚½ÈháÅ1˜“Û$0š&AÀ"ô=!vôx©EòÄZPÒɳ'èéÈÐ%h‡a3¨•4´:Ð-n¦t#]ƒsÄŸÖ×eÚ²!çHƒ³f—gå]ûæ,l‹¿ÞÑj}ýïùöz8‡Åª]õJ*{ǃ{=ÿû§â´ÌÈ•ß8–2t°Å¥¯h™={ö¬^½:%%E–å´´4UU§M›öÊ+¯¼òÊ+&“IÓ4EQî¼ó΢¢¢;w®]»¶¬¬Ìï÷777WUUÝqÇ&“iûöíO>ù¤Ýnw8@ ==ýßøF~~>€ƒ¾úê«©©©•••éé韧wÆb0™ xqDˆ@² P†í!¸?Át':K°3O+ÊFqÃô¸µîA³ ÁÁ—ûه̬N´MŦY܃e´C?¨éq±ÂçFG7вæ :MÊ´ÄÉ&ÂíÝ”%˜m´kÙl8@ȉ£÷Fމ‡$ðNdÆç‘Ñ= šF(( <ýHIû k¿%¬I゙õî¦Ì%W6åþöûò§_öÿ}/n wµYvlÊ|ÿ­ŒÒªÞpH6ü’r–ÈÀg>÷—_~¹··÷î»ïVU5§§§744<ýôÓÕÕÕË–- ‡Ã?ýéOÿô§?ýô§?mooß³gÏ…^8wîÜÚÚÚŸýìg×]w×ëýóŸÿl·Û¿ùÍo†B¡ÿüÏÿlmmW)++3›Í;vìhmmÍËË»ùæ›‹ŠŠ>í{§¥]ÈËÃ^/o¼ ´Záß/w!§ø$õÇP6Rõ¢äõò¼"ÚfGÇû£´òiñßýHË£ÌJÉ—zŸÆfàpŒ,}HÕ p©1H & ºjxºÊIBö·PHó¢Åž‰{::¢†Š;ŒK:9 ó(ý?ÞÌÈWoƒ¢öO =IDAT8.?üÿ*‹ øzL{ßO),÷-ZÖâpGü}¦¾3ËßcvxÂшüÁÖ4_:㜮hd Š0@K$\:(ùâ>òËZPPpøðá 6:t(333++«¶¶ÀÅ_|ÖYgÍ™3窫®Ú¸qc,P^^¾xñâŠŠŠ¥K—jšÖÞÞ‡wíÚuå•WVWWŸsÎ9óçÏ÷xúŸŠU«V}ï{ß»ùæ›—.]º{÷î—_~™óÁkà ,î¤aç·£'s6€d?Rè¦ÑÉ.ÿŒNëAóTÚt½,AoEÅèÍöãç%Q:ðáÂ:®0!äA{'ru.|Y I¥h&ɧÙ8lFxÔxâãØÛ­vw˜2²Ãvg @iU_( =b§¦ƒÎÝ[Òª¿Ô™[è'\".—‰Ë€d@Í>®ýô?ãÉç¾téR]×÷ìÙóÇ?þÑb±ÜvÛm@ÀjµZ­ý3£ììlŸÏ§i›Í¯õg±X$IŠF£Œ±P(t"r8fs¿¹ºº:þ‹ÛíÞ¶mÛþýûã=Ð@ýÀ âyç ß±~š“Œê}ßT™Çˆ’5 \E؉¶4IÐtnJîš§|6ø:ItÊ‚1&G9¨ ÙâR$|JŽñ\ YdCÀ‹Vår“»~«Ee¦É&³N`sèx Oñõš¶¼’íJ‰ÎYÐv`G‹ÒKO…%¹?6é8°'é%G&`nÇsÍ5×|å+_ijjúÓŸþ´iÓ¦™3göôôø|¾øûöíKKK‹K67$ªªš‘‘±oß¾Ù³g3ÆŽ9ÒÕÕu’7M …B6›MQ¾'ŸÅQ=dÂaÆ0u(Ò@ :#…PŽAêF¾Ÿ§›á¯¢—óiW/Ï%ÉÊ&0zÌÇS¹¨i7®ä < Ÿt";šì%îIIý‘ÍaØ-ÚЧ"=’Ü9®ÂHâš·Äy4L`’jÖÖºÞùgæ ß;ÐÖbëj7‡‚ji•gÚ¬¨jb´Þ\§¿ÿ¤»e&š¸?ùä“éééåååmmmEEEsæÌY³fÍc=&IRww÷ÿ÷¯ZµJ’Nã*o·Û—-[öÐCù|¾ÞÞÞçŸ>ûØÐаqãÆsÏ=W’¤^xáƒ>XµjÕ§3äÏø¼Þ¤\&„ânD³¢7”¤ Å“s & ¦0œ~¤»Ñ¢ „$‰»a:‚p&²WwRâ z÷ñybÐýœ²G:d#j4:Ü1‡;ÚÝnŽ„d³•i°ôÜÂÈÇï¹›\ÿk5ëj³Fò¿W½ï‰mYùZoÒea„²Ï¤¸;ÎG}´©©)55õꫯ¾ñÆ=Ïý÷ßÿÈ#Ü~ûí‹åž{îY¹r%Ξ=[Uû«p-Y²ÄëõÆ=9™™™›6m*..¾ð Ãá°¢(f³ùÝwß}ì±Ç4M«ªªºï¾û.¼ðÂÏ1bC7# ""C·  CÁ܉\ jöÅ`±¡×‹¦Z,Ís(C‹Ç¹+ˆ™á· /§æFs)ÙÑ™ŠÃ>dÆ’Of…ß_¦êFF(†9@àB­†qÅ‹ú^¤2ñφÓ@ 0€’ÞÜ…î ìÙásQWOÍÎÎÉ×kŠEML‡¿ÏÔÓaµ:¢ÞŒHåìž·_ÎúxGjñ´¾uOM™·¸Ã“<iàüú—âo|âUŸÔºnýñÇ9S^ÐáYî|\‰ûòåË—/_~‹………¿øÅ/NxqáÂ… .üóW¿úÎ9çü¼óÎ[²d‰Ïç{ä‘GrrrRRRRRRþð‡?ŒÜY„ÖxUFL"m&þц☆³_šŠ­©h1#p ¥GQ>š«–‚#U´Á…V‘³é…¼[ùÍ6Öh0kP­è ­ŸEï ƒ–…a8z‘f\G”ÀTD%è™æ ¬Ìø Ë š}G0uœ‹ ]ETã BRÖ¤¯MåÒ'à\’¡÷qw'²F×Éÿõ³ªº={éÏS¶¿–qÍ­ν°õË—´4Ö9žøy¥$³X”þïêN˜¸S#iY!ƒw0Å‹u §@ö$Ê-ÃÛ¿ÿ#<’žžÞÖÖFD]tÑ`À̈¯d/2vâŠ!³S6­(ëA¦QØz‘1ÊÛ=È}Ÿ_;æÈ9É1XzƒÇEÇ ÃåCzCeäNätñìäº&OjEŠÁ„Á¥fNÂr†i&ÕâÜl“`_€™“åS¡áÉ:à ý¼Ú„ˆDLãj£ :0[ô¯¿6ê—2Yæo@FnðÖŸì=\ç úå’i~Wê‰+¥-oÔ¢’+%jüdhY!ù$J? Ëreeå­·ÞzôèQ»Ý^UU•››{¢ë®£ÕªÒõÁ•¬µM &ÿP zà ÃæNcQ>‹u ’ؽôy¯X;&ËHŒ~*:””du3Iâ9§ÞbjµÅ*Îîú¬7º<ѱé ü ˜ÏÝn·éK_ê ˜ö»@pÊŽwËœvÈ$QfO &œ¼S"qeö`¢Á†áOgDÂr‚‰d¸'ZF”Ù‚‰}ñB!à  íŒ0Â|îƒ GF(ö§q 3+ä‰n™úúú›nºiúôé—\rÉsÏ=O¯+Ä] Æ‹é>Æ~úŸãÜ2~¿ÿûßÿ¾¢(ÿûß—/_þðÃoÙ²åó¶<ÑÜ2cN,öd~Ñ{€@<Oéxbœûûï¿ðàÁ_þò—S§Nu»Ý;vìxíµ×-Zô¹ü3ÎçÞ6rÂA€Jp"A  ˆÜ çhÁ5dÆ 46Ø»—ɲÓÍPH?Öz„Ðl¸ýÀ»]ÜЂGýSsÙx{Å ÎyðP}¤§ÛÀ+¦ÅÐÖ’ô¢!±DÇè@/`ü»¾¾>----- €ÍfËÏϯ««‹F£ƒE/&›¸«ªb±¼Aô¡ÁUTã-Dˆ/ˆœsÿØÔcPsõ¹çÞ~Û>ê§½+:ol ZmÑG€ˆÑ݌Ǔ{ŽL¤Ý$kOýºS5hq†¶='Åœ¬>&˲ÅÒÆÍï$º8è³Xf¶ëóùìv{<_º,Ëv»=G"‘É)îwÜqGGG‡¡Ï¶@ ø‚“——çõz“òQ+W®\°`Á0%«°°ÐåêO~e2™b±X> /Resources 2 0 R >> stream xœÄ½Ë®-?Ò'4ϧØ/P‡´Ó·œ2ABbSÄ-º¡}ý1àõÉß%l¯½W} R×_¥³#V¦Ó‡Ãqsø?é ÿýÛúúoþ×óë?ýŸÇù…ÿþ§ÿ.àüç¬WïéëÿzýïŸÿÿÇÿü¿|ίÿí(_ÿÃ×~ÞÆÿÀ?WêÊ8óh_¯¿Çý§•ñ•ÿ´\¿þ~•ûþ3&üýUÏëO¿®gû3ž¯Ô?½Ž ©…ã5y”?m¾˜ñ§ö²š»ÓŸ~öõ9ï¯èßþVÀêG4>÷2ìþ|G§ÕY5³= ¿__ÿûü·_ÿ£é»èž~ÖÜ¿®g3zùB—þÜåV?ŸùZ\øLä#n~råë#çw+?#ãâY…,øŒàÎ;¢zðéá ýªRoD$,¯.i³ïÚÙÓú§5"(R{&¿n`y¸ú0ü"\2èl˜ï§D¸fý<’^èÏ‚¨jâÆ2{†‘É’éÏ9·6gqäÄœž'ŸŒÒ1¦.Qú (B!Å»hñų‹×*?Ð( ¬Ž„¨€¥P<ÂoàÉ>M¦ÜªVóÅGE¹/€y˜ô×>“w&~"0ÏšÁ²Âû× º\ZøF­ä™‹kèæ²¤ÉÓB .lxâä,F}†žÚöHÿÓº¹Ëï¡ejâý+åÖêFj—]f™76Ô7ðÙ]¢öèÈóÎ]Õ["¤Ô‹=½5ôVJpQ–¥ˆÏôü]’f(2š¡QëÄ®wq ]3ßhE3ô0ÿp/0ÿXU‹0gÑóLy[„?‡öiCù°Póå®Äž˜Û~'¶ÄÜ5:Â9cA`,‡§ù¦TÅ$R„=ðU5ï&~&ñ.~˜C£ßZx6Ÿ»Ï`\Þ'¢`Ϻz(±tÌÆó ïzâ{b–ü66ÿN˜ï­•Êð(˜¾I¼ë®†½é¥Mz+.Ú'”Ïî™ç*x0Ñ(æƒ{Ää‚Qâ±pa¨]Í åx|ƒK ûÿkë„Våê¤Æ¶Æ!xÑðÔG}åzvô¢ä†…®GáËñèzÙ%ùy5ª"W±"áGžVš;·½4¬ô¤nE÷³¥‚G{`.f N ÞþçnÀõlïW!¦çFø¢ŽÚ© «Ø&Æ|†3ÀÃFá»Ü1¾ù§õ > ÌÔ"já—Ï«ÆêWß Ù€¹¡=°w ®võiè/‰1`†ž(ÃÛ(ÿyr°³ì+ýº­Ò‡—g“k•ëä¾Hçò臭­GŽ\aü&ŒXK©XöþDHŽ'µ’¼ÿ$N“¾-¦˜kpûZ¯f[¤ÓúÖû ?Ò¡T¶·èPžéM»Pªvõ®&ªn5t¦I‡Œ/ÕóR߇=¸†6ÄÛ‡?ö­b«Î[ßj·ØŸŸéVÎ$ë#ó=r}VÈYßr•"1ò\–@žð”'ÆL<[°@öG6<{a‰ìN!q×0¦L®1Zße²1‹^&Æñ ³Q#Z™2yb¦L® ûØQDLKL.Þ±Õ{éS&?4z„P®’*S&opÐpa(“W Êó#S&ÏNX&ÏNZ&¯qL¡ücøYª=¶EíSk~HÔBß曘t§ô ÷¾ÒžGî¶3bƒu°Köì!iç÷ç‰q¿™M?ú‚gY8´—?³ËÞ+ñÂà™Ë² ‚,Ú¯ý‹ºN>Ëu««Wjpk 1íÿžmƒ.û¢ U0½ÖÚ'D¦Sbo&0³™E/wïâßã¤Ñ*Î}FôÀÕÚÃC`€¥ØäΉðuZѬæ–Öú³·–^ùÔç÷{®'À/bÊUÞžHgVf{ó0ò‹qÜÅÆWé® ø!_ŽW`6J4©Ú?KGˆ6¦±0~ôL.Û‰à=Ô„Ü3ŠlS\¶ß”6©§Í®G XOûä!•]:6`@ݼlqÎŽü(•Ö§£Ú×ÎùÊFˆúÍÚ3TÍïes>Ý~cÍøgž•Azªaã X_¹ÜÏDNE{/$ Æ>²Y/Q1<†ô6òÕ/Ê» Á]ï×nù%~CVÕùG^¾!G’Œï›p1Œù·+ƒà‰QìÚñ塾MX¬š.ÃÞ›¦ô(dPÚæÆw1RžûúšüʰUJ}ý$&8k<ö…%D8è+ÌbO·ó ÞJ>ö¦™å©ð‰Ë.%j‹nµ§@n¨§+!/R7Á´;VÏêi­ÑŽgÊX~‘)?Ù"î¢Ê9 æJôæC—ÂH¶)å'˜`¢Ø}MÌAÒGüèç(Hü¥^d«ÕèF–öÀÝœ’lÃwê Áû¬\sV&ɹfŒvyèÐC;¯¼æÛÎE÷ýá !áˆuÍ©nöÐLDzÑGlÇc¡´¯õ{ž=Õ”=Ú²‡Säð`Ý º4rÜ)ü“‚›¿QåÓ˜˜§ÿC»&.Y6u-.)îeö£_†c¸£§mUË‘‡*ÔGBv]S áUþô¾=P-ªÂKø †?Z¼¾}^ò¦¯µ.0–úõs|ôÞÙË«ð³ÏZº—µ-`1T¡Ž ¸ÝË,€°zP÷°ÁÛ±„žWÏMPßE»ñë]-ìCP?¹tŠÝsKeºD8¼o\ͲC›;ƨ%ž^Œ\~#ðŽõRb†š˜ýôïV0—ýø÷:vDá¢8\ìT2I*ë—¬àUíy¢*{kb¦ËýSI~qŠl/Èm_öÊžxÀðpà_½³z£Š<`—Öê!Äe}/^f£fbàáb‘÷X¨‹?‡«F#Oææ90ÉOhà‰~‰cü´û~üô&¶žHÓ±Gp¶`CaÀ3¬‘sß¼9âù;aÌfAçb)G³•ˆcÆ"€¹«”ZqÞéÁé…™ š!FÙ¢QlïÌ[˜ô-oGÿÖ™–Z@øãÎ^·eÒ3{,Ò_¸ßêå… ÉâãùñIÆØ^6ŒE,D„àF9ó%btÇo±8ô/íçŠEpíå+‚ÜéÓ Fp“6ÐÓÏMôì RÁŒ¤=ö¾ô¾R™×÷W#¸Ì‡}&a ÷=±0Fèy³Î(Z_K–™¨ÅÍhÇçà—î²”vþ¾w¥m•-q+"7£÷€Rr¬h}t¶ 9§ÝšŸ‚œÁcޏÃ'â`>Ñö`Ľtý©–Ió+rçŠN¼âëëØ&_Š ¼Þ¤wúEj…"“Å~öÆ…úB;—ÿ¯”¨æ¨_rÄðòf 7Ô× EmXÁ—Ý+Ò8" ÒaH÷þöÀy®P„xãÜcœÉps;%÷˜C€óŠ8~Ží“™¢½´†PúKZ¿I)Ú½á,¦]}¡ 3ï:Ÿ©Ím ýí®MûJ§9(IyF@ÝÊó5©¡hEûãDŒg°4Õ2ôåÚ#èÿ[˜øÇ?!Uû‰.Fˆ*064¯Ó›ˆŒ¸a°ˆHj½`ƒ¥bÌ¢Äk-L¢8ÝšH̘yØKŒ6»qÊŽ^žŠxG ðF3‘ã‘æ%-4óÙúFcDø˜½èZsêä×(&BÃl(‹ ÇúBjõ!ˆ}\ÄÞgƒÄ Tµ‚Êf·x:ºQ½ÛÒ&IÃAaãldL*ÄPsÏo¸fD¢%o‹¸mÿÂÉ`ôköABöž}œb:ægÉé+Ù'1yºk‹š¸æ‘Û`ëÇe=#:ðI`b¨³ S">´Šn,jV–ƒÚ“Óê?ßñó5ç‘k*/™Œ&_SÉ…VØZN1 àþœ^1 ¼øéQx@¹Ã)vå<í8=‘CRÃ%vŽ7ä»rš1aw¬=XN±†W ldÔ0ù¤?üb‰ºÙÊuFŽ1`¦ê—Øõ|JÆbêrVtuúÅ€‰¬øÅH{iz€å‰™›iŽtÛ[œ¹ßVÍH?X÷+ÓñUDrqŠ-ZÎqµ6IçÅû¬”¶¹xoPN8£ÙéY: sqcfX“›4¼N»I&™»E <ÜžGê®”£•z¥}¿˜_’ëd}{{Iþ…Xý}Fù¬×ò¬›¯ßüó\C(ëîØþ r S©ÉàNˆtÃËÞ"oQ"È ¤nöHù1¡ã’Ùùš„v `o˜¡W:ãxóC†fœ1êûë±EG2&]ƒ.··@}måN}ÏgÔéÙ FôcøH=üE‘Ù‡•¦VoTFþ~¥  sÐ¥ŸË£Î<#{ð€×Ð|Ž“ÛMøù,x°©& mAxúdFfüzr¢íg]>Ý}Dþ³†z'‡?—Aoïƒ÷Dû`áo:$_q<øô÷‘¾Jx¶¶ö¬Lø²óÍçoþ0ä»ÿ¹­††×½Wè/ôz¸/ˆ˜ ¼m…C…"W÷ °öxµ«(utH °O ½äÛ~†\J[Ô,/·…Ç ÃºðV÷‹à­ß¡´¤ZK«£k0`_D€¦GA€7`õ>ˆÇ¸KÓn@~ `¦í¬Þu5Rìíó]ÀãâÏÐ( Š-ŠÐ?3Aš'#M6:ésBág`ôy¾ c!¯…Ô—Àà“ÁýÍ#cïayÜù½GHwhäÊgbÁVWe_AÃð™úÞ‡Y ð.+TR1ðä>² ‚ÁøºÈXÔ¯\šgm­µO[Aj'» ž°>€@¸AJûµãe©B&ñÇëÒdeCi±€±ÿ;àv³A=yþ>ÄüØ,ûÐBýÅßáSë²S“ãé¨ÞtººÒ!^D Ø—¾É‡\³ ÑèV€w9 1b.€!!Ž+ ¼YÏ#Ø”ÙiP(Mš ‡¿;­ ±ØàÎǯE¹¨¾Á×ïÐŒ†ÔÎÏÃa?ް#`ÈvRLš/$~<ãñm~?³€T „àŠX࢑cDjyN:Öú îÚž^DÀ 1Xë œK–œ¬ NˆÞÈoã뉫ƒa}ÀHÆâÏàƒ9I*«=ØøÈÎÉÿ)èEúƱ~†YŒÆÈÎ…¾¦çÓÒ•€€øCç ‡šœëˆ‰r|ÇJ]t`­’øI yé´rËàLOß$ìáÕù±Xå¯>·˜åéO…Ób$¿_ƒe9¦Öh^ :a‘¡7gŸ §IBÖ®±ÄD 3bcÚ1„\ë~üÔv 1ÇÎ K¹šÙèø½“M^DpžÕcŒê…Ñ-Ê#›«7G|8W7¥l Îdʱwƒ ÇÚØ›âI‚Ÿ®$ºfBkhòN"8ž‹WäÌÓ7xj¸†Y |€ÇÆ¢~€(×Xå¤ÇÛèxw?M޼9PöæWh ôVA ¸ôx¢ü Ðb(Ø*ŸYäÎ ö¿´sfì‘á»DVZe,yñÆ3ŸÌÀÔ3Ùsȉû°U—&¶eо(æ+Áœ8ˆãÔOºCÁÆUŠR?9×@<»@ÄAÇéUv3Îà‹¸Qη›në¡] Ü|øœöÏøÀàiŒÔäÚ⪺'ˆÞ$éUëð'ÁN¶†ÄÆžÍà™Ý:Û¹èÑ›.ƒŸm|VÏS+þ›ÃÇw\µ Œ`a=B +}÷E¤"‰ÿ¹ëÔÏ&&YÓ%N»âÐRA¬×3X¢CSÑ„ÀWÙÙ¢-Ëææ[kÝ øâ×Áp îî5¦´ò˜§À`so*'VY½(¸þû÷âïP ɹ×!‘#Ý06_Œ¬óëØ :Ó–Õ7èp šfÄ,N8KI»@ˆ¹_Št}’tH½+÷S.{’µN’mìÐ7|c¨/*V0Â6viÒÎàpD)<‹ìLæ>ãI€á ÈãVŠ6dkM¤Ô°{H@Y94mÈë'٠ǰ+Aè*¹À"-‰ªüA×DxùrV¹Z8´6”¶ùÓb9U)4su.qÓÏMuéRNæöÔÏØ¨Œ€Uõ³ò(dÏL‚øån†u!)uXL}–d,·I²N ´I²N^ž’¬Á31™üž» k<Ð1YåRA†ôµQ6Aö .©·d ¦ AÖå>^‚ìA #Á‚ìš) 2ƒ› [P¼ëdhìî› ë…AŽ)ÈÜ›d謶w ²^À A¦…=™’ɦ ëLÉÜ™ÖÖd BLA6Á)ÈŒ AÖ©MA֘;I²ÆÈPH2å† ëJs˜‚ìÉäóWø8Bu¥Û$Y—Ã5$YW¼4$ÙB[’¬çÁ–d]yS’u&Yõ‹©WSõ2E•¦¹È~£œÂ@$†,Çžq"6>¯ÔCŽ WßåX¥CØbŒ“~Kj6ÍÐˆÆ KŽÕ°˜ Ç2ü½ä>§’›ƒFd9†žJ ZŽu%bL1v# ë—&Mb¬Ëû¹ÄXW ÉrŒ4nä>Š1KŠ !Öåš)Ö™j1e˜:ÒÚb]9¸SŠU&Ûm’¬QI˜¿·©„I’5ºÄ6IÖ¹f§(ãÔOIö&¥> ²Á5–î‰hJbKw ¾‰€Éj,8bâg#m»rka(íê/=ðxñMçÔÊ&·ì÷ôôÌ'ØÌå™±í¥å Ó¹ÉB–¸]ˆ÷ï~ìšüMÆÇ_ïxÖ€XàM€HnwÙÔg Id1ôñYD+~Aá½ ˜\ èY¯MVàÁ¶æ€ú“Ü6ôœÖÝ´ÎAy) æÜ ‡º{̵a¼nwl k;¯é?x™#Tï1ˆ †aÍ‘^~Q{FþˆE¹oÙ'I¥I>§°MРû†@24‰nh_Ðñ.õ*Jër³hr‡gû;/‚°:°qâš\B†E}äkÌ*wI¼a èyÊ|ØГήTêbMtŸàpTeCÐ#Rk0òjù5dà6˜kî äq“ÿ"&¶ü*g¯Ayspшoùsh{ê„ñ7µûr’áÀw—çeå6‚.ìå3sÂgf°œy{ÞŠ>;”ù5̶ø…¿™é`/¨¢'hœWˆp'ˆõdP“ n<悯Ó/Ü¥¤Ÿ!†á@ÓçÈÜMBIéÙPºÒ-<÷c‰Vj8àØ*5U•zž_‡«íÝ£– #ûbýA°ˆ«¡&²ç­Þ†9Q÷Ň‘yCWv”  yv…þu,£Á®ž­MÓTí,òÊh"ØIl‡«8§Eó >œ6g®[ì?VíÇ]â±íÉ:‘ § Þ5â›Ö?…Ë\×Mžï‰øÙÈg`K!¿¶ò;]J†ß´õàcݾSi6ìßykDï@•XZ7«ó=æGîi¶Ïõļ·ñ±ï42jH[97 ?„øç]â"¬Œ“·0Ƹ›|=Pw!Q >VÏk¬¿gò*ù£„z ~±Ž¥.j8É«¯œ5:êeaƒ3‚¶”¹‹R«?‡P±í•Ë—í}¬d®²U?Pñºl°ÛfŸ%ò4‰dÍN./Î »~í4Ýhn}êuâôý•zÖ¶¹–qR76¤’~íJ(Tvã\qK‚ñm×HáV–¦k¤“û‘ñB>Ým2cDSì)Í.Ç./`ìLÉxmTX‹c"èÒëѯÔH“D=áv`SÖ Uz¢1 ìšâ@„¿U6?w¦$^²¶U:(K~[~°~ÎÞ%sPqwn1dbt†£©Ñ, I+vƒ9‡(×q2, ËV³µ%[ÑŒ–·½õ*5{„ݾÌáÔ¾åÄ„¨íZtÐ11]5ýä–¦Ã&XÚ! ¯E:èÛK7„2~×¥Â臺!,Í~OåpÖBFO#E§zƒµµ¥v1@¨‡°ÔVía»M;„éSbþ>¦rÉ¥´xFÚ!•ú2µC¹ §rØ‘_Ê!‹§d&l”ƒ!µ»+‡C¾­m ÚToø!–r ¯§©vqx“­CÉ0•CLM«S9±®k.)R×®Âfï}=P¹Ç†rØ«©iݰ+Ќ۪¡':TCÅK5„áZÛ®v»–§jÄ(S5ìS™¤j¸R `FUCá.ЪáBP5DÈí.K5óÜcÓ Û9¯©†IiÕÓŠHòÔ éT(K7¤bLÝ CŠi˜è´¡ÂÛ"}IÊa×aì¥â+oÊaW•—PñrMå¬u¶M9$óõ©b‚j›"jÈ©3Ø-÷’•Ã.5,”CÇì–r_+S9J[åÐà¦ÆV‡cBV‡t¿¥¥³Oå™}*‡o‹ö£„̹‚Oå,t Èw¸Ô¯ÑB^º¥ôe°+΂maŽ~É2Æ ÑdœÂaPÒª €ÿ²)Íüe Ÿ.×µƒtèm ¸q!2Už¡óKÃXÌC§Ê×bÌIiŠ?º¨ Àøĸ¯a<]¹ñMåös8H8~ ‹cRmô,t€ÞîUSˆKâI“œå£@Ô$a<9|Î/Ú· Ò’)+„8xÇŽu>Ô½âw)lPø MÌí§»lИJaØg[ËdcˆÌÙÜ—"¶bªï¯w&û¨~û„§é0îiйQiÞ•en¦Ã{#x¤sf–íð´Ê¤€©=Ž[vú²žw Ù.Ûὑ½¿•°dêùÚ\5-ϹwßI÷)¯oe`“p‘šRv0 œlš ·"ïõ›»©ˆœLÉãµ½Ác‚Œ ‚$dÿÎJ›è`Úƒü¼u´¸)ÙáEÜ è\œW;CP¢7´®a„M¾=ªìô`žLÖãOY¯ˆ×6Òn¤×ã°Ì$Ÿÿêkb Êk¿ãÆÀ—U=¢Ëኗ+O±! Wòâlpì‹9M …Óùx@4¥©‚X„Ò QÂs’M‚Œ}©T<­´¡7ð©.ïVŸ]¿Û¿Èì²['J eîyÖz€eˆ³]¥M…è‹_ x³(ÄÓ»šçü¤¼hJuxq¥ÀÊ GÞä}Ä”:‹ÆïÖ‘†‚IŠCŽsÒ¾uÔ‹ÊŠ{™D“5ógnÀ‰Ñ,=?ä â~€“†2óLæG3h’i·ì?ˆ¨wÞ¼=ïìòñL-Jª4²ocI”SIKáˆOÝ Î|JÏWPÞÀ rؘwL¨<_°iTUa<™î†M½ëq´ƒ)0ÖOi~Þ4«æ«¸6©7[CÐü¥ÞØ8ôyè"vp4í ðåZ›ûϰ™kcé±þŠÂ¾·ST/ e“Šà´íª Êg¶•Œ·‘³i•,„~S¬ßί ÄÌÈa jJ`¶„¥xËA;ò"Hƒ8 Í ÁaC”$»C礯‘C0ÿtÓúÇôgiGQ©ôpLOç0—y˜ G ‡<÷ ŽT½vDåÁÀSÛ9Èë·íâ­w<ž¸TXE³¥4wqîaÖ}ý—&·#Á(á‘ÿ÷Éí¨Ë•µ-=¢Uµp®Úd†'*aI(D†'.>P¡«)§*©‘º0Jí˜ÎŒu}öXyîèÖÌpGm3¼nÄóvmhž‚³3ßþÙv<–mèHj£ÚÿŸÊC‘OPþ ¨>è›aY³“ú Ð剸žˆ¢ÄÀg$~e"~6ò1ül÷Sb>²áOMƒ‡þ0ñï¡ô±l‰ §H+\¥As®òáÁP¤JRsÄüÑ;Æ •"ÐwhPa0ÌÅÑâUçd»afr@vú›Lu,Ñ÷¾FÎl¦ûо¿˜¦ÏØ-ÖÊÜcWDñýÓIãp÷¢wƒ‰%ª ƒ,m%¹AB!Iû¼”z± ÙˆÎ A¿ "=`ÃLMÌw­²Há‹xb”À…H½zkèC1ü>´O /«m1¼1Û{Á:Uq²Á]ЪJÜLäxÀªãÝg•·Ó8á…¨^ϑ퉰Ð9!¤1‘fý\ ‚¿‡25:•¸dš}vDë4`f¹ÕÎ-®Sã³j|ô½=Œ,76¤Œ‘‡S¥”YW}¡É›-Ž¡@Ÿ| Ó¿1Ã!ÆkÌ_ ¬ÃÞ ÄÏûj-1õhÉú92b bˆd (rHÝWrœ¹ Ê‹¿RÕ³°L‡’Ú@ùzGÞ1#žÙ_¦deQ¼øµ)BÞચ˜h·™ÚUYå î@ *¼3ffåÿü¬ÜiùwŠ•b¾™wÛôµ/¥"eÎVÆ&"—ŽØ"µ‘Ü{¬ŸMîÊ)%º¿"‹R91«à^23ŠIHʹc¡‚÷Þ\,ª É<ˆÄ€UËâû‹IÅ×/,ö~û4Âg?½Áì­³Õ¯*TùkX0·—È#*p €F«ã¤ûÞÐköBð÷S€|o/Hf åWåâòÀ!Ë"ÌÖC4YŠ`u³Ž°°T«&<‡¯c)>Œ˜ô ¿`MÀ¤×„OYãqZo ¿+E™ÉÚÙ2ØŠÌáUMf›·8i‚†|#¤\OàyÖ~ÿ˜µ,8AÈÞÖ'­&7ùiœDײÜÁCNó i³ 8fYí8ãù±8N/ü„Ñ•>«ßœ4ôíVFÕc¤49Œð.ëQaPJU3âXÅ=%ŠSñ ¢V­ÛÏí4”U¥kóÄ &AÉäÈÍÒ”P6Á‚¾¨@èü]Ó÷q~»’|cÿZ°ö«ö,òÖÞá{î_ˆžç6÷/„°[YûW“Ùï ‡+ÊÜ¡xbßÀZ£$[?·æ †¸ŽiC¼P{660øêÚÀZ÷É/m`cãÃ56°æ|Ì0¡¨›˜ÞÀš}ïÚ¢ÐýëZÎjHºð×ÊU\ÛÖTaÎÄ–;v0±ƒ Œ ïµ;Z•¤Ö†Éhsí¯ÉOáÜ¿ óþ»‘70G‚æÖ”¬ aãGn7îyÉ!SÖùëÚÁð¡m[X“@;Èm’ÉŒŒh‹â¶ìhuž)¸8X8`¼·þ™;®È¢äm.ÃòGiàØÁpóðÉ_Ýÿ´\ºü…]eiÿ~òÁÜ~ÃÃuž SP\¹jsUX™ìí33ŒŒLztç¾Üt1›@'$ ïçT;ä]eñUæñ“i¨ ÛCùÙ˜í‚nÐ馯 Oy9úOyyø…%@ÝÀ wr%u ‘TÇBŽ)A}fÀ´ŸÑt–“´-yú ?BHÔžâœ$NrõÊ’LžB!²ÿ‹“xK"½MññÉÖU*‚ØÜ0O˜gVüý ^\áR?N'<”¸Í÷œBÜŠ â¦j?èL–êì\ Òrˆùî÷’RÈáÍSjuíÔLžv.9ꥈ¼ðkÖñX‹ý !µ€Aÿ×khíˆ÷$¤¢ÕR}îO\iêOLiÙ§ôxÅ`âg 4¸Ad°Ðz‘Æ9‰w«äÝûd±LâPïÿN¸kwR§ t•ÊR׆àwýê-çåŒ:PŸ½uðH}¢Ü(yvùvÖv hþêåYƒ³á#HåïN²²OoDþ¸†”!Œ€Â54$ßOXU s[ªÔé¿ã°ö‚ÝÞöüÖþ¿VÇYB»1TëÓŠÎ~ãœþfDów¨ŽŸˆ¹Ä+ìù,«ÁUyC«tð\žà?óCŒ.»BPŠªýãä>öoÿáÃó÷'¡)ÿý Xg*¿¿n †7¨Õ/WËJȼuÁ½AtÝ*µ>”Å€›Nk#ÛA¸ÕaÄ(z€Ç}†ê_Ô­ w®!ðúr¼zúrŸ±âŸ}}ˆÇ¯@`+yd.Þ Fn€|¼PŸû Íĺu¨ŠÇ$VºuÈ€GQ‡1nÒE”¡R«d1× Ä~Ž“ª·*ŠÃÑh/ú±Ÿ>üuÆeÐ#Çé„dº X•ÜŸ "{‰Z†Ž5c:¬u¨CÇ ¢†ƒ»o+ÑY#‚ÁŒ;…#ZŽ˜\z1â’¤M×)yW´¡x‘•¥Æ³ ÊvŠW¡Ré·6¢ Ùû ˜§ïpîïæ²Çbb«Y¦>¼k-éôÍ¿°—ßÊø< šÜóW& =ZgÊa6“Çhr”¡š4Ã˯{Kgž6Ä­cYë×êÚmRš64-.ÐI^ß!úÉmôÈÓ7Æþ˜jvžÑÁ‡ïïØœÈ*uü8ÖkE¸÷Vµ3Äzå…ÿoA¦’a%Qܳ„ùm[§“(XB>²oŽÔ—f9v7¸1s“ðoÊqä*¹ª,[f”’÷îè»7!ŸäD= ¹ˆ6 r^âe>‰¶o×ô‹wŽˆ®…_{#3Ÿ‰ýË']n~æÔü!©ôLÐëå¤\@ùKºÄ‹–,P؈.Ù:_WÞs´¿ÑTß·»(zçuƒžsMݺ$#ÖÔs/ÞºµnIŽ¡˜>{ø+÷* ] cLñª {¿yÅwcQ©O“šçZRŸ˜¿NÉNŸ2ç˜êÁ³„[9%âò+'Š>¼)î28yø´³-|Ë@ä¾~VJ¤œËGr=íé^¢®bû<-FˈO¨Z7?Ó¢7~€v‚Ýuf±àïôŽ`P9¦w„«a‚Ê{ÌY(QËé.A¿ý΂c> Áš‹×r2sž\[‡uá8K-Ä¡f1OGóYý˜xjO_ó†s9ùr©7D’ߊê˜ù”Ýfnú›»‡8#b”îÍ~­».õj=p;„ÙQGng |BJì,iÏ3@Ÿ —ëy"Âù¬rxŸÙž öÀÿ 8ÉÏ•S‡þÈÕƒ]àæÍápÊæÜ!uÆ&6¸O™¢æ6öº9Ê)Ü¥ OGô†`RÞîSSbëróÉÍ£™?ÁÑÙ)m1_ç{sö( £ß•´{ؽØ~ŠS1´J‘D½øè&§¾ñÙK3åÎË/-Ä ­¼¤@²°Ó©£ºÓ3͉HV³¥µ¯¹Í¨ÐÀ¶[P5˜?·Y$¦™V›¸jT-”N­ã5à¢Ö ÈÓEC9þ'uJN ßJJ)´Q9C&"¼%x…æN¸S¸Z¹µf¶º¿³}æ_s±¤4HxIWýC—~tT¤4kàü«/X•ùW_hºOù›©+ÆÉ#qÃwZûn1Ã'8 ¾3¦¥üöÎ4ƜѪ!ä¥Ã5¤EìwÁ 8¼;ºÄ`CUó_ÂÉ9U Á? 3aˆMU$è8ò8Xb2rQK%L,, A1BȳðE±K¥3ùÔÈ<[AЧêeÅ‹›ª94%1ÎÔÚ€ЖñSŸƒAþ*žªøÍÍ_½Á:Ñ'Dóù˜Oì9bPÕÖ<îÓ»Ø5U(q£Z Äxu‡Êô#ö*¼çÓ[…“ë•3‹¯èl=>†0v×a3Îè¥|Õîó=ïÃûo½OmòÊþýrm,LoføŠŸ ¿5E‚ZµçºÉ `ì+ëÐÕ)F¹ºŽîµ€^ŒÌ¤4ÁUééØPЮs7>Ì€¤ÒüÁ>)ã±Å•·A=ߦ¸R/ÀA3Ço â¤,ºx<ùWªmÜfœGiº¹±¦Zx½š,˜&qŠÑ¯£&̦Nóœ i…­výŒø!Ò•Ø:Çgy&€”v²ƒ2ubU²ý}þ>†¥zü¥Oô;©!æ—ÚG¸p˜ »ª¬JŽq±ìƒ–쵺C,‘r,„O]!¿©b=+ 1Y@å|xH«põu&3§B¸ˆy2ˆuq»íF់‹‘¶+²äQì¼NÙÜú ûPt¶ø²S–‡ÈG:"ÙU˱钮+} Œ.÷;˜ŽÓ+3ó?˜¦è-Ï€Þ•2eʘ?3÷»É·åÄq®ã¢¤;…xa“ƒ­éâ¨cw°Ñ-á¨óî<ØekíHBG`óæzã1•®ªßX5)ã9ÄŸå¡`åèæ“h>íÒ\ò`·VÛæ!Ôžc³ÑAÇ„Ëi.çÕ•bךåCWUN,ÛÎb ]Û»;!9ø ƒ‡é´ž›ÐP ¹S Êp<‹Y~º" [SQ4Ð1zm>ýŠ•rî¸wð– ®KPØ ‡,[]XúèªïÝdÃÒ¶™ÓÔæ¯hCj<§ÅÌJ'ZáÙ×êrþýšûºÒâ‡'îRÅ oïºZíX?ËWú¿õ°®²Ãz¬ÊáhLÖgß^åÏ‹™ÞèòQ$ÉWÞ²S‘#ýEîÿoÆYÁõ¯…ІMpI¸\T©âd%ê®kŽ[‹¬í¦E!ÊSõêÐÚQ¹¦+Ÿ·® ù•Eçâ_§ 1`X0«tÖйP°¨RŠ6´ª€’!±¨á£é ª¡3V\LB÷òÃ\«:Ù5tvS´æVú®åæK. Š—/%™3÷o;± ÏhÝu•clºh–¥R¯%”†¯Yð—Ý}þªcäÇáY»$À*µ?Ç>šŠœÓ:•Dk_ïŒðŠ *¹|¡Sq‡àÈñªJ’è"R•½ß]¢¨DQH,´¨ý+dÑVñó¥•]yF—òP:-zl·å¹øËTQêcÓÍ+ÝŠ‰ vŸŠ¯U­kVs%„EŠí¥3HàÜqß óêæ¢¡o}B:˜°#øÃ¤„¢!-G]çæ¢aX¼#B¦àNÞO¾°¡ìÚ© ]`mûÔq·nÚ Ž_KÞv¤ïá`oß´AÞÊ8¼¤lJº8d)ƒ mOe0NìRpnÊ éïº Âºç¦ Ž{>ÕÚ’¬ â×»Oepˆ?¬ bç¦ ÆQf)ƒü:ˆ<Ø×¥ û¯#¤ ©Jí5tÁ¡$:ë‚Cw‚XÚ0¦.ø>{ÿ$*Oû¨òËÏüvzU …J)õ4Eò¿ 'ó•é”QdføR?e`b]l~T¬F%€ WÒÑä!ÃÆ"ltp!І|ņ1ž¡ÕIï"¥-îóz`©wt YÍ…†Ç‚nåVB+lèF{狎!6©N{ªYßTlst—›DÜHÌûð¦IÎ[ábîå¶ÓÆç¦UäpÌlB¸^†R š3 ‹NئF(µŒšŠ•æüêãX Ó‡®› ÆMUù˜êõpje¦Ÿd %WgÉ€!Y)¬ÀLBPIñ1I›;Xdí/£úEÎcUi¢ìZŒ`{V6Ê”‚Cþøæë- MÖ›0¤î¨‘ÒÊ“§Ã…äŠ4ä¡»¾,iñba7Ø#Ú™Õ¥††sä ˆåâËüh‘"*GÊh1­Ð*Gâ‡% >¢‹æNjô_„›øíb­R«ä%bý 'xÑÞ2ã"•it½À—Àª1“h®P¢ÕäŠ(Q02 º¤2Cܪ÷ÓD1¥ØPCüºsdþê¯t)%„~«ìÔòšRuì¦PÌ2˼ÑîŠ/žW,ntçÚ–¾rP¶_Y„FÇ®níª€š“WpÔªIí6Q¤#1xÛ»ÜI¡"Éö+Þº©Éʼ~iºÑé3¸Â€šNч;Ótº)w žFþ†–Šp§XH”]qÊ[ä­²#àùË©FMMÁrë~SIÔñŠ¡×DÈ•¨ÓlÂq«bs‹“oU1ÁDú³5yÓ®½ Æí\#›zƒ™ö<e§Øß!¡ˆin’lŠ˜½iͧµÅi.)ä_½ZXcó£ãðºàÜ./Ë#«¸ôqû¶P>.¥;)9?|åÒôv {¡·p ¼7ïà6Âû±A­î¼ Áa4ÙSò< rŸ7ïÇ­´ïàtïÑö~øNÐ)žqH{”€oUîµ÷aÒœ–÷ãVáÑCþœ—ø§~ªœ´;ØSîÜnzO÷b·¶ÈFv”…ûã!ì¹:{xNb<÷t([ƧlœÁ‘F¸?‰rnî»F§°å2‹E[ì?ƒáþPz(ÊG¤yòí,÷Ç­ý°ÿÃwd{¿ ²Lø?¤‘¦ÿãnQr›çÍ‚ÇdHŸ·ÿãîq”„l?=‘=h檿wx…ä¶#6 àãéÿ@|žNð˜öå|@.‚’Ða z“Ô},@Ôð‚s?Èû’b¿½dä¹]ÞŒ{ì-[ä°äV6îôƒÜv©Ê rØr™µ² :BŽ…¸”Ð®é ¹G„#ä AºÀ˜ž[9vu !;}å ¹UyNàíÒ·r„€YÏÍrËV<ì ¹[¸üá ¹c†‹­Þ(ó9­+SæVŸt!šgÚkâåðfSPÝ& ÄHŠÛp¹½+Ô§È1fŽØS sÉý#GF@——‚”I§k›"A½ë»À¼ïQ&›Àd·F ©£Ò$ë–>?å\½.ÏáË æ|ôèNV@IÝvª©zÆ£ßO…yað­˜) <%TtŒR/È×ú^Ñd‹È$¾ÌI–ƒ ðrÀýØ0‘£ ss07¨È”ãÖtFG!zØYä¯ZÐqôe©€1Šù³}à™ “éMÐÕJ‘š$áÈb¥¨…1nù]RAʾ–¹IÒ‘t6”þ´ôds·Ç¦Ä¨¢}EyvìO—væ¹Ð¹IîJLß¶% À¢FpꤑéíK†ìÅ·h•†d¹r”plg«{3¬ÿsª›<ª,;bֲϣ²$O#²«‰}“ÖÃÁ4‘Ú×7osŠeõ}]5å­¸“–¨Ú‡ü)«`p_“Ôð^…kÜâ¶]­{gH§fž"6]màt.E¢X÷óÔ=€QÓìTÝœ¹±ÁjGÞYÈ—Þ‡Šø’EÙBáâ*q‘T ™5XÛ)¦‡È:þ­ ±úv]»XÓ±«M®Ýẖ\šk:Ÿ¶Ëµa7¸ÄÚˆu/±&ï’j=––jËÍA©ÖÅéKªõð0Iª5¦ÝL©&p—jóI5‹ŸB­«¦íj]Fçj}Ë/õ¦Êì ¡ÖyÒdj–†P“¿o µ[kiI5Ýj8¥šò¦T3¸Iµ‰Ñ”ä9ÅšŽÔmbmD4KbM_¦ØR¢å&Ö¦W¿?<±„Z Ã~ µ*V5ÍÁjõ¢j!Ó\ ~É´J…b µJu| µf2dšµ·JÊ]B­+(²„2­‡ÊÉÂÜK¦õ©nG>’\¦L›`È´‰LãeMS¤u9—Hë:²"­+¾c‘ÖU#l‰4]g±‹4;-B¤)Z2EZS@s‰49B–HsvHˆ´™,"m"(ÒªLœi:ѱ‹4ú`§Dëâ‹hvó-‰6ÈLK¢Y’–Me•7‰vG…ÄËí@¤š¡þ=†ü¤žb$0M‘«¼À¤+¼¦£¹HŒGLWô{zåRZöµÙkÀß„«ŠM朣 ¦üæGŸs¯zÕ–zÄjƒºZyP`Cè¨sSÁM~¸iÉ]–’”§ßxÑ ¡4"Ýç%„¦žœ•Ts÷ ^_'lyøÚˆñc÷ŸS4ðê‹“Rÿc¯H-öä—p4ÎtJêÍL\Šß¯®Þ0G;UGÂÇʼnÉwå2*všT‚ëË¥"i¸Æ=½QO‡£6Ä¥9ñ5˜7¨+BÍø%û¨ÿÌtMö‡ê@E fwR¬.u µ½ û‹ p®*yä‡Ý!¿èâÝlØÉ)¬˜,†ªrL(gZ ¸YBÜž¾K‚Úç±Õøù&¿»[×F}Fg6æý¸2³S¾.gpQ\ýÄË*¯ÔdItò…+ÚæÓ5³6ó|ªP¤¦`V!'†¦;¶CþžtŒí!‚ ØnU™Ki(ýK– @ûX4Àâzdž™d€Lþ4fÊ4“¤ê, ‡6ÀäjጂòãNׂç°9_ ÃévìÛWÒ©ÚÖæÀÍ•v=°ÎfÇTæSþLîκÝrFª@Ú¸"ˆ¿§pYpGæDÉÒíñ¸]dêœCç%Ëç+ÀeÁ³ýNså+â*–TC€ï›/Ür±Ò\¶ŽŸhðü\c:Þ¡îPL¸,F‡×O¥gª3h6àæ’ª4ù^Iù~EƒžçÞ~ò¢¬dJW?€!;ícâø|òi[Ntc©ó%^Ù×’ÙâvPr­à¤bžMwsä²’IÇÁŒ ¾Ï qpð'ˆ5Ã""‰aKÏô­ÞÁý”׿‡«¶³¯EÆ~ý¾F¿Õ€Ò,çç#HM>»g`™½áæ^c fÕTÄ*0_&瓎¶ƒØ+_ÁÒAØ_²ïÉ«€lîøÄä{)y8ùÎÞèç‹:aVÙoÃ\Añ£ø%/žË.ø{…<ÈIV7W<Øð”'2VA×[„öÊX3ÕUjsŠ _^œS(]-&F¿“®;ÑUrò‘àªßlEV/EвYÿ~edvÞå®$#²³L.# 𸠊>Ÿ DRäæ{"tùs´–òô· >ª;#Ä7ë6bYûé\ti§Z2ä½&Â]ùžˆèª‹¼•"Ñâ?þª™/E…³*S<äº:m #ž¯>Ÿƒ6›/Ú@"ž8rIÜNÖ;`¶^ÁâX°.ÅÌŠ]¢‰ÀÌ'ܯŸp|âÃPŠ®Ïò[=C DeÀæ›5)±×~BÀË¡L̳ =k/š¨¼B `R Ä`hÌ—«C,ü3¿$'@ôû-vRöÁÀ„"ˆ’²™^:Ö×+e/&"À< ˆW.ä<¿6XSÔr˜šYebsÑ!2€G¨AöF«v{v\–žeô†«¦4•¥Í.ªsG L̇ðZˆ51JUú ?ßë•`ëê °gÄf‡A¾¤€9ž“,©êráØbE~ð4ý ~ Š~¼¾w>pQí@{¹„ â½æEÄI\œ™µþ`Ý×'î®°¤A¬Â‡¹«.’âWKÝ# _®\ª/"XF%7*”€‡Ë: –«å_D_âwÕJÈJí8?@®v²æãÕëº3d‘Å„­ qÌÙ«ºdô|¹4/R¨sÔ „E½Áƒñ~!HQ”ß@¬®ä¡È@<3Áj¶U§v²—¨“‡“‚:°é²Ž„C.Kï?@\({9ì ¸x„_Töc˜»"±¢§afgØùKL£¿NÈz§qMĤ›'²:X‹#«K.sÈÏÍ…tkLp†Ï•”‘m!e–îØ~†/<« æuF°P[÷Œ²(£Ì‘Ðe>ÄK |–ƒçX׆ÞdQ®Í™6Æ@ŽGG®2cñÝAO`¨o(=`¿5BÈ»«o°ž3ž¯›çÝ~ŽTƒùý‹úðì‚ÑûÃ0ž?õa!¾b®Sà|lðòÜü]y ¿UÂ{´wÏ “›¬†¬h€^ñòésyª Τ"ð\býðƒfÃH›ïz‹¶Uâ5¿}¸ô¶»æÑÌ® |ýíGÕ‰¢«ѽãkÙÀ‰'íò9ñæGö=qoïÀ{’ÏùN§¢Ÿ•°°ò?½1À#©`zÞ¸Xà´¸ A3M:¹GcoûfÐg?‚=‹Døþ‚‚J´IENdÆFÖJêÜq°@ Àv‚ÉñÍþñ7UÉËvØóÀ½Ñùû_6jXef,Eþʺ²fZ5Ow¹\¸.yËm*8­š@L«&²E¢5Ù)ñ±eÖ¸;Ó¬•^3›5C'§lÖZfˬ1"Ì7fÍûÐiÖü¤Æo†¾N]Ä’;Mχ`h4¡¾‰R”^§êCfÝÐP2CéÓ/b‡Ÿ0ûn‹¤Òî|ƒ/"à¦5â鲊‰d¹²óLкd,BR…½uº}íâÁ¬¢ù»*šl’&`¿[weåjŸoö=Yá?öì!táÜSò­“ËYJÍ7‡Þµ‹?»|k%¡á*åHòˆ!‚'oéZñ¸ÁÄÔ—cbT1 ¢!Ô”A¸õ HwÏðÖ³òq¨á·ª-=ýVÅèùûÐ~š(<¹‚½BY›ùž† À[ç)²î>ÏL !¨ØDȉþ=_€Ý¯›“ܤ-‡ïYñ§Ç„ý‘‘‡ô$òÉM+N‚çVÙ4ÃŽÍ>âÁ‡·^O¢e¿ŒÀ×FžÌÀ$`ŽGb|µO„f‡àÉÉÂ?A§þ)yÈêéˆE¡;´ /úrKº\K$; ï°Zþ-‚$îþêƒ\ B;%ï+ö }ñ¹zhÚ¸aþ ýϦ5}m ÊºN„òÝð:µ0• ÈT…Ü'ïëàl'f'SŒôäñœ)@ÏHD>§”/h—o˜ƒ¼ÝºXoSñÀ)¡ˬOÊÝuö°“G‘X3‚¦Ã7áS†FÇ÷UÆÊZ @¦)d•ÚzCIRh]ŒoSt`É\§êÞ|Ar¸<3`ÊÐÂÐûuÊÏÁ`îS¢Á¿sí©K€G¾l Ì”3_Ï\‘³ùì´õùy¥ö³{òÍÏîgïÞ}¯ß“<²’¡I¢•««VH>ûLH¾îkYèÛš¤Ï³÷=<¬~äÙ°áÙõÑ^·« ‚U’I×wacæìúýä$Ñ…ñ؃!Ñ‚Œ{Š6€tÍ$.ùëTö|N^ 0¼Ü'ûûYr>Sëœàš # Užxû°J;Û}f~¿Ò¤›½“á3{†Ñã›è¶&ìz£-ê4Ÿ#õ¬;q6äøú¹*>/•œ î…€wêK›[ ó°¤4±=¡àÖ¦[›.»½‘Àühä“r~%UGœÝ• wiÏ\IÉ;F$ßÊ¢»’Îx.‹ºeÑäÂ’E7Á°N&ÂÝ|]]´?-ºù}Yt³w2Ø¢÷Ë¢»’O‹n"b.‚?àc£€ß‹n"€Ãg-)¢¶<-:À#M‹à=ʲè.FÞàã J›ÝÑ&‚«Ëoˤ›‡I·I}ópfßäû1ÜÏ\ÃÊýÃë"³Å¾Y7ÉM‹î‚V³™oÇ•}ÕzE7çMƒmèâ9‰Ð¬ËÆlФ$œÝ•O_Pƒ]j2ï ¿¯$]gtW’‰¹ ºÀLû ¬ù qûÆ2"Øæ}…A">ì9 ¨~Áž»†´=§î¥eÏA¾ŸöÜ;‘eÎÝþ÷õû~AŠ =æ@ûçtýãŸÞÐõÒ•ÀU{ý÷ë9ëZbc¾Ñ]Æü#'•B©'7Úc! ݨ¯õïê eØlþOÖ!™ŸÌÓPô/Pß@u†*ŒùGáVi6|,Œ¿þZ¹‹ßF£ˆf=È_”éø›Z¼xì¿Â¤ .ð’|ü?pZ_NšŠxóLÉT¾øá¤b8“ibC=Šï%Ýn6 W)s7æ§ÃISÿEj_V-…zÊÔ‰– £Ï¿ÖCîã÷†Ñ0f»æ/ÚxÚ~Ðë¿Ò´á ô³®êJíd!‚_*ônÌ?p©r“.'=LD¡+÷µžÈðÁÍZ Š2­g«Œâ”Ëür`Hìâ5+©=˜/¨”;[åWËÇÂøó¯õºø½ÄlÖƒüEMÚOj}ºä{9½(Ã_“ÕtÇ©7 yv•Ïúæ´P՜ϔäз׌ÁU²Æt†‡>`P[§k×KMV…ïÕ÷iän˜K~¼ùÚÄ̦×ȶ¯½õS$6]®¼.7 |}Êÿ Ìek=wåÝÆI‡Ì{m¥Z3;Øc:QŸ‚‹Þa9¬v GˆèBÐÃWHòÓ9NÀÈ»yRg¹­&fæ Ä‹À2 `™7ßWÖq!~Sî˜+›¥Ñ/¨BYe²ou^°*ò½Þ0ª¬þ‹¦ßtiRÂݾ¥Û£JÌš­hh›Ò‰R®¢çÅÅ’†D£™ 0Ⲏú¢ÕÆ]nqaÂUÃé&]åOŽ*øÀ¤s=q@C2)»ÛÌ6'¾št¿(S”„Á¼RSódðÜýDôSu"1‡‡Ê}ÊA\ÌvÊ«b7èÕä/â!¦Žd3êE^ÀûÜä57 u± ⎻‚,%‚Ns ¼K(Å„-’þ·ÜunæŠ`RW‰ À :Iéæ3†ü®á]ž¸<_±÷#;Ã’]"¢°ì¢›—-ov|\~E˜Ë÷^pæ°Eú:À uå±tUÑ¢§ò‰‘]†ÞÈ×Fd‚±d÷Ïkå|¢OÚí¡Kµ»‚ÈZYâÕò)±õºt:‡zqEM $ c In´nïã¥>ži ²øE›g‰¡a_×)ÿb×a{Àâ8ÁýÅRaó‰|;º™%¤ng*e§ž“Ü ð`{Ã`á–×AÏ~E­±Õ„îÉŽZ¬´½º!(z‰Õùã0ü"†y¾ë}'ü“´ê„n3†NØ®¢¯$7“nºJ¯ 9]Ùubšœäš£&Ùƒ3”$fÙC/ C¬°9Èõ;¤à‘]öm’©GÌŠt<½ÊÑeP¹ fFŸçáˆÕóy… ¿¤àVؘ›‹÷¬KwÄ}Âܶ㎉êÉ);ÛÉ¥cÙ·˜®‚á|¹ i8Cž’ÑõR HáÝÖÙ¥:бøÙRM¹2±s^Í2;;g ˜Ò¯%p/¥~nUMd/n]_r]u~—‹÷ªÖb$£_Þ±jÕì_U1®3\€%/U?b‡íè ̦\—ƒï‹îƸœô÷ÖÐoŒ }«7b6Öºaÿoðr|fMïJWS¤±¯È/J‚9XÌË3aógw˜›Ã5LQe³‘>ƒn¡®„á áÌþÉ•9÷±5è¿"û“sKRF¥1ß ³(omdþÑÐö‰º7=ɼ} ¹º?êgCuó‚êÝû4bës§¶ü ³Ö_ Xbôí!.$l‡ °è澋 Å,Ý6Š`iÖ+æ,¼¹wn¾E—åsý–mß–|$©¯åWš²_cm•æ€òZ~¥Î¯ê§#ÆòCÒeÞVLŠÅWª ;/¾ öâ ÌFaeÿQ;ŸDC¿1±ø€¼9bñݸ:_qÒÖZ|Eésñdyª^iÞîmõ‹å÷ð}*±üÊP¼s[~E— Íõ·xËï%?®¾ZÝ)4zØvܲ‡"©íÃÁëLÈSõ¬Ô\Î ¤º¡è&r {uÕ…¾Ë ¬Š*o!²Ûβ Â*J†u‡»Ê/ý®r@PLÀꪌÕâ­ë¤÷ccâm?}djbš.mùV#¶;¡^Tî™´äcÆ&*ß½œ™¥ø5`¨ØÇTbjvž×´ÙjÖ‚œO(˅߀þVO TðÌÚUCí*NĽrÂSÑ1†ëG®–SôÅÀ#?Ò¤ëcê_ìF¶M]§.ûƒ[³7òàØê0Ÿ9¶ê”¶Þ'¨ýèòáœcM@æÄ,fËæ›wvÔ'By\=v޵1N[$ÏË€›äˆ6d4JɳÝ(µáH¼\&`͡ƗÕÂ3HB7Ø É_ÑU*‹kÄ2óºEÌnsÅ…sŽí_«ò5ç],§XÓ›{kbNÊ1`ª­ÍÀµDc4ýóïy¥ºÎVm2dÃXb4Þêðqß›AB`)K„ œùh»iÃö‚DHÓK„` Ÿ÷.B°|ZZ"ÿæ%Azä. ÒO{ƒ,AºnOœ¤;ãhIÀl¤ëÀÝ!=,8‰|¶Ô]„4Õ4 ¡\u3•šÓ²–qµ÷õ„s0-Bž&"Ž;E2펢‰üÆ!r,”EHÓ­^S†´f¦ž2¤9ÞnÂye×-#Úpü9dÜecízý´/‚ ÝWÓ¶+!²¦À2d2›eÈvÔ'XKxSÎŒš2Äµç§ i÷f¸ë¶FKóíí˜"‚Ë» iÃ6÷zBéÊ–"œCw"¡382…® È} ‘Æ(Ö±„È>&C.Üîë Ünc^N»œž€e_ÙmÜY h÷wï¶á5î>—^ã ¶×xÃÈkÜ^ã^ìÍš^ctcúŒ}eñ\¼])>Ƕ¾1°¾=á,Çpw\ã««„Æ1=ƽé€UxŒ'<=ÆÆîaSóØQNä[ãÀ,I ý›Çb¶Œå1î:8:=ƽ:Q><ÆÀÀ—uL±Ë¾OÁª‡z"ÑÑuèl=áó ÓcL =íc/‹é1î*[2E‰ácyŒã‰ð÷lUÕãžÊð£|X{ŒÁ?ËÌÚ`‡ñœš<ç!(ºÆÛCtuF ‡qWq´å0&Ík¬t¸a1áû:îåÍ=,¾eºÄö«ÖM‡1HÞCn¶¸4 ú£¥1Ô•4zlþb£61KèÛàgGB±¿0ô·cù‹ç’³¿˜ ,á§›Tm›¾O¢Ž¼ÿÎ3¼j¾yVláJÔ`Úl8ÓÚ¿4Óê€$Í©ÿ¸Ÿ¡¶ô¶ç=ŒY4ÝÚáoÌr¶j9[6 -Ãz«}-¯wgçèÓ_ËèÓSI_ àË;º|-&V¾œ£O£ˆÎ–aUny[F÷yt ‹Ñílg' œ7g§ •OoËÐMhSÀŒ6upvŽ:U ú[FˆFû[6Øe`6/Ü(?üŸ³±n4ô³œÃ'œìo>dþŒÏ¼i‰ ”åì$]S[š%fâÜ]õÃéåñûÉgÑ6t§Á±ü-à2懻eãCZþ?øò£hÃ%á›sóáÝ;ψ©˜EÃxk#ô†¶‡–»s6=ÝÛÇÂݹ5dwç†>®AœjÙW à­Ç]“0kýj­¿ ÃõwG†`œÀØ OQ,gç½Tf.À[ùdký‘6gçJô÷úCÙÔ´/?”¾½7g'N ô-pk9îÎN×[^8™>–ß½¢övÞ+ÌðŒ©Ú3ॷÁ^zÙè[¤¦ì‡90¬5“R]÷¿¼-y÷Õ½hm uΆï™"qœYxÉêø„i·¯X˜AzÅÅþx¾ô9tß Ï“²Î>Dfm:€Xë¦ÉéÊñ¦4šGn¯ÆV ¶êA’‚U§<•Ûx€ÊòØèQñ5Õ„‘—G×Zw­Ì…´õ¿ÕHsÞQÎj„&îö;Õäl¡Ós•¥ôÁë‚ì] (IÎ<Ï]‡=5™eý^ÜZaxÐ Ÿ¯1¯ÕR¾•µªeå¾Ê”E˜#Þ·>y9{&i)^rª#tòǸ÷Ñ-W´†g¤‹ηLšàZ&Dpáœuø}%D`ùðI+­”9éΓ‘ÙÉî” d Ïaœ’\ãúš¿G!e¾ìa–¦ÉYôFOùÐÉ^ÞàF`4Îc5tˆ¯,J•©<Š˜×t˃ØÇÏùP9¥ñ,»ŠÇ?ÿøÿ’>ûO³gYâçÙb«.dø«£œÏú1â{"RXG,ÞY˜ŸÍ|³ÎÑ–?%š¢ò{Õf–Ä_ £ߪrÂò%%ŠÈÔËeÃB,ÌŸrLHµIÈEošUª¢€v†-êO¸PAòIÜsUóØ»üIIÃé~U¯Ðå*fÅ7n5ãc÷*Ÿ²!ÀzÕ&Re¹š×‚Œ¸é(€Ü®;B§”7LuMßJ®jÒ¥ºFÎÞÖ¡S¹U·‹¦‹|VèP=þ€_Ä0úgÌÓÄ-=®Ê­ ˜¢ÙäÀÌÚ$ $ûì¿ûEŠÒ«P“ ¬ÃàR=]˜ó†Îº§Q7õt…‡ªË¯9—ÍŸe¼¾âÍΞÓC8Æê±¬DšR^ÍGºgž®ÝÒ\Ûä´è G½1˜ÄVUÁ€ƒCøË#²0ÙÇ4Ò®:fÉ&Š7&Vw¨°v‰˜SÇˈX›é§~9ìªD'ÿõñZ„wÍ·jùTtõfûg0>]y߈©jGE×;‹þóçvÎï)¼|ú¨#»ÝSÊíE&°¹jFÕ5M Ö6õš®ÛÁ¼rÓä’¾ýJ3åTݦ9gë¸ù •‰i?׮ơ…˜}—˜¡ù¡#¦ÞV«t8ÃK6n•š!‹¨ Æ¬w”æã– ÄÈ"7U‚º ñ¨Ž(0~]}ܲy±%‡N‰0¯Éið“¢ßT~iõbUôæZ2´üæ¶ÖTƒx"¶º('Mg=#qtª0•/*¢À¥Åó© 5IF#êéDþKy}!=›|¾KÀfVÕ]ò•eyèê®Q1Ç)/ø¨Å†Uüªx*`ª˜è8«ÁMDâRz}íeàË6ã¢gˆFDZ%p={pÀÊW67\sE7eÔ¼¨úZÖO‚j°ô©‹žÚ¸/ž6Ï.„žgNÎë;¢nËù!ö˜0åÝ‚³Ê!l˜‹~5^Ù£e+›¢˜|WŽke¶Ru)u• à¬JKAÒ±$i! . áË\Odž‰9Bx Ñ;¶/VÎcX‹ÕÊk#Ôâí^œÚ¢ª«Xiÿ/“=U’¥/\+éVb¡ôµE÷;v°V-1ý»®MähÌUçƒ#'G-"I ÙÎ\y!c[}ƒ/ "aMÙm„™Â-Ô2· ¿Qb˜%v;”ÿXíŸÜ2ÙwÉC)î.Iv{¹ëNÖoZGfrjä)-É@¬¼0œžâ:¼´S‡kc/‡Ó8íԓɼô¦ºº!ìpš;œÀ~Y%Wü8í ÓžhYÉã4\†& D@¨ÐºŠ AU•gÿJŽm\Æe` '^ ‡0]lΕïB¯¨Á“óÇ% ÇŽR™Mݛě,¼³«¶ «À‡Îx]ÇuÙ€Àš*áKÊž¢6—…aÛôI–æû/¼)žw„à¹(ÕÕ¶Õ»üûhyÔÛåÕ§vYUDŽó:¬eYˆæà×D¿TiF5BÎѦ2*eF57Ä ~FQͦي ¦K~—-¨ÙÈ%Í ë—ˆýD‰ÛÓŒ¸3¦éã5%bšC‡ºÊŠiŽIEa†™+"ˆ×œBX½¬6MÊÔ/«®¡¤˜àF9| ÆŒi_U3cš]»S‰˜f—ºRVÀR×=l1Í&v>‚ÓúF–k†mY!Í*Ok±†YY…ZÁYË”h–¸b%Û…À½¬X½¬Î/.:¢OH8 éŒ%šÕÄêe­ó‚©—UUĹə+¨ã–ÑlâÁbõ¤â5V/«“"ËŒh¯LaÆü$Õˈ·•¥^"J§Qhûºç6)Ÿ[ÀS»Ü0Ò.« k—€“içû:n—·vÑÉBõò׺Õ8´WD“w#k›½ ÷K\6a4‡ï0r@3Àhn°N]î(͇£%šC1—²šCÊb™Í>ˆ ‰õ]?s+ÒT]pj$Òlò¼”ˆXø¬x‰¦îs B-ÒúÒ”ã÷UÅ4CõF—WÐW¦³øT¦IY¸÷f>Ê®Ù%”áU¶$º#lGöüˆ PÞL#ãy°)’'8rÒVb{ßð± äí 䦻e¦Dn%į þ¦Ë¼Ž)‘u™çÈM5 –6q<±<Žû_B7/ÑÅö¾púyìë²§hµä1/…îS3¸F7[Èãf3jÉcLº¯QSAæªî”~Sõ_‰gMiµáÒœÓéO*ŤË0/+ä/3…îG„dRYyÂ+Åda”aÒeñXkzs‹ß±9N—g˜¼/Ù—¸U p äæ[,B"óféÈ;Têl!÷)'hy¼Ã¾Aha2Ëÿóæ”ºä1/uÝÅqk6Hlìã²—²Ä-–¤$ã ëÒáíiv–Ǽ½^Â7®Ü)Ï1å1xäîK3Ù¡¾1æ;å>Ç\Ñœö×!±¯bC9ÎM–k0u$Üø9´™Ô–#Æpz{q!¶îWrˆb5 Ù¥÷XœÊÑ*׬òXLð¤°[XÇØ“8µïpÀ@ãI—RUùT–¨ävj$‰®vä\²1ΟÖe£ZÀ•&ìðÈÒ—9ñJ’X‹x\Ia†w§iŽËÑ'jê=û Œ’œ®“&’ñ×)²¢Ri¤¨µÎäð Ü–ña)ç,bÀ!Mû9Mý·7UÑc \W£›"ýò6GpššXÑyæÀ' Ø(ì µ»6Ä1W³Ò4†7ÄìL‚—ìÈBàV—¢æ§jø X·¢âðm¯Ë-Hrßqº~s‰Pp÷-IôqÍôç©ÿNý·;Pey‹p[?ŽóÀV§ÆïNþƇàæ÷¾~.Ë6g×ý¼)Ry =4ÿò‰û5öH¥®¸\y ÏkåÜQÀH|Í<žé—rxu.å)a÷J pÃtƒ‚˜¾@en!;‰ ºêÐDq’B¯öäÍ$… ‚ý78ˆ^ÝDÒÕ]v–‚ï«(iEÑb]¡¬¢ã ^Šó%™¦ÐîSfž‚ƒ¸lB%_.2PqšB€3KaC¸Ð ƒ¬%V0#ØêõúD›Æ±$Y[Ó)²k–µV’‚ÎÕÜïS|ÙÂÞ1ïœR¦‘89Å¥NËÌQøÁ„Ÿ÷˜ÐÔÐ_ ™ÃTöØdˆ–Ñ<¯7•ÿG3zI0m‰î’øË–è·ëGWúƒÜÖf ~6ô9€èÜmQí^/s϶¼-Ö‚^jˆO…¾Tºmœ:\%8ÍxÊÂ4Þcç½Á Y). î[写 ØóÖnÂA²ß-9Cã´ãà åîÁ¸ »4¯Ûªˆƒ/,.>Ê)¤€­ªòÌÚ8UÈ[Ð5ôßt;.éÍI¡`íÍ·‚Ú¡RŠj­¾*¡Sr ÝKT”÷ø¶í­¨ê`×tÕzê'ñJÚ¡ÃÁ7·¹yFÞ}¶&tÇîyí~€Y£¢èVáçûTVú„e>ó|©ôÔ†°°a˜yŸa¤Qï¾ÏOL]¦PEòŽª-à0“¡òü`îO à÷=>ÿÀcˆl|YôÿåíxPŒøžˆt%_“ï,ÌÏfxïgËà•¡ êQÃ__°”ÁX ®Áì SÒ§Š[Ž0¥ë² t½!Pn¢ (»,Æ3BiøEuDÓ=Ñ•²9îå,á“Z†{euJÞ¸” EÓKšÀMæè†)”¹Í—2úrt(EÜ ²Tp½Â¨4jµ[o¢Û¦èìnrâ=Ø#óŽuMUWX7¾Ù‡B-¨§Oi2|u¤Oè!Ï”ïAg`›y…wÁV®'ÆÉC,? Ç¿o äB^çp–¸ò2Yè:¼•eù–6xˆtÖ­X:;À[|?Ú+”E~OÔçgÎQ©Òßsøª<®µÿÚ0ó:c¼ƒ­"+-—pOõuü,yM¹ê§ø-›_›¢%9ÇEy1´X.ö˜dœÔëšo|ÔRe’/Ï9Ñ aÑ|9(·!tÏZèžÕ¤ÄL5uKú¢ù.çGŽðVÒeD %;²B¹ßbj3_v„Yä+æS¸Š…›óªÄ8˜ú–ÉCÝ5G8nÁ-"Þrůâp!%‚^¡Î’[¸†#lojá¤ðRÈ®"ð¨¬Lò Þçh=Aÿ]îÎDµn½¢Êy’TY¹½`—d•\~|ŸÃݧƃ¡Þ7ƒdöØó½a§íûk½˜_ íuf>îM ³7ÝØï·†õ³¡6]µS!˹úWÁÔ˜T_F ‘QIWˆÆÅyšãjÁÊK\J#;äê‹æí­6ìØj^7%¿VŸäíÒ¶rYI]je\ŽHö²Óá¿@¤8Î,Ä"_‚í¦LÛxC‡ûùÁ¬J<Š ë÷»Æh†ÇÇêpµY2Õ`˜o¼Ñ—*.ÞÎ w³h†VÙpôš†W¢âÝÔ[xÑgÚà+ÎýsìCõYÁ˜üŽQà^ùzsè¾§dº³d5tfoBŸ›cSàçØ‡î˜ÐöHûðU@4dŒòYÄ$D3•r?à5üÀ¬±ª¸óñµ¯¼xíæ Ä`µ~pæå I/{e7©vZ®®ôÀ{~#1°õ}Nr[…&Ê\>e.Àî wÚY7%p 8+0H™(êE$iì«üŸ%ðèî^™Ë¿æ¤Íò­Þý$ÛZT\ÕŒ†‰O¤bcx{RQ·jž?È'úƒŒ8ó?y2»_!¯×öHúcN£dz£ÝDšÇK½k*gç ‡=ñ_”t¯7ŒÊGÙæó+Ù:\ô"éFëÙÉáï>Á×ç±=P¬kõ(† ç•šµH™$§&©3د‰V—x‡õwÃè‚vÚꬎ÷#A[ çN³C.W_¡ë A*Ñ…ýiÁ/MrñœÅ#üÚlâTæÕúCQ;Ë Ä`ÜÑ ÏÚ0:*M(vz¬¯ä°äg?òäNõ3›1”-F£Í“`Åz¡šz­¤Ùˆû±fAÔxŸ•Ï'5å ô¯€Í?t)¿ý‡r´SÜqQ¼êhg`@Rå10˜ôŽéê ¯ÍQµ:»" ÂÃUª5N®6+κèÌÕsöY*Ö~ZÇßÏ…a0=Ôu_ë&µ8Û×ǃÅi:úÙüFqen&Öðj¼ˆµ £ì–oµ!u1ùv¼!gpNó ÎS ?[ëžÙ7 cÞ±DíaYkØ7éÄïM¹MY@¦.0Ãt#…ƒãî8£ã]L|ö7°ÝñÂÕm]ŠáT07ÖðÞ"BÚ9eÊÃæ0ã”—.·v&$'\m“¨a¹ø†€6œƒŒ¯Èï"TÚzÒÆnåk*ïü¨”L’©ük”U²ËŸíj£ûf‘PÑî+ú9¬w$1 g+J™5¶\‚wÝŸh4ÉÝB‡‡ÚW"GÂцÔd}Ð~º½f¢oÇY ì£>ŽÄ}´’$¥àt¹Õ#c¾ß0*±L ú‰9JSËà#—~À¬†ÖçgCï=úlE¨NrRÊä߯‰˜ŸŠ³B0ͱ Õ}„Îå’®«¶¹“|«Òóhâ§n'pu·4õ¡rƒ/"8óÛ §î³ê¸}êq¾Ç­Á`òž»xkbŽý[#ŒCª=OÿuãÔéyܳ}z<]¿+l~Ì"Ui(u¿úì`×nÒ Yé÷2†Ã,Z­š†3Ð ¹âtKR…¿É}‹ gÃòYmªÈä&TîKƒí¼cM†•'‹¹¬Jt8<Ö&eÓ{*­7Àôóöæ:²ìÈ–¨î_‘ruÀ™tµÅ§¶ÜRWÊýÿj‡­µÌHŒ]¯„¾BaZ2èmøP’ì©ùèœn˜Ä¢èuó“òòítÒÈoÚé›UÝIm,uTw>f—}÷÷ñÄòìüœÃ<ÇMè±Æ wª02sóÀ ´:®ÛËq¤j‰›ÀÄQÇEª¯tô€ËëÙžüh_C?"4ˉ¥Y33ùâ”õ‹îŽÖç¹ÿ-gtQ¶©wWÎ4‡RýÙ‚aø9‚'TÎ$+ƒW9“Ü]Eh¼…=ø¾H×}2|[LW–Uøé·G8æÙÌO%Sô¿‘¹„.o&‚dî*¤¾!ÍEב”$Ks<’Ð}uŒç½u¿ªçP;¥ZFxAæŒ>–Qö‚òðg/åk÷ªÓ¾‰ˆò 屓šÞìAŽ ÈzeѪâ<8Ï}@VvZûJá•7[—e–¿½ÜÏKºh¿:îñM_ËèqSÏlCž-\ö¹i&zÒe9…Æ}›T—¾ÝHlÖËW& -²Ô[–É.q¸iA6!zŸã4 8C´Ê"K¬6O èÑ%a9o0)¢ $hLꦠ›%þ;¶ŽyKó•ý-S—0CÕ☰´Ò³SÌJ6Œ'ôÒ ð¹;C[ìÔÚ]­íÞÌmF[Ƀf™GF|‘"4´ùÀ§G› FbZ¸ŠCÞœÄùg“ÉzO½Uy8O]£át*ô Ÿì~×F‰ "ã˜q¶ÃCê ¦6(Ce?äLše·*]åéìÈkj¼$rÎ.D”™æÕîfIó‚ïÆ`Ú%y8gŠ‘<ø¯Ú¾y âæ™î-ëzØÃª®ó.`Im¢íÄ8ûRnŸ&jp‘ßC¯}£~<«ù`i†òHGªgÅŸ,‡PložÀŒxj‘&R)n˜ˆîrÔ÷YQ³XLl‹H  ¤ËGÈ–‘$i.ºŒÉWX·{ˆ‚cwbš)ã8uÒéaËHceƒí.ŒkaTí–‘Løu®x Ü%óòXˆû#gp÷jeaú Ù2’ô rmÎØ“¢¹Œdó?P•vÍOØcK†²¯:glÚªû¼GS˜`ß#ÅiD¥°ø¸‹¡•[F2E“É¥ŸðHHRûßKI“ÎÄ"÷ÌvUDxYOVÉ„3S´¢˜ˆ™|Ñ’ž¥Ö4žžçñßÃýÙHê èξUƒ”)|kDGPÄ Å#s 'ߍР»Gaš§¡Ð›»Ÿóf³(T7Æ4wÛ²!^ñÖ%=èãÓ嶘…vÒ'éý8‰ëû„t °Sé)ý’ÌâRóTê÷ÉÎÁOq4Y2䟆‡4Žö^—Cú.RD ¢‚è‹o·OCœ|LÓ ¶/$èµ9ÿ‹æA{EÆA‰ â—W!‹i ˜_‰yîv¬$ \ë1„öÂ?ÌoLÃ÷Ó§éûí7ÍŸí§Õ¤Ø#Fùtè–#ÊuF©Èé•Ì {}n;† töGé©nþìV.-Ù&T1-vDB™¢\–4\M¼–43~täÇ÷áÂÜ9è*Hãàb%„ÍóŽ 0R俞º=>>iÙõ}LAB^LÑOÖW9ÖéJ«ØV¡Ø[E¹öûØMõŒÝ^à4çEŽkûó€€+˜ŠfâæÂ°cò¹S)«ìTu*çÍ;³ß\ Þу¼Éa‰Æïo,º¬Ç,|%>ËÝö3Úkõop„)ËB|„§ö}LcÆí,:È^¾-ÅRwWér߬ý ßΘ†ï·Ïóy"ŸÓâeɯ¦LûÃñº5oÆCŒþûµ>†8ºè…ïA÷“÷a·.= …ûÛ0Ÿã.TekóŽÙ3ît6ûÙ¼c€Ä;®.ôIÞqɽkóŽæaÉ>[ù¹ŸÚÄØaxGæÚ‡€¬OðØà.v£ñ£ø©Zg›•{±£IÄÓ‰c’âühßBþ©b˜t ´ÒÑóèüȤ[œ]0ɾ¨¼^¼¬¡ë»Ö"&i„$ÝõÑßtÖpÍÌX¡Ì pZJ:”ÑáY IMQ ¡˜‘øÈòdR1¸f\{žŽ×;Jô•zß UÛ»Œ[ìçb¸]ì7··‘o;ž›¨A<­÷vÿkÉîr—`ÜÌuÅheŒ® ?¤©àŸýª-ÝëÁëQ¤³qÐùüÕù­ÏÎÌ¡]Ò ]#4 &¾ o’9ëÕö(Ô_mG†æëlh3ÝÊ“År÷Öf@¢^UZîÒT¡'M%›Å ðGfbï%ñ•þl/vñu2Æ¥ÜÈå±!67˜°˜n¥Ù‘`íUvˆ…ÚXË „(¼ÜÙS=òß\8*ï ê‚Ç0)EÑ¥Kvª±¦£+ö„8Oqm#!ÍfŨï¶Lƒ±Ä[Û í}RÊ•SÊÉM7 7/ôvàÚÆb>¯È÷Þ‘ÌKøç€0抋åò‚Áú<.Ë·Ã3RGb¥ ÔÜ´š?×– µÙâäcÏy.ß!ŒÆ÷!²)&×”—ò}Ì"+{ÚôCÀû:NQ¶C-õrÐgo–¤=åQÓqjû:DN¾3 F®€$ù#ø ÿ†ØñÌ| €fßWŸßoHÌïsSr,{Ur’8Vµ!¾*å³=—å ¤ðM?Clš¢~=PšªN[åg€¯T«8pÏÛÂ>/^IÊÓŠœ[‰<¾ ?dF ¸›šÒDÑRÎÍÀŠÚCŸ?;?ö&™5+CÙË`ñÁÁTõWÎ._§8P”±8¯Á Ñʱí<Ðŵ*uö²/ªÿ긩Šãò9þ†ü»Óš êÎŒäúóµ! !û¡V³Y°Ì©›æ²Â†¦JÉg–S—>7 (/ ½¼àCŽ­aƘ‹%âÏ.é P_¼Niò›R»$úmf¯ê®²’ð¢’ðzÍÙã€˾+ù{N*üä‰hˆ³z±zly‚ŒW’>æm§×½€ý!_ 3Grÿ(ÑЕû©1™G|Lbäúwä˸@]'uÓ°«¯g{y‚€ÂÒÃî ^¸—³(Eg¸nz‰`Syé¤Iãè¤_õå.ŽîŠ…„,[1«™ÈŸõõz³%ê{U Oò>dp,"?ϨBeUvôò6,vå×§þoïÊ ç)4Ým^MÈúË.¼¦ MßÍ:7¾ð³̉Éá^Š˜:u1™«»RPk‚[¡µ_à·!m~}å?\ÿ—©¸Òxá6ÿ׎üGû±=+c9ì–4q6ýlÝ¥ ®[4É›¬ÚPuQ¬±âÓžŠ÷0]1dé:i»·¤A昄ö iM"è·±Cïùoß!OÕ˜qÖnŒƒJÂuµ‡d&‰–Ð碛ë]°/Ü!Tî© Þã%IÊY®Nú_ß7myh¿ñm–Ýòõ6$·èí+¶EÿKn¿h¸ŠîæÅjE3^ë.o8À”G†¬w—?’CÞ‡±Œ¿Fþ”ñ£æ[up:Ø?xœ¬˜Ñå|\‘…`P+Lƒ€\òr²ö†ù3ºëžUçh‰#+Ù}@.Ѱäûö¦j^J€ç”? †s˜ƒ›á!ÄBMå/ÀT‹óQÝ¢ß ‹"àË«¤MCBh«ø…½°GûÅz›µÀTž]LY=ßHgâÌŠp^H÷ ·®Õò(•×57ÀR‰ “‹ sB—ªö7 ˆ>z¨,%³EÕ"w8eˆèÌ$em\õ ý4¯2<®TÏÚQp;3¢:w[úAQn€ÆþŽ< eâî«¿B§ .¡‚Ä™šö"êˆ2Sº–Ͻûˆ'«òiªÄåkkecÅX…±«ÖžÕÑ&§V“Ž5óHjÚ5«Ç³Í<¦'Ä ‡ òÀC®^p,)ÿ-?K¤özÖôJÑ@r5+‘àÆƒ5³HÁÑ…·3Av³6iO–×Aî©’+vеDMG3C¡=––Îu(¯6ëçË7ô:A^f¸@Øÿ ó8I«Y9À€â“B²1_ “€ä¬Í=¤ÓÚ¤ÉIû…HFY;<66µ&T–v½•}Ò‘«*Ì7úä]ðjủe¬c«@¦·b,œyv;»“à êƒ_a¥QŠyøêB·]+ɪÒjz¢+®Ÿs•žMžIUÝyÒõªPdòQK”h³[Ķx*Ïvöƒˆ–@^Æ 6t?´UüÌ#†àîUäšÐ\ uòÈ{ ‰š½ôqˆ½Ô¦êj/•…”ÉâM±‰ˆ0¹&P+Yòº[M  jMó'^aOd¾*)¥òÀàZ©mƒ_Äl÷¬i:¯XožWíA˜jŽrœÍ· A¼CQ­4¥ØÛaQË·‡o@3š)ïmi_Ì!Ò¬m·ôç;ÁœX[wÊTÛhHè'›ÌÔ*,ÈŒÝïoü“GN­“ücÇO (ÈvÅIk]JpsBs\¹ìg³ ƒð†3µˆ “Ï ›¨äuÆwšO^†Xwo¨æ‰åd4 îÑÆ†\'(ƒ2 ½‘Œm¶vS!c¾~ƒ°|2‘†ªî«8V¿ù–•挀ª˜B0Ä.ev¬I:™ïkm²ÜI•f/±X%}kjmQa˜ôl·ým;„*ü .ÕYl’Rð#€¨¸¯ °hK>í–½ÞoÌÔù97z³< PÇ…Áj¼Ê¥wêºÝ¼yÜÆã*~æ –r/eWRÔ[üD l r×xƒSrkëPæÂŒÕ…ÓÍ`‚æ$?Áx4@t7x@€.ókÿmØžOˆ±Uü…ï&¡*¶Œ7Hѽ°kbé…ÓŽK›ëà@0ëÖ{i-Uc¶z5ý¤‹Ø™N÷2ÀsÅÅËjÔ‹žÕR)Ïç–VÍd±RÆÆ•Ç—Ÿmfn³Eàõþˆ¥[ŠŠØ& Z{x%Z2C¨rü6°—à.» Ln D½•7ÞYŒ[ù8É@Øâ£H*]ŽK‹@§î—.Ýb Žf–9ÿ„  Ý®\¿Ä9z} @ª¸º¥8cVöùuÓ?âîæònÅ™¿^œYDÞÇBÛ±²"¬Í‰Te–Ä ‘1Ì$ËØ1I¡!Zš¿KѶC´ r@4u\$ÇUO†Úi™¨¦l#ÉŠXÓ++3˜AÚ:oOSýÏಧ_ÀAóÆqK‡ƒçÖGŸÁ¹ƒßÆÔyŸµc{¯ÇcU؆·¶ÊnÜŸ•¢©]ªÌ­,?Ú(F5OÑQx:r §ÍXÓÙêFÞNþ#®4¶!‹‰¥¶ •^¿¶n©ÝÊ-ø eS»¥¶‘¶élã@( ꦳M·’ÔMíŽ °ÆJ5YÊBÝ„1(íIÝÔU\Å…(Ã(y+—¾!ÓHÈk36Z„ºIÈïP7Ùšm“—ò aИ(‘B©›ÍÎG®ìû$AÀüî„È5*ð~›§üïü¶›cc;Ÿƒ¹pÕztÊ#Ä€L¿$j@J·gÈiªŠCLª¸Ý:Ä÷tÜbÀTy%P…ó°:Ïìµ"\ ˜¬ðåR€{h:‚šr¬?Ð×­T!Ãcæ’€¹\ ‹J+æ I@ f·$àg·$p@ˆWU}È%±<ÿq°](<¹ÍΞwÕEK´*ûƒdqËwÔe¡ÊM. L×¼…0àUH]À¹¯­Ÿ9ÌÍ·wÝ[½/wÕ^mêÉ) ¿é~Ç.˜Ë°óŸF£âÀ¡8`€B²q`Ö Ïf +1ÄY…H%¼=\-¤<,ÏîôéâÚ.§ØÌ󽥩t¿’Ð$ã qàhS¸6H=šuž'Ì·<0Ýš¢J"UUP²gÙOÃóTMFÿ{ 2äIòk[ž †¸#»ÌV†6†çé6¢¸˜Úº¸«ÿY<¬êªâ®H jÛ馮®ñ2Ð,ÊÚ½Þç2c $÷Ï*Í2¥nû꣡ZmMe3d 34X˳µ¢P$b³ÇÆ×`Ï­üÑ“øÎÛÿ¦v÷jí$ Õk§9½¨=Êõþ€€Ð¿X 3=ÚC–Ì 9Ûx@gz@@BÌÊ i[×.Ænë’Ìc"x ©#*÷Ñ ï¦·É^‰A›³]uFµ]˜øQ‘*Ç–&*R—~žŠFmAEê’¢'¨H1SP‘ª”Õ•IUN'Õ©Heþ(€ŒT9xÔ{¯Õ׺•I•jÖèÑä<**RU‘¯yA|ž(1g€¤ÚÍ "G[T䀀ŠXeª‹ôǵE3?ØöêÞ²©h*ˆHmQ•ºù±6©›ˆˆ™©Tt2éf Õe©CumID®° ¶æÖÉ;Z²ú•ýשT†‰£rŸ”Þ¦Á÷²¤FBª‚SU;{·ƒ„ÂúÙ} À} ñ|©fpªr‚¢ Ö„™Qäùp¹ >Ë UÒY©Ro7:õ ‚‚Â1àë0µo¢ GÛ)H€DA*³*¨ž5½*©(ˆ]m8­#»Íºˆl³.cxx…õø»FO¼÷´lÇ%C‹]@?ÌÙ¸‘ UÁÇ•|îÜG<Ù¼TY8.µ ŽK*‰¬ªÛU¢Ïlyª›‘Ã’WümrXj$ü—“ý$§.P¬7y+½=îÏï[_ õ.r|yÝŸT=š&o¦iÅaA»ë¹Z=¬©ÓÏ›pg7mèqd2š©: Ujöß¡ËPî6g*]¹kfè;o^àhK¹)w“â7×íšá:ûË»õ ˜²[ Ó6§%ÝnSÖóºÝæÞð¡ÛmJ'ª‚ÐØ<¯‘̽tèÊ]³8NÎÊ]³õ©˜6-{»-õn@’/E%Ž¥Þukw õ®Ï-®ÉùD°mÐbu `é(£G§a¶RÃÛÀ€¦Œü,b|‘pT\T:žJÇÛäåÔBÇkI:)–t¼ÍÓ25*y ÷ç&oëBf¡ãõh-nLis‚ÖÊ;í ÆC&ïqŠ#rØÈâ–p‡ÄÀ&¯ÝðJ6:Þ£­ý#àòšèáæb¡riÊ9ÞòñˆŠ¸üÆ!™k«QÉ‹ëè«Æ…mä–¤ãm26¸ŒØÈµ_›_êÁ[JÇÛ¼8.u¼­Ë#H:Þ£mÇû}@¤ãmªýÖ¤ãmÊ„ÖBÇÛXB§¹Š7Zøw{ Ü;E¶ƒÈ¼7æö ½-t¼m—±¦GÄ">¢Š÷ çý /Âk¥…_\÷rñÛ"™£.û†TÑs÷‹“‡6|Òº\ÄÑbwä)ˆÉ–›…DÜ1Nvr­ùëѦ¿ËcœL«¸~InD~á×'ƒ_œ´ÊÎÕri'— SzšG/”+·¸®çnq½lf›>EçæK/r^·8™ ÎmšÈaÑ•M!8R|º>Cì4ãhIsþ3Ñܳ,þŒA ·8iÝIÅþõÍ£bC#6†ìÊáæÞòw0©°Ákî'—9Ì Q%ìýâ¢~q„~qRVs×yµa½hágÊüšÊ6÷‹{»é_C¿™àµ…_œ—irQóÎ$ô¥‰l¿¸®¼nM~q}mÆsñ'¤…á×™¾¹[\ÙŠNùö„_Ü REnágÆ~±¿ô‹ë*çÓÂ/ň׉5ÎÀ Ñ£=Üh?8ݪ¸=yÆuZ]›ãú “Žq^À£…cœU<éÄSpŒC‘šx¯+Ç_ Ǹ8…襣¡ÛÇM{v Ç8s™¨M¨sqWë.í þhá÷vôŸ}¥¶6s(Áf(/Í1ã¾ÿ 9L®©N©Î6 4‰9²\›y¶ã€›N6„±¤ìiî‡$ÏC›9ø²B›9²d<·ÿr¾÷`NéÔfŽ¡Í´ší¡Íôê®Í´bùÔfšµ{>´™¨˜òÐfŽ3…6sP@ÙÚÌ!K[h3“„6s°dn`,«ÒÛC›9„=T@Óµ™ý–J=´™¨Èsj3íÆÍC›y´¥Í< `FíÖS›icö‡6³ÓÃQÚL«¶Óm¦Uã™Om&ª©ÚÌá^ÒfÚM¨m¦|:µ™¨ƒ±µ™¶™Á²|kû÷_«¾'mæ`p÷©ÍtÓ¸k3Í4žmf´C›)ÈÖfph3ÇÖK›é~Òfz… ×f>.WÁgÚÌ¡Ü'®Í2í¹6í‡6­ÍDážC›y´]› i3‡”ÒfZÑ’úÐfŽâêNдÊ19yž8WH 9àûßé¡çÚÌ‘eéÝÚLCõÐfÚý¸mæp-à6Ó>wî3ž\úÕö¥Ú*m÷¥Z¾4ºR­˜ˆ\©Üˆ±]©˜Ì(¤excíµªâÅÞ‹!hxZ1kávÄjÝÇ ]L“µá®‚Ê*qS‡ˆÊv¤rˆ;R± ÛÒõò+ ¯¼ü1ñJI”ƒ,]u‹œ=ùA¢DF¤†k'Äû\ZÊ̶FHrð„Kí‘§zZÊÎumÐîäsü ¹ÿî\T„ÓÒñµ¢œ PŠ GîbN·²'d¤Ød<$L`ÖÏ¡0ñ¡wCI5¼ÝU*ý„ÐW2†hÔKÅRÙf&O{ÂTƒvgYÒ¥ûXßL›ar˜ HmU–FhJh‘u`åË¢²ÓàO˜àÚ´³í+qÈ€vöb»‹¯ ejÜó˜JáóœÚý<.Þ!óö 9 Å‚à³™ƒPŽBìþýä¦*#±€˜µ;gŽ@ZoúÒ®b\Íþ}ƒdáÜqN¢‚ÀiŽ—µÍ¶—Q•O’É:Ö×î1¨eô+}ßQYt†›Ä,wÛ¨«^¬Ô‡ð‘#ַʧ1•ˆÓ¼öv?äs¹nmTÅEt}mù9 ñhãWù5ÐÙÉ‘8#úE·A>;8uåÓ¥êöÏ׆ ȧŒj¾¹tÇ‘ŠÝîªXéî:%´¸ÿVëÞÚžÙ·0@$UÈw%1ÚjgÖMc­—¿'ú¤0ñæd9j— éêwæð¶œ¬6ÀÌÅ!¥U¦`ÂGk'O1n$ ¹˜Tz"hhB¥—x×äîƒè墭ƒE-‘¾#@\OpÒÓ‹)ÔûáØE«}êòétéLº´h7(¾Æ™X”èÊ>9ù$ï94O¦x­ò[i õ'jö‹Õùp黓‰¢'öÒIU)Úm¨Ü“27 Dç,Sz0—|U€ iÒWI“¶¬vsˆÉµw 1¹{hÉ5!ã'ݵHzðüÁÎw¯Ãï»{sˆÛ}@©dww ´Y¹€9Ï6ÕϹüb¤©eâ_|RìY[ž·E Çé Yw`æªT‚ÒÅÚgÛTÐö& -O¶™Ÿ$ÍÈ´ñÓLÊþõÕ^¾ÞQÞgÌ~S›’,뙲-8Àˆsz x@_·1ªp¬[º@î/ µ²º~;ijLóñdqàÆ–Ûƒç©LßÅ+߬Û+÷2î{åãiÒÞÄèë7hoÆç¬¦»>D$€HBa÷'ÄÞ˜AH$ ã^r´òvÊÖ‘@äF#,W!>Ò%ô²5 pc.» s4+ó'©G[ 'œ0HDáíµ¶çŽ4Ý&å‚ M$‚M‰À ™û¼˜ÙÑØ)´k¤Dì!ä8$,ïÐ]¯`&ƒÝƒÚ;|”²"ž…¸hÞÈ©ÝCúPªlûA!ŽöPT‡L:¶cœ!µLøF­¸Ã"±0 ójzÏw¥î£·é:fp"K#å½ùwˆ‹ÎY€BÄ]cÑÆ·Ë¨3ÍÄf$“ ãU~ÖôÄÄ^:!a·»„ô^2±²8>#̬ñ6š*ÓÛ<¡¬µ°Çbˆ¦ëmGÝ1*o²§Ër٠ȾèùØo8~뀈è@œ»7ÑiL8íD§1×ÎAuLÕiLö$¥e݇Mu ´ž]œ.-Æ•Ë ¢ƒpМª`¬+hºŸ4çíè?_ñŠÆ‹?_˜ ˆè0U@ü™ôÊFiqŸX C>qa2=öMá…³g¸Š‹%BOê½ÿnÙu¹þÜ"bŽTX­û1…*¤åSdûòE|]†Â)££ô‰®ÂÀ{]D>Å®OøB)‹Ü=¹‡ðÚñ­ôYÄÖ—GËÖp‹à“Q]æà7è†{ õ*á‚|;縕Ð#ï×$x†кÄxïA´u…(!ŸüCÖh#Ž Y;Ÿl}´GXøÓ‡ íP?'ÿŽïSšš1¿-Åû£ÃFã±;ÓÇ6H¨{ƒ;œ$÷ôˆþrȦ9rq;°Ž &­Sû­_ýøÙ~~š7Ì6ؾê1V–õÑ!a(’ br¤ûIEgáChmçÅ¥«íhSFü~@LrÀNRÇõ¬šØ“›xFüÁ`ŠÁ’æñ.”I×ùtèã½»ÜxøT(ÐÝyK–F¦Å¦÷¹ú“% q]»Û;¹¥Cfå¡p;¯Ô™®‚uNÙgé½C¤èQrõ{s ÿû½º%-ûÕÃ&¬*OæÆQ>ö›»B‚ò«=E·½Å9ÀVÀGoÿE'V #ÑnçŒáÅ6VŠ•»Ë £ß¨AåS„Ráô_L^àcðëIí¥ ¢ñæy4„¹þâRlÿ%¢õ§wB$Èö¢gç‚,x9Öb~¾Bе€ŸI )åz´¿549QŠ H „øÙ i‡B„‘CNÉz޵‡Ûs0b{Uq)6!ÅdoQyýqøøÙˆN„„ÛßåÚOGݤ([înbI;ßÖ!{küW›€¾ ´;‰^î‘7ow7‰Qyäóf°®rFë®%N°ø)ƒðàäxWdˆñžôFë gò§ýh{z@èCtEÉùWº[2ú”6ÚÈ=Mi–÷JBëÞ—È´îÝqó¨"ÔJ:t÷FëôÛã4fqžëÑö•8dʽ#†˜ôF‹¯L—ÚúÆU`cžK6¼·Cáâ"ÉׂÀú¡Ö³8²»Je€ÒÛ9UÊ`²„YøÇÍ6œ´¢½¹ÕÍE AûþȹéœG£‰8æ)š+ ªÞ zK±â0ÅíØÒÕÑ>…A[ŠÏ0šûªå‹¼âç¾ Ãåcß%}^¤)fçû<]ÌqJó9®+k§íß?_hÀ“îò21v †xn@5?˜H’ÊÜ(U±b}°@•˜Ä®æ7C@æþsŽ[6n(ó ¶Kñ%F¶Ùý²,%ºDѶmô´õ4æ!Wï×@à¿ærZбµ2•S![mJ IJH#-…R_!Z4ÌñªN3öYs7Ú=*ý0ªù®XþÕ%E‰¢>D¹æë¼ c}½_ŒëóíébT:¾ñ‡Nó-?' ±b‰ÅàWp]?î6_Ð9ðþÙù©ÏVUžR¾©°úóÅÔt©MÐîÁ„ŒÙ$î8ªÞì Ï-³"ƒÚ'Ð(Ø+¿Ò³ ùµF·"{‘w)´Ù%:ŽÆ*Ù¬îqËÔŒúÍë–§H‘íãHðdõöòx†€ØyÍcF>\û+ÿÓxÜÔY®!s›¢¶œ°Ö£ öÂÚ²¡c·lHо¡k Êå¾$”ĉ„Pr@23zfåÅÌ»4ô›úau™ê+µeVUwù!™Ö ãæ¡˜Ä‹v×¹¦;ÚÜ s‘sˆmÄ…E£#+£rwê’!5ÅŽ"WKa@m9]:¼½É!7¤ºcˆ[NäúÊüUúÖ±|¾¤¿H;¿î#:ZAà)]ùú<<bÝZgx€= yx@Á-^Pt«wx€C"<€CŒ€Ïnœ\KèA„£lÇ4ÇàJF¸AÐÐ!¨’:§F ÷zæ•=¢ 1\#¢LׂY®³¹c`âÿù…ÐòÒV¹›?§p+2À§è›ÍE\øþ:OÈ#(ê:„…À«ð5H×1ˆ¸D›‰"` Y+BØÞKsé~ÍàCnùüʹß>N_ NóÚÓWÒoð{ÑcÀE0F,¯}~ƒ%¸÷,hÛ³Üí`k¯Õ‡X€AïÃ…Óð å4¯½ãÏ3ùìBÊ0LûŒ©¤þ|¹C2>DgWh\^MºÂU*^mӑʤ 5–}§ÐyØ–ó0çâ9ŽyÀе6ä K˜­EîáP7.êsøèJUÖ(²‰#GÙ ð´méa÷‘—ÆÈ öòµ›ž¸¶ãÖvwø¬¿+ó5ʰ齀½4çÞ¹·îõj²çÃõÄ~U0é}н4ƒ¸øK;£¼ß…7§s—\ç:ÅÅ}€øÊOˆÍ×ÚÆf^{å…Ú¶cåLæ+‡á;ß{i¬Hªæåµk—^K—ãÆ>æE×É‹5mv{/Þ!{©Iôµo‹°ƒî#–e9~úq·“,ìr{RR¹ÚØkHòιyoGq§®Ó¥W8«ÏÜpçë “û~?%žàÌôX_éSù2åša¯”W êvÛe…œ¯üsŽ"²©Ž“þ|mÈRÜÁ !ÐÈÆdÖCØ"× ›Ÿ9ß:Mº_WÑhzöj#”wvQlÞ¶½ö¯YÅrOß9Èÿ/&èÎ}¯FÅìlâÊ"®þáæ¸=¡Š§>ÍyaïÍï½Ê»$/Oߦý‰ÛG Áoo|y6]ዸÝäg‹…B|’ûÒ¿¾Þù¸‡¬X'Ë‹¸¡ò–ñ Ÿ÷ð¦XWUáß.:ÀDžô¼‹ÛÞù‘%Û_‚–ßënžçヿÒïûFÿ8‡‹Ôw³uŽuýŽ•zîÑ£|Ϋ8zÙab?;-5±ßCx*nÚˆ’µ~Hí ÔÊoÀ=8.œQß ~Òsݰ$€Ž¨þ|19ë}¢®€Ä·ãW¾ ttâ|Ž‘c‚H®`ßò6Èç%L˜TœVÿùÚ=aúÞ‚lZ}€šÒ0V]8¨‚Úà,×5jÄ6©n”óœ 5*Ð6­¶våø;³Á2ƒÐj3>·¹iuk1Ū¬›lÁä$×0JϯO}X>Ð;ä:(–åEÔ«—ƒùOp1·¸®éúÈ{K´qÛÿÌjÕ†P¨÷`è"†€6È2 6áªÈ·éü’ ]~d¯>/ÇguŠ¡KÒ«ýȇ‰,ûdA›òjoÌ3æz ˜Ç¥7y­µ[ ÎàþÝb‘\žCEàüuðþ=m=FbÉÀ¡fe15ï¯À'³ÅhðùR](:ÚÙô(L¸G\¬>õ¬{ßéÕÞs Axµ[•[‰^íy‘ødóNecɞĊEeÃCa¦óÂ@«mæÆ>νPrWMu3IŒáÖ~´=ð)@KÕ<}›ƒ 0ì$9ÁVPe'Öö µuÀigßXV¸=;Ü¢ |RRE|cîç†[{\¶E·öçmôCÍÄ< |BYa¡ªÊ#raDUsH:=ð©³]p×fiu\Õ˜>Ù[&T=‡`7œ!ÍM<Ö¡ÝÍ÷Ž|½˜d£ûÁJÂorQ|[ÙgZÿGl¿ø‚Œtw9}äÉ è’\Џ9 ãÎ (Nµaüók/ÂÞ›6H¤ß¬ú o}£GsÜzÚzçù0*£eœA}·vò((ƶ‚‹—Ú(±9G{ÆO\_E3œ±”ï%¾?æ!n,æé÷Ú—âÿÚ«Ý]üºÐRîûâKl)Ëkï¹8ÏçQkZi~rÄAl™*‘lå¿þØr !â•fPç°QkKÌ—xp[H[.·´f>Ëœçã#rvÞ³è.D—G˨»ÈÍÈŽ QäÚ_i%æ y&æHyG«yèÚëTßÿ=·iïÛ(iHÛ|í9>ObÓÑ¿æÂI– ç+€–F,>ÿ÷×”g€5X¬‚£2f/iT€Ÿd+¦BW+ýfCÞ‡anœ·‘ÿ×§Ü8•¡j¯Çœ†,@QAÈ^#ñZfÕ]úôZ$ht? ÿ€ý+ä_¯_ wì2Ï‚T7ÄvYXka-ˆ \fž(™±Oü<ò,–âg«I!5C³xÊýøÚÛZÿæÂ‹„/y!Ý}x‘fÔ “¾¨Hð”o$xz´2jIe9cF¹Õöí…ÁҙϽ3è?“u‹iáÒùßÂŽÌ>%ÉQ¬1¼þÕ.L@N‹È1䯷ð^aû Û–Ì)Jög Áسâ?UÞ€[å‹8öîÇ]T@ÆÅR6BR4A(!™]¯Ár È/‘—Ü ”~€êÅg3“š²]Ù.óhÓÂþ­A…E£(»-³ Z;«‚ !ØBJ6 ‰h»˜€v«ÍF^££î2Môî®|R6¥w{}–3Â4Ê-ÉÓ*Šïhª+™GÔGô¨XÚ¡3X<¸[àÆåeŽÊ2yÈÑ´1Íy–Ñ2d¶mߌì'r fZßPÂÏ„a<¤’9 DÔXÎ5l×Tà`þ[ßG©)-+uå¹RJ¢© ÇÃ)”˜"ßrhWH{(ºå èŒõK¸Ìëi|)ÌQj÷‰Gö‡„Çšôr˜Œž-¬½ªÞ|”à¹"X^ZÑ<æ¥×[Ur€NÜ1928¸ûÙtŒ(ö›ÎOõx¤Æ‹.ÿEææRÄf0§µÝvišËÉŽ„Iiÿ|1uµðÐôZÈŒx@&RƒdF¾þÐÚî@‰®ž¨™ƒíÆ¿÷é΢|:Ó1¤jQg–rz´U“aCŠ÷XMO\¢QgDìÊ5tñ] ÞLc˜”¿×(ÃïÂ+I½m‘ñù s‹VäA„¾å ,hyȾ dŽêÊEˆ!1‡øú~ti*ฆj7Èótq/Ú2k¢[1Î)«,À(q”üˆ9ÅïÓÆ ÈŠü¸–ˆƒ—†mDàoÀBîÇ’Acx6 ÂærØ?zÜÅ¿¹U¢ö‚½‚žÅVwGŽÝ]a—PÛ† L†ím¾ÝƒÙ?3ëæ1ß=q°‘ç®âyøå3§Tq?‰éQÁ1¬W)ØÖêyà`ckD G`jjQD•$ȧ“™Jël7Öäʵ[d…TEHëìR»´À\Ì^Ò«KH—g~“œJÎ.Ëœºù6ä‘îE4²D°4üÖîùÙž]£"+¦Aîm 'st0 äó'0±v§è¬]eíŒÊ¹†tk–D Ddw—½Üy&[l['SeÎȰ¾»dæò/I«L²MFÍõ"ÈXWxÐ ˜b ó‚£bm½=ÓEWîc#Q5ËÍ|²Q)F:ÊÙkHÒ¶,~W!lª! š”x‡ÁÞ9’4}d̪£öƒŒuV ÚÑ)Zê‡Äšv¶SâtÉÁ·žíNUñá1²<5¯F•r!ñÔ¼ªEsF”÷œ ¶3TZïOþ’p=È…ÚÛ§=™ö•2T:á~rËÃEýV%¹¬QmIx2c$TÀÙÙ™³í6ÿäoé8íÅJ#†Ôw†xšß•,”›«,ïÍaz‘ŒÍƒÚ)—ƒíªR—Un•9†È¢W !'?aý]`%Eº›JPïæR÷¹¥ÿiÝÙ#ÛœVU¢h‚¡"†¸[˜­ï„<õs¸Îuæìf‚XÙ{dñ.Lè–½¥9´Y1W-„µQÃ÷0(ÙO@?Ç0\ÒŸc<çòÙñ‘áXç|-~ÌW¾Ü¦¬½ó ‰>Wd~8~&ȱÌÎÀœ…¶E::iŠ¿!ÿnaUóldÓ1ÍDœ2Û,[)5¼®©çŒÀ2ó?ÊÕÁãβh{›“¿7ĮȺŒ‹”7¶R"} ½>Iãïà™.ÞÛô±º{0Ù¡ÿ¾1DùŸ’ßµ§ ‡=Í1ÚÇ*âëô!|ô‘Ø©˜Dì¥&{ý8Œë{C˜ÅŸ~J°Ôy™k8Õð7ît”8bSó:2õSÏ2êvúvæOÙí½0AL­^ú1Ôæ}EñŒß{Ƣϱ§Éh®}>S‰ç«B€üï™þ¨ñsV:?À¨ó+Kud'É'y´e8ÄêCÄNè+±Y1ßMÍ26ûqŸMt–t!í‡É|ð…ÙO¾Òeû,º´¥ZÝ*ÇùøUóõœ?ãÄ“ûúgYa˜ÞFâ¦ü»Ç‰²Q¥òxþèÇÅÿ±¥äfZ­ñ@n¦Ä*÷C/³œm9çW?‰éGŽa›Ç0ÏùüM=8u±ÜÝgÐÉLŸÄõ3f3îÍmRólÐ9òþÕù­ÏtEæGÓP¼æLÖï_–ïúo©ò AÙú#¹ÞúÛ/”kªÑ¾GUN,‡c+qk¦*²P¸Í(­CUa²‹ìõy‹ò˜Ð Æ6ŲÁÝ —¨kÚŤNÂLÌΉŠ<³$%˜cÉ?|wtzÃ)* ‘ÁloúD#ÔÕ‹å”!ZÂ6VÃÈi‘TrL  •¨0&Ó‚˜O†k ‚âžT* ädkιÃ`Ý„‹;KºS—àí²³»9[°­•WعÈxlY3š»BóÍQÆÀ'®Ÿš¼·;ò½7Ħu3%ãÞ´Q«Ø’YÀå©Ó¼¼TìFŽfˆõE¿¬ÃÃmVíÝÌ ‹帪±ú €ýʨr€÷/°ïõ}LB…n|Ž\X,¢z^ ·•暨´÷c–ÿ°Ùß÷UH #‡R¥äÚ ¬:iÆ|nWaøý‹ªwå  7HþWä7 .³¯àxžo‹ú¼p™N…3óÁ¹pAöש Àµ!{>ø7äßN‡!aúÌùߢO3?¦ß…µ§8·¦ätǹÈÏIU…?trÇoüä[eŠüT?ÖAùl ÇÁ=õ7ºO™cáòþ;î½pæ›~,ÜA¾ü™S¤ßú'{¶.‡ËÒ Cþíº˜ÒȼMeuAäçqÂÌY)tä0bÎû:FÞ¿:>õ™šW:Á1)ÿŸ¯`Ä",ÄÆêe0*„k³À§¥‹5Þ§ÒÄóMÉXƒ0‚§Ð.<£môMÍoI´©=XK<«…v~Cʹ"o ›(l*…%J `rænGé'p¢³M/ñ’9¯ñ!p{ÉÈjÇIÓi9ân†‡q¼¢d×^)5¼T%Õ壤f#ÃG_¡ƒ‹mOZ`uF+µgP"˜{ÍÔ³m•Ì HRú1}«,_ ­ƒ9‰Æ,q¼ÜʯZ(Hs1á^Xå-µ¹`t°¦-ÃZ¡qàÀÊ®"h;»8RhV-K$ø¹äYŽHVU8 n¶±áöIéhƒ.…ì»مĘš&O !IS5ãá&ÊÕ¾0µy]ÍË`÷éö½ã¿¹»:2ß¼šâD Aª*™í,¥íu‚Pǹ¸EV¬fÑeÊÝU˜üÇ spˆø±{±ø¬à©V‹J`ÙMÞ>¥f)òY´ÛÕ³e° ªÑ#±êz.D»Õƒ=€kõ¢0ü4X¹¬”@ møVZ…u7à%%9‘ª mÈ­†!°ÁlŸ‡Dj“æ¾êY«ö£S"€ÉyYP6×hîâûÌ8¨²)·ËÅyõ1àr;'dèÐRÈÅETêèÄÚS'„Æwÿ:¿þ{ßtÓ8†Ó#Û]°oS$Ïщ@‰èC&éH¼ÌÝÏ ^MíD”@)6!ƒÁCŸ ‹èH0&í$Þ ;¶ã¹Ô¿%æ„ZÔÞÇ&iV}Ï ¤>ã܉ûG@¬Öh+9÷¯)@wÿ Î_U`Á³KCÊ9Œ"ìe«‚ñ QŒ7ʉh:PMÛgFyÕs¡Ÿ9Vb¾Ý– b§úóå…ãŸÈ/†êR¥¢×‹QYp<˜ÄÐfà•'z‚•ã¥ì´+Ã#ºBÚ|ùbiz̲›´HÕc¦a¦€ Ê{ï`…'èÒ }? ©*fB?*ª¯(+26¶ÓXWW.ó$‹;‚BTÓVÖ¢ ‰MTå{ƒïezõWdR?v¢ÁZÓ†º*‘¬ägs²Œ —½ ¨pm€)®%/wåz¿ÝAh8~GB«Aÿ~ðD)€ª)³__»Ãd i­r%¡FðD|ò8¯¤¤ûª±²ÏûeäGb!™™%š›×¢ŠSh¬(L@²u8gTgïrÖÙ˜F®²3×Õ¢Íã!‹¿{P¨žUQ)Z†v¯‹Lò¼+šc¦«”3‘ôúº|e¾°¿‰ `Ï*KSnÀ»ägCdqS¢×s £“*?C÷¨sî¶å*ÿY áë9Ð_Ý#p3œ²ÿ|m hWaðAƒûƒã•Þ«’µW¯ú,sxxúc#TFm9y·õèQ C“_É’-4 eܲ}ù"¾.ÔOí2ü9ö7’¿Ë=Di¤oÒIÇ_I:ü¸Vï›áCø~í¯´c{ë9ÇçQÈï!@ö…¢Ã (F¨7ZŒƒQ8³¬í¸ÿšPÍÊ_ŒÅ-Š¡Â›ÜH}GJKÜjóR–nÀÖl/ÐTˆ¥hã3Û“m$º°49Ó;èvç ø‘¹²qÌÉÏBۋȧGá^‘®0| ‡UµîI“7 Ãr=agYi‡À~Ýù ù’@lJçTÝ‘áæ[åÊt<.a©MZ &?ÁäuºÜ5ÝúÜôEwÑŤLÂ*’ƒÈ¥pOŸâµèŒ±P†û*y[7×êlí.9> ÿäîÜP‚åEþ'âP“Æ \eò1ÚŠ€ç‹*›­Ïcfëó¦dwâ6´‚­ô Ç ¯q&·íûqDíÏìréå}F·ÖS@¿ìu ²~_zQ¿ u{Î º’)V‹ÆBkR#QÝ ÜiÞá´&ªf…«[Z±%¢*jcþã8Wá”Ë6ƒƒkñtG–TO¸¢ûˆI"õíÑöü‰CùŽÅf]ÿ 9H™ô!E‚¬NVªÍ·Þ:u.Gç7„–&n)o¼ï”Š%n–ÚË·`°Œëý}"+2ñqÓUØ©ßÒU&z?îÕó~|ÎΕ% ²`ퟯ ‰»hYÖ ©ø1[òsퟴ!ô-;!òþYz¤@ËŠ–…¿ø„G–PŸhú°$ië Š–âÍu3“†¾˜AÇt÷-ðŸ= í€`.0ÊyqÖæ¤:a$²½‰y®F 9g0W¸ßG—½IJÒú2rüÌÀ!<¶soò9Û­‡ì©Ø6$Q[oõË¡‹ƒé$]ŠA䢒ž}G}øxÜCiÇÁ²"ô©,ØÅ:ôÈÔR)ï"ëÜtœÉbî•1Y6ÑÉÔËñEõ¦ëT¿O€ÉchЧ„§öhR'Qœ6#Ûh²–ÒÁßÚH£×cíÀ›ä ­ {!çΠmf©[RÑ!á’‰Œa¿!–’X}#÷3]Hh€,Δ0Ú ;ðý€@c<¥ÑrYLé/i/Æ¡…"aðˆæ–Bõò!†^\}?;À¢Þƒ§‘Ô?R ޵™„ÁœpDņ0kìâ5ʼnæµ×þ¨H"7þÔÆ D.:¢6QfœYÒÍÓ¬kŠ{„j¨àOÖšG—šZ^E•TÓGµw|ƒyUÞoš¼³ î¦X½€dêëÇV’ä¥[Òy |V]¨œµŠpµ&ï˜ÁbÕPÚµ}B§ßSûw»vfUß?ܽ¬3Yºšz… D¤¾8ÒCÚ£¸×£=Ó#d¥eŸ#¸´Õud©;Žáj.U>žº‘9¬ƒ Ò „¶x±m „vD7‡ðGDsXž¹£Ž¥PMX¬õ|Ç|ŸI¡*ßOJKÜ`´—C~ÙÔÆ¤‹gYa‰ Þ sèý³ócÿÖWú›-ÎÊþ=mq¥?mq¨úwÚâJ·Å•þ´Å•þ°Å•þË=d‹+ýi‹+ýÝWú›-Îôã§-®´w[\iO[\iO[\io¶¸Ò¶¸RŸ¶¸RÙâJ}·Å•ú´Å•ú´Å•úËsÍa{³NÏö›-ζña‹3ËÔi‹³}|³Å¥7[\z³Å¥w[\zØâÒ›-.ý¶Å¥7[\zÚâJ~·ÅÙ2Þlq%?mq%?mq0朶8Ìï´Åà´Å©}˜y¢mqÚ»m‹³‘ž¶¸’Ÿ¶8 ã9mq6ò›-Î j§-®”§-Îþ}ÚâJy³ÅÙOO[\©o¶¸Rßmq¥¾Ùâìú¶8ݹÃWêÓg¯âa‹³2“[œ¹~¶8 „ÃWú/[œ9hŸ¶8+½xÚâÔ>i¼ÙâÊxÚâ¬ý°Å•ñ´Å•qØâJÿ»-NJë2ovx«"O¶Á3’¥«,©ÓG˜XŒ…9¢e‰tØš{複¥«¨4KÉ2ly Ñ è Çñ›¤mçòeí/=ú·b”d®b3*«I« Hv—¦F#‹® ‰ÇÀ¿!ÿn:“¥°ìLUØL¦Ü}U~V¬ZÒÔ1•p×´ ü)¼ª*× ‹tV[7ª¸»¦¹p…öv²Rö9}»Aü½°L(Ï1ÊË%v ·¦*PãéÓ[³²Üm¡:ÕåÌ­Ø.4 rÂ5|5k·\ÝW3 {b]4ô7dßÕª|¦Ç©²X¸C¸¾F–¡³ä¶…ÑàuË[³Ê×Ò®açÆv]eæçôv”kßzkÖ¥=Råu ©æ‰ÛPRÚ^raÖ5°³*=ýëŠ|[ÒÝ[óØ6ykÆúk¸kÚa´ ½!Uâ&ÉEuÞü »1ùë¾›¬fy¶µþ `êA~ú°U^Æœ“èTZÄ$»òsú:v%Ç®ÒÄ}~W¬âŽ{ôŸ™³á?[NÄàNðû YÎ…Aì–éF“÷qóšŠè?¿~¦Z:GjéÑuu_óF’qB:»t·gWq‚û]·ºš°‚Ÿ+ý¬/¥Œcղĭ×÷?"ë€D††ghξ™CÝÐúP!žI4ïælkÁ£ÜŒÂ+ä‚H£V;ðÍ0¾²!¹m3=¦ëòvk¶¢î„¾aÁ“ ž¼ËåAÇóý€¸5;~$/%ʼnb[Ï„fŠÖ¤Fz€ä…p’,'d<»ôRÁ˜Z¸ïæ\·ý1Éž}ƒºŽ½hKœi–A{ÉÂThÐÞM7hrå"{£æ´TÙ³Œ.ƒö­ÛÜdоá“rá‰.6Zµ¹p˜†£G–B…n1 uÍ¢î(H ,yâ®UE8>o#¿ ‘A $ºR(,Ô€Âíl~:‰“¤AÛN§uWŇB1¡6ÏI½‡—‘*Í Ú·A ƒ¶ò´ÙD¼8¸Væâƒ%¿Ô0hke¾°Ï¯³Ò_Z´kˆ€nyGûW9¼ tvaÐöFèüÒà?sÐû@«ADW¥m‡Èi ÏMÆšpU±ûZevÈYõZ ÒN?š,ÖÌzèmš>íQÔ…ñsåý€›´»šD—Lêsdûòe|]ŠÌÅ>B‘9YŸOÍ›æhŸe–½Úבâí+õ“ù°cß«ýßLŸÅÞ~ÎrÊ6,dÉ Ý¨í€$£¶Ê±•$£¶’ËwXµõÙŒ|œN>..Ÿ?µ¹=Ú8ˆq‘j@n$Ö^¾Ùx‡Ù¿vk3\n#6 ×Ù9/üGˆò瘓_5ÎõŠÜ}ˆŒÏš'R–ÚÖNL+£Y{B¨­» íst‘Ô…LhöÉ9¸]{êÔ–v¼©+¢Ã®½!nמ¡j(HqlßáU¢]{²Ô‚Q;™µ§^D¢Y{М#Ä•USصóðE—ߤYÛ™¢fí¾oš²w›¦ìkƒõžã²ºÎ,‰4Ê”í ®&ÝðñÜIë–ì5›®`›¼ £ Ï7žšÒ&[ö¨hɾë~>qßÿ‹ÜÀÊ`ŠK,7dA~RKÿ|ù¯6ä×@‘ø1øçüÀr'L&Ls.™ ?ÒÁ®€„a H 9¡³Cc¢ÏÊœ“Rô@ŸAUìÙ¦’ö:A2l3¥M½©m‡ys4Ï,V™Ö ,DgÊc[ò ÕÚ5Å£yö·ÊòëYä+12:8Ê-%—µYVK3aÕT¿¼Ž5ݶÂvñQ)gP§I+Í‚JTΡ£m³ã¬À2ƒh"Œ†Œ4 ©)°Íª ö7¢Ê³#-çAÂÌ׃)ÐÿÀ,{®1šÕs&#¦îAÎuA`‚ö|HgXUoydˆU…o­Žª %Ð¥óu‰æuî’÷¨HŽ·¹rh¹lׇŸ½`áCK¨™gmè ÕþŽõ;„;2 þ™S×ôì…WÄ.—–o¢Æê!&‡K"iÍæ¾ø æÛ׌¬ G¸Ù©Ô³iƯëû„tí\ÌŒ]ygí1Ç›Ûk>!eý`š/šjŸ i#*#ŸØúŽ• ð9æ¥RdG°¼Ì ü8÷%SN‘'ÇnKWž þ¨‘#Áí¶Å5³Ùk$M8+ûZÜ›µQ`MÕÔü ‡úÚÏ…~rYN¦Í—PõÚ£k¬ÒçŠA6ülßÌ-‚ûÀ„K m`0û¦±Ò浕|VP[á_®¢s;Q»¯ÉAÅß_ž²Ú!ÜMpÅt°t¿B{ˆE>p”ÚD»¡%ÏÊê=øN˜Þœm\_ èÑ¥±T¦Í‹X”©jÉLà~Ë(P˜ÕÖ@ 9£6~°h)ÖÚ£ÉF~‘£CÑ'àrc›Uˆëå¹Ù˜ŠTÑÑÀ&‘ÙV“HY. WŒf¬fP”Á:[@*]I°em‡S¢’4g½y|5³X{ðî¢rŸÚÜ pO‚0ovÓ¨Xj¥Ä¦E"d©¶çN%c3Úu€¤z;¡ºí¸“íÄC—|‹”B•=P¡jÈûåíµs%`ÀÅ”?Üø<Ž\ì©ö Á–^Ø„µ˜¿)1¿G9Ù¹à'LµŠ“Ël3›ùn+¿l@ÌËà}m4sȵ†s¦ßr(9ÆœzÎ(êŠ V{x%¡¶wv°ÍˆUe ³IÈ;­19l¹x ši S2QƇ=ý[ 0EKÁ@KbLºŒÐú;ýöw†^úk Á¢-õÀ¤[jò“´'Ö˜ |éÖy 0>¶•¢œ¼Žwéä§åœxYMÂCWIÄ›ÊâtÚ2D2îà"7ÿ‰_;ÆŒvÊÛv-=+z–lQ› >­£ê+ƒ/¿ ; ]Ž*78³ EÚ½£ܼª‘2Þ7«z¡-ÇôRÔ7j顆 €žº£ý­]›§/Ÿ~gƒr;ÊßWÚæš¨gCìM²už\§j,*v„OŠ­£ ÷&ižM'Jú ‰ŽH#j¡‘ÔÂÑ’5¾ ?¡¦KqBŠœ‡ÇØÈªp¥Ñ|øˆ‡aëÚà ¦Ùî‰þŽ L¬ìžà^8“ ]ñÄáGc·µswœm¬މv^J%9ä³]\=t@T`èöeCW¨ü`A þ$鉠ç^@‘݃} T´®“vÙöõk%.m¾Ö¨/0uÇYàq·W !nJntƒÀƒW"$å4d<Ï!ÊS¸…pQZæ‹wZ†ýdIF®ÃŸÏf‰ÔEø=Ãí ÊYz dÆ•Ÿ¸ío`ù#GP3ÑŒ‡†š±ý˃ŸÇù5޼K†O¯hdx "—”rò¸@ÈÐÆLîs ¿…Z#œÝèük›ÍÛÉ1#&êL ¯Óß iYMšm‹]¬·Ø …Ëüø™©y´ÍZ!_w]ÑöÌÍi]ÊÆâ ŽΪz”/âD]›Š»¼)Ûr(3÷‹*Ì>Æö± ›T-Îo°¼°Ìÿ%Kt¾™Ùº‹/X âövïá†ã E‚þÁ“Ž<Ë‘Âô`Y”~#&òlîWydù?¹€ÎøÖÝ¡R™ ÌÅoøÔ0=é<…1ÉÇ*X¥¹å}þ…×€e•ݽ’ÅN2C:?G?}œ¡HÃò{°e¢›QÔ\»(AWÞ¦8¢ûèAo ×å½EŠ"÷èÿ¥÷F>ò±;«„"wXý¿… ¹ØG%rÄÃgÒÆ—»úP2k‘Zc”>ì/†O/¦4 =Ö ¨ƒÑåkQ……Ôb«ƒ…GŽû›ƒxò_’”Á¹=¼ tvèPIÛ¼sÜŸÈxï…òg{Mö÷l,òÿ£l̦lü߯þ'ÊE«ºø¢%E&ÿ|µ5pØþ‰v©4>¿.¥~±!oƒ@­ø6ìÿü Tlˆfx Ýé–ðú¸ù/4LÜT¡ ÂšvFE¾}¯§ß2ÓüÈ(`C6_§gM3xûûa&X‡¼F,DÕ™`ÆÚvšÖ¦N©eºlÜZ4Mv)º‘×0§î÷× 1/k£tjª¬9wiø±C÷ÖÔß G6”äØíë ‘ž]¬F5_;n‡‡ª2ð̱C¶Àñ¢ºKg¡ª¦P k3O¶õ°HL¬XMÞ?E4ƒ˜än³BáÎ4¶éS‰;cåOô˜0Y‘š<~À½@e'AboÈÁÚÞßeí„+®`@vv)~¢õ>ÚÎéoH†2Cà›Œ´&Î/K«€¯òïF2mNYoÁp¦µ‘vÜ\j—E½N®Ïgð¦’koY Êæ6lgÒ,^Ûš(Õ³ÈñûýÄÓ43áФû×;6{VGˆ,íâíVè¼€_Ã|þ³0sWù©ŠCšyÝ[™@kc…µ6ŒbT¾µÂdX¥Ó¡ÄÚ¨(ÔY~ðl]í 1å$‡HĦ.kòíŽXU?q¼2±µŒ@Û’JØÄù’<ö bKÀZÇâ˜xqCXÃÝ©^c0YRaykfÝ!S´[»t-ë  Á7ëçë׎ÚɰʚÝå†Lƒ;ìã²ÿ<<ÖŸ**öá0 ÖÚÜCf»ÄÁÝØ­=¡èŒ ‰aGÇÊ ]°TnÁ6`ô çŠ!n,¿±ˆ^÷’;­•Æœ^?µ¶©~Kgü³·¯¢úÂßG— š¦XHk› _Åý+ˆ9¯Œâ7ïû*@aŠ/Ý›<TÓ!à‡€Á¦édòLì±=Ñ6 úhg?ꀘ'œ§)ëÎ&Éœh²²&/S`ãê˜vA£©_àÎSÅ‚ûY‹¨Ï;G“G bLÞª ª˜ÞÔäP ¯•S¨•û˜+?ˆ"w¶÷D€ Ô¹ AŸ¦uÐÓÚ IÆ÷ÍD6?œWž¢I¼û­{S¯ÐXæè°XoKi˜šRM‚œ ˆ^XâN 6‘œ!0µëÙNÂ@an´»®Èô!À·)ꩼv¸¸Kˆ±ÇïÏü“ÐÝýí@·Þœb< ‚2VŽ-ÖÎ@(Lô¤°¹kL«tGãÁw´ë¾)Öôk…¥[Ú¼»òæáïÔçîŸg¢Íª¸Œ¦¼€¤Ì¶F4ZvÖn¥`´7Ët´Ö®ÚKF a“ý²ÛÓ¢àlmrþÌ+3ZáNÇTî˜ß¯o®Ü<å¸ÚøòxbD¬ª££æÅ}pé@†DCÜ•žIh’b)· iñî5¬é ß}ƉLÌuâD¦½;qâ’”â8qJ„ œ8õ(7RœÂ0ŽÕ¦°…Þ`uJÇŠ—Az¿Ï”[ý÷LPs¢ÅÁºB‹¯:š/žmG‹q´èR*Ñ"&Azëxß]Vôi9V{„1‚Ó-bE[9”#Eé).½8GŠ8’" 2|¥ÛFŠ»íHÑ!ɲX­UX±ÉGèDŠ6‡éihl婜je§éÆX±“]¬ø£ñ%;Z´lÝbš«*4o¬hãuXƒÅq´ØBôà ]Äm£Å%¥ãE\ ÊîŽö+0oaÅiÊxôµÂk °=1£sND¸âå@ŒÑÔî¡}m¼8XUxp÷Z,§ìhqÐ>·ñâ`ÕÄÀ‹X—D$G‹]ܹ£EL®UV;0#mãÅÚ¤\^<Úë&Örˆ#Ʀ}ãE¦?:cµÂWã• ï  u–´É÷*þ>EK…¡ºN¼¸Äw/âyÔ²Ñâå}D‹- 54Å÷µ–¥3iŠ„h*ó´åH+‹ñ#ßFáo°W¡[P=¢C·ÐT£³³J˜Æ¡Ôæ ·q>*ÌÔnlk eîomÝ ÖÒÀÙD[ä¾-èÚ<»¹2ââœÍF €fJ·EƒÔþÜn¨OÕ×>µ¶Eqh%eáírèzrŽRH:NÀìíñ£"öì„*°Úryl‹ -‚!ç@E»µ­/Ô¥=[•¤ËFd¼é°UÀo<Á˪0\SðvƯ˜òC{Сòî>ý,á¿m6÷7ÀÂk£¨³ Ì©xá¢øôG;Ý>‚”‘0<œ`+Ùר63BÓ s[Ë’ç­KwÈ„FÖtÅ9jHoò È}Щ>/’Œ Ú^”­õ¼)†r¥ŽY)=3i¥,Taä4¤` 8H¦±^g¸vƒ5“3ë£à¼Ü¦`Ó«mSñÎ$·ÍJz"è‚ÚïBl¦´¡’Á¤íµTꚦ1‚Ö¦v—Qjeø>à>P”Œ”ɺ¯ˆiºá-j Þļ±_63l[›{Ë G.ƒ‚S\âšô*Í….Ô~A$Êb4Ù–s‡r䲽̡Ï׿š¹Ó)SwY‡¾Ù­—`j‡’ˆKÌtÙÄe×í"kø ¡ºÉîR”0mq¡a¦€h¯Œ©D»°óön¹¾JnøB$ÞÝf±Æ?°­¿ß݇¸ÉÉš^Mé_èõl˵lƒˆášxQ)Qk÷$¹ƒìaÏ¡¡A¥ç8䆾B¦ÀM/sÿ-IÙ@.~Êà¯e Wöd\ã^˜ó"Úpµ•öírÐg49É(Û°™hr«#íêY»Ü‡Ö©³t6Ú•‚¢9·‚ý„Û šöbºó§UIâ­W@®†¨Þ||´ë*zRúÖ{ÜÓÿ[»K@‚C@ƒ±‹÷¦uýd>Èîõ}Ú?íd›0ˆËÅ"qfu ɺۘ›˜H^ŠH.ªƒŽÅCP5ÊõR Ù ÎÁ†åãmÎ`¤èŒCˆ´5Ýéò¼¹…|°Ä^Ü<4S^ΈZ@³8ø·ƒÿx9̯#o,ôº#‹z‡>¤¡òë1òæ$ €$ígàCÚÉÏ#I÷Æ·ðj¦­¼Æf8…Ôcq\©ß[âçõPK*Ut¨%;˜ßk#²Ûy&IßðÝo™â¤“´ñ–«€)YØGÕ˜¼>)Iß6gH-G aÚu’¶·ä£—# õQüôÌ8t’ƒÞÐ['9²¸Äï£-ñ; ÒI×N¹N^ÿ”{%~Cv08(oª|“58t’^» ƒõ\üîÒl¥dgÅZ—¾qág%Ëñ©0ä  ü:C\”R²»®‡Ò7¦á†>ˆß}“~‰ß¡Ÿ¡–쌂ݶB;×­¦äA|Ø û-Q!ÅAßË¿ÁÇ;Rˆð¾G’Ê[â÷Ñ&Ws7Õ”;ð‘DgC·ÏÊøj¸ÍªÈi†,ÜÇÁ¿K·•eŽ!¼/YËÄÝv–ûuùûYštà-έðZ›¸Ú§ÔÂ’À6ø7D¸‘ÔqÀí›ÒJ·Yɦ<^QáHR 8Ÿ3Ò‰<­9©ß|Su=Dð‘¥Ù‘ó/—ÀßpÞ' ü¿®üeÿûïqºéܲ*Öi~Bôcà'¥Vy øo6ä}x ½¼]…þ{¢)ïżæ4Ç¥L#ä' U}r£_mȯ¸˜÷Á?ES¶(G½Àéý¡µÃ2 õ|´h>‰²î9¯/–µÏRœßú¹‰Ç°k,Vt‡±÷hËH+Ã{wqsêk# ðMkƒnüMõl ³f¥gÈ•ÛÅøfýØñI6óš4Hâð ntj*ݘQÛŠš1–Þ5ˆmÚæµo¾ÒëhR1òý€”N|T­2öâÎE^ò_fhRáfó ´6ë~‡|1EÚƒ‘àK™ã$ÉIäÿ‡fa܅Ƥô¬€_þ‚ÈRAl6^e©Ÿ ÐU;—Ò©í2 77…`eñø]Xáw›{tm¥Ÿå:CaØÌ“Ùhù8šêo•Kçê`K¾{´¿­ŸKƒ#¹•ñÍÓwdò>0äË·èšr«"^EqÅi3Ð…gò¸¦r((~¾*ÚÐÍe† 6UÉQ“f¶¥€¿&¹Ò¤Ü€‰ïÉ\XX!lÍóÞ6ä9ÛMú±? ðM¥ï2\ÙTLÎvŠêÊÃ¥Å/˜X_B¶æ¬ jí‹:ôDU?ë›§9¡e¤:YJЮ4‹D›j€Š 0Çnð gsîÞ@™ôLèô#·Û½hì?Ò-Ó"ÔÉŽ:Ž`gˆ…ê}X›§‹(ðèQœØèßTPCÌì?Tø 6ädÈǘ<>Bßþ•|PÇÊzÌp7ød[{iú{îf>XŒÁk"êF.÷xÔhËÒ2ï£G^âÚPD¥·DˆÎW؎η° }l“Œ¥ìVÏö˜‚áÞ­%ÀD<]ig©äg;ÿ !5Þ2”Ì  òF0No·ømA–­V5(Ù;´u¿úô楃nkw`v®¬¤·°`ò¯+ìiž’ÂHܵßëÐGªS[ÿÜÏÏÖ%ÊoHýÇ-B¸2!K _†m Q­mðHol)ŸMåÞÝ ¯4®8e™Mˆnq]CyEÌfü͵»,rvCFÔ¥­îçíY›!ÚpÐÎ t@VÜÖ÷éà0háõ5s(­yºœ<¥Ô@Ø ­C··­˜4šshþ Lñĉ@ÐÀ27{âòÞáM&ÿÆ~Çõm2ÙénQ>š¤¨òc¢"×àV=+ØK§9ËFžEN혨átL‰¹7›HÓ¥èy8i uoø«÷^~6ÄÞ¨+,ØþwšŒËÆ“•/hÐæÃ7í²eSö¦„Ãî¿È]åkžbÅÚ…+â‚ÙæQ!1öÑß³ÑpÜQ1̣Ŧݜ缹¯-i)t!<·>²!ý³®ÅpÙQN~Ô°2ðswââëIÛ«ÿ9æÃý@8Õ.ñAéãJÑ'Wn¹.¶»ÐdÝëÑV´1Š·Â.b7ëtœ0ù¤ˆjS×n(Á¡‹ÒbœPP$_ú¦Y7ë!=ºK^–ÿOÃ)cïþ4*×i‹lïœÄ;¡²K¸ì³=¾H®¹Áöý¡ù.¡é‘rÆ£"lÕLé·B~ ÄN$Lª MÙöAúŽ`\ñÀïz@ÞÇùŒµýYf(|J)£úëöi¡qXŇÖ4$»XÇ!‹ˆê¦ÐpgˆÈ¿d—£ßGu5`Îúè‚òk6‚ñGvS© aݹ8ÚáM¬¸‡Û³Ð”IHìÝhŠ¶Õ ÁÕ$g°@Š\_ävÝrˆcû´Qz{æ»ÙÉ¡€hSÅï'©®|ŠP‘:¼ea£ÂÌT{BÆSõ@ŠQy›ê:P•ü0žÜ¶šª…4–íĹt‰ ƒmbª)›é?È(GyZ ¾y·4ˆ„ÄÑiƒê9Jµš[ò1TÓêAp2=(†íZ› 4,’äÈêZáíM²TѦÁ\R»ý:Œ·ç¾0@&w ñÜ6p’œOÿÅÓ<ؘä×Ë ¿41ù’ìË(|4wÜ@=*ú6MÙõ.îŒpÒÍ]û?¼½;,9Ð%æç¯h[À\$ߤ+GÀ2$™‚¬’„B·±rô÷·âœAVuÍhv!׸ͨL&$ƒñŽƒï®Ê4µ©\íºKý úý‰Êq-+?¡)ñ<ø(< ºø-Ü‚oÿúHãî©ÊgŒ³{R‡€XN£·×ç<M%ça–½©µ*R¤§[>½ÒŸAX%µ¯¬™UGA j£j®nÐã,yôÀT_ûYy 4TR/ƒTaÌ"»Òãmê6±¡”êƒþs¼VT«ŒÚ•µä&'©9â%o•ŽcmM´¨\ÝnîÉryÅÍÝÃM™„ß@m?òî>†›‚c ñf,󹄒éŽU&!HÐbntlÈ @LJ-õ¾—„SVµÓ@¢C¬œ57U’^ ×ň¼ëßÐäñ7|1FÖ 3»‚½jg{©~+mTˆ€«ab¶&Ä}Sb™²$­¨3)Ãm¾Ušr#/I¸9F?I‡òR 4Œµ³¨7ÕW¹ø!cþ1™T8Vé¢Ò éAU¾åq«hNÆY¢Gµ)Û×~äû+ ÇÐTjð7$P})ó\שj˜~8f”|ÅÉŸÌ[ÊxáÕËa‘4©6vr´“ÂÚORœ ‡Å“ÐF'Öâ@Ëéq»^qÞqªíÐ`È~ÝMŒ aCSw¡’ä0Ù*ÆÕ[<ö‘ÖE•…{å@ V&,<Û>{‡°vÙî"+ž+¾’•®k#“»óaz`µæádñzŸýç Ò¤TќނQ™Â–ïˆ]‰„°¤ÆP jF8×rö¼ß:¿õi<ŸF¨\À* ÌÌ!º[@Æ„FÂíTîÉ0²™•´©è½ [1ëï"p:?ÚÌ(ÛÉYÄ<]QDY'Ç'å,-%¬›œÁ6 ‡[+Äxco{vÛÒE„¯·h<•Pç`q²7!6޽ÁR®4‰Œè’Ñs ~ä~A0ý<¢Û31vÊcøÄ$Tm,3U¤*²CkóÎ.Åï¶X¢€LfÆd ßà-a,NVöÓ<#ÎXÛÝÖΤóì9Š¥õa˜í‘Á\´CéH­½ˆqæN¦)PñÏ,¼=éE†x•mÆa ÓvÔãâá¾tH7ÈPÈ4BÛ‚?™|¢M—&}rWZÞ‰ì1{jS9éie«/O ¿esñ-N ÷WüÁZoM¿n…@z›)Ÿ¯ïÂ,-D&‚mÒØf|T;±ÂX$ÑììQ×S¥ —¡Å•½­¢ëB†ðWná¯QizÆU IÄo U›MŠ‘ºN€´ÉÔU¨Ü$)‚Bã óJ~àU4|%‚®1¸ ‹>¡%*îW•UTÎîÐɳȉ±â¦ÖZnO c¼e“`Oâ÷9‹i 6MœÇu^”wÏ–9Á¡ˆVcgLµ\_¸‡lÞ¡TUÖü±U('¶…‘Ñõ}kÝUzˆ×r0Z>µãk¯“ýlJ”l| d‡;f&Èæ[-Y©n'ç[´?¯®Cþi@&1‹Çà &ûcð­´ÛZéw²­µ¨ÈÙÖZT‡Klkõ*ÀÁ¶ºåÀ&t«/¼aõòÌÁ¶V%Ir¶ÕÔb³l«©·òɵ*³ip­5ï’Ôp{MT]l«¥–” )¶Õ!ÇÐnåeÿ9v¬©èƉ| ïXiÎ0ØV×'l¶µk²­°ôÌͶF;·B¶†Üº‰‘4ÔÛj_#Oœ²êØæ[_÷Çc£có­ÊÄ·ÆÜ7ãjK¡}„›(!ÎÕ¢Jj?9Wè†òÁ¹ÆÎçz´7ç]8ç_ Î5Æ!Î5Æ)Ö5¦²y×7 |>VM×{ð®ÐšÕ“w= âBi– ô0dŒù³^é›NûD˜ƒàº®]ÆÔ½µ13âq`@p’ÿŽóùùã˜qÌ¿1äO>êUg>(®¢‹Ž“Ù”ñÜ0˜ë 94œ_® ‡Ó*¡±!4¥8«Žzyˆ5•~Aþ‰t›—f~¹K:âè"Ñå:'æcbJêw¾&È¥ñ+/SíÔsÐ1 ñ7äŸ&fyÖê8R§ŸâÙ Ñ1P–Êóô(iâqzŽ®÷kçÇþåéI ϰÊmCú'AT™þ›úÃöw³q@ OQ• €XZ(ævK‰œDï%k«Ð9ÛÄ,8puʦ&JCÖFÝÉDÑÆtu`žÔ~P}.™<êö3¦Ü“÷±Ñ£Òý*+ÍsÅë¥#©Än&eÒßLË_ôP4ÿˆðYR!V¹9îäµÅŒÀû<¢àÛ5å*ûC…—4íÔsz}·$ÕM’èUqKŸªÑ g¡”Teµ8Ç~@äU›”ÝÊ1›Ybný¬8û¬Š/·æêç®’ö°¾Ú©ð÷@¬;ôÏ3Ô?SÀ#İà ¤²­ßsãS¢Â=5…ܪ²aehÖ8Ú{‘Âð¾£ FÆWPµÐ½^1U>δä èS@Údu‚X¯D m-Sç m/,œŠ „ÔxÊF©DrïGò£<’ŠŠ—Pº9$Éð* »ÝÄç'"RS­›$KD£çg”jBÁÎ’<7‚ÉÌŒb»N€+ã7„–ï¡Èáß(^ñlCKÃ,R¹iÅ-oSí)’þk(ÑõV ]k‹Ê>Ôµ¶¨’‹‚I¦ÈK:,nŠèTx©x/T}·jhõ£é³¿N•ËÞC’)¿‘ÂáÃàš¿¬ŠmÞce‹8ÖY¶‡tíª w}ÖSnª.% “ðy5:$GôÑv¶«jy¹ •w1h%øc½XÆiV‚QTšÙíÁgfe9¯Ü8¸¡l¨^½µ3 #‹®Ý®ù_t"BÝÎ,]8œŒ³Û‰¼„q’ê©Ë´UÿóŠä¹æŸ€­"ü¿!èËó$ž»qé\h7fg8*5b· ¯¡2+Kê>UŽ"T´³K„"T–YÌöæÍW¼& g¼wu÷Î\´q%‰P¯ûãè8ˆP Ìÿ>õ´5ÿ^UNÑZ‹$Õÿ’j/»•©ùÂÐ!@ž¤ôs¶÷ô ¡ µ»ðTnñ•ªÿ´Šªÿ‹@BäS)[ùÿ2ÿ¿ËU ‹½mPéþUâBïˆkñ™eͶUèþ3½tv½_;?öo•ÿ#ÊÈWÔc n(*ÿ×k‹¥c¡{z¯ûÞ̪闘eë\ŒPvX*;Ÿ½õ´ÈÎäA™bk|$§ÁõqÁZuTS«*Ø)âû6ñï€\Ç–Ž‡˜“LA©¾@ä/â2 èÁ¿Æ†5Å«0º0s…üx"Ê ªBÞ¨ÑVk½á|ØØè©%ö7(B>ŽQÈï5F© óˆ«5æêXvW+BHΛºçAÍ–®¨Ê¡NÁH®¡Nn&ó‹iX¶–EGF!‰ÿºPN…Âux†ä"mkäæõk‡¦Ÿ}ß?báÎKÔEúàLß4÷½ôCÿì5ÎÕvHZ¡ÕmÔNäÚ ø¼wýòšÁ”*bE.µÎ’—Ä’˜iöåPŽ«EÀW‘×tß,‰9“övò$Uþ3OâîÆÇè‘Ðú`Iàù:7Kb§w?X’Â8Òƒ%1ïNqw`Iàº6Kâ–¤Ð%ðàIr M%5~C¦Ä|MU„ÒÖMS:Æ6ÃÚƒ))ÎSRVz°¼±'¡óvÜÊ„L‰;ò:SR–4‰Á”ØâÝ.Æ«S%QÉ”¼îÇÆÇ&áÎÄ–Ää7[R¼®çÎáFlˆ-) Ñ=Ø’BÛãfK Ó|[r´[]8[_ ¶$Æ!¶$Æ)*SÙlÉ>ëu%Öo¾ÄÄódK6Àõ³‰Úσ+©wè_\­»;Þ¯Ÿú·j]¸úK7üÐÿb‡ÿûÿø8£Éýùïß°ü"%ÿW¼ñ&l²N55É}€32™X‘›ž¦¬Yb*½Î¬‚TÖÍ÷’«š’×JÞóÔGð<êÓÒøgx|ÅÐù†s¤Ýè©röN¯ žÌÉ™$‡hðѧ&÷ #¯ÿø€%‹Ö~;G1Ó¡Þ 7èôéðkäû€$·‰7jÇpäÆåÅy³ãßïøw<’²·žé ¯$¡%*÷Ý3óDm,°%îIXµ…{½@‚ptÓhs>ûy¿'Ž›IÄiK€‚ ÔÜÃÇþ®*E½¿öyò ]½©@¤2Œ‡ žªÀÚžÖew çä™5å/0Ñì.à”Ž¦¢"À(LýÂØ{9>Q¡”{ƒ@Õ¸=ƪ¤OKaO<˜ðcxäû€pbß_ï“ßÏ\†³Â´MþÖ^²Áø¿XçN[ðõ ‚´'HUÁk“Z°à·µ•=©³2:aŽLÿr›Së/ms†~‚ªÖ…E¦beÐC¢WÍMs:?³ùM¯ùªÚ¦†¨ð;•üÀȤ—UD]ÜWÈ?€ô, mh”QøÇZ-2À ÖHLžôÎPb”•;~Ò‡«Ëƾqlèª@Æݬ¡t»Îû¦à9L §vEK0ŽÄ[]¬º‘Å”$pÓàò#ÊôÖ¹©¸>ž(+R^´®´p„YÐxS@¶ .*ßt"Œk¸ kÂÞÏV£L;ÞüËzÓB²ªµ›¶ÂPü„•Â2ù# !@X¦J%Õí‡ Ó€ ku^6>.ÃùÙV†·bŒ<ºH_èÊñÖ[œÓ†Zå† ¨joåë}Ÿdd T ÝY¶¬ 7ܨÞeÍÊ¥Eµ’ d‚6@ȱùöµLÐôhe̳¹ }©­ÔuVÊBÍðàÌ{>©¬ÏiíIl¿”†µ\Ñ †]„\&ߨ]EamX™óp Ç;—ÚâgÁ‰ÝI›±ê8'ն¢4^ Afª*içmÎÍ/1šå›É÷­MÉíUÔ6ÆSjuð8ÝFã¶BÙ¹|ÙÈ$=·¯¶Vv››}V7âà)êHRrÓo«4¸I!iÛUÄÍî¶oâ§F@båt"~³rU2’ÔªU€çîP. I®wPxsßÚïà*ln–€¬]Ó7Ó8HˆÀwSJC•@Æe³Hà>¥¶h½<-¾µ%d¸\z£øúÀ:ãM9Ó YWË+ÝûdûÀß­<…±ÿ†üÉ©"_Õ͈!VB†QAäF¹R@à­iy¬ïÉüJHÎê^‡0-˜÷ Úm}Vši14A¾a˜4݉CÌT‚ìóÚíá9¿‘}oˆ}jr¿0†ü–>2äIÕíl){—y’/lQ-äof±6y>ÄŠ]Ö.ºèÈ™TEñ A,{JbÅ+µy‰ ¡¼ýñ:—ãd„Eóf oŽê¡šð7Ø| ŒµäfXûl+ãå1ž‰æpvÊ|l‰uâíc¡”t‹xKšWAÌŸ9EdÝfM«?Iè½ »¡¢:{œˆÊÅq«²+©ƒ²Ã$Rm’”ÁG €zm+Ó\@kÄ$f{q´}b_E¤È}+_(•$@5‰£÷ÍàL^PøÖùÄ,~%Öñ@sx|óHÙ7 Mô›ýÈdÖGJœ¶DóÓåêÍT·tü žgÈÿfˆ-‚"ÀpË›*SåeèŸÜ«ðp—Š›²änWyÿ_'ëcщ…W‹iç±7(Ic›d?µ»ež9.X£[}JºbÙ&6ÈWî'` ±ö݈PJÄQpÐ(T¦À5´½uGâÖ}#zO¼|ªÚj–Ot±1³ßð MJž.Í=&Ôñò’" oøÍ±—;Ÿí—ï~32Ã"cd9éxûGÌò4¹Lúæ©+]#3‡þ{/õÐsp$VC«äO/E'Eœo‚{ ›b’ ØÄ[ ~÷„âCç?*EoU¿¸YÿÖ"Z yîLWcݬ¼wBÄf rôcÑÉËÚiÖòÌ¿Oüùž$Q»;Ý@Öâݧös zZ-0{zÙšðR÷ÖÖ-¦\¢œÊ¦hb> o?¾Þ§þg'ÆuÈÈ7uïD2¨¿@PÁEû2˸À,›wÇ¡µ¶”â6~Ën;^óCjx#myDûÊ’©/À5'º [ôþHöp–=fÚ-tÈó™¥ÎŠÉ`3c¢côÐÉ ÞÊÆ,÷jÎ ‚Z.VÜÔ mH)PHË““BzÑ›îóÆXÅt »Ûž>`n6@"JÁÖÜ(nM•]¸ ØñÉD‹_Ýʾ3XÊÚ&viÏ÷•)ÊúÔJ£\¨¾‰-&ã©9A&nSK-üÙ²$ß O÷¶mò•}ꨀsÐ9rD`,÷Õ”¿Öôš.6.“;ž$»¸‘Óâ²¶qØÙfdSûëæ½’{Ù>‡ú#+¬ä8·›îÐ!ß9{æ[ò«£ý}Þ¬ígׄ|¿@THþ|M¾šo}çf*P‚Ôå‡kj:IüñÅ•KYÓJð¸*Ì*l{ÊH˜9˜YvhI×d Q>QÛ7*R†ß,Q v1§h‹«éýx"1£òTä'ñP“î.¬N=Š¤Ô¡¼UŒ(Ú7XIÐó%v~CŽe‹Žrßî=‹üøÆ¦Í*ƽ$rqÈ~-m?žþ ½PÊ:ˆr,Nù¾©Dx†æ<Ž È*ˆŽr*±ßì[ÞýÕG9¿ö–HTQ¨}ùùìpʬöŒŠ´¦)‡ µîäI*eÔ—\=‘ÙûöØ{©–Ò즗ZÞ°LKf7©;T¦ô‚N›™K‹B ‰Ѽ9F$¸vÀ¬”x„9çq›C¶dFöåÍÂÉ ZÕ k©p5Û˜x¼áʺÓBçu‚fK«gýsWú§Þ!‚Tl|"‘S¥¹~e$|*ïk{­næä%-äAÉ.S> '¯7‰eþÎÌoxêóó]¤1ƒ×ij´·¬ék‹Öñlu­"ÀË]7&·¿ž†‚ç‖žGúqì`-{a›EŸ3äÉ»ýî9ÖDÜì ™õ’Ü~ˆKTjÕV-Ó)銪q'e'•q€ÈlsCpººô"Fet9ã$‰ø"¥”ùYg¾Â T¡aœŽ 2†£„!<¿Yy $¯à²!ÖF€§µá"Êp·ûp†FlL°µ¡¿Yõc0ƒ›dÙƒã•wM#€^2z{£P™sBUË¥ï¦}|l8çηN”^GÏÍýMsÞï2µ¼L‰béT >Ͳ{>ß:¿õ/“P£”’¢!‘Y´—6`c6¢r9&ÄeâÔsÑ=¥UäVå CŸäà."Áj[®^+k¡ö‰5w?RP­ ÖIxV²Ãì¼8*,g{¥Ô®:!E5p7O¹LˆâçÕØœ–â#`Îdå(Bï¡Qâί+æáíGÌÔ!—£ÜŒ2ï"ËÌbˆà#P Ö.ºD5‘Žä\ƒ›È„6@ë#6e”¬Sq8©XmƒÐ@#ªIy±×Ü%h˜é`‘€ —2““7n¬*fê9ÉùÌÆæÆ‘‰TAð>_–'S)Ï¥%h*EŒâ±&,¦åµ‹'7³cWmbÏóMŠÉ¶–æÎáÒ@¿ÙÆ›»¸–¡¨L£[%°2hÖ‹pù¹ùÛZÇÒ2+D_—™!}l‰P)S‡ÄÎvË-u„D!Áò¶J„éãhGõRßR°»†ßíbˆ(?µ‘ÒÆáÚêÉ;Iƒ}êc& #ç’¶`)/+¶Im_Xé>Чµ_ô‚_LáŠ$ÇRò@­Ðj&€TçÞCv«¹>t锿 trÝœÆu°«±F¼±裻&Ï>ZÆæ, ‹´T•û¾Ý¡ð¶ù~iûÌ€œ½˜z#>r"œÃÀn-†yí¹×HrMaýÕýÄ9†] eÕu~„5†÷0¨Z‹aª},Ñ¡{ãÖQ•bG¿q"œƒØèä ¯ï×ùœž·nI妿o A„G«±Á¹‰IgsáýÍ •‹…XWˆðÑ-ÿ_Uñ{óÿH†»9@8Š™a+J¯K€YW‡¾« Éª²p7K¬]àê ‡ 02ãÎS¥ Ä’4µ‡> ùŸ?—¾®Q¤mvM«¦“´xŽÄé²› nQ̟ȨҪL.¨´le)J—jâÃ>ÞÞ*-ÎùV:Îÿ‚l l€nèÏ´ 6Ó%ÆÂÔÄtK÷é!¹‰¶¯# ‡¬Jd D€µ«HNSö´Jƒ`¶ÉÐ7RÜzÛçïSïZi€8矤Ÿ†4:ú ‘LÄ|/¹n¡H©§)qpÆäP(>á*=`¥Þã”0CñyJ JÄ„$Îô7Uìb6µwˆÛ7T©9a2wòyØ?„FïP&–uäÛ–BÁ›½|®ÚÉÞRlV»csàŠ³‚ž©FûˆÄp^“VÉv•c3,Ñ:ÿˆAж †QW(")d]ò©\‚½rV5¾‹ÖnsTú-fè5Ck¨™:$P±{P.†øˆã3†!|û0ßWäqL5yÙ®ºä²“è¸eU”ï¥Í89‘™ÏÍØîP9kby[ÍRÓŒyìEΤÛµ¥Ø®9êoÎó8·–19¨ÕÈ}q'•QNç%(d‰;EÄ–ªÆ’Ó™Qù4m]øµ¸ª5““×dÏGî"= «TÏ|ªA…ÍP” ÛWhRÅD²©Ì ®ãræXÙߤ _ŸŽ,C=›T+  &Èñy½uÒÆ·ŽöC‡M*ºŽ!{G(øk²I½uôySLiؤ9GÍŒ”¿!ç Ù¤¼Ì¢Û¤¬œ¦ì3îÄ?¤¡r›”åGº.¨ E©ÄýÕúÞïx¢o£WíõÛJxëNåp7Z-âþŽö¾¿[ îÕ§ÛÞ–Í!çªyG[ër|‹¢në¡é„Iªuò–Iªu”}<,R­‡î£ÿY‹×X⸼ ÉéÐàYqLK0)«{zs“Ê"Õ&TZa‘Š !‹”Úÿl‘êE†q–àûù:!™¦N{ÁD—Š$ VD„›QŠç5†¾ytÂýr`°²†¬×S\tÍuZæCÖë9Èü/zÚKjí°ôÑŒC—\ªê½ ;ëLSΠ÷¬C&ô€J€åú=\1=Ç-¥:GDõKÏ!µÂ#LÁ[BòèŽ-!Y¨FÞŠ„L¤CÈê·¢*62,(f¤:c 8hÅÕvEÓ# ”‘RV\{•è+É:,#Ë{\R=½ÉH9UÑ6Ù4ëÞ·!¢ƒAŸtZ«)µªÈj ˆ7¾áXuþ}Kò#£È¶j“ýˆïïÖsP$%ë¼ïäÌm‘܃f*Îg-!bjâöÄXh‹”"|‚%•.î?No[qמª7P¼ûæróØ4ÍCÇ"‹NpfŸ 0ÄÁ$®•>D_ß!ç¥×jÞÅ;Z2nëî¢8¯sx Sƒ7~ïô4GТ¸7wsÁY s{/‡åÓ¤Òfñê·¿ø–^õ†³6îZï¼Ú›9 €¸'õ°Ù+}äÜý5ì=Y!0|Å÷vs¶Ð¹¼îјþ1áT_¨:ɾw²šœ*^ôm­9*žZ1Ø,¯»»Ò“A©9²ØG£Ã©óÕ½m1o ÀØ~­i>lþGãES#µÞß²æc{_-ò¸Ô¬åÙÈI}„pryç‡ü¢Ï‡„£á…ŒÄñoéò)žO©†"]Rë/ߨ±ÆÆ<Çø²Ÿ¯S*°ÃËpv9 /c3Ð2¡ôÅÀÖÃðÒ§T£ay‰®Ï×Î}öÀr¿­ŠiÓÿ¥X‘».°ä÷»×܈gà8EÍýš “ ?!¸9CVmÿ¦W&R¯ÛC0͉›eCªnv- ÑõžÚñµ×É~våRΫ•Tš*ÅÆ“BB?@È"+ 2Òh¶wã‰×ý'ÂO€¿[´U_¯âîîjó ’E"ËbÇpn¸9åÎ.J¸~qánÚGR–]çFÁ¨h&/¾&ÈuN¶à–úÙ˜öŽ~A0¥‡ML˜mÑ(Ó˜;—P–a\œKyàåѤ %00M¦ýƒ§˜)÷§§d(Ê<ž¸aÂDHÉž˜cÈ…@Ͻ{×õ©B™JYûÒá¸à¿Xîùçäï|„ñD“îüÕ0ýÏYÌŃŽy$¼½×`ÊzòÂÕÁ[ À­$º» 2ÜvëAL»ÆE ¯+D£¬]Û…^J7kC$e½Uûãºt õØ.zí€ Þ0‚À¹«q%Qø"©>Ä\QdEÑ¥ z&¸¥±e+~4'"°‘Óeüø ÙHÖKØÝ`¥”ªýim¹½¦D‚ý‡øÐ[Å{ëèxhµ—nÛÙåbåÖýôõÄW>W]AùÚ•¸ì jÑ7ùóN¶Jì¤øæÆC×½+8 T”Ͼ¥¬ ¯D©.¦=~|±:CúËܥب¬ œÝRQ@Ï"&c4饪Š7uÉ’¹tã ú €œÂ»…LŽÂ½ŽvR]w‡ÈQ?º ]ºöWn/ÄãP ý'c²öTØÖT8[dD§‰%`ˆ.ùˆn„2&ߎÙT ^·‚ìÔpÓ÷Â^±Ûhz¡”ÁZgv+D@àŸKáàTã•€ht;ˆw¦ÿuPï,ÇxD~ ¡e†Ld©Z´Þ?™ËAf1rÃ?RTDû\!BX@àè¢ ¤v¥zÆ3ƪJñÖbrøLxp²= F^/†å]¢#–å%C‚¹F$#u|½¢Ïþy‹„ç_Ý/æT2ÈÁ4JÐEÉïÙ®éý,îkyø爾Ä&68KPIdO¢}{ÃÂü es4îÍŒZëö”~¨JÏ}Óƒúj]ʵx [™ª wª (¸=t!¡t‘“ £ åTBGuªY|¹ë٬ʚ€ÖyѾ¡ó›¾,“è´…ýÙMÒÕÏAѽç;Ž@q6—Š#+NĤ3DmëbtŸ Rò8ÓT”õÒ•ªÇ®¨î… X\L•Ó)éN®ò~”$iðŽ¥Îbf *÷|qH"³Z’DP9ýšçM#¾˜ÎZŒÄ”ŽHagùn\%dVûX—,åÅu@³ËlËøÆ.”×ByûLr¡àÛÂB©à :˵# tí®,W‰ý——¶Ÿ` M$%ìéì¡Ë >ÀÄÒ µyZVFئð¢[I9ò’¢sXGÝ9“Ò‰·äÜ©lŒ…¢@ÍKÌÏ``Y/~3´ŽˆýÍŠ‚äUZ†âŒŸ•„ׂÍÖŽ#‘UìèíŒüó"]“[Óy‰ì¹2Ê”V?“(S')¾¼$øÊÊ£e®G)éPJÀ›< ½†Fð}̆ôoÎ ð‘ÎL¿ªŽ(ÉÅêAôG¡ÌÄlšk“˜Kz—ìv¸Y9 °*•“ Ž;ƒPœô±¦­>IZ'n‰ØŸ½éc½%é€púh•.Îéã"÷ô‘’ÞA^|ÒGA6}\AúI=·ÓG¬ãI«;‰¾Ñ¾Ïô±„¾ÛR\ÐA·j·(é…Cì|-æÖ-4@Ì ëœ*‚— PtýòÚù±ùÒ’Œ=Õ}ˆRX¨Õ¾™WÎ\®Ö¶†À% iÄsLÓAg Ê;@ÇʯÇ(r³õôÖ£w?’©×„{]¬§cc`Â:u$ Nr‰ˆÏ9Ú•EHÖóv>»± ¤˜ÔÝD_°[ÂÇ(5*¨.)Õs„kÅT³gRo7ù^&À¦®&“õ\YkBƒsb¾ysœÓéFî½£mʤÇÑQ€ß¡´M~ž5k·L-‘ýEËšn !^â9"¾¨?A9ŽÉL>@ž (òr€“\9Ì•j¤‰|BHî,¥ÝôçéoÉ$(t³3Iÿ 5zÁ|"C -á’††)ë,'ðE·Óò ƒ[9Š×ÖÙ Ç4þD»ÅM9önçánqôÙ¸†<“Œ†«½´'' náW\¯¿¶ÛKѬvK3«ŒV¶D¡ûÎ<2k©åÔ›Œ‰‹ ùºÄeȧر—¡ņ'oŸ=³Æ’ aÔ©‰(ÅÊÑf2óëAЮ“·ªRÎ?›tQ2B÷rr+#íTÝi+0áÄ9©ž”B³Ý•ž0\L’Ä­µ{›”ÖÐë†åÞ^¨r¾¾ÏþÔ*5¸x¨•ôÙ sbË|ÃÍ•Zã_ÃJ…©$ äJ ¡±”5Œ­íÔ‰aÕ­2Q¥u"/¬úÇï9c”[ýsjQžMÚ€ý„'!jÇ#*Á-< ›øhz¥›#d§b†«dâ–âáè!Ö{ªñLx“èâV¼H|åV^†Ñ ¬†é¤ÆgÄèò¹Oä²µŽŽªPL6]u)l_Tm¦¯÷µæ¨\©Z‡òi‹’C“Öšº0©À\ô[s{§J§Ù< qEßyw‘˜Ò*ÎãµEL¤ÂŽ9è®|tQ¤ñÛaIãc{kqœÞÞ+´!$xÑÓMí¯ÜΧÅ8díqŠíÝS Î8fë86¼‹æÖ_ÿF Ô‡+Àa¾,Èç; œüWFTûÜÖTe5Ÿ/M‡l­¹¿u¨Íß::Zí¥Ûvv¹­žzúú ú[ChWªÀ°Ð`½HÓõ²MôñZâFúਲ‰„#öìÆ:Ùèéí&zù`†‰ÞмÎm¥²u¥œLôÙx÷×^ .w"ã\]µ4°Ñ÷=Ù車•ÊFß¹“œ»¸NÀô¬älüxŒÂoȦ÷ñÚÆ½CÜPÿº‚Ÿ¹†è(ñÁÜÆê‹øà-t…âC§Ñù¼ë—×Îý£ûÖl`õ÷-A÷­ÉŒ”‡ûV<³Ý·Ž×rÃxºoý†4•*Øî[“FˆÃ}뀸³–¿¶!Þõ1µýµ×É~ö¥H4¡‘Y¢+\Ñ›¾”ÁÒGvÚéyï™Ö2ózŠÜ(X1s85NÇ+x /¦Se]„™Âé–Ô™"ÇË(»‚åû…vÚT³1l^t1‚IÇÈšD¢l–H&³3Òm‹¢AÚy6¡˜ûæ~Ã!}yš­•^ð²Wv0á0!±HÑÏoCK¿9DiMUšG~®Ž—VV /p÷YCwi7ÞªbÜô¹’„Ÿ;ʤ²8Ø~â¦>zÒ¹šµÕÅò$¶pªœì )P;±Ø^ZSŽÊÊQ=Œ÷¤ù0Q:±¦=Æ1Ñ A] ‹1ãp*ÀÕFjžëBÈ÷ $ˬy€XD5³Ô¤µø…‚°¸ÃtRY°Y‘‰!;V} Ò•M.4›þ;µ—h6íqè¿Ô¡ŽÈ^UŽ8z›`H…$­Ñ,ž=[tb_§g%] +eÚt‹¼T¥ðU–gkWèMW”'ž´V¼øòôš @ho”³¼þí«ƒÇ…ðno…>J“\Ø>¾l_~V>§{cF®Ië9óÔ`0†Ã¦Â)¿6·¬C©NrîâØmôÊA©Ô° E%©jœ¿ç$V¤”õÊdY0‚:sÎ]¶"õØ|dP œUÙ³¨#7Œç„ã…±úðù«Ä!1ÑÎÈ7üxÜòOdIFèø ½ Ç8nZÏcœN|*N7®=[Ä‘qËÓÐѵ©“c”ôëÚ(g¼·•æ°HŒ8·ŸR¤Å³‘×£(Ï÷ cªðõà\:Ãíµ“uX4wñ"»zyó™ãõ&Fz IÛcÐ<ŠN½š{àõŸá2™ðëÚŸ`>ÉÇ1ˆ$Ú÷-ç£ONƒ8¿ëx€ó÷wC»wÇ¡—½%’¯=Â×uø|LZuœSAŽs¹hü 9ªw´Ïê†è°fÕ>÷ÚeيÚŠÈÚéï‡5o’HW¼¤C³k–>3q>]‡UÅÇÚ³ÞðÃjÉ¢Í%Âk´c/ÖèÂk|%kŒC‡5Æ©“SÙ‡5fë82tX]qX£~Xå~X_×›ãJ÷Ëi ˆŸVT,œû´fr^ÇaÊÌÇ-“Ú§5»³zœÖLwõ8±Y–Óè‚>lû#,¹Ü×A5|2~d½½Ïì†Ø‘8ºÐ¡‰¯Ä±ŠqèàÅ8É°î™øÉ¹òà*ü}G–áÀ§b/Ëß¾.ÉgHæÿÿ¥b#â à*Íp/¢žowó­š VÚògrÓ”¹õŠ¼Ë•X$ òvnäYðˆÎ¯þH—gkÒì:½«fòÈ0s*…Ê[l4\J9($†µLlU(¬îpKH$·WèÒr ©ÌðÃbûl;Ïž6°AvFÞLÙëÚç­EbÀr‹CÌ'jpêÌYqˆ_Ðá^ÊΓåÕ(Sýnú'Àµ£ƒ½ß7+ ÷úU%9…«ò# ؘƒ~s…æx½Ù©5ݵ6=tgXÙ€qž5&¯ôÝV”Cñu?jUR ÑýTxÇByhß-$$ËΓTÜ %ªÎzƒÐ6)fȪgÕt V>«Â˜ÿ^exªªwiû{ô˜†°×8÷‰&å––:×˜è•Ø³‹$pbŸëËåB·ßÏ׆t¨Üé̈•ýØš‚x)D΀$/ÝV˜£?h¼º^é¸ÊýG7‹®‰ÂB~Xuè|lj٬ΛhɤçL:HÅe6Å$îënJhˆ‘NÞqcFÓ¯TüÎ!tpÛó ×¹ï}¾ï}¾«}±í9Ñ}0d.MÁ|"«Ü>Ñä_~-2Ç4¤êâ’¿«E¾13ïòy©Îz\!KÇD7Œ,V~aóV±–^‹×Ë-mW| È\åæ±YǘX,O@t×Fº‹õ‘ë` bºÑ}”~á¯ã(Í›¾Ç#ÙÅìÆ&ª6ãáØtքؾbœo òÙﶈkJà]¾è:½!ß/žyø£›nl,冫1ÜGtv½_;?öªÏAçÏV-0VOïÂiß»ÔH@® bx÷w¾ø ñúû-Ï  &ˆ:4– >ÆÏ:LXÝG1½ÔÏ× 0¿)^MRz…uI½­m7ùȨ̀òl¯rdÏ¡ý„pJYÕQ®ÁT\Pní€ú1È—‚@_VôJ£æÌÂðÁkK2<þ’o ¨$Ñ} Ú®!sÈ=µ(7¨áùþ³9Òé[¡G)ª°-ž;ƒ À­#E9$ïA¡(·Ž@<1iðŒ9@­7dÉ?°1¨GÒØQ¬Ã„ÝQXr´9Pe‚Ó[~æ¶ÑPƒiP˜-j°LÉ• uEø×Ûþ½èš®6goŒI<‘ö…¦*¥A/7š×§LÌÙiØ'c¿Uz•½nH-+4ÔƒE& ‡½“ôÕ&S%ý}›ÙçÊ ‘Á³L58Œ ‚@;húùQ”9>kIJ¸%©,‡Zq#šàîwóÞúy-–È2,%•µFŽØg:2`ÇBÝ£bØÖF úÉ] VsøÆ#Uó w µ3Ï_^õ¢"Zî ZzšèÁ¨³½_q½j…Îë„0+¦-‚‰`?$(iôó¹œÚCÃ`zL@XºAê§$LÖc@%éAS%J@'+Â`X4Im“Ž$=G<‘¥c» ì #{zeT\!šU¿¤ówš¤¼]è ôx¡¾[b&n0*øaiåoV†Q¡³Çv„W訪:Y›ç¢òý ¡=r£·‚’¹\$8B$eg¶Ó7Ô)l £ ù…R~œß¤‚íû„›Ú<­MPýP]L΂¢ºÔArr&ÓX uÓoVa}†h#ÙO $Œ àáä0à•rÐe׌\O ²Es•!¨nÑít9q3ï'$[§ U*M0O€œÇŸ»Þ_ñZ.~.¸¯çäokÊ`ËwO:¦œB¦WG äGHŸt¼FІØ÷Ȫª¸))©´ ˆ«;Ù‘í2ˆAÀ ™˜lÎÛš ÚÚœƒÝ¤À_;!¼a±Ýø^Äfjln è(#î§”D0—Ñ£}iö㉠ÎÀˆÇtôóò%;Ûÿ>á_Zq U¥.qHôlªNßÈo†í©ˆ…ƒn©ÿ2—h¨zb[G–ŸžAœ¹¬®Q%Ç–¥«º7£Xº‚(çO°pošF5Oz0¬™ì6פƧ¥HŠ&ó^Ùsõ;ò7$ö‰¿ä€ÝMö¤X™†ñÁ”ÍiͺS4•B1`µâúv*@€‘_™¥]+%#)̾Q3‹¡ËL%.,P#»“­«3Š m±ôYåmؾ|wŸˆš=úùùœðAZF’z• fÛä7•Šð7$NÐOéçV]7äd Ià²SøFå•H±¢ r :éOдŠ!PÁåLœœÄM¥E¶Þ‹¹j…jdHŸg mdà#{#TQøß½}¢£w'€³¹Ô•15®l—†kó"ƒîæW–´Çc߆»ùr¯dªÆrŸRTÂËÏÚ¡u ™Aµ±Û¾Ë\ ŒMן‹þY™ÇâÂ[j=’Qó ·þ+d‘ †ÔjyÄ*uz¶)–m* ßf[-‚cŠ­¦ÌÐ#A-3'Yˆ­¦1™¢NÒ˜´W©5«€‹­™0ÄVÓÒd'©~6ÄÅÖxIbkf eI­öÑ[÷¥VVä¦ ‹ § Ó;p2¡$9ñÀ íKB+ôÍe£† ‰8n—YeU™õh»òÈ!UÕᲪ¨ºÌj¹u<)³z¾ɬ^ŠýØ [nó=¼¤9ð]¾‚ý£c¸$a**Uä¼ã2kì6ɬ¯Ûñ±5!²r™“ÞIü*%P ­–ACÛžB+Ö(»Ä™8ø8ÃjS«)ÚRòŽC¬Íã3V°¶a‹ë#zCÉ@\hÍκ¸w°òm­×ûäþNÛŽ8{Æv Hß?¦ê±@cˆ­¬8öóuBëqÆŸ²”öBÄ8¯WÂ÷w¡öÒÀ“ÝÙmñ6V §¦wHŸ›Û)K„PÜŽÅêÖ™§¨d‚s;UaWÁíTÒïƒÛ±8âÍ!ô¶ï=Øð;½p;™ìÜNMqpÀíÔ–q;Ĺ¼´™Êâ‹NE,Üw¦“Û©®SNòOR'#6³ƒòÐV˜(V·*Î&γ•6r1ç¹Ë0çyH4Þçy0ùHèñG<Ïóiá8Ï3Ž<Ïó”!ÅÏó”‚bŸç ‰óì/ùžZYè!]î>ÐÎõ»ÑÍ~J'6µö"¿Ô:9>Ñþè|ÓæfUJ{AÐ8ϵþY‡Ém7ÝâææÚ¶6س}ážçaVm©8̶bõ<Ë]ª¬}–UØ.ž²»øYf¥—³ÏƒV¯}žÇŸ|H&UUÖŽãL~û|Â$ç}œmƒK×£ãlø“UçÙª—¹ŒU¸Æ¢larÓäþñ@·rUg!Ùb8d˜oQE yË¡ˆBI:ÀÑt2³Ðµth›ƒ 7ŸpK¡Å/G9¦ÃBÑn© Õí–£zxPS ½Ašv« ¸qb«ìÇ™;€•MîТ¯Ñã¸çFäw…Ec‚‚ûÐxÄ4â i¢×ùÈtÛ~%òˆ«ì¹£^‚$ûMÉЩ½"Qõ€È³£)a£,nÞ)eÓ¿K*R}¤s8£À°qRa/‡Å°ñë +–  žÜ¬%¢EîêPߦ`´Š3÷¶¬ÊÂ+¥yeÚösI‰%‰’ÜkñDEæÔûÛ{eä^·Æõ9ðF¥ç2Bü|¹©Å!ôÈGÉÑ4=Ö·0i×~&’ Ÿ¯© V¢ñ€Îþ¨¦}@s›3B¾i-2–+›{‰,‹…Ö_ V©Ù^’‚ß_´Wž ÷©~¶¼ ìÜœpM; ÊQ¤3e«gkÆ~¶[\ǤÝ"Ïv©¯MÕ†Ì[ÎQ«£dîMÖ‚ç¨ò­:&f°Bæ}Ù¥98X›š°Nu½¨Hµ­z>beQZ‚º[Qˑ٫(Êët¡ÅÅڭ𻪈+O+{bï*8”!±½ãÙê,ù&ä.Ü_²;ÚÚp‡„^y²…ùTñHîËUÏh¦—fÚcA݇/Z™Ý4b*(…l^Ož/•¼-N•zjÓ:[ó–5DÞnŒ9ž ÏÚƒÖ£ì0ì=–9Õ@43:cÔ^Z­ißz'”GÏ „ä^Òæ¬ØH]Öï!4õ#Ýò⸎ C˜Ðf¾mºˆ8@¨°½%p7ø -|U¤ËhD ž†ŽÀÜgÿ€ÑÊý?ÿ±]Ô糃ÿçJ_ÿéùóÿuý¯_´¸Œ»·ñ¿=ßù߯úõ?~ý範þ²ÿŠwÞÙ¾ÿs=n»¹ s¶r¬ôïà;ÉÔÌÙ þΆ¼wóýõ¿{þ_¾þ§çpíßžÛÿËÌ’Íì9?ÿb&É,Éf¾7-ÊmŒT¾+sŠ òÔ›F|”¿µ!¿:²Éüîü¿Îæ}¥RSN±Ê_?_1åƒÖ„5ÃöšÁ›ª Uꌞ{(µB_];FöS+TOT%C<Ú̱¼!Œ•a¦³¬ÊnÚšfmêáð]³™eJ|¾zN© KöJ‚öJ€o ­Òܾ¿Þ§o¸lÒ*>ïE»Ú #ôÎ1N0-¬À¢|C<Ùµ‘,Fc€æ„ ›$_#$5ÅVÕ*Ø›P%iI½ „LG•T¬ ¿;¥k¼´Y{aChp1CŒí¦OHð;5Ý¥•X@áh }±0L¹‰…âϰ×ñ8²Vª²6ÜéDÎÐÃä+>¤¢•˪FcßÄâÒj£ÂÖªY"†µ\ôŒCˆ` /Ëmsj¬²ž5Ö3ÇÀM õ쳌61\ ªê«5UÝÒÚc•½¸§ÎÝñ‰ú¥¶h“¯t'´ÄŒñ©ÒêjCíBôG;Â|"ºÍtó8z´AÛ¤Ú@ ôäÙÅd$”Ä"kÛú ÜÆÄSøIŒ‘iÊx¡a¥ÐðÉ u p!ga‚è™Ð)üªrG¬DÇZú.be bÎíM©èê½çZ£ùJûñ€â8ì¦â7eãD¨<3|%ẅfF^¡ª´ºp«Þp<·¬m}C `‡¨ž"1oð±©ñ‚Æ!7£lkB.ãh¹ èÎPé»b€*"këAä4N† æ*“k£8q`×L#çãm"P‰] bÐ9Œ‰«½³\…lœÔ¿öÞ¼Þø‘bšM$õØoO$wò+ ߀h~ø›Ã`âÒÔ™i[)‘¤tÅ€WÖ>±vÖ+˜lgrþ=ÿ~Yâ fchòâ«ô0D…ßN§3'öª­Ý¦YçÀêß³Žyá-Ø©CãU )ŸÜH ô1¢úÙX­]ÅI“žÓ_Àƒnx“T¬§J'C%Üø++q>©:°èÊ‚…‹ÉˆÅѦà¼!IS#¨šcvmõÊJVSeD®«¨V`c½^3¯|<’èpW•^vqïÁJô[¯œ/£ô«J3ÜåäkWÔ©án¥ å7 ˆÁÆ8ÈRYRÄÚÈW`×Yú.Üøjòuºó¾0;ÊŸ]Ç…iÉÝÓxywÃ~äòRÑ%‚˜¶¹ov€œ·G›âÿ†°@ºàÀp ,Àä 'ˆkœ¸¹á$[é©„ØÉ8Q¯ÁÍšØqqß@ÃÄâ[¨Æ1€€vÕÓ‘:KkìwD§R»7¿45FÐ1ks냃´ožÚy7-| ÷¯}ÈtMuÕ1:n²NWŒóçÆ*9¶½‹ÚeèDÀgð„䢻'ä$xŸÔì©`>Í'Õˆ¢òâ bí$íÁX·Lêû -vzWh -$ónß•Cwˆó^Ö73Xœ®ú¶GÖË9@cïúPåÛ.«/~Áð'pËYŸ tÔ.㛋ý„ý @.}|»Áu¢«Oeh¾‚º§ÂÖ÷—cô:A+.0ýy4¬g7„ÙÀuïš‘ÐÚä !PÏ&¼î1±„À›¢WWHQ·þ§ÐØmñ½v/,@&ùvi¥· Ä…âݬp[yi"ÊãeÝò墨jºÒ‚­Uñ¥ðºœ­×éƒRø¾¤&ÓB|¶¥k޲]Ÿqk9SScJš³=n_mJƒÅiý(õõöö–ξ)ŽÀL¼è¡ˆ öc=I*)°ê hÎ2 ÊÁTà#ÒþxäÖ…ç;_‰±ìY»z—³­ +àíJz#kÜ’„¬Dm $"ÛZÉ™õ›ç [»j7"¢¿Â<Ž5ev‚ÇLj^Ä\Äã Õ1³OÚÙïÊmP«Ì!Ý€—Ú…“'™òd´ r÷=^ ªºRýcS¨‡Î}ÓÄb©Þ¥Xq´Å‰ƒw|;íÉîh± ìlÿШjäòõá8”± “”"l~ˆq-º02éæÎq Ÿ7ÌŒip `úÚ3Tl¬c`çgáì7:­Q{‚‘qMãËtŠ)ýÌðí^ä›HHf'L|5Ji‡3¶ÊÝnQt ºPmb9ºäÅê“ßѧÃÍpðë†á9V:lÀ€+•RBÏ€b8ÚJÜ¿C—Z宩G„?ëØm¾€{F‹»€}ú¯¥´!$b¯…Ó”9£Š]‡ß&]ÈÄhÃË€>o/—Ï8ødAªŸPÊAjüü`FX Ä_že(©ö%¿‘|XUAsܾÈG{úp£ìO h¤‡´:~6šã×UŽ_&³ ô2ÇÉ_žàm'²7]Žáæ<” ÂgUk¼‰²6ÁŽèuußF&­û§ZqHÏ%Ý4׀ߕQ’QÏ$ ¿ó—ÇéìÉbqèDûCi%Å5r©NP_¸N.„”ä$#UHndG“2ª‚Ezh‹5k*fJ—Q—7ïIë>ÒÃ)ñÊxäì4ˆ}¶°šè7È‚OÈ¢Â:PÆØí¯Sµš7-1vå!óÌ®¸þmø°Xb×%8ŠãÈ,¢bÒÁÎ[~Ô>,2…êF•ÿàmÉ$ÎS+ã:²¶Ê~ÁLÛÕ¯dÉÒz©‚££|Óà£_¿Bêº(e½‚°uÀPš¨„*–õjŠÄÝä át…“—%žÒÖ'%óÎ’\oÅû!aºL ¦Gò8O9“ØØà:•Îõ|"”¨ªÛÀú/`mùÊ­Å÷TºÌTŽq-æ|>wÔCiÛ¥LÔ²Yâö" ¢¤ÀÔJT¬¼g]'•*þYh^\Õ1•"ºúüÒ.Ko8ÀK°´uMª›-Wz[š¡¦"nìËZ¤`ý)®Îå¾²Ú!ÜL~ŠàY×B]&6çUqŠ…”œŒ² jÚÀ,äYJh˜‹u³d÷ÒfcÆIr™|¥ˆ9#¶¹ ÞþLœ% kk6x@ùF ð\NújÛœToSÜ·Ž>jç”’¥)»¤ ÞžäDAÞÇ·Fl÷øÖk?| rížÆR,ß1 W 7\1êÈY<‚Þ;ú8Õd m²UVÍ㵕Íõ B!žWþ’N؈‹J•jù³*•’~yMm¯)Kµ`gÔ³ªô޶6íAÖk»z3U Â¥%ê —¶Ÿ+e­<ê]÷nó*û†°Ú–ü‘Ò˜ª•Cë-íÍÊa~´Ëõ:ݤ ùj½šô,ýûº­êâÛ´ ï¯Ûɾ½Þ®r×ueÃMKוj˜êÔ‘_²AìËÊP²¯ªUDu©4ø©y²r¿=½<2F Êš.C1ç6iG¥F~5ÉçUEŠ[Èë’ Njý*Õ'YY²öÛÐ<š´³E¥Y<£Ö }Ù㣠ž“ѵ0A;óìd$׌ëô~M'nß¾ÒšR]ßTN¬AÕ–ÕÚnÍcž|ƒzò좋/ÕM°\rNªåfWå&>àº-Ö¢Ͷ¯‚ͼ:—»VAw’Xä‹>ŠNlGQO†k¸­gu±0Õî6lm4!›—tމ*½Ä"׿†]:GîÛ¹ª®ÄbæË€F./,ç6m‹X7C»<_¡ïÿ%œÇÃÚ~\ì*ç$U~ÈÌ©Å6Ïu‚nÉÆL?IH‘n b·ì‚ð˜åw‹­9¢6ÿ4!–™bb*èÀò‚ ¯Ò¨M|ñÅ# ´WÂ,ŠaEÒhsH–ge’¸@Êä›6cÛ™Á$ž¡%Úpp¼&ˆ¥â»½#Ûf@Œba’æoºCôò†øßúì Ý‚e×3 mÑ_¬Ìü1Ó l·¶«7*ºÒÙí9„LÕ7­fõ\a*pZµ!›|€$Pä£D7{Ö>¾ßÂCWæÎˆ&"¨òoÎE ä%IÓ M³Q87üvÆP?Ûˆ‚ŒöíjË‚-Œ¬uà3¢dž™E& pQñ!>ÛP'øÔ–ʵSâ‘ɤ^ÖÅ¢¢£ËKŽ`Pýãzpw³ Ô¦aö¯³=·õôGÖöà9:ü#À•Ûp=d:Uø(×/k¡i8ÄÈÓÕ𳄠vAù$ù:úPŽÎ¢"}}‘ó-IÆoïym,˜Þ²UæýÀwŒÂöÞœ{”V¤1–h† –, ƒEtÁ«óeQ9´‡rÔ¨øÎÑô‰8„SÝ=.ôÇVŒ"ЩQ Ý¿Vä³ùàÖ¯¸ÉY;å¯+ôgÚ2ÄÄTþùÚªøTè’Ëø‰¿;ÚD ¼@ ·/weOàÏÊiÉÂÖ=(†ôXy*…€”T¾p–µIk¯¥EŽDö1=O^eZ ç‡B;{ürrw]!ž ;õºߟu}ÄÚ$EúHtQÒKÎß kº_Œ‹ëÃŒ“äóˆ•õ™^û¡¢äHÁÏë°‡z–ëØ•¯ÊOc_¿ÖÙUØ›ªü¼@"¸}¬á»˜ß]´+ð=Šè#ÕÌUä°*½ÂÜíǵk<"Ÿsï¡’±Ý_¨äh4ŸÇµéÛëãŸ`r™Ñ7._°Ç…aGÉrvò8÷DÔ~ÄT¯ó‘¬aÂÕñG§ƒè¾ö@_Wäó ºk˜Ä½œ6M°*'„À‘eñ¤ÜƒÇµÓÅ!gÇû¥óSÿkqêÊ䇱™•)oªÍ¬„ ¥˜é€\´_kÔ¨ý†l¢ão”):J¸NÏïÿ‚igG¯Sû;U!èH¡S×4s¹1½ ‡Ãê–Ö†€­Zo°(çn¹YÆR5‰mËC?ºÛ¬œ[ª>Ôƒ¸Ž®W9Öú4Xp;wfƒò¡Î%&“cœ](“;'õzÖ ~RÃIª©JSY¦ó¹‚ý*ù¥)w×2çpMç‰OêÏn1;Ú`9O‹ç ¦QçC¹íëÈÆ¯›%U1®#ŒÖ¿æ$‹ç·Í”|ßGsÄ=InÄ*iÃ&.¾ST™zg'w½T¼“‘°…d5×¼†Dÿ"6»x;–‘´oÀ=ÍŠ ŠŸ™ŒÁ2¢¦2%‚‘dòjSû\š¤ê>× 2}Ï÷ËC¬w¾è]!–ÝÚI,½+a'oFEQ¼WîÍâKmÎtpISI%ý÷!·Hkwîó®«•ÙmhØRÄTòyJ–º~$º/æùÀ;õ`ͬK‘z˜¤í£âå°„&vÂužTÃù}n[§ÎóÊŸs¿Áâ¬K<<«¨XÛ§VQ—†[·T\ûdú¯÷£òYšHT–±ý3˸Tª^oü|mHa¢rhŠ[}´ìíËšTÑuÚÚ¸n‹ÇF¬J+o¡Öd):©°æŒ·/¸bÃaV¸oŒ úÖR}\êètP“EWúã-rx×oÐùýýÚ;„r¹àµ=ä.¥Š[ÊT<áAÀxU¦6ì’{ä a9zŽ{|½¯ágsQÚ$VcÉÁ~³D\4Ìód5k`mVãèx¿t~ê_²­‹ûì°,ýìA®RÙi²²çzü¦ò+VCEñ`¸)+qº›t5åýõ˰"Å'²+bôMÞƒÌÔ†i—ŒŒÂÍéÈt] qÍû#˜;Æ¡€‹¨·÷L6„S.þÇÖ‡ãÓÇéøŽ©ðøÚ‹äUWÆ;P9ÔÛ »e–9¤ñE'ŒêGÀÉä@l·ypOVrÞhï¹MyÂdX…ü}j®šßÓ<ªcIÑ[>D7¨Ç,Âÿ¡)ÕpöÈ4†±ï.*¬ñl5¤YÎò°o…W}!š½¹'!€Ï²ª(_ Á?±ñäƒpTú Õ±>|výÖ&ËtàüùÚDrÓM=hSÿ$%!_qІdÈ"„T0®¡ àÀL'ú|r˜I™&uÑ´.ò¸¯÷^'xà§s™uAÌaqÓœÚ$_¡œU÷Ñ~«Äð¨-c¦g>›8UÃC ÕÉâeeóe\1•ñÉÏ3¦Ðœ+ŽI6‘šÀB#sxjJX±1ÙhŠ L{騷5~`PGkf?/zÙÞR•dÕ±·(ÒÂêa“á  ARÝ4REFS0áOPaà([íñ…Ì;nÂgâ£ÜmpHÕG¼ •­Ø_©áðïãhÚ™>Nw8ÖL¶[—Oµ®„¾ï˜Ú_pd*6£{’çåëz|>©2 'Õ!q2%ø½·“ÚƒpùIuÈ>©òa“ÚãPñ¤vböI•_xœÔFçÒ8†öó¤*qB_w<í8*} DõqP_WãóAUDI¦‰ô°ùÍ¿ÓË'nêçM® Ôáš-B¾_ &M}KȵAŒAãkão!YÚÀýVv¡ƒ2R5JÁ_êGHÐ’˜Ç&8oSû({ ×8OE¯ð¸ª&õ“dn;[žÀ¢º|ä2Wàªûw¿å„h„æ.äõëŸ}¬µdK:鸶Q¾ézZê;#dR-ø7ÓÀ˜¹‰Ìóðz“CûxÚA³­3eíÌY®¯æƒ\SÛ YðÀtibºUÄm˜Í­qPSXw>K» 7eŽBTAyoöÁwXσ}­†…™¥qNá3˼a€@Ÿ*Åì7€MíÞmb¾2ñÄMÏûn"sïÕM娏è©¡[›\x‘/ïn÷"ý«ƒT z*²ßó–ÚÙ¹:Œ£ÄMUñɳÁ wí¶œ`Ï2׬:SÓÉ®†ÓM…ëgùôÇ~«¼R^7$_¼@ÇîÑÛÅYí„%¾„þÔYû3"}l˜pÈŠ­š¬ôN âø›ëã·M’}I¼ÀK“æqKMõ-‘²J©B˜D‰Íªå±yýž:a¦( ž8æsH%üBQë[[è­J_¶°}ÀYaB”‘'sq: ±Ž± õlsæqJK§ýÞ¨‹Í žÍEÙª 0{cpén1B¬L´‹ªÛ:ä:gÊmŸ A*££wwCin‚1æÈ6*èSÑk¤¼6šNŽÇæÛ$ÇrÉ™¼mŸ…NïÑã°(Ö8žHMÄ.î´U°ÙR6é È[ŠdßðþÛ‡›èÇäZ·§ {M®õ×ßf×úËRg!‹<ì¾þÊYnÍ}#Å×ûÎÍi[]ÍQñç+ƒÐþδû™¥›%[)x(Æi×»¨Ò,ί÷^_ÿñáKÿç÷ÿ=`š8‘@›ˆ¡ èg$ rÁJãøDʳ>'˜,[Ï)çÂø¿ÌElöö?rF# mƒ;-ŸÝ ïŸúÿ –¿î¦çÓG}Æ‚P4$XrBÓ“¶¢Ü¦ùžr†îPm'HV­¬Šàþ¸ éA_z%Þ>d(x’áZž”ù÷ÿ˜îI³ÖS>:¦¶ïÅýPLÛþÜ•|ÓÎôÜþ@?þ\öÎÜÞ¼ à‚J ‚|ÞôesHfN5u˜¥Eõ/^°>0(<» œh¤SjèsÏ‹Š è[¿ûxÙQL朼-É;:>åÏCb¯¦ÀŸ/Ó>ÉfI5ºå©j27>{³$U2[´k#¿|AŸ«3=é ×9JÊÃX(S§͇Èpµ!5M‰*ç8¦ÍjŒw<#ý£æ7®&œwxSX*ÚÆ4·Ö4>³m$»mJaIøÍRÚFØqŒ‰ _Ñ©,0M¦Ä<¨öýÕ”Àê+?qÞ&‹Ê¥Ì|ÆMAæ–ÑÌhsÙ‚eêL8@ìþÛ­Âì"`@[˜<ýη d’1)u6Õ(7¦ãâƒ0q ‰ÒZHg˜;ìµûwê™tË %øKŸÍôÀ÷ ¾ö쥉¯ÈŒ8€òBS’ã¦RÔ¸Ÿ”ÍÔ̇Òr~M©4º–±v;w,$ܳb=š ÖÙK’´±ŸO˜¾®vìüÓ”jC ßÈ <Ù†æW;«ÙG³Ë\vì#ö:Œ,ÔkÛfÊì¬"h/ŽeòqÞ›*.gdfÃL)Êd2}ßX‹ÁžKÛšœˆ<£›¢´Qç˜jdÌQ˜=a¥ÜzbÖáhNÝ_À¸¦ê„ðêÀã ®Ùæ”Ì9jd{.¡ù0‹ÏÀ]W²©Žl8ÍPoê}ü"-3³œtwkº.z¡W „¿ëë¦wë²âå.±¶™¼€šï¯Ì}u¥2µmˆ«áT[$¡íÌjt¶Qþ+£&ÚYêR;ã}‹ŠÐš÷¼mn¸o{–Ës(á˜(R˜(œb!oÕÜ$ ¹“r)Ë{¥ç™µ§»\OÏS¨K¯gK}m&Ç>ÏÙXê­[–b»u“T&"3FÀ¾ÌÒ±ÔtAf³M`Ÿš·¡ÔðÉ † dñ£ahN6ëK Gá“P ba¢9µw î›¤›ÚÑšºAL²~;¸Ÿˆä¸µZ¬çúó5\iÈ ¼#1Q—Mè9Ñ! LžÊ7’+â',+C©…Ÿ¡<?K~QöϾu&›ZêŒNt7øh §L„eøÖähÇÞ©Ê Èf=w’uðJ4·Â¡pc ë’ÇM4\…;€Ó¡ÌÄd—*z+Hs$#m¦a¢I®Ý­/ËÉŸ{[ž÷ô¸Ã‰ƒæ‡"÷Õ0¹Ø6â¦ü·2Ë[–‰1# ÖlE›º¢ÙÅ)#_èÕ—H€iÏX9õh¡ÀÜJÔ=÷ /¢ÆºÙÝñ”øìЏºžÍ½6š›p+ýš²ÉC©K£hã„¿ ØsëÒ<96Mþ»ë‰Í.úvö„ÚùäDà^U b~W V;ec”„0¡ŽëS~“it k»¦öoƒ$.éìüÈ WV;ô·ˆÞÄVwÄÔtÈC©-MR{bzУ1Z÷F±>µ.DU*øÁÜÿ¦¶çÊb²áQ¤ktÉQŠ ´ ny í‰àÁ¢9ÄÚ´f™Ai£C²ñ6Ä!;Z&=k7©œAká‡=\àž`4ÆÇÉ3¥I2 z¬ mFÕ$Wƒït _7Z•Ç’§#ï¿nbšÙ’‡Ûn`¨)ô‹™ÃG²(³1‰…†ðHê•«Ä:Ë &¿ Ó® Ey‹£t¼ Žo s”"xlã.y×à+]}K^|.»eÀªr¬±Î»r¶dO74\0´ÇYȃˆì³u×µó<CñÓF` /¾PCV4ñy­ŽƒØ»ÉS`¹™a‘žso“€4)[ÇÖhO0z8ì€K Ë^eü2ÜÕ—†ŒC¦fS ðœ–Y\}Læx•ÈÊ&Y[­²Úfܲw//£È¶¥³hÔ*—­ò-µHçÈ5ðú‚õOÛ‚&š¼Ó§©W§Ê ðý5ýsz8ßïŸ÷N>Y|¦³COüüŽÒ#Úi@a¬Ye›ú0¡}Öãü¬¯£ÉtêSƃÌ2|góyŸ¨IñˆŽ~fÝš‹ç&˜5´$̤3›ˆã5׉⣙úüÚò¥VzÛ¿wy5±j¡ÙP`qËä?qCŒ!ÈœÚçÚ£Qˆ;l2ÍqÐVøyé›a‹«bêäÙe.ª¸€žÍêòÛ­Ï… µbøƒ*#ÿÙbI Y}`º6“ƒÍV@ïš*a ¿-³sÍ®äáÀ^›´`±ŒžÌ,ÙFKoå,È“O—¿Ð1·¸Æ¢"¶w©Ê´ ÓÃÚ&‘U¥°›Jq3›,}6Ewèâ˜=8z^,†mÝÿø}H>e•9Ö8zëát¹¶£±êünòV @‡‘zN.™{RüÉü›†)ÈoˆÁྷ[ Q/Ĭê·shƒéº‡ÌÐaßPCOåü•@dM¢–:i´ÅLÛm«6è×]^š †Àhèì!ÊÏl£ak€ÔšíQ ?¹É'QðJ¶‚±mc*©ãçlM[¶ëK˜ª¯›™bº jkÚ¦AØÞu¯¨úDç“^'«Ô4Qv‘ðmxŒ¤.ߪtž¸Z¢r&«@ªU¼¹ó P¡áxŪ›¼6m×þj»yç%f7ù±Gp“ð|‚ÎfŒ#§W®ýȇénçc® ûÅàf¨íÉ›¨’Ù¡o(˜¡ ˆ)¤'qf, F= ðçq¶ÜðáS‘Ùx "HTÿ4å]ICuª›˜C.~F Ok™Zµ‹+T›f˜¿[»¼¬wSÉæ  ârHS8HâÀš4 ɽø›ÒBXeÁç-a›»ÃÈÌí¡âæšJÃO¢†¤Ñ­ÒZˆŒm<˜”êLm‹BË­æk%•wZçbÊ3ïXo\÷–hb&éyRHÏÛ>û´ûö5âVìîß彚Τ' |ÛCë7µ+q?ߨŠÄNìTžûNìªÓ¹w" )vâÑ4Éøha'ìÄÎlšÚˆpJÎÇFì¬xªØY#Ó7|œç¹ÝS=vbWÂÂØxVÅ {'.i^}'²~uìDÉê{'*ÖÒwâ$#;ÑÛ±7;qÒOÄw¢Ìð{+RPÛ[Qi¨|/N^ñשiJû.Àù±õÖ;½Zò ñ­÷¶Ñ>îEYø¬:a±;‰¹ùa›‰9"k¶Ý,Å䙡iµ7_»âb^±E‡êypU¶Í›xQMþ»|^õ5Ó¡rO³Œ­yVw¾n«geêÑ×Âõ±V%»I›Ž«ùØ&™*¬ O÷>Y•=Gº©¤jÅ€ ˤU€4¾»7Ý ¶6!(î­õ¥ŽÎ²“BKÁŸ9z»3Ûl>ßþ»°YÓZ ¹‰ó­JVÝù *Jº‡‘‚X^š®&Òëò^·ÀƒMü@%ôJ}¤¼ØXìoÇñ½¼C#[–e)Wr 4O+•™¿PÕ6ä­“O£7§©&3ªüPM=0”é51‹š«¸m‹!5Ø`zWðƤU1ï‹'ŒæÀcЩ ÒbìTêºr¨°ï%’:Ûˆ6š›TÄ.Ró`.»‰ÇçÙÀYN²†j¤¥!öß²EW,oÈí2IÅr´'õDXØË#‹lQñ9è£ \ÝÒ?37ob8’)œÇFí+ê¤í°ÒéÑL·vl¥Æ ȸåfï+p7™*7ŸÄÛ^uœfJK—*×”7V vB¿ãzš‡\hu| _kb0M ³& ¨Ýž½T¸ýqìzª‰)®ÀFS9ú£\£Ç½oŒÍÃJb:0›NYÑ„.²hÅõ;T(ATpƾž\‘z‹­¨PØ‘çÓl•@ÄH[w•œŸ *²nI™ÏEåç>¯Cä/ŽôÁÒOÈ^ƒEcŒ±º¡‡A'A³9˜/ué’Fwz§]DmS챈ö`û³Ž-Øxƒ$^G¶aèÚÙå 1šÀbôÙ¸ÐDkÐÕWm`×^ª;ìf4Û þ˜Ï»¤Ç¾'ÙmDJ½mÞM¥ø9`Ê÷"–£J)prß\¡)4³Dr‡˜oh+‡0åN!9À𥆀æ) ÷˜æÑ|NþlQ…³¬-‚Éæôï(†0å@9`²†©ŸSè¶rÊž->䀩4±ý<ßÎ$åOdª8“ä‹#Hù,9úì!xˆËÑv9àØ5‚tíqà•¼}‹X}‹ö5P£èSnÅ.LYÜ÷jÞ’:B °@ŸYÎ=‘ˆy´i»r¦ÿm›}ÔyË‹013èÏ2î$R¸çCIüwKLgí&Rº¨ðòf—ki_Z0ÁÙ|ž55'†?E0-°Hc¡n/ß¾,Ò¾Íw!T…¢¼6\SYk]nx¹ÒÚº6è|þEö—3gèq A–]&•=š{¢IÊ}ÝÉ~Ù‘ì.”ª“›,ããC¢ir9wµ-s(¨ô’õ Іª•0ŠÞÑô‹¹ÁoÑ´…äú:¸ÂY™00IC½›p!ö„·œ5)gOÜã¦n‡ <é>k¤L=åÊ↰êYÌ«,ض¡~û¹|6uÿ`(ž@ñ?:»riÝPüÎ\Ú噈‚3K"1€gºgY™¦³q˜¦\ÁÆ=7Þ\bµ5ro:#wL#&ZfÛÂVèb€IÆÏ8~k6ê4M>~;ØÌNG´Òµ¸ fâŸ>”P“›ˆ `:°XÌÚI2ô“ÐM–’=Ækxþ.›·5¦pB#ž‡Ç$¤Õ›#f“¦($ÔÄӷ䨩$ó@s³­æŠgæòºÒ£B…Neç"!÷hŸØi*¯Çö'²¦l@Ú>?_HMϹ1]R༚ÖÂsýÛtëßsò̧fyñ›ÄŸçq_9pa³[”•öìW–BN³_ImA}½”Ù>®•$Ë-0++ma,ob8Eûïv£ÙÛI‚míh.Ž&yï°øÀÐxŒÆlü˹ÿ¥|KåÇ €4gKUY%'[z!ÒÈ éo±’ö÷ÃÚH–˜àô²ª6%ý¢9dx¾ˆ‰þ«„vΨɢdCIÆ—b‰‘,Ä}ù/œ½I’ÜJ %¸Sèõ¤Ï‡©UZµõBÚôýoÜ#¿úW›)  ÒŽáaKH¼«œ$ä b~n#góåÆ. »æÚôÛdB'b›wr«kâºA€Že‰ ­ÿ ¡£X¤®Ë§ŽÁÌuICC»0»\Ìx Äm©±¡uÓ+:?¤òZÊOÆz2(Ào«_ºÕB/3;Møi1àýòËÚÛE§ôPr½c•\F )>ð¦At:ùíK?XÉÀ sés¬éqƺ;÷|܉‰ nF‚ñíI:×Ñèá"ÕQR+ånžÉ‡^çÛ_§ÝÈT útÏÑû-_fÓR!ò¯¹6cNð m¾ÑÌ„‹è1C·pîšT>@pa¸‘±"ì÷×rjr ]:Ñ Už «ŽÅæH4ffƒ9]UxC5@ÝöûhF#è2¶¹X/eѲÌO‹(™h èÔÖC÷®/Cn¼¾ÜçpÚȬZKµœl¢Ó;·a$rv¯$9è/0ä°{„D0Kk9Iùü“ìq¿` ¾i¸ëÚPêðAª&æ``ÙCh°vèÒ9éô'B¬( §ÝÁód¸þE)#}䧯Î Y½‘^ Ò›.~zrXy~êÃÜå©aúj7æÚ@+˜< psØë$ʇbAU@˜ó×W®9pª½.¿¹>é»åPKËOJl!ˆÔ],Iü8HÁJI¤ê^Œh‡ ƒ8É(uyz+ÕqZS®PÂÒ§v$Ûñ6¨Fqw¸0ä}·~ôÝ·ä»ù?ôô£¤°»æpºÍÉ ÇtDÿÍ×pBWrÂ<”²%ÆeÑCï1Óa†ƒgéIJ´¶ºÜ>ƒí«O 2ò ïv^-?ÉË¢Fx<¨‚ÚÄ`¸•²S‹Ã’Q¦ðd¥Hå—üøwúúSÀõÐx¢á_¶ nÿ0L Ô¡…«ìKÜåaPjZ?PÛˆäÃx“î `ÖWê2@Q~@ÔèûölÊ9tÂ4¾§¿~ižtúMþ³=“r#½1Xaº—C³-s0¢ªÐä~¬±ŽÍË ;Ôôt"Šð5B>ÕôbÚÆVÓK§£PÓ›´š†ÕôRÌ+Õô²|J5½lJMs·—ÔËS]ARK.H’;?W¯ ©éèXšjzº6x0¤¥‡º#£m”ÿ‡š^ÊÎ5½ò,¢¥G˜¥PÓ¨5=oC@…šŽÜu«iýI5}’=î ¨iÒ=ÕôAJ ¨ééÚJëi,ŽçTÓî˜jzº2GŠ u%ÅiäÙÈjÚ'ªTÓ˦]¨éµz>ƒ´žÆ:WROóê©§—* CO/›®Xstˆo=«NzzºÆWš!šro= `ª™>êXh-MpSKO7J¶–F€Ë]éA¦–>8ÐÒ3š¶HKOÕO¦’ž®¶•’žK}­¤lÖȱ œ{ÊËÌò+<Ë¿£Ä†à“–Utg©€¬”±ŽëfãMÅe¯ƒÙsÉhU4?¡WE³ëï6ÅF:ª›å“\”ˆ%x8ð&µ,n§XÇ0ìðõ0S‡®=x*=w>ÇÃØ_¯¸sîU¹ I+N×ÃÁN¿éD¿Ù?ˆ…]tŒ7©5¶›ÃÚoð°;Gú,€,w‚ñ~%GÑn¤\‹é”ÓÑÜ!fv niÌYd–ŠÓI¬)6çn½ÎÏÂaxŸËv‡`íP¢BŸ%2š-EÎNÙê moŒb«Ðq¨Çð4Ü<-!ÆŒ$ˆºs§wY Å…¡“œ” CHíMM6eè…–li q*åõÕío–Ú‡»¸ ‹ÖVÜ(µ|q©Vø CÚà$ #èÛæhìzv9•rnäô¬ÕÎ-¥¯LãpÅ×§jhÂ\™î†;¢3CÎIb¢ãP狃¤ó%ií\LAÑFÅd#¨ÇRô¡†ˆ¼~… }†7‹…`W²rJH›Á¢ô± •–7o³"ÖÙ|†j®‚çåúõC8}lÀ‹M×x@dÿaÌæ^6j0~kßOº7‘·œã»,p‡0[@íSû$vÆA ™ýààmØ>„¼‰Oº|˜í\ððw³c˜×í7Í{®kú§k2V(x ®;ých/zbm¿ ¦òäõ|÷“õ´ëñ™°Y.õB‘qv3V ÖYëAˆÉ.¸îÇ“”ƒØ ²\ÛVƒ·¾ŸŒÕئÚ4ÒpÛ’’Šû+¦~yt˜Z2}¶ïôó&9ì=C¥Kr µ QQí½é¹›î«”¨é~¹ÃáÖå‘\Qd¶Ü\ƒ¾Ð¥˜¶ÓÐÄÛRÇZ„šÏ2cjfÓ€€7½0ÎwÒ rã™±Á,ñ¦B¤ÇþãPºÇõϯˆ3ºê—ä›T·^å¹’Œ4‚¤´ù“ç$#b {¸%b´T*£•ªK6ŒÖÎëëö-a{÷´îüä2¾ÙP?Ú¥&«¼/ÁuW[ÔÊjÙO„µT´ñË8ÖÚËܱk)»í@YÖ5yvçß7F{Â@¢e¹>9Kþðí@#N…”Å'ì—µ–é@!ç¶Â{£¾­'I5v ¬ö]¶ ˜;Ö‘Ç«ÕÒ«Ìx]ÏÃ0æª+ît²nùéoÐ: û乚M¬MîÄ›§½-ðŸ|“áþ•ƒ­o"Ú€` |í?1yøOŽ ú¬KɲŒŸþÜþòPÁÂN;Æpi¬jOSøOð|óm"ëAÍr8OV`û^{âiˆ¤¯äÇúúX2wɹڵûþ ðŽ~|3X½ÇƒV¯6íÐiä9.`Eæ|%…Õúdðôö7#ðôPªÈÉê2ù»´á6ãRè.¿“Œ¸ë~›ü÷×û8SíN¦CôÄæ-fFsÁ±Y½GéŸÞ/á²ÜãÃz>õ0P ÉA*ö~0'М,Œ)ÒP±ˆIEøÊˆrŒ|Ó°T›»‹uùvñ¨Ð¿&@Gu8;˜O…%L<^õjl€´ÁØDEL­YñÔ…¯üJZ‰®_¿†€6Œž*–ªó¹ž^ÁÈ)‰[|` QZØŠUc+§M›(ÙUÒôx»‰ˆRÍÙɸã#D¿3&®ÉÎò‹cÌþÜéÈÄXª¯Ôݪ޺7DAöCën¶Š!,-hÎïí˃1UÞy»¥¶/Š5›Ö– Ç^­»…/ L~EϤ®sV&WoãïZÔéâÌÞC0.QYPsNï1ÃŤ²¶¯ë`ôjŠØö@ ÛÃÝØ|ÌÝŸkp:96gÔÆÝ6,'ª}Õ£5]qOe–Ý'Íœæ–Ó·¾ k²Ü‰Kò€º¼)÷…ôàÞPòRWb2–EÕÇ.œuÓÊø\Šœwo,¤ã¥w‡›±£lìX׿·eÿ®ðöÛÞðϯdÜTO,åÓÂý‹1²¶æÎ!r•ÖcˆUü;°òÔƒèuZÝÆª»  ÕãôÚmð㎕Ȅ4<(Ýç‰4¢Û­d+vmWRnwwb¬ÌI¯¾»êQP܇`OܦIusaŽX^ ]_¯œÿ¼{qJYþº ÞW>¶v>}lý|»ü\·—àØƒ’%GO’'ǶÐ;ûcFù8t£øu^N t‹›´ Õ)P{Tëàùo}Îx¨C^Úm|ÞhEïòn±ÃÏ ­_wÑTÞžËÇ»Ÿ¿/à§Û¤g#5n¯Ú£®ŽyÿÊ-°¡ý0 µî§“.ʧeõòûåñöþzŒNÞ>FÏ?_\¸÷>ú÷`KÃÄ{0¹åœ½ü7cïÁøNîÁ`äì:Çd6KnÁnܨ½]³[ÐXűCÄæ¹¥µ6[P®á½çÛ*|Y=¶àŒ%–“x Îc’Ǿ{nÁøõØ‚#· ·ØHíé-oçÏãݽspr zð¼cd½ßç“/{oïÀÍáòHÄLó=v 1Šb çQÄër‘íh$ªý9Ý=ñõÐþ{ÚQ¿/à§Û¤'#^âúöÞqÿÜ"ñû%V^Ûåûé÷4úC\oï¯ÇèäícôüóÓ¹mñxï£ÿ1g È‘ØÕâϯƒQÆ}ÿ`ØDfqÜô™ÕÓ«‘ã^·«” Ó6òÝT{ê6î¨Çíc_à>2 k<£nF 8êgm­"3fúr8=†Ñ_󸵂¾d&S‹{ÉzÜn¥ó`³Ø–­†{¤“ ûEÅŦ0ªA¸5“2ttÆ©“éõ3#NgúÆë'#Dî†M´Hv&6“~mqŽ'Ò±^ngo>.×öc=³Är›pÈ !ä†ÕÍбk«£QÓk€¿¨®î-•Y’! ^ê0¿.·÷zöÏçrÖÃå#Ÿ>×s¼?w—¢± ;à•c'K!GV*ó}.ù0îz™?ÁHqŒ§-)¬‡{̤0ŽZØ£°vÝ© ^‘‹”Êbô”DN}¢W9¾®ì–ãöݹvñû~|?›©˜ˆMû2¼"Ò’¯¼y–µÇ÷XtWSg¦Q¥–ö»½Ž ôêþz MÞÞ#§Ÿ?š‹ïÇÀTs*!ãhÀ§Ä£ôïM«o7ÑoTÑfÖmóœ¼g~çíGþ[l×nïÞ–SF†ƒlÚc›î¾9|$KßtùþN0BF öísØFúû"¢˜î½ÙÒÏhFõ$Åw’‘þ¾x›ü™··ûèr¿­ÂÛ·\kkÆr:©½}ëÒµ³^þçÞÎ>ÿìëÛ”Ël’vEÐeCšž¾åVsáéÃOÙ ÆÒ±KåªÞmxÌ~šn®«IO"…¶ŒáécŽ­¢Ù#jsÿ OâOM$=}I‡§ï`ȱ÷cä~«6ÎÊT®¾äÄ|äM>0äëc8çù¾>BÝûÄ·:´Ã7[yDøÑÊa©çµµÆxnchýή¾ylÂ+ê=—Ǽ¨ÀshŒX@¼I¹úÆT¨¸i­ÀPC´ðöÁªF€PÖ=}.´'åau“oãÏÚ£ß'Gž¾dÈQ8{ú0’MBPž¾W“íœ[*( ëËšx…ëΟ«šÁ¾>ÀmWߺv¿ß›£+3Ü‹¡áðõ½‚_ßtâœ]}ËIöõasT}ª¸¢sR¼˜ÉeTrëÙµ½z®¡<>Ú‡åÆp7[0l7ŸKéÂË—KÚcü¾æ?æ+„®"*cz¡»€FÀ¨L‰_`ŒX 4)câÈѸÇùª×Vm«åy3ãkWÝ ÆÀ.­è®eÛ®` :Y¢ †1;‹¿·§I>7Ô¾ˆ«¦;»xÕLMB¡DD«³§žE.ÕFëyµ4o›ß´ÚPŸº¥@wv{W›$, Kè”ÍXŸBÂ7R•†¯äÖ¬À¯4\•9‹H¥íZ,ûÕÂÖ²ìqìm‹žªþWñyÍ ×sõíg–1Ûµø0Vi©Ç*Âp’et?4: £Î0ltp/ËP&ã8¯;¦%Œæy>) ?¼J݆ &¦¶­Š]%¥þü˜Š™_]åŒOÿ ƒ|S%&Ít{Œ+%ÈbBžÌY`[6߯™{Ágm„žñÜÅÊœéî¢HyµŠlz”&kþjß±V›ª›»ä5s]¤—i)=hî˜ÓÜJEî®ü7„o9jómSuîQ‹(7Ù¬Ù&ÉÏYÙ…¦º ÒÑ “‘Å¥ÀÝ!?ÿß„ÓGñ5„æá·ürt“!0èß¿îË ÷ÛGz£cã8CK‰¾<Œ³!.aMs¸Oœælà¿u iQÄóþňçýÐðõ2^Fz¡NŽ6Õ÷ÁÎ~ 7Ž˜Ú¯ÇLž(ÐZ`áŠ'6/£Û—+ˆíyA0ªtÈ€QmVó\Þš¸ÍUÓЖ7 57µEFØ`LÂAkѰÃ>úêQ¯B4®õRÝy@—›)¤O ÏŽD¦»á™ŸC‚Q@‹Fâôû‚Žã#SX kžn9pÒ±‡1»T2oÏT’Ù¬]ŒW¸¦ø}»W˜ …_¨‡sŠpíÓ<'k[ œ)êØˆàÌøÀÈ»â)ý/ ®í zÝ×>[2÷íXh<¼ýXŠžÒðóÀ€x‰ó+¼TüÕGJ Є•ŸŠóS}¾eo™«X[çáÕú¶íô•ˆYèŠÇ†¸³½±¶e ÈWÅÅoó‘ç˜K=¼ì¬"ùhûÈ[ïõ¿sWÝ׌ƒ·üUɈÍü=QÂ?þÀI©‘ßÚ’%rZ¡°¸¼V #’(4DôJ½Ï³8qÚÀáã¾FnT­hçÑo_ì}õ Žè’î%齫gQî+p.‹›nêKåÎáÁÚt8N\Xûòf¼ö¯äÂLj…ßßÜ®ûMbá¿öËÆ%1ó?3ø.gÖQ9³^{ÈzŸk=V&ÞСµ9rñU8]ö)žÏ¯ítÂsž1DÐZ¥6nÀè6ÔdÝ€³úæðUÊ8cO€žó}B>™ ­ šÉ7²³“1­ç››n9Õ¨Yá5uTk…ïùºÙ ’iÞ èÐùÐÚ4¶sbh_‰ÉX=ZM…ZØmô¥[ ª€òxŽÁ¤á º«Æ^›B•øªyWunãè+AÏò*­´|àjh¿É|UÙ³ ÞI¹D«~ŒoCéd¢êè ™ŒÊ#¹Æ¾éŽ •7ƒ´J‘ÙÜî¬)uQcï' ¾ö£”™&ãïÂ&•¦ùîtëÅ—N P4#Z50m»ø¬l˜Y]¯ÕÔ~ó 5þÉ æ ¿©>HyW•°½¾ö¯.ê´|¦Eé‡R3Pçù¹²™Õs·¹¸ -W‡bD¢·®m³&輋ÿãþpsÞ¦þ²[o«‘þ¦äõ mÏßÌÉ ä42™ŠÆ& Û[´pkªU¸›:Cµ(TjêcÑÜøªE[‹æbŽý9°M"¦Y´@_AŸYM4Õ.µ–O?íA&½ý|ÁÆ„Õ×_ ¤”z~ç/F4ÈnÍåÍHy,ìt@ÇG“bbíõhøL4 $}UõE¸t5m½Æ†ŠA~)y,é6¼YéÕŒÆÖä—V"™d˜ñæ;Oí} üKnñ;ñÔÕÝè*1£ÛYؤ}“êz6 =|+‘ü/˨¡o)ÇôÁ€ÙíkkGí‚=–Ò匪›*ç%yñYغÔ$“€Ô-'.Ø2‚ÝþŒñÑšÓh{ÀÁm\µÑг©ðì•t·›ç`ÈýcðoYb¿t0b¹å->0ä–ÆCYbð¡õJÎcœb4òĘÚ*‘ìòˆ1Çå’/>Å&F¸<Ççúæ`  ˜Ù§B†ã`2Ë>ø&ŸÆë ­6ƒÙ§.ž¦»ÙU¹jUeã[uˆàÚä2[ü˜0õ·?-ÎÇÈ»ûÄfÈ#½gK9îÑÒ‰½[%8ÜîÐdMÍ» Ûˆ¾½t×›äã²tu®±tHw ·èìˆa¾âö÷PSi 6¦Ÿ.\j¯mzÚ%ÝPé%Óäv· Y±§d=xÝÁ|ÐCÛâÙò¥»Â8 3 ÷Ý]<¯ÝŸ|ç5¢M#¯t,hòÛzÿ(_ØHx+¡ sýPëoFê ƒÔ |aDçö8tP7ކuPW—´ÔA] ©‚ºƒûcÖ [Á£·ú©‚`i¯’*‡#?;oR*(ù~ÂýÅáü]n Ëá#TüŽunm"¬‚z³9:/YWê ¸Á×}¬·ØkDÛ4׈ízi¡îìçÔB}8 h-s즩o+àcÈúþ'fœk$è ÀGõç#×ÈÁY˜º×^#Àñ©ç!<Ó^#CÍ4b D2L®‘aàŒX#ËÆ°×ˆº•œkd)6kdåÃqlÒkdýx¿>Ýiä'çXñ¿¹F!»×ÈÒ!8ÖȲ)kd(fì%2®¼?—ÈpC \"Ã`Ôf:éÉ%2ïË%â|¥\"1Å#P˜Žð/}Wézk=’÷6ùzîDÿÆÀq»5'ï…­ãÓÐñʼn{êþ'KáIø˜¦Vˆ£9®`Z€3­ž˯)?\õæÃ•påûJž™H¶\˜^墭Eæ^0jdîu¯çªÌ½À³nNDô©¹ÕHÝ3ºMSéÖp/*ký@ïÙVÁ¨!•ù¹Ýø5¡CU1#à›è¼ñó&šTS„дT?'3˜¯ST6Ø„âŽÛWëZeOËèô±Ð\®¿bžu|Þ8èÒÓÀn+4gîÅàŽH‹…´Ôõ\h_ÌFZÖqK]"XòÓÔ§?÷HØ1q¯yÑHÜkô¯háWåÿÌ´#)íŒÁEûÓ<1k¯leT=ú{¶( ‰GSB¨e¬½f«¢ÿkÒÞ°…­Ã@ßÿ‡šþ?ÿëÓŒV ¿@’Lî¦Ä ¤ëÎ6’ª)™m´ì– NÞóøÎñ#ÿ1Û¨ª\­­H7jª62ÉA¾ëóÆXgº‘ä;ÝÈ)³‹ÞEw´Nl,ôþM¤„õfñä“ýÅXÿš;„”…0ñ®¡Ü¡gÓ¿“Î{Æ‚ñóÇ%+Âm¾G|÷oà@ø~ q~ÜâcÖS±¿²Ì%Yö£%C¶örÑø£âú¶"qBž¤E[sai-ÃmÂÍ·F”­9¿(.ðàK„¿*<ÿ}Üäg0Q¡Ç'F~å6áOÎñÃñ "L˜~Åæ[+ÔHÕD[oËâÇp¹t9Fx¨˜!¹ÜäØôׯÓõ/°çrÍ-â:÷\Œ|èæý‹/¾o’C á5¼1#g‰çO®³gZÝ5Ï¥Ò‘B¬l“ Ÿ$Æë÷Éñîï˜áþf,÷OšÄ)Š´!·„P™aÀ4Ñ $½Ë{B¬0ã\%üÄïô±Lu‹ŒWÌÍ1ŠÁø˜5Äñ–-D39îj:‡!¾²åÇ-ŽKr×û)[ò7,[Ž[ˆóã¿ÿhõó´ïõ|€VÿJ&ºÁŒÑÊÿüõ@¬k“ßmãc}*éçwržKÀÄ¿ùK›ñó6À±þëά@)+¼rÆf.j§ð;½E ËÝ9­Em4œõm?QÓ¢!_8b‹1ºìà ujõí„h VÜnªS"{£O®ÖÇ-?Æl*ê¡`ò_ç°0˜ˆZI"G¤­¿(ø•‹¢¼º@?ì™HQ¢‹Ž#ó`ƒurÌh(‘ÎÔŸH¢Aw¡’å ª,F`Dg7àUiñí ÕXâ•åæbnöT*݃½ypªNãÐ`¥¨Yjæ‹Úu§™TãÉž4‚À¶•Bl˜þðìJ¨ã.,)ü:Tý–\g R Ááýiz—›qø˜ wö÷T>¼ÊFµPjt€,:*—ªª³¢ƒHQ¦Ä‹¯²iÎ$ƒRf`5ݾxûi¿³ðù4Oÿåd>îÕN²<9ñb`åtç“UGÀÏA?À7Ý…@® ƒ{÷ -ô9Û–Ó~ùe'Ó3¾×…p/ºñmв»3J‡2Ž% ð®Š+0ØI¸» Ö)/ʽ>ƒ1™eÑŸÜ”°ëÙoÞã+× r@ÊŠ’gjK6WÕ\¬Xår{ƒ½D!,ËèðüïvªÝ câÌ[þ’ªõM`yõñoh‘¾ûC/ /!¯«†ž?¾ì/êðJ‰òß‹Žï€À.^¸å k`Ño¾³¹Ðè ¹½lõïÉÒÊà ãaª>çëªgJÂnfy˜9Ãíq?ºø*ÕÞà@rÆR%œÆ¹Q ·gæ«FP~˜B?†î·e®#|ð‡þ/-µÂŒÁßéÃ:Ì+Õ±ŠáXKq'Q¿%8àªÁôÌÛrdêéó.Bàëšê”J„zRk¦ ò<IP±U€î.IWŸ; I4üB=èÒãÂ;È>Ük@ % RãÖbÂZšî¶Tš;/Â6$⟶g;{GÒEPâÌ?œnÆ‹ƒ%AÑyFÓ-Œ€¯÷afõIMO)”t9¾P”°~’La9S—³R¤>„+æ–z»¢Ë,ƒtÔw-áå‹ú7tµ6 R•—[ax‡Ùœ/TŠ~„¶H¬d©wÙlÓ­´éfa²’iÎÔ#’ýJnÞ}9ÓñkhmçŽáx5VJ-M“@—úÄÖT×ùKrAPÐ>¥³a›~Ïúúáã<6¬‰áºI9-FS5/™é,è}tbøètO”"éYò`Ì7Ó¶! k™üPpÇ´];U»ªºû ïKã—fâjQ)¹H¾R 4mÑ8'MQ’je34_¢í9žD:^AûYS¸pDßGü㎞^‹–7›÷2èdƒ"ô§$Žûyöøy“q+k-5.A¹•%{a…ì*àŒY¢ ãK[geWF:èò5ªÇ ’…œÉ¡x%§r¹ÎõW(‰õjÏÅclY½—ÀSò„ÈN†ºÞµt¥œ?/–ašâèú@YU¸U4ªZ5/çÓ8¼h7eÑÎWBè,j®ÏÇÔœñveSÃ1§Š q¹ºc㣟çs †e|23PÑë³£êíÏZQ~÷ØøCÀ×SC7„v,²97ø``¬—³1ŠR_KÙQi®+ í&8ä0UX“¨|ê2œö€Ge"ZQȵÉ6úf½Wm˜YNøäâ®’Ïy$ÁÀD3u ú0ºá¡¯-uÉÚŽÌ~9ŠÑCÛÃõ¸ –χ')er0Xé_*‚û঒ «kµqÕŸd¹d€Æ k1Ïý§'¿ºÏ/Ç«Ø!&¬`’öv=3ƒfE@PºÁã‡Å)z "Á祃¢4Þ4‡ÝUBE)«Ä¾»á7V¬Ï>l·ù串¹gx-ãÈË|'ƒàå¿®®¦W‰{¦2¢ôè¦ËÒ6Z°ÜümÍ=49XÁøˆöº¤?À° ì• ú7Ñ@Ù´Yj6997)Ýi¬7û­ôÙû oö-Ô`è¼ÅÛS(å+äÑ‘òá$Ùñ] ÞƒNÍG‘{'…ßùô²ð=òr»]'<ÁX¨¸Ëp/JÚ­'ƒ¥g†!ë}rP"uõ ¾·¼‰:$€„z„Ý£‰ðŽ’®EöôˆKÕï“*åíZH—«A3åÓ}(ž)—s===áìÞ9òˆpÐ=fZ!–±/`N-¿œ«(‚ÜŒ'zÊŠw2rlŸÆŠýîNxO³;ÎÿKŒ€‚‡ÞÓGÒ Ä©×ºècf†ùãȈãÉOß·¼DSh‚„O\tyõüÜáÁ¾ÞfÐ 'ƒ‹½ YK'ƒ©Ã^J¨sm}\~—?–ŸŽ8Ç]Ý<édAîX~†mÝÏê2§½ü|–Šå7¤:bù)7ä\~Cþ†XÙï7²”÷˵‡„—àpà¾}¢Ôt±sªcGÌ÷ œÿ´sý)êXnR‘Ckd¯?Á•çúÓ¹|/¿¦Ós,?Ãûx ¾ÚËp3¸Õ7—b#LÓ^‰ÍQ3¯ÅîZÄXІ/ÜK±ËÚß³Ù¼ƒÅx)JXæ¹&ì˜8l¸×âûBû˜SUäcøþ¼q/ÿ0LŠá6L:Ÿ¤ïñs^ÆZ“·œR8uA]ÙÙÑäWô¼ÌÏð¯½è$Õõ29˜¹Iº¸‘©¾ÌÆv°>Ã%L‘)»×Ä’±• ¸lqÈË1îiüĈx}pÞïññÑ'OúÏòQÜM‚ÁÖvZ¥S½ìxPÔž$…ü)ЩuÄxÆ&u?ؼø¶µN¥ÇбËzJµ*{´á 1I¹F¸ó$ήy¦^îF$ۇ틤âÈDœ’ßE]VjÁÌ)5H½âyÁäY=S¼‘™¼ä Á57’ã zÔý…ýûîvé1âêàiÝKWš»K¥ ·`3Æ?ï !<ÊCÁ ×ãTÙË£7†¿T9´²¹õ–[çéìsÉõ¸ØòÑ»ëýsûE¿I3¦¢7XÈÏ“þÿg…íÖ~¦X€#ÍímEÒ~´`è †¯/‹*ˆ¨é&Ô˜ÌæøËŸÆZv·ÄªRôB"¨‡«ë⩆ú…ž4Œ>ò—K=-j–R®b TOÌÑ*Ò´¼ý4´ÄàÖ—+ž O³#Âsͪn4€‡ýÇRù¿¬ 9ÑË1ûœö\XOgÐE€]ÍŽYÙƒËÄwßÎ}Ó‡Co9ã2Ñ+dÁ”oŽ"gº×ã–€ ࣻû~Ù¦ˆüCAõEq{;ÞÌî8ש'ù‹§ ‡Wz.OâÔÚÂë˜5nkÇ#ëÓœe€žõäƒwó*ÇœÏÛŠDsÉÏÃV‘¡Ö…Ü„daé†!“Ñçé ±V¾‚ñ’õÆv¢Ë¦©ÛÒ_út§®L—b>:΃œZ;l=ócù~Dreišü„Á;'<;õƒòi›üS•Ù›ƒÖ\M-“Œúü “dÑç¸ÕT¯Émñƒáu‹:É~¿‘¥¼_N‹´¥,þ©t›mñ6ðÑÆgÓÖ%¹ØËëiòÃÖ÷Êñ~[•Ë ;JœH-O®½؈sZ¥†Ñ¾z—ž"ls6úÚ}17ƒQaaô“Ôóæí…mh«Ÿd8Ì8æ…Õ?u²'t¤V¶Õ?ôÚ;Õ^–“Áƒ`ù?ÖÚ¿dÕÆÉØîl£î` Ë}ý(Wî#ÃÀ˜z0õ<ÉÇ>­°OèÏÞ$ýÙO˜+#|TqA—?ûáÎäP+mž -^Jò°ÙZ’Ï·Øþèá°^ªvh×p ðc#=j;¿f‹¥ÉÑ˦=Ð-¯çÓ4åº==Ú-½#8¼vÏ)j`º/§U¦üãRU-Ú†W~Ÿ˜já«LñEñ¹óè!hÚ;ø4{´ î:48ü…e¹{Šöh z´on*ÎÕö¨l‰Sw+­–æ˜Ø´iÔ¿9uD’O›îMY–ÕYÿZà}lW)¬ºâÄóâå¾.G§™­6wÿÚVGz3€çÓÚMiYÏòéòPаê&1ùè²ä£“´C{3A)Þ·îñã›ëZ†Ú]q´G‡‰;PØwÚ`3Ú5½Qòä-rhÛ#þÌph³žÏ‚»”×’íƒì+.ƒã?áÃ0üݾ så 6 q£GÛIÁ&úGôþ¸ ¨zéYQ^ÞŽ€ óy(þ#?ŸŠbXr=çŠ{«ÏY—¿¤•ô‡0zL„Ư´_ÆÕ{üÒp]W>CKì'[(®ôþôté¬ï¸òüâAP'é=ÎˆŠ¯O«»å6Ÿk†¯ƒø3=Î,Ëy-ïn- C¢?:6®'Ýáß%tª£›ó¦º¸¤Ò¹’¡] OªŒGÖ)~®ù¤Ï†ãkì£fm±mR¡,&í¿³\Î Ü“cŽk6üvÆo¼˜4ì¨Bײ Â­¯œ’ë#|Òeóè¢ÝËö”:!]\3ãnÑž²Ê,LÆëà ’Z#q׿y×O¢ ã·°à<ý!àö½†‰ÚŸ¦Ú’­¹ù-Äk–Ñ~ß­ívª 88Í`·430˜xPÇ[NߟȮ·P›Ú°ÞòT†“IµÚƒ°=.`Ñ2n÷½ÏšÒ¦økú"^,誋”S·{_&ÍìƆaÕsôñ¤ñv (áo"NNJÜäÃS=rbéœoŠÏƒ†¸a,W×goFÚ—·rOš|J ÙèS¸¾¯ 9¦tì ¸!o¥¶D—Ó;*šÁµ1¨fD â£AÐXR†ÅJi°Í®[ÎXT2UõpËÏBÿê­p/ñ° I£_Ñ”5ù6ÔÍ¿ß8BÐ ÆÄÝQwOÍq׿¼§³ç_ÑÊñ¦YÑ•¹gÂo™ä—ð¹ÚþÜø¤µži’èfz=ß¶ Ê3/ÝÈ=ÂpàÃË>9‹ÑAˆqý/½MSPð^¹)%=%%C²;9°Øà˜(–FmIªå½;x™o¹ÚÈ·YÅ}X5=Ó]=µ´s¤Ïµÿ°çñ†”¡~ œ°º»`ß‚¹¥“1uîÃ×x>Çè^E\š ¡*ù«Ó JD ÉO©$ýMA(Í}k`"yY Í-ÑýTYoÆ‹R®ôým¡±åͬñµ]‰ÑùhR¯|ôcñb¢ýÚù핼»í•?cª‡û1æ_ûu&½,ÌÊ`ð–‚ç‘@¿Æ¨^w4'>ÕКáË0ñÇ+ˆPŒKçÃã{û‚ë™ÏJŸ·[?63ª`Ò¬}–kÔŽ Z~Áü¦¬Mß™boÞȦIÀ‰*KBÐϽ…d¾—¯|k Ù”Á9f–Ñ1¤’g{Á´ØI1 ©VJíwÆ·òvܸÉONÌäÇd9«(pÑ;¼Ê_k{§‡Ö2$ƒí¹¸`Ž£–Ãfxø^ÓæX Œó€} ÑQð¶Iõ ¤G..#sô°òÏC¬CHWµFhÆ­—ný» f¨Îu¹h9©•S`Eç.‹aSáUPYKÿëžÛžxTá9Ž5ÑU=x,‘êœõ¸  ,†+,“’òå‘ÄŠ“9>ÕOü•¤åaûúu0¸í‹€·îîpl¢ì¼rc9Y/vòZ]Ùbòc÷ò:ö­Ã«‡Öšê{Mîš‹L_ôfÜ ˜±Æ¼ú¨Ær'X^Ýàþ÷4ÖaÄ%®þÓ zd­ÛU͸µrÔÞÆçUá·›øÄX²ì'LJwûÞ¢_ÓÅ¬çÆ“.ðÛ‹Âc~—x•Éb8Fûò?Û¸ØöÖYŒ ûºgÓ¨4W¾Ž_¬þ²YñŠ6èn¬eM=‘%µNå‡ ßlFÿ¾™´Z+jeAÛ¡pÞ6Y ÆÅèü-Ïê«T)N÷&ù,Ž\ï .7²¤rÿ¨RO'—|ì a\")¤iÕcæ‡Ó°oÕòóÙY-{ ê‹#u‰Æ;fkE(‰Î|–~&|´©ÄqE×O«j‚"mRew¯ƒÃ¼Ç+Kík†3?ïÀÙ.‰¿Ua1nçEYBInëÕ¶• †íòÞ4pË'š`ÒKnl+™Ê²âÒ'ßÄènΦä‹OUrv[%•u ôÚÜ-`ÕbjZ¬©xVZ-Ã}–ÒjÁ2ÛŸ§¬ßÍKPâªÙåŽbù-¤d0–šÚû KÌ[0°Crœ¥û1M„¸³…¦‘NoűlD!ê2ÜoëŽ"T¾›Ï%Pã,I@&r¬ ¡œ6u5R2ë•Öýêö`É«Â[¤ž¾NF[´ðú©Ë&¼3.Õ¢ÜJ‡J*Ù=Ô0"%;^µoQy"<è½bGÐ5EëmþúÚ²En£áf·@,™^!«>V–Ö´w²ŒªuÁæ uXú-Ô5üd¥FýMô1©«àä=ïœ?òºGN.*Ef&TŸŸPƒÏ ±Ç$†êï¬&¡Gf"ÝËËvºáQnFNôÅã²@êL’yòñŠ,’n4˜Ö!R>Ëh—h%>”ÌCQ܃â"•S??Wªh~[Y'y÷+#~]aöW<Ý­ÜÈxz“_ùvñ¹ßæY9§ñ)¾rði<÷Ž…1•#Ž‚d4¹ó™`éÇÃø–n;Ý‹¨Œ˜ Ÿšà#˜·ƒ9–¥xØ®mºæY»R–"§ CiÊÊî˜9|ñCeÿO;Éœ 1dùÛ\:,¡û/¾ÕWþþ#'y<Ý£Êäxz“H¹íÑ÷·3bdm`t轜#ÇÑ[ºýÔ\èäÏmñ1§Çîrêa–Ëõ”ç:Ÿ TqôOŒâJŽ<÷S ƒv×÷rŸn©)ÈÊTƒµ°r¦R _aÔ̦…I•úü\5]<â3……µ10ShõµÏœGåiñ¸KÕ‰A M&ù~JzýÅÙ²øÎ_Œ{ºuŠ÷TºégŸÕg …妃„´Ã]µ˜þä¾Eû4ònÊþÙìˆcº‡eùì9$Š,Ï[È=ÅÂyú±þ¥~/Ô.~÷ϯd,JoXë£sC¨~/8‚SADÊ ÔoMëÊn`õ¹ò¤ËlªgÁ+Ü“HS¶;h5ÍeÓX t…·õžjOj¡ÅU JoU±[¤ž¦«gø'¯æö¦bÄû!ÜÞìyãìe“ßùÀ@"­†ý ·©7:ÞÁ¾žãk˜ŠLý‘‹È¾ dò_f®¬¹ÌAq$Ay7!Y…΂DæéܪŠ;¦âä}ðq äÏúcF‹A¢SÜ$#ÇH¬÷/87Ë5?7íó™RâI"­¤¸qD=Å "æõ7«æ øya±ÅÍrÆà7QÁfqƒ˜ù½ÅÍAJÜ$#ßïQ®é_œceÅwþb„¸Y%â7+\Îp+À7xÅ‘âfÕ¼=Å ’ Ni³¶oŒÕ¬Q ÙrDV4ÂTQ…¤Mΰ¤Íð/=üž²ÏÙþã 'Åm0nÕî3ì=ßFhÇ­÷ Í âÈ&Ä%ãm¯ã‡²=ßû%ñ°1òa?%=ïãp lNxÔHÏsÌf®T÷2V·¡¯È9ν.z˜-ë¶j{ò†Z¹àäÒ×½þ´¯Çóô #¶Œ]쓞IÞé %NÎÅn|·Jlä&à–ÏhS/‘}ˆqv¹{~…ŸdÄ)å(à[èஎLÕEtˆ\ÂÈ gûàuûF§[bUkù Ø”®ÿ ÁAÊ_p0à.à×oKNº“ÝRp{ ØSй°ÏYIŸ(Å:Ô•ûŒßå»ï+t¤“߀C9,ίéÁîµmY¦‚Wø¯IÞ6ýeœoŽ`@7¤÷€÷|"ly{EË3ÖrÙ•»ïà,߬Ú<£ùÞl;2¢¾’>¡h¾Ž_|yðn2x†½4þJ9Ù´ü'§5÷¬>§t¥ÄÏÜ>6P¸Ê¯'} LóÔ­_ÛŸ wõiᎶ „¡´CAÃqvo™jG|ô‰dz® j=j‚%^…×ÉÂV”]Œè^j~NY„v¸8¹C¢sWÍÓm¬wÿµ/(>"®ÜAøûÚî…-Ÿœ§r1•<´ÄO‘÷õ X‘Y}C§P¬ÿó×÷êÿzõ6„Ì%8ª?JF*›ó{süÀqÂx0~ÞЫÝùô*Aì=¸ö®*Ó†Œß¿Øáà›q-+ Ä•Ê8®` õ{v7§…öû;ÃÍ Ðü½Ä7£«Üä¹µ‡Uì³ÐdOmø;ÉPvÑþŽ{ïì»"XsüðÛëýKé6$,Þö3K·Û“´«oñìÆ"s¤B…6ÿ ˆÓ.·H£VY Ö´ª¦õjJñêÂU}Ó^ƒ¯ñÒÕG$~ÔדdÂØ¾Ž VÑ·pV$Œ?ÖŒ‘ ‰æ‚êú\`¦Êbã«:>‘óûבc-þÒvÿ0jƒÃÿ1ïJ¶ycà°Æ(¢uá:hÄWbû›JË$v¹'—®G²OPÈs)ðÖ¥Û‚üâN€/ÀÑ·G ôWþØt7 h0 žQrŽ2?>­Â¿ 9¤< š‘ʇ6Æã&-¢o Vþr Tpð³1Ù‹2Ý¡¼ 9þãø\õ»ð¡€w—+z¿Wû¥±¢ÉÖÞÈáû•)z:¢ôçÇj¹w0`¥vÊ‚$f¨ôô t ­-äd¤£~_¬ÿD4l$ÅI¬3é—ã_¤/î¡¥·j5¢–þá)D^}·p¾Ùf‹9|1ŽZM…Öèª[W}ŠX 7;)õ{q¹-q@…Ú"Ùôƒd REÚñ¹`K^¼½¢½ñÛÏ“áaݦ\WÕ ß»¿‘»²¿þv©rÍ7 ðïK’k©ésÉ$¹ÅçrwãÇný˜£ž:\îÂP&ñsé˜Ï-¯ žŒéUrÓGú›!¢;Ƹ¹dšáŽc Y5Œc Hä S2 A * ²‡9àC?±'d¨.+B¸Ô£\ uÏ· *Á¥ñ`ˆ7¢œšKçŠÆ-l¦šð+/¸ˆå;”cÎÝ®éº$]•s9TFùz·(ä¦&xø,uXX÷µÃK`tE«ºDYP‘T|ü¢’<šTGBÊ1Äybƒ¼iNQë[ˆ*Q•B6T‹Ö³VJu wt^Še¢8ÝÞ²ÈçJU '\¢ˆñ"«¸Žë\Ô!YGAªPHŠž g´«Û £)#6ÿ’fc´k6ü-¥-„%êÙÆ8c(%öĹˆþ¤¢œ_ä7Õ3ïW«Úsuãà{2Âr™jþԥÔ4mZbßá1Ónæ…1â&_\áõ‘ ´=ÂgTy€CÍ¿,<¶çØŒŽ5®Ð½­‡@ßö.Âb9Bk9·µUǶfÔäØÕm ·0޹­•ßznën}r BöZîkeXûz0ô²÷µük¹±'½€ÇÆVI[îl¹ rg‹Œ mí¡œ¥ØÚCi@±µ“Œ­}0: ðÐÜÚ8vöP¶iîlyäsãvæœ;›`–Ççcì}=Î=Íj‹ÜÒj³;úuÐÚÒ›æ–2rcK‰ÛÜÒC5ú¯ÜÒ]+Æô}Ì?†=*/¸D¯X’qP!ð(ûd~¤¿xQVdÌNmb’·á‡§Ï ,T=Èþ¼‘ô½æk^ž{€]`yÂcý‚Å3%?ó3on´}ЙOÎ#?|rÑ1iÊ{¨S”"•%Ë)ܬx¡«òQWò·)ñH“q{äfyùÜÁ h8ãt‡‘5ÆžŸ·xoÆ)p˜½[10Åb…¡úÖDœ@<€»±:DÛfìÇ&L+,æƒÌØK†*ÉoÃG"‹áeð8éÈ01› µr‘pï+0,âº5ÈEˆebHÜ6 î¢Z‡hRë!Âçc­2~ÊY &X¦C@bÖ®a¯°¤¬3ˆx£â–ýä¢R¾ov(“8o¼ ž é×%C9‚S ©ÜýUaÛcïéÉ©“A\s24 DwxÜIG†9I '·75z/’5íú“$Ø0nCbõ[Ö`)}“¬D¦h!`Ò”÷–Ò„Ï‚)Œ³vÖqãœM«užÍ¦"ùíÆ­Ì#,îNø¦)ýÎCK›‘ÁU´óïchb¬‚þØ nënø’Ñ  è©Í_ùãÒyÐñÃïÑ‚ÉÂüå›Ë]>‰"v|üøìIGñy$,d?=ü8³Ë¢_4v§ð8éYŽm‡™,ßǬ¶r“¡vŠÛ¦šR C_-ó+.ñq¢P˜iÜ‹Ív+<à*RL0¶wß[ uœÇœÌ•>>Eâ"ÉÆÔä¾*4ç?6 È¡ò’…ó’»™BùÇ´¾>FŸ< 7 ®?¿þ…§‚}Ø*(?o߀_´k=Âý­¢]‰é`|ÅÑû%,Žo†Áž’ñB„¡‡5ݳ‘):ï4c1ûí;îñþ Ÿ^÷QOïçÒRýóëQ¡ƒ'Þ%§Ô-)qÑ0ú:ð×ã:Ùçö¡H~“GÝ"‚äõjþü’ÉíæïÛÐ>­ÈÓã&à+N‡*ñr óARš~C"”¥¿˜,Mž¿óã¥#^¢SmÚ0¿,_שÜ8¼"õMuö½V­ø•¹ÄKJ#¸Êù±mȰðôÞ6[žÛêùf½ñ#ÔþÔ¤ ‘I²jíÇô~\ñOµç<—€ºeåç,–@•¾Ýk  ©5×€ºÛç‡Ç8×@õIÖŸZ{ ”n¯Sr „b lRk ¸3§ü{8ó“qLyñaúãX%_‚k XÌz „5—k Úík@9W9ÉUˆ\Õ‡»üX#ì5 ŽYç¨{Í\pÙs^•*ûXïóûy uŸƒP#t.ê¨Çf<ÂB'‰É튩­I<Ñ~MÖ’?®!YB«;H¹H‚èa&–Ú¬¼„²Rmb.Á@d]à¤~™áR“ßW ë•(ª’³7”´†áÖUáY0iÓ?Ȧò Ëï_?Fî7®`´p îo"N®À¸ÉFçI KÏÈî€t– ñF¾£BqQqG¸Tå~/?Ò ãXPÄPûse\ñÛXÈnåǪu\mÍ#L²×£ YNtuSÈhˆ­ ´ræ¯'zG/Á:yéhiñ  nO A õ²õ6ür ŒNµx0øôè|FqÒ9õU[AµN¨Ïo·w:|EÊ!¦pâ³ÄÎi^å=Ô?­Œ¬ýÀ RŒèVZäM¿ •W¯’t 4yæ¯Ë fðYpáo~cZ°.ô;—7a±”©~¼fÁAð2°[Êdrgäõü|ØCyÉ2·–Q8øc O÷¾î?y €’¨U) l€j{~[TE>ÆÛp6å6î |´r¹%ûb²btCâá€âªiêÑø¨{œéß›–7æ{áW£&w›Q\w²T”UÜ:iɤâÓx!£jŒç€éYä®)HÕâ,ò%'Ÿ(' 5>ÀSŸC #­á’øòØm—WÑo3~ ñ'QÏ–™Ú¾ Ú¾¸¡£èß']˜’Ž~w‰Y"Í–ƒŽæŽ_øo5 Ũ4ØØ„ HFœU9ÄF,1*£kú¸®Þ*äI)_U…D•ó­’ªÓƒ€äqÍ“Ô!ôup«ž_W–`Þ^æ_þy>ÿ·ìô³½â}òᗫ¼ïï``*GÛïÿ’äòÐ[½–fÔ[^ÑK‘Ž*ÏÇe Ÿ°Ûˆ!rJþ Åá •šŸ Eýmš!0ÔâöqË_¿©ÂòÙø:ùè·^ïoûýö“È¡ûÈT#|G—Êjð kF£º¬«Ê$p¿ED…ú8‡â¦Á_p7#})Ô¢Wrt©b2ëÔ"-}hõ¡g .õÞZÍ‹…ÅêKb‡£3mÄ~‹XÜÎZcå6wÐ€ì Œ§i×ÚÀçÌ!(ÍAyä7ÖDU5ž6†æQ}ÜŠV¿xI¢G+•5¨¶EªëMbª45ÛXù1WŸöwÔœå÷lV¥<¬ÕIR‹µ:çã’_£Öcµ@2ír©7æA*õ<Âmó·iÀSu¡`DUÜ)¥ŸŒ¶Í÷ÙÅÏäÂfܰê,¾Ý•¸†-ÿڕ原ÿ^¾µ[ªgã+é|ú͠؈¯+ÕÖ·ßC£_åÐééb\ßýkÓRïÀ˜Ö,œ­Êó¢ö”/ú~gî)=$Þ`íZA¾Žw‰ ”8ï¯ßFFòÝ¡u¿[hDle?]ؤ9a³bâú¶i«ª—ýíZóÎtjä¿\ìDðs•ô)ø¹7ƒ/Æ/¿òµë1"üͯjŸ¿†óÇp<ºS(]œ®KÅ¥+Nî\€ÚlÍ(Û©SúMõ-u¨Ú—Ôa“;+m⛆嫹TÓp¨sKD1$Œ8*„em¶·­ñãu>+©û3MÚL·ƒñt#: [ÍC­:rÑÅÚÔýJ‹È:ϽÝ€² þž¢VÒ?Ex õË1ýj’¹˜ ÕÊäPŸ_`t‹e[¾ÉâXW&ŸLþv|Û80%>—|–Ëö\d/?[¬Z=ùÞ~¯üXoMòÛüŒaáÝèÿ÷¸éŒÛcT©¾m:w£ƒÝê~Ÿß€¡Šû ¯!"Óa\Z«i$BÍ·â>sÞœMÙ­¹w¿i¦äÆÇOžfa[·GÍ(×°‹èՌֲ”åÛœ¡‹ü½ô“Ì‰Ø ˜2þ¶L§ïÍûÛ Élóö¤Ÿ¹)³9v.¦Â>5mdbŒœ±š›ÇeO†¼=9>˜}ÿL£ÿŒOƒóË-ñQN ›žáiC)ûf4 cxcZ·Îo ¹ØÓÝÞ˜ÖÃu Y²)ùb6 WL€y…+&€¡Ò®ð¾,Â…+R´tdËÓ”6ñ:.`I¦1Hõµ'Cfz4`’7¦Mûè9(yc’Η#'üía;c‚‘6nñ!_L›v@ÊÃ'Öû|Êm¶ÓÓäcW RŠ}¬äÒ>ÆÖà·ýy×9Vž˜Östw+58‰·flN»bL§+æ q‚o‚±'¦…(1DÁZVðÄ4·5•¯¥}`ïCOOŒé×öÄWp—M&mÚ˜iÓyÅá‰ùf(‹Vj†°ÒÕÒ†·Xöáq}ÚsG5­`;LË{^`5Np°îåðà ¢È2 <ÈÒ÷ãä®Ýâ²Ñ4»aЄ¬Ù}{óUj¿éÒ”2ŸOÇËå…i3à rÂ`û B¬²\ß|²·Õþ/Øc#¼ùtö÷ð)\›ÅüDëÛþ8Í(¼ýÈNne{ûû![+³“qÊÄÙÛ6§?¼3{ûû½Åôõù´·¿+Ñ,¼ý`VLÜ»·_é3ycl#Åßù‹±½ýýΗ€ˆÂ3=#Œµ~;Þþ.GAzûÑìpç÷ÇÙR1á™àŸkˆåîIç]ºû1%Õ†åukÂF./N¨ßoz†Îþèîg'µÃ„Œöqø€Z.$µ¯ÃÔ‹p–:n˜_8~á¿ù€º3ê|°”àüú3€PuJc”L) :2 㼕2 Ó£ á9,~)³vÙc0×N½™!@$”äks äGVÛÓÝ鑺\`äãòÍ @˜_\E©,m­è¾ãâLHj$ a©ªv„ßkzAùÇ©¢IÃòw( õ´$2%8?=ÌÒçÎQ Ãñ+F*¦ÖSZ xЧÆIZŠ—&a¬PaÃÂË€2‚Ð^ÃKO§‡ƒNÜ ëÆÀJÝ9nÎÏ0òJ“x(—Ø?¹Åœby6„dLƒ’] IcÜ÷çœ/cÎ0ø‚JÄ9âé@ÖoJ˜JÚ¸ú¸¨ã¡¡ÍqñNP±b±,wu¹¿ˆ.õ¶>æßnç¿òØÔÝÇ`ŠAdˆ¶7ÆûWÔÀ^†mxés¸N/]4`Jñ;\Ÿ»Ï¯è4tjR"&LLFx|“}¸‰›¼?ÉÇžpð[ÆÍpÉ["´Dš'µŒFV·¤ƒwÌo?ñÁxª#L1†³z˜ãUÐÆÆ[rêIŠœW 'h­3¡$šŠäw ð°¯`¿àùv“¥F9ªs¦kÌŒÁ+¸ªž¬ž_`OžyZÓ?Þî#È‹%ópƒ‚þg‡TÑXÁ} ?úÆö~n–\©y¸A§†þäéæ u¼98ß°±Ä>Þ,Cråñfmw)蟼tzYOF%t¼ªoûxƒ6ºNÂÁº_†/Ìã {LÏ8Þ,eøxsPÙQ@Œ8Íü»ß‚g¸ÏóMrbJò&:à,Õ'e°™­—$&rQ÷ 'iû„³Œg)ÌvÍõŒ6/·0 j}G¹Šqkd~ £¤kæ¡Ì,õ_éý~K•ñãý'ÿ Ú‚ 2k¹…ÖæLKn6Œàxãt]ê~q¥&`áÓ3Pna˜,!A°®ÞR­¦ î°†a f?®xv(âÕývû¨y3–mÅ>UÓ>Ë@y ªùŠú“#Ô}Ç7ÑÄ»N ½Úã|Hug}~4c`¶ÐòE §(H€íu¹½Î"z?ŽñX†.ö³Ã&lÛemj¹ÂÁ@Ê—©„~».E¢­“nuàd­: *œÛgà—¾×qÉãœ1à ^Oæ¹È!¬±®dôöë\{žkÑ3ÚŠs©ÛŒd»Î&^$"úÉfíÅ_ó“úøÙõ`Ê…“žïvºrˆÏPòŽE „:®LGµ5)Q« ^t§¨ÎoÍÊ|¸ÐÛÀ¯½¯•nçØÌ+n±uÃ[úÆ™ãÜÌãŸpxrÁ«™Ø¹—‡OpÚÉòáï:wÆcìåéÀľdØ(Ñ^žiôÄ^^,G8öòòÆ^^<öòæÄ^^jܲ÷òbtï噾ߨËSƹ—'3‚޽<‡xìåa³5®Î‹½Ü`uŒGÏ7al¯.àRíæM®ìn"ÎËš7ˆ¤TîèžN³ØÑÎÒíÌõÞ×ÌÜ­ØÑNFϽœ$;z¹¼6vôKCþkoè½þ´¡ß×£æèöÎІ~‰¥—Õ†^™!¬ =3ç,6ôÌ[iê^.ˆ;Ó_Úb,FöçøØÑã]0yôʹ£»³©bGw;öŽÖ›½þ·[úŽÒ'ØôØŸÉ}ß%þæ\ì;„4úüZ°‚Ã4ËŽ ’î  ±›rV w['¶%Û–Ý·`¹-Ÿä‰T…GØ6~¸`íÇÝfÈùµàÜo;>K¤pëÖÖYÃmØnUvp ºþ²Ì" U¯xý¯dCäzï¿{¤¯ðbüdyÆ~ÿú1…Ÿg¹äÃñ øÜ7ßãÉÐÁ6—‰£=ïbåÑ%û¶ñ¥·úoÇ}âîy(¿ÿ\Œ ýõIþ¬U múð…çŸÿ“(ŽèuйÈ,LìTõfš¡ÏK3Íx!í¢© H¯yœk¥ùb† \µ2Ð^ª¼Dȵù&_Oªñ×¾žPt¿WÁ‰Å–A о`å›Áâ< ,¿P¶y_¿~¼0-™èZ'Ók¾¥byè Ž+Ÿ}I±'ä·,ÆúrÿD• ¿<Ï"LV_Eýo@ªÌ©4WV¨svi )Tˆ_¥y@»›&uÄæ|dŠ ž«z%Ùøk_Áàã¼W Z„Œ‘<êÕê& xœGó‹PV1jOUŠ2F¡¤A«Çæ %¦•…tœ J ¾Ý"8XjnTŠA@çö-Å‹þü^UÅá“ÌÝeù‰Í×LjF™ª‹Á;MæOºtÌŒ2‰ÂQY„Y”é_+ßóû •ùüâ þÖœeÈñ‹ñhod¯U׆gQKQtž‚ƒV¶`ü‹A§@> ÓjLòb¢åçêÏ»} Ò²¼–ŠŠ ‹T"h,á²\„£©D¢%+&ø®M×Ó“ìqa:ß9rÊ«-ÚΓâUe 3Âfzo4 ,0³zŠ:Ì`U™®cBb#VØô ”»›/ÿ€“ ¨J›ä·â*j,$’Þ°J¥ p®¨D²>vÒ—EVuœ-j˜Ë†Æ´†´êú``hJWšÒ¿°~yS«Û‚ãi¨¤BÀ í »–]™¹=eú}ëwÌàh q ûõñ€Jâ Ìä#j®ƒRp€tCSždéoŸÖñ~yÓ‚bMDUùA4ŸE bDžªö4˜Ú¡Gƒá©…ák’S)Y*vštŧ—_LåâEéÚdÜÜ:õpPÙ…Ž>Œzƒ•¥CôAiýæ÷¹³tTM¯²Ð±®Š's¾´ôš8Óãë¿EoY~X‘|yÀà£F•~n’Ž_¯‘5­½/Ðid-s· ’ú #Óws`‘‘,žw^/EÚìz­ÂªB,Õ%¶Üúcã~r‹aÍRø :Ò˜™«+ »ßHcd1ÛÉ`3BnÂì‹äT#ÌU&±™¶úþ[‹×{¡å‹?³iûi…™Cò‹ÊÉ•‰yRƒÍÀ®{Õ¢í d³*p¼½™±‰MW¦†mÑUåg|ͬY桘ñ—h»„°«å‡4„d&ö9‚—¤NÕóA1BÏ m /œ“𭦀òy´6ìÁ¨¯×h)Q½ëqóæÂ‹ÃcbøëêÂDüGà ¥â<ùÑÞæòùÇë1fûQbÿ^›¾§Ÿùs^T²s•}ÌŸi"J_×ÁÔMÓÕEäÒ×5¤}(ì:„ ©ÇÏJ…}RØÊä¬[aW¹0¶ÂΤƮjæ FWˆ4¶ÍÀÔØuJ;JaWŸ–CaWCùXaשü×PØß4ý]©°Á°ñfýü>tÌÌ•9¾¶`Ž%:-V©±« ‡ÆæÝÓ㥱«BcW£ÏX!Ã’eM\ªl¬–gëpd_wjlXþ­*»ª B¨ì—×c¨ìƒô.ß ¨ì³TvU©Ükëì*Økìê8¶5r)…¥±‘@ýŒd¼”R]-¨ŸÈ±nwjl’-UöAJg¿ÈY¡´O å-YãÌhZSK6¢”v­ÐÙuúD!] *ëuë_òÚŸÛy%]‡Vs(läõÏÔ×U…f¯Pص[¶…ÂÆ¼~(ìÚóðÂG>KIa¿¸óSaiá­Ô×UÙÕ©§5ôu]éÏ –üÕ¡¯Wþ¸ôu»¼õ¥¯ÛåÍ*}ý:h)ìƒÁ6±—ªû­¯›Ìƒ­¯›*_¡±Û•’Œaßwî'ý!;؎ª¦+#8™ó. !F™–¶`œ€ŠÃ ªNWVFúc!‰\Ë©ãò­ö¦2ÅEªYj©É@Ö¨FD˜a¥Ûú5ç^^qZLQeBU§q“œ.wŠY `<7ÌŽò˜µ‹º¡·š dÀ¸Õ#ØÖ˜S™%r¢› R1mk ©×ŽJ döÖ;¬ÍÊÄß¡ïËÚ¦e^£ÀGnfõA@_²ð˜üJŽT1&æ’ÚQ¬°öUÆKx(ÒZßG&£¦Î[ 65ÅÈÏ ~ ²°B@Jú‰¶i‘•îSx3Œeì³ÆÊã„ÛçÊ ÷]SQ§ìŠÅŠ„°Ù˜tÛ¼LŠa£Ø^yÛ]­y¨‹Ú²»¥pÐnß¼/hö°[E7ƒóáדÚTþ ߆WyQÇí Ã%u0°tšSj Cáqaäj}¡MA¢*½˜À|U[·ï¦ÆH¹£Ý+Ú-w9†è^lá‹îÆ¥ºí¡oif<4#hP«·ôU-¢\¼ X;Mt&©×øòþ±P:Íu¤WrÒŸ\Ôxñ1“üÊTk3˜‡Àce¾-JÀiƒhGHXÈZÀ‚÷Å|SIªWˆªIHÖÉ?N$ýÉ=-ó²mãdľ´Ú¹šœÎ.|y é3]ßOH@²Ò=$æÄ¤ È’“ôfð@Ò|áIg‚é6Uú[;ƒÒÚH0ͺ[ŽIw&jžHúcó:Œ¹®ZÜ“VŒ9]€¶q éWž?tfè—å¢$D[×Þãä eŒú<‰ÎÎI7ônHÀhÏ>t#Ÿê@ê< Áp9gÝ}Ûó6Ù—M¯\†ä9kþÚÇkìcF´Á|üýÃÞ«c$ÐÓözMºm3à2ö´0¿ ÙG‚OCf´yP*X ZŽónlTŸ€ŠÍ|ZÜØÈ^)u½7W‘GDx¾—Ï×¼ ¸§P§¢°½¹ëZíRW[I üƒV›d´„ŒHWt›²LÓß¹¦äOú¶”{øâ<®ïã®F³u{`þ$Ä´xÂ÷`¶ _Îán­Û Äj­ß§Õª,g“š'bÓå’ç=NJÒ ¸[·+PÕóp§&—ÆvÓé®;ÃâhØíVÆ×‡'V9þ]JÛTðì]ÅWTⓃyÛÓà™–N  7[‚b¼©Þ>`šëÛÊOî.lóª;§˜‡â ^Ç"-é)fwäb!Rå],•šc À5¬ÖžÉ‡¹Âotw¦Nn3ÐlµÞl0¢„jª™©}£œÇ¤5NfAž×Ä5ó1ÿùI ÑÔj8¼–±ñ¤²­!n !žÁ‡Á:å4æÔ¯rˆ4àf·¤˜.‘îïô áǦœG¿hEì¸W°)•ê‰èÊZ Êv’ö¬[¼ÿF¦úew2VxE)ÇýÏOšñsn“W ÛÚ-²²slœÂÔ¨ T}j{r^ûž(žÈ ÉñÎÏ×ýFâ3ÛŒ:€âË'Ëd\ê 2΀ÝÓ³'÷“t„ï#Ó\Þ¦oÆ5¶»iT;0énÕÓî& Q·²ÝM£¦Ó our7 vÕ¬v ÛÝ4Ôí#½Mù{ô6 Y‘!CFò!R†ÛÙåÍKÊî&bfß©\Æv5¡@’9\M£§,ÏÒqc‘@DÕäjjz~¬Å€C>²wÃÕ„Gt8ÖÒýûØÁ¡Ñ2ø#Wf'¤bçpG4RoÔª}–áÅѹš€3>u{¹š°Øªn€ÓÓÓwtÈô¶ß\MXަ}ºü㳃ƒChÙ{iP ž]-UåJ-.æ1¶u‡†ê4à8Ó¾¥ÞDú˜:×Iºv$,~…‡N²ô·Oëx¿ ä-Kîš¡SGxh´ÔøSèØŠ¯È—4šéálÂÎ+ûs O8 QÂS3üc4a—ûÛÝ4Šƒ•ò6¡,f­3>„ ÎðШvåÉÛ„µó+|MÜõ&‹Z‹7G,hÚ?u;—6¿CA©ê¨NÓ².(óXÇxc6 Þ1Ëõ©\!À ¯ä10‹½ÅÉxìnyäü xs` ]+ÀÏ¿ïp vø4g½½§`–„GßV_¿Øé=‚—°Ú0´2îâcE».r1î\6—OÛ˜˜jÆb#áRá·ÚT†Ægõ¼êt~ûðÇF zZ,¬a`ªæÑxB©×Ûþ±l]ÞZhËÛò&dðÒ¯M~Ų/÷Ó¶YTïwÀÜß鈃M‹É^Þ50£§0òêxý¹KYÈv{ã#.ú'ÚfcDw{èQ´ú᎖àÖ8,é\6¦ä•:Huox%§¨úe[œÎ‘¹]¹ð•Í%Õ©â¹7ŠàÛÃ;€íq»¢æó—¶)…—wìMBãCüXî{Ê(foâôªëƒÔi/…”óÞ™Hruízc‹7aÛoû»<´ïCÿ/Í¡ãt]ªÄµµªõûÜÙX3°EÊøü¶{f³¬.Å9ß*rÊCAódõ7’Ów0 ;g˜k…šw†6—sŠâ×ámø&Ë}XŸÓ Qiž~3¤¡ýù°9CÛvû K$óÏ‘ŽÝ¢¶×¹Z¦¿oû*ܱ¹Úi.õ>gذ7éŒØ¬` æÈDµGxè#m=”S¹õw ñvaiªóxXÓb õx„þ{˜ºæÃÿ*«‚­»ÓÿÄà–±Éê3óÁˆ–ŽJÝnÖ-šº¼EVÐjõîs¥Ú¦k(›%žVçDå Ζ~cX²³9¤ÛL½ÿcE1»w¦ý.ÓÀÒü™êÏ àºÏHÄ!»ƒP:ãŒ},= åÜŽ—òá7)ïC2´sgÄ[åßòYùvÚ9îƒH¯«û ¤R£Õl!<|“Õì.x¬WœJžüÑ¢}D5äÛx ->Žôhɬõ8¡íñZcé¦ÓU]êéEЈ)¸“dTžQ¦êàÖ ?=ÔWH{Ë5"ר*ie+@ôZ%la,ÒUþq"4<>«d¶]¹£@:ŽX*¾ y‡72ý8ák3´ÂVñ*ô;¬šyâS!ÓU3rÛó0”öå¸"S.Bg9­þ<î“Êf…È) ¼^êCµàÙ‹þ±‘q:º/v[W¸Ûc·º3ƒ”ýŠeW•uu“ªŽ ª12G–—:CáiE!^Mã>/^‘ö—k—IŸc‡ËŠÏÃàt=ËàØ\>£@z¤N8fäß.>/áUšÏ‚]-ló×äY-Þ¬gy7ªŽÀ=¦—»çP€sÉÆ¬Q´½.‹<ÙØ®ê¦H˜*ÓwdæÇA憋8?]GÜ€2jørUÕMµø¤Œ•±qŒm=%ÎíEÁ¶7†ú@–póYk¸äQ¾5¥@¡Å!¬„›™íS7¤Ÿ¿¨/Áã»UgùµG|ŃÁó[É´Ò[Z­DZé¥dšâ´R÷Œ)™VêZùâ´ÒKÿ½X#_o ;§¨c^0)).™Ê*Y2£*N)eIFU ›tÈf° Ä~¤â*0¸VäéGÄ£eN©ÚOb­2§ô’².™SjWCÙ9¥’Ç9¥·DuqNéí7rNé&#§ôÖ‰¬(§ô ™ždõ£iA±ÛÅYž~×Ó8§ôVóâœRwT,Nu¿Ú²³J/ïí¼à–ð,"ÑbÎ2%£½¸ dѪ‡yHóðY²d¥dqˆëšJ2zK¤•^[R)¯ôRTÈ¢¦º)¢%•ë,R®3}Zr-B²ë£8­ôÉwˆáŠË@Š7«ÓJZÎþƒÁ2cÑ—e\”,!ZG‡u %ë@Þ7îÇ:™ñÐçuæ¾õFv;ÐÍp—7(¡E,X†ì~¤ªÂêc~õ[Fƒìþe\y±ñÌcFŠ=ßáî™q_šÍÕƒ¯ÕáͨC_õ‰ËÃk_é¨äžœ¶8ÖSe~9ýñ&™–̰ýyÑüf3[¢”æ‚sPnïÖÉ"p'ò7ý0¥aÿÅÍiÚT‡$7£zóe…QG“›Ð…QÔF†—x‘a¿Wµdâš[O$´ãëwÑøAª½bÅÓŽo{Û·WøÈ_sbuX<ý2ÑZ?ÆÝcXR¬ïÎ|ôéÙÁddsɃ2$½}ë´ªiÌŽŽ’‡Ò|¬«Jh.:Tõ¿åÐ_z”cí~ÄOvýQ‘gë²[›÷fè7ŦÜEðí´…­ L,Ú@ú¾,¼¾EiS¾‡›á¦·äk·Ž©f'½=þòCˆ÷nIÇÃFä)Ù¢·èŠc&ù0•½7 #›kÄU|0dˆbØaØsÆ[O†ô¹Èâ–>Sù,²¾}ƒÒ]HAC‘–oêþ/<Ê£€¶Ùk•Š %>Ã%cØ24£[ˆd/ ;žSA6åDmÚ¾¶};IŽ{TæUïŸm¬£êA#M70kŒY‘ÀªÍ"@%T$ð(2Wå‹25•ÌMï“€4yjéÓÂÏYú˜d¬¾q%sŒ/¹¹Ìh‹¹+Eºæ8sš÷m9ê^”büM3µ¦(Çø Ý!Ê29%n˜eÜ–í‡È2ÆÆyU×OɧWJ'Ÿ²ãÚëø\ÒÒYÆj#Eq¢,c·~-Î2¾m@G–ñ¦e eß¡q™d|ïÓ@ä˜/vo/N2v+xìû¸)~oá?ü±²­!< ç|­dŽñ“ösŒ ¹í“TOû!sŒŸ4Y˜cü(Rœcü¤`wŽñãµIÆ[ÔY§£ûHkŸ\óê$c…¨©$d¼àL2¾# %é‚÷­D— ÇHQãá¯Ã°þ%²Œ£DÄÇjtdhz\l:Q¯c•Æç:VC˜_i¥ÏfŒšþe1¹?Çã÷¨vG+„‚ÜG¯—rjƒlNIžq:gN®óó‹æäHG“.÷™æñÇ>ÿ±+ð0„BœØFµi›)Â>ñöém $ºÙؼDö4o:Tk¥óù8IY„f¼ò +¢ñzE8ôOM1ÂË{³†RˆeÊË[Àj‚õ$Íœàác—sˆåu–*G¹€åÃYã1’|Q¯Íqûv•9 e Ë|ÿy:gÆe/rÚszg†zéœÆ–•ÛpA¢@ýÇe2\ø¹ß—óyÍͨFÚ_œÀA<.« Ne}åp^qúæ`]iêi0_¨^°¯œ®¶Ná›ù&cp —Sw*¦Ï´=JÀéž!®ÿåw×xöé@NÊ1ˤ§;‚l9¶<¾CÇÁpÎà!«€ÐU¶¦SÆäˆ^¾^I›ƒP5E#~¸g†šCí펢’/0j–5ª5|7i²á<·Âê¸Ã>R6÷Qõ±`F[ËåîœmÆWžÊ%$Wwe¤ëÉå=!,—ؤË%6ƒå²×3Ž‚Û9Òáz‰øAÕK„ßÑåÆbJóè›á“q”1Xt½Ä´'1ê%¦%‡ë%ÔV2ã(‘6œq”‹)K$æA Òa×K,ÚÇVŬsõmQ¹^€Ž¡Œá.Ž¡`rB<¨^bxm¸^b(¿ÅÜØžÝ¨—pÿ¾@ZØõÍ+)ë%šE…ë%”Uö ƒÏôŽ£ ÖK´4~Y/á·² &úv9õ•iôvQ™*LÌŽ0 G‹€›^а´8s+«¹NÒõÓ{ÏõYúÛ§u¼_Þ´žd»^b:)¾d½ÄTrVq½Dœå]/ñÿ÷í¼’ìHz~þŠc/pI2“WŽ€d¬Öd•4X§ ÉÙ¿¯úA²ª«GwG³Ø\ô‰¨L&ŸÁxGSa™©Llw e"¶{±åâQ³þÎñJH„¢7d_s¼D¸¤”/Q}·Ì€‰:ùößÁž¶£4;T–™O«5g‡Lt+CM¦ú Ãч†o53ÚÒÆüº )}ÑMRú9õþã|4±aèz†Ü¦§«22÷ŠüÔCÑd?¿38DRÞNïG÷^»Î—_ïŧwúÒ_Vvoˆjý­5=TDé—+Ž_lSd—K¿ÅC°¦€è±W"|Ý"l­ß’‡öi‚áëÝ p‹X¦ZØ8Ï=ÌKÒÖöò#dSDyˆM;¦Óª‰µÈ[/>/Aïz–÷âŽÈŒ4á·Ä6x| çÜ—À ]6èmÖ…êrƒu`7Ä%ðËÒ7ÝÇ}ͶYD‹³UéOn}uÓÞ¯G ÆZÇ4ÍH±ÔaDÝB-¤öÝb=#Xým‹}¬usÛr¬FèÏšÎݼdßÞ5ÇÁ¢â½ Õ¡ÉKãÅFu¯„† ÎÝIN?8tjD–—À¼5ò± Ìé <Ôb},îŽÅûò1ÍÊ¢×ݹËC/Ö‡Ç.½ØNÏâdÅ:ƒS†…XëÅМ)¤ÃíJ‘õ|õët óhÚLJ½©{ÂRøJ16”¡w)ÆF)¤iq«X6Xб‰ bl„…4ch,œ¸Ç¹Ù²àÎyN­æömîù¼n§PØÂV¡NHö6ïœdN©Åàj±j±¡’q3ÜÔbó©Å†d)ņóÖM¥˜ëM¥K’L˜¨W2Ù¾áøekÅF¸ÇH+6˜¦}SŠ «¥ÎQaŽè¹ÆbYfXÀ˜˜âz¼ •XwŽª©ëmRX,VxTK%6}Ñ×m“Çd]³ÒC*16öµ4b½™{¶J¬;Ó¼…¯Þ¿@•úê5É3þÔMÚ:TL` Øî^oÌÁsfÎÍãëm»|¬Ä¢ìxÓÕþÚc—¾F•ÒfƒÅ³LÙÔéz Ùpñ/{ÀïõôÈAŽ¥8Ã*êHÈrÛ1¶Zm6cþy,cÝ˃Ašžðæ¶ë1êMòç`–èJgÌp"äï' Ž Ec|eŒ1¡"ƒ®ž§9kjGíi0кæ.üH6ƒµ&Uï>ƒtåõ’J”Ž(·£F­ÅÂa„qaÑÓ{Lá¨öóQ2Þ¹CXoÛAmúáPqÅ"†Öv=>¬(ƒô7œo#HÌ©·2<\ÀöœW6úd—KÄ œÓ:žÚk„®¯{wíîÿúŸgöõçqxJ_õë_Ÿ?ýãó¿ÿuü·ÿþõ<$_ÿ㸾þË×ÿþJ|ãüS,Og~>þøy¤Kñ9©Ë¶ŽÌõ¬ˆï¯þú§_󽕟NpÝì)Ó%ÏÒTT+çûk>“ÅŽÃãžÊI>û Œœÿ 2È„ÿÖêãë_>|é/ÿpÀxp•ç\þúÇêã‡Yz¢çjÿ둞³”þ-³Ä ‰Ü©ÓùÉÐ2-Ä7MPˆ„kàPMƒGQÇÄ0/ß7¬<ƒÑ¬eõ9ƒ(ÁÀþFÑù€VÉ7e€ßyr7pêäÉênª•Ã>d.Äëü§»âvTÞ·r36þ¬uU<-èË©€RLÍ-ú€:æUå j)ZÔºfãx_©r»XåoPÅDvg ˰£Ñ Ûf±j‰öØš~…O«2À™ZC®N†‰“˜ÔŒfß^¬cDo›Žäº)†Ï¤'€fìu7ô¹ìô~pÂ]óÑqÉÓ½Ëý’•¾YRª+~”)…†éÕDPhòóM#dn;†©b.Îb#ÙâԱљäqÐkÊלe•­‰úâ]Eí]”™¬çðv ç@@æ„E“>PXEä•pž g<…×ÄÚ+Þå.Ú"ÔÜ0õìô0‚¹oÆN^[k½# 5‡ÆÀM‚pr%aÔìÚu"°`7m˪rÜ™ÃwÂôÕy|m0îŠ(€m}[d ëi5®(è®úìy’>h¿ðiÏŽü÷a2®/Ë™}h„8ˆ¡CØÚ*/þ‚&§WšÞwÚG37Õ™›Ñ®Ò«Õñãusº&˶»r®Î7i…Ö^tY‹Ø‹Í÷µ÷b³oÆÚ‹NÓ{ѱù±7P{q!´-uÅ^lR ¯½ØæYá^´OìÅîÐÒµû¼˜¼Õº’'­½çȲÁıås[±Êºº¶¢…ðØ‹N‰5÷bÀ±̽èY±Å]l{±ºR¯÷b5ô^¬¾øæ^”ìº-g¼_ìEE0o›¢šx\k ÐÇ`íÅ×ö›纣Ô36Qu:[í® ²¦yxcMë­-ÇÆ§ý„Jšã &¬[õÖ•î@mÐ91om|ì|ófò?¡+f’ÁÙµgk*6pã[ÝLí.¶‹©QÄùɹ`÷š\èæaÅ4@Éì4È‚arG´coì–î2[fÏ#}F/6¥¡7’# ¯Ù.7.‚ÓmP«ÒÃì¹÷úýrbv2ª‰ÉĘZÏ-®)¤¤î¢iÌÍ4žš –Z•tßÌÙ³[áBØËf­üe2¤ ‘˜X¬’èRº‰kkD±Ü¡œ"%vµ²!©´¹ÊßuçY—YeÉŸw¯þÜü]Œ‰úÃ$—š/+Q†X ÈÆ°Px‰°69ñˆCk(P3J;S“éßæ8=~é\C¥ÚÛjqºß7ðGågZt‰R!ôõUd¦¹"¡ª$ŽSªLP=*œF$“bÖ&)¦ÓZSÖŠR[KubüdXÁ¥Ð 3¢Ÿ6>tçïfÖ%¥ß)–fž«=AÙ¨ ÎÜb®íÔ¥Uï®âÕ³yîîâf˜ÀÎöè6ÔU`ÝéšÏ–­kfNWÀ<“´úÓð¢µVŠù>!ÝrrörŽÝĹ¢ ”AN¦N¬Osë2ðq(E*·® Ñßî ¶öHq«Óªc{Î-Ï#‘Øëì Õ…å#òjbÁ·Ù-°]On°‰«;¼TÚpôR\ :G‡—æ.Ôô½°ÕפٸU´ÒÜ9­GòŸ.ÊæC÷$|¬Ê¨pêkír&&’$sãåÔºm—®’ý3”âp¶ …Ô¯©ÐpÙšŠa8÷sã£!%´§ƒCö·[ «Z÷ÐØ®A.ž,†ä4µû1ýæV ÚÌ» Ó}§‰ÀV«uk˜EL›çAì&ÇÏEìšžÛeñ9&&ñ éÃÜ’Ø74ÖÌ®\ÞÉ!+PCÏÐZ±_…Æ­+˜5J§ãœÍñw—ئ!œc7g9dßH?Ü·“v3äìg’>…îPCüå!½ß¾â¼=®Kªðµá<‡kR÷I=M_øÿïËt“Ãíù7(–eCqØóϯgÿA ŒÀ@zú:æÃÿòKsŸ”´ÙD‘_ú„‚Úei!¾w„²^d›ï&âLU±Þç#®Äô b5²¾¼öäc. —ËЋ\M}í¢8Q;)1*B2=Ï}:‰¼;‘Ã:¥Ñvûä±òÞòëÙÙØ‘€DƒîN‰Ÿ¯²~|TåîqßkdòÚÖït3ªr¥+‰Š(6Î4Y~?U×ÂÑ·ÁD&‚gç”=^o²"»uNMQg”ߥ‰pçæÄ¾ÌûcÂÉ^xJ@#Ðú/@¿……°Ü¼ÞÏ¢DÌþE§ÂÁ®Â~fðx‹è<„ñ6ôœOé:Z_3ë¯W±JGô®*OÐZˆ¬Â·§ŒÏñ³9~;{2Íæó5ÇŸÏCBwn‚Ñù 1èì×5v7¿M?SçÎyf‹«+üÄÞÁ$KCm¶àM„J·0g U*¿ ÐêIûk¼31qRö'‚ ;(LUOYw[¢{}Q¨;š³SÇk k²ãÌ×-¦zŽ«X–ž;ÊoZšÅU»wdvR5RsÕO1é Ü·T<еßýºÏr4_å$ÁîðóUìøÝ‹=ãî¯=åá­ßÕ¼Ô–svÏñ˜³WUo)æ¶Jò¶¢ì õLÍñsÇÀÛ‹"šžJ™çF“ ¦³‰CÙ•šê›Yú9ÞÖêø„íwmÑ3º7^šgqæš×ç£ÿîܽèjþruº¶ WÓ(âÒÐqB¹õÜ»ªŠqÑ{ƒ.«â>^×ä¬Ö=wñõêêèÝëÜLdá ëuMÙ˜ÔÔQŽqMY¤X÷ÔPˆÊ¼§¬œŽ{jž¿@ôH ”LuO 18ëž"îqO¹w&pÑûIï3…JÐõ@LßÅìEt„œ.×yQ1ûN,®ØÁÑû ‹*^÷EÍÏ›J_Ÿ•;Sû6õ…ˆ«Ê)š'a‰µ¦·—í«_Ë"×HØŒKÁÄÜàñ2= Û Þö]­¯¹õ×㪊ޙnlkaº2´YMV;è·Qö˜çxÝ„.7eWv”¸Gœi!xUÅ뾦ÕüvUùóqU©ožXwý¯^UHR ®*³Îϯ IÐ5ïðEœMV0×@#Žëh3  ­HM§oìtÌù¢çïE"Œß>.§b\íKG3¿_d‚Þ-PõÙŒ ©i¾Íb>|»z-2#ýâóUå¡£sµ9{oø1Gg„?_¿×)Wóß¹Uç^§žÉghŠd¹ h…6¹ËNd´Û±˜©®(e'žŸNÈjm¼y &Yegs4T³Åò Ø‹ê)‚ƒ²62Æý;ç¾~9 4?ÜôdÀP×}¯uªÔ"¸ØA8ëS¤÷•xÙ=­ªú×Å#}N€+ÞøàBQ­¸ŒKU.¦î×ײêöºÖ¨ «\ñUç´õ|¬t.,~}™Y`Î+%^}óá|’ä%h4¾.ï³F5ÅåÊ.Í”~8 íÊÛD¤ha¨$kÂÙcÖÊÚl§½¤ÈÖ¾K¬Ýœµ+¥Ñ€ç>[8ÈÄë8s-Ïæ[dÊ÷çIŸÕ½IeÔûIcbpëgp1sn&W“×äÛSÛdÓŽ©7ÓûX‹5ùâ8%¿ |Ž>&t!†&bÿ“Y]º Qaêüªl¯Dç“÷43‰Èë³tòyZ«›¤ad…¹&ôˆÂ¼óçî ð”êðšJ:OX—T/gÖ‚ñd.PÜŠsÃ0-ã|A¬Ir#ï ¾€ªý¬Q@9ïTO±LÎôÔ´‡!Þe[ç!»tl;×6±×Èú½æØT„º×˜*ŸËæ)V£âï g"˜˜bçö·”YêuyO[ùZ¨;ÊÀÉjß.UQÏÔ­Dpàpâ•»©Ê?ŽŒB—(¿vè¾]M8ÊôÄmpEy tžõ‰þbØ»•¹Œ8mæ›oÕ¦XŒõÆ!Èrc"c ˆêÒe9³´ÓtvRN±"0‹ç!^pšúu¾˜+«zN¤µº£TÜÜtѯ°Ô©·’,dÝ2×…vp0_SBCz­sIpH5T–üw§©îŸÆüY0wóutÀ¯ÚÊ·3o’“Q:¡¶À}öo°ÓÜäPaRnÙšB€ÁLšª±OBýÃÌGÙscFòNó¼øër Ø~çÜPÖçÌže6¦ Yc,qê>§°…«àf—Ì`t§mòi…Aõ[‰–®uÁ`ªL«âì5S**nj¢}öq$6:sÜrpœtæÎ?Ö]Y˜ìôiÊÚi©þ.NýÑ´;bÇ,¿nùI™T„sj~=ÏíœÍ¿ &ÖÇ;b©}˜¡¨Lµê [š‚̉Ú×gž÷«23‰geFÖ¥{M“8õ}š(Pü.—#Ô>·}ß§Ú¹VBv~^HüR-ž½‚pމ‘Ú'^·hÍOµ¿j÷nê:9r{oý.žÜDó4åˆÙ3͉¹ Šô²šêLs4?q„båvØ«Õ.w›Ò‹ëÄ;“²õ6·“»[BùëÚ—t¤µÛÄ¥(¯ßSzróJ9yÌï»ÿîÜ„´K«âwCérDãS+·Ò&º7»¾®¦÷<ôx½MÑÌÍ{êüý9ÕÝSó:õ¿©M阶«ft?w.¨æÐ;¿Â ä ˜Ów*£’5œÌ]e½èØíÜULVgž±Êƒ”ku5üËÍRöé¨Êz žKŸ«¬B¡öP:øªIì Ý?Ïè,“KM^: Ï»vi˜„8Ótë~Ç+¿ÀÁÿÁ›Û'{({Ö5¬PFLAZ,`µs M 5’‰«QO:ÃlZ}aM+[ t¼¬ÒTø"|´ÀÓym5;=}½-þÇýqûNV& s­¨LãLHM H§k7Kªu½åS*ì›[¸†ŽX´¼ÊC`É×U¥–­ŸEÕL•$E¨0DРlD½|(TÊÉ—º;\¨X­ª%OQ[åtã 4"{ ßk=È_vî&EÎÛ†yw³Cu™h’êÛ}>Ñht?^ÞÙgú£¾ªmü„ï¥V…,™ú[ÞÒÖ!dnhºç 3ÛÜÞÙ?òçªÔ4W4†Y4Cw«[éz›35⎾n·+±€w<•Ë¢”Év+»B+–Йù¤Z£É4* #R_ÔkmýxÝìR4ß"–ÉßÏM\:wÄx¢ó_oãýVáÝöµìÑp*¦Ï´ 7e ÝeŸfMEUVAtv™kDLÉÍ„&0PBz¥šÞ ÀxûòÍ”³Z—¼t<¦%½ÏYgTl¸Èž{¾t+1¶EßFûß^qÏÚßL×kmø@Ìfã•í;¯¬GL·Vƒ oè·w„ykä£CeM`mç"¿ÍauÃm¿Ín: ©çÉôBP{`ö¥¨jv°°™8‚!OfQX‘v/¼SƲ\ÝÆ†vîÕCmK`îaÉý¼UM4O͈AýêTñ}ñÎÛNê!iË#L4}´(qtɼ4.>/^sp"ø¼¸ueqâT‹at—Êde|hcÈœ2tw‰jìdxø_)RÍmàÅÈ÷cÃЙӞé`GQ±+ÿðÞ½y!…çfU¾Ö.~eòÆiY¼qwŽéõ{¨»³ B À’³è¾;– I?çÙbQD;¥ ;”ˆ'B¦ŽoUuì"„N¤RCsy«æåi=ÝðtÇ)ê*òÝe2ܨp:YLìµ±xN„ø„Ùì&ZY¥Hpè–ºƒñg“q‰(µò†i™³­ 8W %ª2Ê#·Iº?!”dZnÌÓü$ök =µ¾ÂE¾ØÙn'…Žäg²•\ùòàölñ’Õ •/ÌE(´x-ð1;ö¦ï£kc{g"è gò^•êùˆZd¾è>õ‰ Ö×P=ÖªNÉCb¶fÑA¿"攪…7øˆUY8K¡öp×q)ÔMÑØèoE,²^h+‹HáÒÆg·ô°tG@z…Çñ¦¶OTÒÖzØÞç¬w98—éWÆ–Mzl [‰½X­áý©cJˆº…ÌvƒiEÀ±Ý úÑJ××¹¢CªHx(a'BÛ[J Ìý T°án…Gd½±:¤w„¾þ»yé`»ë4Å…Ò}½Î §‰L)&°¶; qê`»SþYÛ•#Â*XAÇÒÀ®ŸyØêtaÍ ³u'—MÙB¬Ŷ£³¬5¬áè<°sâ¥àH¡„—ò¹ÜG-å &Š–†·I•t˜‡`Eoû©}í}:`°kmé ²jÙ¶MûÚU§ðíkoÓxÄÂÎM,ÈT¿NDè_»‹¨Xž8z›¦™8rc׿bæòTÀF4@Ü ÝU×Õ0æãø=,eRÁö1G#}˜5Xh`ØÐžê· ÿ1¸Båú–h"â  îß9>!BtFš –ê»§&h8Âsj‚Xé¯NMм³Mi`dFñ…&h(bþî¤ Ö¡væ®BN£lk$A#ÏÞ:ŸR€RMÄ^rmƒwÌ"ÜñίˆÐ1Ñ’·ÙPÐXHhƒ†mMS4‰imÐ(ò a}×aRËÚ'¬Í¸X‚¡¸Ö¥BÎË0êE¶:èmü&Q·;¤ªNÄé|)£[Ãu2kØêUÒ5¥cWe&œòP£´ÙS‡ lúîÕ4£T`´¹ÇpŠGÎÒíŽéA˜˜L'Ì“0?Üœ æ]_Ÿv0ñGÛS÷ß®rG;¢oöbоO§¦[üÞ§7 ·sÌ `²ož¹ªTu1­Uºþ˜vkK aÂæ…°VÙZãaì“Ãy}yla'4UߌKƒIû%5ÚT’ñw×K¥Á‰žBŠPqšq+ñ!º«¥ÍºnÃçB,¦lØ{&¼-Fy[àó›ó±«ÏSÑèø·”¨Cœæü½+ÀÙîa)jw¥1Wïy•q§|½ˆO‡&Å~´ƒâÈϯ#±/Ž4yÅØ'šBÀ¼b(kñçn#.¾Çc`Õê.cmAÀýÅ%üÉw«Å|"O˲)yFô/ÐîÌNœ`ö3/¨åÙdž/ñíwl‚— [u782%¡ Xª?Bøö;ì$ØZœ6mP`â|é‰Óv}9FSÛl ×¹s×Ç0¦@¿ Ž( »PlC%Gš~¶r±GÎKm£ —«-&pãò¸¥#ŒG²b·m¨<ÂÙDC³­£z<7ZSžó÷­è% } U]ÂØ¢ ÇÏÚ²]ôÕ+Œ:Ô¨s}L†/­F˜¶I¦9´¶Gbpo¦õ'à 25qN¯M•ÖÕþíÇ®àñ¨zB;ωÑ9Žû$F¥³Ú <ô| cEÍ~HPp¾{ð-×ÛŬt}À¤PÕfLº£§­ÎMJßw¦›x$änÌàÓªéüÒé:ÖMD¤¥÷Ûá8 Åá¶TlBê—Pþá»)\[óEX~„Ãët³rÐÔþq$ÃoHÿÇ ² @ÀÕ_ab°ÓÁêS~{6Ò¦kt€€%cI ¸ÃÒca–Eët¨u/Óu…œ×Ÿ×ºÔ8”°YÄ ÆðƒªÜ“mĽÉíe»X9§u^½šôç.Ré+Œ·‰²¡deìDVµ»BKǯ†ÒÏ„ã¶Û«¸ E>Ò’µ9´{è•>ù—¤ÙÍ!tÐ@d‹Ò rM1OÎFµ3­”ƒ;l§Ó…Ël­„Ü+Ù~÷Tò³VïâÒ³g6«†bËG‹Ñ«‘PrcgmJŠkšBó—ån›ä L¶Ö¼©Ó'eÎÿó?? *ÝSÁôgßpŽƒß¾ñÿ ±Ý2\þÛCloNÈ ¬7ù=ñ=ƒ÷kõFÀïM(Òö­ÕO¡¶ >   9ɾV‡»°öócQâìW ˜‹@¸TAEÿuÚ`™î.ͽ«¿$§(gÄãVÌÀzβK~‚€YZä:],1ÑõI½BÐ*`^«—¤Ó–™yÇðÀÜ¢ôù’¡†MPûâCæ¢ä€U€¾âU  ¢Ç¡ZŠM×ô1‹YQîÀ´Á¹+§YÁNYíšPUvé”­°&*DÒÕÄ«ŒåÂ4s X4§G+ÀÅ%¾úžFúZp~w¤cfùGNEgîgÂšŠ¨YÀêÌxŒ» pvFZîL·'ؾXYP9kÁáÞ÷÷èf%A ”2XÊùob\ì«yòª3Ùªb#`•lÎ< ŒÊÊúÚF·•O»}æÀ\´‘ê?î´4¾æïê@ñ>ÌíÊ(Àõåò*/—»¨5Dî°¤ª‰èÜR|Ÿ—KQ6( Èb–îd»ü*K(<9w¹9á j­{梆—®Úo-›%swW'4Ö$ªNÓ ÃÈ¡©Wáf{ãÚqû(ÀoÂ×é«dÇÐåKC² ÿT.ÍÐ!¯—WIQŸŸäF⑱ï9Œ£3B3ÁAÌG†R ] §æ¦†UâÊ®rÂÃÔÕRòÖ3^øz'uoÃꈨKyK@Ë$؀ϙ­®êõ‚‰, Ry‚1²Ž;¥µÀ4m<ìXÁÚm ƒ ¢j³©èË æò+·}j/ð-ÉjÃÀÖCØg ç°òê7«DÐõÓoàq,ªy«j€‹û øÁ  $1ëàeدQó_jÎhåYl[ §Yõ¤\‚Uv¹2‡“L^U&6Ù‹®(ri‚Ò%¨J¨Ö¡™9SµÃÔ¬áz%šÓ<‘æÌ‹%¬ V–ÝÃÚ…DTo Ÿy¯J«º¾+ c²“都æ¥\¨°é07É9E•š9­mî~\¾Ùèåy¡¢2×H¢aYSuJè«¶%yª¾¿b:5¼%­‡löfÛʶ¦½`H‰°5ÏhY凡QÕ‡’¡VÉÑwÜýÒ*9^PõÈN­ÂåªÉ¸‚YÚ2}­+~†g[¿ÛÓWòDryDV‘˜¹.H঩…Á džéú]'¶ë†¯·Ëút›£+Wš•9«† RFJØ”,^üàìªòÈpx!1YÏ@& Œ›ï–ìƒÀ; ¢÷_9š5ëY7`63ÒËý~{"dª‘_¦%î/&;-cR覲;CüÖ¼‹P×S­Ê0¬EÆ-p¬G¢Pà }á9ÊzŜ߼rëuúþjE4B˜ïí [z/¹×$º)¨E)€‘Ð%} nMØ’)nCPÌ®ÎdR¤n:ˆÐN~\U5T_‹°)!èëÛIÿÈ"À?2õE€§dßI{³±tÃÕª\ ·î«]¦?&•Å>ï?hQÛeò;æº _‹?Ø`ó†üA³ÓXð-OØüAË®üA“GääšÍ·‹?˜uJ'ÀR¡;3ðl&½Õ–f‰ 5œViŽît ÄÅ4g­þÀšÝÉ Lxr†™à„Ð’Eh§¹»É"´¨plÁ&×`Ô‹kÉ} ÕP{Yî¨'½chš»†Sb™7žq¯Å!¼mÇBëæù:ù lÙ.7ÑÜ å[ÿ¦pb6΋2ÆÍµ‡^0 —„¿¢$—A^Ï ¡ß¨~€Aˆæ)«"®¶š^p‰ÎÆ+®…Ô)…üÆDô‘ÖïMFr 0¼!¿n&E+Õ<5M$¥…\}ŠâÙá¤Ãùu‘QÓV—„5íUíQ5'­…‹«‡#Êk³¬E³ÁÕ—x«>nqÉc’RY¿;€¼ˆƒ;R$gž•g€‰’ÍìÂåJ—’„wX§Ž…R}bVíÛ÷º^Qå>Wò2s3”äÕ¿TêAÀݤºÍµ$Ńneh$äÅqP±åORÇØ ïönZ{{®Îí‚iö× Ä®Öéè‘>¿ŠÝœ¢Ðä5M)-ª¡+dë;|‰c³,Xÿ>^0½ÇºFhß\=2è6LJé‹ ¼’z¹Y$Žß ‡'1V ˆ¸5ï~ßn–¥%fÃ̹¯/ `Æ‹ÒL”q³º¬7¨9ù†y[‘päÌ»‘½Á~g:Òŵê:Éë‘+8 ¢`âiëNcµ˜C*4‘‰¦OÐ6€ö²9_§î#‘dÞþ¹×ž³‹œ•U½P,Rr†cv¶S–xÔØÁH&ø£[èWr`˜ ˆìà ¬Ì# 7á9Gr*óý‘à ÕDò]:œ‰2±hFð·šãàýºÁ´·¾  ÑíM#kLPùk˪èŒàÜ`9·^%÷Òl¯™øž‚¬¨­ÿñÛ*)PÆY2S\!¦“Z{‰1à )‹A{Å5I¾·ÆµÁR‰=^0Y/”äÓ4¾FH+·U¯Ñm=$i]_|N"s¹O™ º2¸¥o¾âfe œÖTU'·JÎ\+>ªjg•¨4d±fôAŒv¬˜ŽobT­T¾¢GbUŒi×w­`²Š®/Îü(;nù›ò6†¶`-Ú=åq®i÷e›µXþ¦DÀ¯Ë§Qœ|³\m•0~CööÄE¤Ù^¨SçÆTê}uJ:ÝZÐå¬eÈQU_gd‘IØ ò-ˆÐ6¤6„a·7YKžýkiÉÄÜ7íÔNªðp†±Àqö¹æ¾‰èœfÙHtïw9‘ó*;Ó’Dä\kê’Ú7u§&Bš<™±úðæpi)¨·«’^mV‹Xìí÷a1‰yµ›L ÈãÓ„¡±ŽIÔe×€èÅ£aSʨÞû&Î0ªÄN\•lN¯G “Þp’cí\}¨†‹¢ÄWÔêâlU5r’דîu Ë¢å˜ñI³¥~DKŸH—)©XãùU‘röÊ„~BïKŸÐ9?óS‡&ˆ:_BX‚eê†zw©Ü>¯þCðíç¡lÓ=rM˜Ä%N©ºªtj-ýfmwÕ ›L’ *Û&#_+€²É¸¬w®Óç+z–Ã&ãº@Ù6ù”EšÂ©‡ó ó^eeè<3ô Ûdn QìS“óÌ(î5$@Ã'¹L›¢iïr1¡ù1Û,s[šÈË,s:V3‡]F "NžÌ2IÄ*/³L¦22/«L¶›u^fë†sXesœÃ*³ÁW,6n6"³Œ„[y…û½½Œ¬2ªÙ„Læó²Ê$9Ôæ0˨Dé̩ѪÄ[^v3qóK9Ì2Ž?ÎË,sº^F¶]nNa—)«a˜Q 0²ËØ2m˜Y`Xf„ÑÂ’^rƒY¦‚UoxK)sØfÊ$‰½Ùa;óŸý7´á9Ã¥ÙT‹E!œwuÝ÷l À£zlâl&X(Ê"‹Þ­ŽV›ðD2†K'{ ††lQÍøh5)¡c¬uîpê´¾ßE(³Jkú-ŠW§!õÞo"_i¬Ú0·NFY&|úl ˜Û§Ãœ#ž¹´§DÄ«õâªåbpÕ¹M5äØÕ†ÐR· Õ­ÊYzØXˆí:;&X¼#ÅV—„-J…LX~±Ï»õs‘ õ}õ?ßÌý‡Ï¦ã'M~â‡ÎÝ“tkBF¶%®^/óÚ”³wM î¾Nò¹a^¾þ;c Eš¼k踔wÓ Õ.Ÿ1a¬™kÄ€ìÆš‰±±†1+YÖšã1Í5 { ç%/{ Í9ì52zÄÖ ºôäi¯ÑU¿ÙkÈ\­ß•e°¡‚¿$s0a¯Ñì´i`¡þ4/{ÍÉ8Íšx.q‡a°‘‡>ïymh¦Ïaµ©tkO»Nð2Û$ŸO”¾,y3ÛHÆTïJŸh6±è4‡Ù¦ÌÏ>Á”ÙæØ²Û,L˜mŠ”.9Ì6…:—Šq¶W½aø1VÍî²Ú8Ÿq‘Õ††ž8@t$Å&ÐÁ£Ímmç2ÚHûQ6MºØí‚R•ËI+Z›ß”ͦM•M´›Ã³Œ6)oé¼ì6ЍçÖ Ýfõ*tú ÅÏ»áÉF–áæô†Úzs_zè>O…Õ²ñåe·ñ³©þ²Ú‘­ÇÝStSn ±l6 ËËf#MÂ4É´Mã̪ÇówºKg›l¶’§É¦É¯(ËbzH”Õ¸‡ 8-6Ú¬»Å¦½N+k¨ä6•P²l’¥ç0Ø\ë2쯲¹Ö*îcl$]-ƒd¸0ؤH•›õw®”ÌN^j"à0Ù,Œl6I´8ËdÃ&¨|λÍ&4a³¡Ý4/›Íi5„l6\ †…çÍh“M|Å¿XR …I¾æÃhC«šnäeµ¡‹M^VÁ»Õ&0âºÛ˜7­6øªÙÒiµ‘ËrXm|¾æ]†ÙH/wYd€+ËjCÒ\–Õ¦„ðÕr˜Õä¼V›l{Ô²ÚìDï£(Ô«=›§ŸZ—ÆbcY{³á}Ç0Ò6/Oµî*Í•P­ÖûÊ®jÀX¤1Þk“ÐUm‰°Lm˜Ë¯$5AWµ ¶«Ú†¡«ZTÎvUCaá8p%¾ÑÍÉËU-*!g»ªõ*7´<]ÕDç^O|ó¢d+oêFd¡ÚÔ„)*g{ª! • ˜1XˆXü!Õº# ³Õ&<Õ6ŒM4—üò³ÕIô ='²Õzð˜á¨ÆüT—W²øQˆµÚENÓæ²—á‡0àñº“n›r§«ÚÛŽüx õSúM®I¶¬%xÜ&¿b(ýìˆ$›Ái±ÂÒÏŽôCØÌ4¥Ÿ‘¦ÍÀJYáBЀèês³Ù.q[9*«}M­£Vë”}¢ éú]ÉCöÉ<Ü”}F¨+-û '.Á~Ùú‹ì3ÒT_ZöÝÈw)e؉bwO˺dŸqNq‰²Ï8§¸äêØMûä°«u< =ä”}z÷6œ²OWž±}lIœ¢Ï‚-ù‚O$Ú ÁÍÝ÷×.ù0‘šu26×HgjɧwÏí”|ÐëëÞ$Ÿ^]–|°¬±èÓ]7%DšËÆv]`&û®(áô·íº@íX•÷¯+(ﲎÈ&úDÁä`#'o'×# Á&…›€¤‹>#Ôë!úLÄ}Xüvé¡_àñ†è³¡¸*QK\¢O˜<—è3¬Q ÑÕů{}l¬_’Ïžl±úCQ }:ÿÙ%Ÿ>Ì"Iòa¾»ûkJ>}Xk>%Ÿ·©ûL*ëüªuÈcdf_^Õ⿟aoÉM׉¼H6¸ÑÁ1;¡ëD¶Ÿü¢ëöµ›ºÎaŸßùÑ̩ۚë÷’gé rÉjê:Çå;w*;‘Þª¾hΆ£Ò^0ãU׉O§]½ÆO[@ +ù­ßÐu¢û>€Òub€÷½ë:‡™ë:‡ÓÌê°ûM× ±=¢Ø?é:±rÖ˜XÙ‰„Si);"z]L"ò…BÕ´ÿuù×ù“~~ýãó¿_bÒÿømPúy&˜D£ûùõGÎ/c¾¿þùSíæT•’®„—ƒÙ¥¾8”ï¯õ swqIŽA]VúBŽþ¼šÞ}|ýˇýåþþn YKù?²+á"ÿHavéßMNdém1—ƒ(Êó޹8b'€ÊÉ™“€ËxÙ“,•`/hõxk5æàõKÿns ÌAêTž:$ëwSàá]rº¦ 9¶ób¦MvÞþ(Ùû¦psÁ)àœÐ/æâíþÖª¦àýKÓü>7´ZÕ9ŸNf L’3J ë¸/̧9It*{nêSYUJZ d9A;ñDRn&`nÙUÎàù‹Ã鞇 â{£˜’_?ôï3%UYé׌<—@9דñy>œÕ³^d§\ZÞiÏ\\>žA¸<éè§d¡Œ£'ÂuèþÖ¬fäýSß¹Ìm¢Ê7‰‘ªÒ&ÿÅãÝi>ÕIùÑRwm0(‰ôû·ÊÃuä©ìªà?O@' Ζ0Ü×–ÿ΋:ø;ÑÁÆéîdª,4¿YìSq¶C…üÚ`ÊåN1d¨¯øfÖ0Äà'‹zªü`lü×¹Êïßø0r(2K{ò/ÿö‘é¬"+3U‚=bö_Ÿè/xžõI¶ãgþÄÄ+L%eeÏ‚:gf¬Ážþ !¦^~AµøþeR‰ÃDFÌ?ÃÁ™`R·~ªâJ.TsÖfß[äÈß?òw^òa1?]^ò@xäH†„Kü×?¶r,Ìû}]¾|À† ,Àˆç±N É2âɶQ„s8U€GAgHF$Uüžˆ¦n-35f|Ljóô¿¿˜S;ž¥ãI4cÀy¬N ˜‘auÒíx/ÆZ½ÍÀ¯Ùºôd‰Š‚IýnÿH4ž}Ìî5äöX.¸ò™~ÂУBíö<>O¤ ýFO)ègàPnJCÎiE|ôPÖUCLò â¿ÚŠ U#4$lÈMÊJ,îznÌqÑr‡ kiƒÜ°añoæÌÆAžˆ€³K,ÄÐMis%»Â2?c:*J_¼ È¾m˜es†Šš>Áª\ÝX "»a¸4=áç\ù>Ç —Xè2Q`^ÐÁ‰nmþ*#^Ĥ«N.>BS«=îч›¿Âú‡ m”ýâ‹v?&3å ¦ýγj†…B!u=-í»¬vå7л¼$cHV'œE Ó{x¦E.ÒjþÉ£(x(ÓE‘¥nH_rd –ÉǬ*”=û \V@)2OR=^ÅdÈ` ¥RÏ€•fîX| ÇP!ˆC9ÎJb|ÔhÔ¡â³ðá4|8óu‘éuлŸa}¤½.|”etMœ¤×€”‹èxlˆ‹¬ÈËL)—5ìR8ð…®ØX´Ç-LÚ3?Ã"amG&zï:Êö?œ½ã‰awÆ¢áQ…–o´øKÙá'¾ÒÔÃ6ýf½>è÷hyÂÐlæòt^Â¬Õ ^OàQäà ÅásCƒ $¦=çìçHÇ_9Ö¢JXôÁ)BwSÄ†Ö þÞ`H¸;Œ~Œ>)]âÔÂè‘YÞH£P¹Ø•Èvi†VĵCÑ®&‰î¨  u=I§Iä@âx¶Œà¹¤d‡z‘<ÿ7ÓøƒSÃÖöÇÝJ&¯„:Œó§ŸÓ¶®ND­½K}u"a7Çem)xŽñvkË*óËþD(®¢Ae/²üzŽE#gó¯¥PÕãÇ T’«ÎlH9oî<º€ŸE¤?‘:2ÕnÑò$ç–е$åX/TÇz°#ð¹ü=ácžÇù…Pù<#˜ü$È䧪¬%Jã”}QFP¦lWw˜Ò8 i¨¾,åƒÖZs¨Gßa­Â6oøÀù9ÃÏí²XÃQÒ·ë/Á:D[6/-ÂLN>Ï"ý…›†c+naÁ£UØðë?u)ÊŸÌ.]²<Î/ž_ðóoðÖ%?Pé5¨N»> Åýêàã½}vÝè”î?qr•¥r·Óèêu¥ä"7ýáÏäB¡sØKØ\5žŒµ" åöq»Øaq %¾Ê_Á gŸ,$X£Ú\²È—2 >ÂêUH,Ã,Vl¸ ³YᦟææÚ\PSæÌ…P]¤×‰âmI?%ùjüœp,æ ÌÕð æoØý„z²aƒHÖTVG¦f[ç†Ë¥ÉÁ‘S–0Øa媠‡î¯0ÊxÈû’Ö¼qÓþ’ ‹]@x¼Çe‡&3„Íx<6DS¡,›d&N m¸L©ë§'ãˆôd Q˜å‹¹D¿(C‚1 C¡G¾¢l ­' ªÃHZú4`3¦#Ôå€gL ¾ûç;²kã*²ª  ﻂ¹Lìy˜ÌÊoÖË|áÛ5ËnEÜ$LÃÅnZÓÇ-';€—}Â猪Bù#Å´ÝvÝÃTÜ=àc¨è1¿Sf¹[%؆SɈ™^›²Úë>>ÝͶsI%,ÝJX~Ƭ܊ÕNÒ"5¥}KJÆÔ\?2…ß \¹°¯Ú?‰hγÛ—Ô¤*…tOºþñ¸7™]Ñ0³$7åSLšˆ¦<{IYíÔŠëèƱÄ諨¸«LÚ:Á?&jû©’è6%LÕ*µÖÊ64$Ž¿S ?¸02JP®M±eOP>`]élÓ¥r®boŸ^k/ >’ÄRx2Bõ¡²àÍ**þ`eÝÄ_ñOS¨MR÷&äas™-~–ç8 Î}ˆ²Eئ‹í>Gëü_‰E;Â0øß ˜Èo?šdCûÒ $¦9Q!Fª×¸f4Þ_ô®ï„.Nþ] °ã]ÁoЛ³( š‡ÊâUâ ˆ/¢ @Õäè¬_#ðð´:¹Xä&¢R'>rqù4­ s»èJåTMhç±§ð‹â7G —o Õˆ.aŽsj„šŠb¦;ª Á•žÛ†å±å~8Ú)4`9Ã'ŸäCÑN£#zlÞê< d;›Hmê¤0‚ø[SÍ„.„Q§™ 8Yyð7½p›FØžÑäE—”¥á•®|¢<]IÃtn~x3VåA•e›®£ðIdŽofØž¸ngüä™W}zxhv>ŒÂÝÊÓ;jó ^0Œ:Ö.dL?ÛŽ˜N:„s\Y™ä㢲zAÌ‹úØ,‘ìW‹t+nX'½àgeuŸ°§YýÓ]¤Ú§:þ•Y o=ÌÅ¥“A÷8–UTÏæ,ˆ®ÓÑçöø1aeŠäœ+¾²ûІašp«@« ©ƒtÛtÞå(aÒÏÓzo”§K]?gÛ Hèºô®){cw…Áb|p)AŠ+ÍÂfºb)¨² AóUÝÿѰ¨½ˆß­*Pê>UJ˜î²!ÕMæ` JÙ8梺¤­=©ê»·c¨I´^öùǃ ZFIédU6–)yíù°Ê‚Qé×Dš_àc½à:Y³Õ àÕ`£óB<-èx}ù7‚™Òj;ù©¢-`Ê$ý2ÅÛ\Ú¤îaÈ™šÍä2yï›{å)iR ªæ&ï8›Ìoj²Ý0¨l1ãËÏ^b·Ü¥KÅâÜaARHƒí6â{Âs†=âw8F|Ä rùþ9¸éY÷-íxzUt€ðþý óÀú’LäORGKUÚÓCâ.xL焊Tà&åˆ7¥ÃŠvÕ9øjO=ÒÜß#…ûë?Ê™7ÓÚÌ]<”Gbnʡܾ‹¿Y©-õ;4ʱ6ß°oZoÐHšÈ)¢âëóÅU%Åî»Ð®©’e#jX¡."±µ6Í4Ž,”dOà ^Ò›²-5H¢-øN¦Pt„¥d¶ÁúÂ$«ÓP-à”ÈÁ e ~BÍ*½¡Ávz‘¼Nç§ §ŸEâ•ÒþŒeŒÚ£³¬b'ñú±FÄ>Ÿ¯â½‘í‘ 6³‘ a3ßüÖÀǑ­*Ç­BGµ ˆT]:€YwvìƒÖ!3žXË1¨éRͨ éBÙ¬uá·±o)Dó…AŠõù".Þ}+Þ3êy\ä€Vwl¿sÇøå¤’«ñtM/ô¤b’îÛ±ÁîüBŒ²ÞöÀ£õ93þúSçÞÅľLûcº†K›ì’&¸5¥…›ÂÊAQé)-@%Ûßà± Æ0ýÄ|»ðn˜­ç<ˆ¯«ÂÈ1{'–#: Kcõõó)ÊßfM, &°f¦ ‚ K¶c\Àñ;LuˆŠyGL56=Ûô&\A¤R^ÇBÈ2À¤m¿€¸âÉýïi™dÎÖÍT0–SÑËß³}?ð±rÆ_0ŽS‘ðμõ\h*áÜNY¹ˆ³BÐ!ócÎêÐãëu>.©ªõÍmyIè› àÛÜ+‡áê^æ¡Kæç_àx!>øëƒÇ§>^7ÕÛ¶Ë}Ûeyý†É¤Hèš[ò¦fÿ”·ßoyŸ,Ä¥8ÞÐºÃøznZø×~œf×½ž]ªŠ™_0<[ôóoð±÷Q…´mʼnÂ(³> +Îꀭ8¯ üfkœRÍËŠãâ`†á…د°â'Æ´‰ÉGžVœÒË UÎdÅY0¬8¥«Òùr–,›§tgO–kG¤@¤®Ê™[§‡Ù¥Ó´â¸È‡­8Îe=­8Ê n#Ëšõ0â,ÈFœ…Ñæuž¾áXÉÛp Ε.éö†˜&œâôβá0C~˜pð%FðÛ‚WP…õp™»‡‘¦¨Ð{XpJ¤¶ÒÍ)+(“@2€M8Åa$2á”({@΂¤U2|Ø„S\óu™9tK2 w#NqvÚiœ“þ#N̉8 ”gÁ$CQè²á`¡e¦i±²Œj– §Ø1[VLX¿—§(ǬÀƒÙõăé»ò4áð¦ºÂ„ã6ḎǴà° ‡DzÌë¶+èL&œÒÃÐ" Î<2á ,6ÒxÖ¦ Qïù«ó Ê‚oß*šÆUCR\šÚx3Ì-K&gß¿ý4¥S“í(ª l£ù3Î5CÖlÌeˆC“Q]7T1X`0¡RÅdEC€NÃ÷kbÜìÔÄÄG¥‰q¤i‰Î^öÇš®»¡ˆ x ¤í;Ô03k¤/§ÍóYMB “•'ÜJ˜¬b^VÂdÅj/-Lnvƒ‘…Ze:q^yܧ&Ë k*a¦–å ÇLÓ¢•0Ìú™ fåø²¼õu/%L¶ožµ0™ ª¬„A—r›J€mé`^çò㵜”2N<¿ÒµöcQTÈë=oðü½©ÈÁ;bnp°?  ¸ÈŽn3ë÷ƒ’{4_xéáÇ1È­ÓOl‚DÿÌÑ]t¦›úƒ7ò7¤.U£Z0¦Pà¥ô8žØ/¥¬Œ¿Šôõº¬'¤Š, € P˜#±6×Ò¹¿ÀÁsÅóoð1'êÊ2_½Ãó…亱o°‹À­f 7I.ŒÁ¢¶BÅe¯ÌÓ€}Pš§BÅ})…§ç‚-3¿z|½,Èoxv:ƒÅ.½“àÆž˜ç“Ñ56Åïà6SÎQñÇóþÚøû xgUhþÝüsÚŽBÛ슥¨*ʼb)Pƨ—©6€Á¾®X ƒ+–ˆKa„c)Üšc)ü±KáÞL­Uϧ³Ð-šª@¡ýÄ ûPc1—+hòu*>0 ×¥òdÌ>A׊? }ÿ|à?¼ŸJeñ·7Д^ãsjÅË8÷à˜'%ÊŒ{Ÿ+~Á/¹Îè’«çó,šëmx.·a­Q´¤õówæbGGbµ 3ñ„’«tªïÔ¹Ö†Õ PoÃêc4ä¼ KýË|’Ž ½¶ ?*Æß(Š.i».óP>yçˆï‰@ƒ&±I¯LÄ{#ëwckµz¹¶Ï(Å÷Þˆ0o|¤u§"ýáñZoŠ|LÅfP£â Œ  !÷Xy\§ò²ábq ‰îºÏ{}»Èt 2]uâõ´zÇl^¢Ûc~]ÚþèY¡v~v¼Øc¢ Ô<àeÀÈÀ¦Ð»Š‚~”w\3ørÓï”Ê3pÇ„£ãtv¾ÎÒ³õ˜ûð´¹gÛ”n3¾µ]ÇöèuéíPk ‡¢’wŒøÀ­Y’ ¸æôŒ˜-ø@p !âÖ¹¿ëùÓ“,}ÐŒ·â–n`ÊÊ2 Op-ñD€Óš¯«ÂF4©?ßgJó<{‡œ6`jÜ}ƒ9<#>Ë,æ&'hŒ¹Ë´2yb‘#¥·9ïG ¦:0ÛAUåö7x;ƒÑÄ;Æ‹ùùÈu ýÐøvê-qq÷}ÁsqñŠ¿N%›+Ò„ªç z¼pRMpQ£|•úå‹ ˆ¡f—³úƈg”ªoãñ;v[Õ¿c?Á õÞŠÍ ¡¥øy„àþáëøXQ´ñyû ·x˜á ʀήhó!q7:ŠÐQƇ\î9u…2à7îˆ4œÌ[:¹Â­­ˆî’ç^V"‡7ìŠ>œæ JqLŒêܬŽH‰`ÖÞTrGô&¶ré˜8÷²Šm{ùV^ÌøÝÙö'übZ‚¢Ïî(îŒYŽÐþ¥ú%JÂE3†°QRÜÑ~^¾¨&ÝÒ÷JŠè$uÄN ¹MN¤“W#|ðöpª‚Ú„à.T¸Qõ6ºJ” hN>Ïç•-4Õ³gP6t®|}(Vd°;Ma“ÉA¤ü bÁ åÈ ÃD73€Œ¹Ì± /Å}&í«;âÂ0IŒ@Ét˜á–©Y H=ÕBG ìáóúšàe7° ¹çëŽ@¼´$äeo«>À¥Âü(ÙkBÓÛyj èè5¸J ¸HCöéÊE»TL*£T•슄§È4ÕÇ$L‡IÕ'…ÚuŠÖ¢…ÎdÐ+ÈbÕi¼»n]^Lxñì¿tŸñÀqÁ¡øåCtm2óD¼~õ#™Mªô²ul†Nù3Yåg„ßS,ÓÕ¼z]Ý}íï±zBývÿá •(c²SZéÃdƒ&"É"1ß Äâc8Ûœ¼Œï³är­/—&šˆêB@eHÅ`O¼2¤‡¶ 'y8Ö!Ež„â²pIg·Ð ªJWZ›a~y¯@¹¦¦O5›Èk}κó¤ü•±¿é¥[uA„²í.·Ÿ÷ 6v‰:l'˜]‡Â@¡tÌÑ|•† »œÝéò£y…÷BeÙÜý.u§´3>ôzð²=gKU.#t1½r­9õ½KN[‰@úÁ]ói§èV¶/ ÍããúQ§£gq¤{ÊN7‡Ît¹h%eÞ¨í 2C×™©)¬"ˆÖO_óWEØdl˜¼©”¦‚öŸÝ=(7µ®­Å¥ÎÐÒÚ‰(œ—ïù}×Ék)„În¶ü ’"¤s.<åIþÉ`EMå¢TªS†Ì C áõ3½ò ]|BÒNÅY=-øîE—YÍìW¼õòÓ†eqQy˜d=¤e‚Ëj¾ñs˜â€s $›‰†ê÷¤`½¹ÿ¨Þ¼‹¬ò˜êþ%…(gLød}²pØÔ$S$Zœqû"‘ÀN²-?BŠs4vÚ‰tS©Ÿv:¼S›ËZ óO#O³Á™c 䤿ÓÝÁê8N“™*Æ€§†Y_èNš#/ðW"õùŽQì"&æ”]ÒˆH°K>ÿN™¼Õ·Å(Ín:ïý‘KÈ!¶*)ª‹ —Fq΄q¥b=H›þŸ¥KÛY«Äãvi¢ml¨¨×Nâ¥\îTÁóçfQ ¸BT×ß±GUÖóX?Óuó–ÆdÈW žTjZK ’„ìCÖRï¸cƒ94k"þD§‰ù{k$0ÁÔYßêT¦W&waÍJΖ*rõŸU›|À%Õ]Þg²¸ÝÔôÙsÊ„ GQi€¶éä3íhÊ‘=7“Ü:<¼Û>oHqe <ÜÕ&“¨ð êÎNÅ̤ÛéºÉ™Óî¦Ú5ä åC‰ñn`¶˜dDQR4¿ž”åã˜í'õŸßÏJWçÎeóÙî»@q¿é‰í!‡¤k½}ÿ¸_gÑqœ2Œ~F׎ ¯¾O„Ʀ·càj{MÌí$»1sw£Ä¼nÓ¾¸c¯üOsò}Û N¼\Ý^uY4sdˆåy^iinÒb+Ëy€Ç6šjî̳<ß;¥a7Ÿí_0?Ÿ8•Çìž®áÙý¸¥% äõ;ëþúmèNTl5Ÿéø:?¯Â«³sWçÐèŽùz ^ío“£ÏÇܹošÚèû1á'<ÉÂ)É´’> Pñ4”ÞSrÚ&¥ ¿’ÔŒŠ9I’4%ºh& èA‘À,‹DWæË´8K–—©P)%ÜqÈM¼ü”¥Ö2xÍ),uz›4x¶-ëöc}\®ñ³k §<¢ëÕáXsdBÄÀÍ¥Ïy©Ž˜ó´IFç¤*aðœôÛ7×DT.³Ä+sÙ@&SY³!dµ»èp k3v:ÞçRo>ˆ ï©’yìßsÇ v£>`Ì1ýë©pM¥­ 4 )>¼WñLÅ"ˆ`Èå.)©1'>³'²ˆÆ–O!AÑœ"›»Ã.ί%î¡dÕ˜ª›Ã\_’Šöâø#Æb3¼~OÞ’Ø€Ä1$ñ@0ë…R8ÍuI¼¡·ÃRȼžouÇÑÖ&©UãÛsÔÚxLš.¶ØÄÃŒÚMe‡+ß“æmjp=OD¡K;_3{þPû,ç•­Y\½è­–|v>;9;÷u•¥TÈj”ˉӧÖcÓ7¹¿V¤4595¿Š­%FÉP«¯œêÃi²ôy¼'®½*>¡ÌÏQµçÙQ’d+!Cy• \Ù‡ÐCê«l¿:h¤Ü„ÌÉå Ãîåîç©øâÌhåîç‰XK3TöqL.x¾ó Böég†.gpþì³/·®ñ”áx ö&»¶ߦÄœ@’^oq ä­—¼yãZÐ{¾5ÆKQØ™<öÚ­,ððºy?nï\7ñ+×màpn»ËDˆ^ ÜœÊþˆ ¯;D/‚úž¯ Ĩ€S+Ç,Ù‹`ÉSöºì˜'ÑëÊ*'CÑ î‘cÊ^Wf†º8d¹„îõ¬LT!z]t5xbÍaÙ¼ápÚ6É FÜIò"x–¼<¦ä5Xóhô bnËÙÈ;&$/öJ<(3»ÜCðâpj+¹‹Cr¸™uÎÍä¦9ÏbSÄñ]v0¿ß®>dÁ+{ONÁ+ß“5à%y™B×Ú^k÷íéG¯Òž#ÿ[²^Tegh6;Eµì²ÜÆü¿àÇŸNxügSþBCg:ùþüš˜|Ù±úÓ'‘"þLmž¿ý¯j&ÿøøË¯Ið`A¿e(„óú ›è ”t¢Eή 'wÓÙJÃ8¿“ƒü.üEaÈÛÆ›å‘¸œ/óä1à‰Øõ:ä?ã·sÁ_¬ôÍo§+ÓêrÜéºiÂqÇ5mÂsÇàrÝ1bùîaç·ækÙ›Þ;ÑðÞy^~¼¨žlø šþ;˜¾Zˆ¾º±ÉëЙú}6>\Uõv>:F|=' %¦KÀKˆ6OÈÙ4Ua ˆF“¶jÆ•€ü{XãZøYئãuXà ñGóÕž˜óë‘Z]S¶ÀÙõjM+‰1JÂ|OŒóýõ6Üí Ù*~n(e&)Rÿ‚hVà£cg{…a7=Œ¹P»0|€2hm馌W¥ò—_!Ez1Þ>@Ù4_ ¦V ªÒ)v‚´ž]&Ç@Ð¸ÉØ§›ß®Ê. πΦ«|¡ìj’à ‹Œ)Û?×ú¾bmZT±Ò06‹Ÿoa¥×Zê²w,”׺ErLßjÈ*’d±æ}pËãÉZÓjSŽnòtK…ró,Ìd:½ÇµfDwé×FûKMßW*ëÙ9ë"Ü÷#•IlîHyÓz07D¬¹B3ùŠ8Ö ÌdIªx8s¬gÛ„ö0&.²¤ ¯¤·×ØtÓ¦· 9¾±í7ulpŸ<:Jg<_¯ÞÈ-ÜÖìjêÏ“hœev/hLtÒ˜×Ü6MéV’£¨’L‚ÁŽdí#ù,Q¤R'žmÜ2ǬwÊ¥¾šoÐ¬êæ™+énŽja i™™‹ÿ€€ÙGçÓÀT‘¦ØÁßb•hZ>©nüæE–³… vN¶ÈT=l «3Âò!eßÃü:§âžݡS†LeìÝ­Ì^RP7;Ó%î€ÃüÜšá¿­ŽçïµjwW êåQ™31YÞÿ‘Z5š î;TjXu€T•áʽeÊY°£Kÿ¹w×û¸ ¬Lcó‚ÿ#•ið½ŒQ‚çÅ¿­3£–ws"bœÇ†‹F1ÐøÂ_èÿOÅ?„פ̓ºýç—á»þ²{öTk*Ì‘ïÓ ¡ùªåeR0ÍñŠG€;Ï‘©Yx~ø” 2¿½5Ê Å_>ô—8þéø¿ìÏõ endstream endobj 4 0 obj 133723 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> >> endobj 5 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 510.236237 317.480286 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 6 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 8 0000000000 65535 f 0000134302 00000 n 0000134016 00000 n 0000000015 00000 n 0000133991 00000 n 0000134088 00000 n 0000134367 00000 n 0000134492 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 134544 %%EOF pymvpa2-2.6.4/doc/source/pics/design.png000066400000000000000000002641761323370031300201160ustar00rootroot00000000000000‰PNG  IHDRXu4¼”©sBIT|dˆ pHYs  ®ÐÁtEXtSoftwarewww.inkscape.org›î< IDATxœìÝw\UõÿÀñ×e# ( ,EI÷\%)¨iYî½WjÃ25ÔŒÜfd¦æH·¹r%®Ü Gh†D@dsïç÷?Î׫PÔÏóñð!÷ŒÏyŸs×û~Îg¨„H’$I’$IÅGïI7T©T:€= ûâ‘$I’$I*u'„ÈyÒTÿVƒ¥R©Z€€ÉóF(I’$I’ô Ê.瀿„[þmãB,•Je̾€%I’$I’^uû€!BˆÛ…­|,ÁR©TM@%+++š6mJ£F¨W¯FFF/:`I’$I’¤R#//+W®ð÷ßsêÔ)nßVrªûÀ!ÄöG÷ÑJ°T*•p°×ñòòò8wîœòX__{{{lllžhÿpùòeììì¨\¹²²îòåË^bbb¡Çiß¾½xðàÁîòäIeŸ† *Ëããã…D¹rå„BtêÔIbÞ¼yZe¼ÿþû‹/‡~,]]]1räH¡Ñh„B)ë\\\þ5¾5kÖz~«W¯~ÚKõÊINN€°±±)éP$éµúðçÈ»B„ZÜ%I*¥š5kF@@4iÒ€.]º(˪T©¢µ}dd$.\x¬œììlþþûo} ¦OŸ®µ¼ «[·nʯ©¦M›*5}Z¢yóæÊ>½zõ€ Tj°ªW¯.,,,DÏž=Enn®°··7ÖªÁÊÉÉ–––¡¡¡B!æÏŸ¯œ‹B©ÁrttTŽ×¢E ˆiÓ¦‰ììlQ¾|y¡§§'f̘!1bĈ"¯aA –‡‡‡ˆ‹‹SþåææŠï¿ÿ^âý÷ßæææQQQÂÝÝ]«¶ËÂÂBVƒUp½Zµj¥<×’$=¹¢j°d‚%I¯˜ÿJ°š6m*8 êÔ©#qöìY!„NNN[·nQQQ¢J•*B___ùÒØÃ Ö’%KĬY³„•••Ä÷ß/„J¢"222„©©©pppjµZI°4h ÆŒ#ôõõżyó Ö­[§•` !ħŸ~*1qâD!„»víBü/Á²´´bâĉB___ÙfóæÍíÚµ‰‰‰B___XXXˆ¬¬¬B¯aQ·/]º¤$Xb„ býúõ"%%EìÙ³GÄÆÆŠôôt $%Bü/ÁÒÑÑbðàÁZ(1gÎ!„C‡€;v¬¸sçŽèܹ³ÄòåË…F£VVVÂÂÂB¨ÕjÑ´iS¡««+ºví*’’’„J¥µk×B1~üxˆ¶mÛŠÓ§O‹.]º@ :Tëµbee%~øá±víZ­kÊ”);v,òZI’ôïd‚%I¯‰ÿJ°¶mÛ&„bĈ¿üò‹¸uë–„¾¾¾ðôôžžž¢bÅŠ+V¬xì…µÁÒÓÓýúõÙÙÙB!Ö®]+ñå—_Š-[¶@Lš4I!´¬ÈÈH¡££#tuu…‹‹‹HJJz,Á:{ö¬RC¦$yyyBQh¬2eÊ(Çûðà –-[&233E›6m 6lØPè5,H°*Uª$|}}•ñññJ‚Õ¾}{­}Ö¯_/ºté"*W®,Ê–-+Q¹re!„v –B¹·nÝ*ѵkW!„ÎÎÎîîîÂÓÓS¸ºº @ôë×O!D÷îÝ Ž?®\÷ *(å~ñÅB!š5k&±sçN!„'Nœ€prrÒz­|ýõ×Êy$X*•J¢eË–Êu–$éé•`ô"”$é5ñÖ[o §—ÿöÖh4Jï`]]]Ú¶m‹J¥â½÷Þ fÍšÿZÞßÿ……(Ë»uëÆØ±cYµjQQQ¨T* ôØþNNN´oßž?ÿü“Ï>û •JõØ6nnnÔ¨QƒÐÐPFŽ @Ÿ>}íƒÀØØtuuIHH`÷îÝ 6ŒaÆ)Û¯\¹’îÝ»yn•+Wæ»ï¾+t]£F”¿ïÝ»ÇСC177gÑ¢Eäääн{wòòò´öqppÀØØXë±øÿvQí° žeÈïÅàííÍÆ™9s&_ý5«W¯fñâÅxyyi•“‘‘ ´Ó222ÒŠë¡qz&&&”-[–ãdzk×.>üðÃB¯ƒ$IÏF6r—¤7@… hÔ¨YYY¤¦¦ÒªU+jÖ¬ÉåË—ÿsè…êÕ«ãä䤕\AþÐ #FŒ ))‰íÛ·ãéé©$wš3g‹/fàÀE§ ±û¡C‡ ÝV__WWW•äkýúõäææâî¯¯òÏØØ˜½{÷rçÎ=¿¢<œÆÅÅ‘žžŽ©©)åÊ•cË–-ÏTföíÛpãÆ š5k†»»;)))èèä$$P4jÔˆZµjQ©R%þúë/ôôôðôôP’äÙ³g³jÕ*%YìСC‘çRÀÔÔ”ýû÷cnnN·nÝ”$U’¤â!,IzClذV­Zñý÷ßÓ¸qc:vìHHHÈcµOãã?V¯Áƒ¹]51b&&&EnÓ·o_%Áhذ!µk×~¢V­ZÀ„ øî»ï”:t@­V³fÍš'="ÕªU‹aÆqãÆ ¼¼¼¨T©Òs•÷Ýwß1|øpöïß§§'ÞÞÞ¬_¿ž²eËùµ~U«V E‹JRÕ¸qce:³/¿ü’O?ý”+W®0`ÀNŸ>Í€øöÛoŸ(Žš5k²oß>Œéܹ3x®ó’$éTBT*Uà:ÀîÝ»•_E’$½~233‰ÇÊÊJk`Ïg‘““ƒ‹‹ <àÖ­[Ê­±×Õýû÷144|®¤ôajµšÛ·ocjjŠ¥¥å3—“——Gll,666Õ4J’ôb………Q£F‚‡-…‡AÖ`IÒÇØØ˜*Uª}øùçŸ_܉”BVVVÄÇǺÎÏÏØØXÆ÷’£’$I’¤ÇuîÜ™ºuë2|øð§ÞW6j)Ä©S§¸wï:uÂÂÂvîÜ @XXÕªUCWW€ÌÌL®^½JNN޲LL +W®äâÅ‹ÄÅÅ‘’’ÂÞ½{Ùºu+)))Ü»wììl¦L™ÂÈ‘#”íRSS‰ŒŒÔJàrss•c$$$˜˜ø¯ÆË³cǺuë&k®$I’¤Rcذaù„víÚáááÁ”)S˜;w.úúútîÜ™jÕªCff&;vÄÇLJÆŒCjj*•+W&!! àççW’—©Ø©Õjþùç PÒ¡H’$I’ÂÙÙ]]]‚ƒƒyçwžx?Yƒõˆ«W¯"„ 66–ñãÇ3uêTŒŒŒøè£ÀÅÅ…‹/2wî\Ú´iÃ_ýE:uX¹r%*•Š/¿ü€ùóçsôèQÆŒCùòå©_¿>Gå›o¾Ñ*«àoGGG¶oߎ……W®\A£Ñàë닾¾>ëׯ§cÇŽ¤§§ãìì\2ç #++ WW×’E’$I’zzzT¯^sçÎ=Ý~/(žWVXXßëÍ‚޽{Ó®];lll8~ü8®®®ìÞ½€îÝ»cllLnn®R}xíÚ5T*µjÕÂÀÀ€ÄÄDîÝ»GÛ¶m100 <<+++,--•kÈ!“––†‡‡7oÞ$::šÎ;ãèèȉ'€ü¤ìu“€¾¾>ÆÆÆ%ŠT 222ˆˆˆàæÍ›äåå•t8’$½¡tuuqtt¤zõê”)Sæ™Ë±²²âþýûOµL°QìŒ?‡ÇÖéëëãää¤4ø¿sçÑÑÑ\ºtII nݺ…±±17oÞ¤råÊܺu È¿ V°,<<œ ùI©©)U«V%<<µZ³³3VVVèééÉظq#Õ«WY—C’žXZZ¿þú+gΜáÖ­[èêêRµjUåG…$IÒË–››Ëõë×ÉËË£R¥Jxxx0|øpÊ–-ûÂ-¬G„‡‡cbb‚½½}¡ëªV­Š¾¾>íÛ·çÔ©S|óÍ7¨T*Ú¶mËØ±cxï½÷ˆŒŒdðàÁøûûS³fMj֬ɦM›¸uë_}õJMTxx8...¨T*"""€üZ*333>þøc6lØÀ¶mÛ€ü,úM*C*}Ž9‚ŸŸ–––Œ3†ºuëR£F ™\I’Târrr ãÒ¥K,]º”ž={òÕW_áååõB+¬G¬_¿¾Èu5HfffÌ›7ÌÌL ”^…}ô}ô‘־˗/×züðXP·:tè@‡€üÛf...øûûsäÈ~úé'†úl'&I/ÈÌ™3Ù»w/ãÆã³Ï>C__¿¤C’$IRP·n]êÖ­K=X´hÓ¦MãØ±cøúú¢R©^Èqe‚õœ^d›¡›7oâããCff&––– 8Áƒ¿°ãIÒÓÚ¾};‡âÈ‘#òÖµ$I¥žžžŸþ9íÚµÃËˋ͛7Ó­[·s¬RªT,ÜÜÜ8xð`I‡!I…º}û6óæÍcîܹ2¹’$é•âììÌœ9s3f îîîT©R¥Ø!‡i$é™Ì™3ooozôèQÒ¡H’$=µž={ÒºukfÍšõBÊî¬ÈÈHþøãâˆEzÅ©T*ºu놣£cI‡"½@`ß¾}œ;wNÖ°¾æöîÝK^^ï¿ÿ~¡ë8@VVmÛ¶EOïõ¾!Ϲsç°³³Sz€K¯¾±cÇÒ²eK222žk‡Â<÷;âСC¤¤¤ðÁG<Ò+lëÖ­9r„þýû—t(Ò Àœ9sV¾PkÔ¨QÒa½‘~ýõW|}}ðññaôèÑ„††ÒªU+ZµjÅÚµkŸë8ƒ&33“ÄÄDtt¿á1jÔ(¸yóf±OqµgÏ D­Zµøë¯¿ŠµìgqîÜ9úõëGçÎñ÷÷/ép¤bRÐÛ944”FkÙÅò“ÃÍÍ/¾ø¢8Š’^acH¯ŸÃ‡3cÆ ÜÝÝ9uêþù'ׯ_—=KˆZ­&;;€eË–ñé§Ÿ¢««Ë¯¿þª,x~TÈŸ`>77CCÃ"ËÍÎÎ.r½!„V¢åïïONNN¡}4 *•ªÐZjµ•JUhÒöè9æææ¹ äsTÔë°`ßÿzvÞjµZ«w¸‡‡›6m¢bÅŠEÆûðöòòò^ûÚ½W™žžuêÔ!$$¤Ø,ÙK’¤ÃÔ©SñññaóæÍ888JÍš5K:´7žƒƒ±±±rÿþ}6nÜH¥J•´¶‰ŒŒ¤AƒT¨P[[[ªU«ÆÌ™3•õ©©©Œ;–jÕªakkË[o½ÅÑ£GµÊX¾|9ÕªU£~ýú¬X±BYîããèQ£ÈÊÊ";;ÜÝÝùùçŸqrrÂÝÝM›6)Û_ºt‰víÚaoo½½=}ûöåîÝ»Ïtî;wîÄÝÝ[[[ªV­Ê¤I“”¤rݺuT¯^Š+bccƒ››ʾîî¸€³³3Ÿ|ò ;wîÄÅÅ…Ï>ûŒ>}ú`ooOçιzõ*/^dÔ¨Q°zõj\\\øúë¯éÔ©öööôîÝ[X:77—Ñ£Gãàà€««+óçÏÇÅÅ…Î;?ÓùJ/N:u¸yóf±—[b ÖíÛ· Óú—˜˜XRáhBöËòMvæÌ>ýôSnܸQÒ¡H…Ðh4L™2oooFŽ©,ÏËË“µW¥€——ŽŽŽüú믬]»–ÌÌL† ¢µŽŽ½zõbÍš5øûûcii‰ŸŸŸ’D3†åË—cggÇÌ™36lB­2–-[ÆÐ¡CIHHÀ××W©JLL$!!AÙ>!!ÈÈH¶lÙÂ!C¸qãS¦L %%…®]»rþüyf̘Á˜1c |,Þ'qöìY „Z­fñâÅxyy±xñbüüü077ç믿fÓ¦MüðÃDGG3räH¥v/!!„„¦L™Â{g‡‡™™™$$$°víZÌÌÌðööæðáì\¹€¬¬,”éR222HHHà·ß~£råÊ4kÖŒ={ö°aÃ~ûí7V¯^MÅŠ2d«W¯&!!äää§>_éÅ200xì5_J,ÁÚ¿?+V¬`РALš4‰+VpáÂ…’ G‹‚_~ùå™÷¿zõ*]»veÉ’%´jÕŠV­Zqýúu ÿCF£Ñº_ëÖ­Ÿù˜¯’ôôtfΜ‰««+7&""â…t‘•žßúõë¹sçsçÎ-éP¤Bèèè0tèPNœ8ÁO?ýD‹-«Yttt¤~ýúœ?žíÛ·+Ë/]ºD^^þù'»oĈøøøàéé©UÆ¢E‹˜0auëÖ%--í??«W¬XÁäÉ“qrr"66–ÈÈHNœ8ABBvvv$&&¢Ñh066æÄ‰O]‹µcÇ4 •*U"**ŠòåË(?Œ›5k†¹¹9ýõ‡ÂÄÄ„´´4¢¢¢;¯ 0|øpeYíÚµY²d 'Nòg)ø7o¿ý6?ÿü3_}õÇŽò;@~;nÜ8¾ýöÛ§:GéÕWb7† À„ hܸ1;väÀ <˜f͚ѯ_? ™>}:YYY¤¤¤ðÕW_QµjURRRX¶lׯ_gذa4hЀ¬¬,–,YBpp0-Z´ F4hЀŋs÷î]ìíí©W¯¿ýöfff :” pìØ1ÂÃÃ9räM›6eèСèéé¡V«ùî»ïˆŽŽæ«¯¾ÂÉɉyóæáããä€xzzRµjÕBϯAƒʯ©Õ«W3räHöìÙCrr2BbbbðóóãÎ;|ôÑG”)S†‹/2bÄú÷ïOZZkÖ¬¡\¹r|üñÇÔªU‹}ûöq÷î]vïÞMݺuùꫯÐÓÓãâÅ‹,_¾œääd|}}©R¥ þù'Û¶mÃÛÛ›^½z‘ÍôéÓ•ÛãÇ9OôÿËÌÌäàÁƒ‘””ÄæÍ›•u“'O–m·J¡ÌÌLöîÝËðáÕ/0©ôéÓ§3gÎ$))I+Q(Hÿþý©]»6ï¿ÿ>÷ïß'""‚ŒŒ rrrÈÉÉAWWkkë"Q¯^=à+gff¹­™™NNNùµ=éééʾgÏž iÓ¦@þ<–*Txâs~ðàwïÞUÊjÕª•ÒŽjÚ´i¬X±‚öíÛÓ¨Q#Ο?OJJÊcq¿óÎ;EžkAYYYYÿKÁöŸ+ü¯ \Áœw&&&O|~Òë¡Ô´¼+H86lØÀ/¿üªU«6lS¦L!((sssFÅîÝ»™6mÍ›7§ÿþtéÒE«wáÂ…têÔ‰þýûS«V-|}} ¢fÍš$$$°bÅ RRR2d[·n%""‚uëÖ±uëV-ZÄÚµk0`§OŸfÑ¢E!øî»ïظq#AAAÄÄÄP±bE–.]úĽå:vìȘ1c8xð  `Á‚ôêÕ RRR°°°`æÌ™,Y²ÈŸDºM›6ܽ{—Ï>ûŒ7BPPË–-cüøñáááÁ¨Q£X¿~=+V$++‹½{÷röìY–,YÂwß}ÇñãǹuëUªTaúô餤¤¼˜'ñ†sçÎÈáÇ ý ÒÕÕÅÃÓ'O¾”˜¤ÿ&„`Û¶müòË/dff{ÃO©xYXXðÍ7ßÂ{ï½÷ØÐ5)Æ ãƒ>Кš«L™2Ô¨QƒÐÐPeÐÅû÷ï£R©xë­·”íþ­1ú£nÔþðß 4@GGµZŸŸUªT!&&†Ý»wkëQ)))ZM6\\\hÔ¨+W®¤B… ,[¶ sssBBB”¹\÷ìÙÀìÙ³IMMeöìÙ…–]Ø\™çú¤Ó§l÷èöMš4áÔ©S,]º”2eʰhÑ¢'*Oz}”škÏž=|ôÑG”-[–¾}û2zôh† †«««ò¯R©HMM娱cøùù¡R©pssãôéÓüõ×_ÌŸ?Ÿ²eËÒ¾}{¥ÜfÍšQ»vmÂÂÂðõõE­Vsþüyå ÿÃ?ÄÜÜœ¾}û2~üx €›››RÕ ä@P³fM:tèðÄ:mûá‡2vìXêÖ­Ë—_~‰………Öú .°mÛ6Ôj5gΜQ–wéÒ333ÞyçΟ?Ozz:žžžJÃVþøãÒÓÓ=z4ÉÉÉœ>}šnݺ1|øp>ÌçŸއ‡Ç?7O+88˜;vpúôéÿlo`kkKpp0!!!!¸|ùò ‹«¸YܸM/ IDAT[[Ù£èUͬY³ˆŠŠbôèÑÌœ9“† –tXÒx¸}Ü£ºvíÊï¿ÿÎèÑ£ñññ¡V­ZZë.\Hß¾}Yºt)K—.òµÿ[Òó,œ™—/_ÆÖÖ–+W®(m®–9s&›7oÆÔÔ{{{å¶Tdd¤òÁ¸>ÿ²)hüÖ®];üüü8uê¿ýö_ ,„(²k³Z­Æßߟ¶mÛj-oÖ¬GåôéÓ|úé§ìÞ½[«‹ïìٳٷo€Ö—xA\:::h4êԩï¿þªUvýúõ±··§cÇŽZË÷îÝKTTÝ»wçܹsdee¡«««ÕX9//ÜÜ\ŒÉÌÌD__===ÒÒÒžhœ›Ë—/+]·ŸDll,ï¾û®Ò…üß¾(JµZMŸ>}øä“OJ:”bÏ!ChÞ¼9ë֭㯿þÂÉÉ©ØÇ7’žßG}D:u°µµ}l]£Fرc‡r[×ÓÓ“Ž?Nݺu144äÆÊ€À 4àï¿ÿæôéÓÄÄÄ`ggG“&Mؼy3jµZI jÀëÔ©ä7ÈÉÉ¡L™2èèè°cÇ­! ~þùgýôSz÷î͸qãØ½{7ÙÙÙôèу¸¸8Nž<‰¡¡¡’|Ž7Ž÷ߟ÷Þ{O)ïÈ‘#¬_¿&L˜@Ë–-ù裨W¯‘‘‘ÿYm^»vm¦OŸÎÑ£G äôéÓ¨Õê"··±±!&&†Ã‡Ó¶mÛǺ‡—V/» Û‹&„`Ú´i4jÔˆ5kÖ R©ÈÎÎ~¡“™KÏÎÎÎ;;»Bו+WŽ·ß~[k™µµ5:uR$ŒŒŒkØÿk#U àn@GkÂ=nýúõ+³`ˆ†ÿbiiùXyªY³f‘Ã…<¼îÑ6„ äì­­µ>kŒŒ´Žÿh<¶¶¶Z ®©©©ÖúÔÔT6lHÓ¦MIHHàüùóòùçŸÿë9I¯O°žhÙ²edffj}¨ÛÙÙ±eË­û·ß~›·ß~›¬¬,¥a¡¥¥%þþþ¨Õjºwïλヒ……[·nUÊúâ‹/xðà&&&Z‰Â Aƒèܹ³Vm×”¿ƒ‚‚”¿´Þ QQQJo“µk×Vn+>jÛ¶mL:•äädLMM•¤‡¯E‹-HKKÃÔÔT‰õáÁ\{öì©üíëëKvv6yyyÊ9øûû“––†žžžrݺwïŽJ¥R¶IOOÇÛÛ[+>///¼¼¼´’ÂG{ßü¼½½ñööæÞ½{ìÛ·ÀÀ@e<™‡ÅÆÆ’ššúÄeK/Æúõë¹ví'Ož|â¶'’$ÍÔÔ”1cÆ‚™™­Zµ¢_¿~%·Òë«Ä¬G=ú‹¹~ýúèèèúKº ¹¸wï&L@__Ÿ#F`iiYhùÖlÙÚÚ¢««ûD=<¦OŸŽ¥¥¥Ö/½çé¾þp-ZažæÖŒ¡¡ác·)ÝÿÑs_¾|ù—ÿ¬Ê—/OÏž=éÙ³'QQQLž<™¸¸8­ñÁöìÙóT=ˆ¤â¥V«Y¶lóæÍSjf%Iz>úúú|öÙg%†T‚J]‚õ¨Go­ÅÎÎNéIø4Úµk÷ÄÛ~óÍ7O]¾ô?NNN¸ººÒ¼ysúõëǪU«øã?˜2e .,éðÞX‘‘‘dgg?Õ{A’$Iúw²;ƒôÒ©T*¼½½Yµjñññøøø(ÓKH/_HHo½õV¡í%I’¤gS,5XAAAEŽ3"½9þþûo¥Ï“211¡_¿~>|øÅ%ý§1‹¼$Iқ÷Þ{œœ¥«¬ôæHOO×j»V­Z5Ú´iS‚IÏ"%%ENU$I’TÌž8ÁR©T…N†èààÀ¨Q£Š5(©ôKMMå»ï¾{¦Fþ²—Úë/##ƒ½{÷¾ T_7:::´k×N«“Jrr2·oß.Á¨Þ<Õ«W×z„DFFÊ×ðkÂÜÜü¥w¦zâ«R¥J?~üEÆ"½BÖ¬YÃÉ“'¹{÷îS½hãââäÈào€ü‘%K–È9 Ÿ@bb"&LÐþ¥`0Néå6lßÿ½òxáÂ…øúú–`DRq211áï¿ÿ~©IÖ'Xžžžøúú†««ë‹ŒIz$Û{öìyâ9###¹tésæÌy‘¡I¥@ff&žžžüðÃ%J©7bĈÇ&!NHHàÇ,tðO©ø-\¸ÄÄD­eqqq´oß^ö ¤¥¥Ñ¶m[îß¿_:¬æÍ›ÓµkW|||˜0aîîîrN¥7Ttt´2ðè®]»þ3ÁÒh43sæLÞÿ}e SI’Ц§§Wä\Rñ*ê»L___N%=³§jä¾|ùr|||øâ‹/066~í&º•žÌÃ8ß¼y“Î;ÿëÁÝ»wÉÈÈàã?ÆÏÏïe„(I’$I%ê©,ccc~þùg&L˜ÀÙ³gIJJzQqI¥”â±yøjÔ¨¡ÌY˜òåËãææVäÜi’$I’ôºy¦alllèСCqÇ"½Ž=úX[… .°{÷neNEI’$IzÓ•ú©r¤ÒeÕªU-KJJb×®]tìØ±"’^g·oß~lÎ̦M›Òºuë§.+$$„›7oâííýÆü8~ü8iiiÊc]]Ýg«N­V“œœŒ‰‰I¡ó¾H.\`íÚµ 8Zµj½Ôc—&ÑÑÑ\ºt‰û÷ïS«V-êÖ­Kvv6“'OÆÃî]»Ëq"##Y²d ]»v¥qãÆÄÆÆ²k×.®]»F—.]8|ø0†††Œ=ºXŽ÷:{®ëúõëDDD ÑhŠ+©ËÉÉaýúõ…®›3gŽÖäÛßp´Zµj899½Œð¤×йsçØ´i5jÔP†|xÖ†ß ,àÂ… ¼÷Þ{Åb©%„`ܸqddd §—ÿQ_½zõgJ°N:ÅÈ‘#™>}:}ôQq‡ú¯îÞ½Kvv6–––/õ¸¥…Z­fþüù ««‹µµ5qqqrÿþ}vïÞMíÚµ‹íx×»\¹røøøOïÞ½qpp >>þNtŸÆS'XyyyÌ;—Ù³g“œœŒ………òæ•^oÙÙÙdddºîÔ©SôíÛWkÑ‚_½æææ|ùå—Lœ8ñ©9ŠGHHÓ§O§zõêÊòððp~øáBBBpvvfÔ¨Q4nܘ#GŽ0mÚ4’’’°µµ¥S§N 6Œ‰'äÏ>1jÔ(®_¿ÎÞ½{Ù¾};iiiôîÝ›.]º0|øpˆåÊ•ãÔ©S>|˜5kÖ°eË’““iÑ¢ß|óÍc?*J“[·nñàÁ:wîÌ”)S´Öýõ×_:t•JE»víhÞ¼9ßÿ=7oÞD__Ÿºuë2hÐ ÂÂÂX¼x1?,ËÍ›7éÚµ+‹-âƒ> I“&¬Y³†ÈÈH|}}9~ü8{öìÁÛÛ›½{÷òÁP¯^=V­ZEXX5jÔ S§NØØØ°páBÌÍÍéׯ 4ˆ5kÖ·o߯Î΢¢¢øóÏ? ¥L™2tëÖ&MšpïÞ=V­ZETTõêÕ£sçÎJ‚ðª[ºt)Ë—/§cÇŽ|úé§T¬X‘ÐÐP8uê5kÖäÞ½{üüóÏܽ{333š7o®$ÃàØ±cÄÅÅQ±bEÆŒƒŽŽ›7oæŸþA­VÓ¼yszõêEtt48991~üxΟ?““DDD`llLÍš5ˆ‰‰aݺuܾ}www:uꄉ‰‰RnëÖ­Ù¶m£Gæüùóœ9s†{÷îáààÀĉ_û‘ž*3JKKÃÓÓ“¸¸8ÆŒƒ»»;/*6©”3f 'Ož,rý Aƒ«¦NMMåܹsüòË/lÙ²…#G޼6|Ò‹W`uéÒggg,X@ß¾}iÖ¬«V­Â××—ü‘7beeÅ‚ (S¦ ?þø#‹-¢W¯^´jÕŠ;wÒ¦M:uêD5øý÷ßÑÕÕÅÀÀ€bcc±±±!==àà`Œøà®^½Ê€¨_¿>Í›7ÇÏϬ¬,†ÊæÍ› %<<gggnݺŷß~ËØ±c166æêÕ«¯}rO™`}þùçdgg³~ýú—~^*Y÷îÝãôéÓÿºM``àc_8eË–¥U«V4k֌ѣG3lØ06oÞü"C•^†ððpùä“O€ü6_.\à“O>!99Fƒ‚C‡qôèQ¢££ÉÈÈ@WWccc hÙ²%o¿ý6yyy\½z•V­ZðÏ?ÿù5aaa!èÕ«ü1ßîK¥R±páBeꔂ±àJ«‚ùak×®¹¹9,[¶ŒòåË̓P«Õáææ†™™ 66€û÷ïÓ®];T*ÎÎÎ|ùå—Ê`Á®®®¤¦¦­¼÷CCC166fÍš5XXX°téR¢££qssãÊ•+èëë+›››“””ĺuëpss#11‘7¢Ñhèׯ $&&*‰\JJŠR‹Ò¥Kš7oÎŒ3HJJ¢F\¹r##£×fÖ‘[·n‘M‹-´æ}-B¥J•055ò²]»v‹‚´´4tuuÑh4âééÉ!C000 %%…»wï²uëVÚ·oO×®]ÉÍÍåÚµk´iÓ333ªU«Æ‰'øê«¯¨P¡3gÎäôéÓ¸ººòí·ßòàÁŒŒŒ ÃØØ˜ãÇ3pà@"""pttä÷ßGGGG™6kÓ¦Mxyy1|øð—})KÄ'Xááá¬ZµŠ 6Èäê ´wï^Ôj5îîîÔ®]]]]V¬XÁ¸qã¸qãgΜQ;::>¶¿‘‘S¦L¡gÏžœ9s8 éUrýúu²²²pss£]»vÊòÇ0oÞ<*V¬HNN©©©œ?ž¥K—âëëK»víxï½÷°µµEWW—ððpªV­ äqåää`kkKJJ Û¶mÃÐÐ'''Ö®]  $_jµ]]]5jÄôéÓˆ¥Zµj/ëR<“ttt˜6meÊ”àÊ•+h4ÜÜÜpww M›64iÒ„o¾ùF©ùÙ½{7ááḸ¸––Ftt4ݺuSÊ £\¹r”/_ž 6ùÉVNN‘‘‘´nÝZ¹»£ÜŠ444ÄÝÝ]¹µjaaÁÕ«WÙºu+~~~Œ?žßÿvíÚQ±bEŽ= ü¯ÆfÅŠlÞ¼™]»v1zôhöíÛGLL FFF´mÛ•JõZÝY)ø® #//===rssIMMÅÜÜœˆˆ¼¼¼ÈÉÉá³Ï>ÃÅÅ…‘#G2oÞ<¢££qvv¦L™2¬ZµŠíÛ·³uëV"""`„ ÔªU‹ÀÀ@fΜIÙ²e©Zµ*yyyZ5dåË—WF? ÁÎÎ bcc±¶¶æÝwßÀÝÝ"##ÉÉÉ¡C‡J-U›6mX´hþù'$&&*ï¥×Ù'XÇç­·Þ¢R¥J/2©”JMM% @yã]¾|™•+W*÷ø…þøcúöí‹‘‘+W®dÿþý¤¤¤àâ₎Ž¡¡¡èèèàââä÷¼ëÝ»7K—.eôèÑh4îݻǡC‡^Ö¥x&¡¡¡T®\YI® ¿†ÎÑÑ‘ .`ooOrr2÷ïßçÃ?äÊ•+”)S†#GŽpäÈåh4 8tè™™™Ìš5 ###RRR1b/^ò_äåå)mtÚ·oÏÖ­[9|ø0®®®„„„(=Ž-,,ˆ‰‰¡mÛ¶8;;+c+8P9‡‚²W®\IHHŽŽŽ”+W}}}¬­­iß¾=ÇŽãøñã888ðÏ?ÿ0jÔ¨—q‰_8{{{¼¼¼8pà^^^Ô¬Y“ÐÐPüüü011!77—5jpçÎîÞ½‹µµ5»víâÊ•+TªT‰2eÊ0räHªT©‚¥¥%FFF4iÒ„þù‡… R¯^=*T¨€¾¾> 6äĉ€ö-Èzõêÿ«Q.h¯×®];æÍ›Gpp0æææœ={–Ù³g+sh¼4 }úôÁÍÍ ôôôhÒ¤É˾”%≬åGzóÜ*)ŠJ¥z¢)pœœœ¸téÒSÛ¶mÌ;WëË¢$i4nܸÁÙ³gKäøÙÙÙ4mÚ”Ù³g?W9ñññ¨ÕêbŠªx5jÔˆåË—k5n¨\¹2ÇŽãܹs¤¥¥áì쬴ÑÙºu+wîÜ¡N:\½z{{{¼¼¼Ø·o·o߯ÑÑvìØAxx85"<<\iØ¿zôè¡Õ[qÔ¨QtïÞàà`LLL”/Ò*++‹>}ú(×¥€J¥" €Ã‡Š­­-}ûöEWW—ùóçsðàAêׯ‹‹ ÷ïßWÞoþþþœ={V©7nÕªU£R¥JôèуÐÐP\\\ˆŽŽfäÈ‘J­ 4‚?räéééx{{óÎ;ïùsÜÔ>™™™1räHÊ—/¯<çÕªUcÔ¨QT­Z•û÷˜HRR;w¦yóæèèèо}{¥¶+;;›N:•úççiÌ;—]»vqéÒ%tuu•N7oÞdäÈ‘´lÙ’Ê•+ãççÇÅ‹ñööÆÆÆFعeË–DDD››ËŒ3hÒ¤ ‰‰‰4hЀ„„jÕªÅСC±µµÅÞÞž‘#GR«V-233éÛ·/uëÖ ##ƒAƒѰaC ÿ}âââÂÉ“'Q«Õ 8Ê•+sçÎFŽ©ì———G»ví¸yó&,Z´H©=}Ý=q‚¥V«•v ’ô¬ôõõÉÉÉyêýøàƒÇŽ·råJÊ–-ËöíÛÑÕÕ%99‚‚‚زe ?.HXX={öäèÑ£FFF:tˆ¸¸8  ¼·ß~µZ«««2 axx8ÙÙÙìÝ»—¸¸8eеGMš4‰ªU«rèÐ!V¬XÁÉ“'YµjMš4!33OOO>ùäÔj5­[·¦zõêüðÃDDDpðàAŽ;†±±1¹¹¹x{{+c{\½zµZÍþýû•XSSS9tè©©©,X°wwwþþûonß¾ƒƒ3fÌ ++ }}}nܸ¡ ЩS'%Þ0pà@Z´hAµjÕX½z5U«Vå×_¥E‹/îÉ‘^K–,!77???üýýùî»ïˆŠŠbéÒ¥¼õÖ[%á¿KNNfüøñ4mÚ”¯¿þš¤¤$233µ¶‰E£Ñààà , ¡ZµjJonn.QQQJwõ‡ÅÇÇO¥J•044d÷îÝlÚ´‰Ö­[“˜˜ˆ‰‰ ³fÍRÆÍ‚üIÍïÝ»GµjÕ”Ûª©©©œöíÛãééÉ×_Íüùó±³³ãÛo¿%00]]]&¢ R IDAT,--ùá‡hذ!3fÌ 00zõêñÏ?ÿ ¯¯Ïž={”K»lllHNN&88˜ŒŒ .]ºDÙ²e©P¡†††äææ²páBöíÛGNNmÛ¶eüøñ@~WýððpT*µk×fÖ¬YX[[³cÇÖ­[GDDffføúúÒ¸qc:uêD‡øôÓOùõ×ÿcï¼£¢ºÚ·}ÍÐĆ X@4 bÁ5‚ "v¬Ä[ÀšÄ}#vågï {¥ ˆR¥¨ˆ€þýÁšý1QÔ¹Ör9³çœ³÷ gæ~ü8)))L™2…fÍš@zz:çΣuëÖtéÒ…5kÖÿ¿¼;11‘¸¸8*V¬ˆAAAèéé¡¡¡AÛ¶mñððÀÞÞž·oß’››+‚¶®]»²oß>‚ƒƒQUUåúõë¬[·NnÌ2; nܸ!îìUUU‹%ïDÁ—MA+ÉÉɘ››SµjÕRÕ£mÛ¶4hЀC‡qèÐ!~øáV­Z%n²Ø·o!!!üöÛo ©©Inn. 4àîݻ̛7+++&MšÄ’%Kزe Æ cÆŒDEE±sçNš5kFLL 5kÖäèÑ£èëë³uëV”••qvvòÅ7oÞŒ‡‡‹/¦K—.XXX°{÷nš7oNpp0***Ìš5‹›7o²zõjBBB¾ˆ+;;›ððpÌÍÍyõê~~~\¸p‰'âää$¤,X€k×®%66–E‹ѱcGš5kƘ1cøî»ïÆÁÁ#GŽ`gg‡““:ubÕªUDFFR»vmBCC‰¥Zµj\»v´´4´µµ9|ø0±±±Ü¹s‡±cÇbddÄðáÃÑÕÕeóæÍlÚ´ '''ºtéÂæÍ›‰ŠŠb×®]¢Ò[‚²H™ °Ú´iCÆ )_¾<šššÊ)/_¾œË—/Ó¼ysêÔ©CVVÊÊÊhii±nÝ:nß¾¶¶65jÔ`É’%annŽžžžøRÄÒÒ’Ê•+K‹-˜?¾X>122bÍš5B9òs<.\¸ÀÇ™?>]»vE*•Ò°aCtuu…_µjÕøóÏ?¹sç?þø#Õ«W"†;wF__Ÿ°°0bccÙ³gXÚ?~¨««³k×.Ο?Oll,Ó§O§bÅŠÜ»wÐÐP9ýùÞ\—.]âîÝ»èééÑ¡CªW¯.rì*UªT¤ÇWAÞ¾}KJJ šššrⓟBjj*gÏž%&&†–-[ÊiÏ|,W®\y§ðé±cÇxòä S¦L)$ÜYÖÐÔÔÄÝÝ]¯xyyqöìY¾ÿþ{BCCÑÐÐ`òäÉ"]VéÛ°aCΞ=K^^ׯ_&Ç<~ü˜   úöí+ô” IJJ"!!®]»Š¿oHHšššT«V ´´´èÛ·/iiideeñæÍÒÒÒˆ‰‰¡G4iÒ€2¿+C&>ibb‚D"aíÚµüðØ˜˜——Gƒ HNNæÔ©S¨©©±hÑ"aüèÑ#ÔÕÕ9xð AAAâF¯|ùò¨©©ahhȉ'¸xñ"Æ £}ûöÂâÈØØ˜œœ‚ƒƒiذ!€TW­Z…®®.ÇŽ#!!ŒŒ ¦NÊëׯyýúµX¢=}ú4ƒ ¢S§Nüþûï¥òù)Pðo”©«(A´‚¼OLîŸBxêÞ¥êkhhøN[(,º¦¡¡QHì (2aØÜÜ\T×ï¿ÿŽŠŠ ¯^½âÆtîÜYˆªªªÒ¡C¡rü.ôõõ2dˆ\[Aa7ù<|ø¦M›ùŸYtt4NNNüòË/xyyѧOöìÙðaÃÞ{œ 6ðË/¿påÊ•bùœ“““ùî»ïÐÓÓ£víÚÜ¿ÿ“¬¼¼<Ö¯_ÿÞm®_¿ÎÈ‘#iÖ¬‹-*“³,999ÌŸ?KKKa$•Jiݺ5•+WFMMvíÚ±hÑ"^¿~-¾C¿ýö›°v¹ÿ>Ÿ_Ù¶m[~ü333ÆŒÃÛ·oñññaãÆlÞ¼RRRØ»w/W®\aãÆ¸¹¹1|øp>|äÅGŽáõë×â:$$SSSqNÊfaçÎK³fÍÈÍÍåÙ³ghjjbkk‹¹¹9ÇŽcÇŽ˜››ù»¬@AiS¦¬oÞ½{sÿþ}ÔÔÔ2dˆÂôø3²bÅ ²²²ˆGCCƒ—/_’™™Éµk×X¼x1ûöí#,,ŒéÓ§3gÎ?~Œ††;wfܸqœ>}šM›6°fÍÚ·oÏäÉ“ñòòâСC¼}û–ˆB„={öàëëK\\†††¸¸¸¾uww'))‰íÛ·ceeU,ÞÞÞ„‡‡¿w›&Mš`eeEçÎˬa{RRwïÞåäÉ“H$LLL˜={¶HfŸ:u*»ví¢U«V(++3hÐ ,-- ¦N:¨©©aeeÅ_ý…ƒƒ™™™hii±råJ455™0aû÷ï§{÷îT®\™óçÏÓ°aCš4i‚»»;=bÑ¢E¼zõJÛŒ?ž¥K—Ò»wo444˜;w.={ö¦Ð²íBCC166þbtÅd–‰‰ :::ÂXYæÅhbbBùòåéÝ»7§OŸæÑ£G¼~ýšÊ•+³wï^þôÓO$&&Šc­\¹’«W¯R½zuÂÃÃéׯåË—7³–––"P6K'–$eÛ¬_¿ž%K–P¯^=bbb1b™™™Ì˜1ƒúõë‹Jí.]º”äǦ@Á£°J˜Ί)ø|¨©©‘‘‘AÓ¦MéÛ·/³fÍ¢zõê„……‘€ºº:7¦N:<}ú”ZµjÑ®];NŸ>ÍøñãiÙ²%ÙÙÙÄÆÆR½zuj×®¡¡!ÎÎÎ8880{öl±±±áþýû¼zõŠ#FàääD»ví¸~ýz¡à*;;››7o0{öl,,,xùò%K–,ÁÑÑ‘zõêýç÷™••ņ Š|MSS“ž={bee%.peY3MGG‡S§N½óõ‘#Gi»qìØ1ñ¸B… ïœÍ7nãÆ“kSVVÁ’Œ‚~™Íš5ãàÁƒ…Ž5lØ0¹ÙϲnþüO D= > >œþýû‹œÕÿýïLœ8‘   ´´´ÄŠ€ÌŸð»ï¾#==]_“'OÆÂ‚¬¬,ÌÌÌDzÆÈ‘#155¥\¹rèéé©©)‰„mÛ¶Éô¨««söìYîÝ»'ª=MLLÈÈÈÀÅÅ…ÄÄDŒŒŒ„A·eE€¥à«eéÒ¥T¯^www\\\pww'&&†öíÛ“——‡™™™0K¾sçÙÙÙìß¿_,%%%ѽ{wRSS±²²ÂÉɉ´´4Œ††Ïž=ãåË—@þ ’,8Ú²e ÖÖÖÌŸ?¿Ð˜Æ‡ŸŸëׯÇÞÞžQ£FQ»vmŽ?.§Eô_8pàqqqâ¹T*¥M›6ôéÓ‡öíÛ£¬œÿ5ŽŽÆÓÓ“¸¸8.\øQ})øzxW0/+º)HÍš5å$1 ?-hê,CWW·Èåg©T*7c_p›¢R?¤Ri¡ôŽråÊ)fý|1”©ëúõë"Q´ 2)…ÏųgÏX·nAAAtîÜ™©S§~¶¾þIBBwîÜÁÌÌLüà :”:uêð¿ÿý¯ÄÆñµ‘˜˜ˆªª*³gÏföìÙôìÙ“ .ššJNNÑÑÑBV#;;›~ýúQ·n],XÀÂ… ÃÌÌLÉÊ’¢HOO§S§NââÒ§OÌÍÍ©S§>>>ìÞ½¢££åf>òòò8vì­ZµbÒ¤IDEE±bÅ ¤R)§N•«ÿ…ׯ_ ±Y===¬­­éÕ«—˜•xõêgÏžÅÃÃCä&)i(P àóS¦¬èèhž={F||<‘‘‘Ô­[­òúTÖ¯_ϵk×XµjU¡»´ÏëÖ­cçÎèêê’••Eß¾}‹t¤Wðá9r„Y³fѪU+ÒÓÓ¹|ù2S§N¥J•*$%%¡ªªÊÑ£Gyóæ K–,!:: öïßÏ•+W¨U«U«VåñãÇ@þ9’ÀŸþIëÖ­¹~ý:¦¦¦¼~ýšðÓO?Ñ®];Ú´iCÍš5QQQ)”"‘H°±±açÎX[[“œœ,Úÿ«A¹ wwwÌÌÌ2díÛ·G"‘ÍùóçñôôN26l¨¨4U @‚ LX `À€¸¹¹‰££#Í›7gß¾}X[[Ó£GaTëããÃÕ«WÉÉÉÁØØ˜Ù³gS§Nöïß»»;x{{£©©Éš5kÐÕÕeË–-øúúòôéSªV­Š‹‹ ëÖ­ãÒ¥K())±`ÁvíÚÅ‘#GpwwçåË—´nÝš‰'¢§§‡‹‹ .\ K—.œ8q‚5kÖ°`Á IKK#<<œqãÆÌ¥K—èÑ£$&&2iÒ$âââ(_¾<-Z´`ñâÅ?~œmÛ¶åjsss8ÀÌ™3|®ýû÷“œœ,Æ¢¯¯ÏúõëñõõÅ‚3gÎP£F Ö¯__f“—KKKK233 §jÕª¬^½ZTkjiiáççÇùóçÑÑÑ¡fÍš:tˆ¿þú‹¾}ûbdd$f›6mÊ©S§ O§NâÔ©S\»v ~úé'rrr8p <@UU•ãÇÓ©S§BãZ·n½zõâüùó´oß777>Lppp‘Ûÿ#FŒ`ìØ±@~©»§§'>>>béòŸµü£@ ŠŸ2`ÉùÉr‰‹‹ãñãÇLš4 333¤R)ööö$$$`ooÏÁƒ™3gŽØVII‰^½z±{÷nþþûoš6mÊÖ­[™8q";wb€:tàâÅ‹ôìÙ“îÝ»sîÜ9V¬X mÛ¶eæÌ™hii1mÚ4®_¿ÎÓ§Oyýú5S¦LAII‰˜˜$ cÇŽeáÂ…8;;3cÆ ¢££9|ø0S¦L!''‡¹sçR­Z5¼¼¼Ø´i={ö¤y󿍫«£­­ƒƒzzz¢­fÍšœ9s'''úöíË?þÈÌ™3ÑÐÐÀÑÑ‘ëׯ‹²åŽ;ròäIi×®]iþéÊ L™2寷oßžöíÛ‹ç666ØØØÐ±cG¹m{÷î-g®­­ÐX’1}úôWùòåéß¿?ýû÷m2- !%%…M›6qõêUQÉõ>222ä”Þ!ÙóÁƒ=zT®=&&æ£ÇU¹¹¹øûûËͨ}khii}’ÔGzzº\¾‚ÿŽ’’½VV¹¹¹Å8"ÅŠŠJ™(~(“VXXÕ«Wž^¡¡¡Ô¨QƒÅ‹#•J‰ŽŽÆÃà  RSSÉÍÍ37aaaÔ®]›É“'súôi _øSKK‹*UªàææÆÉ“'7nêêêBXÐÜÜœ–-[2bÄ*T¨€££#¹¹¹¨¨¨Jff&‘‘‘4mÚTØDxzzˆå¡ÜÜ\,,,èׯ¾¾¾T¬XîÝ»ÇÑ£G çíÛ·@þ…¶Zµj$''Ó¶m[Z·n-Ư®®N­ZµX¸p!êêê̘1‰D‚šš¡¡¡dggóðáC1Þ;vù98 ¾²³³Ù±c^^^lp|éÒ%QÅ(#%%…'Ož$×^Ü‚™§NbÑ¢Eèëëëq¿$bbb8yò¤œÇáaæÌ™œ?¾˜Gõí±jÕ*a­ö_¸té“&MRXe Ö®][ÚÃ({Vbb"ÉÉÉ¢z$))‰ÄÄD $"Ò 6p÷î]:„··7Ë—/§~ýú¤¤¤ÀÀÿ?V¿~}rss…²°››Û¶m£{÷îrþ‡—­©©‰’’^^^dffÒ®];"""ÈÉÉ‘3T–Yû´hÑ‚°°0òòòÄ2Txx8&&&¤¥¥±|ùrÚ´iƒ««+ŽŽŽ\½z•zõêAnn®œØiXXõêÕC*•’““ƒ††***øøøžžN»ví„O¢¬ò&,, j×®ý¹þ, Ê ÊÊÊÌž=›_~ù…‹/âééÉßÿýÞ`ËÆÆ¦gåìÙ³iÚ´) ,kß¾};Û·o/¶ñfdd`bbÂÝ»w‹í˜_‰„ŒŒŒÞ?!!Õ«Wš=UðátéÒ…øøøÚ÷Ñ£Gb5DAÙÄÛÛû£+²‹›2`É‚Y®È?ŸC~5Vrr2S¦L!55È¢þ,Éòo´´´=z4™™™T®\™ÄÄD±|†––ÚÚÚ <'''z÷îMbb";wfðàÁb6LvlÙ¾ÚÚÚhkk‹ebccyõê•° ÈÉÉáòåËØÛÛóðáCªW¯.ŸUTTpssãúõë,Z´ˆ„„±D5xð`þüóO1ssslmmñöö–ûL>>xxxˆïCA¢££Kzˆ ŠuuõBZ >œO]:ªP¡‚PïWPö(êw¯´(s–±±1nnnb6¦^½z¸¹¹Éù§-Z´ˆÀÀ@ôôôPRR¢s¸¹¹‰Ü­É“'  Å‹²²2fffT®\{{{± €••?þø#wïÞ¥Fb™ä‡~ÀÍÍF‰míííQUU C‡S¿~}ÒÓÓqssÃÀÀuuuÜÝÝ…õÆãÇEŘ––žžž„‡‡S¥JTUUqss•Œ½zõ¢C‡ܾ}[n,ßÿ=nnn"wç÷ß¶"ß:›6m"00eË–¡¡¡Á½{÷X¿~=}ûöÅÒÒ²TÆÊíÛ·éÞ½»ð¤,.~øá „‹‹ }úô¡oß¾ 4ˆAƒ…‡‡ÞÞÞâŽýÚµk¼yó†Š+ë8(P @|x¡öŒŒ <==™8q"d÷îݤ¥¥‰ÙT (PðùPX ¾d³Uìß¿_XÈÈ–]¯_¿ÎªU«hÕª•ЬªX±" <}úkkkV®\ÉèÑ£E5è7˜={6–––ôéÓ‡µk×’››Ë©S§èÝ»7qqq#•Jiذ!ÇŽ£eË–œ={SSS*T¨@NN]ºt¡G¤¦¦âããÃÛ·o6l˜¨v ã_½z5“'OþO£¶¶¶hii½óõdz~ýzúôéÜ9sHHHøŸ®‚/ääd’’’äÚ^¼xÁ«W¯äÚâããIKKÏsrrˆ‹‹#33S´½}û–øøx9I‚7oÞ:wRRR õ™˜˜(×g^^ñññ¤§§‹¶¬¬,âââätÑÒÓÓ‰—3$ýú5ÏŸ?/ô>eN2ž?Îëׯ)-^¾|ÉêÕ«å* ###Y¶l™œù7prrâÒ¥K¢ÍÃÃeË–É%hïÞ½›åË—‹Ô‚ÌÌL\]]qqq•¨III¬\¹RHõ@~qײeËäLÓ¯^½Š““W¯^m'OždÙ²eDDDˆ¶íÛ·³bÅ RRR€üsÀÅÅWWWñwzþü9+W®dÏž=b¿ÐÐP–-[†‡‡‡h»téNNNr²0GeÙ²eDFFж-[¶°råJñ·KKKÃÙÙ™õë׋Šè¸¸8V¬XÁþýûßó({(,_ ²eìØ± 2DT|6oÞœœœìííÉÎÎæéÓ§ØÚÚùùk²ý¬¬¬Ä±6lH¹råøõ×_ ÃÅÅÈ¿P¨««ãëëK@@ׯ_çСC$%%áééɹsçøá‡X¶l±±±Ü¹s@,ËÉ.&L €+W®àëë‹••(++Ó«W¯ÿüÞÕÕÕ3fÌ{·©T©#FŒ`Ê”)Ešñ*ø²yñâ:::èêê ‹§7n ­­M:uĹ·sçNôôôèÑ£‡ØwΜ9èëëˉåöë×===6lØ Ú4h@µjÕ¸pá±ÕÕÕEOOOR\ºt ¹ŠëM›6¡§§Gß¾}E›ƒƒúúúÌž=[´õìÙ===9yºu뢫«Ëµk×xúô):::èëë‹ ËÏÏ]]ÝBæÐ%‰¿¿?¿þú«¨òˆŠŠÂËË‹¿þúK´ãåå%'Wråʼ¼¼xøð¡hóóóÃÇÇG|®oß¾ÅËË ‘ÚðâÅ <==åă=z„———/_m÷îÝÃËËKNëîòåËxyyÉ;gÏžÅÇÇG´iiixyyáíí-òçÏŸãá៟ŸØ/""///¹îÎ;x{{,Úþúë/¼¼¼„ˆq^^ÞÞÞøøø¡äׯ_ãé鉷··ÐŒÇÃÀ€ ÿ†QöZY¦Ì%¹+Pð±R¡B!_Q0ÿJæÑwåÊ,,,ˆŒŒ¤|ùòÔ¯__Ü]̹’U›^½z•9sæˆÊÔI“&qâÄ ºwïN5 Âßߟ¥K—âîîN:u¸ÿ>  zõê#‘H:t(ÞÞÞlÞ¼™îÝ»ãêêÊ¥K—HHH qãÆtîÜ™ÀÀ@4hðѾ„ÖÖÖ8p@\\ bddÄÊ•+©Q£ÆGûs‘““ƒ³³3—/_FUU•©S§Ò¦Mz÷î-¤Q>†OÝÿK¤jÕªÄÄÄ •J…èð÷ßÏãÇ)_¾¼ÈK1bææær3žK–,ÁÞÞ^®xæàÁƒ$%%Éݹs‡´´4QУ££#Ü,ªU«@»v툉‰‘«T;v,=zô jÕª¢mÅŠ8::Ê8q‚ääd9¥õÞ¾}+ÎÝ5jðøñc”””DUnçÎ‰ŽŽÕá³gÏfòäÉE6}.TTT¨S§ŽœÁ»……E¡\Ê‘#G2räH¹¶?þø£Ðñ ÎJA~ÁÓ™3gäÚêÕ«'ètïÞîݻ˵;VXjÉprr*Ô§,eB†¬Ò½ ¦¦¦øûû˵ýÓíò+'Mš$×¶zõj¹ç‰„C‡ɵU«VM.H033ãܹsâùСC;v,£G.ôÊ_l€%¢xŸUUU9™Œ²Êºuëä,úôéCÓ¦MiÞ¼9R©”›7oò×_ѼysâããÉÉÉAII‰жm[á5(cÛ¶m$$$ЪU+ÑÖ¡C  33“æÍ›c``€¡¡!æææ¤¦¦Ò²eK¡Ôݼysâââ ?ö^^^„„„pçÎjÔ¨!Tü7nÜøI2JJJL˜0ß~ûM®]"‘о}û2\Aþ’Abb"‡"==]ÌH¸¹¹ùwè*T <<ccc”•• s2'‡gÏža`` ‚Ó‚¿ 999DGGS§N’ƒ%Ì?+BöR©TNÜò+³ÿ)T\©R%á¦!CKK«ÐRtQÿ l””” õY®\¹B}V®\YI2 e2Šr(”mܸ ‹ °zöìùI6H >œ *ÈÉ+•UÊþ‹àŽú÷ô IDATÉ“' >ü›¶Ü(IâããY³fÜ OYäŸ>ŒuëÖ•³{ÑÒÒË€/:õë×/2€455-tA¾ÍQÏž=åÚtuuß¹´§««[hI®Aƒ…ªùŠ#ù¼sçÎìÝ»WLË«©©ñû￳|ùr’’’øõ×_Ë” mvv6DFFR·n]*T¨äßåð믿òâÅ ŒŒŒ¸zõ*M›6EMMˆˆŽ;Æ©S§X½z5?þø#ÁÁÁ,^¼Xî< `ëÖ­î]»Jë­~vrssñõõý( ˜¯ ‡•J¥èèè”hŸß*'Nœ6we™/2ÀJKK£|ùòÅnF« hZ¶l©˜-ü‚˜GGG9鋲Š"ÀR à+ä»ï¾cæÌ™…Ú+T¨Àš5k033cܸqBF¢´¨Y³&^^^¬X±ccc1fYuPŸ>}D’sÁÇýúõmllØ·omÛ¶ûÉþwtt¤U«VüïÿÃÏÏï‹ÈÛ(«ôë×qãÆ‰çÑÑÑ4lØ-[¶¼w¿Õ«W—¸>ÕÅ‹K<…ÄÜÜ\NÛª´¹{÷.5kÖdÛ¶m¢mæÌ™Ô¨QCH"E\\Ü¿J¾”6õêÕ+² £¬¡¸ÕQ à+å]•ŸÊÊÊ,\¸ÿû¿ÿcÊ”)|÷Ýw%<²ÿOýúõ…UPAdRÁ©‚­­­Åc~þùç"÷—H$têÔé?‰¶~©¤§§³nݺ"ëO%++‹   9/Õ¹s碤¤$WEVV–5yþü9nnnØØØ¦¦&ÑÑÑÄÇÇcfföÙÞ7*zùÖ ¤GÜ»wÈ—»ˆˆˆ zõê¢ò3""‚3gÎP¯^=QáììLdd$;vì oß¾$&&âáኊ ={ö,TùYìÞ½»´‡ðA(f°(øF™8q"Ó§O'$$„Û·o—xÿYYY„††ú÷âÅ‹BÚ>ï¢S§Nr±ÿäðáÃtœ'OžÈ‰$þsÿK—.÷AÇ*-¢££™5kÖg`¼ÿ>¦¦¦hiiñòåK.\¸@åÊ•ÉÉÉN 'NdÖ¬Y8;;3lØ0¶nÝŠD"aÆ ܾ}›‹/²|ùrΜ9C³fÍxòäI±`РAr:\%ÁóçÏqww/Ñ>ßG`` #FŒųgÏÆÖÖVˆ±Þ¸q;;;j×®¿¿?þù'YYY<~ü˜6mÚ §§‡ºº:wîÜ¡Q£Fèééѯ_?9eïG`)Pð cccCÆ ¹téóæÍ“³(ùܼ~ýš;v°cÇÚµk'?}úôƒ/Tºººï•kY·nÝ'<<¼¸aÁý_¿~-géRÑ××ÇÚÚ•b?öÍ›7iÖ¬fffܹs‡ 0wî\Þ¼yCµjÕ8tèìÚµ‹U«VO\\fffôéÓ''',,,èСË—/§[·n˜››ù™%yËð÷÷gΜ9%Þï» ¤M›6deeqòäIŒyõꕈííí2djjjüøãœ9suuu222°µµ¥G”+WŽöíÛǽ{÷HNN–³;*-víÚ%gñSVQ,*øbxøð! .,ía” Zo|*U«V¥ÿþ¸»»óìÙ3Ö¯__"¹JZZZ¢jðøñãâqxx8©©©üòË/dff2wî\jÖ¬‰““Õ«WçܹslÙ²…£GâááAïÞ½éß¿?/_¾déÒ¥DGGÓ®];&Ož ä/]¸pñãÇÓ±cG222ؽ{7ÿý7Æ +´|xïÞ=\\\ä¬^dÖ£Gðóó#00uuuæÎ‹ŽŽaaa8;;£««‹ªªj!±×’@CCã³%þÒ­[7Þ¼yÃÌ™34h  ß×.++‹ &ù¹uåÊ•ãÖ­[4kÖLg̘1”/_žï¾ûŽK—.1hРÏ2^cccöîÝ[Hòãsbll\Hµ½´ÈÉÉáÉ“'P»vmæÍ›ÇÅ‹™1c½zõ"==7oÞP¡B13+S“ çþõë×ùý÷ß™>}:ìÝ»W®p¦´pss#--­TÓ>„°¢¢¢ptt”«P()rrrÈÌÌ,RAXAñóúõk–.]ÊŠ+D[^^åÊ•+Tµ5dȆ^ìchß¾=wîÜ‘óÜ*MRSS‘J¥¥ª'UÐ×íSÑÓÓÃËË‹2`À9#×ÒàâÅ‹\ºt‰Û·o³nÝ:œœœ8}ú4¶¶¶lÞ¼™ƒòäÉ6n܈ƒƒõë×çâÅ‹|ÿý÷899 ³ÚçÏŸ£¯¯ÏÚµkéׯ.\`çÎ$''³fÍ $HA¾Ž˜»»;W®\‰Ò7oÞJá...øúúâååÅŽ;˜9s&S¦LaëÖ­$$$СC‡R °>'Ìž=›¬¬,<==™:u*[¶l³!JJJŒ;–Ž;ù¿‰„   aÛrãÆ ÒÒÒØºu+OŸ>eîܹbÿâ&%%…—/_~–c¿‹¦M›Ê%”—&aaa"sòäÉdeeQ¹renݺżyó(W®R©”.]ºP³fM^¼xšš¹¹¹dee‘››‹’’{öìa„ ˜››óË/¿ÈË¥I¯^½¾=»°ÂÃÃÉÈÈ`óæÍÅ9_0»wïææÍ›Ÿ%ÀªS§«V­*öã~,³fÍÂÐÐ{{ûÒJ±Q§N¼½½2d––– 8°ÔÆÒ©S'jÕª…†††X¦“J¥üôÓO(++sôèQ*T¨À´iÓHHHàï¿ÿ¦S§NØÛÛsæÌ¦OŸN•*U¨R¥ŠÈÑ’J¥dddàé鉫«+•+WÆÊÊ ooo‘¸Œ±±±0&^°`A¡±uïÞ===:vìÈo¿ýÆ‹/PWW§V­ZÔªU«Ôîª_¾|‰ƒƒ[¶l¾ƒÅAÁÙ@ß·nÝ¢OŸ>@þr“ƒƒ5jÔ --!C†`kkKŸ>}˜>}:Ý»wgÚ´i„……1`À*V¬ˆ¡¡a![œâÂÇÇç£$?¾Ä X›6mD»°ZµjÓ¦MãÍ›7hjj²iÓ&¤R)¿üò ýúõcÖ¬YŒ7GGGöìÙCëÖ­Ë̤ƼyóJ{Ä'-ª««ËUó(ø¶¹rå Ïž=+ía(ø´µµ9uêcÆŒaíÚµ¥fý!S"—H$"ŸF*• ç¦M›Ò®];ÌÍÍåöóóó#,,ŒÑ£Gó÷ßËå#I¥Rrss155åáÇԬY“‡2hÐ ÒÒÒ€|QÓØØX ß"ª(yÙ1eÇ«Zµ*¯_¿&//ÔÔT¡/–MVVV‰Ír>{öŒmÛ¶±~ýúbUºVRR*Ò@|Ó¦MâqË–-¹xñb¡m†ÊСCÅs™û禤mr ¿"oÿþýeââonn^è»päÈñ¸[·nEÚ*M˜0A,õŸ-Oî[@‘ä®@9ÔÕÕÙ½{7¦¦¦•øøxzöìɵk×PRR*Õ±”6AAA…‚o_#GŽ,í!|ß|€•››ËíÛ·QQQIš§OŸæèÑ£´hÑÈ/{õóóãåË—˜˜˜`aaA•*UHLLäôéÓ4mÚ”[·n¡¡¡AŸ>}PQQáÞ½{ܼy“V­ZáççÇ÷ß/WÑqùòe®_¿NÆ 177GYY™ÈÈHΟ?OÛ¶m¹rå FFFtèСä? бcG<<<„þQqiáÄÇÇS­Z5–,Y‚‹‹ ëׯgΜ9DFFÒ¢E ¦L™ä/ѯ_?Qõ>AÍsçÎ1yòdÐÖÖfåÊ•@~ò¼½½=ÖÖÖ,]º”ØØØbM/MRRR $++ë›°J#¸ºyó&ÎÎÎ_Œ‹‚ÏÏ7Ÿä*ÊŠ¸~ý:“&Mx2– 6pþüy‚‚‚°µµeüøñøúúbggG×®]quu¥ÿþ8::àêꊽzõÂÕÕ•¶mÛrüøq ?I·{÷î\¼x‘þýû3vìXöîÝ‹]ºtaáÂ…eÞžCÁ·C£Fðññ!""¢Xß•••©T©¦¦¦r½IIIDEEñäÉ!;’’B\\qqq¬¬þêÕ+¢¢¢ˆŠŠB"‘M`` /^¼ zõê"-àK§^½z8pà« ?…óçÏË ÷Q¬À ÞÍÈ‘#ñòò*íaü+ßü –¬l¸ÿþ\¸pR£F Ú´iÃÞ½{E€5}út._¾LPPzzz¢‚A¶ÿƱ±±ÁÀÀ@”µ¢¦¦ÆßÿÍ›7o¨W¯^^^dee±}ûvú÷ïOïÞ½‰ÇÝÝÍ›7‹ãmÚ´‰=z”ôÇQâܸqÿ/b=]A¾B·———¸!(Nœ8Á­[·xðà×®]í—/_&==J•*±xñb v9$$ÈPüÍ©{÷î±aÃV®\ɲeËØ¼y3Ý»wÇÀÀ€Í›7pµ`YF*•2xðàÒF™ÀÚÚšƒ¾·š´¸éÚµëg±)RP˜ˆˆ¢¢¢J{ÿÊ7?ƒ% hš5kFçΉeÓ¦Mܽ{ÈŸÁº{÷.FFF=z”J•*C£FÄþªªªôêÕ‹W¯^ñìÙ3jÔ¨!Üçe¦™aaa@þJv—£¦¦F@@uëÖeÔ¨Q¨¨¨H³f;êà*-- '''LMMiÙ²¥"Wâ CCC]]Ýb;^ß¾}ñ÷÷ÇÞÞ^N »_¿~8;;‹à òg~qvvþ`AÏŽ;Š}”••ÑÒÒböìÙܸqƒF‰JÀ¯ìììBm\¿~]<Ÿvpp0û÷ïÿ,c+Iêׯ_âÅIZZZØØØ”hŸß*+W®ü">ëo>Àºyó&U«VÅÀÀ€)S¦pøða7nÌ­[·022BSS“Ý»w“——GïÞ½yüø1¹¹¹Â2àÖ­[dffâììÌÀÉÎÎfêÔ©“‘‘App0®®®888P©R%ìììD9¸Ç§qãÆtëÖ¤¤$¢££iݺui~$Ÿ…ôôt<<<àÈ‘#Ì;— øé§ŸJ{x ʳfÍâøñã¼xñâÛDFFrûömnß¾MBBðÿ=Ô>”ýû÷ʃ¸sçÎa¹ñ!<~ümmíBA–««+cÆŒKª2‰¢Ð××/Qÿ¾ÏÅÕ«WKåïZ&Óß"mÛ¶-Ö›¼ÏÅ7¿DX¥J† ä«ÿÊ€«V­J—.]€üŠÂÛ·o³sçNzõêEÇŽ±°° ::š¤¤$ƌÅ HIIaÇŽX[[³}ûv _€pÏž=²gÏjÔ¨žž+V¬àäÉ“œ>}SSSúôéÓ'OèØ±£ðîúÒÉÍÍåæÍ›xzzrîܹ"]Ø;v쨘Vÿ†122ç»’’kÖ¬!::š¦M›:_:vìȹsçDc—.]PRR’[V”1jÔ(ÔÕÕ©]»v¡ÙàjÕª±yófTTT˜eØe###îß¿/l† òóÏ?3dÈñ¹ìÚµ‹^½zammÍäÉ“ äíÛ·¤¤¤ðìÙ3¢¢¢8xð Ð [½z5  mÛ¶899qíÚµ2+ô¸qãFˆ––V‰õ™œœLrrr‰õ÷-Ó»woÆŒ#gÃTùæ¬O!##ƒîÝ»¹¤W¾|y\j^n¥Azz:¡¡¡ØÙÙ}ð>‹/–˱)ɤÔO¥nݺ¥=„ožOß: 4(²]UU•ŸþWWWÑvõêU† äç ^½zUä–êëëcmm¥¥%&&&¬[·ŽóçÏÉîÝ»ÉÉÉ¡Y³f,_¾œË—/Ó«W/Æ÷ùßà2{öl K4—µW¯^Ô¯_¿Äúû–ÉÊÊ"55µ´‡ñ¯(¬O`È!âêŸ´ÖøVPWWÇØØ˜.]ºàïïÏ7ÈÌÌ|ï>ŽŽŽŒ;–k×®1vìXöìÙSB£ýtÉù Ê!!!ï ²FŒAÇŽÅl±……gÏžÅÎÎæÏŸ/òÚÒÒÒ5jcÆŒaìØ±Ü¿Ÿ^½z¡­­­­-¹¹¹¤¥¥•ÙtkkkêÕ«W¢}–+WŽÆ—hŸß*»víú"V–‚bE"‘лwoz÷îMjj*~~~xzzrûöí"@_¼x‰‰ qqqH$ÅŒ„Ixx87&==].¯±I“&¨ªª"•Jùõ×_Y¿~=¯%´råJ† B·nÝ066&33“ÚµkóôéS~ûí7TUU144ÄÌÌŒºuë²~ýz±,óûï¿Ó°aÃRy¯ÿÆŽ;J¼Ï¼¼<âââÐ××/ôZnn.¯^½ò휤Òüú²øøxJ40ËÉÉ!**ŠªU«R¥J•>΃(W®rí¾¾¾"ùc m¿/7÷K¹N(,Ÿ *`ee…••±±±xzz²ÿ~q péÒ¥w½W àk¤|ùò¨©©j/hmdii‰¥¥%¡ÿgfãÆÅž -@ÅŠ™={vqû«áäɓ̙3Gè´$&&†ü‘ž={òüùsLMMY¼x1/^¼qIpôèQfÍš………ééé4hЀß~ûí£ŽåééIµjÕ Xÿý÷'Xþù'|ï Á£GÐÓÓ£|ùòÝOIPl2 ÙÙÙŒ9²DÄ¿BBB2dC‡eÑ¢EDFF~ö>ßEAsÏ€€†Š••üñ‡PNKKÃÖÖ–øøø=–¬”zïÞ½b¹,++ë“MD###™:uê;_÷õõ%))é“úxÕ«Wg̘1ôêÕ KKK~þùgªT©Bxx8îî_ ¾jÔ¨ÁóçÏU¹À´iÓˆŽŽ.Ñ>UTTÞkQÔ°aC6lØÀ‘#G8xð ¹¹¹¨¨¨å}gggöìÙôiÓD‘TDDS§NÅÑÑQh™ÅÆÆ²{÷n.\ȶmÛÄŒ$À©S§ *²ÿøøx¦L™ÂÝ»wÙ¼y³è òM~ýõWvîÜ)ªw9vì'NäêÕ«œ>}š)S¦póæMq̈ˆ¦L™ÂÈÉÉ·âÌ™3ØÛÛËiÍEFF²`Á6nÜ(n¶ããã™?>+W®ü î#F|×b °Îœ9Cll¬œP`||<ܾ}›7oÞššÊƒxùò%©©©Ü¸qCü1333å.ðIIIdddÙWBB:::lÛ¶6mÚˆª>Èô \Ož<Ÿ?.Ž™‘‘ÁÍ›7Åó¤¤$ÅIùeÌ©©©Ü¿ÿï[&×áÂ~ûí78qâíÚµ%‡&!!á_ó‹ž?.JÎOœ8ÁÉ“'|µóçÏŸ“——GPPOŸ>û<{öL<~ûö­\KDD„X–“åLÈHKKÇÉÊÊbóæÍܼyó_ƒÀâ@GG‡ 6Ç¡C‡„Ø« >²~G_Rìܹ³È™¤Ï‰¥¥å{­rBBB˜>}:}ûöeĈH¥Rbbb¸|ù2+V¬ \¹rLŸ>éÓ§ù«üñsçÎeÑ¢Edff’˜˜È¬Y³°±±ÁÖÖ///ž={F^^üñ‡\UnA®\¹B‡äΑŠ+òöí[FŽÉøñãÉÍÍeÁ‚@~žSBB³fÍbРADFF2cÆ 16È¿1Ÿ;w.ÁÁÁìܹ@Sþþþœ>}šyóæ±gÏ"##IMMeüøñL˜0Zµj1oÞ< ß,ÝÚÚšÖ­[ W¥J•Šœ­-k[€µcǶoߎ¯¯¯ˆ@‡ †žžž8p€=z°iÓ&âââX¾|9çÏŸgĈøúú’••…µµµ8^¿~ýÞ› ššJ\\Ïž=CSSÈ?úõ뇛›$//7²cÇ>|ˆ­­-R©”`kk‹¿¿?ûöí#//ùóçãççGïÞ½yøð!ÿ…3fŒø¼777¦NJË–-‘H$tîÜY¬ÅËf£d²ïÂÜÜœsçΑ‘‘ªª*jjj¼}û–sçÎaaaÁ¡C‡8}ú4«W¯fÖ¬Y@¾]ˆ, \»v-^^^ÄÇÇ3tèPvïÞM¿~ýˆ•ëgóæÍ8::âììÌüùóyùò%=B %…šš `ÅŠ%Ö§_+999œ:uªÔúþ˜Õ‹ŒŒ ¹›àââ×_6g%…D"yoNS:u˜3g¿ÿþ;§OŸ&%%Eîu]]] €‘‘yyydeeñòåK~ûí7æÌ™Cll¬¸·°° I“&”+WŽ &°yóf|}}iÓ¦Í;Ø¥Ri‘þtíÚ•Úµk3jÔ(à())1fÌŒŒŒ¨V­ãÆÃÐÐuuu!§Ó¿ªW¯ÎÏ?ÿ\ä¹7jÔ(ôôôèÔ©7nÜÀÃÃÔÔT-ZÄÉ“'¹qã/^¼@YY™æÍ›Ó¾}ûZ.=}ú4¶¶¶ÿº]iS,Ö³gÏÈÎΦV­ZtèÐ???ñÚܹs™;w.¯c³råJŒ™6mõêÕ£y󿏻»S¡BÌÌ̸ví7oÞÄØØø½&¬·nÝÂÅÅ…åámÛ¶±téRV¬XAÍš5¹~ý: .dÿþýŒ=Zˆ þßÿýûöícæÌ™ØÙÙ!‘H˜;w.|÷ÝwbæèÍ›7lÚ´éƒÊ?~Ì÷ß_¨=<<---ôôôhÔ¨Q‘¢ˆ2dBŠW¯^å‡~ uëÖ\¹r…sçÎann޵µ5:tÀØØ???rss5j”po?~ü8ÖÖÖìß¿Ÿ–-[biiÉ?þÈ‘#GDyyyìÞ½›Q£FÑ¿þúë/*V¬ˆ™™cÇŽUx™)Pð…Ž••U¡™[[[¡wµvíÚ:Ö;wØ·oß÷œœÌÌ™3?hÛ}ûö +²¸¸¸ÿÔχ2kÖ¬WúNKKãâÅ‹ï|]MM ===Z¶l‰®®n¡€´àŒŒD"!//WWW~þùg¶lÙ‚¶¶¶øÛb% IDAT¼6ZZZâççǺuë„lnnn!­¾6mÚpõêU¹•¢ÄÄDŒÅ¤ÂóçÏ©Y³&`)++‹Ç²¥L%%%±Ò#{QQQzÏÿÜÇÔÔ”&Mš°aÃ6lØÀÅ‹ÑÔÔK…yyyÂð]d…l\ebåÎ;yòä ÖÖÖ$''#ôŒ – Ëçää0`Àf̘AóæÍ¹pá/ʹfÍ”””øùçŸßÛ§Ì_ ÀÔÔ”‘#GòôéSQº©««Ë“'OhÕªÚÚÚDFFR­Z5òòòHOO—;™°³³cÖ¬Y4hÐ@œl5jÔ råÊôÔ¯_ŸóçÏÒFÚ¶m>ÄÚÚš„„¶mÛöNccâââðööfðàÁH¥RöíÛ'NúiӦѠAZ´hAFFéééôìÙ“eË–aiiI£FPWW'22 ¨ZµªÜ‰Ÿ––FJJŠðF5jÔ¿J)(P  ì£­­MÓ¦M å%''³}ûvôôôhß¾=ƒ BWW///$ =zô@"‘àåå…¤¤¤põêU233:t(B’ÁËË‹=zpíÚ5*V¬ˆ¯¯/VVV@þMžD"ÁÊÊ ‰DBpp0ÞÞÞÔ­[KKKrss9pà&&&´k×sss~üñG ?(8sæ jjjtíÚ‰DB@@úúúøúúÒ³gÏw.•NŸ>ÍܹsÅõãŸbmmD"¡nݺ4mÚTn2¢(,,,˜7oêêêïÔ}’J¥XYYqúôiquwwçÖ­[,_¾\l§­­Í¶mÛhÛ¶-7&;;›víÚ1cÆ jÖ¬ÉðáÃIMM•K¹ù7nß¾ÍèÑ£INNþ •ˆ† ¢««‹åË—§jÕªüñÇØÚÚ2hÐ òòò„8ì;w˜7o^‘3cçΣAƒèéé}ðXKƒb °:ÄåË—…âo›6mÄôgQRö²éÅFÉ ß™ššKZZ-Z´àìÙ³TªT©˜çóçϹ}û6÷îÝ£bÅŠ”/_+++V¯^ÍðáÃ9yò$gÏžeëÖ­Ô®]›‘#G2}út6nÜHË–-Ù¸q#666¼xñ‚ÔÔTªU«FݺuÙ¸qc¡ªÈ¿Ó:uêÔ;g³fΜÉðáÃQQQ¡C‡œ9sKKK¼¼¼¸qã†øÑkÞ¼9éééxzzbll\¨Ìù‡~ààÁƒÂ/ìðáû022’Ÿ~ú‰Ç‹/±²²2mÚ´ÁÞÞž5kÖ0|øpV¯^¹¹¹rw´²™ÂJ•*annN`` •+W¢¶¶6•+Wfýúõ…”æ]\\°³³CII‰7âààÀµk×HNN.³z8 |+hkk‹äè¢xõꕸ¹2d ==éÓ§ãââÂÿcï¼ãrÜÿ?þ¬»©Ò J²2R6GfF„r”²7qì¯}Žuì½"3[’óB„de'’ÝÖýû£Ç}ý\Ýe¶p=ÝŸk|>×ÕÝ}¿¯Ïçý~½fÍšE•*Uèܹ3)RTUU™3gŽð7>{ölœœœØ²e >dذa¨©© Aлwï6lK—.åÙ³gÔ¯_Ÿððp¼¼¼X´hE‹Å‚R¥JñôéS6nÜH:uèÒ¥ Í›7çýû÷ìܹ“uëÖ±bÅ ŒŒŒhÛ¶-nnn\¸pA8øM›6eÑ¢E‚pj^`jjš­|€••U–ù­ŽŽŽ8::). Ëtnnn8;;#“ÉD ý«W¯çÅ‹Œ9RxžåwUóæÍ¹yó&/_¾¤páÂBAļyóxÿþ½ðžyœáÇ'šQS·råJ¡M‘LÞ¡)))ÄÅÅ ÁÔàÁƒñôôDSSSø® Y;}ÌøñãñôôüìDL~óÝÖ«W¯ðòòýb¦M›Æ³gÏèÞ½»ðÇP­Z5á—i``À¸qãX¼x1...ØÙÙ ÇÖ¯__dopàÀºwï.êÓÊÊŠ²e˲ÿ~Ê•+‡¿¿?ýúõ# €;w²mÛ6 *Dbb"Ó§OG&“ñâÅ ^¼xÁ¢E‹ðóócúôé´oßžFÑ¢E V¬XÁàÁƒ…ž={ }^¿~=˪”Ááîݻټy3çÏŸ§~ýúhhh0qâDÑ¥âÞìÞ½;KÓÕþýûÓ A!08q¢„-Z´ˆuëÖammͺuë„?¸ÁƒS¤HêÕ«@Íš5ùßÿþÇÚµkQQQ¡W¯^‡Àºuë8pà“&MÂÖÖ–¦M›Ò¯_?öîÝK`` 5jÔ ""Bilzzz¨¨¨ ªªŠ®®.¡­˜–(˜xzzbddÄĉ‰‹‹#22RÈÝP¤H–,Y"T/gELL S§NeäÈ‘‚Фšš‡-Õ®]›Õ«W³ÿ~¡MSS“*Uª0eÊÆŒCÆ ³] |ûöíg+È\\\ò\²"&&†M›6åØù’““E¢Ì âãã¿*o67õ ¿v oß¾Ò?;*Àª^½ú'•KHHHHü?ææætêÔI”«0wî\¥å˜+VЭ[7är¹à§ª(‚ŒY£ÿý—råÊ!“ÉØ±cåË—gôèÑ‚ÞѰaÄYx}}}Ž;FÛ¶méÞ½»0‹¶gÏŠ/ÎØ±cÙµkQõ¶xñbÌÍͱ´´r‡–,Y‚››½{÷fß§N*<Ø6 ®_¿ž­ß¢‚ÌtyÁÉ“'•V0DGGSµjU‚ƒƒ…¶N:}r)ïĉÌ›7€ í«V­ââÅ‹JûGFFÒ®];7nL›6mðõõ%55—o½¤O²iÓ&:vìH‡D+9™IOOVnf̘ÁljŒŒü.I‘uëÖ …Z™£ÖQBBBBâ“èééáëë«Ôž]ÎR™2e(S¦Œð:ór¿¾¾¾h™M1뮘ÝþøXuuua ðc´µµqvvÄþq%J”Îó±)sæ±~|NEeË–¥jÕªY^“‚råʱmÛ6¥â¨Ü¤bÅŠ899e¹-99 Ö®]K½zõˆˆˆ **JÐp<}ú´PM**~ºuëëׯÇÚÚ[[[œ166?)) ggg¼½½qpp@.—+GéÒ¥122Rš»xñ"ááᘙ™‘ðÙªºÒ¥K³{÷nîÞ½ËéÓ§IIIA__Ÿÿþû;;;š5k&è+†‡‡Ó±cÇl —UUU Â××—Q£F¡¥¥ÅîÝ»Œ‚±N:QªT)¶mÛ¦T¤EXÑÑÑÙÎø}Ž%±ÿ›¬"EŠðäÉ“o.í”ø9iݺu~ABâ—$&&†mÛ¶áíí­´äòáî]»†ªª*vvvŸ4%þaaaèé鉕ÓÓÓÙ¿?íÚµû¦s~øð£GæègGVË•¹ÍíÛ·Ù°a³fÍÊvŸV­ZQ¾|y&Nœ(j×ÔÔ$5555µ,õ²² ˜µµµ100@GG‡òåË3xð`ÒÓÓ³-øã?˜={6åÊ•£\¹r$%%1`Àš5kÆÎ;ñööfçÎ?~œÃ‡ãææÆêÕ«³•ºÐÑÑ¡OŸ>ôéÓ‡†  ²Šü·ÔÔÔlÇUUU?)ÿñ³ðÍVµjÕØ¾}{–†Ì+W®¤Y³f¢5ú9zô(*TøæJµG1kÖ¬OkJä]»v¥Y³f‚øë§ÈNhOBB"w±¶¶föìÙJ&¸aaatëÖMȉùû￳ÌÕúNŸ>………(À’Ëå"醯åýû÷x{{çh€I©R¥¾9ü.]º„¯¯ï',555BCCÑÕÕ%ª7mڔɓ' ™)Z´(K—.¥I“&B[¥J•D¹Z^^^888Ð¥KÞ¿Ï«W¯˜1c†°]EE…   Ö¯_ÏÛ·oŒ\&###Š)‚¾¾>‘‘‘:tˆÒ¥K£¯¯ŽŽøøøˆTá=zÄÌ™3qpp ::šÔÔTAeçÎèêê²k×®,å~ CÇjÔ¨QXYYÑ¥K¦M›F·nݾX·l„ 8;; Ú•ïZ"ÌîËôÖ­[¸ººR®\¹,·9’»wïŠ*#¾™L&i0å… ÂÌÌ,Ûß§„„Dþ£¡¡‘åÒÉ€ðööôõ%þ÷îÝcåÊ•‚a°¹¹9K—.ÅÈÈ???ºwïNjj*»ví¢oß¾‚£DXX{öì¡Q£F‚V "ÀZ¸p!¦¦¦øùùѱcGaVëÈ‘#ìܹ<<\\\ dÔ¨Qüûï¿´lÙ’µk×âääDëÖ­ åСC¬X±‚Å‹ãïïO:uøûï¿Ù¹s'‹/ÎñëÖÖÖÎs‡‰’%Kâåå•å6---%[´Â… ‹d‰2 B %“ɾ(©ÛÚÚZIÀZ1¡©©I«V­”Æœy¢¤aÆ¢×5ÂÌÌL©¯ *(Ée¨©©¡§§§$"®ûÇZáÂ……¤üU«V)ͼ~Š?þøCäSPÉ•ËÐÐ0Û›¥°µILLäüùóyZF+!!!ñ³òìÙ3…YÈøbNII!-- 5µÿÿ¸ECCCXꋉ‰rgºvíŠåË—§S§N ©©),+µk×===ºté‚ ”t–ºu놞žåÊ•ãîÝ»ìÝ»—'Ož0bÄâã㉋‹#>>ž¶mÛR¸paºtéÂ¥K—rô^ܸq#Ï…FV,,,¾xß̹e_Š••ÕWíŸÙ!¥ ’+ÖÖ­[³lOOO' @x­x’‘øùQQQáÑ£G‚5˯JnUø½{÷ŽˆˆRRR„K]]5jpèÐ!!zþü9E‹TÂÓÓÓÑÐÐ0Eb²ªªªèg…½ÂhþîÝ»Y ~*fÈÇØÛÛS¡BÁ§àòåËlÞ¼Yt¾œ$?‚«óçÏ3oÞ¼,•ñ%~Mòt‰044”çÏŸ ¯O:EBB‚ ¡!!!ñóÒ²eK¢¢¢¾Êæãgcøðá"aÍœ¤lÙ²øùù)-­^½-Z„‰‰ zzz¬Y³:vìHjj*C† ùâ~.^¼H—.]HLLdùòåŸÝ¿]»vŒ1‚3gΖ–FË–-qwwgåÊ•téÒ%WT×qppÈÓ@ëÁƒÙÊ.$&&H“&M„eÁ³gÏR¨P¡)NšS¼~ýš“'Oþ4VTTQQQù=ŒÏ’+Ö®]»¨S§Žhíöýû÷Yþ‘ûûûK–„„„D‡žž^~#ß©R¥J–‰Ù¹‰Á'gT ÄËË‹={öàìì,ÌÞ-Y²„‹/¢®®NïÞ½ùí·ßX³f áááDGGciiÉÔ©SÑÔÔ¤[·nhjj’œœÌÀiܸ1111,]º”'Ož`ccÃØ±cùðá3fÌàæÍ›/^<¯nCž°xñbA¢ “+%|6làÞ½{¢¶ãÇg)»ÆÓ§Osc¿ >ÄÌÌ,_ŒŽ §NúbM¥œäS÷^&“Q»vm‚ƒƒÙ»w/íÛ·¶ 2„uëÖ1zôhþþûo £hA.—³{÷nlmmÙ¶mééé}ÊñãÇY»v- àùóç<}ú”³gÏŠŽÿ™ˆÿ!¬Ùò$ëÙ³g„††f»Ýßß_d|YIJJâÍ›7Èd2 ²µÈàýû÷DGGç÷0ò„ïÑôËÊ ã[°²²âÎ;B߯ÌÂ… éÚµ+ÅŠ˳>ãâ∋‹ûä>–––8::Ò®];Aöà¿ÿþ#88˜ˆˆ‘ü©S§èÒ¥ §N¢Q£FDDDK¡B…ˆ‹‹ÃÔÔ”æÍ›S¯^=Z¶lIzz:IIIÈd2N:EóæÍEé9ááᘘ˜P´hѽþ¼¤mÛ¶ôîÝ›®]»æ÷P>I®XkÖ¬Mß|Òw(**Šk×®akk›ÃÉ–.]*r<733cÒ¤I 0à“ǽ{÷ŽÚµkÓ¹sg&Ožœ£cº|ù2;wæÿûݺuËÑsKH|¬ZµŠS§Nå÷P~ŠèßKf‘É_•iÓ¦Q¡B…o6þœ•ÄDhii K–&L2%…;FÏž=騱#ÆÆÆ"UUUÜÜÜ([¶¬ 1U¥JÆŒCRR’ ?räH–/_ΦM›ËåLš4‰¦M›réÒ%ÜÜܨT©’ ò9cÆ ÆŽûCXr¹<ÇLr“\ °2{ *–---±²²"22###tuu‰ŒŒäÅ‹øûûèK1m»oß>îß¿Ïܹs4hvvvÔ­[—Ó§OJjj*ÕªU£Aƒ$''3þ|nÞ¼É7ðññÁÃÃÇsóæMd2µjÕ|ß¼yCPP×®]ÃÈÈgggJ”(Arr2Ü¿ŸÆS¥J¢££Y±b·nÝâòåËhiiý0âk??ÄÍÍ-W ]—-[F§N Ì„‡‡IIIìڵ뛎WQQÁØØ8GÆ‚±±±h¥¦¦rýúuŒ…¤ïÄÄDnß¾¥¥%FFF¼|ù’ÇS®\9AÚàÉ“'¼xñ[[[av.22’””‘þUDDÚÚÚBÒqJJ +V SSS cI'22+++Á*&66–èèhÊ—//,—EEEñêÕ+lmm½°;wî––&r¹œëׯ£§§'¨'''sãÆ LLL(^¼8;vT²wÉm455k›Ì˜˜˜ˆ|!Ã*GaJUE'dÌÔ´lÙRxýþý{ôôôذaƒh?###&Mš¤tüÿþ÷?¥¶ªU«R­ZµÏ_PÆ××Wxïdr}‰0""sss&Ož,D÷#FŒ råÊôéÓ¹\Ή'صk)))véíÒ¥Káêê @BB“&MâÔ©SÔ­[—éÓ§cffÆ‹/3f Ë–-£AƒB©ò7xõênnnüùçŸØØØÉÈ‘#  E‹´lÙ’¸¸8jÔ¨Áõë×±´´DCC'''^½z…½½=#FŒ`Ë–-.\X(£&>>^ °$ 94|Œ\.gÆ ÄÇÇ——iNñáî\¹BZZšššèëëçÛXnß¾M:u044äéÓ§hjjâç燻»;5kÖäüùóÌ›7)S¦àééÉúõëèß¿?{öìaþüù‚?^óæÍ¹q㇦E‹¼}û;;;RSS¹uëVVV\¹r…ªU«R´hQž>}ŠL&cÇŽxxxP¿~}NŸ> ÀÌ™3™5k–`½àééÉ¡C‡X¾|9ƒ 2lZîß¿ÏñãÇiÔ¨±±±Âƒ÷½{÷033ãüùóÔ­[SSSžôë×=zäëúþýû?~<7oÞÌ‘óeed¬¦¦FçÎsäü?2·nÝÂÜÜ]]ÝüÊ'É•*B///aIíKßð***"¯¬‚ÄåË—‘ËåT¯^Èx’òõõE__Ÿ&Mš°bÅ ªV­Ê;wxûö-iiiÂSWhh(*T@[[Èp›7o&--AƒakkKJJ AAA-Z”‡ròäI\\\hݺ5)))\»vM“„ÄÈÞ½{…Yá/aûöí@ÆNxxxn ë‹ñõõÍòçü@EE---¥ÏQMMM¥|---‘eªªª’¼L&SJ˜WWWWúL×ÐÐ;Yõ©[æ>3{ÖædŸy¶¶öOY`ðêÕ«|=>+<==K¢ü{7þ@(‚ųgÏR¯^=J—.Mbb"7n¤X±blÚ´‰"EŠÐ¨Q#áéEáþâÅ Þ½{Ç‚ xûö-›7o¦dÉ’ÔªUK´¯)))Ìž=›fÍš¡««‹L&£I“&ÄÅÅѼysÜÝÝ166¦U«V¼{÷Žäädî޽˲eËòçÆHHä!III8p@xßMll,'Nœ^Ÿ?^IÿOâ×ÁÉɉ³gÏf¹-::šß~û WWW\]]E*ùŸãõë×øøøäÐ(3ˆŒŒ¤gÏžtèжmÛ‘í¾­ZµúªsŸ={V´ªÒŽ`•$ IDAT§OŸogvý{sʨ€‘’’BÆ ÑÒÒÂÒÒ’Fѯ_?a­}ܸqÌ™3‡-[¶P¯^=är¹`-^¼˜M›6qðàA†ÊôéÓY¿~=þþþ4iÒ ¬¬¬ˆeÛ¶m¤¤¤ðÛo¿ñ矢ªªÊ„ ÐÑÑaîܹÈd2A!_]] àïïϹsç¾ÊKLBâGäСC¢2øÝ»w3mÚ´|›ùÞ½{·’°äÎ;Љo#»/ýäädôõõñóóµ?yò„+W®Ð¬Y3ÔÕÕIHH 00š7oN¡B…ÆÇÇ4h@xx8 42VH*UªÄëׯy÷î‘‘‘”,Y’Ê•+sùòe’’’-¬™9s&  N:¤§§ yr¹œÓ§OS´hÑ,+"8vì²~zz:§NâÅ‹´jÕŠ;w’žžNll,mÚ´aĈÂñwïÞåÞ½{8::¢ªªÊÇIMMåÚµk”.]ú‹ Ý<øEûå7¹2ƒ5dÈ¡üôg`ôèÑœÌv™HâçÆßßÿ«*ü6nÜHñâÅ1Þÿþû ž?Α#Gxýú5çΣR¥J˜™™áää$H\dE“&MèÕ«ººº\ºt‰ÄÄD>|ø@PPqqqøøøàããCLL 'NdÈ!ìß¿Ÿš5kÆÙ³g‰çùóç*=ÐlÚ´ 333îß¿……Û¶mãèÑ£4jÔˆþýûãêꊵµ5+VÄÖÖV¢ìÞ½›E‹áééIùòåñq<<<:th–~ÅYqäȡЬ #å`IHHxvïÞe•ñáÇy÷î]žG‘lÿµÛr“ÄÄDjÖ¬‰­­-wîÜàÁƒØÛÛ •w'Ož¤bÅŠ"/;v,ÁÁÁ@Æ,páÂ…سgW¯^åÎ;¸¸¸ç¨P¡ûöíãØ±c¨¨¨P·n]TUU9zô(gΜ!..Ž’%K¢©©É–-[„àOq|¿~ýhݺ5÷ïßÇËË È˜THwØÚÚ nŸcéÒ¥_vãó™\ °’““ ¬h¨„„DÁáÝ»w<|øð“ûd^ªÈLHH÷ï߬ZrÅlš¡¡!åÊ•t~ŒŒŒ¸}û6¯_¿fûöíy`ù*tZ011ÉsUýèèhüýý³”%ÐÒÒʲBÎÀÀ@é}’•À¨¶¶¶¨0ó>YÙF•*U*Û¿ œ³ÜV¥Ja†Ùꨩ©Ñ¢E ¥c~ûí7ÑkcccavQQQ¾Qçjëëëç«Bn å`IHHXËq2™ŒªU«Ò¡CŒŒŒptt¤Y³f‡u^‰¾{÷Ž;wîàííMdd$‡¦^½zÂòPdd$6làÙ³g‚p^"U0fðäÉÊ–-›§}ž>}Z0_–È]V¬XQ „†?G®Ì`5lØbÅŠåÆ©X=z„©©i®Y9Èårîß¿ÿUëÒÉÉÉÄÄÄùyMvz; þûï?êÕ«Çøñã…å¤ZµjÑ®];ºtéBzz:{÷îeûöíÈår‘Rxn “É8~ü¸’Џ\\\hÓ¦ ¹:–̼yókkk>|ˆžž^žö-‘1óó5®ßΦM›PUU¥råÊù=”O’+3XcÇŽ¹­ž={†™™™ ³¡°¾É¬õ‘[L˜0á“yµjÕ­Ñ÷íÛ÷«–RRR8pàWéñãÇL›6í«Ž‘ÈIš7oÎÊ•+³Ý^·n]Ö­[§”«£@UU777vìØ‘eåRN£££“mp•y\y䤦¦òúõë/®Äú™Ù°aCžß‡Š+²hÑ¢<íóW¥cÇŽ‚VdAæ—Y"LOOÇÒÒRH¦=uêzzz‚2ô¹sç˜7o'Ož>¨O:Exx8+W®äåË—@ÆÔó¥K—ðööʆ!#`;zô(}ÐÿóÏ?ìÙ³ç³S÷ÉÉÉ#—Ëyûö-?æõë×@†úí’%Kؽ{·PjÀŽ;˜;w.ׯ_ëåË—B5ËóçÏY·n?¶ÇÄİbÅ ;¾úõësòäIvìØ!rLŽŽ¦N:ÈårAÈnúôéÈårš5kFrr²°ïÝ»wñôôÄÆÆ†K—.1tèPÊ”)ðaøsçÏŸ?ÇÝÝÒ¥Kræ@BBâÇ£N:9~Î'Ož`ggG£F¨_¿>“'Oþ¦ótèÐ!×—p4kÖLÐ…Ê+®_¿ÎÈ‘#ó´O‰‚M®XãÆãÊ•+¹qêï¦C‡¬]»–øøxQƒ¡¡!¾¾¾<|øÀÀ@¡}Ĉ´lÙ’:íÍ›7ÇÅÅ…¿þú‹={öðâÅ ®\¹BTT” äœššÊ… 9r$={öüdž‰‚nݺ±iÓ&>,2Ø455% €ÀÀ@A7¤D‰ìÞ½›¨¨(ìì쀌àjРAlܸ‘R¥J±yófŠ+FHH†††ìÝ»—C‡áééI‹-1óÊÝ»wEÇÈår®^½JDDéé餤¤pèÐ!a{BB/^Ì5sìÀÀ@J”(‘+çÎŽk×®}•‰³Ä·óÇb·™\Ir¿zõ*-[¶ÌS7-[¶dðàÁ¢µò¤¤$¦L™Â¾}ûxóæhöH±$—””„¶¶¶¨-99---ÔÔÔ055¥cÇŽ@Æú°L&=­)Žù&&&¼yó†Ò¥K‹ lGÅâÅ‹±²²ÂÊÊ €¡C‡âììŒ,\¸333ttt8wî-[¶D[[[¤+£¯¯/X0|é˜$$r“;wî°ÿ~F•ßCùáyñâ¥K—&66CCÃ;ï¥K—°µµ%11‘³gÏ¢§§'ˆ”Nœ8]]]îÞ½‹––kÖ¬áþýûôéÓ‡† òìÙ3† ƒ8vìóçÏÇÏÏŋӤI®\¹ÂƳ5Iþ‘pppùJäÁÁÁ”)SF0½.¨ürJîêêêܼymmmaÙNáb¾oß>Nž<)Rÿ]¸p!W¯^åðáà >œãÇÌâÅ‹ ÆÃÃ*UªÄºuë¨V­7nÜ`âĉ´jÕŠ#F`hh(ø&ÅÄÄ0a¼½½³Ÿ¯¯/2™Œøøx¡MKK‹€€nß¾-$n._¾tttÍ1mmm¶oߎ‡‡>|ÀÓÓ///âããINN¦L™2´lÙTUU9xð ŋϕû,!!‘·¨««£¦¦–ãyN¡¡¡¼}û"""ذaƒðù÷ßITT” ÿ´yófìíí™4i’ð¹wï^ªU«FLL Ó§O'88Xx`Í FÍ„ r4Ðü%J”`РAyÖß¯Ìøñã |!äÒañâÅóÜ&âs-ZT¨ÔÑÑAUU•:uêЧOd2þþþ2gΖ,Y"7cÆ ¬¬¬8zô¨pM=zô råÊÌŸ?Ÿ6mÚ°`ÁúôéCZZš06vìXzõê…³³3ÿþû/ÆÆÆ\»vŠ+*oݺu@F0¥®®Žžž .2JR­¬¬8p GŽf›4iÂŒ3PWWçï¿ÿFCCƒ­[·R¬X1Ê–-‹ŸŸÅ‹ÇÚÚšzõꡯ¯O@@¬Y³†Ñ£GçÆí–ø¥Ø·oµjÕʱßR©¯¯OLL FFF9zmW¯^åÈ‘#=z”C‡1a #ðrqqaãÆœeÊ\]]9wîQ„Õ³gO~ÿýwÁÓ166–N:Ñ­[7>|ø@XX¿ÿþ;#FŒÎåïï««+‹/Ú–/_Ž««+{öìÚÆ««+—.]2V`zôèAûöíOǧOŸÒ±cGºwï.ø^¸pvíÚ‰fçüüüpuuåñ.\¸WWW8 ´ýñÇ´k׎k×®Þ•¸»» dHuèÐOOOááàÌ™3´k׎‰' çÚµk®®®¬[·Ž¶mÛþºV96lÈÓ~JJºFFF‡‘¡¡¡,)h!#0Ë,9¡ªªŠ£££R/á)øX råÊÔ¯__éØÌ–jjjBn•¦¦&NNN¢íÖÖÖJo0E_jjj‚²®šššÒ±ZZZBŽ×ÇyhyMÇŽqssËïa|9n 6eÊ”o:.§•°cbbÐ××¢sçÎѤIfϞʹiÓ°··g̘1Ô¨Q¹\޹¹9kÖ¬áÌ™3L˜0nݺEùòå *·s///‘^^allŒ½½=666B›¥¥%U«V©ª—-[™L&ZA¨R¥ III‚¼‡¶¶6¶¶¶*THÐO400ÀÎÎNä#Y¬X1ìííEFÓ%K–¤jÕª¢ýÊ—/¶¶¶ ú.“ɰµµ%%%…B… P¨P!*W®LáÂ……4CCCìííER)&&&ØÛÛ‹Ä\K•*Å»wï°´´ÚlllÐ××¾gÕÔÔ°µµ%==]xOéêêR¹reŒŒŒ„O###¥k255¥jÕª”)SæK~‚_n‰ðkÈJºU«V¢ô¯ÅÄÄä{†$!ñSñ3È+T­ZUd’L:õ›Ž;räH–V&ßÊ¥K—ˆŽŽ¦Q£FhjjR¦L!østtdÈ!ðþý{ºuëFhh(C† ¡råʼ~ýš©S§òêÕ+ PUU¥uëÖ¬]»Vð¹3fL–Ö0ßË‚ rüœ_BVþNNNJ¹û&BÆC{æ D]]]Ñ d<Äg¾kÔ¨¡ô€ÞºukZ·n-jËì5)“Éøã?DmúúúLš4IÔöñï\A:u”*V]]]•„V3Û©««+å©)U¦ÚØØ(õéààðÃùK–„„„ÄO@LL NNN<þ\4 ÿ=´lÙ’/^d¹mÀ€tëÖB… ‰òVOžåðáÃ=zCCC‚ƒƒ9r$o޼ɕû&!!!ñ£áíí­T`$!‘×ü2V9ÁÁÁ8;;‹Ú444„m3fÌ L™2lݺ777|}}©_¿¾PŠzâÄ žûöí`àÀ 0€!C†|•øÜäÉ“™>}º¨-((ˆøøx¼¼¼pppàÏ?ÿÄÕÕ•AƒñçŸOPPÐ7ß ‰ŸÔÔTæÏŸŸg~™^½zåºDfž={F¿~ý=z´ð;¸|ù2žžž"·‚ÇÓ³gOvíÚ%´­^½OOOÑçøÔ©SéÕ«—°”˜˜È!C8p P‰Eß¾}?~¼pÜùóçñôôÉ 8p€ž={âçç'´-[¶ OOOQŠÌĉéÝ»·°¼ÇàÁƒ}D‰égΜÁÓÓS$Û°gÏzöì)Rð_¸p!žžž„†† mcÆŒ¡OŸ><{ö €×¯_3pà@†*¤ÂDFFÒ»wof̘ñ™ßBÁ"×drº\ø{ÑÐÐÞ ™iÙ²%ÅŠ£aÆ̙3ÈÐܸ~ý:r¹\°…€Œê===*W®ÌÍ›7ŒŠ ###6lˆ¯¯/Ü»w¿þú ÈxC*4E>‡ƒƒóæÍãöíÛßs¹?7þ¡Ê® 2/^¼à?þ [·n’€p> ªªŠºº:ššš‚Ü€ªª*ZZZÂÃüÇm éÈ/P¸‚(PWW§P¡B¹TTTÐÔÔЪªªhhhˆòî²êS&“}sŸ¢<;™LöÅ}jkk‹ÎŸ¹O¹\ަ¦¦¨OÅ5ihh(µ)ú¼páÖÖÖ‚öZA%W¬‚øÇݤIæÎK||<ººº@FÂ; ¼éTUUIOO'..¸xñ¢¨”5ó¾ðÿ3a***Èår,,,°¶¶ÎÖL9==÷ïßgk1mÚ´Ï €êèèHV7?<¦¦¦’[ahhˆ««« £ô+caaÁ‰'ò4x¿ví!!!\¼xQh³³³SúhÑ¢…’”FïÞ½éÝ»·¨-³Dƒ¶¶¶’o§™™Ë—/µe%Ûàì쬴‚3`À¥kÈœ©««+^+°°°`ÅŠ¢¶/•m:t¨èµŠŠŠÒ¬”¾¾¾H4Pú>6l½zõ¢oß¾J×Pøer°¬¬¬˜1cvvvÔ©S‡7oÞЧOŸ,#`===ôôôèÕ«×7M·khhàææ†‡‡†††$%%±fÍa»ÂJçãéÚ±³³£H‘"‚ÒmV4oޜѣGsáÂ¥7­„„ᇦ¦¦¢ð«óôéSÁs5¯xóæ” ›GX[[S¬X±üÆgÉ•ëÚµkXXX```§ÿfÜÝÝqwwWjWF–+WŽ7ˆÖÇ|l; xj¨V­šÐ¦°¹ðôôª(ªþù‡*?,,Løùc[…õë× ?+5þùç¡]1n ‰oá[¬Yr‚„„âââ$^‰åôéÓJ³8¹MëÖ­E "Wº “+ÖØ±c;v, 6ÌÓÿðdVñ•ør"##³>ü)V¬Øwyr]¸pððð|3NÝ¿?«V­âôéÓùÒÿÏDRRdõêÕ¢\€éÓ§S³fMÁÃ4 €Ã‡ K1ëׯ§~ýú”-[–Ç3cÆ ¢¢¢¨Zµ*'NäÑ£G?~\dfš6mJ›6m¸xñ"*TÀÌÌŒV­ZñçŸÒ´iSV¯^MÇŽÙ·oîîîôéÓ âââðõõe̘1\¾|™ˆˆ–-[†O>]½˜'Ož`nnž§}¦§§M‰%ò´ß____jÖ¬Yà d¤OU‰†äädRRRxôè‘´¤DFuj©R¥¾¸B2ªv>̲eËxõêÀi´I|Œ?~¼R^é¦M›4h{öìáÞ½{ÂŒçðáÃùûï¿EÉϤB… ‚WàÈ‘#Y°`Ïž=ÃÙÙ™àææÆÎ;騱#¡95sæLÆG\\\H²/S¦ çÎÃÎÎ.Ïú}ªd\mooÏÓ§OéÕ«—0Cµe˺wïNRRaaaÔªU 777vìØ‘{ø¨ªªæù,·†††4œG4kÖì‡XŽÍ•wCÓ¦Msã´ß@\\kÖ¬aÏž=JÉì5">>>ŸF–`ÙÚÚæ[ÿ?;gΜáñãÇtìØ‘ÔÔTn޼ɴiÓ„í#FŒ}YY[[³jÕ*A¸2--J•*EÑ¢EIHHà¿ÿþCGG333|}}‰ÅÕÕ•ÄÄD’’’èÓ§O¾\ëÇ>žš5kŠüN½½½Ù¾};~~~œ3gÎÀ¸qã˜1cF®X]»vÅÙÙ™«W¯âããCDDD–û5kÖ,ÇûþZâãã“W‰ïGQÙ—ßägpÎy-tmnnþ]št9Ezz:W¯^¥_¿~¼}û–´´4N:dXßüóÏ?¨¨¨Èš5kX¶lÿûßÿðöö¦téÒ‚{ɉ'0`çÏŸgíÚµ|8¦¦¦9r€sçÎaff&É«V­eÊ”ò¦OŸŽ©©) $$sssQÂæçŽ¹|ù2æææ¢éغuëbmmÍ»wä>>\¿~íÛ·³nÝ:ÑÏ‘#GX²d <ÀÇLJ3gÎ|Ñ}100 Aƒx{{ãää¤TQehh( L%~¾F²ãgæÞ½{y^ÂïààÀÑ£Gó´Ï¬¸uëÕªUãôéÓ„„„P«V-AùüĉôíÛ—:0aÂ!uqq¡eË–Lž<™×¯_#—Ëyþü9Å‹gíÚµL˜0A0ZÎ,b›ôìÙó×®"ÌO¢GáååE“&M¨Y³&‡ÆÌÌLØg÷îݤ¥¥ C† ÁÅÅ… *ÇøûûÕ1vvvøûû‹Ìk·mÛFrr2… ŽiÛ¶­è˜C‡‰îWæcú÷ï“““`ÃP±bEüýýE^L[¶l!))I(¹ïׯ-Z´–²:fãÆ¼ÿ^˜>þQXõë×çåË—¤¥¥ ÃŒ3øë¯¿hÙ²%!!!X[[Ć 6l¿ÿþ;oß¾%,,Œ† ²|ùr^½z…ŠŠ S¦L¡sçÎlܸ‘C‡Ñ»woÌÌÌÐÔÔäþýû,Y²„„„nÞ¼ÉåË—Y¹r%«V­béÒ¥XZZ¢­­Í­[·ðõõ¥S§N\ºt‰òåËS¨P!–-[ÆêÕ«yýú5þþþxzzbbb‚‘‘Ü»w™3g2jÔ(,X@ÅŠY°`>dæÌ™_¥R}ùòeþý÷_ €d6nÜUÕü¾*^¼8öööù=ŒŸ‚7oÞ`iiITT”ðÙ‘””ÄÛ·oEˆÑÑѼ{÷ccc‘LÇÇEIòeË–%..ôõõ…ö¨¨(LLLHMMåÁƒB{áÂ…133ãÞ½{ÂL‡žž^ž‹~þÊ\ºtIø ÔÒÒBSS“âÅ‹“’’¤I“8qâÚÚÚ4oÞ\ØÏËË‹þýûÓ³gOÖ®]Kûöí)]º4Ïž=ÃÈÈ(ß®çG&W¬ìÖïó tuu‘ÉdÂÌÁÇdžÊ522½‰TUUsä˜R¥J‰^Šò„¾äÑt·ŠŠ UªTíS²dÉo:F.—óþýû¯V/(„††dä„LŸ>K—.1eÊpqqAUU•½{÷rÿþ}Ž;†––Œ=Z¸/üñgΜ!""‚âÅ‹ü·iÓ&’’’hݺ5uëÖeñâÅhjj d3jjj¡ªªJ‰%ÀÅÅ…7nйsgá|ÖÖÖç^½z5uëÖ¥X±bÄÆÆrëÖ-.\H§NðõõeìØ±Ì;WI£èS<{öŒ &еkWzôè ^^^¤§§ˆåAGGGó{?iiiÄÅÅñáá-,,Œ7²råJѾ^^^––FLL @EE…Î;óÛo¿ ¹y'NdëÖ­hjjŠfó ÀêÕ«‰ŽŽ¦oß¾899P¥JºtéB›6mhÓ¦ •+WÎs{°åË—ãééI¡B…ò¬Ï§OŸïºn¡¡¡Ü¾}›©S§Nzz:nnn@FnÜš5k¸yó&W®\¡F¬]»–7oÞP¤Hž>}J§N |vÝÝÝ>|8]ºtþòûá¬wïÞ¸»» ﻂÊO™ƒõñ“–ħٵk~~~lÛ¶-¿‡òÕ¤¦¦rõêUìííY»v-Ý»wgëÖ­Ì™3‡àà`är9œO:Å´iÓò=ÀêÝ»7±±±Èd2F%’Ž "((wwwzõê………mÛ¶åܹshhh¤ªªª4hЀîݻӸqcΞ=K‡ò=¸‚ŒtŒgN *?e€µeËjÖ¬)©ÉÚÚÚyú”—“ܸqƒ¤¤$jÕªE5:t(ƒ âàÁƒÂŒ–‘‘ݺuãÎ;¨¨¨ðâÅ ¶oߎ§§'5kÖÄËË }}}6mÚ@›6m8~ü8U«V%==+W®3>¡¡¡hhhP¥JöíÛ@õêÕ¹sçñññܹs‡¥K—²råJ *DŸ>}8|ø0‘ÃARRÕªý{gåúÿñ÷ØÆžJ²R¡%K”êDE)ZHJ§Óªs*i‘6-Zη}߈¤Z´I{h¡““%Ù²D’}gæ÷‡kîŸÇØ£š×uu]Í3Ïsß÷̘g>÷gyF€Éd"**  Ñhx÷î™—Ê=vìîÝ»‡{÷îAVV¶Å¡÷;v ¼¼Û¶m£ÜçÍ›‡îÝ»w‰›$ާ5†ó³gÏðòåK¤§§CUU•_¼x1øùù!((ˆÓ§O7;Γ'OH©™™fÍš…ÊÊJØÚڨ͗élOƒ……E§÷2dÙ8q“¦r“zôè©S§IéÝ»7iÄ¢oß¾lëã&»víú!~ß9"´³³kU8£#¹|ù2jjj~ˆ€ÛÔuåÿh|ýúFFF˜4i€ÚDM???¤¥¥aöìÙ8{ö,üýý±råJ 0ëׯGaa!BCCáííâØ±c3f ÄÅѳgÏbÒ¤I022‚‘‘²²²0jÔ(ò‰ˆˆ`Μ9BII ŒŒŒ ££Côo–/_ŽË—/C^^gΜ²²2***0nÜ8hiiáÕ«Wd윜hii‘›[uu5ƇáÇCBB>>>¸~ý:†Šëׯ·XÔËË aaa8wîÄÅÅ)Ï©ªª²åãp“ððp„¯¯/TUUÖlþUZZ6oÞŒE‹ÁÐÐòÜ“'OpêÔ)¤¥¥uÈúxt=õ<Ñh4 ãª.®®®øßÿþG”Ïmll`ii KKK$''¨Mg«/Epÿþ}òÜÆ]Ÿ¡¡!JKKÛó[ÌŠ+ˆdMgÇÛ(tfff¸rå ·—Ñ,1ûöíËÕ¼žäädôîÝ»ÃÖ——‡‘#GBII úúúøüù3?~Œ9sætÈøñæÍdggsTÏ%11/^¼Àš5k86ǯÀ¶mÛ:tøã?°oß>:t;wîÄ‘#GˆR}{’’¢Tu –––8xð ²³³;uK—.áßÿÅÞ½{›Ì©¯ƒVUU…ÐÐPü÷ß8{ö,6lØ€÷ïßsz¹<8“ÉDPP·—Ñ%ðððèôV9}ûöeëýȃ3ôëׯËn&êÂõ,1EEEHHHÀÍÍ bbbøí·ß`jj MMÍW±Ô§n3ÒŽ`ôèш‡··7Î;‡Õ«WCCCãÇÇ?ÿüƒ{÷î!%%%%%ƒ°°0ñ>íß¿ŸTr999ÁÎÎnnnD==** 4 'OžDÏž=!**J„+###¡§§‡‚‚œ;wBBBXºt)i‡Óîòç/_¾ %%úúúí§5ðññaÊ”)X¼x1Ö­[‡I“&uù¦]8;;#//´íiˆº Ýõ)--ʼn'pâÄ (++ÃØØ¸SÃ+<ÚOvv6,--‘MéØÀƒÇÏFjj*zõêÕå,Žx°.\¸@’#[‚ ¤¤7nÜÀü3fàôéÓÈÈÈàÄ[Lii)._¾ 999¸ººUpyyyܽ{žžžX·n’““!**J‘###!&&]]]¢6>aÂäçç#%%…´(`×½{w¢  ÆÆÆHJJB~~>  `ÆŒxüø1ž?Ž" ÙîÝ»‡½{÷¶{œÖâàà€Þ½{£ºº·o֭߯[QYY‰]»váßÿíôõüÈ0 8p‹-jò«’±9RRRpúôi9rÅÅÅ];«ŠGû‘À Aƒ(^L&“IŠslmmñôéS\»v–e0X½z5ÊÊÊ`kkKùþ¹ººââÅ‹”y®^½JºÄÅÅ‘ÊW ¶ojNNNƒëk*§ðÞ½{ JÔÍk cÆŒéô‚ŽˆˆLŸ>½SçüU™3gN›ÿ6:ŽXW¯^ÅçÏŸ[|¾ŠŠ )Ç233qöìY̘1‹/F```‹“ÚþøãÜ¿¿UknŒ˜˜Ì›7¢¢¢ÀÑ£G±dɨ©©‘¼•-[¶ÀÂÂEEEDû‹¥–ÍÇÇGÉ¥býäÈ‘øþý;RSSÑ»woÈÉÉÁÚÚ#FŒÀÚµk)×HKKcþüùðóóìY³`jj ˆ‰‰µûõ9’Ïu&‚‚‚ VÅá÷ßÇŒ3pæÌ™6Ø·o߯›7oÈãk×®±“””D<6'Nœh´áõ±cÇðåËʱ¸¸8Ò<µ!Þ½{‡OŸ>‘Ç?n2ºiÓ&µeìnnnl2Í1räHHIIáСCoô_KÂG"""˜5k®_¿www6­Ž&<<œ—ÜAˆ‰‰!&&†R¸Œ””øùùáüùóPVV†ªª*É€ ¢¢UUUxûö-ѯJMMEPP¹± Óé$Ç588¡¡¡¤Að¥K—ˆw>%%UUU人9X999ÈÌÌDnn.ª««Q]]òòr$''#??PPP€Ý»w#%%…Üû“’’ÕlSëçÏŸ“H@g‘ššŠ¨¨¨NóWE\\œÍfèŠp%DXSSƒ”” <¸ÙpRVV¾ÿÞ!kÕÖÖFjj*ÉM122"70333DEE!;;ÚÚÚˆŽŽ&ÞÞÞÄM¿xñbÌœ9½zõÂàÁƒñèÑ#hhh—‹‹ † ‚ââbŒ3"""ÐÕÕÅ£GÈk=}ú46n܈ˆˆôêÕ«ÃBzÆ ðaÚ=ïÇ2_FFØä$##gΜ!bcÇŽmqUÝ¡C‡7oÞ@@@;vì ½¸X¼}ûááá$ñ»±ñQQQ011¡ûþý;bbbÿþýûèÛ·/ù[¸t霜œød5¡_¿~­nµ±k×.øûûãÏ?ÿ„ƒƒTjOMMmtŒ>}ú`ýúõ˜6m1Ü[ã…æÑ5©®®FRR¡ªª EEE(**";;_¿~…ŒŒ .^¼H¼PòòòÈÍÍEYY¼¼¼0þ|6Ce̘1Ä(~óæ V­Z…gÏž¡_¿~2djjj°`Á())áãÇX·n´µµaooÇãâÅ‹¸{÷.zôè‡âÖ­[€ÀÀ@ddd ** {÷îEuu5rssqåʘ˜˜àòåˇ˜˜¹W6†··w§7711i•Æ\hh(>~üˆÞ½{“ŠÞˆˆÈËËSTÓýýý‘›› eee5™gYYY‰‡âÍ›7PVVÆÌ™3QVV???Ì;—üvùøø`È!ÐÐÐÀµk×(÷Ç‚‚øúú‚ŸŸ£F‚††F“é:›6mÂŽ;(ÇX‚Í}úôAII ž={†É“'ãñãÇ Ñh022Pû™[XX¾Á-%((t:½U×p®XUUUxñâegÔï«÷\rr2egTV³çŽ‚uSjˆº_âºê²¬?  ¶Ù)‹ºíNêz©X!C µ&PVV†²²r›^Cc0™LTVV6ùÇÊd2qýúur#l,œ˜˜”””´èš””ddd´J¼vÊ”)8{öl“aTUUUJÛ½{÷pæÌÐh4,\¸(ĵùKkÖ¬AZZÄÅÅÛTD‘ŸŸ¥K—‚Á` [·n8tèyßSRRpäÈôìÙRRR°²²jñ¸¬õ>nnnø÷ß±}ûv¶$ßððpÊcEEE˜™™áÝ»wÐÕÕå¸ìÎRUU…½{÷ÂÕÕ•Øæææ(//‡³³3rrrð÷ßÃÀÀöööðööÆÂ… ñéÓ'Œ5Š|¿,--qíÚ5DDD`Íš5¸~ý:***ˆÁ­ªªŠêêjäç磺º'NÄßÿÔÔTŒ?<@Ïž=annŽôôt\¼x‘²)öòòÂÝ»w! €Ñ£G“ãZZZ8xð BBBHÚ€¼¼<Ö¯_pwwÇìÙ³aaaÑìýfRRR”{Fsœ;wcÆŒAaa!ôõõñæÍ`üøñ”{ÿÎ;±{÷n¤¦¦b„  ktÌ;w‚ŸŸæææˆEQQrrr°yófðóóÃÉÉ IIIpvvÆÚµk¡¡¡Á¶ÍÉÉÖ¯_cÇŽ‘â­Æ`mëâêêŠGÁÛÛyyy8zô(&OžŒ‹/"44ÑÑÑ””Äž={0yòäVX é¹uE8b`ùøø4¾ÆÜ¹s)ÝÙ-,,Ý€¤¤$&Nœ333 aùòåžÛ¥êÄÄD¼~ýrrrÄHb0øúõ+ÄÅÅÉ»°°¥¥¥Mö†óòòÂíÛ·qâÄ $$$`ÿþýpvv&º4k×®¥(†7Ä÷ïßÁ`0ˆÛ½£ñ÷÷GPPP“!/†Í›7SŒÆ¶rðàAÐét\¼xlùu€LMMa``€ÂÂB¶hž%K–ÀÆÆöööžsáÂ<}ú¢¢¢¸~ý:<<< Vç§îÍòîÝ»8p Ž=Š;v4™0 9QQQprr‚””|||™™‰ãÇãÑ£GÄÀSVVÆôéÓ1lØ0˜šš¶è5ÖgÔ¨Qðòò¦M›`gg‡;vÞtùùù ߣ)S¦že...mš¯#˜8q"¯ëB‘››‹M›6aáÂ…ä¾ÄÏÏØØØàõë×pssÃ;w0{öl˜˜˜@BB‚xqYXYYaäÈ‘˜?>ñ\|ÿþ(Á»»»ÃÐÐGŽÁðáᨨˆÏŸ?#%% Eii)âãã°ç^UTTVçîÝ»‘кž///\¸pæææX¿~}“>L&³ÍERí¡µ ㆆ†2dBBBØB±ua½Ö#GŽ //Ý»woð¼ÈÈHlذ#FŒÀˆ#ÔL&L@pp0œœœpéÒ¥f7S½{÷†™™ú÷ïeË–5i`±ðññAbb"6oÞ yyyâ©ßU`Þ¼yØ·o_»´_¼xUUÕ76çÉÁ’’’jU|´¬¬¬AãJPPFFFؽ{7nß¾uëÖQ¼AqåÊ$$$´jÍ@í—rΜ9˜={6–,YBŽGDD@NNŽÒ&eÖ¬Yüüü(=¿Z‚††,--[÷BZAcêÎAlllƒÇ‡ ‚µk×âöíÛØ³gÆ×êx;N‡““%qvÕªU°´´Dpp0€ÚDû»wïâúõë(**É\u¼_¿~MnX-é±ùçŸ"00¤5Nnn.ÌÌÌpòäI¤§§sDAZZšì—-[F çøøxlÙ²…|šjÛ™ÈÈÈp­géÏF=`kkKÙ`>}ú/^¼@zz:=zD¤:ºuëUUUxxx9,DDDpúôi,^¼˜“““ÃîÝ»±{÷n ÃÈÈ$›®nݺ!66êêê˜5k’’’ ­­‰'²U£Ž=ĵk×HPcˆ‹‹ãßÿEQQ¢¢¢`ooùóç“ïNc?Ò½{÷ÆÇ[øÎu ÷ïßo±þ# ???lÙ²ñññÐÑÑiô¼õë×cæÌ™˜0aB£ÆPkünݺÚÚÚ8räÉU€ŠŠ bbbðöíÛ&çjµòÖ­[GGljPïÙ³Ÿ>}ÂæÍ›É±­[·6XÑomm§OŸ6éPiŽ¿þú m¾¾³àºL6¡Á!C†ÀÔÔÆÆÆmòF]¸pååå 6=mŠË—/ãÕ«Wèß¿?P^^ޤ¤$²Ã¿qãRRRЫW/„……A@@X°`’““ñäÉÌœ9çÏŸ‡»»;ÒÒÒˆ·êíÛ·ÃÓ§O±iÓ&XXX`Á‚¨©©““ áèèˆëׯãÆسg¶nÝŠôôt ÁÁÁ›6m‚œœ<ˆ·oßbèСX¸p!”••ñWÌŽ‹ IDATùóg\¸p¯^½‚   fÏžY³f5ûš§NÊ•$÷””JB¨¬¬,rrràëëÛaífìííaddDÂ’ÿûßÿÈsþþþ”s%$$ÀÏÏïß¿ƒÉdB@@€†022BHHÆŽ‹RAƒµÈp~ôè~ûí7üùçŸprrjR(699555mRñçççDzeË ¡¡­[·âÝ»wpssã©¶ÿä Á××—rLAAÞÞÞøöíôõõñÇç\\\0nÜ8’+J§ÓIþŸ€Z¯RCÕñãÇcåÊ•ä‡ÚÉÉ &LPkäŸ;w^^^ÈËËÃìÙ³€tسgnß¾üü|Œ5 ŠŠŠ`2™Äp——‡™™àðáÃFee%âããáïï!C†`éÒ¥ÈÏÏo4\–ŸŸßéýpKJJZ]u«  ¸»»7éqsppÀÛ·oqñâÅ&½s#GŽÄÝ»wñíÛ7899AAAjjjjï‡NNN-J?PVV†ŠŠŠÐ¤·0++ W¯^eëñª¦¦iii¼xñ‚rœF£aÆ عsg³ëhŒÁƒC^^¾Í×w1°Þ¾} •&-m5558sæ dee1yòd˜šš6Ú¤¶¥´¥Ùsii)Ö¯_}}}ØØØÀÙÙ™$2ûö 4´ËIMMEaa! ++ 999lÚ´ /_¾Ä»wï ¡¡&“‰“'O’`dd$ÊÊÊðøñcdffÂÑÑ:::`2™8þ} ]]]Jþl\\ÔÕÕ!-- J‡ ÃÞÞž¤B4†„„† †Ã‡CWWóæÍƒˆˆ^¿~ÍV\ ++ OOOÌœ9¾¾¾” ››¦L™Âö7dbb‚ŠÒÒRDEEþ9êF“º21°6oÞ —åìdeeÁÕÕZZZ3¯_õÕöîÝ‹ŒŒ øúú’Þ÷ïßÃÁÁ"""0`i)sóæMìÝ»K—.Åœ9sÀ`0ðîÝ;())áõë× %ñ#FŒ@nn.RSSajjŠ+W®ÀÛÛ¤ÿðÿ?²oÞ¼Á°aà ""`ëÖ­ÐÐÐÀþýû ¼yó‚‚‚¸ÿ> ¾}û†˜˜øøø`þüù-NXŽˆˆ@XXX‹5’:‚ššXXXàØ±c$<ùøñ㟥„Ô&»O™2…휆þ6GŒ³gÏRŽÕu7ÔÈuÒ¤Il;©ú9-ëÖ­#ÿ?þ<Û¬Îu¯e§-ÈÉÉáÔ©Søßÿþ'''¬^½ºKiõܺu 'NœàµËéÊÊÊàè舋/6ZÛ044D÷îÝakkÛdksÔ/ªKgW@mJKk¢&ƒ bËUVQQÁáÇqüøqµ@u Ö¯_íÛ·cÖ¬YpqqÁƒ(VPPþúë/Ðét 2–––HOO'wwwµ!TV!İaÃHа°0öïßOŒ>lܸ< Eõ ,MMMŒ5 žžžØ±c<==Éšûö틹s碠 @­¡ÈŠ lݺ...àããCBBŽ=ÚbëGë!B(((tè˜ééé––nqnQzz:ùQ;v,9ÊÊJDGGcÆŒäx]-+HHH@qq1V¯^MëV²Ba¬ëÇDKK‹$Ž6 /_¾Djj*qÇFFF’/ ÒTÕÖÖâââ7nèt:øøøpýúuœ9s>>>°³³ÃÀ¡««ÛìkÇ“'O:ÕÀâççg“MàM¹Ò RSSÙªSRRзoßWµpª÷XG¶ÜÄš5k ©©‰;wâÝ»wpuum²Ü›ÇGAA®\¹‚ƒ¶Ëpá4ÂÂÂ7€’““;´]ZK¨©©Ajj*TTTZt~C‰ã‹/¦ä¾À™3gÈÿ{õê…C‡¡²²sçÎe«¦tqqa+ZQRR"Z{,Xy¡@mñ@}X†²!{üø1Û8Àÿo‡N<Šu×\w=uÿ¯««K6Ö_¾|Á† ØÆnŒ .@__Ÿ„?»*\ïEÈ –,Y‚þù§Å绸¸ ¼¼×®]ãGðèÑ#tïÞïß¿“É„ˆˆBBB`mm &“Iv ŽŽŽð÷÷g3¸€ZãHBB$‰œ^^^055ÅéÓ§1gÎhhh¹Ù³g£ƒ•LM§ÓQQQsssDDD\†7nàÓ§Oð÷÷GEE|||°páBCVV222-Ò¶js°Ú ïŠdeeÁÜÜcÆŒÁСC)_vEEEj«W¯f“ yùò%´´´`ii KKK>|˜ckç$'NÄ… ˜˜$%%5znc<º.½zõÂÖ­[lqÔá;š/_¾üȆ¨+ÖÛZÔÕÕñîÝ»6_ß‚‚‚Ú\ÜZš«¤çãÆ#¿M‰‰I«Â«'Nœ`ËùêŠpăµ~ýz®–^khh4é>®Kii)ÔÔÔpæÌŠ—ÊÃÃèC…„„Äf†eË–¡wïÞHMM…ªª*òóó±eËŠ{sÒ¤I077FàAƒàîîSSSøøø`Ú´iprr8;;CHHÂÂÂpwwÇãÇIˆÓÓÓzzzÈÉÉAß¾}!//ˆˆܼyùùù°°°€••RRRðßÿ!++ S§NÅÑ£G[Ü£IJJªÓ›¢r'''Ì;³gÏFQQ&OžŒ!C†@__yyyðóó£Ü(˜L&õZUVVbܸqõ븸8ðóó“ÀÍ›7aaa&“‰{÷¦¦¦¦àããÃýû÷¡¤¤„‡bêÔ©èÓ§g߀&PRRÂÙ³gáéé GGGJø².Çoµ6M[ÐÔÔì–O>>˜››ÃÑÑ‘àÓ§O7Ü¬Ü ¶ãïï bH³’žY²555¤E K{ª¨¨•••”q¾ÿŽÐÐP0™LhjjÂÆÆ†ä‰ˆˆ ¸¸ß¿‡€€ñø[YY!$$„xö_¿~?ÂÚÚt::::$”™™™‰ÀÀ@Œ3EEED€ôßÿEXXf̘iiiøúúBFFééé˜9s&ž}úp½9 œ={ùùùðóó#!ô´4|øðEEE¤’•G×§¨¨Æ £„Ý oooœ:u YYY”J'NÄýû÷ñÏ?ÿ`æÌ™ÍŽ_^^Ž> ´´”­óØ1cðäÉ<þVVV¤íÙ“'O`dd„7âùóç’’‚ àŸþABB¾|ù‚Ù³gcàÀرc)),,Äõë×!++KÒ#ddd   €àÅ‹ðó󃉉 ›Ç¾³+­ñ`ÀÁÁ°²²ÂôéÓ‘––†¼¼<¨©©ÁÒÒ¶¶¶xõê€Ú¤x+++X[[ãöíÛM޽`Á˜™™aÚ´iX¸p!é|2qâDÊyñññ6l¬¬¬0gÎDGG·òóh ŽXUUU”òÐÎfÅŠxðà׿ÿ‘ÐÒÒ"š3?D\\9vçÎhkkCTT”(°———øøø(ù)¬ã²²²PVV&áÓþýû“,Vb¥­­-®^½Š;wî`Ê”)‚¼¼²²²àç燔” „ 6 ÿþPQQÁرcáááCCCÒÍ‚%;bkkKYc=ˆW7??Ÿ%žhTUUŸŸ555j©ƒƒƒqãÆ üöÛoxõêñÐãÕ«W­VVoÁÁÁpuum²x¤.·nÝBTTY3«8uj›Þ³*™L&ÊËËñæÍ›U_»v t:±±±l©&ua0())ADDÄ“{÷î]ÈÊÊvùÔ®Ë4p‚3gÎpÍEü£Ñ’fÏ?ÆÆÆ Exx8 ```~~~Ü¿>„••1·nÝŠÈÈHðññaöìÙl¥Ïššš”<9Ö°[·n¸ví¥ âðáÃHJJBdd$ kìß¿Ÿ$Œoܸ±ÃeI: --- ±X‰‰‰ðôôl°D»½”••Q~Px´úž(ooo¤¦¦BII lò(.\Fc‹8¡åººit:›6m‚‡‡Ž=J¹†N§“‘ìííqíÚ5Ðh4X[[ÃÓÓ&L@tt4eã1iÒ$Ìœ9yyyxõêU“¢³ºººðððPÛŸ633"""èÙ³'%‡iРA VSrEEÅVåÖÔÔƒfÍš5 ³³3,,,ðþý{XZZBII‰¼Þ¬¬,ÌŸ?¯_¿¦´k IIIˆ‰‰AHHŸ>}jô}}ùò%ìììùCTæµ26œªhìH~J«±/Vtt4Þ¿ßl§õS§NANNŽ’4Ùæææ¸uëV«ÖçííM’°MLL°dÉ’6S—Å‹cëÖ­D¹¥øûûãÆðöönóÜ]YYÙ{8 ±ºZAM}Y¥¤¤M^mè:ŠN]aWmlÓ§O7Z6øðaLŸ>—ÞÅ)--¥ä#ÙØØàåË—øöí:DDqYÒ%¬ƒÁÀ±cÇ¿ÿþ;>þLÆ H˜››7Ød÷Â… ij"''‡ÐÐP’à¾råJäääàÉ“'˜1c„……±hÑ"ôìÙâââƇ(t,1P»IΞ=‹””¨««#,, 4 ׯ_§X,ã°3Ñ××oÕ=\]]=‚‰‰ öíÛ‡}ûöïÜðáÃÙÛËÉÉÁÏÏ999055Åøñã›ôd™˜˜@II RRRð÷÷'­Œêchhooo¼zõ Ë—/o6¿«+ÐR!mnÃkÊ”)\ítåÊhkk³µÉÎÎÆ»wï(ƒÁÀ‡ --MŒ“ÊÊJTTT 66  $LgeeALLŒôu«Û{*##_¾|Á°aÃõ9rÏž=ƒ§§'”””HO¼ââbTTT 11‘üˆBPP"""(--EMM $$$ !!!@YY@m,V.QNNÄÅÅ!""‚ØØX0 <¸Á*!!¡.­ú̃³¼|ù¯_¿nR¨Í«\¹r%îß¿OI”n/òòò]ÞÍÿ£——‡>}ú 33“xðLÕ¨Ÿ³ÄÇÇGšn×ß 4t~CŸYý6L†††”ǽzõ¢xÐê Î;4 ¢¢¢¤è†ÕÝ nRdeeÉæ¨³t§8Á¾}û°`Á˜˜˜@[[>¤ä 5F¯^½0wî\œÅáÇ1oÞ< 2555àçço°+q›Ç¯‰žžTUUÁÇLJ‚‚$&&6zndd$N:E‘0i/ãÆksi;*L&eeel!ÞŸoÿþýøý÷ßÙÂýœ$##7oÞlñ÷cäÈ‘xöìÂÃÃQ^^Ž3gÎ@AAÕÕÕØ¿?Ûùu½ˆK—.Ell,rrrŒØìرß¾}ƒˆˆÖ¬YC6ѬßF ÖøîׯEQþï¿ÿFaa!Þ¿ß`DÐétHKKcÐÈȨÓ%&æÎ‹9sæ4Ø­+ñS†W­ZÕbUXkkk¼zõ ±±±8}ú41°&Nœˆ­[·"44~~~ppp@||<6lØ€ššìܹ“b`ÅÄÄ@OO³fÍj²Éu~~~ƒòþ îîîPPPÀ¤I“ØÔÄë"((ˆ“'O¢²²&&&ÄÀÚ»w/zöì‰'NRSSaccƒI“&ñ¼T<„ݺuƒ¦¦&¶lÙ‚?"88ÁÁÁxûö-›ø¶mÛÝ<ðà.=zô@LL ¤¥¥¹½®³fÍPPsšgÏža÷îÝ­Ú€tëÖ “&M¢h°ð¨®‘N§CSSEEE”P*‹Æ~ÿz?ê¦-ôêÕ ½zõ‚˜˜Xƒ!EVÑ€°°0Y#7„““““)•¨]•ŸÒÀjÛxåÊ•ÐÕÕň#ŸŸO~PXU.222ÈÈÈ@JJ ª««°··§ŒsìØ1x{{ÃÆÆvvv°³³kp>999DFF²åîðóó“äg ‚ŸŸŸ”—””sYÉ…„„(%ÿIIIu[œ={{öìÁ±cÇT¾åF³çöòòåKJÇö_NhT©ªªBUUÎÎÎ8tèNŸ>!C†àÉ“'¨¨¨@yy9¦OŸÞ©ÕY ¢¬¬ „ªª*[¯¶7oÞ`ÆŒèÓ§îÞ½ ;;;ìܹ®®®”œ777¬^½...PUU…··7¥B­.zzz8~ü8 ///XYY5ùº;†Ý»w£¼¼NNNˆÇÒ¥KQYY‰„„„ ,n4{n+âââPQQ!aUµ§ÚsHHH {÷î¸rå JKKñðáCœ;w‘‘ªªj»çxñâBBB°eË–X1Ë—/ãÙ³g°±±ÁøñãÔz¶“’’°jÕ* 4UUUØ´iJKK±mÛ6tïÞÙÙÙØ¹s'„……±k×.ðóóã¿ÿþÃÑ£G¡¦¦Fî÷îÝC@@ŒŒŒÈ÷ðâÅ‹ üyóHNÏÎ;‘žžŽ¿þú  @yy96oÞŒŠŠ ìܹÈÈÈÀ®]» !!Ðh4¼{÷'OžÄ!CH7ŒÛ·oãæÍ›011!gΜÁ›7o°`Á’æîîŽììl¬_¿W¯^íÔ÷¨um(´Ç£ãa)ýwu8b`%&&R’¿;›%K–`öìÙlÕ‚***èׯ©Î000À¡C‡pîÜ9¨««ãôéÓ ÑhÐÑÑÁÀqáÂX[[ÃØØ@­ò°¯¯/|}}‰8§ƒƒ€Z£ÎÏÏýû÷ÇæÍ›QSSƒ;wî°uL·²²‚¼¼<ððáCna³fÍ‚¤¤$tuu‘’’‚óçÏcãÆÅ{¶hÑ"ÀŒ3Э[79r§NBvv6"""àïï‘#G6šg5uêT¶Ö® Nïð\ -CTT°°°@MM æÏŸß!㦦¦âáÇ<«ƒ`å_ÕíÃW]] >>>²Ñc0¨®®???Éa2™ä뼪ª*0™LJOJV•[Ýñ+++A£Ñœ“5~Ý9Y0™L0 Ê:XsÖ e£Êš³þÚ:£&îS^^:ÞåÛ ý”!ÂÆš=³*#êS¿U «×_ýØx=ØøY†ÑìÙ³)ž•¼¼<8p Áõéêê²UáÔ7°XÔ%üÈ2°êjÕ,^¼mä[—Ÿ±Ù3ÎÂÏÏÏÓ™ë¢888Pî%ØT¿ét:›§EVV–È4°ÐÒÒ"ùœ,ÌÌÌØ:?°××¥¾Á,**Ji–ÔæîÔŸ³~ßW VÛ«¾¾WCÕv¬üYnñáÜ={¶Ñû>ŽÃÜÜ .ìòÑ Ž´Êéß¿§VoÔgçÎ\o8ݽ{w¶¦Ì]‘¯_¿’~{}ú„˜˜L:•ÛKùaxöì·—ðC“““Ñq_¾|‰;w¶º—ß7àãヘ˜R¥Ùzöì‰ &ÀÙÙ¹S —=z„§OŸâ¿ÿþ#•žm…N§cäÈ‘øí·ßZÔÄÙÞÞ‹-‚££c»æå41°¡¦¦Æ5«gÏžð÷÷ÇDZ|ùr :IIIØ·otttH• K f÷îÝB`` îÞ½‹%K–@SS)))ðôôĈ#°páBÀæÍ›QRRÒè5Ÿ?Æž={ ©©Iªk¶nÝŠ¼¼<ìÞ½¸qゃƒ±hÑ"hkk#-- »wïnò–ÌÂ… 1jÔ(dffÂÃÃ&5Û·oGNNvíÚ111ãÆptt„ŽŽNƒ×,]ºEEEðòòêäO‰àÕ«W8qâÏÀj!fff Á‡¸½”–=zpDá===½UM¦«ªª`ff†ÈÈH|ÿþ½CÖðâÅ \¸p.\àX ªÏŸ?cæÌ™HHH@^^^‡{õêUHKKCGG—/_nŸ2û IDAT²RYRR’"ä&ÒÒÒèׯñd‰ŠŠBII‰4t€¾}û¢²²’xozôèA¹FLL ŠŠŠ”kúôéƒŠŠ ¢ÉRÿ(**Rš]÷éÓRRRdÖÚX» aaa(**RÔsë_Ó½{÷¯©Û¦@QQ’’’DC†µ6ÖjC×èêê’&¯~üء㵺h999¸sç,,,ðäÉ“Fu®nݺEÑJëªtý¶‘ñãÇ%c VçÅÅÅ…rÎï¿ÿNy?‚qp¨ŠÐßßœš?&&&lb–ÿèÑ#Žôbíh8b`‰‰‰ý0&<¸‡´´4ÌíeðàÑnîܹ}}ý›““ƒÊÊJò˜£F‚¶¶6i‰¦®®N 9Šˆˆ@]]’’’PRR‚ºº:ÄÄÄÈójjjPWW'i%ôÊþŸŽÊkˆúáÀOŸ>5z®««k“XWá§ÔÁâÁƒ<:“ÊÊJ”••µú:555|ýú¡¡¡ Å«W¯À`0@€þã? \½z±±±¤×­¾¾>ââ⋞={vØkjŒ… "++«Á†ïgΜAVVvìØAŽ­^½YYYøòå ÂÂÂ(=z—,Y‚ØØXTWW#%%¥EÑ/MMM(**vÌ‹á q3…‡‡cÀ€?„Ò*<¸G^^rss1`Àn/¥KA§Ó±wï^?~œÛKù%ÈÉÉÁĉÛ5Æ”)SÚ¤)hggAAAôìÙ•••4hàÒ¥Kððð€ŠŠ ’’’0oÞ<¼xñ‚xvŠŠŠàää„mÛ¶aåÊ•(**‚„„D»^CKEïÞ½Ù"UݺuÃܹsQRR‚E‹aË–-¨©©˜˜z÷îY³faÊ”)رc®]»†ŒŒ ìÝ»gΜÁôéÓ¡®®Þ¢ÊÄ%­€#Ö¶mÛàââ###N σŸ„;wîàĉxúô)·—Ò¥¸xñ"Þ½{×)s#..ÚÚÚ2_C„……¡ººcÆŒáÚÚk` @II©Õ×=þ®®®øüù3>|HZÍyyyaÇŽ˜;w.þùçhiiQ”â_¼xüõ×_°²²ÂÙ³gl‚ݙ̚5 °··ÇÕ«W1iÒ$“ç QQQòòr ¼¼eee°°°@EE|}}[%uÑÕá%JñàÁƒGcðàÁ–›¶iÓ&„……áÀ2_C¼yó sæÌáÚÚKuu5>}úuuõV]w÷î]¨©©ÁÎÎsçÎÅôéÓ!++‹ôôt„††bÞ¼yAyy9®^½J®c2™8tè>Œààà&s–:‹ùóçãÍ›7¸yó&’’’0þ|ŠuõêUHJJbûöí$I}üøñøóÏ?1þ|¬_¿ŽŽŽ8þ|“óœ>><{ö¬Eò- Ê)Zl`ñóóSt;º:?~Dnn.àþýû˜5k—WĨõ¨uV¥ <‡Á`ÀßߟîäÉ“9žËâââ˜6mZ£Ïoذ/^¼àø:ÚK‹ ¬Ñ£G#11iiiÍž;sæL®¾øššÜ»w<ŽEJJ ×ÖÓ™´4pvv6âââtoóø5¹víÌÌ̸½Œ_’ºáA\‰T„……aÈ!$d¼k×.Êófffä¹ú9=îîîä9555TTT炃ƒ¡¦¦Öl[•ÂÂB\ºt fff1bΞ=Ûê×pïÞ½VÉ$¸¹¹PG£ªª {{ûwíÚµO5¡Ñh4h&MšÔè9=¢„(»*-<¶¶¶Ø¶mŽ9ÂQ뻽„‡‡³Iús]#¤3ðõõEqq1æÎÛ`(®ªª HJJêÔ8vUU¶nÝ ccãNÉÑãñcPYY‰ââbn/ã—£¸¸·nÝb;ž——‡{÷îÁ¢S×Ó£G:tˆ<®¯Òíææ†’’`3JfÏžMÑÏ$ÿ×ÖÖÆ±cǰvíÚf7ÙBBB055… &Nœ77·V½•V…WñíÛ7:tß¾}£†mF£¡gÏžPUU…¿¿?GÚÕIJJâÎ;˜>}:RSS;ü»Û£G <ׯ__ãþŸ5kÖ`øðá:7'hÕ'pôèQÂÎÎ+V¬Àˆ#(½º ÅsïÞ½‹%K–4ù¡ý Œ7ÖÖÖð÷÷ÇàÁƒ‰kÜËË ¹¹¹ˆ‹‹C^^Û‘S”––"** ‡Nǹsç:e^þŒ€€¬ZµªCÆ[°`þüóOœ8q‚H:TWWÃÙٹ˧»())aêÔ©pttıcÇЭ[70™L;v !!!dãßVfΜ ;;;L:µƒVÌÚ¤¥Ñh0`@›EOœ8uuuXZZ¶uúFÙ·o_£Ï½~ýÆÆÆ]2¬Ù‘Œ7çÏŸo4¦ïîîÎ˃âÁãÅÏÏHHHH@RRÅÅÅ Óéøúõ+€Ú0áÏ``%&&¢²²/^ĤI“ $$ı¹^¾|‰ƒv˜åææ†ùóçc̘1˜0a)ÞÒÑÑÁòåË;dN²{÷nàÝ»wä1ƒÁ ¯›UÝYQQˆˆ¤§§“óòòòتÿ333A)Æøôé^¿~‘#Gþ9‚1°šíØÑ0™LøûûcÙ²eˆGII V­Z---äååáË—/ðôôDtt4233;umÜ`òäÉl;Æ3°xt)ÒÓÓñìÙ3n/ã—AXX¸E=I…„„ //ß +úù°¶¶†¾¾>nÞ¼  Ö Ð××ÇèÑ£ˆ‡ŽŽFÒÒRµÕﺺº”d÷ÇC__Ÿbœ­Zµ úúú8}ú496uêTèëëãîÝ»€¢¢"èééA__IIIjìutt`hhH ±€€èééaÞ¼yd¬}ûöA__6l ÇþøãèééáâÅ‹äØäÉ“¡¯¯ÐÐPÀ÷ïß¡««‹Ñ£G•÷·oßBWWß¿'aé+W®@OOŽŽŽd,èëëÃÝÝ[¸p!ôôô(â·ãLJ¾¾>ÂÂÂZøipŽô"ì(***ޏ¸8òá4u®½½=¤¤¤ŠÐÐPDDD 33“$|‹‹‹cýúõ¸téÒ/Ñ›pèСäØéªö4 ***000€¨¨h§ÎÍãç%%%oÞ¼áö2~ *++!##Ã{?ë‘ÝìïNCÔOà¦ÓéÈËË£SWWg+›6mÛ|7nÄÆáàà@Žùúú²)î×Ý”@aa!åØðáÃÙälllØ„[·oߎíÛ·SŽ5”Z“@yÜ£G6]¬Q£F¡¦¦²²²$¬9þ|ÌŸ?Ÿrž§§'<==)Çú­j‰ÐyW‚#ÖÈ‘#Ñ£GvqëÖ-Ì™3L&l“<VV Ú¤Êû3ÀÚ±¨¬¬ìô÷‚Éd"11eee8uêGÔ…yü¸ A\\¼U×Ðét>|˜ã2#¿œÍù‘©®®†©©)·—Áã†#ÖíÛ·Ûuý­[·`mmU«VÁÒÒ²Í%þ—.]BØÿ±wÞaQ\Ýÿì.U* (VˆEc×(*öDå5vMÔ¼6Ô`ï½ÄJ,‰Á•Ø ¢HUìTAÚîï~;/+EP–EœÏóøÈ̹÷ìl™3÷žó=W®hT/DÓ 8°°0AäS³H …‚þù‡±cÇ’žž®25,òeãââRà`UqIQ¤(øé§Ÿ>‹L5‘âK±Ë"Tê|Œ=šÞ½{‹úIŸH§N€Ì©ZM-ÑI$:tèÀŒ3˜9s¦XEDDDD¤ÄSì¼—K—.ñúõkúöí«iSJ;vD"‘àìì¬iSèØ±#¥J•‚?EDDDDDJ*jY"œ1c¤Aƒ>÷þýûXYY©ì|ooo•TÓÜ ãÝ»w¹*»)XYYV$סbÅŠ¹Ö‰’H$X[[çë½ù2 ÂÏÏO| QwîÜáÅ‹´oß^-EDrC-Ÿ¶]»váèèøQÖ“'O>(D¶sçNüA QP3{{û"«Á8yòä< qššš~v™ "êãÖ­[lܸQt°DÔ†  @¡PЧOú÷ïÿQ÷&%AAA*Y}E2™¬ÈÇ-,âããY½z5ÇŽSûXáááj#¿;w^.—çK¥vРA/Ò)’üñƒÇd¦Q'úúúLž<™Y³f±qãF6n܈µµ5®®®ôíÛ·@z_;w&222[†¶ºÉÈÈ@¡Pù¸……B¡ %%¥Hì755¥gÏžj'?;KD¤ sòäIILLÄÒÒ’¾}ûR¿~}M›&""R pvvfÖ¬YÂvPPóçÏç¿ÿý/­Zµ¢ÿþôèÑド@ÆÆÆ*œEÅœ9sÐÑÑá—_~)ò± ///ú÷ïO»ví4mJ‘¢ëÑ£GyÆP‰ˆÇgùòåÈårêÖ­Kùòåù÷ß±°°¬Ï€Î;Ó¬Y3M›!R©Q£:::*åk s6ýÂ… \¸piӦѽ{w\]]iÕª•†,)I¨%‹PWW·XÉ+lÚ´ WWWFŲeËxýúužÇ~üX¥ÍÍÍMeŒ mÝ»wWi7nœÊ¹YÙ·oŸJ›Ð¬Ò¶råJ•s­­­…¶÷u¾FŒ!´UªTI¥mÇŽ*ýfUèö÷÷Wi{?i¥FB[ÖÒ'ƒÚޭذaƒJ¿YºoÞ¼©Ò¶cÇ•s+Uª$´1B¥ÍÅÅEh³¶¶Vi[¹r¥J¿Ykáùøø¨´íÛ·OåܬmãÆSiëÞ½»Ð–5ÎJ&“a``@^$%%qðàA¾ùæjÕª%”˜ùX¾ˆ%Âëׯ3qâD*W®Ì‰'pttäßÿÅÄÄÈ”ß711AOOØØX–,YBóæÍ166æÝ»wòàÁlmm‘J¥„††R£F d2ÄÄÄ —ËIKK£J•*¸Ϟ=C"‘”””kÜ‘­­-;wî2¿à]ºt¡aÆ*Çœ={–û÷ï³ÿ~ÒÓÓyþü¹Ð–@hh(¶¶¶‚Ú}HH–––H$ /_¾DKK‹7oÞ`eeEJJ ÏŸ?§Zµj…y™‹¥€ìˆ#°³³ö …j:DBB×®]£\¹r4iÒ„+W®0sæLÒÒÒhÖ¬þù'‡ÂÃÃ*Uª°dÉüýýéÒ¥ r¹œ›7o’ššÊÛ·o™4i*T eË–ÄÄÄpûömttt4òú5I¥J•TœÒÂ`âĉ 8PØÎz]Û¶mË™3g„íÚµk ›ššª´½S³gÏÁ ~¿€ñ´iÓøî»ïr´§cÇŽ*ýfuªU«¦Òfnn®rî¡C‡„R(eÊ”Qi›={6cÇŽÈö Ú­[7lmm…m¥ó©ü;ë˜ï=JFFé¸feþüùLš4 [UŒ>}úдiÓû­S§ŽÊ˜ïˆþûï¿…ß¶÷ÔÅ‹mEÃÕÕ•–-[ ÛYë#6hÐ@eÌ÷¬mï':-_¾\¨ƒûþ÷2?B&&&8;;óÝwßqäÈüýý³•¾Ñ¯^½B[[»XØò1¤¥¥¬±âŠýzüø±ZÊç©ÅÁ:~ü8Mš4Qq6²’’’‚‡‡‡Pø2+~~~ÄÅÅ1gΜ\ûŠŠR©°tuu©^½:ãÆãúõë8p€ñãÇ3räH*V¬HDD£FB&“ñúõk8@çÎY±b1114lØ333&MšDíÚµñ÷÷gÙ²eèêêÒ±cGœœœˆŠŠ¢W¯^ 6Œ7rùòe´µµ¹}ûv®vI¥Rôôô>|8S¦LQù…ÌLjˆBBB°±±~ä–.]J@@õêÕãÉ“'´k׎~ýúQ¿~}üüüX±bæææ888вeKz÷/'Ož¤bÅŠ$''g{òþ\HKK#((GGÇ‰ŠŠ"!!‰DÂÒ¥K±··'==RRRX¹r%lÚ´‰;vðçŸ2räHnÞ¼‰‘‘&&&8991uêT 7nÜ >>žêÕ«S½zu† &<¯_¿^˜qiÚ´©ÊÍ£$Ò¨Q£gZ?åu͉œf˜”èêêÒ¤I“\ûÍê|¿……9¶cllüQcæ•¥V³fMjÖ¬™c›‰‰‰ðà÷>úúúyŽiooŸk›¥¥e®m+VÌ5sÛÀÀ Ï15j”k[­Zµrm333ÃÌÌ,Ç6CCÃ<ÇÌ«íý™2%QQQ¼}û6Ç6zôèAÿþýiÙ²¥àôFDD°oß>&Nœ˜ëxEÅ»wïTŠ>N$&&²mÛ6•bÑEMíÚµsýœßºu‹ñãÇú˜jq°FÍÆsu°$ ¥K—Îñ Ê»wïò”`ÉdùÊ4ÌæÍ›óøñc®^½ŠB¡ GÄÆÆ²mÛ6öìÙCåÊ•™9s¦püرcéÔ©;vì N:tìØ‘Ê•+³ÿ~¾ýö[*T¨Àºuëxùò%#GŽdذaŽ;F›6m˜>}:gΜaÿþýLŸ>È,СCæÍ›‡L&ã×_ååË—¹þ gâââ„§õÜœm¥ߢE áæÁ³gÏ022b².kkkóý÷ß³cÇÖ®]˺uëèׯ“'O¦qãÆ´mÛ–‹/ öüùóiРp}!ïKI¡qãÆ¼|ù’¨¨¨ea‰ˆh‚ëׯ«lK¥RZµj…««+Ý»wÏ1¸ýcÊ8©‹qãÆ¡««‹»»»¦Mù(¬­­qww§k×®š6%Ïž=ãùóçÔ­[·ÐûÖÈ¡ŽŽ­[·fÞ¼yÙÚfΜI@@“'OÎõü»wï ³>ÃÙ³géÖ­ááᤤ¤3!Jçæ}ç­N:@¦¾Frr2AAAèééѺukàSØåÊ•ãÍ›7Èåráæ|P×ëôéÓx{{sâÄ aß¹sç ¤U«VtíÚ•¾}ûÒ·o_î޽˔)S8pà@¶"¹Y5ÄLMMyúô)€ðÁQ(DGG 1ýúõû¨jñÅcccÊ—/Ï›7oØ»w/S§N¥B… óôéSÚ¶m+8XYŸx ‘J¥Â2ÉÓ§O¹|ù2R©'''^½zÅàÁƒéÓ§ׯ_ççŸæìÙ³Lž<™˜˜–,YÂË—/9rä;vìàÂ… ´nÝš³gÏ chª$QQbjjй¹9žžžŒ9RÓæˆˆäŠB¡“ÚµkãêêJ¿~ýÄ ³öqùòåÕòyø"b° 3-÷åË—œ8q‚¨¨(ˆ\.gÓ¦M4hÐ333"""€Ì¤ŸŸ_¶iüAƒñã?2zôh´´´ˆÏq,©TJµjÕøûï¿ÑÕÕåÎ;@æ:úáÇ…ø È ¶3f Û·obZÊ•+ÇСC…c|||P(XXXàåå…­­-&&&H¥Rþúë/š5kFRR=zôà»ï¾£yóæ¬Y³&›ˆD"¡}ûö¬]`` FFFÌ7ß|#«P(X¸p!sæÌÁß väÜ IDATߟÐÐPzõêÅþýûiÚ´©Jlˆ¦øñÇ™3g^^^x{{£¯¯ÏÛ·o-.¥ãœuÙÀÔÔ”-ZpéÒ%zõêELL üðÃØØØ0{ölîÝ»‡¥¥%ñññ¤¥¥ Ž÷€„¥ el¿~ýJ¥‹-Ð$sæÌaêÔ©8;;‹št"Å–Ë—/ãèèȪU«ò\Fùòˆˆˆ`þüùj[V‹ƒµÿ~êÕ«§Ž®?Šž={rûömŒŒŒèر#+W®f0öïßÏž={ˆŽŽ¦ƒ×¬YÃÉ“'qrr¢W¯^B𛵵5Ë–-c÷îݤ¦¦2lØ0ŒŒŒèÝ»7éX >ÈÌ^Û´i‰„mÛ¶QªT)nݺ•-3%>>žaÆqáÂaŸ­­­J,й¹9»wïæàÁƒ888Ù:àÀ,^¼˜#F`kkËêÕ«Ù»w/C‡¥uëÖ¤¥¥©ÿöÛoœ$99™иqã\ãw¾úõ뇧§'ÿùÏ8qâD±ÊQÒ¢E á7ADDIFF£G¦Q£FôèÑC-c¨åNéä䤎n?š=zäz+Uª”M}¼nݺ²ÚûAœµk׿×_UÙ§œù‘J¥BF’¾¾¾µ£D___%¶  aÆٲß§F9 Ì•.]:ÛòL½zõX°`°­­­­â`iiiѽ{w•tuKKKÚ¶m«ÒD"a„ @f© ¥“R\r•T¯^Q£FåØÖ¿ÿ÷kkkãèè˜cp|³fÍrÕez?Å¿¤cll¬’±šîîî´hÑWWWÜÝݳeÓ‰ˆˆˆ7¢¢¢˜2e !!!üþûïjG|ä,B7nüÁú‰š }ûöÙR·EDìííyùò¥ŠFÑû”/_ž³gÏ"—Ëqpp`Æ ¤§§¡•""""ù###ƒ­[·âàà@ll,[·nÍ5;¹0PË ÖË—/122Rká””!uUäËÄÇLJ°°0Zµj¥²T÷ðáC®^½Š‰‰ ;wÎõüèèh~üñGí«¥K—bkk›cM۰0æÎKÍš5™?þí‹%..ŽòåË 1Z£8annމ‰ ·nÝÊS3ÍÜÜ8ÀìÙ³ùõ×_©[·.vvvØØØ|‘:a""…IHHZZZÙ„^?Þ½{‡——/^¼(ò±•’>ׯ_'$$mmm&L˜ ¶eÁ¬¨ÅÁ²µµeãÆôêÕKÝS»ví|é ÉårÒÓÓÅø"¤(ÅKïݻǎ;„È Î_°`>TÛs#00àà`Áæ/^ ££CÕªUs<^™  Ì*ýîîîœ9s†… Ò¾}û|QÜhÒ¤ >>>* ¹áêêJ·nݸsç~~~øùùqðàAqFKDäyòä R©ô³u°’““9wîœF„Re2•*UâÞ½{üüóÏ899Y¦wñˆV. ù-¶¹nÝ:|}}Ù²e‹š-ÑÊLÆððpaß©S§xøð!666899qúôižâËJ—.M×®]ùꫯHOOçÂ… „‡‡ãèè(È>(ð྾¾¼yó†òåËcgg'Äî>}ZÈ !..ŽÎ;g2eGÐÖÖ¦M›6‚ªµ\.çøñãhkkãààÀÙ³gÑÕÕ¥C‡E–µ8~üxzõêÅÀiܸñ/]º4­Zµk¹‰ˆ"%AkáÂ…ÑÁÊÈÈ k×®‚äQQòY:XùåôéÓ¼|ù’„„„/2¾¤£T§VÊk¤¦¦²qãF ³ìŠŸŸË—/§jÕªÄÄİsçNêÔ©#<*e”ÓÚµk æàÁƒ¤¥¥1kÖ,|||ÐÖÖfÏž=BV¥RöaÙ²e$&&RªT)ÂÂÂHIIaÕªU4jÔˆ_ýUÐBÛ±czzzôêÕKe ¹\Ž››ÇGWW—ôôtÜÝÝ™={6Ý»w'""777 Y»v-ñññÈårBBBŠlyÑÁÁ1cÆ0zôh.^¼øEh|‰ˆˆ”V­ZEppp¶š–EZ‚ÜÇŸ/õru΋/P(*""%‡ªU«¢­­Í£GP(8p€çÏŸÓ¶m[ìíí©S§þù' ,ÀÍÍ SSSîß¿/mgÕÉJMM%,,ŒR¥JQ­Z5Ž?Ž 4àÈ‘#ÌŸ?Ÿ—/_"“É„™³åË—³iÓ&æÌ™#è–>}mmm¡oãÆ¹zõ*ÞÞÞddd޾¾>U«VåÏ?ÿäøñãØÚÚâáá!œsøðaàJôÊbÖ .T±»°H$*¸ïóÓO?¡¯¯ÏÀyôèQ¡Ž-"""¢”:—K–,aæÌ™Ùêsj™Áš={¶:º-žžžÂß'Ož´ªDJ2™Œ5jÌýû÷ÙµkÚÚÚŒ?¹\ζmÛ8vìïÞ½C[[›´´4d2fff¼|ù’˜˜*Uª„‘‘ddd`mmD"œò>}ú…À!S2CWW–,YBhh(2™LPÄWªß¿P-“Lzz:õë×G*•rêÔ) SúÂÄÄ„ÄÄD 3…þç`¹ººbaa!8V¹ÕëûXªU«&Ø›:::>|˜I“&ñÕW_ñÓO?1fÌ1óTDD¤XÈ„  ã矦M›6±£D.Êåráæ™™[Ož<5zò@.—‰¡¡¡ZÓV KKK‚ƒƒY°`oß¾eÀ€T©R…Ó§OsàÀ7nÌÂ… eܸqÔ¨Ql*ïJgF¹ |f”5•ˉ¿üò ÑÑÑüöÛo8::2zôhüýý…ó•ýg­Kø~ —²†¢²f§r e¬“²¦M›ªlöìpݺuùûï¿ó<ÆÌÌŒàááÁ¬Y³X½z5 6ÄÎÎ[[[¡èµˆˆHá¶¶6çÎÓ´)Ejj*~~~ŸTâ./ áááøùùqýúuBCCiß¾=‹-bn5A‰t°nÞ¼ÉË—/Uö9Ñ·o_š7o^,œ+P“ƒ)Ìú5ÉÉÉx{{gÛÅÝ»w?X–&+Ê''' Dtt4<{öŒ;wrúôiìíí¹}û6»wïfÿþýìÚµ CCC222˜7o-[¶dõêÕüõ×_Ô®]›àà`ŒŒŒØ´i5jÔàûï¿'##mmm^¿~ͱcǘ;w.W¯^E&“ajjÊŠ+¨^½:—.]bÑ¢EÄÅÅ!“É5j...,Y²„³gÏb``€®®.kÖ¬Á‚iÓ¦qëÖ-Ê”)Ë/ظq#†††Œ=ÒÒÒ(W®`Ïž=üñÇœ9s///æÎKýúõ D.—3gκu놧§' .D¡PP§Nîݻǘ1cøöÛo é,vvvBpxVôôôøùçŸUö 0@ø{äÈ‘*e†¦OŸ®rlÅŠ™:uj®ã:99©”„Rê\)©R¥ Ó¦MSÙ÷þzzz¸¸¸50³bllœíu-]º4W{>•Ù³g3jÔ(¾þúk=‰ˆˆˆ|,Û¶mãÚµkìÝ»WÓ¦”¸R9^^^¹.Wä4³•Êe£‹/2~üxŽ;†¥¥%7&((‰DB÷îÝ9vì÷ïßgÇŽŒ3†;wR¦L¡ÆQPPÚÚÚLž<™+VǹsçHHH **ŠŒŒ fÏžÍþýûY»v-×®]cåÊ•xxx…‡‡Ož}ú°yóf´µµqvvÆÄÄ„éÓ§Ó½{w"##‘Ëå ñGAAA1hÐ Þ¾} €……×®]#--=zP¶lYA¡[t°Jß~û-õêÕ㫯¾b×®]š6GDDD$OÒÒÒpss£cÇŽôèÑ#ÏÒhš@-K„GŽQG·äÙ³gB0rN$&&réÒ¥lË9¹DåÊ•ùå—_Töûûû#—ËU”­+Uª„L&cÕªU˜™™áïïOÅŠ '--ääd¡r·T*¥}ûö\ºt ø_Ö˜D"¡R¥J¼{÷ŽÈÈH¶nÝ dÆ)S÷ýüü°µµ%22;;;*UªÄ›7oضmÚÚÚ\»vfÍšq÷î]¦NÊ”)S˜6m·oß&--øøxvïÞÍ;w˜4i>¤B… ¤¤¤¨€×­[---a6«V­Z‚CåëëKRRÿþû/åʕӘ3-R¸H¥R–,Y©S§˜7oGŽaðàÁØÙÙaee%Ê2ˆˆˆhœ””ñõõeëÖ­ÄÄİlÙ24mZ6JTá©S§„"™L†¡¡!)))( aÙÐÓÓ3_–R')§˜­œ²¹\]] gÀ€( *W®Ìúõëñõõ2cj† ‚¾¾>¿üò ÕªU#((---A¸`̘1¬Y³†¾}ûbll̯¿þн½=õêÕÃËˋdzwï^:wFbõêÕ‚çnccCÛ¶mÙµkW¯^E*•baaÁĉ‰ŽŽfÆŒ¤¦¦¢§§‡ƒƒ½{÷bÖ¬­­‰ŠŠ"!!A˜Í F"‘P»vmôôôèÖ­.\àíÛ·Èår4hPз)GLMMIKKãíÛ·bÊ¿†éÔ©Íš5cãÆ,X°€'Ož ««‹•••X×SDDÊ¥·#Fзo_µf8*+%ááᘛ›S¦L™õ“[íDgrê?'é™LöÑKz¾¾¾¬_¿¹\N•*UøùçŸ <-+—ËÙ¬H¥R4h@`` è`3”òJ9 ‘¢åÞ½{èèè|¶I¶nÝŠƒƒƒÆÕ?•‡ Ò>ᓃÜOœ8Á¾}ûTœ¢ƒ õÞ SÄò§Ÿ~–ïò¢zõê<{ö¬Àv”*Uêƒ"‰éte–Áúõëñðð(²ñÔÉ€¸téÿþû/‡ú(M“gÏžeÓöRâââÂÁƒuM¢P(ؼy3;wVY!ÊŸì`5mÚ”¡C‡R¿~}f̘ÁŽ;HKKãúõ븹¹Ñ¯_?lllHKKË—Èg½zõ ʈˆ”222áÖœ˜0aVVVjÕ{É/‡&((ˆ7øÜO^"455¥cÇŽœ|˜ÀÀÀé—‰ˆˆˆˆˆ¹\NDD§OŸfäÈ‘9r„Ç3pàÀê¯P‚Ü{ö쉑‘ñññ9¶çwöJI›6mðòòÂÅÅ…;v`nnþQ<±±±$''«”H)Z Ož<ÁÈȈ£GæKÎÚÚšÿý—5kÖ°uëVV­Z…B¡ bÅŠª%)"""Rˆý¬‹=ÇÆÆâææÆªU«4mJžÄÄÄœœLµjÕèÒ¥ ‹-ú$ÅBq°ôõõéÛ·/Û¶mË>€–ÖGyŽŽŽ…BñYW°¸zõ*ÕªU#,,Œ„„ 5mR‘‘o«M›6´iÓF¶ˆˆˆˆˆˆˆü?‡fúô阛›“––F­ZµX½zu¾jºjšèèh† Bzz:­[·æÆ¬[·ŽÍ›7Ó¾}{M›W$Z©‘ÂáäÉ“,Y²„ .P½zuîß¿OïÞ½)W®œŠ$RqäÛo¿¥W¯^üðþû÷ïÓ¥K.^¼HÕªU5h]ÑPèY„"""""""ŸÆôéÓÙ¿¿à\Ô©S‡-[¶ðã?jвsûömUœ+È´òäÉlÞ¼YC–-…6ƒ•œœÌ½{÷ðóóÃÏÏ€€ «{µ “ɨU«vvvÂ?SSÓBé;::Z¸~~~„††’‘‘Q(}« CCCêׯOƒ °³³£^½zèéé}r¿r¹œüüüð÷÷ÇÏÏèèèbW ‘H033>¶¶¶XYY!“É4mZ±!&&Fx?ýüüxðà)))š6+Oôôô¨S§ŽÊwÞÈÈè“ûMMMåþýûÂõð÷÷çÍ›7…`±úJ¥T¯^]å3žõfþ%“žžNPPÊoø‡· ¹\Nddd¶ê(JiÞ¼¹Ê>‰DBÕªUUÞO $É'Ù¢P(Wù®GFFæùûýöí[’’’²ÙðîÝ;âãã9sæÌ'Ùõ!ŒU¾çÖÖÖhií¢D¡P ‘Hjá9-Ù©S§|w””ÄÂ… Ù³gO±w òƒ­­-+V¬ N:u¾¿¿?“'Oæþýû…lYÑ#“É>|83gÎühGËÃùsç–ˆ,»²eË2þ|\\\4mŠF‰ŽŽfúôéœ?^Ó¦ ;wfÉ’%øÜôôtÖ®]˪U«HMMUƒuEKÕªUY¾|9-[¶Ô´)A¡P°}ûv–,YBRR’¦ÍùdLMMY²d ;vü¨óÏœ9ÃÌ™3yþüy![Vô”*UŠ™3g2|øðOv:ßçÁƒY}'…Bá Ÿè`]¿~I“&™ÜBQ¡­­Í”)S7n\¾g,ÒÓÓYµj«W¯&==]Í-–––¬\¹’Fåûœ/^0cÆ µ?¥h‚Ž;âææFÅŠ5mJ‘sèÐ!~ùå—b?;]PÊ—/ÏâÅ‹éÖ­[¾Ï fâĉܽ{W–=‰„o¿ý–Ù³g£¯¯¯isŠŒÇ3eÊ®\¹¢iS þûßÿæ{¶6>>žŸþ5[Vô8::âîîNµjÕ ­ÏܬŽÁZ°`}úô)qÎ@ZZnnnôèу¨¨¨ÿøñcºv튻»{‰s®BCCéÕ«K—.Í×ñçΣ]»v%Ò¹‚̧ºvíÚå*¤[ILLdذaLž<¹Ä9W©Ë7zôhÆŽ›¯™¨Ý»wóõ×_—8ç 2gqvìØA‡JÄL|~øã?pvv.‘Îd®$899qýúõ{ýúuœœœJ¤spåÊœùã?Ô>ÖGÍ`8p€©S§ªÝ¸â€ƒƒ¹N)ÊårzõêÅ­[·ŠØ2ͰvíZ¾ùæ›\ÛŸ>}J»víHLL,B«4CéÒ¥ù矾ˆl˜3f°wï^M›Q$Œ;–9sæäÚ~íÚ5\\\ËåEh•f¨Y³&gÏž-”XÌâʽ{÷èÒ¥K‰|8~ŸŠ+rþüyÊ–-›c{ll,NNN¼xñ¢ˆ-+z´´´ðôô¤^½zŸÜW¡Í`=yò„yóæ}²AŸ W¯^ͳʦM›¾ç `öìÙ¹®Ç+ ¦L™òE8W9«3yòäb¬_\¸pá‹q® ó;}ãÆÛ’’’˜¥N…L&CWWW%‹ÏÀÀ€víÚѳgOôôô„>²þÓÑÑPù»0¸qãöÇ IDAT†Ê4rzzz¾K*—/_VÙ¾sçoß¾Õ5šåÝ»wܹsGÓf¨…/ñJÉû¿w%u'?DDD­i3 •k×®•i¡áåË—<|øPØ~øð!/_¾Ôˆ-·nÝ",,Œ°°0صk¶¶¶E6~FF×®]SKßr°üüü ePKKKá‚~ýõרÛÛ&,¹?ž°°0Æ@åÊ•¹wï›6mbêÔ©„†† }dýçççG™2e +Ô‹–’’¢ò¼ÿ~±×½qttÄÃÃ>}úzßïJb6UA(¬ïFq"%%å‹[>Éʽ{÷Tb­Jâ{\JÚëÿ˜×ckkKÏž=©P¡‰„ž={ 5z­¬¬èÙ³'æææyöQ¥JLMM…Ä)ådÂû"˜Y÷kiiå8iÛþüõ7»8ü~Ïœ9““'Oâìì\äJõêúlçÛÁJMM%((¨Ð ˜9s&RiÞf2dÈ´µµY½z5C† aî̛ܹ7O;§_¿~¬_¿+++¤R)ëׯgæÌ™8;;³~ýzš5k–ã¹={öäâÅ‹\¿~Û·oD“&M¨[·.aaaüþûï*ǯZµŠ°°0œ™2e aaa„‡‡Ó°aCá˜'NöQ³«¾¾¾9þ­)Ž9Âo¿ý€™™Y‘Žý1Ÿ…üoÝxuüØFEEQ»vm\\\r "WÒ¥K&L˜d:dÄÑÑÈt¾œœœ¸zõ*[¶l L™2…j§???\]]õ:_}õ;wîÄ××—zõê¡­­——r¹ggg’’’7ngΜaРA,Z´ˆ„„ yôè#FŒÀÐÐùóç0räHFŽÉøñã9räH¡ØøîÝ;‚ƒƒ±±±D«¤Ý|@|O!ó}­]»6 DDDhÚR’>ãééé~Rr¹œÁƒŸ­­jÕªÈd2á3#•Jùé§ŸËåŒ=š´´46lHjj*þþþñÕW_ajjÊóçÏ100 S§N¼yó†þù;;;¡ïáÇ3aš6múIKiYßÏâðÞnذkkk^¼xÁÂ… ‹tl¥SØ¥tò=ƒõøñãB2ßÔþù‡iÓ¦åàvâÄ Ö¯_d–ç¥Ã¤N²^ƒððpµW¡BzôèÁÇi×®/_¾dðàÁ”*UJ¸çΣnݺ4jÔˆï¿ÿžêÕ«Ó§O|}}ù駟ظq#œ:uªPíSfS¥¦¦–¸øŒ‚òüùób¿d\P¾t‡þ÷ÿPíµ/uÜ4ųgÏ>ùû*•JÙ»wo¶äžråÊ|||زe 2™ LMMIII!!!ÿý777Á±9|ø0R©Tø]ïܹ3úúú=zTebãÎ;ôèцNPPÐG—ôÉz+ŠûÙ‡ÈÈÈ T©Rèëëyl\jj*Ïž=+ô~•–ðIËÉÔöã²xñb*UªÄ·ß~›ë1oß¾ìzõê•Z.D~(êØ .àççGpp0û÷ïçüùó( jÕª@µjÕðððàÁƒ¬[·ÈŒ½JMMŠ“ÆÅÅYèµµ”×ãK¿ñ()iס¤½žAüŒÿ’t ÔýZZµjÅéÓ§éÒ¥ M›6%!!;wbiiɾ}ûðóócÙ²eB¹­#GŽ‘‘!ÄËöîÝÈ,M••ýû÷“žžÎÔ©SéÒ¥ Û·oÿè×’õ¼âðÞþðà 0~ûí·BMRËŸr ’““³n þ”ôÿ;Žb è×b~ü™LÆ/¿ü"Ì`)¹qãŒ5Š¿ÿþ++«Â2YDDDD$,,,Tþøð!¥K—ÆÉɉˆˆV¯^-ÆWªTI8ïðáÃ@fp»L&Ë6{¥D)l¼oß¾÷gN>KÖ¯_»»»0‘°lÙ2ÜÝÝÕª°^Ød©æ¡P(b”Y#ºnΗ.]"""‚5j¨Í˜7oÞàîî.,}EFF2iÒ$,--ýêÕ«¸»» R ×®]ÃÝÝ]E*2µiÜÝÝUÊÕ¼{÷ww÷Ϧd‹\.ÇÝÝ]ˆc ÅÝÝ](ס|"RŠYº»» ÏŸ?Ÿû÷ïS¹re–-[F·nÝ„R6qqqtèÐÖ­[cdd”ëò¯ˆˆˆˆHáзo_ìíí±³³ãíÛ·œ;wöîÝK\\=¢fÍš@¦“¤äÔ©S$$$P±bEÒÓÓsUUøð!666%¹²‰½†‡‡ Ù„Ÿ‰‰‰üõ×_ÊÍÛYÛ²:X»©oß¾Õ1bÿüóO®Ž?•7oÞd»€ÇŽSÙ¾zõ*W¯^¶¯_¿ž£°ç•+W²¥¨¦¤¤|VoPFF†Š½aaa*Ûžžžxzz Û+V¬þŽeóæÍÂöûRAAAj‘×ùÒ8þ<±±±ÐÞ¼ywww¼¼¼hÙ²%ÞÞÞlß¾øøxéß¿?ŽŽŽ˜™™qüøq¼½½UtæÞ½{ǬY³¨Y³&Ïž=Sþôññ!##C˜”ÈZ®nÍš5_dE‘âÂäÉ“³–ÏR)\,8X …âD"™,ôòòbÖ¬Y,X° ÐÓEDDDDD>G¼¼¼ðòò¶³>ß¼y“›7oÙCmär9>>>¬ÕšÛ¬ÕåË—³UÏPò~I'‘¢cýúõlÝ*øT; …J‘Ç÷½§¥À7@777Ξ=ËÖ­[±··/SEDDJÍ›7§T©R u [´hné‰DBÛ¶m…íW¯^P,2¢>„žž-[¶ÄØØ˜ÈÈHˆ‹‹ËõøråÊ1sæLسg5jÔb|222ð÷÷'&&&×óEDD ˆˆÆŽ›Uú(˜ôþq*–B¡H—H$½€=€ÓíÛ·iÔ¨fffXZZªÝ輨\¹²0Õª)BBB˜7o Y CCCJ—.­qí©põêÕ/¶ž×û,X°@¥væçNÖ%ú‚àîîN5¸r劻qãF$ õë×/4ûd2{÷îUÙ÷êÕ+ÜÜÜTb[>ooo µ˜·££#{÷îUÉîݵk— [—zzz*Îdß¾}™4é¿çr¹œ;wî0pà@µýF¾zõJøýûÜɺÄö¥òîÝ;áý|÷îf4h€žžžÚê~ˆ•+WæYíD¡PððáC®_¿NXXXÖ¦`€B¡Èö„$ÉéiO’|5–Ì-}}}Ê•+÷i¯à˜={6^^^-¸š’’"üйN‡’Ö­[ãè舛››FÆWòæÍÞ½{‡D"QɆùR‰ŽŽþ,fOòK™2e000(ðyÿþû¯$3hÐ ¼½½ñ÷÷¬ªU«Ò¶m[üüü¸{÷.6664mڔ˗/Š‹‹ 2™Œ[·nñõ×_s÷î]|||èÒ¥ åË—çÏ?ÿ$>>---=zDrr2NNNÔ®]›íÛ·óúõkš5kFß¾}yûö-þù'vvv4hÐooo"##óõZHHH@[[“_‹œØºu+:t sç΄……Q£F Ê•+'ü¶•*UŠnݺQµjUbbb8zô(iii|óÍ7DFFâííÍôéÓ™4ik×®ÅÃÃiӦѭ[7~þùg®\¹B“&MP&,)߇¸¸8Nœ8ñÑv§§§óâŋ¸G&“ajjªi34Š\.4%ÍÌÌ>X²®°©P¡‚0k[¦Lììì000ÀÓÓsssâââòœÕ-lž?^ÐÉ‚t2}¤ù …"GÕÚ¬™w‰õ‰ä(ð5ÐX*•~ Ô*˜É‡ŽŽGeÀ€ :TȬÐ××gøðá´k×…BÁÌ™3yúôiQ˜¤$xûÿP€RCŸÂŒ3 Å××—ÿþ÷¿ìÞ½ccc¬¬¬˜;w.ººº/Šî× hÐr/±0kÖ,.\¸ ÒV·n]–,Y‚»»;wïÞ¥eË–ÌŸ?ŸÉ“'ÊìÙ³)W®oÞ¼¡L™2èêêâããƒeÊ”áûï¿´… óFItt4ñññ”+WCCCZ·nM÷îÝñõõåñãÇÌœ9GGÇ‚†<¤ïPúc®E¶SRÐÒÒbôèÑ\¸p3gÎÁÎ&&&xzzR¹re=z„®®.³dÉN:…···ÐWll,ÁÁÁ\¿~]pÊ.\¸ÀâÅ‹ùã?˜8q"ööö,]º”M›6}’ƒÈ’2õ# ¯8ëç‰P¦–êÉjË…%K–púôi¤R)ÎÎÎabbÂëׯéÚµ+õë×çøñãìØ±£¨LJ ó3ž ¸ùÿÿþQ(¡yu˜§ƒ P(¢ÀÎ*Uª¸û `ìG“ššJpp0=zô`èСôíÛ—îÝ»chhH`` µjÕÂÉɉîÝ»³qãÆ¢0 ]]Ýs …¢€¹¹¹·B¡hó¡s ƒK—.ñã?beeÅÍ›7144¤R¥J¼yó???š5kÆþóŸ"w°Ê—/?èéÓ§Ç,,,ôRSSÕ–3\«V-¾þúk^¾|ÉÁƒUÚ6lHË–-Ì¥Û÷o"_}õ52kNe R-LªW¯n®ù¹öBÂÜÜ|¥B¡˜ø±ç/Z´ˆƒÒ£GŸ«­­Íðáñ´´dõêÕT¨P °uëVœ©Zµª°D®¯¯Ï‰'¨Zµ*åË—ÇÃØ˜¶mÛF=8p ›6m¢E‹xzz›o; —ÄÇÇÏ377o¨P( E$pÍš5˜ššâââ‚‹‹ ,Z´ˆÝ»w3jÔ(*W®Ì† X°`R©”R¥JåºzðÝwßÑ»wo¬­­Q(ìÞ½›ððp¼½½éÞ½;¿üò Ý»w2—ô?--­`…BaóI*UªTøäú03fÌÀÚÚúÓ úH–.]ª’‰X¤Ri¼B¡( P¥J•XŠø!yß¾}Œ=©TʺuëhÒ¤ ¹W­Z5¤R);w.2ËÄÄÄ.:::¢0û,¶)‚ûöícÛ¶mfMä§Ÿ~âĉX[[«­¨sqãÊ•+˜˜˜0`Àºté" wéÒ…æÍ›sîÜ9FŒ¡a+ÕG½zõ˜5k©ôû¾ƒÕ¬Y3¡ÝËË+›ƒÕ®];ÆŽ dÞdÔå`‰¨âããÃ¥K—˜1cZZZ٦ߕK9-C&''s÷î]ôõõL!¿´´4Á©211þ–Ëå„„„põêU¼½½…Ž›7or÷î]ú÷ïOTTZZZŸìd<ÀÅÅKKKÚµkÇìÙ³™2e ¿ÿþ;ÕªU²Íär9‰‰‰¹:X¯_¿&00Ý»wsþüyž ,ÈVU¤hX´hžžžH$!ËMÿdii‰±±1;vÌv^zzºJ<[^:?)))*ßYÙ¾};«V­ .]ºô)/§P˜4iwîÜÁ××—sçÎ1yòdËåÑ­[7z÷îÍÍ›7‘H$‚“™þùg6¡FÈÔk cÊ”)”)S†Õ«W«ó%}±¼_ÞL$ÿÈår† ‚B¡@.—sèÐ!´´´xòä Í›7çÉ“'Zœ(¶ RúEYFTdé¿Ο?/ü}ïÞ=îÝ»dfl‰ˆWüüü8qâ„°L™Ë´!!!tïÞ®]»~ôG~8~ü8sæÌÁÄÄ„íÛ·#—çbQ4´lÙ’éÓ§ Û©©©lÚ´ …BÁæÍ›iß¾=}úô¡{÷îÈd2¾ýö[A`2¿( ¶oß΂ HNNê≈'²~®³&ž|H/ìs¡X;X"""ŸãÆS™u™={6»víR©7Ú¾}{Ú´iCTT111XXXš/:räHAî" a9pÓ¦M?~œàà`222pqqÉ3ó'-- .ðÍ7ßd[ZÖýúõ£^½zXXX˜˜È•+W„²'‰‰‰tëÖÆS£F ^½zÅÕ«WQ(¸¸¸ðæÍ s©ÛÇÇG%|â}þùç,XÀ_ý%ʈˆhÑÁ)T|}}U¶_¿~M^%==sçÎ ÛÊtqP¡NHHP97<<œððÿÅ&ç%Ûbjj*ÏnÛ¶-ßÒ êF.—ãïï¿¿Ží …BE\IÖ×™çë3f C‡%11‘eË–Žá"""Bt°DDDJ$ïÞ½ãüùólذ!›TDI'88˜Í›7sþüù/&VUD¤¸¡6«qãÆBj½\.çÞ½{\¼x1_ÂaãÇÇÐгgÏrãÆ ¦OŸNrr2k×®¥J•* 6ŒGñûï¿™Á†}úô¡J•*œ9s&×X‹;vйsgÌÌÌØ¼y3¯^½*¤Wœ;¶¶¶tèÐA(âyùòåf²:uŠ˜˜ € ½{÷2Ÿnƒƒƒñöö.°íÀÈȈ.]º|ôkù\ˆ‹‹S‰ãü’È:;(R8H¥R5j„ Ïž=#00¨¨(d2‹-âñãÇ_ìç-/$‰ Ê-—ËIKK˵òNhùÜP›ƒÕ AÆGBBÉÉÉT¬X‘ŒŒ :uêD```žç~ûí·˜™™áì쌳³3r¹œQ£FÇÚµk133cܸq\¾|™ßÿ2eʰtéRÂÃÃY±b}úô¡I“&H¥R HOObþüóOúõ뇭­-jw°êׯϩS§ˆ‹‹#<<5jôAË××W(yaiiɸqãHJJ"..ŽJ•*¡P(4hPžÌïÝ»G©R¥>éõˆˆˆˆ|irñâE*V¬(ì ¢]»vH$Œ¯¯¯è`å@:u8{ö¬°ýøñcnܸÁ¬Y³xûö-5ª-@f¸ÀùóçY½z5?Ö„É…†Úµñ÷îÝ‹½½=³fÍB&“1bÄ6lȆ èܹ³pÜo¿ý¦RçJ¡P`mmýÁ4ØråʱqãFtuuÑ××§cÇŽLš4  dêmØØØ`ccC@@€Z^gnôíÛ€еkWš4iÂ?ü ´›››³páB:Äž={M]]]´µµUú:yò$Mš4aäÈ‘H$FŽI5ذaýû÷Ž›7o¿ýö™þ‡ŽŽººÿævttdýúõ>|777AƒGDDDDäôë׊+2}út,--iÞ¼9Ë—/Ïvœ cÇŽÅÎÎNeýúõ3f ãÆôž”˜™™1zôhš5kFÛ¶m2d”-[–!C†º‡æææ 2„† àììÌ!C055eĈtêÔ -­âõóèÑ#~üñG¢¢¢èÓ§Ti aÊ”)ܼy“ðÃ? ««‹•••J™*SSS¬¬¬²Ý‹#jw°´´´(]º´P«.&&†ЪU+¦L™€½½=®®®*S‡IIIüóÏ?L›6-Ïš …‚ÔÔÌ2@r¹œ”””bUîþýûìÙ³‡uëÖÑ¥K! ×ØØOOOLll,ÑÑÑÔª•Y¨k×®tèÐA¥/™LF©R¥0772¯å£G°³³cÆŒÈd2ÌÍÍùþûïÑÒÒÊvœ…åA>ŒƒƒOŸ>ÅÅÅ…¿þú¿öÎ=8ª:ËãŸ_w:Dˆ!ý8.Ø…l`·| ¸Š(àH´qY|@fvU„2bI´`†]J†@b%0ˆ%²UË"B` -S‘W6IȽ·›ôð0„gwßßþAº'’tbwn§éÏ?Ißç¹·oÝßéß9ç{¶Úo2Nœ8q¢‘@ØjâĉLž<)%_}õÕuÛôíÛ—¢¢"rssÙ±c£F ''‡;v››ËìÙ³Ù¶m/½ô>ø `Þ¼y¬^½šåË—“ŸŸÏwÜAjj*ùùù<ýôÓÀµ™ üüüà¸0sæLòóóùòË/™3gkÖ¬aÑ¢EíuKZÍ™3gظqcPì·qÿÚšš6oÞ¼†Q£Fa2™øâ‹/øôÓ¿5‘),,¤¨¨(ªÆù¦ˆ¸ƒ5sæLÊÊʘ3gn·›‚‚._¾ÌÆ0`C† ¶Òh¬²¼dɬV+Ï=÷\“Ç?wî\P jÿþýäææ2GEEE¼ùæ›üôÓOL˜0Õ«W§CüqzöìÉgŸ}Æ‹/¾È믿Îúõë›<Ö„ (//'//Ó§OóÉ'Ÿõnz÷îÍèÑ£yâ‰'€–Ûb<óÌ3!xë­·ÈÍÍåÓO?%%%…‡~8|'Nœ81À¶mÛ(,,$;;›wß}—ââb–-[vÝ6]»veôèÑÁñ*à`ºLÜÿýŒ1‚‹/òÚk¯‘ÀäÉ“±X,Œ7ŽáÇßu…¥K—2tèPjkky衇~æ•FŽŒŒ 6lØÀâÅ‹9tèëÖ­»n}ZZ ,ŠFoݺ•K—.±iÓ&233ÉÊÊ"33“ŒŒ ŠŠŠ®“}‰V"î`íÚµ‹¹sç2zôh²³³ƒ¥Å]œ©S§2vìXJJJ‚:8Ž?Ζ-[˜3gN‡˜¼^¯—õë×sß}÷1räHŽ=JVVwß}7ݺujü´„Óé$77—±cÇ2xð`JKKk*÷uuuL™2…'Ÿ|’ªª*8Ð챺v½Ö·6àŒþvtåÜ8qâÄ 7çÏŸgîܹÁ—ËENNÎu}ËËËq¹\x<àZ(«sçΤ¤¤àv»©©©¡®®ŽŠŠ éÑ£Äï÷süøq._¾|Ã5áïìÆìÞ½¯×˹sç® ¥E³¤¤$ºwïÌ‹’’¸qã¸|ù2‹/fåÊ•¬[·¿ßßàç÷Õl/BØJ)¯´Å».++£°°ð†åš¦ñõ×_3iÒ$Ìfs“ŠäK—.eüøñÑâ`ˤ”!•:äå员˜ì–’’‚Ç㡪ªŠýû÷#¥$''‡òòò ˆ`SÚ>•••×)Ú¨««ãóÏ?gúôé˜L&Þ{ï=¤”¼ÿþûLš4‰±cÇÞPX°oß>{ì1^xá:uêĸqãÐu=Xµ º®_©·Ëg³Ùü€9äceeeôÿ¤j¡>ã±LàèºÞ¦÷_Œ3ÏC§N®4®fkމ'¢ë:ÅÅÅìÙ³‡)S¦`³Ù®p „V°_ºt‰ªª*ÒÒÒ8p çÏŸ§_¿~ÔÖÖâñxصk3gÎdÚ´i9r„Áƒ÷Õ4 ŸÏGzz:ݺu»®BC)2m™]iâÿˆPYYÉÔ©S™5k .dáÂ…¼úê«ÁõN§3˜³ÜEQعs'ãÇÇãñðý÷ßG¤¯f§NÂ~BžÁ2›Í7WÅû¬Y³³ÙÌ… ؾ}ûM·©®®n6lÖžH)ÞƒÒPö©¬¬d̘1¬\¹’?üÇÃ;#ÏçÃét2þ|n¿ýv>þøc éß¿mÍê×®]‹"ØÓ Àb±˜˜xÓiç‚‚Ö¯_Ï#<¦M›°Z­Ì›7¯Å φž )¥Oq¬M†ÇÇ¥”±æ`…ôŒÇ2&“é—ËU\6Ø£ û`•••. ä\’´´4V¬XÓ餴´”ádzeË–4ÆæÏŸÏùóçÙ¹s'{÷îE×uÞxã ¤”lذÒÒRÞ~ûmV­ZŒðèºNmm-{öìaÈ!;v »ÝÞæëm‚Ò&þ(k×®Åív3aÂ222BÞ§sçÎôéÓ'R³W§ëŸ‰°"Bõz…Âf³º‡ëä}úôaïÞ½lܸ1§Žf¤”¿Ò4m+€ÃáxZJrïäädL&Sp–ª!Bz÷îÍÅ‹©­­m“m=zô ¸¸˜}ûö1cÆŒ÷³X,¤¤¤pêÔ©Ööi«QUµwàƒÝn_ <ßšÄRÊõš¦5,Øq8'¥,3Ú#±X,¶À‹×f³ýIñK£m2 !ÄoEù½Ñv„ »Ý¾¸±Óx¤¥¥‘™™‰Åbaÿþý‰s§wIDATA‰!#FŒ ®®Ž~ø¤¤$²²²8}útp¦¥gÏž 6 ³ÙŒÓé :ÝvÛm\½z•ŒŒ <ûöíÃb±Ð¯_?ü~?Bî½÷^®\¹BEEýû÷GQª««0`Ý»w§¤¤ŸÏGVV‹…ï¾û.¤ëB,Qe>€ÃáxWJ‘AøÎ;ïdÚ´i¸\.6mÚ\KîÏÎΦ¸¸˜ÊÊJž}öYNžØíö•Àlí1)嚦í1ÚŽpI§"TFŽÉG}Ä?þÈ€èܹ3yyy¬Y³&âçn8a`³ÙžBl‰øIÛÀ=÷ÜäI“˜5k+V¬¸©<ÆÏ¥¡³NZ+šá$LVAA[·n¥¬¬,*:܇€'à\¸Ýîv»ý¯@Š6×*\8À±cÇÚ­²B×ug£Ï%·xŽŠ³åM:RJi·ÛÀ­ZZÚø;¹ï¸è^¯÷ÑF„]×F¿³JKKY°`V«•Í›7sðàAÊËËÛåÜ&“©¤áÿÑ*{’’BÿþýY¶l«V­ŠÈ9gá¢U3X6›-[ñ'nÁdf!ÄrEQ~Ýp™ÃáX.¥œk”Mâ5™LÙÕÕÕÁœ !D‚Ýn?$¥d¤aQÖ¥K—Áååå1“ÀápL—RþÁh; "GUÕ`@¯^½R-Ë1nͽ?ªªú”ÑF„“ôôôä«W¯R¶¥½B|£(ʃ —9ŽÝRÊ 2ÉH܉‰‰™'Nœ{­U2 š¦9…ï…Ûˆ@¹”rAã…>Ÿopc]mŒ#„XÜй‚k‰îº®?ÄT¢wø…ÓcѹPeðµÑv´7Bˆ- +€šš·”rŽQ6Èi¯×s¡ÑúõE£í0€ &“é†DÝúe °Çh^Œ„smÐÁJNNþ-1TM:𼪪¯p»Ýt]ŸDçÜjdpªªºäf+4M;(„x¿½ 2˜¥Š¢4/:ÖÁBÌZîÒ;xü~ÿ¿Þl…¦i€mílѼRSSã6ÚˆH ªêv Àh;Ú™7OžŸïû[yÀi!„p8¿Ðu}(0X‘d´MÍ!¥¼üÙï÷—¸Ýî° ;Žžº®5™LCèí¼ èº® !þ¢ëzI×®]Ko•pwkHOOOöz½ÙRÊaBˆh—sRÊ…%‹åÏ'Nœkk§ôôô$¯×;¤þ^dÝïo¤”îú{áŒT•`K„ÝÁŠ'Nœ8qâĹÕéˆáš8qâĉ'Nœ¨&î`ʼn'Nœ8qâ„™ÿ7’Öºô°IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_curvefitting.pdf000066400000000000000000000336221323370031300220250ustar00rootroot00000000000000%PDF-1.4 %¬Ü «º 1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj << /CreationDate (D:20081113011735-04'00') /Producer (matplotlib pdf backend) /Creator (matplotlib 0.98.1, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /Type /Page /Resources 10 0 R /Parent 3 0 R /MediaBox [ 0 0 576 432 ] >> endobj 10 0 obj << /Pattern 8 0 R /XObject 9 0 R /Font 6 0 R /ExtGState 7 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> endobj 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream xœ¥šK·…÷÷WÜe²˜6YÅçÖHb@@Ž…dm$¶ @’!%ÿ~¾CvÏ}v[€ò̰‹d=Ï©ê¶ßœãùÿ¾;…s8<çZøùaüLnü^²~ú¹ïNÕX\Lò±-iþñaýÃ[[!tõëaÿç׿R*Oy)ç/?ÿqþÄRHWýmÜCX,ëÑ,è>­¥¾„’[ð\SâÌN=-ès\¼ZÌ–«„×e~$ìi9‡àC>Ʋ”Ć´”œ[Õ²³a[ï}©%§R“µ¹ÁÛÒË™³dJ(øDêlëKbòæ¥Y™;J\Øl޲Á­÷bÒŽ¹î¡-µÕ`ͺ­J5dž˜ ©´Ò†±ì—ž,3_å-ä¥ãc«‹»…s) ÛzÅúò-ǹÃÚb‰+êR°1çî­jÇ\W$¼áT+¹ÛܑÒQª¤¥UœšSŽQ;溬ðnµòÏòÜQmiØÓbîÜP²;Öõ–dÝ= ±ÚÑóbÃçH GÉð_/¸$· uÉ< ĪY¬¥¤¨hoë88Äh9¥–úÜAaÅŠì9[´âŠÅºÎßKï©•lM/¶ph´Ž™¹Fï#û¶åV–ˆ÷R©L×z#ÉùÚqHáö‚•Ú±®WÇúìÅ{÷騄þ<ˆN°È>C[yv].$'4ÏÖ¦Jüµà%³[ ©š‚½®ÆÄrÈ5—ÎSžj #Ái|ÑúÄ'ìa àRSÍ@ïÙƒ¾˜ŸàÊ#‘îÙCd èǸèO؃È*Éòÿó wœN3ÓI$xFªä¦¡¤ íoøã$vñÂñ×Ü~G ðKÅ÷ª iwË'ñKÉèªÕ?ò¥Ñ˜p 0â†@NâœE¥'’ÔUöªÔ¹œo dή‰¶èËPzµÒxä0´»á“ø…b*ï×üŒ?¨, ‡¼Çz~C 'ñ °C[ÔësqR»7ü_¬Þ2ÈI Ò§À–¬Æè‘AL•õúJ ƒWšk˜ýJy3(ä×Ë ˆÏ§¸Ž$¯"þùñüÍ_ÃùO¿¼Ê¨y7®×hF9å»+…„0ƒâv…&a7îÚ•2M–ë¸+7èã*¹¾¯ÖhÒ4Y1ÂíJ½ ÆD¦öÅø¡¾â§´÷ŲÌ!:¦Š}½ !œ cÿ4—ñ‹áÞ?+©))%g'gì¤0i A‰§ùJS䣰Λ&Ç}+éÂq]€z„=1RœbÕ$Å<·ŸŠªÚÖ Ù|ÿJ°³3±ÑÄ~}Ø÷¿»bn_Ô“ãÇÀTr‹Ý¶Ô|"%º¨UBµî éõý<™Ê¾”é5!ˆRhÊw¥¨+ 9¸÷ÕEâd[ ÙöU±&€´ÉdȾ@Û;,ì´Úûz½ÀÈL<´ƒÓÄ ¤oo9ïû‚ª"ôЖ¿íGÐE¥| ]ˆ3åª >P-ÒY2¯4š2ÛWí¥ >Dë%Fõ1TÃPôÑT·Zh€ ùýxÒ0c ŒWªŒÊÚ§Y¾ûªŠ™g}y7Kç®bè’¹?¤ê"³q²=I;zm14Ù`ú™ˆ¯×Ù·,"¤·™¾‰¡íJÑAÄá“ðZ ϤÔ(Tò2hPÝU‹xY§áu½çÝ“Rújœ(9Ú¾ö/ tÔ 2´ptX×;õ¢°í»õE–òƒÖ÷ý㢳yÖÓüÐHðÐ-îûìÅé|9‰¨3ùì‹Eù6¨ãyß·/ðc~Ó$r _Ñ2‡ÒìŠIJ@„ÇÚ¾þ ®>¹ ×Pæª_Ê•˜*æ•FnkaÔÐô)yót~YÓ|Æw¬_Oß¾=óÚJ;¿ýù$n£ëw™xÆ«Ý|~û¯ÓÂÏoÿ}þóÛÓýÅókËåî|÷ú9ær}9¸^sMéÏûÓ¼<ï]>?y\.¯÷—O«ËÛÁåú’Dߌ»ÖÏú½SàJ4H´Ìðçùq×þ«‰óðxÿõÆ)b÷gJ•^Öã½l×7‰2ïAû䛒/ÃU†å(ë4Ê#ñïò#,A/Ü«Þ\¼\†sNhöÝ„ºøò'|ó÷Ÿ¾üøòñý§ÿýg-¡gVÌ7`Sɇ$^g¤+‘£,Ö·>~%õV3¦¦G>´­E9<ï¾¥°æêŒld˜¿¾z7ƒ„ ¦l=û!×ü¹ˆØQþf}I1ð—p¥B<´þ*?í·SØŽSx±¿D —*¾xÁÎo~Ç'ùPíÝøÉtØiX ú’§Y;i×eñÃe‘A~HÚ6Ÿ—n¶Žÿ}`ýħ— AómokbÂJÙö‘Æ Ø(O¤êÕkÞë2¾ÑK„b÷\?™À6xZÿÃæiÚ¹WcHNc[Q‹Õ’Þ¸ oÿòåý»÷Ÿ~ü°¹ü`«~Õ»´-P?¿ÿï¶ëô眹¼ endstream endobj 11 0 obj 2974 endobj 39 0 obj << /Filter /FlateDecode /Length 304 >> stream xœ=’;’Ã0 C{‚ÈŒø“äód'•÷þí>2ÉV€I‰(/u™²¦< i& ÿÑááb;åwØžÍÌÀµD/Ë)Ï¡+ÄÜEù²™º²:ŪÃ0[ô¨œ‹†M“šç*K· žÃµ‰ç–}Ä74¨uK ÝÕhY Ípuÿ;½GÙw5<›TêÔQæù!O¢‡éJâ|<(!\{0FäSÑ@޳\­ò^Bö·²ÂAjIç³'<ØuzO.nÍd¹TøNQìíÐ3¾ìJ =¶áXî};š±é›8ì~ïFÖÊŒ®h!~ÈW'ë%`ÜS&EdN¶Xn‹Õžî¡(¦s†s êÙŠ†RæbW« ;o,/Ù,È”Ì 2F§Mž8xÈ~šôy•çxýlós; endstream endobj 40 0 obj << /Filter /FlateDecode /Length 338 >> stream xœERKrÅ0Ûç\ 3ægãó¼NWéý·•p:Ý<ô  2=eH¦Ü6–d„äò¥WdˆÕŸFŽDÄß)¡À®ò¹¼–Ä\Èn‰Jñ¡?—¥72ͮЪ·G§6‹F5+#ç C„zVèÌîQÛdÃëv!é:S‡p,ÿC²”uÊ)”mAߨ#èo<ܳær³¹Lnõ¿î[ ž×:[±m@ –sÞ`Äà ÚÄÜÚÞ)(UºŠI­ò\';P¶Ðªt¼7€9`Ã’­×hoÃ>ô¢FÅö ¨, þÎÙfÁÞ1ÉH°'æN=q:Å‘pI8Æ@Š­âºñØâ/®ˆšð u:eM¼ÂžÚâÇB“ïRqð"n]EµlOç ´?*’3b¤ÄÑ ‘ԒΗõÐû¸‰¯Äæž¾Ý?Â9Ÿëû¸ƒà endstream endobj 41 0 obj << /Filter /FlateDecode /Length 133 >> stream xœMAÃ0ï~…ž€±óžtzJþ-6î팀‘†03× endstream endobj 42 0 obj << /Filter /FlateDecode /Length 68 >> stream xœ32·P0P°4†& æf )†\@¾©‰¹B.H Äʳ €´%œ‚ˆ[B4A”‚X¥f&fI8"—É´å endstream endobj 43 0 obj << /Filter /FlateDecode /Length 45 >> stream xœ32·P0P°4†& æf )†\–V.L,ÌÑ–p "žŸ} µ endstream endobj 44 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ=P»C1ë= äÎ|í7ÏË¥Ëþm$œ¤B6B”šLÉ”‡:Ê’¬)O>Kb‡¼‡ånd6%*E/“°%÷Ð ñ}‰æ÷ÝÕ–³C4—h9~ 3*ªÓK6šp*º ÜÃ3ú mtV‡±[ Ф`×¶ rÇ Á™‹" JMÿ­r÷RÜï=o¢ˆ”tð®ùåôËÏ-¼N=ŽDº½ùŠkq¦: DpFjòŠtaŲÈC¤Õ5=kµ®Þzù7hGt€ì‰ã4¥CÿÖ¸Ç뇊Rô endstream endobj 45 0 obj << /Filter /FlateDecode /Length 161 >> stream xœEKà C÷œBGðG|žtºJï¿­!M³€§±@w'©µÑ/mKº >[ ÎÆxè6n5äu€V¤ãh”R}¹Åi•tñh6s+ ­fz”£ :Þí¢är¦îÎùGpõ_õG±îœÍÄÀdå„fõ)î|›Q]ÝdÒcnÖköª°´¬¥å„ÛÎ]3 î©íý©s:„ endstream endobj 46 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ5PË C1»g ¨džV½uÿkmÐ;aÿBXÈ”y©ÉÎ)éK>:L¶.¿±" ­u%ìÊš ž+ï¡™²±ÑØâ`p&^€7`èi5tႦ.•BÅ%ð™|u{è¾OxjrvCÉ` jºMX´<ŸNâÿ~Ãî-ä¡’óÊžùœíð;³ná'jv"Ñr2Ô³4ÇE> stream xœE¹C1DsUA °ê±ÇÑwÿ©ùJ´o-‡¯%Sª'"¦Ü×hô0yŸM%V,Ø&¶“rAJ1˜xN1«£·¡™‡Ô븨ª¸uf•ÓiËÊÅóhW3“=Â5ê'ðMèøŸ<´©è[ ¯ ”}@µ8IP1}¯b£œv"œà>G™)#qbn ì÷f¾W¸ÆãÝ7y endstream endobj 48 0 obj << /Filter /FlateDecode /Length 49 >> stream xœ36´P0P040’F†@–‘‰BŠ!HÄÌå‚ æ€Y@¢8®&‡+ Æè & endstream endobj 49 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ-Q9’AËçzBsÓï±Ë‘÷ÿé ʃ†C :-qPÆO–+ÞòÈU´áï™ÁwÁ¡ßÊu9HÒTM¨]¼½vfó¤5,ƒë?c 7zqxLÆÙíu5{×kOfP2+qÉÄSuØÈ™ÃO¦Œ í\Ï È¹Öe¤›•ÆŒ„#M!RH¡ê&©3A£«Q£Å~éË#aU#j û\KÛ×sÎ4;«<9¥GWœËÉÅ +ý¼ÍÀET«<p¿ÛCýœìä7ÞÒ¹³Åôø^s²¼0XñæµMµø7/âø=ãëùü¨¥[ endstream endobj 50 0 obj << /Filter /FlateDecode /Length 247 >> stream xœMQ»mD1 ëß\àëkyž R]öoCÉ ¡/)§%öÆK á[¾ä‘UC?1ì3,=ÉäÔ?æ¹ÉT¾ª›˜Pbáýh¼t/"+Êße sÎ÷ࣗ`&4`¬oI&Õ¼3d‰¡ŽÃA›TwM,®Í3ÈíV7²:³ lx%âÆDÙÍ`£Œ±•År¨ ’Z`×éQ‹‚+”Ö t¢ÖĺÌà«çöv7C/ò਺x} ëK°Âè¥{,|®BÌôL;wI#½ð¦fR™‘•:=b}·@ÿŸe+øûÉÏóý (\* endstream endobj 51 0 obj << /Filter /FlateDecode /Length 80 >> stream xœEŒ» À0D{¦`~&fŸ(•³ JÜpOº{¸:2SÞa†‡ž ,†Sñ™£`5¸FR죰n_uæzS«õ÷*Ovvq=ÍËô endstream endobj 52 0 obj << /Filter /FlateDecode /Subtype /Form /Length 37 /Type /XObject /BBox [ -184 -236 1288 929 ] >> stream xœã240S065UÈå276³rÀ,#s# $‹`AdÓ_ endstream endobj 53 0 obj << /Filter /FlateDecode /Length 131 >> stream xœEË ! CïTáò>©‡ÕžØþ¯ë0šABøA";ñ0¬óò6ÐÅðÑ¢Ã7þ6Õ«c•,ºzRV釼òPi0QÄ…YLCaΘÊÈ–2·á¶Mƒ¬l•T­ƒv<¶§e«~©maê,ñ ÂU^¸Ç ?K­w½U¾BS0— endstream endobj 37 0 obj << /FontMatrix [ 0.001 0 0 0.001 0 0 ] /Name /BitstreamVeraSans-Roman /FontBBox [ -184 -236 1288 929 ] /Encoding << /Differences [ 46 /period 48 /zero /one /two 53 /five 97 /a 102 /f /g 105 /i 108 /l 110 /n /o 114 /r 116 /t ] /Type /Encoding >> /BaseFont /BitstreamVeraSans-Roman /Type /Font /CharProcs 38 0 R /Subtype /Type3 /FontDescriptor 36 0 R /Widths 35 0 R /LastChar 255 /FirstChar 0 >> endobj 36 0 obj << /FontName /BitstreamVeraSans-Roman /Descent -236 /FontBBox [ -184 -236 1288 929 ] /CapHeight 730 /Ascent 929 /MaxWidth 1342 /StemV 0 /Flags 32 /XHeight 547 /ItalicAngle 0 /Type /FontDescriptor >> endobj 35 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 318 401 460 838 636 950 780 275 390 390 500 838 318 361 318 337 636 636 636 636 636 636 636 636 636 636 337 337 838 838 838 531 1000 684 686 698 770 632 575 775 752 295 295 656 557 863 748 787 603 787 695 635 611 732 684 989 685 611 685 390 337 390 838 500 500 613 635 550 635 615 352 635 634 278 278 579 278 974 634 612 635 635 411 521 392 634 592 818 592 592 525 636 337 636 838 600 636 600 318 636 518 1000 500 500 500 1342 635 400 1070 600 685 600 600 318 318 518 518 590 500 1000 500 1000 521 400 1023 600 525 611 636 401 636 636 636 636 337 500 500 1000 471 612 838 361 1000 500 500 838 401 401 500 636 636 318 500 401 471 612 969 969 969 531 684 684 684 684 684 684 974 698 632 632 632 632 295 295 295 295 775 748 787 787 787 787 787 838 787 732 732 732 732 611 605 630 613 613 613 613 613 613 982 550 615 615 615 615 278 278 278 278 612 634 612 612 612 612 612 838 612 634 634 634 634 592 635 592 ] endobj 38 0 obj << /a 39 0 R /g 40 0 R /f 41 0 R /i 42 0 R /l 43 0 R /o 44 0 R /n 45 0 R /zero 46 0 R /r 47 0 R /period 48 0 R /two 49 0 R /five 50 0 R /one 51 0 R /t 53 0 R >> endobj 6 0 obj << /F1 37 0 R >> endobj 7 0 obj << >> endobj 8 0 obj << >> endobj 9 0 obj << /M17 29 0 R /M1 13 0 R /M6 18 0 R /M9 21 0 R /M18 30 0 R /M16 28 0 R /M0 12 0 R /M2 14 0 R /M4 16 0 R /M14 26 0 R /M20 32 0 R /M8 20 0 R /M15 27 0 R /M11 23 0 R /M22 34 0 R /M3 15 0 R /M21 33 0 R /M19 31 0 R /M13 25 0 R /M10 22 0 R /Vera-minus 52 0 R /M7 19 0 R /M5 17 0 R /M12 24 0 R >> endobj 29 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 13 0 obj << /Filter /FlateDecode /Subtype /Form /Length 24 /Type /XObject /BBox [ -3.25 -0.25 3.25 0.25 ] >> stream xœ3VÐ5PÈUÐ5V0PÈá æÀ endstream endobj 25 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 15 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 30 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 27 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 14 0 obj << /Filter /FlateDecode /Subtype /Form /Length 139 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ}P¹ 1 ë5…¡Ço›UܤÉþmNMÎpi Ðâ’‘ ?Èe¬Öy™C)­Ía«‹V$-}ÚbáQ'jS¶jÝO7‚IÁåò½# ·¿¿ŸS Aؘˆ‡E̲‹âéQ™:¥À¸EœÉâ†ÞÎÖ@æ¡ç]ÝçäfŸ”J^ö /øŒî[ endstream endobj 23 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 34 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 28 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 26 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 16 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 17 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 32 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 33 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 19 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 24 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 21 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 31 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 12 0 obj << /Filter /FlateDecode /Subtype /Form /Length 24 /Type /XObject /BBox [ -3.25 -0.25 3.25 0.25 ] >> stream xœ3VÐ5PÈUÐ5V0PÈá æÀ endstream endobj 20 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 18 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 22 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj xref 0 54 0000000000 65535 n 0000000016 00000 n 0000000065 00000 n 0000000216 00000 n 0000000275 00000 n 0000000511 00000 n 0000009007 00000 n 0000009039 00000 n 0000009060 00000 n 0000009081 00000 n 0000000382 00000 n 0000003560 00000 n 0000012444 00000 n 0000009541 00000 n 0000010316 00000 n 0000009853 00000 n 0000011209 00000 n 0000011364 00000 n 0000012757 00000 n 0000011827 00000 n 0000012602 00000 n 0000012136 00000 n 0000012912 00000 n 0000010590 00000 n 0000011981 00000 n 0000009699 00000 n 0000011054 00000 n 0000010162 00000 n 0000010899 00000 n 0000009387 00000 n 0000010007 00000 n 0000012290 00000 n 0000011518 00000 n 0000011673 00000 n 0000010744 00000 n 0000007777 00000 n 0000007562 00000 n 0000007152 00000 n 0000008830 00000 n 0000003581 00000 n 0000003958 00000 n 0000004369 00000 n 0000004575 00000 n 0000004715 00000 n 0000004832 00000 n 0000005119 00000 n 0000005353 00000 n 0000005636 00000 n 0000005866 00000 n 0000005987 00000 n 0000006308 00000 n 0000006628 00000 n 0000006780 00000 n 0000006948 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 54 >> startxref 13067 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_curvefitting.png000066400000000000000000000701641323370031300220420ustar00rootroot00000000000000‰PNG  IHDRôv˜®jYsRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ ¤èÚ IDATxÚìÝwxTÕÖÀáßÌd&½÷„Jè-t=t°ÐÁ^Q”"EPšT. ú! r¥Ko""B %”@zHÏdæûc_@€ ¤¬÷yæa˜9s’¬s’uö>{¯­1›Ífr!%%…±cÇràÀN:Å Aƒøè£rÜöÔ©SôêÕ‹äädlmm(_¾<‹-ÂÚÚ!„Bä-‹Ün¨Ñh¨R¥ µk×fÉ’%¹ú̧Ÿ~Jpp0z½+++‰¸Bñ<ºµµ5}ûö%== 6äê3NNN¸ºº¢Õj±°°@£ÑHÄ…Bˆç™Ðk§øúú2nÜ8ÒÒÒ°²²bÀ€¼ð XZZJÔ…BˆÂн¼¼˜0aÎÎÎdee±gÏ&OžŒ§§'5º½ÙlfôèÑr„Bˆ\š4iRŽã|Ièööö·ïòÍ7ßðÇܗзmÛÆ_|!G¨øúë¯éÞ½» |,:DFFõêÕ“`rF£‘%K–ðÖ[oI0Š€aÆ‘™™ùìú½²²²0ètºûÞspp V­Zr”Š€Í›7Œ£KNN&==]~7‹HBß°aƒË"ÂÑÑñï=VB?þ<±±±ÄÅÅaccÑ#GðññÁÊÊŠ¥K—R£F BBB8yò$ááá‘™™ÉæÍ›IHHÈÖ:B!DÞy¬„>cÆ 666 2NGLL ŽŽŽ 0KKKÂÃÙ7oIII 0à¹Tç“„. ®óçá·ß 5.]//°´„²e¡}{0$FB1«V­Âd21aÂjÖ¬‰F£¡ZµjtìØ‘_ý•’••E¥J•;v,ÞÞÞ9î'**ŠŸþ™ºuë2~üx F£‘ÔÔT>úè£G~5jÔ`̘1ØÛÛc2™8zô($!!BBBhذa¶ûõ)))lݺ•îÝ»ãåå% ]ˆÛ o_0›áÝw¡cG  ÚÔBI{öì¡bÅŠTªTéöÚ5kÖÄËË‹“'O’™™‰N§£ZµjMšQQQœ9s†‘#GbøßÅ¿……Åí®úGiÔ¨Ñí•#µZ-åÊ•cûöí¤¤¤àììÌÍ›7Y¶lëׯ'>>“ÉDBB>>>$%%=—ØIB—…ü³«Á ž?§{SB_ ññù³oƒ xø6éééXXX`aq'=i4¬¬¬ÈÌÌÄd2¡Óé°²²zèbPYYYdffbeeuÏŸ•ìû~ð÷jȶ­V{»;?99™Y³f±mÛ6úöí‹¿¿?–––lÙ²…­[·>·u$¡ !„¸ÍÏ\\òïýQ¹~ý:ÑÑÑ·»Ó“’’¸ví7¾ÝÚ~;;;ÜÝÝ9sæÌí×Ìf37oÞ$!!á©~ޏ¸8þüóO^yå €V«JºìÞ½ûù¶äôBñÐÐçûõ_{í5úôéòeËèÖ­&“‰Å‹cmmMûöís½D³ŸŸ¡¡¡,[¶Œ-ZàïïOLL ,xê´¥¥%®®®>|˜ððp aaa,_¾777IèB!Dýúõ:t(+V¬`ݺuFÌf3ǧ~ýú¹Þ••}ûö导ùæ›”(QƒÁ@PPçÏŸ¿Ýª~{çß}!áêêJŸ>}˜2e ¯¿þ:NNNèt::vìÈ®]»ø9IèB!Š kkkú÷ïO‹-¸qãZ­OOOÊ–-{;9~ùå—9Žn2d¶¶¶”*UŠ)S¦púôi222puuåܹsìØ±ãv×½¯¯/ .¼=ÇÝÅÅ…Å‹SºtélûîÒ¥ M›6ÅÝÝNGÛ¶m)[¶,W¯^E¯×ãëë‹­­-ݺuÃ××Pë–-[†£££$t!„Å3©W®\™Ê•+çø~HHHޝ߻}tt4—/_ÆÇÇNÇÍ›7ùâ‹/hÒ¤Éí®q[[Ûlû³´´¤aÆ÷í;00ÀÀÀÛÿ7 T¨P *dÛîî //¯g:}MºBˆ")::š?þ˜¸¸8¨P¡|f­ægIºBˆ"©dÉ’LŸ>¨¨(ŒF#ÖÖÖàááñLïmKBB!ž‚¥¥%eË–¥lÙ²Åâç•õÐ…BIèB!„„.„BIèB!„„.„¢2™LüþûïtïÞÆóÉ'ŸÐ¦M~üñG@UqKII!##C‚% ]!DAuüøqFމ»»;ï¼ó-Z´ÀÅÅKKK"##騱#sçÎ}n+›D2mM!DÉ76l%K–૯¾ºÐ…´Ð…BpÿùÏxï½÷ˆŠŠ¢K—.Ô¯_ÿv÷ûªU«0``Á‚„„„P¿~}þüóOi¡Ëé#„¢ ¨_¿>:uâ‹/¾ ÿþ¸¸¸P®\9ˆ‰‰ {÷î\¸p*Uªðâ‹/¢Ñh„.§Bˆ‚¢bÅŠ4lØ%K–о}ûÛ+—Ý­I“&,]º”*UªÐ¹sçG.…* ]ˆçÌl6só&‡¶nåÊ_Q鯿¨äꊭ½}‘¬Ã,DAðÚê׸–t-_öm«·emϵdI袸9þ÷߬ûmª;F£´4õí˶mé4c¾Ò½&D¾ø¶Ó·„BJú)D”œœÌžeËxùðaZ¥¥t½u‹rëÖqhãFŒF£IˆbLzé$¡‹BâêÅ‹8ïÛ‡off¶“µrr2Q6–’"A¢˜Òëõ8::rùòebbbˆ—‹|I袠2XZ’igGÖ=WáiZ-NNhu: ’Å”££#­ZµbçμñÆôíÛ—“'Oû¸È=tQ yûù‘T¯ç÷ì!øåÀa{{<[´ÀÊÚZ‚$DU­Z5,X€³³óí×æÌ™Cùòåo·Ð»téBPP×®]Ãd2ááá! ]NQYZZÒmèPþsó&Gwì dDG‚‚°åZ¿ø¢LS¢óññ¡S§NÙ^{饗îk¥7nÜX‚% ].nn ]¸GrmÄ:LžLÉúõ%0B! ]6:ŽªÁÁT // ˆBHBâ.çÏêU˜ûöA™2àîAAÐ¥ ØÚJŒD‘àïïOóæÍ%…@rr2z½^º¥ti9R=>^yjÔ¸ˆ"ç믿– 2²H!„„.„BIèB!„„.„BIèB!„$t!„BHBB!„$t!„BHBB!$¡ !„BºB!$¡ !„â~²8‹x:'N¨UË22àï¿¡reÐë¡jUèÜt:‰‘BHB^¥Jê* ÎÎ!„xƤË]!„ºyÃd6‘ž•®NJ:­­F®7…Bº(IüJâ.'\ætôiþ¸òfÌxÛ{ãïèO\¨gµY‡Å,þØ‹þJZ7w([VîÏ !„$tñ<]Œ¿È«8põ'¢NeÊ¢„C jz×D¯Ós3ù&‡®âpT á7ˆ¿u“xÇ+˜·þAoE`¹:tuLG ¦BHBÏJš131gØyi'»#vs>ö<ÎVÎÔö©Í˜†c(éT+ì öh4ŒYFÒ³ÒÉÈÊ #+ƒtc:©ÆT®ÝºFxl8»"vÑ{m?BK…Ò£RJ¹”ÂÚÂZ-„„.D~0›Í\ˆ¿À¿ý›ßç¢{Eù5â£&QÚ¥4ÚœO?½N^§¿ïõònåi^²9ýjöcÄ~–YÆÛ¿½M]ߺ¼XîE‚½‚±·´—À !$¡ ‘—öFìeÚži8X:°è…E”w+•…ÕSïWƒ†ú~õ©æUc7Žñó響m<Nô îKˆ_È/„Bº¹i•·ÒYuj_üŠ®»Ò»ZoÜmÝóükÙèm¨[¢.U½ª‘ÁêÓ«µe¥œJѧzBüC°ÕÛÊABHBâqŠ:Åü³ßp6æ,SB§Ð<°9&_¿¦µ…5e]Ë2:d4=+÷dűLÚ1‰†þ é_³?Nùþ=!Äó&}Ež0™Mìð7óþ¶˜Ì&æ¶™Kó’ÍŸy" p `Dƒ,ì°+‰WxoÃ{üyíO9@BIèBÇíSRRXµj«W¯F¯×Ó¥K:uê„……\?™¦LVž\‰ÁŽ>Õû }HIWƒÁÀ‹½zס©¯¿ŽóСØúøú¸Ù¸1"d3÷Îdôï£ù´å§Tt¯˜Ë»AÛ¶êùÙ³P¯„†Ê‰%„ÈW¹º‡n49uê:ÂÂÂ09n›‘‘Á—_~É’%Kx÷ÝwéÑ£Ó§OgõêÕíBâTÔ)V\Eÿšýñ°õxôI¤ÕâêæF l­­‹Lœ¬œÛh,U<ª0vëXÂãÂåäBî„niiÉ Aƒ˜>}:7~è¶111lÚ´‰~ýúѼys:vìÈ«¯¾ÊòåËI¿k1 Q0¥ÓøìÏh^²9u|ëûxXë­\w0ÎVÎLÛ=¸4Y¸EQˆúãHJJ"66–Ò¥K£ÕjÑh4Ô«Wëׯsýúu‰xf6›Ywv'£N2¨î ¬,¬ À÷&deAf&dd¨‡ù.ÓêcïÃäf“¹vë3÷ÎäVú-9Y„NžßÔ6F¬ïêzuqq!33“ÄÄÄû¶OHH`ÿþý·ÿïèèHéÒ¥1ÈÀ¡gîBü–ü½„wj½ƒ¯½ï3ýÚ&\ºqq–¦Æ•¥¥©ãqqê `i µkCÙ²àë ^^j y~òuðe~ÛùôÿoæîŸËðñÖ[ËI#„È7F£‘sçÎûµ¸‡,ïœç5 Z­6Û=öôôt´ZmŽI:33“èèè{þ¸›äH>cY¦,ÖœZƒÁŽÖeZ?Óø… °z5üþ;h4*9ÿó°²õpu…€•ä7o†o¾QÆË—‡š5!8X (ϯÙrNŒm<–ñÛÆãçèGïê½Ñ ‘“G‘O ‰‰‰ÙrdFFƳKèÖÖÖX[[{ûµ³gÏbkk‹——×}Û»¹¹Ñ¡C9rÏÙ•[WøéÔOŒm47·|Oâ ¶màïC‡BéÒw¦mçô¯N§ºßU«ýÒ%õùåËaöl5+¬~}hÜXÍÔ³µU yA«Ñ☆c˜´cî¶î´)ÓFVgBä=ƒÁ@:ÙÇ2-Z´èézbb"ñññÄÅÅ‘ššÊÕ«W1™L¸¸¸ð×_‘••E­Zµpuu¥N:¬ZµŠ2eÊ‘‘Á·ß~Kûöíqrr’#T¥f¦2u×TBüBhUºÕC§©=­¤$ؿ֯‡}û zu˜5Ku¡ëõ¹Û‡NÎÎêQª4k¦ºì¯\;Ô~GVÝñ¯¿ B^-qn¡µ M™6ĦÆòéžO1è „– Íט !D®þ>åvÃ5kÖðã?réÒ%¢££Úµƒ¾}ážS%_ j$üĉо=,Zo¼={ªBnªeÿ¤,˜Ðdƒ×æƒß?`jèT||åÄB<r㯻‘|ƒŽÿ@Ê=rUîqýßÿÁ§ŸB×®0lسMæ÷ª][Ý«7¶n…`éRuÑñ4¬õÖ|ÐèÒŒiÌýc.™Y™rb !$¡‹g'#+ƒ™{gRų íƒÚçé ®¤$øâ øê+xÿ}èß¿`¬Gâà ºÝ-‚~ýàÇá_ÿ‚S¬ÈâÉGª:òA£8týßû£É('˜BºÈf³™­¶²ëò.F‡ŒÎÓ)QÑ0eŠˆ6s&tì¨ ÁšÏÞµ+üðƒšÖ6dçˬ;Z‚'- Ñh¨îUqÇñÕÁ¯Øt~Y¦,9Ñ„’ÐEþŠJ‰â›£ßб|GJ:—̳ý&àÀ¸qZNœPI½nÝ‚øäèÐÚÈÔOÌ|ýµªN÷¤š4ᵪ¯1{ßlNGŸ–M! ]ä¯ç6’˜žHÊ=òd&œ> ï\O²ÖŽùó¡N¼›"–Ÿœ¡¿×/|úþ–.…±cáòå'o©÷ªÖ‹º%ê2vëXbScådBHBù#CË.§cùŽø;úçÉ>PÓÒíá³™øû?ÝèñgMO& ê™X¸nÞTë≺à,X{ ¶z[fì™! ¹!$¡‹ü±3R2Rò¬"ÜþýðÁªhˤš¿àlV(ã¢Ñ@ÅŠ0cT©ƒÃo¿ñ Æ·yÛ{3±éD6ïÞÀÔí«8týšœxBˆ|g!!(>Ó™œNß}Ÿz¾´Ù Gލ"1ݺ©9憞…QooÕÛP¶¬pú4¼ù¦êšÏ­¨ÈHÖ~8~?_ F\"'Nã÷Í[è5mžÞÞr" !$¡‹§HÀ¨‘íÑ‘át«Øí©+šÅĨ²ªU\¯ÑÛío ëpýº*Ònk %J¨åÏ´…¯ÈÊ ºwW¥dgÌ€‹aÄUˆæQ233ÙºbÕøfÉÉh€zQQìúé'¶T¬H×!Cdi`!„$tñ­ó´DÖ]G‡]7±·´êý-^¬V;›8Ák—ºáüÑGj²·V NN{TÜ… ðë¯jÙ¶ýûU±yoo(S^|­­-!!*¡ü1Œóæ©’µKÆŽTLMÍvÉT>5•K;wûÚkxùJ59!„$tñ„GæBüÞ{ºrmF#¬Yÿý/,X%«:ƒ¦fá H@¼ý¶ºw0lØž­6Û²oåÊ©jw¬ŠÐÌ«ZêºV1›L™‰ÎlÎöº3×ã"HLKÄ IèBˆ¼'ƒâЉÇWP×·.¥Ÿxf³ý½` ”·«—=û3_«*ÞXYú×ÊJ•´»ç‡òòR*÷Ÿ8¡b‘'WWôÍšqÊÚš»79mÐó“ûMþ{m½œŒBIèâÉ\Œ¿ÈÁkéP¶VVO¼ŸøxÕZ­W^x¡xÅÐÕUæ÷õU÷Ó#"rÞÎ`0аkWöµnͶ¶œþÏÆ†-[ñ¯ùþÔ÷üyõO9)…’ÐÅãÉÌÊdîþ¹4hL]ß'/Ý–šªF}[YÁ!ªQ[ÜxzÞ©€×»7>¬–‡½W‰€F¬\IÐæÍêЀÏ>cÔϿЯEÞ«ûC7åøÍã˜1Ë *„„.rçDÔ öFì¥_p?4OØ?n4ÂÊ•w È<ÏUÓž7{{ÕBoÔFV1É©V§£Výú¼V¯uÑéth4zTîAÏ*ÌÞ7›è”h9A…’ÐEîZçÎm œk9ʹ•{âý<¨VN2*U’¸ÚÚªjruêÀÈ‘j®znéuzÞ¯÷>Q)Q,?¼\‚)„È32ʽ;wžÍá›ßd<Ú';Ô—.Áĉju²ví ñ ¸<æä¤Šêxzª¢:S¦¨Vû]䨬kYÆ5ÇÀu)ïVž6AmÐir¹|kjª*6Ÿ–¦žÿ3¸ÏÆFMœ/HKÛ !$¡‹¼±éü&¼í¼©ì^ù‰>Ÿ’¢¦iy{믌5Í ƒÞz 22Ôªm£FA‹¹«¥SÛ§6CêaúžéøØû윻/𖦮²`ãFptT£]\Ôp|IèBHBEKjf*?ü‰µàbíòØŸÏÊ‚o¾QÝíË—?º Jq¥×«¤ª'£D ¨PáÑ=†Žå;ò×µ¿˜½6³ZÍÂÃ6Avv†V­Ôó¨(ÕEй³!„ÜC/ŠÌf3Ë,ÇÙÊ™ʽ€F£Áh4rýÊÎ¥¤œœüˆÏî]ðí·0u*”,)1}[[5/ÿÕWUrÿë¯Ü­ÔfeaÅÐúCÉÌÊdÎþ9ddeH0…’ÐxÞ3ˆ IDATÅ‘I‘¬:µŠÞÕ{c«·%==ogÏfó€üuò$?ŒÇÁ={0= 뤥©ÖyãÆP£†Ä37,,Ô".ÍšÁ„ pòdî>çcïÈ#Øyi'¿†ýŠÙ,SÙ„’ÐÅÿZçÛ/nÇŒ™ÐR¡˜L&–ΚEÉI“h÷Ûot¸u‹† °ð`.„…å¸]»àÜ9èÙ³xÎ7R––ðþûP¾¼ºŸ“»Ï{32d$söÏáÀÕ2?]! ]@TJkN¯¡gåžØì¹pîšß~£ar2n&¶@¹Œ jœ8Á‘ß~»¿u Ó¦A¿~P¹²Äóq¹ºÂ¸q¤JÅ_ºœ‹_B–vAíhW¦Ó÷LçRü% ¤Bzq÷÷õ¿ILO¤‘#´-7¯^Å÷Úµût‰ôtn9’íµÌLøþ{U<¥S'‰å“úgJ›•L^U‘H]‰G¯ÕóFðØèm˜`>F“Q)„„^\™Ì&¾9ú M›PÒYdó+]šðҥɼk;3pÆÆÿF²}þøqX»;;‰çÓpsS÷Ò“ê„2ùû2¤¥=ú3ÞöÞŒm4–¿®ýÅ·G¿%Ë”%BHB/ŽŽÝ8FXL]*t¹]H¦„¿?î=z°ÖÅ…pŽh`¯ §CB¨öÏô'Ô\êÅ‹¡fMU«\<½2eàãõ\ù=ŒO>QëÇ?Œ Ü+0¾ÉxZ̶‹Û0™MH!„$ôâÄl6³òäJjùÔ¢´KélïuéÝ›ùóÙÛ§k]\¸>i­æÌÁÇßÿö6ª¥Q{ö”Öyž&uÎ1}D4»vÁ¢E”ôèÏ4ôoHÛ ¶|öÇgD&EJ…’Ћ“ð¸pv]ÞE¯ª½Ðj²V½^Oë=xiöl^ªX‘ ¢l¥JhÿWÒìŸeQ»wWkœ‹¼U¾¼ª$·q#,]ª»yƒÎÀ¿jü 77¦ížFº1]‚(„„^˜Ì&v]Þ…³•3U=«æ| µZìpÑë1ÜUÃ53¾ûN•yý׿Ô|j‘÷4P÷Ô¿ý~þùÑIÝÃփȩèS|}øk):#„„^$¦'²ýâvZ–j‰•ÞêñZöá*Á¼õ–ªx&ò‡F£o7¦O‡­[]M®”s)†ÕÆò£ËÙe¿BHB/ê.Æ_ärÂeú7Ìýª]¨zíË–AéÒм¹Ä1ßٴж­ª(7uª·ð(ÍJ6£K….LÛ=ˆÄ ¢BzQ¶êÔ**{T~ì5σ͛¡woµæ‡È:ªùÞ²¥j­_¼øðí-u–ôªÖ ??fì™ARF’Q! ½(ŠO‹gûÅí´.Ó+‹Üw·''ìYjóš5%ŽyêêUøÏ`æLؽV®TÏÿïÿ 1;;èßÊ–U÷Õ#1ÝÕÆ•!#8vã+Ž­ùéBˆÉ¨Bî×°_±3ØZ24ןÉÊ‚U«àÂøüsYç<ÏyzB×®*Ð}ú¨èZ­ZkõÅñ]]aÒ$5vaÚ4UYÎÍíÁ»,ãR†IÍ&1vëXüýiYº¥\ !¤…^”Z翆ýJ׊]«u~ñ"üø£j%::Jóþ2ÙÔ} 77•½Õí_9ggøøcµ΂jÆÁÃÔó«G׊]™÷Ç<.'\–8 !$¡Go%*%Š¥Z<Öçþû_U¯ý®Bqâ9 R÷Ò7nTuô6òÝRgÉ«U_ÅÓÖ“Ùûf“‘%óÓ…wµ%$…Sº1-á[¨íS[\.¾ûÆŽ‰ãs¿¢ÖB:êûСj Ö.]\ÀÍÆ)¡Sèõs/Ûο X†4.NÝç¹x._VkË«ŒÎÁÏON!$¡OÑ)Ñ컲áõ‡?Vwûr^ÇÏš5S·vÅó§Ñ¨úùÀ¿ÿ ^^д郷÷¶÷fLÃ1L:÷åœbic6ÝW°ÀqvVóõÖ¯W+!_ˆ¼l H §?®þ•…U½ªæú3ðCB[ú÷W·xEÁ¡Ó©†jË–ê¾ú£¦³…ø…ðBט}üßD%GI…’Ð £Ì¬L¾=ú-mË´ÅËÎ+WŸ1á§ŸÀ5l/-ZH "[[6LµÖ‡ QUüTÎÒÂ’þ×}©|6›GŸ/Bº(lþŽü›k·®Ñ>¨=r×o~å lÙ¯—Þ=ÐZ0z= ®-Θ¡Îy» <ˆè”hþ}èߤf¦J…(ÆäzAqà€~pêT¨ ž7l˜m8ºÉlâ—Ó¿PÓ§&þŽþ¹ÞýŽjÀUýÀëëÎÉ FV­õ/¿„>xð¶ÞöÞ ¯1œq[ÇQݳ:-J·ÈõEžBºÈµkß)ÙÖ²¥*!÷\;}š={˜Ùj&š\ŽjKJRƒ­Þ}|ÿ-¡.è4¨XQ|ç5¼wouA–“Æy«æ[ŒÛ6Ž’Î%)ãRF‚(D1$¯鯸N§pçù]ýã&³‰?¯ý‰»;¥]Jçz×?ÿ¬jš´l)a.L*UR-õo¿U5÷³PñÕBkAÇ iИÉ;'-ÁBº(È’3’Ù¾…¦%›â`ÈÝ0õ¨(øæÕÂ{XiQQ0µh¡ªÈNŸçÏ?x;KF4ÁÕÄ«,ù{ éF):#„$tQ`=Ë¥øK4 l†NûèeR³²`Íõ¼K‰_ad0¨zï:¨yê›ÎænëÎìÖ³ùï™ÿòÓ©Ÿdýt!$¡‹‚jõ©ÕT÷ªžëîö›7UIÑ=\yL|––ê^zÙ²jA—ë×áÒ… l?q‚Ó11˜îª[Á­ýjô㫃_q6ö¬OI袠‰JŽbûÅí¼Tî%,u¹+öùÇ–¦ªŽIU¸ÂÍÁAV‹Mãóø¹ç«d|÷»gÏfþœ¤ÖI×ëôt©Ð…~ ˜¸}"±©±…$'DQ&C¥ 8£ÉÈîˆÝ”q)ƒƒÏ#·7™`ÃU2ô•W¤u^”ØÚÛãØº5§vîÄ-9ùöÕøƒ[!!xûg¯h¡µ [¥nD¥D1pÝ@¾jÿA®Aþ©©pD”–¦ É[[«"óeÊ€!¤….žTJf ».í¢Q@#lõ¶¹jÿö›ºw.‹½^Oõ¶m9Ú¬¿ÙÚrج³d¡s5C{`k{ÿù¡Õhy³Æ›ø;ú3gÿœ‡’ËÊ‚„µVùºuª"QLŒº:4å! ]<ð¸p¢S¢©íS;Wk^:7n@ëÖwŠÎ‰¢£dP=/Ævɶ4iBêûïq©ÎJ6l­E\\Ο±¶°fdƒ‘D$F°ìð2²Ì(9gg§ÖèЂƒ¡jUõ¼qcYoWIèâiýpüjz×$È%è‘Û°p!´iAA»¢H£ÑàæéIónÝøW·n¼X¿3çpò¤–Ï?‡ŒŒœ?WÁ½£BF±âø 6Û„Él’` ! ]<+Ñ)ÑìØKû²ís5ºýÐ!ˆˆ€—^’Öyq£F©±¿þúàíêûÕghý¡|²ëG–À ! ]<+[/lE¯ÓÓÈ¿Ñ#·ÍÈ€eËTíïR¥$vÅê—X«zÊÇŽ…Y³Ô”ÅœrÑitt¬Ð‘&Møtï§D$DHð„„.ò[rF2›Îo¢]™vXZ<º2ÜáÃêÑ»w¶ÚD1aaíÚÁ«¯ÂŒª·&'–:KÖˆ…Ö‚9ûçÈ".BHBùí|Üy.Æ_$´Th®ZçÛ·Cùòàç'±+Î^ªW‡É“ÕàôœxÛy3¢Áþ¼ö'?œøAî§ QT.ì%CVVÂÂ8ºe ñ/reÝwxYyâïèÿÈÏFFÂÖ­0p XY= ù¾j•šWœž~¨^¯UKÍoE†£#Œ©£FÁ´iàì|ÿvU<ª0%t #7ÄÓÖ“V¥[åj…Bºx„ëÖqøí·©E%c&ëͦR÷.èÚjÀúáŸÝ¹SÍ9¯]û…dªWWQ,¸¹©õÓûôQ÷ÔG޼Ö™F£¡_^©ü Ÿýñ~~Tò¨”ïß[\l,ÃÂpLNÆßhÄB–"ÏÈ%yÃþÏ?ç­kרŸ™I93 H6âýó&Î9úÐÏðãв%xxH,…âî|û÷Ê9o£Óèx¥Ê+”t*É´=ÓHÉLÉ·ï'++‹­ëÖñÍ A\œ=›«WóÕ„ ¤¥¥ÉÁBzÑq⯿¨~ò$vw½fÄÅqdíÚ‡~vófUÜ«sg)ó*²«W† ƒÅ‹Õy’ÓÈwWW&4@Zf“vLâVÆ­|ù^Ž8ÀÙéñÃtˆˆ ûñãÔŸ=›E“&a”*tBHB/*ìIÈ¡Nk‚…öiv'%Á?À /Hë\äÐש"C£FÁ¸q°k—ªõ/[> ý„ƒ×òõá¯ó~ä»ÙÌ©uë¨uå &zÀÚl¦Jz:v;wrñüy9XBHB/ÊW©BX•*DÞõZ2°ßÍ*­Z=¸Õs Ο—qmâÁ4èØQ]ôM™gÏæ¼]—2 ª;ˆ•'V²ûòî¼Íç@\Xžÿ[¯ýö‡ÙŒÛÄݼ)Jˆ< #R Þž7ù驸ÚG@t"Ç4¢Æ;ïP¦rå?“–¦a©SG¦ª‰G·Ô„”2D rw¿çÊ^£¥}P{âRã¿m<žIM©d[’¼¸‹£Ñh(Ù¶-ÇÖ¯Ç')év+"I£!¼Jê—//Ii¡^¾¾tÿj*«ß®Ld€3ÿZ¹’Öݺ=ppd$ìÛ§Š‰ä8UMˆ»8:Â{ïA‰ªû=§F±…Ö‚W«¼J› 6Œ=·p§¼[?½J³f\hÞœÍvv\Žêõ¬öñ¡Ük¯á~ïÕ…BzafÆLXBNeÝéàä››ÛC·ÿýw5¿88Xb'rÇÃƇðpµˆOròýÛèuzÞ©õN B™Í>n¥çÍ 9߀:Ì‹iÞ<~mЀãíÛSqùrZ¾ø¢!òˆt¹™Y™ü|êgš6ÅÝ6æ¡ÛÞºß~ €««ÄNä^‰0s¦êzwp€wßUecïæfãÆ8Ƕö]æ{–aXýa¹*?ü0ÿ’%)@–»;ÚS§Ð5o.Di¡=7’np>î<õJÔC÷ˆŠ]ë׫û¢-[JÜÄã«\YÍQ_±Ö®Íy:[™x c½º±þìzVŸZÑ”7SË´Z-z t2ÇRIèEÕÆóñuð¥²Gå‡n—˜¨–È|ápr’¸‰'IªÐ¤‰ª 7e ìÝ«ªß«¶Om†Öʼ?æ±ÿÊ~̘%xBHBs+ã?ÿW«¼ŠµþÁu^ÍfõÇ÷êUèÚUâ&žœ…¼ôôë§î«ÿùçýÛh4:”í@ïê½·m§¢NIà„„.æÀ•$g&Zòá+«¥¥©Š_!!àâ"qOG§ƒž=ÕZêŸ|—.©×¯]½Ê®cÇ8Ƭ¡GåÔô®É”]S¸‘tC'„$t‘£ÉÈŽK;¨á]G+LJn@h¨LUyÃÑQ óô„ÇfòÕ§_³¢W/’-bÏâÅÌ9K“%#CF’’™Â§{?%!-A'„$tq¯‹ñ9põÝ+uä¶ß|eËBݺ7‘w\\`Ö,3Ñë0ŽÆ ­[iK¿°0Z~þ9ÿùè#œ Î|ÞîsNFdÆÞ$g&Kà„„.îv:ú4––”r.õÈÖù¦MЩ“Z*Uˆ¼d0dÐ&p ÍHÄp×ë¥FàÊ¥KxÛy3¡ÉöFì廣ßa2›$pBHB&³‰ç7쌇íÃWWY¿¬­A¦îŠ|9³²0Þ¸‚‹9ûô4½ÙŒmL ɉ‰h4jùÔb|“ñ,>´˜_Ã~•¤.„$t–Àþ+ûi^²9á¡­óŸ†×^SI]ˆ-ôK—.±|ùrH×ÿU42d_~ù%Ÿþ9––÷×y®^½:Ý»wàjaÅÝß×ÿæ\ì9æ·ÿÐí"#á?`êT™ª&ò—F£ÁÝË‹f]ºÐ,#RRðÑUà£ÔºêMš¨*sÿp°tࣦ1pÝ@FoÍ´Ðiø9ÊZ¾¢;rDóX¼Þ|S=oÐ@àÅ!¡_»v„„‚ïZÚ+44”9sæpãÆ üýýïûÌÆ‰ˆˆÀÛÛ›¶mÛRµjU4R¿Yõx˜Mì¹¼‡r®å9nÝ:µ FÕª7ñìõèW®Àôéàí ÷.]nÐÛh,£¶ŒbÆžÌl5ó©r"ßÔª¥ û˜1EêÇËU—{rr2z½>[·¹··7·nÝâÖ­ìË+êõzBCCéܹ3õêÕãòåËôíÛ—ãÇç¸o£ÑH||üíGRR&SÑds3ù&{¯ìå¥r/=t»„Xµ :wV+c ñ¬Y[àAP­Œ÷×}÷wôg\ãqœ‰=ÃüóÉÈÊÀ ‘Ìf3ÉÉÉÙr¤Ñh|ººF£Á|Ïo±ÉdB£Ñ Õf¿&°µµ¥OŸ>·ÿß©S' ÀüùóY´hÑ}û¾zõ*‹/¾ýÿ€€Ú¶m‹]‘=HgcÎr+ý5|jÜyñúu8{öN&ß¹“{Á3ÅöíKÊ™-ž''˜8Q-æ2dˆZÐ%(HuÃÿó÷¡’G%f·šÍÛ¿½•…}ƒûb£—‚ B<´´46nÜHxxøí×.ýS£ùIº½½=™™™¤§§ß~-""GGÇûF¿ÞËÒÒ’R¥J±ÿþß`øðáÅê m»¸²®eñ±÷¹»«RSÕó÷Þ#!2•­¿ÁËí3eªš¸#* ~ÿbb`çN°·W-<=¡E‹|[‚ÏÚÆŽ…?TÉý³ÏÀÍ-û6•<*1*d³öÍÂÞÒž^U{Ém6!žê÷ΚN:e{mçÎO—ÐðóócãÆøúúb4ùå—_¨^½:^^^ÄÆÆb6›qqqÁd2‘€••Z­–˜˜8@U¹ @fV&›Ã7ó~½÷±ÕÛÞyÃÏO=þçØnØfUÕDÍåÐPuøÂ ª™laz=äs¯–§§Jæ~¨ZëŸ~ ®®Ù·iS¦ YLÛ= /[/BK…b¡Íç±&ܺ¥F*›Íjw µúŒ½½ŠÅ@®~Ó¼½½yûí·™={6çÏŸ'!!¤¤$ÆN§c̘1¤¤¤°páBbcc;v,nnn Μ9ƒV«åÝwß•h{#öb6›iè×ðÁI?6l€êÕ³åx!Trrw._Z£Q4?ýVã‰&NŸ»:š,´t,ß­FËøíãÉ0eЦtôº|Lª©©°u«Z.îÒ%8~Ú·WOZµRß´’ÐïhÑ¢îîî„……¡×ë ¦T)U¼OŸ>F ®®®ôéÓ‡›7o’™™I£F¨V­ÞÞÞÅ>Øf³™•'WÒ$° vÝ~ë–êM5Jê¶‹‚ÇÝ>úHuÁO 3fd¯`¨Ñhx±Ü‹\M¼Ê¬½³p°t I@>N ²µ…ŽÕóýûÕ7óþûr „$ôÑjµg›ºöúõëßÙ¡…Íš5“ÈæàlìY\=À×/†ß[\»œÕÔH! ¢  ˜4IµÒ'M‚>P½Û·ÿ^h´ô î‹ £6â?/ý‡ nÐj¤Ú´ùE~»žaë|÷åݸٸQÁ­Â·KL„T÷Î%n¢`Òh B˜9S•&ž1ââ²oc­·æ­šoѳJOþ6C×IÝw!$¡~‰é‰ìØKëÒ­:òwï^ˆW·…(èÊ” àÏ?áË/Õx´»Yê,é_³?uKÔe¶ œ‹='ABzáv)á—.Ó8 ñ·IJR«ªµm+­sQxÔ©£’úæÍðÕWwf_þÃÊŠ‘!#©êU•Áës-éºMIè…מË{ð¶ó&Ð9ðÛœ> gÎÀK/I¼D!ú#¢…úõaÚ4u»hñbuqz7³#4 ix4žµÿ7™äs§à·ß`ûvÕ%%„„^X¬?·ž~ p²Ì¹ð‡É;v@éÒ ñ…Oݺ0z´*W¼dÉ=%bu:\<þÂTRêÖd¬ÛnXÕ¼zYÀIIè…Åñ›Ç‰LŠ$´TèïŸßº¥F··k'uÛEáÕ¦ Lž ?ýŸ~WKÝÒ*UªQ3º¾5—äz5ÿ7Êxç{A!$¡‹mù)®Ö®¼µö-""0c–À ! ½àIÉLaOÄ4Æ 3ä¸MjªªÛÞ¤‰LUE‹F5kœ9ªÔúìÙ÷h÷´ód\“q80lÓ0ÎDŸ‘¤.„$ô‚çfòMND I`“–¼¼xQUÚ’©j¢¨ªZU-â²w/Ìšu÷»§­'cÅÑÒ‘1¿!ò–t¿ ñ$d¾ÈãØ±CUÏX±zöTÏ[¶TMì{컲½ •Ý+ç¸;³Ö¯¨\YÂ+ž÷èM5çìêUõÜdRWœ^^Ð¥‹ú÷ 5l¨ÖP6LÕ1"ûÒ«^v^Lo9)»¦ðÆ/o° ÝJ¹”zèšB<®ŒŒ ïÙÙ H>{–òkÖP©A\=<ZÁSzQԤɼw/|üñ75cfÍ©54ôoˆ»mÎË]¦¥©©jýûƒ££„Wž#k×JB9»vë;/í¤{åîÜfß>u›òå—%^¢øñö†éÓÕÌŽ1càĉìï;Z:2"dí‚Ú1zËh¶„o!Ë”%OÌÍÛ›ë9t«_7p/]ºHüŒEïú† °{·z~èÔ¨¡ž¿ø¢ªvñ ¸z½VO ï9¾Ÿ’7BãÆÙ Qœxz¤IªªÜ!jÐ\… wn?ÙìXg ÖÖLÜ>€V¥[=ð–S¾J~ æâÙ³”0™Ðñ |}騢…$ô©MõUÙâ!×òCbz"›Îo¢m™¶ØêmsÜæôiu­1s¦ü’‰âÍËK­Ò6ož:j´n­Ê ÿ“ÔÕ„¿£?·OärÂezV¥½O<KKK-XÀWöö”8tû°0ζoOHÿþIB÷»~ë:gbÎЧztZ]ŽÛlÙ¥J©‡Å… :*>“š ]»Þy_«Ñòrù—Ñiu|öÇgD§D3´þP¬,¬²í'**Š£{öàœ˜HÅ´4¬¬¬$¸"g†ÎŸÏù°0Rúõ£éW_áTF·KBÏ'[/nÅÇÞ‡rnår|?=~ùÞ_¦ª q§õ¤Zè^^*©§¥A÷î`ø_EFC» v8Z:2yçdR©Œ …ÁŽÌÌL6­\ɱE‹¨uìa––ürå ƒ-ÂMG9´Ô+V­ ööjùÞ¢tq,ïe¦ IDAT‡7ï¤ÓYsj ½ªõÂÙ*ç:®«V©åQ[µ’©jBÜÍÚzôP÷ÖLJˆx÷Ý;¾Z š6ÁÏÑ÷7¼Ï°ÃÓh ‰§#¹4t(ƒoÜÀæûºþË/,°µeäâÅX[[KpE± £KòÐÁk¹•~‹æ%›çø~BüðƒjyHë\ˆœ5n }¤ 3N™±±Ùß/å\ŠO[}Jrf2c¶ŒaÏ/?R/&æv2ðJ9™{‡Ï ! ]<ŠÑdäÿNþMK6ÅÛÎû¾÷Íf5øþÆ èÜYâ%ăètª ãgŸ©4C†¨¹êw×€/ëR–i-¦ádíÄ/|}ÖýóÔ“’H¾w1v!$¡‹G9}šC×ñJåWr¬ |ëü÷¿ð êÖâáI½\9X¼XÝ¢<¶o¿S€F£ÑP¡óÚÌ£nçWøÝFOæÝ¿oÀ±ªU©,ÁņÜCÏ&³‰?¯þ‰»;%Kæ¸Í… pæ ¼ñ†ÄKˆÜrqQÝïË—«ûꃫ• ÿ,gÐÜã–ÿË uR7õzö{xÐhà@œŸvMâôt5-åÂõ<:|}ÁÆZ´P++ ! ½èHHK`KøÚµÅFo“ã6¿ü¢Z*H¼„xܤþÎ;3f¨àÞzëÎ8WWwúÍúŒ}]_fègÃqðtçíw>!¤f³§ÿâz=4h  T?¯º ­¶È…Ÿt¹çð¸p"“#©_¢~ŽU¬âãÕ2©ÒÝ.Ä“±´T-óY³þ¿½;‹ªÞÿ8þ:³13 #;ˆˆ† æšKîšK™VW­,ë—–·k‹-f«Vv-Í«f]+¯•ZÚfWÍÄ\J33KÜQAHQ6…a›aæ÷Ç·0®v¯åôy>çááÌaÀïæ=ßóÝ૯`âDÈÊ:ó¸½A®»n3^úš)ƒd¼ÎÞ“{ñüçâë¿ûR§æ§mØ‚‚TͼaCÕßËK.Œ@¯o’%çG¿sÏüùçê=¡sg)+!.$[;v„™3UÏ÷ǃ={jv–‹-·ðŠi -ƒ[ò@ò¬ÉX# » tq~NWœfÕ¡UÜÐì,Ƴǻæçè¶s»]ÊKˆ ¡iªéjÚ4õï}÷©Ñ#gÎ ·5äÉkŸä¶ÄÛ˜øõDæmŸG™³L OÔ{Ò†~j磅nQÝÎzÌ㯿V‹±  e%ÄÅO=«ÕÚn¾FŒ€ Ÿ7ÌüßÕÿGTƒ(^Þô2ÙÅÙŒºz "ЄÔÐP\\̆իù¢¨ˆ¬ì,’&Ó¯I?¼MÞç8Wuíß_Í‚%„¸x¬V¸ë.xúiX·yrr~U[ÑèÓ¤¯õ{='öðЪ‡Øž³] NH  Øùý÷Lïу’[ožgózödÛ'«wîEÍ÷íScôï¯Úÿ„—^¯Vg›3aÄc YUÒ™²Ÿï°ë4‰!‰Ì8‡¶amù늿²x÷bNWÈ„3¢þ‘[îçéôéÓ,›0SRðÿùØÕièó|ðäUB`Íó=5v¶];ÕÖ'„¸Dµ4j¤ÚÕçøòÊ[ÍØ þ 1Q^\BÔþþj]õví`Æ Ø¼Y-ðÒ³§ºEïeðâÖ„[iÒ’9[çpÿÊû¹-ñ6n‰¿o£÷%z÷5¨OÆAn®j˜ùDí_u•zã®ãêÕ-÷ÆññìÿeœÊ¯ìµZ‰mÕꂟßévòuæ×4ökL¬ëìŸs䈚àâæ›Õí>!Dí¡×C×®0k–zï~â øç?Áá8ó=!8—z¾Äm ·ñ¯mÿâÑ/%»8[ ¯¾ðóƒ¸8µ½þú™ý€€zñß«WžÔº5¹ýú±Ñj夦Q il±X8Ô½;í.ÂÊ(¹%¹|~às†¶ŠÝ«æ²iN§êÙÞ¦êÝ.„¨}4M-ÃúÌ30o,_·Ý6À/b|;Œl5’φ~†—Þ‹[>¾…mûù¥ùR€u]` $%©­[·3û Ö‹ÿž¡~ý±jÜù÷¿³¦Y3²6n„mÛàþû~ë­/BƒöšŒ5ø™ýhÖîì»{á»ïÔJPšL-D­ö¤$Õ®>><û, ·Þ ¡¡êœ ï ^îó2KS—²`×~,þ7c‚"hé©B¯é¥…ÔÐ/µàÐP†>ò½ßz‹ž±±üåñljnÒ䂟×Qé`ñîÅ n>˜kÍÛ3••°jÄÆJ?!ê’ðpÕ¶þâ‹êoøÿþOuju»Õヅ¡-†òÆ€7°…Ç0Æk5ó¶Í£ÜU.…'$Ð/£ÑHhx8a^^^ü|‡Oö©ÎC[ =kµ¦Ã‡Õ›Á]w©#„u‡Å¢î¾~ú) ¤ÖYè!5ÄÍéT3ÌÅøÅ0µÙX¦l`YÚ2nùø¾8ðEåER€B½.É+Íã‹_0¬Å0ÌóY/]ªÚå.B¿;!Äâ㣆µ½ù¦º%?~¼êsò¤z\ïžAíygÐ;ôŠéÅÌïg2~Íx¶ål“ i„z]àÁCJN …å…ôŠéuÖã¹¹°l  ¾¾R^BÔeš¦>˜Ož¬ÖY_·î¾[MLóËô±!¶ƶËŒ~3ð·ø3fŦ}7ŽìƒË¥ »¢BÏÿe¿ªJÊæÕÖþ‡2gîù~±ý÷ ?ëu÷öÛФ ôë'e%ÄátªUXNŸVkçäÀ?ªYebbTÕûw²Û¡woèÜYuš›4 ZúYt-*ÀËËHBp/÷~™-G·ðïÿÁç>çoíþFÆ=¶£]éÞ±‡C^žZú±¨H ÙÒ4U&þþµ÷z~÷vðî»ê¨ Ò±£¼Þ%Ðÿ¸ƒùI/HçÁbÔkÝ÷)Ïoxž•‡V2ºõhš4ÃËàuùË¥ukµUVÂܹpãòZ©ç¤ ý¿Ø»›YÕz&}ÍqìÇò¼X¾\­æt!Da39éÕò$‹Á£ª¾3ÇÃÀÑ£àñhÄøÅ0¾óx>ú)1+Æ0îËqüpì•)D!5ô+ÁYåä³ýŸ‘’H|Ðك˗U\‡¿?tè ÉQßååå±sýzlÅÅ$–—rà V®¹¾úJ-üòé§jbšáÃÕ ƒ{/÷~™9;øüÀç<¶ú1Z7lÍ퉷Ó.¼¨úåt°à ßþô-w%ÝuV;ØÞ½ð¡ù.FV3 !ê'—ËÅ—}ÄÜÁƒñ<ý4G““™:d™‡¬ÖUyóM¸é&X°@M#»zµêŸç¥÷¢CDžîú43úÍ@Ó4Æ&åéuO³?o?® )`!~©U¹«X¾š{ !5ÛÎ aÚ4èæ\KŸ>R;¢>ËLKc߸q<°i½óó¹9?ŸûW¯fÁCQZZЦAXŒ©nÁwN=’“áÄ 0ë-´i؆×Í`Þ yœ,=ÉèÏGóü†çÙ–³Rg©´@¿TN_ø‚~MúÑÀë̪jn·zô(ÜcZ(a.D=·síZ:ååñëŃ©©ìÙ¶­Æ¹>>ððêÆÞ¹3LŸcÆÀ{ïYÑ-!8ýf0¹Çd•Æ}9ŽñkÆóMÖ7¸åýD\ iC?‡U‡VaÐèÓvæ3ONüë_0b4~·X Jˆúþá>?»ËuÖqŸòrÅg¿èõЬ™š›bð`ÕÆ¾x±Ú† ƒë®ƒoºEw£mX[ä“}ŸðDÊË4iîæŽC_Ò6¼-~f¿ï=BH ý8é8ɼíó¸=ñvB¼Cª»\ðÖ[êöÚ A2î\ˆ?ƒ«äÛ€~ÝÚ] ¤4oNËöí»¦d€ÈHµ¾ÃÒ¥ª°r¥º5?{6ìØF¼iÚŠ—z¾ÄG×Ï'þ`!¯n~•QËG±`çÂíqËEè„Ëíâý¢ÓtÜwCǾÿ^;;¶vÏÉ „¸xš$$`¸ûnÞ dŸ¦ñÑÈ[áátxðAÎë9,¸ãu+þÑGaçNµøËSOÁž=j^œHSOT¶çíëßfp³Á,Ý¿”ûVÜÇÔMSÉ,ÊăL)+þ7¹åþ+Ûr¶ñÙ¾Ïx¦Û340Ÿi;?~^Æ\µÖŸ­¥¨ÉžyFЧZ®IQ¯X½½>i‡‡gëüùØ33ùË«¯ó»žGÓ (ú÷‡k¯…T¯ø»ï†¦MáÖ>zÚ»ƒ÷nÌIQ j6ˆÇwðÎŽwþép®½šÛ[ÞNóÀæøš}1èä­»ÖÙ¾–,Qû«WCß¾j¿}{u[Wýò©pU0çÇ9tˆèÀ5áל©µ»ÔÓÒR0«º n!þL,V+ñ­[ïí ³f©þƒ4MužkÓFMâ––Ÿo.¶óVúßèô*tﮣU+?z4îÁµQײ5{+_ü‚Ië'ÑÀ«#;Ó-º-‚ZœsõGq…\}µÚ@ÍG?y²ÔЯ”µk9XpñÇãmò®>ž Ÿ|û›Œ9B\<šÍ›«Nt·ösðÃÈ%¬;Ïã«Ï ƒA¿~®‰¸†vaíÈ(Ê`köVÖe¬cIêš6çú¸ë;àÊL-+júè……ðKïÓòrøé'µïï6Û9¿%£0ƒ©ßMåák¦Y`³3µö x嵜âõ×KG8!Ä¥ öˆàJÂãöÑÿU5vý“OàŸÿ„×^SÁÞ«—žFšò—«špc³9V|ŒÏö}Æì-³ymËk l:Þ1½‰lI¯èuòf%^¤¥Á®]j¿[7XµJíwé¢VXø%•%¼•òQ ¢Ò|HõP¾øB=Õ‚`µÊ‹EqiƒÝb¨(xì159Íš5j‚š•+!$:wÖѦ•¤¤¦<Ñå Æ´êôU¬M_˪C«ñ¡CDZ7lM놭±åK½.»æµ§­Ù[Ùrt SzO©ñ©ö§ŸÔR¼wÜË Eqy5h·Üýú©¥ÍSR`íZUÁˆŽ†¡oß ÆÀ¦É,Ê$%;…õ™ëY´{öz6îÉ€¨ÞDKqJ _é骷¸N7ß II—íG—T–ðʦWÜ|0m¶­>îtÂÂ…àë«æhBˆ+ÅfƒÄDhÑB-þRPË—«Ûò3gBÛ¶0`€-ÏÐÃq8‹ù<ís’%3/e.Í’Šé»ã=Ú…·£¡­¡Ü–—@¿Dš4¹"½Ý7ówÎÇ ÖbF½±ú±½{Õíö¿ÿ]­u,„WšN§Vr SSÊŽ »w«ù1Þ{Oĉ‰ÑѺµ‰‰^ Oº›;’î -w/«ÇÝÈ—é_²x÷b‚mÁ´ iERhI!IZÏZ€JH ×);ïäÝíï2³ßLú4¬>~ú4¼ú*ôè;Êâ+BˆÚÉbQCœÛ´Ü\ÕL¸e‹jwûmhغv5зûU³˜Mï˜ÞtŽì\}üÄ xþyµÂ“OªOÃBq)UTTP“ƒÞåÂÏéÄh4þ®ï×ëU­=,Lüý÷«>«V©pÿä##¶ìY\3ÙŸîÝýéÝŠþ×ÜŽÅVɶã?²&c S¾Â³_?KóÀæôŠéE«VX°`1Xä"I ×^É“É.ÎfB— h¨*xy¹ZõØ15TÍÇG^BˆKÇãñyèß}ü1žµkñää`œ=›¾wÞ‰ÿœôB§S›¿¿Z›}øp8–UÅwý±Íõ³gƒË¥d >Þ@RR7F5ïÆ£×œfç‰mlÏÙκŒu,Ú½/½Mš’”@³ÀfÄÅãköU?hÇ8xPí= j¿m[éE,~ùWófʛܕt1~júF·[ͳ¼e üã4”Bœ—òÒR>yè!®]¿ž¸òr\šÆ¾çžcAF¿þúEù:4 w3,ú¿'OªJKZššÌlùr5ßFÓ¦vzõê΀k»qGb!'ÊŽ“SœÃ÷Ǿgùådý…ÝËN«ÐVt‰ìBw[qqê‡L›sçªý äÂJ _e®2&~=‘«¯bDËt5ÃÒ¥ªc‰„¹ârHÙ¸‘¦6б¬ì—*;!™+V°gôh.pÄÏ©¢"voÚDÚ²e莣Ù׫hÙ©v:tPCr].5$îë¯ÕôãsæhX,þÄÇû“”ϵ-{rs+°ø”q°t ®gÞöyL.É!ØLÓ€¦\Ó¬‚¦eX´jØÝUÔƒ¾¬´”›6‘¶r%•™™4[¶Œ„Îÿð] ôz¨²ª’eû—ñMÖ7,¾y1fƒ>ø@õ4IÂ\qù¤oßÎ5¥¥go^P@FjêúG/¾ˆí½÷¸¶¨·¦±uÄÜ?w½ð :ü§¶{îQS]ïÞ ©©êßU«4ªªÀn·׃¸¸ôj\t€ç~Ò ±ÖšÃ‡^Ä› kMü›ëK|P<1¾1ØÍöê¦Íó±|î\Ê&O¦]a!f·›”»î"õÖ[9}:f‹´çÿéÝãñ°,m3¿ŸÉßÚÿXÿX<øê+u§è‰' {wy1!.Ÿ&mÚ°×j¥Ù¯BݤÐá³Zþ™™™”.XÀ]˜~>“ŸÏëóçsdôh5jtvü¼†{d$  :çç«-3S-!ýá‡pì˜6["±±‰$$º¹ew6¡£ÊTÀüýlÏÝÆâÝ‹ùéÔOؽìDûFÓ6¬- Á $†$` @Ó4tèÎ.—Í‘÷Þã¼<~™>²¨ˆ÷>úˆôQ£hѺµ¼pþÌ^RYÂG{>âÍ”7y¾ûóô‹í‡Ë¥‘œ /¼ ¶ä… „¸¼ÚtéÂì=øî«¯Î´¡[,_=-Z¶¼ çþvÕ*úäåU‡9€ è‘“Ãæµkit÷Ýÿõû5MMhc³©©h[·>3ÉVi)lÛ[·ÂîÝ:–íEÉÐìöbbÚÒ´éºÇƒOÔiŽTîæ§Šl?–Âò´å–b÷²îNÓ€¦´ nICŸ†øYüð5ûòÝúµ\sø0¿^jÆt+(à»/¾@ÿ3zIe on}“åiË™Òk ½÷BÓ46|«VA¼ë. s!Ä•a¶X:s&›?ý”ôÕ«!'Ó}÷qLjüÜ11dšÍ´(/¯q<Ëj%,:ú‚žÛjUKct颾.Úÿ$GÞ\É‘#jâϬ,Õ”YZj§ªª3v{g"yˆ t ùÅc>ŒÇ|„2çO,I]Bqe1Uî*Lze§¹^_N—ÿø™G¼¼mÒD^4Ö@wV9™¾y:ßd}ÃsÝž£g㞀ÆáÃj¦ÙAƒà|HBˆKFÓ4¢cci8n…ýû£Ÿ<¿±c1.üm¹Ãµ×òRãÆ´NK#ØíÆäêtl‹‹ã©Ž/êÿÃ׫ßD5=­Ç£zÍCQ‘š¨ëèQسG#3ÝÆ‘#ÍÉÍmŽÑÞöJFŸ¦id1 £‹ñ =AQÀA6Gç†Â4"x<½±Ú1"x"]ò·aw—±:à*Œq§;Xwp.cxÆÛb ÀêO5ˆP[(‘ "‰j…ÝlÇÛèÝKýëmòÆf²ý)¾ÞznI.×Oä„ã¯ö}•«¯"#æÌQm>Ý»ÃØ±æBˆúíªÄD½ñé»v¡=ó 7¼þ:ÞÞÞWü÷²XફÔ6x°:æp¨™:óóáĉpNœ˜MáÉ4Ž¿ö> »…>ÇÉð=Á¾©h>_ãeu¢é]¸Ü.Œz#~f?­Z ö&Ä¢¾¶¨cv/{½Y¨¦Þº¥<ºúQÜ7/õ˜B€§ÿü',Z¤–BŸ:U­X$Sº !þ l6Imۂɵ Ì‹··š`îÌ$sÜîV”¯x’²×í”—«Îxåå: }ÉÌôåèÑ8Nœ€œ8¾×EnQ9åî2*ÝåèM4,Ã'¨òà£÷ËÄc=A¥q§ªŽSâ<…Þf“«ÉD°w a B ö&ÔBCŸ†„ÚB ñ¡¹zMÎÛû¿lµeq›ót·ÛMjj* Z´hAddä9Ï­ªª"== ×ëiÖ¬7¾dÿig•“]¹»øû·'ÐÄC‰“Ù»!¹sÕ å™g o_5k’BˆÚO§«¾ë9V¼ìÚõì(«¬´qì˜Ü\ªƒþäIµpMîn()Jx•ƒ·—£½l98'ùI—Kª.‡ç$EÎï)× 1z—b´–b±Váo7h÷Æ×Û‚Ýb¥Å†¿Å‹?Ö@|¼|0ÌX ¼ ^˜m§±œLUû3fƒ“Þ„—Þ«ÆÊžW,Ðׯ_ÏôéÓ‰ŽŽ¦¸¸§ÓÉ”)Sˆþ“‡-[¶ðÊ+¯Fii)EEE̘1ƒ˜˜˜‹úË–²åèV§¯&%'…Ä $Ú—?à ),„#àºë $Dþ8„¢>3™þ³–ÿë ©º­ú4œ:ÅÅFŽŠ‹Cp8TØ©Ç ¡¨¤œòÒbÊŠ‹q¸J(©p]Z̾ÒÊÝÊ=§ñ˜N9£}?»›Ý…ÍVŽ¥¤ïŠL´þ†ÉWÃlôÂj´b1X0UèÛL¶êí—6~“£o£7V£«ÑŠ·Ñ‹Ñ‚ÕhÅ ûßq}^ž››Ë›o¾I÷îݹï¾ûp:Œ;–¹sçò / ×Ÿi8uêsçÎ¥eË–Œ7·ÛÍ„ ˜5k3gμ Zº³ÊI‰³„Œ‚ –î_ÆÚCë)+÷Ð!´+æ°eY æìnÀСªã[£Fj%"!„îÚ¾ÚÂÃÏ}NU•š ×é§ÓŒËeÆå Âå¢z«¬T=øóó=œª¢°ÈIQ±‹b‡‹#GŽ’÷éHúŸÎ ÆYÂû[SÙdº Wð 4[ Ó)ÜÆÓàU„ÞâÀäs£÷atfšW C1UúRÐ\hš†¦ièu:ú×l0ãmòfÖ¶ ôÇsøða^zé%ìv;7ß|3o¿ý6Ç'üW%TPPÀ¾}û9r$þþþÕçNœ8‘¼¼<‚~éúø?¸ÜªSƒÓí¤¨ìiyù!û{’÷ndWj¦ÂDZž%Äq >¤V¨É-’Å~„Bü>z½Ú¼¼ÎçlíçøTZVVÆ´{§2úØvþ|F¿òã, ~Ÿ«¦¡Iâ@JK©¾ðËþneePZQI©ÓAy•ƒJ85N8µœš­øø…zqq1F£¯_ýO###9uê§OŸ®è•••8Îêàˆˆ—c ÐIDATˆ ¢¢‚“'Ožèr³xðã)Té*pëÊpkå¸u帨ÄYåÄév’_rš}©.òö%cMW{‘ c , 6TkGDH‡7!„—×Á}ûh²c¡¿:fÚ°oã*®½®Ëïx6ÓÏ›n·º+àtžù÷ÎÔèn·û¬[僷ÛÛí®qÜãñàñxjœ¯×ëñx}úœ÷/Ò¤´”Ôƒ%Ð…Bˆ? VL†ê¾ ¢]÷îrE„¢p¹\äå‘_UU£Ã´¸r®øâ,E:ËìvôÆÑ$6V®ˆBÔry'N°á“Op|ý5>Œ÷œ9t2„°F¤pþÌîŒÅ÷ÅéÙ»·\ !„¨ÞöYZ,ZDÇÒRt©O=Å¢M›xdÑ"t29ÈsÅo¹FDÐó/ÁïcÔ…BÔ.{víÂþùçô*)!Ìí&Ôã¡»ÃAhr2;RR¤€þÌþË$ôB!j¿´íÛI*,¬к¸˜½[¶Hý™]!DÝÑ8>žý¿Z«ã{­Vb“’¤€$Ð…BÔ­Ú´áh¯^l¶XÈ×4 5ÍfvíJ»N¤€® ƒBˆó®êtŒœ6Õññ¤û-Ú®]¸î»ÛFŒÀ`H‘@BQg„†‡3|üxNÞy'ž#š0¡ÆòÚB]!Da2™Œƒ$Ì%Ð…B\"›7ÃáÃàrAN,Z:tìQQR>èB!ꄨ(hÐ<xûmðñM_ßÚý{õ•Ú~ú žyFí÷ë]ºÈu•@Bˆ?™°0µÕ5={ª `òd¹Ž¿ƒ [B!¤†.„âs:¡ª **Ô¿ååê¸Ñ2'º@Bˆ:Àå‚Ï?‡}ûT°{{믪ãƒA³fRFB]!jÿ»¯nºImB\Ò†.„BH  !„B]!„…´¡ !„ª²µïrAa¡Ú÷ò«U]!„¨‚ädµï¼£ö[µ‚^½$Ð…Bˆ:!>^mW´¡ !„õÀ•¯¡ÀÚµjÑ€- 4T®ŠBQç]ÓÔ‡š¦6!„BÔÁ@÷óƒ=äJ!„@ÚÐ…B t!„BH  !„â¢qèB!~Ÿ½{!#Cíçç«e`’’ 2RÊG]!D`³APÚùeÕ¹Àl–²‘@BQgDE©MÔ*Ò†.„BH  !„B]!„èB!„@B!$Ð…B!.„B t!„BH  !„èB!„@B!„ºB!$Ð…B t!„BH  !„B]!„èB!„ºB!$Ð…B!.„B t!„B]!„èB!„@B!„ºB!.„B t!„BH  !„B]!„@B!„ºB!$Ð…B!.„BH  !„B]!„èB!„@B!$Ð…B!.„B t!„BH  !„èB!„@B!„ºB!$Ð…BÎ÷DÇCII ‡MÓ°ÛíX,–sžër¹(,,ÄétV3¢iš”z=UYY‰Ñh”k\TUUáñx0 RõäoÓd2IAH +ûöíã•W^!//ªª*Z¶lÉOøàƒß<ᡇ¢ªª N‡Nw¦Bo6›q¹\¸\®³¾',,ŒI“&áããƒÛífÛ¶m<õÔS4nܘ޽{×8wïÞ½ÜqÇr%ê={ö°k×.éHUäææâv»Y¸p¡Fçv»Ù³géééRõÀöíÛ;Ð#""èÞ½ûož„Ãá8+¼ ±X,ç¬q[­Vââ⪿nذ!o¼ñ)))5]§Ó‘’’"WH!„8OÞÞÞçô„„þë7———ãååEFF7à»ï¾#22’ÿùÃN'‡«ÕzÎÚ¼B!.ÌyÝŠŠ¢[·nÌœ9‹ÅÂÉ“'Y¾|9?þ86›S§N1}útºtéBïÞ½Ù¾};û÷ï'!!ÊÊJ–/_NYYÙ½ „BˆKèf³™ñãÇ3wî\^|ñEÌf3=öC† ÔD2YYYÄÇÇWÏ7ß|Ã{gN§#66–÷ß¿ú6üºuëxûí·9~ü8‘‘‘Ü{ï½tìØQÚ^ë ´´4ŒÕj­ž¸¢oß¾<öØcøøøHÕbL˜0ôôt²²²˜>}:7Þx# Æ.oß¾™3gräÈüüü;v,={ö¬Ñ—FÔ‡ƒñãÇsàÀÒÒÒ˜6mZõØóÔÔTÆŒCqqqõðḸ8æÏŸ/W ¯ãܹsÙ°ayyyØl6z÷îͨQ£hРN§“>ø€>úˆÒÒR®¾újxàbbbÎbyäy䑳 ¨ñÂhÓ¦ o½õÖ9Ÿ'77—'Ÿ|’aÆ1`À>ûì3&OžÌœ9sˆ‰‰‘«YÇTUU¡×ëy饗ª?ÐY­Ößl㵇Ûí&<<œvíÚ1}út*++«ËÊÊâ¹çž£K—.<ùä“lÞ¼™§Ÿ~šwß}·ÆwQ»®gHHIIIÌš5«Æ<.—‹’’^|ñE5IÔÎ÷T“ÉÄ=÷ÜCÓ¦M9|ø0/¼ðV«•¿þõ¯|óÍ7Ìž=›gŸ}–ØØX^{í5¦L™ÂÔ©S¹ìUâ/¿üoooFÝngĈlܸ‘”” ôºz›Ç` 44”ÈÈH)Œ:$00‰'V×~m×®]”””0räHÂÃÃiÚ´)K—.%99Y½–òññá¹çž£´´”÷ßÿ¬Ç5M“¿Ó:rï½÷Þê;Öqqqlذ 60fÌ/^L·nÝ4h:ŽQ£FñðÓ••uùgÙºu+Í›7Çn·W¿©DGG³cǹ’uÐ/·_xà:uêĈ#Ø´iÓ9‡3ŠºÁårqèÐ!¢££«›ML&ñññìß¿Ÿªª*)¤:F¯×ãëë˸qãèÔ©7Ýt«V­ÂívKáÔ2š¦Õh~.(( 55•æÍ›SXXÈáÇiß¾}õ{opp0F£‘'N\þzII 5jwf³™ââb¹’uPHH³fÍ"""‚ŠŠ .\È3Ï<Ü9shÞ¼¹Päv»«G¥üº½Üf³qüøqœN'z½^ ª ã…^ ((§ÓÉÒ¥KyòÉ'‰‰‰©1ÄXÔ.¥¥¥¼ýöÛœ>}š‘#GR^^Nee%6›­F†zyyáp8. [­VJKK«¿®ªª¢²²²ºÆ.ê???ºuëVýõèÑ£Y¿~=éééèu”N§Ãb±P^^^£WZZŠÑh”Ϋu¯¯/:uªþ:22’ääd6lØ ^‹-\¸äädžzê)¢¢¢(((Àh4ž3C-Ëå¿åÞºuköïßÃáÔ´²YYY²ªS=¡išÌÙ_Ç bccÉÊʪþ;u¹\ìß¿Ÿ¸¸8 ôzò¡MÓ4¹å^K9fÏžÍÂ… ™2e ×]w:"##Ù¶m€¼¼<*++ ¾ü5ôë®»Ž9sæ°`ÁúôéÊ+¨¨¨ mÛ¶rë ””ÊËË £¢¢‚Å‹c2™¤ƒcàv»IOO§¸¸˜òòrŽ;Fjj*QQQ$&&b2™øøã0`[·n%;;›~ýúIÁÕb‡¢¸¸˜ÒÒR²³³IMM%""‚ÜÜ\233iܸ1•••|ñÅÓµkW)´Z¦¼¼œwß}—yóæ1nÜ8¢££ÉÎÎÆh4̰aØ8q"kÖ¬!::š… GTTšç—˜¿Œþýï3wî\  á¾ûî£OŸ>2Œ¢úøãyçw(,,D§ÓŘ1cèܹ³\ÏZ®¬¬Œþýû“——Gff&4hЀwÞy‡V­Zñí·ß2cÆ rssñööæþûïgðàÁÒ~^‹õíÛ—ììl²²²ðõõÅÏÏ3f Óé˜2e §OŸFÓ4BBB¸çž{8p Ì+PËäææ2pà@8@lllõß[\\|ð¼ñÆ,]º§ÓI³fÍxôÑGIHHàÿøjG&Çù®>IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_erp_plot.pdf000066400000000000000000001052041323370031300211340ustar00rootroot00000000000000%PDF-1.4 %¬Ü «º 1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj << /CreationDate (D:20081113012040-04'00') /Producer (matplotlib pdf backend) /Creator (matplotlib 0.98.1, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /Type /Page /Resources 10 0 R /Parent 3 0 R /MediaBox [ 0 0 864 576 ] >> endobj 10 0 obj << /Pattern 8 0 R /XObject 9 0 R /Font 6 0 R /ExtGState 7 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> endobj 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream xœí½ËÒ,Ëq¥7¯§¨!{€q¿ E5f0q@&MzFµ`’á¨E¶Ìôlz;­Ï=7°+Â’š²–™ˆbŸ]••™~Yî¾¼¼ûÎïßë¿¿y¥wzÿò^£éÿ`ÿÛçПÒÿWÿú[}ï·úÓo^ÿüÊöwùWùjïVúWMÛÿ“ßÿôËûןÞÿö?þñk³}ñÛÿ¥ð¯òþí+·þUÎwúå=S½ÿú¯dU~Z‘Z³¾VÓúÚ­ûºß"ÿ|ïô.ú¹ùã?ÿÿ7¾ý†oJ¸¬¿<«ÝóÒN²ÿüÎi_cwIûëÇßµþþ—ÿðþïßÿËû×ÿ•ÁzûcüËïŸ?ü·¿‘¤¯Ôû^©6Ix®_k••z–xèÆ¹¯”Ò«¦6ßm¤¯¹ç˜{ÔÌ£äžy„ÚG]×÷ñµòìiï.©yç>¿ÖN©µRÆ»Õþ•ôÁ˜úA»zèvµÍZòúõ¶¿j_u×ÌÇ﬚s·’r›úñ:tóUuEá×_ºÑ×,MKÁ?ï¦åÈs¤6ÊNv÷•¿ôäzØ4ÖÒ˵¯ºõ—ú;¸~ͯ‘k[-•ÝõûZ¹Uz×ÖÊõ»~õ®ï罓ÎD+:kýß\¿÷WOeu½mÚþòzþ¥µÓZýA[Ñ¿ô§ÞæÎY¿?ÓWmzh-X麾ä¬*E×Ì¢ß×jl½nkz(î_òüªuì¢W.ü¾^wIljž÷/ÈÒÊ#繫–·ksrj¹ÌY7×—ý¥u/{ëê»îñUµ¹ºWåù^º±,í5'WÖ× ´¶V·Û·ü¥ç“Ømujk”œ*W·ù•Fªƒÿ õíµö^}6´iéU¢Ó%J}OíNÖÓ÷QWÓ?l~éHïÖ£ö>ùùù¥—xô!ÙÖõ£Iv´èSrßLxÖFÒô8¬~ÑrJVô„¬ï»N=Žž†ýHë§ÄEÒ"Á®{Ùãë^[R4¦=¿tú,«m] EwQ-]_àú¥õ˜ÕÖ6kwôs«ÉP$ ŸÝ7IÏ”àJ|·=ߨ’ÓTó.º¾¦ô¥c!qÒ†Ý_‚Sªoæ^5 Iä·òI7ϯå/­wͲ9]K’Kªü¾6[Ÿ þAz«´¶tä­Ó2Lzµ+i}~ý*ÒVÓÌÚ Ý^O[gÊúδËkúzDw ?º·d]™Ëõ8Eȹçhj3«N‚ÖÏžMGA‚\%ni¶—©­[Ú’5{÷¦£X´¬:-œÌ­¯wýþ®Z/>ïM²£Å’p¯ùÒ´v»åÝõ7|®LI{%YÜÍÔŽV.I|²§Ïû—¾› ›_-µ¯Ò“7éLòùd3×rÕàk?gÓëê÷ìsé%ýº‹þ Ù“ž¨­å¿¿ªdgeÛ\¬¡D½—l«ø\š©êÑyýâ÷õÝ:›ÞÏÖgwnhZÑN¦dSZ¤è¤°øRUz RôÌÚΪëµ{K/®f«ßÒ”ìŒ]9Lœü¦ßO’{ 5›‹ž–жŸïCë¯õKRJsÎ2ìsŒ:ºISëúÂÙ“­ís™w=CÒût-¿$MZA ž%«|,sSu½Ž{æhʤè Igë¼Vû|êy“^–÷}éDk5$&RX¶ý­IV«^NzTGÑDGdLž=¾½¾*­¤·^/žF*PÂ.UÏÑCÓåÒÌj$¶_×§)áÕûÙç:«z] ·NÛ¯çÓi-µ?ö¹Ö;K^í?¶ý¦$´x¶}m‰Ï²Õ/Ú~mO]’|©{¼)ÍÄ1–iádÊQÒË­Õly–4“¾´JU»ÏI›ZjIõ²ŸßXÉÒ'ë;ìdïŒáÓõþ¹4SÕ‘5ëÚ})B-µ~AVŠ×“M‘8êöXŠm«e`x€âŸë‚b‹«%ÖöÍ/ ²Ì*+Èç:Ì}f·ªÕvS'HšPŠÍ®/ÒLyh¿e ^˜µÌjIös·ß{Nž‡ÅÌÒì<_¶Ë«Sê.›Ú}¹2Úy¸¬ò¹S—b@=dÛ쥕/¹È:ò¹T‘”§þ wá—ÒÒ™)þx²cÚ ÝÜL¤*ôþ² Ë>: :²¤E»/»¥YIË^ìþC/$ííªW²®³.›µd…lûô+:µgûçe†EªK1ízi£$ß¼?üŠªN6Ñ>ß_{4“4ˆ®G˜$®:à&Ý,‰L&¦MÛ?ðzäT׬}K7õâGW»_åž/iq=`.öù”ô ™:Ù;;za¹*S/ µ‘_2ÿvš¦6á’ƒãë¬Hó$Ê:i»­©/˜èkuµ/85¶÷ø;z€j¢)ã.Ñ‘äšÕ6Ñ×V#)R·ö¹ö«ÄÞ'¹,r¸ôí­dR²ÓÝ#ÓÞwytE‡Z¢g{3ð±’4)ª…“¯¯Ëc•]˜æ² ÝPǨÙÙéæri]PMÛ\¢!a“Îp½–ýèt™Wí~·××Q–Xþþæ’i•*6Ð ‹ ^Š^aɘKqòû²DÇÇ>×zÕêÓ³²ìföß—Ë™Ø Ý±kýP4:wEjÕdGÇöKJ©K=HcHsJvô}¶ì»·´]ãñþµù,÷Òò˸ùû|nvN¯79Z½\¿ÿÂÎ4I’þ¥×|=ŸÖON…®ÜÚ]S-Ÿï÷ÒúÒBéþºi¿ÖG²ŸP´rèµûZß¿¯Ëµ÷2ëÚS}RìYz¢úûì¯Þ_G¹ãêoùxc™’~=ãŽK¾ìðÈ£‘£-c0.ùÔóo-‡do):™—|ÛÙÕYzzöëx¼ÑìÌÄao÷éz±<²ÿÉY×u8µ}ü¸^©žgûUÍÃ,½46èR æà3链OÍ"Å¿´úC_“îÍ—f2/C‡WoWÝð|j6]/; Í'#©xiFÛ}ZYùäÏ÷¡Yew%¯©VÿüC3ÛóËÉ‘æ~v÷S³ÛýõM-˜Ôs»,ƒ¹¼ˆÞÒ:ö˰Høõ´¨e _žÃ$'lâvȬt-ÊeØÌpèp*ÔrõÓ.šìi-7.UºÍê‹€F @ÿï6Ëòõ2òÌ'Ñ]»Ìº ÏÖþèøØõŸn9Qz#‹fgóÓ­Ðëë((D–Ë›l÷>Ý’7ÒUµ”IB>ÆåÖØîIªå•îü¸=?{Eo–W–\IÙ¥vyUv½ÂA zsÝöé•Iø¥ ´Z²eº÷Ó«{®ëùü —WhºWÑ ÕÔ/¯Ò¤G‚¹–ÎË+•ôEèç‹´ðíÕ¾ìs-­¼Öâ^íÏN±BÝMúI¿Ýj¾|jÛ~‰™Þ^Û½.Ÿ\wc·ô› YÜ'ÿðéMõëäÈ2ê‚rņfH`å(º)WL¡ûËRh-¥¸@_1‰Et ߤ†"—+¦yq:dS¥}±7WLôÆ«ÔÓ*–ÓÙ¯˜ê…iÓŸäzLC3Ž˜L·“4gô®Yâ3¦s· ¤딯˜ÐÁ ÄÑU |…”/„]6G2­ð~]!©Áúá.[¶êÏÚêï&ŸO«g†÷3® XÑãòz,Ø?¢i8ª›^Ö|Ò3/¸ìZ<9H©\Áü‹½¶‘Þ4Ÿñôõ²µÎÒž­_`‚".-w2Ÿö#Šž_á\)ìðû3Ün*-f xO0Ä .9 ’g{¾O0å…pëݬ¬=#YÀ&ÉŒN{þO0Ç-‡ …,‰Ž ÒrD-h¼O0é…,+˜ª¯ÿþFIÕæÕµúz ö>±, Ùdˆð1´úü€Âôú{¢–”ŸHÚËD}!¸+›ê9‘¸‚DqéÛž$ÏÞa•Ó4ýóO$˜ ¢˜µåˆÏ'’h!S—þÒé°£s‘È~6¼¦Ü@¦Ž¾Ü-3ž‰­Î „f"2Ü®b8â'ŽªÅ—ž—ŠÕi[f–ωæ lõ>q\i.íEBsÊs¶?Q`ÂÕ•ƺùt ²^œ¥%¿È/? hé=BñÛÍÇö -^ñž7vÇ>ÿ7­(½ ½kHÄŸƒÇ_äŠþáýŸ‹ÝX<®ª4µ©©`ñ+}™s!Ÿ—3pañ¤÷”Ę8ÀxYã½¥møõ€ñ•H@’¶ž`<ÆZÞQF+Œ—w£MÄ‘7¸õãÑ r³%Gë{ñ:ðRÅ:÷É!ÁŒ—+ª¸Ne7)¹Áx-ýÖÉ{5ûp‚ñ²ÒÔ5UÜŒ—³”õÇ,·äà ÆKá%~9 ÛÞÿTƒ#¬3¸-ºÀxΘԩœ6n0¾²Zz—õCƒ`¼ åSni“íŽç¨JdÎ×®—\7ùhÚn¶ÿrÝ,PW­ƒÞü쮟EN8~¬Áå9šliu,¬þáyÊH2¤ ,N4ž“¢ûT4Ñxi‚œßíçtýwq;­Št…m¹ž¼»yÏ\þö´Ko,¤£á/ÅœHÆ(œ%—ñ:Âζ ŽÕi¶¼ÂV‡SçôI½`8ް×r=Š9é˜q…ÍvöIóH¸-n{a7²,éí Êý ÛílË·¬j¯Ùý#ì7×Zj”TÕÑxV[k%Õ†a}¨C×Q×ËiuµÑhaË£;ʳ;àòOЫß,ª*ž„>Ñø)Ý"ª­(¦:OÌEÂ"½¸ô>ÝA“Ÿ–¦MÈz¶ȩ̈Z2ƒDq0#û¼KåÁMÓ׉9!¬ò ô‹îZŸh<šr4,U!l}˜—Tôæ$™æÛÆËÍèÚÝ¿a^'æ†êWd´Zq¯é€ãÉÑcÅ´ãöøâ‡0b¾!‘œb(aÂðION¶ïåÂ)l“ê»]p¥}Ü'Ю¤˜Å?áÎë,UlÁñRÄ MÈ šñu­ bÚ¹ž‹¸àx­ì»”«ßÿ€{A—%ºl9'OŽ]Ro¢ÄâŸp³¼b.9`ž8Ðx‰zA«fùDh®í6—Õ‘™p´ý@ã'ª05™Ïx íÈŽŽ جåDãÉs¢™²|ÛüÏß'4áTgi˃žÏWÍLÊ .V ñ:Þ¯vð^ùœŠnZ€Æ[Üœ/ed% çòâ#N,‰.´ç?¶UV- Ű½Îí•#wP/Œ'÷¾Ñx¼$¹DEïPMxñRØK¦fãsšˆ'¿/ͺqDlÿñÖóIT³&öüŸ‡#ãik³ÎŽ=þçÙ´‘&PÈ"õo—h¼¤»è ƒ0ÀTçÇÑ–9AóJç©ådÈ_’O"õáŠóC±òxry–vvšÓv(f"Û¤eFžÍë9;NTÁLkó¬Æàã­CKA‰‰žÃ^J›pÔ ×ÆK÷Pa1–üz»ÿaØQ¥åÈíÊR-õ Ñ÷LÓë4«äJ™‘;@ãm5åÔpìñ³žq’È„éhøáà‚wŠDLXp>ÜŠŠO¬5–ÏãYàŸhv)Vy®V>u¸5À¥»má @‘52vÿO·ªb×@iýŠ£í/'Q?×Ð~î5~ºuÒê_ÄR­Ý³‡W˜€‹uš‹y^¥—5U§jÝh¼éƵ 法O]5&øÀS¢‹B¸Ñx|úÂZôdµs‡Om¸œ–eQ[€Æ#-ƒÅ'6ŸÿÓ§çö‹ê.ùψ€TKÁe((g"ŽÏˆÂ2Mæ´"®o‰8‰×³9¯#¢A5(П¤ Î=#"jr‘k96øÔ¯#¢"ÕD‘€‚GWÜ'/Y³§Óy·Ú¹3 +òjJߤKlõ΀  8tÀ=â:JÙA‰U'žš¯£V1ƒÏÿˆgÉÄ( ¡Æd`üâr­ŽN‹ßý3šfw$Éz˜åIî ŒÏVdÀÁάó,þ&&É(ŸÒ—\2jãÚr°àL0³S$D}U¯›<À™­feƒRuŽu|bä¹Öƒœí‹—] Df© jùÄRtP¤Ø+–±ô‹×bZ8`ñÂäp.õCÅíÅC'D–@¼ØÚ0’¿:…ò#j„ÅëaôªúîX/çC«ÆÞA]<…ã2eº]58ð‚âq\ñ“§Ç?HU릋—Xã×(®¡x<…E¶Èâ Š—1ØTIݶНàÉŽJçŠçTò];‚â;™v=a±º÷ŠG½ê¯=¤ øA…›ìWvŸP<*¬R‚ã¹Ê‰·,IòƒfÞH<¯ÜåÚ¿AâqëqåGTßL2 ó>#$´“ÒSìq„ÄËzáWë ùêH¼ùP×~éþ¦“ê'I˜¯s¦ã§s>.Ûó0‹¯Ï]8ü"Ƙ:§ÝŠ>mŸ×–Rš»=‹páð”˜+¹½û2½V—½pÛt/¯ë>qxóQ%Œ^wþaù_”/&y­ø6^SâðZ{½(p”ç ~v< —ÕQÒ©ÚS\8üþ¢Ó%Éolûò{^Á‡ÿ±:/¹¥þn»âV%‡m))*‹WÈ•ŠÞ… x_nŸáÒI·ÇmšQYü ’?’W!eñ䨍qà¿âẤ"GeññwòÞ“î÷úXݽr–ÙË —=Å"MZY®íñ²/|`éáqWÃ>N­¬ô†Tg·DcÓ*˰£}áïD!4)œ·zqýðÀšûá¸ñ÷œiGx²7Ÿ½"/w!¡%¯£e«¯ƒ:H¬íëd¾äÞSïYÉ ^¥ðV)—! Ñz½´Â‹X²Ð| 0/­âè·G\)ï?›typÕpúÝ^œè;M>•”yu­w4 Éñ¤k8á¹”K«Úý«UzË—˜—R~ÊS’FVÑï¢ïÒK²?z„j®âÙ$E¹ÔÖÁÀ‘÷Z÷}§‰koY¬5iy¬Nçíx’‡Ic/;‰«aݹGç’æÂÛÉ Ð÷J^NËéöôÓ;N¤“›îÀœkyQ O›žî€eÎh²«º}¢ïÙŠ•% ž9:¼^¯Œj[w¦Nô¢ƒŽÉòí=¼!²zd›5½üDß­5]¹–zûbÄ Š¯:U%^q‚ïK»«Í+˪¹._ä­«[z)(é°Ôe|œ ÛI±:/:—sàÊ*×ÊH–uЯJø—´É—žL½Ô`½ýh„C› :šÕƒž~¸UM¢…KýøÔ¬¼(&óF‚Ï8€•_î -wÁÑZ‹N„ägBÌ©£AÁªsÝà;FCNIÙw!ü ôzÐF¡ã’óEùÏiM–D/hNæç6ñ®QËlà;Ã@¼|·¿þïɲ|Otö ®(4¡ä JiQ+«beìú·~¡ïVí+ÅS AnÐXÎîàmI񼂿G n¼g|ìuÇð¶ürLtš—~`‰ ZV"ý’oøréÝ–îRxë“(rµeçëŒúúi~.fä«ã3B‹˜õÀ5/d½àw¹#[IÊû†`ØíÒ-q8îRxƒ9Ë­¯[µØ'þc½í@¡STó¾ð£ªHiÊs“˜zµÝ'þä§gU*^Z‹h2g]AÙÆKð‰Á[ž"yÚ›½ŽöÄै¥Ú$<Ù; >À·—×\à•¥>ïRx £YÝA¡¾×Ùþ þÙý©¦È®|—›ªlÔ¦¨ê}bð/+Õ”(⶯•?0øõe}´÷ò|Ÿà§gúÈžÈú»Þª, ãkņŸØ«Y¹%“蚀Áƒëá÷º1ø¼"5yåÕ²Ot Ä:©ïq|"ÏÖ$¡Eõ2Ý·æî€I¦?{µüO°·V¢7>åÏ¡âÿÏ xçÇù—ßû"þûK;× Ác³*z>σçóQ’Áy÷BZmŒd4ÀÚƒ§£§`åz{½v…ž‘b½Ž7/-Naˆ×-Fö1P­¾%Àày¯P[ÉßèiþEüå±ýUCG£Ï?q×Äê)²$ÓYÏÙnÕýès>¢vW’Ò¨mŠêá¹¾Óg<íó ˆ‡„ óA9¼-N' sT_p0´ ùG7ÁQOÕaWlÅî¡£Ó“H«èx´Ôó¸`ôñ]¹>y =Xêáy~jÎÊÚ펜íö2˜²âÖÉy•Ãs¶, …G¹£9:$3‡åðæŸ)¼ |gÈŸƒšh}Lv$»"³Žƒaˆé‰[ 8…ÄA9<˜Ä–*†€CÀÆÂ&¦áU™Ïê£$êð^ÇŠgõ%{ôñ÷”ÛðìTyª:/rÝ-Sàåì'ÛSÐÍÕ‚ß‹œFëÃGrÃu¢ñ(ny%2Þˆ{–Ûê¡UGÕƒrxS]“>ænïQt€ vZÙƒrx4ç ½Ùü椧aù“á¥ÃšANþAQcª<Á7€¥u™ùö žÛÓl yé7ÿÇÇ_Þw¡ñðåé#ú`[ײv™äcÝ#ª†çóI+Àöôð ÛÞÉF 9fP OyQ²V‡<å(‡7³cå´Ó*N8^Fv: wϯrxÓ±ìuu'ìN@“ìÀÅõy§ »£ÉkPo¢4!önuWº@Ï—äˆÈ£É^Ž¿ZðÀk}$+8Í”o­ ^.¨ÌcÇ.8÷ѹ?òð¥ƒÑ.=çþVÌ" Û»1NùPd^€úiÕŠÊáÙ`S]x“'ùú­!ʨQ9–AFuä4,\ÈŽtµ ¾X£ŽžŽê¸yß}ù{dÿíìf=‘;§rd]€¼.¹’Ûggã,‡7ÍÜŸüüå•°´h.ï帼š¨Kñån9K@q.ÕË«2á‡ñ0§€œÆt»#ÍÔîjxW]h>ȇ.@Þ_?Q– eé] oÒÓŠÂßùpçœ>©z÷æñêåÓvÚ·¥0‰‡ODþ>ýEcA5¼Ý^;GùЧ3N‡œÊ¹ÃÙâ“»Þœ¾L£ÖŽêá]xi%Y=ª‡7»M'C«ê]I”£Þˆx¯xfOH7¥‘>ã!’ Uð[û]ï†I%b\ˆ¼GÓÒ]Ç¿ô¨^ºŽÝ¤à|_ˆ¼ï€ÙÒÕ ÝYIK€Ç…È?†¹S!áÝïW<ÛγCÚNDÞe?CZ¶žn‚3šîôJèé8<"ïË— ¦Áü.ˆ·ÏÛ •dDõðÅjú`¦Y~ûK€;§X™¹-Ñè •ÍÅï êáÝ,Â'Ûíñ/,„·ÕáÛÖ_|—ÃWÒÔ²È塯9¡…-)¤`tÝñij½º×rAAFbÝh¯µ&ºJÂkC\x/(ª‘*ܰ Y#Óeujæ¡:^Nq aX}z÷åbÔ»&Þì®K¬í«qÍÚŸYà°&žëi?tD\x¼-ŸŒà‚†ÛË]O ±Z ÜKPy‘z|J ·/ ³AU‹‘J=⦱çÓQ*{x­ó ¤ÂI'«ÓÖ¶ ‡ÕáIt©{¿³&Þ×/[#æ'ÜLuiA­fÿuÂÈ(ÚDïw-ùÂã}ù(¿W®Þ5ñæ³jµaÊ6N»‡—©q{©ôŸÅÈÿµymLàÊX@~à-Ó“}§Ï¥ xÃŒ €¼"ã"…)/É<„k# ·“‡Ú’SH])‹[ÑÐ{šƒz |áÔjý”7"OÏü%{…Uñ?½+— ãpéeVo9Däèzª#DÖà…Í®ç΃h ¦–ÞÙìoDÐRÁÐEÄÏöáî§îyÙ‘™XÏ9=Õwh  ‰ªâüð–µV ?1r5É-G€¼d 1,ú¸ñxãô%oå•Ë—Ç]ƒÀ¤YEÄÇkñºĬÁñFK®Æ' p<Ýv:ãOÎõ6adZàõuš@­Ük­xd™ÐAm/µ8ÛËK6 t­a2†ãíÏ”EäŽßЇäîå8—_ù¦Ô88<"wÙ¡‡îüÆã­‰5ã«H³…)ä¦ám͸x2àÏÆx LÉè1†‡ÞÓ/&;㌮7ß0›z龡ñ6N]¬ÈoDòÃüñ£ñŠ”2 Š“»ÜhÆ>‡ /ÁÁP#(žÁ[Vz㎗GBáÊÌÎlsCñÚ}.yEPL¶ MÙ!3PVÆgÒ´zÁâýŽa¬]´&í鸌l/; I¸Áx˜ƒðˆò'ŸHŠtE¥b{ùbôºÔ¦P¤Q#4ž{1¦ÙÑÓ« ž—3h|‚¸¢öº†Ûþ ň1 Ü`|µ€C¢ì³§n0>Ëáaî× Áx K¦8äí—Ÿ\e…q8›Ù¾0<Ý(AGg‡5ð%2bb/'‘¾Áø„F‡E`|&ìgƒ„t}öíùº‡‡Š³qÉ ]ÁZQ|±!KŠ»)8úCÀ +Ï •ú70|g>Ü|&aý)„¥ô×íö1€á!µ3†«r©€—×Öh¦Š3¨0äg7¯Å‚»çé¾:º³°¿eAA²Í9xù]FÔ>.ûçÒC‘•#DH¼–K Ÿ‹zt§!ÝanïΊøÁîH½•›íkj넆†ßzžÿDŒ6ˆ–^¯ºpœ„ l>ÍN ðºg¾]3Ò04Û]~êËGi°†u  xæÈ'Ч/Àíå•éÒúpKÝtfÅw$â.¸Ïßž¸@ñCñÐÄ,éÎ|‚¯§4@ÇM%Ÿ+Šå½ôúË¡tùOµ>ô]_˜’М”ïÚú¯ÂÈ·Òm—|ûÆÀ‰éížâýðiブ}™E‡3¥ø&ÅÝó²ª^̰˜¬8<œŠÀxJÞ)ÿ½§¿øòè"†§`#0^ÿª&ßÃgÜa…×¾‹›§æñïð÷ŠÓ—3[-‰˜¨Ì^—~cñs[ÓFÛ—GõzеôÙc劗O  ž™cd«ƒ½¤)·S&P<¥Çàywq‡¯¾ä°ýh ‰ x°ÚúåÐÚóW\¾ü ,¾¡x$ ¢¯º?F¶"ÛÖÓ‘ÇwP<$ðÕ”»ÏÕ=Éгhd«íN7¼j߃§ž±ƺûwX|§OR±®pæÑ|†ê””£ ÆÍTãªOÞ<@>WìÆâÉÀu›KwEsðCåC«ò úûëѪñ\ѤëNp'rüýŠF8‘ØØ§m_3[úõâÙ~ÆÂÅc™Ù6¯Pú~9”8Üd±Ž&2÷ˆ¶•{è›=½¤X"[ýèGP|”&p"›Ï™­@ñèËN’ ñ<èåó]Sèd´¯1•6ÙjXq–lîô#[Ì[rÂLº`d«•ë˜â‘:ü1²•ÕdæãgœBáBâöšÃ)úÙjVÔ±¹ÑÈV„WNå¶âèw0²µÂ i¶c_<5Å7(Üœ?î˜ØjH{ÂDn6!ñ  O,x l…ŠÕ/É >³úÌg°ë­8:(•n;ŸÈzñ‰½òt þcb«»TŽ-›=ñÒÁt£Z›ï1²Õ«)Qˆ5ß1™án×î/«•ŒÍ6dЧª_•â {¾™­îq&†y>MœÁÏà<3ŸC[‘MÙ{68`Š·“GqG}æGütüÚšÞ¿ÕÿúÛß½ýïò[Ïü»ÿñ%߇3k3+($ïªÓñ»ÿáõ7¿¢²ðß¼÷?¿ÿîwŸôذZéï.,á…FÏCMR|Ço¯Ã®×ïoøíƒJ×Ëû²ÉÁß\7Âë$Z(îo¯[ñuÛæH·¢ïô•Ïë×M¦ñؾ*ÐŒP®øßþ§_þÃûßÿÍú÷ÿ&ÞˆMs޽ž2R™ÃD–Ån÷Îé›Ë(ü“ÁOK›"B¿ä¿—,–Ÿ!¹TæiRú\/#Á”¦«äÕƒ*»öûqÕ7Ò%]Qy£mô§…¨O ó¹&{¼d·b`¡Ô j~Ù¯¾¿¬LG(¥kŸ„ÔsÙwOH/†K#¯¼qB"…ÂÏeß/GƒÎµ››žžƒð\óÇuÿçS~E ¬¢gäòëº÷?ý¢_{¥7 5Ó®úõ¿+üüÍÿÊÅ/ºüˆ_²ßýý½~ô^ÿ—“qE:£¼ÿ÷gXÄ„KV G}ßHAߦ߿‘† ²p°©Ãð™<s$ár5Ž›I*9šÑŸOšÌF˜†#“ ?T²*¤³W5á·VX­/ bÂû'µ Vôe-f’K xÖŒ°V8d<Õ{ΈÀ“¬¸êcÝÔF£m£LºaˆPû:ÈĔˀÛòÈoÕ³ÏtŸö¿úh¼B ½/ÿÁfš3åe1ù2×lõkÆ/êœÎ4ÌÉÓŠpfÈOÅ${XGÄOó0 u¦V”:_ÐBî#˜Ý¼œ7Ó¤¤˜@1¼Ìã˜4‰³tsƒ\/çÑ–G1¥â‚æJNç³ÛÈÞì{ðHÃ1Ržø"vÔÃöáj×ò?wz˜±VÔÓ ¼ ¹\w-/€'9Üf3]¯~fÖâº%¦\¡ƒ’:„VãuD Q×Ñ­5¡ —65øî¨çÅÔFYÝzBC~O´$½0kø…#©710<)WÐæQõŒ»÷!=éiL»9l†)Fl§÷wÑ:spÌIÐFÖÚ|ŠÃ™ƒË8g m#õhH„JèôÑ<è=rp•>=kk·¾‚nGS%6Œ0Ñ9spºžfQˆ£ àÈÁé$ʱ9u/­=spµ1> æ¾–ï16âŠÏšžÿ¿¸uéæ‘\OÒ•ƒÓAb’Nîdò~˜Hd%'Ï=’pðc›;WzDOU7mÍžo\c÷ Ú-ùdäž½,e2ãžKèõ QPdkïÓÖ2?Ç“€GNs¦PÔýPY¸¬×alœVÀ‡„i8Ü/¦0â&_€ç‘¬ÛÏ( —p߀>Ñ`è`6i$…Åýšá©úUjªžG:ÒpL3`SnÆw¾¼>Pâ—¨O¹àÒËlß¼à?ŽzÁµ¦Ù ¶…é¤Fi¸ŒË ½Ù .¶áuTÏ`9[Ä‹N ¹Û4?]g.3.ÚŽz÷v¥#—§ùHSf(¼î6ÍÛxíópÕÃQ{zŽ<#` Œ, }^Ág®ï]í™Wð™‡ë6O€¥õÊï3‡å’^ØòƒZ@P)þ†C¤—gù<\gž0[¥a‚*¼T¨~ æ1›îíô1¶dóž_ÿø§Æî‡[ïEvAmSìJÖ²cëƒâ:ì©://¿‹ëÅwr"õ¸ï,ú=5F(åµ¹÷/£ýÄ~ôȯ·Á¥vÀ¬Õ8à-F›ÿ Ò ˆgq&èÊ1ÏêòëOAO4|fÅå×;"]ÙãŠÙ¢zž9:ËÍóU_×(“°ê¸¶¹3u™²<ÏÏË¥’2ŒÚܵí–½g絛S—õÅe ¦¿QF€zù©;ëë O/rV2¦ Õ$]–™¡VMÿõÉÝøõH˜GîôÁK/H"ZX_7¾Ó¥räØ{ߑܗä{{9¸¿ùõ¶ú6÷£ ¼®7³6Ź\N¿^»CsÈ|&]~= ±þ’ñt5òëËaÜçË'Þåu€âÐÇoï–½0}œ!†Šd‹nÇžíYû?æW£;ÏÈ3˜öj „Òß\¢FwÂ&97¥ø@˜«¼®cÃíðij´²’Бooåqäâ˜ê5ºCÎɈÓí,ZAyž|šs;£Nwš/`OoÏ|¾›¨Iê\1Õò¶±+¡EB-AÁX<´¹‰g™–³˜k¾£VwhŸy÷<=ßxÖ×É^éóiów£^÷ùes'f‹}{+o”/¯KŒíÌ'2²†Dq{ÆBŸõuRÚ|™¯ñ¾Ò™fµEg‘oOé³–šãRÏRÃÔ¨ÜuØüêŒ2VlÓ¾a«ûd<Ÿ‘ò–е·Ér¬9mQ«;µ©(#¯àº<{§$oÒÃÎSpS¼YØç÷7̳úF8ÃKÔé ƒsÿ¨d¸ ì*íð—ä¨ÕÎ#,Ͼ»€yVV‚ÀÙhnæYØe$¿=luçhH²‰ÌBâYÉŽÜŒEhÖ"ÇÞ(:˜^la÷ÝêN Ô`ÕJÁÀ çØØmÉyµyì¿!Ù:Χ€í¬¯ÓóÁ½ÍÃŒzÝ¡§‘ã¦åñ:–›x¶1 ¼<Ô«W –CV‚ÄÀ¯ÇíLŸº÷µºSÙ[aè{²£¾Žv[‘•,×z÷ºS…bÅ^àvÖ×éå´Sý™q—×e‹IŸiìAy$ò>Ϥ^åuŒù‚á y;hEf– uù-óeJÈNáô§?Ëë À’dl†ön=1¥tD&evº›ÖÝbгºòøG²JílbâKkqu/Ja:CÆU]‡Q+æÈ«w—Š¢ÿf !æÕã¤ç÷ï_¹˜w(?Äî®ü/ï€[™§òùÉ~úDÆ™!4ž€zÉ•ýñc¼úàø­×ß¾>ÚØê¯•% ”|ûãJ”’º>ámþhüñr]‰Ìµ%º~¾üó¿ÜR—ú b–ßü)qöe©¼ö”¹tÓ¶Ãà¡ œ¿ýÍn;¯bÊÅwʹýýó_çü™Œá¤ t­l-y‰¥ÿôËû×_Þÿö?þñk“;¤ÿâ?øíìoúÉ!:ßé—·Vãþëg/~Z©&²S²ºþÃõç;&‰™¶òùOþÿä7|‘~zÍ_žw.è¤ÿtPþñI¯Ù·þº·¯î#ØüñŠÄsG1“ÉaÎw$.³³ãÎPêÖ;'²í݈÷¬UúˆÄ3S[åkñ/>íþ3/ ¹L1— µƒI>$S¡Ÿœ›ÑqFâRvå4Û8TxDâÜNö¢Ùƒ G´0—”AãýŽÄyœ¾;€Ž7C~âv\iÕI$Èï@<[|mú=ò‡g ≎‡þäˆÃÅQ4,·VöyÝq¸‚â|›£´¹eù†ÔV%©Ckÿ Ã3®!Û²+^<õ†ËÖé]`íqB·3 G4¸·¢Œ’‚!ìÚUŲ́<Œf°+Ä„ 2¿åÓs>£pÔ†•“Ë6 ƒ# Grqf°ð+èr“9äVôûȆË:Q]“˜^Ì0ÓK@Ld’l G.a µ?>óÃõÛtáEc†çeLö Â_Ï!}†á%RÛŠy†ƒ8G®/É#É6D£Ý¥yV¤°‹6ªÚî0œåÕ†vðÃQÌ$ßèƒowž‘ :-ð3 ›ãr@Ž ŒŒádúë{qïˆÂ9Çòì4ëĶ; GC¨k} ~DáEq uu«<ÌEGÎïÓ"™aãÆ¿dý+át†qlßQ¸ÞÅ „(;¢pŽv)ÓJS0þ…ÃÁ”ïU¦³Qx&ù«Olòí„g@t¶Ýሔ….¿ráè-Íü$€>ƒp´ ÕÎ:²5·;G¶ Cñp}ùg®ÌëQ¢á\VàQéÏd×#çìZIu¸kŽ(³7)[ÕÏ¥ Ë­0P ýÊG®w„¾ìÇ ö0\2ÁóSYr@8'?*L£• çlqpàAíŽÂ¥ó© €ðÍi§Ž(œ×/DØ’ýDá?§€ #=ȯi¥áÌL?rº(œÕŸp¶x{ö†óó£Çh² 7›o.4¨ßax±Â¶6,?;ï0œ³¥óa£·|üÍgžmØú‚U¬¯q‡áÙ§?6^7hÇÐòSr )Rv¦Ï# ׺}m›œùƒ²î3 çý¨KckAîÛÃP[oÑ<Âp|Ö™F,ýÏ0³,Qf*rÛw~Mw„PlÌä­; ·ÕÓ¹‘›àøÝ‡Â&†M§…:(çÌ£*ÝÌÆq3{֨Ѭè礜csÊbf²nVï@œ££‹ #œò쳑 ÿRFVz}{ûñˆã±M‚—ÏS?)çðÀŠÚ•éù³Ï@áMh}zYÊ9½ÚèéS»‚ü>Õ¤KKVÎÿÑH†O&OS| À‰çE-ÔU÷E9Wrbœ½.§EÿŠÔ]¸Ñ;’*3ÛçïGØD9æŸ^H 7Éa¹-νs¾ùÇ…ÍÍ–c}ÊÒûÃЫP9ÖW×3¶÷}~ÇþLÏæ‡Y뤜“’& ­×¶ÜÛ)2d ümx ïÉ9G|/K·wÇŸò™X.#PI=“© aþÑ À<Û;ŠçË÷yº°|ƒ§ÃGœ§C&½H+ž Ÿ‡[»kNäíʽëíéfÑý!Z5Íÿ©[p2ÈÞf'†:Ýx:›§YðmÞåŸÏå#8‚ù/Sû}ÍÃÕù©X«q O8xŸëŸŠÙêSF4‡s…~*v£œ£d9ï«ÏÍ‚CrÎbeO'åg{4ª6¦ÇK§aj¬žœ¬U׿¿à”.|~ÐÝç–q22i¯å³N³j¼zò^²¿þa–Y<ŽêÝ&'髯sÐáö(wÙ-ð£~ÑTÃI:—35ád†~¦^‰NÒ¶q•ŠñÒ9ޖޝõƒô»ìHËóÑ’reÀÕû"#b"«Dú¢¤sDDú|"ù) ôt¨ºT?|ÂIaE"ç]-i~ú”m7<üì^uø¤Ù†"7êw@9‡G¾ÛÒ)ÏÞ(v¸ÄƒØÊ,ý?O{}zÔªLi é'f8Ã)°Su&š²¤ãŽUëÍ'­ä±îÍ)8dÒ¢Ù„`ø Ñ3pêfdJg4©­)¢|îqìZ<ôsXAÝI8—mÀz1ï›ñP  ÝJH8'ÝH=Hí<~@8'¡ –Ù#ÛÉÍ?CyôTm4ùí(@wZÞ°zÇ“pŽÍév®ËvB¢Š0XhÃW½ú€2’±v`T|~Ç …Ð8‘A±ª¶HÊàöº%}Þ÷‰ÄÐ'-@ñ¬\ä@r¨ö”3&§j· ËMA2×ëÍè O¾9-"3ï <«“@Ô I‘@Y^Cj>,ƒÑ`¡Ôûîrãh4^¤äþT»|Âhƒqß™.‡8ON² /¿é1º…êNGs}nì>axþúˆÈfU&åRÔò¾úÜ€ ˜±‹^´:öä¢2$j6îiìÄe¾äÃêO¹l̆¤X¹à Á6€m²fÓ£¥Âån6H˜`ך >!`¬¥Út ú”îO¹ÙÀ>j¥†÷Pô@“óe®ÃûbœËpš,ÚO³ÓÔ~âßr¿:|N\]n¯ÿ™pî?+¿,¯MîV*öá é(&¶jï€ð4&UÀ¸íõÐÇnŽ7¥Ä2-5á«qúÉðvw‹N>C)Ø­ZÙ°¸S°ÜÒ=Ðï÷ ÍÎÌc¼TÂÓ°Çè ˜òZ³< à½Y§â…ÂãF¡ñ™ƒr8BÞÉÔy"Ñv‡h]Ó…¤¥p¦@ü&Q0qªW€Ãsöª1Õ2`"Àá¥eV%š(8¼é¯Jñ¨àp»YMÜøæáüéµKÔ‡%¥Ûr€Ãör í«Þì0T‘¡B&ûGÐ!óÃàLXàðhT­MzÒGÌÃâ3—&û<¬‡G47@åûÆáI¿2õ„b¯°Íñ¹\¾M³†!±'ïL—šÍ'"üÄáŸ>¢Õž¹|gĹmn_²f€nŽ£ë$¤Å§I_8üæëÅíÅ€GÄLuCê¥Ýr €xý\!¨‘vÜA£‹åØÊ'‰rü#âß0“ÂSx—o ÕÇìm@4ˆý‡aE=”›—Çìh³ f±±‡'æÂ«ÖÁ6žî ˆ¯ÐÝ)¤6žôˆ×Ùkp{ì§÷Äk<›°r„Ì:î;Àá ¹mÙûSO´jS§-Ãlåš7ÏîLHÚ±]OŽ‘BF™ýhôK¡bM&pÁÆ|ãð{kÑdÐy0ú…Ï»ž†ãõ¹X‰”!ÙÙza/°[$Ù”[pøIÐUd„u¶[€Ãã€Ê«€ˆ9 ³ˆÝ ž¬¨¥°Nœ5_èUŸŠ´§¤Ÿ³;¦§!>q^œ^F:-–?ÂáEþP9ê$­‡Ç®H´å4“ý§6œ'eáð œPZ±GÀ7ÇÙbùtR§ †¯PüÕIÏÝsæ4IrÈ“tóyOÞza”êôÎçãUêbà^‘¤Í†¯Ô=A"œm´ÊÃã£Ð}á³òÎÅmÉ,È?:ˆ~€ð”ºÑC™}ÂÛÀÎ ïÊÃ…xGbob\ܲAÞ§p‹?$Õ|ᔃǔóDи >ÙØÒ«F<¢M•°” §p ^Ñ%®L/™wšce:Öm{wë‰ÁËA6Úá)þÔ +Éù&ôjË9™æX\SH‹ S€ÀS.ã{ú¢¹lÓ ŠMÖØ7þ¾é‹ŸöäÈ ¿“{¡{P~ôëß‘ xA‹ ®?½èm|çI¹zøà„c¨­1~¿Ožh±sdZpGòV²*ŸätØGQ¬@¾ –ü@ÜSc%ÕÕîüI›3av´Ê3þiŒslã¹ïø‰è»Ñ‰,ýgehgüE¾4Ñ(íÍPGôF«2Þé^4†ÜÀ:Û²³«±c¦BWÙÝ, Ëpa swTBFq§™°ôä>"_-½÷–Ö‰xÝq3ÄA¤™-ö @÷}—O mÁÄu³À©[ œû »å‹hà#Ð=Aÿ-ÞtTé€R2 Žîãp?a‹EºiÓà>j@-‡‰†ÀÂê jºƒ*S *VÐ=Ñé“Éã[®ímà§Ä£Cî<*uì²§ÉQÆ@c¼©ë w)Eüà ÐÀ½7nQm ¸‹ÊrÎgÂʸc² ô1g+Ü+ÍðÊäRn¼}S@1૲ý‚Ûi,xnzŸnŸŒ®¢w·xmÚ‰6VéHŠ~ÖÀí™Á ÖëbÎÏ·7ÜÎmÜ –&ë!ê8vNËv€­8™ ³Ò¸}RX ¼Dip;Ž/Ô]"’o¸Ý6ƒCœ±ð„š{AJ«q´n7å*QV X夆1 '+o8áöOü_n'Ý T  àöî•»Ó}œnß|Ž ·öEÌg Æ†¼`¤;tÀí~ˆÖ}zW·OÞ[rùàvF?l¦”çn§?‘WßÁíÌghj­Ü>é?ÞdrÐ}nÅ›¦§W`]p;ƒ®Æ@Ûº#¸i½ÝÒy-˜îb¥»zz ë£!ëD†‹ÁŒùé¥ àöÅ×5v@O¸=ÓžLÂaùpšn‡Ýƒù¸]m(Oûö ·K˜(¯“n³þånߌÞhÏÌÎ n×ãìmM†ܾpP‘Ç€V Ìióô?ã n‡Îú`•n§»}2a*å ýÜ®—™@ì#´Ý(K™>³FÀ*eÔ­UsÐ}í#¨ÛºÏý—œáNÅ ·Wp W·ómæ"îá.Ïá³Ð’¨ÿiÙº.¸?2™Ô Dp;¯˜ïó7"¸]^1…ÇÝáòn¶áù·q#Üp;ˆ¥l€Ápàvæ{ v´Dp;ÉlxÄ‹gs/¼½Ë’ã }S„·CGÌ ù¾¢îs”G#Õ mZ¢ºw¶·OÖ\€{6¶ìIk@äìk¹ q§ëÀÞ?Ü!^̰lô ¸KóÈü¶g¸Ì ¸3÷“"§ÜvTø¾K:›!)#Ü8¬½LÓ(q#À]aºökì0KaÛ¼3úºG€»Î*ÔOiïô àN”%uTlû/ÀÎ8˜Êçòóܺyƒ8´¨ð]º¨¢ÙöôÓ{î6p˜ÖL‹!oÀÂbð -r¸C.\ñL¾¼÷F÷?¦ú/¼)¦ïgVú·’=²Þ»~£íZ[¨c•é“UÊ-Àë!åºÀv#&eÙyÃ]ÛW!Dáv ¶ÏåÕðXí`•"ú§á…é´]Ñ‚ÔæÓ v°J¶³S¦y[Œ¶CS]…}#[/¶¦dŠk¢u£írÎôM™þÙú¤•BtÉcÑiWz·/ÜŽìçI+…bÌ<™íX·[—LÇòýçÀírzÚ~ÊŠo¸sÎäÁzOÏÈL+í”<%Ûrgœ#ÞÝþÙ}ŽÖ’G=¶ÍˆˆÁöÁ´\©þ`¶‹È×ÝÌnÉ1ÖnµÕ0]`²­ÝêËhÌ©¿°öüeåЩ·»¤ü•ÎÆ’á6ë‚Ú™ßÍ$µ}aé/NF­tƒi«C¬]Æ‚\ÒÖ®ßêÊ—élȸ)¯,Ò—ƒW“г]¨Ä]ð©ŸÖneÅdJ¢Ñ9/««Å‚1ýæ0Ÿ Ù¨àìlÇl—ìtJ”ÀÂa·G²©¬N7µµçËóÖ\p¾W¶$\M?Zÿ?G»dãlÖÉ£¼â:»$­Ãfb»Î•uo»sÔÀöLíYóy¡ÇhÀöl\)Ùeç@Û'åô0ä[öýP)Ø>ÒcWúbíŠB©Æî†ÕÃÒ‚¹ò²=æ(ïú`Ýg¹;q`…ÍJÇ®ôgBgȴщitJäH1o¬ÙWžlÖÄŠõOƒbµOx<BíV±l}R3`S±ªQ/F ¥›‹Å<1E 8W;È]ÉSÛšc<§%έE k9Ât»;cc¼ý÷‚Úa¤°$Ð*7Ô,‹SÔi?2ÿŠù&É{:äéÈ(*±9ò€À*æè@è3*ÏZw‚*-„5è@‘$,‰¿S¨µîÍáné<«Ì¸: %j£D{õíH‚‘Q?- ¾QZÐt‚+jàÔÏ7Ë>.oÛ¿ñv†«K„œ?ôÀÛ>ºD\¾Ž9yŸì®†œR–£ÔÀ¹ sêÉKjN¼C¥ÇÖv¾¼P™“:½žéÆÛÀ)3g<@9ðöeíoÚúä̾'ÞÞ8Ò^ËJV®Jwí“6}p°G0Ï…l>uûŒ¾«Ôê^j©0=/ÈÝJZt#¬•³6˜;Õ°Ä(+˜ç" Ih'ŒVG'‘ì |ðJûðWkY©ãlÍ*=¯Bw³,4×,´uaîôåÚ(¦ìɈs§”ZO,C;W„¹3djQ$)ÆÜ™×±½óÆÜÞŒ.Z·_äže§Éåx•ø ¸K•n&w曵ïEöl®¬4V¸Û«t "gýûœå’m²g5i>Ôø€Ü'½G”€{äyŒrrOø$0Írp£Ž<Ý°Õ k"UÄóǘ;ut tõ™ü9˱´,Wgä½ w >´Íˆ&2¿ýàDN2ô;ÆÜ‘aÙ§ƒàs” a§.'5[S‹0w’lüv*ã†,mñ&ß`Ä[€¹SbeÚö†L_Ö?"[£§™ßî)Óx·|:à1Ê…èAz™JAŸ.xî:f̳°É­'bü˜UÆßQÐÒcÐ]Ÿ*ôžH;F¹`ìšÕßêî©ê b­QÂe<ùï?‡†ÿµ£\XÑÆŒ_wáÿúQ.ß\ø—G¹þU£\âëþò(—øº¿<Ê%¾î/r ®û £\¢ ‹ñŸÆ‚ü£\ª¿ž´4Á~¦|0Æ¥ÿ¥é/ îΟX¬þÌðº mù9ú QÚ?Ïùî^8¾Š0@4†öå?ÍeùÕw—á¸v«FÇtš_}û€RÞºO1žÆký‘ÐK×ôpLо)£ðAÊôc^J‹æ¥ü6eQ±2Ÿ¥ö)ÿÝ90å/f·~âSþ&§Å¤/ù‹D-Èi¹ÂÖ¾ §¥CÑ3Í秆2Ã/ ÓaÎlÁ¤£K¡BŸá¹·‚tt6xbà(§Õ)N2orÉ祠ÝkKRáËaÕS¿SÏ ¯ÌT…Ë>Ž–6È‚ü«?jhD$~È1XÄùõrͬ‚a ‰´ž‹Ê)Ký2àuUÏH)­JUÙ²ÃrBgJ«‘S¢ 9ˆQÙ¢)ÆZËýÛAN‹Ïd%ÀA œ§81æñÎi!^òzG¥G'`T¦p ·ºûTNÐŽÂYÁ0Ž€Q™Ë)D¦ÁÏjaÏœ´§yÑ=û0!‰-OVõ˜ïœ–=>®Œ²æ}ç´¨ó€’á°:î3¤2G? F0*[F’¥§9y9­±¬u6-oN>BÂW”~IÁÕâž!%Df*øí³“ÏÔ 2}ªˆyE=$™œ Ä‹ªÍ ÍBBÔO+ÞBsæ´ Tg­— 8rZÐÖêüTš ÖÌÓßdTIÚ­ X´ŸÉø¢Â §…t1q¾ÒC@޼l݃#h"¦§)žM™ÓÄ9¢LzÙ`ö J±éfrާãdWN+¡,¥ôIPŽI[ÄtF ¢lC³Æ  $¸´ÚœeÓ‡p#Q,ÿĬÁJå´Pî:Í“I[¶h_¶Áó-DÒ:™ ­€6jÝE¯VÖÉJ2ŒÇˆìåHa%xE”Ö §¿‹1M;€e;9OB»E0¤µÂ$6 éº`L‰躄»öån»OoÂ8@Ô†nE{Tl~¥µ2ªÚŒêM ˆË<™®NÉÕ@`é fÇj÷srJ”O™„?šY÷H•©é¥yŒô…eTOÆi½\aÒ×…ëVOªÔ6÷ê"aw&4€µE]$–°nú…±›ÓÙ|¢÷Òd`5ô7ÞcÝ-ÒÓÚSîe#X¯&I’^À¼µˆÌ©Ù¨‚mok…üGêB›»¦Åå­EdNVC¹hÌÚ>'2ÓŒQðj¸ ¯5Ž—X«s‰›N¡¿^F4î´–qb –2 Ɔs椇ØZ2¢)¢r‚q ›w¯y+òbüI1Àþ3©²®Ó>Ra(3yÙÏØ”_ÞSÞ£ Žþ𧨕?­¼X—?þØÇG{ˆ• lùZ2´€Ï§M­º?•TÀµ´Á‡Cò$E‰ý°«3mm?ž‘ˆçïþî7 Õ_ÿ'QtÏ endstream endobj 11 0 obj 21644 endobj 20 0 obj << /Filter /FlateDecode /Length 149 >> stream xœ5K! C÷9…/0R~„pª®¦÷ß6aZ Û/Áƒ‘ŒKL`ì˜cá%TO­>$#ºI9©P7OhL 3lÒ%ðÊtß2ž[¼œVê‚NHäé¬6¢Œf^ÃÑSÎ ›þËÜ$jeF™2ëT·²²`æµ<÷3î¨\脇ʰèN1¢ÜfF~ÿÛôþ{20c endstream endobj 21 0 obj << /Filter /FlateDecode /Length 52 >> stream xœ363T0P0±T026Q064b…C. ˆ•Ë˳@ªr¸ Ês`ªr¸Òé À endstream endobj 22 0 obj << /Filter /FlateDecode /Length 49 >> stream xœ36´P0P040’F†@–‘‰BŠ!HÄÌå‚ æ€Y@¢8®&‡+ Æè & endstream endobj 23 0 obj << /Filter /FlateDecode /Length 80 >> stream xœEŒ» À0D{¦`~&fŸ(•³ JÜpOº{¸:2SÞa†‡ž ,†Sñ™£`5¸FR죰n_uæzS«õ÷*Ovvq=ÍËô endstream endobj 24 0 obj << /Filter /FlateDecode /Length 90 >> stream xœMAÀ ï¼"OPDÐÿtzÒÿ_«Ô½ÀN‰E‚ô5jK0î¸2kP)˜”—ÀU0\ Úî¢Êþ2IL†Ó{·ƒ²ñqƒÒIûöqz«ýzÝÒ"X endstream endobj 25 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ5PË C1»g ¨džV½uÿkmÐ;aÿBXÈ”y©ÉÎ)éK>:L¶.¿±" ­u%ìÊš ž+ï¡™²±ÑØâ`p&^€7`èi5tႦ.•BÅ%ð™|u{è¾OxjrvCÉ` jºMX´<ŸNâÿ~Ãî-ä¡’óÊžùœíð;³ná'jv"Ñr2Ô³4ÇE> stream xœ=O¹ 1 ë=8Àz,[ó\ê²ÊFR"@ñ‘eGÇ \b“Ž9/i?øiX5Gô„ŠaXàn’ƒ,JWž-^ ‘ÚB]HøÖÞ­Ld¢<¯;p'£>TYz@;DY®IÃXÕV]j°²ÎÂu=̪åÑ'k)PTB½tÿŸ{Úû o/ë endstream endobj 27 0 obj << /Filter /FlateDecode /Length 17 >> stream xœ36´P0€ÃC.”ì endstream endobj 28 0 obj << /Filter /FlateDecode /Length 317 >> stream xœ5RKrC1Û¿SpΘ¿}žt²jî¿­„'+°-@B./YÒK~Ô%Û¥ÃäW÷%±B>íšÌRÅ÷³Ï-¯GÏ·- Q=ø2'"ÔÏÔè:xa—>¯N)x“¯á_x”NƒÀ;2Þ“‘$ÁšK‹MH”=Iü+åõ¤•4t~&+sù{r©j£É X¹Ø¤+)$=‰H²r½7VˆÞW’Çg%&Ý&±M´ÀãÜ•´„™˜BæX€Õt³ºúLXã°„ñ*aÕƒMž5©„f´ŽcdÃx÷ÂL‰…†ÃP›}• ª—ÓÜ #¦GMví²[6ï!D£ù3,”ÁÇ($‡Nc$ Ò°€9½°Š½æ 9Àˆeš, mh%»zŽ…ÀМ³¥aÆ×ž×óþE[{£ endstream endobj 29 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ-Q9’AËçzBsÓï±Ë‘÷ÿé ʃ†C :-qPÆO–+ÞòÈU´áï™ÁwÁ¡ßÊu9HÒTM¨]¼½vfó¤5,ƒë?c 7zqxLÆÙíu5{×kOfP2+qÉÄSuØÈ™ÃO¦Œ í\Ï È¹Öe¤›•ÆŒ„#M!RH¡ê&©3A£«Q£Å~éË#aU#j û\KÛ×sÎ4;«<9¥GWœËÉÅ +ý¼ÍÀET«<p¿ÛCýœìä7ÞÒ¹³Åôø^s²¼0XñæµMµø7/âø=ãëùü¨¥[ endstream endobj 30 0 obj << /Filter /FlateDecode /Length 232 >> stream xœ5Q;r1ë} ] 3æoŸg3¯JîßF°“fa ç=؈ėÒåŠoYf~'‹¼øY)œ¼QTEX!íàYÎj†Ás#Sàr&>ËÌ'ÓbǪ‰8ÎŽœf01ëh9fš=!×#nì4ËU i½[ª×÷ZþSEùȺ›åÖ)›Z©[ôŒ=‰ËÎë©-í £Žâ¦ Òác‡÷ _ÄœÅE'ÒÍ~3å°’4§ð#1”êÙá5ÂÄÏŒOÙÓé}”†×>hº¾w/èÈÍ„LåÊHÅ“•Ƙ1T¿Í$õý?г>š0TG endstream endobj 31 0 obj << /Filter /FlateDecode /Length 259 >> stream xœ=RIrÃ0 »û|wIïI§'çÿ×ôÔ—cЦw‹ÊÙøi+Y~äÇ.;K"·|m“ûŠª¤n‚Ì%Ç%WˆYÊçJX´”™XŸ©ÊÏ5¨UøÂOÌLL‡$KÈI=а~^÷ ~½¤ó[dü£cƒÒ[’Lî•£”ذTŸä4Ý”VŸ™ve,7d¥&uúõÓãK0¥/ÑAˆÄŸär‡, )ñv®Þ@xW» ÕS+;Dš‘ÞR«93KFÓ#`mÖ˜ U¼Ek´âò…N+">97t0MUž…ȰRáX{Ïh º†¼Òpz’qÿù¼+Þ×ïÚófd endstream endobj 32 0 obj << /Filter /FlateDecode /Length 79 >> stream xœMÍ» À О)<àÿ>Qª°"Bc?éN:ÁÜâ°hw¸Zñ¥Q˜}ê™’Ps=DX3%:„¤_úË0ØØÈ¶ï·VîÞ endstream endobj 33 0 obj << /Filter /FlateDecode /Length 244 >> stream xœMQInÄ0 »ûüÀ–¬ÅyOŠžÚÿ_K:L†Yâw'&²ð²…º:_6òJØ ü´æÄψÿÑ6"­|PmLÄD‘ÐEÝhÜ#Ýð*Dû‘ ^©ÞcÍGÜ­4oéØÅþÞÓšGª¬ ñcsd#i]EÇ÷ÐzÏ Ñ)ƒúÜ„¥9z’þÚ×µÑìÖÚÌž¨™Ê'ÍjhN§˜!³¡·©XÉ(ܨ2*îSi=ÈÛ8ËNŽÊh=Ù±šˆòSŸ\B^LÄ »ììXˆM,lÒ~TúÄòó­7ão¦µ–BƉЗÞÏxï?ÝX[´ endstream endobj 34 0 obj << /Filter /FlateDecode /Length 87 >> stream xœ=Ž»À0C{¦`ó †}r©œýÛ€?iÐC:N¸ 6 ÏÑíÂÎ7AîE/°.o€ !‹$ùöÎÅ¢V™Å¯¦Eê„4Iœ7QèN‹Jçãôx>ºuz endstream endobj 35 0 obj << /Filter /FlateDecode /Length 59 >> stream xœ355W0P°´¦¦F æF– )†\@>ˆ•Ëehifå€YÆ@Hœa¤Ášs`zr¸Ò©áZ endstream endobj 36 0 obj << /Filter /FlateDecode /Length 247 >> stream xœMQ»mD1 ëß\àëkyž R]öoCÉ ¡/)§%öÆK á[¾ä‘UC?1ì3,=ÉäÔ?æ¹ÉT¾ª›˜Pbáýh¼t/"+Êße sÎ÷ࣗ`&4`¬oI&Õ¼3d‰¡ŽÃA›TwM,®Í3ÈíV7²:³ lx%âÆDÙÍ`£Œ±•År¨ ’Z`×éQ‹‚+”Ö t¢ÖĺÌà«çöv7C/ò਺x} ëK°Âè¥{,|®BÌôL;wI#½ð¦fR™‘•:=b}·@ÿŸe+øûÉÏóý (\* endstream endobj 37 0 obj << /Filter /FlateDecode /Length 245 >> stream xœEP»C1 ë=`ý,{žwH•Û¿=JFp…!Z?’Z˜ˆÀK ±”oâGFA= ¿…â3ÄÏ…A΄¤@œõ™x†ÚFnèvpμÃ3Œ9ÅZp¦Ó™ö\Øäœ'Îm”ñŒBºITqTŸqLñª²Ï×¥µl³Ó‘ì!„KI%&—~S*ÿ´)[*èÚE°Hä“M4á,?C’bÌ ”Q÷0µŽôq²‘GuÐÉÙœ9-™Ùî§íL|X&™Qå)ç2>'©ó\N}î³Ñ䢥UûœýÞ‘–ò"µÛ¡ÕéW%Q™Õ§¸<ÿŒŸñþŽ Y> endstream endobj 38 0 obj << /Filter /FlateDecode /Length 68 >> stream xœ32·P0P°4†& æf )†\@¾©‰¹B.H Äʳ €´%œ‚ˆ[B4A”‚X¥f&fI8"—É´å endstream endobj 39 0 obj << /Filter /FlateDecode /Length 255 >> stream xœE‘K’ D÷ž‚#€üä<™šUrÿí4˜L6v—¨ý„J#¦,çy0ýÈòÍd¶éµ«Š"Ìä*ôXÕ)â̵Dµõ±2rÜéƒâ 箜T²¸QÆ:ª:8¦çÊúªîü¸,ʾ#‡2lÖ96på¶aŒ£ÍVw‡ûD§“©£âvløƒ“ƾÊÕ¸N6ûê%‚~¡ LòM u†@ãæ)zr öñq»ó@°·¼ ¤läÈŒA»N®qëüÞÿ:ÃçÚ WŽwñ;Lk»ã/1ÉŠ¹€EîÔó=­ë ïÉ™crÓ}Cç\°ËÝA¦Ïüë÷PŠfˆ endstream endobj 40 0 obj << /Filter /FlateDecode /Length 332 >> stream xœ-R9Ž$1 Ëý ~`ëòñžLÔûÿtIUªlË<ärÃD%~,ÛQkâ×Ff Âð¯«Ì…ïHÛÈ:ˆkÈE\É–ÂgD,ä1Ä<Ä‚ïÛøù¬ÌɳÆ/Ù÷Vì© ËBÆ‹3´Ã*ŽÃ*ȱ`ë"ª{xS¤Ã©$Øã‹ÿ>Ås‚¾#hÀ/ùç«#x¾¤EÚ=fÛ´[–iG•–ƒíiÎËäKë,WÇãù ÙÞ;BjW€¢0wÆy.Ž2meDkagƒ¤ÆÅöæØ¥]èÆe¤8ù™*ÂJšÌl¢ þÈé!§2¦®éJ'·QwêÉ\³¹¼I2[÷EŠÍÎë™õw˜2«Í;y–¥NEø{¶ ãêÙk™…F·9Á+%|6vzrò½šYÉ©HHÓº N£ÈKØ–øšŠšÒÔËðß—÷ÿ3â| endstream endobj 41 0 obj << /Filter /FlateDecode /Length 131 >> stream xœEË ! CïTáò>©‡ÕžØþ¯ë0šABøA";ñ0¬óò6ÐÅðÑ¢Ã7þ6Õ«c•,ºzRV釼òPi0QÄ…YLCaΘÊÈ–2·á¶Mƒ¬l•T­ƒv<¶§e«~©maê,ñ ÂU^¸Ç ?K­w½U¾BS0— endstream endobj 42 0 obj << /Filter /FlateDecode /Length 392 >> stream xœ=RKn1ÛÏ)¸@¥ðMrž©ÞîÝ[›ÌTª /¶1”— ©%?ê’ˆ3L~õr]âQò½ljgæ!î.6¦øXr_º†ØrÑšb±OÉ/È´TX¡VÝ£Cñ…(-àá¾ÿñ¨Á×°…rÃ{d`JÔn@ÆCÑHYAaû‘è¤P¯láï( WÔ¬…¡tbˆ –)¾« ‰˜¨Ù ‡„•’ªÒñŒ¤ð[Á]‰aP[[ÛxfÐÙÞ‘3íÑqYk?=é£Q2µQMg|ñÝ2RóÑè¤ÒÈÝÊCgÏB'`$æI˜çp#ážÛA 1ôq¯–Ol÷˜)V‘ð;ʽýÞ’Ï{à,Œ\ÛìL'ðÑi§­¾býƒ?lK›\Ç+‡E¨¼(~×Aq|XÅ÷d£Dw´Ö#Õh% ÂÎí0òxÆyÙÞ´æôDh£DÔŽ=(²Å地§ü¬Í±ž&{o´”Į̀„Ôvz¨¶ÏcÔwžûúü.¡ endstream endobj 18 0 obj << /FontMatrix [ 0.001 0 0 0.001 0 0 ] /Name /BitstreamVeraSans-Roman /FontBBox [ -184 -236 1288 929 ] /Encoding << /Differences [ 32 /space 40 /parenleft /parenright 45 /hyphen /period 48 /zero /one /two 52 /four /five /six 56 /eight 66 /B /C 69 /E 71 /G 76 /L /M 101 /e 105 /i 109 /m 115 /s /t ] /Type /Encoding >> /BaseFont /BitstreamVeraSans-Roman /Type /Font /CharProcs 19 0 R /Subtype /Type3 /FontDescriptor 17 0 R /Widths 16 0 R /LastChar 255 /FirstChar 0 >> endobj 17 0 obj << /FontName /BitstreamVeraSans-Roman /Descent -236 /FontBBox [ -184 -236 1288 929 ] /CapHeight 730 /Ascent 929 /MaxWidth 1342 /StemV 0 /Flags 32 /XHeight 547 /ItalicAngle 0 /Type /FontDescriptor >> endobj 16 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 318 401 460 838 636 950 780 275 390 390 500 838 318 361 318 337 636 636 636 636 636 636 636 636 636 636 337 337 838 838 838 531 1000 684 686 698 770 632 575 775 752 295 295 656 557 863 748 787 603 787 695 635 611 732 684 989 685 611 685 390 337 390 838 500 500 613 635 550 635 615 352 635 634 278 278 579 278 974 634 612 635 635 411 521 392 634 592 818 592 592 525 636 337 636 838 600 636 600 318 636 518 1000 500 500 500 1342 635 400 1070 600 685 600 600 318 318 518 518 590 500 1000 500 1000 521 400 1023 600 525 611 636 401 636 636 636 636 337 500 500 1000 471 612 838 361 1000 500 500 838 401 401 500 636 636 318 500 401 471 612 969 969 969 531 684 684 684 684 684 684 974 698 632 632 632 632 295 295 295 295 775 748 787 787 787 787 787 838 787 732 732 732 732 611 605 630 613 613 613 613 613 613 982 550 615 615 615 615 278 278 278 278 612 634 612 612 612 612 612 838 612 634 634 634 634 592 635 592 ] endobj 19 0 obj << /parenright 20 0 R /hyphen 21 0 R /period 22 0 R /one 23 0 R /four 24 0 R /zero 25 0 R /parenleft 26 0 R /space 27 0 R /six 28 0 R /two 29 0 R /C 30 0 R /B 31 0 R /E 32 0 R /G 33 0 R /M 34 0 R /L 35 0 R /five 36 0 R /e 37 0 R /i 38 0 R /m 39 0 R /s 40 0 R /t 41 0 R /eight 42 0 R >> endobj 47 0 obj << /Filter /FlateDecode /Length 444 >> stream xœ=SA®+1ÛÏ)¸ÀH@ÎÓ§·ê¿ÿöÛ0ó¤V¦„‚m’5L†Ø‘Û4$vˆ»É^LéÙò4¢8;åsé^â:ä‹è JaÛMŸ“5™ˆRlœjmÚø¹ÌVgPW“•Î Œ1G­Y£ö £73G¾'˜a¾ûÁEçˆn#Ë£¢îB¶j£qŒRrÚI?2«)A¹!h™¤s3˜>LçÆ¯šôFûßf8ñ<ȳì<¬˜{PXðÇ”5ÛËU?¨˜p6?W€=£àÿ° PúOßÛpxðÏUG âÄ@ï™ëAêr D'pK§ç Åãú=”ú}kûáYI€epj‚©˜3¡» _pŸn„Ó?p‚v Zî…8fF_D§ÏöèZðP§c7؇—U=ìO¡ –s.ü.“`Áª4|e!Õì΀ôíuŸ(r&6Ž¥ÀìÙ; Ž‹¹Z: ƒÈº!˜w£ìîç>vsÃ=`¤`Kø²yf?¦ï•ŽEâs¸'òáUá5š¬÷U>ÈuwµU~·õSFÖË|ŸïçúýL=¸. endstream endobj 48 0 obj << /Filter /FlateDecode /Length 550 >> stream xœE“˱\1D÷7 ˜*úÆ3.¯žóßú4š±W @üº-­Ù+Ó^~Òúqë=ì—?¯è×öçye»êÛû«4{ãtÔ9ìeàŒv•÷óQ\©Æ´ÉÀQû¶\È<Öå¡âûñ1,cØÚ±$ÀgX޼r¥bÐzsS®îÓœv$ñøµœI@ÚžüP#kVЉ ‰±,¶Š•Òlt Âú)Aw«”Ÿ'G))?ÍÑ~»ÄS¡D}#»/ëÉŠ4Ë©Y]³î•xŒÞ¦)ád“Cõaû=â … ’ÌWÓ´¯^É ZÖÂPÐ^B\T ¡åúàI]/zåWWdÄ–ñaåš_žúþÚ¶lÀv•åå}U½¢Ø€˜_w ®Ô,38;ª#qæ+åýÿ†~ˆÿƒcŠR+Þ¤ûžµ Ø :„QNÄñv©È:C4æn€õ:‚<¢†€æ…}hS{ ÚÏRàJÆõ u1†"¼ðÀÓV±TMz™”Y4ñq:­äZî±e|,MÕïMå)ëTéK·0¼úÓQ Ü{‚ År#–6l1ßéߥزH®…ݾŸß\ÈÞ} endstream endobj 49 0 obj << /Filter /FlateDecode /Length 402 >> stream xœ5SA–%!Û×)rA@=Ïï׫?÷ßN‚Õ›±LBÄÜ×gBí‰{¢`ÿ:&ô݈ w|ž8ðBòÐA:¦±–9‘…™¨¡ïç1[J,“+Cå㈀G*ó°> stream xœMRKŽ,1Û×)¸@K$çéѬúÝûl’–fQ2ÅטÄrQ‰— ©Ü’püŒÇLå5Tþ=cª¤¥|žá!‰¿Î% ï'Vè’a 9èNp#Z.‰¢*¸Ó0d Ô³ÊÞãøÀ:4”˜é†êÚÌ1ô®„'»çAír0¹kÁŇ_r.´Ìáñ ä>äg;e/ L[iq5ÅÇrÝA ¬iVÑB›D>pöš $fHÔ<2¤~u ¿ÂèUF¿Ò@x¹@g–wdöŠAõе˜¹´åDõB—ô–'²®tÕJW_UyITÔÎɨ(?8û7ËÒc‘Λw枘8ü_¤¨ÙÏãÓò¾F‰Ý7d³‘Ái!ÇnÌnî}\ïç÷?Vox, endstream endobj 45 0 obj << /FontMatrix [ 0.001 0 0 0.001 0 0 ] /Name /Cmmi10 /FontBBox [ -35 -250 1048 750 ] /Encoding << /Differences [ 84 /T 86 /V 112 /p 185 /mu ] /Type /Encoding >> /BaseFont /Cmmi10 /Type /Font /CharProcs 46 0 R /Subtype /Type3 /FontDescriptor 44 0 R /Widths 43 0 R /LastChar 255 /FirstChar 0 >> endobj 44 0 obj << /FontName /Cmmi10 /Descent -215 /FontBBox [ -35 -250 1048 750 ] /CapHeight 706 /Ascent 706 /MaxWidth 1000 /StemV 0 /Flags 32 /XHeight 443 /ItalicAngle 0 /Type /FontDescriptor >> endobj 43 0 obj [ 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 0 622 466 591 828 517 362 654 1000 1000 1000 1000 277 277 500 500 500 500 500 500 500 500 500 500 500 500 277 277 777 500 777 500 530 750 758 714 827 738 643 786 831 439 554 849 680 970 803 762 642 790 759 613 584 682 583 944 828 580 682 388 388 388 1000 1000 416 528 429 432 520 465 489 477 576 344 411 520 298 878 600 484 503 446 451 468 361 572 484 715 571 490 465 322 384 636 500 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 0 615 833 762 694 742 831 779 583 666 612 750 750 772 639 565 517 444 405 437 496 469 353 750 583 602 494 437 570 517 571 437 540 595 625 651 277 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 ] endobj 46 0 obj << /mu 47 0 R /p 48 0 R /T 49 0 R /V 50 0 R >> endobj 6 0 obj << /F1 18 0 R /F2 45 0 R >> endobj 7 0 obj << /A1 << /CA 0.2 /Type /ExtGState /ca 0.2 >> >> endobj 8 0 obj << >> endobj 9 0 obj << /M2 14 0 R /M1 13 0 R /M3 15 0 R /M0 12 0 R >> endobj 14 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.5 -6.5 0.5 0.5 ] >> stream xœ3P0PÈb]3…®`.ËÔ endstream endobj 13 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -6.5 -0.5 0.5 0.5 ] >> stream xœ3P0PÈUÐ5R9\Á\áÔ endstream endobj 15 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -6.5 -0.5 0.5 0.5 ] >> stream xœ3P0PÈUÐ5R9\Á\áÔ endstream endobj 12 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.5 -6.5 0.5 0.5 ] >> stream xœ3P0PÈb]3…®`.ËÔ endstream endobj xref 0 51 0000000000 65535 n 0000000016 00000 n 0000000065 00000 n 0000000216 00000 n 0000000275 00000 n 0000000511 00000 n 0000033564 00000 n 0000033607 00000 n 0000033671 00000 n 0000033692 00000 n 0000000382 00000 n 0000022230 00000 n 0000034210 00000 n 0000033908 00000 n 0000033757 00000 n 0000034059 00000 n 0000028608 00000 n 0000028393 00000 n 0000027911 00000 n 0000029661 00000 n 0000022252 00000 n 0000022474 00000 n 0000022598 00000 n 0000022719 00000 n 0000022871 00000 n 0000023033 00000 n 0000023316 00000 n 0000023536 00000 n 0000023625 00000 n 0000024015 00000 n 0000024336 00000 n 0000024641 00000 n 0000024973 00000 n 0000025124 00000 n 0000025441 00000 n 0000025600 00000 n 0000025731 00000 n 0000026051 00000 n 0000026369 00000 n 0000026509 00000 n 0000026837 00000 n 0000027242 00000 n 0000027446 00000 n 0000032455 00000 n 0000032258 00000 n 0000031949 00000 n 0000033501 00000 n 0000029963 00000 n 0000030480 00000 n 0000031103 00000 n 0000031578 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 51 >> startxref 34361 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_erp_plot.png000066400000000000000000003015611323370031300211530ustar00rootroot00000000000000‰PNG  IHDRôzïlª"sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ .ü€– IDATxÚì½y”\gu/ú;C]ÕÕsKjÍ3–'y”Ä13Ƙ`'8VîÊ{7ð¸‹,ÞÍJx°|!, —ñ0° 6`°åI¶,K¶æY­V«ç®ê®y<ãûckë;uºªº[ê–[òÙ,-ÜÝ5œóïÛÃoÿöÞ’mÛ6<ñäu”Ÿþô§Ø¶m®¿þzüâ¿@GG¶nÝŠ;wâ]ïzþìÏþÌ[$O<ñÄ“iDõ–À“×St]‡mÛøÆ7¾¿ßÇ{ Ÿþô§që­·âÖ[o…®ëÞ"yâ‰'žxÝ“…$š¦a||‘Hår†a ãæ›o†ßïG¡P@*•²eË‘HÞÂyâ‰'žxÝ“…$ÇŽî]»°ÿ~Üwß}xæ™gðö·¿×]w`ß¾}X¾|9ÚÚÚkÖ¬ñÍO<ñd†"{KàÉÅ’`0ˆÖÖV,^¼7Ýtb±žþùså•Wpå•W¢©©É[,O<ñÄÏ {²Peݺu8zô(n¼ñFÀ«¯¾z. ×u»ví›ßüfo¡<ñÄO<ƒîÉBÓ4qâÄ ,^¼ccc(—˸í¶ÛårGŵ×^ë-”'žxâÉyˆ—C÷ä¢ÉÀÀJ¥Ž=ŠÉÉIüó?ÿ3ÚÚÚðÄO`ß¾}ˆD"øÑ~„÷¾÷½Xµj•·`žxâ‰'³É«C÷äbÉïÿ{ìÞ½Ÿÿüç½ÅðÄO<™cñ wO.ŠŒáG?ú&&&L&½ñÄO<ñ"tO.E1M…B’$¡©© ²ìù’žxâ‰'žA÷ÄO<ñÄOªÄ “<ñÄO<ñä2åîɼÈÐÐ~øa$“IÜvÛmx×»ÞI’¼…ñÄO<ñ"tO.%ùÄ'>%K–àÃþ0¾ùÍoâ™gžñÅO<ñÄ3èž\j¢ª*Ö­[‡Õ«W£§§Ç›šæ‰'žx2ßz×[OæJ˜_)I>ô¡áK_ú¢Ñ(`Ë–-U¯Ç /¼pîgI’°yófo ‹'žx≡{òzÊ÷¿ÿ}<øàƒøò—¿Œb±ˆ‡~ÿøÿˆ/ùËèééÁ£>Zõúr¹Œááa ahhÇÇüco!=ñÄO¼Ý“×Sî¾ûnÜu×]ðù|( ¨T*ذa:;;±qãFôöö¶ísĸ+Và3Ÿù̹÷§R)|ýë_÷ÒO<ñÄ3èž¼ž‹Å‹ÅÎý|Ûm·áïÿþïÑÚÚŠÓ§O㡇òXîžxâ‰'žA÷äR“Ïþ󘘘€aˆF£hkkóÅO<ñÄ3èž\jÐÓÓã-„'žxâÉEç‰'žxòF¯Ë·gÐ=ñÄO<¹ db°,o<ƒî‰'žxâÉ%-}}€×àÉ3èžxâ‰'ž\¢iÀè(`šÞZxÝO<ñÄ“KVòy2è†á­…gÐ=ñÄO<¹d%&'=ÈÝ3èžxâ‰'ž\Ò’H!®TòÖÂ3èžxâÉe-¦ ‹Þ:\ŽbY@<„B@.ç­‡gÐ=¹¬Å¶½Õ7º”ËÀð°·—«AŸœü~Ïi»ÌÅëç ÉŠœu:R,ñÈ#`Ïž=‡Ãøô§?®®.o­ªT*Ë®[ç­Åå&¦I‘¹,…‚·žA÷ä²–‘ µuN úC=]×ñ©O} š¦!xë¼E×TŠoˆÎå%ù<=_r¿ìŃÜßèbY@ÿœzî•JO<ñÖ®]‹ßýîwˆÇãU“ØæÔyâÜH¹ $“^YÓå(©ý¿ÏGÆÝ«E÷"tO.cE>8,^|Ac;rðèííÅ¡C‡ðÖ·¾_ûÚ×P©Tðö·¿ýÜkΜ9ƒG}ôÜÏÅó1Ì'O§Oò''zrþR*‰HÎçóÖãr’‰ z¦>=g]§›'žA÷ä2“|žjT³Ù ú˜ï|ç;ؽ{7V®\‰xápûØÇ°qãFd2<õÔS¸óÎ;ÏÍDçilì  Îü 8|èíV­Þô&*¾)韦á°·—‹˜&q#rz‹E2èÁ ·6žA÷䲓D‚z6{AùÓ?ÿó?Ç=÷ÜEQF±fÍ$ ¬\¹ÃÃÃhoo¯zý¢E‹ðÁ~ðÜÏ©T _ÿú×gþ…““”*‡gŸzz€ù€õß(R(¢÷\^b¹t¶ Ã{ÆžA÷䲕±1:ìùü}LSSšššÎýüÅ/~_ùÊW !Ë2zè¡sÑùœÈÉ“ÀÞ½@SpíµÀsÏwÝåÁÅç+¥9tå²·—“T*D„cg×4½gìtO.[ï ú—³Ü~ûíØ²e ,Ë‚¢(Pæ2g§iÀñã”8_I¥ª\E¹`4ÎÏ {²%™¤hW–)¯¦i—Æu:¨ª81>NŒ$/¾xéÜÇB†ÚýþÙ+ûR‰-t¹TŽtú z2YÍhW¯Ý3è—¹2{£F££¤Ä%éÒâJ%*U3 QfÕ×Gϰ©‰îéÌïdÏFØ™;ŸÖ é4=….CC—fd:>N©¥óub&'Éù=§ñer÷ úe,©å^߈½ÌGFè°3$w)´…Ž]øÌé={½¹ÔÞ‰­ñùšF—³K£$-|ÇÆcá{ý‚<÷'ž šæ7R¤®iä½3ÙF’¾ç®ëÀ@K )ªr™±xœ EÛ&å5쪺ðs¡É$o¿Ÿ®•;^AÎ0È(ù|”g¿”ž¥i¾~-95MôÙ8u†A$°°'µår´×£Q`÷n:ó—‚è:9­•Êùô|žž‘›W©,Ü(øBR žÌ¡A èºX¼ti¥BÑE,F‘ÝsÏQ³’7‚Q§ƒÎ‡ÝïÍe¢Ø69\ŠBÿHеwu‘s’ÍŠè²¹8rdöÑæë)½½´÷^áR5YðûL F>OiŽ…Ì[H&Éa iϼðÂwF¼(Â}× ãüör2YmÌÙáÕuzÎ ñŒ÷õ‘A÷Æ9¿Î}hxê)à Ã}) y(éÐH’8ìO=uùC>¶MQгÅ'ô…švÈç©ö<¥½Åé‚•+é~FG)³m_*ä¸|ؾxé¥×GÑrÉš,“™é5LNÒ³iý¢‘D¯€ö|2 ìÜy~×{1›ïd2°OÞÛMˆcvûBm.cšÄ‘I§§G«¼RÉy4è–E›¯¹™öo lÛFj!{ZnÃÍî±Ç. þBdtTvÛ¦ÿ^È“˜Ž¡ëSU‚S)¹v-ö±1RXìH67û÷_ü6ލf#û÷“QM¥(Çûz8lÐ-kæ†nx˜ ¥ª’X¨Žðð°è].IÄÁ8v xíµÙ£R• / YPUúw>¥kNƒnÛ”O窞…ˆ^e³ô/—›^9âõy3è¶MJÁï§*&Oë·¿]Ø5ÁN£æ4ê¶M‘úåÚ5«X¤ƒÃÊxS¹¼0I:Méž×^.ÓïB! »èì¤Üz¹,˜úÁ ˜‹md2™Ù}g:M=%'d×®‹_'œË‰s`Y3ß÷##¢G¸ßOåk ÍçÒ-'ô,ËTâxð ó×^°üLÖjttþï“ÓJ¡]ïlù-šFïáçjšÂa—å…YÑ28(rüœbænx}#ôRIU%•H,\¶±¦QT Mý[$B^ø¾}—çìàx\@Ó¬ð8¯6‡©’J¥‚/~ñ‹øÔ§>uaŠíÀÑø„#Ê\Ž `{;ô‰ z¦NdÅç#Oþb™ÁAÊõÏôܼú*]·´m"n]Ì}çfBÏ$zc¥ÊNa(D€…¦dóyºw·Â@€þMLPIÛÓOÓºOçLe2äÈÌ7©Ì4ÉÉèÚg[EP(ˆ¶±ü¼ÊeA$]hÍe ƒ¦&:ÇÖ7Ÿ'4Ë3èó¡—ËÕ^°$‘a_¨ŒRÊFÂ)’DD¹W_½ü𔨶ˆ¬Ø±I§…1ŸCEõì³Ï¢¿¿'Nœ¸°ˆ÷Ð!:è,©]g[EèÝݤÀr91 ÷œ>}ñJªl›¾ïĉ™9FÉ$Ý[$"~×ÜL‘ãÅDÊea˜gÊtÏf««$…îg¡E~̘®Õß_Ui´Gvíš¾IÎÄ92óÍ0MÚÏ\µ‘ËÍîl2†Ÿ«®ÓþÔ4ú¼…VÑR,’^ §Ïñçó ?{ItÓ¬ ­G"db‰D*ÕXéª*û矿4Z[ÎÆF„• 9RȉD<òî¿ÿþ 3{öbâzyË"ÃašÂ wu‘ÂÊŒŒ®ƒübH©DèGÓ=‡Ý»i9£GY¦ß½òÊÅKW9#rUÙ§keC)ËÂY\HÂ݉¢PªMU§¿þñqZ¯ùNdžp¬T•¾s6yïÑQaÌ .£ûÔ4Á—¹Pçu®/M£ý$Ë„LffÄ9Ï _€‡_ þðû…‚[h288ýA‡éPmÛvùt/Ò4:<ªJ‚Q îé~žÏʶmX–ûìAÿÊW¾‚{î¹K–,©sâñø¹µjOS)‘_fÑuq˜;:È wtä;0 "EV8ÁàÅkM:1AgÁç£ki$ÃÃDÌjn®ï_²1Ûèˆ ³Ï7=Q̲èúœ¨ #"½½ GѥΜH#a¾‘#Å¥`ó Ys„Í¥¥†1sg;™¤&:LtöêŸ Ç»×Í¥ô÷ }‘s¯åìë:¿ŸŒæêÕówí™ÌT}šÍÒ>o$¼·J¥êûf¨]×陟¯A7MB-ׯ'gz¶{­–þ,—IÇò~jÔž–¹Œ¾y2ÝIˆ«¥ 7.œ9Õ\"ÓÁ‰Ç©ž¹–â”eÁ>+¯œÊŒ¿”dtTÈtZôrçŽRçiüî¿ÿ~|ô£…¢(Èd2øÄ'>Ó4¡ë:,Ë‚áJo\qÅøæ7¿éð3ÒøÞ÷¾W?>Õäî>=—¶6R‹‘RÈdè¿''ɨ(Š ïLé™:‰Œú¨*¼J¥öž!Ã×ÈÉå¼n¡0¿Ñ5.W Å(Ýzçµ\¦unoŸêˆ”Jt¶‚A/§¶F"I´ùL¨ØùDá--tfÝ÷šÉˆó ªõˆ¹DÚç»´G]R½QT ’+—k3Ê_ᱡᰠW Ë—×öÌ™µÿüót ¯¹f~Ã|FcCCd 4M ž¶ÆJë<$è@8B¡î»ï>@__vïÞ·½ímU¯W‡¢ÕÝÞö©SSQVDI²1oj"¦»idºt)ÝG%ÌðÏgV*ÑwG£¤H5Åe˦*Å#Gĸ×FÆ…'ʹà\tgmrK‹ø]=iÄ0V:KK—¾þûÝY®Æ]Ò¦CØ…Þ×ÓSû¾ù5óiÐm›®ÁéÈù|Óôxœ8'>_uÐaÛt6¸Š‚Û ÏI)©R{;­ÅlÛ&”Ó²€w¿»ú{‡†ªÏ“ cjðă™ oj\ ™ü8›­ÿ`ùá\ÈLß¹ž2ÆJ? 24TŸ(çó‘×þâ‹_ ðjÈx\DµÒ$ ÃÏ‘¬^½¿øÅ/ÎO¡¹+†‡9ïßÖF º¥… z ª*d™^ÇÝÏæ›Ä4>.&–I­ñ©SS c:M‘J=¸ÝÍ7!“Ñ5vzfÒt„ÓUµ$:"l©4·çj|\è¥Lff$CŸ¯~~x|œöó æ òežë%.1m´ÊeQvçœø:ù¼s”>ƒhÛT}‘N26Ûû¯T•!ê|ÎÎü9?ƒb±öóâ}Z©xú¼tÛy¥F^ïB*_ ëM¥DÔÆyäúd U%XèÕW©ô¥fÔ3¡À÷ÎÆƒsk¯wnŠëÉÝP³aгátIK Ý CïÍÍä”Y=Oæ Øöü–q¹š“‡R_j·R:zTœ ÷g¸¿ß/†ŸÌg„Î —×J×ëŸÓ¬î¼æ–@€œ±Ù"=ù<ð»ßÍcd€C!º§drfŸ-˵{‰3(ñæ«DOÓDWÄJ…þ±A¯…ŒØ6ñ-ª ¤ÎµpÞŸ…Ùôñqа[[EiãlôÄÐ ²;&ú/ärä@9Ï:#\µ :—ïéºgÐçÅ ›&mìFp¦ßO^ûÅ®dïÖý»xœ6K±Xi°Qg£PÏ9á¶¢‹==W2<,c A:ï‹Ñëí¨hVwÈ×V(Ð3éÚÚȰ÷ôˆ’1I¢g˜ËÑÏg}´mÓþv9VÀN¶®®Ü^+õ”NO5‚ó í2"Ã;ø¼Øv}eY*‰†'µ„×}6uô¦Iƒ‘Nœ˜»²·rY\'÷WÈf§gFs¶Û˜pE§Jt}þöT¹,­rY=Yg¹%•¢&X|j'Fâ$iö-†A"Yލ¦ÍÜI¶,z¶‘ˆèñ±kåúÇÇE³÷wÖú|fÿÏçú¿¡ :×KNgÐ''/nùše©êðáj¸5•¢Ÿs¹Úi¿Ÿî'‘¨ï€pú|GOn£q¡ïçTC*5Qáh žg<—2]6G%µ].GÏ6#Ã(I"Ǽd ½Ÿ‹Ï' âlöžaÐ÷Ì´4©P {r+SY®+:0@Ÿé>+š&ÆF:IŅ#Ì×Ãѹe5@’Ï ' ‘Qœé8UË"(÷äIrÒ¦+÷›£ÂÍ®x/9k»¡‰•ÊTçŠù NÇe¾Ò!Îïá|1#hµöqo¯HÖsX×±AŸÍ¸ä¾>‚ÅÝùö™ž©r™ž+§™¸¡Ïþ@] ްsÖr*èb9ôe¡Oç©q‰ÁØØÅ»³TŠÏ> <ù$±»9ràÍP/Èõ¨<@žÉ}±P‡ÑÑ «»,—E«ÎZ÷ÎyÔzžñ\¢&'O6FJ¥© p6²­­BA´´ˆtˆÏ'ºû9ûBOí™cǨïÀý5w™‰ð¾v¹`!“öïQŠS¸=23¬ç¦Xœ¿çÁ3Ø K]'³Õk‰³Ýk#ƒ>::3¤gt”Ȧ­­ä ŽÎ ßÁÙrš[ÛªêôˆDݯãèÞ9nx¾ÚZ;î¡óypïc\ê‘Û˜wŸ'Ë‚ë1“Á4šFS¹§üù GS+¡¸¥í¡C"¸°m:ƒ™ }W­3›J‰k.¼Zôy‰Ð™¨×_à`HBCtÆ#ê:)ûÑQàç?'ã~ì˜P^õXÆ’Dnd¤~´z1Dz1˜iðzN©Ô8ú6ŒÙ“ef+Ù,âFÑo*5=Ñu1îÖ¶é¹²‹Dèyµ·»zÿ~a…ÞÓÈ ›&u~ö3Š8÷=00ýóµ,z}-’[8L{¯P óá†åYa3bÃÉ KQæ7áˆOQc™p=ƒÞˆç>Ó)ütš†£p^š‰ªs| $¤P Ïv¦›¦»~wð‘LV4U_ƒÎ÷t]8Ú~¿heë<+ñxýgŸÁ×ÎK£œ¼ó½{öгt¦‰f[sútm7!TMUÅ0šÁA‘bp#ÌŸaDË9]Ñ“92èœ×ä¶—ýýµ#[®Gwo ù0ˆ'Nó‹ÑŽFÉ=J|­ül-TÐÔºFÎË^Œ]Ó(¯¿}ûùAFFD‡«z *—»\¨œ9Cpìt­×hšd%I°#a£Q1ÆóºëÈðóRŽHŠÅúϪR!£P¤ÈóùéaI§Y+Bb¸w|œrç\óï\ÓÑQ‘—e2Ó€ÛöüA»Î#Üôƒó™µœ&šM×aq&yôJ…œ¨|^8C -÷÷_8òÀFާÇ9øéÖ3˜jЉj1_Làã1Á¼gyî¼sʘmStî÷×GM,«ö¹å3ÑHÿ¦R„Rµ´L=Ÿ•Êô©3vX®g2›;г,ÒOÜ;‚_ãÞƒš&*¦^xA”Îy2‡›Pp·)Ë"/k|¼z±yÂÏä$ýÿÀ•Y<ö)µ¹ônwí"%áTžŠB³¹Yx¨Ó‰ßOJ¦ž'^ ž)•DC•ƒÏï;¹‹Ùt|‡z-&''/ !àÏ>yRtÚª'Lds*göÚ³Yz¶á°¸@@4ÒXº”ºiíÛGJ‡aäF¨OšsÖ†;'Ñ5εóûÜóÐ}>r$kµyÍç§3ƒÁj¤Ë盿HáXgi”aˆRÓZ÷šÍVôz)š`°ñ`£S§HÑóš°!“¤ 7èÅ"¿Ÿ®ÍÙ$Ç竆më9$ÎöÁ_µsÍÁóL¦»®.àrÀ¾>Òýióçår†gÕ½™ÙžÍ’Žšë2GÏ ;¼jî4Æ„±d’ŒofH>û,ðë_O¬Ê)¹tZ@ÒÌZoj0-?‹æfRpõÕ„pà Î7Š"j•àpÚe:äÃé Õ‘[ @NŒ{D)W[¸‰L\VÄ×Ë|Žù@‚Ø 3ë™;²î½’LŠsî¼ßx|êkyÐI-ƒaY´Ÿœ‘%³Ðu¾çBÒ ™Œ ‚‹Õχ׷/¡yÎåólq¿_”@²á™ët;ïœ~ྌ2äóbM''E·ÇFèž;µè\ƒzúk``ª³àDʸºi:¾ÏW0Mz¾\ò7>NÆýôiú™\ñ÷ðÌvçþaÒn.Gë4Ç=3<ƒÎš ÓØƒSk››ir;ÆÖV¡Ü÷î½ðhwpE½V¥€Þ^r"~ö3àÿoà»ß­ßLB–ÅX÷æµí‹S:‘HRaÐZÍÆ‘H&éÞ¹žÕ¹Û·ßÿ>Õ…2äêvpŠEa”öí;ÿçÔ×'œ¤zFŠ;Øñ„)õÊJ$—ºS‘E£"b¿újúŽ={Ä:5òæeªe6bk3å$õ$“Õ£9JtçØ¹4ª^¥Åä¤èî5]DéÞ“œwå´zïå)‰¼/x}¾Ú„£‘‘©èN:-ZÔº z=g9“!ÃàtfŠE‘ºcöBÒ:œ2«Õ#ƒ ]õÖ…Ñv¤+1À†{$°ñ™ë!-¥’ЙœtNCä¦*¶MzlºÔa-G•Z×°sçT”“Ÿs(DŸË×Òè|pÓ6Î<–çÑsè~§«œ:—?#“¡½9ÓfAžAŸ%¼Å½ Ýž $UG{~?)^w½d[” Ú4ØÉ‘Hm%iÛDÆúú×ÿüO`ÇòvW®¤÷þô§õYølLOŸ˜srómÐ9ÏŠ4#§ehhæŸÁÊ‘=~Ó¤Hÿ[ߢ¨»R!Ošº3 D볓óéúÇlÜ`PäÂë)4ŽèÐ;£Çl–Ãp¸ú9·¶Šœi8 \{-)@ãÑGëy…îgh¨:ºœoƒÎ<8… Ët0^yefšØKæÒ¤ñqàÿüà7¿!çêƒn¾YDñ\Æž1ÃílX}>QAÐ@^|ñE|üãÇý÷ßûï¿·m£ï`˜µÞLéRI4ñ°¬j¥Ï{s3íçßœýÎ% ؼ™Þ¿ýT‚S‰Ö3è<±«ÞžsŒlV :N‡Å '²BžŽÇÁ½»¹&|¦Š«T%ެ„'g¶–3ÎMRxÝLS(Sç¹.— 5pF„\^äó‰NijöV(7 IDAT¢½ç4Ì–EA§±`ÃÒ×'ÐFm˜§C³œ#ëé¦é&Ž…Ã"eÀㆹœ`pîÓ!¼ÆÜ‘Ÿ ?vðFG—Þòºòþ,— ]s~ž›[Â÷ºgO5ßÃ0èûœ¤N®oD d'’¿§VwÄZåœÂu·læ.qüÜ2¯¹Ìœôér“Š2sâB8Lìå—gï™óp•F/²Y: ~?MLki$Œ5k€»î¢{ùÕ¯ê“E4”?¿¹È³õ*™ ç< á0Eí3!©qËJ†é^|‘ÖáÎ;{﮸XµŠþÆÑçªøz‡‡E„É-M§ASV¯^Ï}îsx衇pï½÷âÿý§B™a]†4k)®e;’¶íÚzssõðE‹}9q‚¾Ç5»ÅIjs#LŠRßÉs–ãØ¶p ˜ZKÑó}ϤʂaQþìÙ f~?œp˜žÙèèTxÒÙÇï—«ÜÆ0™¬îèåæ:ð¹pž]NY8?gb‚>Ëék¹dRôà‰ˆ³Õ'O =à¬}æ~N‡ibB4šr~f”ó¸NnwÊ‚JE¤Fæ’›J †»{/ò€¡dRK§sæù™årDÌt"GºNU?Û¶¿ý-”{ŒþæÜ×LpvïYN1Õ“Þ^ZG·`ÇèÉ' -­Õq“;Y:ßë>ÇLŽ«'Ó ò zEŸnÔ"Ã^ !^ôh”"‰FìØz×10P~â)\<¢¯–×~Ådä’Ià‘GêoŽ''é¾fÓ\†Îlì$“S†$‘¢®uÕ2V…‚¨…¤{½å±^Ýݤ¸å­“4Ĩ†³ÓT0H nÉP€%K–`Íš5hiiAK,³X¬ŽÊ¸ Z-…æ,Ÿrt6Þî=£K9ý³y3)„ÞÞúì}§!®çh:ÉN´`pPÀˆ\ã¯("¨×éªVîܱvU¿ãf&3mâáÌï:·Äu+<ŽÔ8…Ä×áfë ‚–ÓécŠÓÎ5f+e&ù‹Bö)§~ØíüÓMV¸Ÿ¯óÑ£ÕÆGUYôôirP¹%4_;_Óä¤0¤~¿T˜é>—kйBÃéà1yl`€tätÓ+Ï6›%çŠÉ¨Œ$Ž’Ó;0@:R’„^`Â,³Ôk¡WõMFЏžœß¯ë¤·~òJ³V*ԸƉ°³áìfgYÂÙwôz¨z}ƒ‘æ.Ì 3¡†Y‰µÄGw/z"!`cÇìD©DŸS¯‹™Çù<5᜿û:¯¹xç;Iyýæ7õaefó³1˜)AMÓnìí¹àláŽàfµ‰n~´V›6U¿&ººèµÜ(ˆë¶kõ‡éð:$š“ ÁzõUX/¿ Û¡ÔÇÆÆð?>ÿy|öŽ;täÐtEÁÄ‘#Âðð0F¹t‘›Ê8»r¹ z$2•° Ñ}øýbï¬^MÏ›‰|µ†âëEÌÜƽ‰jÂGVN#Z‹xÅ5Ænéz0y©VC‘é"<÷çHÒT¢™=s®%—:9Ó.ÎÖÎZi÷>r–«ògò³­TÈà:á\>C<hhˆöS0HÎäl€0ë›÷³ßÄÞ½S‰¯LÎâtÖÄ„è(ÉÆ'©†¸ôæ²[—‚±ñv:}¡óDÁZV-ÇÙaNÓ("g‡Æ²èYD£âL±³eYtï\®ç>‹Üì¦ä>6&Ò6|/©Kãr™ÒC3›?ínÊã\ŸS§µp¢µÖ™áNV–ÎIcõî—1× ·¶Šï=sظ‘ŠB¡©aÃËÐu>OûnÕ*úÿBajc“z üØ1aØà0ŸË¤®¼²>ò ÑóI§ÅhÞ©\g:„ÅzÓçf#‰­E 0Õ`³‘ãýâäŒ4B?ÈeÑ`b©»FßùLFGEÏ·pã®;îym§.c$2<‹JøÞ÷„î»åZ3M£Àॗ€µkéYsôÏ#t÷ØÔFÍml{î ‹—}„ÎägkÁz¹ÀZž6CÎzF&æÌ†I=4Tß òÈåès—/§×ú|µY&’Øš5”o®ÿ3¬Z.ÏM`rZ>?3UÓDÄ•NW{ÃN¦i#rRDׂÏxRG•é´ˆÎk94>AÃ",_½_½ï>üÇ'?‰ÛV­ÂàÃã³ûþøúëqûâÅȪ*lG´Ú³b>ýÑâ;ßú¾÷½ïáßÿýßÅv×:ó^Ëç‰å¯(µ±æfZ«PH<Ûöva4jÁ£œ?uCÀÜüÂý9¥Ó§…AãŽîk¶,NñŒww·8€*FGi;afVâ< v&ûŒh-Ç:¯Þ/ÅâT'•)ggÚ†?·Q‡DîAÁ×êl{ìØÔçÆFebBÜ/GÅ ‰ÏDÊer²8úwæÏè{µrv^"!ŠS§DËQvàXGñZÎUǸS§è\±îÜ'Nb\,6}þœ×–[È2š—LŠ fº»uÆð°@IÜ2 a¤9 K2)zp½r-´ÅÙÙ‹KîÜŽçÄ)²¶6úf";!wN[M·Ï¸ï{­a\vL˜ï6èì€;Ïl<^coDêã÷ó{9Ï<2B{ÞÝ"—…D‚ÐŒ–‘GçRÑ™À¦œa§ƒsÜEæŒ*L×ußÃ%ZœBpòœO/¼Pá£áp5¯ˆ#`'bÓÞ>=RÃFl–U%ãÊ\ v¼¸®û̺/¿êŒÇ‰4Ì|œBa*o‚õV6+t£®Ó¾îêÖ¯ëÈPüš5Àºu”ásÆdPvÙ°³cÒÖFŸ[ÏÑå.Œ^„> á<ëtÎ ß9ßË.—·q” Õï2å–\®~#w†SUуzÓ&Ñ*4ªõtw“'96F‘z-Oa½™47ÈdH郟:5½‚æ²%'I‰74+×FšXi—J/^L÷UK::ĺs.³V©É åƒ[¶à…Ï?¸ï>|ç¯þ _¼ûn„8'68(ÊRœ,Ö|^¬©[™p^?¥çY+zhn¦µŠDhOY–p:2™Ú­zF€Ç<2Ë— ‚Á ptiaò×·×2pÜ …# w¯Ë¢RMàÈeÍjíËgÅY/ì4’Î#Æt ß#Î&.üŒýÜÙ‰à2^o~RLîó.ˤ¬ÝHwþccÛÓC醹ý~Šº§#‘r“vªájŠS§¼;“ˆŸùָܾX®ÕçN~Óéª|¾±3Á™\Èû¤¯ODÔü3MEòsdƒ¾h4ýýtØAH§éwÃô–µŒy&C¼¢TŠÒXLv¬5ÉppPLKS:;ƒƒÄQâ}dšô=­­ôÚ[n¡ïܾ]DçŒT0´ÎÎ!@÷¢ëõ›Ëp¿yÏ ÏBfZ²ånTÁcòdYÔ4K’ðtC!:x31”õòçlÌ–N&iótta³mR¾cófʹ½ú*Á…µ¾ƒëtÂÐ=3œ9?ØHFGE=-ç„ݰi#ƒÎ¤•þ~:\W^Y ¥º•ðÒ¥¢íf<>5¯|>ðw„b$“ôX¹;£ž¤V«]%Gèl¬kôÖV‘ÿmkpu($šq¸8.¡*•h˜ýËû–¡GîpÈLj^›™œL†¾Çítž9Cuò›7ïÆi]^{MÔ©3ÌZ¯*ÀmСe‘ˆˆVý{žá{×4RôYÏ„ˆÉi4Þ/ªJkë~fº.`SÛ¦g¶r%íé‘‘GÞ¹³±Á,龘WÁQ!Ÿ³L† 55ͬ‚Æ9m‘7Ãz0Xb¨ålŒ?Lm¯ë9ñ§N‰®pNƒÎÝ/y]ëu5¬õ½¬WrDh¯•Jäqºrd„^ã®q¢VO—[þ:aoà{á2dN)©*}7_¦‘öûé:—,¡¿àìm³œŽW©ÐAàžÌ«V‰®Ö=/[FÏk¨nçÉYgΜß!aÆéÄ)@ã6èl°Ü$Ë|žºiнVŠ…áu@k8šwB€nxPQDY–3úá~Ú¬Ôs9ºž¼Å0e#r£¢ƒ3Ê+§Ÿ¦ýwÛmô·Å‹ioîÛ'œ=†ëgbЧ›oÍHט;›Ç¤Óä¨0§€[ï²2u¶Ri =ï1~VnƒÎ{—»ÌuwS”®(dhxlçà 0@õΉ³W~*%öÁñãôûë¯'‡ÁÝèf&÷à,×sê4†ÆÙñ©åP8@û$‰Î{­–¶šFF;¨ï•þ~–q f&6N‹t&zzH8 œÝz†œ ?N©;î (»«‹ÞË÷âl®S, §çôõÑûØ)Ô4z\-Ãü“[o¥5ؾ]8{|þÙÖ0G¤»[œ ÷™æ9ç‰.¾±sè ¾ò ÕööÖ>0NŽD¥B‡ùðaY°·ç4\"Pî/ͤ£¾>«1¡‹sÑmmdzzÄììl<4ÞñºÞŸýŒîÓyx§›äå„Û¹ž8›¥kv:µÓ䤈¨ù€3AŠM#t€ë{{{ÉP„äTW¬×î”E‹·YÊ\‹:9Ik888»R"fÌrU7k)«zºKT6Î^Î{÷?ü!Õ½¯YC(“Ý Šß«ªh6 xÐý¬˜é]«ª‚¯¡èx\@Öü·zýØFÔýÛ&£=2BiŽ,ý~2<ÎÉv¬Äez¢(·œÍaxò÷àÉa eòþc‡ËmÐ¥?ŒvÍDQ:Û"«*7lÍPöÄ„˜gÒk¹|ͲȼôRí}Ç­^ý`x–§•9Cû:£}ÏÙL$Óçjݼåÿæ~ïÏ> <ÿ<íÃ`žÍSõc&#“üܸ²…›íð$:'Ï©ÝåsœªaýgÛ´‘£¡!:“îPo/Ô_þøö·ï|‡ÐÉ-[€n}(ÚÚ躊ÅjÔ†Dæ‹BÆÛ6ŠÖ˜I„>4$6#wœâ|u=ØV|?L†c¨¸‘AÏçÅ4£+¯°f @Ñ “|"åYМÃJ$DëY.§žY:„YÊ\Öã,ǪTDOmMƒ ÂèŒiRdòóŸÔ§(À{ÞC-zc1A¤t wGc…Éù9žmîlé\çzerŒˆ0ª1<,ÊqÜùw'jå.—qŽzåˆt×.BD®¾ºZ©nØ@×½oŸËùäé˜î““"gÙ×Gÿxþ¥gÛÒBÑ×ð° tò>9v¬z¿ê:­#çÈy¿2¿{í¯XQ}Îg:»6ªàažÁoKFð‘GˆþÈ#t½±˜xö ù» &ƘƒÖìH;<çp£™3gä4úŒìÄbôþ+® Ÿë©ëä4ýô§ôÿŒ|nØ@gïÍo®ÞÃ==¢›Ÿ³ßOWãû±c´Ï—,Ñyg§@é/¦gÃNsk« €ê:]Ãø¸ Ë–Ë´Ž--¢ú§áº9Ô3èÓtÎchA&‹‘Ñc6¤3Bçigüðx“ærdxØXq©Öøxcxi|\(Žbk=ÄñqÚ4mm´Aü~Aª`…ÛÓSÝ?Ù}°»º¨Uêõ×ÓAøÉODŠéúÕŸ8!67>a¯ºQfrRöTQÒzµÄl¬Nž¤û^²„Ö€s¿Ñ( §rˆÅ(šàü%GæÎÎ^€PôŒºe‘cP«F—;A1”]©@ÐÄä¿Bœ¦áaàþø‹¿ ÃÇQX#ƒ‰ˆë DÃŒr™¾Ëyø9¢ª53Ú¹oM`ã ‰šiwä½s'ðÔSÕŸç¾Ö={è3·nŠ ¨*í1ÿÊH–ß/:—5rpï¸iJ0Hkªi´Õåº.š¸ðú0!ÐÙ £üi¹q¾—ÓœƒFé9„ÃdxËeÚ?œòhm%Cã,czæ ¸\±\®fà ÑïÖ¬ŸÑÜL÷4Ø:—#§’ }µÐg<è8šli™Z¨(¥; ro¯pyïr;k¿Ÿ )7£rO^ãnh¼'ãqrpä}Áç›QÉ%KÈØ²c÷ì³´žkÖý(ð× |âÀ»ßM¹m7ÿcñbúþTJ8˼_ :~œþ¶y³€þ››éŸ®S”¾fˆÐù™hÊuýàÔOôs£nî¡.žAŸp‰{Åy~÷ÞKŽ'¸† ÃE<}‡áòÖVR2‡‰È3Ë™ˆTONŸžy.W?—96F¯kmsùòjƒ‰œ[Ϩ3„ÿŽwwßMõé§EÔW†Ö4ÚäìɳÇ_(Ð:ðHQwÎyx˜®Õ9Ë©xHC£Ö“Üsž;ÃutT·påˆÜY³lÙ¹Îou»D1‘¥¿_ÙÜÆœs µÈkNbÌÙf+2€fŽF9_}ûí”_v–Îq?ýzÍ~–.œ•8+2V>NÃIЫ%~¿H‘¤R"zª·÷÷²¯¯~Yb*E{}Õ*JƒÔf¿új5Ië~tçD-çz3é”yñ¸0è²–47“ƈçC½¨Ç')ëŸFu˜ÄÊ‘¢Ðóc²ª1Œ©c‘g¡ówÖ:¿\nÄ)¶JEtÔãÉÒ¥äˆ3úÇÑÛÞ½d̹s.¹³¤+—£÷¯ZUÍ«X¶LžF¢ëdzzII$€ïxá…j‡±VN»–®¦ýÄ0þþý¢ß¸s1–Sˆ‹S Äý¸åóð°˜]P/ÿÏ-ps9Á'aኗ_ü‚£­[‰Á>“’8&§†ÃÏçEtΈk2INB(D÷ÓÙ)‚9U¥|97ŠâVÚœ`$—u;;2š&RXMMb¥S˜ïôYˆ³iLÞ ²LPJ[[5‰ÊYn”ÏÓa^´ˆ $2œŸÏD·z>CžÜ±®^D¤ë¨±Aon®ÍpDè72”²LšaÌzð˜°ÃLe]§ÙÔ‡ &+bÜÊÙY“ªiô9ÇO}“¶jEùlü~á »I|Á )SŽìÚÛÅ Šé”·¢¨od„”ÓÀ­ çÅž}– h÷úp¶ªž+• ƒôº‰ ú;óÜ÷ Õ?°±ð¦7UÏ­ç½P¨NQ°QvÂà¼æÓO gGÓèzÂaaøœ“Çví¢õ~ÛÛ¨N÷ر©¹RM#¸}É2,„Ï“ÒØøÖ#Š2RS«ä÷,§‡|>¡+Ѝ‚‡…ÃÃN„³¶»–ãÓHêOæ½Å„8Þw‘}oSôDB;¨ªV·A6 úgž~r’ÖjÍšêïæh}ši8r„ æM„}ä#ä¼ðåǼ™F¨ ë°rY8öÑ(ÁîÌqaäwʆrùrÒ‘ápuDÞÈ©­åèE£ÕÏ.£µ$àÿ˜räŒt4JGpß Ÿ>c|\Ø€3gšxèEÛk׊H›Ïs¹LèT$BÏš‘³]'Ï9ŸNr'—ì±AE§J÷™¨×-Ñ3èÓDè »g³d0œFU‰ŒW7Ê`£Ï5Œ±)¸¶6R‚¬4˜T¯©„ÓÛu¶y¬•‹6 ú|§Èpׂô™ Ó(GÜÜ,š}èzíC­i¤8¸¤f÷nŠÐ8:âëæi^Ü®»59×9™¬žÎùuž˜Uëà±Aio¨j9ÍÍéà<úl&]qiÃÃì´%“¤„ví¢üœs=9çyÖé’r9(δL P»‡7ôzÏ[Q(*àu‘e‘cÍç‘“=vÝQÒK/QÄL`†øœåLüžÉIj>´r%}÷ 7ÐëvíªFUŽ¥õß¼yúÞßÑ(½†•³ðëõ§vôzÊ,ÃÊÎf錭[GßÉùw~Ž|ŒZÍVQºÇ–rY©SÈ2=ëövÁ{`ÒæØXuZ§©i*rÄLg'2qú4ý¼|ùT¨8m\‚Y.“ãÕÙI=Ë¢ë¹çâ õ÷‹zv64xF¼ŸÙyåuÙ½[4›âgÈúïÌ‘ki¡€äÔ)Ñ,i¦ÏS‚î§¾÷½Ôÿ€#dNëÔZ&Ñ.]J÷½h‘ræŒ0îÅ¢¨¬‰FE@ÅÏGÓ1/é nrÔÜ,f:0RäÅÍYK‹èçâTu^ g¹\F"‘¨jg=×R©T01M?úd2‰¢#@;ƒÎps¥BJÀ=|E’È g³µËm˜=ÛÑ!òï““â÷\§ìžÄJ¡·W@Èβ.·°çÎ…œÂðz-8˜ëëEþÜf”YÒµ5—›hÆíÛé3GFDËÄp˜ŒüóÏ“çÿðÃ4'˜û‘s H¥""`§q«¡³×¬(bð l.OsAŽÒÃar~œÑf*œßv*ÕB§;¦6Öp6—I¥`1Ò21!J}܈+õF ­½ž-GÞ<¸…{’³’`ƒî6TGŽÐZ3ùÏÉffÅË<]'gÅ0¨N7¢=½a=W&$qÃ˜ŽŽÚíw3膋ɑ̴ç_·8!ÊzkÃégËÏ“'éç«®|®±æ1µ¬„g«¼ju3dâ#““¢%iW;I¢=ã÷‹çPÖæyî^}}ô¹]]SSE==¢y-áÜòUW ”Œ#ã›n¢½Ä9ëªZgPÓD/ f*rPZZˆ@É¥e\ÞéäutˆˆuõjÚw3ímï÷œ€õúû…Òf6<“Œ‚!Èrñb±wn¿†3j“ IDATöíîÝ‚±ÜßòU7 £¶a²B¢Æx¾ £™F2MˆgCÈUü0­³¥—ÜxƒÏGØnˆq“¥,[BÙPÖ›(cÀXŒÃ‰N¤ YŽï܉“Úr”' ØvzŽ4#^#[ "Sô!3i ­7!U b²B<ÆH.‚ÁL3ÆrM¨J}'awFœ$;'º×ÒB{϶é/[&"ôz¥¡Ì(w:1\j¹n]uTÈäºåËEï÷Zð•W€`å+¯GÊnAÅr›HDÊÆÆ{Ûád•4Æ{sÉ4a¸Ð‚ø@ ¥Ó£°UŸàqcî&Ç.}dH©ƒF vj £ˆµ ºÛ¡li¡ó‹‘ÓÉz£P }´b…Ø÷MMôZŸô1ïÓl–ôFW9ÕšV݃ X$Cï4¸­­ÕC‹ÚÚÄDMA;ÒÁ HC0³ßyαÆs$Ï=÷ŸÇOúS|èCjøº|àxñÅqâÄ R=ç««ã§Ëh3TâqHŠ2•ÀĪ­ ö™ @ÚŒ`²‚4‘À†L ‹nÂáS›Ð$—Ñ-beûJD…yÇÛ![$~@é´ˆJ%ŠöΖ.˜š«bÁôû¡› r?â…0ÆòÄs!üé` Jk+4µ±Pª¶t(D×íèmÛ€aIPdr8L›‰;œý{ÉPQñu¡€–*† _6{î³mÐóè‡ûaå€èo~ƒ¼æÇžþ }Þé߆üáŽ7-AØŒ¡¥µ Á ¢~²„)¹9{<Ãß„¡w`ÅáßáÏÈØÙŒrÉFç«–ko&{rYãÈ>•‹m"àœƬ÷áaØ«VÃŒµA}ì1r¼¶l™Úv:¢u»ùfZÛw¼ƒ¾cï^:„ï|§ˆp v6 £¦3èCÁd1„3éÆÓ>t4•±"Û‚–Ü4úÒ¥d(xe8,àA}ÉÃ%œ]ÿvì ß¿÷½äôõ6)úpêdñbì¦D$?Š-Û_F*¼Ï7}¥½MÐL†%Á¶€M±tìÃni)ÖöAT¾?›|é?´£l¨(é>4?òeE;Ÿ­£3RÄÒXK¢yܪŸÄÊÜn;¶Á¨‘b+ü%ös)”—uœ+Ó¶MòNòÐrHz’ª¢l(Èk~dË~¤+A”u’dC‘lÀ4`Bˆ¦‡ð‰á38Üþœ*.B³t ?Ù³ =†â¶f}Z¢F µŒ°ß€ º)Á0%,K@weZçDG°¨ËFO3ÊT)€Ñlñ|“¡¥ÐŠ&Œô"²¦%c™=€{’&ÔõÝì0‘($ŽÃa2 ‚ÌX‹$Éýœ20@ûŠóågõ†jBÁð£Ð¾ ]ö6ìÙm£õF¨’U6áSlâƒèêãpÛ'°cÇ»Q(*hiÒ°º#‹ÕY¬iK¡}õfDöBéàiŒù¯@9ob"îG¢C¢Ø„‰R¥" —» ø$¨²»N}ËJ'ðÂÖOccW =¨NÆ·SÇ¥Ót–.{³¹™ÎçéÓÔ÷Ü)– Í¡™ *¦Š’®¢l¨ $°ÂÖ"Ñ» Ý‘<º#EDý„ý†pbüþj'Z–Ïv± ©9R}Ø"Ò‰±ìñq†µ¢AJ&)UuË-ô|¢Qá€[VuÕ3˜à€Å²È±`Â/72âi‹²LŸÇ:ª +1‰Ä°ŽDʇ찉ÂþNÕfXÅ2ÞeȸPÓþÚk¯áñÇÇ3Ï<ƒÇ{ <ð:;;ñÃþ=ôŽ9‚/|á ¸á†°{÷ntwwãÁÄüc8p×]w>÷¹Ï!‹!™Lâ_ÿõ_qøðaȲŒw¿ûÝø«¿ú+H.gkûöíhkkê³£®?Ž/|á Èf³ðûýøð‡?Œ{ï½X±b^xá¬_¿þü z¡üä·-h›Ü„;z·¡GöcHZ…P¾úãtS†Òq%ZNíÁov¶áŒL[Љ4U¼hÝŠWû×A–l(¶«¤{ð'¹ÿÀ®§ýh¾vo+ ÍBrôlg¦©w”ðzøT ²V†YIU ™*2å*¦ŠŠ© T‘ñ¦\&ÃWàØÑ›°ré2¬^,œjMóA›ÜíDJ¾ʺÍ¡›|Ц€¨¿áä0H”£ÍE/„Q(•ÃéÞ8¶ý*´ÆÛÐ2)f0Äáç7#<Ø„¥q?úc×àtßu% 'ÕÏ s8ŽWö^ôÅ †héXÛúEy,i-AUlÄOKè?ÓŠî¡£˜”7á—ٱƺûÞŒCë 2–·d°>äÇ¢cä´¶·“^ˆæ5l+Cöµ!~ÂDë-7#´x ü–¥µ•ªa¢d/ûPÑeËŒ„0’#¿ñzÜÜû¼éå—`õ áø•ÀXç•Ð,L[†aɰl ’dÃ'[Pe >Ù‚"Û€lÚó"bVû”Û?¾e9„R÷ztvüûŽ`$àG¥g5B‰> å|‡&7!fÄ ê7"Ÿ¿#{Þ„£‰Ä M(é*lÓB,¤!ü£Ntì }ßÑ!¸n<ö:zz´&· éô!„B@›}%B¹ALöu»€ð"‘!B–аFHµáKÅ)¢^¿ظæd•ÞüzçrKƒÚÖ ¥ßE²aÛ䬕 %MeˈtÄÂ:¢AA¿ É0  †°'Ð22ˆß½ígJ¸õäóXbÙ˜\¶’èXTÔ§*›ƒ¶t=2cQ¤Ž‹‰ÐMã=h:™€jÄ ó+×ÀÐò(÷¯B¥´úd–Xšö¡CñAŽFövh¡ µ/èÀÿH¤«ä‡5r ,ÕÙ2±¦WÁÕ×^˜Aß´iÞö¶·aýúõøÈG>‚––ìÞ½°mš¦açÎxàpß}÷á‹_ü">ó™ÏàK_úxàüÍßü vìØ;ï¼ÿò/ÿ¿ß¯~õ«ÈårøÜç>‡«¯¾[¶l©úÎ}ûöaÅŠ0MßúÖ·°~ýz|ü㇦i4ò¬\sÍ5xå•WðÉO~òü º®g†dóä&uœRÖá·äR’`Ÿu {J 6—uìêëÀ‘à*¤JA ³ÿamÁÉÁMH PnE•M„° ÿn½…=1ŒËKP2Tè¦À‚2$ÈÐ 7œ=42TÙ&E¥èPS…f(ÐM¶mã×x]© Z+äf¬HØgÑ ™Œ„ÌØ:T†bð…|ð©üŠŸb¡¬+È•}È—UJ7¢R¶Q±|ÐMº%Ã0eüÀ~ ʘòs-Pw(&zKT*>ìµb)òx쌜E¹ŸÃÿô£*lI¦ª Ù†,Ûð)¢Aªl!™#C ónhPaŸ|¸-¥|z%9ˆ]CÝØ=æCG‘p»ºHiú2>œL¼E5‚—ûV4Ÿ^†–?(ho‚ñ„ĸ…D¡ ‰\…ŠŠ²&Ã0lø #è3Ѽokþ îý>ÚÇÿ ©Î¤cŠ.C!ØSV‘³Â(AL–š0”iÆd1 ÀµIþ‡öÝŠ¼FÑ  l¨Ðô?L•—¨ÀvÏØ ó`àÖ|–•#«Ç³ªR’:!#Ü$ÛB+¶,ضy.›¤È«á“W§Xh2nEÐ,"û‹NØ¡ú%D­?E,PBK Œ–P­™ÓXTé†mmBhG3Ò£[pÜþ{<ÿ‡·¡hùV hRs([* %³'ðvX–Œ¨”C{°ˆŽPM¾2 z%à ™½hÕR€dcOÛí€/Ÿb" êˆúÊh÷g°x…‚îV –acì´†þ\;†s1ØÙ6äáˆ|5âJ ‰Œt>ÀÈ„ÃTÎ®Ž H°aP$ !UG“/‡%¾V§`AÆ!yÒå Z–­ ŠšáCI‰¢YMa¥|o/<“Ý[iêÄÚUeÈŠ„c#-ˆÇ}HéÍÈUh³RX[:Œ]ÀHxÆ‚« k6ü¥$ ¥Ò™ ÙÐTaµŒˆOCHÕ¡Ê&9~Š U²ȧ‘ÉñdêFè©üÇd*£¶Þˆ_G§}ºÌ»¡îˆ@?Ú %‚¬Ê°lÀ0TŠ&ò y#@Î¥®!”…ϾF ‚Âo!ä3Ðì+"Æ3! äZ1Q ¢Ù^ë­ýhSòÐe?l h¶R¸ªü*&B]èo¾~[B~躄rYBÑð¡\Q1fÊKÍX¬%P°U””fH’„€LçX‘mªü3e&ÐQI n¶á 6Âó¡8ÂÚ^ÔÐ.!‚<š‚æÙ¨YÇÌuxeçGa+*ŠºÉRùÉ÷¡TÑ1ôãU0%Ù>»ž|²uÎ-± Á¶%tJ•ëaÚÀŒÓ_h¿HÇCÂÔ¤šûìßœ'< 6dðÉ&:Í·¡ÓGbÇ„d [óy¬•®Á±ïG{³m†m“gJ¨¬\ý¹jzëH_FN¶ U¢ôNÅ¡À‚ý4`Ÿý_Ð'á lÂuò>\{¤Ë_ëÆïw}§+oǾÞ+1Ô+öµ³6¢G@å/¤Ñ½Ø˜•}ëêꪊ˜ƒÁ "‘Z[[±¬NuÊÊ•+ñž÷¼°uëV˜¦‰­[·®»î:œC©0t›àÚ‰¢‚£‰N<‡Ïà‹ø;ôX#X>zÑÑšP€Œ ’PqË‘Bt„HPe ª­£×~?tÉ+%ø5DübÑ2þ(÷+,-ŸÄ©M[S³P£€‘Gr"‰Ëy¨–‰‰k·bˆa(ÁD>Ã’tèj3²­ëÌùÎu ni6m²±vm‹eÎvKmB¥Da¤ˆä±8Âè;€Óí·¡°l 9€òh¥²„Ñ|§ãaäŠHâ°HÀÚ«Ë1€5=Ž®~lîA@®`Òê@0LJN|/w¿;—ÞžHíꘄ‚ a „åéq\¹÷¤{Öàéõ½è;uí-MènoFPOBjõ¡èW“ŽÎÕÝØ‘*ËZД¯àÖÝOâpÏU[º ù–fèþ&˜¹0,}+†JKHø`—+èéC‹œG4¬£I-!–ìÃâþ¸¥xÝȢ݅疿E#€V3¿ý7h¡þ×âOC‚…U…^üCáÿÃÓÑ»a-ñÊV`ùÜôÃnkÂéÊNÁÝ C)ã¥÷âùÀõ”CœuRÖ¨ãxËáŸ#•H⿖݉•kVB±t(Z R@‚$™¡C†‰•'öcUé4¾{åÿÀ+æí8¸#£ @O—0Û‘Âd'›Ovôä«ÊZ%¬oŸÄµ¥³iT䯻¯BÂjCªB&@Q÷ò¥sïéiÎà-Ëð7æÿÂGþZ^B>d!#=Aû6oÅhS”’‰ÕN%*¦Ù8{í [ö<]y ÿ†»àt£dEÕ#Èiaäµ2e"ÙüÓÐÿÄþحغ7Æ_À¯Â†m-Äd>ŒÑT9½C¨âãlßó³)[Y²ñWÐÌã&ål ïÃ©Ž›1”‹!¯QªQ3avÏÝî¦<Þaÿ×k;ðÄÊcEó"~UB@±à7‰}n$HÙ¬+®„O#/£ ÇP¨ø‘)ý§O`Ó›Ö#¡*@¶ÆÉá&”ƲXœéG¾ÔŽ1«ßÕÿT`…º½Ö/ƒª*ºšK¸gãA\;ŠöמÑÕmõrèm‹wã¥]!ü¨ügøö“MÀ“ÐeÀfÿA¬»1%\‚œ˜„š/ÀTT„å réøÁ’3L%xì±Çð»ßýœ·Ÿ¡43§ €ªªˆ:R”>Ÿº®Ã²,är9är9TÎ-·lÙ‚[n¹eÊçE"‘sìuY–ñÙÏ~kÖ¬Á /¼€ÿùÿ³÷Ýñq•WÚϽÓ{Õ¨Ër‘d¹É± Ø`¶ƒ1Åô¶›„|$Y6a³K _²$!…%l „õGXÈn²1 !5`Š ®Ø¸Ê¶ä&Y½OŸûýqæè½3š‘FÍXhÎï§Ÿ‹¦ÜûÞ÷=õ9Ïùþ÷qà 7à®»îŠ4}ß7*ƒ.I€‹ÂÌVv¢Õ6 ùÖdIQ•dÉdzꃸ´é ”EêðzͰëüøÊö[qÚ^ç*¿& cž ºžvèÆÌ¶Í8÷½‡pòœ/ÁU•KE>äžn`ÍtÀ| p¹ È½èhïÄÿô<…—­AgÈçsÿ[û1H±(Âm>0]¯¾eú­0ÕÌÅ ¡Á9Ý–Êo¦6O¶ t²ŠVE–!K€Í†×D¡Ë2o4r Š?¥½0÷ý Ðu·bÇ…w!œ[iÍjä—gî…ë¯BóÿÞ†¤kÃý«>BXÒ£Mò %ìBOS/ÿe –êcû§l€×‹üb-|ö \Ö´rœìäÐ!H§ŸCór?BåmÐÈ1¸Þ‰¼­ïâÚmد〷§}yhi!ï±m¸âݯcoáÅØ¹ú_a±ˆn<Ÿ¨™Bù;OÁdÓBÒÓ6èêÓáÐiö1ãT}a+šû¬hé³ ±×Š“¡jDb”ZŒÄ$B=˜9 ‡­J^. l½(w´bížGQÿ!ü~þwÑm΃Ñ"£H:…R_y¶^øv¼ Ýk/!¶"Ébòóqª¡ »^—9)7¸07žš•Ðî7áD—'ZÍmˆ­.GD£C$B÷4s&PT$Áf3C’®”Ž>(OýÒ¶ížþ/Ä–^|å(/ñowvB‰FßþжmŸù*õ ®Í9Áeþ®Ö:H+ÿ¤X0 BÀkÛ!Spñ:/.*j‡,É%“ÀF%@wœK—âšé¼ ´Ä‡eÅ€¦ŒÒ*êúY @ R“‰r’ûÞÆ¯sΙMíÐÕ…ëklPΛ‡Þ> ±ú˜7þÚèì€ôç?Mô:`Æ4`æJ ûŸÇå3»Ð°p=:5£ôäIì›u.©0@#+Èíµ@nÑaMY7°¨–Àc Õ©OŸ†rj/°ã· ÝÀº°¼ Ëãi' $쀱 º—^•%¨X¾@´3&Ó‡žØ Xôø‡Õø¢óôÜPÅi‚¡§Úÿy R4<ó "ûëpøª»ðQO1ŽhfÂi c©m/f˜OÁxì ä?lÊ €Õk+8E‘Ðæ7á`« žôà`w>Zbä*M˜—wç•B…ÎéÐe0tv"§·9Œ¯ÈËÂUK±€ÁªW®$À*®áz}4 ô5aþ¶m¨¬qÂQ”Ï#E¥ z¡D¢ˆýùy蚢(¹ò\ä˜Ü(y¹ š¾ƒ¾¼ :£Ý1Nô9q Õ­ȧN`ÍÑ_ádÕÅðWÌA‰£ÅޏL~ص~èžù-¤ÎD¯ü{ti=hì±âH» ½"Z#dÜ )„v<Š\kÖ^W‡1Dñx(HhA` RDpi|®šÎÄ3Ïz½=½½xê©§ð¹?s¼Î¯ôDбùòþûÇØ’w Áäw|„Gg<„˜‰nÙIyÔH’Ý)Ç‹hTÀ0êtñIǶ„¶àâ¹-˜éÿr4ì°çK×ÓP½ŒØG¿F[Á4üiî7°§øRÔô¾‡Ë_øì±Nôÿômh¦—ÁÿÜŽ5ï±"ÜÚ‰ª;ÿZ‹1ãV´½{÷"”¢]Y¯×§üÿ‘ˆÑhDmm-æÌ™ƒ+¯¼’$!wµÔÔÔà…^@4…,˃¸úê«qõÕWã­·Þ—¿ü僾{÷n,Z´hôý²‹ú±mæ,é|ë>Œ¿N»¥óà0)Y#‰8=•Qµÿ(*ö¿ˆ q$I=ÖÈt'®­Ü¯3 ½×9†ÜÙM0ÍæJú÷ Dh„Çq”w4á ìú Üš& ï”ÙÀ¢Eо½ Ëë~%Jý£×Î=€F­'>U–8°Ë%¦©êtz:=èÞÙ‰Ž-Ñ«XávFQæíC˳! V¤´ŠMíÀ¡ÐÕ•Eu@YÒy~Àeúº€BðÊ%E0˜Í(ÐjQúãÀÌ2äìßÕ9;ÂBHÉý²‘ Å€ÖÓˆêupçi wÆ‘ô «€½Û‘ûÑð]áÀ’……h9gŽ•ÐÕExßë‡0û½wQ³b®û>ÙNqzà´@o2V<¶ܶ6,(iG×á;mD]—M½Vô…tǨ6U%&ÁìÀûïƒ;Ô‚M¹_Å´¦k`~ç] fþþœ:(ºhœvè:NCcŠÓa–¯Kê ñ‹A¶Ù ‹ÓÀr Ï£ähÈñt`ž P\(×j­ÕÁ&™Œ€Å8mhº:€@Ы¤(ý4ŸNŸ.¼ù9QäçÇùeÇ 3¨xº÷Îö¡R,ìÛ ø||9¤!: "î`¶:sE£ÔE‘Œ<æÞoY­„jgF»8ÂXª? éÜs`·k©õÒë·¾´·œOkëtÒƒŸ=’ÅËŽ·Q¥ôÒ½4¨^lEµºP¤ŽvZ¯^*]QؤÎ@‰¿~aa¼E&Ž—”Àh2Á§æŸH6æLêñ@ÒÈИôpzµ€ €ÕØã$Cù^èöìÀy/ª*».샬×Bw,NÈr¢0è€5«€Â|P¡FAžµ¹–>,ñA»w&Žõ{áé?†bm &€ø¬¥7ªîÃg‡în2øjšÕ¹saܾòÑ£`Kpl4„æà^`Þ<MÓr°| ðÛß³ë `Õ*Øå~¹ûñ©ÂF£Zàw`nüÑ%³ •Ptž ÓJWAÛÙO‰sU¾6„£„ˈÄËý-,‘.Ø?jƒì´Ao ŠÜóÏuØXŒîoÍš*éüóW^ävÇ5*‹IQêD‘´Z˜-˜óc€Ç‰%Ñ÷ õ´eŸóâÑïëFÐh‡ä÷C2è!­½°JX—¶6ÑÑ;¿FƒÊ½§`‰ö-  ‡6^ã•úú ‰ásEpÛòƒˆ|åRh^î„´EŽuÁˆvÀ^ ‡Ü äúC 59÷Üsñÿñ8|ø0®¾úêTøH úý÷ßo~ó›øÓŸþ“É„öövÜyçX¼xqÂk—/_Ž'žxÇGQQyä8pv»õõõøÌg>3€†?pà®»îºÑt³1†®VÌê<“QÁÊ0ƒ6:H?Å ŠÙ Í.³¾èu0 „ü6ÀÓG]÷‘ÂíVm8fÈâþÇ`pÒZÇdñ‘¤RaPT¬_é£ ½ý6àu£ØÝb_;]Íé¦oj€¹ePªÚ©ÐŸŠ IDATÙ¼ZÐû©D¯¼ÀBC?¤`œž5ý×€ÔÓ c´Åù—¨nê£@ ÃSîÒeÊË©-KõÙƒ^¯ÈŸr ó‹ZÑ"´rS¯zBzøÃZ„£:48®GÅæïáò#?…¼àÊø0w¡hµ´ÀlŒQn7­É±c´>Á ¤h:&“àÞáâb„‡!+  Õ éYÒé9˜¡Pð?uJôØ&e¢P^N¯=zTàãÇ­e²¡J%É-x‘HbwªîæfA²ÂmjìÉ3‡6÷3½n<«ƒŠ ¢òT{: °z5Ýç¶mä”äåAÎñl4ô:º&nçbšX¦ÞänT„?I<’× AI¥øz{©9Ôw˜´¤±Qð[47C.)!Є“dÜnÑÚ¤~~Jl`°`¾Ô´æ0Ãà6GÕÏÈl¦õw8g~³_VXˆˆÛ }]µeªy¢Q"¢¼ª`<+.¦”Òöí4„'~ÝYY‡«¯K<—ä3«Õ‘ÑW dI+l!hïB~ÀQ$î©°p0kœßOÑúŒbãÏšEÓ={ŽöKo/=§™3©5Íj¥½àrAÃã~«gÃaWà(”X7 ï.¹(·jP‡iYŒF ¤V+p¼ƒ>“ûô™öØïm£ñT­¤7íöxÛU³01Kåpc­G ëÖ­CYY:;;QVV«ÕŠûUUUx衇^»fÍš„šøç?ÿyèâ{«¶¶6lÀ‘#G‰Dàõz1ƒ×]%ùùùX²d ^{í5Üzë­øâ¿ˆ#GŽ ÀívcöìÙ€7Þxeee˜;wîè ºÞ¤Á-•;à<¾ ²É—ODz˜ƒX¸6?÷bëõ Ú!éÉ¡×CúÔ"è"a:pÏÐŒdÌ‚ä÷‹~xæ2éÿy {Ã’Dk“C÷^_OF1°²ìï§×¶µ!d±@ÇãL™¯¬Œˆ):;Å÷ª÷®3íi*)(tÉa®ÅhµÐÊ1¸M¸MTçR¯s4&Š:¢…Í…ä½ÒŸþDC,˜;¾°PT@ÐD²CSP@N[œeO‹AÓÙIvšû[yª’ZÉ5m,Ÿ\ÕëéÀ«IX42Ð¥"©q8ˆ7àœsèõû÷Óç¦8ˆÃÚvŸ6îáM··l6Á f·‹>ÜnÇS O¢×2ùÌþý´çæÍK¶0Ȩ Ôž7cFâët*ƒÎºšv¶µ5õL€d1™-*‚nëVržR9lÐy¸ŠÚ Ë²p6NºGžÛÀü L+{ú4‘½¤r¬¢QÁ Î÷Ÿ)¯“ưђeÁ¦ÆŸ§Ó!4s&ÝgS9鼞ǓsU]Msih4ÄQ°?=ƒK/Mì•?uŠÎGáëåïÌÍ¥Eo½E³Ö®MÏŠÆó6ú£1‘-“£sž”©þ­–öûÉ“Ð>êÂBh‹ŠèÚssÅ #»ÎÈôg~>}Ÿ,Ó¾<ï¼Ámj]j N¬zØ–Ë%3yJb8L{•¸ËEÏ&¥õWs½óþh4,]º4eo¹^¯ÇÂ… “ünW\µ9~—ŸŸ?h# 郌µú÷éäöÛoÇ I|>|É$Irssqçw ÞGeÐ5À­éZ›…é ÷ô$ξfåó‘bŠ{t°Zé‰Úí¢ÆfµR¤šŸ/˜‡Ôu+5hÀdÂr¦Øä1ƒÉ‘Ó)¦8™‘ èt´‘™“<òÒj¹ G4LÑÝMF"ЯS–é>ù =Ên*f¦©e¾`Öª*ÁXÅQ+ÉÎNúÿdö°“'éÕ©Þdá‚zkëàû”ez¯š„Ÿ¿¬Àªú0÷uÐý½ü2]ÿÊ•‚IÍbΓghµ”¢ø€öÒ…¦7èÌøÇ:&ùþ»ºˆ¥³°0¥c†µka|ã \°~=í5v>ª«© j³‰LZi©˜ißÝMç†G§*ºõ³Ü±QÅè~y-ìvÚ?L.ÃtÆLþ4BÑétøÊW¾‚³EÒqµ$§êGÏÇ5%6¢ÌÎìBj#Ëþéï§ íó‰IAV+mžsOî'±0%Ôà8%ßÚJN@*O•§EéÇ«¦R¨«V =I‰£_Y FÌîÑÐ}jµD¯Èó¼;;iÍxÒôé´ ›š„Rki¡÷2ç53-15"{ì&­!+TS¹†Bô9:]ê¨3ù¹$ƒ=˜;ž†LF.ZDŠÆ` ÃΞÅÎŒmü,§M£Ï=~ˆF!÷÷SšÐéÄj1]Mz¤Â Óf£ýÒÑ!æ-··‹ÔorZœŸ}Y=§ÖVÁŠ5{ö`‘ÐP©¾htèè\íŒr¶ h‡k½œA9qBŒ­<~œžyMÍð£/%‰öcr”ÀNO\ã<ù°¯®'£èõÒÞ««K}~ÙQäRˆÕšÈÚèv‹Áêˆ,OŒ³ÙR³TF£b”©úþ8ÊÎ$:çsêr‰ cÉúÀí&–@‡ƒœó—_þë¿è¾çϧk §ˆ—-£{{ýuš÷Ì3ô^æJW?+ª¤¾•+éœmÚìÜ™úžz{…S͘ õ³ãqÕCMþóx€õëIW©ŸÏ´i°2#hU•8kÁ Eç™ê\—KLa“eAëÊTÍÌ:@¾ Ñ>÷xÁPG½—'ÌMÁ-£g°oo§…óùhÁ9 RÓª=.~èÑ(mX6´¥ªvíoœ’Õü8>2™‡1§¼Nµ¢Š<‰´µAîêÂq¯žPV•’U¼wìŠ-›Í#›åóQd±y3)×ä÷òµ«i_;;ééõ‚ 1?ŸÔòå”F|ë-‘ň{ÅʱcØ£×£#À4‡ÅÝÝ´v¼ADôzìnmEoc#fú|È;C--Øsàt[¶`öâÅp:d;:DT0”°òà, Ïlæ´®Ý.8”‡KÛœs½Þë¥ÍSÞÜnŠÖáèäåÑ44ÕÕÐD£TêgWª(#ô‚Q`³‰,Ï÷xDt‰niv`8“ÂuG½^ ÇÐéÇ´F"@4 ÅlÆaI©'o4b†ú3ãNB+€ 0¨.,„A§C·ßCMMè à±Z1§¨;lìTµ·Ó9‰DĬíþ~r;:ˆ7žiI3mUI—µaC®×‹9 ­­F(ÅîÓ§á‡Q™“O’S  Y­(ç´©jŽÂéîn8§éz\V±&1‘É2=“ÖVZ.1Ìœ)úãÇé5\UÓ‡F"ƒ¦ MG­Þgz=ÚB!ìß¼¦hU‘Œ©ÇÓî¡h65!PZŠÊšxâc¡•ÆFlxóMüòµ×Û»ÿóÊ+عoxþyl|ÿ}(Œ 7ÄΞ¨Ë>û÷“²?r„œŒL(zÕõñTÙ .ñèMž©"êñàñ­[ñøÖ­xýèQÜûê«hMÊHl9qÿöƨóx€þ~t«øÇÃÑ(^~á„…RV&ŒŒªw@JKE´¯×S‰¥§‡öNa¡˜ÓÀÃ<ø¾’ׂõËpû9C@’ðO¿ý-^{óMløýïñ‹7ßhZEA4ï¶nņíÛñêáÃø¿o¿6ÈÏÇ3~l6cG0ˆ7A¯^/†Ñ Âáå!%……t¯ôÃY¨PˆöÃAû>9;`·Ólƒ¢ûäù t½|f’3˜Ñ(Þoj¿Ýw6oÞŒý×ÅöíÛ÷l?þå_þ¯¼ò žxâ üìg?ìÞ³w=ý4Þ¯«Ão÷ïÇcz=‚6]K0HÁÐH"d¡Êzƒ»=xŒ*ZÖëÅý bB_S.]¤4/½ô¾÷½ïaóæÍ¸çž{p y<5€§Ÿ~¿úÕ¯ðÅ/~]Éëû‰1è<©Š§X1Ð)¹þµuJžëç¬ô:x\3á”T~>fh4¸éR|ó‚ Ð a×Ìp¶´àÔиaåJìinFC¼vÒé÷ãç[¶à¦¹sEÍq¤b0PÚˆÛX’•£»»ÅÔ!ž@×ÕE÷•¬Tx  ÉÍ…»¹ß=ÿ|ÜsþùXZT„göî3‘­V´* þ{÷nüðæ›ñU«k2áÕ†ÀjÅ“ ÿT[‹o|éKèêê¾}ûèZ¹þ?œ‚×ë)UVU\uEÙ.—¬À)®TSç¸^•Ê`p‰ 'GDJZ-Ý3Vi)í£ž »›6#;w©Ê'<+{¤ÂC0\.Úc<ôA’(mm·'ÖZyŒ,œe"÷ÛÌžMÏ q1`±àÿmÚ„¿;ï<Ü}ÙeøÒªUxtËDxÿÇbx¹¾·ÿ÷Š+ð+®À¶nE ÆÚ™3ñ£ë¯ÇW/¸ÿºnþû½÷` %g‚xªZÞŸGŽ£á÷tE–¾L5©O=Eg_ËòÀØÕ“Š‚¿:„V­Â¿­X,ã=õ@Oî܉çÎÅê‹/ D@4…¢(xõ£°lÿ~ô[,èáÚ:ós'K^žÈÖ¸ÝtøÞY””Ð/,¤ ˜Ã!¦¦ÂÌd‚ÁˆFñ·#G`›5 ÷Þsî½÷^¼ÜÒ‚ŽÞ^º–X M½½øã¾}øÑš5øÖ…B'ËØÔЀ`$‚¿û.î9ÿ|ܾx1þ©¶®‚rŽyœ±Ë%¦ü åtqi…#ûTgÐã¡H½­0)ÉõqµAWïx¶ë‰?þ7ß|3î¾ûn|éK_Âc=†°ÊqxõÕWáp8ðo|ßüæ7ñì³ÏÂï÷ã£>Bù¬YøÚu×áë×ãéÖVôrI‹)+GVÀ™ž÷έkÌwÏÿ¯vPØ 768 í…i¤¯¯¿þõ¯qÏ=÷àî»ïƲe˰qãÆA¯»ë®»°aÃh'xëÇkÐyä%Ïlæ9Ñ©¼}ÞŒ\Í͈v6l<.‘ÜÇb@a!¬¡¡¤@ JK±»¡¼ôÞ^ÀhÄáŽ,‡‹ÚœTy<ØÛÒ2à=_UU7§G;Çë¥ Ÿ¥/ƒ¤${z‡ßO7ÙÑáš {û°˜?ì °ûôiôp:щ@1à±Z¯ |>ìnk£µŠiØ·())¡ƒÌ’†Jõ+_tQbm—¯‘§É3­YŸ uÎ-?<ÛØdÏUíäqéåôi]0}*ïž?w¤Âµ7—KôU³aki†ƒïAy:­Ÿ¢’â”§µyD|ÍŽ·µ¡,^Ï­5 ÛÚĬâ`õöbNq1´² ‡ÉŸÝŽúÓ§¡ ‡!­^¨Ï‡×wì@uQô¼?¸†Ëe˜¾>šñÄ®æfB%Ö^S9_œj./§û)-À7uƆE!ƒa³¡%Q«…3~žæçåaOÒˆã“]](s:i­ÊË¡=y‘înœho‡æ•WP¦ÑàÇV+z¸ÊÝ.ÉÂ#d 2§O LÍÑ£´§rs…‘ÖëéYΜIY!uÊ•[ðøy#»š›1wölhõzx}>x‹ŠpäÔ©€£+„A£(ñÕäæb_K ¶µ¡¥¿÷¾ú*þnãFÜöÒKèb0·di4t}@úka³™öZ*r“Ù³éÜìØ!@t ãÏP—?9ËšŸc(‹£Ð.\ˆººº„ùÚ{÷îEuuõûYnn.êëë±bÅ ´twãž_Äm6àV¬€Óí¦Ï]²dÅ_­ ‘koƒ•Ô†^ Tšéêø­aÒíhjjBuu5 ªª*e„>Ùdô¨ŽÚÜ:Ýà9ãjoX=žrÚ42Ü Náˆ-®Ü[ÚÚð›>ÀoöíÃQŽtâÀ8IQãÞÛøvF£DÔ’—È2ä`1EÁ¦cÇÐØÛ‹OϘh4Š(€ØhÐÑlð**ˆ„>TLü‹:³Å"ú‚½ÞÁ]£A¨¸ÿûÞ{øÍ¾}Ø¡Óá¤NG5æPr¼9ð=\#ä j6C¶Xãzs?š›qÿ/~;”=·«dŠìO>\Åèžt::(¬0Š‹éyr =•áå ’D‘:§ÌÙXçåÑáMפ®…B¤X¸7Ùn§ÿËÉ¡¿——Ó52èJu=êU% ŠÑHŸÇÄ,Ȫév’$!ÖÑ,\ˆhi)žkiÁû÷ãîK/…FVµ€:"27é{ÛÚ(:¯¯§ßÕÖ¦_³@€®£¤„Œ8ŸK‹…uE@2u¯¾Ê 'ïgY’h¿ªƒKÄI7dÁ²2˜{zinÆö×_ÇŠ®.tÏ›‡f³È^°Ã•JÄÛ'€qÌèvú4eMžl’#´ÖVºGfh`\üžc² YÝj*ËP¸ëA¯'þ‰ëŽFÑà;+Wâ×ëÖÁm6ã¹;hï­Y#Œ©Õšd§6¸ê2$‘>‰Å_»VKÙ™ÖVÑâÈ¥7§SÂowïÆ[¼ÑGÔÒu¯_OŠ3£Æœ{Ñ‘ÜÞNÿÇ#þ’7Qq1L’³ÃÅd¹¹«¯Ç¡¶6Lw»)òЧ¬­&b±ú‚A@–qÈïGó¸* ~ùÖ[X¿v-Ö®]K_À@/—kôsÙp»4t»I‘òüôœœÔóØ1ÍÆ£°P[Ø 2™HQ;F)3îûoƒ.Ë´j  “Qð¼xVæMbú—3 v;½®²2±Î®Ê$äØlh‰$46¢Øë…¡¨ˆ>×ãAyn.Ž47#¦(è ÐÞÝÂòrÄæÎųþ3~ÿÆøÉUWÁÎ÷È /—‹§Ï$–{$‰ˆ?l6ÒS&Žf}>2äjBþ^O¿³Zéù2°¯O”b1ÚÓœv;‚‘üqC4°_U’c±àto/Ex6BBgEuuè´Xð•žìimÅ#ヒ~ ¦Ò! íq&šaÌCg'wÚW« …hí8r*Jë¦^/êNB,Cww7ºÚÚPhµ’N+)%?ÁH¡x”}¸½å.JœN¸Íf8F˜´ZxsrÐÝÒBÎoq1E¯]]b\1gò5¤Zv²SEéܹcÝ[o/íQθ¨y<CQXŸÏ‡æx†åàÁƒ(,,„QuþÊËËqôèQÄb1ô÷÷£¥¥EEEØ´i.¸à\ôéOãﯽ‡šš¨$1þÈA«,Œ×In]kk®£« ºÃA÷Ëz8ƒnµZáv»ÑÐÐ8vìXÚÁ+Ÿ|ƒ^W'ê£zýÐFƒ‡Ð³°ÇÈuw6xV+À¶ãÇqayù{ÜR‹>I–-[ÐÑÑAžz$’öû3¾ß’aD\.BÑr*^ý<µZ‘FçgË©z5YP$"@“ê:zOZÔ€¸TõùAl#¸·[ôââGS]#ðpX5Ž‚ ëܹ´&|ŸIø„k/Æ›6á…;ñÓ—_ÆÍç‡S¡¾»s'‚&>=w.v;†ßoÙ‚ o¾‰¹yyp¬Yƒ×¶lÁ<€ÕëÖḢ`ב#ˆ0é ;#ìDª¥¹™îaÖ,qΘ& ½YVFF ¹~zú´(—pÌY «•ö3gÒ¸eÍãA±Ó‰šÜ\üøÝw±ñ£p¸½ç–”àÅC‡ð›?„àÊÙ³ñÔ®]xéÐ!ühï^tÛlpÕ×£PQ`½ôR|kíZÌòzqÛÂ…01¡LºvDâf&ã§ÑPÉ­¡®­¨ˆ~§®­§’înŠÃaÑî”îõq„ûÅå娳k6n܈ÿüÏÿDEa!òÍfÜ÷‡? ®½yÓ¦¡¶²¿÷~·};Ž´µá¼âbxL&œ_ZŠÿüàüñÈl>~+JKÉàj4ÔjVT4P6Li y|ªº-QÉN€ËEßÑÐ@N·{¥2èÜ“îvãšk®Á“O>‰^x?ýéOqã7¢±±÷ß?‚Á V­Z…={öàw¿û6lØ€šš8,Z´/¿ü2þò׿bÞ=È5`¯©]tÎb³%ò9³­8uJ” 8HT;ܼ†Ü‡žÏáp`ݺuøÑ~„^xþóŸqùå—#‹áá‡îß¿Ï?ÿ<º»»ñòË/ãøñãŸ@ƒ¾¿Ø\êjjWh0ªTÍÂ¤Žæ ÈÃ2›¡Õj¡ÉÍÚÚÐÑׇG/¿^³zU990h4!Ûlh­Ÿö³0åäÀÀk±Àk±`í¬Y¸¤ª ÆteÑD{99䉪ïkÊ¡E¬$Óíâ_ÖëqMm-¢ Âzò$î›1‹óóÖVDìvL&hÍfÜ}É%˜WR‚–ž|ïÚk1sæLD㑜#ÂŽ?ĶmÛÐÉÑ s…EX‰2ekªÈY–éu¬”âiÛæÞ^<þÚk¸÷Þ{ñØc!À8 VV¼g J,† Ý.ÃZ[)*TuNCÖûgpGèœ`v*Îj$;l,gÏýáLޝ’Ë.Äg—/GCk+¾xá…XSS‹ÑˆÊŠ È:îtûì,‘ÑA÷‚A:\\óJÔutu*&Uí½°RFû k2 IDAT1Áqð n+)ؘV½×Í™ƒxž¯W/^,R“ <‰÷!Ö––’ÒïþAFŸ2{‡~?ERzýÐÞjYÙŠ]îè€÷‚ €0mß>2­­°3¢^}k+®^°@lØHúxô²ÒnÇÊ•+Ï~V´qT<1›Ii2*:½»KßïdžÆS§`)+Ã-+WâÕW_ÅíwßGÏ9zFoÛí´fqjÕhK Z#šÍÂ(UTòf²Š±tN×Ùítð;;Éa¨­¥ÿgÅŸ*Rt: Ï “ý$!Y’°|Ö,,W¥¿}v;®V1¥•û|(çûY¹$,]ºTp?ƒÀ£&ò‹sÛV¾†]»èÖÔ¤&WIg°Âaj+Ú¹3ÑPp¦Åf£2Fg{½@O,‹8ƒqYÀí™Ñ(4–`Ù´iâ§NçŸHô ®ªª¢ëPcS‰Ó)ö^QÝs,FšSÓÓ§Óºõ÷'¦©‹²j­ÎP{ˆs±ʪªp[œ#›Û¯[²dàZMz=nPÏ±Ž·1Z{zp=·¤…B€Së·›žýoКæåŽ„™yM†2|ƒuZn.­ÅŽ"³Gå'8ã~ÿ@@"Ë2–-[†eË–‰’IN®¹æšO›6 ·Ýv[’/ã¼óÎÃyç'ÊŒCÑLg"œ±åLã'NœXžäŒ0goÒ'#h•Óh4¸ä’KúuëÖ ü{ùòåX¾|ù'<å~à Ä!l± ßÂuòd¦#V² Å·‘rÕ銊Zz{iSçå%F:uP¯›ç˜JL&º7ÞtêNg'mÌ¡ˆ …×Éžô¼yD–QWGÄíë¡(‰)WVöLüÂßÏ©XfF«¦®Ù%GÜV¾-*(ÀM×_ªª*Üxã8pð Eàyr},ŽÜheЃÐ.ºˆŒ§ÓÆbÐm6áD†ÃD£fåâ~s5(‰£T5ÑוGÓ>ÇÒßOŽDªÏ0¨ÞÊ m ¬c§‰S­uuiÏš•9OGç3gÒO* $—ü~Á#ÑÚJÏ…³,¡PúvÅP(‘g‚KÖ©ŒçP:„ g˜¿‚K1ee"=Ëãýý‰ßËûkæLqý‘ˆh‹LÕ6ÆÎ$Dõyã6Æ¡²w&˜‚æš5+q­¹³$7—ž3§Þ™ñQnOgøtºÁ×Ïà¸Pˆh€¹—›õ :å΃ñÖUcÍ~rÚŸ‘Å"ðDLßÌ9Ï™H.MaÝÝsKOº:Oº”¥:ݞ̳̊“Üãm±Pš-Yé3‹‹EMH1Í<=>ðe€\FmÐÓõ '§€yýø Í›G÷ýöÛô92"™• ¯«Á@= ”#ô'èÚÆÃ 3-o& Vx¤8< â—¿ü%.»ì2˜ËË®1f0 ¬(‡Ãˆ"ªÕ¢›ï)ÎCƒ"‰U«„’m¦…é6}þ‘#"‹Â MµÁ DD¬vJYáŽVqN*+vA¥n·ÆÅbÄ g±PMÖëÍl…¢P¤¹p!í›d| ¯­Í&ÊH‘ígæ\·ÙDÖ&Õ½ù|"¬æ HåܲA*Bg]Ñ÷+çæŠ’„ÃAû´¦Fpxs‹_m­pêU>0ŽÇ§&GÈ ÐªVŸ¬÷"úžT¥/­–λß/b5·Ápº‡{¶“¥¨ˆŒ5×è™&—Ÿ-Œ6­’^O{ ‘3ó¬]KÆ}´†”•…ËE륞)ÀFZíôñÔ&vf+ÁÏV’ÑËH"äÞ^RäC¥T‹Š3Ÿ·›”¿ßOŸqè½®´”`ÄQåCJ_í!¯—öN²aæz4£á»»éþ»ºG³s9‰ïe2ðØqÊÄÉêœp¯×Ó5èõ‚Ý׆™K–ПÌg±|ƒ¬ØéM5yÓÝ© :ŸÁTŽL:álEºgÍ >þ^¦CΤÅ66‰ïkÞ<¡ø>Õ='gtCŽ&ÜÉ´ÆL­Ñˆ,.OKLõ\¸=“35èC¤ÒÕ‹«žÊ”j“±"VGÓÉ)8I"O; #žP¤Þ¼‘EíLB’ ýl±ˆº"÷·7ɤf³ sa@šË5¼§]\,ÈI‚AúÌÚZQ3eÆ }ÁÁSÌÑ‹Å"¦ñ¸Ù®.AD1Va¿d™@€¾G átc ÅíÆÏ{ Û·oÇÃ? 3sRǃüü|\vóÍX³r%Îûô§áX¼5шš²–#˜t½Ö™ Âäè‰Ó¢Ì §Þ_ )FV©÷=? æð®•™ÓMS¯cYYâ¤A6èýý4¥+¦èÜí&#ÍÀ¾t‹Ñû—.(â¼¼DÅ¥5[\(Dr„®ÓÑ{óóé:C!Z/N‰³ƒo³ ?Ô‡¢äùÜÉ]ñxȉQ\e‡ÀjV¬|ýóç'¶92±ë„dƒÈ™Aþ}*ƒ>’ñ½€àžO%Ü ÉÙ›-ý©T{$•N“$Ú·ÌâÉû‡?3š€èãF¬³AçgËü©Îv2ÿGÖ BÔÔŠ¬Ô::R%08ƒkr\I@ÊËJ]–ƒœš* ¨ÛæÔ³Ô“=7îçmoäPʈ§½ý~R~×H„¾ç £0Ž ü~üùƒðÈO~½^x>ø ü\ … ÕjaÏÍ…Õå‚%'ºO} 1½žî…Á©Rcn]cT5ã’E?9[sç ¥Ïyž°Çû𢋀k¯¥çÖÑAë’®¾ÜÑA³»3饟5K€Æ8»Àì{÷ÒõñT“‰Œƒ!S Ì`®€ö“Úèòb´qW—ØWü>5ÙJQ½'¦µTŸAfúJgÔÕíCát:±æÑ(óòòDò"ufÖ,ú½Ó9xPÛ-ö+;@Š"ZýxúgaRŽL&²s.Ý®>/ÂIàòd¦%?æÀHU¦X° 1­Îg'ÿúùx #ÛÕ-›êLM*ƒîtîäðaàÍ7Ó“õL}šQÞ3èaìÞ-†¨7®Å"È*8­•Ê ‚°ƒ§rdÀÍfJ5nÛFʆ=MFF2ÀD­ ¸¯v"ê=ªô2b11RV£¡M6\Z‹9Ä™¡‹W‹ £m0ˆˆ_–ÉȼöšPdjªNõ¨Kè0RXH3ŸYwuJzî\:D}}‰Ï2ÃW^‰¿^½êQè çþÀÑý`³Ô¶ÆŒe3fŒW+t®§F£bh ¯­:’f^pnÉãQ°|ŸmÇyÜqé¥t_»wÓ>HNásZ¿¢"3çÒçýúŒt×jɘ75®€»$‰¢õ÷Þ-†ÉÆ%œáH®£2øŒ—®.*ßptª6úü÷ÂBQ—Mþ,‡ƒ®5•Ãif5>$¨ëìÙ‰œß¼.êï=÷\rD’¯IíàªqŒðçZ0˜Úfì£ëY˜eOÝ~ÐþΩ.,ŽÍH‚>;Ìמ,55ÔÍÁ:…ëóVëØÑè)ê2.ëQuÊ=•Nu8hše0HŒ›Ñug úÓͼ™u:bbµÒÂoß.P‰êG.Lטʠs-–ç%skÜæÍôÓÑAŠõÓŸ&ƒÂßÃQ|qqâÁP”Ñó¸'v»¨F£"íÎ#þ†Cd ä-:DŸÁ#OÝnZOvJÔÊhÚ4Z62L„ÂiÆ`PÐ¾Ž—QdC¨(ôÅÅp½îÅ)RäöDE£´ŽTQŽÏGFI½†ííP⮘czž—I8ÂJNmh¸·U«¥ì¦MdиÁ˜?_ “‰öcQíÿèwü]==ôL3çÎ@27kµŠ®z½ÃûÂn§4=#ÒÕû¿§'5%§Ñ(PÅÜÿË΀Ý.Ƴrù'™>”?#ãj³ÑûS+^gÎB WöQ— ˜=£ç’œãYì©‚^­VI’øáRJª €A¬jƒÎéìvrä[ ’S8æÃá´¶©ôOÅcp,?'Þsé>?/O³°£ÖßOÄDéÃñuæ—ˆüìÒµóqgÓsoÙBë4V2±)“rgo–‘¤<¡K§£(àÜsâ[­ 82ç4sªZ‘š&”£ÐœRTF# üÜçè;lg2‰6›ä”X²c1ž¢®Ýñ ’ÎN¦Π2f NodžPÆhzÞÈf3¥Nûûš, ƒ~êݳÃ1~@@‹…¾§·—¾ó‚ „R(//¯w*ð ·"ª÷…NEQfå3¶©áâÙ0¨ëŒœš.,sº+*ľR³mÅbƒÛ‘Ø]±"±Ý.¢û¬ªÊ< ãÖ>®ëªË‚__Ó˜??1åÏ”­T;OVþZ-=Nùr+$·Q>5™ßÂH@‰§+ApYm8'‡ïQÝ„GLœ¼v©®“÷¥úœñ=%F:*Z56@Qh}—/®»¸ürÊ.1oC&µj­–ÎP:„6ÓÄreW—Àé°NŽãR#gDÚ‡8x¸ñÆÄ~mž>ÆYv&ÒÕ»­Vá ²â™‰1@p"Ÿ·×’!K&ˆéï'¥¬ŽTssÅ(Žàxp*Ñë)s‘›K5½cÇÈÀô¾8ÄQ¾ËE„kûÜåÀRR"Œ ‰ Ș§rj5r(%Ndxâ<×ÈÏ­O#1LöÔÔ4øû9êLÇ@˜¼ܳ‹5áv¾‘ìcÎz UŽÊÉp8ƒaW9sDÄ_RB=ñ]]ÃbYÊÊ€·Þüÿ½½´ö«V‰¬D?ðÎ;"àq:…Ó5Ô}³~:›ëçêçÍ:ì„qv,[¥ÇC­¨<#^’ˆ¸gãFàóŸÏFèà +¸sÏl8¸Õ¨¼\Ô‚¹æœá®žÌŽ@M˜¬”¬xÄ$@uÝT¤ãUKN&—aD>“ÝX­b]&ŸÁè[µ÷¯b¬@«×§¢B´÷Ùí÷ö †dÎõ±Ji)9UÓ§Žfª«E—C8,²©Äh$c¨n1a$}o/˜Ñ’Çd²Ö¼Þ<—^½9jL2UW'FP==dT‡{¾yy¤\V¯¦è|¤¢ŽÐ¹DàñPÙ…Ïz­´Z2.]]t½^HÑãP3//1Ša̧ÜûûEV…±*#µ³Ëâ÷Óµs+“Ò×OyÚ¯ÉHêÁ¬ø‡j=ãÈ7Ýšñ(a¾‡+Ÿ3“I^ešéóùŸgü–/§ït:é5eetöY¯ªµ©D¡s‰ål^cu["w:¤r´Í#r9“[[KŒ|Ù”{†‡cùòô­Q²LŠG­Íf‘ ¨Æ©QuÿdºÃÇ)=½ž6ºË5¸u!Óºåh  äù‡B¤d8E™IÔPP ÆrúŒGe*Êà5–e2q:ÊŸ--‚ï{¼=ñ¼<ë¥Rè>ýð\x&ýH—b\°@‰x ìvH¡Ð` Äx§óÁÒ•LÃ4É ;“Ѩàqçúk&YššÑ3ù=êÖµªªÄÖªäó1}:»5kè{‡ÛƒÌðÅûŽ[×xm§néiv‡ÑîŠB†Ðå`°d¢tÏgÔó3àúûH ÔpHuÛ¥»W·›Îj4JÆ|,Œê31s¦heÜCuuêyjã?TYCô¨Ç Ÿíâñ$r0LŸN랎XJ ÚäuÐë ³’nžFÖ 'ÉâÅ”šê02BnކJÕq9·»¥Û¬üyN'ŠŠÁdã݃®N­êt¢Š'ñØí™+pžjÆ)4ݰáH¦$eñzë¨á0Eç<4žÂ™ˆt ·²’îçÀçÌž-˜,CÒé`büDŠÓ)ÈO¸']âœ5kð~áèˆSž³f̸¥ªÑf"\†áÚqa!­›zÌkrtèp1Ÿ>=³ô8³ òåïâÏæÑ¹ì\ff4;œÁ à.WêÉÄcY­°Óáp†{þCtÖ)ét†ÃAgsÁÊZ‡H’hŋſâSŸJý ¹¤ÅkÁç?]„ÎdM™gCÊI¢’C^ž8 é²ÉsîG{AW³2 wx,aÕèøá²šE-§Þ¢QaD**D4À k¢@ ¬øL&R0==‰÷©p?0£8Õýú©"tvŽ<QGD¨îÔÜ,È8Τ”•ežÕhÔ‰ ì €)/oâÊ#É?™‰G–•¥~ÎÌÒ Ž Ü6V'ŠkÛà"à½Ü²¥Þ“#¹>ŸOœQVŠŒ_áÖ8þ]ò×L3 :e?|¾ÄkËW ÑJh5Ÿ[öFúü¹#AêìZ­”Ê ka:]É©æ¾>ʆ¥;GVkâÄ8«uè~µAŸ \çj&_/s“¤³9ÌÕ?ÖÆ¬AW“L –FC©ßä;]-$9Šc¢‡¡¢½ž”,§˜½^1ô€?‘›˜'tq͹¥Gb˜ìvÑ[Ëhwû1q*e_XH÷évÓ{x>6÷Óži¯zúôáê(cÑ¢'H áºöD ã3˜¸‡…É{Ò]{i©˜q¦Òxê싚Ð%†ñØÛÅÅâ¼°"UtõLí¶¶áÙ¸úû#FŽÊÉŽi¦:§T™‡Á£©ZÓ2ɪ õÃÝØí䌎wçŒ,SÚ½µ•ÎuuõÐ÷ ž£žnX‹ZW„ÃC3òM­kÖcÉ’á‚êöOfhLuOœÑˆFǧÞ&„õ'ã8 Lž´¦ÆX •}ÉôqHñ"3Øk8¥oµŠ©6·4¦N ²Ác':ͤ&öPGì#9<Üî÷‹T°NG×ït¦?ÜìÄ0Z¸½êÀ6Û™7èœIš“=lv£¶èíE4Ãé3qŒtW;IꑜC‚ùóÂüL9I.—ÈT©ûŸÇ³¬Â{Œ3C™›L¢”Å3ã9-œN‚A: ¼¦C xÊôœq)€ÓÍ£™¦ÑPF+';gÉ>ÉÉ!Tv&ÄJ99‰Ï!yrïN[óÚM «$nUärmº $y’gÖ O0§8§àxFñpºV+˜¼˜ .Ù s}žkJêï,,¤h5Ó‰pc‰øÔ2[ÞH½øü|ºæí¶XÈ §"ÎP;=܋̽ø}}‚³üãð¬U/‹á7¿ù î¹çžôï™=ðxÓéÐ}¦®QµaÊÞ™3‡OáœyeÏd%<îu¬NŽúŒòwÙít  ÒtF½¿Ÿzð½Þᙌ„#‚Ï1ìŒáÎNÒPãfGâdŒ·0Ú=“²S2 3ƒ~6NXêþ¸-JÄ_ µG†+Ñf úE¯'cŇ›YÑ2‰š9ÈÅü~ú ¤„x–°ú`ÌšEõÙ‰6èüùê”;£ÞG"L¯ÊŽ ·÷ 51k‹ü==b&õDõrgò¼ã²gÏüþ÷¿Ç¦M›Ò¿Þh¤ö’™3;×ÇÎï¡övJµŸþðY#5=虎LÙV£ÇËð0;Gè< Äá ³¥nÍÍ%ÿ£5ì|¤2¨“!’5I70ž;"Ô™“d³™Ã=Y3Ám¼é†y%?×d§&kÐ'@ÔôšÃ‘Ê$`¦›dF4ŸŒ5ÓÀF"©{—M&"Ö˜èMÌÆ›#?—+3Œ@*á´;GM™D!ùù¢Ÿë–ÉÓÃ>yòÉ'Q[[‹ÙÉ#,ã‰DÐÕÕE?}}è>“‡Ðé¤È|æLŠÌ'Šxh<„ûÿÙ G"b¯§Óæõ&ý°qãèŽQÔ6eÎR¥x{zÈÐjéuååé£tŽ35è<]Œß;Tæ*“¬ŠäìqÏzÍ- nu„š|ŽØÀ©5'ƒ˜ÍB2—ÈpŽ–ºcŠŠöŒ| ìczÐLkêÚžú©SŸj„yòF®¬œøÔ3ãÔéh2ÁÍh6UA°sgâ¦N¹0Ó—ZÁy½«Aojj³Ï>‹þçÆ®]»ÐÓÓƒ}ûöaÖ¬Yã×µoß><øàƒÄß  ¡¦¦æÌ\ ÛMÎÞEýј,Óya¥Ì#‚ÍæñMÿ3®…éo“)§ùMÌó§ÕF `!gªª€}ûR÷Ås:u$Æ“±áJQÉN'z·Õç”3“Á ƒqÉóçÕÏÒhœ=èê@I=/“R—?H—5èøp €ýûG¡ëõ´iM}ȸޜ. çy×}o ÔY¶Œm¡ašÑ¶ÃEú‡È ¤Êˆ| ¢( –/_ŽÍ›7£££íííxÿý÷QQQ1`ÐgÏžGydà=]]]xúé§ÏÌ–—Sw2¤Vy®xKKb/z2míxìcÆpdÎÑžùμ³fÑìwV¢L›«.qåç :ãä}ÌmT#1žn·Ð!£éAOv::ë“Lg0œ âv'ðdÎ 5»ßD·ïN„^5›Is´>\¶Uýºt Ç¬A‘$J“ïÞY-Dý¾¼<š-JBݦû¼¡˜…Æmµ‚)®ª*qJÜHÅf#åÍ3͹ýn8§Çá\…Öäc<¼ùùùøæ7¿ ¨¯¯Ç®]»ð™Ï|&)HÒÁ£RÊò™t@&À µA÷xˆV˜©/¹Ä2žÏ˜[?››¥j|¶ýÀäÚ=g“˜[]«%tûâʼnE§#‚”;GÔÑèȳ N'/žÐ7VcØÒ’¨;&› €q,¬[Ù)ã» &“AgR¥ÆFÑc?œAç™éŒ³˜‚ræv.³k´¾¬&½H–pxèA gÒ@Ȳh+-²^§#† z2MæPkÄ©PY>«F$–””àÅ_DVÆh|˜ß›Á’ÉøÆÃéfïE5o:·›òÙÕé(ÓÁ]'Íà>~&â*É}¤(u>WÉSòF#©Úê#0iÂ1­prØùKn)Ôhij›L]’h߇ÃÂP—9árÉhgd úÄl€±‘xÀCÍÖ-ýãDxÊ<±j¬íDyybHC¦QH^ž ဳ&À”ažLí2g£8"}j±dN¯;šïQiÄ÷†Bôjg|Æ á|¦ëÑw¹(õÎà-E¡ýͬˆ#~ýx°µñ½F"tý~¿H¹O&ƒžŸŸ8ÑR]GgÆÉÉDûª&—a|Çp š‚{2á&¥A×é¨=)ÓtN¦‹Ò‡jëú8 zòБŠÏ'î5Óö>GDo<¤ +ŸaP™ºŽ8N’:BçÖ5ŠñX`µQÈÏ'Úߟ~ò¢$Q)ª¯PðÜZétŽœ_]#kg“0yIN͸/,œ\Ql^^"¯zf=ƒ‡GB±{¶9²±=óLPúj)¶šb¢=£›¯¬ 8qbd]«¥ƒìØàÈÓl>;€MœÎbF¯±\sgƒ™+mî"à”hÖ ò :·îhµd' «#l53^OF#ÙÁ4›)2¯¯'g=”–Ši|99ä´2âHD£¡=>m™L;l6SPàpˆÔîdn7TQŽ`V?®'O&÷ä²V›Ù3·Z a6Ó ¡¬AŸ@ÉË£ÔÖHR?²Là°Ý»‰ @i$·ûì@¤Z­‰½žc1¨F#­S[[æJËbI¬£gSÜŸ°SªmVÜ›;Ϙ築uHŽÎm²Qà±²Fãеg› ¸ôÒñ9«¹¹ã“•Óë Ä7ÙÅálÀ-Bð«ëæ“ÑÉçi“(eâl±.ž¢:ðÌÌæ¡=ùtRQAƒ1:;Ez©·— ŸVûñ¯"÷³‡?–Í$ËÑäåì=ÌÐUX8¥‰>±ÂÑ Oà›ˆ¡ºFʵzÁ IDATÏ犣¾äž¥ €RÕÃ]Ïx9Þ99ô“‘µ`ÞsµQ …ÄšÜt¶cqd¹u-Óì ŸVwdd ú+¦ÑÌ•++èßÝÝ´aGbô&Ú“Ô邬õ½üü‘·žy½À‚À¹çN>ðKV2‹Ä˜ p¢ê¡:)ÄPH(OŽúÒõ[,©©—'J¼ÞñûIŸ/‘oƒy÷¹em2t‡ƒ0™2#²A)iQÖ ŸaÑéˆÝkíZ1 ølÄñµ "E4ÖÙå9`ÈëÓ±²ý“'.Zæ1Ÿ¨hG‹2¹ ÿ™.Bbc¦$7wrµ–M´Hj`wŒ„ý¬´NñÙ½½™÷Ñ«_7ïy¬>ФۼÀºuÀž=g§Î@´@@ÐŽ5âOÅO?œgj6ON4kV†F ó´‰txŒ/3׿©dñ!©ùä. f¼‹Å&oú™§Iö÷gþÜ9 âý›Ð'˜L4ël©37´šx<¼Ó‘ˆÑHN@6Bÿd ÷‡ÃcgIÎq`ãÀía‘ÈÈÛM³rf=fdQsóOf'ˆÙLïгdHUÖ OFa2œñqTn0—vV>9ÂóÀÙ¸N”0øŽÇ´b$oÖQ<{÷†ÙœhÐy¿Lvƒn³¬dÀå5[Þmö4ŒãÆ >>.hI:ëH1š››qêÔ)ȲŒ3fÀ”í½ð ‘¤Çâ8p´£ÑPËZ2©LV΢°,Îm¯î»ægÈ<î“UÌfÒ­#1èKú±½Yƒž•Œ7s&\ižœœDÈQvïÞ‡~ÅÅÅ$ ×_=*++³ûd´ÂŠª½}bËÌ“®èÑÓ“E–ŸíârÑ`d™¬¤2êýèóe¾ç%‰€S§²=+c‹…R“'(Íã9kRîßýîwñÿðXÁ­†Y»0Ði"Ñ»²L{¨·7±íg2…© ^/…“e²Ò¾ª tnîȲRv;Ýw¶=+£«uâë›™(ã³ ß4 aÇŽxüñÇqÓM7áÚk¯Åñãǽ¦µµ---hiiAÛ¤i±8)O$z—ǵò$2f§Ëô³?BO5ï"›üÏ.'gd{~ ïÕl„>^b4fiW‚‚ÚÚÚpÝu×ᢋ.Âo~ó<ú裸ÿþûæž8p>ø bq% …PSS“ÝGÃ)í‰îbàV¡`PÐÍfçLŽ€‚ÑÝêý1Ùkè<d$$1¼o³=+£_I-)Ü)Hf,&“ EEE˜6m¬V+***°uëVÄb±ƒ^YY‰_üâïéììÄO<‘ÝGC‰ÃqfhO].˜fªÙ,ðÙ~èº[müdyò뤑22d J6å>^Â,[“‘bqÜj 7Þx#~ýë_ãí·ßÆ“O>‰Õ«WC«ªiiµZØl¶k–'3¥}&hVy¨·¯e[!Ï~ÑëÉáã¹ók4S`e<Ø:³}Р׳©IÀwÞ‰óÏ?o¿ý6n¹å\{íµÙE«Øl@QÑ™ù†¢óX,Ë>89¼h (Ô½è\.™j}<æiLÖ[Ïž„qŒÐ]®)9 •èt:\yå•Ù…ï=v&"N•L43]VÆO’ :)™j'_ööf#ô¬Œ!BŸ1#»YùdˆÃA)Û‰æŽÏÊøI2Ò=Í|ìè'Í s×QÖ geL*+Yù¤ô‰ך•ñ‹%±÷šSáO–iÿªGÊf zV²’•)+¬d9ÛŠ9Y„Ûf9Jgƒ>ÕD’È OÁÖµ¬AÏJV²2X\.Šp´ÚlçÆd‘TH÷©êŒ9Sr:`Ö g%+Y,LÎÁײrö‹FC™•@€þ=’±£ŸÄý;ÊYƒž•¬de°˜Íá˜LS’{ÒŠÇ#À`ŸÚ×±ìß©†î ½õÖ[áÈ¢X'TúúúðíoùùùÙÅÈÊ䓉"ó,‡ûä5Ò}²Ó¾ŽÕ OÁÌ’ÖápàᇞTÝÛÛ‹o}ë[ˆ•ÌívcíÚµ˜7o^Âk^|ñEìÚµ ÕÕÕX½z5œN'EÁ;#mÛ¶¡©© ÿøÿˆ¢ $ìøÅ/~Þ)Ø™•I, ±ÒeýÉ%v;eV˜Ó}ªRQkµS²;cR¦ÜûûûñðÃcùòåX¹r%t:Ö¯_;v YÜ_|1þú׿bÞ¼y˜3g¶mÛ†;î¸ yæ™gpäÈlܸÍ©æg%+S]òòˆ¬$+“GôzQ7×j§.Ñ•$!ÒkÙ›Ôű5kÖÀh4âœsÎÁ‹/¾ˆÃ‡£¦¦ßþö·±|ùr|ï{߃>^G¹êª«ÐÕÕ€XÌ~øÃ¢££[·nÍ* ¾¾>lß¾]]](--ÍNR›ŒâñdyÜ'›h4dÈúúȘOeƒîre údEQð£ýuuuP+V¬ÀÉ“'QWW‡/ùËƼ¥¥‘H²,LüÒëõ¦á”ïÿûðûý˜5küqÜ{ï½X²dIva&“ø|Y@Üd4èÐÜLé÷©úü$ (.žr,yÃ?í`¸í¶3wEðøã½´°°º¸zâÄ Ô××Ãd2A–å„é]_ûÚ×ÐÐÐY–ñ§?ý ¶lÔ1áòÁàá‡Fee%Z[[±}ûö¬AŸl’e>œœ†Ìç¶nÍ:dyySî–‡Ú‘ðÔSg֌ º$I¸é¦›`4¡( º»»ñóŸÿ÷ß?¢Ñ(Z[[^ûä“Obÿþý¸æškU/ÈÊ„Ém·Ý†ï~÷»ðù|hllÄÏ~ö³ì¢LÆh/+“O< ĸõ0+Yƒ> Ë™Z3Š4x$Agg'4 rss±fÍüìg?âE‹àÏV±)Høqˆ¢(xî¹ç°råJÔÖÖâÑGÅßþö7\wÝu¯©««ÃSO=EQ@ ;=+YáÁ:S‘Ç=kÐ3³°UQÜ}÷Ýe­­­¨¯¯ÇC=N‡¯}íkøÁ~€›o¾Ó¦Mƒ^¯ÇÉ“'±téR˜â}™?þñ±eËÔÕÕá¾ûîCee%¾þõ¯ÃãñdwÅ% ¾¾>ø òóóqÅWàÅ_ÄÕW_ M<ês¹\X¾|ù€AïííÅîÝ»³‹—•¬ŒUL&3f9²}2ˆÓéÄK/½EQ I ¦M›†’’€ÏçÃøC:tMMMe999¨¨¨€!Þ—¹bÅ Ì™3ŸÿüçãgÀKöŒ‹F”——cÆ ¨¬¬ÄƱ~ýúc_|ñÀ¿;::²=+Y‘e 77kг}rˆ^¯ÇêÕ«‡}Muu5ª««Sþ~áÂ…Ù§?A"Iyä¼õÖ[èèèÀí·ßŽeË–e&+Y9SRX˜{›5èYÉÊøˆËåÂW\‘]ˆ¬dåãÜܬAŸ‚2)!---ðù|¸å–[Ðß߀jê=ôrssñì³Ï~õ«_á¶ÛnCH=N0.ÄW¿úU\tÑEXµj®¼òJ<ñÄ…B8x𠮸â Ì™3kÖ¬¨óÀ±cÇpë­·¢¶¶óçÏÏRºf%+Y9ûÄçËô¬AŸ¢( êêêP__ðûýxöÙgáv» x @OOO‚A€ãÇãK_úìv;{ì1<ù䓸Îw¾ƒp8Œ@ ›Í†;î¸_þò—á÷ûÞk±XpË-·à@ggç ÏÎJV²’•]œÎ©Ëã>…eÒ¦Ü5 Ö®]‹çž{•••غu+òòòˆf†’7B¯×ã®»î ™)((Àܹs¡( ìv;òóó ±Éy<\xá…hhhÈd%+g«‚Ì®A6BO-Ñè™ýÉT.»ì2¼÷Þ{hjjÂï~÷;\wÝu(ö¡dÛ¶m˜;wnJƸ,lV²’•¬dåiÐûúˆ=ðLý8™_|UUþ÷ÿ;vìÀe—]–}¢YÉJV²’•))æܵZàÚkÏÜt&ý5×\ƒ¯|å+¸ùæ›aÌðÍ‹/Æ /¼€îîÿÏÞ›Éu–çâÏÙz›éYµË#kµdûJްM •`~à„ä—à%„r±II%)°SáH T’Ê .0 †\È¥—Ć2—ŘJlblŒdm–d­#iö¥÷ýôÙ×ïþqt>MOwÏŒ¤i4ú•ª¤™î™>ßùÎ÷nÏû¼utuuѯ‡õp¥30000¬8ƒÏ>»|/àmo{>÷¹ÏáÞ{ïmù}UU166F'¯%“I¼ç=ïÁóÏ?ø‡À£>ŠD"b±ˆƒâÑGEGG&&&ÍfaÆÆÆÐÕÕ…Õ«WÃu]d³YLNNÂu]ŒcÕªUذaÛM Ë× /Gð<µk×TãÞ;#…Ð××Gå];::044„}èC4êþµ_û5|ò“ŸÄW¾ò|õ«_Åc=èììÄC=„x<EQðè£Â0 ȲŒG}=ôþüÏÿ•JŸøÄ'022AðGôG¸ûî»ñÔSO±ÝÄÀÀÀÀpÝÀ=öØcä _ø[‰%Ä?ÿó?ã—ù—±cǶmP­VñÔSOáÓŸþ4[ †›%BgX^†øµ×^C*•»ßýnlܸ@ÀG8räΜ9ƒíÛ·ã¾ûîc‹ÅÀÀÀ°”½\.ãñÇg+±„¨×ëx衇V䵌ŒàÀx饗°sçNjÐÿë¿þ O?ý4|ðA|ýë_‡,ËxàØf````X*ƒþÍo~“­ÃãÞ{ïŽ÷Þ‹L&ÓðõoûÛxä‘Gpÿý÷cÛ¶mø»¿û;¼ë]ïZNÃåƒgKÀ°H§ÓìܹSSS°,‹~ŸÏóþ20000\E„Ζ€a©έŸÙßîÜ9üÓ?ýíý·m[·ne‹ÅÀÀÀÀ :ÃrÂöíÛ144„;wâĉرcGCºýÖ[oÅc=Ö æÖߘAg¸ÆÈçóxúé§qöìY<û쳨T*xÏ{Þƒ~ðƒøâ¿ˆ‘‘>|ò'BÅ}€@#àöÛog ÈÀÀÀ°Hà›ÿÉpe ‘öêÕ«©jßÐЦ¦¦°~ýzÜyçl±˜Ag``````˜ ŒåÎÀÀÀÀÀÀ :3è Ì 30000000ƒÎÀÀÀÀÀÀ :3è Ì 30000000ƒÎÀÀÀÀÀÀ :3è Ì 3¬Çëºxæ™gðž÷¼/¿ü2[$†yÀ†³0, ŒŽŽâw~çw°ÿ~Äb1ø¾—^z ›6m®]»Ø1000°a9Ó4›þÝßßZ­Ïó…B–e1cÎÀÀÀÀ :ÃrÄøø8üqÀôô4>ö±Áu]ˆ¢ˆh4 ]×áº.öíÛ‡·¿ýílÁ‘-õÄðð0Ö­[8~ü8n¹åˆ¢Q±qãFLNNbbbÛ¶mC2™d ÆÀÀÀÀ"t†åˆcÇŽáî»ï¦ÿÞ»w/Ð7n܈'N •Ja÷îÝl±˜AgXŽp]ƒƒƒØ¸q#lÛÆ™3gÇ1== A°qãFüçþ'î¹çH’ÄŒá2ÀRî × ÓÓÓ˜ššÂ+¯¼‚ÑÑQlÛ¶ .\Àm·ÝŽãpë­·b×®]¸å–[Øb1000\&XÛÃ5ÃüÇàØ±cøÔ§>Ńa‘ÁRî × ƒƒƒxó›ßÌ‚Eè 722™ zzzH$Øb00000ƒÎÀÀÀÀÀÀ0,åÎÀÀÀÀÀ°ÀXî W…B¡€ ŸÏãÀúõëÄÑ£G¯‘çñÁ~lÁ˜AgXŽ8wîŽ?Ž^x{öì¡ýG?úxžÇý÷ߎãX_93è Ë÷Ýwî»ï> 5}¯££½½½X¿~=¢Ñ([,fÐn4ìÚµ çÏŸÇ7¿ùM ãK_úè÷EÁøø8BN&ÇqØ´izzzØâ10000ƒÎ°Ô8räžþy$“IüÞïýÖ¬YÓòu<ò€`Dê—¾ô%|ãßh”I¥Rø—ùjÐ-˦M›ðéOš-23è KÛn» øÀ Š"º»»ôAàû~SÿÅ/~‘þ¿Z­âË_þ2[`fЮzzzÒâøÎw¾ƒóçÏãé§ŸF©T»ßýn<ñÄt¾ùÁƒñ¹Ï}®áçpŽãèÿyžuP20000ƒÎpÝL&±gÏìÙ³è¬ów¿ûÝÈd2ày<ò¸ÂÀp“ã;ßùöíÛAn˜Ïìº.FFF¾Æó<¶mÛÏó055×u¾·yófD"€®ë(‹0M’$¡··½½½ôõ¦i"“ÉÀ÷}¬Y³]]]ô÷–J%(ŠŽã¾×…Bt†«C?Þõ®w5}ýöÛoÇí·ßΈ066†O~ò“Ôé¿0==[o½¿ù›¿I¿–H$ð·û·Èçóøõ_ÿulÞ¼™–;;;ññ˜˜˜ÀÇ>ö1”Ëeôöö¶mär9üáþ!ÞúÖ·BUUüÍßü ªÕ*¢Ñ(TUÅ_ÿõ_cÓ¦MøñŒ¿ÿû¿G2™„aH§ÓøÌg>Ó@,žÇœt†và8Ï>ûlSY0ŸÏ£¯¯O>ù$vïÞÝð½jµŠ÷¾÷½øíßþm|ô£¥ûøø8êõ:à…^ÀË/¿Œýû÷C’$|øÃÆ?þã?âÉ'ŸÄwÞ‰çž{ÝÝÝpüÇŒ'Ÿ|O>ùdC©r6˜Ag`````hBN:E i$¡ÙGÇq044DI¿±X [·nÅk¯½†b±ˆÇ{¬ATkË–-ôß/¾ø"~ã7~±X ððÃãcû!ظq#}ÏóH&“XÈØfЖ¾rô+øßÇÿ÷5ù]]Ñ.¼òÁWôÚÏ~ö³ôß}}}´#GQ|ík_£Dá 6à“Ÿü$FGG±uëVˆb`b'''ñÕ¯~pï½÷âá‡F>ŸÇ›Þô&ús{zz`LÓD<§ÎÄáÇñãÿÿþïÿ>gtÎ :òᨕkò»|â/èuÇáé§ŸnÙ‰Ó×ׇ'žx¢)åÞÑÑUUéÿ“É$~þç?øÁð /àá‡F4…eYô5!¹.t!8rä>ñ‰Oà3Ÿù ~îç~ŽEè 7Ëãxü-ßð×ñ–·¼ñ‰‰ lÙ²}}}xðÁ1<MßsáÂlÙ²…¦è=Š?û³?Ãc=†÷¾÷½ ú½Ì 300000´!¤énAhDnYNœ8EQh4¿{÷nìÚµ ù—‰‡~ùÈG°mÛ6躎}ûöaç΀÷¿ÿýxðÁño|ÝÝÝøÊW¾‚üãÔ˜¿ÿýïÇ>ðlܸ@__n»í¶95;˜Ag`````hD"ßú­ß¿þë¿Ò¯Åb1|üãG2™Ä[ßúV¼òÊ+xõÕWé÷ÿê¯þ ›7oÆŸþéŸâî»ïÆ‹/¾ˆ#GŽ ™Lâw÷wñ«¿ú«€;và[ßúþíßþ ®ëâÓŸþ4m.‹¸÷Þ{155…¯ýë€»îº [·n¥ŒùVàÈB¨s KŒjµŠ§žzŠi¹30¬P|ö³ŸÅž={ÐßßÏc ð…/|Eè Kx'Ož„,Ël1–>ø 3è K¦¹ô`1˜Ag```````aEÁ'>L×d ÁÀÀÀÀ :à ۳‘Q2l!˜Ag¸‘a¹.”.°…`````áFFݪc¸< ÝÑÙb00000ƒÎp£¢bTP5«(ëe¶ 7V¶Æ–ë»ì&3ƒÎÀ°pƒ.ò"Òõ4[ †º­¯èìRJN-xÂØJ€lÊðˆwSía&,ÃpU˜˜˜ÀøCLNMbýÿ·=«{0]ŸÆ^{/žûÁs8qâî½÷^<ôÐCóÎòe`¸Þ)Á¦îM+îÚ|âãdá$úýHF“+þ^LʓصjA`úµ\x†…B‰DÇŽÃÄôR­€ùÚ¿`ÿþýxßûÞ‡ïÿûøÞ÷¾Ç‹aY#«dQÒK+òÚ ÇÀ…âLÔ&nŠ{éùÆ*c¸ÙF•\wƒ^ÖË7UÈpŒ•Ö{ó›ßŒßÿýßÇ굫áÇȋ°\ ß{î{øƒ?øìÙ³ýèGñÝï~¶m3«Á°l1)O¢ Väµ)¶—¸8W<Û[ùÏaÕ¨"£dnº€ñºt‚‰ÚK¹)Û'>ÎΠbTnèë „4y¾>ñ"àÀçxÔ•::;;Èçópç’íyPU•þÕ4Y†ëÑy5ªQ]‘†lʈ‹q´rjnEßËЮ܌Ý6×µ†îSµ)ˆœˆ»Öß+»ÆZ3k8”:„·o~;néºå†¼†}ûöáÙgŸEww7>üácýúõÇs〸‡Cx~@H1M‘H¤¡†>88ˆ'žx¾ž¶mc÷îÝ̲0\ŸÖR`{6 Ç€íÙˆ‰±u}£‚ˆÏñ8W<‡î{Þºž‹Ñê(Dþ棈]_ƒîû(%Xž…;Ö܈Yñѹfk(hòºçž{°sçNð<žžúuÇs  !& õKÅömÛqøðaÜyçˆÅ.’;wîÄç?ÿùKÎN­†oûÛ̲0\”õ28ŽƒåY°\kYtxà9~Áç‡O|”ôbb <Çc¼:ÅRÐíZ‘÷Rs4äÕ<$^býZÂñè¶ÍÖP5ªXÛ¹vÅ.tI/álá,V'V£¨áwã±/ãñ8âñ8ýÿÙ³gñä“OâÔ§«æ°÷m{ñŽßzÞñþwàŸþùŸð½ï}ù|_þò—Áó—*<‘HkÖ¬¡ÿ—¤›ïỌœG<¬N¬^Ñ éz1!Çs`¸ºÑ½|ï‹VFo¢wÁ‹‚šYƒÈ‹8ª¯b¨4„{6Þ³"ïgºžÊ&7aSÍu5読Â'‘j¬:¶b ºO|œÌ!’ A¶äÖ ÏÆ¶mÛð?>ù?°õÁ­ˆKqıØ6€>û6wlF2™lˆæn ÏÇXu {×íÅîµ»—â+Ó ‚¬šELŠÁ±¨¶º¬?ïXu »#»!EfÐ}âC±tFNKBJàtá4önØ»"ΠÙ×:Y›DLˆÝTdëוW3kà8‘ŒUÇV줮¢VÄHe )tG‡í® ¦i,Cߺ>$×$±zÃj${‚W‘aH˜1¿aº&¦ä)Bp$}?ú&k“+RmÌõ]”ôN€À ¨™µeýYG*#М…“H-7(#„)úAÕ¨"«dWܽÔl Y%pÎnF\Wƒ^5ª8Q!вQ^‘= „Ë!"/‚ã8Å쯙µ&N@LŒ!¯æay³Ž7 Zš­¡3Ò‰îh7ÊzÏ_xGRGVœQW-50x‘—µAWmi%ªQ]ð{êV=x>/–M8ŽCBJàdîäŠSR+é%hŽ‘»95Ó®›A‰Q1 8#å‘•ëE •‡Ðé _ãÀ¡jVWÎ5jEDøFBcDˆ@6e¨– †c•1Jrä8‘N$£I¼‘{cŵ™ôÀÏ%u³¾| –V‚åZ(jÅ¿G¶ä&DG¤#•‘÷|NÖ&!ðÂMûÜ^7ƒîx*F1!HÄÅøŠK»»¾‹Ã©Ãˆ цZ•ÄK+*‘×ò-;|â_ÖÁð<à#•D…hÃ×N€ë»-yÅ\+!™z†žC/í2T# ȨªÆ¸Ð躬—›t8B0V[1÷ÒölLÕ§è½dýZtßæhÔ›Š¨¶Š¬ºrê:£‚±Ê:¤Ž†¯ÇÄJz‰öi¯„ë乿­$ ÒÊ1¨…Mˆk\ ÅVZöñмˆ¼š_1×êø²j )\'ÂpeXøÄGNÉ¡+Ú…šYƒåÎ_Îòˆ‡²QnÙ†£(ê+Çá®UÔÍ:Í,1ƒ~ aºfÓ†Œˆ •†V†ç‚ñê88žk2vQ!ŠšYƒã;+Â+Vmµ¡%mf&"¯æ—=ÛÔ#ƪcp<7;Ækãy±µ“ÆK+JÕr-ȦLàxβTs=e½Œ¨…îí¾ ylÊ-3haYl¥p"¦åéÀ¨q7ïÑëvåu«¹N¢+æ`µ]#•‘¦èj’š£­MåºU‡ë»-¢ˆAͬ-è๞0#•‘–{r¥­…Fœžïa¸‡¡î·OüËb‘_+¨¶ Ó3Áƒ‡Oü‘÷ÂLhË瓲¢+!°‚v¾•¦Ü]«’ IDATðwÝ úåÖœ*F¥©Râ%ŽT=uÃ/lŨ¤¿YuÈ™žór7t ½ÎLä¿ÁÛç9¶o£l,ïtvݪc¢6±b'm¥ê)œÈXVm­ÐV6Sâ%¨¶º¬‰q„;0y5OË~–kÁò,œÙ\~<Âq$AB^›¿ô¶¬µÇq0\cEPš­!¯ÝœêpKbЫfõ²6FÕ¬¶ô“Ñ$ÎÎÞðÀXulNÑžçoü!- È«yÚ©à%£Ô0áHäÄËj±¹È)9œ@Sv—c8n„zòxu§bª65ïk'k“ÔAk¹o9ñ–u—FNÍa¼:¾àý:/–d2$QZvœŠPü& NXáT¶dz/[Ms…åZ¨šU‰¼ÝÑçÝ{5³F³*95‡ªYmÌ ñâ²î»÷Ý|ßÏ*٦ʓ~½â(  0VƒbÏx‡m!-Ó#\ðónäY¶cµ±–Ó|â£l”¡;:"Bä²ËË ¶g7ð,×¢<”¶ ´å Ù’¡Ùbb0˜c¡õ~˵p¶pŽï,ë’B^ÍÃ÷ƒ¹ݱnÍE¦Þ:“–U²p}·ißhކ y"ƒY–íNžïápú0:¤èŽÞ)j½†„0Ÿøp|ŽïPíóåäl×­:lϦ÷†çxxž7g–8¼Çs‚û¦žGžãtf/Öý¹’5M×Ósž“žïµäd…³B˜A¿L„ž¢ã9 ª]i¶Ö–YÉÇqË’”2­Ð²ÇÚõ]Œ”GZ¦Û-Ï‚é˜Ðl ’ A³µyå Ù”áû>©0\"'BäņZúrd ‡'ß…D£vÆn6F*#¨™5$#É—š®f–~N@2’ÄËã/7â„&1jÈk˜¨MÀ÷}øÄ!tñ\éûëT=…ñê8:¤ÚN9²j–Fç¶gƒŸ×hyÖ²º¾¢Vlr´DanM˳P7눘® žã!ò"2J†–‰xîÚ•þRõÔeϰð|¦ÌùÃst¦Yvûó†1è%-`wD:0Tš—dj¸‡ ßʨ/纫j«xyüe¼0üB1¥¨![rËrBݪCà˜ž BHÐïj߸™ˆ™‚2.qa{6^@Dˆ nÕa¹xއnë˶´0]Ÿ¦¯#Ò)yj^þ†O|¼‘{R¢btÙtŸøÈ(™ÆzLŒ¡nÕqpú Rõ†ËÃ8™;‰ƒ©ƒ˜’§&ªU*È’x88~í-§îÓ5ñzæutD:ÀqAP0_æd&!.4áõ`Ù”Š!-Ü!ßh®,’áxºpD^ j´‚ùu«~M"Ù¬’ dv/ç=jçKçç¼Î²Qn"r†å!fÐ/w³PO7&ÆPÔŠó¦ãÊF™Ö‚ÊzY5 ÍÑhÝ<"D®œ€\VÝÔó=œÈ@A+Àr-üdì' šáò0$^jÒNö|/à JŒ £Ü3%%]ßm8xŽGÕ¬‚ã8¸¾»,{î ²J–ê/¡¨çåo¤ëé@¿^ˆ€çøeÛ—­X «Yñ­+Ú…sÅsxîüsøñè±j?ŽgÓÆ.:Ú>‚>çˆix?Ïó°\kÙã&k“H×ÓTñMâ¥9Ï!Û³Q1*—êçŽN‡'Yžp¸f©èù`û6Jz ±1Hx¡©«d&tG§™PÓ1齕 u3àVH¼ÝÑ—œéNÁ¤<¹ N‹®ïâtþ4R%Óö+ªÅ¦=n¸ÆŠÐù¸æÝõ\äÔâRU´ù†¬ÔÌxð „@¶dÈ–Œ)y cµ1äµ<*zåš°‡ jJ.+…y* ]‘.tE»PÔ‹øÙÄÏ 9|âc¸2Ürn´áp|‡F´¦kB$”Œ³÷99¨L×lðCv»ã5Ék•þ*h…* Ç€lÊ”ËÁqTGSÀ#ÞȾ„˜R˜œÃ1–¥(MVÍ‚€4µ‡ œ€¾xº¢]èŽv£;ÚžhOƒ˜ íÉžÅsáÀÁöltJH×ÓË¢EwtœÈ@\Œ7Ô˜çŠÐëV=0₤g]'€ç.9,Ë¥­T·uÔ­zSÖçx(–ËimŒ[H`LmßFøxràcÈ)98¾ÛµazK+uK@PÒK˜¨M,˜7$›2F+£XXœški =ßCNË!.Æ›®}9êñ/{ƒnz&ÊF™J ÆÄF«£mð¨Áó<|ø°=!‚˜ƒÀ ¨Uõ m½Ô F¶gã§?ʼn܉9Š¥ààôAœ@=žh&k“Ø7±y5ªQm9º¯nש‡Ìs< ÇêWFmI¢¥:”lϦ\hÐgÊ¿†é˰öu-ˆq>ñq4sÃåá½¾¤—àú.½/8ðàçŒìjF £ÕQ †™˜å6„&ì< [ gc®^s ¶Ò‰#؈AQ+.‹–½ÑÊ(òj¾Á‘»HÚ9wE­BD²½Àà…×£¨è•e‘y©™58žÓ”õ8>ñÛ¶ØUŒ D^ ˆ~¹.3ï#AÝ”Mgi z¨VX1* : †ÊCð‰O™ø­ÞgyÊF¹¡£È#T[½){Ò¯Ú ×Í:mW. Y™”'ÛzÓ†cPæ¥O.m4Žãƒ”´nëKÎ, Òôé|šœ!›2=ÌÃÏÜëÁ…ò<áyÄÄXsºéöpƒI¼È1‚GÙ(/™'éxMZcc8tW§÷nv„ª5³Û³¯‰A7“µI¼4öÒ¼÷“€ UOQXxpK¼„t=Ý2é'ó'›J*q)ŽT=u]"‚ ¥ -î\ßÅ´<ݶm¾µ©›õ–jq–9†„”hʮѶÇzZ¾Ä°<  F×w©Cp- ºã9©Œ4{y-ßÖ8 ¼Ð–W5ªx¡mêYäEØ® ²äå…0°ðˆ·  ÕR1XD2š ž=´žÜh8t[o¸÷ŽïÐ+3ès¤8g{òq1޳…³mÓ@¡ö·åYMÆÏ÷`zæ’N<ª¼žy=±ðÉÚdûî"x¨Ì5Ÿ½QxŽGO´5«†®hWÓû5;HLJëÄsÜ¿³í 3è ôäsj®É“ Q¤ê©–‡øÌYú£·–GåÖôR1Ý}âãhú(M÷wF:1\n›â× ‡S‡“bm5®^ÀºŽu-œšUkzŸGñaºfËêû><ß[2xªžÂùòyJ’ Y%Û’ >l£ÒD¼hõ€Ì†ç{Ðl­9zE@¾! K½†me=ÑìŸÚÕZ<Ç¡l”†Z4E@ÃY<÷¹ç0rxC‡01>±ä)é° ‰‡îh7öMíkKŒªYÁ<é0’«™5jÄmßn:à2J§ò§Ð)u685«pÁ!t-;\ßÅ‰Ü tF:—âØ?µŸ’>ñRÊ—ëì*–ÒҜʟÂXuŒf•¶©¥HK{ÄÃDm=ñ •†šRïžïáhæ(|ßo94 , j¡¥3r'Âö&‘AÀFÐó½kR*ªUü×è¡+Ú…¨EW´ %ƒŸŒýçKç¡Új[ƒÎqªÝlgRwtXžE³í œïûKz…{5ÌäJ‚„šY›ó÷eÕ, Z¡aÿF…(ªFµAÓ‚Ò4HÈó=z?™A¿Ü§¥¢nµ(ßí±ì±&YÁ‚V@DŒÀ#M;Ï6 çJç ;ú’®ïâ§ã?E\ˆCà8¾C…Rró”7˵p:ºí8Éy×ÈQòÍìÒÇÁp‚·TiËŠ¨'…¼†ãÙã‹bT=ßkhYÓ½e¯ocÞö·áí¾½Û{—´öêÚ^PŒX®…ƒÓ[F9%GÕüB]€°Ž(rbƒ´©éšxuâUpàöºá¨å\KbÜxmœÊ ÇÄ ZƒÅAB`¹VC ×eeu.F¥³#^Ù’±oj_àĘ3—â(é¥%©£—´êV11†¸Ç+ã¯4­œšÃÙÂYZc½|â·m]Ë(Ê÷|–W2ju«N™îK¹†{ëåñ—á—F<Ç#M¢fÖp$}žïµ-pÚBgŸ•ª£Âó½¦ ˆ­–0sºTp|'Ð¥ð,ªÆ7WfçTþ$^j¸æ°D;S`Æò‚ìÅLÃoyVËýË ú#Àv‹'ò"ÏÁ³gŸÅpy˜Ö¢jf '4õ-SÏÒÖñ³ÉŸÁöìE'ŒBp2w2ØÉBu«ŽºUGTˆb¤2Òô™Rr µpEÑ!Ë|vÿh¸>¡.öRLì" (è—¼×ÞX/NåO-ÊhÚP°á>»5*"À1|ÿ~ÏüÕ3=;Ú°¶Žã T*Ñ¿•ÊÕ±ñ5G£©àÐÀtG»1ZÅéüé†C-Œ`CVtèX…ut‰—‚–¯‹Û¡éC¨tD:šŒœë=ö11†´’¾&Ä8Ï÷pxú0º"]”­ÞïÇkS¯Ñèg®´cÈk˜½× ‚6ÒÙÑO|¼:ñ*mí*ëeý©¶ºèQ,Áhu4 ^l±’M'²'hfïPêbR¬¥¡³< ª­‚㸦y žïaRžDG´ƒ¾6Ä´<ÑÊ襯sK+.ã‘€h›®§Ñéj2ÔÉH’ŠúÌhÇíÙ0]%­DK ÉÊ®±dGà ¤¾UK…nëˆ QLÔ&Zg+ÌjÛ¹æߨä¨Ùt[oدíf¿ß,¸ª¼DN͵LÍÍŒÒ ×ÀGŒ=êì]¿u«Ž®HWKV4Á©Â)È– ÅR¨W·XCë«f‡S‡Ñë ÈwÇ@ú¾õë‘Ss¨[uôÄzh4?X¼â)>º0úg¶Ó´úâ}y‘z“K1ÙÉvmT*ýì<Ç#"Dp`úî|¸mšræCÞîÁÐ –kÑ©\¶gÃ3=d‡²ð\k·¬Åºmëðð_< Nà0y~?øÊð‘ßø"Éà÷ž?O<ñ|?0*¶mc÷îÝW|½²)Ãp hŽ‘i·Ag¤¦  °wý^ô'úa»6òZž–PÂÒíÙÔ8—õ2 ×@Y/ãÜèõ6ì×°C6uo¬µ°¨ûu®”d^ËcMbMƒƒèú.Žgû·M€bz&Jz Š¥ CêÀºÎut/¸¾Ûà¨Q§VIádþ$îZ{ÒJ³× rßÚ¦úý‹v}¾ïc´‚[{nEA+ UO¡/Þ×òýŠ­@wttD:`¹4[£6×wQÒJtïÎìÐɨ¹lﺽA­–`Iuú‡JC8S8CÏ›VèŒtb>êI„àpú0ΗÎÃ%Á}¡’¯ž9g´ÊqAÛñ.ÁRL, î†k€€`mÇZd•lÓãod߀¡eÊ\â%dÔK½fÖH‹šÍ ú{Ñs±/CÄÅ8D^Ä‰Ü dÕlðE9Z¿l0¶†“ù“ôf…žÝb®ïâhú(ík fÛ³áú.UŒË*Yú€µ"RõÔ¥Û ×@ºžn8 ÎÎ`kïVlîÙ åÚ‹ßËk¸4[k`d'ÄòjçŠçp׺»æŒ³j·tÝÒòû3Ó^ŽïC\µ¬Âµ]ô­ïƒ¸J„(¢k¶­Á¾Ò>8Î¥”éí·ßŽ/ùË—~f­†o|ãW|½-¨•:žÙ’±*± 8ªæ6RAªžÂ«ïÄšÎ5Pmýñ~xÄ †Êð"xއæhè‹õ¡nÖ‘U²xmê5tF:›ÍÑà/hr ¬Š¯Bͬ-Ú~kËC‡ÔA{‰C£ª:#MÏ¥ã;¨šUTôJÐ*D`¸&åIlHn@BJPq¤Ù)áW'^ELŒá7ý"^žx“µI˜ž Çs " jÛû¶/Ú5ª¶Š’QBü’“ p/gÿä~(¶Ò–t˵¨î|ͬÑgXµU®AÃ5h7FFÉ€G£<Žã¨ÑX ’Õ™ÂĄ؜?›‡ù²Ç‘ÚI¾>&ÆhÛè\.LÙ ¼ÝÑÑï]ƒÎs<Í®ðºYož€€Ûp¶p¶e§Pè´–õ2Ï$HMõsÇs!Ü|š2W—rŸ}9Û³ê‰õŒD^ÇqÁ´µYy¼6Nk—%£Ó5¬0æùòj¾-«yZžÆùÒytG»|×wq¦p¦k"*FiÊ ‹ƒ4º½¬µñ,¤ê)p×P[¶\ “ò$†ÊC´®nºÁÁ¸Ø=÷ª­6ÕΈõµé׿l ,êEì›Ü×¶5”= 3‰îöÜ¿oúÿß„þ[ú‘>ŸÆè±Qd‡²8ô­CØ=_¼d,DQDWWý›L&¯êz3J&¼XÓ™jy‘Þ÷×3¯ãÅ‘¡jЇ{hßÔ>TÍjK2¤lÊT*4\KxKÞþSÒK¯Ž7¨ð> \ðl¥•tƒSa¸Æ«ã”:9!&k“(åÕ¼çKç1VÃ[ÞŠÞX/úãýp|'˜¨çÛA’’^T~DH€ mˆd$‰Ñê(jf­-AÕñJ6µ<«‰£RÐ ´Láfg4[£ª•3 Pݪ/‰†OüéÙ«:Ä9q1°ÈÅ(¢B!B×`.•P»~©FÆÎœÌ¾ñˆx ¥F×wq,{ <Ç·upD!(SÖ¬½—3íOÈ…¹YëçWeÐkfí²Ø„!óxUb\ßmÚh–kÑá 11†’V¢ÇBp¡|Ïœ~Óòts_¢kàÀôÑ×wQ·ê(é%LÊ“A/«EZIÃp (–‚¡òPK×™›³é@ñLÖ&éàƒÙˆœšÃùòyÚçÖ2»YÒ‚.Ó3Ö#"Dàz.^O¿ÞúóûŽfŽb¬:Ö’!•ðÞi®ÖòÀˆ$"Èäpáà¬Þº¿ò‡¿Ã_:ù×¼–‡åZ8”:Ó1[*£B½±^ˆ¼ˆd$IË"3åB Ç€OætJN¡7Ö±xăæhÔ€†YU—nN¸O|œÈ Î”ã;t¿ÒhMê@2’l0áAÝJôHàÄ¥8 j²)7¼¯fÖ°ojVw¬Æ[6¾Ç¡?ÑOSóº£óôâ¢×wq¡|Ög²š9ŽÃªø*ôD{ætd€Ø¨ÙR‚¦w Ä„f–пpM¤”$^‚éšúôºUo:?C ÚÅ‚ç{ çLZI7±áC¼È‹KVú«è•`(ÕE5:ÝÑ‘ “9ÓJçKç[Fçá0 P#  àe£Ü°~­æ0ƒ¾Ð§Zh9ó{!†½!.ŒÎß¼ñÍè÷£n×<ŸZµUš>„¨Åÿ'¦kFýdî$*z¥\b¸\ßÅDm²ÔìyއéšH×ÓAϱç¶õ kV Ê0%O¡l”iÏ÷„<phù¾´’¦uÙœš£ÓRL*êAfVÉbZžnˆ¶{b=8ž=ÞRv¬2†ÉÚ$º¢]«Ž59G!ÑOàZ÷ð†X5° ÷¼çÜý¾»1ð ð¸¥kÒl ŠÔM+f³Ù’ÛFq1NõÙ ýp lLŒacׯ–ÙÕÈs¡¼m˜•‘x)È-1®jT1Z¥ÎHÙÚ¯fÏ·îŽu7:´ ÚˆKñ¦ÒÒÁÔAÔí:Þ±ù RÇá}7\ƒ>Ï‹5¨E³5ä”\0ŸÞwPÖË ÷Q¤¶'¡rÄaù$t8Â®šœš£éö™$°œ–'`¬:`yVS¶g1ÓÐÄ¿Ôýâ%ƒ¬’WÌÆöíi:ؾM÷âxmÿçäÿÁSGžÂwÏ}oäÞ s3<ߣ™ŒÅÖŠ0\ƒ >½ž}ª­‚1‚„éútЕáY8š>Š˜kiOÊú%!£„”À¤<<ï3qáž¼™ëçÀUÔÐÓJº©ÿ|¡˜Mˆó‰ã¹ãHH ì^³µ€‚^€éšó¶œ+žƒb+è÷Cs4¼4þ~eÛ¯à–®[PÖË8™;Ù’¡ì/ ùè®xˆ‰1:®oö{f~Þ0åjy =ˆêÀýå­gcµ1Ú£®t]ðüà Yìá%e½L£G˜'°:±ÝÑn:ùhæ(îßz?}(tGÇñìqH¼I0^Ç/ø¿ÐÄ"5]Ñ®`èƒkÓV®´’Æ‘ôhŽFgÞ»¾‹µkñ𮇗l.zŨPýæºUGNÍaCrLל—!<›¡Ïó|@¢’:[¦þÂYá=6œ€ù­;:zc½¨˜˜®Ù6³sU÷Ô(Óˆr¦–¾îê4‚ æ™oèlÌëlÏ0úe£ŒÁâ ¶÷nÇŽ¾ 勘CÍ ôÅ ¢BãÕqìZµëª¯1£dà—ƒºU_Ð} ¯5tÆffNBçÝr-ȦLë¶áÈTŸøÈ©9ôÄ‚5y5O{¿=²4Žh^Í_*[y6²j†cP+íÓäY%‹®h%÷η· rÖëEªžÂ¹Ò9DÅ(¶ölÅý[ïnIýš­Qéç¢^DA+ 'ÖC{ßU[EªžBºžn› +êEDÄúb}AŠ’ ¸ 3Úùlφã;ój…°½•%G¦ WVÿ gô†HÕS˜’§pûªÛÑëC2š„îè´i.ȦŒ“¹“4jé:`»6~2öäÕ<¥Áó½#ëøÝh­@Çs¢® ·í¯ßÖÞD^¤Ãe¢|´-{Üp d•,nIÞ‚MÝ›0^§…íÙ‹ªg¹—2¡ðÏñÈ©9¤Õ íÖ ÔÔfÊ0QÖË‘‘ ´¬g‹í„Šj<ÇÃ%nCþ|金ŒÄKPíö’Ÿ.qi$ÎEy1HÁóB-X"]ì’^¢]%á è°=´]Z8Ì]®æùÒy˜®‰½ëöÒg•\ü“tbØïVÒW-/ìãµq(„ë\·¶otG§šìá=5]3˜ îÔñ›mðÂ=Úïëï€á´m1dŒ/vé$«d—â0\ÓõiÊá ³=s¥ÑÃÒ]ͬ͹¿g 'MÖ'±¾s=~çÎßÁ£w=Šß¾ã·ÑïGªž ´ˆ·$ÊÊF™¼©UL×§áúÁ¹ÁÃDmÇ2Ç‚i-öhxþÔÍ:eÅË–Œ©ÚTc ak7uíüª ºé™têlCö€–ôòZ¾eÚsv¿ã¹7Às<ö¬ÝCšaýJ¶ä¶ò‹§r§h?wˆÎH'tGÇ/üçKç›R‰º£SŠŒ*uJz@Âx¦k"M¶Ý í"͹ÍŠQAͬaGßìì߉‚V@É(Ñv£ÅôŽU[ jóð)CVàÄÄ= 8ŽƒÄKx=ý:lφb)8š>°‡9Ž^KJI5]Gø=Û½4’Ñ'>ÒJàeäÍÁ‡ö~ï»ó}ØÃFÓl IDATÑ·Š­Ð5‹-.ã?²"FQ5«°=Óõiˆ¼üÞ9¤;mϦ½æSõKD¬0²k·¶a,[2†+ÃÐ]= BÈ’ ÕŒà™³½ %Q¤†”;#×* YÐ mïÐQYÓ±]—œ/艎‰1ªaûA†FµÕ«žì§9Zƒ Žé˜xiAû&Œøf:á/@±p‡ªQENÉQç$ìnïwÑ(bUb6uo‚È‹”ÔêúËÙ³e£ Ó51Y›lP»›I²li¤/ÞçˆAVÍΙÁ´\ §áù@åÀôC«=ç¿adlA+ «féV×w"´…n1: /  hé&Ü3í²ªÓ,0£9~8ôCŒVG[¾g´2Š’^Â]kïj(xÄCg¤ÉH’r[lצµçvb!—“†ç;„Šb¢d æ+׸¾ ÍÖžK¨ìrI/5(Ä…%·0såùºÐëA¼#•*̲ةh˵¨$ðBƒ–GX¾™kÏ |0·=&ΧZu×wÈó˜'àú.¶÷moRºcÝT{Áñý/vV‰BËE%½DÏôŽH²jP>h<9¾C¯w¦3#tíÂsÈôKgŽïàPêíTb}ˆœØph‡‚øQ!Š„”@BJ *F©4äÌúðÌ`8¿îYxއã;è÷³ÂÍl·õèMBޤmkg¤³Éó ½Cß÷)‹¹;Ö8¶N{‹Û>Œ¾ÕVƒ~.ŒÖFÑéÄšŽ5è‰õ`cr#&k“ÁAuQ‘j±Ò]­‰—`»vS%Œ:”WBJàPúΕÎ!iÌJÄ¥8²J–:B‚”ˆ!ªsIcZ¶d¨¶ÚÔ»Þï Æ3ZJÀSXä`&éf&Kwº>¤kÛ¤ù æ¤X RJвnÃÔy«ˆ~f»åXu †k2–衲µHÝÑ¡¹Íæ„NÅhuÕá–Œ0å<Û©›¨M «dñÊÄ+MÑ ç{8‘?d$‰ý; ŽG2’D_¢/(9*;¤ŒUÆ®Ê)¯ŽÓë²\ëRä¢þ÷|ëãÃoÚëŽLß›¨MÐHÐ'>máîÇ]rä7$7 «fˆçΛھ\TŒ !ô³Í„Àd¼VŽoxΆÏÇqˆ‹q¤•tÐæë™týß¡ÌþñÚxp]šÎGŽãhûnøïÅt\d3({…R¯u«NKc„ $Úž·ª£ÒóHäEJFMF’Tµ0<{f;­©z ‡Ò‡0Vc}!˜yð‡úÑ<Ï7½Fàäµ<­]ÍL·[®…Ó…ÓØÚ³k;×Ò(hMÇš@bÒ(Sà&o^Ëc¸2LŸæûŒ!+HÁÉ–ŒŠYÁæžÍèŠvA±hŽ6oy%¬fkÈ«y¬ï\O1v­Ú…ªY¥½˜­D=®8ÒÑò)çlqOÂþT ˜Öd¹A á쇂Ge$Ã%,µ8¾þÔvF¥k:Ö4üŒ0ÛR1*°\kÑ#ô¢V¤Æ´jé¹îh7ÒJ:`:_$çµ2va±l”¡Z*ÎÏR‡5$R…×my˜µ`àLNÍÓ1çt"®*mk—¦„]¼Oš£ág“?CFÉ´”rµ|«¥âßéÂé n¬åñzúõ†ïÉ–Œ¡Ênë¿­¡…Èñ$£IÄÅ8úbB=˜/¶h†ÓÁ®Žç4muW‡b+˜–§!pœ¼†0z9±iÿ†â;%CËŠ­ÐômØÝí¦$Ø­=[áùq¯XÊ¢¶®µ"HÀEiáp{¾×Ú ÏØ³3¬¨EI+a¢:ñÚ82j¦A-«"Q³SÒÉH2jÖ‚õÀâîÝPÄÇ'~0 ñâÙ“VÒ” tD:P5ªT€av¤t`ú@ ²Ä —õ9ÃZKÙ(CwtlLnDO´‡²içª_…‘æåüN”Áºµw+ýÚ–ž-y#•‘¶ÆGçG;~ãŒò°N¶Ï…‡^O´§aŠØìû }ŽA[ TGáHƒGã ê^@Ðf"ñªf•ÎÙ^LäÕ<$N‚n`UbVw¬æ“_NÑŠp83K‘Q2 ® äš‹‡ªéš0\%ƒñê8[¡ÑDA+PâaFÉ@Ä dÃq-E}®²%ÓTmX9–9†T=E#¾Ù{×pŒ¦g²jV1^ é·vߊýÓûéóE@pºp¶gd¸{Çõ]tE»"TrU¶dšq ×+KP5«P,’ Q OÕV1X ²yðÛ:Ó!É5ñQÔŠÔq°ÜÀQ[Û±–:ë“ëc˜'@¸ “3×¹p¹geNÍÑëlÅ»áÀµlcµý‹ÙÍY÷”çø@PæbMY±ªÉ¯X Jz ›º75[¡A§£ƒiQ¥nëV¾ïÃp ȦŒîX7R‚¶«ÍÕªk{6LÇl©å€ž3ºdUg®‰íÙH×ÓX×¹®%sžôy’‹Ú!"D‚Ô»kÐ(&Lr‡m}Û‚ÍŽ€’èõÒ€3'óøÄÇ™ÂLT'šÚÊæ;D × ÌÖ)y !‚Õ«±¶c-%’ÍÕ>æxNC!˜®OCà¬ï\O¿¶¦c V'Vc¨2Û³ƒÝ¿zƒîxe«†émÃ1p* Ï]xÿëèÿÂ3§Ÿ¡©°0ÅÜ®3.Å1)OD¬‹)ípdcx†„¸îXwŸAâ%tF:ƒt±¯w¡×1_ÆÂõ]d” ‘D@ˆómô'ú±¶c-Šz‘êºWÌJSt¦¢Ãˆ!Ôr,]Rœ”'1V ÊI¸(Y°ž‚ë»èOô}ξGëÉa›Î¢f"ôbCkZA+à@êØû®g§gg§3ÏÏÁñÜ»á^¼sË;A@ðÒØKÔ(†í”ë“ë~–À Hˆ ¼@ÅŸÊzP ÷YLŒ¼”+(…Ý!;Ýò,È–Œ y†Œj­˜•–?ÛtMªöJs¡c!ò£E¡ä½p°Lx&TŒ Öu®£Ù¬¸Çúäz¤ä-³,ÖàÇsPÔŠMلЩ9œ>ôø·8‡¢U*†’Û©z ñpkÏ­M¯I²œlɴçl–ç탿œ=¦ñC©åÍ=›çÞ5æLï+¶Ò丄$Çð:ÃaB³3‹†k §æ°©kÓwbÝÔ½Unö&y1H ^†`º&¦ä)lèÜ@Yè„DÅ(lÏFO¬' ¤ØJCýlJžÂkS¯¡/Þ×ä•…­&í<ã’^¢³ØÇ«ãèŠvaU|M‡9æÛd—Û1RA¼¿a˜Ïñ¸sõ¨[uLÉSA:É·¯ú^TÍj@Z¼È*ÿÖ™oáó‡>ïžÿ.&k“ˆ‰1ZÓZÈÁ"¨UT*JZ‰2Và ea:]s4lêÚÔ´BU¶°Î½Ðö¼ó¥ó #LÛÕèÂNŠ é÷cS÷&øÄÇ”´¶¸ž‹)yªá  •ÞÂhf{ßv¬ë\‡3…3V4/!&Æ-[‡+Ãè‰õàçÖþV %-—bŽvQ+R¹`Ï÷ðÂè à9]0ƒª·…N!†c4”\\ßÅÉüIlLnÄúÎõX×¹¿8ð‹8[:‹Áâ &åIäµ<Þ´îM ‡¤ã9”\*p¢B=±ž ý"y j²ãÕñ+b«ŽQ"ªíÙÙQ/¢fÖP6ÊYÌÖ[fxêV½ÁÉ©Œà¥ñ—¨ƒçd>žãQÔ‹ H*F¶gc}çzú\G…(ºQ3Ðm:ÜsEÝ ­±›®‰º ¸À@ÈŸÀ¿Ÿúw¨U£Jï×éÂé@_ý–·âöU·Sã™ut×wá’Æ2XVÍ"§å°kÕ.Ä¥8xŽÇ[ny Ö$Ö`ßÔ>ì›Ú‡N©³I Æó=ª>§Ø!/IB6ƒÎŒÐ€‡„ÀË!îxN %0chRØyb8U¡›MÚ²=%˜a>óü™®Oc¼:Žs¥sÔp‰œHUßf¾6£dÀs<åð„ØÖ» ®ïÒw®ÚrÕ¨.X*LokކG_Ä׎ ?úªf›{6ƒBåfgü ÷ìB¡X Šz‘¶âµBO´‡f”<â-*qµbTèçê¬îX xU¡DÓóå™°]»É ‡5Ú›~ñžÌ°ÆkãàÁcUbn6\µA'èÌÞ0žïᕉW$GcbŒnÈpòÚ­=·ÒªN¹ÄEO¬‡F™¡òØéM¹I5Ê#dKF‡Ô‚^hÚAŸbx@çÔ,Ï ªEw¬;Ð×KA[]‹H9“iuÈ{ÄÔ<…ï ~§i¦údmñ°¥wKÓûúãýX×¹#•˜®9§±›å^g^Ë#&Æh¯2Ïñø¥M¿DINá˜ËŠYi;|¥U”>RAA æÂ+–Ò2Ì©9D…(%KÍFTˆBµU˜ž¹ Ra^Ë£bT‚Am†øÄÇ…Òš*W,' /Þ‡ˆÁ†ääµ<ÕŽ QÚƒoyVç8š©XÓ±»×ìp¦xfNGbºHénëÛ†d$‰®hW £y±Ž-r" ±(iZß¡=õ5³†ŸMý ’p÷ú»±ºcu@ ²dø¾Oï©éš §|âãTþ"|w¬¾£áÞ¾sË;!›2²Jw¬¾£áùò‰Ibô9šYFñˆG×8{°NJI¡;Úd4Ù2-Þí [›×  •‡¢8'ó'[ÖÒËz MÚé "+8ØcR ¢ b 9€ŠQiÈØÄÄ[Aºž¦å†ŒšAG¤#pvâýèÀHe¤íç$„`¬:†¨Å-É[£è÷S¡Ã5 %&.KåYAomújf ïÜòN$¤’‘d žeÊ ¢$3ûw€q<\ƶ¾mèŠ4À¸­ÿ6ܱúÄ¥8î\}gÓžJF“Ú×ÅÈYàtG»æùÅ^ÿðÅĦjS Žò&åI*’– Lפº)%ÇshÊu¼6Ž’^‚ÄKÁĸÏd^ÍÃölléÝ‚’QÂÑÌQjÐgº«£fÖ°¾s=˜ ™$HèfÇÛÊœâ2Óò4òÚÂÈ€E­H³„ܳáì^³;rÃ5«΃+!å¥ëA§Ç†ä†ö=ÚMy!*œŽvµ™ÂP¯¤d ÷5kcèOôsÍ ¨hP(ÊäNâ1€+¢9-ÌÎÔVŒ {érÕ™AG{òÒ`q0è3Ïmò,5GCFÉ`cr#<âѹIDøH`Ð}¯§_GW´«e„,[—Æ>F…(Šz±¡Öª›…ŽÀXm }ñ>z°B°*¾Š’QfGÊ>ñQ1+ Úõ„ ÿ{o$ÙUŸ‰~w_rÏʬµ»ªºzQ·ºÕÝ’h­ÖŠÀ!k ÙÆÆ1`ûçíóþ°#ÆðæaL€yÏ››@¶¢-ÉêER·zUwuuí[VUfå¾Üý¼?NS™•Y%pŒ'ìK!u§2ï½çœßúý¾}ö¯qlîF#øÅƒ¿ˆ„‘ÀScOáØÜ14¼fK³è‹ôñçt·¥w=Ü7s"~@…šÁ›•üó}V×w‘oä¡Ëz S7ÕÝ:jNíMõþ$Q‚xp<u7”€X(/ Ëìj¯œ>D‘N-0&¯7*ÇÖœ¦ S0Q-Š ËÚæº !8µx „ÎìW´‹Ðe³cõEúèÈ݆wƪ‚(p£Õ¢|o]×sVj+-hóÅ}úÂ}«a¨’ŠT(…•Ú nרd–ÊU%«/ð0žÇ…• 8Üs;;ùó„ÔWžªºa_wê-€ ©âŠV»rgÁέ(ˆ¸kè.ì>ˆè@ÛžbÒ³¶oó^tÒHRMƒµ ˜9BS6‘©fÞTE‰í‘ÉÂ$S²q¦ÕÆ*‚ @o¤—¶­j´ì®ÉÇ7t2Ø Z¸kè.ŒÄGðÒÜK(Ù%ÚÊÕe»ŒŠSáñ˜çH|…F«õÕ-3ð™Ò æËóoÊVfëY.„ ¥ªVÂ\ÃœÑ 7·¡~Ò~ðxaa5ŒžPϦŸ ka^ °}šD%¤ß '!„sÅ;¾Ã«I3 A0¤`D‹²g^Í_ÅxaÅ L'áΦÏ*íäô™Œ âßâõ–ºå[m³” ·Á™–Æóãm_¶–å@¤fÇ +:¼À£…²Aé<H¢„ˆéØ?òU{Í˸™ý¦P'Äþžql‹nƒ"Ñ1–BÂH á6Pu«ë #·ŠL5ƒ‰ÂD :ß|<;ù,¾yé›PDïßÿ~<²÷ìˆïÀãÇîän:„uÐÊdqs¥9kÞd ,Cñ!.g/ó½Usj\Z˜ÙC6Ðevq‚™­®¥êò<ŽÍk ›G›š¢]¤Éš ý»CÿiÏõ݇jy& H™)ô„{pCß (;eŒ­Ž àœåÚ2"<cÔ‘ 4—2Rçþ¦ìEnàr+!¤eÁeQFÉ)µP_º‹…òzB=Ðejø ™"\zª¨Rá‹-Êz¬êK°‰&i¸kè.¼ÿûù¡%„@WhÐîƒëSúÉBÍ­ñê@§ …e~›9'Çw0]šFH Ár-:ú8ˆkqn{ýPD1-Fç9}——87þ^Ù.c¹¶Œ‰Â²õ,lßFÙ*sãËÞçruéPºí€î|4YCT¢êVùøZÇÒaešÏ:7_!%„×W^GÉ*áÄÜ D´H‹rÑ*‚‚˜F™¨DAä º[ï¨Æ»bZ¬­ú3B\‹ãÜò¹0RÍ©!SÉ`8>Ì÷œ"*¡ï6ßÈÃömøÏ)C7 \N-žj 6;c»ÂõÇó•íÙè ÷ ªS0Sd#‹ì„ü¤‘äýñ€0eq=¾¥ìjT‹rÜHÍ­a{l;Ïf%‘N0~?ðÛÈWQAÂH WÏáûW¾•êJ[iv®<Çß?û"rõï×ŇPwêo˜5.T¼E“Œ IDAT E!.ªEqÛöÛ0]œÆóÓÏó¶ëí¦LjkÜÀ…)›-øQ‘Ô“T·Û­¶9tÚËÕebmuek´ÎJïa5ÜViF³>úVýó¥•Q½mÛmøåƒ¿ŒzoÀ•Õ+8»|I#‰¸o9¯žïa 2@[R’ÂÛO ‰š¬a¶<ûSñ Tœ ¦‹”ôËöi Ðò,Dõ(I&ÑÖG¤«õÕ7,íå©ß˜¯ÌãÂÊ…-?»\[†åYŠ áßêõ–º¸mQóJm+µH€»»6Ó89 ×w1WšƒíÙØÕµ«Åhi²"GK3GËî;õŽ‘†ÊÇ}|þ8ø0$£eö»îÖ‘©R^cY”¡IFa-Ì/WϽa_y¶4 I¶tè,Siî-3À34,`asÚ›õ´‹E½J¢´)X«êTyu99Y”Ñ"°]Û¢Û IªJ`±Yï±0dФ WÏaœæU4b-?ðá”1®l•7  Vë«›îí©Â·É–kqÀrBKp@­")ŒÒ5+ÎlÙÎ.Nc[túÃý81bKþli¦l"m¦ÿÅçÌÌ ¾óïÀuݱߘŸŸÇÓO?½ågŽ=Š«W¯þlz§þùxa¢ ò¾±&k¸¾÷zäyŒ­Žaº8 C1Z—~àÔMDõ($QBT‹"¬†×YÀ:d®E«ÈÉDa¯¯¼Þâ,$Qj¹¿«ù«ð#„eQ¦Q¬A:”æ‡m« f©¶ÄA?éÕŒ”O™)ŠÁÁ#U§Úq¾Ð(@$„äe<ëàôË‹<˜q|ùzª¨Bô†{ù½Vœ wˆ»½^´‹\V’zæÜ7JÊ.×èˆÐ¶è¶Gï^ “CÚ7Ü^£cTž·òw…7þŠK¹K-#W¬^q*í×ã4ë5$ô"j¤cÿÕñdëY*$JLÈ®[·ÝŠ÷ï?4YÓ—žÄ“—ŸÄéÌiÈ’Œáø0Ø¢j=áN á´¹™>øJm¦l¢l—qqùâ–eÇB£ë € #ÐêJ~×ã\̈•»yVXÏÂò¬ñùÞeÞI©Ì|:Š§ÇžnÃj8¾ƒ+«W¸­±}«õUÞ>e`]C64’0d³åÙM÷Å®`±²ˆ]‰]¸oä>8¾ƒcsÇ6ÝcSÅ)$Œǘü,¯üãø»¿û»uìD©„ÑÑÑŸ ]÷f×g?ûY”Ë[·q!øó?ÿsX–õ³qè-‘‹±Õ1$$zýÜñìNîFT‹âtæ4&‹“H›é–ž+¥|m.)Fõ("Zº¬óYô–Í8hx . 1SšAÁ*l*—g{6Fs£è2º0 ™Ìš²Ûi3Ý&ÃÙi“•írG*Å7ê…Ê¢ÜbldQFo¸1¨|#ßf\™ Œ")ÐËÕå¶2ysvÂf?óVª¤"¦¯Ò pÒ†-Ù¥e'ŸÐöF'V)Xi‰ Ëó¡å]øÄçhÖæçŒjQª[ìZm¥è€¸œ½L¹Ò7¡ÕÕ%ÊÐü½ŒÔˆŒ Ùà|ò 9ÛîE¶žmËSÕ@d€NXÈz˨£,ÊØ—ڇǯ{·n»³¥Y\Ê]BÚLSÒ£Àç 6c+ –ªKü(Éœ)k£Ñ[m¬òµyeá•-9­™ð s¦bÒý»vî˜0GD‹ðßk^¿¥êRKï­†­QÂ2cÎŒ$á½y¶>è¿3†F]¦¢Ha5ÌAx‚ ðvÃfWD`º8Mñ­Ö1}r†‘+÷¥Ì=3¢‚¾H§Žîè0×dlûÂ}yÒ‰~Ç;GÞ‰_>ôËxxïÃ8Ø}ÊÈ’ÜbËQA\#¤„àU·ŠB£ÐâLªN•«Ÿ1¤øfkY´ŠôýõbÒHBEÞ"’E™l¼@ÐÂS¿ñ;—ªKIŒ´1²(·d¢(v¬~É¢LíÏš:«i²†©üTËþ% Ïc®4‡l-‹ãsÇ[ìr®žãUB¶×Ý6 -×¢Ø$‰&KÕ¥Í[pM:îÃña\›º—³—;fõlþ| 2ð3ço/‹ÃÅ‹qìØ1d2lß¾ïyÏ{ Ë2*• .\¸€L&ƒW^yð}3338yò$Z‚–¥¥%¼úê«8sæ *•ʦ€×_wÜq¯\¹‚“'Oâµ×^Ãê*ÁÞvÛmÈf³xíµ×èz¾@ÜÆÒi¦’A¡QÀmÛoƒ$J¨ÚU„Õ0âz{S{q|î8®M]Û†îÔ$ U·ÊË| ´cÈJV •î(TI¥Rˆ©2Q=äù•óØÓµ§mQsæËó8Ò„—}Ø¡òf[k¥¨B£l’,Y%ÔœZÇr{'©ÊfGÇzmŸ›U+ B[öÊÊ}¬|]wë¨Ø•–,¬îÔ‘©d¸SòÕpŽjQ²±.Dá6°-²*Ö·}º¬óÌa#EíÆˆI?fªªÔÖ”8žƒm±õŒ [Äõ8gwj.×äy\]½ ÁÙœB„6E8Ö eì,+¯:tÜ0E£_Ì^Ä+ ¯àÞ÷òûZ¨,@€€¾H!ˆhø†ÛhÙ;5‚ûv܇=]{ðâÌ‹¼…ÂÔǘÃa¸ÅÊ"çB/X…–j ëNâ  âWpnén¼½mïB«å¸Ä%+'7WJ˜›ñ¯ål5ÏÙóꉜ„åYœd(¤„hUao€µKš÷×î´â!5IxÉ>ßȯ“ÂxŽŽƒÝkÂHàäüIè’ŽL-Ã÷Z@~¦³µ, Ù@X¥­0Çw0Ĺ¥sÈ[ù6Q&€V0ع܊P„ýöÄîü¾›…wx¦k¤RC¼JX²K”}OX¶˜¶×+Y¥6€(Ìi›Îõ]ä-Z¹é2»Ú؈JÇsy•PÀ¦¯‰Â|âcOrÏ–únà"®Ç;êªHKîŒö•õÍ-r¡Qà“2»‚—f_âß5š¥ Ò }7@\]½ÊA³>ñÑð(ÛeZ5[‹avPdôEúpvé,^£ ƒããy:šÊØ›·ÝŒñÂ8^˜yÛcÛ[ÞË|i~àoÉŠ÷Ó^ ÅÒÒŠÅ">ð@|þóŸÇ—¿üe\¼x¿ú«¿Š[o½Žã`vv=öNž<‰F£r¹Œ/|á ƹsçð‡ø‡H&“°, ‘H_øÂ ë­6÷¥—^Boo/úúhûè?ø>ó™Ï`ÇŽp]÷Þ{/>üáÃ0 ìß¿/¼ðn»í¶Ÿ>CH'pZ^*ËŽY¹ñf ‚€Ã=‡¡ˆ !\]­9J”D‰V<#0“ƒÂjN +µÌ•i„ÈZ‹Š‡D4št7ÍR¤ozüÀ§L¢s6 ÉÆ8¶"pY©­Ð9çPºÍø2Ö£ÍáÆ’530,{b’« Í•Q±TYjíi5V¹²,°}]FW‹s²}‡ûÃTM.˜ÂF¯(CÔf3«c«cø‡ñÀ®þO=…ï^ù.fK³ˆpCÈhB›/C_'ŒDA¤†·)hY©®à¹‰çÚ*0ÍY㦆jïºh)"YÒÖÂè2»è(ìéÚƒ=É=86wŒ‹½øÄ§€8=†°F€¦b¢;Ô /ðÚ~W ņðÁÄ-ÛnáãC×ê Ò¡4rõ,©»í¼ØÌÉ3×ã8»t¶ãžs¹í‹—í2ÍÄ78ËŠ]8·úFþïùÊ<F‚€ ˜™«ç¸ñNšI¸¾ËµØ–ga0>ÈYâØ=°€†7ET¨Òßë& ô¿~úùmÆ„ç‹:Y ç3 Fâ#-4°mýƵjÑÆñIV&fºÜ †P7³Í)ª’ŠžPTQåä2ÍÏÆÆ ›[|äc /EÛ¾BƒJ8³Ñ¿PERx°­ˆJK›®yoL&Ób-Êx~›Ñ®vºIáAÝ­Ãñ^5`ï; Î-CÕ©B•Tˆ‚ˆˆÁ±Ùc˜+ÏÁömŒçÇy€f{6ÊvŽïЉ"I¡çM ó}4DÃmtl‰•¬–kËØ•ØÅßq·Ù·õ½ … \É]áû™± Šñ/Ò?ß¿?î¹ç<þøãøÒ—¾„·¿ýíí¸‚ÕUüÙŸýžxâ Ü}÷Ýø›¿ù|îsŸÃ7¾ñ Äb1;v –eáþèð[¿õ[øò—¿Œ'žx„|ÿûßoû¾Ë—/chh’$Áó<|ÿûßÇc=†¿ýÛ¿ÅW¾ò|èCâŸÝ·oÎ;÷Ö2t7p©Ñ”Öæ»ggqvñ,GÁäùIÌIsÅ-‰!Ã|Dí(JB S§°(.ò ' Ò,b¡v¼†BÎËáŒ{¶m£$”ðòË/c3;1#Ì€‚¾JÆ•q<éy ùëHÇ@ pÎ9Ù’1{q“da1 …(hkÀ#NÚ'QÊ ÁÄòNdOtü­‹ä"à“ç'±(¯Ô|øÜ‚"@îðZ=xˆ 1èB{ö[ôŠÆçÇñ?¿ö?ñ¢ôâºC$eœµÏÂh_Ê ,Œj£¸F¼f½4…iÌ7æ¡‹:ª¨"ãg`¹Ê™2N®žÄ%ñ<Áƒh‹hoà”s ¾í#gçðò©—aBR«ÎjK ´ùývO#gå@@K§îàdé$ý(DÁ¤´Þö(EÊmîø®Î]Å·W¾Ëß»ŒÅÆ"®zWaÙd_ÆÊÊ ~øÃRƒ Úˆ™l¾EëBù ªSE-[ë'^…ôš+°pÑ¿ˆF@[2q'ßòñÝËßÅ!‚øXð »2^}ùUøÄGBL@Tœ<ŃH¶Žu=âaJœ¢s»~ U¡ŠÀP‹8ùÚIŒ‰c‰ŒÒK%¨X§Ódó]+þ~c¯ŒavÑw˪ppÊ9—¸Xr–øN?…Ë"ñ$ÅzžìQUB±ˆWN½ Ô4DJzâdœÿ,¼—éÞ ¸ä_BÉ)ñ3ãç•ó8.om³HŽ×Ž#$„P ,¸ < ¯žxW¥«­Ž,(Á±¬È+8qâÄ–{Ñ]DÒIâ䉓[:tÑ1§ÌuÆsÞOÀÕ™« s]"]?x8«žÅAñ ,ÅÂéÚi¨Ú„8¾ƒ“'Nb±çKçèzV„ 2^†ŽãfJ8‘?Ið{¯x 6é…‰P©Bô׿wU\E±^D£' ëï!𨶊§ÆžÂsSÏÑ„a-M.¼vO4‚>?úy¨‚ú¦ýš$Iøßø ¨ªúùý{÷¢§‡VZGFFpèÐ!D"þïËË˰, ¯¼ò ,Ë¿øEšONbhhï{ßûZÏG­Æ³sY–ñ¾÷½ð€£Gâî»ïÆÃ?ÌÏ0 Ôjµ·æÐ¯3wh†¢[ăwàPêßALqf1QÑmwãLö ä›Âò,t‡º’Bðˆ‡‡w= UTQ´‹ ãõ¥:æL·dÕj/¾ð"î}ǽ¸0}I#‰÷\ÿ|{òÛXj,áö·ólÿJþ js5Ü»û^ì‹ïƒå[è6º‘2Rx`Ç”nrÔA¶‘ÅâÜ"æ+óØ»oG泓£'ÑëÅõ;®oÉUYE¯Ù‹©ÒTÇòã;Œ vd»«¸<æy@ßtwo»›ÿÝ…Ì|óÿû&>ðÐ …8Ù;GÞ C6ß¾úmô¡Ѝ`¾6;oƒÌìÚƒÓ7"ªF‘·òxûÐÛ1`@ž”1zys•9 í‚!ˆ€e £!ž,N¢4S½;ïÅáôáfkøàÆÕölô…û¸‘f¢",9uá]ÀðÞa ˜›ŸÃaý0dÈX^YF­VÃõ×_fÊTêu <й…ø˜­ÌB¬‹ {‡öâ†îðÐî‡hv?Fà«L×ÒxêêSXN,cz?jã5Ü4p­ØÛÃÛiI>fÊ3[Ž.B(RhDA„å[˜­ÌB¯éX˜^@¼7Ž]ñ]0÷ŒÜƒ”±¾oÿëßþW¤úR¸f×5-F·h±#½Òøï®6VQž(Ãò-{XŽì>‚>“¶è3ûPõª‰È1+y'l=‹áèp‹cs|š¬á¡ñu¾Z¼Š^ügä9LÍM¡d—0²kš¬Áò,loÇÌÄ ¦¦¦pÿý÷ó 9¤†6uô3å þ³ xáÊ 8ØÒÐêÇB•r’/,.PÚÝá¾àSÅ®àåÉ—±3½×^Ë9’fª¨B(ÙÒleЍ´œMBè>Žwì½WÜ ._¾Œ\=‡á]øgÿ=œü¥~µŽ§¿÷4n¸å öSé`ÇwðÐÞ‡Z¾ãµ¥×P/ÔVÂ+ŒáÌô¤Í4öïÚ”‘j)…g­,&§&1UšÂŽÝ;6m]9 oÉÃ-×Ü‚~³®ï¶Ñá2Åm‘mm`¸æõ B˜˜™€¤JØ5¸ Ña^1Í[yìOîÇÇ¿ôq¼û‘w#n¶Îê~«ÕUÜ4B÷¦O|L•§`-`Ø3´ûûð¶Þ·Qn‚Ì)ø 8¥¦àÙ©ga'mÜÐ{ÿΜúG„ünÛsÂrk«-YOâ套aÈ1ÕéÄGJK!„õJTÙ)ã=7¼§ce´ã»püþïÿ>yäîL›«to´TÄöö™(Š0MŸúÔ§J­Û„x¼ýö÷÷cyy½Úsß}÷á™gžÁØØžxâ üøÇ?Æ“O>É{òÛ¶m{‹ݵ[!fj3E×ö^‹x8Nûµñm0ê´&‹2¢$ ]בŒ­—êný‰~ЦVtìÞ±‚  êTÑWêCŸÕ2Oàk~˃‹¢H£(¨UìIîA<Ç¡ÞCxfü…"¶Çé<ê\f!-„½={7¨\`W¨ »»vcxˆ"–òðË>º‹Ý˜(M@ ©móÉ+µ8p0ä÷Âì`t¦bÂR,θÔ\ú  'ÞÓÑI˜®‰¨…/øPc*†‡‡×§œqÈ¢Œ®®.„ÃaÞkOô&øì³º¬rW”ŠðË>TIEW´ =éh’†b8rͪõ\ߎÄlå aÚ«”©… ¯ÙÙÌ.ÏBWtè>Ðñ@³Ï9¾ƒ¾x/Û×Ý:ú”>N3Õ£pàÀÕ]äŒÞvàmܘ†ñ«ãH¥R¨y5D*’èJtì!V*ÂbKSÚ¾DúÒ},ÉèZíâከàpì0®¯âjñ*tSG€ƒÉADcQÈ’ŒžXw6RHB®–ëH^ÁŒ`L§ä2–g!.ÅQ–ÊðU꼊ºPG8FRO"Ñ“Àpr˜!®ì"‰¶hˆù1̺³HI)8ERà¬:è*va¹¶ —¸H…SH§(p3©&ñàž±XYÄ•úô“~`pñ8Å+T²„Õ0ú“ýˆé1xǃƒú ªN•+•EüâVéPºÅéV*®I]ÃÏ Ý€ÀÅÆE ¿ÜìRD'ˆ‡©£3¢Ñ( Ó@(¢À'ÉA¼¿cKÇ <¬ªä—/ä @o¬édéH®îÂölŒX#¸œ¿Üf *å ~ÉaÄãô"7Àö§«»°\«¥  Лìí¸Ö¦k"Ic©¾@²/‰ÁØ ŠVæŠ ]×!š"´(Õˆ_m¬¢g §…øèÅÒ‹҆茷£Á&6ÒfzD‡b(Ç "ÐR+)L”& ›rÇóFÁâü"ÂZ»{vs"-?ðy9œ½WERZÚbmvÜ·‘Ò-…Ð „£a$’‰õuª))&¡/Õ‡Ù™±3£ fÆ¢p*tYGw¼±D ×_‹ˆÁ„=UVá•<ŽÆÙìY\©^ÁÍ¡›RBàèæÐîÅ@ª=ɈƢØÞMÙ"7™Š HÉ‘044ô¦§‘,Ë‚išQ÷±X ³³³Èd2ˆÅb?•Ï4 =ô¾ýíoãÃþ0TUE¡P€$ImNýÆoÄ¿øEÔëuhš†³gÏ"‹axx·ß~;þê¯þŠï…3gÎàÎ;ï|k(wË_ç6÷|… ô…ûxÄ¡ p¬3H5“æ$à="/ðèÈÆÚÆc¬BL4c³ l=‹º[ÇPœ–Øw%w!¤†8wÉ.aª0…ÁØ ’z’«¹h¡Œh‘uêGB:Î`2¾æf@œã;œj’õD7öƒ½Àƒ®è›f|²$#ªSx¾ÞŠŒ.Y¥öVƒÞ«cR•Œ÷œÍ‘3<{¸®û:ŠÈ„Õ0Âjnàråf˜HÚÉÂ$¶Ç¶o9ÂPßÍÆÒ Çqð‘|¿ök¿†?ýÓ?ååòæë–[nA£Ñà3æÇÇG?úQüʯü ¾õ­oáOþäO‹‹‹XYYÁÏýÜÏýô:ë¹ëâ‹åÚ2÷æ‚"D(’ÂK ›šRfŠÊ¦‚´ C%QB\C—u˜ŠÉÚÆž.NC“5N&ÓbØÜ +°R[Ál™ÊŽì>ÈKblLŒÑÊÁ®ˆ UdëY>oÌQüÕ %£Y ZØP3GX sE f°ØVÚ¼² #¡'°P^à#zš¬µé¸7ÿ…ÊöÄÕÕ«mJnÌ¡3c/Š"ö¥÷q4®©šœ…«d•¶D†^]½Šº[ǵ©k©3VåM#âÀ"7p1ä$.1-†ùò<ç ïØ›^˪eQæèâ˜kyŒR’ñ›3¾‚°Bi,Ah€ Ä”2S¸gøü`ì|fÝñœ¶L\(iÊBe†h´í}p2^nFŒ$@@\c¹FùÉ´êhçê9ø¾¿)De¤ÌFs£(X¾^Lj“ñn¿wß{y0Ê%¦bÒÏ‚–‘—ªK¸¡ïîÜÀ 4¼âF½á^ŒæFQ)_ûÆJ ¸7‚äXpªH R!¾¾ IDATŠŸ.NãPÏ!îгn–dñ÷âƒj¹7ó°÷Y²Kü—kËEq=QQuªHšIÎ×ã89žïáîỡË:æÊs-€(QÛÊçKµ%.5»ñue=àñ‰Ï'J˜J™)ÊØçTøÈ+B¢¸×wy°µ\]æà¼©ÂG~;¾ƒš[ƒP]C1°=¶;“;±PYÀ‹3/"[ÈÒq@ÒÎÉÏ®¹2OÙ“ÜÓ‚Vg4®ó¥yH¢DªjxÓ³]²Jpª¤"¢Fx°RuªœïA—u$´Ö*î1±,M¦ª—º¬#¢F¸†EH !nÄùÔÁ¾ô>¼¶ôNÌŸÀážÃ˜.NC¤Æ¿Ÿãå»?Óyô믿ÿðÿÐòg̉9rßýîwùŸ?úè£xôÑGù¿üãçÿÜÕÕ…OúÓoø{¦iâƒü ¾ùÍoâСCøØÇ>†}ìcmŸûÖ·¾…»ï¾;vìøé3tÛ³ác}6²d—`yz´lI@¸¾1Co$„`èwöÒýÀo[–ñ„Õ0'Öh~à#·Ály =ÑâT¯ë¹ paåÎ.E:”æYµøÉ!ŽÒl‘ ¦b"nÄq){©m>r¾<¸GT£d"®ï¢?Üß²Ù™ØJs&À…gÖ2úª[EÁ*`µ±Š‚UÀ|e)3E°Vÿ®íÙpˆƒÞõ4}ýð(¢BÅ\ ó•ùuÈ1G®ž£] ¡á6p } ¥ìÄþŽVm¸‚3K´ßÇæµ·šzhnQ.|Ñî¥Hwrów2T‘H¡Pu¯ÎG½DAä(ÿæ‹©Qy>ƒÅ5jü£Z”b<èbÁ"ßÝ×á@÷ Dh)/@б¿Q#-":͸6ãîtæÞò,>ú•¥)Â×)C„ˆ¢UäÅ|ywÞv'††6§¦d¤&…F“ùI.Å*@@L‹áÚÔµ-¨"*4ˆhÀRq*p<‡ë‚F):Tª’ ?ð‘4’èöo™åØž„‘hÓ¹g³èª¤"ªRêÙ©âßó‰T×_w}‹cdT ÷MÝ©CD¸•üM™)>"' "ŽYC^?vÝc¸®û:¼ºø*¾ôÚ—0šÅliq=΃8ERZ7—D„¶5õ‰ÏƒíŠS¸(Ûe¬6VQ±)ÑJROr✼•‡O|¬ÔV H n¼íF$IH"- «aÌ•æ¨N‚gãJî /ý[žÅùF¦brÈÁØ Ù÷LÕ„*SB¨ÍªSc«cˆ¨‘ÙWVuŒªQŒ$F@A—ѵéÈ›íÛ<‰a³è ¸Ð³µ¤£iÜÿý(¶ÚXÅbe±£=`Õ¦±0ôy$!•ÚÝÞp/,MÞºuÛ­(ÛeœÊœÂèê(ºÌ®¶@ò'M:·ª¼tºTUÅïþîï"™Lâ_Ãõè£â“Ÿüä–ŸùÈG>‚ßþíß^¯^ü4?Ä[soºCÝÜè©’Ê7dX ·•ºšçxÙÁŠé­½ F,ÓêÆLi¦¥ .Ë2´]‰PV¥5ÃßêÁ¶è6œÎœÆBe»“»[fWUY….é-=cLŠ›úoÂTq £¹Ñ–2k¦šAÒ¤ GŽç Ju­Ä´XKð!‰Î’]Â@d·n¿ïÙó<´÷!Ü7rvuí‚íQ¬¡|<¶á6°Z§ôÈ‘®ÂF˜÷ŽEˆÈÖ³TƒÂ*´ˆC9Ã306Tº¬svGC6hມœãø& “è õr›%­Õ]Ö1’é8Ï‚¨²]Æ­Ûoå öYF6Õ\v—e#;F I”Œ«fS~ù¶ƒ©«±Ê™øô'È-ú Œt,¬†¹=IŒ`06ˆcsǰR[¡´µ?¡Cn~>Y7mémv‰¢ˆ#GŽ´Í„ÿ¯º8Nl‹KQ”@ÞϤÁÀú^,sð‰ÏK.1»AÅ[(73¼Í7k3þìóÅÅ•‹P$×t]à 9:Vrn>@–O+6ŠD{Ëì¿—™÷y;•ëX±Ùa±L‰e¬äÇfîÃj¸M[:i$ù}m¤gLšIìéÚÃ3›Íúlš¬q.ïæ{äeLB1~àóŠ”áð|…jcœ€Òëæy8 K³KÈ.fáyô™ÛAv1‹Å©Eä—ó”£J*—bet¶º$H”4“€˜©fhÖº¶G_Yå଀ð‰ßQè‚ø\ÙÙ,¬†…ÁØ WNcc­PCn6‡Z¡Úg‘Ê—ÊX™_ïѲ2C3e.Fù*@àågUVy`¦H ö§÷ãñƒc_zTIåÔ¶>ñ[u&6r¨—¶ Åà½Þ€¥uÃÏæÎ·E·a÷~ÜÜ}3Œ²+gAu*ÔâTi•‰KóKÈÏçáY”s£êVQ±+˜]˜ÅK¯½„ÂRApÐ(+5³µlÞëLÈH•hÁ‰lš®…Ê^»»vó}Ë„­6¶å6Û׌v_j4IC½XGx°Ì8?øY®[Xš]Bn1‡ªUåm‰¹¥9ÌMÎaenžëµˆÊ0Æ'Ò\t™]€@[7ìù ÙÀÍ7ó ήĮ¶6×›ÎÎ׸Þht’‚……\¹rù|gŒV±XÄää$gû×~Éoõ üÀÇj} =Á$sby?OHiK=ʧF±¹w©Jj‹ƒ%„à™o>ƒ=õ#H†MÕpE¼‚ÉîIìMíåýsR&˜º0…Ùú,B©ÞþKo‡,Ëœn¶|¹Œ¥ú†æYŠã;ئokp™ ÍX%A‚,ɸkè.|÷Êwq&sw ß……ÊáˆôÓ &´ëG{Ç{¿!5„ŠMI6"F„; ÖB`›M¬Œ®àå'^¹…àÜËç°xd}×ôqQ/ððúK¯ãüÎ#Õ“‚.êxà7ÀdqÏþßÏ"Ñ—@¶…aè˜Þ+·±@eãage¶ªS¥£I¢aÛ·ñzöu dž×ãð3ê5ãØs3§Ýüg ×`(ï¥)’‚l#ËßÕFä:{'ÍT@T*z%«Ä{’L"6¦Å ‹r‹Ch@ L|TÚÊÚÍx V–ßhH)”ßž_¦%Îz 'çOÒJÂl¯>ù*ÄEœüáIì×÷CRáxlØh8 |ë³ßD`µ°Šý·ìÇ¿p'^ÿç×qþŸÏ#–Œ!3Á}¸n9@¹ê½jN³$nÁ‘D‰gèq=Î+5«Õ–ìšµX@Âöîp|˜«l5;€ª[ÅP|ýÑþ6#ø÷ßø{|õë_ À\yìâz³¥Yé?‚ìT/|ùĺcX]XÅ=¿~Î{çq×Ð]‚_ýìW±py¿óÿüªj•Ïq—2×`jv}‘>,–a*&ò|Ë>Mè À«¬ÕÓÜž9Ô{i3BÇ>#ZU» àÀ)/ðÓcÜ&ù¾ÿò{ÿ¿‚Ñ…Q”KPGTT*¥qõlœ9zÇ|fÔ„¬Ê¸ë—ïBA* ÷z¿÷?~nˆòpôüRôˆ˳¨®ãà·6$´bpÉaFdÓ¼/™0T³¨ “ ~³ÙkÃoàžm÷@‘Ô3u|ç³ßÔ#AÜ-¢P§º5§†À @|‚¯ý¯AEÔ«utïïÆu?Š‹Eüðÿý!ºzº@ªƒ{qÓ#7šFa¬ªEé´JSòRB|²†Qp‹‚ˆ]É]ØÝކ×àìte¸ @•Õ7%‹ê1å‘èÇǧ?ýiŒŒŒ —Ëáÿø18Ø ý‹¿ø œ>}SSS8zôhÛtÊ¿¶ë-gè–Gu˜Nrsy-¤†h¾¶°Œ+Û'>çgÆßTÌdêÜÜžþǧñðï<Œûû~ ׇAÊ/̾€º[G@L'ÑïÃ~÷}ô>¬\ZA~‰FZЧ –‹¡«ÔEÉPÖÊUŒ»ºyÃ4g­Œžpz?Fâ#xuñU,V±PY@DP!—5±ŠærcåbÑ$ûfHÙgºÌ®–÷T«Õðõ¿ú:ÞùØ;a˜²Õ,žûÞs½«I ù^}êU<ø<ˆ»?r7 —N^‚i˜øèÿ(îú»pÿº•\—.]‚"* ³1£¨“SŠ:gQu§>3†¬Åâù´dé‘ xm#o„·`ÐÍ(EW뫘-϶¶a FDZ&†Ôg¬pÍ ‚ pºæŠIX S2’5vÂÍ‚QS6¹jV'8QѦeiŸøÜZž….“j‘³ŒýÜÎaß‘}ˆGâº%œøæ 8BekY\ !0?:®¾.ÜùëwâÑ?ŠWž{Ë«ËD >ñ1WžãSÌî5W¾ºCݰ\‹£ô™Ï¸cð ņZð8Œ‡_$4ÜlÏÞ2kgÝ-ßC½ŽÏ}îsøÄ'>Ï|æ3¸ñÆñõ¯½ísŸüä'ñ½ï}Š¢à‡ë-;ô†× $fš—¢™„ã@t¡Tša%Ì©%G{s6Õ¢-,eSSSˆÇâè¥Fi`ÛV­eq:s™ju§Ž„€¦kPdû‡±{劖E…BB šŒB„ˆèp™ñ ú#ý¨úUš©,4j á€cX™»S)Y–(êÔöÚJŽïàÂÊ$ôvÄwÐF” Š"ÏÖ7ÕæÌ‰µ#ø¡Zl±‰ÖWž)Íð Ï#]éX&”E–gaµ±Jòkïel̬ÙÙ²]Ñy6¿ÙÅD4Yã%ÿWX S0•çÀ”MŽXî Óÿ®-Ëç3yôlï¡ÙG¯„Ìt¾MÑÝ‹•E¬L¬`ûîí° fÄD8†½jÃÐ 4ÜæKó¿0ŽîíÝeÚ²±}›ÿÖ¢«B’(ñž>˼/¯^æÙ-ï)®qÎÛ¾”™j *w'wó`†MV8ÒFo Ùlªªb×¶]H€þ=ýÈMçÖûèÕWŠHP`Q÷În”w”Q²K¸2uÿé">tWdÄ&´R[¡ô½k-MÖè½®egoT~% Ùj3iÕ®ä.~Ò¡4çgBFÌÙ¾¾H/gΜÁáÇ‘%ìJ"¥§ÙZSÅ)85žà! л³¹™*KÔJ5|þÓŸÇ—ÿ¯/㫟ù* åæÊs¼ÓcPEµ#ïƒ*ÓöIL‹¡æÔZF`ßÁ|y¾…Ïß(Er§~{'Gçn¸‘'#ó³óèìæRË+¹ض QQu«˜ŸÇö]Û!ɈF Å5—ŠÜ?ˆZ±†Óß9'>ónøù W.œ(L`06ÈfÀ³(ˆˆ Àò-ÚG÷×íÉ®ä.Ü¶í¶–YzS1×㎠c$9‚„‘@Ãmt ÔY²µ…5» …2™ :8tè.]º„ÿݯ·ìÐkN –gñƒª¨Âó=ìˆï è_ßãÈXÛ·yFÕì zårGÅÑ£GQ(`¨Æ:PNFô FñòÂË8»tÀÈS0’&kP¾çc~t¹™n¿÷vè’B|ßçN6 âF¼­ mÈ/@¤‡{c²0‰L5Ãå# !m©5·†½©½Ü!H=” ÅÊž³;Ü Ïóðâ‹/âèÑ£˜™™YWÌR#pEõ Î* P±+¼Ï¨H DE„íØœ;Ú)9xék/áÚ{®…«»tÖSÖÚp -úÚH ão¾rõfK³8Ð}€Îr¯!‡Ù²wØÜ£l.…YžE9°åu9Êîp7E?ë >wìú.æËó|V–ä-˜Ùz¶¥L¿ÚX¥ïYµÍÀ ‚€˜ãØŒ½†šVD¡šÛïÚý.Þ?l6ްšªÉ&½Úî§ï0ç:/y%8žÃg׫˔µLøx“(‰”.dAÆØé1œxîÞõK^bóÄlÎ~c[ÀTM®Ä¦J**v²$siP†ia8ŽàÓÉ4cã9ˆ¨ì9Ø1¸ò}¢(òª„®éð=Cñ!ˆ‚ˆÉâ$¥„©c\Æ2ünÊ]~â<Ýwª¢R¹Î5¾¶rõå,(/‚.ëˆhŽÏ`Ü[xtŠeXµ< ‡úñ¿N›iø½6©¢H ï§7g‘Žã@UUDŠôy²õ,ïDaÅ/Kð=Ä%¨ª8ðÀ<þ£Þ¨ãù瞇,È´"áÙœób#q;›Œïž9jveªXžÅõáÙÚB ÁQ'Yâæ«âT°3¹³…ïž„÷ÄÃj Ò@€’ QìŠçQg¾x“%u«ŽòjÄ'ˆ$"ˆ¤"˜Ÿžñh{`²0 Û³±'¹‡ŸËø¨îPw‹lv³³o^7pU£¼M¦K:zB=màÆæê’&kYÿZ‚›€êÃ3@ãLÿ7ïгõlË"B³W7 3æ½á^xÄãºÍŒicäÕ£¨×ëÅèè(Âá0êµ:tB³ÛüR==¸}ðv8¾ƒÓ™Ó0…|nÈü ýÌô…i¬.¬â™¿|¯¿ð:.þÓELž›äÑ"sÞK«¬·Í6˜(ˆx[ÿÛ(±Ä± ZšÑíŽïÀP é?Ò"*Õ¢´·ÜÔ/Oè A€±±1ŒŽŽ¢^¯C×uHÎZ NºvtÁõ]ÔÜEY+Às醫ekã"+‹¨–ª8ú×G1°w×Þ{-Šv‘NH:Õ—ï¡«Ò’vh¦C@paåP5*-C6мËÊŸŽïðÙûæž×@t ÅÉ3`^\Ã#yp|så9äëyJ#»våù–@C$€p‡fy²õ,Íü¥µêʆ¬¨åÕ¶rm“ñ÷éPCñ!<°çŠÁñÍœÞp/ß7 U=áx‡H,«j!i&Ñð0z ‰’­"zúzYÌÀõ]øŽF¥H*B¦ÎNáÌSgpǯÝ5ªrcÆÄ-ÂÇŒÚ*J˜;_À%õd‹ ‹!ŒºÑ¡§Í4Âj¶g£êVqÛöÛ6-YF£QX–Eõ  ²RA¬;†¨¥šå¥9(¦‚F¹Ÿø8—?‡BO¨U£Šó/Çs_x™© Ž?yðl½îÖ9±“a%Ì1'^àmJ_ÊqÄãr¶–o!J·8¯f"©¨EH ñ^=#>b×ðð0fg)Ul!Tgª48k¬ÒñPE€ïúü50ÙJ±îb錘ž¦¥KU´¨úäš^|T¶a>6:tv/E{I>U¤3íƒÑÁ F\ľÔ>Z’ö›áAà\ìêïîG¹T¦] ÃS=BÀGFcéòËTÖ¹T-Á©:˜ò§ðʱW°ãðzÇ!ÜùÁ;1{in•Š%­Ž!ªEÿÿöÞ4È®³<}¾5{íy÷´»w«©å–Ù–-ð„1\0Æ.lî9NR ©"pÊ'Ô —SŹ7©J%7?H*$ü‚T.Iêª ç…o8åPa8ãøH² –,K²&k²¦VO{\Ãýñí÷ëµöн[êÝ’¥õò„Ô»÷Zß÷ŽÏû<qF„Œkëw͘NhÕsvZ :v2²f6"wŽ%½P½Ú¶d2‰³g¹`Ó¹sç044ôóËç!3Y8·t‰W‡ -Rª$Úy -A{°À¼M<<<ŒÏ|æ3øÌg>ƒ‡~¶mã_¾ÿ/8õëS¸ðÖŒíà2ˆì<ŸùMO¢>WÇë?{G_>ŠåùelÛ¾ w}ä.<ý?÷òýØzßVlݽÃÛ†9Ã~‘;TƒŽîp|È‘gÍ,{…@á±ÃtvÅd1r8I8<ëJh hš†OúÓøÌg>ƒGyO|ä ü¿ûÐ*dKÆØ®1,ÖñóïýLJ¶1²mÿöÝÉ_ŸÀ±WŽaâî \X¼€þúØiãwãòùËX¨.ðñE@ÒIj’1&Úßš¤EÖO®T¯àृ(¥JÔÆƒ¥Z(¥J\ú³‰ gѺî.†œ¡¶g«I2Fžï‰Êƒö¢~#‚èÝsfOD…©u âbù"æ*s˜ÎL‹ïÓz®2F®çŠJ/ì q®ïŠyÿ°3Œ'gžDÆÌ¬hR7-m¤E¢dk¶ $!„»¹¯¿ð:ØOnб8·ˆÿþÿ•Zw>x'í;„·_{¯ÿäu$ I˜Ž‰·¼ÿ¿?ÆÎï„i˜xãØhx Ц¶?É•vš»ÒŸSbMg5âä´a èŒ&Gq¥v#ζå¶u½ïãããÇýæÅñ׎ãèþ£½}g^?÷(—Ô-ÞSÄ+/¼‚ƒ‡âÐåC˜ÍÎr‰M›aûÿ¾üö#H §pûo‡ª«ÂTÜ †Ã"iNI‘HÖÜLÕ\• !ÜB¯¸Ü1pG$xª!f¶†lDØÍ’F2ÒýøÐ‡>„ŸÿüçøÙÏ~†?9KçÌ‹‡~u—ß¹ Ù‘‘Î`ï÷âØ+ÇpöðY”n/ÁÎØš¯~ò+ìyiŽ¿z¥%ù õJ"j5Cå|ì”tѬ{uœ^<ÁÄ è`Nb¶¤·à±‰ÇPu«m®ÜನŒ>aÓ€'Ÿ|{þiÎ>¹Cs¨¡†¹‹sxùû/í»˜ºo ‡^=„}¿Ü‡ý?ÝD.Óîiœ0NàÈ+GpæÐüÅAhºÍÔ°X_ÄÉù“˜ÊL‰„¹öC•TÑ%µT«s@ÁüضI¤X0d£#¿I/T¯™L=öþê¯þ {öìÁ·¿ým|ô£…ïûøæ7¿‰ýû÷ ÌÈÞ½{Q.—ñÚk¯ ò›2 ûw–ߣ;à—®r†¥ZbX¡‚íôâZw&u]Ç—¿üeäŒξ~ýÏ…áʶ¶fcfhO}ö),]\ÂüÛóxîÿyéDVÂB"—@2ŸÄÄ=(ÝUBÂæs93u¬tBèß°Ý9p'vî—ŒsèûA€ÛnçâfNN‰IÂÁÔ½:Ýiï H>ÿŸ?îy‹o-B²$”í2Gs+2ª^ª¦âŸút[DZ}ÇðO}Åé",ÉB®˜Càx凯à—?ú¥JÔ$NæÐiOž jXMÖ"ä2o^|‹µEÜ7rŸp’ÔÎÝ’Þ‚º_xƒ†ß€$I‘ËJ«`­rŽæÀT¹sö/øiÍàçkó8tù\<ЖˆÐäÂÛðc©1‘0´»œ•CÃ猆ƒö Pe¢ïE aÂIÜG¶~¤­r ¶_µQ〳 Zª…ÝÙ{ÞæßàßÍçÁ¿p™át>'ÿÏ'qæ3`Œá‰?x‚Wâ_@, IDAT•J·—ðöëocßóûðÆÏßÀ™¹3œ ¸zY°àuÛ+6TC´ó&g^ tƘ`å"}ïV›ÎNÃP <<þðªd3º®ãK_útUÇÉ×NâãŸû8œ!ž'DZP_Àà{±í¡mxáµ Ë:˜x¥T ’$á’t é¡4îþßîÆÀè öÐ¥CÐe£É•µP¢--ر!Ò©* Ÿ=]ÖQ÷êHjÉ6™fC60Ž1&žgÍ­µù|_ÿú×ñâ‹/ð±Ï~ )=…ªTåRý?> ßõqð•ƒxô?<Šl1 Æžù¿žAà8ýÚi|à÷>€‘™‘&&¥§ÉJÛ»T q?Ã2ªKõ%œ[:‡ñÔ¸x×´†+K2 •ïžpòƒ˜«Î‰•Ùù*gá{ræIÜ5|WÛ»}â™'pïc÷âð/#¥§ÄF‰¬ÈPHŸøÃOàÐk‡ CÆãŸ}'çO¢>YÇÀ{pð_âÒÛ—ðïþèßÁJZ0ØXÂöüv!“š2Rm8ER0šÅrcY2uŠ/Æ¢ÛifÚþ]7»Nÿþ³Ÿý,î½÷^<ÿüóøÜç>‡÷¿ÿý<ÙPU1â|íµ×ðíoO=õ^xá=zô†è×´¶F;¯ƒö`äAÑúZÚ_S*¶fk„0²Ù,žûýç`¾ÊŸA@·u<ô‘‡ Ÿ’ùŒ^³ñÞgß‹©Ì”Ø]µT ågŸÚr×Ô¼šXߪ4*°:^&Gw¨"òûÉ*Ÿ~œg󟽒S\n,c<=.(-‡C8:w´ãJ[+)<þøo|o½øŽ8‚‹•‹8³x<ù€h¹ÉšŒ]OîŠ:WSLJþã‡ÄÿÞwvö¿¹Ÿï K'ÏéÒ~2¶jC“5ñu¯.˜á&Ó“¢’5d -!ª?Æ8¢úüòy>¿ å…´AÐÚ!*ß´ÉÁ]ÇæŽáÎÁ;;ž‡3‹gp©| Kõ%Ô¼ZÇ zøòaÑæï–÷Fô¶”4$õ$*Š˜›ê²/à¼ì­Ï)©'1íÃHÅã–QtVF øÈi©¾„Û¼ö¬ýûösö’»Ÿ¼ºÖü¬ïû÷EÎÁÔ®)LíšjûŒåÊ2'ÎÑ>ªÒ:;7Z½b`BãX¶ˆ¾•’“0ÁGëLó±‰ÇVÈ¡V1Çqðû¿ÿû°^µ°P[àæŽq¤·¥ñ«ûŽÏÇìŽYT½*îº[PæÌŽÎÅ#¥G"gÙó=¼tkA˜+4£´¡‘6¸ØL7ÿ!‚[“Žv©¾„Ûno«ÔdIÆPbgÏ’ªæ‹N»€ÉÌÌ ¾øÅ/âìâY|óÕo"e¤P®ÃÊðÄB7uÜõÔ]ø‡×þ¯Ÿ}Îe9“3œåÌcgvg$¡¾\¹,Ρ©˜}ý9uRë‹ð_t0J©RÛ6TcØ–Û†Åú"~qâ%™ #éÆêc*¦à¦9(c ÷Ü'D Ù€I€U͉‰A 2=×wÛVÖ„Púm-ž¦sðOPRœ-ÌŠSL;®?y¾×õsÉiY G1Ÿ_>Ó §!K2—ÿì°{ILT´GNî„U °T+ˆŠPçD`a©–Øw}ëò[¸\¹Œ»ï µ½Ýèy?ðáGë…«68ùN§ ‘13ÈYE¼tPè´ÎÍÞ¸ð|ø¨ºU¹|¤íï,Ôp~ù0ù6þüÖ™=%)=%q¨#åû¾ ‚b`8qåcØ’Þ‚#sGpjáTd\wvé,&3\J—À‰€¹”D>& ´ ºÉÇR•ŸÔ“bÀ 8"~£Yn¹úBmu¯..O˜1ËVmqÑ‹Éb›YØ‘Qßí¥™*Gš†Qá–·¡Be,@©¶( Ѻ©VusŒ²$C“´ŽÊp[‚yÆÌDÔ×èY´®x·*7qBO i¬ìiŸ[:'øî;ý¯œ{÷Úßá¿üú¿à[¯ ß9ð¸p@Р†é»U脯¹5Tì;· -™¡Qq¿Ó>áZ[b5¯Æå;8‚U€,ɸ-Ê2ŽÌuÖ'æO`Ô…£;8xñ`Û»8µpJਣÒ)“7>3¥µ1K÷Pž”5¼F׎͠=ˆ´žŽ|>½“Vö½¡ÄjnMTÃi=…ú‚HTYÅb}±srxøå©_bïÙ½ *«¨4*HèMñ™.Õ  ršT¸Â€8vëKâzŒ¸óuYèñ‰ôÎ,žÁÁ‹±=·]ÐçV½*&Òbõ*|–ß¼ô&tY䊬 ˜š)Î4m]¬v/;éB„ïgâ~z¾'Îu×1Cû’3s|°¹u2WËo¿ˆ‰Ìþýì¿Ç'w~¿·ó÷ð‰;>ÙÂ,öžÝ‹WϽʕçêK¨ûuÜD”%[»•2“E@_npö¼S‹§³r‘nmŸ†$ì3ß7ñ>ìݽæ|ßð«YJOÁ‡ßvÖã€~v©r)ÒR¡O0DœÏPb¨+ñAÕ­FÚlm¿`³êÐdMdß­Ùµ©šÝI‡ÜTM^õøu!¼Bm¹Ns|jËjŠK³º& ´êBÁçÎ;8J§”v°uºt5!hç«óB™©ÓúÅÛ oãÇÇ,@f ¯S‹§p¥z93'ÆÝ¡ÖÁ Ö±+ÇpäòlËm‹ %HbÍ ‚„„ö¿[÷ÏiæÙÉˆŽ¶”*!¥§°ÿÂþ¶çtâÊ ,5–pÿÈý˜HOàÈÜTQäî±+Ç`)ø0QNï3©%7>͘iŒt<І;"ภà›­cª‚h1e¤ø{tù¨ ŸƒvrPûÎîÃÏNü /~)²q@{ñ„Šî6O$>zªX}på ‰iiþ¼°ˆÑµZÚHÃõxUDII­ª²ŠûGîŸ+3ÃÎ04YÃѹ£" Ö½:_:Œ±ä˜è¸Ñ]§@CDI±ŽÙiÞJÁ*àNfkM€V°’L9ºÓI>GY++˜ËN¾ò?OüOÔ¼Ûò˜è‚ت¡Ä{C‰!üèèprþ$ë‹p=WtÏ„P‡Ï¢NCBK`©¾„ e¾%Ac°pÐ+}­cBIí©R¥qƒ S™)œ_>/0.´¯/1 U¯Šw–ÞÁˆ3‚ñô8¶å¶áàŃ8·tpðâAت±Ô˜h+²Ò5©`Œ!kf-ìÛI¡²ëˆ¥ù)Ù"?²ZEô5ìÜÒ9˜Š)º˜Kú^TÉLw13-«U ”åeÍ,ÅhV[µÆ¯*nE¬UÑ…q}WÌ é¤t×ni³wC]†;Ľ5Õì%…±p ¢YÐjNƒØ“4YÃ|}ž“P4*mÏe¡¶€:üOP%ÏÎ>‹gw<‹Oßýiü§Ýÿ _|ø‹ø¿!ÚÌ«UètÉXòãc?†")¸wøÞÈ÷?« lqF"[ ­²¦ŽætM$Ý.ëИŸÁ[soµñˆ¿~þu¤õ4¶¤·àöÂíX®/ã­¹·"ùÍKobÀ-B"Wéd3YY3CЀR€îÖ9a`¸­p›8G_%²‡Úœ%цR@Ê,ÖyËÝõ]¸+öÒöÿü~¼ðÖ °5Ëõeì9»'r7ª^i“'‰Ýª"öQ$¾J>g$h’&öî»%³Wc)#%Úœô|ŠN–ja:3ÑÔÊVˆ©púßg'Nжû¹ås¸P¾€™ü 4Y$¦fŠ %K2÷î Óc§UgĶ֭ã—12â÷õoÕv;U©ƒö ¸ õ™;‚_ÿÞS|Ø÷'«{8úÄÖ'`k6þÛÿ 'çOrzY=ÅGD]Þ 9I×_n,ãôÂiTÝj›.=uÏtY ®«1GwD2:•™ÂbmQèÛ“BÃbmË1š…*©Ø]Ü ERð‹·ùÚ“†b´1©¹?Ç“DųÖLr=f¨ü ÉL†!ð>G¸ô°X›£;J‰ÄDf5·†Ó‹§±ÜXUµÔ)ˆ;jO«k Y#+ð0t7hìPskH›éU“Ÿp—‰H…z 躬#i$qôÊQœ_>‡K·%HžÏ•á¨S9‘žÀcñw¡ðäQaJ×YoXΗÚòç—Ï#kf# :u\èÝw+RzªÐC`à´‘FÞÊãäüIÔ¼ZÄÿœœ? MÖ"`¶ûFîƒ")xéÔKp4Éaq/ +°ÚýÊšYøð±WÃkˆB"|_‚ ÀbmŽæà©™§0ä Eæüy+/: a|À­à¯úÛÎ×x[8ìܨUDû®­­•pYu«¨ºUÜ?zG„r$ 7Mˆz”^$µòü€Ó &a*¦¨lSzJ´e=߃")³ÜÖŠ®á7àhN„c˜> c¬£ð ‘He¬Žp‡ÛâU@ðL4ì|Ï.Å¿ûŒ¥Æð`éAH’$´¤Ãæ®@°¯¶IŽžðö@[0>³$Ímj³ŠÑ&ÐBŽ»µýØêLóV^ÐçÎfqfñ .–/pE¹‚¬™?ƒa&7ƒr£Œ“ó'Ñð8~å8¬áÜÈ9v«PVÃ-ІÆj”³„TYEÝ­C•Ô®¨Ý!‡os¨²*ŸK•K¨ºU”eáØ.U.áùÃÏ£âVðñÛ>.¾ïdškBï9³Ëe!eIŒiÝÚ‰aÒpêîÊhÁª›«1SY‘"µ5[$±E§(¾+%÷”d–R%(’‚£sGq¡|–/t=fÏoŠ7…‚1iŽž12bK",ƒJݰÕ\ÞÊ‹=mE^»  s/x|£ÉQÜ9xgÛß«y5Á=N Ö}#÷á®Á»„bž&k]ÛЊÄT°•µ=ªŠÃ>Å|)ê¶Ó¾Þ îåtfZl’ˆ»â–q¡|E§?ðÅø4gåpÇÀhø Œ8#‚ ’’„n€¸ðs%„»­ÚðáÃóù*)çækóÈ[y<¾õq &1âŒDŽ”žŠ$InÀ»Äq@ïÑ®T¹¤$‰M‚!T _þ¬•…xXn,à <<<þ0î½M!zGsÄÜ:Üv÷áÃPùŸgÍ,TYÅ ½Òî¦}Oš}æ­|×¹Lø³‚ -ûÖñ€!bÞÔ­ÍKsdrpA´¡¢;YÚH ÈrmYTdWªWðƒC?€Ä$<¹õIÁŸµ²m+ržïA“4á8V«–IÄ ¡%°kdW[HI:’Ãé$ÐRójL ®ÙÒ͘Ar²=·~àãðåèù5 Le¦PW~Ædf¶fãÀ…(×y`Kr!›Ýtsà¶fG”þZ; C‰¡5¥'ÍÁxzK%~¦ºt>òf^´Üe&#cf°P[ˆè¹ÀK§^Â¥Ê%<=ótd IWt<0ú.–/âWç…¹êMB¦n: ³øù.”Q` S6¤BW Q‰ÚªÝU,ƒÆÄú5–ÃÙ¥³ØwvdIƶì¶"©¢sþ.)¯{_gÊš+U:­®Ò]ë{R°­ºU$ÔDOcÿذT Ž?Úv¿è÷×$ ‰‘øJLÂãÓã¶ümâ.…´­ŸCûö¶j -ˆñôxÛsUeUàs®¥B'Ö:MÖà.ÆÓãðoÏ¿½RÀUç1WÖô®ÆÖT<“™ŒÇ„")˜-ÌBb>דè%‰Lh AD¤:­los•9”R%<¾õqwN Gî4*È–ëËKŽÝr3õ«èäl¨µNíYÚmÍ@YÁdfç–ÎAWt|hêCØ1°£'}[BNS6*¸Ö›€ŸšWUN)]™Uä¼[/E·FˆYUR£+K¾/ÈHº©%·òâ÷ õ©^2eB!W¼Š¸Hß=ø]\*_ÂSÛž•¾y3éX„1mt3[Ñ%Cön/ÜÞö3¨Â }ãpǤµ3Pój|œÑt,¯½övïÞßþí߯'>ñ üã?þ£zô΋É"òV.À«ï¼ &1Ü1pGÄ9i²†í¹í8»t{ÏîEÅ­`kn« ’ ™ÞÕ:·náï·Ú¾r«Ý–¿‹Î$W¯âš ¤$ñ6 ÉŸÒwZ¨-àÐ¥C˜HMDæÆd3¹Œ&Gñòé—qvé,¯LY t¥»Z:mtˆPx½tÜG³3 'Á4ÃW$ç—Ï‹îÙdfï,¿ƒýöc81ܦá^[ u@:wª¤¢`PskðÁWœWý·&kœõ­ ÈíÅéË’Œœ•CÎÌáÞá{CaØ^CÜÙüldÅÎP !GÛm>‡ü!ÐÓzºm;*ê†ßWkDì¥Ë:|Ÿß‰´‘ÆáˇÅß9¿|®ïò]†ˆßÉšY¼oü}KŽñ®SĦOZO¯y†²fV¬ê².€ÎáÑ£FƸÄß ¼\÷êIŽ\Ós¹å*ô0rÛó=qaÃda§SJ—0šÅãÓcKz˺Ú!4÷¢Ãç|V%1I°°œ‹;ðÛ+×w;^ÂŽz“ÔÀTÍHÕA—È|$ôD×ߟ `œë»H«Ï‘Â] Z«4*Xª/áùÃÏã¥wð¡©a{n»È`‹µEÌ›¢,«9*Z ’%»FvµÅ€_tÏ÷Ô’mã“0‚2õð>¾ïûÃW¿úU|ýë_ÇÓO?-‚ž&kÂií(ìÀÅÊE¼tú% ØçÓ[s[ÑðxùÌËÐdM€r(éX+ØÑ^}$Ø4+œ^QßC‰! %†„$i·ä!ep„/1£•e”e‘ľ|ËeÎ’ú©ÌÃ{Gß‹ÅÚ"k‹|¥¨‹ n[" _ЦRkš>ƒ6<6ÚZBˆ©´®”¹ž+:UÕFªÌðXrŒÁ·åo‹&Ò Eë{$ ¡pêFF$v†lA³[¡¯]qÓL¾—ù9žÁÄ ƒ¸¿xÛݧwGã…ÑÔ(WÇk¿ÐÏXmý0Ü© +ãå­|Û¤9uÃk\3Б 0ŸXª…¢SÄ™Å3BÁíÄü  W:S?Ûá®Ó£ˆ„ËVm1ßïåwËš¼sKïÎR-q_\ßEÞηm±$´„P‹l5?ðEB}«Ù5tG[á&§`ç,ÍêØF´9 !1´î!‰p¡\/ó=ÅæÎ59¼Œ‘©™mkc–fõ´ƒk¨†ÈêlÍŽ¢ê›ßÁê³Y z^à¡âVP° kŽ(‹ÏÛ¼ê¾T¾„ç=ó'ðÈø#\Ü"äœuYÇ|u 5±’-7Å7z©RT‰Éttjî ´9HBs“UÝ* V!t$IÂåË—ñÅ/~ög&TtE‡¥YÐ%µz %§]ÒQn”1™šìÚ*:E¤4Ê2J©’Xku³”žÂDf"‚4§g´Öü<¬wílÓ³ouúy›+»é²Ž”žBÅåªc²Äå¯ßù5²F¶m©êVE’4“›§¤ž\³ ð 0ñ9añJ¸6á èÍÑŒ£90(ÍÏi‹Îæˆ3S1‘PØ’ÞM²š½ÓbÞÊGI™ÉÂi¯©˜mÒÆÝ´šWë9 œ)kf;Úè»Jà Æ”žx :(LY“ìE<«æêi)UjKÎI¦:@ÐS÷o­€n«¶H–¦³Óhø œ¼Â±+§O#kfEBN°¢cÒ$¸q}WÌþ ËÓKrEÏÈVíH‚^n”1šmûþ„ë´qãùÍY3qŠ:µWÝë‹È™9±§Lt¯^àu vÄc|5–5²‘0iBD }f•ï‡àU·Š!{¨§ƒOhª˜Ãq‚ظ¼À[È—2RP$…v ŒÄ$ ÙCÐo\zo^z=„ÝÅÝ‘ÑYA#h `D•NAn­*…æ™,`gŸžï Ak  ÷¹Ï¡R©†¹K/áÿßðâ?¿Á|À\4E`&Ñ V“™IŽnÏL‰êŽ6ºÃmÌC;±T[?“0ëY÷ÙšÛºf•Kô²¦bŠñPÍ«áÂòœ\8‰éìtäÐ\˜~7MÖpñ~¡Ì&YY-€AȺþ Ž×½¨P­×’ZR8Uj¿‡[þ”lÚ_%V³g« ¨”xÐÚZ'ÇBÑ<<4öP[uO+&¥T Õت-Z›ª¬ 6³µæˆš¬ ¾åNJWøL­õg÷Uc^àµ9d2‰™™‹E<ûì³xûí·Q.—E+º/àÑ÷?Š<þ¼öýH«i 4æ®6¢2·åoCBM`"=!œ‡ ¬ì!/&‹ÈXÁWvËqFÖué-ÕZ3°æ­<|Ÿ“9ß½¾X¾ˆ ðê;¯Bfr:ºîs a¢¥¥*öðY‰»ô I·ÙL°Ã€¸„–XuøZî%ÝC6×:Ve&à ¼ƒ\€S™)®JTi{¤j;kfÛÎ*Ué¤{5²=½Ó”žÂdvr]INÊH‰$·Ò¨ âVPsk‚#ÃPƒ ¬ IDAT ”Ý2ÆRc˜Ä7($Eü>ô^ÖœñKš¨Ðï¾§ãžÇVm¸+föŒ±ž*tBºö [ÎÊ!kfñžÑ÷à‘Ò#m­&šKLÂŽ™æMþlAÞË;Ðe;à–}{j¡Rë²Õ驒ЬÁÙûˆ¨ÄtêÔ)¡%Ú$mé<20!ÜK…žÐ(¥J=µ„í霕Ãdf™ ¢hCgͬ8¿t®h³ÅTM±£ßJ‹Ý-Ù–™ ‚Hm> )‚EÏüšß£žà¸™fE­Ê*¶¤¶àbù"~ýίa«+€]zfÔq¥1‰6Q«¼”*õô.LÕ„£9m<%tn»%]DÁܺAOªq@oÚ\e)=%*7šéR+t=m¬õÍVèÀ¸ð‹¶5>r=#Ós’!3##ÖÁ¨}äz®X« @¿š1Æ0œæ„먌ÒFw݇Ku©iß[‘Œ¥ÆD›ÓTLN@"‘±Áš­=´“ÄA Ö@TYíØ6ËY9x‡¥Ú&3“mŸwîÜ9üÍßü þôOÿ{÷îÅ_ÿõ_ò,Q ^î&€o¶0»r‘›üÚag`ª&*=´BÚlÍ®E ¶éÜ4TIEÍ« 6C1P¢µœÐ¸\¹Œ·.¿…¹Êî¸#ò¬<ßë_–b‰ Æ’cÈ[yA¨´VP˜Y’HLŒ/°ö>ðUWèz’S27K[ã p®pHF» i….Üùñ|Oœ‹nwÕVíŽ: ᤠW®zZ[o[–8û‰òzÀÀhrTðÙ[ª%~Bï§tÎlGxŸµºT8t3ß÷Eå®h¯Åh<¬N8p|þ8ÒFšcš$EÔžOéÈÂR-A À½&JY+ÛÐ]ßÅprxÕä9œP„ýc?îöMПÝñ,><õáIQß‹ìUö£åNjÃRÖê^Û%6UN“Xq+Xnð}Ä^ƒ*c ö€è„þ¤t v½‘ÁÄ ¶¤·¬«2²T ã©ñ®¨xâ’WeŽæ%;Ƙԭ&G©Ð½cÒàù+²¨”<´t3×sQõª˜ÊNµœ]»vá+_ù ¾öµ¯áK_ú&&&"IKpÊPß÷ÛX$3oÊÉ’ófXQ8ó|oEaLVzn9:ºƒ‰Ì–jK°»/ UV…ö€*ñÿ¾P[ÀËg^†£9ØšÛÚÞno¢µeIŽÐšRÛ|µ=ûð¹%¡Z# º^ˆ®¶#Q° â¾Ø çH ‘N¹QÆPbŽîˆNµž[;(¤¸Õmw™žO§6U®kuÎZ“‘õ¡ã#Ͼù]HQ‘Þ•¥ZB©ˆ`HJwÍnË*>ƒô™è´Ð ¯£e ΋QtŠbW}©¾$4LÅ„®èhx|œV}SFj]ï"gæÚÞkÕåR̫ݵ¼à¥~C0+Æ}U$9¡p…N³³:úÜpI•Ik!1Iè’×ý:ÆRcë ªDáI‰Í’‰x¡ÓZ^7‡±%½e]Žˆ^ZÛHáì\•TŠKµ0•™BÙåmd]Ò…éE¬AS´Î½ÙF'`\'Å·´É)juY_“}¯S"Aà—VZVb ³U»+g7ÍêÕÜëú#Ãlau¿Ž¬•í hFb’ØÖd 93‡…ÚNΟÄla6ÂOM-Ü‚%ÒZCì5y¤D–4ÂU Ñ¥öÃc(:EMÐ ’$ ^í†ßÀPbˆw 4K´ŠÃ]¡ºÇEWh¾ i£w r¤¾Œû"Ý*tUb¬¹µÈꦮ¬PO“pÎZ ŽÄév‡}ø‚ÕíZîâ3›x[µ…€")³RJ•QQp9XÁåÌ–K¢«Vq+˜ÈL¬‹Ô%gå"ì“t7«·Îi›(Яf‹ê–è.µ*©¢º- nYdDÐ~³b²(V›V£#íè4šLSÔVr4nà ñ[µ{úŽš¬uE¨®öo vžïu«É’ÌÇ:O¨ˆ<æŠ5¯†Œ™é„;9ŽV"25¯ÖuŸh,ÇÓã=¯~…¿CBOðÖbK¢ÕðBÿ›Ä?Z“¾àXï*Ö°3Œ‰ôĺÏÄz,gæD'…hbIÁÎÁGãz®x¾u¯ŽšWƒ.ëb-ˆRHÞ²—v¿,ɼj"mðf¸_]3ºkT]ÑÈŠ’Ò P° B…°æÖ*|æˆŽØ Wû¬V¤{¸KØo=쌙“XGB“ºWG1YŒT‰T§0cÍ‚GS4ñ,»V§ÍÞF}_…)ÐUvyEjz*;Gs§¥X"¡§÷Ô“•Åj£Š­Ù­ë*¢Z™^–f­Ù:3ƒÒ¿ë/ô.í‰IPdEÌûÐUYå+i̓Tu«\ŬÃÞ©£óù{`ÝS1G</¢Wô|¯çVÒzæ»âb57i#ª×NëJ-6ªb’z’KÓ6“œš[ã =d¨á=åðg$ @j^Snv¨€u™Ë½Ng§× ¶’™Ìƒ^sΰ½`…Ȇ‚SkbðÂ$µÞU,ER8r¸—>cfD@§¶k'Ršù20ÌUç„R`ÖÌ¢á5DBI‚6½¼OJ|Éá×\ÎmÞÏ$ÍÑ饌”X)4U¾¾ÇCÞÌ‹Ö,Ý-Ú¦ ;Þ2é–[ck’—ÒS}¯Ì²f£ÉÑ6õ<¢¾óü30AÂäh\:x5Õ¼ð%b–Ž£…&)±ê,7¿¡âùާÆQLrI\+ïŠÔéß;ÃP%NEk¨ÆªŒŠÝ’ÑprÒð"\µÈÓâPGk£)Žo©€Ndø:ÉöË¢ ]âN—X“5Œ$G0™™\?Ÿ/ƒàЦŸEd€ µ©UYá¹RÃop°Ÿ¿Âú%1 £ÉQÑòt}·gT«ã$t;­H­6ÏTd[2["ÉzœáÂΈ7è‚20¡~þ LšõÚhjtÝc‚õ˜¥ZÐMŒƒlÍÆw¶ ö„G7®ï |ˆ£9œñÍ÷¹HGmd[³E SØ}©0Cö*ŠH,N;âTÕyàq‡½F¤:ïDÝš< '†QmTÛêFj½¯vvï¾u¯I4‰‚µuÇ<§0¥ckŸ@¤®çnØ(…Ô)ë^] Õɶ緋d;_±Ì™9 ;Ã"‰#[mpY髹3y+/ª~ß÷{‹©’ŠÁÄ Ê2j^ ö€YÄý*+tz€^Ðÿ`—Ô“+-ö«^âÑäèU£{Aq¸XDÍi£e(;Uèä˜m£†©zÖe½#¹`Vªùö\Ã1&0únÔ‰h ‚òÕ¶8“F`<©íWøm4®­"9‘ª<@ßÐÛ×àòV^p™Ïf#ç”­wVlImÁÖÜV,Õ—xR§§VeMëV¡“`M(ãÞNëg„ã>¥.:Å•²,É\•‘IpWŒ$(ù°4kMv±b²((nÃòÕ$wW›°Ý;roDé°á5: ]Ñù6E€6°âjÁ•VF  NIJ—4î7Âã+hu·MÖ"Â'DÙ«+:j Vª¬b&? A&1Œ&G×ÿùMý ê|èŠÞ“Ÿ¥õàºWçóóÄð-'Ȳ¡Ö¹¨Zï_tk{0ÖR1K©žÔܺÕN 4Z¯é§YÚ ˆ‰¨Di¥„æÇáïíhì."É=¯cw]XMÒVæX¿d«9Œk™WªYfœ$ ° « ä#”Ä|_8pšñ銾)mÖ«©v†œ!”e芎Ùüläÿ¯ûu!âAl,5†©ì”è´¦öz:q&„»g½°Ûm„¥4_] ‘1Æ" —*«‚F•¸¾|xæÜk÷ËÑŒ&GEuHçd=kR×jÃÎ0¦²SX¬/ŠïÛin,3Y3ËÉ©|oMšb€£Û¹s…Þ¸4i'™Ñx‡u¿.xÿã.Â:Ôüþ{’1¦ß‘4®vœÆœ·‚œ™ëÙì‚€Q­…ŠzFµïû}誤b(1„ÅúbÏ*fWÛ àIëwí×Z^¸(ØђΚY,×—ÅŒËÒ¬H[’1†±Ôj^ ¶j÷hIÚ’´¡ÓFZ$@´±Ð¯ç«HœÎTbœÑ¬æÖ`+)?©íNx ERĪÓf««1JÄZIB¼€ËD†E^‚ À`b«ÀÑûM&0[³{b‰ Wƒ­mhÒŸï{Õ*+¼Rjb9¼Àã `¡¦0E¬""¿MEKímÆ<À4RÛ̳ H vw ñ]Õ;ŽŸdIư3Œr½ ½Í¼%& šéÖ X•yÑFY8y·´hrH¼°ð“­Ù‘¤¦îÕ1ž¿ê‘+uk^ ÃÎpÏØ'GsÄ*l¿×oê€NZµ‚ ôu=†ñ3„…ê v¡o<ªlÂ|âýFñ‡³úRª„¥Æ—Tm¶î(µ¶%‹É¢ÉôÚr¢`.3nàFCšÕ]?QÃ”É›Š‰J£ÅSºvedªæ C ï+^c#¾›&iBÎ7@€†×À =á«&fC]Ñ1žŠVœz=o4Ž!+7ÊN ¯z•gv<=.F¤«þ}$IBÁ* âV`ª&²f6r‰!°MŽŠÎ’pv0Z©Ú,°0™™Ä\u=ÓµZ´Qój õ€e&‹ä¬UòW—u±’JÉðFú<úCn'¬Q˜ÁIL¶Ü6ÑUòïš8Ô5™ u_¬æÇ2fy+ß÷bë¦è„J¥ªN‘”5I6ªú©yµ¾*êHL žp«4¡&zRºæ–^bX¬¢i²†agXÐ^vZËH)$T¾§ßë‰è]©Mv4ïëgÀÌZY>:Q9õ)B|·"µknM$Œ^à­*ez½d&ID(´R®"8FÁx&7ƒ¥ÚRä¬Ç!ÊL•Uݯc01¸i3ÅQgTÌÑë^½Í)ÓWÕ­ÂR¬6Šh’ íµšL ¢î×;‚97Ãd&ãþâýX®/c 1Ð5q"ü„,õFÓ*1©£mx ÎIÐÔ¼ïõçõ\¡7‘êD«Ë+|¤Ñ:î´9»_‡£;×´2&1.=Û:ªéåß '†;ʬÆ}=½ÉžFN_—õ¾®¬‘%õ$òV¾ï€(â+_¨k™Ë¯ÇòVžSÎ6×{Ëhúð;‚ELÅÄxz93·® ]‘¨LmN5ü•Y]?+œšWƒ©˜mÁùrå²`À£ïᄄÂú%®²‘¤Œ™áŠXMhUV1`D’Ъ[ˆXŒ¥Æ{ktÍ ½IåKÒ³Al .|_ˆ:´î×;®ÑŽ>µH;ê^Ïîöüv,Ö…téõ°ag;‡v¢èt_ß$Rj¥÷н#¡­Åy…)ÐiœH¤2$˜âù4IüaŸ Éf ³8³p¥TéšÆ“0˜DÆÌ¬‹0‡1†b²ˆÑÔè- ˆ»æ€ ™¤pö®ÍÈIÁÖìÖ ¦_'ÌÛ¼÷°sΘ‘P¡ ßGFÏt¼ ÓÙéueÈÄͬ*íû±5·†´™î{Ëæâáj­îÕ¡HJ„bÓTL¤Œ”p`º¢÷¯±Ii7üŠN1Òñ"ò˜š¬a49ІßšÒ=;dI¸¾‡Ù´ŠU’1˜àz ²$w¼Ÿ‚Ï¡pJôÑëqä™ €ñäózt†û‹÷G(_;=—¤žä˜”»ôÂ'á}?ð¡)Ú†c\jbe·¼)pE£.Rl ¦Û ÛÁÃDzâš*à=ˆñôøº•{à†îؽ;z“±ˆœpëq?[]“™É¾ÏKÒF4 A°© ‹Nz¿DÑÉF’#ërl´B¤Ëz[×a½²¯Wå<´„àöwvj^ é‰È¥V$Eè@œbÞЗ‹h)M•3¶þ¾AÀÑXZ´­¾-· •FEð:¬§R!Ô± uÙäd)UÂbm¶jw¼+º¢GVÉ–ëËB=°WstNIZu«}Oî×JÜZßa«ìÍ鹃):c@h‰=ÉopÂÐWt$¨ãJÉVÍ«uìødÌ î¹wCæ3ƒñäúUð’zò–déK…^÷êHéM)1Æ0žï;Í#Í•ÉùlÆž}ØF“£‘]WrˆÝˆLÕ\W‹u5-ñÍXA´U ‹2|´1[˜tH¨ðùzÁ.lúÌt½F#R­jµª[E1Ylsòc©10ÆeèzŒV×jnÏÏ7Y¤bÄAÍ«!gå:¾†´™nk'×¼v ìX×ÈŽa:;Íùßõë‡nfŒ­Y™;ÃA«^:tš;àxr: ½²."H½Œ1Æ“/ŸH\ßí¸ëO]ŠH°SzjÝ´±äb»Æ€®¬¨jÚ¬ñ÷õ3T -!îkíeo´ÑŒ˜œItk³1°uWd¦b¶‘WÒÑZUǵIÀ†»$&RL1‘™+1áKK¬\7º%õ$_?벎·ÜXÆxº}Í'm¤¹‰W[÷y#§Zój×…d#kfáèΪï'cd"ï¼îÕ‘·ó‘ÑC¯¶%³ƒöà ß­É›ùu%ÛÔ’¥¡”ÖÞŠt,9ñwŽælE®º[â´QÝ ^ÙôbëC@§•'ÊoD’k1J¡*Q—õMÙé ;vS5…ó«ºUdì†ÎÍLÅlß4w6c (kf#í×å:r -ñÔ¸ ÛŽp'Kh ˜ŠÙ66¡gŒg¯Œ1Le§.e=f¨§UE€¼ßôïlª&¦3Ó«gj““]©^Á=Ã÷\Õ-kd±½°ý†_WJ›éux5Y|´–¾÷Aô%‰É[y±MC]4*Ô:IUÇv“t/ðÂ$.¯gÛ«_–3sbg³@áKMœçªå¬Ü†¶Q;µï}ßïIæq#,c¶Wk“™I¾oòÝÞÖ‚*©ïŠäQ‘¤ÍtÇ€îùz¢mu‹l<=Î÷j×¹j«6ênº¬wýÙý¶™ü̪àÑœ•(~Ò¶¿þo**¦3Ó›šh_mr7ä ­ëîÓºX'Ï÷ú\MÕÄ =(ŠMÖ±©Æv“t]ÖÁ-¡u|U½9Â!lsAFa`œx. ¨Ëíë1´r´ó׬™ß*Rš¡É’Q’£¿“2R7üü<üý㬙ÅTvjÝÊVm.{ÚØlqFVEç'ô„(–K˜˜½¦ä1keoøj¯+kâ^6×Çd&wä#ðàõ­ZMF¶{zžïu•RŽí&èD 𙫡›B*³ÙFË5¯Æ©Q¥Í褸Á†W¦º¢·!Žën[³[{ú÷F/^ÄéÓ§Q«E°pæÌ\¹r¥ë¿wtRó.×—1ž_¡¶Ãdf2ÂÙ]iT0hn ßÁFX¸Ã6Ú?_­BO­}‡F4×s$±ÖzVBå¤;u— qì(츦YÿÍdè½ÁKë9 m‡~%daŸ@œò½Ê2Çö. è2“E‚ =±éˆÚÍ0C1`*œ¥,cf6d”6ÓP%•ï33¶áÝT¢+D®ïBWõž“þõ_ÿ¿ù›¿‰Ý»wãÅ_~ôèQ<÷Üsøã?þcüîïþ.Ž9Ò5i o/Öü¶å¶Eº 4c¦ß±ì6%9ß%N¼#@ 0clMzËñôøºªì®)¼™?¡'°ÔXB)UBÖÊ"¶¨©² Æ/ɶΠ‰4õÅçé6q×w¯Û®l›ÐIÞ^vÖÈÞ”,=º¢#m¤QvË×e×5¡&2R‚Qm£[Ía=r€¯„%Ç`ë½µó}ôQüó?ÿ3>øÁFþü«_ý*>ö±áë_ÿ:þàþþçŽF£Ñ1¡ êÈ|&‘d$–2RHi4<Þ¥ð|ï]pï¯IKæ–êKp4gÍŠçjºº¬ÃÑ4˜5³¨ºUìÚy˳{uë:%½øHAµÁ´¯­Iö°3,ôíéÜn–$@p³CÁ*\WÐßPb{ÏìåÄØØ€×q}¶f¯K騛¹® EáÇK×u4H'àÂ… x饗ÞX|{/îÅ]Ò]–ñÔ8^çuøŠÏ•æ$õ]s~4EÃDzóÕy”Ò% %† h?ÀUVVœi{#sãӯ›ßa ªÌ©|[“k?àŠÜ?I‘Ox©˜‰í&èšÕy¾ÙvÐ[«‰¬™½nΧ`xKÚÊoxDf²ú•elÍmÝL<“ÉàòåË€3gΠP(@UWñÒÒöïß p‰]ÂreÌèüÝòVš¢¡îÕWE†ß¨ á{ÇÞyÎ}íèH*ŠÉâ¦oc¬×1bz­€Þ%q%ç~&¶ ú¼À‰~ÐoÒ€døIº9WÖÈRF cɱëHZ93×u9IZѳ¯y5lÍm]—£­T*8zô(®\¹‚ãÇãĉÇÓO?¿ýÛ¿…eYøÆ7¾gžy†±â&&&ð‡ø‡€óËçñÓ7~Šƒ?<Øñ3h&|äòìÙõ®;?›™*²Ò3 ñzZ¼Ï¼¶Ue®ç¶ù×çD3ýLÚtYÇXr o^|Œ1 '†ß5›%·²]UЬHЏžïÁ¾Åw­y<=~ÝÀ;š¬a*;Õ—.ˆÌ¸@‹p®èõÎ.\¸€o|ãÁ¾}ûðÃþðì³Ïâ‰'žÀ·¾õ-ìÞ½Ÿüä'»&D¶fcÇÀŽî‡”I(¥J¨{õw îz‚ØÞýº¡ùæp…nkv_ ƶ¤· êUáùÞM;R+ôÐ 8úñz®lêC’ЯS…®H¼êêG„ÖÏ/ǃw¬»­V*•ð•¯|¥ýçÊ2žyæ<óÌ3kþ S1× ÔÅd9+¯ÎÄvË$f†bà’©­µÞ/a–V£±ˆ¸›&Ûu¨Ð[×Íîd%&]wdu1YìË K’$h²†åÆ2fò3×e®I+:«YÊHa[n[Œ´í–©ÐMŹa#"¯~›©˜œÉÑ‹wÐo™€îùÞ-ñ²¯÷®,1Öõ«B_K!ëz›©˜˜ÉÍÄ@ªØn© ½“éJôÛdIF)YB€ ïÊ‹±Ý ýf^Y»U,¡'0[˜½¡g¯“ÚHgb‹íf6Kµ:ÎÐýÀß%D†‰Ìß2‰× ß¶!°Å›yeíV°Œ‘é ‚¾Ý„Øb»UÌPŒÎ-÷ €©myÀÀ–ô–w÷CЯÒPd%^Ay—Û€=ð®è±Åv+™®´+!6KçMÂ2Uã©ñM¥Ší:tÏ÷`*fL8ð.·‚]ˆwLc‹í³NmîtYßÔŠ¹”.Å|ûﻦzÝ«·‰OÄö.Ìêâ`[l7œu´ÔÜrf®oÔÁ±¸…ºp„ûÍ(Ê[l±Åv]+t‰Ók‡5–˘ÎMÇäA±m|@¿vÐc‹-¶Ø®K@—5001G÷ ã©ñ¸[*ô[d=¶Øb‹ízt ’¨Ð‰ú8fm‹­/=@pÃë.Ç[l±½M–¸BUè·‚éÜtŒ8­?]“5˜Š?ÅØb‹-¶>UéAÀ <0™™ŒÛí±m|@÷ aIDAT¦jBSb„{l±Å[?ŒvÑ©Ý8cëK@¯{u$µ$4)è±Å[lýªÐ¾®6™Žµ bë_@Ϙ™xž[l±ÅÖÇ€îdIÆxz<~ ±õ' ®»¤hl±ÅÛÍlº¬£êV‘·òH›q»=¶>tERâyNl±Å[?º¢£Ü(c*3 ¤ÄÖ¿€n(Rz¼[l±ÅÖ/³T †l`,5?ŒØúГZ¦¯¬Å[l±õ3 ¥Çb2™Øz²«fÝÏšÙŽ9‚¿ÿû¿Ç›o¾‰?ú£?ÂwÞ øîw¿‹ï}ï{p’$á _øŠÅbüÀb‹m}&7 `Ŷ ÅýV7ÆvíÚ…½{÷âÒ¥KâÏ;†ÙÙY|êSŸâç%›Vl±­ÓÒF:î„ÆÖ߀ÎCÞÊÇzl˜ššÂÔÔ¾÷½ïµý{öìa¸ÿþûñàƒÆ+¶ØÖi3Ë—ÆÖ߀®Jj,zÛªöØcá®»î‚ïûø‹¿ø <÷Üsxâ‰'Äÿüøq|ç;ßÿ»\.C’bÒŒØb [Üj­ï]–däÌ\üôbëjwß}·øïÕj?üáñá²Ì»:–eaffF(I1ÆÄü=¶Øb‹-¶M è±ÅFæû>ªÕ*\×E­VC­Vƒ®ë˜ŸŸ‡ªª‚‡Æàà`¤ÀÇ>ö±øÆ[l±Å=¶ÁÞzë-|þóŸÇ+¯¼‚£Gâ—¿ü%þäOþù—‰C‡Áó<˜¦‰/ùË`,ÑÄ[l±õËþHÕ6}¯ IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_hyperalignment_alphasweep.png000066400000000000000000001346031323370031300245670ustar00rootroot00000000000000‰PNG  IHDRX[ ðïsRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEÜ #¹t40 IDATxÚìwxÕ×ǿ۲»ÙôÞ! Bï½éEŠHQ)‚" Eª‚ "¤ˆPšé¡7¤ B€„ÒËf³›ÝóþÁ;óÛÉ&!AJÐóyž<ÊìÌ;ç–ùνçž+#"Ã0 Ã0 ó̳ †a†aX`1 Ã0 ðÀb†a†aÅ0 Ã0 ðÀb†a†aÅ0 Ã0 Ëa†a†aÅ0 Ã0 Ëa†a†Ã0 Ã0 Ëa†a†Ã0 Ã0 ,†a†aXE€ˆØZE´ ÛêÅÛæEÙ<¿ûtïÿZ½(ÊórÛx1ö·X,Üg•àçzÖùzÕËïßZÿŠ,°d2.\¸P¤¿óçÏÃd2½r…˜÷÷'uRÖ¶ùóÏ?Ñ¡Cœ9s2™Œ{{+Û=z:tÀ­[·ž©m233Ñ»wo¬X±â…Ù\&“ˆ°jÕ*¼ûî»HNN.ðÞ2™ û÷ïGÏž=qíÚµ}½ÉdˆŽŽF‹- ™L†ÜÜ\lذC† A||ü®m¼H‘)“É0hÐ >r¹¼P%“ɰsçN¼öÚkˆ‰‰ùW•KVV:vìˆ7–Øçú‘¯¿þC‡Ezzz±Ó0èܹ3V®\ùÊ•á·ß~CÏž=Ÿù{á•XвeK4kÖ õë×G:uP»ví|ÿªW¯Ž¤¤¤Y©322Я_?ÔªU YYY6¿ëõz”)S­Zµ‚\^tó>{öìyªN¤0L&vî܉ .¼ðÎáúõë8räŒFc¡çÆÅÅaß¾}HKKûO”õƒ°ÿ~±mY,\¾|QQQ6íí¿òqÿþ}´lÙsçÎ…Édz®/“¨¨(ìÛ·OòQŽï¾ûÎæ¾111سg233ÿU67™Lرc®\¹RâEÆåË—qìØ±§0›ÍØ»w/®_¿þJ~xÄÆÆbÿþýÈÈÈø×¶eqNNKKƒN§Ã;#¶mÛB­VçÛY˜L&¸¹¹•ȶX,HJJBBBB_—<€“““øï¢tˆuëÖÅ­[·àããSäë¬Ï)îùE9^”ߟ&Bç7¼×[ÿ[¡P«ñå—^^œœœpñâE888ü£üvÿ‚ΕÉdEàÂy…Ù¿ {æ÷L/²^=ÍïyÏS©T;v,Þ{ï½bµ§)«§.ÏÚ^yÏ3›ÍHHH@zzº¤Ï)JÙ·Í?~\R/F#§ÑhÄýû÷áææ;;;$$$À`0ÀÍÍ ^^^ÈÎÎFjj*²²²›› •J¸»»©³Ë[NB›JHH€Éd‚V«…¯¯/’““a4áïï/ö'×®]ƒ››\\\ƒÁï3äääˆv²³³Ãƒ›› N???Èårdgg#>>999Ðjµð÷÷‡R©´±WÞºáîî‰hŠ…<<<ðàÁèõz(•JxzzÂÉÉI<ïÖ­[ÈÉÉAbb"®]»•J•J…ÐÐP›zBDHNNFZZ`gg"‚^¯Ç;wàååÈd2X,ÄÇÇÃl6ÃÏÏ …Bì‡ ;;wïÞ…ÅbA\\þúë/ñãW»Öý[||<, àççWà J°ull,àééi#°oß¾ "BHHˆƒ)))ÐëõbýÉÛÞ„<ÇÆÆÂß߃ÉÉÉÈÍÍE@@âââàîî.©sBÝ‹‹ƒZ­–ˆxëü¦§§#>>0 HLLŸÕ××W2¥*”Ûƒ••…B///ÈårÄÆÆ" :®À¶NDÈÈÈ@jj*rrr`±XÄújoo_h?n6›qïÞ=888ÀÞÞ^l‡jµžžžppp°iOBrûömIeÝ6¤¥¥!;;DµZ 1Í‚>$õz=âââàêê www›v|óæM¨T*‹u5%%ÙÙÙ0›Í°³³ƒ»»;œ%eß½nß¾ •J…€€Iÿ‘””„ŒŒ øûû‹mB&“Ád2!!!YYY "èt:øøøHÚ´Ð÷&''Ãd2A.—C£ÑÀÝÝZ­öù 0*"‹Eü³ÙL¿üò õë×"""¨Q£F4~üx:tèeffRI&55•Ú¶mKÁÁÁ”‘‘aó{ff&iµZªR¥ŠxìêÕ«Ô§Oòõõ%òóó£ÀÀ@š6méõz""Ú¿? _~ùE¼®sçΤR©hýúõT·n]òññ!•JEõêÕ£³gÏJìš””DÆ #{{{rww§ððpš:u*uîÜ™Pvvv¡Ï5vìX@¤Æ“¯¯/U©R…®\¹B¹¹¹´téRŠˆˆ wwwrww'?~<¥¦¦JÒÙ·oÕ¬Y“´Z-ùûûS£FháÂ…¤T*éý÷ßÏûòË/ ݼySr}tt4ÉårZ½zµxìÇ$µZMçÏŸŸyûöíT­Z5*]º4yyy‘»»;EFFÒæÍ›%éÅÆÆ8p 9’Ê”)Cr¹œ¢¢¢(55•4 2D<ßÓÓ“<<<Ä?___@èË/¿Ï;zô(µiÓ†¼¼¼ÈÃÃÜÝÝ©M›6túôi²X,b¹ÄÇÇÓ{ï½GÎÎÎäééIåË—§÷ߟ D‘‘‘ôàÁƒBËeýúõäááAŸ}öµk׎ÈÞÞžBCCéçŸÏ[»v- +Vˆ6ò°bÅ  Úf„ €¶nÝJMš4¡ÀÀ@ÒjµT±bEÚ¶m›M{ýñÇ©zõêâszzzÒ€èîÝ»â9—/_&///zÿý÷iðàÁA4~üx""š2e Õ¨Qƒ‚‚‚ÈËË‹\]]©qãÆtäÈÉý~øá@ׯ_'"¢œœ7nÐ_ý%ÞïîݻԻwoÒétäééI‘‘‘4iÒ$êСEFFRRR’x.jß¾=}öÙgN®®®¤V«iĈ’6|éÒ%@£F¢áÇS™2eH§Ó‘¯¯/­Y³†ÒÓÓiäÈ‘NäääD .´±÷¨eË–brss£öíÛÓï¿ÿ.Þ+))‰ªT©BíÚµ£éÓ§SÅŠÉÃÃ4 ½þúëK‹…=zDÞÞÞ$—ËÉÞÞ^L³jÕªö³óçÏ'tñâE±¿]¹r% =zPZZéõzª\¹25mÚTì¼¼¼($$„ˆˆ¶oßN€ÈÓÓ“Å2]²d Éd2Z·nuìØ‘I£ÑP©R¥Äºf]¬‰‰‰¡ÐÐPjÖ¬FÉy="GGGjРeeeѼyó¨R¥JDäééIÍ›7§'NHž}Ïž=€&L˜@;w¦àà`rqq¡={ö——õéÓGìs…{žø€ÒÓÓ%vêܹ3U¨PüýýÅzÝ¿±(¨¬¯\¹BNNNÔ£G›óîß¿/¶O"¢´´4š0aU¬X‘ÉÃü¼¼¨S§NôçŸJ4ÄÚµkÉÓÓSÒ®üüü¨nݺ6å1~üxòôô¤7nˆÇÓÓÓiúôé"¾×iÞ¼yd0ÄóNŸ>M;v$///òññ! ¤o¾ù†ÌfósÕø§ ¤¥¥ÑìÙ³I§Ó‘··7;wî_'°zõêE^^^´qãF:yò$;vŒ6lØ@[·n;¶#GŽZ­¦_ýU¼®OŸ>€š5kFëÖ­£“'OÒ–-[ÈÝÝj×®-)\áÜyóæÑ©S§èÀÔ¡Cò÷÷'I…ÉÉ“'“R©¤råÊÑâÅ‹éèÑ£túôi""š>}: ?ü:uêEEEÑàÁƒÉÁÁ<(^ûàÁ@ôî»ïÒÁƒéСCôðáCJII!___3fŒxþùóçÅ¿K—.Ño¿ýFÁÁÁäåå%¾àOŸ>M>>>Ô²eKÚ²e 8q‚vìØAõêÕ£²eËŠ/w½^O|ðÙÙÙÑœ9sèäÉ“´wï^êß¿?©T*ªV­ÚÖ† U®\™.\HǧݻwS­Zµ(<<\"Pƒ‚‚¨^½z6i„††RÍš5Åú2mÚ4R(N‹/¦Ó§OÓÞ½{©zõêdoo/iƒëׯêž={èäÉ“´qãFòõõ¥×^{M<ïÚµkT¹reÒét’s¯]»FDDŸþ9­]»–8@§OŸ¦;wR“&M(((ˆRRRÄtòXS¦L¡ÈÈHI]騱#ét:úꫯèôéÓ´gÏjÞ¼9¹ººRÓ¦M)99Y"°|}}©_¿~´wï^:qâ}úé§€fÏž-y(•J ¦aÆÑáÇéÈ‘#Ô¤I²³³£Òo¼A cÇŽQçÎI&“I:þãÇ“««+5kÖŒ~ùå:yò$íØ±ƒ*W®LeË–_ZÉÉÉÔ¢E rvv¦6mÚˆçΟ?ŸT*}üñÇd6›Éd2ÑîÝ»),,Œ D§N¢óçÏKî™÷#öðáäR©hûöíd±XÈh4R¯^½H.—S5D;&%%‘\.§O?ýTL#,,ŒªU«FDD´iÓ&²··§)S¦ÐÅ‹éìÙ³â uÉ’%€"##iΜ9tìØ1Ú¿?Õ¨Qƒt:Ý¿¿ÐºýÑG›ô7ß|CèèÑ£â‹ðÛo¿¥Õ«WÓ¡C‡èÔ©S´eËjÞ¼9U«VbbbÄë8@¨L™24kÖ,ŠŽŽ¦èèhJJJ¢Y³f‘“““X·„kæÌ™CZ­–._¾LDD)))¤Õj%vÚAÅŠiÖ¬YtìØ1Ú·oÕ­[—\]]%/îåË—êÛ·/EGGÓ‰'èÃ?¤R¥J‘J¥¢}ûöj—˜˜š?>mݺU¼~ÅŠäååEC† Ûq~+11‘jÔ¨AJ¥’úõëGQQQb½R«Õ4tèPq#;;›t:¹»»ÓСC)**ŠŽ;&¶E‹IÊeôèÑôÓO?ÑÑ£Géĉ´~ýzòòò’ôñæ›o’(î…4§NJèÒ¥Kbþ—-[F7n¤Ã‡ÓÉ“'é»ï¾£ªU«Rë֭žµ U¾|yjݺµM»˜:u*…‡‡Ó­[·Äãƒ&¹\N3gÎëÉܹs MŸ>]¼¶V­ZTºtiúùçŸéÔ©SM«W¯¦_ýµd ,kåj4ióæÍÔ¡C ¦† Ò¢E‹lFD^u•••E 4 ¦M›j“‚–½½=mݺUrÍÔ©SÉÅÅE¬X—/_&µZM¯¿þºä¼””rrr"WW×" ,ôùçŸKŽß¿ŸÜÜÜhÀ€6×Ìž=›T*ݹsGÒa £k_|ñÉd²g&°,K;<<œ† f#°4h`sMrr²D`åýËÍÍ¥¾}û’R©¤èèh±a<˜J•*Eñññ’ó/]ºD®®®´jÕ*""º~ý:ét:6l™L&ñ¼7nPxx8U®\¹Èë‹/¾?rä Ÿ~úI<¶hÑ"ÒjµtèÐ!ñØÁƒ ÍŸ?_<6mÚ4’Éda)ä_&“QÇŽÅúS«V-›‹ˆhóæÍ$—ËŲ¾víU¨PªT©"=Ê;ºc͵k×ÈÁÁAò EX/^GšòÖU¹\ž¯ÀŠŒŒ´ ¡úõëÛ,aä$¯­+V¬(©C·nݲiíÚµ#ÊÊÊ’¤qõêU’Ëå´téR±î5oÞœœÅQë4ÂÂÂÄ:sïÞ=ª\¹2}òÉ'’û4bð÷ßS¥J•èƒ> œœ2äïïO¯¿þ:•)S†N:EDD;vì µZM»víÊW`;wŽhíÚµ6÷Ö¸qã$Ç…Q$¡ÔçEGG“££#}öÙg’6×¹sg*Uª”ØgÔÖ/^¼(ŽNåX“&M²9ÿøñãäââBK–,¡ÜÜ\±¨V­½ñÆ¢ø-L`;V’æ©S§}ýõ×’zåïï/ióDD7&¥RùD%ä-/óæÍ#FCF£±PU­Z5 ¥+W®HÒ3f ÙÙÙÑ… DeggGMš4‘´—¬¬,*[¶,õìÙS´}AumãÆ¤Ñh$÷ʯ¬wîÜI …Bb'“ÉD5jÔ Š+JF¦òã×_%{{{ñ>ÿT`]ºt‰är9M™2Åæ^#FŒ R¥JQJJ ¥§§“¿¿?õìÙ3ßg+È.Ï e1¦!“ÉpöìY,Y²[¶l££#zöì‰Y³f¡T©RP«ÕP*•ÿ*ß+{{{Ô®]Ÿþ9Ú´iƒÞ½{£yóæð÷÷/ÒõŽŽŽhÔ¨‘ĆժU}2ÇTaÉ­õy...¨U«NŸ>]äüöèÑC’ÆÑ£G‘™™ ³ÙŒE‹!77Wt:‰‰ÅbÁùóçŒëׯÃßßåÊ•“¤Ñ°aCÑÿäY­¬2›ÍXµjV¯^[·nÁ`0ˆ¾ 5kÖ´¹¦V­Z¢ŸDa> Ö‹¦NŠõë×cÇŽ¨_¿¾¸ÊíÊ•+pttÄÚµk%þc999by 8ñññÈÊÊBƒ $õÚÏÏuëÖÅÙ³g‹ÔnQ¥J‰Mýýý!—Ë%« û÷ï?ü?þø#7n ˜={6t:†j“n¯^½$iFFF"((HÌ×µk×pÿþ}xyyaÁ‚bù) ÄÆÆNž<‰êÕ«‹‹SZ·n-ñɰöoš={6~þùgܽ{&“ ‹YYYùú½Æ‘#G`gg‡† Jüe¼½½Ñ Aƒ|WTU¬XQô{òT®\9ܽ{ׯ.-Z´°9O&“¡nݺ’:øûï¿Åºñ÷ßÃÝÝ+V¬€Ùlë†B¡€B¡ÀÑ£G1dÈÑ^õëׇ§§§Ä'00Ç—¬ö|£rssaggW¨ó~pp0"##±oß>L›6 7oÞDzz:úöí‹øøx;v µjÕÂŽ;àëë+–_A+ͬÿ›_›iß¾½Ä^•+WíQX;kРÊ—/E‹a„ €ßÿ'OžÄðááR©@DËåHLLÄ¢E‹°mÛ6ÄÅÅIêÐZ×ëö"ܳzõêhÖ¬¾þúkôïßZ­7nÜÀùóç1nÜ88::ZïT*š4i"yÖªU«Š>ŠB›ILLD§Nl|óÚ·oèèè'¶w…BË—/cþüù8|ø0’““a±X`2™`0ðèÑ#øùù˜Fnn.jÖ¬‰ÀÀ@ñ˜B¡@Æ ñùçŸãÁƒ¨T©’˜¯ˆˆ¸ººŠ÷—Ëå(W®œè3éèè™L†{÷îaòäÉˆŽŽ}и۷o‹ý~~eÝ®];øûûcáÂ…b_tàÀ\½z ,Üûþýûøâ‹/ð믿Š>‚f³z½=BDDÄ3Y-k±XÄz%¼×är9’““‘™™‰«W¯¢nݺ¨Q£~øá˜L&ôêÕ Íš5+’ïè ur:¤Û·o£qãÆX¿~=Z¶l ;;;ñárss‘›› "‚F£)‘±-‡?Á4ï [pT·vØŸ?>‚ƒƒñÕW_aàÀ0›ÍˆŒŒÄ7ß|ƒzõên`¥ÎÎÎ’Ê*tß§ð!Pн„6_ )Š —Ëå¨R¥ 6mڣш;vÀÝÝ;vÄöíÛ±oß>Œ5 ;wîD¹råàííýVKYÛE°«ÐŸ?©­½ñÆ5j8€fÍšáäÉ“ˆG·nÝÄ2‰EïÞ½qâÄ têÔ ]ºtƒƒâãã±dÉdggÃb±ˆå¢ÕjmúL"‚:t耭[·âÏ?ÿDµjÕ°zõjTªT µjÕzâsÊår± ÷ê†P^ÂBëh!Eù¨–Éd8tèºví •J…N:!008vì¶lÙòÄöBDpqq»X÷ÕBGw¥R)YL$¼ßT*•èø-|D„……ÁÍÍ :t@HH4 þúë/¬[·Nìó +ëþýûcÆŒ8sæ jÖ¬‰¨¨(èõztïÞ]¼÷µk×ðúë¯ãÎ;èÒ¥ BCC¡Óéð×_aùòåÅî+ò o!ÒòåËó]‰èçç'>ÓÏ?ÿŒO?ý«W¯Æ¶mÛ@D¨W¯V¯^ðððçªSŠ5Üwww$%%áƒ>ÅT^RSSqóæMxyy•È)GGG<|øf³ÙæûàÁX,x{{K®1bFŒÄÄDìÚµ 3gÎD=pöìYñåÿ´«‚nß¾&MšHlzûöíbU€¼­‡‡ öìÙƒV­ZxÉd‚ƒƒ~ÿýwñþBZÂÊÆ¼•õHƒpnFFÆQVV–.]Š?üóæÍ“ü¶|ùò©¸»»C©TŠ£šÖ}›õ±ÂX½z5rssq÷î]Q B~Ë–-O,aÄO¯×‹£OÖý°ò²8å7sæLh4œ>}Zb« 6`õêÕE²ý»ï¾‹™3gbÕªU áC‡Ð»woɪçàòå˸pá‚8Ê»wïÆòåËŸ,H”JI€oÁöyû[Èårœ={VrŸ‚Þ‡S¦LÁ”)S‡­[·âÓO?E×®]qáÂ…ç:ëV¬@£Ÿ}ö&Nœˆ·Þz C† ÁðáÃEáaý7vìØ—±¾l”J%Ê—/£Ñ(ùª ï§Ÿ~‚ÑhD»víDáa-.<<<ðÖ[oaذaˆ‹‹{jEnM“&M V«ñÝwßI¾BbbbpöìÙTš6m ,\¸0ß©!lƒJ¥Bdd$püøqIŒœ½{÷"55UVêÁ IDATr0‚#Œ–ç?~z½¾ÐND°YÞaò]»v!&&æ©_°2™ çÎCï޽ѺukÌ›7OÒø…’š5k 477W ÅáããìÙ³Gb»˜˜|8:vìˆ+W®<÷-zŠüæ¶X,5j^e¬‡:·lÙ‚wß}W¯^çáOŸ>Ù³g£víÚèׯ 99Ÿ}öt:Ê•+ÄÄÄ`É’%ˆˆˆxâ¼Q(Uª†Š `øðáxíµ×œœŒ¯¾ú Ožˆàéé‰9sæ`àÀèÚµ+:uꤧ§ãÊ•+8}ú4vïÞ ¹\Ž`Ó¦M8p >úè#”.]§NÊ·qÔ¬Y*TÀ°aÃ0qâD¸¹¹áÈ‘#EêDÜÝÝQ¡B,^¼NNNðððÀùóç±fÍøúú{zEh$)))xóÍ7‘™™‰Ž;â?þ§t_ 6 QQQèÕ«úôéƒòåË‹#ˆ{÷îÅ”)SP§NbĈ˜:u*œœœÐ¦M¤¤¤`Ó¦MÈÈȰ‰%ô,puuE¯^½0hÐ Àš5kòí˜19jÔ(´nݱ±±˜5k\\\0}út§6?ùätíÚ]»vE÷îÝŒœœܸq{öìÁŽ;$±Áò£aÆpwwÇ€0tèPhµZìÛ·ï‰þ(…½Ä „+VÀÍÍ 7F\\.\ˆ   —º/ÙôéÓqêÔ)´k× @DD, bbb°ÿ~|øá‡¢OqÊ´T©Rزe ªT©___hµZÔ­[·ÐkÊ—/;v€8òSµjUà‡~€‡‡G¾þŠÖ„……A«ÕbíÚµ(]º4Ôj5þÌFåÆŽ‹-[¶`ôèÑðôôDíÚµ%ýmhh(œœœ0iÒ$ 4HœFÛ¾}»è.QFŒ¯¿þ_|ñ6l(úW>«å™3g¢k×®èÖ­† •J… 6H¦‡ {¿4lØ[·nÅûï¿-Z 99?ýôbbbŠl׌Œ Œ?o¼ñÜÝݱwï^¬Y³ãÆC™2eŠýL½{÷ÆÖ­[1pà@téÒéééX¿~=RSS‹d7áœñãÇ£U«V˜4i""")™r¯T©ŒF#ÆŽ‹=zÀh4bÏž=8pà@‘òÙ·o_ôèÑcÆŒAçΑ””„5kÖØ|t•)SŸ~ú)&Mš„¬¬,´jÕ nnnHJJÂÅ‹‘””„µk×âÁƒ˜Pff&MŸ>*UªDnnnb|¨ž={Òü!®šâ`mß¾]¼¶K—.¤ÓélV£l߾Ў;$+?fΜ)Æø ¥5kÖP·nÝÈÁÁá‰Ï3nÜ8 YaoeÿþýÔ¼ysrqq!FC^^^T³fM›U—.]¢V­Z‘9;;Ók¯½Fk×®%š1c†MÌ«êÕ«“R©$777êÓ§þaÍš5ây›6m"tæÌ1_üñ5oÞœ4 999Qýúõi×®]TµjUjÑ¢…˜w!–°ì6o]Ójµ4tèPÉê4¤ÑhH¥R‰jµšV®\))ÿaÆQ`` ©Õjrrr¢°°0zóÍ7%埞žNÓ¦M#OOOÒh4A³gϦwÞy‡lVåeåÊ•¤T*騱c’ãýõ Å‹Û”×Õ«W©B… Tºtiqe”5Ó¦M#tüøqêܹ3¹¹¹‰«ç¬m,pöìYêÚµ+yyy‘Z­&wwwªX±"1‚rrr$q°¦OŸnS_…U@*T {{{rss£®]»Ò–-[ÈÎÎŽF-Y•€®^½*‰ƒ(†¤âC3†œœœH£ÑPdd$­X±‚ºtéB7–ô+¨ÿþ6yjÕª‰mPˆƒ5wî\›Õ¸$qܬÓîÞ½»Äf·nÝ¢!C†ŸŸ©Õjrqq¡ððpIÌ ¤¤$ª\¹2uéÒE\&0pà@ 9M5kÖ${{{²³³£°°°'®ÖâaJ~ïׯ :Ø”µ··7…††Ú¬ !­V+Y½¹`Á ®J³Žc…úH<¶zõj@‡ηX¯.´X,ôã?Rhh()•Jòõõ¥?üæÍ›Gr¹Ü¦-ç-·ììlš9s&y{{“F£¡   š2e M™2…ˆ!!Ìf3 0€J•*E=WVªT‰Þ}÷]š?>•+WŽ´Z-¹»»Ó'Ÿ|" “ ×ë >\’ììljÛ¶-Õ©SG\Õo4é‹/¾ ///Òh4@ãÆWýæ?Xz½žÜÜÜ3F\1)<»Ñh¤Õ«WS™2eH£Ñ 4ˆ–.]*¾ó„UäË–-#•J%Yµž••EÓ¦M#gggR©TAK–,¡1cÆ$œ†Á` ~øj×®MŽŽŽ¤ÕjÉÏÏ6l(®öMII¡‘#GRùòåÉÅÅ…t:ÒàÁƒéÖ­[Ï}¡ŒŠñù ÕjñóÏ?£uëÖâÔÖ AƒÐ·o_ñœ7n iÓ¦EöM*l;Œâlñ4¿›L&äææŠs¾r¹*•J\="(s³ÙŒÜÜ\q50ä¯R©Ä´Ìf³qW˜Ò3 bÔtë< ÓP¹y¬§]{{{”/_^t¼- £Ñ£ÑNWà66F£Qô›VF)•J›)ÈœœÑÁU§ÓaÏž=èÒ¥ 6mÚ„.]ºHÒÌÉÉGœT*•èlmáy5èeà±Ã·Z­†Á`ɇu½^;;;›¡l"Bvv¶x­Åb£ç‡Z­–| åWþ …BR®BþF£X.vvvâ FSè´A~Ï.ŒgggÃÎÎNÌ“`×Ó§O£mÛ¶;v,ÆŒ…B!ÉÏôéÓ1yòd$%%ÁÉÉIœÂV*•°³³³‰ä.DΞUppÊ^°³Á`°©×Ö ŒF£XÖÂyÂ5֎уöööâŠ=áÞymemWÁî¨R¥ ~úé'ñ¼ÌÌL¨T*ÉA~í+?› Ï•••o²N;oß`2™D;æµ—ܺ®æm?öööbXÛOèC„ß Âd2Áh4B.—‹»‘ËM&”J¥M„éyëó-‹Ø¯ŽÝjµZL_«ÕÚ8 d¯‚úS!jwÞr*¨þý¬Á`ÿ_hƒÁ¦½äM¯zõê¸sçN¾{Þ ÑÄU*•¤^æ×…: <«uß&Ô/¡=z4/^Œ‡J"šç—?¡n ÿÒÎÉÉ‘´ Á&BNJJBÓ¦MÑ´iS|þùçâjK! ÁNB½ÌûœÂo9996‹Í„÷‹už„"Š@¸§Á`#´ç½¯ðÚµà[jý^ì/ØH(!}ëë ìììÄw°Ð‡T¯„¾Mx‘¸øN(Ka€Ð–KÄ¡ð·v@³~°¼/•¢è6ëp÷ãÇÇš5k››‹îÝ»cúôéùÎ5Ëd2ôë×6l°y‰eÞڠ–…'T'U>…Baãw&8ç7ÇnžÐ°rrràââ"¾l-Z„k×®aÆŒO´eA¡õs¨Õj›9/·nÝ‚‡‡‡è»‘€… ‚ˆDamf~Ϙ×ùÙ¯ üäõ™’Ëå_†¼iX¿¤äry±|ÿ +ÿ'å_°ùÓ^›_^…—ú¯¿þŠŒŒ q©øÓ¤o]υδ°üô·Þó,¿²Î{R©””W~÷&"¤¥¥!++KÜbK&“aáÂ…¸uëÆ'é *ÿ¼ù)¨ü K#o^‹Z7SÏ[¯ ²_qê§õ*¿‚ÊÒº<¬Ë.¿¼ôŒ…Ù« úQ-Š[òëG­ýd2öíÛ‡‹/âã?Î÷£Z&“©*¬\»v ÁÁÁâG×™3g°lÙ2Ô¯_îîî…n-SØýò–gAý±°jµ < ÷)¨¾çgk…B‘o/jŸYÔ²V(ùž“÷>Õïül'­¢Ö+ëóŠÚÏ¿tõ¬±^°k×.,^¼:“&MÂØ±c±lÙ²|}œ>ùä1 І ‚°°°WÖ?ìúõëhÚ´)êÔ©ܺu ÷îÝCëÖ­1qâÄ–Q£Fáúõë(Uª€Ç+€ Ö®] FóÒ7Ïü73cÆ ?~'NœÀĉÅ2ÈïES”‰’Ì™3gЮ];4hÐjµZ¬ïýû÷Ç;ï¼óL}j˜'NœÀœ9spìØ1„……‰±·žG=©\¹2*V¬ooo¤¤¤à÷ßGHHˆ¸òøyÕͼ#ûÌ«M±V^Å™Wiæ^y—/_ÆO?ý„ï¿ÿmÛ¶ðxÓÚ=zàæÍ›¨R¥ŠÍ”WXX˜DL={>Äܹs_Ù‚¨T©V®\‰?ÿü™™™¨P¡ªU«†ž={æû•ö¼˜>}:öïßû÷ïÃh4¢qãÆxíµ×P­Z5n-Ï{{{„††¢gÏžèÑ£G‚¶nݺ9rd±GDJÕ«WÇ’%KpãÆ èõzT«V 5kÖ´ ¶Ë0Ö£Pnnn1bú÷ïo3­û,Ù²e Î;'ÆìׯºwïçZ7µZ- ðJ0VƒHÅñÁR*•øì³ÏP¿~}X, :íÛ·G›6m<Æ»sç† †ëׯÉkÕªU?~Á‘³(ÄÆÆÂÛÛ["¢\]]ááá›7o>1ÄÄDìß¿:uÊw:QpÀ<~ü8J—.ýÒæb†a†)y‚*%%J¥åÊ•+r\¶g.°„ ’EbEâ.¬Äð?'ÎÌÌÌ'^ëÖ-œ>}cÆŒ)ÐùîÀâ~[LÉD.—KP0\>LñÊ'o¤r¦ä`½*—)™´mÛkÖ¬y¦;Ðk³çÂæ……•ƒÅ!Òjµb¤UëU…&“鉫Ìf3Ž?__ßBç ›ºFGG# à©÷ cž:ýúõÊ+ع³„–Ïûï¿É“'¿Ò~_ÿV4 æÏŸ: 88˜ RÂP*•غu+ÜÜÜШQ#þP)a˜Íf¬^½ׯ_/òêÙg.°d2RSS°°01–…ÅbÁ‘#GpðàA 4lØ-Z´(rGìç燇Š13€Ç¹“’’’ïžKBX†ÌÌL|ÿý÷hÑ¢E¡{Q ¢¯L™2ÿxß@æùàèèÈ/‡Œ‹‹ žé¦ß̳ÃÃÃ!!!®räâââ0nÜ8„„„ o¼ñÄí;Š2j±råJ´iÓƒ BÏž=ŠùóçÃÙÙÀãs´ÙVgÁ‚¨W¯<==¹$_q:tèÀF(Á´hÑâ‰Qå™—G:už¸i7óòˆˆˆ`ˆÿ Åê1ííí%ÂéäÉ“0hÕª•xÌÙÙ¹HÓu‚P""èt:,[¶ Ë–-ËW€íß¿ßæ˜L&CVV–xŒG¯^]ˆƒær,ÁåÓ§O6D .!H3·¡’Y>5kÖäòùR¬¬zõêáÛo¿ENNÒÒÒ…ÚµkÃÁÁA>ñññpttÌw£Î‚DVA.¿ß :ƼºXûÕ1%·|˜’_>\V\>LÉ¡X#X3fÌ@óæÍQ½zuÈårÄÄÄ`ãÆ’Š___^ÎÍ0 Ã0 ¬'AD(_¾<¶nÝŠ;w"77 4@»víÄaOƒÁ€råÊ¡aÆùîÚÍ0 Ã0 ÃË Á_ªnݺ¨[·n¾ç¨Õjôïߟ­Ê0 Ã0Ìšbù`å?¶Þš÷†a†aóÖ]³óÃ0 Ã0Œ-r6Ã0 Ã0L Xyã]q4a†a†aX`ýC„€Ÿ+V¬@FFO2 Ã0 ÃëY$’‘‘ & 99™-Ê0 Ã0 ¬g‘!;;›§†a†y% d2@þœ¼Ñ‹hT˜þË/$ƒR©äéA†a†aJ<¹¹€É¤¦ÇŽÏc/û"ë6™L†GÁb±Ø)GGGLš4‰wsg†a¦Äsò$0j0|8°u+ð<6Ÿ)–fëׯªV­Š5j B… ([¶,ÀÁÁcÇŽÀG†a†)¹ <þ‹‰y,°ž‡‡S±V¯^½püøq,\¸iiið÷÷GÆ ѬY3Ô®] Fd†a†y™XK“¬¬çwŸbù`½õÖ[èÑ£’““ñàÁ>|À‚ àèèˆfÍš¡GhÙ²% -†a†aþ³Ûw^«ÕÂßß5jÔÀ¨Q£°mÛ6ܼy³fÍBrr2ºuë­V‹.]ºà÷ßgqÅ0 Ã0 ¬‚ÈO(Éår¨T*899¡Gزe RSS±}ûvhµZ;vŒ-Ì0 Ã0ÌŽg²Ù³^¯‡F£\.‡\.GË–-ѲeKé¹­" ,™L†G!11÷ï߇ÙlƵk×àîî.NãÉår;v r¹ …¢Hé9rF£={öU­Z®®®øã?P¶lYÈåÒÿꫯàíí-Z`Ù²e0™L¨\¹26lȵ†a†a˜b֭یѣ—cíÚ“¼_žÀ€M›6aöìÙ0›ÍHOOG¯^½$BÊl6#99=zô€££c‘ÒŒ‰‰ŸŸ …øÐðõõÅÕ«WóõÁ:qâìííÑ­[7888 ++ ³fÍÂìٳѷoß|G±d2 44Ã0 Ã0ÿ~a%¼ó7onß~îy¹«}ûö ÃñãDZ~ýzÌš5 ®®®âï …ÎÎÎ ƒ½½}‘ÒÌÌÌ„V«Eh4¨Õj¤¦¦æ{Mbb"bbbгgOLš4 0jÔ(Œ5 ½zõ‚J¥ÊװÆ ƒ££#ˆF£íÚµC÷îݹÖ1 Ã0Ì¿™L†»wïbÅŠHL|€ß~“#1Ñàwe_®À A™2eРA 8AAA6SÅ R©T0›Í’cf³f³vvvù^cgg‹Å‚±cÇŠ>`ýû÷Ç·ß~‹sçΡN:ù^÷é§Ÿ"88XÜ Z©ä0` Ã0 ó_! ü14 4àÃ͘9ó+gžù½ŠåÕ%„MprrB©R¥`4‘‘‘´´4ñ/55)))EÞüÙËË ‰‰‰’óÓÓÓ‘žžŽÀÀ@‰`¦ nnnâožžžP*•HLL,ð^vvv°··‡½½}Ža†a˜r¹×®Ù#'Çi¨žÏ½Š{L&ƒÉdÂÖ­[ѨQ#”.]>>>’?777$$$)½Ê•+#%%ÿý·xìÖ­[¸wïªW¯™L‹Å³Ù,Š­&Mšx¼šQàæÍ›ÈÉÉAHH× †a†a $:puÊ–}~÷xª9²‹/âý÷ßGëÖ­1qâD¸¸¸H~ÏÍÍ•øfFƒ P·n] >‹-‚J¥Â¢E‹вeËB&“aÆ HKKðaà “ÉпÌŸ?£GÆÜ¹sa2™ðÙgŸ¡zõê(_¾<;®3 Ã0 c “¿ý4jq²íÅ ¬‡ÂÝÝ3g΄¯¯ï?xÐÇBè믿ÆðáÃѵkW€ŸŸæÎ À7ß|ƒ˜˜¼÷Þ{ÉdðòòÂúõë1nÜ8´iÓP¶lY|ýõ×\{†a†Éaì%7hÛöñK”Àruu…››ôz½D(ÿAûtEDD`óæÍHHHÁÃÞžžbšß}÷L&“øo"BëÖ­Q±bE¤¤¤ˆ¢ËÃÃG¯†a†)”¥KàîÝ&°êÔ©ƒV­Zaúôé˜9s&üýýÿQ&Q%ŒXY€   ›cÀã‘.???ÑÆ0 Ã0 c«7ÿ×Û[úï#°~ûí7|üñÇP©TX·n”J¥$ÚºÑhăàããóÄ´ DíCÈ0 Ã0 S\^¤„x*ŽY³fA£ÑX©ÂÿÉÀœœœ"Grg†a†ù·QlED(Uª>úè#¶Ã0 Ã0L>ü£í£÷ïß‘#G¢_¿~¸ûÿžb‡Æï¿ÿ^ä@£ Ã0 Ã0Ï›çéoõL–øsîܹèÔ©Ž;†õë×#%%pîÜ9L›6 YYY\š Ã0 Ôq%“¾±õT#X.\À×_Õ«WãäÉ“’ߪU«†«W¯";;›K”a†a˜—Žàܾx1ðþû@ff X<€——4h Y=HOO·ÙÀ™a†aæe‘ž\¾ T­ Èå@|<`0AAÏ'àèS­"T©Tâþ€‚ÀÂ'ÄÅÅA.—C¡Ppi2 Ã0 S"HNîß ®_~øáñTax8ð<Æ„žj«L™2P(X¹r%&“ 7nÜÀœ9sP¯^=èt:.M†a†aJŒÀÒë­V ˜=˜3èÐÈÉ)!+$$“'OÆæÍ›Q¿~}@ï޽ѰaC¤¥¥aÒ¤I°··çÒd†aæ¥Cܹhµ@@Àÿ޶¼† IDATçæFãó @úTq°d2^{í5Ô¨QQQQøóÏ?µjÕB³fÍàêêÊ׆a†)äæ'O¥K¾¾/æžOåƒEDËåðööF¿~ýl~³b Ã0 Ã0/³ùñaÅŠ‚VyþÛæ[` ¢I¯×ãþýû¸{÷.’’’l¶ÊéÑ£´Z-—*Ã0 Ã0/X¹òʼn«§X––†3f`ÅŠÐét6þViiihÛ¶- ,†a†a^:/JTýcõûï¿cÍš5˜>}:š5kf#¤, \]]¹D†a†yéX‹«%´žJ` „‡‡£{÷îðññá’c†a†±â©ã`9::âÎ;lA†a†a˜<Þ&§AƒWD`]½z6l€³³36lØ‹Å"ù]¯×£wïÞ,°†a†yáþWÑÑ@Õª€\þ ¬"€fÍšA¯×zŽF£áf†aæ…#©€F¤ÇJ¬À""( ÁÀ0 Ã0L‰¦R% cÇ—soåÓ^˜””„ 6à?þ@JJŠä·ÌÌLüøã¼!Ã0 Ã0//¾TªWD`Éd2ÄÆÆâwÞÁ™3gP§N›˜W*•Ê&ø(Ã0 Ã0Ì‹àÿ7–0Ùö¢ý¯žJ`Àµk×páÂìÞ½5jÔ·Èù߃ ,†a†a^ yÅÔ‹WO-°rssÈþ?ײ—‘{†a†a˜ÈS ÆÙ³gY\1 Ã0 Ãäá©F°?¬Ñ£G#** >>>‘• &ÀÁÁá‰i Ó‹ù‰4"²9žß±âüÎ0 Ã0Ì¿ÁcÉZ¼ ÿ«§Xqqqˆ‡››Ž= ¹\.5iii=zt‘– ®¶mÛ†7Âh4¢[·nèÝ»7T*•`’Éd8wî¦M›†ÌÌLQ edd`ãÆçÆ0 Ã0ÿ1a%“ýOH9$$-[vv/'OO%°jÖ¬‰èèèÙ- ÜÜÜŠ`ÇâiÉ’%7núôéN‡1cÆ !!£F‚*Ÿõ•>ÄöíÛ1nÜ8xzzÂb±À`0ÀÙÙ™kÃ0 Ãü‡Dðø¿ÙÙÀùó@ýúÀ?<>ÞªÕËËßS ,¥Riš¡0UдL&CRRæÌ™ƒ &`Ò¤I€ÈÈHLš4 ݺuCHHH¾×À!CPºté|ïÉ0 Ã0Ì¿™ ¸w˜7¸}HL|¼÷`«VÀ©S@‡€^¼¬±—§Xÿý7Ö¬Y{{{X,‰¨‘ËåP(ðññAݺuáïïNW ð9tè=z„áÇ‹Ç6l;;;üùçŸ(]ºt‚éöíÛÈÊÊ‚££#¼½½y{†a†ù@‹=þ÷±c@Ó¦ÀªUÀë¯o½õX\½R>XÉÉÉX¶l 777X,ÄÇÇãþýû(_¾¼(ÄÞ~ûmÌ;·À­unÞ¼ ¨ÕjQ„ùøøÀßß.\@»ví P($×X,øùùaäÈ‘ÈÌÌDVVúô郩S§:M¨V«ó) ñb†a˜W¼¯nƒáñïÝ23€éyù½ï•J%”J¥M<Ï—&°‚ƒƒÑ©S' oß¾ðõõáöíÛX´h<==1xð`DGGÿ{wgs½Çqüõ;³ïû`0ÆØ}OÉ)ªkKÝ(¡Q¶’%¤¤„Ò%®J YZ(J]K¶R!QvÙÆ0 ³Ÿ9ÛïþñuΜ™93Æ„™áó|<ÎcÌ9¿³ýÎÏ|ßçûýþ>_† B:uxê©§\>Vrr2Wv‚zã>>>øúúrá—÷‰‹‹cÑ¢ET­ZƒÁÀ÷ßÏsÏ=GTT£FÊ÷uÏŸ?Ÿ°°0l6‹…&MšpçwÊQ*„BÜl6Ø¿ÂÃ!::w ÓHLLdýúõ\ºt MÓ°Ùllذᆬ¯\¤€µoß>8À„ ˆvzuêÔ¡ÿþôë×矞G}”µkײyóæ|–Á`pY >¿jðº®CLLŒãº'Ÿ|’;v0þüVÆ ‰ŠŠÂjµb³Ù(W®œB!Ä-Âj…íÛ¡jUðõÍ{»ŸŸõë×Çx¥»Ëf³qøðaΞ=[2VVV‰‰‰X­VGè±§C“ÉÄùóç1›ÍØl6Ê—/ω'ò}¬ÐÐP.]ºäUš¦‘žžNZZZžúZöçȸ4M£fÍš,[¶¬À×]¿~}*Øû sÝ_!„¥›¦Á]wAd¤½Ï9DèëëK:uÛÛl6¶lÙÂéÓ§¯ûk)R%÷˜˜Ìf3/½ôñññ˜ÍfÌf3û÷ïgôèÑÔ¨QÃ1þ÷ß§J•*ù>V­ZµHHH ))ÉtNœ8Á©S§hÔ¨‘ã,Dç^.çÛïsòäIBBB |Ý®ÆX%\ !„·wwèßî¿?ïävWí½ýD½¡H«V­ZÌš5‹]»vQ©R%Ê—/O™2ehРYYY¼ÿþûa2™¸ãŽ;èׯ_¾ÕºukjÔ¨Áĉ¹téÉÉÉ|ùå—øûûS»vm4McçÎlÞ¼Ù±~ûí7N:åØ~ëÖ­|ñÅôìÙSŽ.!„â6áŽr‡¦qÃÂS¡Â^QßL·nÝhÙ²%›6mâĉ ªU«Fûöí“Å|}}yå•W÷s5¼çëëË´iÓ:t(Ý»wÇÓÓ“#GŽðꫯ:æH1‚'NpâÄ 4McÒ¤IÄÇÇ;&×ïß¿ŸZµjñÒK/ÉÑ&„BÜ&áÊž+þ“íÛÿÆfƒµk Ô­[“Šc ¬ÅY"–ÍfË1áÜþBÃÃÃéÑ£G¡ž(¿B£º®Ó¥K¢¢¢Ø±cV«•ÆÓ¼ysÇsŽ;–´´4ÇcLŸ>ßÿÄÄDt]gàÀ´k׎ÀÀ@™S%„BÜìmýÚµ_1nÜ1öí+‡ÕêFfš6]ÊÌ™íiÔ¨Y±e‚B,ƒÁÀSO=ÅéÓ§ùæ›oصk#FŒÀßßßå|¨ÔÔT¾øâ‹«Î‰rN¡ 4 Aƒy®èÒ¥KŽëjÕªE­Zµ ä„Bqëùë¯?7î»w÷*jÉœÜÇØ±ëX¼8†ˆˆÈ’°¼½½CƒŸ|+§[­ÖB‚¶Ë¯×K!„âØ±¿ùóÏrŽp: uضís’’.—쀥ë:³gÏvü»Aƒ¬]»V>Y!„B«¬V·\áJý4›Ý°ÙŠïµ*`iš†Ñh¼¦ÙøÞÞÞÒÛ$„BˆÆÃÀ‡‡‹…áJånnÅ—C =D8eÊÎ;W¨mÓÓÓ™7o^ë !„BüqqµhÑâS6nÜ Ôs„+ØÀ}÷ùQò–§§§ËÅ’]±¨()„BqCè:DGW¢_¿ŽìØñ6Ûç˜LnÙ¸ÿþ¦LéFpppÉX/¾øb¡‡u]Ïw¼B!Ä?¥ij8pïÞ¦´m[™‡ºÌàÁ¿üeÊ„ìÈ$%¶–®ë…î½B!„¸‘Ô28‡é|ýµÆÌ™áxy…£ij¡gçõKt,W/.33“µk×òý÷ßsáÂÇz>öÅš—-[Vè:XB!„…e%¿ý¦Q¶,4iûö9‡¯üóK‰ X¹¥¦¦2tèP¾ùæêÖ­ËÆ¹ë®»HMM娱cÄÆÆÊ§/„BˆÂ¢ºw‡{ï…à`u]IR¤€µwï^6nÜȧŸ~Ê=÷܃¦i,Z´ˆØØXG…w{QR!„BˆëI-ä žžêRŠr§äädÊ•+G½zõ×]¼x€Gy„O?ý”ääd9„BqÃBVIV¤€ååå…‡‡F£€ÐÐPöìÙ€Éd"%%嚊’ !„Büº%©JT‘†£¢¢0™L?~œ˜˜ž~úiž{î9öïßÏ?ü@•*UdˆP!„74P9÷bÃ]wÁPðv%:`U«Vùó熮ëL™2…‹/òùçŸS§NfΜ)UÜ…BqÝ•Ѩæ] pæ ¼ó;¦®«Z~ÌfhÔ† âŠ#E X.\Àh4¦ihšÆ¼yóäÓB!Ä aï…š<zš6…òåá7 Ìn¶"ÍÁÚ±cäüùóò‰ !„â¦øýwxýuHO¿ö`v³©+::š   Ò¯å !„BäÃh„¥KaÏ0™ 9Ê•S=PðôÓ0}:tìmÚ”ü÷S¤€U£F Z´hÁ AƒxöÙg©S§NŽIíV«•Ê•+ãîî.GŒB!®ÊÓSíÞ>ýTõTíÞ 6xyÁ‘#ðÝw°fÚ¾¸†þnhÀÚ¶mo½õƒ­[·º,ÉpöìYÊ–-+GŒB!®Ê`€À@õï€psƒ°°ìÛ—/‡ºuÕ¥¤‡«"¬Æ³zõj<<<\Þn2™dB!„B\‡Ã×_øqàçWòÃU‘–®ë„‡‡Óµk××i¥áÝ !„¢Ô‰‡ÚµáÎ;KG¸*RÀ²3¬X±‚7b2™xíµ×ˆŽŽfíÚµx{{ÓºukÜÜÜä¨B!Ä?Ò¬ÄÅ©b¢¥Å5—iÐ4 £ÑȤI“=z4ÉÉÉ|úé§$%%päÈÞ|óMÒÒÒäˆB!Ä?¢ëàãááàî®~¿%ÀÞ½{Y¾|9}ôü±#x4hЀ£G’••%G…B!þ‘ÜC‚¥eˆ°HëÂ… DDDP¯^=¼½½sÜJJJ V«UŽ !„BŠ~•®)½´t]]Q¤9X^^^˜Íf233ó¬ WVW>>2ÿJ!„…f 3™R8wîk×®eÈ!ÄÆÆâååÅ;ï¼ÃÔ©SéÕ«—£¾–«û¬_¿žÇ{ŒJ•*Ñ¥K XB!D1sNYY*L¥§ç X¹ûN~6îîÁ¼ñÆ~>øÀÊGéT¬X—:uêæÈ ·lÀªQ£~~~ìÙ³‡Î;_ÙQê ¯[·ŽV­Zî2Låü4222xñÅiß¾=o¾ù&ƒY³f1qâDZµjEùòåó}©©©¼ÿþûÔ¯_?ÇkB!Dé¡ëàå¥ãå¥QÔ­…¯/Ü{oÁ9â– Xžžž”)S†‡~˜:аaC, ?þø#{÷î¥ÿþÌ›7]×±ÙlÔ¬YÓÄrÛ¼y3‡bݺu_Y&û¡‡bþüùüùçŸDEEåÙ¡öüßÿþ777úöíË| G¨BQ ©f>»­·Ù\mSº:Qа8ÀÒ¥K cÆ |ÿý÷hš†››ƒ÷ßß1„g±Xxøá‡ó XýõeË–%$$Äœ*V¬H… صkí۷ϱSíÛœ;wŽ×^{µkײsçÎB­Qäj¸Q&Ê !„7—Õ nnyçaÝH®Ú{ƒÁpÃ2@‘Vûöí1›ÍX,–B›‚Ö%LJJ"88MÓoÒÏÏò<¾}›ЩS'š5kÆ–-[ õºwïÞMBBV«›ÍFTTÑÑÑr¤ !„7ˆ»; êìA€}û`Ïÿ[ãföohšFzz:GÅh4`³Ùøûï¿oÈúÉE XgϞ寿þ¢}ûöÿ(9Úßœ«¹Yš¦aËÕGhŒÏ?ÿœ;vpøðá¡ËÞC•ßsíÝ»—3gÎ`³Ù°X,4nÜX–BqÙÛáôôËlßþ-§Og°h‘Nhh9fÎìB“&>zóG222Ø¿?—.]räŒS§Nª¬ÔM Xä AƒtíÚ•ž={[`˜Êo'‘’’’ã~™™™dddä™(¯iÉÉÉŒ=š×^{@ CÚl6²²²°Ùlùžy8`À€<¥#dˆP!„¸¾T{}™Þ½Ç³ys'ŒÆ(^|QGÓÎP¶ì(Þ{ïÍ++ÃÜÜ!ˆˆúôé“ãz³ÙÌæÍ›¯ûó©’ûwÞɦM›hÑ¢3gΤ~ýú´iÓ†+V`µZ¥0ÇU«VåÌ™3dff:îÏéÓ§©_¿~ž°tèÐ!Ξ=ËÈ‘# #,,ŒI“&qøðaªT©ÂÂ… ó}®¬¬,—B!®¯1cÞå»ïzc4ÞÜÅÒ³¹'IIY±âã+m°ëûzzªùYyCÒ? }¹Y,,Ë ÉE Xžžž4nܘ·Þz‹„„V¬XA@@½zõ"<<œÁƒsèСB­6mÚP¦LæÌ™ã¸nëÖ­˜ÍfêÔ©ƒ¦iœ9s†ãÇP­Z5V­ZÅâÅ‹ùðÃùä“OèÝ»7QQQÌ;÷š†-…Bqc¬[÷+»úº™™زegží32àµ×Ti†ÿü¡[7¸ÿ~xê)8rJSŸH‘†s«ÝsÏ=´jÕŠ 60xð`,XÀüùóiذ!cÆŒáÁÄÝÅ"Bº®ÆèÑ£3f §NÂ××—%K–0fÌ*V¬@¿~ý8yò$ 888ω`ÇŽ<ðÀ˰ŸBQÌ,{Nöš‚ £ënN·eóõ…±c¯–?JOȺæ€å^âãã9xð ?üðëÖ­#))‰æÍ›Ó£G¢¢¢X¶lƒ "!!!C†äy,5þªóì³ÏR¾|y–,YBbb"3fÌ OŸ>xxxЮ];.^¼˜ohŠ¥C‡ŽáD WB!Dñ ö >²n¶ÿ;•€Ï"=fijÞ5]¿öÍS§N1sæL¶lÙÂÅ‹©W¯;v¤M›6ÄÅÅåØvÀ€œ:uŠï¾û.ßÀ–_(ru[îÞ©ÂôV9r„jÕªqòäIG¯˜B!nœ… W2`À`4Ù3’Î6ï¾{„Æ‹mA‹Å¬Y³Ø¾};K–,ÁÛÛûº=v‘†;ƦM›4hÍ›7§J•*æ FÇçܹs¤Qíšn+ìÙ‰B!„(>=Ö•¬¬UL:Šøx3¾¾6êÖ á7º•ˆpu£)`ÝqÇlܸ‘€€—%œ'·ÇÅÅåéÕB!Ä­K×u<=½<¸ÞÞ÷òßÿÚ˜?*Vô ((бͭÜIRäµÝÝݱÙl¤¦¦ráÂ…½V6›ØØX—Û…Bq«+5O*»Æ•;~~!xx@h(eo{«@)™Íf–,Y„ 8{ö¬c2º]FFgÏž¥lÙ²r´ !„·Q¸JO³‚ƒoïýQ¤€µ{÷nFEÏž=y衇Õí, aaar´ !„·™Ù³áâE˜1CÖ5»páQQQL˜02eÊÈÑ$„BÜÆì½W'O¬Y0uªìCáv\ÎJ;ÖB!ÄíË>jöl¨Ry$û6«²²þÙ27·lÀÒ4¬¬,ŒF#F£‘¸¸8:uêĘ1cعs'éééŽÛŒF#™™™è·ÛžB!nCöæþ÷ßaÕ*?^Ue·«_rϺÕcB¡‡ëÖ­Ëádz“™Á€Á`à‹/¾p¹}||<åÊ•“#O!„(åÊù„¿Ü¿kX,ðÙgP½:4o®®ûðCX¾¼½Á`€o¿UÛ{yÁsÏÁwJÀ`úôé…4™Lßî§!„·Mƒ¤$8wŒF5ϪreðôTa+2RMj_¾¦OW=UºO<¡.… n·eÀÒu|PŽ2!„â6tì|ÿ=œ= ÿù ®‚•ÅíÚA™20p ´m{mÁíVæ^¸ ËÑ!„·#]‡&MÔåÐ!øúkxþy(_>çvcÆdo/±¡“Ü…Bq{rKF£ PFcÎ&$` !„â0W¿KÀ*¤k)¿ ¥„Bq;ºæJaµZÉÊÊ*poooÇÜ­[}Ål!„âvRPÙQÄ€°ÿ~^}õU‚ƒƒ1™LX­V4MÃÍÍ , ÁÁÁÔ¯_Ÿ.]º!!K!„(Fÿ$ÙÛpooððP%ví‚®]ÁËK¤}¿.ËÏÏÄÄDV¬XAûöí©Zµ*6›]»vñûï¿Ó«W/Nž<ÉÂ… Yµj|ðááá²·…Bˆb¢ipæ ¬X.¨%l22 @ý»n]èÞ]u®l6 ‹½Ç¹s ¼ðœ8AÇŽƒñòò–N”ë°ÜÜÜðññaÑ¢EtëÖ ///t]Çd21}útâããyûí·ILL¤M›6|øá‡Œ5Jö¶BQŒ"" woÕ›õóÏðØcðë¯àï£w*o0ÓÐu+mÚôäçŸ_ÀdŠå§Ÿtà$:õaëÖÏpw÷”›K‘Î"<|ø0©©©´iÓ†àà`|||ðõõ%88˜îÝ»³eËjÕªE÷îÝùå—_dO !„ÅH×Uõõrå *J ¨PA]ÂÃÕ’6®Œ3™-[Æ`2µÊ€–üüóX†Evîõ Xº®“ÀåË—óÜ–À¥K—Ý…þþþ¸¹¹ÉžB!ŠÑ?ÁÛ±ãw à\@š²mÛï²s](ÒaµjÕð÷÷g̘1 :”ððpt]çĉLž<™–-[âïïÙlfïÞ½´k×Nö´BQÌœçJyzªÐåééúvg6›[)%5¯[Àª\¹2sçÎeêÔ© 0Àñ¡¸»»Óºuk&Mš„¿¿?YYYüûßÿ¦íµ,N$„Bˆ®¶oÿ‘/¿<ˆÉ¤ñÁîtêt•+W½2ß*ooW™2À% „ì^, H¹r›øÇËþµhÑ‚?þ˜ãÇ“œœŒ¦i„††RµjU|}}ðòò¢_¿~¦b!„BÜxö6xÞ¼9L›æÁéÓµ±Z –Iݺ‹xã¨Y³Iž5&N|o¾‚ÉôvåÚd4m(S¦Œ{=–J·*,…„„rM¬B!ŠÇöí[™>݃'zÁ˜LðÛoéÚuwÝUõëƒòܯ~ýzüüó Ï/¿œ#$D£zõ0fÏF³feÇ^€eK'Nœ`æÌ™lÛ¶ÄÄÄËâ$''sèÐ!"í§(!„â†pÒ»Z1ÑÇsêT¬#\e«Ù| 2 ϡӠA=.üݺÁ† P¹römÒ‰rÖÑ£Gy衇HJJ¢S§N”)S&Çí™™™øøøÈÞB!np¨²ÿ´Z!÷Iû¹—ͦ9MJ·W`W?==Ýðôt=+{é;ûãä½M\‡€uäÈ._¾Ì?þHll¬ìE!„â&Ò45´÷矔—.ÁéÓP¯ž ?~~9ïçí펇‡«•á T±QƒA“u¯“"[éîîNLL ÞÞÞ²…Bˆb`³ÁÅ‹j]ÀõëaøpHLTËáœ?KÞû´jÕ’Fv{íQíÊÏOé×/–  @Ù±×I‘z°š6mJýúõùì³Ïxþùçe/ !„7‘®«¥mÚ·¿Ò˜$P¸Û IDAT»«5{õÊ»sT… Ñ,\؇—^úŠ~˜GZšeÊÀãÇ1ztOé8)î€uàÀV¯^MRRo½õ111Žjíº®“’’†  “=,„B\g¹‡ñr÷VÙƒ•óvöÉè5kƱlYe6n4Ñ£‡Z‹°lYÜݽdÇwÀ2 T¨Pš5kæ8{0ûƒ¶zÒ›ýþ®¶wuf‚œ­ „BälóNJ³Yç?44Pk :·^^¾¨š•ÁÁª,ÿçÉ;¡>÷ó]íìE X…øu]§I“&lÛ¶í:&qÄÄDÎ;‡®ëDDD‰Á`Ȩ4MÃh4’@ZZV«///Ê”)CHHˆ0!„·h r.ÇÝÖ—9wî"V+œ:¥ãí „3b„Æ·ßê<¨‘_ÉJ]Ï>30ÿ6._†  >Õ„zMSg.†…A!KbJÀr€ìa&((‹ÅBzzz¾AÆf³ˆÁ`(Tpû믿2d'OžDÓ4"##™6mwÞy§ËçØ¾};ãÇ'%%›ÍFVVqqqL:•:uêȧ*„¢Ô…§}ûàøqZ²²Ô€xx@ƒà\ZÒÞ6þý÷Æ[ÍW_¥’–f .ÎJ³f~xyµáüù¦|÷ WöåܤúûC¹rpeñ•:ß~«zºž|¶lQ“ìm6èØZ¶”ϰH à™gžáĉüøãìÞ½›gžy—Û¦¤¤ðý÷ß_u–¦iØl6ž}öYt]gÕªUxzzòꫯ2f̾üòK"""òܯR¥JŒ?žèèh|}}‰gÀ€Œ;–Õ«W˧*„¢Ô1›U¸úþ{f&NT!ÈjåJY…œ._¾ÌË/¯fÉ’@;RSáÿûƒ5|ùe$ Vʬ`ÍÕ#•”110}ºº½F èÒ¼¼ò†¿fÍÔ¥ €(ƒGE XíÚµ#)) €ˆˆºw—ë qF£±Ðg"lݺ•;vðË/¿8zŸž{î9ºuëÆÁƒ ÏÑ‹¥ë:UªT¡J•*Žëbbbhß¾=?üðƒ|¢B!JMƒFÔ%=þøþõ/UÏ*¿“˜xµkÓá*»¦U]L¦?ÈÈø¨”ã~AAж­ê!3à‰'Ôy›MÝæj.Va‚“„«°úöíëøw¥J•=z´‹œ=OëjÃv{÷î%,,ŒÊöšû@ll,*Tà×_¥eË–yæ`99“ÉÄO?ýÄÊ•+7nœ|¢B!J5›M…©Ügæ1V«Nf¦[®p¥~fey’•eËq?]¨ZUöq‰ XnNõ÷u]Çd2áááû•¸›œœÌˆˆˆ R¥J…žh~þüyBCCs²ÀÀ@9}ú´Ë³íZ·nÍÎ;3f ýû÷/ð¹2331X¯ôµzxxàéé)GBˆ/w–šŸe%+ rWews³äY6Gz™Àjµb2™°]YëÇþ{±,gGŽaÔ¨QŒ;–æÍ›“’’Â]wÝÅŸþ‰——³fÍ¢ÿþŽðU³Ùœ#¼ÙÜ››ÛUßôŠ+HNNfË–-¼üòËxzz2yòä|Ï$œ4iØl6Ìf3]ºt¡GrÄ !„(ÑÁÊU@ æ®»|øöÛ}@²«²Ÿ¢ví³T©ROv^.gΜá¿ÿý/ hš†®ëìÚµ‹êÕ«—Œ€uòäIâãã `Ñ¢Eœ>}š;v°nÝ:æÌ™C= ½êcùûû“‘‘qå Òe²²².à€Ó‰ŽŽ nݺdddðâ‹/2nÜ8—½Rš¦ñî»ïæyMRÖA!Dñ‡¨ì¶ÈÓS-Úl?»O]­sîœÆÊ•Ð»7„‡«ùÐS§¶&#c5?ÿ¼—¬,¼¼¬Ô®}–W_­L­ZµeÇºÈ “'OÎqý»ï¾Ë† JFÀ2™Lx{{ãweÉE‹Ñ£Gš5k†ŸŸ , KõY^ULL ñññ9Š“&&&röìYj×®g‚»=,9Ï÷Ò4ØØX¬V+™™™.–®ë¤§§ç X®„B7{[”pŠ5k–räH/¾h£qãj<òÈc,^¬1k–ŽÙ¬qß}®†5jÆgŸE2{öÞ}ׯ_@… õáJ: nï- YYY7d)`ùùùqöìY222ˆg×®]L:€ôôôk .­ZµÂËË‹eË–1pà@vïÞMRRõë×Ç`0ššŠÕjuôheee9Î`´?φ  "0PªBQúzWNžü›Î_ãðág°ZCxçÿ?˜:õiÒÒæ1x°Æ£Bùòš#<•-CÆ1xzªšTÎ)áªø)`Õ®]›š5k‡Íf£jÕªtêÔ È>+°°“Ç£££8p Ï>û, øùùñúë¯óøã;Î,ìׯgΜaÇŽ z÷î»»;­Zµ" €¯¿þš/¾ø‚?üÐ1¦*•Bˆâ KWŸPîj›aÃæsàÀ(@Ͳ٠%¥&“Îk¯}ÌóÏ÷ÍuÿìpU'KÚÁR°ìKÙ|ôÑG,]º”ŒŒ †šã-¨©«Ç{ýõ×)S¦ sæÌ!++‹Áƒ3jÔ(G-­€€€=Sƒ bÞ¼yÌœ9“ŒŒ j׮ͺuëèܹ³„+!„ÅJÓà‹/àãUM«£G¡V-U"ÁfƒàÞ{óÞoûö#WÂUöÙ€à†ÉÔøø÷ó<‡¸Å–]xxxŽ`e÷ä“O!íë >œáÇç¹Ô/çëºtéB—.]ò9°å¨BQ|tzH]~ý„… ¡L™œÛän®l6·ü"6›!Ïs8ßßÃú•a53çÎ"=ÝÌáÃ:šæCtt%Ç[~!KÓàøq¨¶lQ?PŸi¥JjQå‚ÂÜÕ®â†,___.^¼èò…ý÷´´4 ƒt !J\¯¨ž «U„tXò'«8? «ÕÂ[oý—Y³’HH€ûîÓ‰‰qãå—+зïcŽ6%¿áÞ3à§Ÿ 6ºt ÔÙ}!!7?@;?—§§úÝùX“@/+»ï¾›E‹ñä“O:¾QØÿsØþ7Wî£I!„ÈÇüùËxñE3ð`Àd‚C‡Ò4h&©©kqwïBݺjhו±cÁÃ#ûÌÃâ 3š¦&êoØçΩ×5gŽ*í`³Á=÷HÑP X¹L™2…:uê0pà@Þ|óM‚ƒƒsÜ>oÞ<&MšÄôéÓe±g!„…öþû+/í‘èÊO?²²†2zôóÄÄtaüx×K×!**ÿ@U=EÕ««Þ3ƒ† S½¦öÞ·ÈHù¼%`åÇÊ•+éÕ«‹/¦F”+WŽÔÔTöíÛGJJ ƒæñÇϱ´BˆÛÛÕ*¤§§[•óÚ}¾´jeåÛo³@Θ®ö{q¼×°0u)ìþ·õ4:Ý»wçèÑ£ 8‹ÅÂÎ;9sæ ;vä»ï¾ã½÷ÞÃßßß1|(„%I~g©•ÖÐRÐï%áuÙÏèKOWÅ<·n…M›ò†‹ìY%öµûìAËŒ¿ÿ•÷ÒJ ó%\ÝúŠTÉ=&&†wß}Wöž¢”õ÷ËbÉ >þ8©©~ÿ]'::€ØØ*W=K­$+û22º®öòºúz×ûù çΩEÿøCUg?|XótsƒnÝ M›œ÷éÕ«#'®z݃eÂÃc)]»v”ƒXܺKÓ4’’’8yò$qqqxxx8nûüóÏÙ±cF£‘-Zð¯ý Ù»BˆÒ£ ‘’’ÌøñÿeÑ"äd7:u²Q½ºÎøñåéÕ«O©:óYÓTQÌ?ÿ„ÄD8sF-6ìå¥Lóæ}}•ýydÛ65ñ<&FUGÿ÷¿U-ªš5¡lÙ¼!mìØgˆŸÄ²eÉ$'ûáæ¦S¦L ƒ%Ò¯ß89ˆÅ­°æÏŸÏ?þÈÚµk×ýç?ÿá…^ $$„ÐÐPÞÿ}’““4hîî²–´¢dxóÍ%¼óNyàaÕ7b‚}û’:t>eËnæî»[;ÂDiÈZ>>ꌹ={`õjµ¬Kh¨šTíéyý‚•½§ ÔPߨ5ûvìPÎûõSCw¹µoß|£&Ÿ_íû¶®ë¸»{0gÎxªTù‰>ÈdôhÚµchÞüÇ6RþGܲë³Ï>£]»vŽß- o¾ù& 4p„®×_¹sçÒ§OBìH„¢8÷¼|òÉf`™ý–+?C¹x±ëÖ-r¬üÚð’¼tjÔP—¤$øåhÊ”¹¾¯WÓTÑÎO>„“'!#*TP½Q!!®ŸC×UI‚  ü_OîµûÜݽ¨]»5aaj‘å p%n€uüøqš5kæø}Ó¦MÄÇÇ3sæLBCCèÞ½;Ÿ~ú)Y7jùs!„(d¨²·Éü¡†Ñ²Ã•scíŹs6úö…U«T¡ÊŠUã^±¢ÎêÖ-gx)Lˆ¹‘Ìùqm¶ì%bòÛ¦0¯-¿ž‡«¡È U+5üš·wëjÏ]Ø}a³Ù¿Àç `BܲËËË‹ÌÌLÇï?ÿü3&“‰:8® ÌQ„T!n&³Yõ²œ8+WÂÒ¥pú4 ö¿Iö³Ôìÿ6¬Ñ¿¿ gΨËÉ“°}»Zr¥n]×KÓ`ñbB*V„òåU0 SÃf~~8΀+JøÊo»ì éé)˜Í6.^__‚ƒƒrm“\L&ÈÊRûèìYUù|ûv5Ô8}ºëçïÝ[]r_o0ܸÏPšqÛ¬Ö­[óñÇsÿý÷c±XX»v--Z´p”eÐ4³gÏ(ó¯„ÅbíZ˜4 Ο‡Ê•aà@èÞ,hÉôék€®d÷`¥²†{ï½›:u Nk;gΨŠÝªAzºêMòõ…gŸ…^pÌâãÕYvj[Ÿœ?sŸèü4MÃl6±`ÁJ¦NÝE|¼…-lÄÅñÆmiÛ¶]ž^ŸøxxåFÌføâ èÚU =÷œ:ÃoãFX·Îu)Ì¿öûÙÏVsþûV’Þ~åüýÕpY@€ý ä^ZÆŠ»»íš»¸ßïõØFˆR°Nž®Öcsô( ªŠf®^ ÉÉðÑGj>ŽÁp{6¸ÎáèÞ{›[œB–:#ÒÇg=wßÝ\2!ŠÙ5 Ž=šÈÈH–-[ÆÏ?ÿ̈#Ð4;vGff&cÆŒaÖ¬Y<òÈ#„´”¸Sx8p ?ýô .Ä××—qãÆ1räH>üðC‚œ+Õ]ñÍ7ßÉœ9sgõêÕ<öØcx{{Ó£GùTKA#á,+ëê½âÖ V¹+ƒ»¹åÌ­ëj"ö±c9«’Ë0Q¶7ÞxŽ¿ÿ~™M›’ÈÌ Â`€°°3ôí»‡ÇSv¥)`ýïÿcúôé´oßž»ï¾›+VЧOâââðññá‰'žà³Ï>Ãd2ê1÷ìÙÃ×_Íš5kh{efª——Ý»wçðáÃ4nÜ8O¯Ô¤I“r„·;3ݻwóÁHÀ¢„†*{hÖuU{iÃ5ŸjêT5L슧gþsönï}ªÈÊ•¯2~üw¬Yó7ƒÙ¨S§;¿éØFzô…(%ëòåË”+W|||ˆŒŒÌ±ŸŸŸã?waìܹ___š5kæøƒP£F ¢¢¢øí·ßhÔ¨QŽ?º®çWöûxyy:Ô‰’Ñ@Ø?WŸ¼gL•ÖÆávêa)Ì{uÞæ×_aùruܹsªxg§N®Kf.UQ_«=´å.Zš>;ûÿ _ß Z´èÅîÝðøã^ºÿÿqÛ,]×sÔ·2 xæZUÔËË+ÏÙ…9{ö,‘‘‘9îLXXÇÏÔr‡-MÓØ¿?¿üò “'O.ð’··w ½¸ùáꫯÖðÖ[Ÿrò¤…öíuºvmÏðძ”¶ÏFÓàÔ)8r$g©€ÒÖ€[­0w.üðƒªëtႲÓ4µþܰaåtÞ Œ 3gB‹ðä“ðàƒê´|oo× ߈ÏeÁ5Ç/3S K?ü° ö~~j}ãÆ¥óÿ“Ù¬ö±ó÷Kù›&…jïÝÝÝñðð¸!'È]ÓŸ6ƒÁÀ˜1cˆŒŒD×uþüóO¦M›ÆâÅ‹ÿ©ÓÒÒHHH(ôðÌÌL<®LÀ°ßÇÃÃÒÕ9È”&MšDÙ²eéÙ³g¾²®ë<òÈ#øúú¢ë:&“‰^½zÑ¿9êŠáÛ·®Ûøè£%ôï Xx±aƒÎ† Ë9vl ï¼ó:šf(5ïÉh„Ù³aËuäß«€¥ëª*õÈ‘¥«P¢››Î!C†¨`òᇪLBö÷)]×\©Ì$ÝÝU5õaà WêÆüaU¯aàÀ‚·)M¹ÄjU1$D-¼l0¨°¥>¿»”¥µí9vìo¾ù&§OŸv|‘?xð M›6-Þ€Õ±cGL&“c=Â&Mš`³Ùr,ììááA‹- ]ÉÝ×××1´gG&“ “É„¿«E¼œ¶3¼ñÆlÞ¼™õë×RàŽýì³Ï‹RKVq}ƒ°/r–×^; Œ¼È>ż'K–yà ´oß¡ÐÃPö^Šââí cƨˇ»ïª3ßJo®^¨Í–Á… çÉÌ´q脇ûR¶lY@CÓt¬V¤$5ä—”¤jK¹ª¹T«–ë^¥›÷‡õúlS’¬X¡Ž1__|_zIío0@-Ê,„ÈÙÞÇÆÆ2wîÜ׿ûî»lذ¡ø–ÍfcíÚµ×ý”/_ž„„lNEi’’’HLL¤jÕªy†ía `æÌ™üç?ÿaéÒ¥ÔÏo–¬Ó}ÓÓÓó, W77XÙwwb¢‰ãÇ-€·S¸Ò—/sñb²£ÑKKS‹Ò†„¨òþþêâç§¾©Û{M 373Üde©K¹Ÿ³´j—.]äÕW—ðÁ¹|Y£Y3+ ø2iRcêÔéÈhlÛ›7«aÑvíTÀ*Í¡¥4ýzøau¹Úÿ9!Dþí½Åb!++ë†dB,à êonÑ¢&“‰7rÿý÷ð×_‘@£F0 ˜L&Çü/{Èš6mÓ¦Mãã?¦sçÎ9‚”„¦’x`«y<›6©ËÏ?«!Ž«õ €j¼Ÿ{Nõ™Lêz` Zs®~}7N-Œ›ûù,–ìoô7úp>î¼½³ƒ_I<. ÓðZ,Þ|so¿ ÔÜ¥;ÎЧÏjÕŠ )©µjÁ¿þM›nN–¸~ÿŸ®Ç6Bˆǽ¸_@\\=zôà‰'ž`ÆŒøúú2aÂ:wîLÕªU5j ,]ºƒÁÀìÙ³™4i}ûö%22’­[·¢ëºcxR”L{öÀäÉj¸¨W/’’Ü9vÌxâÜ‹”Lhh9ÇýbbÔpˆÙ¬æ:%'CBœ=›Ý‹åÊ/¿ÀˆÙ‹Ç–+§ š–+•+«‰Ö¹ÎÑ(Tqu»=<ýöÛÏ,Zô Gšø÷¿m´nÝœë¤}W=iV«Z÷.--û’ž®*ì›LÐ¥‹•E‹~ÚåÊçSž‹ï£J•|üqÂÂr®W†k…â¶XögÁ‚Œ=šaÆa6›éÝ»7“'O&àÊB]äÔ©SŽû­\¹£ÑÈüùó™?¾ãúàà`.]º$Ÿj èqu]ëÖ°m›êQrw"8¸2ƒMGÍòWš\IÏžûh×îÇãøøÀ•Rk6[öR'ù¬š5UµøcÇ >^]Tgƨ¹ÜMeü IDAT–ýu¡Ny¯PA]Ê—W?}}]OäÿýoÝ»CròË@K–XYµê{öîλïκ²Š¶æb~÷;{Võfd¨à™’¢./ªÅTû/·¡W/µ­®çÜ—‘‘pú4¤§ë¹Â•b0øPµª•Ê•ó¾> VBñ–«oã×ú Ýþ­ÞÍÍ·ß~›·ß~;ÏãZÇùº-[¶\Óë7&Lézö)â‡ÁâŪgiʵf\îûyx¨‹úŒ Ø—àà/˜8±GŽXhÒDçÚ3fÌô«~–CÁgI麚³Õ©Óµ½?çšMññêýÙ.0Ö¯Ï;899…_Üx%\…a?ËÎh|€O?5S­Úìê2ìh¼ÿ¾ Jiiª)5U…ŸË—Õ„å×_w}¿={àÑGÕ{ RÁ1(HA«5ÿ冚4QAÓ×W½§ÀÀœu¡ŒFðô´ßY˲  îîºËý&„â,ç†Ïd2‘••…¯¯/nùu%\%d]ËmW O®n,û"¼§NÁ®]ªhäÖ­ê,²êÕ¡gOÕÀç\œƒµ¦iôìùFãCLž¬ª{_¯ \Ô»ÚÉæÍÙ×Y,ª§(!AÍ#«V-ïýÌf ýuÙ®²{|ܹt©<Ç Aƒ¼“ÀíìsË*URa' {B½zù¿Ö.]®¾f£« ÿÁÁШQþÛ»¹èÒ¥‹mîrz?—‰ŒÜN³fä?ƒB\Ï€eoøÒÒÒX·n[¶l!##ƒ‰'R±bE~üñGÜÜÜhÑ¢E‘× ¹{ä,›ÂõRåÞGÉÉjy“_~Qô˜1jøÏ¹×êjûÖ9ùäš5kÆÊ•+2d+VdÇŽ|ÿý÷¬ZµÊåBÍÅÞxCõÄĨ ÎW¦x \¯÷fµºžß¤B•¯¯š—äêqn…àZp@Ìù»››2e<9~Ü ¸áÜ‹åí}‰ØX¿B¥k}-ײ͵(_¾"K–<Ǹq¿ñÍ7f^{M'6¶ Mš4ÍñeK!„‹/×E¹ÓþýûY¹r%³gÏfÁ‚9zî¸ãNœ8‘£øh i.yôQ?ž|RÕëññÑK͇TØ þ×Zéßy{{;ùÛoª`aÆðßÿº¾‡‡Ì® ÛÈç~žžy{°Šò~ŠSPP /½Ô˜JÎ!ÂÍ´n½ÎQ‚¤ôäµó"h×®3M›v¥W¯nŽp•{â»BˆœŠ4+11‘š7oî8ÓÏ.44”ÔÔT¬9*–ãÉ'aðà¾<ùd ô¬u§iꬰ3`ï^5Ú>ÈlVgË eË-¼mÛŸ|_|çÏ«ÚR=z¸ž ~=v—¦©IÜ3gªzXYYªŒÂƒª^³˜õ~œ—U)éÜÜÜxâ‰îøú~͸q=9}ÚD¥J6î½·9o¼ñ&¾¾~¥êƒÅ¢ñÞ{jŽ›› À< Ž—ÐPxá-ß¹aB!а¼¼¼°X,ddd8Šýç±cÇðññ)Qó¯®4ëìÚ5Ÿ¾æÂ…÷5ê ·R1K×Õ¸¯½¦~_¼žöíË»óÜ)ç@”ßÐÔ+¯À¤IªP䨱ª2t™2®óz¾Ÿ€˜0áêÛ•–]×qwwçÑGÄh|÷ÞS'8ß^š†ÓÜÝÕÚÆÝŸBÜlE"¬V­ÞÞÞ,Z´ˆÃ‡ÀîÝ»™1c­ZµÊwÁblQscóî»=z$OÉÝx4Du3‡¯TÝ%½À†M5à9ƒ•¦©³ÓÒÒòo‡ Q5vîT©s¸rÞ?×ûý\ÏíJD|wz±fsöR9®n¿UH¸Bˆ¾¨åNÑÑÑL™2…±cÇòùçŸðÌ3Ï‘‘A:u˜8q"¾¾¾%ðíª‰>gÎxí5#±±ê4øÖ­óž²no^ÍkjÒî¼óê=Òðÿ3&¬Züÿ­Ž“—_V·…†ªªéÎe„BHÀÊWLL 111… d%$Z¢£mL™âCl¬*"éíÿ=x@M&ONV¡ìÒ%œÎŸ/ø™¾üžyƾ,Œš(ìï¯Û:uàƒ\ž¬,5d¨B=¼%%düø?øý÷‡G£þçŸu™:u9‰‰?¾U«B·nj‚zT”zooé=¹áÿ‘Üáž{T˜usS!Þ^IÝÝ]Í¡B!+_š¦qôèQ>øà|\­û*REÇŽ)[¶¬cþPñ­L †w1"zõªå ‚®ˆ}-º¼Á±àÀòÐCЬ™:ûïâEÎ.^Tgÿ4=íȵ KzzöuAAàçw‘„ƒ#\9/¾»gOåÊ%päH <=óö–‰›Ý *D¤$ä !„¬}ºãLÂÝ»w3bĪU«†¯¯/º®óÓO?qÇw”ˆ7Û´)”/Ÿý{i™tlŸ+V±b óç¢^½ &O†'|E]eñ]!„¢¬¸¸8fΜÉÓO?MåÊ•º®ëT­Z•åË—Dzz:;v¤W¯^%âÍæ^P¸ôd‘ìêææG` ƒ«³%\ !„¥2`ÙK.<ôÐCtèеk×rèÐ!ÜÜܨ_¿>:uÂÝÝ]×ñóócüøñŽûIïJ㕦j*]¼¨B¢Á Bb"df‚——*PÚ†=…B XŽÆ^s„¬€€z÷îïvý.®Mz:¬^ GªJò:À¬Yj˜3:ZU  •ý$„B”Ê€eï‰ÊÊÊâÛo¿eçΘL&²²²0 ¸¹¹qùòefΜI`` ìáë@×UEö®¾äX!„¢,MÓÈÈÈ`òäÉ|ôÑGÄÅűaÃî¸ãNœ8ÁÙ³g¹ë®»°åžð$Ь°¡I•BQJÀ¾}ûXºt)óçϧM›61kÖ,j×®ÍСC Á» ²âB!„·°"½páeÊ”¡qãÆ¢iƒÈúõëIII‘½+„B X…åáá···c0 €ƒàééÉùóç±Z­²w…Bq[*Òadd$™™™?~œŠ+Ò»wo^yåÜÜÜøì³Ï(_¾<>>>²w…B!«°ªW¯Î”)S¨X±"“&MÂh4:®{ûí· ½+„B X…¡ë:DGGS®\9Ê•+Çܹsù{gÅ•ýýo7 4K7ÐÐì‹ Š€ àNBT·¸`Ô‰KÜ¢Á-jÆŒQÑ$F%&5qÉŒû6£DÜ ›€²‹ KÓÐÐ ½÷ß®­ ˆ˜Ìý"‘|þÿi5½^˜˜˜0 3 ƒÁ`«9ܽ{—/_ÆO?ý„o¿ýîîî033ã>—ËåHIIT*ef0 ƒÁVsðòòºuë`aa½^½^osU__+++f]ƒÁ`0L`5"‚››"##[å ¬±˜-CaégmkÎgŒ¶‹ÁoÌmÛ?Œ¶ïæ+æFÛßÒùùùؼy3/^ŒòòòPZZÚì·y<x<V¯^ gggH$,Z´•••Ü ûøþ …+V¬@XX¦M›†ššÖqÿ ðx<9r„ù¯ ûçôéÓÐh4ÌmÔ?qqqÜ=“Ñöü“––†ÜÜ\æ&°š'ˆ~øáaÙ²eøòË/QZZ غu+'xšËÂ… ±zõj,Y²ëÖ­Ãþýû±lÙ2(•ÊF;daa!þñ€ÇãÁÏÏõõõÌ“pþùÏ2#´a>ÌVæÜ¹s(//g†h£Ü¾}YYYÌL`=›ääd¬]»QQQ(++ã„ <¹¹¹P©TÍ:Vvv6vïÞ~ø .Ddd$¶oߎƒ"''§Ñ6;v„L&Cll, ÄÖŸ@ÀŒÀüÃh!&&&lv¤-´|¾Ñ›ö &°š¤¨¨666˜6mšÑÛƒààà€ªªªf{Ž‹‹!""‚[ ‚T*ERRWPÚÁÔÔPWW÷\OÕ,mDÛ… m€`¿æXƇ“—åAK/ÈÄÄ:î T^^þ\©°°...FûÛÛÛÃÉÉ Æ`=/±W^^KKKhµZÖ«ÚÖÖÖ¨««CUU[†j£þQ*•(++ƒP(dicXXX ¦¦‹Å¬ŠFÃÔÔUUU055Eeee³'¿ : …DÔê¿§iP*•8yò$fÏž àQ©­V‹¯¾ú ]»vmvš†ÚÚZî¦mOæææ077Guuu«|É{÷îúöíËžòÚ <ÕÕÕðôôdƒCöÏñãÇÙLcöÏ7ß|ÖrÛ¨”J%ø|>ÌÍÍ™AÚ …áááP(°°°ø}–¯¯/¢¢¢0gÎ|óÍ7€±cÇ"//VVV8yò$¬­­›u,33³'f”´Z-´Zm«=-¿úê«øç?ÿ‰Ž;ÂÌÌŒ â ƒÁ`0üßê–¡–òï&° y<Þyç„„„`ûöíðððaĈ˜;w.\\\šïÃÉÉ åååFKUUUËåðôô4:ÆÓrf=ízmll0yòdÖ‹ ƒÁ`c´î“ÀóØúYögþi}ÿ´V[æ›ßÖ?-±7óÑï{{>e´žo^†xÔ‚VeeeصkNž<‰´´4¸¹¹aÀ€˜0aúöíû\Fàñx(,,ÄüùóqëÖ-èõzaíÚµ„……!??yyyÜÛ†¶¶¶ÐëõP( …°µµ…J¥ÂÔ©Sggç'f³ ´“'ObçΨ©©Á°aÃ0oÞ<VÊ •;9ÇCYYÖ®]‹„„øøøàïÿ;:tèШ­Õj5._¾Œ'N ==vvv:t(¦OŸntLFëùç›o¾ÁO?ý,X°ýû÷oVIª¸¸8DGGÃßßk×®e}IþÙµk<@€éÓ§cÔ¨QM¾¥mhƒmÛ¶¡¤¤®®®˜9s&úõëÇŒúüsôèQìÞ½jµcÇŽÅÔ©S¹XßÇLJœœlܸwîÜ……Fމ÷Þ{ÝÛ^ñññøïÿ‹›7oB¯×cõêÕ |ª€âñxزe Ž?¡PˆÈÈHŒ1¢Åä¹ÐëõDD¤Õj©ººš²³³é‹/¾ .]ºêر#-_¾œjkkŸëx …‚Š‹‹©¸¸˜ªªª¸íDD2™ŒÊÊÊŒ¶Qqq1]ºt‰\\\èµ×^£µk×R`` PEEE“çÚµk‰Åbš5k-_¾œiÞ¼yFÇg´•••Fݺu£/¾ø‚z÷îMNNNtÿþýF÷ÏÌÌ$7778p ­^½šæÏŸO4qâDfÌVÄÐ×gÍšE666ô÷¿ÿÆO–––téÒ¥g¶«¯¯§Ñ£G8p 3èKòϲeËH(Ò‡~H³gÏ&‘HD{÷î%N×d›;w’••M™2…Ö­[Gï½÷­Y³†õ%øgóæÍdaaAsæÌ¡Å‹“½½=}þùç¤V«mwçÎrpp ÀÀ@Z³f Íž=›lmmiįܹ̂­ŒN§£Ñ£G“••uïÞÌÍÍ)66ö™>3gYZZÒÒ¥K)22’Äb19r¤Eú-í\,99™HèÁƒ/Ý€jµš>ûì3êÑ£q7~gggZºti£mù„´Z-ÅÄÄT*¥˜˜Ö+[ù&´oß>ruu¥´´4n{‡hܸq¶©®®¦ÌÌL£m§OŸ&KKKúïÿˌڊ¤§§:rä·mܸqð̶ûöí£·Þz‹üýýiðàÁ̘/‚‚277§­[·rÛ–/_N^^^TSSÓd@@»víjra´eeeäééIŸþ9·í_ÿú999QVVV£m–,YBfffFÛ>ùä211a} K.—s÷:>ŸÿTED”˜˜H–––tüøqnÛÒ¥K©k×®$“Éžûø-åñxÐh4(--EJJ >ùäLœ8 èÒ¥Ëo’¶§OŸÆ!Càêê àQR·©S§"&&¦Ñ„¢™™™(((À[o½ÅåÄòõõ…‡‡nß¾ÍæT[™ƒ¢W¯^ð÷÷ç¶-X°/^D]]Ý}K$¡S§NÜt-!,, ¸‚âŒÖaïÞ½‰D3f ·múôéHKKCaaa“íJJJ°k×.L:•ûÝ1ZŸ'N€ˆ0kÖ,n[DDÊÊÊ™™Ùh›èèh8;;còäÉHJJBRR>|ÈŒùˆEYYæÌ™ÃmëÛ·/,--‘œœÜhÌŽ‹‹ ”J¥Ñ=ÎÃô•—où|>lll|8^ýuœ?8sæ RRRZ=ŸDc¨Õj”””ÀÓÓÓh µ[·n(//GQQÑmJKKaeeKKKn›¥¥%¼½½‘““Ãê¶2YYYèÔ©“‘ºwï•J…»wï>Ñ·þÛ æÀãñСCfÐV$)) ]ºt1ò¿¿?ÌÍÍ‘ÐèM‹ˆpüøqèõzDDD0#¾DÒÒÒžøí´oßöööHLLl´Í¹sç ‘H0iÒ$¼ýöÛú&L@nn.Ú·oÏ ÛŠþ¡ÇÒþnêÞ¶~ýzìØ±ׯ_‡»»;ôz=æÏŸ)S¦ %%…ývÚÀ=ñqm`øÍµD´(K"‘ gÏžœ¸ºzõ*¦L™̘1Ã()èË6†µµ5är¹‘hzøð!¬­­ŸP¢À£ÂµZ­Öh)P­V£¢¢F3[ŒÇÁÁ¥¥¥Fþ)..†™™ìíí›W0zôh¤¤¤ ..ŽŽŽlðne\]]¹etƒoÊÊÊ ÓéàææöăI||<öîÝ‹¨¨(TVVB­VC­V£¾¾555P«ÕÌ?­ˆ““?eð\.G]]]“±o®®®0111z¸íÔ©x<^£!Œ–cooÊÊJ#‘U[[ …B—F À Aƒàçç‘HLœ8ÈËËcFý‘J¥Üì°Á§ÕÕÕP*•-Š7m¶Àj§ÑhŸŸ5kÖÀËË aaa8rä–-[™L†›7orËB/sss´k×YYYF³Sqqqpuuå ƒªT*£é¾êêjdff¢S§N\FxFëЭ[7níÚàŸ˜˜ØÚÚÂ××÷ ÿf$,X€óçÏãêÕ«\Çf1$­Kß¾}‘ššjä››7oB£ÑpUú&77¡¡¡°··‡P(D\\bbbàââ‚ .0£¶"Ý»wǽ{÷P[[Ëù'-- •••èÕ«—ÑŒ‰°°0¨Õj( n›á…Ãr0£uèܹ3ÊÊÊP^^Îù§  nt†K£Ñ4:£oW­GsÆ "2òG×®]‘ššjŸ••…šš´è"šMff&íÙ³‡ D‰„üýýéóÏ?§óçÏ“••÷z}SiZ­VKÛ¶m£Ž;ÒåË—I.—SRR‰ÅbÚ´ieeeÑH¥R‘\.§¡C‡Ò¤I“¨  €ÊÊÊhëÖ­äééI·oßf¯3·rš†_~ù…éßÿþ7UWWSNNÙÙÙÑâÅ‹‰ˆ¨°°:D•••\êèèh²°°àÚÈår’ËåTWWnjڊ“µµ5­ZµŠ •••Qhh( :”ˆˆjkkéôéÓ”ššJDòÑݺu‹âãã)>>ž233©gÏžÔ·o_JKKã^‰f´UUUäììL , ¹\NôÎ;ïPïÞ½©®®Ž´Z-?ž®^½Êµ‰'sssZ¹r%UUUQEEõëׯY©7χJ¥¢šúˆLMMé×_%™LFåååôöÛo“T*ecÏK@¡PPyy9ÅÄğϧŸ~ú‰d2—§óÖ­[ôïÿ›Ë+—ŸŸOR©”>ÿüsª¬¬¤ââb7n 4ˆª««ŸÛ?Ï%°lllM™2…nÞ¼ÉmÏÉÉ!¡PH)))¿¹>|Ho¿ý6Ñðáé}ûö4uêTn0þì³Ï×ቈbcc)00^{í52dµoßÞ(× £uoBóæÍ£N:ѰaÃÈÛÛ›† F …‚ˆˆ~üñG@·nÝ2ÊÍ$•JiäÈ‘A4jÔ(:pà3h+Š_"¢­[·’»»;½ñÆB!!!”‘‘ADDyyydmmM .l4±%Qhh(õë×åZzIþ9xð yzzÒ€(44”üýý)66–ôz=ÕÖÖ’½þúëFvÿä“OÈÅÅ…úõëGݺu£.]ºÐ7˜^‚~ùåêÔ©………Qxx8uìØ‘<Èý^^}õUrvvæþ.++£!C†““ 2„ºuëFíÛ·§C‡1ÿ¼¶lÙB¯¼ò òóó£àà`:xð —,¹áÃû÷ßOîîî4pà@ ¥ ÈËöåÇIDAT  º~ýz‹Îÿ\¥rþò—¿àÊ•+ðññAxx8Þ|óMôêÕ EEEðññÁ­[·¸×¾«)@™L†˜˜”––ÂÕÕáááÜ›…iii¸ví&NœKKK®MFFnÞ¼‰úúzøûû#44Ô(5£õü£T*qñâEB*•"<<œ{;*77/^DDDÓpìØ1èt:hµZ£¥Ãž={rKWŒÖóÏ•+W––¡Pˆ°°0.ÚgÎÛÛÁÁÁþ.~þùgðx< 2„ô%ù'!!IIIàóùèÕ«·T¡ÕjqæÌXZZbÀ€F÷¯‹/âîÝ» …èÛ·/:vìÈîm/É?©©©ˆ‡V«E×®]ѽ{w. úܹsP(5jg{™L†ØØXÃÂÂ]»vEpp0óÏKàúõëÜÛ³fffÐh4¨¯¯Gÿþý„¸¸8äååa„ \€»¡Öqjj*úôéƒÎ;·èüÏ%°*++QRR‚K—.aÏž=HOOGûöíŽ~ø‰‰‰¿é[* ßæ|Öð«6Õ†uðß×?ϲ?óQëÍýŒš¨­ÆüÒvüÓÔïÑvÆæŸßÿ÷ÓÔýìiþiÉ=®Ù«áÁõz=ôz=²³³±{÷nüðÃ(//G÷îÝ1}útL˜0›¡`0 ƒÁø_ã¹f°ž¦æÎž=‹o¿ýç΃J¥Bqq1œ™… ƒÁ`0õ¢B«¢¢Û¶mÃüùó!‰˜… ƒÁ`0õ"B `ëË ÆoEsâ¤^äX/ûšYÜÖŸ·/¶$ž’õÆŸV« ÓTiãm ùÍžŽx<Ô××cóæÍø×¿þFÓâß Çõk×0gΜFkx¾¨>€}ûí·X±b»_´Ð®—fiOêÿ¿nhTT.^¼Ø,ßòx<ܽ{Ó§OG~~>ë &°Œÿe4 Ö­[777xxxÀËË ½{÷Ftt´Q Åß ­V‹«W¯"11ñ‰ ÑÏKvv6~üñG£2R/2à–——cÇŽ(--5DII ÌÍÍakk ¥R N¡PÈ]SMM  ôz=„B!lll ¸%±’’ØÚÚB­V£¶¶‰¦¦¦ÆîèõzÈårðù|( D"‘ÑË7jµš³Á‚˜<jµ2™ ‰555P©Tprr‚B¡€R©„V«…‰‰ Äb±Q2cCAl‰D‚ŠŠ èõzîü†ãêt:#ÿ¾G}}=ªªª Ñh `cc¡P(--åúVyy9t:g ½^ÊÊJÔÕÕÇãq}ÎÐߪªª@D033ƒB¡@MM |||¸Ùϧ…zh4TWW£¾¾D¡P;;»§ ª¢¢"ØØØ@§Ó¡¦¦ÆÈoSYY ¥R @[[[˜››Q®­­…V«mô·Ä`´Õ'1ƒÑLêëëiþüù4|øp®¾%ÑÎ;ÉÞÞž+!¥×ëéûï¿§€€rss#'''?~<åççsmrssiÔ¨QdggGÞÞÞ4iÒ$š>žkøða@ß}÷…††’··7íØ±ƒŽ9BTQQAuuuJR©”œÉÝÝÌÌÌ]¼x‘ˆˆ>ýôSêÖ­yyy‘³³3…‡‡sçÉÈÈ GGGâñxdooO¶¶¶EDDo½õuéÒ…»žììl5j¹¸¸³³3uéÒ…öìÙC†«'€Þÿ}5j¹¹¹‘ }ýõ×O­A6bÄ>|8M™2…|||ÈÞÞžFŒA¹¹¹Ü~»ví¢ž={RûöíÉÉɉºvíJ.\à>‹‹# úì³Ïè7Þ víÚÑÊ•+éáÇôî»ï’¿¿?¹¹¹‘»»;EFFRyy9×vܸqdffFÛ¶m#²´´¤ˆˆ*))¡Õ«WS`` YYYѰaÌڕ——ÓâÅ‹É××—\]]©]»v´páBR(¤×ë)<<œx<‰Åbrrr¢ððpÊÊÊ""¢Ý»wS`` ×çÆŒC÷îÝãJëjÎ;—:wîLžžžDDtãÆ :|ø0Wª1>L¯¼ò uèМœœÈÏÏŽ=Ê•)**¢Ú±cÇÿÕbèÝwߥ1cÆ««+ÙÚÚÒÚµk¹þ}õêUrpp íÛ·ÓСCÉÍͤR)}ùå—T__ODD†¦NJäîîNR©”&L˜@¥¥¥ì†ÄhÓ0Å`´@`9’………4`À âŠVïÙ³‡¬­­içΔ––F±±±Do¿ý6'Œ"##©sçÎtêÔ)º}û6}üñÇ$hôèÑÜdiiIëׯ7º†7Þxƒ&NœØ¤ÀÚ»w/9r„RRRèÆôæ›oR‡¸ö'Nœ {{{êÚµ+ýôÓO”žžNeeetäÈruu%™LFz½žòòò(++‹²³³)##ƒºuëFÝ»w§ªª*ª««£={öÐÉ“'¹ï7räH8p UVV’N§£ãÇ“©©)>|˜rss¹qòäÉÊÙsРAäïïOgΜ¡Û·oÓ_ÿúW’H$\ãšš@=zô ýû÷Szz:}üñÇÄãñ(''§Q?ÕÔÔдiÓ-Y²„èÔ©SäïïOï¾û.)•J"":tè8p€~ýõWJHH ‰'’‹‹ gËëׯ“‡‡uìØ‘8@iii”——Gyyy´k×.ºt饧§ÓáÇ©cÇŽ´|ùrîf̘A¦¦¦4{ölJLL¤S§N‘P(¤!C†Ð¤I“(11‘Nœ8AÖÖÖ\-Ôºº:Z¶lõèуŽ?NééétôèQòöö¦eË–QAA™››ÓÒ¥K©  € 8$‰hûö픚šJqqqÔ«W/Šˆˆ ½^OJ¥’æÎK<-ZDñññtëÖ-Òh44wî\rvvnÒž†~³gÏJLL¤¤¤$zÿý÷I*•ÒÇŸ*°¼½½iË–-”’’B6l \í½«W¯’»»;Ð(%%…V­ZE®®®tûöm""Òjµ´~ýzºpᥧ§ÓÙ³gÉÝݦOŸÎê÷1˜Àb0þLëÃ?$¡PH½zõ¢Þ½{S@@uïÞ®]»ÆíçëëK‹-2j{ðàAT]]MäææfTd\£ÑP·nÝhĈ-X 6wîÜ!\1ö'N™™=zô‰ë3¬Çùè£ÈÁÁ›)i¬øóµk×È××—+Ü””DfffF…áX—.]"+++ºté÷yYYõèу–.]JjµšX_|ñ…ÑqÌÌÌèÇlR`Mš4‰üýý©¢¢‚Û¾wï^òððh²0}AA NÜ]¿~ìììhÓ¦MÏìÑÑÑNUUUœÀ‹ÅFç'>ŸÏ‰s"¢Aƒј1c8±Þ¥KÚ¿¿Ñ±7lØ@!!!ܱ„Bá3xÁÁÁ´`Á‚'D‘™™•••‘J¥¢Y³fQPPrûhµZºsç]ºt‰žÓX¿*//'GGG:uêÔSÖäÉ“Úõë׺wïn4ƒµyófîóœœòööæŽÛ_}õ‰D"vCb´iX;ƒñœèt:øøø`æÌ™˜1cÄb1rssakkËÅHUWWcË–-H$Üï¾û.´Z-òóó¡V«!—ËÑ¡C£@ã>}ú@£Ñ¼PÐ{aa!ÆgggH$ôéÓ‡‹çjàÜ»wïfAïÞ½ÿøÇ?püøq®h0ŸÏÇíÛ·1bĸ¸¸@"‘`àÀÉd¨««ãìÔðÿ‘——333.n àç燴´4£‚ß>>>F×%‘HPZZÚä±µZ-‚ƒƒaffÆmk×®4 ÷ÖšL&ÃŒ3àêê ‰D‚   hµZÜ¿ßèX!!!O†:t=zô€ƒƒììì°|ùr.^È€H$2Š•“J¥ðññáâË ß£¼¼À£7ñRSSiÔw/^ ¥RÉígˆ3k¿T]]ï¿ÿި݄  V«‘ŸŸ>ŸÏÅú*ÁÄÄ;wÆk¯½ ‹FSlжÿõ¯…‡‡$ |||PZZŠ¢¢¢§ö£®]»ÙîÕW_E~~>¯ÑhЧOnsssØÙÙA&“qmbbb©T ‰D‚+V@¯×C­V³ƒ¹3¦ ÷víÚaâĉ°°°@dd$ðÁàìÙ³ÐétP«Õ˜7o†­Vk$ÎÚ·oÏ J›˜˜4)t ‡§‰¢=zÀÓÓ_ý5\\\PUU…Ñ£GsB‡ˆ`nnÞè¹k X¾|9Ö¯_>}úpƒmrr2ÆŽ lܸŽŽŽÈÊʺuëž+]„^¯o4HÙ(ßðo@`n OÃÄÄÄèø† nƒM{öì ¬Y³¨««Ã[o½e$ MMMŸ8÷þýûñÞ{ïaΜ9X±b¬­­qæÌÄÆÆùËЮáù ‚¯áˆóéõz˜™™aåÊ•èÙ³§‘ÏD"<<<š“uuu˜5kÖׯÓéЩS'èõzÎ÷_׳úôë×<ÀÊ•+Ѿ}{èõzLš4驺±>mbbòDŸnônð‘¡o¤§§cÀ€˜0a>úè#H$œ9sëׯæ¹ &°Œ?87nÄèÑ£qæÌ 2ÖÖÖ¨­­EXXX£û›››C$¡°°Tˆ)))‹ÅÜ~ŽŽŽ(..6j{ÿþ}¸¸¸4:ýúë¯Éd8þ<ºtéO ú‰¶Æ(--ÅòåËÑ¿L›6Íh LNNŸÏÇŽ;àèèÈm—ÉdÜ¿ù|þ3Ïãææ¥R‰û÷ïC*•är9òóó “¢&&&¸sçêëëaee())áÞ„ÌÍÍENN®\¹‚ÐÐP@RRR£¢µá÷P«Õ¸víF…µk×râàܹs/œò@(ÂÉÉ xíµ×š5Ãh˜‹Å¨­­m²J¥jT<5ü~M½EX\\Œ¤¤$œ8qo¾ù&€GyÓšó_FF†‘PKHHàêÔ6GŒ;v ^^^Ø·o·íçŸf7F›‡-2/á•W^A§NpèÐ!À|€ï¾ûÇŽC^^ €½{÷x´,ôꫯbçÎHHH@~~>8€ØØX£%­~ýúáèÑ£ÈÎÎFaa!6lØÐä²ÁÞÞD„Ë—/£¤¤©©©øâ‹/žûUv­V‹¯¾ú X°`T*JJJððáC—2áêÕ«(**Â7ðå—_ ÐŽŽŽÐh4HJJ‚L&ƒB¡xâ<}úôAHHþö·¿!55صk’’’0räÈF_ço.¦¦¦¸uë>Œ¼¼<ÄÇÇcãÆèÛ·/¼¼¼`gg@€ØØX””” ##ÑÑÑÏ\v°··Ç½{÷””„ÂÂBœ:u »víâR)´©TŠaÆaóæÍ8wî ‘““ƒØØXœ?žÛÏÒÒIII¨¬¬äDí¼yó°cÇ:tyyy(,,Dbb"öîÝûT!£×ëqíÚ5ìÛ·555îckk +++\¾|<ÀÝ»w±qãÆ§.ш‰‰ÁÏ?ÿŒ¢¢"œøà¬Zµ ;wî„©©)Þ|óMœ={–‹íÒjµ¨­­}bÐÕh4\ž$FƒèèhˆÅb|øá‡œè …Ø´iú÷ï!C†`áÂ…J¥‰Dpqqár<€««+FU«VaÛ¶mxçw°hÑ"(•JNl‰D"¬_¿ .Ę1c  ¡T*ÅÅŽ¾çãÂÇë)4 †Š“'OâÇDII ìíí±lÙ2.ïÔÇŒ 6àðáÃ077Ç믿ÎÍRlUUUe´TÇçó1vìXœ;w“'O†D"ŒøøxήJ¥UUUFפT*¹¼gjkk9acii‰åË—cÉ’%˜?>,--abb½^‘#Gr×·xñbDGGcàÀð÷÷ǧŸ~йsçB&“!** b±˜ësíÚµÃøñã¹¾òx)$­V‹}ûöáØ±cxå•WŒò„¾³……V­Z…µk×âìÙ³ …èÛ·/LLL¸ÌÿD„ššš'*cÓ¦M(--Evv6fΜ‰Y³fx´|ÙоÁ§P(¸ÜdÇÇþýû1zôhxzzÂÊÊ Ã† Ãwß}ÇnHŒ6M«{f0þÐëõÈÎΆJ¥B@@€Ñ²™B¡@||<áàà½^ôôtî)_,ÃËË‹[ -÷Ý»wàíí?þJ¥‡âârrr——@€®]»"//¦¦¦ð÷÷‡N§Cff&ÌÌÌСCðù|¨T*$''C¡PpãW¯^EPPìííQ^^ŽôôtôîÝ›K* Ÿ¸¸8hµZ£ÁÏÄÄÁÁÁH$ÉdÈÊÊBMM ¤R)Úµk‡ÌÌLtìØ‘KÖY^^Ž;wî ¦¦íÚµCçΑ‘‘•J…î;Þ¿999Ðh4J¥ðõõåMêõzÄÆÆ¢K—.F¶»rå <<<àééù„Ÿjkk1cÆ H¥R,\¸……… "tèÐÁhµZäädÈårØÚÚÂßßñññðõõ…““ª««‘œœŒ   .¬Aôf—ôz=¼¼¼ ‹‘——‡ÀÀ@˜››###•••èÛ·/w¾´´4ÔÖÖ¢W¯^ܶôôtÔÕÕÙ£ººYYYËå055…ÚµkÇ-×ÕÕq×mmm   X[[C¯×###ƒ›i‹Åðôô„T*…^¯ÇÝ»w¡ÓéàççÇÅÿéõzäåå¡¢¢OÌ®I§Ó!%%°¶¶†ŸŸÒÓÓááá777Ô××#%%nnnÜ6ÇÃÖ­[1lØ0dffÂÒÒAAAÜ’mUU’““̉ކÇqvvÇCii)222 Õj9;¤¦¦",,ì™±„ X ÆtFËÇÒpŽž’aºáÌWCªªªàáᨨ(DEE5¹ßÓÎAÏÈlÝÔçôœ±›sž§]{Ã}šÚïi߯ágígXvvvøúë¯aaaÑ¢ëķͱUc×לmO³Ç³®»%>lìX­Ñ¯ óxl~õ2únk}oƒ ,ãOŽ¿¿?|}}±gÏh4DDD`ÅŠpttdOå/ŸÏ‡§§'W‘ñûàçç×jÅÃŒ?Ü8["d0~{žµ„ÈDAëÚ–Ùô÷õ³?ƒ ,ƒÁ`0 Æ Ãò`1 ƒÁ`0Å`0 ƒÑ¶ù†æyî1pðIEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_hyperalignment_similarity.png000066400000000000000000002563051323370031300246300ustar00rootroot00000000000000‰PNG  IHDRvŒf]õ†sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEÜ(#jS×! IDATxÚìwTÇÛÇ¿»´Ë¥wQé ¨ØÀ(MQŠˆ °"ˆ±E¨1¶¨‰ ш-Æ®ü+XÐØb "j”ÆŠRbPQª€Ò.óþá{÷°\@DÔùœ³G™;»3;å»ÏÎ<3ËB( …B¡P(Ÿ=,- …B¡P(jØQ( …B¡P¨aG¡P( …B¡†…B¡P( …v …B¡P(Ô°£P( …B¡PÃŽB¡P( …B ; …B¡P( 5ì( …B¡P¨aG¡P( …B¡†…B¡P( …vJ-\¼x,ËâÏ?ÿ¬wÜC‡½3®¿¿?ŒŒŒší}/Z´,Ë"77÷q @ 壷 –eñÓO?qïÚµ ,ËâßÿmÔtáääÔ¬Êó¯¿þ‚­­-Á²,’““i#£PÃîk`ãÆ`Y={ö¤…ÑH0 Ãû{Ïž=X»ví_³úu?çòù˜÷²lÙ2=z”6ÄfÂíÛ·1lØ0B^^­[·F¿~ý°aÆOÒ.>E¿©ž÷§OŸbÑ¢EHJJj’2///‡··7òóó±fÍìÞ½úúú´1Rš%Ò´—¨¨(…B\¿~?†‰‰ -”ÀÁÁoÞ¼ŒŒ ϰ»sç¦M›Öàënݺ„/¢Œ>|–ýxïhË–-ƒ¼¼¼hƒlb®\¹'''b„ hÑ¢žÿøãÞßOŸ>ÅÏ?ÿ ccctêÔé“—ûãÇñï¿ÿbÛ¶m7nmˆjØ}-¤¥¥!!!k×®ÅìÙ³… |Ò®]»B(bóæÍ€ÔÔTx{{C]] °±±Á‰'xéÔæãX“orÕò¶µµ…P(„±±1—޻عs'œ9íoß¾=6mÚÄ‹3`À€Zg©lllЭ[7^ØîÝ»amm ¡P Œ1ÿý÷ß;ÛÉܹsß«­À¯¿þ ccc…BôèÑqqq5úrÖ÷ÙKGì¾"ÃnàÀPRRÂèÑ£±wï^ܸq]»v…ŒŒ † ‚C‡aóæÍ¼·é#GŽ ¬¬ Çç¶D||<&Nœˆ¶mÛ"99áááxøð!>,!L@PP455ahhX·n¼¼¼0fÌ”••aïÞ½ðööÆñãÇáîîήƒÂÏÏ={öÄÅ‹ááá!12–••…ž={BJJ ÁÁÁÐÒÒ‰'ˆW¯^Õ95joo™3g¢°°JJJ „ >>RRRˆ‹‹ƒ§§' ..RRR°³³«ñ:óçÏǬY³ðßÿaÍš5EEE^œÐÐPHIIaÖ¬YÈÏÏGXXF…«W¯¾sÔoÏž=(,,ÄäÉ“aaa2dRSSëå+++CÿþýQ^^Žàà`´hÑÿý÷~ÿýwðĵ6Öîãã###„††rÓmyyy<ã°º?Òëׯáàà€gÏžaâĉÐ××G||<æÌ™ƒgÏž!<<œ‹ˆˆˆ¸»»c„ (//G\\®]»kkkDFFbüøñèÑ£&L˜Ô½  144DBBîܹƒöíÛ¿s¤µ¦6„–-[bÉ’%HHHÀÖ­[¡¢¢‚¸¸8˜ššbùòåøý÷ß±råJXZZb̘1ïl§U‰ˆˆ€²²2f̘EEEœ;w ,À«W¯Æ»NNNÜÝÝ1bÄøùùAGGG"víÚáçŸÆ‚ 0qâDôîÝ`kk‹^½zañâÅØ¿?¾ýö[^ŒŽŽÆ°aÃêe<{ö,ÜÜÜ`jjŠŸ~ú ¯_¿Æúõëagg‡ÄÄD`Ò¤Ihݺ5–-[†iÓ¦¡[·n¼|V'33NNN’’Âܹs! ±mÛ6ÈÊÊJ”Ã0xðàFމI“&aâĉ077GVVlmmQRR‚àà`hhh`×®]8p ¢££1hР¼çååÁÃþ¾¾5jöïßÉ“'CVVö/l›6m‚¥¥% iiiÄÆÆbÊ”)¨¬¬Ä”)SLJŸŸ÷Ü“‘‘k×®aÕªU¼Ñç À××&LÀ‹/°~ýzØÛÛãï¿ÿæFGëj'õmk¿ýö‚‚‚`oo3f -- ƒ†ššôôôx/ºïóìm¶J£pãÆ Â0 9~ü8!„òòr¢££CBBB¸8gΜáÅãîîNLMM¹¿###‰””‰çÅÛ¼y3a†\¹r… c†HKK“{÷îI䩤¤„÷wyy9éСéÓ§vóæMÂ0 ™>}:/n@@a†üôÓO\X`` iÕªÉÍÍåÅ1bQUU%oÞ¼©µ|þúë/Â0 9yò$!„äädÂ0 ñññ!={öäâ 8X[[s_¸p0 C.]ºÄ…yxx###‰4ÄqÛ·oOÊË˹ðuëÖ†aÈ?ÿüÃ…;–r§¥¥†aˆ––ÉÏÏçÂccck¬³êüý÷ß„aSkq¿U/ë… †aÈ Aƒxñ¾ýö[Â0 INNæÂ I@@÷÷âÅ‹‰¢¢"yôèïÜ9sæiiiòäÉB!çÏŸ' ÃðÚhM(**ò®Oi:þøã"--M¤¥¥‰ ™5k9sæ ¯½×Ö.vîÜI†!nnn¼x¶¶¶„a2eÊ.L$===âèèXg;_3##ƒ «I&MšDHii)æàà@†![¶l‘ˆïàà@œœœ$ô£¦¾ckkËÓB9tè„nÔDçÎI‹-H^^–œœL¤¤¤Èرc%´¥®þ-&((ˆ°,K’’’¸°ÜÜ\¢®®NX–å••a†œ9s†wÂ0 ïPTTDŒ‰‘‘©¬¬¬µükÓMqy‡‡‡saeee¤K—.DGG§Æ6T×ó„B\]]‰‰‰ ÷÷«W¯ˆ@ 3gÎäÅ #,ËrÚ“žžN¤¤¤Hhh(/Þ?ÿüCdddȲeËêÕNêÓÖJKK‰††éÑ£‰D\¼ˆˆÂ0 ¯½Ï³·9C§bq´NKK ®®®o‡B¥¥áëë‹}ûöqÃÂÎÎÎÐÔÔÄþýû¹óòòòpöìYøúúraDÛ¶mannŽììlî_¸p—¶ƒƒ,,,$òTÕÏ.//ùùùèÕ«¹ðS§N÷ÆUõ­¾ºïGLL <==!‰xùêׯ x×­N—.] ¨¨ˆ¸¸8nd®uëÖðóóCbb"JJJ@ÁåË—¹7ò†À]ëÕ«€·>ïÂ××—çGSßsÅçœ:u oÞ¼i´vUu¢j½TŸ’©ÊÁƒaooUUU^=õéÓ"‘ˆ«ƒ˜˜°,‹… Òü™Ð·o_$$$`àÀHNNÆÊ•+Ñ¿´jÕŠçÒP¼¿ÅÓœUÃY–…µµ5RSSß;Uýà ‘^½záõë×xðàDÜÚ÷óóõk×xyŠŠ‚¾¾>ìíík=ïÙ³gHJJ‚¿¿?TUU¹ð:ÀÅÅ¥Î>V§N‚­­-:vìÈ…©©©aôèÑ5úÃÅÅ…vâÄ ôèѶ¶¶\˜‚‚&L˜€ôôtÜ»w¯Ay“‘‘Áĉ%þ~ñâç~QUŸ'ÈÎΆ½½=RSSQXXPRR‚››8À;wÿþý°±±AëÖ­‡!Æ ãi”ŽŽLMM%žqµµ“ú´µ7n 77ß|ó o1ѨQ£ ¦¦&¡ïóìm®Pî‰DØ·oœœœžžŽGáÑ£G°µµEVVÎ;’’ÂСCqôèQ”——s ¼¼¼œgØ¥¤¤àÎ;ÐÒÒ‚¶¶6w˜››ƒa¼|ù’—~mû±?~={ö„¼¼<444 ­­M›6q>_â!òšüÔªO·½|ùؼy3/OÚÚÚ7n\ùªŠ””lll8Ÿ¸¸8ØÛÛ£W¯^‰D¸zõ*îÞ½‹¼¼¼6ìªoC î¼yyy|nII ž?Î;Äu0}útlÛ¶ šššpuuÅÆyeÝÌÌÌ$,Ë"##£ÖsRRRpòäI‰öãââ†a8GðÇ£eË–¼‡¥ù#ö•ÍÏÏÇõë×1gÎbذaõzàWoãâ—’ªSRâðúô™êܹsƒ†ªª*TTT ­­ÍMçðâ¶jÕêƒ2ùúúBNNŽói.((ÀñãÇ1jÔ¨:Ï÷!sss‰ß,,,Ý —´ŒŒ ˜ššJ„׿ÂP“~gddÔš¯ªy_Z¶l)±è@¬1ïºf||<úöíËù"jkkcÞ¼y`†W¯¾¾¾ÜJm±Î$&&J<ã!033“xžÜ¿_âYR[;©O[ßWõ:‘’’âÜ–úìm®P»Fàüùóxþü98 ñ¦"~{¿‘ >›7oƉ'àåå… mÛ¶èСož¿cÇŽX½zué‰ßzÄÔ´:(..„££#~ûí7èêêBFF;vìÀž={ÞûÅ£ŽcÆŒÁرckŒSõjÂÎÎË–-Cii)âââðã?BEE–––øóÏ?¡­­ lØÕ¶C}VÔ½ëÜ}ûöñÀ0 ‘Hàíb=zgΜApp0–/_Ž«W¯¢U«Vµú&‰Ï¯õY LA¿~ýx‹qªÒ¦M›÷*J3oiitíÚ]»vE›6m€ƒ¾s%~mm¼¦ð÷mùùùppp€ªª*/^Ì-Bºyó&~øá §öÆXÙ¨ªªŠ ** ?þø#¢££QVV†Ñ£G7I½¼ïŠýšÊ ¾×h M©?FŸ>}Ю];„‡‡COO²²²øý÷ßΫWOOO…B8p6668pàX–…··7ïyÂ0 N:Uc»«î7]S½o[«Ï3á]ÏÞê/?Ô°û‚‰ŠŠ‚¶¶66nÜ(ñ[LL >ŒM›6A ÀÞÞºººØ¿?ìììpþüyüøã¼sLMM‘””ggçç)&&B¡§OŸæ-ÔØ¾};/ž*++‘ššÊ{£yôè/ž––”””PQQÑà|õîÝeeeسgž>}Êpöööˆ‹‹ƒŽŽÌÍÍ¡¥¥Õ¨ÂÙ˜¸ººâìÙ³µþnii KKKÌ›7 °³³Ã¦M›°xñbnô/??¿Æ‘ƒšxøð! xõRYY)ñ¦Y}d °°ðõdbb‚3gÎ //ObJ¢¹”7¥~ˆWœ‹G›Š‹/"77GŽáÜĆÁÇ4–üüüàåå…7n ** VVVhÛ¶mçˆûUÕ°bîß¿--­žHII‘¯®©ïºFmùªš÷ªšRu$¶6MÉÌÌÄëׯ! y NM9vìÊÊÊËXÏFUE(bÀ€8xð V¯^ýû÷ÃÞÞ-Z´à=ã!044”˜•hì¶&.«””888páHOOGçÎõÙÛ S±È›7opèÐ!xzzbÈ!ÇÔ©SQXXˆØØXN † †cÇŽ!22"‘ˆ7D ¼] ™™™‰­[·Ö˜Þëׯë=òTQQÁ…¥§§ãÈ‘#<‘ûV7Jׯ_/q½¡C‡"&&wîÜ‘H¯>CÔ=zô€ŒŒ  ¡¡víÚqßÕ«WqéÒ¥zÖ)((HGŸâÍZ´hgggÞ¼õï¨ZÖb#eYn™¼²²2455qéÒ%^¼š^Äüúë¯5Ö‹››[­çøøø !!gΜ©ñ-Wü6?lØ0BÞ¹}…‚‚Bƒ¦ä(Om>>b°š¦ï>eëNÕÑ’²²²:Ûx}PPPP»;…››455±bÅ üùçŸõ­ÓÕÕEçÎÁ›JüçŸpæÌÞÎïCÿþý‘ÀûJFnn.¢¢¢ê]žîîî¸~ý:o%qq1¶lÙ###N;ÅÓ»U5E$aË–-5^·¢¢‚·½IYYç^S};ªwÕkAAvîÜYã=ùúúâéӧغu+’““%žqC† ””TÚC©×§ëÛÖºuë lݺ•7’%ñiŒg/±ûˆEQQX«1£¥¥…¨¨(øøøp~ýúõX´h:vì(!ÆcÆŒÁ0iÒ$\¸p¶¶¶‰D¸ÿ><ˆ3gÎÀÊʪÎ| 0ááápuuň#ðâÅ lܸfff¼oZYYaèСX³f rrrУG\ºt‰{ã¬ÚiCCCqáÂôèÑß|ó Ú¶m‹ÜÜ\$&&âܹsÈÉÉ©3OB¡ÖÖÖ¸zõ*¯¼ìííQ\\Œâââzv]»vÅ0cÆ tíÚJJJ0`À{×]cNCž;wS§N…ÌÌÌPQQÈÈHHKKcèС\¼ñãÇ#44ß|ó ¬­­ñçŸÖøv_Õ÷òòâQQQ5jTÓÞßÿ=bcc1`ÀøûûÃÊÊ ÅÅŸ}û6bbb‘‘uuu8::b̘1X·nRRRпTVV"..ÎÎÎÜ kkkœ={áááÐÕÕ…±±1çpOù´áÍ›7Œ¡PXçVDNNŽ·Mˆ¾¾>aY–·¬»úÖ$aaaÄÒÒ’¢®®NºuëF/^L^½zÅÛ~ ((¨ÆkìØ±ƒ´iÓ†Ò®];A-ZDX–åÅ{ýú5™:u*ÑÐÐ ŠŠŠÄËˋǭ¾%AMÛŒøûûó¶LÇùå—_Þ¹Im[™SSS"//O444HŸ>}Èùóç%–ç?ž¨ªªeee2|øpòòåK‰4Äõtÿþ}âííM”••‰†† æmQÓ¶â­æÎKÌÌ̈œœÑÒÒ"½zõ"«W¯æmk ‰ÈªU«HÛ¶m‰œœÑÖÖ&äï¿ÿæâ\]]k~¡P¾’’’Ð¥KDFF¾sElS‚­[·¢¨¨¨IüV‘››Ë›±ù𩬬„––† Vï¯o|.P; JJJ$ÂÖ¬Y))©:÷¢4=åååÈÎΖøœ…òµ±uëV())aÈ!Mž—êÛ¤äää 22½zõ¢‹‘š€ÒÒR‰éÜÿýïÈËËã>÷%A}ì(X±bnÞ¼ '''HKKãäÉ“8uê&NœˆV­ZÑj¦œ>}ûöíCII úôéC „òUrìØ1ܽ{[·nEPPP³ø8¼ œœœ`aa¬¬,lß¾EEE; |j¾Ö º„„|÷Ýwðññºº:±cÇtèз Ë—Š¥àìÙ³øé§Ÿp÷î]ÁÀÀcÆŒÁ¼yóx;uSšÎÎÎxüø1&OžŒÙ³gÓ¡|•!++ ®®®ˆŒŒäVÐ6%óæÍCtt4þûï?0 kkk,\¸°I·ÑprrBNNÎW9›‘‘àà`\¿~¹¹¹ÐÐЀ»»;BCC¿ÈÙjØQ( …B¡|!Ðá …B¡P(jØQ( …B¡P¨aGùâð÷÷¯ñcÖ‚££#œœœ¸¿ÓÓÓÁ²,"""5E‹Q_BÊgMsmÃEEEÐÖÖÆÞ½{i%ý?†††¼¤ý¡Î²¼/:ìÚµ ,Ëâßÿmò6ù±ï½1¨é93{ölôìÙ“v”¯ †a}m×üé,[¶ G¥Kù¬ú`Cظqc£¿,‰Y»v-TTT0|øðfQFó^›R+?¶F6V>>ŽŒ¼÷ÝwHJJ±cǨaGùzغu+hGŽ‘‘‘„ïíûöÙÇÃßßjjjPUUŸqã$FØ?ô^ 55ÞÞÞPWW‡‚‚lllpâÄ Þ5ÄpàÀ,X°-[¶„’’¼½½QPP€’’„„„@[[JJJ DYY™D>ªû™åççã»ï¾ãôUOOcÇŽENN€·£Ÿ ,€µµ5TUU¡¨¨{{{\¼xñ½ÛÏØ±cV#mþ IDAT¡¥¥…ŠŠ ‰ßúõë ‹:Ï‹‹ƒ··7  ¯¯éÓ§×ø£êÔtïÉÉÉppp€P(„žž–.]Š;wJøÂÓÓ—/_F÷îÝ!//DFFJ¤“ŸŸèééA ÀÌÌ aaa/ëùùùð÷÷‡ŠŠ ÔÔÔàïïüüüó.Þþs˜É¡_ž Ô‹I“&!&&AAAh×®²³³û÷ï£K—.Ü(WuvïÞŠŠ „„„ ''aaaðõõ…0gΤ¤¤`ýúõ˜9s&¶oßÎ5{×ÎÙ³g‘––†ÀÀ@´hÑÿüó¶lÙ‚;wîàêÕ«ñ½½½Ñ¦M,_¾œ×É«¦‰ñãÇ£G˜0aÀÄÄ=zô€žž¢¢¢0hÐ Þu£¢¢`jjŠ=zÐÆBùhܾ}ýúõƒŽŽ~úé'”——cáÂ…ÐÖÖ–è+›6m‚¥¥% iiiÄÆÆbÊ”)¨¬¬Ä”)S¼õ ‚’’æÍ›àí´“ØÐ9zô(|||`dd„çÏŸcóæÍpppÀÝ»w¡««[g^¯\¹++«î³>>>066Fhh(nÞ¼‰mÛ¶A[[¡¡¡v¯YYY°µµEII ‚ƒƒ¡¡¡]»vaàÀˆŽŽ–èïË—/‡‚‚æÍ›Çé—ŒŒ ÊËËñæÍüüóÏHHHÀÎ;ahhÈûâDu]+**BïÞ½qÿþ}ÂÊÊ /_¾Ä±cÇ™™ `ûöí9r$&NœˆW¯^aûöíèß¿?®_¿ŽN:Õ» ùùù!22§OŸ†‡‡þüùs\¸p‹-ªóüèèh”””`Ê”)ÐÐÐÀµk×°~ýzü÷ß8pà@çV¿÷ÌÌL899AJJ sçÎ…P(ĶmÛ ++[£Þ£GàííñãÇ# Û·o‡¿¿?¬­­Ñ®];Àëׯáàà€gÏžaâĉÐ××G||<æÌ™ƒgÏž!<<ÀÛib///ÄÇÇcòäÉhÛ¶-:„±cÇÖ˜w˜˜˜ >>!!!Í[(…RTTTHPPP­¿;–r§¥¥†aˆŽŽyõê>wî\Â0 éܹ3‰D\øÈ‘#‰œœ)++㈓““Ä5#""¸°7oÞHäeß¾}„aÇ…-\¸0 CF%_ü[UI@@€Dܹsç@@ ¸°/^òÓO?цBù¨ 4ˆ…BòäÉ.ìÞ½{DJJа,Ë‹[RR"q¾««+111á…µoßž×ÏÄ”––J„¥§§@@/^\g>ËËË Ë²äûï¿—øí}ûìøñãyq‡ B455õ^CBBÃ0$>>ž +**"ÆÆÆÄÈȈTVVB¹páa†tìØ‘TTTðô‹aâááÁ»®­­-O !ÄÐЧ- , Ã#GŽÔZž"‘ˆ”——óÂòóóI‹-H`` /œažíܹ“0 C222!„TVV===2|øpÞy«W¯&,Ë’ôôô:붦ú %,Ë’ÿý·N]­~ïAAA„eY’””Ä…åææuuu²,—gB100 ÃË—/sa/_¾$€Ìœ9“ [¼x1QTT$=â¥=gÎ"--Íõ#GކaȪU«xåloo/ñœÓ¯_?Ò®]»f¯t*–R/ÔÔÔpõêU<{öì½Îóöö†’’÷w÷îÝcÆŒáMvïÞeeeÈÌÌ|¯ë îÿ%%%ÈÎÎæFÍÄÓÄÕG????”––"::š Û¿?***0zôhÚP( ‘H„Ó§OcРAhݺ5naaþýûKÄ—““ãþ_PP€ììlØÛÛ#55………ïL¯ªß©H$BNNЦM›ûVUrssAššZ£÷Ù^½z!''EEEv¯'Nœ@=`kkË…)((`„ HOOǽ{÷$t ª¯˜XׯNj׽{wÎõ¤6bbbйsgxyyÕ‡eYÎ߸²²¹¹¹(//‡µµ5ß«1 ƒQ£F!66–W†QQQ°³³ƒA½5·¸¸ÙÙÙ°±±!·nÝz¯¼œ:u ¶¶¶èر#ïY3zôè}œÛ·o;;;îoMMM˜››óüÞ<{{{¨ªª";;›;úôé‘H„¸¸8®Îedd0yòd^9ÕùÌÎÎnöZA ;J½ Ã?ÿü===ôèÑ?ýôS½œHõõõ%†³@OO¯Æðê~vï"77Ó¦MƒŽŽ„B!´µµallÌ |u>t¯=ssstëÖ QQQ/_¾DII ÌÌÌjl—Õ„ñññèÛ·/¡¦¦mmmÌ›7 ÃÔØ7j˜ÍAxx8ÌÌÌ  ¥¥mmmܾ}»^狯ñ¡}¶º†ˆÅªZñ¡÷š‘‘sss‰p±¿YFFFƒu­²²²Î<<~ü–––ïÌcDD:vìyyyhjjB[['NœÀ«W¯ô‚úæÍ>|ðàÁ$&&b̘1ï<÷ßÿ…¿¿?ÔÕÕ¡¤¤mmm8::ÖZï*wSSS‰p“z=O@UU•×RRRpòäI®½Š0 ƒ/^piëêêB(ò®×¦M›:Ûóç°çéWåcG‘˜·¯)ŒRóÈ[ïÞ½qøðaœ9s+W®ÄŠ+pèÐ!¸ººÖz^m+ j ß•¨>>>HHHÀ¬Y³Ð¹sg(**B$ÁÕյƷdyyù. ???L›6 OŸ>Å›7opíÚ5üú믴‘P>‰fՇǣOŸ>h×®ÂÃá§§YYYüþûï¯sIÌÒ¥K±`ÁÂÅÅêêê`!!!ï<_·¦µ÷í³ïҊƸ×÷-ãÆÔµú¤½{÷n`ðàÁøá‡ ­­ –e±|ùr¤¦¦¾wûhÛ¶-¬­­±{÷nŒ3»wœÜ;W0‹D"¸¸¸ ??sæÌ……ðßÿÁßß¿^eý1ʽjùBЯ_?Ìš5«Æ¸U ·÷}ÞäååASS“vÍI Å"™——‡ÒÒR´hÑ‚kXÔÀ{7-Z´ÀäÉ“1yòd¼|ùVVVXºti†ÝÇ$//çÏŸÇÏ?ÿŒùóçóÞØ>”ºÚÂðáÃ1}útìÙ³¯_¿†ŒŒ |}}i¡|T͉D——ÇÇ%4ëÁƒ¼6{ìØ1”••!66–7m{îܹz·õèèh8;;Kì;–——--­º,ÒÒ011‘0:>FŸmŒ{500Àýû÷%ÂÅaïšžüLLLpûöí:ãDGGÃÄÄ111¼ð |Ð êôéÓñüùsìÙ³ÜÈcmܾ})))øßÿþÇs=ùã?”ƒëþÑ£GTž………pvv~gÚçÏŸGqq1¸ðºöcMKKã 6g¾ª©X–e¹&[[[Œ9›7oFii)5êê ¦©---èêêò–òê2¿½UK\³fÍ_[AA¡Öia ¸¹¹a÷îÝØ³gÜÜÜ ®®N å£jVïÞ½¡®®Žèèh??"‘àáኊ üöÛoÜï"‘ëׯ¯ñºHMMåùa6W¾š;†a???,_¾ƒ Bhh(BCCaaaú©…W¯^¡uëÖðööFÇŽ¡¨¨ˆ³gÏâÆX½z5¯ƒŒQ‹ÚPVV†½½=ÂÂÂP^^Ž–-[âÌ™3HOOÿàt­­­qöìY„‡‡CWWÆÆÆœƒ´ømwذa€%K–ÐFBù$šõý÷ßãÀèÝ»7¾ûî;”——cÆ °´´äí/׿ÈÊÊÂÓÓ&L@QQ¶mÛ<þœ—N×®]ñÛo¿aéÒ¥011ŽŽœœœ0`ÀüüóÏ7nlllpûömìÙ³ÆÆÆõêë^^^ˆŒŒDJJ çø1úlcÜëìÙ³±wï^¸¹¹!88jjjˆˆˆ@FF†Ä(YckÚ÷ßèèhx{{cܸq°²²Bnn.Ž;†Í›7£C‡ðôôÄáÇ1xð`¸»»#-- ›7oFûöíy ÞMMM¸ºº"::jjj¼­Oj£mÛ¶011ÁÌ™3‘™™ %%%ÄÄÄÔº÷Û»î}Ö¬Yؽ{7\\\¡PˆíÛ·ÃÀÀyyyõ6îª^÷ûï¿Gll, XYY¡¸¸·oßFLL 222 ®®OOOØÙÙaöìÙHOOç¶;©ÍgñìÙ³Ü)Íž¯i«€-[¶I“&q[T´lÙ’L™2…û]¼¤Â§¬¬ŒÌš5‹tîÜ™(++EEEÒ¥K²iÓ&.Ž¿¿?122’Øšä—_~á]ëÂ… „eYà ߹s'aY–ܼy“ stt|çv'™™™dÈ!DMM¨ªª___òìÙ3‰%ÿ‹-",Ë’œœ‰ûÿV•" Ã0[Ÿ”••555¢¦¦Vã¶ÊÇÒ¬Aƒ‘®]»999bjjJ¶lÙRc>vìéÔ©‘——'ÆÆÆdåÊ•\?«ºDVV0`QVV& Ãp}®´´”Ìœ9“´lÙ’…BÒ»woríÚ5‰~Y—nhii‘%K–ðÂ?´ÏÖtz¯„’ššJ¼½½‰šš‘——'={ö$'Nœh°~ÕvÕ·üoñDZ·nMää䈾¾> à·|ùrbhhH±¶¶&'NœÐÝÚ¶;©^bˆ÷r«º7\s`Ú´iD(6›Á–gÏžyyyûYÔëécWÕéøÖ­[¸t逷+;Y–…¥¥%\\\°eËB¸]½ÿúë/ú}PJ½8rä²³³áççG ƒB5«¾ûî;aÿþý´’›![·n…‰‰ oo¸OMõÏÃåää 22½zõj6¾ïkÖ¬AÇŽáééùYÔëëcDz,¢££1mÚ4ÂÄƆ†Ð×ׇçSWRR‚U«VáÚµkX¶l]DA©“k×®!99‹/†••÷½Y …j–$ ÈÊÊ¢•ÛÌØ·o’““qâÄ ¬[·®Ióbcc'''XXX ++ Û·oGQQï3lMMÕÏ×}.oŠ_$‰‰‰D]]lÛ¶÷™ªœœ2yòdâììLZµjEú÷ïO´µµ%|#(”šð÷÷'ÒÒÒ¤[·näÎ;´@(T³(Ÿ ÃeeeòÍ7ß4ù4ùܹsI›6mˆP($ ÄÞÞžœ;wŽVÒ‡Ô/ùBçOž<‰åË—ãäÉ“““ƒ´´4ÊÊÊ ++‹¢¢"äää 66FFFhß¾ý‘€B¡P¨fQ(”¦æ‹ŠÍÏÏÇíÛ·!-- iiiˆD"îÛ‡OŸ>E›6mêü&…B¡PÍ¢P(ŸŸýâ RmÓF1èܹ3,X€‚‚HII¡¢¢ÅÅÅØ¼y3o#J …B¡šE¡P¾>ë©XB*++!%%…ëׯãîÝ»‘‘AŸ>}ТE lٲLJ©©).\ˆÒÒR¬[·{öìÁŸþÉûüÌ»ÈÎÎÆéÓ§ahhØ(ߥP¾4Þ¼yƒôôtôïßÿ³øž"Õ, …jÖ©YŸ›S ØÑ³ªsqLL QVV&ÄØØ˜Œ5ŠüñǤ²²’ìØ±ƒ899Ò­[7¢««Û §ãÝ»wô =ÞqìÞ½›z/SÍ¢=¨f5Ÿ•H$‚””þùçDEEaÑ¢E¸ÿ>fΜ‰+V`Ò¤I¸|ù2ú÷שּׁ,¼yóð÷÷DZcÇ ©© ===èéé½wÚbGå!Þ×®?Àµ÷É= òËÓ¬ÏÆ° ä­[·`ee…Å‹CNNYYYðööƤI“žž¸»»ƒeY„††¢²²^^^8pà¥/€ÿHÝ÷=·爱jÙ°óT ? üÞµª`ÕÀsu,Þ?³rªè4ô&u­ØT~nFëCFPi`š¦ LSA0µú ¾BºÏW³>D·hcAéÎí¨Ð@Í’¬x. ˜¦°jȹ2 ÔVµáç6ØDø€Úd:6ðìÙ³§NÂüîÝ»víÚ…!C†ÀÎÎEEE8qâD³XÂlÙiŽèÐiz|Úô,Ftl‚ÊñéÓÔm‚4G€òõjVSè–[Sè¤z¤ió‰4E_n‚Úd¨f‰iÖ#vâ-öÄÿvîÜÓ¦MCYYŽ?Žàà`ôéÓ‡‹ßµkWÜ¿û÷ïGRR¬¬¬šÅ}4E »V™M -©a÷¹ð¥hVSèV“v_a'ÿ•v,Õ,1ÍvÄN¼;;Ã0ÈÌÌDii)455Ñ­[7Î_åîÝ»8uê\]ß.Ê///‡P(„µµ5­Y …B5‹B¡|u4ë;–eqèÐ!8::ÂÛÛ¶¶¶‡¦¦&æÎ –e±k×.œ>} ##Ck”B¡PÍ¢P(Ô°kn0 ƒÄÄD"$$‰‰‰>|8,X€øøxXZZbÆŒ““ÃÚµkqîÜ9Z› …j…B¡†]s 22Ïž=ã…¥§§ÃÞÞS§NÅ“'O°k×.Œ1îîo¿6Ð¥K£uëÖ°°° µI¡P¨fQ(jØ55•••˜9s&†Š/^páÒÒÒ())Á­[·`gg‡¾}ûbÓ¦M€˜˜ܸqÖÖÖX·nZµjEk“B¡PÍ¢P(Ô°kjdYOž`Ö¬Y8rädeeqûömÀÙÙ™·òŒB¡P¨fQ(J32ì pðàAÌž=!!!°··GLL äää0þ|:tˆsNxýú5­- …ÒdPÍ¢P(Ô°«YYYxzzb̘1xñâœáåå…¨¨(˜˜˜`îܹؿ?äääð×_ÁÐÐÖ…Bi2¨fQ(jØý?„TVVD"*** //¾}ûB__±±±PQQÁÒ¥Kaaaccc¼~ýëׯGAAÏiùCòP×ß …Òœ4‹ê…Bi¶†ðvï§ØØXøûûÃßßÉÉÉPRRBZZÒÒÒ\Ü©S§âرcPQQÃ0,ŽbAÌÌÌDNNž>}JkŸB¡4KÍ¢ºE¡PšµaÇ0 nß¾ÀÀ@ÈÉÉ!??Ý»wGLL ÀÉÉ ·nÝ‚ŸŸÜÜܰk×. 4jjj*Ò‡†‡‡ÜÝÝ1`ÀlÛ¶¶ …Ò,5‹ê…BiV†]Õ© ¨¨¨Àˆ#°mÛ6?~ .Äðáñwï^tîÜgΜžž páÂ…FÝÈ“a\½z˜:u*¢££1vìXL˜0ׯ_§­€B¡4+Í¢ºE¡PÊGÝÇŽeYüþûï8|ø0¤¤¤P\\Ìý6gÎÀ˜1cÀ0 †ŽîÝ»ƒ–m|{3)) vvv?~<ÒÒÒð믿"00Ý»w§­€B¡4;Í¢ºE¡P¤cëÍ—a$$$ÀÏÏùùù¸uë>Œ½{÷ò„rÙ²e9r$> †aE «ú¦p¬´4ÌÌÌPRR‚Þ½{ÃÉÉ ›7oìܹÿý7m ÊWJSkÕ- …ÒX|”;†aððáCœ:vìøÉ?ÐM¡Pšž¦Ô,ª[ ¥Yv„¼~ýß~û-®_¿ŽÁƒLMM–e±dɰ, @HHH£æeYÄÄÄ 00Ó§O‡®®.zôè_ýAAAèÖ­¤¤¤PXXˆÐÐPœ={?þøc½ÄqâDÀªå§« E ?}£X4ðÓ§©œO›à£&èmM¦à¦%ûyŠ`sЬ©[ÎÚ~Âò<ÔuØÑ¢ 5ûÄéi6Á=>7ý:t’v5 £ø­—a(((`ýúõøá‡žžŽsçΡOŸ>044ÄØ±c!%%…ï¾ûÒÒÒ2dH£¿yÿóÏ?øöÛo±zõjøøø@QQàç燢¢"Œ5 aaa€gÏž!66&&&´5P(_ ÍI³¨nQ(”feØUBxüø1^¿~ @ ¬_¿'NÄÎ;!%%GGGbäÈ‘••E§N>ÊM¥¥¥ASSƒæÄ±²²Ó§O‡‹‹ RSSA••ôõõiK P¾"£®¹iÕ- …Ò¤†]ee%X–历Á¡C‡ }}}dffbÔ¨Q † 0eÊlÛ¶ ,ËÂÞÞÆÆÆ˜>}:·¹gc 6Ã0PTT„””JJJxù‹§¥¥%:tè@kŸBùJh®šEu‹B¡46|K$eY¤¤¤àèÑ£€;wî`Ò¤I˜;w.®\¹‚üaaaˆ‹‹ƒ‰‰ Ö­[‡üü|¬Zµ ññño-ÊFÈê«ÈÄ»½áùóçøí·ßÞÞäÿ‹cNN6lØ€Û·oÓš§P¾š“fQÝ¢P(Íʰ‰D’’­[·`nnŽgÏžxëïѾ}{L™2ééé E@@|||@¹¹9V®\ ™Fû0¶X†Á•+W°~ýzüöÛoHII¡¡!"""°lÙ2Ì›7)))xöìÖ®]‹½{÷BEE…Ö<…ò•uÍE³¨nQ(”OA½_A+++!%%…¤¤$ôêÕ ³gÏÆäÉ“JJJ‘‘ÁŸþ‰Ñ£GÃÍÍ 7nÄÄÄ@EE...Ø»w/de¾tN,Òâ·\†apøðaŒ?;v„ŠŠ ~üñGœ>}®®®8yò$¾ùæ>|•••xýú5Ž?ZóÊNsÐ,ª[ ¥Ùv,Ë"553f –-[Æý&þ8ö!CàîîÎm  GŽ––Ũ»qã"##±víZ$%%aúôéX¹r%ƇôôtÃÙÙGŽ‹‹ âããñüùsÁÌÌ -[¶¤µN¡|4µfQÝ¢P(M¢}ï­4èÐ IDAT¹´´ÊÊÊ011Á“'OË—/ÇŒ3ЩS'(++ÃÂÂ7nÜÀÓ§OñÃ?à?þÀĉŨ¿yWõOñõõŘ1cðäÉ888`òäÉðó󃇇®^½ŠV­ZÁÚÚT)”¯Œ¦Ò,ª[ ¥©x/oà¶mÛâÈ‘#øöÛo!++‹ÌÌLìØ±111pqqžžbbb°víZèëë#//'Ožü Ú !œ8ÚÙÙaúôéÜ›w§N ££„„„ oß¾X»v-ÒÓÓ±}ûvØÚÚâòå˰µµ¥5M¡|…4…fQÝ¢P(ŸaVVVذa‘’’‚Í›7ÃÅÅ€"++ "‘:::ÐÖÖþ  2 ƒ—/_¢K—. IJe˸m""" ¦¦777<{ö ––†’’† ¨©©ÑZ¦P¾b>µfQÝ¢P(Ÿ•aÖÖÖˆŒŒD@@þûï?üûï¿Üf™jjjÐÐÐhÔLª¨¨`ذa8uêRSSallŒ%K– <<±±±())A«V­¸ã/]º„ääd\ºt ´–)”¯œO­YT·(JSÁ6ôÄ:`óæÍ8zô(þ÷¿ÿqþ+â½—YYYìÛ·vvvèÝ»7f̘_ý»w””0räH$''cÊ”)عs'¶lÙBÅ‘Bù‚(..ÆÂ… áêê uuunô«9jÕ- …ò¡šÕP>hÇMkkklذ!!!ÜG´[µjÕ(«ú-G±øîÛ·þþþÇŽ;àææ†òòrÈÈÈ`ðàÁ°¶¶FEEäåå¡««K[…òñòåK,^¼èܹ3.^¼ÈéCsÐ,ª[ ¥±5ë“vb¡\µj~üñGÈÉÉ5š8Š¿å˜ššŠ’’°, ìÚµ ¥¥¥˜={6zõêSSSN$õôô>I¡Q(”OOË–-ñüùshkkãæÍ›èÖ­[³Ñ,ª[ åciÖ'7ì Gˆ…@ h´Œ±,‹èèhÌŸ?,Ë¢uëÖÐÖÖÆîÝ»±wï^ >vvv¸rå LLLxßUü˜„œT«Ýæˆo å«áÜÞ·GUŠò?j’²²²Ü†ª[‡4Íj®º@©Z˜ÛÿÊ×ÃÞÿ?ªòùhÖ'7ì4š@Š?·“˜˜ˆÉ“'ã—_~Á!Cpþüy 4žžžðõõÅž={0zôh˜››#%%FFFŸ¤ÀÖ¸Vt[)Ê×NŸoª(++ÃÝÝ›’ÈÊÊB§Nàç燴´4aÒ¤IðõõåÞŒ÷ìÙ@€òòrÚf) Õ- …òÕÓä†ÝóçÏñûï¿ãùóç••Eß¾}yyy––Æëׯáèèˆ~ýúaÆ €ƒ¼½½±cÇZ‹ÊgJJJ %•””`ffÖlóMu‹B¡ºÕ\5‹mê ´hÑÓ¦Mƒ¹¹9V­Z…3gμ¼¼––EEExzzbëÖ­`8wîîܹƒ²²2ÚÂ(”ÏXÛ´ikkk‰£M›6HIIi¶y§ºE¡|„‡‡×¨[ÍI³štÄNì—ÒµkW0 ƒmÛ¶aõêÕ‰DpssÚ5kðÃ? ²²‘‘íÛ·ãðáÃøóÏ??ø[Ž ¥é¿ñŽ S%< Àž*¿77¨nQ(_/ºÕÜ4«É ;±8ŠW…‰÷rÚµkÖ¬Y999¸¹¹eYLš4 mÚ´@ À›7opòäI˜››ÓF¡|èÿÿ!F®ç•ê…B©®[ÍM³šÄ°ï÷Ä0Ìÿ±wæq5åÿÛÊRLT"[c)E} ÆR iP¶‘e˜1Æ:c #Ò([–d Ù[T–ˆ˜HdIRÔm¹÷ýû£¹çW–ù’ºK½ŸÇypO÷œÏçœó9ÏûþœÏr––¹\´hѺººX»v-.\AеkWܺu gΜ±±1ÌÍÍQ½ú§ KUÖT( Ã|:z 4 °S¦·ØY £9Þ*ó]ÁI<÷ìÙƒŸþD„ *`Íš5hÚ´)ÆŽ‹Õ«WcÁ‚ÈÉÉA×®]Å—v*2™ ZZZ€‡"//Õ«W/Ö‰I†):å½õùCøùù!-- ?ìÝ»‰‰‰€ñãÇÃÈÈHã½ÅÎbÍò–º9K)¢ö™——mmm‚€C‡aذa˜6m „1cÆ`ذaX°`:uꄱcÇbíÚµ˜3gtuuѾ}û"ÉX!ÈéÓ§ãĉ¸wïú÷ïFÁËË‹K'èQÍ÷Õ~—.]ŠÈm×îÝ» A0lذb•¤*¼ÅÎbÍó–º8KRžõK$ܾ}³gÏÆ½{÷ëׯǤI“àëë‹Ê•+ãîÝ»xòä ÆŽ‹cÇŽ¡I“&5jZµjkkë"¥«˜[jÅŠX·n–.]Š . ==Ë—/Ç;w¸t2ŒŠ)÷oÍW±”ûï&$$@.—C.—C&“A&“‰ÿ·´´Ôxo±³Fó¼¥.ÎR ”'v™™™5jΟ?ììløøø`æÌ™ÈÌÌDJJ Ú´iƒnݺaõêÕøê«¯0eÊÌ›7={öDÆ ?» âáÇðõõEëÖ­ް°0¬X±õêÕß×È0Œêk¾ÿ«ö«LTé-vÃhŽ·Ô­“„RžØiii¡Y³f¨Zµ*ÒÒÒðÛo¿¡råÊprrBDDÌÍÍ1oÞ<@›6m‡eË–áÍ›7Ÿ,GŹuë^½z…Ó§OcàÀXºt)ÜÝÝ‘;wâöíÛ\JFEèÿ+HÅ¢¯&ùR–·ØY £ÙÞÒW³¼•H`÷öËnõôô0iÒ$###=Âï¿ÿŽGA[[×®]ç‘ÉdÆ_ý…råÊ}Rº2™LI†+W®&L˜€ˆˆ´k×Ë–-Ø1cäÏ/µyóf±##Ã0ÊçSšbKUx‹Å0šï­rj–·boŠUt8~ñâ$ *Uª¨Y³&<==‘““lÙ²‹-B—.]лwoôèÑuëÖExx8bccQ£F"Õ°`òäÉ Ã?üÔ«WöööH$066>‘.¾TÞšÓ[ù…bNSDÒRn‚wUp·uRAÍ­ÁåF9Y "l§§>™rÏ“ª¼¥ gÕµš(ñ—§I8k“ Òì¨äo\T´Z(?ɳJLë6€QEÛ´ ·Tá,¥v‰÷îÝCÓ¦MáììŒV­ZaÆŒ€FaÒ¤I8xð ªV­ŠÕ«W#""ÎÎÎhܸ1nܸ+W® N:ENË–-FDDlll ««+Ê900³fÍÂ?þˆŠ+Bœ;wZZZ…¦`F‰5_ B[¯œ Àk%À*ô;‹a4Û[ªp–R;ÈËˤ¤¤`ãÆ8{ö,¾ýö[ôíÛnnnðññÁ¦M›’’‚½{÷âõë×X¸p!*W®,Ž +*Ož<““lmm‘›› ¿¹ÃÆÆ³fÍÂøñãqòäIÔ¨QÎÎÎÐÒÒ§3`FÒ ŽÐÎUM>Tå-vÃh¶·Tå¬VTKb§õë×ÇÙ³g¡§§4lØwïÞ…­­-V,*b¦lo±³¦”xK͆ŖبØ&Mš`É’%8xð LLLàé鉀€$$$àòåˈ‹‹¸»»cýúõøâ‹/>iÿ2YámEdwww¼yóF­¦hªHLLÄÏ?ÿŒ„„„BÛqSè}ä÷>V,*bV’Þbg1L)õ–š ‹-Ñj_óæÍ±xñbxyy!77ÞÞÞhÛ¶-ž>} +++±fú©3/l†Ø±câããQ¿~}4lØ 4Àøñã±sçN¼~ý3gÎDRR¦N ©TZb2 SDtߪñª¸rIx‹Å0¥Ø[2õÊZ‰?Ïwpp€ŸŸ<==#GŽ„••U‘kž9mÚ4ÃÎÎ'Nœ€‘‘¦M›†Ñ£GÃÈÈóæÍCPPŒadd„³gÏBKK‹_°Í0ê„ Ï@ªÏRqz‹Å0¥Ü[¤^YSŠ)°jÕ*9r«V­Â£GŠ´Ÿàà`Ìž=[¬õnß¾¡¡¡8xð ºwïŽððpL›6 §OŸÆÐ¡C‹Í›7cóæÍ8wîttt——Ç‚du«ùìc§«Ù*o±³¦ xKW½²¦4[888`É’%¸|ùr‘^µ³víZ >m۶͉0mÚ4´lÙû÷ïÇ/¿ü‚qãÆ¡zõêøé§ŸpìØ1hkk£}ûö°··çNÇ £Î‚Ô+°¨‘$?Ç[ì,†)#Þ*«´hÑ{÷î…‰‰É'mçïï &`çÎèÞ½; {÷îèÖ­RRRàëë‹Y³faáÂ…èÙ³'"##1yòdœ9s¦Ð~¸Ó1è!Š& Åb ^Ù+Š·ØY S†¼¥fÎRúó}}ýO>rþüyŒ=³fÍB¿~ýÄõëׯ‡L&Ë/ ¥¥…Nò§õ¯]»6:v숱cÇÂÉɉ ÃhBÍW ›b‹ê-vÔ1o•å'vEA.—cÀ€ˆŽŽÆÕ«W}ûöÅòåËQ±bEáÞ½{رc®\¹‚_~ùpww›2†Ñš¯Ö~ÙY Ãü§·ÔÌYjÛyC1¥@ëÖ­!—Ë€¹sçâùóçÈÊʉ'P¥Jù’ „={ö@[[aaaH$ËåÜ”Á0šPóÕ{ë³ÂÎb˜2ê-5s–Úv ¹Éår´mÛr¹þþþ¸~ý:Q«V-ÈårºvíŠøøx¼zõ µk׆D"áWî0Œ& R_ó;vÔQoq`÷qµ^ ¿ò† püøq|õÕWÐÖÖ†¶¶6þúë/T¯^-Z´A&“ÁÔÔ¦¦¦â>‚|ßüODTä×Mü ¨X¡ð:—žù Ôh÷Ðî…W¦¿*ÚÎÞžÇNÚb‹ÛYÅí­‰Šo=t© ¸TárÌ”!"¶G·^÷:­èû+è-nŠý0›!vîÜ ©TŠK—.aÈ!غu+Z·n ™L†ÀÀ@üú믘9s&ßiºP|.(ܘ˜¼|ùMš4¡¡! Šv%–Mì¿ä{„)Û}@è; pàq-Ô¥MÑj¾Ú[ÜÎ* o-³ìËq™eÊ8]ò—‚ÜŽF9mjÜ«Vƒ'5Ô9sæÀÝ݆††ðññATTºuë©T gggŒ1¦¦¦˜8q"nÞ¼ùÁý)äèããƒÀÃÃ...˜9sf‘'If¦˜ÑàÁÅí,öÃh ·Êút'ÿ!55ÀÂ… áîîŽ àÂ… xüø1ºw¬,8;;cðàÁèÙ³'êׯÿŸû APP‚‚‚kkklÛ¶É0ê‚Lw¢Lg±·FüÅOì>Œ ¨\¹2LLL ®733áC‡aÆ!'';w†ÏÿœàéÓ§èß¿?Zµj…½{÷bÓ¦M˜5k‘¬¬,.  £jAªé›'Tá,öÃh˜·8°ûÞ'7¹\;;;DFFâþýû Ê»®©©)lmm±wï^ôîÝ ££S¨Ëûö'‘HðäÉlÛ¶ nnnX´hFœœlÛ¶MœgŠa¡AM±Åí,öÔoqSìÿ˰`§ãµk×bëÖ­ÈÊÊÂܹsñúõk¸»»#..YYY(_¾<¬­­qäÈܼy‹/¨£bAAAøë¯¿ —Ëáì쌬¬, 6 ³gÏÆ˜1cééé ĵk׸€2Œªk¾Ð[ÜÎbo1L)ñOw‚BróññÁúõëѲeKDFFbÛ¶mðôôÄ™3gйsgxxx@&“!77¯_¿†¿¿?Zµj…äääBûSÈqêԩزe fÏž””4iÒ:uBjj*²³³qãÆ H$Lž<R©#GŽäÊ0ª¤ŒŠ-ng±·¦”x«¬vŠù™ˆW¯^ÅÖ­[±{÷n|õÕWxüø1.\ˆÕ«WC__GÅŽ;"‚¯¯/´µµ‘••õÞùœŽ;†Í›7#44-[¶×{{{C.—ãüùó˜;w.š7o‰D‚3gÎ@[[»P­™a%£ÂóØé«WöJÒYì-†)ÞR3g)=°SÔzA€L&CNN¾ü2b¸êÕ«còäɘ1cüýýáìì WWWqÛ{÷îÁÏÏçÏŸÇ¢E‹ÞÙwzz:,--ѼysQz¹¹¹ÐÑÑÁ”)S‘‘‘055…¥¥%ÏöÎ0ê€Þ[bÔS¯ì•¤³Ø[ S ¼¥nÎRVBgÏžÅÂ… ѽ{wŒ?aaa°±±¥¥%ÅïYZZbìØ±Ø¾};bccÅŽÈ™™™8}ú4Ž;†ˆˆˆ÷NP¾|yÄÅÅ!!!ZZZËåÐÑÑAvv6Nœ8¹\ŽæÍ›ÃÊÊ ‰äÙÞ†Qj:x¢¸Õ Añoì-†)EÞ*‹ƒ'ñÝwß!** ÖÖÖ¸rå ~ýõWŒ9½{÷Æ7$~ßÄÄ7†¾¾¾Ø|ahhˆáÇãäÉ“hܸ±¸^.—‹ÛµjÕ :uÂÂ… /Ö´333±nÝ:œ>}ºP¾¸ƒaÔžîDGõY*ngÙÙÙA&“±·¦4zKG½²VâÕ>Œ7AAAèÑ£*T¨€ŒŒ ìÛ·6lÀÞ½{ѪU+„„„àìÙ³èܹ3Ö®] ‰D++«ÂQ¨D‚Š+Šâ[µjbcc!“É0räH8::bäÈ‘X¿~=¦N `Á‚HMMEÛ¶m¹02Œº¡fM±Åí¬Ê•+QËÞb˜Ræ-5kŠ-ÑÀîÀ=z4Ö¬YƒAƒ‰5Õ * _¿~ÐÑÑA`` ttt0xð`,[¶ wïÞEùòå.Nä©â³gÏPµjUÀôéÓ±nÝ:Œ7ÑÑј9s&wwwT¨P›6m AƒÐ°aC”+WçÎ{g èž »\áϪ¢¸ÅÞb˜Òï­5kŠ-ÑÀÎÜÜ 4@ff&úõë‡7bÈ!°°°À´iÓÄïU«V &Lß¡È0Lé¨ùþWíwçÎÐÖÖ†‡‡‡¸NOO£FÂùóçñèÑ#öÃ0J÷–º9KeL&û•\»v ÿüólll0uêTÄÄÄ Aƒ AÓ¦Maee…k×®áîÝ» ÷ká©F³É{ë‰]Þj¿ÑÑѨW¯Ê—/_h}óæÍ111ì-†a”î-us–J;"Å6}út 8„³³3Ö¯_SSSüüóÏ E¿~ýpíÚ5\ºt Û·o€BsG1 £Ùä@ÙЗè¾÷{ÉÉÉ033{g½bÝãÇÙ[ Ã(Ý[êæ,•v ÁmذÆ… бcGxxxàîÝ»ÐÒÒ‚¾¾>fÍš…øûûcÆ ¸zõ*—(†)EH¡‡Lˆ‹zïý^VVôôÞý›¾¾¾øwöÃ0Êö–º9K©'Éårqvu‰D‚øøxôë×Í›7Ç®]»°}ûvøùù¡N:…æŠ233CŸ>}°k×.üóÏ?°µµUÙÅ<9ñ ô*nOoàÒ \špIgʇ·æ/ÉH+Ò®L:}ãÿ¿§¤¯¤ïýž8¡`¥Rñïì­w™¸ ¨hXxK«ü…aÊ Ç·'ÞrÖëOwÖ¡C‡Þñ–º9KiL&›1®\¹‚æÍ›CGGõêÕÃ… 0|øp,^¼cÆŒAvv6~ÿýwôíÛ 4?‘ç‹/páÂôíÛWee£Ý²¨f_o¦lÓÕ%)H\àæðÉ»rþãëB÷ÔÓ¨ÇØä°æï™™™½·é"99P½zñß—¥Á[ËÜ{+.²L§ƒKþRø(`̧9«[·n˜1cF!o©“³%4Å*æjQÈ1,, žžžògs÷öö†““1fÌ@ZZNŸ>-v,$"ܹs)))puuåÊ0¥ˆ\è¾5Añûû«4mÚwîÜAFFF¡õ/^ØÙÙ±·†Qº·ÔÁYJ ìÖ¬Y___±ó0¼zõJl_îÝ»7~ÿýwhkk£|ùòxþü9’’’0bļzõ  ß·ÅÊÊ QQQ*m†e¦$©]è•b¹hHøöÛo!“Éàïï/®ËÎÎF`` Z¶l‰5j°·†Qº·Tí¬·)ѦØN:!&&!!!ÈË˃««+ŒŒŒ`høÿ><<< •J1xð`˜››C[[8sæŒ8ß“––tuu¡««Ë¥‰aJÒ_¦]ðóûpttÄ€0}út<{ö ÖÖÖØ¸q#ÈÞbF%ÞRµ³”ØÉårÔ­[?þø#~ûí7lß¾*Te§ÀÐÐ?þø#z÷î´´4äåå¡uëÖÐÒÒúÏ—m3 SZj¾ù/Ó.øùCaÖ¬YÆË—/akk‹ýû÷£M›6ì-†aTâ-U:Ki‰£ÈjÕª…iÓ¦aÁ‚رcòòòpãÆ #++ ÖÖÖ055ÅÇѳgOq2™ŒåÈ0e¬æû_µ_ ÖöE‹aÑ¢Eì-†aÔÂ[ªr–Ò»‚£È²²² ¬­­á㡞;ð IDATãƒÅ‹ãÌ™3xõê<ˆÛ·oCGGR©FFFèÞ½»8«;ÏÌÎ0e¥æ›?ÑgÁÏʆ½Å0LQ½¥ g)-°+83û¬Y³‰´´4ÌŸ?:tÀìÙ³ñóÏ?ãåË—8p 8üÿÕ«W022‚ â\Q ÔAêš¹ý¿š5JöÃ0Ÿã-e;ëQl&""qfö={ö Ý»wGÆ Ñ«W/ÀÜÜ3fÌ@åÊ•Œ 6ŒYŽ SF)ø2íÿz¡vIuì-†a>Ç[ÊtÖÇPlOì ÊqÇŽ˜={6F °µµÅôéÓADpwwÇŒ30eÊÄÇÇ+Ë‘aÊvÍWÙµ_öÃ0Ÿë-u{bW¬M±=ÂîÝ»qàÀXXXˆëÇAàëë A0jÔ(¬\¹¦¦¦¡$†){5_|äà‰’€½Å0Ìçx«T=±{» ¢F˜0aAÀž={Ю];tíÚ0nÜ8‚€ï¿ÿU«VE¯^½Þ»†aÊ9ÐPà‰]N ×~Ù[ ç·rJË»‚£È._¾Œ/^ÀÑÑvvv˜3g~ýõW,[¶ ‚  K—.///|ñÅèÞ½»¸eÊñ}5l®u3ŒjɃ„£bóJP’šæ-vè¿·òJK`§ã”)S™LSSS´mÛ3fÌ€¯¯/~ûí7üñÇ;wÿŠ JŸÄ“ˆD!¦§§#''&&&¢ ?V–›üÝ3{å]¡»*(*Hs UWjzU…ÉJ?Æ×Ò©JOsªÞb¥¥õ\HÂÎ"l'ÍÑCn¶Áÿ_9z%–GMòVq9ËaÙ@G‰Î2Q³n\T~šë[(5¹ŸÜ•ÌÏñTþi½Ú±®ÒÒºUI —"n[Ð[%鬢ðÉÕά¬,ñÿaaa DHHbcc1uêT¤¦¦bâĉ(W®¼½½Q»vmøúú"22²pD©‚I<% vïÞ¯¿þŽŽŽððð@PP×€F…äæè"Gª'.¹9Å?'”¦z‹Å0êï­’p–Ò»;vÀÛÛ ùO ^¿F£Fàää„J•*ÁÍÍ £FBNN‚ƒƒQ¿~}¸ººbРA°··Wé ‚€“'OÂÍÍ ýû÷Çþýû!“É0oÞ<\¸pK)舜ldKuÅ%'»x›54Õ[ì,†Ñ o·³”Ø=yò>>> ŸŸîß¿êÕ«#22IIIâ÷:vìˆ  88кukL™2E|1¶*¹~ý:ÜÝÝ1aÂT«V áááèÒ¥ ZµjÅ¥”aTeéCþÆP\(«øF˜iº·ØY £þÞ*Ng)5°366FûöíQ¾|y¼~ýË–-CÕªU1dÈxyyáþýûâwÛµk¤¦¦Ú‡2_·CDכּwïRRRðäÉØÙÙá믿ÆÊ•+GE\\—V†QzÕW¤–œâkbÔ$o±³FC½•£^Ý">:°300ÀôéÓQ±bEH¥R$%%aýúõ°··Ç_|¡C‡âÌ™3¸|ù2–.] ###TªTI5‘ô¿ŽàîÝ»ˆ¸ººB*•¢AƒèÖ­üýýADHMMźuëõ^¹2 S‚¼Q`yS|»Öo±³Fƒ½õF½²öŸ=cccQ¹re˜™™jÕª…Áƒ£J•*022ÂÖ­[NNN044D÷îÝQ§N”+W'OžTéëv$ víÚ…™3gbüøñ011••*W® KKKq*ƒœœüñLjŒŒÄo¿ýÆ’Fé5_Ò·>šê-vÃh¨·rÔ+k ìöíÛ‡>}ú S§N°³³Ãüùó¡­­¦M›ÂÛÛgÏžE¹råA0kÖ,øúú"33æææH$JŸÒD ˆˆˆ€››/^ T¬XðË/¿`æÌ™X¹r%¦OŸŽúõëãÒ¥K8|ø0j׮ͅ•a48°ÓTo±³†»ìjÕª…jÕªA"‘`ß¾}¸yó&:tèWWW¸ººâçŸÆòåË‘žžŽx{{ã—_~¥¥%€ü‰@UÔär9Nž<‰Ñ£GÃËË ¯_¿ÆÝ»wqúôiÔ­[ëׯG||ª3‰ƒƒüüüàéé AðÝwßÁÜÜDTH4Ê¥â¯HS"‘ sçÎX³f ¦NŠììløùù¡aÆ "üý÷ߨµköìÙƒ3gΰ F](æQ±êê-vÔRo©Ùà‰®¦:88`õêÕ8tèüüüðìÙ3•³WôM¹|ù2.]º™LtèÐ .ĉ'0qâDÀ³gÏpøðaüý÷ß8yò$5jÄ…’aÔ…L¯ ,ÅØ¬¡NÞbg1L)õ–š5Å~Rûƒ½½=–,Y‚—/_ÂÄÄD¥WŒ$›˜>}:æÏŸ{{{ÂÙÙ&&&˜={6222°páÂâÉÄ¡‰€~ÅÂë¹]¸ 3e†ø­Qˆß]h]vZÇü+j¾?3ªò–Z8+}" yËYú.€;‹);„oÍÀ¡­…Öe¤}Æ{  zKÓOüÊêœïÝ»"‚T*E£F°oß>ôêÕK¥ªU«†-Z`êÔ©ÅûÂìnË3{¾K˜2M]{Ôu)|îܹ3œœœ†7oÞðÌì £‰ä¼UÅÌѬ쳳¦Œ{‹GÅ~˜ÄÄD¬X±÷ïßèëë6oÞ ===Ìœ9X¶lž?8;;cÓ¦MضmLMM¹°1Œ¦‘àMEƒšbÙY ÃÞR7g©Õ»—/_bݺuÈÊÊÂðáÃannŽ `Ñ¢E8wî*Uª„Æ#77+W®Dnn.’““aii‰/¾ø‚ Ãh"٠Κ§9Ygg1 {KÝœ¥V­­-¶lÙ‚±cÇÂÈÈIIIÀÖ­[Ñ´iSÀåË—áää„û÷ï#$$\ÀF“ÉDá¶¹ædÅ0ì-us–Úõ±kÚ´)üüü0jÔ(ÄÇÇcíÚµèÚµ+€üÎÉõë×ÇÙ³gÑ­[7<}ú5jÔàÆ0šLŽfgŸÅ0ì-uB-‡c988 88666HJJBbb"@GG999°±±ÁÝ»wY ð³†aÔ=°€Æcíڵسg‚‚‚ððaþûÜtuuÚÚÚ|õ¦T ·À’§‘GÁÎb˜²ê-õr–Z›ÆÁÁ~~~˜8q"233áéé)ÖxAøäý|)w‘¹à’ËŽ²é¤ü$×\ñVjz¯¥S•~Œ‹õ•ßcuäd¥¥ì,Ò–RV&ÕXÕ«¥³^Ä+WõOê¨àÌ·P~’Ë”›ÜOåâœU*HóF¼ÒÒ’e|ÎÖ½¥^ÎRû™1°dÉ\¾|zzzŸµ/A ‘H°iÓ& :”+ £¼^`y£ÑGÃÎb˜²æ-õr–FLyÞ¢E ìÝ»&&&EÚžˆ —ç?-IKKÃÊ•+Ñ´iSñeÝ Ã¨’ìk¾Š%[ãˆÅ0eÉ[êå,y—bâÏOa×®]¸sçŽXë=vì† ‚ºuëâ»ï¾+RÓÃ0ر³†½Å’‰ŽŽFHHH¡kWªT /^Äþýû‘!µb†aTÅ–âkÖxòä ~üñG´oß*T€D"Á©S§ØY ã·ÔËY¥6°kÚ´)üýýannŽØØXܺu ööö8vìtuu1eÊ”ü ‘°(Fmj¾Å[û‹‹Ã¢E‹œœŒ&Mš€Ú>õbg1Œ¦zK½œU*;…ôŒ‘œœ ,Y²qqq°µµÅ¡C‡Ž#F°(F-j¾%3x¢Y³fHMME\\&MšÄÎb¦¼¥^Î*•bjA`ff†"55~~~b-8""{öìÁ÷ß_h†a”…ŸØßÔåË—GÅŠÙY Ô ·ÔËY¥Ê Š9Ÿ ++Kì“2|øp 8÷ïßǪU«pëÖ-888àØ±c€———Q†Q¥sð;‹aÊŠ·ÔËY¥n*tApàÀ¬X±‰fffذa\\\ ­­7bÕªUðôôDÓ¦MóÙsM1 ó9(š4 ~.;°³FÓ½Å󨕏  ;;;xzzâøñãøæ›oðäÉ 0ÇGRR,X€Û·o£I“&¨_¿>—Q†Q2™™™ÿþ/À½KÒ{¿ODJ¥µ°³†Qž·ÔËY¥ê‰ÝóçÏñûï¿cÖ¬YðññÁ«W¯ —ËqèÐ!ôîÝû÷ïÇ€ýû÷ÃØØ˜K)舸¸¸ÿöÞ¿W¨P¡ÐçS§N¡C‡½ïzõê±³†)V‚‚‚>è-uqV©ìˆ‚ ÀÔÔhÒ¤ ž>}ŠÖ­[ã›o¾ÁüùóѰaC¸»»ãÏ?ÿ„››z÷î ###.¥ £"¾ùæ@ƒ Íݦdݺu ­³±±Á_ýõQûþâ‹/ØY Ã;óçχ££ã;ÞR'gil`———‰D‰D™LmíüC8p AÀâŋѨQ#üöÛo(W®œœœ‚áÇãСC,H†Q1&&&pwwÿèïW«V Æ ÓØãeg1LÙò–ªœ¥qÝÖ­[ÅNÅpäÈ„„„ fÍšèÒ¥ Z¶l ÿýŠÉÉÉâ\O–––8yò$ÌÍÍ¡¥¥Å¥“avÃ0¥ ìÒÓÓáååœ8q‘‘‘èÙ³'†Š;vàêÕ«èÔ©ÆŒƒ¶mÛâÊ•+9r$*T¨€xyyÁÂÂâó2qk" óÖ3f.@u.MLÙ Vç/I{­žy7o 66@~™Ó§OfΜYú…E*¼µ®û¿ Ôg=Ë_ 9+¯t:K Å$JjŒ\.'ãLLLÄ7ß|xzzâÞ½{ðööFRRþüóOÄÄÄ _¿~9r$‚ƒƒ/^`þüù°µµ-r¢¢¢ààà´ºÛ+ïàUQðZª Ío”›ÜëFʲX_ùo ˜©¼´¢â‡¡À•+W`oo¯6þH$AìצPž Éd¥ßYØÀF‰g¼Ž ®²¡ò“l¤Üäè+å¿ oÎ*åŸÖ9_)ÑY€CTés–Ú?±S2>>[·nÅ‹/°qãF 0}ûö£WsssxzzbõêÕØ±c´µµ1lØ0 :R©úúú\ea˜2ˆ²_½ÅÎbF•ÎRëy숉׮]ƒ³³3RRR §§‡Æ#""Íš5Ñ#GÄÖÌÌ žžžhÑ¢üýý±nÝ:àÉ<†ag1 S&Pë'v‚ )) ýúõðaðpáBñoصk:vìˆîÝ»ãÈ‘#ò‡ {xx@WWݺu÷Ã0 ÃÎb¦´£öož¸yó¦Ød¡¨å*Ú›-,,pìØ1üóÏ?èÒ¥‹¸MõêÕ1mÚ´bètÌ0 ÃÎb†»bãòåËHLL„¥¥¥8ä_Q›•Éd°°°@DDž?ŽfÍš‰Ûñô ð³†áÀNͰ±±AåÊ•ñäÉÈd2Ä«¥¥™L†7"((ZZZxðà_U†aØY Ãp`§Ž4iÒñññX»v-´´´ är¹(Ë'Ož <<D„sçΡfÍš|U†ag1 S&QûéN¬­­±fÍ :FFF˜4i’8?øûûƒˆ`ffÆM ð³†áÀNÝ„ƒƒzôè???À‘#Gpýúu. ð³†áÀN(Øé¸ ýû÷‡ hܸ1:wî,¾³1==¸té×€†ag1 £±”ºyì‚”H$8þ<¢¢¢`dd[[[4iÒ 6ÄÝ»wѦMÈårdeeañâŸpá~ýõW‚À¥‚avÃ0Ø©‚ @ìÞ½...èСâããQ­Z5|óÍ7øõ×_‘““ƒ   ̘17FLL ÂÃÃQ§N. ð³†áÀNj¿/_¾ÄÏ?ÿŒŸþ>>>HNNFDDþøãhiiaÉ’%xøð!8KKK|ùå—°²²âÒÀ0 ;‹aìÔ­ö««« ]]]Ô¯_`ff†¾}ûB&“!((={öD½zõ0zôh. ð³†)5hüà ¹\þNçaCCCÈd2ìÛ·O\W¡B´oß·oßFll,_y†aØY Ãp`§.dddä€DApïÞ=>>زe òòòpêÔ)Ô®]»è‰ÿ° ¨cÏw S¦iüïRdþ|jÔÏYZËŰ³Êг4&°“ËåH$xþü9œ±wï^ôë×yyy°¶¶ÆÀQ®\9899AOOžžžÈÉÉAÿþýqúôiäåå!77†††\†ag1 S*шÀN!ÈØØXL˜0uëÖÅÒ¥Kˆ‘#G"==qqqppp@ÕªUáááAàããƒÌÌL ::::ÐÑÑá+Î0 ;‹a˜R‹F žPÒÙÙ6666l ðÕW_aÓ¦M¨P¡‘˜˜055Å÷ß,^¼Xì´Ì0 ÃÎb†;“‘‘qãÆaĈX¹r%Zµj%¾F§U«Vؽ{7<ˆåË—ãÁƒ¢('NœˆãÇ£B… |¥†ag1 Sêш¦XA““ƒvíÚ‰ë®\¹‚ÈÈHœ8qýúõÃÚµkñÃ?@xyyÁÊÊ &&&|…†ag1 SfЈ'v999HJJÂ¥K— ???xyyaõêÕÈÊÊ‚››N:…;wbýúõX¿~=òòòøê2 ÃÎb¦L¡Oì*W® tëÖ Û·oGBB~úé'ôèÑvvv¸|ù2áááƒÂÔÔÚÚÚ|u†ag1 S¦Ð˜7OtéÒ÷îÝÚ5kpïÞ=øúúÂÎÎD===4nÜiiiprrBݺuÕ+ó'·*?ÍcÊO“vïPn‚‡•Œñ[£”žæÖÃÊ/>×ÙeÛY Wöý¥OF¨ ÍãÊM3|«òâl}ÆÎâÀî#©U«Ú·osssq ر#? ¨V­šzfœ»RØE—‰Àî»±l; ¨ vGUæ å¦y¨Œvì¬ÿG£Ÿý‡††âܹsÀ‰'Ô[’ ÔyØY Ãp`÷nݺ…Õ«WCGGgΜA£Føj2 ÃÎb†;MÄÆÆÁÁÁÐ××G¥J•øJ2 ÃÎb†;Mμ™™™ÒÒ’J¥ùÿyxëÓ7~“Ü-b§{Ý"føup§hiRNVÑÒLºS´mŸ|ú6i@\ÑŽñ¹T¤í²Ó²ð<ªhÛFÅíÔ¤½.ú¶ÉE-ïEØ6åß³²²À¨‘³èVÑv@i)s°P€"¦wû3ˆˆuû¿Ù¼y3ÜÜÜøD0Ìÿ`Ó¦M2dŸvð³8°S_RRRpøðaXYYÁÀÀ€Oü]c–J‘€®]»òØY ÃÎâÀŽa†a†ù$| †a†a8°c†a†a8°c†a†a8°c4¹\^êŽé}]UK²û*)í|ˆ„„dgg«¥¸?öø‰Hünzz:RRògG¡ÄΣ H$Ø´i†Z¢åM‘ÿ—/_"99™oB†ÅÎR[g±·8°Ó8A,¬Ož<)¶›±à¾=z„/^àñãÇÅž---ÀôéÓ1`À8::b„ ðóóSÙy-(œ8q/^¼øÿ ^?æF’H°{÷n|ýõ×ptt„‡‡‚‚‚@Dâõ)îZoZZV®\‰¦M›–híT"‘ 44]ºtAëÖ­1xð`¬Y³F-~Üv;‹ÅÞz÷¤3‚\.'"¢]»v‘££#ÕªU‹\\\èÏ?ÿ$©TZ,û %[[[rtt$;;;Z·n]±ÇòåË©J•*töìYº{÷.¹¸¸P:uèöíÛ*=¿S§N¥:uêP:u¨sçÎäííMIIIµí‰'ÈÐЖ-[F±±±4räHª[·.;w®Xò¶sçÎBççèÑ£Ô£G2d½xñ¢DÏËéÓ§©|ùò´bÅ zôèyzzRÍš5éĉ|S2ì,v–Ú9«¬{‹; ãôéÓT®\9Z±b%&&ÒØ±cÉÊÊŠNž<ùÙû>þ<Óºuë(11‘þøã.^¼X¬Ç0eÊZºt)ö+VÐøñ㉈(%%…ÌÌÌÈÓÓ³XòE  ‡Šë®\¹BUªT!ccczüø1Éd²97ëׯ§~øˆˆž={F5jÔ ±cǾóË0ì,v–:8«¬{‹; ÃßߟF-ÖêÕ«[aýóÏ?©GDDôÏ?ÿP:uÈÝÝý³òû¾·gÏž4{öl:uê•/_žV¯^MDDR©”¶lÙBqqqJ? z…ì IDAT¯Ë—/Ïãž={¨|ùò´fÍ1_™™™ÿyŽ'L˜@®®®”œœLæææôý÷ߋߋˆˆ [·n}Vþ^¾|IDD7nÜ ›7oQLL ™šš’««ëžïÏeîܹԫW/JLL$ ‹BÇvøðaºzõ*ߘ ;‹¥6Î*ëÞâ>vÒ?EAbb"’““‘””ôìÙSìëqäÈܸq£ÈûÖÖÖFݺu!•JѶm[´oßk×®"::ºÈý@ÂÂÂpåÊÀ„ víÚaÙ²e3f àÁƒؼy3K¼Êûúcjßo³yóf255¥˜˜ÊÎÎ×ß¼y“¦NJ 4 kkkrpp fÍš‰ýUòòòJôüN™2…ªW¯Nþù'=}ú”ˆˆ–.]J-Z´ yóæÑõë×)66–ºuëF-Z´ ÜÜ\qÛ#G޾¾>­\¹Rln "JNN¦Q£FQÛ¶mÉÚÚšzôèA&&&tåÊ•"]ÅuÊÌÌ,ÔÑ|Ë–-Ô³gOòôô›8¢¢¢H„Ïî#JzzzÔ½{wªS§µnÝš/^Lr¹œ&OžLíÚµ#333êÒ¥ U­ZµHÇÆ°³ØYì¬âr{‹ûØiQQQT¹reZ¿~}¡º/^¼ 1cÆP‡¨FÔµk×O.¬×¯_§jÕªQ@@eddˆë³²²héÒ¥¤££CÍš5£fÍšQ5Š|#,]º”úôéCDôŽÓÓÓéáÇLÇ×RIpôèQ233£óçÏ¿ó·Å‹S¿~ýHGG‡œœœ¨M›6b¾sss)//|}}iâĉDD”‘‘Añññ@§OŸ&"¢;wîÐüùóiÇŽEúa)øC¶ÿ~êÒ¥ uëÖFŒ!þ}ûöíïˆòêÕ«Eîë#—ËéÅ‹dggG .$"¢ÇÓÆÉÎÎŽ~ÿýw""JLL¤5kÖÐ(!!oR†ÅÎR‰³Ø[Øi$¤¶mÛÒëׯEq(jtÿþ}Z±bíÛ·þùçŸOÚ÷Þ½{©aÆ”šš*®+؉õÚµkF»wï¦|rÞûš6m5mÚT\¯aff&ÅÇÇ¿³]I×zµ»-ZP^^ž˜ÞÛ#Û.]ºD $“ÉH.—···7YZZRll, >œÚ·oOÖÖÖdaaA‹/.¶|îß¿ŸÊ—/O>>>´oß>ªY³&õéÓ‡’““EQöéÓ‡† V,·322ÈÑÑ‘ÂÂÂÄuééé´aÃj׮ʧv`ØYì,v{‹;fË–-T±bEñ‘vAµ°*jUǧ&Mš¼wØù?ÿüóÉ#Õ>$·øøxªW¯ýòË/…ÖÇÅÅÑСC?YîE=Þ‚9r„ŒEI+Ž]*•ÒñãÇߥ•——GgΜ› Þ¼yC=zô Š+Ò Aƒ(44”^¼xAÓ§Oÿìy ž={F:tk¡iiidaaAzzzÔ¼ys±)&88˜ $ŠóS~ÄÞ>72™ŒhÔ¨Q…Ö'$$™™…††òMɰ³ØY*q{‹;¢`ß„‚¼zõŠÚµkG>>>”––FDùÖ_¿~MÞÞÞï},ÿ±ûNHH ªU«Ò¬Y³ ­OII!ooïO ^°f¸}ûvúõ×_içÎâpy???j×®M›6222èÖ­[ôõ×_S§NJ´¶[pßÅ—‘‘Aýû÷'wwwºs玸>55•\\\Þ™ÀR&“Ñž={È‚¼½½Åõ7nÜ(ô½áÇÓðáÃ?ë˜ ^«mÛ¶ÑÍ›7éÉ“'dmmMãÆ£ŒŒ ²´´¤^½zÑ£GÄrò±¤§§ú|÷î]JJJç›:uêÕªUë5gggÚ²e ߬ ;‹¥Tg±·8°ÓHA*nª‹/R`` mÚ´I¬Í¬]»–zõêE“&M¢´´4zúô)͘1ƒjÕªUhòÇí[!‡¿ÿþ›V¬XA«W¯ÅNZZZäëëKwîÜ¡ÇÓ¬Y³ÈÌÌŒîß¿ÿÉ‚ôññ!333êÞ½;uêÔ‰úõëG/^¤¼¼< ¢zõê‘™™5hЀŦ„’˜Ç¨à>ýüüh̘1äááA.\ ¹\N ¾}ûRŸ>}èÀtüøqêÒ¥ 5kÖŒrssßùaÉÌ̤ýû÷“M¡Î¾r¹œÎœ9C'N¤Š+Òõë×?9¯¹¹¹b~ žOE-ZD}úô¡×¯_ÑàÁƒI„Oþ‘YµjyxxˆÍT»w寧U«’ uíÚ•8@DDdiiInnn@^^^dddD÷îÝã–ag±³”æ,övƒâ†(ØGb×®]dddD={ö¤ÚµkÓ!C(""‚är9mذڷoOåÊ•£æÍ›“™™Ù;¿ï¦ ¥Ê•+S»ví¨OŸ>T¥Jº|ù2å?â¯Y³&ÙØØPýúõÉÂÂâ£;ÑôéÓÅZ¯•••X#_ºt)P»víèøñ㢎?NW®\)ÑNÇŠGþDD?þø#U©R…æÌ™C}úô¡N:‘¿¿?Éår:}ú4yxxPùòå©E‹Ô¡C‡B¥###EÉ+D¹wï^úòË/i„ DDôäÉš9s&5oÞœbbb>)Ÿo×$>L#Gޤ¹sçz²áëëKŽŽŽb­ÕÇLJN:õÉÂ:zô(YXXÐĉ)**ŠhÆ ´{÷nš5kÕªU‹öîÝKDDçΣ6mÚPÇŽ髯¾¢èèh¾qÙYì,v–RÅÞâÀN#PÜpׯ_§ü‘¤R)ÅÄÄP­ZµÄYÃÏœ9C†††Ô©S'±ÀÊårÚ³gýý÷ß”˜˜øŸûŽŒŒ_CVVV@DùÍ‚ ‘‘‘(¯¤¤$º|ù2_½z%þpåw|ÖÖÖ¦#FP£F¨_¿~âìöáááÔµkWúöÛoiĈdhhøÁ2ð¡ägÏžQNNEGGS­ZµÈËË‹(Ö¨Ÿ>}JóæÍ# Ú¹s§XærrrèÍ›7|ã²³ØYì,¥8‹½ÅF 2::šA y󿉵ñ†µ¶¶¦o¿ý–þ{çVÅñ¾ý{ pè*"bT𤰡Ø+ÖÄc0±~1öĈ• öX°DEÄ‚¨D 6»ˆ ¥?¿?|Ͼ¬ çs]\zæÌÙ¹§=óLp09:: vû¼íÚ—.]¢¦M›Rxx8ÿyÆŒTQQAwîÜ!CCC7nM˜0dóò:QQQÔ´iSJLLäÃŠŠŠ(''‡žü(¬wïÞÔ²eKÊÏϧ²²2}óÍ7”––F¾¾¾4fÌ>=B(/_¾LšššRÛÝÃÂÂèøñãôøñc²°° ƒòBاOZ½z5UWWói“xÌo×®©««Ó”)S¨¤¤„^¾|I^^^äééIãǧ±cÇ’±±1ïvá]ÉË—/“žž…‡‡ÓW_}ED¯œgvêÔ‰÷SU»q‹ˆˆ '''Z·nà: ¡¨¨ˆÜÝÝiÚ´iu~/YN›:uªÀðüÉ“'ï¼LÃ`šÅ4‹iÖßÕ,¦[¬c÷¯#++‹zöìI¡¡¡¼FFFÇqtöìYª©©!+++ ¢GÑôéÓ)  A…µ¼¼œ‚‚‚H__Ÿ7P7oihhЩS§¨¨¨ˆúöíKS¦L¡#GŽÐœ9sÈÖÖ–ŸÖµ+ïÉ“'iÈ!ôÅ_³³3ÙÚÚ F$UUU²¶¶¦Ž;~ÐdD¯ÜŒ7޾øâ Ú´iõïߟôõõù]xdaaA¿ýö¹ººRPPÿLUUU”™™IšššEYYYtìØ1jÕª9’^¾|I/_¾¤™3gRß¾}ÉÅÅ彌rïÞ½K¦¦¦u.…ܹs‡ÌÍÍÉÓÓS~ÿþ}Z°`Á;Ù§H(..&'''Ú»w/–––F?ÿü3Ó¶mÛ())‰ŒiÚ´iì$ Ó,¦Yÿ¨f1Ýb»%/^¤Ò!C(44”´µµFºçÏŸ'255%]]Ýw:§ººšBBB¨yóæ4uêTÒÓÓLóïØ±ƒ<<<¨U«V¤¯¯ÿ^GîH„îøñã4`ÀRUUå@VWWó“——G7nܨsK|cQ{$øüùsš6mP»víÈÊÊŠ=z$˜yøâ‹/¨sçÎÔ£GÊÌ̤ñãÇóÓöIIIdffÆûÞ’Œ MLLhÆŒ‚g_£ÜC‡‘««+åææòùTûîܹC¦¦¦RBù¾3OŸ>¥–-[Òœ9s¨¬¬ŒV¯^MööödmmMþþþ$++K³gϦ .ªª*Íž=ûƒÄ`šÅ4‹iÓ-Ö±ûW#©µ+ùsç¨ÿþ¤®®.åPQR ÓÒÒ•¼¾k×5Í=dÈâ8Ž6nÜHDB¹¹¹tëÖ­OÉ×® QQQÔ¥K^$N:Eƒ¦€€:sæ Ÿ¦×+õ‡>rgóæÍtüøq*(( ©S§’‰‰ -Z´¨N1ÍËË£ššºyó&qÇÛï\»v,,,èСCAüý÷ßIOO²³³ÿöè}Á‚dllüÆ|ÎÎΦ:­­m£äÍ¡C‡ˆã8²°° &MšÐ‚ ø‘ûùóç‰ã8ÊÍÍ¥””ãSÓ,¦YL³þ ÍbºÅ:vŸ¼@J*ÖÝ»wéæÍ›üèêæÍ›Ô¿êß¿?¿Äñº 5ôÚ·nÝ¢ÌÌLÞk:Ñ+‡ºººü4’뾋½CmQHHH •+WÇqÔ»woÞ öĉFþþþtöìÙžÇäïïO³gÏ&¢W†Ç“&M¢€€ÞÆãõ|•¸øë¯¿HEE…BCCéöíÛÔ³gO?~¼@(Ξ=K:tx¯ão^gÇŽdkkK>¤ªª*©wQUUE”‘‘A;wn°ÃÕ·‘MÇŽ8‡­©©¡ŒŒ j×®Ý;yìg0ÍbšÅ4ëCkÓ-Ö±ûäG¾‰‰‰djjJ;v¤6mÚвeËèÙ³gôçŸÒÀ)$$„7’}×k'$$……YZZ’§§' 8B:::tóæM)Ñ{"""HUU•¢££iÆŒdhhH®®®¡6l988PffæGÉÓ×ÅGEE…ÒÓÓ¥„rýúõ|¼ÚÓõ’´Çq´xñb:räµk׎ƎK;vì GѬY³ÈÜÜœòòòþvÚoÞ¼I***4wî\AC$y¦{÷îQçÎéòåËå`ñ9sæP»víÞ:ËÂ`šÅ4‹iÖ§ YL·XÇî“àÂ… ¤¦¦F«W¯&"¢ï¿ÿž”””øcPÒÓÓiðàÁäããS§CÌ7 Å… HKK‹bbb¨¸¸˜vïÞMÇñnª««©ÿþ$##ó^W×ÔÔÐÓ§OÉÎÎŽÖ®]ˇ?xð€ÌÍÍÉÍÍ^¼xAD¯ì=æÏŸÿÑ*÷ëÆÙÆ £¯¾úŠ_ryòä M:•iÏž=”››KK—.•2´ýùçŸI^^ždeeiÆŒtìØ1êÛ·/™™™Q«V­ÞÉ«}Cˆ‹‹#‘HDË–-“úîÛo¿¥N:5Š ¿‰ÄÄDš6m©©©±%L³˜f}òšÅt‹uìþ1~ýõW);ÄÄDÞUÀ;wÈÄÄ„FŽ)ˆ“––F#Gޤ{÷îÕ{í­[·òÂ*aÿþýäááAD¯¦­ iìØ±R¿:t(]»ví½ŸËÛÛ›7Æ•pëÖ-RUU¥¾}ûò~’jmó¡ó900~üñG>lóæÍÔ®];*((àÃ=zD+V¬ ªª*ºtéµnÝšæÏŸÏOí/Z´ˆÔÕÕ)==rrrHII‰¦NJ>¤;wîÐÙ³ge9£6ÕÕÕ´zõjâ8ŽBCCiÆ ´qãF û(‚uõêUòðð ooï÷:#’Á4‹iÓ¬©YL·XÇºštttÈÁÁApîßîÝ»ÉËË‹.^¼H4jÔ(~yá·ß~£óçÏÑ›8>|ø DÝ»w§Ã‡ FR=zô ÒÒR244¤#Fð׎§øøøwz†ºÄ­ººšfΜIݺu£œœ~ä]TTD...Ô¤IêÑ£‡ þ‡ÈÛÚ=z”"##©yóæw~~~R PígKOO'{{{ZµjMŸ>455ËIYYY¤¡¡A|—ÕñãÇÉÝÝZ·nM:t ¾}û~4Ázðà 1a0ÍbšÅ4ëSÖ,¦[¬c÷$Ñ+¿LmÛ¶%ggg~ý?33“¼¼¼HSS“† "¨´AAAÑ ÑâùóçiüøñÔ£G~TII µjÕŠ8Ž£ñãÇÑ«¥ˆÊÊJ=z4EDDð#Ów¢„„Z»v-mÙ²…JJJ¨¼¼œ:wîLtõêUzñâÕÔÔÐСCéøñãd``@‘‘‘$okçÍåË—»ãòòòhÖ¬YäããC:t ñãÇS—.]xãëºl[ÒÒÒ¨}ûö$‹)66–—ŒÜ¯^½J†††oœ‰h,^¾|IÅÅÅTZZJeee¬"1˜f1ÍbšÅ`»OÉh©¢¢‚Z·nMÎÎμMÅòåËÉÀÀ€Ö®]K·nÝ¢ÂÂBš9s&5kÖì­Ë µ+zZZ3†zôèÁûzÚ¿?Y[[óË999ôÍ7ߎŽeee½ós|õÕW¤®®N>>>¤¥¥EtèÐ!*//'rvv&²³³£Ö­[See%Ó”)S=Ok?ûÌ™3É‚lmmÉÌÌŒ¢££ù|ùò%}ÿý÷ÔµkWâ8Ž,XðÆëfdd­­--Z´Hp,ÍëË3 Ó,¦YL³¬c÷™Q»"Kþ_^^N­Zµ"~êxÞ¼yäééIšššäääÔ g›’ëÕ™ž9s†ÆŒC^^^tôèQ"zå5ÝÈȈÌÍÍÉÚÚšÌÌÌl<+¹vMM ]¼x‘ôõõéøñãDôʃøÄ‰©W¯^tâÄ ª¨¨ ¸¸8š;w®`díïïOS§Ný`yüË/¿®®.;wŽÙsG7nÜäÿƒ(::šLMMßzètZZÙÛÛÓ¼yó¤<¤¿ë8 Ó,¦YL³¬c÷HI…ÊÏϧÒÒRÞçSm¡,,,$¢W[Ã;F)))o6¯íóééÓ§‚Uééé4zôhòòò¢cÇŽÑ«)ò¤¤$:{öì[Ïh|“pèèèv8åææÒ Aƒ. $ܼy“&OžLZZZTÉsKþ9s&?ºÿí·ßH]]~úé'Á¬ƒ„¼¼<òööæ=Ë¿íyiÖ¬YeƒÁ`šÅ4‹iƒuìþ#ßÝ»w“««+µoßžÆÏï«-”ï²¼¶@îÚµ‹lll¨cÇŽäââÂû\º|ù2/”ïêOŠˆ(99™/^LÞÞÞN;wî¤ÒÒR²³³£ÿý§OŸ&999ºrå ÿÌ¥¥¥´aò¶¶nÔ]QµíSÎ;GD¯ü-_¾œRSSIQQ‘Ö¬YCDDeee´páB)îÔ©SgÖÅ™3gÈÓÓ“Í`šÅ4‹iƒuì¯ìE”””hùòå”@ãÇ'+++Ú¹s'/”mÚ´¡¶mÛ vžÕ7â«=š;p੨¨Ð‚ èæÍ›äééI¶¶¶ü.³Ë—/Ó¸qãÈÞÞž7„ 6©©)ÓøñãÉÑÑ‘ììì($$„¾ÿþ{ ¥˜˜>þõë×ÉÆÆ†wZ;ÍOŸ>m”|ƒiÓ,¦Y Ö±ûLxöì :”æÏŸOD¯¼‡ëéé‘ YYYQbb"?J³³³“r4ù:YYY4kÖ,^ŒúôéCDôêcccjÑ¢™››óŽA/\¸@S¦LÔ¾‰¨¨(jÒ¤ mÛ¶?Lº¨¨ˆâââÈÃÃììì(<<œ|}}iäÈ‘χ(_OkÖ¬!Ú¾};¶iÓ&êÚµ+ÿyùòå$''Gû÷ï§¼¼<º{÷.ùøøƒƒƒ ]åååü2ƒÁ`šÅ4‹Á:vŒóâÅ Ú±cåææÒãÇÉÊÊŠFMýõ……ïQým”––’““‰D"š:u*=zôˆ.^¼H)))ôäɲ°°àm6\\\¨C‡´oß>^„¾}ûˆã8GvɨûåË—O>>>4uêTúõ×_ÉÆÆ†ÜÝÝÉßßÿƒ:ò¼~ý:5Š)..Žˆ^¹SÛ×Tii)-Z´ˆTTT¨M›6Ô®];êÒ¥ËGs0Ê`0ÍbšÅ4‹Á:vÿ!jÛTUUñË’dtt49::R~~>Mž<™ ÈÉɉž={öÖ]Keee4iÒ$ÒÓÓ£aÆѤI“øí–-[ÈÃÃ_Bøúë¯I^^žºwïN%%% ~†K—.‘¥¥%-[¶LpX³ä¹ž?N¡¡¡Ô§OAC Iû‡p€)¹wvv69’zõêE{öì¡Ý»w“¿¿¿TüÌÌLJII¡'NðÂø¡s2L³˜f1Íbü[Ñ`D"öìÙƒ°°0„……!##ÊÊÊ€ââbÈÊÊBVV–;aÂìÝ»ªªªà8Np-"|nÚ´)¦L™UUUãþýûX¶lîß¿YYYddd ¸¸P]]ØØXlÚ´ ŠŠŠ Nûöí±yófÄÇÇ#66wîÜáÓZUU„††âĉ¸w磌«¡  ŽãPSSÃ?[cAD‰D¨©©±±1f̘mmm$$$`Û¶m¸rå bcc±nÝ:=zÈÉÉ££#\\\ ##ƒêêêFOƒÁ4‹iÓ,Æ¿Ž^¯­ŒzùóÏ?ÑŒ ¡‡ IDAT­[7ôêÕ =‘#G‡>}úàÒ¥Kpuu…››***pîÜ9¤¦¦¢U«VRש©©H$ÂÓ§O!‰ ®®Î·zõjTTT@KK [¶lAëÖ­áåå…;w"55æææ8pà233affö^ÏqáÂL˜0~~~2d UUUX¹r%Ž9‚|쬮®†ŒŒ  ´´ÇA,ãÆX²d ’““‘——///\»v rrr(++ƒŠŠ Nœ8‘ˆI ¦YL³Œ×‘™;wî\– õΈˆ¹>xðUUUøùçŸ1`ÀÈÈÈ`üøñ077‡§§'ºuë†Û·oCEE?ýôÚ´iSwošãpëÖ-XZZ"==999pqq¼xñ‘‘‘øöÛoallŒ¤¤$ÂÞÞVVV(--ņ кuë÷~®æÍ›£cÇŽX¹r%^¼x–-[BMM /^¼ÀÒ¥KaeeOOÏš¯‘›3g–/_ލ¨(˜˜˜ÀÎÎ;vÄí۷ѬY3ôë×+V¬ÀÈ‘#1`ÀŒ3†1¿>£À`0ÍbšÅ4‹Á:v¬c÷FD"~ÿýwDFF"==EEE tíÚrrrG«V­àíí øùùAOOï×}òä ¢££¡¨¨ˆ3gÎ`ÿþý(//‡››¿l1cÆ TWW#-- ?Æ´iÓ ]]Ý¿ý\µ…²²²-[¶Äˆ#pïÞ=lÛ¶ "‘HÐ@4¦@J®¹{÷nÌ›7aaa "Ìž=zzzpssC»ví––†ÔÔT”––¢cÇŽ——ç—XØè—Á`šÅ4‹Á`»w®Ì©©© B³fÍpýúuœEëÖ­ahhÈÛË|lûœÆ¤öN²´´4üùçŸÐÔÔ„‘‘:vìˆÜÜ\$%%AGG¦¦¦€Î;ÃÊÊ þþþ|zØRƒÁ4‹iƒñvXÇÿ'™H$­[·pÿþ}ÁÂÂNNN8xð ®]» AMM úúúPQQ»»;444Åv¤cÇŽøé§Ÿðøñc´nÝ***ÿú¼•ˆÜ—_~‰9sæ`çÎHHH@ff&ÜÝÝáèèˆ?ÿü‡‚®®./”mÚ´á}U1£cƒiÓ,£áñYR— Dbb"µhÑ‚ÈÐÐfÍšE< ›7o’—— 8Nœ8ñA—Μ9CžžžôäÉ“uþ¾xñ‚ÿÿÎ;ICCƒRRR¨  €bcc©ÿþLyyy”••EãÆ#;;;:wî›Gg0˜f1Íb0ޓϲc'±¹~ý:íܹ“ˆˆ®\¹BÚÚÚôÓO?Ñ«ãvdddx›”¬¬,òóó#:uêÔMßË—/ÿÕùOcÆŒ¡ììl""Š%Aœ#GŽPïÞ½iéÒ¥DDtêÔ)Z²d ;?‘Á`šÅ4‹Á`»wÈ‹/Çq´fÍ"":|ø0¹¹¹Ñ+ccSSS1b„`„|õêU ¤{÷î±’S>$###RWW§©S§RNN=z”èîÝ»‚¸3gΤ:ÔûŽ Ó,¦Y Æ»ñYÔÔÔ@FF—/_†³³3fΜ‰±cÇ”••!''‡“'OÂÅÅX»v- 11‡†¥¥%¶nÝŠ-Z°5üzPUU…»»;”””PRR‚+V@GGÄ„ pûöm>®››PPP 4üü¾¨ ¦Y ¦YŒÏϪc'‰ WWW„††báÂ…üw’ñáææ†¨¨(¾²îÚµ û÷ïGEEš4iÂJÍPPPÀ¬Y³ ¦¦†²²2Ü»wëׯ‡ ôôôŠääd¤¥¥aéÒ¥PQQœ;É`0˜f1Íb0ÞÙÏíËËË¡¢¢SSSܽ{X´h-Z„/¿ü/^DëÖ­‘––†æÍ›cåÊ•8|ø0Nœ8Á²233¡¡¡fÍšŒÑ¯_?hjjBEE[·n8::B,ÃÇÇfffPTTÄñãÇÙ‘; Ó,¦Y Fcñ9®?_¸pìííiåÊ•4}útÒÒÒ¢¤¤$""Ú°aùùù‘ŽŽÙÙÙ‘©©)]¸p-Ú×Þ={ˆã8òôô¤¯¾úŠßu·ÿ~jݺ5åççÓîÝ») €&OžLOŸ>¥'OžPnn.¿ËïC{g0˜f1˜f1>8¢ÿçåò3ãÂ… >|8nܸ¨¨( 4ˆÿîéÓ§xüø1ª««¡«« 6¨‡+W®ÀÓÓíÛ·Gnn.LMMÑ­[7 0ÑÑÑÈÏÏÇÊ•+±yóflß¾ššš˜7o 2 ¦YL³Œ¿Çgë ¸yóæprrBJJ ôõõahhUUU€¼¼|fff^yÌgö) Ó,¦Y ëØ}P¡œËÂ… ±{÷nV?þüóOôíÛFFFPPP€¾¾>¼¼¼ðã?~”rñ1êÍëiðàæÎ‹Ë—/ÿ#y^YY‰   <{ö +V¬ÀæÍ›ahhÈ #ã“D–eAã±XŒsçÎáÖ­[055e™ò7puuÅË—/!'''èØeffbÒ¤Iï}ÝèèhüWŽI¾~ýú=°|áÂ…F¯^½Xü‡9}ú4ÜÝÝadd„Q£FAOOwïÞEjj*V­Z… &|ÐrQVV™þœ‡|~ðà¾ÿþ{˜˜˜ }ûö=ßoݺ…;wî`ýúõ6l+ˆ Ö±û\ÈÉÉAjj*V®\‰™3g"..ß~ûíGMCMM *++Ñ´iÓÿDžr‡&Mš4ú¬¬ì§è×îô~¨wð_éÿÛY°`ÔÕÕqþüy¨¨¨¾ËÏÏÿà墮ºØ˜¼|ù õÖϪæååTUU?è}ˆååå——g…½å„Q7l)¶‰‹‹ƒ‚‚ÂÂÂлwoÄÅÅñßUVVBCC£ÎÑ^QQäåå1}út>¬¼¼033ƒ¼¼< 1cÆ TTT_ H„ððpÄÅÅÁÊÊ òòò8tèà‡~€££#´´´ ‹agg‡ÄÄÄ:+Éĉ¡¥¥ôêÕ ÷ïß—²§€û÷ïcذaÐÕÕ…¼¼<Ú¶m‹7¾5oakk+ó÷÷‡H$ÂÞ½{ù°³gÏB$ñÏ𺛛öïßÛ·oC$A$IÙÊUWWcÁ‚Ð×ׇ‚‚ºwïŽ[·n â¼nc'¹ÞÒ¥K±nÝ:˜ššB^^;wFZZZƒÞÿ7ЧO4kÖ 000@ÿþýQTT$¸GLLŒtE¬#¯àÉ“'†ªª*´´´0yòd”—— âÔeKõìÙ3Lž<——‡¹¹9"##¥Æšš¬\¹ÖÖÖPPP€ŽŽ|||páÂ>]¥¥¥ˆ‰‰áó›Ùóýsܺu VVVR:ÐÒÒzc¹ØÃ:u &L€––ÔÕÕ1zôhTVV¢°°ƒ†††4551cÆŒ—ÓÚìÞ½~~~hÑ¢äååaff†ùó磦¦FÏÍÍ ÖÖÖ¸pá\\\ ¨¨ˆÙ³góßIlìŽ?ŽÎ;†ʗؘDDD I“&RZ5jÔÕÕ¥4óuŽ;†®]»BII êêêèÝ»7²²²Záææ ‚H$z«ý_FF\]]!‹a``€ `ãÆRöˆFFFð÷÷Ç¡C‡`gg±XŒ¨¨(@vv6‚‚‚ ¡¡EEE888`ÿþý‚ûÔgãX—mríüvtt„X,†‰‰ ¿·±qãFtëÖ×~+++¬]»V§gÏžõ®R988 S§N‚°Í›7ÃÖÖb±šššèß¿?îÝ»÷Öròõ×_¿SY€Ÿ~ú &&&‹ÅèÒ¥ ’““ë´ålhÛËfì>£Ž]@@”••1hÐ lݺiii°³³ƒœœ±cÇDEE FÓ»víBEEúõëÇ7¶HIIÁèÑ£aii‰ŒŒ ,_¾ׯ_ÇÎ;¥„)>>áááÐÒÒ‚‘‘`ÕªUèÕ«BCCQQQ­[·"((ûö탯¯¯@¸0xð`ØÛÛãøñãðóó“š{üø1ìíí!##ƒ‰'B[[û÷ïÇðáÃQTTôÆ¥Q|ùå—(..†²²2ˆ)))‘‘Arr2üýýÉÉÉ‘‘““S×ùæ›o0}útÜ»w+V¬()) â,^¼222˜>}:ž={†ÈÈH 8gΜyë¬ß–-[P\\Œ±cÇ"##ˆììì7ÎòUTT G¨¬¬Äĉ¡§§‡{÷îá÷ßÇóçÏ q}³u…ÃØØ‹/æ—Û Ã×í‘^¼xWWW<|ø£G†¡¡!RRR0kÖ,<|øË—/çã>111ðõõŨQ£PYY‰äädœ={¶¶¶ˆÅˆ#Ð¥KŒ5 ˜yÁ?ˆ‘‘RSS‘™™ ++«·Î´ÖU¦ÂÃÃѼysÌŸ?©©©ˆŽŽ†ªª*’““aff†E‹á÷ßÇ’%Kжm[„††¾µœÖ&&&***˜6m”””pôèQ|ûí·(**Bdd¤à:OŸ>…¯¯/ú÷ïÁƒCWWWê>mÚ´Á÷ßo¿ý£GF×®]ŽŽŽpvvƼyó°}ûvŒ?^Pûí7ôíÛ÷³ŒGŽÌÌÌðÝwßáÅ‹X½z5œœœžžŽ–-[b̘1Ð××ÇÂ… 1iÒ$têÔIÎ×¹ÿ>ÜÝÝ!##ƒ¯¿þb±ëׯG“&M¤òŽã8\»v  À˜1c0zôhXXXàñãÇpttDYY&NœMMMlÚ´ øí·ßлwï÷šy/,,„ŸŸBBB0pà@lß¾cÇŽE“&MÞ:`[»v-Ú¶m‹Þ½{CVV{öìÁ¸qãPSSƒqãÆúõë‡Áƒóíž„ÜÜ\œ={?üðƒ`öùÛo¿EHHF…¼¼<¬^½...¸xñ"?;ú¦rÒвöóÏ?#<<...˜6mrrrðÅ_@]]‚î»´½Ÿ,ÄhÒÒÒˆã8Ú·oUVV’®®.Mž<™“””$ˆ#Á××—ÌÌÌøÏ±±±$##C)))‚xQQQÄq>}šã8Ždee鯿þ’JSYY™àsee%Y[[“‡‡váÂâ8ަN*ˆ;tèPâ8޾ûî;>løðáÔ¢E *((Äíß¿?©©©ÑË—/ëÍŸóçÏÇqtàÀ""ÊÈÈ Žã(88˜ìííùxdkkËþã?ˆã8:qâæççGÆÆÆR÷ĵ²²¢ÊÊJ>|ÕªUÄq]¹r…2dñŸsrrˆã8ÒÖÖ¦gÏžñá{öì©ó½ÎÅ‹‰ã8JLL¬7Žä111Rß½ž×ÄqõîÝ[oüøñÄqeddðaFFF4tèPþó¼yóHII‰nÞ¼)øí¬Y³HVV–îÞ½KDDÇŽ#Žãe´.”””×güs>|˜deeIVV–húôé”””$(ïõ•‹7Çqäãã#ˆçèèHÇѸqãø°êêj200 77·7–SÉ5sssù°ºt`̘1¤¨¨Hååå|˜««+qGëÖ­“ŠïêêJîîîRúQWÝqtthÑŽ;¤t£.:tè@zzzTXXȇeddŒŒ 2DJ[ÞT¿%„‡‡“H$¢Ë—/óa¤¡¡A"‘HW-[¶$Žã())IpÉ“'Çq‚6 ¤¤„LLLÈØØ˜jjjêÍÿútS’ßË—/çÃ***¨cÇŽ¤««[gzS{BDäííM¦¦¦ü碢"’——§/¿üR/22’D"¯=·oß&Z¼x± Þ•+WHNNŽ.\Ø rÒ²V^^NšššÔ¥Kª®®æãÅÄÄÇq‚rö.mï§ [ŠmÄÙ:mmmx{{¿š ••EHH¶mÛÆO wëÖ ZZZؾ};ÿ»ÂÂB9r!!!|XBB,--aaaüü|þO2eüÇîíêêŠÖ­[K¥©¶]aa!ž={ggg¤§§óá~ÄU{TÿºíGbb"üýýQ]]-H———ž?.¸îëtìØJJJHNNægæôõõ1xð`¤§§£¬¬ D„S§Nñ#ò÷eèС‚Ù5ggg¯l ßFHHˆÀަ¡¿•üæàÁƒxùòe£•«Ú³µßËëK2µIHH€‹‹ ÔÔÔïÉÃÃÕÕÕü;HLL„H$BDD«ÀÿºwïŽÔÔT ##K–,A=ТE IÛ>|¸à³d™³v¸H$‚­­-²³³ß9µíÊ‹‹‘ŸŸggg¼xñ×®]“Šûw—öŒ³gÏ ÒCCC¸¸¸Ôû»‡âòåË ƒššnmm OOÏ7Ö±7qðàA8::¢]»v|˜ºº: T§ ‰‰ <==aû÷ïG—.]àèèȇ)**bÔ¨Q¸}û6þúë¯÷J›œœF-õ9//7¿¨ÚíÉóçÏ‘ŸŸdgg£¸¸ ¬¬ ÄÇÇ ~»}ûv888@__°cÇúöí+Ð(]]]˜™™Iµqõ•“†”µ´´4`äÈ‘‚ÍD„ººº”v¾KÛû©Â:v@uu5¶mÛwwwܾ}7oÞÄÍ›7áèèˆÇãèÑ£ôéÓ»wïFee%_À+++»7n 33ÚÚÚÐÑÑáÿ,,,ÀqžQñ–•…ìììЪU+ : o݉__¯+ü]ËdzgÏàêê 555Ì›7ß„táÂ̘1Cʨ½1v6ª©©¡gÏžˆ‹‹Ãœ9sðÛo¿¡¢¢ƒ úGÞË»îØ¯+zÆÐ”†pëÖ-xxx M›6X¾|9 ФIüþûïX¾|¹à½úûûC,#>>ˆ‡H$BPP =á8¬³Ü½n7]W½kYkH›ð¶¶÷õÁëØý‡‰‹‹ƒŽŽÖ¬Y#õ]bb"vî܉µk×B^^...hÖ¬¶oß''';v sæÌüÆÌÌ —/_F·nÝÞ;M‰‰‰‹Å8tè`£Æ/¿ü"ˆ×²eKÔÔÔ ;;[0¢¹yó¦ ž¶¶6”••QUUõÞéêÚµ+***°eË3P\\üÖ÷djjФ¤$J-I|*ùÍh’ç’äŠãÇ£  »víâÍ$ƒÙYÆÈôôôЭ[7Áðʾ£v^K:y"‘ˆß&¯¢¢---œ8qB¯®„Ÿ~ú©Î÷âããSïo‚ƒƒ‘ššŠ¤¤¤:G¹’Ñ|ß¾}ADou_¡¨¨ø^KrŒÆ§>‰=X]Ëw³ŽHt§ölIEEÅËxCPTTP¿9…´´´ð¿ÿý'OžlÐl]³fÍСCÄÄÄ–¯\¹‚¤¤$ç€w¡GHMMœ’QPP€¸¸¸积¯/Î;'ØÉ_ZZŠuëÖÁØØ˜×NÉònmM©®®Æºuëê¼nUU•À½IEEo^óº;ª·½×çÏŸcãÆu>SHHD"-Y²DnnnN"‘ˆrrr¤¶í‹D"Á¶ýÒÒR8p ©««Çq¼ëIÜ×]Ôåf$,,Là2EgéÒ¥ouERŸ+“áÇ“™™)((¦¦&yxxбcǤ¶ç1‚ÔÔÔHEE…úõëGOž<‘º‡ä=eeeQPP©¨¨¦¦&Mœ8Qà2¢.·×_ý5™››SÓ¦MI[[›œiÙ²e·ÕÕÕôÃ?¥¥%5mÚ”tttÈÏÏ.^¼Èǹví¹ºº’X,&Žã˜ë“ƒÒðáÃÉÒÒ’”••©iÓ¦ÔªU+š4i=yòä­îND"]¸pAORÖž>}* #eeå·º;yÝ…ÇéÓ§ÉÁÁÄb1éëëÓÌ™3)))Iª»¹¹‘µµuÏéææ&pC!q=deeErrr$‰¤\ŸH\¢x{{¿Sž=z”œI,“ªª*õêÕ‹²²²êÔ¡†¸;!"ºt鹸¸¼¼<Ђ x·Kyyy‚wäïï_ç5²³³)((ˆÔÕÕIAAìííiÿþýuÆóôô$yyyjÖ¬}óÍ7täÈ©üvuu%kkkJOO'GGGRPP cccZ³fMƒžiïÞ½Ô¾}{RPP Z²dIï_ AƒH$‘——W½×ܱcuíÚ•”””HII‰Ú´iCááátãÆ•“†–5"¢Õ«W“‘‘ÉËËSçÎ)%%…lmmÉ××÷½ÚÞOŽ˜õ4£.]ºÄÅÅ5xôËøg044„··w½Ë/ ÆçÀå˗ѱcGÄÆÆ¾uGì?ÁäÉ“’’’ÄnÕÍÍ ‚›Ï™ššhkk£oß¾ >}ãß³±c ¬¬L*lÅŠ‘‘y£(Æ?Oee%òó󥎓b0>7¢££¡¬¬ŒÀÀÀ<-¯»Iyúô)bccáììÌ6#ý”——K-çþúë¯(,,ä‹û/Álìøßÿþ‡ .ÀÝݲ²²8pà<ˆÑ£G£E‹,ƒ>Q:„mÛ¶¡¬¬ ,CŸ%{÷îÅÕ«WðððOâpx¸»»£uëÖxüø1~ùå”””Hy@øØ|® t©©©˜2e ‚ƒƒ¡¡¡ôôtlذÖÖÖ7,ÿØR,GŽÁwß}‡«W¯¢¤¤-[¶Dhh(fÏž-ðÔÍø´èÖ­nݺ…±cÇbæÌ™,CŸ%ÆÆÆxüø1¼½½Ëï ý'™={6~ûí7Ü»wÇÁÖÖÿ¨ www<}úô³\ŠÍÍÍÅĉqîÜ9@SS¾¾¾X¼xñrµƒuì ƒÁ`0þ#°éƒÁ`0 Ö±c0 ƒÁ`°ŽƒÁ`0 ƒuì‹°°07ê5ÝÜÜàîîξ}û6D"bbbõ>sçÎý¨›âãã¡©©)8NE$!<<ü?_N>Ö;ml6mÚ‘H„;wî|2õ£¡ .ÄîÝ»=Ÿª««‰' ŽþÏõo)'¢ì|ªÏþ>üݲèíí 333,Z´ˆ)ôgP^Ö¬YóÁJ+W®„ªª*úõë÷Ùi×Çj÷>Fy:t(®-ƒuìê%::×®]kÔk>|¸Îƒ×›o¾ùFÊæ‡êØíÝ»ׯ_ǨQ£>Ëròú¦q###¼|ù²A‡Œÿמýcuì`ôèÑˆŠŠBII SéÿxyY³f 6mÚÔè马¬ÄÊ•+1bÄ©ÎÌçê âcµQMÓ¦M1dÈ,[¶ŒU4Ö±«YYYÈÉÉ5ú5ee?œÏçÒÒR€ŒŒ š4i"5ºùbµqãF8;;£Y³fÿ‰†§®S6Þ•&Mš0ÿ~oiÿݲˆòòr$$$° e¼ûöíC~~>‚ƒƒÿÏ#ÑÿO¹ú#77üñ+ÜŸcÇ®¸¸“'O†‘‘äåå¡«« ///\¼x‘óº ‘ÄvjéÒ¥X½z5Œ¡¨¨///ܽ{555˜7oôõõ!‹ñÅ_ °°Pp߆Ø/ddd ,, &&&PPP@³fÍ0|øpâIlVþúë/ 0èÚµ«à;þ%ŠD(--ELL D"D"†ŠãÇC$a×®]R騲e D"Ξ=[oZËÊÊpèÐ!tïÞ½Þ8»víBÛ¶m!//¶mÛâСCüwüñGƒï/±{ÉÉÉA= ¤¤„-Z`Þ¼yR¿­©©ÁŠ+`eeèééa̘1xöì™ ž‘‘üýýqèÐ!ØÙÙA,óç©nܸݺuƒ®®.äååaee…µk×¾µlÕgc—€6mÚ@AAÖÖÖØ¹sçËØºuë`jj yyytîÜiiiR÷ÊÊÊBß¾}¡©© têÔ {÷—™™‰nݺA,ÃÀÀ ,@MMMƒë‹äÖN{]üðÃptt„––Äb1ìì옘(”zÊ"ðÊIè¸qã`aa±X ---^¬_GGGíÚµû ³ÐŒ¿Ç©S§Ð©S'(((ÀÌ̬Þ3ŠRÇŒŒŒpõêUœ8q‚// -((À—_~ kkk(++CUU¾¾¾ v°»k×.×i+Êq–,Y"uŸòòrDDDÀÌÌ òòò044ÄŒ3¤läÊËË1eÊhkkCEE¥Þ<hhh0MhHþ¿øPcÆŒAbb"ÂÃÃѦMäçç#%%YYYèØ±£ r¿ÎæÍ›QUU…É“'ãéÓ§ˆŒŒDHHœœœššŠY³fáÆX½z5¾üòKüòË/‚ë½Í~áÈ‘#ÈÉÉÁðáá§§‡+W®`ݺuÈÌÌÄ™3g¤â¡U«VX´h‘`¤ö}bcc1bÄtéÒ…_2555E—.]```€¸¸8)Š‹‹ƒ™™ºtéRoZ/\¸€ŠŠ ØØØÔù}rr21~üx())aÕªUèÓ§îܹ ¸»»¿Óý«««áíí ,Y²@DDªªª†´£GFLL † †É“'#;;?þø#.^¼ˆ””~DÊq®]»†`̘1=z4,,,¼2ÆmÛ¶-z÷î YYYìÙ³ãÆCMM Æ× Y) ¿ÿþ;BBBо}{,^¼1bZ´hQgyزe Š‹‹ù†!22ÈÎÎæÓž™™ '''`Ö¬YPTTÄöíÛÑ»wo$&&òùùèÑ#¸»»£¦¦³fÍâ;¯òòò ª+IIIèÓ§Ú¶m‹Å‹#??Æ ƒ¾¾¾TÚW­Z…^½z!44غu+‚‚‚°oß>øúú¾±,Àùó瑚šŠ@__999øùçŸáææ†«W¯JeccÃDüãÏ?ÿ„——tuuñÝwß¡²²ÐÑÑ‘*/ ©c+W®Dxx8”••1{öl€®®. ;;»wïFpp0ŒñèÑ#DEEÁÕÕW¯^}ë*ÂéÓ§ëÕ®ªª*ôèÑöööXºt)>Œ¥K—ÂÔÔcÆŒÇq Edd$ ¡®®ÎÿvïÞ½(..–2ÇX°`D"fÍš…ÇcÅŠèÞ½;.]ºÄ×ÇcÇŽÁÇÇ:uÂܹsÁqßNNNF§NÞªÿïÚ†¼®[µßSii)ºuë†ÇcòäÉÐÕÕÅ–-[pìØ±:[XXôéÓýúõCBBf̘kkkx{{ó¤¤¤`ôèѰ´´DFF–/_Žëׯ Ž#FŒ@\\GGG=z~~~õ¦ßÆÆ)))¬"¾ ú¢ªªJáááoŒ3dÈ222â?çääÇq¤««KEEE|ø×_MÇQ‡¨ººš0`5mÚ”***ø0WWWrww—ºfLL öòåK©´lÛ¶8Ž£ääd>,""‚8Ž£JÅ—|W%%%:t¨Tܯ¿þšäååéùóç|X^^ÉÉÉÑwß}÷Æ¥~ýú©š=_åÿ·ý y»ví¢@´lÙ2Õ}ûè£Òý¾½½}ªs·°° jÕª©®Ûºuë(]º4^^^©ÎS×|àÀ½»† –*#F¼ò·=666SúJgg²eÁnÆŒœ?ž‚ R­Z5¾üòK¢¢¢Òý¡{q]¡B…R}Öý,X0Ýõ/ö³{<`øðáäÍ›[[[ÜÜÜ(V¬˜^~/ò®±Ä¼¼¼¨R¥J*9­Y³???}ºoðV7Ýõ/^+݃—òš¼Mújµ:ͺ%JÉýÓ"##yôènnni–gÏžq÷îÝ7º~¿þú+ 6ÄÎÎ'''ÜÜÜ7n*•*Ýûð2týÊ/žæoº&È×]7Ýîº]ºt EQ˜0aBšsÔ5ßܹsGŸ¾î¥¤dÉ’o|ìoºý¶mÛ¨^½:666äÉ“777¾ûî;?~üF×*66–‰'R°`A¬­­quuÅÍ͘˜˜t¯¹.ßåÔÐ/{öŒ5¢óîÝ»ÄÅÅ¥›_¼¼¼Ò×»>cŠ¢0{ölJ”(‘*¿œ;wîŸÑ—]+]~•»t…µ_ýU nݺu$%%ѽ{÷4ûLïºxzzꟳÈÈHzöì™æ¹^¶l iÎ+=½íoÈëž§^æ®”z¹sçNuÝ"##ùóÏ?õ÷K·xyy¥q—Z­N“Ö«Ü%Nx3²e»:P»vm6nÜÈO?ýÄÌ™3™>}:ëׯ§Y³f<|øP.D—AtÆÌÌ,Ý}¾lýÛJ¶cÇŽ9r„Ñ£GããヾoYzÞ_ìw”Ñ·vÇçÆÄÆÆòû￳páÂ×n§ßÇñððÈð5Éhúé¡ÕjqsscíÚµéþÝÕÕõµ×ïòåË4hЀ2eÊ0{öl ,ˆ¥¥%Û·ogöìÙo5ð #¼îºéÒÿôÓOÓ}’R¼†Ü¡C‡hÕªõêÕcñ⟻»caaÁòåË_z/^dèС¬X±‚‘#Gâç积uîÜ9Ýk®û±pqqɱ…:EQô}›âããÉ—/_*g™ê\f»wïR½zuêÖ­K¯^½ þãæêêŠÍKóKÊûþ6ÏØ«òKýúõùþûïÓxôÅ \š6ss<==S5f'''š7oΚ5kèÒ¥ ¿ýösçÎM÷»/^EQ¸té’¾§«ŒÙÛÛ¿ö¹6ÔoHáÂ…ùûï¿3Í]ÜzqæÌ™7r—V«åÒ¥K©ÞÒ½Ê]QQQ”.]ZJn¯óFv;!­V›æu´««+îîîÜ¿Ÿ=zЭ[7š6mŠ™™Ó¦M{íH¢Ì®í¼X«š3gÎ;ï;W®\/ýÌ“'þþþ¬^½šµk×âïï³³ók÷Y©R%,--9~üø;ÛÛ¤¿`Á‚Tb\°`–––4hÐHÑhÒ ƒ’””ôFMé݇GòÖ|Ê•+ǪU«RÅ™úå—_8þ|†®—››õêÕcÉ’%ܺu+ÍßS677kÖŒ£G¦ºGwïÞeÍš5¯=www|||X¹reªæÔ={ö¤‘½îš%%%é×]½z5ÝP6/Ë‹æææiòþüùó_ú–áäÉ“øùùåX9«T*:¤wÖ/¿ü‚“““AõbhÒ¤ ›6mâÚµkúõÿýwª0GoûŒ½M~Y·n7nÜx£ãõóóK7ŒÐë*Â/Ò½{wþúë/>ýôSÌÌÌÒÌb¡cÕªU©j¯_¿ž[·náïï@åÊ•ñôôdÖ¬Y鯤{±‰!~Cš6mJtt4[¶lIUÙz±0ý6/:vìHtttºûˆÕOM©I?oÞ¼7>—S§NQ£F )¹å´7v?¦@tèÐ *`ggÇÞ½{9qâ:t nݺ :”_ý•gϞѭ[7êÖ­«ïÃõ®¼ªiÖÁÁ:uê0cÆ ñððà§Ÿ~Ê”´+UªÄÞ½{™={6îîî+VL?ð’›CÛ·oÀW_}õFû´¶¶¦qãÆìÝ»7U¸‘Œœÿ›¤ommÍîÝ»éÕ«U«VeçÎìØ±ƒqãÆéßÚÔ©S‡?þ˜©S§rúôi5j„……‘‘‘¬_¿žyóæÑ¶mÛWc“&M°´´¤eË–ôïߟ§OŸLÞ¼yÓ-H½®¹}Ê”)´nÝšš5kÒ«W/>|ÈÂ… )W®\†ƒŠ.\¸ZµjQ¾|y>úè#Š-ÊíÛ·9räÑÑÑœ>}€Ñ£GJÓ¦M>|8¶¶¶|ÿý÷)Räâ}M:•æÍ›S«V-z÷î̓X°`eË–Mõ#Õ¢E fÏžMÓ¦M àÎ;,Z´ˆ%J¤Içey±E‹„††âèèHéÒ¥9räûöí#Ožo²9öË/¿d×®]Ô®]›Aƒ‘˜˜È‚ (W®\ª|ð6ÏXåÊ•Y¼x1_ý5žžžäÍ›—>ø€-Z0iÒ$úô郟ŸçÎcíÚµ+VìºÀ´nÝšÐÐP"##Ó4¾MšæÍ›“'O}Wž—u È“'þ9ºuësæÌ¡D‰ú*•Šàà`üýý)[¶,½{÷ÆÃÃèèhöïߣ£cªÖûú Iyîü1 , €áÇ“/_>Ö¬Y£o~Ó;R®ïÞ½;?þø# `ÿþýÔ¨QFÃ… X·n?ýô¾¾¾x{{À¢E‹xôè~~~ìÛ·Ë—/¿´¢÷ðáCZ·n-%·7¸ÉÙŠ„„eôèÑŠâàà ØÙÙ)+VT¾ûî;eüøñJëÖ­•k×®)¶¶¶Š½½½¢ÕjEQ”•+W**•Jùæ›oRíoÿþýŠZ­V"""R­ QÔjµròäIýºzõê½64Ftt´Ò¶m[ÅÉÉIÉ;·Ò©S'åæÍ›i†wñÅŠZ­Vîß¿ŸæuKÉ?ÿü£Ô­[W±µµUT*Ušp Š“““âää”n—±qãFE­V§ o  w’^H™"EФêâué÷ìÙS±··W¢¢¢”&Mš(¹råRÜÝÝ_’åûï¿W*W®¬ØÚÚ*Š···òÙgŸ)·nÝJu,-[¶Lwû­[·*ÞÞÞŠR¬X1eæÌ™ú{š2<À›ÜSEQ”ððp¥téÒŠ•••R®\9eóæÍJ»ví”2eʤÙöÅ<¦»ž/žë•+W”ž={*îî¥¥R°`A¥U«Vʆ R}ïܹsJ½zõ¥`Á‚Ê×_­,_¾üÂ(Š¢lذA)S¦Œbmm­”+WNÙ´i“Ò«W¯4áN–/_®”,YR±¶¶VÊ”)£¬\¹ò­òbLLŒÒ§OÅÕÕU±··Wüýý•þù'Ý<³xñbÅÎÎ.UøˆìŽV«ÕûHGJg,XPùè£ôßÙ½{·röìYƒçÁƒ•Ê•++VVVJñâÅ•¥K—¦›Þô»}û¶Ò¢E ÅÁêPKL IDATÁAQ©Túç->>^5j”âáá¡ØÚÚ*µk×V~ÿý÷4Ïä«~ \]]Ó„5éÕ«—booÿF^Õ1xðàtÃ,¥ w®)yóæUråÊ¥´lÙ27ua>Úµk§¸¸¸(ÖÖÖJÑ¢E•Î;+û÷ï#ÿ¿éoÈ›øLç¥-Z(¶¶¶Š›››¨DDD(*•J9vìXªmË—/ŸæxÒsEbb¢2cÆ ¥\¹rеµµâìì¬T©RE™®_¿N‘"E(T¨… Ö7eÄÅÅ1kÖ,~ÿýwêÖ­›m‡QoÚ´‰{÷îÑ£G·¾Ž“&MbÑ¢Eú¾ï+ý¬zí“’’Rõ=ƒäXMgÏž¥^½zÒ,ð–ìÚµ‹Ë—/3vìØuÞâ¬ÌgäÈ‘<}ú”ððð ï#..ŽÕ«WÓ®]» Ø2et"Ržï’%K(Y²¤ÉÌ‚••Õ;Çu•¦Ø,ΩS§ggg%888Uôþû÷ï+Têׯ¯äÏŸ_iÒ¤‰âææ–ªI5;qôèQeéÒ¥JÁ‚•J•*™lúYù]TT”âéé©|ñÅÊ’%K”‘#G*666Ї‡‡òàÁ©> â¬,È;w”5kÖ(mÚ´QÌÌÌ”3gΤû½¬þÆ®iÓ¦ÊǬ,Z´H™:uªR¶lYE­V+aaa’ ²(Ù6ÜÉ­[·([¶,;wÖ×hpvvfƌܿŸ-[¶P´hQÊ–-û΀M•ï¾ûŽÕ«WS±bEV¬Xa²é¿É<»¦Š³³3•+W&88˜»wïbggGË–-™6mÚ+#ß ‚8ËtùóÏ?éÖ­yóæeÞ¼yT¨P!Ûµ6@òÈØàà`Ö¬YƒF£¡lÙ²üðÃtèÐA2AE¥(F cþž cРAܺu +++4~¨øÅ‹ß(2¿ ‚8K„¬D–ïc§ütöiÞ¼9>>>Lœ8‘GaffFRRÏž=cÉ’%F‰%‚ Îá}’¥ßØ)Š‚V«ÅÌÌŒcÇŽñ×_aaaAƒ È—/K—.eÛ¶m/^œÏ?ÿœøøxæÍ›ÇÚµk9xð`ºóÞ½Œ{÷î±{÷nŠ)’)Ó| Bv#66–«W¯Ò¤I“; ˜8KÄY¦ š,…nØzÊÎÅŠƒƒƒÒ¼ys¥X±bJ×®]•={ö(Z­VY¾|¹òÁ(¹råRªT©¢¸»»g¨ÓñêÕ«@YdyͲzõjé½,Î’Eq– žx=º>'çÏŸgÍš5|ñÅ\¸pQ£F1}út ÀáÇiÒ¤ ·oß&66–Þ½{Ó«W/¶nÝŠ‹‹  ÌÐ$ĺŽÊm·-×ïšfðœ?íFü s26!ÿ wËÐvSFÄ4'w†¶]FŸ·ÞæØˆõTÓ>Cém›ŸÁŽÁ{G@à N—Ñh1‡F@í ¦é•Á4ß2Í›Cp7éÔŸ œõ.Þú¸J sJdðBOÉ`š`ÎäŒmä<1Cۆ·Þn÷ôÖ†÷ǵ Þ¿G@i;+#n¾ÿ7lÍ~ÎÊ2; OŸ>¯¯/“'OÆÊÊŠÛ·oÓ¡C ÀÕ«WéÕ«Íš5C­V3mÚ4´Z-­[·¦U«V.~‘ ð¶‘}¬3°ß|Û.·UÆ·µ÷µÌØv¹Õ”Íà¶y(ôÖÛXæ¶!o¡Œd>ß f„Üßöi3UnpË`š…3˜¦mn(ìûNÏŠê²®³ÞÅ[¾öt–yÆ·¥BÓtß nëì–±‡Ë2·-ξØ6£x<Îàý°È ŽL3_F3|ÆÝœÝœ•% vŠ¢`ffÆ™3g¨Y³&ãÆcܸq4nÜwww´Z-ƒÆÏÏÐÐPþúë/jÖ¬ÉôéÓ‰‹‹£S§NòK#‚8K„lM–«R©¸yó&Í›7§aÆLžü¿wçkÖ¬ÁÒÒ’'OžðàÁºvíšüÂÁÖ–ªU«RµjUj×®-wZq– R°3?~LÅŠqttd×®]Ìœ9“îÝ»óèÑ#xòä Ë—/çöíÛ,^¼kkkƇ‡‡ÜiAÄY‚ d{²L;///&OžÌ¬Y³øá‡X»v-»víbÏž=T­Z€+Vжm[jÖ¬ÉÓ§OÙ±c‡I a.g„4J>ͶM¯h@eßd™Ã§YÒiV @ȹÎ2†·òÁ“m Ÿfá€jÙßîFH³Œ8K‡I¿±Ó…ØÓýëããÃðáÃIHH`Û¶m 6Œ è¿_¹re.\¸@xx8gΜÁ×××$Σ¼1 ve²Á®X@•œ!cˆ¹šH2';ËÞ2JÁ®­ìÞ R°3&&ûÆN]¥RM||<...T©REß_寿þb×®]4mš<(?11[[[*Uª$wVq– 9“~c§V«Ù°aõêÕ£C‡Ô¨QƒÙ³gãââBPPjµš+V°{÷n,,,äŽ ‚ ÎA v¦†J¥âÔ©SôíÛ—#FpêÔ):wîÌĉùõ×_)W®Ÿ|ò VVVÌ;—}ûöÉÝAœ%‚ìLÐÐPnÞ¼™jÝÕ«W©S§C† áÚµk¬X±‚€€š5k@ÅŠ6l  T©Rr7Ag ‚ ;c£Õj5jíÚµãÎ;úõæææÄÅÅqúôijÖ¬IÆ ùî»ïˆˆˆàĉTªT‰yóæ‘?~¹›‚ ˆ³A‚±©V«¹víOž<¡]»vܾ}€âÅ‹аaCêׯϒ%KP«Õh4ÂÃÃÙ¶mF¦0Aœ%‚` ;µZMRR–––œ:uŠ{÷îѾ}{îÝ»G™2eð÷÷ÇÖÖ???®\¹BLL ãÇçðáÃtéÒ333¹‹‚ ˆ³A0r¸]hsssEÁ‚3gÎP¾|yZµjÅöíÛ1bOŸ>%""‚qãÆQªT)þý÷_¶mÛFÉ’% ~Ì»Hž;%å0N¬:A0¿‡Á±°ÔëžÇdûÓg B寰ä%%qÙÓYF+ØéxÜ¿qttäܹs”/_žæÍ›³cÇÆOtt4/^ÄÊÊŠÂ… ­JSÀ]!§S- mãOÁäìMœ%Y˜2iƒß:+²Ÿ³ŒúÆN¥R±e˾ýö[bbb¨U«Íš5£Y³fzQ6k֌͛7“?~él,‚Qg ‚`ê­J¥bçÎtíÚ•?üñãÇ0zôh6mÚ„¥¥%çÎãÑ£GÔ¯_?ÕÈ3Aq– ‚ ì=zĺuëøì³Ï1buêÔ!""+++Æφ ô“­­­yþü¹Ü-AŒ†8K)ؽKKKZ¶lI÷îݹsçõë×§uëÖ¬Y³OOO‚‚‚ÇÊÊŠãÇS¤H¹[‚  q– R°ûEA«Õ ÑhHJJÂÆÆ†† R¨P!¶lÙ‚££#_ý5¥J•¢X±b<þœùóçóèÑ£T–AÄY‚ F,ØArì§-[¶Ð«W/zõêÅÙ³g±··àÉ“'˜››cnn®ÿî!Cغu+ŽŽŽ¨TªLõ«> ‚ ˜’³Ä[‚ ˜lÁN¥RqîÜ9úöí‹••111T­Z•ˆˆ>øàNŸ>M=ð÷÷gÅŠ|øá‡899ešuBŒŽŽæþýûܸqCî¾ &é,ñ– &W°KÙ”””D@@ÁÁÁlÛ¶Ï?ÿœÎ;†?ýô ¤páÂìß¿?ÓyªÕj6nÜHóæÍiÖ¬-Z´ 88Xr€ &é,ñ– á½Æ±S«Õlß¾7bffƳgÏô;v,Ý»wG¥RѹsgªV­Š¢(¨Õ™[ÞT©T=z”Þ½{3kÖ,š4iBDDýû÷§B… T­ZUr‚ &ã,ñ– &U°ÓM»säÈzôèÁ|Àµk×8þù„   .]ºDhh(Ó¦MÓ×v!9¸§¥¥%¥J•ÊTIëŽC¢ææ”(Q‚¸¸8j×®M³fÍøî»ï ÁÇLJŠ+JŽ„ˆ±%ÞÁd vŠ¢ðüùs̱cÇhÓ¦ Å‹§wïÞ¨Õj¾úê+Ôj5;v`Ĉ™š¾®i䨱c¨Õj*W®L¹rå0`K—.eÈ!L:µZM||<¿üò 111T¨P33³Wîÿãà›Ïp7苆Ͻ§Ç}J×®]™1#ùUØÍ›7Ù²e žžž’!êLÅYâ-AŒ^°Ójµ¨Õj}‡c•Jņ 6l… "::š®]»2tèP,XÀ AƒF­VS§NŠ+F`` >¸gf…‹‹ mÚ´ÑËQ«ÕbmmM`` 5âÊ•+(Š‚¯¯/… ’œ ÙSw–xK„Ìâ­›b5 jµšÈÈH6oÞ ÀŸþÉ€ â·ß~c„ ̘1ƒC‡áééɼy󈉉aÖ¬Yüúë¯É%Ê÷ H]ÓŠfffÄÅÅ¥’ºNžåÊ•£uëÖ|øá‡"GAÈæ˜²³Ä[‚ µ`§Ñh033ãôéÓxyyqóæM ¹Y lÙ² 4ˆ«W¯2mÚ4z÷îMÇŽQ///fΜ‰……E¦NŒ²Ÿ üo4YÑ¢E¹uë‹/N>Éÿ—ãýû÷Y°`çΓ;/9¤PgJÎo ‚ð¾yã*¨V«ÅÌÌŒ3gÎP«V->ûì3€½½=ÿüsš6mг³³¾dŠÎo ‚ð®Î2xÁNW ^°`»wïfñâÅDGG¿—ƒ´´´ä‡~ fÍšÔ®]›O>ù„… ²zõjjÖ¬‰½½=]ºtáìÙ³ 4ˆ–.]J®\¹$g B6áîÝ»Lž<™þùà1àLÍYâ-A2ÃYáC©WªT‰Y³f1a¬¬¬2íÀRNЭ«UÿðÃôêÕ‹Ù³g³|ùrüýýILLÄ‚6mÚP©R%’’’°±±ÁÝÝ]r• d#<<<¸uënnnœ>žÏ>ûŒZµjQ¼xq½$ ,øÞKÃ#~†Ü/ü”†€2’‰…Äá°ä%%ÏbÞk’–––ú )gn0g™²·FDBîL7y„ÃÉ08õ‚³b³Ž³ ^°2Uºšîúõë?~|ˆ¹¹9ÏŸ?§^½z4nܘ °nÝ::tèÀòåË%— B•cÉ’%_ú÷‹/šláN¼%9“Ù³ghÒÎ2z;@¾|ù>|8^^^Ìš5‹Ÿ~ú €Ö­[…-[¶äûï¿G¥R‘””ľ}ûøóÏ?IHH\&Y]·0(ÅÒá…¿›"â-Așԭ[7·LÍYF}c§ë—R¹reT*ÁÁÁ|ûí·h4üýý™3gcÆŒA«Õðï¿ÿ²lÙ26nÜÈÁƒ3e’nAŒKÿ_tX™øñŠ·AHé-Ss–Ñ v:9êF…éb9­X±‚9sæ`ee…¿¿?jµšP²dI¬­­‰eçÎxyy½qZ†1+ÂÛ“ pxᳩêÞ··ÄY‚u¼ejÎ2JÁNïI¥RƒV«ÅÅÅ…jÕªaiiÉ’%K˜>}:*•Š&Mšð÷ßsèÐ!)P oœ–F£ÁÌÌ €k×®‘””„‡‡G¦&!cX6/|~ , &&†7n°eËþûï?† †ƒƒC–÷–8K²–·LÍY/Ø¥ â¹yóf&Mš„¢(ØÛÛ³xñb*V¬È AƒX´hÓ¦M#!!&MšÐ¨Q£ ¥¥䨱cÙ¿?—/_¦]»v”+WŽ!C†Hî#cýBÁîUÑå¾ùæþý÷_ yv‡7²aÃT*=zôxo;CyKœ%YÏ[¦æ,ƒ¼ë×õ5IJJB¥R¡V«Ùµk=zô ]»v¬[·+++zôèÁÞ½{©P¡ƒ ¢xñâ|ñÅìß¿?CéêBÌ›7ï¿ÿžo¾ù†£GòøñcæÎËÅ‹%w ‚‘Ñ5iè–W5kDEE¡ÕjÑjµh44þÿ… ÊòÞg BÖó–©8Ë ;µZÍ?ÿüÃĉ¹|ù2ÁÁÁŒ9’   œ¹té·nÝbРAìÛ· *зo_üüüðôô|§ô¯]»FPP5kÖäâÅ‹lÚ´‰1cÆP²dI‰%%FFפ¡[L¥ÁјÞg BÖñ–©u’0HÁîùóçôíÛ—éÓ§³hÑ"nß¾Íøñãiܸ1÷îÝÃÏϦM›rýúuÜÝÝ5jÛ·oÇ××—©S§¾U©VWËNÉßÿÍ£G8xð ;vä›o¾¡_¿~ÄÇdz~ýzþùçÉ¥‚`Äš¯}ŠÅT:"Ê[â,AÈÚÞ2µÁ)Ø™™™Q¹reÜÜ܈‰‰aêÔ©8;;S£F öìÙCøê«¯¨U«.\`Μ9<{öì­: k4ýH²M›6qòäI†Ξ={¨W¯sæÌaàÀ@r‚5kÖè;2 ‚`Üš¯)Õ~ á-q– d}oåˆp'º‘cú `eÅÈ‘#ÙµkOž<áñãÇ|ûí·|ú駘››söìYží&L˜ÀgŸ}FîܹQ©TüöÛo˜™™¥ 1 ‚Ýj ö)Úlµ€'g0¦·ÄY‚µ½e g´`§V«¹|ù2+V¤N:øùù1nÜ8Ê•+ÇÈ‘#Ù±cnnn,Z´ˆ={öP§NÊ—/Ïùóç9yò$Å‹Ïpú·nÝ¢Fx{{ë;k4J—.Í„ 6l þüÔ©S333’’’077—œ*FÀÚlR”O¬5†—¤1½%΄¬í-c8Ë ;HpïÞ=V®\ÉáÇiß¾=mÚ´¡[·nŒ=šÕ«WsïÞ=¶lÙÂÓ§O™>}:ÎÎΩšB2Rã¾s玾ÿ‰………¾VËíÛ·)^¼8ݺuÓo§ÑhD‚`L YƒEŠÞ æ ÀSÇ¡½%΄ìá-c9ë¥Õ÷±S///>Œ••ýû÷§lÙ²\ºt oooþý÷_._¾Ì7èÞ½;Mš4áñãÇ$&&¾•5Mš7@¿~ýxö왾S³®©â¿ÿþcÒ¤IDEE¥ÚNš2ÁÈX‘ÜIE·©'òûö–8K²©·LlôÄ{«öU¨PY³f1fÌ7nL·nÝøàƒ˜7o'NœàÂ… xxxЯ_?:vìøVÑ—S6C¬[·ŽÈÈH¼¼¼([¶,¥J•bذa¬_¿ž§OŸ2~üx®_¿Î§Ÿ~J\\Ü{ (B±xAŒZãÊûò–8K²±·´¦uhïõ}~•*U˜9s&C† !11‘ÀÀ@j×®ÍíÛ·)R¤ˆ¾É!£…º1cÆŠû÷ïÇÁÁ1cÆ0`Àøê«¯XµjŽŽŽ888pøðaÌÌÌd‚mA0%l0©@P™í-q– ˆ·²MÁ R¥J,X°€ÁƒЧOŠ)¼}“Bhh(ÿý7S¦LaݺuüøãlذêÕ«óí·ß2~üxÿüsöíÛ‡¹¹9|ð¾¾¾úð"HA01l»‹­iÖ»zKœ%9Ä[¶¦uh{·_©R%f͚ʼn'Þj6 €¥K—2|øpÖ¯_¿¿?þþþ4mÚ”{÷îÄ„ ˜>}:Í›7çøñã|òÉ':t(Õ~¤Ó± ˜ º¾*ºÅÂt-£Þg Bò–…išA;mT«V-[¶àââòÆÛ9r„0aÂÚ¶m«_ŒF£áþýû˜™™Ñ°aCŠ+Fƒ 4h5jÔÌ'¦Žå ;KÓ:¼·õ–8Kr˜·LÌYïkmýv“ohµZ:tèÀüÁ™3ghÓ¦ sçÎ%wîÜ888pùòeÖ­[ÇÉ“'™D‚…j¾V/|ÎBˆ³!‡{KÞØ½œ”Íëׯ'..ŽcǎѵkW¨Y³&†¾þúkÆOÕªUÓ4]¤üœ^`OEQ2<'í”1ØçN½¿¶´°•Œ.äv„%/)y“qAfѦØ÷á¬ÌöÖˆ û…XÊm  ­dc!±/,yIÉÓ˜ŒïOšbß È¾øâ æÌ™Ã¬Y³=z4aaa4mÚ”]»vQ§NV®\Ɉ#¦L™2¯­IŸ>}š‡R¡Blmm±±ÉXoÇ 9¹)ëk)‰³i¼¤ä¯SбÒÛïëŦX›¬s2ÛYïÃ[s&ƒoɲB§A@ò’’‹§ ¥Œí/¥·dðÄËQ…‡²}ûv¦OŸN¿~ý>|8uëÖÅßߟ;vP§Nâãã9vì^^^/ÝŸNŽ£GfãÆ-Z”òåËHþüù%³ ‚±ÉÂM±™í,ñ– dAoåôp'¯B¥Ráì쌋‹ QQQúõîîîìÚµ‹?þøƒ=z@£F=zôkㇳjÕ*V­ZEdd$žžžüðÚýB„÷€5©ÃXgCÎo Bó–‰9˨»ôä¦Õjñññáøñã\½zEQpuuÅÛÛ›-[¶ÐªU+,,,^àöíÛ´k×???¶lÙÂêÕ«™0aU«V%>>žØØXÉ ‚`L¬þ_ŒºÅÊtÕÎo Bó–‰9Ëh»;/Y²„°°0bccùòË/yúô)ýúõãÂ… ÄÆÆbgg‡§§'?ýôýõ3gÎL>ŒÓ“®Z­æÖ­[üðÃtëÖ3f0`Àøá‡ôDA0&>óÄût–xK²·¤)–Tr=z4ýû÷góæÍ 6Œ.]ºpàÀ:Dbb"ýû÷§AƒT­Z•#GŽP³fMüüü¸yóf9ꤻjÕ*V¬XV«¥N:ÄÆÆÒ£G&NœÈÀxüø1!!!œ={V2¨ “,Ò›ÙÎo B6ñ–‰9Ëàƒ'tÃøEáÌ™3„……±qãFêÖ­Ë7˜>}:‹-ÂÚÚš½{÷²nÝ:"##Q…   ÌÍ͉M3ì_'ÇO?ý”µk×2qâDîÝ»G… hذ!< >>žóçÏ£V«ùä“Oˆ‹‹£OŸ>’AÁ˜X½ FkÖx_Îo B6ñ–‰9Ëà;]­W¥R¡ÑhHHHÐý÷ððà“O>aܸq,]º”:uêÐ¥Ký¶—/_fÁ‚9r„3f¤Ù÷¾}ûX³f 6l zõêúõhµZŽ9—_~I•*UP«Õ:tssóTµfA Œ‰‡;yŸÎo B6ðVN wrøða~ýõW8@‰%¨_¿>7¦P¡B„„„0zôh *Ä Aƒ¨[·.cÇŽ¥L™2¨T*ž?ÎÁƒÙ·o{öì¡T©RiÒxüø1… ¢J•*zé%&&baaÁ¨Q£8~ü8®®®*TH¦ñSÀâ…¯…i–!œ%Þ„là- Ó:4ƒô± ¡W¯^œ:u OOONž<É×_MŸ>}hÕªçÏŸgÕªUúﻸ¸P¾|y¬­­õͶ¶¶ôìÙ“àãã£y–;;;.\¸@TTfffhµZ,,,ˆgÿþýhµZªT©B‘"EP«Õ2 ˜&8*ö}8 o BvôVNkŠ]ºt)C‡eÕªU4kÖ {{{žL£FX²d jµš"EФ.…ªÕ8;;§j‚H9õŽŸŸ 6dúôéŒ=š%Jðüùs¾ÿþ{T*õêÕÓïOš1Á0±¦Ø÷á,@¼%ÙÕ[9©)vûöí 0€Å‹Ó©S'½ÐìííiÛ¶-„„„`aaAçΙ3g—.]ÂÎÎŽ;wêy¾8÷«îóÂ… ùóÏ?Ñh4ôéÓ‡ªU«Ò§O‚ƒƒùôÓOéß¿?666L›6P»vmÉŒ‚`b( X¥þl,Þ‡³Ä[‚½½¥ä¤¦Ø PªT)ž?οÿþ«¯ÁjµZ¬­­iÒ¤ ...üûï¿tïÞ“'O²}ûv6oÞŒ……III©yçÎ}-wìØ±|þùçäÍ›—Û·o3~üx‚ƒƒñ÷÷gäÈ‘äÍ›—N:1vìX’’’øí·ßÞ(â» †%ÎFÅó\jýg£2Ú±d¶³Ä[‚ý½eLg¥Ç{}cçííÍêÕ«1hz[•í?Ç–—÷þ!©ú»¤']AŒOÄc–â³Æ¨’Ì g‰·!çxËØÎ2xÁ R¥J©DÙ½{w .L\\ |ùò/ÝvÙ²e 8íÛ·ãïï@õêÕ)V¬IIIÌ;—2bÄnÞ¼ÉÚµkY¶lNNNtëÖí¥ÒÁ4ˆÇšØñâIžõ˜ÞÅYâ-AÈYÞ2g¥ªdZ”Û·o',,Œk׮ѵkW¢££™2e 6ÀÙ³g3f ½{÷ÖË wïÞüý÷ßüñnnnQ´hQ¶mÛÆ²e˰°HòYF‘ BÖ¬ùê–ÄW̨Ϙ1cðððÀÖÖ–êÕ«³wï^£»xKÄ[¦æ,“±‰®ãÞ½{úumÚ´¡}ûö„……ñüùsÜÜÜ?~<Å‹gùòålݺUr— dq’ãAYé—„WH²W¯^Ìž=›îÝ»3oÞ<ÌÌÌhÖ¬¿þú«xK£xËÔœeRÕÄÐÐP>þøc.\¨_W¿~}vïÞM||rð?FMÇŽiÖ¬™ä.AÈâ$7iØè——5k;vŒððp¦M›ÆôéÓéׯ?ÿü3… fôèÑâ-AŒâ-Ss–Q vZ­6ÕçüùóS½zu¦L™BÛ¶mY¹r%]»v¥`Á‚Œ3Fÿ½¼yó2|øp™CQ²ÉM)ä_û]¿~=æææôïß_¿ÎÊÊŠ¾}ûräÈ¢££Å[‚ Ü[¦æ,£ì4¾_ÉÙ³g¹rå ¥K—æÓO?åôéÓ”*UŠððp*V¬H‘"E8{ö,—.]R÷k‘Ђ}j¾¯ªýþñÇ”,Y;;»Të«T©ÀéÓ§Å[‚ Ü[¦æ,£ìEÑ‹mìØ±tìØ‘Ž;R§N‚ƒƒquueÒ¤Ilذ¶mÛröìYŽ;¦7^PPA²&I/¼±KzIí÷æÍ›¸»»§Y¯[wãÆû|^¼%BzÞ25g¥`§ÜòåË !44”£GÒ Aú÷ïÏ¥K—033ÃÚÚš &ÎÒ¥KY¾|9gΜ‘%ÙˆäNÈÿ›Rìe‘ccc±²²J³ÞÚÚZÿwñ– †ö–©9Ë “´Z­>ººZ­&22’¶mÛR¥J"""øñÇY°`Å‹O¬ÓÝÝÖ­[Á•+Wðöö6ÚÍ<6b=–¹mR­+P™bU$§ 9‡a°+,õº'1ÚÕ¶‘±vü_SFÜ£¸t¿gcc£Œ’¸¸8ýßÅ[i95" Ëܶ©Ö¨Fá€j’…œÃÁ08ô‚³ž½½³víÚ•Æ[¦æ,ƒì4¾ãäÉ“T©R J–,ÉÑ£GéÙ³'3gÎdàÀÄÇÇóí·ßÒ¦MJ•*$ò¼ÿ>G¥M›6FËUç´'o!yH„œ@ò’’¿OA@¥·ÞUÝÙÍÉëë¡ÿ|ûÔ VWZœæ{îîîé6]ܼyñV:øÎ ÀÙ·°äY!gS' yIÉåSðÉÛ9«iÓ¦Œ7.•·LÉY`€¦X]¬7mÚÄàÁƒäiz©Q£!!! 8€˜˜<¨ïX¨( /^äÞ½{téÒE2¨ d#â±&[ýÿ’ŽÈ+VäâÅ‹ X¾ Ø2ÝïµoßFÃÒ¥Kÿ'×øxBBB¨^½:ùóço ‚`poÛY/ò^›b6lÈéÓ§ '))‰.]ºààà€­íÿú{ôïߟ¸¸8:wîL077ÇÆÆ†C‡éã=™™™aii‰¥¥¥ä&AÈf$bžJŒ‰/ÑRÕªUéСcÇŽåÎ;xzz²råJþûï?BBBÄ[‚ Å[Æv–Á vZ­–%JðÙgŸ1uêT~üñGìííõ²ÓakkËgŸ}F«V­ˆ‰‰!))‰š5kbff–ª#² ÙÝdÚ)?¿ŒU«V1aÂBCCyøð!ÞÞÞlÛ¶Zµj‰·A0Š·Œé,ƒìEÑ"+Z´(cÆŒaÚ´i¬[·Ž¤¤$Ο?Ohh(±±±xzzâêêʵk×hÞ¼¹~Fä(9¢ækñ»—Ï»heeÅŒ3˜1c†xK“𖱜e°‚]ÊQd±±±¨T*<===z43gÎäСC|HÇŽõÃÿ=z„ƒƒ*•J+J„œSóÃ7vïñ– ïâ-C;ëudš‰EÑGfß¼y3Ë–-Ãßߟ²eËÒ²eK–-[F7nÎÎ΄††²|ùrEŽ‚ci™jJ±D 7Ø@¼%»zËÎz2í]J9®[·Ž‰'2`À¼½½;v,Š¢Ð¯_?ÆǨQ£ˆŒŒL%V‘£ ä<â°B…MªÏ†B¼%»zËÎ2hÁ ::š7²}ûv ,¨_?lØ0T*AAA¨T*úöíËüùóquuE¥R¥’¤ 9¯æk–BŒ†®ýŠ·Axoe«7v/6AäÏŸŸáÇ£R©Ø¼y3õêÕ£I“& :•JÅG}„››-[¶Lw‚ ä´š¯5Úƒ'ÞsGdñ– ™é­„ì2x"å(²'Npÿþ}ªV­Š_|ñ_ý5sæÌA¥RѸqc† B¾|ùð÷÷×ïÇrL¯†ý¶µîmó;@>_ÃÝ¡ÓFÈ>ÉEÊAƒ¦w[µÒàç¸S¹jð4/å/n°´®iî‘‘ýÉ 3x"«y+3œµ{zkp3 ³ÁY ŸäVe»AÓ;¡úÙàçx@©nð4/{z,­O=`R·Mé­l3xB'ÇQ£FѦMz÷îM½zõ:t(–––Q¨P!fϞ͞={ôÛµoßsss’’’ z¢Š¢ ( ?æÞ½{ÀÿúØèþ&‚aIL0'>ÞR¿$&¼¿8pYÉ[â,AÈÞzŸÎ2HÁ.66VÿÿM›6Bxx8þù'Ÿ~ú)<`ĈäÊ•‹ÀÀ@Š+FPPÇOµcñT«Õlܸ‘-ZPµjUú÷ïϪU«¤¯Œ ‘¸XkbŸÙê—¸ØÌoÖȪÞg ‚é{ë}8Ë`»uëÖHTTOŸ>¥\¹rÔ¨Q'''ºuëFß¾}IHH 44///ºtéB§Nðõõ5ꉪT*8@·nÝh×®Û¶mC£ÑðÕW_qôèQÉ¥‚`$’,Iˆ³Ò/I ™Û9«zKœ%YÃ[™í,ƒìnݺÅèÑ£ gÁ‚\½zŽ?Îõë×õßkР¥J•"44€š5k2jÔ(ýÄØÆäܹsôë×áÇ“7o^vîÜIãÆñóó“\*Æâ™%<±úßò,ó$™Õ½%΄,à­gY´`çèèÈ|€OŸ>eΜ9¸¹¹ÑµkW† ÂÕ«Wõß­W¯666 9ÝNzýO._¾Ì½{÷¸uë>>>´hÑ‚ùóç°wï^.\¸ ™U M—bIȼ]g%o‰³!‹z+Á´í v666Œ;–ܹsÇõë× Æ××—|ùòѽ{w:ĉ'øæ›opppÀÉÉÉ('•²Óñ¥K—ˆŒŒ K—.ÄÅÅQªT)š6mÊÒ¥KQ…ðý÷ßsêÔ)é,†&þ…‚]|æí:«xKœ%YØ[ñ¦uh¯ì üçŸâì쌻»;E‹¥sçÎäÉ“¨Q£¶¶¶øûûS¼xqråÊÅŒ:ÝŽZ­&""‚ñãÇ3lØ0\\\(R¤ÎÎÎ*THÊ !!Ù³gsüøq¦N*’ÁÐÄÏ^øüdUo‰³!‹z+δí¥»­[·Òºuk6lˆS¦LÁÜÜœŠ+ÈáÇɕ+Ë–-C¥R1a‚‚‚xþü9 @­V“””d”ѯ*•Š={öЭ[7fΜI@@¹sç`òäÉŒ?žùóç3vìX¼¼¼8vì»wï¦X±b’YÁX5ß”Ÿ3HVõ–8K²°·²Ê»¢E‹’7o^Ôj5[·n寿þ¢~ýútéÒ….]º0iÒ$æÎËãÇ '00É“'S¨P! 9¨1 uŠ¢ Õj9pà `È!<}ú”K—.qðàAJ”(App0‘‘‘¬_¿ž%J0oÞ<< Q„<ž¼ð9ƒdEo‰³!‹{ë¹iÚK V®\9víÚň#øè£xòä ?¦B… Ô©S‡¨¨(bbbèÖ­±±±\¼x‘üùóë·7ä@ U**• 333âââØ°a}ô3fÌà¿ÿþã¿ÿþ#!!aÆ1jÔ(ÆŽ+™SL©æû޵߬ä-q– do™Ø»Wv"ñööfÆŒlݺ † BDD П<‘ðþ»Ì Þg ÂGâ­„œujoLâàà€Y³fÁÛÛŠ¢ {÷î(_¾} “z⺙dƒÆ AƒpöìYU”®®®3f 6lØ€±cÇ¢téÒ2dvìØêÕ«Ë)9‰/Ò½2yX#§xKœ%©·rãPlzêÖ­‹ºuë@¶'ñL?”¡{íØ±mÛ¶ÅðáÃñÛo¿¡V­Z044„³³3LLLðÓO?!66üñGæœÄ¾@¢úÛ>óH{ Â'BàêëZ}CßsÏ28‘‰³bsš·r„³Ž ò¿â¬*i/AøD8µú6N­¾­·-þÙ{Œ¡æÆ}ú`ôèÑX»v-6lØ€íÛ·cРA€-[¶ÀÁÁ÷ïßGHH6nܨ®)B%“󨉳AÈVoåÖY±‚°°0ôïßqqiÉbîÞ½‹bÅŠ¡S§N°¶¶FãÆ±víZìß¿cÆŒA0nÜ8¬[·;wîD5äℜN<ô'OÄçÞ¢ˆ³áôVsVŽnØi4Ì™3ßÿ=RRRP¡BàÔ©SÒ‚ «W¯Ž™3gbéÒ¥¸yó¦úYCCC¹ð!·õ|sù;q– |‚Þ’'voÇË—/aii‰Ë—/cýúõèÙ³'òçÏ+++lݺaaaj´‰‰ Ê”)ƒ‚ ~°•/AÈ„žo.~b'΄OÔ[9ÌYyrZ]¥¤¤ Ož<È›7/QµjUDFFÂØØ¶¶¶8p |ìææ'''lÞ¼qqq’™]r#I”Wþ‹g Â'î-™<ñf"""0cÆ Üºu P @ÀÊ•+‘?~Œ9{÷îÅ´iÓððáCøùùÁÙÙ+V¬Àš5kP²dI¹Ø!·ñòÿĨ{½Ì=§.ÎñVNsVŽzb÷ôéS,X° ðòòBùòåñûï¿c„ 8~ü8Š+;;;¼|ù3gÎÄË—/sss”)SF.4AÈÄC?F%%÷œº8KÄ[9ÍY9ªaW½zu¬Zµ ýúõƒ‘‘"##±hÑ"¬^½5kÖÂÉÉ ·nÝÂ_ý333¹À!7ójW›{N]œ%â­œæ¬cW³fMÌš5 ÿûßÿ4kÖ @Zp²µµ5Ž=ŠæÍ›ãþýû(W®œ\`‚›ÉåyëÄY‚ ÞÊIäÈéXX¾|9lll‰ˆˆ@Þ¼y‘œœ „‡‡‹ Ag ‚ ¤#ON=1;;;øûûÃÇÇ)))ðòò‚™™òåË—vây>Щë¦8gU?@ dÿ!ûÝ—­ÇÛÉ[Ù^Æ“J@¶sÌþì;fp0!CŸLþXl. ²Ë κ &÷!B?À%Óúú¾l=Þ!ÖÍö2TNg¿³feß1ƒï¿¼×E÷2G:+G'PrppÀ¬Y³°{÷nÌ;wïÞUÿ¦(Ê;ï$´Ú\À#ŸqbÓ½ârmIÄY‚ð)z+g9+ÇgÆtppÀ¤I“ˆüùó¿×¾EF£ÁŠ+àéé)×¥ ä‘ö(\÷JÌÕ¥g §歜å¬\‘ò¼N:غu+LLL2ôùô½ÞgÏžaæÌ™¨Y³¦ºX· ’xè?±‹Ïõ%g §䭜å¬\³–.ñç»°aÃ\»vMíõîß0N‰ IDAT¿]ºt••ºwïž¡¡A²¢ç›î•y½ßèèh 6 7F‘"E Ñh=q‡â,AøT¼•³œõÑ.RxöìYüõ×_z k+V §N¶mÛ””¶ˆÄ¯‡&镆]æ­ÏŠ & ** öööcGâ,AÈ­ÞÊYÎúhv5kÖÄüùóQ¾|y„„„àÊ•+¨U«öïß|ùòá‡~H«FD)”8¤MÛÔ½2/ÙÑÑOž^—"àú+b¼ÿÆF®áó_ddFª8K„Œy+g9ë£zb§ä7ß|ƒ5jÀÛÛÀ—_~‰èèhtèÐ^^^ˆŒŒÄï¿ÿŽ«W¯ÂÞÞÖÖÖrµ B6úÿ·ÀÔt¯U€"EŠè½? †††oõºvíš8K„LgÙ²eÿà­œå¬ê‰ÝÇ1eÊŒ5 ~~~xþü9´Z-víÚ…6mÚ`Û¶mèС’’’°mÛ6ËU*ˆ/¿üPµjU½:AZYYém³±±ÁŸþùVû.S¦L®¨q– ä.~ûí7Ô®]û5oå$g} ;’P%K–DïÞ½aooû÷ï£~ýúøòË/ñÛo¿ÁÖÖß~û-æÍ›‡®]»¢M›6022’«T>&&&øöÛoßúý¥K—F·nÝ>в‹³áã÷Ö‡rV®ŠMIIQ§û§¦¦ªÛ;vì,[¶ ÕªUÃøñãQ¸pa899aÛ¶mðòòBjjªRq– ¹î‰ÝêÕ«Õ bسgþúë/T¨Pîîî¨[·.€´õ£¢¢T‘š››ãСC(_¾< 2~Gù_É1SÅ#í%Ÿ«¤½Òó,‡f);v, $$@ZŒÌáÇ#GŽüøue ÷g™zeÅYÂ'ä¬@`uÐ+ÎJø8¥0­* ØÛÛãàÁƒ8sæ œœœàéé‰3gΠJ•*hÚ´)úöí‹]»vaÚ´i(R¤Š)‚¿þú ¡¡¡033Ëбƒƒƒáààt JÕú¸›Þ5>À1›&fëáv–kžíE<©dû1ÇìϾc‡}€   ÔªU+ÇxC£Ñ@QuøS§4oÞ\Ý ‚8K„cwùòeuÈB×ËÕš™™aÿþý¸qãÜÝÝÕÏ”-[C‡•øAÄY‚ HÃ.'ˆˆˆ˜››«Sþu½ÙÔÔT˜™™aïÞ½xøð!ÕϽWzAq– Ò°Ë|lllP¼xqDGG#55é³³ 55K—.ŲeË```€Û·oË·*‚8KiØåDìíí@QhµZU–ÑÑÑØ¹s'Hâøñã¨P¡‚|«‚ ˆ³Aø$ÉñéN,--1wî\xzzÂÈȃ ‚FóÿÛ£óçÏI˜ššÊP† â,A¤a—Óùæ›oðäÉ|ÿý÷8{ö,7n EQ€Í›7ãàÁƒ(Y²¤|›‚ ˆ³A†]NG£ÑÀÇÇvvvøùçŸ1aÂ(P•+WÆ‘#GP­Z5ù&Ag ‚ »Üt²5ÂŽ;’’FIä)‚8K!76ì|øev¬dg¬sÑPƪà˜²÷{ /W9Û‹8f@öÓ5ûŽ%>͹Î*“Ç+óÊXãóRö&‘¾ni™ýþ˜u:ûé#Îz_4AA¤a—ÛHŸOJAœ%‚4ìr± u’|úô)¢¢dàHq– Ұ˽…Õh°qãF¸»»£~ýúøæ›o0wî\$%%É• ‚8KiØåEÁ‘#Gàåå…nݺáèÑ£011Áü'NÈ• ‚8KiØå&®]»†.]º ÿþÈ›7/6oÞŒV­ZÁÅŀij‚ ÎAv¹†»wïâÞ½{¸sçвeKÌš5 °gÏ\¼xQ®AÄY‚ HÃ.'‘>è8=íÛ·‡¢(°³³ƒ›››ºfcLL -Z„Ó§OKXq– ¹–<[t‚Ôh48q₃ƒadd„êÕ«ÃÞÞ¶¶¶Gƒ  Õj‘€‰'âäÉ“7nE‘«Bq– Ò°Ë (ŠEQ°iÓ&xxx I“& CéÒ¥ñå—_bܸqHNNƲeË0bÄØÙÙáܹsعs'*W®,W„ â,A¤a—“z¿OŸ>Å/¿ü‚_~ù~~~ˆŠŠÂÞ½{1uêT`Ò¤I¸sç¶oßsss|öÙg¨X±¢\ ‚ ˆ³A†]NëýæË—ùò僵µ5ÀÔÔ_}õRSS±lÙ2´jÕ UªTAŸ>}ä Aœ%ÂGC®Ÿ<¡Õj_ 644Djj*þþûou[‘"Eиqc\½z!!!òÍ ‚ ÎAv9…ØØØ´h4Pׯ_ÇÝ»w Fƒ)S¦àÀ;v¬ú™Š+ÂÊÊ ‰‰‰òÍ ‚ Îá£#WÅΙ3çϟLj#`nnŽÍ›7ã»ï¾C‰%`nnŽï¿ÿ-[¶ÄO?ý„Ñ£GãêÕ«hܸ1Ξ=‹sçΡN:?øš€aQýmµ=€:r5 Ÿ \ze›4=r¨³ö  ¼â¬Ï<Ò^‚ Î’†]NÀÚÚ¿ÿþ; Ñ­[7Œ;¿ÿþ;Š+†àà`øøø`úôéèÞ½;¬­­áçç‡U«V!%%¨T©RÆþÍ4 B-¹K„O»ÿ{¥' À|©šœç¬¦Ó€2â,Aœõ©8+×4ì´Z-4 >|ggglݺíÚµCJJ ,--ѱcG*TNNNÈŸ??¼½½‘œœŒöíÛãðáÃHIIÁË—/ahh(W¸ â,A>JrEÃN'È 0VVV˜««•„„1kNrÖã+ÜÁ3 :÷×Ë žpÂ3àNý‘ÑU×^<®eð˜Í!÷ ¸þîǼœ±ƒøgÉþlð :+!ãŸg½? IŠrÿ›•+W¢k×®R‚ð¬X±]ºt‘Šg ‚8Kv9—Ga÷îݨX±" ,("¯ö˜qóæM4kÖL튳Aœ% ;AAá}ÐH‚ ‚ HÃNAA† ‚ ‚ ;AAAvBÎ@«Õ~teú§9HY9/‰d¶Õ£Ì¯ÄYâ¬Üä¬OÝ[Ò°“›ñûÉŠ#55MÚewçÎܼyIII9RÜo[~’ê{cbbðèQZÚKEQ²¬EF£ÁŠ+àé陥כîüŸ>}Ѝ¨(¹ q–8+Ç:K¼% »\'Èôkttt¦ÝŒé÷}÷î]<~ü÷îÝËôó700 >:t@íÚµ1`ÀÌš5ëƒÕkzqŸ;wÄãÇÿæþ·¹‘4lÚ´ _|ñj×®Þ½{cÙ²e ©~?™Ýë}öìfΜ‰š5kfiïT£Ñ`ãÆpwwGýúõñÍ7ß`îܹ9âÇMg‰³ÄYâ­×+]È%hµZ’ä† X»vmZXXÐÃÃóæÍcbbb¦ì{ãÆ¬^½:k×®Í5jpÁ‚™^ŽéÓ§³D‰|˜… æŒ3x÷î]z{{³B… êÅZ¶lÙL»Xç͛ǖ-[’$oܸÁÊ•+óÛo¿}¯óý§·U«Vüé§ŸÀÂ… sΜ9$ÉÄÄD®ZµŠ¡¡¡Ù^¯Ó§OWëqË–-,\¸0çΫžW||ü¿Öñ€عsgFEE±|ùòìÕ«—ú¾½{÷òÊ•+ïu~OŸ>%I^ºt‰—/_&Iž;wŽ%K–dçÎÿµ¾ß—Ÿþ™­[·fDDÍÌÌôʶ{÷nž?^nLAœ%ÎÊ1ÎúÔ½%1v¹$>EGDD¢¢¢ ´jÕJõسg.]º”á}çÉ“VVVHLLDÆ Ѹqcøûû–,Y‚³gÏf8dóæÍ  0{÷î…‹‹ ¦M›†¾}ûnß¾•+W""""ËãSþ)#::kÖ¬A×®]1aÂôéÓÉÉÉX³f Ο?ÿZ½…‡‡#,, йsg$&&¢jÕªhÞ¼9æÏŸ’xòä ,X€ààà Å”èbSŒ???Lš4 ¡¡¡¨^½:víÚ…;w¢Gj92:ó쟮 hß¾=EÜÜÜÔ²ÅÄÄ`Ñ¢E8}ú´ÌœÄYâ¬lw–xK&OäJA*Š‚sçÎ! СCh4T«VMïb}þü9-Z„3gÎüçÅš~ß§OŸF``  Zµj˜={6Š/ŽÎ;cîܹÐh4HJJB@@:ô‚yº ãÁƒcðàÁØ¿?âããQ¥JÔªU NNN066VƒŸ}}}‹&Mšd© uçµlÙ2üùçŸÐjµpvvFBBºu놟~úIwLL –,Y‚ .è uÆ hݺ5öíÛ‡§OŸ¢bÅŠ(^¼8ÌÍÍáîîHNNÆÔ©SqæÌÔ­[7CɺEQ`jjŠŽ;âÉ“'˜5k®\¹‚Zµjaï޽زe zõê¥÷™Œ^o'NœÀìÙ³±|ùr\¸p¶¶¶°µµE¹råРAhµZ$$$`âĉ8yò$\\\25ØZg‰³ÄYâ-™<ñÑ¡{d¼nÝ:–-[–£Fâ;wøüùs0€ööö\ºt)I2..Ž#GŽd… þÖû^¿~=ùóÏ?«·þþþÌ—/×®]K’Œ‰‰á?þÈråʽվ_eåÊ•,Y²$Ï;Ǥ¤$uûåË—9dÈV­Z•–––tpp £££¯’’’’¥õûÃ?°lÙ²œ7oïß¿O’œ|ø{ÏÈÓñàÁ6iÒDí…>{öŒfffÌŸ???ÿüsu(fùòåìÔ©“*Îwù{µnRSSéààÀÿýïzÛoÞ¼ISSSnܸQnJAœ%Îú ÎoIÃ.W‘>6!=ÏŸ?§‹‹ ýüüøìÙ3’iÖ_¼xA__ß|,ÿ¶û¾yó&K•*ÅQ£Fémôè}}}ßi*xúžáÚµk9nÜ8®_¿^.?kÖ,º¸¸pèСŒå•+WøÅ_°iÓ¦YÚÛM¿ïôâ‹eûöíùí·ßòÚµkêö'OžÐÃÃãµ–©©©Ü²e ÍÌÌèëë«n¿té’Þû¼¼¼èååõ^eJÿ]­Y³†—/_ftt4---Ù¿ÆÆÆÒÜÜœ­[·æÝ»wÕëäm‰‰‰Ñûwxx8###Õ|S´°°xíGÍÙÙ™«V­’›Ug‰³²ÕYâ-iØåJAênªS§NqÉ’%\±b…Ú›ñ÷÷gëÖ­9hÐ >{öŒ÷ïßçˆ#haa¡—üñMûÖÉáØ±cœ1cçÌ™£ŠaçÎ400à?þÈk×®ñÞ½{5jMMMyëÖ­w¤ŸŸMMMÙ¢E 6mÚ”íÚµã©S§˜’’ÂeË–±J•*455eÕªUY»vmu(!+ò¥ßç¬Y³Ø·o_öîÝ›'Ož¤V«åöíÛùÕW_±m۶ܾ};8@www:::òåË—¯ý°ÄÇÇsÛ¶m´±±Ñ öÕjµzôHïÇ+55•ÎÎÎtrrâ™3gÔs‹‹ãÚµkY¾|yõ±ÿóçÏùðáÃw:ÏçÏŸ«?\dZàsžqâ[µjEÿ, :^¸p!5Ú×qÿþ}¾|ù’®®®jß»w¥K—fõêÕ¹|ùr=9†‡‡3,,L;‰§««+]]]yêÔ)5uÃwß}Ç•+W¾Ó 9Ý1®]»ÆŸþ™ßÿ=/\¸@kkk*Š¢~ïÞ=Ž9’Í›7W“º’i9»Þ…K—.±xñâôññáñãÇÕkåøñã´°° ···^jˆpĈ´³³{-`Yg‰³ÄYYí,ñ–4ìr÷î¦çîÍIDATÝc¹r娦M½í+V¬`hh(Ÿ={ƺuërçÎjOØÝÝ øÏá†PQuêºî†üóÏ?¹eË&''³^½zœ>}ºÚƒëÑ£øá5YäÛpôèQvìØ‘íÛ·W{a_~ù%+T¨ÀGñÞ½{,R¤GŽÉÀÀ@¶lÙ’}úôQÏ'+Dyþüy–(QâµéîÝ»wç¡C‡xÿþ}Z[[s×®]ªÛ·oÏ™3g255U=7]Æ|{{{+VŒƒ â‹/˜@wwwº¹¹ÑÛÛ›}ûö¥………švá]~$ÏŸ?Ï2eʰÿþ2dɴ䙟þ¹š§*ýÛèÑ£Y¿~}Ο?_o?oCLL 7nÌÁƒÿãßuÃi¾¾¾zç>|çaAœ%Îg½¯³Ä[Ò°Ëu„††ò‹/¾ §§§* &PQž:uŠZ­–¶¶¶ìС£££éççÇ6mÚ¼ÕÅš””Ä:°|ùòj€ê¯¿þÊâÅ‹óèÑ£Œ‰‰á×_ÍAƒqß¾}5jÔÇúÿEú›÷ðáÃôòòâW_}Å ÐÁÁA¯¸k×.ÓÎÎŽ5kÖÌÒ™ddZºƒ~ýúñ«¯¾âŸþI’ôðð`ùòåÕYxmÚ´¡µµ5ׯ_ÏF±C‡j™RRRÂ%JÐßߟ¡¡¡{öŒ/^d—.]Ø©S'5Hö]÷½nÝ:Z[[ÓÆÆ†nnnìÒ¥‹úžN:±T©R MzïÂèÑ£illÌ pèС477g£FôDÙ³gOÖ«W!!!ÙR§¯ÊÇÈȈÁÁÁ¯‰ráÂ…êûÒ?®×{LL Eáï¿ÿÎ}ûöÑÞÞž}ûöåÆÍáÇÓÊÊŠeÄYâ,qVNp–xKv9‚   -Z”3gÎ$IþòË/,\¸°º Jpp0»uëÆ-ZücBÌEPPMLL¸téRÆÆÆrË–-TEM3ššJdháj­VËÇÓÑÑ‘óæÍS·ß»wVVVtqqa||<É´x±cÇfÛÍýjpvÏž=9dÈuÈåáÇôõõ¥““·nÝÊÛ·osòäɯÚÎ;— `žˆ É´¼LÕªUcƒ Ôñÿº»»³D‰ôòòÒ»i;tèÀÑ£G¿UoñÌ™3ôööf³fÍÔYP/^¼`•*U¨( ½½½I¦ E¼|ù’ß}÷G­öLßEDëÖ­ã¼yó¸jÕ*¾xñ‚III¬]»6]]]yùòeÆÇÇS«Õ²Gå°aÃhjjúŸÃ éoôÀÀ@öéӇ͚5Ss=íØ±ƒvvvêpÆÍ›79räH–*UŠ¡¡¡ï\Ž!C†°X±blÑ¢MLLئMîÞ½›IIItvvfƒ X¯^=:::²jÕª|ùò%;vìÈAƒez¦/û°aÃhmmMV®\™ ,Pë=!!¿üò 6lHEQ8nܸÝï… èààÀñãÇë-KóêðŒ ˆ³ÄYâ,AvŸéodÝÿ'%%±J•*¬W¯žúèø×_¥››K”(Áúõë¿U²MÝþÒ÷LOž<É>}úÐÝÝû÷ï'™–5½bÅŠ´²²¢+W®üÖÁ³º}kµZž={–åË—ç¡C‡H¦eÿþûïÙ¶m[099™+W®ä˜1côzÖ­[·¦¯¯o–Õñ¢E‹Xºtiž>}ZíÙ+ŠÂ°°0½ú¿wï,X@KKËÿ\t:00uëÖ寿þúZ†ôw]GÄYâ,q– »DºêÑ£GŒ‹‹Ss>¥åÓ§OI¦M ?pà;öŸÍÓç|züø±ÞŒªàà`~÷ÝwtwwçH¦="ß³gO:õŸk4þ›8J•*¥7ÃéöíÛìÚµ«^Jááá8p MLLôòQ½/ºrëþ;lØ0µw¿~ýz+VŒ³gÏÖ{ê ãÁƒlÞ¼¹šYþ¿ÊÛ A><[†1Aœ%Îg Ò°Ë=ß-[¶°Q£F¬^½:½½½Õ™`éEù.ÓÁÓ róæÍ¬U«kÖ¬Iggg5çÒùóçUQ¾k>)’}šdZÞ¢©S§òĉ,T¨çÌ™C’LLLäo¿ýöš ?ÿüó\ÛðŸ8yò$ÝÜÜdñhAœ%Îg Ò°ÒâE .Ì©S§rݺuôöö¦­­-7mÚ¤Šò³Ï>cµjÕôfž½©Ç—¾7·sçNqܸq §››ÔYfçÏŸg¿~ýX·n]µü6,^¼˜–––ìØ±#½½½éääDGGGvêÔ‰¿üò ===¹téRõý×®]c­ZµÔ¤¡éÏùñãÇ™RGÕû÷¦M›øù矫?BŠ¢PQ½YsÑÑÑlÞ¼9W¯^­þ¸\½z•ÿ9¬‘ž›Ý'â,q–8K†Ý'³gÏØ£GŽ;–dZöð2eʰV­Z´µµå† Ô^š££ãk‰&_%44”ÇWeÔ¾}{Ž=šdÚ24,W®­¬¬ÔÄ AAA4h^@í¿áïïÏ|ùòqÍš5êbÒ111\¹r%]]]éèèÈþýû³eË–ìÕ«×®]«nϪ\OsæÌ¡³³3ÿúë/uÛŸþɆ ªÿž:u*óæÍË;vðÁƒ¼sç[´hÁzõêéWRR’:Œ$‚8Kœ%HÃNxkâãã¹qãFÞ¾}›÷ïß§­­-¿ûî;^¹r…mÚ´¡µµµšQý¿ˆ‹‹cýúõ©ÑhèëëËèèhž={–ÇŽãÇimm­Æl8;;³Fܶm›*á·aÛ¶mTE/#»®×ÀµkײE‹ôõõå²eËX«V-6nܘ­[·ÎÒDž×®]cïÞ½Ù®];®\¹’dÚ’;ésMÅÅÅqüøñ422âgŸ}F{{{Ö©S'ÛŒ ‚8Kœ%Τa÷‘>†$%%E~Ðõ ,X@'''>zôˆ$9pà@š™™±~ýú|öìÙÎZJLLä€X¦LöìÙ“ P{´«V­¢«««:„ðã?²@lÚ´)_¼xñÖe8wîmll8eʽŚuåzþü9===Ù¾}{½ݹgELݱoܸÁ^½z±m۶ܺu+·lÙÂÖ­[¿öþ;vŒª³:1§ ˆ³ÄYâ,!· ðÖh4lݺÝ»wG÷îÝqáÂ)R‹öïß .àæÍ›prr‚³³3 šššéç%â,q–8KÈ­(|õnÞÈÅ‹ѤI´mÛÑÑÑØ·oV®\‰öíÛãܹshÔ¨\\\œœŒÓ§Oãĉ¨R¥ÊkûÑjµÐh4xüø14 Š+¦þmæÌ™HNN†‰‰ V­Z…ªU«ÂÝÝ›6m‰'`ee…;w"$$•+WÎP9‚‚‚àããƒV­ZÁËË fff€””LŸ>ûöíÃÎ;³´.SSSa``ˆ‹‹ƒ¢(044DXX&Nœˆ#GŽàÁƒpwwÇÕ«W‘7o^$&&ÂÈÈÐh¤O"â,q– ¼ŠÁ˜1cÆH5¼¹wFRí¹Þ»w)))˜;w.:wî x{{ÃÊÊ nnnhÒ¤ nݺ###Ìž=Ÿ}öÙ?·¦ׯ_‡ ‚ƒƒqóæM8;;âãã1aÂüôÓO°°°Àž={ðôéSÔ­[¶¶¶ˆ‹‹ÃâÅ‹QµjÕ —«lÙ²¨Y³&¦OŸŽøøxT¨PE‹E||<&Ož [[[¸¹¹ei½ê$7jÔ(L:þþþ¨T©Q³fMܺu ¦¦¦øæ›o0mÚ4ôêÕ ;wFŸ>}Ôó«OAœ%Îg Ò°“†Ý¿¢Ñh°}ûvL˜0ÁÁÁˆ‰‰A»ví 6DÞ¼yÑ¿T©RÍ›7G‹-ЪU+”)Sæ_÷ûðáC,X°… ÂÉ“'±cÇ$%%ÁÅÅE¶:t(RSSˆû÷ïcðàÁèØ±#J—.ýÞåJ/Ê—/_¢B… øöÛo‰5kÖ@£Ñèý@d¦ uûܲe ~ýõWtïÞ$1bÄ”)S...°··G`` Nœ8¸¸8Ô¬Y P‡X¤÷+â,q– HÃîoæ'N C‡055ŵk×pøðaTªT vvvª( (€¾}ûÂÞÞ666o%´jÕ {öìAçÎahhˆçÏŸ£_¿~055EHHZ¶l‰  &&—/_F³fÍÔø˜Ì lÙ²¨U«¦OŸŽI“&!&&ÁÁÁÈ›7/RRRÔa‡Ì$½ ×­[OOOøøø mÛ¶(R¤FbÅŠ¡I“&¨^½:öíÛ’puuU?+½^Ag‰³áÍ2ÞÀÕ«W9jÔ(uæ°°0þôÓO´··WLê˜:u*/_¾üÎÇ8}ú47nÌñãÇóÎ;ܽ{7[µjÅÔ®]ááá¸ÿ>ÌÌÌP©R%-Z+V„V«Åرcaaa›L‰™6m?~ŒªU«ÂÜÜ\—ÉîøœÌ$ýL²ÀÀ@\¼x%J”@ÅŠQ³fMܾ}{öìA©R¥`ii ¨]»6lmmѺukõ|d(CÄYâ,Aøo¤a‡ÿ?“L£Ñàúõë¸{÷.bbb`mmúõëc×®]¸zõ*Š/ŽŠ+¢hÑ¢(_¾<ŒŒŒÐ¸qc/^Iþ)bÆ ,W®ëÕ«Gsss>œ÷îÝcxx8ÝÝÝÙ¥KdéÀÉ“'éææÆ‡æêúWÿÓ¦M,^¼8;Æ'Ožpùòåôðð`ÇŽùàÁ†††²_¿~tttäéÓ§å9º ˆ³ÄY‚A>Ɇ.äÚµkÜ´iIòÒ¥K,Y²$gÏžM2m¹5&%44”­ZµbëÖ­yôèÑ,=¿„„„\]¿k×®eŸ>}xãÆ ’äòåËéìì¬÷ž}ûöñË/¿ääÉ“I’GåĉeýDAg‰³Avï.ȳgÏRQΙ3‡$¹wï^º¸¸L 6¶´´ä·ß~«×C¾|ù2ÛµkÇÈÈH¹rÞ@TT+V¬ÈbÅŠÑ××—7oÞäþýûY°`AÞ¹sGï½Ã† c5Þø ‚ Îg »ñIhµZàüùóhР† †¾}ûŠ)‚¼yóâðáÃpvv†««+æÍ›ذaöîÝ ¬^½åÊ•“1ü7`llŒÆ£páÂxñâ¦M›†R¥J¡K—.ðññÁ­[·Ô÷º¸¸ `Á‚xòä‰~àgä¢q– Î>>©†F£Á7ШQ#xzzâ·ß~Sÿ¦[»]»vpqq¿¿¿z³nÞ¼;vì@rr2òåË'WÍ¿P°`A >E‹Ebb""##±páBÔªU eÊ”§§'Ž9‚ÀÀ@Lž<FFFzëN ‚ Îg BÆÉó©8)) FFF°´´Ä;w`ff†ñãÇcüøñøá‡pöìYT­Z([¶,¦OŸŽ½{÷" @ùBBBP¼xq˜šš,,,ðÍ7ß D‰022ÂêÕ«NNN044D‹-P¹re*T‡’%wAœ%΄ÌâS bݺu9}útúùùÑÄÄ„{öì!I.^¼˜­Zµb©R¥èèèHKKKÉ ýغu+E¡››‡ ¢ÎºÛ±c«V­ÊGqË–-lÓ¦ ÈÇóáǼ}û¶:Ë/«³Æ ‚8Kg Ÿ ùY.?1‚‚‚ð¿ÿýaaað÷÷G×®]Õ¿=~ü÷ïßGjj*J—.R¥JIà \ºt nnn¨^½:nß¾ KKK4iÒ;wÆ‚ ðèÑ#LŸ>+V¬À_ý…%Jà×_…™™ýd ‚ ˆ³ÄY‚ð~|² ŠË–-‹úõëãØ±c(_¾<ÌÍÍall (P J•*…Ò¥K£P¡Br•ü ¥J•‚››¶oߘ˜˜ )) ={öDpáÂtêÔ µk×F\\Ñ®];5+» e‚8Kœ%™Ç'ûÄ.}/ØÇÇ­Zµ‚———Ú+Þ3gÎÀÏÏnnnèÝ»7®\¹‚9sæàäɓػw/*W® -c¾Ä§‚8Kœ%Ò°ËRQ8 6„···¤xÏœ–-[bÀ€044D\\Œõ†/t¢Aœ%΄ÌEÖŠEÚ‡­­-V®\‰N:ÁÐÐP®Œ Ö£nað§OŸ¢råÊ(Uª”º¦¥Ú›A ‚8Kœ%Y‚<±KGbb" ( ñžãûï¿Gƒ àëë+Ü‚ Îg B6!éAfµjÕ¤I“ðôéS˜˜˜H…‚8Kœ%Ù„<±² :Aœ%Ò°AAÞé’‚ ‚ HÃNAA† ‚ ‚ ;AAAv‚ ‚ Ò°AA¤a'‚ ‚ HÃNAAxþ,Ãçx·„½IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_match_distribution.pdf000066400000000000000000001200771323370031300232100ustar00rootroot00000000000000%PDF-1.4 %¬Ü «º 1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj << /CreationDate (D:20081112170628-04'00') /Producer (matplotlib pdf backend) /Creator (matplotlib 0.98.1, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /Type /Page /Resources 10 0 R /Parent 3 0 R /MediaBox [ 0 0 1080 720 ] >> endobj 10 0 obj << /Pattern 8 0 R /XObject 9 0 R /Font 6 0 R /ExtGState 7 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> endobj 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream xœÕ}KÓ%ÇqÝþþŠ»lÔûá-¬ÍFxA‰a/L/(¤© Mÿ|Ÿ“u¿™é̬¾3æýBv@ P·»*«³2óT¾Òý—÷xÿþ÷‹[¸‡û·÷ÿò§õ—žø×ÿÞþ¿üÅ­öcÔKâŸ÷<ÆÑòãŸ"¯©åH~¡ð§›þAõx{]ɘì<¾žŸ‹ü·ûåOælGy›¿ÝÓìGè}¦Ä?ï?|sÿo÷ïn©ŒcäÞrŸ%OKejãˆ9â¡€Gí*ôø G,uŒÛl Q¿_?™ŸTþêþ:/é£ã%e„”°>‡N=>ÆL=¦éáÐy/±ïÏ9ea[µ çá'³¿ÊK*¾Åöç#b§g ÿÁ¬C“ŒP1Uš­ ™v>2ÿë輦t&ˆ>Gï±EÇ@P㥤cö‰£7r$×ê}PãOæ!—t€ÎpY©Ï;û­ÆKîG›µ0[å÷Ôû ÆŸÌÿB:/é-¡õP`Ÿ%oÏ㥶£¶Ò¬› tª}PãOæ!—t€ÎŽÜBK¹¶îñíy¼ôz”LœXI§Ú5þdþÒyIèœó‡AâwXi–ÌÓpé퀉š¡6`åJ½ çñ'³¿Ê+*¾½×8°®.ƒ¹âP©Æ¡¡ñf˜RÔ.¨áëÙ_Gä5 2#•˜Ûœ=7‡ÊóxMÿÚqÊDCüIï’2ÿ 鼤tbŠ ›³¦´t&KÆ1`ÖÔ–„ÊóÛõø“Ù_Hå ëÂ!Â/R)ËžÇ ¬ó>s¡¤.¸ú¼ jøzöyI¨ÄK€c$öõXö<^°¢g…¾˜].Λp~2û ©¼¤âÛ{ƒq­ÍQcqv[—L]kت´ô.¨ñ'ó¿ŽÎk:@g.G\Ö`9tžÇiÒ´¡Y[Ó]ïƒ2ÿ 鼤tÖrX -u‡ÎóxÜ ú¯ä 6Þ5þdþÒyIèìùž(âÓj¼„zÌYG™½ "k½jüÉü/¤ó’Ð éX'VÒ”€C§‡ºOß úa ҩޯƟÌÿB:/éøöÞc<Æ€=6ãŒÎ~ëqÐÒlsÁ(Î>|:þdþ×ÑyMèÌñˆJ@ù©9_ëûZ³ê¾öÙ>¾ŒÎK:@g À„¼Ü(´],zü|_k^¾¯}¶‹/£ò’ PÙæÑ”^­³;HIÏc¼–€w&žNý~5þdþÒyIè$¬¨°Ò°’äq­7\«÷Así“}|—t|{a¹ÆçhÃÙï'ã_¼OïEçõ:AgêG+5†BvöûÉøßºO¯£ór ³ôg¬ i8_k¾Õï×|ûl_Dç=Üyûï÷†þþþõ-†rÄ\)“c4@Nâš/4\`ª£'ü Åéå÷ØÒA>ŽœG– 1PNÙ×ß±0Ža`¤ekŸOq@A©•^›ã)ÄðqF÷tuªã(£€Â:nàE0Õ`óùÞÞciS”G(µ¶ˆ×F¯=Ž• 3-g`ª 7Lùè9¶#ƒø^ þ'À¶}]×cØHéÑaüWv‘T\°üñD›ä~{(L˜'ÿ‡ÍñÑÓÀIÇ×E ®†ÐJsàùBiÛŸ¼Ìñf”s†bÌCáþŽ1Á©ÜŸ>ÁL8öi œþc"r¨ateÎO5  }VHÅy¤E0âô0 ì`«ÑjïF é€Õ¬ëwƒQpV±v0^jÙÃ(š_jB>WƒQ ({ ÜÎìiÈÝûi´ä!”HÒ!¶ð/BšB(%sàE¶ÌpJ›ÐE<ÝG(˜-áCQè¡Ä)™¯+~CP å`k- -†‡P`PàÕPÉ=9j……Gø¡6,BÁâ€ÞJÉã n߸ˆF(Ðé-A΄,ÇÒA( Äw ÙE(¢vBtIxR8@­á?‰X7… _¼#ô;¥BagdG­pRü<`qù¥ÍŒs†³26ø˜±3íJ¬%=´‡PpZ!Ðåó»3Om‹P"˜¡ËÁöJå . LŽ‘® vgzzå#BIß«ä,û«HJÆVIrƒsU€ 櫱Êm²½ûÂט±;°Éy­?6ú§Ä÷±+âßžâ„uõI§S¡ˆÄôô âhnÀ ̈–!_ÆÑ'ÌqÛµîc•T`Ž’­Ç«àaý¡n±Je‚ÑrB:X¥Ô6Kb1zX\UÂCr/¿&¶?À`šViÎ=ÐCÖo° Žm ÊD2ªtšã³Ói”}¨‚# ÒW ¢ƒT:­‘n*8@ Ûœ!wêF@àÀÊeö ,T& %Lr Îw¤5×rr¼ó:tt…¶Ä­*` jiÞ¿¨P\ÆL™²bUP)àB€ (ÒåÑ0@Ò©FÌâ9ç£ Áˆ¹ñ@ö€J„ö`n ôÙð‘JKa69•>R!Кâ ôJ'õµÉÍ’*oúœBÓ*ƒ"n:Ú„ÇfðZ†ÒxT2ÎìhP!ßö\×¼x2Ðc±Á)<€ŒÝÎÅ— N‹e%·8@…×~ƒSn€ }°sq¦‡SÈ€Ýzæ>æŠí€Úá+lWÙá”Mq>Né8xU|ÐïSž«þZe÷EK¦nÝÁð:…ØsÞŒ=ˆ¨¼‹ûª8žÀ¹mS>2ÌÝuåÀ”‰M¦ßfã©Ç'oTKr‡äÁúƒÀ6yƒSðWHºYw@¥ŠZjËÚv€ ä84ÌÅ PY—«¼)ôJ°ö\§ ØkÀîÕÓ+!P"Âq5{@%q~bP‰Ã°@n@?€¢ç«—tVI¨€ LõD[—¿Ë*teç©k©4¦âAµØ+0 ‹#óæÞ\¨t,\«aÅI  ÁK"ˆ71´MØ$iâÙÏE\ý¨€³ä¯] ‚õAŽ1rkùâ TÈ>P‰÷jêP POàòZ_=þ m5ìGtJ¢(fbòØE}á`aª(—@NÔWÉCÙïã”ÈÛO78¼Jƒ¯Éòœ‚À˺ôpJƒbkùD,N&€à*Ë’wp qÄ}O>N¡Ñ‘N ôÔÏ_ý üäz׃)8Eq‹;˜’!“„7\˜ÆƒÇ½KûK5Q_ïRvÙi. öÔV“ŒÆ9;o DKa6uÜh’ ;U(ô5I£ K,n4 ǃá€B~€.hèØxà¶*·Šž7…Þóö`h×›s‚â`ƒPp ¾,Q¡à8^{ä±A(qÒQÅ›ä ˆ€9ñ^¹ðsJajn³¸Q_8?·DÏÄ FûAPÃÇ( |P^¬Üy RÆÁJ¬ž”=¸ Þg»Q_ >U6ð‹ RèËÁi€žöÒ‹†RŸ>»a_´"FÆ[›D´9(…ŒÕÉŽÉC)ø™QGÁûJÁWOìæ8è%#6‚a`†yzÉ$…paˆÁpÝ)‰îfì-ìï Úh´£—Ý¢^öÂ’]—JJœÁûS ;˜^ 8D+DÙ)tP¶ L1˜6É¥¢S"41¤LHJc‡Sr‚,˜Q®{=œ"˜ó(gÓÃ)t¯³tTóq „5;vG™,# ÄÑ([ ‚µcòå1q*¼¨Ç'š; 2h‚/KÁ*¼ùÉbÃn*4ÕZxe±ãPÙkúó2Ùcç§— ï[Œ1T  vš%p¿Ãû®:R»°¯Ú)¢2ô呸 ÒÔâm¶ŸË³á:‰>œߤãóÄ·énÿðëûWÿ9BÝý{%,8Ä÷ÿë¯o×~vÿõ¿ÞþÓ¯ñF áGA¢˜ßþ†ç¿ú¯ßüðÛŸûÇïþòãZV¡(¦‚z‚¡Þ Õ\’“&Y=ãÑœ·4GÞƒèÆZ]]ˆ¦©}&ÑåDg¦ƒH•a ÊE­žñˆ®[¢s¦Ó€š`Ê„_ø¥Ó+ˆ.R»£ó… ßÑM­žñˆîg¢O„zAÊÐñÙdÊ3Ù¤,²;(Ó«mд8ðkrÿ ½ZõŒ·Úy±Z‡añ”ò˜Ò®6íVËze²GMB½ÕF#9ÔC®èˆë…â>²òÛ¤ç“ôá°xë uË@@ÂÑþzͱW¹ëÍëëóÂ"RÉwÛn½Oz÷¬¹Í‘}ÒÐg=U/VŒÄÓ´vÉc·äçª$šãöYd^¸Ü§òqR¼­±ÜRüpÞŽí‰;/ÇB(Î2øçcjsâô‚ݧ®ÎÜi2¾MÊ‹Æ_U>¾¼=tç³²ÓYe‚si.sæô‚ݧ®LÏã‡IóA›¨0¸¤>¼=ujÁ8¾°~"d#þ|LmY°÷ÔÕ©#K0qåmRh±È„ŒÌÇׂ·ÇNÙ6 ´ÏÁlüù˜úù¡óžº:t\0«å¼MJ¡Û?3Þû±àÏ|ư0X¾pÛÉšß}ÿ÷oÌ÷äaÖØmÀ’Mü.|ø§Ï|’€9Œ½”i÷¹Ï& k°çÂCõýë÷ÿó»qfþò™oàÝ0å‚h Ê?ÿ×o~ø”ð·S§$@:ÞÄCšž:[ùPs¬«Vº“ŒüÑ׳»mO¿ø¬»^á»Û0í ©ºÏŸZ‹άñ¥Š¸\¾ª—Ÿ‡¯çÞÔ‚ý[H½¢Å6LÔ¤šaf%2¨Y.lìË?¾žûH½¢ÅvMT«ÑÃj¬1{·¯Êêåçáë¹_Oê%-¶q¢&U +R¯wâzîw õŠÛ;Q“ªZB¯³‚”ø§ï¦s¢¾žûH½¢Å¶OÔ¤ž‡«Ô6‘¯$ÁÊêåjøzîw õŠÛAQ“z®Œ -)5|9‰P;q¾žûU¤šö…ŠBÝõO-B WFK†P_ÅÔœ‡¯ç~…—$ؾ‰šÂó0=KD0ÈY\pç—«áë¹_Gá ¶c¢¦ð<–Jo! ½førî—xI‚패)<Ç&Y׌֘+›E퀿žýu4^aº"*6=Þ`”±»l÷µ¶­vàzü½ØôŠÛQÄóp䥲”z¥Pœûu^‘`»!j ÏÃÔ a‚p|Ô¸S; Æ¯gWDØ^ˆjj˜Õ-ðšÉhÉ€>¿\ _Ïý2 /I°]5…çᆆ‰°ZÝÝô@TÃ×s¿ŽÂ+lÿCMáy¸¥#g`Aèt1kôœ‡¯ç~=”º¤Å¶@Ô¤ªˆ¬SÌp#¢RgX5@<_Ïý¤^Ñb» jRÏà ÐdÍ@ýU÷EíÄyøzîw õŠÛQ­F öa VÖ¾›6ˆjøzîדzI‹í…¨IUÃê6V¿\ÝÆ>ÙÇ—“zE‹m‡¨I5çÛXûòÓmì“}|9©W´ØžˆšT5Ì,®8˜('ù•úåçáë¹ßÔ+Zl[DMªÖ ¬^®øz_Nê-¶3¢ZÍõð—nÔ;“z¹XÛQ“z9ü·mÔëI½Z¬í¨«†ë—+~²/"õIkDE°NîPkŠ*·C}[•Ú¡GUn‡Ö©zXe ~:|³‰úi•+Èxê^ ã›„=è´†¶¦P¥N¬ÎÄ&Ô o:©#3[ 𪗡Ó °Zeˆ¶ØâMJĦœ×L:-³)ÉÞezÙý™UÝñžäT1!JŽ9–!µt*kÇbXì*šLŽãññŒßœu=øÈ$î4Ãõ»Í刉I(_=†q3ÙQ¦Â¯u»)†u=Ó_€ÓÂÒç\ŽY ‰MØÛÊ;U¹äŒÂÆU•um.”%”*6ÑüŽ£uHéÎÂ*6—#M¹øŒAŠ Ø\ì?x‘8pH5&Ë!Ü“¹ÓZ·Å°Àm‘ý'Gd‹ds9ðÃ\Í$ÿà4®OßÄÖ³"z²©4ì4ùØÖ/‘ñ:ðsœ©å­“ñ± «G€7¢m0"ãgn¬ò0:“C ëDó´J Ô¡*ÃÄZ¨Ü@ý¸Êã0ëÜ@óü)Ã>®rÍãç<ó¼É Ô?ps¿\gH×mרŠï{ACW¯`‰ V^È^’9‡Áu®ªŽÊ€PÁYL^: †¥Îm]-®•1¸ÚWR•U‰ˆXvVWedü¶a¢•ÊgTFc׈Mv•ÊFf Ëœ$Ge0ò˜c¹Hî»Ví`Ž#$ؤ–c¡slé(O«Ìr&ñ±¦Öœ$@ª…É $ø6¯üÖ˜ †¯U磚ûYiP-´Ê ¶YœŠ ñF€´½™@Þc²A DÖ*’zҬؒ$î©ß¨õ^ÎVˆ‘zçnõ÷<³è3µ(ØÏz#KµñÄÛ¶áô*dâM`-ú¥Îz³jiˆü¹›¬ò(i)°æ3»)×ÏzC:U¦À”’7¬Ôk­ãñê«»é @ö†ü¬vp7)åƒÀî‘å7%ÃKéŒ2ðÕÀØl„éԼ‘Ä€ŒôP Jc`n¹i-y¯*Ý^à¸^¤ØšVù`Í‘ÒçòØ}Á\zð>^/-ßµº8|^X0j8©ä8¤,¨ÂÌ!‰WÕê§­¾úŽ1êÂ-D4¹ÑìöOv›HNÙ„'{[U®u¹60•D‘Ø4r‹‰b±›2W=Ù3¦¶›M"_"œµ’³-rõ6,MQ³«&–˜,°ð:-ñù­ ˇ ”v#M–PrË’¬c™êâô ‘mO1.±ëa †‘– ¶‰£0Xy Çh^·ƒNû:!È]…‘"{­–.–¼ƒ1¤…/´‚§0˜xÀžriǵNBáâc îNZõ BTi+ LtÚxgújb*̈ì$Ї£TÜ»é¤qس°D[zô‘µ0#³f.å ”¼R8ƒR3ƒ-F^¥Ï2¶±ÚÌÎvÖ`ªÎk¼Êê¡ÓÖÜÙ@41rÚè‹[d©x|‚´UHÀ:õ(̲H¬ÅfôÅ ß|—Ù |ÛkÜÁ®0Uò¢Ô9ë‹Î>쨌f«g@Ê2" ؾS·DÄKúJŸÁìKèåÕ×å¬2ÀAÌifcöžòqÎN}4À=) œ%ªkÀ€Ê.·>Îè:!Ú¶S7ˆÙXI¡JûR 3?°ouÚãÞ8>Á§lj6l§u1…ƒ¤B\MÅΊãÆqæÎ%y@¦4(a§Éf˹Ëó¬"ÑsZÅì=¤Ù7ê‚OÊãñ¸”›Zåy|¤ÁjU«¢ñY}Üãà­¹Exý ì8+Û À2-WHƒ N=«/]RÎ_¨C> þð!ÿüWÿ?¼ýy[“…”Ø®ÈmÁ(õ²õ†×$K4ÛäM¨”¨ðk.ÕUPØAJ¬yYW§)Aê ^mR!û@ülÒHÔi”€ÑØÂλ[#Pšûêä¥Á*Axgµwœ$)R–ÃÃIL÷˜ìeîÖ' |ópäà„¸ÛRß®(+À®•š (E6Y Ì`öÛ¯„âö… $õÂmR5Pbm¦ÔÁö‚íF ÁìVÙœbóJûÂ@Y§X ‹øóFòæÂ¤,â’D9x0 œ±›+΃Iƒeé–Ö¢$¨TFR©èË5puÀ™ÀïWP‹’ËGr…½Zƒ‡‚ e²ÆÕxDI‘ BqIJ½XcmÍNy¾ši9 ‰бÔÍÑwI@—°¢l',ÁHЧì"8½šÀ¼çfÃÆß]Çòñ,ØÝâ#±'óªïb$|y|Òá4죗d.ÓPÛ¢\)¼_÷ˆÄš'mF[ øÍVg'àB±âB¤ÌÒhZ–¼ S,LÚÓÛ»4¬rëTDyCH“¢ö‰­<ʶ]É ÒSm `þ5¯z㢢3¯ÂüÚ~¤÷z·4tqTÜ,ô#犫™öÐØ¹Ó›W»8GÇUFïÈý†wôÌxŠäu,-ƦÔCÎ…£äØèK¼¸îM â°²ØKŽß$•Œ²Ë>&âùâÕuvìU »ðyw¬;Æ&Y)8W,Â’¨4hÜ[ÇV¾£I3ÖéùØz¿f›åäØáð±Ã}IR¨ÜB"È öKn€›³Eô¸D2“—iÕ¹ ¤Ø£%•J±­Ba÷Éèر' s šÓ¶…"~Š Ç °Ã±(ü"UžHÄ E¶ÖsbJì’\ÝWˆŒ‰XÜŸ]9Š`JÒÁ²NÇ–"—Þ|óŠý±ˆ½tø)º×¯…ê_Ÿø³s :°?Ÿ9:w€l6ÊGb‚HÄIìÜîô&–°$éåu&¦!š)ÀØpÂõ%©ú_W]z'¾ŽžßÌk“›ç<âÍs꩸j ’ Z+¬6œ6Ÿsvö ‘‹a1€½…lÛÝ?b÷بbY+"¢¬e M£ÑVlŽt{a¶BD®–€!Àž¿;w8"Ê=¯„JçUló•+¶²ÊlÞ¡”;q”ˆy‹„Ø3„=_7AuP:¬ú÷føÀl^½œðnâc•×»O:‚dU^—uGâ8‹È`Äpr³å„ÔeFžçNLí„Ô‹ÕQÄtbaÇuˆíÜ9AARB7V©ãà ^Kã¸ÉU¤ÅA9°AfžNk/À p!ÅhX1Ö6u‡a„ôð[oø=ìÙû©y0ˆÞ"œ²™h8;Þ"|Äðð´I4™ë4¤½ŽMÝa›F§¯ôö`Dlå&·lê{áå³®¨(ƒØ²­wËÖØÔÆ9ºÂó&¢ŽBUü‡næÛRwÖŠÍÁÍÜ Ø]~ü{Ùdîv âÓõPP¤Ä Û̶"ÐÈnæÎ`ïÓÀ.÷}ú™;¼‰åýW²‡—3)a·kNAAЛ2}ƒ`ÍUžâçî`óð÷Ùýû3ñ5±9îd(‚—»ƒ8†«lÀqFÔ¤ÕùÕs1(ŽÞïÁ bÔ±p}g¯L“+±pî¼ÊÝi€ØÎùÚˆºw ¥{·P¸*@»±ã=°ƒø6vœ—öàFEÄ(Ù}=‡ï]ËêŒí—Ñ!.vÁã• *9ù1tW ³ý°ÚÎlxïßø1Pf÷â{ãÇßfƒáÞøÁŒÊÌÚ‹^¶¯û ñ ¢ †*Û½§$‘º¢5ßtÝêLÕÒ*l¤³ àïÔæºÕ`GÂ3¶sÀ¶â,Ix¡†Ê!ÙÔbŠ0ÔiÆVîM² œ,ÕÁ03¶ØdAî°Õšè†2{PŽ‚}ÏN`±/iYº_Jh0»XÙDPâ.,j‡ôÁw[pÆ€¡ÀáEœS Aîc%à±P­ž»q%0ö@hÊb‡¦¶ÅäÅ(Yƒ£3?Š…Bƒý«¡¥‚FÇÞŽØ„±Zw:Þ!¹äL#ïžO o'ZÕËM¥yPÙˆ¬÷ž1—™yÚÓ»åoµ<$9Îu±¸}$åá ýæ"!¦)>ŠzX ê€ß¢ä¥yQt|\›}×PaSêÜo^²ïE«ëV5 ô¡óª¯R²^²GZÙ~²û93LÛ÷EÞð×0we g¥žv"^ô·b;.8â5^äeXC‚ª7at<7rK¸Í5¢úúT£7Õñ~éF›>£ÁæiÎÕ8Òô»ì&²ž™ŸÙa*‡Ž§zÍ÷ïÑ`Ó’\L—2󌥹컊ª› úÑL볈~—›ѦәyÆ!zßVTuØüÂ/ý. 6¢M·4óŒCôU³4ÕaóLö5ØtVkZ¥™gœÕ^uJS6íj?»Á¦³Z#8Ì3Îj¯zªþšçsôEí5íj«9óæ»ÚzÕ˜Pu×´{ûùÍ5å>íKè®÷ª/¡î­iü¹­5å>íJè=ô¬)áÇ)Ñ;Ì·ÇìsûjÂ6`>}‰üó1ñÓ–„ÞCO:~ÒUsÈuG"äÓ_ÔT3²–lÍ$%'×ÄO›€z=éúIKM˜¤0µ»õòe5äzLh埖ÆO[€ºO=iúIGMX†01`üÒ–k_ÖQ*úoýRÓcê§GÍ}êY Ð5S« 3¶#¶ÿ²ŽšÞ)oŸqØœ§žœ¶O:j2É(‹y|üyGÍÓÙþ÷îgwÑN“&6ÃM¤fdŠ,µ^K*ÿãï~÷ÍŸ‚µý¶Î¼ÿþûî?ýõûŸÿôÛ?þ雯ï?}óãO¦±M¿‘>À¾ÁÜuénkûiª؆š¦éÍîÜ}žA?YÓQ³e)+óÆôAö¶úéæÄRß@ÒXÔzeÓãNLõÂ4¦$QðÖedûB5~êZ©_ÕqP¨acãUŽ}Õy|}{û–šxÛÄÌ^Êcû–ó¸Ó3T¿Í“è¹:/<F;Í"Ãq?~¾âb&îù[;ÍßüÝ?þ=ô^ùÍÏî?ýù«ßãÿ¾ûûXûWá+ ßßülÓµR½;± MfÑ364^Ý6_óbXoÐÏ92À¡¼5ã|¼zœ_]äÕù³_]ÆQf *}hÔ½:×1œ'H2Aýì 2ÖÈà1ùÅN½<ÔÓeÊãã·ÿ†é† endstream endobj 11 0 obj 13555 endobj 82 0 obj << /Filter /FlateDecode /Length 149 >> stream xœ5K! C÷9…/0R~„pª®¦÷ß6aZ Û/Áƒ‘ŒKL`ì˜cá%TO­>$#ºI9©P7OhL 3lÒ%ðÊtß2ž[¼œVê‚NHäé¬6¢Œf^ÃÑSÎ ›þËÜ$jeF™2ëT·²²`æµ<÷3î¨\脇ʰèN1¢ÜfF~ÿÛôþ{20c endstream endobj 83 0 obj << /Filter /FlateDecode /Length 68 >> stream xœ336S0P°0¦¦† æF– )†\@>ˆ•Ë˳Ì,Ì,# –.C c0mbl¤`fbdY 1 ºÒrø‘ endstream endobj 84 0 obj << /Filter /FlateDecode /Length 52 >> stream xœ363T0P0±T026Q064b…C. ˆ•Ë˳@ªr¸ Ês`ªr¸Òé À endstream endobj 85 0 obj << /Filter /FlateDecode /Length 49 >> stream xœ36´P0P040’F†@–‘‰BŠ!HÄÌå‚ æ€Y@¢8®&‡+ Æè & endstream endobj 86 0 obj << /Filter /FlateDecode /Length 80 >> stream xœEŒ» À0D{¦`~&fŸ(•³ JÜpOº{¸:2SÞa†‡ž ,†Sñ™£`5¸FR죰n_uæzS«õ÷*Ovvq=ÍËô endstream endobj 87 0 obj << /Filter /FlateDecode /Length 90 >> stream xœMAÀ ï¼"OPDÐÿtzÒÿ_«Ô½ÀN‰E‚ô5jK0î¸2kP)˜”—ÀU0\ Úî¢Êþ2IL†Ó{·ƒ²ñqƒÒIûöqz«ýzÝÒ"X endstream endobj 88 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ5PË C1»g ¨džV½uÿkmÐ;aÿBXÈ”y©ÉÎ)éK>:L¶.¿±" ­u%ìÊš ž+ï¡™²±ÑØâ`p&^€7`èi5tႦ.•BÅ%ð™|u{è¾OxjrvCÉ` jºMX´<ŸNâÿ~Ãî-ä¡’óÊžùœíð;³ná'jv"Ñr2Ô³4ÇE> stream xœ366W0P04‘FF ¦@VŠ!HÀÐÈD!— $bå€Y@¢8®Âi„¨± ª-¡²D6 G¢Ë endstream endobj 90 0 obj << /Filter /FlateDecode /Length 147 >> stream xœ=O¹ 1 ë=8Àz,[ó\ê²ÊFR"@ñ‘eGÇ \b“Ž9/i?øiX5Gô„ŠaXàn’ƒ,JWž-^ ‘ÚB]HøÖÞ­Ld¢<¯;p'£>TYz@;DY®IÃXÕV]j°²ÎÂu=̪åÑ'k)PTB½tÿŸ{Úû o/ë endstream endobj 91 0 obj << /Filter /FlateDecode /Length 17 >> stream xœ36´P0€ÃC.”ì endstream endobj 92 0 obj << /Filter /FlateDecode /Length 317 >> stream xœ5RKrC1Û¿SpΘ¿}žt²jî¿­„'+°-@B./YÒK~Ô%Û¥ÃäW÷%±B>íšÌRÅ÷³Ï-¯GÏ·- Q=ø2'"ÔÏÔè:xa—>¯N)x“¯á_x”NƒÀ;2Þ“‘$ÁšK‹MH”=Iü+åõ¤•4t~&+sù{r©j£É X¹Ø¤+)$=‰H²r½7VˆÞW’Çg%&Ý&±M´ÀãÜ•´„™˜BæX€Õt³ºúLXã°„ñ*aÕƒMž5©„f´ŽcdÃx÷ÂL‰…†ÃP›}• ª—ÓÜ #¦GMví²[6ï!D£ù3,”ÁÇ($‡Nc$ Ò°€9½°Š½æ 9Àˆeš, mh%»zŽ…ÀМ³¥aÆ×ž×óþE[{£ endstream endobj 93 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ-Q9’AËçzBsÓï±Ë‘÷ÿé ʃ†C :-qPÆO–+ÞòÈU´áï™ÁwÁ¡ßÊu9HÒTM¨]¼½vfó¤5,ƒë?c 7zqxLÆÙíu5{×kOfP2+qÉÄSuØÈ™ÃO¦Œ í\Ï È¹Öe¤›•ÆŒ„#M!RH¡ê&©3A£«Q£Å~éË#aU#j û\KÛ×sÎ4;«<9¥GWœËÉÅ +ý¼ÍÀET«<p¿ÛCýœìä7ÞÒ¹³Åôø^s²¼0XñæµMµø7/âø=ãëùü¨¥[ endstream endobj 94 0 obj << /Filter /FlateDecode /Length 52 >> stream xœ366W0B]K#c ÛÜÈR!ÅËÈÔÌÌå‚ æpYƒUåp@i˜¢®4ߪ ­ endstream endobj 95 0 obj << /Filter /FlateDecode /Length 163 >> stream xœM;Ã0 CwŸ‚ êãÏyRtjï¿Vr ƒÁÊ(usfà !¼ÞÀ‹-eÇ· ¬Oãø'庉}€ù‹º ’*†³©Æ€F ;tõ’³™{MÃXp¤¤ï¶@'<,›ÙVµQ•°{ì“î"I­Ú£Ó Œg í° °»›O㵦¦_š)雨3˜·ðH›BdˆZÊ÷qêg{ÿ?ë83 endstream endobj 96 0 obj << /Filter /FlateDecode /Length 131 >> stream xœEË ! CïTáò>©‡ÕžØþ¯ë0šABøA";ñ0¬óò6ÐÅðÑ¢Ã7þ6Õ«c•,ºzRV釼òPi0QÄ…YLCaΘÊÈ–2·á¶Mƒ¬l•T­ƒv<¶§e«~©maê,ñ ÂU^¸Ç ?K­w½U¾BS0— endstream endobj 97 0 obj << /Filter /FlateDecode /Length 88 >> stream xœ5Œ» À0D{¦¸ø8€÷‰R‘ýÛ[.¸{Òç9ÀÈ>GèÄ-dCá¦xI9¡>Q4Zo:¶Hs¿¼d3ý3Ü}…íæ€d4Iä!ÑåråY)z>—Ú~ endstream endobj 98 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ=Kà C÷œBGÀøžtºJî¿­ l°„ôÀ}b"£'‚¯Ä‡¥Ã$ðl„{0Ùr„äM†²ƒ$q ¥Â¦c™ïɦuÒJ¬¼Ñ~Ùw4ftŠ-E‡v!ÿçõ"Ü£àë<`1ÈÚJ¥ì™0Ze¦®ò¨èµÓá=D«Ååõ®ðÚG7©(*KêþDw4Øþ‘·ûß™e8$ endstream endobj 99 0 obj << /Filter /FlateDecode /Length 227 >> stream xœEKŽ!C÷œÂG þpžŽ²êÜ;.:Ñl°%(×3¹{ñÈL”n¼d¸;ÌŸá0søJ˜lÄLèN\#”®áTŸŽË޼頉{DΣžYÕÎ jg’æ‚í‚.çŒ7ÎÉ­FåÍô£×¾iw×y‡öHãÞÃT¾Î9ÕλŠi YÕ´¾lÉk?*MÛÎ˱àlVèÞ»Ww'K~¿ò0%?ÝúQ|]7£ëg'W&kÏyèIé_õÊ£Åq)è±íÌ$÷_§S’©S{gïiý§¸ÇûnV9 endstream endobj 100 0 obj << /Filter /FlateDecode /Length 247 >> stream xœMQ»mD1 ëß\àëkyž R]öoCÉ ¡/)§%öÆK á[¾ä‘UC?1ì3,=ÉäÔ?æ¹ÉT¾ª›˜Pbáýh¼t/"+Êße sÎ÷ࣗ`&4`¬oI&Õ¼3d‰¡ŽÃA›TwM,®Í3ÈíV7²:³ lx%âÆDÙÍ`£Œ±•År¨ ’Z`×éQ‹‚+”Ö t¢ÖĺÌà«çöv7C/ò਺x} ëK°Âè¥{,|®BÌôL;wI#½ð¦fR™‘•:=b}·@ÿŸe+øûÉÏóý (\* endstream endobj 101 0 obj << /Filter /FlateDecode /Length 87 >> stream xœ5M¹À0뙂Ì£Øì“Kåìßì¸A:} ”kä‚áo!ø¦/„uO*»%:l¡†³ ’‰áW6xU®Šöµ’‰ìl¦1Ø eúÑηIÏ¥Þ˜ endstream endobj 102 0 obj << /Filter /FlateDecode /Length 45 >> stream xœ32·P0P°4†& æf )†\–V.L,ÌÑ–p "žŸ} µ endstream endobj 103 0 obj << /Filter /FlateDecode /Length 304 >> stream xœ=’;’Ã0 C{‚ÈŒø“äód'•÷þí>2ÉV€I‰(/u™²¦< i& ÿÑááb;åwØžÍÌÀµD/Ë)Ï¡+ÄÜEù²™º²:ŪÃ0[ô¨œ‹†M“šç*K· žÃµ‰ç–}Ä74¨uK ÝÕhY Ípuÿ;½GÙw5<›TêÔQæù!O¢‡éJâ|<(!\{0FäSÑ@޳\­ò^Bö·²ÂAjIç³'<ØuzO.nÍd¹TøNQìíÐ3¾ìJ =¶áXî};š±é›8ì~ïFÖÊŒ®h!~ÈW'ë%`ÜS&EdN¶Xn‹Õžî¡(¦s†s êÙŠ†RæbW« ;o,/Ù,È”Ì 2F§Mž8xÈ~šôy•çxýlós; endstream endobj 104 0 obj << /Filter /FlateDecode /Length 230 >> stream xœ5QInÃ0 ¼ëóâ.¿ÇAOíÿ¯Ò ``hKœÍx‰ÁÏAäÆ[ÖŒšø›É]ñ»< ·‚'Q^†{Ù .o—ý8Ì|ð^Z9“O2 ÙôðDÈ`—@èÀìÔa›i'ú†„ÏŽH5YN_KÐK«(OÙ~§ J´­êÏí³.´íkO8Ùí©'•O ž[²—WLcôDå.ÅôAª³…ž„ò¢|²ù¨!]¢œ'£@;°ç¶Ÿ‰W… uuŸ¶¡)Oÿ645I"ä%œÙÒ¸[øþž{ýü¦TSŸ endstream endobj 105 0 obj << /Filter /FlateDecode /Length 237 >> stream xœEQIr! »÷+ô©Â+ðžNÍ©óÿk,3IN`k1i-x‰!ÖÀÌ/¹|Mè4|72Ûð:ÙpO¸.Ü—Ë‚g–ÀWT—w½/]ÙH}w‡ª~fd{³HÍ••:õB4&Ø!=#2ÉV,sƒ¤)­Rå¾([€.ê•¶N;’ #áo”#áéJvMl«Ô: ¡˶.ˆ:™$¢vaqjñ–!"Ÿuc5Çø‹N"vÇãþ¬0ëQ$’ÒgÝq&£M–]9¹yª°V*9ˆ>^ÑÆ„êtªc¼×¶ôià¹ö_á>}ÿú¹Þ?Æî\" endstream endobj 106 0 obj << /Filter /FlateDecode /Length 245 >> stream xœEP»C1 ë=`ý,{žwH•Û¿=JFp…!Z?’Z˜ˆÀK ±”oâGFA= ¿…â3ÄÏ…A΄¤@œõ™x†ÚFnèvpμÃ3Œ9ÅZp¦Ó™ö\Øäœ'Îm”ñŒBºITqTŸqLñª²Ï×¥µl³Ó‘ì!„KI%&—~S*ÿ´)[*èÚE°Hä“M4á,?C’bÌ ”Q÷0µŽôq²‘GuÐÉÙœ9-™Ùî§íL|X&™Qå)ç2>'©ó\N}î³Ñ䢥UûœýÞ‘–ò"µÛ¡ÕéW%Q™Õ§¸<ÿŒŸñþŽ Y> endstream endobj 107 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ5O;²! ë9….Œm`ϳ™T/÷oŸd² þHòôDG&^æÈ¬Ùñ¶ˆøSñ¯=íÄê=¸‡åâB˜a$œ5븛§ãÅ¿]å3ÖÁ» ¾b–¶0“õ•Å™ËvÁX'qN²c×Dlc]ëéÖL(!í0%È)}²£Œ9:Nä‰çbªÅ.¿ïa}Á¦1¢ÂWOÐdP–=ï& ôßÕßI4‹^2‘`a$æÎYNøÕkGÇQ‹"1'¤ä2Òœ®b ¡ Å:; *—êsÊÝ>ÿh][M endstream endobj 108 0 obj << /Filter /FlateDecode /Length 338 >> stream xœERKrÅ0Ûç\ 3ægãó¼NWéý·•p:Ý<ô  2=eH¦Ü6–d„äò¥WdˆÕŸFŽDÄß)¡À®ò¹¼–Ä\Èn‰Jñ¡?—¥72ͮЪ·G§6‹F5+#ç C„zVèÌîQÛdÃëv!é:S‡p,ÿC²”uÊ)”mAߨ#èo<ܳær³¹Lnõ¿î[ ž×:[±m@ –sÞ`Äà ÚÄÜÚÞ)(UºŠI­ò\';P¶Ðªt¼7€9`Ã’­×hoÃ>ô¢FÅö ¨, þÎÙfÁÞ1ÉH°'æN=q:Å‘pI8Æ@Š­âºñØâ/®ˆšð u:eM¼ÂžÚâÇB“ïRqð"n]EµlOç ´?*’3b¤ÄÑ ‘ԒΗõÐû¸‰¯Äæž¾Ý?Â9Ÿëû¸ƒà endstream endobj 109 0 obj << /Filter /FlateDecode /Length 133 >> stream xœMAÃ0ï~…ž€±óžtzJþ-6î팀‘†03× endstream endobj 110 0 obj << /Filter /FlateDecode /Length 68 >> stream xœ32·P0P°4†& æf )†\@¾©‰¹B.H Äʳ €´%œ‚ˆ[B4A”‚X¥f&fI8"—É´å endstream endobj 111 0 obj << /Filter /FlateDecode /Length 163 >> stream xœE¹u1 CsUx€:ê?G³ý§ i¼Þ@úx„xˆ= Ãr]Å…Ñ ?Þ¶Ì4¼Ž2ÜõeÆø¨±@NÐ"W£IõíŠ3TéáÕb®£¢\/:"Ì’ã«@#|:²ÇC[Û™~:¯ì!ïÿ**çna.ªî@ùRñÔÙQêš¡*+kjÚ¿»"”¶}\Neœº{´Âg+Wû}¨ç:€ endstream endobj 112 0 obj << /Filter /FlateDecode /Length 126 >> stream xœ=ŽA!ツXeAÞ3[sšýÿuAÖ9¥+˜˜®‹U(ÕÞ”°˜T}PŒi²Ò·„ôlªvÀ“ÐÈvv¼ ¢ RþwJêUÞožD 8ÊnI2¢tN×\þØ}Rk‹¹kg—å蜔 …%/äíþî . endstream endobj 113 0 obj << /Filter /FlateDecode /Length 255 >> stream xœE‘K’ D÷ž‚#€üä<™šUrÿí4˜L6v—¨ý„J#¦,çy0ýÈòÍd¶éµ«Š"Ìä*ôXÕ)â̵Dµõ±2rÜéƒâ 箜T²¸QÆ:ª:8¦çÊúªîü¸,ʾ#‡2lÖ96på¶aŒ£ÍVw‡ûD§“©£âvløƒ“ƾÊÕ¸N6ûê%‚~¡ LòM u†@ãæ)zr öñq»ó@°·¼ ¤läÈŒA»N®qëüÞÿ:ÃçÚ WŽwñ;Lk»ã/1ÉŠ¹€EîÔó=­ë ïÉ™crÓ}Cç\°ËÝA¦Ïüë÷PŠfˆ endstream endobj 114 0 obj << /Filter /FlateDecode /Length 71 >> stream xœ³0¶P0P040S047R076R015QH1ä ˜¹\0Á0˨,,‹`AdA,#SS¨ ¢Ã®Á‚Ȧëç2 endstream endobj 115 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ=P»C1ë= äÎ|í7ÏË¥Ëþm$œ¤B6B”šLÉ”‡:Ê’¬)O>Kb‡¼‡ånd6%*E/“°%÷Ð ñ}‰æ÷ÝÕ–³C4—h9~ 3*ªÓK6šp*º ÜÃ3ú mtV‡±[ Ф`×¶ rÇ Á™‹" JMÿ­r÷RÜï=o¢ˆ”tð®ùåôËÏ-¼N=ŽDº½ùŠkq¦: DpFjòŠtaŲÈC¤Õ5=kµ®Þzù7hGt€ì‰ã4¥CÿÖ¸Ç뇊Rô endstream endobj 116 0 obj << /Filter /FlateDecode /Length 161 >> stream xœEKà C÷œBGðG|žtºJï¿­!M³€§±@w'©µÑ/mKº >[ ÎÆxè6n5äu€V¤ãh”R}¹Åi•tñh6s+ ­fz”£ :Þí¢är¦îÎùGpõ_õG±îœÍÄÀdå„fõ)î|›Q]ÝdÒcnÖköª°´¬¥å„ÛÎ]3 î©íý©s:„ endstream endobj 117 0 obj << /Filter /FlateDecode /Length 236 >> stream xœMPKnD! ÛsŠ\àI$!ÎCÕUçþÛ±ÃTí*†Hé²UëSbu‰ìò¥M—Ê2y¨åOÛÿQ nÿÐÈA´·ŒbæÖÅÂ$<å4#'×,;Of…ÆÄã.`Ÿ5[•Í9m:7@º·ª³ÞdP "êBÍ“.œ§Ñ—ˆ9ž¨`Jw&µ\>Õ¡qZ½ ¹c‹“oÄY¡ÀaÐLqÖ_֨ɲYÈ I†!Î}£{” ¨Êy+“¡õ†Õ •¹…¢©å’üÚ0¶Œué JªÁß*§}¿$]S endstream endobj 118 0 obj << /Filter /FlateDecode /Length 332 >> stream xœ-R9Ž$1 Ëý ~`ëòñžLÔûÿtIUªlË<ärÃD%~,ÛQkâ×Ff Âð¯«Ì…ïHÛÈ:ˆkÈE\É–ÂgD,ä1Ä<Ä‚ïÛøù¬ÌɳÆ/Ù÷Vì© ËBÆ‹3´Ã*ŽÃ*ȱ`ë"ª{xS¤Ã©$Øã‹ÿ>Ås‚¾#hÀ/ùç«#x¾¤EÚ=fÛ´[–iG•–ƒíiÎËäKë,WÇãù ÙÞ;BjW€¢0wÆy.Ž2meDkagƒ¤ÆÅöæØ¥]èÆe¤8ù™*ÂJšÌl¢ þÈé!§2¦®éJ'·QwêÉ\³¹¼I2[÷EŠÍÎë™õw˜2«Í;y–¥NEø{¶ ãêÙk™…F·9Á+%|6vzrò½šYÉ©HHÓº N£ÈKØ–øšŠšÒÔËðß—÷ÿ3â| endstream endobj 119 0 obj << /Filter /FlateDecode /Length 157 >> stream xœE¹C1DsUA °ê±ÇÑwÿ©ùJ´o-‡¯%Sª'"¦Ü×hô0yŸM%V,Ø&¶“rAJ1˜xN1«£·¡™‡Ô븨ª¸uf•ÓiËÊÅóhW3“=Â5ê'ðMèøŸ<´©è[ ¯ ”}@µ8IP1}¯b£œv"œà>G™)#qbn ì÷f¾W¸ÆãÝ7y endstream endobj 120 0 obj << /Filter /FlateDecode /Length 320 >> stream xœ5Q»qÅ0 ë5ðø•4s¯ÊÛ¿ @;a@ª¼dJ¹\ê’U²ÂäG‡êMù>`¦üõãèÙ!ºSÖ–{ËÄ<¥ŽXM–{¸/ M‰¹…ó÷è+£0ºÅß?@³$0ipðSk­Zb‰<,X³+Ì­)TÈU|;6¹rq³Ð§š·Ü‚ðeˆdGj±¯Ëe)ò»õ „æˆO‰…çf"ñ'b{öÙbWW/ªÖI‡RÒln04E²êƒØWÇ5?OGÙÁÉA¿ŠÁø68™/Iy_¡þÏÙȱ’C$ò}µÀˆ#l€¡Oí#e 4E÷î™R>&UŠïF!}ªW2¼‘Ùj†Íÿ]Ù* UYŸFp&ƒI8ód£ ÓRµÓ¿ûÜãóccz€ endstream endobj 121 0 obj << /Filter /FlateDecode /Length 338 >> stream xœ5R9®Ý@ ë} ] €vÍœç©~î߆”_ C´VŠšŽ•iùe!U-“.¿íIm‰ò÷É ‰’W%Ú¥ ‘Pù<…T¿g˼¾Öœ K• ““’Ç% þ —Þ.çck?#w=z`UŒ„Ë£kY:»Ãšü<¦?âr®X·cH ºqÚïCóyÈ f˜–Š ]V‰~Añ G­}÷XTX ÑíIpŒP‘€vÚH 9³»¨/úY”˜ tí‹"î¢ÀIÌœb]:ú>t,¨¿6ã˯ŽJúH+kLÚw£IiÌ"“®—Eo7o}=¸@ó.Ê^Í ASÖ(i|Ъc(še…wš 4LJÌ<‡3”ô}(~_K&º(‘? ¡_£ŒœosÑŸ¶ŠñÙa¯`…ÒÅšä}@*z`úÿ×øyþü¶€T endstream endobj 122 0 obj << /Filter /FlateDecode /Length 88 >> stream xœ5Œ»À0C{OÁ‹÷É¥JöoƒíЀ¤w÷‚ƒ:Aò¸)œ.nÙWz“ž&±ôLCíß`EÕ‹Z-_ncÐb*¾?ú$ –uò^8ôÞÅ{ endstream endobj 123 0 obj << /Filter /FlateDecode /Length 72 >> stream xœ5Œ±À0{¦Ð6X`ï“KEöoC|N/—¢ÁZ º‚#pu©üÑ#]¹)E—c΂áqª_H1F=¨#ãÞÇO¹_p} endstream endobj 124 0 obj << /Filter /FlateDecode /Length 392 >> stream xœ=RKn1ÛÏ)¸@¥ðMrž©ÞîÝ[›ÌTª /¶1”— ©%?ê’ˆ3L~õr]âQò½ljgæ!î.6¦øXr_º†ØrÑšb±OÉ/È´TX¡VÝ£Cñ…(-àá¾ÿñ¨Á×°…rÃ{d`JÔn@ÆCÑHYAaû‘è¤P¯láï( WÔ¬…¡tbˆ –)¾« ‰˜¨Ù ‡„•’ªÒñŒ¤ð[Á]‰aP[[ÛxfÐÙÞ‘3íÑqYk?=é£Q2µQMg|ñÝ2RóÑè¤ÒÈÝÊCgÏB'`$æI˜çp#ážÛA 1ôq¯–Ol÷˜)V‘ð;ʽýÞ’Ï{à,Œ\ÛìL'ðÑi§­¾býƒ?lK›\Ç+‡E¨¼(~×Aq|XÅ÷d£Dw´Ö#Õh% ÂÎí0òxÆyÙÞ´æôDh£DÔŽ=(²Å地§ü¬Í±ž&{o´”Į̀„Ôvz¨¶ÏcÔwžûúü.¡ endstream endobj 125 0 obj << /Filter /FlateDecode /Subtype /Form /Length 37 /Type /XObject /BBox [ -184 -236 1288 929 ] >> stream xœã240S065UÈå276³rÀ,#s# $‹`AdÓ_ endstream endobj 80 0 obj << /FontMatrix [ 0.001 0 0 0.001 0 0 ] /Name /BitstreamVeraSans-Roman /FontBBox [ -184 -236 1288 929 ] /Encoding << /Differences [ 32 /space 40 /parenleft /parenright 45 /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon 61 /equal 65 /A 68 /D 82 /R 97 /a /b /c /d /e /f /g /h /i /j 108 /l /m /n /o /p 114 /r /s /t /u /v /w /x ] /Type /Encoding >> /BaseFont /BitstreamVeraSans-Roman /Type /Font /CharProcs 81 0 R /Subtype /Type3 /FontDescriptor 79 0 R /Widths 78 0 R /LastChar 255 /FirstChar 0 >> endobj 79 0 obj << /FontName /BitstreamVeraSans-Roman /Descent -236 /FontBBox [ -184 -236 1288 929 ] /CapHeight 730 /Ascent 929 /MaxWidth 1342 /StemV 0 /Flags 32 /XHeight 547 /ItalicAngle 0 /Type /FontDescriptor >> endobj 78 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 318 401 460 838 636 950 780 275 390 390 500 838 318 361 318 337 636 636 636 636 636 636 636 636 636 636 337 337 838 838 838 531 1000 684 686 698 770 632 575 775 752 295 295 656 557 863 748 787 603 787 695 635 611 732 684 989 685 611 685 390 337 390 838 500 500 613 635 550 635 615 352 635 634 278 278 579 278 974 634 612 635 635 411 521 392 634 592 818 592 592 525 636 337 636 838 600 636 600 318 636 518 1000 500 500 500 1342 635 400 1070 600 685 600 600 318 318 518 518 590 500 1000 500 1000 521 400 1023 600 525 611 636 401 636 636 636 636 337 500 500 1000 471 612 838 361 1000 500 500 838 401 401 500 636 636 318 500 401 471 612 969 969 969 531 684 684 684 684 684 684 974 698 632 632 632 632 295 295 295 295 775 748 787 787 787 787 787 838 787 732 732 732 732 611 605 630 613 613 613 613 613 613 982 550 615 615 615 615 278 278 278 278 612 634 612 612 612 612 612 838 612 634 634 634 634 592 635 592 ] endobj 81 0 obj << /parenright 82 0 R /seven 83 0 R /hyphen 84 0 R /period 85 0 R /one 86 0 R /four 87 0 R /zero 88 0 R /colon 89 0 R /parenleft 90 0 R /space 91 0 R /six 92 0 R /two 93 0 R /equal 114 0 R /slash 94 0 R /nine 120 0 R /three 121 0 R /eight 124 0 R /A 97 0 R /D 98 0 R /R 99 0 R /five 100 0 R /a 103 0 R /c 104 0 R /b 105 0 R /e 106 0 R /d 107 0 R /g 108 0 R /f 109 0 R /i 110 0 R /h 111 0 R /j 112 0 R /m 113 0 R /l 102 0 R /o 115 0 R /n 116 0 R /p 117 0 R /s 118 0 R /r 119 0 R /u 95 0 R /t 96 0 R /w 122 0 R /v 123 0 R /x 101 0 R >> endobj 6 0 obj << /F1 80 0 R >> endobj 7 0 obj << >> endobj 8 0 obj << >> endobj 9 0 obj << /M11 23 0 R /Vera-minus 125 0 R /M40 52 0 R /M30 42 0 R /M43 55 0 R /M49 61 0 R /M50 62 0 R /M16 28 0 R /M12 24 0 R /M21 33 0 R /M19 31 0 R /M32 44 0 R /M2 14 0 R /M33 45 0 R /M45 57 0 R /M22 34 0 R /M8 20 0 R /M23 35 0 R /M64 76 0 R /M3 15 0 R /M9 21 0 R /M60 72 0 R /M14 26 0 R /M51 63 0 R /M36 48 0 R /M54 66 0 R /M17 29 0 R /M7 19 0 R /M31 43 0 R /M56 68 0 R /M18 30 0 R /M10 22 0 R /M55 67 0 R /M5 17 0 R /M39 51 0 R /M46 58 0 R /M1 13 0 R /M53 65 0 R /M63 75 0 R /M26 38 0 R /M20 32 0 R /M6 18 0 R /M57 69 0 R /M65 77 0 R /M27 39 0 R /M41 53 0 R /M48 60 0 R /M13 25 0 R /M58 70 0 R /M59 71 0 R /M34 46 0 R /M52 64 0 R /M29 41 0 R /M35 47 0 R /M44 56 0 R /M24 36 0 R /M4 16 0 R /M61 73 0 R /M15 27 0 R /M0 12 0 R /M37 49 0 R /M28 40 0 R /M47 59 0 R /M38 50 0 R /M25 37 0 R /M42 54 0 R /M62 74 0 R >> endobj 62 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 51 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 23 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 38 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 44 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3P0VÈUÐ5¡(edäp9qSÉ endstream endobj 55 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 26 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 17 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 50 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 75 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 42 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3P0VÈUÐ5¡(edäp9qSÉ endstream endobj 40 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3P0VÈUÐ5¡(edäp9qSÉ endstream endobj 33 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 59 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 60 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 52 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 36 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 22 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 16 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 49 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3PÐ5VÈÆ 9 ÒÄÍárâSÅ endstream endobj 18 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 43 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3PÐ5VÈÆ 9 ÒÄÍárâSÅ endstream endobj 64 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 13 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 45 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3PÐ5VÈÆ 9 ÒÄÍárâSÅ endstream endobj 37 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 72 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 66 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 74 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 57 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 73 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 20 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 34 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 46 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3P0VÈUÐ5¡(edäp9qSÉ endstream endobj 67 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 63 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 53 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 15 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 70 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 12 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 28 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 54 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 47 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3PÐ5VÈÆ 9 ÒÄÍárâSÅ endstream endobj 71 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 19 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 27 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 39 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 61 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 76 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 56 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 58 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 41 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3PÐ5VÈÆ 9 ÒÄÍárâSÅ endstream endobj 32 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 14 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 65 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 77 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 68 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 31 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 35 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 69 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 30 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 25 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 48 0 obj << /Filter /FlateDecode /Subtype /Form /Length 28 /Type /XObject /BBox [ -3.25 -3.25 3.25 3.25 ] >> stream xœ3P0VÈUÐ5¡(edäp9qSÉ endstream endobj 29 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 21 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 24 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj xref 0 126 0000000000 65535 n 0000000016 00000 n 0000000065 00000 n 0000000216 00000 n 0000000275 00000 n 0000000512 00000 n 0000027253 00000 n 0000027285 00000 n 0000027306 00000 n 0000027327 00000 n 0000000383 00000 n 0000014142 00000 n 0000034227 00000 n 0000031739 00000 n 0000036404 00000 n 0000033918 00000 n 0000030953 00000 n 0000029239 00000 n 0000031269 00000 n 0000035006 00000 n 0000032983 00000 n 0000038113 00000 n 0000030799 00000 n 0000028459 00000 n 0000038268 00000 n 0000037641 00000 n 0000029085 00000 n 0000035161 00000 n 0000034381 00000 n 0000037958 00000 n 0000037487 00000 n 0000037022 00000 n 0000036250 00000 n 0000030027 00000 n 0000033137 00000 n 0000037177 00000 n 0000030645 00000 n 0000032056 00000 n 0000028614 00000 n 0000035316 00000 n 0000029865 00000 n 0000036088 00000 n 0000029703 00000 n 0000031423 00000 n 0000028768 00000 n 0000031894 00000 n 0000033291 00000 n 0000034689 00000 n 0000037796 00000 n 0000031107 00000 n 0000029394 00000 n 0000028304 00000 n 0000030491 00000 n 0000033763 00000 n 0000034535 00000 n 0000028930 00000 n 0000035780 00000 n 0000032673 00000 n 0000035934 00000 n 0000030182 00000 n 0000030337 00000 n 0000035471 00000 n 0000028150 00000 n 0000033608 00000 n 0000031585 00000 n 0000036558 00000 n 0000032365 00000 n 0000033453 00000 n 0000036868 00000 n 0000037332 00000 n 0000034073 00000 n 0000034851 00000 n 0000032211 00000 n 0000032828 00000 n 0000032519 00000 n 0000029548 00000 n 0000035626 00000 n 0000036713 00000 n 0000025650 00000 n 0000025435 00000 n 0000024884 00000 n 0000026703 00000 n 0000014164 00000 n 0000014386 00000 n 0000014526 00000 n 0000014650 00000 n 0000014771 00000 n 0000014923 00000 n 0000015085 00000 n 0000015368 00000 n 0000015508 00000 n 0000015728 00000 n 0000015817 00000 n 0000016207 00000 n 0000016528 00000 n 0000016652 00000 n 0000016888 00000 n 0000017092 00000 n 0000017252 00000 n 0000017485 00000 n 0000017785 00000 n 0000018106 00000 n 0000018266 00000 n 0000018384 00000 n 0000018762 00000 n 0000019066 00000 n 0000019377 00000 n 0000019696 00000 n 0000019997 00000 n 0000020409 00000 n 0000020616 00000 n 0000020757 00000 n 0000020994 00000 n 0000021194 00000 n 0000021523 00000 n 0000021667 00000 n 0000021955 00000 n 0000022190 00000 n 0000022500 00000 n 0000022906 00000 n 0000023137 00000 n 0000023531 00000 n 0000023943 00000 n 0000024104 00000 n 0000024249 00000 n 0000024715 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 126 >> startxref 38422 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_match_distribution.png000066400000000000000000001023531323370031300232200ustar00rootroot00000000000000‰PNG  IHDRôMö7sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ %pÀˆ IDATxÚìÝwxTeÚÇñï”L2©¤'¤7BMZUPEЕ""®•ÅŠ`ÙUY`U`m/ŠJMEz‡„–Cé½'“Lyÿ@G#‚²’äþ\p%sæ9çÌüÎÉÜóœª0™L&„BÑ¢)%!„B ºB!¤  !„B ºB!¤  !„RÐ…B!]!„RÐ…¸!Ö®]Kll,™™™W=î§Ÿ~ú—½æªªªK†—••±víZÖ®]KVVÖÿüZu:§OŸ¾âû®ªª"&&æ’ç’’’.¶gÏ222øòË/Ñét—®^¯çøñãlݺ•œœYA…‚.ÄóÙgŸÊŒ3¨®®¦  € 6pêÔ)ÒÒÒHMMåÛo¿¥±±€#GŽpàÀ’““ÈÍÍeÆ ›‹ÚîÝ»III!##ƒ-[¶ðËë;=zÔ<­„„ó°ï¿ÿž¦¦&Ž;Fuu5œ8q½^϶mÛHLL 55Nǯ¯•‘‘AFF]»vÅÑѱÙsGeûöí¤¦¦ÐÔÔÄ–-[8zô(ÅÅÅ|ýõ×;vŒÄÄDæÍ›Çž={šMcß¾};vŒääd4 AAA455±yóf¶nÝJAA/¿ü2k×®¥¬¬Œääd¾ýö[¼¼¼°··çäÉ“¤¤¤°mÛ6ŒF#.\ ¨¨ÈœÙ‰'˜3g;vìÀ××[[[šššøþûïͯóÔ©S¤¦¦²yófôz}³ùFY¡…t!Ú*“É„^¯ÇÂÂ¥RIII ~~~|ñÅœ={–M›6ñý÷ßc2™xï½÷ˆ‹‹#66–††Ξ=KMM Ï=÷ÞÞÞ̘1½^ÏóÏ?••o¾ù&{÷î%''§Yoöܹs|ÿý÷”——³jÕ*víÚņ P©T¼ð 8::òòË/óâ‹/âääÄ+¯¼‚J¥"11‘-[¶˜§³jÕ*²³³Í­¬¬ÈÍÍåÃ?$==ý’ž³­­- ,àܹs¼ð hµZvíÚž}û˜={6 \]]qww'00Ð<þš5k8zô(™™™TTTP]]ͦM›Xºt)uuuØØØ`ee…³³3ݺu#//×^{ :ĹsçHLL¤¢¢‚ùóçoþ‚ñÙgŸáêꊫ«+ÁÁÁìÞ½›¼¼<^xáÔj5ëׯg×®]¬[·Ž={öP[[ËG}ÔlþƒAVhѪ©%!.¯¦¦†ÔÔTÜÝÝÑjµlݺ•ÊÊJòòòÌEñž{îÁßߟ­[·baaÁý÷ßODDk×®åìÙ³ôíÛ—^½zÑ¡C éܹ3ýúõcëÖ­ÜyçÔÖÖkžç¨Q£˜9s&Œ?ž]»vñàƒÒ¡CV¬X¿¿?NNNx{{“””„µµ5ƒ///ót&NœØì½tëÖÅ‹£Óé˜4i«W¯6?×½{wúõëGaa!ÇŽãÈ‘#888ÐÔÔDMM ÷Þ{/k×®ÅÓÓ“ &àâ₯¯¯yü¸¸8^{í5Ùºuk³÷òÉ'Ÿ`2™èÞ½;ŽŽŽtêÔ‰Ó§O3bÄÂÃÃÍ[2ƃƒ?ü0æ­ &“ '''œÍï ´´”áÇãççgþR4vìX¬­­yýõ×™6mZ³ù[XXÈJ-¤‡.D[äååÅĉ6l111œ9s†‘#G¢ÑhÌÅF¡P˜Û÷ëו+W²e˲³³ !>>ž¸¸8Ξ=‹‡‡‡¹ý/Çû%Fƒ½½=;vì oß¾DEE±|ùr6oÞŒ»»;ñññxzz¢×ëIMM¥wïÞôêÕ‹#Fеk×f½îòòróã””ˆ‰‰!$$¤Ù<“““Ù·o7n¤gÏžôîÝ›¾}û2bÄ:v숅…cÇŽeïÞ½X[[“Ýl?ü€ø¿ÿû?Ö®]K]]yxEE÷Üs deeÑØØÈ‰'0™L(•—~ü¬\¹’+VеkWüýýÙ±c›6m¢´´KKKòóóÉÈÈ0·wsscóæÍ,_¾œ\2½_Ï_ˆÖLq-nÎræÌÎ;Ç­·ÞjVTTDBB·Ür Z­V’-Rbb"½{÷Æh4räÈ‚‚‚ˆ'88ª««ñòòÂÚÚšãÇÎñãÇihhÀÊÊŠððp HJJ¢_¿~899™Û¥¦¦ˆÁ` 77·Y‘ÍÍÍ¥¨¨ˆˆˆNœ8AQQƒæèÑ£ôìÙ“¦¦&RSS gÿþý466Ò¿²³³ $33oooììì())!!!¢¢¢š}¡HNN¦¢¢///BBB0 ìÛ·ƒÁ@TTYYYdddгgOÚ·oORRuuuDGG›§qèÐ!ììì0tìØ‘ÌÌLœ9|ø0ÞÞÞ„‡‡sáÂ’’’4hååårþüyìííÉÍÍÅ‚ÜÜ\† ‚B¡ >>kkkL&“¹7_QQ¯¯/®®®hµZöìÙƒ››aaaæLÕj5©©©¸¹¹5›¿RÐDZcÇX¶l|ðyØóÏ?ÏôéÓYµj¯¾úª$-„B\G×dzDDööö͆YZZLCCpq˜”"„Bü1*•ê²»æ®[A7™LÍþ+•JŒFc³ÓDbccQ«å¼´´4:vì(9H’C ÊÁh2a2),.âBy!~”Ôè¸pô0ùµ* ±×ú1pd4‡×îáxU1Þyä8†òü`k1ä")³•ºˆžá·9¼+ù?”óÝÁï°Wj±riG?|ƒƒ©«*çB~66ÖxyµÇÁ¡`¢²² ¥R‰F£ÁÒÒRÖ‡VN¯×3nܸ?Üþšlrß¾};Û¶m#::šÚÚZî½÷^öïßo>’µcÇŽÄÄÄ\Õ k­¼%ÉáÆæ`0™È8›Îæ“ÉÏžAUïͽ“ï¢zë”þ܉݃]P(ÜÑ JÖ‡_Q*•Ò!»Üß+èWK º¢UÑét$ŸRF'ÃY†i;Ñí‰;ÀÆïÉ£%,ѪHAB´h&“ ƒÑˆRi"6é§7nÁMeGô˜ûèZ^BÄÝ=žT+¦×ë9zô(EEEtêÔ‰   NŸ>ÍÙ³g:t(Z­–#GŽP\\Lpp0MMMdee1lØ0öîÝK§Nš]ʸ¥’+Å !Z$£ÑÈŽƒû™³àf½ºÃùsô.€ys_à‰×ž$,Ìe·.T Óéxþùçñòòâ•W^!55•¥K—âîîÎßÿþwt:Ï>û,ÞÞÞúè£6ŸôÐ…¹ºº:Ôj5uuuüp®†oÿš<:H8âw³lÙ2 xê©§h×®t!„¸‘Y¶låååØºGð·á¡ pź½- ż¥ØWYÉùï¬y= tpÀÏÊê²Ï»ººÉk¯½&=t!„ø+äääàêFXp-½û @­0€­Óœ¨©!±ªêºM?T«½bARÐ…úúzŠ‹‹ñññ&~û)î{p(j`#×µo©fzy—×_ú|||˜;w.Ï<ó RÐ…âzŠçÛo¿eèÐû¨.-eü· ´Ö º›™h½fÏž-=tY „7‚Éd¢¬¬”;F?@‡ oìê*QÚZK0B\#rÚšâºñììlªªªèѯÞ&%íÔF4ÞÞ¸!¾þúkŠŠŠ¤‡.„ÿ‹¦¦&.\H§Npvq¡¢Bö\ >ƒäœrqmét:Þxã ,--ñôôdòäÉ,Y²„’’Ì—_~ɘ4iáááRÐ…âj8p€qãÆâçÀŽ˜zGyà(żUÊÎ~›ÊÊëws_ßÙ88 ¸ìóz½ž¬¬,V¬XÁ´iÓ D¥R1wî\ŒF#‡æ¾ûîÃÏÏOzèBqµ† ÂÙ³…$¯ÛÌ­ãGI ­˜£ãllº]·ékµA¿ÛÆûÇ]8†ŠŠ ÜÝÝ‹7eQ(­æ,RÐ…7Dmm-{öìáŽ;î`צãtõ7|ŸóÖÎήÇ_:…B……ÜvÛmÌš5‹ãÇ3xð`ÂÃÃY´h>ú¨lrBˆßSUUÅ[o½Å³Ï>IüÚƒDßÛ •|ĈëÏÚÚš7ß|€E‹°dÉ’fm†Þês£Ü…×DJJ 3g>‰Öž€~RÌÅ ¥×ë1— olll3üé‚n2™Xºt) , ºº¸x£…ùóçóî»ïRRR"kšm@ïÞ½1èÛQ˜œŒ»§"n¨™™yÉðgŸ}¶Ídð§¿B;v WWWzõêÅêÕ«™:u*ÙÙÙØÛÛãââBJJ ”µMˆV¨  €½{÷rÿý÷sdÛiܼtÈß»ø‹zè&“‰˜˜Ž?NPP<òµµµÌŸ?ŸêêjæÌ™Ã_|ASS<õÔS”••±jÕ*Ôj5sçÎeÓ¦M>|___¦M›Æ¢E‹0”••1gÎvîÜI||<žžžLœ8‘ï¾ûމ'²téRf̘Ѳ zII ®®®¸¹¹™{㆜œJKK›&pðàA¬­­‰ˆˆµOˆ.77—%K–ðòËÿ`ûè?ý6l,äm‘Nzýõ›¾¥%¨Õ¿¿>*•J¶nÝʧŸ~ÊsÏ=Gvv6µµµ<ýôÓ,_¾œ£G’––Æ”)S6l+W®Äd2ѧO†JSS±±±|ùå—¼úꫜ9s†„„>ÿüs¾þúkâââØ¸q#S§N¥K—.TWW“žžÀéÓ§¯Ùû=vìuuuW=ÞŸÞäÎþýûùæ›oèÛ·/ äååáëëK—.]šm‰ŠŠ’b.D+QYYÉôéOÑ[BÔc·K1oæNw÷ë÷Ó¦?úÅB‡ÎÎÎÔÖÖâææ†……Ô××Oqspp ®®Ž§žz FÃc=Æùóç±±±ÀÅÅ…êêj\\\°²²2·ÿ׿þEFF=ô*• ýßdþ—|9DEEÝøº»»;ãǧ²²’^½z‘’’BçÎÑjµèt:úõ“ IÑ…‡PQÞDEUÎK ¤ ûâ‹‹ÿÿj...ØÙÙñÊ+¯ÐÐÐ@ÇŽ±´¼¸nªÕjT*•ù±B¡@£Ñ°uëV’’’°µµÅÕÕ^yåjjj˜9s&«V­2°jÕ* iß¾=NNN”””ðÖ[o‘ŸŸÿ—¿…émøqãdÍ¢…KLL¤k×®¤ì=‹ÖWO—.=$”VîfÿüÖét¼ôÒKÌœ9“€€€V“éÕæ.ç•!þ°ÊÊJ¾ûî;ªã³èøè¼l%ñ—3L˜0¡ÅóëE ºâ[±âKî6’½P+ä2âæ ÕjéÕ«W›ÏA ºâ1™LLyôQH££BR¡PÄMA¯×sèÐ!JKKéܹ3¡¡¡;vŒŒŒ n¹å***Ðh4444P[[‹¯¯/.\ C‡lÛ¶ kkkÌéÓ§ill¤¾¾¥RIcc#J¥’¢Ó騲e ŽŽŽDGGsêÔ©fm°²²ÂÝÝäädFeÞ_£ÈWl!Äï2 de•±ÿ»Í ¾¥*é‹›ˆN§ã…^ ((ˆ×_¸¸8–/_N@@O?ý4 ¬]»–+V°bÅ vìØA~~>óæÍÃÊÊŠóçÏË–-[8pàþþþüë_ÿB£Ñ°qãFÒÓÓ™3g¶¶¶>|˜o¾ùæ’¶Z­–/¾ø‚íÛ·ceeÅÇ|Ãs¿J!ÄïöÌß}åm,kÏ3ìÞ±ˆ¸T}=TW_¿ÿà$÷>}úFdd$ëׯçöÛo§gÏž˜L&:vìHZZ ¨Õj8@TTÉÉÉ>|˜üü|T*wÝuÞÞÞøúúÒ¿úôéC^^ 6Œû￟Ç_Ò¶_¿~„……ÍàÁƒÉÉɹá‹A6¹ !®hãÚ¢úRçå%aˆß6}:lØpý¦¿|9Ü}÷›e'}ýü% !¤  !Z¢²}q*IeÊmc$ !¤  !Z$Ž"'?nŸò¨d!„t!DKudõ^ Ý ôr”+Á Ñ’ÉAqB´aqÿý”ÐG'âdi-a!=t!DK´mýzκPk4HBHAB´DF£‘“§Š|k|´vˆ­€lr¢1™Lÿz3O½<µR%!=ôŸ%$$°uëVŒF£yXJJ ëÖ­£ªªJRâæ©æ”feÒÔ«z“QòB úϲ³³Ù¿?F£‘Í›7““Cll,Ý»w—ËG q9ÏÒ¯÷éç‚•ÜtE)è¿”ššJdd$ƒ âĉ9r„¼¼<Ö­[ÇÑ£GÍm«««©­­•Ô…ø 4•—³îÿ–óʳ¡PÈ-Q…¸YÕÖÖR]]}ã ºçÎ###êêêðöö¦GŒ=š””sÛÌÌLrrrdi q£ét•*FÌz¥RŽ…âf–““Cffæ/è;wÆÒÒ’øøxÆǦM›èÕ«666ìÙ³‡ñãǛۆ‡‡*KKˆ¬<¯„w$04Ô[Ââ&JxxøUwMŽrÿeѾÿþûxàd©q3tÎSàx^>OŒ&aъɶ7!Z³šêÝÚóåÞC²©]ˆVNÎC¢Ë9žÅÜý;˜~ç-†RÐ…-QýÁØ:òzÀý´oß^¢•“mpB´FUUT†Q¤3H1B º¢¥JٞʮÒShËK$ !¤  !Z¢ê‡pÙ•ú„d,--%!ÚÙ‡.DkRUE_E¥E$™!]ÑÒįK¦ò6o†¹úÒmæL D)èBˆ–¦zç!:=Ø‹‹›Ùííí%!ÚÙ‡.DkP[K¦KÎÕUqðàAÉC)èBˆ–èÀÊ}õ´o„ÄÄD Dˆ6H6¹ ÑÂÕì9D‡`¥¶à½ÿü‡GyDBBzèBˆ¥¾žãV^\h¨A©PðøãÓ®];ÉE)èBˆ–dûòýxtµ§ƒ­#VVVŠRÐ…-†ÉDÍxú=<_+;–.]*™ÑÆÉ>t!Z"Ž=z‚+JÙ½þ[(,,üͦVVV888HfBHABÜT 6}±Ÿ¨‡£Xýéçh4lmm9sæÌo6?uê3fÌÜ„‚.„¸iÔ×Ss&þãûऱÆÕÕ•qãÆ]q”ËõÜ…­‹ìC¢¥0A­fckk+²²²$!„ôÐ…hqjjØøÝq?öí§¬¬L2BH]ˆ¥ €ºŠ zÜÒ•†ºzöïßÏ=÷Ü#¹!¤  Ñb45³3+Ž—ãåÚ­VËsÏ='¹!®mA7üç?ÿáÝwߥ¼¼Ü<¼¦¦†‡~XâϺpoöœdêá(P R©°¶¶–\„×¶ =z___ÆÏš5kÌ×/_.·oâÏJK£ÖÕ•ÝüIOOg×®]’‰âúôŠŠ qrr¢¢¢¸x·'­V‹Ñh48xð ÇŽ“Ô…ø#1ùs0G[ Ë–-#::Zr¢•;vìØÿtä?}”{÷îÝY¼x1YYYDGG³wï^|}}qrr¢  €¼¼<óÍ"¢¢¢dI ñO§² G¾­ ‰‰‰<óÌ3XXXH0B´rÄÄÄÜØ‚îââ£>JMM ;w&33“€€ˆˆˆÀÏÏO–ŽW+9™ÚÎèZÞ@ïÞ½%!Äõ-è¾¾¾æßÍ¿K1âÐØH­o0›ÎlSM{·”J9!Eqeò)!ÄM¦&ñ8GK+‰ð€={öH1BܸºâÚ0%'ÓØ½+u–}úÏ>ûìïŒaÀ`¨ÅdjÂhlÄ`Ð£ÑØ¢RÉ&BHABü59¯õ!;;ŸùÇ?þB¡ ®®”£GÓÈÊj¢¼ÜHE…‘òr#çÏkX½újjjÕÔ7(ð÷­aàÀ RÒ…B'Ù !]q£œßq˜úÈP"¬\0ÉÊ:ÇÚµ¬_g¡<˜ÎÁê­j©°¨ÀdcBg£D嬣*°´ 4‡*=Ø| Šmñ±È¡c€=……ß2`€°±qG©´l6ïþóŸ„„„\ñõ9;;3tèPYPBHAB\¶sž”„eïžÚ¹Ó*%FcGÖ|¡'g##ˆg‰ÍV\9Fm\5 ÀB©ÀÒ í}|@¥¥L&ŠJŠ9êäÈîaìvëA\uw¾ÿÎ Íüm²éÛã{Ì‚>}"Q©.^q.$$äwoÃzµ§Ð!¤  Ñv˜LÐÐÀÁ*gr%²bA!^ùŽ„å,c¶Õ,¼ÊÉìAí¨û° {›šòZ0ý<ú‰'˜>}z³IºUTp[r2·íÞ »¾";{炃8xWgNz c_f1øsWŸ$^zÉŠ®]Ãe9!]ñ§ôìX¶ƒs_§à±o lÓIïâJâøž|ì{/Ü7ž;]½Ñ(û‚2¹¹¹—l×¾øÞ<Žò wzy1pçNXó.†&6ëÇ{†Gx§÷Ýz˜[oÕa2éQ(ä#A)èBˆ«Ò•MÆüÏq[±Žê0{>ýרz>Î]ÁÁ<ëêÅîM[âðççÓ®Œyñ¿É„&=±K–pﶇØ;d( «¦1uæââóäSÎøz‡ @! H)èBˆ+1éõT}»…ÊÙoPfYÏë¯?Œï¾¼Ðv.×wæ tèg";›Á‹3xÓ¶w‰à³æ0p >tˆ‡§yì$e]ˆD®X!Ä «ä&Œ‰‡ÑMú“³y¡ß]Üù䞸u(ÿÖÿúó_óõ…wß…;±W³ò‡1l [Äù}Ü2HÅ»_죺±N–›ÒCB˜¥¥azó-Î|{ŒÝºðú¿_gÀÙ“Üwô4Mí<‰9™~É(999×dÖuuu\¸páŠm²§M£ÏÀtúðC¾Z=Š8çÌ|åy¾ßžÄ¼7݉ö ‘e(„t!Ú–åË—cm}ñt0jjüê+\óy¯Ã=l›s;=ú¸2+ÕȬ—ç^q:×ê4±úúúß>xî×ÜÝáµ×à‰'è÷Áì^6‚×öÌåo·»rÿ[ûè®ÕÈÂB ºm‡µµõÅsº¥iê >KïÌ?§Ï"t¬–¯Ðr¬Ê†¼Â À­7äõ8;;Ó·oß+¶iÖƒwqyó°¿ç=ݳť IDATý4wwæ¹ÉsÙ3É€eX:wû¡VÈÞ:!n6òW)ĵ֨ =èAª˜Â»LàŸO‡ðE‡ÁœÙùŽŽŽ7ÿû‡­[¹åõÁ쵸—Þ‹Syæþ¦lßOV]¥,g!¤  ÑŠefýï…¬›uˆÛû|@ͲvëÃ8½ŠÆÎ}Ù³i'ãÇOÀÕÕµe¼fΤ]Ü÷<î·ˆåI³I™¨fäÂ$>>—F“Ñ Ë\)èB´"¬XAyßÛ™›:™çg<ÅÃÿuáëèøXÚ°ýX5FM<4ŽîÝ»·¼÷Hê›o2ô³IìÔNåÞ¹‡xóÉr&ÅÇQ¬«—å/„t!Zâbxäö?ü ·(—‘ø–7+^aVH8ºF¶}·“ðÞŽø:9·ì÷©RÁ`wxo>x–u[Ÿ#÷‘ †}}ˆƒe²!]ˆlçNúáõ5Á<þ>ýWx¼}ýžºº:ª²sØVoÇ”»ÂÑÝÚKKËÿÞãââ~û‰ñãÑê–³å›g™ýÃL½\ÏG:3ȹ½¬0BHAâæ”²r%γ^`…z:ï8>Ä“KŠâÕjõÖКNzŸÞ óuhÅ _¿~—¿gú„ pü8¯ Á¾éÃy襉<>²Œg:¢QÊÇŒ-¦ gdd˜˜È!Cððð`óæÍTUUqë­·¶Œsn…¸£V®$àÅ7xAû ‚ùüS=·tŠú¹^OEzŸ×X»z s^y¥meÎñ¿ÍäS§è÷ò‹ÌHŸÉÁ¿•óq·<­leâ:»&ûÐ?ùä† Æ’%KÌÃBCC0`‹/–”EËVWÏù$[¾æý[¹÷ÙrǶmì+•MðB\ŽŸŸ!!WËâk²]0,,Œ°°0˜={¶,qÓØ±cåååWlsæÌ^™<{Œ¸L²žául[ìH;‡_]å­© £^ÏŽÔzª««˜1m‚„|Ö="PïÛɰY/ÓkúóÌzf ÷Œàé€.X(U×€œO"Ú„òòòËŸrõ£|@ãÐ!üÇz,‹*Ÿä¥Ù9<>½juóMì˜L4––²bo:ß…B&ÿ{;Åýë×g6k‡}aiN^<|Çpr_ð«¢P(ð{à^ z†3rÒ?ˆžüS^x‚™·ßÆ7_ H)èBüŠ‹aÆ v$3Åj+Qá¾g‡‹Ë˿ٕDÛ£ÓÁÂ…äÜ;‘ѯc1“o×W0fŒÇ%żªªŠùóæRa0°?¾gûJ)æ×B¡¢ïÝ}é’°œœÓùû3qò±™,:²—:}£$„t!.#%ÃÈ‘¬[²•(åw8GvdÏ.-½{wº¤iaa! üo—4ÚØ3vdWÉï:qusbì§Qºz%NÉŽÜ2z ‹ÞŸÏ‰²| G)èBüLðÞ{ä¿“‡³ïe¦a9/¼TÏòåÁ¸¸¸_:‚É„‹½=‘Þ½¸ÿñQ¸;;Hˆ×½·®fàÝÿoâï˜Ç-/oäÜýY¿¡IâwÈ>tÑú¥¦2üƒX—fÏ,Õ&zv‡ƒïÔØã’¦•••$$$à«ËÈHúŒ¹•JΓ¾‘\\œ˜òÑýì¾;œÜ§¿`ÈÈ©Ä>9–nÓ'Ì3@B ºhst:øøc Þú€4Í"Ámó߬æî»ƒQ©¬.i^SSÃûï¼Cˆg(}'MD¡0`gg%9^côHø¡#»Þg6Ë_&ø1¬¼oŸ™Bäƒânï$A !]´ gÎ`|òï|sÐ’-7àÛë$Wjqq¹ü¥‡5yÌøÇlêkTØÛ[’ãup5GÂ;;;ñÌ’Û‰{ #›^#êéÏ(øtç_|š®w݇µ¥VB ºh•ÊËá¿ÿ¥pÑrf×üƒôîƒù¿ÉÍ·Kš×ÖÖ¢¯¨àTRڎݰ±ÒâÜN#9Þ„½ø‡!uä³”¬ÊaÄÄ9õÚ¹óðŽ‚Z%eBÈ_¸©¥¥¥qòäÉ+¶©©©á‘ûîƒ/¿¤æÅ|ž?Oì¾æooÀÒnX[Û“|Éxééé,k!OÍŸðHò·be%ÅüfïÅ7Ô}•ƨ[ga1Ê«9spï%Á )èBܬNžW¯«§ n…OE¿a? å]86¿ù½yùAwœí.'áÈa²²Ïê핵 ® íìDèv+sÅçu>©Œ>9‡m±°nÙNú‰ôXކâÎ;!, läŽyB º×E“Ñ@^v&Õë×a»"×Sz¾í0Óô¯è=&€Ñ]ìQ©,̽÷ÄÄD¾Ù´‘±cÇr$= W<š4x‡ P[àÝ?\Bm¥þȹì.<4Ó…Æi¡ÄË'kO£Ywˆ® Ÿ§›w=öÃ"aôhèÓœ%T!]ˆÿ• yµ•fePw8 Ëï6a¿û$e.½É¼ûeRï®æ™ŒGó›IÿoíB½¼éã€B¡À· ÷ HrÍi4Ö âÏÀ!þ44 "%åI6m;KÝæ}¬YD˜¶·¨0ú.8<<ÀRîË.¤  À?üpé@……“=eyùTM¦)v-EsæÑ®L‡•Gg ưþßDFú¡ÕZ¢‹‰A£ÑpøÈŽ9LBɘ[F`ª×3Î/ûÈÊò/8ç>P6«‹K{é—-òApv˜Žê{î#ß"ýÁT\_ÞHÇÊwpó´"ÇJOª=Ùž<ýÁb®. ”ûY )è¢ Z³~úS[ZÇÙ Y(ÒÎAÜújµ—烂q›?M·.øù8¡T*1ä•”@Y#ÕÕï‰}bÓNÆ=9™ú¸ãxyz€Á€²kÈÅï–r“øm¿¿Yþmž¸…’Ê¿q6½†Ôä(N<‰Ë‰“ôÞ}‚üð¡8û8`Ù'}ÏHÔ=ºcprAåâZ¹ü¬‚.ZzC#Uõu4ÖA~A9¥ç²hJ+¢î‡dº&Çþ£õt¬¯àV­µ»#ê[G`2Sç.àjKÚª\Ã;bídEFú:Ö½_Tô}h,í«ª˜üÂß/~pÞ9LB׋C;\zµƒ^Þ0e(:CËWÇPк“?P–„ç’ ´Ë]ˆ‡©;{4Î6XtBL½—6aÑ;¹€½v(,äcV´‚®×ëY¸p!z½ž)S¦àææFcc# .Äh4òøããèè(IÿèÌ™3„††Þt¯Ëd2P«k ¾¡‰¯¾ZƒÉ †&*=XÛ[âìà€m“eFŠ/œEQ˜Cy5Ê¢Œey8Õ⮫&Š:jëð=†n÷Ì¢ª=™¨(ÓãâBñÑs¸W—qüÓ5ìËNÆ«¨žÿ /]Ú`?fÍú;X_ìõ$z¹\|­´t³®’ÃE–* 5ÜÒ¿3ôï ÝMYc¥5uVs$÷ÖùÅ”ŸJGž…ÇÖChrsqÒUa«¶ÂÞÞ“¥=*OWlƒ|©³u¥Þ¾*Ol¼ÝÐØ;Ф´@¯P‘ž›M‡ŽQi-±°¶D­VËú n\AOJJ"44”^½zÃO<ÁÁƒéÙ³'~~~|óÍ7<üðÃ×åÅוPštäZU´Ÿm6ü’†¿nÎÅC»~~úâs¦ÿ™ÌÓ0É©)(C;a2ýø¼éâ&¿xüãO£ “ñâÌLFÀøã´ŒÛ*Œ&0€Âxñ÷‹?üýÇçúztuUÔÖVÒT_‹¡¡Sc# …”&Ôõ&ÔõMèëJQÔ—3¨¾ K X4ÑXÚP_Z^Q‹« Ø¡prátÖy²l-i§±ÇûÉQ46âûÔ$Ö.ZN‘¯ UpÚ^I'gWœøáø1ÚÛZáêB§ÛÝ9xú4÷½úŠØX†ý´É3¬S›û,))‘®ÕöÅ×XAC¨QŽ¡º©]UçåRYU©¾Çª33 ¬¨D“ka ÚÂTՕФÃdÐcj2‘ÖØˆ‹µV–j¬´VÔ¶4ª,Ы,0¨Õ˜4`eR«Aec‰…­5 …Æ “Ê ƒBA¡Â¨PbP*/þT)1)˜” L (èMF &F˜`Ä„Iñó'šIVZ-jŠÇA¡+àâƒ_þ¯Ñz¢õÀµÓ_·+L&ÓŸz/;wîD¡PЫW/þûßÿ2{öl6n܈»»;~~~ÄÆÆ2sæLN:Ejjê5}ñ†ÊTç3[ÔW-p³ŸùjBÁââ©aj{ªÊÊ)U*p´ÒbëîŽÂh¤²¢[g4FãÅsyuºKŽ ®¬¬ÄÁÁá·s¨­ÅÆÆæŠm~o­¡ÍO9´Å÷þ[ëÃÎÍøžÎŸ?Å6øùù™ fUS5úFtF#½uƒUm6Fš&=CcŠkVnäsòzktvEãåyͦשS'ºvízã zyy9‹-ÂÃÃ^½zQ^^N÷îÝùðÃqpp`ذatëÖÍÜ>??ŸÆÆFóŠÝV555Q\\LûöíÛl555äççãáá]›{ÿ äææâçç×f7­ÂÅËûÖÖÖâïïJ¥jÓŸ eeeXXX´É¿‡ŸTWWSPP€¯¯/–møÔÁÿ¥VªæÎ;÷OmbÐjéܹ3téÒkkk<== %44”:˜Û8p€C‡ЦÿpW®\Éš5k9rd›Í ))‰¢¢">ûì³+^þµµzçwP©TlÛ¶>}ú´Ùõ`ûöí”––²{÷n"##Ûô—ügžy•JE§NÚduuuÌŸ?ŸvíÚÑ®]»Ën½jírssYºt)ùùùÔÕÕáÿïEpMNªtww7Ïð§§§çÅÍiii¤¥¥qáÂÖ®]K]]qqq †6³p²³³›åpæÌlllÚÜ·ð_çЯ_?ئօ_x5ŠÂÂÂ6ýåv̘1„„„´Ùõà'«V­jÓ_ðÉÎÎ&11‘ÒÒÒ6›ƒ½½=•••dggãîîþ‡Ç»®WIÈÉÉ!==ôôtrssÑh4L˜0.\¸ÐfίsX¹r%%%%?~¼M}˜ÿ:NÇ;ï¼ÃO<Ñ&ÿhÿäÞ®V#33“5kÖ0mÚ´6Ý;ß½{7IIIÄÅŵÙ´Z-‘‘‘L›6M›6µÙN:ETT“&Mbß¾}x¼?½ýjœ9s†¯¿þ…BÁ¬Y³Úìþ²†† K–,áùçŸGÙF¯>µlÙ2RRR á±ÇksïõêÕÊm·ÝÖf?¼&MšD=èܹs›Üõò“ÚÚZRRR(..n³=u½^ϻヒR©äž{îi¶Ë¶-)--åƒ>ÀÒÒ’Q£F5;í¦)èB!„¸>äÂÄB!„t!„BHAB!„t!„BHAB!¤  !„B ºB!¤  !„B ºB!]!„RÐ…B!]yyyjüââb²²²þ²×_[[Kee%eeeètºË¶3ÈB º×Î[o½ÅG}tM¦õÆoü©ñÿÔø³gÏæüùó¨í›o¾ù?ÏçrãpþüyV¯^MFFÆeǯ¯¯gÑ¢EæÇeee,]ºôº¿n!Z"µD Äï«««#;;›ôôt¦NJyy9o¿ý6666Œ;–ÒÒR6oÞŒ••óæÍãƒ> ¤¤ž}öYfΜ‰‡‡¥¥¥¼öÚk|ûí·F&Mš„¿¿?3gΤ}ûöŒ1‚o¾ù…BA=9r$¯¼ò vvvdee±lÙ2N:Å]wÝÅ[o½…N§ÃÇLJÇ{Œ©S§@EEï¼óóçϧ®®Ž.]º0nÜ8¶oßÎéÓ§©¬¬$66–£Gb4™;w®ù=õèуaÆQ\\̦M›0 tíÚ777233ijj",,Œ’’T*»wïF¯×3gÎìíí8tè›6mÂÙÙ™!C†°víZª««™9s&¥¥¥”——›ógãÆFž|òIJKKY¶lîîîÍ–Ãþýû‰ÅÆÆ†~ýú±lÙ2 >ø yyyìÚµ +++ÆǦM›P©T¼øâ‹² )èBˆ‹Ö¯_ÏwÞINN !! &УGL&=ôË–-C­V“••Å®]»?~<ëÖ­ãÂ… ñþûïóí·ß²eË"##yíµ×šÍ£´´”÷ߟ/¿ü½^O÷îÝùüóϱ³³£cÇŽ<òÈ#Üwß}æî©S§P«Õ¼úê«Lž<™‡zˆÚÚZ^|ñEÞxã 8sæ cÇŽ¥_¿~æù >œ 60zôhxà¾úê+V¯^ÍöíÛÉÍÍeÁ‚æ¢ìêêj~­EEE,^¼ƒÁ@aa!=ô/½ôŸþ9»wï&66–àà`òóó;v,‘‘‘<þøããááÉdbíÚµDFFR]]m~M ,àî»ï¦¼¼œÏ?ÿœóçϳpáB ùøãÍíú÷ïOrr2“&MbêÔ©ôïßµZÍÒ¥K "88˜!C†Hdd¤s!]Ñ\ll,AAA455qìØ1BBB0™Læç E³ö„‡‡›{µ&“Éü_¡P P(0(•?ïõrvv6? "<<œððpòòòÌóúõ<ùÀÉÉ …BV«¥±±‘ùóçsâÄ žyæ>ûì³Ë¾¿Ÿ^—F£1ó_sss#/////”J%gÏžÅÇÇç’iâææÖ,“÷Þ{û￟ÒÒRöîÝ{É´--- ÃÂÂæÎ‹ÉdÂh46k÷Ë÷¬R©èÚµ+vvv 4777ÒÓÓyíµ×x÷Ýwe¥mŽjîܹs%!./??ŸÒÒR^ýun¿ývâãã™üðC<Ș1cÈÉÉ!..ŽÔÔT̺uë8{ö,iiiLŸ>¥RÉW_}EPPíÚµ 99™èèh:tèÀ–-[8uê•••Üu×]ÄÆÆOvv6'N$99™{°uëVÂÂÂèÝ»·yééétèÐ?þ˜³gÏF=ÌïéøñãDGG£T*ùòË/)..æÑGåÔ©SDGG7{ÿ………|óÍ7DDD‘‘AïÞ½ ¤¢¢‚ÁƒcooϧŸ~Jff&Ó§OÇÕÕ ûöí#==¾}ûCYY...øùù™¿øúúÒ½{wbbbHMMÅËË‹þýû³`Áòòò°··7oa°²²bãÆ1~üxV¬XAZZ¶¶¶œ>}šÝ»wcmmÍÈ‘#IIIaÿþý—¼!Z+…é×_ñ…×ÜÌ™3Y¼xñÿ<þŠ+hhh ;;›yóæI BˆëSÐwïÞMFFS¦LiÖHNNføðá´oß^’mZaaá%x]ÜÜ\ðõõÅÂÂBB\âšœ¶Ö©S'ÒÒÒš [¹r%wÝu~ø¡¤,Ú¼?S̼¼¼ ’b.„¸¬krPœ‡‡–––Í'¬Vãèèh>"¶²²òŸ÷*„B´u~~~888ÜØ‚^WWGCCµµµTUUáîîŽ^¯§¸¸µúâ,¶mÛFXXX›_@Gmvp’ä 9H7õº*ÊJ+(-ϧ(ÿ]ú¤$7…3™µäæCSïLcû&ޏ›ÏÏìÆ´?ƒâWÜNœ£÷Ë/Ѹo/YZ;2wï@íêA—@î4”äÜóýn+:{ÜPáѹ#>~EgÎ`áèH€»;®>>èëë)./GXZYáèäd~}?í9ýå™—; ã·Úþ4ü×Ãd}økmÛ¶Í|ýˆVГ’’ðõõåСC¨T*\\\˜4i[·neÆŒæv¡¡¡m~UVVJ’ƒäp“åÐd¨CŠœÂã(Lí9ua75iÊç|>ï ‚è‚ “\¸p€°°0ˆŽŽ~,7ýïeggLii©ÎrµZMHH:˃‚‚ˆŽŽ&<<\組„„gn+)) ¥RÉ–-[~j™òIyâããÿÔq«T*"""HJJÊæ´÷÷÷Çßß_^vÿþ}yYqq1P–<©|›áááro|FCjj*‘‘‘„……éÌmðè¾?ºnQQׯ_]áu¤ÕjIHH 44”¬¬,Š‹‹ ’OHH !!´´4âãã %77—ÄÄDbbbˆ‰‰!$$€Y³f͹sç˜5kO뇬T*™5k~~~|þùç:¯­\¹’;wîðÙgŸ‘––üÿ&I’pttdûöí:Ç1gÎüýýQ*•ÄÇÇóàÁù‚@’$Ö¯_ÏÏ?ÿL~~>vvv$$$Bnn.P6ýwß}Ǻuë°°°ÀÄÄ„””‚ƒƒ)((xjÆÇÇsèÐ!yû¢¢"¾øâ bccå)sãââˆåã?F­V°~ýz‚ƒƒYµjçÏŸ—gÙ»uë·nÝbëÖ­\½zT*Pöz„ ­kjjÊñãÇÿð"JtA„ ¨¨¨ˆQ£F̧ŸØÝHÀ IDAT~ ÀìÙ³ äÓO?%''‡9sæpñâE’’’5jAAA|ðÁ\¸pµk×ÅéÓ§éÞ½;VVV 4ˆ)S¦ ¯¯Ohh(žžžìÛ·Oþ äæÍ›¼ù曌;–ÄÄD@Âûï¿Ï€¸rå øøøÐ®];ŒŒŒÈÏÏ—yI’D~~>±±±3dȘ={6ÙÙÙÒ¼ys’““Ñh4deeÉÇ=cÆ Ôj5—/_¦G¤¦¦Êw>ùä‚‚‚X²d Ç×9ޤ¤$œ™8q¢¼ïå3 Þ½{¥R @ÿþýiÙ²%mÚ´Á‚ÄÄD9~ü8'Ndúôé\»v €K—.Ñ«W/Ž=JFFqqqÄÆÆ’””DãÆå}ùýºNNNò…Õë@t5ᥘÈ/¿<·÷o^µ9£šúÃrmÚ´aèС\»v •JEII £FB­Vãë답µ5&L   €¶mÛ2lØ0._¾Ì„ °··çÁƒ$%%aooÿØ{[YY¡T*©R¥ŠÎrkkk¢££155-kiéé¡Ñht¦×…²Ùæ233Y¹r%ƒ ÂÛÛ›ÈÈHêÕ«‡™™¹¹¹ØØØ ¯¯O:u8p -Z´`øðá”””p÷î]|||˜4iW¯^ÅÞÞ;;;:uêİaà #&&///V¬XÁÝ»wéÕ«iiiôîÝ›#Fàéé ”¥$.¿e^¾¿gjjÊÐh4Œ7Ž£G°k×.ÆÀ©S§xçwؽ{7&&&òAI’(,,ÄÜÜœ´´4f͚Ů]»¸xñ"'Ožäý÷ßçêÕ«ò…Ë£ëBYÊåÄÄļ7¹h¡ ‚ <ƒ¡ž!–Æ–ÏíÇÄÀäϵrþ;”P¡P```@AA111øúúâì쬓O¿¼lù²òùÚkÖ¬Irr2Pöü;99™{÷îáïïÏo¼!ßÞ.ÿIOOÇÕÕ•ëׯ)¿gùø~ ¸|ù2mÛ¶¥OŸ>¤¤¤››+?+/((ÐIjbbBLL ¥¥¥„††-Cff&¶¶¶:Ç@ll,ØÚÚÊÇÿ(}}}ß#""tŽC©T¢R©HHH //ÌÌL²³³IJJ"&&FN®V« ÂÅÅ€‡R¯^=:uêÄéÓ§ñöö¦fÍšТE ZµjEBBÉÉÉØØØÐ¿âââÈËË#99ù±u¡lêãZµj‰º ‹ÔÈ® :-øW÷ÁÈȈ>}ú0`À +V¬àÒ¥K 6 ggg ðIJ5à7Þà—_~¡U«VôïߟS§NaiiÉöíÛ111¡gÏžôìÙó±í¿÷Þ{\»vU«VðàÁ7n̪U«8uê}ûö¥iÓ¦4mÚTô]»v¥¸¸˜J•*éÜiÓ¦qñâEÞyçêׯÏ74h’$Q·nݲ»Í›cff@ݺu¹zõ*3fÌÀßߟN:йsg*Uª„‘‘‘Ü/?ÞÑ£G?v YYYxyyѰaCüýýiÑ¢òsõ¬¬,¦OŸŽB¡ ++ ›ÿ¦±íÕ«—|²dÉ6mÚÄÇ ÀêÕ«9}ú4íÛ·§}ûörKÜÜÜœvíÚ¡ÕjuÖ…²gõåŸÉkAzA~ýõWI„ŠGœÛOvíÚµ¶­˜˜)**ꩯ¯ZµJþAATPP ózVV–ôÃ?È¿çææJ¥¥¥/dß‹‹‹¥¼¼¼'¾–žžþ?¿oaa¡tûöíWú¼ù«ç–h¡ ‚ <]»v}aÛrrrzæëóçÏ—ÿ_Þ"TåÊ•™4i’ü»••Õ ÛwccãÇfë,ggg÷?¿¯©©)mÛ¶}­¾s⺠‚ ˆ€.‚Pq”––rîÜ9ù÷¯¿þ€;v°iÓ&~øá¢¢¢žù7nÜ`ãÆê,OOOgóæÍüúë¯:ISÖ¬YƒR©$99™ŸþYg+W®}èØ±#ƒfìØ±øøøÈÃð._¾Ì;w ãí·ßfñâÅxzz¢R©X¹r%7¦oß¾r»ï¿ÿOOO$IâæÍ›:ëêëëSTT$gŠžM뱃 º /kë.¼ñÆ¥çöþúúæXÆØØ˜„„Î;‡‹‹ !!!´jÕŠââb~þùg²³³ÉÈÈ }ûöäääèd|³²²¢råÊò³vsss¬­­Ù±c|ðÝ»wgíÚµDDD°hÑ"ƇJ¥"11‘^½z’’¢Óc½víÚìÙ³‡wß}—èèh¶oߎ——_}õwïÞÕI$àïïÏO?ýÄíÛ·5j%ƒù½-Zè\DT©R…¢¢"vïÞMxx8çΣU«V9rI’äD-EEE$$$P¿~} ,«““ýúõcÑ¢EѱcG|}}iݺ5ÄÝÝ0uêTFF£áÞ½{ôìÙ“ââbu¡lr›·ÞzKœ †«*‚8·uÇ>'&&JjµZš7ož$I’”””$EEEIIII’F£ùÃñÏ111RII‰$I’”šš*I’$iµZ)>>^ÊÊÊÒ)Ÿ™™)©Õj)++KZ±b…Îk*•JЉ‰‘”J¥4uêT)))IÊÊÊ’’’’¤H’$IEEE’R©”$I’¦L™"ÅÇÇKyyyÒ½{÷¤ß~ûM’$IÊËË“Š‹‹%•J%åääüáoµZ-EEEIQQQRrr²¤V«¥øøx)..NR©T’$IRii©”™™)I’$)•JiÛ¶mòúÙÙÙR\\œ¤Ñh¤;vÈãÌËë ##Cg{iiiO\W£ÑHsçΕ´ZíkyÞüÕsK!=mêŸØ¡C‡6l˜¸‚„ ¦"ŸÛÙÙÙT®\ù…l«¸¸­VûÄÛôPÖáìIÙåU>‘Ijp’››K¥J•^Ëóæ¯ž[â–» ÂS¼¨`OžØäQÌ Ì¡,7~E æÏ‹¶&‚ð'•””Èc«yxXpp0¾¾¾<|øðçßÎÊÊ" €ÒÒRåjµšû÷ïËókµZBBB •çiÿý8ò„„„gn/>>^ž×Üßßÿ©e222ذaƒ<1ÌQ©T>^Þï¹ã[ù6ááá˯I’Äýû÷(,,äþýûräçç?uü½è‚ ¯1­VKll,dffeÉfîß¿Oll,~~~¬ZµŠˆˆ¢££yðàsçÎ%55•+W®0cÆŒ§Ùüü|fÍšEhh¨N:V€/¿ü’€€,X@jj*;wîäâÅ‹œ?ž;wâààÀ®]»tÖY¸p!7oÞ$77—ØØXBBBt.86lØÀþýûIOO§jÕªò±eeeÉǶuëV6n܈‘‘–––$$$ {’””Ξ=+'ÞX¾|9iii:ëmܸQî_¾?AAA|ýõ×\»v­[·pëÖ-¼½½Ù¼y3^^^„„„ R©8x𠜖6%%…ÈÈH®\¹ÂÖ­[±´´äðáü 'Ç? «T*¾üòK¾üòKy,cff&‹/fÙ²eDGG‹Z„ ¬"ý1-**bìØ±<|øO?ýTÖ¡¡¡PXXHAA¹¹¹œ>}šîÝ»`iiI¿~ýøè£066&44”ß~ûM7¾{÷n¸yó&]ºtaäÈ‘¤¤¤èþ°°0ÆÇÀ¹rå ŽŽŽddd™™‰££#úúú¨T*ŠŠŠäu IOO§¤¤„‘#G"_DDDP¿~}233Q(”””0|øp"""˜9s&ÅÅÅ\¿~Î;Ëe¢££™>}:‘‘‘,\¸€'NèGLL 5kÖÔÉý^þ=¸uë–|!tòäIÚ·o/÷²OHH Fœ8q‚‰'2eÊ®_¿üÿ³ÿãÇ“œœLDD’$Mjjª|˜éÓ§“™™Izz:§NâwÞa×®]ËÓŸJ’$ÙÏÌÌdöìÙìÞ½›‹/râÄ ÆÏåË—‰ŠŠÂÙٙƣV«ñððàÝwߥJ•*$''ËSŠ€þ7cjjŠ©©©|å˜-ÁLOO—ËzyyaffFË–-Å_BAxÅqúôiD#‹±1FõêÅw7¯0úŸxÆ aîÜõ˜ŒŒŒxûí·²¨P6AËÅ‹qtt¤W¯^´mÛ___ ÀÞ½{quueРAœ;wNN$cllL=èÑ£ÇcÛøðùqãkÖ¬ ::šfÍš±zõjNŸ>ÍÀiܸ1K—.åĉ( –.]ŠJ¥ÂÌÌL'ôÑGòv6lȽ{÷èׯVVV8::褖mذ!^^^L™2…‡âææ@‡¨Zµ*íÛ·×9þ¡C‡>v ùùù\¿~Ö­[€››·oßF«Õ²qãF,,,ä =333¬¬¬°µµÊzë«Õj¢¢¢X²d îîîL:€5kÖpæÌºtéB»víäV¼™™mÚ´!""‚7n`ff&?›ÏÌÌ”“ÝTå8NŽó§üä³³³åä å‰RSS¥¤¤$‘XF*¨ôÄD)-+]rÿiók[å‰[^„ÄÄD)""⩯ýõ×òÿ‹‹‹¥‚‚×‹ŠŠ¤M›6É¿+•J9ùÍóVRR"'¿ù½ß'Úù+ÊèˆÄ2eþ‘q莴±±ÀÞÞ^4a¡:þ<;w&:!³ºæT·x}ÏõÎ;¿°mU¯^ý™¯Ï}äîÆïo£CÙ8÷iӦɿ—Ï$÷¢î|<)/>ü½±þ–––âî?yË]„×Grr2÷ˆÎJ`ä ¾T6s$„0Q1‚ðãÐAøÓ.œ8AînLñ•L«WÈcüá‡[–À?þøB÷cçΤ¤¤àááÁÚµkÙ¸q#×®]{æ:qqq¸»»sìØ±ÇöíÚµ\¼xQ^vþüyÖ¯_Oxx8«V­Ò‚˜ššúÌ9Óƒ‚‚ˆ‰‰añâÅO¬3€ëׯ“““ÃŒ38xðàŸ>öƒêŒ_ÿõ×_qwwgóæÍ@Y§± 6°}ûvŠ‹‹²¾AAAøûû³~ýzyH”ÍpæÌ6nܨ“dgïÞ½°nÝ:ÜÝÝ9~ü8îîî:ÃE@¡BÔjFŽ“½9úz†r‡¥ŠÆÖÖ­VËÞ½{qww'>>µZM`` ›6mÂÓÓ€}ûö±cÇöíÛ€‡‡îîîœ?I’øå—_pww'::¥RÉ®]»Ø¼y³<ìÀlذ???nÞ¼Ijj*GE’$îÝ»GµjÕðññ¡uëÖŒ=Nž<ùÔ}_¼x1Æ Ãßß_§w»¹¹9:ttLL çÎc̘1,]º(Ï}ïÞ½ÿ¿x»põë×söìYNŸ>ÍÑ£GÙ°aƒ<ù×_%** j֬ɑ#G8pà[¶l‘ƒì©S§ðôô$((GGG<ÈîݻٱcÇ3ó´jÕŠ°°ÿ¿óãááAß¾}5jPö˜w̘1sàÀ lØœ «V­bܸqìܹ“ììlÔj5^^^\¸pøøxúöí+qóööæÊ•+òEMPPo¿ý¶œf·]»v>|XtA*ŽÂÂBBB8öð.uÚVØ`^<Μ9Caa!C‡eÉ’%@Ù<æ£G–³µíß¿ŸþýûHbb"Û¶m£_¿~´iÓ†«W¯’––ƈ#Xºt)EEEœ;wŽQ£F±wï^ 8yò$ƒÆÙÙ9!Ë•+WHHHû#AÙØv;;;&L˜Àùó版ˆ`ùòåòφ €²Ô´ŽŽŽtêÔI'8W®\YîõeÓ¬¶k×{{{ P©T¸¹¹é´j›5kFûöíéÚµ+ׯ_ÇÊÊŠîÝ»Ë-ù¢¢":vìH£FèÚµ+ÇŽ£yóæ8;;³mÛ6 033£C‡¼ñÆ´nÝšУG²²² äæÍ›:DZÿ~êׯ¯“Û¾cÇŽxxx0{öl²²²¨S§vvv„‡‡Ë½øË/ˆ±³³ÃÅÅ…°°0nܸA§N¸té<ààÁƒìß¿¥RÉ©S§2dˆ¼&MšpîÜ9>ÿüs\]]_©Ô²âº ϤÑhølÚ4F¬œÌ(‡ÁÏm;gΜaÊ”)ÏíýûõëÇ–-[þTÙØØXÚ¶mK5Ðh44mÚ[[[LMM¨S§U«V¥V­Zäææ2gÎNœ8ANNÎÎδhÑ`Q¾¾¹¹9ãÇç§Ÿ~¢Fr’­V‹F£¡´´CCÃÇö+--J•*abbBÍš5åååÉ^Ê[½ùùùXXX<õøÊÇÓCYu}}} uæE711ÁÔÔTžýÍÅÅÒÒÒð÷÷ÇÅÅcccŒ133ÃÄÄ„ÆcooÏ¥K—¸xñ"½{÷ÆÄÄcccLLLptt¤FÔ®]›ììlllltŽ£ÊSòŒ3(ë\wóæMú÷ïÏÆiÚ´)mÛ¶%..ŽZµjaff&O/¯ƒ³gϲpáB|||èÛ·/mÛ¶eĈ¡T*9v쥥¥ 0€9sæ0~üx”J%fff¨ÕjÐA¨¶íÙÃȉhaó|3quëÖM¾ý<JJJhРzzzÓªU+àêãã#ïÿ?þHQQýúõãìÙ³]|i46lØ@LL ÇçäÉ“|õÕWòí÷'©]»¶Î(©òVù±cÇ cóæÍLž<™Ý»w£Õj¹qãk×®eÇŽ\¾|™AƒÉ,Þyç*Uª„……ß}÷qqq4nܘ’’LMM5j[¶lá·ß~£sçÎŒ9’réÒ% å¼ö†††òEWxx8Í›7uNÖ—iÌ /ŸsW.Iñ™·_‹s;77Wš8q¢$I’”““#%%%IFR©TR^^žÎ¸éòóóó¥ÒÒR)++KŠ—Š‹‹å÷JLL”Ôjµ¤Ñh¤œœy=­V+¥¦¦Ê¯—çîÈÍÍ•ßwåÊ•Rff¦”——'ÅÅÅI‰‰‰8n\£ÑHIIIR~~¾¼oÅÅÅRII‰'ÅÅÅÉï_PP %&&J*•J’$Iš?¾üÿriiiRFF†4wî\)%%EJNN–$I’6nÜøØ8ò©S§JÙÙÙRZZš¤Õjå1ïZ­VÊÎÎÖ)[PP ×Ó“¤¦¦Êû«Õjåº-Ëž••%¿ž““£³?¥¥¥RBB‚TTT$EGGK§NÒÉ™’””$iµZyYaa¡TPP iµZ)%%EJLL”JKKå±ýå9V^…qè éͬðW'jáß÷ý±íŒèÝ“Êæµ_‹s;00ââb9ƒÚ¿©¨¨==½'Ž)rss±¶¶~âkžžž´oßþ±´°ºzõª~o‘æ/‘}ûö‘‘‘Á­[·9r$Ë–-cΜ9ÄÆÆ>uÀÀ@fΜÉôéÓILL”—çåå1kÖ,9ÍGŒÁòåËåqõÇì½-ZôÔmÝ¿Ÿ“'O²|ùrÙÙuöìYîݻǒ%KP*•úØwíÚEïÞ½‰——………Ñ®];ÂÃÙ>}:sçΕÇß—ïÏÏ?ÿÌÂ… Y¸p¡<ÿüŠ+P©T¬\¹’åË—sþüy l”À'Ÿ|ÂîÝ»²d;K–,aÆŒãáá!'¡y‰³UYdd$6j¾·Vî9ý:)**’çó.))aåÊ•lݺ•ÄÄDT*+V¬`Ù²e|úé§ >œ«W¯²`ÁæÎËêÕ«166¦eË–´iÓ†yóæÑ AªU«Fjj*YYY :”¦M›²lÙ2LLLèØ±#®®®:eSRRHOO§qãÆdddP©R%>ùänß¾Íøñãñðð K—.|üñÇÄÅÅñù石{÷n€ eã±7lØÀºuëˆgÛ¶mrö5KKK¾ùæ>øà¹¼Z­¦nݺtíÚ€ðË/¿0þ|n޼ɥK—äqÞ·oßFOOöíÛ3dÈΜ9C§N¸yó& 4`ýúõäææ’ͰaÃèÔ©ׯ_çí·ßÆßߟ®]»²`Álmmyøð!óçϧZµj:SnàààÀرc‰•‡•––²wï^êÕ«”åøè£¨_¿>ï¿ÿ>û÷ïçÌ™3Lš4‰)S¦pàÀ¾ýö[|}}qqq¡¨¨ˆãÇcllL:uhÝÕ(• IDATÓ¦ GŽ¡N:òÅÆÃ‡ùüóÏqww'//Aƒ±bÅ Z´h!Zè‚ ¼¼Š5LMLp25yâèç-S¥âV^Þsû ÿóKkµZlllXºt)&&&„††rçÎV®\IíÚµñññ!;;›k×®Q·n]<==±¶¶fÿþýèëëãääÄž={P«ÕÔ©S‡eË–‘ŸŸÏàÁƒY³f GåÈ‘# 2„Õ«WsøðáÇÊ2„ ͲeËä,fŽ/W«V-²²²(--åâÅ‹òÏ¥K—(--%??+++jÖ¬©ð ÅclK—.¥U«VL›6 µZ“““¼m(›bÕÍÍ?þ˜ÂÂBzöìÉš5kä4³™™™¼ùæ›r™¼¼}ú V«uf³¶¶ÆÄÄ•J…±±1EEEòí_à±²ÆÆÆXYY•µºôôtþ}T`` Õ«WG£ÑðØÅ‰©©©ÄÇÇËcܵZícR«ÕÒ¬Y3¹W}ii)zzzÏì˜÷è1DFFÊ­åß—Q©TèëëãééùXçºò1ßÆÆÆ¨T*Š‹‹uŽãÑ1êJOOgÛ¶mÜ»w={ö0vìXÞxã RSSIJJ’÷§¼®%I"<<œAƒqàÀ–-[Fvv6’$Ѽys”J%‘‘‘$''³yóf’““y÷ÝwILLÄÝÝõë×sÿþ}:wîüRß¹]Nß¹ƒÊ(¾.Kÿµ}è^¹2ÝÿÆTšÿ”¼¼<–/_޽½=uëÖeðàÁ|þùçX[[ãêꊥ¥%ñññ4nܘʕ+ÓªU+š5kƺuë ¢^½zôèÑCžîÔÑÑQzæììÌСCùꫯ¸~ý:“'OÆØØø±²†††r5ggg9¸cmm-'˜100`õêÕ˜››Ë9Ù5oÞ<¾ýö[ôôôøì³ÏˆŠŠ"88˜2oÞ<òòòØ´i&L`åÊ•( ú÷ï™™×®]£G:ïgggÇÖ­[133ÃÛÛ›;wîðá‡ròäI†®³¿/^dÿþý|òÉ'8p@~_^¦ü_333ªU«FýúõŸxÇ',, wwwæÌ™ÃŠ+€²”¸ãÆ#..Ž;v°páBöìÙ#ïÏ„ øüóϱ³³£I“&h4ŒŒŒ4hkÖ¬aÑ¢E|üñÇtéÒ….]ºJhh(ÕªU£Gò>·k׎àà`Z·nýòžÈ"±Œ ¼ÞÒKJ¤Ä¸8)KõÚŸÛJ¥Rš7oÞK¹oAAA’‡‡Ç ÛÞ¶mÛä+¿·k×.ÉÛÛ[þýúõë•Y¶l™”––öÌ2ÏËÓ¶•““#ùûûÿÏï»{÷n9iH,#ËÂKçäås´laJÍ*]_ûs[’$ù¹³ðt………`dôôùùù˜››?ñQð|ˈš„×”$I|ùó÷tëØüæB¡ÁüO033{f0‡²e"˜¿X¢¶á5õã‘#t©åŒ¾™¨ A]„W‘V«E›@3·F˜Ùˆ „ @ôr„׌¤Ñ°Ãc/¾÷9†ú&ûýììì8tè¨XAø‹çÍKÐ>L~~>£G–‡g\¸päädÞyçlmmŧ'/µ$˜È».]Ñ×ûg’ÇtëÖMT¬ ¼þö-÷ÐÐPòòòpqqáðáÃò²;wîШQ£Wn¶A¨È®=Ëí뛩lS =…¾¨AýÿÅÅÅQ·n]6l('ò C©Tùsçä²!!!DFFŠZ„AfV»½0eÌ …¨AxIEFFòâz£F¸wï^^^4kÖŒÈÈHš4i‚5kÖ$//O.ëàà@•*Uħ%/XžZÖÄ„¯'/Á\^rUªTÁÁÁáÅt'''Ú´iCii)ýúõ#!!† Ò®];233åô{P–¯XŒñ„¯(%…ß<Ý©îÐPT† ¼ä¬¬¬tòûÿYÿH§¸Ž;ÊÿïÒ¥ P6û ÿ>ÿøx„œgX¯ù¢2¡ãСK)-¥–¥%a·CDÖ.A]„WUfd$ß®}#>•!œH,#Ô…‡idQÀ‚û±°°""  ‚ðª‰+.¦£ %(D0ÐAxUÅøù¯„±~KlEªvAx-ˆgè‚PÁ ¤Ikîyáèè(*DD@áU_\Ì›ÖÖ©4¨Têÿ)9… ¯&qË]*€+Whâb@mû^L›&’È‚è‚ ¼rŽùûÓ³k3,Ík ŒŒŒD¥ÂkDÜr„ ©¤7}4h9s欨A]„WÑ­sg0t,&/SŸøøxQ!‚ º ¯šÓÁ÷éûV'ì+µæäÉ“üç?ÿ•"¯!ñ ]^ai¥¥4Tæ£Æ…BÁäÉ“10§µ ˆº ¯” Ç÷c×´*ÆÕË®ÐE0ÐAxuHÀ¹ˆû }g æF5Y³f¨A]„W-˜g«ÕTKLB«§åûï`ذa¢bá5'îÏ Â+F+Iÿõ;FÇÎm¿`nnŽŸŸ~~~O,Ÿ––ÆÔ©SEÅ ‚è‚ ¼,еZ¼“0fÐŒ,±··ÿÃÖù¡C‡DÅ Âk@Ür„W„F’ÐHèr÷î]Q)‚ ˆ€.¯š"­–C¿~KÛ·†rêÄYòóóE¥‚ º ¼J’KK‰ÏMbä€ÉC×®]EÅ‚ º ¼* µZì I¼z sKÌÍÍ™1c†¨AþÙ€^ZZÊâÅ‹Y¶lqqqòò””ºwï.jXþ¦L•ŠÖÒsè@žžžH #Â?н½½éСS§NåèÑ£òò}ûöáêê*jXþ† ‚LT9ôë÷wïÞåÒ¥K¢RAx>]¥Rahhˆ¡¡!*• €óçÏ£V«‰'""B.ëååõÔ±²‚ èRj4425%ðì1”%¥œ8q‚=zˆŠ„ ÎÏÏ//¯¿¼Þß¾oçææÆÊ•+¹sçƒæÀôéÓggg¢££©\¹²\¶cÇŽâ“„?)¦ €tÏ_è>|2Ì›7==ÑíE*º–-[=‡Äßè,Y²Fƒ……µkׯÌÌŒJ•*±~ýzLMMŧ#‘o~> Š©÷æHš7o.*E„gúG.÷MMM±°°ÀÌÌLg¹ R£¡¡VKÈõ+xÞñF«ÕŠJáù·ÐAøgùÇÇašâ‡žM]âÅmvAD@„WO^.-ª˜cdÛ“ûö3iÒ¤g–Wh4™ yy› ùùàì ŽŽ¢2AtAþ  U’“HÎK¦[w>úè# E\Ý¿Ÿèˆr²²ÈÉÊ";+‹ôÌL¶êé‘£V“«ÕRjh@ º7jD—îÝiÝ­F"E¬ ˆ€.‹sÑÿn•õ0rlTÖúÎËÃÿØ1öíØÁñÀ@ ÝÞ zã˜7¬‚Ö ³,õKp®jŽÂ8S%F ‰O$ÙÏ…ž~$mû–z%Æ„íÜI—îÝqéÚ77øoŸ—róçÏÿü††† 4H|P‚ º Oã••LÏúõ9¼ÿv*N„„°ëôiîW¯Žq÷n}6¤t"¢2A%¡ ú }ªU©Š[«Öè)èV%›Ì‘¸ ÷§]¡úáaß¿Á‘S7H[·‚–†ÖL›8‘sæ@•*¸ººŠiXAtAþW£V£wý&G£nïáâÄWˆ¸ „D OIÁõöm~?ÃØ ùt‹ÜM§º{iÕ`Ésæ¿g¡¯ÏTGG|]]©™©$xà8ê:JTÛŽô=™uãߢ0;F|p‚ Zè‚ ”óÈÉaqTa>t3¼Áð*Þ$Ø"=ÅšïX¼c['!!áÙvJJ .\xf™!FFìtuå@ZîcÞú[O¶¬YÍ¥6-XóãW4ïú±øAtAx½lÚ´‰jÕªVZÊšâbRÕjz?ø‰Åírpk4†ç]ùdÞçÏ|Ÿj˜˜­­-íÛ·f™ .`¢§ÇøjÕeoÏ>GG¾Xó5!G2èÝyÌŸ|]Æ‹WD@„×GµjÕ6lg33Yˆzß÷|Uóþ3+ûÙ;LDná ÛCCC¬¬þüí|c==&88Ð×Ö–9¶¶œiÙ’¹k¿æß¦SÓ6•&­f£¯'zà ÂËFž¬EóYat€Å[¢½Ûvô ,É»÷Zu.ƒßŸ@íÚµ_¹ã«d`Àl##.@Í[ØXk*Sÿóçw!· J|á% ž¡ ÂßYTÄàuìõön`ƤjŒšæM%óºiµìóØN§ª°­Ñè•>Nð¦µ5wÜÜXSµ*_·oÏä-kùüAkú¾ÿu†‰/ƒ ˆº ¼šö¦¦ÒÞÓ“[ òÖ‰UìÙ3›:K©d^—°ÂBRóд *ÇOœ§B}Õ™éë³¼NnôéƒÍÊ|š<’Í‹Æã8RM‘øR‚è‚ðê(Öj™ÁÔóç)4‰O­‚ùñüZwø=…±ÅÅ405åá™\½Èì¹s+\¸ZZrËÍgÌbC;w¯<ËÕËÈVFˆ/ˆ ü Ä-wAø RRRðg•¾>GRyË:v«Lë«ð+&€s¤¤¤ )ÉçÚ™ïé9æºkµèU€Üè·nÝzâò΀dfÆ‘‰Û˜qô;>kC§··P×q”øÂ‚è‚ðr:Éš’ÔÛ·Qïê1~üe MÞüí#Sšzf‡ïçM‡·>¨Á }ûöO3}8ðyI RS™‘ìÆì½3éÓï7Z4Z‡±™øâ«ÐoÞ¼‰¿¿?]ºt¡éçfÞ¾};%%%ôë×ï•ìÕ+ÒJ«ãâø:5ão¾¡[i"n\£Z½ÿÏÀ¦’$n¥‡‘{5˜ çb:wyûµª£êÆÆ¬60 mÄ8ÝmD艵|ÙV­bcÙP|‰á9ûGš§NbâĉìÛ·O^6fÌÆÏŽ;D- ¯´,•Š!ÁÁüøÛ5L>ù„Oœ­ÙyÍG'˜j4\º„¡™9S,¨0àþ }…‚5jàÙ½'!ݾanp.\éÌÃÄýâ‹$¯B ]OOCCC?`¦¦¦¬]»–#FÈË|}}155•[ñ‚ð²óS*‚Þ• ¨¿Zɸní˜ÿóizº§NŽZÍ•£k7z1J£Ã¯e0T KKnµmË|KK¦…¾ÁlÏ/éÑì:-­ÃHÜ‚„g ¦¨è¯ùGºF£!66¨_¿>ëÖ­£Y³f8;;Ëåš7oþÚÿ¡^;SRXú0«m›0<K‡”¯z,˜ÿ–™@ÌÙý ë?Ä÷[f¦¯Ï†fÍèmeÅGaÕñÞÃ9]psÙE}QA‚ðõë×G’$¢££ÿZãúŸØø¬Y³ðóócöìÙ I5jÔ //   ¹œ±±1FFbRáåV ÑðწðÆ`þ4šøãqËÆ}=VÖ+3†¨穪_³Ê•EåýŽB¡ ¿“>mÚ‘_y<3³Gsâö;ç~&,[ƘÐP4þWP.]ÍÔ6ùììÏèÿn¶²B­•F⇓m%º**ùªW®Ìé=X÷›³ò–11x'Cs®Ó²Ñ·雈 „€¶&¼4ÍS‡\•‹¨Qƒž÷î`sø;”;ΰwù ºÎü…¾¾N9 È/(àÒÑuŒ}o‰¸Íþ'éëë3·[7ÞôócLØ8|õ˜™×—.Í·SÙ¢®¨ A]þžb­–¹‘‘H ÃbãW8Ä–2dÚ'dÔ¬Åá£GuÊÞºu ß‚ê–(ùàý"˜ÿU íZµÂ×ÞžI's™\oŸøNd óXך êGD@„ÿMTQcBCÉð>ŠÞ—ëøÀ­7óîÀÀÖö‰å/&Ýäמ8ÙÚ¢/úƒ<æiÙäåääD›6m8øá‡lÙµ‹ùFcð’B˜œ1ŽÎ×biZMT¤ ˆ€.ÞÉŒ ¦„ùcqpš]×øàÍn,:r~‹]’xXT„‰*‘.úuʆ]ê‰ižäYÙäÊ:tˆ6mÚ gdÄ´‰éêáÁ¤k±Œï؇”3ùO½aÔ¯.ú$Â_%þ* ¯¥FÃ̇™xë ‹&QçL(7/]£åûï?ÌSRR˜´d•KJˆ;wãª"˜ÿ“ šuëÆoŸ~ʼ»±lðïÀøðpŽÌ¡ $KÔ ˆ€.Ov='7_o.ž[ÞäÉ|X¹§||©Ö®Ýce“““ùi×.zutEO™MÇ‘ãD>'†•*1wÁ¼›6Cïh ãâ\ùÌg9Qi—EåŸ$n¹ ¯f=|Ⱦ°ÛXmû“ßb8ðźL›öÔ·MÕª;ê3ì­Q"!Ò j­7îуk­[³é›oXbdËUU8KÒï3¨Á$L -D ‚h¡ ¯³¹¹,©bËÁýëQL˜Èh©6Þ÷üé2cÆcÁ<99™#GŽpÀï2IáþÌ6]óÝʰ¶fÖ_p·CGìwÞæ?!U™àýþIEå‚h¡ ¯£B†Å11l÷¿…áÆµ4‹Îâ»-{h:dÈ[åéééü°s'uM™Ùøcô$ }‘ôäŸö§{Â÷èÁe77¶¬XÁ¥’󜸅 zàh-foÐ…×ÂÍÜ\&=%öð>,·í¤_Ãf|?ýJ•žºN¾“ 3ÃÄÄCÈŸ›¿ÒÞÀÊŠkÖ0Ü×—¯6l`[õêê}™ÕØêÜk;Q¡‚ ºPÅ—”°"&†=þ¾h¿YËßž¿ÂØØ'óÌÌLrT%\»{‘F…–Tªâ€Â@œ/c+þÍwÞaRÉŽ­‡YÒ¢?vV±ÄÉqµÜ0Ô9Aüå^jIIIøúúþa¹N}û²6>ž-¡Á”ØKÍóWÙðÙgô9…¡!ÄÅ=¶Ž··7Knäà ŒnÛŸ3×®‰`þ ´â»ÏÛ_~É^÷½|Ø¥3›Úåñeí:ôwh$*N]^V^^^ >ü©¯3Ð †©T¨/œ£ö©3Ì1gwwòŒŒ8|ü¸Üâ+ZIK¢2›7Oqh;–66"…ë+D¡¯QÓ¦œY°€kÛ·³pÍ ì÷6o¶LešcMU«ƒø<Ðáåó¤IÕúúììó+F&îî]Οϼ¡Cãç‡qµÇS‡æææâ¾u%Ý:öÇóá ¦™ÊüÑÓ±´Ï`_UzÆÆô˜:•›ï½Çá X³üÃ;u©c&רÁû5°76%ˆ€./‰'žùºÞxÕ*îÚ‘eï½OXt,M,`Z|<ë²²0|Ê|ä!ƒ8yõ#g.¢¦M%¦ œŒ°´·@ oiɈE‹ZPÀÇù~ãV¾¨R…å}z3²^=>v¬›•µ¨(AtAxž  âÝg½þߣjز·WovöêCl|2-׬åЃ ”$ŽÌ5 W®\ÁÛۛɓ'ãŸéG›:iT»£Û¾)*¼"vss:üç?t7Žoïßçç={ØöËAvwëF›V.Lu¬ÉP{{LDê^AtAx>_À§õOηÐçA7z½õ6¿Ù×ÅäŠýæ.dKR½% ý'¬sÇÇ C- ú»b¤'ádX+#cÜZ¶•]Á26~æëÉ@PF×~ù…6næƒZµ˜Ùµ }ª3ÀÎŽ·ll¨$:A "  Âó¡Ño7~îÕ‡Ãíz’ïCïƒgÙåíÍ;*–”UÇS *IxŸ§V&dæÑÉ©.XÙT•ZA +-ýã?p––ôš4‰ž~H¢¯/‡ãlf&ïÛÚB»öt®]›¶¶ô³µ¥–È= ˆ€.O²“‚€N\wuáL뎄W¥ó…K|õý'h32˜$I<©Ïò¾jtKSÒµ …‚ª•šS·j êVu*èRèéQ£M>iÓ†™ yÑQ\¹t‰37½XYZ W7Z6jÄ;;zW®L ŒÅ­yAtA(sü¿CÆ~¯ZÈÕªñ*Îãøþ…Ä™¿qR&üø`å~Þ½Ÿê à Ž`h­ ¥5JCc\õÌ©•ƒËµ4©QCTº ãИ1Ï|½r|<<=±7Òãr'ŽwîÈŠÆ­Ð:;Cj*ö¡¡T åÀÑ£Ô33C †D@^KùÃÓ©&d« ¸Ó :±µœ¹Ú¾%a¥-±*PÑ9à>½îÝcBÀfæçc Ih‡– Î‡´ú¶‘IZ»F|v;Œë iú $ ½ÿ–d…§¶ÿ–y TË›¢YM†Å>B%}¼Öį~c;4£ùþýXÖ­K[[[ÜÌÍiaaA##ê[Ya¦¯/*Z]xõi´*²2ÃÉŽ%*SIP~qÅÜ-M%õëeÄÛÖÂÀŠÆÉ)ÔeÒ‘ºÜÛƒsVjC-ûK@eù&zDX[€G$U­*óŸÈhôsÊn{N¾óÐ-4LTºðÜèI`Ÿ/aš.w£‘îEsXq–6á× ŠÀ;á6^E)•H6p ×¾:6––4±³ÃI¡ÀÙȈÆ66T+.¦ž ö––è‰$7«Ћ‹‹Yºt)†††L˜0ggg”J%_~ùíÝOY‡Ÿª¦¿X umb+³†ÕE‹Ä K4ºWfcŒgW&¨W¹Û£lúhbD.üŠ™ 3ÁxAbt—¸COdŒ#¨ Ó3Ðò%ÒÝÐôG³Ý0ÀÎÑë!Sk‘<ŸCH IrA#!A !4¡éºNÂbÁÐtâ±(áð(‘0“ÑÑD‚¸!ˆ °neÜê âpbØíÈE·ÛЭVrÆ'L³  à²ZùS?9¡0áh”¼ïž³&+“š~ÉKw5ÿ~Äß7}Bþ¾Eüa#ŽÞ^ì+rqÄb¬Ä`ÝX””úºø8Ýñ”Ïýß| @ÁÀ€ép||\ÕBK@‡Ï?ûìÍؼ?›œI_Oe8ØIbx„Øëþ Á«@EY:Û2O”Æ;IDATz6_åg3–—A<ËɤtI8 =ëðiĬN 4Òb1lñ6!pHphéiidØld8¤;ØívtMC3 4Ã@º!°] ,B&%:Ð5Ðøä$‰xRõ"YO%ë5‰”—»‚ŒŒ t]G×t4]O~×Ï.:šþÓ6hhÓi´¹ÛI妛,ÚOéîg]|íʘyôgï­MŸkî1kS{o÷å Ó,”äÿîWl€Ê·ëúÏÔ suÐu¢¢"úûûMUHçê°}ûv‚Á “ÎÐe±X(,,$¶€Ï>f¶mÛFkk+¦ÖáòåËTUU166fZ |>½½½466²{÷nÊËËM©C~~>ÝÝÝøý~jkkßo@ÿ%Ö­[7=tät:Y¾|9ÕÕÕÓ=u³8ð\®]»†ÃáÀçóÈÏÏ7¥¡Pˆ³gÏrêÔ)S:íÌ)ÍŒ×ëÅçóqâÄ Ój‹ÅèêêÂï÷“H$Ø»w¯)uÈËË£¼¼œƒråÊÓô¶¶68@qq1·nÝâøñã úÜ[ßCÿäêÕ«¸\.>lêJLJÉ7øÛ<3Y}Ì\¿~¾¾>\.555¦»þû÷ïóøñc***زe‹iËAmm-ëׯÇãñ°k×.S× /^¼`dd„²²2ÓêpéÒ%Âá0UUUäæšó] ‘H„ . ¥äСC¬^½úÃ è …B¡P(Þ êí …B¡P¨€®P( …Bt…B¡P(* + …B¡P]¡P( Ð …B¡P¨€®P( …Bt…B¡P(3ù/ëòþˆ¦QßIEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_projections.pdf000066400000000000000000007564551323370031300216730ustar00rootroot00000000000000%PDF-1.4 %¬Ü «º 1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj << /CreationDate (D:20081113013352-04'00') /Producer (matplotlib pdf backend) /Creator (matplotlib 0.98.1, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /Type /Page /Resources 10 0 R /Parent 3 0 R /MediaBox [ 0 0 576 576 ] >> endobj 10 0 obj << /Pattern 8 0 R /XObject 9 0 R /Font 6 0 R /ExtGState 7 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> endobj 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream xœ¤½ËŽoKrÞ7¯§¨¡=)åý2d à,Âz[&`œ–ANôúþ~‘¹j׊̮`’§›û¬ÿŒŒ¼Åõ‹ôùOŸñó_ôÏüŸáóoŸµ7ý÷_ößüó—þôü·þýÇ¿×ßû=}摾FuŒ”ke ù+Íco¥Gÿý/ÿ½ÆñUôƒú©ýÿ~ž¿Êxÿzù÷1ÇŸ¿sýªßþü·ÿúù_>ÿ›Øý§ÏðUñû—XÂWJ}ŽžëÈŸ¥–¯Þó,"ŒðóüJ=‡VC¬ö¹é¯‡Pj€Ï˜ÅdŒ-ö˜Š}Ž#÷FjU¼ÇÜ¿º~½ÚÔ÷üUCˆ)Î0yÿJc†<Öàé«åÑz q”M®ú̽¤¨ïñ«éçklúçB4˜d1sŽã2z™_úñ¹\ø×}ÿµÌüŽéë»ØÓþJ1Uèøbÿš­‰:÷ØŒ^+ÞJŽ­Ž’nôÂÔ5ÝÆ/ð_´}fÊþõ½•‘KÖúÇËüõ½kÁFõ&>OîÅï†?–ϱ,¿›¾ß=¿n¾uå»I¹EÓÐ^:#½®£:F¯Ú©©ÛU2Cº·ù.>+g-$KÍn¢’êlë{СÔéÍD•ªÝd:¬]ÌkK}å2ÅnÑù5úja+¡2×R¾ŠÆÖĵX›^·áÐnÕ±×wÉB¿ÏUSoäéK„«*öÛðMÿºB»±}‰J[ÅèÝô%¶Yš–¦N[j/¾ð%YIÐè§]%¹F]€úì*µvÌeülwcÈqJþõpr¶Øty_æ¯ïºJõŠheú)>Oî¥ï‡÷«çÙ?VßMÿØ=¿í>»Iõmå¬Û·s/Ý;ºÊcÐyåõ“C3÷U¶ï:”z7’. ã°ò“¡jy}×AÏZòõÒ–/ŽŠ®<Ûµëhé\VØ4úÂãQ†vgµ¶/±;‹äSú¦—HRæ<¢GÔ¯¡ßOµÌXnôE7cŠ’¨þÕmü" êÒäüÇÿÙø-/5ÃÍ>}Í0$™ÎÅó×)==ŒUoi\,ÐKú¬í ×îF¯›Å@*Îsôi¼kªs¬òLêäêÿFJóãœ:‡!iÖY‡èNúCôïáß+÷ùæýã²ònîïóù–݇Ûy¶7uç½% UÒoºÖ›Î.äµ7×i%誷ÏRh§NÃ\[SóÓYÖP“V¾å/=q:\½§¹ù×aìE×A-qËg=¹šÔ^}жÐ?ö™÷$H å™Þ˜Cï†Æá»Nº~~èÉõBŽJ£Kt¤>Òeô:¿tm4­ÞXûòͼ„óMMˆ[…ú1u}FоŸFý–œ¾ýQW0Û M’oC Ül7ú¬½PcNSwÿmx»Èx6t4nÜëÔ¥Þc¬ .º sÚMáyz/|7þ±vŽÿcíÝüÏ­óÛγ'þ‡¡¤S­ƒ KW,êïö¯ª³&æRìR©×Úã#¢Ñtûή/I›u!J=×9È’l@YlíkÖŠòÒ–¨¦î:i8\1úœ:v›þÇÈõ]2Òë‹0õ½êÁ è.5ÏMÏ4®^›Já“´ªõÂyzSæQeRÜÆÇÐJä¹µ!Ï~„}TWiLÐûéÇ/¨¾Ë`õÒÓßnUš³žq»¤t%©v×à~?Éu+Â\¨=çÛðÅØ×ÏIǸ±/ýGƒÞsÓŽéWžd™oºøP€ñyz/~?¾_>Ï¿[}?ýcóü²÷¼**5_'¬è¡L˜}è*I¾^¤n}ÔPµž:Y1Ùwé"©´¥µW²€*.š.$DFˆŒ73ëô=….Gû®oZŠ.Ýq«íX‘}hêKÔ¦cŽáúhýQÏUF;[ºž~_fAñBÏ Š…”õôËø#L‰ †ç_ïNüMÚ—=Hnþ¼OzŒªô·%k'?}Ï\îqÔ5}=p°èV?òif.6÷—áeeÓ#%²ya_ßEÊGÜçôõ]WtKA¯B¿ˆÏÑâwãŸË÷æÿ\þ÷üÏíóÛö[V}þ’¦š¦¶/f+^*=²GN¶Aõ è”È´%ÚwCé¾A÷ò6ÌdjJ:¯|×#2’þJÙ~ ™Å-ñÉ@Xß&eª!.z½¹²«uRíÑÍYìYüëDoz½p yusÒ#¤g-¥õhxr]UIÛuÎí¶ñÃëM6cÒÿõ ûÒížtmÜÇ*ÿ9}}×-¨-f‹âÓw©Ú­†±Ï—¶‹þlÕq£—¼´üM«Çm|TeýQ¦ø˜7þeè•Ñ/ý‹Ëüu÷i%¤0ÜJ‡øù!}7ü±zoöÏÕOÿÜ=¿í>ÛŸ!êÈ•%Ói†×=?[Åí¡ýtÓjCKͰ ê»4& €0u€ª. ](=ø ´–úµŽÒó9¥ë׿ÜrJ±0ºÊªO}–†3;N©Ë‰‡,à\Æ‚>ë8˘”ж|&M?®K¦±yjìN]tzu¸\üØ:êz_ôëÒìóOÎ?ø,ε3Dl+ë&ÎM ƒMÏXYêÚKpæ/Ò/Ýë‘ Ú ZL½‰9¤=®p»)§˜nãgc¿D¶ëɾ–X¯²tS ŸÒ9{¾×&“Xw<'¼ƒÞÉÞï—ÎóïWÞÏßmœC~ïçÕQÙ¬±qõêÜw»çõ¤¡Ã謘E_¿ô;²Asèe½Ò²CŒëÇ–Å-Þ5Vìщâ4®{^S†`“©7çz¦±ŸGeYäe_*‰ŒàbïTnRÓÍ6Üôz ËÔÕaÏ(®öyæÖ;åéõŽJ—ÓS{¿Œ¯é25|“­_ø×tá?ëžZ﬛?÷€¬õëØvß[~úž¥.J©2m…¤ꦞWr½ëýuŒz}À½vÒ.Nî'¾Pì×ù9yŒîÌ•ÔÚ¼ ïM~Èþ=ú¹v/æÏ¥MýÜ9¿í<¯f¼¨âB‡±¤ÈVí‰(,š ?›º’,‚í»”­Ü‹^ÓftÆp.e€&&CåLmϘ¬ˆ(þ¥oÛwÝê}¶4·_Lo°,Ö¡cl‰1ë·§-qB÷uÃ{bMB•&Ô/äx^d ƒ—þÕt²¥˜§å´rÌ—fÌ-Uùv þ˜»¾k^¥ã*,Û­øSvú®eÖå¢_ë¤ ªšù›â¸Ñg¬¨:d–¥qºæ)sy^ø×wYQ‘¨6ã1ÿŒÿ>àœit‘Ÿ£÷âwÿÖîóÍüǹònòïóù–݇Ûwþ.ÕÌ¥J¶-â¿ÕXú‹¨Ý¨Øx $9ÙÅ]KZ‘4ÉAG*>‘<é42ìN×jmAOGÀ Ü~é8ºŠ}˜ tÉ7›Þxü ºÌ {¥Úw)7ºlzëwÝÄ·±"‰2“4zTì ½Î¯$£· ç2~ÃÛ/S6Îå?vü믋ÿ„°„鿝ïQ?¦Ë í¯C~¸}¢¬»>Âò‹á‘t¡ÈhØÑ G/ÅcF5ÄËø¦¶,ê=yó¯ïši+Dvâeþú>uYêYßçø->OîÅï‡?–ïÍþ¹üïéŸÛç·íç/ÔÚ¿1°¤­¬µì• V ˜·´êv–†Á ¹tô]×z—Srßž Ôß–Pí»žé‘µòslO†LǬ7—\×+; KÒc;2´´Úh„’ôóNÌw=}“‡0%I]i’U'’BÌZ {¹ÑK‹cp«ÕxžgÇ‹’K¼qà¾O]kô÷ä›F÷ÖiæµQÞÂkxgsã–HË 4tJª¼wýF/ÚÔGÌ‹ËðÓ˜¯xÑÆ…ûf–¥v^/Ø>Çä›™–Ò7+q«Sxžþ¾ÿX<Çþ±öïéŸ{ç·½g¶Ž3q§s+µùSÇA MeƒÝÙ¤37o8uíûŠ_Çf'¿&Cà-¬Ïü:jË:Èøý"îI ¬Ê Y–£-7ôhв9 ñµOý£ÑdJ®Ý²èeÅ&­± ¬¥€mšÇ:ˆž¼IYÏY ïáõžèÜë^ Ú–ådŸï°Ÿ°ìÁ|Ï^×ì‘)“AWÚþKz|/6¸l 3Í÷8Zji('½.FÂYw_»ßŒÝ^½µÿ]ª^+¤xðŽœó׿"Õê¥;åçèñ¿Æ¿,ß‹ÿËò¿æîžß6ÛsXŠØ—@$Ù{²ù$†:,×i IÒ™äk`îUަŒËɲü©+!”õ¹J‘xmøÏnéMöæÀ± cx.ÊÜŸuJ;±—,Ó\ÌM­´ü`kÓ-9C¼óê}ò9DÌD1/Ôº¤VY$ecK¿Ò ÒugÉø±Ï?9ÿȬ›?©¦Ñ\6ïyó9Èî–ÐmY?ßRÓÞ×ó§+؇¾ZZ†nH©éBlYzK5µõùçÐÃ’2ÚÀ[ŸOƇådW¤høir2DL@(~BóÔN䯱?Ž{s~,÷kÞ~³|þºÕ¼þ ŒéÁZ%Iç¶ãÐBÝÞyN /­# F’µÉ NÄ·íD!Ùf‘8ã\߉”˰ËË%QI¿Ÿ‡y,ñ+L©&ºÛÓ“§d‰;zŠb’“ ¦ò ìôŸ”d=жŒ1ò^’‘mJº^F'W¢ r¢ž$¨?¼›ÓÞQGÛÜîÔ×ÜI•àþ9º²x~ÊΜFºîò”wj&ïN*i¿Ñ§•öÓ‰1ÞÆÏÆ}oºèÆÉ~$¦¨…’b=úÇ1÷h!Å.QÙÑä^ô~ô÷ÒÜû•÷³ïœCzïw$9Á½^½/{Tªq×k™ƒ=î6»€1sÞ ˜Yú\!0}•®c/#s}­²õˆ´¶LyÝæº7Æè ¿¹lšÑQ«réðw˜ž×•á¤gKOq¨ßaýI½Å•ठ©¯šM¿‘‹OÙ'}eIøÑeŒê?îÃrã>÷øÌóJ°rsוšt;DR+Œþ-;’.¤‡Iu›Ã6J"­#py¥0nôUºd$ã¸ßà¿&KZºñß¾pméJªiÜæ/Õ.I5”‘’ûM~ŽÞ‹ß ïÏq¬½›½Û9¿í»Rêäg¢Zæ l¼–zÓ$à¹cžcKi…Œôûxºeö2¬!ÍoyëÈ›ÆÛþ$$©Ÿ×¡6gŸþ¤MÐ;¯åŠHdX­¸Ì,¢¡3®§$´ï+@6K%÷q…›tCp\Ów<æEž8‚Ú¹4~‰W=ßx'¨ézAÍßá˜×Ôuÿ q>æŸxÝOÑÊ; |Ç;Ñßšn1²€OúÉ ##eXDâûMÓ±x©ç_SûNö"yê—és!½Ñ?üE|žÞKß ï×Îq¬¼›½ß8¿í»gg2:i±þq­&¬ÍN ÌŽÆëZÑ9LF†Ò%¾•v@°,aÑÉæ]^d)$ÒŸëÊ­".ƒbH‹ÇžÈ¤~5)y9ÏggJR¹’þDJ«ä¨¡í­Õ¥ñ`Øð–zÆ;j¾ÑãÒ¯E²_Y ~ø¤¥•r>ÇòÐýdþÃâ„úq½÷;eâ=s©Kü!®ÛÌKM—·Ô7ÉXkYHw”ÝZ?©e¶·ÔÄåì;BùcdÛ2â›À—ÛÁ7q#ÄT¤¥6?ëõ’ˆ½&ÚD‡ÐNò·ÐÏÑß‹vrÿ^ôcîï=sÊîµãÖž$z@¦wDéæHû1Y²2‰àR«»Œ§½çƒT?RÒÞôI ôäZ×®“2¤K:Ö^öÂJãî:ƒyGpI>èäQ罩#¾2غ,nà¦)>–ktú^Ö}ˆ:JØÓûAýa×s‰ˆì6¸ônšÜŸœ÷ŸÌ°³ sÓèöÿ9÷Àm#ó8åÐ÷âüÝ·¥^EôÍeí°¸zVõ6U«©8èÙ<âVA:íexb’ú}íÇû…}ôKmÅ$“v™>j ‰œuXÉ€ž'÷²÷ÿ—îdß/½Ÿþ{ëâ{ï<ۛ蠇 K&ð2¦c긠èéAÈue»6Ù÷ºƒãØšF°9/ë;iÜ_}nM#“[%º®‚¥ž-{!¬¢t ý^Í•ŸQdp˜…½Àù aä°R'i]²Ý—ÂÓcs6i>×óeüˆ]HÙK^E žÿÿaJÕ[.B7ÿbÙœ–ŸB‚Ÿò£hHZ‰é{»,ˆBzKñF?« Ì•oãOã¿óœ¦ÿóKßlíŠ-7œçÚ})?™Öoñ9òCünøcùûÇò¿§nŸß¶tZ:M7G 55•¿/µ–À’ö'þ ÝÄd«ð8Ì"UHß’=Ó Ò8Íi¬Ï©L²¯‚ùŸõYJp§ÿZ´|‚´Ãžüu¶ž“ÑÉÏÐV”™F@¯ìÏi‘ïžL¿NÈKû5ù ŽH¢MMß ýؼrYF§nÔýùç|N„3æv–¸yS¹D>#»œ{ï%µ>7"…úóÎüÐ6ÃM„õåÉÉŒÈxVeúöxŽNfÌk™§Ç3o™#Q¡¡¥?çÎw’Þ5°¶É!¹ƒÜ þÞ­ÛÁ¾[v?}·k¼ôÞ{îÈ ¡T‡jb1X,Œh¥ sì€{–ù7©Ó[±2 =´¸1÷ ,8ô%Ûw-IlHs_ƒ¢-^ K+©¤óãeMÏùË$vYÑäŠvòWÊÊ £PE—IÒó4—¯'§EÉ}9²<¹U(’’ýÜ^ïÁÓi :ÎuWA9Þ#¼““[–/ÈÏÝ µj9Ž'àþ’Ù÷ZQbêOÀ=‘®-#éB/~õØ“1ûmülì‹ßÞÆ…"⾆fØ/Ó'çePñŠU”zñyz'}?¼[;Ͻ_y?{¿s~Ýy+³]xàÐÝ:©lUâ ¡X^št¦.k Øê{"ÔÔ%A{‚ø£l«4K1Í®rª ëŸC®ñª^‡fßõ²â—âm§tJ»‹Ý.Ø)Ô^Ó½Öö):ÿ²3"Ñ@æ¡¥+Px¡Ïö%]ª?n‰ãë²3Q æ¼ño—P¶t±'=í5ònd±è–šûó#G~ß ,žcÿX|7ýsóü¶ùŽl:~è¬è¨Z‹>¾€H-}XU‹¡è$7ûž¥ãhîß©ƒ–þ4g¶“ɧӫkeÅW™=fjçì{$PšºS» ãd_Úzúÿ*ÅE CE–2“Þ‚´2²d‚Kq“ÚnôE‘…šâ:¶~ü¬ÇŒ|›œú¼ñŸŒÜë±ôó—^¨u¤š¼=…‰/ùIØÃR–;³f=¾äU,  ¹.|LÝh9݆§ìX€„ta¿‚YC"fÇð>§_¿:“U`œÒóä^ú~x¿zžýcõÝôÝóÛîó—*YR¡€óÁǠסJ›æXÙŠÊÛÇÊ ëö] ^Æ•º(µ¥¤BÂâúž v­Aë-Äë‘plF 6Ï$C{«5dH3µ1hãÉêÕ‹—kWßõHtÐ|Hbû¦Qª­›aÞè)”Å­Ö.ã‹]m:Ý•æI>ùG #7к-ˆŸó×ÏIýªTA¦ö$©ü_0­3GÜšK«¤ØH÷ÿ._È­(bq—/ÃÅ#% €¤\.ì“haÉz¸q.Ó§*òiª.ÓE|žÞ‹ß,Ÿãÿ\þ÷üÏíóËî[J)ꈴMÉêu(~Å GêŒ6>‘©5K:”ÚíÛïl¾–©«h…3ý <Ø(®¯Pã”BŒ³2À¥¥OËHVìcþ8Ùñ¨g;îÐëˆ8Á-JHxÙ¿‹v’p•;ªòº ;°o'óÉ|¡ºÍ•ôžz"¤]Bßà9oÉIÓâ-Ö忣TóÜÊ¢0œ­“¾†Ûºçvž0íÈZó ÜsIödažv›=~"âR0êExžÞ ߬ãÿ\û÷üÏ­óÛÎ;ªãÉ%¡n>„ý—3’šR6žâcÙ^™D—5V2W´¹»L˜cvL`ãÀƒ„ß·ìc¬Žü®Ú×wrQœëS{uì“‚¤_kZÝv›>)Lú„ºY/Âsä‡ìßû¥;Ø?—þ=}·uñ½wÞºB'® 4¬8F$í'˜çžƒ/Í|²° <^Ýù˿Ȗ䩚ä?¾K/×M’— MÖ±N<¡¾”®çL´{îÐ& µéc!x4=¥x6vèŒtŽ’A%“¦ôr½Ú‹íB_¹rñë ƒó;Ưأ±ÿùÂ>`5ú}™ÃcGßÓ¯ý‹ 3Ýœÿ?¤ŽQìüñm}ËLdVæ 99&2AÈ¥å2|ŽÆ¾6“y·ö¹ö*\Ýn¡cúì7Y%²¤tŸ£?ÄïÆ?–ÏñïWßMÿÜ<¿ì½A,êfÀ«lhŽšŸ´Þ–ítÿmÛÔÒ³s4†RB‰c݆À…¿¹î_ßcáïöc£X°àÇCÁ6ùêïTjúòxblíuÔIî“hÃ@¦Ë¦”¨U)¹5l?¢„õFo1¶ŽÚJfòãë4§fw5Ýø/Æ åA só·!錩<>—üH>OäòŽ•´”©Jãºö²œôãk6üˆ2åçmüiüS‘/ìãÒm$•1´q™¾Õ“©‹A=yñyúCüïáÕsÜ«ïfìžßvߥœ“ ïÐGå!Ó\pþRÕ¿Þx<&Ä÷)]`t¤Z‘"¸ùBÝ ïšîþ´’€‡(zX–¢ ¯8îêú»&”UF£ï:¹Íê×Zd¾Žþö€˜´ðp›N¼‘Ëh&¿@µ~>~¾R ·Ýýû¤lÖíÿqÓ§,—è3ëoôN|ÿR#E®<åŒ2ÒªÕ/Î=hºÃµ=¼?á¿;.ì›Ã¨Q™añcúTc¢K’%?NéyòCøïѵsÌkï&ìßöÞzå#©÷#†2ŽUB5i„í½—¼>À{[­dòª·âI^ĦK¸†W­H¡|K,.?nèK<"/–ñß3¨©eyÉÄ}‡m¡“à~–¼Á[H•`¸«WÈ ‚È;s¿‘“_F¦á¨Ë‡íGO Z•ÌNcwÜGã^G¿¤ÇÎ{M^Z§¼ì»žþºøöáœÂ¹ªÇ=Þè3ek!ÞÆg»u¬}—º8þɘš'…x™~"aV"@?/âsäNø~ð×Ò}¾yÿ8WÞÏýµq>ߢûpûn…çÙRÉr«£ÅÉs–!-Â\L¤ûYîeG¤ünÊ.Ìc×(Ù Åîì¶¾Kù¶zÀùÊ–íEj åzÿdèÎ9ˤo$r˵¸ƒI¹. R÷_%DQ"`ŠVKFm Õ3ñFßa‡zºÆ9¾¬Ž/Z±c;ö“¾Ã‹;òøšž oÇŽ\¾äÇw^™C‚èì¬@4òF/$. rÊmüÿɼýõÆÿ´4#²Ó[¹Í‚c™uÞäçèù¿Æ¿¬ß‹ÿËú¿æÙ?¿í¿XD›!$уÁž‚¥—B‡oå9%ðat·KÕ^a`ʵqjz²U´ÌÒд^aŠj ~B7‹~ž:¯ b+ ñQ·³ÁZÊä\ –±lxG›^S‘9nÂÂÖÐÏW³Inô”ââGùä5>9_º™u å|aH’B{H[}OXO­å‚Árâ+¤¬‘Ì/l~£Ýè+õPJ³‘nãW㦨xò¯‡“GUƒÌx›Ö Àt“ž£>¤ïF?VïÍý±øïÉŸ{ç·½·¬%Rñ§–¼lY²¬ÓJu„¸Âs§ö <Ÿm¬3Q2´l]ƒQ!¸ñXsèî–ŒÙì{ʉ‹)Œ'ì ‰¨Å¥Íƒ„ιŸÉiIÖaiA[¶†¾Œ O_t“á~ëùÏîþ9~w@Í‚v9ùO_ûMÛZpó'݈w-í'>íå„©¬b3\/²öÎÅp¡¶ÍÜ@¢ß ´ì#¦"ܸͮÇ8j òÆ 6ífo›¹ &åt‘ž§÷Ò÷ãûÕóü«ïæìž_6ßzè»T+ÂZ}2®ôuF rí¡§4G§ Åh•èžé\Eý‰Å6‡–™6ºU²C~ʬß³Ü AÇ2ôÙ±"Ìdcá\Ó±õ]¹“ä½³¹@>#\1,ÏÓžj]gëòñôù‹šUŠtæmx‚’`7î häì…?¹r?gO䥂ßÔÈð)ÐZIïé 1BËàrÊ{(`k½ÏËè1ó$דwÂ<§©E8™G+”’ÖHºÑEpžÜ Þ ~¬›ãýXw7õcßü¶ïŽx',q'Km2Z—f‹{zçáñzê¤D*! uRÚr XÒ5EQƒs³s§>k¼'ç¼SÖ€‹xEÌì·ð¾/zìÞFª—"¡MÊqJlzÒePý-`9HW}¡Eôd8VÃe_efnü` ýRžZX ñŽ2õû;Ûö˜>YgøòfhõQ†Š/Xσ#ܙģQˆÞè)DÁ8,—ú¾÷ʯ<¸7$]QVr™=†³vO7á9òCøïáÏÅ{s.þ{öçæùmó-ÔúN˜*Xºn\—|Ö—¶ÛÊv25 ”É^•$h‚9Ö±pv¥QÔU,ˆjH'{8ζÒ$oË’œBtûÎʈ‹²üÅå$ép˜÷f¶ µrÀNä4·²{H%E7.µ§'MFª6h3·á -IåJ Óêdht²lvó#7}P‡§4а:fxé¡€J’O‰ÛÍ¢­ P{°~ž\ ^7œ…©\F¯x+õ86íœzá¾Z•2†t&ç'‚`TŠ‹ì<¹—½þX;Çþ±önöÇÞùmï­žÒ‚†![öñË$Wg]¹öä‡S¼Àõdß#X%:@k«H ÙJ±ÆÊµ§h:Qjøi)_àÎW2†¦:J3؈‰!ÙÙ=mß= ÅqÏuQ' Ó¹6ŠnNpØå.¨-×6ÚÚ‹õ•ê®_¯™”^ûî¦ñ¶âe¯å¹XÿˆÎè#Fí,ñäµéM¸¡ÜÈ)Ê ø­ýXnÃcŸ æzcåPFçìM¹!´Ÿ#ŸÂ;èìñßKwòïVþ˜ÿ{çœâ{í¼ïòãÌyKqÇØ©D [`¦§üÿ®åU­@ªÆ)vÁÍXѽîe©%¿[O$0k­|×óƒIöÒ…Ÿ(Y¾4¼™—ñ©Öï€3.ì'h¦·ÍËô韤 JKéyr/ü÷èÇÚ9æµw“?÷Îo{ïp1¦5\ëXàó‡3%ó’ÔÓUë ðu7YÎâÁQ ì$ÕõÈYð¼a+³¥)QݺžH¯R•q¯€8)^;ɪXQ¨ÊÉßùìzbwŽN€> ñFßÅßãôXÀÔd Ôqá(Lù<ùæ?gOÔ)éÈŒÖvÈî-½R’†~ ?mpðt-™à¤èlwÊý2>°$‚‚ìpãÜQ“0SúeúPƒ„—¬]Äçé½øÝøÇò9þÕwó?vϯ»ïȸÇu¶’ÒvçQAÞé¡f=hÚȵd»óòÇ…'û‡ …'s}'çw¢?ÂFJ%¬ª‘lÉôP™O5ÃH¥åŒ[-u+u§ÐÐeÁKÅ­5`£Š›ƒ|£VâZqc\†7ô¤r5¼°o)à[¤åLøçô)ý¨z>cøÆ9þ!<}%*3ZÜ™C Âà©”äžÔx­µJY$é6v7Þ®ñtãn.„læœñ2õŽgtfª‹¼Ü>ßĹ¿wëöùfþã²îï©»}óù݇Ûw—ûT\‡0ü(0½„Y©ù‹û>ÕÍ)Œ«€Ô ü&Ø…ûF*4¯¤>rÁ‹ ­9IûBë5XÝ8Žê[CÔ-˜áÄˉ§¶n¤@NA2rÑë¬é-(èÙ†qEF‡¬‚2oôzœÈ…áÞÆ×ÛÖŸL9´ÿ¸~Ä\4 þ¯sþxŽ"…bc>1ƒ—üð<ÉèÀ„{ºêòÓ_(»~È‘'R€˜qn—Ñ9CÞê ÷¼ÅôÚ-+ á'OÜÔX²¸/Âsä^ö~t¿vŽy¿ônê~çüºóü]j°ï9ƒ"WZÍx—GÞ$–»](±´Ð ^ؾ| –gàŒµÐù©'¹õ;‘N•~>J*€¿³Ôð@˜cHvN[uh‹’7†å®E—)_¢Ü¨0`Ú0¨ž^G|ÒƒŽÛøuYêÃôÑ ÿÅøgcï8ó{þx«Y7̈ç˜þ”‰Ž ÖÂS'×-‡‚àæ…>[î:Pt£¥ËøÙr×3~·œ/üô;qmàÊ/óÏ–¼^QÞx‘Ÿ§÷ò÷ãûõóüëÿžÿ¹~Û˺ŸÖ[C[‘X‰*—r™sá…†±P%5á¸JˆÍ¹–Âü°`ýŒ³ÆÀÊX„ù”ØJŽÒC¾S쀅ÿÿB•ñÓJluÎHnÜwÎB«H 73™µ¥ƒÐÕ7`¨£—ê‡ôgØ&ªž6Ö=­,ü.Ï~†ý@ßßö£¿¦O³7ÐÞ[xÚB¿¤GQÃ=oùâ«ÿ½èÅå$'GœÐøËet|…Ù «O;¸`6%ü–ýå'O’¶^\ ó1/Ùyr/{?¼_;Ͼ_{?ûcïü¶÷ŽBZp*·ÎÓ¬ÙYXj)€ÑÌ/ÒSœï„hè>Ÿ8/ÖÇúÎ#€YõÄBˆÀ¯í¾yxéô—äI›4EÁŸ´ÚòÕDe ˆªO$¼,gµ¶~ (05òžŽ=zTgêñ6|¶÷Ÿ²ŸG·úfþƒ¯0˜mzÃ×ä±'ðŽü¤Dþ‘ÝŸ 彿“µïÜ;´Ëí³Ô J„au¼ÆþXŸAC Û€òßœz(áß§—äY[faŒ¼§yí ~Ëüãú½fçï%ÿðÓ~ï˜ÏßwÜ Ígvt‹À¯®úÓ4±KƒÔò8b™¯¥:W`HéÂnOâH¥6ʲk—ï™–ªc±’¸Aò¦õÛµÏ@"eƒ¢Ø¯CáaËGßN,ý~ù­O-leUßcgÄv£ï;Y­Ùm|šÆ XMÛƒâØÇÈ#ÎÛè¦ÙÞ¬‡Uh߉#?ÄGâG$yl@dëˤËBÇ¢Í=}™héFzòm|΀'ŽOÏ›7û\€jaæmúôÆnD-е?<Äçèñ¿†?WïÍý±øïÉŸ{ç·½÷4CNÒl‡ùþW‡ k Qq&þmusÎØ¦èõö=‘-ÙÃÝÇ£t<“Ý$›µé}ÄžÖP`E/¨xûÅ.°—3Ì;Î?Ämp‰²=­«Ù¦70 ¢óÓN·ªNÊݼ‘[ã™A.Cí·áÑýd9ŽfسŸý úês9¼¦<‰QÅžŸÚ÷—ø2E8’]Þ87Öî¬ 5oô²R(¦¥Q¹Ÿ \¤‚ºÿÐ: Ø[•†Ÿ?° ”¸tÊXNñyr/}?¼_=Ͼ_}?}¿{~Ý}ÏþÌ@J¦…oØé•Cè¢ï6Èô#%8øh%Í3'^ò½¿(Jm€P­ŠíIÿ?ÿ<šd~gSñMµ›NÜîãëé Ky¡ÕO¾O˜8Z[¸–oìgcD§ù”Q¼¦ŸiØ‚“/ƒ¼Ä—¾¨øwd°h3P)…ºÑã´¤,ˆ$ëÛøþ«ßbðÁ?ûO[K7èÎù[ÇíþZÃö;äçé½üýø~ý<ÿnùýôýîùu÷9;~VËÏà&« :v’5šu™– µMzt·Ï™6§ –"­‡åÁän€…æÙÅÚp&Z7‚”1±ý5p~z•}Vft2>Èn¾šZë°?+—­=®à«ö‰¥{b Бi—­ñÚÇ9tE9K<*–$üb܃0Îsd€×nÚa5X§—²åE¼eXìŽÀòƒ Ú4TÃŒ–'f3Dš #C?4’Ö«‚öq2Nï! ái°Å¯i¯Ï$dhnÁzyüÙÇIìþsèc¹><ã~±Nû²U~ÈìÃí³廊—þ·ÑPû¬S)UA÷¾Yë´ ¤VPÿ2Û÷F%*çcqñŠáñZß55 -ã“o†ã-ì~×dÜØ¶“ªûeŽÝz>¬¦«ú“ŽÔrƄ峎º.sÒ¸)‹l7rp؉8ÛñæG‡MÇ8=ÏŽy /+áê¼ý~nò ì^’¶<æêáaM³2ü•ºÍ]]šŽþwÞèi¨Ó°Û]ãÇå¶”µ0ó…} >»õ,Šm^¦oE½{t+Š=ÄçéôÝ该û|óþq,¼›ºÛ7ŸoÑ}¸}wÔÅSUU,ÍyÕµ¿¸¤½GéÉÔî\qWp¿UuEþ·dN.«ñè0‡Þü?µjçyì´F½kt¨ˆ{›eže ¤WV¤ŽwÕz…`pùÐ÷RÊÚ‚(Ðå ³|¦ësä­u‡Iõ2¼¡K¹Y,î`øî½|7©ù1}}×URx„BÝ»ô§ô’Ù´€Æ„ù8eÈÁˆ8"ëž6-J»Ôñõ6p Ènˆ‡7ÿÚGÉš.å¾{‚¿ç¯ïº»å}–‹üý!~7þ±|ŽÿcùÝüíóÛî{ ï²nUú¦Çe”òù¹¹ú†¼+ÔN;†ÄZiz@Šß.qý üާiÔ:|t.ôV-£P ´=²¤ L ËŠ5ß'<˜xK¥É¡®@;…Õ˜¤ æÇ‘Ó†Q„RÒmt=7ÓzúÕ½òfÞª;Ý|w¾ñ{ê³õH‘NLßA¯’#BG¾þ'>ºÀõerÇÚž–\zç)â¹þ°Ž©_¸ÏV®YZ _î2{ƒÀ§”•àöExžþ¾ÿX»7ÿçÚ¿çnßvžíÍíšÎô`¦+]&/€˜(˜æÚ›'—v&¤ËwýwKfV1‚´Ø´Àë;ÞRqW6`ÇG´t¥»W%ÁªÄüêº(mä$ð(ãn{§é6îž•Hs8=Þ%€+b]÷à ÚåÐ~ÓÓµ2ì:J¸ OÓ?ým2Ìã…{>Ã}³@*äïÙ[OÁi}»×ò¾…ÇgºeÊžÎ+t î’v²µ\ôä&ÌpøÛèŘ¯@óÌ“ùA·QÊ1e©sêú¬‡Jì)¹7ù)ù÷èçʽ¹?Wþ=ùsçüºóŽªøI:PE}˜O‰=~ý€#ìo–tš}VsH}×;«9Zþ²œS<L«߯G…Ú:Ç$üJçÒL¬7e5Cœ„ðÇkLÉV.º”U²TÌuÑ÷=b˜v°¬pšcØy%nôºe&¢h/eÉ_’‹¶—ÿô `5”øô(~M|†sìOÊñK|¼¨RXÇГÿCÙ§9]è×Å0Ú9¾¾7ÌèÐû xóÎ!X!Ú,tà=ÿjñz r‹ùyz/?¾_?Ï¿_?¿}~Û}88 \7ì+«N-è«ÄiWõq²bŽ:¢}Ï~‡Uj)Ï#'a©*T¿‚B˜l~Sc!–Õª}¥­Ó+èKž®D©«WµµègIñµY/T³êìlµ»šlãÞKñFoO¾”ÉUÛëGÏÜ3dI.¿ïÁ{ú²fêGW@ÖÍ=}qXþåWö²#WîßñXL¦ öBÞ¨p#C"×q¾ó$W¥ycŸ|ô¤ÿ¥àmò2‹2uI¸ÝnÂsô‡ðÝøÇâ9þ¥wó?¶Îo[ï°”èÁH.¾E¿2H$ÒÙ–½œ¿9Ž<ˆÝ¾×a¨>a·oB7n}4”}Å*gÆŠ F«EÀg—ûÎþ¨8YèBmôd/ÀÐ,8Nî/‰c£pYö ‘r¡©nËÛTpôÔ*šÑ9F¼ U^yöxã¿ÿ¨X!nSã5j©NuÁ³:ñ Žž¸ÿ lЖOùFN­ ]³ómønì÷UItaŸ­¨Ý£w½äÛôµwÀT&^˜nâsô‡øÝøÇò9þåwó?¶Ï/»ïãäf†D]ma·n ±ÆE3Và]É15øÖv;…§ a¨¬_Þ,áI‘‘@ö°´åpÁ†”ŸÜ¡†þ¦Éµ­ë:39}+37ë ÏuR”)Ž7z­†Uæ”Rëe|¬‰FÕu­«¶ã¥aºåþ`xÿœ?IÅ4Sâ! §HOŸ‘jj$Ÿºk+¤ÐÞ®ùBN¶; øùå2Nã^×@¨;Žüsòú¬% $K.‰¨<€çô¬“Ž0´±ì7zPZÔ¶ºÃc¾ÒAdܸ×)j4é$Wõ6yñ‰¬Né§ðý!|7þ±xoöϵOÿÜ;¿í½ã½çŠ^@‚i]¹Äm:Xý)W"½1Ž¥Ýè4)/a®t@ê}ˆ.Èn+÷¼Xziíéƒiõ/–a/Ê4PÚãî#‘û Ë.š¦}°FcÓÓ1€ƒÝ26Â9®R>OOÊ= æÓ ÛOºfо Ú=¾øÏV®õkåi‘úš?ŸÚÇZ¾¡y_ò£¦®œØæ| Ÿb°¶©¥ =»«òˆcO—ñ©"¾çÉ?G “ñâ¤Ëü)X2@ònù÷‡ü<½—¿߯Ÿç߯¿Ÿÿ±~Û‡‘_@!åÑš@¬ÊSkÔ³´Sâ¯`½’«r•†Fä>nì¸D¦ÁÓ±ª@úã“F[gŒÈ±*c) Ôú§ïÞà¯w-SY…µ3ŒE.}ÓKóoæÝ±³yçŒåFOs€@­rèǧnxÒÛ·ÞØ7Ü—Ú>Ñ1y ÞðæzhíàöOáájÔËlŽÉå⨥“K\ó¼!ëÈX÷c7c¼àXžñO¼´ˆ§2®~\¦M"u«˜ub;È©»Áß«öùâüã²è¯y»=óùÛ‡ÛsOÅgÁ¹c¨+£›çAb]ZiDKÆ9€‰hß;nr¬Ú¾‚ê´¼k©Ã§*â)¹œÁw­.£A“)æëyÚ(ëñM×(â%<ÑEkKk^=²U–ýVøC (9ß¡ä=¥\>ÔoÃCé¹=°Ä˜·–±0¯¡ëÖøß“§ÓʃâþüSv 59ãöy °É½×{;‰½žªÝ¦,ükìõÎñ'Žxpž’w]wÉÏÚîEš S—æ!´ƒú-ócè÷š¬»5ÿxÏÛí˜ÏßwÜr7en¢¬3fq°³y$ rËhgëÞÖ]µïójMãã0’¼YÈ aBçðâ±;š¥u§z}·jÃQzx*ìc£0wÐŒÂ.ȹÖS¾;–±bZËwJƒ~ßÒ^²ö}i^Æ'§~XEMXXŽ ÃMš;¬þÌì;,Qü6O7»Ÿò£,jÑÒt‘¬§ ÷0nÔ,H¥dy¥À£Wã¾Pa4o܃áƒË¬Ä4n³2Af¶VKƒ9¤çèé¿Ç?WïÍÿ¹úïùŸ»ç·Ý·Ò”Ÿ^&1†·#@Õ§¥’®ŠNýQ*n7CYwp$ŠUâSë‹n4K{ îK¬p¬Ó—¤ÒP†8­ØkÒ²§>A7ø‘ʯQV5'KœtÙÄôI‘6Ën£Ù©Ûl;lò“Úú\é  Ökör›>ZÚ‘~ªß…µß¼[Ÿ.Jjy —Âøž9¶B^®Ùïä?‚3r tÀ"+úÖêSV,û oäŒßQ 'þ¾Á~ :öû€*gò6ýNΨnMõ&=Gï…ÿþ½r÷ç¿gÿÞ7‡ðÞ»Îöeµ:i¬­¾¤ƒY»8–9T­ÎHŒžŸ Ê@WYêlµ:í…¼·2$i@ v{Zö  TŒúdPâñšs>-8WÀºÇÕ2(’NLÇ ‡žÔÚZÏžž¬Þ–:ïé ¥‰§'-sÀO ,@CQö@ºð߆ñ_,ËÆèßó×w]³þZ;æ-?Rxs´ÈÔŽãXyaŽ } Ô.FºÇ„q¿Y9 –Êrð߬Î\'+OöÏ1ÿFy1@\`úùyz/7þ±~Žÿsýßó?÷Ïoûïâ«§ãP¡Öq®Ên]d.¬åˆ1 xÉhÛÙÞh'QRxJµçbß•˜Äi:QŸ ,R](®Ët¯ô|«­=®ú`Ý: ]JÍ—¬ë„×§Òj’¨Ý‰h/W´~=Uj„o䣓E—C¹ž¿è Zñ„”÷Ù¸—å;Ò“|öš<¸D`ÚŽ8záq-Ó3ilÃH@rÉ«EOz¼£dNH`é6~3þ5£¶]ýŽÿF*жÕ|ê@Ýü1zR¶Î<ñ&?GïÅï†÷‹ç¸?ÖÞÍÞoßvÞQqÌ-Lã‘wE®®˜Þêêí•h­STè|ißeÿÎF/ŽÇÅ̇©þTÌÖNK½¼ûfÒ;p½ E ‰F¼`éQJ…ÈyÛOxØ Uü(‹ìªÁÊ (¢†H²7ríKëÒKi·á×Þ:î’BǾ¬Ø—¦—WhÝMß²Û¤ JIªöOñaåPÕËÊK&Š\9²Ýò¸ÑƒmGL+÷6>Kt%¡•Ìÿ\#¹ŽÛü;8˜³¤ùC|Žü¾þX½7ûçê¿§îžßvߥ¢³á«Ù ¯–d¥„á¶+:©oê å­6&øµ²Ì˜o´ŒaéÆÑâ_¼6¢ÑìíÑ_b´Ún“"Òj—ävÝ6«x¨#­6+2J©Dl[=¢Ý0Ýã»™ê¤)ðºbgÆ}ÿ²âà­Æe|}G«—i¿½qŽÒ,"é6¹çG{û9ÿJ…¹Ú·7ÐÉmƒ|]œ}«€…¤È/„ÝàMOI&3£~Ò1>ꤕL>ÒÁ>¨µ’gFû1}F0ã¦ÌE|žÞ‹ÿ=ü±zŽûsõß³?wÏo»ïr«’™F‰­5Ó¢’™MMÉ}«»Ô¨*XŽUš_ÍÞœº¾+´F¡^Wø,¹`ˆÍÁAäÖÖë…àHSöú\‹¤ÎÀ؆=0”ùh2¹?ŽãŽ%Xï“®Wi:s–r£¯ô\ô¶Æx·$úNÊõüãõÓ wV?}Êàɯ2Í_§ø@Än~¢Ûµ"c™Ö¬oêIß,9-jøeønÜëbÂ.»pß-s^G­XÊò1ûŽ“3+·Fn‡ôý!}7þ±zŽýcõÝôÝóÛî{PVæd§ð‡( úÛ)mÖ§€ƒZVMºK²Zis! [Þi‰,ö7@·zýN¹g‚zƒr^ŃfeºNƒÐÊö è¿=’º](lO’7ÇDÕ«7ún%8ßïœû×øÀ楨"¯þéO85PoôïùÇjU8YOÙvÁ¼Å‡>FQY}Úƒu,feé¥q!;w²àQ:Gëp~7÷Ý›{ûÎöÒ6•}Ì=šž[Ûî1';Oí%ïÇ~¯Üç‹õsáßwûæó-·÷¶;ì'¢ªc®džÜ&J²¸1û ”ÙÁ:dûà%±ž&c.ÜíÙB˜x²cjx&JC§HòÕBbêÆÙù»¬|k¬ã…ÄHY|ÂXr˜-aCm‰^fýLÅëèró~S×@lî2<ðL'†fpaß(¼­bI7ûu£P‹NsÇ¿éŸ5d}ª2» |Ž9ßÈ¥j4Û2é:z7îqF˜oÿàž>¢4ƒ3h‹sòÔgZš…:oÂ{‘¢îVîóÅûÇeá_3o›Ï·Ü>Ü®;^ù`h> S—ÕN)sÖ‚µ\þ›E("16®Òý }.B|!qÅ%kl]sd3ROÛû#§Œº‘II·ï¸qu“?p0ÝÂad[b…ëYÚvâÎx– 4 (]¢VHeÙ'íFN!ˆŽÖïû2|"u jÆ~c?ûäQ–'òš~¤ù«n­ÄFy‰Oú[¢öËVRpÕÄš¬ ù¤O÷M f¼ŒŸP tYAÅ…ÿd±Èª ¶XK$?Z(ÂóeÄSzžÚ ßîÏsïßÏÞož_7ߓ՜¨è²¬@Æ,};î¬æÔ€ß[åJ Ñ T 0îgœ€+Ð@뽚 q‚¼cz“ kWƒ!‰'ÎÁzuëM\Ž:ÉI"[!mÐ Ô–RÊj; `M þeÞè¹£À_ð=š5K®‡ta>Z ˆDßj~Š“Nž«œè¶Öx>ÅÍ?…§ï-K µ äoo¡7K·åñôäbÓŸXÚ\é—ñ¥ À>¿Ç…ÔL’æq÷ËôÍÃ;ÕÖ.âsô‡øÝøÇò9þýâ»éŸ{ç·½÷”}70˜¬faLé˜yC1rÇÁb]ð¦U V'_¼l#0šFRìúÍ£›úwkôrª´HÞ‡’ˆ,s/”íZÓɈ¾ã-"ûˆ“Ô =ýþ€Z¥„/ÌSsÅ =MRiƒ  ú¸ŒOÞ¤öm+6Øö›ŒTE* ›Ûˆý9¹º]¤#êG×âOùáãnÄtfžâGê×(YóF/í!¢YH…ž—ñ)ÞœôNZhÛž}k¥?[—éŒ 9ƒåâsô‡øßß«÷æþ\ý÷ìÏÝóÛî[h8Á‚D³@' _»ä*»j§ÛÓ5Uªö¼Áºyÿ`ï­0ýÔ¤SlƒyU€Sÿ†K*@¥päìi›¤×ñÀÙHYÓb’³Á´è™^ZàM¾Diùp´ŸÄu´(GomŸ)Çñ6Çÿ±únþçîùm÷y÷§ÁÂÐÈrŒÝªÛOîÅï‡÷ËçÙ?–ßMÿØ>¿m¿¥êo°@º_É\4Éè´óYhŒÖv¤3¾w†hk·ðôhÛGö¹õµd°AÇÂíå…ÇdëÖŠ¨MʨAGLåiWéZÖ-yÍrÑ$ "ß Ðqvj¹!5MP?¶½Ñ}£ ^çñqqûñõÇFŽðØ­c_ßaŸùn4Ä÷ô!9‚Éywqâè—·å÷=m+9ìm\È«ré¶35î½Z3NR3:Þǽ!.P©ÙˆÂS¯Ñ½£Å"áoÑý$vrÿ¸Œü^·OÇø{Õ?ܬݞùü}Ï­ÔeJ_$½<†šMœ;X“’d>O™–ˆ%Ëz‚9…¤¹íäPD¼Ù¾9˜†¸s4hµ ÔÙzb(¥"¿<<Áš´vêõB·@ßÉçS™é4H ÙB²Ðõ_{}šzzÔoÂm–y > Ì“zýæžæ}ÖRµ<ùÇïÙÓü/.]øûGzuÝáxF–Ñl9ôWààBo®ÀËÖ¸{?¿ÇǺ@ùÐjqá3:®µ5„÷ôõžã çvŸ§÷âwãËçø?VßÍÿÜ=¿í¾£É¬¹´ÌC†ºŒ®È¶šoºú$rd¥ Ó÷ܹäM»‘ÿ²* :ÒÕÔ°!iTN!C"Uë¯UÅ¡ß×Ò¬*¶Бu"j€ó\Qf¶STnˆšÓ€:Éã+Á2höœÛç?ÔDÀS(†¸¹3Üà€ f°z{¾ÿa^ôÀ Ò©oÖà&Og7© €Ñ.úŸÂ3ú …œ–g±½û€ÊR*æ¾È¤–’Þ·ñ­IŒ,9+Ç;Ù¯ÓÑhù5oÓ§1‘Y‹ã”ÞAï„ï‡/ÝÉý±ônöï­sJïµõàP‹ûUs.’¦‡_¿ãßÚ®yÞ0|ªr¦ÈÄòh_zÍ:H s»_1©sèn¨ÌVy÷E؉â­X¿»là;4ÎZEÚǶ¥Ý¾@ߥêè /' ‘ðÜ$ßÈ¡/z*©?¬Ïò½Ç4?VSÚSº°/ùÀ>¥°ßÈ¡?§O<›JýòÝëúô„Ư—îÇcOC¶žoä–ÀÍYF¾ oÉ@m/×ÚÁ~¤ò¢­>9ù2}pR¥|Ë·vˆÏÓ{ñ»ñåsüûÕwÓ?6Ïo{ï‚ êFÜÎäŠ@BÔ¾›¤~4’ŸKÙyjôd’•½Ð^-$­Z ä¶¾fOðP¶EÂíý[JÏnœ’û“T4cqe§=[³uÀnLW:ÆÇï¨E« Úño´hªmMŽù=@ÿ€xs“Ÿ£?äïÆ÷ËçØ÷‹ïfìßöÞS%–«7d.œJü"E¢qÉÏiñÕšÖ÷NÓsJ׃C%™Þ‹ÕÈw%ÌJm¦ÔíID’ÕHÍ3GçFÜ~ü•ç#€9З^W«‰2ÂŒ–¡@àyEï8èƒÌý«UØåé#å<Áà8Ûmüh­Uèì»À,=ÿÖéƒ&Êz”þ=‚{ôÞ¥MÖ|N ÑšãZ61¥Ô+zw’ãœjDhÚãøc[?O*`/ö­¨I‹}ß“ïé'+„{6¦xŸ§÷â÷ãûåóüûåwó?·Ï/»ï‰)õDë‡hŽo ò©´cJàe:ï*›>­'ÕønÝì­¹¸¼ze¤;öïÖÍ$ÆHS û™¤J¦êáf½Ïúò†ÕI"Vw\Gv¢zno\Ðyí)ßÈ~ã¡È}öÛðÅš(²£ßØ/ƾXèßm³_Ó¸.ʼš¥?‰r/ñ|Ç;ÃîÆ Ä£î‚\f+7zÝî–gÀëmüjüë'ùì'ÿš0i†:CóÈÍ¿~ Àj²É§ø<¹—¾Þ¯žgÿX}7ýc÷ü¶ûV&÷õ,æk+Ù†ºÕAzÖ~Ü­OIPß¾ßóõ;× G%6ÜúÙb:>¹VÄJ ³Ön̉låyÞ'íX-Ÿxe”S…½ûX»ôgk´Ó(«“AÂoÒœ7zôÿRÛhí6>AäImÍêìq🌞Èñ亽æO²ÀEHu?P/ùE˜Í”Öô­÷‰?<ÑI¯óG[d̬yox¦¹pÀÙ}°Á±Õ¢5rðÓÇÙ¬% Ìã">OïÅï†?VÏq¬¾›ý±{~Û}ëyO_–Æ«4no¡D1ôKoU’}ÐCü¹ßa®üè¹ С•Š ºP£M랟5Ⱥéº_ͽ­Ó¼ç—ñŽ,àEŽ30Vs„G÷*ÖµKÀ´Ûƒj‚Þl¿‘s;ñÅ÷£'j èЛʕûdÜW«ÇxÌÑŸ“'­”Þòmä§–ù%ïk"‘KW6Xhu5PK™Œf l§RªKĺ¹Øw0/‰–§ƒ˜–{Ð!޳Ðï£Aë\n1˜kÌ>XnRÔÇR ¾½jä´Ñ*IOIXè!àPc³§''O Fé\S@Ò²u¶ =èÃî‰Þòe|š£&Òi>ua¿‚çC†x³œ}g‚t´]³@% ™‘(ñ²Æ Äè¤54ñéW†I+pK_sàFˆÛ®½A¼bÒ ¶Ý¨«­-èÀ»¹é{l“dÇ\JÏç?œð=à™'„½Â®næRðËk;Ç·éä¬]r¶YaÓ_VÙß[¡g:PØz’$ k¦z¿û“8ù¸ñϳH‡¤&å6}riIåÞ‡ñ9z'|7º_¹ŸÌ¿—ýã2÷÷®ùü}×­¬»Œ·ËJíÉ…¦³"w… fUËéÀöR¦FOð'ia•ö#¡¬SD§íHÐ%|'3C0„=?¶¦kÔ¬´‰À@=A³Æ‘d/d¬ï7CÖBu5¦¤+%oÈ:yž^–ªQl·ñ •^8­TÏ¿2^nf? ‰‹[®‹ÇË°ÒæXl£§Û!¥Ášèœô$Ñ’~®Ä9~³6H˜¤ºœüSmÝ€M¼ÍŸJ`,¨~ŠÏ‘âwÃËçØ?–ßMÿØ>¿m?ï¦'ä?V{2[ +pn4µ5G9…iu7³¯2ì(´žy§mÕ•_Œ9RÖ èÕ&ca¬îjvR¹/ãÌýEO$vug³¬£¦,%Xq…¥IáœÖÝ Ç6]v¡Ão7zD›+=–­âÇ×E\L sô+l§>-W‰›9AƒE/ýë_9“Řu>)ž1[w7[‹“ž‹|uwKó6~6þñ¬_¸×_·ŒaîæeöÍŒ­·Ûn0ý–ž§÷Òî×Îóî×ÞÍýØ;¿m½e)UàÉšuʈlš4íÇ–¥DVeÖ`€~©!þ§¿t f‡•EmÉú½ô]ÔôLiW4Ðÿgß}ú ߘW¤Yj’´%öP0m}ÓÓÎW;«íþè}–Ý'ÐÓëi€ËèMJ·ñu ʉ›:^ØÏƾ¢ Là&Ÿ¬•çUÍèe—€²•ª¬EúžMvO~´9Ê[f4wy¨¨˜ìóFÞˆKIÈyF¹á}”6&J¿±_Œ}^ì?…Q?¦Ï¥Canž««Ÿ“^³¤ç6´…ˆMßZ?PG—/äT²þö´ ø1|1ÕìV/öaêÜSÛw™~1Õ¶gfž“ž'÷Â÷ÃûÅóì‹ÿžþ¹y~Ù{O“Fɱ«ÙšhèÆL!ÞjSÓ-ëwÿ‚‘Ç•·Û=Y"´a\ ë+þ”ÐÃî"ÞZ¢W«®ŽÝ†„ü½ËßB™?ašJ5êné˜ô5Åñ4©±<pcW—z§bãB¼¹¦-WæŸk#ÓC†.þ Yô} ~å§IÍÏÙsm4YB£KÏZjv) i×—YQR¤<Ͱmzê¤ âžæe|r8Hç5ô™ƒ{+IÂÏMìå2{"›´=@O_¤çèé¿F?ÖÎñ~¬½›»ß9¿í;væúü×O­™nla)Ôäâ˜iLæ>BÐS²@æž?þÛýü/ŸÿÍ´×øù¿ÿǵ¾«¿Vk©Š¢Xëݱ:†àý¥qß\ÎðöE7ˆ±Cÿùÿ'¦Iÿñ!›§6,¦¾:Ò䣎²„áóŸì÷þûÇ¿~Ä=ÃA÷tLŠÄ‹ÿçß>ÿÝÿ>ÿÃÿûñŸþEï~ýŸþbøüý¥ÿþñïÿùóßý¯šWúüçÿûc´Ÿ£ Çµ‚È(ÿü}üOãþüçÿçóùçÏ‘]µ¡€ù1® &Ï £ùÁbþ…E+¯RǵKédrþ]&ßKsc²L¾i~0Yc2é®Ú_ÄÚÚÉþ.—ŪÇP0¦.—íàòMóƒËþ—u±IJ„FâÉHß#—ñïr‰rè ¨–ùpãr\¾i~p9ãR–W¤cGé"Ëôw¹x6÷‹W.ãqpÑÏ£óÛÙ¡'oý1Ö…Ïü÷ø<¯5ÞqfØ-n£+Ño§ÇÚ„È$ÌèJ}­uÿ…»pºÆ¹6Ùè8,Ž»+ÑoǦÊ6 ?ËjJœ[×$¤Æßß½|úÊä­ó9{¨ã˜xþnD¿øë+Ç Hg:cîï^:=ù7`sœÏÜè·sR-\ÉâZ0ІÄÖÓÙøK÷ºé«Ü–¢x»æÚ¾­cáù»ýv>ÄÍ®àÏÐÞiÏl¤Æßß½hàO'«=—Û>Šé+ѯGƒÍÖ·“VSâ¨FjüýÝ+¦¯æÝa¿âk õÇèŽj«;iRé¡q÷ÛÅòãþJÿèDüü»ÿà ¤fÜÔT˜‰Í8)'éóŸ>ÎkíoÿàûëÎÑ_ßùërY¢6™Òôù/ß|ý]{‰3Í›uG»–‘o»vÿóÿñ~ð«yþËG" êÑðêÉj¿<ÿæäÄ}˜v?ûwþõû×>Ðÿõ÷¿ó?ªŸþÓO_oš6Pˆ²Y Úú<lQÖhRI“Ê8ãjHFÏ¿@3‹!“’·Í2wÂú.+UvýH†(Ì÷D¢Ñ$µlµå¶ Lz=EqÊú6ýšÌgC²»A8ñ½Y}´¬ßföˆ°Káëˆ|ÐSR5(#ΨìÇ/Ó|N ™X=¾çßÚdcÔdYW~þø„ô2˜æ\ôoùé{Qu„jH'‰Ž÷¹bË‚ér¡ŸÖÀv*äÎñÅ•ñOÙ‹!$9þùÞ£¨ äÖÏž¯xøé æ!½ÏŸÔ‡ìýØní>ß¼\Öþ=w·w>ß²ûp{Ÿð/7Ù©UmÞI—=| ~Š„w: dÁ`NËéµòäÔ¬Ç:Åó»§VÀÓ`xé ½ÑF'QYk9GŽmiuÙä{¶Öí,äÄã ÄòL;Ý4–aHÑ q^È­Ë 6@1/¾ú¥¢y‘>[NæÉv§ê“»ß3'w;²«÷Ù_‡à¢™."Î+[5QsÁéÖÇ÷ ïšMçnÑøí2|Æ=¥ß£_¸'2Ê Žûv™½¾çJ`Žáyz/|7þ±vŽÿcíÝüóÛ¾sž^m_ÛÆ4mY-E ]µÈ®æ`7ˆVzl‘[–zD Í¥‘íâäl¯6IëÀ:Èß9…:"•YœÐ tk%§%²¦É]^wJé h8á|çµpõX([ú}.˜z#'WM‚ÓecÇð$1ˆ@IÚýhìS’m§ùéÓ œ& ºþ-½ ]Ouñ.J²À¸CH­·6\¹5ZתBÎᇱߩ[-7ö7à ©[?‚súÃnPòl7‚Ý[zŽü¾þX<Çþ±ønúÇæùeïÙ ª÷qN«ÿJVíNàW·ÖÜñ2¾Sd\Xx3]Ê.^,æ¡§€IkŽG c!Ég½¯t!L4oëOµ:h»$w.ú–0žÖòT»’`Æj©«ÞÊ"8‡}õ[@e"lËžVÂ)¿dÞÊc|¦CÑÈŽ9ügã?´üh¯Ù“50h»ZŠÒ#ë@/h«#©iLG€#nôL—þöÅ–ßÞw‚d3¼±Wë¦r›;­ÕR¥ûSÈ7Ù9úCönücí÷ÇÚ»Ù{ç·½·vç¤*HsN+'HWoìày­Ý©wGɈÕЙ‰óÄ> §?ÚÉ|™†Á+'‰fJeçža»ÈZZÑžÐúµíÒ°Vjí{´ÌÀÙÊØÚŸ”&r[#Y/D§;~²–,"yГ@Ê=×Áe|Ë,H³ïþÉ?™ úýf‰¶{…Îß2‚˜Ymù‘až~òí¶W¨€kÉ€H<}‘æyè­ÇsüüÓ«{ Äxþù|a%5žóç;}WÉš§ør'~?¼_>Ͼ_~?ýsûü¶ý\VL·?ÛVc]`:»¡L‹¬Aê­º#ö«h —#t—þ’F\éÓJWõe6(cú\çVVf)@ßèKe‘¢{M,¬¬•bÛ²Zfåg6(cDhI+«„O%­~½)óthj=߯gå&=Œ–Jt°OOy¦ê\ü»éÇ/i^ ÏncØ‹OK×H}­ Ì)S¡\D¦ƒÄ…ž òï£uâ9ǧŽèï€Å…Z>å¬Ï9 b¦OyG¬ßòóô^þ~|¿~ž·ü~úÇîùm÷y´ƒûDpËPÙÑYÄßÝlú^¾ _‡¤Ÿ…«ª¿:i—Ú–ò.ë!¼“Þ ßïïàÿ\ü÷üÝÞ9ä÷ÞyNŲí8UÂj¿Jg@À3ªõžø›YÆ ÓRžx;`B!ÆõcËòâ™ö)+ȨC$Nãºçõ=E7[¯Ë3#=¼’˜º6ú¤à4&Ú¯²4üLf!} ¤|ëPDÁE¡ ­gÊ“ë#™êÿ~>[¹GÇA¹u÷7û&P* àDߎŸÓç°Î uot'>ð°‹}Á‹¥[#«ªï®œŽ¾â TàÇz¿ÿtpõÆ?ýí*Eö!•Ûü1¾ :¾X¦C~Žþÿ{üsùÞüŸËÿžÿ¹}~Û~‡‹”Æ+–Åf† eÉÌœVð·å&£dŽhU³ï ˆw-]Ü^2 3Øs)ˆÄlÀé/ «ð3Vû”û\È/|Ea¡|…—rÈH<<b3ŸIV׃c8iTCêÇÙXË âȉðÁÀ­Q.ƒ“u¬GÓ ”Ê…yËœ`/„òí"ü1wjiÁÑ£ÇӢˎR\àè¹¹ûœæLýHzZ*¡Ìt_ß»­ò\=<ÿ:H@7âRé2ÿ™ dƒ/òsô^ünø×Ú}¾™ÿ8WÞMþ½q>ß²ûpûî0ðQð€I1Yi«‘WV³µV<9P¨A»É`'Nê3ÊíòF€Ô¥)s*m¢ºæi¿jÀœæÍ~‚nc戟䟨c|{C:y¯qíÃ@ã,àgˆ¹†Cì;/4’®èANzAsý2º®‡1'Z@Hî u%xN,ëæ¯cö…V_ð2ý[zúb#òFÞþ‰ŒNG†v£§A(AØZ»ß"Ú;Œâø§/=»ôêÛüÁ‹²®Ôa”›øý!~7þ±zoþÏÕÏÿÜ=¿í>wŸæ¸Ð‡pÍ¢Äv‡ `ü¦ôš2®š"¾ëZ=¢X~¼9; 9Éë;mW2(·c;3"oE¡mžU»éoÒ3X=#ÎŒÎ['ÅÄÊt ÿ ÓCÓ¢&|Ç@œªÂ;Í:»ô†>nXZqi?¾¡WàJÉÖûàßÐ/¤ÓÕ=ü{úÍÀ3d i:¾_3ð–h¾|Al¾ŽüÇ®PsôV­G˜?ç9|7îA&ßrŽ{30 u|ÆÛìÍÂ,­÷v“£>dïF?ÖÎ1¬ý{òçÞùmï±Q3“i^^@sù¬c; (ƒ•מï4æ50õbߩДÑbyÏÙ :qТoŸ zCzË:ÉH°.䎆ðµÌÇ–¶xI§¢=à2–]U0§iÚ¾ÄK‹ÚÄ>§ï³vzþd-„)7{¾ƒˆ lØÊUzKÄ\ÝÎÉ/‹‰æñÝГ|Ìn%y—áÁÖ`ŽÕF:ÿÁ>&YÔ7öËìé`eˆ>¸å/Òóô^úïñÏÕ{óYü×ü/›ç·Íç­{ë) µ.î…¦öhèÞæ$¥q>8XkAð­›:Ø¡+ûhfk³xî5f@ì|®ô#lŠQÇ‚«[)t€=íÕAÔ VàG‚L&.hY"Ð<eÎ+gÒ»Hz¾Ñ§/tK‚Óõ6¼D¯÷¦–ò…û`ÜK—ÊÖ7ï˜=5N‰ _\£“ž5á%Z“ˆM-k“¥Ÿ `ñBOݱ¦ìNÞzßiÇœL¿ móϋÜ0àl霼>ëFÖÞÓ›/²óä^ö~t¿vžûcíÝì½óÛÞ;LûHÊ˪o1µ<‚oK“ÍeÙÓÀË`!£e¨XǛҞK²Ì좞Á–ëµ §„å뀋D†Í®îšVxÈöí»úSp¬£ôñ)Ñ-chÌ}e>Š@™L¿‘Ké •Ì¡…hrŒNw×B½Ñ¶¬=÷Á¸Çž—eïæNQMq>¯Ü×·èÀm’Z!En`™Yø~¤(ÏžoäŒieg#ß†ÏÆ¾¹ØÊ…ý¡·X—+Íg¾LлŒê¿ÖCºˆÏÓ;éûáÝÚyîýÒûÙÿÜ8Ÿ/Ñ}¸]·‚L ‰¦Æ´ ɤGééi¨0Û¼Uº·…‰Åç ËK·ÏòÞ‘JMÙþXÖ¨å/êç›þ'®Ó KîSä„Òì%Óƒp…˜@âÏtNÞ¸ë ž O„}Ö›Öò°ßÈp^å6:®R­ x²ùÆ=ÝM·Kíß1–×äuýáó á½…Gˆà½õ;Je>®?š€Üè©îÒýL¯Ðt¿Ã¿^ÀiP›'ÿò”DƒÚ<çO:k¬´Õ˜ñ&?GïÅï†÷‹ç¸?ÖÞÍÞoßvÞÚ›ô4¨lHÎÝŠížòúÄçµ÷éêÝ–ëE¥“¤Öžøö ¿`=p.¯­?ñq šG8G^˜Î°2ÛBkÒ‹ôo˃wG2.`ÅÏö4“ bßéÚ ¥Ú²ŠNz€ÆeðôÕYá>}'RçÎyòÜGã½u‰üìéQQó]þ);ë´¤£ ¿Ÿè4ýèi Oj¢[µ‘zPâmlØ 3cº°>¾ÌNe'^&N»VbG½ŠÍQbwƒËæ˜?–ÝMýØ6¿m»µ1‰)è×1°VÌ%Pn¢éYã(~ [‡Õ tÙù8ðn>¶µõ ×á _ß‹!>G!¶¥Õ Ñ ×îØ.Y ø:Âsou;ÖÕŠ-²ò£:æ·î-4ìB“Úu/¢Û‡¾ÏÅ‹œ¤ñÉIí6ßÌ\Vþ5õ÷¾ù| îÃí;Û™/ †G*+‘¨ƒij¦¥ní]T`8šŸ+ǽÒD‰àîJ2Fù•âû£Mà~4˜™«*[JCX–'ÚFÍt½H+‡xtˈk]õ9›?)Y›z²€­ãÚ*ä÷äd¦k2däctÌÐB!L^µ ž{ÌÐÈýkÜŠÖŸ¹ 1ãyŸëL:ÉQ@¤Ë=Rn¿´DRÒ;@8Ö£þ¤‚’Û:š.rŽN?VÙΆ%}ãžô©ˆûÔt‘söÀ¡&Цâ,7á9úCønücíÿÇÚ¿çîßvÞÊ1ôé7Õýc‰õŽ¤Ô¿YÊ‘UÍzÖ…ŒÍßÕÇ´’x«•¨eCwYßÉk#µÑ¼Ñ©zMkälMCÞ®­ZOÊõ®TC¿AÇéF.í.`|¦½ ÁòþîÄÀF®¦+{òζÔÂ`IÚçè´„çqŽdD_¸p_ç\^“cöä1Z?ëj¶í¥g8àp¶¼sJω-J™À;éÏÁæ0÷èe|Ïét ³6Užÿfà9ÍÀŸëeþÍÐs4¸9HOñyúCünücõÿÇê¿çîžßvŸ÷*QÍR9ÝíA¦I$ÄtlN»FQAÀŽIu¬ &_Ç{îèÉɹ‚dԛĆ<¿/Ù»€‚Ö°¼&]2KNë,‘$‘ò‰ñ‰˜[Y@ŠYÎâZæ¼ Þ‡k7òüE’ÜŒý¹ÊÜ許4&$ÝñÿcíMvtÛ•$½y"—Ì;­Hèó*sÿáè+Ôí'lEÂ5ëÇg‘žæ¯CtñäEÍõù’ƒý}düïÀÃ,§²ø/áþ RħÂÿúŒ¼ë$Ù NªIÞ'€La”tkŸ%x«l˜·þíeoNü¨9oöë$²¦œtÛkü¬—}ô0ƒ©ù6}9F9m^-Ô@«‰_Hô£yq*Fsù¸õ^e½ª“æÍzRæƒ;·Ñ£“­QÊsöööûìïýï«·Û¬þ6üc÷|Ú}{ÐÙt€||ž¾îðg‹q3y­N@Ű‹TH.m®óÚ*¶ÐÖ]šø`T-Ę«”ŠxtV]7ñgsó*¿e]¹€Ùí¢9dÊÝÝmû=NèȦÀˆ'Ú 5†xkOâÕ¹2øô™ÌŠ8ÒôÇf¿¤;¹qšœ¢cü\ZÝ|&ªâu˜ló‡:'ONË)kÐÅtÊ0[Ÿ·ööò¶+¾’j™·þ³ì·ÍÝë¼ØO¥õ¿Bæ_ÆÏf²_Éq/mË÷üíí÷ùßú?Öo³ÿXÿmüÇþù¸ÿž<àöí;/`Òæ™äZüÁ^±Ið?ž¾­îuZC"'âtZœàŽ·Õ':íÏ{ÙŠV¯g€¦)σ©‰;‹•&ÑYŸ azñT{÷REêPxE»š’2gs|6s ÆèN°÷þ¢"ÔÝWdüm=ØÈí•`/´'2þ{ðYZq³qÕ>‘ñß“"Ŷ–뢇x }’"bƒ³=ê6ä²HÎþ»ì‡"¼¥›ý¨Ûà¡Îâmü¨Û‚Æá2}[ó}ö·Þ÷µ{.ý{ðÇÎù´ñ s#ôjN@UJÕ‰üjVœàª0µQ$ ͇à`¢ý§UÿX ¢ þé<•|v ¯ùÔ÷fÀŒ¸Ä‹i2 Z½> V$[‰Fgš„²›ÇøÂFÚÜTS4ö8F ‹xi.~Zj!`2¸t5›½ªÉQûÛc3B[ îŽ1½ý{ø`Þ`‰ŒÈ}¨ý{úŠBÍÖ=J#j°BS¶gó¡·VA·éÖû”õ<^ì<¬—0A"ê\ÎÁO½´P®sŸ»ïWë¯ËÌ¿;ßVîûeû×eá_#ßöÍ÷{â¾¶}w€í#‹Tµ P5þ@@`g0Ó.éa”•M%Ê‹ñþXXìè#HÑDÄ·•AGó Ó\‰2S“¢ß# ;½Ô‚#A•Û,u±îšƒ?=ÑSiUX°j×V7¯­¶”ÞCÝHDŸóëÒ3ÁU8¶fŽX|žd¸}Õq1ϼ‡mþ`kߥ‹û}̺´¼­fñrJÜS;w‚ü·Ksô–íÁ0ªDÞy‡ã3PmÞ/ÆÛ;œ#1 aÖ¶Á«=¥ø ˆ ®€cæööï™?ûß—m·ÿ½ìçøß»æœ¾×¦;À"ˆI‰TŠbäÊ“ŽQsWìák@-M1ŽÀíWKNË™”“Âqõ;8`Kôè¯ýž$µ1Ñi!†b7'tÌ!¥å;#‰C0Z/“©Rdcôø.Ÿh} Ä^í÷!©L{)9_òѾSëZI=—vé? '¥[^€…·ýƒ.“?ZÈœmüžýóI¶e½=~Ï_» l¼Æ,‡8¥¼ëm²µGÁo04nýÙ_8=çÍ~¬mBƒjè.ã§d0J»0Í9[ûcþßýŸë÷¶ÿ\ÿ÷øÏýóiÿ¹;Šç ±åØÈª*õÌT÷ÈH®®5¶¿2K”’!›õ“"µ‹‡ÝŸŒò´¿uæƒxu¼µ'“iï9ô™ã¥ÿ‘d¿½Fú*}ÛZ^°¡æÇð‡*á€usíÓ·5ßgëýX½Íúcõ·Ñ»çãî;Šç#cIЭ«ðÌ|8æIüîÚª z×*k«&E zûáŽj ŒY×V5;këø”'S·@ýiqÁuû°¹®ú”7W„mˆv¬ô9²¸éœÕúŸ(B.O@-_]Ìîhn/q j·Òû¥û$ì{ÌHÑö‹ùp¡ÏI¹ržsØïá'Ê&(õ±»êÁ®üž>ûPdËS¼o;Ý¿ Zr4ÔíXuë¦.D€]Ìç¢Ï,p‹—ÑÛψVÙÃ:¬úkò¾_­¿Î©ß:ß–îûmü×¹ôï±o;çû=u_ÛÎóc´¶Óç»±s<‚j ¿¯\ÑžŠb¾‡¥ð .r-2.¢Õ$ýw¸ÇÑý}¸ºP- &e:ág°ðãùŒ;€V[Ìê­ñ:ª}åÒ2µ —EÊ9¯Ü¦2¹Æ÷Þ¾NJ¿¬ó!¿£ÿ:xØVÙŸ/æCg4Ùcåßïæà6–ò$ÞÓáÌSv²Œç]mÞ4eŒ“šÑ³=P””qëÊþ²“ßö!F~ê:ÇϰMÉŽè·ù{·?çÿÝÿ¹~oûåÿÜ=ŸvßÃ6¦ä Ú°>>¸²>îøsºØ#«ð=êwª ãð³A¥‚œëöØíÙ·;%BÊâ1d•‚à¶³¯i~ÑdãqÇ“á@yU¨q­_µÑÙ†x«l­%îdd ª9Ò…õÖ^¹63u=·þEmב¨éf‘ý5”‡°k¿r…p7$oÓ—Eöj tN³’ïùÖÖBö®ƒK÷]æ£Èøð‰½ÍG0ǾL[Ñœoǯ“T:|u·éÛÚÓ¿õ,ßfÿ±üÛøíóa÷Åž.DY~²úÄ~ÃhI—<ÕT& ]¿›õæt$øöbK{u›í¨$½rêTž»öØ@ ËQÄêáZUÙ„m­ùg©v§µËÄÚQtójIE@sžË‰ãpØ/º5·{”ÄkýÖ=•·éº%óæw-Œ%¶áS³;Eµˆ·Þ³,5B Å#ÖBž8½å[sŠáÁ'Ž;ºï2¿ tÏnæ+þY¦—^†ß¥¤Y¼¸ôœ½­ù1ù[÷Çâmæ‹¿ ÿØ<öžãð&U@<Ððö©#QéÁ{¢p#àÎ:@Tfg¶ç±R©E$Ïí?À #¯Tmo TÉ”spƒÿï´ùg*IòÚ)Lˆ;£¦÷À Á]ûÔVaJžŠýÖšFÅØX¤¿{çÉ3!ƒºî›ñQÆÛ%TÒÒì÷ØÃŸÙ[%F5Pþkî;Y±ï»'5e÷yêzi?ÈÚÛË—mø;ØÜ ä‚Ë|X§‹‚s¹ëÌf1¥úìža?z€‹ßSNIà­L-Õ•ߺ#o‹ƒ× 8ËÞ¬`f–glÅ¥ºµ/ԃأ´çŸÝýêß2p^/ΗÓþôgÝ É ûøÁ5ˆ\WŽyŸ¿„Ê=\üõyæ%(y3 ·æÐ€µ)ÂòžßÝóŒÃµ½•y1ßöO"¡Ï˽_†Ïþ²•LDgÛeúööûôïýïË·Û¿/ÿ>þ}û|Ü~~ËWÁÏøÀß$y²tLy…Çz5µ§¾pRÕG.ï)Ph §ˆÔ»Ý I ­Ê£S»:ÀÖœˆ*Úvç´Úz"õw¥Šx±>TY¿€¶ÛБH$|7ÃBï¼&î‹ßYPH KZþ¯½[mOÙ¿µ§EïÕÖÛ×Ñ9!E1©Ù6è‡íú½M`pÜÈ_çØí÷¡€¾uQŽ©;ÛïS¿õ¿­Üaþ±òÛð·sLß{߉üÆfÈu…x¤ùáÔ2ê²XÄl_Ûë6¨ÊòéïÔáÀ€³I…«Atiè4²->¡¤Ûæ\’?ð±pÖÃË¿B;)ðͶ:=¸‰å: o‚ 7ˈK’ AŽl¾µcW5ü3·î#¯}{/9ÍÕi>ÎòÍõŽásâ ÙG¿Í®×¨àzг€Ù{®Ö}쥹¤xÉL>¥R[ï]ÖÛ‰·Ä¤6ã¡,±½ngÞ—±KŠ?‰bŸS·5?¦þÝû±r›ñÇÊoc?vΧ÷0Ûâ3£VˆBuŠ{Šö¦N–`¾’},€N„.²ëÊÔºN¸{D\´ö”M£ÜÖÁ—UìB+ýncpñö²ÂNf’Sƒ‰áJ?µBè(ÛkWœ–`Äíïƒüõ<ðÞXn@sÐÐÑ¿ù‘d__ÔÜ»ýQöÃó<žsÿ5~P¶DÀ9Ÿ¾ÿ:çÏnï¬t_ü‰=Ø‹AUóÒœ| '!b;óÒ=~MµÓM1×Ãxû•›VÕ ó2xÜ8;Ðzì—ÉÛÛï“ÿî}_ºÝö}é÷±[çÓÖû)>VXuL™Lljv¦U{Œ]{Ö‘ä©u ›ß"M)èûNæ"I°®µòS{ ¦ÆvVtJó™ü?œ PLàé®ߎ½ÒÛOí1þ4—™gŽÍWB¼#^›ÛÁ÷¡=~8çw+·¸Q©º˜Ÿ†ÌY?µÇ¿‡ŸäNýNÿ©=þ{ö’À˜•äLû)=¶©ËK¾5ç ¨iÈÿ OîÇö/~ÆvÛò-?Q¼_#§ÄÐNãßÓ–‡Šz‡ÍúŒ_áQ¦‘Î?[¥&Á×äˆm]{žjò,ÂЋåö"f7¤Jú_WÕ4 ÖClõ˜¶³ù{Úî·U;ÌßVýkü¶iŽÉ{ï¹Ëi:ðPº$£DÛ‹\«}’K=¤¾9ØE,ƒ*+…Ðo¢(±N#ÂÜ‹ÙÙ±+8ÐÛzûû° £ªÕa×s>ôî†Î+ÔO£@äòš´NÓ|5ÕÊ2±=k/‚2oÍmj™ÇºuojÜ!åÐnæð1Û"¶u˜¾†O¼ˆÓ¹õ…mÓG¼‰rq)…ûa"uJrëÒ~ùɳ‹öýì_¡ÂÌpÓ#õó²ŸÃù]ˆÁêeüÄÂg£2K¹ÌßÞ~Ÿþ½ÿcù6ûå߯lŸOÛ羽‡ ž,½ùG^vV3aå‘ I%,n7IÕ˶²í|Nÿ* Ä)l[|oeÚ O‰î¿„ž£>¥fq&sj4*‡J]D™r"nE€MC.øá[ö©É÷¨m–&ÅE¤±µofLî³/ðÚ»{Êu³TSº_d| á練ßc·ß¹‘ˆ‡Fä÷Üm¬[OI¥Bd±ßÚ?PìC‘ú­ÿ!ë'ØÍq3&ø .ÁÈËèíVöiz_fokÌþÖÿ±z›ýÇâ¿ÇîO{ÏcöÄÚȲ ½0¨IåT¶E[Œ¡ÕY%í¿ ¯Vh#xtâË‹$º¨¡»â0E ,Âb„O I­$¸ø E¼Òõ«dâžSM­}c°®¬£€¸:%‹^oÕäÚç9W_Œ¡[ûŠ›¤àq½u_ÐfA[¤äy3Ÿ!Õãm®àòkøè¿ÁþÞš¹Ï)BÀO]q…‚Ð _o^š#Ê'vð‚ã£÷)ë'Ì7ã) ¶Ï’sk^ÆNA‡½…ìü#ásNÝÖü˜úwïÇÊmÆ+¿ýØ9ŸvÞ‘•Ç_OóÄÝרãk’? u Ò"cE0®¼ì*¥ëÆB²]lØü÷@ÊÅþ$ßÐÕÕÒ]Hw%Òˆm%ÏpáÕÊ®ÓG \Cöôñ^à,έڠ¥lÐfÆ’oÍ‘ð±+u¦o½S?µ>úõ·í_üŠí0¥Gsæ5öô‡÷,¡ÖÇ/ü{ê¾øF.±&xçæ,HÜxöT/Íy8Œ¤ìvë}Èvh¹xî¶«:ÁõÍMþ{à_þ30¨zÎÛÙü=í_GçïeÛŒ?–ýëû{Û|ÞvOR~¢ZÙ#Û¶š™›3üÀE†ÍJ¢‡†èªˆ‹¦¶/áÙ€@Åñ$Z¤ñ°±*•IuA.CäB@±.^"Åг2ò°¿_~rêdï(·…çÚ6Rl·öÈQÞµå»õŒ äðæ‹ù¥Êü áfä×ðy¶7I[…¥ôž>@ ¨ìŸ×Јù€Äs¹µ§ -§¢ÏÑÿ̲–¤X/öOˆÁ‡$ºŒŸo{zæËüíí÷ùßú?Öo³_þmøÇîù¸û|“ËÔO俢0«Û7zûúB\B¯ëw;¸;¤¨ëäÂ÷í*a•@«ý9 ×¹4Á¨ å,$þ…D3ƒ0˜sgN±öcm:ÉfÄÒfzž­PÜü 77~‹åéoÍ)¸…cÎ[÷8€ €ÄbÞÍÏ2ßæÿ)7߆Ÿ)ž±ÁÅžŸb÷×ôÁÜš‹ß†zt{ŠqÇíÑn¤á)lœgÿÒ"††Ïü³qšÏÏhµZƒÇ9|~·õžRïÇìÍ·Éß{ßÖî0þXûmðÇÞù´÷žÝ)‡¼À»ñmÆÎg2ÝÕ‘¥E> ÇtdB¨gžˆ6ƒ˜kyc†\jÀV¥zgP–5ýìã“«Æ€Ny? Š\Öî‚–ÚLè¶U®=‘DGâçêJ«¢’B¹7(äåÖ;vk1CbÈ®|ôO¡R”\\Ë7ó³Ì/ÔF<¥¯áÛÝ›¡ ̹>üš> Iì¶³§< Da1q‚Ž{{³-#GÿYRžÃ>ói¿ %‘È)žãWÖ8£Gd[,žów´ßæÿè[¿Ãþ}ù·á»çÓîÛŸñ5Ïß'5ÕБ“¿4ן…L¾Zƒ” íw˜¶á2sx‘Ê@sÅ,” :D?Ó«ÈÄeùQŠNhõ¾$ο-軎‰‹'‘§ÍôoÑ~'Çä*fI$B†Ÿƒ{s·v.J‘íÒ{ÅM#¥]`7¾Èx›Ù…ñÙê´3ª-µOžýžÍP›¹…}«È»ª27ðT9Ûó w„ñÖ¿tÁ ~ŽuÞì—.˜…ðÂ߆Ï-Ý”¹ÏÞÞ|Ÿü½û}ñvóµÿÜ;Ÿöž?ã-U•ãp%¹€&KKø£dd!'UOüÞf±žW’¹ÁÛIäfÿ¡%©g°Q¯§¹„j¯mOÄ ]ÄX‹˜»mI#δà µ)hvj)l·æhX&à9+·÷^A2™øSûü62LÀöœ¬i½D>òæ·C±é²^²¿'wvÓR•Ÿ‡´yÇA€žriß‘ä–tmì£ÿ®pfÔEÖ‹ý=Bb£Eç2~*|‰%ós¾ÌßÞ~›þ½ûmñ6ë¥þÜ9ŸvÞÁ€gîèÜûJ·WÅláµK©°¯ y[OÈÚ«6 ÏûÔpÛs¢<| pBÉ“žf>¤£ÐÑî;jÞ6@@‹òÉÀáºöBnûu+!¶% ï·9ðÉ“€[{òÙ±;ßJ½ôŸô\ È¿Äz±>BsºÕþ=~û½¢ \U9û×1}IÏ];œa5^µÖºÄxkOÍ‘=V2'Ù­ÿ.û;pt³_Å›°…ˆ{òÿ0ßõÏéÛšÓ¿u,ßÛüsùßÃ?·Ï§í'„(¹`¾0”æßÝU{(’Km@s»Sà9MÒÀÕO ÝoÍ»Ži¹ þ{°…ÔŒÃQy ”÷Q&h¿ë²ùÓõùÝ>&󬡫t=xY²Ó«=Ò4ö¶$uD4E°Ó;Êñ݉?»d:¸îK÷v°$$%Oëùë[–ù¯}ôÒäÙ§“©½æŽ_ÕDnÅá¡h$5;¨zŠ’fÜZ“…ǨF=Gç¤ÒÑ'b÷”Óv’ðþ2«sä$GÁ À|™¸wósâß½Ÿ ÷¶þ\ø÷à/çþ;Êã›hôá€ñ"¥ö|TÁÜ¡˜+ñ°«J&ÂKî‹Äò·W8#ù¬r/`"sh_Ãü! zÆ^€bòèQ] bs<¾Õ#¤²Ì„3º!Ò*†–€ÇPëõÈ­=Rç¢bT~vÒ9º±ºÂên=¬/¥ý1¼ žØ‹Zì ù5y¶tæï…†©«ú#älOÕ%x¨ÎxëÊ|jØyÀf?>HDVåÏáÏ?û¸<Úmú¶öÇôoýË·Ù¬þ6þ}ó|Ú{Sxœ‹MÐT©\U@y1…'ÉN ÁÂï™ ðàUªªÉ"Ë‚…*Xh QrËfÀÉ@¬¸êw$/ ›n˜ÏÚîø¯²B—Ö;0„§=xE±«ˆ—ËÚ®ˆ¥‰±·oH%ŽùžýC«cÓÉt›ý.¢'#xÂn¿y •PÝXÁæ}þ š/ÂG>™ZP"…0Ýš£ôf‡jL\ù—î‹Ì‡rkæ›ùU(‘F {º ¿!)a%Zñ2}{û}ú÷þ÷åÛíß—ÿ±}>m¿ƒNÌ&WåJ„øïè^›ûÑU©Ä“oÆHVr®`r­&ó1Gx6' @ý‹JjFz2Ëxdðš,8Uˆ· V½œm3Û†”6Ï܈»{Ñq5á&¼‚¾6Éz’e‹õÖ¾*I³3â¥{(e€yçÙãÍú"ëíà!®ñkôPÚPµ0ªüî³'J¨#â/Æ­h‡ ds·ö:å½"ê>û‡Q nï Ìùi?[ÑV^ ¯ËðíwB–öZ—3LßÞ~Ÿþ½ÿ}ùvû÷ÕßÇìžO»ÏŸKD®É×Û\ŸÇZWÈvëÂßÁ+®\¾£Q;Ú£½.Bp?É!òè¿'‰éÍüè\€ÞÝÝåFí•m¦ü¼6௅‰5/w¹³ã.†RæQèäi»s/%ãÖÞ¾eÕì@a}éŸ×D£»V¯kØì‡#Ù\´‹£©ßãmŒ65×ùóÜø=}‰°Bb¼/fÄñGÄ¥;Ž[{òævÖP,l¿ÌLÉK¥~JuÑH‘S¨‡L£ŽRî±$‰ˆ¤ û¶f˜*ô PiØô2I~·þ¦¤~~ß]ª‹F‹Æ˜gûš+äYÍf@¢v mHjèyÏ€JEcScom´!oíÃâĶх%÷þaÙ¤¿dÐvûÑ¡·¿o‡AxÊÆû˜a:t,ã>}Q¤²fmZK5ñŠ !¢—ö6ß¶5€Ïté¾Êzt‡TbrXo[[¤¤ÀGo£oÄÊc®­~ÎÞÖþ˜ý­ÿcõÞæŸ«ÿþ¹{>í¾ãÖçL-PVe–Ãg“=ùc«š©@à© Žu´ÌaÕŽý¡4ƒP­‡‹8½´öHdºZô}ºU¦èý‘ÏUsÆ‘ë°^Jˆž·êVò ¡_¾n­(Ñ¥½Xkoo—XD¼`.ùì½Àœ6Xqéb¾õÖà_ˆ­<—æïÁƒ[È ,Lî>w¨lÚ‰cä|¸~[Eº¦K–ùl°<Œ!uæ~ëžwp (T²Ì§õy³Z‡ï£'Ynÿ8Èß¼ÌÞÖþ˜ý­ÿcõ6ûÕ߯lžO{ïxèÛ ¶º¸„¥J·Gb€GkWoM» ¸ÈU @Œ¡F‹tÙF>°ŠT`›r98 Ñ÷›v)ýÀ2%ÄÃt.{ö˜³l‹ç߆Œ?#ñ@ûë…¯¾ÜZ! hn=Œ‡[ï”Û¤Ž¥·/"˜Ú¬èzS§‰×¤=$|¿§ŽH£]˵ŠÜt•JÛ‹Þ»Yoíqf'*Å)Ô³÷"Ó)çìm7]?C)8¬_ÇÈù}@aÎM]Ž™;Ûoó~tÿ^·ï·ñ_ǺïƒßöÍ÷{ò¾¶}÷ÔƒÎÆå ¾Í)arÝ3µßíè¶þ“Tê‘$¥>FËGîÖz´ï&‹(ŽÏœª…– \¿ «”uLd²y1G Wèº ¦RwÝš»Î:D‡ \gw…¼F¾5§Ì‹²ˆÚâ­÷ ¢ž—”ïoÛ¿ÈÐ`;içåö¿ÇN¹¦ ˆâÏÏOÝ—H”E—òój!hΣl Îs4·oÍv´rë}Êö Þ¨¶ƒÕ`¥DÜñ8@Ñaÿšˆ$ÏçrÌÛÙü=í_GçïeÛŒ?–ýkû¶m¾?o;>Ž$k0bvvs÷ K'ëú½’P _‡„9üJ`=Uôƒu¥0Å+íÿ 1[:sãÄî…o§:‡|£tOþAK©by8Û¿í‚ý9>!ÿ£2ye À8Ž Ö—K{Â{°Qîzé¶K)ûrþ§ý¨!àÈ!5öwôêïñ0 ÕJûQÌü=P Bí! i¨½}Ì·ÖûPƳ÷®à9v㫆·ž2"?mágöÑ{¦à4Èì³··ßgëÿX½Íþcõ·ñ»çãîs(žÎz"¶J’P¿×TLJøÎk>yîÚÓ®d¯É²×^ºÿ)颸гäÒ^Yáü_/Â"åÞm* Ãc¶ ìO¡ ¾XH5*?'©®ÍtYïÁê9$½.ýùV«â#—æLߤ"lþ¼‡÷Ž´|,PV–‹õ8OèÃ?8Ü߃'Ý„ bs˜ò1yö;ŠBŠç‘…Öª#?ZsMF´b•x8{×5Y¨öñf½®I²Kì=ø©[R2ui^&ok¾MýÖù{á¾ß¶ëþù{Ó|Üs_Êz‚•‰@*:Äc'O QŽf;¬®³P†êÅ@ XY‚?…ªÖŒÖp%š ´Û#øSÀ®@ãWB²›Ë;çtÁpb¿Ø]p(B‚ƒžÐ#8D´ëZ‚>…?8ÛàÏ«=œÇô‚þ¹ô¯¸)D—5ëU±Ûd Ýö½{êr?’-ÀÔºÓjÿž? ¾n¬¸’:Q¼ºàyDîu¶ï$Lš(v¼õ/^]d\ЏûûUãl ®îÛø'^Ì )ªcþ¶öÇü¿û?×ïmÿ¹þïñŸûçÓþ»h€€ Jzý÷èÊe0 ¸ à–ïJ÷’ÂSÎe®pÇéY¥šd ¢¨OÐú'yEüßö£ð‘J°Å} EßÃïdKaœ³±]¦oo¿ÍþÞý¶v»õûÊï£ß6ÎÇ}w”#CɃ†§&ìlO±ºè—9Ú|0ìeÿ=OhˇCMq¤4É ¬WE-eèöh™e9â‘PÚ@wÔ9S: yAY»^q—µPð§Êü¢n¤V¥ŠC ]`¼@ÈüÖ<Âà‚ˆU)íÖ}€ÁuÂUt¸™oÌÈbzàý=|ÜÉ Hüž=Þ8 õØÒnP<'^ðò­y½¨¿ùÖ}‘ùÉ»r1Ÿ¼D/¸ïÇð‡Þ%CDè霽½ù>ù{÷ûâmæ‹¿ ÿØ<ŸöÞQñI€lï¥CY"÷ ÊÑ1/‘OšÚÿ$€…ª ¸ÿœ³+/KE³f §‰ôò»5?|{â{Ñ\è´TS¬i£ý8e¼¼k® 1àl£‡®0ÝU[D:Yî¹µ·¤Dâð­²õo¿ãÎGû{a\ìnÝ䞟ÀõïñWj+Š6î|d1~Ïr@v ÷=uHÔTn„rkO€QY›&Æ¿£ÿ!û+äVõf?F°²Y/ösüç@7I<ÛÇümíù÷®ßÛþsýßã?÷ϧýwª |Œ§rÃðÐyº¾6ªpªð&´\%6{s‚õ„`·ûD’®œàÔý„‡›˜cËþ>̾¸A\|ÓˆJ'¼am!&(ΑJ &÷§}–êvÈz¿ -"lÎRní+2ì•|rŒ·þy ˆÕ8w·_TÚÈþ•Gýà5|1iSÝç£Ôöš>†  ÷Jõo‚ƒ‡kÊ ;ÛaÔ•çy龕¾¿ÏháŒ(IÀå}ðö»=º©žiÒÛ'oo¿OþÖý¾v»ñûÚïƒ?öΧ½ç¡§=9ÛÊ‘AqÑq‹êžÕ’ õ›9.I…ÔßœaqsQ]¿#" 6`A¯5>¾U‰–Fpb@o{ùAݳ¹*Ó"  ìZ€uÏæäeXõs°?ßÑW·ævÐTH–…Ñ¿tß±/°€¯ÐÇÛ|TãÑÀ €ðÕþ=üÈk™s©çÐýïÙãÅ«\}ÅL)Ⱦ[û $ëYoýëÛ²³(*ïuØ0Þ¶/À¶cüö;Ûª§ÅÀñž¿½ý1ý[ÿÇò½í?—ÿ=þsû|Ø}Øl‘ˆ«5‡ñç6]Tp.Ø_%ÀupŸHJb µ«ÅŠÏDùCxj pl;ÄâÎ%l€¤ÜòOA£vÆž¿KçÏÿ8–cÜ9>ÓèjIÂ/Ø×¯7^ñoJHÑ]:‡L‘ç‰ÖïÿEy†E+úTý;ňQv*qÖ#áï¹Sû8¤ÕúÔgPó)s”°óÙ^bÇøÝÜÌÙ•ýh‘Ê8íÇ#ÇÇz?o&{…ìb­ûümí÷ÉߺßÖî0ÿ\û÷ðß[瘽÷ÎÛ¯{ MY§E»O%ßµÎ:ÚA  ‚:]v5B%eÝLJ7²ÝÊ QÓé62êNû3Q"ÎF¯Ä…˜äwÖÐcçoj®åc5R”m>ë„(tAJ ‘L§S¾¸~þiýÞ!¡L§ÄÇ­s.—PwÆGÇéÇö/>flç|-¢íï‘Gè‰:²XŽñ|MœšÇDD[ÔÇËOiÐbg<í¸¤4E^ß.ÝÛïXϤçÝn=’¯v™ˆ2ô6z•i~ ü õœ»½ù>õ{÷ï•;Í?V~þ{ãœÓ÷Úw~ÕG¸•¶8ì'i¯AqÞ?Â]¯gÏ2qî—ÐýKãY¡~AIÂó 7Ëž"yei(ØBx¬úïðR(O–ˆ,O@× XUÂÚMw“²Ûü ,*Õäyûûé~e‰~µç‚2x,òÇ­ y)Z¿Ó.ö“çA¼Ý˜ÿ:ÆOÉÞ¦H­.‰÷üGqØœú0ÁwõÄÓ­=2î8…ÙÎþ q£’ÇÈû©@ ƒ¿®:¶cü8; Ðõ¸LßÞ|Ÿþ­ûcù6óå߆lŸÛïñE«}8àÜÞj€³ÿúrFy&rˆdŠkm€\ëóGÉʺ™6)ÉOd+~Ä&„¯Bº¬V×Q«(ާÇ3AÐÈ«Ì˘°Ñ¼º!-›*H6¦Îf»““Ì¥]ÚGŠ‹DAb¾ôõª% ×Cº˜©–ý}‚&N(· Ÿð5)nü㼜©ßÓÑÎ4wTõÈ?a^äíoí•;B%®Ätéßœìó>òÅ~9›±eNé2~ÅyíøŒ°]æokÌÿÖÿ¹~oûåÿÜ=ŸvŸ›ëÅ(Ij€åžNÓ\€bO Õƒ³ Úmº”#V„¬“ˆ$é¿GR’ð¤Õõ˜#(VVgÆÄ™•¸ËzÌ5Õ­ŠŠ“\^ ‚\ío@fþ\>aªšî³}VIÉþC÷ø»(h3é½1F¿ØÏcµÂé6ûº@ßãÏ€P½@e½…MqnŠÒ£¦û/á¢í&+lÏ·æHDÙëGÂ[÷Cæ­åf>ë=Rž Ķ Ÿ,‡=͂Ы—é{·?§ÿÝÿ¹|oûÏåÿÜ>vßC˜ƒm•¢jW€ƒ¤ÀÞû xOí¢í}j¶Ÿ5SÙ:œcMGO$vw¾+â[6C?|J锃µÍEçâÁƒ #¤&ÓX|[^iý!L+b»i…,¿•r|(¶ö*¹#ìôÃE÷êžäq¢6ׯÿ%ZY*º9MŸækð(®•Éåaªû{î¾´¸MEžáö§çåh°/+«^lÏÞÁ¦a»s2ï¶‹ÊÆžwaxî÷À¿–r/¡PŠ0Ò1ogó÷¼¿×m3þX÷¯cìï}óýyßùÁ žKre¡y”¬ÛµiDwìòüC±TÙñ¯v4GíÉìà5Ñ¢ŒHÇöÔ¬ØâB^«óPBc·®ú#_ËwM.%:BËž L}ùA·Á>²{!À\—õ©¹ÙÚC¹Ò(‹Äcëßv‡9uæÍžnöGÙo‹øÔ mã·£‡§mîNÀ~ÌuÀümôç3o YÚK{ q±BU˜ýÛÍP•öÆß¼Ø?A±Õ¾Ìx?7‡жsWêè=}{ó}ú÷î÷åÛÍß—þ¾}>n?‡’‡"zϋөڪS$‰%Þ ?jnž1QõIæÞ¼"üßJaž‚y'Ç”€ðr9q¶ŰÅÊÀ‚ùDI”ªé‚r˜kIfS¤ÔMP‡8wA1ƒ‚ù®Ò÷k‚JdÈgø»µ¯(D¢ÜAo×½é¤S@œ¢  »ýàùDe Hîû¯cü¨â$ˆu¥‹þ×1ö»¨){ vI/’w<ÚGìèä™ný‡D;†ƒêb"މï=G?ÆŸäZЧ)^¦ok~Nÿ»ûsùÞæŸËÿþ¹}>m¿ƒ'¢{¶Eý*ªí‹ÐzZ¬ÌdÛ춈ÃcªZÉ)ùaÀ;ñr†°b…IÌi!=pC ~¨f•œ6ˆ•ÚîQÅÜ3WÝå¢í¸G³o…¬‘§FA“«¢›ÉI½w¼4ò\Èô†Þo½g/²×€WìÖS¡4ÁÒ®š}ôdë¼õ•1Øf/ª:-Ø…Y=D¸? úÑ#ñhß•kd{´vëÈ~ëëºÙOézŒsŽÜëmüªÇDg¦KÌû˜¾­ý1ý[ÿÇêmö«¿ÿØ=Ÿvß#W7§’!:¬kحד_'zàņoÎ3…Ð6UÓ}´%™ÐJ §…fïÁ¹b½” H¾ þ.TY…græT¹¸¥ç@2ÞQivÑÛ|{Á´OÝž€Ám¸vHÙV sÑnÍÄö5®H÷ѽ –JÈ1ê¢=|[¯Âs›®‰¾Ý÷_Çè‰Ù„˜ÖÛ¿gO…çæ'ÖâDL’t+¤pl‹Ô[{” 'Y©ï£)v’l-åiÿ€gqEnãëUˆ¹Æžoó·µ?¦ëÿX¾·ýÇ꿇nžO›Ï_Ih„’%-N·MÕHèÄ “¢ <3A%¿#䋸QüÑJ‰•2“¸®jòSœò†Í»±¿ _rìUV Î=BkðÌÅöáWucÑîxX‰g-| ¤ÅUg÷€]ÎKQðh7élʇÞú¯g0×ÍÆ~ÛæŸý}Óù=~Ø®QfôÚûkþ i€Pç’-¶¢GÁy¼´‡ø•¸tK)zëÊ~*š cžö£mƒ~JJËUxŸ× AMbKéz›¿­ý1ÿïþÏõ{Û®ÿ{üçþù´ÿ.¢´ ¸™á¸’+Bm;§Waˆ}Y#§.#¿+ŠŽ1ü¶ªÂìf¾o6!Aù*aF…Ìaªëž—pÊ .ŽœýÒ€ÍÙQ‘ œÕžh;1³ê*l­‰k½µÎPDÎéùá½à Ô˜q>ÜìOØOíeõüô>~{wÃ:Ãáá!Õmþùwž¹ÓÑ6û°½™'‰£}D[Ú5­\úGüuJ–ÉÃÓþ&Ìq÷¤öeü8CöGé’=?æoo¿ÏÿÞÿ¾~»ýûúïãß÷ÏÇý÷‹&ÂT<<+ øÃÛݹ¨Mf@Ô½éd"ËãÈ?Éd­¨lCúC.jw‹}¿<¼D›í”h®˜y&J×{¬^ ïü}éÑèÀW‚›ðIÅàÑ“zÑW{j= Y¬½¥Kÿ8ú’Fs§ÒÅ|› Ì·±¶zÑß÷ß#ñ?ûåQùø=},€|¯ò›Î<.í8€·˜Ê¸ôÏ9WÌí°_ ú¸Œë¸Œ6•¡Z!ÝŽùÛÛïó¿õ¬ßfÿ±üï៻çÓî;NˆéâøÍ¶˜eÌŒnwG_O*«îlS Uš•µÖöA$xÂºãØ‰JØ‹r)[9˜ÈÈc¡ÜmÈŵjí»·o[µ½Kh£Çpà…d¤“Ãw3,i¶_E¿ÚÛ“Õ¶] ö¿ÇÑ;àâÀ•‚ ÕÅvê3SؽA–ßcO° ‰£=L®¿ç.©L Dyä`ð@+8Ÿ~kîAÊ?ê¸tß…´3fæ‹ù¶Í(ÉY%¡çàíwÈ’´T/“··ß'ëÿ\¼·ýçÒ¿ÇnO[ï¸ô̓#X`]”½€]ÁÅTûµOùHdŽ °”‡£üŠÖYß°:•é¿‹d?„ü¨ú"åÇ%çY@F!ÆôS, Au'Wü¥í7XYò›Te%Ý8Òu.èvkoÏÑÕRò¥w}°¶3Û¯$òí_E²?ÏD¶çÂ| u!ªÓóý=w_\Øtäî€9ÿJ¢½hÒ·öÍv–®7{ÅÝúï2ŸÀꢋÞì'ŒŒ¹.ý6|n`˜¿ÂT¥î1}[ûcú·þ÷ÕÛÌß—~ý{眳÷Úy^B}’VdWèb„š?®zð Ý9Ïa•ú}ÝœÙËÇVTLžqý#bÃQV¤˜ÊÔÉ¿xh@`ñc¸Žà®2Ýð¤¨íÃbf!ËðCv G`ÞÚ£1@ ”ê—î£YЮíf}õ zF]y„ߣOœ¤Zü˜ý{ÿÇòmö«ÿÿ¹{>í¾'ÓD~.©é¢Ø°ôvÒUieš2Œ=З­"œ.‰ç9ž$xû²XÏõ»4ÐNôÙgâ¼Ùä@G 2äŽÊ²e>ñâè?$¾ñžÚÃ4CÒ$ˆ`v…çôý«jkÎ~ãžà£¾uOtî­²rÜ»ùEæ› ýGtû5|Èí .˜ž 9¦`,÷d íaš1þÚ¼µy ·"L{ö?@^òq•/æ#8 ÉL|>p÷†Œ2ïñsööæûäo½ïk·¿¯ý>ø}ï|Ü{þX¢è)Ù̓¾#p„]§ºR7;¼•pEƒ‘Öïv8 õ‚:œÿ=&èâÍg{nÏa÷Ý€¿®/U¿dó呂 ÁJ¦„Upóa ¼iµf¬£Ëéb LLHsÞÚSÐìW‚·þíÂs “e»ÙŸd?7äxp¯ñƒB³ÝþÑÏkí÷üEÑÐ"Èìç'׊0”@”[ûþ‡O¯£*ZnýÃÛ™ ª×Oûáí´w’ ºÞÎ$‚è”oó·µ?æëÿX¿Íþcý·ñûçÓþóûè•\¥tOt$œ"[B;T5”æÆðs¾µd ŸÔ2âªôì@„ÈžáѼl¤ÞHS&}À…ʃÞ~lцŠS3òý“ôœ#ü8_’«³óÏs#ÔØQýøØ›s:Á¦Wš|ïÝ–Š+ˆÛ¯Ö'Y_U¯ñäf~„1Å?mä§Äà5y¶=›tGÊBÙÛ}v[kØ&TG¯öÛÜ¡×ݾÊá! °g™Í—=ÏÒ­=ÈÀ¼I0γÿ‚ý £äLûa5£8fè :ƼViÏ!à9{û÷ìソ–îûmü×±ðûØßûæû=w_Û¾s^D¾¹Ak6\®ñR’O1 Fé]'ßxiCÞJ\BvÖêEñÕ>¤]šaÁúA-ðV[Û)±HÄK,Zi]o•¬‚+½CwÊyÀGû€²ôO¥àÓ«´Kù{ëÃ{7‡«vô D·Ýz/ÒµÉM 3ñ6^IÄÆô溮ÇßCOR½á‡Î>sI¢¹àu†cÿ$êmž¨­l»µ·þ‚BÓoÝYoob‘MÖƒ=lÐÅ6Ñÿ£ÒõÆ –6Ê1y{û}ò÷þ÷µÛíß×~ÿ¾u>î¼Üý¼L‰5>:Á­[òÓq¢Àao-:v ô¿}&ŽÞGIZ@àà%ˆºJ~¾g©¼JEsÏUsÍÏÉÏy{Ò‘ö¤­íª¼Òí‹Ó=)8¶(ÑÔ7nž³ëèµ£½9ñp±ÔoýƒÈ·ÛÚ®ßXoö«Þ½!ÖÔþ=~Þóö|µÕá¡ìú=}T÷Ã)F>ýÁy¶‰Æ «qiOyǬ2gÿ…²òÔñÔ‹ýԡ‘ú‡çø“#‰(Åt™¿½ý>ÿ{ÿûúíöëÿÿ¹>l?%%8ËÝ«"ß§F =óø/@?Zw'ïGe5xD¥¡{§æeúï™× }mé§Ð˜Êýiw(º&sP–¨ZƒÞá®/šÉA™Vsñ‚|¬,Á½=·Ä3±¬“xëßΘ:‰QÇ›ýYöÛUô¼D¶ñ£ŠÌ›Œóhy`¯ùKPJÁÑëãÂéGÔ°Ç[{H‰Øô¡Zˆ£Tº)¤àÀ¿Ù_¿¡-¡ Â9~ðzöîA蘽£õ6ûGïÛêÖ«¿þØ=Ÿvß…Ä gmòÇ ™m±;§EâD9Lls9Ó áRˤ³ Õöм{G¢ gŸÛCª1ÂNáêó'ÓRŸ7g½ÀHúB”Ñ&ð¼Ú› hõ*VNð‰ Zß[óFʾ¢¼ª¥¶î+”—•Òoæ™ÏÍýwµÔ¯áÛïˆgžXêóïékÚI¶x¡¥‡' /pŒqk?ìñdÞ%Øßqë_´ª¨::Ní°_¸=½ÛøE« erTÉÂ>}[ócö·îÕÛÌ?Vÿ=üs÷|Ú}Œ |ü£*ºr;¶m&~å26vi@z(ÑBèÎ ä-A(xliáa þ+ñŠˆÚ#bƒj<®8=ˆ”41{‡éO%»K Êv<š `lˆ ÏÂÉÇí"*æÓ™Û5z—ö0ÅÏ4E?P.ýðHÌ´ÊÅþBml8íù±ù=zûÖMܦùˆØüš<)nÚÓJ‘5§?›É>…r?›c¯5µ>Ë­{®‘ŽV/æ£QAY©6ß@Ü *󜾭ý9ýïþÏå{Û.ÿ{ü¯Íóýš¼¯mç±5ÿÃ÷úN¤Ÿ*Ð}øP¿ÍA¤´ŽÿöaHñßìùiÿ³þ©?ÿûûÿý?¾ÿ×ïÿ›£ø+~ÿÏÿƒ—–’E%r›<•£ …½rÔþx#˜lÃÅ‘QdùëùÿÍ¢åkÿl€E¹J@EÙÓ?µ.op#Ñß¿¢||E[£ßv~úŠø¿úºØ™ÿéþüx&©ïr|F¹I§~ý³{£ß0ñ(5gu (cÖ×èÿFƒÍùäf[ßÊêûø 6ƒ¯>~Y„Hx257˜ã as­½ þçÕf0IÏÕ³ÝVÞ÷ùemß}üÄ0˜wÏêÔv2¬1¹€Ýà~dm¿/ïûüÄ6ƒo>}k)*=Jͱ:Í¢r\—öœþéÙµŒT+U\+mõ}~k›Á·F¯.J!¤µæêÊOCš(Í þ§‡Øn0êU¾´DiÔwý×>ºk£í£X±ö0aÆ„bmU{üOO³Ýà š—;»Pãè}ÿ«Ý­Ñ¿öÑÅ¿O‰2a(Ð^ÿ[µ_'iý×¾µßÿöó'ÅÅxvl”¥5„dZyLKßÿþëó)ûå@ýëëjâ_÷Qÿùý×¾ðüä÷}ÿÇŸkÇ ˜žöÍÚ ª* 2¬–Œçúoþ«_²Ùø_ÉõgÓá2üc™³eýçeëþGž!|þÛ¸øÿé_ù7ÿFÿßÿ^óº$¶¯Wo@І<ªmDü•¼’we¶F%1²Ð F²âl¨ý)R Ò”þKÏê4(ç›®ÌVU£?Ãôö¢Üƒ,WWfã8ê®NïíÍen½‰§¤Fm«$nÍ©ýTGg±FïÝ—©Ø<-"ØÍ·ß1ßž±Iè±}øD· ä¥cNoÿž>ûÝ.-»×C ¥Š‰Ì¯õÖL |èä×oýwÙoÿ×R»Ù?HîÉÇøms%²p+ÜæokLÿ»ÿsùÞöŸËÿÿ¹}>m?6= "’“ð~,„ÙSQ$s’4DŽë©°„Œ½ðɪ]æßÛTO›:ëB¯Ú›Ò+^íün—`@#ø5_êtÉõD½Š2>/fŠÑV/;NEˆªDšiö…ï bÒ™Cè×£=µMLF+ÊNìýSŒU`ÜïUø¯Ý~ÐûhZvhaÔþ=|ŠÁ"û+qŒýuLŸyE¼†DDMíA‡8 ¾Ç[{´#"\iÄ[ÿSöƒ—­éfÿü†'QoãGˆ ¹ o³·µ>fÿÝû¹zoëÏÕþØ<ŸöÞ»V\?‹V%:¥ÙV‡ÉnTe«É p”Ø×¦2•XŽuGX›ÎJä(ªÔ¡®@=û³C\bø—|Š`e]":ƒÈµ™N’Ÿ9 mbÃð,›¢È«¹¤lÿC%fžƒ¦Þš'P?¨;êÞ;0E³•v3>Êx›(B‰ƒ§¨.*xÉÕ~›¼ð§HfbsIêÉ!ºhýÖ¾ê"íÕÇ­ÿŠùS8˜q³¿é,¹÷Ûð›ÎQŽ2pÜÇìmÍÉߺ?o3ÿXûmøÇÞù´÷tŒ*܈ÊR bó!nÒŒ*Jr3P桺֤߻ùɈÚ(³nXÄ´]ɨC$Û\‰ÓÃ¥ö%f/0£Ÿ@:XU_ jê›6i«„ß¾»?ŽO0Šduû(./÷@H™£=äE)š·æ`”£ÿb3HÌJ¢ögÙOÕŠZo£j¦»ˆê1{à)ì"ÅmLj¯{‘*Š’ç­}¨Z`(eŽÞ!­Ôˆ×8o¶#(€†V$å|{E=½ÚnÒ¯Ýçno¿ÏýÞÿ¾v»õÇÚo£?öΧ½ç»“LXàCJ<ÁÚÛA}ùîlìȶc½7‡iE lW]´ 6ug̪#±Ýjp\$ŠN¦¸˜&Œ’¥[Œ\ -/&®¨âle¬æèPAí J¸§`oýzii3˜té"*pO¨ƒÄ‹õ¢<…ö—õkðxl69º”å1w-A² — Ê„­Eì*g{Òh’š*¹ÝºŸ2¿I5÷b>|”lå!êcø4Z!Õr™½½ý1ûïþÏÅ{Û.þ{üçæù´÷6¬à¡ö)$X‘/‡$ à!°’d´ÃÑ¿F. ±…©±Š³Þ® ø—ôÏ'ôõÙ+IÅÜc=¨äXÖÎë­8uƒ°/¤ÁsçPrQpŠ«–S¶wIêô•ß-üT’K{íõÝ¢EÕTLpôÏk€Ðú\þÐn~Äü,¢·>NY_‹?a÷Ù‹ö¿ª$ÞÝT­EƒÔ_ª›gsj-$k’Z¾u?e>ðœõ¿Í:à OD%_†Ù°Ý ‘ÚÛx™¾½ý1ý[ÿÇòmöï«¿ ÿØ<öÞîŒæDn•©á¯@Ui·R׳>3w¨Á&©ÑAÓ[$ª2Qó„^*ž6ôDKﺈ‹šÞi‰í'[‰j]~û†üúcDí2þxýÃ\t¢qì)Y6)ÆKû,ܦªýß»GߎŠéJ¥ÉÅúlž¤òÆ(üþ>zŠ ì2ªÂœ©ý{ö²*0Ôç>øÌ+œpzZ¤Æ[ó‚¯Ñ:Mú­ûªÐzî:næÛ^#E>®™wŒ]n{ïÏo—ÙÛÚ³¿õ¬Þfÿ¹øïñŸ›çÓæóG½rÝöЄèەݨ!B+%éQ¯lwÂ}î^Šü®Ší½˜Lyý¤æ O»ýP>ô ¿az|¿¨MzpÅÛ¿ç˜Ñ€©7;å„jPsö5r¼µ—º¹`èìÞú‡oÁ#‘~³Ý¥iMÌÃŒ·ñ“G¢ÞHEçômÍéw.ßÛüsùßÃ?·Ï§í·;¤örMMµjš%ŠäÞÄüÊ»7#:ù„ý.°—XˆÑÿ˜¿»íÛŽ*ÚTÓ¾$³4úY/<ç„d¾¦%žEö¹ŒjU»MÒX%’ÍÜO½W{ó¶æ{´fm™#WßU{{ô€&…{^È·÷ŸUÁÒ O¶~±úJ¿a;è+.ð{üœ’‡¨k¯lóýDRG>›ç ›²9móÖ>£Ô‹>uîóÖ–ýÔhÖ‹ùö7>ûó2|žÞUüøqŽËôíí÷éw¬Þfý±úÛèÝóq÷RâTÂM•j+*`þ%§Šä¹-Q ­øí©ûèËȾS8èy7+>¸ÉyÁø=£È…Š¢ ë¢bÐ*y,v¾PÚ®`M#(üùü DyBåžV,jòÞ¬µ_š“å!ƒ‘»3½»Am—”¨ ž_ÿ6üˉP~‚ƒ¿Æ ?Œ€ÈX•{ü{ÞÔÍ®ØéŸ(|¼<€¹…oíI—B ¼ö[ÿÇBç\cá°_”4vÝv{ÛÝF/JšDÍAo·Ù{·?&ÿÝý¾r¿ßVýëü{Ó|ÞsÇãÞüÖN.arÑЗH+Ìti ‰ãÛLAv»z2cƵÕY@h£Á×mþKÑÑCÈ’c+BéŠÍ¬xrmàæ·µŠÀñx"!¶.1*Šk÷ ÄD0C>‘Š$†y3É“‰0.£OUê­=¹¹ЈéÖ?¹9ˆ£ãô(òf¡RÖ>A~þ:ÆOкÁÙe§«·ÏŸýŽ‚;T”·7ðYi9ÞšÛE'—¤›êè½Êzª¾Wþd³¾JhÓN²r|ƒç³KieÞ&ïÝ|Ÿû½÷cí^ÆŸKÿú¹s>í¼ý¥†×ñȵ—…j1?/ðõKá_„^$ ‹L¢=¡ÿÈ_QŒaŽUBú=È«æXAŒ§_/LÌSâŸ!Ä1^Ue $ä•`<[Ú;œŠÒL^Û¾m×ÄÉîTý$ÿä?ÂdXùÚ­½ª<«¥}½•lBWÁ³y³]SÍÒ\¡ù>ö®geôÞê1ugû}ê÷þß+wš¿¯ü6ümãÓ÷Þwz8uóœ“$ ˆýÚƒ &Z>!>íL»:Ðïß~ÇV{¬©@‚2ÎŽ.ÌÈC?ó×ñUüFr¶¥†«o¿‡?þllimç¢$oªM¸7à ÷ F±B9ER@HÔ¦¨)ÝšS Í4Ç2¼»·OõO³ƒŒª;Soóùó©;[ë÷}™UÅ>6øè'Ð{öø½¨s{Zè]ÓyÜÇziÚ$yJzꥸ¬ìïÛ»D\T‡ý®–)Txm¿k…A„O¼öœ¿½ý>ýïþÏå{Û.ÿ{üçîù´ùT)‰vÒbæ#Öh3s“'%ù‚¤Aƒzƒq€Óö–ÊÇÙ½‚$O hÏ©}°C¨ DY`푳ÁÛ ¹À¨á5Q)Õcæ¹Û¨"êW¬°­öÁ*$Bº~‡#ŸLˆÀ:G{!æIgÿæ^AD †6»¢ÊÛþÌ¢m‰C¡ªð÷øù^_›~_àmþ€O[:{×»à•ýo;‰lI&LÙ—æöïÑ'šƒŠ—K÷CæKS>ß̇z2¬&šÑsø¨WšHqf¼MßÖþ˜þWÿ—å{ÙYþ×ø/ÛçÓöÛ}Ñ„{C¥aP®iØNˆ ×{ÁžÐ)Œ(qè½èYG·Ã†ìþÂá!WHS*²¿JA- T =åHˆÁöܬÈ&|;j)óhŽ. ŒóBB0åø4SÚB18ì>÷ËF¾4ç»oHˆÍÿ诳ØhõADý˜þU\¥í˜,IÀ}àÒ”€¤2¯yS,‡X ¡s±¡*¸jÓ¯€ùŽöø…°’m¼u¯ävA ¸÷‹ñ“3.й¾_çÐí­wa¦2옸³ù1ñ[ïïu;­?Ö}ý{Û³÷ÞuGŽÉ|ä•a ^ЇœVB=T·}&Ý­Ýýý ÎÒ‰iuÀ^a×$ ^¤aÑ+ÉAn º¯§ê¹7hÃWóŒ2ÿúMG@±÷8Œ½©á+ŽvBJÚÙÒo͸ZÐBÝß¼{ïךëE±Ü¬²žzö ö6vê} áF¶GíßsUv7†9<Åbÿa6°È=K{àXðZ‹úüÒ?‘øy-΋ýö&Ú€ ^Æeüü4 `èh—ùÛÛoÓ¿w¿-Þný±öÛè·óißÉ%å`ÿ;5€}.QÉD¹<ûiGL¡{ùq׿¬pJxè»Bv ¨)ÊëJ¾†RÒ3ž\2/ÅÐÚVêqœ”â¹%ûÄ!dn?'@&@(~G~¶Om†ÞSì·æ‰/pê¿”[ïÅñJÀ£ç‹ñã!?ê+¹ò¹~Ôöùwæî÷ÄÑY&ðÃOæÓºUUº¶/‚ìÊýÖ}‘õÚ„~³Þõ±»Ô©.£g1"oì¦ÌÄ1{{ûmò÷î·¥Û­ßW~ý¾o>íºg_Úµ‰örlìæjI€¡ê“•‡©Û9ƒr“ƒÒ¹ Ú“9Ëmì±BáHBLtež¤8¬5“ˆŠÌ³0FžíIœE¢Û­<9Sa9Êhkgd ÁGq"‡j¾4ÇW­pº;xaïÜÞŠö‰"D×¾û1]Áth®<#´ œô}Ä/ôM³ÍZøƒàk†ìG!@VR³g¶³5é°BHç}ï]k˘áæ÷Ú,ö‹á‚›@LAïaë!¯8Ä9wLÚÙü=égïï5;­¯ù×1ö÷–9çîµã|O9ý˜ï*ÈR¦OÚWô€WÝà´[ ŽP`¦R\M{:#s góJ4é#‹AYÞÑ9¨èŽû€†]" ióÚÔúÂì“Õ–qI‚ †Ï‰…W Š/î¼YðóI¼ZÇ"ÄtëÝþgMî‚¿ŸÖ£ìT!Ÿ;ð9úÀcf»zúsdüš=¾¡ÄßÄš„®‚‚­ÞÚ7Bª@7z¯·þöw4ŠK»Ùo Z@kf•œã7?¶êÅþ{LßÖü˜ü­ûcñ6óÅ߆lžO›OÛG£Hz¾o°dŸœËSI#; ÐŽ¤WM"> t ËÕjÐÑGòß Â`©çr5PݲõUþ‘”,0CðœÐ299ÅôUÎ"¬æÊ ®Sœq û„ª·ö<:Ö&)îý#¦S(É^Á°ÛÃA„€:zÐp˜ƒ¨ûŒOUÁïù#W“ÑÕ ÕodÀ=¾â)ßš“?´[ŒO$Þº/2¿yýýÅ|ÊåíY2N£'Ek%»¸ª¿Þ³·5ß'ï}_¼Ýú}ñ߃?÷Χ½çH‘ò‡Ô²íX‰D`þ ¦È/ )’ÿØ—Ó ''÷n0Ø ©£é*OAå"ÿ6ï(Vðˆ4õ ä«œÝnÔfWÓX䤰™Ã;;.ºëöRÇñÔû°-Øs5FñGöScb+9=drŒ?L¸¨ÀɹŒø>ö{#uHÊ‘$x¢IJnkîdèÖ€JНKç]ÆÛ㺩´ém¼ã0pM‡ËÊcïÈÀ"¾’ÉzÏÝÑü˜ú­÷÷Òí¶ ÿø¶o¾ßóöµí»=”Dµˆ}°@ 8bÐr§ÆKr+ïŽnw§]?ã]“Ïs}ƒ(L;¼ÅKK"õ„ex ‚휟þVËHÕgO:ØÏ*óÁ³ê\à"Ím¥€ÂacVòG¾=s›ŽíÒšEœý^[ßH(ú^ýúúmº>g0çT9¥çôù=p;»D™ì5o_^S‹RëOÞ`lB³ÝÚ$£aç©ßºXoþùª›õöT$’kWbn·ÑO8$Žl©·ÉÛÚïs¿u¿/Üfý±îÛèßÛæœ½×®s(TȨÛ2tPª„ƒEÿpØzÙ…£ßíSÔŽW8VƒÄë •Â5ןÏ{å±ÓßÇMŽKS{2Äö½ŠÌ²ÙÊ'˜ì¬J?ß¿í: ¥ÚÀ! ¶0JºµÏ’i1g§ü}>üîÊQ¸l¿Ï›ý:l€i-À>~°7¶Ô0š)Pðž½øGlåðËx”‚óöÏ?>ZÃyˆÌDàè<%© _ýa<Öüs[ru¿žñña¤Ëäíí÷Éßûßo·_ü}øûæù´÷ö8§-Ô¯%‹Bœ_@`„°ƒ2g OdÿÆ#¶+ì´àµ}ì#R8Ú+bUô°ÐävÀ§z-H“©¨;'d£š%ÉÇ€/½ÙsIéuUtnŠÁ³Áåí"€D¼µGm ¡<ŽÝKÿ‘©¬-r7õ‹ýÒå¢iÃcÎÛø¹«º9I”À?hÎ_Ó‡¾I"•–fã Ðª"conóA‘ÈÄ„|é>E™_@Á•‹ù¬PLi¬^†ÏN2Æî˜¸Ô8ßÓ··ß§ëÿX¾Íþsùßã?·Ï‡Ýç/¤Ä½CÎ)„‡6/| 0óý&>é…€Ý1s<±ØŒ¼Ä ΀j Õmõ‰Å6¾!:ƒ~ÕÔ «›)øÎ¼'²‚ŒbS—ô‹×<¸”Œ{ü™ÙóóûOk™bWׄ*Ú‘k{ß.ªùX³Ï§$úoÛe Ï|{¶ôDÁ=KÛnŠïý'Êý3uR‘pñCW—a†ªÄ§´[{êÅáê…'íÖ?Ü©)HífåÊ }[½Œ¿P˜HaŠ½á˜¾½ý6û{÷¯¥;¬?V~ý{ã“÷ÞwLYÚ"鄿ØNÂÕÓC©ÂœÊÃ/;0).Lj«H1IX«àl;H°³‘žÞï†ÊTÄ%ìÞêõª"ìÕ`užR±èR¹·n¿“»Hâe5lj¨4qýøwc •gîÀÉ.ãÙó|¹?4^ÆË•Âxó[‡ù¶Áƒlkb›nõü3yj¯<3òèŽ D°Øžpö6šõÖÞþ(™ë­ÿÆ ¯£(Îi?õOv9˜ã)ê1~‰³ÐÅDxOß»ù9÷ïî·µ;Ì?×þ=ümïÓ÷Þ{ûeÜ–Xg©fškHÂ+<o{6°ïCÁæþ#$ç7íÀ®Â Ô”ìTq§¹-ž,!ãjð{œRSvUY/Á´OhNYÅ场ñëœ!/&Š»¤•;4TníUñYÅR:oýgÄ/…¿ïóf’ý‘ ˆÃ·ñ›c˜©îí®ê{̪º(?Ng6àüx .„³ùä™Á3|´xé^%˜Ð8Åa> ;®Ò‘¤i| ß~œáñÂsööæûìïÝ«·™¬þ6üc÷|Ú}D"ñ<ô&› Þ( |W:SSR]ž]7ƒH”ë`_£b­îÙT´´²d‹ø=Q„عäÙØ\ñÇJt!yTŽzGúhy6ÔBŸŒãˆb•¯æž9^+Qm`¯'‚—<`;uÛÝéžöŒ}THs}¯lý›?‹Mä€yãbàØ³'ØÑºÞ¿Çº Ÿs:µ¥òkþ‚ý[ÿçò½í?—ÿ=þsû|Ú~ûÅŸ@•ÈêÛúÇ™™?½NS=3¥áìêd®3èmqEê}.ó½jvÖı¬¯bÇÌçºääcdºêSÒ Ýæb¬½ŠŒ§=%syj’‰ôÁcá{5áŽV×â;ZBæ#´âud[ïB™d4ÅVy³œH{L¸‹¸ÞþgV}OŠõ­üž=jlyPMñÔ$ÛV'¼ÖV}·7ƒíNU¸{mÕwÿ¤í0M´Ë/ö ±5c^[õ=þ ž F)'Wß§oo¾OþÖý±x›ùç⿇nžO›Ï_ùc÷tTNBu~-:yþ¡·šÝ1OŠŸœżÛø®ÒÍcœ/D‰«½¹è ¸Æó%ÃkVìrâÑN® EY#ƬZ …šÝ<Ä%V"-"Õ ¿¶W ¸èp;¸HùÞ¾BëFgˆæï迺Uöç‹ùpØØßBºòˆïáWŠÂ¦íåR¿Ökö 8B/¥·'R_q‚^ä[sñqÉOŒùÖ}“ù¤ÆEݘO¨¸!±”h<†o/¤ÙTüœ¾wûsúßýŸË÷¶ÿXý÷ðÏÍóaï=äbInG¿Ïë$øº\ ¶ØN’3ú ²~:xI F¥þ{´­`Ï•j£‚ö¥¡R‘Z¢F5)^‘Ð"¥5°Ö¯ÚèÌYUÐjÚÈ“ƒÃÉÇQ'ÞìõÖ^é¶Åš¿ ÷þÑ(oD<[M7û‹ì¯öI'€ð¿r…P6¤òD7^ó—EfÛ5Î+@"L©[{tdýDèò.ýìÇ9s–ÔÃ~Ûvõ’uIë>~^ؔ۟ ý2{û}þ÷þ÷õÛíß×ÿ±>í¿K•g&XÕ`ˆ‡A݃^øªB»W†3ŵ?âöä‰ê,D®¨Í ©¾YÜ O Ä"£S,APæ½H“¼æš(¡ØrñÍbY—:]^íA²_(C€+·ÍÝñÖœ“Ñ. ¸Öú­{n. ôt¿)wóâ ÃérkÇð©Ö˜›\0ô˜¾@°Igoy*¡•°Ï©*’w´gsÚÀs·þ 3Ï´p³_1ÑÀªŒËø)Ô„H'¥;öéۛﳿw¿¯Þnþ¾úûðÝói÷ù£©R•’1ÏæDÒ¥aŒMÀN§î Ap”V¦g¶çÑ‘€%ç]Ö#ÒÎ3qÅó ‰"©çÅU¥jñòNAf©û‚ÄKo@‚ÑúxÕ:Ûô”¤ØÚbÛÍÆ“±ßšƒ7ƒvÔÑßz·'9]•ði¹Ye½]E%=/¾×àÃÈFpò—sò!TÄ=¢Ÿ‰Èv‰rSæð3‹O!æ[ïÈÍÚ–…Ê$Þ¬B›U<<ñ¸Ãª¾•Ëä½›ïS¿uþZ¸ï—é_—eüµi¾ßÓöµí9OÖ‹å'ØV%P!ž<›Ñ<ü‡fgžZÅàÉjûHÊÌcÕ+åŠÂr?Éls•aWŠ?Y°@ú7PU­Ú.sÄ'Ô¾ãáTá+6ëíV©—]·¬„•Eå]»|†×–Q8XC[IЭ}^Cmy ãìŸR­Ž3J2£Ÿöó;ö“7\YÈ×ø©¤kz ÀÚúĪ~¦Ÿa~eîÀ%q$áq’ξ4—«ÝªU»tïO_¬¯åb¾jª'ÀÎsøâ !Þ(¦?§oo¿Oÿ»ÿsùÞöŸËÿÿ¹}>í¾ƒfĶäÍ\f¿`:1fJ ý©ÇŠ9âQÐï• ‰ 4ËY®(Tã©¢*dÁ"¤Ãª@W¨¸„É5ÙDEo®µÈ>¢“4´JŒðjoŸ-4¶âX„mqU=Hní©ÒÅïù‡-äÕ?Ð/[9NÄ|1_ÌÂ6ÚGfl~Q>Áv~ NµM*;“¨‹üa±ÖöШ*8ÚWñÂp8c¼ôo¿c? ‘.ö“‰óÁ”®ò1þª½Ñm={¾LßÞ|Ÿþ½û}ù6óÕþÜ<Ÿ6Ÿ?äQXkI©|á**/èX´=Ɇ٥¿®?…í¦Cû¸Ì‡j ¿`†žÊKdfÒÏcŽénWý.n%Æû@jg,P´FIæ€ØÚàIÇ•ó¦âÀŽi_¢“ ž²DÚÓ­½”šç¤JwÞú·· D׋îå´®@Ý i½Õ¶ñK©y"¸޲Ûü%D;"Žl î,59ÝšÏ?H© ^îó»{ø¢*‚ç³Ä|1ŸµÏË®VÓeøì¯BÖþîx™¾½ý>ý{ÿÇòmöË¿ÿØ>Ÿ¶Ÿßô”ŒØ÷0»Ç²:*˜DÆÌYi¥@u¶®ßø—æ"¡:«£ÝPîþ0v5ó]dÔ2â(wÝ£!‡Àw[i¡ 2ê ½e‚ðö`ó½p}xI° Fé-õÞaÞâ÷ÛÚgDHE;óÖ= JóïpòoÖÃ"€i ṩ_£¨ë Äoý¢Ý&»8Q$}ä"(‚‘pŽKsô/)šÆ­÷*ãI§®r—·ñ@½* Õ㸠b¥†fZLý6s[ó}æ÷Þ•Û¬?V~ü±s>í¼ýË^Œì]˜Ö„t7¿˜‚ÞÖ,/î2ÛšCÛí 6(?XÐsóÁ{~YèpÄOçŒôÜÞ!¼ „P]n!V¯€äŽ©&HŽPÔ³6‘’D‘rö<•½ÄA¥ˆu8ÀÑ EÏ Ï¶þƒ(ýU4ë”ò›ýˆ@Ûßÿßn÷Ÿy9Ìœ aŸ¾ EÑ–´¾²Ô€ªùÒ¨(.gï¼»ì¯SÅ®Ôån|Q]sGcçáeÎ`iúeî¶æûÔo½K·.ýkìçÎù´ót„µáÑÏxûàuZY¦Î€ÒÃiö‘‚Rõáñ “ÐC÷+Ø|06Ù%¸–Æ6y8`ö èB\Š*Rä¼´6ú{>Ô|ëœP%(½NÀæbKwÅ\˜áŒ½D,9ôEͽÛeÍ£ ý”չ¶é£ª²ÂŸ(o…ŠK¾µ†Þc" •f¹õ>e=8¹V.Öƒ˜©¨ùv%jŽÑ…@»©4AÙÛÛ³¿õ¬Þfÿ±úÛøÝóaóý#ƒXôâyR"áàfzŠ‘±Û$ þ¹uMÜˉgT‚O,‹‚‡h¥yG©’ŸbdN.Ü"/b7ç9—é?ÅÈ“Òo²{î_ñõÀ¿úSŒ Ô‘9óBuófz2‡úÚ€S0ýðÎÿîfî$å‚•§ùiÈ|»iZü©Fþ5üÄc3wŠzúO5ò¯éKjV25í§ÙNeë8œ>Û«þ6ÀÈãÖ“ýt?íïÀÄ Äø2~[qÛ?b”é—éÛš³ÿîþ\½·ùç꿇îžO»ï3áß™oš§øE‚¥’Šˆ’4í”›Ææi X€$zâ,™OÁ•á< Ò(b穨g\²OËœå²Òe{e¶îÓpö‹Ü¯‹#^ L Ühú¬öæûÙM3«^… @Gè×{ûNØtÙÚ)[ÿ•àZë)ÔqšOÇ_òü×à iÙ™d4Ï×ms'˜;ùº‘ò“Ï6Ó  Eüپß miýÖ}—õ¶9[î7ëÇ„±í3½ÝF‡ó˜í“z›½­ý1ûïþÏÕ{Û®þ{üçæù´÷ŽòOB×xÒ¢?_%Õ³#¡÷< Ûö!€ÿÉ‘ ø@™š¥PXTÊÕÙXí™l ¯J+W{hQ™â2iµL§]óeÝ‹‰²­Áš/dÖ,q(È$31bÍ·öAµ®@íÓ¥{1)á¡ÕæÅ|*Nû´Wy~†ßëùGŽá‘û=y$YlåÄ“òÈŽ)ÓE¿·®zLjc¼ôwÉUkC£Ën;rœPÅÛÉ•â9tÄMCQ€ÍsâöÖûÄo½ ·Y,ü6ösã|Úx—㪨 ¼†Â¼È"ÆRO,< žMô¸¯ˆý&Âë@ª¢mIÎLì!ØGØb{xiCê[Y07¢Ž´DÊ©,›V·uÆ•®bÅÙÐ3 kBxñ DJóÖžÚ™jnªc/ý'ÈLÐ|MÖf¿éñ•ü„e_ã'p»hrŸ´Ákþ<Ù³£IŒÜ¿2Û•c‚û¹5çêM(±Žyë½Ëúáø‹õƒ½1íOPüs½yí"æü6{[ûcö·þÕ{›,þ{ðÇÞù´÷Žã.xsy3djú&mÝ€cåEH’×+Ä+²fœÿ‹T"™“‚T$ÏBÿæ‹=džÿÒÜ#v Çy^畽]|„‡ÐÄöyäC,®(ûWQÇžd¶3@ÌÒc‰)N”MêÞ^a¤ŠŒ÷²mýó å…ÍμÙ_d á©{?ëA !}ùaù=YÉøžš9{ÀÀÜ]FºµœÄks’ný?ôø½¶t³Fxà yèÄ>Æ¿èñ{Jñ6}[ócú·îåÛÌ?–ÿ=üsû|Ú~¿/RÜ€§|¸zJåTFãÚã÷Ù9&í¤*^O¬ø†ƒ°= ›ºá]XJ{ÓQ¶À̧ඡŸ—-êwÊx#¤'þ/ŽIàv®8lŸ´Òë, 4N,”`§¿¸K‡±«/òЭ½9Ìþ ~íÝÔY¤çóÚÍG£žºraøÿ:‡,ð-ÔV 3®8l´c¹4‡ª°Ÿðjä£÷†õÈë‰qZ‡ì >!ð×1ø.½ ü<˜çÜm͹ߺ?Ön3ÿXûmôÇÞù´÷ö+Ÿ²Gé6¸Oæ®4É mTrwh‚×ÏúÝž'h¯ÿiìR{ôß¡Jÿ¼ÖV‹ æñBˆÒ:_©8*cXºàr|•ï áÓö¤âö¦^¡(t‡ õ%ßÚƒ¡°[u¦oÝgó3C h¥±ÿ6þ‹_1¥‹ô¸†¯Á›/g3IÔƒˆü{îö+Dí˜øA|B ?ÍóÒÜèbÛdÎ[ïU¶C_ÑOÓ9Å ·áïqùÏo{{“EÚ¦ílþžö¯½ï÷ªm¦«þuŒü½k¾?ï:ÏÐ>:Û³Y¤eïò:%ݰ$¼¶:xusˆ1©ðøb¿‡Ï[´IÝ*´ɯéB UN€¤@!gÛòõÞíÑÔì+ÊsôÏw5˜L×,ÚíWHŸw ³.ãçË#ꉤa¿ÌßÞ~Ÿÿ­ÿcý6ûåÿÜ=ŸvŸ£íõÌöYÇÞD&0€‚8äÀN~»Pˆº¹àF‡Å/­c R$`Eíøìûꔩ…G2Š'^éŠúñ{4+ˆƒ-€NVˆI¶î(¸1sõgzÀêö*°G¥¢Ž|ß(MÂ;oÍIƒfHvBí·îñÿˆÊ=ÌûùYæÛô?ÅèÛð3¥4"Yn³— ùÙÔåE|C±zµ :^šøAáH(KCvë~È|øIëžæÃÿ í½?„ϰctŒª£#°>û¤uŒ¹!FŒ7B5ÓÄpæ`™ —À°Ð¼ú]^èQ´V°h‘Æt<üIUZjϧ ¾…ô†0ªX˜q†§}D‘ËÀ3±æÝ7dú­¹½zêYºl·î+No¦è »ùEægÄuŽmÃ·ß ´4.¥òÞÓg¿KÙ%§…ƒ‹¨¼Š ƯKûôçÿcíOvtÛ•-M¬ïOáMeg%뢙*¡ÔHéz)3€Ä>)„:ùú²o§/Ÿ$ÏÑPw/:œ¤ÑŠ1`ʸŒÜ"õuÇôEþ¨à3ŠŒcŸ?7Xá)Чúöî»ö÷á÷ÕÛÅßW›þ±{>î>ÆÛÇ;Î(‚Þ%§çkµû¿”r ûÙh5ª”#xý[â)–H’¶÷‰·Ã(•ãÏàBHŠlçP5iÁêOÂ6¿©H¾e(Z#Ôòc$»7,b1Èv¨®€F¯³Ýºã4Idè,‡Ü>:s%©ô§ú-<¹T•@v^þÀmòöŒ`\ÛMè–My<³Yþ¤®wð ‘45Ùpg*@í»ƒ!{ÞÆwfr˜ùS|»Vm1áxî1ýI¬Ù³€ÚÝÔ·õßµÿýµtßoÙ¿Î…O}Û7ßoÕ}mûî(š'2ì"™uÅÛ+€{ä‘­=jW©5©¦fû028‹æ=S‡b°taÁƒë1tp˜ˆ”­€nR>E„È"._™éü|ŸN†`³Ï`_{t_i|•î݉4q…]ºζ–øHª—ᓞŠ&˜X/âƒÏ`¿oªïå/“Íßé'N¦e³¯B]»ô·ö’žºðº‡ùxk2ÅBf/s8û“Œ×:êŒ?Çï’_ÈHí&?ÉÁÓ¦ÑE¤qΆ¦Ð”Znú{÷?Õÿÿ\¾·üçò¿çnŸ»ïÆ+öUO²íëi·þpâ†ÞUã9z3\1¶Cq{÷‹â_£ï ·KY÷×ä÷}³+oÛwGµ@àô9ûƒëÓHà +ßx¸Û `Ÿ’oòƒëCyP/ Œ`›?6G¨ò0ÝÔ·u?Ô¿ ,ß&þ±üÛô÷Ýóióy:óTR‹2£Š W‹M“=l•Ï Pqpü¨öL5xðÂUe¤Nû°$CTa,H… z­‡C QìC=»š<QÖ£ÁXöÔ«CñUw‹}f§^ÿÁvöÃ,(³ìT×›9ö`ÙŽ·þd’Aâu¿Çð™?å˜Ý|HŸÞ¬7{(ø#x›½mfÂQ¶þíÉG~iz³(œý…ëš@Å–—îTåRN$ÿæex³Ÿ‘Þ¦GÞÝ)¾µ7<£Ž@ΞW¦Ù.ï‡vÑÞÞ×þ>þ¾z»üûâïó?6ϧÍwÁbj±ÿ7e½õlÏÅ:ß›f~àÒ{=Ú£>âelCt Š·Û‹“ššá!;^|\Ñí!*ÀåÔj¨ úvã\‰[êAèRbà 4¡Ü\0^”Q“×caëOƒžcÄÛøä1S“§»üEòsÅ…‡xó50n(^Õ€wý #'Âß°˜¶±=`}ÖcàÝŸÜk[§È³9]ÆÔ ¬ó|‘?³É~ ?æÏë2ïâÖü¡¿½ÿ®ÿ}ü}ývù÷õßçìŸOûï³Ï vêx²ÎUôN a¬ë¬‰)zNj‡¹¼×@‚›½%Jµ•âV"×›%< tÜ[@·—m7ÙÇR~ˆŠ°÷˜Uˇ5É|éç¹"Š“Q¨ !msÀÚÕDÂÞß>fUîàk¾ŒÏ{‚TˆQ«×6lò¢,æ!{O>Xß¿çOᨇBÌO]õ/í‘æl'õ“OYvã·ÁêÎ·îø®ï6C.߆') ®»ËMüN„ßÌóæbž›CVÞ{†Lu3ªÎLèN̬Âi-°SAÿã». í‚iaUS§SBuëŠZ&1Q›ú<Ô” ×jôb­½…= áôEûø$rE¦ˆ!_òCNClåaS}ÍŸ¼¼¡Ètøáü­?˜7íÀ‰:`þq <6Þú·?Ê]ÁØsü&ùí±"ŠæS~À½ åfOÞ?æßÁ´‘¿4ÝÔ·u?Ô¿ ,ß&þ±üÛôíóiûG*• ²!1ExYªø|Ü8åa޶Íeú3s‚rÎ+Ö³ìah†¯=-Å/‰‘OÊoC"D@Ôü$ePtÕ°©ô‚ÐÞ#@v«?ìd­ë/¸ðé—[(°6Û€¸OQ1ÇÄ¢¡ÛÄ(LíiÅò¶É—é&²­õþ­¼¢àýö†¹D`Lš>B»tob„!_xÙ=¿Ç–‚Luå[¾åVZŸœ£â‚Ÿ_ç´›À“UÓnj;ûïjßF¯Ú÷Kò¯sÑßóÞöÌ÷[m_Ûž{ªA©Ñy:^Åä±ÖÁÙ]'¨Ý.ÿDó¨S˜´åCî s!nP,€¯ö€ƒ¦-JÊì'D&óxÈe+¥ãö'Oí ¦57™WÀ÷» éñÍg6+;ßúSæ5ýoÃa…ôÜáþ /óámèºìý÷ä2¤t(®æßºÓëËÌ}@žçJøÈ^¾JCrZY´s›ö@¸´s„Р=rî—Þ ûÏ1“§Äì£Ë_ÃNñEzaûØ»r…ÏÉSy01šçÄìÊÛûïÊ߯?o“ÿ\û÷üϽóiïùžŠl*K”G¢’={÷©äR¯õ¬ƒüWµGÁ¢—øTu³qú /ãj¼Â¨ð{¶¸d¥Æ&ܹT³ôŸ7¬X¤Qt§ãdñ(ºúáÓÌǪP‹Ý‹©ßz£½IØüyÿœè)•‰Àè•‹ðLkÉ®»¼V¿çní JÄæyɇî2þ*;úœËø/Pm»Î꥿çÈÂo³×Ëøv»šü…DŒÒ.ò+㿃Íä†ûüy¼DqG¹èoï¿i~_»Múcé·Ù;çÓÆÓÖ$±ANý„rmÁŠþê LI<½bSn"ü¡¦Ù³=þQ–nêJ[·Ÿƒ<€ða{˜}&™,ö{c¥FR‰Á®º… ¦0áÈ0i„zê=Ýíï  ׫ÃÇ•E2â­?°Ç”ñ’õsOb¬ /VÁt‘ ¼Æ6UŒl³·ö4¥ÛɔشG^/~,ø8µº":*Mãõ[;÷mçØâ„Üoã W×¾Ÿ˜ÂUþ¦y«ùxÏé7Cå¬-Õ¡¾­ÿ¡þ÷øçò½å?Wÿ=ÿs÷|Ú}W}̪hÙO ¨ÉH tfˆV¨ñ&“ØK0D%…§†+S.á¨Ä¡£¨OV³ŸWE£?Ì+X <^–£=b±³Ùý]Þì|'öaò°¯’=%Áâ‡É»Ryën&ŽªÓÂÊlÜGÏ€]6c–›ôYÒÛ¾éI>{MÞ 4›˜õ+â¸+ÏN­À™=À!Æ¢-CQ…µƒm$.âtß Fä/0½ä‹üXÕXo _íeþd!ÙoÅâî­½½÷¦ü}ðmévÙ÷•ßç¾oœOûn²ó 'a¨RwÏÔ fÎþÅýÄi†Ç+(/'¸’÷FÁb†ôÔÑÖë^öÿD"?‡·ÚÁèÀNØ À Í®¯ªP¬Ä¬E™àv?Qi€7’YûàÇ­;\^¦†ÑKi·áÃ5+È·í">+•\‘™=°¾M_¹mf ¦¼ò‡7õñÄæ ÜȧŒ’6ûÄwô÷Qà4!˜yŽO8"‰)–y‘Ÿë¹ÍIÿeþ°Gnß¡Tú]}{÷]ûûðûêmâ«¿MÿÜ=Ÿvߥг'%ÐF<‰ M€xµ­BOÈX0¦ø,ZTþLÎ9üÀhÌ@\¶(ôÕ€e‡KB‡î¶%õ¶*%ÙéS2èÈ}Á²S‚âòp ^x ÂWS–mCâ:àâô-œ,øÜúC+€[q\Æ·vŒzŠàýòÙä'Ë"’l“{~ÜÒ¿çO¤ý)Èî ÜôWÅëV&ž>/« ëƒ M’ÓnýÉúh'u—ñ›äiá¼Éo§`#OÖ¬Íq›?Y ‰ÄÀÔúM[ÿCÿïñÏõ{Ë®ÿ{þçþù´ÿ.ç*N0æšûU38R¢Û:WI=§@P ª’ÃB-C­sèãÓ̧û!n>‘P,D{åu¯?çÏù¨í:]#ØûÄ}ƒsÚ)Ä>p» ¿1V»AÏ&l‡ù˜.ý+Ìì*èŠñ6>^;Ó€xñ&?N¿qmùá\û=}êã+e q>ÃK}0·Eïê:X&€²nåÒŸƒ«¥B5h(çðdUüGÓ)åvé‰âŽBÐ_ Çì †eÃáT8ñ[{{ÿ]ûûøûêíâï«¿OÿØ=Ÿvßï ÌÉfŸ@s4…9ø\SZèS47{x±ÀrŸÆOÊ=ËkŸVÈy!òûëOÊ=¤ð y]¤Èä ý¤Ü³½ÈK^Bˆ$±ù@·²=íÓOÑ‚ý~³`ÜúÛnµ¶vñ‰\ÆÇš5}R\^/òƒç#fÈu弿çñ*CíÖóòÁ¼Õ'¼ÈÀè*§ü!€VT~ö’'só6¾^dIÍ›ø]û ¬2ÚÎéߟ³ë(;Õ·õ?ÔÿþX½·ôçê¿gîž›ïˆ*X„…¸N A“"v*4Ñøœ«28)âpV‰oÏ’k0μÁ3Qúž™RŸ¡iôv~Št®üS\@n=%‚‹ñ/“^´ð¡8É•ÝYî¥ñ©ýâè—îrSÝ@€î2<%9´š”À½µ÷ýêýuÑý6ø{í¾ßÂ]Ö~›ü{ï|¿•÷µí½'»9ãG#Ãz!‘ÏDÂè:ÿzðvI{ðpA.XÈÚ t OàtíJ3+W¢ ÷Øþ;ÔåíXV³ÖV¨ˆXO¦ …›(xþü>Õ¶fÒ'+ÎNCR.þ¯PÑßîP€>¸Ný®5¥É“ýžP©¥f¿{¦Ñkæ„‘ìÛj{)õöE;~Eê¬êŸ@5 tÝ.ýÙǤQcÑ¿ÎÑ1r°L87á=ñ¸aTûñuN#‡“ÚN°YÝýwÝoãoKwÈ,ý6ÿmçú{ï»§:™#;ÀÐë_Þ  6ç¾*?¡.‡ÎL­¿#PöÐYq_8ä)vàIÿ¥™H Ÿ‚ŠBFJ¢ ŽlÂì)•ø…TÆÿ’iñ4ñõœ&*—${(íÒŸ,n;Ý*U¯ù2~Ôs–\锞 œý|33"?µÉ§Ni/‘m[ßùÐ8ÿUœ¶9LCCåÇ{·òb zKŸý9T"Uo:4ÎÑÉ+¶(Úq¿ L›-¥síë2yÜ»üqF÷¦¼£ÿ©ü÷øÛâòkÿžþ¶sõ½÷‡@óQ_ÚÑ[»Â„$Îú¸ŒÏáUcô‹ü¼P+nvJ÷õ‚ý=ÿ¬¨©™†Z©ÿ[¸¸TÞö5=…6"À<ûƒä`‡åÚçøùÉ®qÞäè<ñ€¾òÖ¶ùó¤‚ Ù®~Óß»ÿ©ÿ÷øçú½å?×ÿ=ÿsÿ|ÚDQ€@ùW®K@åŽd0é0•ªmGÄ$AÖ°ÜY8sí{§ìÍÛS5ëÚTôƒ T©¡‰idø"A˾ï:›ÖlulyæuҀƲç‘ò’Àõ­žø^ò­¿ø Ðñ6ºí [)n:·—w飤·%|*„¶ÙÛÉÃ6wG]?´GÆ@$ã6®G3p =¢ ª£ÿ„hÈâQåÇøÜ4ÆK»È,Ѳs/ó×Q —þ£‹úöþ»ú÷ñÕÛä?V›ÿ±{>í>Ï!Áýó/ä•^|k†\#:¬×z‡}˜áuˆæÞÌ"Lß'‰"&>Y°ØtR¸št²w\ê !ó& Ò¿Nö.»’ˆ&驪¤bOÁÀóIUuoÕ£P‚ÿÇ1Ïî¹q­L¾ßËèâH§TmžÂ×.áùc·ËÞSÆ ÕÛ©÷[s¼l83y´¨;¹t‚0J¥Ýúã8 ).ÖÉmø.é;Ù3ý&=~K³ãrԋ㜽ÌJ°ä•~t*ïÝÿTþ{üsíÞòŸkÿžÿ¹u>í¼#\QS^ Þ:Ô‡Þ#Πh=qqÏêN%•©Ø“«=È”eñ"\N§œ„“Òóü‹$‹îN%h©|óL40}ȘµÏTÏ/qV‰¨où¨A›²C`4QÄRæÜ*¥ÝñÖ?SŒEx7ô~?{•Pÿø&?“$ÚU¦³Ï?Rfc£·^ŸçáKQµhÁ.ËQ'-`éÖ䙨‹b|šôšð ŠGû¶2ŠC¼NBZ|öœ£7å½»ºßF?Öî-ü±ôï©;çÓÎsj:³ÎH̳¯ƒCºÃÕ–pNÇgl<~ጚKí6u3)Æ:äEÞ ´“ÙÛYg·‘WÐp6‹¡¨ÈK%§òpÃÜ ¹ÜÂtîvaK;B`;gMe< bÝíÖ/Rûa9¶÷ñI+#Ax¬;vü —æÌޏM¿l$?w¼ÿ[}`ÛΠ:zEEáíÔ -lä­¿\Mv,UABã‹¢Ó^%Í›øò4uŠÓ¼MŸä.ñNÝ€‡ú¶þ‡úßë÷–þXü÷äϽóiïùÓp׊[Ê!µ©é%+’…ú/½-h©`¢ªê^A¥8¹.Ç:õçyú%AÌ` P0·((vÝxžÅT䘇9¸‘¿ @üvšD8)gœOu¤XQ˜£Y4|”õáÜûc€-›rj—ñI›È…{f%ѾŇÛÏ~–ôòTWþš<Ô€Ô7{gþÆý«;’&`ls1|`ìù;oýIÑX{È©xß%=4œ±ß¤7ó-!^Â2¶ÙÛ?Ø;¿‘#\oÚÛúÚ®Þ[þsõßó?7ϧ½w ‡þ‹r“¤+9ý}ñ(’}Ö§C“Ç%w ¨RGî€öœKx‹¾ýç¨e7ü¯ã€½…°¨ŸSæRj,‚¤d-¯09µšÔ”{!÷D”Ÿ,åõsʯ‰¡ÞúÃSY„¿¹<ÀÛø™ZGh&ûOÉK~ô¨¯¬‡ÞçOÒeè$ï×'6ñÒ_"Ì.Ük+GxÛ±Aš—Rý§­>ùx| —ñ)=¦ös^äÇ™-ž›Ëüñ{ ÚxÊÜ>ô·÷ßõ¿¬ß&ÿ±þÛüýóiÿ=z³fæS0*¯4î}Õœ.½Ùhaòzd6€Ñc ’°!wOl a:ô?Ô¾~³!+õ®•H W¬?40è´1”F„OÞf>_zœôf’ üy¬Ë¤twÉl·þèÅÚWˆã=>Ì”xÍ6|ƒlâKŸûöƒ ú{úQŒnäé–òÃ…ýK},€¼ª‡ÇŽ3mã¹æø¹ô׊š6•HtŽO~@Üîd;å'ù7„®D¥sþèø£åe;õ·õ?ôÿÿ\¿·üÇò¿§îžO»ï‚" |®®îɪYÙÝÑÄ)‘ßWÈWškVq‰™ =÷¬Ö^e‰J°ì ð½ Œìºöнí*›‚ÔwZtXPæÂ¢ÔÒÔCNÒƒSÌNÊaåz¤?*s'§iÑVBë‘fû‹Cô»?¥$t߸pŒÞã“K¸Vzêã"?Řöû<5ŽÒ{þ,@È%Ž…ÃôÖ_ReI剩TbU£úãì.T/ûéÜSº ¯ŒÀ:É)Ê7ñÇ®ìŠËïµMøæS[ÿCÿÛøÇúmòëÿžÿ¹>í¿'Ĥ˜—°V\ø‰S¥bàE²Ñ»_6öÀ]5~8žIh…œ×Û£Ý4³þÃñl7CæY'Ÿ¡º’9ü°× K§x¥+´• ç;¤“ 3‡Ã/5Õí¦žoÝÅæÇ“±/†ëmx±ùe–`ô›øÊ"²ÿ0l¿¦Š˜‚Jæ^ê»2†ÅðÙG6ðí·þvÀ*5ìm[.ãÃ7Ha)\§õ"¿Ø%)¹Jcao½çO~;pcéTßÞ}×þ>ü±z›øÇêoÓ?vϧÝçÏ&»’`¾´¯BïÒì%=ZñL*ÌdR°ýá^qûÄ~0ÌNÕ´·ÖU |R¯`Ö$Lý†­h’Âù©Yx—ì‹ìÀ~Àl`¿蜷þÔqœí£µÛøPƒÁÒgm7ù“äç–Oìá5ò h·?úy·ýÖ_à,£ù ʶYk¹Ïþ‚ä耧µy¿JþFTÿ&~%?ÞžRlºÛôíû£j§j¿©oë¿«þX½Múcõ·Ù»çÓîóý‰»¥:‚P(‚•­í©²ÉŸÌH}`-Äý˜ºTð‰ÿre•ƒ5d¯ðÃnÙ•OÕõè‡U… UeÄúô€+¨bÖרÕá±¾@pŸ·;òu](í·îN`(Ä ßG·ÅΪã¼IŸ$}UuÆó(ý=y²‰í#Wì)mþ­;Ð_ÉÀå§ö¢e{¨ŒÿÖ}âþªb+—á³j&1{-ñ øCø’²•ßÓ·vI%¨duWßÞÓþ>ü¾v›ôÇÒo³ßw·}ç%[|3årâZXÞBSèÁ¡øµÃIø£Ö^„s B¯‚ ÜD9`ƒç}Ùk|ýä•S„t«òs^ðf%(yÆŠìèéRV])‘$ÄØ°ªBÔqf¾Lªàìçmôwo$o€µc¼ _u°à®öÊš]|ØÌŒÊ9=8á¿gOn…Y«Q÷·öÀ-²uˆ¸û ìJDwa½õ‡*l00C.Ãw·@´ÙnÒwXíàZXÇì;aJ;š§ö¶þ‡ò·ñÅÛÄ?ÿ=ýsó|Ú|G9ò°gVâq–µ”Én&JA&Ht+D½:Tð—öÝ<|ī̙ @ˆú18ï+Ä$›‡%\ÒÎÉHöÞ$¸ášè%;Ôds§'AnJW ~Hx]g»ô dè”è-ŸÃƒïžHMð"|Lqä”=Q–ß“oï‘–_sSC0ZZ~Q’ÜlÜ‹Þú›ý2ØKöDé—ñK‡S±‰úèŸo ö˜þeú„}ÀLQIJ‡ú¶þ‡ú·ñÏå{Ë,þ{úçÞù´÷'ØÄ·ÆÀ³  —C Âi et­?ËàÀÙ£ìáUမ¼ÉÛ™ =`WúlÇ»E\‘¦>PàÈÓí5km që³æÌ3f®Ö‘0~šOaî¿*ØÛn½«ÖàE}úÛ¬" d =M%×7€ß2Ù½êaŸy¦oA±ì_Íy´tØÖrxœ¨®±ë±.fÐwÐ_3˜ö—ý2>Köûe`ÞòWHÑœ—8öËô•W üâPHâPßÞÿ­ü}ômå^¿—ýë2÷÷®ùþ¼ëü~Ÿøâ€ŸJäEwÅ&Oý¨‡_"ñ" Uí$JجҺ"ø? Þž•¯UB{R(*Á“¤£n7Žm³A.fZW`Â6Ì*À!ràü¹!¡C¢Úv87%äHÜ +waë¯øOŸäç¶ÛøÄ: N+ub“_E ‹5û>ůTq¹žMIð¯$î Ï€Žì‚,:£?Ù“2‰$‰cüØ$¥éQ ‡üEd“–!Fcþ@2ñ¶ž­Ä‹úöî»ú÷á÷åÛÅß—Ÿþ±}>m¿ÝIß—á+K¾*snf¿¸©ã¤!–GLÇ¡¿ jäÍìɆÊ3Æ1Qº_ÁœJW=8 ú°ÆÊ'ÉÍiŽèÖ”Öfb‡%! 8~m(°­Wÿ8‰ø€Á¡;Žbª:ê¸õ7KÞÞ‹öÙ*ûøT4$.µâ‰¼»üªq''-¹—d›+B¿Q ÿêk€h²³Î'Ù“ºi3µgûp[JìËøCòÛ%šW–Ó&?à2 C] ÒÛü•h\#¥çý¦¿­ÿ¡ÿmücý6ùõÏÿÜ?¶ŸŸ¥Ø¯v¢CF–ýbÖÎñ[žB+ QY|`õêÆ<ÔÍ„µq1›eY¾­¤Ÿ"‚ö¿¬:Àì‹¶´ãÁM2‰œÛ¥Ý;9`*ØòîЦe•Ø8SA"‡¬,ÖÀ­»# ¬3rÒmt“«PÔGc>Kx»ŠJx ¨ßSOJûe«{ÞÆ®9^]äß^ó(iÍá­?”0ðŽNqg÷$é õ+ý"=‰¿”:¥ªÂ1{Œ ŠþCñVÞÞWþ>þ¾v»üûÚïóß·ÎÇwÁm¥×¾£îé|ߪ˜ÄlÓ´ãº*ÑOðlìÈw¥•Æw—¨/Ë·óƒôþ{«@`Qgên‹" ηÅU=À„ÑñÁ,„ÌÏeoA¹g&J»Àߘ°Âæ{ëÞG»Pò*“Ú†¯Tuv»^Jé7ñ‹ÄçÎî¹ö{úÖÕ0I‹)þ¥½¦D:E[èD2Ð)å[÷jBÁ¨Úïsx¡©Š~Wø)>‘{¤dà½oÓœj§ÒP½]{[÷CùÛðÇâmâ‹ÿžþ¹y>콇­f #ÔêÌk`çˆæâ«]8‡¼,}µ 'ñœp€¨ö‡¬Ì[ñ§ØÓlQ¿f¿xÎDí>1r ÝßBa´d$œ‡gVUâêOö kv gmUJ³Šqé(<Ø”çÊeüBJ e­„r‘ßÎ “`³ç‡­æ÷ìaoÑ©Áªÿ[{b×ìmÊ«¢þä­“gk·þ¼Û¡Ý‚Âñ6~—ü§y“ìò¬m¼q›?·HL"qÅŸú{÷?õÿÿ\¿·üçú¿ç¿ïžO{Ýù?~ÿ—o»ÀT jf ÉÖfðóÿÎßL‚º ²#z?ÿýýÿýŸ¾ÿŸßÿ+GñWüþ¿ÿ_|½»]TcŠ=«h6<é‹É–¨z›xÚ(ç\ÿüÿM¢egÿ·È¨›vDÑEÄ•èð’)|ÿ'Ý6ÿÛ×±‰r÷Dç’7ã¢Ã¸pHùÿú×÷ÿ³óöÿøÿùúÿ}§íy¼þ¶û߆ïÿl÷¿}ýïÿãû¿ÿ?ÛôÒ÷üÏ_vë¿ÆÂÔk[‘±þãÿýõ¿ÿÝ÷ü/ßÿ§ÿø:ÄÄO\¯°»˜ãóÝé·˜ó“˜Tä°õ9­ûMÌùoÅ|¯ÒMÌ1ß~‰Ùâ'13å ”huŠÿ•¦Íœ˜¡µÜåL‡œïN¿åÌŸä¤6@c=5·KúKrÆ+ç€cm™t—³r¾;ý–³~’³Cš¬;Qc]ô™þœÐÊFRÙIZ¼‹y|Dï>¿¥üø MU?#]„ÌÿNÈÏ’}|C.×õo?}CZe;Ÿ±ì‘Ç æ÷¢÷ÿF9KH¾Év7åèc÷ã#r9¯ûé#r’÷årÂJI3vft9ÿí™´ËIˆsl“}|DKÎÛß~úˆ$'Œ‘k,¨ì!¿¡õ—œÿöPÚå|_>öñ-9oûé#BN{jBĤ±ˆmAv,¾hÉ™þí¡´Ëi¯§Lo²¶Æ>¿"—óö·Ÿ>#ääº|ä嵤QÉùo¥]Î>DͺhÖ'ÜÿÍwtýÛßë.Ì5V 8Žªþ’óßJ»œD„aV_¡ŒVc÷Ýþö¿öµ¿ß»N){¦Ãôbý%çë¹ôë$ÿæóùý'ÿµ¯†HçZå3€Šp0H¢òH”¾ÿÓ×çÓñ_÷ƒðŸ—@ÿì?²þù¿ròbœÉ4ûþÏ?âëÇi_ˆ£ƒž+ôݪ€ ”<ø¿þþ‡_3°éÿç/;piÃù1&MòòoSskÿgkÿÊ<&[qùÞ~óöoûï˜!þ_.ÿþßhzÿ§ï_¾HzDlÀíümgä´¡ÌÐÙêâðé£cú¤Ñ@Î,x,@‰*˜˜Ù³Mí5 øJ“°Ehwj˜­Çž‡Ö‹d{ØS/ ³ËÚ ÀŸyÚëŽýoÚíΘªí®v¢ŒT.‹ßãèŸIÔ$Ü“U»yŒŸ.öü*ü>ä’ŸÔg‘Yótq‹eþú øT!–lzðE¥ê¥ §Ä¥fé|LDøÏñ… IzL¢Ã)?ë¤ÚP£’.ó‡Í0•…£ìTßÞ}Wÿ>ü¾|»øÇòoÓ?¶Ï§íÇF8¥)4Æó?¾3y¬à“â‚!>qJ÷!d\[@Ú[ €ŽA¶&€!8wÕÁG @Ì#a/ð߆X+¨ÝdÉazìE-P‡«½\BÅlÐGl(ec?ý=é âàÊ0)Øï‡˜¥³°‡Ç XÌ—ñI½¦xÓî-%îò“ 2ØŠUýßó§(EÙ"ðô©ÿ[¥t¸vz”¿.ve€’þ¥¿°&í:q˜]ÆŸ’¿ÚœbºÈ?Hߊàpâ;çoí”ÒÚÎÍí¢¾½û¡þ÷ðçò½Å?—ÿ=ýsû|Ú~Ú ÐaÕSb|'z”^@ÅÃô fˆ ¬_%-à…/û8ìâA›©'o7³ü¡’ËÄp!$°G]j]EUMÌtêKˆò¸ÞMj¸¼"Ät›E»fή`Ä“'凰ãÞúCþÊ•¡¨Ò1¾ip€Å òëSüŒøC([ê½ÍžóÉžŒ1xàáО¨oAFS`ã;‚á˜!o€ä^úƒ±kkQÉn?‡IÂ7ØËÓ)|c´^˜S.s§¾D¾I*Ä©º½û®ú}ô}évá÷¥ß'¿o[o Ge@'àÉa2À”ð -C7=ïHP¢HW;¬PÃ)óŒä6ñ`Îæº²ÿ´«9ë3¦4‰DÚVÍ’•¼·Óë |¡Ië´}KܬþÖúbÓÉÚä0ÊÚ­? DÖ †|ßîá1F³«]~÷Cú éûÈí„÷ìÅåÐ8·~ŽlÚ³v¬ÝTœßóì¡Û)œ¾ôOòû(Çmü,ù õšBNù©D5u%°_æ/ àDázá¢?ô·÷ßõ¿¿¯ß.ÿ{õ·Ù{çãÞÛÂsÚ‹8Ïîï Jk @kÊÆŽÀE4oæ%š#ÙÙ HèDmb‚“@@·®”ËN·4Mü €ŸÀ¥ö¡+"ÑSý¹‚&1]¸ÒÂ21QDæM»}ä;èB·ó<> »Kl©D)¶ËÀ³= ònõÏàaëTÍ,óþoõY»Yaƒ ]_+hØýi[Ý&|éßÄþ§ß¸çøŠ™Ø—T¨þ»È¯˜ È-Þæßè›ú¶î‡úßßË÷ÿ\þ÷ôÏíóa÷íG*[6—á¶Ÿø3Lh;ü R³UAS D »»ÚÆqÀÅXã…\wæ£öTÂ*}ø›vjÞ:Äè*$GÙÉŒÒUQÎA͸Ò[ŸÈDôÉ7í”ùÍVHÓÌ𛢗mýÓ4q&¦ÃÙó¶ñmý!˜Å!+LÒM~ÚáNj¤ƒKÕ¯é'<~¡‡Ìgÿ|i¿ÔG»î}€6÷|©5€€Z ¡¸ôWÒÁlBX» Oñ¾r&–É!=ÄΟœ³å2{vB¶û; iåÔÞ»ÿ©ý÷øçê½Å?Wÿ=ýs÷|Ü}û¡ {·çpFNEÂÔQ¬^B Š f6-j·}3!1ŠL$’j§€Ý¿ä^ÑÎfõT‘í™w6„"|V&,…è!Éζþ•¸»PýI¬ÂóšÞߎ¨’„ø¬ÏnPoJÿ¼õ'G‚ë†Èæeü€·Ø<”xÈYj‹eïô) }þv,fW¥½ÿC_ŸÊoýjÿÃ%f>Ÿ*™ùdÅ”qéï\\UÕã2><¥öû$Õâ·:ä'¶r7r¿Îù;‰ŒäŽúÛûïú߯?Öo“ÿ\ÿ÷üÏýóiÿíç*¨„Ö`O P8²ª×Ud÷®Þüöe™ñ ÌGWs¨pŽîf1yˆºŠ[;«vPÃä6DJûu;óìà·v¯ãŸÎn•“šÈ#"ñMívêTÞïnÕˆI=ÈÄð·vj»IÀÁ_{eî÷ȧoã { =Né…\áè¬q¹ ~M]¸âHýiþ«¹¯,Ü@ÈéS;•Ë0„ž÷—þMù©à_–þuŽÞ%º­C‹c]Í“² Ú×eædÛ`6‰œf×ÜÙÿÐü6ü{åéÏ•Ï~Û8‡öÞûn?QÁf—sÚÛÎn·Né¨uYHY¼Ý$g·ó¾ªÒmÜdíyøŠiÚÚО)È€u($øâø€‡»:B»ý¨KÃí”ÀÝ ã¦Ý‰ô'>Cµ0Ëóð6Ñù jìmFއ.Hé[’9!ˆ/Áý:ÛøD oÝ*3©ý>Ÿ…K÷ù70!€ì7êzûþV_ñÅ  ¿´õô&LÔ"•ö·þܾs ö ÞÆ¯’¿’öžnò«Ì¢{ñÜæ^¬Üs^Ô·wßÕ¿ ,ß&þ¹üïéŸÛçÃîs·”  2L¾'û¸8H'¥†Wû¿eJöÒ:{lSô[oãwÉßí±ëMþ' DO d/󇂗`\.êÛºÊ߆?oÿXümúÇæù´ùöÛžÌm=‚‰®Ìh€€KÏvªê‡cñÂPµ7ÀÌÊ­î!pà4³cÝ×"“üÛËO&á}ì\ªú”e6‹$mÅ :xßf=ãzêä$18åºùVŒÂ¾ºéî'¡ˆá†V[o GíÜ”Ìï¤môt-µÊ¦œv‘žròíEªŒÅ}öx™×#úNÙ´§ÂCÌg÷;y‡0½W~éŸÿ€--(€y¿H~ò ãE|A­Ø(8/ÓXæ+@ÖÆ¡¼­÷¡ú÷àÇÊm²+¿ÍýØ9wžNQX9:\Âö³'bÈÈ 3ZüÕTŦ$%ÇР¢bv³PDoÝíØ¦¶do/fògdÜjÇòu€;¬Z͹±p¾hO`$;þ!á1ûK@¡¦jãi'œ7?Qá5ò5ó,mÞúCõeFg„‰ó6>Ta©ÝäçÒ²K²˜º^m¯ùóâ’ŠeWßÈÔJQR›=ºHú­­ŽêFó­;°?‘„rçðCâÅ—yŠ?E¨GÍLÏ·éO|SÀYÆ‘nêÛúê߯?–o“ÿXþmþÇöù°û޾Ýh|w ìyy(:ÅW  –ß@ pÊ[!âá±N|çå†)ØZší+„bÁa"Œ$Y^˜q†¨dvêùøE3>•'OùRì´šâþZ½…ÝFê²ZmÊ18ÄÑ›gBÁ—ìÛà8‚0‹ì·b>ME¡§ØøžÏì×Üi§X¹–.k›ÿÒÝ™Ü~“Ž Á6£ÚmkS®·þ•lÛàú߯o’ÓØnòwetàëmþ"íΈxÓßÖ×þkøsí^Ò_–þ5ûsç|Úx:D“²p‹E¬‰™ å`ì'½æ“ç,àh‹IÍ © 'Ä =ó‰ÙÒ”y†L«ùô’çLŒ¨ïÂn èd¸¸Ÿ/yÎ…=@C¢Ú.¤WèGõ]Ÿ¥>3=j’ƒ8ìýí+…„άóæ§Ð6¾p†‹¶^ä Ø#‡º¾²B/¿çOS‹ÒŒ'tóK}äHउøVWèÇ–›‚•Š›õìïIÄ)Ǹ¯íJÙ!xæù=i£X÷9nó÷¤ è¤C¿éïÝÿÔÿ{üsýÞòŸëÿžÿ¹>l¿ÃóDeÄGFµ4 ss4‹â_ò ØNçá,7câYˆÅQ½DTÙT(@ÂáíTÑG¢O¶‡]0˜/¹¤»xª|?­€»PîÁþ€‚æÝ oGü'U^XÅ”Éu·«þ”Ú›qÔ€K?‡˜5œV«¾c—^0‘ØŠµÿøO~Ï){ð¯Ùua| Àéµ)òÞØ®¬PÞÊwµõ¶7?]„—±§Dï^(}‘}þÿÒè·©“¨r³ÝT·õ?Tÿÿ\º·üçÊ¿gîœO;OÇèT‚Äyeº •¯®¡gÒ˜¢T“Ú7µƒ!H Õ1?ÿÀÀ‚¥ Cp"*)*´§=ÙÂ# Þnw@b—ÎùAø„/ù24H”iU(ÂÕ_áò—'âŒóÌæ“šªƒî…h^Ò"œ€cx{iWwêîâ'‰ŸUi¯þÛô¡µ/AÖK3s™8~vU€Mg«ãÖO%éˬ§0ñÓË mžîhÞûó¤lä÷Soã[;N»rk«ù°ßÇûç~òmþÍï]3è£ûÙ7õ‘ºÓ0ϺS™+ׯ¼—þdƒ”ų=^Æ+VXà2ÓE~2”#´kyÄËüɵ ’X7/êÛ»ïê߆?–oÿ\þ÷ôÏíóa÷íOxRiš2 Zr—¹™)y z•I Zœg(h«6RÖÿq &j•à JD}`Ò¤•Š™ÅºÔ„€¡vØÅjÑJÙ4åéÝV$Ü Ù;ÛþSr†ÂIðHeôÊBÝzãÏàÑgNƒ›cDKee¡n“¶ƒ¹“ˆúos‡¢ÉŒ£!:²NÝÑ­Ð,,²X@$;£Å[ÿ瓲3z¼H—²3bI7ùÍ^ ž±âAÛümŸTÏΘ7õmÝ7åoƒ¿Vîû-û×eá·¹¿öÍ÷[u_Û¶ÛHd¹ˆ@QŒ ’iŠdG³EÄÕðf“I3vp6ž ÛDTUFo¦¸fCËÖ,¤ÊN¢ 5GPl#P`Š^O8•+4°vÙ~%@—›™Ôf"ÕÕl6’žÆl‘LÝÆtõÀÖ‚æjÊ&¢žc;â8h?g^’ÑŒäöÐÎk½'î€ãö÷ ªý·Þ¾’H@í[²Cei'òî#xÔóÖ]tÌuÊ ûü‹Ö"Ù ‡xÊN»­w„¾€æ÷Ìõí øTB$ôPÜÖ}Sû×>ú¾joÙ÷%Mükß0ß÷Û~~‚‹³_5ò3ø!¸'8“ì ÚòS¾,§ØÉÉàOÂzàí%s`MÏá¢$Û¡ä-74öuãàÔ³¿¥Ò¨Ë‹2yÌ{èñ’Ø÷)ºŽ±|Éœwn'ý›€ì7–¯xÚœÄËš/ÒXly ·å«Þfoíð ºøVÞ€àošð)ÕúsO’î†ûÖ¯`C6Ôu¯Â ñâÛƒI¤H@·æËôa@° š¹éÓE}{ÿ]ýûøÛêmâïk¿ÍþØ:ŸvžŒPr{„"Oï2û`Â1Ÿ¤f‚nT½ÈŒÝ¥÷ðV½gÁ‹•½è'H²‹ç S‡™C‚—ÒÏ 8š‹ÝSé_ÌxjJʵ§e-‹T©šä4¤*©—ÜŽ匸ô'ûÁŒÖ)GÐe|ÊdÌîŠr$]ä/’?éP÷mú0âh’ëŸS}TùPu•Vö|µí˜É†«ìŽKΓíå"Ç×1|“ô½(î"=Ïi3J uI·Ùd%©«7ímýíoã«·‰¬þ6ýc÷|Ú}G… ~™H%„ü^•Ì¿ÜýÁ4x$ø1t¥(¥„@aÅX4¸ÉÛ!—´r.ztöû°°'–€$+œ¹,v®¨ÊÛ¨ã=žNnòT”VÛ,¶”Z@MŽøS¬·îØJ:7úH·áÍÒàGé7ñ³Ä/¶W|­÷é㼇>×ÖŠç¿Ô'¼Kî©>Ë Ãz韱,Ô§ue†¼ÇÇs}3™/í"?T2E®­™êeþ„¢D#9좿½ÿ®þ}ü}ùvù÷åßçlŸOÛÏcòØîÜu‘\*âÓ«‚Ÿ«|‘)\ÇHQfW» *åuUQ±Ír©ÝNìNÛã)8Çì÷‰sÓÎ(`?“8¬­™_T·4³Þ†.{ Û5¢§òf…÷ìò¬rÇÈ1áìîž »õ窔ˆÙ¼ŒÏU×m]C›üÖŽüv:DOEÞæoW)ðíf3Í•JýÖŸµÛÖªéÔlM7@cXnÝà«8ÃæÃc "—&}½ˆONÑLe¾_¦v¡‡‰*ÐtQßÖÿPÿ6þ±|›üÇòoó?¶ÏÇí§ Šó7‹e4,—O…/Ô^&Mïxû„lÕ*¬ÔÄLgõª=¹,¨ØrUõQ]Gso }Aö‰`x­ÌH…ƒÚ,Ã…„Ú’;T 1¡ù÷üI…Ø^“+x`>[ž¨¾w·w·ˆsëå6º˜¢§¸NÊMú"é3ÖV^çÇkò\òú”'ûTžää°åñœOê,šü‘g1¼BdÃèe|1¼š„…ìë‹üÔSšÆòwmóW}Q&13÷›þ¶þ»ú·á÷ÅÛ¤?Ö~›ý¾u>í¼#™@iÔJUÏ0Õ/@A$—=š [HOQµ¦–¥¹ë•êTûÌìWõj×CNô~ÄÛB'g²,Ï5îvy<Å«Añ»‚{ÎÌVO€^ž<&“÷ˆî™KöÓv:‚ºvöoz¿›ÁVJ=G¬¸Éªaþçû-û«d²'q-ªù=u’âà°¬x`Ôþ[u_î´œf”Äþ“½k[ª'…«nýy^ ­Óì—á+²(¨²‹ðvgwêø=s¼öRSgo²M6ÅÝ7Åí£o · ¬û×>ùmß|ÞwG‰]ÒC”³ùàô׸ÞMø[I«n¥®ÈIÖÑÔÇóî!Û¬Fº=³‡Úo¸Çz÷dàìD烱öL-L\~Y‘’ Û€¯}–?…´Ÿù¤7RöB Ebž{ 2š6ÃJŽÙú˸bK·õrØÆÎF»l¼É$?èi=»^Ó—m(Aϳë·öðeS–Fž]ö(1cD|*—îv8*dL'—Ñ«„ÇZ$‡û¾ ä”’n“¯þˆÇŒåíýwåïãï‹·‹,þ6ýcó|Ø{ÛaбXqPf?ï÷À÷dª±³'I&?ËZíS¢ÊµÊä1½Ú/ècÜššµ½Ïœyû'½bþ›VSálÀÛOo7%ÃÖJXÙL‘hæØüRk„[™8-®9²âI‹C¶ÎÖlÖ üQVbØ>r$ôf[½¹d~Kí^AûiHèU¼ù{ÆrÕf•EψÛÕŽ/¤·q “¢cáþvéM ÔÀáÄ9t‘ÜðAq¸rWbÛxO !2åÆÉ7•í½+ü2ö¶Z»äï¥~M{Û&_§Ò^{ìHªçT…XP+áL$ u- ÚÌn Dª½8)hOØ­¨`Mµç‚w& ÏWÀ ´ßçbÑýþ ÔÝö˜‘À6x&‚—0;Pó#iñ¿çÏQrfs<õ]}B}fòÇëQ™Vø¼î©N ‰ËèUÒÛ®‹ YœÒÃfTIÛÆu™=E÷ÍìŒÀSw[ïC÷ïÑϵ{K®ý{òçÞù´÷ب\4 ¤µ®` ¼§5Aƒá9(:ãX”‰‰N2ß*­"˺*;±í"›yÍ¡5’ËøS¡×Äj·ç äuÝS ™¬Áž®Ã= fÿ$!þ%P€É1ŸŠ©Oꆤ£ËÐÞûGÑnóŽ´±Ïwn¯žôã yËOùoûu(lódHN15ùcuSß}IÊ>?5ù6rƒJ¿uÇV-ÛèCÒ‹Û)Þ¤Ç ÆÁ–û¼Md9L¿¤ÎSyïî‡î·Ñµ{ .ýkêçÎù°ñ.QMÈ„ ÷§e'”Œ+¬ÙôëðÍ»?.›Qœv¨ÙãtÙåy…æÏ¹=Ymü÷ôv ñÁ/¬}9Ä[)AüÙñP„’´;Ôù$;5/Ò!ë0Ö½fï‹òÎê5ãûð$x5‚ÉúØ¥pœˆUü?çìÉFËô†öäï¼´gfiH”x9ù™ »þìå0ný)ìµ§l €sŸ¸£ý¾½JZ?ÄW…Zi çä3iur±_t·wßu¿¾¯Ý.ý¾öûì÷½óqïm&'E¢Sû€WN[Êžp-WöioÐÆV”_A‚M“…HÂáWnÃ,'«=í1ˆ¤¸Nâ©P2úE0 ;ÖÉ7¬_U”%f†è±ÿ-ÿíäµ²qkÑõ){ù1ù_½uà Œ5à¾Î¡MPœ}‹}o“›Ë¦Ni½g ïxòZÎÆïMeàMŽPó Ÿ“Äjgø×Ñ“AI¸“µßFþAb£œ»Ô_ÖØí´³§ƒ²æ~ÏØ»Ž¡Uš×®®WçSÙÛÀûJ½¥~­ó×6åc—ì {ï1´sÔÚ§¡+ÕDÀÚ˜^lh=Xqé÷¢vbS`Ñ/œûâ†`w Þ$ݵ‘Ç`æ­CDÀ˜A8 ¾7ÏžTÀ¬ýø  .­å…IpИ¹5Ÿþ”yÛ;nªEžCÀÝÃ{ÿ†sº8Ï–Ù‡¯BW„'ݤ/’rÞ½g¯[]ÁZ—_Ú£¤4È}Â(‡k0ŠŠùÒ½ƒ‡h¥inÇèÀ{@LY1þ6á­î¼à¡±¯sæê ©ÍCqGïCïÛØïuû~‰þuYößßwÍ÷[o_Û®Û/tPL`xêÁK2oø.Ö6G´þ—[ˆ”h®f¤öÚÚ—E3„˜Ú!$6…¬&Pj$ܖই#E4r¨Å(†äµÅ§>)“ž­²À\Í("ùx%*¼:K%9/žå¸œÁ.å:ÀËoÙ­Cv2‰Šá6uk‡!ÖµøÄüUúS³ì†gám¶ƒ ‹Àrþ"hž,K«·ñ§ä·ç,§Õ)ÿ€f 4;€@.ó"hÆU˜ï[[ÿ]ùïÑß+· ¿-ü×9ù÷¾ùþ¼íøžÎ³fÈÀñÊgÄ» ˜p½ûK±ÜÆ*„[U€%Â4¡LÃo*ëÖFo|Q^cKôŠÂz#Þàæš½€íð`îŠ~Úm†d¥êU¢UA7Ea/ý‰â:Šã«ß| 7è%9šÇ‹mítÌÆú,CX!÷Ms}U5×\{´ó¬ö÷ÀÑŸG5Qìª:þ×øË£CR¤3!›üvz…Ž GuþÛä=å ò~™ð&]”·õ+ÿÿX¼Mþ÷ÊŸóïœS¯w„„(@å]çÌ‘Tk“¾€=¦+~ü¡4fNGÄJ†âi’Xòº¥l&øÐãÒBÈÕ³e+åÒÉî%GäŽD=Ìt´“Æ·¹µ+[”)µù*±\°ð”$Ú®•«ÕÔ)´xéOö¶]iuŒe”oãƒÏÜ€n› a“?4äÚœWdló·v³ &%±^±éÏÚUnµ¦ À3]ê™Ïþ`ÓÂüç“íö¿EÉ_‚Crò7‚«ÈÀè>¸ ¡Þ¨ùª¾­û¡þmøcù6ñåߦnŸOÛï@e מ¢/À«GJjdÌ<"¡Í #£Ãî‘§2á™òÚ|è¿*¹,âñlEeùàaÏC‚`Å… ¦ ÈÈ=“e=¤L–ÉÚp•ä¡ò #˜2xõLÒcyÒ_¿X ûÎÓÙ¢mpÀI°¯oýýþ‹€ðvÈ–éþ¡÷äÙ(vþ8IÐr¢üUžúƒðHzCù! _½õ'õhÀömæÁmüü|ŠÐg\ä·•†ë™Üz›¿ýC%I3bœê{w?uÿ~[»CüsíßÓßöΡ¾÷ÞóÇÒÜN©B’5ǃ|,['©çðå–UÍ^m«4j|ž“hîm0:Ò!E–T]?†ËYÅV”L›En†‰Ýë 4ó#PÕ½Ú"Qêмà,kÎé&=%Þö©cá®ÇmöéÕlmQʃ:ì£T×ñdÇU#k×îÙ½·² c²ƒ‡Âž¯slx^#ö-¸Ú»èŠ\À=Hò³“Ÿ8 ¸¡‹uèíì¾ë}ý½n‡ðû²o3ïšï·â¾¶]w£M!ÃD†êPýñT>€Ý~„âéOT•؇¦vÁ¯aÞ>©ùð U¨³¼=S2hW\}rT&köŠ 2 ;Æ$·?ŸL¶Õl2öµ[‰2‹å¸ˆx:£ÉŸ5ì÷œ¸åì_d(Ã9ß÷ñåWá„°'sˆ§ü¸e?ŒêwÜ{úöP"Øã>δö¿ê£½S…SžluHÙ3¶Á“mþ ä)جx~Hz1‹§›ôrªúèx›ýTÑ´°ðÑ7彺_”ÿþ²x/é/‹ÿšýeó|Ú|OÝ‘Žw€%aÞ~Ú>˜ÐEµ¦å‚BU;8Hvëæ5C€+) °ÿïÛs´¡´‰ðû}`À°vû1øŸæOÝP…-( æEåÿk×±EVÙs«Ã¡©€'€iãÙŸ(vI‚x^Ç9¾À È•Ãþï§ü‚o°äðóyüš?í¸ÉÌO Ù/ýÑžŽÎK/Çß—zš[2?ìüÓ0ÞÆWæÀ%âß:åp b€9çß)E²cš‹ú^Ý/ê Y¾—ø—åMÿ²}>m¿ý­”äá1ó áu ¶-€‘²ïlÔðäW/L §”ç‹úN2zp†‰-€XØ€{ ®o™sžÂò¶½B±KÛ‚<…ʘˆгûÈßòðË{„BœFYÌ p‡»Ã¾Þ~ëNÕn<ð„n£ƒ!nƒƒøSnÒGIŸÍ2ZåŸÛä©zèÝîÃ!·+À™yöo‘°Î‘å <»ÛÑ1K×kå6z–ôÀÁ†x‘>{ŠôDû6ù$÷N«|¿Cy[÷Mõû௅û~‰þu.û6ñצù~«íkÛsÇ]OÌæ²(àv<‰€>¦öµÀ½^‚s “f /f%V«˜æ)òTÖux¢øHé n Q©äØN8a€m³ìEœ!\€O{ùsXRW;*T¾„tëÓÎ6¦™—mÞÆ'hRyÓ‡À&?yDÐ[ô2ž÷Úkþ¤!¯ú<×Þê¢(Ä2ÊóÞbY“UO‘æ«ûÏzÃK·Ñ'ÒÛá›EpHß5ÚÕÊÙ–.³oÔüèß0Vyμž5ãäz_wÕŽ”ïµÞ¼×î$ÝÛOxêu‰åö:¸†ÒWû—â,>ÄðJÀõ¸àü½»cÍD{gYÕ0"=é1Ç[¼ <ÀW½e_…óglò«d ×4`1z¾çoíf´‚ ¸ŠÞêSÁÅÍvµ?åºb¾>ߺÛí‰4ö¬ªù6|–ø¶ô-•‹øDI[*P÷ÒeúDvÌlé"Õ¸¨oï¿«_¾Mþcù·ùÛçÓîóT‡"EÑ–•g(a1w]ú¤aR¼ZR{HGž;3ƒ ©ôȉMÉp~ç6BkiU«šO®cl®;Û¹à„i-i€âÑáCR'_µåˆ;boU{Œúó€yõï|ÙTF¼mãc`ƒcº\äB;WÛÌÎ_|Lã Ÿê ?bÝZ¿Õ.æI†®ö V‘Va&IL·þö„¶û’bð”oãOÉ}ëÌùíÖæ­dwxËé2nõ†É¡ƒ;õ·÷?ôÿÿ\¿·üçú¿çlŸO»ï^ìT—Œá¸¥½“)§õ¤¶lÄF’æ"v^ÀïfQƒ‹,S2ÔE Ü“<a­vñA.Ï^BˆtíæM.LPoCÂS<˜¦°tÏÔ@Œµ{¯Bù,£…×&,^°ºõ‡”†È|„ù2¾Ójõ òî‹ôaHz6˜W¸m³'dÛ1?È‹¿µ2Ç Ô„òù•A®ºmªKwXc¨ªàLºŒÞ©2µÿiÛ'Ä‹ôÖNâ+£y^fßÅ⥂·2.ÚÛúÚ߯?Vï-þ¾ô¯©oûæû­¹¯mß9ÌÎÇÒ9„Óò#ì Èùräw*ÅTîèRU ÕP˦}óa¡DÚ…AîrÃr}që ÂÜLSuªO=ý1ð'­/"D¸~„Í¿<ñP,Üåe±Ã…;&Æ«»Ü„‰¨R) Sã5<öÒ| 6ÃtŠï^$3>ñ ÆåÉÿ5}챑Á4 O9ÑK}Jà…ÄîûsšÁíRkõÒ¿_Fü¬^Æ/IòS1\ÚE~kodÙI5êeþ‚\°%s¹\ô÷îªÿ=þ¹|oùÏåÏÿ²}>m¿²A{[ÚÜ cœVµa.Ø »ä¶ÑëBå±"À8šlåÏ@x Zø}!RdÚ¹òoxŸØå§ÚÍ>AûÔl¬ü›‰Ýdë–£²ÎV•ÇMþý~™æÊÖ= ;V¡ª¼ /ž žñ9ýpÈüŸ²P ¸ÐO{Œ¨_ÓÏ…­N²^ý_ÚX¼RÃñºl8.líJ¾u7uSJÄËr^AªT‰³_Ä'¹9’ùZ¾M¿Ùžì­×Ë“ýõÒÞÖ}Wþ6ü¹xoñÏÅOÿÜ<öÞñXjŽD,äEø éÕÎò¬D½ìÜNnÎ5ÐFç"ª€¾>*eQîî!~’êÕÖ8¦ì@N¨R(]µý÷SŽ@ú` ÑÀuvX®Ik¢ XuH(›»ùzQrüè·î|¦ ÌEs±Çõ Æq9)wéñÝQN7ÍÆ>yŽ~ =³ß”gеC{ö²h>¸R<Ë\¼õÊgÉ3…åÝÆŸ’ß,¿¸jQ6ùÁ”§ÑéÞÏù“?3^º©oë¾k}_»Møcé·Éï;çÓÆó#´Sm¯zÞéDRþAÙ(~†bšÛ³YS»½²`M ë3ªTÛƒ<%,af€b áÏZ]ÜÍ˜Æ È¸ñÈeògwi¦5—˜8È ÆÙËçÙ]`úL…vüÂ,d£[wðØUº1V©Í6¼½;;¡Ä6s¿‰Ÿ$>É)íÉxMŸÍQ27dzLœ—úd'jVÝíoTòô¨B“³?äB aÄãSc߀‚ ä"?wh Ò¶Ëü©²'iÜ¥xªoï¾kþX½Mücõ·é»çÓîÓþ4c˜ÞäGÇÆë)ñ²R¤È`ª–!•X„‘ š¶V¢˜óFP¥ÿI‡)~ËÁPi¿_„ã„•v`øÖSÃ.Ò 1ys¢7»£(Öˆ®`­í»m1"<µqçð°/·þâ§´gd](¿ûø…‚³Hd¸É_$XP ûìÍœ7{€ç€g]îÚƒž²ÃmYý+Ò[È›óÀýÉ‚ƒr³st…a©aOi^dë-¨}8‡.s¯‘Ù4d ºÛûïºßÇß×n—~_û}öûÞù¸÷ðÎI@¯^Ef>ú>ª;ðæµg"ÔßYíCTá FdÃþ•Ï‹—[¢h¯·qî¥m4tZC$4r“ÓÃçk—Ž#±g_¶K¬¥éye‚Ç„ôÜL”"~å1„^ÙÝžÚû+7Ó5;ÀÚ>¾RPq¬¬­]~jÀ¡¶²‘Íx›¿œý¶6}emíú£d³›­^ Ä3œ’HŽyë?u”P!Ïcñ? Ž$LÛ½õ"~‰=ŸzøK/ýkú$$Ã)GÂò¸¨oï¿«þX½Múcõ·Ù»çÓî;è’:·ÁrôWÊ_ì3„g-¯R¦ßÌáQí$Æîèqã#§~V ´¤¡D­½žÖ ÌÉ”§™ª*€×Ëö4¦|ÇIÈÔ$ð*£vzЛºO3ÕíÌóVÁÄ·bÖoý±qÀ­0uËðõ´ðHÕq“¾Hú ´ÕCGý{ö”Óãù$]ÇÝ/oí‘.M9Z_ñÔBÚmIý8[gwN;°ÅP}ÞìW¤/¥+Êsˆ}Kê,|‰ý2ûsÇÐ\®ãC{{ÿ]ûûøÇêmò‹ÿžÿ¹y>m>÷Ý“@ r`VÙ §°¢~¸ Wrž­=éïu‘ áUe»œç“‡o¼dqD—B¡«Çq®·]c]ÙCÀ”äÓ¨¿Ý‚COáÔn¾}Á{ö6ö‰®öÌ$XóÖ¿SŽ òPjí6>¹ ñ\ÛE~° ß U|æÇü­=@á„ÂüÏ¡?®e³Îz}úÊ>êx™€…¾õç,‰›Çøù£Y¹UFß!?gYR¶ÔâþØæ¯ b;)UK|ªoë~¨þX¾·øçò¿§nŸOÛïBþ‘(â¥t0ØLÞÚCþaÏ„…ð§²0a‘?þ!Ù¤”‚šìY±æJ|¸? à­00{{ÄyÛÃb¯bÏLÔwéÌÇr‡\:¯Î*e³K„t[¯ª_{¬ õWï/.,{’ÚÿuÀÔslÕzšà Îð%û&²SÅ0~ì•_3ϪÄEï¥,sà¯âÔ&k˜½óÃüAÆd+´[Û6™‹–æ6üød}"8ÅŸ"Ã9ÔToÓ·•„z³—ÿÐÞÖWþ6ükåNé…ßfÿÚ7§ò^»Ng¨ißæ+,âì;gTÏýrÂ2üH: þû¤‰½?¬2¸cl9Òôö„ëÕ¾pÿÉY\Z"͇ÙÛu@)ÙÂß°v0æÈv As'Á¢bÿWÿ<ð[à‰‘µdV7/¿à© {ÿBæ¸=‘lÈz߬5Û‰PÑx*Å.–ü †g󾿅4¾pÊ|ÕSÔMémµ­àÑ ¡QO·þ<„aÌÂax_EB8¼bÍ7ùÁÕf–1}ÌßÎ8{©ð¡å¡¿­ÿ¡ÿmücý6ùõßæìŸÛOPbø!¨qá¹/f:» 3i`qbð£ÌAíWÌÀ²ïa¡K‘•!_pü‚ošOüÕùdp¡Ø/ –æG¸S¾>E6¸™vaر§ZŽ[ÍçÔÙY„~Å~<™­#>˽·* ž´é|Eûض Å~ íEò$É!ÍJ Ñë5ïd–vaMNuó[gêm@ «×(‡8ÊAÉiãÒ[±2}"5üÇØ,8µ¾$e\$ï"€¯ÔAõ˼)ã’Ÿ|n‡Ö¶Þ»Î·±÷Û$ß×{›÷¾[þíNûÒAI‘ ÀdQX: æøºo‚SƘ›„P†Ré!„*Š‘ù—Q$Ï…1¦·G…a¾“BÓ‚x›öjEI¡DQ‚Åx8áÞõPväÜìg‡cŽ2·ÍZ ݳ?A^¥>ÐOš½?Ï[´Fœå6>ê AþM~rzÍ4ŸsÕ˜ïóÏ: ;I–ÞÓ„bUþ¥àØÔÏMª)[·þ ŠË±•rÑñÙ ¶¾¹ÉoÖ >“Lýv.”ûSEc]ñ7ÿn†™À>{,•¯Ãô¼KÌ~1M 9s+l¥v˜‚™žný Ï‹ixU§íãCŸBrdJy^ä¯Uò›é¿^¾Ûü+´Èd$Q°¿õG…¸@®w…åA€+—î¦/2…“îÔT÷(ñɆïõ">€šŠ9×Ïé7JÖ)Ba3\Ô·÷ßÕ¿¿/ß&ÿ¹üïùŸÛçÓös`FÐY@':!𑘗ÍC2=†³ÚaâmÉë¨$ˆOWYƒÄ­ÌzI剴Á¯f·†J  ã³KFPÓù‰FØ7)¸ÎÊZ˜‚O³=‘>QSSzäl†Ø˜ÎÕ[w*gê–Üä߆'é’çˆYož×³‰ß(K³£…Ûæ©oü=}ðáíàVYX_ù¿ÕÉ`0ì>1Õ?àA˜™!p©G³-lûÛ h׷Ϩ¨  Ç[ uŽøG<#PüRããaDh0Äšþp¸˜º@AŸÅãpördº åœ÷L=RuXNö);†¸?v.’üÛ„¸; @~ÉlÝÃûu¥+lƒG;GÈ!ïs½e~‰.„0CÈ¿«nì¿&) î*ËMë)ðWmê]né£ÊŽ¢½ßÙ2ÂD¦Íô6xGôìYöÑIC€¾”µ¯sâpÛ²j;»j¾­Ú!ý¹êïÉo›æPÞ{Ï9_|ûÃ/ÚÆWª1É}@W$3T…Ü d²O,p%ÐŽY_Ißì‹A„ÚPªy»Y˜ÚsÕáñ(‘‚õîT—”Óè#yjaÁô+'´·g¢}5Ó rlÆ0¨š<ÕîqåÖŸh2¸y¡¾Ç'W—(5:%žòÓž¨2LÝ_ÓW*pPT¤¯r¨ßÚ£ÙîOÒÏszØ'iøµò­ûøƒ{Ìñœ/£O _ql•›ðл“d-,êsò$Ê‚GUT~qQÞÖÿPþküËâ½Ä¿,þkú—ÍóaïÉÛÙ)*µ§âe穌 xñw’ÑüWfH‘³X Ê_³yñ‰µ¯0%€d’;9IõÚ• ûÞrõ"˜òäÿºhÁø¬8Å Ê\Í]¤¢I¨u‰Ð#Øû<ô.½ñS€Ïãelp­aK D×=w%÷SƒâEhVókÞ4ö)~í´œŠ?Zû¢:Ëî\¿N D"©ÏKo¢ˆ#ËÓ2ϱaþÆ]n×n§ä4“U;ëçÄi· Ú_ýÔÛÑSû>ü¾h›ðû’oSo˜Cq¯íæ‡e惀Äp|ÈÖMLÓV5ámu”yÒN/2·œì5þiPùš¶“·“€É ãèîïÐOp„€û%8½;‰íf¯d¢¸*R±ß‚>'…§Ös¢`r 䨊̴/Òî­¿-}ê2Ñ÷ñãŸ@`Cä’7ñY ‘L'¿k·éSÓsÚ¦äýßêÃkÇÃvÌöÖiì¡;oýý¶å7kÞÆ'µ½ÔìNÁS|hdNÂAt›~ÃËH@&¤~SßÖÿPÿ{øcõ6é÷ÅOþÜ;ŸöÞ‘8?ˆbPÒNÇFQµ¿Òí­¸®Ûªâ­ ¿ˆqùAòâqV†{…OèLù1åR3“N™ÊGdç„Оäf{P+Â8ïDyc}R×í BöfKË@­ÞÓ­;±p¦ÑoÃÃ}~jͽ_Äo2Jø<ÂCyû{úÐJâÎ!ãý_Ú#ý±ÞRþ.;, …µùÒ¯`/gÛØ9_†/bÏ>…r—j§U¾L¿ˆ}¼ÂzXÓ©½½û®ü}ø}ñ6ñÏÅOÿÜ<öž¿Ó©¯‰ Ãà!å!ÙHã)æõÈ[„[`Go1Íán>õ?©€¨ŒIÚI·3.«¥r5Ûµ!"O-O„ý—ÑÃ3x_9Sy//ìTÁ.€{²Ÿ+vjÎvëxoæºp÷á!=z¨ù"=%Ú$‚ÙÁ:ŠŽß³7õc°OJà¼ÿ[{”€¢•áY»’¡VáÛ·þXÔƒÔ²FžÚ9~‘üfÕ2oò[Š™pŽËüÅéÊ_‹ø2wýíýwýïãoË·‰¿/þ6ûsï|Ú{eìàqÛª³S¡]±Cq£(æëŠk?®· uø˜àu¹20$o7¯ã+”d¤‘ŸÇa³xc^u€ØÖfÙ¬ ‘Àº‚ 1ì³£ Ìm%kÇc.tÇk#«–\äâ{õçõ™ËèvãÎs|ÕAb`–ÎS~ÕQÚŸÛÎá òýš¿ê0ðµË‚˜ÙÔ§2NJuÛ€‰S0-„vë C’=¦ÈË—ÑSô0x uc—ÞŒ•@ž3\Ùù2ûñ5ð{¤y^´÷îjÿ=þeõ^ò_Vÿ5ÿËîù°ùüz³æR•7_¨*a²sc,üúJ½ˆM)úã27»¤Šügþ)ð R‰¿d'|mu¹øRáqku¬¶v_Ka<”ƒPùð0^ëc¢‚¯;Xw˜W=9‡Y@híÖ_þ8»‘D¼?+ àoâg‰OÑA~Êó^ÓÏ|ÙèqÎ'ñR\E¤æP·Î1ê{ÁðÖ°¸ˆ 1Ƽß%'}ã&¾3eÛ9–T}L¨»J~g㦾­ÿ¡þ÷ðÇêmÒï‹¿MþØ;ŸöÞ‘6ORÎ0‚y€Ö^lb¦s­d$Í–b»JR¾uá €—ïÍ" “Ыa"xDÃCÜš¦)lǹ2ü;¤:<Ͷž /ƒN2¶÷&š’GœŠmÁ¡t·ÅöÞþôÂ#Òƒkûà|¦ºº‹îÂ' qê9æÁ6wÒ¨€À®+Uu× V]×ñÉùo$+¹òÒŸ„22Ê'¿ËøMò“ êM~’ˆì„yø6¢ñdé“ÜuÓßÖ×þ6ü¾v›ôÇÒo³ßwΧwd$StN…©Š–„!ì³LQÔ¿”:/˜]§”ŒÑn&.‰˜­<©ƒvcâñ!}š×%‰Ú0dúë0Ýt‚݈ßÌ÷ Ü…§9„°_Hzùã`Xû9/º¢HMøÈäÙÚï—AíÒŸ”åvåâãm|Rv¨ižvÈÏpá•M¶ÏŸLÆ"‡XžJœßú#Õ–Ô¨ €‡î;h¶ºÈD˸ôx''àñBI>ÆgA åÏËÏs0œ ¢·sþð°S©^T4wêoëèÿX¿Mþcý·ùŸûçÓþ;Þ÷“`–}4Ô$+V)¹gëa´rPž³ÚŸë|KsÝ”‚|ȱ7Ò<]°A>䭳ʂ"=ӾʟÞMåŽ „jDç(ò¼µª=« !¾ÃVÚ¥{'áÆÄoO¡Á6z'a§$Á³å‹ð½KøžB‡mò¼@ìªv|>Å·¿•gí™óÎ,h\_R½ï¸tçù•§IÆ1:hÞ?¼ŒêCxÀAªÒ ¡T<'/°>Ö¢^w*oë¿ëþ=ú{á¾_¢«þž÷¶g¾ßjûÚöœ[¤ÔÂ6"ÂZ hHÍ@8öngGÄb"5kDT¹JÌfy"àT2DŒ°UU›¡vk‹šxDQM l»´ÕEüÆO¬=p•¶6•蓎Úì…WpºQï*9æ`Wå0õÖx¼­ Œªé2¼à°AÙ€nþ"~?Ÿõ„c~O_pØÊ«jËíõVXY¢¹îjrƒp £nã? DTžðu:<åË“Øt‘ŸÚÌQØ µ^æ¯9¢ö.ºéoï¿«ÿX¾Mþcù·ùŸÛçÓö»\÷pê¤XÚòÄó”NÄl¿í±u'‘g³ kÛ.À8ªn‡Š|’ÂÆ„ƒøŠùbÖm›ìç§RíàøEŠ´Ÿª_BÐ%4Ç1CÏfÙyRzTÆm±¯Qàè¢Ý·ùç[ÿHà:«oÃÛ)RÅ<ý´þþËýðp±åŠÞ&ÏU ½“¨ÿù~©N½…ÙH\ÁÐeCåwï‹uä@›„¤Á™ªýz ‚–ÞE'Ó P¼,`é×¼¿¼Ù>ˆ<ÿ2Ò~«íìþVû×1ø{Ù6áeÿÚç¾m›ï»Î“D¼‘Ó‚í P´ ƒùœ2Å¡˜i…Ë•Ú}èã³1û+bB—H=Iob£åó¡$%<žž³]µì0 EÛ¸aùÞ?öMû{ÃfLHw›»´¦ãªô‘nÝ .ªâ*—y_gŒ¨äy? ~Ùºý¸œþN_ñŽwÚ$y\N¿Ô' ÒÉúcNBBÐâĹt' ^ Ûzè%ÞÃ@³Ÿ§dxyìÞâã3‚é,d‡”Þ§ïøÛð-”åóy«oï¿kÿX½Mþcõ_ó¿ìžO»Où Wn aùŒR<«Â/BÖÓr¸¿óÖ^{I‡ÿÍi5ìò%”Ýjÿ«=ÆÚŠZƒ7ÛÔpP¸Ù•ó»ÊQì¿Í$²3ÉŽ-§KJO­Kçä')Üé#H.v¹ rmï “«YM$?ÖËØPGx¬Žûÿ[pO\H©T³Î¿þÙ'ý5•ëí@›ÂÄzeV]Lë„ o[ ·³{$g"W2’û6¸ú'‰®ó±Ÿ¢Ó>ðüØ.¨î†ú=ó//¬ÄЋœ´›âŽþo½ŸãoËvÈÿ^õsþûžù°ßö7–s…¾!'Ø~»ª½!È3dzè–0Ø{˜iÔ‚“¸öØõöôµ¦‡µìS%Š–^Ùî¸ Ù°gIOXLÛÏ£bÚgClò{Âì=OûXÏ$"AæçA;Óô¥£Ç[ÑC‘I\ò¸ oj³Á»ÊÔ. ÏARŸáï¹7ìzÊfÇzUüÖRÜí ûí‡ „x‚©6ô[¡¼Áäòe|n:˜ñJã&>Ñn&Oo³§D†j®YôªÚµ·÷ßµ¿¿¯Þ.ÿ±øïùŸ{çÓÞ;˜?Hê ‘ïä,2JÉ‚H¬?9w` ¤Q xÜ(¸± 0k©tœ 8fv  %Æè-'Ai-é êV2s'‘Fø°øDpNÛºãpdƒ Z{[WhñYò;âÝßI„"ùŠÃÙ^Ã냶ßHd\¦Cx¹­ IÉcå½ç®ó¬\Q ¨ûKwbP¢ ¨,¾æi· ŽýÖ¦ÕâÔ¯Çøx²JÊ%›ø“7Úò÷³ç B6óº‹ö^ý/ÚY½—ü—ÅÍÿ²w>í½ Ûï |OJ¡pòæp@‘ ;»ÝUS®ŠÉÜà À¸Mñ™ Àîív¸ANšã ¼îU|9î |õàV Wì6Uß´^çv`­¯î‘;¹6&ð´°Q2€ì—î[Íö$ÖmôF„„"ãÜÒEzû¤‘¾Ø‰á7Û{òœ‘›à\uëªðü\¸º(î ;© @ïì)Fø¬ @ï' IÀuÜÄŸ”©€î9ý GòxCÊM{[ÿCûÛøÇâ½å?ÿ=ÿsó|Ú{^5º¥*,õœd¹nß!‚˜ÝÑf¨¡L¯=W–]v\a½xUXt{¨bí«+£øÁoÌd-Þ,KÊþ«UÇ`Ã3F]bynL`À©P-Žá¦ÄÚŠô­?û#¢ð¶@†·ñ¡‡![ª›øxë*’æÑ>ý$TÖBö¯û!ßÚÃÌ«„æ+†Xdó­»3`LðOoÃƒŠ›ìe2tNŸâOøhà’TÍà9};à’ÌuaélêÛúê߯?–o“_ýmúÇæù°÷Žë>ý¡h ÃNÊý² ±‹ìR˜B§XƒGò'}¬ÿ?ÖÞdG³\ÉÎûSøPšD±o¦5@”t=€š„L ¥I½¾ì[Æíé›dz º÷ š±ƒ?ÆÎhÍZ@œÄ…EšfMƒ„·èiÒ7#ˆÃÏ£—BsÚŸôAô†,Ÿõ(4Õ’bS½<âl†ö§¬7¡éñcpk#AÌZKp k%(]sheÜz7’ÒQà-½Ò," iÕœ½G¯øN¾X[ä*oíñ=âÔŠArsÅÞ6ØWní |ÜÖ¨p·þ«äïT´›üD‡`•b½ßLÁL‚3ëᢾ½ý®þ½ÿ}öÞò_fÿ5þËêùiõí¾ ·Z¾ëȨvê7¯X%²Þå!¯¸ö°r} Â6ž\íêaÏ{rè™ ë¤Øï‰Öa+ª_â,ØgR²t¨d¨xû=ÕŽ—Q’%ÛÞ”ê6ç:ßš{ ô}N^±÷Nä?Ûâë©Å‹ôÀm ö#|%~<îó*Y!.ÊãàºäRÓÀW*÷û«}¶GOlx.Kjg÷“`•ß/ÒgB÷S)KòŽï£Ç{>ɇau\”··ß•¿÷¿ÏÝ&þ1÷ÛðϵóÓÚó Ÿø )2ä’zh¬¿ ÿçwùÀHa[W;BåH=dŠëÈ7Kö…d±˜ôä'=4S*Q:¥¾Û‘hš*M‰—ãüÒ¶[ôÔ–mtÓð +v ëwÆ«}À_µ§#wíýcñ/Ç{»üEòò®ì÷øyãÚÐí\‹–à­>ûÎ#‹ÒrOKqÐv)<ò@ìí+,d ª—Îþk”ü,!]ä¯r åÙÇ_Á®jvNæZ/êÛ›ïê߻ߧoŸþmøçòùaõW¾.…)V†¨Pjä>iˆ«s”J(Œ)Gä Û½¹íNÑ›’½—Âg^Ä{ľ+ѱ¹íM%-‚ú7ëÌïPbQmå¢N ?vKÝöo§|èdÐ&±¹e½·Æòï)ñ6Y ”ïÞm"„û„Ï®\¤'~n¿ß³2„~;oß)ŠVÓ}1›òlÀÐjÂvwiR¦An?ßrkoǼ*Åã쟚LëÞlëVoòƒ,ihoŸr?qU »ÈzºéïÝ~×þ»÷sîÞÒŸsÿý±t~ZyOÁ'8< ¢Vb$ÖÈù¿{K‰&?ij¸s«@[ÅP²òˆBâý0Ðëš!3‘ƒÒ÷A…_ñ´VU„ñ °kÜq‡ìÍ €öØ3ƒ#ˆ9·W‚ý|wä­½ÙK<©K÷6þBjî_¾³—ôIÒÃæsð5züõ™$ê¼²Š7íÙ¡c÷[žsUlRR6(¦h+%|kP€®¦~ë~Jz3ÎE|;µ²‡4s¿,šŒ#9—vÓÞÖþÐþÖÿ1{›üÇäoã?ÏO‹Ï Ô¬ýd¥€€Wì?Ü$•.n¶Qbú ìA8Ì™Æ ËD¡…@¸Í;Ϲû¶+Â6ôNúNždÏϱïöä±£‚:9UB gZ3¯À<´ÅÁi,„I±A_°{sVãäø¥/ÝÃGß…#ûM|ù•I[×ïŸÃOÊင;<è—ú€±é MîÎdqiOÚš}6äÒ}LˆŸ“Ç/éE°8RÁr=œ[—Ý#ùPÞÞ|×ýÖû>u›ìûÌïCßWÎ+Ïó›ˆn“òˆR@CȲ²›6 £’á0T£<¥/±yÎñï ÌÁ 5|™B Ѱ®ÝÑ+ŽËOO°±•L,ç°òà:¬½áa¯äÞ¡˜Gž”ƒÜ†žoí+œ¾d–¥rëÞ¤Ujnýb,yI_~9>^‹Ž¤°¾<æ àPê»önÛDQÚŸ„yhéÓ ƒ[{Up(•8—[ÿñí×K õ"¾lRŽRÎÁ›ÌÖØW]Y+‡î¶æ‡î·Þ¹Û¤?æ~ý±v~Z{G(ÔŽq¼ÁM¨À`¡$ARëO¥c{)$(5í5ÒÆ¥uù^ORÕ.½WoX¶ÔŒ^¤¯¾÷5Ëzi¼Goß9׆þ碽½ý®ý­ÿcö6ùÙ߯®žŸVŸ¿äáVðÙêXÎm³®Û—ŸÉ毃œS³+v²&¿|ÎM&@*ËûÌ­‰¯áY¸n)˜êÎD¨à«ø 7ÙáñA?ûÂ]]ŒÐøKrH? S{™Ïú~·Ÿá—¯eë.t*¿|5›üU¹ê”îlã¯]õμ—<8´é¯‚Õ)Ô™•æf3€Ç°þ>/íyë=jHº;ûgØï÷^ß!½}m”á$0/£§Å5à/¿hokhÿÕû1w›ìçÜ¿Ç~®ŸÖÞw'°FÓZ‹Š¯)µ/8¯<ætÁa—¢3 BIÑÈp}¢µ$ËÙë´Mÿnbð Èãq)²‘Áÿ]±‰†Ï Š'Z;ðgØ)FrÑ€½Äî³hË2·m…5|Ý1§FWLmAjíí«3ŸÏÇ%¹÷¿ J!—N7ù ò× 9ò-ò—" ÁôdDW¸ ¼Q£;/åÙ;+%ßš'’`JDîÜš@¦ qHâ“Pl3Dªq¾ì%[Ø\Ô颾½ý®þ½ÿ}úvù÷éßÇ¿/ŸŸVŸ¿å¹Çj!ɺzM ”$Ä Ýó8ÌÒ)h7}v4o[×s¬RjÞŠL^¸x:pa¥»¿ÂAE°ÂùŒÉûJvÔ'¸QZUÁz$ðÎá2­«=G L7h“j gêé־ì` ÎKÿÔ ÕŠM6ӼȪä·ÐëW¼áÛø ~˜]xw|žãßõ‡É8ÌÞ‡…îy œŽKsJùƒ½þM„.ÝãòT•ŒØóE|›ÿL¨ÆŒé2|Jh»ÙÈöJñ¢¾½ý®þ­ÿcú6ùÏéÿ\>?-¿#™„€Â˜8ʪÇL$mÐ9³|Âõ0í* BYž¼-[Œ*h@˜ãŸ©C"ÚXF‰JÝMÔü„ó CË_·F°Ç%TâN‰äì [ö1iìá“ð¼M…“ÉâÞv¿5§r>‹[zñÊo½—_`L0fËMú"é‰î/^÷mð€’ê#‘ÚoÊ#èZ¾c'Š‡Û¢¼‚g{Ñ9&à¼g¹õ_%Æ.¬7ù©æÒ9$a ã‡×Ä[€hoúÛÚïêߺß'o“þ˜ûmôûÒùiåm7>À]fIÛÖÅõ2ü$)Ùð,¬M Ìê3¦÷° Vtd€–2ðD¥¾ü#ݤ®B×þ½I«ì—]U6ãe.j/†EÐ[QL»S@ÖâPÓÚCÀ±UÉ›ã`ï­©Þ)l\‡Üú&êÏ]cïRE^’ &ÉIóË Ïìû¸{h7]õø|iM­©¨—JÀZÕ±jVåãÞ¸92CvV÷ï=(7[„ïÉÖÐElæB‰sô‡2·í̸¨lk½+ü[×çl½Ä>¦ú5ä×:ùØôµ¯2¿ÙU(m7…ãqF±,G;çq ®Réce¤¨P¸¨™k{‚0ä²€:]«ÊÔ0‰}¥ÇÍN*˜2·ëÊžÓ¦¿!6€2UB×ìÕÓ\ Ò‘"I 0¥x5l*­Ž¯Ô«} Œ{,÷qé_EB„º¡å¸È†ä·q.Límü\ª_â…Oä›þp4ÃÐÑ|Â(¤ã‰ØýÖ¾Sýå…(·þ‡äÃ̽z“P5Út-·ñ éÍžs0ØS[ûCÿïþÏù{ËÎÿ{üçúùiý]ÐÆjrÆô•J™[Ñ €ô7fC qáuÙeÀo…|𺨳®ù+×±ã¦næ)( Z`]8d„œmÖöìBÍZõÜüαXÔ¾Êfï äõN‰ì'·ö”fƒÔ‘P¡­ÿHˆÎ!“âM~ì¨TÌ ì×ôkøT–g.§ÒÇæK}¬•d¸škˆ£æÅ-G{J Äk‚ù<º§4À~¾¤…×µK^X«¸Í×m½}¬J†m¼hoo¿k]ücö·á«ç§Õ·_ï QÌoSé MÜh¡ŠŒ"kl6®œ¸Øß£U3 Ã:Ó»xK£-ƒ¾î‡VW‰HZøƒ“<¸f\Câ!uò+ÒLΗ®Û4u;ðIò ¡b;Úî{°ùµ7uQBáјQ˜•d6 ê²¶žAÅ”ÇCr›ÜúlrW@\ýªú>hAn‚pNðÃpô]e<Ùlq˜Öc\ÅQÇ!$mñÒzÁÉÆbµ}Sÿƒè…Ta N7Ñùnû–’_ ?ö‘ë{ƒÑùq¨íhýMé—Î÷{‹~L÷÷¿×ÊÇ¡µ÷B{Þîf ˜U-. ,J­â“kGìtØž0+Ã+âYã¤J®|)ò¬ÃnO†&¼ý.Ü€þäÚáCO`A@Ê÷ ·brí@«¤N+{b$`ÿIÕÝù‰„b‡rù®ìv1 ¨>ÉvïöÃnPA_¦'ÛîÝÿed¶ìñŒM|àÒíç V~Õ1|ý œ‡~’íÞÚ­]óñlºØ)ë3]Ú Lß.`h4ÒÙ½°ôÉu£çSøLÖFä!¯b®cìT¢3»Š¹ÝmíÝoÝs·IÎý{ôçÚùií±:ÿñóŸ?ñ\cPg|))•\ë¿sõèÞüúóçÿþoŸÿùóÊ(ˆŸÿñß;I=pª@ž²ÆJ/Š>t¶ O=-ÚÉÅ®úøOÿ»–Uò§G‘œ•†ü$7»y d¨«óðùú•ùøç¸£·Óú©¼Kö_~ÿü»ÿ`ÏÎó¿>þñOÛdqÏ®¿(«Mõ6áóŸìßÿËÇßÿíóïþ -}þí¿Œùê×P¢Š]]þí¿~ü«ñ¯?ÿö?>ÿíß>vaP ¯å›´m—vkt·ÿ .¡y l\:=å*ï6S7yÇ!ï»ÑUÞù“¼œæFÙÕA§§¼1ü©Àí%áMàßnÛúÿAàJ^T…Ù\‚æ4¾~NÇ?x¨ˆ×ÿõ¸ œß®çŸîxêXŽtzÑpú3Ïíïý›ÌîÚï§ÂµÑO»¬Bá rXg<¼ÔÙ’®¼”ã›j—îÖè§MUAÞ%í3©[›€¬©äûÓ`Õˬ~a¶õ®ŽM´ËwkôÓ&ªÊVžk³Úi'áþt·w]—þãfý•HüÓŸ6þ¿é9Ä1NE‚¤?ÝÅÝÞ_g^|::vÂ&Ó½ÕO[F¼ ˆBvua©ÓVþé¶EÂLã³íž¾þjÜ[ý¸`‡TÔK”´)›Õ§¶’ð§}z;€œù ¯­þb/TQ¬TаI §†ØåË|éó>γã÷¿8&~Û¾lÒývço—3 û!~þÓGâ™ñüíq¡ýþ™PðO.¼ß>¶ïGÏÛïïßÿ¢¬»ÞãÿÍØ2Céãëe-ÜÎzåJ»É¦xk¦båD_@E>úA~•½ÓìÁ¨X§‚»D ÅR!v%ðŸ³â1¿­${LŒÐeïÛy  ×ç;Å–`cxB¥¬¶¤“"µ|Ã3Ýur¨pâ%¹4§v3‹Z¯‰£÷ð±mDð€/ÂG _y-D5Óc õM´‡æaj¨œUÆTO¢—ÖÑ^é6e_º' F Ü•pHO‚‡Œ‹Úmôª5@NËÊçÙ”·µ?”¿õÌÝ&ÿ1÷Ûø¥óÓÊc½Ã»l¯!;6†`›øc¥¶Š,&v$‰9jÔþY$μÖQHŸÙ+8ø :¾HœðaðÙ…;«,h1HCh›Õ#üžšZ¿FΩÔáˆs·ö[oªP·AM°ujáY05… ßâ­ýtüv<Ûíãè\^v3ÔLÙ¥ï¢/'{Pÿ õ>òNÒ›íÐC꡸³ý®ø½û÷¼Òó¾þ½nNí½VÝßQ+<ê“ê9 fLÐt8ÆY¢M`ŒiÑK;;È£¾“îH}>ñi_²Záó²†Ìs˜CÛ@%yk’-Ù`›;,d ‘J?%ü©Ð«~ÝáPöë\ývkoÇi…•r4ÕƒýS¯5†]å]Ò‡ôAÒÙ’Æ>zêv•ÃFQ»Ú¿µW©@³Îµl*3€;³†tiO¥¡ý©PK›/ý“ÿk¿OâúÈùñSsºŒ®‰õ’RŽýííwýïýïó·Ë¿Íþ{ôçÚùiímÑ ‘Ë ”?Ð!C$GsÍ“ÀÅwX1× ®;hiœÕ@>“:HÅ”gC†=ãmöãÜ|u® |›qÒ¬Õ\éWD¾tÑ ÓÆ­<“Õ<ôÈC¥Ÿ"Π_—ä‡áÞÜî%Š©©P¨—Þƒ¸¨ZRý)<©hÔ¶ŠE…æï¡¨¨l†*”jýV‰pv<Ö,?R›Ðní³ÀÁa\}ñÞݤïİG¿I_Mj™3³]F¦šzQÞÞ~WþÖÿ1w›üÇÜoã?—Î o;M%\Ä Æ¢Äv<Ù¹Þït9v–±2f•ËZ³,ÖE)ǶÖÙ¿'À¢9àd’k¿oS+)ñr†ØbF_h˜ËAªFÊ}m2ƒ*Y„ú¨3ÓE"†Ý3”°V1ðlíåD7ã[$?ñìß©%€e˜)ÇS~Çôy((£g>]Pevü³Í¾©Ï©·­eMe\TãÙ¿´<¯È³ÑÑ}Œ’¾*Pw /?·"SmÁ•¼ÏB˜“3äqQÞ»ý©üW÷çܽ…?çþ=øËÚùiíí§i ’*ŒÚcêQÛØ(ˆÿ}¡‹ÁcYÈyRrâ÷hUåþ’ô¢ïYÐcžBâc²)Ð F°k;â2|áþ$¨uKº©ok¨ÿÝÿ9}oùÏéÿ\>?¬¾ýHÍd£MeF6ÏQH*å$3_ï{È™ Ä x0øNEÉPÒ^i"w²ynU4ÎЊT¡îdåÚ¶Š@õ©çäÛvÓÂl¡W” ÌÔ·7IJìApm²æùnÓà•^VyaÚ‚Ð3êhOEÆ9·þ)Àš¤z+Ùl_ˆMUÄ(q9¾> °h­¤ü¡]{€'r{í)–‹œ+Ø‚” v´·©¥ÈZxé¾"<ÉŽ mœÂ“PbÇgÒÌ^ÆNF 5ù5ä‹êöæ»ê÷Þ÷©Û„?§þ=øséü´ô¶•W]"ñ 7¢ƒš•\–ßõ¨c–*·£¾fBÓĪ£žË¤E…D::@fÎw’Ö“NÔɨo®<­bÎô”¾§¡—¸`3¨ü†Y5ÈRs.lN³Wš˜ òï¸4·!™m•9{ïzŸÊà’· Ï{” ;ŠËzÏ~º}F©„æeîŠkÄñÁ؈¹ø+"R¹QÈ™K×övíÓ$\líÒ=4LÀ:M܈é;°]‚ßÍ¥]Fɦه$ÍÕzQÞÞ~WþÖÿ1w›üÇÜoã?–ÎO O^(u àAqÚ»ßÈI5é‰/C²mö=BÑj]¬G28Îc²’s®ØlvÜáñwÀ¤’üº™AÜvÝKE„([&_Eœ-* 4ë}x™rú[‡ÎAYð¨Cƒâ%·GóbïÆÛ—;åÕ}0÷] 5‡ø ñ›øaŸõõ>¶­CºšÇšŸ—ú(¹5 ÷Ej @b`])Å›·ö”ÞÛjSFëÙ?°nÊQ**Oñ+ 0ЊvqÒÃçUMõ †ß©½½ù®ü­÷}îvá¹ß¬ŸÖÞî‹"…7¤5Qš2ƒ;’eW°Á!°f_ÔÂ@¼bßÖ'XRf™!ý»YödË–lXhë(Àr›øÊU$„¡lÈÔ; áO øYS¤¼5ž‰ÖU¾0§Ÿƒ$4êÑ~¶ÆK'vMüÓ—Þ ºpC]¤çL†ÿÐ^¢ªØÚGßT£@íwô…²i¯AÞj›ªLϵ%-QóZU¥ÍÞžL4JgAr+—þÉDƒ‘Žz‘ŸL³°6¬ñ—ñO¸Œ!ð°K:ÚÛZºßz?æn“þ˜ûmôçÚùií)Ð(š’DCý bd3%’›Ë 4*A%HOÉ^á 5J#ß‹jÌí¨w£™ –>É”öô D#¹„Ñn³ÇóD¤™DÖÈ)¶gApV µƒ–<ÌÊ‹"Ú‹´Í[{ß«Þv´[ÿf™¨fŽ¥v“¿ ?Y‹³ú£e?øEqPûz³}×ß°'‰pÀû£ ì0kï帵‡9¼P^¤ƒîì¿I~A)Ì›ü0‡c™Ì¿ËøˆAø,ý¦¿­ý¡ÿ­ÿcþ6ùù߯¬ŸŸÖßñ¾¿¨6mDšX@ØO-V¼`pÒê ×ÜÁŽù±¶yƒ¬Eׄpå‹# OP­öóÔõU'ÐTnO½?DÈ î÷Xq.üwÀý¨µ™pÚÊË]°`š“9Í)ð)@{ÅZÎÞqÁâ’¸æ.Ò_‰žP%”×Nù6x¾Û»Â¾ÇUÝ”qœ4DÒ³Ò[0壵|{0£KçEƒ¨=â!¼/±hÚ íã»@b)$ˆð*º;š¿5¿u¾ÍÛ[ômÖ?¶qoKæóç';”ä…FÑü?øg²ôSÕånÇ—Î8çìµcª}QÜÌ…Ä¿qŠûÂÖ¾4G¥–Ÿ*ò{žž3Ÿt屟`š¸uÏ»6ÙC'Ço2Mph`:c ±½f&Sî·£=‰fDÙ£ªÕz韼q°³ìú-õ"ÿ ˆD„ ïá1~#äì#±{…j¾iDˆ¶%jÎ[·wÊ%ßš›]Ù)–0Ë+ߺ/¿)wä"þP ©xÄ0ÎáÊXLHAãE}[ûCý[ÿÇômòÓ¿ÿX>?,¾Ããd›$ãÙ]^ p›¦ýp,+£ÄÌ@3Cºœ‹‰!¦†¯.·ˆ×¶bT× ñ¸Ö Ú“b¿¯¿*§INkÕùô¤[Í‘£½.–‚,€xžöÁ.6xÏä|åAœì¤ènSí)ÈæÈ°-?/ýÇFŽ Õä3Ì‹ü‘˜Aá—Ûäûøáý²;Ÿbšåtù®=ûZÐŒáËçc–­‹€3L¼ŸÕ\¿i‹f2é—<¿Ÿ N2[8ª!ÔxMS­šmnÍ AŽ.Øò~é=Ba{› ä›ðIÂS1éž}ð@$Ú[‚9$wåáq„—C¹´'.'ÙTýÒ¾†_Z¶IýÒ ¿ÛÉÆæ!?@Å̯Ý/Ã'–pÑÆvjoo¾+ï~Ÿ¼]ücî·ákç§µ§ÕIå˜í{YE‡XÅÏa¿ÆËïîb ãe§È¡&ç1*ÓCCbB>FÑ=3w¶ã±51f²9ô¾•»Eí9öa&#Fö A˜K” ÐKLnBån=UxMZ‘ ¾·—¡ÚG¡<«žÝc»Q1ÛRï[z>ÑRe½ öÑË4´Ç”=B“wþ]w|åî3CUÁMÕWrÐ%³Ê¥µ 3 Ѱ¥_ncßdîã–ÊEöñkŠq¤@“qŽëßFŸæ¢¸Wó‹â_½_&î%ýeâ_ƒ¿,œÖŸMÈÖˆ4ÝË8c¨ ]Ì€?˜&.”jAh:îc% ØÎ`J_ë§c;’Ùš¾’ˆí×:ë^æm+ ÂÖ^ëÅLp’£ƒ˜@ʨϫ¹÷MyÆq¹°c„Ù]Ì[óNÂ9ÂÅ=Ô[ïòöaµz‘¾5IOî£{È߃o~çÚ{ÖñvÕ5ÕÓØØIêýüm%å‚ã«Ë­=|,öš³’Û­û!ñMâúM|²kˆÉ´VÚmøðÉ@„YC-7ímíí¿û?'ï-ÿ9ùïñŸ‹ç‡¥·G‘Yï¼Y®î+Ç%…5 ty¥:¶Ñt´Žo[é²^Èïv¿’ôëža»{Ø28ÌÇ¢½¢¶§2½>‡Nj™í:y~q†á¬$=RÑ•IFÃ~u4@T÷ÆË nÚ(€U\ºŽ”#¡¡²boÉõ@·¡Áp­½‡@™á ܹ·k ²î.úà*0Y²¸AÒµ½-é¬C_L•g÷MÒà úMzR<;娯eü“û µ6«S{û]ÿ{ÿûô½Å?&ÿ=úsíü´öôL"PlAö¬/O°½š „€¿+£ krdÏŠ9´ ÿÉõ³}[IJ²² ö)oÚSdOjž}&Ö‹½>@€W w@ •³iLB±=ß½Ú¿³8ˆkØþC}yz·öæ6{JTgëÙ»§,¦â‘ÎóùüMv1ÎÒW<í¸J~y!Ïá9˜›â¨é‰%±ôB†FÀÀ¢Gì·öÖÀ¬·Ö¤ÉW÷j^ ­¶pîß²GJUÍîå>výïCW{ë{Ú ¦’¢Cu{û·êÏþ÷©ÛÅÏü9ü÷º9Õ÷ZwG824‹y.P°5QÛ×J\ÁÔç!WêPÌF¶¬C(ƒˆŠ7È¿@ôìážC°Áê>¡(WnÁÊnÃP/¿(60ќƔÚ@ x{û:Dm`“ZÅîæ.µ^d;ÄzkÝ ÇÆ­ÿ笭lÓ^ºÉŸ%!Ñ/®Cô5~ªü¥=é/ýQÅŽ'Á:F"™ívæõ[sÓ'Õ$£¥që}JúJÚK¼H/|Á>hó2xâáØ§ ›ú¢¼­ù¡û­÷cîÞÂSÿú±r~ZyzΓú 0µ:bñëÀÍ"Pßå XÙ˜‡£ä@ëF…_PDí"ìhÑý äDÑÓy8e2÷GOŽpû yð7í$gÕÌ»š›¬Üäpøä»ír°°JuøçNާŠ<.í¹ 2„fßÌKÿ\pJB3¿Èoß‘ŸÀŸ×°mãþº& cçJ·xëOIÁïw"°3ñʸ5gúøÎ¢úÞ»Õ¦ý¼=w¢î×M|E`;x]1?÷ó÷áó (…N½ŸêÛÛïêßû?§ï-ÿ9ýïñŸËç§åç |æA­ë[kû«»ŒôŽ'º/ª©d%%–"¯öx ÜôŒÏ G©Qc±<. {ÉÉ‘WNdæl³|y\(‘ @íËcRHžÏÁÓIM€Ê¥uÏ$"ÏÆ.&ñœÍaû#g8·^n½á]ŽfA¹I_$=é“Ë~ÚŸá̱‡•ÜØ‡î²à.›œúŸž 4(ωC5ágs¼òv+}‘/ÝO¼ò`e·\ËEü ɘ ©.×{øSEq ñ¢¾½ý¦ý½ûmîvé÷©ßG¿­œŸÖÝ%e¹ˆXØ·+Ñ•cšðÌÊYVѕßzÝìïQñ„1u“èjжÿO¡*`‰Úƒº_µ »ÃR_n’0@Šnm%º–$B³§•bjÐqª;æ€Û¦•KûæüÀÔ#ÖK÷ÊR†Z®ú2Ù¤W’³j&òWî·Á“g ¾Õó“vû]yòZR2ûWÚnÍð÷‰õýÒ>‰“’‰jéìsf6Úò)¼}®p^Ï¡“–ÙË$69.ŠÛZŠß:?&n“ý˜ømìÇÂùqáíáø>;$ÔdY{ÜcŠnM½¦ŽÐ~aq“\p÷ñÛT ˆÑ@ôl*½›Ð‹½XeRªÂå᯽Eí®š¯žGt&Ó®,ò«ë3WZ£#û'\{Ex|²ÓÈw +™hkC'´D'.ÝÛMÕÕ¾Íx“>Hzà9žÂÕ×àñîÅðùÛ©<þHEX’•èÕŒvø5ÉQ¶‡ózà ñèlbûù‘²ÞÙ‡ôxv[Uqê¤?Ï{k›«Ø.ÊÛÛïÊßûß'oŸû}øûÚùqííÇiÁ‹P°°•Ag°ýW.A!Úíò¡tk}·íD¶O–}‚·ÞLÞl×ç¡pÊ †tñÉg`xÉ[EŸ#A#¹•ÕœüE3ȱ[hNlÙ,’U–Ú“¿hÖ:œxçò/¨Û©'W~äÑ>EÜLºì׿Þ?)‘G§à!¾ÒMmhdùªý6|Šš'çáòùìê ¿(G ö@n?Áí€Æf4^ÚÃÃÀ<”iröu–ý~¢H.]ä·ïmâÎä7/ã·ï£ào+úù]}{ó]ý{÷ûôíâo³¿þXÉzàs&­ÕΠÑóÐ~ÓYÐá—ðHä}Ý¡‚ˆ´:f‚Yù$µ‡'œØ1¾I|‰rªÛÝ4¸Íz¾47KÜÆ)ÐyéݾƒJ ²à%Q?5>‡/Ô:»§ò­;ð pù$´QI&r2ÚKkŒ‰uåÖyGvNßQËEv¸¾L‹Ìs¾Œ|üÂŽa°HNÅmÍÅo½÷–þœø÷àÏ…óúó=¼KÅž€œ±ºa"¾MKø€©Š`­z®1®‰ÏÊw•…ÖH뺛9ømÝw~ÙÕ‘)µVAi‹Äߦ»‘…÷¡”dzœs¦Íè)±Äщã&‘-Lùñ#‹}ålÞðñ™¥æ¹6Gï•Q9Ƕ܅/Þ¬©¤øß6x]uÀáãzüFß”Ç÷À+d/×(W€bmæPoí)sƒx¥[ÿUâSÜ1êE| ä2„®mU¾ß”BG"}Î7ÝmÍwÕï½S·ILýkô—¥óÓÒÛK=³B»0tÛ®š¸¿í…–•2J‘Aà)ϋ׽ÔÈ´f†Áe‘'€òXù[k8‹ûè’çKl‹ù Ou !æ-¼(†6ìø‡ûØí»-•Ašz|f¾ëξÇèVR9Ž 0°víìS5ÏÑœ¸(À¢%_{ïH_ ²ëëì<Ïxƒ|\ÆÓb€'3Šg𭻣ý®ùï}¿'ís“{›òmÔïóùózóØ'n˜žˆk÷A62ؽ Îã°^eSº×u’ð2BG¹dJTðï¡ê¹= ßÙ~?Ž,€s6xHœeÙÈåÑ Æ^±6xaJ?ñK3œ‚XM»ìøªè]\ˆ,{ûôËôvÓPË}ë?¤‹‹y!Âìò£}<âï}¹A¾?¯ÕâtìÜ]vT“Ì×jsÐlB„{oôE1´µ'ë ®,³)Ó­ÿ"ùíïÄ}}Ê_Š…˜Óeü<\"PBÔS^ô··ßõ¿÷¿Ïß.ÿ>ÿûøõóÓú;ÂK ŸV¼9ZêÉž]Âï:멸ÂËàŸñ$raò:êÉãôÊ‘ÖHcü×1°IèÂG‘ÁŒ¿ º"å›+ÀaçòÉé'Hh œk–uQؽ2ñ™ÏĽd[5´x6:35p0ÝPß{'TEÖN˜ Rá-<8¯R¨¥­kîÛÐÁ7€ÞnüàÁ•·æxOñ«éw4áÙ@æŽð³ÏöãWÅDÉñI–ÛºŸ’DîÞoÒ¡-1ÆLzŒ~’$B¢»ósÊ{·?•ÿîÿœ»·üçÜ¿Ç.ŸVÞè`3Mf:èøýsÆÀ5Š==è#•’ЃÔt’ΖI¨JÁ ®¼ùò†â8@òíÀËlvLôïf½p5{RÅʸá'q.ÌYÛ• $Ï…>’ Ùáðm¡,Ò&Ë“¹5W¢³®œÔw÷ÇC‡¬ ›ø¶?AöÛ–ëéûð=(Û& y_à#ßÔx<ÈÜå |¤‘l0ò¥yý°f/å¥÷&éÍÄ‘x‘ÞfÚLqeû¼¾Ëÿå½›ŸºwÎÝKúsê_c?WÎO+Ï_JÚ™"W^´Ü1ƹB=›¹Q/Ã)’VA|í‰áU±Ô€›&p "$%ʶç:Ɔ2µjì^0oÇYf5x6™}/ÄÕp¼yÁ¼ÙÍÔxÔ:V{›Œ®`¢Ì[ßTµz<ëhoû¶ªoš[<[ÿ‘@)úË}ÉßòGê½À†‡Öt=7¾ßþy#úD¦®¿VÞúÓÏ©b6®"DYuu·öS¬²¥ ÙçÒÿ”übíÈù©b§Þ¸œx? ô|ê‹úöæ‡úßÝŸÓ÷ÿœþ÷ðÏåóÓòsƒ”J²ïóSõOfiP%¯ Rât¶ÛíqšœÅœÜ˜ÊóÚ“ª0y¡<‰9.–ó2¡LýË ²ß7Ùár;€vE˜«m4ör³ç[¥$‘ a-'<œ+îfφ ñÊÂLáZL'ùÖJ'*éjÊ·î…ƒ ‰sÀìÒ,lÃbùçoçèÓ/ ãš6œÊÑ Ø¤T¹¿c‹Ý›£Le ñ¦ºô>%<€â½^„§‰Ã4òæ:‡>y)w[CH´‡æ¶æ‡æ·Þ™Û¤?f~ü±r~Zy‡)Šÿ?0Ïq8º÷T 4:G@­¼âzqi!¸aÜöÏ'Û¥'4Â4NÚbÕ“íRÉÌìGìiD(ì\N,8Tµ@lÚòå°š@»OBHRÝ ¼ÛaTŽæhnLuñì]Nγ_C<¥G³Hoæ“_rïÁ£Xâô?ÍÇcôMy|·ó#æ²ÞùNÉ®`3Û­}D™¼TôíÝ7IOa¥JÿéT<¼sf®·ÑCtÄj.妼Wû‹ò_ý_æî%þeî_ÿ¬ŸÖÞã¥ö‘*ÿ˜¼ô¦B»aƒÊË ’É$!ÇñÉÍP"“×ͪ±C4˜æ«ÓÞ€ûÆð° Ô>ñ`OÀ+&’oÃzs+f‚FAÊu_ÐÉ®a+zUÒ­ pû•n?OÙûŒGsô_ì’ €2³wáp$Dê§ôÚ÷ ·T~*s^£ç;î@["mÙµÇ÷Ô)>bÒðå‹`NK»µ.u0ný—_žëÔ„{Ê/ì hR«—ñÃ²ÐæMB¹¨ïÝþTÿ»ÿsöÞòŸ³ÿÿeõü´úŽÄf9x€ ju1@w"¹fχԦ“TœÄ`ßÉM%gÝ¡ºt6L’ÆÃªN´‘ÛûÅ÷²hêyPÆïÕø8IèöìZ0lR¦Jxrñ½tr;¥Ô²ž·ëÎt:í”(v…=8g`Ë…èyÑG{IoGi„GÿÄR3 $ÀÊ^䇒¦c‰d¥ãrîûËAÂì¡¿½ý¦ý½ûmîvé©ßF¿¯œŸÞåº7£{@ÈïøÁ5ž~뺟l¿F N¨).£ÖëCÌl H‰*…;TwGB“¶ãåoÂô¯ÀÛ9®¶®k*ãfP2®òqÑyØ2ÕhÛÎZD±8…%x¶'×'ÚŸkuÀ™­{R…¦(pœƒ`—žT£À,[tÛèIUú7Ûwå…õ¯ÁÝŠë<ÃñOæÒSèùjNí}OŠP÷[ï]ƒŠ,Séž Ù©± ý6ø¥ÍÌøMy[ûCù[ÿÇämòs¿ ÿX;?­½ ˜([P0i‰´Qƒ½™Eÿé—É=»mTLÏf@8‰#hA!Ø ”°h]BâçÂògÛè"ùîá2N°¤3£ðD!2cû€ÈÖ^„cµ7S„ûºð:£ý¾­Ýê»ro_~q~˜¡KºõŸÅX<”7ùñ‡“´SåH<ÇaP¶é ˆ°œW/ý%r¢Ý]f¹óŠdˆ¿ZºµÏ¼ˆ{À¶H·þ³ä·C?-ì×ü¬n^TçtŽŸï>GÜôw´ßôô¿Íß!ÿ6ÿÇø·õóóú;ª–í †ÃÜdë^õk‡Bhj¦•ødû˜ÂB/º2:Ͷÿ€€ó‚+f-g¯«µcÅΠѼ´†+:¾ð…Öµ^†¶ôÓó–:†P¤(Ä+i.øãú‚ò¢A Ø¥5¢Mé«,ho¯8| OÍKk¶îž­f‡,ìÒ«þ HQÜ7Ÿ¿£·ï‘08±ù±B_ßµ§ê³Ø‡u×þ¨û%Œ‰áyiO Î';ùb¾÷?£ÄϠüT€záNüsøÄªìêæ/s»¨oo¿«ïŸ¾Mþsößã?WÏO«ÏŸQ…b)Å\Ê*øIKÞ.ºuëÛä˜M¤œr¾‹ ’—Ù²ƒ'ä½àŸC¦¬ Øîuë’+Ðí”ÌÔäö0–«’L4È~‡ÃÈtaTtø…¯@ª•ê^—L%¶Q×3dkß!·¡t1†rvýCy½=f¹H7.ÿîtÇÇà±Î(&¤G¬kë»òÀ)•c.÷çÚ³/…ç¡÷[{{EÃc’Àš»õ<(‰o#Öq“¿ÃAÛUÍÕo×;hRõÚM}[ûCýïþÏé{ËÎþ{üÇâùií9~£½.°öIÑŽ>¶šÍ ¢g/+G¨îÓ™¡@˜ŒòÕ ±ØÊÁ1ü{ìJu‘z?WHáîÙ#eRZ Zgjaaž*s¬ÅHXºgGoMü\¡; ¦6ûuˆ6F»´7«§'3þa3Ì—þ—«ÃöRòEzh®T¶›²WËm£'T|Ñ…7íï¡TòÞý‘œ:f$´oM6ñÑžŠUh±ìò«·þ‡ä¯ÓÙáOù篈!Ù]n㟿€M7Û¢Ä|Óß»ý©ÿwÿçü½åßgÿ=úsíü´öö'>”ÁÑ‹óñ' Vú€H$±FÂîïŠvј}¾€$?ºŒš— ÒÈÏ-«ÔèÀÿM“¿št¢D ¡",ÂYLŠqº=9g t‹îo!>aöéŒõl/4aC±þÎþ.Q m÷tÊïþ¤ÖT|ç^ù×øå‡ÎDøÂÂâzëO9䑨9›:`…†{sð@»Õsn½S±ßVnâKx"L‘„: ë6xÔå0¬›ò¶öåïþ2wß…¿Lý÷¡_VÎO+ïÁ~¨ð£FÛáES èÉ–N¸„A¡8uPži‹¼ öø1"zzdÿN}«Ý~Ëð=À>ѧß±°C+?rÂ¥Êw=Lõ&­_r"šîÓvW\é?öóe>Ð-[s"÷f°ò6êg流#Ï&§ECó^àœ€7”àtGÛàE“aSc7tîöMyTv]*½ò±+yç”Ò[ûô‹:x`ñÆ»ÿ©8BLø.çE~Ô•ßµä9|’“<=3­ä®—ööæ»ò·îÉÛÄ?æ~þ±v~\{G(é‘dŲ(cp}‘d-–Áäè×û\nRpKçÈÎF²¡eçæ9™šéá1I…æ7gp>–B±kLó!ô!…ŒŒ.¬¦F"s._q°Gû:º—¯ѱ~U~oͤ2= ![ßðbì2œdã%ú‡³\+ˆ¾ê$¿›ã…æÉ>ÞjsŸá †XÊ*säU€ [ä«?ÛWOf „ÂnÝSfž ×üÑ)=u¡¨Â âÏÑwê˜@Kª‹igSÞÖ~×ýÖý>q›ôǼo£­šSy¯5çǧª É7–,töœFpÒ´*¡@£n‡—#gdBY0¯-Ã9—ͼ6\AkîA<'E¦:M[0*¿V5¬B. EZN ŽòjáãLRè1l]#ÝšÃÂK¼‹Kïöê„ÛÌý"{’ìf®:}À1tVFÉ\‹é±j^ªƒÚŽ ( kjUð@Z¿µÇOiK¥EÕ›œýwIÏ{GÈA‡øð¿‘,ŒÏþ6zøß†ý:ÉöåmÍÝoÝs·‰Lý6ücåü´òü} L­¸{Š(%_)BŸxß’%aÝ1dȳxº/—·(\æÙ¿›Ý3‹â2‘Â,\¢Ëƒë2C* ˆŸÚó¾«I$@½"(ñÃ(Ò]Bc‹#.r=Žî ë{ûJ¸UGˆ>úÇKñ#g§ƒÝå/’?,0‘}ô<æÇT-\χ/å ÓÙ/fõ¥êפ,4²KŽæ™Ä¡@”vprlg`Å'7Ë!úbÊ…ç0¥Lë}èdÁ“Ú™¡q>Tw¶ßU¿÷ÿžºSúcê·Ñ¿—Ρ¼×Ê;PÄ«N‘E{K@®„ȽQ Ñ“ïúnO^J]ªcÓ¨E•?5„þÄÐZòë© t…üÿºŠ&`ȨÞ^µ§nÖÌÄNÓšdKÀ9ÓjoçÐxÀðè&Ó~ôÒë¼µWF ðÙ+Ãöþ±¨L/_{§N¦ õRGz"$;ÃW &Q³aæÉCkAàžvtWä]@“†ð)AÏš—æ L‡É­w2†½—J®íDJ&C÷ù>tûàù5e¯øô[sÜÆfïÛßÔüTPÚÒèŸí)&¡ò¤?¿¿u¯ÌŠ ®á~“žSŒgEª‹3d=9ø-Á½)ok(ëÿ˜»·üçÜ¿Ç.ŸVÞqÝ Ögˆð¯»—w LëÞIC’€þAí땄©×ů Éj=å“.ó:Ë/ˆ ŸÊúNÍ 䎣(PŸÑl ¿°Øñ<> þP¨Z®>5”`rÏ×Ù›S– ·+±Û{‡z_óÀ8nÒgIO¢ßx¬•×à3×èíÑó•våAµc—-çÇZÀ†Ìà$ÝšW‘ˆz8Þº§ jP@ãnâ7åO5P@n£7ƒ8ñšøàí½›ïºß:ÍÜç[öËÄ¿‡þZ6ŸoÅ}l«NyX[ˆMjxÕý¨žë5Ö² 5'E¿Ô} SÚ,†¸fÖîM*ÔÉsP,ŽV$J ä³«±Û«‡â±…ÁÑ@°æ)×›åAì ±ú7Ù@í1 þ·TOb2Užu²·/¿ˆaþbËxwôVÀŸßz½IŸ%ý ÿí=„Ó ¾•´vå¦<«›RÙj[ê³Ö~sä~kÚCÇ•‘ü¥<$Kã"?ŒZíãY¿ Ÿ§¢mH"ÛM}[û]ý{ÿÇômò³¿ÿX=?,>­ÎjÖ%P9Ê‚5¢Aô4˜øÈÊ”­ÂQ+Á¹Hlö©†z y1¶YðD[ë550³e«˜S„+ŸUU‚h‡˜þÀë›67ä…¬ö *óI™ŽŠ® …îÀ[{;WH;¨³9ÌÞ¿=¶MzE«ëMþ$ù!Ýò³a¿Y”?Íš†·ß´'´De‡»Ù+ ¼põœíkbÛηþ‹ägª<å­\h–ÜeüUñ±(ÛïÐßÞ~×ÿÞÿ>»üûüïã?ÖÏŸ¯>­N8¤°va6ËÊ ó™¶ßepG¢³žÿG’MÇ^æç{pc›BA¯8Œìµ‘¶Kô_Kfhpz©b1Bݽ¼)Ô"¨t¶±]ßBv&PÜ É‰Ås?[„"-æuø¼›ór n(Ë­wÜ€$ÛÃ4ݤ/HozšÃÏŽmðYG#AþÝuÚq•›)x ´…ö7Äšs»µ§?ó5+ýè¾H|ö›øwDÉ©÷¸ ß¾ƒË’Én­íííwíïýï“·Ë¿Oþ>þcñü´ö.õóÕ3ýÝ¥ ©smy¬úy ×:;%;¦$±›üü•Òã•yøw[Yfj¯­¥0e€q –ªníjMq;§' šÚ7ÇÁ楲uæX¯@A råÓ­pžÚ=;Cºµo@z’G˼õOôƒÌHŽÖ‹üœ+ðÁ¼^ÁÛø«þy€ªcåä¼õgßɲÁs3©HË“`8)ä—æC‰Â fíyëî j&@¹H/uÈçyž£ŸÄŽ÷ùr§ö¶ö‡ößÝ“÷–þœü÷èÏÅóÓâó`’YyÉ¡.Ä~ÍÝC*€H˜õ„hˆÞ=Ÿˆ¹8#=Ÿpà®IíPœ™ÞØ *'`gAàÏŠ·‡¹Jèý39L朷ÝÔžPh­p©+ß[__¹7LJ,œ·4û¥{Ò-y™˜57ÚEüFU)'vÑ<<߇o±RdG9øÊ”ø¦=\‹ökP_¶‡æƒÐ2Öòٜ̋nSÛ=¿îè^4®öóÉóëñ=·Ü˜ÜÏá Ñ=>ì–]{GóMù{÷ûäíâï“¿ÿ\q»c:ÁºâY ˜2&Ë“6@ šÔÁ,„É'Z(tá–óÄD;¤fþÂ#ü£±à×0ïýÒ9Í\?­.Þ×ðž€Ò›§Å1ø¡$É {Ayʯ¿t§æBÁå6µ{=Ú­yÅÅn( •øì^÷óà©·2R6ñ­CÐн-òmøø)«ÝÏ=­„šïºûÞxSüÇÙù6q›ðÇÄìƒßÎçëîIf²õϳQl&Äë‹ê™òX¹L¼á}ô`?dê] -+$)B®e•Ò‘>Mýi‚z`8PÙ$¹€¨@ ðpïr¶ÙäLê‡ôé©L Ü U¶g:Ø’”½}6¢Ý´#ú[ï&Õ‚ÒßÀ»ôQÒÊ=ë=x<]`ÖÒ­—êl¯+w׺lk_t¬Ò^T³y¶‡ÍÍÎÒê8RG÷Ì–ý>ˆÛ¡_ÄVÿfÖñ2|àÀíUeÏè^ËE{{û]û{ÿûäíòï“¿_4íÔ•®°u-6´Œ!_¤7[ ÀhÔq`=pEµËXz^Iß•'S¬‘—¶°ì;³_n=ÐïæPª*vÖKïUÂwèÓEx2¨fG—¡CjL^}Ê󢸽õ®ø­ócâ6áωý\8?-<ç›ôÌ®zH̫ވÿ>…?Mç¦=J š¨ <o¹Þ:z ‚3çèß1¦¿UD™6_,N”IMƒßø)ƒ­b‚å*¦N³Èú›«ÈTŠáhú`RáìnµÜÚæhGëä}õï¦v¹þxÈÏ÷D̓­ïþ5|eEHú*ƒz©O0  ;Ô¾ÂÞaœaŒ[{ 3ïc/çß»ïHPÕü‡ôÄ›à4·ÑSÂÖm™ ú¢½­ý¡ýWÿ—Ù{‰™ý×ð/«ç§ÕçÞOÂô@šºwšúSÛ;AÈå¿ëY*Ûµt¢(‘÷x:ÇY%Çv•‘V @òÇ>l'ç/)˜+GDÂQ™¶Ü_¼òþäîY ìÆ ¹ÁjŸ9Àò 6yôН·öx¯­}1lýgêÄì+Uº7ù“䇩º<î¿×ø©u¦œ±Ï’ØÔG©´6¹-†`˜=€'Äg˜oͱA9°’RÐÏî»Äo@Á—›ø$yd;kGnù6|nŠÇ¤§›ú¶ö‡ú·þéÛä?¦ÿ±|~X}~|F6Há±å°>$ t°£Ýê ¿ìè1;˜Ê)‡ý™Ó­NòÒñO‚n€Gá;5R!LÏðïx[Aë"&È¿„.œè¼òê ¶P2…—ëûÖÜÆ“!Õ*¸Ä.Ýg‰OÊR)ñ˱‘”…5¸ßN'3Ñ]YàPßÞ~WÿÞÿ>}»üÛìoÃ?ÏOkïÈ §‚¢Ç.JˆNA¢Ù ˜di!‹Ù4Š‚{»DW^}<…4ìÅ&ï¢Ù%öº#ó:åÇĸß,³P˯ÙðƒòÉu†•Ä«àL{Y6y=­'FQ‹bL‘ x­¾ªˆ¶æ8PÀÏ)iô[÷„|}‡|BBÝV!Ö[{¼!ÌðÌ/z`»X!—öÔß‚’lâ“ÁvôO-Q”ZÌùy@Û|°ÃÄ£¹ß¹bíÒU%sèoo¿ëMü}ò·ÑŸkç§µw@6UÞ Ä`ԇ떂C;9†(麵ÉÍÓ‹/¨®Šª°wì’ÄFèþÎáÈí‰yÍ;pT.·ýÓÜVÄÍÙÄäHÈí%šÅ[eß›ð­!ðúÂâUV)í>wfcÒÔšñÎSvù A‚äPþŠ÷ý1vÅ ìȱ)«NøÖ\†”ì6ǂѲaÞ#˜›·æ¶l øš°‘ߺ^Äã&>€ €6 ™þ2x‘iSñQôÚ¦¼Wû‹ò_ý_&ï%ÿeê_ã¿,Ÿ–žû@ÉÕ±îm¡GìV•4 Žó÷ÇkKàèþÚôÚTÁyº#ËvÔxsiÈNxáR?%‘¼µIeþãHú³‘"Zµ×5A¹cOS+°Ž1ÜÙAoM04ªHk·öòÓ5Ñšæ[ÿøù@´þ&~–ø‰B†Ç÷~¦¾Ôzs>ÇØK}Ðá–¢(nYf}F°ÃU }´'ðbËö˜rëì92+¨šù«^Û®Ár?€7àì <“ýííwýïýïó·Ë¿Mÿ>ücõü´úŽœz¥ÙD’¡lÁÁ‡ÃÎÙ@4—¡m›õ½êéç7޲øœ"W7‚}(…O O ×Qì¨w^!ƒkzò¿“XØîµwyð`8HE`e?­£ý¦pù‹Çº‹ QºÇ ÷æfö†ÜöÞÙ©à2Q“>Iz;i’üöÁSgójXt"›ò".OÎÉöUP€We¢™·öÌ$nInýgÉuW¿ˆŸÍ>´6žªVáÈ T5Nõíí7ío½¿¦îó-ûÇ9óûØ_ çó­ºmÝ Ë”T`:Š?ŸA.%ݤ*·© ët×-b6p`7–'µ°5”ÄìÏkKÉö÷aÖ) >T±)Q~ÖÇô¤¾Wr½³ªàô¾'¸¶±ÚS”htJ$IvšõÒžü*¿š™ÞéÒ?ù;Tº Ï ;äýÊÊé¹eÇøí;ο9§ðºvõþŽÖ+p j>ø÷m9–þÑÜÆCÕ™Ð[÷RT»ãUÉvŠO>ÁïF%Üeø¼²:ñDUÒêÛÚŸê÷Nß[þsúßã?—Ï«ïx߃l¡B»=ÀX;Èâ}¬›¿ý¢&pà½ú^(ní¶êçº:Ìr+k,¯9Ž.#Ÿz^¥ªÌHŸím¦žÖdPß‘Gu¬OH§Ì@_#ök˜¥Å lžú¶_Ûº·ÞÍ;Ù7ÕY©ò¥wì°Vœ•*_„ÇëEwaAìƒÇ+1ŸrÜïʳŽzŸºžÇv<Ù!ƒ§ìÖžä¡6¼PFÎþÁ±‰ŽBu<äo`¥•süŽÛg?góÕó©¿½ý¡þw÷Çä½¥?¦þ=øsåü´òž·=OòQZ)ÂE™¿¿í«Â`g¯ˆ%`CBv‚ãf‘‡“Wõ¶ö‰;!?$™ö³Cª×ãÂÄÅ‹ÎPx½Øë%²$´ƒ•JBv} êŠöxÇ[òj`W½µ Îæ&·vé¿ò:5ú˜t‘¿ {µ'à´â2‹¿ß¾sU’ÏïÞ›MÖÊX©X¯kh¸çßzûØÖÝ媷Un–BË"¨¿€¦q¨ë®·Ã|– jUÕE‘½ûUŒ‹CHBtüÿÆf¯¬»VÔ&l+[3sbuÏ€C:»:ìí×Äayå©3:²ÉÝ]$<ÌÍPÜ…³·Gq)òoâ­{Zã©qøCøwÄÃå>–'z<7¥26sEyéÎÌA†$®‹ÎD±Þçxì”WsØ®©ø${óÖû”ìÞs²w0–‹œé×À?ü³Àøºl´ïz;›¿õþqtþž·MøcÞ?ö±oëæóçuçÉ#Âá¶syqþ4Û2d×Y“/”¯6!„¨Û¨è÷¿¼6"ƒ€ïZß‹½9È¬Ç ^®–…z¥,q.⸠ˆå3 IUÙ³Ô/3K$>>'Ø®jî–˜´ÒGºµ'ƈk Ö[ÿªÅHªdž7ùò—æ—ýoûø#︧Y±OÆú£É4úc’Í™$„·æ„È»”®½ë4Î`β»'sÕÀ}xŽ]DZ½·A¡9tw¶?tÿêý=sŸ»èß'þãù¾p>^xœ·2A©Uö2ñe8ðt#Á»Ûõéþ¬[tC\ÑÕ†ÙÇT•¿¢UÛ(ðŒ¥܆‹ìüêþ‰¯+ϧ6¥ü‚p¸PÝëx̤q€Þ?žà8×¶ýÚTÒ`µg'ÙŸd1ÞÚ¡ ‹åÚÝû‡QŠd¡Þäã Ðén÷}üI¸‚‰xu]Ñé—úćƒ^ò³…è÷„t]6—öÔ^[ù±ÄxëßÖ2É(>Ž‹üv›‹®›$ýxSí•*òE}{óCý[÷ÇômâÓ¿ ÿX>?¬¾ÝÝľ $ñÕ=BE"p!KÑ©>' v@QxèK?‚›7ÄžAÎá t/¼ÜNJûM–‰WuaÊ¡žvJ Ó÷óÄÀžÍðüû†ìýüäçóG°´»ð삳áıR ·öâŽÊ¦¢’Ç­Š•… V¿‹^òÉ~p}ˆßÇÏ­‡î©°ë‰ñ]Ê€¿¹öàÐØg`äõÝã­=x»€oôÌZØû×ÉG¢’\^§üâÙ ZZ‹ç¿x6”6µÀª_Ú;ZoÚ?zßfï~›ý}ôûêùyõí–(9Qx|íJëN _ –±¾2òà'±]š”3e×+˜ûòŽ•U`¡ìJ,o0쀗™NÃ3âìÏ‘2×òé =IÒõÜŠ¢›½ŠeN ?¼îróçe'‰KeVºO ›8no¼Û;à ”m8lÛ»mkû‘DJf:å×ΰßmÙs†Þã×±ºj×së¥?,U^Ïe¡Ö¶á¾êq[[{•X‰謰Gÿ]òWÊôÒMþγ#ÀgZâmüœsYü=õ¦¾Wó‹ú_Ý_¦ï%þeú_ÿ,ŸŸ–ßQT‡m&ÔÊ><³º½ N‚¢@Gqdù@KdÆR¿Ø†8_I貄fk…¼4Ň¾=˱@2ƒ<#ƒ}owFñöd³¶»žÎöt$’eýXˆB\µ;Æ l÷¼„ =Xí·öûÍ ‚zºõ§ Ñ“‹wùmc#±sÃÑÛø98¬+ý¬OQßwýÙÁ3 >Îþ°yáùâP++gkn²M+é¾I|r’¹AOñ5ë+Õëè!H ž{jïÝüPþÖû1yoéÏÉ þ\;?­=ÁâP0 ?½žý©°ÜsêýᢅjÜî A©Qz¯xÖhŸÃè”!BsmÃô*˒÷èYþ…ïhK ‚—u꓊×(9RÛèàKA{°Üz¦=òƒªÒê/eÞBÐníYQÌ` }xëê˜IIïé&>ž»:áü iÝz¯á’ÈÓxæ/BÕ—ú@n¨‘fýâc­ÀpÛú·öœ4rüªfðì¿I~»áüÈßl}À6ÙÏ?Çß8º(Zõ¢ÁC[ûCÿ[ÿÇümòïÓ¿ ÿX=?­¾ãÒp™ð’ ÕàžU©]dŸvXá°Pì眥(Ö”0!òÆâyÓBl·­CF;xÄÏSдE•õ]Љ¼÷Êzå‚°DŽMwš¢ˆUßûªËë$‚“Ý`OA7*H«µá‡ØÛG3íléÍ‘®÷þ/‡9xË/—5g®3åü¶_yòä¥ iH·ÖKžG@Óì½'—Œ£h¯½vk¡‚!q%÷KïÙlÀ4Ywò[úß2š¶í(º ~@U º‹ò¶æ»î÷Þ÷¹{ NýkèçÊùqå¤5x |ÃÒu¿!Ivæ7¯âžlþ¢ ûn ÆúÉî ƒU&s¢-=ìù6È/vMÙ‡>’KÆá¸„p^ã,Ô àðaz( S‘ØÁ^ííj°•?²ò bÆ¥åÖ>:8}Â\¿õO„§¼µS~{Á"?ì‚Ožà÷áãL¯â˜ á>ÀPÜaøäùÙš!F¬³9i§dÏx,ŽÁ*°««¬[ò»òà%-hŒîHJCtqÌƒŠ Ïöõ¥H\ç­ÿ*ùq[䛸°Õ³îDx>é-¶t‰7õ½ÛïÊu¾ÍÜç[öËÌ¿Çþ^8ŸoÕ}lëî)¥^¦â8KtÛÝÌËéDÂVó¢o {ޤ’^wÚ0í06…•J<<ÄÍ.d!²ìPBtù¬‚b_•’j»¦[)0Fb´§}`GržHôa;Ìñå/ííH-6ñ¦€9nýç_²˜ìáðå4{ÉŸ$4ħô5~ù°Â°ÙóÜâ]Q/ç<çªã¤ŽŒ+åÅZ½5o*(¡u¦[÷Mâd6\¾‰úqm¶ zH·áƒO£qÜñ©¾­ý¡þ­ÿcú6ùé߯,ŸŸ–Ÿc4ÚÂÆƒÑ2d±Ø`¼IiÅçÍ"굩“4ˆœ¬™rhG}Rv›°ÙUéWíBî„V}ÑÁ*Å 9<ñõ†8$2U§gZ^II®…òÙi¿ß»ãÄÍÉÜ›¹òî·î©gêˆý&~’øuøïŸÃOJã€™Û wõ/„)ÓJ¿Èm¿ã­½Ý¢6›‘‹­\úÇ¡Ïr3A…`°ËO®]5ãϹEÎñw’éá¹GÆS}{ó]û{÷Çìm⳿ ÿX=?­>O½gþA¬‘‹äáSÚ „óä)xʉ1O n0ª´¢· AáoöŒ²/ NÚ!ÄöòÓk`ê J)ñ Ø¡ò ¶Mɦñ<?´¡Y=ßÚ×ÅkSR¹uoË5ÃXY¿Ø€^Òk;«ÂÌAöÑBɼn}×qn›J|¢§aòá5- ¾­=Ú¢{üìÙ—øðo÷‹ô ®™ùÇ;“©rp»Cu[óCõïΙÛd?f~û±r~ZyGœ^3ã æÔMBª„'Tï$@zLrêûª¥V „ÅgH\ÍÑ9µ ˜%8w§µ lkz¡ùY©„ò8OfÑK¨f´O#µ#¯Ó5ëz)‘í`Ç@^œñâ…¶MÖÒ­} ·†|`¯Ûûï ;F*zå:äW"&С—±ÞRßÇ h' (ra.âÚSñ4Ép‹Ü˜Úñù—ýø­­Ï{P-º—¾§d‡"–CvŸwò@p‰—±“l·C˜*íÚtw¶?tÿî›»CþsîßãßÖÎçwÝ}l+ïyÂ'ìÿA~‚{ƒ¸Y®%Q›ƒR…Ã+TgXÒ×Ò"‡.ä†åm†!Ã\k‹bj;5FvÊ ¬¹‚‹âqךXäT•èºó|vbý\äÐ-à9sˆ?€T{™¬íïíI~ÀEø8Xöþí;Y>áq-íòWe«S_<–³ä3§¨wª·ü»þ*ˆRB¢ñD7æ'Úz0«üòK{جžÇ6Ë­ÿü#’^oòÛ_&mð´ÞÆoë+ªÜH”»§þÞíOý¿û?çï-ÿ9ÿïñŸëç§õw<äÁV##}ˆ ÷¡¬*˜“wSë‹ÓÊáoKgWàWJ2N¿lÛËÉM^y…… /Œ\.ø%"„º‚³¿Z-<¸+'‘bY‘jCéV½µ¯Î„>¿‘[ÿULêÝæt“¿ e{·'Fþ?ä0fß+™Gí7ýÙÞð ¡Àå/¤ÌÁDÊãÒ^Øt’H©èÑ¿}˜j6q^ä7kÇúè`«`a?Ö–g¿èoo¿ë]þcþ·ñëç§õçz®²!´–äÅ)p–T°/”5Ч{@ÊŠsLßG ¼ÿêz‘Á k·¡,^é@Ìô°ò^ygjÛŒËIg"ÝQ×{z⛞ö‹Q›?‹¹i]Î;,‘ÍæælR%äL=ÝÚ“j{yžÝS:üx­ó"½Hoÿ ×¯8÷Ñô0£Tï…ÌñÖž|¬¸õórÇp—eüŒBõ9›÷_fžÙYO¾ä­{í§á7ñ€ªç—åýüM-™ÊÌ<´·µ?´ÿîÿœ½·üçä¿Ç.žŸß‘C°—m4´UaÑ ½B¢ÍcØPù$B7O=§Æ‘uoæ1åaVXí%WŸ{Ë®…Q`ôI+Š[%~mÀù› ×Á³ÁCÏfÂvap¶4¬¨w A,^ñ$ ÜýÖœ”Ù,ªé•Y¶õ^ì 3ÛOV¹I_$=åNô¾èà ÜVe%°¼”gï¬ +P•áöÃ3oíEó˜2¬6óÒ?¨ÔÈ·öE|r0ˆÜLâ2ü`d  “S}{ûMû[ﯩû|ËþqÎü>ö×Âù|«îc[wû…_ñ¸N‘ÝFÚËL˜–b\4 dQ€åÚÝ¿ƒõ=>s -afBû $&èWl ÐøpOX>Ò¢o •ãIeeò<—&«ûw@ ÈCãN–ªŒˆP%­Äaæ­=u!ÆÃ3Š™B´bKršà6öBåNãVÂ3c˜Õ—̪‰ž¯g/& ¼Sõø¨ÕÁ°Ø• ì¾ú„‡HE2‹eU³,À4¹°À*)3¬jÙÅZ§¾·”ŠlW5×»û†Êã"’߯¹ È·ñsgŠœ‘Hâ^ú¦?ž^bàOˆEå¹Ìyk_@뢒òÞKÿùídŽuÜÄobΪª º ßž'˜Ce¡ êÛÚêuÎÞ[úsöߣ?WÏO«ïFÖ'$}… àÞHÚî 8u#SµOZh^6t~Ë®É?м„&ýA#êIh@+g£MÿÇÁŒ³>k{¨‹#eÜ d´“ýŸ(ºåê´‘•¾AÄéÔ\ô´J¶ö”mƒá‘¸¡w÷„MÇRŠá1­l¬½ö‡”ú5tjÎE®Vúãè|©Žeƒ¶ÍMz|vÐ0ñ¡ßÚÃU_›AÏî‡d§B}Œ›ðäxüèé¡ xG<˜ð%Ýt·µ?t¿õÌÝ&þ1õÛð•óÓÊ;î|› {ªL 9 ÕBD‰¨u€8jùLl»6ü‹Xrµô5À¯ÙêÒ”謂W7Sâ 'T[µ/Iôn0QUá…ØÅl@ïOãàïê&7yú¥uW.R? ¶¾AÍ”'$>uCßD—²‰^|]wÕkÜP5“8ÚÈô]m¢r¶­@ue\UUœTvt€ ÞníÛ/’ŽŠoÝwI?¨Úì7é%š!‚”Øn£⇳·7ðååmíwÝ¿»?&î-ý9ïïÑ¿WÍ¡¼÷šó{^E8‹TM.Nj÷ã“‚%WÁäi,è4ûïÂ×~RèL^êÞ„$h±IÅ'WqÚÏWÒÎ>N›¥? x@ZŠÀ*  ?hKóI³¥ÓjÓ½éŽ/»T̪OÞ»=Àö•ÙKOÞ«{¹‘Ì(¨‹Sø»ìÒ²Èüªlø6rŤÕí‹é¥9OȈ|›Ó«›Ñïå­=Ïì$˜êÉî‡Dö¾Éã";þuE$mß~\F>kÖæ±]sGûSóïî·™;¤?'þ=úmÝÚ{¯;Væ?~þógb·PojšÅK‹Ÿ?FÀwü¿sÙkãWýúóçÿþoŸÿùórþ~ÄÏÿøïå¹W86„/†}ÙR1›Ïþ‚uõŸþë}*{ÿR”¯½’žœjuõ>ÿAWÇ¿|ü³ €‹$®wÕ’aìý—ß?ÿî?3ü7ÿëãÿ¼U®Ô‹ `'Z­¦· Ÿÿd-þåãïÿöùwÿÎF•>ÿöß?à0þÞ-¤DÉ»ºýÛýøWã_þí|þÛ¿} B0zó.q ‡ÄïVW‰ÍNýAb¯($UÝžÏ?•Øçé*h:Õ?¾Ë—’n„x Þ„‹áϤƒÊK´?³ìbn­îòÖä•Ï„qR(¢D.ã«[‰ÿTä¢ÂÞÕÝŸˆÜ‘ß­î"÷ŸDÎ8‹ìö€­5]µœþt ü¸óWçÇ>Ëpú.óŸµúqŸE–}-O·|òðÒrÿ¿¹P^óµe½ótl´]äk«78RÔF4ïòsÐm¢Hõ$òŸŸ ›ÈMQ¤gÓ¯Î-·‹|mõãÞCdøžn±©Ì¦ô£B"ÿùá°‰<¾”tî¹MÎ?þéO-^ÜÕÞ<”EQ ,ýéÁ°IÆ‹¿þ±ãWÏç.{ yoõÓ.C™D’–¼*‚²{,jÕºÈz0ì"Û†ìøÕù_í²{«¿Úe™ºŠ%rR$w? ‘ÿo†ë©”ÿj—Ý[ýÕ.‹ Y,µ¤­Rî"çGäôù?Ÿ_¿ÿÅIõÛÇÏÿöjøí/úǾ‰Ÿÿô‘Á±Ïz;¥¬póý¯?™¶_û‹ï‡LÿñÏûoü¿Ù›ÿ€Õ÷¼úKÁ5 CO ËŒ$Å0Ú··?Qáõº2cäH6å°(Ózúw^ž” (´Ë÷” ¤Pb¹"í‰ü®î¤öø#£E1Ò$÷v¨}°(=’{ô=opâÜÚg\6·1ë•sôŸH ·÷%HÆ7ù£ä¯“û;Äæoí¯­¸oà~ö‡´‰¬±›üì`^…Ô„cü¤{PVQò©¾½ù®þ­ûcú6ñé߆.ŸŸ–Ÿ(¹ÛpôQAël‚—4­È»_ )³ª’¢(ª;í¥’5ô@î¸í8˪ðˆ:ùx ¹çB¡çG3†þ«ÕwÑÈA’c86sž¸‹q†öÕ^#äÄh^6.8`{|–[ûJqîlÝVf¼õ/pÓs¾‰Oáˆ- áÔz=ǦmþÔÈ4 gšˆ.­}“þ)¯XEý[û¾@èƒÞ}G÷]ÂÛ5Ë{|Þ>{sÁ©ÝÈÒ<‡ns\óPÝÑüÐüÖù{æ>ß²\f~û{å|¾u÷±­¼-esOˆ×~ŠÌ3eP­†ÇÇLú_ʦ€ë{'õa´må›%Ñ*hþ=;%¦°üKV€7Šâ¥f…Qˆ9×çD.­ ÷¶lÀl%é;Îy¢ÓÝ¡Hà´[{2àÛMµl{÷Ôš‘*5{ñÏßew /ûyü±Jc%ß•œ½ýwÝ ÈËàʧ¯ƒÜ KÙ³Æ[{r5Kžè÷[ÿ ïJDH;åçÐ¥Gý6|rMÉ.³_h7õmíõoýÓ·É¿Íý{ôÛÊ9´÷^y[ª€¤ðiÀ[’3dqÛ-hç/u,©?Qu;ŽA’Õq\ØcpÇÙjFµÝ6­aô’¦Ÿ6%•–Ê*ÀÏZfñöí—þ Òé¶´§­¥É¨}ì‰øŸízŠƒà]Ò: ÷öÖ-»NuE½ôO&\€U@ØN§üdÒQ› Þ¤VÚ6~’¤É®3¨ý[}$òÙmn'Nñ¹êAçU8ê—öÝÌÏ ’³_·Gÿ=IþªÌ‹üøE©X+ú2üÎÊ,@Þ¤'©à¥¾­ù®ý­÷cö6éÙßF®žß~žª-CvÖÑçÈ“Ÿ8+• Wp¢-|}§fÆÆ”E%YÈ=†””D:}8ÖYÍ4†K†Â' §"ö2ጾÒ` ÃÎ.$áè@ÂŽ¨ËÔ¸yË ÿKà:´¡XE"´µ×4my†ÙoÃT¤=5´›ú¶ö‡úßýŸÓ÷–ÿœý÷øÏÕóÓêÛOU{íŠPkPÖZ|ôàí6(+åµ,$Å$úTÊŠ{8ÑJQ¹º€ƒÍžà£…íö4Uá TúwvÖLŽ\Îþ’¹&b|áÊiìAørnÎã¼ š4âþðœHž™œåÒœ‚4“›§C¼õÃ!M½¹pßdÿ-·ýxì³Æå%øcÜQ€ãMáC}Ý´I—'+ÙDNî#P.|/ž­v´·5cGo ëÿë\o`$¯ÀƒöSrx’À€¦>¡ÿà»Ùšö oÎöþÖÛÙþ­÷³û÷´ÒoÓþ±~[5‡öÞkn?KíÍFˆ`ýê]f;%—åw=Ù̬--\Ü<ÙJÕ«Æx²qIUÁ*alRqüTZO:"?¼éÄLHBYá÷‰ç´^”n/Á-øaõúõçv*_Ùxv…˜Æ­½ Ël+TãÞœ­’Ä‹Éj Aœn»üûžÉûû´­uÏ…²$ù#ÏöÜ»~ À¥˜¤:T‡á©ŽxË/÷“Ù-0 _†ŸÁ᥊Z/£S}[ó]û[ïçì½¥?gÿ=úsõü°øä‹B€ Ú.€ÌÁC |³¸µ< Î ©&›ˆ©?“CƒÊ°‘Ÿ0cì¡ÛqX„²<P¼¡|Dҹ뺺ȣ® …ŒCi#à˜5_ÓÓ„A𙚃;Ù¾n#z½ñÑœÔÑÀ1Ò¾*¯î³P̸ï¥ßħ`¢6 ¯î«k~‚ÝCù™Þ—ú¨6 ÷ÅÌ`/\Pÿ"È~ÊŠ9ÚƒP¨Á’ÑzôŸ“äÇ÷«í7H¡àS|õçøqƒ˜q@Yó̧úöæ»ö÷î÷ÙÛÅßgþ¾z~\}ûMO\´¡iç{“®¼<.‘ÙK܉܂ÁoY ÉP\`ßÖ'nˆ„Aié؉L­ÞËWÜÅ®‘D§P†tf "iE`=0zb²ÝghrùlˆL˜v1ãr*íÒöâ¼´æY”½„ýNÚz7ÒJM[»H[ C£]²{l¶ÑãV˜*_¾R6íñ°SGÄڷᤰ¥˜ý¼µ‡ÛÓ¬ƒÙ!%ù?¬ýÉŽv;Ò¥Îý*|¨š|bßL R H@I?PPj€B YÝ~Ù³ŒÛ?ß$ãU™ˆ?ÎÙΗFcg´f­KÿSò÷ÑÀù=Ň³$2Ùv§ß†oF¬MñÅýRÞ»õ©úWçç̽e?gþ=öså|Zy:F¡õ!‚§R5e}BƒFuDöS0ë„{B¸fŒÖlò eò‚dˆW"ˆïšïö޳åbG½+‘ý n&ϼ°ÙéTÍ Á¯ð]*)ˆøsÀìZMþ¤êµ'‡œê•aJõ-¹ ·ö {Ьn8CnýóYŠÐhÚM~’‰•³Öõb{ø%ÊÔcþäyëoÀ³Éoe/æÉÅ™ˆ‘2ò­=ôç@SsgÿYòƒ¥,`·]~ð#nõ ·ò .nÑ=~èoo¿ë]þ}þ÷ñïëçãúÛ-RP5mi‹kam¡a·R!mŸÉNp@µç‚ê¢>b¬CV‰"…Ws NÐ.Ù4•|óFŦr3Ág§ì|êõøÅg›`\÷E'Ó2ï½µRÛ9Ô YÕ×@±iNIu´¦‰Š¦¦¸uŽ"ÀøËExÊ*á*™žökì^aç®MÝüKw$Kšù€=ét^,ôˆßVN«—ö¤f\„ú´^ú·ï;¶‚£pxwùñMôªº¨Q/ã–þ&uqÑßÞ~Óþ»ûcîÞÒŸSÿý¹r>-<7GyµR·ZwB;“±÷“óbâÌH%.¾]8åAJ•=Ñ1w ‡É9.î5@\³jXw³‘w® p¸±+_oÞ¤œlf_Z¹ýª9$9b57ÊM¾ËˆÔ$ÜÑ^lÍàoS¿pv¯|s°gwWú&=Ï:¹Ñã=€±½‘®öoå‰u„2ª;tÍQ`HÑiì—ööݾöª²õKÿ%"~iY—È.QÑ ‚ø~¡è¾¥6Ä{±«ok¨ëÿ˜¾Mþcö·ñŸ«çÃâ;ÜN&‹ªl•»F¨Í<ȘÿÈEÐIÈÁg¢Ï,8 …å¢PØ©sÑç@Æ)aƒ'Åz|Uî|!°®ªÖÏO‡øÔ”)÷+—o':ØÜƒ/qÂØ~¥j­s[ZÝÍê£=EåXÒáѽw÷±ÓN=ü óÞ>%ÕeI¾‡+(ËE>É'õ&†ƒ¢°ft\7 Š‰¦ Ÿ­©Þ·³[›àëÒu‘à`‹Ë³ø–\ß›jõü~j°¨Hú­¸³ý®ø­ÿmâùyßF¿-›C{ïUÇ­â(‹v_•¹gpú"/°Uþóm»úÀŒc˜NŽ”ÀÉp¨6¾ó(çßy?Ä2l¸B„§Ú u¥ªâJ@3'•™T´)µi¨ªÏNÄjoQhŠÚ“Gì(ª ÄufUñ·æ…(GÞz¿uŸAåLfçWùsñ“ħÀSQžcø <Ús‚y¨ý¦><°‰ð¦V{{ BÝ}^Úw@¿àÓÔÞ8û–&B/ =åÇ0Xžémüãîäñ/êÛšÚߺ?foÿ˜ýmøÇêù´útÁSÞf•P—Lœö¦e¹ëqÝÆ Cq¡`×äaª2â¶©ÕÇ„ Ĩƒ»ÜqÝÚÊ"9ïO\ù\ÔžtðNø7&Ów (,úÑ„Þ]À=ð07õ°#Ÿí½wÀ¬ìWÜ»{Ì·™¦­œÒ{1®M²ÕÍÞ×èeâTÁþ¿våñ™«¯§1ü‚Ô³'b¿ñl:›Wèíì‡Ë6Þzožg—lã]ø&àn¢ëi\†ŽqÓöÝ¢ˆØ4÷j~Ñü«÷Ë̽¤¿Ìükð—•óiåimøHTÖÛª×n˜y3Ú•× 4ZW­6^{£ È}­@6³íæpvÞö^ƒÙw™/°¢šùË*lof-Âwù˜/v®›ÁýGŽìhó—ùb§=ŸBÞ±<Ù1B3í®æ½}'÷ ß]qWõÖ#øT„ÉäžîM~¢|¼ÖCÊî)߯ßüòÍ¡9B®¾¦R~ïî©'³·€àT¼5§8ÕD 9ÈQtß$þ˜ª½ˆ™ àw£ÄÛèáÂI”Hr×_´÷n~(ÿÝû9yoéÏÉ þ\;–ÞPI&¿z ? 2#”)Œ|{Þ²qú÷´œºv„ÛRwã/Â× µšŽ`ü žI,_G°Ñ\!I#¾4€ ÊãlG¡ÖÒx° áÿP^ñ ø1P°·ÖøÃÍV$i¤Ü:Bá‹m1¹“¯CðuË_¿=(bˆnØtÈ"œ“Kf"c&uÆ[{.ìaJãæÙ‘üölh=^äOЫà8jà1|‚q¤pÊÍ‹ú¶æoÝï}¿&îû-ú×9ïûÐ_Ëæû­¹¯mÕí¯#3¼IÉšæ1jð «u–jV½@h›=?‹>wÛƒBj_côwð÷ayã»àº½•–É(Ô®|é¼ íç Fo¾Ä3VTT‘ÌUFî%¡mª=Þ8(C’hiíÝGÍ8°^£°µÏWÁ ‘œÍrï?sÖ€ô˜ì}—ß¾#?àn¾Ê¶ñgò-àTA•â»úì;‘eàf<ª.%™°"Îæ¶É¦6XÒ·Þ'ÒÛá”»zJ–â ¼ÓáS9G´s©BSwÑÞ»ý©ýwÿçì½Ä?'ÿ5øsí|XzûIj‡6Y0©ŽøLçlÕ2-0½„iÆ·À”¬„N-p¬CüÔÊ{Ïý%ãžž&£ûR“bÿ‘;¤‹½/ô¶¼‰ÄóÜ[ ¦D¬Õ-¾#,_„“‚N¬FÂëLÚõgSæYbF¦?taÐÒÏ1UKÙ6¬þ½ûgï†ôœƒà¼÷µ2LF3Nxœþlæ)î›ÎzDþLì­<å¤-’'<Áì±ÞšWd“°3Ò­ûH¶3‚#½ˆŸ%>ùP>Õûð)GÂ&8Ô꣜ À#Á©z\ŸS“ôÉ\oímñÀ­;¹õß%?>ÌØnòƒÖD¼(—¥Ÿmüv 6ŸŠÍ›þ¶ö‡ú·þéÛä?¦ÿ±|>-?¥•¢''jö¨€I3«ÂOÑNøÚ@ Ÿˆ:lG«áU­Îlt§òsXŸlrò¨Jåâ4sσJäÃÀ&éïZûN’76|r+¢CäSBôlÞ*œ €‚ä•J,ïÖz6ìÖž‹JoØœ„Òº÷ÏE‡µ$hö‹ü£K~»¦£g#oã¹Øìbrª|‚Þê¦'Aðk¾ÂÍ‘íj#æ[k¦$69¡.½SñfFNòr“žk@ºŸkú=z îLs` ¤›öÞíOí¿û?gï-ÿ9ûïñŸ«çÃâs§L9vúzΔP~lƒ™}KªÊ?Ú?¢¤ÙÝŸÀ¢æ{r[g-¢ÊÅ¡;íàmÅÌ*ORƒ{=2W`›å¯Ï%Q±2ª;MLlS×ß³>œ(Åù™I¹±k'z¢úÞæB’ˆsëåÒyÁÇ1~r“½HöŒ•×Ññ: ’ú)oö©:´ð]¯­»Ãåq×L O2ΑSº÷Ú'ôu€‰üËDÆ%n ñœS5W’c2='v\ pÆBÑmzšËùU¸LîùµïvZ\Ý'D€XÌlOQkpR阖Ï&ÁàÞ:mkÞœÙxzyé\Ú”&Öú¤'ÿˆ.–+c§Ý½Ozé¯q“ÇQRCÌO5ð_µ}¹Ë’«¸ÌÈ w¬ìÂ&?ÚC[4G©½ç Ñ' ÂýdE@g ¹½þåŸÉ˜cK=Ôv4ßÔþµ÷¾ÍÚ&ü1ë_ûà·Eóýy͵upÚ¥_ÈbóȇÂm.‘ óŠ÷ˆÈ µV x<ÏHy ™ÍÓz¨ønl½7Àè´S»r1è;þ»§>¬’â|PWÊ(ÜÙ$k®ôFJ^  =UO=(Ä„V-·öéI 61m=—¶þíšêú6ãMþ ùÁìxjã^Ç,ήq1¬×ÖK}öš Uqðþ<·&…{vKÖtk?á?°c¢þ³{[[Â'1•ëÞ¥·ïƒ’ÎLÅÊeôL jgñ¢½½ý®ý½ÿcö6ñÙ߆¬žO«o?KAmûtÑüØ%Hú³É:¤Xì5˜qL63Á§¾Û†€µŠÎÁ&¢MžÖø’ݱ*‡Á]ÈD¸íçªþÎŃ7‡|]ËBÁÉcFŠd·®æÉì';BDòS(£¤ÒO”Üšƒu‘sÈ~eî½G‚pÉÌÂâAÀ]x x`r#ÙWí·Á‚€ˆËë³+|3;rìyÜ|ôƒ€¼½¦É̼µ‡ö¾çz½õ?%?h6Û‡ü1C<-Hº÷ø#$àz4¥êÛÛêßú?fo“ŸümøÇÚù´öއ=WDèFlÎ÷e»ÇÞ!¶ÒËc™â2Elo¤°¶{L?9H¨~.}'~;MÈÑëÐ~òá€_o¢Óûd¼ Q4ÙÓÛù´lžìÿ§žŒw»N̸I”ð‚Jlz'6Ÿ{¾µÇÒïS(óÒÔ– Ùy‘_–¾©½âiÌÓ_ã7KßΣIâSz ¬_꼫â²ÊÎX,û¬‹´» BbkŽyp¹QñÒ;Ö!õ ºH_E)CEžrÑcœÚRš _”·7ß•¿uLÞ&þ9ùïÑŸ‹çÓâÓà §.*A|Û_Rz#N ™¤øä"˜ØÂ Çé$ú=…W"Є^ÃŒ*«\•ÝíÎg¨ìˆí„šF$Bm\Ý0#‹‰à³Ýà®Á‡Ô–éMñ¶* ¨|D,¬±×joÍÛŸ`ÿ;&/Y;{§hÇÞöBù:e/’=BÚø\¿_àÃ=…ç­6kN¨«(±ß´GÙh=Yg{[õ„®qX·[÷CÂÛKIÖSx`b)b‡¸ä6x±NÞÿX:§î¶ö‡î·þ©Ûä?¦~ÿ±pÞú{-;÷ÜcÛ%É1† 8ײDm'5H]TÁèÜ¥‚:ƒk9,†‚}@QË–±FÁŒ?•¸!ÈÌôREž­žÄ ú:Æ‘i=zk¡ŒÚ,¿}Wƒ-@Y’ ÚXR–Y¾·ç˜È-@ Poý³ñMÕéÇaò–_Äk`ÏÌõ¬ØÆ¨·)è„…GòVŸˆßìŸàNÈ3ŠÉùh¬ìw&íÁ jÏÑw4Pbè‡ìŽ€Ñ3ØHöÔø:ÇN‡B•µ§qèîl¿ë~ïÿ=w»øÇÔÿú¶n¾?-»¯KÜ'ÙnBÓq¯+ðÙE&ØgðD󤂌6<À¬Z6€«¢»O”~{êùÓ³'ˆ{x1 e-Àzy¶íÊÀcî܉DqL„Zúr¹ÛÕ<Ìy¨P¹)ƒÏ·öö2dÃçêÕå[ïä5»™Zdû+»Hq:„¤¦§ùà¾ÆJ´2*r{ju§öv”pUÍú '6jWliýímÿÁ. ]¿õ?$=`{">ÜÅk(þ`¦cìÃýŸ^ÆCugóCõ[ïï©;¥?f~ý{åœÚ{­¼÷ž™à뀣ŠRkòiÏ2ÍpŠŒRk0ýì  ß–1†'Jaûc r%ë™áDRÆ‹j­ "/H”¬óƒ„-³ï’®’îß2濳H'Å'?±@¨5¶ßgû&ÌZô*<»¯B -;Ýë&=)1HÅζ^uúÅôèÎÉ]ydMŒadz±æb§hLžé£9V„™f²ÎÞ«„‡Õ#΋ðÔ€ "Q±cè"gìÐÜÞ|×üÞû>s›ôçÌ¿®œO+O·¼€º©‹Üe³:¬¨±r8 .W\[<yvUØ>Z-$¹òÊÓ‚jxkñ&öår O?ÂÊ3ž\Œø¸l˃yI•…êÀ&y¡ö4ìËãƒMG×BCŠ`X¥Ö=l¸·ox÷HÝõ$›½{{j¥ÌAç—»ôb1 «&ú½G¯‹Î쥔)Ë[›_Úã{àå1êÔ!o®Q”†ûûÖž*·LŽÐìóÒ?QRû}Îõ”ž)?oËmÕ¾ÆnŸ+Y dŽ‹êöæ»ê·Î÷™Ûeßgþ=öså|\yûMï5P…\Òê`¨™Ç¾YLž+Š+.Ë«˜Iª¦ÞÁŒ[ÐÕ(\‘šF³ ‡°Vy·DòŽ~`dìç/5gxâ¹Ç £i²´î·9„äj·.¼`O‘ἄ"Y¢8°Àظλu¢ÜÌD¥»³cë<±âñPWGìÞ…  ?ma ncOT–V{¥/¦Ùu—(Lr+=Å80 . ˆ\g{øÊÊf¹õ_%?Dm?ä)Yk¾‚ÜwŽß^"tCo¾èok¿iëý=ußoá¿.3ÿü{á|¿u÷µ­;{bØJŸ5û<º ùÊ%š1 À€ÏÕÎï ¹Ù“?†3ïKðï‚ì2cº=ùg.SŽ?pÕ€ÖúÄq¼K4ÝgôB™~²Í¡Ö„ +’á*p0ËÞÞLÖÀ`(é¾táb·«~.X˜]z´7Üþæ±Ã^£'­Ù6<Œ†Þ~Óž™¶¬b£nj¹gÈ”¸÷KûJ-îm[.ýÒŸ¬Ò:.òWxí²`Hf¿ Ÿ¤³M:Çn»¨oo¿«ïŸ¾]þ}ö÷ñ«çÓêÛ¡ ª^Ñ~ˆžHî£øþøÄ¨Gt@í¨ì-³´æ*îõ'Á|:òpR2BÈÕK:›‹µà€ÞQÙ[öÎ,Å…í€ôË\RÕuTöÖ ¦Ë+#Í‘.P<({ ºêÐâ¥}PîœUcí[ÿA©wTd.p…Mþ Ô=AÖyaÇ6þ Ô¿Ii­/–MA©ƒÔ1òt´™â!jŸí™]Û2ŹÏþ9Yé¡Bô>å·Ü.ÖÖˆ·ñãÚz{0Dßê{7?Õÿîþœ¾·øçô¿‡.ŸOËï@n´¹63ƒB´ó\!<òô‘D²Oj_Ø}죉³Ëý¾hK<ûò…²iØü·³¨š."¶WùÉ·A”Bj'>ÐÝÙ/<ø D`/&gq%m²xbäÑ^vqcÎêÆÑÖ=äáÄ‹êm¾‰ºÄO·å%ù=|ñÆÛZhÐ+Ȱ}«Ï¾Cpl?1ʉ=W"êrkŸy´QÕƒŸúÒ?@Êü%ˆæOùÁ¡úúðr?8$^YÓw>Õ·5?´¿uÌÞ&þ1ûÛðÕóqõù»©˜fF©^¯;bc[g)€Äì¼0¾öÁÄX™­Ö#H…£‰ä9‚ŸÈÕ<¨!|5’áQê¯í¤·CkwØI7±»ƒªÇ!T3{I ×ëëHªõNÓ)¸P€/׳uÿcš¤ö¦¹É³õM‚T—»[L¿EWé:U

    µu[U6è[j ¾0€¤–IcÛ ß“ƒ.4ò(£ˆeÒÒ^qš’Õ(ÿ𣃈ÕbUÅÚÌp—»w´–oíËX€qÈ·î…‰Ù©YH7éÖ ?ú‹z}úCM\s؆Sy rŸ”ê€Ky¯óÒ¶Hqš„ué½Iø<Ú,Ùí–Ñ”:/#ï<˜í9«àhÅmÍÅ¿;?æm“ý˜÷mèǺù´îS4*²G9Æ÷TþôÖ:>Ñ«Jq€L¹ä(n·Of?ÜD°9ÿž©=´ëÍ·¡!¬ë­©Š°Å@Bo?ÖU¶¨ýJ¬ª·96˜Ý ^hØï“Z·à‹^íqŽ åo@°vö/ß g„=šC<åÇ7ƒü ^ù)ø>f=µÎ}è:ú×®>¾wƒË“ìng8äD¶Áò¸5üâzÅžd¯T)©öÿ-»¾ÛÍRÈýý:GÞá=²¿·…桹wëSïï¾÷yû~IþuNûkÜûªù~«ík[uO¹45·Ô›Þ~9ÃSó*WÂlÃö*ŽNn¶‘B„k]PÐ>šÙ×%éœä‡‡"”L\!ë{¤4ËôõSndÿÓö­+`&0WËpiÜ—Lçz pRüäÏýjö‹õˆXgÿÂ>¨œ 6#ý”_àó “=‡Ÿ}ñkü|Ç!ØÅÑ´Öõ/ýñÝþ/ÉÆ‹O£ v¢Âä/ÍñÚIÆEºôN=åMüf¼Hß;”LÈ—Á+uÓ·S,Ï‹ò^ÍOÝ¿{?çî%ü9õ¯¡_VΧ•·¿Ž `—óö÷Àe'‚k&ð\”6™ [*°UÈø8št2EÇìé½®= ©Ì(úµÝ6`§m¡¥bW ¿ÈVWw‰ —‡’& H9RB)žL' êê·æ$‘Ø«¼…ê¹o{ï¸P¬s[—nÜïÒGIŸg*^1¹žR {÷Âòö›òL©ÓŽ;é=3ø2Ò‹³’¡Ïæöò öXS¬|GïCÒg æâMz{ AÊ 0ó¼^É¥7ímíwåoÝ¿¦îû%ü×eâßC-›ï·â¾¶UwÜðäÀh_úŽ·!UÖ?˜ƒ;®-¾°¦›÷Vx áÚ"¯z†*g;Ôøð\Øã±7üÊ‘7’ãi;OE$aÁtë…Ÿ,.0o¯7%dµë{ÀG‰C#ÝÚ“ßcF¹ÙùmÞú'?hR°Ó¼`h—Ÿü¢{MÏ#í5~ò“: Ãé¡“ù­¾@z“‚+£<Ϭ´²êSØùjnhÂ|6U-Ýz/’~RP”oÒÛ²¿†¢~¹ªÞ£ï¼Û¨™i\”·7ß•¿w¿OÞ.þ>ùûèÅóiñ0¢C[´“¡ê¶kªÑ´‚\A® =dîf:¤'ÓÈÌŸI-_]„.v $],»R‰jê{Œ±ðÔ"D!aÒl7üå Àz‚CÆ’p9ì©n|!uÚšÂb©~˜ïí NT³ãíý.ÝããÄÓåMzÞOø jhOžÕkô $l›Œ1ÒS˜öÒ^'Ú½U}»üÇìoã?VϧÕw'üDâ`ö"_ÈÏ€–št¸i`æ1® 6ãÜ(c%ÈžàÆßÚÐx"[_þDàÎ&Át–yk_5àÊëfÞú«7bŠù&¾-Wp¼  œ·áÛå ?˜éA°¹‡úÞíOõ¿º?gï-ý>÷ﱟ+çÓÊ;lRêϬJâr&DúrâË·˜(¦tOW´‹†²Ë'¯Áv©„mLR»Ý•¿µò(ó³7f‘ÿ5’æÖFªOÕ ¥AdÎöÇ$e~yáíŒTO÷ò‘ÃXMÝŽ¦ñn//!‘w»ÀÝAùî«iàb:åw?R£L·,?üküXe@S±ªŽ^úS^Äi$v_)ªb¨P¨Œ—ö<}IŒyùg·þ»ä§ˆW¦‡ü¬|;­ÇrLŒÝ)ßô÷jÑÿ«ÿËü½ä¿Ìÿkü—õóiý=x‚>Ãïá©‹Ðãê„K…l€@ÖõÔÆͤ™o)a˜°2¼IÌöü}Ý4à¥À›íÕS=ó†`Åì3?Uqº$³Ÿ†WÛ +[7<3 |ÚÖïžDå|™\ËÖœ;\{ª¶9»Q€ 9ýÐÐüL‰Ÿƒªmþu _D‰ˆëÈ Íoõ â ±(Áò±É€OµGûI½“½$b_ú¯Š €ÓÅYvÊo¶ñ•évŽß¾'êØZ +±ë¥¾½ù®ý­ûsöÞ⟳ÿþ¹z>­¾ýÕT9ç+fv\¤1”Ž’f½xBx©ˆ­×åö³t.ª‹Bz¼Ñòyã4ã†`È’ ½œ¢Ó¨4˜£qþö̦¹(g€^7k(—…7¨c]–Â5ùûº’ ÑÅÞœ:AÒ\D{ï0dã=Ë]¹K.T·Ÿ™ú=øàpqé=j/åáÅ.ä/¢Jàฉ+âhŸ=“%ªpíÒ‘ü]Ÿùí; «öÑÜã·ïd:àˆ¯õíÍ7íï½os· ¿Oý>ømå|\x¬OTìsÊãcþŠÂÍþÇóÅðÓõÞ9#Ñ‚X=À)(^?È@aƒ¶fð"þ+gËâ­KŒçgu€F8”Äå æÄãxâ¬ÕeKÇN²ÅpNHšhÞLãÖ2^‚6ƒýÖ½ÝêP"1ª›øIâ‡ÑÀ>|䱦ÇÌy©2bâ 9Æ'ÚßíWíªí-ÞÚb2Ô¨ªöäì¿J~ˆMKºÉK8öéT!Ü9~°£¹X™ðC{{ë]ù{ïûäíÒ“¿þX<ŸŸ¿–Xð_œxóš RíýP)=uWügؾ]¤“€¯VVê;( vgÁáßÍ šì5¿å´]qnñæAz éÌÅoÙÌ)€CËô6Ji‚øP½½]ß@¦‘í!²7ªºú螺¾·¯ÄÉí-YVðÞ¡\.Úì ¬»ü•˜a¡‰ì£7uÛ:åIà —»ö¬3³¸l€Õ³¢ÍM*± Ôs¶Çmž¡•©cœ½+‰´×y“è ˜ßÆ>Éqƒr³À"sênkè~ëÿ˜»Múcî·ÑkçÓÚ;€’’F”× ˜X}€)-ÞºÄïo}k­¯¦<¬a¶L¨É¿Û#Nê7À-º¯¡€,£’äàí¸7”ZÅèüÌ0¯Px0¬`ám 6Ÿ˜zAï½t·§ööÊ ">{5ûÞ?LÁQààž|³ËŸ_…QåÁŸš»Ñ2(Þ~ÓÕœv©Xí³8ŠœžûÖ¾è(!ñ]5*GÿUòÒPæM~S˜-4ð 㸿œcË{‚'rÑßÖ~×ÿÞÿ1›üÇüoã?Öϧõwp.‘wÂÑ”Ëß.ÁŠG‘¬÷¼Š™ dή>ÛôžKA¶Ï‘s„Íñ°¤‡Ò´BôrR…OÁ¶-dÞšÕ`°^–T™ER….hßÉÜmàN~%ìV¸IØu0ºÏê™K{{`/|Û¡K÷ ^Ú¿³Ù®ã"|‘ð”⎇Ñú×Ð 4¿ä£G7˜vÍÁ5J9Z_°ó”CÎI¼[±–³¹Írÿ«9{ÇݪG‰b=§ð•R –f;îÖb¯ñ SØEw[û]÷{ÿÇÜmòSÿÿ¹r>-}›øÇôoÃ?—ϧåwá±ÝÓY¼Ê±Ž]Úô<ü!Å6&x=í§.3Ù+·=ô°U­ª,±ÏJ.Xñ\X›Šûð²Mjäa%wû(ð‚»ïJ¤0.tªí wü©©$ylÌ~k 'PÁ°x oï¼üÑÈÔRËMø,á)_?öÊï±C7ÖHˆˆåáyé¨ »lÉvyìü1ˆ ?ÙÙß·=M‘ÃKÿYò÷jÔ.òÛ¿€ÎÏZ/㧩İrßô··ß´¿w¿ÍÝ.ý>õûè·•óqáéMò’àÕ‰Í× íd9oÈÄ a åéæýHqIš]«£óì®ÊVÅ,ÞWÛäùa§Á›ƒÃx¾øÌKö‡U ¶Y4|³vì¬ð¥úÒ;Häžðò }qYV14\Ú—?‚r!#¹Þú7㨒búÇMþ,ù ;ÎküðPƒÿVÒRð¦>x¬›Òܪ[ƒÒ‚Á¥:ûKûôhm³벦ßý'•AûÑÄj¹ËŸ Ø²‹œ¢ít’—©ñ˜Ïñ¢¿½ý®ÿ½ÿ}þvù÷ùßÇ¿¯ŸOËÏ1Ç&YÛŽƒZÄoGP+EÏ"9Ì—Ê!äkn¤à†îy²éVÉ.Ú(v½™„ϰ޵T“á¥rYŸí…i¶7ä+jÞ¸URöšÈý@L°w^ñ±Èùúov7 mwÒk‚ǘ÷ö¤ƒòð™‹ûhëÞæ*PšÚ¬7铤‡"=À_¯ÑÛ\à3A-UûMw‚N¤}¸ç= h%Á}y´ U!uõKÿ1!>”რæ!?5'$„ØÍûeø‘Йˆ;+u‡úöö»ú÷þ÷éÛåßgÿ±zþýÚó³“H¨ÂQéä…HФ…>YÍvv€¬”½´°’€c¿¾6õ ¶E’û÷È=LEœ|‚¼í* 39­ s\‘ µ'Ã+6ühJ±ï mWF¸PžñâÂí‡ÙïU¼öûÀú¯ÃgkÏ#ÂæŽÓ"ÝúÇ)Hö°½lÓMþ‚üÕ ¦Q0æ×ø³ÇN¦·ßôÇYTås ž!LÍEå/츺´ÏÔ\4Ò3!Ü:ûgÁ“k‰g1^ä‡+”ºÎäœûðYïDíUDá졾­ù®ý½÷}övé÷ÙßG¬žO«ïRPÍDSOx$ȒЗ”²Š@#ɉ_tpIB'--¢jA¨ˆŸß¡ˆÖVÅü(äâÛ^i×Jƽ²|£`c\BCà—Jä{û)ô T;PÓ=…i»0¼3Ò­=é"1^åj{ÿ8YØ×)åy‘u+v½‡·ñªQªRéynüÖŸ}'•ˆì´’ç¼R”nÍ+YÄpÎo¹tß$~%üSoâ÷?n±¶îÕ9üì,Þw¸ã.êÛÚêßú?¦ï-ÿ9ýïñŸËçÓòóð’zf§Ú ;6:Ô¢@Û{ÓÃKx0 qµËÀó¡øm)-˜`Sp¨ÀaÏ7ÊW¯…Pøl’nDÎetž?»i¬+ù‰Pd—£M'…ÉÊž±=Á?3­›àØèfXOœ~åÞ×’0à’{%·îIÇä…’)Á¹ˆ/ç@SÚH|*"Ÿ¢¿Šº´Üÿu¨æ‚Ð8nJ¤¡9ú¸µÇƒQ8ú·þ•·Þ¼Òü"¿Í(I¤ÙãL;Æoß1{±áÂßÕ·7?´ÿîþœ½·øç쿇®žO«ïÈxâàöâ…EÚó¼+tF…ŒÒ £²w:v:¼P ×'£ËFíÛÊc'Gú'NNÔJJå3`ј, ºiÕ~Pž ¹)ñ~ã}Âô<Öm96O\„7>ÿE+üi,¼Îafáb9ûWÛiÃëéùüWt ":ÌCãÉåø=tÀAÕ .íÉÕø«:µð!ˆ×rE©íÌh€¡ÖqkŸe¢0Æ­ÿ"ñ1YD³ËϹˆm€µ>wTd?¨ý¿t÷j¼)þëì|›¸MøcÞ¿öÁoëæûóº{2²^Iô&Dñ½:-•èdC±C§ô€¬:¨úµ?K•*j6WúH³sƒ¨Øµ”ϰ'á"WÅ®«ö0òfϸP©0 ÑêäI–’ûq® ˆ }aNnÑìíù$8àº?f÷þ#´”Ÿd¯7ù£ä”&úÆÚÆÏb2IiöK}œY”˜š]ÕÖêç„nÀ×_šW`jæŒÍ¦Žîí;âb×ãE|™àA¯@î£mÀS6*Œ‡ö¶æ»ò÷Þ÷ÉÛ¥?&ÿ=øcí|XzZ›fÎf<ü¢Í“§¢ŽVUæï„6ä³wJ «ü„ÔOàŸÑqü<ÇLKÝã ±JTì1Œöz¥<Òý€Ìð€ôöL~¦€›·JîoNvŽ9º:~¹Îü¾ ÀAF\èì[óðG–~]ù [çx¾ýé™—ì_"ÒI%ñ‡Þ{ì‘jᮂݴ^U§æƒ-U á%¢–‰L§³y²—ʼnӞЗÞí»²ín噸 Ÿ†ˆl©_ÇЩ‘P©ÒœvÅÍwÅo½oóvHÌû6ømÝÊ{¯;?5ÓŒqªÒ¼qàè‡ÀM™#¸“¹ ¨u×w¬z{ñ¦•ß"Pˆ„F¾›Ñ”nìïÀÉÃLí©W¸½ríQÞ`†~Êd©\£9ÀD#°hïX¯ÔÉ œ$µ”†³šíÎ+·öl€ã‘®à»x'O£Ã—¿åç{R½dqËí=|å…Jú*ôù­=>sÂÐÝbaÏðvÃSó­9àÐ%O/óß{/^@5å&<$·`,ÖØóeð$ÏÚœäΑ.ÊÛÛïÊ÷NÞ[üsòßÿ,žkO‹YìpýÄ™jÏ­N¥(1Ðñx¸¿È<û4‚Ty,†•Nôæ^GI×0Ìn¡¶ÒE$)jO˜‘߯Zöt…f÷À¤òB>HÒEìh“=]dòî%¼ÞÚãÀN€·v'ØûÏÔ‘ÙWŠxoò'ÉËoy|€¯ñSC©°|ñt‰]¤éuÁ~,úüwx›Ç­=é@#”Ç­Ò5Èâæ&?Oy8º‚êÏñ“.ਹßô·µßõ¿÷Ìß&ÿ1ÿÛøõóiýùÅÎ{ÃN‡›´À~0A:ÀÒ²:sÇof×À„Œô.ù6àZGÛ…Œ }§ˆ*Èéö/•òcB÷JP@PC ÀpîóL©‹,øVe‰ç•«ÁÛÃI£’Ø”ŒR[jwZé½½-€ ¶Õeµïý㨢‚¼OMÜŧNÌn¨ÄÿSû÷ð)O€~åŸêõ<4ÖÊ䪱õ‘Æ¥=„Kì@ˆqÆ¥ÿ©%Î@)\ä·ïp$òÒ/ã2~È|!äÁÙ/úÛÛïúßûßço—Ÿþ÷ðÏÕóiõéõàLcåáá¥&îHúþp·ÓPÒ½&9Á¸Rÿƒ÷EÅl£Ýk’G~GÊ„*€l”t…Eük&¼0´'Ú®ÙDÞ*)Ê ‰U7Æú$¸Ã›ØüÔ­ÞÓ­9>”Ÿd!íÝ\R“ ±Þ/â7¥O%LöðÐêþ>ô•xxŠðáþµk,É@l\xr¸ÀŸ3‰ëãÖ\üfªEù%ÎîR ·|Œ§øöä Gav¯ø=†/Ò¬Z¥xÑÞÖüPþÖý1yoñÏÉÿ\<Öž›¡ _Ú‹ŠDÚ¥F->úýÇñ‘1,"¹•þ:ÍôXž:¡ŒG n6ÿNR!¨çqY2T»Ïê¤ÎšIL\_“é׿à|†]¯Éî\ß íu)÷j·ÁØ>¯-»xoºoæmºÀ·ÞŠ é4®e¦ý•ýKÕÜä‹™•6Šßc¹‹rp²"ÞÚ¿ºûRµ8üÔ)¬ÉQN‚Ü=‰9óho6¶Ý±ƒ×x¿õ»’÷²ü‡»ü<žþ¶ÐÀ›9†ï̱ )ªtæPßÞþPÿÖÿ>{oñ©~[9‡öÞ+ïtÂí \v_H^˜;õ?z¯ п^s‹šÜ¬òºÂ^…t è³ý;|(à¯äç½ÖÁxC«^s¾hožl¯Zà}XüvùR,æŒB€®.Ó€ÇözEûÉ Kg{$d‘Þǘgÿª—´K”"'ô{˯zËÒNá ûý¿ê5Íöo¶îOð­?Õ{V1å®ç.x²f ‚œ—æäáMè®kJ·î«ÄÏûº‰ß€H8–rº _ìÚ¶yˆÜÔ÷jQÿ«ÿËô½ä¿Lÿkü—åóiù=0÷!ƒË逈Un3jWÌ}Ók%7½XAWâ‰fZôs`9˜Qäù›„üfËŸÀfÉähÉqÆç$·YŠŠsÂ+÷‹O@–ÛLP—~”UPýïÇIÇo&¯ç­½ütø…sÌ·þå”&e(¸‹øYâÛ„¥üTñ½†Sº<(£ÿ:ÕÝ>[Jå#E AãG{Ü”6£Xq^ú¯IòSP<æE~ ÕR<.㧈”ÔÓ/úÛÛïúßûßço—›þ}øÇêù´úv{t(ûlbò-ÆHxîDm§¼ÐÁ\âwÁÛ¥ïU¯¿Pè%1ƒºS†^7c·&c³¥ º™…SßU 0p§›u&Š Á3<Û[C»Ÿ™œ’ yÁ§t·Çöæ™u[ƒåÖ;;5 ‡â%‡»ôIÒG’š"a<sC1hOÜ•ñzrN¶ø”ô”Uô'²Ñ½=”ÊÃ^uÁ.ÚréâOxId£»üËâû9Æ?)áãaÞÄ÷sèoo¿©ï~›¼]úcî·ÑïKçÓÊ;Ò—)Pƒ"’âæ…Q&"ªrÝ ufñèé{Ž#°!Ë“d˜j…EOÌa–‰-®âOÄ$,ÔÔgöïqVPÀVö%A“ÌmÕÆé‰ €¬©Öë³VÏÆáX#Næ]Ú“‰\ËÅŸÈ[ÿdòPþ6­¿ãO}– Ò½JÝŽâ‘XúãÁ#aGªAß휯½S<¸Þi¼Àí¾"¼$G1@FŸG2^Úæ\‡ÐNÍŸÖ6¶Q¼ ÉC”ŠùXÃIÌQŠþÆ# ’ˆºµKó.çGí©JØzïäñ˜zpˆä‹ð½Kx€Öåû<ïaÖó©Óý­v‚*èÖ—ü$¼›øšI3(£hxÏáƒðÑö‰Ü©¾wûCû¯ÞßS÷ý–ýëœø÷зuóýVÝ×¶îž~ U½Ë¢â†\RÛÃø?RäR‹jì{ì\'9ö'U"¤jkãa׆¡Fâ¶]èÉ~^ ^õÖœ‚y›™*Û¥{xAb%é+xÚ&>¼"öû‹û=|ûÎ]I »;p6õAkb˜¶îkã@Û Q·³=ð…Ú!œýOÉo†·n§üó»Æ o{k_ÆÏ¾`”(/úÛÚê÷Nß[þsúßã?—ϧåw\ù6vDþ ¸‚uåCçhIXÁÉ/Èë¶G¯è&½ÊŸ,a…æÌ–YW.1KP“¨[‰ºAáßêã©& ©VUωž€êÀ˜WêºØ$8Yâ‹¡‡¤$[›ž$µ·mLÔ—!Þº'ZãùúWø/wɬ9–Oz|P¥ž­Ýä!•—îÔ<> {H\×]'·ÓìÔ‘.ÍD²‰&•=ßz‡‡“HÚSvà˜l%AR¿þåŸg°Ó¿«ln×ÛÙü­÷¯£ó÷¼mÂóþµ}[7ߟׇ›„Ù1A–·ð~áßpþå‚ÍÁÌ^á‰UxG©ö÷x?þUdª.ô½ˆ¤ƒ!-ÿOãun¶`öp?¨l£¤ÇÿD†:>ê«a†ÇnÊ*Ã\þ'È,Brn«•H,}¤[{Ž8ÚìRŸ·þ͘ž”§y“ŸÌI½MAûñ?ý¿"æüµ³?ýkןX’h[W¸ TZ3þ¨/·æ•SFõg‹Žbë^48‰åå¾Ûć‡s·9Æ1|!wkJb¾©ok¨ëÿ˜¾Mþcú_ã¿,ŸOËÏ#öÅN⣶3<ã!ñ8éÙë’Ù2D¸Fw´5ì\‚:~0 ©ÏL¨á¾Ñ[y´Œé³# ?‚<3GwN_y.O/ÑpP*mºÆ—hVa;na îj5›H êŸþKgïÙWœÙOdHÖ[ï ã‹¬‹7`^Œ4׌;áß#Oàxëb¡ï·ÚÔ»OxOmºg±'oæ0¸µW-–-(.Å[ï]ÂWBý&<ÕABò³‡òmð*Æ!rÎzÓÝÖþÐýÖÿ1u›üÇÔoã?VΦ¿ßËîx# Vƒ·Â|Ð|àeÍÃLˆâaR³0hÉ?XÉÊ/”p uå¹Ú´+©PË¥@\cC‡šÃHÊW ¤XÇÃd±#`x¦áÖ\´RÙ̹’Ç­÷@}íèªj»$|"ÎØ×á×ÐÑ%¹‡ãâAPÿ­9åÁ›AVH-Wóz]º\»µ|¢ˆ?¯Ý“O¾’5.ÒÛ÷_€J„v}ƒVT@#ðPÞÞ~WþÞÿ1w›üÇÜ¿Ç.O+o7BK®q¶ºî· ëOfñÛªêK!Á懲w¬ÌðS §;0dV3;Ć2 …¶xnæ·ø$½Gû“·ª]ýO$¬µçk0µ¼Øhç!®”5ǯÖN=Éhæöî[›Y8Ã}¬·Ô/Ñu઱ãb% ½®£Äþ²ˆ—@ŸëMG‘½Zy[- ;’Ò:±¡@ÿÙ^˜6ö`°u×nÝ«ú)€ÅÐúMúÊKà ¨h/£ç%0c‹õ¢»wûS÷ïþÏ™{ËÎü{üûÂÙõ·­» ?XÆ4èžõ !_›ö^8$f7ê~¢gÛi0A‡ªŽwU‰!ÎÖ ›ir`8JqT±Z©ŠÅ'2Øòv‘ºs¬‰ÐsEÏfûnöÍ  zƒ* L.S-,}=Ô[óþG¾Q°—î¡^i#æ–.âö4¨~­mÃçÀ°ã†ZŸßêõ£Z׊/<^TMMáîíEˆ9ÅYoýgÉ?©@où)Ф#Qt?' pXUPw§þöö»ú÷þ÷éÛä?¦ÿ±|>.?' ‹XIç“özNÐŒ#Ãl¤JÐËj@ú°ö\Yö¨°6£. ›E=ÝzY’ŠHO?¸¹ìQJÑÀŠÍq8xÛ  Ö¬®òܘvÛDÊX»ƒ¿)ývp:ÜÚ³@"ÅŒmáoý –JÈ'ïg¿]5£«6?ŒöáœÈ‹Ø¶üÁêoõààÑ¿úCÐ ö„{ûÖÞ[@„~üwôŸ%?¤Ò¦vùñã H(½²ð?~œ,ʸpxÞúÛÛïúßûßço—›þ}øûêù¸úŽÜŒ^â¥vyE¶X'zÛ†„qª@6xÑã¢ûª Zv±ïNüñX$€ù<#J„*†SáÈà÷ðuÙF‚´4d§2‚ [råb–?Tp”…iÏĆ^Kp¼½9• õVÆ­û@äÕËñÞâ+÷"ÂG˜VuÚ{øÊ•§¦V¨CjÿRß#ü1‘¼)µ03¦zko[Õ¥uôoV ò“oÚEþ?™)Ã4Zêeü‚²Ê„°wNýííwõïýÓ÷’ÿ2ý¯ñ_–ϧåwÜP9€);•¨Ó”f î €¬ÿxƜћò|Z¹õ©ˆª±íøýØ×0C§#ô{.‡¹ 5ƒ];öÛ>KZÙ_ëôU°dÊ2[Lúi;=­cß^ÉØÐ"°ìÕŒ±íúp]Á‚Æqs³I)uiæðpeÉiX•7¦@c§X²þ½6^í›ðm9"ìýcöÁ6D¹ïMþ"ù‰Í¬[û=~¬¼ ÛPPëÖü­>XÞtBö&st>àîHkÔùÙ¼QijGè<·î‰ÅØòb<ñ&>΢ˆW_™ÞÇèA½JÔÉ…>oÚ{7?”¿õ~LÞ&ý1ù¯ÁŸkçÃÒ;žøº:öSH‚à=‘wvP»‚€®ÛAL¶5:sãÒ8ª© ‡ðÏ^{)ºÏ-ã«ä6:ÇQ´‡&ž¼8'S¶ÙÀ¤P®Æõ pñcê:häû¬—x×ÈxBûÖÓ¿'È˃åïÞm’B'©¦r‘ž`:¡²íòrü<ƒ)³3»¬ëò—îl‘siOØîÍB~‘IìwižH‰*.—î …›;Û1^.âø> ®äœóeø”ÆQŠb÷µ võmí7åo½S·ILý6ú}å|Zw¬·ësrܧ5áB€¸0·ï¾'ð(…¨‹7²<çc<“cf4åÙ9;k @¨/ú2LÀ)=!©A|`Ù(ýù E$5.-~aˆØsAHí1dôf ¥.ä"3 ©ùÚÙ¾®¹‹~JRõÎMB`îã1Ó~‹ž$z´ÁÆþõ¯sä™¶ÜŸ‚Ÿ—æ°C"È›ó±[ ¡Kˆô[s ˆÈæTvÏ»û•†@I `¹iܤ·’@ î~ïc÷«“dèTÃEw{û·îÏþ÷¹ÛåÏü9þ÷Â9Õ÷Zx;FM+P¤¶}“±À;ñâ¬t¼DVU²Ù1ùì$‡:zlk¥jÞ‚cúÙ“-ÙÍ6½šCû}[>y•Œ’H€Ù³tì;‡€ º²JaÞ3-/©$Ý®“SËá舙•SnÇîÍAFž™ƒ6õ[÷™ja øØÅO¿ÿýsøIyw‡'ýR!pj'`Â\!l …Ÿ4oí‰AµrîÏ[ÿ]YM!«¾á^ã "š·áÛtÁü0r㢽­ù¡üwïÇÜmÂs¿ þX;ŸÖÞÃBþþÊß§ü7›G*j]4!@”á°ŽZ†‰f[±8Ì•2 Æá2ðïÅ1'âxh°ƒš©Co@òX³Í7ì˜+˳„¬â¶¶—}ñ7<¼—ÓöÓÔù§í;ÅéNMð­=©‰‘³TnÝ›:2Ä–õ‡ää%}‘ôT™9ÔÂ>úBôÓßÁ×7åܦ,Õž¼ñIß bj¶ó(ßšƒ{4”R¼ªÑ·î? Î¿·\.Ò+²fkÏԑϱW‚=$òÃ#qQÝÞ|WýÞû>u»ôûÔï£?–·•·¿Þ[]¥'ª& ·r0VA {cv4N3à?âó¾ ïæ'Ûå?á¥V±­÷Íôàs¯+‰”øÒÂCå o§m‡ö¶æ‡ößÝŸ³÷ÿœý÷ðÏÕóiõV)°¬òäÏÅ36(kËÑéåÖ%Å·¹'Ÿ ó¸ôÇ®²¥ñV[¹kÈä:j}ì2V «lO ¿ ê~®¨šÂ%V”½ å«uÆ‚ q(Ž\EzÜ}£Í+â¤^™e[ï¢WÚr“¾HzÂÎÓºøÃ Z}r‡Û¦;{vøÕ\Qt:Å®PH„c¾4ïâ´ š’ÉK÷]ü&q!Ñ!¾àHìœã,Ê—áÛwضgÅ*½¨oo¿iï~›»]úcê·Ñï+çúÛ/|í¹™ØÝ72„¦¦¨üfÊäGÆhÐw¬ïÅKø/‘$* “vF‹ÍQèÍ ÄÔnãÆÝ?p¦/^DÚS隣­§‘ܽx¬=Ø«'x–ÚC!@úåx„ªj%ø2oíÑ\nhá nýGÊ€#ÈÃùã6ù!!4gïÍlã‡]‡ /ì•1›þì;ÅÀ8Í4Mönµ3&„yky%›ø˜\ú½âG¯j¾‹¤‹Án€ÖÏá+‡;QŸ*8¦C}{û]ýïîÙÛ¤?fý±z>®>¿îA¤0ƒÁì /@ᓉkãy"J¶ö¢Ã X”šö`|‚2öVµó߬¶®˜V 2%ƒæ êØÏCx®Â'Á£™ÇÂkË]ø]Y/L2a‡õ·¨6Hä€Mµ²…¬ð:~BR¯öøâák'»òÒ¿Š‡{Ãêq‘? Éoã\@ÜÛøYÍ€£)xøFþªï³MN éqîS2ÕåÀ¾5'SCÒ{æÒ=a@…`¦JþŸ PÀ×”–/Ã/Ð7Aèf¦‹úöö»ú·þéÛä?¦ÿ±|>­¾ YË0¸#­žÙÂ9í#ëBBC©‹üž‰Ï ‚Ý\R;ǵ4O±qô¼¯®ÎõYÛCil÷è3e8\0”QÄjÒ+” ¸ìt½So“ü­=5uàxäUѰ÷í’iªoòcZ¥ÖÃXý>U癫ôÇÙùRK%±-B{³MŠãôxk n‚=»§ÐÈ×”j¥›ô JB*£ î=HŒà€*ÿàÐÝÖúÐýÖû1w›ðÇÜoƒ?ÖΧµw\ù ¢vHx>ñ,®Aš¬Ã”À³ÃûŽ”Ç¢ï¶ jmð͕Ԁ}6£¦q‰Î” à¦ðëÐD¦µ] ~ásb©Ì;G§8³ý‰ësq0M€® p^7ARß¡±öã9Ð[f?U‘ÌŸ½ )gHœž¶I/zWJ˜Sÿ¹±~>ãa£ç ðöoå‰ÞÕf:{ªˆ.ÜVé,@½yi_@ÉCœ[ÿöã¾€¼8ÞäßÊ%’û/ÃÊÌ^àÐØÌ‹ú¶æ›ò·ÎßS÷ý–ýë2óﱿÎ÷[u_ÛºóËž‰3E5åSØ[fåÆ' ÏìÃ`­U}ÔoQÚû£É°—7‡I,CüR+ ?;`9«h-‚æk£îOWÍ ?Ϙ{ –èùä¹Sð–,ï–­¢öOÙ»ý öÇì¥'íÝÿÁ ¢š=ⱉèºý<áÌŸ:‡_£ ”ÝýI¢{kÈ÷È·ùø~È5ÎJüMñÖ òŽº*ÊîãÇ)ßJHáq³ú‘Tçu޽“ ö2Çÿ©ºwóSõïÞÏ©{ Ný{ðçÒù´ôXœÿÃ÷þÎP‡ž ÖüN˜Ûü/Ûf¾F°Ëýs'ÙøSþùûÿ÷¿|ÿ¿¿ÿwŽá¯øý?þwŠoõç»Ëò dŒ~ ôS€mÉa'ÿ§ÿÛÄX¦Ë'A*AÿšKv².øÐñcÊ‘‚ áû?éNù?¿þ³ ‰&ú{‹Ž$Þ.ÚÿçŸïÿú¿;ä¿ù?¾þ‡ß*ÎñüSyZeo¾ÿ7kñ~ý?ÿãû¿þÙðÒ÷ü¯v-”W·¸•€Àñnÿãþú¯Æÿãû?þ¿ßÿí| að§³»ÄåøÝê.qý$1±|ò—FV·§ÄóßJ¼MØUâvHünu—¸’Df¹ÜÔí)q ÿVäϪ/AÊ2®"Cäw«»Èó“Èð“ƒ6”è‰Èeüt+‘ã¿yªøÙ7W‘K8D~·ºŠlçÛ‘'ž¥V'a¿j9ý;‘?Ÿ «ócóU(þÍÚs¹‹N'?½mno»ßÊíÿ¥’ÖyzOçǦ[’^ÿøÓ^Ë0ØCÞ[Æ?ÖHå$é¿=vI‰¯YçÓù±Ù–¤×?þ´Ç$é{Sr^íXtÓ%ý·ÇÂ.éøÑͱ±–xÿâÓ&B&{êoæ¿«·a ”þí¦ßâõÿüƒmï¹;Èe»ÿñ§ƒ˜<–˜DìŽQ+Ò%ý·{}—Tˆ¿·ÉêüßlœûÜ8Lr°GÞ’ÝD˜~@’þ—nñëùRÿÍÆ¹ÿñÿÕÆi·¸©Ól>RÓugIÒüHš¾ÿÓ×çèŸûQó/ÿ×_›xÿú¿ëþýkÿY³Qâ÷ÿöÕÓwíèÝž!¿ #ýÛíÿ6ÂÓõ÷ÿ×wO_—·Z›]øŸþé¿ÐþûOß¿ã0¶êwŒÀ^R‡‚§Àdæ{-/ bŽïöº2C¬ Ù¥1€›E!Á äß–;‰ÑMÆØ½‘+¯Ž>šÊù!o¥ä¶«½™åð â·-ꮤ(äJ4’ÛHÁ‚Õù›îŠý~ŸÓÓÎöfÈE1N·[÷®V{_šaß/Ò“¢†VвØÇÐg§†ÞA0vÝ«u\R1±+#¯F®ÀÙœ§¾-f{ÁÎyô 8 K«š6â.¸>“ÍRË(_Ç £°¾Hû¥~i×Ù«ñ¦ñ¯³çmƾ7±· ÿÚ½­—ïÏëõŒôö*JYLÂöÕç‹Ý»D„$é¬ %°â(v²¹OÎR+/äϵ/äJQ¾ŸŸY±ßBà”²ˆà" i ŽxòXQøtƒYE¤›Õ>ƒ4L¨ªý9mªp=ÚOçò²ÓnýC”–›€ãÚE~å-ÎÉV®ÿ>~©ý©ÁÛ¿õ(¡¢,™>P»"f·æõžÅdt¼u_%~%boâC«ì!\âmðMñ ¯ø<”÷ý»õ×Eõ[ßï©û~Ëþu™ú×з•óýÖÜ×¶ò´6цÃöÝŠ´bg‚ÊOK,»L¸ßEñ6íjmë´‚+ œ:$¯ýeg¹ŒuÚQÚoƒ´ËEßùuJ×yl¯)¼ù©\À§NK€©!.-O++t¯H=šÃitš|wGçP¯ÙE²*»ß²k™#»-UaqCšHJåUAóVšÛ…9„î?Ûª©@’ß³=©\8¾ëÙ½°¨ m%ÖSx†Ê#ÎUËkäÏ‘7a2‰°sìz;[¿Õþutþž¶MöcÚ¿Ž±¿—Í÷çe·Å´ È_™ªsÖØ ¶ÝÄÏÏBq¬GuÒ|·“ 8‡÷õ]ÐÐо †­»òÏåAú§Ñ¿j°ó£(ªT©ëãR0¯¤ü|7™0`\h\Dê†'wí­mEeX5ìøhmïšÕ+›Ý3µýlÞ±1zWªÙ׿ŽQ³B‡gÈ3"v­ª\áS--u¬±?í¿J¿µ‡{ÖV¸{ÿjß%;æiÜÄ7Kd½YYSûØ¿øží¤jïÇ©¹wëMïGïç¼½¥ß&ýý¶fí½×œNÎÄ_PNWêdæ $ö¦ UI™7Â!šúžÔAOФÆÄô ÷ßîMûNYÔÌ`#(Ñ &Ö†µž9tÿNµ5Çwñö¬-0‰^°;Ê(ÝPžßIJ(`¨Ùgp.UÿXÝ(Ø›³a©T13fžÝOÅ5(Q‹n¼¥ÁÈþN™mƒ·Ïf\ØãC»î€b£|È–‚6dbn0yäˆmísùNÙã¹~]w ^;gß.¸}faBÞ™S÷7Ë’4¡Ð97½íµ¿ºß§m—þ2í¯ÁïËæû­º¯mÙmIíÕõSÅbmE€Õq‡ {‰]0"Ñ~•ÉG{ïÍbÙE°ì¦Ó¬„d©wÒw³šE_ç³KÈŠ®rö$ŸRoC¹¢Ú‹¯‚ŠóØÔ&*ž7¥eé ³å…Å}|§ ¾]oíMwxòš˜½/ý7jfwÆç]þH]v¤:qθŒ³ßãÇ>jj‡¾nŽ·þ€Œ„ìS^§Œ’‹l: ºµ§ \„J¶îÙ¿²‹¨¬äÌ<ÅObP®Ö»-îËðèwŽÆúE}{û]ý[÷Çì½¥?gÿ=úsõ|Z}~†‚lF Š P{ßÛÛGHrn°×à[€U +Á>Ã5J©ñÙ€I!ªÅw®(*6´öZ&d5}¶«Ú¬½2‹7Ç<´S#l–wA‰°…ľµ»Ù+V(Ú~-À0§JÙ£=D¿v¦B–R/Ý“F ^Kx.€Mú(é3•e4¯Ñóð¤Ü©<À¦<ñü’ ^Ä3°p"­ 'âlO¸¸ÕäωKÿ9I|³Ð€§9åÏÀÂu0ßa>‡Ÿ…ç*ë‹úöö»ú÷þ÷éÛåßgÿ±z>,>­N*•¾ÊÊØAú•o[ž¸Í;HjäÌè{ê‘ò<)륓Àã߃…jeMP‰DÓC ŠnEÌŽð¸Wp‹2d»y @‰*¬VÚCô«„\*³©(Ÿ¶—ºØl§û öödÓPOª$?ú+“ýJÚìM~1c‚7U|Œ?üiÂc3ó½ý¦?€¸3©ô~“R„I«·äh-u4pÛJ¨öt=;ož½É»|^ß©¸›¬¶¯ËØmïÆ)øzζMwGóCõ[ïï©;„?fþ=ô÷Âù~+îk[xZš¤OÛ¹Ò­{Œg`T›×,2Žl£Í¶KÀúÃëŒ[Ð1ù"L³`7ȇ؀⬠?z"ß©Im¡‚­É~¶MCEóJu$™ÔJ˜¶ÏÝÄ3ËÚ^“š™FŠ P+[;’·N˜ÔÞŠJ,8šW \lŸÎõÛ{‡HrØ«#%6Òƒã_á>\O²}ìð´\pËxûMw¢ FU­\Í~ TÞÎ[{;(;$éøÖýø“²ã›ô$MîMò‰.£àrئƒDû¦½­ý®üwﯙû~‰þu™÷mä¿WÍ÷[o_ÛšÛßìêbª>@ºý¦*©S„Ò©8B¡ü‘å·˜˜È›^’Ås‡•¼_äµPè¤1;sòδ?QÂÚN̵£DþIN >kQ7ÀúÄEAW@®öÚk¿|“c?Œ™®'çÖ¨9|¢ËìÝ~ 3UòLò.ò7« ·’¯ïáÚæÆë‘l µ7UA“Ey!oc¹JÀ}!±âJ9[Gý #ž˜½kÞ'"yì¡}orëùbÿÂΡ‰h´^/€/Ûƒ¥å]cGë·¶¾ßSuH¾Íó>î÷"ù¸Àüò†¸‘» äY`>ójŠzú@˜Å6qJMNŸ½÷}l\PDá’ò‚ýì¹@E©è$ËúϬÎ~ùUq:q¨pybì@!jãÏõÖíLH¸Ôª[_¸ÚÎ_—ÿÖÞîòŠ©ÔrJ—þä)àZØ}”.òÛwà°ìÜM>9Ûø16»=*á÷•ƒeÓŸBªvÊžW{ˆ/) #aölNî3¡DÁ\ž½Wö 45^¤w(¶Ñ1x§* pÌÊÛšïºßz?æî-ü9õ¯¡Ÿ+çÓÊóµYTÕ0^ëâõî¡TVÿèþï4âXúÎTWš–]FIX÷¸ŠØV’Ù.¹Çe—Q“&NI}·WB—-…[‘Š ó"®ÓBJYب¸á%ÚÝJ®L ½·æ”gÛ÷Õa0öî!(»ÇlTw½mâSQíL6ú£z} jj‰ ŽÚ¿µ—Uo@Þ˜í±½(¹Áání!åJäÖ—üã;?åïÂ3»qº^FÊIa¾éok¿«ÿÝý9{oñÏÙÿX<ŸÖÞî?â‰ÏhAþ„Ê‚%Ð!~è„U!žö'–"pXxxFO\»SqÒ=Ñ„jÐrŸ?/dû}¸îyØ÷@å*\+åyaS•ÊÐ!YáߤÇÇSh–Ó,µQ3ÉVK˜–ÔgÅ[{ I% eÜú'P† gªèð?"?0íÝ£SûøyPTUœàÐ_$±äcGð'j%æZ¼´××·Ùž=^ú牌OfràNùõĶ+¾ Ëðy¡›Ac}vA‡ú¶æ»ö÷Þ÷ÙÛ¥ßgý±z>­>÷‘ò> Ë~r™nìAO1ß?Zp3AµÈ=A¶8&šY!³¯õAÔJX$þ"‰^ÓXÎÖB‘‰ÁÌkßꄃnî)ìh³;¦ø*³zÜàf¯6­˜én?nL)·æØò•LeaøÝ£À™oÎ!^ÄgpM·"h„}ô0ÿà™nNCphì²É©ŒËÏê¶sgªØâÖž{0É{®ÝµuoÓ‹ô3CHx‘žéo°^zÚÁ1zª! .ìžvphoo¿+ëÿœ¼·øç俇.žO‹ïq á ž€…¹g°;³ýÉã@ Ä· ‹únÚ¥6·÷ºnZ]$¶:²‡Ôäq÷ð|€{ð÷aØVÔWËÿ Wæ‹zk:úŒiŒðwÈò˜é^·Ÿ§Z%¥[ûä†u™°¯îù5›¯`wŸéí;ÒÛ½äl“ûèm~y#¥XS{ÜG¿µ85ÔÀöšmËL€+Nâr·æâ›¤¢¬ióÝ ¤Õ|Þ7ñáÃ,„ÛèYît)ëE{[û]û[ÿçì½å?'ÿ=þsñ|Z|ûs=/6döŠdú•ÆÎûÇ• ²Åѧº™'ï¶"Pf‘ü{‚ûØ)wÅbÓ@Y'€^me(ÂÈòö¼,¹–xJúQ@®‚½×Q ˜*§†»z;u“”Y[{ªýìÚ Âö¾ô_ äV®7ù‹äw$µßÆ ?ÉA,õeeÆg£bñÕ*„à³=gKe³¥™.ýˤ6›Ž›"_ägqA^ÒqŽ_ ?À§`è\ô··ßõ¿÷¿Ïß.ÿ>ÿûøõóaù6)‚DgS°©„•<ç#™+쎹ax¨<õl—à´}Å­)Oej×@Šnƒ‘¿b><Û/7öá7/ÁÁ#½;.ŸE•'Æ;½ÁiþîTk›r²†ì 8>-Žmy4°“üòy÷ÎSÀ–¥UÊEú¢Ü³A*ZÈËÞø=xŽ(`ª‰a•wÿ¥»¢ä3 §ç¿éŠ„[fä[óå:ï…¼[÷]âÏ¢jï‹øÊ&´ÍËð}]5­œ›ú¶ö»ößÝs÷–þœú÷è•óaÝíÇ©<öf%Ã-æg7ð¼»2–ôFƒ2ÝD©ëlÆh‡Kâçì2P¼Òüc– ®9Ø ÿ¾(J\q±;R4¸ÙãÎü 0¤Ü‹¾ýÅHê–ó w@ Ų}‡ý>€±aÞÚ+ÖVg¬½Ýú4¬©_w×_ùm?#² nþ„G~ß¾yX¤ÚÖ÷·þt·wjr‡ç&UéšÊbjñÖ^©{"¤žnýOÉßà>L7ù'ÅoàhR¶{ÿT´ÉL§õ¬ØÔ·5?Ô¿uLß[üsúßÃ?—ϧ巟§£PR3`U2ÃÅþ‡Ù!ä\8g„ǻ’ p¨>gq:×åŽX'$€#|Î .†EËÇ‚·6;›#K`Ž”œ:­ãßK—‹Ùž­ê ™-$ßíšÁÇÌJ´ÞlÍë_Vß~ªªtž+u/ Ðs3ð|ùGÏe³ØºÏ^P±aÉxžÛQ]àï*§I›~·²HZ£ˆËõBY@6Õ aݾ6ŒAÊ[óá¦ßã—SÝN²@ÂǺò~ë›É¬¢¯ñ+3ãêš±³}¥gy—þ«PJ:$¬òWåyÚ˜EY.ã¯Ü3@%q8^ô··ßõ¿÷¿Ïß&ÿ9ÿïñŸëçÓús_)CÆÝƒIí¹Œ„¿ ʵ6yÄg•z™¬±-tßq@W’a.ñ©œÌIó½@R×BZ%/ª"±O í’mƒ£~hBìA“5)´›@dƒf£¬È1à¸v“6ú+:³ìHcœå©Ê’ꬑª²ÌæIÐ’¥¹ÞÛsäò˜áÖ}®F)§ŸØ¥·Ïv€Ù>öLú÷ÐÉt§ÙÞë¾^ªSb~Ép®´ü·ÞØÆ©TÒ³y£œÇŽö6ê»k•ò€ØhÏŒpH­AÆ™8›(È<ÇLŽ64„¶ÆÆ×®²³ù¡ò_í3¶Ë}Nø¯Qíëåûóz;^GTšŠZ•T 0iî¤VÈS„£/Aaæ²XÏÈ'¿#XÀ5%O( E┘+šhÿÂþ¼ŸðZàŸÌŠêå)V€¬1 ¼MßñÔ²ÈO±B°“Gˆ^ëÃҕ9oí¥xXu§+cï¿ý!UÝ^0Á}>›üà²YkÊ×ÇO=Ô¯ñ»ê!Py܃oýE‚··sÊÏó » Oò¼µÇˉæ­ÿ*ù§HÚ/â³RrI)ÍÛðyhìœÆM}[ûCýïîÙ{KÎþ{ôçêù´ú>Ð`Ú 2WröÊ„9Ÿ´¡â&6xôÜ:*Ì‚^ü·@uí&3|Ø‘îØ•Ë¡ÚT Ù^yAu¦ýÀ“Vªœ:Æ<•¼#{º–š‰c»°æ•{‡! ðÞœä6fÁì1?¶îyz2Ñ-DЦ ›\-…cø$Òš• §õ¸hïÝüTþ«÷sîÞŸsÿü¹v>­½ýL­ÄxÁ‚PB¬PS“ ¦[„ñ©€v{§3ÙïböDBÒqaÿ.#ûwýc\GBÅ,l¿6ùq;¯Š JŸ¿ ±Ê;²$Ç€…6ë­ChäÏ„èOB»¹åÉíÖö©.Š?©÷Þ’æñ5ûMøŒð@쌕„¹ žU›ñT˜åÑ‘@À[ÉŵËëŽyæ­}ÇëŽc¦„Kÿ$„¯ÇM~›-"A@kÛøçgòÈÊÓ<õ·µßÕ¿u¿OÞ&ý>õÛà•óiå¹ÇÉ6<[þî0¡¾¿âÑðÜÁùÚíчH*è)O¬ká oÞÊMŠ]}þ$$æÂ•ÜUÉ“¨M}‹;ž3u²¦I‰‹BÊS«+¹‹:Ù¡ÒÂU½eÙ ¶Ëc{{•NòÏÝÓ ÷þ!-Ôƒq(Oñ?K~{X8—ú1~[]~-áÉNù­¾dúï­yZán¼ð¡Bl¾·õœLÞÇâïKßY²ÛýÌdì²»÷‡÷1hÅ´ßÇNÀö+òIÒ¡»³ý®û½ÿ÷Üòïs¿ÿ½v¾_ºûÚ–Þ~×S#@”0™¡” d& 60—Ã?*°æª'¦ð)p3R›ÄÈkð& þ;Ž ?ÁÞºS){€×3§:CÉf¸×KëBFT%C•èGçUÂÃa×ÛMx˜ƒI(P½\ß@Ï%-'°ÊNåmí7ÝýïS·‰¿Oükð—uóiÝýu9•$nÚ¤óŸg?Ú˜?.'¥ð()¥ålDrJwÚ`C¾ =I*.å¯Ó§(Û¶¹Gß^$'Ì'B‚  Éo·D^H«á §¨zÁž3ž#žÀ,$‘ýÚ:R; ~S\n•­ó€wÖNgsÙ…é™k5¬¹ÝÆŽ;>*>∻î8.fêëÛ…‰Ë#Ö[ûBÂPƒ¸5Õ[ÿ¸}À¤Š?5où+4 —åz?V"‰ÖE¹èoo¿iï~›»Músêߣ?VΧ…ç¾z¸PÛð„ÒlšæµyÍ“œpC<éž›ØCY2n¹ðÔîÉÎ*tªkÌŠu$ÅåìÎNi¡ûwVЉ¿*³쬠ÚJ/²Ä©×(ËÕN-œqxƒñÉÙÏcùx¨ooÞþ t3T{¹uÏËF⾊ÒvñÅÇ©æÏóì×èí{¥´Di½Ï~kÂÓP¶=ž€ÁTÚÍu¶Çým?ÞI©¸õ_$¿YgQï·C~¹¿íÅe·B¼ŒŸì0f WßÞ|ÓþÞû>y»ôûäo£?ÖΧ¥çç&u{„–<ó†â³~ƒ§4“” ˜Éèu™•©ØšËeÅw¬pAø{Nÿˆpþ #gàËHBw³Óô—¡osj‚Ùæ*³5Üì´ÑÛÆü‰D üqv£˜J¼f!ó’p„ßÚ³6löMžÕ»÷;Y¶cšÝ›üIòûóŸPÃküéEëOÌ:W—ît ¤è…½í<à QaáÌ—¶ð¨‚ßffmþºt]$:uÞƒ›èún—«­<“-C'«4ƒ¯ÐcK‡êÎö»ê÷þßSwÊ¿Oý>ü÷Òùþ÷ëîË‘ì„wdW qP޳+²¶³#ÙEÊKÈpU„<¬$ìÊž[i¹Í±1±¡‡íY¥G`^5аÄ3Ïg¢aJ `×Ωâ(‡í!Æô#ng•4Ë=Æ 4}Uÿm­¡ðvmÁ¥ë¨—xú<¸ñoÿN8aû¸ùkXÎHÃY6èKoAï6{Ó®È:5ÀªÐééÚ-·Ã7¶;añ`AúU§dg4´a*öÅnóE¾Æ|œ^-‘ÝW•¥E°š€£2 Ÿ… Û}á, ƒåþ¹‘€$¶-ß{ÎÎÙòs§Ü»db¹óÙ~¿8æå¥=Ê ‰­xéüÑ?I_fÏDân7ù‹äOö`M}ùü~_´P“,´´JuÞú‹â”µÚlÊÐ. 5*îu4·íeš fе[ïSÒƒ  Ô‚]z®ÈNñDÅ“p ž+•Æ{QÞÖüÐýÖû1woá© ý\9ŸVÞþV/@ŸÂî š|ÁŽ-–É?næü® ê}ã $[ìÜ¥(“…¤^>ý{ÁmKN…ß0]•Å“šý"$¤LvæwŸ'®ŒIºy%—kª7+·éXíèXCy¾ÊжßO€ÐÔ[ûº^p¨{ÿ w¡¤‹üeJ~Sõ\ˆDïñã”#¿f:šë¡?¨a‰1/¿ NtpI29ÛGù®ñr¶xéŸ2 /ì ¦Ý!?.T*¤¢}ÏñóÌISY㢾½ù®þ½û}ú6ñé߆,ŸËÏ‘”»¢­œ%JĈ:¶\‡³ãaB0"{*Ú _Êb4s´]x»ƒ|MÀ£U¡ç¦üôH ‚™¿Co¾uáUÉ“1¬["ÛFSŸ wS £ê0SVáeô8nÍûamPAQ/ÝŠZìXq;_ć™ª E~ï‹þ5|αHP&OÏQÛ´¨khØN’'ƒ n>Þ"¡ÞÚ“ÖÀ¿ƒ÷üìŸÃÅ~Ÿ2«Ñ.òT„G2ëz?pv¸ÿ+ìÚýííwõoýŸÓ÷–ÿœþ÷øÏåóaõý,ÏÄÝô—[i$êžÒÜ"‘)XLÀ|ayYYøzý0z(AžœŸ–…qZ‡y3Q¸Zç|Т)ÞíX@SãÚËÆï!è½yçái·èŒ©_ºùº€ù­¤ØS|@ɱ,øš×úü=|r@"ÕË ¶=úý¥>u7À;ÌóÁ„E“L©rk^a­ÀFŒzé_—ŸÙv Õz‘?‰›Òþ–úeüšžTõ±²^êÛ›ïÚߺ?gï-þ9ûï៫çÓê;,Re(ÂõåÙ øjÍ,§ÂCð3„Þý+eÓ”º–¼¬ ^q©T³:(ˆC>;ÛÚ¬awÀØ©XL¢'K@#€ˆ2=§¬sÆØÀ½¼…/Œz6ƒÜC8,¸°Á@_¿þÓÚý¢u2Gns k ðxOÿÈî; ÁHÜÖç¿s„ÀÈàÃ_µiÊzM!ÕŸLA|'6 žD²·ÏT·hfrCëè=kÒ˜¸'á³2;)û,J—Ûoohj’xÈ(ÝnSÝÞ|×üÞý{âNñ‰[7‡úÞ«n·F³RmCÀûà.]ûkØõÒrÏ›5IgUMjý# §t³»ƒ8d/ãêß³b-¤D¯±Ø¬Ô Ì×ÜrÑPÔxÈFÖCKOúUcXcµcôÔ‘à T_btuÜÚã½€'‚b™[ÿÀ]Q›3Bõ.?Ø$‡èàöÛø©Ÿhx0ó <çoõ1¸kÚ¿xÜ1ðeî˜æ­½…'`·yÞú¯’–ôxŸJž]{/ó6|e‚vÌù:.êÛÛïêߺßgo—þ˜ý÷èÏÕóañ±PÌ„+ûÁ\ÛsFy[›Ã~¼ÉÁÜð±zq 7X;…’ÑKß.XÛÄM“ü« ‚í|2«iÖoï²6õ5ª²Tb{ RÜ…1˜«NRýe®_»±†Ðü€·)Ê ÚÚ Í¯‚÷+ëëÕ/ÃÄUB`—9¢ðŒkßoãN‹!¯¦ÜT•©œÈAÎÚ”ÅjwáÞ–1ä ¼.ùê_G¿Påð2î 2Ôc§é´÷˾¶@¼ÔÖc3.?N#¯G¡¢ ‰8±6Fcg´æÿåÌ Æ_Ò ñÝçA*Hòûr¿¤Âàõ­`u¿³å¨' =­Ôn 1à0nŸ@–v¶Î)d„•k‡¹ö3NMŽXÀa{ÿôÈåy¹Ž‹ü²Q^›pØ>~X»†?Àa»þ˜yØy¹>a*|`úýyiOr€Q5Šwô¯Y—0+—‡{cŸð &#ÌE‰µŸÛ\N(Rg'Ö®>ßÞ«ïþ˜='ý9ûûèÏÕómõ J`fD¤Ù_ì¢AJOIöf'm%é Œ©~&Í–B^38³0BZÑ\+ùž4£2 ¿L"ŽÊQ » -ËeYÌgà Ã5<æ¢d#• š»u¦Û.ç„eÆÑI$ R4níá“À’7ìÖ?#ÐKäëMþ¤ò‹ÎêâPrã@Äʪ…\h¥élê Rü"+ˆä†ñü¸ÖvS—Ö”Bé켩ðrÂj–žÞªESrâ—ôºŒ]îmø«Ciº;šªw½ïSwÌü6ò}Ýü|[v¯ã4ÕÔYH˪\HÀôU`ßÿÒWâ¤JÇôª\èu*˜ÅÒ¦ Ãh¬ø%SYÞ…_§"f•úõ²hYLÄSÃrL›À(ë«ú7FKÙ·¼rÀSr5ÙÍ6*µ„oÇÆÖ^N ÐAâ*ÁòÝË? Xæ»ôĨu^û}ôòÜ’RVÛér¸ýJê–ªCA[錖/­ >Ž­Þó­óŠìkf)Ùõ ;K—‘kÊ1 ÖuÆ‹â|s¯xß»Ÿ8'ý9ñûàÏ…óeÝé#(mÒ¼˜ôô…&Ê£ %œ/UX|CYq²øë ¿ "_u9° 8=UòÏF>ŠLª˜  .ÏT ù7Ù¶9ðÓJ@¢“Éö›Ÿ *%^ÌŸ.÷4f¹ü˜8®-EñIÓÎtËný¾zù¥®øNƒù§gY—­Úõûp37*Ð…£f{™}hJó‹h«è1ÇÓ«§ œµü±kÊWy-t|Ö-¿Žn3"Âàr<{‘y0ɵš€‹Ê~¸<6À3ê…'Õ¡*×vWóÞïËOÑ&ó›]7Ü}a|[Sþæn`>` ’•ú;~é&iõã_Š~ŸÈ· 1l*C´ÖnZªSS A´€¡óö07ó77Pà6-ê‡ÕËåE†áª£i@p'ê3F` =q55Û^ò2’ÑHxÐï¢x¹’!ðí£²ñ¨·îYä$¢r‘^”ôüBm½¾‘€2À÷,¹æ”¯;ÙŒµËö‹|Ú;+Á¸£=Ò’$&çKšg÷=ªðº$æ)|§Ú’¬iZ~èò™-Ú5é¢9ßÜkÞ÷îgÎ ̼ü¹r¾­¼'¹xV¸çºòוÆ ÷Ý4˜:µ´À¬œ© 6¹ Œh‚‹¼¤á ±Ï°Žò“\\à:‘?¯–BZ™=Ügï,5yz_54 9ÒGà=¸ìgY” Ïq°ì×<5ÉåýÖ*¸:e,y”[ïbÕ‰jæ|¹IUz ȬòÆOgœYCÕËù¶)Ð#E"mõÉ.c·ƒNv´¶<5 ÒM8ÏΫ /Jñ~¹ú†f–Çùº ž´w˜rIãPÞÙÞéÞw¿ÍÜ.¼›÷×1òmÑü|_sâ'̲2¦>äëZd ÆILÍŠœMx°§å1²pû[VÙ…Y¹ ‘S´Èæ#?ê™b¬$ …‘·ìÒšÈkŠyR‹¥å9A J;äÖ€è ð cÏK{M’…ª¦Kÿ ú * _ä—÷:ò絃ñTе¤hÏž]}¸(¾áék‘P8,˜sþh ²d¤Ýº‡K£GØñEü¡TV›Ûðg%Ü:ÓM}{ûSý{ÿçôíòŸÓ¿ÿ\>_Vß›"”yⳆç#FuŒØîv`ï#=ÙÿVþ&'±ØµF~f$²©*倖/*§‡bèÏw‰W£P¯^ð_ÐSòÄl+•e$-mTrU‹0ýjŠñ¡îj€íŒÑV…V¤@Vð|kO‰Y5ÕKï2)kËÚëÙu©*êˆOùÙ6öŒaDzÀ!ÿ¨N›ü(SQœ둃S³(çÔ¥ySì-ú¸õÞUöBLr\„ïàè¯sä•2I`›íPÜÙüP¼ë}Ÿ¸SúcÞÝà÷us*o[wúæÑâì ðú‚µñ Š”Œm;56€7»ÊÕ"0 érá}Q!]ê¥ÒD•_&"˜õ0(RŽeE3Ä$¡ê<=ñƒÅƒ‹,W%Û{(V|«¯ò:ðs:Ûbü Þ)Z*µ÷ûRÓGô¦=q7™š=å‚’:–-ÿg¼‰Ô"$+ñrºÂÄ”õ 0Àö‚˜üîsß’Ç|ñrzµù::­*0¤àrIó¨÷µF?Ô×hZMN’V˜§š>[î Þû|“ó!îÏ1¯ŸuKâërz¬êT÷ëI/§.Ø(ùáŠá9KQ‚f |Rb©7ËÔ€ø®kÐÌ’Fp3ñUöC\Ù ÔÔ‚}›ó <‰š^Ó /A{'϶ùàB“ƒÒ4#°Z¼?>ÀL¿5ì1ÉJ©Éü{¾÷Œ/³´fLÀ§ôI¥'7·=T1Ûàå‘#YŒ¯™ª˜Myø{3€ÍuàV¶¢Æ[{®1Bu¹´xë¿©üÔÇt“¿‹¾ M‚þ6~yɵFB븩Ï5÷Úw½û¹sÂSïïWη…w zXR´ÑØXyY ­QînМpEóþÆÙ:£e7,O•8»æb 1gh~NÂmðX;Àܤ7.ç¦;l¥ìBµ² d åru-öó͉ ÁÉbIÏgï¤É/3qí"<¥›I ½^†®Ylà:…B94皊w½ç¤?&Þ þX8ßÞSKÉŸ"p6j\:¡W-¥Ø¿ALôDš™æÇCá¬Yˆà>ègŠªˆà¿ +nE‡‚p•ˆ—òŒ®¯˜7«”çØe +ä–l–d€Õ¤Çúº%.íQ¸§` ½£[²ñ>~ùѳ–!òmÆúúí®ÏZxhÂpzËäjQØ¡Çr“j ÛªÄsí„Ôaôê»_{Ù i#ã"=@-˜Á…ÜØuב?An®Ýùö»îþ¹sò»™?ÆïΡ¿}Ý=+SöÈ ¥×`2Ó$Z¸*r(N NÂ+ki·*½ÄÐBÕ‡´ž&óR~_áõ 9Ø*òj³ÛV\lÀY‘9L5B|NeN~~ñKÝ+#ÞÚ¢À$dž2.ýcKc¨ë+ñ"?0òûòhíú?oV‚À£ö7Ó§þx 0—ò]Ar^YðöÍ7>ÛÃn‰ÙL@òÖVù9¯Æ¼È`³,À¤@­—ñë½ ÏpªÝúE¾½×¿ëÿ˜?'ÿ1ÿnüÇúùºþ¼¿(6è;ñ̶J´d/dÀñ4µ¸3òªå¦H_€1ô0êS:!ýø§\B„ôå•W˜•¦È÷(?_ÁÀ·Œ"~£«¡âj=É)‘Ø‚˜†ù¬ÔÂ@q²mòó™—ีWwôPV¼zvO>„Ì(Æ'é¤'‚7êŒu<‰ùŸ£''‘¯æöÊ#£LÐf~ƒßV—ú¥½\k) Œú­ÿ©âãâ\àÙN~¸±”ûMyAÎáƒ~KrOå}QŸk¨ïÿœ¾]þsö÷ñŸ«çËâ³£´àF¿²”ryÐBN,ÖòB”«=Ò´µL.ÿi:Ú'HÜÉ6ïyf{Gˆjålë1>5óð|$¬{‡h"é»È.Â.NÚµ¦°¯`]ê hŠLü¬tOÝ ¸;Ìû~iα¨L¹ø).½s郭@zl¹HQ5Þ¸ôŸƒ§®¡S;ì:‡>•õÕ ©ýŠ¢`TñÖ¾Q€ÌAÒR¼õßU~h41í_~°‘GQ»úÿ%—j$¬]nêÛ›Úß{?ænþœú}ðÇÊù¶ðìO ²Õ­ØöðQØ¡B‘™Tb0Ow‡ˆi€ïËXrꤲn.O80(˜mÏRÌ yã5åáŠ<ÐòzR¤/G»òŒ%pÊŠÆKâó†Å€œ-°)/pOQŸk<±hón݃²¦5†Õ.I/~QñI4T?ü,VWàÁ-TçÕGüŽ3+ 3`õLF˜½\Ú×øK™eÉiiµï¿&•&êZ/òWÈ[`²'/è2þª±ÇJ‘[ȧú|s¯}ß½Ÿ=/¾Ÿ}?ücõ|[}¶>et€*r?7! ´tÀUô+Ï‹á|µâjy34 7ËJ s~Ù˜ÞÄ z™ðø„(“'=¿èÝ€7ƒÄ€²" b—9³åÊAÄ´½¯E"w2ÿ“å…®LmsAñ¸æÔ?c‘ºpé=09ŒI«ÍéÃPéSOŬx7z-)žë-ÙÙç´°A@›#?PiQ¾t£J»´Çè#.+ôèŸð#¤Œ0]äÊ­²à­¿Œ¿M"¢DL‡ú|s§}×»Ÿ;'ü1õnðÇÒùºôZ ¹ã)SVŠJÐÍ1 ~W9|&a5ÐCÍ¿WK+ÖìùNˆ{TÍÑT1üz.ñ!Q/A%båV$cñ„4»E1! ¶’Sôê¼سDžÚ3ëâV–ª8æ¸4Wp鬄îfv¹î#ÄÐz ×Å¿‹Áùƒ-¬P´>”ÏNËg?´æ°–oמ«AåU‡õÒ^Ò”àH]“{ÿb$è× â¸ÈM;P­eŽÇpÙÆ_5¯#Ãîù¢?×þP¿ëÿ˜>'ÿ9ýûøÏåóeõéòlŠš<ɺ^°šX¿Š—Ððü7¹‰ðéÿ¬‚kÀº‘/5M®­eZç•cOH}À6ås†™>GKÜ …{KÎvkþäZmŠIÊþ“÷Ý$bÕˆMÓ´ –µ•˜ÉczZ£eðí£ž¥Ð™{Ê÷å…ªc3Ðg' -[/7~¯ ‹~Ö~S¹—ö„VmØp9Ér!¯4ßš+¡4°–q%gºî»Š_1.ÊM|œÜ«€„Þ†/¦ ÄØæé¦>×þP¿ëÿ˜¾]þsú÷ñŸËçËê»°f‚Âé;Í ‰¸I5~"@Ç(.hÇŒf2T”Žjù& ÷­ë=Ož¡üF`ážQ;-¨HJ~KÍ”Á-ZèDÞTE-3k(IE·Œ+{ÃÀÛ ’Ú>à4ë9¿pôÇgøGqŠ^‘(Ã+úð… ÜßCóÑÏö2Xv¤S±½ŽÞ5–ߨo£²¯X>Xƒ¢¯ö:Ç µèrÝçz¨îh¨Þõïfîÿ˜y7|·põíëîHö0¼ýÖåY‰ü©!ñ—¥€é†ÈJßÅдÉpŒé#YÆ‚+/E_v0©Š6ûÉËöéÙ¬pò@LÖšýS'±²çêŒdÆÍP ®:ò‡=²¨QÇ 2ò1×^}Í„ ý]ú'j…ƒ£Bpv‘^€pÊ}ø@|Ž>ªÇa´ff¨Wž>‚Ø"%=ù°¬À ´vkÞ°"å„Õä«K÷±#Úx¼»Nü©“L{ !߆ßÅTPDÓÓM}{ûSý{ÿçôíòûÉßGï–ÎϦ¼—[yG%¦HBéMä °‘-ïEž|¡Òq=·ƒâ=P`¤¡±%­7EEÒUÊ6QDFõŽÅX–›ZîÒL–«6 “­P…Àwè÷:Õ•†WNªÜëT²¼•\ñò"¤kO½4ÅV#Yb¥ï_þ){•¯–iàÅÏ*~&!íÁk߆.›´âfÓöN}L•eøµ½Øpx–8Pâ­=GdÑ÷x·þÁÛ¢Üç›üÓ¢:²ÌF¼Ÿ2Á®à:ó¦>×üP¿ëþ˜>'¾Ÿ}7úcñ|[|—‚ÌFÔ¶‡'h¬A+¾­ŠLü2š¨bGÞ°ÚûÞ¤)’«fY€Ï%ºsþä6€Ð èKJ(,|âq]sÒxØœ"qbyŒ?l–ä6¦º.n9©ÞÚ`†"Iz3^úçL#ÃIÞ+r½ËÒ›ü~×ï}7ŒŸ¹†š Ž¢´^sŸú©«ÓžÍº|[ޤ(šîÙžâYY$Æ”[ÿUå/†Æz‘0Y+ƒ”ÛøÙj`d.&i¯?ßÞëßõÌŸ“ÿœÿ}üçúù¶þŽc•>΋E@H™Q×j¿(/)\ÀêÄh̹ÆÑ©!À Ü©IŠ 81z²Û2` m1&çÜ4'…îW+ibÂÃö¹+-n›Ã8ç€ØiŒKkä„v¨ÿpïZw,io¸0uÇ n1hùq¸Í{éÎ"¨Ô#ŒZžÊù?zSSŒ¿J±·yOCú¥°ë¥)uüÙ>To%U¹ÿný+Ë é ­Ž›üÀEÊ’Ç,êçèõ¾¬°.ž.§¼£½Ó½ïßO—ßO¼¿[8‡þ¶ugp‰$ëñøËÙ ¤FÓ’ÒYþ2S)NMøÊF$&‡;p8‹Â‡¬ù{™`e¥…ó—Æ\…XÀm*Ö \àu©‡øVmÂTÅ#W‚«â}Pà?W{ÐXœÁhÒT.<ÕѾ=|ê`Zäd`j¾^µ3UÀ[òE|²D;Ù¹—=IÃÇC%/9QŸ²ú]}€µáá7ãI )x^aµ(—öàN* «&¨ý³ (ºà¦^äçÔ¢NÖÈÇøIkÀTªì²‹þ|{¯ß¿Ÿ?'ÿ1ýûðÏÕómõYR ™¸¡C 5¬†¨“D,úéqÝò™pFY\ã—Oî½ö0bÒCÀ¶ï1i™âHωÞ+E]Æ…ºˆ¿b{¼IÓí+C²ýªä å':G~'<ôˆdfrÁ€Ø›ã­9…ˆ„VâèíÖ}óŒÊcœ<Å'ÛŒÊy:< ¢ÛðåNJ°RësImêKº‰å/ú^'&DÔXní‹ú­äe¨üBgÿEåŸ$ìÕ›üà›_|~ü¤Û6Ê’}¨Ï7÷Ú÷ÝûÙóâûÙ÷Ã?VÏ·Õ÷0º%!7"R· ŸâFK‹Ñ½¦F•­1-ÊyOøüŠçiÄ­œQ¾í¹†‡û±LR´´wP΀5[ù§U¹ž¼w PIÑ] ¼LA;MzþeÍË‘w_\ǯk­i=ò·£Ö~éíOä›—s¿HœÈ9ø“Ïòþ=õ DÞ!C|lðOíÉw¼O ½,(O²¶“8Ú3?¼‹±ØøþÉ$ägÑ!?÷)”E+ÎñkÖËGkõùæ^ù®ûcòœøÇä»á‹çëâ;üO®D9sYE"y„°Þpå)dÊ9X¢¯Ê‚_rp3èŒ`B¿`ßqu•bȶ?†Ù€t±DcjeÖyú>`b£ðÒDeEA•³f„eéÀç4&–‘UÃjn!ô¿ãÒž$šÞeê½^ú§&ÿ «õ"¿-%3&Ÿ’òÏñ+-“3K}pí?ÕG%Éé6æì¨LÕ>ÚOꎨzO)ÏÖ?‹©èCšh|ÈOÀ"Ës&EMT>ÆO>%’mj¢ó¡?×þпëÿœ¿]þsþ÷ñŸëçËò;^K€ò7ªÎGÒ嘸¸þZ¹»ò?ƒìds!ûYÞ 0BèsÉ8ÀÐÉö]” O˜…,ˆTlÊšÚÌhR'%ý"X;&«¨ƒ§,5bÐË 4S#íGCè•‘ÊC»»ô|{`SsVŠÁ|ë?iØ0“Ü›oâƒØ>;p•ÚÞ ßxâäÈêfzõERœiÇJ`íÈ%«›áÒ>’Ï–´8¥Kÿ1""R¼²9wù£qÈÅÚr¼ŒŸÔe jÂcïêóͽú}÷~ú¼ø~öÝèÅómñ‡jüEO0Ñws‚8(æÅ*QÄ^È£Á©7->L0>Ä"Ð) … YÏ¢ný)Ó•?I†*–(’·`zBÊdÍÊŠ +¹‹ÚIk«zaÀÇ[ŦnÑ’Ã`èrá,Œkž$€hù©žØ»Á-@8nÒ•žÔÛö mo£×#(PUþ'*ñ©=À4‰A.rL%çŠØ‹–±~4‡+CÓÙoÝg•ž¬â1.âËy-ÆQê—Ñ+™–¼–óÊkôÚóí½ö}ÿ~ö¼ü~òýøýâùºøŽ3u(¦Ólœò?‡Ù³ƒ@a‹]±³zîÕ>` ’#=Žm€·DùmqMBUÔóMF×]±ÚÒ*áàS0¿ ~2(ÐÈ©9LŸ²ŠÊ™©h rËÏ÷‘ʃ_ønm79vû­syd“Ä3Ââ ø”Ýf ²òIyÃòJŽœI IhoØMqF4,M±Þ/Ò“/*OjnZ‚”Çè ˆÁk8uç›{Õûî÷™;Å?fÞ _8§ú¶uwd(D¸»­­l0 ­AžVhÏŽ„9'K ÇélYð““øX@`ÜÚÒ‰ô³¢›ãhDÃ`ÙªxßÖw±µ!~˜YoŽJžùáÝI§€U[q8~Ù|—ÖÔÒð®T¾³sY‘²X!Vkv%ï²eWh²J~àD>Æ Ï®LfOÓê¦6ÝlEó†È´Ôï ú*’´øålOŽ+Ɔ<“Û­û®Ò³&f¿I?”ì‹ çÜn£'Á;ÈÏ[ñË©<×Þë~ïþœ¹]üsæ÷áûe³+o_séÓÜSs¬ î¬^^Á+ŠOzD“¤V2ãÊM¥T+Ž‹N“­eÜúFYUá ãËî#O¾r#P·Áûq$C´É@´5µá1MÀaáq¨v]·øøN©Œ ›Š¸¡™¡—æF.ˆª”[ïàˆŠ?½\¥Ï*½èu.À!7ølÈ “dßu_nÊÓü9³œ¼'eáµ\ní+uÆ¿^ný7ä—y šJ|ÊO\þxÐËmüph…ç›þ\{¯~×½Ÿ<'ý1÷nô~é|[y‡Y `­o¨¦ QMÀ·-?Ÿ¨†dN‹˯äP@ä¬ÐIôç'†~¤ct?é€ËI¼X„jÒÈî45½bГ{Ó šÊÏRõ³Rk…øY3%£Â·ePFʼ5Wø7Æ“b»uOhNî£öà!{ñ~N.±ócXmÃWô:dó&ÛÔ§ØwÑ.ÑÇW15+¹Ö[{×+äºÖ[ÿMåWÞÖv“%Ù§¬´z?¨”™]hÈé‡þ\ûCý®ÿcúœüÇô»ñËçÛò3hÆ@Á[äJ}5±WîãP1c9O#?"ñl"µ°Ó ±Ñfߥo@J~r\Yã8©àÀ_Ðp¼ç(B°æ$ªeÞ3YØ:$^±_°(%¸AŸ¨b˜Vˆ)l‚|{± )?x3ßúO¸IňÝH¼øñaô«v”øáËÁ ˜GÆ•úlOõE½_I~óÒ€öš-9õlž EÀoÒ¥w’±"…<¼SzL\åˆY~~ôø~än†ùsÍvíùö^û¾?{N|7÷nìûÊùÙU÷r+ï©cÎZë›Æ°L<¼jà P¬Ž™ø1 Õ&?+ŽšWW”¤ÅÖË=ÂÊçḼºXàçì¶8(NlÉrt,±É-”·´É­šR“ÇÓ“¼’œVVä„ê¾ZE„kN®Dê—î¾$üaxôâ“Ó)?¯×ôãó9|rB+pÎjœý>Ô§ ƒíÍPi1N\ME“Îær6)¾vMùÖ;g )íEq÷NéItæ=Úuð„CÈš§ Éëîgkýºh~ïÜÍÜÏ&ûë2ñÛÈݺùÙ÷rëîFÌ¥™¦YÙ€µŠ <ÔJÍ¡1s"“X^ ¦r˜´îùûŠ•ûŠW@UaÆ73VœJdTõ3ZS€—ç *¨ŠÙebjQ)ó0òCBVˆœeÂRSŽªY3ob¯­=4ë kVFÏî£"K|]ÇMú ÒC5jmôL3¾ýجjÇk/ü";¯÷ TdfdúyôlO3•µ-ø[×Uñeõ>nòsÁj”ø~å„Ó`Ž·C}¾½W¿ïßOŸ—ÿ˜}7þcõ|[}–WÂÞ!¥·f<‘òúÅH‘Õ¸h€Rƒ°Z²²+œdUk(Í+êÈ` ¤åXcÛ†º²bÆ/h¾•øÇ¸I:)9aaÂÀéÉÂÑŠ­DÉN ù>ò¸éÚ<â3L´×²ï`GfZ†Sxe‚M@¬¡Çáò1rù1¼ËÀcn³Sep?ŸŒ#8ðž¶ØoíyU)“ƒâŸÝg¤ï0jöq‘ž”Ò ’€èº]FÏdˆqˆéÖ‹ö|{§|ß½›:'ý1ónô~Ý|]ugÓ¤6å¼"jTf [ ¢M n‚ñ8£7<\¡`õÈ–“Kd.ÔGx¦€ÎjoŸŽü¾X"#–eB«5Ë|ÊÆe“RÚPWDQíq«d\>£6wP‰e“aßÅEã›cÄëËuù}÷Ê‹L2Äbjõâg?%ìÄåÙ†Yö®Ö‘þ>Õ'g€!?7–×…÷N(M™¨Ïöä"X3[·þìP^ÄESCNù©¶“•+KtÄÛø¡ÝèNí¹Ö‡ò]ïÇä9éÉw£?Ï·ÅgO$¨I¥éJ°”x2'…ƒNOdiR3P,µSPK¿µV¶ ìc‹³~Âö×,}×r%gd+¶$‰¬v ƒžbGPÕ(´MVÑaÔ¦›­'N•©Ü«b£Èï2hÇ­=Α®nöToýW î¤Õ›üEåÇ<*þýçøcѺv¹ïÃÛð©¾H¢%i‚¥Î¨]¬-Ù=Vmy¶Ï”ltþÒ­åm!®Î¢C~Š.†,eà¨Òeü$kð‚ÄTýùö^ÿ¾?^~?ÿnüÇúù¶üc´‘#œˆˆg3‡äN`-‰4+¨/p@#”e.e‘$­ˆ-,Ø.d–en.ØÚߪš„°¼ÔB¤f‚`ÙÛ5¦ÏuKÃae‘¸ ÞGUú< Ýð/¥Ͳ±$Hß^G£Ä))ßú'¼?”;%æ‹øàs’ñÈ£öIù>Ž>hTe)„§:éS}D€5mcÌÇ/)ÿM‘¿z¼µ'J[qcÖtîúŸÈOµ”REœòOîh™ü0çeød†pjóÿæM}{óCû®÷cövéÉß®okïð‹r(ÉkN£+óaTB]Õ^M¼FÁ§»•9–Ó|{ÉôY«Ú÷H1`&çë™i‚Å­ÄE®^<O’ìp@Þf±CYîo€“Û›˜B7tœ iz 6\kñÖ¾ì úr¯ãÒ?Ž7ÒÇJëݲË/ß‘_ßú£ìÏñGe䥚²äg®>õ‡ãp ðb­Çü%W(5˜šcu4ç%—FÕ'û¥{&ìù"~áLÀ”š.ÃW|P|¾q´xQŸoïÕïú?¦ÏÉNÿ>þsù|[~ÖF ùO¥œÔÃŽ…µ#ÿT ýdë#PÎJý·… XÂSFI]€œáJÖ@dfòŽµéŸŠâèê2J†–ÔÈXÂÏŠXg´­\HÅQò>%§º¬Ê©øk»µ‡ÛŠRá”S¾õ'‰ò1ù¿ù&~B|1³J²ƒÌÿË ›‡¦íS{”èC>4×ÓE,ÂdêH‡Ï—æ5`„2öB¾t_£Š/«Çª©½øŠ–‚>nòeø@é”L«â$êóí½ú}ÿ~ú¼ü~öÝðÅóeí™cT‹/åÊC- ät"3ÀÆ©ˆJêç]X2¹@˜RVXÏcš8V \Z¼Žzö‰¤?WÒ¤YÆ“ ßd­uÅ¢é¿S­*ÞÆo³Q¨?Kìy S«$¢ÂwºìÖ'Š(&Ë[÷9(„-Ì›øYÅ—½ÛÒu» Ь/®Mmî´—•¦§óxÐOö'þ¼4‡É À6ê¼õÞTzeæ¼ ¯äÚÂkM@ðc×ÊËT0’ÆMu®ù¡ú½÷cæœðÇÌ»±+çÛÊ;Ð ¨¹¢ÀµktŠzç4 êzÂÁ5‘çJoœ x©Ì"ÿ&ª;a"×ÏUL+½{\2.Â]\ŠEÛ“ü8:—ìlÁìê Èk]fwÔBy'ªÙNA–MšÉbÌ®9%²Äã *—ÞÙ¥2‰òëŠqÒ“à¯y¤$›¾ý/O…ï WUL‚Çý󩼨'²," µ=U™D)¸â¥}ûeIijÍqë¿«übÛjŽÂ)ç"ÛT¡(ÏñS(/).ý¦¿½ý¡þ½ûcòvéϹßG,o+ïb‹ŽAúxZ•]$YÉÌ5ØIMÀ~Vee0!YœÊØŸHˆŠ,O-0ó²HQƒâz?`NT-Æö°O/” èÊ¢\2‰#Œ=Ró̰DW²±ŽÑ´,Ö[{ ‘HþŽbÌ[ÿ2É’Œ œ^ä§ w53dåçø)¤‚$8µ'¹©ÂM²ËÕÜ[¦Ø‚¸‘|iNº¼ÒÍÕ8Ë¥{LEùù¤N¡‹øJ.%Ç(DÆù2| è;µKó9Evõùö^ý¾?}Nþsú÷ñŸËçËê3K4ak‘úW¨©( ËÜû/pI¨©–3¨}¸œàƆ4o:yÉX¦všÐeW²ÉSž­Ï`^hÄÇó(·@2÷\Æ™†å÷L¯VÈOF‹g²»ú¨%ÞÚ“G!g¥–þì^®ŸÆ@Û B:á‰g¹§{X–”;¸/À€½ñzî`6™“„Œþ€qHUbßÚy8ÈÒ°:ÊKÿU¥4tŒ›ø<¼:iÆiUµºÑ ;#4³¹]´çÛ{íûþýìyùÉwã?Öηµg Y‹ÖK¦J¹,'Î_u^ý¥ ‰”E'¥ÕpàTØó°œcÝÕ‡±˜«ì è%-Á¥w_dU:lêR£Bß™÷K^¼êQšZŒ­jJ+µç†Z¨pWƒ;¸Y1^8¼½–ÁàÛrÈ•6¦%ø¸þ•U¨Â‰´œ“N~¬3òmgXˆ·nüò=`+M]ú¨*¬´háËVÀEš wv¹5'<©™pF utßT|QØ,å&>p7–º˜Ýð›V­gÏÒM}®ý¡þ½ÿsúvùÏéßÇ.Ÿ/«ÏOªŸHK„ÐÖn‡¤ [€ÕzÞX¼å±†þõm©¸Z)bák“ÞˆÆj™j·“ØÆP\,òVÎ/±å0,æg‚¬gà›~ŠÍU³)ƒùài°ÜÄ[{žIäúÒ¿V&dœÇ¹‹ü˜MòûE_·+´õ9~«Œ˜(ŽýíS¼”ÉÓÀÎТdÂ$•‡tk\^…ÈcÄtë¿©ü€xt“¿Û ²h<ÞÆß@¯c¶|SŸk~¨ïþœ¾]üsú÷áŸËçÛò³àÄâ&T§a‡•Œ±ÞhdTSÊß+…"[Bý—Ç,À6«}/UcºO~&y$#¯ú<­ÍHF ¤±…ˆG—Ì;ž¦‚ÍŸ­©© !Mû§G¶|x£‘mí o¢ùíF¶õ_”ËýF¶IŸUzbCo4²môYÃÈ ¦älÓžá¢êŒ¾Ó/T²páÜÚƒµà¹"ùÖÓZJ¬GÍ;ä…Áø8I徬Œ“Ô–õãôçÚúwýóçäw³ïF¬okÏMš´'æ\UºþåöÁú‡O0·`4=H‘’ˆn•'½“óÜí˜VlSWdÌ,oãÀz³ýÉ$`¹Z4a1¬S Ã Û ½Y­2 †µ—å…O0qˆýòfÅÚÚsýŸSË·þ1Ï {¥gzñ‹ŠFÄbµÚ‡OhSþá¿å¬ÙÕ¤;èкÂVè•èKáÙoí!\ûŒ(N¼õ?U~1àâòcîòš­Ô·Üâeüd“¸•fïõùæ‡ú]÷Çô9ñýìï£?Ï·ÅwTÕ)IŠPÙ®Jä®ÿFÉÒ/àäE,zÈ ©{&΂œT™Ò¶:W­j D+.ä«@%ÑëbŸÜ…h¦µWÄÈë ÆJa¸E¹å»,$ÐãbÈo?•¶vÓøöægËx¬ã­ÿ&W”lÄ›üIå§2Áà‘Üð#yáÀ¥L 2{õ¿‘S$RF¢íñ *ïñ¸µ§0ml®|÷éSÆÎ›7éÉ,Æ÷ÓB·ÑËF+J.WR¿iϵ?´ïú?fω̾þ±z¾­¾‹¿‰üÃÞ»ñUG4™lþoW´<‘Ý€€ðDiåJŒ š2š©Z1UÞ E#¸ŠxièÄiLÀnœ ™²3{pÉáGZè·‰»dhxÌÒ?åçËL­´K{EGàB›)æKÿ$§Hcè‡Þ\éŸâ£Iùý¬å6Ú~>/–$7®œšóñ6ýQ÷¥g`:ŽÇ1©0 °"\Z«¹Ý¦& åKïÄ-»ÚgíÉۤǙ&õ0£æËè Œšòý¤Õ¹^{®ý¡}×ÿ1{Nþcò÷ỵóó©¼—[yÛ@2ã, Ô•¹8lEZÙ#@…ØŽ‘A(à×ÍKÕ£"`"=Â9Uò( bP.3Œd³e-oÿ½ Q{ÑÏêN±ôPp1.зĒ7¬/¼M‘T×÷wkû-* {_‹Ä÷Mþ ·”\eYd:}”›KTaVƒºØÀŠíž†®OÕå*ÉVz}rÛå‡Á­ôvk˜g"â"Ïà[ÿCå'z­¹‡ü yjOŸõ6~^A ô¥´`œú\{¯}×ý6u§ôÇÌ»Ño çTÞ¶îüI ¥ «]3Õ{„P±Å—ˆ³Â§“Š"±0¯à ËÉVV˜uæÜÔØ_Î=Pùe–çYw¿¨µÙ@ "‰–߉‡`yh{è´e’åž9Åà[¬U¢” )ÖÑoÍ oQË¥w (¤yóáJÚ¥‡^+”Ü÷ü™?=)õòZµÑïºÓðlnɺBÜ`çõùÖœ£‡¼õ xsG÷5‹:œ³u”‹øò‘ §i¾ ¿’*4ç$§‹ú|{§}×½Ÿ;'ý1õnô~å|[wöªÇ/ÀÕLÑná 3|"/wåáu¸x«ÅsÎC @qÖ“³H}©Øâ£FS)Ü5;è‹F"&ŽÝ305ü´ Š‚_½Ù=%Jm ©£fxë ½ô'õžâó?” `ä©f7zm_pés3Ô+ïh¿©þì~Ÿ·Cú}ÖÏÑokæTÞ¶äXŸÿöóï?rjTYçº|E*êHJ·”Úúþ÷Ïÿ÷Ÿ~þÏŸÿGÍøó¿ÿ¯šëžšÖØ4;VH™wݰcóxå.¶¼2Ñh/Vmöú?þ»ºV{ä¿¥så`à ­‚ßBr§œÃõé<üü«þÞ}ýû+®a=âü_ýüËÿ&ÇÈÏÿôÿ¾þmÿ.mŽÑÖ_vûËðó_ä¯þëëüÇÏ¿ü/XË?ÿøÏ¯† ØëþëúóÿøúýøùÇÿýó?ÿãåûŸÜuM sã&Éð’ly—i~‘iôæ.e½›lãïdÓü#Y\à—mjjÁ ·ÿéUº¿H§.Âbä.ìâÍ¿o[Ÿâ¥C¼}ñ\ÅËßÄã•0ä”òw›x1ü­|6`Ê#éS¾rÈ·ýé]¾úM>Pg…t\ÚÿYv1þ­pMl¹uÎ6áŽ-°ÿé]¸o»AÖ%þ ÑWð®¼ô·ò¢7ívÛíØîoï~Û±Ëüçvó߉˜8©ÿœ`"öc¸¿½ŠØ¿n øD•³U1y?¦¸ü|rtÉA5ÕÁrõ­nŽÝá„»6ú¶;j% Z'Ãã` U¸¿=÷DŠ¡,JºäûŸck8ᮾmЦt6…æE^!PÕ™x{ôu»×›v“å>}º:v‡ŸÙk«oÛ oȽž —× ¡Š÷·G_Oþ\{ËwmõmoTž_:½†úOt$Ó Óß~HXÔõaSõô5þéÖ¸¶ú¶5*ÀšÙ@áxP†«mU¿=‘ü"‚¾›W_ÿlÜ[}Ý Àw7å:"ÒA[•ðoÏ@$‘Ú YŠÕ×?Û$÷Vÿd—Tã5< Šz¡ò½Àôó¯¯Ç^úëzüýþ'ÝoÓëò¿­Öb¥ÅŸÿòJŠ_½þ¢>ýeM&²•›ëÓŸû_÷ß–§Šû­£ï[_XÉÿ~ýòßh´þëÏÇ#PÞPbáKJš¬+Ô¾¹¦N9¨[ÿœz ÅIYaµ"Kj–%A¸eúMbˆlJÞÛ|'©-É›vZ¥;5zbýŶ—ÇÁ/œXSé;V¥¼˜p<’UâóHH Ùs„¸rÛ•[s Š[ï5ÖÝûEx …å×!¶ÒÆûÐìSĈþ>T4}³ð’R„^1éTX‚ž‹}ÒµŸD°õj=zïAEWçBó¢ëgyC5ÀÊZ}—ÏØAPǰ×ÛÙÜ«Ýõî¦íg—ýu™ö}ìnÙüìº{¹eÇGy¿3wqe‘ûˆ##‘]¨r®RÜm¥ÅƒRM2BÓÒnÔ,ñÚú™ ûÄràUB|3×/ „‘æhÁÚk>\J$GüuãÊÜšÖn÷ÅAFvEN0 ßšs;‘1oQÁ³ûð‹my’köÝ!>¨ /ÖúLÐÇð/tÞý´wêS¸ Í™·¨hêšN‡çIqòÎö`eâJ Ê~ö¯À8I¶µ@vùå;™j1ÔËø{!²@‘dÒ2*¯?ßÞ«ß÷ï§ÏÉL¿ÿ±|¾.?] ­i~ÁÊÅ‚G[ª,çsrjNÌÊúB^é¹è9|ÄœhƒÚI«]Wxð9sÏÉ'¿ŸIV_…j “‘õœœ€·ß| ÝxèD=µ½¿Ëÿ¤ßʳ@Õq¹µO¿r•9´²þè=j¦ W3ãwá íæÃ¨x²çØuÿ‘ü7-³Úu§ÍS Š±ÑŸÍ¥¬`¦æ­ýøEM Ù®a^ºŸ*|W›Söù‹¼Uãt׉W˜4i¼È?Õv¶ÞÕþò}ï³æ$?fýuŒ|_5?ßW‹‘Ù&è`¨;]퀀té& ŸqŒuJSQ‡B½7ÄBdzUäPˆ¬Ö!ˆlKcì$2ƒakè^D@f×!¹2sä¥KBµà%ľ*ÎH ãÒ: µÈ!ÒÚ¥w®@Xa€·méå…ØœÍTéF“'à¶„­ï}„üÑy&ÄÛ'däë¢ ‘âå˜ní <:à•´”nýƒy«þÿ¾Ø±üõ๲lô=¥€Ù_œò~öƯSõ®s7u?»ð¯ËÔïƒwKçgWÞË-==?QÈ1Ó2xõKOª=Èë‘Å9è’Èhëú=iÊ[/êœÐƒì½­Ò“¬#9Ì‚&Dðÿ‘ï¤7 Œµ}gyátV.™H/–¾ÒÌvñ8 å½áC¤>"·©€‡—ö·k) ‰Ì³ÿIµ$´É=Ú·‹?‡J_qPèüí£'"B¹;&“µÞ”75÷dH;£¥B™ãËgæ–º‡Ñ_gÇUÅ–o£{©õ«œ5`¶̼úeßHø™ª€Cigû]鯽w?g›ä·ÿö˯˜Ÿï+ÎEÇtƒÊ 2€Æ I‘{Ô¤¿t’áŠëVIÖuÉš ÈþàÐoÊŠ¡ß+ˆ@hÏg$€Èsšâ'ßlp^uødy“P ,F/’R 4×áCö4\„j­ŽÂ:9ÌB½µ‡DVLÍVlùèŸ0Q¥¦5¶t‘ i”WaŸãæe“‡T_WǦ>€{ȳª”ÒisÒQyL ÅV=›kXj’UË­û®âWP2ÊM|…—cç©Oý¾ÁËQ°ÐÓM}®ý¡~×ÿ1}»üçôïã?—Ï—Õg§gçâïNKÃ)8¾*”nž$MÂ,Ô•¢Y>'óqg%bŸQÌ+ö”f˜d—Â\êF¨$¯…ÆC ^I¶¬=æ¡l(®ƒf)rNHgA3}øžÉ)ZÜÐt2ð³ ÄÔ[{±²¨n–ÙmõÖ?”yj„çðwòG•_n¯0ìtãçýI¡}Y‡¿W ;C8££°q›çtk309•tëªü0ÞÅ|‘’ó‚ñ"WHºŒ‚zB=_W’æC¾ý¡×ÿ1NþcþÝøõóeù±>sÐÒY™Ç œ5Å6 -CûÛ¹Ý39Ï”>²‰ &ŸüYÊsš)h*Ö<Ø4Ó¡À½žåþJÉÞSKg¹Œ¾\Ôb‡‡¥àØ‚‘C ½êªD»I¦‚C“×KJ/ƒ9Ñíùç›§_Z:×ñ5ݺP +r™²ñ£Š/w^Tþ£cø¸kJWš:ÚêÃ]Dò˜Is9Ý3áŒLÊÖ¥¹\œ ·‚-vë^Á¡å¦<÷ñ3YÔ=“8XÏáó]!yð`”S}G{§ý£7{‡ünöñ»Õó}õéúL†Ì–p“ã5ŸÊs È‹’œdãÛ£ˆýÞD E1†¤µâ²i¢ä´¯ä¿‰}•”ì"r"¿®Ykrüá왊»¡IJ|N0½&Nóɵ¼€[«uPW FZH Çõréö[óªãV¨m~ôNi(…‚"$Òåèî3ÚÛà;Há ¤ú9­½Ó]æ,ÆyT5I$“UŠ]’“Bäœí `á²£&èý+ÙX ßÍ)£_S¬(Ý9ǯG$™K»èϵ÷êwÝûÉsÒsïFïVηuçßïµ£Y@äxìƒx›CÁ)Ä2An1µAä+Éè=¬GtU˜ ,müKøL)‰Oz˜´ò¼þ‘ó^Nª•§ðµ¥H6?Þ!ò3HÏZkOkv´HH£ü‘ÛVìuüÍžî®5ÈÆ¨4‰¾ïòKßpù‹äE%§H³Ãü¸ Wì?;ùÒàîb¥G%ÅÄœŽƒÅµ–ÏS.68°äõ–õÑKªêÆæKªßÚy—Pû­í³ÿµsž»Ménñ«úýã×vƒéÎê೺¶WÞÑ~ÓýѽŸ:/¾›øcøû²9´·¯:ïNÒSùOùRåÁ”«ìr­j|?ØeŒ0«=¨°G2‘…ò~ð6ˆ”3ƒD寧éóσ9ÃH«„©”ê ÔúÜûÁ]¨3jnQ)¤ü!> ›2i¢í÷{ýcø,\‘D6yï÷æ‡úýäÇ©z¿WÅ*K]ñÏö¼w©á½õ?U~P*yòë{,½K½Œ_ßëhæZËE¾ý¡~×ÿ1}NþcúÝøåómù™C T[Bã®{ í@ðÌ£6wwTqaÓ *U²!Éã|æJXì;E ‰ƒ{,ç«ËåüÐ7{],³j~gõhËæ!)º(\Œœ°kð˜V{’È“ _Uê?Ë­=F}¥ö!Åxé *즘hñ"?30!­îôÇ>xys*šW¹7d‹YF~8¥ýoš÷_ãà »tÞ‘=QïãMvfªd¢"7žcŠIJÕr7ݹö‡î÷þϹۤ?§~û¹r¾­<»ßÁTU²‹°œ9”È4àÀ5TDMGÐnSw,õ x¥eWoŽØÿr O.6=È#ØV¥æÇ™„:”w¸š;xb¢¬Ö¾SÈXa vÏÀÛIe¯=ä;ØXÿ—@Ì!"o ¾_ÚÙ½D góÒVç]¨©Ï‹üQŸ)/P{:¸ñæë¸é\Χþä{Ó*Ž6Ì›3¹Z´âìh3ŒòøøÎî¹'u5¸˜OñÕŸ Î¾œYÛðùŽc>C±Oõíú}ÿ~ú¼ü~úýøýòù¾üü›}SÔð{õXVÁ“ƒ±ÏRmxƈ;'5É´^ŒDªší¢Í£boæ©$0YÞË›F~¾Öb3U¡ÝÂ×f­¡â àaù”‹ÉË%¯ƒ`Â{Üô–] ô] ™gïãÖ^KõäàhyyM·ÞµÐJÉbÁ;/» ªÒí}ìÇ®…†3r/>ÛlS*â„nñÙ¦I,@ŸJ¿µ'7\žÏxÊû­ÿ©ÒOjÃÆ)?óLQ˜¾äú9ú¬ÑÎ&ÊèíÔÞÑþоëÿ˜='ÿ1÷nüÇÚù²ô{TëèáÓT$ÕôË€á>Óë>ýÒšJ˜å“ÅÊÍɪvfS¸>«Ó-S9Ó©z¤4r¿kP\®(Šf¡¥$µ­àwhÑ@‘Z‘£‹NíÅ©¡÷ ‚†ŒF7´è[®“ËzkÎñ)çÍréŽX@'äTéå"}i*=©i!/[ásð¸Ÿ!R€ ¤,[áSyÐÈä ¾î\æüK ¹™Åþ#8{¶/àŽ¢/nÈKÿX5pœpʯ°¯^Ì6nãÇ~¥d*¸Ï©?×Þ©ßuLÞ.ý9÷ûè¥ómå¹Ó”' MC4«lÀ°n`×G Rþ2×OVK*¶u2c³¯r\;ùá"R’F¼eG’&¨Xðü JBö¶§¬1âO+Œäš³ƒ^© RRŽ®’Vó1¤EvoQ^XʪEöÍ!†æÕ ®ûè]ÏÀ‚o×Ö[x¥5 ¥ˆ¼ÇëõgèÀ{Í–ã§¶õøýÔœ^ê€aŽQž·³VaƒW;Ûk _k'·[÷ðKsxDúMzðWÄà”Ki·ÑR Ê>\ëMy®ý¡|×ÿ1w»üçÜïã?—η•çNÓ ¶ ݽ˱¸JÖ<;>+rl)ZsK’‹ &²EÕÑ ÊQŠ«†Ý¢c²¦À%œÊ¦šaoE°“ªßS >¦”|I=Ë“tËA4™q‡¡é’njņ+Ù r¼¾ÔåLÑl…£}üUð<ÂPoýCÅÌÒ]eë^~ŽoèÄcUÌ„cü¬"àŸä&³ö»ú:´Ú(Ë”Ë UÊÛ N5ní±bí'Í[ÿ꽂ü*½ú.äÖ„ìþ2z8Øð±Œ4.Úóí½ö÷ÞýÜ9Ù¹wc?×Η¥çmSgT‡êŒzË=ŒT—£˜µ2áCѤ>ù/$Y©.÷"äWÊx·òI¹AÙ½#–; s9XÒü3'1¤0ßÉQ”‡¤@¤í‚x”z^ä¨(s$bDKjŸòûÒù¬—æPõúA¿tOíº,èÀ[¤_Ä]Å'Ù7?ùcŸÃ Låµ½úHè¤^B,®wê z'Årk¯qG‚š4tößTþ©(¨7ù»Æ}å^ï¹ÜÆßa0•k}Äyªoo~jïþœ½]üsö÷៫çÛê³w¾R]ÝZ–€GAŽ-âØ©ÃC…â;µûä½!Geù 4ÉñLm™R ±1;¾ ¤W¦¼MÚrË™CWîðáǺq'Þr8Åí!Y2àæc®´‰ôK)åŽÈf@§Åcê}coí±Œ ŸI1vô/'QUr‘”ÒE~Ò¤@@z—ÃúsüêOá—Ìå/ÿÔw6ð×u¡Gq'¹€DiÞÚwÅ¶é Œ†[ÿùI§ÌWñ¹f”ÕU÷Ï9|³C'uý¦>×þPÿÞý1{»ôçìï£?WÏ·Õg5Iò£F\WËý_Òµ {ê ‚K-*÷À2Ë*ã}dÙZ#,ÌP‹ð’º’¶¡J©i¾}ÖBî8žŒpÙ€ðœ‹Ö•½(sØŸöÐbHîìü°¾’RžníÎX°aÞú'%NSæ¼ÈOʹÂóÆœž¬ÈÏñs@^»–9áÕ'Ÿ;ØÊø¡âzö]!•c¤³9¯¾d¼U3]zðQ´ÝZ¾HÏíRÀwXô2ú¡å“CÖËëPžoî•ï»÷“çÄ?'ý¹x¾->]ž3ü"‹‹ Î4p"8Û3Ž6sá9ÀŽ”ff™ivWµ‚ÜÀ°‰‚)dßŘáMºj ÈIß§dr¢<¹‘,ÂÇ Œé‘çÔ ðoyhè7=í#>øú Ù 5ÒYní©Ø'ûÉSðýgy2Èa $~¼ÉŸUþÄ´b,ÛðNU`QƒM°W_Rš¾*‡ÞSÖ”6‘<Ï[{€O'NÍ´)¶îå³HÏa[Êë.ý”÷œè¸ð/£—ï.Ñ”ÃMy¾¹W¾ïÞOž—ÞO¾½_<_ß‘\ymQ­—ºå77ù?rŽ7«:îä(Dò#G6ÈÙbTì©=Õ‘p]sù$ûNþVd×ridª—k!,z[iU°³;¤ËÑŽÄŒ£’s–w•ôx¼ ©ŠxSŽ¢UvìÚƒ%ʃ`†[÷Q +ª_ÉÈ»H/Ÿå`€iK}èÊ!é¶ 6Õ½÷9kù]xÓ›R{(·ö¤gdzW˜Ñ?¿VV¿üxWW\?w*Z` /~ØZð$¯ü»%çCkgó]ë/ß»›µCt7ë/?t·j~¾¯ºã­Ú :¡lœ8™gª«vnbËý$ÖòZ‚CN–’ó:®G'i¦XV‘ü¸‚}ýcqtœpµ’¼Jº×ËShgk‹£}b|C[8¬ÆQ¾WÈRè‹Ã ßå,ë®víåìJ|<—2\ÿ î$*fê>ÛåWjå®îã]õ1~؈&·ñÇÅû©?*<*ltè¯Û¶QŒÆÒ-·örü{Ã¥\úYÍx§—z‘ŸxnÂáJÀeü u1ÔayËýùö^ÿ¾?NþcþÝøõóuýÞ|êç3å89ZdEËæ|²K@`Â{55@™³–;@U¥\6™­Ó¤°ô£=×Ò-ï±ïžÅb'.§ß#E\Ю•µXHr•û§j€9þÒW%Ïb/òŒ$ml¥àaÕS|4.ÍÉpcò `ïZfšÉëñðªcÌ€Áø>TJ].¿NŒ{™vŸêxV_ =Æ'÷ †ô,*·ö\Íb•D €Ÿý•È1œêE~²kH“ÛfAvîã§ìMŽÔªD¸§ú\óCû®ûcöœøÇì»á«çëêó}±‹Å–3ÛXÆ¡”ùozŠÈ\>еGUF:n53@P·0f9E§¡ÕißÉüÑN>Ëo*f²zu•«N:¥¤‘BîuØÓ#Á£º•®t¥>ñ¿ºH-­¢Èðävk.g·zùè½€¾œ¨ºQÊ!<‰°õ°LL?øLك̼Ùþ>t—àôÀZ¶´jÙ dË iÓ­9ñÙàš_E/®û¦â7€ÃËMüFˆœAÄdoÃoPM0Bº©Ïµ÷ÚwÝû¹sÒû™wƒ?Ηug¯'ÒXÉIÍšlF£,úŠ{Ã"÷²«ù{1†Vì}‚xåѽ`ÅPÆ`É–bÆ‘=Þì}Hô»€Ø‘Š͋¦/቞‹Q˜SÐéPz$”»¥xÉ÷w\íOI—XeÔ¯’Gß^K*EÁò+óÖ?ÄÈúzqÞäÏ*?ä<+ÅÍ?C`OD O’ʦ?Ø¥àyÒ\‰â ãh¬¡õV;(¥3Ž×ѹf²òu:½ðú½“ï>p¼ŽÁóÈ:±úÜåíòþ÷É;å?&ß_ì¦_s#{éÙf“,_3ÌöÑ“U“º¹Í‹½+O Üe•’ͬl°0È6”áËWêÎY¾³¿Î®S ¦À4uˆ®ß•\þËx#—Ï$4P4;桹£¹W¼ï}›·]ö}Ò_~Ü~Éü|_rœO6$MN¡¤[—·Ü|œOI_ošœ"ßãTÎàå;ÂB]ÈqìîéTƒGñÇ÷ƒ° ê÷ ´O!®£!çüV˜nÕ–´zž@Â3ÐêSUÂä–®ÍAœ«Q‰oo½¸Bsåý^.ÒCŒZ9kfÝà³z¢:ô›–Ðá”ÇöoıjYåÀXÿ|3óúhùa†p¥o맃øN溗þÇ\G’‹ù:Ç®~'¹sðµÎCw[ë]ñ¯K×Û´ý8Áݤ¿Ü°÷%óó}Å™¿ÔªÈÍÕàÖEebö*¦Ö_ö,‘eÑš†f1«‡æÈä¶^Ð×–ü…qëNyë ±ý’9RRŠÑleA䃋ì«$«CÈ™AjŠ êæ 6¹>ÂÑ=íÅQx¬§©¡¾­±ØcŽË½­çGײ3…}%º9É‹J.'\°#p6„Jà`ûø<ö>µŘÔ‚—x%“ƒ±Ÿ.íñ£×‘aM]¼¾{÷è- œp¼\¤×LožFØÚnôÏËš<¤ S§î|ûMõg÷~Þ¼øû¼ÃßWÍ¡½}ÍY¦ýÔèšÞfU5¸j–ÍÌaR¨“˜V{È€ ÝÜTFuÀ1J²\þ!7>µw™?¯ÀÙ¡ øÀKÔV·È¤lìôbëÀ&@S}Úg(¨áÒ´\õ aP>éÖžõQ5½Ã.ß?Ù»YbË7ù“Êoh…ÚÞ?)~ÇùòóûT_¢2Bk{—ŸæºLÅîGsÎPv“qÓ½Ë÷¡0#%õy‘~rÊÆ!’3.£—ï…z$\5ý¢=ßÞkß÷ïgÏËïgßÿX=ßVŸ®ÏªÀG˜u! ãÆª =©s^ °.»*¿EÏ ¿¬¥C`àÉæÓ:,l@o‡ì^K“¨ðú°K¨Æßa&Ø¡3T)o¨QþeY °djù‹íoêSpažtpíxðÍÑw†tÝN'ß»Ú=l€|^9z‰c¼«‡·±SÖ3 ¡$;¼î8‘ˆájPLîQ"ÿèÒ¾AåG YŸ±žÝ·¤ÂSï§ÜNxùÜ*@ ²qê9ô¦øG²Sb¨)6Íùæ^ñ¾w?q^x?ñ~ðÇÂù¶ð.¹L&a±$}/…=0ñ…¼ê•¨ãᨘÿ]Žhªjž`#Õ€µ“¸•Í¿Þ:éÒ³¾Á¢Šü~ÅÉ`K“H]" lÝBA¸¤y[ø3ô›Qéõ™bD KÕÀýÜ ÝŽUÎ훣 2Úʪ÷݃ÞJm @lj_T|IÒã2ü>0… Çiôdù ?Õ'ßIu,¤¶?@_"Ëœr5¯T×¾ýÒê1õÚÞúï*¿‚Ú´›ü9„ß5—ÛøåÀŠì¶’oúsíõ»þésòÓ¿ÿ\>ß–Ÿ°Sÿ3IÓ7ªtàJ#õ‹ÅŠBÄz ±BQ¸ £‰qHêÍXž±ŸõÁ ôž[¨¿çr ­š[­?¯6À š}ÔG€]Vf•mŽgzd¥É•Uó¼µ—Ù%ã rÞú‘ä;¥»=ÅLLfQɼ Ÿšcr™úc_íÚsÍåo½Ÿs· Îý>øsí|[{‡)гFñÓÊ4‡ˆ`7V‹¾WÑM‡I=h¨Ÿ]ÞÁÊ/åIŒ¥=`‘zHÈПS[N~Ÿúßa™&?®lâyÙ‚/3,–÷Ö9`0mòJU ðC¶A6ÒØAR/зæTâP¹^Sí·î¹A7 t?¨øDÏWbä>|°2ÁÏÊïè÷®>¨â¸ JÑ»L¹JfE²L’£ý C]+‹KÞõ?Uþ ži¼É¯¹"´Îê¾\Á°§Ïª»ö~¶Ö¯‹î]çûÜýì¿.s¿Þ­Ÿ]y/·ö;”:¢ Ð»«ol”Ù0aÍEɨVcÍê_³&€—øäW‚8ýJ´ïb¿(†§ªŠ¬Më„B*VËM#¦aÍ.³¬…ò;/=Ü'? \†ó4pÓeœ)·öÊ~ ƒuJõÖ?Ë”ê.Ü)?ÍäC†XŽÏñyç ª'< ŸêKS³Ę,óqÝÄ ~P³…ŽöZ )lQ[âè&ä¯Ü ½^äŸ0y³àm½Œ*^ ÷½"fúóí½þ}ÿ~þ¼ü~þÝøõómùé¯ê]v\Ä‘Á,Òª¦h‘Ÿ‡k:ðhãkµrÁh0M%PmYÕ- ÆY>’+Ge£ÖÒk€OËŠT´ØO¿Rlˆ¿=(WÅ9™yàoWîôÞÕ%œ@nƒ˜JYKr­ë/úA:í{×ä@*Ùp0,¼O±ù€³À¶ÿ6æ—å¤U`â,.ä–)¨¡$™ñIžKýgký²ÏƒvRÚû¥ï¢rw (‡\&«R`9åéÈ[Âú‡Ï`-•¦1 §³£õ§Æ/}ïóõò’ûÉvãÞWÊ×ef̤á4Nd˜ÈôÇB©RÓ…Ø¢¨‚è@4ž Ôùް¸_7TRUgÒLz¾‹5}r™p«?6=iõqƒUEÊ_ŒJ2vy/f³\*X SKkˆ”¹§Eåêëû»õK‰ÀNë\úrdRŠHáóýìÊ|‰ì›,Ú›}ìÊŒI‰[ªoãÝi{¼Ý ‚1nê{BW …³}ªsB …üÙ¿©sS ÷C~¢I2T™ÕÛøqJj캅rQŸkïµïºß§îþœù}ônåÚÛWÞÅì”Ð’zÍE¢øì˜fvÊæiЪws½Vùqa‡^I6¦“&û.€ûódØÔvG°\ÐiƒCÞÝ ýýE ða! CT?Šm*añÖ>Àx¤é SlïŸz¹Í€ÑÉã"?\ÄI½P¦×>~`‡Â?˜`»þ(·”× ¬C S 8 °èFY\Ç®=>Ç)¶˜ü/åÖÿPùyê§z“ŸÈ#À•ÉØSŽñËÚ”¥5¶xÓŸkèïÿœ¿]þsþ÷ñŸëçÛú;r–Ɉê¥ÉFv"O6¦½åéÏÒuÖÆãFî­ gÄýT ú/ΰcKÞϘ¼Õ¶5I?DIÀƒ±Ò]Ô¬:i  [s˜'°­Ðÿ­û„°6õÀßÄO*~ŒJÝòû¾æ‰ÊÂÙØ¸¼ö”ð·ç†»dSgZ½µÏJÿ•‡B]ú/*¿b¶›ü`“ò={?Çb&Å£TÍ8óúóí½ú}ÿ~ú¼ü~úýøåóeõ] ?0 Â\Až’”¶º ?1˜JÓUØ@Ü‹Çs‘LZµm¡XÜ€÷å¹È/å´N]YxŽôòdTT¬*é ‚hÊùq»ðº+D–Ì8‰ð«€—oíºIÔc–[ïr½ÉM(»¸>E!dWZ@9-&$Üvc‡ÞŒ' ÀôÄøT6ÇeÂû·<©8 3®_š'|>¤AÖÜ/½á¢œçá"¼Þ'š-æÀë9n9º3áƒv(îlîï{ß'îþ˜w7x·nåíëNíRpÛ:i¹kê(šZ(§Šš¥™U_3,}²ð('dÄlV)òµRµ"Ÿ”ëúܳPûqÒl§)@@>Õ¼>å¢\}8Ê_”ùS¢íù\åf#T,O|k:H>GëŠåÊâÖèùut]¨gKµ“õ°û;«ØÀ9[€Ç :sÇ6$ªµÞU–åMB~hàëi&'˜ÜzÀ>ž­É”“ç.ȇiœ}ó8ÃGaž’dHZ“œì¹ïÃ^­;ŽuyË:”æZï*?úöæ$÷“ý9ì—[)‡Ò¶uæ‘o `±hÉèr4HŸ„ÃþR,}u9LòU¼6§»FÅÞ˜¬#uü'ð jÁÃÙxªQŒægïSe/z\dÇÍJ-JÕ,¯cä À}«äu*Î5?ïz?&nþœø}ðçÂù²îž|d€:&Ç{Ôb“Áð¹Pž|df:,†ÁÖ Àü«B„}ܸÔhÛç¤\7)çRÞÅŽË’O+“‡³m¹*ñ#âðÐJ"¹ €]ä±øxu5¬–ð"“5 “Uì·æ O=r뜱B´ôr“>ªôZìøx¥·Á“¨.ó ‘íå©Û”dRÐÒÌúä#C¸ûÊ­½WÍ뽨ð¸‚c¾_Iøh¸KÜçÐù\€°·x‹§æŽæNóGïnæéÝ̃?Vη•g#-ì@lÊC¿SÓ”§–Oi&=vn!å u t‘£' ¤-03HÞ¢7,[Lu3؃.ƒ¿ÖÐKäÅ‚IpD–ÿÞõªf3P¥Ä¨.¿Ì;³Yö_a•¿0¾À5O¹•ë:(Ô€<ˆ×CxÃO~\nh1Î^¿ý°±)pHOØ®4ÌN‚󷯇…œ“´`ÑòÙÔ·"×p|{ëzfdEƒgè\¡¹›bðËÍ醭­œ¸°åSi®õ®ñ£ï}¾¼än¶ý¸ÝZñJÛWÚCxˆ©‡ÀX¡X ¯ä¹'«;OËHšý$‡õ¢J äRÿd )x¨øâ|°£áøVž¢¡ßÅç¬Ož#ìŒ\KYo±Lfì|€§©.dödI²rÎñþÁïÖ/rÄêƒ)•rë[¦AÔ R~XhþÈþÒ ’i;)ëû6t™Q’˜k3•Ÿ§8÷Q¶O\‡Šàù³`÷d¨>ŽõÖž;Ž×ì­ÿ¢òk$¾Ýä/0^M¸s=ÇÏ9HQeÕì¨S}Gû]ûG÷ÛÔÒ»™?F¿-œSyÛº» ~â*wY‹Ð§GÈs(¢7ÔoàÆ)ì¬Fd ©µG~+ )õE²AÂnÔ7¨ w ¬ÝnåbfK> 0#óR訞€‘oXÃHF;“Ѥ”©üÖ¾½“ëc•¸ûîIl’5¤HJé“J2yâ˃·[(‘÷f8Ù”‡)%ÿW.íá¼ír÷5M½q­- Š÷ hó¯KßMEÇ– Ñ‹nØœ‘< Í¢þ÷˾V3Wõ<Ôv´Þµþ:úÞgmý˜ô—÷¾f~¾¯¹VQ1“Až—aLšqÁ*60¬È†´×┳œÇaPI±¯+eß)Ù"{ÿM6-RË?z[¯Õ4ºò™®d?ù[2WÊC¿Q€àˆÃ²Cº&°õ&¯×j›{Bž–iÞÚHZ€µKÿè—,o\‰í"Ö‚G>.p7~À Èw&õŽ8|è/“FÍåËk/?.ê.ãÒÏ3t,ÀCÇKÿ fX ñ×\äÿ ¯hPEÇøÁåè»i©Æ¡>ßÜ«ßuLŸÿœþ}øçòù¶üž Ú=•V.Ê„K±Y ˜ è̲F+ræ„ç *+$äú-¤b7ã'‘Õ ­§Z)n$T,˜z|иëXèJÏ º2 7•éʱÖ'ÉI‰Jóö2":¯Æ[{®k åÅ4.ýcgcÄë#ò"?àòû`4·wLécü(-\[ò°xÒÌ?ÔÇ36W9ÃãTm]®ùÒ\/…DÜ©Ž|éžÀŠb¾’xû7B{¸”÷áëµ -¨1Žõùö^ý®ÿcúœüçôïã?—Ï—ÕçÝIb·Fð$*ð'“/l+YºRy_¦ÈjЪ(ð* ”£¾«1Š›+Q)ò†€†Ìb±·Ú)Ÿ‰q¥pô“Thí£ÒŠcŒ¬ü–±¡¼sò^ˆJÈ(@8o” ²À¸µWŸõPʽz韔 °G0ªJ/?)•y¥êý}Œ_¾§\@5·±W)!ÒsA…vá.JÂPV72^ì»æ¦>5{º®Ò>'=àDFyÕD‡¥‘Iå?ó¹Eß­_ ^©¼)¶réðËI.d^Å·›ì/ê!=Hõƾÿ3rÊ%:…6rK> §Íy5‘'?ÉZ»‰"Šîœ£}¦®Y:«¹Ýº/ˆ/Gøû7ñå µ«k^œ¾|øà•ûí¹ö^ù®û}æé‰w£ß×Í¡¼}ÕÙë]ôç6Þ}Ã^Œä ŠYó©­ƒAô«RX]e Ì<ò.í;|ó ¿ç‰9Éë])̈~Á¾Gëãè“!(…Ñ/>äRŠÏX5öô *#^ã`ÅRGóªé± n”~ëä6­Â®zEâŸÜÃfž>7ü,&â-šçÕG¤ú4+4SäöLIXpóÖ~’ ZJ*•מX¿Ê%#=Öy POáöÔ¬_Rüe Ù´Ò8Iм5ôF5´ü~Å·íS¸­äL·;…¢¸%Û(fIË›n Ñ¢F¾Üé$ɘ%.pÓ(­|{<›ì´j€•®û ¿¦• é"} [2ÀTŒ“Êž³kæ"gŸµßµG¦f–Ó“³S϶D‚Å€ÿ7hÉÑžH$mæq뿪ørÆ»üï)% i^†KR^z#µ‹ú|{¯~ß¿Ÿ>'ÿ9ûûøÏÕómõ]¼ò€-gJdó‚Ÿ&iV±TÌ+Oü®ûÇÒˆñqkWÅÉŸA·ðHXîo(î²Së0’"›PmeØê?£DžU3®†’^ôùЪðp)EǰͨpÑwk½4—¦˜3/Ýz'¦ ÉÇXÜÈ^ú¨Ò­¯o÷çàAæËKË)¿éN.QÊoCI ò.z žíõÝ"‹âŸ[÷UÅÇÕûMüö‹ !¾ÒXoò¡ˆ-Ù•zïÔžkhßõLž“ÿ˜|7þcñ|[{gЪ¼¡Ðµ¶+åQ²æþðp“–sîVů¦†à±9x´âQ1‹Hl·,ÿ?§?<ØgGš‹ˆ¬Qb}£™('ä ZücN©jzC}â€kÝÊ­=Þ\ê-9û§x pµ®°ë§ü¼š&¥×AyØñ[þ„XÆê-ù}èO´”ÔÇb„1KÔLµ[{ %ä­Y:û7"ì_3cÒxùÕä äØÒ9~#â2¢©xêïhïôïû÷óçå÷óïÇï×Ï÷õwp̰ ô"\¨;“ÄÙ™(ÍS_(¬»0†šÖï ,¹áúƒŸÑ•lSp¢ÊòH‹J}«˜¦Âê'³oÙôm&uK«/ ö°AõŸá ˆQƒë3Ô‡LE. ±¿kW Ü>î°ðp*ìíAÀ æ¡îÄKÿpÙ¢Ào¯ÿ§übª[‡å ü>#DSˆÚåJüTŸ|—· “eÅ cЦ*Ù÷Ù“€'GÑ:Õ£û©ÒWrÍÒEz½UÀ±™m^£“ah‰í¡¼½ù©û½÷sîváϹß®okïHJÍ›!®+¤’®¶Ä_šB õ->âaÎ*™Á•ÉO æÔÊ+°q—)Lþ¢•ÅS%(¿p|0ô ¹"h–+ú6~Éör¤õÌ’—M¯×±¥7hä'ëpjóD˜vi¯<))Ö|é "|ê´‹ôÊ)Ä“UŒ;;“÷ÑGÅ­™%zhOŸA‰GEI¨BÏ ¥RÆ­}Æ’LÀzÕq뿨ü…$Îy‘x´¨h©½Ëøñ€4EK½_ôçÚúwýóçäw³ïF¬¯kï¨áDöDÉÓ‘DŽDUa…5±%ðpàHÐÏA¡#(Îþ±"<â´] Œº<ÌÔïæô”@ö®ÿÄr1u”“ FÑõ=ãž‘S¢¨ÿZ Þ~>k:· Ù²®#œÈíÒògj³FZÀî®wF:@?_–Á§ìZ†ìVôøýsähQ \Û¯*ÎJË䎬_>Uå ×NqàÖùÎë¹Ýºo*½&“:”Szª‡ˆWÊ Øn£ï¿²– %Î;•çÚÊwýsçä÷S/œS}Ûº»”o&-÷a—ë~Ó7:²®}Î#pð‰ÚÙ~šPŽÀ:¶¢­Jª‡cçaá"e®É pžuCž"Rœ(C|Bpr¦)’e¶MBEa'ŸüáÈÄ ÓåM†ÆESE„ToíøA×Ö/ýsž‰šå U»þuÓ’î†ó"¿Ì$òCi¡r7~VBDŒ*ym¿«3'´ ¢Œ…êÈ”4BÔri߀îèò•rŠKÿMc¨“6óÚˆ¬2¸rÝ>~ù1iž=^ôçÛ{ý»þùsòóïÆ®Ÿ/ËÏ’ž`†¤°¡XVšØaÊ,Îöу”愯ƒ"}¾÷ˆƒ¶,> —X*‹]!áט#>dޏ{§Æ5ê%[\Ì衵9`U8¯ ¨sAݰJÑìQ@¿·nœk½íú.Ãwíɱ“ëFÖ|ëŸPÓLd)/À]|ùŽøšPþ¤B|_ô'ÇRÃϵêðwõü–F—›óI’Ψní;ü¼(bŸ·þqØS'…ÕM~Øá1Û“ñO㟠·ÐÁó¾éϵ?ôïú?æo—ÿ˜þ}øçêù¶úr:€&ªXÖeZôÓã"÷û€x‡ÑŒ_:¼Í™Âw€ó  öâ+ù:Òƒ½ ¨±¬/KK$ @vWgJ8ñxÏ•)ïéNõÁ•ïàî21ŒFAîÀs¼5'šDp%ŽÞnÝgÅb%1½µ›øY±Xå|êór؆Ÿdý)g˪óðêSR ±ûg,o6mé\ìÄÑÇ¥=ü•r÷¡Qô³ü¶€å´ Tñ)?7±Ì½üÇx üø[ÈT[PðtªÏ7÷Ú÷ÝûÙóâûÙ÷Ã?VÏ·Õ÷$­ºÁ‘³M_ZZY£ø$ÄVXÌlŽZ¢ÙåY_T7“ãR-™&{± kx²>+xE#*,gV>R¹ÇJÎOÖ¨Xñ ãje»sÕ’–»J\ t¬Yw˜fätBnóÖ\½üCƒº\({÷ìH¼œûEü4Tü¤k~­ïÏáS·ÀûLž²ù±Ã?Õ'ßñ>ÁF›Ì”Õ—E¾5—ù‘'Ìèu”Kïø pk†]tH/ß¹ˆÛ“QïG¯ÙZ…ʦ¶O7åùæ^÷®ûsî6éÏ©ßÆ~®œo+ïð>ñ'¢¦lÌzà[œWê|*¿°áÄP°Ü^xóÙÖò¬FI²ÜàÌ<Ⱥ2 Ü…) cî‹{T´$κXÏÁ÷$ûjn2õ«òr-#´ò80‚¼* ¹aV«é„P K{’gä)*A·ª/×âÖ#+­ ‹¿8ùm™%ùd¿|Ž_®I óäØ.õamüTÕ;Ðk¤%y6£ÄDR}´—k¤%5ånýw•¿føÀnòÓÐSÒääsüâ®MMn>õ··?õ¿÷Îß.ÿ9ÿûøÏõóeùþ'@$'Åæ­ŸµPþ3,HŠÙ ‘ik—æ”|A8— °ïòÿŸ´3Ù™u×Íó¼®â&“eõÍÔHÈÀÉri û$p&¾ýð!õÕ*QÚu 6 ¯ýý*QTG±y_Ñëîùþˆnõqß¶/ÿ1ýnüÇòù¶üŽã´*ÌS&¥ÑX%Åþ©ò•Ý¥Ç)‘‰Z8ž§ÕÕXH}å½(_¦%ûN 1/JVˆ*9kR´º/å3Ë%>lUÀ‚Ú øPóÀuÿ€ú*VÀw3ÎÞ&¿/V¿™h¾9@b‹Óºßº§H—×ëÊ9>Ä/*¾4ŸV‹ê‡Ï±Æ÷ÅvåÔ‡S^^/¥ec0jMA¶êlšbu¶ï@t±ÙÔAtö?Tþ ÖoºÉ?~XC(ã6ü¡ðb™¥4½ö~¶Ö¯‹î]çûÜýì¿.s￯Ÿ]y/·öŽ´ ¿Ê1,„2ZÀ˜•;l!@°6J +‘ˆóVn;)Aš1¸`ƒÀ‡¢–K³%ûzpé +2“iڞƇŒõOmˆ!7  )[R Ÿ’£*?O9§-Sß\nЦÉn/—îC° ¼–ÊEüÐTü¥ê“3ò9x²N‰'&£o=”懦‘nùc9ƒ„‹ie/g{æ”Ã-9:û¯È¯0t-Ýä—… ‘Ïçx?Mra­{ñê;šïÚ÷½ûÉóÒŸ“¿Þ/o ï W@þð ™V¤Ÿ*gO£*ÀÂø-@tÚ5ŸX¾'Í|ª'ÀÚìgü¹…í WN á‰ãvà¸ö^(`§ò:ù¡\½veÅÔó‹âSñ Þr^V˜õ#ðjº47ÖÊ@l¥Üz/p®!ËUú¬ÒËÙ3ß0TÛà3bx º]\^yšFÇ–ÓóŒ“%Eö‰Rí3%àšjÜç쿨üÕ¸íñ'õ3#SÃJÇð)s ©‰œ“~QŸoï´ïzߦîg—ýuμû¶p~vսܺ»äšvDaÍ0ûsPF#+<ƵHWœ‘”_ÉZ…Ö<š"»'¯¤v˜LHânI# WlñnLt¤ëëÒÖ˜ÐúeÔ&Ù®C¾ú¬S¶?ðj_*°[–y°Á펠M20(ß?‡£ÜIíBöò+0\C3Z¥˜¿Û!Þ?Ný)0L2ºt®"X[£Çtk®Às³îÙ{Vؾ\-Õög„wMŽÎU©³ž\~[LÔ2.Úóí½ö}ÿ~öœø~òÝàýÚùºö¬:tPåÖ¨˜( ,NnnC¸…¦}î&%€ù™8¹¼›O?¶e¢–— Ú±. –ÀÏJÍ VÜo¨•µ¸ÀÃjåŒÐ¬R—…zŸð/ù˜U~a(5/81òóPZ¬ÅåÚg­:›ræ[ÿéT*8ꌾՋ¿V0~møäðGðÜs}î€M}Í~óÛ`â½ÝË¥=ü,@9CM<ú'K~¿©÷ç"?ÔÄòs..@?~p³,Ûù¢?ßÞëß÷ïçÏËï§ß ÿX=ßVŸ­OÐõ*Ø3퉹Â/Ðà×õ¨k¤ ÕŠZð-V‚X=<ð5p”4ˆKÆò”°úy@®˜~—H Ͼ'på’åéXL.2¸6æJk¬Qþ\îõ§„™ ¯¼R함\îÈ:ë¥uTâ*yí§û¥w²tÈ-}¸"½ôdtÊÏë%ýøÔ?G•¹jP_ß8 ÚS¶Âöæº4ø‘ËP$¾³½œN‡˜Î­¥â†(3®Œ'¡®S6o*¡\Æ¥«¬>2ëc>ÕçšÊwÝ“çÄ?&ß ÿ\<ßß…é‹”ðôÔfhXý€ÍQ{¸¨¾ä†¤lÕeЀ?£nÏ=«yámBªÜAYŽ“†Í‘ôÁí;€ZS1‚µ=YNj¢¥n(i¬PhY~$]¨³ x{N~?ÎYÞTa[{’%Þ”å¸õ1‘ X„^þ òö5R·müÌ5Ü—±•±Ž’M˜`ï´Ž¢Hô•:…%=ÛãG@ìæž.ýcÓõ¤ìjo{ùõ¦Q«xÿ$Ï)‘çE}¾¹W¿ïÞOŸßO¿¾_>_—Ÿq,Éa…ePŸ”º^Ox}Rl³“E+cm9O”á°Yër´‰±=ÅJŽËÿ FMSÛʸM:©9aAÂ4ytR6,ÆH7“UyZÈòY_Ôrõ5«c!ï'À|m.ï`—[ïœ`|MÍȧôJB¢÷ýq žRÊAÀ®åúùT^ LÐwî ¼™³h¬GõÞ¾‹]šôÁÑ{¼ôߣÊ//î<äï€òöŸ–¾šýøå»˜ T’ÖyQŸoî´ï{wsç„?§~ü±r¾-¼Ãó$&L¤Æ¥†¹‚Ü €¥PbßÓä•-ÁSâ ?Ÿ¾„Í`!%¤„:žóª\¡Ù°“KW¬ù›øÑZÃ&r€—Ý ¡Ýw®åÌŠ“žï¿…×° “¨»ê“÷±k55¾Òüwý­:m.+,ÉÏaž¢Ò$Òe¶>ÛS2I"}/¹Ýºo*¾âàõ›ø$ž’~)s» ¿ýÒ(o•eLîÊsÍÝ»î÷©;Å?¦Þ _:§ú¶•÷<–Ѩ jâ ØEÓ‰ì­4IYÍ2ÀÔeÖ±êÿ!Û”‡UïP„A"¦eñZÙ"QäÒW¦?c‰`=/)Š6äHo3jB7ÕÙ0-Ì÷K+Ê;`i3õ ¸ªø‹Ç­=$¦Ô÷åîqÝW¦úm}|È^Tv1_S)¯?Ž‘ËwÔ(Âã#øTœ|—K.á4>Ø*›•\ígЊ y¶ôÑ]ÿëòDx ×ë¸HÏå òµÞh69ÍH÷«åùö»òÏþýäyù÷¹?ÆïVΡ¿máv(ޱ„ÿ;³ƒpM´N>…ú›€ô%‹SisÙIä¦ai€¤ot"ÑIÉwÕÎ*˜õ‰çñZ„øy¬–æl4{»Éwè–‡£8¸À×ñ˜qEë ÆXp¦òë¤ÙÔvkNJ3” ݺo0tÈÖMÝ"\Nzp9å÷+¯ÚÇßò9ú Ét0=¿ÁÝ?µGH§T¯äªÜ;p_%×[{¢µL[Ï¥Þúo*?ø`±ÝäçÔó@ Œoã+\“8±{oúsíõ»þéÛå?fþ¹x¾-¾K”l1øô=fYxsq˜éJ1@Vy)Êê Yè9Í· ™*6P[WF$ù5“õµæZ¶q†ó©Ú¦ÂÅ‹oãÉC“† ´í@óô‡öv€Ã“™ÉQ´tu’A*7Z¼µ§J$+?Jg÷øÞHœ„Ûo\¤M¥ÇWØUŽ>*k’æ7ÄЇöðŽ`Ìâû‰Žl¢0f¿5'ûì4а¾Ä|?!~—תâœÃÇù2ˆÚ…e‰;õ)°¼®f]]”7Ð~òâ2uíɆ¡oÞÑÿPù©7PÏú!¿\ÂDhÅ^\6…?βØ&497ý¹ö‡þ]ÿÇü9ùýô»á«çÛê{\£¤ß¬{RŠ´Ê›êrŠí.¿ [Ö/áQ)+2‚óQ,{Ùƒ¯’£¬³^ùýÆÃÑ 0W BO:<~ä ´‡„fiYÉZxÒáÙ{8Hââ-4#áî¼µ—«˜0oÝŠn FÛÊ–vâg_¶oKË6|‡då™äM{Y™ y3§hÎ u¦bYÍ¡¿äÍ;(¿ô¯BÀßÕŸà¥rú+ü_ šƒà?´þ’DE²:tç›{ÝûîýÜyñýÜûÑûµóuí°IÑûhèVðå˜äUýN8"l8ÀI©—–ôV¹Âã9; 2û\aK¤å¼}Pc½àd†âPF‹´© a\ämÕîZ׫«i­|#àVíšÛ¸ê—æÊÊyJ¢ø"ÏÞ{g›FˆÛºfœôÔºC?)VCû}>Oï³)Ö•–¾éŽCîÊÔ 6+ñ1{ žÍIq*Qk:ò­û¢âËãE“Nñ«RÈ5;z¾ ¿Wå>€¸a¤‹ú\{¯}×½Ÿ;'ý1õnôÇÊù²î[´ùÒ Ø tüÐy[¶h!,Ǹð0åp¡–#µÇš£ä”²ÿnµi²µª¦íÌe Nò&É^NÔ-ÆöRi1!°A£™°ÅÃþiOÄ»â#µ¡’AcF¬·öZ{Oíï8óÖ¿˜Sr¾ÈC*.œ]~™h‘_ì­üdDìãDL1îÆö¼{>õGí&ðîjò­wK”cÍ;Û=àÝО´ë¨ü<ëì»]~ùAÞ0%å…éàÆ?‰Œâ}N§?×þпëÿ˜¿]þsþ÷ñŸëçÛú3s”¬5àԦѦ(/ƒX€â4$¨¼Ìµ`eZÕ Í£aСžFj2ÔÁKBÀ’åEz²úR ¾åyYF§„Ø’¶3Ã,õÌ0q8¹C·P¿˜B²H«žõíÉŠ“Ç€œŽ¡ßú—³7ÜV,ÒËŸ‘J]Üçø€ì Øëô—)úŸ‰ê¥7­PTPöÄ[{kÍfëß2×äN†ü(ò«½.’àg<ÇÏw±m©Ì/§öŽÖNûGïnöéÝì£w«çûê3ôDz:Q¸hí bF5Ï |Ä<DQ½YÙ ,±¡ãSRøÅ$«_æ·Úw9®ü“F)qePü¥ÀZž ]Å(æã»l'ynÆRVYÙ­” §Õ^ÌA¢U JÛ”õ:8Ú¨–F½æúWN¡ ¾µú(ù©‰ õV&-½ë>~ùjY þmôª»þ¨.ŽIœaô®Ê#H2J[´Š®½2-“ˆV­¢ëÞݨ¹X´Š»üïÂõ*+lÑ*îãOJ¶ÌŠÌ‹Vqןoïõïú?æÏÉÌ¿ÿ±~¾®¿‡/ŒJ)-~2™”@|wäÅFu°¼·ìÀ¼„E Ò\Œk, 9’dªS®ï B6 ¾Gûð_´7?+hTâÆuÿÁÖÒØºÉ„‰˜™ššÎb¥v¦…žâ¥y‡Æz›d‰®w­RÈ8³…àváqI4Üãß#· œ'ùÞõfX6¤ic7×ٓɘëßÚs™R¾$ókX8®÷¬rJ#Ñá ‰½Ümséoƒç{5ælýØuw¶wº÷ý»©;ä÷SïÇïVΡ¿}ÝÚ8iÎ"NŠPÃޢ̼šŒäW*ôô—£hª‘Ǭ ¿ª)ÀHáz N-ÌëhezÕZÒn¬á¨ƒBJ¹Ô »§¾áÈÈ”k©™é \OÆEt¶/¿|·põíëî(¬#X¤¬Ò˜¼?Îl#aª#r\jeÈ+r^i †Éw­vǶ[½Šƒ¶²€Œ”‹S£fXçÀº”,ϱÂà ‹*‹îñ*KU¸q2È÷… Uv†gEµ­¾}þÕ’,,\ÕñÖÒ¤ÓA­F¼ÉŸT~µ¥´¹~T²Ú€igÀF»ö`s£°hQõqEŽTâ”e>»æ |å ¨WÏgïj«×ß‹ðTJ­º•‰ûÁË÷ EÒlq¦‹ò|{¯|ß¿ŸÕÇ])˜ŽãñA&V ƒ·ö¢˜AÍÿªfpýOä—÷GÈOvØ.?µpTº‹ÞoãW4jò›àã¾èooêïÿœ¿]þcú÷៫çÛê»@äSÏ%ç¯X)°ŠäH"«Aä7½:±„lÛXu{§žS(û¤Ù®Ã1KÆŽíj"òó„ì¦íÚ "ºìû‡ ³G–£ú9àK÷nuéŠÚ0ÀØFõÖœÜ],ô¾Šï],x¹gpÃÛcÏKUz¸KÂc9lƒ¥P9Ù£I^yT”FÅÛ4g›\nMfe$%<›×_š4Båã­÷¦Ò÷Ù Hí¾‘ ÊȵÝßÈ›6Î…ƒæ”·7÷ªwo÷³‰þºLû>ðmÑüìj{¹5wdŠBË ð|àÞ²<ý «QÎ àöÀÅ%†ÃÌeX9‡ Ú›ËŸÀâR¹Å·©R…!6-–¸{RžýXVÞ dUé ]³ÔðDÇÙ )MTã®kÄþÖ\¬›Ò㢖KïTN È2WÆ›—çdâä»[t{¼|NZL€±F¿+O?PJÔ’.šDt]0.í•ZiRl¡ ®Gÿ1¨ü­FŪ;䧯à¯ì†uçÇ©¤¢:³Îe²ìúóíú]÷~òœôçÜï£?–η•gzÅRz._ÕäÇHÇ]9x™Ü–&·×‚`‚€Ò,‹F$î °ÒZ¶ï”@9ª×«ìdé[ž‰Íî”È“1<ùŒœEß잢ì`€ùäCR}­ù.+KZ~‚¶–níIއ@z>¬{ÿlãIÐ ’‹üdúÊïÃ=WžÔ¨Ïñs†$ƒóFö¡>Èå"‰»N…x' ‘£±fþÈI)S!†Ly]:o*ü„ ¶Â[ <)J1 }Æ ž`;T¹=.Gñ§òÎö‡ò÷þÝäòŸ“¿ß-žŸMy/·ö.ˆ¸À}@ZÖ¬,‚h8)0m.HÜÿUJÂè'Ä–!‰¥­w‹>©Xä«CnÒ^DÛªÅm²M­*  ¬ô ( -ECžßÑÈ1Ø¢bl[®eå…X`ùÁ’ @ˆ¦ëzu¹æè…[Mn”rë7 L=¾_]›ôY¥'ÛÓ0ºýàÕ (JŽÝJn¼òÄÜ¢xŠ$ê÷³«qÏ’¤viß´D‰m ãÒ‹*?(öXƒ‡üàÕÖl8cã2~yØH#6…]|èÏ·wê÷Ý»ÉóÒsïFï—η•Ç2ýÇŸþIŠ(òàÁ©?ë‚_ÿ¥(Š eÏ¿þïÿøù¯?ÿ[m„øóŸÿ£Á+¥8 øÓ+° @­ì—uCº=ñx‚J!ÖªŠ¸ó_þ¿ÅPƒå_%ˆ’Bæ6V%z TäðÎ]’„ŸÐü—×?¿âãM¶ÿöן¿ûO`ÿ»ÿóúÇ?ÿÛHIÛo™W«n­ÂÏ?I‹yýý_~þî?`ÿüüå¾’¦š’j?PÊ/Y ùï¯ÓÿíÏ_þ×Ï¿ÿËë¯pWbþ50ƒ>ŇxûßÞÅ›ßÄEâ÷<¯¹›„ãO%¤4 €1Æ&á ‡„ûß^%œñ›„ÀÎbØ$œ*á¾t>%L‡„n™]%Ìß$­>Ãö îö.a &¢Æ`ºâmPAñ)bñ"º¿½‹X¿‰8á«W¸¥UãŸÊ§µ½ÍÓñ&ß±KÜßÞåû¶K2iZ5rØñ» ÓŸŠË=-ôö)â±SÜßÞEü¶S2ÇÕïØEÌ*"gþ:³ò§ˆbê"î{Ä‹/"Vp@)¶ÎüÀÇ,—?Ý(ûùJáÔÃ%¿º·Ï.ïµÑ×Ý!öL²H­SŠÚ‹<} È3yÿü¨t÷‡ôÑonñÝ÷¹ŸÜJ¸¶úzë 1˜)O·‰·OA~@Eþó³Ó‰¼_»«ós9‘¯­¾ÞDTàŠíÔÚê."7™@äô§g©¹¨Æ&øé<þÍývmõõjŠú†ÈÈÁ÷’õTä?=^½ÈÒªßô¹¿:ÿ[;ïÞêom½¬¸ Ö-a¼U@EþÓãÖ‹ :¹®H9øßÿ­Íwoõ·v_ü}ZD¸gZƒ×ŒP‘ßÇoúù‡×ͼûëõ þãû‘K™æWóïøn¿*†güù§Wbý²<ƒ—•¤©§{ûÇñ«{Ë×ßøþôú÷¯¾~ùWšÝÿðóñÊ-¸0[id|t£¶­¤[Ã$M¥DÑlÎÙÉ)†W¨¬·ƒla‘¥h6è×r伊ïå™õ…¢ ` 9ÈTÚ÷D˜—´è®íeÎåµ Kj*«ø_^id€vms)“ [ËÖÇèWâ¾rkß)TnÝs¾ÖflïéAÿÄ?¨7Á])´Ù„1+Z´×]ÐÄÔÂ#Q¡ˆ yhbDE¸¨nÍz™Ä¶è3·¾‰¿h•m[@‡‚Ëg}q6¥ô{£#PÉÇ  8”v´>t¾÷íæìgüu™òmØnÅüìZ{¹ÇêF¼ ×BžVò, Š¢U‹˜º&)ô$÷½=%Ó ŠÊÿ´ºæ¾÷º`ÝJ "ýÊìW©f‘™×5 <_ËMÆÒš×&O .¬•ð„àgZ#(…\‘ÜÂç,oQ1ukÏWCÏö<û ËHã¬é„‡üÌqC™užøñÜ ¼“­íwýQE¤+­¨o!C•xIƒýlžÉg•å#›']zÏJj¬µŸkuìÒã”ëCC_ƒÛŸ•Ó8Ëây^”çš{ÝûÞýÜíŸS¿ ý\9ßVž­Í¢_®(+M¤-•£ÓÎËlIEIeµ¡‰zß¹9äN 3 K(Tðó9sy,ÈÂtë™üzxøµ½l{q€8˜<”ç¼ÄQ%2)“ ¥ð1kˆþÖ^¬„*&ú(åÖ{ÔÊRÙêšw² ¯;á[T˜Üsì(  ƒÖíºÓæ€ò -ÿöU ŽVní› ÉAØ{¹tßq›í¡^„ÁKîCèÚÊ6ò—}%Ùk(ÎΡ·³õ®÷×Ñù>oNöcÞ_ÇØ÷uóó}ݹðŸnÈ™à}°MTˆ¶tr&'˜Vyê¨Ü‚µ¾wAQ¢e[䣒/MÈfèÅ(HIéÌ ÔkýiJ¾²NLÊ5ò|—ªûUGtkLõÖXO.‡_gßÜ{°Ü€Ó×ÖÅö[r¹3A—#ü°öÞ6l„òÍTUé9­…¦q30Ž£'ÇÔ ÝníÅ©œH`»tŸ“ ¯/ý"|¦Žaò.QÔÙmðÚžôË É—¡šs­ÞÞisÒ»i?FïÍ¡½}ÍéÑ `@HÀÍZÌ¡€.ÎK/¯,eª *éÏò=i=)9Iö»€T{·˜©T²gB4ýñ܇××@pä{².P¦í©²!8´Ž‰§r_n£ºÚC )”}Ä©øxëjqí°jÃxE]ÿ8Ï$Ð=®‹m•žª‹aó·žlàäÓÖ»ò¦æqƒti§SAVêaId÷å3s«š*­¼Ž®KRÁ³–½zÁå3+K,6Ù³»Ç¸ Õ9 Ë¥sz;Û{½ïÝûyóÒŸó¾Þ¯›Ÿ]u/·î\ÔO· õx‹e§p(˕׺.Ràà 8·á󦲖R}‰@!!<‰ö$tP~ã|¶‰ü>ë¤Yò¹tc†±îÉŠ-,Ö»%'ˆ¨<‰ bœïÞ8-BVR”!hºµ‡·‘5fÒGÿ¾*Yg±¥‹ü@g·£¤Ëþú?e;Ak«þ8ôdŒuLÉ*s5öl»µ**h·þ«Ê?Á¥œ7ù ,/‘Ë;nãW°<’Ô»É{ýùö^ÿ¾?Nþsþ÷ñŸëçÛú³c\±k ê,‹KŽê5˜êþª»½KŽÿ" LCÔ«˜rz°½`á„Äè•dó*n§n6 -!K5Œ‰p¼µÆ@¬–Åh.²=º„šÃÄ^ûE‹åF©6r«Tå=ÚgMeáâjõÒ=4€Ôæ…u8ᣠ/WXe4ÛØyzPÖ àU5•E,,Ãl-E‡<±3eýÖžôÊfkýÖ?Fb‘'~‰‹¥Ð‰$‘q'hŽã1z ËàVJ=}jϵ?´ïú?fÏÉL¾ÿ±v¾,=]›UKå3ÎEÚ”jR7ÜõŠ'™{1J’±!qÊH»‚3ÒiìER ²~‰{ð}Ùüìj{¹e§ S“^)Ù”tÆMм á·%™§tþx)òY¿ÃaVº] ]1æ åP/¢|%ŸOÆš”·ƒïÊp ïC2‰QKÔuV!Iïð—e…ñoö5yú¶¨#ŸYвqç@V#—á©+éÈÑœÁá°™ïhàP:Åz8¤/H/³׋Ì=ÿ’‡Ðrëj{¯;Ý+ÆXUΖ‚£¿ëCZÑ~ÎöƒäËeM8<úYå—u\oâ“øZå¥.ÌòcøCÁš(Ž˜å‡ú|{§}×û6u?»ì¯sæýØ?×ÍÏ®¹—[uþÑ®µ£0y^øÀc/²Q(‘$ÌF|+’–ÇæÕ“9*܇\0,ñYn\~Qy qØL LƯCU¢ì/n;× ¼LLt8ý›vß³L@\­ƒ¬M2Tå¨ÐÚ¥Ž·ij¼o :3'e%—¾µt©R¯¯Ö·—¼¨ärÌÍ´ò㦞…*+y{êÎtJƒ1¢‹2znDòIÓxUÎÖ$#”iàY—¾Y*ƒ²u|:§är[÷^yxÈõŽ›7Å–Ò©µ½õ¡ó½ïcÆvÉùÞÇ}¬–?_jzZRV$ö)ÙiÍ([g ,¹2ƒÕ»@¤R¬øl”¯rvëbcã®Ðš_’¼ÍŽ!ßÈò窑 6hž¬ÑpÂYÕÄÖb .ð¡e÷ÅhdÁ2§€†/Æw Ä + F x˜ °Û¼úö&ˆœÒ¥ÞLÄ(MùñAŒ‚(¶N\wáçø•Ï7ãr6|6¯?ØÊ±á¸muaé'ï‚yi-_aEd;%ž«gçŠF+/™Âx¯ßº·¯ñº ˜K™NðWÆ¡¼³ý¡ü½7y^üsî?ÇîVÎÏ®¹—[yfbNPð:¨«äI`5ó“jb¢Î Ùx/ë'ZXŽ…"‡M6 V ] M~ãTW©Ÿ¢rMk/Ú‘÷ð‹d…/c“«9=¢>Ø!8'0² ¯‘»gX¸Ó7ÍV¦Ú‚ré>O¹~ÄÌ’´\ÄôÙ×óÚ>ƒÆ+ÆE"À£íwíÉ÷ë3ÇC{Ì0Xª2L$—ö ŽJê0·.ýËζCa²ÒE~ ;—·„ãggñ:1ŒñC}¾¹Ó¾ëý˜<'ý1ùnôÇÚù¶ô¼#IßJ²ÅdgT{Ke1¯†¼KÒwzÁó {&)¦o-1I21…ò~êj•ÆÐ3¬± áëó÷KYþ:¥-wÀøAÝû¥ ËøP‚ ªLqPª¼_êî EõÏ4ÌLiÄ[{"ba—1ʸõÏ?•¼SñùÅBƒ9\Û»ñƒü0R†±m¼ßšúUoÑ)¼U¥yÉê¬uÍì©›Ääõu鼫ðpìöxÿcmø/2€àçØ‡Â`ˆç¡»£ù¡z×û>u^öcâ÷ïëæg×ÛË­;s å_bÐÆŠ[Ì‚(šÂ`¤„e¢'l IMűrà64$Ú÷@ì¿°Õ–¿U^yÒ3NâµÇI:6w³º²Å8¡jØ*5åŒ(`v+§ºyÂ1€H›“]µî ?Ü­=–R¥Œ#Åxé*x(u!ùQ?.—¦à¨ÇðeöÀƒ® ·ëZØŸê#ËFÎ+°öG~œP°C–Vní ^—JùZ(—î«JOõZ¯7éaá•ã¸f…Ÿ”Ä“SžD¹òµ|îh.ò$ãgÑÍã»—+é'L¤ã"¾\±nyO,Ö>zùNü ¿Ö.Úóí½ö]ÿçìíòŸ“¿ÿ\<ߟ²WùÊd±Wl.AgiÛB͸ćòdb>àAоÀÛ¡" ."ÓuÂõ  Ê*æL"Z[̶2bhGm#£†X»º‹»n¥Áö5[6RÌ þSŽë LØž³+òÕÑ^ ÷N!uËË[êúÇÇÇÔµÜù”¿¨ü¸„›³nüàGY×øÃµ½S_Ö£¬qÇ?~8`£’áh§£<§ÅLéÖG~±$UcùÁ ‚¥Z¸à?(/”—VnêsÍõ»îésâÓï†,Ÿ/«ï°F€ÓºcVI´ÅÓ’på6ÜÒbk³kdaàŸ†¯§¡ëitϺi*gz.¶YÜ!S ¨|¾M]ɵ ÔÍ—¶çò”$3aPlWd‹v¦×ƒ“0‚¼0eÝÒ ô@XŒýÖlžÁ+¡YÔÅõÝ-her®ôr‘¾(ÒƒbØ{Û ç3”ؽñ¡;îOÐb0Çê2¤Iâè ÿä[sØÒJNTúçK÷\ˆòóbä½0½øEák'ˆ†<™á€(Â+yQŸoï´ïº÷sç¤?¦ÞÞ¯œoëΟ¦rôKO8ªö] YLz‡f-éë R®°ïz4c±¯Êl;ú©žš*,ß³lH’S^G? PÊGkO{˜´EáÙBϼÅ(r={Ú˾T–±’ÖÛÄtÀ{¦]]£Á€²*³öáUó [³Ýú3V C\ÉW×oùóTùSïïý:ý=~YÖðŒMXµÚº:?õ§W»GÀœöõ:–Y—»ÜÐâÎöš¾—y…x뿨üÀ÷,Á]~ùÞ@’_ñ2~ÅY—#†ŽVÑXù×'eècj<ßI„,—# Ï4wp ø¦íe‚ø–µ€xH&)& {€™œÔ¹œÈRÌ=LöÖ¸µ¿ ¾gì¢zëbi9BÂQðò÷©ò¿³G¨'¥L+@ˆµý®>åzU04M•û© ºI‚eR*$ß¾’c”ý—Oåì_?*¿ÉS Xœü|2AiýÊ9~¾ƒ;. §š×ßÑÞéÿèßÍŸ—ßÏ¿ÿ¹~¾,?¬²ÑˆJd9Ç›f¶}n£ æˆ@"Ä£%î ¶g4¦W}nÃ)•c +±OÔ2@+ëú$e6¼l$çrÑÊ9¸à‘¹~‡æW5ƒÈÚíb[cªµë™Àn¯Ã²Ù! ÂwR/Í¡c H‡~éžR|ùCÒïC¿ˆºŠÏóÊù؇ÀÍ¥laS{õ‘ÕI„,ýwò\‡†¸ò޹µ×ðcr)Œyë¿ ?lk©ÝÄ/¿ôõ–H‚º ŸcJ'Y§ö\óCù{ïÇÜ9á¹wƒ?×ηµ÷„šÊ0ð§¦Æ•èV'¨`,ÒD¸5QJÑõ;Ðóux<ºär¸dϹ Nÿ0T$½3»U'æbþýˆ¹3W¤Jv ð¾rcþ•+ ê˜Ïs—Ò¢ ·ÉÐK©I(¦_«·ö˜GPé$CM;ú—ƒ¨*SJz?w?åç9Ýe+È×¥õ9~õ§ËQÈúX—Þ‡úØ ƒ|³…†ÅYx=AŽæd)zÐ ùÖ}Uñ[ã軉Ï=#·.åù6|î0Ødé¦>×þP¿ëÿ˜¾]þsú÷ñŸËçËêÓåÉ›Pr¸²¥3vò 'ùA<œ°"äb©X5Æ€ÄÀZ;¼²"qƒ,gs‡üçÌïÃw çPß¾î̋ߥ ÄÁ–ÕCŒ™ ž6óâËE¥è‰ÂÆ Cù¬–Ã35rR´¼8ôøñË?á_ˆÅñÉÁÐ~¼½ÀC.lü”†`È"#¬6ÖµBeaÁ€ððPs XJk.Û–Ÿpöžå©ÐÔ/Âg>qò,øçÈY0õ‚Mí¦8Å«1ÀojéHòÀ†Í ÔèÙníç/r­^£Þz—4²“g²ðj?e×ï$Aáôï1öʳ©©ª;Û{Õûþ÷™;Å?fÞ _8§ú¶uçŸI$/TpêxZ£ü¯Wu1à½8Ha5xÝ &N«º¸“e(Ï@9Âí;™[ྦྷԔ4–•Ù‚ Ìd •/NJõÎJÒÒ ö:Þ^¹ Ÿª,øœÈëÆñ$-ȃ+\íÛSËU4íû(›šRWyõ‹ô$åȯ÷U̶]9*yÝŠ¢ß?U§Ìd Q¹ø»ÞF§‰¡K{ ˜ÖÙƒá¥þîüe’…¡z¹õ^‘é­(Q­¾mÔz­È*­ç8”v6ß•þr»9;wsþòwkæçûš;*倱 ÐÚ´tû”;é‡Õòš]¨O‹; ²„‚QaWlS¾wöBµH¬ºòsŽçѹ<À_Yöïèå)W­. ºÆ}¡\ò 0¯ö‘TR?mâð zeÝÑ®=°mÊ݉ŸJP¹4g‡â`YdŸÃ‡ ŠLHt­ý®>ÊPy¨ÈÜÅ'kA?<¦—ö¸3“¬­ÔKœ—þ‹‚ÒÉâÀ½ÈOZ\Î8ËÓ¸ŒŸ*7rä'40ëÔçšÚwݳçÄ?fß ÿ\=ßVŸ?U;A^ø‚æg’€¼¤ð¡ÙöÆV÷•Q¯à‰V²…0ÌŒ¹OÒ™Ü ö|­¬ÐWØòó¤ª'·ó¶PÝÙ£Ž¤6¬OÅá à~µ«}µÀJïUC2ÅÒÂ%’Û­9áþ®•õ¦v½ ¤E6æ3ñÂóÄ¡¤Ë¿ôƒÏÔ:@”[‡¥ë;å%hI2Ø–WÜdP¤ÁþÎ#y§üÇä»ñï‹çgWÞË->áS!@~•­gAT©ÈÊèJˆA‰Ï:’]µ^]ážè/™q£<G(ö®c«ÀÛELD^âc•ã‹é5’í$­2P9 §VeW 1Ds­™KbPœµ˜¾*ø@¨fØù怑ë ×m¾õHsktožc/<9z‡`–Ù>xÈ%jRǶb»î´¤]ÖP+Áj34H.ïÝ$gëùk(cr—Ωê»Ø9„ÇÐSÒ—ÁCj ½Q%«ë^y¾½×½ïßOßOü6øËºù¶îÞ¾§ ÎAÖÌÜ5ؼ„›çÛ÷T‘'œ|'Ÿ]öèr±-3IàUquðá¢x»xÕk߃2<<„å,ÐðTKàKÀ'·ž€JWö€ÞíúLJ›*'Àµ5èùiÀ'¾ !×yÀƒœ+Gb¹/[áAÇZ†Ø>v\òQNƒšÇJçØuÇÐ ¨å]lAûžWÒ˜kÿ¦Õ,wv­—þ«’AËQR»È¯þ#ŽäØAÑÿzAé NýùöNû¾{?w»ôçÔï£?Vη…g{ª[ÊÌJp¢f´hN¬àÚ›e:QZªµ? ”bÌì¡©2f¼ðÞîÔï]=Ц0´Ž(Ååô¦°Q ߌ´pÕeÉ÷@k ±ŒI˜×·lÆP–Ë}RÛÐʬFPëMsEû|syc£‹áÝË­{Ùš9Rè-×È‹_TüB Ùûö1z@…×Öäyã}jö±¥ÚÃq¹ ܡ޷Æ[{ E8÷³&¯žý+ü9xæ¹=äŸøéåFê2~^) ÚÃoySŸkîµïz?&ÏILþ>úcí|[zvn6;»fá©SüO°%6cJë÷–i)Ï1+…²`.wjÆ¥‡å{%ý%舡Ù÷Èí ½d[GÔf-ÓRÆÿâ Jh= ÄrCnð-E 3¥[{VG…æ¹Xn¯ïŸÄ3¯äâ›7ù“ʇÓ;è°?)¨Ç!³NÞOíÉÁ­Ê·=EAé¬åKëR\bh=ß:7œ;\á¥Ü„çRƒ—ÒH—Á× XqòîPÐÄSy®ý¡|×ÿ1yNþcòÝðÅóeíé⌠Dê_Άž•9J™V_=Î7-òÓ‡ Âc%E³4Ö,:Q…^–¨Q•âpÈεD H!Kúå;¼t™à‡N12¹ˆä¬·<M÷’K ÞîÕ^.må‚êfQ/ l ]Œ¾=µ`ùZnÝGeh$ ߤ×\;âïBâmðpòÉ•åòzåð¹csXQ¦ËZ+J6Ÿ”)Ü׸t>UtŠþ”¬c]­AŒWl€1_ÇÀ“ÂÉ+YßÀ^ogóCï®÷}Þ~6Ù_—ißG¾¯šŸ]q/·êŽT¦„! ^†2þVÊPäDÁîþ«%£Ê›b*_˜~Ã’ßú8Áäâh²ÏÒb\mÄ€ÉGx¼Íà¯LŠ©øa;ùãñ\Oø(µX¾$çDhx|ßLå¨YA;·1·c0üßeÕVZ·þÉ †›üEåO„ãúr~ŽBæïq"~êO¾ƒW€Ë{#yIØ ïÜÚ“SIåxcÞú¯ê¤¯ÝÄ—=6òoÎÛð1Àéê=Œ‹ú|{¯~×½Ÿ=/ý1ûûèÏÕómõùÇ{­²(Þ7ÊwІJ#G S7SQw6ìš$û’Ë•Ù7ãqóÀ­#¿¥W2¥Êj,¬—ªaiÜÓ…Àü¹üu±Ý¦ª*ñ]§pšÐ‚ü“´Ú ÆXí£Ž&tîbò¶å÷$;õÖžiDÙ!¦[ÿ ÀŠi0HºÈÏí&¿/ºž–7îÆ£Ž¬›i8¯‡þäöƒµ<ãÿÎË“è„q ßÚwõgC09ã­äÍØ7ù5.ÞlãI:Ç?´ÔH¼©Ï5?Ôïº?¦oÿœþ}øçòù¶üì¡”4 +”ƒE6)T1ÎóX++ÊJjvQDÕÄ%#·¯2Tˆß!)¯pÓ>á骜Å}‘؅Γ[^]$»+åq]$xTlFå€ZQ\¸¼Pµ¸§ÜÛ<º{·æý—BoPWQ/Ý—ZPòÙ¬!'~$ÝF޹ˆÖSa>GY$RCEóŠjoW‚¸Öwf¾J«r½µçèl µëú¯*?>%ÍÝ:䯸ÍIwµÞÆ_õ©:W»éÏ·÷êwýÓçä?§ÿ¹|¾¬¾÷òìøR{ÊE¬c@ªI$|pIzXèT‹úH$\\•~ZÅ›@ÁW!\…åY òû™Òµn‡=™ƒb#-OIxž«>æ"n˜,û«™á0Êèu3ª`y)SûUÛ­yç%Š×9¦~é^æÍpëñ &ñ²»ô¬Ïác½R©V€s{ôû¡>âî²>I˜šZ,î>°³C¹µÆ$#Š¢nýW•ŸÌŸQoò£X€÷j©ÜÆ £<¤ÉÛ̧ú|s¯}×ý1{Nüsö÷៫çÛê;¬RuÚP a9" ¢'÷UÒ ‘1‚o)G‘fhjpù¥äeW@¾IUW´ï¿n|ά:f»ìæ”+ ’—š%‰Œ1yûË–ëÆ‡­ð…Ð/ŽtãæÝ ŸãXà­Ÿ_Œ”Ä2²j¿uÎ=ØAËï°õoáŠ>‚L\|UŸƒW×4ô¹áAZøTދ‘‡ŠÏAÙ4g½µ—•BF§èêÖSùÔ¯ÝäW§ ¯¡ ¤¼Çøaþ«$+¿Ä¡>×üнë~Ÿ»Sücî÷ỵs¨o_{Gh—]1Aí««Þ ²)VpZ^{Ì—HAV¶rجéà%>æ79¸Œ‰dŽÑýA”3DTŸ¨zH¸nd†ð GÊ•AfOï†ú$Þ`ЮÔb+C]·z[Q51‘LJí½’{ÂÏR½õOê=e;s!X{ùAÈDBcyÃn|ŒßÈII~šáAïüT7h^ŠÃµ|×°;×iñ¸³=E;Ä«ÚGÿØ ¼XZ å"¾|nšñZÓeøUÁk!c\ÔçÛ{õ»îÙsÒ³¿þ\=_ 5…“·ß̤JjŸX¯{T®­_œ‰ˆJùZ­tЊó¤'j/+Žá®Ÿ¡"L\9Êy<ñ¦|uà ð±åÍ+ïF©KZz¨¸µ ,6i æÆPcˆÏT§Å^É­R¡Sº´ÞA^NÎñKß²ˆ‹²)µä¼äÉåø“w§’=»q¶ÅÈŠÕ\z¥eê+àÖHf††ÛéÁtøÖOŽE[9ú.n€°”sxÉùL¤¡€¤qóœ¹GAÜ•ö³7~y•û®÷ ûñ‚N÷ëö¾X~¾­4ãø CgR–ùÉÿ•kr-ð>Á…jÌX_LÀJåê@- —–Ë[ Ú9vl?`RIÿU7|Ý©²/êò%f͵"CÉüzÌýA%$ö‰RcR‹ÊÔ/Í!ÿ?:©ßøì=@|1œž-_¤§ M~Ÿ;Ð` Üè•mz·T-ä´‡G/³€$XŒ- Í8Ûµyb2Áð¨õÒ»¦ãOŠW»’xé5Ÿb^ ûà•¿RŽ%y§pŠÊÛ›{Õ»Î÷‰ûÙDӾܭšŸ]o/·ê›hs¶Úxê`g‚*+/ §™€-ɹ˜'Pëÿ±ßè`ò|›¤D$­_i„¬ÉU}@ HtIó~èbÔªC¤ 3¼´—Ónr5O\úo*?·ó¼‰ß~p£Ôó6ü§¹§SŸw‡ú\ûCý[÷çìíÒŸ³¿þ\=ßVß‘Æ$ǯÖ>…MP¸À×ì!/Ç \¹:•ðI>cŸçŸÈмÌpnhJ–|O¤c+¶ã Èr7°êäÀ@ËJ¼sE©,72¾ª%[d§°ÜHÄÖ°S'Ýô¦qkcÃJÖe½õŸðÖfÜ`ù“Ê/:«fõùñS1K19–ê mê/K.MJû:6Àß‘‡ëµ9Oרè+Óhï#‹çÊàj<…§8*Ëÿt(.ƒ‡ ¿ljŠ™p(Ï·÷ÊwÝû¹sÂû©wC?VΗ…wÔtHHçÐÊó—$à ®:@X!®BéŠ?l*ôÅûpmfÅ.ÒÈ0YúÍaATÞõ÷eèå34ÈåqxÈ5Ó@ «Pšôâ–²Ew»ˆ,ù3I" +y<×^ r`ã*ÚòÝS#&‹>ߥ—ãªAN†ØSù9zøê'FkŒ±Î§ò ”“;KÞÙ½<ð@ð5Ð9Ò¥9ÀE"bê “V(WkVc4O’ÛŠ ­ØØ>5ÚÃH^‰( ‰| % à\Ÿ„cb<Ïö‚•¨²[®Ï¥¥ÿô¦‰íNš ¶·þéUóÆÉTëùuö](pKOFÖÖ»àY ÜÞlû°Éš 2š×›íSi™´ñ’r½ºˆ-PJÒ¥5öUéù³ï¡’®ü|‘œœ¾¤„۸כ-“†Ñä`Š­í­w}3¶Kî§ûsØ/·V¥m+Í_ëäy‚Q±Y/i "÷þª¸úy¤¬µ•²î»Â’’À:-[ d}a”=Gý®€Ú°Q.?7YÇê‰DÐ:¼9YŸÙ–‡(ß3Lâ¸âøýD*7÷V³}70ÎIƱ„—®ˆ,DÎ Èïh•ˆˆ‡B½uO’±Ò9ÊEú¦x,€;™ùçq:i´wm¾+¯QÆ€+¦«Ñºf¢f®[{9°«’XÎ:.Ý7^3׿Ex.R*TºæyC‡ƒ¯ãÒ4¯Ss®ù¡y×û1s»ðçÌïƒ?Wη•gyvì (Ä‚ráa-3~nËO&yð®–|!rƧeº°%¹†.þ)MÂM~ò“Q§Á°,ÔÊìáj[Ö5¬“;À@)õ <—q öZ‘]™ † %¬ª•¨æš'ütŸç(·Þqä„¥—›ôQ¥§má͹Á“¼å-@pûçSy`'-Ø\i¤‡Ö0¤æ­=.záh½ô_ƒÊ_£é_#ípàYd÷~%w¾Á§«çPŸoï´ïzߦîg—ýu™y7ömáüìª{¹uw€‡¢T*¶j…4DC‹b7ë"z@8I– ù%†ÝRકûQ¶E4òïÁ$µê™g ¨A7’Å‘© /‡¬¼;Jžá)8añ8?8 re,Y‹ð¥FÂÆ—öšl))©]ú§>SNù"¿ÖÒ7Jgú¦?¹À晑¶üÙŸúÓR~ŠñÑöZ(™º! EÒ­}âÑ-ï⌗þkRùAšÇð;ä¯Ð*4Ä çøÉ€»]ËBâE®ý¡×ÿ1NþcþÝøõóuý½©:ù¨#/21ºÉ?vÅC»¤)™EÑø3‰€Uì^£S3²‚ Õ•Oƒ©°¾ÜEó]-¤jµTütd|ÐJk3¤MêZ _5*ê‡ìχ ¬CŠÁÞÐŒÚH¹-LãùÖžð]5ÕKïEÁZe©‚Ý&»VªÕгº=•lÛØ3¨rÚ¬D÷MuÚ<ÔÊARÓÃ40ÀATðã³9°P×Ðñ½CtÀ Oõ8…oD)å”,¿¿Ž‘C²H'`ùíPÜÙÜ+Þ÷¾OÜ)½Ÿw?ø}ÝœÊÛÖ=‰(ö&q/@=×)pʼ‡/«™;[ ¿§¨}.ï-§Ë¨+`j10æY?Ëù‹F_tú júœI/æK"é¯<›JÅK€%3Ik\&£“ÉÑêj-†{~:>ƒcAÎrN—Ö¤! r´öêè;ü˜DžÄúö’cöN Ë_ƒ*nÜXÔ7$+óZÃèê’(àóî$!‰9}cý‹ô@êF-çÙ¥×c Hò*_çØAÞ°Ë€­rènk½+þuéz›¶/ø>é/?ìmÉü|_qGʼ(GB´ìCN]îF]àŸY6*úѸ6Àì¡åÝ’Éë¸+×Y~¸PóãÝPI‰5“í;C§Ðƒ“A†.ÄúõªÁwV¨Ø㨑Ž“T0`U¡lçÖ¼®k!¬roß{ƶ`4›ðI…§ª5<ŽÅmðX@©ÂMý nºÃ€‚z¾ÔUpºœ> ´ÖKóLæБšA}ö®9hŠ,ÕÚ)›׉¦@×Cj‹!ÀÀÉ–@î)kirL hdgÿje.pÇ ¯„¼sy8 „+]d¶æ ¶€Ë=hC!:Éh]ÍeèÄ´E@H€€h"ÞÚ‚ǵâ>g÷L¦»>/ÒƒqÌ4i ïXÒÇèÁ]Ò,åÚß@OŸÚãu „õPx®ù‘ÿŸ—}Y 4®=WÄ”áÝú*>Èô‹ÆÉÏC›Ññp(»ácºQä4º©Ïµ?Ô¿÷Nß.ÿ9ûûøÏÕómõqKøs‚¾TçªøRöt1=t¥’—OˆtÌUïÎC£>Eð‰¹V,( MÁn«q¡@ŠæN•˜¥t¸Îk±z,Å~TŸ…¬ ­É QžÛ5?‡-ÎàBšš@™©øöê¦Ê·W/ý“EQ9%‹æsŸ ùy±¡êxRü?€n!‚ZÍMìUG ˆôKÑLþ®[€]UÚ‘³½LlÂÙ`Ý­û¢Òw¹B2÷.=û h9ùJ»Œ^ñuC¢à¼Ö‹ö|{¯}×ÿ1{NþcöÝøÅóméÙ1J 7óÆSllìïP¡?†‡Ùë E“·2éU|gÛ@sûD•©"¥LµÙãa‚'Û6>ÕøÌ-töÓp^5õ©ÖON.Kª¥øgÚ^(V™Š… Î×SÀf•hºšõæšb© ¼).Ôû½w@0'™9-$„]úØUzé,¼Qï?OD§º¦ò.5ýPI}rÞ4ê=žRU*jÊéÖœ[±†D‰·BCûîA›“ŸW¬¢xŸZGü¤‡v=^ù$OKM÷½hooîuï:ßgîg—ýuNü>ô}ÙüìŠ{¹UgóòÈrXËäuCy Ÿ±(¾ï_3<ä¬&C¶ïî4|`Å §ŠŠÁ%û×<ãóý¬”ŸOÀ›.]È÷",Ú$?*X³²r%ЊPâól•™`CëóOéxážãÖœ¤öuEy³¼lÝßܯتý&~QñI5lKË6|%äÍ °ZôÎiÐ8™)VXfˆír4t-Ľ5'&"c¤–(ߺï*~Ã3[nâwB¥ÔšEw>†­6¼0]ïœC{®ù¡|×ý1yNücòÝðÅóeí™?É*áɉ†(O…2IøšOÝ,è1ZHZíT†-™êU º%Ì=Õk'†C!ÚUš „, ¬uÊ *ÀŠ: !±0AtÒ—ïA¶j¢ˆ ž1½“pñÍ@¸5§„»Hþ:_z—;1‘UIn¾H†JC¬Ùînô¤e‚ÖÚ[²cÏi/`{e ÆJëtêsͽö÷Þ¹Û…?§~ü¹t¾-½çä ÈðEÙÁ­ÁCÛ€ûëäN¥Ç_Ç~\GxæÓjɰ.’XÞñq‹ð¢dD&ªòÊàáXúf<ÊZ%j5…ô^Àôž  ‰UZeúO“ËÇ—ö \MÅÁXÐ[®¹4!NQ¢·z‘?‚Õ[X¡i7~2K3 Ý–ù~¨LЫ=?G/ÀM¢te»8ÛËaô ßåÖSù+ õ&? À+ÌJÍzŽŸJ•L„t„|ÓßÞþÔÿÞÿ9»üçüïã?×Ï—å§ës(³Ø]-¯\ºLЉ¬  $<ºè\Yœ@´v€*³Ü$%¬,ÎG}ºöþ‹b;‘~”uø.. mOjEr¹´•űr€‹Ö˱kZ·6 cËi:9O.Ä·ä·‚ŸVÍ5âûÇì‚ÏEŽŸt‘?PL9Y(†9ïÆÏñ5ñq‘Ï ™5»þHÔ”‡jàøÔhÈ"*CÂbºµÓ¥W'³’.ý“5WqëcerîòËwÑDoT`¦ËøNÉŽk£®\Î]¾½×¿ïßÏŸ“ÿ˜7þcý|]JNÌXÆR_€Ô¤™*˜Šqr‚àÈòŸ Ìããݦ@ŠÍ2,Áµ -nœã0Œ·•ÃŒÒP9ÁÄÐè ÆŸ°­ &èei eÁè«DÜ^0C÷ŸZj¸íô [oí±+Eٱ͜ný'Íz„ÎÔ±¼üQåe¬0?~ À JOþ‹Ó_ÔÄG,©ð bãz ½¡ÝšÛ†J¨Uâ½wL€Ù©<‡Í.>ô WлÈlx6ÓT¾C{®¹W¾ïÝOž—ÞO¾¼_;_×Þ‘¨4´OŒ–Ú­–'©ïOì¦þðq[5Z,VEB>À¬é è­|CFs®d׃ !ÿ›Ó››šÃÞƒùAÀ×”.ÖÊpÊN1K´C‰8,Ñ`1Õ[’+’?&|‹0IU“Ñ©a¾“{QËåŽö IÈ2ê²Yú¥ÿ¦ùy`(éJ:äWBmÌi™’~>„Ü‘ä jÐ/êóí½ú]ÿçôíòŸ³¿ÿ\=ßVßÁ‘ÀZHÜWz€'MÁÂ#È‘ÑuÉ<çªnýŠ{áïûò‰%å0ÐŒh )WÐLÓ"ÏÉÔ³@Ê$&’Y¸lxj©Ú»!&Èñê[Çñ`ìá6 U·ºPèÝŠ…½yÔ 8öéÊpÝGÍ “3d¤·çÿSüH^"q6>ÁÏÑGMà 5(ÈŇöš-©'¢=d$´Y¿¹ÞÚËã@±^J½tßUzÚb»Iß1/©~( “Æž•€¾ÓÂÔS{{ûSù{ÿçäí⟓¿ÿ\<ßßQÀ‰ç¿Ièëú¨P«%ñWÍ$… ¤€ƒknª—[ÄìÇ’/+éb²”r_¦0™‹Ýî.¼ö šk!‚d™¬50ä‘âýð\Æ&âƒjÁ›Pë¸À›”͵Vã¥sí•6…à1Àw—þAÂÉQaP»H¯CFË•÷` |Ž>껄 ¹±O6åé;HVªÌEz€fK.)æKsRˆÉΊšƒuv_£ŠŒÈz'íâãiŠ“Zs¾ ¿’¨¢8©³¤‹ú\ûCý®ÿcúœünòÝèÝÒùÙ”÷r+ïàï’®SÆbæ4בÛôýW­À“× ¥}áôŒÐøZ Œ´zÊ׋sÖ U?ˆÂ—Ÿª¦¢ÀVÛ»žzJ¿â­=yŸrÕ*©ç­ò>ÕµÞzºÉb åѼȦ<¨ßG÷$&»,Ø÷‚ïLFš6KÍi ÐÕàЈ×lO,Nl¶Ø¨Å²‘ÊêN*ùÕٔ®U…ßÞ«ßõNß.ÿ9ýûøÏåóeõåð \ D[·œKRoH#l e9$’_xÎXüvåhŒ¼Æ«÷t£ÃŒŒ©YÐpE ”ºlœAhƒäikŽË®‹1“½z§ü¡XßÝ\xöpQ`šRMÑCß\€¾=€µ‘ría.Ľ{ݳd¼áƼHÔˆü<(™æÁt£g!T™œ æuÊãÈ M )óƒ& B³<å4¾r¶ÄÔåóÖ¿òÇDˆ7ƸÉOÀ&G9¨”öõ¾â$Ž"­î¦>×þPÿÞÿ9}»üçìïã?WÏ—Åg1{¹bdÄü–¤È¸äê“Íc  éš2=±YɶvÜÙØ£\0š‘©ßñßGð¼~¤7}€貓Ünk N˜•ÙŠw‰²ÆU†N)6î¤`˜²ë: ®ïRjמCOî"ØYó­94+å1å7fä§øòñ5™üñ1üJ†(2¾‹ð?•Ô›,»ÔC™O>P1©|k]¡ÇWªùgïM¥gmÄr“¾‰QM‘Åè·Ñ7¨ÆÁwê-Ý´çÚÚwý³·ËLþ>|·v~>•÷r+ÏVfççåFxj‰`•—eÕk7I¡ÛðÁåPÊ–ZŸêS{êG“ÆòÐiƒÃ,‡M+ùÖ\ña9škÍ·î§ŠÏI”ÊE|2­ñ;ôENà‡È SX©S{¾ù¡|×ý1yNücòÝðÅóeí=4ñU,”ªîeKÖ&tŠ--¿Sc’ƒºêµ½‚rñœ]sdR,‘S­õ\ß¼1 pò5ýD~GY…L˜·õ'Ó$UvûÚû‰‹óÆòè5!Dºµu]sMçÔÆ-ÏÉÞ=[Ÿ°7öR¿ˆ/Gâ'”ŸÕý9|J»Ëë8÷÷êþ­>ùŽÛ©’Å;Öêe}pY•[{…—­IVS¨·þ‡ÊßE£‹ÕÇÉO$´Q©«hÓçøIÖûÉÈÎõ¹æ‡ö÷îÏÙÛÅ?gþ¹z¾­¾Ã›Ÿ~)Ý‚¸«® ¤$–¼U߃Ìqª9[v¯Ê¬ù4àçàS¦²fßñq•bȸæ} q«iõu0màϬõA‘ì,…657™¢UPŽGhå)°nZ— ¹Í€`âB£Ü}\Ú“@c7Jïõì^>SÇ(“=,ê⤷…d&äS\þ9úÔµŒGÈTüOåQ¹Ã©›XäJe Ûä~kÖÁP2·§vg↑ø$ÄÇq“~dyÈ”¢¹ÉçðõÚ.ÇeÀíêsíõ»þésòŸ³¿ÿ\=_ßá{"d–ðà–EÈKàV•d¾§l„ÂJSýÞlê’]&c0Ô-Âß0÷Ï¸Û øqȇ§tN òû!R÷÷@©ªtá1çj/Â1ÌxÆœ“‘)*­ÝÚ·J^bZÈ¿¾ÒÈEE}zñâ'£õÓönøØ®bìcdäå¼ÙÔ º¾Q!GÖéÊñÖ^ìË<4—fáF»þ›Ê?I¯K7ùÁj¹U}çÆß)„M=)3÷©>×üP¿ëþ˜>'¾Ÿ}7úcñ|[|‡/¿ý"‹¡ºfîTš– ,^/ØoØVË9yä–•ð_dS±µHýVç ñ1HMçCK¢)ôÄ@?¤)>‘ä¢[>Ô•ÖE•¤Ü«^†>1‹ ¥)–£ˆ´äå|qíÁœað^úlñ¶xOñƒŠOÆm{º?)ÄØ£ÿE|êÄM¢‹i³fÚQ§%©Íî°¤Òo½^®ÃûMx ™­„Æcðð†Ž¾å¹ö‡ò]ÿÇä9ùÉwã?Öη¥wœ¨Yáp¿L£žH.ºÞ_Õ#Kf".èj•A„ä»’_ñ‹Á ÊJZÔÉ8‹(fy˜¤ðî‚€ª¸P WBÁc)AñÀˆ·e+‹Æ<(pÝj]=àäS+ô/ ú­5Ó²ºhÜo½ry@À^™Ç^ú¢ÒKói‘~ôX@|4ì¦=œñbîÂ`1–;<‚–Å¡Qoí«%¨€²ÐnýW•_¬…ÚMþ¦¸`²—“â¹ãoš¡Ëk-õ¹æ‡ò]÷Çä9ñÉwÃ?Ï·ÅçOT* éÐm ÀO…NO­T¶%i`bQÛ™TÀå ùI£­²amö5@¥C¦í“²1µpu´i) äдúkù^(¸šz³ƒ Oožù¡îÉØÚEjš#@t–ÕäÝúE¾…`¯–KçAëLäcnáù-¼¢!<è£ù]þý1tØ{»8,þÖMuÊÇV4oˆTË•ï‘LÔLÞÚ“TJ7pd—þìk”蔿å_Y9ÌäuU/ão계OVÓÆõùöNû®{7w‡øÇÜ»áo+çPÞ¾îŽ>¬s^}€­Ã0…×;A’3WŸh^5ξÃDÖÛ*^I†Œ2%*½#ÖJ á‰áSXr…ï"Hl*¯ƒ?iiŒ-‘_#ž¬”ÍÖ:h¢m3cc›kŠ[øÒÜØ*±7k¹õ³'¯áËUú¬Òr«óº÷¶ÁS²ZÉšìù ûÔfÏqœå7JHÚÓ_ÎæJR È ¬,—îkTñ§¾œâË;$Ô’¾œÃ'B/çn3—S}¾½Ó¾ïÞÍ—ÞO½½_9_ÖÝašI @Þl–rNü †F®!áuy¿Áº-•¢Á`[^€¨Év×ÊAýu èíÉôIl¶™Í~©Ïökí!ò;²ÛQ«hlrÉy8Còµli’QÑÜDÜ`ƒ9Ú+ñšÛ­ÿ¨á+î¨Ðnò+¼6gÌ}µ_Á쎚Ñ?Nýi²ä1ºÔ>ìzºŽ1Ê¥ý‚›KäKÿ5ªü½Y’í!U(%ùè —ñkª¯sK²=ôçÛ{ýûþýüyùùwã?ÖÏ·õgX Ö€"³Ö!Ñ¥HFW(< «§¾`Ø(\—íõÀÐÃ’#?j°š‡ %?rC·'^¿Nmª½“Q%¢ÍARjEK+§dUð ýRÞ ÀJË LÌ 6ZŠœoOQ-6™ÜPùÖ¿ÕÊCŒñ›øñËT;VÛ»áÇ_ á‘[6×¶W¨¦AӀߤ6òf—ë™›àÖÔl Uו±èúeàÜìWñXŸ`§çÍ1üA½UŠzªÏµ?Ô¿wÌž“ÞO¾ü±v¾­½§†¹€ Lv³€+vè§iÕ0˼Ã=6‡M?®Cy]öÔ“Ÿœ¼&å&ÈËKÂÚת`sí´Àƒ5˜~e%àdÐh“jĶ–‡ ‡!çñõd²)'LOF)–“Ì^½4'¼\Èc¬_º'EGfÿMéÅ'£Ó”‹úq¬ŸŒP¹dÍOÜèS}JSØÞ4—†ÀÓ´ˆx,ǽ=à¡„8ËèíÒ=Ø8Åßt¼»ô²73Å)¹Ä6/£/DEp€¦ÚÇ©<×üÐýÞû1u»ìÇÌ»¡Ÿ+çÛÊ»1{a`#¾!ÖŠÑ· u‡Fíɲ˜O¹-s†Œj@ÒŸ}ëîTtxþ•å’Ò„¥uIG,|%ˆÐïÀhME^gÙB!ÌX‘HÔJ¤$®# îip³Á¡dy¦\BñÒpA6+\Ø—Þå“ vრ±Öx˜8>‡ÎÃt›•ìxÍA‚åGÒÛ:€ÛLQHÏöº¨j„Y½_º‡U‹òf.á~‘^/Øü­’ £‡Õ ên’ÂëEy¾½W¾ïÿ˜;'ÿ1÷nüÇÒù¶òŒM‰3ˆç~~51‚¨ø¾¡ï$9óÅhS EÖ¨ ¢-Gl+P;ŽUî Êpú° Ã¥íNÿfÿu/Ÿ÷Q¬¥Ô“'ÃþS2 ¬µþïö0òÒ­54ŠƒJˆj/eßw ¸(~{DÞ¢ÛC6Á:Ðk|.ã\”Üdr •åÎù­¶ßGÿójÄeÖ*õ¨éÚ~¦hLÍíÖý@zo{è7é9”sâÇ8GO•bО<‰Sžkïuïº÷·KÎû>ú}ÕÊÛ×Üálÿœà6VPš³LU«B šI0×( e`Q,ÂðVyŸ‰UÃù³ !¤.«½=:0oÔª\D mV¹ äxŠÆe‹’U«€Y Mþ°‘Çô”}n Ùà\@Èvqq´øæ˜ð…Lžn·œïž'@lvQ½zñ³Š/WW[UÉnø²)Š"Pd»£½ú€¾Ÿú‹ãñØ‘†{wÞšSÅ.6@ñÖ}VñaxŸ¢`¸›rYq¢}ôò™t7QeˆÓ+ïgký:Uï;ß§îgþuN½û¾r~vÕ½Üʳש´œýÑJêa¼‘ xL¬ÈÒJÅÖŠ,tX±ãûj¥Â¥ŒÑ¬¤NìÖ,qתÁ€®Vc µ[3òZ~ŠeQdÅ…®–/‰dÆûuøV¬ê&Â~SÎm*ºníáZ¢Z¸/?ï¿*Rp'ù¨Þä/*",÷`áŽ_¾W…΃ a=ÿ?ÕÁÝ“?ȥ·ݕ—p|¨ŽöƒëNžÌrÆ¥[ÿCÙ`"˜±é&?5L ‰Ùâmü"]_u0N}®ù¡~×ý1}Nücú÷áŸËçËêó&(.1p6Sƒ Cˆ2u¹Þ’厂ËOò&à2eJ™€Ä Ø’¹A!Y*z̨¡Å›¹Õþ֔ܗYÞ—Ù‘@ÛNxuqf<ÙG *ÁZØ-;¾e™?×[¬BÈáqa»S²†îf¼µïDì``èVæàúÇÙþ¾©q‘?6• Ë Ýø£RøRXò[èC8 Ç#&<«pŠTZº5—e)dpjµ^è辩øÊµoâsQ%#ƒˆ·áËKÌ.­Ú¸hÏ5?´¿wÎÞ.þ9ûûðÏÕómõ¼Žlõ‰ n#HœÔ¿êª±¯BѤzþ©n z!)ïû Œ !n\UP#äGÑúªjÂÇnÓ?A?ÎÀ«jsÂAU´ù‰šÖmËwV޽Äu~#Ä~8wÛ­}!—Œ#1§|ëŸ@ • ¥u?ýR"Ôôý} ‡ PS ¹k{§>(BŲ˜s½XÄÖáyDÄ”níåö–Éîò:ÎùÖûE¸>Õ‘B¾Éß~õ ØŽ˜-é6~Q¸–¹§QãM®ý¡×ÿ1N~?ýnøÇêù¶úÌJI€ãa®Îr¡Ib‡ë²)„¤!^˜RV0„‹Emb^< @ª IŽuÔËw2D¬š-²Ž¡z’àûTW|ZÌÅ*ò̉ù•:¯¼±¨…#I_ræ[{1+¯¦Üã­{¹¶&¥ï¢…y?«ø²}[z€m·á“+$’䙟,áM{Yi y2v½Ê7õPqÿœ gï¸9kX@ó"½|oŠûG â9ø¢Õ–Ô×?¬Í»î|s¯{ß½Ÿ;/þ1÷nôÇÚù¶öŽD'ʬ0´ƒ]ÔYv<¥`*ªË çƒ<ñdÿ¬ÜFùgKÀö©ÏI^ÔáUX8S‰ ¹8óA~^ºÉ«˜Tñ'ãb &‡ò’®:P]ë²¹‘” Ò“]3\ŠÓ/Í)‹•§¬èyXhzïœ]‰Â·uË8Ù©m‡j2÷Þ»}~¢^ €ï´ö»ê8dä@V ƒ×¤é!?¸´§†J–|i\úÏZϱ„õwÊL>láò„Îý2|JpGÈ,í¢>×ÞkßuïçÎI̼ý±p¾­»‹5:ABk-QØ!OŒ…ª“Áá”ÄMeå`‰œ£”.JdzŤ%ÐÊ^ÒTD ÿÑ¡ÖïdÓÊß?ôS°;&ö¹md ?‘¤¦ÊO®'exÑðÆz±Ôåvrí#ÖQmìêtë?¨u ëÂÕÙå—‰–_bO„6Ÿà 1©ÀîGóAH2œqâÞ½2ëfè^K/ñ•ZW®ëBIáeø#j‘zT0§‹ú|{¯~×ÿ1}Nþsú÷ñŸËçËê³£Scq:Í…s›y“¹’'XPoÙ_ËÄ»º¼)P”㆕‘Ø>.Locò²3Ç—ÝMb ¥ÜVŽ/™,2‹yý¡åZø¿Ž?xò6ÐTnl°ÄMzŠ·öðý–Yàô—þµ(?…ùq¥©êODêsüV1åboÈ·OýñP¶ÊòZÈ8” #/í9ÀxärÅKÿ-ªü,]äoËÔdÏe#ïãÇQAn?èE}¾¹W¿ëþ˜>'þ9ýûðÏåómùYT ¿xŽ ‹K‰)Û*½ÑÇ(ì¡=öcòòx£å¢ð/mðbO0ON&E€ð«0HÜxï’1)cÑLKÚ óÎúF ø @12ËwVx­Œ€èl/w=6¾¼Þèc[ÿDA¹;r£mÒg•ž Ð}l}Öà±Ìh~£mÚK{îzÇ/ËYÉ.+œL—öU‹” )&9]ú¯Z¤$? CÞËÏ{¶PbïjZúñ“¼,–,ô=5^ôçÛ{ýûþýüyù÷Ù÷£?Öηµg«“W—"œÄ¼Ò²rÀúOM‚7÷`Çcìĵʓ¨%¬O‚55dUGzÀ„BÒ¬ö`–écRÞ2æ§™¿*] hYÌ3j&vˆoþ*¡\^øñF#…öÖ¾‘‘Ó Y)³®Ì3<þåÉÈtâ_~añW¹áÓUø[Ë{W0îs-ÔüÔb—(À_¼µ/ø5“VìÅ[ÿP2(Œw«é&?üP`~‰mo㯿´0 .'å®=ßÚkß÷îgÏKï'ü¹v¾­½ÊiPhÝB³\Rðc_Âù:/È Ðl&ý€Î4[&ÝYV*|ͬX Õ€0þüav:h.pþXsr`Mk|¥>dyv$ZÍ劖þ”|Bß òóØÚ=ãÛç_ò’ø>ÑÞ}ú——NŠ7é“JO-‚!A¹ÁGþŒ®(£MyиÉ5Ð÷‡A!É2Óò/ìí)äïÅfÊuã§É«#ï&½&JOÌœº6÷Á“(-’p2ÖvQžoï•ïû÷“çÅ?æÞ ÿX;ßÖÞájøéÐ’•6Ft3u,_§}¦L×ÐgÀ3ž@_Íuc$-T—Ÿ7“W ·¦1먙šºPÀ=ç¼\Eòü£hMSaaJì?±˜W“²„‘ c°Q "È&o¥]Ú+*÷ÙL1_ú'KGÃ6ôŽ­Š.å÷åÔ‹ùA-ø>–Ô@(ëAº« “z† !õ²§©âTYÈJ®=övÐüsõ|[}ÂÚ÷¦Kð!*x+sÖ&däI¶RúaÛÐ!®ËzˆkZS…w–|ü`£•MBþm4”Óe[*Tà­{Y~¨1£\I²S‹¥¢ál žzk BCx­ß¹",sÐQ(r[ˆDiLÀý›iùå¹GEX\ˆî0šÁÉlœD€BËó “O€«Gi¶Ìñ,ëÞlzÓ©g9¯×èÂr¾~k.Ni mQË¥wE$¬8ÿE’“^ Eg¤¼çfþ¼|ÏÔDP¢WV”ú·ê4ü#Ï€òêŠqeÜ®Ã>Zë='=g™;{É 8†¬ u§ôƒz¿‘ë4»côã—æo†ÞW‡Óžkï•¿wLÝ.ý9óûè÷…ó󩺗[uæwÂ1&ÇsH½Ø=<'dE¤ãê5Oô „Ù©0ªœóPõä'iúŸßÁ¾Ðå¨^{£cVjY»g4^"‹!<`L8ùi÷ÔhT·8ŸZ‚ú¿i÷n_èÙZºµï cv¥Ô˜—þÙÁS™jKœùÉõ•ß§·<µŸãçidKà _vƧþà–‹à~3ØE¦›û¸µîØþ÷ދJŸ©–Ÿ7é jú渌ž˜ŒˆšÄÑžoïµïú?fÏÉ̾ÿ¹z¾­¾ n¥Î4+ÓDB²áH„iz‚’H+“\£&ê*é 'éÁõ.`kèËf,êUÜÁ¤½ÚË¥ú“ÈûŽV'H†â𠛢ÂI©¹ lQ›å )È ïû8š!4À $š®ëÝåšC×-}aN•[ï$ƒ»Ô×5ë¥Ï*=Éž •Ü žÐà%Çn%7NwríÍÎÛEyiíá•ä–m±´|k>€ØÁ\Î=ߺŸ*þLò²)7ñI½ SŽí|þÄ}¤/%‰:ÔçÚ{í»îýÜ9é©w£÷+ç˺cþãÏ?ÿä!""›à—øëÙ-‰rìä¨ù½õýïŸÿû?~þëÏÿVë þüçÿ¨¶¹1g4K… ýÉò€•â¡€RZ~Œs‰áÊ8ÕËð_þ¿ÅPSå_!¾;y4Êå§Õ]!?™z§— áçô÷þåõϯ¸†xí¿ýõçïþUéÿîÿ¼þñÏÿVžè0!="¯VÝZ…Ÿ’ÿòúû¿üüÝà„ÿùËÿ|‰"c:L@ŒDY ùï¯ÓÿíÏ_þ×Ï¿ÿËË‹Wæ)*Ä.Þð⹿½‹7¿ˆ'WÍçP±@`X%*!e,«Iý0…CÀíO¯òÉÊÿ"žŒI´bHûM¼ù§âmËæS¼tˆ·¯°«xù›x²@ô¯ ÂìâÅð§ò5„`#÷M¾rÈ·ýé]¾úM> Ū &¾,¾ÿT¸È$&Þ”Ýü)ܱ7ö?½ ÷mk”^ä,& û]yéOå›WZSÀûM¾sslz—ïëÞ Åÿ+ì\Òa ¼÷=A?)*ž¡giï¿-ˆT!Áu#™Š3¼BRŸ¿â‹¾•­­3®Øq¢˜˜x∠kO²úñ}êÊŃÒh×FÅ:â#7YÕ_Ljδ!/49Ç;d./£ùËóÓÕ»æ.u—Õuæêº#FiÚŽø;“ÐÖ0â‹kéò¦²]éŠ^;:JüFr—¨ïŽ#ÚצñpØ(1)‡7NÅØæÛi@ºú×"½Ž›ê¼c‹"5G,é’ßéœÔñ9·°¥&H_®¶HÙS)Ýy8_<þ˜Æ#þ€t'#©"%h—z,Q¤®,¶H¹:™RQæêÜ!“m> stream xœ5Œ» À0D{¦¸ø8€÷‰R‘ýÛ[.¸{Òç9ÀÈ>GèÄ-dCá¦xI9¡>Q4Zo:¶Hs¿¼d3ý3Ü}…íæ€d4Iä!ÑåråY)z>—Ú~ endstream endobj 263 0 obj << /Filter /FlateDecode /Length 232 >> stream xœ5Q;r1ë} ] 3æoŸg3¯JîßF°“fa ç=؈ėÒåŠoYf~'‹¼øY)œ¼QTEX!íàYÎj†Ás#Sàr&>ËÌ'ÓbǪ‰8ÎŽœf01ëh9fš=!×#nì4ËU i½[ª×÷ZþSEùȺ›åÖ)›Z©[ôŒ=‰ËÎë©-í £Žâ¦ Òác‡÷ _ÄœÅE'ÒÍ~3å°’4§ð#1”êÙá5ÂÄÏŒOÙÓé}”†×>hº¾w/èÈÍ„LåÊHÅ“•Ƙ1T¿Í$õý?г>š0TG endstream endobj 264 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ=Kà C÷œBGÀøžtºJî¿­ l°„ôÀ}b"£'‚¯Ä‡¥Ã$ðl„{0Ùr„äM†²ƒ$q ¥Â¦c™ïɦuÒJ¬¼Ñ~Ùw4ftŠ-E‡v!ÿçõ"Ü£àë<`1ÈÚJ¥ì™0Ze¦®ò¨èµÓá=D«Ååõ®ðÚG7©(*KêþDw4Øþ‘·ûß™e8$ endstream endobj 265 0 obj << /Filter /FlateDecode /Length 49 >> stream xœ3²4U0P°´†–æ æF– )†\@>ˆ•Ë˳ €4XiLEW¥D ä endstream endobj 266 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ5PË C1»g ¨džV½uÿkmÐ;aÿBXÈ”y©ÉÎ)éK>:L¶.¿±" ­u%ìÊš ž+ï¡™²±ÑØâ`p&^€7`èi5tႦ.•BÅ%ð™|u{è¾OxjrvCÉ` jºMX´<ŸNâÿ~Ãî-ä¡’óÊžùœíð;³ná'jv"Ñr2Ô³4ÇE> stream xœ336S0P°0¦¦† æF– )†\@>ˆ•Ë˳Ì,Ì,# –.C c0mbl¤`fbdY 1 ºÒrø‘ endstream endobj 268 0 obj << /Filter /FlateDecode /Length 80 >> stream xœEŒ» À0D{¦`~&fŸ(•³ JÜpOº{¸:2SÞa†‡ž ,†Sñ™£`5¸FR죰n_uæzS«õ÷*Ovvq=ÍËô endstream endobj 269 0 obj << /Filter /FlateDecode /Length 90 >> stream xœMAÀ ï¼"OPDÐÿtzÒÿ_«Ô½ÀN‰E‚ô5jK0î¸2kP)˜”—ÀU0\ Úî¢Êþ2IL†Ó{·ƒ²ñqƒÒIûöqz«ýzÝÒ"X endstream endobj 270 0 obj << /Filter /FlateDecode /Length 165 >> stream xœE;! C{N¡#€Ày6“нË;I,Œ%?¢+:öÊÃccÊÆk´±'ÂîR: §©Œ¯Š§g] Ëa2So\Í\`ª°ÈnN±ú|¡òìæ„¯Už—L 0•;¹‡õúQœ–|$» ‚ê”ÊÂ0GÒ÷@LM›§…ü/yjAP™æk–•GkS4g˜*[ ‚õ :¥úÓÿL§½?Üô=€ endstream endobj 271 0 obj << /Filter /FlateDecode /Length 338 >> stream xœ5RK’[AÛ¿Sè®jþÍyœšÕäþÛ쬠8ÈÄK QrÅy‚ñ:¿ëåiü>Þ…Ô‚§"ýÀµiïÇš5Q°4b)Ì>öý(!ÇSãßè¹Hfd2r ˆûµ>Ö›L9ü¤isú(Iz-ØÝv|YAÒ“–ìä‡u-°ºM˜k"9µ25ÏÇžá2ž#AÕ, IŸ¸OŒH3;g-yáxª/~½×2©—U2¶ æ`;™ §("¿ $¹‰»hê(ŽfÆšÛ…†’"÷Ý=œœôº¿œD^ á,ÖŽzÊ2'; J jå˜a½ö…qš6J¸SÓí]±¯ßg&aÜæ°³R2 Îqp/›Ì${Ý1a‡˜÷îŒÄ¼ù]l\¹Ì¹&Óý(ÚH×ç\M™­(áªä‰×øÿüÞÏÏ?7}± endstream endobj 272 0 obj << /Filter /FlateDecode /Length 392 >> stream xœ=RKn1ÛÏ)¸@¥ðMrž©ÞîÝ[›ÌTª /¶1”— ©%?ê’ˆ3L~õr]âQò½ljgæ!î.6¦øXr_º†ØrÑšb±OÉ/È´TX¡VÝ£Cñ…(-àá¾ÿñ¨Á×°…rÃ{d`JÔn@ÆCÑHYAaû‘è¤P¯láï( WÔ¬…¡tbˆ –)¾« ‰˜¨Ù ‡„•’ªÒñŒ¤ð[Á]‰aP[[ÛxfÐÙÞ‘3íÑqYk?=é£Q2µQMg|ñÝ2RóÑè¤ÒÈÝÊCgÏB'`$æI˜çp#ážÛA 1ôq¯–Ol÷˜)V‘ð;ʽýÞ’Ï{à,Œ\ÛìL'ðÑi§­¾býƒ?lK›\Ç+‡E¨¼(~×Aq|XÅ÷d£Dw´Ö#Õh% ÂÎí0òxÆyÙÞ´æôDh£DÔŽ=(²Å地§ü¬Í±ž&{o´”Į̀„Ôvz¨¶ÏcÔwžûúü.¡ endstream endobj 273 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ-Q9’AËçzBsÓï±Ë‘÷ÿé ʃ†C :-qPÆO–+ÞòÈU´áï™ÁwÁ¡ßÊu9HÒTM¨]¼½vfó¤5,ƒë?c 7zqxLÆÙíu5{×kOfP2+qÉÄSuØÈ™ÃO¦Œ í\Ï È¹Öe¤›•ÆŒ„#M!RH¡ê&©3A£«Q£Å~éË#aU#j û\KÛ×sÎ4;«<9¥GWœËÉÅ +ý¼ÍÀET«<p¿ÛCýœìä7ÞÒ¹³Åôø^s²¼0XñæµMµø7/âø=ãëùü¨¥[ endstream endobj 274 0 obj << /Filter /FlateDecode /Length 70 >> stream xœ3³0Q0P°b3s3s#K…C.# 3 @.—X ‡ËÐÐÊ261R044²LÍ¡b0@YKA9Pý9\iOT/ endstream endobj 275 0 obj << /Filter /FlateDecode /Length 320 >> stream xœ5Q»qÅ0 ë5ðø•4s¯ÊÛ¿ @;a@ª¼dJ¹\ê’U²ÂäG‡êMù>`¦üõãèÙ!ºSÖ–{ËÄ<¥ŽXM–{¸/ M‰¹…ó÷è+£0ºÅß?@³$0ipðSk­Zb‰<,X³+Ì­)TÈU|;6¹rq³Ð§š·Ü‚ðeˆdGj±¯Ëe)ò»õ „æˆO‰…çf"ñ'b{öÙbWW/ªÖI‡RÒln04E²êƒØWÇ5?OGÙÁÉA¿ŠÁø68™/Iy_¡þÏÙȱ’C$ò}µÀˆ#l€¡Oí#e 4E÷î™R>&UŠïF!}ªW2¼‘Ùj†Íÿ]Ù* UYŸFp&ƒI8ód£ ÓRµÓ¿ûÜãóccz€ endstream endobj 276 0 obj << /Filter /FlateDecode /Length 338 >> stream xœ5R9®Ý@ ë} ] €vÍœç©~î߆”_ C´VŠšŽ•iùe!U-“.¿íIm‰ò÷É ‰’W%Ú¥ ‘Pù<…T¿g˼¾Öœ K• ““’Ç% þ —Þ.çck?#w=z`UŒ„Ë£kY:»Ãšü<¦?âr®X·cH ºqÚïCóyÈ f˜–Š ]V‰~Añ G­}÷XTX ÑíIpŒP‘€vÚH 9³»¨/úY”˜ tí‹"î¢ÀIÌœb]:ú>t,¨¿6ã˯ŽJúH+kLÚw£IiÌ"“®—Eo7o}=¸@ó.Ê^Í ASÖ(i|Ъc(še…wš 4LJÌ<‡3”ô}(~_K&º(‘? ¡_£ŒœosÑŸ¶ŠñÙa¯`…ÒÅšä}@*z`úÿ×øyþü¶€T endstream endobj 260 0 obj << /FontMatrix [ 0.001 0 0 0.001 0 0 ] /Name /BitstreamVeraSans-Roman /FontBBox [ -184 -236 1288 929 ] /Encoding << /Differences [ 48 /zero /one /two /three /four 55 /seven /eight /nine 65 /A 67 /C /D 73 /I 80 /P 83 /S 86 /V ] /Type /Encoding >> /BaseFont /BitstreamVeraSans-Roman /Type /Font /CharProcs 261 0 R /Subtype /Type3 /FontDescriptor 259 0 R /Widths 258 0 R /LastChar 255 /FirstChar 0 >> endobj 259 0 obj << /FontName /BitstreamVeraSans-Roman /Descent -236 /FontBBox [ -184 -236 1288 929 ] /CapHeight 730 /Ascent 929 /MaxWidth 1342 /StemV 0 /Flags 32 /XHeight 547 /ItalicAngle 0 /Type /FontDescriptor >> endobj 258 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 318 401 460 838 636 950 780 275 390 390 500 838 318 361 318 337 636 636 636 636 636 636 636 636 636 636 337 337 838 838 838 531 1000 684 686 698 770 632 575 775 752 295 295 656 557 863 748 787 603 787 695 635 611 732 684 989 685 611 685 390 337 390 838 500 500 613 635 550 635 615 352 635 634 278 278 579 278 974 634 612 635 635 411 521 392 634 592 818 592 592 525 636 337 636 838 600 636 600 318 636 518 1000 500 500 500 1342 635 400 1070 600 685 600 600 318 318 518 518 590 500 1000 500 1000 521 400 1023 600 525 611 636 401 636 636 636 636 337 500 500 1000 471 612 838 361 1000 500 500 838 401 401 500 636 636 318 500 401 471 612 969 969 969 531 684 684 684 684 684 684 974 698 632 632 632 632 295 295 295 295 775 748 787 787 787 787 787 838 787 732 732 732 732 611 605 630 613 613 613 613 613 613 982 550 615 615 615 615 278 278 278 278 612 634 612 612 612 612 612 838 612 634 634 634 634 592 635 592 ] endobj 261 0 obj << /A 262 0 R /C 263 0 R /D 264 0 R /I 265 0 R /seven 267 0 R /one 268 0 R /four 269 0 R /P 270 0 R /zero 266 0 R /eight 272 0 R /two 273 0 R /V 274 0 R /nine 275 0 R /three 276 0 R /S 271 0 R >> endobj 6 0 obj << /F1 260 0 R >> endobj 7 0 obj << >> endobj 8 0 obj << >> endobj 9 0 obj << /M195 207 0 R /M95 107 0 R /M76 88 0 R /M16 28 0 R /M203 215 0 R /M233 245 0 R /M236 248 0 R /M74 86 0 R /M138 150 0 R /M29 41 0 R /M7 19 0 R /M191 203 0 R /M9 21 0 R /M193 205 0 R /M121 133 0 R /M64 76 0 R /M119 131 0 R /M215 227 0 R /M173 185 0 R /M19 31 0 R /M140 152 0 R /M168 180 0 R /M219 231 0 R /M177 189 0 R /M198 210 0 R /M82 94 0 R /M63 75 0 R /M131 143 0 R /M225 237 0 R /M211 223 0 R /M134 146 0 R /M139 151 0 R /M227 239 0 R /M141 153 0 R /M229 241 0 R /M112 124 0 R /M179 191 0 R /M231 243 0 R /M162 174 0 R /M88 100 0 R /M104 116 0 R /M115 127 0 R /M129 141 0 R /M117 129 0 R /M158 170 0 R /M216 228 0 R /M182 194 0 R /M175 187 0 R /M181 193 0 R /M96 108 0 R /M38 50 0 R /M185 197 0 R /M11 23 0 R /M210 222 0 R /M108 120 0 R /M205 217 0 R /M80 92 0 R /M17 29 0 R /M50 62 0 R /M45 57 0 R /M187 199 0 R /M200 212 0 R /M89 101 0 R /M56 68 0 R /M147 159 0 R /M26 38 0 R /M58 70 0 R /M28 40 0 R /M199 211 0 R /M240 252 0 R /M192 204 0 R /M164 176 0 R /M111 123 0 R /M65 77 0 R /M222 234 0 R /M172 184 0 R /M57 69 0 R /M13 25 0 R /M71 83 0 R /M148 160 0 R /M196 208 0 R /M123 135 0 R /M235 247 0 R /M87 99 0 R /M91 103 0 R /M18 30 0 R /M67 79 0 R /M46 58 0 R /M234 246 0 R /M52 64 0 R /M118 130 0 R /M100 112 0 R /M126 138 0 R /M190 202 0 R /M237 249 0 R /M213 225 0 R /M69 81 0 R /M35 47 0 R /M239 251 0 R /M98 110 0 R /M47 59 0 R /M214 226 0 R /M122 134 0 R /M243 255 0 R /M142 154 0 R /M79 91 0 R /M245 257 0 R /M124 136 0 R /M208 220 0 R /M14 26 0 R /M128 140 0 R /M218 230 0 R /M24 36 0 R /M220 232 0 R /M226 238 0 R /M207 219 0 R /M163 175 0 R /M133 145 0 R /M230 242 0 R /M54 66 0 R /M12 24 0 R /M150 162 0 R /M15 27 0 R /M114 126 0 R /M72 84 0 R /M33 45 0 R /M110 122 0 R /M116 128 0 R /M25 37 0 R /M36 48 0 R /M188 200 0 R /M174 186 0 R /M176 188 0 R /M149 161 0 R /M159 171 0 R /M49 61 0 R /M78 90 0 R /M242 254 0 R /M197 209 0 R /M85 97 0 R /M157 169 0 R /M130 142 0 R /M44 56 0 R /M154 166 0 R /M20 32 0 R /M144 156 0 R /M206 218 0 R /M23 35 0 R /M109 121 0 R /M180 192 0 R /M5 17 0 R /M221 233 0 R /M143 155 0 R /M103 115 0 R /M167 179 0 R /M27 39 0 R /M169 181 0 R /M66 78 0 R /M6 18 0 R /M93 105 0 R /M10 22 0 R /M120 132 0 R /M223 235 0 R /M2 14 0 R /M70 82 0 R /M51 63 0 R /M42 54 0 R /M0 12 0 R /M83 95 0 R /M86 98 0 R /M106 118 0 R /M166 178 0 R /M68 80 0 R /M204 216 0 R /M8 20 0 R /M241 253 0 R /M101 113 0 R /M77 89 0 R /M40 52 0 R /M107 119 0 R /M183 195 0 R /M61 73 0 R /M34 46 0 R /M160 172 0 R /M202 214 0 R /M39 51 0 R /M125 137 0 R /M94 106 0 R /M43 55 0 R /M30 42 0 R /M217 229 0 R /M59 71 0 R /M62 74 0 R /M48 60 0 R /M53 65 0 R /M201 213 0 R /M228 240 0 R /M145 157 0 R /M184 196 0 R /M21 33 0 R /M97 109 0 R /M178 190 0 R /M99 111 0 R /M244 256 0 R /M60 72 0 R /M151 163 0 R /M153 165 0 R /M31 43 0 R /M92 104 0 R /M155 167 0 R /M146 158 0 R /M152 164 0 R /M41 53 0 R /M102 114 0 R /M209 221 0 R /M161 173 0 R /M156 168 0 R /M194 206 0 R /M170 182 0 R /M232 244 0 R /M75 87 0 R /M135 147 0 R /M238 250 0 R /M37 49 0 R /M137 149 0 R /M55 67 0 R /M127 139 0 R /M22 34 0 R /M1 13 0 R /M73 85 0 R /M4 16 0 R /M113 125 0 R /M189 201 0 R /M224 236 0 R /M32 44 0 R /M136 148 0 R /M186 198 0 R /M171 183 0 R /M90 102 0 R /M212 224 0 R /M105 117 0 R /M84 96 0 R /M165 177 0 R /M3 15 0 R /M132 144 0 R /M81 93 0 R >> endobj 252 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 105 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 164 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 200 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 254 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 84 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 204 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 219 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 253 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 19 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 212 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 250 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 229 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 123 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 194 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 214 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 76 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 31 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 196 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 169 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 87 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 171 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 246 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 131 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 50 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 225 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 241 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 158 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 51 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 71 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 161 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 45 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 79 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 207 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 41 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 62 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 149 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 35 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 220 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 113 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 135 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 156 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 25 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 155 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 148 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 159 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 193 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 162 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 236 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 112 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 65 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 177 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 119 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 132 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 228 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 224 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 231 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 122 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 59 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 192 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 80 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 163 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 107 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 175 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 85 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 170 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 138 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 83 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 210 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 239 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 213 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 145 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 109 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 199 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 117 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 77 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 181 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 90 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 120 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 91 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 54 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 18 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 217 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 146 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 174 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 243 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 157 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 69 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 40 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 110 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 63 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 72 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 223 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 244 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 97 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 180 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 216 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 52 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 26 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 187 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 125 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 100 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 30 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 211 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 127 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 136 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 256 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 142 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 238 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 186 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 95 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 215 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 70 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 195 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 179 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 67 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 88 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 39 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 15 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 188 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 111 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 130 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 16 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 94 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 126 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 68 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 43 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 116 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 153 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 245 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 108 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 221 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 237 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 152 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 202 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 124 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 74 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 226 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 73 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 28 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 248 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 173 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 182 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 139 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 209 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 208 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 140 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 151 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 103 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 167 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 96 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 101 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 56 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 29 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 133 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 14 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 206 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 255 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 22 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 143 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 191 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 172 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 251 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 185 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 99 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 144 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 114 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 89 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 106 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 60 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 102 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 218 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 17 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 27 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 232 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 165 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 257 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 34 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 190 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 184 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 118 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 12 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 13 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 227 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 154 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 249 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 242 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 147 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 93 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 75 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 49 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 36 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 46 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 92 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 115 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 38 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 20 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 141 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 24 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 234 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 176 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 48 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 98 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 104 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 198 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 57 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 58 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 23 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 66 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 129 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 82 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 205 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 247 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 128 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 32 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 137 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 86 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 166 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 61 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 233 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 240 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 150 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 197 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 47 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 44 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 78 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 201 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 33 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 81 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 134 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 189 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 53 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 178 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 160 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 183 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 55 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 42 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 64 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 37 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 168 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 222 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 21 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 235 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 230 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 203 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 121 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj xref 0 277 0000000000 65535 n 0000000016 00000 n 0000000065 00000 n 0000000216 00000 n 0000000275 00000 n 0000000511 00000 n 0000206100 00000 n 0000206133 00000 n 0000206154 00000 n 0000206175 00000 n 0000000382 00000 n 0000200227 00000 n 0000237533 00000 n 0000237687 00000 n 0000233500 00000 n 0000227759 00000 n 0000228380 00000 n 0000236137 00000 n 0000222021 00000 n 0000210839 00000 n 0000239857 00000 n 0000246829 00000 n 0000233965 00000 n 0000241558 00000 n 0000240167 00000 n 0000215963 00000 n 0000224656 00000 n 0000236292 00000 n 0000231015 00000 n 0000233189 00000 n 0000225277 00000 n 0000212080 00000 n 0000242644 00000 n 0000244659 00000 n 0000236914 00000 n 0000215186 00000 n 0000239085 00000 n 0000246364 00000 n 0000239703 00000 n 0000227604 00000 n 0000223108 00000 n 0000214721 00000 n 0000246056 00000 n 0000228997 00000 n 0000244195 00000 n 0000214255 00000 n 0000239239 00000 n 0000244040 00000 n 0000240631 00000 n 0000238930 00000 n 0000213168 00000 n 0000213789 00000 n 0000224502 00000 n 0000245280 00000 n 0000221867 00000 n 0000245901 00000 n 0000233035 00000 n 0000241249 00000 n 0000241404 00000 n 0000218449 00000 n 0000235673 00000 n 0000243263 00000 n 0000214876 00000 n 0000223417 00000 n 0000246210 00000 n 0000217206 00000 n 0000241713 00000 n 0000227295 00000 n 0000228843 00000 n 0000222953 00000 n 0000226829 00000 n 0000213944 00000 n 0000223572 00000 n 0000230860 00000 n 0000230551 00000 n 0000238775 00000 n 0000211926 00000 n 0000221092 00000 n 0000244349 00000 n 0000214410 00000 n 0000218759 00000 n 0000244814 00000 n 0000242023 00000 n 0000219846 00000 n 0000210218 00000 n 0000219381 00000 n 0000242954 00000 n 0000212546 00000 n 0000227450 00000 n 0000235363 00000 n 0000221403 00000 n 0000221712 00000 n 0000239393 00000 n 0000238620 00000 n 0000228534 00000 n 0000226518 00000 n 0000232725 00000 n 0000224037 00000 n 0000240785 00000 n 0000234898 00000 n 0000225122 00000 n 0000232879 00000 n 0000235827 00000 n 0000232413 00000 n 0000240939 00000 n 0000209597 00000 n 0000235518 00000 n 0000219069 00000 n 0000229619 00000 n 0000220624 00000 n 0000223262 00000 n 0000228069 00000 n 0000217051 00000 n 0000215496 00000 n 0000235208 00000 n 0000239547 00000 n 0000229152 00000 n 0000220936 00000 n 0000237378 00000 n 0000217517 00000 n 0000221557 00000 n 0000247451 00000 n 0000218294 00000 n 0000211460 00000 n 0000230396 00000 n 0000224966 00000 n 0000228688 00000 n 0000225587 00000 n 0000242489 00000 n 0000241867 00000 n 0000228225 00000 n 0000213012 00000 n 0000217673 00000 n 0000233344 00000 n 0000244969 00000 n 0000215652 00000 n 0000225743 00000 n 0000242798 00000 n 0000219691 00000 n 0000231635 00000 n 0000232102 00000 n 0000240011 00000 n 0000226053 00000 n 0000234119 00000 n 0000235053 00000 n 0000220468 00000 n 0000222331 00000 n 0000238464 00000 n 0000216274 00000 n 0000215030 00000 n 0000243729 00000 n 0000232257 00000 n 0000230086 00000 n 0000229307 00000 n 0000237998 00000 n 0000216118 00000 n 0000215808 00000 n 0000222797 00000 n 0000213634 00000 n 0000216429 00000 n 0000245590 00000 n 0000214099 00000 n 0000216741 00000 n 0000218913 00000 n 0000209753 00000 n 0000236602 00000 n 0000243108 00000 n 0000232569 00000 n 0000246519 00000 n 0000212390 00000 n 0000219536 00000 n 0000212701 00000 n 0000234431 00000 n 0000231324 00000 n 0000222486 00000 n 0000219225 00000 n 0000240476 00000 n 0000217361 00000 n 0000245435 00000 n 0000227139 00000 n 0000224192 00000 n 0000221247 00000 n 0000231480 00000 n 0000245745 00000 n 0000237223 00000 n 0000234742 00000 n 0000226363 00000 n 0000224810 00000 n 0000227914 00000 n 0000245124 00000 n 0000237068 00000 n 0000234275 00000 n 0000218604 00000 n 0000216585 00000 n 0000211616 00000 n 0000226983 00000 n 0000212235 00000 n 0000243884 00000 n 0000241094 00000 n 0000220780 00000 n 0000209908 00000 n 0000244503 00000 n 0000230241 00000 n 0000247295 00000 n 0000210372 00000 n 0000242177 00000 n 0000233654 00000 n 0000214565 00000 n 0000231947 00000 n 0000231791 00000 n 0000220001 00000 n 0000225431 00000 n 0000210994 00000 n 0000220312 00000 n 0000211771 00000 n 0000226673 00000 n 0000224347 00000 n 0000222175 00000 n 0000235982 00000 n 0000210527 00000 n 0000215341 00000 n 0000229774 00000 n 0000246674 00000 n 0000223726 00000 n 0000217983 00000 n 0000213322 00000 n 0000230705 00000 n 0000237842 00000 n 0000217828 00000 n 0000211304 00000 n 0000247140 00000 n 0000218138 00000 n 0000236447 00000 n 0000243418 00000 n 0000240321 00000 n 0000246984 00000 n 0000216896 00000 n 0000229930 00000 n 0000226208 00000 n 0000220156 00000 n 0000243574 00000 n 0000213478 00000 n 0000238309 00000 n 0000222641 00000 n 0000223882 00000 n 0000229463 00000 n 0000212857 00000 n 0000242333 00000 n 0000231169 00000 n 0000238153 00000 n 0000211149 00000 n 0000234586 00000 n 0000209442 00000 n 0000210683 00000 n 0000210063 00000 n 0000233809 00000 n 0000225898 00000 n 0000236758 00000 n 0000204833 00000 n 0000204617 00000 n 0000204202 00000 n 0000205887 00000 n 0000200250 00000 n 0000200411 00000 n 0000200717 00000 n 0000200951 00000 n 0000201073 00000 n 0000201357 00000 n 0000201498 00000 n 0000201651 00000 n 0000201814 00000 n 0000202053 00000 n 0000202465 00000 n 0000202931 00000 n 0000203253 00000 n 0000203396 00000 n 0000203790 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 277 >> startxref 247607 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_projections.png000066400000000000000000004371471323370031300217000ustar00rootroot00000000000000‰PNG  IHDRô¢d}sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ %@S IDATxÚìw|Í×ûÀß7÷fY"#‰‘3Ähh¬ØJQ­U³Õ¢:´Zª­¶65J)~5ŠÒaoµ© A’H" Ù;¹¹óüþÈu›k54|ÑÏûõòjóçÞÏóyîóœóœsžG&„Hü#—.]bÁ‚„††RXXˆ••...´oßž¾}ûÒ­[7† ƤI“°°°0¹7;;›®]»âááÁ/¿ü¢E‹øâ‹/prrÂÒÒ…B““¾¾¾¼öÚkS¡BIèeâÇdôèÑxzz¢P(Ë帺ºòÖ[oÑ·o_£.åååqòäI–/_Îõë×)..ÆÆÆ???úöíK=°¶¶6¶ËàÁƒ9}ú4G¥uëÖ’°%›Þ½{sõêU®\¹bÀÒÒWWW&Nœˆ¯¯/ÅÅÅ$''sêÔ)F͈#xÿý÷qvv–„/Q&d2³gÏÆÍÍ‚‚öîÝËgŸ}†L&cÈ!²téR–.]JÇŽéÝ»7®®®pþüyV®\IÓ¦Mñññ1¶Á­[·puueíÚµ´jÕ ™L& [¢\P«Õ¬_¿ž¹sçR¯^=ÆO¥J•P«Õ\¼x‘Í›7S«V-“Ždll,—.]¢råʬ_¿ž7ß|333I˜’C/;¡¡¡ÄÆÆ2}út `4jBòóó±³³£M›6ìØ±ƒððp:uêdÒ=|ø0r¹œ.]º[YYH`` ñXß¾}™7oË–-Ãßߟ×^{M2 e&((ˆjÕªȶmÛ8uê½{÷&,,Œ… Ò¿&OžŒ“““ñ¾=zƒ»»»I{¿ýöT©R…#GŽKÍš5%AK” qqqL:•àà`¦NjÔ]€®]»wÏàè÷ß§zõê³~ýz®\¹B½zõ$aº6eÀÜÜ!III¤§§S\\l988`ffFëÖ­©[·.+V¬@§Óï½zõ*GŽaÀ€888<ôsœ7næææìß¿ŸœœIø………r¹N‡‚5kÖàææÆàÁƒMœ9€¥¥%þþþØØØ%$$pèÐ!Ú·oÏG}Dnn.Û¶mC¯×K•(6lØ€\.gðàÁ&ÎüŽÍ­]»¶I”òöíÛlÛ¶àà`ÆŽKÅŠYµj•‰½•FèÿHË–- fáÂ…œ:uŠ àë닟ŸþþþXYYQµjUÚ¶mËêÕ«¹rå õë×G§ÓqæÌ233éÕ«W™>ËÚÚâãã)((¸ÇøJHÜ!.\ %%¥RÉ((( iÓ¦ØÛÛsîÜ9j×®M¥J•ÊÔÞÚµk©T©mÛ¶ÅËË‹ÀÀ@Ž9Bÿþýñðð.ñ¯9wîîîîxyy•éú;v T*yõÕWñðð }ûöþøc†ÎìÙ³ÑjµÈd2z÷îF£açÎ!P*•lÙ²…-Zàíí]¶bf† J¥RêyJ<&L`äÈ‘Œ;–]»v1qâDúôéƒB¡ ¨¨+++Šî禦²wï^©U«ýû÷çüùóDFFJ‚–(ŠŠŠ0777®+zÙÙÙœ[·nP±bEìììØ»w/­Zµ2 ÏKH<nnn\¿~¼¼¼¼6<<œ³gÏòæ›orûöm $šéééÉèÞ½;+V”Fè’Z•¹\Ž­­-...øûû3|øp*V¬Hxx¸qt=lØ0._¾Lhh(+W®¤fÍš´nݺÌ+1ãâ∌Œ¤^½z&Û5$$þ‰Ê•+S¥J<==©X±¢ÉȧcÇŽ\¹r…ëׯs¿ªwŽåææò矢V«™9s&!!!„„„0räHòòòضmééé’°%þ5;v$11‘ˆˆˆûF#…ÆHç‘#GÈÌÌdݺuF|å•WÈÊÊâøñã\»vM¨4B/ñññ¨T*|}}MFÒñññäååáééi<Þ¸qcã~óˆˆzöìI5þñ3„DGGóÍ7ßàââB§N¤QD¹ñꫯ²mÛ6.\HÍš5Mæ-sssÙ·oíÚµ#>>ž“'Oòæ›oÒ§O“6.\¸Àœ9s8|ø°´ÿW¢\ú²eËX±b~~~4mÚÔxN©TrðàAüüü°²²b×®]tïÞ¡C‡štT˜>}:û÷ï'((è?¿+Hrèe 22’3fàææFݺu±··'::š'NàëëK·nÝŒ×:;;Ó«W/¦M›†µµ5ýúõ»ï¼e^^ë×¯çØ±cÃÅ‹)**bÆŒ´nÝZÚ²&QnÔ¯_ŸéÓ§óÕW_ѧOZ´h§§'999œ={µZM@@GŽ¡¨¨ˆмys“6ê֭˾}ûX³f ƒ *Ó|¼„ăpwwgΜ9Lž<™ÁƒÓºukcŽÐÐPrrr˜?>ÉÉÉܾ}›É“'Ó¡C»˜——Ç_ýźuë˜4iVVVÿi™Ê§L™2ER­‡ãáá——EEE$$$póæMèß¿?_}õ•ÉÖ …Bƒƒ………4iÒ„Q£FÝÓ^jj*ÙÙÙdgg“@VVnnnôìÙ“™3g(K‰2“‘‘A~~>½{÷ÆÖÖöþ?t¹œÚµkÓ§O¬¬¬HLL$>>½^OHH'N¤råÊìÛ·—^z‰Î;›d°±±A¡PMƒ ¤Ä7pqq1€d2ÕªU£W¯^xzz’@\\´jÕŠO?ý”F±gÏj×®MïÞ½ïÉ iii‰••Ô«W77·ÿ´Œeááá"44”ääd,-- ¤U«V÷†„„Ö¯_OÕªU………L›6Î;@jj*€QGïÞò·páB~úé§­Ÿ:ŽÌÌÌr]M›““ƒ……E¹æ(o}/ïöŠŠŠP«Õåš<)-- “(Îã››ËÈ‘#7n\™®¿yó&“&MÂÏÏ¡C‡¢Õjùå—_HOOgΜ9Èd2c’”ûÙNµZMõêÕË%yjj*®®®ÿZOê½k4rrrÊ5«[vv6ÖÖÖϼ¿(***—’ع¹¹\¼xñþ'…"99Y¼ÿþû¢W¯^"**J!D~~¾9r¤ Ó¦M³fÍmÛ¶ 4?ýô“ÈÈÈwÓªU+Q¬ZµÊø=Ê‹O?ý´\Û»xñ¢X·n]¹¶ùý÷ß‹¤¤¤gö¹³³³ÅŒ3Ê¥­víÚ µZý×ét:ñË/¿ˆ¶mÛŠeË– ½^/„bß¾}ÂÛÛ[LžÓú^Þí9sFlÚ´©\Ûœ5kÖ}íÒ£²eË1wîÜ2]{ãÆ 1hÐ 1lØ0/îØÓž={Š×^{MÌœ9SÌš5K4hÐ@´iÓFlܸQäææš´¡R©D»víÊE3fÌÙÙÙÏì{OLL‹-*×6×­['.^¼øLëû•+WÄêÕ«Ë¥­‡ùYEFFsæÌáÚµk|÷Ýwøùù• Ý BBBˆŠŠB£ÑÿiµZŠ‹‹ï›>RB¢¼Ù¿? .dÈ! 8Ð8òöðð`äÈ‘h4”J¥Q'U*Z­VœÄ'!!)S¦ Ñh˜>}:U«VJöë÷îÝ›¸¸8ã"bN‡V«E¥RI¶SâɅܧNÊŽ;1b111ÄÆÆСCz÷îmRÿ¸°°ØØXÞzë-)ñ‰ÄçðáÃ|ôÑGÔ¯_777:@5¨[·.µk×6^{§VòÀiÒ¤‰$<‰'JNN_~ù%¡¡¡¼÷Þ{DDD™™]»v¥ÿþ&ŽûÒ¥Kx{{Ó¿ÉvJ<9‡^¡B^~ùe®_¿Îõë×’ÕšAAA÷dŠ ¤zõêO¼ ˜³³s™Jê= •+W.×ö¬¬¬Ê=S–««k¹Ë¶<Ÿ[.——ËüyYÑét£T*Ù±c‡Q7;wîLݺu±°°0^[¡Bz÷îM•*UÊmþðA2(ïlTŽŽŽåž·¿¼õ½¼Û³±±)—õ6¥qss{jÎR‡‡-Z´ 44”ÐÐЃªPЭ[·{~ÇmÛ¶ÅÍÍí‰ÛN77·rÕÿò~ïæææå¾âßÉÉé_õ_ðRÌr£¼æÐ322„R©,×9Œòž›.**™™™åÚfZZZ™æ•ÿWÏ­ÕjEJJÊSC//Êk]£Ñ”› J¯M(,,|¦õ½¼Û+(((×¹^!„HIIæ©Î¡—å9‡~ûöm¡ÕjŸÙ÷®V«EZZZ¹¶™™™)ŠŠŠži}W*•å²¾ãçПŰ‹‹K¹·Yº"Zy`mm]î½Â'QÏ·<ŸûiПɖBQî2xerË[ßË»½åœÿ7ü×uJ ž<ËïÝÜܼÜí\y¬ÒÏmeeõT ÇHõÐ%$$$$$^$‡.!!!!!!9t É¡KHHHHHHH]BBBBBBBrè’C—ºÄ3ŽN§£¨¨È$õ¯„ijÂjmÏjµš¢¢¢ÿÉg+Ž;ƈ‹‹ÃÊÊŠvíÚÑ­[7HNNæ÷ßçâÅ‹SµjUúõë'åÊ~Á9|ø0ëÖ­'--ggg @Û¶mMR­> ’““Ù½{7¡¡¡áååÅÈ‘#ñöö`ëÖ­Ì‘#G¸yó&*T sç΄„„`mmMtt4üñQQQèt:¼½½6l5jÔ^â JAA+W®äرã¨Õ*ê×oÀ°aCË¥,n™úæÍ›±³³ãµ×^#''‡åË—såÊ&MšDaa! …‚=z`eeÅ¡C‡8p ;vì V­ZÒ|ÆB V«Ñëõ˜››?r^k½^϶mÛ9ò#òòª£Õºaf–ÌŸ~À¤Icyë­‘åžcÿa„……qöìY‚ƒƒqrrâÀ¼ùæ›,[¶Œºuë’™™I“&MðððàÖ­[,^¼˜˜˜>þøã§nà%þ™; Å#w…œ?žqã>æìÙlÔêZÈdEìÞ½”óç/²`Áwåžþaäçç³sçN*UªÄ€HHH`úôéܼy“±cÇ’››‹½½=¯¿þ:BvîÜÉàÁƒÙ¸q#ÕªU“”áC§Ó¡V«‘ÉdXZZ«:>Š3÷Ý1lÚJqq „°fïÞ]>üK—. aÆOÇ¡OŸ>ÝXBB¡`þüùŒ;–Úµk›T´ âØ±c?~\rèÏùùùœ8ñ¡¡gŒ£ÙvíÚS»v­2+gbb"3gÎ&+«)PÏàä))W™?]ºt~ª#ŒN:ѽ{wc±‰Î;Ó¬Y3:Dݺu1b„ÉR¥R±uëVrrr$‡þŒu4ÃÂÂ8|ø0ééé8;;Ó®]{7nTfÇ®V«Y¹r5'O"DgÀ !@©ôcûö]´i³•!C†<µgrrrböìÙF=BŸŸÏ† ;v,M›6¥iÓ¦Æë_zé%‚‚‚8wîœäП1ÝLHHàСC\»v +++6lHHHÈ#Eú6mÚÌöígP*» Øœ:uˆ¥K—³téâGî$<–C/]åéÎO.—›|¸^¯G­VsæÌ”J%õë×—4áB­V³bÅ ,XCR’=BØ`m½—fÍ6³jÕrcˆúŸ¸|ù2©©…€o©£2„¨ÂáDGG?U‡~wîc­V‹V«5©X%„@¯×sûömÂÂÂðóóÃÎÎNRŠgˆ0iÒÂÃUá‚™Y. lgòäOèÙó•2E’T*‡…>@i½°''§ááá 4è‰VÚ+™™™I§ñ޼»ƒ¢×ëQ*•=zi ôŒÇ„ Ù·/Š‚‚J@1•*mâ­·"øê«/ˤ›BNž£‚³gϲwï^“¨@ÇŽÉÍÍE©T2qâDÉ¡?c,]ºŒíÛ£ÑhÚ€ 55eË~套ZÒ¥K—2ëÀý×˜Ë ÿž²COLLdâĉxyy1|øp“¹ÒéÓ§“——Ç©S§˜?>tìØñ¾½è“'OšŒ°jÖ¬‰ƒƒƒ¤9O={ö’—çÔ,¥TvèõÍ9yò(IIIT¯^ýÛ©[·.žž$$\Eˆ:õÐ7ðñ±3™~yŠŠŠˆ‰‰¡  Àx,77·Ì÷²jÕ*~ÿýwæÍ›‡ñ\›6mð÷÷'))‰%K–°hÑ"f̘qß LW¯^5©ôT¥J)üù„‰ŒŒ$2òz}pǦX¢×ûpêÔ.âââÊäÐ--- iÁõë§Ð骶€²qq¹M³f#{t~óæM’’’LôäQê–GFF2eÊ‚ƒƒéӧɹÿû¿ÿ£  €Ã‡3oÞ<¼½½y饗îi#77×ÄvÚÙÙQ³fMJGP%ÊŸw Ñ4J×*÷ +«»ví.“C—ÉdóûïGÈÉÉœ N¼¹<†îÝÛ<ö÷ËËË#&&†ââb?ûP‡~ãÆ ¾þúkììì˜4iÒ=ÅÝ===ñôôÄ××—'N°iÓ¦û:t½^OFF†‰RjµZIkž0ÅÅÅÈdæ÷é!ZCe¡Zµj|ðÁûDE}Jvvª!<šCÅŠ™|ôÑ»xxx<Ö÷Óétäææ’m<¦ÑhÊ|ïêÕ«Ù¼y3ãǧeË–&çííí±··ÇÇÇ¥RÉ_|aœ§½›üü|ý|e%LÑh4hµ÷¥È¬̺iaaÁ!C »Ä™3¢ÓUC&S1ôë׉®]»<öw,**2Ñ‹üüü2ëFdd$“'OÆßߟqãÆÝ³0ÏËËËØYÞ¹s'¼¯C×h4&ßA§Ó¡Óé$zÂ(•jî TFÜæ¨TeßÙ­[WŽ9ÆÊ•{¢&BX —'м¹ o½5â±£›Z­–œœ“ÁÐö+’’’˜2e ,X°€*Uª ×ë133C§ÓÿÿŽãÈÊÊÂ××÷¾Y[[óÊ+¯HZò” VY†Þ!†ÑË5*W®\æÚ¾2™Œž={âèèÄÆ¿KÞ 8‘   Ç^ánooOëÖ­MŽ-\¸ðïÓëõüúë¯üôÓOL˜0=zB[%ßµôzNGNNr¹üó^’~>eªW¯NåÊܾT58vL–E•*xx”]74¨ÏÊ•Køå— 9r ;;zôø˜¾}ûü«Î™ŸŸ~~~&zûÐ{„DEE1iÒ$ÜÝÝ™4iNNNF{©ÕjB —ËBPTTD^^ÞZ¹ººJºù? (¨!;w&¡×{•rì*llnзÌí8::2mÚ74iÒ˜;öRX¨¤M›Wyã×ÿÕ4KÉÒv&ÇæÌ™ó`‡>qâD:ÄàÁƒÙºu«ñÄСCù믿شiµk×FADDùùù¼÷Þ{’&W¥J•7njµšœœãñââb,--éׯ±±±áééÉŒ3hÒ¤ÉSÝ+/ñpÌÌÌxë­‘ØØX³k×ÒÓoâädÇ+¯|«¯¾úÜÎ[XXЭ[7š7oŽ^¯7ÚN¹\Ž™™-[¶D¯×“––†\.§_¿~´oßžJ•*IJñ ѤI/žËƸv-KK ºòöÛo?— ªo½õÖOV¨Pá©îí”x|ªU«ÆøñãÉÈÈ ¸¸gggÓ%Ï#Íš5£Y³f<ߣGéÅ?XZZ2dȺvíJAAÖÖÖ¸»»?µ-fO{{{Þ}÷Ýž¿;Œ/ñlbnnN›6Á4n܈ÌÌL nnnÏm …ôJ_¬¬¬¤è‰Ä3‰\.ÇÝÝ]„Ä3‡L&ÃÑÑGGÇçþY¤â,/’C—º„„„„„„„äÐ%$$$$$$$‡.!!!!!!!9t É¡KHHHHHHH]BBBBBB¢Q!Ðjµh4cassscù@N‡Z­6Vx‘ËåXZZþOkcKü7Ðëõ†j]º°´´4f¿S«ÕhµÚûê­„Ä“æŽnêt:£þ) c± Fc¬˜&ÙM‰§âÐÓÒÒøþûï §   š4iÂ|@åÊ•ùå—_øã?ÈÎÎF&“áääÄgŸ}FóæÍ%å”x¢„††²lÙ2âããÑjµXYY1xð`úöí‹¥¥%ãÇçÚµk(•JÌÍÍiÚ´)£G6–¬”xRäçç3þ|N:EAA …‚úõë3vìXjÕªÅÎ;Y³f ™™™!pttdôèÑtêÔI²›OΡËd2üüüèØ±#Õ«W'11‘¯¿þšŸ~ú‰É“'ãèèÈСC©W¯:Ž 60iÒ$Ö®][沜ƒ\.'$$„úõëcggGDD_|ñîîî´mÛ___úõëG•*U¸}û6Ó§OgÕªU|úé§Ïmщçooo‚‚‚ðöö&--Ù³g³páB-Z„ƒƒýúõ£qãÆÈd2¶lÙ”)Sðóó“:œOΡW¬X‘ %T¯^   NŸ>™™]»vÅÌÌÌØ«>|8ëׯ'>>^rèO”€€š6mjÔ=///¾ûî;"##騱#ï¾û®Qo«V­J‡8~ü8’C—xp›^ IDAT¢ØÙÙ™ØMoooÚ´iÃúõë133#88™LfÔÝÁƒ³fÍ®_¿.9t‰';B/]õ(33“K—.áïïo%ÝA§ÓqàÀÜÜܤ" Oe„^šØØXÒÓÓ©Q£Æ=çóóó9{ö,5kÖÄÖÖVžÄån»™——Ç¥K—ðõõ0©r¨Óé8~ü8ÖÖÖx{{K“xb˜¬r/,,dÅŠdgg3|øp“ õz='NœàÇäÝwߥzõê’ô½^BÄ#’ÀçŸN‡hÛ¶­É9FÃÚµk¹yó&}ûö•úc"„0.~•(;†õë×sýúuFuÏïýܹs,]º”þýûS«V-I`©›’Ý,ýôkÖ¬aÏž=|òÉ'&Š'„àܹs|ýõ×tíÚ•~ýúÝ·±ÜÜ\¦NjüÛÙÙ™=zPµjÕÿ¼ SSSY´h1QQQXXXзoºu놕•ÕïÑjµìÚµ‹Ó§CQ*•¼ôR ºuëöÜ9¬ôôtvîÜIrr²ñX|||™ïOIIaÚ´i¨Õj&Mš„ƒƒÃ=Î|íÚµL›6Æ?°ß~ûK—.ÿnÕªmÚ´ùÏëfnn.[·ncïÞ½èõz›2xð`*UªôÀ{t:—.]bÇŽdeåàåU•Þ½{?—¿õ#GŽpâÄ ãßQQQ”ùþ­[·²víZÞ{ï=š6mjr.::š¯¾úŠ€€FŒñÀ6âããMl§§§'=zôÀÕÕõ?¯Ÿ`ÆdeeãåU‘#G#ÈâÖ­[üñÇÄÅ%P¡‚¯¼ÒƒF™DNžÙ±cYYY&¿×‡õ|Daa¡øá‡DóæÍÅþýû…V«wÐétâܹs¢E‹bÚ´i"77W<ˆ   ‘ŸŸoüWXXhÒÖ•ˆˆ$,- ™¬»É: GÇšâÃÇ‹ììì{®/,,6luëú kë*B¡h"äòÖÂή†èÓçuqãÆçêùu:(**2Ñàà`¡V«ÿñÞÔÔT1pà@ñÆoˆØØØ{ä´xñbѬY3qàÀ¡ÓéØÎœ9sÄÆM¾ƒJ¥úÏëfff¦:t„°¶®)ÌÌ: ™¬³°°ðÍš‰ÔÔÔ{®×ëõ"44TtìØIØÙ¹ sóúB.o-,-뉪Uk‹°°°çN*•ÊD/6nÜ(æÎû÷)•J±fÍ(¶nÝ*4‰œ¢££EëÖ­Å„ DFFÆC??88Øä;=TŸÿ ¨T*±dÉáää#äò`=„BÑLøù5Û·oZ­VkŠE¡ºÐ(óøøñÑGã…‹K%aaQKÈå/ só@Q¹r-±`ÁB¡T*Ÿ+hµZQXXh¢AAA¼^QXXȪU«X¶l&L Aƒddd —Ëqqq!44”?üÀÀ@^{í5”J%*• ,--ï™W²³³“â¥ÈÏÏgéÒ9^ƒVÛ(™wËÉñfݺ}´ió2=zô0.žÑétìܹ“?ü„”” à@AA.Û¶ý‰¿ÿÏ|þùD,,,žy33¬­­MŽÝ=?~?’““ùú믹uëß|ó ¶¶¶¤¦¦bkk‹µµ5«V­bùòåŒ;???ÒÓÓ177§B… ÷mßÊÊJÒÏ»øóÏ?Y»ö:]W "juΞÝËüù ˜>}šÉ6«˜˜Þ~û""®­&€NCRÒY&Lø”7P±bÅçF&¿¥»íÚýP«Õlܸ‘ï¿ÿžÁƒÓ¢E 233‘ÉdT¬X‘‹/òÑGáããðaÃÐjµ¤¥¥aooÏoáÎïAÒMS.\¸À’%?‘Ô0D-u\½z†Å‹—Ó8 1G3‚ ^÷Üì\¾ýv?ÿ¼ÆèX£ÓéII¹Îœ9Ëiٲ͚5{nd —ËïYàû°mФ¤$V®\ÉíÛ·Y»v-¿üò nnn,[¶Œµk×™™ãÆÀÑÑ‘1cÆÐªU+IëþÛ·osåJ4:]=£3/Á•ôtΟ?OçÎE©TòóÏIIÉêy hµ~ìØq€¡Cß|áØ:tˆ-[¶àââ´iÓŒÇûôéCß¾}ùî»ï(,,dÆ lÞ¼___&Mš„›››¤|e`ïÞèõÕÒ¡]„¨Ï±cÇ(,,4q47þJTTšÁùû•šµ3Gˆ&DGÿÁ±cÇèÙ³' …â…•[vv6+V¬ >>ž;v°ÿþƒªP°iÓ&¶lÙÂ_ýE£Føðð¶¶fÔ¨QtêÔIR¼2péR$ Z ô4ŽðáôéÃÄ&Çòãåy§é;˜É̸ví›7ïC£1Zw:NfáCrr;wî¤aÆeê´=(|||رcZ­Öô„B¥¥%_ý5&L¸§×àìì,i\Ðëõ†…Fwe€Ng²ØC­VsîÜ5À°¹Ï=–\ºtöí»0tè@Fz77·2YE¯^½hÓ¦Í= µ°··çèÑ£÷œ³´´”tóÐh´÷ÑME)ÝÅ0:ÒråÊT*G@ ܕϜ[·25ê=Ö¯ßÈìÙ3¨Q£Æ ©›®®®üþûïh4š{FOæææ¼ÿþû 6ìžH•“““¤teD§Ó¡ÓÝoÎÛ ­N°:b5®\éV«f23bbbÈÎÖ¹Í=ú ÌŸÿ‡ã³Ï>¦cÇŽÏM”³ÌÝÜÜü¡ûÉ]]]¥…ÿwwwüü|8sæ*Zm¥R#š œœ²iذ¡IºR¹\N¥JÎܾ]Ü”¥zšjà&Z­–¸8%S§Î$1ñ&Ó§O®BœeÅÞÞ{{ûž—[þ{:tæ×_§£Õfw:BEÀ%š5km²ñNG^¡­V Ü| MÜD§S’™iÇ–-{INNdÅŠåÔ¯_ÿ…sêr¹žwrr’œ÷¿Äß¿.Õ«CTÔm šAÏtÈdñTmhÍÁÔƒ¬é¸G+G\\\P(,ÐjõÀ5 €¿7re©Øò×_‘¼óÎ;̘1ƒAƒ½Pº)gyÂÜÉ´çç§D&;\Îaeu”×^ ¢U«V&+/­­­éÙ3…B€hƒs?ލE¸I¦ˆ}?ÿÌìY³î‰°HH”…®]»Ò­[CŠÀ9d² ÈdhÐ@Á¸qïÝ3úìÞ½;y†ŽéIà"œöS‰bÚq“N.œÏ'M"&&F´Ä#Ó¸qc†}+«£Èd§Ë˜™ÇÝ3Ž A–4«ÝŒVÕþžöõóó£I/Ã( 8m°›WƒØr‹$Ò…LÜ““™:y²ÉîÉ¡K”‰–-[²aÃ*†õÇÛû‘´kçC‹-0333 ¹[XX0|øP^½ööZ,,âQ(v#“mBF8þäÑ’¢V@µš­«WsèÐ!IÐLÅŠùþûï˜6mgP±ây-éÒ¥-ÖÖÖÆâ"wh×®-'Ž£B…",-³17?ŠL¶ 8Œ=©ôCdÐÏŽZ-Éþɯ7¢R©$aK<ÖÖÖŒ=š•+§Ñ¦ ¸»Ÿ§V­tšw÷%Ï9F`nöwt³zõê|ùå'ԫ猵µs󳘙mö`K íÐÒhFÉr9¯›7™öí·dggK]¢ìÈårüýý4¨?NN¸}[°gO<#F|M×®½9þ<………\¿~+W® P(X±b)[·näë¯?fĈ~¸¸¸`Ž@CðIAÉ’¹J99ìÞ¹S´Ä##“ɨV­o¼ñ~~Þ¤§k9{6—Ù³·Ð¼yÖ¯_Oaa!ñññDFF’˜˜È˜1£9qâsæLá‹/> Z5@A :\(™‘—N@M†#ûöQXX( [⑱³³£Gî´mÛ µZ}CËÖë‰9ÄžŸö“››KZZQQQÄÄÄÄ¡C{X¼xS¦|LëÖ ‘Ë+⎺€wV"•8ö¸èh"""^y)$•)„Èd2„ÄÅÅqùòeCu¦¥œ;gôl|ÂÂNñþûÑ´icÂÃ#Q©4xx¸ðÚk}èÕ«íÚµãöíÛÄÅÅsæÏ8䥒%å×D½å‰lÞ¼™N:I™Ò$ÊDvv6¡¡¡äää°{÷n¶l¹„½ ®XORÒy¦M[Dxø9¢¢®‘]„­­íÛ3zô»¼÷Þ{h4T* ³fÍB^jÖGCI 3J²¯^eÍêÕô0wwwIðÿh;•J%$'ß"&&šï¾[K^^s„sðÚ…öX-–ïÛŽ™Z’’FBÂmd2 ú1jÔ(† †L&£~ýDF¾,óïÑ«HnP’êü—õëqvr¢~ƒÏ]âÉ¡?AnݺŢE‹ ÇÖÖ/:JF†FFzz,%ò;[&ì—8yr9gΤ¢Õ67œ»ÅÉ“ß2ÊõÅÝÝéÓ§Ó-,Œ„¬LªÀƒrúúÂ&Cä»ïòå—_J/C„üü|~ýõW¶o߉N§¥ZµªÄÅÅOq±Œ¼¼ÛW4è¤Ì0Îö'&&™%KÖ¢Ó…Õ¢ˆ°°uäçç3eÊWØØØ0räp"/]äÜŽí´pˆ¼€J™™,ÿö[".\`êÔ©ÒbF ôz=ÇŽcéÒedeeQ¥Š'*•гg#((¡Tf“›«l a$d;ÁÍf¨56,]º&¨è '"â=víÚŠ³³3!!øðÃ1,œü)ª:š'J@Ãü|Îþò ÃΜ᧟~h¦IÉ¡ÿ‡z•g΄2jÔ8._V£ÓyS²ã0Ð ð¥¤GÉ"7G žÁpÚ ×Û¡××îì+÷ =]Á¤ISyõÕW‘Ëå4iÀ¶Ý»5t(cb(Ðj±B«’_·SRX6u*mÚ´áå—_–^ŒPR£aðà¡lß~¨‹j`ƒA{SˆÌöû€ÎÜÙæ£×Û¢××-¥ÃPXèÌï¿ï¥C‡ötìØ///–þ¸”÷--ؼu+ IÀëÀ5òÊœv­[ÇJoo>ý쳇¦<–øï T*Y´hS§.¡  &BØôÐèjˆ©K\°Ç^¨UÛúÚju ;;4šJœ9³Õ«×ðÑGbeeÅøñãÑëõ¬_°€”ìlÎ ÁË@]ƒÖ+•œ¹|™÷ÇŒa÷þýÏu‚i½œF??ÿ¼–ÈH3CÆ­”ìÑõê”suÀŸ’@ùý½· ãl÷»: îܸq‹Y3g²~Ý:’’’`ñŠÔ>œ$++êÜqæ*UõzvïÚ%½ #;wîdûöp„èŽ]sšœ9×ÛH2ïh6 ¸L߬¹u Vþ´’%?üÀåË—qsscÞ¼yt~ï=R¼½©e0Éw°êAØéÓÏE-ñŸâÒ¥HV¯ÞD~~B´6ØH´78sJtÔ¼>44ƒ›• ÅÝ`?c z[Ú Z•ùõ×ßY0>`ìØ±|2{69-Z`Ô,¥Ñf@#!HIL$22R¡ÿ×ÉÊÊ",ì BÔ2H %[μïÓr48t5%ûx#“)âî=«*„NÖ/¿Déäĺ&MX¹z5­ZµÂÏÏ?·lÁ¢¸øžïb%Ê¢"é¥HÙ½{Á„¹ŽäP²†ãîµJ·Žœ»ã]]NGØï¿suÇv6ðÙĉtîÒ…‰“&‘™•Ej\œÉ2ÀB&#_¥’*ºI-‚7n]ÜÉ…R`pÖwåÕ¨œ• `OUƒm½\šß¥› D ¡¡¬‰GëáÁ€·ßæÓO?eèС!˜uêÔ=)‘,¡×?÷»1¤z¹"+ÕO²7ŒvJoûÑ d6ðð¯¼Òww+à Plè daF8É£‹^O·ÌL²äÓ?F­VãêêJ@Ë–DËd¨ï(1 $ZXÐJ ·K”v¿zq—Ñs2ż»®Ì¦$ÇŸÀ*¼½ éÔ© E¬ÁÐj%2.S›tzº+•8:ÅŒ)SˆŽŽÆÉɉ€ÆI´±¡ôºöb ^&÷aC)g¹ÄßSÆ]ºig°Ÿ)¥¼­ êEBB.d\~ÂÖ6”¾}C°°HÒ º©¢±$š®èè®VóR|<«æÎeû¶mÈår‚ƒƒÑØÛ“Àß1R8¹¹áçç÷|Я]»Æ•+WÈÈÈÀÜÜœ:uêРA¬­­Q*•\½z•7n––FãÆ ,SaÿNNN4iR‡sç"Ðé< ý½:”,[»@ÉÒ %sè7€—K/0bÄpzöÌdæÌÅÄÆÞ@¯·Á‚$|H¤%zä”$1l©Ó±ïìYbcc©S§ïü1^½Êñèhª Z&ãšBAãŽéÞ½û !לœ.\¸@\\jµ‚ƒƒ™ oÞ¼ÉåË—II)ùñ÷ïß_š›½]»væ—_&"D]J²Á¹Q¦ ¥¤¸ŠÁ™ÿ4üÉNóê«ÝèÓ§rù4öïß‹VëäáÁUZ¢ÇÕ`Škêõì'22___º÷èÁ‰'8¼y35õ%:œ(“A@o¼ñÆC³ÿ=/hµZ®^½ÊÕ«WÉÌÌÄÆÆ†úõëãïï¹¹9\¹r…ØØXrrrhݺ5þþþ/dÜÇwæ2¼½½©UËŠ¨¨$J¦( ÿ=DIñ¨”nQðg5м ÄÒ²¥S¦|…•Õvï>JV–= ÁXɦ %Ë:=€*99ìØ±ƒWzöÄËË‹cư}ɲóóq‚ ™Œ8&~ðÁCK?ý‡~ 33oooŠŠŠX¿~=C† áõ×_'))‰… ’””Dll,o¼ñ7þÏ;ôââbþøc111X[[Ó­[WÞ|s§OŸãÒ¥ýètÕ # Bà8a†¨()hᜥAƒ*øùùáåå…¯omΟ?Ïž={ˆÚOgþ€bïk5òòJFUÍ›7çË9søeíZâ¯^ÅÞÙ™¾íÚ1hðàûVsz9~ü8kÖ¬ÁËË öìÙÃþýûùæ›o¨T©[¶laÓ¦M¨T*RRRèÑ£ÇÞ¡«ÕjΜ9ÃÑ£Ç03“Ø„:ðÊ+›Ù¾}7BÔF¹aÄ}H6t@‹ aN_ …"…¾}ûмys,˜ÏñãÇ9~ü8·ï }–šê¥ÆU€¥ƹqooo¾üê+;;séÌä2õš5cÈС4¹«^øóJnn.‹-B¥RQ­Z5ÒÓÓY»v-}ô;wæÚµkÌœ9“œœ®]»Æ_|A:uþó¶3::š]»v“••…;†0|x?¦N]F^^BØß‰5R²@Ó çB²=¤6r17åå—GS£F æÎEïÞ'‰ŠŠâÇ ©•žM3L«Øéõäåç£×ë177ç½qã°wpàÈþý¤§¥áU·.ƒ{õ¢wŸ>Ï¿€ãââDvv¶P*•¢  @,Z´H´nÝZ¤¥¥ µZ-ÒÓÓErr²4høì³ÏDqqñk±¶jÕê…¯Ñ/^yåUáàP[XX4ÖÖ…¿øñÇÅåË—ÅÇ"Z¶l+4h*œÝ¼, «€Z¬TPI€Ÿ°µõ3gÎ6ÖåÖh4âÏ?ÿ^ææb ˆ¯@Lñ%ˆ ÄíÛ·EzzºøtÂQ»jUááà ªººŠY³f‰ôôt¡×ëŸ 9¶k×îë¡§§§‹””QXX(”J¥HMMõêÕ+W®B‘““#RSSÅo¿ý&êÔ©#ÒÓÓZ}ëÖ­/´næçç‹/¾øJ¸¹ÕVVÂʪ©pv®)Þzk”ˆ‹ÿ BBº‰Æ[ OÏêB¡h( ‡€Æì8 pPC˜™ùˆ>}^3ÖñÖétââÅ‹"¨E ñ¦LfÔÍ) Fðµ³GŽùùùbõªU¢eãÆ¢ª““pwp^]\»ví¹‘ã–-[þ±ºZ­ "''G(•J‘››+>ûì3Ñ©S'!„ÅÅÅ"55UDEE‰nݺ‰¥K— ­VûÀºßíÚµ{¡uS«ÕŠíÛ· oïºÂÖ¶°°h)ꈎ»Š3gΈݻw‹W^é#[‹š5}…¥¥w‰Ýôj"xK!pµ7ØÍ*B&óµk7çÎ3ÖAW©TâÍEk33ñy)ÝüD€¥¥˜üùçB«ÕŠÓ§O‹ÎíÛ /WWáfc#^~é%±oß¾‡úµg‡ùY…———ѹ !pqq¡¸¸ØØ›quuE¥R½pUi‡ÂÂBæÏŸÏ¾}7P©zsguåW˜;wuëú3gÎì’yŽùóç3yò¨TņñL5J¶XTì)*Šfñâ5 2www -[´ ¨ONnÙ‚¿J…µaV󒃟½û.|öÙgœ^½šæ  ³M«fÌ@.—3f̘f”zwQ …Bµµ5T¨P𳳓B™ÀÁƒ‡˜9sZmG„ðd§ñÿ·‹ÀÀ¦Œ3š1cF£ÓéØ¿?~ø!ׯï¤$ó°£!üî8¢×k9vl3{÷îeàÀ˜™™Q·n]^ïߟÅW¯Rœ›K!(–Ɉ´²¢ý›oâïïÏÚŸfÁĉøåç ù@ø¯¿ò•^ÏòŸ~z!ÂíæææT«VÍø·……...äçç—LûZZâææ†â….#[V"##ùòË©ÄÅùR² H†Z]ÌŸÄÃc9óæÍ¡K—.¤¦¦Ò¯ßë?»ÑT@”%dÔ¥d‡;BÀõëXµj 7F&“aaaÁ¨Ñ£y/4”3±±xéõè(©‚aÛ¨C†åìÙ³¼3t(®ÑÑtÒë1.œ:Å”O?åû+hÒ¤ÉsoGLÅegg³{÷nš6m*-\¹III„‡G¢V7Æt«„7nÈ8þ¼±HJrr2aaá”ÌWjÄFÉV ¢"IIy¤¦¦[²±µå«o¾!äý÷¹Q¯§\])lÝšqS§2pÐ BÏœáÌÞ½k4Ô dó‘?P?'‡í6pëÖ­Vþ»wïF©TÒ¼ysIïÃæÍÛÐj}ŒÎ¼7 ›6m2êfQQaaaäææ>MŠ4˜@=`IVV¢£ÿ.¬"—Ë:lã¾ý–ôæÍ9]±"×ýüxeÂÆ““?ΟOü| AECËs‡qìØ±Vö :tˆIïCXX811ņãÝ´pøð9RSӌמ>}†”ÔT¨.+ˆ¬JÉöÞó†iK Àƒ3g.˜|F“&MøvÁ\^}•0"ªWÇgà@f|÷UªTá·_ÅúÆ ^Òë©LIb™ÖB ¹xñ¾%ÄŸG¥çÞæÍ›GZZãÇÇÆÆæ‘B{¨PRÿ×ÊÊê…™7R*•ªù»œ©ÑÔ¡×Û››ƒ^¯G­Vóã?²uë~TªŠü½§Rg0š‡(Ù5®F.[[[„£R©¨èêÊøñãy÷ÝwÑj4ØÚÙáââ‚…… ÈSRp(õé2ƒÙ¾õLîñÕëõ›úx”^¯çèÑ£L›6>ø€€€€ÇúÅÅÅ&úiiiùBEžÒÒ2–{·ñ8—ƒF£A¡PpêÔ)æÎ]H^žx¨b¸'ØOÉv6ÌÍ5F; V«Q*•½žþýûÓã•WP«Õ˜››S±bElllHOO'%6–VB˜Œ*ŽEE\¸pnݺ=srS©T¨Õj=yrrr˜9s&vvv :ô±¾ƒN§3ÑM¹\Ž••ÕsŸŠô(•Š»ÇaAv¶ ¦DþÑÑÑÌš5‹ëI ÐÑ®µ€¼JÖx¥$Ç[Gd2ÎÎFÙ)•J´ -Z´ Q£F(•JÌd2œptt$55•qqxk4&óëÖ”,œ»ráƤ”õ³€N§3FÌKûÙ‡:ô¬¬,.\ÈéÓ§™3g5z¬ÏËËãûï¿7þíììL÷îÝ_˜TnnnT¯^‘ˆˆDL“mäae•Žƒƒiii\ºt‰Í›7£R] óÍ(YðŽ\®¡[·f¸¸¸pæÌ–-Y©={¨Û¼9#G¦K—.&a ;{{ô¶¶èrrL`íäôL:¨¬¬,vìØa=HJJ*³3ß»w/sæÌáµ×^cذamävìØaRʳU«V¿0=((ýûC¯¯WªÓ©¢©\Ù“¬¬,t:Ó¦M'//¢dú~½ иŠL&¨UKжmnݺÅâE‹Ø½q#™™T®U‹acÆðꫯšÔü¶³³ÃÜÆ†¢» ±è¥BAÅ»¦PžN:Å_ýeü;**ªÌ)@SRRøæ›oÈÈÈ`æÌ™”žÂ|Ml§§§'Ý»w¿gÚéyÅÇÇww ÉÉyüAL–‚——=yyy$''³jÕ*""¢ÁKvÕà˜?èí)YÜ ØTÃÆ&Ž7ÞøŒÜÜ\6mÚĺå˹…­³3úôaì¸q&S"ÖÿÏÞy‡GU`müw§d’Iï ! B€ HèHG@Aq±¬€…²«ˆJņJµ (Ÿ(¸¢R¥7!Ò[BBôÞ33™~¿?îMHh못™÷yò$3sgrçΙÓÏ{\\pww§L ŽA´É®BŸßmé<åææ²eËJKKëÙ<žé IDATÙ›ôòòr>þøc:Äܹsÿ—­§§'³fͺkÓFüíopäÈ ˆbÒ„í)”Ê<¾ûî;öìÙC^^!©©i²¢ô¹åŽJ•@×®í™6m ÅÅÅ̘<ËÉ“t‘=±¬­[™‘”DÐ?Ö‹H;tè€{Ë–$=JŒ(¢ª¥’˜>}nËå~~~Œ7®Þ}¿uÝk||<|ðƒ âÙgŸýC_ºQ£F1|øð»V>ydëÖmãìÙƒˆbMj3 HàâE='NÄjµŠ«$GÊkr=^@ÁÁf¦M{&MšðÖ[o±ÿóÏik³á"Š”œ>Íâ30<ýôÓh4Òngggúιï¾Ã‰ÃË$ ö€z÷és[^·Þ½{Ó»wïÚÛ?ýôiiiÿöyyyy¼÷Þ{dgg3þ|"##÷94iÒä®Ö]»veÈ.|ýõ¬Ö¶r(QûŒµk×2~üx4 gÏJu‰Ö­[#Š"ÉÉÉäææ’››‹Á``ïÞ½DDDТE ”J%ÇÃÉIÍ믿GjêQDÑŠÕjF¯ïƱc!H,[ui Šêx¤f¡œgŸ}„©S_&,,ŒóçSvò$ƒívj ýéé|ºd _._^¥GFF2söl&?ý4—Š‹qG¢ªiÇóS¦Ô‹˜îtœ8q‚éÓ§Ó´iSzöìIzzzm¦$88˜‚‚8sæ z½žƒDllìï*Ý鈈ˆàÓOç³`ÁGìܹ£Ñ„(±Û£HHˆ%!ÁœBb)´ µ[ÚêDèv ˜^½ÚóúëoгgvíÚÅþM›ègµÖq6E”%%¬þúk†Z›—_y…éùù¬ÿåìvt‚€ÎÃùï¾KDDÄ]s­u: ,àÀL›6 £ÑÈÙ³gvíÚa49wîqáÂöíÛGdd$ááá N6ýüü˜3gnn‹X¹råå:ÁŒÝîGNN99®HkSÊ Ò®îÔ luÎb¼½µ,_¾€Þ½{ãììÌç QTDŒì¢"ŠÛ~þ™0dÈ@*ÿŽ=šÔ”¾ÿä‚å­nEÎÎŒ~æ|W”7Tééé²qãF6nÜXûÀ?ü€Z­fíÚµÄÇÇR÷áüùó9rdƒ3è¢(’ŸŸOff&~~~|ûíÿaµZ™0a§Nµj®G˜•oAš§ÜÏÕ*·AH MOÞ{o.žžždee±yýzBês˜à#E‘ ))TTTàåå%}`*C† ¡ãÙ³lذ‚‚Z´hÁðáÃïšùóºiHoooòòòêm{ä‘G˜8q"‰‰‰Ì;WNé5cÉ’%„„„ðþûï78ƒ^YYIZÚe,+Ó§¿Ä¼yïòÁóùòËD$Žöšè£ðR“Ñ)¤ÞޤJbM›fñòËïÓ·o***ؽkªœêö¦+€ Qäì¹sT]“þkÛ¶-?nÚÄÞ½{9uêÁÁÁ 4ˆÐÐлjÁh4RRR‚¯¯/_}õÕU…ªR±sçNÊËËùꫯHMME£ÑpîÜ9.\¸À˜1cœA7™L¤§§STTÄÈ‘#˜8q»vídÖ¬©¨¸:-!આn‡à¨ÊO ípÊpq9Æ /<ˈ#°X,ìÛ·¼ÔTºÁu=ž$œ;WkÐk2Èó,`Ô#°ÿ~A`àÀÄÆÆÞ5²©Z¶lÙ-xçwpΞ=Ë[oÍåàÁdªª¬„†ºÒ¶mùùeHLpõüQÙ¨×ðï\Q(ªéÔ©ï½7‹/’’’š5k8sæ ÷ÈñQ]Á¬Dj˜»ÑZ@@&L¸«¯ùˆ#1bÄMïׯýúõkð²™ÍçŸΪUÛÈÉ1à{÷¤¥å Mź©D¥ì|Zd#~©Šø¾¾™¼öÚT"##Ùºu+?ÿü3«¾ù/›kÛpL‚€ÆË Õ šˆ\]]:t(C‡½«#Î+VÜôñ   >ÿüó/›v»/¿ü’¯¿^Mrr ŠÁPŽNH½i!A-Ôì….H¬š[ îî&žxb?þ{öì!áÜ9>üè#¬²ôÖûŸ@µ“^7ÈV* ºtéB—.]îÊëíü (//ç•Wf±cG)m«š´´r22~Eš¿V݉²X…!-h¹ìE+)*Òòñ‡’vé¦ÂBòJK1Ùl¤! tÔ¬((Î*•<ÿý:Sn ƒÁÀ×_͇nB¯Ü)-µ°eËiÔêTÙ©¼V¤2P/ Rs\Fãn6mÌâ«/ÿªœ²ssÑY­’¡måg›ó¢H‡~ý-þ;Ø·oo¾ù!EE±H´Âpð`Š(^“åu¯„¨L8§sw¤ÜSÀqÌfIIIücÒ$r/_FWXHžN‡iEK€Ç‹H¼ìV__úܦ=ƒþ'Ãb³°çÊB=Bié×¥âÖcu[¶láĉ+ÀCu.™3VkS¤¶Š#rjH+G>)H”šÅH´¯E˜i&ÚpMKãÈåË<(Šø"U0#Äþ(Çú {â‰ë"p .òòòùúë  íeÀ‚(¶Ãb9‡(&Éê.Pv2Ë„“òNt0¼y‰vúTlN¥·¼/Z]ÑÝH$œIHéÌ,A I—.LŸ9ó®êÙpàÏ…Ífã£>¦¨(R6Î`—·R^–%ª ‚ š§H÷§Ù‘ÊB -"­LF. ò3=×êjRRSŽ·„Ùl&%%…²2oÙPëeY,–eÓ(Ç5UH=€}ˆX¨BÄ&?r‰)°i4TªÕ4C¢¤ —£öj9þ±XHOOG¯×;>n‰¤¤$JJLH;”²¤]–Âe5D&ƒ>²×É&£CÀŠÔçž*Ëæ@íæF…R‰‡ Ð)yŸŽTR#õ€¤Ÿ?¥Î²†ÇzHÝ_ëϼþóXvr3vÏàùNÏó`ÔƒX T*¥¬C‘Ú3NÉ¢ä.+ÏÙW¬iÆ(Â*X9®P’g³‘ŒT#w‘ÅÚ5/árÌRei«,´-€j¥’F9>n £ÑˆÕjCÌr§{8ÒÈä:Yâ H3GjBÚä£P”sZPâd·s^QÊñ“àl00œ«+…u”*•4ññ¹ë˜ øóM)õm£få©”zÿY’M´LƒCjз–Ÿe 18k8d¬¦\—d½iÑéè'òš¾ùd¤=l‘@• à‚²î wôkàêäÊ„ŽhìÙ˜ý}'öc9j¦°0A(Gû#$œ’•¥NŽ„<‘Z8HÕcÄĶ¢M«l^³†žV+í©aË–H:ê’“z!õ"_’#!Ÿ˜˜?´(Ç»‹…ðã?râÄI! QŒBJ»ÇËRT +È8à%¤nà(ÍšiéÝ{›×¬¡Ie%=ey<"g“üë9»’«ºCŽÔ3==yîP©êÃë!Š"çÏŸçûïàüùDìör¤>õXYû•KP[=TˆÙi–ˆDs‰qÿ˜ÄÞ]»(OHàþšÈ[–Íš‰öÙŒåö<©R1tÔ¨ëlª¶nÝÊ–-[¸té... 4ˆ¿ýíoøúJ Errrøì³Ï8vì!!!Lœ8ñ®¥Í«V­ex‹á|»t_ëV By{Ï UnB‘¶Õ4ÈEÈQÐn9ñ£G«µ1{öªª*9ñÃDɦ¾fVòFªP ä*¸DE1gΚ6mÚ Õ+WX³f ‡F¯×Ó¬Y3¦L™BëÖ­£ÑȦM›X½z5&“‰aÆ1zôh<<<îêëb³ÙX·n=sæÌ%5ÕQŒ øÏHÓâ\­™÷^¾A"ë0 Ñ6l=ö({7oæžÊJÜ®‘MÅ d³D8©Õ2}Æ  Ôà3#›7ofûöí¤§§ãííͰaÃ9r$nnnˆ¢Hzz:ï¿ÿ>W®\¡iÓ¦L:µAdffò÷¿?Í… VŒÆ¤Ç£ræH–MŸjˆaOs0–?È‘|%qqm˜0aééXjËšŽ õ dS޹¸0øÁ?qbÃ[‹§eË–Œ;–²²2/^Ìùóç™7o¼ð xyyñÎ;ïpèÐ!ÆŒÃæÍ›ïªå,6›ââb***P*•qøðaü+Qxú$Àƒç`—Åf°ŸDÀ‰æ VÒ*`J’PcÇd€©/½HŸ~ýÐÈ)Íš”HÒxZ[ "²¥«T<9io¿ý6žžž ÞÓOJJ¢¬¬ŒçŸvîÜÉ£>Êòåˉ‹‹cõêÕ|úé§¼üòËøøø0oÞŠ²2‚AÞ_(¿J‚,õ*Ù¸(|}ùîûïéÛ·/J¥²ÁÊ¥jöìÙµ\á¢(R^^ÎÂ… ©ªªâôéÓäææ2wî\Z´hALL GeÅŠµ[®î†ôК5kX¿~#YY¸¸8ѵë=dgç`4úƒ©9ìòÎÿ‚Avø5ïËUxÚÊÑqœRаÓ¸LWˆÆŽ›œT:—‘ÁºÄÛÕ•2®VqvýÑ‚@SQD®¨T´èߟéÓ§;Œ¹ŒÔ[kˆ øõ×_騱#+W®äá‡fÔ¨Q€´qì£>b̘14kÖì®Í'N°bÅ NŸN "¢1±±±œ;—Äéf“UœCË%ü¨ÀN&Ù´ï_…+Çiƒ9±™\RÂê~ÀY©$Mh'е݉:© à$Šú-øà•Wˆ‰‰q&àååÅœ9sjwÁßsÏ=¤§§³~ýzfϞ͞={E‘éÓ§ãææF»ví8pà7ndòäÉwÅ5ÈËËã³Ï–½ÞD£F> ØŸ_~9ŒÝÞM6¹¹H…šH”dLæ  ŠƒmØwùÅ(‰§:"diÎvlߎ»‡Õ 6‰\Æ©v~(|E‘rA ×Û›‰Ó¦Ñ¿ÿïhªê.þEN‡Z­FE._¾L£Fð‘ËœéÔ©;wîÄn·ßûcwíÚÅ‹/¾NaasD1A0säÈÏxx`±ÈÄ.: ƒ'B¯‹´ÔBÜY0QÅI w ôFOKÙ'µž¢È>‹»û­Vºxȉ'ÑÝ=¨ª¨@¥RñÈ€ümôhG#\\›6³X,èõz´Z-%%%[+‡Mš4Á`0P^^~×d(fΜÅzl¶V€È¯¿^a×®]X,5‘&Yi*ð ‰!èñNð…„"0 gèJ9Z“ì@°½ªŠ€6m8i4b1™h*Š”"Õ)#úôÁ*TVUѲ];žzæ:vìèÊšl†BQkÌAÚ*VUU…‹‹ &“‰K—.],iµZZ·nMbbâ]¡;ív;3gÎbÍšc1ˆ¢ ‚PÈ Ñér€ò‘©€+.ÓB"Õ"Ç£ìxB^áy*)#’+ ÄFÍV€hàG“ ÁÕ•¥’´%ò£\…Ï&MðnÓ†üÌLÂ"#y桇œgǯÍ ‚€B¡ ²²ƒÁ€Z­ÆÛÛÛÑWǸmß¾íÛ·óꫯb2™¨¨¨  ž‘ñ÷÷'55“ÉtÇ7míÝ»— P]=©!D±1¥¥jŠ"á4¢X3eQM+ éŒH®Ÿ…ázî¶Se6°4š#RwÅ›œÅˆ¢­ÝJÌE5ÝÃ\ŽÉ¡•k¡&¾²b¼v‰ª]’rvlÝʇK–0~üxt:¾¾¾× \QQ?ýô{wïÆ ÓÌà!C1bÄïyÖ”oÊÊÊê½ßßŠŠŠ >ýôSNœ8ÁâÅ‹ D¯×#Š"‹¥Þgj³ÙnJûxìØ±z·£¢¢hÙ²åmyÍJKK9qâ$W‡Éj Í ÎÂnO!?¿0 Š&‚‹REq³á“fã‘ »”1rºF6E àÊJËÊø~õj*++ñôôÄÃãžÌÙív6nÜȶ-[(ÈËCëæFÿþàƒøûûßñJ099™Ô:œÇŽ«m þ-8rä‹/fĈôí+±J¨T*Ì×ÌB[,”Jå k¼ÅÅÅõt§··7íÛ·ÇÝÝý¶»^F£‘øøxÌfêí3G@vt":Z 9yv»A,ÃC>òŠK{[¶ “É„B¡ÀÏϯÞõ³Ûíœ=s†ÕkÖpþìYTNN´ŽŽfÌØ±wEbii)§OŸF§ÓÕÞw+ÒU@Ïœ9³¶Óßß»Ý^Ûf4kŸ‘‘A```½tSÝ(3  ö¶³³ómÉ©k±XX¾|9ß~»Šœœ$>¬–²0æVìö|zhááá|÷Ý÷?¦Ä¨8Ë ®äM£ÙBL¥Xê9•‚@žÝ^KQX“lr4©©|¼`›¶oÇËËëºóÑëõ|òÉ'¬_²„ÈòrÜ€+¢È¬;Q«Õ :ôÎöUªë2=¿µ Õf³ñÙgŸ±gÏfΜIl¬´S9((AÈËË«ÅÛl¶^cOOÏzòéêêzÛ]+Q9xð ~ø‡Bò¥Ë嘥iL²”Ž;òä“O²víìÞFi©@‘]$Èb¢ëI7[);‚=—”œ1ÛèZG6s‘úàïÑëùnÅ ztïN‡{î¹á9mÞ´‰×^|‘F`ñ®]deg3mÚ´;>SçêêZO.þ“–'NðÚk¯Ñ»wo&L˜€»»;V«???.]º„Ýn¯5@ÙÙÙøûûßP'ªÕêzçàææv[f@®\¹Â¢E‹Øºu+&SÒ¶´öH.£Df¤VÛY²d!Û·ï`ýúŸ¸|ÉŠÎ.b´mÐå4Gc9AºìX¦ËÙÌšo£iÈ-J9¶iû}”‘=tÃó¹œÌ´—^¢òðaš[­XD‘-[¶p>1‘%Ÿ}vÇïÃP«ÕøøøÔkò½UÖV•ÀÌ™3ñóócÖ¬Yxzzb4Ñh4DGG³|ùrpww'??Ÿ={ö0a„F†®]»ÞÖÈh4òöÛo³xñ§TWÛ¹Êìv8†Ô$ Š&Nœ8…R€K§Ne0Ewây™{ù˜`ãI*±sLŽÂ-ÎÎìEÚø"5vd½Öþm?x³Ù|CCv!9™ï/¦—NG(Wg+“²²X0>:u"00ðŽJ—ëVmþ¥i0Xºt)ëÖ­ãí·ß¦G˜L&”J%Z­–®]»²sçNzöì‰Z­æÐ¡C„††Þ4jŒŠŠº­åÓjµ²nÝ:^yå522 Ei‚"SvýˆŒJÈÈPÍÑýûhT^J ÝÎ$>_ƒ‘¶Ç@W'»ÕÛÆ‰DŠ+ª‰Ýƒd9/ ìMK#55õ†=77—>úˆV™™´”r-Ó§¼œï?úˆû￟N:ÝÑJ3,,Œ°°°ÚÛ¤¥¥ýÛ ßáÇ™5k]»veòäÉ8;;c4qvv&..ŽÍ›7“––Fhh(™™™$&&òæ›oÞPwzzzÞöº3//ûïÊÅ‹YX­v¤±È à'YNýv»#GŽpúÖŒËt°ÛÉDÞ `sÃfs!;ñ€Ÿ éâÂz“‰› ;Òþ'$^ÃãV+÷ï¿¡A·Z­¬\±‚ʃém·£•#ýH›Í{öðÍÊ•¼2sæátww¿ŽäFÁt­Aûí·9~ü8Æ cÉ’%ˆ¢ˆ L›6˜˜FÍ¢E‹Ø±cDDDÔvßîHKK#%EªY…†6¦M›6¬[·Ž¥K¿£ºº3‚ÔTtiŽw 5µt(gÇŽ9µg'ý-|Ä&T0{¹È:ò°c’ï~ ÉÇ! €‰‰[,¸÷!ñv]”jõMëô™3¸èt²+!g;äœAr~>/^¼£ úïÅÓåÿâ IDATöíÛY¸p!­[·æðáÃ:tAèÑ£ƒ bòäɼöÚk̘1WWW._¾ÌóÏ?_/Ò¹]Q\\Lbb"eeåx{{Ѷm[òóóyóÍy¤§{"-ƒ‘h2Ï!ñDÚ5UÍ™3ûxùÅ©ô­t¥´e<°KNm*¬`N„Î:Hî .-|IÙ”Gi‰ /¤Éà(9®Uª›Fƒiii”äåÑ¥Îè¥Dl Μ;wîŽ7è¿7úÎ;ïpåÊ:tèÀüùók³Qo¾ù&}úôaذaL›6¨¨(RRR8p ¼íß›Édâôé3äçç£V«iÛ¶ îîîL™2… lˆâ 9÷˜+ëNO`$ÒR ;K ¯¾ò*-±ó y_”Ã¥2œ1Q‰Ôsä)Šè:w&%9™#ùùxËyÒŽH]#V9J½YöîT|<¡¢XKÒ%È:¹‰^Oâùó †Û2÷_ˆ>ñÄ 2ä†iRgggžzê)ÚµkGVV½zõ¢cÇŽ·}Ã(ŠìÞ½›÷ߟOrrF£@X˜ƒõáäÉ“”—·BbÔª1Ÿ^H¤5ž¨Ân·¢7›9'f¢¥˜,£€*öÈÑw„|´R­føÈ‘,OO'®¬Œ&²Q6ʱU÷o*˜jµW‰jVʯ4Øæ£V­Z1þüzur???Z·nͼyóHHHÀjµòôÓO}Û7¦¤¤ðþûïsð`ee6||tîÜšF‚IN6#-P©QB¡²Ó W{Ô¥6» ¹s£­ì!ñ^GÑ"x]Bƒa¼+ešî®EWëé·ˆZ¶juÃsU*• PH²X7B•êšJ­VËĉ©¨¨¨wì¹¹¹ñòË/søðaJKKéÛ·/ݺu»etu;À`0ðÁóøñÇ­äç[qr‚ŽC‰ŠŠâðáDñ>¨ma ‘3œÉ²lŠ²Æ“J´5û+î‘ÝQàGœpÁL¤¹òD qHAœ_½š~¢ˆ‡¬™ó€,…‚· 1R:9]'›5\¡P4¸¦bÕ°aÃny€««+½zõº£ÞÔ©S§˜5ë Nœð“;„”——šúP‰(>Fý Y^AA j2nˆÆL^¦&´åI|ÈG#›þP9étJ¡ Q›6<öØcX-þµx1Yn6Y ±±L›9ó¦çÛ©S' âJ~~í  pBhA«›(Û†`ÐoõÞ•J%QQQDEEÝ1喙ºš×^{ƒ¯`±t\(+«&337·=HDEu# 'YîCàj. À€-°ÑHvs€!²»ÊQŽ7RÙG_©aÕÈ/øîÊw¬õûåªiœ¥ %¼ö 7mlժ᜺p΢XKæ‘.!! v”M«Õ2bĈ[ãááÁàÁƒï˜÷d³ÙXºt)Ÿ|²š²²{‘Òè"?ÿœÈ¾}_c46¦¦£ýj±Ò•Ô$£¤‘j±Ó©ëc+Ò&É0À ^˜ A¢CJsqa|\<ðOKcwB¡&&A ÃÕ•QãÆÑ½{÷/•оƒ³êðaÂ-–Ú3ÓéÞÞ ëÞºc٠ ßmoÈn·³cÇNNŸ6"б²ÐÙE5ÕÕþ²ê+”Õ²Ž?gDÍ9b°Ó ‰d# '‡/= %Ÿ4YH-r2´ ;t`Î?ÿI³f͘ùê«ÄÄİmÛ6**+Õ®=þ8Mš4¹é97kÖŒæÌá³÷Þ#'+ O»<• Et4ï¿õ–ƒhæ.Â¥K—X·îDqRMܘ±XSV–ŒTá6PŸé_‡Š<Âȧ=R“D'´:r«|ÛiMP-òÏÉ“éÛ‹Ž­;áÁG>‘}ØÌ &ƒ˜÷Ô$ºuëvÓóõööæµÙ³y!7—ígÏl³Q©PPÎs3fáøPïdee±mÛÏ”•u” 5@56›z½³,›•rF³f _vÐIv(«6]”}xÖO •‚Jqtœ®hµt}ì1zè!BBBX³a«V­âÔÉ“jµŒ4ˆ!÷ßÓ”¹R©dôèÑ$&&²{ÃÂu:,@ާ'½FâÑGmp³éwA7›Í”––`µzËQ¸©™ ‹T9¤“ÿÖËê1æØÀÕÄ»‰¾œæ!ù˜¦$s©æ™J%#ÆŒÁf³̰áÃk눆#Gòàˆõ:\oFÃã?Nxx8 ¤¤„®áá 8{nÒyìÀ‰ììlDQ#G? 5¼ý*ǽa²,îºÈ2ªNâ @$X~V(Rñ8ÒLy3$>.…RIl¯^‡„àçëK·îݹï¾û¤l›“+/ÝûAÞA¬h¶‚ˆðæ´½§í¿=çN:ññ石sçN222ˆöñ¡OïÞôèÙ³ÁE@w3***¨¬Ô#¾u¦+Ë!Œ‡¬+w U¸eÓ„‚2z#•}jàŽTú)BêÚŒTÔ´i½ñjÙˆÀöO3¸}{1¢–L+$$„éÓ§c³ÙP(¿É‡……ñÎ;ï°£GΜ=‹R©ä‘víxðÁd t×t'''|||Q©ÊäNÌ4Ù?ìµê°P¯cH4& ŠVÔÔŠiA<¯ÆŒlʵ6–· &L 22ggçö‚ðq »¹¹1hÐ zõê…ÙlÆÅÅ¥Á.¸›‚BaÆn¯”Ó—;‘Rê1HõÈJ¤e«eÙ´!PRͱ YQ‘Õ®BŽë]ívôïÏÓÏ<ƒ‹‹ Z­¶^Q¥Pñh›Giìј¹¿Ì%_—ÏÜ~sñrñBàæ 4..Ž˜˜ª««Q«ÕwW¾<<<ððpEK‘ 7Ge‡r¨æX‘šà6Õ {*ñÆFØ5¯åÔ6W*Ëmµ^iœÜ1bÏ=7ww÷êÈÿ”‹=,,Œ§ž~½^ hµÚËç~×u ( † L§NZᨷD#%'Ý埦²— Œž¢¨DJˆd‹ g­X‚#EHS–=QÄf³áííý§7º¸¸àééé0æw)¢¢¢5ªNNÇäH\ƒÔÎæ-«ÀF@wù«ùð"=1Ë1|]e%©Gª£wÂE«Í†§§'nnn7l R+ÕômÚ—•®¤ÂTÁ˜c8žs«ÝúoeOOO‡1¿KѤI†Ž—×1áRQ±à+˦—,e~@o`03î\+96ÙüƒÔ2ש;»//-^^^ªÑU*•xxxÜÔIpô;íÚµcöìÙôìiAÒäHHyÍÛö”EÎ.{£Í9ƒ3ÙøÏT\) ’HB¤\Ž™Z õq:yyÝUÛæøßffÏ~•Çk‹‡Ç%YQ^ë¼yÉ2j¦fy!ZRêõj¤t»YŽ£œ H^^4kÖì7uŸ‡x„°è¾EDxG0{ßl~¾ø³ãjÀ1cždÊ”Ç »Œ”À½¶+ßIÖ—5“'Ñ„Ú{DàÒréd¤±Ý6HyQ7/±Êwå<”B¡à¾ûâââÌèÑ’Ÿ_,«Â£n—ãmW¤4§hEØÈ£ØiLÓÙN)ErL+ÿ>*Œ™8ñ?¢†tÀºJS·{ŸK—.rèP†k×­EË¿k𼩤»ÙÃeD<‘&€Óeõê4~švíʽ÷Þû››‚Ü‚˜}ïlVž]ÉœsÐYt<Òú” ¥ãÃj€ðôôäå—_D­V2kÖ»²ëX—iÝ$ç„\dgÓ‘n'‹bô!QÍ\”MÒ€pP@@P¸Ã ;"ôß§8[µjEçÎ]äX&©ï² 84Ù²ŽªÆQÎlÌ&DôˆÊœv891êÅyyÚ4‡ä8ð‡dÓßߟ"…HËJ ªáiHíDm¹ºE@Ä3ÒŒÆqYAúʱ|°pëÔ‰ÿûúk7nü‹S:Oaþ€ù,þu1o샒êÇÕ@áææF\\¾¾®H½Fy²l!å*¹Ú ÆŒ‚2¤¶ó²Î ”ãø-@Fh(Ÿ­\‰—WŽ>JG„þ» V« E¥²cµnCªäøÆSö r’(•j0>Þó)/?‡‡Ebz‹MޏºÒ.&æ¶\˜àÀ‹ÅBttkT*;ËI9Þv••¦ˆ”•¨3‹‹K^^ÁTVV`×ëéŽÄ]½‚@‡öí7£  ônÒ›E÷-⛳ßS™ƒ¯‹# Õa·Ûqss£I“&”–žD@ª›W! E¶ãp' Aˆ'8ØN@¯×ÓÚf£?R_¼8xDF‰Å"8"tG„þŸÃd2ñÚk³Y¿~v{s¤Áž ÁŠ%8±X œG­¾—iÓù`^?BBBè sR¢>//çäÉ“ ‡ä8ð»a6›Yµjï¾ûv{ 9SdB WtaÃ…_€uÀ<<2sæS|õõWtîÒ…`®Rc*Z;;‰"‡ö졲²ò÷+AA·ÐnÌí7—(ß(ÇÕ@qîÜ9¦OŸÉÅ‹zD± RQ'ÅaÓTü¬ÆÙy£FµeùWË7n~*]¹:”©EJ¹çž:EZZf3ƒþߎÐu:åååµ»Ž5jT¢°¼¼œ¢¢¢ZÏ-88ø¶¦ÔE‘O?ý”¯¿ÞCuu9/Á…lzb"V”a!:¶aCÑh?͸q¥<3v)ÅYYÄ]ãí(_Q¤  €êêê;~ÃÔ-Ô\s³ÙL`` ÞÞÞõ·ÂÂB NNNøûûãêêzÛJˆ¢H|ü¯¼ñÆ"²²Ú"ŠMec¾‘¶”ÓOŽÉ«1³‡,üî½—ÅLHH æÏçìÑ£4áúV%_ÀPUEII Ȩûiý‚÷`0(++Ã`0 P(hÔ¨Q½©—ªª* ±Z­hµZ‚ƒƒo{犊 &MšÌ±cNØíÃGiD.÷É%H+6„b’|²l}ûöcçÎ|¿r%®f3×Î@h¤¦¬¬ “IÄÉIpÏË [,Ö¯_ϪU«ÈÍÍE«Õòå—_ÖnǺrå .$33…BÉd⥗^¢ÿþ·…Ò4™L¤¦¦b0ððð **ŠÊÊJ6oÞLuu¬œ* š¡çž:Ê0 莩¾)<õT8?üðÇŽÑÜf£@N,Õ|ý¬@®BA°°[’ýWTTpôèQòrsqrr¢]L QQQ –ý¢¸¸˜gžy†ŠŠ X°`Ï>û, Ѩ®ZµŠ­[·ÖF¾:t`Ê”)·EÓ¢Õj%++‹ââb4 M›6ÅÅÅ…ö“™©EêKWY¸R̤ÆË%ØØö,gΜaëÊ•Dët+W[æD¤Úº·¿ÿ-Sî&“‰ÄÄD’Ο <<œ¸NnûÝ ·#l6»víbéÒ¥Q]]ÍòåËk7¦eggóÉ'Ÿ””„R©Äd21vìXyä‘ÛÆÙ,,,$33Q ' €C‡‘–VˆÝ>R–BÎ$'ëËÙì,Šäét¤\¸@÷îÝùà­·hR^NR2¾.¥‹Àb¸½(Š\ºt‰3§O£7ð÷§c\ܱhé¶2è …‚˜˜|}}ÉÍÍåË/¿¬8³ÙÌòåËÉÎÎfþüù¸¸¸°víZÞzë-"""hÖ¬Ù_zòùùù,\¸ˆ~Áh´ãææÄÈ‘2dÈ`y‡ûUŠB|<¯‹lB)â¢0›-šøÃ‡‰¶ZqAªûx"­˜‘Zè*ÂÃé׿ÿM`EE³fÎä—­[òóU*|:tàù)S:lXƒ]dñG Õjyê©§ððð`úôéõKMM嫯¾b„ ôïߟÄÄDÞ}÷]š7oΘ1cþòèí›oþÅÚµ?R\\‰F£&66š—_~‰’’®NXTâƒk{…Ü{EEEEœ?MAªí‡€8Ù¸‚D‘4õ©§n:#^]]Í·ß~Ëò¥K1&'ƒ(¢ eøãóÊÌ™·ýÒÛ ‚ Å?ÿùOÌf3³gÏ®çÈ­]»–“'O²hÑ"¼½½Ù²e .$&&榼ùÿK8p€ ’•U@DDc&MšDii)v»S°Ç†–R¼å%@Wõ)xädg“””Di~>ÈŽË’í‡D“ô‹ }ï½DEµÆn¿qÊýرc¼2u*%‰‰(õzD??: Ä«¯¾JóæÍ÷[ ºR©$&&†˜˜:TïÁ¢¢"NŸ>ÍÈ‘#k`Œ?ž÷Þ{Çÿ¥½´´”×_ŸÃ¿þu£±‚ EËIJZFYY9žžžB:¢è $£"…J¤¡ MȦðôÔâçç‡( j3¤!·xYQšåçuiÖŒŽ;ÞÐöÙl|ôá‡ìÿæúêõ¸v³™”øxÞ-*¢yd$íÚµsHÜ777zè! ÃueŽ'NàååEÿþý ! € 6ðý÷ßÿåýÛoW1}ú|ªªîAšÂ5röì RRþÁСƒQ©bµê T¥3Æ:&¾6²qsÃ××PÎ¢È à`,§Õ€Ýɉ†½éùüúë¯,zí5Ú&ñzRvé?,YBXx8cÇŽmp¼× …‚–-[Ò²eËëv§—˽6ýúõ#::¥RÉ“O>É‚ عsç_nÐ:Ä”)S9{ÖQì (HHH"-íU{ìa4#Ç›;±a¥\ŽÐ…Z3 Á!"R©¨‡¬77ÈÇV*žŒ‹ÃÃ#A¸Þ çææ2í¥—pŽgRySŸ—ǯß~Ë"''}ø¡ƒbø·Êå¿óBAÀj½Êd±X¨ªª"33ó/=ñãdzukùävïÞÍÃ?Ì‘#G8vìÕÕÕ7<~ÇŽäçç×ÞîСqqqúû-**¢°°Q¬ÙP%K^Kû÷`àÀ~¤¦.Á˜•E'ù¨ƒHS¿9:¯prâŸÝ»ãííMûöíñ쳬þðCò*+q¡ffÜ||xlìX<½¼nzN%……¸+(mõ d}€lƒ½^ÿ‡šéîd?~œS§NÕÞ>{öìÚ"çááAÛ¶mÙ´i?ü05â›o¾¡ªª “ÉtÃçäææÖÓôêÕë¦ÄïEUU99ÙØí5ñ¶ HA".fëÖmLœ8¸¸T~§;"!²†=,ë3ëÛƒíÚ‰ ¼üÊ+̘4‰’‚Ø>.!Í¡÷4ˆÎ;£ÓÉ:ñ𽬤£ñºèR Xôú=U”ŸŸÏþýûë95ºš ùŸtFÃ?þñfÏžÍÈ‘#Ñh4DGGÓ¼yóÎb»¸¸0pàÀÚÛjµ¯[(™?-.."z½iCÕn$*ƒ^z¾új7Íš9¼nRĦUÃd”- еF:((ˆ—.eåŠü°r%…ÅÅX€¸˜ýúëÄÆÆÞô|üüüðòö&©®Ycöõ²CÐë@nnntîܹž2[¹rå~ÝÖ­[3~üx–-[Æ_|ŸŸÁÁÁˆ¢xÃãccc0`@=‡ó¿Ôj…üé»Û‘Ø Ûb³udÿþdrs¿£ªªm¨ä>®.OÝ ¸ˆ"J¥Aðôôä¥_¤]»v¼óÆädfb´Û  bêôéümôè[öh4Œd¿(bæ*Ѭä~¾¾ zEoóæÍñóó«aÿ‘Œ…Z­æ‰'ž ++‹ÇFC‹-hÖ¬ÙMeÎÇǧžîÔh4ÿ•Išš×„DÑŒ´¸êfG.]ÊbÁ‚¥øû:£À]”䳋œk*G"Ž)Ô*U­î¼ÿðôôä³%KøõÀªL&œµZÆ<ôoÌ™ƒ»»;%%Ü0åÞ8, »;f½¾žl–î ÖѬÑQ=zôÀb±ÔÞ·bÅŠßgÐAê„]¹r%¥¥¥ˆ¢ˆÁ``àÀtèÐáúS©hÚ´éÿä¶oKÏž¡ìÚu›­©c¸5UH®1 ËQÈQŒ©ÉÍCV±y²§QO`š4iÂsæðÆœ9#Š"¾¾¾ÿvL/88˜'žx‚÷Ξ…¢"üdï4I¥"´W¯z†¤¡¡fòZçïÂÙÙ™‰'2fÌJKKqqqaÆŒ7­QþOäÓÃÃÇ¥K÷a±¸Ê’6Ššî ³9ˆÄÄí@"ÒÕH9"ÑʲY „Ó84´öu=½¼x衇9r$UUUTUUø›&(üqönÛÆ±äd"m¶Zz¥Ü¦M™öôÓ z኷·w½H8 à— 5jÄ'Ÿ|BYY‹‹ÅÂý÷ßO÷îÝo*Ëÿ ÙôôôdÀ€lÛö&*9:ï„×h|òó5äo9Ê’@?Y»³ pOÇŽõ¾ã}úö¥Oß¾X, ðöö®7d4rÔû}÷ÝÇú^½øyíZ:Š"Q¤8çáÁ¸—^jÐÝÙÙù:æÇ[}ßU 5˜åççsùòeª««¹xñ"jµšæÍ›“MII ÞÞÞäçç³lÙ2 T»ÿû¯BÓ¦Myé¥1ærð`Ò>Ÿl®¦àÏ¡­hê’ûÈ4µH#>G³JÅÄçž»i½®×þ[ð·¿ýŠòrÖ÷‰©©¨µZÚõïÏĉÿc:N$ØívRSSÑét rrrHLL$$$ggg’’’pssCEÖ®]Kvv6o½õÖ_~Þ“'?GAA[·nC§k%›O•ìVžFC>Z¤†ËƒHlî5©Ê€Y¡ ]—.7tœAW]þvEײU+Þž?Ÿÿ[¶ŒøC‡°Ùl4j׎Wžy†>}ú8íw ²²’ììl2220™L\¾|Z¶lIaa!¹¹¹øøøPTTÄ7ß|Cll,½{÷þKÏY† Lffï¿ÿ1åå.²ôen Z»ºê¨,µaHpg‘¦*‚BCoÚ„©V«o¨ïL¦Gèîîî¼3w.sµZN8@uQÞÍ›óبQŒ;Ö1ô@°sçNæÏŸOYYL›6°°0Ö¯_OVV‹/&++ 777ºvíÊ /¼ð—«( úö탯¯=zôÁT*숴¡œ`l¤Ë^e’,ˆ*Y‰Ú/æOuLœ™8iƒ‡ ¡¬¬ µJEãÐPüüüÄ¿‹…ñãÇS\\Lff&ùùùµ£“}úôáÇäàÁƒØív¢¢¢˜:uê-K#ÿK‡sÞ¼÷¨(/fÇŽxÔ$cCÀކ@ЉÁBÒ–R`‡ìŠZål’ZMëÖ­ñññùÓ²$ý  m»väåæbEüýýiܸqƒ^7ùGpäÈfÍšEEE¹¹ÿÏÞy†Eum øa†ÞEQ Šì½±K¾DS®Qc‰ñF&&&ÑÄ–hŠI0E£Wc×(`‰QÁ6¤Šô:´éçû10W¬(3j¼ç}aÎaÏ9û¬³ÖÞk¯½VóçÏÇÑÑ‘ƒ’™™ÉŠ+¸zõ*¶¶¶têÔ‰™3g>³M'''Þ~ûmÅ ¾X´9aHÐ!ÇŠrzRŠ¢r"TZ9r¨œ&©A"! M›Þ#®VßÙ 4nܘ¯–.%==Šòrœ]\ðòòKõ>ŒAþùçyþùçï8šëÙ³çmn¢'Å8©T*~\½ï A•.¡ •3YåÏ^¢‚S+gà lÜêÔÁÆÄciiI³fÍDÉ2VVV9r䮳/¾øâ‰”M­VKxxWOb<%4ÅĶƒ{ý†HÞ¦Ö#S*å2Cù ¥åm˵Å“·û¿ÊÀ︔&‘H¨S§ëÖ­{"eS²²²X¿&„gPÒ%:`7æ ‹C>‹®V6`ˆv¿4ððxà`U¬êÝR¸ººšlû?mÐï'hOÚìR­Vsôhûöí M– IDATc×–-ŒÆ°} ÛÑÊ*ÝCÃ+•$âŒÃ+•g* ‘J ìÙó¡‹Yˆ<:î%Ošl ‚ÀåË—Ù¶m;[ÿÜD‹ÂBš`’¬*” ´ÃP\EŽ!Ö"ÃK‚(]ÝÜèÙ³§øðEÙ4)ÙÙÙ„††²}Û6óòèRiJ+½C)¢‘žÁ¨)T:#0ìø¹Ôqp G¯^X>`Rvµ¤R=èf6èÿ4þüóO>úèKÒÒÊqЕ9•#ÉB Kå̼ { †mAe mÚðæÔ©b]s“rêÔ)æÏÿˆÃ‡S±Ö¤Óšÿ&{°Ä°Ô#`ˆ®Òkr p8ƒaWÀœ¹sEOˆI)++cÆŒ÷Ø·ïE @o4’J9-­”Eë›>÷©œµG2kkF¿ø"ƒ zàºJep·‹«æãWmíÚµkÌû9ÉÉmÐéú¢Âš›ãQbØ[{k^!I¥â”YZòÂøñìÝ¿Ÿ®Ýº=ÑEfDþYäææòÍ7«8xPF3%(“f6À°,dAõŒpUFÝÒ‚Î=z°sÏþ5a‚(›"&å§Ÿ~bóæ žA ùHÐÝ4ò­4·Î»-*?spsã§5kXº|9uëÖ}àïW*ïînù5臢¨HŽa%Ò5>Æ$FSi¸Ý€ .Î*4¶õxæ–W ¤¨0ELIffÇŽ]¬,‰êˆ?b±"ÃZ¤¨/‘ H¸^9S§òÿdÀÍLJ¥K—Ò«W/±˜ˆIÑétìØ±®àŒ@°ãBå¬\Si´e Wo’M0ÄÛÛ³páBÆ÷ÐiXU*3¸š—œÖP*•‚¼r,"EG. $›$Ñ¡’ËiÚ½;¥*¢£ñ×é°Â°þSÚ¬ógÌxàíh""5UšJ¥¾rNc´ä:%ì%Š:¨Ð–^^ îу¨;PTTPÈ’H8'•òþ´i};¨ÈÓ‹¡`UÕ¹¥ à\  wueDp0'@——‡—  ÎÊåt>œgGެU\@•Ë]äÜ ëõzŠ‹ŠPk4xyyaeUHiinå\¼:‘A>`¥ÕRrú4nõë“ekËõ’ä>ZZŠ{EL.›ååå”——£ÓiiÖÌ™¼¼,Á CŽ­är<’‘6™™h"#Q¹º‘™‰µ^^¨œÐëõ¢çHĤF¼¤¤½^OË–þœ>}½Þ°DÀŸRò(åh°).æpx8.õës2/8 O¥ `ecƒ´–ÛźhÐ)--%<,Œ_þ™Ü¤$l\]‘É”XZ†£Ñ´EäXŽ%E¸íÛ²22):bØ ¤"ããY´`ÍÖ¯·îˆ˜Ä˜;vŒ?~ÿ‹ÑÑè´ZŠõ––ñ¨Õ*ÀAˆÆŠœ€¶€»FCqZç0Tõ ®| t:Ï›‡¯¯ïcO>"òt””ĺµk9¸{7êÒR¬êÔA*½È„¦B:2N`…žÖ@]A paH¦­Óñ÷ºuüѲ%3Þ}÷¡œâúÿ¸A×h4lÛº•ÅsæÐ4+‹‚€R"!°òòÂ×·„ .RQPD «ò5©t.%Í1¤| B##¹víšhÐEjÍÕ«W™9u*V/âS™?þšTŠ¥LF~RSΑ“œˆTèŽ!S¡†õɺÀ^ Û)Ý*e49/°ÐPúôé#&"©|ñùçÄþñÍ5ä‚@¾D‚“•M˱wÈ"öd$Ö‚? {Ì«¼á^À 1Gî@}A •VËŽÿü‡iÓ§?´AW«EƒnnžhßÞ7ذv--²²-g;•Љ¯¾H‹f ±Ç6óæ•ñªºæ {ÓÁ4A®ÑT«¸%"ò°üðÝwpé½? å"ûéõøèt´lË”)/ላJƒmq“lzaȾ•qÓgÎj5¹yyÕ 1ˆˆ<(‚ pìØ1NlÝJOµš‚@ ƒ ÐE­¦¡§Ÿ~:+¹ ûÌo^Ú¶ÅñžÃ¬ÔÔ»>ª *•hÐÿ§ z~^Ùññ4„jêØääPV^NÔÖÈõ·ü}U5â*EZèkUQD îö¨'hª×s³Ž²|u:®ÄÅáîîŽ`i‰CÊÌ[eSË·¯i€lûú>p‘›Ñh4$$$àR\Ì͉f-/A äÆ \\\°ÉÐTÊÞÍfº*Å«¬Ò˜ë0d9lP«ø¥R\C772½^ϵk×8uêIII¸ºº2vìØj5ÌO:Å¡C‡(--ÅÍÍ#F<’Ê@r¹™Ñ0ß,pZ¹¹\Ž£³3eʲ¤`HØÿ-$På¸Lb--é5z47Ÿü?¥RIhh()))äåå1räÈj‘àYYYìÛ·k×®ammMÇŽéÝ»÷Co­yìíí¹S¥ær‰„º†ê„r9•г@·Ê™C¢Žb r€+ 6-[2jôhñ¡ÿCfÁ©©©œ8q‚ääd¬­­;v,ÞÞÞÆsââ⧨¨‚ƒƒiÕª•ùgiR)¶¶¶(%ô·Ì¨Õ€…!âÝ‚b ©\}*=F`Ȧy¹Ò«T†aKåzõ˜?iR­òþ«T`‚"‹"÷zöZ­–Ý»w³zõj"""X·nyyyÆ"""x÷ÝwÉÎÎÆÝݨ¨(Þyç’““Í~qžž´èÚ•øJ%XÅu@îç‡^¯çÔñã´®¼ðÊÇ­•‚šìÂllèöê«|0w®Ùê`‹˜žÜÜ\>ýôSûŒ¡Ã†‰ÛÖžôº¥¥%3gÎdæÌ™;vŒ™3gV;aïÞ½¸¸¸°|ùrÞxã üýý‰ŒŒ| YºR©$--ââbär9žžž÷­3îææÆûÿþ7³íða\ËÊ(“ÉÐ5oÎì?$%9ëë׆!Õk|¥Ϫt½Qiü“[¶dËÞ½øøøˆOü†——gΜ¡¼¼œAƒU;–ŸŸODD+V¬ ((A˜;w.6l`ܸq¤œ333ÉÌÌB"‘àæVooïûº_›2…ó.ºk®ùùè%ŠêÕã…—_¦[·n,Ÿ9“:ÁÀY uΓ*•eg ¹ÜÿãáÁ⯿fôèÑbÕ³’â”ÉxõÕWyõÕWILLdø-¥D#""P©T¬X±+++t:]»veß¾}4oÞü<¤§§£V«qtt¬Q²^½{3õßÿæ»å˹˜ˆµNGž£#­dÒäÉLŸ>¾ ^•Ð+•º²C¦Ía@ð°páB“$:]î@.ïwB“&MŒn¥ ‡]5×ÒýGf*–/_ζmá$'bg'§_¿¶L›öíÛ·¿§âl×®ß}÷Û·oçÆ8ØÛ3 (ˆnݺñÙÂ…Èt:$ÒjVånÏvñßÌGÖrùc/÷*R{n ȱ±±ÁÃÄ„ºuëFaa!7nÜx ·¦Z­&,,œŸ~ áäɤRhÙÒéÓßdĈá÷Td666|õÕWì0€óçÏ#µ° Cûö  "%%½V‹·zU™-°Ê4Ä€•L†½½½h̟¨^¯'11‘&Mšgæ¿Ï’%Ë9rä<%%j5rá¹ç3eÊ”{V&“ËåLœ8???:„R©ÄÇLJѣG#“ÉÐU&ܲÄPã¢ê9Ša)HVùÏÁÁÁdY Å ¸'À =šäädƃƒ………̘1ƒN:ÕøKþøc=‹­¡´´3І‚ 6Ä‘–ö![¶l¸oÞyçcÒ*·OËV­XooO…JEÕÒŒP9C·©üù† ТC‡G²¦*òh©W¯o½õß}÷[·nE­VÓ´iS&Ož\ã6NŸŽaîÜO¹t©z½Áì9’Inî'8992`À€{þ½««+/ŒÇsÿ÷H$ãàÔÉÑ7??ò/]¢Ž c9J"ÀCÕ5+'§š±‰ü3 "11‘I“&áàà@qq1ãÆ£OŸ>5n£¼¼œ÷Þû€¿ÿÎA§kXRPPÀµkë°´´â½÷Þ½çßËårúõëGŸ>}Á8hÔjµ4òñáÚ©SxêõFÙ,¯Ô>Ò½XZh²>·­=fƒ®×ë9tèà7Þ Y³fœ8q‚Zµju›Q/,,döìÙÆßÝÜÜèÝ»7«Wÿ@ii É$•BåÈÑ£;Ù·o_Ü£‰ä¶YÌСCùkð`ölÝJ`E I‚@PØ ”º¸ðJ÷îb†¸ÇHNN[¶l!--ÍøYbbb­ÛÍËËcݺuøøøð /——GHH›7ofΜ9·¿víZNœ8aü½[·n9r”‹m„@þs^—K— ùóÏ?éÒ¥K¼;·Êf&N›Æ×Œ*7—ú@¡ Q9Ð<ƒÁýþjŸ>b èÇ̾}ûøûï¿¿'$$н{÷Zy’¢¢¢Ø¾};/¿ü2mÛ¶%66–ÿüç?tèÐáŽF=11±šîôööF§Óu n4ÿ-7å†B!°xñ·¼ýö[5Úq«T&“1gî\ÆEEq$-æ‚€Vˆ®4èràЦ[7<==Mä]3Å= )))lÙ²¥Z\[QQÑÃôÒÒR¶mÛÆ€xõÕWèÙ³'‡fÏž=tìØ±Z„‹‹ ‹/®ÖÆùóç)))Áò忀 {$'“úfmllXºbË6$öôiRJK),)Ayñ"ZAÀ p(,dÅ'Ÿ`iiÉK/½$&ìxL3é©S§Vû,::ºÖíÆÅÅ‘žžÎ‚ Œnv•JÅ¢E‹˜5kÖm®ÂW^y…‘#GW(¬[÷$·ÊúÆá#‚àINN%%%µ\S%o¶66lݺ• ¹¹¨t: ãâp­¨À ƒ›sÿÚµØÛÙ1óý÷ʼn2pà@ãï;vì¨Õ€³¢¢‚½{÷Ò¦M¦L™‚L&£gÏžœ={–7Ò«W¯ÛŒl“&MnÓ‹‰ZíDõÚ‘ .ÅÅäææ>´ÁmÛ¶-ß®Yï¿þÊåäd´:ÙÉÉÙÙH1$æÊˆˆ`î¬Y¬üá‡Zï ÒjA§ úƒÒ¨Q#ÞÿýjŸEFF>œA¯mjµÚj¿«Õê'pvvÆÊʪ҉ss…rz}îîõjuÃnnn,X°€ŒŒ JKK™õî»Ø^ºDAÀ Ã6+éé,ûâ ºt邟ŸŸ(%O ‚  ÓéÐét7)-Z­¶F7™LF:.B†à›gÙù88ÔŦûlìííyù•WzæòóóÙ°~=…ññ êTªæ…‚Ý?þH@` Ï=÷œ˜Çý)’MFSMOªÕêòÖ­ë†LVvÙ,ÁÒÒ''§Z]cß~ý $++‹K—.1û7høW…^ÏáøzÅ –-_^+/§Fc0è¢ËݼH._¾ÌºuëØ»w/¹¹¹lß¾M›6aiiÉàÁƒ9pàK–,aË–-|ðÁ(  P#¥Ù°aC†\aS(C*=O“&–ÕFÆ‹••¾¾¾xxxsô(žz=Z Û‚ä@+A€Œ :$>ñ:Ž7²nÝ:rrrˆŒŒä×_åêÕ«´lÙ’:uê°xñb6nÜȪU«X³f cÇŽ­Q™ C‡ÁÝ=‰$¥R6•@)ªµÒ”H$xxxP¿~}ð,7ì\/ÇÉð(.fx8jµZ|àÿ RRRøã?زe ÅÅÅìÙ³‡ßÿ‰D€Ê@ÉÅ‹³uëVæÏŸÏ¥K—9rdmÇÇÛۉ䆹J K˳L˜0ºÖ¾‰üýý¹víäæR§R6µxu×ë‰<~œ”””ZÏеZqº¹‘!ÅêÑ£GQ«ÕôêÕ‹k×®‘ŸŸÏСCyñÅqww'44”Ë—/S¯^=V¯^]ã` ©TÊü›ôôtŠ$#CÀÖV 0ÐY³¾ aÆ&¹‘¢¢"V¯^Z£!ˆÆxÔƒ³_®ÕR¢PˆOühÐ###Q(tíÚA8|ø07¦W¯^Æÿý7VVV¼ñÆ<ûì³5VhôgÞ¼· ù‹ÏWº¹$L™òcÆŒ6ÉF£!<<œ¸˜J1¬Ë0¸Ü+‰„2…¢Vi5E=¹¹¹DDD T* âúõëddd0jÔ(† F:uعs'{÷î¥N:|ýõ×ôêÕ«Æí׫Wï¾[ÆG}Ê… á”–J©__`РÎüûß³LvñññlûóOJ€}•Í&@ i`Õj5µ|D—û#3è ¸g4ï­kLŠƒƒ+V,':ú4éééØÙÙÑ®][š6mj’í::ŽÍþɺåËŽa¥þôc•F]akKÛvíÄ'þÃÒÒ’U«VÝõxãÆoËð ØÙÙ1yò$:wîÄÅ‹—ŒmvíÚÅd”—/_fÙ‚x§¦Ò ƒ«=½rÐiƒa'ÆØÀ@1póF§Nî¹Û§GôèÑ£VßÑ«W/BBVsîÜyJJxzzÒ¡C“Å[dffòÙgŸ!={–á•òXˆ!(.Ãê}ƒúõñòò2‰A]îÀ ? \\\8ð³´}ãÆ víÜI›ÂBšÝô¹-†ä{d2†Ó»woñ‰‹Ü†••Õ}•smøÏúõÈ’“éÌãèëP™ÝP*% K† f²ý¾"Oøùù™-öçxd$ñÿÍ@ΘúÕ¥r–~œœX=mZ­³kV¹ÜÅúSbÐÍIQQÅYYÜ:†´©Tœ‚ƒùzåJq/ºÈcár\õôznžK1,¥6nÌ’o¾½G"…¬¬,ä·ÅÑ;Ör9óW¬`Ĉµþžªº¸†n^žŠZ{{{ì\]«åÔ†ÊÒ©R)ƒÆÑÑQ|Ú"/__ %’jõr%š5kFûöíÅNy,¸ºº¢qt¼M6Ë%œ½¼èÖ­›I¾G\C ziذ!]ºwç´ î"=p W&ÀÝ™"‹ÿ{þy®ÛØp­Ò¨ë1äÍ>#‘ðÊ¿þ%¦}yltéÚ×V­8-‘ Åô¨ 8-•Ò}Ð xx˜ä{ªö¡‹kèæå©°r–––¼?kJ¥’›7c]XˆV.§Ž¿?ŸÎ™c¶µQ‘šÐ¹Kÿø#+–/'þúuƒf«_Ÿw&LàÿþïÿÄyl4nܘUß}Ç»ï¼Ã¶Ë—±,/GíâBïAƒ˜=w®É<›àë+tÑ ×{{{>ûüs‚ "9) kkkº÷èA£Fħ,òX‘Ëå<ÿ röìY4j5mÚ¶¥M›6bæB‘ÇN›6møcÃŽ;FQa! ½¼èÕ«vvv&ûX´Ä•OÑ ×üfd2úõëG¿~ýÄ'+òÄÉf«V­¨œˆÈ£¢~ýúŒ;Ölí[[CÓ¦b?›1ϤˆˆˆˆˆˆhÐEDDDDDDDƒ.""""""bƒ®Óé e„ tèÐ!C†pùòeã _~ù%;w6þ  Y³füöÛof»¨ØØXrssMÚfxx¸IÛËÊÊâìÙ³&móĉ(LœoÞ”÷]QQÁ‘#G©€1mÚ4ˆ¯¯/üñ‡ñXJJJ5ÙìØ±#Mš4aРAf»žòòr"""LÚf||<éééO´¼›º½ôôtâããM򾄣G)¯,~ó(Ðh4lذqãÆÑ¶m[ÆGff¦ñø´iÓªÉgëÖ­iݺµÉûòfŽ9‚R©|bŸ{qq1'Nœ0i›gÏž%;;û‰–÷ÜÜ\bccÍoÐõz=J¥’F1dÈòóó«•K4i7n4þ{íµ×°°° mÛ¶f»¨óçÏ“ŸŸoÒ6M]i-77×ä éôéÓ•µãŸÌûV©T&k¢4---:t(VVVÕŠDxzzV“ͯ¾úŠºuëš5ÅoEE'Ož4i›—/_®fžDy7u{\¹rŤmž}:/¿üòm¯ÓéX¹r¥Øé"5ÂÁÁÉ“'×n†~ùòeRRR˜?þ]Ϲۗˆˆ˜­V˦M›èÖ­Mš4¹ã9:t¨±‚1‚ EEEýû÷¿ã9¼ûî»bg‰Ô)Össs),,D£ÑŸŸO^^ž1bS¥R±uëV:uꄟŸŸØk"T!æåå‘““ƒF£A¡P““S-šùСCܸqƒñãÇ‹UõD)¥¥¥äææ¢P(P«ÕäååQXXh\SÏÍÍ%44”aƃ‹EDÌ… ""‚uëÖ‘‘‘AZZ‹-Â××—¯¾ú  ‰ˆˆàý÷ßÇÙÙÙ,RXXÈÁƒIHHÀ† R«Ò’W¯^åàÁƒâëëKppð­O+ >LZZ%%% >¼ÚRDii)GŽáÂ… 8::Ò¿üüüîêFÖëõ$&&KJJ uêÔaäÈ‘Æõº‚‚¢¢¢HHH ¨¨ˆ^xá¾(­VËñãǹrå 9990tèP£1LYYíÛ·§W¯^÷Œù¨¨¨ààÁƒ¤¥¥‘ŸŸÏðáÃ}ªÑh¸páqqq\¿~¦M›2jÔ(,--ï9KMM%::šÔÔTìíí1b•%9“““‰ŠŠ"%%‰DB“&M2d¶¶¶÷¼ïÓ§OGvv6-Z´`äÈ‘Fy>yò$ÑÑÑ( ,-- ¤[·n&-4r3»ví⯿þ"))‰´´4æÏŸO@@³gÏÆÖÖ–””®\¹ÂäÉ“ïÙWµ!77—={ö‘‘¥¥%:u¢gÏž­;õz=çÎãØ±c”––Òºukúôéó@•ײ³³9~ü8©©©èõzFŽYÍ{VTTDxx8III¸¹¹Œ··÷=¯)..ŽsçΑžžŽ··7#GŽÄÞÞÞø}ÇŽ#-- …BÁÔ©Sï¡ÑhØ¿?©©©äççÓ¿ºwïnœÄ:tˆ„„ …q;ì½ô» ܸqƒ¨¨(RSS‘ËåŒ9Òx_=z”””t:õë×'88˜† šL,,X°ÀÊÊŠFѳgOž{î9zôèAûöíñññÁ©TJ§NèÞ½»Y^ŒÒÒR–.]Ê–-[hÑ¢¥¥¥üòË/XXXо}û‡j3==×^{ŠŠ êÖ­ËŽ;¸rå ;w6*½ûqñâEÞÿ}233Ù¾};:t0t•JÅš5kX³f Mš4áâÅ‹lÚ´‰~ýúáäätÇöÔj5¿ýöëÖ­#99™èèh‚‚‚Œ0ú?; IDAT‚wâÄ ¾üòK®\¹ÂÞ½{éÑ£Ç} ºB¡`ÆŒÄÇÇsèÐ!ôz½Ñ «Õj&NœˆL&£nݺ$&&òÛo¿áëëK£FîjŒ¢¢¢øøãÉÊÊbçÎtíÚÕhÐSSS C&“akkËñãÇY¿~=ƒ 2IÀÇ­H$\\\hß¾=Ï=÷AAAtèÐH$xyy1xð`ÜÝÝÍ¢0£¢¢˜9s&r¹œºuërðàAü®í———³lÙ2ÂÂÂ8þûì³Z¿;¯¾ú*äææ2iÒ$Mv­OÄ ½  €7âææÆ[o½Å”)SÐh4¬_¿¾Æ³é[yùå—‰åûï¿'**Š/¿ü’¼¼<“]³N§C*•V{¸U?ßk†þ¸255•wß}—=z0zôèZGƒ?žéÓ§Äž={ˆ‹‹{j ú‰'ˆ‰‰aÔ¨QLŸ>ÀÀ@¶mÛFZZÚCµ×¬Y3üýýùꫯˆŠŠâ·ß~ãðáÃ&“›ªYÎÍ3‰D‚T*}âd³j&½jÕ*"""X²dÉC{>ªð÷÷ç½÷ÞãÕW_¥¼¼œíÛ·SZZúTÊfff&¿ýöíÛ·çí·ßfâĉ$''³{÷îj59„W^y…°°0Ö­[ÇñãÇùúë¯)..6™lêõúÛt§T*E„{UÁxóæÍã¹çž3Iˆ©S§òÖ[oÑ£G6nÜHbbâÓ5C?{ö,±±±lذÁæããÃĉ3fÌCØûõëǼyóøë¯¿8zô(þþþtïÞ† Ö:m­D"ÁÝÝâââjY{rss±³³{¢fçU9Î?üðCš7oμyóL²S¡ª8O¿~ýHKK#$$„.]º<•Jó§Ÿ~"((ˆ·ß~‰DBÛ¶myýõ× ½c›ûáááÁG}ĺuëX¶l<óÌ3„‡‡Ó AƒZ_¯‹‹ –––ÕÜ÷J¥’òòrœŸ¨Ù¹Z­æÛo¿eÿþý,^¼˜-ZԺͺuë¢\]]™;w./½ôÒSYâàÁƒ¤¦¦²aÃãÌV*•Â!C* òرcQ«Õìß¿ŸÐÐPZ¶lÉõë×ñõõ­µìÈårÜÜÜHHH¨æ¾ÎÊÊÂÙÙÙ,ƒµ1æÑÑÑÌž=›aÆ1uêÔ{îÀ¨);w ((ˆ!C†°yóf>þøã§Ç W­›Ý<:ÓjµèõúZÍ(ÆŒÃСCÑh4\¿~}ûöÕ8Ró~4jÔˆ²²2nܸAãÆQ*•œ>}šöíÛ?ôÚ•9HLLdþüùÔ«WÏ,®G½^V«}ªsûët:ôz½ÑÝXõsmÒÈúùùñé§Ÿ¢P(H$Ìž=›®]»š$娣£#þþþ?~ÜèIKKC“ LiÌþùgvíÚÅ‚ èÙ³§I7?£'m‰Á”ï_•<šJwZYY1ažþyôz='NœàÀ´iÓ¦Öý(“ÉhÒ¤ ›6m¢¨¨ÊÊÊˆŽŽ¦OŸ>OŒî˜˜æÍ›G·nݘ>}ºÉwñTÙ=S޳ł»åq}„XZZÍßÿ¥¥%§OŸfùòåòòË/?”{8##ƒ 6PPPÀ¹sçX±b={ödüøñ56èåååìÞ½›ØØXÂÃñ±±¡¨¨WWW<<LAA2™ ­V‹““ãǧ  €Q£F¡T*IJJ¢°°77·»®±±gÏΜ9Cxx8äççS¿~}bccùå—_(..æêÕ«üúë¯DDD°`Á‚ÛR^>-¨T*Ö¯_Oyy9yyy¬]»–øøxf̘Q­¢VM)//'<<œsçÎqãÆ ~ýõW.]ºÄâÅ‹(O©S§ˆˆˆ ""‚äädlll(++ÃÓÓooo¾ûî;Š‹‹ÉÊÊbÅŠôïßÿžÅA4 »ví"66–}ûö!—Ë)))ÁÞÞΞ=Ëáljˆˆ %%[[[cއ»‘’’Âþýû‰ŽŽæØ±c8;;“M£FX»v-Ÿ~ú)ãÇÇÓÓ“´´4®_¿Žµµµq;Ò8vì‘‘‘=z”ŒŒ ¬­­Q*•¸¸¸ðᇒ““cÜóûý÷ßÓ§Ocùݧ 2dC† aÆŒ·­¥5oÞœ™3gÞu¿|jj*Ÿ|ò eeeÕ>ÿä“O°°°`Æ $''£×ëñõõeÔ¨Q´k×î©)•JÂÂÂ8pàEEEøøø0fÌjt­R© cïÞ½(•JZ·nÍóÏ?ÏÄwâ‡~àÈ‘#Õfg:uâí·ßÆÒÒ’ãdzyófŠŠŠ bÔ¨Q÷TnLŸ>…BQíó©S§Ò¹sgþüóOöîÝ[íX«V­øè£î򾄣G A¥R?³µµeÉ’%lß¾T;ßÞÞž &Ü3ÈréÒ¥DGGWû¬oß¾L˜0õë×Cqq1ÎÎÎ1pàÀ{Þ÷?ªü)))X[[Ó§OÆŽûÐîëÔÔT¾ýö[£|̘1ôêÕë—/_æË/¿¼­ÈÒ¥Kñòò"77—ßÿóçÏãééÉ„ î»|µvíZBCC«yZ¶lɬY³ÈÉÉaΜ9ÕŽ¹¸¸0uêTãòàxóÍ7)((¨öÙ¿þõ/š5kƼyón;¿*iÐÝt]LL +W®¼­&ýêÕ«IJJbûöí¤¦¦baaA³fÍ7nœ±ôSeÐEDDDDDD©Ø""""""¢A ºˆˆˆˆˆˆˆhÐEDDDDDDDƒ.""""""tÑ ‹ˆˆˆˆˆˆˆ]DDDDDDD4è""""""O²ÈÈH>Ljj*ÖÖÖôîÝ›àà`ÈÌÌdûöíÄÇÇ£T*iذ!£F" @ì9³“™™Ixx8±±±Æ:Ïÿú׿ðññ`Ïž=Æüõ¶¶¶ôéÓÇ(»""æD­Vóè§§§ãääDPPýúõÃÚÚšÄÄDvîÜÉ•+WÐét4jÔˆ_|ñžyïEDj‹…­­í­VK=pttä—_~!77—Î;“““Ã¥K—hÙ²%-[¶äòåË,_¾œÁƒ›¼j—ˆÈ­5##ƒ÷Þ{[[[.\ˆ§§g5C_TTıcÇXµj«V­ª¦T«8tèb¯ŠÔˆAƒÕ¨žxyy9ëÖ­#$$„eË–Ñ»woã±’’²³³¹~ý:ß~û-îîî|þùç·Åx$%%qùòe±ÓEj„¿¿Ø.]ºÄÌ™3iݺ5sçÎÅÙÙÙx,99…BÁذa?üð;w¾m&vºH°±±¡_¿~w7è©©©,\¸¥RÉÂ… ï*Èz½žI“&aeeÅêÕ«o;Þ¶m[ÆgÒ‹¿pá®®®Õ¦D¯×sàÀh–öÓÒÒ(--5ë2EXXƒ 2KÛ …‚¸¸8ºwïnÒvCBB¸|ù2r¹üžçét:Ö¬YÃÆ™oÞ<<==™={6w•ãÁƒÓ«W/æÏŸ_í˜Z­¦eË–Lš4ɤ}süøqZ·nm¶ }èß¿¿¨0E ...Lž<•JUM66lˆ••Ï>û,W¯^%##GGG>ÿüsºté‚•••Øy"æUœ2}ûö¥U«VPPP€……R©”Î;SQQAVVŒ1‚ÁƒS¿~}±óDÌ'—÷r¥:;;3eÊ”ÇzÞÞÞ¸ººš­}‰DB»víÌÖ¾›››Ù“œ˜3sŸ­­ímëÑŠîÝ»ßsí~̘1U6-,,L¾>v+Íš53ë6ùd99öèõÖXXìâ§Ÿ~eíÚ5´lé/JÇc@«ÕrðàAfL™ByNr@okËs'òþ¿ÿMݺuMöüsss)..F§ÓaccCÆ ¤²³³)**B¥R!“Épww7Êí£àܹs<÷ÜK¤¦êÑé\JKYµ*„/¾˜Ï /ŽRÙ©TÃòåkyç™3g6¢°< Ÿ|ü1›×¬A¦V#H$¸5i‡ 2tذZˇ,;;›%K–ššŠL&C¥RáææÆìÙ³iÒ¤ 6l <<™L† ”——óæ›o2tèP³õøøx–.ý‘7Zm :Šóç³xñbV­Z)ÎÔ.\`ö{ïÑüúuZ V@šRÉîï¿Ç½A¦M›fÅuâÄ BBBP*•H¥RJJJèß¿?S¦LÁÎÎŽ>ø…BL&C£ÑP§NÞyçZ·nmv£^RR‡~ĵk®BÀ NËõëçøè£ÅôíÛOOOQX1ÅÅÅ,^¸ôÐPÆN@1püèQfð«ü“<ÿ¥K—rõêU£ü9::2}útÙ½{7›6m2)//çùçŸç¥—^2»ÞT«Õlذ;ΠT\Ðé@£ÉfÍšm´nÝšqã^gêafòóÏìþþ{©Õ4´@L|<ŸÏ™C“¦Mk]ŽYfccÃ!ChРuëÖ%77—?üŸ~ú‰/¿ü’víÚѶm[5j„^¯gÇŽ,Z´ˆÖ­[›l´{¯PB‚hT ŸM{.^Œ%))‰ÀÀ@QR1áaaœL;A0axååìÙ¼™É“'›Ä »»»3iÒ$|}}±¶¶&11‘×_fÍš1lØ0ž}öYš5k†››yyy|öÙg¬]»–?þ{{{³öÁÕ«W‰¿Œ Œ¬ª^'ÁŸ¤¤8Μ9#ôÇ@zz:Ñ¡¡Us' — ÃÙ³géׯ_­¿G.—3`ÀƇ»»;EEE,Z´ˆo¾ù†ßÿæÍ›óÎ;ïдiS$ aaa¬\¹’.]ºÐ¼ys³Ï#"¢P©ü€›ë‰×#7·>§NEñì³#±µµæ’››Ë_{öÐI­¦J3XÀž«W9|øpí zU½ëªÑZ½zõh×®111H¥RºvíZm$7tèP¾þúk233ÍjÐA@¡P –@uã ‘X¢Tꨨ¨¥¤–}\PPÀ¡C‡ˆŠŠÆÑÑÞ½{ѹsg£[ûVôz=YÙÙ8)•Õ"*%•ªãjRZ­Ö$××¢E üýÿ»¬R¯^=œœœHNNF&“1räH£lÖ©S‡Î;IEE…Ù zII :À­ë²VH$r E«%åååDGGqŒÒÒ2:vlOß¾}©S§Î]g—YYYHÊ˹աl HJJÈÊÊ2ɵÙÚÚVÓ›îîî´oßžÿüç?H$ª]cpp0Ë–-#--Íì]§ÓQRRŽD⌠Hnyçm)//7Ù;ú¿ŠF£!55•;w’››‡G† J£Fîê)(( ¨¨ˆÀÛ48K$¤$%Õúºd·¾éééœ>}šnݺUOIµ›Ø¶mÞÞÞfŸK$¢*^K IDATZµj…³sEEù@ƒ*‘RðôtÁËËK”¬Z””ÌìÙ²kW :]]ôz%rùÏ|òÉTÞ~û­;E©TŠ·7‡lmÑ–•£*õ@àíïo²uÂ[e366–‚‚Z·n}Ûñ‚‚Ž9B@@€Ù9Pép"==Ah^9¤H2°³ÓЮ];QÀjR©dÉ’e|õÕ/TTÔA"±ÂÂb3Çw`É’/hܸñÿ®aÆHœœ(,.æf)P‚³3ÞÞÞ&ÕQ7ϾN:E‡n;¦Õj ÅñÿÙ;ïè(ÊîfKzï !¡%„½EŠ `ư€T|•"*‚ vÀ‚ ü$ô–¡„¡CBBBé¤×Ýl™ç÷ÇNb!"ú*¼rÏÙ“³™ggŸ¹së÷Þëäô_Wæööö´oÌþýÇ€fŠP…]ÁÁ°··¿ÃdB™oÞ¼™7ß|”3`e|ùåJ–.]Dß¾}ê58===ñôðà²$ÑVˆß W hÙêÏcÂ4W‡j–,YÀرc¯±ú¶mÛÆ÷ßÏœ9sðõõ­×k©>ÀÅÅ…ÖûÙ¡:pÿý½øé§TUµìQ©²qvNäñÇgÝ iþ 2 üôÓOlÚ”€Á0°L E,^¼‚Ö­[3bÄðzÏrャYµŠØãÇi/¶@2ììÌ« µùâ›o¾ ,¸¡ë¬ªª‹/½{÷;wî¬#eY111¢OŸ>bÞ¼y¢¼¼üºkôêÕ«Î5äææÞðóQ #î»o´ððh*ÜÝŽ÷+W®qqq"//ïºÏÊj˜"##…V$`ˆ€¦ŠÜô*š6í v튼••bþ¼y"¸Q#èè(š8;‹»û÷ÑÑÑõÊ[½^/²³³ëðF=®»>BQPP f̘!ÂÃÃűcÇê|Àd2‰mÛ¶‰°°0ñõ×_7¨@{÷îý_ÛD½^/¶nÝ* ¸G¨Õšgç¦bÊ”×EAAÁ.ûƒTXX(BB: pÐIÀx `/&L˜ø»ÆXee¥8~ü¸ˆŽŽW®\ùCß~C+))I :T¼ð ×䢢"ñÎ;ïˆ~ýú‰ãÇ7¸ÎüùóEDDÄe/eYIIIâ±Çžvvš kë@qÿý‰cÇŽÝœ7AO=5NH’Ÿ€æð¢€Qü…½½ó Ý“ .ˆ={öˆäääë:!õÑúõëoH¡‹>úHôìÙS8pà¹#:wî,,Xp]e^­ÐÃÃÃÿk{™““#æÎ+üüZ)FQcѺu˜Ø´iÓŸ2þ­!ÀQ12‡+¼ù¤€6ÂÕÕ[¬YóËïòfNNŽˆŽŽÇÿÃNoCzVSRRÂ’%Kˆˆˆàí·ßÆÝݽ¦„Í××—]»v1mÚ4†J¯^½ÈÍÍE­Vãææö·¢$srrøàƒE:T…,ߨPR’ÇâÅððpçõ×§Ö #™Íf*++±µµ­)¹Cµr- Íšùrþ¼50"o@GEEz½kkëë®akkû_­2HNNæ?ÿù>ú(:Ž´´4œœœprrâ“O>aË–-¼üòË8;;“––†µµ5ë=7 ,]ºŒŸ~ŠCˆA€+UUålØp³ùC–/ÿªN©”,Ëèt:4Mƒûûo&KͶƒaàS´´˜L»)--ÅÉÉ©Áüv‹-hÑ¢Ååút:ß}÷«V­b„ øûû“––†$I4nܘ˜˜¦NJ÷îݹçž{ÈÏϧ°°WW׿ãQ[FEE±páäåµ yë­YxzzÑ­[×k~›[[Û;¥mõ··7vv**+ð`ÔU€'à‚N·òò²ßÅ^x{{ãííý×ËõììlÖ¯_Ozz:sæÌ©Aèùúú²nÝ:6lØ@rr2ëׯgÛ¶m€QÌÌ!''•JÍØ±òøã×('•Jõ·4mºõ…¦'ƒ÷U¼€ÑhÅÅ‹ ýÇ®¯´´”5kÖpéÒ%–.]ÊW_}XÊÙöíÛÇ®]»8{ö,%%%F.\È@ˆ¦W)ƒÙÙYèt:"##?~2¹¹&ETw–Ÿ^C@@K„€.]Ú2yò‹´oßþ_mtÚÙÙáëëÆ•+†«ŽÈh4œœÿ1Ã綉E7oÞI*Cˆ ¨SezGG[\]]Y¸pÛ·'£°„Ž‹Èrññž€+çÏ—søð, yþù‰XYYý+™ÒÊÊŠž={âí½™ÜÜK@uh²{û³tëö°âÁß¡ß#???,Ù§â«”z)ju%7fÇŽ,[¶Žòò^@0–B¿Ìæ823‘™é ˜9uj§NeÙ²Å7…pþ_¡nݺáïï@qñ)„è (õJà={¶ÅßßÿãÝiµZš7÷ãܹb…çTµŒú\<²³ã±„/µŠâÃRŽU]¾–,_æèQ11N€*U,û÷âÃß'<|Àÿôž~õÅÄ­YCƒwÀ ‰çÏ3oæLºwïNóæÍï0Þ PEEË–}ÁW_ýHr²KePŠbd†v‘„——;cÇŽeË–Hâã!DE*8ñ@k,%Y&$é8))¹$'§#„7† ûÈͽÂäÉ“þ§÷t×Î|µ`= ðV´IF~>¿|ú)-š7硇þÇ î[Z¡gdd2oÞB"#ÍÈòPårÍŠÜtÇÚú4v£_¿~„‡‡SVVκu›).ÖQVV€2°OñÜ}Ðj ∟Ÿ/óç—óÑGŸž~œÒÒRÌæ Exþ4G­®B«½@U•£ña,ÀN Y&.î_ý mÛ¶¹åï½^Á`@­VcggwCaH£ÑÈ/Ë—ÓÃ`¨©þWŠŠÊ0Ê”Ýÿh‡$i°µMG§KG–ûy,“““ÊG-áÞ{‡ü×êþÿJ2 5ƒ½ìíío¨¼¬¼¼œ]‘‘øgg DMì×È-*bë–- 6ìç}K+ô´´KìÝ›ˆ,ßÅoS­4@Tªs4mz„ÁƒïbÖ¬8:ZïóæÍe„ñìß¿Ÿ7qþ|ƒ‘FhÒÄ Ÿ6üúk1©©­!\M˜L-ؾ=ò–Wè•••lÙ²•½{÷P\\‚¿¿?#GÞGçÎw0JEETT Å‚@HS|ÊJ § €Ü+WîHÄ ’’6lØŒÉÔ‰º#*ƒ€óxzîfÀ€^Lžü>¨T*ÆŽË AƒØ·o;vìàøñsäåéððÐÒ´©MÉȰgëÖ<,¹ËêÔ‡Yn‰gÈËË»¥ºÁ` ..Ž-[¶pùr:NNNôéÓ›áÇÿ. ¢¢‚ªÊJÓ(]áOPf4’”˜øÕ÷ÞN¤ÓéØ¿ÙÙžµ"•(Q¡0ìíwѾ}&NücÆŒA¥RÑ©S'6lXÇéÓ§Ù²e {÷$;»++#-[ÚãîCK–-[‡Ùܪ֚* eeq9rä–Wè/^dݺuÄÇ' Ë2={öàÞ{ïýÝ¡=UUU–fFÊP•B,qßb,³J/\@§ÓÝQè¿oIÉ\=>TØÚzðüóOòüóëx§†àà`‚ƒƒ>|8‰‰‰F5jDÓ¦MÑjµÄÆ#5UÔû·zþ¸ªªŠ/¿ü’¹s¿æÊ•F€*ÕvîÜËœ9³¸ûîÁ zC>ÞÞH¾¾”\ºÄyE`ú+*©X–YúÙgtíÚŸ;’ñwŒ*£Ñĵ}T¨Tö ΢E ðôô¬ÃS^^^Œ=š{ .ŸŸ§§'M›6ÅÎÎŽÅ‹³uëêzøÒòºÕ)::š×^›NB‚ ³Ù ÈfíÚÝ\º”Æ›o¾Ñàóåèèˆw@Y  A,ˆ«+à&ËÄìÛGdd$ƒ¾Ó|§2›Í”——+ÑGõU|dOÛ¶­™?={ö¬s?éÕ«Ý»w'))‰ììl¬¬¬ ÁÅÅ…øøx¾üòWÌæ«e§¸-ö%55•7Þ˜FD„%B ÿ÷Ÿsôhï¾;«ÁRHûû³[£ÁÇdbbn7Ü„ #1‘•+VðÆ›oþ£:ä–~*ÜÜÜ ´G’Š®bšR4tïÞ­ÁP³——}úô!<<œ–-[bee…$IÜ{ï`Ôê XPðBy•¡V'qï½wÿåá¯êOUUBü9æ?zô(ß|ó#yy=±”â…"Ëý8}Ú•/¾°L|jˆÂ:w¦ÛàÁl³¶&è§¼z#„ ;:šO?þøO_çÿ:yxxÔjÌ#×Î!I¹ÜuW8^^^×}¸èر#ƒ "44ggg´Z­RW…$ÖZ×€$]$,,è/÷ÎM&:N‡,Ëj-Y–™9sññŽ˜Íý±”äõ /¯;K—®h°Xš½8e 'ììØ„ƒ€îÀ !ðKJbé§Ÿ’™™y‡ Z´hF“£Ä7jT=’t™víÚЦM›ëò¦Z­¦U«V„‡‡Ó»wïšVÊÁÁÁ4mê$%awZÖ„œœäš‘ÛɲŒ^¯G§Óýéùí&“‰•+W²eK"fó½ wu¢²²«VŲuëVÌfóuÏ·¶¶fÔ¨QÈ­[³Y1ãïQäæ ¼¬ŒåJ—½’ni…ÄÓOߣãa$é‰$%ao¿‡1c†Ñ©S§›Z÷¹çžeðàfØÙíN'°·ßÅ!­xê©§þRKùСCÌ;—É“'3kÖ,¢¢¢þT ç™3gINJ^¬Úú¶B–›pð`yyù žïììÌœ?¤qX°¦Tc®€0“‰;vPRRrG26@VVVL›6_ßT$é(\D«¦wï&Œ5ê¦ÖíÛ·/Ï<3w÷h,¹Î³¨T»éÑÃÀsÏ=û—•l !¸xñ"_|ñ/¿ü2¯¿þ:«VýLAAÁM¯YXXÈ¡Cçå`~ù©@ŠŠl9pàÀï®ñð#ðÄ+¯à¤Ñ„¥J…%áÖÂl&qï^²²²î0`¤Õj:t(x¡VÇ— $é­[óðÃßð×ÆÆ†yófѼy*Õ^à’t?¿¼ýö+4mÚô/û ………üòË/¼ñÆ›¼öÚ–,YBbbâMœ“É„½½}½Æ«¢F‰þ‘C:Ž5kÖ°qc Fã@Å×TV°|ùf:tåÑGùÿÁÝÝšqúô%„p¯VÁ@.å×Lõº6i‚äïOqB‚‚ó·¬R I¸¶ly‡7o€T*]»v!(¨yyy!pqqi0 t#dmmMxx8Ý»w§²²ìííëuNª ¯êX7Jûöíã›o~¥²òn, >C9ûöíaÉ’¥,^üé¾nwwwZ¶ ÁÊjC‹ZÑÍ2$é2Ý»ß{CÍ´´Z-!:‘~ä~²\â®òììý îÿI…^ÞlÒ¤ÉMŸ_VVFNNB\]]qwwG¥RaeeÕ pHNN&22’ÄÄDlmm¹ë®AtîvCÞשS§HN¾ <Äo >-І¬¬SÄÄÄÔ;uIÑà×»wožyæQ>ùd¹¹ÍgTªLÚ¶­`òäwoxÊØ¨Q£ˆø¿ÿ#*2’Öz=VÀEI¢ I>ž5ë’ø(uŸ›VUU‘^¯ÇÞÞ___4 *•ªÁ°h~~>`ÿþ¨T:t`àÀ7tÿ‹ŠŠØ¿ÿ0FcPÊ•wòóý9rä0#GÞ÷‡»Ó©ÕjæÍ›ÍË/O#%e7&S Pˆ»{*/¼ðÝ»w¿a/hÌã³bÁÚâ"I ^^¼üâ‹5Ó¿îÐï“««ëM²‘e™+W®PTT„••>>>ØÛÛ#Iööö×åƒÁÀÙ·o%%Å4kÖŒAƒ)yýß—+7nB¯À9«&GÌæ¶DDlgáBC½Ê·!Ù©Õjyþù‰œ={Ž;7b2`gÏtbäÈûnØa{{öl¦LœÈK—h"•Àº zÓ©¶¿L>}šcÇŽÕ ;uêD÷îݱ³³£¢¢‚“'O’@VV={ö¤ÿþ·°BpöìY–/_ÁÑ£§0›e};ö† Ö๠¼òÊT"#Óe˘Ñ+61uê8Æÿ»“Ú,Öiuž¦N|I’ê€<„deeµ›ôôtèÝ»íÛ·¿&j`eeÅäÉ“ðõõaÏž=”––Ò¨Q{x`4½{÷ºaKØÑÑ‘ù‹ñýÊ•œˆ‹Ã ÓÑ2(ˆ‡~˜öíÛß÷/??ŸØØXΟ?OUU>>> :´Fy&''Gzz:’$ñ /ÜVݪÊËËY´hû÷ÇRV¦ÃÝÝ‘#†1fÌè ͼ¼|æÌ™Ãòå;()qWøb#=ÅüùsohÎòµHåßø³vTªÚ£ßµkçÎÅбc(ýû÷ÇÆÆæš³ èϲe‹Ø¸q#—.¥âêêGïÞòÐCÞð¾hµZ&Mš„³“‘;w’VT„³§'ÓGbÄ}÷Ým‰F#'OžääÉ“\¹r{{{ºvíJçα²²¢¤¤„cÇŽ‘@~~>C‡%,,ì¶éÂXYYɶmÛX½z iiyØÛk騱S¦¼F£F4~úiï¼3Ÿ¬,GÀf]»FðÑG³¯AÖ×GÙXŸS!DÝÔŽÁ`àÔ©S<£¤§š0p`x½v“&MøôÓY¹ò{ΟO@¥RÑ¥Ë8F~€Æ߂܃ IDATðÞôíÛ—–,á—µkIOIÁÆÁÑ]º0aüøœ75Ÿþ9:޶mÛRRR¬Y³xì±Çxê©§ÈÈÈàóÏ?'//ÔÔTôz=}úô¹mzVV6Ó¦½MddFc@MllqqoáêêJ¯^½ê=O¯×³dÉvï¾¢Ì_WGÉÎNåÃç’žžÎôéÓº­ZµÂÙÙŽìì$,­1ª)kk=aaa5ÿIOO祗&“Lq±=ÖÖš5[ÁûïÏä¾ûî»fm;;;üqFŒ^¯ÇÑÑñºÆ¥K—HLLÄÆÆ†.]ºÔ(>žE‹>%;; T¬“)ŠØØ&LxžÙ³gqß} {Ã}úôfÙ²MP'!hF¥J¥K—ö5†¤,ˬ_¿ž÷Þ›ËÅ‹`0hpu­¤gÏ_øúë¯êMi¶hÑ‚wÞy›ââb$IÂÍÍ­^}Vm°åççãïïO»víê¤î¾çºvëFaa!ÖÖÖxzzÖkàþíTXX(ŒF£0›ÍÂd2‰åË—‹nݺ‰ÜÜ\!˲0 ¢¼¼\Œ7NL›6Mèõzq=êÝ»·¸•héÒ¥B’Ú˜*`–òš)$i°5ê~QQQQïyçÎ]ºtð’€—´"`´€ÑB­n/úô ‰‰‰ ~ÿڵ넷w¤»Œ’4T¸¹µ~ø¡Ðëõ"..N¼ôÒdáíÝLH’§€~^0]HÒháæ ²²²ê][§Ó‰ÂÂBQ^^.dY¾æxAA˜>}ºð³µð×hDhË–bóæÍ¢ªªê¿7áááÂ`04ø™²²2¡Óé„Ùlf³Yèt:Ѿ}{±lÙ2!„F£Q ±iÓ&Ѻuk‘——wݵæÏŸ/"""nÞÜ»w¯hÖ,DÀ«WñæXáç×J\¾|ùºç>ôÐX¡R 0C@ ðP©z _ß`±yó–¿?..Nôï.4šnžðˆ°±i+ÆŽ}Ldgg‹ììl1{ö{¢uë0¡Ñ¸ è `¼€w¼$\\ZŠåË— ³Ù|ÍÚƒA”””ˆââba2™®9n4Å÷+WŠ¶Íš‰Æh¬Ñˆfâýwßååÿø½Y¿~½X°`AƒŸ1™L5¿Ïl6 £Ñ(fÏž-úõë'„Âl6 ƒÁ 222Ĉ#IJeËêÝ !„¨ªªááá· o‹>}î’4\á±jþ|[xx´Ë—¯¸î¹‹/ŽŽ¡Êycø*ríaC„£c31kֻו½Õ{;zôƒÂÁ¡²ÆB«í!Z·î$Nœ8!Š‹‹ÅêÕ«ÅàÁÄVë. ©"›ßð†P©Âijώ¯w¿eY%%%¢¨¨¨^]f6›Å‰ãÇÅ€Þ½…ŸF#4ÑÈÚZ<ùØcâbJJ½²ö閭ô¬¦v~EV«EQ“ÐjµÈ²|[ì8yò *•f³C¢ÍÉɱ„ÊêËÍ›L&dY(áòóÊß{k¬E³9˜¸¸-¬Zõ3o½5íºžÔ}÷@’$6oÞLVV&Üu×4î¿gΜaüøW8y² !B± B¸ì† DeegÙ¾};ãÆ«¹f³™cÇŽ±iÓ&²²²prr¢oß¾ :´æ: ?üðk?ûŒ!:~Êê'“’øàí·ñöö¦sçηüý»ÚûS«ÕhµÚ°Mµe};,IMM¥¸Ø ­6oz•UI^^ÞuÀz}PO®Â3C± †Y"'çsæÌçî»_7šÆ¢E X¹ò{.\HB­ÖбãL˜0€ÿüç?,_~IjŽM±”>Eá€/ÅÅMˆ‰‰aÔ¨Q899!„@¥R‘’’† HJJBAX§N >??¿šï>sæ ï½þ:­òòh- µ €¯çÌ!¨eK|è¡[þþ©Õêk¼T++«ÞT©T¨T*4Ím'; ƒlìwUè[KQ‘ÉÉÉ ž+Ë*Å»> „]kReeÞüôÓ´Ô¸_oo?ûìV¬XA\\:]AA]xä‘GæóÏ—2wîr a™éQ Ä`©‰ï€,wbÏž\¹r___dYF¥RQ\\̶­[ÙÀR¢æïïϘ1chÓ¦ÍoñÓŒ fΘéÐ!1›q L&¬]˧®®¼ûÞ{ÿx7¸CîWç,7lØ@=jZ©ÞÎäà`‡,WaÁo×fLZ­öºŠØßß__$)! €fÔíf…NÌ÷߯D­V1iÒ¤zLZ­–ûïÅ]w ¤¸¸\]]Q©T,[ö5§Nb –ºH€Àz E’ìHHH`îܹœù'EþºnÎW®Ð¾–j!E+¾ûŽ1>xÛ)Á””víÚÅСCo{Þ´€Þ¬))1ÔsL‡Juý{Ó¶mœË©¨ÈT܈¦ÔÅy“šjbæÌYL™òC† ©÷^ûúú2uêT 1 ¸¹¹aooOZZŸ|²œÂÂv@KE®ËX*~öcŠäHU•íÛ·wŒ+Wòðó󥬴„Ø-[ÌËÃ8©Rsð Î[“=qü8—®™uò„u¬ªâÐöí\~î¹:á÷[V¡—––òî»ïb2™n\d6›ÉÈÈømq77· (Я_?-ú^aª@…±*€ƒTT¸péÒ%ŒF#ÖÖÖ¸ººÖ\§««+“'OâܹÉ\º”‡õ@©©:æÌù‘#GŽñå—Kk¼ªª*²²²8þ<²,Ó¤I“šÖžÕ´cÇ~d¹c-eÄqsÅ ÄlÎfÕª5äçk1¼‘¤*Ôêxššô„?–a²¹,ÿâ :vêD¯^½(++£8'‡à«%+ÀÅh$3+ £Ñø·)t£ÑHQQQÚvý¨×4lÞ¼™ùóç3sæÌ›íÔáO''§›®ÿ³ÔªU+ÜÝyyÇŒEuwýsq…‹/âàà€Z­ÆÅÅ¥¢xôèس'š½{c0¸a)êª}§eŒF™¥K£‰Œ<ÀçŸ/¤ÿ~5Q¸œœ’’’(..ÆÏÏ-Zàââ‚$IŠwv†âbŸZùK°´viŠ¥ÙM’”Ξ=)DF¦¼<P¡ÑDál* “x+"¶EI Ûü‘õýúñ¤Ò´éÂùóx\åMH€—œÊΦ¢¢âwA§%•––RZZZ‡Oþeee1cÆ yòÉ'oꪪªê𦕕®®®¿;›á¿AVVV´kט¬¬³Xf 8*Þo&²liWœ––†J¥ÂÑÑ''§¼Fÿþý3æ^¾ùf5Úzå¦É$³gÏeNŸ~™Y³Ryî¹ç°²²BAii)©©©¤¥¥áèèHPP5ªY?>>ž¬,ƒ"Ï«4•¢Ü(Q+W®äðê«ïPQá‰Ùì„Z‡5it0›ñÀ2§³,³g÷n¾üâ æ/X€³³3ù¨ ¹ÚÕsʳ²jÊœÿ.ªªª¢¨¨¨ˆº¡> °Ìtž?>iiiÌ;—ààà›úòÊÊÊ€‹‹Ë —Òü7¨¬¬KëÃý@²"4³-.dðÌ3/b6[ãïïÊ}÷ÝÃ#ùd!_}õ_½šŠŠ´Z® ËØKwL¦!$$âƒ>¢ÿ~!8z4Ž·ÞšÁÞ½IȲ566y¤?¯¿>•–H’„F£¾oš*UvvÉ”—ë1™€< Gc ¾²•+V‚­f3»¶m«Qè­Ú¶eï¿bä78ž dKþp¹ÜŸ¥øøxâââjÞŸ>}ú†›—\¾|™™3g¢ÕjyçwnZÖåååÕ‘ÞÞÞ 8ð«¹W©´HR:BlSäO%‹,7eýú¢£j:u âÉ'£_¿~hµZ¬¬¬˜3çÜÝÝøá‡U$'']Õ“ (GˆAäçëùòË•tëÖÎ;sùòeæÏ_È?î ¤DJe¤sg?>ø`wÝ5°ÆØ°ð¡¹Þ4‰88a0˜()1+×]€•¹F˜©*‰®Þ@!H:{–ÌÌLœñòôDöð@Ÿ›KíY)àð·;………DEEQ\\\GÏ^W¡²`ÁΜ9Ãüùóëäþ(9::òÒK/Ý2áK3/,=¥K•PGÀƒÒÒu”–º¹p¡”cǾ¦¨¨ˆ·ß~»Æs´º´ë‹/>ç7@£Ù¯xæþÀ0,s  v~þ—_Ö‘•etPBUöÑŒÊʬX±¢&Ôü 4È[Û­HÒTªý88lgüø‘ìÝ»‹^½z`0ØÃ?@O?å1Pc™£ª˜g¹I“¯B«ÕòÄOðüôéôóã'~quÅÔ­.ZDÛ¶mo‹û·ÿ~^{í5hÚ´)±±±DFFráÂÒÒÒXµj{÷´”_ý•Í›7SvUËÐ[‘‚ƒƒi×®=’tYp½€v@‰"øº+¼„ÙΖ-§Ù¾}{úp[[[Þ|óu–-{—&M²1å ÁR2d f˲àsˆÃ‡/!Ë]m øPUÕž_~Ù]A>|8=6 ‡Í¨Tû£ØÙm¦gOÆŽàÕWß'3³T1XÛ£¢Š6˜ R|8ë×ÿD—.*,ø‹|, Ê°Z±‹ñf0øê«5ètmî±\¢+ Ålß¾Þyç5ΣÑDǰ²ÚŽ—×iÖ­û™•+¿ÁÞÞ³9LñÁÕø`¢“"+Õµ\¼K@¼$Ñ$$¤¦nÝ××—¹}„ß½÷áæÆ..ìôòbÐøñ¼6eÊ--ÓH’DXXÇçøñã5Š,44­VËálj‹‹«iV±uëVdY®SG}«RÓ¦MyçW˜3g ˜ÍN¨T9‘ŽcµXãGRRb`Û¶m ://¯švšjµšƒc1™\Ÿ£u-¯º;»d:tx'''._ÎDçk2„BxRR’Eii)666³|ù׬^½†£GbkkÃÀOqÿý÷cggGvvåå>Ê÷”F®†ÝY)lŸäèÈkO>I÷ZÓŽxåÕWy`ôhΟ?­­-aaa7ÝÿþŸ ŠŠ :uê„N§ãǬáÍaÆDFF6l W¯^DEEáëëKçÎoùÏÖÖ–>xôôg8yrz½’TŠ$%#ËaŠÂ­ñç)-µ%&&†ž={R“S¬F–ge™q5 SõHRýûwÁÆÆ†‚‚ÊÊ´\;ŽØžüü t:] ï|ôÑd–ìµ=NHˆšiÓfàçç‹››Ì̪:§$•Ò¸±SܵF£á‰'ž¨ ÷¥§«xáxè! ´B­˜ÍF@… O®pž*¨&JS©8.¬7ìâârÛÞ?WWW-ZtÝãžžžÌ™3ç¶åMÞ~ûmºuëÆ©S§$‰ƒebb²\-g À à,ÙÙ:ž}öEºwïȸqO“šz‘²²2–/_IUU+,É£Šsâ”`g—ʳÏN¡]»vȲL` 'ii…Q»Ë›[Ûš5kR‡7{ôèA=0™LuÒ‡ÖÖÖÊûê±±žä¢¥S &€\IÂÑË‹…\/ŽF«Õþ¥Ãþ6…Îÿ8ÙØØÐ«W/ºté‚Ñh¤²²’ãÇOsìØ „Ã’»Ü¡(èÞ$'K\¼xž˜˜—ÑhTèõ6èõTT8(¡ïÁJ 1 KN>›W_]L`` ÷ß?Šo¿ý™ÌÌÈr%ŸŠÍž{ni½ˆÿ«ë¨…tïÞ oï•\¾œ©„½Ú³— 4˜ TØõ JEЀŒŸ0áoEß¡¿ŽZ·nMË–-ÑëõF¬¬¬X°`f³¿"zö)w{yyÖäåsæÌû¸¹9Q^®Ád2RR¢Ã’ l¦ËdåœbFŽ|Ž>}úÔ@aa-ÈÍÆdê­D¨ŠÐj3f̈zÛeªT–v›ß0b¨TîôìÙ‚’ÂA NtÅpK 7æÝ)Snd{‡þYòòòâ‘G©éOŘ1/RU•­®O(ÎKwŒF/bcu?¾ƒ·PY)a4j))¹„,ÇR½ã‚zÐѬ™ãÆÃÚÚ³ÙÌøñc™5ë[ GEæéQ©ŽÐ²¥C† ¹n4¡6¹»»Fll£7ˆ@ ña'—èƒÀ H“$Ž[[3áÕWéÑ£ÇmÙcå_«ÐkÂÓVVXYYaooÏ矄 /‘”´‘ÊÊ…9û+Êׄ,«ÉÎ6cÉEz(Ê; bÒKnF©hµÛë”QµiÓ†+>ç£>"%ef³ÀÝ݆±c§Ð·oßk,Ê«Éh4Íæ±·’‘X… °%Orb“½7''œÝÜèÞ£S_½ÁÞÊwèÖ'µZ]ãOœ8œœl6nÜBQX**îç7pš‘âbÅŰä1ËMŠ'ÑÐagA@@`éááÁW_}Á+¯¼ÊÉ“‘èt*ÞóÏ>sÝʇ¸8øõWøôS™ÒÒ ¬Y½³¾ít†Ë€z8`UI’» Žø5n̲3èׯß|“$I5iºaÆòúëGX±âÿÈζÃl¾Ü£D„@ˆ"ªªŒ¤¤x+òTD`jaÉ7ÆRA±›öí›×Tý¨Õj^xáyT*¿ü²–‚‚8¬­>|øáØÛÛÿîàªÜÜ\6nØÀå‹)hS0H?@rs̲#ñ+2ìqutÄ«Q#¦Œû§A¶wú-B;wæûï¿eÏž½|òɧ¤¦Ö®i¬T° ¿•©`ÉíìÃqÆ‚ã=‚FSyGNëÖ­‰'99™3gÎpâÄ Îœ9C›6m3f žžžckk[gÜæ–-[˜>y2.ø Á%ÀcxFI…ÎÖ;ggºtëÆ[ÿùOƒÈÚK—.±}Û6ŠŠŠpuuåž{î¡IÓ¦w¤Ô-LMš4aîܹôí»uëÖ²m[.Ô) 9­D“BžµÃ’—<Qá«ððI$)÷š& ÞÞÞ|óÍל:uŠÌÌLbcc)))áý÷ßÇ××—|öíÛSRR€ÙìÊ¢EjFŒ‡3¼üÒTò÷ìÁ]\eç à<E;œ\] `êÔ©5‘ú¨  €={öp19kº÷èAÇŽo‰Á+wèúÊ}Ú´7éÖ­Û¶måÛo3¨ªò«õ‰j@q—Zª¥#°]‘¥Õ5‰@ju‹:ë;;;3eÊk 6”¤¤$âããIKKã³Ï>ÃÙÙ™0dÈ :WW×:Ý1ßž6ƒ«W£ñ¨Â0H`u¶?)Û‚BR[£vtÄÙÓ“ÇŸx‚'Ÿ|òºÍ›ŒF#$îÈdY¦eHƒï¾û¶Àý+ºJ¥¢]»v´mÛ–˜˜C¤¦^©uÔ¤¼ù œa P<¡µX2…:  ®Š”””kæûøø`ccÃgŸ-!*êååMƒÃ6mÚŠF£¢¸¸­VËÈ‘#yá…0,œ;—ÀôtBX,°£pÅ„0Ê2çòòˆÍËcwz:v¶¶Ìœ5«Þè±±±Ì˜1ƒ¬Ã‡±Ó騴µeí/¿°`Ñ":vìxG:ÝÂäããøqO¡V«Ù±c>²\»æ¶Hñˆª P­"4‹€Í ¯r*+ dee_²··§S§NìÝÍÏ?o%;»1àˆZ½—;wáïï¯T{HhþŸ½3«ªÞþÿkŸ3È (*Š) ŠbΚsjiju-µÔÔn73m°l²IK®™7˲¼•š9Ï38 8""*¨Ìó<Îüùý±7jÓýu¿)—õ<<aÃY{­Ïz¯÷z/Í“˜ÍO²`‰U«ÖRÍ«•½]JS¦B'[“ŽJ‚?¡øeû:‡Ð`,–3µ}ñ¼¼<Šѵkù1ত¼Z‰>äæÂºu0;W‘×îÉ)*,·úfÍ‘ÃMR/\ °  ^B¯®®æø‰4ÍËç>ë„êõœŒ¥¨¨è¶äÑÆ„~‡˜ÅbEVèj"‚.@H•/¯ì›³’b+€±Üè«ß0{{{²²²øä“OÙ»÷z½@§“HOOW*¦›­f³Æ\ÉÏw@§sÀÑÃK¹¹µ"ÙJØ®1=2ýÉ_ù÷v;¯ ¶ÊÊ[¦Õ€TYù«ÒvçTèBl6%8–(i4Ð#I1‘HHR¥RÉÝò:5þ±lÙ2Ö¬ù‰ââjÔjÐë‹õ®[ž¡„2_ùž`àC||ú÷æpt4 ^Uõä[QüÕ¹èz³VVVb2q½o:óÇuÔí¯1ùh§Ä7³âŸ@’tÈD;Tªjl6wŇëzŠ@§s@Q«™””‰`ggUd‘¥Ûø¦ªN씀@ΦÇ:0‘,h•z8ŽÜ­Ûõ.Tžé$ß`òW½\`¡¬¬ ê¯ò’ß,¬¨¨·âN4ÕÝèLf³™£G2eÊt:wîÀÃùâ‹üá×2d0M† Uv…­ ¡7ô¬¦íoVïyCG~ S§Åikú™fà2Í›»Ä»ï¾ÏÒ¥»¹p¡7×® çâÅÞTVú «Z—*®$”ƒÁEä)òuJÀÌF¥2ÐŒw>ø€‹þþ×hh‚Ü HVξÈë¬JýTäíMDDÄ-[ã¼¼¼p ¢ø¦ßµÐ4oŽ#+þ¿ZY§§§óꫯѭ[?""ú0oÞ«¤¤¤(Aê÷[Ë–- Ñ!IYÌ#A’4ôíÎÎ_qìØ:ž~zMµ’ðkªób|} ïÌO?ýļysòdk®^Æ•+ÉÈh¥Tõyu¤ YšÓ¬Àšk\+iÚÔ—I“'ã9hû»ˆLÅ+U¾.*¸S pY¥bÈðá·ø¦~\§¾w²–{x#¿ã¿jEEE|ýõ7 4’ðð^Lš4•C‡¢0›Íèu|}}éÐ!X9µº#+È9ãä¤eÆåœ>½‘+ÞG§3×Áå¨Ñ\fôè¡ÄÆÆòüó¯°s§•ääá\½:œÄÄ0„0g_Dñ–kŠ¿žGæ2Å‚g ùÒÔ{£|'rLåB©$Q®xnž;¯!'ù C’hÙ£G½•¾ k´mÛ–l­¶vŠqJW©hÞ²å½:õ®­Ð£¢¢™>}ii.!o!;vì#Î;ÏçŸ/ýC:å=4†õë7°wïL¦Ö`Ô Š/!Ü;ŒÐÁÁ|“ó Ç3yÖßøìÝïHK+¢F߸E‹ ,x‰²²2~þù KŸ:¼=B A’V!I»‘YÉ`³]Q’y¨IÛnNhhGzô¸Çï¾cã¦MÄÅÅ‘Ãa¥‚©©ÑB€(•ŠÞÒ·oß[F/Ú´iÃȉÙøñǘªªp‚ I"ÎÁ‡ÇŽý·•5Úo[rr2³gÏeÏžLl¶ @âüùÝœ>}Ž¥K?¢}ûö¿ûµ:uêÄ”)²páJŠ‹ ‘$g„(¡E‹,f̘Ï!CP«Õ888põê|<„ÕÚ 0áä”ÊäÉrï½Ýyüñ‰Ý‘¹ ·’îE’ò‘¤$9b³å 3ÿ¡TèûTªbÆ[J§NXúùç|»j'OBœ:ÅÙ²2.Q³CIæ€ÞLJO?}Ëï¤Õjynî\^¼t U~>~Ê1"Q­¦U¯^ býè\-Xð._}µƒ!ðåüù+ìßÿ4ß|óÉ’ÝU«Õ¼þúË<óÌ<®^=Œ$ù#„gçkLš4šÑ£G#I¡¡¡>|ŒÍ›QYh°³Ë¤wo?¦N}’õë×sáÈýõšÃ_ ;’t°!I¾QŠç •œè].AÿBútdA¿¸ßçΚΑ;v ÇǹšM±’ T©HvwçݱcoIèvvv 6Œ}»v{ä­­VT@¶JEYÛ¶Œ7®1¡ÿ7 žE‹>"5ÕYïZ^»g±²zõ6ž|rÒÚ åääÄ?ÿù1ë×¯çØ±S F""3nÜXZßÓšƒ©Y¿šjm5c_ŒHd¦åмù½ 2˜^½zqâÄ ­Ô_7 àˆ£c3úöm‰N§%##“³g ±ÙîS¼¤¸›þþ6š¡V«é?`z½ž ññ8*`•N9m×€NtëÖí¶ \...Ìœ9~Z¹’ÒìlÜxbòdžxòÉÿh5n£ý¶™L&6oÞLTT6Û`¨«5˜£G°iÓ&Zµjõ«»Îëy£#Ó¦M# € 6S\\A³fþµš5lð°°0>ùd [·n%!á":Ž>}eÔ¨Q”””PZZ‚¬Ÿ]¯A’<éÑËÀ@7 Š9qâUU£G”*¨+àŠ{èÖ­kíañÉ)SHHHÀf³Š<(W¤ø§E©Ö»õìù‹½Æ¡C‡Rºx1k¾ý–è3gpòð Ç°aLŸ9óŽ˜w³%$$ðõ×0+G/ 0“›{Š>ø˜¾}ûþ¡ØÐ¯_?V¬X¦M›¹xñ*^^î 0‹±cÇÖööö|øáBúöÝNlìI #ááý9r$þþþ¤¤¤"IÞqó¸bmÛúÓ¹se\»vM‰ùCe|Ò© ú§£R[é#úÒ¢I Ôj5›0üü|¢¢¢ðSpƒJd"qµRç{Ò-2ò¶Óí;tàÝ… Y¾l'öîÅf±Ð&2’÷gϦoß¾wüg|×%ôœœ¯"vjœ@B_,>ü‡Wb¶lْٳgóÔSU!ppp@§Ó!I´{€>-ú°.aßœû†.÷vaÎŒçhïÛgGg$IR[z ¯ ñxzj˜9s}úôaåÊ•œ>½¹g/Õù:pñâV¢££ñ÷÷çĉ¼5ožW®Ð yº³‡ò,2eÉäëËСCñwòóóãÙgŸåñÇÇl6£ÕjëÍm6ÚŸoÄÇÇS]ÝŠ›‰&SKââ⩨¨øÝ äÙÜñãÇ3lØ0, Z­—z¨ŒJ¥¢}ûöc0$ GGGÔj5ƒµZƒÜ°q«ç›B”3jÔcÌœ9ƒãÇ3uj UUÓ2E9:#Ä)V­ZÅÛo¿ÕjåïÓ§Szô(¡f3)J3 ¹’Ìó€GG=úÙÀvvvümÂî1½^F­ÆÅU–žmhBw’ÅÄÄ`4º#D@ø£EˆP®^ÝNZZÚÒ,·³³£ÿþDFFb0Ðh4899Ý‚úúúòÄOðè£b³ÙÐétØÙÙ¡×ëÑj5Q¦xO])"44”… ßÇ`0ðôÓ³IOwÇfsç èw\,ضÜ˱’c$M&00eK—²îÓO‰¬¨¨ìÛ!OcTGÕjÂ""~Q½P­VÙ½;÷´oOEEBqww¿-_©1¡ÿÿ^°F£pnÞ‡+ëûм¼–J? „6²Ò¡ž#GÓ²e99Vl¶ ï5ȩ㛩è(¢kU»6lÀÅÇOƒ¡¶Û9@ñË4à’$ñÕ'Ÿ0tèP¼¼¼â³¾}ûâàðz}BÔ „f$é¡¡!ê(«^¯'&&†óç/ „^½zQ{à´X,,^ü1‰‰Väþy2¥Rä#D)))¤¦¦’ŸŸ——+’]¢g ¸—ÂÁPªEG]„ØAEJ nB AÓõTÍ  N˜À‹/½Dˬ–©Ù¼y3Û·o'%%NÇ Aƒ˜0aM›6­eì.[¶Œ³gÏâççÇSO=u["Öÿ•ÉdŒWHJšÎÕ«»±XQ«+ppHaöìiÚ «‚ýû0{ö‹de Ìf;œ«èÝ»=¯¿1Ÿ®ùÝØ¹›ÚTvs‡ØP¨ q ™Lä „‘™YͳϾ„ƒÌU•˜«J؆ à‚Š\¹HO’€Ýññô¼ï> ÊØ’¤ÔTM½$JïÞ½±ÙlØl¶»úOíÚµküøãœ8q½^O‹-xî¹ç C¥R¡×ëÙ¸q#ëׯÇd21bÄ{ì1<<<þ’ëÕjµŒ?ž˜˜lß¾ƒ¡×2$”‡ÿ§H› !HJJbÞ¼W9zô••ÎØÛWóÕW«xç7Ðjµœ?Olì NÊGˆ!È,Œlï©@¦VÂâÅ_ðí·?PQñ$ÅùQñ6š-(Àžóô¢Œ–Àõë×Q99¡×hf3’rtí¤¼zž“<ðZ­«ÕÚ ߪ««Ù¸q#{÷î%==wwwFŒÁøñãqssCArr2‹-"---Z0wî\Ú·oÿ—ÅÎ6m‚™7ïi–,YIee:V«+Zm&ÍšxóÍE¨ôkf0xíµ×Y·n'ee€„·÷×<óÌTúõëË‘#GHOÏà矷£•´Ûy†çŠRì´bÏžx.\ÕTM…¡Ñ£´°£;f¡&—î€ENŸ:…ÆÙ“"[l‡LŸóŠ\]éß¿?µ-È™ÐÏ;GçΙ1c¥¥¥|úé§$%%±xñbJKK™3g>>>,Z´ˆ˜˜f̘Á¦M›þÒý°ìØñ3«Wÿ›¸¸sxz¶â¡‡æ2hР?-ˆddd0}ú,ÒÓÛ!DG@Muu%›6ídçΘL¾H’ ¶&ÞÐ?Æþñ÷•d¨ê Tì:,YY‰Ø³›§©Ä ìÂH{ðCФ÷.KM<==n>Œgi)5;·ò€‹vv”ÅÅñä„ 4ñña̸q 0 Á‰’““1™LÌ;öïßÏäÉ“ùꫯèÞ½;k×®åË/¿ä…^ÀÃÃŋ“——Ç+¯¼ò—ÿš5óçÛo¿æ»ïVsðàA„Üwß³Lœ8ñO«ÎKJJX¸ð¶lICˆ1€ƒ ..†‡$5Åfk‚$ٰي€ ÈÒ<äy‰)Ô8‹‹‹(+ÎBGWFó)äp޼‰Å‰ŽZ*G•“?ò_Ÿ”D°4‹€ó’„cÓ¦<:z4NnnôìÓ‡G}??¿é›ƒ+W®Ð¯_?:wîLjj*}ô,X°€ääd¦NÊàÁƒ™9s&{öìáÉ'ŸdíÚµ´jÕê/‚Ü5¼øâ\ºu‹àçŸ7’ŸŸK§N#˜4i"ÁÁÁÚû¬^½šO>ÙŒP"› ªê*/½ô’ô!à‹j„Ð ‹Îô§f?ºœàÛUUÕ$'ï£}ízÚ¸Þ w˜q)8D%YG(5}µ$Ñ3<???.¬[‡½ÙŒrãè¼$‘¯RñÝ7ßðãªU„EFòðÃÓ!4ô?j3ÜÑ ý•W^©=™ !(..fÉ’%TVVGNN‹-¢M›6tìØ‘ãÇóÝwßñ[{Ôÿ›&I­Zµâ­·ÞüÍ <ÿ©8p€âb5B„rCsHž£4;}dff¡¶‡v§ ÃqhQgÛ@¦Vió«€v˜9K*•„}€íj‰jFÒ.£Ægøðá\5‹Ÿÿõ/.`r4,f3n. ¹plIâõ}ûxjþ|¦OŸþ§®ï$»ï¾û2dH- Æúõë‰%22’ÿûߌ;–‡zI’(++ãÓO?åÉ'ŸüË‚&Èìô§ŸžÉÌ™3jýõÏ´¬¬,ŽW ÊÄPyS`0ðTd_k£¦J…Þ±N+ )VFÓ”Sp/df й™ I4 gÔàѤ Ÿ¾û.ÉIIè„ O’(U©hsý:ºëשVlÙÂ¥ÄDÞ_´¨AöÉÝÝÝ™?~m/6<<œëׯ³aÃÞzë-8Àܹsqrr¢cÇŽÍ ¹V'jÁÐ âS M@—r —+àDw08$tµ4£ T¹G’HduîJŽ>ýûãååÅœ9s2dgΜ!//~ø¾éé„(ý!«\ÊÏçë?fäÈ‘iûoÙÍð´Ñh¤²²GGG ÉÏϯ…ßAÞT¦×ë)))¹#®ÿ¿å›ƒ‘âb#BÔ%öØ…bz 7iPŽŠÁÈëqC ¾îuÎ8²5•4ZHg€|!ðDžáÍÕj™JÓ¦Myä‘G %..ŽÜÜ\vîØ1&†~Bà¤ÔZí„`ǦMìèÝ›I“'78ß”$©±ÊjµRZZŠ££#F£¼°©C‡µqpp¨ÝÀØc§Åb¡¸¸!ê¶>-ȃcÍ•èWó¾^Èr°‡•ôìZ?ÞJ:gb×ÞJ×½Ð<t¾‘$*„ ™zœ.­Ú´¡mÛ¶ØÛÛ³tùrNœ8Azz:§NB¿m÷ëõ¸)ïÜÆj%êôiV~õŸ/_Þ &+êyÕÉ“'YµjS¦LÁÕÕ•¢¢"ÜÝÝëõ|||¨ü 넃C òTm™•?ÙÍý ØtPRU°¹xåÁã?@ûËàD>5úlVÀ¬R!)7µy^2Â`àù™3IJJÂÍÍ^½z1kÖ,zö쉛$5uBuKÀ–Fbb" ÝJKKyùå—iÛ¶-£G¦¨¨I’êÍá;88`ooOiiiƒþ[xxxЮ’TÀ ƲEñOçÛÜâÎÈÒ/¹JrWä+là„ZúΠEÖi7&I’ŽJÍ4ÐdbÃW_±níZT*ááá<ñÄ<óÌ3òó ¶Ùjõ$%47+*âDll­–|C5›ÍÆöíÛÙ³gÏ?ÿŒÉdCæO#³3}ö¨TçñõUSQ‘LQÜxì²»âj·€ ülS¡·Ùð¼ç\RSiª×׃HÔ€ÉÄåË—ë]S‡pöóãJZ•Ÿ K’pjÙ’6"¡å¿aZ­??¿zÁé÷ú…Åbá³Ï>#::šùóç+§Y¬B’$²³³k[QQÕjýE’ O=ÿ¬IJw“edd°|ùrÎ;‡‡•êÅÅ<<œèß;vÁhÔ"ËiT#ëa[ûíV<=ËQ«SÉÊJ@ÊÖÒ¤¥ ²w9Qm@s Tj\œJI©ç›5K0/]¾Œ©N…iggǽrìâEZ"³Ýk޹Mš0¥k×;>©»»»×ó‹´´´ßýÜØØX^{í5†ÊSO=…³³3‹ooo’’’°Ùlµ¿ff&>>>·eX;88Ô»''§»Ž‰]\\̆ 8|ø(Z­‰¦M“(.¾ˆV«¡gÏPRR®síÚAd*[ÍÞ«@?Àgçxš65™yS¥„æè8lÅÿàŒ˜ÆE)‡ µš nÝÈ;~œ›õ1=©ªŠ´´´Ú„.I={õâÀš5”—•ÕJ~€ë@ŸßÐJ¸L§ÓP/ÿZ§9wîóæÍ#00W^y'''ôz=„††òõ×_söìYúôéCvv6û÷ïçÙgŸ½mßÁÎÎŽ®]»ÞÕÐÙ²eŸ³`Á§TU`µ:!Iî4kfä‡>'88ïE†A IDAT˜9s^ÄlND^ज6;),–jÒÒ$tøco{„ ¼”9d0bÒ$îíу€À@"""?r$e±±ˆ:P (U« ½iyJ@@o¼ù&ÏϘAvv6~ …*EÍ›3gþ|š·hqGÿ]n™Šø=•Gee%Ÿ}ö[¶laáÂ…tïÞêêj4 ŽŽŽôíÛ—]»vÑ«W/´Z-‡"((è««ààà»Ö?m6QQQ<ûì \½ªÂlöF¥òÁÉ)ƒwÞùS§NåÓO—b2í¢‘WQ¸(ÕúƒÈm¢jrsMh)¦½­š&åzÈŽ >qÖ„k½®ñhûÇ(ˆÎçäÒ¯±™,µI]’„W@š:‰ÆÎÎŽiÓ§såòev>Lkƒj ÕÍÁ<ÂØqãîø¿m³fÍhVçžËÌÌäÚµk¿ú«ÕJtt4¯½ö÷ÝwÏ<ó Z­½^££#Ý»wgëÖ­\¹r…æÍ›“ššJBBï½÷Þmc§‹‹Ë];³³³™6m&&a6Í‘¤dFŒèβeÿäèÑ£¼ðÂ@<ògäe»52´ÉTVZÑë ñ·•,Yyÿ&CÕ]»½Lz†Aƒ:QUUÅĨ4›ëmR«¬:ÞÞõ7Ž7ŽãÇŽ±síZZ”•á ×u:üz÷æÏ=wÇ÷Ï ½%ÏþbBï½÷8wî~~~,Y²¤ö¼úê«tìØ‘Ç{ŒeË–±gÏ233iß¾==ô Ñ®^½Ê;ï|Jyyoe¹„&23±t鿘4éoDG§"D7%h½;9ÕÈJqÎØl£Ðs¾œa¼ØMRµ`ÿæÍ¼ñÖ[µâ ›2…O.^Ä£²’@¥†º&I亻ӱS'ŠŠŠhÒ¤ ’$!IÆ ÃþÛoÙ²y3¹yy„zzòàƒÒ¯_¿;S¹gÏ–.]JHHûöícß¾}€,1räHžyæÞxã ^~ùeÉÌÌdÖ¬Y·ÜÔ ÁòòòX¶ì_\ºäª0…%¬V(/¿Ìš5[iÝ:˜~Ø€=¹ÁŒLD’E;r±Ù†c$ÑtÃF˜ÁÄÁSטöðS4íåËʸ•¤º¦’ÓÅÄÓ•´²´È”¦D{{FtéBIII=)Ì:°ôóÏY·v-q³³ãÁîÝ™8qâo*ˆÝ­&.$==’’Þ{ï=eS«Y¸p!ýúõcìØ±Ì›7Ö­[sýúuFŒñ§ _ÝIöÍ7«Ø½û*BÜÏvä=lÛ¶¡C·s‚œœVÈ­!#ÐE)‚´È-ÌSѫ՛\vò eDŠ2X”ÙšÌÌI‚FSF§9»w/Ýl6\‘…Šc¿-puu¥ºº‡Ú wчòCX±'N`4™x¸}{~ä‘?uTïN1Í´iÓw›S´:ŽÉ“'FVV®®®„‡‡7È)€èèhôzg„¨;:a‡í‰ÝJÛ¶-©®öPê•& x³W9iVPÓG—)nm°°6|XÊÊXµjÓ¦MÃÏϱcÇ’–’Âú/¿ädq1Väq![u5Ë–-cÆ Lž4‰‡ÆŽ­½¾лwoªªªpttüSDJîdëØ±#Ÿ}ö‹åÄ ]»v|ðÁ$&&bµZiÓ¦ !!! Rl'==ƒsçj“u«Šæ$%]dÛ¶mèõ¹õs ¹›vP#åuªòÈZàF>ñS„/àXZÊö­;x=ìu–[ʦ˛ø\µŒ½UøÄ 4Åò³Ë…`×Μ‹cÔ¨QLœ4©–”Ì«óçSQQF£ÁÁÁ¡Aë²;991{öl***êý¼Æ÷œœœxî¹çèÑ£%%%Œ5ŠÈÈȹKAÁÖ­»¢õ¹EÞ@V¯þ«Õy¢"Q)€."s;´ÈD8o%ÉÛaÁʈ)à²ùmöî %((€3\xù7xÏba{t4öf3U’D®ø_¿Î?þñ:´oÏüùó lÞ¼ý˜1c“&MÂb±àììÜ`¹4¿µ2ÏÑÑ‘ž={ò¿`rŸBK}ò¿lèõÕlݺGw\•Ç P‚fò([ 0»û1qxà4`´ZYñá‡lüáž}ñE&MžÌü×_gÂãŲ¥K HJ¢WU§Nq]’xáèQt >¼68jµÚ»²÷ûŸXÛ¶mq‰BM5Ü OÚ·ƒxÍfA}Z$€³ÙÄþýQ”—W'‘×óåÆîèŽ@_åà©ÔX°# ™ýQdîÝËßNžä¡Ç繞çÁ§äµ6¯q¤Û4Ô°/‹1UFš^¾Lá•+üëäI ˜÷ꫵUxöÿ‚988ü¦ü²‹‹Kƒ­ÈoFnŒòÖ˜ !l$&^A-Bd!sÓ½‘Éq»âÂwöé”xkG1²q*`o:I^òLÞ~sM›3n\wV¯[ÇùóçY·n[¾ÿž~z=ÒÒЧ¥q66–iW¯²úÇiÚ´i­oþ/l™TÑhµvï½÷bo_‚<>QÊ,¢±Z=ÉÌl‡LèÐ)aðœR© åôéŽÜO¯6áL%Ç‘ùÅÓ'«ªh›œÌ[³fqôèQéС~~~˜’“‚ÌÜlt‚ŽÅÅ|úÉ'”——Ë·‡Í†Á`hðc@v«ùûûÑ¡CS$)­Žo ä6Oùùm±Xz)>hFæk_ @¦´Õi2°£€sJ Ì0œ—Çöý‹ŸŸÎoú†¹=æRPó0+Ú–àhÁBгªŠ +W’ššZ{F£ñfw£5|“$‰ûîë‹$%+±J.SQBeewäöJ©ÎË‘9H.J!T“ÌóÈ!_‰¼ÿV&[vѺü=æÌÊáØ1»{zõêEAv6ªª¸WÜ‘#CÌf²NŸfýO?Õ^£ÙlÆh4Ö›Øjz£;Þ°.]º0iÒhV¬ØÅÒNU»¬8çp%Õ¢T<[•„î‚ÌéÝ Dž_ˆŽXVZ)gКºê!È7øö›o0`gÏžÅK’p»ÉÙÚ{óòÈÊÊ"%%…ïÿýo qqqáÁdàÀ Z˽ÑnX@@“'?N|üÛäç°Ù¼¨òp¿âw*%™»G”C§ Y+ðÊQs°à†Üª!5:ëõÙ³‡I“'L‹êøî·ÇÃ÷¿lè~š” ¬ùù¤§§ãêêÊOëÖq11FC{ïeô˜1™¦~£ýßÛôéS9|øqqû¢5r;ò,pлN퀼Ÿ/¹utBIÝM•„~Š)W¼º©ò,7lôe#ß—ñæ› øì35ÁÁV.Ÿ>M—›p+-àSQÁ¥K—¨ªªbëÖ­øàc®\IÀl®$/Ï‹¥e€©îA«gäÈžœŽ¥('D>´xùzÓ)¬+ qqxäåÕI%ähbF•JoØÑÁUµŽÈ¹'#aãCpO,˜®ITVU2í‰'ȉÅO¯ÇY¿žS'OòÑ'ŸÔ’“­a[»víXµj9_}µŠ}û£×WQX(a0´¥>ì´`Ð òrr¸zñ"*NbA‹£›;aáí(É·'÷òe¼n*p\1á£ù–ââ!|ðÁÞ~]]1åäÔ{œŒj5‹…÷Þy‡M«Vá_P€½œspàø±c,þøã»Rƒâ·ìº¼BP]]]oÆÏËË‹§ŸžÉÑ£ûIL<ɘ1p{n¬{̓ ¢»uvÖ*Þ[´ˆñ&GýÍí6 W’hÓ¦Mmu=à¾ûÈÖh¸¨ÔS6¥¶: جV¶mÜH“³gf±Ð d³ž’—K—×M¨Fôz}­š•N§cÀ€ìÞ½””x,˜VkÇ­û­ÁjµpúÈÚääð¬ÌÅÌxô¨ 2ùÛßþÆ}„ÁÅãM° ðhÞge‘L§NpiÖŒ8 xdƒ›!ôDEBÉ£.|{ðrâþª*z Ao!TZÊŽ/¿d÷îÝb5‹ÅBUUU-aU¥RƲeŸråÊY6oþ??ß_м‰Auå 3€°2ÍôE´ iˆmÛй¹ÕhÆÕZ`t42k–› >üPK·ûFÌ >• ¤:9‘—ŸÏÖU«˜ŸO_!ïÎx°ºš‚ýûYñÅ·+ô»8‘§§§³iÓ&®\¹‚Z­¦[·Hx`T=˜ÐÁÁ.]ºàèCUU»:Uº ‰8ÊJЉ¼ â4ãéÈ:ÇÁ+¹DEE1ö‘GØ¿q#JJQä “%‰4ggÞ˜2¥^à6§÷JÛ!rØ€‚ÔT,YYô§>·¹ŸœLÒ•+wõüj£Ýj50á±cÇ0›Íµd„¿Ñâ&½^½záèøCÝýÖàj[%Î…F"¹!ö TÚl|ûõ×,]¾ÿÈHNGEÑÅjÅY6Þɉ±Ã‡×nI³X,›Mzw”'€gTv,gOË=´ï)0ăƒ¢¸ë…ÜØµ};cÆŒiü@™L&Ž?Ξ={(,,ÄÇLJáÇӽ{÷zH¡¿¿?áá-HMMFˆ¦u¢W.*Ò°×ëéS'¢z÷Z,œØµ‹ÒéÓõ·¿qèË/ÑX­ø"wÜO­;wæá‡{н;Ìš¥ÆlŒ WÒ±WhªDy€}u5±±±´Îϯ‡­ªöBpéüyòóóÿ´ ˆ ýÿ i×B‰7•Ø………̘ñ411TTø!I<<ösæÌi–,YR;¦Ñh9rûö`ûö˜LPãn\Å yH( hÑÂ6tXð±Bjj*Ó§O祅 ùø½÷8™‘$I8ûûóâË/Ó»wïÚë¹pá¾f3=…«¹ÁûüÖhÄd6ߥH€ÊjÅÒH»«ýóf߬ªªâƒ>dåÊŸÈÉñìqpˆáĉã|øá‡„„„Ô>¶mÛ¶Ìž=wÞYŽÅÒ›ÍHÅ‘D<0â]'™×øL3!¸š›‹»»; Þ{fÍâÇS§ÐJ­–G¦McÆŒµÌõ””ªŠŠ¸_Iè¥@ €ž…pô(\º&(ì%¯/¸÷´»"ïÔÐ QOQ®ÑFìܾ};/½ô&ééN˜ÍM°³‹cݺ­|þù† Rû8¦M{’sç^ =}/6[P†–³4¡œ&ÈšêuÍEôYYòÚî_¤Z¯g×úõ¨ª«±¨Õ„öêÅÂ>ÂÍÍŽáý÷aЀ0ÂÅ(Ù@6Ü€P ßdbWn.÷p+ ­„ÅÒàtÜdB·Z­dddpøða’““qvv¦gÏ^DFv«]¸ðöîÍFˆ‘€! ¸¸eË6sß}÷1zôèÚ× à»ï¾áûï¿gË–­\JLÄœ‘Î8!8\£ ÉŒgÏâB& X¥¢›¿?ùùùXm6ú FAa!‘ݺ1zÌt:iii8;;ãí퇇B’ð‚º5Xàìá³·7i/â!*ZÊ•$4mÛÒ¦M›ÆtYII GŽ!..“ÉD¯^½ˆŒŒÄÓÓ!;wîä‹/ÖSP0„fuµ…mÛvÑ¢ÅrÞÿ=œkaΗ^zˆˆÎ|ÿý\¾œHÊÙsŒ@P€,câÆ0‘ò% 7ev<''‡®={⯨ëM˜0æÍ›SQQÁ` Y³f899!ÙÙá‚Lgª Ú,Ý|"¨Þxÿv6Žõ†k­!ì0¤Tk˜´nÝw*üýï/‘Ÿ®¬•–0™×®Åñì³/Y;R«V«¹ÿþûÙ·¯-K–|D||</^¤GyÞÈ:††›’z`ïíN§#=-f-Z0`Ì$•Š1cÆÐ­[7ª««¹~ý:žžžté¢#²Ç>â£gÓŠJ²›šöS¦J…—yF#EeeøÔb«¤VÓ¾cÇ)@ÕàzBÂEæÍ{C‡®a4zÕ~Ïk¯Íâ©§¦a6›9p !ÚßT¿È@Ꮋê%tå÷fΜɌ3xó7Ø»hî xr”iΚr²—±U+¼¼¼xù…HÙ½O!0ÿމáì¹sTS]Q§¿?÷E×®]qlÝšËW¯ÒIùPô@¬JE¯>}|8ÇçìÙ³Œ‰ˆ ‰aÆ#Ïa„*I= 8§ÑðÄý÷³øÃÙ¿z5MÊÊÀy{{r220[,T vtdððáŒ1‚v:púÒ%zZ­8 ƒú—§¶myåµ×XüöÛž;Gp¦àJ[ÈsÐеß0FŽÕø¡ß%f4Y³f ï¿¿œ”BØ£Vo¢_¿µ,_þOBBB8sæ ÅÅf„hË ]Bˆ{ÈÏ¿@\\ýû÷¯÷ºÁÁÁ|ñÅ¿HMMå±Ç#(&ÀYÝí^ÅÓË€8­–ðAƒ8~ü8_/Y‚k^:d9ìÔ¤$š‘—šŠÚÎŽ6íÛóÄ”)<4ƉS'vrÐø"ž$ãÁUrt77æÎ˵ë×9üí·›Lh‘×kY:uâ±Çoz *¡Ûl6þùÏ¥ìߟƒÅ2™³k"33…Å‹—Òµkùùùäåå!ïá½j²Ãhüå9ZI’hL©›ú¢J@²˜ÃZ¬òæ3^~ñEbOž$oÿ~†+;¢mÀ•Ü\üô’DK!($9ÂË|À³¯¾Ê‡¯½FZn..B8†„ðÖ[oѲeKZµlÉÊ+Ⱥv&¾¾¼9q"#FŒøŸKh(¶iÓ&¾þz+zý`”u”•eòÕW{èÔ©aaa9rDI¿Ò-·ªÕjûU˜ÐÇÇ'ŠsrBPŠ,s¹whrp`ü´ixùøðýÐ[¯¯ÝXUb4²uËœ€’„øöäIòòò˜ùôÓ<á›.]ÂYÓÝèëËËóæ1tèPš5cíš5œ:|˜N:'úÍÂ#<ú‹KríγÔÔTÞ}÷3RSƒmµX­DEañâ%,Xð[·nÃj·IvA½M†·óM?__R$‰`!¨DÞ ˜¡”UFI¢óÀ <˜O–,¡K^-x¼ÒjåXl,‡bc$I¨³ÇŽwæ ËV¬`ܸó¬ý)™Íæwð’f“+ðØÔ©Ì˜9“ŠŠ Ö·kÇÎ1UWÚ¥ OMŸN§Z5¨„n6›ùñÇX,øA·°Gˆ23¯0eÊS¤¥åRVV®œ-ȪEn@M ƒMüÕ÷xàصc«7$Qa{œü“ rÉC–ÇL²ÙÈ/(àÜ©St7›k·S«‘II)òÉ@ P ùlÉö>LÏž=Ù¶u+ÙYYt ãþ#j 4ˆ¾ýúa³Ù$ ­VÛ8ƒ~Yyy9‡¢¤¤-PwyL UU¹¬Xñ5II×(-­Dž wA¦>ÊRÃ*ÕUBCïÁÓÓóßÃÛÛ›©sæðùÛoS\^Îd¹£”‰uƒOooÖ¯YC€^O@cƒ'‰<9ì+dýv½ž]«V1lØ0v:ÄöíÛIˆÇÏߟG¦uëÖ¨ÕjºDDŽÅbA’$4Í]±6µÑnXTTiiV%™×4i\±Ùú°sçZΞ=OBB*6›^9&¶Tb§p//G:uêô‹¯ïèèȬçžcúÙ³\HM%Lv+AÞca²Z¹ré–äd‚¹ÑûvV®* ðVdš Á¶øx6mÜÈ_}À#NðæÁ˜-øü->¼+ööö¸ººòì³Ï2sæL9«Õ v÷EƒKèF£³ÙÊ­„F#$$\ÁfsCOå1§”¤Þ­6›!C:Þ·ßl¼¿èCÚoÙJ[S:m9„‚n¼¾¤„oW­ÂXYy‹H§Jùƒ›k¯J¾-Δ–’žžN—.]yñÅ_Dºv{C¶¥*l¬ï›Bh9yò46›+B¸#+h%qÈ[«ááV{ì±_k±··gâĉÄ;FâæÍ„*ä&gÅÏ€mëÖ‘™—GÇÛ`v ’dU*#W@WRBzz:dJÉŒ›}S£Ñ4ê!ÜÅVUU¥|ê·VßyyääT)žÔD9"^WŽîx{çð ³jeVÉúöíËÔ¿ÿO_z‰påÈZslme³±#)‰²²2„Ét|J:ß·0™8þ<:Žûï@P¼ðB ññ0|øçþÒú†h ªÄsrr¢C‡HR]éV€J„ÈÄj5(É|(0 ܃Nw„I“ºóÏ.ùÍ1†ääd–,>€ÊÒ‡æ|‡ÓMÓ’îV+£•½=7/`,C^ÀRwˆÃH*Õïà°Ùl”••QTTÔ š Ù\]] j‰]êM¾iDˆl¬V rþí§øåH¥fN¢GŸþ)={öøÕ÷¨¬¬dåÊ•ÄÅÅá}‰Kg!Ⱦv {''²‘y5f’”š«æÈaC^7ô{­TWW“ŸŸß(ÿzZXXju©‚åÔµkJ¬ÈlŒß”Ó®]‹¿Ìĉ¿ŽlZ­V6oÞÌ–-[päV†»`)*"3#ƒLI¢î„¸ yÂÂþ¦R­ú¦"'$æÌÝ»aË–ú¯o2™(((@¯×7&ô»æ—Q©xõÕ¹4mšŒJuZqÎtº=7QjŽpdÅ_2ÔÞ! ¡uëÖ¿¸®_¿ÎÜ9ï²j¥?.¶µè‰ÁZ'8[XÈN­ÆÎޞÒD ò\d °z÷VpJdáCŸfÍ~‘­nµZ1 $$$ðè¸qD´kG÷5t(‡þÕ¾U]«Ñ©ªªúÝÏi´?Ï´Z-O<1™ðp{TªJˆ*@­Ž&  äu’­” ÝY63ºwüÕ ØjµòîÛoóÝ;ïàœ’B~$¨&(%-[·&I¥br3 yFò&+2806kFPPÐmï !&“‰´´4Þ˜?ŸÈŽéÙ±#}##YñÅ(xšL&ªªª0 ^oûN4Yöz :]4²4K’t7·“xy5AÖaï¤ÔÔ:äÝ~8;;Ó¹sç_]“k³ÙØðóÏÌŸ=ML Fd˜½~ÉéUU8»¸ óð`#pE)€N! Ŷ¬ƒpæÕjúõï_ë›j5 /¾ GŽX©¨¨`õêÕôŠˆ Gh(CBxmþ|222~·ŸY­Vªªªê‰<Ý©¦BMrr2¹¹¹¸¸¸Ð³gÏzÐÞÕ«W‰‹‹Ãl6ãïïOÏž=ïÈ>„$IŒý Z­†ü‘¬¬Ó8:ꈌ¼Ÿððp&L˜‹7;ž«Õí7“œÍf#:ú8‡ö4ÅËbG/–‹'ä>¥EIÚ—·¢"ú V+¯_'Z ’*åHqTù7H—$Þ3†ÊÊJ\]]kûâ6›K—.qøða²³³ÙøóÏ”D?›ÿÇÞyD]ÿüqîØDQPDÄ…÷ÖÌm¦–e¦¥f–3¿¹Ê‘m3µ4M[–Š[+#æÀ‘X ²d*{ÇÁÝ}~ÜI¢(–’Øïóü îóù¼?Ÿ{^÷ÚøšÍÜ´4>þâ zõêuOE¤¤¤„s¡¡„œ<‰J¥¢qãÆ 0€6mÛÖ{FSYYIXXÙÙÙѹsçjØ ¹|ù27nÜÀÆÆ†¶mÛÒ°aÃz9ºÓÏÏ-[6òᇑ”… èñókI`àdÖ­[GD„=ÕáRÀ†òòÚ-Þ«W¯²wÛ6ú–—cfTÏ-ø+Ãý H$(LMéÜ¥ .\ F§A@gT#B g)+•2¬{wÐjµU … dddpöìY’’’8uêáGÒ]§Ã¸ž“û¯¿Ž^¯gú+¯Ôú..\¸@HH™™™ØÚÚÒ§wo:uî\¯g© ‚@NN±±±deeabbB·nݪ•B¥¦¦Fyy9...ÖÛ$V;;;V¬XF“&[c¤Õ¸¸81zôr~øáŽ-áÎp‘%åå‚1”twäää°w÷nï<ggkï¹nqq1×ããiŽ!£“Q¹ø¹\ÎñãÇyûí·  m=µð$ ŽŽŽØÛÛÌo,%6ÖAhgÔ-Œ¯¶™ìôï߯Ö5­­e¸K¾¢±pS#ó²ö=0LG3J“GŽð£Tе•M}|ôÄ8::òí–-ü j5J• —'P_~ù2‹–.eݧŸ"?}šÁz=r£ ôk{ãÏÊMH¸r…²²²» ô¸¸86}ð~ééx]þŽÐsçXýñÇ|±iS½žaíääÄwß}À„ ª‹ŠŠ"88˜U«VÑ¥K’““yã7ؾ};oÜ%¹°>ÀÒÒ’-ZPXXÈÀC‰ˆ(G£éd|»€1„MÆE<÷ܳµ®immV"¡ÂhÍ4ÂÿC‡…@ãçð{R_ý5­üüpnØ€Ž ä§C‡8´kê’LÔj\Ôj|¢£1‹Ž&ÄÄ„°‹ùhÍ‚vî$æÀúVVbetç'!€§ÑÂ÷.å员˜xW^TTÄŠå˱‹Š¢ƒñ·£Õë‰IJâ“eËèׯ_½Š%•J}šqÔ²1Ì.ÿCCÙ›-n':…^Z­F§ÓñÄSOqö‹/pÕ2åóT B&cˆ±-á±ë×é¢Raiæ­­éÑ«mÛµ£W¯^ôêÕ«Ö›öíÛ3æõ×9¸a­Š‹±HH²<=ù`ΜZC ÎÎÎ̘1ã—ÞƒÂÛÛ›O?ý”õë×sðàA|||èܹs5ÅáVLœ8‘#FÔú?~,?ÿü†È3@>¦¦1<óÌôjç^¿~U+V :r„17…_i)—.\`å[oÑp˼½½IHLäÈÞ½t/-¥µÑb¾6ú©2ÖÌMeÒ’LMMéÔ±#ÁNNää`ktS^.   F>ý4Û7mBŸ—G#CŽËqmÛ–ÞýûÓ¶m[XkÒP£FX¸x1ÿ›1ƒÜ¬,J$qvvL™;//¯å= 8°šbwàÀR8e2“&MB*•²xñbôz=}úô¡eË–wMÖôôô¬7¼S"‘àç× 3"#“£¨(G&‹¢cG/š6mZíšõëÖqzëVžä¯´¹”k×xÞ<:uêD×®]o6o¦ñõëýeºt ¬vþáŸƾ¼œæ·0ýžVOM5j†àà`232°±·g΀Œ=¥RùØÒ¦R©dêÔ©<ûì³èt:®_¿ÎèÙ³çcñü-[ú2sæV®\Gzz&`Ž ähÅ´iÓªy´Z-?îÛ‡?Õsà›M½»wÓµkWöïÛ‡êêU† BUȦ-†æZ猞 áÄ[S|3ë¦MqwwÇÙÙ™Wß|“ +W’—™I¥ pC*iÃŒ n܈­·7nO=Eüµk ÓѤE Þ|ñEz÷éó·:ƵiÓ†W¯fÇŽÄ^¹‚L.çI^™1WW×zùÞä7µÿ¤¤$ÂÃÃ)))!,, •JE@@qqqdddàââBrr2Ÿ}öÏ=÷Üc3å«mÛ6|þùZ>LDD$VVV П=zÜQ皟Ÿ…^‡†hèŒ/©,)ávýîfGxg A*%\"½_A@ DH¥4ëÚ•'‡ A"‘àëëËÚM›Ø»gë>üï’:ïU¦ÕÃuSS¾Ù¹­V‹¹¹9Mš4ùGí5]\\˜6}:£F¦¢¢lmmëeÙáíÐëõ\¼x‘’’Š‹‹‰çôéÓ4oÞKKKΜ9c?+ìÚµ‹’’ÆŽûXЦ™™|ðƒçìÙshµZ'Ò¿ÿ;<`šòrôÅŘÔ`½HÊÊP«Õ”«Õ$DFâ*Õ4u†ìs9†:ô,ssލT´1 ü‰„"ww¦¾ú*,^¼6~þ9êÈHcHÒ)7nËÂwÞÁßß…BAƒ jí²x7kpܸq 4ˆ¢¢"ÌÍÍqtt|,ZuææærõêURSS)++ãÏ?ÿD§ÓѹsgRRRHHHÀÕÕ•ôôt6mÚÄ€ |lhs„ øúúrðàA ŠðòêLjÃïPÚ´Z-¥ÅÅXÕà·„*wqøŸâ¢ÑTË¿Ã?f@€DÂY¥’­ue%vÆDGXZ2{üx<==155e„ 4kÖŒŸÎ郸Ýôy……„„‡3xØ0–-_Ž 899ý£Q©R©”Ž;âëëK^^R©'ãx×ú 92¡×¯_Oyy9VVVlÚ´ ¾ùæ*++Ù³g 8;;3uêÔ;’!ê»çééÉ«¯¾Z5ØD*•Ö(Ì:tà;SSŠ´Ú*MSg´^¸»ãâ₽½=‚©)j£ðå ¼Âh­ëõzÊ0µ¶æbn.r¹œýú±pÑ¢*ëZ&“Ñ¢E zôìÉÖÕ«éf$jŒNÀŽèhrrrèÑ£Gµç¼™\S^^ŽB¡ aƵ6¬Ëå÷¬®¯¨¬¬dÕªUäççcffÆéÓ§ åÿû={ö$**ŠãÇ#=zô`Ö¬Yõ¶Ô©æp„ãÆc̘1UtQm:9;cííMöåËØÞ×,äîî4jع‰ v..”I$·Ä·ÁP‡k4~S(ðìߟ˜ÔTt:~­Zñéܹ´k×®ê|ÈÞ;q‘Hp4ÞSn´º®%'ÏèÑ£Q(ÕÞWVVÅÅÅȤRœœ±µµ½§{RjÌ8¾½Ê¦¾#**ŠU«VQVV†‹‹ Û¶mÃÔÔ”ýû÷£Õj &""{{{žzê)ÆŽûXyÌÍÍéÞ½;]ºtA¤RiïQ©TÒ²uk’’“it‹2Y¤ÊdŒ6æ#8»¸&—£¯¨¨Š‘ ª2”@3A F§Ã·o_Ròòˆ+/ÇÎÎŽgÏfĈU2çfÕÀ½{i!‘ÐüZo´Ñhøqï^.\XMN ‚@~~>ÙÙÙ‚€µµ5 6¬Õuniiyײàz)ÐGŨQ£îbá¶eóæÍ<î¸1ÞŠþýûÓ¶o_Nüò ­ôz”‚Àuàš³3KŒ !|}}iס§èŠ!…IaŒ†Ôh¡'Ñáá¬XµŠ§LÁÄÄ++«µJ¥B*wô`Rµ×âââjŸgff²mÛ6~ܹÕ˜9:Òwøpf¾öÚ¿ÿ·¡P(øñÇïz|þüùwĘ7Ünr/xzz2ò™gØ’€¶¸kA@%‘©Tòä˜1´nÓ ú Äæß~é´7 Aé@ †°P **B©T²=({{{ìììjümhµZ´jõ£Ž¤€RP©TÕª$ôz=ß}÷ûvìàzl,2SSZ÷îÍ´éÓéСÃn:`ïÞ½ï˜ÿ}vvv|úé§ÿ‰ïy?ÆÛÌÙ³yíòeΧ¦ÒCh'V"Á% €1O? À°áÃÙ¹e q7nài 1fa(ÔlŽ1 ½¢‚˜ÈH~9v GGGllljJ%‘H().Æì6Å£a¤Ñh¨¨¨¨J\Óétœ?ž/7m"òäI—-xùÕW:tèfð•8é67Ó{Ì&//Nù„Ö¥¥X ê¬,öÇÇ£©¨`ùòåâ|ôÿ0mNš4 +++¶®[G^j*ÖÎÎLxé%&NœX•€6fÌâãâøé«¯°R«Ña˜hÐÞ¨l¼t:bÏž%=-í®3lmmiàáÁõ pã¯Ìã [©ÄÃãšu~äÈÞóMZææÒѨLĦ¥ñ¿ØXvîÛ‡ËPáa@×®]Y¹nßnÞÌéÐPt}â ^ž>½jäo»v혽d Ÿ,[FxN¦F“3†:ñ(£w²üÆ Ž9¬Y³îy϶lݱƒ[g @ªTŠ—O5oHlL o/^ŒöÌt:$@vf&ËÒÒP( 2ä?ñÄÚ·ÁÛÛ›wß{c—.q>1‘]‡ñì³ÏV‹·ûúú²ûàA–lÙB©§'%à21”5Ú ùÆþã÷‚»»;ÏOŸÎ ®b(­HΘ›óìŒÕÜÇ)))ìÛ²…€’¼W£›ªŸFÃÑC‡î»Gyy9¹¹¹Uµ±â0ŒÇLž<™àÓ§9—˜È±‹™;wnµPŠ««+ïø!ßþú+6Ý»“*‘ÐØ¨p6ZN]]NùµÞoì¸q¤7oΟ  ÙÀ ¹Ïþý4hP•õ¦V«ùdõj|ss«Æ5ºkµd]¸À¾ýûïë;jµZòóóÉÉÉ¡¸¸X¤ÍÇ&&& 6Œowî$4>ž“áá¬Y·Ž€€€[†§Èxéå—9B¯©SIR*±ÂtC¯öŽ@cAàê}4¼z~âD,Ú´á7²€\‰„óR)é..Ìÿßÿªî[YYÉá_~¡àÌ:ët42ÒgÀ51‘   òóók½Ÿ^¯§¤¤„œœòóóïZ‚(ZèõÌý©T*ku9;;3eÊŠ‹‹Y¶`Z-ZlzW$œ6ÄÆÆæÞ•Tʼùó1·°àØ‘#$çåangÇó0mÚ´jÖ}AAeØR½ìÈfg“‘ž^+A&$$°k×..Ÿ?R)-üüxzìØjñSõØ¥&—×Zå`nnN=xÿƒxvÜ8rÒÓÑÍVF/’¼A–Ó½hsØðáHe2¶lÙÂÅÌL¤2Ú·gÖìÙ4kÖ¬êÜÜÜ\²³³éy›•`8I$Ä^¹Rëw+..fÇŽ„;FYI ÜÜ3v,=zôøWj~E< u(•beeuÏäHZúù±vÝ:ÂÃÃIºx© `a µ-†>ï~­ZÕz?GGG¾üö[Ö¯[GTt4ºÊJ\ÝÝùtÊ:vìXu^ee%‰‰‰8;oVñz ±^OJF………÷ÌáP«Õœ>uŠýû÷“™’‚¹¥%=úôa„ µòxQ ?F7n_o܈]Bà €d‰„æNz_qC+++æÌ™ÃرcÉÍÍÅÞÞ77·;â:J¥©¹9·¥Ô:ss,kÉ2ÎÊÊbÁœ9¤?Žge%‚ pôçŸ9¶  ÜÝÝÅú‚q†@èwßѽ¢G }­Ï›šâß³ç}1M™LÆðáÃéÔ©ׯ_G.—ãééyGhÇÒÒ…BA!†¢[iS%Ø×¢<”——³öÓOùþ£ðQ©0ÇP?ü¿“'YòÁŒ1âUxˆ¨ŸP(¼üòË,¿|?­/A0La“HÐ7n̰aÃîËøjÓ¦ Ÿ¬YCZZ¸¹¹áèèX-_I*•bggÇ#=ÞJE%€…‘vïeýúë¯,Ÿ7Ûk×p6Nm[Lfz:ËV¬¨7´)ºÜ 6ä³-[véÂ>[[¶ÛØÖ¸1S–.eÂsÏý-—•‡‡:t Y³f5&i4nܘ¶OyEq1åVV4èЕ«VÕZ–vöäIšètÕš?(?Žß/]B¥R=6å"j‡D"ÁÝÝÍ[¶9kׯ_ÇÕÕ??¿‡^v*‘H˜={6ñW¯ròèQLnÜ@ob‚‰·7Kçέ–ÜY¢£¢0MOÇá–ÞîrÀM¯çØùóÓ ž6óñÏ`eeÅ‚7ßdÂóσµµ5-[¶üGý j£ÍÞ½{3sñb¶lÜHdt4A@ãêʈgžá¥—^º§…]T\ÌÕßg45 »YÑd‘ŸOXX½zõú –––µZȃ0øtíZNŸ:En^ööötëÖížC0ª^¶‰ 5¥qTre}"_ÁÞºukZ·n]§÷133cõ'Ÿzö,‰‰‰˜™™Ñ¶];Z·n]ë\s™\ŽN*åv‘ÊåE$ÿŒ6ÝÜÜþ–EþO T*yqòdÚ´mËåË—Ñét4mÚ”>}úÜÑ`ìvH¥R¤r9ú’àtR)&õ($ ôÇÔêrþyCó¿Áè ̪½{ñÕ鸙þQ\15et¯^b⑈†C†ýÛ´Ù¦m[„&MÈŠÅCÂ’Û ¯Y IDATH‘HðíÑ£Ö¾ð"DÔSSS ü[ôimmMëž=I:y½ åq€ÆÞž.0ÈçaC4Ésáþw0bäHú½ü2Çmm9'‘pøÙÊ þý™;w®h‰xd´È«³gs¦INJ$\~•Ë)ëÒ…Ùóçÿ£Ö"D< úT(,]±uÇŽüjjÊ@ˆD™† ™¹`A½šk"Zèÿ`kk˲eËø©C._¾ŒV«e°Ÿƒæ?þ °°[[[ï™õ)BÄC·,¤R&O™‚³‹ §N¢¨¨ˆö3xð` ‡F.—Ó¦M\\\DåSÄ¿*ü;wîÌÚ øùçŸINNÆËÎŽnݺѦM~ùå´Z-^^^øúúŠ]Ä¿^|ñEƇ^¯§°°•+VpöäIä Z…‚î½{³lŊDz÷»ˆÇr¹œ#F0hÐ 4 ‰„Í›7³ýûï©,(@"“áÒ¬+V®| yå"DüÚlß¾=þþþ¨T* 'OždâóÏS˜‘TP:91mút^˜4©ÖœQ ‹x¨Ö¥¥%¹¹¹,Y´ˆˆ  †iµ(1ÄÔMIa¡FÃê5kptt7LÄ¿j ™™™affÆgë×óù›oÒ_¯§!†˜ú©©<7z4¡þùŸœ] ¢~ÃÄÄBBBøß¬YxÇÇÓCì:%-/F¡Tòì³Ï>’fb ýÿ1¢££‰|˜èèhÌÍÍ™9sfµYáçÎã‡~ ''ggg&L˜ðØÌCqw”——sýúuœõúj±pHÈÎÈ@­V?’g“jµZ.\¸À¥K—J¥œ:uŠ’’’ªöíÛǼyóð÷÷gòäÉ(•J&MšDxxxj@¡¡¡Œÿ]»ögôèqSv[ËSkäNNܾ«e€‰£#Öõ GqAA@«ÕrñâERRRªŽegg3kÖ,¢¢¢˜0a]ºtaíÚµ|ñÅuö]»vñÒK/ÝqÂ¥K—pwwgæÌ™ 4ˆwÞy‡¢¢""##ëä*++Ù»w/cÆLa÷î γäàÁ\žyæu¶nÝúÈ4Ÿÿ"Z¶lIÀ A\65%PÙ@˜©)ƒ?òŒM€FÌG}tG¯ùââb’““™ýô$&L&,ì²ØÚù! ôPîí͉„" =á¯)ÎÎ >ü‘õM¨5†îïïOnn.W®\¡¬¬Œ,--«¹–&RRRزå[nÜhŽ^ß h‡^߃¶nÝAŒ×}hpttdÎܹøŽÏO2€Ÿd2Z>ó sæÌ©w q·3$KKKÜÝÝ £¨¨ˆ„„âââèÔ©S=Ãúõ¹|Y :"Ñé±oßYŽ9"ÕCÄøñã;{6—]]«h³²S'V®^]ï+0¼½½)//'<<œ²²2Ξ=‹N§«³n}‚ pôè1öì ¥²²‚ÐhNן?þÐñÃ?Tó¼Šx0t äÍåËÉðóãpˆtscú’%<ñÄ$!î#Ë}ðàÁÄÅÅ1nÜ8ÌÌÌ(++cÉ’%øûû×É¥¥¥‘ ôä¯!¡À˜˜+$''Ó¾}ûªóµZ-………h4dR)VÖÖ˜››‹uª÷‰DBË–-ùtÝ:’fÏ&;;gggš5k†µµu½ßCGGG^yå>úè#víÚ…V«¥C‡<ûì³uæ= 9 ´Á>x“6Ñéš|„Q· !Ñét”––VYîæææXYY=²ûã{{{Þ\´ˆ‰“&‘””„••M›6},šÌôèуgŸ}–)S¦TñÍéÓ§×Y{èòòr"##((pn¯«D§óâ? s&¬­­«Ž¨T*JJJÐét( lllY¹Õãh¥5Š.]º””„V«¥Y³f¸ºº>Ò÷è:Ž={öpìØ1>úè#<<<¸|ù2kÖ¬ÁÙÙ™~ýúU;_£ÑpæÌ™ªÿÍÌÌhÞ¼y5"º!#•Öì2|þ—)--eÇŽ|¹v-Ù ˜(• |榽ò ­Zµ{“ßç~ÛØØÔé<ô²²2âãã«Y#á.==uëÖÈøñãÉÏÏgݺu|þùç¬^½úŽócbbªMkܸñßk )} û( •þE›„„„ðźu„Ÿ<‰D&çcG¦½þ:Æ ió>annŽ——^^^uv””ÒÒÒªÑIMÓïz½žàà`‚‚‚X¾|9¾¾¾DEE±zõjÜÜÜ9rä×UãVVV4oÞ¼ÆÉv—6AÏíºyBB¾÷§~ü‘òÂBx{3qÆ ÆϹà"nžry÷¡/..&>>¾Z¨Y£Ñü3^RRÂñãÇéß¿?ƒÀ××—Ý»wsòäIúôéS1ÝlTr«õ¬ÕjÿÖhÜØ ÿœ8‘ÜJXéøøXѬYÓª{±záBZççÓ^¨Ôh¸ôÕWäääðñ'ŸÐ¤I‘êêôz=¥¥¥wÐÆƒ"::š’’&NœH‹-CqÙ²e¼ÿþûwX*•ªÚ3ü]KÏÄÄ„¾}{whŒ¡ HâÉ'çW KçÌÁ"6–þ‚€H;q‚¥×®Ñ¨Q£zÕ.òÿ;ÊË˫хJ¥z ®V«9uê >¹\ޝ¯/Ççðáà 6ì/ÍMOã­Š¶^¯ÿ[£¿¿?ŽŽ?‘›[t ï¬@*½JûöÝ«uvv6Ë–-#nǺèõ(€Üèh¾xë-^zé¥úþ"´Z-%%%”––Vã§÷èz½½^N§C„*A,—Ë155%''‡ÊÊJ¤R)Z­–üü| Å.Y333†ú@_ÀÝÝiÓ&“ð6ÅètÎH¥88¤òò˳iÙ²%iiiìÙ½ÿü|Z B•ÝnYQÁ±Ã‡¹8~<7]ïõ–––tëÖ­ÚgkÖ¬ù[D­Õj½^V«E*•bff†Z­¦¨¨¨êx^^R©´F·v‡˜>gÍšÉÅ‹a„‡ÿ‚VÛ ‰Dƒ©éUÆŒéKÿþý«Îûáûïââè"ÜtÀ¹!×®±yÓ&DÚ¬'ðññ©–¤ÕjILL¬õ:AÐétUÊéÍ¿¥R) …‚ôôôªŽw:ŽÜÜ\\]]kôÎ888<mJ$žxâ FŽ<Åöí¿ V7G˜š&`Ëĉ«J9CBBøãØ1†èõÜ,ît„ü|‚¾þšQ£Fá*Žª­°··§wïÞÕ>ûàƒî-Ð/]ºÄ/¿üBRRlذ///fΜÉ3Ï<Ã;ï¼Ã¼yópss#""+++†^' I.—3vìX¼½½Y·n=™™™88¸2uê[ôìÙ³êžÙÙÙݸ·:áÁ°Q«¹zõ*z½^ŒW>樬¬dõêÕ––Æ¡C‡HKKcÔ¨Q´jÕŠÖ­[³ÒØ ´  €sçÎñꫯ֙KÛÇLJýûƒøæ›o8þff<ùäbž~zLµiuQ—.áj´~ný±yèõ$&%‰³çÿˆŽŽfïÞ½dee‘““Ö-[8zô( ,`äÈ‘,]º”yóæÑ¬Y3bccÉÏÏç7Þ¨3EÎÁÁÏ>[G×®Û9tèG**4 ç•W^©& ¯%'c‘—Ç­³¥€³ -V=Æß¢fffÕ4U333$ ÄÁÁ . R©èÑ£}ûö¥y×¶mÛ–­[· ÓéÉdwü,,,0±° Tª¥€T*‰'''Ñúàf+P½^Ï´iÓª>—Éd888°jÕ*N:EZZnnn¼õÖ[ôèÑ£NŸ©qãÆ,]º´Ê«IypjØ4‰Ä0¦ñ–Ï $l¬­Åá7ÿÈd2ÌÍÍiÔ¨sæÌ©ú  [·n¬[·Ž3gÎP\\LÇŽ™={vϤW(¼øâ‹¼ð ‚P£AckkK¹¹9BqqµÏÕ ŽŽÈåbGðÇZ ·oß¾ZæøíèØ±cegÖÆÌïF\M›6Å¿m[N_º„sEE•%” ‘`Ò¢íÚµþ *—3kÖ¬»oذ!ãÇdÏv7Œ3†×wïÆS«¥‘Q¨gWLLX>r¤˜Mü@‹-ªr7j‚¿¿UÕ†{ñ¾nÝ»óE“&DGEÑ ƒ‡S ü)t{òIìììÄ—û8 ôÇfff,[¾œ¹ÅÅì;v ËÂB*ML0óõeéÂ…÷TPDˆ¨k zâ æ|ð[6nD‘™ @¹““^x‰'Š$â‘¡U«V¬Û°×_}•¸´4”j5¥ööt0€7þ÷?¬¬¬ÄMú¿GGG>ß°#GŽœ˜hèå=`ÞÞÞ¢»]Ä#W8g̘Açιtñ":½žöíÛÓ90P¤M=zô`Ç®]œúí7 ñôò¢oß¾¢u. ôG ++«GÞR„ˆš P(èÚµ«8»[D½Dm!Ä ³"Dˆ! t"Dˆ!B„(ÐEˆ!B„uC×ëõܸqƒ¸¸8JJJðôôÄÃÃã¾§Üìv³lML"ñ0!%%%\½zÕØ¸Èooïûj{³“¢ ˜˜˜ˆ´)â¡C­VsíÚ5’’’Ëåøùùáââr_¥ŽZ­¶ª¡–ØTKèa;vŒ·, +"SA@kmͰI“˜;>7¾ëu™™™œ9s†ÄÄDLMMi×¶-Å®Z"mFGGóÁªUœÙ»ÓŠ 4R)>½{óþêÕ´mÛö®×–––ÊŸþIee%^žžôéÛgggqcE<”––òÞªUìùòK„¼<‰»-x}Ñ"ž~úé»6$ª¨¨ ""‚‹.—Ÿ««+]»vÅÇÇGì¢@0ÄÇdzlñbì#"è"(ÅŜز{.ZTcSŽììlæÏžMÔÑ£ØQ)‘ð}ãÆ<3cóæÍ;‰x`±~íZb÷î削 l•^ÏŸ'O²bÅ 6lØ@ƒ ¤¤„7òýúõX¤§#ò--ùíùçY¸pá]•T"þv±kíZº•—ÓÐ 111|¼t)~~~wŠøË/¿ðþ[o¡‰ŽÆJ«¥H¡`G‡¼»z5;w7öÿ ê$†þ믿¢Š¥½ `(€&€oY{¾þú®ãß6nØ@ÔÁƒô-*¢ÐWh•šÊ¦wß%<<\|["ÙÙٜܳ‡Ö¸iÓÔëI¸x‘‹.ÔhÕŸ aÛÚµtÌÈ /Ð PZÊ©o¾aÇöíTTTˆ›+âPRRÂΠ Ú–—ã!˜–@[@žšÊ‡Ýõº·æÏÇ."‚Z-= •çα|ñb*++ÅÍú?GfF–ååÕÌ †Á)¹éé5ŽÎT©Tìß½›v••Ø&FfÛp.-e÷®]âÛñP,ôŠÂBnà˜òâbr²³ï¸F­Vsêôi33i$˜éÓhS^Ω“'ÉÊÊ7WÄ¡°°ÂÂBœnëÿoØi×®Õx]HH%©©´Ç0ÐWnT:éõÄ„…%n®(Ðÿ9š6kF‘…·ŠmÈ—Hhäí]cr‡F£A¯Ó¡¬a=…  ºe¬ÿvvv˜7h@ÑmÉlå@¥ÜÜî¸F§Ó¡V«QR}²ßME@[QN§7WÄÁÞÞ'''Òk Í\AÀÛ×·ÆëT*&ÉñS€ PVV&n®(Ðÿ9ž|òIÌ›6å¬TÊÍA|i —ML7iR‰666¸5iBÊmĬ®mî;!âïÀÅÅ…¾£Gs^"!ßøY "—ãÕ®ï¸ÆÌÌ ÏfÍȔɸձ®ÒFîîØØØˆ›+â`aaÁĉ “ËI0ÒW%pY"AëîÎà'Ÿ¬ñ:J€Û}Ki€ÜܼÎ'cЍ? ‚@aa!7nÜ ¨¨¥RIóæÍ±°° !!ëׯW»H&“áîîN£Fj\ÔÍÍ{ö0óÕW9”˜ˆ´²[[^›8‘—§N­1ëR&“ñöÊ•LŠE—‘A3#1ÿ)—Ó¤kWžyæ™:Û„ÂÂBlmmëdmFƒN§ÃÜÜü±|~NGYYÙ#Ø Õj¹víÅÅÅ”••áååU•´VVVFXXØט››PãzVVV,}ûm,,- 1ɲ2…‚¶|öùç5ö²–Ëå 1‚S§Osì§Ÿh£Ó!’??–<ÿ|õÀ.--E©TÖYBh]ÒŽV«¥¼¼¼N+TŠŠŠ°¶¶~$僂 ››KVVÅÅÅX[[ãíí©©)QQQÜAKÍ›7ÇÑѱÆ5ÇGii)7làr^‚\ŽGóæ|±x1~~~5^ÓªU+ÆÏ˜Að—_ÒF¥ÂÆ(Ü/››3oáÂ:«Â¨KÚ¹ùû–Édu6j¸®Ÿ¿¢¢­V[§¼ÿ^¥ÕjÙ·o;vì ??¶nÝJ«V­ %$$¤ê‚œœ.\¸À'Ÿ|ÂóÏ?×…===Ù±s'QQQãééIóæÍï9Ö¯cÇŽ|´a;wìàjB¦ææ8š˜ðæ›oÖÙ¦èõzöíÛÇäÉ“ëdý¤¤$òóóéÖ­[½Ä={öðÒK/ÕÉÚœ>}šQ£F=ž››Ë+¯¼RU–óá‡òòË/W1ó¯¾úê/oŽZ͹sçðõõ%88ø®k:99±òw;n™™™8::ÒºukÌÌÌîIÏ+W®äËÆ‰¸t A§Ã¹IÚxxгW¯:ûþ!!!tìØ±ÆÌûúN;¹¹¹\ºt‰¡C‡ÖÙþ«vÂÓO?Íðáëþߺu+ééétïÞ½ÖÅmmmïë¼[­ô!C†Hvv6¦¦¦œ>}[[Û:ÓÀA 11±N-ˆœœœ:}‰ uÊ´ÒÓÓ™ ÉÚÚšE‹¡T*yíµ×ªsqqaÍš5Uÿ_¹r…¸¸8ÆW;áËå´k×î®e@w³„ÞYµŠŒŒ ôz=–––|ýõ×uÆ222êt¦v]ÒŽZ­&##£Né#)) ½^ÿHhÓÄÄ„¡C‡Ò»woN:ÅÉ“'«å•Wªe˜/Y² ‹*cé^|°iÓ¦4mÚô¾ŸÅÑɉ9sçò̳ÏRRR‚­­-AAAu깨KÚCEJ]ÖÐ×%ßCõAv I¶u*Ð¥R)Í›7§yóæ‚pÇ fffU–KQQ?þø#C† ÁÃãNH*•âääTÕµëÏ?ÿDÄÿ_˜››Ó§OÊÊÊî° ¥Ri•ËL§Óƒ\.§gÏžuöù„ââb Y¾|9nnnakkKvv6)))¼øâ‹ÿ QêõzÂÃÃY½z5(•J†ÎĉÊý5 û÷ïg×®]ÈK/½DÓ¦MÿQvíÚ…Z­fàÀLš4©Öºç›¨¨(¾ýö[®\¹‚N§cåÊ•U¡¬¬,öìÙÃo¿ýF||<3fÌàÅ_¼ïp‹V«åðáÃüüóÏDEEѲeKV®\Iƒ C‡±ÿ~RSS111¡OŸ>L:õoÓÿ?Åž={ضm[Uã£7Þxƒ€€>ûì3,--INNF£Ñн{÷:Ï:Œ“ÙÖ­[G\\ …‚^½z1sæÌ‡æ***"((ˆüFCŸ>}xá…puuýÛ¼SÂÃÃÙ¶mW®\A"‘°råJ:tèPuüêÕ«|üñÇ$&&âææÆë¯¿N@@À}ßK£ÑðÅ_pþüy=z4 .¬:ÌÁƒ‰ŽŽÆÒÒ’íÛ·ÿ­pKZZŸþ9ÑÑÑäææ²|ùr @rr2_~ù%‘‘‘”””àååÅÿ±wæá1ßÿÌd’L6Ù‰DlAÒØEí”*UUK[kÛ­ª/ZÕÒÖVª¥+Z¥Õ…R­­E-A,A-‘$²I&™Lf’ÉlïïÄ|M-_tp?Ï“çÉÜ;sæÞ÷ž9ç]Î{ÎóÏ?OÛ¶mïÚVW9ÀСC‰‰‰!..ެ¬,Î;ÇÎ;­[‚êÖ­Kllì=%%%1zôh7nÌÒ¥K™..Ž^x¨¨(,X@:u3f ééé·ìÔRSS©W¯Ö}ÐWhÚ´)999×-~ó¿~X*•Š’’:wîLjj*:Îz.##'''¦OŸÎÂ… ©V­#FŒ ''ç®ë‚³³3»wïæï¿ÿ&33“¤¤$N:Å AƒË常¸°bÅ ¾üòË{=¬×ëùøãÙºu+“'OfÁ‚˜L&Fm—ªVÉÉɼôÒKxxx°xñbzõêÅ´iÓØ½{÷É3 $''Ó AªW¯Nff¦ÍöÔM›6ñÑGñì³ÏòÖ[o±oß>,X@qqñ-G~~>z½žÇ{Œ¤¤$«îh4rrrhÒ¤ ...¨Tªën½™COOOÇËË‹ÐÐPÒÓÓ­úm6›9uê:t`Ñ¢EÌš5‹èèh¦OŸ~[×ÿo˜)æÏŸo}žÛ·ouêÔæ_Ë_¿~½hÛ¶­ÈÊÊBa2™Äˆ#ÄðáÃEYYÙË5 â­·ÞÏ>û¬ÐëõVÝìÙ³§˜7ož0›ÍÂb±ˆmÛ¶‰:ˆsçÎÝöwŠzõê‰Ý»w_sN­V‹gžyF|ðÁwô¶X,bݺu¢G"##ÃzüŸm²cÇѦM›;ºþªÎÁƒEhh¨HHH°{ûí·ÅÀÿ•î\Mdd¤X±b…°X,Âb±ˆÍ›7‹&MšüëöÎÊÊ 4ûöí³[½zµèر£ÈÏÏBQRR"zõê%æÏŸÛòõz½;v¬˜>ÞîY§JKKINN¦E‹Ökwuu¥Q£F$$$Ü·,W7ë5_³.£PØL÷ªT*ŒFã]̓\YQ*•´oßž˜˜âããÉÉÉaÏž=ÿ3uì­¢Õjqss³N‰;88P³fM.^¼h÷¬S*•Ь¬,Z¶l‰\.G&“„ÉdB¥RÙEwî¶nþ3åkVV...(•ʇN7CBBhÔ¨?þø#ùùùÄÇÇsøða»N÷«ÕjüüüÉdÈd2¼¼¼0™Lvu–••‘ššJ£F¬K‹...„……qæÌ™;²›wS?¯'ÛÁÁÁÆ_©ÕjJKKïÚlë”{e£FLŸ>+VЭ[7ž~úi"""ì–”!""‚Ç£R©0 œ9s†‹/’ŸŸo÷‡®×ë)..¶f¾»‚¯¯/ÅÅÅ †*e4233ùðà »«Ù*+ŽŽŽôï߆N¯^½8rä“&M²Kg³V­ZœœŒÑh$;;›#GŽXõÈž „°Ùç«T*Q*•¨Õê*õ\, 'Nœà“O>áÙgŸ¥~ýúnúøø0yòd¶lÙÂã?ÎSO=…¯¯/O?ý´Ý–£5jıcÇÐh4èt:N:ENNŽÝ;›ƒµZ¯¯¯Íz³ŸŸZ­ÖfI³*ŸŸÏòåËñ÷÷§gÏžwí{•ñæ;Æœ9sxçwxä‘G(**bþüù|üñÇÌœ9ó_Wo;v,Ó§Oçõ×_' €¸¸8¼¼¼puuµû:ì•^ZYYÙ5=ÐŽ|+;jµÚº¾úþûïó0¢ÓéXºt)J¥’5kÖàááÁo¿ýƼyó û×»@ZµjE÷îÝ™3g-[¶äòåË!P(v¯:uet{u§Òb±`2™îZ…«»åÌOž<É›o¾IŸ>}>|øC©›çÎãÝwßeìØ±tïÞNÇòåËyï½÷˜?¾]öÖOœ8‘eË–1}útÜÜ܈ÇÍÍÍîÁÒr¹GGÇkè”””pìØ1f̘a-ì2tèP¾ûî;Nž<ù¯ºŸŸÓ¦MãÔ©SdddÐ¥KöìÙÃÙ³gí^q­F( ›â;ÅÅÅUn9%99™™3gÒ¬Y3¦L™rOËUV&Ξ=‹^¯ç©§ž²Fù?ûì³L:•K—.ÙÅ¡÷ìÙ“ÚµksþüyiÙ²%ÖúöB©TR½zuŽ?n¨–‘‘AõêÕ«LžzƒÁÀÒ¥KÙ·o .¤eË–w5x·RN¹W¯^•JEJJ •JűcÇðõõµKOÐ`0P£F z÷îM¯^½¸té¾¾¾DFFÞqc_™"*..Æl6£Ñh(**âJ5»ØØX)**"66–ÔÔTºtérËßWRRb]ƒ1 ¡ÓéB`2™P«ÕhµZ, EEEh4šÛŠØ4™LQTT„ÅbA«Õ¢V«1›Íäååñúë¯Ç~H£F(--µKTwUC¡PàééI||<ùùùqúôit:ÿZ¾ÙlÆÁÁÖ­[óä“OR£F >̨Q£îØQét:Ôj5z½£ÑˆZ­¦¤¤¥RI÷îÝùý÷ßÉÌ̤  €={öP«V-k У;‹Åúº¨¨£ÑHii©õZn•+Ÿ)))±~Wqq1‹…ÄÄDFŽIãÆyíµ×pqq¡´´ô¡ÌXéëë‹V«%)) FCAAGŽÁËËËn™ïL&uëÖ¥ÿþ´oßžÄÄDZ´hqÇKF£ñºº#“Éhݺ5/^äÌ™3ÖßYllìm/½£V«1 èõz«½2âW«Õèt:Ìf³ÕvÞêý{ûÏë¿b“ßyç¾ûî;–/_NDDeeewu™U&îv$Ë››Ëûï¿Orr2!!!èt:ÒÓÓ™2e }úôù×=œ¸¸8–/_޳³³ÕXL˜0N:ÝñýàÁƒ¬[·Žììl¢££éر#uêÔ±NM/X°€S§NQ·n]RSSéܹ3¯¾úê-×qþꫯ8|ø0§OŸ¦°°:о}{ÆŒCrr2K–,!;;›C‡ѧO‚‚‚˜4i’Mõ¥›‘””ÄÇŒZ­fË–-´k׎ZµjñöÛo³k×.¦L™B§N¬#ó+…&ºtéòPM£ÑÈÆùæ›o¨]»6J¥’””4hÀG}ô¯—PÔj5_ý5iiiX,²²²hÑ¢ÿùÏîx6ç³Ï>ãèÑ£œ:uŠââb:vìHÇŽ9r$éééÌœ9'''ÜÝÝÉÌÌdÒ¤IôèÑã–ïåüùó¬X±‚¢¢"~ýõW:tè@`` |ðNNN¬\¹’¿ÿþ›Ã‡ãííMDD}úô¹åZÝ¿üò ;vì 11‘ääd:vìHxx8&Lॗ^âÏ?ÿ¤ÿþÖQé•uã‡J7U*K—.%66–† RZZJJJ ãÆ³Û:ú¾}ûøé§Ÿpvv¶:±É“'qGòOŸ>Í_|AAAÛ·o§C‡°xñbœY±b{÷î¥~ýú¤¥¥Ê»ï¾{[KBï¿ÿ>‰‰‰ÄÄÄ P(hÓ¦ ½zõbРA8p€uëÖ‘––Æ©S§èÕ«õêÕcÚ´i·Ô ÊÍÍå½÷ÞC­V³uëVZ´hA½zõxõÕWIMMeÔ¨Q´hÑ‚ÈÈHëg{ì1úõë÷ð8ô+ÊyêÔ)ŠŠŠptt¤~ýú4nÜØ.SÔ†#GŽP\\ŒR©$44”ºuëþ«éö‹/ròäIL&2™ !ÎÎÎôìÙggg45˜ÄÛÛ›V­ZÝÖlÃÑ£GIOO· Ú "**Šüü|8Pþ@+¾ÛÍÍvíÚÝrDe~~>ÑÑÑF« ™LF÷îÝÉÍÍåÌ™36ß-“ɧQ£FÝHH¯×“`ÝíëëKXX˜]¢WF#çÏŸçâÅ‹! ,,ì_M#>|øššöuëÖ%22¹\NZZçÏŸÇh4BãÆokJóòåË:tèÝéÕ«=zÔ&hJ.—Ó¸qã[NÄsæÌmFM¾¾¾´mÛ–£G^ÌêîîNTTÔ5¨jµšÓ§O£R©ppp víÚ„……ÙmŠ:77—“'ORRR‚‡‡M›6%00ðŽ; W‚>ÿ©;}ûöÅÅÅNGll,*• OOO"##o{9hÏž=¨T*«|Àª.\àĉ6¶³ZµjtîÜù–vJ³gÏ ƒÍõwìØ½^Ïñãǯ ´nܸ1ááá—C—¸uäRHHHHHHH]BBBBBBBrè’C—º„„„„„„äÐ%$$$$$$$‡.!!!!!!!9t É¡KHHHHHH]BBBBBBBrè’C—º„„„„„„äÐ%$$$$$$*% { ›:u*R«JÜ+W®ÄÁÁáž|׎;øñÇ¥F—¸%ž~úizõêuO¾Ëd21vìX©Ñ%n ___/^|÷ú¡C‡X»v­]dY,–,YÂ믿nyùùùüöÛoŒ3Æ.òHHH`À€vk;!:t°‹¼ßÿBCCí"oÍš5ôîÝ›êÕ«ÛEÞsÏ=‡Åb¹gýìÙ³´iÓ†îÝ»ÛEÞ?ü@‡ ²‹¼+V0fÌ\]]í"oÑ¢EL›6ÍnígOy%%%|ýõ×¼ôÒKv‘—‘‘ÁÁƒ6l˜]äíÚµ‹sçÎÝ3‡n±XHHHàÛo¿µ‹¼ÜÜ\vîÜÉÈ‘#í"ïüù󤤤Я_?»È‹ŽŽÆÁÁvíÚÙEÞ¯¿þJhh(5²‹¼¯¿þšþýûãççgy‹/fêÔ©Èd2»ÙÎ{2BW(4hÐÀnJîããc7yøùùÙM^ii)jµÚnòÒÒÒ°X,v“W£F êÔ©c7y~~~Ô«WÀÀ@»È³—ãºjÖ¬i·öð÷÷§^½zÛEž!!!¸¹¹ÙEž···ÝîÕÞò´Z-¾¾¾v“'—ËIJJ²›¼³gÏ’’’rOuÓÅÅÅn×ïêêjW[§ÕjÑétv“—ššjW_@PP]m]pp05jÔ°ëoÇ^]¡¸±Û–ÖÐ%$$$$$*µC—Ëå•VžL&³»<{õà®Ü«=å988ØU^•ÿáØY7í½ôPÙåUæß¢¤Ÿw·}ím›ª‚í¼W(*«BÊd2l7yžžžôèÑÃnòj×®m·éQ€¦M›"„°›¼6mÚàééi7yÝ»wÇËËK²”téÒ»Éëß¿?ÎÎÎv“÷ÔSOÙõ~í)O©TÒ¿»Éó÷÷§sçÎ’RVàíím·X€:uêØÕ–4kÖÌ®³]»vx{{ÛM^=¨V­šÝä <øž †*µCoÙ²¥]ˆ½ļ¼¼ìêàìÚ~õêÕ³«¼&MšH–ò*6lhWyaaav•gÏߎ½å) »Þ¯»»»ÝŸGUÆÅÅÅ®¿Wooo»:Ìš5kÚõ~íÇr{ú‰»ñ[¼éoëÏ?ÿdëÖ­$''ãââBï޽̜9úõëßõi¤S§NqñâEF··7;wîdÈ!¬ZµŠÈÈH, O>ù$AAA\ºt‰Å‹“˜˜È[o½uO~<÷•JŧŸ~Æ'Ÿ|MA™ÌL‹õYºt>:t¸ëº©ÕjÙ¿?¡¡¡Œ1‚ .ðᇒ’’ÂŒ3(++£Q£Fôë×!›7ofèСlܸѮ»$*F£‘íÛwðê«3HK+äÔªåÁ¬YSxöÙgï®m*))W°X,âûï¿QQQ"''GüF#Ú´i#V­Z%®GÇŽ…ăJ¥£F E”€‰f/œ[ˆ &‰‚‚‚%¿k×®Â`0Üô=z½^˜Ífëk“É$¢¢¢ÄÇ|Í{M&“øâ‹/D¯^½DVVÖ5ç-Z$6oÞ,=Ø‹Å">þøcáîÞDÈdÏø€ÉB&ë&"#ÛŠÔÔÔ%Ó¦MbñâÅ7}Ùl¥¥¥6×´páBѾ}û뾿  @4iÒDlÚ´éšseee¢k×®Òƒ}@8p Z4h.d²¦ ˜.` ¨Y³¹Ø´i“M»nægå...Vç.„ ¤¤…BaÓõX,”––²oß>´Z-‘‘‘R7ìçÔ©SDGÿÉÔ¨85)+{„M›ö“™™yׯÁÙÙÙ&ºÖh4RZZŠR©´ÑY³ÙÌ¥K—8xð aaaxxxHðFÁ_¬C«mŒ %àmHHбuëÖ»~ r¹ÜF- :îš)‹Å‚V«eÇŽ¸»»Û}}V¢ra6›Ù²åWÒÒ\¢à¸ÍÉÉ©ÁÆ¿b0îÞ”ûÕ/Ξ=˺uëxúé§m¾FE\\z½žçž{N zÈÌÌ"?àŸÓCÕ¸|¹Œüò“÷ NÇ‚  ¤OŸ>Öã¿ýöï½÷¥¥¥4hЀ×_ý¾$­‘¸·F3!! Ãvç­z½7IIÉ÷ôz, {÷îeçÎL™2Åæ\·nÝ(**B¯×3sæL»pIT.t:™™™ÿÐMBø“Ét÷zrr2³gÏ&""‚áÇãääd}Ó¢E‹(..&66– ЬY³ën;)--eçÎÖ×nnn4oÞ\ÚîT©^½:^^ŠŠô£órd2->> |||nY–V«åܹs¨Õjë1•JuËŸ×h4|ñÅüõ×_,]º”ZµjÙÌ-ZÍçŸÎÒ¥KY¸páuÓ6ž}úлwo›sk×®E«ÕrèÐ!>úè#‚‚‚®»Å®  ÀÆvzyyѬY3ÜÝÝ¥^…puu¥zõ(G0™ÄUºiF&SRû¦™ÞþIaa!çÎC§ÓYéõúÿ6™9s&5kÖä7Þ¸&_w@@ 6dèСDEE±eË–ë “Éd899Yÿ¥d$U”ÈÈ–DF† PÄÚ+®¹ü8}ú´±qªÿ ™L†B¡°Ñ[MTa6›ùꫯرcÓ§Oç‘G±9ïææF:uhÓ¦ Ï<ó gÏž½agáŸ×p/>HØÓ¡Ë3æiÏ"“]P†\~‚Zµ,ôë×÷¶ä988ØèÅíÜ“'Oòæ›oÒºuk&NœxÍþåÚµkÓ¤IF¿¿?{÷î½%ÛùÏeO‰ªB¡ OŸ>Ô¨¡ÎWFãÉxy¥1`@›ÁòÿÖu9ŽŽŽ6ºqÓïOLLdÆŒ(•JÞzë-üüü0 8::RVVFYY™u]H£ÑpéÒ%Ú´is]aJ¥’Ç{Lzª~~~,^¼îŽß„Å⌃C]»¶fÖ¬ÿÜÖÝÍÍíG|+ûZËÊÊX½z5ßÿ=³gϦk×®FËå¢T*qppÀh4réÒ%”Jå ·.………Iúù “ÉxñÅçQ«Õ¬[·‘ÒRGd2,[¶ì¶g]êׯOýúõ­¯‹ŠŠþg.w‹ÅBll,3fÌ ,,Œ©S§âææ†Á`ÀÉÉ N‡ÙlÆÙÙ!………¨Tª7òöö–tó¡K—Î,Y2—7Þ˜Fó7 ÃËË—_žÀ€n+ëž§§ç5þöêYÆkúìÙ³9xð O=õ«W¯¶žxùå—‰‰‰áÇ$((!‰‰‰8::2~üxé©=F³~ýúüúëFŽ=Jff&AAA´mÛö¶F0ÿ†íÛ·3wî\ÂÃÃ9{ö,gΜ mÛ¶tìØ‘)S¦€»»;*•Џ¸8ÆŽk·2•>øà=FŽÁ™3gðòò¢U«VøúúÞ“ï/,,döìÙ$%%ÅŠ+¬£ý7Þxƒ 6pðàA1œ;wŽððp»gð“¨|8::2dÈStìØ£Gb4iÕª•Ý“}]ס4ˆG}ôºÓP”––’——@dd$QQQvÏô#QyQ*•têÔé¾|wýúõ™3gF£Ñ渫«+NNNŒ=šôôtJKK©W¯#Gޤyóæ·5¥%Qu‘Ëå4kÖŒf͚ݗßÅsÏ=Gaaá5×$—ËyôÑGqss#??Ú¶mKûöíïY‡Câþˆ8pà=ý^ÅÓO?}Ó 4Hz:÷…ððpÂÃÃox¾k×®R#IÜÜÜÜ>|øM;£WOãKH܇.5ÁƒJ¥âÂ… èõexyyÂÕ¹$$î%%%\¼x‘‚‚B”Jg‚ƒƒ¥¬D¥Àl6“––Fnn.B@PPm+} ­äÐ`RRRx÷Ýy:tÆLíÚn Ò—çŸþ†Á9÷‚Ë—/³zõj6nÜNzz1´kהٳߔ ­HÜW, ?þø#+W~KBÂe„ÄøñcéÑ£ŽŽŽ’C—¸·ðæ›oòÓO‰Ñ!ÉËS“”ô-ŽŽŽ¼üòË÷¬…„ÄÕFÖ®]ˬ¥¸¸%Bøpù² Ž¡ÓÍ`Íš¯¥l÷½{÷2{ö¤¤4Ú2¶nM"9y6µhÙ²E¥½v¹ôøLvìØÉž=c±ôFˆÀ!BÐj£X±b¹¹¹R#IÜ´Z- ~Yá̾@M,–>DGŸã·ß~“Iâ¾PZZÊÊ•«HM Zþ€KññJÖ¬YƒB¡KÜ[rrr)*rl×|„ðàÒ¥"ÊÊʤF’¸/”””pùr1ày9ÒéÜïI ‰ë¡Ñh(,,@ˆn}uD&ó!55½R_¿4B@ñòòÄÕUOy­ÿ"“•âãã‚Bá(5’Ä}ÁÙY‰‡‡3Pò3”ÊÒÛJZ$!aO\]]quu ®ÑM!´øûWî Mi„þa6›ÉÌÌdïÞ½ÄÅC©,ŽP^ÄBhqrú›gŸí¿¿ŸÔ`÷ !*•ŠcÇŽqöìYBB¼9uê啨ªQž"ó4Mšø^“]BânSRR™3g9r$³Ù„R‹^_ð«¥ãïŸÃðáoUꔼ’C@°X,‹Í›PZê^áÀ3‘Ë7!DuÜÝ-´hQ>x_Êô'qOÑh4¬ZµŠ¹s?£°Ð•òeJ9rù ¹\NX˜;ãÇO¡mÛ6Ò]âî“••ÅG-ãÈ€#ŸRà(ÁÁY¼ðÂ0"##‰ŒŒÄßß_j0‰{ʪU«Ù°!£±åFF ™l7¯¿Þ‹¶mÛÒ¬Y3iËšÄ=gïÞ},Y²šÂÂö@å+ÑÙ±‹¾}ƒ2d(Í›7£iÓ¦7Í£^)zaa!ëÖ­cïÞ½äææâååEß¾}>|8ÕªUcçÎüôÓO¤¤¤ —Ë eÆŒIšP‰HHH$::“©p¥¸+BDPXXÀ#}úpöìYÉ¡W"\\\®³óÊÊLÀ•ÂNf ‹† U©x#ù•êWô²³³­Q¡PX¹‚””\\\ðòò’´¡Ñ´iSžx¢+îî€tÊ×Ï/áæv€ºÐ¼y³*wOŽŽŽ6µƒ5 EEEx{{#“ÉlôÖ`0‘‘Tm­ò^{íªUKD&; h<нDDøVÉP2™ÌFÏ ¹¹¹Ö-w …ª»BÒÒÒËåÒ–¼JhcúöíÃ#TC.ß:d²X4P1hÐU*k¡MP\YYk×®åܹs|öÙg6o´X,œ={–yóæ1jÔ(BCC%m¨D¸¹¹ñÖ[oâççdž ÐéJpssaРç™4ib•jÏÏÏçÍ7ß$<<œ¾}ûÚœ3›Ílݺ•C‡±xñb<==%…¨dôêÕ“¯¿^Ê—_~Ifæ.hÙ2’ÿüg:ÕªU«Ò÷f6›Ù¼y3û÷ïçwÞ±9'„ ))‰ зo_Z¶l))C%£yóæ¬^ý%ï¼ó.çÏÀb1Äk¯-å±Ç«R16}óæÍ¬_¿ž‰'Ò¼ys¥LHHàwÞ¡yóæL˜0áºÂ´Z-kÖ¬±¾®V­:t ÜC§>uêk ü$x{{|ßR­VsèÐ!òòò¬Ç²³³oùó*•Š%K–ššÊ²eËl*r™L&¶mÛÆÒ¥K™2e íÛ·¿¡œ¿þú µZm}.Ø{8zâ‰tìØŒŒ \]] ÂÕÕõ¾_ÛÉ“'9}ú´õõ‰'¨S§Î-~ïÞ½|öÙg >œ:ØœËÈÈ`îܹøûûóꫯÞPFNNŽíô÷÷§}ûöÒLè=¢qãÆ¬\ù©©©˜L&êÖ­[)‚k/_¾ÌÁƒÑh4Öc:î;ô?þøƒE‹1nÜ8†j3”ŸŸÏ믿N­Zµ˜5knnn׿ììLëÖ­­¯œœ¤ýÎ÷™LFpp0ÁÁÁ•æš\\\hÚ´)¥¥¥6½[Ád2±dÉŽ=Êœ9shÒ¤‰Í¬Ñ®]»˜;w.ãÇgÈ!7noذ¡~J1 ÷^7ýüü*]»×®]Ûf;Rqqñ-§FŽŽŽæÍ7ßdÈ!Œ3ÆÆ6–””ðúë¯#—Ë™7oÞM×ΫU«f£›...R™ã{Œ«««Í@¶2àîîNxx8ƒÁƯÞС—••±iÓ&æÎËäÉ“6l&“ ­V‹››ÉÉÉL˜0   fÍš…§§'Z­¥R‰B¡¸¦.MÅK\¯£W¯^½kfned¿páBvíÚÅâÅ‹ §¸¸gggœœœØ¼y3³gÏfüøñ 4ˆ²²2L&...6kïWnI?%þ‰¿¿¿MeBB)))ÿ³£¹cÇÞ~ûmž|òI^|ñE, ÅÅŸ»»“––Æk¯½†ÅbáÃ?Äßßßj7¯W~ÓÕÕUÒM‰ëêEHHÈ5~ö†=##ƒeË–¡Ñh8~ü8'OžÊ£2ßzë->ûì3Ž9‚¯¯/óçÏ·ö&‡ &MWJÜUþøãV¯^Mýúõùá‡X¿~=?þ8Ý»wgÖ¬Y”––rüøqâââæÅ_”‚$î*………,]º”¬¬,’’’˜>}z¹AU(X²d ßÿ=;vì G,^¼¥RÉ!Cnº,$!ñoPÔ¨QƒùóçSRb[(ÁÅÅ…BÁ¨Q£èÑ£‡MÉ8gggjÖ¬)µžÄ]¥M›6¬]»öš} ÁÁÁ(•J>ùäŒF£Í9///iªRâ®ãááÁœ9sÐjµ6Çår9<ùä“DFFÚØM…Bq[kó·íÐ=<<èܹó ßADD„ÔR÷œºuëR·nÝžïÞ½»ÔH÷¥RÉ£>zÃóMš4±‰÷¸HåS%$$$$$$‡.q;\=ý&!!馄„¤Ÿ’C¯Bh4Ö¯_O×®½iÔ¨=zôã§Ÿ~F¯×K#q_1›Í>|˜¡C‡Ó¤I$-[¶ç£–‘››+P‰ûŠÅb!%%…Y³Þ¤Y³(š7oÍøñ/w^ÒÍ› •O½‹ –/_ÁüùßP\\hNJŠŠ}û¦òÉ'j^|ñ…ën¯’¸üõ×^ÆŒy™ÌÌêÑ0pþüüý÷Y.|_ʇ/q߸xñ"&üý•Ù ââŽqôèó|ÿýji‹Ÿ4B¿÷äää°|ù·hµ‘@k B´ÅhìÄŠŸsñâE©‘$î |ùådg!Dg  NYYg6nÛŒJ^±¤Ó‹å1Tªp¾ür.\¸fð¤×ë­3K?ÞGÇtd²ü«ÞUŒRyž¶mÛVù }wm„n±XBX“\.· Ô²X,ÖFþç¹­VKLÌ),–àêìcÕP«8}ú4z½¥RIZZŸ}öû÷ïÇÑÑ‘Î;1iÒDfΜÂôésÉÍÍÆb©ŽƒC—™3g·ûì3 Mš4¡aÆüôÓOÝô…»»;íÚµ &æ/ÌæzWÒ5xyå1¥RÉwß­çøq BôÜ*Œm0±±ÛY»vo¼1÷Þ›w²•””àååEµjÕnè”/\¸ÀòE‹¨“žNkÊ×ʀCII,Z¸å+VÜ´,cU¡wêÔ‰ÿû¿ÿÃÝÝ'NXkKwïÞ @VV?üðÃC§ŸÝ»wã›o¶QR’wÕ(½™,‰=:!—ËÙµk7[¶@ˆ€WE»ÖáÂ…C¬^½–öíÛ3uêk×8«‚‚\\\ðóó»áhÆd2±àƒÐ=Ê“€`‚8•Š%ï¼C·îÝiРÁÛþ¼öÚk„„„››ËÂ… ùøãùøãqrr"""‚°°0›:çÐ¥‹'{öøç° lK¥qco4¡°°?^…Z4¢À—_~M÷îÝ8p ´~Ú`0‘‘L&£zõê7ŒC2™LlÙ²…¿¾ûŽ^eeVϵXØõÝw„…‡óüóÏ?p,ÅsÏ=gœÐ·o_>øàJJJ`äÈ‘”••ýÐL††Žpüø6Ìæ†€™ì<ýúu ÿþÈd26nÜ„…ÀÀ‡òµöê Á9ƒÑh´¶qQQ_ý 7n@¯×S­š'ãÆeèС×uêÉÉÉäž>ž³gÏ¡ÑÈÑéÁÍ­=?þØž«'Íf3+V|JJŠÌ—2C€íÀ~œhÙ²¥U—úégNž<þÀQÀ‚0블x™¸ÄD+¬éŠèhN=Ê‚?¤qh(;år™Í\ž ŽŽ<Þ°áéãÿuNÑ,\¸¡C‡Ò«W¯;Z[(**bÁ‚Ö×>>>ôîݛڵkW™‰gÆŒY;–Jq± OOA›6 Y°`þ5½ï'N‘!€ 4i} ކ ”GÄ~ÿýz._VPž5Nœ}øƒÐð«èA†Z,ì?wŽå}Äç+WÒõ©§ØùÕW<¢×ãä§ÜÝ™4xp•äçç³}ûv²²²¬ÇÒÒÒnùó¹¹¹¼ÿþûèt:æÏŸÇÑý¿üò ñññÖ×íÛ·¿i ÌÊFaa! .â§Ÿ~'/O££™ˆ?¦N}Þ½{Û¬ukµZŽMú]åÌjÞÔª¥cðàÖ£-[~#99hø#ã0$à„àÑŠnª¼¢Ãë¯Ñ°fõjÚ¶kÇÄW^aÚÉ“˜ôzê ˆ•Éh;`ÀmEÊßOöïßÏáÇ­¯Ï;w[%£ûí7Ö¬YÃĉiݺõ]CZZší ¤wïÞU&ÈóJ§fùò/HN.Àd†O1n\}ŠÿztFC|üy †&Øîòªígøðw­¶-++› ~­HO dàÁ,˜ˆ:Q¾˜$€:Ûü‘£O?MÿØõûïì?}šf» âår µÖVv.]ºÄ¶mÛléh4š;t“ÉÄ®]»x÷Ýw1b/¼ðÂO·{xx0nÜ8›)SWW×*ÕÃ|é¥)8 Ãdê8S\¬''ç0Ã46nü…B^¯Çd2¡Ñh0™®e,íÚµµ®Ñ\¾|™5k¶Ý€` • òp©ù\½ñH 4‚ÝþIµjÕxkölêÔ­Ë7_~‰A¯§š·7³&Oæ™gž©Éi¼½½8p M†¨­[·ÞÒgU*3fÌ ¸¸˜… þ«‰ž={Ò»wïÿ¶sJžb0X±âS–/ÿ­¶w…!ì݇Fó>5jÔà‘GÁh4RVV†N§«Hy½`K9M›6¡yóæÈd2òòòضm+EE‘@$P¨i‹ °ÍsABŸœLRb" B.—óùòåìNKÃÅÍA0ᥗ¬£ÿÊN«V­lÖj·mÛFNNÎÿü\YY›6mbÉ’%L›6Þ4YÊͨU«–íT(UÊv?Ëÿýߊ‹Û DpÅQbbLlÚ´!Cúb6›)---_ª1çëê&˜2ä)kuóæÍ¤§;U „ÎÒ3iMåUºY4™Ø¿w/ïϟϧ_Í‚÷ßgÿÑ£4oÙ’·ß}—ЦM«D»0lØ0›T·[¶l¹±Cÿã?˜;w.>ú(´z___„¨T*Ôj5Z­gggÒÒÒðóóÃÇÇçÚG!—Wé ƒS§Nqøp&ÓPþ™éŒÉÔ†}û6‹^_Æ®]’››KBB2Y:åëæµ+TÊ\TÔ¬HJJ þþþ[«ä@`ÅûÔxQ>t½DˆfÀ¡Â8øúùñÚÔ©ŒŸ0¢¢"|||ª”3rppÀÃÃÃæØ­¾ììlæÎKjj*sçÎÅÇLJ¼¼<\\\pwwG§Ó‘——Gnn.F£‘ŒŒ ÊÊʨ^½úu廹¹UYýÌÈÈ`Ïž}hµQ\‰V"”“'wrøp NNNlß¾ƒÔÔÌf3r¹³9¥¢»èX1†ÉÒP*RPP€³³3*•ŠììËÛÚä@12Ê#ƒS¸vcœDžjggg† Ê’——‡§§g•qäWpqq±­Ýʶ(ƒÁÀÏ?ÿÌ’%KxöÙgéÒ¥ jµL&yyydffRRR‚J¥"==ŸëÎ0)Š*m;¿ývZm`Eìŕٕ/¾8Nûö-ؽ{7111X,RS¯$–©\鸨Tœ())!==€€NžùäâââpvvfâĉÖ+W®D¡P°|ùr¢££IHHÀÉɉøøxÌK/½ÄƒFjj*‹‚ÿÆì^Á“IÆ÷ßÏŽIIQb±øR¾ÌBùºO3À³Â¹Ç6lØÀ¾}{©[·;v¨pÝúŠ>¥;:dÔEKùnÍ+±êz èøøã6Knnn·¼óA`÷îÝlذ/^l=>pà@ÆŒÑ#Gxÿý÷+R6S¦L¡^½z¼ÿþûÔªUëj‹¢¢"²² (_αéa±TãØ±£üüó/:¤Æl¬ÐMp ÐR¾,Tœô=z”—^z¿Š%Ö‘•@©¢ë™x_5Ö¿x„„иIëU899=pm~3Ôj5Ÿþ9iiiüñÇìß¿ßj€7n܈J¥bîܹœ={–„„2228xð #GŽdذa\{ÄÇ'a±xa‚Vd’’R›¹sçòÃ)*ªUñžÒ [¹£bÆRVa7/"„ŒñãÇãââJ»vm‘Ëeï·rŒ¸aFP8]Ñ]½2ÖÏ2årº=þ¸|X**>ÿüsk:ÈN“Êd2&L˜Àˆ#lÎyyyUú3›Íœ:uŠï¿ÿììËñì³Ãiffl 3Š]¸p‹¥”ò¿Š±HyPYY1¿ü²“¬¬Æ8Qž2Ó‘ò Ø«$éÄŵªP¨x¶oÿ ¥Kz¢¡¬=XýôÓkFþ•ýÇk±XÈÌÌdÆ =z/¯j<ñD?ºtérÙ—âb-yy½æUºYä³eË´ÚF˜Í=+Ì›…òÅœ­”`&UMP›œœNääx!“e°wïçXÌjd¤ Hy.…#ÚÀ!ÊÃäjyr9y¼õÊ+4jÔè¡ÕMÖ­[wM¤ô•]>>>üç?ÿA¯×Ûœ« ÉL4 [·ne÷î½”–êéÞý1ú÷¯ïu·ÖZ,òò²*ôÎTÑ‘´Tüí'#£kÖ,C¯ïP¡E2 1ð\1Ö†ò57 †v< ½w7ÂRFù„zfêpŠ8Úa&†ò=E!@©LFª«+O=ÿxþy:vìøPë¦B¡ ^½z7<ïèèX%w ¨T*¦M›Î7ßìê „?ýô}úüÎG-"88øº®¤¢ÛS1Ê«°Ÿù˜Í}°XZTØRs…íôÚâàðŽŽ77W Lш¨púþèõÕ)ӯƕ"œø ž(p@†…#¿‚L''LÁÁ<Éè~ý0`ÀC5“i£—âM%''³xñÒŠ&€‹‰ ޱdɧ´mÛöº•€€ärÌf=ð{ÅTwÅß劑wB…R:RžÝè2‹2™?NN¢B‰ka½)“Ac7\# ü ¤èŒÔ ‡”¯©€£2m:ubÑâÅÍV´‡‘ÿgï½Ã£,·õÿÏ;3™ô^HbH¤ÍPEETë¶qŽ ¶[,{A±`AETP@6XèR¥‡ @’@zïÉL¦¼ïóûã}&$löùþÎ1AžëââÊL2õ~W¹×½Ör8|þù—ìÙcEˆ±è³×ªZÈ_|OròŒ9òçååI@@¥¥&™“„£ë1<_„¨G¯xçH|^./ïR%“É7·Z%Z5@ê†S#ˆ®q˜©Dò=WM˜$:ÖˆfÍšE¿~ýþãKÿªgéÒ¥,]ºCNÔuRNgÖ¬ÙÈ Aÿâ¹çþþ‡®§§'¾¾Òš¥É¤§³´‘ !:H¶¨ ½üd (a˜Lxx8äï»4F®ã‡B©%Aµ ”`Öø˜ÙÌ3Ï<äI“þò[Ø.Ê õäÔ) B$pz¾š H`Ïž“”––žõïn¹åf||l2’\\)ÿ¿Jf>Cd”¹8‰·bµ^GEŵTT˜¢©…½Ð9 †"h'Dd‚›‡Þ, IDAT #%yŽ>)YÓ8•ž~ÑÎe¿tôc·ÛY½z›yµpªQTT°mÛÙ'2vîÜ™¡C{ (¥èºó±“#âZ™qØì‹^Ú ÀfGmíH**be°z¦ÌMÃH/ŽóFJÈ¥É턎UjkÉÏÏ¿äÌ/âc³Ùعs' ±ÍÎ\re8X»vóÊ_îîîÜ~û­R ì!íåÕŸãÑEÂc$6¯Ff®"p:'ÐÐ0ŠÂÂArÍô™ë|n؈@P^–ˆ.AŽDo²Œ±XÈÉÎþK-ûK9t»Ý®ò7üáíª*çœÔ¹sgfÎ|S‚²§ÌdŒÒð&¡×ˆê%]Ô_š¼$iOéÒ°f§@q@B& _‡qO=2Àªê—Ê™9RPvü8õõõ—,ËEo8-ÍnU3œ›L™ò±±^è·A2HuG¯GÆ¡×"ýÑËE=ÐKB±òöCèB¹‰O›tìV #nL£+›ðâDRÙêÊñüjk9vôè¥/ï">š¦áp8âÌ,WŒX­¶sþíäÉ’œÜ}ê[ŒÌ¶MÒVª—¡2·€Î`vª¤Ý<%) ]¼)$F3ð£€HykÜWއLŠ2ÒÒþ°Êú’C¿HN݉Œ4¢×Og!PH·n¡DDDœóoõa½>YÓ"›QÐ…p®Õ]Ì,t¥f!§… Uúm‘`Ð&8VM—#zK6¶x×±M_~ñ³>þ˜ýû÷·êÛ¾t.Žc2™>¼¯4`-³‘jªÏ;Œ¥cÇŽ²…Å"1æhq›iÝ TëÑIs­Ù0ëx]lLx3ŒÁüÊ >€ áù;Tª*Û¶nåí·Þâ·ß~k%öºt.ŽãááAïÞ½ñòÊ•Éu,@.#F$Ÿ3 vww§GèUí tjÝujd"Ø"Dô@—[îhaÍ(Êaô®¡ÍÀ:̬e0¥ŭ>ãyU ^rrsyû­·X¸`Á͸äÐÛ•CïÁ}÷Ý…›ÛFe¯4ž» <ÈÃÿíœËL„lÙ²EÒš«%è"$ : _Ïéþô&3Go࢙Æé*0_·SQìwb°k¸KªÈláÔ›dþ¤©*;>ûŒo^x￟5kÖ\²2Ùqwwgòäÿ&6¶Ø„NGV2fL2×^;òœÙSFFUUU›ÿBï¨B×m”¡«€]§TâÕ ŒFÊq-p=>>n äA``p ^Ì'ޝð¦‘Hùj[8óC@¹ÓIÉÆü4}:S'Ofæûï_Ô{þŠGQî¾ûnú÷EQÖ wGd£(kéßß›;î¸ýœ½¼¼œ#GÒe†ý“ü—)”Š.$víF¯—ö´Xbsd³í"œä䢣Ob4@¥fôòÏat¹ëG…Àž™ÉŠW_å­§žbò£RQQñ×L.Æ7e6›yúé§‰ŽŽfîÜo)+;Ldd$O<ñ)W_}õY‡Ž8NÞÿ}Þxã[„˜(©¡r`«„M…$w|¥Ýä¡«‰ûÐ<^Sñ€°`ªú7”ïÄs£ FÓ¡ý:9êm2q 8˜ì¦&¼›šÈµÛñ‚ñB&ÂbáHz:ONšÄÀôô Þ¦¦‹«TŒFã¥Z|6š£F⧟˜5ë3>„··7Ý4™G}ä¬ÓÁ„¬[·ŽG™JAAw‰7›4”‹ÑéÌZi0kd›ÞÙSb‰ÑpHÝÝMü o^¡†Õ,B£ ”ùûó³Á@`}=åªJÓÉ8!è$h•'OòÇÃ]wß}ÁµKUUQåR­³ Ÿ¨¨(–.ý‘>øßß‚ª:>üZ&O~äœ]7ÅÅÅÜ~ûßHMÕ€ÐK”é2Ë>,íä`t¡æ*ô] ½lé:A@8{R R!šF-°½p¢(¨ÞÞ¬öö& ¡§ÃÁI»ÀBপX+*ذ|9Ó#"øäÓOÿ#lí^#rÑJ 'Ndüøñ455áééyÞ/7++‹%K~Ân.:BæÓW¢«Šýed¹ ƒÁ‚¦Õqz†»ëq `? ?€{MáÛ GÓÀËduÀhdì-·pûwPYYɱ£GùþË/¹Êbiµæ¯›¤×Ö²~ýú?Ì8[övâÄ ¶mÝJII AÁÁ <˜=züGQ^:ÿ»ØìÛ·/ß}7‹Å‚››Ûy¿'»Ý΂‹ÉÏï€^4¡× ¯’™x•ÄçÉÿ”£×Ð OšØ%›t…‰ ]‡Âëxó½Ñp™ŠB|ïÞ¼ùøã˜ÝÝ9’žÎŠåËéqä9­=:VU±3%…q7Ýôo—\TVV²aò³³q3™èÕ»7W]uÕ¥Žmô„††òöÛo5—UþÝTÊŸ~ú™#GªQÕ›$#º0Ó¤Hëw}åô²O§‡¶ ™ÁïÃtМ8ÐIÿné9@Mh(S¦L¡ëå—“{êëÖ®E]¿žd!šŸÕè«ilY¿žŠŠ ÂÂÂÎûÚ­V+;wîäÀ8:ÅÅqåUWÑ¡C‡v™]ô£ÑxA=‰999TVÚΈ‘Ù«§·‰»{:¡¡aäåUpºØ <¶b±át⽄U—‡4H#8@æû!ÁÁͽðéééü2oK«gu<¥yœäùΑ#GxâÑG©:xŸ†,,LLä¥×^côèÑ—²õ6|.d^·ÓédïÞ#è­@¦3.ßÎ’A”ãë»ÿ0JJ q:ëÐEpQÀaüÙƒp2–ŽLÇ›mTáÄ\!«ÒÛ›¡Ã†OQQéééø9Òª‘È g}}}«Óg;EEE¼õÖ[üþ¯áW^ŽSQø!.Ž{}”Ǽ]0þ« ýnŽ9‚ÅÚ™#v„d‰®C¯€ûÓ¹ó0 6`³YЅĽB ¬%’BÊЕ ¾œƒ4TZß›äAƒ1b Oë«Ù¸óôT§“†††ëÐgϞͼO?ÅœŸQUi bÕ˜1¼?sæ¿ýÛ6éÐëêꨩ©Áf³a0ð÷÷'00°™zp8”——ÓØØˆÙl&44´]- ¸“™™É×_KaáIIe¶Ì–lòèfœÎãüòË¿ÈÈÈàûï`ûŽß°(ÁF¤ãat±F7žž¸¾…:¸\UÙøóÏT¾ò ¾¾¾âæíÍɪ*º ×Ó-òË^½zýÛóïO? ))Ü i˜µ©‰CûöñÜã3hß¾ÿñv²?ûØívª««ihh@Ó4ÜÝÝéСCsf'„ ¶¶–ªª*4M#00ÀÀÀ‹ŠÒ­¯¯ç“O>%+ë§'Ä)-2׿¥@ «5‹×^»ÄÄ^|ûí7¬_¿›Š ³–‰‰g°3ˆ[y˜NEA§4× „í%9™™ìJI¡C‡˜L&BÃÂÈP.UX;g00.>þ¼¶Àf³ñýüùüþõ׌¶Ùð–ßYÅÉ“|ûÉ'tŽç¦›nj—§ {µµµØl6L&Só $þìv;%%%Øl6ÜÝÝ oË”.ô8–/_Ά ¿£i^gÁ¦½†î¡'Ò½–ÀÜ/sF£¸¸8úöíË„ xùíòÉÁY˜¼l¸¯†>­åI—£káÓÑ…•<ûì³DDDè¸ÑÈéøkdäšÜÜp:hšvN'uðàArŽåfMk&°L@Mãpv6»wïfÔ¨Qíò»ÙµksæÌ¡®®EQhjjb̘1<ðÀøùù‘››ËŒ3ÈÍÍÅh4È“O>IRRÒEáÔ_=—wÞùUí‚N™‡I SEïâ8.ÍÙQ ³Yl®¹æj†ÂêÕkxóÍ/Ù¿ï9DÒ—'H £ìÞp)@2ÐŽj«ªøâ‹/HÙµ /OO8ÀQ77,v;id¬îî8Ç9©óªª*¶oÞLO»¿¦>L‚òòعs'×]w]»ÌÒëêê˜1c!Ð4°°0žxâ úôéCSS‹/fáÂ…xxx`³Ù?~<<ðÀESÛ·oS¦ü“ÂBô‰ÿYèÕn} ‘Ž*°¸EÙCCÃ-ôèё޽{3qâm¼òÊ+¬_wFIÔ{µ`)‡ 䣄`ŲeÔÔÖHÖñãT¬’¶¯N>s=0 8˜ÊÊÊóîX²d ‘MM­¶#=œN–-^ÌËÓ§·»ïÊÔ§OFŽITTV«•Ù³góñÇÓ»wo ùä“O˜8q"cÇŽ%33“gŸ}–Aƒµ+'a·ÛillÄ××÷“„²²²Xµjp“¼eºz8@æ#VIúä;Q/®¼²_óHR£ÉHyB™n[{ÝW»(òÑÊÑ+EšFÝ‚Ž* }ô*“;0N^Ù ¯NŸNØìÙôìÙó¬ï­±±¡ªœ9,ÔC‚û|»sÛú âoûñññxzz’™™Éã?N§N¸ñÆùæ›o())áí·ßÆÓÓ“O>ù„Ù³g3cÆŒ³nl‹Ç)©A?8¶¢¢"Ö®]G}}º^czZ°$&ËÑç ˜dàé$>Þ£+&“ 7·84í5 äadAd ´,£Hª¡kŽ­^;w’¹s'{ŠÂ5Bp]v7}fBÕÊÏ_}E¿þý¹ùæ›ÏúÞTUÅÞØH ¢ ˆÖÏé-Ù¥öÚši2™2dãÇ'22’ªª*ÞyçfÍšÅ7ß|Cjj*³fÍâµ×^£wïÞ¤¥¥ñòË/Ó³gOÜ®EQðññù“òÓO¿PTäƒÞAq]$]q•tcѵÞ€ƒúú{9u âãÁ××7“!™Õgò=>2Á)Š… *+‹Â¬,ÖuŠÂHéìÓÐuò¥Cß³y3Ÿþ9/¾øâ9Y¤Úš¼ÎÒ»î%±©ªj»sè†ë¯¿žääd¢¢¢HHH`È!äååaµZ9|ø07ÜpQQQ\uÕU 6ŒE‹µ9ZrÉ’%ÜpÃ-ôé3ˆÛo¿› 6PZZÊÌ™œ<œ¾}3|øHæÍ›OCCC+‡îp¸I3ÕA:ö$ôö´RôOW •t²9r8ìÞ¿››ß½™E[àµÆÆ˜b:øZö™Ûe.UŽ®v$#ÑQ@!¨‚$ô9JM2„“÷ÕìÝËokÖœshB||<~~ärºcÞµ$Óf6Ÿ3h§{÷îŒ5ŠÎ;ÉðáÃñ÷÷—ß™ƒ•+W2nÜ8IHHàæ›o&==ýœ“ÿŒ£ª*{÷îåî»ï#)i0W^9ŠùóçS^^κuë6ì’’‘˜8€W_}ÒÒÒæïºªªŠòò:% =L¼FÏé^£$AyЈټ™þý{âããC^^>Ï=7—I“Ê8”–ÏU<ÊdPŒhÕý®¢‹5«Ðõ½$?5½Ó!áè o¡è}ÀèÚù¨Š ¾>c9NËãííMTBE´î¸·EîîÄÅÆžun}{8ÞÞÞŒ3†þýûI=8p GŽAÓ4¶oßNddds²4fÌâââÚT+ª¦iœ:uŠéÓ_eÀ€¡ t/¼ð2§N"--{¾}‡”4ˆ»ï¾—ýû÷·²C‡EˆP™>ô•λ£´@tAqG閷лw>>VÖ®­å»ï¾cü7²ü—_ˆ±X¸NÚ½ò³Ø±ôÖI_‰ÍÒJû QFÈÛ³åïDƒl66­^ÍÑó Cêß¿?Fc«Ž{ÈUºtïÞ.E›¦–Ôdcc#»wï¦S§N˜L&rss¹ì²Ëš÷ zöìÉüùó±Ûím‚v·ÛíÌœùï¿?ÆÆx #‡±jÕ$FŽÀŠ" !z“›[ÌÓ©¬¬â™gž 66£Ñ‰ªÖÈÑ]!\-)£0tñÆz ÕÕÞüýïŸðñìÏpô²â *Å5t+Ñç™%Áä&Í­ÈPʽ¼p·X%Ds½Æ]Òÿ’Qåe2¾-@¯·›€ ›¹ïûlŸwLL “y„/^}•úº:‚äcex{së¤I$$$´[‡~&m~èÐ!ªªªèÖ­EEEØl6š3‡ÐÐP4M£ºººM¼~!ëׯgÒ¤)”–†¡iQ€•ÔÔ7èÛw.ÇQQÑU޵ðÖ[KÈÎÎá½÷Þ¥C‡äÕ2àt—”f¨4}è›~ìØíá|óÍï¬X± ws7Ê Ã,"x•¡”SŽ>¬xºÈÈ+ {M&œB0Ôéd@ j99ÇÙ³ç~~ûígâããèÚµ3ëÖí– ­Láa6™[ÿŽ.̼Œ´´Ze ÏýÝ‹Pç“D9¬øqZ™%mg’tÌ5Àn77šœNºÁ•œž°$YÍl\öF/iÖÉû|…ÀQVÖ¼ýlçŽ;ïdáüùlܵ‹nN'n@¾¢PÖ±#O›ÖþUîK—.eçμøâ‹øøø`µZqwwo\OOOJk#=//Ï>û‹%YfÑ„аX‚X¾|BŒ‘6ÍæÅgŸÍåÞ{ÿFHH]»veĈÞlذKVlü¥ Û&Áé”TRŒ¤Þý@i¤ àwÜýó¸a‡Bz© PÂ7NFšG%Àìf3¦ÐP‚<<ðÌÉivæguòÙ -~®5› >ïÒzƒÑÈú•+9˜M`Tw^w÷ÝÿE3{;33“—^z‰qãÆ1tèP P¥U­SÌnX­Ö6ñšËËËùâ‹/)-턦 ”߬Àb cÇŽUÑ}„°"ƒÓV¯Þ„ »¹ñƉŒŒdĈ+IIùÆFÉ 9ÑWõZdØ·QfCcd6ä ÜíŠozq3³Ð(•+Xôü~ºpÈ(¡¡ø{y!ÊÊèâtž›*­%OÕŠÂegÙ¾ÕL­+ ÆçÍ™3ùî›o8rð ³™¤aÃxøá‡Ûu°yfR1wî\ŠŠŠx÷ÝwQU›ÍF@@@+§àéé‰ÃáÀét¶ ‡¾dɶn-@ÓFsºPØ…C‡–Ëo{<®%SBDýsæÌåÝwß`üø›Y´h G¢»üû“’~ ‘VðZ\£k|&ñ9^Ä;¬äÉg6ʿ؇>?Ρ(8}|ð Ç7?ŸÎMMg-eº²y‡üÙõi[c`ày·5úøøðñçŸóõW_‘¶c¶†âúôaò]w1dÈöY rQ/«V­âÓO?å©§žâꫯÆ`0àííÝ\KhIo»¹¹•ލ®®æùçŸoþ9$$„ &œwÍàÿëIKK£¢B“×å ÑMÆ{æV"Žòò]œ8q‚ÜÝÝ™1ã ¦M›ÎÖ­?!„B4"D=Ng74mŸ4}ƒe–„þ˜Ž8R'`ÌZ‹·H¡ Ó;ØbÑ—°UU"««1ª*eBP,ãXE^2G% }ä¥P)³öc’n²ÇÆrÕˆçyùøøðè£2qâDðôô$$$¤ÍЙeee,]º”¼¼¼ÙAöÿýÉ“'™>}:AAAüãÿÀÇÇ„XZ´û9ìv{3£tæ™?>)))Í?_}õÕÿ«ZÜÜ\N*FÓ’[`SÂâ2‰––.ÔŸÊJoNœ8ÓéÄÝ݇~„ªª*>ÿüG4ÍC:ôZœÎP4-!JÐûÑ;Ÿæ}ÌÝaèJŒZ9NÔrTè% ƒÌ„¥™Ý ××ã^_O‰ÍÖ¼xÕ e9ºŠÄOü'$™#³§4Eáíûï?ïg`6›=z4ýúõ£¶¦Å` $$¤Mu^¬[·ŽM›65ÿ|âĉ ®s«ªÊ¼yóX¶l/¾ø"}úôÁf³áééICCC+Šº¡¡ww÷³:óìììV¶3::š &ü¯¶Nmذ U¥µêÇ kL?#ßs:³sgJ³H÷Š+®àÍ7§òÖ[Q\|E1 Dš¦àt–"Ä1‰Ë4O`O܃ˆÍ 契.ÒÖˬ:}KA50ðlj"¨¨Ån']Pì.±Ù(³óDéÌ÷IœVI†3ÝhdPÿþ\~ùåçý zöìÉëo¾Iee%N§S²bAm&:uêK—.m5ùî|­Ì&—óÓO?eÚ´iŒ?¾ùÎøøxV¬XAmm-AAA8NöíÛGïÞ½Ï ÊÀÀ@ÞyçÿÓÈX¯ó þ8]kñ¯å±b0èÑr~~> ²xñ÷¤§§³råJE!??ŸC‡Ò©­­%7×—VëPpØ _~c}™F¿€ƒ8ywtÐת*IÒ鬓”gÉäÈX6Q:ÿlooj›šØ¬ªxK°ÿ–1›Ímvw}XX“'OnuÛÞ½{/Ø™O™2…ððp^ýõf±[dd$~~~¤§§3lØ0 1›ÍçÄÝ{ï½ÜtÓMÿ'ïYUUrss)//;6ÏÔE¨z@RQQAMM F£‘—_~™I“&±zõjJKKq:ìØ±“ºº2Nœ0 i­ƒSˆíþœ¼2‹PhÇa«ªãÎ,ƒÆã’·mµb–¹Ôvy_„tØÛeÁ)8êæF…Á@…ÍÖ<‘ÛäéIIq1MMMçUª+ŠBhh(¡¡¡mŸ£FjØýúë¯pÖ××3wî\~üñGf̘ÁðáÛéõN:±jÕ*&“ »ÝNFFÆ ;+ÛÖ¹sçÿSÛY^^N~~® ÑÄ¥óߣ?())AÁM7ãÆDznÝ:ÒÒÒpwwg×®=””“ŸßHccØé`6¢’öÃú8êқǹîq•hÐ5D{P!çpìpP‰>ÚkzÇ]çÚf°Ìdâ”шf³±Y†Év£Õá ¢¢__ßsÒ犢àçç÷o‡#ýY'66–©S§¶ºmÇŽçvè?ÿü3Ÿ~ú)7Üp}ûö%??¿Ù`&&&âããÃÂ… ™8q"dÏž=|õÕWmâÍnذï¾[,a…^é3Nå &“CFŠÑòk¶èÖ-†uëÖ±uëÊËëð÷÷døðÁòbÞ@ff#B@B‚;þþä‘-WV´Œd«ð`]8Äq^!€ö°œÃ4!Ðåtq2ÛvAi¸$ò7±«*²&´Ï` S|¾¾¾pë­·²lÙ2zö쉯¯/‹-¢ÿþ<*÷ó0kÖWW W¢‡ÉŒG÷ŒÆ"@CUm-òŽââ ¨¨˜gŸJNN&“Bbâåôí›Äš5IIÉ¥©É@X˜BtG_Ü”ø qqqäçç£( QQQ >œü‘Å‹3hÐ RRR(++ãúë¯ÿÓ_{cc#ï¿ÿ>99Òywåôâ”:%°#„kÜ5èÒÉ#ôêu7/¾ød i11\sͶmÛβe{¨«S0›UzöôÅìfÂB‚dð²Â §| Ї,8íD_ä-³õ àNN,BM³Xª(˜… Ð…¾¾ÄwîŒwA}**H/ Ông÷Ï?óUTÿœ>ý¢›rN‡>gÎ222°X,¬\¹²ùŽ•+WÇóÏ?ÏÇÌòåËñòòbòäÉ 0àOáÕÕÕ,\¸ÂÂ(™wì@—ì„x{ñÜsSùì³ï(++Q”2<‰‰éÊÛoÏ¡¶¶B$ (õìØ±!Šhjº !ô™ØÙ'–/j¹…L6¢2–Óíl[PÉÇÄ¢ÐÈb*6ÌtçG.ÃI zE³%Qî)©øò  ®7ŽÔ­[qsscüСdeg³oÏnr8š/!OtÈ:HuïÞý/5õmóæÍ¬]»///¦L™Ò|û=÷ÜÔ)S¸çž{¨ªªâ…^@Ó4’’’xì±ÇðõõýÓ_ûêÕ«Ù¹³!®—äv̆êñöÎáÎ;oæàÁtRS—á(Š?¿JúöMfá‘“Ó!ºRRR ø™êê.1 pRVú;ŽÒT†[8€Ú,r©í¦4ps‡##@«‚Ðj=ÀÌ—™xKÒÛ Éјz FyA5å匼â ,6»vî$¶¡¡ÙñÄ Ay}=‹/æÆoüKíJ¯©©aþüùdeeñå—_òÍ7ßàææFJJ ‰‰‰üóŸÿäÃ?döìÙøúúòÒK/µ‰®(—ƒ IDAT“}ûöñË/«Ñ´1’¬^&“! 8Áˆ‰‰‰á‡VátFƒ¡ ®dÍšõ9¢âtöŒìÚ•ËÚµ¯Q_ï‰Ó©‡ˆ6ÛAŽíÛ@"p‚F*•ÝÐÅþu°1´ªpp]ï3]Ô¶Ó÷]EªôÊ~ãÆÑÔØHaV=££éÖ»7«W­Â³ºšþB4 z45±~éRž|òÉ¿ŽCß°aÃY[¢\´ÐðáÃ:t(š¦5/Vh N¥¬¬ŒÜÜšEVÖeèÚ_£Äg$UU?K4ø`àgŒc(‚DÀ‡rRYL4¡¢bçvÈÞ‚nk ¦Ü…þJªÐeu®«¹(±Xhܼ™¦ª*L?~œâ¼< Ñzµ„j%åå444´Û‰„ÿ“NJJÊ9ÛIÝÜÜ3f £GFѦlçñã™”–º¡ëŽ"Ð;Y¸æS¾ûîb¹çž¬_¿MÓ¸öÚ‘ìÞ½‡¥K÷ ª9­MŠ¢ºÚ5‹=؋ۉA—ÂõÆÁÏáë¨ì†#Z]>]„ ÷ ¹¤cå«©Eá•#y×§U TAÕ¾}Ô"³k—-£¦ €9%³%6}ª‚ìÇ_—¦ qƒ¡ÍMÞòôôÄËËS’4Ðå>Q2ÖÛHDDDó,ß'žxƒÁ€‚÷Þ{òòù»-OtiZPF¥TKP¸#øáäN<¥aË“Di,*ÖRƒ­¼L#Þ”3‡ ªØ)ó&7ôšúA!./'Y|êÚZR¶m#H:üÒä’ ¨3›éܹó_nKÕ…à®­~&!!Aè•iU‰#ä=™xzâææFSS÷Ýw_svðàA֯߆.rky]eðY dáÇ1üÐñã$!ðC° “Yò¾xî‚j?Øx%\· ŠÊt¾`z÷°¯|äí€GCý‰‚&«•´pA¤$]-TÄvìxN!âÅ|þíT¥Mà~~¾xz:¨«SeØGþ+ÆËk=îîîX,µ˜›^WWÇ[o½ªFq¦ÐXç"exr˜šš•ë Ñ_P_^¹N¡[lM2D‘Òî¥H–ÈU½ß.¯œ¸ ¥zÚ¯°®2ˆ:yäùrNBz‰Ò½6«…ð„<þBK€Úír–ððpú÷À¶m˰Z#qÍR”üüJÙ¾})))FúöíÇ“O>‡ÆjuM¤n)ä±Ki¸QÊåö¢wPv–€É@et’€9Ž.~› QÁ&~ÃÉ~þ‰‚/Wó.™ÔsLÂÞ&A>Lö¢#¹3úfìôz’— 7lòçÈädxiÉJ;:×]7ŠÙ³—`±ä#DŒD@Fã>,~øal6qqxè¡éׯû÷狀º‚ÖcX\Ç ˜PÈ%F^¸.lºoɰÁ„^‡Üì2ÕÔl‡mWš«Á´ úYu´¯oakзS÷¢¹Tä/?KLž”†5IþþQà¤Ó[%—NÛ?$:Ú‡²²ÃÑGºR;AD„™iÓ¦ÑÔÔ„¯¯·Þz+wß}äçÒºPã:zϹB=¨ ½-Ò t†ãá¶®°ž.XîB/)Ž•h?&ñê'x(ú’U§tþVôÑÄÉB4;í!¨ãt€°}ÀŒ¯ä ö»»sßwxÉ¡·õc6›yæ™§9u*µk¥®.ƒAÅÛ»«µ‘­[}PÕDÀÉæÍ«Ù±c~øuuµá†^sO–18(ݶ 3 =l—ÏwX:Ùa-r§HIe£ÏðòG0Œ­¬b* ¯‘Ï Æð" UhèjáLix[esò1+Ðå}‹å%¦* #Fæ·ß>ç.âK§mžÁƒóÚkOòÉ'_QRrM3âéY†¢Ô²¿U‚13زåAfÍzG R…Äb˜4žBæÆÎô™×]¥ó“ÆÎŠ>2Ø·6‘†ÒÄ4€Ø +®Û ôôlБo“AÁ ¬¶ä<¤qÍ–Fs«|^ƒ¢Íûï½×¬î¾tÚljå£fòÀP\|Ц&_<<ª1J(.6““cCˆH¥’õë_¦¤¤˜N:¡w8%Ñ%‘R‹®9·•¨Òñfë‚ h¨Î(;-Û’…üE:÷HôS¾´}¤eî'q­Ê„'ªEîr^±è‚:OôF»ƒòUyðÈ“O2ù±ÇþRýÚõúÔàà`¾új6+W®äСtÌf7ÒÓÓùé§ã1×\!›­3{÷®bÉ’%„‡‡c2Eàt¢7B„Èܤ}ðe*5Fp4b;¤I½þ "ÔU…:Ö‚|ê€@p…©dñ:0ƒá¼E'1!h”ÔûŒøÖ"ë2taÈQÀâãÃÜï¾kªíKç?;žžž<þød®¸b¿ÿ¾…¦&+uuuüðà Tu®ÂŠªÆpâD |ðwÞ9“)§S ï@‹ùK‰4“M@§ôDŸŒp]àæÚí:éˆ3$¾ü€ FðÚÕ×ëB¹ØÍP¯gß.ª³FþnKÞªAÞÖ]þœ {{3mútÆßzë_®ÔÞ¢( <˜+–²fÍŠ‹Kðòòâûï—’•ÕIÚABt¦±1‚9sæóÌ3àNAAºl-Tº×ÉßÄ"H§#§€áî°ª4ÖAÀˆ§ëአW½$v#¥]õG/”ŽÜGr¨4HçnlÁ*ÕJ†³·ü¿PÚãÑãÆ1ý•Wþr¬f»ß‡îííÍí·ßÎí·ßަi\}õõ2nké2ݱZ;±páBzôè‰OµµQá^ûiD_;ÑSºîMdQ&¬§RãYž¿áŒ¨±Dþ®Á|áx‘“⬼IÓ8n.¢ÖdâÅÂPùáÛÑû0döï+ƒˆH`“ÔÕÕ]rèí˜E2dHóÔ©W^yUî<ãŒaëÖµxxˆ‰ 'G“ƒgJ¥y 9 J …¬Eßê/˵¨’3œ±Ö"ã®l lQ(eâ·!®Ø®;~·à`vWVâ'ñè”WGp›4áÈç]ïtb±Xλ ðÒiÛ§K—.téÒÐt½þú·-2oš¹žÜÜ&¾ûn>¾(Š«„$¤åŠ@ŸñÆÉ6¶a%* ´H0þª¦;è3 œvNWã5iyê½½Yo±ÐS¶ eU^^X…èÆÆf|™dNûËlÞ ƒNw ±¶¶YŒxÉ¡·ã£¼œmXB^^ %%ûðóøúæPWgEQlxzºc³ýŽªî•±a].¿œ“99Øíežä¢ÝC䣗Jƒ—,ÿª H•¡Aƒªr*¸†°ˆE”–ý[ëæóàcHNîÈÇï½ËÏGâãpPi0Pe±0AŠä\ÙUàëp°{÷î ‘©ª*,Z¸=Û·ãÄu7ÜÀ cÇþ%Kmòb3™P”³aSÃfs²jÕ~› 2Q]]ˆú´8U=ŠÃqÊeîðñóÃäëËÞÂBÌÒ0ã´¾C‘¹|ªtø&‰Í½2ÔM.‡”]î”ñágg!GC~ÕH>zôQ>š9“U[¶àoµb5È·Ûîp4ÏHD>fLSéééX,– ÊQ]]ÍŠåËÙ´n uu ½új&LœHdd䥀 ØMÝ÷©ÚØlNvïÎÂݽ‰èè  ª“I`2Ua³-Fw ³Y%0:ŠãɘN€©P$÷qºÀéDW²ÛÑëå è¤=è{ÏwY­{÷&MîšKH`ö”)¤:Ä‚¯¾"­¶„ PU ´Ù$ŸàJÝôJ;32¨¨¨¸ I{MMMìÝ»—æÍ£²´”èN¸oÒ$zöìÙî´!•CW…ë®ÁÖ­ßb·Ç¢&’ØÙx`·RQ!šsi£Ñƒ¤¤^dddP]]„Iѳä“ÇŽˆ®-6ËßÎ3ùIb4}Ìk¹çnIm6I0]XU•»·ÞŒÙΔ)ElÜxqqy¼úö NžÌ¢¼¬ ƒÑȬ×_ǧ¾¾Õ{ÑUˆ šù,„à`ZÏ>þ8{ö­iœRž[°€}S§òÒK/µÙIH¥3tè:tX@nn¡ä` ’÷9 4¡i~TVº4çVŒF_ºv¥ªª‚‚ü|PüGF}]Ý$£S œRV˜Ltv8ð„æ gNôÂ’ ½7w0à)¥Y Ä›î"óæL<0€.µ]HKKãÁG¡þî»É:qÅ``ÕòåxïÜÙjý)òqM&Ó9ãššž›:•ß~K,à!_­YÃÚ+øà³ÏèÖ­Û%püÉ'$$„ÁƒغõBøK«§¢K‹"œ¦¦rsšsë°Ð0:„‡røða4MÃ]€›S£0¼€0't>NUoAÛc0P„iUõ6t݆kdöh™ï+šF‘§'¿,[Æ‘#GÈÎÎ&//^½{3`î\Ž=Š‚û÷s|áBÜÎ‚Í í0°Z­Ìýúk>}í5B«ªðÑ4v( «–,áï¿f̘1í*Ë¿èú„ ·²sçnV®Ü€Ý%á’-ó–±2šÌiRÁYIÓŽ$I3š)NÏV¿š—©Ôë„ Óhä°x A/ICnF_7*#N:áï!k×®åÄÑ£(ÙiX›žåïSúÓ½÷J>øp<“&MÂb±°ê—_ÈØµ‹B4ÏËV>> 4è‚"Ìï¾ý–Æ={¸^Ót½¿t–ÏŸÏrë„ —¬ÖŸ|’““yè¡{yõÕ/p8bdÉ'}jÿPô!À®|z#ŠZEýÁ4â\†. Ð4,’btÕ mÀ^!HQŽ) F!ˆ@_^¹Y²J±›®™t€±Âˆ¡@aŽ÷l‚@Dš‚!6žÿš2…ÇŸxƒÁ@}}=+SS‰³Ùš)Ó Èߟ;’’.h_ÀŠåËÙºt)c…hžþÕMUÙ¸e óçÍãíÿѧ—ÎÙOpp0O=õ(EE¯“•µ!‚e¨˜.Ñ6]IQ#S˜“8‹‹ñ).`(pÊ` ^hxu{w¸n Ä5žîÚh0'åƒ×¢wf€.‚ ç´ 38X^ÎܹsY±p!Æìl BÐÌÐ[náÍwÞ!88˜mÛ¶qçâÅ;\æ²…ÀE¡ÿ A^€º=';›yŸ|BÏŠ zHÛ­ ÁþÒR>™5‹^½zÕn¾Ç‹Šër8¤¦î£¢¢/¯ e‡tÜUèuH×X1sqX…¾gm´ü¿XÀ–C7ü€žš†Ñéd¤ÄHc-Mpˆ  ÍÄ(ÔØllÙ¸‘ÆM›ÕTÆ ¼Ã@ç&Žï»…—_zââbŒF#ÏN›Fvx8kM&›ŒFvùùñôË/Ó±cÇ rè»×¯'ÁåÌå ‚+*سgÏ9`\:ÿ7GUUŽ;FVV¾¾vL¦Ti«%Šz¡WMyƒ¡š†W£…>€Ø(]¿¹ÍØ0Ùít‚+ä}a·~ò\Z;zî¶­[©[u˜±»ÀØ ¢º ²NðÙo°ÿ~Eá¶Ûn#dÐ Vxxª(ìV~óöæŠ[naìØ±ÿ6 BðûæÍtlhhvæ®ë)^ÓØ´bÅ%p´S^^ÎþýiaÅÃã8º8_¢m8zÜ€Þ£Ó0r *W¢kÆj>PÜúeAlL²¤-q:ñWU®—ÉŽ·´—Fy¿o3Á¯—2KKJXôÉ'\ž•ÅH! \]YɶE‹øzÎl6‰‰‰Üòàƒ¬÷ôd›ÁÀ>`µ›j<÷üóÄÏÌÄ’M\ Ûm.×4*²³9qâDû¢Ü…TTTŸŸOUU^^^$&&¶ŸYPPм*$$„ÄÄÄó®óü3ŽÕjåƒ>àå—?.GˆA(Š+ûqB«* ‹œðÅŒw©ñ5¢‹*ŽHƒx&ÑâA¬4H»%(£Ð!$sº(Õd"²{wŠÒÒ"oר&‘w1²”ƒi¥<òðÃx¸¹¡©*׌G]M õ ôìØ‘×n¿!C†\Ý#Îs¬¾T„@UÕv+q:;vŒêêjéÑ£G« §¾¾žÌÌL*++ñöö¦K—.„„„´©÷ªª*¿þú+Ï<ó ùùÞ1@f?’-ò¡õ°€ (¸Ë65W«ÚQô’é,hö@b%9©lôΉÝÒ`¹ø*£K§N8¹ÒÒDìqð°y($•€µ¤„éÓ§„Ãf#¾kWBÃñZ­x¹¹ñÂØ±ÜvÛm” !táÜ9² g;žâU]]Mnn.UUU˜L&[e…¥¥¥;v »ÝNPP=zôh“-T999Ü~û=¤¦Ö¢«wb%68­5oy¼Ì-ph€Ž=à¤tO¥Eþ`”¶³› ,³dvÞM¦[»Ðõ&éÌÓüüèÝ«êŽ$Hœ8döíÓØÈWsæ~ø0–º:|y×]TWW£ª*·À=÷Þ{A‰ëÚä,ÉŽMkµi´]8t§ÓÉ/¿üÂâÅ‹©««Ã`00wîÜæ™Ãééé¼óÎ;Í»§sssùïÿþon»í¶6e4wíÚÅœ9 b,®.\}ßôv ™“´ž×”ÓõFƽîÓ§Eäè”·¹Ë1|®­§€2E!ð £ïµ×2j̦Ý}wsfTìÀIÇ©«ƒœ+ˆ–¥‚f3Ýn¸¯æÌ!""â?zïîô»ê*Žœ©ëäÝwßåÁôu”³gÏ&%%…°°0ÊËˉˆˆàå—_&<<¼Í¼‡ÚÚZ>üp6yy—I¦ÈUX‰~àô¸–âÅ<¼­z5\Ùxú”–}½Ù£¡èÊ‘Áõ®YÙ¿ ÏÂ6¹»啽zõjb§ÓIZZ?þ¸˜’8=Réjãe¸½rx9®– lj}¸oÒ¤v‰KƒÁÀ!Cèܹ3ÕÕÕ<ñÄÍ÷9–,YBaa!Ÿ}ö¾¾¾lذwÞy‡ÁƒÓ§OŸ6ñ***ؾ};7nÄnïzÚB¥S/G_ü|DJ°ª›Ë{B”d°”Cd¤iº 5Il–ÈG)Ao G/ožv( ão»Iÿõ_¸»»JLl,_|ñ©óçc‘Œ”kÍô~tÑqOÀMœ@Fq1¿þ:wÞyç9W'ŸëÄ'$0þøöý÷©®¯'(T²|}yïá‡/8Óo3Ý`0CLL ­;­KKKÉÈÈàoû[ó®í»ï¾›gžy†mÛ¶ý©]Ó4öïßÏSOý;#„ ]ô‹ÌOü¤ëT¤c(ÉÇ­@=aX ~—tŽ¿tÚÛ¼¼ŠŽ¦±ºš¬òrj5péx=e´¹ }Ħ— êÂÃyfÊî½÷ÞV¢Ýnç‘^à»·Þ¢´®ŽôZèjôZ}Ë|,ˆs:Ù¸fÍìÐEaذa,úåfþ9»÷ìÁÛË‹)7ÞÈÃÉGí&SªRƒW]ÅóӦѻwïV¯ñ–[ná·U«Øºu+‡ƒŽ22 ‹A]|£ëñRKKIMMmµ×þBŽ··7ÏO›F¿þýùâóÏÉ©ª"66–·ž|’äääv‡ËóÂÍf3f³™êêêV`mll¤´´ôO}áùùù¼úêìÚ¥"Ä]„UÒEÿ"ó˜8y[€Œé.ªP8J)\%£Ä2»)þvÇLyê)Þ{ï=R-bŒ¦57¿å$M´PÍf `Úpç]wýî1›Íü—Œ<—üø#n»w7‡g«Ì¨ÒPüOOBB|ø!‡EQÚœÎáÿïãããƒÕj¥©©I/¢45aµZ9yòäŸþÚ>ýt6óæmEUÇHn‘,Ñoèzói¢êЗ±„Êìçî¤Ðƒ:¡ë9òd†Óµf¾ÿ>{SSùhút’ív.—Æ­AæQÅè=½Û…è®]¹yÂ~衳âjäÈ‘¼òÎ;ÌýúkwîÄKZwí\ØüÀ§¯¯/S§Nå©§žB\`;f{=&“ ª««›Å¨555455QXXø§¾6!;o^yå#êë‡qºps\²DÇ%>#%òå¿j ˈ£–ŽgëB <<ùòþ«3 fêÓOsYf&ýeùÏ5<+MÚÐÀoH×Þx#<ò½zõúÃëŒŽŽæ­wßå믿fåO?R^ÞìÄUZ«¹5iŸÿ§eE777®¿þz®»î:f³¹Ý¤9ï'LŸ>}ø×¿þÅñãÇ)++cæÌ™ÍT÷Ÿy<ÄŽ9¨j?ôJ·ARBWH€zËŒü§»É}€h¡œ¶( ÞèB"èÚ½;/¼ø"ÑÑÑÔÔÔÐËélVæ*œnÿ±žÁÁLž:•/çÌáþ8§@($$„É“'óñ§Ÿâ4›qíy;"ù„–T.0â?Œ0ÏЋݙ$%%Q^^Ί+¨©©aݺuìØ±»Ýþ§¾®††.üMë'¿m£Äh²Ä Aš¶u’ “TûeÀe4ùc潜÷æ¾óι÷Ü{Ï!//•+WRRR‚þw^XRR¾}ûÈÌô©Ð.E…î…T|*\pl…6ùUèoc :©gär®K$4S€¢ŠàùžÏ3räH ‚Fcv敞6#uµTJhT-]Ê¢E‹j,:%•J‰ŠŠbÁ‚Œ?žÜŠîoe×C¸G7“%dnn Ž|H¥RlmmÿÔÙåär Ó§OÇ`00vìXär9=zô eË–¸»»W9¿  €7ß|Ó™1Âêa5AÈÏÏ£°°2di1n«0ž­€ÖÈdÛ°µýF@Ü‘JÓð÷ÏdÆŒ¥dfdp 6“ 0´[7&M™BóæÍÉÎÎF£ÑШšÞDBx×®|½y37®•qR(DDDð÷©SÙóé§´ÖhH¶Q¾ªÞÜtp Ã! {úéGÎÀegg³uëVRSSÍßý:LYBBB˜7o+V¬`ݺu£ iã IDATVQä¤*ëÖ­ãĉæÏ½zõªsˆ®6äääPT¤A~½³BIùäŠ ‰D²…"£ñ Cs$’"\\nðâ‹ÿÀßÏ—­›6Q\\L@` 3Þxƒèèhär9ùùæ n÷b…„ðÑâÅôìÙ{{ûZ±ÐÐP^xþyæ^¿N`J ÎÀ6þSŠ\Ž<"‚©Ó¦ÕjoïŸØØXéÏÎíÛ·Ùºu+¹¹¹æï ëçÐ+ô½÷Þã_ÿú™™™|ÿý÷DEEU9·rÓoD"ÁÃÃww¹¹,sW¸H;À “© ƒ·ÁÆFNQQžžA<ýôLÀÜÿü§<ËÑ=5sÝÜÜhÑ¢—¦©^on¤R C"aT¿~u^‰.“ɘ1s&NÎÎüKÓ¬,l5Âà鉳³3ÿˆŠbÔ¨QVÿxzzV™Ó>sæŒUB›ƒ¦oß¾!‘H˜1c111ÕžÿÜsÏ1tèЇò{ÝÜ).ÎÄ2o{埀#‚ÌcåÓ©S$©©)899óÄ3>üi5jĤɓ1 UB€á|ggGFcŽ À ‰„Àà`:tèP+gn1R>­NÇ×_}…mZþr94kvvtkÒ„ &ðXXØ#9¢îÛ·¯EÇnÇŽ îp:;;ó¯ý‹—^z ƒÁ@AA¤[·nÕžôPl§““¾¾~H¥—0™‚ï‰ñè)ŸØqì‘HšÓ¬Y1½zu$;;A ȤI/ãïïOÌžÝú,ÃÛ ç¥ö/!—ÊÍl‰³3w22Ì9×ÊgèMÎÎôíÛ·ÎY+X¼lŸ~öÉ—/¨Õbçë‹ÎÙ™ÖÞÞÌ|òIbz÷~$ó¶0cÆ ‹ïŽ?~‡žMjj* ¨T*._¾Œ^¯',,Œääd233ñðð 55•Ï>ûŒ#Fù»þÐððv´oß”³R1:/ßVéììÌŒ3pqq1Øär9z£žUçWájïÊè°ÑfgåëxÆŒǧo¿M{ÀKÌuŠL&v|÷¯LZ'}’J¥tîÒ…à–-IIIA¯×ãé鉣£#ÎÎΩò¨µ ¹9r„ÿþ÷¿¨T*t:}ô>>>lܸ‘¢¢"¾øâ nݺ…››ýû÷gܸqµJ*ñ[âáá··G…‘L¯•k(_óø8 G"¹CëÖö·ÄÅÅŬ˜µ!22’ϾúŠi“&±ýòel)ŸMzF¸vàS&Mbõš54nܸN÷­T* 5¯–èõzÞxã òóó)--eçÎìÛ·Y³fѳgOŽ;ÆÏ?ÿŒ ´oßž>ø€Ö­[ÿî÷ÙXNùòÉÊœín”oرòËo2dÈ”JeöÍûúúòÑÇó¶BÁÎmÛ°5q¢<“\ab"3&MbÝÖ­DÔ±Ó-•J øÓ®<ØüòË/üûßÿF¥R!•JY¶lvvvìÙ³•JŦM›¸rå ...ÄÄÄðÜsÏáààð»Þ³D"!88ww[rsR¾BW¡£=+:›eH¥7éÔ) »iL¸u€½7öò铟âfçV%j6å•W0 üwÁ¤j5JÊçЩT¬úðC”J%ÿ¬ÇžñÆ×ÙÞþ%úˆ#QC®ï:°nݺ?Ü+ üý› P4C§‹ |‘Ñ•ŠŸt(¡Q£›¼üò´k×¶Îò¥R)Hu:zH$„ܳÈÃß``ûÉ“ìß¿ŸQ£F‰ZôbkkKlllÇgÏžÍìÙ³ÿ€¡²æ(•>”•u¬0˜—(_|”¤"—'òÔS>|x½Œ²¿¿?R¹œ0A ÿ¿ No4Rpû6ßlØPg‡.R7bbbjœÞqsscåÊ•Èûöõõ­ØzØ®B'¯UD7K€ËH¥©tìhÏøñã« ‚rÕ¹|sùž yŠÇ<«V¾½½=M›5ÃC«¥GE¼´2öhÊÉáûï¿gÐàÁ4mÚTT"+ó§Žñ<oou…2FPžª%“ò G‡>¼ãdz˜¯ eeeä&'ã}3§âp,**¯€%"R -ZÓ¶¢sÙ´B7)ß½û3íÛ{ñïÏ©wŽ€’’2îÞ¥YEþ~é=ºÙ¸‘ >‘jñññaРAH¥¿P¾(¦b }ˆÅÁ!™Y³Þ"*ªj‡P!S0¸Õ`ž {…¬zÝ5™L$%%ÑÈhÄãWNÆS"¡$/Ïb‘—ˆèÐò°ø¼‹£ã $’¯(oæ"•:áççÏŒ¯×iqЯ±‘ËqpsCó«ï€ÖÎî‘\ñ+b7nÌ[o½NÇŽ¶Èd_Û+FBŽxz6f„ ´lÙ²Þòíííqtt¤@"±ÈuhT u\´)ò×A&“1uêT z …â;`C…3°±Q2|øÓôíÛ·ÚEf®JWž}š¦Î5®Ë-{ –JùõR•  °·ÿݧUþÔ›•år9#Gþ __>þøcRRR€ò9¢éÓ_#88¸AòÝÜÝ0v,?/_޲¬ WÊ÷Ž_“HhÁ½z‰$R}O¹"5èÖ­™7o>çÏŸC«ÕÓ¸±/¾ø"Ï<óLƒrØÚÚòÜØ±¼}ìî……x å‹ã²ÝÝywìXñ!ˆÔˆ³³3ëÖ­eõêÕìܹ“üüBœœˆ‰‰aÆŒ÷]´&“Ȩû=zôà›ví¸|ñ"¡&rÊ÷´³cTŸ>ŠAtè5+Oxx8)))H$š6mZ§p5áààÀ /¼@QA?oÞŒ­J…V&ë}{æ¾óÍ›75Hä¾4iÒ„+–“””„Z­ÆÇǧÎ[kbÐàÁ$$$°mÍŒwî ‘HPòò´itìØQl|‘ûâââÂôéÓ5j™™™¸»»ãïïo• -[¶dÆìÙ|òÑGì9}… PæìL¿çžãÏ?/îšúƒ•³º‚ %88˜÷, aìX’““iìîNHh(-Z´x$÷=ŠX›ßdgƒR©äõ3øä“$&&"—ËiJP‹ šjùë •Jñ÷÷opÀ_£P(4x0mÛµ3o; lÞœÇ~UbVDtè•Êù =zУG±ADþP888о}{Ú·o/6†È®#DPPØ«ƒ&6ˆˆˆˆˆˆèÐEDDDDDDD‡.""""""b ä‚ pçή\¹Bzz:ÎÎÎÄÄÄXT®¹rå gÏžE£ÑàêêJ·nÝêœÇ\D¤>èt:âââÈÈÈ °°=zЦMóñ¼¼ÿüslmmÉÈÈ 00ÐìÐããã™3gÎÎÎpäȶnÝÊ’%KÄí®"¿C·±±a„ <û쳜?ž9sæXœ°k×.L&K–,ÁÆÆ•JE§N8~ü8#GŽlðKa2™ÉdõÚ¦ÓéÐjµØÙÙ5(Q‡È///¾ÿþ{ Ï<óLgÿÃ?0wî\ú÷ïÁ``Ö¬Y¬_¿¾Á]ŒF#R©´^UðŒF#“É„R©¬wŠW‘?&2™ŒaÆѷo_ÒÓÓ3fŒÅñC‡q÷î]V­Z…““jµš˜˜bccùç?ÿÙàë $I œTê¶F£Á`0`ccƒR©·à>*]"‘àää„““Sµéø<==1™L”””àîîNNNvvv¸¹¹Õû¢z½ž„„Î;OAA>>>¾DGw¤yóæµ2ž&“‰ëׯ³{÷n®]»†T"¡CÇŽ <¸NU«Dþ *—ãåå…Z­®b¼ îîî"jµµZÝàé ŒŒ :Dff¦y[X»víjÝaÌËËc×®]œ²³³ñöö&&&†'žxBLöò(ØËðôÓOsýúu^|ñEÜÝÝIKKcâĉtêÔ©Þ=pà³gÏ'>^…V«ÄÁ¡”ÇoÊÂ… j•æöíÛ¼6y2YÇã£Õb’HˆÛ¼™¸£GYµf¨˜<==™8q"›6mâÀ¨Õjììì˜:uj½e&&&2þ|¶m;Fã„DRFd¤3fLeĈátê………,\¸ïW¬ ™J…Ø&—sôðaÞ[°€ˆˆñÁýèÝ»7W®\á•W^ÁÃûwï2pà@z5 ]´Z­fÁ‚øúë½ddØ&|}õŒÝŸùóç=0 d2™øöÛoùïܹ8§¤à"$K$ü¸e ï.^ÌÓO?->¸?9Ò…f®^½Ê¹sçˆŽŽ¦ÿþ„……±oß>ÒÓÓ«U˜ââbóŸJ¥Âh4Véa¾öÚÛœ?ïˆVÛˆ¡´´/2{ö¿«œ_+?ûŒ¬Ã‡‰Ñjétž()áЖ-ìÚµK|ª0L&¥¥¥ºa0,W¥RqäÈìììèÛ·/]»v%##ƒÓ§OW{¾F£±¸‡ÊéšJŠ‹‹ùì³Ïؼ9fƒ à—_|X¼x—.]âAïKll,»¾úŠÞ*Ñ@ÐË` ðÀÖ¯__íhNä÷E«ÕZè…F£i°Ìäädâââ§ÿþ„‡‡sôèQnݺUíùF£ÑâJKK1™LçìÞ½‡¥K·’žÞAè ô%=½Ë—ËîÝ»k5ºÿpölšÝ¾M7A è!4¿}›æÏ'''GT†?F£•Je¡¿Ö‹ZÐKKKY»v-]ºt1ל9r$ `Ë–-¼óÎ;s/%%%,_¾ÜüÙÍÍAƒY,žÛ¿?))%Â@Ê‹=(0ÛsèÐ’’’î[…J~úþ{Ú8V|'¡¼ddNÇî;ÅžæŒüü|vïÞMFF†ù»´´´˽xñ".\à‹/¾ ,, €F±páBÆ_%D¿gÏ’““ÍŸüq‹ì·oßæçŸÏ`0DN÷tHZpîÜ Î;GxxxasNÇ… hœ™I£{zË@ £‘‹qqàää$*ň“'Orüøqóç„„„ER4 ›7o& €¹sçbccèQ£xî¹çX½z5Ë—/¯2g}çÎ ÛéëëË Aƒhܸ±ù»ÿýïk4š@“{þ³ ee­X»vÝíÞ/¿üBiZ¡÷X^Ê«¢_MOçܹsôïß_Tˆ?ìÙ³‡üü| ?[/‡n41 UÂŒ‰½^ ŠéââÂÛo¿}ß,..F"±½G¥*±C$?p$’êbQ þ`4nܘñãÇ[|wàÀËÕétH$ +•JͺùkFŒqßÅrz½µÚˆ üZ7e‚µZÉdºï<¸Éd¢¦åEÂ}zÖ"¿¿Në¼cGùÀ¢!©J»y¯}¼W7íÐh; ‹·jÌžEEù¼/¡Û(T ŠÑvþáhÒ¤ /½ô’Åw?üðCçK+GKàÌ™3Ç‘#GP*•têÔ‰]»vñõ×_sâÄ –,YÂíÛ·‰ŽŽ®×ŸÐÐP$’à× ˜½½ü[:¤R){ô éWµvUÀ-™ŒžO•‘œeË–qäȶmÛÆ—_~I÷îÝëµã¡Q£F4iâ äýzÌ…“S ¾¾¾÷]U¬P( !»Q#Êîí()@ˈ«Tùc••ÅÁƒ9v쥥¥œ>}šýû÷#—ËéСÇŽãË/¿ääÉ“¬X±‚Ó§OÓ³gÏz/Œl×® Ri:pï´¤ ©ômÛ¶yàÿ‡……!qq!¥Â‰W:ó›€ÜÙù7)n%òp‘œ?ž•+W¢Õjñ÷÷góæÍxxxΔ)ShÒ¤ ß~û-øøøðå—_Ò¹sçz]0::š¿ý­›6 ¬,ApD"ÉÅÅå2o¾9Ù"¡MMÌ|óM&ÄÇ{á-´Z´ÀuGG"úôáïÿ»øT!ôz=Ë–-£  ///.]ºÄåË—™>}:ýû÷çÿû_}õ~ø!vvvŒ1‚çž{®^× `ìØÑ\»öwï €‰›³<óLgºwï~ßí=‰„!C‡rúÌv­[Gk• %pS.Ç®K&þã¢C„HLLdÉ’%h4‚ƒƒÙ¹s'{÷î%**Š1cÆàííÍúõëÙ¾};žžž,Y²¤A!íéÓ§qðà3ܼyAh‰ €TšH` †3^¯U¤ìí>âã¹sÉÉÌÄ[ÈHHóöfîþ#& {VŒ³tëÖ£G>𼌌 V¬XÁ‘#§ÉÎVѬ™O>Ù— &àìì\«QÛåË—Ù²e W¯^E¡PÅèÑ£E¥ü“Ã?þøÐv$,Z´ˆàààîOW«ÕlÙò-6l$=½{{911]xñÅjå+''‡õëÖqúôi´:ÁÁÁŒ5Šˆˆq¿ïŸ€Êû믿þP®§Óé0`À§¡ŒF#‡æË/×rùòíŠQwsþñ ôìÙ³Vº¥R©øñljýé'2³²ðõñ¡oß¾ 2DÜô'á~~öwÉÄâëëˬY³?>ÒÒR\]]ñõõ­uò ©TJ»víhÙ²%………Èår\]]E…i0ööö<÷ÜXzöìAQQ6664kÖ¬Ú 5áááÁÔiÓÈÏÏÇh4âêêŠØ¸" B&“ѳgOÂÂÂÈÊÊBÀÛÛ ww÷Zw>|8}úôA¥Ráää„£££˜ááwK­fooOpppƒdØÙÙ‰†RÄêH¥RöbY!‰ˆˆHuºéáᇇG½eH$\\\ÄéŸGQ?Ä&G赦¨¨ˆ½{öù2J{{úõëGdd¤˜]äwÇh4rìèQöïÛ‡Éd"<2’aƉº)ò»c2™HLLdÏž=äfgÌ“O>‰¯¯¯Ø8"¿CÏÍÍeÌÈ‘¤œ>›V‹A*eý§ŸòòÌ™LšbÓêÕ4.(`³­-{wïæ£E‹Úi‚ °óûïycêTìss±7Ù¥P°~Í–,_NûöíÅF±à7¹F¼ÿ>™?ÿÌ •Š~z=´Z¢³²XöïsñâEñ)ˆün£ŸŸ~ü‘í+WÒ3;›þz=ýõz†©TœÚ¾5kÖ ×ëņù]HOOgÖë¯Ó:=ÁeeôÕëRZŠéôiæ¼õV­Òd‹ˆݪäääpøða:‚9™¦©TØ¿_| "¿ Z­–¸'ðÌËÃçžï6*§OŸ&//Ol(‘ß…cÇŽ!äåÑF¨Lg¤Ú —ŽçîÝ»b#‰<\‡®V«Ñétfg.Z@($r²³Å”ƒ"¿Û½¸¨{‰i…nê5 T%%V)Ô!"R ±5™Ìó¢F@CEšVƒÁ"¿·ˆÈCqè>>>pU"¡ ¸l67F._¾Ì¥K—î[AFDä·@¡PðXXwmlPÀOÀ&à yç'NœÃî"¿ ”(•d%Àñ ÝüP›L~øáâããiÓ¦ ï¼óŽ9¡Ðk¯½Æ™3gÌç›L&”J%ï¼óOÔ¢ˆ” ³çÌA&—³qÕ*†étTnV›âb¾ÿæH›6mÄ"‚Ü`0póæMT*mÚ´!..޲²ÿ¯5vìX dþ|èÐ!/^üÀªh‘ËéMŸMSS‘Ý3gnx••qãÆ ÊÊÊê”bSäѧ¤¤„„„Z¶lÉÙ³g-BŒ>>>|ñÅæÏiiiÌ™3Ç\…­6Èd2Ú¶mKPóæ(Žã^í“SM:}í*• GGGñˆ˜Ñëõ\¹r™LF“&M¸qã†ÅôÌôéÓ)--5^·n‡ÂÛÛ»Ö×ðöñ¡ct4‡?ÿœF÷|/<‹‰‰ä‰aw‘J›¥P(7nãÆãرcU‹^^^xyyå[Ð.\H»víh×®].dkk‹Òɉ_‡L@©D‚‹³³˜ÈC¤ >>>lذµZÍÏ?ÿlqL¡PbŽݾ}›¢¢"ž|òÉ:_ÇÝëIy­ê{¾/j]g@䯃3fÌÀd2±aÃ6lØ`q¼I“&£ù³gÏÒ±cGët{{{L -;€ÜÅEÌã!b¦Ns艉‰œ>}š#FÔ9‡º‡‡QÑÑ\T(¸wÝp&PäïOûD£)r_î·B«ÕrèÐ!BBBê=ªäé#¸-“YÔŠ..J$ zê)Q7Eê­›.\ 55•þýû×Ù·yì1Ü{Œ„{tÓ\‚;w¦i³fâ)¡×öD£ÑÈÞ½{1 >¼Úsôz=ׯ_·Ayyyagg‡R©dò”)dff²ãûïqÍÏÇ •¢mÚ”IӦѷo_±´ä#ŠN§#33Ób*ÇÚ yrssÙ½{7¯¿þzÙÝ222,ôÓÝÝwww:tèÀÛK–°òã¹”™‰Ü` ØÝn2õÕWŇø“››k±,##êò 6l I“&ôîÝ»ÚsÔjµ…n*•J¼½½Q(3wþ|Þ~ã ¶'$à ÑPìà@³Îyûwðññâ#ŠF£!++ Ng¡O vèYYY;vŒ¡C‡ÖX¦T«ÕrìØ1ógºvíjÍ{xx°xÉv÷êŵŠ:æÝºw§sçÎâb¸GµZÍÅ‹ÉÉÉ1Wø«ðaC9tèvvvtìØ±ÆŽaBB‚Åè(<<ÜìÐår9/¾ø"ááÄÅÅ¡ÑhhÛ®½zõÂÉÉI|ˆ0)))+¯^½Úàj{÷’œœÌÉ“'™8qbÓŠEEE¶ÓÃÃggg ‰„=zð¿õëÙ»gyyyøøø0ô©§Äœî8ÅÅÅœ={–ââbów÷ŒêíЯ_¿ÎÍ›7™>}zç8::2qâÄûÊqpp`äÈ‘â“ú áêêÊàÁƒ-¾ûõ|cC0lÚ´‰:Ü·$oïÞ½:thÇmmméÚ­]»uÚ_ˆ¨¨(¢¢¢ÌŸwìØARR’Ud ‚ÀéÓ§)**¢OŸ>5žçããó@ÛÌ41Zô—ÂËË‹#FX|·víÚÏ—By¨¼¤¤µZÑh¤´´•JežÒétìÞ½›6mÚЪU+±•E**•Š’’ŒF#eee”””X¬&>yò$ÉÉÉüíoçºE*Z­•JEYYF£•J…Z­6ÛÎüü|bccéÕ«—yq±ˆÈo…àĉlÛ¶ÔÔTÒÒÒX²d AAAÌš5  ‰eÊ”)bõ)‘‡—ØIDATŠ^¯gÞ¼yäçç“’’¶mÛHHHàïÿ;]ºtÁh4²sçN¼½½yüñÇÅy¨üðÃìß¿Ÿ«W¯róæMÞ{ï=Ú¶mËäÉ“±³³#%%… .°`Á”J¥Ø`"¿½C÷òò¢cÇŽDEE™“vØÛÛ›ç{”J%ï¾û.ÑÑÑH¥R±ÕDR©”¨¨(ÊÊÊèvO(¼2yÀÀï»¶CDä·¢iÓ¦DGGÓ±cGówæ5A^^^Ì›7èèhqѯÈÃqè­Zµºo(ÝÙٹƕí""¿%2™Œ¿ýío5+°\.fqù݈ŒŒ$22²Æã~~~øùù‰ %òp@bˆˆˆˆˆˆˆý7åÞ}™ E«Õrûöm«É+))±ê~Õ¼¼<«VNº{÷®ÅV‡†rûöm´Z­øÆTpçΫyó&F£Ñjò­ú{­)Ïh4Zµ“Z­æÎ;¢RÞcëRRR¬&¯¸¸Øªµ×sssÉËË³š¼ŒŒ JJJþ°¶ÎÚïâŸÒ¡ ‚ÀÖ­[­ª”±±±V“—––ÆÉ“'­&/!!+W®XMÞ©S§¬jäöïßoõ½ãf:dÕØ®]»¬jD¬ùîX[^YY»wï¶š¼œœ:$*eì߿ߪ×S§NYMÞ•+W¸zõªÕä8q‚ôôt«É‹µê`hÛ¶mÌ$h-þ°ÉÓA@¥RYMžÉd²(”ÐP Æjòt:UkÂk4šûfª+¥¥¥VAþÙ©Üâi-îÝ&j ¬9b±¶ýôÓ¿LûŠò&kÒ¤IŒ=ú¡è¦^¯§gÏžVÍñ!ÚºGWž‡‡Û·oÿíºˆˆˆˆˆˆÈïƒryhp¼3--¢¢¢*ß7iÒggç:É¢¢"rssÑëõØÚÚâááQïò•&“‰ÂÂBòòò0¸ººÒ¸qã:…yÕj5ùùù¨Õj¤R)¾¾¾ØÛÛ›ët:222Ðh4(•J|}}-Jtþú÷•––RPP@ii)¶¶¶çët:òóóÍÅGš4irßß.ÅÅÅ¢V«±··ÇÏÏÏüûŠŠŠÈÏϧ¬¬ ©TŠ««+5†öA   €¢¢"ÊÊÊprrÂ×××|~~~>ùùùèõz$ÉÛSrss)))A«ÕâêêZcíæÛ·oc0ðóó3—ÛmZ­–´´´*«s õJ«ÓéÈÊÊB¥R!•JqvvÆÛÛ»Þá4­VKFFeee( |||,tëAïJaa!EEEh4ñõõµ(C\TTDvv¶Y÷ïMIZF£‘¬¬,Ôj5:___\]]ÍïRQQ‘Åõüüüî&Öétäää˜wøúúšmBå±ÊÝöööxzzÞ÷Ù—••‘››‹Z­F"‘àë닃ƒƒùX¥U§ •ï»D"¡Q£F¸¹¹ÕºÌuYYyyyæB5¾¾¾8::šëõz233Q©TØÚÚâíí}ß{­´Ã¥¥¥Èd2 ;¡×ë)(( ¸¸N‡5zàûs?[———Gaa!:™LFãÆiÔ¨QµÏ¿Òo¡V«qppÀ×××l‹‹‹ÉÎÎ6ÛMggg<<>ûì3³!Y³f ;w6+íÆÙ¼y3ööö¨Õj†ÊóÏ?_íÃ2 lÙ²…M›6‘‘‘““kÖ¬¡uëÖ\¼x‘E‹‘œœÌõë×Ù°aƒ º¯Cøüóω%%%…-Z°fÍ|}}1|òÉ'œ?©TŠÉdÂÖÖ–W^y…ǼZåÐh4|øá‡œ>}šääd:wîÌš5kÌFqÓ¦M:t“É„Á`@&“ñÏþ“^½zUÛž*•Š7ß|“›7o’˜˜È3Ï<òe˪œ—ššÊßþö7sûFGG7Ø`fee±bÅ ‹çÎÃÅÅ…иqã:;ßo¿ý–o¾ù¥R‰Á`@"‘ðöÛo×ë~KKKùꫯؽ{7J¥•JELL “&MªU¶¬¬ŒÅ‹Ç­[·ˆŠŠbÍš5¸¸¸åÉ;þóŸÿ””„B¡ÀÆÆ†É“'Ó­[·pVVÏ?ÿ<ÅÅÅ\ºt‰¥K—2~üx³QZºt)GŽáæÍ›DEE±nÝ: #ýkxë­·(..&))‰Ï>ûÌ\+âüùó,\¸“É„D"A§ÓѵkW^{íµj;Ä‚ pôèQ/^Laa!ÙÙÙ¬Y³†'žxÂ|­U«V™;便¥tîÜ™™3gVëÔããã™5k–ùÞV®\ÉSO=Uåš;wîäÕW_¥cÇŽlÙ²ÅjÕüöîÝËž={ÌŸóòò8{ö,«W¯fÔ¨Quî8$&&òÑG‘““ƒB¡ ¬¬Œ'žx‚I“&ÕØ©¹_çàÔ©S¬\¹’’’ 5bêÔ©DEE=ðÞAàÔ©S|ðÁ’žžÎ_|Aß¾}Í©;v°nÝ: †®]»2sæÌjÛ×h4òÃ?°jÕ*rrrÐëõ¬Y³Æœ?ÿÚµk,Y²„k×®‘˜˜ÈÂ… ™0aÂ};›† pöìY’’’èÚµ+kÖ¬ÁÎ΃ÁÀœ9sHOO7ÛN777¦NJ»víªü~­V˧Ÿ~ÊÁƒ¹}û6!!!¬Y³Æ\]oÏž=|÷Ýw˜L&ŒF#F£‘ &0hРjý„Z­æ½÷Þãüùó$%%ѽ{w¾øâ‹*Å}222xñŹzõ*Ÿþ9}úôi¸CñÅÍ/½^¯çóÏ?G*•Ò²eË:Ëúé§Ÿ8wîK—.%00S§N1oÞ<ºvíJ¿~ýê,oùòåh4>øà”J%«W¯fñâÅ´iÓooïþ¿D"!$$„)S¦ Óé˜={¶Åñ³gϲ|ùræÏŸOÛ¶m¹téo¿ý6mÛ¶­¶ò—T*%22nß¾Íúõë«ôÎÇGqq1‹-zpxE.§[·n´k׎“'OVItÓ¾}{ˆ¯¯/Z­–+VðÉ'Ÿ\m)G¹\N¿~ýèÝ»7ß}÷ÇcbbèÓ§ÎÎÎh4>ýôSV­ZEXXXµ#o…BÁðáÃQ(|öÙg5¾XË–-£mÛ¶œ}:ݺu#&&¦Ú‘på½Mš4©Z½ËÏÏç믿®—-{#GŽdèСf¸qãFŠ‹‹ «×;°iÓ&rrr˜?>^^^üøãü÷¿ÿeРA„††Ö¹³¹téR|}}y÷ÝwÑëõ,Z´ˆ… ²aƆ$ Íš5cÒ¤IØÙÙñ /Xü¦„„–/_ÎóÏ?OLL ×®]cÆŒDGGÓ»wïjåµnÝš©S§¢R©˜?¾ÅqFŽIYYüqíBÓ¶®oß¾lݺµJ^„˜˜‚‚‚ðôô¤¨¨ˆ÷Þ{/¿ü’yóæ™;Í•Èd2zôèATTGåÂ… Ç£££‰ŒŒÄÕÕNg^ Û®];«Ü›   ÿþlÙ²¥Ú Z­–ÿýï4mÚÔ"IOƒú½£‰œœ>ÌÀëUfµ¸¸777BBBpqq¡E‹8::¢ÓéêµRððáÃ̘1ìЕïæÍ›µrèR©Ô\¸&))©J/öرcøùùÑ«W/lmmñññaÍš5ìÝ»·Z‡.“É'<<œƒV9îïï¿¿?7nÜÀÑÑñ‰Fär9;wÆd2‘™™iáÐe2ýû÷·è¥öë×9sæ——W­CW(ôêÕ ƒÁÀ©S§ª8ô{ ø ¸té:®Úû³µµeàÀhµÚj3™L&öìÙCZZ“'O¶jæ=™Lfœ>}š;wî°xñâz‡ÇµZ-íÚµÃÛÛ£ÑHPPgÏž­WB˜³gÏâççÇã?ŽT*ÅÇLJ   ~úé'üÀizöì‰ÑhäÒ¥KÖ`0°uëVž~úi"""H$ >œýû÷“œœ\£Cwvvfذa”––VÕ)•JºvíjŽtÔÆ¡ûøø0tèPJJJªtxš7oNóæÍÍïtÏž=Yºt)‰‰‰Õ:t‰DB`` äççW9îî»»Y¯"""°µµ­v:ðA÷V9ŠüðÃéСƒ‹/ZÕ¡;88˜ÛX¯×óã?Ò£Gj |mmg¥988ŒM½’i4._¾Ì¸qã  wïÞ̘1ƒììl|}}(# €€€ŠŠŠ,ì¶ üòË/(•Jú÷ï§§'>>>DGGóí·ßVëÐ¥R)¡¡¡„††V›aÎÛÛ›þýû“‘‘Qëi^…BAïÞ½1 ÄÅÅY¤—Ëå<õÔSfÛéååE·nÝØ¹s'*•ªŠC·±±áñÇÇd2‘ššZÅ¡ßûLF#ìܹ³Æd=•÷¦×ë9vìXßS­ºté3gÎä§Ÿ~²žC¿—Ë—/“™™I÷îÝkœG¾Æ ãСCüç?ÿ¡mÛ¶œ:uŠ–-[Y¯^«D"±È–f2™Ðjµ\¿~Ýlœê‹Z­&--àà`ó¼’T*¥E‹¤¦¦¢×ë÷rž÷:sNÇîÝ» ªÖ™×–;wîpôèQòòòØ»w/£G®q^üAܸqƒ­[·2qâD³1þ-P«ÕüüóÏ\/!!!Œ=š… Ò¿ 9räHaÂÚ<›Ê9µJ]Õétdff’ŸŸß  ]YYYj–ïêêŠR©$''ÇêÛhêý×7™Lœ>}š¢¢"ÂÃÃ$wÇŽäååqüøqÚ¶m[íè¼6Sm;vìàÚµklܸ±Ö£¾úróæMxùå—ë=ç=vìXæÍ›Ç‡~H³fÍ8vì½zõ¢iÓ¦õz6‚ XtŒF#Z­–7nÔʡׄN§#55•¦M›š;­R©”öìÙƒN§³Ú´†µl§J¥bÿþý„††Vqæµ%77—ØØXŠŠŠØ³g£Fªwç-++‹¯¾úŠaÆU‘aÕUî›7o&,,Œ°°°zý¿ÑhD&“‘’’B||ùdƒïK&“agggþýeeeõ*Q¹÷7Þ0¿`àÀVi“ÉÄÚµkéÚµ«Å€úÜ/”Ï VöÒÃÃÃY¶l¹¹¹uvèvvvLž<™ &PTT„““ãÆ#,,¬ÁÓžžžøúúrîÜ9úõë‡T*%''­VÛ mvÖÄd2‘˜˜È믿N«V­˜;wî·ÕvtYÙ¾ÞÞÞ¤¦¦Ö9ò¦Õj¹zõ*'N4VJKK™6m~ø¡y^ÙvóÇ$//1cÆ4HVrr2:u¢qãÆæõNNNܺu«Î²¤R):ubÇŽdggckkË®]»¸~ý:mÚ´iÐ}* ‚‚‚Ø¿?%%%8;;£×ëùå—_ {h™#DåÂÀ½{÷òßÿþ·Á;o¤R©ydÞR]WòóóqvvfΜ9f}ÍÉÉaÞ¼yèõzë8ô¼¼<:ÄO<Ñ cÔµkW¶lÙBll,-Z´àÌ™3œ;wŽ)S¦ÔË¥¦¦’••…»»;©©©¬_¿ž>}úÔi¨¸¸˜´´4RRRÐjµ$%%áääDHHݺucãÆlܸ‘Çœ¸¸8²³³ïëŒòòòÈÌÌäöíÛ¨ÕjnܸL&£E‹FnݺÅÍ›7)--%55•«W¯âíí]£±ËÌÌ$''‡´´4T*×®]£¬¬Œ&Mš°cÇ/^Ìøñãyì±ÇHOOÇÆÆ77·{Âiiiäææ’Maa! x{{ãééÉ®]» ÂÕÕ•‚‚Ö¯_¿¿ÿ}&''SXXH~~>r¹œøøx7nL÷îÝ-¦fnÞ¼ÉK/½ÄüùóéÑ£‡Õ^̤¤$nܸÁK/½Ô Qå®72dÈJKKY½z5õš§T©T\¹rwwwó–¸ÂÂBžyæ™Z‡JÓÓÓÉÍÍ%33“¢¢"ðóóÃßߟ1cưlÙ2:tè@“&MøòË/iÙ²å}çíL&ׯ_§¤¤Ä¼F$>>œÉÊÊ"//¬¬,Š‹‹IHHÀÃÃæÍ›W+O«Õ’œœlᦦ¦OóæÍIOOçÍ7ß`âĉ”””PRR‚‹‹Kó”*•ŠÔÔT Ðétܺu ‚ƒƒ¹zõ*™™™a49wî üýïà½UÖ' €iÓ¦ñ /˜Ï]ºt)—.]bÉ’%õ^/REEE9r„èèèzm˽—Ž;KDD>>>æ-T‘‘‘õêl%%%™€9s†íÛ·óÜsÏÕz­V«III¡¨¨½^Ï­[·ˆ'88˜ÈÈH 6l`È!œ?žøøx^}õÕû¶Uzz:7oÞ¤¬¬Œ¤¤$ Ád2‘’’Â;w())!==Ýl·îQ¸sçyyyf[wåʼ½½ñòòbÕªUlÚ´‰É“'ãããCjj* …¢Æ¼wïÞ%77×\›ýêÕ«¨Õjüüüøá‡ðóóÃÍÍ •JŦM›puu½ï»XݽyyyÑ¡C¾üòKsT¸¸¸˜0kÖ¬ò-΂Ø¿¿ÐªU+áÌ™3 ’“-Ìœ9SèÒ¥‹)ôèÑCxÿý÷…ÜÜÜzÉ;tèлwo¡}ûöBïÞ½……  ™™™u’+DEE -Z´”J¥ „…… ¹¹¹‚N§~øáó5zõê%ìØ±C0 5Ê[¿~½.4kÖL°··…Þ½{ Brr²Ð«W/!((Hpppš4i"DGG Û·o¯QÞ¢E‹„°°0Á××Wprr‚ƒƒ…1cÆéééB¿~ý;;;!44TÂÃÃ…!C†çÏŸ¯QÞÌ™3…ÐÐPÁÓÓSpqqBBB„éÓ§ ………Â+¯¼"tíÚUˆŒŒºté"¼üò˹sçîû{ÇŒ#„„„nnn‚›››*|øá‡‚V«µ8ïêÕ«B›6m„S§N Öäý÷ߺté"äçç7HNYY™°cÇaÀ€BTT”СCaøðáÂ… ê%/''G˜6mšÐ±cG¡sçΘ1c„3gÎ&“©Ö2fÍš%´nÝZðòòœ…V­Z S¦LJKK…ââbaþüùÂã?.´oß^˜0a‚pùòåûÊW©TB×®]…V­Z ööö‚¯¯¯*|÷Ýw‚J¥,X`ÖÊë?¾FyIIIB§N„V­Z J¥Rð÷÷Z·n-ÄÅÅ ëׯlmm³n†‡‡ K—.­Q^\\œÐ¡C¡eË–‚­­­Ð¬Y3¡uëÖBJJа{÷naÀ€B‡„: Ö®]+h4šjeݸq£Ú{;}út•sçÍ›' :´ŠÎ6”³gÏ íÚµvíÚÕ`Yׯ_&Ož,têÔIˆŠŠzõê%¬X±B(--­³,½^/|ûí·ÂOûì³ÂíÛ·«•µ`Áá±Ç³°ÃãÇ „wß}WèÞ½»%têÔI7nœ'èõúïíÕW_BBB,îí7ÞÔjµÅy………BóæÍ…ØØXAáÿò¡™&U‚IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_smellit2.png000066400000000000000000004703371323370031300210720ustar00rootroot00000000000000‰PNG  IHDRôÅ¢‡6sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ  f¡A; IDATxÚìy”]U™öûŒw®ª[sURIÈL’N˜2 ¢ahDÔAA´—-Í M/éoéÒÏÖ4‚.A@Ò6£C>&IB I3‘„T¥R•ÔtçéLûûãœ{S%hK·ÚŠy×ÊJÕ=ûî³ÏÞûžç}÷)äQÊå²|øá‡å׿þuyÓM7É-[¶üÁï±{÷nyùå—KÇqÞÓ÷žþy¹råJ)¥”^x¡,‹ïÚîæ›o–ÿ›â8޼ä’KäÈÈÈ»Ÿþô§rppð÷n¿råJùüóÏùìÁ”«V­ú?O&“‘^x¡L¥Rÿí>FFFäYgõ_¶ûå/)ðƒÈ£ò—%étZþèG?’_ÿú×åÍ7ß,{{{ÿà÷øÕ¯~%ÿõ_ÿõ=鍊n’<òˆìéé‘W_}õ»Ú¡¡!¹zõêÿÕ9Ü¿¿¼êª«¤eYÿí>Þ‹í«T*ò’K.‘óùŠ+ä‹/¾øžî;88(/¼ðBY(Þõú®]»äç>÷9éyÞÙWww·¼ð ßõÚÀÀ€¼üòËÿGsôç&D¹ï¾ûØ´iW\qù|žR©ÀÐÐ{÷îEUUfÍšE8fdd„l6K&“AÁÌ™3Ù³gÅb‘9sæ`»ví"ÓÓÓCgg'ãÇ@J €çyìÝ»—¡¡!¦L™Bssó˜ñH)Ù»w/###äóùÚçW_}5†aP©TxóÍ7©T*L˜0)%wÜqóçϧ½½ñãdzsçNŠÅ"'N¤½½Û¶Ù»w/áp˜þþ~¦OŸNCCìÝ»—H$ÂìÙ³Q…žž<Èøñã?~—]v†apTþ2ä+_ù &LàÜsÏe``€\.‡”’ÔÖ·ºo»»»Ñ4¾¾>èêêâ7Þ  1sæL\×eÏž=„B!:Ä´iÓH&“cîgÛ6Û·oDz,fΜI,sÝu]ÞxãZ[€¦¦&.½ôRE!N³k×.¦OŸÎ«¯¾Ê=÷ÜCWWÓ§OÇ0 öìÙƒëºÌœ9“D"A>Ÿ§¿¿×uÉçóÌž=›P(„”’ýû÷ÓßßOKK “'OFJÉÎ;Éf³µñWÇ\(èìì¬éEU~ö³Ÿñ‘|]×)‹lß¾Û¶™º»»immeÒ¤I!Èf³ìر£¦×U½-ù|ž—^z‰ÆÆFŽ9æ:„”’ŽŽŽÚ³M˜0H$ò®ßݽ{7–e½cívíÚE.—ãØc%ÖöÈÁƒéì줫«kL_£×iÆŒ477ÓÖÖÆ‹/¾Èâŋߺ£~õ«_ýê«ó§žz Û¶9óÌ3™1cFm‚þóŸ³k×.^ýuyä–/_κuë¸êª«‡Ã<ðÀ¬[·ŽÖ­[GOO‹-âÊ+¯ä™gžÁ²,V­ZÅÂ… Q…7röÙg³zõjþó?ÿ“r¹ÌwÜÁI'D"‘¨gݺu|ó›ßDQ~øa’É$þð‡¹ì²ËøøÇ?Î7ÞÈÖ­[Éår ‹ÅX½z5“'O&S,yüñÇéïïçöÛoç„NÀó<.ºè"†‡‡éééaõêÕœyæ™ìÝ»—/}éK¨ªÊ›o¾ÉqÇÇsÏ=Ç-·Ü‚çyÜsÏ=Lš4‰}ûöñ­o} ]×Ù½{7³gÏÆ4ÍÚ˜¿÷½ïqÎ9ç0~üxî½÷^zè!ÇáÀÌ;—›o¾™Ç{Œ¡¡!n»í6Î=÷\žy殾úêšxúé§ihh@Ó4¹æšk(•Jlܸ‘Ý»ws 'ðo|ƒçž{ŽC‡ñ‹_ü‚³Î:«0ìØ±ƒ»ï¾Ã0øÕ¯~Eoo/3gÎäÒK/墋.BJÉç?ÿy–,Y2Fén½õVzè!\×eÿþýÌž=›ÿøÇ pøða~üãsúé§³víZ6mÚĉ'žHOOßøÆ78ï¼ó¸êª«xþùç)•JÜvÛmœp „Ãa}ôQ>ô¡qÝu×ÑÞÞŽ”’ë®»Ã0عs'3fÌ ‘H°yófêëëß¡ÜGåÏWîºë.æÎËÉ'ŸÌŒ3hjj²,î¿ÿ~úúúøõ¯Mww7 .dÕªUµ€uÕªUìÝ»—îºë.ººº¨««ã¢‹.âÀ:tˆ;}èCôöö200À‰'žÈ 7ÜÀÎ;9pà=ôøÀÐu½6žÛn»G}”L&ã>ÊâÅ‹‰Çã|ë[ß⬳ÎâòË/§P(pðàA ௯õë×ÓÞÞNgg'¯½ö[¶laïÞ½¬^½š|ä#ìÞ½›Ï~ö³¨ªÊÆyå•WX¶l?ü0·Þz+BvíÚÅßüÍßpË-·°nÝ:Òé4wß}7Ë–-ã¾ûîcÍš5X–EOO ,¨·\.óÃþ‹/¾˜x<οüË¿°k×.Òé4…B®®.V¬XAOOÛ¶mcíÚµ|ðƒ䦛nbõêÕ(Š‚”’5kÖ0yòd¢Ñ(©TŠn¸€x€ºº:ZZZ¸òÊ+9|ø0Û¶mcóæÍ|ò“ŸcsŸ|òIž~úi~ô£ÑÑÑA±Xä;ßùgŸ}6ù|žK/½” .¸ f÷ªvöœsÎaË–-lܸ‘îînn¿ývN?ýtòù<ßÿþ÷q‡W_}•5kÖðá˜gŸ}–ï~÷»xžÇêÕ«éêê"òôÓOsæ™grÍ5×022B__¦iÒÕÕ…¢öý÷ƒüQúç?ÿyn½õV.¾øblÛæË_þ2gœq‹/æ±Çò,6nÜH&“àä“OfÅŠ¼ôÒK¬ZµŠ[n¹…ÞÞ^®¿þz®¸â TUåsŸû‹/f„ ÜsÏ=\z饵ÈùŽ;î`ÅŠ$ :Äš5køÂ¾PCç÷Üs×]w'œp¼üòËcÆ{ðàAæÌ™Ã¹çžK{{;š¦ÑÖÖÆ?üÃ?P©TصkÝÝÝxžÇúõë9óÌ3I&“µû^~ùåôõõñÃþ/~ñ‹,_¾Çq¸óÎ;9í´ÓjÑíOúS–.]Ša,[¶ŒiÓ¦ …ÆŒiÇŽLž<€Ã‡ÓÔÔÄgœÁĉk}<÷Üs„B!®½öZÖ®];f.…üâ¿à¢‹.bÊ”)ÜqÇÄãq,X@>ŸçÎ;ïä‚ .`Íš5lܸMÓjhä7夓NâË_þ2###üÝßý—^z)Ç|˜ÖÖV–/_þŽ`µT*‘ÉdH&“H)9tè‹/fùòå´¶¶òæ›o’Éd¸õÖ[±m› /¼îîn„|êSŸâ‚ .àÆo¬=Ãå—_ÎâÅ‹9öØc©¯¯çž{î!‹áy_ýêWÉçó¼òÊ+ﺞŸúÔ§8ÿüóY°`÷Þ{/·Ür …Býû÷³iÓ&N=õTâñø»~wîܹ8p€þþ~R©[·n¥½½¶¶6¾ò•¯ „àoÿöoéééáöÛogÙ²eL™2Ó4¹÷Þ{¹öÚkk¶hhhˆÓO?SO=µ:&MšT[÷ƒ(Ìθá†xüñÇùîw¿Ë7ÞH6›å’K.¡µµ•~ðƒ$‰ߨØ€a466¢ª*š¦áyž?XE¡¾¾€d2I.—C§§ÓiúûûÙ·oS¦Lá„Ns½R©Ôè´ß¤Ýnºé&ù?ÿçÿ°råJÇC!}ûÛßf×®],Y²„™3gR(ˆÅb„B!„躎ëºd2™1Ô³”’L&Ãàà ûöí#söÙgsÖYgq饗rÿý÷ó±}Œ¾¾¾± ¤(µç¿êª«X´h7ß|3—]vét!¦i"„3'­­­ïJ¥ÓiŠÅ"ûöíc``€ /¼)%¡P]×BÔæøÝÖSahš†eY|þóŸçÎ;ïäg?ûçŸ>šv$F¬Î_8CÇE£QÂá0Š¢ ëz­]õ9mÛ®¥Q èEüáp˜J¥RC!¶mÇB°`ÁþùŸÿ™§žzгÏ>»¦¤žçIa•?9æ˜cø÷ÿwÖ¯_ϧ?ýi¾öµ¯ñÖ[oqà 70kÖ,–.]ZÛ_Š¢ÔR\áp¸¦×¦iÖèñH$RÓÏúúú1é¶b±H¹\fÿþý¼ýöÛœuÖY´´´ŒÙÃUýBÔîU!«W¯¦¯¯Ï}îsÜu×]ïHS}ùË_àø---µ=ÜØØXÓ_Çqp]×uk6JA©T¶mzzzØ·o ,àØceåʕ̚5‹ï|ç;|æ3Ÿ©éËèqyž‡¢(¬Zµ ]×Y¹r%_ûÚ×(•JD"‘šþUÓBˆ1Ï>Ú~¤R)Òé4ûöíÃq>ñ‰OP(ˆÇãµ~~3UQ•êšTm}(âŒ3ÎàÑGå¾ûîãâ‹/~×ïI)¹þúëÉd2,[¶Œ®®.ŠÅ"uuu(Š‚ªªD£Q …™L†¡¡!öíÛ‡¦iœwÞyµ¾b±ßÿþ÷³NÕ9:êÐyæ™gX·n;wîäÍ7߬Ѿ•J…qãÆÑßßÿö»¤J»½þúëÜ}÷ÝchMÓ8í´ÓPU•%K–Ô"ÉÑŽñä“OfõêÕ¼ñÆÜÿýïèË–-Ì™3‡‹.ºˆ}ûöaYÑh”W^y…¡¡!2™ ãÆCÓ´ßVåœsÎá?ø¯¿þ:›6m²,N;í4\×eñâÅÌ;—ææfvîÜI$áÓŸþ4Š¢0222¦Ÿ9sæÔœÓ+¯¼Â„ ¸ä’KÄu]¦NÊüÇðòË/³víZN>ùäwŒ¥¾¾ž×^{ÞÞ^>øÁR.—™?>'t´µµ‘L&yä‘GxþùçyöÙgßõ™ž|òI6oÞ̃>H[[õõõL™2˲xá…X²dɘö¦irì±Çr÷Ýw³cÇŽw0"£eÊ”)<÷Üs¼ñÆ<ðÀ5£÷»Œþ7¾ñ ¾öµ¯ñÚk¯ÑÝÝmÛ|üã§­­ÞÞ^öîÝ˱Ç{ÔKþɃ>ÈæÍ›Ù±c»víªÕU„ÃaZ[[Ù±cǘ`þ¿’ƒòóŸÿœ—_~™7rüñÇ×®M›6¦¦&&NœÈ’%K˜4iÒ´h³gÏfõêÕlÞ¼™'Ÿ|òNç•W^áÔSOeùòåµ:”B¡ÀŽ;Èf³5{W*•عsçogµÖæ'?ù ;vìàÅ_¤¥¥…©S§’L&Y²dIíçmÛ¶1uêT.¿ürvïÞã8cú©¯¯gxx)%Û¶mcáÂ…|úÓŸfÛ¶mLš4‰C‡±aÞxâ‰Úø~SÂápÍöwÞy¤R)N>ùd,X@[[Ó§Ogß¾}lܸ‘Ç{Œ·Þzë]Ÿëþûïç7Þ`õêÕ5¦ì£ý(?ü0 cR{¿)…BqãÆáº.¯¿þzíóW_}•uëÖñë_ÿšt:ͤI“øèG?ŠmÛœrÊ)Ì›7oL Uuî—-[ƹçžË¶mÛÞ—öášC/—Ë<ûì³lÞ¼×u¹úê«innfêÔ©<öØcD"æÍ›ÇÂ… kÈmÊ”)ض‚Ù³gãyår™ ðË_þ’E‹±iÓ&.\ÈÇ>ö1<ÏÃuÝZÎmçÎlܸ‘t:ͼyóÆDsæÌ¡··—­[·²téR:::˜9s&©TŠE‹±sçNÖ®]K?_üâ7n“&MâW¿úRJ>ùÉO²nÝ:z{{Yºt)'N¤««‹R©Ä¼yóPU•\.ǬY³˜?>ªªòôÓO344Ä‚ X´hCCC¬_¿žþþ~fÍšÀc=Æk¯½ÆYgÅI'4&bŒÇã¬Y³†ÓN;žžžxâ Þzë->ó™Ï0cÆ –,YÂóÏ?Ï›o¾É¾ðfÏž]c"ªTý”)SX»v-¬QtO=õ;vì µµ•É“'³dÉ~ýë_“J¥8å”S˜3gÎ4RUú;w’ËåX¹r%±X !‡¢­­ÓO?ý{`éÒ¥lݺ•Í›7‹Å˜6m…B¹sç¢ë:Ùl–3f0eÊÇaÓ¦Müñttt0oÞ<2™ sæÌ!R,kt[>Ÿgùòåüñ<öØcLŸ>'Ÿ|’­[·ròÉ'sÆg`Û6·ß~;×\sÍû* ¿KUG^}õUÚÛÛùÒ—¾T+ Ú°aS§NeêÔ©ÌŸ?Ÿr¹Ì„ hnn¦T*ÑÔÔÄøñã±,‹p8LWWÏ>û,Ó§Oç…^ࢋ.bÁ‚5™5k'tëׯgË–-!8î¸ãÆ0MK–,á™gž¡¯¯¥K—Ö ª,ËbîܹlذM›6!„àK_ú---5Ý?~<§œr O>ù$¥R©6ªÌÒìÙ³kì݉'žÈ¢E‹èééá¹çžCJɼyó8õÔSy饗xá…(‹Ì›7¾¾>ž|òIvïÞÍ•W^9†v×4ÞÞÞZ¡ìÖ­[yæ™gdÅŠŒ?ž¹sçòÔSO188È5×\C{{;¹\ŽI“&Õ˜Ò‰'²fÍš­mYk×®­¥&OžÌôéÓyüñljF£ÌŸ?ŸùóçIV‹Öžyæ&NœÈ%—\‚®ëD£Qžxâ .»ì²šf+•JÌŸ?ŸãŽ;ާžzŠT*Å©§žÊôéÓI&“$“IÒé4Û·o窫®ª=S*•býúõôõõÕ@]užþùÚ¼þã?þ#±XŒþð‡œþùtvv¾?”ç/©$ÿ3ŸùŒÜ³gÏ_ÕÏóäW\ñ?:¶öÇ”§Ÿ~Z._¾üÏr]Ö¬Y#ï»ï¾£çÀþŠ%•JÉ /¼Pf2™¿ªçîïï—×_ýŸå‘¬R©$W¯^-Ï?ÿüßz\øO!rÅŠïùÈóŸ³ù›É—ß’ËØ·oår™iÓ¦©ýSÊ /¼À¬Y³~kÅQùÓËš5k7nsçÎ=:G…J¥Â[o½E4eÒ¤Iÿëã±,‹—_~™… þ¯Ù­£2VJ¥kÖ¬aÑ¢EGOŸüå÷rèk׮婧ž¢¹¹Ã0¸âŠ+ŽÎÜQ9*GåTéªU«Ð4½{÷òÙÏ~vL¾ú¨•£òÇ•ßëØÚÃ?Ìõ×_OCC×^{míèQU‰ÊQù‹Žj…x×ï&àÁømTUåÊ«®ú«›ÇB¡Àk¯½ÆwÞÉþýû¹í¶Ûj]JÉïŽÊQyߨŠõë׳mëÖßÙfê´iœuÖYZ‡^­05MEQ(—ËÄãq^}õUæ|  ˜7æ.„< I¡HdYÅl+P§fQ5EJ âb`aR!B89\TZä–0HŤB…*.*}¯§˜8'ŠŽƒ‡ÀAC͹’^ )@Ø€*q ¸غ†« ÏÁRtEE A ,¡#ØèX(HŠ„H$ ‡»+Ä4b …IˆaÊ ã¡à #O†.*#‡H%”ˆà¢`b1HQ ”ƒç±1Q"OŒ( l;ôÑx@ØÔû÷$4m²€ðǕ˳ÝÐ? Sæ/á¡Ç7ü^ ³gÏÞºöZÚ~G›Í¦ùWéЫÇÈTU¥µµ•ÁÁÁÚµÿûÍoñ/ÿºÚ4˜»m^ áH‘¨–'.r´ÊC4 r„(á¡àI•YC»q£àª ަ¢H¢Á’yÅA§‚‚‡†C™a·L8ãÁ±íh¸þfêÝ0)ûF‰A —qýlnE’¤F AÔ-b–DY¢d@Æý½$Füý+벿½^ï†9óü»IDD ö§dÓß“²¬¥o%Q£@gÏ“—Ù@ÝÜ LgYÌ)g(éã¶ƒÚ Ùz“·‚²&™xœ3ê` ?²0‚ GЂ$¾µHÇsEh…''\ÈÎúShUÞæœöç‡ ô(]”e²ôœ8§¼•¦ó팯9`²ö"þß”+QF,æ|è ›Þ¦H„!šˆ‘ç„~‡…»BHC"F`OC ÿ6ûbä™H7- 'Jš@Ò`¥™ýÔ6:'J:÷ØV\ã›—œK%j£Àx`R¡Ž 2”ˆð¡_ï÷mMDÞ_‹‡>°ÞÎ\Tfó9âdI'Ç)ùý9(zl±aÜtøÙ{8,#þ ;øsã¿—C¿è¢‹øÎw¾C$aÙ²ecß¹»P@S'üÇA?='â[´m ë¢Qb¥ ²›ýL–Hœ”fd¤#\¡¤Di"ç%È(þDæeŒqŠDÉPG„"QòôÑIˆ2™„Ç :C4a`‘dË5QKC8H!ž@”ÅF?òD‚^rÉ„ãØBÇE%* 8B#KyR4P ‚…Àgd$¥…Éc¦„ÎA:ÐqбÉPG“4õ4‰¨H.Z ‘{(h8xÁo‰@R"Œ‹ß>I 'p . ÑQí IDAT„J„4)ð54î3 þ3h88hƒá"ˆbRñѼp¨hYD(R&Lˆ2IwÏU©˜:1·@C)‹žó¨©è¶ƒZE´Z€~+¾!ÊPÂd@+:hxh¶‡8(´ œf!AT¤=$R€r<¨‹ûm•òÔN ”ˆ!ý¾rA`¡ß­öçŸ+Á5-pîn€äËÁXÔ`<ÕÚ(NÐö½8®À&ÿ”ê}(‘H„¥K—rà 70<<Ìõ×_?ÖºMÓ!Ý/õ gNIJø†Š A*”$fä(ÅA#A=`¬”<¦‹vQ„GY a{?OQt ²Ô‘'ŠP$ÍúAÔX„a ,Ê„°0ˆ‘ǤB‰v`rmô á‚Døº*l¡#|"áûL©ù¾ŠÑ•D]ðsõ¹QûÑ 6ì_+ØŸ‡=Áþ±<"y §ÎßI2àíp= ús,GÑ)‰05†JP •¾0-›’n"¥ÿi JÅv½BÙ £ %@¸¦¬ xž¯g%¨8&%¦l‡ +%„êá Ð!ŠDð\eŒÞR‘ô é -(‹%B S ŠŠ‹åþw¼€±sÀuUr$pÑH‘%L‰4õµµq=¨!D9!È’ Hƒ6ú±Ñ‰P ­6÷¢rĤd‡iE"Pñÿ~…‡B™:Š-e‰° ,A·ÿ Å1§ÿ'wè ,`úô鸮ûÎ sH8±6öÂ^"ìG®û@¶ª”Zâ°ÇGi¡7Ý… Q‰ái‚ð¤ÅR 3V¢NdèÑÆ3D#:61òÄȦD˜T-i£—>Jc*b„Båݨ¡zØšŠeêØBC¢ âà •|(BQDpP)A^M™môZ¤ª ñP(ÁF£yV#žÐ›"tl4\J„É’¨yb„(ã“ 1°PðL*èØ8¨TQ!„ŽMœ1òº®%Ž…Éü%¦Ø§ÿ«Ô`”" ‡ÚùìAõ^*†V¡aJ¨8è8”•qòDq1\£ä‚„E§èˆ¬í+fÕ€‚Ý’ ²JÒWxµâ¡È€N/msÁÞ°‚ôG5TÍ • kÙo·xR@_F‚ÏJ@¨é;ët€¬­ ÿª1¬öW¥Ø• o´qƒëÅ ª!µ}#¼¤^yý(BÿíùÅÏ~ö³är94MËä©sAëÕrÚxtœ4 ÷Âô:úfLâPçx¨sHÖ "¥BRÁõTþ¯ü®ªÐ¯¶×ÒJYâô0ôÒÈp ¡k8d¨Gz#Lm¬c„:6)êÑ.¦D¤øVjŒ\…\SôrWt¢^Åñ|ã«€Ôü Š#ׂE7üý»d¾¿I¤ ^Ô„¿—‰ÿ‡„¯hj+àI?ˆuó‰ ž­²»{ZÅ\óu¢mä‡Y ü5é¶+¾šþ?{»I^‰QnŒ_#GŒE›m‡ŠË vÖ€•;ixZ°Ž8¶D¼–µùËFèÀo}­RúóƒÀÜñðêH5Â)ÿéûv_õd/§QÜS‡ TÃAzÐÛ?3RBum†d;Å rZŒf†( ÒL<ÈKž*ØÏDôÀ*»h¨¸LJôRŒ8šBE5°5œÇ–:.eaRVLT\ŠD±Š¥Œ‰àæ!šjJ>ÚY ÅÏÇhØä‰¢L+‡É$!ÊAzÀÏç•¥ÿr…(EBT0°È’ D“ F°ilt *D(¢a“%‡BŒaJTTŸŸˆ“ó#a#ôBЇE“1$ £@šzŠD®X¨¸4&"‹DMX„ÊŽªRŠeÃõ–QÏß!©À1†*=ØØ2& C"CY–x:¨MÃt‚Í…Nª¿7R®Š¡«fð»r$ÏÍxð4PÔàÞÕ\x4h‚à¡>ø¼)pÜF`8E ü2pìF°ëK~Ÿj{€ŽÞ£Òuè¿Å@)Jí/ouö’úÆaFštlLX4vö@ç8¼}eÃDAÃÊk¸)p´HÑŒax6•¸JÖˆR&Dž6:#4Ö‚íá ]nÍUëŽCȰ S&AaêÝ4ž¢Ð&Õ +W"ŒS+·Õ(¥" ¿­ØaH¹„"¤¿èΑÕÀÕ£æøH{+@r¢šê©¢WF›Ê¨´‘.QbTéX‚·õ 5– Šk‘¤蓇osM‰g‹Z;½j/¥ãƒ€²ôÇú‚JÉ$C9âtÑ(ÂCÂô|=Õ‚@yC§O´û`“0EÂÑ4Ç×7툎Æ#YÚâÉ‹2i¢á ’ñS)–ÏHÔг/¯Rx±(Ï c%ô`eßæ{¶_‡Sõ†1Àz ¹-$ÛÒÐâ:–DˆŠðmuÕfU™9L9ÜÌ݆^q8t\;Lš¢E—þš¹£@ïs‡.4Iè“ȽÀq&tÂöA£„qÄd·×ðÂD‰hð­SÔ±Ë:j£‹ci”Ýš°1$”¬¡×(…Z|•R(y!OÅólS£¬™XÒ h„ñ¤@ñ :6•Á{(AÚZÈà'ÿxŸÃ·Ñ¥_0§àÕÚ»¨ÒŸ[O€§*€‡'„_T¨YŽr´U‡êáGÊŽ_´ƒ7 aì1ЦÒGM¢2*R®"oTÁ}$Ê—j@_ºAê(ÔÔî¡*àã7Š–”QÿW5É5ž£”û¡O‘{8\×JÞ‰Ó;=„«h¸¦‚íÞ†¦‰G·8µ£]¡‚E<š£QŽ$9µ_$B=iTé¿MrSX4ºÃÄJyía*ŠILæqQI)IŠ)‘"n S³É2E5‚)lZÝABù VŠ˜UÄìu|$ž ˆ8Æh°ÏÒ£öOõ$HuÿVÇüÓ‡ƒïIŽ¡ èûP{Ž®P7Ùd=1Õ?ñ¢K›&gG¨„ó¥#Îåÿ¡K¿6h@Å,Vˆ¹E\*$œªt‘®‚HI´ràlƒÚ5á ¶»­J5EQ)‘%4é`:FÖ…”¬¥Û"ZhcŽp¶@„¢–]‹¤›"$+¨C®ïÈKÁºe!^Ì3N$§ÅIŠqr”1iô†‰É<¡JÉŸ‡R0ÅQÅ´a?­Øì Q& ™#,K„,Ëw®Zàd‡ƒ¾ÎŸoMwˆÈ"q™#YÌÐ RXªî·­¦ì#u@T$JY’Àÿc?q™£ÁMûAâ°ýIU¼G‡þ—‰Ðc.JÜADœJȧ€BÀ"S:aëœg›a\01 î+ î±:¶† vw ’C3›P,pô}¡6ôp™z="%õzÊ/\“ªðè–H*#5¤ªà1EïA‘ªá†)iiü|^˜RP<—D ªgK„I¡Vzã0-”ˆ @™BM%¨¨M%B½FÏW¦ƒN&#L‘$#µ6 ²x( “ ÿrÁ9t«V˜#‡…‹ŠŠG”B-°Ðƒ£6Ú(ªÝg²Ôá ÑÈPp¾VÇ V\¯¥.Œ€°¯ `‹x©ˆ£©þYÛ#,+˜EáP£Umb£ ˜*!ŠâOT*«æ,•QÖ‰GG¡ek”£6FEA6çxõ ßx`L•QÕi±Q”XC p#Áçj ìÕ{¹â¯"ÈiVÞ;B¥ÜߣC÷˜ÅNFŒJf„ôäf*ºIÅáõ˜Ð4ùúh1Õ_ç¿nBØ\£k~ð8ªÏê)—edšFoS©Ð\!:\¦±n[30eKbåè*WðB*ºc£hEDð™6ä(çe”aÏwº¥À 3ª(³8=ØßƒyW‚ö¶8¸bðy6‚‹ ” < ¦=Ìlí FêˆZ<©âI…°UÂ*f¡rÄ)å|笴zhÓìAC2E»Û'…†ãàØ:â h!ÏwLA€dü…Úoc6UˆQÀF'^,Ð`gñ¤‚VqÐú¥ˆd|ØÙ´Ÿñ“:‰K¨ª‹I…°[¢¹A+Á‘„›ŠŒ“©s3D ELÕÆT,ßñW¥ÊþiAAwÖOmVz³3èŽ)·öü2B¼÷¢¸Ð_B¶d]iô¼Kn¢ÄJG $Q'Ù Áë‡Ü~Æ·B,ä/Fc°ùë‚ Af^‰WLJqt]€% Jåeaâ¡V‹þÚ¡1LÒG—"”pPñÛÑQm‰)-ºÿâ– &6*þ1 ¡à-v ‡(£âR Z;rV}É‹ÿ‚‚—àƒÉsˆR@"¨'M#Ô1ý"8Ç&ªæqßáVCÄ(àˆ\ ©'Mž( Á‹ªGÐübž¸›§‰!¤§"ô#9Nžebä)ã­æô þ T fL×w½Lu‹Ž« ¢¥2Šãa¨ZÅC)JLé ûÇ5Ї^­’µŽ®©†¬Ñ⢠Ò †œÀˆQh¹êäalõ|õØŽ Zõ»å¢(à``,Ì ­ ÆV5°eŽTØWsö¥Qí ¿‘[¯^÷Þ»C?šCÿoÿÂg¿rÄ)GuJ‘0Žò5Å€d'lé9ÑgùûkfH‡°Zª)¯urQ)a˜$q‘ÇT¥Ž4õ臉ÑnDÔ£,t<üZš4u„"lSÅŽ¨8BAõeŤ „"^\àDU„mûÅ–ÕÎUo…( Š2­ ¬¾ç Z´Yl]õºQÍ5K¿zZEPÁôÁꦨà >›Uý{ÔÿpëT* &ä–0(~šN±ü°ÇÓ…¿Ppß²à–Âa¬†å˜ÿ¾  ÏTü—pyŠ˜«GRkÄ@Õ]PÁ1U<᳊ºb£Gm„%‘u¢ö^‰jZA3l Õ¯uò‹âb”“×cþ}ÍŒÿGŽò{@§ ù§¤vº°ñ…rÈDAÇ)~{ DÓ¨tÉû¡7ëƒ8æ=¯O…­ Êlm‚…õ\äHÔG»àߺ!ÙSL8 ÿE Õ<Ð<à-Ü£@›$QŸ&£%È¥êñ*±ƒÄDž7RÇQ‰™˜Ò¢Å`&"”h$EiÃCx’J½ÊˆZGÿ%ƒ4£c¡N{„$ê(¥…Ã8hìaJ€l‡k•õ-  âQG†~:( ÐvŽ89âµUˆbaP$B+´XƒôF; … u5G¦Ä Í5¤‘d„·™D‘*M 1B2 Ë15OÔ.Ò­w‘¢$#T0 %pî6*.}tøGú(£“gˆæ Ÿ^¦QQqMFHâ ©AD+1Þ饢!¢Ù zÎExPiÔ YÍŠ]-ê6¶‘вÓ72Âh½"~5|•†TPb }ŒUDT¥Ý³£¾ÑÞŒ³UxGΘWé÷ì(*¿.ÈËç‚À¢uZÊjÑÞÐ{GèG­ýwDÒÈ0ôùyԆà ·“;&t¤"¬ƒÛ½{aòdèUqˆ‡‹Äõ,6b„(©*‚ß%TÜà°¦‰'áá¿‚L q‚À¼Zgb8RŽCɦDÈõ\Õõü—SUE7Ø[;ª(³Z¯aIIy¿ÄVF¥‚‚Šm]XD(¢â÷òÄ•, tÇAªÅ•GîYƒ’Ð1E,ÅD8(H?‰çH„'Ñ]glQª2¶fE7ü㲊”h¶ž‡j{G¨é 舒'¦ä1Œ 1‘÷Ïç(þ ¯\Mñí™ËÊE• ¤ü”níä CÈ#GþĨ\gP ÷ÿÙ{Ó`˲²îó·Öž÷™ï”÷Þ̼9TeM€E!¥ˆ‚(¢ïKŠákDÛtð…á¶¶A8!o j`¼a`„B†Úmh·( ˆEQ…U™E•y3ï|Î=ãž÷êkí}w($oÍȨ[÷ ÷ÜsÖ^ÏzþÏhK\2=4$Á%$=ÏÉ!ÖphÄ\aWCÏ2ÃR%BfÏýœªCXx2 tŒ‚É'&Ç£8¹ß—XuÿCËÖþ­¯RJ°"W(#–zƒ]3oØBÀÅóðé0XƒãPß^Á¬¥ÙÈ-Àä¥C&,ÒÜ¥œõ¹Ò)–"Î|+ç˜>Çéé(Ý} —ãV‡£°ËÈêsÄ2¹é„ï°©YîFźÇ¹Ñž»$Ìè Œƒ dŸ52ܺ.Ì ñIj–-(fF¿©7ñ¼v«æó´l‚kx-¸ž› #½ËÍL]Q-0ýœsG“᪙zeiXÌhËKM¬:Y³{5‰Î/s3R.± T)DIf9zŸ‘ØBÛV³żºˆªY¹9]?g³©ŒhNtàeƒÀ–5fÙ•„¤b½WÌ_yBV«%*ƨÖîVë¦É–-Ïé˜ß[uNcõ;w_п>CÿR67Å ´Ð›<‚Ö‚i<ПcËØà×à¾s¨@t,¦v›Ûœ¡Àª5ä·9MŒÏ½\¥À&EÛEW;wì†á’Ö0[äÂ& Ùbn…¸2%6 ±ôñ; ǧ¤X­üäЪÃìÜ ÂçñI\ShÛ¾Q¬$Âe.Ö™ÓbÉinŒên±kºÌ ñÂG„û1¾Þ/úN‘!Ÿ¡c×¼ªÿ{-ѰtjOnK”dØÐƒ0ËôaØ8ÛÙv¡ XdQ;©E2 ÁÁ* d ôów¨M¨¼PRŒX2Æ5š9¤«™Ðï…ߨk¦†w‰ô ‘73Ç´!KÝP¸æ}­ö¢ÛÀ6ÈiY[hÇŽ‹+„(u@cD70qA MÀ®Ìh,J­ h)ý;â9÷.¿¾ê:ôD¹8–/î1´Ö(3›bìÂ7–ˆ…@]ð,ðº¨?s >^@ÑÑoЈ„60èéŽiX¬yTÛBpx´Áݘ·±[£2 ëú̼€©èq'=˲uÈkÅ_ãº9¡ˆˆ-í™®;æ=ÇЛA‰‘«X5¹¦ê|Š–1(ô‰IpQ„„D¸¤ô3¥CÀ‚žªå†-VÍÔ't9S̫œÓ7·>£ê޾"âÅX”LèÖ'm„BÙ ôëC‚KBŽEËü®Ð@ø]ãƒ?¥ƒBÐc‚OD‚¯ë¡ˆi3§k°…@E¨BÒË&,yRìÈ8DY âNnVç€úT­0f Í™y·1£qP«êm³IØ $ktÕ‰;µØê„ ß3·йlÀƒ}³¡Ü2ÿo76^i µ°AŽæïIïþ"ýbœâ²,ãòåËŒF#.]ºÄúú:išòØcÑív¹ÿþû‘RrppÀ•+W¸÷Þ{9uêJ)®\¹Âh4â‘GÁ󼯂~2÷¶ÉéËc¢ …蕨\jdghdg,8{>uqÿ¶*vNÈ‚9-ZÌXÒ3íŠØÕ5OE;ZàLs–ò‰åâ)má<’¼4OÑ.çØ^†“ÌEˆrAãgtÓrQê×45ëmdÖQ5›ŸUÞ‘!¾U΄•¥ðŽù7äDŸ\[êò­„Uöun…8!¼¶ÔœT¸¨“9ðÐüëRòÀh«SIIgáäiªÉ`Â7÷Ÿ™C‰A¬na…UØy¡Ç"“\ïÆ¥  •Í b©Y;…]äôË NZ"ÆeMÖcd;S´™Ñaf”9Ey°ÀK¸EœHIãT Î b -ãË!rqâ3±Ã‰áÔ\_ËrI©bL˜$xv ÒðÌÂ<Θ[‰EI›–1õ ˆ´MבҟgÞ ßmÞÝšÿbYîÓé”§žzв,yøá‡ ‚€ÃÃC._¾Ì=÷ÜÃúºN¸rå Ãáoø†o CÒ4åñÇ' C|ðÁ/¿ wÅ”À2Ø’/ &Ï®h]òj‰œ)²u áåfQµÎŸmÃ7~G˜Oš‚ZÁL°ØkQŽ\8¹m‘G¬†`)ŠˆÒÎVD!óÈá˜fý.ÑŸ… j™×+zöŽv6:`µ–»XŒéšû#EëqÌ€Uök ú—cZÆÉmAH›) F©ºlíT•¡Ì\*0sîÀÀ¹™Õ룈ñXc™¨fÐÛ`²(´K†u·Ÿâ’›B>£c@vß„áxÆ.&Åc.Z”êÈ(×cBø"bæt䄳Œ\J]w¥BªòNls"u©Øê¦ ÓY˸5 §‚“ç1ÒËÆ}+˜ÝoÌÜÍŒKØÆÞ1jtþA£ ¶AÑ Ô•Žª2+K0[¥Gµ¾4Ìë‹-è|ìccuu•?üÃ?ä—ù—yßûÞÇéÓ§¹zõ*¯~õ«yÙË^ÆÏþìÏòÚ×¾–ßÿýßç·û·yüñÇùó?ÿszè!þâ/þ‚w¼ã_€;dFî©yI–i*ÄIÇÛj^$7 IDAT¬ƒ®g×Qw®“¹± ˜ÑfNH†ËˆqQs™ÓFšC±o“2© t‘ÐNk%6Ùчo R´Ã\¸2#–ºso9)EiS¸%öR©•~ƒo‘4ˆ–ç‘/+™dÅá¨ôçóøª;w‡Ü„LéÖ’Ø —9!‘ò)±ÀNN®“Ьg­ïH2[[AƒÐÚk™S8t²Ò‡¯ÿk[(E!tS*—LضV+Gù¦³÷!–º9 ™}|A¡l’ÒG© »•ê×Õ>!·ŽVóT¦ÔHñ2ÅüVRY8AB™K )`Í\°Ÿ6ÔgWŸ†¿» ‰§ßnèÇLA¾²Ðo¤m.„¥Õ·%¬‚ ä…œìvJ!|Ex~Œ²¥ ¡¤@0`ÄËLèã7¤’Ûœ&ÂçûDì°BÐba‚SdM¼é1Ö†xl°Ã’Ñ{V§Î.cSu’6c–“™«gK•wq†KÀV± ¡î,·Øg¢Ç119.¡Z°Â!c¡/ö>ǸdLèQ"YbÈCY1NGmff}·‘¬•ûxIV3ð#g[ZãÎJ’ŽJ$b‘ fhƒ‹ª6YåI£#h¥;&€B6ºùʹÆ&Ö3«{ÚàNHsQæ qÐ@öÑ¡.‚Iä¾é|ææb>jtõ‰¹½ê¾gè®ábcæ¾ÏI\¥¾ËÝþè[õvmnnò†7¼¥ûØÇØÞÞæ3Ÿù oûÛyúé§yÿûßçy<ðÀüÐýûûû|üãçÃþ0?ú£?Ê _øB~â'~‚ÉdB·Ûýª.èV^òªOþ#/;ý/ˆ1üoüI×füMmø¦wQ@©ðã w\’v-ì¢`.¶~òïȾù~òﵑýuF+˜±$‡ø2®Õ%¹Æ%>Ë–ºÉêÓC»ýÑC-6¸Ã"oñÀÕkL.øŽE‹ÝÑ‚Áb±‚ö„h`ãE9ÖGJºgb¢‹´ã“H—\X,OÆú ‰ÂÙUÊ6ùz´ˆ²ÍÏRô>V­½eà¼A…ö9s}8›<Î/<ñª ÿùƒÿ']|„{ןáŸî{‘ÂìœÏ hg :• ø¦Áǹ~ÏY(ÿOð<É‹Xg)4 2í\ù΋´™qjsDO£sÿ¸öR¦mþß½ÿŸ¾þ_ Ö'<2ù æW)2ÉÁ¹.«Þ1²¯°L…ø¹äÝŒ§m®÷ñ_žúÆ“ÿãKþwþ×Õw±b¢^¥H¿MSìm%l¬í³|gÈÃñe~ló}ü­ÿ¼X}ŠB!$þƒ1ªâÐì+9|ãÅO°÷_–±çŠÑ)ÝËòcöìUúê˜ÓÎÅ·D®Æ"ì/xzù~ð™à!þ˜ïgƒ;|—ó׬–ûØyIü?YøÛEG|ñÉ;ÇôøÏü)! þSùÜ7½†/ò˜¼°G8Žé¸‰þŒoÝ]AÿB(}µW|Ë·| /ùËIÓ”~ðƒ\¾|™Ó§Oóƒ?øƒL&>úÑòÑ~”7¼á \ºt‰7½éMò‘|„?ýÓ?导ç=ïùò ºOB©Úá„ØoQÎ%~/¢˜:¨’ÂFùÖ é¡Ì„gàÊM-Q¹ãëEo «|îèÖ6‹MhÖë}‘¨®E!,C„¨H0·z¤«³~‹-Y%Á3]¸–®UÎmž±aÑÆ%cŸµš¨Vœ4CO|b㤠[ÝCbGi ªW…ÐveJj,)«ù·SÏ‚âÚkØ2»[ÓyÓá;ÚïX)„ÐñŽ)–µ+–ž×[5Ã=«âôº@Ç(=Sw×uiü¹´AfhºÖ• Ob;ÅÉ<[6àíf…Õ(žnƒt"ݯÕ躭¨"Ý¡sÞxnÃ&M–|Õ¥7ýŸE£¬$)vcÆn7È@MN@õØâKëП/GÉ2gˆëÏ»íoþæoPJ±µµE«ÕBA«Õ"ŽcYZZ`00‰¢è9÷›Ïç_õ²ŸStl™!eÎ"h‡ºX¶…°pT†d$®Kn+fªÅñ ^Lyç6<³Ë‚dä³hwÈû.~+" x"Á9wؤ+ÆønÆÌésÀ69ÂV¤k6ÇV,Mä}ðZ)NZy6S?$ðcºK ²®Å¡7 Ã¥T’T¸8½ R ÑÉcrObG%–*Qä)H%U­ÂÈW%¥.üŽ™cwµc6K&Zu¼Q‰3Ȉ;6SÙb6l3OC_ÚE(E&Ç¡°lZ§Ž°’’r I}Í ˜ÉS:Ú„Êíb[s°Ú8fКQ JBê:ÌeÈ\†D-²©ÇdµÍ¼ï! 8¶¸­[äôV:•¦U ¼’’h°8 9>°³ºA&\zîˆ@&Ý9Õ™–-- ÊvÆtÖåŽ:ͪuÈÔi“ ›–—à,çX¢ÄöJÄBá²uyÎÄn±Ë)Ëã€Ubà¶s:î ©JºË1hUÂiEá âÒáŽÁÅwuújDhGv‚µ¶ÀŠ2WàA¹¢ Ì),8Ú]aîÄÙ+ì¶W±TAdiWЮ?£3ØÕýöÝôÏ'[›ÿh¶¬q­¤iÊ»ßýn~ìÇ~Œããcúý~½/3 X–…mÛ$IR?¶Ûíê …/÷:uÈðÄË*˜¶zÂ’Û(WQ,lT)ôæÜçÄé†éÌÎlÁγðÔ:œóôiv ù­çî+ ‰Aå‰\I•&b“h⦄D´XÐfZ¿63SPS"¬²ÄQM<ó‰é16$:Y§®õ96A(9]ÆøÄ:nÕ¸Õ Sà+›Ö*Û]RR–ÛXÓVE¾*®ù¾*¶™ùT:•çz€–Zô,J§µeF.7#ÇÁ©“˜z–¡ø È^)°²B{B“ÒQ3œ2 Nžã̹’ºx–`¥eíÖUϸ žkSœÌ¦ErÂÖ­Àq£–¦£¶8±~­ sÚ(®Nv¯ IƒPÔnüŽ¢QÔ㘯NT“<×–³Ò «ËØj@õwSÐÅç’]\àUÕÈT<·˜ÿå_þ%ïxÇ;ð}ŸÉdBY–Òï÷¹páŸüä'¸qã¯~õ«¹zõ*\¸pÑhT_Ø_í½ðÇnŸ¹—rÇÞ`AÈg¹— ‡eïÈ@º BoÁm6 ‰©ü€Ÿ> ï»/Ù"Ï=òÈí"ï)Ø{å¾·`;<Ͳ<¢Í”bí“ÄYÀ6g œvOGŠº^F*‚ ZÖY…¾„,xÁW8nµ8b™C±BK̵C#±ìKäÌÜ…ÎìÎün†*þ"cºåá–9VG!Ý’ýõýµÁz†Ø†â’ -Ê……ê(œ¨ÀK Ú—ö×ZL­6é.<é-+î½ÆÚ:Õ¾–ÃÊýc‚NÊt¹ÍÓò\Rnpž#´ÇúKÜÁ&¯é"â¶Gºä–ÍuqÛœæf²E¾í’Ï]Ž^±ÄÎú*#ÑGùÏqü Y*öݶÝMö’5ÔXÂ\í‡ì>´N"uÊ…ë¤Ìºs„·‹Sfd–ƒ;-8öÛ ÿqSçðÚ7ÏŸ#ÇÆsr¬AŽl)Zi„ŒU—¿³¿ÇÎÙg=N±&öëpÔvYµ(ÎÝsÜ’Lº| Ùå³ê^®©‹ŒE‹\à kÊÀ:&>5!È#:Ý%árû>®ÏA¼Êá?œ vΜ噗Þ['cXdá![÷ì£àSw·æÝÏѯÿÉ|ÿþßæ=ïyëëë|ÿ÷?O>ù$ÿ÷Àöö6>ø [[[<ûì³ôû}Ò4¥ÝncÛ6iš²³³Ã©S§¾ü‚ÞcLŸ]+ÅZ/¸>¾ˆU(Ú iËc8Y#½À Œ/p(u^õ téú|ú&\\‡-n@zìén|ÙlÈ{fn4†¾* lº#°Î¸YFÛ™Òí:3Ü#1‘‰ÚÒ&cÀ1ŽùÀ$Úø À21|Ú}ªÇ×Àî+ÑgD‡ Kƾ016±1«šn;ÅN3|•`‹¢6¥9d…sN±G‰dB”eŽXáטŜtó)efáå!Gx®q¯“‚µô€ÄvqŠŒ¹Ý¢/Æõ¼*Çf¥Ô¯e!B¤*ñc¶ÖÉf,-ÆÈL1œE¡Ó<ãôW‚Ž!§qh¾o5æÞ%'²Äy£˜VA ‡ <©b¹§ ùOUøÇ ö©à¹ihk¦8™ûUúñìyDšãÆüµeîŸ6æ••¥dÒ(ð•éG…ÜÍ!Öïß™¥Yæï¾zõ*o}ë[yÍk^ïýÚ¯ñ“?ù“¼þõ¯ç-oy I’ðÖ·¾•K—.Ç1o{ÛÛ(Š‚Gy„¥¥%Þýîwó|€ïþîï&‚¯ ¦{8L¬vÕ=¡ËØ!F¡b|Š:åPk—E§€UGG^ oÀêEÈÚÈ©"ÉÏ#‘..…e¡œjùéC·mÒ¥AÍrìúP^Íõ‚Ìwˆd cSQ À9n™j8;××tYJd¡–¹4"¥ã~…ÔIbª”º7ˆ“*Ño©‰¨¢U83§Å‚€¢cT¨5¤ ƒª9†±£ŸP³Ôï°‰KÊ«Ó'dQ“{µ÷†vš´”±°Gb™CVXÌC½. )ò¡}ˆ?ú£?â{¾ç{x×»ÞÅÛÞö6”RüôOÿ4išòS?õSÜ{ï½¼óï¤Õjñè£2 ø‘ùÞúÖ·’eo~󛿤8ÆXì©uâ5@Ðó†DóPë…8[ ·Nˆ!¯2y „¾g ž¸ ·× |ßœ…ÝÑ‹}¼ì•”üIפj)hÞ.Ý’rURÚÚ÷yJ›‹63öY3 }Æ”Xµ)Í*ûLis‡ÓæÂÏÏ{X“غ†oQàIŒ&Ïõ‘”œç†q—” vXŽFLÊaiGº —„A9"–¾‘eœ+o2‘Ú¾Ì&§Ç13:5ô–1­EDÔs)¥¤•/XÈ€…€„vas޼>¾ˆµ9‚Le‡[å,EcmÞƒ ³l¦í;/p‡)6b P±Àž”BÙYi»Ç Ya5£>ÅIHÅ®†ëâZ±i{'D•š(TÎÜâ$¥ÇI Ëù<« çŽAvªúAãp—4˜ÅÆ>Ë|_]DÕ¼¾’­UÅ¿x*¼ËÝïß!ÓÙæ¶‹/òØc¡Ìì8çÏŸçõ¯=Bl[_~¿ú«¿JQX–…”’K—.ñ;¿ó;”eYßçkáË’¶ÊÉ,ÛŒ”dmØädI!ˆÉqðIH…K¸9a1ìQ”¬nÁ'®ÃÚ\°À,ît _²çlr}ù}Æ\r¯‘Z.;lÔÚs‹‚O¦äFæVå£GfæsÁÞf,zŒéq›Ó ÄHÕ¤£U+v^S×Ç#(#훾<áØïâZm¡\ų‚Õ*°NMqDIÔsˆ=—Âr)ð­·» SÑÖ„¬Ž@>œSÉ®(3 i¡„ ]ò¹Ãˆ ÁŒ6¹ÀòK _à9ybᚱ㈷8CŠg ¸Úµ"`Þ:À9©å¢„&5'©O”…ËŒì%Å2¡‰ŒV#Ýc„PXv¦Ñ™"®“ãÀg—uMÜ#AP¢,AÚ·Q–:©À_LA_¸ Kót?üÃ?Ìë_ÿúBw‡_ú¥_zξpþüy~÷w·Þ„üÀü¯{ÝëêýäËÞ-´cÙ1 ÒñÇà”,ÙG¤ÅQÂÄêX¨=SÐsà¢Òfú–)Øç ·àŸ·a´LÙz¡U™ÚRO¢+½ªðª[“–¾½ÖZŽíf„i„ïÇf^¬aæ ]Ã/0&3lw‹ÂHØB†,ª†¿µ‹\Ž0’‰ÊÆ3PöŒÊÀ2=Ɔá.Xà§ …:Ñ“ë óÚ‘±¢Ž´“›aÞk9š‹g'ì\LdP’¸a¹ SJH-×I ±ë`‹¼¾ghù†«2:ñœ$ó4^Q&øy‚“¸G%E,uA^(]g¦˜]­Õ ¯Í8 ^Áè¨ÑYÏLqí>o\ÒŒ˜œšY£8æ¹’æ/ s{Ɖ‰Ì°Á4®òГÆÿ7“Óæ9ç Rß„ç`D_„XôùÛçß›[¹˜ã|îýüŸI)‘ò¹'˲°¬¯E»0m…Œ­3Ú±lâ‹u0JŠ«ÈÌh,ÅeB—npLÖõ)Î:PX°² ÿrV7Q+6å3jËbZ¸¾t‘±ï¯b{»¬£Ð°z@Ę-cwZe.äØLè™Î1 t¡:4¯¯Ž eÑ@Ò‘ÌUÑ£„í„\Ú$¶‡¤¶Å>kvŒf„aÂ0èS ‰p…ØVê ”§c`„-pDF±bn6 ê2%ÂçØêá÷ŽÎ>ñæK ­%\©ùA6av($¯E«œ’+›!K:&Újékã gƒzOÔN™†ã*C a1¡ÃœSÙ¦ô´‰Lœû±Ìœf5™x$g?W0.»äÊÖim»æ+{8"Ù&þÛs’à“âpÈ2Ûœ%"àöÎ@uÑܹ¯"ËãP¬° d¶h3=ZbÞm3^îsèhUÓ€‘QH·D ¥;§ÅXõtcй Ùaƒ ‡%†¸¤ŒE¨íXî]¯{ç‹ìÐ?ßõþÅî ÍýäËסãá`iKT1ÆI×N5Ü´°Q{ øBwgSq’â3C»ÆI[gà±Û$Wz'2(Ødm_C©(WêNqÛ ŠÔEµ%å@ƒ?®ÙôëK Äæ0£…MQwÚáÍ©}Ú+˜^{¼·Ì÷ÔÒ´êöÇœB+×9˜mvØdÍ¡di6)Y§¼ åRí§„`_®2d‰Ó"ÓZÛ¹žy[qß#µ-´ÀDB}X~¡)uº ¨u푘´ZØ–f¸—B­K!È»RD$-SØí†”ÄiÀãU¼é’)Ö¿dŠnɉN]4HiÒtçUy× ‘ó¸*)Í1ÝxÐË­pÒQ™Iô9±Ó¬Øñ¾ùÙ’y<ßåÄÌC6 }¿¡)ܽtͲuQÿ7OÝ%_ÿú<_±òkTë›LèrÓ̸+Ü"Ç#eS´™2¡KÏ“tB⢭÷‰óx§àÙmðÏ¡ÎJDTB®í˜‚…ÐëL“&†f8ê5ൖP¹FBꛃEÂdÐaF uF‚Ö)5É55>ÈJT>PØÚŠÖ)3¦ªM^Xd–Ô¶>´Ë‚¹ÔV¦Â†BHJiÓnGäËz¼0¥ƒ³”]T¨åu•Ķ oÊ f":Üd XŒJŸ´p:Kup”KJ‰Ž‹È‘ Ùg;l2v{à+ÒÀ­%bsôktI8°´ãä!+ì±ÎP,ë§ü§¸æ=ÎjIšvñÓü¥TºÌŠ6åD¬ 6ûg…\*!È•†Ò'¢Ã6g(Lè‘ ŸæÔæäæ=˜Ê63Õ&Ãæˆef´9¦O*<7£È,”#ŒjÕ©%“ÑAR²Ã:3:ŒXÒûÄ P«Ò˜{‰†I—žÓ—âî6 !ÀþBý+l÷eôäÿÊ}Å Á5÷²™_iÓzÅ –`þÔêúŽ>‰Ÿ O°Rê>¹T¨«–¶ÌMa ¬s%¶¯è·¦Ì{!R("`…#\¥Ý F è© ˆŒ\j`·gÁKÆodÄ)v™¡?üSj~1¡Ï8p—éª)~š K1v{YDê¸Ú¾qoFÈœ\Xf1–ÌZm|Ѳ"l b×§•ż0øWZ‰¶},Mçí¦¶È™ÇmœýWd8K{¨RØ)­qDî[XYI V­!…´h…š‘ß;㦩ç 2…=Cös¼YŽ{§@¤:ßYìêŽÕ²Êçz¬ï5Ø^±¢lVÅtÉÌÊŸitÆÏš.øøyz[ÏÖÜ<¦b¦O…¶¢€V‰ v¿ÃIàÊÄtÞ•IÌÊcSD+Æú.µöVÅ ¶9qûŠ9Év÷A€Zºk&迯Gɾ^¼?·C—ìºëì±Æ‚×9O†Ë.Æ®8«I¬>C–êwGN™õ;ˆó µ0É~Ë\=½/¹€JTöË5¦¢Ã¹AáÙÆcÂ2&QZjzÒ›gudqf¢ˆ‡,s1¸Á3\B˜ÃúÌäÂ4.Ò$æ95,+ñÚÏZçpdJàk Ñ„(qÝ%f.Zú@oåHRÇeeéˆÃ`™ËÜOÄ SZ+S”«Øg „ ‡ˆ)mΈe?eŸ5ŽX" âx1àNyšÐŸsÓ٢ǘmẔ(1 6#1`Ÿ5FU´§ Tj3n÷Ùg‹1}z†¬£D3î°Ég¹—™ê¢\Ýœù Å6gY°ÂQRÚäD&hJ!ØQëdר„¸åq‹(#)®R-S¡cq§n—VɱÙeV)Ìh¦ÃTɘ‚°"±…ŽŽžÐaÄ€IÑE%’ø ÍaoÃpE#•dôa“3ga•§IÐŽlj„oÚë°Ïª9DˆÚ3dâ·jÏ»¢ÿw¶Šû² úÈî³mm’XW¸mqÖÌO¶Èp¸&ïáÀZã Z%—qRìûú¢ÜAÛï]…YÔƒshºs>~ ®šWW¤ŽÓ¬ÌNº¦£Û×pj–ÚÌ×}Žì;lrÀª9á9´ÄŒÂ@ík5ÆÇ!倵šxQ9­u˜6€=¤×žpÈ ¦x^Ba6‹Öi9 "úÓ÷&Ä›6©í œö (8Kc{Š=n³ÁÀÕ(AÖ@ Ê©Íf ɇ™b©‚¹hÁJIê8øiJb;Le‡Bh@µ5K>ÃÁs¬ý’è´)8Kd ‰Û)O:éŠÈæ7 ïªÓ­VËÔüiH‹ C^«ãU´áZC~V˜n¾k?1ò”“ …*”¥š¡W@•d% §ÁŽÌªË‰Õ&'Ï#æfæoUNuÍ ¸y÷ú¢_/àŸSÐÁ¸"ê.z8heJ1m¦Ìèq?—‘æi3ÃïÆŒ¾g1…x/$»ì¡ÎÛðçàýÏÂ=[°+¹!ÀZÉé¯Mx™÷1ž-Ïq ȲäAû)npžuv5?…E=ŸÞe ]6Øal÷Hð1`‡Ú”j‹›f$Vup=Æ„,Hq™†]”€VÌ\>ä㼌xZ?Æ…Oð( Bíü´ÅŒyЦ߲Â!>÷Wœ1UvY×yåĬr@„OŸcY!"à>EŇ÷32Ûg˜t˜ÞßÑÈ:L™ÐÃ'æ®2§Å:»t™®{z­&°ëœBñ"zÆiOÛP[t˜² ¤Ã”‡ø £Îg^~Ë$žÃ+$x¬±_Y[Üd=:Ö ñZƒìÓ.Ÿý¾{Hñh3«Ég:Ǿ$Åã|„‹Ýdg/²mm±×ßÃ÷lŠ;ÆŽû$¹2Ãá~®ð™Ãˆÿûÿø^èÂÁkWyͨo1'6 „sài2öÜSðm%–Ÿ±×[å1^‚Bp–[ô3¦Ç;±üœ´¿/úðÿÕTÐ{ŒYáˆCV° ¬ÍŒ!K:ÁIðZ1iäMZ”Ê> Ǩ\lš„éüΞ…ÇoB V} n›nqÅlÂ;¦p„Š ¢„ÁbŒêÀ¶8M— Á!+8d'sC@«ÒÎJ,öY52°¬†Y*iZ—qà‘ÐaBhNìúä§Ó´ :é̉°“„RÀB†º#P9+ÙÔu5)ƒ‚%5d(–´" -µÐÌtÔS‚ãaÙ´d( Gâäúv§ÈqŠœÂ×lý[åJ¼<ÃV^–#°Ë'ÉQ dΨ¬™ß"5½ò£NL—]é¸]󳣯 82…rÁ‰¥å¤1¯™rN’ÚªD´Ô<®’Ã)NÒ«œ®Ý(’•„­Iœ«¤i‘yîJo®D¸´Qd+v»‘<ŠÂd­% ú×;ôÏû5£ÍB Ó éÔ®ýÕm•ã‘QˆÈdØ„,(Ð…9…íhûD¢P3 Ö7ao¼3¨¡ 6Ißgè-³spÇOqTư·ÄqÙ§,$mgƤì"„¢#§Óg”/!¤&²]ã" ²¯ÖhËYÝåV®ŒÛZ;@j’_dùŒé2§MLPsX¥Ã”¾1-ŽéS.èfcŽã©Ú`*Á%Wú9o²…¤$dAiƒGÜÖ3dÚDªBB IDATµ©Žº-È(àê¥{p­„ ½º1ÙäIíÚV`Qf~“Ÿ±J`L¿¶•” 5@ÉŒSÚä…ƒçÌe›ëÑ=äÊf'¸ÆB„,p Á¦Š²D~lC ™ks»8£cmÐSÃ$?Q ÐþõÙA@~=$ï•Qâwæx~®µ(Ì¡¦4R_Us§0ØV§É±Yûô›lF‹ìj®•ÊE;,üÅ e©ex•áˆábÝe‡þÕVÐ]£á¶kí·ofÉ®HX¶˜mÂ΂¼´)œÌméB^éÌ#ó}»ñGö€­-¸¼ Ï.ƒè ~ȉwr5ƒëòX…8*lj!¹Øõ‚ñH ›]CpÇ521IiægšFWI}[ad/ÖsnOðLÔŠª­3éà”1R¨“ņ¤V=£Ép˜‰¶1¤‘& Å6§VÈØRQ¶¥%É,Ëøº%…°)!”Ž44º‚"Æ. )I\Ǹ*ÚHV¬tèIå±ÞL†rór§Ah«‚WªÇ4gãÏïJ«Ûsž+]UW-öÊ6Ön<ŸËçÚc6CXü±Í7¿§9ó¯ZB× nãwØ 4Aê¼õ»¾¨¾PÜZòõâýoí\M)Pu]´™±¬†t˜Ð–‘\¹ô˜à’ò—ñdÊ~w•²eqÇ:ËÔéëЧ¾„ÖáÊ-Ø:‡JñfÀÄê1»º„XÎi÷¦ìv×Yd!*¶ÈC!ó2¤#gLT—8õ±½œ=ë#úÌè°«Nqʼö€ˆs\ÒZÕ( öaÓŽ”¹™,±lÊàŒ%1dLŸ]6Ì|[²,[ImÝ|žgIÅ׸È6g@Á†¸C‡ S:¡gäSÚ\à.)¾ë5¾ ;å¶•·É”‰yG,ÐeBŽÍ ÄZçÛ½ [KØ$5H« b Õc30pu— ÚWi·'ìOÖÙm’G.“­®Ž¼6Á-! â:·BÀ&ˆX¡JI”¥M,}&¢KauZQ4f‰¡>Ð #=ÂëHâ Í\‚¥ˆQk@䘱Ay.pCçp ¸ G†c»‡0[…¼&†˜\`q/WYc!Alæšõ”܉NC& ûs“Ö1Údæ®—üWä>£ÍŒ>1}ÆŒé׋Xÿ‚Œé¢Ç}½§i­ÌØÙ=C· «´œB{¹ßb³DÝ’z~¯ÎmÂãw _†K†å«pû­Æ¼ÕÌTE©CVä¡YôV8¬É-•¯»0.k«VÃp9C“ÒVAb9#BÓÝ«šlbQÔó©©‘S´™qLCVXs†´Å¡ œrA)$ÇbÀÐé“’‡>Áw˜Ñ®“–"ÔÏ%Q$Â%ómÜyNâÛÚ®\é{n[8yNæYJ Ñb!B‹A”“öRéàç }@ˆ mµX…TzpÇ #4ØâUVq5·ö Ì4Šv¿Ñ½Wª…ˆY™×(àU8˪ù}¡À«Ìòv÷Í!/otã^£è2díbWåPÛœÈâÚœhÑ«¤·J+ëïEïK¸¨¾P‡þõ¸µÏ ¹ëà£9Amöd“³Ìkå&&ÁKgt˜{䛜åm9£”’Ë«÷s«)KŽÓÛé=¨™k›ð·ÏÂųÄaHöÍ6‚zÖfqªÃíý $3ŸÎ`BºáRZ‚( ‰[“ý%ÊÔF­Iâ–ÏDö˜Çt˜ J$kìÕÍU¦BÅ$ÏqšB«É^ú¶¥k×È¡™ÅÇ&1&W6vY˜CN£|‚63þE½„÷Eÿ IêÑòäþ®ÉïÔÆQ¹¦ßו92Í)g6Q€ÈJ‡%wÈBµH…Ö¦kTõ¸n^áòÌÚ¬°£6i‹-fÚ¢´ðe\Ïâ;LQÀ·òìqŠ'ò‡ùødµc‘®útœ‰~ÎÚûc®3'¬6gºÆxÐ"š´8xæ4‚ã3ËÌ–Èp ™#QDœá–†ÆÇ \Õ×g1w)ÌÎõY|›~«½Ü%¥oºz¿!Ε¨B2ï·Iç6YáðòÞGɰk‰¤Ç˜Õâ,øæ³ÿ€k¥ìímrù__DÜ!õ8E;„úx_iÈý?)ΩÉ%ÚÔ7Á*Ô>1Ýî1eii‰‚ÌtQœÈ¢º œKf䎧 K\Í]%<° »wà`úÞzÍ¿Š/,R’HýTÐ’¶Aµêî×A’á1¥ƒ@ëÄS<£ÛíÜô Q'·µ˜™ ÏLÑ “ÏV}o“C ©å‰À4°’Xxf–ÞªO‹U¢[E …2þøŽ((d®G\ú¸B;ÏEv`¦%%qé“K›\è46³À£RÆÙM³ÛU  -”­ƒˆêv³k¯LWT©´æ²qºL‹öù–¬NãgU¸Aј­‹C^4:mõ¼çhÚ·ZN;o<Ön@íS_6ºú*a­i[[4ö_É‚.¿^À?· WFš¼46¦JÒ@Ö¶U(O’`“³Ä3:¼„O² Å€‘NF”CžÖXÇÒGž.(§•8ÐÙ€+·‰pµœÌxú¡M4a&I.ø$žŽ"™¤=l7„¦ôž]æÈ]&-|2y²äØD, b“’X–Ÿ)Ó™úDø5“ûˆezŒk™^õ\3ãèØ3âÀçeR<îå³,3¤SNï/QFɺOækNÏ„níN9¦§‹hßA,Œ£|i±pµÁMŽfàOé2b ­Å?-o3ñº¤+L=Ç£t6…‘ÁzZÚE¯Öó/s„ äºº5×®:Yéë×pð3ææ÷ÓÇ"º#ré’=€Y×E-KR&ôt<+9ûœÒž_ó£B`¬GKÇ®­,ÒvÙG¬áp.aÏÈ3¬tÉ&.Yj¡z‚ߨš´ÿÀË´-Ý„uܩޥŽ3ÔŽ>‘GIHº†KåÄpÈ}oow¿ûÝ$I¯ÿú¯ã8úЇxâ‰'8sæ oxÃX,¼÷½ïe±Xðš×¼†W¼âõh½ta|Ô–jHc‚†R„Ø"g;9C†M”¶u°}bbUGzsU;’|䳡™ÖCàŒ„åMøÇ;Ð^†v ]ânšBa$S ­w-¤ÅAm.Ó¼ªØÒ9Úû¸ÍŒ˜ÀÜ'¯çZdžéY"M,ªmì!s2W,° t˜x?Æg•}<+!“. 階\—_ÅX¢¨7‰j®_¹VéFÃ;’)bì´dÜqˆm,D@ a#eA!$S«cm‰CÊ´êÇ—%~šµæN€ÛI‘–Æ¥ÅD¿×ÊÓ(Qy©/™1FÓT¦*»<×ß½*ô-žc[‡³Tsí®é˜Ssˆ[2m7Xã#óû½ršÇV¶­Íq@þð ”âÍo~3«««'èc™é(M©;,h¤Xå€~qL7›"Ý‚–Xૈv6'1§n¡|›´ã£„`Å>bÏ9ÅT¶9”+¨›bÅ"Y H“€ìY—ì™gØGl½à¹ò(3AV8pí³Sœ(e¢zÈpŒŠ"žQL-D¨XœjÑwqeFK è3Â%eÀ1†8eŽ’—„%†t˜rÈŠ6™*oàŠ”±ª-m d—1ƒü˜Ð^0'¤m’µ>ÚÅucNs›Ÿs·ØÌvˆ½€{–®°8î²^ì±Á, 6ØÁ¢ Ï1gÓmÊÒâÒÒeƽ‹3-zþH_ze‹ó\'dÁ–ºÅ}êöå*m¦´™# °£‚MoËR|zþ „bÎ9÷¦éÅŒ{¹Ê-Îr†[Ú“¾Pœm3”ËDA‹ë÷'…\ô®r¯ºB*\ŽÐbΪ:Ô‘®¢äe|œ?b¯»Á3â!”l•Ïò O1§e”­rÎÙô6‘°ôÐËê€òXâù ªôW†<ÂcD¬±Ïi¶qÈ9ß!·,ŽÂe^tþ1Ž{1Wmài ¬Z7±šÒ/ÇH¡x­ýW”–à±üQv»§‘¶â볜á&fôÔ„©èÞ}ýýï]ЃozÓ›ø¹Ÿû9Š¢`gg‡|ä#¼óïä7~ã7øçþgž|òI.\¸À·û·ó ¿ð ¼øÅ/¦Óé˜fDïñ"„ ¬O¨™r ß‹ˆ¢Â)!zS]ã„a½l6ù „R¨ž¨gã:WBgnßÁ ¸¾¾¥ç˜ ƒRáªWdX”Æ:Q[¯VNK¥a±ÇøXš¼gUgï)G‚M^Ç—V§r‹‚aìc#Ã’ÏÍoÊ<›@QëV…)¶™°k´ "`LÏ8À{5É&3Úu‰Ò:ô¶ÃÜÖäŒ\èCƒ'Rá‘¡c…Tö•Âp9]/Ò³~Û"÷rd¡®qIS ¤Ž+EšØ2JU«Bm5jņ¯0UzuЪìV³ç¼ ¯ŠºÛ`¼» ‚\u¿1°ˆÌìysyÙxŽyvã5WÂêy(ÂWr†þ5ZÐ~øa<ÏãCúögÆÆÆ¯{ÝëxË[ÞÂK_úR~ï÷~7¾ñÌçs~ó7“w½ë]zY¨‚‡o>>:xe q}ŵF ÂÉoœ§6”¶À”–Å3Ý"étèlÍ‘N‰åÞb=<$[µ˜:^è?űße¶™ÿ@H,}œyÄÆo=ÎÆ7É.ÚÈnŽu*e·ñ󄮘2ìôqÊ KÄËó¨CàÏñÓ”Îጥã1¢S F` Z©†…“÷¬ß N}z³1¶—³fÑ GÜZ§çÎX[9D)Ø{´ìé.wöùÖÍ“zí|FQZ´Ó9Ýàk¡øÎÉß‘J—äï}޲U¬Pð½ßú¡úà,r·Yë ÙÌîзñUÌÙƒdRòkÇJçÈ ±¢ Éòµ“cº½3»GØ‹y…ú^‘2™tÙ½±Î™å¾ùô?qOï½/<å V Ñ1Ý`Î%û÷Û—i‹Yd3~|@§\p¿¸ÆkzKéJN'·)K?ÌyÁà)Zù‚õxSÖ®þüsÁº:da<ûmOP`±–ÐۙѦE„ke´Ê®Ý^³ò×Xßš“ ‹ÖÑ%ôàÌÑHÁï&a!rÅ#ã'qDÆZ8bÑi±hµÉm‹ KI;6Áí ß›Òs¼ &P1÷ߺÊÚñ‰ã³Ó> ­á Zh¢^¯ìDxYÆzyHß›r•Óÿ±gè®ë²¹¹Y[LÞ¸qƒ{ï½—n·Ë#<ÂSO=Åc=ÆÏüÌϰ¾¾N ‡Ãº _þ‡Ñ´ÀÞÈé=zž‰€ëØPQ`Éœ ÌŽb*ú$ª‹l” #q¦áàY˜ƒ»†ÕËFÑHÈÏÀ䔫0ðõæjº7á•iæ·+ÓÚ¢Ê$×p¶0À.ðÕl½J!ÃÕ‹šm«‘ˆ´vtÓa q=O¯tæ. ¶™Ì+B–5¥’Ø"7¹é9 ®‘í,LÖzQkd+øI”7.èúsb7£Z«&1Ž•ƒ€Ò’F¿^›Â(ýZE) TX…>”8iŽŒ*v·@D UhФ†¤+æzeïºh¾fbZÖ Ä©QF!§ÁxÏžWЋÆcˬž5`ÿÊm.á$ö4käŠé^4Øø'yëé¯Iê+aÃGnB¶;+_BAÿÿa‡Þï÷YY9y³>õ©Oñã?þã,//ãyGGGqÿý÷ð+¿ò+'ÄÿBðûŸÖ]ëæ#kl,YX¾^ïÝ1+Ýéº^B*J,zŘ™èpçÑ3ì°ÁØä\çG,#(9d•ëùyŽöO1ÿl_;PðèÃe²¼ÆŸþ×Gá¥çàòÅå¡CÏ’²+Ȇ²S’Çbî™ÿóÒûÿØ{·XM¯³Îó·ÖzÏßyŸwírÙÛ±c'!„Äi ÃL¤¹† ¢%"¸áfÔh€“¡–x’tÃ@PÇ Iw“4&±“ǧ²«j×a×Þû;¿çw­¹Xë{k—Å@œ4ŸTªªok‡÷°žõüŸÿÿ{ïƒCî(‚Ó):–œ?ù4B¶¹GÍ4°;ºæ øˆoçsË:‡ÜÉ œã"1Ê÷ñ¬¹›é|Äõ¿8 œ¼ûENÞù"žiØ7ˆ(8Ã%~!4ŸþÂÛø÷Oý”EûžµhŸ÷ú’î[QªáßFŸ —̉È9µý%ŸÎ¾“_ü”Ïu‰ÆÙEâµßó_IHYÒaȘ>sNÞs‰N5ãÈð;òŧâ¥gÎñÅ?4ñPM¸–ÑÝÿ ßûÒE–$¼ù•Ñ_I~ê?Ô Ý÷}ªÊ®¼UUáû~ûœ1­õmvt¯ûNŸûÿMB <ÏÍ–©ÝaA‚Õe±ë_ãÐ[G=¦Á"ÔÐsîd‹U—mIrf"ís+;Ñ#`k$#€³§á‹—-¶º·þÝe(™¯‡ùÖÆp‘ZÐct$9Šˆ¢ífWð¶GÃŒ1¡c|*Èõ…vµáV$éIkÛeN¸(ñ×jzÌ©Q(m\Á® EÙFŸ&nãà;æïJçx‹˜ =A`*´0”&$)±Îi‚YÛÎ?TFB72Ph"]‹£%bYµƒ¿4ˆÂUàÆAí ·RÎRnÉÍVdÆí‘¨êX7^›I¯ }qìü5Ç:ý•)L}¬ƒ?~–Ljk¥+Üå±yýJgnçvSQÛX¬ÒÞrn¥­y·6 ] ÿÓ«,áïyï¸kþìÐÿ®µ¢i<ÏCJIÓ4!n['„§Ø}ÇëœW{ÄM·9¶2§ŠR.\  ©’–ór‚«ÇÖ?kÙ)Ü=XãÛT«¸d9Ôð¼‚#È õ=>¼ú$|iühÀT'|ÄȺ“™¥ © IÌäM—l=¢‰%ø<(Ç1R4äu„Q03=Œ”,›‰²&%3ú\ᔵ ¥OÍ6’†Y:¤ÍYÈ®›a÷ZYØŠ”{ÄëÊŠKÎq‘Sæ {ò”  9Tó€zÇ#¯#J°n7\ãAÏàù%å FwÎÞ¹’úÀ£Ñª›/é´în»\G£ý’rÛˆÔÈO×tY2qÊ'¤e—k”tû ‹¬ÎAW‚®œ·¶ÖÚ©vVaW}¦ŒÄ˜2ài»è5Iu§ï.ä+r›4huàÙ{}‚•(ÙxUÞySGÖ­SQ»¬É^I½¡0’ºÄHËó*Cwš¡ü_#…¦òm,.G Ѓ‚&xKm“ªr¬©Oæ˜é©SÌÝøãú±‚ºêH+7ç^ÙòØ‹ß+Â7iƒ¨ÝÈd%5›»¹üžC]*w.W‰mãc$¸Õó÷z7¹•âÖ9¶q˜¾¬€—Ç:ûÚÊWn“‘]9ñG`öÝ÷}¥Ýû·\.¹víóùœƒƒÞúÖ·òÑ~´-Þkkkœ>}šOúÓŒÇcÞô¦7[· =fv£IÜ¢fÊI¡º®¨„‘)jb“Óà3ýÛ º[,qIQE4Ä+ªEøô\Á XlÂóWážSp]`zb©bØØ¢yÓ]Ÿ™À5Ñ Ek²ˆ` ðYÔ=Br&b„ö^?4k¬‰±µb¥OHîŒgìEêØ‘ý,qvÊ”Øé®!}Qò Ã.רðZ Wìe¨íŠfáQ6“ň¢ˆ)ƒ€¥è2bÂN³šn½¤çÏȶšÔ&›ÕÓ€¤É˜û²ÒmLì C&mB[§?CÍk¤_£×ݵ FÛf!úmnpІÚ(ÔFj‹d„ a ¡,[ jKlÞ¸xRëÓlel«EâVlžq¾Á~›À$œôjW½ÊË]%˜ÕxHšVQzS"?Å„’Ú™éWøQA.C»ã5ŠÊ÷\Ça¨0mÀJ ­áA-t,À34Dª†FIt#(|Ÿ®ŸYY‡/h”$“‘õ09FCå)Œc±¤t€rE5ÙL¼:6‹¸=ZtÅVu¢Á1f¼:Fh3Ç ½|Ù¿¬Ã?O­¤hÇýäå±Ï³"¤é—uÃá±Í@õ2†¼:û¿\wðÉ־ν®k´Öø¾‚²,Ûô5¥žçQvÇ!¥lƒ^þ{ÿ/¼ðŸùÌgØÝÝå/þâ/xÇ;ÞÁr¹ä“Ÿü$üà Ã÷¾÷½<öØcø¾Ï{ÞóžÛV.«ä°¾ Slr¤Cê¸+¥+×VNZ3}|æ»—øBïg°"é²`á2w Ÿbáõ¸ÚßåòáyôeÅÒKHî™!ÊãE¶+ø.Á£gðî«aÃPÏÀÌ={]ÔXlKÙ!éÌJ2žø ï¸I”¬E‡ Ř ¹ÌiÎú/±&Qh§@Ÿ9G²˜#¬äv|ƒXeÌ裑¬qÄÈ! 6h$cÈ„ºãq•H4ß»øÏ¬gGLÄš-8»þ§ã‹¼ÞI$ gßY´QçœÛ|†W‰® O0ÉGxª&[ïpïÖ—Ø?½Å½þWØæFÀÒ é±à-|†ç8Ï—‡¯æ(‘ ±Ÿ²qŠ+ìr­åäÌéÒgξÆ]<ÏõS;øA†Ô†µî÷ȧɉØà€ 2Á§bÊ€\%"ç’:ËóîE„šÓk—¸ÀW¸.vÝæ¬²?/²ž÷‘‡éH¼º¦~½„+‚¤N9^j‰mwÌKaÍ_<¿æ‘þ§x©{†‹{÷°0]š‘ß&bÆ2kýí•hðššP•œWÏRãqñÄÝÖjÚoX1Ú8d—=v¸æêFô2C7ÆP×u‹|c(Ëò64l…šxž‡R c UU!¥´ik½^÷½ï}·½Çk_ûZ^ûÚ×ÞZ¿ø ¿ñ¿Ád2á‰'žà‘GáÝï~7ßñßÁÿðsêÔ)~ò'’¯|å+üú¯ÿ:Aðæ7¿™ýÑý'QÐxàxàÛžû¡ú¡Ûþ¿¾¾ÎOýÔOý­Â5[´U|²J2›ÑçP­ÓeÁÜýÌ£æ@nXÉÐÉ8¸¥š±â‰¨ML».vHEB¦cë7ˆ…!+ ¹^LïÂ]F§›è3>lPÚŽúRÜž©¨ê¡ ƒÍCJmH“â‹Ú!s…Áqtæt‹¤…LiPTÒ#&åWXç¯p%!'ÙC`, ÜhäÒ"‚5>‡ÉÄ[ë=QphX®wYnvQ²¡#lNÄ)‡j—ÌY®›¦ùå¥>(ƒÞ÷˜œps¶ÅT 8¥®Rpƒm†L0`=ëܘœàðË»ÈÆœ”$aʼ顕pÁ&–(<£ÏÖþ Û†¹G5Vt†Ëvô¨hH‰[©Üªñ»Ìiö²“ðiSáJ¼ IDAT‹Á¤¦C}·¤õÝMú(<ò¿ÿû¿Ïç?ÿy²,ãøÀ7¯C×Î--rqŸ–t¦[&·q¶|¡3ë_ó¹X â3s2ÙAKž³¨wGN=Žák® ûR]I·¯¹…üÛ°áÓÓðßöГ’2ð¨„GNèL[l¶xâhÓcF­µkÇ‘ƒRR rB´4(*1 ×°µ\ì8fã:vÙvñ«T7m$¦QÔÊ jPLè­©¥d):ž›k»<å"t³t›ðÖEX¸½6F å1L—¶–I2RÔ£6–ÐSId&†"ð‰F”S[’LÄð›ÝsEþ¸ùJ|¬@ÇÜ®;_±áãcsíÕk$Ç.ØUÑ^Âãšô•©ÌªðvÉÝVZxÅíqêØæ¢<¶!QÇÞs‹ÝçYëÖWò¶èØûþ@î¾ïó«¿ú«|ðƒlôÞ÷¾—º®yÏ{ÞÃÛßþv¶··yôÑG¹ÿþû‘Ròð¼ûÝïæþûïç]ïz?ò#?òÏ>JU`8É91kõŒ5*ê)½lAhr¼Àº?TDMA +–2&Õ ©°Ê…ÝÌÔo½ejá'zKö ôRáÍjô†²6¿gæú\½Œ\?QîDic¹;sKÐ]ä=Ê4Æ×%Må¡’)L›|f¹3Ek9P“·lv®µ¡ •3&É\wW°$±ñ¤tÈ)ž_±Æ¸M›Ëˬ‹~QAM%­ºŽ(ýÀŽ'Œ,Œ}&`Ö È:4Ïù6fzb˜g}L¦0"õ­ÆdÆôÍœ\„L…M4+Žbš}³ÐT*f\màKÃÞö©Ö#tcŽ”ŽEQæH 4•ò9`ƒˆÌ%GÞÊš·)qVÖ«‰6˜J CáΊˆœ’€@—xEc6^]#"ƒ^“˜¾@œÒÎèÅjùÙ  $.s¤ÐÄ2£‘Š"‹©÷šC³o³×CwÎR‹Ö–žÍ`§fwí†SˆÄŽ´o¿«h`¡:ÎÓ¤yeú×YaÏœ9ÃïüÎïð?ñíšðK¿ôKÌf3þú¯ÿš‡zˆgŸ}–ûî»ïÿþï硇ÂÃc=ÆG>òžxâ >ò‘|óýÜs{¼æžëÔ±âŽñuÞ¼þ9üÆƓ˜ê$ ¨BİaǘJ’Þ•Pt}Ên@|2Cœ·‹k¤ ªG<üW7Tž¢“¨¥ÁøX¶6SÒ†¢ã!z© ò- sÿÿäwñÿçg¨Ã„âõ!u×£é*h@féÕè» "jÚ*è„KglQ·9É%K:¬qÄyž##æk\àN.¶ð9[컂}Ö9DѰc®š’îç|îÁ×#eÍcÖÌÉM±NNĈ gæ{t¦9ánAª—ÛœC£tŽ00ñú”‘Ä+5B6x  J„i༾¡4Ã"£èø4 ñM(ˆ¯Õ¨§ÁÜ7O é­-‰Š’¼ã³<•p]ì˜%I™!}Pš(+ñë Œ õ#â2Ç/#÷xTôš%Ñ‹ ͺ@@jPgìÐ …õŠÏ@;8Ya½pŸ+Þ+Æ|vŒ\·š‡\A#ÓÍ\q_ºßÛr{uó¬œßRWìçÀÝǤu×Üû®´ñˆËß<ä^køü>,kxvñwÿú•+W(Š‚óçÏcŒáÇüÇ988àç~îçø­ßú-f³ëëë(¥èv»Ìçs†Ãá?û‚¾Î‘sS«Iݦx%묕˜ÈETJ|¤)EÈfcYÍ+U‰tó›Ï`»acÙÝçÙFÂ(:`Ó¿IrbAZuñ:êdMV&DÍ}ýYăgH']„o0™òtÍ(:¢g¦Ô¥GÔIIÂeëk¾²?µßIÓeѶ¬™1sÑ¥Cê ¹ÇI¡o9=kµ¡1Á ˜²ëí1V9×OÆïÔ}Ÿž?#èÔ¬7[w¾„Ô‘â,ùЧ¢7œÒ¿p„‰^§&î, ;7÷©HX‘·ð{DNÒŸ3¼ë€ú”O/¼…2™R°Æ˜MöYУόMn2‡ðæ‰ >—¶y!9}1#31…\¯ñã_TÄ*õ‘뺵n2q3•Ý,Ë:!®b‚w`Ñ 6ŒƒÿKr"<,Y9¤°9AË[`„Wc–IÑgFOÌY爦Íþæ ÷Yi× LNýÝ/ñÑ~”w¼ã(¥xøá‡év»|þóŸçÏþìÏxÿûßOE(¥ØÝÝeÿ›/è1)=_R7’ЫYz±_Ѷ«”¾FÔP#™‘૆Å(¦Ti”Ðaiã;MC¿ZP>žlXŽbÖ³1R´ÈÒjÞµó†Ù(Â×5^fž¡ ³ÞÃS²[Û0  ƒä uƒ<¨Z EC<ɘÇ*¨UŽñ¥ DÁ¸Y#U ëê‚°…“¤cªWøtX´™¾ Ú]슊`Ys$‡ŽŒG×X‘“!=Mìg¤ÆcIF`Üüº ž®fì÷ U‰j¢°"(ÄÎ/j0ž¦ò¬•e¨k„´T“J[ư‰*hlWž©Ô–­u(D@*"‹˜‡ =;c¯üœN•!¤&óC‚eðíç3C-EöršDaB †#…•$6Ú±Ûºc ¬Tæ–ÖÜ™!Ó^Þ>7ʘÄ1™[ô²Y€õ4XIß‚—ÍÅC[ð 4·òÐWrÈØù¹“²5xí ›ýÅåß“þÀü@+}×»ÞÀg?ûYöööˆ¢ˆ4M1ÆeI’ü‹ Õ)Ö8$'¦Cʦ°‰kÛrŸµr‚ojš‚º&SÚªdzù’Ìè‹™ó¸ˆ1À’nk#›’{^R"ò˜#³Á4éQEŠfÍ£.}‹ö)Aæ /(¿;ûzP( CólÀÞùS,›>Þ¤âúógé¾zŒ +*å³)o¢d.zÎôzÙ"“bÝâÖdk.z4Ææ,¬qÄ’G¬ÑaÑ^¤#9Fu­¬4"gXOèUKÖ9@^7è…¢9a;à+Ù)¨àP¬qZ\áîù ÈÆpjó2Ï™»È›„¨ÉðòÝx4Âã°Y§6v-3â^$KÑ¡‡%ƒ±‹‹}ô‘‡º§FnÆÁG½5& ÙÔm\©Fy9ˬ‹É%ûl£¨‰È™0h ³68tizŽ1Rdt! ¨<Ÿ0ah7&ÍŒ;³KԡdžºI˜W Œó˜W`ŒSCÎb|aÉÎÕ%ˆlG1kOÆE+ß²æϲ½Š9wL¯P$!'â«Tø Ô=ö €ÃjYÞeKísYž¶ÇÁY_ÑZñ²G׃¡( Œ1Ìf3z½Þ7_Ði 6‚:R6 Ä%h|µDÇ %Œfb€¯+kÊOŸ9=:,‰DŽ’yØ¥$dϘˆ>yZhÛhD¥ôFÓMRÆrˆ’ ¹}ça w†Ï]½éÅphÙκð0oV6‘g_PlwðNåhOB ázŠl îœÃ»ø½œÞÖOU”Ž ¶º‰ÇŒ(ñ ¨ˆIae )l4b'®H÷¹ÏpxxÈéÓ§ùžïù~÷w—³gÏòš×¼† þÙs»©­Èè·\›€ÂÆŽŠAàd•ÒÐø% ÙÁ“5 6nÎèy)ª×¸hO›tv\âÖ ™è“tD=`ÝTU‹³ÈÍ =óZà¬Àvt6OÀ]–N‡Íy;zïu¦„aÆ–¼IDƦ¸ÙJVÌZbmŸSôXX;æ•Ï»ðaÕVÄ90¤$V¢ù,IÐ(‚²¶lë\ ÿJA ñƒ)'ÙCG!¬·ÅŒ>Gë}"r¦rÀ‘YãRzùßôaRÕx¦"ŠRb/u!Rй°‰k«ÂXã‘^íÓÜ …F{’Ãk›ô†sf.læ†Ü¦AÑaÉ€©=W• ,"tªè56»c•K“;»lk}[PQ7u€Ôú–ÉÖ*ó]yÓQB#<Ž.o0ÙÛ@ö\3QC5˜›F<¦ô0cÞI( ™0¤" õæ%…h ±ƒôç¦O."k$–ج2±F…GZwຄ}¨_ï 3¤°¡1æëb¹ýýúj™®yIÓ”?þã?æÒ¥K|üãçï|'O>ù$çÎc0ð©O}ŠÉd‹/¾ÈwÞI·Ûåá‡æ·û·yæ™gøÁüÁoAA¯ª„Æ7ÔJR¨ØÔ^€ô Ë(!RsaÉ=¹à€ *<RÒ \tiyì³åfó=1'SúT" §f±ngã"m}Ñwô¬ 9¾g× LnÙúÀ¾s$qq¡r ê…d×ÈÌÀIsÅ'¸+gRéÇ3Çà (õ‹×ZÆ®Øð)vÆ72c@è,×À²â;fI!B|jJéÓ(I`JëLGƒ1m£%RÚÀƒ˜ŒÔœ‰¬³/{!µT-S>”%Æ29&¿¦ô=X4Z¹^HclœMž+HLF§I1–.2°ÓdˆÆ &R@·IÛ ™’&69‰)2D]Úë|Ê Æ ¬Ú€ZRK”e ¬(­ílÝQ¨ÜöVNuLZ DdZ{Vñ²®Üô\qv·ñ xH_ãUFÐD­ öÁFMÓ‘èH`B;Í+׿ÙÚh4jÙÞA`ŒáW~åWè÷-t·µµÅwÜ1†_ûµ_#Š"}ôQNž<É|>çá‡þ#{»åÝ`µ#Ë€ð) MÒ ²iðuïW¨ºÁ5T Ýš:uX¶‘¥‘›]U—¥ê²tYT—ø²B% u¢‘$­dSÄŽ‰¹±Ù5à„=q޳#R•@PºqÜKû~+Î*\fåÐ(Ñ6 Öé¢WL}Ùº §Ñ·Ið”°äÖ€Êz[jû…ýî4Ý:žOÑ -÷&×x tºK:fI?™P˜¦(­Kº³Ên·±jZ+ìW+Mc€L ¼UœŽýsKP¶)qJV BjyË¡rõÝìfK»mCIDF"Rw1˜cžº}/e4AÕPy×02ȸ¦É}; u{|…3ðtƒ‘vßeAŸþ²"Ëí¡×îxyÎÑ´ À4Y <ÐŽ[Wä<ŒEU1«LßÍпµâïz¸·“R²³³Ã/ÿò/£”BÁéÓ§yÿûßߪ\.\¸ÀóÏ?ÏÙ³g¹ÿþûBð|€'Ÿ|’·¼å-ÜsÏ=ß‚‚Þ1èÄ CA©B2/Bmjf^bȼˆDfŒ‘ÒÁ 9b ‰&%qzu{±˜P9£ˆ}¶è²h#Pm°ƒÝÝO0§KE+%[’F1¢£1R·Ÿ€¿º €ó1Ž‚yJÚ‚1°½¼Ý’Põ° L—ºpy¿Ã<11C<¿&òs–tÚÍÇ*îPµªös¦2&‰*.q¦5™ÓcÊ#`‚íÈ—^=”Ü[ÌØèá<ç…-Æ2Ðôäœ1C"Qû±—ÚHº)©ˆ¹ÁŽ%|È#çƒç¹Å²Â„‚µ`Æ"²q…« ¼ÒE Îe<Ž(DÀ„!=9§Š|S0–î|9µ'9’#KRW’ÁhÁ82—ºqJ¼[Rè€yÔ¥ $Ý0CkIÚ³QµÑ‰d Õ–D MÕQ”Ê'¡@xÓm‰„yßG÷ žÔögˆIÏéÛEÏž7S;h݃&1hO¢ JP¬Kd x†Ð„’&®Kox¥©ˆ¯D¶ö·äãLñN§ÃßøÆÛ÷Rrï½÷þ‹Ò°[ ¿-ì ^{ÏTTÊG‹Â•JS Ÿ‚ˆRö,),pj•×+\.ö‚.˃õ&©Îû”y7%:•–OQ]ƒ^zVQs*†tž¾ 'ÏB”×`4B Í$Ñ’¢’©-%c†„º@J[ÀônÍHú8oz\œÝÅVï:x0eÈEî´þºC"SB kXàˆ¸&°¹ÞÚ—¡šÁ<ïqÀãjdƒM„2×enc±„À5*¬1®ˆA£˼Ã~´…VXã¡V’[§Ò›îøô fh]+­ñ3r”õ °°uDíù˜X`*A¦Br—&'݆?À£&&Gb( ÉLÜ*b²Ë5v[eQIÀ:‡VÝ#ì¨Í<À,A5lÔ­ŽØW[n®/©¤wì: (…X3pL.ܺ­82kdÄ(Ñ`ŒÂHI)çÌÙ jÓ:d–EˆßDάl‹;^©ýï[[\luE·e¤¬6ûÇ»»»ìîîÞö\†¼á oøº÷?Ë=’T¡‡)%Z)ò0B CÓxv!'¡P!EÛEŽ1bÜîV—tè²hw~+Iʪ`.é´–¨+†ã‚¦®˜,éRu|Ìš#\]“9ï÷Î&ì„–Tõe‡wœuEaîþ>çâ=0G@dJSItÚactƒØO1H&õïF+·X}ÞÕ,mFŸ¬·;ñKbG(¹•¶d¿× ±ÝÂ_–-“8÷, 4‰ëÛƹPUÂgCPI»¹™2pÚxá|޵_ZO}¹Î ZÒ4ÖyI¡Q¢aÂIƒt#‹…è´~%>¹I…•Ÿ4!˜«^«^¨ð™$=*ec]k)I£m•ñh´Gí+L#ñ*Má ÊØÃ5~€”Yt$)}1áTc=©²NÒ(MÓ-À5"·R<"h‰ 5F tòØG_4螤}J©ðUMíÙ²ÖõñFõÊ zÀ¿:Å}ýù”!9!)v]A澬IdJ.§ˆñÐ-8ÅšÇ,ê’S“9Ãä}n°Å´0+ûTãs()ý€ÅnÏÞÛ×Üâº< f$¬R¦qã™"‚|ž¸"¥•ƒ–È&=HjÊ$ ’>c3´fÍ¦ç’Æ—L° KBJá0ˆ’€ºòŒwæHlŠ9]Öå‘Ë‹°kZ¡CÇ÷™ø}”©)M€­³ÔÆŒ(ªÈÏ,wI,˜]ŒÜÔ›L¥û0¤UÂò°ÏֱܰÄ.;÷IJ}–t,qD)ð”]V£uÜŒÜèÑ&ç-³.fª0‡ y§v–Ù BçHWãµhìŒ7Øf\ެªIC‘„”w-Y:ÙpáùÔ£©}h f)í9œƒ‰\6†´ìþ•¼x•˱¤ËuvØ/·ÉtbÇuG´áWVTÊÇ£bÄLU‡…ËÉ0ªC¿•ÉúAIäø¦D¡Û é·´ çßÚ»ì[¹ƒÖŠƒÑãŠqϤLÃýfŽƒä§¹ÎR0fÄ„!]„,èòçP4lp`5…¬µ¬RŸŠ CJ|i®rÒ1O-Ô" lÊHênâm ž€];pWo¾|É}þWÂúž-&•ð´€M«iYÔÆf )4•r³Ùd!»Ü-žå,/â¹…`È”D§­O|AHFD@á´¶6ϸό®ñ"w‘³Î!™sÒªðñeÙF/XNÀTZÏüŽX“1§Gì–:‰áu|*$š!S–^‡ßóô´ÁרeÊ€®3l&TÊgŸ-|jb“ᛊr›’Xç¬×c²0v=M?_²FTÊ'6Ý4g.º”Ý)çxyC!‹8F45òÔ9ëÀ¤cð hC8¯­1P`:âeÎl3a9ô‰ÓoÒ Çæ©­°9€( 2ƒ¸ª¸~bDÏ, Ëš`Y“ïxÔR’©˜î~‰îj)lr{pÌ×Çîú×<ôo»LÒ8VwhËê ¾©½Œ¨)HeL§ÉÈE„¨Á7e ¹'¤NG-3â×PB#}¨Oúd¢ ¢ #^_’žêÛÝ`ƒµóô$b½Áüw[°™§ÐÛð•=ò,@ÏJ5è™e[{AM–wès²d.ú$^JBFè`^¬dcD' ÉeD·?¥Ö>3=`.{n–’6 ¥ ܸQ¡•h*C] ŒÁ7uKõ:5µQä“.y#=ÃRwˆçž©Yë霵๷ŽiL*ijI$j‰tžó¦Ä¤­ ¯$À÷KÛ ˜ «Gì˜Á’Ÿ³VY h0¥ãÏñ½³&˜‰f¬ÛfÌ£¶Ö×hLY—‡04®`Z?wDá ßÔ„y S‚~†H Eƒ'‘ÁÖ’Â ð‰(èÖÚ³n„ÛÜ`):L&Û­‡Æ‚n Ï7Z1e„¬ Is”oèö,ÚŠ6š»ÌcæK”†´c¦nÿØikßô+øÐ(Køl1Ò&žYÆwãšš’Þ1‰ÂÊp`%°³(;+ö©è1ÇsÉw‰f+¦¸5n˜QºíÏjä—”nˆ[ÚèDƒ§á©ËíØ7†ÖzKÜ2 ¹î=¦Ð¼¨X&=èªeÈåÓ†Á`š:bÚô1ÂΪXo=¦W&6çý—XÐu°–×êÊ­ö}Ä„€‚]ÆÎ qÕí×í4]"…!r䡜ˆ>3¢cÇo%qY!’>aË+ÀÁ›¸`í¬%+|Ƕˆ‚OÕÎ~S‡¤Ha°VI.c޼7±˜^HÁ<ì0õ¬_³T†I·GNHalw/XŠGbH +†Ã9ÑvEã Ò°CíÙê'|CiêDÚÏøÔÆc"†tÕ.‘AÄ=øsÉì9ÎÖ|t#Ѿe—" ÷kd¼²!U6ï^ 1Þ”F´'­ãÞºxåw÷¯ý•>¤Ö<ðô׬ÚA  bI%<†ûs¢YšÙ žDÓ üiMøŸ¬\pßÝÏ‚g‚k”IÀx}ÀQ0âȱnqà¯1阞±({œ×/pró·I“¾¨˜7=D£ÑZ‘DKž?yžJù4¥Â÷+d©)ç†üks¾ÿޱݹNÞDltxS)é2g­žp)CmðV÷Ð úÑa 'â«,ea rƒB„±Æ]<ÏÇ뜉%öÄIB N‹Kè@r•–h&EÛŸæ2µàkýó6òß.0Ô#>ûÔÛ`Ïçwñ”x5ãxÄHŒéˆ%ëñ!—ï߯7ŸõßÄÝQT IDAT§Å#„<}é!L`Ýòž=€ ¾ì݇ ÓåÛ¶þŠŒ˜Ó‚›r‹¿¼þ|¡x&“ˆ¯8 Û£=^=Z#'ædo-nâuj¶†û¦àó‹oã?Þ´ß÷Kè› YÓW3Ö9dÚREŠ@”¼ÄY&fÄ^q’ÿ˜þ •lEr–çmë"4‡¬sO÷ÞñÚ“‹¿1øŒ~¾®™/‡h­ƒŒ§¹OÖœå%" „Ò¼ížOPðŒ8ÇçÔ·³'Nðtp?7ÓXJ–"$¤àÀ¬36k Ô”ï»ð§œ¸ã µ”<<Rð—ÅùLñ:÷©ëlÄ7AþÜÄ ¹÷¶`ˆÝ„©jÖ² ¹Qû>siç¬Bf \»îPów²Î>Ã>ÛŒ³Å~Û¥Žµ3óßÙ‹7,‘îuNq…€‚¹K:ÊNúxQA)=ļÁü•²…û;3^>±¯Þ„ŠlHÈ×Üyƒ%Uqô×|™ÖñL_ò/,Ùé]E¢ÙKOs2¾Â®°©C‡®C÷\Q?`ƒeÒ¥q³o›Ä–9j§5BØgË1' K†%]G´^Ï%!9¡cÁWŒ¹°„Sµ°š}×xÌé±Å>‘Ë|¿!·Å3Wü 7¸ÈŒ3`JIÐn¤VWš•áÙd«’LF°ˆÀŒ.7’ujWÁJá³ô;i¨¤G¡LTU³^N˜«.e¢ð· ú(¥‰ÒšÂ÷С¤Ø* ²2Lúv––5Æ“äÛØ jm-[Âæ¸Kƒ–aLX•ÈÆ`b˜L(EPÕiXœò¡´ŒW×þaIqÿú¸µrUï`eç®f¬$(4Q^èUh¼R“Ä~Úàù%Ë»|Æá€% Tíµº¢Û•ÖEQëÊØh¶Ô>ÙtȲèPbbÃpxD©}ð`2¡TƒjŒ´2Ûº P^Í'÷xüíßEùùk˜AŸ£Î&±—2è©=E#Æ b”hÓÖ4Ò¾–ÛÖƒ¡6´þo+œõ°X¶pvÔätŽ2Òåâ,{‚²fÙ$¤¤áF¸EÚ”uÈHIXÒ•v\šOÔtYPÖE@×Ðyì];Ð0¸{J/ÑHúÞ”. r² gó%K*ã“Þè#6ð'ÉMÔ’c<ð,m1é2hد¶Xz–l¶£®ÙñŸÌdéR•µõÆh|Š0Dy53¯ÇÜôñEÕ_E¦ )r:䌂)}9LJl“—y@aÀÎÅ·¿`­ÊÜêÈ%–§äYëÝ&±cÄÈY׆¢ !eTNéÍ—T2À츾Nh)¨;†ñbƒRtÍ‚AÒ’_1߆¼Íÿ7]ÐUÝ ˜Ä}r¶7Ù”>‰HE¢b̈#֬Ą© 3Ñ.‘烵ç«ðY3Gtż…’Ãc]©u6*[Øy•жÅ>r†e¯ÞÄz8ØÀ…/:H=‘ðí'á©« Ö¡‰qè±…à×]×>6pUÀ] NÕ4=Ÿr?f6PyÖDæF±CæÇœV—­¬õ—)2ÆoVð¹bNÏ%ÑYg§Œ¸ýî%cFm¬«GÂ.1Y»(DädÄ­Ë‘¢aJÎq ÷³Š¢Ý…Ôx ˜‘š„6X8RžF8=ýÜ™s ˜âS1§×ÊS<çµRÒ5 b‘9 K;#³’¶ØÁô ”iÈLÌ„Hè5†Jd^Hm|)2Èý|ð£ŠB„UI¸´&òu ‘žÆ¯kæ^‡°[ÕþR#RKŒÁS j%ñÂÓX¢×ÔLÃÝj‰W7ˆÊ.øÚ“ÔÒcs1&<ŒT¾¤×ßX‡üCÞUÿ˹f×\GÒX[dýrŽöÃå‚ärÊDhM†üPà ԆaÖXÈ./r‡Í¬æ S†hG¬ó%`¬G\ӻ̳eÐñSND7¨nØ¢»(G¤YÀËñu…25G_ކȲš…´ÔëzQ~ÏàísÊÇ»Lþ¯ñ}fÅ7ïÞ%99O17]_°ˆº Ä„Kœ¡ë̦Vc§ËùiÉ„ÌÄ ÄÔÃQk…”†Mn©œüë.>Ù54‚Ü‹…Áhkz5Ù_çàäã õœ_>D. ½‡–ý’‰’Ü=%P%³dDÐÏI¿Ú§“¥lÄ7YÒáÂÁ „*g?Ú Obkj™S˜ñú†h+¥Lƒv4w¾z;ÅEüªæj¸ÃBv1‰@ÄÖj­¬BT\Pš‘(é1o¨þ;s¿ÇUq’‰² ú›v½ßö®‰Œ¥ó{î2§“-é|ÅUõɶµl–šJ‘×!ñ†áê‚Îó½8%Œ5³“}n°ÍäÆU ”a¬‡(Ñ‹œ˜ÚÙ¯J—4ÍPPïØÊó*têQge®Xš>õΓ¾­_6†ò[HŠû§Ö¡×Êcêõ9­dÂa …ˆ¬‹®‹”à:ÛŒYk­çt9`Ó² …õÐ- Úb©‘L8‰ŸŒùÿØ{×Û²²î÷7Ƽ¯ûªµê¶k_{wÓ½›Kƒ}ì÷àíEH8ÌAå|Ð55jˆ!M \ˆ1Â5D?)¾&’V*^- 4ÍîÞ÷ÚU»ªV­û\ó:Æù0ÆœÕý ÊVßxyé¤ÒUµwÕ^—9Çó<ÿçé³ e©†¸â· @" Éí ð5L@Ã5à‚mø{°9„ÿ;4šôëöÅokä‹ Ô<Ø…,ú†äXm_Ðí0 ñšóFÛ„¥±¢A†‡FâÊ¢†¿—4Mf±%•ÄD5Œ¾Æ179c3ŠK:ÌXÙ¬8ACÇ´Ä‚)]r<Œhn³CH·hsÌ fÑW¾Ñ•yÇ6û_£m¢UBD‰S#"7èÖk‹À&Ó«Çúa}¬êGž ýdÎa°A.}ã(~‘z†ÁëfŠD¸ÌÜ®iH Zó æÍ¢Ðx±"<ÌÉ{J@Ú JšŸJh$)brå@âÎJä!ˆ¨Dy’•dÚE¦šÂ÷X‰/×„ÓŒÕ v#Â<Å™€Û0MC@®‚fî–÷¿a|ê¿® cÐ:µä§œf™ •¢9ÎiÐŒ“¼†0Â4dçÌJ¯)H­i‹Eíº¸¤ÅÇŽ ´½ÛìâÄàߓ޸NB{s\'A6œyÃ#ôWèR’iÜDgÐòæ¸IAò@QHøüM8sýŒduÐãÀ÷I’Q–¤íj(qó‚lÐäNkÈò¸‹£ „¯IFMŠ~HÖ¹åZvžEÒ¡,ÉBTFBÕ„õâ!”ÉeÀ%’+6¸IÏ4?±E¹pÙÿÎâaƒ­â‘hc¯œx_މE'È™%}Ò½}ÓáKÝËI‰ãi¢2ÇÕ==ۼάÙfÑscr‘NkLÒôÙe‡±êSÆ>a™ŸtßÈ (§±¾@8%ÓÇ×Y6;8Q‰¼W3òÖøNñ7¡i§ ü03Ú½$òWä¥Çåž9|½rð ²—Óž­`dî±ÎúŒsë×(réþE¢™>>„TðÌ·ÝǬß屃ðÀé*‚Œ ZçÆtü#ró3÷!Bp9wN̪'m˜×™¦ALC&´ï¡R‡éÇ7È ŸD7xê¾û9\mðÜù·­°ÿÑ z ”4Ò“•Õ…fxF~ NÌVÌdZ…˜”Ô½*É‚OŒ´†¹ÕJ®hPØ0S r£›|–Q€1v É_§Ä þg“&¦9± ½$œ:ÿp¼uh'®bë…gr´}àP&õ1”Ï2ê'z@7>)>9Kšô¬–~Úíp›S¤4YâÙt7ÜèII(­ÙÌ!C¦ôêC¥­×ºÂì½÷Ù¶¶çžMw2.{•sÖ.;´±Òµ¼“d´/7ñ£‚æ´‰­qLõxft(‘u@„‹ ú‡v5°’!kŒk™\‰C3ZpÌ3Ú$2 ëO(]‡‘0¬üU´¬§’~cŠ·]2ï…”¾Ã\¶Ðž$õbg¼eš™D†LdÏtÅ]‡vcAØÍI›.Ñ Á‰ t%Ù–C©\æ®YgÉ5<™£;#B'g7ØF!p’h{Eì6È…‹v ;\=7’÷ßbBÿäþõ–sDjEs• …ÄOsÈ0œ‰…•ïT÷ó½È+2m <yèÃLPàß“²ŒÛNJžøxí„(\P*—ŨžÂ‰§œ]ºÝ1Éí&:ê< ~ýž¥Œ<Ý.44ìûä­(X ŽÃ5tW°ˆÛ„%Eé‘_kàH7È™ø=ö‹mÊ̵M²‡çD,š§ ™ \Án´Eàäd® Mš{åM4,÷;iŠÔCÜ1g]X¤ô³MÚ©±Óîä«} óE—–3&j§ÈCm20\EŠY£UÃFËYàvMü|Ù#ÕÓ¬K8Ë诬Ñ2wEé#Q  Tâ¢ÛãÙ€, p|蘿éÆäžG*Bk‡­‰ÓóÃB Ü,ÀuS–qËœÅøE†+s´’䱚ºH2Ê©ǰz‰A-]BnÌÂT(­ûƒ¤Âð©ÊØHvK%ñTˆ*$j!N$~˜ §,( ¤B-%¬ ,\ŽÔÝÉÙ»«Àÿ't¤À%§¯Ç8¢CF@Ž_k°ÁhûŒŸáö˜ÔQ†O‡° UÇv˜×Ìì*7¹ÚÇdøl±_GŽâA™ NxEN6‰ 1u“¤Ä“ËÏWHhîÀ“·`{^ì›i^[rÜ9s¸ˆ~‰Þs`Gí,ÎqHØ]ÒoŒhêKÑ"'«£ftYºÍšäÖdQ“ùVD¸Ö”fI“6¨"+_ãjJ60~ÀÜ¢•Ý¥´Ò¾ê5®àúÒ5¬ˆXã¸vkZÐÂÕÊþ^S¸«»Ç„63›gr’m<‹üQ5%.sZµ~xe=«MÈZ‰¶ß+¥S³ú«õB•_;.Ë($qBR驤Þ.! Çìܲd) ji“ù»eK¢¤q‰’fë@Q‘$¥!I6uŒ« ´ qhtôÆ–~äT¡Í®³)þM¼Ü¿UÐÿ™sKÃÚx;ÕÆ£¿ŠÅ¦YfßÞwU3]¬4Û³#ÂVʾ›ª„\z´˜£­†ý,7ˆiÐ`Ŧ0®=&èM—‹ƒ¯2ÝìS(uÿÐ4ÈÂ¥QÄLÜgDâ„$‹Èò-|¬»=f)Úè=]nÃc»ðâS°àKiaSõL°ŠZ,t}Ëe•uÁÓAy'`²rùÂýL‡¨Ø%íDdQÀ¬×!ñC |ÂÛ98°µ}€—œîïrλÎ$ìr vX-Ú @¸,dŸ¸l›°£6û\ؼj\ßÁ%¡ý¼Öi{)2TäGþÉd~l¥iš“Îpœ; ·nÁÕMã5ZIØ :tŒ.Ѩ¦@†B)´+ “ ÍpI®¬i‹0Q²ÒWv‡m4˜.¥…u\{æv/j½z…8˜ÿ‰ƒ*i™aýKë+|B6)-'¡‚ò "ð¬=né‹Ú¦šþ+í¬B’ÒdQs"Vu’TõøC›¢íc¨&¤Ì’öªXÇD„Ö%jEn›O†¯ ‚<'-}2¡&']à%‘LPB µ¶1šž ¬¡JDÒ¸eŽ[”ÈB AXdZ³ª:pZÛeª¯!)T}Ý:ÚìØÅ¿ä®ùVA¿Û¦=׈ÒïÄÏR˜$œÄéò¬ûT1H\§@ ULS|\JŒj½sjy,[ìq(· YÓÇ‘…1¢òJ£»vͽŗœ"tQÑ”<óñÃÙ‘ÍœæÚ”åZ­|p†ðôÜw öL‘ý´-ð¾iT2 ²’È=`((Sr‰ÛÊ‘~‰:2b`š_½á‚LÌ*³T澉œ¡JÌë¤; v4z*ë¨cG\ç.çä¬ ¢íRÎ<Š/ùˆÉ ;!U‰« )Ð'gÀ1݃BPh—¬¯¤qˆ(v\gUx¸n kíš#& ö¤¯…xÒNºsÓ 9¥É²HˆèÚ4¶ÛM~Ýdž+eÝñ”k^3º0§bDLK.Œ47qáŠ1ÁÉ!Eé.ŒÝ4cæ´-ƒZYf%Æ^Ñj5%Š#†vf&ûÊñÈ¡ ÅœP&´œ9žŸ’¬Z†àvÊîÇ•=0^ŒysGö ù?lïÀ_݆;pɇW1nR.ˆ{ú¶$;‘k9"*È>å-7ä47™‹6KaïÚ̉ˆëlôcÖ,°•Ð ¶(Df t&…¨ÊXï0«-1•Ü›,ØgË‚ÜemwÓ±Óñ’& âZQphùF ‘…>sÚ¬™Ð'Ãg“ýÚc1!)`‚ ªu@‹%+&ˆ©%Ò­Õ.RM½@‰mRë]oÌ0L¬ Å¡]æÂ’ñ´ÀÏr$¯Ì¹ã¯›U…š°VÎPeNâù¤ŽODÌIJø{LñHVPx …4ûòÀA;moL_dìŠ|2š*Æ/KJKD4$>M&|2×Ç#3Ó þ7.èßÚ¡Ý‚îÞVuÁ‚“µ°UF}ÁIômjR+~GX¤4­ccµn«rÉ»ÌXÙD­F¹¢•ÍkÓ™¤ Ùqw9b`-L1£Ï˜ëâsݦér:ßå‚•˜qC6É¢º!ôð»ð’ÓƒIØ4Y¬ièX³¢¾•CNôÀÝÉhôÝÞÄ›i÷Å”§$Â5ŠgT"Ÿ1וØTx…¢θ/¸Ì‚‹éšñ™ßNk¼µ„ÈY˜³LCP$¬sXç}—8$^È\¶™úCVÚG¬—ÈHÁ—M Û )Í ±Ã®ANÅ„ýöÅ3$NȨ5 \¹ÆÛãœuE#[‘E.=1áWÀ?œË!5äG¿·Ít7 ÊÒ~pQËu×8fA?ˬbD#|ã ¯obëè§cÎpe]›,™;=¾¶fì½½^J°£ ß¼%È@ãcXìgÅ KòmÁš6¯­ ®—£{@lÖ=BjÖ0ñÖ-–ì°‹@óø ² aæàµ2Š"¼{âÈ:º0~¿YÍ‹®TÕØÂ^Ö;ÝØ®•4ª²6­&̪×,pëÀ×þtLTCð'Ôa »ó^ÙƒÁjËisrxW±¶UÖv.a° 7÷ ³;¹)=@ip„-%J»ÈD!¤"Ë=ò,0þÁ³vµã’GžM3:1õ¯Œprëvg’*{„†•ñ©:ãX`HaKCñ É’kÎSéÖ%¹õÅ®‘¿–XødÌD‡48&!dA»fÈg¬ˆ¬4.¬MmVöïUæ=æç ù0!¬wT)!KѬß×Ò&L A µ¸uÚT‹+O’IWæµµ¯/2’À3²$é×^ YGB() ]Ž‘;¿iBÔ{ýʱ/—.RˆÑ(1;û•‰‰0“^SüËÂY¾5¡ßýá¶fïGãË?·ÍÏ[Ð%F*ªžu¿v@N54Staï›*sBsÚÓ¯¯åÀÉ®™¸Ò•ɥǓ\"b…CI‹ûj‹¹l“â³/¶)µä0Þàrt¯±Y-FÓ rÇ3kº1p!„¡ñ´xþ6ÒR)È|¯—Pt<8fº0Ï·¸êÃ&ˆä¥ÏèéM”ë Ö âfÎt½ƒµéÀOMz\y5Ìéì^?4ˆcv­A’7Í9–Bê„Üa“6,'Æa¦:FZç œa† ôHבÞeËÁ-…ï0ÁðU´X üuæY‡EÞ&™4(ZtA5…tñÊ´àØ1’ݲ”8í5uÈFMtE¬Û° :Lü^ÝqÄ%MÒ‡+ôžD漓·@“¨ÏMÎá›÷‘ˆ™î_÷1ä7B”çŽSs½øPô̹´ Å®Þ¡-fÆg?°2I‹é¸‰Þ ¤ tò…=MÈÔ.;8”dF!!´2;x%þëôʇ¼b£/iš;Áåx²NÛîÃØ´æ$¦ 1Ä#£É’ “û;±$1e aËß°îfk[RX·.–¡Lhµg¨¾ñQÖ#aÜàz 2…Þ7r6±¡ lnáþ›Óm¸¶7‡æ`Y ¸ê@D'G¸ ½ç"Nå4{1a°dA›\û8ÂÀy‡lpìö)qðÉì4n$ a]Ðç´Øg»^·7cï‘ÔjB¯¶\\ÒÄ¥¨]÷LÁoÖÅsJ—ZWÝ@gØ­ýŒM¼£Ù­¹Èe_S€ÀrŒG½[§-`İö®_Ðâ[ÏidftqDi¯UÍÊÞ(%sÙ"Œ2ŽÅ±Hk(=&âP®#)Émvó±U“ B“X'MZ—Ї%B*´p)„cËph´Yø¢fðgøLu—R88æðj›Û»†Ñ‚oô»Fó¼ØÝQAì-öς٠)ÎŒóÊ“4T ZÔ±«M–Ï"âú¶Iõm“_— Y‹eÚFxŠµð˜¹µUHšr Ö É- ’²EÄ8¢¤P.qÙD„b©MärË2ñ£ήÁßïÃ=[JÍ A¹é>·1™›ÏÅ–FxÊ„.éo#!+#¤W¢–æ|ÑÒ\[¥/ ÁK;'ãsßüž%$8fª¥mŠßÊë\ñ©îP”é3Ìá“_÷á 4ˆu #ÐŽyý (JÇ‚.Ó¢KR$Óq³ž¸Wáy)¢oÓôäÚhÎÇôB×¶²Œmƒ8±I{¾‘¾V͹YQJbÝ`! K%< +…ðÄÿ‚‹þŸ#ÜþGÛ¡¯Ó-ÏiÕR³ƒ¯,I«bS™ŸT0TÑvÔ±xUÄiüzZ­H_Õ´UM´®µ†­Þ¼,÷¡£a"Ì7¶P^˾‰» ×íÁ;³tp¶à±;pjÛIð[èT FŒº+X)±¦9ò$Ohc—ê““qİ֟¤õE“Ôù¼صšqn ‘ Í¼F!$¥m |ËCȈˆëÇj]Qa$*b† ‚QMŽÚèUYç!›™>³ „Ë‚æs¦ÚÇF@R‡ëT™Ö-,iX)œK‡9ZY?Ir²ÉK1 ærFè§Êu\§ ²;y%®Wïô]K¬"k+s¡†“ØÃÛLô$®6á0¸¦ó·öÁ+™C‹vÍ»ðEV7 yÃA;wÙ&;ÿLѶ7©ÖšÇœgžy†W¼âôû}þâ/þ‚Û·oã8¯zÕ«èv»\¹r…/|á <òÈ#œ9s†²,ùô§?Íññ1¯|å+ ‚à?5× ìýfâÖ¹…Ù'–7}V!tìשqôÓœV¹ÄÉ!w=\ Wn‡M,m±ÈñØá6åÊãLóošé-öèÙœ …C‡™AÝŒØm±â¢ºÂEù a˜€Ò,ÜYî \C³a!ÀŒ¯ÅWvá;Îmb OX` @º/¡Ò-ðœŒca£@ê):sðÆ9âºew»92…¾?åùk_aI“c6Ø—§¡¯}…5®ÈÍÔ^À`yÌ|•63ÖÄ1™ë#úŠýt›ùzŸbäQ†Æì‹'L£ä{Ãò<Í|µ¦:,¢&Ûì£Ö$Gzh´éŸQrï—¬™â7N9·¹×½Œv$W£ûIüÀý5ð¼”f#®ƒXhÖ8d›¥A?ð97¸Ñ—¦ió´4b¢Éå.òe–4iº1‰rÜrõÂè~?å”'‡¨±â<×jnO›9züeø*3ȹ ·Œß…øûö@v§Ôm´œÕ7x@|ŸŒ'×" d¢ð܂̹ËÝœøæ›ûÕjÅc=Fš¦¼ò•¯$MS>úÑ’$ ½^ïû¾ïCkÍc=Æññ1ßû½ßK³Ù$Žc>ñ‰O°±±Á#<ò¯ï­l¤i¯†:+'4i³›,m@‰!¹U.gÕÎ|`[ªi°Ùm™ýñ’žõC l¸É#¶ØÇµSk‹ëâÛ”ŸtÙ ˜ùf¯º¡™†}Ð{6lW{Y²JÓÂï“ âsàÁ-¸zOgæBéØ&à)ö¬™Â ¸°š´ðJCÄȵG¦}ÒPq×»´dÁª‰É­? e# [D´ð-‘.µå9x–$.¦ƒ!ÝMé1¥cÃWŒæ®ÊHn°Â–í# IDAT4Ò/;Õ¶Y KmÞŒÆED› ûÞT9Ó=&x€_1äÏšÙ4Y2`T'ßE¬lØN†°¹Ç]¦´ô¢Î…6ĺU½FUB7›Ó׺Lj£ &KÖ9¤a“éŒáÐq­p)èk¹QK4ˆi' ÚË%B+\U蔾פ?—‚µdBHZ#Fú N¾ IfNv—Î2Õ„þ>l›\–%_þò—ùÃ?üCnÞ¼ ÀoüÆo𢽈½èE„aÈh4â—~é—ØØØà-oy qó‘|„O}êSh­yç;ßù_gD_Ù‰;µÓwõ¡ì÷-¢nš¤ý7VYN ò­rlR`‹!).)> éé‰%˜‡ÉŽí$ÚÌê¼ìÐ& JÛüv™ÖHc‹KA(Ô9 §5œµ¹æ[À:ð@/Ù†¿ºS31«;FR&V”¦yºpP™‹ŒÎ…?ÌÒÊü^l2 ¤ÝÏA+ÐZÔkLÑÕfeá ôÜìÞÕJÖ££+É«_‡¤4ý%îNŠúP¢FÒTmGdfxªÆNÛhä°ó¼cì«㬨h4ašáEMŽ-b‰>6Ï[KA–xæ}5½º‘ŠXKëLÁà+ ÷%úº4gv`P‡X4êaÇ4ìˬ…zFÂ5P‰KçòåËüöoÿ6yž3øã?þczè!î¿ÿ~}ôQ>ùÉO’ç9ïyÏ{PJñÎw¾!ýèGùøÇ?þ¯ŸÐ¢Åœ¶õ&ÏPVÖÔaj5ã9‚Œmöè0«¡×ØF¦vì VŒ*=Él—Vºe SE¨3мooh…½ÍØa—…hqØYÑyá”Éþ ÷*ò«>zß1²˜`.¤ Ò[·r™…Èî—pö4|êL6 oI×MЛJç ßopY_¢±6'MCÆr‰×çÿ’çgHu@`¡åŠÔ7+;„Ί \`mŽé‚;lÚ›Ñd92ÙéÖœ¦a-#«‹ÜÐP$3ºäöî^ÒdÀ¨vyr(kIWf“ßV41 ÍœmX瀚N9`ƒG,iÕѰG ¸Ã¥%ü5Yr›SÖrÖÜüžÈkø¾ÚwŽé‘ãÈ”2òXÊ¨Ž’}6;j»ø«oï°Éó˜DHâ¼3Ö¼ žÌ¸%N c[›XƒÄò7áˆ=¶kèþ@¬[´Ã\±‡ë=Rß¿û‚þMâ\×åG~äGøÚ×¾VÿQ«ÕâÏþìÏØÜÜäÂ… üÝßý/{ÙËøîïþn>ûÙÏòùÏž¿ýÛ¿åg~æg¸pá¿ÿû¿O’$„aøŸ¿ ¶`[–uýúAËžõ½g¡ ZÎ1iŠB# …ë”äv ªí=P!}%.±h€GÍÁpêäðF¾*D Ûz›$²±4îi• ¥” ÑÔèÜÂÕÕ©™Ê…Á)¸³‹Ž#s ³gäÐQhT!a!Ñ]V^–­cŒãY~8i|Œ:$E+»liè ðKtK⯠™kÜ0*S©ŸD5È ¡4"6qÐBØÕAÚ‘¤Ê5"WŠÀbpfÍ) …yÃt(Ì{Ô(åÛxìJª+Ú ofxZZ£›Ð¬:+"d©”ö> )PßVÀ•}žh)jþ•¶ï­£KhkPÂr«”ñðNHÚ¥åeUdJ…4ÂÕª/dS™•EÃ\ªp@@.ü“©ºm”Ê“8AÐÿ‚kþ›Ü¡ollð†7¼¿ù›¿1Gˆ”ÄqÌŸüÉŸðíßþí\¼x‘~ô£¼ýíogccƒ}ìcríÚ5~í×~ç=ïyüÎïüîåË—¹qãÛÛÛ\ºt ­5O<ñóùœGyß÷‰ã˜Ï}îs ‡C|ðÁÿ },l.xFÇŒ¶•h­jø·´zÑJK½²>Ìʺ´l÷–×&$F¢æØ¼ô†•i‰çì"b„Ýãgmêyq²ã°,šä]4 ýéVƒ$B ¢’2sÁ‘¦sõ$„f·¢gö¦Ý.œ†ƒ[à¬C70oNËÞl!8ÝÜtv±CÑ(%Ve‹…lic”SG$Z¢—+Šºð.-#UXÀ+%°r-³j¨ xe­ ¤Õ· ´%šø5Y-µ¤ 3«×XÐ$ üúsl[BXgµw:Y ¹Ý·xö½uIìÏUWbŽÇ’fÝps¡ÈZÖb‘‡Vím]5s§U õªæ Ös °ÈÊ–¶‚Ý«¤¸*Õnéf„BÚ$`JÇèØCÆdpwk’¦‰àí×ÏO#É¥¼Ë¥÷×!Å%üõça¾„¯\ÿÆ?úÞ÷¾— ø½ßû=þèþ)%Íf³.öóùœ<Ï ‚!A¦é¿{AϲŒ/}éKŒÇcžÿüç³µµE’$|ö³Ÿe0péÒ%¤”ܾ}›§žzŠK—.±µµõœƒKE9Ó'Å<³MubwæK[è;Å/M1 â´&ºÇ$®¯Oè´cÒȧݘ³j7HŸ…0YØsÚ,ir±y…ïDq™û¬×Å””6sÚjÁXvYc\Ÿfº5\”ûùÍžØb¶60ĬYý<‰ã,öZhGà;9å ôMX\ŸrñU»,Ëó£6Z ÂÓ+ ߃BÓaÊ :Ä RoE#]áʜٴϻi^ÄgÍsož[ñ‹Op$†Ü<}“yÔ¥ô%¥ö¬©±1Ï*à¾ù3 W‡kìKÃ=Ù’{h_ð×°÷ÂʶÀ™iäÇÍ>8¼•Œ3š÷ì29ûn;§Fß»ÍmÖÃC®…ç¹\ 'ƹ/Ö4&)Q/åÂù¼øþÇÑnž=¡âh±A¢Cú˜SÓÛ0‘ivö÷pË’~0%iG¤Lî0j H§ÆMTFŠÎµ‰Q …°Sîò|¾ÌŒ}ŽYÑÀ½bƒüȧh Nº‰nKäTA½å”—¬çLx“±èÓÔ1SÑáü†tfÖ’áÙÒSDÙÂèÐÛŠs_ÙC‡p§y“󧯒ð䩯 ƒ’EÞÂõ î;wÇaû¤¸ÉÜœZÃñìëÿèúú:øÀRò–·¼… .e¾ïãº.Bâ8Æól¼m±Z­pÿê¯þŠ>ô¡ñƒ?øƒ,—K{ì1Ο?ϧ>õ)Þò–·ðž÷¼‡K—.ñè£ò?ð|Çw|ÇÉn÷ÂUÄ©à„álJ” µ¼…bS‚ZÚeŠx@ƒ˜u¬îpEi'òj5’‚……vó\©-øMUjàOæ¬û‡ÄýñQƒ ¹¢è{ˆ–ºåA*÷+tú†4‡Ê…è ]ôui¦ö!Ð;·ß6„SA­eÇzð4ÅußÀk¡B ‡ÅaÀ²ÛeÜZ#ÕÛáž™ÌóÇñ¡›âz9ÒUÒ°Ê3|0){t䌮˜’ã1bPïTj‘YT®rlâPÚ¢k&ëMöi‘pÌ#†d6ªÒº»äÜá\m¯» Å”9>mkÚaH,m:ÌjRßÃV­Þ犘Wñ@×½¶$¥ŠhŒhú iòî·¸–<7ÅyvŰËizŒkîD•®—ᓸ†‹0§]“zŽé³Ãm\ë€7¥Ë˜þ³blEý˜×nƒLü &tÿ×øïý.óù•ÂîùÔ©S<ðÀ<õÔS¼ô¥/åcû—/_æå/9ŸûÜç¸sç›››ÌçsÚíö¿ûp}çξøÅ/²¾¾Î;ÞñÞýîwóþ÷¿Ÿ|?ýÓ?åÕ¯~5=ôïxÇ;xÍk^Ã/üÂ/ð¡}èdÿ¯AéšåŽ´±gàU‚ŠÇbÿAËÄ&.‚^ÌÏ8Gk®ÃÂmsä (¤Ã\´™ÙT›Ëk<3ºÈÕͳõ™Òµ0{‰C&ŒEóÂ"Š>yÍig ¾êßO›…!ù¶ZPJâYµt-…:#)6R1õ¡1Üdü{9Ù MögHnŸR{„½%JH¢ss\§Àurdhî“K½œ»zãÄ7ã’Y §‡bݨf2ù¬ƒŠ ŒnÎÉnæ<1L‚·ÜmÆ¢ÇÛ30–ÚbÈx2$½ÒP±áŒD 8¯9¶™†íÚï+<È’&7ÔYvÅ)RiÜáÈ@5Éýx’ãnŸ}¶ðÈío0-zä Öƒc _2uŒž\ n7¶5úÌV%‘«&yà›¥@“sÍ0åÁÒkÔÄ]mQ•@¤Ìâ¥pÜÑruà¡Û†\W´]b7ªïýjÀ™íö(„KÙñ; ²$D¯™s^…’ý3´„…á‘Y±ˆ¤ŒˆW šrAxjÁ]éßÀ)®7€ÿç•ö¬ø_ÿG}߯ϊ­­-¦Ó)§NâÖ­[A@Y–¬¯¯“eEQpóæMN:…û?ñL§Sž~úi¾ò•¯ðÓ?ýÓ\¼x‘×¾öµìïï3™Lø¡ú!~øa~÷w÷9=Y–ìO#fÞ·a¸Õ9º„¤õ4u“3V†–Õºó Ÿ63“pÇjÙOsÓÀ<6;}ƒƒÚXƳˆ@‡Y](Ät˜qs5"PâºÃ=â¢Aº Ñ3àü’|¢¾êÆãy ¾&Q] ·lk¸*ŒRHxd Û‡«ë&OýÀ“˜}Ù:pQ£JÞ ÀÓƒ9HIÒˆEÞa‘¶Q©GÐXȌմ…l [‡l²ÏêEŒ’Ž,h…KfE‡Ô Ð%ì8·‰XÕF;mLhÍSÜCÉy®±âu“anS‹v9À°<ïá iàÛð·¶€m± Ãç›xä 9"´ùçæLÙdŸ]b"ºö½Ši«)}†{ÈèÐaFŸc\JÆô¬'|LŽ[Ñ)gäÂE ‡@ãP²Í¾õ¢µoý ÎpțܡÌ.F qÉäc\Y0r5w£a_‹¤¾¶ÆôXصP—©IìSÙ"G«9ºˆîžç~s,÷÷½ï}üõ_ÿ5W®\áç~îçøð‡?LQÄqÌÛßþvÖ××yôÑGyÓ›ÞÄÖÖ/^äGôGyï{ß‹RŠŸú©ŸBÊaû™3gxýë_RŠüãìííqåÊÞýîwóÄOðð¤iÊÃ?Ì÷ÿ÷såÊ>ó™Ïð=ßó=5ÙjêšBÞhƒçñ\KæèY…¼xÖ÷"³=×°8W¯@K©JrÇeJ§&†.iZ²§KZ†6ø¨S»3údæ\é³,‡N``·,Ùå´áúh‡ƒø”™Çá‰fÞ5P±˜jôÜ@ë­fãýŠ¿^@؃Pœj"|My8nÁR7qUNWN)‰,4¥ãÐñ§fGžR™,A5%sZ(æ³ã«sÞd0uzLãgj¬e1õ:&ûÀ®ÙŒŒmƒrÃù:yRè):2.ÕȾ†®&“>SºÌi3bÀ6{,„IŒ\ê&EèB DW#‚Òä²²ö¸3ÚfÞm£I’;,u“•×0Ïi eG7Ìš­ZÌ7O†&X)3„É$lÕ ^î°Äáu \Ž‹5Fóuˆ!XÅxýñ²gà} ÷]æ^‹ =s–ÁëχàÃ"o1µqdAz†ãhÜn†#JJíÔa1GbÔ ˜' ‚ƱînÍe¾É¥öññ1ïz×»øêW¿Ê[ßúVÞð†7ðÁ~ÇqX[[ã…/|!Ãáw¿ûÝ8ŽÃk^óZ­?þã?ÎÏþìÏ"„àmo{›ùç¾öµ¯ñ‰O|‚_ù•_áóŸÿ| ú¾Ï|>Çu]\×¥Ñh°Z­žó@n^ÎH[X÷ØxþÀò¦3âº(dÖé¬]‰–e¿  Vô[³™œzå Ç©ÂGK U›}MõûÄõ½btoØ NÛ{Q"=ÅÜm³7”$íœaÿ€e·Á4Þ@ s…ê ò22,Ë–!>蕱$Î8ÆInoÖ7Á÷L÷•Ùi½ B ô> t(P¡\zäi€*ÔRRö‚ !G¨LÊÉÚMâ¢I¼0!/Ž£ÈVsݺݓ²§¶X• ×%wô&M±°f2Š6ê}t¡»m&X§Ë‚&9>Ç ˜ÚX[ßjË+õA‰cŒ€&K³¤ae]¦Vs.kSŠ]\AôfzoÔû¸Ó1¸Ä4IdP¯\ª)ßµDJÃÊwë:±ã1ML×.PÄ""$­ÙðKšV%Ð"ůaúØ k‘>ΗÝ/ÎXå³™¾û ý›”­½ùÍoæÍo~sýõ·}Û·ý£¿þË¿üËÏùúÂ… üæoþæÈ5øG>òz½[[[õ9Ñl6Y­VŒÇcºÝ®™Bz=&“ɉdMÃÿ71…KØ\³Œ÷üYP;¶À »w®vê{æs/*‘ZÓ•KÒFŽÂ¥å,ìà×ÈÍ”.O;÷ÒêÏh3bHnó:Ì(ºÌ˜ÒµgÏ1kµ/Ä®¿M[ÏqEA"BdjdKyšf£«á–Ù)ëÈ t‚ÅÕúÿ à³üå<´C+FÉó#Vû§Dõ<йG°–°J;Ü Os¶sÛ<÷‘y¾BAz> ¦I¦ÙI*‚@döó»T2TůIu`$¨ªÀ‰rʶ7uMÆòu‰Ø‡NSD×H^ Úç ´d™·XÎ:”¸–¸X |‰l—µR‡¦&ì,‰‹é¨ÛШ@ÚKMÛ™ÓÕ 2á×öÒI |…ž8FÑPhˆµ9s³s¯dÑÕ¤=]K˜9”W]’f Gªçý|Ëç2Ž–fmIËð£´'QÇåÜGÍÍ_¸šæ*¡ðÐ’‘3À#'Ÿ…†<·;¡¸ýeÒI­ïrBÿ&ekkkk¼ÿýïÎ}àxÎ×§OŸæ·~ë·žó½W¿úÕ¼úÕ¯>éžyæÞ÷¾÷ñÖ·¾•Á`ÀÚÚwîÜa8’ç9¬V+’$áöíÛÏÝ‹÷¾¸ÁÙ—­qÀ ¶/­v¥CY¢m¬gƒ9}ŽéÚ ®AL`å]9lŽˆŒ­Òª› WnQ¸UÍö®‚Q*¿ps“×ð{J@*ÖúGuhC,"÷MYv»H+}(âá—†Å9òÌ }–»Ø6·áÚ\Û„À3^fålKÇL.¨Ü%%$·ÈF7O ™#ѱ‹Ê%ÚÕ¤ÒÀàq‘ÍB¤«˜:}Têà„9:w8ʇ$"`\®‘%+4› k}XÍ·àP¯[ÛÙÓ¤#K¢ &.8¢äØésÀ¦™Èõ&ã¤ÏÒoâÉ Ä³ìN®mxç¶ 3 {#KKë伄ˆSºua>`ƒ€”}6i³¨w“)~­w9ft¬ÕØJÊX}^ÁèÕc‚z"@Ô){ÒÕD¬˜Ð3ð æ´™Ò5u`×]r+§Ü³ºÿ´Ðþ®MÎiÁ¹û‚þ¿¡±Ì£>ʧ?ýi~ñÏó˜L&(¥Øßßg8ráÂþüÏÿÜ@‰W®ððß¼$¼ì¿aÂDÜ“BTïÌõ³V…ýÿ³U!”m#M›©ã’*¿nO¸Ùœ¬•T‰ONÈŠÄ^Ÿ§šÊut@¦Íjh,̽㈠ÌU‹Ò“”… ŠÒ†¶íŒ”)\ˆ†¥ç#Ø®ìÁÅÓ¤L%É¢ŠRI²Ä''B è´§ø*=q³¬Èq ³ÎZÐ"sü“œ‰pzeôêdØçšÕê&&zå¶{Š`{… 1Ófï^‘mHlŽÄ}yV”!…"w ŸEW|‡Ô<>é*„Cº(s…v\”kŒž´Ô¤‰µÁM™È„OŽks'$~+ÅYËP«2mV*»\Ï<¦*Bº¢ÿ:npÚ…²ë{2së‚.„²VÕª^Õ¸HY¢´ƒ™ˆÞb䢵a¶#Œ±¢æö¸hÓ¬ O¡·Ö£þæKÿKHqÿf:ôŸüÉŸd8òÁ~—¿üåüðÿ0¿þ뿎”’û±£ßïóÒ—¾”ŸÿùŸ'MSÞö¶·ý#c™‡63âšäeR»—4kwi'í•uâ0ª !¦t 0Ö…)!û1¨ŠÚ˜ÄÜtsÑÄú¶¨ÈS Vu~øA±NC®èI“Á~sqU¸ô»#â¸IrÔ@qƒËb"ÐûÑÐè ËR½ Ü ´nÓ·áe[°eSÙ*&«í|‹Ü%Y…àé×OQ‰ƒö¬<¢a\ír 6hFKcQ d«¯‘"<æsP¬yÇHW1I{¨RpÚ»UïÍ≡5J8d¥ÏÀÑdŽã”äÚÀÛµžÕBE+ÆùMgÉC»/l4m%2¾îqÍ$.pi²|Î4`ØÂªö0J„˜ˆ•mRSäŒ,§"¶ïB’RX—¹ÜJŽ*³›œ%"fÀˆˆ„B+i+­1Œ¶¹îªÖÌ»t™ó¬[þÅœÊÖVÛœCI*Ê»¤¯*Ô?q£êÿ‚Ö¯O>ù$o~ó›yÕ«^Å»Þõ.ÞøÆ7òÚ×¾–7¾ñEÁ[ßúVvvvøð‡?Ì›Þô&|ßç/xÁÿôÂY]€Š@xV‹^²¥…Ü«â.íßï@1”Œ{mD‡îC9$–¦û,pÈ:G áŠgœ]çÅ$›”R²îr‹Óõ4»-nq…äêø"Ž,ñ)ûÞcݧÌ\õÊ‘oŠÍ 8–枟€ZsLß‚3(qN§”+Ö#¸>„Ü„ï:;Ðr–ÿÅ:¬CÖqÐ-AFƒÄU”]§.æÚ¿,7<ÎK˜ê.»ñÎ Š±k‘6¦qv›§x†{¸Æyv9MLÄb‹¶Xpt¸Eº qºî0­§ü¬ë1=ßàVxŠ¿ó%^`³r|û¹¼¸ŸÃù&Ë/ö(# Ó ˆûI3à¶·Î5Α‘ UµX@y-`±Þ§Ø ã_À±ìó4÷rƒ³\á">ã|bâ›ç=0kÆÖ<'„;þÿÀC,i0§c,g=ôMãå®=IzØ$,sÃ%Ð0iöø<s›mŽX§D2¡³B˧¸áÂÂ;iœ¦1x&¼€CÉ“ÜÏçy‰"NZà*ÊÔ¥Ì]Ô5çîl¢Å?}NÀÝ#øÿlAÿä'?ù¾ù¡}è9_¿þõ¯çõ¯ý×ýMødLè!дXØ8Tð1§IÌÛµó}\fA¤Íœ#–ök‡’üF×±ªkzNÛþÞcè[¼CÉuÎÓà˜µ:HäŒ{‹C½Î¤0ñç[׸ŸâxcÖó‘›0Žé£,Wb›Û$ìŒÛìqóµíín²Á¦ôðÉ8]î∂]¹có¶—HëûÜaλ<Í}äø„$œçz&“›œá•wG:+](þ‰UýœÐ/]ºÄSO=õœï½îu¯ãu¯{Ýs¾÷«¿ú«ßøu‘à¸ÏšÌ«)1·HW¿;vrYÚì‚,5ÎBÛð9¥pXÒ`ǬÑ`Iê,|R”#¬;¥6·ÏQI(%‰¥AžÜÐ4£yé1wÛŒó>ž4¬zJDK£c>ÂÀ>^‘PavÀÂ×”K;In×Mlk›lâ›ç½2YŒ¬»Üš¤p­½l`šå”2ëÃR8ˆB›f"±¯KÌsÒérm¬)!{l‡ÉÂ\ç¹ò(táÝ´€L)À…Ai’âs”¯£<É|ÖaùL}GÀyãÙ¡ˆ$ MáxÌmôr9ñHMô- {PæªáÔ¯•–²6¯V¢É42¹U³7±ÏÍò)RXÕOi±CIYJ‰»5ö@åuBŸpt4VvÖ1 ò݆yýö8  ªëOP §NÍ|ïPû¤Kµë""Nî®új!þÉsâÉ„þ¯ýUѾÅ)CFÖÖÔ°& ÿ,hYv´¦ËÌ:‘™”aš½§ƒÂ)UíK®í¿áZçJúe˜ÙMZ,k«Ôu‰X™ýAd–ŠÀS»gÏŸ¨™0v ÖÂ#"¹âr˰ä›í%±lP:Ü"PÈFA9÷ÍE”›îÝOÝ¹Ž ]£ŸÜ7-—s_j œqab gP½¯»"Í”k4™Ž((rbièÁFJœ6H ‰ÀLÐÀ2o¢„ +}$%±hâJ‡ ­È•GàxCÄì/vðš ¾8alÎiãè’©î‘–>g½ë¬T„fÊí cÞ3¡k÷å3zL™Y‡?‰bƒCŽm²]Lƒ6ó:EÎ'cÀ…`ßjÕ+Å‚ä}|RºLYYÉœq ë$9c¼ãÙ©þˆC†µNÝ'£Í¢†ç=ÚÏ@Õï¬V2UXNelÓbqÔBIOOð¸;R\îJ2ï߉¥ó­t–\ÍÁy³+-Aö1,Æã¡š:öëbî§Žùs9×t[1:xëtSFÄôÜ ‡)]Ž2ecKê:Åÿ?{okkv–wþÖZßüíñÌÃk¸UåªÂe»Œ+¦b¤Q„Ai³ Ò/ IDATº1F( "':Ф±‘' BÓЂLPÒ86ÁÝ  x(5Ïw<óÞûìù×ê?ÖÚûV\™H6rI%Õ½uÎ=ûîoßû®÷}žßó cYŽÀ }·ú›ò¢¼ ’„„INlæœê©˜rwøÏê;ÈÏ$Ì:)Ùµ¬¼Í’J{°k-çæ1’JxÄ;cfA}ÚÆäU|¬ Ÿ8dr÷ºmî¤ßb‰I%ÓãžqOä9HߜɸmûæÄTçBƪ‹9‘–¤f\|Ö·;^õÉù1/rqiE-Z yüÌ”Áz—Ñ´ƒÈ<ø¨m𢭂p\й{Ìý­Ç¨•}›þ„Uz˜–d°¹B=á9{ ¥ohŸÎ!šsq÷*ì|ŠW/!·Kf´ÑM…¿™#G6FÃÅ3/’&cVÅ C:q}¡`ÔJ™ö:˜ # |Ú¤vî»ÁËx’) F4¹¼z{¯9‹> àÔMÃð´ýìt½ñ!®s‰¦$ Âã±Û ¼[†ˆÑðœ²QÚ=PÝŠ»gÏ’y=ÖyÀ<¹*´Ýߊˆl3";Š1‡Ê6§PB²³ ô±BŠÓj•ý{v)N#Èuå1z&ñÏ䬮³}mß¾7/úIÅ<Ü„ªåY”qGÒ;Þ@x)kxÌ6Bíé]ÙÝöœÜ`‡„Z*Ž¢ ¦QÂ\6d£P‘6Ï=8¨9^gœXëjƒ ç¹B™úŒ/49Šwð^(lZ×3è&§¼lç B2Þ¯Ž«=±Îéá*q{N8Ûkl f¬¶TÊçBpÙÖ ¯ÉQwqÒfX¯’OB‚ÖÞk¯ùZqÂ]<¢b„õúaŵݳd”<‹ujàO L!êä얎ݺmF™ÕËŒ¼.¦’Pr/A=UÁ‰õÉ'‡±,؈{ܹñ,%>çW^¤%‡Å.#ÓFG qùVNèPùþçùùÅUÐÁ,g¹æö“‚>]¾R;ðKÄ.7–êÉ…ýJ1rŸ_å8˧Li ½z9¾-–@µÌµ¶âusŒ25…´(‹‚¾@¦Lé±ÊE^dJâÞ+N„—ó´˜2¤MGò`ç£Ë0™Ëæëg¹_ ï¥Ô׸Í@WØQêR‰þJ…ybþÓ!\\‡$€(ÿ0䤱‰Šjˆ œ7°'a_SÛQžÀ¬ßâéÙýè\Yy!ÉžiÚï)ºò˜R†ÝŠÖnñ°E-$ÒÓtVNlö»ÐôFkíUp:Z¡ì%윽ŒŒ+æ:¡7[%H «ŠWsâîœÓf—Ãé»ñUv¹ÎÈo9&“¦óçXÑ^@Á6{(4'¬;Æ»mºŽØ FÑ`b­It0HZŒþ³À‹«µéXÏ‹ÛI\4ê }ºôÒáˆe#Xáñ·9~FÇÈíùÝSºËÔ¹) »Ãž·ÈåN5tâ¹ Ún1&  Ï ¥¸µ\ Eõ9nDýåüÔÏÖý߯/¼çÊ­µšî÷C÷kG3#¢V·Ál© ïxŒâ„±i1÷"®q–©°×N̈&©˜SyÖ’¹X±t8¥çP¢‹xâ…Ìžs¤¨™J›I±àiLEÊ©×fF˜=Ÿù,E–5ú†dÔè@-ѹDµ5FÀ¬H¨M…¦z1²é`‘8SQüAîÛ±ÙÚc‹ *F¢md!VOƒÞ²ûߌˆÃÓ]Žv ÖÔû>ì‚–Êî›5ôãnx›°Å;ÿ™;d.O.2.ZDƒÒz¶5˜¨ïŒwcà Ù¤F1¤ÅuÎp½Ž+ÏÜIõ¼OyV¨Ø}N@“–ÍÆ~Êèd‡ÉÕåã1³Õ&ù<±\£4åF´ÍØâ„5æÄ¼8¿öuîS÷=ÊýxÉ#ª7صûl—Ôvšu9¸q=ô=C•û¤ÙÔæÓ{0žóoã€Í¥Ž*#âd¼Å|”¢=ÌÌâsk#aâ‚:ì‰ß_.,ôK¾Œ MÛíØ*rÚ?;S—bÛP}LåÚ.ßî„è È<¸k žÚ¹ ë>Ü…\¬ìMKáFl ˆ¶ÆôåÍ}a ‘YŒŽ0ËÿWÎBª\1ÛkQeÂ3ÔUÀŒŠ™— •&4ЫڑCÿ`‘hj)‰ƒýh…#³A,3e—É´…1‚iÝÀ—¶HF"³"»b ±ºØuIŒOÅ6ûK¸‹eËWË÷;aæœÅˆÓdì&(ÁÒââ»±úK¡@öÏ·´Á 8‹â)NXu‰pÒe®×ä.m+`Åar¼åX½Ç*I›¡ÃâÚSÇ"íoaÓk0a›ý[Þc•xŸCÊ^ÿ•ߦMþ‰_òÄY@d„[c¥/ýôiW»u²ÔCT)ë\K ˆ¾Á.cšKj∹ yYû)FXàÌ)m|Jz¬º†tÀ””„5Š1=VI˜1”-'¼”LI˜œ¶©+•L£¢ž(ª~9˜¦Bž«Ñ3E¦VÏî3/b¦Gžª(Çvô.¶4é+JNÿlÞ{hÙ L)ÉžOÝÕ²ïAìDaÊy=˜žÁÒ t#+ÚŽš5œú%*yAFáN†µí§¸.ݶr#ø€Â]ÓÉs[1Im¹¿¦/í ÃÅ!êRÙ1aˆ$Ûðñ}¸w ^î!Rc÷A[ÌOì)C¤ŽÍ’Í,VkÄ©²p ¥Óeî4“/3TY`;ÄLh@ &e×ÞüÒ jƒÙWî*Á×d“fѨ eÉ´n‰i §Ù ÓãÍ•>µ°êrßùûïËb\ž0sbÏ]ß3‡«µ¢H;í°BºÚçŽ3`–Ó’Ò­PLXa°¤Ë-4í>†ÌH\ÞºGÊÄ h¬“!r8áÊ-c”ÓH,^«Ý›Ï9d‰q¿p'å,3Õ²A´Ÿ­en-Íl§ýì'ôúËÅû3E&Ü `qÊð›Â¤ÿâȰ´«Q»ƒžï!•fæÝÄ[ØÔÍ@ ûL¨i1FiQrù\ZœÒG´\n@‹1 *|2ãË’ÓªC_­0M"2Nô:2©ðç%ºȰ"Šr2“ "ßÉñ“Š2öHC{Ÿ9³T£kGœ‚é ŠãÎ9Oô£°º•@\°¡"xîï¯Á4 ŠÕò´¨Ú5þZNuRÏ,ÍË¥g_Ôz™69q *bìÏXW‡d:²¼LÜ|«5TÆs\È–EmgYD},-a‹ÌÄ *ƒ06  Ê²2¶Né“«,3Þg$ax!95ŠNÒ'-ÆÔÆC×’R€:_Àãöð“{áRLºÈ\…FÔY×ȼBzÖî&í듾^Nít±6¦œÔFoq>q®‚ L)–)}‹ÃaIL>™©˜jØgñš{þßÂG¾ú¼]|qô1Mn,´Ø¡/:ÄEêÕ‚ò#ÜéȼäêQ-w¨>…ݽªÀ*OºÑfjûÎ#i–yÆÖ·.*-=¢¥Ç´½!‘C‚Noê3gnÒ¨%$%aÆK\­6`d®bæ€6î+Òñ°cñ]gkÛ6¼b ŽàúÙ,D†ÚvÃ9з1®¦-¬U¡°\d®˜»™Ì}h†Nj*0 V ê «@ ¤ÑȨ¢šÐÔ˜ÛxÁæÜ3ÔÚe+ „PåÄþŒ*  K/FèÖ>‘ÈþU,ÅnMF(4•‹]|(ß-¡4 ôkæØô•K×ë³Â€žSWN¿°$N]~ú"þ¥ð áŠébZ`DdLI\àLä,”“%B.‡ï†Ðå,B9|J2}Îñùg›J}î‚þåúgVq3m-tªÊú±ûN­Lä~Ïw¿§Aƒª Rk1¥£FŽÑËkb5 &„U†ïÛk½ð /2.{-K*éÑ`ŒïÙhâ˜9¾,IÒ)e@ Ì\¢Úsäu'ª€‚cJ¦$¤L—üld›שÅÌHÝã7sZ÷š.Ö8á˜up'Ã.ƒ%›¼FÑ¥.Ð#$§ëF‹ÌmOTø¢ Á„UÝ#—lÑd²ä”Ûóàdékïӥ͈möÀQæ|ó\†ÔqÈä …ßέecnS†¢•)æ¨Vê? ,âð6®mÁ‡ö™¿Æ'|MÆÔhd£¤î˜g%æq¹Ì|Ö¹„GåòÔOåT«ëNÝ«¡ùLEƒp=#«=L-1Dëc²AŠ5f,ðÎæT“ÀÒê®CzÇѪ¼¸E¹mgøAA$3¶£=’{‡gQʪÁ§&åØXSkêOð¨˜qJ‡§ŽÅo±±s‡É”hNœ }4ÒíØ¥Ës_”Rûë.*<ŽØä ×™’Òᔓ¥Ý°pMÛœSºËË¢y³§cßÑ7Ö Ó"#æMîãñå`ÊR¡h»Lt;á™âQsÀ%ƒ¿â‚þåúg<® ¸I€‹Ýäj!€›¿¤àãN„s–šQB¨+„¶Ï†@ÌIÐJ.…°¥›â„ä¬qB¢çlq@Ï”Æ225a¶œô,lJ)³¥p²Åˆm.ÚY#©ŨnP©"‹MÒ`!6s{ú¬kÚùˆî|ÄY¹7­ÑJë9µò8 Ä÷JjO¢…ÀÏkÃ)FZº©úº!Ü«Y‡ÍÏ¿ÌN焘¹-Î(æIló‹ŠÑZ‹©²£6IM‘øÌË”ƒpƒN=äX¬qÜZg"›¨¨"W!…˜ +~"Íl3ådcÓú%“šl’ÿmâdÀóE¿»…nfíÎKª©‡ Uí‘©¿²D&K´–Ô#EÐÊ‘‘A™š¯Oá{4“1³Õ”SÝA(Ãf´Ïi·‹”5yÓÆT•ÏéF—ⶀݕ«„AÎÁÅmf³zÊ×Wà|~íKæ2⨹ÉF}ÀZÞcZ5¨”Bj”"·jVËJÔd*ÂÔ.5-ˆ©©œ"´!6s a³àW«H Ä¡¶¬j©5#¯e}½ÎŒ÷¸M]&, ªX²áÕ5¡ÎAÂP¶9#®ã‹ŠÓ#0%S•°R ìk%j™ñ;é>g¼Œ¼ÇjûóǨ„âTuÑB`j‰š´ža¤ 6sò£+Š àÈÜZ’YéVŸ½àW_.àŸí„¾  _Rȸ¹Îj¸¢Ÿ»uÖ O©!P$´Z9:)PíC²fÀ0hãQ9!¦t„Éš5ÿ„ó„N¸…³TZAåB‹±°\²éNö ¦t,…¡ša˜¦)µïm• ÒÆó©KE]„œé\aOŸ¡*íP¥%úl€lT´6dϤ ÜtcÈ4æcGL¿&¾ùžÜ°ïE0*¸óžgɈxœûP¦ÆKêó>µDk6-ŒÕ”ÊMÆ ×ø°E…G“1}³B‡SfAeFá\†È¯Ø8sB?]Y¤ŒÙOϰ~nQÜ…¹±¯OƒØÚþ3k×1º ÐJ ;‚Y³i›£N¥U‘·ûSôº@†š±i›}#Èë)5^PRÍÅ0²Ó V󸼴½ÚflJ3¢DÅÉJ'CõK«Œ·UÑbLá&t-Fv—n2D U¥("X!òFvÒ~~NšäÅSÖ6¬Ý`Ã;¤%"I—‰ß$Ÿú·øŸó9ñEYÐ{Á Ï'›TÂǶ0–LEBèvâks]îÚA¼(h‹SŒ„™±ãðDL©&²§ŸN5"ï†DµF™œ®´{ð©Jñ)‘ ¼ ¨Jc|0•àÓ›÷³÷À6Ñ¥«°M¡‚åi¼FZ€€ˆ0Fp¬l`HG ÒÆ“µ§È¥ 86ë„2cw˜ÎlâüFBð‚#$Õq±Æ9•BxiÆÞöŸø¥ô÷`g½.©DbÅŽàÿRAû®ãýU/°WCÌž°¶QÓlŽ˜E æªÂä Ñ­ðüÈ@ÆÙ,&{:![%UîñO>hÓà´`e÷„ÛF/òŽã7 ô2—ZcwV3IÕ÷ñÏeÔ•D†š´5FC+2 Uí‹9ݰÏQ½/-­í>ñ(OWwÛQŸœq^]!õ';l¨r 0U æ"æ¼¼Ì]<Íûão >Y!eM,2¶ÔS‘ˆ‚‰lXa¤HÙ7hÛuwä©H‰È8\ç…öEJ0–M21#æºw¡#ÄÌyAÝfãyUɦ8²Š R ¯æƒÜêºþ<;ôš/ÛÖþ«÷DK>ú샘Z  Ï Hƒšˆ:Ç£&_i"4yUãMɇ ×Ñu…‘Š:TˆTÀ®D‡>·w®’·CŠÄ-È£€< hö¦ẗKòE”¬m–z­‘QM8-)V<Œ S/¡Òö×}³ÂËÍ£Äà H~Q¸(^N Ž6שj$Ÿ“…–"w<_絓?£Ð!ϯÜjÁiÔA•çFWxòü½è@RÖV©Ž†“݈kðÈãbš‚ÝÃ'h7gT%=ô•RÜí?ËDüs?¦¯‚4ÕˆGÔ}TuEó²aeeB#-Ø^=¤ð|j­hgca›SÝ%Ùä±ÙËtIzuÂÆôjW²ñªÉö§F“û!|Ã…ê*÷™ÇÈ›1ÓIÂ#W_MÐÈ8ÇóHYÝŸqgòRÖü/ò­d"âÐÛäÙíKDbÆ…Ë×yäÅWÃȰþá#ÔõФQrÇÆUDb¸˜^ãëý?¦ð|S‡²[òqyÏDOsÏÁ³”Êà xpG÷^˜Ì‹xñÜíh-H;öüó3¬â”N<åöÆe¢¤”>ÿrå2›_‡!eî#½SžP[HcXÿXiÀZ·ÏòQ<]r.½NXŒMƒ}³M¶™`¸ð×û„>÷cFAË)“­Í8Äæ‚ ìQr¬Ö^?³Ã1u“ó.ÝŽ4"³ê÷@Ú‘Vi‡¶JÔxd^°Üs7ÍUUÈÊ ¤Fzà%%©ßFd.k[8O5Ë—‰aJâÂD4Gº‹È,YŸ1)%CÙ¢—­a*żna2Ah2Jíc úØÄ ÌŽÌ”,ɶšïÞWÁkß”ïz,‰O²]1XoQô˜¡ {À¦Æ‚j"C[I`™GÔ¹‡¯3T]¡k‰R5ΘÌÛTÓОŠë]z¨¹¦y¨¤D˜š¼é1œ50]I=ö…AHƒ§2*`bIÚR–>eîÓ’Q8' fVÝ`B4‚5qlA5&$3™Œù «s™ ñ(ÉcA9ÁÔq¼æÄ& ‰¦6Ö&ÒÀ …Q7÷N¹ó—·HÂPà¨Â¿,ã9ðŠ¥Ê}æ0Ú“Îîf“ÞF´–'·Ü©ó 7¶¯BË[»©¬ÊÝÿý˶µÏôœøú7½s á ˆ{4¢¡iïq1yžÿ: Mƒ1%+ô™?så-äí€kÍufžÅ½f"âTtxQ\d]s(6ñ°E{FÊù"wñ_ÅL¤¬™ŽÄ: 3aEôIW§(Y»}q†/J&4QTCyåahq€j8V¶PkƒˆkÊDÀ†Õ–U¿7· åÁÝÆÚj;^“ q¤1=Ç„¾ ¡'-%«-¨Ï)ÊʧzΪGKRõq1äg­•=ÛPÔAˆšêªE×Ö­€Y³Ép½ƒ{özU` øŠ j÷`ʬ…OFÅIBÞˆIƒ‰Ž1Yᩚ0Ȩð­2¶NìÈ?éµ§±YBb´³$ú”ÎìB\„Às1¸ÖïkE8ëÛ¼t§X^d°÷X[ªØ6´…Àóqä˜æ»É!Áœˆ†CÃ.š…¥øYîµÛãöúÍz¿ßg<³½½Môû}F£­V‹••Œ1\¾|€0 ÙÙÙÁÃññ1EQ°½½úkªÌÓÝÐK0Š—æTžgN"Ić $!£0¡Öe𣚆˜RúÞÒíÒrÌ„ÅAbÑ´×(”ª©|ålªöpP/V‡s¾,ì” 3ÒrN"gø²$2A] +»¹+S³ KÒØUAéF¸ÊB°(¬ËUT.~*²kƒ¥ç|j¦3KÎÂÞ)ž6D¦"T‘š[‡ˆ¶£rkäÄ ¦ #ƒkTlÝ=‘—-\‹ÃI`J w¨•Ad†yQÄ í ’xN.,êy!ôK¥²@Žíë̓ÙNBÑñiùSB¯B¸`‰FäÖ '5Õ0†2ö™%)ž_“†SÒÈ:—¤“0E“Í IDATbŒ=X8A›TC'1s"·Yä§k¢51  *3ö=)j¼¨F%„Ø©à"sB¢# 2ÖèDDZ̈’½ž’ßÅìFdxE, "7ˆSsS ýß@å^×5ÇÇÇÔuÍÎÎZkŽŽŽ(Š‚õõu’$a2™p|lQuÝn—N§CUU†!kkk_xAo1b…þ’ŸÛtÊÑÛùbÇð±³ù‡ä$îAnóß R¦”xË45_—¤FÖîÍÖšZšå‡Í35amíHÊØHEYB[‰È©¥ZZ©^J+õÊnü¥â9p68^bk‹Ècœýͧ.<ê‰g‹dîC.0î&e_Ú½ß(úÐ#ÛŠ]ž³‚õm¸¶£-«›Å¼´B“ —J„õ¤œz³rŠRin*à'b‰Ãd˜Hê@د5ÀHXÏhåE>-(ð5¬[ÔÝƒÈ êÀƒ@ƒ4„aAÖΉ“ JÖ4˜Ð NÖmRa9ý |j.C‹„ß+ñTå‚OÄÒ:²´ìˆßk¥YÄßÚëaåI D«F2¡aŠ&@ é÷Š%"v1ÑI™::!KÛIé¢x*}ûß7©…¾óL„ÔBÞ²ýó‹âìÏ*Ë’_ýÕ_å½ï}/¿ø‹¿È}÷ÝÇÛÞö6Z­?þ8?ôC?ÄÅ‹ùîïþnÞøÆ7²±±Á·û·ó‘|„w¼ã¬¬¬°±±Áþà~É—ó€‚"†²¥ðîÓˆ±aÚŒ˜©]ÃjqB#Ñ’#fB)?óÄO2"†ÚI€öyRv$¥òØ ȈX¥Çý|š.Î]c8hÞU°F†™pOù4ý CªçHQ³Z÷)Ì)q]P‚‘lÑÔc¼+[ë”Ò†Be*¢j„´ôºÑÑD¦¤ö%JiÄÌÚÌÄ>8X¡ÝQknæ»ûNù}Ö `Oœ^À ï.ÉòOþ»_ Íy×G^ÅïOþ{âtη>ôm,qKqxn/.éM¹aCñÅ{ ¢œLDK"bƒñ²i9òÖV[CZbŠïü=~‹QÞD憟ÿäÿJÞ ù®íÃíÉs¨Ò0öí„ÓÛ¬à>ûúÞ0ým^!¡L=~é±7S÷<:÷ö¸ýì³6‚¶-é‡Mb“6J؆‡¼ñãæŸ!¾Ró)}?Ÿœ¾œÕð„oðÞg3!Å9‰WäÜ@ÍtÌkø &.ÃÞâ£çÄÄÌ8ãß`¾ Œ&Z/>ÈØð€÷IæDôXåÏù¬Ñc…>)0¹Ò(ò¥÷ »á BæÌtÂÛOß„‰á+ø4_ÿ !•/èµÚ¢dõåc{½®ý·Q¹ïïïó ¿ð <ñļóïäè舷¿ýí¬¬¬ðä“OòÖ·¾•w½ë]¼ÿýïçÁäÁ䕯|%o{ÛÛè÷ûñýßÿý_xA¿Ây$gÝÈÔsÙÔ‘;}[[Ãâ!hpÆ*0ë%¯ý„5bføT–V7)ðh‹Á©êP+e±½”7L˜QRyÌãˆRøxÆò¼[fÄT¤LI \—fa65-FÌœm*$c‹ƒe?#f•&4l¯i&sª–Oæ,l*çkòi 7œbÍОñ¬¥­k@ ØPp~>qþ&ÏL=ŒL1ÏÚÝ;1pÃAea)ßK¨w<ÄùóŒÂ’ît6ж†#ßþì¡SÏìصþW3ÄÛs‹° âÚîñg’ªPIIÙ‹™ô[Hj†Z+&Eƒ¹ JÐRÒr½>ÃX41BPûb‹ÑhZÓYƒ~°º´™•N˜³8µf:âHmð·ÍhYý–"w•sVËàø׋³Œu“•¨ïмõOh Ñì±³Lx[D¸Vxl³ïr´#Ée³¶°WF. n`V(tvKŸùê/YÐ}ßç'~â'Èsk=’Ròc?öc!øÝßý]>ñ‰OpñâE|ß§ÕjñêW¿!ï|ç;yÓ›ÞÄÝwßÍ÷|Ï÷ØÕó¾´ º)øŸåOqzJ:ÉÉš>ƒ°Íõ`€¤žQEÃLié1Grбiò÷ÿ]JÛÄzyI£š%r¨‰â)/?ÿ”ÆÇ›Ñbăxúà.Öï:₹‚¬5/=ÃI§C]ù©i3õÖ;¸ýk&¼é5ÿЍÎѱdØHQº¦ÚÄzzÈw®ÿ; ÞÃ7/öæx™a1 KÛ ©EÕ’Uñ]»¿Í¾ØæcÏ¿†þ'ÿ´áïÆ¿Çï*¢6ìù[´ô˜h5'»ËÇ›Õü­wòÊæ&WŽ/ò¦_ù-†²ÍߌßÍמýkœ :5=Ѧ•iûöTÿ`ôa^­?D~WÈ·<ÿ~žÎsWçqþ¡÷/¨ðY úäk>ôj‚I1´Õ¯åO^•Zc‹rB: ؇Œ¢” ,ñÚ64e,øJï#q/ïá[¨yÏT¬‹"3g´“¢†U×¶ óç£+ì˜ë ëï{üuiv:‡ŸúÔ§øƒ?øƒ/¼ 7³BÈEÐŽPdwç7G?g¸ŽDÛ“!MF4ÜÈË£b]Ÿ°VŸ0ð:DN¸šŸRKI/j£53±#,aÊМOm£‚žX¡ž§› ˜:?¢qÅ|F¼ìúRfît'–_3¦‰F-(ͨhÔ%^2@V†ÚW4…“‹-³ H4¢QcVúqeýà;Æ" ×5 %46ᓇpiv<Ì®¤KœüÀ޾¯:Uï=v eJC}¤ˆÎL)ª“‚ß͉3f§Mü8' <‚³sŠV#›vÔ¸ˆìÖŒf«0¤rJ¼:ÁAêO©dðÌ**iøSúÍ€jè#|ŸxsdÛžYÈiØ¥ËÀ4%Ùs/DÈëk„Íípˆ-UnAŒ‹0Ëp„&cjeí0#Z´’²Î‰‹iM—‰} Ḭ́‚UûOEêÂ^Ë[!'`ê¾o‘ wÄ:]úäL)ОÇ-<£ÇªûÌÙîÿM*qã V¹×•ᱞ2×¼øDþÙ{v!8<<ä=ïy?û³?K†üôOÿ4Að#?ò#üæoþ&Óé”N§ƒ”’4M™L&t:/õ‰;B‚–’¬pšØµÈ6%méÛÐ^1V Ù"aÆ@v ïÈÑÏ ôÓvæ#`vuãX5Ÿ_àçxžÛi™+á¡×fOïâQ«9{í!ÙEKV’Õ¨G©}â`NåyÌIHÔ ÷©/¡ò}B]PH„ÅþFUŽ©s0ãˆB`jðVkò®ª4ª°^ï¬ãá7ÓÖæÖ¶Z#,“BäÕ4ԙϸ3õcäFLp!@<µÏA¹‰/-ìJ ë£Î;!þ¨bÞtš$±ÅŸ“z͵„¢6㽉…ÄÛpd›wá›s*˜æ±#äÕLÍeh‰1qš¡d.íϪ¥Ä_)ñ‡%Y²¯·m3¥J†DA‰§k«m* Y"††¢2¦K?XE IG ‚¢U“ªYæ"æ˜uBrÍ&7Ì.™ˆF/9›jL ÂF…H4•oí´SRÌ6¹°Èê¾Ye¿Þ¦Éˆ®wŠl²$® Dh«&¹ðÖmä ËÈdÄUs£B´”Ô^í°gý·0Î3ŸEå>=­x샧ã~ýYŸþ玂óçÏ£”âÒ¥K<ýôÓ¼å-oá-oy q#¥dmm^¯÷Wƒ~’.#6lüæ)·i,h3â„5loA%CÚ(*šUzÌdBO®0¦É¦È\DLbûð^ðxKal¾óW¢.ÂXhhŠ%Œÿˆ ¦2åMf$Ë‘$ÅZQ¬ŠZº)Áb\Uá-A9Wõ9Jí“!ý“MêS“IÄZM>1µ‡écE/}i1°Úb™h86/ý†´#õÛðÌ!è hxpð¼¹ÇîßžÙÀ=BÈ®6mÊÒyC•øŒNVa"ÐÆ“{ÎöÛ±ßä°mÑ´' îÐÆ'%˜™$S L **‘ÚÐ?\£žØ¦Aøšrá‡IcÊ–·ÏÔ¤dÄ¢`;¹Á^±KU{„*gGîqjºŒt _œç -3b$Z 3J|F´¨¢)&ìr¡Ë€1Íå|“CÆ4PhJ|Ö¼Žõ:ûµ±Ž„E²[“1cšËÿ{Li8–ÁœúôX[îËWxé«8º§Ëõz<Á‰\³Šó  ¬0%a_lsƒ~uö÷)§_µöA’²à]~=¡(ˆÎLI›c&]‹PþQ…~\!=ƒÞ_ }ÍWŸûcþìã_CåK¼­‚3W¨¤Çyÿ 5е‡ð !çô5k«21—ÖŸa/ÝAE¹æ“‹G£ûH3v¶ö¹£z–ká9„0”ÚÃ(ÁªîsÏÚ“l\?à(Þ¤>?õm?_Ï\;Ãÿô½¿„ØZãÌ®²óÐNÌ:+glnoø^þ5>CÓæ/ô+\ßäOÞùͶø¬š¯ï¡+Å×¶>@$r2ñ·Ä»X£ÇלùëßzıYã7ßóFþÅü#jCu»‡œh67ö¸ýkŸ†Xð°úMF$í)ÿô;ÿ1u­øèñCü³?ü)T^sé›C6-*u³yH›wÈgyEðIƲÁW=ø.zOq0Ýá‡ßÿëàÃÝçãö Ï %Ïê;yëŸýæ=JT|ã?}7*¬éû+L£&©žðÝþ¿åÞò ¦AïýºÿéÕ\»r7ýöoÁ‰ ý»§ø›9©™ðwîù¿­6ëÿ“·ÔÅ~¦zØñxÕëíäò‘>óŽÝßþéŸò;¿ó;¼õ­oEJɹsç8wîwÜq‹Øó,ËÐZÓëõX]]ý«ÅeŽ};#!fFNÄĤR&Äd˽fZ¦žá²z)Æ(¬CWTTøÂ ¤ NÖ¤cÅ-¢2¨†UNe<§ÅØÑ&DdĄ̈Ý~¶ °¾IòÒvyêVtew¼S™’Ɉ -PAÍ4lQç>2©Ò’¬Š¨f¡E)fnW6²…8¯BDCcŽKÑsØò!Ú€çŽáÑuèøö{ô¢ÈÍj.Û[ý2 3i¿flô‰¿˜ç û¾g{n„WcwEÒ¥ô@QÔ¦”v—' Bƒ9U[>²U¡K™ÔE…¤–BÎ-ßÞ­74’XÌi…Cr0(»K¡š•±¢’DÌ–×…À¤Äc"Òå ×äXîÿbr£‘ÌIð3¢– _Z4ïâç,8ò±ŽåˆÀsárØmÈOŠD»«*IÝÔ`ñu>Úíã«[Vš.TõÛÚ;Þñ>úÑ’e?ð?À›ßüf.]ºÄ‡?üaªª"IÞýîw/wîgÏžåõ¯=¿þë¿ÎÚÚ?üð—ü¸l6ô~´µäéŽÅ¯‘(4‘±1)*¤°÷z(r„1œ‹žçFwЛ9ü‡l,qÀ—¹`u±7;CÞK鬸ؼÂÞå3¶áBaÅ£S ©°ôUw¿¹ûOÀöË®ñøä~ÌP£üŠ“õ.ù<ä$^a¿µ¯Üç5ZNt#ÚdD€Ýä㼊®pmàQð(÷á»Ée…b‡}ÒxL·8åT¶©ð¸ýQZkc¦~Ês/<›0ymÂð¡”«ós´ãSvƒ=º èrŠGI$2¤ÒŒý„ãéqÉ–ºB´ÆNz†š¸ ¥°æpÀ];OÒ`—÷T߯S/ÞkŸaë¶A—)È’±lò>D—±7çe;‘òéù\ë·â¿²"qy ÕeŒ™z SRV[ÇxôóUžß¿„ˆšÌ‹–÷÷D´Í)µð˜V)£ëñ=²Báàœ£{»h$Ýp€šN¯%ÐNL—QKÉñm¦O¶À7\âQ p"ט([¾ A³˜ ½šÛ7ŸEQ³ÿÜžûØ%AüM#¼nNTdÜ¿ú(º¼ÂŠýeGîåç)±‹\‘ñxÌÛßþvžzê)~í×~oú¦oâÍo~3oxÃø½ßû=^÷º×ñÈ#påÊö÷÷yàHÓ”‡~˜Ÿû¹Ÿãàà€ïû¾ïû úB¸ýäbÄY;B˜e 7–ûiíöè]N—¢¥9‰³9Þz¥<æXåe·ÄÈæîæ±*Fá¸ð7G éœu}Bœd S?Y¶„ŽUÜF;5ûÜ•ú¦KÞZ4c–Û4±u‹ô§ôŠ2õÐRÒV§”: ?Ú k¥˜JØýte0Ê l.ŽGmd¥1§`& ³+`ÍoŽ¡·a‹úªA$Æ¢ «›Bt§F„  iñˆ#wæT©‡6 +Dª1- Ê®¼´DEš²òѹdîÅí9RÕz®ÈçJÕ¬wÅm­“¼A¡c”(Y ú¤L-FÓ]߆ƒÏEL©lÁŽÕ „EäFd„. eAâJ˜Ò¥bLkyÍ•J6˜0u;[X­Â=eæÐ—6ÓÝZáBg…»‰h8S$hÔRpç»×P.•Ð6Ö5têWk[2‹…ç-ôà/UÐ_ûÚ×òÊW¾€íím~ù—™ª²à™µµ5Ò4å;¾ã;0ư¹¹I<ôÐC\¼x‘<Ï9sæÌ_ãš ,B;Ár"ÅÊø‘ª%EêœÊ÷Fƒuˆ–ŠºPøº"a†pk¾Åênî²ìCrZbÄÄR„%AVCª‰/NȯEˆÒxB‡ÈV ¡AL4¦”cŸ:P¨Dã‡%Q4£JÁê=ôP¥a>NPe͘ó0¦*«lq‹ÄéÀ z‡“ÅK erˆ£ KºËXVu¡Ï]ÆÔð]’úZz€Ì Ú—ŒÃ5U4Ò Q™@jEƒtèb#þ%qœœ€cÜ&$e› ªL HÉ]T똫ìSaÆ2‡¼(NS#ò¥Ù7«tÍ2§Äu´ìÞ;àJy?å‘ë$\—¨¢ y¦K²àÕSŠI@ѨXßöóX ÛõuøÒ<±'&2vŠ?v§KöWS²2 v®Çxµ…™‚ïål=pýáI¯BvP!¼0!Y¯! ¾©hží·'ìÝ8†¸K^—F§O= {˜\’R¯ ت¼Äa¼Œ0­ž,iWºÔä˜1U–8b]†4È‘ŽoàI[d7âMªb·?OiѧÂtÈb%…’ØûÀjl²íÒ°ZŽÀh•Mú çGÖ‰Ï%»Íý­Sg¹)}Lö‰™2rùêU&,sHH²ìiÑGRÚ׺Këõòˆ³ÜåŽ?þÊçåo€ÏO:õÿÛŸ­¯¯ÿW¥CWºäõ/}غ”•ÜqŒ“NѱoS,Ÿ¤pLð#0UÁ­ÿy‰‰¨:ÿý‚„H ˜Å³Ü¡Ë…Öó¤ÍGø<·wO°uöÓÓUÊTññgÙ½w}á f€ŽéQ¢Øe}‘ùTù®mœd¬kv…÷oN Ýrvà9lÙ÷gåkà¤%¤nÆ ÷¥ì¬nrõò}¨AAóþ#FEƒ JY¯móÃÓÁ«®<¸rïq&qLÔžòðÏ>M‰Çö¯¬òÅØÀ<¸ŽxJpãhùSN?· ÿöÛœ¸ÆFe‡+ÿàÜø\íÝÃÍÎR^ øÈþë¡ÍrÀ¿:ñCÔʵU®Ü‚Ÿo~ê/i˜.Z+>uðk7ÙÛ>Æ'®}+zÇãœ÷ßÂ'HZ!Ÿ»÷©Òìq¢s‰ 3.ÿæC\Ý®XVÿÃ@ixí…OñdöIŠCÅäÁ³zŒlh¿}ÉZzìWþå}UlYO˜Žç à5¯ý÷ì>¸ŒGÁEó€åa\<û›B ÿï7o"WJ¢Œvø¬ÈÊ͈OÞ S–_ÝE>®é›ú¹ï² „Ð)BˆRXK{4Õ”µÿe0œ~ä =ü š¿úÀ7sty¦ðßsn ¾MÿÊRœçyœ={ö¿wþüùW|EÍfó•›>ÏãäÉ“_=z†Ï.ë‹È˘™ h‰SXHêvèå"áê";çþ}ƲÆ~°ÊÇÂÆÄôe \xg‹͈„QTGDÆÉã2‚応²ç­R+§ì©U&T]HKÕê°D¹6œo<äôh;âœbHƒ#::ßòu®–g™å&iZuÈç'2K*d£ÈF$ܼknO— v;d{UòIÓ®»–«ÂB|K ¾eÞ»Íuhy¶˜Oœ$MA"cĪfülÛ²áOBÖ¼øôʫʒ窂乚ݩû vàè“«ˆ6èË osJ’GôV”Ñàk*Ñ´àùþý£U9"–3´ðˆ•½6ÇØv>ж‘ IÙç8)!‘HØ`‡ËÜãúQíìdr‡ÚX‰[ZXkFNQ0'­²b×<%ÄNiP¥!l›c—È·ÌËt]ŠÒŒ-n;ÿëA¯ÜßÄÒ"¨ã/ñ"§QGRr‚› i8£¡iÆ¿Ë ]}ÅýëwHqyE¡DiÓÄŒ@f!@ÌsÐ[=WØuCœ'¾NòˆËˆÈ"DÏùODd„Ì„•/©ZAOZ†èBq›c‘1‚Bz”W’Ñ+ÛÌŠ˜aÒ¢WmY'Aí3×-2–c='æ)p}÷³oì¾:†¼ô1Mƒ©ZYè\©b:WÖ[YO Z`z–”'†³,Y>á"æ´ÂŒ†4ã“»|®UŸºød,;¦óóðÝëH ×5|9ÞBÎæQ éS Ó\ήs®«âQ‰ÀZtÞ5äîEû×?^6®L±> ÚØçdê&ô„;þâs"qè&õÚŸŸ­¨U;鋪!3ÆT­Æ˜%Gt\IJ*2qÈLŠ±Ù²K*"jŒ˜&ZäÚ'Ó‘IÐ… rž+ ÈÎT(ûoßŪWú@,KÚF)‡ =‰PÚN©]î$'΀‚}±/tG260SEz\2>=c`꘩iXÚ¢Þœ2nÔ˜ê ù)¾µ ûþrX³Evž~»8b…»Î2VÓ {6ÄᢠIDAT,ŸÜçÐ_#Å”w¶¸‚YÆï؉½H4lÆ=b3CšüJ7œ¶ˆƒW”ïQ„’çå-¯O 2»Æha¥…W€MJ`"ëå¾\v™8¥ÓŠ8 3I½FÏÉö8tçbãeªˆÒ,øRËⱩ1•5{”Áѹ²÷ŽË7Ílh3g¾+YZòqÏ]ƒ½ŽÎ3@FÚy©@GtïLÖ5 f`ßq-ïþ–Ïÿ¾9ÅÍ3x3—HîQ,´¾ó‹áQ¢]ñ½cë¡P(p‡ðÜ€¤X(Ô=w0ÞérJG]›»ÊÙH=ik¡I‰™RS§„]äªv{}ÏAv6‹}¾ï;ÊÍ£:= Ç«OìèÈO(€"òñý Q‡"ó)‡þw(ek„;¸JîNxî/°ExŒ%ˆ5èíC JÏBï‘Md3íHb(†Âþzì~Ýp’7g)ËÀu¢ýÜ ìûªe'xk¨„É…už J›G,­ ‹kGÍ%.YÀÜa !(çÀóÀÙª†‹lòé¬[ÂÅuœÒ)ñ‚É>/Žó&k~oLMln¬Ek!¼ça^œçIÚìùŽ=&Yd–kwTÍ›É9¿c~¯xhQ|U ú×'ô¿ùt  {àkGØœO±]W&zÅÝ»}{À«‘¡¶™P-vAC{­Ï°j¯}ßk¹ÈÜ!ËÒ£Íލë)÷ŠK ‚悈9k^ááÛ¦2—>¡L‰ý£¨N+PõÆŒ¢™0ÞkÙ¬ï-C°œDÖªaPq†yP…Êò˜lR±MöØÅ+»ç3ÍbLb§}í{P1èHÍBLªð_²1¤¾Ÿåõ[ßp‹‰ªr{ó<¤5ø#à {wŠT kã=îãYšô1R0¤N½m¹/: §-²IˆZÊá‹ö}¯NgD„8œ²îïrÓD2A.ÛüY\cTmcRà–6õã’õÊ!Tàlå:÷­<‹BsõÂý”MI¾`>«¬^CãjôTpöž« Lå$7(„ǸÓdçä1LKÁ-0#iÏ®C;”¬?¸Ë½\¢À£)Lý ûÍ n¾êœ½7"`É@ßÀó® 3ã87 I™*› ?Mž´Àt-·€÷½{ö,öê%÷•Ïãé’m³ÅVpäúC÷E%éå*æY§XjÞ%oäËtùw« ×³Ê>ëìà/"7Û¬r€Í&öñ(X¢‹¢dL)Úô¨:V¤GI‡#–èrȲۯ,—]J¡(¤=xçH€Dc4 e¸Â6 ¶†æTÊ)e§MúN«9ösI±‹z­â¹œäùd.0,Ñeે,y ²VR IÒˆZ<&>=apØfö|ËNKn²ø,ˆCƒnÙÎ Æv„ÛžÖÌ è¹úIú«ðì<ºÇl, cYî›Î¤fÎ`?o]æðÜCÝrE}\ùTYsä!Fz ÁJ‚ r„4”¥ÇìFêÊN|ÀþÑý~Æ3”ÐŒÒÝ0YØk‚á6›¶ˆj«N8KqÇF³ËÒBã?ït3|½ÛëxÄ-z̈¨0]èÿ§TÎ}ÃŽYÇHh +iÒ â¬|mÖzì&EBÈ”*‡,s—QÒ_Y(”›â¼…­ôhSÜe|ê×'ôÿÈæ?(Å/çîe7m m,´ilÚû\(C%™b¦‚²”má`U2i›¸ S ;4oÞû2[¬}æ«ë+z#˜¸ûÇ3‘H˜š ‰‰AB‘‘˜œfÜ#èdÌ’&SÔã>“ i üF ÂJIqD„”õfìÛ¢±ê È‚Ñ ÕqÍöžûÿÕJZ+G¤³€qPE”NS›ÈXx‹cµ>¦vllŸ–-þî-Æ›U;ôhÏ=9ÁÂLÉ'·šü¸KàeôÆËD£‚i^±ÁLy‰œ–¨B[阘ЧíL¡KDœÎ ™ ‡5„Ðy#ƒñ…kÉ ªÞ˜BK‚¤€†…÷E¢™‰˜ÂW¤"t\;@•(êá€öꙌ13;$„"e<¬Aˆ …rÃÞ<òzä5©Åã;Ι=¨Ì¦LE…qX#÷|ªLëÝÚÒ†¤TÕ —6õi-Œ2ÆT턈GhR޲É´B>ˆQõ “´A’Ŕۡ6Jçð6°Û[ÊÑ{Âv#Õen7>yÙžü”mHáÃ…xq‚5вc(Cca¯b;^²2‹Ý㎛t¤mô%Ïîéo9 “qƒ¤WuþÓSHT˜3×¥ =ô‰;É@´P^Î@4Ùc>-Îñ)!Kty€‹Œ©qvú"µþ„ª5 Z.ºcUÅŒ¤ÏQ½I˜¯dêÅÔF3–wŽøæ{>Nc:¦yuŠN%å¡ÂlK›C0ÍÑž‚äQ‰ö%¦*ñw3Š“>fäìœ%ÖÁQ[ˆW¾¯ÄlHˆ æÐBÒƒ×OyúÞûø¥7¿•Ù¨ÊWßEµ2&ñBþw~Ñ(‡Õ«)ø6lãþ‚ÚàÉO¿j«¼¦ÿaîá9:ñf§M8µ»M’†x—4ù4`2©ñ?ÞGºò`ã ¼æÜ‡)ɃæK¼†O@iÑØÌ0Ûê‹¶ñú¥¥ç§šÿ”%ÿ7Ÿû jjÄDUø.ÞOÌ”·ìþ.q?Á G  ŸìA~â¿û?¹žœæBýYÎr…)U^Å3T™ðý·þ5ígFö{†–@xMáÉð/a_ûßÈg‘h*LðÉ¥ätöSö¦zÁ¾™ xó±ßf¼^ãØÚK|;ÿŽ%ºüÐìw©„2áÓø?oÏèÊõϯnþ?×üY‚JÊ·¨?Å X¦Ë›ø=†ÿcú.ÂçsLO > Ôᣧþ§ÿ,¤¸¯ZAÿíßþm^xá¦Ó)o}ë[ñ}Ÿ_þå_&Ë2Þô¦7ñªW½Š}èC|ðƒÄ÷}Þþö·Óét^AŠ{y‘ŽHa6ìÄ2•'C»cÎo!\±øz@f÷ãEJá RáåÌ¥dÍbǦÆXç84qjõçE¬L†/2ÏðÈ-A†ð;ù¹ìNºð†yÀ‹…€ÇV–%ŠÐ£È}‚Ö ?Ȭ†º(ßíä<ß—íÚ‡XFU-í>/à%p[h±ºñ 쮦íî€vÍUøÌ,­£ŸrL¾+‚\qP»ƒÚ6±GØ‚ßr‡HÓí%Û–4b"Œ ”*Ƀ ~˜!CM‘ùÄÍ1¥ÌŽª6iÍ›-4ù³Ê>!ž¬016Æ´À§4Š™±Ùò¶hZÝw ô)U4©9%„OF•)S—h§ÝDqÈ’s0vM#,qJ;˜|@“Mw?t– é"cÑyÛuŽâ%FAá[bé\$ ¥:Ëéô†w R ãÊ·òÌô[àÅ!÷ZVNÂ9®Ú;Ôœí‘'ŠðÀ†» ò&_8z˜Ñ¨Ž¯gœ .ñ(Ÿ³Ê#“á•aQ Æš°W‚‚íõMž©?ÆÆl‡®ê†1 §¸N@Æ™ámÝñîîšÜ®mòbõëb›©sn\æ:#Îæ/qb´mÇ-Êñy†Wp¿üëìR h2´òYSð ùEû={-&A•‹í8W˜xOògD$œN¯Óöº¤^À±ƒ#{^n¸2…½éψWQÑåS dö$7lÛð•›éξE>vò¾ÊûW÷Ã{ã߈‚?ù“?áýï?£Ñˆïþîïæ‘Gá-oy ¿õ[¿Å{ßû^~ñ‘OúÓüîïþ.?öc?¶x–Û7ÍY¦s=·µ|¡ÐÔͱ¨-ôÀ8ùIi9M†ò2v¢‹º´ò¢ ëäÂFxΓxBâ›;²2a4Òh´ƒölìfHé`Úù¤6g´Û]ª%ryÎÜ`Þv¼6)JÏ®ŒŠŠAJÐy€7,ѹ±,Ê‘ãAzàÉ‘¤ÑÏ]¹PX¦}ìÐ2°"0¹ý3"<³± ÃmH–ž‡™ØÉ𑱬àÄ`Œ°žÑ…#Þå.ù G–+ìM%Œ¡‡PPY”0˜¦$WÃ)5Rk ©(µ$+”)¬Ìýg¾ƒÂç%l™õÈ)r†0ÅœÓbã,]fùÖÛß'[ô¥–HWu¯SPuòeM_Œ»NB¾bß4/ªó=ºt$†9IªpE5ÙŽ?!^ìí Gг<Œü® ú×Ú„^¯×yûÛߎ‚ŸþéŸæÊ•+üê¯þ*¿ó;¿ÃÇ>ö1~ï÷~oû¶oãöíÛ¼óïäïxW¯^}…G¡­éOQeý°K™13PE‰ÊJTRbn[/j9Òˆ©fïü*r™m69d‰³B×,qÈ2ƒ²eƒ“E‹>{ñS1[œŠnrivŽÌó¹iºTý /r’¶?Äø†q«Î@Ö©Tf¤2¤k:l5n³Úìr…S4£ýc„ÙÒ„õ £b]#K‚SKÂ3˜–$Žgä[>º”ȼD†éz¿bá|ÿ(cz¦‚6 Õ/@ äLã¯gÄ­’@gÔÌ„#:®æXÝ´GN»3fýìÄPñgxã‚Dlf=Äå ³7_: >´W{x²ÀhÁ¸z]ƒÎñ>Þ¨dTÖY9Ü£º>"3öŠ5D —ý{èŠ%ªjB rË~iå,ì#Cõ؈•æ> Ó§K‡®é—3&º†g ä¦G#¡¼¯^b¦‚¬ãSgIJèÒŸ¶¹’Ÿ·ü—›ÃQ‰[N’§èL2+"N_½Š( ; ¹Øx܈Ŕš7¢åi­LFS9?ƒ®! #Ž•7©ÆÔÔ˜«ÛçÐ&®¥ÔÕ ôÉçñLI¹dÏä´Ó.g&W ò”£ÙB„„Ï|Ãr@ýÄ//h<:D7”³ýjNèåW· —eÉ{Þó>üáó³?û³üÆoügÏž¥^¯#„`gg‡jµJ«ÕâÂ… |àxÅ \ùÄåhJk#æÂãÕA-fætÊj9£å l¤ ‘¤4ôO—ö ʵ|J5Mž$Ÿ„­™ šÔñÑ´Ô€Bù(]`´ÂË h¥$>*N(ˆò¨Ç#´T(QàËÜAÁU"ÚôPÖ¿Ù9‡kgV2‡k+NËÜe‰euHÖØm¬#Œ¡"§%8j-1U™$5ë]\jôØg%Þgùì>³3#;ydŠé^rªð9ùc!** ;3fŠK!Ó0ˆA×fºLíæô7­‘=P¡Ü q ±ÔgvXA65Éa…¢P˜™B $Þ±Œ 0»U#gœXy‘öì_x+¹µ§œúT—GTÄ„, ñUF)Õ)M¯O™+0Pç¨Æb?’¸÷°dÕÛ'rk¹ûÝÅþoåHN‹>¾q>ÓÔÝ~>Ç[¸úÍÑ’ÈÌXG´E˜Ù¢IlcÎ9pJ•ÀÉéŒS)¬p°P,øä´è-ôï›ü%Æ#®|ì6ãlŸr;¾ë‚ž}…Æ2ÿը΄`ww—÷¼ç=t»]šÍ&Íf“J¥Â¹sçøó?ÿsž{î9|ðA‚ àá‡æÙgŸ]tQ,ý?¿Ícü)[ß°DüÀ2ÙÖç‰.ÕrJ‡.…RHÌâÞSç÷ùú´¸ÁI49ÔËô˳¢Â ×¡81ŸS À»!;Ožø «ñ!ÿêÖt¦lšÎ/=Ïóæ…òXS»ÔÕ˜užåÏì—«lxÛ¼îìŸóoù.êáˆÊƒÓE¤òI®/Œ‹ŒóD_eA~4ùÝ Œ{Hc%šÎQÌ,ØðÚ)%ÚzÒ“Ö|Î¿á §Œä¥«ƒ»zhæj‹¯µúÖÖ?þã?λßýn.]º´8'²,Ã÷}*• ƒ}/g³q|§Q’žà›¾{•Ûl8_ˆŠ»žnݦ­è0PÙB9³§¸ÈmŽ1¡B•1…Rxª` $S Šj ](^ `â3Þ¬SO§ä{!Eê1]°Í&ìÉ(h0*šì%ë4ã>ž—1Jš¨°dß[³Á>EˆTš¶è9OsÁñÈñ™R¡Îpá>8ô-£zŽà(·ú™C¹ÕpÊ„3"4ÇÅPLÅ!YÕÆŸfœâ:Ïæ÷³×ÛdV­P §t¼#fØð‚.K¬³k¥·Ç+ЊàK‡LnuH;Œ‚v|Ä k‘„=Ú¤„´9£¤é8½r…ÛK›Lú5 |¦ª‚%½á¾,é·[ N‹ÀPcð.2¡ÊKã3ì^93˜lÕ(jÊÁヅjiþ¼š5u L` 4³.¢3bçô(«70x‡\2I®ò,à@¬³´ÞeJÌC• ™*Òzy܆~Ò¦ØUe®5œw]¹ÎÏ&6¿wHŒŽ9"|¦k…ôˆÆE(™-yÖ*JD.èÖ›$*¢NMʬí$¥5JóžH3•1Ó¨Âë¶Š(^³O©pÈ2»¬/´ÒÛslhë3½Ç#jäT˜r‹-zºÍn¹NKõØg•n¾ÄÑõ5êÇú̺UÒ+Ud¤ OMi6{˜E~`n)Kz;gP'rô¾‡Ø\åÞÉëVgžºù®€/™ ÿ*ˆóô{º°éÃ13UÌzµ;:Þó`.*»Szµ%ÛMŸi0¥a™ÃMÁdÖ KCÂôbÆy¡¤ð%£¬Ž J6·(¥â¥Ïb:#–¼Žy·8d™}VišçÅe¶ÙÄ—e¨¸W\â2ç˜&±°’‘6=öXeJÌ „$ì³ÊˆìpÆ\c(´±ï㘚ÝÃqC–„®9ÎMnslØÒáˆcú´Èñݾt˜ ”xœå*/pžÉG4,B{¦Äœà™; êŒ8ÁMv¹û ýkM¶Öív¹uëFƒÃÃC–—— Ãpq.<þøã<öØcüäOþ$O<ñýèGyÓ›Þô×Þ7‹˜Øé5ÅsÓU‹-=¤©XßI=QO§Ä2eMî³"hÈ¡3)ZçˆÕd¯ºÆÑl•ý‡V÷k¤ã4Š0SEž0è#Ÿ¾j“F>ÝËÄ£·6+øyÎ`·Í,¨STå¾Ït­Á­“—¸ux £ÑÖ˜±¨S÷‡ qÁN6õkîµ1/î{j.K ©®rva„‹)78¹0X²°z@SY8Æm"NqˆµÉ„?øÐ1m7ˆîÏO¥êejr¼ˆ ~5Oã‘S¤×)®€ùƒCòÕ5DUÓÿ¶ešÛÇhC"žàãÄ$4é㋜µÂ_~áõlO¡¼Œ0LIÓˆÑj‹ƒö =Z<Êç¨3F¢9ŋ̈ùøÈð|÷!8„£l‰¤ ˜ˆ*¾,œÒeÌ:»¬È¾ñø§91ºÎÑî2—¾ð€%+{-—–Q/ó Yæ-s i4Õå œg”;>hÁ4op°¶Œ/ Yv<®€öñ(8Þ¾Á‰Ç®2<ß`šÔÈ>! ý#ëwqP.“Ë€%ѵH‡îReÂßùS´¼ø¥ó\ü⣔ VÛ”m…–Š}•>-ÚÜÝ„þ_œåÞï÷ù«¿ú+Μ9Ãë_ÿzŒ1üÙŸýW¯^å~áðú(ïz×»øÃ?üCyä^÷º×¡”âïxùÈGø¹Ÿû¹WØT kfŸHX4lH}a×Û¦G=SÏÆø…¦ô$‰ïÑ'L¢ê(¥ÝêÓˆ‡NÙaDƒ]Öé˃Õ&—Vïå6Ç” †¦É’ÚGú%ê˜ ù‰—fDþ o%ÁH(#‰—Jʃ€™XûÑ fE…íì8ÝþAsFÍ µæk¡%GÆ,ŒG!<‡C…‹, À9Z”èevØdƒöY!p¤aKØŒYGœ]ºÎ®1¦Æ}ú9b“0Éêð%›oY‰íDT¹Í&Âe›l3eõ¾mçºôϯ¢ÿ‰€Oícþ›¦&&ÎFÒ>ƒÉ·6ÈmútY⠽ǹ}ûE3¦ˆc¸ é«#®pŸœ×ðI¶¸éì˜mñ½œµchǺº L“ƒb?Ì©3b‹[´éѢϫ£§D .ǸtÃÚ¸&~Ä€ M•邨º¡wtN³3†G@ÕKÌP¢'Š2Tôò¡JØQL©°Å-ÖÙÃ#g«s““O\a5ö/#û\Œñ-與Å*CU'ó,v]ïRhG‚ÏÛë4¸˜Z"ãxÒ@´JÕ&¦ŠçåžfÒNPª Žg.8ÇNÖ}­´šrã‘dÝp‰š²~ófÉ8Bèì^"ÖØ· Îá/%B¢iÓs…:dBŸ‚Ü¥&õiRScB‘¢‘™JX5ÄÄYòÎLjd‘r•á»0—]Ö ŠŸ}V1)!=ÑFËÿÈýk‹×h4xã߸Н5›MÞò–·¼âk<ð<ðÀßxpˆfDÎ Êà íÄD2#ðCòРŒ¦Ð>³P“)½bÊÚ"ÄgâÒ2—½°Ã]:ŒM^Öa2j°m²:8 ì{˜]I¯¿LxºBþt=+1+ö1±ìj—¡pMoE„K)ì ÒqÌ~kC¹J\™0Žk”ÒhŒŠ:Ò·vÃ]:¬³»p'›RÝʶh{=²Iö–ØzjH|rŽh“çþ"„j(‹dJ Ë®ï¶)‹3ŒúMÂNŠ/sV9°g$ÒjüµÄ(QÝ6ô—з—#Æ­&ÁÊŒLR9ÄdæLÀt),KiNÖµ¿’2¥²†§™Q¤ž}gp˜¬POL°ƒ×Ütln:Õ£Í(©[/`ÖŒ™œ³ïÓ¡X¦@Y‡ºŒ‘¡„™¡˜xèË$Pn*¦Ç+d~HZ³çô„ªµÆ …dDƒ‘nìW¬š =ÝÆÓ¤Êдš6F;7>¹ðbT öJ«fÈ øÌÚU¤†~Øb—5α{Wzùe•áÇtè¾ÖðH™G¢Z9‰YX¼ÎÝÝ$š BÎ!±¶¡© Ar ½”™Š(…DKaˤMøš£…+*A)ö%™ …Wü8G–gûì I¶°6œO ó.j>ϧöy÷kwë¶)ñ]SF)ei"_f–8&5fäYùák”,PEiwÜB@àþ=¡F*ÐS0c(„u“k¹Â\¸¢žÙ.QgŽ8£7«puŽmÀ1¹¸a÷Fé®êÛ$DVÞ^*eáb«Á¥tp½HÎЪþ˜T‡È™+È ±K)›¿/5Æø2gY ÍCmc%íu±Eq‘ÙnS3pÆPoØ\z‰½'×)'Š0N­7üCŒ¡Šñ Näœ_{žOŒ_K‘z™‡¾ÕcÌIK×L£ˆRJ¦ƒ*ÃZƒvÐc\Ö9éßà çØ7«Ô˜PcòÌ"HEà‘¸ghîjX8çÊ¡iRÏFÄfäí9gê‚Ê›Dµ)Ù$bÿ™ãhùcSY%.orâ`•kê•~5§µ~HÿVqŒþ+0ÿüXåæê dPå)j/Ð*†Ü”Çy©bWÕ× ¨=v9LŸn¡Û’¼,žÍ-nqŠëÌtÌ5q†L˜ˆ ”æ`w}]á-gTNX9j(¶¸IHÆ%îEb¨W‡¯³þ(lrõð<Ú/.HuÈñÙmš' k«;œ8wOçÜ”g(KET’\nưýÐ&K¢K©=–¯i”C®×[)±˜‘Ü?Bl¤Ý Ï^z”hsD:Ž­GT£½=f¹;dª+Èo2xdTÎO¨lõ¡$/V™öš¨Ü^>F—æ. úWŸêý]+è±â˜ ››mI‘s‚³¬ã›l¹£´d“gÚâ3cµ8 vW¡$šd„Õ ¯´D ¯,ÐZ1i´MŸ°È©ecr?À ð2Mc<£Ô((lç¼b‹*3*ŽÒ#!â&ÇSe™.3ŽXZhæëŒÙgÕµ$«ìs™{80+”(¶ü[‚D­vôø”¾Y…*kC6«·)™@ß¶)œ%¥¸‚€Êé ›¿ÈõOÞK1 ` â”ÆJKŠ+¡²1!-"²ž%ýp¿§Và_oÃñMxXÂ7µ=%pƒí_²‚z¨ ŒPeI%ìX#‡êC}Ö¶¶ID…aE¨Œp)§£ñ)8Ïe4Ñ EŸ“Üpnq¶X?Ä‹¥Pnßc“&Î8èÛà[.€å€3æÚÂê:§,aˆ xžC–I ¹Ågx‘„Â9ŽXc6GÜbka"²Á6¬.ˆru†\å,Cƒ!çy/ñà"õíW“|…)gÌ5¶Mó. ºGñ·îÐm“¢µæ£ý(/^äû¾ïûX]]e4ñÞ÷¾—õõu^ÿú×ãyÏ=÷ùÈGxâ‰'x衇(Ë’}èCܺu‹ïýÞï¥Õjý½/èÈË-Á¯ ´°3Œˆ5b¦‘‘kÿ¤] ¤¯1B,¬€çCÂæ6®©[4Z·1›$äý"JʺB‡‚"õ¢Ï/)"‰‰œ,9 ѹµ”j4!^Ÿ0z±…, úL&+Mc¦”!Û¯hÍQ]R$>ýf‹™¬`Jiýˆ)'>©ŒÉ+­L ÐÆ®µæ k!<„0xh |4ŠŸ™£›’Ô(G>¦´áNY ½!4R¤. ãíàˆ£l±d›¶jvývmŸô±i$S³îÒFê¤ô%r©°þé! ž¶rN+/¶²baÀö|Ï²ÆÆúDø’2õðÆ9B•ê±Òh¤°FT¥ç!:îó©"Ä 3A´4£î ”He…ÁS„†RKDi „è¾BŒ4:õ(#+‘öd' ¤´ÁÝž(Pq‰(­Û`–0« 3Eµ3¢âMñu‰g4Ê3 d¹TŠRvËF+dâ ¨ÌݪÆÅßzNX)§-èãñ˜|à$IÂßøF<ÏãÒ¥KüÅ_üO<ñ?ü0Æ>øÁrëÖ-¾ç{¾‡ååeÆã1ï{ßûh·Û¼á oøO/蹸ãç]aâ!w`׌€ •…sÑÜn5w±©%ŠD…H£ñÈ(ˆÉãYà ñda¡ÎL 2ŒÉ¥éå˜\á%ÆHµ˜“».8qh€}m \ñÂ*²æLdr·:/37™ïÅ"1cBu1Ý+Yâ¯LQA.ckª a¶_c·¶Ž_É‘”uß[ßPìè‰McÊsŸýñ:å5ߤÎÏxûδžu²At'Äb8À‰5xnÇþÜ÷ìß=uûóËónËþZ{ŠìT€¨…“MÈu`ëóˆBxtõu9bj"b*dŽ¥›-<ô{´9pD¶1»¬So1-iRyÙtž¸)Ýâ3lN´vMàú¦Åk‹×µ–¬£²ÁDVA²@Y†4ñÈÝŸ­°ÇGt{ø;ÍÑ¡OÓ­R,4o!ùpáx V(Ey×ý+1–ÑZ3øÌg>Ãk_ûZVWWyÛÛÞÆ[Þò>õ©O1 xê©§øùŸÿy~æg~†w¾ó¼ûÝïæãÿ8W¯^åÉ'Ÿä'~â'xÏ{Þƒâï÷„n ë³}ü¬ ?-‘©A–q„µ4ía[´·¤¢Ñ…Œº7Æ“vuRJ%m>ºD³Ï* †Ö¬ÊÝ‹f$œæF—b‰„Ž8bäÕQêÞ€ÌÔ«C»ÎñÚŒÆ‚Š˜Ð¡K»yˆ¿‘QL|‡1e×ãH¯¡sÅ$j!sC2>lâoÍ0=Å §/päµ98Z¥ZTSŽ+¤2äZx†ºq-=Ç(«‘ÖBrá/Ì“±rpˆñáf|ŒŠ™²¬9¹q•¢ðè=·JòùÔaçÔ1f«'Ó[T>—B›ïr¦rfcˆw_i5èªM&CŠg5É—Æ(¯…öÖŠ>lDÖ¬rìØmªb½µç™1%×χë EêÑ/[ ³&+½>§“m¦qÄ`©‰ç—tVŽhU»`ÃË-è rÒ›v ?ãìäj¦9Ñy‰žß¦ð<6Vn’d1£Y“ÉK Ê(`/—ôSÖ÷ºˆ/Ù{æÿcï݃%Mïú¾Ïó<ï­ï}úÜÏÜgvvfgwµ’VhuY!­ˆ‚ƒP%ãrÀÁ¢ I`'ˆH¸D٠Ĥ H\.—*9‘-$„A’ÑJZi/ÚÙÝÙ¹Ÿ{ß»ßûóäçéwVŽ*08(VWšÓçtŸ9§ûyŸßóûþ¾—•ΧŽ^¦,ñz“¢ô LÂÎõã˜T±?[#ó<¼²À<ç¡J¨­§llíX4VAw¥ÏtÒfçé$}Ï®¯È”ÉÕö@ú%§¼ nÖŽ³ÚØF¢Ù1Ç)fRãKú¶Gy”§îàûç“âWÐÓ4EJɇ?üa¾ïû¾ÃÃC>ðð÷ÿþßçøï}ï{yòÉ'yê©§xó›ßÌÏþìÏòÁ~÷¾÷½<úè£<ýôÓüæoþæ×^Ð#R–èÓbRÊH´›!i竜¢’ãÑdFJH¾“(ø&'*SEL KBQj§ r嘿,IÏLÔQ²ÄA#㥥 ‚bî¡MÛ‹I?(0BVZdéÜì4‚5ö,©Í™ÜÔ™»|m{©3cÅ…ÍH4›Ü""¶³g$«ìá“1R”,¬ý«YÓx ?ȲȞÕÍÓÓȰ„è}2÷H'œ2°&ì½ûã.ú¢d|¢KÔˆQ#IëZ‚JîõÓ¬tØ«Ôsò†Ïc¿Ž/~áUè†d~¦Mº1Ýo[ÇË޹ÎCü(ñëdŒn.±³Œv–˜[ød”׬JhÍìóŸ`@¤Yã©å_Ÿ¿ÛYù×jøK ú¦mž<¯àž±Íc»FŠG9¿}÷;·ë¤ƒˆ~¶LQª;¶vûjÆ2å÷¹Ïñ©O}Šw¿ûÝœ8q‚}èCpåÊÞô¦7qöìY~ññ/¡CÇga4’VVŒ¶;–ŽQ<¥AHVYzNhÑb‚O&²‰ÐÐ*çHY¢A*Cü²ÄHA&=›§ë,@ ©0@»œ£JVF>:´_×=%2dL»Êè–äU‡ÖfŒÀ0¦]ùÊk$)!CºÔ™WóÞ}VP”4\ZÓ€%—Жø“¬Í¼ßOcrA6‰Èj5Ò$¤HBD»´]êLPŒD[Ûùø@‘N[¶·¹má¸ûC(†že¥ßíŠtä:õ7û<»ŸÝƒ{Ö y›¤Â†#ÆM°9饢œ{ˆn G ¤†òÐc|c™Î™‰‰Ê%¦Y“i¿ƒî)t¨è›%V奰¹ô‹b<7uFe—kÞ1úz™@Ø…ÙxUèE‰¬Lgú,W©g ÔÃ'wùóK•sÛb|ó|y©ŽXöÐB²Çm©ãÄ´¸ÁQ‘¹ÂÝaä²=ÊŠqÓlQŸ-nU$ª…>¶ÁŒ[l1ÿ1á,ÿAAÇ@«ˆ ˆ¢¯~­¼ÄÇÁ÷}Š¢ Žc"÷ø(ŠH’„¢(ð<¯zÜBïýuË_©94)t Âséþ­¹Ï]H‹õ™ˆ¢Œ‘o£Ž-csF´™¸‹(#`æ7 ¸½¡ÆÔ*™Ó˜69C–Ü‘Nºè]Ÿ)-¶½ æÔ ȹbN’ç¢4$±s±$1 ŒpÑÉß }q@1ñíu- ¿±í£½2&+CÊXq] çK„*¥ÝQx.ÌÅ£ ¯yĵ° ;*”o¯í] L]fÛ]ûÿÍ +C¦4Ób@—Ò™•(ŒNµáòÄ*eNÛak©mZÇX5Ò(^bæ7˜ –H®¶Ͳò»0R …D Aìü84pЂ|B!™¥M›LM³R$ŽC¯ûV¦‹#Á"Ëóqù3Õ`ŸÕÊŽ;dz\+wK÷k¤¹ áÏ+ŸvŠªùØfÓ6 FXÔ3N[4Ô1‰Mž4¹­Q‰ÍêtŒ sU’guLãÖ¥ö/ßÿGA÷t;¶™ðâ¯úÜ$I*‡0 ‰ã˜4M‰¢!RJʲ¬»0 ɲìk/襓þÌi k3 eH—3J$]rnrÄI™lˆÇˆ¶³÷,­nÝkS4< ¡èÎÆÌ¼:Z á˜SJUÏžÀ…õr?¬·‰ÂÌÐ$ Ÿý¦íÂvX'w2§Åï¶(6}z•Ý'ç:GñœyBÇKS»l0¦Í¶Þ¤.çì˜ fºÁáÕMj« •_WèHÞ•°RÛgò\—òпíç¾ j­@ßPp¢£ }®É¤ÝÀÚÖC A–wyˆ°Ä<©ìÆwÌm~Ÿt_À}+ð™]hlÀk•íä_IJVk N–4gt_‘Ô1W AÞ_"j%cËü^^>$ Æy¨²dÃß&Æú¶×ˆi‰1;ι&cŽsCVҥɔ.CZLí¾ƒGà$lh0cËÜbW¬¡‘°R9D­±We›ÇD¬¨®™ãLM“¶ÓaDƒ™‹9kìVkl"Ó`Æ5Ž“²Æ«bKÜ]Aÿëì:%ƒeÂo™[ê;—­åÿ¡”oËîNÞRëöc‹¢2ejµZÌf3f³—/_fkk‹{ï½—üã¤iÊ“O>É;ÞñnݺŠ/¼Àææ&ý~Ÿ•••¯ÿZ.}~åeïd°¿Lž˜¾´»Sy½N@YWÔzŽ8oP~ÁO®ýc¦­:»Á 9se£vwYg5jÄNkSôjÈe^VaFÓÉsf48ÉšL9ÅRÚz˜65bNŒ¯óPãÏXUû¬Œ‡|×ô…ÁÜ6³üYwí)ÇSI-2VÌIËÈY§ØNsÍÀuÏêÍ q`ó¼UVP¦¢0ÔëSž÷ñ¡ó¦‚·‡¿I§9`â7y%_À ¸à_âû½ß±„Ùëv(cÅO'ïƒ ôÌô,Óç ü ˆË:›r‡¤Ù¤¾œÚøÕý ÿè3ºklêÜýò§ҦɄS¼HÇŠ8¤£†ˆÄ»$!„?Ðoå£ò;h–c^ÿÊO ¤%Á¾ŠÏ‘ð°÷áñÜ"‰Ï¹†Ÿ=ñ3·Bj@ÄÜù“@˜ï>ÂÖûvJäèPòÓ'ß$kІ…¶³DÉQo›oïü‘}®ÜFu~yõ]˜ž€^‰ç‚\Îñ,Š‚Œ?mc%•:èOWæW¿©4ǸDŽÇ€%ÖÙ#$åÇ—oh›/ño &(³|‡¤¸à«áì'l±aßh yžW{ÅñãÇùèG?Jš¦\¼x‘·¼å- ‡Cüq^óš×¦)Ýn—z½N¿ßçâÅ‹œøÁò±}Œw¾óU·þõ|+„âw×ÞÎÅä>ô:Lo-cn¸¼ð‚­µhƒhhL(LÊ;Žý3¶å&—8Ë. Ûl²Ë:sêœà*!—+1¥É&ÛÜS>Gè¢:íˆOrÈ2[ùÆ3l²ÍX´ IH¨1-VØg3>d£s‹e}ÈéÉ <©s‡|¹Q‹3Ûž»®¸¯~å¸ Ï=g›C~Ág,E8€ÿyý¿åW^ÿwÉãˆõgév oä)ð8Õ¼Á]Ç®X5ÌóöyŸÌßÄ#ÿ üÉ¿ä•ØÑÎ7óï(QDQÂ˲/“ÖB–¢)œ„ѱÇþÉ—™¼àóMïxž7ïǘSç ü xƆ)E æ´Š9ÚœGÆÄ'ã7±!¶‘&Áó¬›Û7ñ f¼±óïYKn#.Cø•“ïäZÿ{ ãUÞ þˆ»xŽs\¤É”×Ô¾À+VŸ´¯QfŸ÷ýZ^wðièÀwz¿Ïëù¤2eJ˜åú€ï½ðØæçó®“§Á©þ‹ìG«œÌ_à{øßÙ`›WðEZL0Bðúµ/Ø÷c¡&šÃ[ãÿª}‘ˆy”‰ApŒëÜÏ´˜òȱ?eEíûþ¼}îÿXûÀ‘âò¿`ÚÚp8äýï?‡‡‡üÂ/ü?÷s?Wí ¼úÕ¯æüùó|ààŸøoûÛiµZüÄOü?ÿó?ïû¼ç=ïùÚ úˆŽË©¶3ÌØ’¤'j²B`UŸ¶Û£a;jgèbåPÖæqBÎíLWÚÙl""ðpÅUºn+¹ç“JËíèU¢2E”‚¶3¦Mä|ÀK7; ±ºæÈmö!]†¢Máf(ZºµëU;î€Í ßo­3šu¡­A ؘ]ż×Dµ DX`š öÝ©}êb#@ÄË^­¹"=r ®n7©Jt]ÂË܉¿çž›»ÙcÃ=ï>Ä\¹­-xƒ´GÄ[öPyM¦kkL`Ã$ÄÔÐèŒiû#&I‹yV!hô&´£i’š€®a„= MÛÎ÷DIèg–„¦#êþœŸC–i1®4é™#AŽ›pÈ2uæ´e¦DW]÷œ:s§ašûó5´´Â !¥“(ên½GtœÑ`H—E›qeô±HùËñ¨aG‰U@,b}3±s‡ýÏsŠ»m,ó®w½‹w½ë]_ñý‡zè+îÿèþèWÜ_YYá}ï{ßÿï¤k%¤óº¹ÍÿLÓÉ7=‹f™@Yˆ·´Yå Œ‹Ïµk!Ãw†¡¦V‡r#«l‰ÂÉj < ©ÐJ¡÷Ãw&WŽQØÑ^.}ÊPâ•Úÿ%¹“|Vc‚ÅGPÑ—ísßWî£t²TCegMÅÜgÖoÃP ´Æ'wI––³ó½ííÏswÈA•ú%R\ᤡ ´¸-Œ’îÿ-P1Øw•çÌŒ 7&µ²\JWh•Ûk¡qV[Yn%°–ØÕkÙO(QRƾeÇ¿ä烰PøBf»xMcÛ=C™ªŠ%¾h²J^2Ç._"¿µ–!È@WrÔ…‰”AÜ~ÝÌKF?c÷¹'*ã,Kœ¶þêoÜn¨îÀTÒT#éÿ·ÇØÃÿÒÒ¿ôK¿ôßûáþ᯸ßívyÿûßÿ_{ðÁyðÁÿòdk5§š\·,ÅIõ¢¦´Ý&Ÿ’áÓF‘TÝ’1‚ç .ì‚ uŠ%sQ¯>)Y a¬_°Ä>§¨ ÒÂ#!¾±„¬1-„ó /ðœ™m›oÏrMõ&N_#fæ Ì>«U¦ÊÒ²ÊjFY*òa ‘ ›ºZƒ†t+Ä( ©D4 fêrÑ/a½† à ÌŽMi#u ìY»¯;RÜÄ=vÓ-¨Ä-ª3Ø™UÃAô§šWÖàÙmxhÖTúa† Jd¤!()=ÝW$ƒ&óîœlT'6ñ Q=±ÆYA`hz3·Yvò ìü-/=v¼u2ÐS< öXsáT؈À%µÙY]«ò{_¼§‹â¾Hâ3Hæqã v7­S'&"©üöµ#ÒÙóË– Û™9Ïð3ß°¿KÍ%þáÖG›’ý;&Å•ßÈC¿3ò¬NùÐèoqñèY<™3ýÞß½ÊPw( ”ø"Gzš¦ž£ & IDAT˜2õjöý¦g?M6 Éú!z  !(¢lYŸ…?<Åk'oò-âé0dé`Ìs;ç¸xßyVÙ'Çã~žâg™É:ZX®†ÍHÐ(—ʨÐÛ’ðh˜6ÏöNS.yˆMÃÆéÝÅÀ—z‘’È€zd…§h|>#}@Ùëí@#¥aïL—öÍ‘ŸÃ*”¯”¡Dd¨)ˆKðÆ[ÿ†œŠùÙ:¿ôÉ÷ruz’õ`‡÷÷O‘²}d…ñZOÜÓºŒ¿_p¬u•ÿîÿÅçüWñ¯³ï¡rÏThã•ÖIêfν/{†U}@Yj~â›ÞÏ Xb÷Éÿô~sz¥¿=¢vfN› ¬pÀ íó‚c)ž.x§ú ß¡~ýÃ5~ù׊x»Î}ßò%þ‹oû×Ì©såÂ&7ï^µáÆÅ­ß~‚»½§ëð?ò>>[<Ìfç?öÖBâ`³ÃóËGéäcz“1¦lz×ù…oû{D2aÜh[s)fÎï}NÍùÜéûDÆ]µ+¨¼$ ÿ}øsh%¸<¾‹ßxâÇhÝ}Èø¿Á=Ê’ÝžzËV9 P^QÒ¹0åÑÿ›‚’ÄüÕ+ðð©OòÀ«¿D‰ä©¥sÔZ ­|Æ…ú%LøØaË?·Cÿ˽}ͽcFD´èÓ«ÌAšLéÓC¹¢½ÄÀË´µ)dÏ¥eÉŠª‘;+lÌf‘¢4 Uj6²}Dý®%=…d&#Õ:&1ÞÜ7}raepsU#!""å€ÕÊîs™>#Ú•.½Ë‚8SÁò͈6ubÖÙe™C¶Ù$ÇGCK˜u®öO‘í4ÙܼÁè°Ë|ØBu3šŒØìÝ "€©Àì8]ùx÷e”™‡1=£yvÀèOVÐû <[9 5ÛÈ5jÄdŸ­9xÝÿ+/)î«®¨ûÀ¸w~sŽo€Tˆ7‚+ÊÊØ=¶ákgèm[×Oá×3zGv©G3nîG¨’n£ÏŠÚ·ö®Å*m1â®à·8bÓÒLÀYó<_*šLLËÎ%Å‹¬pÀsÜ¢d“m" ŸcaÎûxš=ÖXá€8Ø615Nr¥RH”Bò@ïqž‹ïf¦ôä!-¦Îï:$'¨|âÛŽp“6–]~“#„¤¬²O—!79âÌBV¹Y¡ fœä —ï0ñè?Ç<ô¯¹;†nxH×_¶1¼-ã\mœò¢!°£-PNæ †ý#’KòYh;Å¡ƒ°·°ŽŠ,á“rØê²ÚÛgMîqWô"ƒ¨g 8 zôYå€}VñE^m¥3ê´™0wÈ¡À°Ü™¸ˆ€ÐËP”xaJjB‘‘–3&²ÁRk„ІR+‚S‡L–kàC+H0>\kaëØ6j`ÿæuúÔ,uMÛìñFœÓðg¾Ç~m•á&f*x»,èiûc ‚Õû¬t‡d5A؈)ðî.s•c4½17äQ×û›}Á„µÖžÅ1ŒÀHcCav7èßÚ€' ®}×q6ÎÜb„)M Ð §ÔÂ9‘IЀ$†ƒƒUæ» ¶6¹Ìi26ÂmT¨i3ªöÔ6!3¹Yc˜,Q çì¿Õúyt¼1ÒÓôL]ްXÇ÷3$%;¬ó¾Ê‘è¯p®k0s÷­lɆ8XCDJ‡Cº$ÎX¦ÅÄÚÒ¢h1ad:4ºòaZ}Ƭ°³p£$~7%¨§Èna)÷ ¸­gP«º¯0>ÈVI}eÊøHô´uÝÛ·¹ “à9ù¤‡9ÍÚ„š?GMèYÏí®94CS–ЦšÚ®Zx4Âm1FR©ñ¼…s~êôà u’%¢eøxN&hãl›ŽÐ”³Ä bÍjRj(¥Í—ötåô¶ šÔ™’1¥Eê ý®³¶£ãº²XÀì%Š˜M¦ÿQõÖýFA¿3ø1õ,M8ÞD‹‰½òŒ¡UNðŒEô‰ÏX âÃ|šqÔ#ê莠úä¥$Y= Ë’ $ÜìabZ¼ž¤¨\ž! ƒ>Ú“ÜÌŽž—s=>A–ÔdBDÆãª7AÕOÅ÷“ŠBCOô+¯R(«ÐQ9sjÌÕ>(ƒ.þ²æ0ìPzŠf;¦ð%Ïq7ÓZ‹tó-5åJíˆm.TIH:þ˜•õ!ìÊÊ÷û¾Þ¬Š}ü~ÆÅ. ¼’­¥›¬´÷‰©áûëK{ìÊ5Κç‘Bóÿa®ÈãLfm^Ÿ±ZþšÆ,[è{U‘ Ÿ v­ò¤gߺCþ¥9£+—VÏxq§†L5­`Œ×s†-hÚL ’Ü{þIâ•:QwÆ•ÃSxiÁ‘µ[^ê®æIµÏ/1DR²ººËdÚ¢V›óâð I#š#"ÃHt˜ûÖ^6×'õžÊ^Ƶì$cѡˈš‰™yMÒz„¢¤Œ«d¶ vÀöýuê«SrásetŠ|7 *–N*«h% ZjJÛLè•F¢ËñsWëÕ(¹xëZ Fë"?¡%Æœh]qfZwÆrÿóãSÿš9Å„õ(žS§ææÎ3Ì©’2dÉ‘ä¤K>óÜÙDW°§·ý¸çQB j&¥ŠÒS(£á§‡2š‰t³\©Ñ¡$“%qàGSÑDJkº XÙ9¸El0Œ 1Q¥C_Œ†t™c™´S¬DfDÛê Ë6(HËJPaÎX·H‹¤Á¤’ÁÕuöO¬£§ J}{ðuCÞªW³¯< Øk¡|Ò·úr%Ð7|¸áе†ôrƒøZÛvã;@,ì÷ Ö@F‰Û³¤ýt/  á®eÌ—v)×z¨·•°ëëTU³T§€™"N[Ü Oõf³€Ù¼E,ëžgå9@!=.s†[ÙyÆ—–‡Œç] $(¸áµd3§bÐsüœopÔ‰þ" X}Ýå’´)i!f…qÑf2i“éÛµH«-÷ÉÙa®ÌnæÔ+ECHÊ€îKæé! ·>in#:Ö‡kw(©þÏ3>õk*èB²ímV‡¡€¬Bd–MŸÚ<¡™Í¾FöÁËKráó7~›Ñ©Û÷­Q"9d¥òLßc繋«œàen”GØN¶ø·aÎÑå|áÆ«IÒ:íÕ>K½n<}9×ÔW¦ÄWêdWkåZ²LkÑÑ|˃å“×ÞB-˜²¼µÇÑІ’çÍ;$n_»À—m„¯êpïÆÓÌDÃî5ël÷^˪ØçLãî?õ$ŸåÕ”H:á,‡‡œ8u#ìQ øå{ßÉR:æ±ñƒ|ë/ý ¸ïÛ¿Èù·<É!Ë,óšjÊ2}~Üü øw½oæEsœí#|ð_ý˜€Ü*8öƒÏ3ÍZôë=zâ mþ+~—u®äµÿç°Ä¯ýôßâ·þÙ9¸{ ¾ËÀ¡àÔ‘K¼ü‘ÇHˆøü[ÜâTûE^ÿŽ?%!â·nü ¿ög?û0}´IرÂ/…¦É” <Í=\Äx‚ïúþÅuŽñÜøÿâ£?%¼üžÇxàåŸsá,3K^}~2û Ò”üQÿ[xþðJä”ûhh¯ ¸÷þÇ È8¨äÄSÞn~ÇúQlÍùí7³§×øÔÇßÈìß´#ƒþ_í|Óa[l²Î?eþ1dO’Õ<ÞóóÿáŸÿ6þÅ?ÿHàÌ}™Þúf•Vã¿z‡×öòøÔ¯õh#hn"Ѥ"´a "#r‰k쑺,ÚC–Ù0;äYf)±<×te*iÅ i$‰ÃUät³1s¿FMÇäÂgi4AÅ–I^„’hhíGýpS*TÓ ¿‚b3Þ†˜±i¶ÙŒèÐ`Æiq¹rB»ÁQV8¤æ|Ìûô8ÉU+q‘™ 9ï]¤PÛ[›d+a‚·ZPN<ŠaÀlÚdåÔ.Ó´MyÔjÀõÔG¤ÕuŽ=˜ƒ~ÖC(à¤Õ—š>Vs.,ó]­fðÙÓÙ˜&¨o*Ñ5…Ù–\wÌ1ãÁD|§Fן\†Oo£ÿKWŠò „´EñLˆêj6_v™Á¤ÊP¦Q#Æ+ ¼(ç`¸Æzëǽ½ ÕX ö–KÌFú7'7¾3­´Úp‰&$e…Žp‹k§ÉŒ1트òr¾È!+\çÙc­2&j‰ ‡f™Õ•]"uf4éû¹ðkk×Ú”ÓŠG2£É»g"s³8‚ö$=,[wH·r\¤gýyöŒwNŠûFAÿj·…¾·D:%Œ®¨Jj¯D‡––{ŠHd¤" !2¤6‘v± . ~Ä1á`æ|0L—Ùlm#3HG5öÅ:úš‡I5™ É.G–„5rD®}0ž$¹¢‡’¼0I;ŒÂ1! ¬PgÎnår8¥I貦ÂÈŒ±MŽ 1±Q½NÚ9uyè¥#¢dLE­D¥§´h¡Gi/©±É…{¬¹ ¡ÀòRœ©%J”øí„$oCz(IŠˆB*—·¡!Y:î’ …M1T›M5¸² “u«¥o;@ÞæŽ¨ê÷öƺ0•MÇB* ɪÈê—4ÆÏó*PJž°ÙV=cÃv"réQŠÜ l>Æ‚<—»=Ò9°ÍhT꣜€Bx#~"Z ‡Ò’q-(ŒÇ„J”Œi‹ˆÂ¨ŠÏ%³ÒàJˆ  ^gÎ!=ÆtX½£´µÿâS¿Öpæê5¸´MæÛ.J(L óÐ’’Vh≠WŠ ÌXó‰¦6¹KäožÛ‹8÷P…!<(,Ù+%$m“ cM¾a4C1Ïs¹@*MX–ø×ÔŽF6 ô†fÕÒëLHÂ] ‚&ÿ@ ù¥›|÷ñßasiÃ`Ùºõ9ÀHÁQÿ:ª®©3C”°+ב¢´‡4ch—F.æôhvƒDÔ˜„MvNn°,­LX’áªÙ§gúÜ”[„dtÌȺ¿ ½jÃSILX¦¶½MΊKÓ7¬‡´±ªI`ž„S”F±",º ôŠ>§²kÄ^ÀL6éË¥jãYh@sÏwªñÛæ,ÒAúM3E‰’‹î`ùW![ûÆí6änx.¹«fb áÙD>ãk;^Ú×¢$%8l·˜øM¦´ÀYKWhRBZLi8Ûéu@°”qZ]B^VäãÀ²Ÿëa-¦¸?@ ª^ Nþ)1ë6&®bvùNÈ4ìηˆj ilú·, ×xD*A Ӧˀ'yÚÕ(JkT¢Cj2®¼-Ík=„Ÿ …"65„g˜…u8k÷ÁÁRšqÚ¡¾:§§ú•öÞ/ ZÒz@ÌTƒiÝ`š‘Aò\‹¼ð¹~þÛMÆI—(J¨;ÅÇâjî1ÐjŸ܇s+[üIŠ6'«”LåLº8fÃõƒSøóŒ0Š9Õ~Ž(“VfR)­hŠx¹AÈ’ƒõ^4§¬(@X|ËLðË%4ݨO{í(ˆ9ЛèL‘„×F'Ö:»U0O£œ!¤¦Ãˆy@&W7ˆÏ7à <•ÜOÆÄÔÐHQÓ ­ÔŽn‹ÀÒõº‚WjÈ`8é1ßiÐöÆLWZŽcu'׿¸lí¯MAöäi¢»—ÜŒ<­4ÞV¾4©4æƒÖR•3’ –l÷&0• £e# :ý1zI Œ…Ü%A^0:Ë= ÅÓöë¾HñrC^„YFÚV”¥Ï,°sݹLïüž öYµ‘}¬ºdëœ]6*Æk•ÔÅ ˜Ðªˆ[;là“•YJ‹1‡b…qÙ¦,<:þï~‹_¸üs¶Ï$ƒAtæ”sŸ¢ô k1Ý•CúûkèXáyA7fvÐA%&U4;#L]“ŽëÃÙÐiðý=ö’|¡ûS)5Ò+)öDSÃPmÎycmÄïþÓo‚7wKLÛÐ>Ù§L<Œ€ ‘Ñi÷ñUNºL§1´±¥B¢}‰Ò%…ö8\aÛl’kŸX׸ ¾Ì‹å)´’H£¹WÂú‰7™Y$J-Éo;àMÈ»>ó F^zø"'r¼¥P§ÔãœÔ é›ÃYã#%£›=¤ÔŒNw)’ÔØýªîÌxªÑ—QPp´ —Fð‘C²(à€{˜v’.å¢PÁåN\¹v§ëÔÍœÍöM' ¶ˆŠU%YçRILÃþnóz±B`2– )lLö(Aå¡y¨Bõã Šºâ0]ÆŠ©ŽÑÏ©ù3. “°ÅÄ´0  iõ9û¬RcFQúäʧ&bšÃŒæ0e^*¦çšÖ½.ò¡%¡0$I“lRïÎ/(»ãClþõ6CJ*Ÿí ’q.aKX¯pEIDBÍr¬¬MS7vîâ“1DI†Î!È 0 ªÔÈÔ – …”øe‰4ÚB8s_hÈ“õ€a³I,jø*g¦êä&`îÂ` ‚Ðé—3gb³¸šÕE0}‰Wý=8E£qD@²³$ æ¤rŠñÒ/iÉ)Ǧ71Û ÚXw©ºÁ’20±]è²QR æ ¦èÈ®£ž*ÐM4šr¤‰ÁdUO¡Æh‚: t 騅@tíkC, V*3zÇFpf >¾ƒ™mÀqIîG-IÆIP’ñjY?B·<êíB¦ÓÒ³›Ýv'åÆðR”ˆÂ/×Îz¤"´s­Ö ¹ñØÏרùs›$…a¨;”£%-ª4ÖpD›¼ È‹€Ø«UÄ ‰ÆÂsãcßOXà/)uf•ŽvAp\ÂJ,yi‰»¬¡(¨g×å l˜ž¾³p–Òib¿¹ßÙ>QÓ B‚g 4¾.ªD•º‚T…}¹ûW@3M˜©sšô̱î|ÛSÇÛÓ!.#rXiš/©Á”TZn-$¥ð,üš{˜´–¡s ˆPÛý¬f Ù4"oÍíÏP¢Z_…ð¬“#Φ„Ì©»ìS+MuƒšP•v-/Ö GaÙõ¾©œ@¤ÖJ¹Ä’ck` 0!¹ÇˆN%ßT¥F–m$¹öÉë ‹<4€º@Ça,r%„qîÅKàj=qn–G;°? Ø;d¤;”Bã8ÕLŒÊ5?ÂvèS›pYæ¹±èƒt;i‹‰‰Ù÷.‘!ÂÓ)A bmɈu5³¾&DæÖ¯ ‹kă6t-1–ô\’:Rä Bä´°½Å„âKj"+Px’ØÔÉóm ñCL.©Ý_Rç]`´°Ï™ ´’˜f@†Î?¥n|û—­}ÍзÌM¶(9`•sZL*ï]Ë —ôŠ>o ‰¦ËÀJ܉-"ecz@âø"Ge^/…±0nnC{q·T‚ö-ñË+óŠ 274ë1"0èºÄYm¬‹–Óy¡7ŸÐÆw'ÎC–I©‘ 1ÄÔ+ƒŠ”}VÑeÛl²"ö)ðÙ-×9œ­p¾ù #Ýe{¶I¤„Ñ5kÞ€øV&V‚xUIĤIrðDIKNðüŒ,iaYŸbRAzØDxÿlD$_hÙ ˆaÑÖèx0]R˜%0W”%Ë5$ø%¼æE‰èÚ]qX_B¼ÌÃäËðÑ]ØZ§üo…òÙ¬ÓëpTÝ`Vk‘å™ hÈªÐÆ'ìFä™ÒÙDH[Œ-9N-¡µµì]á€Óâ2>Ïrž¾¨Q3ÎðcÚ65MØÃàõâF Ï£Á”€¬ZW[lÓaÄ+Ô˜“a79Š¢à$™›Kzdî@¹(övSœã‹¡ô²Ü=Ä7dkwVÐ3ñ÷ïÛb“XDÄ[#kv¦-š ¾ ÖWÔÎ$cØvHˆØá&{¬Ñã1"“ãó ¾ÈÁòá© u#dÉ)q…ƒÚ ×gSl³³´^u›¥Íi$ÉOSlºzH,kì‹Ubj õ{“uª‡ôJ泓v‹ÔDÈ\42®p’²TÌË:Riní#Ùopéèyž©ßË¥g/ Qv,œxxœÓgžå5ÛŸãÕÿÛ Äë4ù–âÞè"¿ûh‹ ÏOÎrù™»!‘<3[æÅ­)½ðyÚÿ>E¤ðªxœòÉðìÏž>ç ” R”6§A·Ø¹q”ÆÍ˜cŸ? éM˜ÒúÖ »b+o;ÉIžCÅ®^cª› ?.¹öw6Îrbi×_ h(v¾} ?ÈyøÂ³}nà‰ù^Üdwxâ!Ã7çñ:ÿ ”3Eþ_‡_¿Î¹à"Çî¿Î”&§øÒ—¤¶ÌüñöŒòð§ý1GîÚå[ýCüö\%~…üáãßi]ì2ƒyÆ£?8j÷¹|•ñºŸÿ 9>##z{$D|fòz³e÷ÖøçŸø»Ð(y…ùµ;êг¯·ºtäÔ]ŒÀªŽVºýRQâ›) m)ZÚ«(ë\Šg#}…K39ä¡°Ð[i3ŽÝ`ÎnŽ©¼í…ŽÝnî —©Ÿ„ˆ) "'c²§U¯‚¬Ô*t®qÖä`P,ø6KuH¼Ófx|‰QÖevs‰¬ž2Ú[¨%fÆz¹ÏÁŒ%e/@§ “HòiHa<Œ–`$¦Pä&ÀÌìÑ’üxHLäXð`V$f$mHC Jåƒo¬.·º£0-g%›‚i ÊÌÇi¿¾A³Ïí]ß@ÜíC]PjR(ÊBaFi³Fž¨vnÌD •=튨Dø%efs‹Â##üzŽnIŒ˜Ê U%&ªˆ5¾ëµ|r„Ðxª¨ ƒJÇŠ/ŒG–…„aJ)$…±¡ 32'¢Fìúî°Br|bS#V¹ðŠHÝüÕ†ÆGp3æÎ½ÜÅ7dkwÜ¢ËMwÁΦ5 Br;¨%w;ÒKÖ¤íReÍ"wBJbŒ/¨‹ X²(™“o”ÎrØs”gG/Êδ„"A‘©¤Bw¦4«x^!R (C@Faó¢NQøäÓ€¢åQÌëÌæMD­$)#D×£ch%ÉË€QÒÅ’øj =ñˆË&£“KÌŸiÀ†•š©B/{lr VPum(3ðú¿S"›š952PB`ž‘ÄiӸƔc¶Ø)èʬÒ`F¬#fi“l‰d`UJ'0D^âvŘÖ"jøøqŒò0O ¯1¨@#Œa)c „~JXKn™¼ÕŒârˆ~AÀŠ%Ë)¥–Ô€©Ë´÷dNHJ©ÅÀg6ë’Nlvüì°eÑ‘H eR5f)>sÓ€‰Àô³´.¥ôX\r· ¯>™ò1Ê‘(Û}èÁТ–fb vr®u½ R0í—0Ø!“GôM;y,s&~“Õ쀺IRûá,£±›¡C‰Ð µÀÛ7U±Æhï‹Ü½ª7;µae^…§H¼À:9% ª®9d™%PÜr&#kì“Ñg™.C6ØAº†Ås,!+äÇ*MóHvæK÷¯²êï#·`?Ya¨/¡la§¹ >eàÚjÇôfÑ(±$íG¼xën¼zFýˆMHvšÈVS{Ч4dÏ6÷k[ s‰hj¢ SŠ, ˜˜™Dœ·ór¦ ‡Ñ#S”_0´Ð×í“§FäAHyÔ£¼Úƒì .™0ÿr‹á +0Ð5ˆö7—]¢¥ «k;äx<—eª›dYÈ´ß墺‡Ü÷iˆ¥V<¯ïbKÝtnl–g°DŸÈψ.Oq_và‰‚‰lq™ÓŒiÓ`ŠDóÜü¡—°©¶-çÁØ —DØì€ë«Üs½q IDATþ†tÉñÑá8׈©‘p•Î aFàB‚"šÌÃuŽ‹oÈÖþªo¥T|ìÜ·’D膄ÀÁµM aWR"æøan¯ÔZ‰š””‘âÁåÇ)jöЙ€˜ &¦ÅPX¿ˆEèÓ" !dEõYc¯B欌6`™C:Œh2«ˆe]d„Ôˆ9’ns=Üa™>M=e#Û£œúL'MôÜCì[½´Fâ rdPP!+û»¨vÁB¯ þ”†7¥0’ó<Ö“^1zã ‹rÜ‚ µÃï7…¸Zßt9ðsîæ[lSàqŒë+ä³TÕPæ£Þ·ã›œŽè³!n0§Á ûlÑ!"a•}›’é?Çô´ÐÚfúUËˆÈ +9ÅÀƒKã:ˆ;¦$[!Ù–SK0¼¥”i·Jû˜-‡®Ó&:qP~ ÁnºÂnwäÄሱ¬Ê £i¨9a$«lë%‹P.FìÆËLÒ*IË'=Ý ívԔɤJ7[À …¶bA¢°ö­¦Á–\™ÁR]¬gø"±€Æ¢F_7¬Í-5SªŒpÈXe“\ GEÁ!®”ˆmA!.Ëz› ¹J…1Š‚!5št9ìÒô÷Xf‡g$v3‚ÝÔNÁ4V'b©Œ;—ˆb »¡Œ[¾]³±TÒâ-¿î(×l’`Ø„_‰zî…üÏ¥qøÈEúÔy ï'dÊÍéYnÒç1u÷>½ø Ò|]ôÿq!м˜÷Ïí«ŸÉÃøÓ‚•‹{ˆ)ô݇»—êÏk~˜×ø÷1¢Ê!®ršÇæâ^ÉQs…S çà9ð¢?ÿs>ôà¿áàÝ?û­ÿ7m—1Žp‰*C^¹÷^Ž6ìÔå”ý¹~öðòÍé£.¾Ñ¼›Ûxˆ—º4éñüìxÎô“ökFöºüãÊsxщ¿Æ«&¼ ñAná1" j HXpºü‡ö»‘9Ö GÂÄ ¹ýùg¯ÞdÍlòü!1· ÐMðyÅîûl±ÝÑq¾ç«ÞÎ]û>ª ¹“O‘am–ŸÅƒø$¼L¼µî¶5æ9gsÌ/·®Óœ¥ø#wó¥Š+ ©ñé»¶³ŠŠ)A–àù Ž)ðòœ ²S]@`»í^Ÿ¤â‚/.ý Š! bÛÌA1LËC¯ÁxeGžÛOËŽ™Cì¾CX·®¦Û--2Sú4R£Â˜,¢ù,'­ò{,”¶~ZôR£O³D¬N¸ÈѹZÔªÜ`=]c¨k8¢àˆwÑòM Wd„rB{Ð!‰ƒœX$¹¨X Pº¢•äÀ±«Œ®ðdÿÃõâ…˜F£CÚ ð*S¼ Å)Õµ.q1éÕiÜ£îõuâ$dµ±Ní¶½É®—Ð{Œ– vŸ8@šøˆ>´n_§ì‘] È/x–ç€w§!ÏÛ¿¶ ·¯¡îÑÔ˜¾ÝÇ;iwxÄèL‹,õðê1(ÃäB )ÔJFm¹ÇöC‡HÒ·š2-ÆèÔ!Î#/¡vé÷š\ÈŽã -e»£ª14uÞ½ éç(©9étQA Mß4ˆœ1WúÇW*,;,©Vä¬RCNŠ3„L9Ïqº´h–l‰M ’ˆ'Õ&*¢§›ÔÄcâWÔ!DYxFÄ$æ:Aq¹Â¤î¿p&¾9Š ÄUKŒ•i¦ žƒç¬J [2e2 )ËħçF.v­â#Œ¶+@aW$å£[&æýµÛlÿïsM¢y?*P}֣طZÈÊ÷mÀÄ ™¢Qø¤8dHi®ý¿ûF¤¥Ý©"åƉ&˜­—´ƒ"ÅHÈÍ5#“2íÎÁÀªdóÛoUSe‚'3[”(`¥ëÅ¥MºFȃ(¡~1Â1s£™Ù÷åx2Õ˜ª`¢¢@xG®zúרÒo= ÉFYÅÅsÓùå“VMp¦Ü;3¹Q‚$÷™f!™p¯é; Hñæ+¢iñWt½¼m»ÊÌÍmœòªHm3]0ÿú³¥1¥ÿÊúT„LDˆolOqÉ\#$™q(‰¤ÈÌR”„ÑÄ¡ýeÀxÙÐä(œØRdÕ@ÝØÎ<-otU&t»¸·èç¼¼Áköõ\« —âá+@2%¤RÂ7­9HeŽ0ù³H|Rty£YÝ÷´ÜÓZaÛÙ¡wDnw·NŒOBoÚb¤khaÁV©qÉŒC*|LGY<.«õ¡$÷ìµA †ý&ÝhL^8WcrÉpÐD<≋ð5¹ð˜ê ºP˜B’V¸'OŒ´hc]!Ï’I@šz¤Ý¥4$:L'N”á6SŠÐT`rIqɃ¶;—áü:¦¶ËvEŶC!½ù®©È=ƦiGû€ÙQŒZMŠõRxbàÓ ¨O1¹$Û èN— 8$=‡MÖhU{ ÜÓiHÚ !Ðx*¡×lÒµ¨„#¦EÈpTGLÁYÈ0F°—µÑޤ—6©C¦",¥±<~å0ÉC§`l*8&Ç•©ö0FàŠt>š/J¥1Œ¸Na™ÌEü Õ)l”ŸL&<üðÃ乜:uŠ­­-ºÝ.RJî¸ã¢(b{{›óçÏsà 7Ðn·ÿ·Læ¾Nùù+ÿ™+­5\r÷TÆuöÜ6:ÖèH “š ±ˆ‰™˜ˆï~ò÷ÉQÄ〤ç#MR÷‰Ý4s¹ò‡˜˜ˆƒâ wó ô9¸»Á^g‘éM! tðÈ8ÊcÖSÂh„°Î‰‚ò’–Ucˆ9e­u•ÐÄtE U-Ô[ ÷x+sŒ–x«)FŒ+PMrL!ƈ 9¢P;g¤móqS‰ š”Øˆ'á®ÁGxû¿ý¤©Ç=úíì}°M»µËüÚû¬4ö‚ùàÆ®ãì¬-^å{~% 6Ë\0G9$®ÏéqgŠYò·«-O0²àû^ñ+ìª6ñ^…ßx×ÿA!ß÷¢_åè‹8eA¬LA¼êÑÿÊ€0Mù¶g¾“[ôCdGüÑ›¿–ìÔN>ûIž{ú#DLØ\iÓkV eÌ¡."ÕÜÓø÷y¯atS?ýø·òÞ“ß@«Ùå;–IhdljQÄTúSŒ+r“ï]y;JÔ„m¶šôJφ‹ÎgZGðIY>Õ“š4¼ªñ߈CŸ½¬ÍÒ³âm±b¶X C$&œ;yˆÑÁx ŒÆr^Ôü 7ŠÇÑSÉÏ7¢kŠ{Ž˜;O?ˆF²î®°»¸@¥9æø‹¯ $ð™ëIèâ‹Nèœ={ÖÖ…JqÛm·ñ裒¦)Qñ¬g= €'Ÿ|’ÑhÄ­·ÞŠïûŸ?¡k­yó›ßÌáÇyõ«_Í;ßùN{ì1VVVø¡ú!†Ã!o}ë[IÓ”{ï½—{ï½wþ¡ŽYІj1¦2NÈ|I¬TÖEeéŒ ÉY´'0.¨‰A¤ ›,üqnÇO5¬ÇpŒÕ'7e'.AvÊŠ´MÐß·¬Pà3ÂZBÐL¾B IÍ ­£’sûÌ&]"&L ¨—Úæ ðöõ‚1 &D´èÎ÷£) Ñ# ݨ5ÿ7IAŠOŸ…‘È㮓ã9)Ú’$ X÷ñWGhåPYèC­ÆU ¤f<©âµÇÕGæ8&%)–[ £ ŽÊY v¨0f·X¤®äRÑ ö˜è ºÄ½:­;xNÊöÕUŒ¶zô•v}NB–{L.U‘µç6A>YBzn9`ÝRÈÎùd»¾­N›†bâ0ºÔ´€<@¯(ºz™rÁ…É%“ÇjÄ«Œ/1.Œ¦ŽírB‹êì´¸:>¸°··L!$Ž““ C.l K|â¥>yêïVɃV‚~ÚD¥†‰_e’‡¤®ÇyˆªrÞg#^£æèvÚ\¼„# võ"¹vˆeˆ6’˜ˆÍR­Œ’ÉpžãàÌõÜ3…H/Ø¡EA¿ß'MSî»ï>Þüæ7ó–·¼…×¾öµ8ŽCQ ÞøÆ7ò’—¼„ßüÍßäíoûç=¨_*N‡×¾öµ¼å-oáèÑ£üÌÏü I’pï½÷òÒ—¾”‡zˆw½ë]h­ù‘ùVWWç€Ø:ærëˆé-7Øb…mV(„LçRHÌ„EÁÀÔùé½· w¥ £²[*‘ð"Ð\¸|ŒPÇôŽ6Yeƒ]2í²7Yd »’™±Ì6=Z¸"E–†0²¤:©2 fig£>®É‹ q– b­µnAt¥ö|†Kµ˜àf¹Q´Æc’ÛÐÔ÷bšÍÅ6m9¤šÆPøûº×Ë¡ªq&¥ G½Àjk›±Œøÿþ„¢àÇXg­\‡TÑ(*j•úšõ92Á•S×åN÷!xht'´õ*–Nnð,ç“´Ù³zkm(µ)—J¥Âí·ßŽRŠóçÏ#¥$Š">úÑr÷ÝwóªW½Š'NðÐC}IwÚ¿õ[¿EL&þøÿ˜Ó§Oó¦7½‰ßû½ßc4ñŽw¼ƒïÿþïçÕ¯~5¿ø‹¿øôižçˉœÜVçüñ™IÏl”ž”ì„L¸DÍ!¾œâ¦)®Nq¢ Çä8£ågh ZK2íY¶†q(”µî5i9j.ì 4×Z+‹G1Ž;·|î‘‹˜vMf9Ɇ¹W¸k2[žxnGõ^–¡bƒ—èTâ5•nŠ*ôØRÇŠB’%.ÅXAVʘNfªÐ±B'’̱~ì12Òx^‚k2²Â%)|Œ±ÖÁ.)LÙÈ%‰}&¥5X–OVxè\‘åN¡©ê¢ÐxyŽÊ5"ŒMDIèã¹ð*\í“SØÝ¯.¬­µ.En4 |s¢Žåˆ]’Ô'M}Bc§žIñ´uÝÄ”jµ@c™Æä ÔÚ6B…Æ$ ¨sº°Ö’¬pÉ´‹É%:·JÄ\•LèX²»»jíZ æ²ÀD®Œ¬àµàݰ²¯ößÏ”€žäKsôŽÝ}Æ nÌ)r\¸Ûàd)Ùß[óN+n±ëÃy(Z.ÎBÎÔ¸øË#’ÍÉÙ:ÂÜg§˜T2ºÐ$:1À;“\©0xÂŽíe%'`„ ›,Òl H•CG·IÓ•d„• gº§(2I;Ú#_m’.N)ŒƒƒÍÒKp¦W¨DcZñuÔÌÏ¥å9|üoa<„'žxÚKù—ÉË^ö2<Ïãç~îç¨T*üú¯ÿ:£Ñˆét:³/..²··÷%›ÌÿþïÿžF£ÁM7ÝÀ#<Âk^ójµAÐétèõz;v !çλvÉ„â÷&/$Ÿ(ü… ­(Á%c‘]ôiO:ÔRS#rG‘)‡z:bLÄ‘»¾žõ»VK“'Í« ¨“à±É*»´9;º‰'ÏßÊc“ÛxáMMëá ú;¯„£ Ÿ•Ý6`r©‰7šâ®%hG’t#¨h´+1[þâ„o¿åÿåwžøè€"Æb”ʹ¡ú.G¸„flëeŽ×Î#kš1¾bñã<&nÁ Pk.p+Õ>§WávæAî$Á§Ñî‘°@‡[nxœÊãS>©n#&ä^õK´ÙãÁþ³ø·ÿío „æ¿ÙañÐ&ìƳ–?Á±;ÿþ˜ˆ yùùØÞ ÐOHþGþÍöìù oÍÑ;’ÛïúQs€Bój~›S<ÎÛ6hÿö6[¬ðkû?ù/÷³xЏ_{ŠÛ_ö(¸“iÐ'hù±ÿòtYà“ïº7½âÐh³ú³ç™ô©Ë!Ïp?M‹.Ël[ļþ¦3hRƒ&ß÷Îß–Ÿy•ƒÏ¸€ ÂMj 8ÄU¾ß܇k2>ð©—ñO~?4 ómž¡ä³ÒP ¦†h!hÈ>Æ„iŒëeè\a|òr/%y8nB9Õ1oDEŽ˜J¿Ô…68nNP1\•!lC8¼1¾HÈ…cwÅž•˜Ô…Äw˧\•ÙUE’2¡ºyàbê “«&îÃ#D!´ÚÐ_‡ÉTJå¤jùz!f| ûÇ5öÀ%Ve ß e1Ë ¿e05‰WI𣠉“¡«S²J€Ðà˜'Ê(´ÄQ©U­k¡ÑC)5ÂÑVñK ×êâ…ÂU JAjFY Gåø*!/\dPà¸Ú©qÜ‚"+0;{è`‘$×™Ð%¤Ÿ}°=¸ë%öé… ûµá=ïy÷ÝwÀ<>ÿùÏçá‡æÙÏ~6ýèG¸xñ"÷ÜsÏ—d2Ï󜷾õ­¼êU¯âÃþ0KKK(¥æ±¢( \×EJIQ!PJ=Ól÷ÉðP‘O)¹½ßÉçgÏ((„Ukœá…Žr±TlÔs}«#P)µÂ-NÅÂ*¿!èŽÚ‡rëHX¾O{˜±ÅåH¥™vCŠ‘BhiùÊCA8ì-´R#ý]Ë›v’²C¶q#Ç™›ÍFòS2™ƒðfºÆä%ðl¦Pé—šî9Љ ‰ªSkŒa™mZtY0;+À‹­Ò‚åÒ+¦ó˜%),¦(36Žê2>º ¢€'­{ŽSÂÒ¬b\ƒ>CjÈ®˜¢RRê†PLU©¦I)º#Pè|ªñ[·Û@½±G(¦Gã‰d®ñá—Êœ¶™ Hkm§ª‰¥› G•‚Ov¢*„¡ Ë,•œñôÚšu¦—?ÃÐ¥Øs*ϧ."±MŸUï“Æa*Â9¸RÒªbd•D“Ä®ËX'”FLÇ :S†øûÑÉ[K?O,ÀW}ƒ}¾s-Vœ9s†(ŠX[[Ãqn¼ñÆyÌØÚÚbqq‘íímÂ0DkMµZýÜ„þò—¿œõõuyä\×妛nâ/þâ/xòÉ'yÿûßÏýØQ«Õx÷»ßÍK_úRò<Ÿn¸î¼ÃàN@ŒA” iθ€ÜŠºUŽggˆõ|ߘ}ÿól‚TïKþQ™Ø®¹î”»÷9¬Ï€—¤ÔÓøM§èТXCbë°S"9ÝòF›ù1×â•h×™µ&˜ÒÔ)š.“y6w«2šl+Œqd>×:.rÇîÊ*S•Û®2u)¦.n%Eù)5@EŒ-€V¦F2MC”S •Ι&!ÒË©;]bâû15ž;&UÅ8…a¬«ôãÙ$ V””[ŠS€SÉhÖö˜†ãí:òV«‰Ÿ>`6¤½ž/ kÃ…uPá@™Ð§ Q”Æe¨Ø“ÐV*3ˆ3‚bÕ#ö¬›T`z¥Rˆ†t7`’V˜*—É^•"s‘K9ºã2Ý«PŒ\d¥`|± Ñ,X$=pÀµ‚,Æ¡Õáö[˜ ‡4¬ ÝYט±C'YÂwcôØ!!B7$"48a…K~ân²åüíùëLèepùgçlמ>òÈ#¬¬¬°´´Dš¦üôOÿ4ÆÖ××yÃÞÀáǹÿþûyãßHQÜ|óÍ_’ ]JÉÿð3Nq]ß÷yñ‹_Ìý÷ßOQ(¥h·Û=z”¿þ뿦Óéð‚¼àÚ× ¸û&ˆc’b‡p{Š*rB5%J&„½˜J‘ ƒ”9ÊѸˆÂq\ÓݹŒpŽš›~XÑ" 4…:vÉ•²J„ÍœÖWì¢s ¨:CL½‹q aãº)A#¥p%iîcAVSv/Q©À1äÊa´Þ ™f\á(Z*F•Ú• DÔ )|IR öÒE&ã*RH·àª{„aÑ >Yäñ¸¸#u=$5‹Þ'²÷qºûÉbm‹¦êrØ¿Ìòí¹D4½Ú$YÄååcôë-Žë ¬ím#sÍñöYžqäS¤Êg ê a¨ëd¡"•![ý5ªÉ•5W©ŠèBØŒ-‹çðcxiBøìv—©ŸìaÃ8¯Gúë7çÁ1Œ[!cYáð±‹,ü» oo›É?eýq(Ù\[cäU¹1;Ã-Óuw{· IDAT'ɵC¯Õ"rcöœ]ô)×®D"Áöú…–$yˆï¦(ÏÐØœ€kX­lpü®3¨"§¿Ð Ë]dS3ÞŠ …‹k'¨‡]œDSß›PWŽº—¹£ñ úØÕmDC@ÝÏ,¢|Í´îáW§$£g(¨Œ„«xæ­Û5kKpå¶ÃGÐï7©!•‡Ù8ö EÛÅ“×wpÒ/"é—ï}ï{ùÚ¯ýZÇá©§žâïxǼh¾õÖ[ùÎïüNÞö¶·Q­V¹çž{¨ÕjŸ›ÐOŸ>ÍéÓ§9uêÏ~ö³9uê¯ýëù›¿ù¾÷{¿—“'OrüøqÇ™ïÖŸÚqÒhdl«:« "7ˆÔ ËJ[tËd-JÛ¨LÈ3hÞ —îKôq‰ÉA¹KÏÊÇ×h.¸Y)Rd:ÀçR×¥^ ˆäÄJ¸ Ë>h®ˆ)› E×vPîÔ#ê çŠe9§·ù$Œ©p”‹T³Â]ZóN¦%ì™”u*bL„EÄïøKì…‹¬x›aæ:äØdIî 0ìùm|‘ [EgÆåª³ÆIuŽDøÄ„´èrgØbÙ*:;Ëî6£ ŠÑ‚]w‘ãî9ê¢ÏãÞ- ;M*fB¨bT¨Yö¶Èš&w tAsu—~¼ÈtÙkzМ_„¿» _¹ '\6™Ïð èuÇvè+ö$¦c,;( 1× šÎÒ”4¨"”fÚeò­€è}L.˜n¹¤à‚Yˆ• ÝspWbœå)Ó­º¯`¢,Ë!)ïÖÑM¢˜i¥‚j'ä]ŸµÕ èDÑ-0F¨FFe±š8 JDc†&S ¯—7žï»w¿@B¿å–[øå_þeÛÃ{ÞjcÄÌÜnVàïa»¢é¾‚¾fùÙ¦ æpHÃé“ ks ”ÂP>5†,ÐaÝ[e°Ø _´ósÍ?ðéøv*Ïê¢LA¨'RWá ©±ÀÚsZ›UŠ´.ˆ‡ôà &y…$ è>v€iW0Ô V²à$ˆVŽé;\jœÀ‰4Ó›.®Ÿ$íYí §•RhÅúègWo`Ë]a=_Cx~ž1ä.§Ýe^í¾‹¯ØúH¸,c,„»´Ÿ³ŽCA÷.så}ÇABï+–Q§r‚žæÄS—a·~Ý£ìh2\­ñ„¹ Ä]ŸÑ™%LGpéÒ CcÜçîÓQ“C6W–š¦\8ý1¢ÍÎcKd‡ÝþA6ÏÄhÉ-éâýLœ€OÕOS“nÞE˜Rñàòë¾Ó‡VYÿ®#¨FÊKœ¿ãeÉÈc‡I% éöèV[Ä÷$\yø8Wÿì(¸°Ù:U¨† ÀCϹÌÉç?Fkö4!B^ÎýÏ€þñžç¡j9¾HXütŸ%w‡œãî{þ‰ú*ç‹LTžü¿î€F©pÒ@_`ö<Ý ¾Ô»õI÷X‹µch÷ÝÅør“qµÉŸ}ë+ ¼ÔÒ³¨Ð)Fšõ=„1LDÈ ·€©J2_èŸm°{i=ví ¯‡ÊÇÃ>ÜÒ†ÿ± ÐsðDYx k…å­?f•¿ÄÍ ³‚â!Ǿߊ@k‡d£WAŸV„‹F d‚É#M;F”…Ä:˜M Uç`B>ñÈ/{˜]…hÖÈf"0™$X’%.ø6UŽôÙ鬨‘ “6'Œ®4˜ú(C»µÍÞæ I¬(bÃîe9½þ=ùâºRêiIúóRMçik¬/õYbøê¯þê§½V¯×ùŽïøŽÏ¸º³1dYìÉ2ÌxÛ3~õl*€ð LR|‘"$û|Ïí4m6BÖ¨’^jæ”Ô¢p(2ëbèK{.gžà)>MŸ¦åE· ˆ=Õ K|tæ€4ˆšÁd„óÂÞ÷žÒoÂÄå¿¡#¡Fy9Æ—è]…h t$H'>ÒhtáO«tS.ÔH]S6=˜2™ñä *jL&¨—ñQ‚¬d¶ªÛkX(ë ß§Áîh¡4éÔ‡¨Ïµ±ö,×䲎.ö’˜ ¼&¤`¸½@1p #‘Í]-½Å•˜Zå…Cž»LU€¸¥ ŸœÀ“=L\'÷|kÀ2[ÍËï6å5Ö¤¨¤°Eœ 4Ê oŒëšyc:í*1M»j•`¦‚¼ããE¹ýù|{¿ËXÇ•Gçá¨áëò> ­ÔxLHRÊGK4Žå«ös¼ ¡pëÓu3_ NPÆÙÙÒÎóž–sÃ0ü\úç`Àü¯k¹_ÂÒœfûñr)ÒkAŸ= ]þ€“}IØ-+˜×T£f;uµ¯ŠŸÝKûFî³ š• ~bw^š[OqÇ HÌöVÅ<OKíæZiåhâú4æ û=||R:%"·Oƒ c†%¢}@5®ÎÑð LiЧ’HRéi²Ì%1> N%m’XdlïãºÏ´Éƒroï’±*6Ù`—t>rìÑ(‘ùv\?ÒVÂ269]Î#„íòøh-©è 15¶ö µËÂÚ&IP}{W7µPÜ*¯©ÜéÃöüÕ&ܶUE©ÀcÅg'äÝÓ-`–2—ö4ã²ËÀõ3šÍ=zYS—dŸö`C Wr›G¤«ùÐGé¿:e²g]‘ÖM-g rG±x`“a¿Éˆ·šà®Ìè?²„jäTnZ•>¿   º©¹&Û bJsqý =ýü—?>7¸Í&pIY˜gå™ßŲ*fÁÝ-ŸoÛÏ÷Ÿ,XZêá¬ZgÏÉ‹ >Éü¼,Ð)"»¿‹ '›g¸É=2ß{[E¸|nÙ< >Wì‰&“¹ù²·…ï% u yŒwêä™C‘{xÇ'䱇n dÅ`|ƒ’‰¨P¹©‹UÉzŒæ) #Hâ »7®0üd Ù6˜¾Àô$ùaŸÏœ¸“«j•ã/ Þˆ<Š9V½Ìj}—ŒÉѺm|àȦ ®1OÚ£=Np–C¨ƦJìG¤-ÁÃnƒ´ÀÈØëª ¢Æ;y¥Š2E4UääÃUpõ©cì<°†î(Š›ˆÀ R¿ÒpÚyŒÛÝñDÆ·5Hpóxóû¸¡ KÚ ¦†Õã›d%FàWHñè.­À±2w„V)T”Ues¡~jH›]B¦¬²Î”€^Ô†ÃöŒ™Ç•Í9U1Ï'žJXbWds`?÷N»»çËÇÔ>ªPs+ÿœàó8§ÈpqnÍqž‘Plx¤‹0cqZî×7rÿ’–¡VvÖ³Ú|ÖÁTû*r±ïóÆeU®÷%r±o$¿PF½oÏÞÜ÷53ðÇlDço2œ‰¦ (2—Ä÷çv§)!+ÀÏ„ £¹É‡Àà—£¼™|è,LË.¸A§ÜUF¥ ¬5§±úÄÙ\ç; |\‘YΫ«íaÿ”—1}¥ƒØt®E=+(fžÉ> u1˜ˆPc8×CßÁµ´6a¹§’@MIµ‡¶ÚœJIaAèMȵƒ)$Ò+pRŠi€)J}ítߪcK@-€•<±Û@ÛK zÓÅìÚ eZPx®=¤ÛqIû;܃ô²Ïž¿Dº‘{ ötAk‡ñ庭 ò¶$¿`÷è3ÍâŠK±áBMƒ=od"BCÒȵGª\DM£'ãi•±® w]DÓ tA·Ó&ÛŽìø>íb™–‰®“‹²olüªî/|V¡3YJ÷³|›e6IL®]…© \“!¥&`JR:ë¹dŒ¨–Æ<š¢T|S¡¡†4°hò—*#öXØ'•Qe„¢`TZ,«š ëé«„N}qV±ïo\òб ´‘e\Èjc ìj´-#Æ)¦äãÀ É Ì®¢ˆ¯1v ÇbILKÚ˜XXc#ájürÚPˆ2T×Ë88öy .¤\L‰ˆÉ„ÇTø~Œ¤…A9²WØ"ÀXáDFåõsÉëºßGQÐÍÇ×djGÌ'A"}$9U1¶1tU[€meìÀN¾nÐ3H­‰KûØ™{R” n‹QÑ6l–Í€W¤øeÃ5kΔ*쵓åÄGî»§ d™K—1VtÊ'a(jpÀØ3{FØIE9°4hS ÍÜW`ÐG ÂÉ0xV7þò¾¸øÅ±Ù¿²„nÆeå½["WÊ»UÔjyáž*ëåŸ}t·¬Æ»e²OËq¾Z,w÷}Ça™,J€1°+¡!49N’Õ§ìU4¦#Æ2‘#¯Bd&TÒ Ê·.K–.q…‡Mº´¨Óç*‡04æ.³Ã•ã°@‡]vXb6G¹P&dmÕÈr—£ÞEÚbª²Ê®iq%?̲³…š c‚R)$¦@²ÅZtæ ½r$x”S ã¹6õŒCÝ}&¥aÅŽ^â6õi|™p«ªt$»Â­î#ô[ VÅ1!gó“bªÞˆKéIâO×ÀõM9º/0çKiÆ÷„pVØNýÈ*´,CñdIy;l¬û#ÀQ_i˜³eqs9É1‚ä\„Y6˜u wdE£7$t$"ÔˆvHxB"Žxǧd}}ÖúË«ZŽs !$ºbµY—ä…Oþ ŸÆWn!„Á$ŽHIM1™ ¾ØaÔià­O¯Ê¥½cœ(Ü믺¿Ü¡__œÐ‚ËŸrH¦I0ÿÞf×59kúb‡F¥Ç¦{˜CKíV®F M“!1MzãTísõôQŒÑc1ñ™*¡;aª}&Ò:f¶Ù›ûs´è0¡ÂÑ¥sx•˜¼î“g$ 'šØäB•¹Õ6n'8G‚G¥ABÀ m‘o…p'ˆ'¯åþÅÜ¿$ºh9lÙ.“µWV‘Y™¬æ¿|ݹVU=-±×ÊÄí_µöÿ‡ûÞ§Ø×1¹0^ É–%}¯N53öBú²NìG DWÚ¶`*B\?e@£ÜÃY"XE©M†ÔXg¬Ô‹a)Û,Ïm8‡Ô¬ø.QÙ=Û%kÉN¾Há*:,à‘0¤N?¯ãˆU|'™ßD}åμ .wõSs©Zd6{´ËN>¡K‹iÑC£èÒbJH!™réÒÄ#c·XbIí` ɦ\ag¼BºäR‘ŸQ·Á0n‘ž ìu÷ ¸ ¬Ì¨œ¶Iƒ>‹ì”Ø•”ÅKÔrËÆYVnRaÄÙ§É¥d±7ÀÝ+`âŠm2LÄ…2þqÉ`êX'¹–BšŠ½_ÄG°¬Õ²i¹TÆÄOÛÏûµÞ÷qï·¿Óqø«Ås·ÿ¡˜ðmü! §Ô¯pª~–ÌU¨®Fn\½ïúî£Á€Ãò27p† !Ïåï­oUžÉÃ(nؼD¸•Ò¯×øÊoû0ø†—È÷óÝâwhžÉCáÒ|šYeÄáê7·ÎA ¾®ñ>ºòlngx§ÿm8¸"ã WY Ãê¿Ãã+Ö óÃîßÃÉïî*ÿY¾‰Ã\Â/÷áKìò-ü)/Ìþ10е,©Õ~÷MßF‹B¼ˆrµtÉ\ñ>ίxHðT†Üwø‹ÿð5b²È¹J›½ùïü7ú?h(ëñBƒ|ÌðOwßÉ_-¿O$H4+ÞsOÒ Ïð6Žî®£Sÿ™ÖàíüôÿÞ#wãZ u®¹ ©òfMö}Ó3Å·™×q±/8ŽË×g p3ÓH†khöy¡îß Ðž ™tH…Kª¬Ì§Q’1AÉ£œ–s=+íªÊѺÅ¥xŒ‰0s¾«šs5’!5"$Y)ú?ó]ŸÔìxÈehÇp,ˆ$+•ëf†vOžcM:´KËQæ]ƒ¢(~Ý¢.˽ýŒ¿G›¼”¦Õ%°eæ”díC}ËS×9C·ÂÀ4ˆ‹ˆN±@!%ã¢Ât‘v|ˆå5þ꺸6VžîÃ@$ÀáεáìU¨´ÓSŽ×ó² ˘û³S㚦@\â^|ÊØß/Xþk§ü]g Ç’?IŸ`és…ý\¹än€ñ ù†}0‘ý^&*ø‘iÜJJ±çC #¯EXï“öË•LªÐ×k}QZñåþy/Û3]{ÄÝ%ÒF@(p Q®ÁDDŸ:è26¼ð*)“Їï¤$ÊŠVÂÚ¤.0.ÝV®9&$sž›”¦šˆ11Qi£šà‘Ì©ªùÌ0E ÛiDÄDÅ7)ˆöÄL5±ÜA3,‹Ù°<#2.¥eÌ^ÛÓÒ/_÷Ê¿ÏX>]{vŠuAòL :ßfRÄ ®ÛpžzŒ¼*Ù$d°_Ç¿-c˜Ô¡ÍS»VóŸaÙäiîÆ§`B<ƒa{4©0fFTÆŽ³ÅLè„=R"n²Ê$ŒiÈ!ñ|Jì'¨¼DV4¢eRVS”_bj’º7à ÞDø?Î1uA¿Ú š$Ô£ñRÊ`¡j-“ã üANkwÀòKë¼íü¿FO$ ~ÏM¦ ¢ù¡ežWýNƒ¬ê³rnZ6¤ß¬Ñ.¨‰÷oájr–,ö ÚvÓ’:Öº§J’ÆëD2¥6¹à½Bo\g0lñÑK?M6 8}ëëtævgEDÂh¾Ž¸]à…gú¯²¶h…üγïEy%£vÌ`µÊ^¨_`[ÏÈŒJmŒê–Ì›üàmŸ£x¹Çót’×Îß Cü¦!>ëþ"¯ÎŸA†š¸´Z÷;Q›uBÖÍ2#S%”©ë‡'Êã©úÝH¡™;»‹¨&*b×ë0¤FÒ‹yfóÍ(¿äö¹ç˜kì ‘<½x'‘Jf-qΰU] Oƒƒ¬Í_ø>´´OìR9=d›Á€ëí]*á„“_³ñéeñÆú`¹ÿ[‘н~I¸îvec¼C@³JÚH S‰Ðí`[ÆVpG¬öØuU]C†¾{­–ûàS¨}úóºK"Òz]£²Œ .Ñ… ÒLðj%õ|Dª"“°´ˆÅ˜¥| Ï/ÙeŽCB6Ȭ± Š&=v˜cD Ÿº3쵌ø«Ü¤Â˜=:ìÑ¡I̺ŸQÁ3ç½×ðLA¦”HL‹íz—µf‰ÂÂóǹN*­ QO´ˆ™ÌDp%Õ`Äq®31»Ñmö9Ïkl³À˜˜ËáiVXcìUIDÈv­Ëy^# •¥1ãzµÍÿô¢"–cRB.z·F!Í…=¶ÃU’Ë–ñ+Εö÷À” q—AÌ—èkÊBëw'bØ6°±÷-ACÚÄY€i÷ÒõÕq¢ÀH”u+S‚|­„èÂOÀ¼µ6”óúŽÄ’Á¬ [É–AÓ4øŒ0‘¤u»Ù݇ڛö@ F;Mʱ‡\-‚(L˜ô«ˆ¶Æ«åÏè NY¾ÁÛ ø6)î~2ãÞúK¼Âr|¶X`D• –ˆI¨ÓŸAß1h1¤FFÀ?íþ§ì,°s°»`Ry¨vH â¬æìò‹4‚«â&›å2Ïr7 l³O›s¼ÎuŽ#)©1"f‚FReDFÀ. 8áÝàgð(¸!Ž‚NÆ|gÇÑP‹6gvQ¢$5!gç/s©s©4Ms@!<.rŽeÖ9u.ÅÛ+¸±°ÈXÄTòãAEOˆ6N¶.ó#?ü¿SàñØú?bmí¬Ïóë–ØÕ®q±}Š„·.ÿ‹f“LÞÄ3H4ŸZû;¼´'j5ådë‘°ÄÁ+œ²#³'mRã.¾Êm6^Xå±?ü à‡ç>Áù¹—ñÉS% £q¼O~Üêkœç4%ãýýËÌDVX¾ý:çW_$$¥»¸Eeqä\-(JæØàïò[ Þ^ç—Þÿsõ³çh]0<ô¦'(ðh6{M«³¾ÀÚ79/r;¯”·ÒfŸy±ÃœØE(ß´Æ'çM÷<;󱟪wnm,ó{ÿÏAÞñæ&§¯[#ž[,û½D¢ÐÔÎZ‚dBDžùüoŸ~Äp.{™‡NÆŽGzPíŒhvzD?:¤Da^áoþÿ6Uèº.ȲnPcƒ©„2èÒÊõ ßz›—g¦’°Xº…# ö)D»j|Ëý>å*E.iûG¦>’è1Î`AVQÈ2 DÉXÄŒ¨È„•ÜKì0ï sŹ|.Ѥ„ôhÑ£IJè´Ü«ìÓ£d‡y2¶èZo_‘çNŒFÍfºˆ/sŒ†¢$ 2°ÊRQñÇt‚=v™#1ž°¸¬ …}½š ÛÚ1óx²àÀ´¸,N‘‘ ìš9rƺÂ$‹¹)WñtI/mS© IEÀ~Ñ&™Äø¦ IbrÏC%ƒ^‡ò¢ƒC5ÖDÆslÓãØjzÝm²¦óÄp¢b7V²KKP*W +;Ù“Û—¸,0Û±r^£ç­^tùœ¨`¥ÄæÑ‹f]Ù÷ó<ˆÔZQš ˆV‰(DÇÔ2T˜â‰ rƒ0`"0Ïš=DT3g|£7â´Ák&”ƒOd” Oæo<{lí¯Â¶q­! hÚq³ûdTÒ`à*ôÄÁ¿0¤F‡=†^± -ÏbKÚtǵúþÔ®7“H®ž:C}î€+µSÌ‹=nšU†¢FËZ¿Ìiê 2¦†Õ|H ¶…f“BØ–×¾³Ú œD´Fͦ`2FTˆ:ÜŒûS IDATF$"¢(„gÍ>„5‚ºÈY{{¼Šáº8NBÄœ¿k[|jH¥3Æós"&L¨àÇÕ3=ô¾`6Âq{Ø&#`“EJaÃÖH ñ H¡¼’œŠ˜ˆØMöLØfE6QŽ-^säÞa½9»:=ÝdeÇÉ‘³¶ß=šD$ç:»ÕyÄÝ%¼“ æ€ÉJ7––8*x!2ÀýóðG%åS}vÌ…ðÙfž]*Œ]2*Qå4Wxf|{ý†qA\g/´dªº›LØ£Mät<æÙA¢ì7á³À9ÜSg‹®ëäY™àÄ!5É2ë¶Ð’m‹ÎC¯Ùä '1[‡)»bŽMà VèÛzèÂð¦&ÄŠ/d¶J©KÞˆóõ³ãÑøü€Ãñ³é»ªé‘OnûÈHKqä„¶bUƒ‰!kIŠÒ§çÙ~¦gÈ2Áw‹F{–h6íëìºAykâѧÁ˜ŠÓ .RŸ9ªUѧA‰b‡yê fým’E6©êû¦m7yÅj±Gšª7&•!‰ˆÐB²Ä#gübFôd“¡©»½LB̘MéÑ A#Äì½N¥g7Y"×5¦Žm‚/|rÐôöÉEÀPÕ8(:h-Iê­>Å0`TÆ­`YÃD¿ªìù_60§1¯K;š–ƒ¸M[¹×Â^yWˆþR>·ó+ð÷Ê/)_ó0›ÎÜ¥#Ð;\sžN—¨CþZt¨x—¶Jp0±€“Àk}S9xÞ­þ\ ‡^3³c>…@4µ5þYÐ 6í¸[|b@ØHìZ·§Q¿Fu±Ïh»B¢j˜‰dî–mü0ûæ&ôo÷Ðÿ‚S"y†»PcHÝ Œd´ØgAïÐ`ÀXÆ4%1c&TøÍÙª,rõìit)Ù>?Oÿþ&©´°ìÚÛVØs$*bgg™Þ+]žŸ»—óg_fíÉÓl¾P"çK.ÉÛ¿T!8•ÀqðÛ9E/@ùÅØ§\W )ê.Í'¯üûȨ¤ÝÝFM,ÇÖ’7 ÌXè»tèWšd"`‹J< ðoâ*'¸…Ü¿Ä3ÜM†O×M±tØ£¯”K/q%lþsz——õíüòÿÁ±Û¯püÔ•™³cƒ>É^¡DQ9ÛGõÌDñ¯žøŒì Zoߢ0>¦.XK ¨9RÚüÒ~âezE“/öá™?¸¿–#– ¢–s6¸Dm~È-' #‰ü ?{ÇËèt•gvîã‰O}/&|í¡mæç7‰H©1Ä'£ÎÀ²TÀ]?ò5–¾oý×á…÷ŸD·PïäïfJœVB{ȃ|ø×5ùkUŠ¢Bv£Æn¾ÌÞé%ÞÓDbðÈisNWÀ ¨Ü6dîCkôó&/oç•?¾6 Ýß" cÓ,2uVXãÍ<ÉÛÔ¢?þÃEøðú×nákÿì!ðaû‡é®nФÇ1n²Á"Ñ·zBÏc‰~f+$í[¤œ¹‚c¯‹Ü~ƒ«¶²ÖÕ¢‘tßâH¥£ŽôpÅ‘ïi²—®ªÓVrÖK5ª(¢œBzVeH"'Íê‹a ÈŽÌ¡§Ö¦ÓÛ¦ºíÊ‘ßìxGòuV…’’¡ë¡K4‘“rÍÈ%J”Ö0E+’IDQQøž#š‘oan% ·sTHa(šÍ¡çîø†7€QµÇ=œÏ´O®|‚H$(U¢•´óèÒ=”(ñý*²ÔG„%rkˆÑ—vs•»•6°6‡d@hàÀ*_ÍÎ{zOAC4ûk°»JYU¸·i«úº»† °%(w•åHŒÜu ÁeGYtƸÛefkÉ““z¶Š ïGèŠAç ³/1™ÁDY)ÑC…Î%é$tœ ƒP‚|ØÏç†qV¡(¾Éû·ú_ø:#åêô $v´lNïÑ4=¸5 úLˆhˆ>ȱA#©0`9§†°Å-§b±Oƒ¤ÃU†l±83~ IS±lSe¸¾boe+é~Ü`$ªtÙÂĂФ®6“"1ô©Óe‹ãòúLò0!â¯p šh¬žõt¾2 £"ÆÔÄq` *´8ÉUŒkÞ*ž)˜7;œ™4cb&ŒkÖô*¦ Rh6'È/˜–@œ‘j̺À$ÎYVª© Øpȉtpü6p'ð]Ü\€ÏÞ€Á ÐåPÎñ#z0¾TÅ<äàõyÝÞÖJ³Ì¡üïIऱ»µ›j&*ºšlA7†è­ :ð4¿o‡¤U¡+rÀL Í¥†ÛMÄq¤d£€Ý‹ËIðm–ûß4àn ÃYûJbE‚Ôš¦îSËFÄ:A9GA#ÎÂPkŒÉTHU AàÄ“<ç°|`íEÌØÏ(ãêЮîዜ¸=Ƭعí¸9&Ÿ ¡®Qõéƒ6ž5aÑ>e,ñ£‚ÐKˆƒ~h]Gy SÚãŠÒ*QŽ}FªNj* ŠûÕ™ äM&^„ð4“´Â@Öé‡ z´ØÍçÉL@ÅÛ¶š)BsÂ[cy°A!=Ñ€*ªbD#î!rƒ7,(ö}JåÓ[Ï鄯Ðêf7TfeRøäu»©/Ú ¯’“OÆ£˜^Ñb¬jtÄuÓ§ð<ˆ u¬O38@ú%ãJŒpêw;ÙêÔôˆ¹r£õÐ:KFᄸ1ÆHëx˜ÄH ÂÇj ø×X)7¥a7ž£'›¤aDíü ̨˜ì2^¯¢c‰¨ íQÏGęըçµD y×C«ò½%Kö£9 i×â‰5™ªÉM¯‡ %24_ cÉd¯BîLŠ*©1òkÈÌ––·Ñh;„ R¯÷x²„\ê˜Ýx޽lŽÓìk³Üåuƒj»À}¢Å¡f{y¤ºî©¼B³ë#ÐùØ%‡ªKþS)Ùi…®ŽTãSÖõÞ‘j½Ú˜Š@¡M!­j[*$>a¡A Râ•Æj* Ai^©‘*-J£Œ•ht2[;‡™€Œ :ì9}îz.=BRæ†{Ô«*Xs–гE—9vì[#|rê ÜNÓŽÎødøŽx²Ì:Æ3Ï"›ôh8{BŸ&”x´Ùc“%VXÃsò{¡HX)×èª-&ÄT1’U2éÓ›´ACPMÈÛ¶zĘ"P˜¶BO@ÉŒByÐrÄ4WY‹†Æø|ƒhŒ a²—oªMäcauh n!ø LÑ: ‚š/ ®Ñ+²¦1l”s ãI¤oð› hÈýÐVÖ9D :ñƒ_ÉH—µ}¾'‰¼ Á|BV„èLQ¶|ôHáû)^wŒDÄõ!†:ž.P~ñÆú·!÷7hLɼþidÆ) ßXíó¡Aô ¢g¬vAà6m}Ëß«i´F,U·ʰç5éËcb¶ér–‹ly]^þíM„6< ¾ÂÞ Ö\$¹?¢-ö¸À+ì¿¥ƒV’†êÍ|š5³BúÖˆ¦èñˆ÷§\¬ŸA`˜“;|zûûÙ)ØŽ–½ÔB´5²RP>Z•¸-‰™žyäÍì{-Òµ*¢U ÚùZŒ¬å\½å$—ü3|aým„qB·½nÝ‹”XMxGý}üäÓÿ¦æd‰4 ¾û>…0šž¼‡‹Ÿ¼³ Øé®P=µÏÃɸÿKσüàCÿ7‹çnÒ3MnÜvŒUöÆsì¦óäã'?û0blh,øåŸ¢^ èÍW¹vË2;Ì3xS«w|–°›â錟æ`~²Ku5åõï:Ë^¥MåXÂÄD Ë:Ÿúwc˜]9+¸qò Ý‹=î>x™LìýTÛŽ7>2B‡Á9ŸyýûÙ¸Ùbã@°{˃6÷™_ÿï¡Rípè~f\õ6r {œ>’¤ ¾~¦|ßUqÓõ ɶŽTä…«Ô£#›g3×ó‚rY0©”]É$ É*I5"ÇŸm¶èRólÓµ-y±çu¬Ú”*Yg -$c7§nÜsBÖY¡Â˜C.qš”ˆ&=R&®^g@ 3ÖX&"%q²”Öï|92ÚìÓ§ÉóÎ eDÛ=§¤Î 1ë¬Ì®ƒ»tH‰(®ûK3 [äEn' ›Zn¨c\ä,{ÉZYéÆXÙØZ%Ó!&W˜º„ L¾XµçøŒ½>ú‹ÑáÜÿ]X1Œ]0iÙì׿5a¯Õílwà7Öàì ÜæÖÇ §ÿ&ðoÉïÖ å®/ÚɆò. Ð}…8¥ îœ]®’^±ïGÌkD£@<Æ×ŒV˜R25!€ –¢oÍgO@ÃÎðýŒ|-´=±+«DËò‹=?Ä ݇/â…ùOèé·úýŠÃÔÞÇ.aÏüÔèÑ?|Ý% C+‡¼/[ h8͈*= ©ÙZ]µAÔÉ=Ÿ‰1P5„(Ù`‘"°²¯ CjÎWöh[‰dB†N:17Íqò­ žO¿a^U° èÀ®é†/Ù÷7:YcR¯QløÐ÷a;¶S!µ€+Ñy¼¥ÒZ±vcÛnKëT*Cª•>YÕP I!IÐóí¨^’D”ë v@ß è¥]Fº…—•Ò…ðŠBÚÖ¡$ŠAa<@¡=‚¹Œ@exD(7Ê—+k;[ࡵ¤”Šá¤Îd£†KdWš Qè™9Ž–’¡¬Y£œ!Åš7sÌ¥D´µlbÅ®œVG"#Šª²mÉî2Ŷ€Ï Á´lQÖ´Æ:xªˆ-ÁŠuù±Å2M ýŠ‚1$Ç«$ELµ£ŒÆ ­GŽÏHÔH½ˆ1/"É?4낾¬=ƒ—–žž‘¡ ßgןCQR¼ê“‹Øi,£oxo,ÿþm[£â“Ì7ؤƒÏ§¾åSsC¡‘é=U}ó޼+ÿHp”‡°:>‡zñúëûð^Oãm@Ø“I…jj„u5°³•eB!= éQ5C2auÙ+Ø1®ªa8&«rRvŠ-ðÉܘš%ÃØ}­ÂI±–ž¤Áàëtˆµ«ì•›R#Æú{nV^¢ ÈPG¸ÇÖwʤ·b8ÆmÿÔgNqSÃk+œh†}í˜ µÈž m¾(j Ae°hƒ°šËÚ({mêî\/»ó[‡&Ó”3Mc! f(,ª6Øu*°bàútV¬Æ³qÌ‹>&àPUnÚŽ)Õs`Vy/:œ€3‘˜Ä·}ý´QèH"eN9 )&¦bÝ=°²µÒ·Ä é•xscÌXB)0R@…P”å´,ýKöÐÇã1ùÈG˜››ã½ï}/ëëëüîïþ.KKK¼ç=ï! Cžxâ žzê)¾ã;¾ƒ‡~ø[•äNÖ’ø©Fˆ#ÈÜ´}‘i³„ N à"TF9K§v‘™!žKè‡u&&¦"Æn³naã}r|b&ÌÉ]Nq…=Ñ™™2M [óì2 ŽOŽF0¤æ\Û$u3¤-öÉ…õH f,(; 1WÀŽÄ4žúûþ‹ÂCT ˆ|‡L[„T@Žm/XÔJüú„(ž ê1&ö&h#g¢ZÁMi—ö9qú:=šlÏ­Ø"É­?1)m,Ü·Uàj~“;xž{l±Àm*ñˆ,y¾{7y;F+ï°j ^pa8¦Vr…SN†%`^n³Àª[rÝ+é­Í!RЂӛ7Èj§Ã«‹nq£y–ò>…ÞWpÂÐ\Ü£Q݇5¹á7)º¸Î²eëŸ<ï8OoÁÍ}x°mc‚îé–[\à§æ—0¦Ên§ oµí9¯žžá k袡Þp/0Ï6ûN·LÅ"k¾S#E _¶Å¦Üj^Æ Ø6ó´äu¼x"Çk'è¸:dÖÿ $³¿\…þúë¯ó[¿õ[T«Uî¹ç¾ÿû¿ŸÏ~ö³<ùä“<ðÀ¼ímo#I>ñ‰OÐëõx÷»ß͉'þ¦6™e)•4%2 U3¢’'VÊ™¡49`mô©2¢I˜ñLãyšx+Œœµ@B‡½;3$up¹M¤253"ÐôqS3I9#àM u¬/ñT˜&f2¯ˆH˜cwvŒé{©3 Î`÷{”xh-ܬۄš¶,–Ä‹bË'˜Ðð{x~Ð]Ø’3GÚ‹Æö²ëXæúÔm­î’ðÔÎvz=[«°Ú‚×Ö`ÃŽ'ö@8u,®¹kwÊõ×a_«´×Ð\•Vj3Ð6M×VnJ£' SZ³rƒé+Dáܯ“"=KD[-o_樨€šÁ[L­Ì­VvƒðWÜÿMß.¡§iÊË/¿ÌûÞ÷>~ìÇ~ ¥?÷s?Çýб¿¿Ï'?ùI®^½ÊÇ?þq~ôG”Çœo]Ø}llzº^&G6èÓj=vk¢â{ÕÞó&µsF eI—ÆX›Lå6­S÷µéæ¶Êxv?+JÆTñÈ.\ÀóìÓf—¹™àÔs Dm&õܧšOQA{ŽÀê.ðqP‹¹Á]Qs¨Õĵ·Öù‹!k7O FŽcvÚô.wémÏ“¤1f:Š;u)J!gŽp:”6Æ¥À ЗÀw~çwrùòe>ñ‰Oðè£ò±}Œ«W¯òÛ¿ýÛh­yøá‡ùð‡?Lžçú«¼R—lkß }÷÷ôL}'Gtv:Ÿ2Þ‡G÷tüÏé9h—¼ÍaOݸ¯ (@ *°ÁÜE™{(¥-‹3W¨ œY’†&Åétnô,¹7§:eœ{”3•9;™nܦîl¸`¢}›ˆ§r’™ó†šP¡ÂÄéÐYx¾Êh&"3õÿ˜XýrGü Ig½DÓaÏ±Û °ÖAŸ{t¨0B`\½‡'sjŒ¬`b‘Ø#{u”.¢„¼Ø?g ˜ÜzŒSÓW6)]òsD7“K{»G®I!,)®V…¼xî]…%V[½á®¯´ ¤Ñ.1wH‹öÆŽÇå@Õ "ÙUˆ†¶UÓêˆJx€ CQ3”‰‚]¸1D,”&CHƒ\Ê1‰æÆC45ªZP˜’Á i«£¿nÝ”°õ$#Ø»èÐ {®>üáÓívyôÑG©V«œ?ž<ÏùØÇ>†çy<òÈ#œ8q‚x€çž{ŽïùžïùÖËæäÈÚ!Ú"'G6ðÑ7À•=¨E~¿´fà JåÉ ÚÉ'{á’”$D„þaÄ”ºl1¦BšY)Ûc7Õ 7 Þ3MVÄ‹lrµr! ¥’&¢T ÑÖ˜¡D‡Ö6Øì L¨­¯÷Tâd‰i(Kê}Aº­…ŽËalRÉO lNðÏŒiczºC±X'8þ ýÏÅèZh3Š"^}õU~þçžw½ë]EÁý÷ßϱcÇxðÁyî¹çøò—¿Ì/üÂ/°°°@žçìïïÓív¿¹ ]ÇP.L$PÖ ˆ°‹#ãJ+GøÞæzæ6uÇxö° p{þ´ç¦ÜbÎŽ S]„±}œé‚Y$Ë 9$ (¥bÄì «•¾Pî0RU6ª5ö˜só‹’M±ˆ@Ïäa{4Ù`щ$6X¢Gƒ”yvØf°‚Æ œæz•^^°Å‚íá¸mªR´Á"Êë4é±E—=:3;Ç)„.œ{R“Û̳Ë<óìà‘óç‘hºl"Ñl°4óƒ6®sb&YÛaÌ„lŠEúEƒÀËÈñYa Ì¸1:AÚ¯@dQ†Þ í"G,%¤/W-\å9.Ä‹®‚Š þÝò×*‡Ú'@HÙ“öºÝSKþìœ=Áí iÅ6xÒîê‰ Á± ÅNˆÉAoúȳ9úsS!N”ø«ê•>ýƒqoã3(­1™¢óÊ€q£Ÿñ LtÌ»>I¶ð&žâ¡þ„D†Ü]>Ë[Ä—Ú`rI%MÉ_Èþ,ÂŒ¿ñö÷ò¡¹ÿ†¶êñ÷Ûÿ+õ GŽà'ù b3á\ýu‚í¤Àܰç¥ß©ð›o~”WŠ[ k ‹lЧÁ;ù#"&¼?ù ê»{žJ[ \ë×xäwVæ¹ÿÁ/ò&žÅsdD‚Ácµø/-©ò+ùËLÀOl|ŒQZeµ¸Æ;ßñ±ÈË“M‚ÐS?ûÕ_ÆLÛºZÀeøèÞÄ/D"¨¦|üC4’¦èñ÷ø%ÿÉ•A¸–Ú6Ÿ L_¾óßûëCî¦í\~ €û￟_ûµ_#Ïs}ôQÞ÷¾÷}]\(Ë­5RJ„!09û_ŸåÞUweòÔQ-âpvxÊl÷°Ók‡»#Ë–9ÁO½Ïýoè›{îñþÒÑøDïƒ,A'àM4e¡È…O*„†@ØyLLn|"RÌÌSl¯(°ã)v*Ü›UÖ‡&,´gpxßr¬Bœyi³Ï ¬“˜!¬ÊSa<2íË„@Ø„ja>«@5=æ”Õ~€±è²ÅsìÑ¡Gk¶c·³¼ö‚®³ìÌX7J<Ê/à&«ô„%!!7òƺ\fXÔQ~ŽÉÀäbGÁ;-@$ÉÒØ×CUªrëaÎXPø‘ÝõöÝ5­cÕe× ó8‚æ|ñÇ(|І5TAº@žÒ…*¼âXñ ÐW|[ñ`®*òzÌžŒ`Wr0êrc9EÇ‚¤_E¯û˜BCÅC$½ç1¤A(²õr;·¾Sé2¹Ù°7C)®ÖHËð›Ð§}f ;Ë2†Ã!žç1Y]]eŸíímžzê).\¸ÀÝwßÍã?λÞõ.ž~úiÞóž÷|K&tôã7X%!â«ò>²a…ñ¤q¨Y¹µ °J Î,ñ66ôƒûîÞRcÛAæxEAÇYsÖ°lÖYMÖi”û)hfCúA…DÄÄiJ*Bºz›¡‰ Ë0L¼ˆå÷! IDATšã§šû´ÆcÂý®õC#•C *.þì¸xÖp|þ‘8¦Žpúîÿ».~õÝÚ¹ —€×Zg)PN# Dp'Ï£LI­Hiã¯[ƒ9>Ÿ†2Ÿ¡AŸ€Œ»Ëg‰óyÔvq×·Wiòdðfe©2îT_%%b1ßæ¤¾B!QZö Ûs ÿ©õ3üYý;èŠ-Þü+”Ìiš§¹D5O¨' ñ^jcyfÏÍ3żR;Ã5ŽÍÜí2Îñ:UF¬dÛtÇ{‡±>Ùz+Ÿßzn .<Ïd,°måŒäÎüµÃÖÁFa•§6îe»¿À½gB~Œ>ö8‘_§#÷(¥d®?šÅ§)!óö>Äç[S‘#îå‹”(ÙäV^F`85Þ ÚIm Ú·9è+üð7almºÓ›þÃápÆ»QJqÛm·ñÑ~”ƒƒž{î9~ú§š+W®ð¥/}‰Ûo¿!­Vëor÷Ü{šph¦2e¯ëà 5ëŸßПÂn©{Ì´2ŸyŠûÙ?½§GH3¹;îMÛ†pÏ`´&œ·27´ã>ž¶D’f0D”šJlw‡q9¡Ã>¥´ðS¨R|]P•Cz´S¡Ã¾Szn 0´8@¢©3p¬ÞŒÌæ“C¬9-®Pä*¹ð¨:¾ƒ¼§F.‘ëûÕ¸m¨!Ü®´Å>Mú´è±OÛA„5†³þRBD—-"h‘0ÇŽëø×¨0" gž–07R‚°•²"5¯•Höjˆ…Ýòž¡L<„0p§AŒùŽoÇÓÎ9F{hZcÎ9qŽ w-çsÚδ¥œŽ ²Û7I{MÄJ ©‡\уÞRö¹ñtÂÁAƒ§r¹DúeßÃH‰ì”ÈN†ŒJjµ!ÚlwbLJäÌŸÞbÐh¡T‰æøç'˜L²pâ&ºTŒí¼s™x˜‘r Hßü±µÝÝ]~ó7“4M¹ï¾û¸÷Þ{ùà?ÈG>òZ­ïÿû©V«Üwß}üʯü ï|ç;YZZú–í¡dÌ92Ú¢·IÇŒ”.ñTލX£$º%ðD4NtÄ„ÎÑPδ!†ÔèSçJq ‘Á k±uéã°V>7‹–$§úºN^úÔ‹>[ªË(©à‹]HÒ< ¢Æ,Å;¬3OÇtJ”)UCPÍÐZâU LlÍ}üZNILM)zÞ’åt!1Lê** üŒ¨“0é¸Ñ.@#ð†—âw j ˜j@* FºÊ‹ã;@Â||ÀÂÒEÇ#(SüNN¡ÎòÂMäfU¸²{š¨H©EcÂ"§ÔŠvu€É!^˜ 3M?nÐYÚ!Râ…1¥#ç^2§š*’üü8§²4:Í]›7é˜}J¡Hˆ(S…I¬¦Ç|kŸx”bBð½ÙԤ̀Z02UÖX&ÏB^ˆÄ„‰¼Nºc”Äór‚~¥Æ±·1—·H·&\¼|•ìóD&Á—D ÊP96†>dA@w²‰¬Dõ„k£“ìçs$²B-R*ɹÅëh-¬5³0È@S×=N´®ø)cSA Ín:ÇKÉí a7©.Œñ­ =J%A|“•â\{åùçŸçÓŸþ4eYò³?û³ÜrË-<ðÀ<öØc<øàƒ\¸p¥¥%üq¾öµ¯ñ|€0üó…ˆ0QÝþ—üzæ™gØzæ^¾ï6{#ÎÌY¦³äÓ~ÂVlV¡î‡ÙâÕ¦«èêîߥÛ+·«õ݆aª$§4?ÝW$Ûü6±è芺B•šrÎѼ}MrÜgÆTÒ™—˜H0¶s4“›Ñ";Ñ»^‡z1dìÅŒd•‰ˆXÈviê>;A›+ò”«ÌèÓ`“EÞœ~׳&a(ñ¸Â)h±ÌúÌâT`8ÎuþòßG\4x÷d˜ž‚Ððwø cQ¥@Q5#Þl¾Ê q•!uþ»ðçB“\©±ùô1Âò;¯Ò¨° vxwùû¤"¢xüþáÏü£¿ÔšÿÏÿëÇxìµÿï8ð£ÇøÄÿòÍ‹}¥¸]c{âSæúèq-=R¥ÇGª—üpÔÌö4Žôܧzùôi%:2ö6µN-Ýc"àœ«îš–£¤ç$ã–( F â$'­+†^•v@¿3r#ÑFÚ¹JScM.3hX›Ô\xÖ7]YºÍ]+ÝHL“}ѦÀŸÍƒk$]¶8³}…ßZù –äÆŒ`7µ3´â4̘ísi“®‡_:&¼A2›²ËØq=}2¢:ƒÔ-#× Û> ã&ÇðÉè;¡J?-y9¼‰v¦ÖÙh£\¤§Z\õNÒ :vM ‰¡Äg’VÙ¾ÚEä½£¬Ÿð>DªQ‚Á #Kxã¸&‘zÍÇLY±Ê ':óáœfþÎ!k¿ïQT–À,[c°d`"á«W`F>£°†P%ÂQ~†ä¬ Ž â¸%D1/x©¼ V ÃPVˆâ„›Þ ÔJzIƒñ(f°Ýä–s/Q­ÞØ¢Ïø¶}ê†Ü›,²GǶ©D ¥J„2¶õ¤%!†\ÚV—@;XðMfe”ÝtˆÄÎ ÷Êý¤AQ8‚Õ–]sý&½¥6ýQú ›̶ÂôES1J#D" ›;Îh`ìÇÔ[ìs¤E…"”Ô}‹žÕéϰìS>=gâ²Ë"ÆTíœ5>XnÎM&D3)XÛ¤1$D M•J=e@}Öv›Nàô' H`°Ô ß­±G›ºs3›¸òÎ(˜ÄFqÍö–¥Æ¤o’1ôª$:bßkÑpEDB„@S:2 À0J«ôu ß³ìå‘_£e*ä±Ç˜xæ. KÎÍñÉÊ€ÞAö¡o4¢J-Z0 Î>-Ô)¥GZÄ$IŒÞò¬®ÀÉ:QÓq}앵O{/'µ“ŒR^̡۲÷•§ÙڀဆÓùˆfç­*FeÕŽöe%8g¾QT™¹iÊÙ¼³å ‡ùäL ¯7 ƒ¸láG)'õ{@“:ßdûÔÛ„eLË‘XB—x#÷÷´ÇaÜQ¦ãgÓÇÅ.ùK÷·<òüüt?5˜Î·«# }:ʤ<Þͬ‹ dªñS4þ_öÞ<ÈÖ³¾óû<Ï»¿gëszï¾}uu¯tµ´ û"lãm»â! S)ìLRTÅ¡œÁNa—1`Êå3ØãàTŠÇÁc\ž£ñe ÙÆHHHH @÷j»[ßÞOŸõ=ïú<ùãyÎé–ÇUæÚ 埪®ÞÎú¾ïóü¶ï" M!H*’¹ ¡5ž.pdE”gh)Z–8Neª@Zþ83 j=[lmÜ„ììÚ¥¢°¨xe¹ÎS9—Ò&!5+cö~w†äôÉg8ÝØÒßr<„EÝO/FÏZ²”3t}ŽK…²("bB,2A&è­™x¡ûÖÐHKUÑ”Ž‹‚ C P¨ÂÜ¥¥\Ø&ø Àw¨ïè|H3wש6¨ØÈ´áuÚFU®”(ÙBw=Ô;pÓªé®ìX ÎtHˆ5ÅD£R+*”o,xËýáø A…@1 NP›  —¦;À•%ûÅž›ÑW áT`È¤Š©û†e*\ç#pÅ?Ù§^óMãÏ(›-ú`=:t©ësôf&E5ù¨ë1Eé#\M[¢¬°M…$#Ä£`Ó?I²à¡&.\6Œ¿*ðÆÆ3]®Fž*(/ûˆRá´4e$‘2*)F raSprE•;xaÁž^ÀÕŠyߺ5Ôu¢cQÍxìó PÐÁ±IÇ!mûwKe8ÑhÚô0:–#]§•éÐia4Òvk™€¹«—ª&Ú1DzΈ%vP88Q7jž—Rf>N¿bЛcœÔÙ^XÅ <ðÜvÛmÿi5⣢MùôÍ*Û:÷e+ƒc¸€©§´¿{t¤ÇÀXö “ÙûNçïÓŸ{–ºÙ$Û ª%ä®sg>ÃFLßmà©å …Éú4¦…c˜v¾õg6ªR)!9Pg4Ý ¨.°¦,¦¢p §±*IˆÙgìbN íÇ5€·Evéе³nó<Ƃ՛‰Î˜¬«2nNÖeI ¹ÊYŒdŒfªv‰æ 'Èñ™qϹ"b®pbV¸UÁ¥Ñõn-Q.Þ\FrÐÂqJTîàŸLÈ7cÔÓîÑ<|×Ò=ñÒä±&úÐRÌš)ôÔE¯iƒôcõ.JÂFBÿûÖà>¹ ·¯#æ4þKÊ-9WQN|üfF>У7Np£‚@fd M´:àŒó,ѤŸÏ¡ûZ{øQÆaÚ!-êrÌRm‡ýd‘´ˆi=êrÈÐoR$!îò„†þýhkßeZîY–qß}÷1™LhµZÜsÏ=¤iÊç>÷9Ö××yéK_Š‚çž{Ž'Ÿ|’»ï¾ûx…ä7áRÍt\+‡©”€Ç©ðɈ,ås,bðŽÌZ$Š¡õIpEÉjg“n0Ï0j‘oÖÍl;È;Ú;ÕØ3ûÉ&äõ€l?¤Š\(¡òù~dƒ˜­õ5òíûíê I q¬Ö…°0ÇÇO ª®O•z¤N¹œ³Â.%¥ÕÍŸVÏ-z¸Ôc¸*`[É*…í ‰˜ÌºƒÔe-ØÄñ4—.ݤƒˆMÒ8¹ÙþAÝšÔøµÜpüÛ‹pß>P„ ö+c{=vk3}}ÍFøTŸÔ¯Ãªg<È`@  Ï.%)jŒ™W]\Y²Â%»ÉNÄÓ㪺¶úŸZ«¹®É£çÒŠ9‡¤0‰ƵÂu(=É$ôÊ:•kå#§Æ®³Èç;ÎCš2G…‘,œVÐ%.)ÑÌZµË¼]¼F­m—e[aäFˆbæµÜ¶¶…) F3…DXg7m†qqS³`<Ív¯p‚„˜æÙa‰ ÆÔØf…]–Øa™ž5ŽhvXæ ë i˜÷ê· ·Tû\Ñ'¸À)ÆÔèåó¤" r%î\Šï¦”çЧ#´H­`Ô£.œˆÕÊiº'McM´oŽá°‡ÚP‘.Øs´¤Í¹ÌAÖÞZfÎ׋b¨wàs›è-¨š=çPf¢® Ú“Tý€ô N±’të¨Òa´Õ&)k¤{5’qÝX÷"ñ✫WN²·¹Î8m°W-1î7ÈsŸýÑW³ì_\açëë¤Z‹Qø{âþa™ï¤Ûh4â·û·9}ú4H)y÷»ß‚ßýÝß塇bgg‡_ú¥_¢V«ñ®w½ëoPð4…íuéY²\Zvˆ-…ö¨´CF@®}RÑ™ôié>¾Å›G”–b‚ºë”ÆL#Õ@Qx¨ºÕ;˜ Ô˜=FÚˆÌ8ÒG2Õ™`¨ȸBzea°,‘LM¢¾ÖËáè’Lh-(qq1 É´¡+ѳϣf€!S‰NÛߥp‘‘šZô‰ItföÉ øUN]ðÔÔ›]ÎŽDáÅ9n-·¢\Â|yÖ&x­Œš;ÆÑ•Q«CÏ(´M„LB1‘b…p4B›1ž™^ËYÇ2fb3ãÂtT}pe‰§s„6œnÓI,ˆIf]ʆá;™91øNŽ£+*í µ@kZShLû¨ÌHA“ àhôv¥eéPig–läø†Ò(ü CÖ* *Œ…VäÚCii<<ìë ¡Œó¦UÓtd53 S¹C•¹¸”3ñ¢k¦v|“Â2ß² Ýu]|ðAΜ9ÃM7ÝÄç?ÿyÞóž÷°²²ÂüÈpåʤ”üÐýÜ{ï½Ü}÷ÝGïy ôçu [™å©>M[êÊnxãcº<Ö:ÇÎÁëÇÀoÓ¹e| ñ^KÄQe$&àô€P!eNk*GàhE81B#¾.³”ÈÉp( ªŒØI@€Ò’±ˆqmk°ÀŸµÔKâYK{ªüÖcŽCÚ”¸³$akab&ýªm{]!ñ-ôq@s–1Nì¦Ú7—Ki%+õLÉ*%À§˜àJ\ú´f¶s ©sÀ%{å‰Ótlç+¨ÊÁZ º^‡Ñ ‰ð²R¨O+D®Ñ®;äC×ÌË[¦mϾUÂꛂD5aWÎú¨ ãʶŒ[\7› ”{‡Wæ­¢–„ÓóðÅMÊùuðô@ÏÏvöŒ5•ò ¨UáàÓöè:dEL5ðI=—É^„h¤ ý²ÃdQn†ÒÐ!÷Còç#sݤ‚gOÞÄ|ùW×п gèyžsÿý÷s×]w±°°@–eüàþ ËËË|úÓŸææ›oæMozozÓ›xðÁyâ‰'¸ãŽ;ÌF£KÞº÷ûF­4›©T 'WxI?ÈqFÊ5&Â×ȱ¢ªI· ©\ôŒ¸SÝšMÙ±HØ–éúFÿ¢‰Îá•ñC¤"¢õûd¯iµú¬9›d"€:x²@k˜TŽPô³J9ønƉÚeVüM†A7Îé_d4’|y­†zÆáéùœ¢rá²àks·Su]”#¹ð²³ ƒ:“ýºføéÉ7ê\iŸæ7¿ˆÍæ:_¼“ ʉâ#ՠɀ…¹þÝâ»øvÿ/”#¨·z8ºâd|‰åï»)dÏ|ã·^fæÀK¸§JÄ“¯" Íg%YŽØj­±“¬P–.éå“ç›[>_~þŸá B7å×nýYjîˆ^ÔäÂÒ |r^túqâ“”’<Ó½\\Ͻ_y+Eîó_]÷ûÜ¥¥p¶;‹dÒãë×]¢öÏ»PÁÖ³ì}q • ¼S%nTòßÞð1~LþGŠÜç/Ú¯å9÷z–—v¨Þ预dôd¯|è.ªØA¼Ø`#îðåæüy´¼xå«|ù'nCêŠîdžl ¿>¤ÿ?6©ô÷½ý‡ Û"•òße¿ÃœêQkå|áìCìÖ—¨Ö\F74ÈTÀC¿õzªÂ¡;8'îJÉ;‹q*ßb,ûÜô½çŒÏÆí–O^¬0Úo“»5~ûU?Îp·Í»ôïÿãž¡ÿüÏÿ<¾ïó‰O|‚ßû½ß#Ë2Â0|A«Íó<„Ôëõ_nzûÂ9å°Z‡»NÚx|¬%>¥­íÙïSŽz÷XåØÿïpd¯:¥©Y@Üc-ý)?½w,9Rœë£5²¥qWáH¡pEÑrÒ‚úvkŒüa™³Qm’¹>#U'õBæÙgD‚«¬1Ïs‚ kl m™ŸÉ°x¦*V1\& cM\*¶X¥ÇœmU¸>-V1ŠTcjÌ1Â¥D¢aÌÎržsŒ©á“q+ß`‡å•gм5 œ˜—ñ8MœsÏ2 ÅŠÞfÍ»Šïçœä É%NÒ^ØgÑÛåb|û—WÍ\êÖ :3A:ߌ'Þ+2ò§#ôž0L†º=ûÒ(½Ý¨aËfÔs¦“™‰qesÖrÊZcAþLˆ^Õ° þ›RÊWy¨?œ‡?¾ w¯Ad„fô¾ƒ\,aC£¶\s}¤m«®áN ½µÆ€ÁÁ<•ïÀ¶`åµÏSh—Þþé(‚Hàµ&xQF¾"–^´OñéGéÿÇ>ÙåÃk[5åß´¿gè­V‹|ä#H)yÿûß?S½£r•¦)£ÑˆNÇPMÃáØP•š/ú Bkî¸6ÖŒœ«°2¿ìs¤€&lEm×w¥§éÁ(;†*mÂk,ˆC‘¸jiˆÂ¡Ã>ûÝeDGáu2wB&ÆûŸ:cbmg©J¤(A)b'Á÷Rœ,&+BtÏAw%cÝ„ginæÚì ]Go ¨iúy‹ƒtÑ(. „i—“€I#â²Û¥Û]Äi”y“$iÐæPMMàä\Ÿ_ú:&žqkk*åPžs?߀ŠA`|2Ÿ¶ÀZ'ÔçF„Ñ„81É#òQ@1 ѹdÎÁ´DŸ•»4Â!ŽS±Í>9õhH“…öpÇ9Ò)I’É~ 2A{~Ȇ¼ÊDì©6®”8~‰n›ÑÉ—"&“Ø{À‚Fö᤿IUºÔZF1³æim’ã‘\l0´Ì¯föþ¬ÑLF !ZO« _dDjl=ï;”© rxu&šZ‘Ðr‡,8]Ú^º1rë¤õY3ðÉþ…ö‘ßDÓÄ&W)âmûÖö4 £²³ F6‰Gº©ØÅ¡šIÌÖ’Y(œ²mI5ü´è“ÏÚlÓ9“²­uÓÆ7zîÓ}ºd4RâÑÔCb™Ìæ`S™ÀIñDÎP¥.Rš6”vÍÜ[Jjs^ýcçJØÅ8’þ8Òw· ~bÕÊ`N[žV´º0Þ׬F0™ƒ/m Ü¢0‹¼xÂ<ïTmpXWhòQ#ól¢ !Ÿ´²¢ÖÓí† 4q}Œë–Œ'u ü¾ï¥±±ƒß}êï×rÿ.š¡»®ËÆ†qY^^& CvvvØÜÜdmmÓ§Oóè£Ælâ¸HŽëÂÞ#ðm,T\É»ö%ðÓÑÛ¡9–ÎóÐ\NXYÜChMèçôÜ>cQ#$%!Æ£¤Æ˜! k±¶Ëïi†y“šk<|Û6m0 G›yq`Æ]€Æík=¢ e"CvCbÞ¥UÍA†ªë@e»4Ÿ#½â^—£´¤ºâ@dƒzì9LÖcÔ¾Ñ[ÈC=” —½+«Ö:ÆEB#›PéœÍ-ÎΟ'Ñ1[­ óóGEPÏ_.§;œåÄÚÌÙç€Ûk¦µþ§Wáõëf£÷lµ>,(èIh³X‚tH·#8/¨jσëå(@&ÎšŠ¤|ÆGÝ, OŽqe7©`Øk£Õ5¢Ü§²žßE-÷³gÏòáø{ÛÛÞÆÛÞö¶üíoÛOf·ôØ:®ŽalŽ˜mG£ºãîcpí¥t+V ²„B¢+ ®0ûÞ¼Y?Ó¢IfR •-&**Ç¡Ô.Uσ<=JœÐˆ@áÈ#÷Ga»ŽMYyèÄ®[q4BÕFºF—Þ ö]*_¢ Çô9 ÆÌHÐ%(%­•qär¨(SC!“N…ˆ*¨W¶©4«SU„¤ÇØ>%a™WF@žn£6{0Ïâ€(õŒ&ì“Íl­µ#Í{ªŽÅˆ)ÕVL/>1sΔ(œf‰¤¤J½™±;\û^ñí èÿÐ'Б=8»vÎs$õê`æ­Žm“–6/ÚŒ|°›v†~p 磷-päÂvœ·¾e¿7˜!'‘öI(kI;$Hr¨$¹ôèµM´÷Ê’DÄLãn&…Y ‡´­€ÀˆuöY`—%êŒÈì|ú€yÙ£Í!šl³2»ÆÔÐ`Ë]5 R8ø¶ÞUªÉ‚³­%û´էÎh[¬Rc„ÂARŒEEöŒ‡0u\JÖÙ¤ÄcŸ.¨ëiˆ#Ñ`/[$ËBnkê¿1Ñ,盜ÑOÓ¥Å:›Ìs@…ÃmÕ“4ó[Õ*›Íë¡„Ç:/ãÉÎ-xnÁËå—ðE†/r^Íçñ(Y<è#«eǰ[úpãÊ9;qÛù »qIň:ëlœCÑçµ£‡`¢Ñûpë÷s>¼÷ÓFªÌÙà®EÉ;T¬¹;œ‰¯˜¸Ñ–Alíòÿ<ù#ÈV'*ˆé²È'ô‘‘逯aiÎCí¨Ëö¥Þ|uòdY±Î³3éí³œG YR0LÆ5ª}Àq¿ÅÒ¯êY@WÂ8®Ée³™jË-s&3#6ªmbÍVòžiÁŠøX^Ú ®m`ÈŽèä1ú›w,£)µÙ§¯mî#V * šd±C^Šž0”15t Øe -ŒpJ„¤"ÃTÖ)»,ÑcŽ>†GšãÓ£…ƒbL.vX¦o·kMQ'Dû,ÒgŽ€ÌèN—MFYƒ²f{@J¬'LDhµÝ51uK-1IÂ<ûl³Â6¬ãÉ$bÚrXµ‰:ÚäÊgRD\¨®{ƒeÚñ™ÏpãGYBù zmvô£«s”¥‡kÒ´Žhhtî bE–DÐsÌFTgf˜‚c OëªÌƒî;A‡Âзô]ó¸yð›e…§)’*VÂè»'=œ,m‚\7I]ëýHBä™–iâyGàJ ÛŒÑC ¹Ålƒ c³  +5…V¶òÒ–»þ§€~M‰¿#yêugx€×0¦ÆŸª7³ÿÜ Ã§;&kÙëghû¶¹¾ünÎOv>Â`)âÉàÖÙŒ|Ei3¶PŸ|F÷òÉY¬ö¹%9O‡=㢥ûôD‹ 1óÙ!“ d]mÒ ZD:%!êÆNÊ óçX˜ô¨_Ê̘'³„k¯¿©V×4Mûÿë9RÈ MÀa‚‘©ÞNräc!mPºð¢{øÝÿú_YÎöň¯ä!cÒ”²”vÍõ_™÷ð—7ðƳ}xgða^Å_ã“s_BjEX”,^ê£Jß0ï·/Zl\™áå¯sþ‚‹?A9¾GÝφ¸ŒTšF6&NrôÄxØãÁ¿¼ýw¸õÚÕ!ÿsô+ÌÉ1 wð1 ?¶ûGÔ/'GY_»î,¼ú|‰;ñÉ8Ãs$D¼˜'i0âÌÁENmmuirx°ÿJ^uðÀ¿,>Á¹ŸÂ8C’T%¯©9µº0>Yãú?û"{ϯóâöEþ ÿ+mö¹¹<‡ïš¶ÐOìþž¥ô1Ó8ysõ§üYø}DÞ„ÿ†â ¸§y9ãPrûÁ þ|b¨«fùw'å[Ðÿ±UèNè Ê8¥6=«ö5± ¨ ¨¦0Ô¶dW£§:÷©]Ó2±Ùùñ6ÏÐ~o¼MyéS \¬p$ ë ܉¢©FõÐx÷ª‚v:À‰ŒbS Œ•GÎUÖÑHëQžSc<ó=ßf…Ä£dÁ"àbJ6¸dèÆeŽ 9`•-S1è‚%o—†clR(êzÄ‚ØçŠ>Á 2ªS§ËXÕB‘©€XŽ©3f—%òÂ'tSŒLd¿j¹æÜÕÄQ%Í OÝ1)j¨ÊA§A=§žáÊ*—q^£ÈN5žc?]¢Ÿ·qW2ÂÈ ’GçÛ bE¬ŽÉöjè‰@4îÍÅ£¡i{…à¿8!?ˆÍ¹nxY…/3²ƒÈ3Æ‹\ï8Pyº vò¸!Ø­kнØÈn–w-£{èç:ÿ¢÷^…[VáµÀ¢‚±ùA®¢¼Ø:êõu×¼v­Ä¹± x>2×ÈnLÉ·CTjÀ;ÁÍD\]{@Wß¾Eúrs,*}BHY¹„^FB‰hƒ¨)ëÕ Žqëà:%UîAeDJ% ¥¥áT#(ñÊÐM+áʉˆ»1¥ãé€R¸x"§O‹œ€ÐÉ(¤ÇHšZ. -5%ÀuKüÐ$ìMgDV3³)h³‡y&Xkm0oSLpMðÓ ‡JHD¨±FÔ´¡å)À×à€È€@£gFM•ZáˆÊ’DLÛÅN´L–û:£åõñDA+ì3‰ Š^Æíæ.i“V6P—=t‘AE¾¡÷³Ø‰¹fuhŽw±g4_ÌfžÚ¶ã)A%®‘bt5오.O"´«¡¸œr¢$Å×#„cî7ÃXœ­PÜã[°² »Ž©va\«SvØ–¦Òñ±*Côh³Î^»øwBÞé ±aœÿNäWB# …”Š‘®ÓÎqeIîúœ?GÒˆ«59F ÁW¼ÛØ(/s]v¥Q—Ç·1Ñ!Ýq™Ðõi_óRž`Lßÿz¦;¾Ì6>í3=Wö©\‡›_üõrÄ–7ÏïþJI¾òù—qßÃ?€ˆ4¯ú/þí@å¹ÔÏÌÍ-ëO±¤v(Ÿpÿ€¢ðHÆ5>ôÀ{(GÜõz:K{t8ÀsKòºOtKÊ­ëß4K~Àû4™ò±Ãwn×qæ jstæðC·þµ³ 59BU‚–aø¬W›Üû—oåO¿òÏqdÅÜ;öÐî8ý(·¬ž# +l£µà°ló³oü¢Ò|Iü3þ÷Gße\;Cü¹„õú¸ã5xÜtÓ9¢2¥Bò¯~èÿ†¶¾áð¿¼ãÂ]®sÓ¿~’øÆ¹ðxÍ›¤!†$ޱ8žÏ»¼þž?ãNñy²2äßî'ÐMhÌ÷ظþBi^râkÌ-ö©WCîzÑ# Eý‡×Œû»@qÿØZî:¶A8±Ï6µ„žâØë>Gºî5ûA§·:GB1S£ïØ}Žƒâô14ýÔÆfÃ/Òx C(<'Ue‰Ì4YÝE–™jüzF.´P("2+F’2±zî9>¹¿nø»øäV60†-¶‚ÈñIߢÒÍ›6`†¾œªeÍÑ£b„ḇD6à»””841 .%=5G!= )qS'×>u1"Ç£Â%S> 1Âr5$ãëÜ€`´6U½[1粕ÇèKU9¦bÍ¥—zˆP¡Gô@áç 3ûªÄì|é=AµìyÝì¤Q¡]T_«2sÐ… ®2׎zNµÏ/[€ÍËëfóøU8³9¤iˆÎt´A®¦¶ºp aº'Ì{‚‘ž“GÀ+@ \Tq ¸ê›[ˆyžóÈ#°³³Ãí·ßΩS§ø«¿ú+¶¶¶p]—ïùžï¡Õjqážxâ î¼óN¦4ÒïÄ›DÑdHHF,FQ'ªh0 ¡FÌÓ%•ÆÀÈx”‡¹›s$˜qT¯Öb?Y¡ô$UéA×5žÆó„b¡³K%=¾¼{'NPÒ‰÷I£€'‹SgÌ‚·K@FFH‹¾™Çë9vÄ2Kõ=¾Î­dÒ‡š˜)9&„”8„v—>¤ÍWgkÙ­ réÑMêŒ)ðx‚—0´ƒtY(žöN“ã1 nFôIË//éÐ%&ጩqÀ<¸—Š¥ú.õËLÑhæ9 %à6G#x,¿‹snî&”Žƒ0W·ä뺢O—ëy–—‹Ùu<×?C5ð«€]–ØÁ‰ˆ‰ ºa4âšô‰3vë|U¿˜«K'¨rj×E \6n¹Hà§3 æ$—˜£GS èŠE®Œ6pÓo°JYzxí’¤Ó`È)šÖ6¶âŽõGŒÛÜ£wñÜWn€&È9*¹²´AÒŽÈíj¶/ÞÌ×È©ò»8ÿ§áy—Á[#DUQ)‡ÖjŸ&C†4fÚï7qŽ6‡ôó9~eïçÁUìU \Ý_Ejͨ]g.îÑæ¥…mº´¯ÍiYó ¸n·Ë¿øE”R¼îu¯Ãq>ûÙÏΤ–¿ÿû¿­5?ü0Ýn—×½îu3ˆoi@™ ¬Ûvík…;v&>± 8Çnªkö÷iõ ¹+)Á59šÈŽ¡`Çw娬ªiŸCZZL,AUˆ]'”1g¹NãWîͲÓcÐŒðtA;‘úCÝ ò'tÊCºn{vÁÌÑ#ǧɀ=9Ís4rëØc‰ÐÎ@“R+ÖÝÍÿÜ´ÏBj$3«@cLàp†g Óº¹50 a¹ðm)q9󔸜å=æØg‘\ø¬°=s_«IŸS\ åôÙ éÈ.§¸@1šö1¢(ú èF²uŠ¢nÓ¥ÄcN÷™+4õ€Øs õJøÄ*Á—9my8[/¾(Pžs‚2ó˜ä Š“>*—TžƒnDs¦}&eD5öPÊaB½Ö"ãIɸNÕv('.eàÒR}rÇgw¼Dî†l7çŠ:A^ù$U†?0’ÌÒÐE𣡴D´ÁÞô]æg4U Ç[¬QgŒç• ¬¬ô„fDGVt¾­] VÙ¢ÀG(¸\OHJd¸^ÁXÕY“ƼD!yqù5\]ÒŒøõŒ*wØ,áëŒqY§ ]ó:¢ÎH˜ÃYΣm;ÿÄéç6æ¨<‡Ãq‡J»H¯"# ¡GôÂ6.%k\É›Ôý»û«\=8 ‰`_-àYÊ\‹þL²ZZië†ß§v]í@6¨RŸ<P‘q€3\‡–î3Wö"g¡F4õ ³S:•ÚÇL-¨ïVàˆ’vóðõ ÊÍ.ãKœj“&Û'VȬv¾²ª·V_§SuñªŠùå}p¹ô) ‡2s8hÍ“•¥4ûîˆ:1׸W|“æ,Ï<óÌL´æ§ú§ù…_ø>ùÉOò®w½k¶|æ3Ÿá‘GáÖ[oåƒü ¿ø‹¿ˆ”ò[Ür-²]Ú–y|,po7,ÛìrÛÎÈ3[åw8òR·s*û}ª8çCÇϫЧžè‘¢`^Ccf«eÃÁM+p¡Š\ûsMrá« yäãPš‡}·Ã+ hp•5«ßÞA Ùe‘Mö¦vªÖq)³Njaš³­’Τc [wl³bå`1cv,J~ÊQŸÚLj„M$<bz`çRrž›Ò°:Ã;VG~*63 IJ@—y*ÇÐé.[P]Ä„.RRàò,g¸:Xg\Ô)Æ!jà î™ Y<!”!ú ›€¾YÃóŽ9]à ‰ ê{†;î3ŒÃƒexJšƟÏÈúå^L?ö ‘¦ºžÎÙszAš«ó¼@W–Ã~s rNmàvJ”'©.¸ÆPaÎà(ªËúY;«<| ÔD¢6|Äm } KÔ@àÜ–ã¸×8C×ßÜÿWWWyë[ߊRŠO}êS â8æþûïgmmm&µü†7¼{Ç{ŒÇ{ŒW¿úÕßqÁ\sºO]Œg×~C ɤϒޣ=êã šƒ—…ñ8cļÜ}œ+ÁϋӸ\ 6f]î­,qåå'¸¬6Ø‹ìç‹dƒ˜ H‘cÈ4ÕÐc0×äÉôå”;b¨ŸlRüUˆ 6Kà:³§ ö—øÊ½œG_[,ßx×/˜¸ 1d+d"œÑ¼D†|üãçÞ{Îþ¦\êwÖF¢n}̵Ås•¡¨ãE%^PЗ6ÊŽºáTF¹qêàP’ãáXeÅ-J9$‡MŠ~€’N®QöA µ `O +A¹ã£[¶«ÛsjéU¹‰Ä9‘#|E®}r8Slt)™QÚ1ÚÈz™KËtv×è1ÇûøVZtLÍš–˜DߥBiªLÕXXžD™k÷‚Ù/‹¾¼òüœBÍ …¤_«#µ6Z•o\å:Ýpȳ€*7XŸ¦hØý¤ÄµFª1jW˜Žg$о¡/9Y5+2†¢aö-¹¹E IDATáZÃfÓ!5‚R¾Êp¤1œJ-½·°b\F¾ÚŒ/³,„K OÖg]ʘÄt9d“$ò©¤C‘zp (sÏ0ö ‹}zzÎô3…²bà4‘B1&f¨›Œ“:úd9†qˆÄt@ÕF¡,§sôi—DT }(…®rÏÃqy壤 %2huàˆÊÎÀ…m§›OJ`½‡ôÌt%±àÊòÇ•0–€ÓÅï H¬ÅéÔíhj/Xc„´ã…*·Î¬57E‹–zÍu\$$¥K‡‘6íùR˜ ¢$#œ 2$:f¢hl( JÞ'7_åãËœºg|§'NŒ”ÂSà—ènˆÓ.‰ƒ„‘6›¨ÛI)ƒ&Òø²»x •xxí Q0¦œø¨ÂA(çÔ䘤fföž,˜dBÜwHŒ+} f 3±ª ú=ÒV¬H˜×G°ÓA=½…nnàžÎ)뢦a±$®'”¾G.Ct_Br£BdŠjâ@ŽWPI×+úZ‘)êo¢Kàõöçgg½÷Þ{yì±Çxï{ߋ뺜8a¬k_ô¢ñÔSOñÊW¾’Ï~ö³³¶ÛßøÆïÌv»Ö\wyÓœh4„*EkAµÎˆ©_Ç[OÑR’Õ\Ò‘ $[•;lå·(º’¸æ1Ùm!æzq/M»+äÚ¡+zj% "mÔ8Êl[?s wåã¼Å°ÙÄx‚çÓHŸª7&Ó.7ÕyvœS\®ü2wm…^_=&”µ=îûîg [?o*Ï»ôë«<˜™æþ‘6/ìs®q“ngÀì‘B³&ã*:R\{ñ~Ä&–œªíS3õñºÇ^yÍÔg¤øÜ9uŠÀ‹™ê /ì=H®õbÆY½ƒqà¸Û¤¢f¬­î³~e•$ת$ÏU˜… ³µR<<Ï™t—,wÙYÛ&õ|áøÕ] ­@ n<~ íIT£ ÷\©©ì¦h%9[»Áƒ=…RÓÕE¦0Ž`ú™&Bž\·–áÇ ÿ`øKTåŒõÚçÎßÀu3f—ë8߯ÉwyþߟEµC&íãn ˆ)f>Á$CJ8÷è Àp~û*—¾ùˈöÇä×±òiõ¢4äA>óUì_ùhßZ~}m·ùéŸþi^ûÚ×ò¶·½ !Äb¯ØÚÚb0°¹¹ÉÎξïSõzý/  ?UVPÇœ ‰ç ¶¼ Àñ~.sç+m‡,ä­ü9J¾ÂKµÃuyÌòy§|>)_Ÿ.%‚%ºq9²jÄ-C 3äŠÆ‰4¾(0JT2ëà3L‰CŸ™Ðô†Ô’C×;dD“ílŸ„c·U¶¶Û ”zŽÃý{/òHý ê%-Î%gHƒcÚtè!0̨£8Í…6û1-‚¹|#.}VðKŽm‚ψ¯6O1u†4¹!ÎÒ* ásR<:ô™qÈ}ÕæÍÓOCUÐdÈL¨Ù6½¬p–›Üá73 ë-ÒŠGV¸ŒŠ}g•¶ß£ÊŒþf‡¬¢E„jdƇPÎpLFt¶Fæ)ZbÀLõ0F’—§GÓÐ87Æ8ÇDI•z8dKíR­DÜ}݃¼ƒïÏ3ãgih¨Æ&“:ÃÞ fn#C%ºWƒ»·©¼ªAÚÎqü ÕÌX“¤Ï°Û${Ó#¤‚Þt•°5à ¢ZH³:ÀqïU«õåÙ­½øâ‹¼ç=ïá-oy ?þã?Î÷}ß÷ñ+¿ò+äyÎt:åGôGY[[ã7~ã7øáþaVWW¹téÒ_Ë€.´áì]û¶Íñ5“òþ<àÄœe®åÞ°¸¯“­ *&¡QãÈœ ‡ÇL¨— ³õDœˆ*‚œèºÏsó¶¼)Áv¬[ž«!ÐJÕ$þ8 YMA»`°Q!Ç!L"ÏGh› ÝfUp,ZÄ„Œ©Sør¡Ì¦(¹u,xD`˜R%"\¸öœoq‡ÓTËÀíÞ£Ë1+(rÂ’w‡S i~EH°J~ìÜY­@Rg³â…üìŒ*Qià2ÌGs½÷Ûb—-FÔéÑaBÊ™žõRoqH—Lzæ]ŠÂe6²í¼þÁ*n%%»¸nL²WH§©=Æ8ÒØ‡ÈÁmÄ›.“£Â×x~ÌØ¯‘ÅIG!ÍNŸŽê磤ÉÓþCÄ“*Ù~ˆÛIˆz5ÌHbFu9ewз•U ;g` Åó8ïè‘fô¯bØnÃ)÷i†‡«6Qœ€8U0}¶ ·J:ååœl¯…AAÏ š¹­Å„Øü±€~éÒ%žx≗ùÞ÷¾÷í=ïyÏ_ÖšXºwÍî%[b­¨%: 9ùÚðjÕ)®É˜( Š ‰h2dJµGye’lgô®É0%8ËJ»: PTŽƒG¶À¼$åý2Ç x¤¶ ëXËe(»gMmA"„¶âEÒÀamƒ# ½Ðß(&¥6y$СK¾â’WìÈÏÑèL–*ÖVm.6S‰SÜ<Çó²Eç/Óî “gÌšÕbÀ±ï›+2ªÌÒZ N-AÔmk|n~S*qz*%3+o[¾O9aÅv'µc™.Œ$&’ F(\“£…íBšº°ûqŒÂ/1-嵯‰1 Æ¥”šXÚDnÄBDÌH¹@‡çZ-F“Ö:: J ¨N€+@fN”E…Æ+¼“ÒØJÂåmxqnh¸Ò:‰åÒ›+h*4c="Ê"X(ƒ‰¾šASü²úŸ$£üó?ÿR#˜3gÎð‹¿ø‹±´5êeÛ}\^Ìå¶w¸DA[¶9u–:šC±TÅK´5-øt e¼ì…>ÿÙ¼gÙcDap¦†ÌShW ´ÁÉr{±t© l4žÎÆ …—1F‹q©ß>Ÿ ͵Ø- m¶@–gåÌ{J•)AsôÔÈ­îpÀU¦Hвz·S³!Ípn>œS×fTh0bRʾZ•¸ ujLÈqpÈí‚' Ç]´!çA_+¤(C°nG„ä8$øÜ7ÙK6‘F“æ>E¡È÷}œZŽ”Ò+0xä·}蕚Í+‚Ù¦õW¯8Ä7kˆ¶±úÒ‰KœJŠ\¡ÇÓi ‰¢~¾Ç0i’Liz`"…ÙjÇôÜ,góQ¹fåý12°²­¡Ò€gRøÜ$Û˜\"ÎhÌTÚQÕºXl‚œby¢0؆èÅÅä^zþ§ÀW_‘ŠûU+-Jó&“˜wØœ%P-KûDÉ’qƆjk†q¡f¦äÂ-É rªšRaD“u®r‰Jhé¡CÓ$Õ¡šq›Ó ÖˆÀ02 9Å:iîQU3nºg¸™%yÄÞæˆ¼ã⨌™ßÀif3# ªY »3øëSVj}g“H”›“=Zá—ÓQòg}d«@¬ƒIFIÆã&¹ã‚Ú³KSƒˆá†w% z•Žílºå>w§Ü7-~dÐhqÀ#¼ßOûŒWpê ²^ 7$Ƴ–Èœ*ßã%í6à&gùƒâõ2fVT,@öÀµêv‡ ‘è– ¨JråRH¹@‹Mó±üxŠ/»äßè’¯ÛD¢Pv,yÀ:_2WHµÇQÑ…m¬ßÂY,#e_X0 ÓZm00-2agþl² /›¼¿nØ{:núÜecV˜P㘎ÒUøFàÑ-øü]x^Ó±ÇtÀHHJžížÙd-Œ$øÈFŠî{èž»ò…`Ìˇ¹ÿ9=þì½YVĵòfœWÍó1ã\ÒqV¾>ä„c.Ë z.*3±Ç‹Ñ]M–çž#çÕÒ¹GK]”á¼2w­Z]Þ’ÈÔÔ< iQ©ZJ2áràum6놥«š ÖØ@KÉÝE«'ÇaL´TFòH©0£G§$¬ù¥¢´µ ‚öÙÀ%C#IJûˆ!ÍÒ@šJ4#0Œ©“£Èq€k a•ëæU´KÆÝ…n|1=:D©#ßÀ)µã'ÔÑ Ê”}µÎ«DXs–yG`.#;uCòL"”$ŽC•c´Bû9Bå¤ãÓw(–µ&ݤ×ÂÒÅÈ^oáhkÅ:p(2È 20Dk^+ÅÕ!¹+ɇ6c7‰®I3¶7v¾çŒeb¬&»^_FÂzàžkÀ„OÝ‚ð F—ŸLKÚÑL‰ç03i×[ Aá:èì^oƒôeµÜ_y|E!ò<ˆ¹NDµ¤¼Ê²åÞçÄ}m~Ï”ûIÛVH~7G¤†je†qÅ¢UÞ¦_*ªi|R|bjL¨Ñ¡G b„2´¢ÐôhÓâ˜]Baƒ~Ó±Ô5ë>¨p”1 0Š`eJ’d±å¥«jJ‚5Q‚E%2xÝä,£¸P„¬•-ù¾$®$ÅDXÕµD’møõ=“p¤cƒ“¨Óµ\ÚѲÎtè2°»L"šŒ,ÀW$V¤žqûÜ¥sUŠPɲ Tà; «!`A ¼Ùɨ÷u¸uŸ=„×ÚÄQ:zAµëŠ#Ö8 .·«¹­¾ÆNYÄÜs…þÿ®²ÌŸ= Ïieój:,³ê1'Úìr }î–Aþôy++fa°œ¸35XðËm¹ù Î9À-¿‡s%º¢©P³Wä(¡Iª.† Ni­ ™¨*Š‚V1$“¹q˜É 3¶ Ó£CÈŒ&£ ¥†Uš2î°@Ób@LÀ.[„|Ka#&.ÝÚî²N›þ?¡F›¾U“+)k]zÔË@?+y–g¹Iq¹HsNq‡>m\R†4J¡‰‡œmº²Ê׸HE¸·8¦ÉŸ„*Snr¶|~ÀQÞe8mC ÙZ½M‘+Cšø¬ÝE¯*ŽÂ5²çªÐÐ¥+”Aï+ÔzŽ\Ï)úú†ƒjçT/HW=Ò£ &Ux§6) ²©‹#sQÐÞÜŸp4ÚÂŒÎV†H5q\³ñëeö>×2¨ØïŶF­¦_€ãY=_¸…ûOVÉïó0/(»Þ_®¯ ì–@˜Ømî‘[úÿGCô?‡Gâ{Ä©öQRäŠB:#NÄzæ¶²5/0œMnPäŠXúÈT’‡fjGPVªÉ—Œéœº©cÖ‹»\àCš$ÆrÆH­i‹c ãàÊŒÔxø&%ŠiVeE¸\£÷™&5Ò$ žÄÇ5L¯‡š&c×ÊKË„ÜxH£YÝ;Dµs“É~Õj[§å>õ%hú=¼»åÚ;ž U3 -}µ‚1‚j:Ť ]É6w0H„pMf÷Õž=GK ¸ž‡ü4e“=ÆÔ¹ÄU2éÒ ŽXI‡ôÓ6“¢NJH`Rn'§ e„ÇÓ^+eËìqNÜ`f*´MŸZ1a_žb_Y¸é¤Âo„Ó JAßpÞ¹Ž0†Ál‘3×'çÁ‡Ü¸tèY—5;Bp5çk×OFµdÌÎp›‰_cµXç.ÉB±¯Æ˜X¶íuÊýäÉC†· ®wÏ£+bÑù Ë$0ÇጼIœU -­V“Rv÷ž“ÿ¿Júµ“Ù7¬ˆýÜ»<^ªÎ²Âr"õ:×rŸW\ª|þè+{¿üùœ»ž-µåÒ¥1…W¶ÿ×!«HŒYM2©‡ÄÒ'$Æ!cìÔ!:|“€€=g“¯ÄûôE›!R fÊ)>Gt ˆ9b•CÖ¬#"* W¶ÓÜâüì&¿Ûx )Z$øtè-‚¹¥h1$&XTÌ+ ­Ä¬œó(žã~€Å¼ð:ç™R-Ûÿ’=6QhjL0À5."0 i.M&ÔScbêtD#Óå€UÇ£RŸà:)G“5òÄE‚j{ÈÁñÙÍ „^’ìÔБĸ‚ú}Ç$³ éªæT!”a|µ©BИ¢‡là# tÏísJÞa¬jt« ó&Ó&Bk:q*Ãi·ë"ÿvNz³‚¹f7|±®‘§s˜JŠDQ«ŽI¢}¸¤aÝG¾ªMö¾¸rZ Ζ.o)ð´@œ×˜±€›´ ñXÿnüUôä•€~/º#øâÛàS¼…>m>ÎßäÖì G×¶ÈlE>Æe•–ƒ»š2~c•^³Áƒ×0(ÝÕ&Ô¸Ã)Žèòõü.> ëÜ¥eLDÉ!Ûwöø–K!WÕdF!;áá †À°9; ©;x±¦P’ãJv4Â}º`ðÆ*í;cÜÏØä•A„ç²Æs›èÃrßY)ÿæ‡Ëý®(‹•²“xøXLæþÂî}æüú£ñáþ#Ä|ùhaµ#þMñ“2êQd“Ñ© êŸ8ý7¸pé\ƒÿ)ùç<ÆïÒâ˜Ò?o•ÔbAû »TŸ³ûäÐkrúáÛŒ§uÞ\ù$ßÝúwh$ßž}˜¿ŒÈ Õ(&ìåözØë÷®¯ÿYþÑ™ŸÂD‚TùZâ˜3àÖÿ ?OiÝžáßÉì{1°ûø ç?}ãÛ¹ÊE†4¸Àu4’wðËDœ»½Ãé/íŸÜ2>}ö¯A?ýK¾‡Ø}ÑÓb€[h.Dwì5yÆ^‹iXåüà:‡r•¯q>ÏòOy5Ä÷ßOÓ’8.ëOíвqâ›?üoùîáß¡ò Ãñ/0Îr“ŸäÝ8&çôÞÁ ©ýÛž°×ù¹ræ,ÿTèòÏ|—_òZùuQ.r“yemi.f8Q‘«–Åüji®>ç"gœè¸,8æ|¥Vþl)a(տܤÀ3–“íè /)¨ä3¤±›®¯Ó…\kŽƒBSeZò¾­ú*‡‹yw­dV6•ÁS,¸èöòV8¦aÆÄ8L©Zi©UeŠO‚ÀPeB•)M†Ô³É Fåì]QcÂ:w-ר0C—­Æ¹m¤ORÎÏí¸ CIÁ€VÙY–ùáÅ„ŒLƒˆ–8¦%†ÔÕ„õêm·ÎÒÉ ê3V¡ˆÔÐÚèᜉQç2D'geó© ˜ ÌTànÆ46Ž1®ÄôÊ-ðVbL*ÑE¡ÕÖ˜ª;f+Ø¥ˆ]ò±P†jg„Ö”A ±¢!Ôöz7ÀÔf&¬º›&¶t¿È 投.üÞÈ ªZØ5QÒ*MP*ÃõìúrÖ2 )¿Š€þÿôñJ@ÿ“Pqó{̺H²Ü·\æiôfe0˜²pì*„1H(雪ä4K4ño2׋(äÒô…Pä®*1-®5r‘ ¥5Jm= ¡Úân$B›—øæXgé³·øó–ö.¾bL(—ŠoéûòÜsÿnUâ\dÉxWåøÆ(qrÌò¾Wj{¨ÂªØ¹dx&³T̹ÿż£9ï|”Z ²\§Š§ÜB£R}2U*)Â®È©É ¡•R¸@h¯¤>ƒ.íËÚÈ…Œo…YøÑ[CñÇÿŸ¹¬t ”´û›À …@c?^ÍI2@ Ks-AÈNa¯¯2ùÉmi–ŽimB>A Æe—,|áÁœŒ5ô¾ëž[îÚ^ñ—­Bï–€„9H­Â‰€‡Zª´çÆòs%¹l üÖ(«ì¤ ØMNÌ9<^jÔâ,-ýíöù"@M5Ð §9EÅAëËì¦À7–ƒê™Œ¦¢KÝö t!G8ZˆFè…­©oÇT˜1+¶SËNq VËyx†WJEh1¡ŠG¶@Óæ%=í˜Y‰2ìù|Û-«tëîV”â50 I³ËÍÁmG¦‹/’E’qL]ÊÇc¥lC"šrȘ¦dÔRëDå# ðT嫧 6>"xí˜bæÐßY£8òÈcëxÔ«¯‘Ž|„W`&Šén“|ÕEú9:“¤#h+c› ƃvª§^Nßt(ŒÂmÆ{w›äŸbäP<ïPì×m«k>¾qºpmÕІãÕEáÀ-07 •U•;ë‚.àÓ{äMûz]¶ïg®³‘;:hSÌîõNMÿôê+3ô?is«™1k‾†/ÒUúëòÔ%ˆ#Ê4Ú$øø½„lËãß:ÿ=GQ‡ë×/äê8g×™úUrßáÖé ¨´ Z™rjí_ë|žßåËÎeêÂBåbÌø~ Ê0ª¶»ª""’!3Ðúlwv¹Å·Z 2x:Ãd‚Æx„V7I­þ‚P„ã£Àx’Æ©1£Óu”.pó á›]ªgf4ÎP†éÅ“ Ä GâE)Õ[1­Jć IùÈð¿b×q†9o½ïwpEJsmÂÊ#ò@Ñ]?¢1£›¯Ýz§™q3<LJ¿7Hù–ðÃH¡QÊàoæx*¥ëâÆ9‘xèüÆ-dTð‰O~EOR}cÄåõçq:˜¦ ¸˜ÐQ=\7£S?ä"/’¤!Ÿ|êo¡SIwã€Ý³[*áÒåëxí åÔâ Nœ1;ЦÏP7yòÓ¯ã9ÿ!”ŸSyx†KŠî:$¯ñqDNUL‘™F Í×Þÿi$†ávƒßäíT™Ñ刚³R1¹¿‰”šõæ]ˆ u<^•<É Ö¢êùð ßI5œòhõ÷i»‡(™qök÷puŠ©K\‘âmeœ¿üNÔà&Ÿý¥W#Ú5οê*G¡Ù;s—0H‰¸ÐºŽöìÝ«˜ûËC¹ÿå è“r¶9·­°ð©]PR N8æ¦ÜX÷Ë×Í9©ƒò¹ÚRK=ZJŠò5UN²æN¨2³7ö¼²f0M0¾„iAmãÌ4Ó5#­£ rÃ0«(“ÓÍûäJ1¤ÉÌ iëc„4„Dì³Á;H ·9Í!«œå.f ™ÕgáUžâ‘y.[ì.ÚëËîrÈ*z%DÀ*ÀŸã:kãЧM•) y™©ä8¬r€F±[¶ÖâK X±M|Óf›]ŒLE•˜€3ÜÂ!g—-öŠ °!öYå irÓœEÃ%ù"s¯1Ëm+Ü 1 Éì¸ÊÆöº)MV@kª—Æ$qÈl·F>ñ¨à†IìShÏOP±¦ÂPó&T7ÆMÖR“¾±ÀÂ×®}ž»ùwâó$‡!Õæ„Ä ¯7dW}ä«s„Å-×v \¶˜h·Š® Ä}ڂߎlR'Þ¨áµ5Ìg5|d®lÙVgørÙ êØ2Û÷0÷jÎò (î«¨Ï ]ÝgSÙU1GÕçØ«nb¶5ÆÈRq.ëÙ`Ä]~ÖüCŽvÖè?»i+ù9 vl÷ÙÎ0ǵòMü&5&\P×¹ãŸæ£â­\ä*myÌYyƒCÖì Ý&}Vh:£‹eXiâm¤¼è\¢h+T»(S‚S¥¼k1žÉH„O[Û 2/\šW ³ó¡ŠP±@HÃÝJ‡–QÔGc¸cˆîw(„‚D‘†ŠJ"©>³ö\Ä&{ø$üôäÝÜxê2ÝøÆýÇ´é³zæþ™1>ê³!N%æ>Cx_ÄÇï¼ëÙ9<'¡éر^X0Zùè×Ü÷äBGÿëód‘ IDATø·9ÍÁ³›üú¯7Ü€ö¥#’mÏIû &*kÛ‡\|ø*-Žiq̇ÄQ…ÿÉï#r*\~ðËœëÒP#Ä×èE!´É ê( jÅ„?xâë¸Þ¾Èf¸ËÙ‡¯ÙâèŒ!;#©3fËĮ޸:õ)|®r‘ó·8Ç Ö¹K1ëõ»Lß–ÕtBÕª¿ÏŒ 7wÏó+ϼy>gÚ 9ë]£ÊŒôí Æ‹©ÁˆWñ$[Ü$¼÷­ÿü*oú{+¬?¸GbÿÁM‚cV9àÔo¡ð¿Þ3r䝨 }.½)—ZOsa¹4óž·ãçv§ÎÒÞXò/ç¶ÉJ4ì|¶’,µåÅR'Ã,u7ç¢2Uۮў ¨ r%È*.¹tDJ!%±ôf Z¤ÚÅ1V³Y˜¹Úš!Ñ>‰´ ̨.Ðê͘úB¿=*oY°æxIƱע(ý\!."\È樒–f9ìKJŠW¶éݲ §™R[¼>Ç]HMºd lµî”@;ë–’³Šºš,óCZä8ӢЙÙe‹¾n“*á´Ir·ŠöÚŒ+¶É…"9 ×§¤G!:sQ±Fvr²£"õÉ3E±%Ð…Œ &4˜¦"ÉB¢A g+Åq3”V¤Æc/:Å`¶‚+dWSDzä Rc¯õ]‰Únà”sÌ®-¡)WZE¸xΒа/0«-8ð…]Ð['m³ƒríTAÔ4Bßk–ü (‹ŸxJ•ˆ 4XŒK_ž‰&*yæ'R¤Ô' ‘ªìâ•3w! ŒQHmÐ¥óY¢|2Ç]P4íÐ-dʉ‡GJDeqßL¨Y6×]ÐM ¶[0Œ²8›#Äâþ¢lëkW ËÏ\U6~%©ðÈ•D9†B(2á!…埧²Àx㈅¶fG²òwÎu¹ÙްXHDk)ÑF¢sKíšËäÎG9j¡O1?¦p”-À"оj! ÁB‚zÞ‘4 ©ì{/íÿ|2F‘¥n†YŒ ì`Gs0­Iém‘–zQþ! YyN R³=Ñå¿#]¯,ÀH´uµPNYj2í’áQ”ƒµËÌ÷òŸTø°½»ûÓÑÂø¦(…Aˆ{ϾCô¿lz…ã•aÜã¥à][š7ÍgFº?Ùü't¾¶ÏÓã+ü‹÷¿ÙÓl>v‹í×ߢ§;\’/ÐøD|¿ŽAð\ýAnÎÎ0»Sãß}ê™AšÆÛ{DýoÞþ[Á3*\âE.rsVòæÿîwè>ýÔ›ù¿>þ­ÈŽF_²€×óÞUÞpÿ㌩óÏr?Ï!š†×ççè›6ŸßyýµoCõ4/þË4×øØu•)[ìÒåˆÈ©ðè÷‚uu›Ãýuþ÷ŸxÁ密‹ßð< açØ51á{øüo/üC®>w…›ÓûQ· Ô¬ |pÊöß½ð>Eƒ1¯çs€à +¯ãS÷½™h\ã??ùm¨ç5òXóöü 0™.©pYåo⣼Þü³z…á¿l!uÁ‹ŸXá—~ð{1տߣyᘦ²n±#¶X½'ØÙËÅýe«Ð°sÎZÙ÷ÊÖ÷\5(ç„_:G¥›¥ª;*__”_ÏÇs „\¹K­üùL~ÜçÀŒ+ÐÀ8†ÂD®O"<|“`Œ&^¹e˜2ü òÉ2€‰ Ë,>¡(+ï°4D™·ÁçUy Џ›ñI¨Í&¨ (+ölÑ’Wåä¼Á˜£5M”EY‰Çe‚`õÙÕb¾nÓbÆe&9ÏXrŒÙï\oÞ%£j¬tí¼ýé—f/ªh-i1ÀAä…ä¡EfŽGèFÌ2I.5n=£Ö0¬KášÃíéÔÇ rê›Ç˜\0™4‘NA%œ.ñ¸‚4†ÕÓ»l¹;ŒU–’5gLãé¤J½6À rƲIz&DlçdQh×—±Q kšÂwÀÀ‰Hc÷ÅrlxZXm T œªCU­;ˆ7mcb îŸàüQv‹þa™¯¦é.„^ˆ2é’Æä’Òæ˜®î•÷‘\tÅ*DL©r%~žVãµR” )û* 5¬ÑA;‚é¤ÊhÚ„™àpm•÷ÁQÇî'^™: LfyàG®Ë“"£MÝæ;é6jš¡Ms³Âˆh¡9¢A"|V8F#‹:£ ¾øÙXÔ™QaM›D+E[õ¸Ëšµ/ kè$<ÂpFÑ pße÷ÖZå]ž\‡ð¯L©3`WØóµUŸÖÙÇ¡ ]=BERçèhÕIuƒö3†ªÃP5ðH˜Qá|ƪ¢¹šÚÚ˜¶™þ^ýþLÅDiA­2bMú´¹ç ™QQ3º+=Ö¨óÂþ öÚp {ùQ¹7ÖÓ¦O“![ì‰FgÈ:{DQ…«éƒàÁšnÑ£Ã&¦Ô˜rVÜdCrjP0»]=iˆ‚ߎ(ŒFÉEyI Nn”@›¶×g¥Õ#3“ƒé“v?`• c±B†cý:ˆØf‡©¬Ð9}€Bs}óÏtA¹ ‡g8Κ4õˆƒÊ*=:¬’Ýc@ÿ«&,ã,ÍÈç3ô¹È\€$+ç—s¹×N¼ËçJQ“²ÂNP˜‹Ö¼_>7f1ÿÂ)Û¯iù;*eB!AÅZj¯ꓘ*)n’“¶Í|ŒßËñ63b”<Ç”™Ò‘– >ÂN°VXã—CÆ h±ÍNi޲²¶¥–œA„«.üÐçV‹A»t؉ñ‰ñ9ÅN¹ aL}a¹:ïH4ì#0Üe â<׉9¢‹F²Êá"ÑHñJûBëä6¡N"|Ö±€$Yø2û"ἸÁ¡\åU«í§$³áFã&­f¥rfû fyu.†‰A»ï¬!»n=Á$ŠÉ ÓiŽ‘¼jÌjgŸá¤E¤+ìLN¬LñØšeL,˜ì5 ×§Žƒ8S }Ä«5â²AJÌSŠbE!.ÌTÐ?î`2‰èjŒ’v xÐXîh <',›â¾*ƒùÐ.lnYT|ñçk¤cÿ«˜‹½Š»wPÜ”ÂÄdxÖ!PÇ8"£™¨Æa‘x®màJƒ—åh7!—vÎ6o#Ï[¬VeÑF…1:%S3´+©š ®Èµ£$RhDË '²R€äuÓÖÌÌ1³"L‚A+Òc «\æ9GÁ*³¼B¦]Õ:…LD¶{Œt Žò52ã’I‡IÖ`j¦Œœ&G^—YÁ5VšÔh‰+r*rÊý\eÕb„uuTÚਵ–ƒkÛó“^]8ÄaÈØkÐ`L­˜!rpœŠŒÐ•)q§UÐ…$ú˜©`2iº1Iî³Rˆ˜B*e°as†¿¡[‚ÜóB“Ÿ™®뀚œÐá×d ¿SÉ«ájÒ‘Oâ…` 4B¤£i™£‹ )ŽÊpÛ F Ïg8^!)|¥é»mqL˜$äÂÁsÜfŠÌ «N—*[¨Ýµl™ÑJãYFC%ŽpdA(b\‘ã%éŠAÎaÑa¢ÌÜièâ “øYF.s¼V‰rò3äÃí#÷ ¦îWŽ*޲n ôúë ŠK—p±T¼,WÏéR²2’I–Ðîb µ>?^/#[ üziæ¾l¯,½?ÚJJ-¹@ƒSvæIŠ”1¸EŽ&C‘£…ZØ<áâ˜_¤Ä‹Jb.—™¢4dÉ_2³’hZé'Ì~å.^æU¸,çMóß«Èþyk\¢mv¡Æ´œ/Zé½#Y]HÈjäâµsŠO… F8%ºž’0Ô-2é.À"ä‚|à[ªJ5¦È"§láY[X‘ÚÞ†‘ÚjW%b*0Ú » =õ`¨©•²Ô¥Р1”d5ÀMH⥠û\ˆÁt…ÕÌž d=‡ÄCD‘ip¥Ý)즡ŽWØZ¸ž’Ç Ü¡Xˆ•ø,9òU`ÅÀÍ=¸¼iƒ~U õ½fɯ´Üïy£1sø)dªQ™Á(P3ŽAÄ^9~›ÛÛVíÞi¶aÿ--&²¶èRI4+/f¹JÕ™Ò\’>曀׉ÏöBœ+ úU‚ª7%lM©z¶›VeÊ^²‰),µJg é$ÓSíÛ´ûLšL^lÑÿbÐ?cAyîƒÅÄEGN#CK”†›gÎ1¬Ö ˆHâ´R¢£·“óÈVÆÝÕunš3–N—(FãÍÆ1ÔŸæ»êæ¡äi )è;+ÌdMðÿÞ×͘¼Pç ¿ñ(Âí×_Æ9óæÙïóÐÞUÀ=Ï­Óì¿z­ÓH ñN•ÁgÖ`¿ß7  ‡foȸÿû¨ùnÕ¶yvÍvÏÓsäߨ™äuöþ踆Ýâ‡GÈïõþ)oTŸ#ÊCþ ýZtfÈ×gõ 7>tÉÊ£ú ¾=Á[‰yCý ¾9û8™tˆ*+J³sô?vIñ88Zçêï>©UP LJ ´\¼ï*í¿»KK8˜­3é7a{8)üæ7n »9Æ!ïýÒ?£[í!ªÝ÷%vOõ¹\`ú` ågü—_úÛö¶½ ø¿‡éqƒÇÌ/ÿ9ƒâþœúµk×ø…_ø<Ïã;¾ã;X__çg~æg(Š‚w¾ó¼îu¯ãCú?þ8J)~ìÇ~ŒV«õÒîâ\F•ÿÜû|¤çšëÞR°LA›|v ]Ú„ÅR@—Ks›Yj×—ÁÜx «ÂÊ¿–ºò¹«Æ #È=A¤Œ‘cˆÜ·À ¿ Ý~ Ò©”joÖuJµkiPYC„Ôp¨1&w,¸cî…¾ŒàµÎNs#ˆdAS³ÂïüÎïP¯×ùÁüA>ûÙÏòÛ¿ýÛxžÇ»ßýnêõ:ï}ï{é÷û\¸pú¡zI±âörTj™<Šiy” 'tפ¼fõG7„0¥eQ¶°%NðKÈ›Mº¤ÐÔ™pœù(?‡B"ÐT ®HÉ  Æx~B–»(r¤[ •­U¼ˆØ«ž”=s¯ˆŠÈe¬1‹ÒH$WdV Ý©!/?ÄdWæ%o[cŒ@{¼plÏe„ÓÁpEc9Ò·ô[©õI£ ¾£tn…¼ÆàF™•oe†ë§(§ «û1¸NB^Õ0ÓˆC®ÁÉ Ü5Û-pÉñEÊLi¤[ šÙ0i÷¯gáe™)pZ9ŽR(Uà6"”Ÿ!sÛ{N¹9BiäÌà2¤4[ ž²®¡;C˜‚Ä ¾†@£š9Â׸EºëñÏ$„ÎŒ:cŽœ G9Yµb‡ _9²£[Õ.öÐ*³ÞŽ£O0V-ƒ sŠ™o÷‹ž-æJŒðÈ4÷È6Ö)vúˆIN‘;6ñ¿§­Â¼ŒäþϹåþ“?ù“üÈükkk¬®®òîw¿›w½ë]œ;wŽw¼ã¼ï}ïãcû?÷s?ÇG?úQ>øÁòÎw¾óä sd¹·’›sÇç³óyÙ.!àçÛ㥖§óçæ’±sÐÛÜÁ­»Øj-Íâ³ò˜5 ¶]먖W3/DKëj„?¥PŠ‘[¥âFÌTÆ)MU|f%ÂS ÉqËvºÇqßàT4Ià/›s¦ÞΕÜ3|Rê“ w«k4/ÌSææ+óváüsR"EOrº×´ƒÝœ-äç®C³äÆfßܯ·±Æ.óaF…:cªfÂHX {.EÁŒªå|Ò´úñJ¢ï¢67Hs)òÌÃô$‚Éþ ¦¯ì5™Ù3q /Á×$Of˜D‚€¼ç‘ç.¢Ð˜ÄVà•ZÄíëÕœ4÷m…k‡üôªu­JA¤-¼*â< Ë›@ Ò+hÙ$¼\hËx‹•£1¯üZÀ¸®[{„AÇ»×úËç¡'IB¯×£^¯ÿ‰þÅU;;;üÚ¯ý?ñ?AµZ¥R©ðþ÷¿Ÿ~ðƒüÖoýøÀxøá‡ñ}ŸŸýÙŸå]ïz;;;looŸì[×AŒ "]ʼn2pß-¿Ÿ‹KM>ˆºOë9ë«}¤Ñ¬…GL P=–-jL8bׂѰ`´ËúzyŸ7åÿ ¯ÛÄU›Î>9‡ù]uÈaå&Ž)È]‡YQAÉœY«Ê)vX“w¹ÐºÎðMMöû›L§5FÓEà ›6ø›YŽßIÈskôT8’ñ¨IôìêÛDãªÕ88$=Å—f2n :'ÉH§£S†›íóL£ î—5FÁÚ¥>¢bH*/òºæç1Zp«yÁV×ηŸÌÆ Šžgèr8}ø¯îo­±UÝ!/ߣ[9à¹ô 7ž»H6Ô$±EûÕ”‹×ÐÊá.È—¦¿J«ò‰‡¿™Á¥$‚ô«dëù4@$चK+/àGìa„`&BžV¯fXo#<‰­Ô$nÁMSÎ>t“ÇÄãTˆ8ãß"Yñ‡ ~oóµhSƒ‰>p™M›˜;hšð[ì°Þ=`V„Jñ±7}ëb»¾íœïÛµç9›§ ޼™ëò¹¿ÿ(³ÿ¦Bôù)£“bZ [ þµÜG£“É„n·‹çy_]@üñÇ9wîÃáGy„££#¶··©V«ÄqL¿ß§Ùlâû><ðŸüä'_r‚›×ᙜ*°üÞ|©ÅÞZÏœ(ÂõÊÿe^±O°Ô¤…SÚ"yi–¯Û³Ç?q ¾ýlyN³4«o”èù:„U+CX[M1òšÂ@-Œ#¨n¤h%p³œMzdCìøLk!nT0¨Ö9ÖÁ¨÷Â1ÕsujAVº5 ¨0eF•ú¥š•5˜¬Tx »ó²nÎpØg“6ý…XŒOB“ÍÌâ‘"ʙÓOÜfãÛÏÓ¡GDH)§¸ÃI ÉpèÓaFÈ:8äÜ䌵š1ñ´•O$cLuBÑ`ÄkÜáJæˆëŸC<ø-L“YÕeÝÙ'Þ NV˜Ê*N£@ÏÂÑDÃáÖw#%Ï=¦½:Eê玑AA”T¾¡V’µ=òÄåöîy6Oßbbj4Ýÿ»½3ê¼úÿç¹wîÜÙìïØxc)Ê’¤-ai%@üª KTBDÙ[µ*mZŠ„’ÌIU)jÉÒ* 5TQ! $CÒâZ Æ›ŒƒmÀà}ÆöÌxæÞ¹÷÷dž¼zßO~úEoÎ?h̽÷<Û9Ïóœå{S=´\> ®áp…‘r ¢'† R²P›ôv;Rº²‰MÑ‘Ò5\Ýè×dËM`ZEY4„pã•xfn\ýŒÜÿ3œNR(¤?>¼¶94âÅOºh#‚J“œm“ÚT²ôfFHðºü´‘æ°AØ$´IS‘•ÄLLU"¦É¨©aŒnQM¥¿ï&áš«Ø&N³*vi §XõaM/èWì€X†‚¡ º»œ4uænt!}l‚ ³R ×Û̘¬Oˆ¢t{©S[Hhó®›'ã÷¨!õd«]dúòH‘:é’<ø/§Æ”ü¡T„бƒ=–Îuu…p†IUŒRÏa S2R,ˆê.›—:}F“ŒqN¶¬bY1ró[0Ò×ɯ 2´hg>APv`†Úiæ-©ÄUºL~ïÂgàãE£ZŠ/@rÄÙ]4QEÁÒ¢dÒlËÄ0%.w×0Ho!¬;‰)6ò"·ÑT…†Œ\ô ‚ÓF϶•ÚCéV†¯7Dg0•°äÁãîÄ•Òi•–í¶ÎR~ºLÁ` ¡.7ã•£›ÈF·ÏÁ'y-ä§vàt…ÑRm„²ûì×rC·Ûí 6ŒåË—óÞ{ïQQQA8l•ŸŠF£¨ªŠËåJüísºBe´uó–z€ z ²¤Y›·Å-s"~ð÷Åøn0S­Ê‰è&a¿šbå• 'wéG')„-cy¼*¢T{ M¸ ðÝ8ˆ¢ÐFQìV=<ø±¢žoQÈi“Óh"Û*ê‚Jcwmþ,bA…Øm…˜;^tÅZºA8Å ~’ƒ”ZÄNä®61®Ê¶†´Tª€B0 º@9ˆèÑT»•©Ç7IQ¨aAÜ4wdYœN×T>ÉJÔ èuÓN:a ¸ÁxñãCÂàV´€@[º…IÑ„ÁÖØ›ýÁt•6ÕÇMQ@-ÅñâNV…Éà Í&\˜Ýº°i)2Q¯‘N#ÙØH¸Ûa³kR :þì0`˜AètzhéÜ"Ÿë &ˆ›[ÍÅhŸ9Ð'DLh˜w$(¶.mžtj)&†Lk|ÞÚ;2èþ,ìnˆg»  (°ö›H¦U+€—2éŽW4B6è”0°,‘øEѦ[¢ÍîC˜&7E.3ÌJqkëGÄaÃè23áF÷CXÈ¿XÚÚáÇyòÉ'™1c¿øÅ/hll|¨Ã¿Xµj•9räHt]§¾¾ž~ýú …èß¿?Ÿ~ú)«V­bùòåÌ›7÷ߟiÓ¦ñƒü€»wïò÷×¶¢`Áòš÷"ºî¹ä, â×i½×ëgÂ/"zYëM¬—^íæƒÛ%°q=bµ-þ¼½¾'q?&¼ôÀ8‹{í× åxD¯þôÆd6ïõO“”¨vÿ3.†Þ.ñÀøÄÿD­uK¯ñ4…¸‡3ÃCT­{IDAT-À”⿉c>÷î,ÖóšP°›QDÌŒc\‹ÄûÂ0­ß=<5°«ü¿$¬ÃS¯o›LqÏ”bÒS_Þ´þ"îÍ`O|€wUXxÓF³‰D$ võ^*aÏ·z~[ï[9Êf,ÐLdôÔf¶†(–éÁü&þ¼‘èùvwD"¿_>?]´ô ÌÇÌÔ©z¥[|žTõííåœ8q‚ÿüç?¬\¹’ãÇSQQÁï~÷»¯å†ÞÙÙÉOúS^xávíÚÅSO=Å[o½ÅÒ¥K)--eÊ”) <˜5kÖð«_ýŠ?üá¼ýöÛ ÓáG•QyêÃûe«·¬÷e¸Ý“±°*)¾¶ãëÙH$z t”ÄoâÿÊèÃ$ª °+ñua‹¯Ñ«{)ÁÚN %ÑDÝ´a˜ñôP]Üß¾^²-IB60ºuLEE`j"¡[$›–î¥ØöÈ—0ñ ?Š®Ýëo¬¦C²N81]ƈI÷ D²Œã3ü„;º$ÍF ›…yϬ‰!c¦iUšËˆµZr% @*²b¹óH`™Çt±¨ 1«²›]D­y° L!ˆ¢ŽÈHª -f·ÆÈ¸w)uÛ‚¸ ‚ ºjC—äHŒ‰ ³ÓåûÆS‰i¤íVms»JTQºÅLCBëÆºÙ )Q‘/ÃlEº$Ó­::¡gMDuû½x«¸GÌ'üV¶è.9>´Jð4Ú3&,¥hHL4&±ÿýOôüókyõÕÊÿö™§Ÿ.àí·_ãå—_fâĉŒ;–’’æÎˈ#¾ü†‡ÍC‡!Ë2Ó¦MàèÑ£tuu1cÆ E¡­­ÒÒR ÄØ±c¿ Ùý†¾¡/@/^dçÎlܸ‘={ö ë:óæÍûÚöçÎ;|ðÁ 6Œ1cÆ8xð  `ܸq!¸|ù2§OŸfÒ¤I|³¾¡oè жmÛÈËËcúôéüò—¿dÍš5äææ~éïÈ›6mZ7lØ0yädYF–eÌðáÑeëÔât:5jùùù‰©¨¨@UÕ¯$ØÇ4M®\¹Â¥K—ÈÊÊÂn·‡9uê¡PˆÌÌL„ܾ}›³gÏâv»q»Ý}âF©¬¬äêÕ«‰ï}Õ<êëë9sæ ­­­dee!IW®\áÊ•+dee¡( ‘H„Ó§OÓÚÚJ¿~ý’6ΑH„'NпLÓäüùó|öÙgäææ"IÁ`O>ù„p8LfffŸùUVVrîÜ9jjjÈÍÍEAee%uuu žœ:u MÓÈÈÈHJ?›››)//§³³“œœ¨¨¨¸o{Ú•••…ÍÖ÷ŒNŸÏLJ~Huu5gΜaáÂ…_ëÀ¸””}ôÑ„_Üáp0jÔ( °˜YYYŒ=¯×{Ÿ_¹r…ììlEIz»Âá0•••÷áݹs‡ŠŠ \.'éó«ë:/^äÂ… (Š‚×ëEÓ4ÊËËimm%;;!­­­”——#ËrbL–b±.\àüùóÄb1222¾ržÊЕ+WÈËËû/õbCCgΜÁår%E?~œk×®ÑÜÜLnnn‚g$!==!õõõ|ú駤¤¤|Îü°tíÚ5ªªª°Ûí¤¤¤pñâEª««º8S^^ŽßïOZLLVVo½õ555hšÆìÙ³ê;òºuëÖ}Ù—‚Á +V¬`À€lÛ¶ &àt:“*¤º®³{÷nÞyçÆŽKFF%%%8N:„ÏçÃápPRRBaa!¯¾ú*S§Ní“ Þ¼y“òòrl6ýë_™0a[¶lùJyöÜäÂá0'Nœàúõ똦Éßþö7\.{÷îeòäÉlݺ•¶¶6***ƒ 2$)ã¼wï^V¬XÁÒ¥KùðÃ)++#rôèQÆÇÚµkq:¼ÿþûø|¾{QËA†a°zõjŠŠŠðx<°ÿ~***}{üñÇY½z5>Ÿ½{÷’ŸŸßg¡¹sç›7o¦¨¨ˆp8Ljj*ëׯ§°°×_I“&qìØ1:„®ë=z” &<vóÂ%ËL˜0¬¬,¦OŸNvvöÿº›ÇÉ“'Ù½{7N§“={ö0eÊ”¤ó¸uë‡âïÿ;óæÍ£¹¹™uëÖQPPÐO'OžäÝwßE×uÊÊÊ?~|Ÿæ·½½£Gâv»ùË_þ¨Q£Ø±c~¿ŸÊÊJZ[[2d¿þõ¯)**bûöíŒ3&q¸xÒ4ªª*$Ibûöí³sçί”gï Öïÿ{Ž9œ9sX³f ªªRZZšØLW¯^Maa![·neÚ´i}Ò‹mmm¬^½šñãÇãt:ÉÍÍåùçŸ'--üãäååaš&6l ??ŸW_}•§žz Iê[Eðýë_¼ûî»äçç#I555ìÞ½I’(--åûßÿ>¯¼ò ¡PˆcÇŽ!Ë2 èóøz½^žxâ òóó™9sæCÝCõþÔ©S<þøãÌœ9“Q£FqæÌ™¤ ©¢(üæ7¿aèС‰Sx}}=óæÍcÞ¼y9r„“'O2vìXfÍšÅðáÃ9{ölŸx³xñb¦M›†¢(466ÞÇóƒ>àäÉ“Œ7.i<ÆÏ÷¾÷= ‰F£–-[Æ‚ ¨­­Åï÷'eŒ].C† !==ý¥)±´´”ùóç3wî\ü~?ÍÍÍIç1`À~ûÛß&n…=ó;sæL† FUU»víbùòå,Y²„«W¯ÒÕÕÕ'ž,]º”'Ÿ|’‚‚êêê8wî ,`Ñ¢E”••qá ™={6“'OæØ±c}⩪*?üá5j>ŸP(DUU ,`áÂ…|ôÑGIçÙCûöíã±Ç#55•p8L]]?ùÉOzñÔ©SŒ3†Y³f1bÄ***úÌ3RUU…‚öövºººxæ™g˜3gGŽáã?fòäÉÌž=›‚‚.]ºÔgž[·neøðáÔÔÔÍøùÏÎâÅ‹9wî~¿Ÿk×®%tñîÝ»“¶Ž333ùÖ·¾…Ãáxxýú0/utt$L9iiiIS~ÿuuu%Nš‡`0ˆßïO€Üx½Þ¤µ£ç˜––ö9žííí÷ñ I9ý¾÷Þ{?~œÜÜ\@b|UU% ‹ÅPU‡ÃA÷—ŽÊþ¯Íwo¾ù& ,@–e4M#‰àr¹B`·ÛéèèÀn·#Ë2n·›P(ÔçÍ|ÕªUüìg?ãüùóìÝ»—h4šàiš&ápUUBàóù’2§ ´µµ1kÖ,þøÇ?RSS“˜CÇCWWáp§Ó™âŠF£|CÉ1‡;N$IÂétöy } ‰ùMII¡³³3!S²,#„@דƒæ÷ïÿ›––FŒ¢(ȲŒªªèºžHùHMMMŠ®hkkcçÎ466b·ÛòÙ›gOßSSSéèèHФ¼¼œ©S§bš&‰Ã“Çã! ݧ‹}>_ŸûêõzÙºu+3gÎäÏþ3.\H¸«ztqï}(YºâæÍ›8FÍ–-[sØcÍÑu!D‘Œ9M&=Ô†^PP@}}=µµµ~å MKK£½½Ó4ihh ''‡ââbjkk¨««KJ;öíÛGUU+V¬ 33ó>žÙÙÙsãÆ¤ö]Á¢E‹xþùç9zô(yyyÔ×׋Åèîî&-- »ÝN  ±±1)¦ÛP(DMM o¼ñUUUìØ±ŸÏGss3º®£i999tuuFihhHŠï¾¸¸˜ÜÜ\ÆOCC)))´´´ÐÝÝÝn'==@ €®ëܸqƒ¢¢¢>ó8p #Gޤ¨¨ˆ¼¼<<ObýÞ¹s‡~ýú‘ÍÝ»wéêêÂ4ͤÄF|CMSSº®ã÷ûÿŸX*òòò¸yó&¦irçÎrrr(**¢¶¶–`0ˆUUûÌçØ±cìÚµ‹-[¶àóùˆF£D"ÚÛÛq»Ý 0€ººº¤ê§ììl–/_δiÓ¨¬¬Lðôûý ž½ub2/]ºD[[/½ôgΜ¡²²¿ßŸ߬¬¬¤ëE»ÝΠAƒ(..&//UUillLÐûõëGaaaÒõÿÀ3f #GŽ$ &t±¦iȲŒÓéDA(¢¶¶6)ú)™$LÓüÒ™u±XŒ^xMÓp8 ?k²iãÆìß¿ŸaƱaÃŽ;Fyy9Ñh”5kÖ™™III ±X §ÓÉæÍ›ûäC9þ}:Û·oO(ŽY_¬«V­B×uš››Y¿~=MMM¼ù曘¦Éüùó™8q"¯½öÕÕÕD£QÖ­[×çƒDKK «V­Âåráp8xñÅÙ´i‘HUUÙ´i7nÜàå—_Æáp0iÒ$æÌ™óÍnœª­­eË–-(ŠÂw¿û]–,Y’t ¼ôÒK>|˜¹sç²råJ6oÞL4Åét²nÝ:nÝºÅÆq:Lž<¹Ïó{ûöm¦OŸÎOù„7Þx§ÓÉ”)SøÎw¾Ãúõëq8Lœ8‘¹sç²gÏÊÊʇÔ””0hРÿoäíÿÌõ7fK‘ÈIIEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_smellit3.png000066400000000000000000004676161323370031300211010ustar00rootroot00000000000000‰PNG  IHDRôÆ$r˜sRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ !#~N IDATxÚì¼wx]Õ•÷ÿ9åö¦Þ{±d˲ä&ŒLM`ãÁ’ÄdÈãPl xB d„7!_„“€qŒãnÀËMÝêíª—Ûë¹ç÷‡ä3(˜™öNâõ<úC÷ìsÎÚkïÕ¾kÍúõëÕÇ{L}â‰'Ô?ýéOªÇãQUUUwïÞ­þüç?WÏGgΜQ÷îÝ«^ éô³ŸýL}å•W>ÕØƒªßþö·?öúÉ“'Õ}ûöý§òwüøqõî»ïþTcÔ¯ýëù}``@½óÎ;U¿ßÿWóñÌ3Ï¨Š¢|êñwÜq‡Z__ÿY¿úê«ÿa™ ©·Ür‹êóùþêgôööª7ß|ó'ŽÛ¼y³ú«_ýêof¿ï{ßS{ì1õ?øúòË/«###ªªªê©S§ÔG}ô¼÷tww«›7o¾`,þŒÞ|óMõÉ'ŸüTc›ššÔ5kÖ|¬µµµ©[·nýO寳³SýÚ×¾¦F"‘OÛß߯~å+_QÀ´ßC¡ºzõjubbâ¯æãå—_V‡‡‡?õø|PÝ¿ÿGdý£ýè3¿{õêÕêÙ³gÏ{-‹©+W®Ôtà/Q,So¹åµ««ë¼×ï¹çµ¹¹ù¯’üÊ+¯°{÷n;wîäü#/½ôsæÌ!??€¾¾>ººº0›Í³wï^Ξ=‹ÉdbΜ9¸Ýnººº0Ìœ9ƒÁÀÀÀ‘H„ÑÑQDQ¤¼¼AP…¦¦&Ün7¹¹¹ddd …hhh@QÊÊÊ0™Lø|>‰F£’œœÌù¨§§‡ÎÎNA ¬¬Œøøxíz8¦±±ŸÏGvv6ÙÙÙÓxÈÉÉ!33¿ßOCC’$QVV†^¯§£££ÑHoo/……… ‘e™Y³f¡×ë‰ÅbÔÖÖ¢ª*‘H„O¢¶¶6FGGñx<ÚoÑh”ææf¼^/¥¥¥X­V¶oßÎàà :ŽÊÊJΞ=Krr2”——3<|ø0?ü0²,³eËW\qO=õdtt” 6pÑE±mÛ6úûû±Ûí”––rÝu×166F4Åï÷óƒüUUyíµ×p88nºé&<]]]üö·¿eÅŠœ:uŠûï¿NÇ›o¾‰^¯çꫯæ¿ø»wïÆívó›ßü†eË–ÑÝÝÍÚµkÑétlݺ•h4Ê 7Ü0-øéOÊ—¿üeøáHMM ‡±±1JJJxøá‡©««£µµ•M›6qÕUWñ›ßü†§Ÿ~Z €Þ~ûmÍ™ªªÊ}÷݇ªªlß¾][ëx€ÆÆFZ[[Ù»w/«V­šÔ;vŒ×^{ NÇ+¯¼B$!++‹o|ãÜrË-(ŠÂ¿øEn¸áÌf³füþõ_ÿ•={ö …èï裡¨ˆçŸ—ËEgg'üã¹êª«Ø¼y3­­­Ì;—¶¶6~üã³bÅ ¾þõ¯sæÌ<Ï>û,ÕÕÕìÚµ‹‹.ºˆû¼<ü~?<ò:ŽææffÍš…ÍfãÈ‘#$''“••õ¿Þ¡ÿìg?ãñÇ'==ªª*Ž=Š×ëE’$^zé%ª««¹í¶Û4˜˜H]]'Nœ 99™‚‚öíÛGcc#uuu¼ñÆ\yå•9r„o}ë[èt:vìØA__UUUüú׿fÆ Äb1ZZZX´hßûÞ÷¨©©ahhˆ 6pùå—óÜsϱoß>TTTðãÿEQÈÍÍÕøw:9r§ÓÉã?Nyy9ÅÅÅÚõM›6ñ»ßýNs¼‹/æ7¿ù ¿ÿýï‰Åb477³hÑ"¾ýíoS[[«íù+¯¼’W_}•ýèGèt:?ùÉOèèè ««KÓ‹7ÞxƒŸÿüçÄb16oÞL^^Ë–-;¯¬¸ë®»ÐëõZµråJ~ÿûß³iÓ&/¼ð‹-âÈ‘#Ô×ד˜˜HAAßüæ7µ¤CEþå_þ…h4ÊÎ;q¹\”——³bÅ †††æé§ŸæÆo¤««‹µk×"IÛ¶mÃívó…/|A“K(âW¿úUUUx½^þùŸÿUUÙ½{7ƒƒƒÜ|óÍZÀ ð“Ÿü„o¼‘ŒŒ ^|ñE¶nÝJ8¦··—ŠŠ žzê)öìÙÃÐпüå/Y±b{÷îeýúõFTUeÏž=$$$ I‰‰‰Ü{ï½øý~:¤­ÑøCöïßÏÀÀo½õW_}õ´u?{ö,/¾ø¢¶¿Z[[™3g·ß~;7Ýt‚ °víZ***4§ ðÆoP]]M `óæÍ òòË/“™™Iff&Ï?ÿ<¸\.ž~úi.¿ür|>÷Üs¡PˆÐÞÞ΂ xýõ×¹âŠ+ذa{öì!àt:©¬¬Äf³ñ /píµ×b0>“NÊÓ¼»$‘““C__ ‚@ Àï÷³`ÁæÍ›‡ÙlfñâÅ$&&òõ¯€Ë.»Œ]»va·ÛÙ»w/k×®àŠ+®àÞ{ïåÌ™3<ûì³TUUqäÈ^{í5Ìf3ªªÒÐÐ@cc#ßùÎwƒÒÚÚÊÀÀÕÕÕ\{íµš!¿ÿþûILLœ6ùóçSYYÉÃ?Ìý÷ßOYYï¿ÿ¾æúûûÉÈÈàúë¯'++ §ÓÉ¡C‡Ø¸q#‹UU©­­%ðøã£ª*—^z)CCCÜ|óÍÜxã¼ýöÛx½^/^L$á¿ø}}}¼ð ìß¿“ÉÄÈÈÈ_ö/ùKyä/^LVVGÅét²k×.Ö¯_Á` ¾¾žS§N±lÙ24‹¢È#<‚ÕjeõêÕTWWSRR‚ÍfãøO<ñIII¬[·‹ÅÂêÕ«q:¼øâ‹¬[·ŽË/¿œmÛ¶±uëVÆÇÇyýõ×Y·nf³™ÖÖV8À|Àš5k¸á†Ø¿?/¼ðÂ4þEÁétjQ«Ó餬¬Œ•+W’‘‘Ó餾¾ž7ß|Q¹õÖ[©««àºë®ã›ßü&O?ý4wÞy'’$ñÈ#0kÖ,*++ÉÈÈ`Ó¦MTUUÑØØÈöíÛ£GžWžW_}5ëÖ­ãìÙ³|ç;ßá†n ''‡ãÇk[RR’6Þív³}ûvvîÜ©eH###ÄÅÅqß}÷a³ÙX½z5ƒƒƒ»†±XŒo}ë[311Acc#¥¥¥tuuq×]wñÀ°páB<ÀÒ¥K)//×3''‡––/^ÌßÓÕÕEYY™††ŒŒŒPYYÉÂ… µÌ¬­­;ï¼€eË–±}ûvB¡µµµôööjz½~ýzzzzxàøÊW¾Â›o¾É³Ï>Kff&ªªÒÕÕÅ»ï¾ËC=„$Iœ>}šššúûûÉÌÌdåÊ•Zv¾zõj-°û0¿………üüç?gÕªU\qÅÔÔÔàr¹ÈÍÍehhˆøøx>ÿùÏ“ŸŸÛífË–-üâ¿ ++Kã¡©©‰Í›7#Ë2_þò—illàsŸû÷Þ{/uuuÔÕÕi6î§?ý)MMM¼ôÒKüÛ¿ýÅÅÅFÜn÷ÇÊö•W^áÖ[oåæ›oæðáÃ<û쳄Ãa^|ñEÖ¯_Ýng``€;v°téRÜn7ßøÆ74½]¿~=<öØcSYYIff&¯¿þ:«V­Âl6s×]w‘žžNKK ---ìØ±ƒ•+Wrûí·súôiüq-Iº÷Þ{‰Çårñ§?ý ‹ÅÂ%—\ºuëhnnæøÈš››µlÖét’ššÊ5×\CNN7näСCFî¾ûnöíÛ§í‘uëÖ![¶láË_þ2………¼ð Øl6æÏŸÏçãÅ_䦛nâ­·ÞâСCȲ¬­ÅŸÓÂ… ¹ÿþûñx<¬\¹’5kÖ°hÑ"vïÞMaa!ªªRZZzÞ{ÓÓÓ©¨¨ ¾¾³ÙÌÛo¿MUUƒµk×RZZŠ^¯çõ×_G’$âãã™7o>Ÿ_ýêW|õ«_T¦§§³bÅ ²³³ƒÁ€Ñhdxx›Íö™tPüsƒÝÓÓ3 vš1cO<ñ‡æúë¯çرc‚0 b¸ë®»(((`ùòåèt: æ8gLÍf3¡Pˆ@ €ÙlF§ÓiÃÄÄ„»µµµ±jÕ*yúé§‘e™uëÖñÝï~€ŒŒŒD,Š¢ðì³Ï¢×ëY³f ªªÒÓÓCkk+n·›G}”‚‚žxâ î¸ã¼^/&“i^¯‡Ã(ŠH’„ÝnÇï÷h²˜˜˜  ÒÖÖFww77Ýt“æŒF#‚ LƒúÏGG‡(Š„Ãa|>ÝÝÝ´µµ±téRŠŠŠ>r¯ÕjÅjµ0>>ÎØØ­­­Äb1-‹¶X,˜L&A@¯×Fñx<¢áp8$‰H$‚Çã¡··—¶¶6æÎKYYÙ´±v»}ZtýaÈéôöãÿ˜øøxyäÖ¯_O(Â`0 Ë2¢(bµZ5(ñÃ{êÃ4>>ŽÛíÖÖëK_ú¡P³ÙŒ$Iˆ¢ø±r=÷û¹àPQ¾úÕ¯òòË/³aÆiŠs®ü"˲¶‡Îíc»ÝŽ^¯×Þ§( ¢(‹Å4xîéõzìv;€Vv(Š¢)àÒ¥KY·nÛ¶mãºë®£µµU DQäo‘ÚÚÚ¦ÁÛv»_|‘ºº:nºé&¶mÛ6m¼×ëå®»îÂáppÉ%—àp84y&%%!F£‘H$¢­ÅbÑÖÎï÷‰Dèèè ­­K.¹„¼¼<{ì1²³³ùþ÷¿¯ÉÉÉÚ½¦?ýéO466òàƒ"IN§Sƒ°ï¸ã–/_ÎsÏ=ǪU«´½üaÎÙ´s{'..N+mÛó.—‹H$¢Ù¸•+WO$ÑžõilÇ9Ý´ÙlZ bbbBã¹°°E‹M³Ïçöé¹òÛøø8‡¶¶6Ün7_üâEQCÎéS8Æívk|Y,MoÆÇÇ µµ•ŒŒ ª««§Ù6³ÙŒÑhü¨³ùN=øàƒÌž=›§žzŠ5kÖàv»EQ³¥ ZY2--í#s:LJßï§­­¾ô¥/¡ª*ƒN‡ Ú¼Ïg;A@§Ó¡×ë ‡ÃÜvÛmüö·¿eÓ¦M¬X±âcËbüãÙºu+K–,aþüùx½^t:¦ÿñññx<&&&ðù|·ÜrË´ç>úè£ñÄOpçwj{LUÕóÎùú¹z@]]Ï<ó ÑhTËTUehhˆ‰‰ V®\ÉÌ™3ikkÃjµÒÝÝMGGY–ÉÈÈ »»›ááá}YNNªªòÆoÐØØÈ©S§¨¬¬ÔjóÕÕÕdggcµZ©««£ªªŠ¯}ík?~€ýû÷3111í™Û¶mc×®]Üxãtvv¢( _øÂ¸ãŽ;(--åÔ©SÌœ9“5kÖpöìYRSSE‘-[¶h<”——ÓÜÜÌÁƒÙ±c¡Pè#µÑÅ‹#Iååå,[¶Œœœüîw¿£¦¦†;vh™ÉÃ?ÌÀÀÀ´g|þóŸçù矧®®Ž×^{ EQHKK£´´”ääd–/_NII v»‡ÃA{{;©Íÿã?þ#.—‹eË–±páÂu–粄^xºº:6nÜH$Ñ"F‡ÃÁòåË™9s¦ÿÿö·¿ÕƃAþÁÉÊÊ¢¿¿€ššæÎË­·ÞJ}}=)))Äb1vîÜÉ¡C‡èèèÐjR&‡ÃÁÉ“'äšk®Áår±téR-ZDFFÙÙÙ„B!vïÞÍ{ï½GMMÍÇÖóÏœ9믾ʌ30™LÌ›7––úúú¨¨¨˜6>..Žääd6nÜHSS§Nú‹Ùæ¾}û¨¯¯çÕW_Õ ÑùHJKKyôÑGy衇hjjÒú:n¾ùfq:tvvžW&ÿ›xCC¿þõ¯©­­åúë¯×®ùý~ÚÛÛ¹úê«Y¾|9uuuFFFFhmmÅãñ ( YYYŒÑÑÑñ±ï‰‹‹#''‡—_~™¦¦&Ž;F~~>ééédee±|ùròóóIHHàäɓ̞=›5kÖhk\SS£õrœ£'NðÌ3ÏpÛm·Ñ×ׇ×ëåºë®ãŽ;î ªªŠÓ§O“““Ãm·ÝÆàà z½ž¼¼<6lØ@SSG%//¯×Ëž={4HõÏ3»òòrEEETWW“››KBBUUUüîw¿ãÌ™3lÞ¼Y³¹O=õ”†l£K/½” 6P__ÏÆ èõz.¿ürt:Ë—/göìÙÄÇÇc±Xp:´··D‡¯¾új<‹/fñâŤ¥¥iÉÍŸÓòåËÙ´i“fÎ9®k¯½UU©®®fΜ9$$$°lÙ2¶nÝÊ™3gØ´iãããyÞ¬Y³´Àöĉóµ¯}b±yyylܸ‘ãdzÿþó¢X‡ƒÚÚZúúú¸ì²Ë…BÌŸ?Ÿ¥K—’™™IZZ‰‰‰lÞ¼™#Gްÿþ­ç;vŒ×_ÄÄDÈÏÏG’$vïÞÍe—]ö±{Ñív“––†ÍfÓ|Ó¹Àíµ×^£¶¶–Í›7³|ùr.½ôR‚Á .déÒ¥dggO“÷‰'())áÖ[oÅét  …B„B¡Ôï?U ý+_ùÊcÍÍÍ477“••Å·¿ýmÁ`‹ÅBff&;vìàƒ>`æÌ™ÜxãäääÐÑÑAMM ‹-"33“={öhMN ,@Q’’’ÈÎÎ&‰DX°`Ë—/çÀœ8q‚¸¸8fÍšÅÒ¥KÙ»w/'OžD’$***8yò$ï¾û.ÃÃÃÜwß}$$$°uëV µ àäÉ“„Ãaš››9sæ ùùù,/gÏže÷îÝ´´´hHBuu5‡âĉ8ÊÊÊX°`;vì`hhˆ|ÄÄD<………$$$Oii)»w禮¶V«mWWW³ÿ~z{{¹øâ‹™1c‹…?üá¬\¹rZ¤Z^^NOO'Nœ`É’%äää0gÎ/^̱cÇxÿý÷ ‡ÃTTTPXX¨9òòrü~?]t€Öıwï^ººº())!99ŸÏǼyóE—ËÅìÙ³Y°`###;vŒ… ’““CEE‹/æäÉ“>|¿ßOEEååå:Äܹsµ±ް].===Ì;—ÚÚZöîÝK__wß}7999,X°€wÞy‡öövÖ­[Gnn.>ŸŒŒ ­·¡¤¤„7Þx¿ßÏŠ+°X,ìܹ“ÖÖVrss)((`Þ¼yìܹ“P(ÄÒ¥K©¨¨˜?ùý~ŠŠŠ8vì˜uC^êë멪ªbÉ’% H.ºè"Ž9BMM à÷û™;w.’$i5Å¢¢"<GeÑ¢E¤¦¦RQQÁøø8óæÍÃ`0h–III®¹æ***رcEEEìÚµ‹ššª««¹òÊ+5ˆôž{îù›ÈÒ‡††8}ú4Øívzè!RRRˆD"ZÏÌ®]»8zô(ñññ¬Y³†ÔÔT¼^/û÷溺¬Œòòrvî܉N§£ªªŠ9sæ Óé0̘1ƒX,†ÏçÓÖ³¾¾ž÷ß_k]¾|9ûöíãƒ> 3wî\Z[[Ù³gmmmÜÿý¤¥¥±ÿ~¬Vë´šh]]>ŸöövN:Err2ӚжoßN}}=·ß~;³fÍbÉ’%466räÈdYfîܹ,[¶Œ;wÒÑÑÁÚµkÉÏÏ'’’BVVƒE‹ñî»ïRSSƒ,ËÌ™3‡ªª*hhhàâ‹/&77—¼¼<ž{î9V¬X1ÍΉD8pà€Ö°\YY©ñsðàAÆÇÇ©¬¬$77—‘‘>¬5ò-X°½^O~~>6›MÓ·œœrrrcÑ¢Eš̘1ƒ9sæ Iï¾û.³fÍ¢  €¹sç²dÉ­L7<ø f[ÆÆÆ°Z­ÓÓ;ìÙ³g3wî\êêê´uKOOgÖ¬Yøý~²²²x÷Ýw¹æšk¸ì²Ë´úúŽ;hjj"--‚‚\.sæÌ¡¯¯]»vÑÙÙÉí·ßNaa¡Vö¹êª«>»R^ø`ä?ŸÆÇÇÕC‡ýMÎmllL]¿~ýè³µÿJÚ²e‹ºbÅ Õétþ?ÉÛƧvèo—"‘ˆºsçοٹ­]»ö?ôÙÚ%íÛ·O½öÚkÕ¦¦¦ÿQ>|ðÁý¤í“HP?î› OAÃÃÃô÷÷“››;íÓ  tþ§hÓ¦M”••1sæÌ ÂøŒ¢Ñ(---Z¦ø·ÚKpþwÒöíÛIIIaþüùÿkçðW;ô‰‰ î»ï>–,YÂÉ“'yúé§?¶s.к@Ï?ÿ¼ÖÐù¹Ï}ŽË/¿ü‚P.ÐúO$ù¯½ñ½÷ÞcÙ²e¬^½š‡zˆ––fÍšuA¢èï–6oÞLww÷_³hÑ¢Ôöÿ^hçμúê« ðä“O^pèèïšz{{Ù´iÓ'Ž[¾|9sçÎý¯uèçNkHIIѺÛkkkùÍ_Åœ¬'.æFbE#úX1¦B ‚:*% ‚JDÔ ˆÄˆ C@%‚!ô„c@Ž)D#:&;¾U„© D‘PˆbF!„0EÆ@…:DbÄTEЩd!J*z¨¨(H¨H(S¿ŒB AãQBAñ‡1™Ñî3¨!D%FDÖ¡ !#ŠL KÌGH4 ¡ C@ºþïð£Ž1D$í>PP‘à ,"1Ä)AbòsA‰"ªÆï¹çA‡Š€ ªÈJ”¨,OòN"²Eˆ©„¤ÉµRˆúÃèÍ2ªö^ …(2Ñ©­$ "¢ QDT¢HÄ&לQ&ß'T"üûg"1Möçæðƒnê½çøÓF§F zTÂèQTt±aQ?µ– ¢bRš² IDAT*Eß)A”0zíù"1‚~ã‹+ocÆŒŸJ'ö>÷i{öüå@øÿüŸ¿[‡®( ²,“˜˜ÈØØ˜öûÑ£GÙ¼gF³‚?1D¢‚¬í+‘’ªLê-Í>H(ÚÿQujÿ 1 „#ABLÚ‘Ø”>‰„ÑcVüxC"FóäU‘)½1†B„ ÿ¾Î锄‚S•˜ Níõ˜¦O7©#”LÚ™èä^õG1šEmlIUÕ(aQL”“×T$UÁ¨„@…¨(‘t“<«"‚nšîI(šnã#ŠLÔÁ® HLÞ£‚NôˆBLÓ=‰0zέ€‚ˆYÖìø9{%ôS¶öœ¬¢Èèˆ ¢  £‹Eˆ‰"Q$tD5û|Î&+ˆS¶uÒ"Ÿ³SAŒ˜(sçWïüØÓ ?Lmmmœ½÷^Ò?aÜþÿûÿëzVV––ôööríµ×jL¾í`nußš¹•Da”ZSyn¬/R$Æû ‘b îzd}„fSÂL"‚Žn2Qqc§6 h¥Žr*†x3ù2è›r®5ŒQð’N?-{zð/½Œbs+! Ô3‹Q’˜Ë Ò¤‘™˜q£*ãb©ª“¡‹aQUG) Œ ‰„0àÃŒ½žrñ*)±!Ä4‚é%d†Qzó$ËVÄ!cˆT*¢§IñÒ`›;!Äé“¡‰jæ:ïÞµ-GG3Œ% BèQ)žf\ŒC/† `bœxTü˜P)®mæ`ís¾˜Ã˜ŒŠ€/IêAŒô ˆbÁ‹‹8œäc"@:Ìâ äáÃB²2œ‘:Φr–dÑ2i b12bNŒþìaQ}ŒIô¿yšÙ+ò°áfŒDt„Ib”nrðcc˜ „H£ ~¸0ãg€4¼X1¢˜zÈÂ…ƒLºÐ¥ž2TR”!tB·h#q-°9þæ+æ¡gòe?f²ÔVò”nÎÊÅx°1B.AŒäÑA¼:A•«†#qU8ÉÀ™†˜§Ô G£6,ÁŽzÒ¤ô„ñbÅŒŸº7‡™Ÿ?JOOϧvè"ðIºÆþŽ3½^¯Ð÷çÝæõ+l”ª,™y†Q)A1'ô’…9Á^:Œ…̤‘"‘E…j &!@k¬£À@˜3Ìa1µœaÄ1Š£$2A&WïáÅÃI”\_D´2H*AŒ\üþN/(#,ë§\šÄé$0F~ ‡èbÜG=vÜSûß„Ž(c$`!€/Lø0“Â0=ä0;ÖĈ˜Dû›,Y‘Èi$2D/Y¤œÌŠ5pÀr© àÁÆ ¨D›¹ØsfFô‰4ZJ!‰|¥©ˆa24ç›Â$“ÁIŒ’Ì=äÐúF߸´NK6ª}dˆ™˜n¢F?Tq¸ˆcˆdš)% © àÂA±Ú‚^ÁÊ Ìç²¢íc—á ªÜ5$‰#øe†:„<\8è~³–y+lx°‘Ä0Ä1F"6Ü€@a¤Teˆ†JÜ‚ZÊ™GÝ”ã”Id”:f£#Œ4¥=C¤F… t2D zÂx°Âoî&E1ãÄãÇŒãÄ“Ì0ñŒB$1‚ ;=äE/ñŒ1HEÁ6üF=d“K}d2A ñŒ3D  ¢N%f|XðsäÍQ†íE *‡>™d}²ÍøoÜ«««¹ï¾ûøîw¿‹,ËÓγ]‘ò¦Ô$¯¿K4q‘r˜Ü‘^:’²1 !2T'9¡^6Äß2oŸ1¸™·áÁN2Ã|… ÔSÆ;\NW´¾ÇÉ{8ÎRbg(ˆtð¼~ *ƒ„YJ-os=nl$3ÂÅ Œž F¼Xé'"©…k”mÔSÆNñ*B¸2´‡å,?·Lžd¶X}ŸžüÉñ “Lc\íßÁëõx°Ç×F·qB®äÅ$Lõ$1Ì+òɱw“é¡B¨e—|%A dÒÇB¥†”Ð6››SÌ%†H#ÑBbl”~18&(ïl$” ãÿKXƒ+8)¢•zÊpàB±KäG;É‘9‘2—0zþm´ ùœ¦¸œw°á¡“| i£ˆVT¶r-! dÅz¹JÙ‰lˆ¡ ÂÀ{\JŠ:ÄÚþ_òAâ<ŽÛ‹°ã¦$Ò‚(Gùéø°Ê3Ôö Ëé# ™(K9¸€8\,à8ÇYÀYf`ÁG=HÄØÇr"è( Q’8ÍbHÌ¢žkÆ·ÓnÈgØ–H=e„0C$™Zæp†!Rh¤”«¢»èóxI^ ytr5Û8M%vܤ*C¤8‡±Ç¹ñb!„BÚ8.ͧCÊ#ˆ‰«ØL„Ã\D Å”ÒLNNQ‰ z)áìgÒ ø¤ƒƒÇý _ø?ü0~¿ŸÕ«WO»vKîÛŒ9è9£ƒy&Œɦ#AUÅš ߨA=¸ˆ#1²è%-6ˆ]t1,$Oy?|äÓ@Œ,z1ªAâ˜À"øa [í!Õ;DºÁL&fä*=(’D/Y£2cNºÉÆD^l‘Á.¹1èB ‹I8p‘ÄŒØñA‡‘àTð©bÆO ‰lzÈRúðŠ,ø‰CÂ:ô„ÈŽv㈺-ÊbŠ=aÒ£ÄAîzÈŒõa‚ K) áÃŒ‰Éy&1B CèÔÉQü+aúp³)H‰ œ ˆiØ/IŒ`WݤFF0Ša’å!R"„=!,øH‰ cÓy©…Q JIPˆEDÒ NL0…B(’ˆI ’ !£àe ") ›@¬‚=aˆAŠk V½ƒ¢˜VlxÑ©Q"‚Lrt˜ ÙI“§pú°LÞ‹Š?‰ŒNýI ãÇB¯ÃŽ3~D"è‰g|rà#Œ3,1©±!¬²“ ^GAF£˜"!’äÀH3~RbCHD5„&65/ >¬xUF±óÙƒÑ}‚ÍPÿ»ºÅbáé§ŸÆçóa³Ù¦*vÙ\Æ´ã4Ë¥¼ut>KæÅg3Ód*A F2ÃxÍ&úIÇ@;.BF½¶8á)¸Ý‹tú'ÿWƒ$ÜGÙôÑõàÁJ³ˆTf1œ&€ ^M©$☠'N2 —hgLˆ§‡,Ò *èh2•A‡ }B&ÖÉñt$1Ì5™ FRBBѱ¤*OS" …d†qá Q¡KȦB¢ÈØñ%ì>tIQlx˜ Ž FFH¦,ÚH~>£$R’sE–'<Ø™t¼}d’bÙ¼0Ÿ3~ô„qá €™tú ¡Ç‹•0z ŽÒb˜”©g)“‘¶.‡Ã…‰ŒâÁFP0â³S˜ +d5ŠG° UÍcÝTp€VRbÄó“+v¡ áÁÊ(‰ŒÈ ©XñR@;2Q˜pá ŽqLQ b$†D4&#ª1¢S 7‰H@bU~<Ø h —,¢ÈDÐ1A>,“2r*~£ ^Ò`œ|˜±àÃHC¤ ¢ÀD#¤áÀ…32 %Uv"Ãògvèº ýciÕªU\y啈¢ø‘#-õJ˜´¬ N)†2˜QåfˆTTLj€¤‰QºYŒ“@y¸ˆc”$’›]äjÐjc„Ñ1@*"a2CŒgœ’p.£Jö¢tư!¥KÌfŒB°˜| É“´ àÆ>‰Îé2)Å‹ªôŠ“HS=~ÌSûÖ ~Ì â‘>¬Œ‰ ¸q`­*a˜! èˆ0N<ýbIÆQ`ˆddÂèÑ&&‰4™Jè0äbVýè•0Aǰ”„‚Œ+1‚%V|X°ã&Oé&%6„¼Pψ9ž Ñ^ #Š*AÕHD”ñ`Ǭúñcb\ˆG"*Œ ñä¨Ý¸^¬“H…†€ŠWµE¡zðbcH—„OoBÑI„b˜A…äª<†0aÂF@5ˆ™ñÈVLj£‚—1)—`GŠ©(âdrÊd)#*2.O¢!*ÕELðb'Ìdé2ˆ=aFH"ˆ‘™ l„ÑáÇ‚füDÐáÃLñŒcÅË ˜Š„B=.Á‹É¿Äè8aAÏ„GTÕÄHHÐcˆF¡'&‰ŒI „ïÁFºÚOνMÒgvÀŸd3¢ÿ& 8ßžÂür7¥n¥YÌå½ ùòÜ> ¢aÎZ .íÅ „ð6zÈ&‡nZ)"žqj)GG„º! †…NòH`Œ2lt 9¤3@*ƒX“¼(èù<;‰ÑJ'˜? ËÅÚ‰'&±U¤](À †Y,%ŠLŸ! úÉ¥‹ Fd¢œ•ŠI£‰V¼DБG'*Ýäp\ž‚DyÚ‰Œ"Ã…êÄ©.Åbˆ”QÏ8ñ0qVœA¡‡qâÈÀI Cè ãÇLXÖ‘“ FÜ::!ÂÆ‰G&Š3µö2¬x)V[P€ÞÀˆDnZQdB‚‘ÙÔAG?é8ÅtSï2¤Ÿt¸ÉÀ‰‚„3*PÉ)FHÒê|‹xŸ>2±âeÀ’†[¶áÃB½ïŽ4=âT¦0ƒ³ô‰è SN-¡©Z_¹Zg$„$+Äᇙ(l¤1€/}dj=“™œŠ cÄ“‰+"i:&†ãIýŒÝø c¼ÇýÜѨç£~)“,˶ È6Î5`X‡Ž(J4àÆÁT‚§jŸa$UAbø° "àÂŽ65DÐUt¨ø˜ÝÕŒ.>‚;ÎJ¯ÅB>Àƒ.r ªFĨB©Ú< ã~FI¤1F&}(ˆXUÃBåÔBL SÌaœ’&™arèF‰H$ØÇX=Š[¶ÑN3"-¤ ƒ J)ô SP"] ÆIeUh3AÉÀ)¹OÔF\·oþ8‚¤23ÒL@o ›lJ•fRGFÙŸ²”³Â$l~ ïNFî$Ð+d2‹F Ñ0fÉOP† |ÈD!™LµÅêQ†Ä$úÈDFa1ï3H*½dbˆ…™9E½a^¬Œ≠>Ì,ˆÖ`Žùñb£UŸO#Ùô å$s)ˆu°Ô}”^s:mú|HÇ>cƒY 56H(fÄ+÷áÂARh”JO- I%t“C#Ä1UõÒ,L"4YôâÃÂ0Ɉ±ÏVñþ4û:?µ …$$‘1Bé è”qêŽ'#V¦P$µ¢†$†¬)(Hô=ÙHF+l‚—²°áe˜dt$áÂA½¨@#ñØpLÕ»ÆH WÌdŒÜSØ 049-ÎÁ‡/V"è#:’•ŒBˆ ÑA9èO!@,ø´ÀXG„ âpcGG/6ÚÕ²H7vBLf²Mj ñò8vÁÍ (ˆ “‚;™ô2K OébDŸˆ_šÌ2ý˜0ág„d\8¦ÅÀ‚_kKFˆÈ2z!Œ[¶ãl#LL’`CE`XJb€T\ÄáÂÁ ¤ªƒ´ E¤ËýBL«í' #D‘ñÊ&ˆ'MB¸±EÆ}²ÁŒ:"S‰’‚.âˆÃ@n£“€Š€3tS¨ÈÊqÈDqáÀH …zÂè&GkÀ 7¶©¬VÆ‹a’Hb?fI™l¬À:…bzE«V.ñcaŒD²•>|’™`Ðúµ&ˆŸBbø1k%'È(šmç³;ôO‚Ü}ÿÓ=×ÛƒIJædb9ú$é? µ0ÿ ¥‹ÜTrŠ‚Xï$_ŒSÌ Pl#ŸŽÉL £$±c¸¤8ziø1QxÚMNA7-Ì`˜$²è#>`!>,HDÑá˜PE‚:†Š@"£t’GP4ÒI}R&ãb<³h SÈ〼 ‘9tÑÀ¬)¸i²#u'è$ 1Ž|:É¢SB%&ZæÝL Ǩb‚8â¤IØýtVr.Aa2ê«e6ÄcÁÇ|å±D«PHTÕi›?‡ntDp’…áNôcô‹iè„(FBdटôɦ›Ô UãÇ8WI¯œÉ©Äá¢Q.¡•B†…dtD°ãfp ¶¬à.âh”KAv B˜ˆMF Œ›ãé’sñ`£€všÄR†Gñ6ÒèÇ…STâ,Ó‚?{¸œ ±%êQN“õg=’!‚Ž“Â\"HXñ¡ iuöDFÉzh’K¨a6¼ä…º‘“IF:Å<|’…qdч“$ÜØq0A)ø õÖRºÅlBHb„Šh ŒBÚ( ·Ð$ÎÀ%NƒRšèÓeÐ—É ©HDi'²#ž(" Üœ¢™(>,” £Ÿiß ŸB¡„ ¾û¼4BòÿÏÞ›ÅÈ•^wž¿ïnqcß#3rϬd’¬âVd±H•¬R•$«eY†—–»µ§îæÁó0˜—y1Ð10Æ]?ΊØ#N—}–¡¥ÖR6c| K — "ô)SÄÅPûT¹G-±@ψQ#‡‡À!D‚-RRj B7&ôLé1+:c,„"iYHòªƒœà:$3”>:a¥>q…®¦u-Px˜8DÅÍóÑ„\«M1°“¿Æ¤iâ`Ñ E›´bã`Ò'ʈ0X8´H¥OYŸçX+ á‘£JOÄgÆ¢KŒv€lô‘ŹM’–°Ñi<4º"FŸ ô‰Ò$…‹IGÈ/ÙùIìg‚EW}&Y¼ÕŸšÑ1¶õu"ôécDˆ  " XKÎÇQ&XtHü•ÁŒ‰ xSr!¥­žçûBøD´>¶6 > ½Žü0†Rî„Æ01­GΨ* “Ç&¢¢Ïˆ0=b´Ha2Á¡ã'žé¾×|ö×ý|xýÿq lÆ„‚¦v(¤NÀÀˆ³Ǧa¤éù1ºÈirè‡éÇC£©ŠP•ÙbÙä²ȺÄi!y3Md*Ø‹ sÁJfHŽ•À}µƒí¥C‚.q\ÍÀÖFÔÈQ¥€CˆÖ(± ô)>MRTÉÓ'F‹$Gq1ƒßSfž&Ž™§FŽŠY nf¨P FŽ:Ù`’>ÔéòÜê«]½Í˜}–é¤Ä"’Dèã¡qÀ"m’l³Î±^àP,‚€©Ð‚=q‡¢Œ…EœT÷¹÷7˜fH u²¸ŒD8¾Ž°™`IÙ­&Ï˺–ÁZ õ•Õ¦FŽ!¶:?'ê÷§èÅbŒ®ËÛ%âÙªcÆ"ùVm’¸˜Ôj$7X¡ŒU£Ð"E…Uò4Ib¤øDe‘؉HülÆf‚I“4®®,uúŠÃ^¡Lý]âCÂTÈãb°À¡êcLQ«GŒ s<æ9&ŠdÉÊ\Þ(²•x1!Ë‘ºJÅv©ÅÄ¥§Åèåà J á¥‡É„†È á“µî{ ù°wH¨}™+w†ö”Æ(ËÀ‹RÕó®RÎZwщ0 I ?xh5¦™$ÂIÈdªË©¢Jž‰‚ÉR´mèD•¸Ù.ªÌ<1zhxÔ¼™Ö›Ôɨ}Ô0¸Ñ,,Y"K]M&RO_YtÒ8Xr"1C8 2CNqº8Š×U„?M󨓥ƒ,¼6£à3E#8¤zÄ&F— lµcìÄC§JžÆ„ÆFâÙ'ñ ÷'ô~]½ETÓÈ¶ëøº ng»!J p·Aì+WöYì0†Y‰°0*ªHx}2óm|]HߣÎ1?:æÈ*âw :¢Åzr—~$ÂÒÃ[ÉÇdì^TãbÿåH‘Ê$Oº^bË‹²hÉF7æRdÑx¾vT¼…¡MÙ¬<%êQˆÕ˜˜&–ïЊ%Iöº¸}9‡¢c„æsÊxÄóÕ»$c]†z˜è Ï4¡ãu5VNï‘5^N¾M¢Ùôý(¦å²08$}ÔÆðÇ0uЊ-å‘v¨Pg#¼Ë@D°Ü1‰Q‡a(Lº×B.ñÁ€xl€Õuq;!âö?ÂCèÁJüÛ“t{è:ø!+±a0#´h“ˆ3b)Y"Úbi†9Åš„ô kb×2Ðm˜sŽÑ<Èt„æÂ‰øS"“>FÔ¥í¦ÈØ-a@¬Ó#£·˜¸&i½‹q˜kÖH»ò¢Ž°¤Ï‰ƒElÔÃèº ,kJtУ‡žò±û#2nÛvÐ…>õÉÄ[x-´Õ&® ˆë,Í!ê°ä–0-—Ðx„íŽ y#LoÂRc©¿‡,÷¿îÚ±WÙô&¼4}‡¦â½ð9êd9ãßáÒÒ„ïè/òn\á_Ÿÿ·Œl“‡lñGüŸä›,q@„>w8˧¼op¦wn"Nä§´„5rÜã4m’œæ.K$p0¹ÁE6Ø&A‡Ûœe.p‹ ÜbŽc-Ä6ëê—®ˆS!¾Æ«ãkŒ,‹ïW¹Çi6yìè"ÃVê +쑤­Ðïr›iš´H±Ë*M‘â<ï)-k”–Xà$´cÁ 6«b—œ_¥/¢ü9çÊô:klsK¿À=Ná`r†;T˜ã>§ð|Çë\¡¢ç)ÛstBq©õõ÷ˆ0»¬±È!—Æ7ø®ýšdp18Á£ÀDã€%žç®bÞ/ð–~™5ÕÄ„y‹Ë|Œk¬²Ë1sÁîð*ßçPé‹'¾ÅU®1ºDYŒ< |Öû*St޵9vXÅÁDÃ'I‹7x…ç¹Ë)ÿ>S¡S'Ç>Ë\â5¥è¸ (}²4h“☧ýû¬9»ÜåyòT9Å}BŒƒ½ØscAÿ :ô¯~½i_&°ݧI“]ÖØŸ,“¾ÜdíÞmÞyÿ4ç/­¨‰mžE9=ŸCîñ|°;*I؉è#jäpã$hsÄmœ[¿Íû‰Óuú®¹ IDATTÉ3EgQ'CŸ§ZxðÜ ¥„î1sa—Q$Ä–ö€]}…JnŽ5ž²NŸ6CÆØ„CCììP!12Ô9bŸò>/àbÊ6%ã:Ùä)ôܧÄ}îë[$Ò`Šùc.¤M²Åu#C‡²Œ°±ÓcöX¦­P ‡-*äÉ竨¡†ÀÅEÃbÄP­ †XTȲ²ò”crj2i’ Eš2s ˆ°À‘\£-p°¨P E’ìr“ŽÉ“£t˜ Ó&Î19F„é#Cƒ æ)Ó C5Ÿ'J‡,„Øg!øÎ}Gå„îMYnh®ä%ؼÿ5r´H1 Bˆ±" ·IЕ¨=:Šõ~Ì ÚôÔž=®þûˆ" Åc5t&±‰Ñ§JžQ@`à’ CŽ>°¿yæ ýï„ý¯»Î6ï2^Üä÷íF›$Ÿž|¹nr&¯ ®,Ý…éˆ}ë¿eáªO†ÿÝðßp-ü %ÐðøŒÿŸ¹­áÍøzÄøüûÀ©Â}öÅœàsƒ*ù ”ŸOðmÞâ2dG¶@‰&i±É«èBÂðŸïü1ïÆ_àÏÄgÀ•Ñu|Cð-ã ³Á6wþ‚7¬«T)°êïòËã?â¦}ž‘*°Ÿîƒw£gøCñy" 8ÃmZ"͗ÿÂ0†ï².¶y̦”5pÄÅæ{D+C*' Üá:$Yc›ù^…DZ L&¼T¹‰c¼‘¸*¹šþ˜ÓÜå¡8IŸ(ÉXSµëyÞ,^‘‡ùšþÓ1m]Z¤x— ¤irÙ›¦ŸâO´ŸGgJÌíó±é5’^‡Òtž¾婨 KœÏõ¿Êðó쇖ðÐYìÓ‹D8dEï‹Þ-öŒ%ÉþÄæ£Î÷¸a½H˜ó”9Í=Þâ2oñ†<ÇÞà#tˆKYšˆð‡|ž ÖyÊÕêuBK8 ‹ïj¯à+¢Ï >clÙ¤yïrG{]±J”yåKpŸSx"þãxŠØðƒ~…=î‹“¼g¥N–eöéç+|—žò{ˆ›]lÄæú1·jç¹ýN‹—HÒfŽc +dÅfŒÅ«8X,rH†:}¢ô‰²ÆN°6‹0$;l°™x„‡¦ XƒIÖÙfÎ9fÁ/c Å\o–ð¬fä‡ÉL›ºt;“#cÒ4ñÐB'U).²™(3O†IZT)£FM¡B<%<}2zƒyÊêïÕ™ oªö†,RO§GO‹*¯‰U,åRæK!F¬xû\nÜ ’s¬8%lÓÁ.ÇVOÓYtJ”ÌÖØãÌø.õPš[Úyæ(S¡@‘#ž°Éâ´„®¹$E‹ó“÷‹'ÊÛT–òl ÷Ð,W—RÖ2sœá9¤ƒèβÊ.EޏÇ)" IøÎnÓD™‹–’"¨’¥Î›5—ŽHkŒ((±Í:u‘å÷©’£MJ­7u–Ø'K§¬3Å @…ûœ"ÄXNõt±•\ÚöǤE3Àt34Xv›,á°é=&.º„…$½2ïh¦{”>IÚ¤ià£S뜧lío½ Çb\ÃeeL\"ŒH¸u¾ÇrZ ƒ çÖo3‰æ¸v=ÉË—÷ÐÃ<¤ö:Ì9q,e$BZ°(Ï\Ðÿ¦™þCÈý‡_ ”ˆÒÃ`J“46CBŒñ$ü.vcÌ™•=zºÏý›–/8,ˆC:$Ðñ”f|€Í(r°Yg[í:%É­F–“<À³]“XDÌ"ô¢‰`UÔ#†®VnI½ §­%+å%wÕgÇG¤…«&JG¹Î$¨òÏBÌqŒ‹A‰ò~‰0•¯Cˆ):=U0²¢Æ¡Xàgäkh \êdƒóG³B=q²LÙÑÖxš[¥FŽš åp1:$¨+F<Ô¡IF²„é F€}u~?à$Q½O„A°¢œ˜aF4—R¼Ã%Úá”’ŠÉè ‰`³.9„ù>W–|‘#ê"Ë|ôˆ]ÖØaˆr—1µ‹5è$¢ÁŽ2ĘIÂAÔÕØy˦v9ËŽXÃf¤ì3Šh4¥C‚ž§§^Oê®3T”;ÔLÙ#F\p⟶HÒ$‹à t}ªv¯KTý¼’–Dé(¹FÛH0UzN—ºÈ2Q‚—cm.ØßþÀ#X0 ,™–Šlb2!‹’(’ w‰ÐWÎ@É-æÐ4)›±pèéQZ欉ôˆÉßc Úƒ$acH„A ¡ )˜ÊSd=)ÆØáÄìsêŠ8MRøBã@[ M’âtÑ|O(1BŒØ3—w¥) ²Dâqz8XìˆUŽ™c‚A˜! Ò ± 3Tû¼bÚÖÁO“,ÉÀCúØšcªkÊ$'Lœ#Bý§„Õ’T((£ Inqëu&}q1Úòpi“ N[Áê1$c¶:˜ù…Ïþ®¡xurQäYhqâà ýG¾:$xL–0r‚]±É‹‚¨ O8fŽÅ'ì:«¼{Cø0!©w*xt‚IŒžZ™Hh8I‡ªäIÑBS›j$Ïc6•ÌíªŒ}–96oq(ÙfMQK¥y’ƒEZ´1¢I:¸o%ƒ;Ø7KwÇ£€ŒW'0ù·Us1”ŽY6ž+æ‘HqÕðG°%RÖŠÊ@ƧA–qbJ&ç¢3ö¥ùI’Nàí>&ÄM^¤FKÝš¤™ s&*Xàˆcæ$iw:ó¨ûYÅb`žÒ"Ø Îàæ Y"M+`‚ÏÈ»%ø2hˆM_ñ_D¨P`› :$ØaUUÃd©ã!ca ×øŠ 8¢¢ ²¢ôÉÖ J/ I²¤†¡xðÿê¸Äé  iº3E§E’IFØTÉ¡C‚cöi‘’Æ„èùQÂb°îå¹?‘<$eH&ùUÏ^€ÍcA׿øÅ/~ñÇù`Þ¿Ÿo/OI&Ÿ~•U}m™–‘b‘Lîsš#_qþ/>š~_ÓøòƒŸãÅâC²BÂSßš~Šü»ü\ÿ«„¬#-ÂÎ~šMž0Å`UvYã$“þ\äý?æ2oáKí¹«lð“u›šÈñ¦~… M>Á·‰0ä®þÅ7•~\gH„2þC.ëoÑ Þæ2«ìa)ÙÆÛâ%¶ü‡ì™Ò;øXaÖˆ(º2§©šyŠ-.r“Uº$(3Ož*&.«åÊ©y‰0Ñ`]³É‹Ó[¼Ä ,1f—5,&jñ˜ì³ÂÏó§äü:=åˆ"Ý=Z¶,ª/ùï-®™?Ås<åÊô:5-ÏŽXc—5i'Ƀ)Ùbƒmžã -RÜ—°+N±Ï«¬³Ã ¼O˜eæ™`òÞ Ìˆ. B¾Ã«\òõ¸odlØ3Çÿ]ÖØ%*<æC >«ò>/0çó îWÐt—–ø ^¥H™,5 ¦„­cS=bì±ÂUÞäeçFºd&;„8ÇmNòGœP6œEÊtHЮLØì_bccãÝû×~ï÷8ûôi Eùa??þq^yýõ+øuݼy“ÝFŒC æ9Æ`J Sj~Ž &E·L5”c“'¤ÓJyö÷’¼PÜA2–Ãb¢[\:$9Ï{”ÔšÈG(Ì‹—ÜÜ0.Jg8z¬±ƒ†ÏÍÊ™°Zÿùj7o’ Ë&™ áò€SJ{žaDˆ}eb3Tj™¨²/–‰'üÇìˆ5¢ Xä&zÄñ|¥É!¿ÊS}CÉ&eón1aEì³¬í«†Ä£OŒ)9êJ_%‚˜AÕtƒ†£I†=Nñ€ ²4£È%˜£¢6ÇèJö—¦…-Føh¿ƒ‰CŠ6Yjxh,sÀ dh§FœúÕèÄéR»ýMžH¹1µ qXaOYÄÆHÓâE–9 F, µëN*'Ný€¡^@ZÔN°ÈSc@TòhÒ%†O†&yªHïö:›±`'Väˆ s 3 BiVó6/fHš&=b\³~ŠŒhP#GJ`šàªÉu¤KùUl0¡Ï,ZgŽL+ìñ„çxsÁd`á°ÇŠ \ñ“ÌùÇ”üyvÅJu¤Ùe5pM“ZZ]¡#<ïq–žˆS%ÏOéÛá@n3ÒMé9žP%ÇXqÈ&.QúÔÉ0ÁÂbL˜;¬ÒRšØöXQŠ€2*Ê£K4–ùѮ󼋅ÅGŠZ’Ü ±ãYœ«½ Oí@{œ?õ”Áî„Û›Ó,™kƒ§ÌS&Ì€–•Jš’¤i±Ü8dµ¸Ë±öŸ9¿Ž.¦Š“Q§î§Ù?(@3zrÚaYìcë#^âm)‡¤‡ŽH¾F„ƒÝ|CÓ):«“}^°Þîi¹§žc"LæGe¢z ë©rd“ ÿ“9·‚æù ­°R‘ XeT*áû E 9ŽÕ*`„‰K†ºJ ;`II¬lµ’)½¾ô«×•6^çHOh¤h#€]•œhàáf¤~ä©0Eg›u¥H‘ÏÖ*; ‰Sôlªž¹·Y8ÁúKz ŒXä0@õ„ @IÒbN¥e\eâUûðRv*eÀ- jðêc@8p œÙD ã#0• 9FOIœÃÊÀe¬Î¹±RÅE—ˆ ÝIÑRHžDZÆJ¥#YëÎ3Ý÷/XîŸ}±B™yæ9æ4÷8åßg[¬©XT‡â1wÄ„‚À®Ì¿Éï‹_äö7W™û„ÆÏi_¡-éEjä¸ÔºE’v`x°Î9jü¿ücÖØÁfÄÛ챪|ÄsœT{‡8ÇÌá¡1G™%p1Øf]V‰Òçc\ã÷ùöXa•]^âm¾Á'f‘¿Äñ5>M%8ÃûŒ±¸ÎËÌSæc\CÇeW¬*bU˜ÇÜç4‡,§&Õº”KÍÏ´Y¤„œ45¦d§ "ú€oð)2f“ǼÉtr,ëGœÜá0Vä=í6#^ã;‹9np‘ —y‹EJ|Ÿ«4ȰÆ[<â€E³É2,P #Š}–Ñ™òÏù2šðxÂsô‰ñOèç›xÊ…=Þà*}¢´IqŽwÙf_ïïrž#Š<Ç–üùP —w9¯"§¼È-FØÔÉP%¯,qMîŠç4ßeŽ2w8KJù4‡GŒ“ríqÌkìâbðçâUpŠŸçOæm.“¥F˜qº´9ETy ˆg|œÄ`¬~¸Cÿá×Û„=“¼_c^+SsL°(±@ÃÏéÕØà «ìÑ$ÍN’]­óÈ,2~§ÅÅ‹7h!,†ªšÒïA¥t…”uð"‡ØÞˆD­ËrqŸë‘¥ÆPiųÔIÓdŽcu.%™"Õ.ÇÌ©É[¢‹3Û ÒÈP–ˆrÙÛäqàÍqà/‚¬¨Kž’7 ¢õ+‹pMiÙóƒ½p„ÌPЭ¿ë]ÆØ…@Å ¶H±/–ÙeMîfÈ’¢¥`‹©‚D—q IÄV‚Ò×<ùG„Sî×ÃP˜§lP'ìN$ó9D™yL&A!ª)º¥ö³!ÆÔÉŽ>†zðÅ m‘â>§)˜ vY¥Eš.ñ€²£Þ¿Pºî&R;î`REîóeøHŠŽ"´=d‹6Ibê¦ê#ªÊHHf¶×2™PS»¶]}GéÝÇ„h“$N—>ÆØŒ"6 3CSO»›2ó´•{’‹©ôó’ØrìÏÒ©mfÒrL2ó9RMJ[YèJ®°Š’R#Kƒ,Çj^#˜%èrŒ”ïøKB$UòÁ÷Ð$­iàQ!HP<´ ™Ø×—M¸ÔƒKã—]Õ¤ÉÂH`Þ13t˜YtÎv>¥ð%²”V* ÕŒ°ßî!ai©Ì†jH]ÿ›Ä3Ú8j¬+öt½ÅË$4©x™­ÌÌAl1ÂÌMÙa…9ž ‘½ žpfaË«ñonü"ÙKr:Ÿ‘Q—ÙW²4 K¢Üç9­F¡X£+âì°Fœ.××”ÑËE»Ê‘ç,û[:˜ °#­Ï¾ÈN²ÊeŠŠ/"ù?³æ¡KW¹¾µHOt)± Ñ),³‰Î”œäjä:¦p¸lÐL>C›œ]#gÕØÓWd¤ª|W0u—2²ñ1q°Ó#.mŽ©Ò#Êóþ=FÂ&å·I;-öÌeР%¤Ò¼_¦$dι¦ÓV.j5rA Í>Ë,P‚iQª!K®éò” Îo£qz ô‡ÊÜf¥OËHÑ%®â åj.å·h‘¢)2˜*u;PAIï#m¥g<¡'Az—l©”½>u²ì²Ê‹Ü ¼H:$ˆÓeŠÆ!‹AwÆšñµ24d°s¬°Ç€0‡,òÜ­²B‹$–6aˆM•Qµb 1f‘<¦±g+èâïAAßc•EÚ|Šo*RÓ2%Xä#~ Òÿš˜ò¦…7üpF»Cqåˆ'bžï]Ûà³?uƒ×Ä·¹ÉEº™8÷'§yÙ|3H«‘ã,wT0½Î}Nñ*É„›þ‰-樦É2{¬°O‰"OØà ïs[踔Xä>§¸ÈMª°Ë*ß壬°ËOÑð¸ÁE²ÔIÑb„­bA{|Šo #ÝÜ,>Í×0qx“«"°Ä€(§¹Ç“§¬Ó Ãs<¥GŒì¨Æ“Èv2³=Å=NsŸGlÏËì½&i>Ç r¦+õ\B±1sT8L«»Å.p‹—x‹?GF¤±9Å=e“*§÷“ÂDéÓ'Ê#¶3¹ò¼èÃïq—Ubô9`‘MžðQ¾Ë-γÃwy9ʪQ³8Œ.¦Àkeæ9Ç{\àqºÔɧËn’¦Å÷¹J“4ëlŒÙÞ3>œš€ùá„þ£\snÛ3 ›ºÈ“s–:¶’5ëì²LT9[û€­¤bÉ…ºkQ~O`ŸK(ÈvÊc6yŽ'2äCe—Ï{34Q¹«Ã•È7q æ¼ ôXŒé Øê#aQUÄÛ%˜`‘¤8¨¥hÑ £R$;|„‰i—ûFqÑ£/btý8ó¢Œ;58EZ8ˆ95pñÕ®ÞC0Å M mêÒÇDÇ}„9•‘§*‘®Ì<¶7&¯UɈºjè¥ ]˜aÐ Eè“¥ŽƒE+x_6NÏŒµP@:Œ©Ä˙ϺLf”¶Ú2²N×a§Œ"vÀ_ÉQgLˆ°Š>ÍÐ@SëŒ1RuÓ CÃÏ-Ò4a“ £ õ$=Ez›}¾.QiýÅ"‡Dé£3 I¤¶ãYL…ÁPH‹Ú]$áPš„M"ôÌ%t¦E/<£lÍ4 $þŽô9މ’ ¾„0C<_Ã)Z,r@C¤‰Ó%-šœàQWk,»˜“,õw\¶/nPÕr¬vIéM–š°M‚&<24ð”Ý ¦ü•u!÷m3Ø4NOÉ":˜¸#Z‚.>¥ÀËXfwÐö“D„ÜÏ‚$ñE²º—8P2³q$ÃäW¬3%GMI =¢9"ì ”[j ‘ MÁ¯  ÉòÌxM,1Á.6#òÔ˜¢0”?ò†ô&ŒµPðïž±¹gL×ÙþJJÚúÊÞÐ ¤²–³~°!oÆJèL‘9ÃrºHø\!@—\ðΤ5yªÄé*²`_uâ=¢ÊB"%AË’£4³!>EJlNó{¤§-Š“2ÉH›ÐÔ¡£Ç ic§‡<D¼!s~…ˆ!Ï ™–Øf»¬ HM󔥨 4œä! 4I“¤M‚N`-k3¢À1 U¤gçA˜!¶"ïž=Æ1-Bæ˜â¤Ì±^`¢Y䨧ËóʰÆQ®šm’Šåï>£ÎÅ2 ¤}°‚>  ä:0‹aÛ6ŽãÐív …BÄb±ŸLAÿyþ˜›üßä“„ò²Kµ÷ØËI9m f•̨ÉïDþ9EŽHÐæè~‰ŸøeJ,°Ì¿¼ñüî/ñ?¿ñ/X|yÊçŸþ ÿÍêïñ—Xâ€+¼ÉjoŸÿ=þ/Yf—¸ËÿÍ?Qò.Ÿ×ùqzJÀ “––ÙçcÞ5¾/®²-Öcñ™É×Xôømë¿'N—ùרê>æ¿@•KfÀ¿ã Dè³1Ùá—µÿ‡¯éŸ&Ę<âcÎwIÕ»,,•x  " S<`epÈÝèI ùôî·1ÿ[ö_ á³@‰"G¼Í%rT1'.W†oRëäyXÜbDˆWøßå£1ÏÎq›ž²ÁnswéãÿäŸaàrvr‡_õ~o¢³`—p1xÄ&!ÆüÚðå+ögyS¼L˜¯»†Ï»œWºÛ=~Úÿ:wÄJ,aÀ§ø:ÆgÉÐ`‘CÖØá|ŠÛœ%€¹I’¶Ò®GÈSÃÂá6g™¢±Å#þqí?p×>Í eó]>JEŽø,_•ÌDyÂ&¯ùßá–8ÏáQäˆJ¼Î·x›Ë,PBÃãlùw×NMÓU¾Ï‹Üâ<!®ò&.·¸À1ólñ$mªäiá4÷(ò—À¯>Ó„n~ÀçùË_þ2ׯ_çôéÓ¼öÚkœ:uŠßüÍß$‘HÍfùÕ_ýU,ëŽï\œ.ó´ƒØSeåÛ'åKÉY]9β*ˆÑ#O•ÖÉ$ÎÝïYœ<פOŒE©’GgJ•<5)fö2 IDATò8ÆTQÁG)P H¤ê 36–p*íz\P†ºÍCNà`±Î6Cõ^$é7¥Øß:&#Bj…#-®-,ß¡,晢Säˆ}:ÄU~B˜§b=8_*]q‚ÉH„Ø+ì°JŽ:ºð0qØcU5@#BA²\SÙ)}Ùô4E ǰ¨ûYº~ MøŒ„Å‹dôšðp1N#ôÝ8m#À“{g¿ÉžX!­µ˜óŽ WèŒ|IÛëèQ&˜ìš«L…ÆH·éûÑ€ø'½Ù¥ru²Ašå““ÖCî[[AäáQ÷³L„IG$±õu2di({桊lžGÃòäCŒ©’£AšE•œ–QC…øÅ |¢~_™ÐÚ~Šc­ sæqhˆ e}^æxÂÕLB~Ž1ºÊøH"³ï]†õ„Xñö‚&áOÔ˜ú+è_úÒ—(•J¬®®ò™Ï|†ååe~ã7~ƒ|>ÏÂÂ_øÂ~2}›uê䂎¨.²ìÅ©‹4®eÐ MËL1EcŒ%!ùÐ<J?8Ë·ö62ØžÎÁ·5ÊùyJÌQz÷8M/£Bžy²|lFôUP‡‡®ää”³Ï d( é¥>#hmi0=GæiÖÄ2ùPM»H÷Š(ÐR®,qJÜg‡uYPF6mZ¤1fDSO±#VU>s’{œ&kÔ9¹§öÞ6‚0Í–0vŠ­x’qÄ Jƒ)}Å~ßgEj¼õ U#cȇBŠ7fä©•9Ë2l`]ˆ冄)é ìjòõfa=â8„8² Ê 5Æiô# ƒý øL…4(¨ò![° :SJ,0Azö?æ924˜¢ãbúßcŽQ¡Àvh¶™dŸ%:Š 8&ÄEu¯ÈUÇXHmºC›¡2z(±š1ztCqjäØg) >Ê}æX*Y4¦ì©œx OiSåîí)LXUÛºHŠ`<侸¸È¥K—8sæ _ùÊWˆF£œ9s†³gÏþƒ*æ,ãe•Ý ,eȱÌ>G!9Åéb3Tmº„×CŒ•ÿÁˆèóaÆ5î¾™å³Wv蕇¸Ê8B’lÛá8žÊ˜Ý“CÅÛ6†.Stt”MªôzˆÒG÷=™)®ÎR´èªÔÄ$í  AÀÔžéÍ]a§KqÅ= +3¨´/%Y29°d©‡Që9ÿ)ú2­Ì0&Ž)STÈ›J*f2Q,m„çñ‡„¼1kÞ.=‡ë›TÈ“¤CÄ—(¦îO1|ÛÑ&N…¹À¤GgŠå;hB¦ÃMˆñ%Ýv¤ùO 1zj¿,¡zÄ);„Èú <_c¤×—ŸI˜!q¿KYÌßIˆQ@h”$¿>&…jvƒp.I“#øAîùT¡/³ z€tÕ‹(þUD\S êd˜ç˜˜Úµ¾KÈw¤,Ïß§B>ÐÜG࣫ R´”>@Íašbê;2á¹Ò.ó•*sȼS%›hóBó¢ãÓ[ˆYt¸0¹MÇH0LÙD¬¡·&<Ÿ}ÀòàßÐ7c„NÈ6œÕîµú„‡<'Æk;‰çiL,“„ÙÁ4|¬¾Cf{[ÚR>žr¹p“º¿KÁ®­·èbhiT´M(>biPf Ê ±º~þádBÒg:6‰Nl¦·I ºLäodF9o¼ÏzmŸ§Ùu’‘áÄ3Ó{hC؋بﲪ0LDù)¯4ÞÄÈŒ›X†ÃÕáÛX£1nØ`<¶IÆÛ„ "Q¦ ÆÄåLõ>㜅e8Cy·ŠÈj¤wûC<¡“Ë´†mt»ËE÷]l{D¶Ò&Ò ‡¦x¶ ”v87¾K¬Þ%í>rX¬—Á×ÉηI :$îvÑ=—ý…eòñ*Z×çUç»DôFÌ%é3è11MF–¶í@ôY0÷NY=œÂ;Òü.àÀ¾öÚk”ËeîݻǷ¿ýmlÛææÍ›¼òÊ+|ñ‹_ä·~ë·( ÿ` ú2ûd”C`‡yªT(¥.¡N§Ëfô1«ìðç±p8Ï»DC[j…5–8àÜfƒ½PŠ7®¯ñé—o«¢ï°Ì>MÒôˆcŠ)ÏùOñ„†ÀÇCSrXÇ 6ª3ˆ»¯b6Óa1b¨…9ÁC¦ÄèÒQÞë3ÕNQ5EµÊšåR´H(Gº´ÒH—X$e4Yð:!µÐšlzOûCtÝ#FS›pD‘ Å#¶£C•ôµÌ>s#„OÚlâj: ·‡n»Øúˆ†ˆÈ×S2¢)-iý6Q¿OEÏ‘¦…ŽG•<ËBæ|oM1±t"Iƒ,èÐ:ø¶F’©iÃtp0‹!EÊŒ ) ÞX®Ä_Èâ¿(©ûY¬©KR“puM䘣‚+ ™Ø&l ~•"å`_Ÿ¦p24”Ã`ŸmVÙEÇ%E[5³äÌeö—šóký2ŽnÒ!ÉIîã ‰ä¥hSUjz—º‘VNGÄé.†EŽ‚†'áwˆ‹.)¿ÍÜ3²Ü1ù¡Î2ÛS¸=ù«ýgögi·Û\¿~ëׯS*•h4¼ð üú¯ÿ:¿ýÛ¿ý“)èùk+ðÙ•¯2$Ì7ø8'ŠY¼t€I˜·x‘]>ö3‰©9¼ÍK|‰_ã"7èc—UÞp>ÂϾøŸø9¾Â€+¸òüO·ÿ)¯ôž¦3$Œ‘/T¨!§ý·¹Ì§ùE¸ÁE®ñË|dþ VÙ¥Fƒ‡jb;É6ã ó_øiš¨à¢ó6/ò>Ë©Ì} Td^Lé1{tHp“$sm^âm &Üg“!a~†?#áwøŽx?ãÓr¯úå?åsüù_¸ž¸D˜Ëì¢ÏÛ¼D*-¥>‚#‘Y¨+÷ª•`R’#çWycý*œô•kÜáç¸M^y/ßäœRÈ;)nDçŸÎý:·¸À¾¿À/Öÿ”;9)­»´uƒ)6ÆOs[,PâÏñ/P'Ë;Aå.«œYºÃÇÜâ;¬¡-zÄd¦CµéÒ$ÃKLѸxòæ(3O‚6«Ïíñ„5<4(Öo™y^_ø6!dLå¿çó„“§JŒOx޵¹^á7¸Ä!‹Üã4KP\?’šÖJF1pÞj‘â“«ßd‘*}Np—ŸÂfDN…W|c3bŽ “ëÌŽÃéÊ3ôòp.š°¨üŸª~kk‹­­-.\¸À¯ýÚ¯ññœO|â¼þúë|ó›ß¤\.ÿƒ*è3ÅKž*‹*ùp‰ºŠµ=¯KëT)ñ„ÍÀ¹¬Kœ$-† 22@ûÿØ{³˲³Þó·ötæyŠ81GäœY™Y™YeWÙeƒéâÓMûÞ6¼ðb¡~@¼ !K~0ض@W¨üÍC«¥î è¶À ¾ª\®rfUfV9Å<œy÷ÔkÍu7$×nÑ6û¡*#”qÎÎØk­ïûþÿßÉ#o4Ù¹&u=‚!ì@h&ýÆ6u‘ ¢‰Ï²%cB ã:#¥KJø4cI¸š†+´ [ª¸Ó*HÄHg²-›:‡#"hžLþòÐÁXŸ89äìø¾.«ÌYžzU½HÌnÝS±Aƒ .¢±ò–'è*ñ]¶Ì3ìˆU‡8®Î±˜cHŒ©frÄ<ûÚ"»b…cÞ8¢h›d•SIFÛ‡ŽH)ºZ’mmSØŒ¢QvYÁ4lÂb,)›Š¾6CYKRœ@è~@tì‘@h>ORkôý8m‘fH„> òÔƒ*{Ë8M…R œ‘ßäpÑIÑ¡KR}_™ D9°­ÍòÊg±¼aÆÜÒ®‘¥IœSaÑ §XS&„¸g^¤§ÅU2¸fýµYwp=ÒÔÔ3=WÀÿ#*nÍ„µ°ÜÐÿ£úÜ /¼ÀÆÆ¿û»¿Ëúú:7nÜàõ×_ç/þâ/èv»?ž }•]\àoùy\tæ8ÁCãü¬B,J\ë_jŸ Âð¹Á-XxݶޠMš¯ó1ž²ÁŸù* ±!ÿç7^£ôëÆ-Êñ€óX ¯fÌ7ù(&6%B“ñ›ò°ÍUЬ°Ë¶¿Æ‰ô2ÙZóy‡—$ˆ>x ˜ÀQbô¹ÈÞâ2´è‘à:79¦Ì÷¸4<¾ÉGAHoª‰Í·y-@Ö^ã¾)'¸ÌC.¨S¶œ·Ýä21,±à.W©ô² -îrY~/³Ç%q‡Ž;⊢`µxÈyns5h§i¸ËÏcc2!ÄŠØe˜ŠÐ%É>Ël³N’./ñ½ ßù˜yÎð›{\BÇáYdŸ\à×é’à[Üä&6.Kì³Ãoñ*BÁ‚ù->Êe’tÙ`Â.ð.×HÐã°ÿ’}mMw¹ÏŽ)cbs–Msš‡œîO›4_åÁâ‘§Î.+ä¥ñ-öâK8˜°Èy²Ï"w¹Ì&çXe› !pAÝÿ â¼Í* HÒáUuª.#ú?s†þ•¯|…V«ÅÎÎ/¿ü2ÿøÇùüç?ÏŸþéŸÒétX^^þ©j¹Kìñ€¦²'6ÉR#O¤JÂJð„StI‘¥‰É! j wBÔÊóǼí^àÞ‹«WbÔÄ8«¸]“A8F8‡,eÀ %I•‹@ËÏ2a>̱ÊLîóS”¨îƒ]V˜bžcº$IÒ¥«B‹º¤(Re‡UÖ´íÀÎyŠÇ{|L˜†ÈÓÒê°Hú kvžsÞ&°|n}_° ¤¿}¢¸ïS=$M‡}b,³GÙ? â…“v©i‘¡M[¤©‰"ºë1Ñe?"í·ñ4Y©¦”­8Gƒ&YRn—>&.ú´pɽÏÀˆrª¿ÃAjœÝ$lŒñuA’.÷„tî,pˆÍ1er~ƒ˜ð€ Rðê);'xº` Ëó]®IrdT(t„‚%öéGÇ D‰‡,bØ„‡D}FD9ÙSté’dÅÝe ¢DÅ’wžX¡!r,p@Êïò¾x!˜›Ø8è>B!\4Í#9ï ãlMcþce ¡=ê4R÷ÇQy—¤mBÇRÇ™•a¦ Ád¨‚´WÌÚkž’=è¸M*IÍà—GÅ—³+ O½ß C4 FD”ÒÓÂ3´@éÝU‰=>’Y? ”h’Q3o©š” QCE;2°…œµD&ðý{h©V/_ñù„²—Ȩƒ©öÇÌIߦ¹´°^Àî‘ĤØÐfvW9âtH)‹O”apØi(¥î¬šŸYǦX*—Ýb¨Úƒ¾ú¯‹†­L…¥èv‰ÓWX‰¸ Q‰ª¿-T›TÐ%ØHlÌ@3a•®%õö²}jc`c©ªPmAÉê1eª\cõšŸOæþÏx8Õ·¼~ý:ÇÇǼôÒK¬¯¯c_üâ9>>æ—~é—H§Ó?Uú‘âÞ€‰"‡´@öˆ£û…zsÉ-N+L¯Å„ÀR–TóÏU’ÊåfÌ‹‹OØóR<»›äêå9Ñ࢟Ĵ§8’ŒxŽ-ÖØáë„<¹æ´Èà¡eÈË|O'N•‚^Gó=úBVn¹Oƒ,:^`£Ê3PÕz“Æ’óÄEŸ \VÙÁÄ–ð(o‚¦¹œe+`"ÌÂ_ÎòHu™2´I3–Ôº¥ÑbЦuÒ #ÛòamÄ)\{?|‘cæUWÊÃEc¬…$åLÀžX\žÊ[™;Þ1’ؘ°€žëò ‘0¤(-Ð%©6Ù‚éâ ±ÄX© M¦2·\Uë<ã¤-Ëð‰ W×±i¯ðäÝ8Æ.`ivà‰”Ñ§Ï(PcŸEšdƒŠ1ÄDu¤H&+š„a¨ jÖ*›áE›dIÓæ4OÈ*…å‡Á¦w¤„wóã!TH§Ç2{¨£âg›`ƒ,{LÜìSâDιðƒÀƒYôá„0u2>CýÊY$èJ‹…>Bs|4Óe‘ä‚“i„!-Õꓬâ U Œ 3 Æ5Þ Ô½G”9ÏC,&ÌqB‘*}âð0K“fÉ"C“E˜´ÆÉvá,2V¦'ÑÔ¡iƒ§ÇÛÄfŽŽXÂ8­¨Ä'h‘§®<ùò4f¨St(PS"$ù€ÎÄ4):x¾dYÇ0&̲" Œˆ(•ª¯øø2"3A, æ9a›59+|Þ ýŸ©e+•J”J¥ø\±Xü©j³ÿ×òAX“ñ»2£Zú~tBÆ$ˆI2ÄÄ ‚ž 2J:Rq y…/ë |—Ö]‡ÄÙ;“»w¹Â›|ˆ3lQP‹ø{¼ÈKÞM^˜Üã0²ÀD“¯i_§tþ"ïžaï{¿ø{’r‡^öß‘2!S»ŠTÉÓ O‚«þmŽD™&Y9`™=¶YS)9 .q¾JªQàüÁY¶ˆù¾!>ÊUn3 F…5 *Ãy+ØlZdøÀô¬©C7–dW¬ðQ¾É"+ì*:’<±Êû5áë8,q€Ãœ{Ì`§9fŽŠjÏqÊ"9êbJ›L .Òq¦üKöMŽŒyvÄ*R”zuZñ %Qåšû5=Ïm®°æïq~¼E%R¤IŽ.s—ëÙÆä÷¹Ä=69Ï®£ÉœÊ§ž=$xÀ.ËAûüãü5GÌs‡«$ü—¸ÇXH«M¼ªZÊÞëls"J|K|„CŠj†>›©}Ø{ƒ¬Öä˜yîr™ -eQì#tŸ³<¢CŠ. Ä8åf‘2´”‰fÊ »ÊwoDªG…þo×^6az+ö¾‡.T<"ÂÆµ4ZÊe2&Œ‰Í"jÚç1§èdD„yNÐX–qÄôY]ÙáX‹ñÝ÷Öxå*„í1KìS¡„Å”‡œW°¡.aLÂïCÕ%Óƒ¼ƒ¤Ó'£·hu ˜PM¦f{–†¢+º8˜Dü!–˜éYê™ÅP‹á  M µY™ØôÝ8i¯Í‰9Å”%÷}ôEt<ú$HÒQìw™y£A‚‡Ð*Ñ递Y%*†x¾NSdˆ‰‹î!]=IÊï°èÐÒ3Á=9dˆ?¤)N±æm“=zBº ²^ Ï”Æ5¢ñ!y¿.?BƹJ `3ÈLh©"Ar"¤aÎ?áüp‹è2† ‚¢å¤èÐ"Mɯ` ùžúJ©®©îeWQí$ ~J›'̱Ⱥº†âØK ¡Œ¸^aWøŽUJ¦ì XªR7l—¤Ñe¨EIx=a°#dØ•æBTH|®:Í^eïˆåçûÅ×ù‘Æ­ýÐ Ý÷}?~Ìáá!7nÜ ‘H0Nyûí·I§Ó\¼xMÓ¨T*€Í±Ë2ÿÙøyÈ9~î蛤ÎtxÌiä8»pˆe¶ùÚw.R~Õ'NŸeöùŽx ORÐÓ"Mœ¸@…’ªüŸÒ!Å7ù('”¸Ä}8â;¼B":.W¹ÍMn°Ï"çÙäîñ/2@¦”½Àûl³Æ_ñ‹$èòÞ¡CŠ¿Ò?±y*Öˆ0â-^¡B‰0#.ñ>Âð9ažCTlŒ!1<ä<6&×¹E’.ïñ"aÆŒ Qæ˜{\’ùÞa—Ÿq¾ÉûîE¾­ƒs<ä–¸ˆAÊHû\£Oœ5žaÌßèÿŽ=!Ñ®‹`G$°¦I–ÿ¬-Ñ$Ë˼Mƒ,úYŽ™gžcÒ´¹Å54|Nñ„ žò jn”ã4yº×û²À.+Œˆ䯯ó1Ž™CÇ#&ü¿È.°Â.×¼÷ÐpYÒöù–x÷x‘±W°j“UÄ¿2ÿI|Š*ERt˜ã˜û\ ,-Ù~“»‘KTÔâ¹Á3Þ×.ñVâƒÜæ*ë<£E†oðQòª½›§Î}.*˜IL©®3ôŸ´«Óépÿþ}‰D Þyöì{{{\½z•t:뺼ûî»ø¾Ïµk×0¾Ï¯óŒu¦tØGVbUŠÔ(¤C$!³§sÔ´kU1" Ei›‹t\vY¡£²Òg³Ò•¥) ‘çë·ÏóÑ¥2#"ÊR%ð‡,È¡mÑi l¦j”×!…ƒNY;¦%2Ô´œšŒ‚ÊÌW#: ™£¥"}6YcL„ž:pÌ¢>-b[rd7$t(gÕrVk‘òºªcàSÓŠtER ëd¥=Ť£º|³8á(F¡0-‘&¤OM§$ô>]#‰# º"ÉX“xçŒháy:®§ÓÓd´²IKdñÑÐ\Ÿ¦že $ zžcBžíK[ªæøÄ´¶fÒY5:Ì-{“=ahD1…çË‚«j‘\›T 1ÈÑ`äGH«®`Ou#<bÕ"M”jT˜ ˜ý³ßÙ@v BA×bÆÚÏÒ$âËN±¾J€#€¡e(¤¶(*A°Ô s„ti{Å/Ïà9ºJì=ï ÝüÑ®?tCw]—¯ýëüõ_ÿ5_øÂ¸|ù2_üâÙØØàÑ£G¼öÚk¼öÚk|ö³Ÿå“Ÿü$ŸûÜçøÃ?üCR©9šX"ı˜£J‘«¼Ì­§˜äh²Î3:Z’!QÂÊol¨äïY;6¤MHhRÃhõ¦gzâŸ/ÖÙrÏðè» ß8Eؘ¨Ü[iIÑ Úã@ÑXR– Ù šsî¨Â ÎÒˤºQ''$E¬K2 Àåhó TÖ¶«ëTÈà+ ÉeÚ¤9ËIzAÄhW6p‚@€Y›n6g6TòÑ,ß\û>ˆ§ëáãkêÖ‰ZPBJ82›­ÉYµDKÖµœúžšï"„‡+ Æ„Š˜eøL… BŒeK5ÿž'8§o­ñÙ©ö,›pFÜ 1¡O C7öYdŸeòÔ‚÷7U-üˆ7 ‰}ŠÁƒã¢ÓPã›Y-„¯Ü8&Såõ¥PN +/ª,&8šN_‹)ŠôLáyÏQTUçEÃ#Nïù+të§sCüø1ßþö·ÙÜÜäOþäOØÞÞæ÷~ï÷xýõ×ùüç?Ï—¾ô%þìÏþŒƒƒLÓäÞ½{üÚ¯ýZðõ/·nRvz»uÙ,]#N"#!ë7IVú,I[˜‡v8ÅܤÂZs—È`D¾Üb`ŰÇ&ºïr.S˜6OFèS ûÆÀåLì)7Óœ¼¥ñÊõw8—xÌÀ’˜ôx𨠮÷YØ> ”ãÆu×ıu„îŸô)›G,ö±lÓµYá€Q4LXŒ‹0“…&| ÇA{$ͧ½§¬¹;äD“®• ,&Lü)¯ÃÀŒQhÔYl2Úˆ’õ[œw B÷ ¦œ=å´÷”iÔ¤Ëâ†u¢­íPŠšQ`hE°MCØ$ÆÂîXFG·vÈG[ÄGJ V´CƹípŠj$ÏòpŸb¨IÊíÖéf,Fj1&~ˆ‚S§g$بì0H†…"ôý8çÜ-Ä2G=üÓ¹J‹ŒÕ¦‘ÌжR¬ù;xšÆ'ļ!ݱü÷j¥R\´r& ÖF;¬…v(„ëè¶GO$ÀK3qCœmÂ!ítÈ›˜¶M?§­¥Ñ ‡˜3d,Â$h‚¶•¢h×hYZZM¸Â[ y>¾'ð=AfÜ&:á邃aJx Y IDATÒϹ¡[?æ Ý0 ~ý×££#9ÓLØÜÜäw~çwxôèüÇL,ãâÅ‹|ò“Ÿ¤Z­òï|‡_ø…_ó^h×'dE ‡Ó”¨Òÿ:…`s 1¥G’©ZˆCLU&­ ¥„q3vo¸9"G]‰¤bD’¥Ilª£<ÃoyŒ&„®Iq˜ eŽÈ#Ì„„R…J(¥ÀN'‰0&ªþœ¤«Ð²r¶7Û¤"ŒHÐ#G#H ³1Ñq‰2 Â,&È”oÉŒž½Mû‡9ά%+PË'szû¸D¨ÓélÎ7&LÂìaôô¬´g›¹ˆçâj’4›õÈ8B¡¢þ|,aËD)ßA²õS2”‰²í8 ØQ NN4pt==¸ê4¬©\à™%X 3&GCÙ„<’Èöø, !Î@Á3dªUX1&DT}Œ‚òÌ‚\d{L÷EŠòAád›„˜fDH›(»Œ¦lBdܤ§\!•°6 vÈÓ@ÇÃ;˜Óá~ãG_¡ÿ„¶ÜoܸÁÆÆ¿õ[¿¨ø?õ©Oñúë¯óÆoprrÂW¾ò¾üå/cY¿ú«¿úº-†Ôm‹hFG; ùDµ>]bÔ½ Q}È4n޶ÙҤ˂ê|ž¢SǵcBDÌ!!JV4ÉêMœ„FÝÏóu>ʲ»‡¡;\Ï=Bì{ü¯Õóra‡¤ÞáÜî#ÊÆ[ÙÓt–ÒlæÎPÕKè8Dý!Q#äNXîPÕŠØqƒœÝÄq"ˆ˜ƒ­é‹ yT÷zóøa%òDü•Q‰¯G~†ò6 Þ!}c<ŽÐ ¥±âSFñ±H:\_—ƒkðó“¿c/µ„Ð 'x^ÃáÜ”}™´pM8œ÷7y>«°Ö]ž†ViéBé1s¹³@Äc‰ S7„ã4i®_<¡QElß jJHÌÓ…5laÒ#!Gxv '¤ÏôÙ1—)Ì5Iûì°ÆØàu lqF®¥!›wÄu"F"Ò£dרYê‘ ‰Îˆ#¯Ì4fÊÃÂð!kŠm˜|¯ô"UQ¤D…°/ÇšûbWè”bUªÑ˜‚±âixƒ‰°p|„|ú©!E·øvº´Cijã(Žësà·l¢¸ñ†þ¯ápH4EA4e2™Ðl6%n*•¢Ýþ‡7òæý4ù†àüÒm–6ªì±¬Hõ }›5.ñ>Cbì³Ä›|ˆ <*ù·ù7¸É ¼/Yê¥4¸¨4Cz$8bžËâ©õUš¾Îæ;YþÝÞ£ êœ0ÇNUy½òëF8èÜçIzœá±Lú!K—$gÙ rÇ·8KV4±˜)6@Wék#"œe+ ªµÈpw1pxÆUÙ—Pß3Ö8dA¶¸h1ϱªZexÍ,A¬¥æßsœ0ŤOŒ-Î’¤K†&1oÀãÌiFZ8@²À%¤/\ÃcŸ%êä1•Ÿ³B‘QÎð‹I ñ¦½°´Ø¬óLŸ.©HÒ -ÒT(ÒWp†<,0lj¢CEø/){ŒÜ±vXc™=EÐK3$ʈ+ì¾Þi9¤I“)ÛböYâ2wƒðŒ.É@laÄ«ähpžMº¤xÊ;¬±ÀA@pjƤBy±Ã*¹Ï:Ï‚–Ý«ì Ç sì±Lˆ í½ãö³¬üˆgè?%W»Ý&“‘ªX,Æp8d0ëÈtúƒŽ[ï›hÑ0—×rhÉEº$i’¥N_hèl‰Ó4õ,G”åZÏP¢BèÂI]E&'¹fÜ¢B‰†ÈK¤¨&ÕÑq«Ï'>ð7ôþþa‚ÕøkòðX¥@*6¤¥eÙgðÐeºm˜4æž=ú"Î;Ö JTU‹[:*¾êU¥ì c/BÃÌpÈbЪwMVIÓV(\®HÑ  æMr’u‘‚×(CÆ„iiæCÇA*šŽÃ@eT)0¡ Ð&#Zh¸´ÈR¤ÊÈ’.5¶yÀEбjpx–Ùñ ³bLLªdJK]Y’ñnj6Ïr öX–ñØb‘^<†Ë mÖ9ÅF"Œ‹Ð4©Ë™b‘méˆLÉEê´È2QÞ´h3 Æ&g¥{@ÈÃNTí#‡,Hë›ÈÓ×âôWâ´Iá+‡S‹ M!Geñ4*E‰Ìµ lôG÷ÐjUî=ÿ²ú?¾‰½^Ïó¨Õj¤ÓiÖ××yë­·ØÞÞæ#ùÈ÷Éë=ú«g¸Ç º\â~ÐÖ”•™¬Hq–&Y ^ä=ž±Dl^àG”ù¿ø%*”˜ãoIÑfŸeåO<æ,¸É Yemh 5‡¿}ó‰IR¡Ä 䕯µ€‹Áó˜ÓÔUjÒÿqÑã6Wƒ¥S<á׃YWŽ·¹Jž:I:œeKfÎãIzDòwüÂÄp†-¶YÇS–­E¦Ì QJtikñ”0hÌyg“ªQà^’Š¢ ©PÂEcD˜e}—Ú8ÇaxaŠÔ8¤Ì«T)’¦M zÐp)P§J‘;\ lzÌÜó/RrÓ/P§DE¥iAÆð‘‚zÌÞÛN£á‘§N™#*””ùFfS‡³Å•™\aB˜ûüƒ•fÑ9ä@,Ð{ì±Ä@õJT”[A>H3XÏ›|ˆæp08Ë=e2a÷q,#.±Ï&çðT(Q &7¹k¨ÎH<Ã3W‰és&÷ª?â ý§äZYYa{{›k×®Ñn·I¥R”J%*• ¡P迲å-¼¶Š™3e@ƒ<'”°°é“À‚~)Æå`Ó~Ÿ+e¦VïÂTn‡]V©‘g@œ5:¤è'F‚°sùô>o>½È7o.|©ËcNã#XOîª-£,è÷¹(“Âô6E+Q¡­PÐ3JK¹cf30Ž‰Í q“C¶YS _0$&½Ì–I]˳ËJ`ùše°ßÕ.s]ÜÂÆ@WBÞ™"}™=º$¿þÌQ“¢€€r7Kc‚Å€(û,±È}âÄésŠ=jØaU1Ó¥yÎC°Â.>‚"5¦È WÙÌfO¡h-Ú¤(P£HUt$0¦AV‘íDà+Ÿ‰%÷=‹ø€¦\(®º—u zÖ,P4 -ñ˜’¤£â­å(SZŒÝ îzH”4mÎñP9d.ûÌqä«®, •­ãJÝSŽ(3ÁRñ²2c |1MM¥àÿW5Cøýßÿ}¾úÕ¯òèÑ#~û·›_ù•_á7~ã7p‡Ï|æ3œ:u ß÷ùÍßüMt]çúõëÁמõqSꡜ2Ï1Âõqt]ùažcþ‚KA Òçýÿ‹öØÊöt[Üá [œ•PþÖ¹­rޏÀ}Nyϸ«½@‰ŠT,¯ðÝÿ™íÿâqúç#üOúŸI[ƒo`‰)cÂähð"ï¡áq‡ËtH“t{\÷ùž.7Ð«Üæ5û ¶Ì³ÔÔ<ûgùz`©À÷!==ÉM®“£Éª¿CDŒxŠÁ:çÎ1$ÂUn³Ã*w•Ú÷EÞcžãà5Ss×™bQöŽøo“ÐzŠ8•`—U\tηè™I6ͳÅfÞ?¡)²Ä¼â¬¿E_üÃévƒ' <ã²ÌW¸Ãm®2$Œ8TÀ‡Õ¿ÁU¥DîqnºEJïÖ[¼Å«8*ïÞW â·¸NɯPEîs‘8ä:7yk¨‘ñZ¬··ÙŽ-£’"²ST¡È€¯ò¢ xƒ×˜b²Á3Îó0ódi’£þ£Ÿ¡ÿ„¶ÜïÞ½ËýÑñÝï~—?øƒ?àÓŸþ4Ÿýìgùö·¿ÍÆÆsss|úÓŸæsŸûÀ´ÛåBä°è°àq_»À"lrŽ9N(P%?i1=V4Gƒ" Yï‘ 7xÈyÊQ'OžFà`Ðq™ÐfmN(ábªM¸’¸ƒqÊá`?ÅþwéWÛ,²Ï…“-gW¹ª¸G”9a—ä¨Çunq™“•!퀙¡…­l«³`™-ÎRæˆÇœ¦è׸ƻdiR¢@–&›œ#ét¸¬ßÅ1uŠvC³Œò憮 î°_”Âã{©°ÈuäØg‘St’ô˜ç˜Êî1çwžÐÌÞÄ›,tN˜d,|CЧ٠¯pµù>2ëäÚmò£&tŒõÈ3Ú†¤ßržrh”9³÷-âÑMÇ©ë9®õîà MâB/N™«T±âS†ÄpM½èÉqŒÑ$<°yÙ 0¬ãÇ'F Ëžv§,cÌOÙŽ¬0!ŠT){G2mÑ”Û'Ü+ž'ÊHZJí 3J[‰ö.ðƒ‰æ‘~š)~Ùû?˜haöT†ù {Ä'Ä„´Û!äMˆÙC4Íe%¼Kl<ÆÕ5ÖÍg¬ÖY!Žcsltv¨G34#i’j×lýP¡æ3Ÿá3ŸùLðñ¥K—øå_þåø;_úÒ—~è×>§8fž8\4qšœÞ `2$®$ÿ¬pG»´A nqæñÐè’¤žÌ³ÉÆ þÿ„SŒ´(m2„‘¨#Ê”Öz¸Ñ Go yûµ—‰k¢BV·3fóCÎ غŸgÇX!N²¥³ÍwÍÔüV&0ƒ.ƒeHóŽþ29OOµƒÅ‚Š1ue›YK³ÇRÑ9fž-í QS¶ŒŠT4òD:Ô#ì°J‹4{sóÔE^-F!Õ2Ÿ Z×M?ËAbv8É&OÙ KRzC"_OC©Ðg•LŒ.:]‘䩨`N;¡FAU Rx'úurŒ Q£@Œ5QìDiç‘ã$9ˆù*”¸Ç%I)‹5 7UàSU /ß9îE.Ð#Á.+ÉIà³Ï’ªH¤¿õ}q‰¡B,NQ¡Äm®rÈ‚¤okÍHF†êP¤J‘\PÙÓ}N˜g›5Bʃ*ðØg‘0cº$Ek’uÎ=ï Ýøé¬È/_¾Ì—¿üåøÜ?þø•W^á•W^ù¡_o1%)ºL•ÙWkÙLñÇŠ“žÂÁ$Gƒ8JZ•¤IöH(0ŠƒŽÇ&ç(#7‡"ÆDØâ¬T¤k:%¯Â}.YÒÙ³.Òþ®ÏâÐz.­E‹t Û˜…5Œ‘dD˜ˆÂ·šL{V‚^P±/³§r·™ß.F?ÀŸ…‡˜ØŒE„¸'y †æÐ'0êÝÀ KeÑ«’¦ˆI~KL•î%Äó„Ôë¥ jøš‡a»¤ŒƒP”Í#rFܤ…çAGK’£A•" !“ï¢î˜´ÖÂÑ4L-‰¥MHŠ>ñ‘ÔÜ„ô †fc„ ZRZyE˜?Â0<¡“ò{ô…ŒSNˆBó™·+[9"††Gš6-EÆk1Ðbô:¦²ºM±šOŠ r Ð%Å˺.;M2 µ¨‚ÊD•v†`t:"šØ&§5I‰>C;ŒN‘ºBfÕGB#\CÃב؀„!\„²ë΂e¤-Î&Oƒˆ>$î÷‰<ï`üh׌Ëòs‹ë˜$yoÓ!ÅNáóTµJÆ¼Ï ´IsšGÄž¾7y•uN0¾Ï×Äë,rÈO™ú&Ýb’7y5h18¤›Éü_ÖxMÿ6NÙà{\â/ÿþ/l3úãÀ:Åâ&7T‹é ¨ ÃÀamúj¦ò>A”!‹ úÅY4Õ"?ažïð*@`k‘¡AŽWx ‹ w¹Â>K,¡I–Û\唷Ͷ¾´©†Ä8a. =µÈr[\ÅC㛪mWZ †°G»s‹ôŒ. zÜç"9œc“žJœë¨9P<]’XL¹ÁMùZEާlPôªXÚ‹)§xL‹,_ãu5vxJ5 tI*¨lY=æ4%*ÌQá1§xÆ:1¿ODH¥ûgƒ$¤!zš¶ÁS*”8fŽ8αÉCÎ!ðÙ«Ô(°ÏR¼é©¼gùðN)Rå §‰ÑçeÞ¡J‰¹«F FTEd5Q÷µNžK¼O’RJž:¥H% ê’Ý’#h%e1°Ë »áeŽ(3Åd‰•²è›:Æ6 ¦i“=RÏßr·þ•oè§yL\¥$Ù˜œá1ssÀqæ8VÙ·>Mr¨ŸRºÇD„)&ʈÓ<Ƈœ]xD–¦<(ã×l¦–¦Kž:ë<%Âo^0õ®Ð¾9&üòˆ‚¨)«P “4-ÖÅ6F2Yˆƒ€VÜßCÊ+•üÖfË#ÅŽÂ&èab³Ê]¤WÔG`(;Ýú`›¹t…#2´pÐ9`‰¤zýr‘YšA…Ð'Î@ù5³¢ÉÜ´ÂÔ°”ýK`bS ÆY¶‚‡²MšIѦD•6©€ˆäQ_!6x¤éÐG2® T)sDŽ:[œÅVÞS<¦¯rœKTcÊ¡XPc\ű—Mb¡áe â”9¤E†(CRN‡”ÖÅÕ$ ^ú?5Eç“¡ªÊùQ•J8è<ȨGéZð‚t¤C™cb ±Õ™Sœì:¤‚Ô¤‰ò1GRâ„ÏÛ>JäòSØrÿo½>òøM<+…p}V#ûŒBap½PÓµIתœ™{LÑ®r+sà/°1z ¦ Ø¯ósþ¡§%Iš]ÂÚ˜¶{Ÿ¡#¥µDbè¾GjÚ¡:At}Jõ ­å,—Íûœ3ñÊÉwYÔ¹;X¡ùÖ}ŸI(„'4tÃcޭЮöo£'\ÆVˆÈ³1ãT˜Ó¡mœ¸n¸,¹Gø=á8ôŒ±ð€ž'&†,·öÙÏw9£=Aw<´ºÇPD'Â\lIùÅÊßà¡æ£éšáq¾»‰?Ö(™uÒÑfÔ÷!¤M†á:ÂMlۤح¢G\’~—©káNMbúˆ¨1Á!„˜j„u›um„5$ÙrΌհ—œß&m¡ ^(AlÐG7÷Iû„p™Ð'cu‰t§¾«YlDw0}ÛйXî+Þ}¼±FÜ1[â5ÃM'3éb¸}-NhâRð›¡ãheªØžÉPD ér^ƒphJy|Œ{,Šún ]ȘjÝwП’¨#tÝuˆôe礮0Ç$*[H$¸ïËÙxÂí¡{’ô·hžÐñR$±, ·Æ„ ‡¨1a‹°*ö ¹R?t#L‹9½…çk„£#ô¡ÇÅîñóÙÖôÿTè+ìÐ&M‡”¤9y-ÂþCw±}“¤è²Ìžd 3¦Oœ—y‡MÎ’£œv[Jœà£a8ù!_…#¸,pÈ>K„+›“lå |„ðy}ñMºšÎö»Q²×¦,‰=æýbb@•bà!?ËVa™ã„vXe‡C¤¥!ë7I‹#"ÔÉ“¥É{<æ %j‰0¦H•:ù€Ò´Ìžâ KözÖo¢·=VÒ»êe¹šñžãôùàømzf‚§úºMøï~Cæ­’>¹h }â\P!cÂL±8Çf`a›ªƒ#¦qˆ)ö3ª*ósèºKÂï‘’ÇuļâËÓþ‹Üy¯ANkJ޶7¤¨U 1æˆLÕ阵ïÊ‹.ï›TÊÊÃG=°¹-±‡ÖÆ»L “iXzÏ ~ [HýÁl.Ù#Á*»4È‘¤ÊâeHƒl”3ïÓU‡$]åë˳IimR*"R ^,&¤é|Ÿ@'BÉ«<…ú·Íù_rmÍ&•Za¹¸BãØŸ§¥§ y†~„A>Ædjrl•k!úɺç2ˆGèk1>u-+4"IÊïªîRBf!8.}3Î8bÍOÑÈep„IWOP3óL4“ЊE¦1å^e™âK>šçã:-?ƒŽ#‘ÇF‹Ãè<ñÓ}0àИÇ1 IWÓ˜³]zzŒ‘"î÷Ù×GF´")„–7ň9„Ý1Û¡òñ:óâ˜f:MÒïâh&=! p=Éú`›iÊ *J˜Æ+6%äM8±æñ}èè ÏA‹8 õ†+1³Ù~ ,°Ä”¥á>ýXœ”Ö¡­¥HF:äýÃP„°“·ë¤Œ6=#ÁHãérÃêšItÍ!¤1¬)]+Áiã¡yDûcž¦×(ŽU§OLq-¦™Å‰ë„QœT™X&QoÈH3 ‡Û# Ý&Ùk܈Æ@D˜1Jã h`ûqg€è1azÇÃ0mÐ||×'ìŒ0„+Ó á{”ŒlË¢c%1Í ÂõÐ5ß÷ yBþ˜¸ÛWôQßð)úbô ycòƒ&ãDˆa8‚çjÔÍ}#†æxD½!}ˆ©Ûxè˜b‚ðÁvLHØt#ÏÙÕ3ÿ‰5ÃÿW°¡×)à)`þ€( ­ËHaùº$3 Øâbô‰³é™2ÔRh=Ô&âè²õQð›]–Ùe5ðXªN–së8.”!íwxpkŽ¥ÉÀ~å 3"Ê! äh ”¥âˆy>i:´ÈLsG5z$·Xªf{$ FŒ¾Lò U'(&¢æÒzÐÊ„£LÔ,\2êÃZßÁ n¨R☲ 9„"³èFG‘ܲª’xê猴(ƒP”‘‘á`+”âL¼Ø%¥_b*¾1†+¤¸±E]xÔÈeÈÀ¢ 7 'Í‚féYaª8"ä$;D¨0G˜p–êÕ#ÊL…D0vaköµ3´äLcÑ$CMQã4<¦š¥lHÅÀ“ë¡Ñ©K{ÂM²”9dL„ˆ J!yÍUQxþ ýŸz¢þ­Bÿá·%áÑŠ¥ð…Ïcqš¨?äXÌ˹©ç“÷[ì„VÐBÛ¬P¡HÇLR¤Ê€(G”úQ,1%Â0è¯õ‰3F¢…Oó/ÛæMÞˆ~ˆˆ?¢ ªtž&d@Èi—;ñ ÿÛ£ëä/k¤D›%$–yÞaÅß%ª x3þ*I¿GBt‚Ô¿8}n›WÈ…›27Bø¾ƒ+tV‘›Ü@6¼ëL¡{.ÛÚ!gJˆ1^D°Å™ zÕÄæTî)o¦_¡ne™ú!„/c“3~‹}. ÉÒ IgˆEÁ«qÞܤ®å‰Šh–Š(’õ›Ä´m=ÅžµÈ^&êiy)v´UJZER5Eˆžž ­§xYEÃã~’¨°g.á õô6Ö"¹xQ a3ò£ø†ÄÀ¶È EéFÏy„˜rzž‡ý*7E!Èø<áTè°¢D)‹åcÚzš¯¾s…¥—ÂŒ©ø%ÅC¢´ý4óÞ ‡ú‚RÇîcºGú<=’´Eš—ýw8e…(Lóoc‰)»¬(ôŸC†÷xAŽ<´hs_\¤K’Yàˆéœ<´ÈpD™˜j? _ÐIlÆØS‹©añ®v-X$–ØW?¾ˆ“4IN»T­"}b,pHÇÌÓ#Ái“ Ç6k˜Øx ª²Ã*]¾‹¯ûì§Ø‹Qæ)˜Ø\uï²¥Ÿf¨„9óÞ -Æm®>Q#AMÎRy|4.ð€cÊ)+ÎUn›¬‹Î »|ž²Á˜°²öšäØc™5¶)»Gie†ºL:Úf “<4Ž™£F‘8=º$ù?Äf®²ÃKr$á7‰;µù{T(Q¤Ê %‰3°È5Þ%Æ€Vi’a‘Ã@€×@b=WE÷ù[îÿ6Cÿ]C"hZ(8Èv…<,Ë4<Ÿ‘V‹¼¤iÕÈ«€# @ ¹‰; ˆ"3ɦv–Ñ=KPœb("$èÔJ€a8B~Ùf õI IDATr˜¢}§Ž5MACúDä…œ­¸BS‘%á ?ÜÀe,ÂAÂ`KddÞ„ãÐ3d”²‹.󿵄T‰U­|9¢ ‰Ó§£%Ñ4©²……-äúvÄ<}UTÌFf>]E <ÔȆšJ€ç6ÆŒÓQ!&bL´PÓjë²£7ЉÐ1å¬_×\b ÈÑ4JKŽÓ„)‹MϨµ_ŠÑÆ„¤pÖY1}Ê s ˆÒ%ÜÉÓ=âL1‰2”‡n#¡bq£*%SZÞDAÀTA¯l¡ÓÓôH(èV„ˆáFô@…ncâh2§£bd#b@¥l º¤ˆˆ¡LoÔ3´bi¦è88º„gµÈ0ÒÃ$•ލI ÿ;d¬Ï\ÑŸ¼zבŽY¥3ðâ´ é†T‹V(¡E–¦T¨‹²Šõói)!Cˆ)ë<ã€%´¢K]AWuUM; ªhcžR@Çéc1•™Çhä©q–ÇÍ-ÐñÓ<~3Jü•óJ-Ù–ÕŸHâhzÐ2Ÿ¢¦åñ¤¢I–gÿ7{ïlÙyžé=ÿŠ;ç}öÉùt@4r"Ši*kFÖŒJ3*SV•%Ï•xkëB7ºT•k„ò”U’UÅ›œ)—5I$ ¡Fçî“ó9;ç´öZËÿ¿)›£(B¦MBìpöÙkýëûÞ÷yÄ2&IRõ)Lòªƒ¢G†*=ÂL(*ž'4NDAI$¸¡'ÂGvC£´¨ %jø,Ñ%¡)]qšA*}ˆ¥\ÎiÜŽÎ gõe·;®<¾ºÌ±GU‰$¤«× Oˆ)E[“£k!|FèôµCEbsÔ7qCK¥Kž2;,¢kßU»†èèÚ-ªdJFÈ÷²G(0¶3’çl§¥ØÓ!eyÛcNN? ›¾°Ÿ öX D?èñ·ÕûÛT_ÏyÕ›­e›¥@™Ù!†!™FMS§JžŒLqd*ÆmðÉQ Æô?I¹ü¯>aLU íUŸá$Cl¢¢Ã₉^‡(:#$ùÏU²  —2ù@‹;æs7I(ðŒÔG®AJ9¿ÛÄ)’ÇE—@OH£Ú¼EX@ñCÁÔ£1>#×ÄŽ"&JÐ’¼9v‰7‰±d t› ’tô( Z D%Uœ&M?IW—ŒóñᣧôÂqšôü1¯EÃH`*t° ¾©)Þ¸2®¹ºèÄh1Í%ò„蓦Jƒ¤BcËUgگѱ /Ô")=D`œ›á0øBôÉS’¡àÑ.U#M–*‚Ñðè«ZŒ‹!!%æ²£L‰|@Ú”¿¯¦tU0TÚã‘Bx7ˆ~±s<í4‘¤Ž© žÕÔ™æˆ8-ZÄþ‰rœÅk¦%ú;‚M‘Zy¦h0íSÖ²8X¤©Ñ$Ð*¿—î9ž‰{ê@åÿ ã·ò]û8>œ§º” œwï1É1u-IWD˜à”¨˜Í¦Ÿd©¿Ëç.I¿Î!ÓÄTêØGã.ÈT©¿M– Ýp„m–ÈQ%E]¦5É“¦®$õš°È6óì¡K‘‚Ü¿ y=;¹Oz~ÄÃ÷¾Ã"»$h²Ëa·‹ëʤ{•4gX§@Q32¤y;¶0Ë!zÜWˆÐ%ëWp0)‘ç„É€z7ë8eRÔ•Éh¤š ò@5Í…èŠUÖIQW›|ŸINH{ÄQÔ'j®ÒaNsDŽ2-•–«'L0Ç)jX 8f*pÝkxø¦ ¢.&²Î’!AƒEvTXÓBà“¦Æûô•o=A“ 5<¤<âJ¹ÿ]?~2rÿ¾¯Šr\7‰?6® ±I˜&#¹ÖRáÍ8ÍÀý0É : %1¼³à¡Q%C »,ÊÄå.q‹Õ¹"SÉ*7oLª‡C Pìàûí*d×Ä8‹:œŒ0¤[Á“ð±¼¥«Óâˆ8r´£±SSà”&U/CƯ¥£d%²º¦OŒ¶"êåPÇ ‚¨Óêú¦GÂoRpJÌ{{¤©b(78È&h1ÃQPí+éKO²^ÀË2)jòfçu™ôOHÒ$E]ݘ¦9dJU3T˜ 4o¤Wb ¥ÌFÖ[ÛêF,×mòÏS&‡ƒDÏŽ«ÁšÒ¡Z8TÈa`MáÇ7ÚñDÄÅ(•mb$i°Ä6zd©0Í‘ÄEkH!Â|!>)êLsH‡ŽšɶA[­‘?²¡Ñü{\3þß~B/øE²^‡8m²T‰ûå—5Ô¥|²»¬ÝÆ1tå’EÅ蚊Š6!Q§n¼Q"Ùo0É ø>SýO'Ÿ1£èBjŸÃH~°|˜'Ø Yœ‹PCçô}X{ÜaFPb‚• õ¶ªâBŸ2ye¨³Ô{fpÄ´dmÇÅ`‡†ØØ 0ª¬“\¡Œ†ÆªíS ˜Ê)_%óTö¸ˆúšî3LPÆS¢–:ˆÖ?RÄý Å}ãßàöíÛüÎïüßüæ7¹víÑh”_ÿõ_ÿxnèËb“v†/ó«ø>-¾Éý÷¹z† ¿DXô±Ä?³~)`–ÿ‚ÿ—|[|JÉì[|š×8dš¿6~–Iε7¸ÈmÞäZÄXf“KÜâßò/ÉPÁÂáY®ò:/’ …MŸ%vðt„ì:®‹5²Tø©¹wøKñiþõÕ_áñçNø¬÷uÝàu^b€ÍYð´ÿ.ÿIüW ±˜ä„Oóßæ¥@2ó„ÿ>ÅWy޵`ûûŸR™5Öy‡g¨“bž=–Ù"êÉÀÎs´‘c¼<%2n}\ݤ­GùsñKêç*3Û¬JNu<ÉEq¿®óFf‰yÎq±Ä34HP ˆƒÁ:kªS¾N‡oó –’¾\á§ÑEe5{ÿ›Á—øJèŸó5ó³LsÈš»IIÏñ:/â¢S Èîð.O1ÂÀCãE^ç[|*ø<½€Q¢Ïc|@‡(·¸$+sô¨Š Î?¡K„G¸ËÙÎClsZ8Í6KA‡t™-ÉZ&ÇM.óWÙ`•ÿMü F¬±ÎS¼Ë=Î3À&F‹h³Ëðä¹;˜,³Í¾ÂÉVÈ2Ë}B¼Á'è"O‰)ŽÙc>NåÔXñ‡Z[ó¾û—ív›/}éKT«U@‚šþèþˆ7Þxƒ/ùË|ñ‹_ü±¹™[þ Ò~ OHK×&+ -Z'Ño¡Å=ºJÌ4Ǿd•ûGØ8ÄEèc¨h“cQR‚&êiw!F®‰ïjtŒ(qÚ|Y{5„Ü3 ˜5uˆêÆrÙ¿ÉãÃȘ5¬Ñ,ÚZ Ýó¨jiÃdÑÝ¡£EYí°:ÚdÃZ¦¯‡hc„Á2[ì1OjÔÀ35‘ÆbHÖ«â«­mö“s,;;8ºŽ¡ÔaÆž\Ç2ªü¨Ì´vÄ@³ Ñ'æ·YtvÑL¢˜| Nd(Ú78ë>dߘ Ö2‹ì0Àf‡E†˜LqL…Lppëa™-ZÄÕÚ`Ä,e6YQ`e2TåêÅ—6ͱ¶6J‡ew‹²ž£MŒ3¾| *‹,SœóÛøBÂÑtF«?M–ŸPÖÌ8r×ÿþÿy¹\æ+_ùJð÷ðÀŸþéŸòWõW|õ«_ýxnèÛb ÁT°»ðÐØÍ2Àb]¬jÊñFì˜)ö…¢Œ_r¬e¦+ÃW^Ž Y¢BŠN*ä¸ÎT\FÞ$:X8œø“¸BîL%¬`†[\"¢œÚ%òÌÍÖ90:Üüv–•—–%¡ˆdˆšEz„¬BÖžÒªÊIQgƒ5™&G•EšÈ—Áˆc¦êê=ùî2Ï@·ƒ1â8øQd‚ú -I-#J‘Cl:@‹>pÀ,6šæ M/A7&›cí¸OïªÍ¢…ƒƒÉËÁLRЦŸy þ)=VÜbI^Û-¥C• ·¹D]OÓ!¢5y'”´Ãà¦há¥LTaV&9¥À r÷š÷Kè¸ùÓ”E– Ü `$CLFê¥ÃS…»ÜÐÎqýõ ~þ¥CÅW–U‘¦òcûh”È1Í‘úµÛX¤é èE“œ +»QΫ`1`][UÀ“f*Ñ0ãJ?êÓˆ,’4H«Ý­<ÐôÕÞOã” E1ë3B'Vk£Y>NBš~ÆÀœ”_§+"TUMm‘”ÉQTØÕ,¼]tá⩺EÎ+3­±Á #ߤ)l±ÌŠ¿IƯrW{Dõè]2T‰¨¼‚Í€9öqÔÓÆøÉØU{Ð8-ÊGß!J‹8+la⻾˜/u„BȺ,æØ§âgƒ ›Œ=Édò,TÈI[’×åT+ÐU‡š8-ÒÔÈQf’f9¤Nš"úØ*á‡p4‹‘Z©Ì³õBJŸ;}äu÷FÎrX‡ër³ÃP~{óî»ïR¯×1M“V«Åññ1×®]ã÷~ï÷xÿý÷yã7xê©§~lnèßI=Ï#ñ}z1›#1M‰<}Cî$£~‡ÙÌw¬óDÌ.M!Ñ¢Ïó§é“þ)»Ú|@Cì¡M3&É‚²Ìq€î»<g±ð)ñ:÷£g9|C0̘<äŒt%¬9SyÚZ˜®¥oÈt|“Wî²{Šõeþ‡§¨‹$»æ<ûÌqlIvƒüœÈ„zUKã«@铉÷ø–ñ":.sÆj8)ÍU0ò.u]ŸºDpƒۈ¦Xv·8ÕóôD˜µGqÑØ2š$:9ƒ‹ ö±(ˆS,†<ùf‰¤º¤©a3äiê$)“ç³Ö×éiaºDIªà‡<ŠÀ§B–yöØgŽaDÀ›$p:Oø×‰è=N¢yÞ2žcÊ:ÆfÀ¦X¡EŒ1i|w¿m-“¦Æ6‹Xú¼.%/xXI•l¡d°2ÑqiIÎ÷Ùcž]}qJäIj ªd0Ĉ#{šI"¢«Òò²bpÌ}ÂÌI¼¸­NÓyJ¤*íh”Žˆ².V «UpgÅ~’29îkgé¨~„!1ìxl|qZd¨ðAìqr~™w„ÏËuéý}®Û¸u ¾*NÆk¯½†¦i¸®K£Ñàää„?üßÿýßçµ×^ãêÕ«_mí²óÏtßãAl•º‘d—µƒÕIQ£A’Ïô_÷}òZ‰?ÿ„Ÿáo°p— ¼Åó\ä6¿Òø3–Ó[˜!&qãGLSFŽDžãª|sqØb…Ÿóþš¬_áŽqk<«Ì@.s“éÑ1oOKn·ßçeÿ\œ¸ÍMcÿãõgù­ÿ}¼ÃÓ\åy^äuVØ F‡¯ñ9æÙã EVØdŸ9r”øgü{ê¤$;Ý7ùÅÚ ‹áÙïð¹M– -bTÉ’mÔeú<ÏU"tbs‹‹d¨ò(R%ÃM.3ÂäùKL²F…,KlsÌÓ∮ÆŸâ[ô ñ6Ïò´û.?'þšu}÷yœûœãîScä1~Õý}=Ä5ñ,r¤Ú-¦’2<39:¥hæy•Ïô¼4x=,º;,ª€›løÞåã–ý-nŠË”Èó ÞTµ‹#f8Ç}Øå˜)Jäéå<÷‚ðPÎ+óOÝ¿àU맨¡H›U2üòèÏðtAS‹s'i)ôíË|ƒ\aÊ?ægºÿ'·¢x ÎòϳÄv ’½›8OŒ6¹Å,œ2Ág‡ß¤Ð-òô³\å9:Dùy¾JÔïðšø)N˜ä÷‰ÓR{Ä`‡þ}NÛ3òÀ–‚Ï¥R)fffxõÕW9::âÎ;8ŽC:&ŸÏs÷îÝ«'ô52"FÝM1Ò Â¢$Ô;~½éM·™ó¨‹;,²É «þ%‘S»U8PÖÄ2Yâ´éùa,_†Ý¢~‡ùÊ"k¸BcI)t—Ù’±‡mŠOe©’Åó%w¼KDÑÜ.ÿcú⎿ÀÿúÖOóÜó;Ôü4–r…T~Dúz¾ ÅDƒ2YbN‡sÆý@êR÷SŒ„l¡ÌvŽ8çßç;©húIz„ð„<ÜǼ6ýa˜²)o裈/ÀzP™“êgyÃj"FKnò]—°Öcb(Žö­Y ^‘ˆÞ%"úÏg[,1Ç>ž/Õ§kúCŽ˜FÚ ¥ìWÖz á 8ö¦œq60Œa§'W&â=ÂæØ˜¢«äS ?É2›ÌºGLéÇlh+„üYêîR´slËLøEÅ43ʉ©ŸbÊ=¡hLઠ_Î/SYEšl+–…¡Âv0RÓϦª¨Msˆ¡Òð +ü¯íq<Ks°Å”_#,úÒß1’ÆÆ¼^B÷]*"GQHéOʯSö˜~ý°?à%ïu,wȦ?zŠíû\3–¦ä߇Ý—ÿ,—Ë‘ÉdøÖ·¾Åþþ>>ÄóóD Úz’ëÜWøßůÑ#Ì¥ÌMž8»ÍÿríH?#ý¹Ÿó¿Æ}qŽ& fÙç·ø€ÇØSˆ‹Üâçø7ü÷ÄÕ7½>ÿsö¿ÃC¨zD‰H~±Ž+Ùì¶ÅÓì1<Ùš8¤h°|ªqôªzš¿¿ŒÍs”¹ÆFLFJ<æ½Ou˜âmëN™`ŽÞ1žâž¤Mœ ä }5\ôàiÿß›ÿŒU2’ëžL°Ã" ’¼cÚ8X|’ïp_;ÇFx•IæÙ#K…CføÌpÀ»¼Ïcl Yµ›áˆwxNÉQæ¸Í,¿ü ?- stiê ¶õ¥ ÿ™Ákµ<3Âߘ?ÎHíä[ŠoòyŠÜçØ‰-J }žà:8‹Å€$MÂí†.Ñ %W œò5û3Xö€;ê%ðùK~KÈ*P†*¬µ¼%î~ô'ô¿ç'jmmµµ5z½ñxœ—_~Ó4ù“?ù,Ëâ·~ë·~¬nè15 3 ‡*b´ÙbMí'ã£ClՂбrJm“ 4ŽDãfŠÜpÈ R¢&Õb€Õuð=ALëÐ I˜žÚÓ†0\ ©8Ί §H)LÓH` ‡Ç“¼¾üß¹³ÆìieÓñ°€&\úß#$êÙá ý¢&<õ{´hcX¾#Wj"Î6‹Äi“¦FÂk`h.ØjUéÉ*ëXfòݪš¦ªwUú„˜áUo“<%4×'å4p ƒä ¦Ç®5OÒk’Ó˼")·Î=ü·OJ«Ó#Â4G3Åüè€ÕãD+u‰zmªfšÕö6ƒˆAœ6%êvévùÒÅWÈf@Þ+S¢Y.QÑÁ÷«¥RÙ:øEÎ/ã Uo¡¹,ø{$¼&%rÁƒÁœØ§Dž=¥Ñ^`—iU©bŸôߣ(d.¨G˜IN‚ÀœÀ'N›°èÑ5dpú,Є«n#θi1j"ÍB¦‘àØœ$G‰ø¨Ã©™'¦Ú>2sѹi )|ÔâØß,£nè—.]âÒ¥KÔj5fffxñÅév»üñÿ1¡Pˆ/|á Ï }ˆM™[,Ó#Ì*Ì I2 Ñ ` ›,S H‹1Ñæ„IÊäˆÓd‘9z`‘]Æ,¹g’( >¶ÏËlÒ'Ì ‡|È£ œ 3¥˜Ü–¡ƒ kl¢ÏK”ɳÀ.k…u^u>Å7Ó<ûü6¶6à”%r 1ù_c“:D9`–ËÜÄ`Ä‹¤¨s…4I(Ñ‹£zÖ}˜ ‚960…³Möy³ÊCÜEÓ]â¢EYõGu…†-2!ƒ>"ILtˆvûì[¦r‰[œPàžÿiQ ê*÷8x€3TÙf‘"&9&M5D”ɱÏ.Ÿãk$hÊ‘vÐ…¯‘Âmâ>%?Ë]!IƒŽ 'ÊmýÏð6QºÊý0Ë”LC$qÑÙe,e"ôØcže$¨“dC[!#jÄ--Ž2)‹,[þ Ox×¹Ïy:F”+Ú‡„¼>j—qѨ|OU,cW©‰$C,JFŽ ƒ{ØÞ¾°ØeéÑ Y­JÕJ!\?øœN)Æ “ØÚ€®æ˜I¾\5Ö&â8Âbà‡ØÔVØcž°&§3u-ÅYó]"¼ÍÓLPb“|aze묪é^•Œ Áºa£Kƒ)tÜ Õbâ¡Ë.ó¤ƒ$äõ©h²r˜@ÿzaŒ°‡¥ Y¯R&KƒijtÌ[ ˆ6®â¥ý:;¡t\î1Ï/üžÐÿ®”{:æ7~ã7øüç?Ïç?ÿù·¶¶Á* ¹È-N™ÄfÖ °ÚWÙ ´„ð6}…C²Á J6’¤‰p|N) ©à2’èå#Tß\ P.p9¥€‹Ft<¢Ô©!Çu6²TU dÇùÙC:ƒ7Þ™"õì³ô ‹9S IDAT©F5ЯŽÅ,Rro3Ï.:5æ¹Èm<4ÖYc‹åàÔ¢Ï!Óô|¹3JÒÀf `/òÏì¢Sd‚ûâŽJpމVŸ UI(Ò ÞKq01…¡\ã Rd©rQܦFŠ&‰ M+k.,†¬±¡Nó8ÇEn«ò͈9öiP³°É =Bl²èO‡Xœ0)¹î”)+ZŒNp8ˆÑf’•¼©Š À äM(ªÀFc”p×q(fdë¸éa3„(4•"µÄ—Žƒ¬]3DIËS×åŽ5³,èoÆ9º9ļœSõÍ6T%uÜU¯Š 5Ò”U&gœÛh *2œj|I²¤@Z’¢IW¨§ï¸Ä*u‰‡Ì½ìfÐٶ飙RQŒ ºë ‹†æà 0¢Y!y Ž&Ÿ«¿÷ÐÑ%B‰iQ ¤}ÂÒ¹ ™ ûrÊöh‹0}lÁ›hx<ä ò(çݼÜ||²„‘]¿xƒuÎÈ/Q~Š×)NP'ÍKÞ·I{5Þ7çM^`‚ó삹ÑwŒó”˜`–.ù·8yºÎ~Þÿ*gVòðc¼õæ2?ûÂu.q‹<%ÞåIæÙ Â`ûÌ1Á)Ï®Ñ4dßqèÛ|¦ñ†ábE‡¼.^ä)Þå”ÇLö˜±˜c$MºDxƒO¦ÊÓ¼ì›L^ö¾Ð<6Y¥Oˆ§x—#¦XìíÐJEÉŠ /{ߤ«…Øe‘ £»\ôîðÐ\eS¬P#Å“¼ ]ë¤øåþŸS³’| =FËO”¨†2LqÌùþví9ÞOrÉ¿Ååá-¢V‡šu˜KÜÂV[»fyŒ87ºÏ{Æ“™àîÎà&qÎs—IN½dÇòo²%–¹ÇyRngýkä 93’5€à3Ão’¥JYËrÍx‡)ŽY`—MVXðvùéîânø<{ú,×x–U6ÈQ–èè+lÒs#$uIÒ{¬sƒL§Nn¢Ä-.“¦Æ ¼IÚ«ñ†ö \^àM œ²Á*}ÿ#ŽÏ~BŠûŒÜÛJÂ3 FÈã{œ¾ºLr¢.ä"h-Dé`]Y #t9d&€Pµˆ3áòˆ[´íàRM]iˆØ“ÍÙZá`¾Ãu9ñ'iê¯Ü#ÌêJ™íÝ,÷o„X¹"õ¼:•¡K‚&ƒ`ʦx œÊ‚›-»ÐyJŒõ.L: ¾ÔºÆà›q¥ÿ»\õµ“Y–Â÷±ÅC8 tøžFR4)‰™aEk‡ˆÖ%êvj ­äÆ„¤ßÀF@uAÚ¯¡{’1ax.šðð4)Àë&G—!\O§­ÅÈQüô®0ÐÔ"b\¿“à¡$súMÒ¢FŸ=Â*wd1 ƒ©HB Œ%AA9u0”adA‡˜’Lɇ§ñ„W*šRd©(w “!©AƒfÑÓe ×‚„¢ëu §Ež/P0×H“¤ñ=¹P[ûQg¹'hrhMÓ²âl±Ì2[8¡H!ð{Ûôy#ô¼‚Șà”uÖþ¸`_ŸåÍô³l³Ä•î-"t¹ÏùàMóÄ \¾EJ4ø–öI­)“꛿Eœ"ÔûJUzÄ4Çb*¨Ve©pS\æŒégüÞººÈþss¬°IRí¸ÓÈo®yö(2Áã>BòÆ…Æ{©ÇñÐRÚužPçcÒÔhÇ"”ÉI±‰®è¸ ±9f’iVؤEœ·´çU€,K‚fÐÍž·ŽÈ‹"ƒQˆKhêTÿÐX£IœC¦© 7 2Tp1x5$h>sbŸVH~m†X‡¦¨)åjS$x×~‚ S jssì+/ù*§F]˜guVs\š*{,°ÇMLqŒ/×y‚MVäÉZOñm^ä>çISåQïa“MnYé ª:tÃbȉ6ɱçÙa‘.,õ06¸Eœ.§á:ºO ·¹@J“"“!¬R'%o*¢÷±Üò’¯"4¢LPT²¦ŒB˰[5,Ÿˆ\5r>e’IŽé&Œ½ÈvÈÇ1Sä)O{aµê;d†$ –M“¤ªPÚœå>UÒTÉR ……F—Eõ9HMJ"Ï>³\âCt<’ `k}>ø`†KI$tWÅÆ‚ qUuœû¨ÃCã!k<í¿Ë‹±È Ø )2!«™Â¦¯IF}C­õºDˆÑæ˜)%e2ÈRe‚"%r¬±A• wÅyöX 'JøvYÄÑÍ`’±ÚæXL1À¦lÈõÄ>óªEŸ@g$¯ÛBVòXì3Ï„. ‹'É7¹Œ¡Kê zD8`VŠPhÒ&N›÷µsl±La\ttMv¹åÿ¦DI¬‰4÷8¯”Ï"€ÆÈÞk<#ñÀt¨ _}Ekd„4áÕa1$®8ª ±¸ÇùÀ¹Ï<bÕ ž«©‰a›5Òj¥lÒV9‰q‹b¨Œšµ –ùFîÿè7tI‚[`Ÿy…cÝáâà×l92­’áïóu>ˆC.«ÐÙ¸Ëü$ïQ'Éu§I’+[8åCÅfÀã\g=6XEgHXô)pÊ!30‡‹ÎY¨“«ëo²‚Å<%Eü™Sžì=Ùåmž¡I‚U683ó«ÿSÞºš üL–¥ýÞàl"tˆp‰[ Ôè9EÙ¿Áb´‰Ðå÷y•ÏÐ$βȦï`‡=æq°˜å€INHÐÄWIÎ5â`ñ7üL€ÌR¥F‹º‘tZ u‹Cc†=áŽ×sŽi&(2A‰µ?–¼×y‚:)VÙ`™­ÀqJûœ%LŸÏñuö˜ç˜)l,±ƒŽÇ×ø# ™6¥Ì “Üç"<Ï[ÜãM’ä(³È.¬r žÎWØ J—{œ§B–HSçç•|Ab)«"¡;l°ÊóDép™›$‡´c¦¸Âœ2É Uë ™¹¨“R{÷>ÓÃ#¶X ˆ]³P#Í5š¿Ä- Ž¡ÊVaºÅ„Ÿc >¢>õ?S[ûÉÈý¿üÊR!¦.ä#uî!¤ÐÙQ•"yEB|ï bªª£…¡xÝ&#†ØÄhKä*]¢tÈPÁC>Ašîˆ(m5¾’¦Î©B [­ZA2ØKql†øŽ ¦·YÔwøA˜ÒEGÌùRhrc@ìQ]†ï¥Kˆ(Q:€ Aƒ 5*d1p™â„¼S¦@‘{ÖyƉ+VÇŒwDÈ•½oM÷iòГ§ÇÉz—yö‰Ó$N›9’_'·NO—µ¶]Ê~žØ¨CÈè-f9P‡û“àç,(râ ‡ê&™#E¨×A×dUwŠc2Ã:1½‰«étED - Äøº8^K °˜æˆ¡oÓa,UŸk¡¿)ŽÒŸ‹®Ì‘2/1žÚµˆ1fÚû@Þ+ÓÕÂê°%µÚžªô-ãI£|Oäµ;J‡Yö‰ ;ø¦À#…©–¤pU 8M ª²,Y+#²*¼û­­ýHÝÐSÔ1Õ7y„®ÜUx0éÓÑ@Ú!Ùà-:jï£MÓàTœ   \l[^¨-†LqÌ%f¼#Ö´u…ù“]ï¡Â5š IÐ J—¤ß #ä©kˆ…PÀÄñÞ#¤hFY* U:O‰ÅÉSZ£(ÕwŠOç ›¾ì˜zrZ%è/Fý.†pÉQVxÖ¾¤Dý{ÆnCtá2Írøt™@RŸÆ;gMí¢ Àêøì'Oè?ð+Jƒ!&-ªý"”n7B¨Óg·‚°©«4ÀR$b+&{28X÷+TªžÒGêr× ‰î¡áÓRÂCf(ªj¸ÝÇö”D>H·5½‡ö4“â„]ö˜SU\Ô÷ð™¹îxsÜ»9`ér„ÖÃï™Þõ©¡IŠ›eYl+Ú]”ùÀ!qjL3š”˜P0ùç×qIÒdˆMŠ#Lª‹/ÈÒ#»Ê.çáê’åQ‰Q bdh‰8 죥XôÆHÓv \aÒ',?‡šäÑgÜ–> aÅÊh×&Ê+¥Žºsì£ãfO’&b6`øzDNÿ¸2–S…ècàS7ù´-ù$C¤ÀçD+8ny/QUøVƒ„ú~“Y›>¦ZÇØ4-9QðÕ×@þú&>šz=b0K™45t\Ì û÷|ý—À2? 7ô Y–œc^ô¿Cß²9`†uk•¸h¡ã¢Ï}ÿ¿<øsú!©Éü:/ó×8˶YäçøoðÜàmîÙgQ:i.q‹.6Ya¨™<ÎûTÈÒ#Ì ®ðIÞ GY†PÈ0É) Ñ”õÿˆ#1­Æ{.Ÿà@ÓyŸs<Å»ô±©“æ>gy·xbö}޵óÞãÌ>9""äÓÁ}MRÝ^½…a y Îaû~®ýñ£;b‘»â>Éët/ú!gxap\¨Ì‹¼®v`-îsNJ8¤IRUÝ’<ÃÛhxÁˆm™-†˜LôŠ4FÔáeÿ¸Bç&—yÒ¹Î<{|h^æø<ÃÛ4ÔóL›¿äÿ‚»âøñqú';ôÐkl ›cŸ=æIRç˜iª~šÑPWãt›~÷Øe:)âŠmž@¶,u •¡ÉâÂ˱½ÅßÑ©˜:" øœå&ë¬Ò3ÂôÝ0 £©p ]ªd°é«OR]®,L2«öñºD8³pÂqî~˜ãì£uú"$©ˆ^S7JÙ³OÊé¨Òa% ’µ6Y‹2©ù)ÚÄñ„à€YjdHÒ O8àÄWÕ?KÐà„É@1ûWØd•9öqÑÙd9ø}ŽoÞ÷9G‰¼’Ô¤8UÍ‚aN˜T;kù¹ôÕ!kœð4‡œ¡E‚ UÕ$r9`Ž6Y*ô3Ã÷9Gƒ$¬¥Cœ7¸Âƒi ÕnðÕCV›7x”*º„IQ爙àÉ;¤E}BÔIÓW&ÅS¯ÀH31cH[ÆäÊcÄ:g˜—ÅŠ‚òHnl5 ‘DÏ»ÈÌU¶2Æ3M›¨²a T!À)™îýGá†>ĤbÄp})IQ§¤çYg(’æ“›öEŠt”¢Á>s„èsÄ azì3GÞ,±Á*—º÷lk›3¡Ë3}ˆÅm.2Í"Œ0Øf OŽÛÅ€b´8dVõ–åZ‘8 Rx`†g]¸JÞÒf—††Í&ËDéJg3a0‹¬ vˆ2-ލ%E]uÞ5¥!¬Sd"HŸŽ/Öûêƒnà „ÏβŒZ7Èà)vÌZ$‚ÝÚ:kJ–Ó&I“ªH³n­¹ ‡MV&wO¿Í˸B§AÁ6KÓN°Ímb0KƒqÚAËS{Ó]lñ“”û?ÖKb–],¥¶ÒTï‰-¸yÑ·`ªpX0 uQ [ı”¹k|Sª’ ¬`CUÃr‡DQ:´Hô´=°}††©.ë>uÕÌébäË`˜çiDõv B§¯ÇUªÂBbç=›ù§¤ÆX.=5%œæ(HÕ÷ Ñ%˜Gض”7ÕI«‰£EØðZtÌ(9¥ŽÓ þýö$³&r%1 ËËl)D›¥ /wäq¢¢M’* ÊÀ þ\qZOa<át0Yd‡.a–Ä6'L"+Áƒ45"tÈSVO×Z°ßHÇÎ @V[ Zc\™$É©ƒA†*# 5g ©ŸS žÀ}`AÛ¥¥jÊÒ¨X§M<ØŸûˆ FR‡Ã:1Úhø(Ò AŸ0yJ$hÑ$ÎEÂÊiÓG¨{¥¤c²ÊöGîÿ_xBOТ&æx(֘⇴W£¦¥HТF’:;b‘*t\–Øæ—ûÑYà¡qW{„-–¹ ¥Âm.µ5®ó$1Ú˜8AͪF yöøÕå1`‰mê¤Ùb‰0}VYç¸ÊsDé0A‘‡ëâÉÀˆô‰É|Mÿ$ÛoY4Ÿ¿ÄËâUX\O¢.Ÿéð@?Œi¦9b‹eŠL ãr;辫N¤ZÄIÐ K 6± t¥Ã7ù´ºÁw™g]d×±¥'˜á¶ážyžQVÙ 'B|Àãì2Ï*›d¨±É }Bêã+ h&¢ä)24¥ªK”;â9Ê|Îÿ=ˆªºgâp \C,¦8–:XÇ‰Ó à Š »š¢B–.ÙQÖºÅ`Ÿ¡Æž˜(tóƒ=¶ôe°àDLÒ IKÕÛN˜¤I‚&y’wéáñ´ºÈ9Çîqލ—§;uºÉm£¤XU2ìê l±Ì;$h±ÉJ àHÒÕBÂRÿ;&:üdäþ±¿Bôé¨ÚaQQÇãraùŠøÕä˜I5’ÈuœâQŒŸ {„p°HÐÄTï«ô’{4Tè3.Út «:“‹ƒ…†ÏÇ4I»5îè_HÏAHôéŠm-¦æ&QÚd2¾AŠm,g+l“¼ÿv˜'ž9&îµiéñà:=À¢­°§CÍ¢¬å‚ƒ¿twË1sTkÑ1Hð“|PYRÞñ¬Àþ許sj¤9aŠŽÚ”˜à™` >ÄÆS_ß‘º&Œ§U×Ó𔿢øÐ]tªd¨“"B¹àëÞAаÆ×MVÈ®=‚éà`0å2ÔÛÆ­ƒñ ÕGã€9,†3‰CŸPP;»ÅeUKlÓ AGá´„T8îÆŠd¯GœRP쀤’¾Hk_™œ 7†i‘ J†àúÝ!BB5*äJ±…ýQïÀ&?úµµ#¦è1\4{„i²í\&§dö­`¯[#|UIKi4å«>f’ú0I“Y*¸è4Hq‹KjÏ*‡OlVÙP¨R©ÌËSRºBÓQ&¼™rY¹…÷‚ÑÜ›Œ¨ªM“ œRϧ¸)Ö¸ùí(ÉO=¥ªs1f8d™-v™g=â4Ù`U‘žªêVªö‚Tì¬ †´èC]"1m v‚ÓÑ"އ†À§MLÞøEŒAϦÏ”:ILFGzü¡3ð]tÒÔX`—]¤w4†6d’•ìÔIqS\0’93d"8©Cô˜æX¹Ö%~WÃ#¢Þ‹ñMÇe›%,$[»IB}˜ÃÑkˆÉfh9èvî3§\çà«Ýù VñÑ‚ «ö’eòxh’ŒåHßúãCãˆiµcß`Ô×å»÷êÊëäù¿Ø{óK³³Ìów¾åîûûž{äZ[–Ë{1©j0Û `Ü’‘‡2¶…,ˆä²d$d°ÿ`Ʀ1tãÆP´ÁÙàªrÙ.—«*kÉ¥rÏȈŒõƽq÷ý~Ë™?ιŸ«hãÔ´[óI©JEeFÞøîýÎ9ïû>Ïï)³Í4·94Â(ÿ÷k¹ÿk…þ/Õ6'Ðl€²¿ŽO]¡>£NŠÐ›ïH©ª,Õ†é%zº%ÝÑ<Õ€µ¹Ë]bÁ&¦²”©G'bQ3”~C=Gj“­;£¼ïQ4hG;iTB™©ˆv„ÔÜ|ÒbF¶¹ñbŠÃd;\Q«òU–» ŠÐq½IÍT¨”'«ùψÎuý;u¢ú€ãÒ#J“4¶¾/]bºï¦´J¾f˼ì]âDéÓ!0ëU¸’êvøŠí ï‹¥Ùæ] GÒµcxoàKŒZè*Ù.O”>=ÍâÙÏFöÄÝ⯻¬¿2Ð<Wû4D(úUCâÔ½³µëÀÒ;ÕÝ©mÂxmôZ”r?L›xPˆòÏC èeŸBpˆè¦I _k†´4j¶r¯*÷ÿ-÷'Ÿ|’_|×uùéŸþiNŸ>ͧ?ýiö÷÷9~ü8ï{ßûØÛÛãSŸú?û³?Ë}÷Ý÷†–{˜¹ÍÃÞKx†Å5ã(ct8 btùÐ’IÞÙÿnØâã~v˜æ«Œi@,÷ó Çý«x†=î ,²P˜<,Žr] ˜:Üæ+òš:m Ÿ"JÜÆº:AÉ&®°‚Ð öôÃa–MNqIƒ”e–Mµ¡øÐ69JŒIÌcKÜý¦ÅìÛJœä2YjDè“"Ì#î $Ý6ƒˆz0fØÆÂcƒ9u¢¦Ù!E#ÈF¶p™eSå“¡G”eVuíŸÅÅb‰5•ßßÇ·™d¨æ]×Èr̿΢XgSÌÒ#Ü@àóÃ3Þ%Ư‰ûT¦¯/HSgž ÒN“º­NÇä5¦Ý]Êö®–a.rWWL*gþ>.•5„¬±Ä<›Ê³JCßÓ-Æ)±Í e X8<À«ì2Å.S$iq‚×ÑPMdg0ÎÈ ê0'T®r’Qzä©Pd’Ey—#ÞMv¬ m̱ÌR4ISÇ4< ”´ÏÁ@²ä¯‘í5hÄÓt´E*C4@„´€§ŒÒÝîy†þ}X¡—Ëe>ó™Ïàº.Ùl–øÃ\½z•?û³?öm>ô¡133ßüÉŸpíÚ5&''ùЇ>„m[Þ› Í·¤ž%³OŸ";bJ Je“©Ö.‡’·‰ÐÓïëcÞ>n‰ˆßg?2¾¤dŽ#¥R(OÊ=¶Åm’ÌÉMB iKK ¹CÞ5øóæu+KΩ!mÁ<›,ß¡2ž%K éÔEš}1¦„™~•£Þ ÊÞhCJ0¤ž…«ÊìcË!–á⛂Eoƒ´_'é·Ê µ ªÉ åh”×bÇž¢e$Éûb²KIŒÓ3#Hß@JŒû"ÌØ?Ç–ûüÀðØc±¿¿ÏoüÆoðþ÷¿ß÷ù­ßú-~ý×·½ímüÑý?ó3?Ãøø8O<ñŸùÌg°,+8YK!¦À†öRô¬#‹@ÒZá=#J›„>‘úäÙg‡=ch(e«×5µU£Œ}b “¢6ªäµµÊÁ±Ë$6Cö5íHˆýw"APÂËZ©æ]»LbÈeb¢Ç]ôýä&úTëç=¦ôé‹.&%&(™< W(1N–Z€¬“¡å%jÑ4;:LÍkF¼ò>ög‚aø”)¤©fÑiƒ=1Î@Ïa)AC¤‚ÎB•·9„X8l3þ¡„@m¤©Ó÷#ZÀâu‹(]V9ÀŽ˜Æ2Ýà4¬,,{ô caQ#£ú¢I›ûÚS«rÄ÷©kB×Ò%Fƒ4Ç¹Š…Üã ö‚ø[Õºƒ5–Xw%jƒ¶šùëù{[ĉ˜]] Ú$‚xØ8m6¢sTÉSל2Z"ɲ½ÜŸ»Ì­%ƃD¨¶7Ýã†n|¶µW&“á£{(nµ IDATý(Ñh”'žx‚ .ðÙÏ~–O~ò“ܹs‡Ï}îsüÂ/üÏ=÷ŸùÌgøä'?ÉË/¿Ì#<ò†1]“†™B éŠX Hïë’ ¡ÜSYc‰»ÌsÈ0±l—1Ê4E’º‘ÁÄ%*Ô<ÓfÐ-*‰q¦ÙÁJ©\•9þÚþ ¢Ì4;,[«$i²Î"ûÑxå•W8zô(7nÜàÔ©SD£QfffØÝÝåêÕ«<ñÄ!¨×븮lèË»ßdËz ’ø ò—wòu"ô¸Âq ÝúZ‘Wù’ñ^ú„ñ°øqžäÏø_ÐË{ø{V9È_ñ“l2Ç7/rrár0;:ÁeÆ)ñ$?Îj‘>Ä-¾Æ»´ˆÅäWèaŸwX¦JŽ%Öx€W(1ÎyÎr›ƒü_bžM>Çÿ†…ÃAVùaÿïøªñ(U²·y÷þÎü·ì2Åó<>{Žçãüß/ý‡nòž#BŸ¿?JJ(áÅQ®³É,MÒ„ðÿ•‚¿‰ÇV8ÏC8ØÌ°MŒ79B†÷_£mÇù+ñ“t5ò·9σDé‘ 5ø7Õ§¹lŸà¹ÐÛi‘à]|›â0·8ˆä­û,O<ñù—I¿¯BÃáÛ¶ ‡Ã B¡B„øöJÕ«ôðÃUÒÂd"Càå4ô|ÂÀÇQzp„pìr© ” 3P€‰pŸ$Íkhë©Ù¼2ò ¦uúƒ¥?À6)$KË0° ÄèÑjÇ1öµ°ËÆn MÐfLì³æ&)•°¶ÔeËê±ÿ’‹qV¡sÚ£­lv –IÐfR±;.ÑL(}F47å UºÍ!¡Zg“mV›JL¶x@GØè~šú5+¢œB7ŽÞS¡&#…¢M5bëÔ:W'pU1õd,¤ý®&ž¾¯ <ä¶Û¸Z'Ñ£®õIZ:ÊWk"šq ˆV öxÕäï±Bÿ>µ­µZ-~ó7“÷¿ÿý,,,àyRJ\×Å4M¢Ñ(ƒÒe Âá7ßDÊ[„ºiK`&c:ÇJ1¢²‡Ó³9]%Ï>E¦ÈPgŠ]=7v‚9oŽ*IZ*½@Y%”鉪‹²¿e¢õ áqÄcâább{YYÃv =éëÎGÅ5ÖYÆ@£1”¡sÂZí,9Á| ¶˜eÌ(ó?}†ókGøÊk§xç}7ˆÓe%&)1%w¹ÆQB ƒu.M“²Y`ÆØf@Hñã©îœ8*´fôÜ3Íy*Á×2ÔÉQÅÄ%N7¥ù„ü!qÑÁ Ê3R×÷µ)+O‰`Š"v 5£BÔè‚[G—šoT»×ÉÒHÔ,5j¨QÆ8{Ú¿¯´CB* Os'|5r̳AL¿æ‘1„¬ëJí¯Äw#‹\TïJ—ÑÔ|¡ qÕR&B_§¯µÓÇÔL‹ï £ÆÕëg›$7IÖkLŽ  8¢Ye¬v—Ëõñ~3ôgŸ}–?þã?æ·û· œ={–?øƒ?àØ±c¬®®òó?ÿó<úè£üùŸÿ9³³³,--½ivæÄÊ¢¤Ä{ÄiÓ÷b*EŒ6m-Â8Áël2G–œáBÀ)ù³¨r¤ÖÇÕÕìÈV4Ã6g9À'¦Ûº”—e†ÂÖ |ƒ6Њ¥ùa¹Í8% ”éå07x„>XP¼Fä¨b¹ öxûÜ€ºmsù…<+oi0Ç&= ˜e;Ø sT‰É.]'®A)M2Ôôï•x.M’²IÜœ6/Ò ̬ïçU:ÄUR˜¥ΰÈ]ŠL°Ã4y*œåEJLÐÕHÌÖñôü½IŠCÜâ·(2‰é{LÕKtó1 ¦º]¢t‰bãpÀ¿CØPÐ[‡À(e¾R´«Ôµ.–þy·@dzµà-kÊ—Ã{ÚF³Ï"ëHÏ6šB©]æ@ùn”Ãašm¦ÙaŠ]ò²‚éI*V޶ö€Ž¬5I?!I›iv8Êu"3Æ8{¤hÒ"IŒ.ïæY-ÛS ]ËÜÁš÷°æó<`µÑ®šïºB—߇3ôN§Ã¯üʯðŽw¼ƒ•• à “Éð /pëÖ-Nœ8ÁéÓ§ùÝßý]nܸÁÓO?Í/ÿò/¿yC?s˜L²Ôa%}¢8ØêÈ& ¬¸«-†-"š…PÐÜî"“ÀmtÀ%… ]YŽQ6R ¤Á!s4* á`¶<Œ)WÇmúÚ%˜B ªFŇÐQ»B¿[j-š2Ié¢c ýÒÙ%s³ÌÖ+6“È`c±µTà«JR‡>…EK(Wú(ðh@‰¢~£:BÖÔp©³¿Ó4¨'+kD™"“Z¢«,¢Sì¶Ó‚ܧ'bÁÅ@bá?¯¯…¨£j?JŒl` —<• øië€&õçºúg‘Úrf¶`¬Ú&Ä€6ñ ]?I1(nfØá6‡‚˜m W“â, áj ùfÇFz#‹´òõ÷ˆÑ æÝ ]Ü™Ú)`㟅¬Pš¨‘ûÂÔö·96ð1Øc2´YëRK™…8ç›÷æC—ö?½fÈ{ÜпcúD¯×ãÔ©SüÍßü çÎãØ±cüÜÏýO=õ¿ú«¿J¡PàøÉd’ÝÝ]~í×~ Ãøö·z^4J»,R32Œ£ø¿u²¼Î Ò4Xæ!†œç¡à¦ú|“·±Ã4=Cn/&¹Æ1­’TŒçU>ªÄGö§%±FŸ(4h#8 l1Ã%NQ¦@ž ú™ä2'™ H˜5²|M¼‹º¶_ìˆi^äa:$Hè¹î-Ó"Éq®pròÙe¸ðâ8Ór›Y¶ø\çˆ @ ñ.‹“4cI=ïU¹á”gŸ‚j#2Îmû·ÌCÚX2`@˜U³êŽçNaQeÿùϳ³³ÃÇ>ö1VWWÉf³¼ÿýï'ò±}Œ§Ÿ~š|à8pàMߣ@Yë”zºEW#BÃ$mât±pÈQÓBOå¢ëŠl´HÔé+\ ”Ë!íbQÒâ._¥ñÅéy }"øûI·¨ \LòTXw 1䈼ÉózÊ2¤À>+\%M#pP4I!1Øfš%’n[Sk¼cî"µÉžzå$¶2ÛØ"Ó®ÓÔÀ–¦f'¤t7),A•=‚sùÚSž£J‚6iêÁf­Pºmʲ@‰5?‹Ù—ôü(ޝTå> ‘¡*ò[F­“=…Û¥¢³0TÈk›š²Ð6H³Í }W©ÞÛ2-ÂRÆ(ý¾Štu°Yb96Éky,‘áß·ˆÑc †„‚Î[ ª$⇹‰KB‡£L°§S­€·ˆ0`%ÖX ªï,5}Oö™a;°Cæ¨1ö"{Òb»d©±&–i“ BŸ¤li«\©½ô® rà#ôYâKþÚ=ã¢=óÿ{Íøÿ]¡?þøã<þøãoúÚC=ÄC=ôí¿hYüÔOýÔwü¦gýó\åqþŽf‰;óo0¿½ÍÚôÖÐ#n°8¼ËßEªíŸ<É—ÃÓ"I‚?Íâ9ÞÁWøAL\Þ]þòUV9ÀEYgf¸Ã¹Ðc䨥Ç[yžW¹?P'ÿO<œÞ”¿U%‚Ýï¾Êuq”‹æi„øÑáßb9_Œÿ'äë¬tnðÍÄ#™dBîñc­¿å©Ô£AäỽgyÁ|˜×¸eÎŽ¿Î–Ìòû/ÿ;îp—Ãî-Έ×xÉ:‹…Ëë®kß§LŽ©9ÌM¤cP³UèÌýk—è¤c<™/MRà6‡¸É3L³C\t8ÐY%áwx>óºDyœs”(p™€à4—è ‚Is“ãò »Lñ¬x·Ê*rëüØðK=I(£Z¡»L‘– ÞWùOümî1¾j<ÊeNõ®à†L®šÇø¬pIYäUq}"Déñ0/ò$?Ž@2Ïf0ç^gI«Ù/Ó&É.SØ ™fGyÉ9xôÏT/R SHìsƒ#Áâßòe hfƒ9Þé>ÇMëçxœ(=fØæ|u–ð1˜‘ÛÚ]å…ƒ•Ú}¼Æ–©0F‡8ïàÁ¢t‡%¹Àq,\ÆØgÉ_»§‡É‚aèûÏ—V(øèG?úß|}”Ù<ºŽ9‘#G¾ã÷èA üUò´HbHIÉÐÅ#»j’6ë,’¥F‰qÕBfH¤¸ÎQB è`“yÒ4‚èÒF:EÅÈÑ lºÊ––¦1•fלd‡i,ÝúW¨uCéOÊ¢@‚vPÝõuÄp™1ÐyÝCBZPªÒÉŠæd`kaz¦…!}^|m‰Ù#;DÌ>h;éÈm3Ã66e l1C‘)íùŽ£K…}M£ó0ÕxQGlŽ’*aWw€Ðº—³w)¹n_K3{&LVWÙ£d¯.QJw2b¶+¯y,øÿuƤ,Ã!öÉëê¾Áq®P`?°³…tc„~=î_Á6“‰ËBH„ðüëë¸XLÉ]•X'B ˆpP®¥ÇA÷6ûöXÅGkæHcãb‘ C“9¿ªó/z,±N‡ý›¤ þQ< Y²Ô—äš^gTæýkl0O4 ™¢H‹dââ¯S!Çv@‚l4¿¬j7“IK&IµÖ̳Þyš†R×O±K™2[Ì‘Ö1µê3 Haí5êÈxÐÑù®7t˵Å=µÜÿâ/þ‚K—.ññœo|ã|ùË_&‘Hð‘|ä{³¡ßÊ,±i-ë0ø·ìˆ¬‚ƒDéqW,àÙ&˜a[ûÅBÈábñ2²ÎbpBÛËsC NSk,A\ÅéØGhÄhЦŠ!d‰—t‚NœEÖ&Ák‰SŤJbŒ+Ñc¤µýÊÃäŽXf6ºM‹d ì(< ZØãÑ{L(+Iz1ZžÜÃ$Ï«/O‘?{T«Äy,d6I¶ÔkÅì•W¢žø*ûŒÑ"I93†Œª€h0#.2A‹$™^‹J$G/ T¥k,±Ã4} c¸Å!Ò4‚׈ Ò¥ºf”]k‚‰è>žPiRUr”DW §ÀTÀUV0¢¾~Øâ8ØÜÊÊa@•<5r\0ÎÐ$EŒŽ&.-q‡%*Ú#®ð¾µ :qƒ924Zµë°b34GMceÐQÕT¦ :Äx5rš]&Xƒ.pš+œ @Yý¹ð5…Ú%Î3$iã`ÑÑ•GŽ*A‘I]f‚ÊgsÃ8ÌÁ{¬Ð]óŸ~¤ävôZ­Æ—¾ô%êõ:RJ>ñ‰Oð‡ø‡|ë[ßâóŸÿ<¿ôK¿ô}³¡ÿ»ÖYhW ù?ü:}7Œ±)YãÄÝÙZ“‰Kd»5ˆIÚF’PmHÆkî·xOáiºFŒ=kœ¾«¡±H›d½C)<†!%ÑfŸf2EVT9|~ yÔ Ë7;$-¢ ‰‰6 §ËLy“³áW0=†•f,\ÂÚäŠ5„å³0¹É­Ÿ£MÓËD(F'¨‡ÒÌù[Äš}Lá’CöüIL鲟ËsßîE.Nb$c¡éFÑ€÷Ì>ÍF?ƒûU‡_xàÿÄ÷Lî D£]ú^„éý"“õ"'R×@BÏŽ7ÛìY`Jºá8Q³G¼ßÆêyl¤ç±.†ç±R½Ébl ³ãñzÂUL|lÓ¥hM0»¹Å±ubþ»íà™&ͱ®m°-¬59nß`¼]",†<¹H7aúÊ!×!TuH?ø%¼–p  ãÚG­Ûd™¦"Ó®³š=ÀTk—V,A߉’m×&Ì—wËÔ˜OoaÙm?A¢ß!ÖëÑ‹…‰VŒOTˆÄúT¼<…a™v$AÃJà Ý2­h’‰~‘={Ç´YÞ]Å5-™ ži lÉÐ !=ƒ1$Ñmîƒ!aZf‚˜ì lh{ ^_ô\J] ›àØ6õP†äP¥ßuEŒj(‡#-Ì¡OÌé0œ´˜Ú-³ßOßcËÝÄ5ïzCßÙÙá™gžAJ‰”’OúÓ|îsŸãܹs|ñ‹_üÞlè—S÷¶y‹÷"ö,ž0¹a!N'hÁ܇y—ü:¦ð¸ÍAΉǙ`i¶Yå /q–Óò"ÿ{ïÿâ[±· ç!lž öã%â¼õIZ´4>q“o“Ï‘’-nhi±È¸ž‘®¸W¹bç–8H„>‹¬câQ.qšÓ\`‹9np„¢5É8%V¸JΫòœù6MGëã`ñ’ñ"¼ƒoP#Ã${ÔÉ𓽿¦[ˆòwæ£üçßÊ#ßE%¬y*öüû📦ÁÛù&iì0ÅeN7º&õosà⫘xl2G,ÓìR£OÔ˜'Ÿ.óç^õy¶Ùcº"Pb¼ã\ä4æÇÜÿBÉ(°n,ðŒõ(»_aON’-Þ뉦‘â¼ù “r·¿ÉËá(‹»L1NI“®Ò¼J Îò›Ìq…MW0Äæ‡HÑd‰u*äp±)3λy6˜qyÒä^ÆJ@ôÍÔ[‰‹6×9ÊÃÞKdŒ*5‘ãuN(¦µ¶Üó ºÏrךgM,ñ ¾‰”UŠ+Ž|^V¨ˆ<79Ì»¯ñ˜ó^Š=Hl Ô›fG#Uäæ4;*jU¹§ ]µ÷ÿÛGj8€VSÑˤ¯dÏãSŸúùÈGøøÇ?N£Ñ “ÍfYYYá©§žBJù&÷È¿äëÉä0‘ìiWŽª®2‹LbØ>ǧ¯r;r€ñˆz–÷ä8G&n¥Î$»Üâ0¶âº‡Mš$™g“j~DI¬"’PDäÿ—‡þšóÉû¹ÂqL<JžçGèã=ÍgØ)L(ƒÎv¸É²áo>‡esŒä15_½Å!?nñ_Íb,[Ñ!AáÀKïbÑ™ŽsM¥J2N™Úx1.éáþ¥ $#;üw~‘•«š-¡2Åoqrþ2 3¥à f@ %Æ&¯‘£B•üáóÙÏ~–J¥B6›%“ÉpæÌþôOÿô{³¡›¸ÍI¶Šb’3\`…+¬±¬‘{aæØâº8JŒ.T›µBŽ.s¬³È2wØ\Œž¢Nšs ä5Î €£\§@™W¹_C R4x]œ$#ê £«•ŠÊrÅ:Î:‹,qGÓæÔÃ>NŸ< ^Ðvª×8Æ Ž0mî0Ëk,1Å.&>K¬ë‡#Ž¥-1º¼¹¡‘+ô™}þá['ˆ>’ãñ-R4q£6]bl2×̰„Mô‰£‡¤ÏV´0$M‚6UrTÈqTÜ"d; û®FW3 @9°Ü•( t›ú6‡ñ08Éëô‰ðUëÝÚâårTÜÀ˜ E[+ãØ8œæû¢À†=Ã4;˜x\ç(–ó¥ipƒ#ÜârœæWY îÝ"ëì“ç2'èå>^ÃÅâG¹Æ 1:ÂçǸÅ!¦ØáÔà2]3Æd¨È¦9ÃëB ÝV­“f‰uZ"ÁEû$»Lë¬ê~0sw°RmËQfÙ¢bä¸9Ê&sL±ê6™¥FFE92Xö&Åæ½‰â4Ìè_µ–ÏÚmÕ¼÷ô†þüóÏS­V¹qãÅb‘õõu\× \Ó4ù~ºŽstGL…‹4!F_DJ’K-ÒÔ¢!Ò˜ø´u.C—ˆC\!¯ÛÕu¦ÙQÖ5Ñ'Ì€”†5M:{”­[b££º‰£ IŽiêó%a™U²φ˜× n(]rT™%¬;GÊ­òÄ=Ý™QVÍ4RÏÀU7KbsjLU±Ãa®¼œcéÁ~ vÏû|ßd`*•¼@2ÁžV`+Kæ]‚5(¡m˜>†Ð)Ÿ²ÓEè3A‘5–iŠTê6R‰«Ô¶f jûÝm IDATÅ,B°²ÚŽÚq’fK³ÓÚ~ij·NK[\]@2N‰M;;¯ƒ©º˜ú¿J‰>Ð\|ìcqY3F‡4M¢tA«ûÕû× G,Ï©qëV uRßKhü@qM0£¦”g+àÝÇè5» ÀvLS|p1ðƒÍ|¤ò»G²”« šÿøª6|6Ö¼7mèÿ÷ïû\¹r…­­-vvvp5’tÛ¶¿7ºÔqu{b‚mf˜f›4uv˜¬”Xg1P¥&Ø¢F–uéÇÄ¥O˜m1Ã.S•«¸Xl3ø#ám$N›*Iík´ÉSÕs¦XìQ’ãD™>aŠšhfü«,“¦É»ì1¡|©8¬pUÜ&h“`œ4HábëôIEäƒtµð˜AÙ=Dç9‡Éw,1+¶hÛ16˜£Ämâä©0ÇuÒxXDõ\OU ‰7àTÓì1AÅÏsZ^¤hLrM#&º f!¢AºYœYªÜö7ºô¹Mˆ»LÑ%FŽ C¢Žke"PÊ/p—&)FZÏÕ&¹Á<sl2ÎrtHnŸ5íÓŸd—*y®²‚pXÜ ØêÌ“§B’6û¨ "F‡˜è²'&4vÕ Ä&§¹HŸ% €ЬE¦4RÖÕsÇ R‡³Xž§€¦Ä8óÜeלb•ì1N5b‰jTT›"“² ü{Åiïí?¾RcpZÃo¿¨*îååe{ì1ºÝ.®ë ……B\¼x‘矞ӧOßTçèщ§s°Ë‚ ÕÇÀXm7)6™ã07ñuXHŒê²ˆ6&a[`—©à3jàcø’m¦·Ë]cKY«L\ä´Î;7KgÑœ !ZJG!ð$w‰³ƒM‚6›Ìbkõõ¨#Ù!¦…asDƒì‰xpˆ¿eÄC¦§šÔ\“‹¯N2y¿Ä¥&”ŒqŠ:ÝÔ•êè°:Z¿F´:Õ±SY§¸Š}Ì@½Òt÷(]2ÔgO‹ë¢¤uqº„ék!ã»,¢ÌÇGŠû:­5TÉ’× G{íM<½‡´Ë NDæG¹Âì0Í€0cTðôç/ªéoûŒQ'M˜!–X dpŸbtIÑ 4?ßý†n}Ç5#;©~I ëçÕ×VVVð$èÐ"Iœ.úTÉ1ŒÚA´¨Ð*L•†Ó €#°Ê(p´ñšø„(t©k媥Ռ)úÚÿ¨2wÚƒé3à ÚAþ±‡I“rúÔÂÄ'N#6,±F•[Ì’£Ê»&ÏsÃeõ|ŒNãÛ :ö°Èã`ëà5ïïÅ—]Ó`–!5UIN6n×Oâ‚9±A—ø|¬'õC·©’£¨-c‡¸E…==Kv S‹ÔÔ"Õ"I_'¬ $—8¥+ÙpP™¢- ì³À[Ì0Ô!†øJº{‘£F]d(2< ºÕ¥¬% Ê3l$q„²ÔLR$¬s%‚2…ÀZ%O˜9júß3Tn4Yâ¨HKËvˆÓÖ chau†„îÈ&9 ŒÉ<Zè¡vÙÆòÿeCÿN×ÌÌ 333 LÓdee…ßùßá _øããã¼÷½ïý¾ªÐ×Y$©ík#qW“”Bœ2 .3+Aµ˜CtˆÑÔ>óI]ƒ…aÖ(鱩×uœPÙé¾M_ëS’Ms&ø¬˜Qååe]u8K—M‘¢A†šHë÷ÛÖÉe¡Ãìc"4ì¨EJ‰éÈÑ1lݲU«&u™¡fd©*,%67ÄFÙ½4À8§èOReªFžžoñ0¡B‰ø¦G›ÓèùvFhm;(Bö#CM“Ýr8„´lLçC¨rƒy=îêæÑøqhØTtøQO{ð„©’'F©a;£CZ•,›Ì3Å.¶ŽqMé¶9Á:;Rîƒ ’ÞTˆ—r ´HÒ!®C]"ŒQa …Ì£BLÜ)PÆÃ¤B“EÖÞ„¤.Q ­» £¿×!N“ ÚôˆR!§-ŽÝëmânƒ0¦ÙaO¯Sß}`ü“kÆGèKKK,--ÑjµÈårò4O;»Œ‰}„í˜êŽ>P+êeHCCU÷i·ÊQ!ì 1mEÖÉS fÉ&/*¤Eƒ u|‹jt® °.µ˜8¶GÒk3gm2ÐN1¢¨¶üˆ¸&1=:©ìGžé}rTh'ƒÔ‡¦)M¿ŒÒÓ Í@É=jS+^F= Löõ&æiK˜!ÍxèëÕ¨Ö™šà§ºMÝaPôI©)k3ln 6IÆØÇÆÁG§Jž}Ýj—:›<¥³ã:ä¨Ò#¢¶âMÅHBîG‘ÏKÜ!J?¨¨¥ÇætÞF„~ð9 1ÄÃÔΧLŽ*Qz”h}£û;Aá«ó^.GçqÜ‹k-™Lò£?ú£Aað‹¿ø‹ß[ÛÚ7Ïq¨íphpÙ5)…¯’i× ;CÀÂÁM~˜#Û«I—L®Î²\'kVU¢iÞâg¥ÃÛ¤sMÌ‹’ü©*ÙPGØ8nˆX¿K:R'ä9x†R†.šë˜¸,˜¸®ÍB{“l¥Æbj+7äþîEºvÛrHyMj–:ùg» â¡®eÓò’´D‚D¨…%¥­7ˆ#Mˆ:=ǵ°„Ç¡Á*FÇ£e$pDˆ©ÞÑò€T®Å}É‹ÄDv,Æ{ò)vZ ®>™å]ïý »C"Ú$ÒrV¾‚” B =˜ÞmQNHƈOÅÌãûi¿©HG­:í«IäŒ@„%®eÒ5cL7‹Ûg:¹ƒëZÄ;]|Ëä!ëUFˆˆìs²r^ä ÷G.ÒF‰Ö{¼]I‰ücåU‹g.ç}÷=E‡‚8s:Ù0I‹ æq±46UYóÔf½«µIù§Sìâ -–ÛwYÏ-’mb¢KCç˜WÈ“¥¦qÐ*Œ1çn6A2A1¨¥©kÖ›êxdˆ¨lgOWÆsliðŽz_÷)EøÌ[A—4O…Ëœ º.#_{Ž*³r‡;bIY{)ÁÓ@ éCà“Öõû(²wdQSð£l¶î±B÷ô‘à¿“ ý{³¡o$g)%&¸[€¸``‡Yȯ³!çó+¬…)È2œÂ&–åàc°Êu+,¸:H!YfÛ˜æ‘èyžN<Š/T{u2Td&ºÍ Œ‰2ÉÓ\åzl0OÕ̱d¯‘ÏVØSÄEaAZÔi‘TT3'G•›–;1`#ó²BS¤‚Sëx¨ÄMã0ØjÖ=/7Ùc‚Wãgä°dBî^Ð ‘Z¦ ç,}æNl‘îò©ëïeámJ\±úDdŸ¤hR%OÈr¶ð2!»ÇšµˆkZx†AÅÌáÈ-‘`yvƒL¼Æµ±ÃÜâ0CBH‰¨â*wDòQ©Â h1+–õvìB¨VÜÜ` »ër79˪y€‹ò$}a*ZÄð$aÙ§.0&gè…é’¢©íx L–ê@špè •z7$Äé±?'S¿WQÜwo[û×ëÛ׿¯þGRÐëGéf¢ …EÄÒ¶ã4DŠùµî˼J¤7 i&)GƘ—›DZ¢ý>L”¶'ì1<‰rÉ ›<"_ ïƆô œEºß$[¯s:u‰ñx‰ü Ê½»ìç²Ôì ··É†j´¦£t¼y¯ÊPØ´e‚HwȘ]æøàíXŒä°ÍÃáó ­!ˆ/ <Ëd`†è¹Q’~›Æ3Õ"û±UΚ/c¶5d Â8~ˆ‰j™T¯ÉôÒ6 -ºà,ØD‡ev¾šbê¡®a2Û%löÕ¸@J–;˜¾GH:`HvÄ49ªXÒeÞß jôHµZ˜C ±*q:D…±Éäp™È.r`‘òV•G¢ßÂûrŒ,u"Mί*²“Ô„C ›¾aÚÝQ] ØK2#·ñ0éŠpÂ}D¿Ë0fç5bC¥#˜t÷hD“˜Â'áv8lÞ$&{_Ò2’úûW›´«Ü.²G[$HÉ&¡¡C&ÔPd?+Œ/ r²Ê@„™’»„!VÏ'ëáÙøñ„äø ‹gšD¢=¤c–uR¡³r‹þÿÃÞ{ÄJ–Ýgž¿s]Üð>žw™/½)Ã*V±HB-CÊš†ÚŒ04K´ÕF A‚ Œi´›Ô˜Y4D Ó=šnÎP )’U,“Yéíó&Ì oo\7‹sî­â´H1 ²G*€ÜTÕ‹Ê朿ù¾ßç¥hYÆZZN%„ͧ2 *ìq$V”(oˆ=uÈϤÜ)C?üëT¹ÿè®áË…žc"Ã#ý2ARc™cÆA†º¶È)KœQ!#F<Ö.⣫qP‡S%r’Lö:S‘  3Ì…¥`¡JÍñÙgM‰¥äqíZ[T)Ò¥¡IaU$Èó5% Ç"©MkÐæÔY”ìdä¸í 2£w…lMŽZLæôɳ.’)ÆÌTâS(#>ât°>yÖ9À• S,7ÍÃo…4>S£$º,Š:a'b C÷9¯ïàwÌë8JÄ0RVÑ»äõ>sÏæÔ\Š1‰]!=éSõ3Y1â„e ôX Á,GÚZŒ6-Ú]ËMºôúï‰ ¡“Ô¦ÌM3öq †d91–™‘`™SÒŒâÔ€1ä,&U ª¢…c&⟇-¦´¨1!E•-*8Ø´¨P¡M_Ï“Ô&d…ÉC®0Ubœ©n“T6 ±£Æ•enY²Š«0–«{¤¥±)1‰-&}òxÂÀ²Ê¯Ñd"dàCBȽüºvÀ!«hzc•Xú1íÐ?y|÷chdq’&ÔûÆ:›áS&£ ü]ÁœÏ¿Åôt¾”Í3¦¤ÈÓ§¨ËuI˜†·y“N˜a³Å.wÄMž±MU´($zLHQ1[³ŠÍŒUqH—ް˜Z)jV3¶Óµ4«Ú‘¤Ò™AœŠ76Ó1¨ê³ü=3Sÿ¤CN*áÇb…'\Œ‰¤Ã«É0BSÝ~AQœþïЇöãør&‘Õãë4”ÅÒ$¼#RFjÅ(sCfJiØ#Ϫ Qé«7":äésÌ mÊuèv••«OŽ"=XgW!@k4çxˆ‡®5 ¤UªX¤Xw±X NŸ<d¬ß;¸˜œQ¥C‰$3š’ƈ,eÅOŽüÞXæXÁûðÑã\ðÈ{Y¢M:9b¥Òez~™o¾}žÁÒŒ)‹ŽêðL,Û¡(zœQ‘Ù»d(Ñæ˜eù\AŽåé &]Š4©QæŒxÆ6;œÃÀg•CùÅWYå«ÊªÑWYå" ™'$ukDš[¼ÊnR¥E¾RÑÚqÆy7ÞÝM(ÐW8ÊUF¤YãHæ$«`†,CƤ9e9Ž5¬Ñ¢Á‚òíZ¬p¢Ôõ«œQ¡ªµXÇl²‹Î ËœQÅÄåŒ ÏØæ„Ågîq¨^{ÉG',Ó'Ï”O e@†Å*GX̹ÇuŽX%CY½?=%¦Ë1ÀU¨1•˜õb*wWæå}Ï?Ÿ<¾ÇkçièSȺò}ð+f~ÏHpêäãľ1i5v¤ø59䥰­”ÆóØ]¶¾:8¥àÊ! ˆdS¸¡Ç‘!J¸6ó$8$Ý)¹ñ˜‰+}ÍQjßKŽgƒ¤L1TIq)ÆqähhÀ"§H‚¤ç<ÂÃMÆJžc€ƒM.C?ËfåŒÂZÀ£ 8®MÑëÅdC“9.fœ°˜fÌM2 a.ÐC/ˆÔÔB‰¼Ê±€Nǧ©)ŸY‘ÙRC€j\";\†&žJ†¯«¤x¶5«lˆo=å‡êõ©Ø¡T OZéæXt)0 åë¤ã“Q¯u‰7¸Ã6Ï0pÉ1Pbè@1íû*Míãú‡JlÌ3Q?I²4p1É2¤D[&…sŒÐ'¯¬{ògd†dC,Äù!eÚÕHxñó½ØÈÝü¾çÅ‹®ð~<:“˜½;%©Är¿}åÁ›”Dœî#Ré{´Ua0!…Ð /õ¥„Ê1WÙ¸)å3—6G1z“ñD >\ ¥·˜Ç<àèðÕEùø$˜Å!IX wj©8½é£CbÎ\Á,æ1e.RêÏHH¡;%a9ædÐè¾ç0|=ƒ/ôxw£M ´…ê)üø¹¥è*ë˜$ô9¹ù€‚ÙcLšPKÑ JE2qñј*\¡¯¬xB„xºŒP¬è†Ñ÷óxºô¬Bˆ£rФ8i¦FDRÑ^¥E]H:@å{,QªÅ]ެ/3ìX (€.Å8,&ÅÛwúG;+éG–B ^ï.EúäèPfD–Pդѡ!Q®Òó yt™pF9&ÊÙó«G;B_ÙQdðƒ‹¥„A/6ÿÅê'#÷ïýx¿ô2é¬F>èã£óؾ€‡!s¬E+ç³ÃfÞtë±CeA—…{_H+¬ï+,Ðä5Ô0TH‹ÍŒ'Új+g|¨ßT0’kÒ¥È[ #žêÛ±;ډϰ¹d=å®}†¨ÅΊ:‹*™-à±iªï›ŽQÀRÁìó€ËÌH²Ä) NYbLš©‘äP[á)ch‰Tp'ÉZc0B>¹Ï#™¿°ÍêK‘oYž§AM XåˆUuÉ9üG;G‹$ ªÜ¦*(Ì„„RͱÔÙi3 Ï›9‰ø5hQº-j±ã¤IÛ¼¢BN¤m®K‘}6dçKZuõ°Á>¤µ»¹-òô9`ƒcÅt—EäNì‰~Œ¼N2å!WÑ”9R ËéK¤—Yôã8í\r "ѤÇû¼FŠ KœÆIzRØ×•$QýeƤðDG†ÒL9£ÆôU s4a¾Ç5B¡ñ˜³ºþ¨;týK_úÒ—~”_ÌGqo±A¾ X ¡ªS_y{=ÖPg‘%N©ÑbŽÀŠtЩ+k&=ЬYGÜÍ^#… ´?AÚL< L<,E#*Óa‘Se;¤˜Ò¥ Þ@_YœÆ ÑQc<=è È¡!Ñ´E:4U×má2&CG¥è¡+e䈬R¯KÌ!ë,s‚¡" g"Ég‡ïð(u‘®ežbjoß¿HiÅeOlrÊ2gF•'ú„±q’ÁÂUÓƒ9 ³&©ò˜‚ÑÃÓ8ž0Ï€«Ü§F €5òô‘¡É"-ªœcG%Óm‚Mn‰WAH¸Ç9mWUì ,ÐPQ¬ivÙ’YÁ¸è±BŽçØ¥Ož‹ÌÕ^\NJ4Y`™æ˜*Z2ÍE¤ý€xª!^§ACxÜÒ^a›çJµÞã —h£Fªª g›gäTsŸ<]ŠèsÊ)¦ŒilöÙdF’7x‡ëÜeL†yõ~ Ê´iSQüoÙ‘ÉpÒ4yi|™sçÎý@Ÿý¯¾ýX{s¬Òáÿá?õ·ÏóÙ7â“üc[·n¡]{ˆ“ÈqÁyÎ\X¸š…zh" ˈ…°E˜†-oGKУÈuγÕành2 “\ðw(;Zf•‚ßg&l ¢O‚«ócrzŸB0`Y?å¹qž…°Ï…ÑsæzBŽd{'„ p¬(O¼K™.„‚í˜cmK¸l»;ÃUÑ"%¦ˆ„±«Kœ’WþŒì³6?¦iÔÈ1ˆÁFB£—ÇOHxs”ˆm¸I¦˜¸Rœ§éä½>ù´C#¨pëùyÎ-6)­Ž!ýÝ63–¨+ðNVù¾'Ê.ËÇÔç>[ì©<ó®:‡SLiS‰ùðÑ®8J"”ûT ö‘e‰S„²Ìö)ÄB6Ùݢ[ÙŽ•(ÒSMON]j Ã"qŸ,Ö… ])²ÊQL¯ëPäŒ*iµæŒRÖäý0V§è¬Ž~ט#ï„ x¦V%vœð%±ÉÉoEMéDL²>¢”=ÊŽ+§Aý½>Ÿ·ß`qqñýÜïïïÓHü Kö÷93­w®ñæ›oþÿסH“l†ûl{;4-iß8Ç.A¨ñLlc†.7G÷˜¤“ÜÓ®±ÇY5.qeiÍ?âÒô FF^ØTü¦„åϱ¸ÂÃXúŒó\ïc….šÆUô¨OX[ÔD‹9¶Â=ªÁ;ú f,3fCUÝ¥ÐYæ4áÉÌà>3”h3$C€Î»q4«C‚¬3æÜü#+­]káËâ4†˜ ´Œ J¥ýe{©L¨}Ž;ïVX~½Ë‚hpIÄ¡ ’!‰É1Ël²G‰ëú1m·BÚ²°¨ÕéPâ‚÷Œ„p8ÔVé‹<ΰ™Åãq‡[î-½Â@Ë"B°Æ>‹™SFd¹ê=$Э„íÏY˜·h$› È«5Ä®R »¸˜ä‘»J‡÷¹wâ›ì1"ÍO†OX ÁHdxÈe†äXæDyûû8aB~&„†NÀØLQPYÄY$ =P4>F d³°í<ç(±‚/$Xä÷âЗ­Á€óLH²@CÆ+ºç¦;\Î=¢Mù£]fà i!yúxTiò˜Ë˜áà‡¹òxñÇÔM‘žZÛ4´Ùu ¡èc#M%\Ãb—­ØƒœaÄë\Ôž"ÐRÏsš] ¡¾#Nh!Œ0^wEÔ8WL‚&>sarh®R¦O&B†sH}>ö/{˜4Y`Qí¹sªøÇÝcž#k…œ.£”mf³guE†&UNÍ%ÒŒ)¬ù,z}¾WB{-Ø”i£pÊi&ŒI³Í3Ψ°¨å2BÄAF‘ÏÜP£ó¨ Øb‡EòôéR¤Fƒ%N’ÁƉGæ%:´”';ÒÄ[Èž…ƒ®¦{Ž"õ53ÏE- IDAT¨É"Š63®q$Ô'jéTiªü‡>ÂË4E™Zÿ5`gD–>9fØ\à#Òxä¥]›™æacàѤFBQÝ"ÌLLt(±ÎBfWñA/êÎu‚89.O$³\c3}á¹§Fîüˆzô)®+Š| ^Ƶ,iË`,}!÷#9ÑçVö&.G¬°Åò;œcBŠëÜc__£ŸÉq›—YÔ ¼Í„hT8#Å„{\W±{r sWÜÀ-ªl²ËL<2j ¹{_嘱Hs¬¯°Ã9®q%N¹Å«ŠuÆ5îsëhêõÍ3nó R´¨r…ì³Á»¼N™67¹ƒFÀ­ÄËÔ  ¬ò-ñ.9†2ˆÆ’„§b‰glK&ó‚%æ|ó-ҟγ!öхϼÞipë21È1¸’¹ƒÅ=í3’¬rȾ±®ð°e©#x ä((Dá7ÍÏ(èKŠuqÈÉÅ`D–#Ö-oÎ’¢¹ Èɬtñ$Vkj¯ÜP¹Æ^œe|Ê2uH„ÒjãP„¦–b©;1*²I-Î*ŽöÞW_Òð$Š7Í$>¤à¤ÆuEΓ•o´gìRŒ³ЏXT8SNJmRü7"Í5ó1¨ ‹¤‚IKªNYb¦")e'¨Ç0O‰•^¼CÿDåþÃ<îsEånQa¨:¯çȱxÞrÈ#2œQáXŤJw%ŽPž(ĪÄwãÉTtÙÔYÄs®'`3£­VgÅZTð1Ðý®^ˆ»m‡OU¼jŽV8§K‘3*˜xì³N‡2¨K,DcJ*¤f³ÏKö)!‚6eLuá B‰2ÕWXÖNØeKN)/@g_là†F5<##,XÖñܾ­±þÖ KÌe¾·¿HJŸªQp'>ûJtâ‹üŒJŒ`=f…ŒÑ ¨Œ§,ã†&—Å#Fd(ÐS¢×#Ò,Ð$͈ê¼Çkñš @ÃfÊkŠÚg’! K‘]À"ã³­@OM2*êLZfKŧÎHR ÇX¤yÆ$ ®Îç9}rèÂÁ`u•À¸Æ.f\ÈEZ,—9s@(-ŸÅ Ä„ª[cRž£a¢ȬÊoÄH[Gé š*çïÐï{fü“¸Ð+´¹>ëS¶ÉFd’ûØ¡ƒ£'d&ph±6<Æ6f”Ì.gf™`Ÿ‰–¢I‹ó§lö°K vƒ*g, cK£@’Eê±ÕLÇçâì)¶?c9}Ê!k,rʧÜ(š=<ÏàÈX‘âˆÐg+Øc[«;7ý=Jz‡.E,æ\ã>E:äÔ!³Â1i&¬(öú*GTÝ3RÚ„² ‹Íæ¾i`e\&‰KœJ+ž5¸yþú<`®[tæe¦©$7Ã;tJœYŽßÓ)¾¦q•TÂ6ûÚ:Û&ÚäÍ>¾£é #²JA¹€Î‰Êth)×M‚9)m‚¿eP’ÌÞŸ’xÙ¢lté’¶¦©Ý±d?”iÇÉoQp‰­V’ÑŠÑG§IM6HBŠär X¤ÎH^ú”¦G…³˜Œ'ð…Xqo3cU¹G$g ;ÝX#à¨b#ºØ#±ª£ffEº¬p„G‚9=¤ÛÁf¦âN8eIé˜dלeg°GE½®tò bžD„kR£ˆ„ E.©HGÑázâ×wEºÊJí¾à….;óŸöÈ=Ë%ï”KãçT Éð%*a›Yrá€F¸Àkãð‹SwØá‹\÷ÈÓçÛ<ä2ëþ!Ÿë}›Z¡Î|lS£É{<ær ù…[*0Àã˜U¶õgTƒ3JaKÈ h)¬Ë/u0¤D‡:‹ÂㆸÄ jÜå&Ÿ ÿ/6Øã/Qg‘mž±È)I¦<â2ÛsŒD†—½Û õ4²ÔY¤èö¨$Ï(Ñæš÷ˆÐ‚[¼„%\®Ìae¦ôɳ@“ŽÉ…#6ü}z g\óà£1 3äÅ€ )±šã%n³Å.»l‘dF+ŒDy.yú¬ÇÜpg¢ÌHËʼnGGOIN¬eöY§D›S6Ù“éZaŸOÏßç}ãŽYŒ™ÍyÕIX¸X¡ƒåzÜ´ïÐ¥Àúè˜Lk ‹"ˆu¹Á=²ÁH©åßk‰SŽYá ˜¿ðÈý°Ì÷XVbÅr–!m%jÕñ  +#½)ûlâc£Ï!k¤˜¨P9%ÚJÜ•aJ2}ëøjþ'uÅ]f$TÜo–!.Ǭгò„ëäÄ vÑDxÙI ýêC‘Užk?žüD˜‰øâp•³ÇÂÁ -Æ"£r­˜‘ô&¤´ šáÓ'GŽȧ¯MyEi2¿¢,’М˜E¾p~Êóªì½Fÿ¬OJLbL«ÄÄJÒÝ\M¸šÔ¨³È8LSF¤cÀ ;V´ÏB›œª†M=\DbTìXýÜ,m•K<õÉ+£›´Õ¥˜Æö]G©÷;JÀ¶Ì -E{ Ñ8d-fÐ{˜ŒÈ²®°Ï§,2&SÝ¢©mäSTN$9Æi°Oé,œx“§Ç)K1{~Ÿ j4©ß% žj+ìµ hÑâ)„Ä€Ïã)b€¦xõ/¦»ùÇ:ô}üX.ô Cng^âÿÎü43l>ÍwdÀ‚®(p4ð¿-ý5rªpžçüñÅ¿Î>ï%_åÑÅ‹<á?ÏW˜aóU~Zý?F”iówü¤Š×”†ÿÅüŸÀ Ñ 8ÏsƤyh]â/á[ºP<åÛ|¨½Ä”$7¸Ë&{ü¯ÆÿÈ”Kœp1|·Ä[”9c…#ÞçSd"¸Êv8Çë"ËœpQ{˜4ÿîêÿ }´$™ò5þE•˜Àa¸œæ¹8ÏAr“Ѐ%šT¹Å+̰ùÜÚ·xÈ ÿó·þ- oêø¡ÆMq—–å˜ÇÖ¸‘¾Ãh˜ã…Ï2 Ë{Ü.Þäâë<ç<«H2Ü߉Ÿd†M…3,ðç¹_SEÌŸߢ)ò”m\®ònFæË¿~‡wy‡å+¸,sªâS¯Õ†h–<Äî‰ëìæ¶$œGòŸùYŽf‘g@‡gŠŒd‰9¦EªºÍÑGS)wC²,q¬ÆyÁQΤÀIÁb‰N¬ UØC‹š1¤C‘.%•]ì°¨2Ðd§,#TeúÑ’bBWeAËšwp!2Ç"ÉTZ†frZPg‰IB4žp‰”6Qü޾ä¤z˜^Ñ(Óàú?ÄÈý“úóè‘ÇRT·& B] <àC Oå+f©³À8*Z·£isLÆ*&ÔfÊ“&UtY¥LÓóèXEEtéR$@ZÆDJ^†‡JMŸPLSacá0'A‹ .2ž7Re⇺B UŒgdËí¨Ï{$â ÐèQàÔZ$©MbFĵf’$ESxt(ál÷û„‹´Ã2ý OÑè°xq†{°ó÷6kŸ³h°@‘.]ŠTiž~)‚KÆú$¹O7™‘ ¡qÊÜŒ$= ´¨ «8a7¬ã`¢©ä;ù:É÷ÌÄ!¡Dl2¥,ÒéœQ¡I%Nâ&¬C‰6YÅH3QqÑRÇpÊR|É'9 ’êæ3Çä”e.ð4%p”CN$dê]F­q\4eQ“š¤,',±Dv\Ðé©Qxˆ¡ôTQ"å„»á9Š¢«Ö2g¾H‡Ì 6ú?rfü¹·©(ë—¯€(‚mIm6Rq†o”¤tĪòfâhº1pf†ÍLKÆ”³$S:)PŽãü< téQ`DFQ”4 ‘‰DO]Š ÈIa™Bš±ŠÍT| K¶b™è‹wÌJüsQ´_”.¥hvl­Š"¥0_°mÆŒ¬”Ê%–‚¶4ã¸CcJ’#}…±L¸’%i¸}ÀâOÙtD™9 .'ž2ómæ¦ ʢݘ )H¨Ãe¤š2] å,zBÆ ö(°É^< ›caã0 ‹¦ðº}åH+ˆC’‰[Ui«Nc@.¦_E¤.ÚêjSAÄcÕPE"Ÿ8$8d–Q%š:\ì˜ò‘æ"¤\·$H3aŽÅˆtŒ ^á˜cV˜¤S8XqôjB¥FÉÏW•EJ”è0$‡¦‚ ¢î C‰ñ1¤ð‹¨ÜµOFî?ÔToD‘Ú‹Ç¢Wƒq˜¦æ4Õ¥ê³Á>:IfqÔñ"$§jV8ŽUÜyúLH³Ê±<øæX‚<=E ëà£É¿‡ÓÅ =Š¢‹«4òH‡²³"T´ ¦:2Œ¨Ñ")¦ê\ñŸ5šq7M”Ö8Œ÷ûξ\3,RˆŸo‡sjÊà+¦Oš1‹Ôea*1V»w/>ÓòôI2c†M’)Y†ŠÄ&‹çx]€vì>’¯}*ŽŒª<‡ gè‘b¢ìc!]Š”i«õY_¨p…¢5GÔ”m°‡…KAYÕrôÙ`ŸÙ˜úYæŒ'\"ÉT£ä}ÊsJ8­ã³@MÒŒÉÓWÄ»œ²ÿvÙb'\`*’˜j×.ÿA|¼èÈýŸ¼Ê½Kþ;þ¸jšbCl²ÜçCr|6ø&š&G+·x…-vI1fŸMžp‘×ù/ó!I&¸ƒcV¹ÂÃø>a™—¹­:Ç4¸Ì›¼ „±Æ ˬ³O’ 4¸@ŸENXfyÌ}®É%*¼Ê¸˜8X<æ"[ìb3SÞ¢ÊÑ•ò. ò¾HƤywI‡cžˆ‹ì±É&»`H–Öq|›™n³Ís…24ø—TŠÐ æ$„ƒÇ´¯Ð^*sdUxô­ o¾õŒ‚èSvÛàS³L…67¸«&I\ .ò4Þk=æ2EdźÂ1ÊlpÀ2' Ér‡›èx\ç.++«KOó‘|ù=}#æ&o±«ÌUY£ÂeÚéòŒm©ó¾Í3¶Ùe‹CV¹ÈS…ú1I¦È3ˆ§/Ç,³Ä)oò6)Æœ²Lš1Ÿæ;xè<æ2k‘À¡Á wÛá'*÷ú±Æ!y¥0–*f7žòBlwÆ2ÇThSg1î¾ešÙPílÅÇ&8>.kХĀœBEKHI.è«>Wê&¢Â:¾,‚ µŠQyñú®L[]×…±@Ÿ c:”âÎ2Ã8&6J8Mì|DÆ¡+¤pJ9>†dɈ±Š?•éh rªÀY AE| L…:•ãZ •Š„YÑ.9»`j‚“w`üé¡Ê®%¢G£Ê OB¸eÞ¸ü£f'¯vÒ–²j UØÓˆ4&.cRqL©¯ 2šzßµŠH¢áÇŽ—$3ÖUAíµ%ª·_ÔÑè>§¾Ã2ªÔ¥F3V°GÌ’¹ÏE¶F_1á¢Éèˆ,EºèŠWR£“H'¤âøÃ0øÌg>C&“aww—ðÚk¯±°°@†¼ýöÛÌf3Þzë-‰Ô}I5Ɖ`÷‘ù€õý9!Å»ÚëÊRæxÈU„ën±Ë!k Ès—ëlkÿ;9<æR\5æéó˜Kq¶î§ìp.el±Ë€<9†œ°#ûαÃ)K±8äÏH0ã/KÔÙd\%Á Ÿ žp)ëKú&¹B‰k0%É-^Áž„ë0æ”%Õ=o±‹®~¿ÈÛŠôÙg—×™Q Ç{¼&U›e—ÌÅ)¾S£ðÆ&öÌ媸‡ë›<7ÎÇ_ÂÇ\–DŠd)?i…)IL\*´yŸWe×Cš—¸Í@ËÆËr·ð:ï²Ï:lpÀz ¥ØSt·…¯Ôí6 ÌØÙá‚'hS8É,R Z’2›¼4ï²iíQò;T'mr¹!&e¿Ã§êw8É,ð<¿É$L²29ÆÉIÿq…3j49ó+¼æ½O×(âé:kþºð˜Š$ž0baÖ5ŠÊ@(rû,l—Ÿ‘Àaƒ}< p• öÙšíƒâ&¥ßûOã¼í­p—JxÆuÿÇú ïkŸ"@£L‡±ºh%ÚÔãO1q9·ðœ[îþÝ»?ýrŽKÖòôãÑw¤rj„>Và«$Óo*clWbDê€ë`àÆÐÛ¼BŸ<6Ëœ¨‘¼œžD*«<ˆ/ô hæ¯Æv¹”ÒB8X³OÌ8ló”,#zHVƞƎ–%Nd¬´Jo|Â¥X$ˆK V ÇC®Ä;iƒ-ÅSœÏÙÆÂ¡@Ÿ#Vð1H3f¤Ö¢>)e±Œ:t š“xA MäÄøA.飣#>üðCR©o¾ù&ŽãðÞ{ïo¾ù&¹\îžöz=lÛ¦Ûíò;¿ó;òû¿ÿû˜¦É—¾ô%ƒ_þò—ùêW¿ÊÎÎú§J~TIŒ•ÒY#`_eGñ¦¹ÄH»åˆÙV^>Y³Âa¸¦ºú´² Ìa" ü-åAõ•gxOuó‡Ê÷ñz£uLR‘Y`—-ZTã*9P6(å­É¸Ê K«p€„ @ˆFéšbÇO”ÚAF¨é*gYkÜçªÊZvÐC?Þ¡ïpŽÖ˜cÆ•¹,®Ê@ tÑñ¹RÝg¶QãÖÛK RYªó3†Z6GÌ”F *T¢Qÿ Ë|À«Ê.ÒÁfÆ@…ÉŒI£ ¹§“žÙ*OÙæ5lÕùD¾Ò <âŠdk+Õ¾ôqÛ³";†$•¨QS ÖSõžËBoʘ ;lqÄ*E5æi}LNh"`[—+‰‚ßC8!DαêŸPö»8A‚¼rEDŽ!= ªZ›´:³ÞÝðÉ…CæšI~Ú}Á]îÿ¿ßCÿÿ|Ç<Ïò,nܸÁ7Füõ_ÿ5ÓéÛ¶ÿY\è¶móùÏž££#2™ ®ëòôéS~ë·~‹z½ÎýѱµµÅåË—ùÙŸýY:_ûÚ×øå_þåø9YÃÄæØœ3034ÂEôDÀëœú,ô”óôS:Ê5ܦÌ)‹x¤™0yž'¶0LŸNXd®%8ÒV8£Œ…KhºHèËfƒž1ïꛜ¬VÙO¬Qg‰šÙ¥ž¯Ñ"7U2ÑR,êu"Ç {Ú†æÒ@‚R \ÚTâð©CÖèRÂÃà1É¥G4©â*¶ú(Ì0IŽX%-&]fDþwŒŠ] aH][bŸuºXVá.²xè4•íËfF‹ª,.5›—v9‹xïw±^—ö±(0i‚ŒîQˆ’¤6( ŒÙå]Šéª Y.¾}t%F]&«œ=r*ër¤t/‘þ G!^iÌÔå›R¨×4czèRä˜Jt”Gî©C= q!"Uô‚S–ðÑ”f(£~¯"ݸX’ÿÇ\GV»IŽ”å123”m¯ .ùH/å`1öÓdõ! æ4H©Å ÉB ÀÙc“ºjBp•»ñ}ÏŒˆN›7oR¯×ét:4›MÞxãø¢ÿÛ¿ýÛï}¡|øá‡|ýë_§\.3  T*Åt:e<“J¥BÁwuè­ÿ€Åâ=._šò¯ÖGÞ2KÓ?~/ÔéŠhºOÞbF¶ÆdšâÓâzà3Ìe9 J¬8'”'mN3‹hÃÿ¢5'« 1táƒÞöùBá«hó¹n1Hf©ŠÁD§c–cSñ:äzC^Ê< k éiÄ|[#“1sRh=Q Ñ=Ÿ@×ð×ÔùíkèÏ̓mcËqñ O3­[TºghfÈ,´˜%l‚éÉ„VP¥[.„'˜Ï &aŠüÃ1ÿêå¿ÁÔ<ò½>žnp°¶J¦?áî  ŸÒY×°x5yŒDš‘‘á§¼¯‘3zi—½Ÿás7îsqå9~hÐ׳ÜvËa–²™¤R8%Cøxމ/4F"Í–»ã%è¥rTÛTFmv/¯£y!µ£"€éÈÆØœcõe Œ—0ð3:{H(`&ðMƒ”+wˆg™ ·Èó9éÞ„Ü`ˆoh$¼)ÆÔL2 3ø9Á²[ÇÑtS|_£4ì1ɦðæ:Vßå\bí…笜ÖI¸ƒÙ®”±'3RÚ„±žf>°Hh3G-FéƒL–¾‘ç_:ÿ‰´7!ÐEÑ¥:è0)f†™“d»óœÌ|L#_£—ΑðæXsÓvi¦*h³€¬óà¡Ëþ©`ð¸ ?÷¢*÷ÿúË98rú¾ìH¯Í ñ?¿}û6_ÿú×)•J„aH†üùŸÿ9?ñ?ñÏjäM¾ò•¯Ðï÷ ‚˲Ð4 ˲ð<^¯G6+E“™L†f³ùÝ…Î_ýŸÌòyŠy— ox䬉pFÕlqY{ÄåÁVÃJ“>w²W™c±Å.׸Ê}®;©›56ÆGLg)F5›¢Óç’ÿ„=kG$ÐÜ€šÙ¤:ìRjvÙ¨ì#D@Ñï±ôô mñ!‰•5­ÝãV FÈì…5ÿˆÇ\ââø9‡ö2¶=åµÞmúVŽ›Ö=f )6 B¹°0Ö5R‰o±ËÒ¨Á(#Ó/ð”²×¡ª7Éhc6fô­Íw8a™U yŠt©Ñä;*|¥¦‚|¡¬c#å`¨p¯LåäÁæ<ÏÙAÝUL>6 É(Ä*ÇñêW¢¥Û±P»¨ÆöÑenâ²Â ›ºÔBer{hø$™1Ušþ»ÏèŸN°ïyð ÿý 4Æ?xfôv{4î¶ „7Y‹ÿù»ï¾ËÛo¿Íææ&aâº.ò'Â/þâ/’J¥¾÷…þ3?ó3|ö³Ÿå×~í×ø¥_ú%vww Ãf³I¥Ra}}ýý}ŠÅ"©T ]ÿh4°ôkY^H°^¿ËÌõ(.v&Rìë+ÒZ¥—YvO1w]zÅÓT’»™«¬yGx¡IÇ”Uøtš wÚgºÀ~.¸»qËá#N´eYÅ®»,¸-ÓÂf|¨½ÄíwÉcšåÇú2udЦÂöä9š0ÚL“žM1‡.íÅãmªPtv²›ØÌX˜¶0B{âpT©1p󘺋¯IÏ©ÁåÚæºÅ~b =ðyåÔ£—Èӫ晥M„ŒìsÍbl¤È”GÜZ¾Ar>£ºtF&&CöK+¤µx_í23 MY"“4éZ9r^H×ȳ0*ÚüQö_óÖö>¾¦ÓÕ ÜìÝÃXð9(­Ò×r”ü.¦˜s¦—)ÓÆ l¦‡NÞâ¬Rd¯ºÎw¾Šž÷yš>ŸÐ ­b‰…v‹|nÀ~mÌŽVburLÏ*t¦ì¤7É„c.¶ŸÓÌVð,]¢3Ë2Ü$DãÂésÁœqÞæNæ „Ðt«èx  ìtIZå2£ˆ£™X¸LH¡>fèÓKäqR¦‚Û4ÈOÌ·LÒí!á^Hó\…v¢ÄÓÄ6Y†ÌB›Mz>÷+WhPãêì1Ó„Åa™jóŒÆJ…FªŠ+L6œC’³ûÙ5rá€=Ö(.õH&ϳ}ë+¨fáTîÿõW*µRäüм µ¾'_øÂxë­·øßø ¦Ó)ögF¡PàW~åWþÙ‰Újµ¿þë¿Î_þå_òèÑ#¦Ó)óùœN§C.—c{{›¿ù›¿`gg‡ëׯ×ÏÿÔx5›ôúvŠyh‘Ôe,ï”$xÒ³ëc5.ŽM3’ÔõEZF™”=%¡,f³dm.W8ûlP6ÚŒµ4ÕYmâ )–ÂZÎÇÔ\¡ƒ5›£6;j³H]‚£4OÓɉ„! »F  æÂÄCc¦”OZí&*s;­z*7=Úýÿ_öÞ,ƶì.óü­=œyâĉy¸ó”y3ïÍOØi—‘«š46T÷C º[ˆÆ‚7„Ÿx1RKHÍCw«…P=€‹¢«ÛˆÐvI“™ÎtæÍ¼7ï<Å<gž§=ôÃZg¥ FøZP)·”²Eœ{âì½þÃ÷ý>g"‚Ô’´: Í &ŽöÔO1žÔì,­ Kß»Ð@­1bjbÀ6+d@ $štn±#2<¼ž u9@H…LOíl&޲DU†û€0õ^N»ÿAíDú0QšO W›æ2 ›™ã!A&JÀ6-(¦ƒéˆÙÄ!MS»m‚Œ8Vè]•ÄS8q9%¨“!C ñ=#ì2)O2çcÊRиnC§"A龑¸ìKÜRA,2T[®l-Ft°h’%C‡ƒÍúÕ1,&‰' gùÁ¶µØjŽØjß~÷ïá _àÅ_ä7~ã7Füöoÿ6§Nâ _øÂß/Šû£?ú#Þ{ï=†Ã!Ÿþô§ùÜç>ÇW¾ò~í×~b±È‰'øå_þe~ë·~‹@ À—¾ô%lÛþ>HĽð%n¬^"Ȉ§¹AnRãë AÆt‰±ûüÙéE—83³È¯[¯ð˜ØLx™7¹¾Àõ“t‰ññð›4Dš?¿€‰Ë3¼ÏŠ¿ÍØ?/↎}-ûEÂêC’¦A]Ù îqŽw#W±p¸È-º¡(ÝP\¦”ñˆ þ:ñIÆˆÓæï»üIø tˆ³Ùçãþ·yÃ~O‡8ŸåÜá<ÿ!rYU}û„_Ÿÿ×ôˆ§Ã›ü§äË4ü4'Å#>á}›^8Â;<Ç^`I À›\á1¯Ë=žÅ´\f‡e¬‰Ã7g?¥Sƒât¸x– y^мÍsçÞ%è…ùßnü,©+!.r›©ÓÔÉÐ'Â,%¬=nr‰0CžãƘ¯-ÿ#$uïbø&õÕ»¡yÞ2žçOæþ Ÿ_àyœ]£—Ð"ź·ƒÅG~†!ž±Þ'A›¿Ÿæ¹Ï`Ìgø&ð4¾ª€ÏpwŠWØe A’!1àÏŸg@ˆóÜeÞ>à06Ç}ÿ +b›Ÿü'î盾‘z•mV0qù4Iƒ48E 2á7ÙÉ/SÏeØ ¹Á:Bøx†Áâð€-V)Sà 4Ïyîr=õ©8˜<Ë{t‰s-x…HPúg(sg„G¤i’7ŸìæôÿàÈ=¢þ÷k_ûׯ_g0ð™Ï|†×^{?øƒ?àÕW_å«_ý*¿ò+¿B*•úq˜ñ»¿û»8ŽÃp8ä7ó7Éårüú¯ÿ:¾ïóå/™¥¥%ffføò—¿L à—~é—¾ïglÇ[9‘6ްØ7tPMdHÅÛÔE’N´Æ.‹0O–šÎþÞ dˆX}‚‘ ‘À>VH²ÿ‡96¤Æd’³±Û=~µ,—nî}¶âK| .qÁz@'ÕÉ‹ Ò ì†œ]£i$)–{ø¦ kÊ`¬“xì³@Œ.‡ÌI+˜íQ#§?„¬÷8#»M³ÎØpÀœÊq0Ô†<À†µŽç}˜#qLž0Csˆ«VRDZQ(Ò¢FVÚÀ\„/¨Üð™<µŠ-&*<«¹r'n`âÒQ"0iî3e ï³ ñ©.&UE¶“6Ù ö•Om£]b4ÔsIn©ãß÷Œžþ{§6E¹F°5ºuÊI÷‘a-rÂÐÁÀã€9•—‘ÄQ9 %f1qÐ$»)z×Ç F–}­ÁèÅG£C(;,+Á O=#ÊQÃSNŠ!úê9/‰t•}ÂÝúŸÓë÷~ï÷xøð!Ýn—Ïþó|ýë_çÏþìÏè÷ûìîîò«¿ú«?ø@ÿâ¿È¿øÅïûÚïüÎïü=ûïÿþïÿàœ¢„Á¨Š¯Cœ€=VU§Ü£4Dš)|%f™ãPG%N«®®JJ;`žg|¥8}Ó…¯F?Uåkî©qXíS\%¸;­Cõg’Œð=–h‘dž,)Ò$MŠ& Æ>u•ø`ÄH0‘‚6™ÿ] BNP æ9ÐB—:µ Ò1i³3Šœ5ÒW±®Ó×uŸ3¬Ûì²ÊÁ®)Qî’&Z°ÕH8Åâl°0©_ã]´…”‰Œ‘ÉKÓL_Až j :žcfäÿo·ØËZœÓUÈÌéû_%KÒh²Ç]âx-z3q‰!±©%ŠZ°a@,›¬jì4ZujÚgA½Æ4—(Z¯ˆ'L¶XÅÁÒ#± jdiÑÅR“”Ô(bÓ[u&5öjvFAFTÉ‘§J’6s°É:´H²ÁIÚÄè*• ¨È±+–¾gØõéÜX«ÛÏÿüÏÿNüóŸÿü¿HËY±Xä«_ýê÷}mvv–Ï~ö³ß÷µ¯|å+ïϘŠLçG‡ B²{û]Bò¹F“ g@Ôê“¥FŒ®Ì ô«ÄdÝ:þÄ jg˜u1=€5&-xŽEÍÎp&Äìy¿‚/¯?c⓱Ò“=MJTJuœžk‘õê´E\&´Œí`L®à\Ï’^ö€?FOÇw¦iñê:É/O…ˆß'/Ž@ÊmÑp”£ªm°#‚dý:®0‰ÒeDÚÉ}tP{ä¥ZZ>³Ôö4¯…a.ÅE‡–“ |Ógù’‹%¤pLZ_ ÄoB&“ùØ8Ú»>TÊñ‰:(#ô(*„AKÉSñ§ÍWyõã´µðX†œŒõa?%ÁÉ÷˜Š Ž™T¡:ñi¶º:NmzÒ:6f‚¥¡=¦N¢C5F)ió˜"‡XÌh˜ÌÔâ&áä÷Eéê®ÿ€¢*»±«P¿ÓiÃÔøéCÿÞëñÿÎ×¾ô¥/ýÓûÐctˆQÒÀýA*äé)õá!E<ëlP#K¬±Æ&y*ò¦Ï2»Á=š‚T< .pW=„™g–#" ”;N”¾ö"K2“„Äô‰°Â¶&$u˜çt”à@Y禑|÷8§iF_¦Îs›¾RNg¨s’‡´IÒ@Æ$®°EˆQ$_¹o‡q±H)ÈŠ…CX¥¿M«߯&+lk(Í´è©“!Û­ÑH¥¨ÎÌPö"|÷Ý%Î_­óŒØâ† ±Î<û¬±‰«<¤ ÙãÙgžcf8ã?d–’¶·Y8Üἆ_8X ˆ¨]ÝâDéé×3 q‘˜È¡ú{ßâ" ì“¡A¨®Ê-ÒJm/ð¹ÀmÝÑôaU1ø ïÓ"©“Ö‚Œ(rDDýý´eD+g4­n•-­N%€öÓʇ¼Ùç9ÄÇà1'Õþð]u³ÎkqË÷îõž,cÿßã~d:ÿAšÿ)‚¨EdNý«DE—Vh‘ˆÀ6K¤B öXd‡GÌ1!Âôé`c<9¦5‹8¦­’¾ê l™O~,RˆU¨ˆ<÷8ËŽ±L!Wâ=óY™¢íQÍdðAÙ9³rÒcÍcÙòÀºÏ1:2$¹–§Eéc )–›LŽ(Bä nr‘9ÊHŠY'JŸl¨k¼ËUà9P®‹ ÷:ŠÄc‹U² ã:VIpûÞc#ð=B9[“kdu@͛Ī ¾mqïý0ágl‰Uenã)±™ÍDç{ÄèÐ$­"Pe€Ì› u=-1ð©“%À˜Ltúã&ë…˜=dÏŸ%)Z¤”ϽJž)IôàC[$˜ÔȲËq:Ê¡"£p¤À0ÉÐ'ªïYK"’4`ë+Ì@®_¨±Á ½Np°Èª˜f)ž‹iAàÈ ’2šä©dÄ!óŒ±I!?w.ÚÄÙxBú?Îòc–AÁ¦I6O¢tÆP‡â¼dˆ‡©­RSØ‹¡|߆ðt´ì6넨`yiñÉSÁÂÑÕ[•CÅD–»‘: ZÔÈ£‹ÈhFO /†©“&®„ OU¾õï!OE”=âÃ ÙÆÑiCBà( >¤ÇMüˆœÈ½ŽŒDMÐR`‡-‘Àô]\!U¤}Âä¨è±UŸVÈáÔä ;MnqD×JðøÍ0¹WLNŠG2Ç1´ˆÒ'¤ R$UZQ‘#Ó /"¤idHq…‚åH[Dê 4MÀšÞŽÚZŠ`U¤„ô”Ç[à«›¥¦IzS<í”"5¥Æ…F#LÓ[ª;M\eš(H…´æ˜¸Qd†2)šÚb6Mªj’¢"òy;yÎp¬ov)®‘Q¾q5¾k’"NG3ÆOè)ýáÀ2è?èºì^ÇñÓGe¼XÆ„Œß`FT8¤ÈéæBs}^‡”!?Ó†’!E“§ýì‰æ½C™ým4e1éEÙ5–¤Û°$v‰û²:ÑLc¬_çDw›Q"ÈŒ(“kW±3#Úv\?7æ9 BŸY£LTt‰¸} ~™ŽˆsZ<$ Ô^Ö·èŠ(m!#˜=}¢ä©°0<à(*mX§y@Œ.-,³K¾WÁ¶Æ cA=jÏS!JUo‹±ÔØ×Å·˜ãæi!yÐäy¾‹‡Á»<Ë{\ö®Ó ­8å]^à-ª*ääˆ"çÛ\å1¿Ë€5~zÅ}“xGu¾9§Æ¿ü!‡þwýó¤hò3ï“VÉ]aÀÏtÿ_æ8Ô{·çœkÌRâ=že“5Îq—sÜe‹Yåù‚ç½w4U(BŸç× Ƭ°Í8Í!s\å3£.‹ìóÒƒwùÔñßhh‹Ãnë EÐròÑ&Á昳Rä¿-~ƒÌYÁ|û¼ë_áwùYþX¥3{¤ið1^ÇÅâ>gˆ»=ž]g®Qfv\f@˜÷y––ùÌ䝸”ó=¢L°Yf›y‹eò“¡Á§ý¿TÉL9B ¹È-i)TUògù)šŠé,s¤Oñ@¯BÖÙà,÷¸ÍšÈÀ‹—úosu|WxƒÇœäPùÜ?Æ·Y÷7(P¢L56ÈQå6éc…mþµÿŸ5¥îãÎßð±òëŠ$eÑ'Ì)1$ȼÌ-.ò*ßä%Þä‘ú=ç¸Ë«|“C"Êó:-žÄ¶6Q¡¿ï¿®¿G%?IÑq”'3t8/€ë›rºã'[„ïcL$ýzjZcCA¼F^ˆ‘ÂyŒý Žk3òBÒ+îO°Ý žg2ôˆ¤ü&a†$ýxæX2¬º‹9‘…CÔïQ÷3D¼>‘ñ€ÙÑ19Q¡ì MÆôœþÄ 43ðÂL|ϳT¶€Ô¿}yàçý sž ©yåÜõcXLˆ÷ú´üŽoéi–DË:ÄE›˜×%£Ôྡྷ·… #ÀXœ‚ª$i¡Ç*›<Ë{$i1CE*Ï›œX­Ð|³§ía†¶MIjaúê@Ó4 ‚þ‡ˆ× c•=_ã4xžïrŠÌRR„99êOÒd™µÚê“¢Á"»¬°ÍûDé’TÙ ê̳Ošy*S÷³„UêÝ€0qÚdUtë´HÐÇP¯ËChB_XEî¦iP Ä<䨪HÚYê,²Ç:ä‘Vå%vIÓd‘}’4±qHÑÒqIísÈQ•?Ó?ä¤xDúIT´ú@ÿÇ{fü“tèæ;,S%χl²†–n“]±6ÄÕN¨E’wígÙeI¦Üâ¢M´IP/f4@fºc©yºÄØa1øštˆ’Z4?|`>E,Ǩ“á¾ušˆb©O°9b–ûS3C(®0YŒíòÓš€÷¾õ4¬Ñ'JŒž¦àµIÊ*XÀ¾˜§B^ÕÞŠ<Ï%ë–Ötˆ‘¥Æ.KÔƒvX¡A›ÒrŽ^`™÷x“=šJìá!p6G©Õ”¥µübž¹lƒÌ“ǯ…Xýä:Aµ[®‘Õ…†L¤²¸i^$jv9kÜç¡u’mVtq´c/iö{‹$;¬HR ¯ ¦pU\ T?æ7ýKt½§Í UXÅ€0QvAN ‡âj7ÆQJÓV¸?Cɘ倢Bð©“å6iYR$DzÆÝ–)Ð"É@„è¨$ä 5¤ó˜”(Pf–5ÊÌaÀ6«<à´û9¦@ˆà³Å !µ²¹ÎÜvè…³ühW3œ$hÙÔc<ò4‘9÷ ‘¦fdÙ«Ì9&/GÖ4¯Û¡m&äèS°¬ m‘ d ÙK4IK…²%Ógäèd¢ÔÍ }Â<6Ö¹b½OÓNò˜uN'78Œ•*ÝÆUºƒR`Ø0ôô‚1†Øf[¡…˜#E“&)öY E‹¡±•\âPÌÑ'‚mKAZ„>M‘¢Êâ ª"«#Y§Ù5‘ÁöÚ†$?VÔsu:Éœ†ž€O2J$ï2="ê¾—¢· # ÉJ\ÊÆ,ÞèsîÉ‹Ÿf3tU¾ü´ ¨5§' µ;~ð‰¨dºãŸ Ñ‚*ƒ¡M’)Õ:ê½ êN»­ÄròÌRRä;WO8ûBN&»Ä˜AÉïñôk(ûEnëýûEâtÕjWªô«JWôPœÒ:§.1"ôd‘=ý5ÙpFt‘¡Ç> ZI?Pžú]1â€yvž°Gv¨pçŸ÷@¤À±âÇtÀBMdcS!Ocæ8TÙ´-¶XeMm™öŒ.‹ì)ч¯öêÍ÷0ÈSQ£QŸV˜ç€Eöi‘¤Nš’”ÉP×¹CäM5Ã1q¤èfENñPq‡}*"OL¥ÿHDé |ÊÄUÖqŠ—¹®¥AFœå-Eik)Ä©Z4‹õÉQÓ#ã #2Ôñì‡æ8Éc}H8X(Ë ‘þ7iÒ°ÒDè3Ç!w9Ç*[¼”}Ÿ{—V¸ÿFœäË ØbŒ¥„r-qL’&4Hcz.9jÚÂb3a“5f7¿ • DÞì`"ÇN²Ò<)Q5³Zt7ÝaOC¤*ÖP£HùÁ?Ë=p› #N]¤µŸô€yöY JN‘±Fœá¾´ÈQågõþšÄT%O; Ä€5Ú1!©ØØ-’âœäû,¨c@Åvöµøó@ÿ(œå_2G ÅÒhÏí3^• ³ChK< IDAT…<Åñ)¿Nd8„0 TªŸC‘#Âʾ¶îlÂÐ`?Vdu´CÞ®R5² DÃϬŒw Fj¥ScÎ=df¯ÆéücÆùѧ88‚€G¬âHVº!Îv0†œ™< év˜ âû‚‰PÐ¥šÊ­ꆤ@™Bï+))ˆ þ¦ïòÀ8Å0kÃ-š"ÍYîéÕb•œ¼¯üG°@œUòL°)3ƒGƒ Êž£ÜÒ48b–ÇœT´m’Œ Ð"I‡ ìËü‚|•q–¿~gŽÕ«¢¢O¶Âœøì³@Ÿ(9ª8в`Ì}ÎP÷Ó ó(!ªŒÕÉP¦€‰C[¬é½$-U°DˆÓ¥O˜9)PÖB×.1JôóG’ârôˆ¡O‚w8¥øöÓ(Ó–´Þi¢˜S]HYÖ„IÒâˆ"û,¨ÈX)¾ 3PIm.‡•ä.À]ÎSš‚qæ8ÔÖ¹a•Øød+µ.œeôÏ{ WɲL‹³Ü£D:Y"Ì [*ãºÄ,g¸§•çp‰3< @™còUr,³C™C‚RdŽC…Xó€Sœä1y*Üâw9–Ø!I‹yö)3ËH %–ÙÑJüë\æ9ÞaHˆ#м/ž¡@IïåwY"E“ÊtHP%‡‡àYÞWÕø<;,ó*ß$EƒV8`žŽ&PŠñ®ŽÞ#1Ã1óì3VÓˆéh¬EŠM!yô‹ìb*[ÅÔ÷9"ˆ0¡”!#jœåaó^ÄfÂÇy“ÙuÞ8q™ï¾»ÌÅ«UáÈ]üД®¿½ûsñð ¹CJ¢CÔ³¤ßÂrAâvKÝž¬Ž8FVHv}¶M|ÐÇ#+€gNäÍ:>‚€1²{é0& —°%…šÁáaB™M’„’§‚oÆaaùä‡5F¡#3@Þ¯H‹›·1½[6ð´†Çµ-ÕQJ}LPŒT|iž¾!>îjˆÌg—¯/?®±e¬ÒU Qz´H2K‰1=f(dDƒ.Yíúé3Ç†Šø+E¼ȵÔ^¼!q¥ó‚î$Bå&,=UÅ'¯ïgù;»Ó$EQ­'XÌ"ª:[\Òárß“Ÿn*ÍM_ÖR4H)®|VÝŸÒ7.ƒr\ÌïùY.®2ÁRÑÜ€#ßk §l~jÔU ÷&k ¡;`H˜qR4Ô”ÂÒ>ù!!úDT.zOkƒR4ñUÊÛt™¥¦Âƒz cžå&j<ñ>þqÅå¨Qã4ÿ…ÏÐ#ÊEn§ÍΫ½ëlð|^¥øtxžw¸Ãyš$éá$¨“áoøG9ß¼Oj±ÁëL°Y`Ÿ5¾Å'ɨp–5Þçˆ2KIÅõ…ÙeI¾y~€gÅ{ì±È[¼Hˆ!Ïò¸ÍM.QQ§<æM^"FU¶x–÷x‹«lãy‹[\ä ^ÁÅTa 6oò²Þ§†ð¯Ð#Âyîðœÿ.Æjd%¿œuBª30fŸÓx¼ì¿‰' ¾Ëó§ÃkÔÉ2›¨°èì2"ÈŸ>‹É)òˆz­Q˜íb¹^»všÂ3‚Ÿ0ß^v®ê$§KÜÄ5¤ð¥Lm–é*ý.K\7žbLU¶¨Ðe‹Uå)or‘ÛÜåœ;…x‘·yWˆ¨Ï%nòˆ“Üä—¸IœŽV¥dÌ_ñ“ì²Ä:¼zjôRá$ò5ƉÑãû:8Á!sjRÖæˆ"û‘‚Æ\Ò@”‘:d^‹~ ×7é írÛ¬èóQnò”ŠPõe¿"¶5í¬¦”çSQ˜ä·Çh’â ÷õïY]©Sß4xïÆþS3 „rEXaG¾× YÃÅT‰c=Å{®Ÿ23„RQ‘ÉÓÂë1'5Žu%ªJH7RÝ|‹„„‰)í˜}¤irD‘0Ž˜ã@-Á¤¸-ü}é#5 3бËuÒ8˜T˜Ñ.§iNFT=[KT°wŸYpš:ü[jªS¢¸iH͘€~ÖÚL(+æü&OFxtÿRÜßîÑÿYô»œ#BN)ž¥ç»Ì¬Îìn+;Ù‡ú÷@í§wYäÈŸ£%R! U²´#I¶Y¡CB½HK\H[•d†pGâBÉÑ$Í:*G;ƒ‰GÉ+#ÒFƒ4uJyŸË:Q¬O”G¤••Ê×ħ2½n’Rû»Œ£J?ey1ðxÌ m‡¨û*b† ±ÎZt‹ #„Õ>HF«“g›UFy 61$¢§Ä|y*S Ä,çxÀÐ S‰ä´òÜÅ$Cƒ±JN‹Ñ%6?ÀñRÜx=Jäãϰ,vIÑäPe‡?æ—ù€2ä%F‡qîsFOîp)¾ë—¤?òʯ&NGíèW©‘£¦¬>RUÆCpÌŒ›{Ju^¤M‚y‰Ò£¡"m7¢kš&5µ%N-?»Š0%ZÅèV7`‹$u‘áÀ›C¦ýY¶£€ivX’ Tlb3¡Ä¬´§Òö“T±!†4HaÀ&ëYàÒG#÷ÿ*׋dsο‹>efõ³Cà3!|U$gh°Í*MRZñœ¢I”¾´Ê ýxŠ›¼Ãs)ú„üüM°Úò³K<Ȉ”hÐ'BÌíR9Ý „U^wŒ®søô„û×È*r™\#ÅTðÊôï¤% ÓP!5ŠÒcD[ÈÁ®­¸ôòߎæ­Ï¨nZBil5ÁÛ£LACÉÔ.CxzW¥§‹GíÓcä9¦G„-µVú ¬…hnØ~½È™WêL [¢e.ø@ƒg¦‡Y•§xHB©äåÁâR#£]2®J•´™hŽÅt÷/•ùaR;QäHMЊÿ*9R4TV8C£YÛĉ0` Ö –rjAðKØJ$7elL½þršØÇWªø€ âšú×ÕzcÊ­HPïß§NžYztŸ°CÿavèÿÌz‹$9ú¬²¥÷់ÜÂÄá§èç,÷2âžbŒ­,iU„ðUlf™usÀQB¦,ªTÊ)ÙmLw%MÀ1)ýÉì'Q" hÑß7ýÞÁT’Û1±w‰á!ôïi¨ûpÊ4i'A[‘âæµÅ¯JŽ JŸÒB;GåµÇÆÃ$ÀXÿ<ùL— ´I­Û KLém|ÒÉko¿PBß) wýýÏi[û'yúÌp̬òOcúvYâ7éªÝK•`nt„oÁl¨ÄD‘e÷¿Ì˜)š¬ŠMú„Æà"·ð„ ®îÑe¶9¢HЦäÅ“P"ä!†µÈMRÒÅ£bG§¯øo"„Ëm.bàÉ¢É÷x$NòÏâbð*ßäÛ|œ0|/ð6÷9Ã;€ŒиW‹})S EƒæØg[Á¼¦8lK­ËÒŠÇ#Ä€ c µfi«µAL)ß™ã4èÓϽ){úz§,ü©=ÍÁ¢È‘&_ÓWŸ©`øI»í¿yþcÙ¡O-Óy+“úvH³ØÇÁ$¡¼ÒKþ.ß/±Ã’&„Mw½c„>Jl³B‚–ŠÖé%­p³”â4Ž¡~Æ›¬_c[¬èýN”³IÌ ÿ,ú{¼#®R'à [äü MR*˜`À%ïe£ ;æY÷˜¼UÑ‚e¶©’WÝÃ÷ɉYä6³^‰„Û!¦¬y-’ÄéPdŸ˜×cbÈ!>n°†X¦«×ëlp+ô 3ò52´I’ Í:ÜáœR›wõ{²Ç’T3æüì6×ý§Ù½æóÒÓ–'»¦OŒ!R«øÄ 5Vý->à"§Žoù8ÂÒ£²Þc6Í5¥ì’¥J˜>ú,³Ã¾¿À¡(’ÀPC­žæÈÞ1{,* ›OÑ;Â÷e¥|‹‹ÔȲÀ>kl*Öþ&95”Ýc‘0Uéw©(enÈ2?r•'Wm!†$hSäPßÇ2Q.¡W‘³jÒ1=×dq!ûlÑú¤;ôúNÓRp› Û¬PŽ(3ƒ§Bš$ 2V–¬<×ÄöYÀàK”÷yFw\̱›^â=ž¡BŽŽJï™µŽ¨0ÄB1yÉãø6}á.çð‹6YÓ{—ûœá˜Í hä˜s—Gœ”¾V£ÃRlŸØa™mV°˜UØà[\ä:Ïà!(QÀð}"¢UÍoó"k¢ÊÂÜ?R¹ÿ(×SÞŒÈ1ïhrXÖ¯±Ç"[þ*‹ƒ=‚ HÒ¢JŽk<ËyîÒ"IÖ¯QðË”D Þ]ü¡Éq,Ë’³‡i{Œ}AšókX¾CÂít ¦FdØá¬Ÿ®Q*î°™#ÚíQèõ‰Óá4dÈŠbe²KÓJ2 „i¸,úŒ² £ò :"ŽÍDAq Z§3ç2×+qºsêµûVØfq¸ÏÄ Lé¨u_—(ÇXó·ØòaÑØ“b<¢X¸d)á(+×Hù¦¥5ØÓ¨Õ#æ”xÐ$•N%A› c´•H7J@¡n'ôISgÏ_âĉ2Íý¯…Y»Ò#(ÆìªÕ6+zŸ¤© _§ÏM9òyŽ•À%•‡å!sÌR"‰‰‡C’–‚Ô„h`–2iêÌsÈ-.âb°¨ènÓ©@‚6ËìR ÌÎb@ŒžÒÈ‘úÜç4¶(Jm–‹)©€j`â’¡ÎM.©pº‚Ë65cú;$t¦C„¹'<€%fü±>л~Œ‹î-~Îÿc-.)Q$"ø¾¾h?Æ/Œ¾F%˜e[¬rƒ§ù¯`Ì.K”)ð ÷5>5z·Â϶¤¢ð*×xÄIrŠ.s>B 9`žçÿ{2~-±Ê+¤i°æm‘5òTiˆeµC¿Ìu*äuZØøSÆyÀiîs–çù®Ä z]þÚø ìc©Cò1'ÈQåS| ‡¡/S}þ‡Á"„Ç[¡¸.žæs|ƒ2ö™çž–İÃ|ò€sÜÓÊü·x‘u.p‹>Qnˆ§iâ§ÅŸ`)ü3`Ç€ÁÉþCláP+¦ùIÿ¯(‹êdyÑy‹¤hñó%åݬ³ÂŽ: qºü/ƒÿz.Íÿmýß|ý"à³äïôG, ñâøm–;{¼‘•ÅY„?ÅŸ¦Ï#NDò2~kâ =/ú„MæG*÷õºgžÅ Šp9f†a6Í5Ž(ÒIr‘:9AÁ(+ÝÉ)•Éà ƒŠÈË(TÛų Ä$¤Š€€ÚãGÔa­TŸzܧaS%ÅÂè¡î§ Ù¬Í3QÅÔ âš0¥_º ˆ¡®D}¥‡Q¢ù#ŒÜÌUîŸ>~…¤A؉÷0+>Wš7égC»cÚ31ÚFœŒÛ$ä ‰0âB÷^&¦ÉEï6žKÖ¨Ÿt9ºK²Ôc1»O/bÅÚ&ìÉwk4qÞËp°úñ@ ˘fÀ3îuâN—â^…j:M#`Í…ø ÇQ°@À±àïñ=6I–Ù!5h3 ËPƒ”×âßÖþ#ƒxkâщ… ô'x– bˆŒ„Û#†¡ ‰VÛpø‰Ð[\2î`…&´Âq<ÇÄn8”÷f¹bß l hÄfÍ#Ò6í¸¼Eæ%zá0fÀe`„¸àß&ì h›q\, *«Ç»ôºúKÖmF†EzÔ"6êó±øëøžå¸`úœ÷ïa Ñ…‚(Sp«üOÖr\ŒóÁÛYžzî ·Ep¶OS$¹z|n*Âl»Â‚uÄddQNä©E¤Ru¥¿ËåÞ-̰ƒž°înr±qv,ÆÄ²p…‰…KÂk4†Ì˜Þob°† ­þØÀv2½&"÷AFÄF}D Vâ{œv2¶-.øw™ç°Òµ¢`ú$Fƈ¨ÙãªM+‰]ßÂò"NŸåë‡dN´˜¤ïÓ EŒ–zû½O>à„±D&¬‰ËZp›\·F3š$[jr:óˆVwøÙ'¹„~ýÑ®q’xx¾#,½¯– €.Ý€<(B ´ÎET³™(e´œøjzDQÛÄ|Åö®‘!ÌáB–º†£TÌsä‘7+ìÙ ½’ÌJ0< <¥†–¯[îde&ƒš,<ǶÆZí-+M©’F˜›!a"ô\%J!q·‹ïÓ´¤pv †öÒ#ÇÜúä*FXLÈQÓ£xAЦòÆQ§Ã{ÔÈj€Ëèâ!0”Ó¦¯¯™¹8;VŽÊ›cN¿¼ÍR Ì2;:¢tê GÙÈf8VyêR‡ EžªÖÒ„ék†@”.DéIõ? zê51K‰]Aíò§ö¼i®ú4ZK =žÏQU–f›¢ ’”QY<ØbŒ¯P¼§xÈ1y]ŒM‹»ø‘\ÒÁb¢Å’±â<ÑçþŽOý18Ðß,<ÇùŒŒ¹ 3 3S'•’éd"äÓ Æi)Ží›bhZŠ*‚ŒhIqb’¥Æ#Nraí>¤Z9 IDATÏÓ%Æ13„Ís‰Cê"CÔì1 Œ•¼IU¹§Ì& æ>ƒ•·­ó´H00¬Ç7Ùgžq‚bÌzhCs{ëd¤",ÅQz˜–ƒ›—ñ›Áà˜€Ê8Â_!7i‹8VÚ!ë×i’dC¬ë<ø 9"2ÛçãÑ×y?ö4†ðú#Æ~€Gœd)¾Ã.KŒq)u“’D;‡¶HP0K´Ibá0^ÝdìE<ž¤N†”h`‘PŸmc…(}šÁ$# •ÅÏ 9:Ýè˜N&iò<|žË?æ’‹ ;ÆŽ•¨Z ’!šVR² ©–µ|‡J(O9R À˜„ßáŽ8G2ßR¶‘j„i{`,³ÎÀ“U‰„ ̱„ÂCŽEž#ŒÚ…·­ó|ÂbøŽoshuJÒ‘?ËZ`›°è3ã³ç-Ð7å¾.Òä©21-ž~î&·ˆù=Ä3¡cÆ–MÐñmûc2‘ÏÓ D°l—šÈ0Ÿ: DkÑaHlìurÃFîÿ5® þm:ÌtÆÄÌ}#̬_BŸIæú‡„é‘w+˜ šàæcö!ih ·MØ2†I{MƾaxtDœ€?&#êä=9­‹+îBƯ³Üßà  Œô!Ým2Jñ0ˆ«Ñ´í;ä‚ÇÄE›3<ÀõMÂÞ€¿BÌèöL„Í‘˜ÅÄåÿgïMc-½Ê{Ïßz‡=Ï{Ÿy¬:§æ*»\®rÛ$˜ 7ƒr/-„:¹­DùtBÒR€ŒŠ Ê" J‰‚rCú¦¡Ó9  &x.\U.»æªsêÌãžçéúÃZï2è" Ò ÝŽï‘J ÛçÔ>çìw=ëyžÿÿÿóä)1 ̈_$ãÖgO}Í&aúÜcLîf›»ÄÝÉhCå7˜ä¨H šÑd“iºD¨#…‚]¢Ô”Ÿ;CUGl'¾wZWYø52Š„æk;`ž)RPˆ—0ûŒ²Ë8Y**FzÉ}…{)Q 7š`d¸Ê7_™¡úhV£ªÓÊÓÔ‚KK‘*äx’çhÖHÖÀæ'C¦tˆ“¡¦?ON’Ê®&iÑRþ}Õe1 ¤¦ Ú¬2¯ÝB€ÜIËÊlöŒ_c BßBŒthçÇU®€`›Ieknh[^Š- ^#ùìp‰ß§Àí=r7~8§`YJäaáZ&pŒšH3J‘†H1’ýGå$"Çàãl2Í4ûǹɴb÷Ö5’Óÿ–[þcl0­P¤2îtÍœeÙo‹> 3 N‡Ž£Œ²¯wA’Ù]Óêï&uÞ÷®SEßÁÁ¦$òaWŒi‹×£Hˆ’R¥âšá0D_H†qQŒÐ5"*˜À¦¯üç¶bø Å…}õÆ5.µHš’]àž8@QŒ €®ˆ²iLQš"¡Ô¨y¶™¤|ãî2Î3ò{xœ7¯‘:lðõ—r›#”Í-‘ÄñmêVŠm1IWD(‚#,b¢£Ñ¸u‘R”É3j$×´¥ÀÀöZŠŠ•n‰)nHAlgH’&;b‚}1Êž1J‡¨FávDœ°è鑦T4K*\ƒ4ŽòÛbˆ-†t0-ÕÑ•Œ<¦|oX8X‘Á4"MK%ѵˆ«AÓ¿_ÛšÌøn‚‘ûòò2ù—Éç?ÿyºÝ®þ/^äßøÆ[® 'ibâ5»„…Ì:HŠ&YªÚ6dàa#I¨¢P D\´”èÊÃ0<0¤kBlc.1ÑQ¹ Ž2ѶÈôëx¾¡sÓS^‹Œ[—ÑaŒ[W"G[;´#¢‹- `ÒÝf˘DO,á0.vȉ u.Ù u—="^WwÓËÅ”Én‹ŒÓP]žÌEׂ®ˆ|Û;)x¶úêLËRaœ2T•J\NŒ‚0—=­YÉP#FGŸ.>VB¯btñÄé(u¼$ |¢t8:µ7šd÷5ƒ Ùd`+ªZ]uŠC½O¯ºYÝGÕ÷ÖU_/N‹!"Ф&ÿùûÎS&Ä€61"*ÈÀÕÔ3O›a…eí©5f˜-uf§¨kÏ|K­9\,„ñÄèê3?®`aA ˜P¸Y©½’?'ɧ]4û*7 F—°"5ÞßÈÝúžgFðqëÖ-þüÏÿœ/}éKôûo滿ð \¸pá‡×¡÷oð:?Kƒ;Œó0—Ixm.Z7ä(Åð=®‹ô ‘¤EÌïÒIÖ˜Wªñ5v˜`ŸQŠ07]òʼÁä)³À29¯Ê7̧t AŒË,hdgZå‡é«¸Ã¤©§M‰<â’EîµÈùn™Gh“à0·yxx™KöÃl3É({<æ½ÄMã˜Q9áÜÀµL®ð 1Ñe‘%¢ê¶Zi’~ƒE–¹%ŽÒ&Á›3Þeâ‘ëÌr“ì2ÎŒØàIž#êvqM“æ;tB®X§Ùc\‰^"ì2A—ãû%Þ–™¯óWB)xA_nq”s‡Ó\¡JŽ=&ÙAàs‰‡øäü ÑH‡Ätw™/óåá“|ò»Þú5#MÕÈR!Ç ÷)¼a>À›ÓâuŽy7Ù3ƸÄÃd©rҿƆ˜¡Eœ 9ºDØf’M¦°pAe>?ÏÛi‘ä —•¶bŒ%ŒùYóË\3N2Ë:w9Ä=q6ïæ‹:˜Çf¨À;9ÖÄœžâ*6CöcÖ[gau…Í#SÊæÅfÈsÆ“Üã ME‘’û7Õ(ó¶]–YÔÌæ´yû0ïû°­ÛÛÛœ?žµµ5þàþ€üãT«U>ö±166ÆSO=õ–*è‡+$©5I%, ö‰r~…|¿LÖ«0R­ÐÎË÷Ø)®R&Ǥ»‹m®SöóœjÜÄ« ’3M’ÃI¿MÛŠ¶ú$º„鑯װkc9 tZÄ.ö™«pmÑÂ5L6dz7iç°w —{ÎAŽwîP‹ÊШŸêý“ꇒ£’Ö¨”ÛdÉ\ F‡M¦9Ù¾‰_1É$kŒù{L‰M:+$ÌŽ09T_¦1È07¹ÁŠ5ϼ¿FMd˜ô·yhí­|’D²AŽ 79FœÓlÒ&ÎI®±Ì5ÒZ›“¢®])%v-“'IS¦á©Ô;—9ÖYbA«ÄGÙ'M][Þ‚"URa*YjÏŒÍÍMž|òI._¾ÌG?úQþðÿõõu>ñ‰OpúôiΟ?ÿÃ)èqÑÒ‚ >««h8y{C•©Û#A“¬¨R·ôMrT()5¸OÈ¥K’¦Žü³> Rd©bâhz›Løò5  '*$,¡O‡}úD0ðñ y¢F‡„°!}BDè‘ Í„±Ã8»Z€6úÊ¢ ”‚ºM”.Y*R˜! ¢t0•¸c@˜˜èïW Çä8ºëG)ûlcÈ%%tñ°|´/oêaeyÉSf‰E¤i÷ãRÐßE$}Ýeì2¦G^1:ê lk;IІf”§E(††EÁ+s`¶ÌK~ŒµoºÔϧˆ ¹«4ðˆÓ¢a¦”ë@Þ”'Œ¦Ù¤E‚,UF…¤ç1Œq::<&LÃÜÑÂYú„Ôï¾­wd ·EÂhê‘X?§¬‰k5ðÊ[xCïÃô1…KÊi*•¼¼}g”B5ðŒZ õÎb¨G Jú2èßçë~‚ežxâ y£¶,þñÿÏóøÓ?ýS~ý׿û»¿{ËuèWb'éˆ1fc›ôÌ0%#OذÉu‘ û4Eœr´À&Sl0£~Gë;À¦-âÄ¢]LÃe]Ì0aìÒðS£A’jhHÏŒ0š,’pÚÔý ÛbŠ#ÆmÊ‹i6R“€[ÐÇ©+_yÊoÒ1¢4ÌÛá zFˆŠ™Ç0=¦½M) 3Âô S#…‰GÅèjyŸ0·ì#L&v©“ÖžpÇ´ØÒG±‘šf B¬[Szü]%K_„¹=ºÈ^h”296ÔIJśIw§BÚì Êä8ÄEFTŠ¢EŽ qÚì1†‡Áª"S&h²ÌuÒìúãDE‡%)2B’†œz(‹—›Ôè«p˜è¡.‘{C^½2Ë#§=Òêâ ×6˜ÑX×Û¥G˜:JˆÑVÖ1£x»Aœæf…tˆ1É652ì3ªmq̰Æ,“ìhÀÒ6“R$HAŸç2LŸÊä4ñm“ibth’d[…Þ ‚`{ Õ&Aˆ>1%*,“×ÁEz¬1G„ˤï{ä.¾OÛÚÓO? @µZ寏®Ëg>ó~ù—™K—.ýð:ôM¦îñãÕ¯²”;ˆkÜ30ʾövÖHós­ bw)šy^³Nóo0Ê>{Œò"q~ªûO\‰žÂÇ`…yžä9=ZoŠgyCÙÖ~Æýº~ŒÖ1Ö˜#£v/£ìó€s• kš f8é]cÎYçZè8×9I„>Oñ ’l0ÿšO±È2ì0êY5æY@îÚ <®¦Ïðu­nøa~®ôjv†2²ÆOñ ÖTôéuq‚ã½;„ð(¯ð€xO2ðÁ éð”¥ØcœâªsY¬2Ïi®ð˜ó2kÆe#ÇËtˆÑ'Ì&Ó`EƒT$ISç§ù + Oˆ‚Wáôð*ép ›o&ÎéQúCþeà ê"¥“ûrT8Ê-.q†¼_áÇ{Ávt‚M¦¸Ë!*ÙÁÍD‚)‹:iÄ2ÌpιÈ#ƒKÜŒfŸbt8Æ &ØÑ˜É"³…dÙÏÝçÈÝý·mwkçÒUùß ÞÍ”Ëe>úÑò»¿û»|õ«_ennޱ±1<ÏÃó< ÃxËô®|áÙÍy¿J‹„´`ÈØÍð›{Ga!n¶ ‡tì(%3séûÚfŒ–§cÊxΰ%9à3GÓŠ+5w’ªÈÒÎF©Øò¢é† †K'©í›ú~„†‘¢bdñ…`ß!kU¨zYJ"+dézajB ÜZºHYX!‡‘P‘]$K"LOì1Î(ûT# KôH $“£ÍI½qújý ‰ƒ„²Ž²ÎÊìó*Y­¢–a)\â©õŸÌ&ßWXêsbM£ ÝÕKÔ³¤Æ)nrÄ/™p©ƒu®l,²Ñ'~ÖÒã뮥d©j–ú%"ôÙf’!!´tàLK5="˜¸*;ªé–’¹Èõlp±g—2˜3PkE~Ó¡MB%æI~b&óù»ÚUÍ€…£× ¨ìŒà¼¢@‘(=•’÷¦H.M]}ŽL»_•ûwêÐÝ• œ«·þ›úöö6ñÁ‡>ô!þþïÿžÓ§O“Ëåp]ß÷8=ã×Éãá†dÐɸo³#$ê.ÈömŸ5{–˜ùÙ!À‚X&K•}FˆÓ¡g…HÒ$­q€UÒÔµ¢5¥T†R*AŽo3émÓ%B“$»L0Ç:Yª„̾ʯ²mL¶ûd©ñ$ÏqãL³I’¦V4ޱGŠ)¿!½ã~ˆ1!Ùòë¶ISgˆ%Dg+9Ž+$»\ >¤2SæÍ Bu‡ø„ dÄ!÷8H‹ij´Hâ !³Ñý2¾€Ev˜$G›!‰h›P®åºL;ôˆ°Á ¶7䔂Uâ:'Xb‘E–g—$-ns„ª!é51 A#’¤g„ɸ ÆØgbb‡›Ö_ùæi~öá‹ÌùkDE—®B ¶‰1ç®S5¥À%a´È‰²ÚóËÀà@ÉR%â÷(ˆ’Î;îÖò–1ɬ±NŽªÜÝ9]\àiJ„gZBl²T5_ú0w©‹4¦å¨U‹œŒL²C‡(à³åOaÑS£u—"#¸†Á–@å tˆsˆ%>-âŒÒ!¢üÎaÿþPˆž/8ßAà26ƒø3òÿ/ÿŸ‹E>ðð|€ÅÅE®\¹Âo¼ÁË/¿ÌåË—¹ví<ðÀ[¦ Ÿî¼Ñ­¨ç㤿ȼ±Â–?ÉÑÆm&ØÇڴ̸¾ü—(0ío‘vš$­“ý]\a2Þ!ìX¬P2å³9ômú"̉Á-æËLæ·‰˜9¦½- ­ ~|™T¸NÄìQh”p“§Â„¿£»Ú¢(0åo3Ý–{ðB¸ˆP)"^Ÿ¦™Ðv6ϣ̳ÆT{‡ÉU\L ”Èûš")1ÍÝPŒ“\£I’ 9b´ÉQá ’V¸0}ÆØ#F‡}F±²Èm!/-#”¨%G‡‰‹ƒ­/© ZÊÒZS|ˆ!§¸ªôBcôˆ’¡¦üî10 P¬>ó¬Ò'L‚&!†ŸÙ`ߌñêÅ<©‡c$E“QŠL²Ã=•˜¥Æ.ã´H`3T u“8-¶™"K•q¥–FûQzô ¥ÃC¼Fy KÒ`HH£Tƒ¡ÂÖ6HÉ:D Wæû,W¯^å™gžaee…_ø…_øáôñÞ>E1Ãs™'âǽæ@sZ:ƒçL±MÁ+ñLøg´7ò?¹_äÌŸ¡«Šó#|“—yŒÿbÿg:ÄùµÊŸs€î²H˜>3l0=ÜâûgeŸ! ,ó5ëGôü®²Å¤$‰Š.cìqλÈñ/‹·áaðÓÎWxÒxžÿÛx7aúåçoòOÖáa²h.qÎ{•gU!-6;/ñ¢õ_ãL²Í1ÿ&–Èó7‘Ÿg„"SÞ6ó¬rÛ8€|ðü»xCÔhfA'Åè`ô}–ËÄèp¢~›R,Ãíÿ¤Tã¦Ùà§HÐ"k78Ò¹3°¸6z‚"#¼—Ù4§ùÞEŸ0‡¹CƯ±/FÉQfÔß§-â|!ün)ðñ{¼Çýq¿ÃRè EsDÇøC~.ùÿð,üÿû•wsâ\…Ç»¯p(r—7„,0¶pzð—CÑ1¤"õèð6¯Úçp09ÄñüóTE†$-æX%B[ÁÀ'K‹ÿËþŸøã&3•MˆøtÒ1þÉúqíï<í_Qp ‹[âG½Û¼`<ÎçìÿÌE&Øá ÿnŠc*(£ÉD{›«â8Ëþ"uR̲Áª!ŽŠ8Æ-Êä¹ÄÃt‰2É6Ól±Á4}Âò°ñïÏ‚â{ÎðûS¹ö³Ÿ¥ßïó·û·LOOók¿ök¼ç=ïakk‹¿þë¿~Ks€V$†eG0#>m;F[DpS1¯1úF”’(ŠHxQ:Ud„‚(‘·* ……c[tͦ!Wz¡È-1)SË„P&è¥C´ é3ßµÆpÂ6ÝH„†‘$ÐGi(8ŠKƨ±Ï([²¶Ò®V²òDÍ6m“ë'Q£,òÐ$‰‰’èÕ %ì%¢§I>B ±¬Âðé¨quwj‘ ëGéxqØ0U€Ð#Âl{‹V6I7ÕÄ"ù†íRW£ö QâB'äMÛ3#6(RÀó ê^†Po…H¼§ÆU6=áº8ÁÂ]?½W³äN!å7‰ 9]i{ jn–(Bôi‘`9• ä+JUNƸŠ.[L“¤É¤ŠÜ äÀš³ÇõH aûú}ÐW Ï—0œè¥Ç=Án#ðèe… B±‡ï ,Ó#å70„Kƒ4Û¾KFÈŽ»Bž´ßÀÒf6Î.ކ>‡MSÝô¿ÿ‚.ìï9–øßùïøï§¦¦ø½ßû½·Ü½Ë‘‚Ø.}Â#G‰ y*"G1SÖ¢.™&™Ðµ(]Ú¶´qåD®ÓV pK8Z[!—9 Óe.¹©ö½:~Œ^$D1$­Y »Gß{³èxÈ3«E‚¾b‡q <‰%„ðèú1•4˜ /"25Ncð©“!Mƒ-¥=…|.‰‚ÊïÑ·Ã8–¥øÝ2I÷4ûƨŽUèŒs¦ƒÌ /©ˆìmß"¡~–’´HÑTˆè]-+mbQºÄäÔTýL‚µF]YÚ‚ŸŸÍP+ÔMµêªÔµ±É'Ké5—øé Q££GþÒ±#!2ÁX:°¨XÖ„©‘Ñ£qKùºƒL‚}F‚;¥0ÔÜf¨¶:¿ËtOùû ¾ž$eÊhp°Ó×?»šråDéÒ#¬/WmEd“¤69¬·¦O›Y,z÷i[s‡Þàû+èüÇüÿ“'Npâĉï½Cÿâ¿È—¾ô%>÷¹Ïñâ‹/òùÏžP(Äûßÿ~ÆÆÆøô§?ÍÊÊ ãããüÖoý¦)¿™j4Mذ9ܿˬ±‰gÃRr‘1öèaia޶ï`„<®ÛǸnžPc’*EF¹ÅQ¦Ùä˜s“¢Pb„6ØcœZ¸O†!•£»ÃyJ$há`Ò&Á({Ê@bSðJTŒ{Æ(Y¿Ê¨·OÙÈS·Ò¸L³¥À a¶ìIÍ ÓgÝœQjù¸e¥©H^6Cö…D"žlßš‘$5RLª0ÿm&¥+ÁÀ%O…}MC„Bd©§4¬$³*Ú°È›Lkns<Õ¦,rtÒßj y™™g•Uœ ”èaSLÓ!ÆcîËäÄ(÷Œƒ¬3œà&C/Œi¸rîÒ0R”Ã9ÆÜ=It(Î=ÉëoŒpä‘3làb²nN³g¦AÖ¯QpÓ>Šƒ©îï=¤9 Vs÷iš ^â1|“J-De.r— 1C‡8kÉY¢¢«“üFü-gÛ˜ I’YÖ¤øÏcÎ[c¡³Â~l„=c”-1¥oÛ–phŒ$)ŠQv”t_Œ’w+Ìô·¨ÅÒt„Tú`…œ_aOŒ¡‡‹…Ë‹ Œìýt_à Íïµhÿ÷»ïvyï{ßËoÿöosîÜ9>üáÓëõ8{ö,ï}ï{¹{÷.ŸúÔ§ð}Ÿ_ýÕ_åøñãús×Å,1aâ[‚ºH*±M™œt£D’¬1‹¯ƒUZ$ð¾‚5I²iÊÎ-0é ™f“¶™ Aš¸Ž/mUX·#cÜFNÓæÜ-ºQ¹BrÕ^¿Bž"Ê~^Np„Å~xDÆ‹,]$¯½¯ŠŠœòX Ïg9fÃ4IP!Ç;ì ã¡Ãô¨ ÃU©š¤°ªçT³»;Äð”T-¸8LQ#«üç-Jb¥Ç(û ”2Ð<…6qm…•ñÓÒ›ÐÈZ$‰ÑÑ–´yÍ(7qRÙç’M/énòœìÎÆè3`ï5ŸÜ™0aÑ×°SU­D‚–öž ô&Iz„1/]Fz§(Q IR…½ô(ܲÀ£G”²®ÄÔõÐ…ÁßüÍßpñâEþê¯þŠ÷¼ç=ܽ{—}ìc|øÃæêÕ«œ>}Z‹âŬYaßÑ·I‡7-‘ ³µ_±J–45 Õé,ܼY–\ìIZšb“’*p}Â̱Æ@½!|£±|‡šH³Ê<ó¬â`bòÍØ%Š)B浇Ã({ôˆ°ÆkÀ!îh¶xWAeBŠWÐÄië †i¦Â›xžÉMŽp—CdTöt›E¿€é¸ŠûÝ K6Ò_?É6=² ±ššË;ŽìXzDÞ|¨ívbˆgúý×%B S çZ&ÏmŽhv³¤Œû …ŒÜ6'¨EÒ´¬˜â¯—h²Û6M—ƒ¡U¦Æj4 ‹—/ÌbœwA|e Äèb GqÝ#Øj,¥éDÂ"e8BGÑZ4IÉ(Q%A) ³l,°È«Ìñ0—™›ÔIs‰3ì0‰K‚¶Œ‘!Œ¼AÅõ.ã*óÚN IDATAvöùPU h$q‰0Ç*³Þ›L°ÂAv— t!Á.MŒ±¯ »Ç“÷·C÷ œÁ[Îâû>Ÿþô§™™™¡Ýnóå/™……~þçžßüÍßäGôGùÔ§>ÅoüÆo‰Dø£?ú#>ó™ÏèÏ—  ßD«ˆîq.Qr~ž¢ÔµQö°p©’SœìyQÖV±QöÙDò*äèF ’T"YS,Sã¢Mˆ«Ìó`÷:5+£›™N6†‹%í—”(2Š8À({T8%N›"£DèiÎù$[j\lP²óÊ÷Ü¥NA…,ClæÄ:–/co£ IX§"©BšZ9£CŠuÒr¢¨èiÅaÏQ¡G˜ ¦Ù`šIv˜aƒ"#rÍÀ¸Ž±ÞcLE¹¶p°Z9F\¥ð ±Ë8MUè!›dr”XfÃÜÖìgÖd…1._Œ2zN’ÉeA§kâ°Ç(Qz~²Êœ9WÈ©éc”5f™Pô¼ºê΃±¶ŠxtÂ`oë`êŽÛfHŒÛL(VœY-L”xW¹Â&)uÒ!ìöqM.ÖP™r tMbѼςî møng†ÿ(èÃáO~ò“¼ï}ïãCúFƒT*E$avv–½½=nݺʼn'°,‹'NpëÖ-]лk%–œ,•ìc”ó‡8Å5¦Ùä*§ÔØcHÅYmáÈPU!2“ôˆh6÷%ñ0{ŒsÔ_"F‡Wx% ̰Á;\âað!#¤¿ñ*'±…C,!…×;À }"<Ï2CœªdYf‘&IÄ[âEFèfžU^ám\â,ǸÁ4›,#§U²á6EF¸Í"ôHÒ DŸç­·+ñXŸ¯ñ£ì1Î$[,Še,[@{Œóg°•U-A‹«œ¢¡næzl3AˆB`…Ë<Ì>£ŒÚeNZW¹38Ä…Ðy \&Ùa‰åÛ‘‰{¤XeŽ:iŽr‡¯Š§é¥IŠ)±ÉJrN³Ñ׬9ŠŒp”[¬3CÍ–Ét§FÖ¨‹4Ÿ{ñäð³Ö3$)ñ°£rµOs…×»Íֵ߾Eœ3\¦ÄÏòN–XÄbÈI®s™3|ƒ§˜eG†¯5ºdLɾÍa|5Nx™·1͇¸ËžåËÖ L°:`öÕ—»S½l%'ée‹iŽq“º™æùø×9Aš:EFÙû–³Ü_}õU"‘ÇŽdÆ»Þõ.Âá0¹\ŽjµÊúú: !ØÛÛûöƒèÞ]ñ$ÑÜ.N®À<«:ª5Ä€p·Ož2s¬ò*+¦ÐI†RGêê.u!Q'£yßiêDúº¶ŒYgx¯Ãë.^ÈÀ6e×V#K“$Jz}˜qk˜Â¡mÊ•Vœ6SlÒTD®Šø@Ž ®òs÷ŸØ° !Ÿ¼"ÿå)§#í¹FÃèq€½ú±p3`Âßa‡ aé ™oíØÓÔÉQÁÄÓ89–N¡Oš6CªdeÚ# š„(aÛ@áEs¸XL±¥3²Tñ•_ÚGÐ …‹A›µq1UÓfhoûÁÙ]¶BY6_Š“,¦Æë2Œ%B— uÕ¤È4ÌÀ‚:Ξ ru8L•“Ýû(û”ÉãbQ ¬"Â,²¤.4}E¡LÆU8yô ies­’c…ôü‘Ó»ôìã© Á6“ÒkÊ®½IBáXÓ$hJK5}Ú»M"­2ö¶™ûxpÖ÷83~Iq/½ô<ÿüó¬­­qãÆ ƒ.ö–e‹ÅtÂU·Û%}SÝgö»x}‡–#G!žúE7HÒ E‹¦Úm3I™<åìófÜ¢Tȫĥ–´Ýœ‹A\Ý(+^N5sÔ¿%•,½ËÝs˜q•0äjÛK[ѵ¢Jt¨åâ(>nDÑäÍÏU»›šb­Ë·,äeÕ1„M.H¦ ÓghÛ i sÛ„1TŽ2@Ø—b—|Åc–;¤ˆJqêȬi dçŽ4A4Ï·®:`©Ö´4P^l%‘F‹¶~ Rš'ß¼IÝõ¦óC8”cç%éé5‘ÝÄ6Ò7Œ»ƒD)›!ª*ŠWªRM\í¡¨õE´J¡ó±!ÒiO5]„[ATÝõƒ‡¼ACƒ'â´¾¯YÔòu›IöÅ(¾ê.‘M“$-¥ä-“§éDéôMbƒÚ}¶©ã»ÿùwøá8ög†mÛ\ºt‰W^yEN¾:}fضM8f0ຮ^ÏéìŠ~³ßÆó¤)x(“ MFÔttFA–)êýgaàëKrБ¥hª¥›CˆIšÄ­–¶cÅiÒ¾dáî ˆ {ú}cªÉS”®iÐ3#ü’Ê÷I¨ˆã UUÐ…šæ µ;C„hRLÄM5M K‘Úp@Êm赚|?Ë×mª"«W žò¡'AýœEv0*,g^'˜$ϳ¥3Ê|6ú*n5È( ²ÒåÉÑbÄ8öcË›¢¢`)—<(î&¡q‹ÞlÍW¥¬mˆÍ[å½™êŒì닉«^»œâ¢wô]5üÖÌó)e‹ê36¸*÷‰ÐT‚Ä›ÀiäªÁTYõò @øŠ6—Ð;ýàƒŸ! ê˜§/ ]bÚ*g»˜ý‰Aåþ÷{œCãÿ{‡~òäI~åW~…N§C<gjjŠD"ÁK/½Ä… 8{ö,gΜá3Ÿù O?ý4Ï>û,ò'òæçîaÌ{¸té²Lž2¯Ç1ãmâ¤ep§Þé̲¦Ç&2žP"ô"ª„‡¼£ì‘¤A‡8Yª(1ÆGŒÛØ ÉSÖ¿Ü.Qu£_cÄ-±m¨Ï(3l*q‰Œ!`‡0=Ö•ÍÃÄe’mE?Ë:‹ÞCÃÖ#nœcRŒÝ`ü•B¦9í1FІÆN°Ãœ¿†ß2Ȧ%p OEÓœ ”8Ê-„ðxGïy°=ls Q‰aúL*a,ÖÆj{Lù;Œ&ö #íxÁk›aShÁÃ!%w}F(±Ë8aúã&cý"}3Ê”µ‰‹Ÿ{»ráûTŒ<“A2?2ú U?LóB‹ç»,°Œ«ôº1}¨M°#WjD.r=‘¡Æc:DÇÄae¦Ù çUp ieñ0Yà=ÂäÔÅ`ŽU5¾’S±•!Å#¶Õ4Fb×H›’Ñ\#C†ªÎ•r¦ó”9Â-Êô è Ç&jÔ&²$< öï§Cý–ú0 ƒ~ðƒ´Ûmnß¾M>Ÿçܹs|îsŸ#NS­Vãüùó|á _ söìÙoû…cyIAŒ0 \m ’\qŸ°¨}5ÒŽÐÃVE=ÈF„W-’Äif hY!,EÐr°q|»å‹TôÁ]îäiÄå^×2†Øþ@‡YߢXz6¦pñ]ƒˆ-]*rZ0+€}\UÊØjÏïMX‹P]oTq݇¦…ëÛxj­È'ûJ´—ô›8†E޲²§Õî·¥S‚à“@h;Îì°Í$Š˜¸:yRØL ;IÒ$«ì¤-̲Âô¨*‘YN1׃Ô5[ ™aƒ[aB Kƒ†¬G„Y6ˆNw鹸²Ïôé&cjE‘¤AŽ2s¬«€˜i¥./0B‘}-JnW±±]}m"¥˜ê;LhÕ¹‡`„"E= P§%òX4U3Òìó–)“W HMk‘zDp1õnßÄe„}òTØg„>!bJõ¦O~Æ"Fšåâ}Nà†â»Ÿ÷©¹ùŽ=ŸÏóØc1q‡¹¹9>þñó…/|ãÇóôÓOcš&ùÈGxöÙgùýßÿ}ÆÇÇõç/±ÀI¿ÅC|„ÏÓlÓŒ±§ÐsQ6™æ'ûÿB+åG¹ÈYNpE–Xfx;ïà_yÌ !|z¹Kâ —Ùa‚%©ã1^Â2 ÿ6Gxˆ×HÑàGYgF˜cì1ϪIGèrž R]Mš f8ÍkÌs•SœäšÎ$ÿãÇH*•è»ÜæqÚ¼“¯Ñ Å=bàòÿ_Áƒ‹æY–Xà1^¤BŽ2.‰‡™Lî¥Ê[Œ²Ï€_çGb3É6w# ôˆpˆ»¸XÜã uÒL°KŽ ‹Æ2+ö<µDЧù*ûŒr—EÎø¯1#6¸ÇAÖ™¡E‚“\c•yÿ¿¸Ÿ£mÄxN<É3ÙÜg¿ ÇpçÝ 8¦ÅUã³þ:'š·x1õ(÷Œƒôˆð¸xÜàæ`’ÿzáGø¹G.p‚\g¸Áq¥ hã`s™3å&ó"+à§ÍQnëCd„Çü›Ìˆ îr˜ìǘd‡ fùŸýÿJÒoQ4ò|…Ÿ`‚mæY£LžEo‰'ûÏs'zˆ›ã2gH(ô=ÐÉÇt,d0n<ï}“éö_M¾ƒ œgŠMÞÎó$iòOP!Çaîbà±Ç8¸Ïýû(èþ¿Ï‚þàƒÊN;'“É077‡‚W_}•|ä#$ Þ÷¾÷ñÌ3Ïàº.ïÿû¿ík4I’¢AÞ¯Ð1RÔµå(K 7$¯ÚeoŠªrƒ49¿Š#$)Ë÷®oÒ5bÄý.)Ñ È •±Éþ#¦§2}ÂT’iZfBÎÿ },Û!¦@'C,2Ôiûq†~ˆŽ°Ø·ÆxÊûW:"NZH-Ì£(k÷†d·çUâ ÐÅ¥­’lÈ<¦èZ1fHj:èP%ƒ«V ·§/4ÈÐsKå“K,hðý ÕE" ­ Ì’¢A›˜âFÈ(Óƒ*ü©'4jþ%[©xزÉ4kÌr€Uò¢¬»ù 5Êäuþ¸ƒ¥ÁLss5Šý1n\Ê‘{ØV¢5A‡¸Þ«ÓÈ`PÒ„A6U °#—t6_ó‚©…‡Á<+Š[1Á2IѤO„¶šÀN²­&ûŒÐ&Až2[Laªæ*€Ê š¡ &ÚSa2Ò×Òv· ´hÝ'>•á¶ ø®*wÛ¶ù‰Ÿø b±¿ø‹¿ømÿ~qq‘ÅÅÅÿæóL<öÅ/ð81Õáf©q2Ÿ™ìp9|š]Æq0™b›Û•9æYe@ˆ›âûŒ’Þ!I“×8M‰¦Ø"N›×yPe!yˆJ4I’§LKíafYWÝù&s¬£Ã 4T4ãE™'ÎrTIÐâGHª ä£Üd›)nr “¤JVzE<Š£Ä./ðuÒd¨R ŒcØTȲÎ,+Pc 4Xe“S\ÅÁä:'1•-G…m&è£`W™ë®s“C\á´»QdGL(öú´zXá'ibŽ5B xÅÄf™E†„¨“ÆTkZWPƒP¯ f¨©@9òo’W+„%>î3 BžÆq#P¼¯3‹ «lzÌ££cp-ƪJÆûþwèßãÌøï¡ ï2AŸ¤¾é¬3«r‚}\Åßg”"ôTÌ8¤g´AJ{B <ŠŒÐȧXež=ÆHÒTø rX • Cþ³€>¶Á qZdªÚ¥…Ùa‚)¶(+¾¯À§$ Z¬–¬EçÝð“2³Ë¸Ú]ì‰18€]ÿ7 ùêE x˜¤©1Úe‚]êHÐI ¢[g–yV)“ÇÃ`)}O”(b …f;LP'ͼ±A)‘Cx2#ÙÄ¥BŽ¶Âˆö• ¬KD‹ÊjG)á+1*V–+â´èIûE•,]bÓ&NDÈßÑ|™d%’ØÓaÂfœ›_3xàó”EA§T­2¯ ð@Ýã´ ÑÇÅbƒY¦ØÒÉMeòÜ3Re×1¨ø9Fž¶î#ѵ›L3ÄR;Žq—Ã)0Å65;ÄaØ Øc\)ŠåØ5@ÊYÞúì0I˜÷䨰iMsü~Gîý·ÞÈý2¶W%Oz/xŠëd°!ClzDe±7ä"Ä»o`‡åjGÐI¶TTªœx%m~‹šHKƵß`CÌ0Ä"ÒéñúŒPÄR¢Ni{‹2T1ª.&M3N˜ž q(8QŠê¤õžzˆ…ŨÓ%–h’CeÏ]d‰ü „ayl3‹E’6Ž´¼úqlHÂóQ™‹.zJ@øfÞx”®Î,Ÿa ‡:)RªlÚ 1•·£BTªÈ¨Š8Êâç¨×Øâ´¨’#¯8òC5¾–0#_G 爛% ®¡ð³=²‹U¾{˜×^râ|WXúrà#Øa‚-\,ê tb_C½6™Ö9óazú÷ÝT©~iêú‚b3TkÀ kÌcã¤ÉóÄi³È#ìKH£ì«&cK9z ”žß–°pï³j—>¼Ï0*†ßãÌøï¡ ßä(‹8ü8ÿŒð} M‹Cþ]†^ˆª™å.‡øiï+ÄD›oˆ§¸È9²TÉPg™^áQÞÎ œâ*¯rŽâHž5æx˜KøuãÊpœ:Çýyœ±p¸É1îp˜‡¸Œ' 9Òåu©ÎdŠ™`Kk’ªæÌRab«¨ECFU]Ñ”z„©ÊÈ(B—)–|­MŒCülp–:Izn„5w“‰«¢efØfE¬9Tê’›¤*S ŸäáÇø„mrÊ àbf$ÎlücŒö‹1‚‹2¾x°›I Úä Rj´/Q65ÕYÐ@"/®¦& ©\ðÀ½ e~ëÖ¥0¡ñr G‰"iWÚbe] Å y‰°Ø:Ó#LFˆSµ ?>¡/¯ÓÇG—âÉ)NÀÄ—㎠܄ˆ¡Ë Û,ö8Ï2Áf•G”É1à ™q€;âÂà“¾G¹% íSj‘$q«Íİ öGœ÷?däªìs‘c}b-nW˜|Œ³>Bí>™d•™°rd«‘ê”ô´Æ…ñN|34­kÕm|æ˜V,JÛŠ2r´Ì(EŽ]’%–ØÕd¸™é)Oð>c|,°GtÚ#` –Æ{ôÆa\\ÆØ²ÈªI[Ú¨·ÖGÜM]`Ï¿ˆËyTO{‘’š2Ðâ"÷é¥H‰:)pž >,zÌp"Ïç jj3ª9"Bc :ã®òÿ–Ø¥OP§?FBFS°eôêˆç9ÐèiϨÖ$¡cyËì å/ÈyàL*N­÷b¼ôä\F"·ª¢¤¨Ž{›ïäm˜æ9ZT%GFé¥Â˘8âšO‹oKÝDéŠeoBššÀkT¬7K…°Lñ<¯€šJ*I¯JF'<¦»bLÈPe@€°<«kä>þW¾ +×j”kŒ ¿˜W¦<4βûÔI±À>Gv‘‘Tmæ8•ÓT†‘ä,Œñi­™6…G¬¡§wëǨªP/ô_&§ÆÎ†yc¥!rNePeAðïIä8ÕcØ$u2T8%O‡ˆÎºzm=~Fz'¹Ã2ª:¯ºc,cH€Ë ô ‘ I’&Ó€AUòò²*ÒGŸöXÔló61îq›1iê:ë¾ìî“Ö8õåØg&q.q.aq†{Ó‹¬[·(pL‰"C̳Ÿu’J·6bæ‚%„(“ã–q…4ueŠ1¢œúf¨‘fŽC¦˜l³Â¿ŒÏ{첤=kÙ#n¯ü$§owà…k¬›·•niè"À“»\¢GX—Μ’çˆYåúu·…¯®ô°QÆòïyF…1Ú púJ™œ*Ï"Ÿ%J ›T-ÍQ¦B–vX&B‡*ivXÑ‘ºl²F@ð—ç÷¢ÿ—¸Ü?~}××ÙÀL´´ IDATþÃH†ˆÕ§óƒé’ô7™ÄgzRÃ"Š˜è{Pµö…Ó &†Í`b `›Z±(¹I•ŽV›~¿EÝJ’×IL[dœ*%³À eŒü”QÌG˜¾À˜è°K_/p*…½ižeðÓ5Â4Hvz`DÝSCå¾£n—‰acÈ©ÎË[‡è“˜6pd’×#L’–î\ÀDz¤ ÜàÊÛœpÈc†–¨s+¹ŒÐ%KE/v^ôvò¡1r@ü=KìÑ"ÁPQ:ädŒî9ðæ8ÐàI-™ù¡£?Ï‘ƒÕ©ài+d@&žcÝsª+äkB×’Z³Afœ_ú`Ë×+D³ñ€óšOámæuµ®È‡=ÂÔDª Ó#&“›~NÉ–»ÒÑUF}E‰ ÚjÓïô ›= h™n¬¿o/&©!Žxšú4H’ I—0QºòŒöÞ•ÿÊLqiªÌ°­G&qé-R}W—™¨“hŒy0pYbW»Ò•i¡Â"{ ùØWFµ()„hœ–m©¼*d©hB\ˆiª,³KÛˆiýØ‹|d¨¢1&.+lS%£¡#Q:¢¡5¡nö45ý3z‘†0=­Ï¥*5À€6qòœrÀ~Æ„é2Ç!ó–R?#"tåâP¸Ú€„ÉqŠÅ“': ­v˜3Ž˜DMØ'JJ¢% Vئa©rƒ=f8¥Fš<§XLH‹³s‡eú„ð™#Š”ôhÍÃÜÚLXdCŠ”h£I’}MÆRyóSá|öL‘ÝHŽã·aá™i³®‹4æ„á>$@“!ú9"-­k š$†8Ìýz7¾/èΰçÌs Éz— UN˜ÁpQŠ:¶P§ÒÝ:OÇßå˜<»,“ç˜ 5ÛÌb€>ÝxÜ‚r” Ò×õ’?ðúǯïî» åiÚsLb>ºvˆhMÙdG cÊdèXQ1‡Í0æ:3”Uƒ™ AŠaÔÏÈðS&ÇŠ¹MÛcdøÔÎB5bù¢œ™îRvf86‹$ÜGÙ§â¥q»Ç´sQ¶Y¦+æQ:4;æ2 £I‚&ßÌ>KÁ9ah*Ívdø1]G´ú‘žÎµˆ±Ë©@S&jJîZAvXV$3{LÂjíPyoBÒÆX2 4Ü #©‰jÞ}¥¡Lù0¨Iá`USX†qڌ𑦦§mê~(àg¬µð,N…(ç’U ¦j?ô’ÖªŠT±?|Œ‰Ò!AS¿_ÊOäÒ‘IÛ *]pJŽ¢tYÄuNßs˜ªN“¸&‰Ž±åà°¨Ÿ}ªÓì¦{÷C^¬1ú„¥Œ«®ñÜ] éZ€!~c$ˆ×€¬UÆwH"6Vy¤+RÁ%JGªf “Sp~ð¸Q×ñ'tÅ;^e‹*YôÂüG̱É?Éuàm®°Â66Êä8dV#ªd1ýS Tá§‹ª>ôô‹ 9.r-îsQï,ƒ X`Ÿ”œrUAm ¼Qð³8&N‹Sf¨’¥H‰0=ÆøØe‰ UÒƒ©ÃÇX¿”a à"÷tíá?‹ìj˜A–3Å5UÓœ2Ý(WišsÒ%¬ËÖ¹-ìbu2÷XÉþɈ~(ˆÍ„¶‰Ñâ6ëÌrÈyîë2˜1–Ø%D_7®rK£n0\—8MV7 pÈqZ¬sKS“&Ø)a1Á$YbG;ê{\b—X¡Í¾‘æá[1^~îXƒ ,\Ø'N“)Àà2w´£Ö;M7Hò¯é‘{• šÄhã—keŽ#Ö¹…ƒÉó4H’çS(YpBŸZ$hg-fe3Ç].²È>¸Í„7y–.aŠ”t!„ñ¸w“ó±)î{öÝXðÜ€IËP²Gƒr Ép‹#ŠÚ­~À<N(Qœ'eÔ‰¹mZFŒ7xŽ3Æ–Îj{Zò!aŽÓ9ú¶JÍoOÌj¤©EËœDftÂ?-f9d–´#Ó+sF%5LU Ì a£G•´ŽÎz—2Y*þ ;,ãGüòœs=H#œÀ6Æú~sÅ0Û ÉÔµ5µ,ÀPW°Æ¤LäTë*ª«4fO?÷òáŽ@Amñxúþ ÄôƼg$M$ ]úR!«'jºÚ8[àD›j=# K™ÒÔØgAØïIÍYïᘋó5y¾ôNš…§•?À›œa“!öYéb c d¦"HY?C= ‹1n@„šh÷ÊlgÉô¢d©•šœ&Êå(Ó!B‡(%ŠjºB“CÒRçÉ–Œóë(ßSóqoðñ¿à™ñÿ÷‚¡‹-¨=ïÄísÇ„à’çXWfznÁ Ü׹ŀa<§ú> œéï’¢&8ũ޷}¸TàwõÂ¥p®}íxW:sS²šGTÉ`Š;Ü;m+cIˆ Câ´ô ”¥B’Ñ‚[ÄIÒ K˜]–ˆÓ"K…¶è>T=Ä?cbthS$µv›Xª­'*ÐÄ(“5Mš Ñ×¥e¹èúnˆÅjþÙŒ®âb²Ê#mä¡(n¦v ÅôÒ%ÂÐ 4TSØíágLº¾!sœâ`RqrÔÌ4Y¾¹ ˆ)GY­„@çñ´g9"—?¥mÙl}#Èò¨‘£eLÑЀ®ŒêUJaŠŸ1áˆÕ¥eÇ4Ñj†S\TÁC˜ž.zñ mRÔÅ%=Uõ™Ô˜bbM”Kµæ¦éQÕôäŽq“±©6'!úS ASŒ2Šñì=ø*RòX#÷ckßÓ뫤 SLŽ˜ÅÁPÉ7ÍüôG¬Ò !Q+%Q™ò,HÐP5ªDè!„Tfœçp0(p¢«/ÇØ8C“n0"‘,¿lôUyp<¤áWúï…jÞbMŸÝóìq»Z¢Úd ‡ômO±ØfE®í IÔH38dŒ_“ìöY`@ ºÓI³Á6Ë„PØÙ±lr·Ü54èJ«K¯y”6U²’$Q4³#*dð‘a‘="tØf…0=.p_ cŽ(“ÃÏØaYî²T¸Íz„õs£E\ƒ^BîLR—Ά}¶Y!B—5ºÒжÉ~†ä…ÍîEÔf8å®S!KVFý3œ0³82¼ýÖÏ?³i(–½_Þ3@ kšú¨žMªÜó;, }n‚(Rb›Bô‰Ñæ.Šmr†-)¨ ¡JŒ6‚Dd ½].ŽIÐà]žÖ ¥t¹+î{‘ýǬOýAÇÖ>¸ô*[LðñU~”¯ó".OïQ' Äis¼ÆË¼ÏuºDx–7ä6ëÔIqô ó/sÀña“N¹ÉUNÈsž<ÁûlrFïX½˜Ê¦”®xÕ| áhs›u­SO±ø€'h#A‹unsÀopºtÓ_ä¯óß2žg„Ÿ«Ü$lu Ñç”^çGxŸ'Xc‹±ëã}óSL®Mn1Ç9ËgÈsÌs¼Aƒ÷¹@4Ï8oKiƒ:m?—½I÷ÌÿûŸâ§Ÿf…m²TxÀyn±Î)3L°yƒç¸É:.ÏÖߦÐ9ZÜ_åSÜåëÜbž]=y…ÛŒñññï¹Íº„õ¤ÆÃ5ÎÖôTc@€ó< bdù;û§¸ÇEÖØÂbÊm®ð6Ï`à0ÆæçØa™8-®pû{;¡ÿ}||Bÿ®/U¿9Ò.cCq!zDŒv`*zqO£_•,Wcž|ŠLyóqr”™¥Ä2;,°O‹="¦#²N±:ÂOŒΘ&ùA™ 1L 528` ˜˜6u#EÖ­’p[dU±ªb²K ˆçñÜ↤Guáλ‚ˆí‹Ô5ÂïŒÀ…­U{›KÇ4ðc©„m¢‡%Ò’B:D¤¯Ý£Ñ¹2³u$òšúžO;ÈwX¦IÑG>ßf÷ý U'É;£[Ï>ܽÐ%¢û<¼ /úØ"Î6+"m(C³×KïÚx¦¶Ùé‘#G28W„GœáYÍÝðdÂ#fÙgQ6zŠÊ?Á’‘ÃG#ýØ'ôêã1=9É ½ŒêOФELUÔÙ9:’ù­¡z¦‡{*áþY )CÙ1éágh9¡ÀuRR3¨XËž–¤\×èÒ¯èÞ‹!yu…‡ÒèæýÝ5Òº¨!ÀH²Î ú´>Á¦D‘1 Ðõƒ}Båëjd¤·+»ð¨Œ®‚´Ým#¦ juÒ2ŽéhÈØôéÓFÓLj·©!„¦I\Lj¤éÛ!š¾8Í`\÷—ɉ›u¢¦C:(ÍÑËü«ºRõ9Ç=)WP7r›;,ã)´‰Ñ°c²iRS‡šx¼›¹K˜š™Æ‘"¯¡ÊÍGñ‚oÑx.‰ÏœˆæÑ¡ UµI!I=”¢ìËQ•S»gB©K ±#ï×1­É©©C”}©’øEˆf A‡m…+¡C¿d]] Í=P Õß>"À›>–äÓ£¿ ÿ oÀ½½=þæoþ†H$¯üʯpóæM¾üå/“ÏçùÙŸýYüþž*ÖU¶cÑ=ÐÙpå ©u»D‡VxDŽ »,¥M‚&C$ihÓûSèY*ùᓊP¯Ë`‰=¦˜Ã}bF‹´È2sÓC¶­˜SF;§‰‚@…QP«›\%iÔéŠë~ÙØaŒU&ŠÕŽŠzYðI© ޲À>~G墇øIQ—Y ?#æ'‡ÆC’ц‰{q¹%g‘ë'eÕåÚWq­ àÇÜá2GÉP¥À IŠ—! „^~=A“]é¡î¤Ù6WµÌ¨Rã ™2ZË㈃¼FŠ<³»„i‘à¡húcüTÈrÈœ zÕDO•^YÌrH… ]™Ø*™sޱ,Ø.à3Æ,-Õ¹3šcëý±+bå½ZdWŸÄÕxBLÌy9NÕ&IÉ¡{Úy[Фk,‰«>mé70¤MLÀE#“-p¬[ Ñ—µ% S ]"º(è[“c÷ææ&Ÿÿüç)‹üâ/þ"o½õ¯¿þ:‹‹‹üÌÏüÌGsB/‹ÛxžÖ¹­ã)êbIÐ%¼'§y[ÕØÔ€ÿ]–ô¤OgªôÕEv™g_ú†óÌP&FKG>¬ux»ÍšXÁòœJ7º‚C¬J¹ˆGBJ‰Ž–‚û"Çä(ëì«ÍTë0ÙbUÖ.®Œë뤘ç€%v4eè:ð¤ñ®Ž@$‹ºËxž²F8b–=4ñË&b†Sb´iðÉ%²Ñ2'ƒ{±yí&íÉ)5%£0O?;ËyN8!¯!ªØd¢/†?Øg•G4IW]Ä7Pà™s<÷ÿ 9Ç@6m&8¯ý9Ê´‰²lîðß,}…ççorãí<-b¤©³Ê#½›õJR&ØÜŠ_fRú”%݈ w=š[®·}×Y`_ªSºÌ!J‡IÒ¦Mœ c —mV1p8Ça;ˆÐ£À gyUÉP•Žë Çâ‹x¬‘ûøŸù—eY¬¯¯óÅ/~Qœ=ⳟý,?÷s?Ç'?ùILÓü¡:¡ŤåyHúÒŠå†Ts–:õ ‰Û¸+§]WcûY>½¨(¦¹«kV½SüÈR†0ïá?umm4³Œ)Žk2Ä/½×cÝàè}þ‡ÿ®¾4˜Å)íMòaŒ{£_ÃçêEÅÓ¼U¥g¡¡j@›$Ĥ5”¸«AÛˆâêòò¤8ô9Ùû 0ÂÅ`*M“€(áù{8b~õàRÞä5Bzï‰w(qAÇÔ¼BÓtGzš¶WÈâŒc´%—p?Yà‘¿ÏóSR"eÊ ºOˆàZ€@ÆÔô¸½BNU6äß ˆ¦=Ñ/3îMÆÒ¼¦v`è¿÷žªÃ“’Y½ŸaŠEÏ kh7Ê÷Ø#6S=½A_ßSlíŸúøÐ8Þ¶m.]ºÄ«¯¾ ÀÝ»wùÜç>ÇÏÿüÏó‰O|Ã0>šºrw5]ñ‡3$©kâNƒ$׸!´IJIQ§À1 ì°BŠ:çxÀ!sL2Š`´Â6-âzÍsB‚&S¶Yá,€+ÍaJoÊPÁbÊ ÛzñöIl†2A2G–*uZÄ)Q¤H‰45|Œ8bNÿ’;ÄDÿ ©±µŒÆÊäˆËÉáTÐKÜ%F›‡œc›œ¾Å0¦ ¼(Õ}.p(¿w£ž0CŠšœ§œ’#N‹<="N“DV ]© NµËì¥Ís©z™Uåi‰"Ïò&!úÜä*]¢8c› o@Ö¬0Ëmbz$§ •ØÐÍXš«ê¤Yå‘n¸{Ä*.A12ÖH3ë±·SܰW¹ýõ$?ýâ.aºrM¨^ù>Ft(“%N›-Öø$ß M•*Y‘ Hc_0Œs~†HcÒO\ft­c’º0£žp? o„9!O•Œlzâsˆ’çTàÅ@ ¿5"=6±‘rëŒ ¿È)U†ñ1æ²{‡†‘dy¸¯Æ¹›Ü¤BÛŽÐ#BSWñâÓ6ñJ—n1¢µÓÅý#ºù›„Â}B“>ã¡E<ÚÆb´8ÇCBNŸ'ú7)ùòì³£ {Šm«Åcìú˜)ê8”ÄØ °Ä‰VƒTºŽÃ»ÄiKQKâà„–g•G²lŽèÐcŒŸ…éƒi ¿OÛˆ‹Ð~Eˆ8MRRÝz†-ñ4µ/¨/WŽÞ˜5å-FKø4 GŒ¬^]mSÌlIÊ"çø)1ÚRK­ÆÿSlš¤æHÝHÓýOª8Š@JŠ”ø Ÿb@ˆ9¸ÌÞç:!ü_&8èøA2T¹Ìâ4Ùà,Iš\>dÙÚãoíË‹ʬ°ÃóÔI1ôùynø¯Ú?ÆMß:=¬±Éžl2NÈ‹å„#æ±÷(“ã+|Š$MüŒXa›¨Ù&n6yÀ9nr•0=~Žÿ“›\å)rÌ6éæ-žaD€ø&Yª¼ÃÓº_ú§øÏüŸ¡AŠ8mÖ¹E“[¬âcÂúì €ÿùµÏPxÉæ)ã=â´¹Ç%¶Yf-þÛÎßòŽý4Ë¡ꤸÏyZ$xžoIl.N!?Ϋ¿÷{¿Ç½{÷¸~ýúË‹˜D…Ôû,â7F*Æeø‡l²BÚ¨³Í ;,Ñ"Ne´½g\¤K„c‰asBž5kSƒ‚,¦ Œ U2ÌZGœop‹uªd(p̃…U¶¬Å*ˆE(E÷]1×ÕF±b戇[ôŒ="¼|š($•¡ÔPgáCfu,µNJôf› $eR~©úTæ¹8Yá1XpĬΘ{S†˜Õ¦n¥èaN(°Ç#üØÎ„²‘%e4d9Uñ©#fYa[³9٪¡!z„¨’%(&1å+Ñ(L• ’b¨íQ!ËŒñqÀ¼ØBħó€ó\æŽæ¸{%I&¨Œ·Ê‘·Ü¶1Ñ,øqöñëi¤ÍׄñrŒqÀàk¯Åè½Æ5Lj¤p%¦š¤Á‘;‹a(é®-ò…!Yþ ÊdUSžüRm[!K‚&Ǹå¬S4KTÈrÀ¼®¨-QÔä;ÏGà¡e+n¿¡ –~Æ\å&I”djñ}ÇÖ|9ÈÆÀu›ßõKûý>/^äw~çwøíßþm?š½DAôaW3 Ã¥IG“vªz‡3¸Eœ29ݹ«Þ,õçcÛ'®52*b"zt˜óè{‰0Ææ .Z5Ž ®5LY ZJkW¼æsÿ;š}:ÒÐãÌ”“ÞίC^Fìz4EïÝgmVh‘à"÷ÔdÀR:®Ç öÉ¢¢ŒiyªdÉŽñ‰ËÐísžtÐ Þ‡© ¦«#ÞM4ƦC„˜ Ù>ìŠ5™Ò%ªÇM ’tí01ÏÔIÑ8‹¡«Ç¢corVSœ<Æ~€¡ŽdôVÄ‚BÐt!žã¿góu—ÈœçYã-\ ê¤9¢O׎bZÊÝ:î뉘›öYà˜ŽYddܦhxiöYd‹3ØLØ—Ô`šq 3Ë!÷¹¨±¯áÁ[LhÓE |¨Cì[óÉúÄ3Ni·ÛL&ºÝ.W¯^ekk‹Á`Àx<þ¡:«·Î"I›©aˆ$ÖÂϘšt„žúªêÔ¶îÈV\Õ’82üšíà¦æ„·‰‘ !“ž6¦_Mì,¦ÌsÀÈöcà¨VÄA¶¡KS°ž ’¢Xrw94æôAAÕ•Ú¸ÒËîm <ŒâkD…ºÌr¤c©A¬±A cÛGÎ*sDQrãU¹7Lc*Rd5 «›¶îgðN—Šõæµ_å†ÖÕÕ"U\“)Oó.÷9OІ6›Ès×Ç"û¤©“¥,Ð8FÉ£Í!s„¿®îsh’ÐàÏÄØ$AÚ¨S „)õ®cü<à1¡ÐEé‰òÙâÿñ ;ßô3ÿ‚Ú±%FaÕt5:0O‘#b"‹ÌqH‹8]"ª~––Óx§lÅþPýç‹æ.j˜ÂoÿopÀ-âbÀ³‰Ó=JEzÛrâÞÓÃ/^Šï?¶æWÆ·]´“É„N§Ãx<¦×ëñôÓOóÆo0 p˲>ªr–.>ýÐôze3Tu‘‰·¥©2䦧 M±8`‹!SÚDéçT>YQŠ¢ÔIrÄ,CÄ¥³×ÁÔÈ>5B éNc@Æ@>šÄ¿C?ñNñ¶<ØËä4ÍÃÌŽñ½¸#å2BzÄä}mX‹Áãø˜h7f™îDˆR´™-ë«Ú  wE¹8FZ£ò4›1>ÚFŒV0NnZ!lõÄœfê_’&>ëx ½×” ©±ŠS,†Ó;ÃTn„!)²QÝÌÞ†@í´§’¹LIr°8ä·Yf ñ;]œ£8La­9^Im±qižÃoÂé 3L [ºœC´¦qƆOèÌHŽ—,P®Û¸žT¨ÑßK3³g8U$>_Bªío§¨3Ï>÷¸¤ó²m¢$hÑ—÷És;˜SàÜG[ÛÝÝåÏÿüÏñù|üÅ_ü¿þë¿ÎÝ»wù£?ú#®]»Æùóç¨ô\&„ÈB9 W饟­ŸA†DèÒó¥Ê+g¶÷9J öQ'©ãGÞ5X#o÷¹ÏñK¿ôK<|ø?þã?æ•W^¡X,~4 ºÍ”¤˜µª¢¿ZLU'0û̳Ç ìácBI@ šä(Ë"’fž Ó#Ì8®¾Õ3lÑ%*7S³l Wá—Píkœ'N‹(ÒÔ°>ÄöHq^ _ƒ¤T Æ™¢Fv*jUgwŠy%ö1F¸âÅ1_!Ãeî²Ä˜;\¦N’%v™áDÇ'\[µHÍrD‚&% Üæ uRÄijò\Ÿ\¬ mÂËs¢Ü±ý6ålšNYç]‰Š(‰©-©§$+lkÚS‰"OðSlޤÖtà†ˆÒež­}÷ätŸç„ }©µõs‘û7Q““‹Üצ¡–E㑇OgØ£ŽÚÝ_ç écžãƒ·ò¼ò‰;\0î«^á@ˆ JšKÜe}Êäág™f8ÕÊ.žâ]glã [z×ì=sT} IDATº†8OÃRk¨jS¯qS¦" \Ñ6=zU˜>)êúD7|Ü›ó1\î«««üÁüÁwü¿_ýÕ_ý¡­…%-rû$:%©:öˆc>k¬óÇ^\+'hç"%اI‚,†hËÃÛ+F Ñg(n÷}&–ObM5R¼<úýkœ’ã4’c8 õå‰j’ ÷œyÀm.3q}!¯SAÍ2/é• RŒ±¹<ûC'Î;,0w}‚i8Ú¯åÁvâÒ¦æ‘%½T à,55n¢ÚøÒÔxÄ*QZ¤¨3 È-Ö¿£ Ö›¸xÍ tÊ@òëÐ$A†*¶ü®¾o ý»,è—/_æÿð¿ãë·~룭]â.G<ÇWy™4u^æ5Îu7Ù‹Ì3uMBFŸwÿdüY¼þó×üæ/èÓîó*Û¬p‡Kœ’'ºÝáZñ¶YežÕ±îòŸÌŸ×Å#Ÿà-¾ÂjÞïóª†I `K3Ó3îÛlgyCZ·ž½Ï§Ì×øö C”çxƒëã|Þ÷Óì°BšÿnúóEë'ÄÝáÓ|™·y†œ§È+l“¢ÎÛ>sÄmÖd‘=VÝG¼f¼¤;•Ÿå-¾Ä+d¤ôà¾É›uïßôœñ쳈Í‹"MA¬ª©šÅˆ€€²ÂºèÄ•MüPÜîGÌ’”zV/ÎZ'ÉóL°u÷øH¢m~F² êB›˜,¶qÂô± '½ÃHhžyƒwÞÌýDËœR%#Ío æåEÍ<¨WÍì UǼ_ÊfüºvµID‡bâÒZœš´Ž±¤ŠÖµÉcÝTÒª’6ø½¹Ü@Ï‹¨>õ"UVbÇ0Cïò>CeÿÚFŒºhÂ.7Ìk¢“u{™Â*òZ;ã6ël³S96 ¼ËÓìR‘S–ê(WE-1n±®±¯Ì+¤¢k02üTÉpÊ =ÂÜò_æ”,'ä)QPÑ4ŸÁ}.ÈTÄæ¾už ÎjÈÀ,%vY䄼@dš’§4ÔÎÓÈsL{\¤N’3d X#¢l±J4û,h3]ß s—K˜8,÷™š–t¦ºî!çÕn3`q6¸Á–•îulcBŠG)Q”Ú?›]îpYjdß×ñ YLËá-ëi–ý;”Ì%ŠTIg£š)} ³A…_çE I ·3Å"K…)éRá`pÈ{,àcÂUn0ÁÇCÎQ•a¾pÄøæi&/ج…±k/óˆey€duN“%Š”ÉIE¢2î(·zšn±Î,Gä}''<äerl²F’.&{,pBžMª¨J^ï¦x—§—™æ,ÒÄþýjè¿þù8nW˜Ú^Ý¥‘*à‰i*&Ç1w0•+’‹AÝI5;Ä¥"ÔdFˆŒº„È¢ºÃK•ŽL°0¤n¤ ¢:Э鄡àyLÝdÖ%BÓHèÌ»‡xöÊ=u²&FÍ&>|Ô¤¯a$z¨*TéiØL’MâÔÍ$óXȇ®®ˆUºyæµ&¢Ï6«:ãqÜÛDácHŠx‘"t5Ó‘d½-=á-b8‚BÍR•4KŒœ½ÄÄ…o3ÁÅÀǘ23ÀÒØWO›öÑIÍ8d^û„<  ~† &ÐUÉàg$›…‘DPUjf"Òh›‰Åwz ì~ÅÆyÑ"é¯ ;¾­åÓû|”毈êYî“h³âä{8o=˜`“•ª\Ïçàu¨ÍÈX{§< g‚O8ùªÅï±sèÿÚѯj·h²Â¶Æ›ýf2öXbW_dCd¨1pŒ*I™0ÏŠú'z7犮Õ'DžM6áÓ%)žæì—ÂÓ } ¨ÝÊsއTÈêŽï8-üRßç™gNQE·Æø°Å´¡4®³éÛÀå ›œ’×c§8MÆÂšw1p,“8mZ¢…éi*Tœ–ÚŒX1ÍQ6%F¡:Õ‡Ü>ÎÔdè 1ªŒñÑ#LІŒÏ ‚‘5$Æ‘Ó7¦ªŠUÍguR\0î`(8•›ö¸ÅUZĉØÏT .ß~¯¼rW6@uÒ„%ç­ô®Öð$—YŽˆštÌg9ü¦AóÙ8®áb3¡H‰c R¶âXbŠ3bî™ãˆEö(ICžÇwîV7fÈ”›±¯»³TäÔ“Õ~‡56‰Òf XQiê Oû±GîÿœÉõãúwwì"Ê@ƒ¢>ìôLsÊž³ÀÐ èí ›©XÁ, Ó儼K|ú™0EEÉZÒàçc„5vðùÆt„îù2ÒÔˆX=ÃÔùd¯C«A’}T±#}_Ld“Ü!JŠš6]ZâÿIKóÐ ÐãÙ 1YÆX84H‘qk•A .}\ùw'²Xe¨¦Ï‡:aây?¦Ø8Xßñ|}‚÷ÙcQÁ<ÆÆ?û,ˆ†¬úË=¹I-jU¦Òï®6Àª¬ÙÛ`8ÆÏHÓIòœpÊŒ®*u1ÉsЉ–°’‚çm'J ‡³O(YÃÙ¢jféH[Ô5>ÀÁÄÂá6Wøor›|Ùe‰, ô(p–#žç[l³Â}.Ð&Æ¿åo©‘a‹3!|™™2{dù_ßü4?õ N™áÓ|™—÷î‹ü¤\?·ñɃtŽC>é¾Î†q––xŸ'™gŸ(] "J›l’`‘}N™á'GÿÀ¿o~žWs/sKL±¸À=²Ty›gp0x†·ISã6ëÜá2/=îÈýãúÔïéu÷ñbŽCÝ6é2?ºSÒ­ŸÊ½FŠ:·¹‚Ëì¡Kžú²áLSÓæ-:äZĸî~Àlí˜bX•/)q•›2¥ÊàN {aWbk-ŒHÐä‰ÉŒ ?%«À2;„èKÿAY@Ó’Gá×ãú§xBï”k‘Ú‰m3º¥Ë¥Á],{J.PÖxÕAf(sÆyDÉ-à·Ô:ÀP6¡A†øE»è8f„.ËìŸ—SóœÜÇSù{rˆJÓ'Œ_»žLJ¼d’qE3ŽÐåçèI‰Œ§»Gň캼Ÿ·BVó4L9Õ·‰ ´KŽŠèâŠß%B$#WeÁϲ©6Fg.ß!zxÌÆ{³äŸêL½WOë`2Ã)#á,±C•,.†î·˜åˆ1>™ÓfÁmVtˆŸ±Žz-vJ§oêM›Ç4‰Ñažv÷0þÁ>3>’ýÓ|‰ÙvÐɘ«D83Àçaô Ö€±³ø1©6“HëÙ„Ã=VGÛ˜¦Ã¬}ÈY6Xªï:óLþ=;-^,|âè”^`ÇP4¤Ä¨eLØçXj2ûX‘)Kî.ç†[¤ºuûø‡câ6=;D¸7`¶_¢9¦a$ñ9²Í]ÖBê‰;Í>ÆÈ jbŒ î€A @ß ÂÔäBsƒ¡í§îO24ý„vF0µ8SÜf9¶‹S·™ žàš/_£ÝK2[$œ&ܰÆÿüK°Àr§8¦ÁÙÁ­@§éc²)N80æ˜1¶m–NK G6•h«ïRpËø##2'u¢fŸÕÄ6~{LjPgbÚ¬„Ԥę˜$·;$cm²±:þÐL­Îó7i[1‚ƒ1V°Åó±o‘«UÉ”ë¸óߤ ñ‚õ:ùN•f F× sÆ¿Iq|‚;°¹ºÏœ}€éºXÆTzªÃ,žj È'*dsbãáÚˆPð˜‚{ŠkäkHo°–Ùä¹±KùC|ê…¯±6x¤Fnþÿ!ò¿á`š60¦Û¾%æê%ò‡UÜE‹`xHÀ7RÍvŽK¡W&W­p”)’VLFtì0½V”J3ÍRè@hŒß³Ð9ÀíóâíÓ  ]“xºMjú à•Ç;¡\Ÿú=½”¼ À±Â%ÃÀ¡NJœ˜-Z†2byœö*iP R'­5T¯Ûº µ¿=Í’„JÅÈ2 )ݶJ†<'† (Ï™Ò÷©º—‹žÊI¬k…µQÊkhì eÞ«ÓlË÷ì [ÝëŸÚ¦Ô€ZZoVæaºf”ˆÑÑSÌ–Ä@M¦4¸Žayhå)®jxëQòœèœxKŒbj:PÓ¦4¥[p>$xZºW!ì-Â{,ÈÈ{ ‡¾N´x§zoŠX!+Ùm5©KÔÐË´{-Ž#üL±9Ö› ŸLÕ"âšj ì ’P‡BÏùß%Jß1™·é’ì¾×£ød„ž¡–ê!AênŠ$ :FŒ1~ú„ik ªK¶ê¤8qò„MU—Ú$!ÒE@Ç”§Ò ¯$ C²þEÂ"Äd#©¦¾ì ý_Â~‡+´cåXFÆÁ!F„‚ä9¡B–¶ãèb‘ŠätÊ »~Õ\V&Çóœ¤f覂Üä*O.Ýâ«æ§ˆ; 6Yf—¿§£.‡Ìq/¡Êgxd¬p.´ÁJh›c ø}Cµö©F2D"LA~nškdRUqcñ1¦8f–#¾÷¸@7‘Ž4µ ëZöÓóº¥l„Ÿî¹0>Æl¢³élSftYËO¾È?D^á [8¦ȲÉÖØÒT£µð¦Š¨¤Ç“S®þ»¾KŒñqqî‰L†‘ NS¢È y¶ «œeƒÿ<’Òڙ̈́¾âÇÎ~—wxše®îñnê:Wã7鈻{œñ±–Ùdƒ5&Øœ’'mjò ÌúJÌúÙa…6QFROCÚÄÈÏœžéÒ–.á’¯Èl¾„‹ÁgHSãjâ&÷¸ˆÃÊÌw& |ãÆUþ§gÿâF›i*dT>Üê`X#ÜK_d=}“CæUL¤:e›ñh›gCoq׺@„m;F>ËÙ]³ßây±JÄêKµ!¥²þ¾”TȆà˜<ϘžûA»Ü?¹ÿ“/¯#ÀPà ¨“Æïª\ôˆ iª:‚¤#5R÷té°drÚ3P ^ «MÇ´´F<ÄOÌép`*3Øt¤ ¦º¶“z´o1%.p&?#ŽÅwã—› uÒzS½æ†¦ŒYBœt%j6zÄhó€s$i‘Sd—¨^È"t…Ÿ GÓðrÜ>áô*BCòõ 9]À’w³)ѤGõ¬*Q$L—"ÇZ’š¥$ߥ-m“êÞ÷’!úä9‘nƒ ú™á”)ü‚Pu„â6ÇqšTÈI,WiùxÀó •®ªé‹5²Å‚q òBKÇÚz’ÂYY}ÄþN‚á ×#„Œ ZÄŒ6.ÏDGªe= \Á£†d¨²lî 0L% ÒÔpeƒ£|\*¾¬*¸kÉÏë“ï?CUH‡÷俲ºŠƒ-JÃÌqHp: n%R¨Ewš¡t¢23\äp]×^â®^Hªd🠹8wOô§S ¸0G„.¦ ]‡¤-Ë|€ÍXJYÒÌqHš:³²À>UÒÜf§ÌñeÞ6ŸÑÝÛç§Ù³Ìd‰]^™|™»öEj¤9e†³lð³l°F˜>׸!m<óª4ÁuÉRel¨¶·<Çœ–'»œã!‚´¤s{žÆ®–'N‹•Ú.µp“ÍàšÎžGèP’‡=’¯– $Fì– 0äE¾Î,0Æf ¦X1§QÞB\!Gp:à’ssþ´Ü%£HU4Ëóî*dÙ0ÎrÊ EJDiëGŽ2/¹_g×X¢)ÙØhÉŽz™ïè@ö€«lk³ãá·?ä,lRÔI»U^ž+3ã?åµo­±ð¼CÐPüú=l©MÍs">EÉŽNÈQÖüûùé+´óQ6Y£C”yº °ï,Ð6£|’oP¢È> Äi‘¦Æ»l²F†*>FŒw·ýñÈý{~©ñî@sÒ=cëPœÐLÑ.oï„ì•ö eê5 °d3–lr‚ö©“¢L–9ñYcBôèä€vŒeöYPºhÈfhû5Ul$1fC´èàM…¬t•«Îõ¾t‹»‚7)µÍÀòãcÄ.ËbÒ4¨“"B‡ŽÅfLGÆÍŽJ©ØX—IYdRºýÌ×öXœ×¶ YG’ÆŠi«DAûŠšÂˆ¨’!NKÞÓ3”ç¼ÁHžuR,³Í‹¨ü~¼ºÚ€œ¾½ßaƒ¤høI]±ìö 1 MT2ä)žR‘¿CIT“ ¸Ò}’Qjâ›_ö“ZvhX¶ßÎ~"ÁEß=5ýp£t ÝõˆoºbÞUþ§8ê-)˜Q5Õi‹±®OX_†x„”‰ÖG”¼ê}jˆà_Õ‚þ¹Ï}Ž¿ÿû¿gaaÏ|æ3<õÔSüîïþ.ŽãpöìY~ã7~ƒ{÷îñ'ò'X–Å/ÿò/óì³Ïê¯?Ç6Xd—eL–ØeazÀ±Uò‡‚{Ì;ÆÓÚl±îÜfçÿeïMc,Kï2ÏßYî¾ïqcŒÜ3++«*³ª\Æå2ÆÝ¶iÑÆC‹‘’4yÂy ¿;&B—»¢XŸçÇxØ´ÇÀ§@8…I™âäˆ7‚ªsV#X§BŽs ¢‡´ v+¤©¦GeŽÉãgÂLâ\¯ Eê<·0pùÏü;ÚĹê¾Ê¥Ù5B΀¤¨h¿Ê3Déò~çK Œ0#¤ý¯k¸|™g™aRäˆ5w›-c N1smþñŸÙf• 0“ç9 Fšk¼(îÛжÖn·ùáþaNžÀÏýÜϱ¼¼Ì¯üʯP«ÕH§ÓüüÏÿü;Òä*ä„qØcEZrP{¹N(F…¬¤én4f€B¦zÂÑ >Z$°™j1«úZŽ™ÃÏ„Äq-ºFŒ8m6ŒÓB;Âp•õ­Fš!!†b›ê¡BS:I晴PÌD$¸ …ò~Ž 6}3,øÕ°>œ½Q}Êl2rÀ«¬KFÐ-#NÈh?u€!# ¯é‹µÍ£æÕÉè,sƒvHS'I“,Ué’Ñz„Q:´‰“¥F¡N'Ê!§Í.Ëø˜’MŠ#ö8oh¦¹†ß‘læÈ>>GE§—…ééÝ]‡éI¼¬J\óÀ6JmcÉ”WöÉE]ŒñÑ"©#] \Ãnè[k[ûVèÃá÷½ï}|øÃfii‰?û³?ãòåË|âŸàgögÙÞÞæ7ó7ùÕ_ýU\×åSŸúW®\Á²,±QLu·‡^´f®&ñ4Ib˜*±%õU3£#ñ¼qQ‘I =5ì2jSÛ*é!ööïé©9»nÓpt\§Ëi3UbS½³Ô0ÆfŠß¥ª÷r=+" OJ•Þ7U%¥‡C™¼Æ=Nð0G"–h e®k€mL™J¢Ï SÜ¢ÛÖq{ÄÔ´‰ è!Àˆ1~æ(©Ý×´5™Ñð¥$©hFEDo)šzeq›R%×IQ§%žð 5BfŸš?ÍÊl줆ß?’Üd—¾Öѱ>g‚eN1¥cð3ÖéOƤ#BôɈÝÅóºÆèꀗ™À[$´0QœzÃr™š ¡¹–+Ñ4BýK=šïO4FøFÝ<Þˆ±"Ö¤ó™ÏðË¿üË\»v+W®è¯ñ/1!Ų³GȰg,QäHƒMƇ\åUR4h’ä—XdŸ5¶D¡]ç˜9–ØcŠE…ÊÌs¤À `Ì{äur¾ Q_—ÓÜå´»AÚPŸÝ°Zß¡žIé{u™]êd¸Ìšh™¥JÆ­Q4ޤ°té¹QjF\0"e4dÇ\çbûÍ„ê`Os—cqf¬²Íéáq»ÅzH­â<+Z™< ê`+•çH„±Cˆ!az:Œdˆb/œá.;¬°Ë2e z²'=‘ßÉKGËs,n"K/ú„p…péñ2FˆÒÅdÆ1 BÄôÉdAý›íxŒol¿È>EŽØd-B‚—í‹¿>„J~[a‡q"ôå í“¥ªE~Š5ààg¬;ü:iÙcºlÓ¹ùwqBß•%cÖ¸hÜ ÈU¶Ö*ÿ¦G¸ìK$Å!TbŽ»œ‘5C“.Q@ã¼xeŸ07VŒÎp—•Ù.œ¾÷álkão]ð ôK—.ñÆoððäóyúý>ï{ßû°,‹T*E£Ñ R©P(p]—F£Át:Õúÿù×)Â…»ä×£.,«´¬P@³|§Ø\ã+ìP'Å>K¼ÂUµ·¦Ä1>ÏG9Å=ãuå'^Êq›s,²G•_åöÌEf˜õÁÄ%I“-ªdÙfU¡N¨ YÝçˆ"-‚ 5Øf•]–uT_‰9þ"ðž¡ÇçÌïÕq¬6S¾Æ{èb‘}Z´™ò^^Ѐ‰W¸BŽ*mâÔIó_¬ñï#ÿAÕy ý›ÏóÝœ3nk|éË|”A¼$±MN¥#Ń —{É“$ÃuåMË%X䀓lr‹ó’7<¯}±¯ð$52<Îkô óÀ<Á_ñ¯ùîÀó¼b_e†Åù[\”ÿ¾MœgŸ²™ç–y^[#ô¸Ï:o£Ã3|•\äEÞCŸˆ‚z¸y¾lÂuªd9¢Hœ6Ëì`HÇógÁqÖ¸Í6«œã6§Sl^^â3÷?ñԳČîÛ`!'ä&mçM.Q¤D!¯[‘[©ŠåpL(/òWy…nðor‰=’´ÒæEžÂoóÍ=^ÙòêÎI~öüwFîÿØå÷ûyÿûßÏ×¾ö5>ó™Ïðã?þã$ |>…BjµÊææ&§O+îéÓ§¹ÿþ;ôͿؤÎ<Ó$uFuž¦xäˆôº¤r*Q̃zLeÀìe(„'ª@+AØ)7@s”˜£DÐQ1óÄh3G‰uh¬s`4¡o1…¹¡GŠºz€»u¥d7êL±‰ºª`4 WFÒª£ #­]‰ÑQÿÔ’ž; IDATXŸ¦©±È.†ˆ«ú$&-ânKÓÕ‚¦Ï °Ë²täouõ=¢D„î‘ -f¢[òQ¡À¿äh˜ÔÉèÜW“=<´n`ˆêXPƒ²DE{MÑ ´Äè ½ÕÇ‹ ¨Ô{’§¡ÿˆ¬ü’,a’”TÃ1Æø¦þ¶Ê²ÖégQ:Œ P%'ü>…ªm 'L~ÌÞäõ¯ ‰¿ÇÇÈòëõ‡Çè \¨kEèªó7qÄ£¬ˆZZMÅ}µ‚š °ä÷~ðJƒû}ŽomÁGR÷nܯ^½ÊÕ«Wét:üèþ(ï}ï{ét”b2™à÷û±m›étÊl6Ãï÷¿#¿9ó¡G9±:ã wéJ·¼Ï¢V‘*¿µE޲&÷xÈDê¤õM»Š´"#!þ¨ßC*Å¥C”©áPñ…&ÇäµÝÁQEVà <üâL|¤Kìb3åy@¡“4‰ÒážÔ~To”4ÁÇZ,ãcÌI6é‰ÈoHˆ9޵jwHc¦& i˜Ìи·›éÊXLE)N@ Þ„×Àq FŠ@-&ø´#FGWÛ~FÚ²æcÂ:÷ée›U™'6ëµUø„WðTÉ)›»Ç!óÂ¡Ï †Rý¶r€«E!Þ˜ÍÄ!h´±™•]¥¤…èÉCZ3”¢Y‰jÔ8«k„iâyλ·¾1érÿü*_ÿÚFòºåïˆâþ±+ ilíd2áÎ;ŒF#\×e2™àóùˆÅblmm©i·K±øÎ¬ù¹ï½Œ‹ã>¢´‰`DU$Gm3®mWM’Úÿ­@O*ÈËaðò#<Ñœšì©”Cô³H+ªHc]ÙÓï‹1¯ô8–C'ÕÝlm)¶ u{žëyóPûåGðB 2¤O˜ C™çtèS|ÔI³Ë²pçÕîù(8‡e©Aœ6}ÂøÓ!ÊKºCÂKóDx ö2ÒuË“0Z‚®á“.¾­)iÞ륫émIÙw«ôµ°¶{L{oÑ&NŒ °ŒêJ¾2Á&ŒÍH [*Juø¶qùLgYĤ…IѤDAõÀ%LŸ6qÖx øÜyéøU‡>’Î>A›†›flø5è&™Ÿ0é½ÞÅx\Cé <¢ž'Lœ>åîe¨ÕB‰}‚’Iß'¬›9 [+ûóW—È_ p=¹ø/o‡þÒK/aš&·oßfyy™~ðƒüÖoý~¿ŸZ­ÆÚÚþð‡ù½ßû=‚Á W®\Áç{K@¤"ùT-Ü$É)î1G‰V$›·/qwq­€,rH…<;¬Ð Å[¸bg$8¡G…<‚9$MƒmayyübUª˜>/”Áê3Ç> ÌqLL°¢cštÖAÑëºDYe›†(`ð׸!XÐÎr‡A=ò]`?᪘ FæÇØf•}Îs Ópp1éŽ9R4ÈSf uxöˆâç€4u¦‡h1ã÷ø2ï£L޳“ ëïRŠå¹Ç)¦ø4ò6ç8`ž9Ž¥8)rÈ<§Ø`…š$8d0}rTðS‚ 2ÇÎÒ%Êî ÔÆÅÙ£O˜MN‘§Ì2;úçÝe™*YÎp—[œÇ‘ᣗ[Ÿu˜g• ªd¹Ë‡÷©‘a›Ul¦<é¾B”KÆUCÁ_ .ç6øÒø n¿"v¥ÃEó¦$F¥õ£ËMVðË×ÍŒëlûWpäµ¾ÀMB ¸ÃYnsŽevq0¨‘%F‡4u&ØTÈIá2Õk‡êЧß~z­Vã7Þ òòË/ó ¿ð ¼öÚküå_þ%×®]ã¹çžã©§žâ÷ÿ÷yüñÇyá…øßøw| ~¡îÇ#æä&èÁfFÛŽS¢@—œ‘ƒ£Ç6+bSV$¯o‘Ð,M Ðp2Œh9 ö %½ÁEýßÕȰ˜.q˜§$B²sd©ê€¯PHSg‹U\ñ\7$rÔƒ¯ qDclfìû9¢H[ +^ÔKík$ !XÐS¿3¦í$صW›¤O„=’Ù‘¢&CÒ©hÞø¾/ÝñX’-½}°íL$èÊÏ‘¼~ÞsnžC)ȇïPôGé‰`Ìóÿ«Õ‚ ‚»õ‹n !& ^äi¦Xº)jfÄ!&ŽØý:âÔó¢ï³¤s6RìŒj±!„>CBÔÜ ¶1å ß×®i.×ß̳ryÀ [¨¼Lˆ}8É!( Ú€ +lÓ!F™œŽš1 OX4*FÕfÆ6«”Ü9.ר3–h<ìéüá,ÿä=‘Hðæ›oR,ùÁüA?ñ?ÁíÛ·ùÔ§>E$áG~äGxþùçq‡çž{îïÙOäà&ç 2¢À±ŽÔÅëV·Xc„Ÿ N²I•ŒH i““l±Æ©Èò”Ùä$C±Á©îZ±•=äK€Ëe‘ó>ïy"ÁÐ0·9ÉŒK\'Àˆ NSbŽ´TPM½ót^åÚ—ÊÝÏ„%öâ: ÈÕc{Œe›#+ #Zý’(5qž'z)LËt¬(ÛÆIÙ³;SÀÅ @™~8L7fqtÈÍÀE½ã£IŠ¤Ç©‡LZƒ:Äô<$È ;ÜöŸaÏ]f`„tåºÄ8AËŠPŒJ1ËH‚•ê~¼iF›¸«û˜èЛc ²& €Œ÷ ÉR¡G”[œWV?"¬²íLq “c£ q•]8\^Ød×HsûÕ…'³š­r™Gº ‹Ó!ì`lè¡AŠ*Y*äÝ‚•yáAh¢LAº?ßßlß úõÿ§úx î>cBßPÊP/‚o‚!AÖØÖøÃ–Ø£G˜{œÂ$G‘#-²KJþ­G¸È îqŠ-Ö8ÏM’4µ5Aq¢„ékj’W­î±Ä6«ø˜0Ï!AA§qnº‰åÌhù‘¬å=-V9`‘¡òÙctÄ6Öû¢˜XâV‡žb™]†ÙgA­ä ˜¬4i-% ú,²/zLï=õk’†L-|²w29ílà3§TÉb3%?­P³2:CºCŒ›œgž#’³&;Öª¼z!.rCXîj7x™7˜a±ÇÒõû˜à[¬aàjàÅ6k8æ·ˆÑåˆ"FÌQbŒ²U­ aúØLô!mI Dœ6—æ›l[y^yq‘ÂÓ&Oò2My¸—É¡'ûÑ!Q:¬°Ã÷®a°Å'ÝM Ó2__D{ ”ISçy –Ù•U¸_WîßÅý¯p8ÌG>ò‘ð¹ïû¾ï{Çç–——Y^^þ†_c—e²‚TJˆh_b+M\æì2Û¬1Œ²²‘EC'm åÿ©‘¡K Gw³žÅk@ˆc¦u*Y‹ÚXËXP äÊ*k&“›Ò³~F4ÄúåWú„h‘”äÆ>¦º»ÓVQÆvˆû¬¦¯×l®ŒÏvŠ 9á—[Ú¶ 9Jî}7¬ºQaÛ{æ& ê¤tª˜G™àÞÖZ8ºO ÅN)é!µõYfWû½=ûTRè½çʈ 'Ù$LŸ4 ŽÉcÉŠ­IB7œÞA¡§Ð¶Ôô³z  \=¢4IÑ#"1Ûc9¸ÁÍ Y2p 1”"|H‘’hQq‹(]\ z„‰­̬)‡_7™íðÎoÔî­¼ÜvC¯€ßb´u£çÈkãýF9"B‹îÃèÆ¿púÇäŒ0³KÉXÇÅ Àˆ>! ùC÷ S7Þ™Î0ÉP×êÎ*Y$‰µ¿h9s®ÞÁzæªBéñ”Ç,Þg‘ 9XèTE0ó:^/G]Y7º3'¨©èL$¤jSF&õFR•¿2" Iå*=¨F†™ibš*pÀ‹pT•P”j·hæ’R¥·8¹…gsq0~½—2$MCßälF½ ø\â“1¿ %ð:ø45Š”4öQYK¸âÅÊ ëb¨›pÖ#e×5q«K”CI¡Z0„=` ݓLjß|"7;¸Äð‹/V¥3•ÅÏ:"Hˆ>uÒò^ParÑ–lõØ´ËÔ´˜ x`HO|©jÄ5e\ð³a>ÉÞW]VŸ)Haè‚Ä©Lº>–Ó»8®ÉޱB…=#BÆRÝÑEꤰ™©Ð¿§© zJõa«ío&mí;×7¼–Ø%«íWo½7fôÜ(énl®*ö!KìëûÒb&ÜsC‹˜¢t(rÈ€0-&$…IÞ'Ì"ûÌyÊlpZ‡‚¨±ExÚgqzˆéSŒup3Á‡R“£„ÛfjØÚûî—m“yʺƒNÐ’)b´©XÇääþ_$ÈĨ…eÍT1Ú -ïé.G¾9fâi‘Ðð“æeŸ>"Àˆ4u‚ µÓbFLÃUÛL±°˜âH^†¤¢¿ˆž¬ªÒÏH,xÞZÓÃ`{Så¿n‹Ï}ž™ÐßfXÂůi}OŒ¶ìž}ì ¬¶ÊVlò€ÍñÂwÔ­¤ÒÙúD€Cý8&LL?§½Ü o+ïk£ÇÊ_Z¬rÛXâÕ×RØgÈP'kT)rÈPžyªø˜è(oZêM?¼†!FCVDÞô5F‡“l££˜ÿ_ÙÖÌwãæüžñó„œn|¯ñ8Ëî.Ï5¾L‚6‹³}Îs‹íþ׋ܿ3,þ—ÑŸ0ÁÇK„ðCüï,pÀw§U|L©åçY2÷8¦À “*f0È@=PÌ(œfÍØ¢>ͰëSJZ×0¨FRz:Ð %èZ KHqlæÙ­pƒ‹òŽXðÊž:«÷•EŽt”Çê…Æ¨t( Kâ)¤)¥ T}YXÔ(ÝCæÙ0N“ E]Dp'ó4{¯úH_)rß\§J–VXç>D’ÛÖ9XÐŽ¯šw„ÐÕ ¥ã`·YåØf…<¤˜çî?í@ÿ&®¿ø‹¿à _ø¹\ŽápÈ'?ùI Ãø¶=Ð#ôS|Ž#*ädœªîÛÐ`¨´ ®"+6ŒFQÔé|^—7q} e9õ"’S2åòƾ^Ì¥GV;çÞæqBu§®o6%gVH¤ªŠÒé Â@\81:’<¨òúÀ N[çh{g’ÁÙÓv˘9Ä#æIÒdqºOÀ1ÁfHˆ UaÁGå¨S¶­ ÊÈSÖ÷²ÅLO¿ï’Ö¹ûZ’ü•Q£££mÕ³s"™&²|À®h ²T‰Ð“ƒ:¸óF™=À/Ç=R§ðÍÿôOÿ”ëׯ …ˆF£üÌÏüÌ?xf¼+ú‹tˆSà˜~ÚÄØŽ.Q—ÝÖEúD(r(1u!^ç1m(Qäð1&#ð€~&Ì.Kú¡¾Ë²÷Ä…ªÆÎŠØä…'DèI*‘Ê·ÝeYšæ9¤O˜]s G¢ô”°,É=ßIél)òŠy… y"tb‡UF4CºB›ŽW‡G¨èC¥ =4æé‡C’ÑìèJ…Cí¹§Øl$OÒ0’zMqÀ‚>àfXÌ “V,NÇÓB¶]–ÈSÑâµ#æˆÊ>Ç‹!UP5”iã§Èeʾu2Ú7{Sú&lâÈ7§“¼›yƒÓ´HÐ+ÐmÎÑîô®r=ëŽ ÛpñKwH‘´(ü)*ácèm3¡éZÞs—emc™âc‡U,ÎÍípÏçîK1¬§¯2†„P6ó´²qòw¯“f‡M ä>' /:Ȉ29±Iå4L$Büáôo’·¹¹É‡>ô!yä~é—~ ×u¿­t¥BW¨Ñ¨Ûe$²ÒƒDˆÛm´‰=ÒÔ¹Î#òr*ÈÐ[Ú2ù¨Û)ÎL7ø¼ý"tŲe“ç˜9·D´×%Sl VG»L>ƆŸàpHtÚcÎW"B—Œ°LæÜ63eh3T9D©·ÓŽ ^tD@ïhã´‰Ž{ì®¶¤Fè’¥FaTÆõ¹Äè*†’rGÝ1«ƒƒ¥Å©‹`ÊÊÁó ç)‹‡¿MŒŽVî‡é‘¦!—¾îäÕ}#®I€‘¶¦e©Ò—t7upÇÉPÇÏXûäU÷¬Šb‰“=¼!î#ciêݵú¹Z¨ëýÌ€dÉ7eLß ¢tÄy2£.Ø[/ EñmZ$鑱· ‘£Ö²¬ZÛÄOµyaï{¯ŽX¿$ftµß_íîGz-¬0{4H’§B–*EŽä9¤;Aym”È/ù°óó‡Åݹs‡ïÿþï'‘Hð»¿û»ÿ|úmγƄ÷ò% lK•ãaþŽ(2ÆÏù[Lnr¿ãYÞËWÈRe““|ð]|…gø*CBt£Qnð'xÀ=¢Üå 'x@Bl³ÊGù="˜8Üg*Z$Äû\ÂfÊ]NkX“$÷u,f\å&øØb•IæE)°GÜ\`äóKd鈗xŠÇ<Âu,¦¼ÌSl³*Pµ›bó]|…™WÕ¯ëà&iêœbƒ ~^âIÎq‡óî-^6žd‹5ªdÉQ•.=ͧ9Å&.7¸È+\!)c¼©$*]â R&Ï>‹Äèp›"HI3Á殉'Å—ìgEÄá w ˆíp‹ä)ãgL‘#îršeöøþo^+>Η­'øüß]æCÏÞ"d ¨‘a3¿ŽOnê$M69ÉûùEŽ0b‹Uj¤¹ÈM2Ôø/îÇØ5–unˆ&â[³C?¾þ¶¼ç=ïáÓŸþ4±XŒG}ôÛú0Wº›#L"Ì\‹ž¡ -êv ŒFúÁëÁO<-„‡õ²Ë'–B-ÏlÕí² (WY¹œcÜž©ÇâA†ø§RV‹„¯…mÍ[¶ŽÌì!Ä€!B“!1³ƒmLY~ÉØ64´ÄÏXêž„ñ¢J ÃeŠ¿Œè#ôÈRS€3HÐj&ø.>¦¤Ü:GÎ<]+¢í5¶t¡à©Û \Â55Ÿ|‰=­X7%–5G™¬ÜxM͈€Øcž–G>ç‰`ãÁÒ»zƒ"%m]›b£CŽ*!úTÞ&˜ó4Kì±À šDéI"\’!E\cGãb=AbŠ3,–ÙÓßË{}UÞ}“ æ9ÄçN*0ËÛ©g¨ág‚É¥ ]J/»„ž´‰mM‹Óæœ{›¾Ö(hK²"VÙÒú 9yï p°2"F—ÔÃZ]§ÿo¢¸-àú;l1Ï=÷Ÿþô§ …B<ûì³ßð™ñ®è="싊ثôÚÄØfƒˆÐã&´á,w¸Ï:]¢TÈ“¡J™7P{ö…Y GÇ* ƒÅgÄæ2&E“¬K"QRÆ)>ÚÄØeE„Zy™xÇÞ#±xÇ)“×UãËÌqLcbtØg‘Q¤Yc‹ 9^ç1&Ø(ã`rŸ´HêˆÀCŠK·|‚Œ\…fà€ n8Ìå%f²ÓQ¤v¸ÉJ#í½É­äns––$̤$b¯$M:ÄØrרw¹hÝ KU°° ôˆ2G‰–‘ ÄU²z¹ È#ŠR$IK& „ágÄ/ò4‹ìQ!Ç[lpZ[…æ(é°‹c d©2"À'¸Ã†y„Üå,׸„ÅŒ'xU“ú‹Üâ¼Ç~§ÕCÀPÝ¥™ãÞÃèßp…¶ €°Çÿøÿ˜_ûµ_caaŸüÉŸ¤V«ý+×·ÓU%G—Ô¬EÛŠ4FìÉ^;`ŒhšIf˜beŒhaì2;ÄdÄ="@™~&Z´äˆèVôì+Ф™%UÜò9JŠHç_|€2¦jeez¨O8`†IËM’s+Ú&:um†"ÚUÉ ë!IŒŽ˦©«çZ@©±=”jˆ«lq‹ ÔýN[$iÐ'L—¨drÉÌê´œŽÏЈR€"G£¥+ãyWÓê¢tYfOGÒz±©Yj˜Ìè»QæÜ#fRp¯’,²Çó$h²ÊŽPé\Æ2ë¡àƒ¡‚¸ºDYqv”ÍΜH·[¥NFSü\˜RäH§n.¸DÝ.53C˜yʬζ™X>­7Pb/Ux9¤AšCæµÍoH¤èIš,O÷©ØJ†ÚŸ«G¯ù.óVqFÍ q÷kÎ?£ÕÞYuyø&‡"3Ëyç–BMªÛ;²fpIЦB–¾¬2ú„ˆPyø©Þ7¼ÖäÃ~ €?üÃ?äw~çwðûýüôOÿ4ÿøÇ‰Çãïþ®¬bS ‰Èþ±2)˜‚oxþÍ(]=úò ÿ1:Déê?D¤ÙcžC­÷hIQº„ékñ„y˜¢ŽƒE˜¶„…P6¯%BLÐ"KU'8Eéb1eû´‰“¤É ;L±E€¡¯ÞJÝt*æ4ESWzi“¨úQÁd¢t±œ™T»ÃwŒêR4dLÖe‘}ñç+P…Ñ©Ã6T¨@¼×a’TAU2¨›ˆÐÃ0\LË¡@‰U=TQ¤„ IDATØfUÁSœsVI» Ô.p@„>hœæÛÇæjÍ Ösãb²Ì. RÚÓ£-c´±xdGèˆ'7I‹9J:ÒR©ä»2.S¾d—©¢ +d™a“¤É{Œ ?EJ2cº—/Sÿb—ÜsbÃfÐë b~{– -ä³z™,¡º§¨ó€u’´ÞµìêÕ«|ö³Ÿ%ŸÏFI$ßÖz“$}¤ õÞj'"3ƒNXåƒÜC#D”X§DéÉúG±ºn˜²‘%çV° Q¥Ó’õÐ*Kî>¦åhË÷.S*®Z ö|abN–×ûw%‹Pô•86òb§s˜£¤1¡!2OPÞëSÝm³Jœ6É„iÀÖЯØì&0Q¶rÔd÷¬¬TŠV×°Sô1¯V`(ÊÞ–»Æ¶±JcÉ®PˆÓ¬‘§Â}N²Ï’†lyö,n‰‘4š4Œ¤<Ûâ2/|Œ1’b¹Ï’覺Y`ßXÄfªÁ8 3…‹¡'%#TÈräIMNð€楣¶™ãH} Œ‘Ιhqà”I¤ÙvV9gÞÖa5m’ñ³Ç¦ëpÂxÀ?Qº\÷=¢­ƒÇ´׳zþúåü.>7—¿šaþõ|>`#äÒ"¡¨¦‚[Mñ)òžY‘=ºjÒzDpdíãÅþ¾[×SO=Åoÿöo …(‹„Ãáž]©&-ñFªÑ…òë)ü¨Rë[²gqunošº"ÔÁ¬”†سաì©;³TYbOòMÆøˤ¬UMJŠ[9À˜¾d{± ­ÐŒÈXÈ«€½QpŒŽ(V}º[_f—€h_=!žÉLºƒœ>ì½d£ 5²T‰ÉˆL©s ü¢Ì\à€stˆé1Ï[W›¢ti"0cÇÆÌMK4í$!†ôˆ2&À*[kÐ#¢_ûMŒDÈ7,k ÓpèëŽÍŒ uÚÄÈQ!GUç›÷ä™]€="BÜ IS²ªcúïâ!18”XÅ„êëíªIŒÛ Ì q»M–*ÇäõUQ±Bzà%J©ˆH¥uˆ¤f„/X~Å¥s)F–ŠÀbÞ²œx‡—ª‘âÂcUÛLé'O™Ä»x âŸ`ŸñxÌÂÂÂ;H‹ßŽ—ÅLʼnZ)úÂS ^MÒØæ”:)FKö¾!áC„ìp•”70ƒØÌh)lU425 «›I¿¡ ‰–‘`dèJÏ<ò‰PÊ rjRä0£©Æ$Mú†*t=ý m4Äf6eþÇÝ–_ÖÇÕ Ó§o†[Ê'ïù™Pb޶Œ±Š„íV£_ï³Éû‚ÐQE½¢ÁyLå¬Ì,=ú®’²zfS= Dœ.¦ˆ”Ñêò±ëÇ6¦Z— E…œþ~BúÀŒÒ#l 42¶ »ò6qâáwú5Á¦CTüü ù”7`5•n*®†ž¼GÒÔh Í& ÉDs† yò„½cAÞz¢À€°’… íq„Ò«3V¯¨ã°CL¯PÊä°Þ¦ä÷ôð–ï?L_"b}úïýn\?öc?ÆÞÞ³ÙŒÅÅElÛþç9З{OÂh‘6é»^H=ÃéÑ&9§FÇŒ35ÔÍr®w‡Ðt@-žÆ°].NnÑ6ãä‡UÂFŸÔ¤ÉÓ“WhúTÂ9Rí&†7¨G2ìG8džµéž¿ÏpàRå†ép+rkârzï\„ø¤ÃÚænÄ`Ï·Hß q²yŸ¹m¦1›˜Ùãjÿëø1¾èˆYÄâ|ï§«›ÜÍŸb095ºO¸?P¢¤`ŠX¯ÃBï€Rd3æÐEYœìS33ìGYl°ÔÝç‰ÔëÔ£)fC³J"Üáƒ[_"àŒh ÞXy„SÆ}¢£.óã#×Àhºœ?ºC)U¤žO²\á™ÙKؾ)¹Í—ú\yúëSf~e°9{w»>ã‰Ç_çfôNßdi¼G`0áöÂiÇdqx€ás©[iJåÆC›¯¾YTœeY¬¬¬ðK]g¸Ë÷˜Š‘Ó»äevɸur g¹Ë´H0GIg¤hÈnÓGš‘逦­•y­XâYª B­Ø¨KRŠùy‰ô|eêÁþñXííe×í…©„]%þê›ĄRcS`žC™'N[VNjEš¢AdÒ#ì1ÏžüEéÒ!ª"NÝ& Ñ{x‘ÂEޏ0»Å¡³ÀÌo½ ÆäÓzevi§Lž"GMx›?ÝÄ嘂n˜R"n‹ÐcÑÆ$铽ÊH8ìJNìJ×½g,a3•P¥®ÏP#J—x IS€"Åå¨P¢@šº×mêdHÐb@W8ê+ì`Ià}_•šw¨?·Ë2.’4T´62ÔDôXÑhm¼µF”®nX<ÇÑ%ñÜgY[ªq’aãõ«—ä²>´Õ^¼Aˆc¡{zSÎ(]]|yÚ<‡ùÎÿ#ÏŒ·vè¶m³¶¶öˆKß…ëAp·è’(®ª$!·E€ûF‘0Ž$ˆåvò4mâÚÄ?xB¢H D:Á0¥À’wÙö¯pÓž)2T1™r7~JWÞ}ÂlfO’¦Nˆ²I„'L1õØËCžVÉò ²†ƒ)€‹×CêèÀ,5^ ^ÆfB23îÏ ¥ZkqÈåX–‰xM'ø8ʨw¶¹*¼S|úµàcžCÉŸWãCŸ¤Ýu‰RàXå•»S\ ÆØ1–±pbýš$B—–?NÄP¤¿MNŠÀa™=Í8Á¦é¤±¨±ï[äÀXÀ'^b^uvv—•È/„ÞÇ—_Ìsõiån ½ç\aG’ýRødì›uYÊË|SݬDU|ë;ôï\Oå>,ÓŽXÄ'Lßæ˳=lKui«N‘#ÒÓ:g컸RÔ»ÌË:§ìæ91Ýb<óÓ ™wŽh»1f¦M‘#zN”‰å#ì ˆWz侦ãPì–qÂ6ÛϬo’¯TY-n3 H†º**Ý.'Ü-0!A“Ä´ClÖah‰[fŽÉÈ à˜–R‰ª¼J–EwŸ…æKá}Z$Xqv˜™ ›|–;¬w·˜àc ’¥ª™ä –b²Ä.Y§FÝLqŸu êaYáy|x•ß¾£lY3¥©1‘õg÷êÍÒ[Þ¼L±sŽõ¸~…æ(q›s¥ûïÉ!­2ÌMÆ’hf3å w™`s‚XL9bžcò´ˆ“–TL•¼Y¡È¢´HŠ(­ ?ÇmÚRìd©’¦¦yÞúÌÃtßå ~y¦Ÿå®$ÕùIÂ'öÝ #V&»,ؼdgO ¹·WàÆK2OúI =Ѱ™`(á0QòÏX`Ÿ"%–Ü=–Ý]¶$¿âáôÑ·îì}7nNY¢CŒVHM ¾cZÄ1 —:*ä˜ ¹h““ÌsÄ=Nél[@ó\ç˹î³®+>¯bÜd--LS¢ ?5²œàXÍj”(Ò‘¶)QÂ'¸ÉE&Øœaƒ\Ô£¹ 5ä>ëøduÑTá u2<à63ÊòÆLÒb‘}=~àÈ(4F:ÒÑÇ„®ãBè6B”Éc3a‚_¸ëMîp– écjd¸ÃYñuYbk’ám\‰&‹“6|gÄJ’• ô"mIêe““TÉbHJØô{,13,bV›¹è÷uÊä8d“°Ù—ÈÔœ&O™™¨Þ= •·“lbŸEJ̱Í*A†¼É%˜a¨ŒyE\šèô¥#ñ§hÐ#Â6JØqUQ5²´H耋6eÁeS`Ï|‹AÐ%‚+BÄ{œb…6¬S䃖uêv–/½p’þ{#œfƒ~^áªØà&>áдZ(Õ#Âëö£âv~˜ý;ì×Ê•µ+L©a‹€5¢e&$ÅKÙº"NO…<uŠçHRbÀUÖ¥ÙãI;0!é65H(F‡>]Æ€ 1À²g$Ý&C‚ø“W¨†Ò@sààŸYà€Ž#ëVô÷ŒjDw:¦e‚³!ø\ L×}‹ÝÓM±µ½4/n˜œ¡2¢tÈsÌÂð€ÙÄ–!¾M„®†.ÅÜ.~wBBã®|ÌQ¢E‚%J©‘E¾ÂâÎsÈ °“Ñ´椦 eˆâŹ«Ò1uÔÔKHtM³íáV \¹§Â±OÒ#"\e3|»°0A“±Äe{‡±²çE èhÏ¿)ì(]ÖØ¢Aš›\÷L¹Äi¨Ó=îp†ì¶}Œ‰KÇ®š§‰¶Ûî”0=´›]gi)À×9Ëñ+cN>é×"¿‚Ä+›òóx¹ÈŠa¸ZÓðpúä_v‡>ÁÏ{,³«»å1–ØkI2y.J¤åóQd½#+1Çynr† jd˜Flá0+…³GR Ý®„ Xg“ ~­†ÌRÑHUÈé¬õ%öi“ÐÅÞ.jHcû'„4´Í*1Á#z¢˜0}N³!j~ ¸Ì›:Bñ˜9Ê„è Š2ƒc%Ù+I“6qnr—9J2* ©ì€Žä7WÈRäP¥)u›”ó9ŠÖ!§Ø`&â»"Gd¨Q—Ä5%F;1`Ž2y>À4dÆÀe6³ñÛŠ÷¾Àc|0OŒëî}ÊF^ã5OqO“ÕÆø9ËHÜcI+ÈÃÂâÓ—nC¥f…pž[Äi³Ë2C¬±¥óê»VT$&¬³IVöb{,½ÍûjrÈ<j<ÅKÿO{omW]ßý¿öpæsÏpï=çÎs曄ÌHŸßSŠˆ>m«V]u¨K…â€%®R´Ê²h—Ë§Šø£”A„›ùæÎã¹Ã™çsöÞÏßïÞʲ­…\úÔ–½V+¬äîœ}öwú|Þï×[Úð:™¡ƒfXͰ˜ÂU‹uœ¦Ó¨*ë8ýlˆm;sô+‹,©1–h"@‘~F‰æ k1Ðé`ƬÖËÞ9› E8¯Ð_ÞuJ_GYi&èÏ3¡õˆÃ€ÖãØÆ|ž tѤ-1̇¦aˆÀ%%.—E‡aeY}ÂÉ|PÀP4‰áSФc!Ò.‘«žP[8íYØÒÇ,mô¸æXhjbAn,3Juf”‚–ð°,…ºWÃgUP0©).LMu6¸M,9%ìùnÚ§LawU޲ö¦‰Hžø}7“,Ó$-cóÌÒNJâbmò›W²õEXŽÈ†ØØ[¯S'ÎYB´3+ÛaaÄ%5Á /×ZÈI]A]&(Úè_I[”épŒ::^ÊÌÓ†îH«xë_Åív*·Š ê °£ë4gôÎ páÎI,é÷¶ã¶½Ž¨¶â´»”)!ê|Ù-·ê`Îø¼ ¿ÁxŒ,)ãÅOVæ0 %ÍGMZÖp–ˬކ©+Ž"K˜~ thb™¤‰%„&‰nz'D5Zë Úó¼$‰h.0Ø?´Š;½R$d&M‘†´Ýµ3ã(ô›Y¢¿þ<ð^Æ›ÿZ:Ë+>¡[KÐ)é>\Šà“GeÆv–|Õq´X Ì)írÑ\fŒ^šXÆGI|×V·R£ƒÀde©('f×G‘VšŠ©¨T¤Õi•5B^õ3K+ň£öËÜn;ÆK™V¤­)-B·!&û²ê¥Ž&,oø¥²ZÀfÄ Õ‡‚‰bZd9˜j;hJÅÀã+“ôFœˆÓÀ"M”5Ç”"Z{¢rGÁrlfvÌl MÒó$ïøø3„eÒd?%–¥Â\Û ”(“’`;FÅd–vétÇ%š)É –ØPåH²‰ nò4 `’ ÕÛÈyÖ$JŠEšÉɶ¢Em'oÚÕ¨<äñ3O­ÌSÂG‚8*@ã•©hYhq*®n*4’’1ÎUçÔ?N¯tY‰¤º9ÚˆfÆê ¤øœXW»—¯bi«ã5Ë<öôf|;‚ xź‘ ÅiKˆ¬DÞÆd ÜË]Ðë+zBUÂYÖæÏá1*åÆè'f-±-qUú§ÛšdGù“t;©JWV~æøÝT¹’Gif‰1úpS¥³8ãÜ*xØnqÙÒÓääîTÅ`“$ha‘ dÙ là$ŒS´ÉÌäQz'@ž¤LRê-OrañuYBî°fص8$|’7»'ÿŒÄ' ù•Ù'¸ØxƱ¦u"Bgfèà[1«Ûj/0B¿ˆyý“ËNœâóìd8›9ƆÜiZ™§›I:GgÙ=ù¼ƒW\Í9.ãç(PÁ‹e*lN¾ˆg®Æ)Ö“#ÈçÈæ8¸³>ÃÍø)²Å<ÊÕæƒŒÑÇ tW¦¹$ó,¡jžvC,ÀûÙËak—eÁšê9\ÔXÍ0¯Ï?ÁÅ…geUÄK«‘àÂÒó”ðó,»Y¦‰‹øÝLc‘f¹²þ8qc zÈäbžáëiFà$ƒ¸©ÒÃ8 Ä…ÀȨrå¹§èÊO³Ã¢`9Ì6¦éàJe3Ç„}‘{+OKQ?K4&ÍNž',C"¹4¡qqzkf™€UäºæŸìÕ¹÷àL›\ÀQÖšg¥ÝDT”uò¢{ê“lX~™,w§‡þïýzíú×® ±´YšŒÓ à±Û¹Zc‰6mŽ#l%ƒˆQ°(á%C„:ÈùD>Ï)Ö“!BV ‘o rˆ+˜äHp3gXG /YÂòœVÖ1 âòT—þñw?5Ec’RD™¥ wk•MÅŒÒÏ ¤‰PÁÍ~ö -r€KIJ¥Ž¥©œaìÝÅYÃY†ØNž †2]þ)–ÂMLÓ‰›QÒLÑåôýÝTÈë޳‘Ãlã¤zœFDÿñ k){<´yfè.Mó´ç"^d“èi)ž ï ¨øIeœŠAÑ <ÂVÁÐæ}-åޱžá"4 æi¥¨8ÊLÒÅI6°D3-ŠÈÌÓÊ~öÒÇÓt2M'i-¦¾Œ»zÈ(a›5š‰i‹ ±ƒ™ Ÿ'À´§SB†¥ú¸‰Ÿãæƒô3JK$AÓ†$'dŽ6Ž*PTü´ÄsÄ”ûеë4Õä\LœR4’ E–Þ5ʺ—B|ŒÍ‹¯dA­äþr¯1¥ Í4ªI‰;˜ ‡+N¯{’iÚɨ"xÖh㸶Qœä¡¯È§—PåéµY–ÔfǦh&¼dÔ0ýú8‹’´ )u¦›[™SÚdZ›—… (·çhp”ßUÅŬÒ.ÑÓNzÖÓB‚ z¨àÆ¥ÔY¢ÙYTíœô‚ÌëŠ{œ°‹)º˜¦%ÚôºV—ý_a³«à&GHä(âDk‡6Õ$èÄnÚ‹|Ѝ« _¾Wö¼=õ*q}ž¬lµPS]²g‘‹d@”íÝNÒ(-z†Œ_U wÜ3ó´Ê š,2ÎßÉAšµ%êh2ÛÛ IDATG„-5’$BÚAÃ.£Š›V$i$Hžifiw²ÐËò3š¨4uBMBd(ã]‚´1G\[âÖ4n‰øÎ#ÈkÂC.ж6u/Æ"M,3C‡@ðJu½ Ç*$D†’„ÓèÔ¯/ã 8‚jKÒK2(JÇ`N¶C»™$BšÎ1N/%|DepM’F:™’¶B“.uжn„+ȉçèÙ”¹!4)Œ6%~·™%"’¨÷ßJWÂO;iÉà^%a¿ôu2õ×ÎïA3 DÎɾµÅ‹4£"Q¨™%Yfw1K»C3å.o / °„$h¡“긜ݤ<Š2ãô²šai›ˆ9å/eR© àPålõj“„õ›¨ÌÓÆzN;‚[(f#k¸ $CÄXtègs„d   ¢ÍÑJ ?a2x¤:ÝV›.ÑD¹ê¥ û©h¢”–½û*nÖs :'dÊê¦C™qÈT" Â DŽFR¢ëäv5Ó¸Õª#–KÌgEí‚8ÎFY^ó°šsÎNÙV»(cÑù½ÐX Ð>IÛŸ[§N¿ãob™y¥SQ¯Mv¬Å_É]J4hQžã¿‘¤SÂLÔ㲌Vrè¤i7æ)6ûRÙ —‹öNËÉ/$'êÌâ¦âð^;¡¿úW:&~«èˆØì2n<Š%D£V’³Êèb¢²rd!æ²OKÄIÌJQÒ5SÌ«­ø(bh*,;}n%Ü2iÌ´T°{Ü'¯AòŽÞÇDÁE”6sŽ€RÀ¥ˆÒüÍŽ=T ¨'ÆÔC]©Òʼ3>ˆfš܊ЂˆOÓ®ÙXhC–§Å³íB;ó!JJ–§ë^lr¦ˆŠ—²t¨NIZô s":Kˆ$ÐŒ`›k4±,õsT%ε.•øÒ(à`§m ݃OIû™Â΢`èQ&œƒ›&Õ趈ÍGIfŽ›š[´ÊŽíµ s"Z[ôü#d:a-ª¬bˆC„F;3Î\'!ðÓV… Dä3nb™(i‡ùa‡ë4µ•X¶š˜øE‰¾‹Ë¸©’sª—Štd$‰¼ì9ã·À¶f¡0E7gYK–{8 åÝŽ¼çõŽ·üBžc?—²,3Æ7rœ$Q°GDkæÇh Ç}ÔdXI9~Îå4³ˆŠI/gCª mqVŠ(gXËÍNÔâ,ía)¢\Æ“\ÀQö³—yZ‰³Àöó .&‹P¸®ç4Oq)s´‘¤‘+yŒi:y«if‰ yŽ2^Žr^ÊÌÐ…"J†ÄiežõœÂc‰/o”~,¹ùƒ\åëQ1ÙÅAªäx– ‰È ’>Æx–Ýd ÑéŸgsöE*i¯§Š‡í 1J??à¼Tèeœˆ’â¨âf3ÇP`˜5Œ!Lvó,j 7勒¨ø¤ð£œÀV*Y‚䉕–i .0O+$)Jž±xžËN)ÙCù%ßOÓÉM³BÔL‘QC”$©.Î9H&@ž+G\Y #E. äèdŠ1úP€‹x);å®F’Äåg®à‘1‘‹Îwi—ÚlZ–Ož • º«FЗžÕŒ lI"U‘€´ xÆ-„Èà¦B7“LÒE˜,}æÑrŠ0iò/j‘È $L–ÞægúH?[`ó®%ÚÔ92„tfÄJ¿vBÿOºª¸ S å¢(»ÅTÇÅ¢c0{ŠåP?9%D–22L¤U•YÂÇ0«1Å©¥ˆÊI^ÅP„赓i¼FC$×pVê3‚bœ*)²QM,ãÅ@eª¸9«¬!Æ pHÙÁ#œfSÍÓeÅpŠNÊøœJS %Gô– PG“1A—›RºˆêI ¢‘' 7:ŒÑ‡ª˜, ,¤‚¬Xfœ^'°…~Š$‰2Â*Ê2f©›IgÎIH—XÔ‚Riãuð¨^JLÓEóV+q%áTìƒÂ-Ź"X«9f芖Œ#&œ¡* ²õ—Gd+(0€ƒëŒfi“ õZXÀ/R‹i:IXqÚ”yç_þÚ8}tÉÔGÕñç‹ N‰&’œcUÜÎÁ2L(à—±hOÒÍfŽ ÐYJ²]º@œ>F‰v¥8SkeèP/ÛE¤l³è¸©0-«(/_÷_xAŸUÚÑñ8‘~ Zð¨e©ÔeDdùŠ,^·#@CîJO²ÁÙ6’¤è÷3M'5t´`ɘ(Ñü2úS“»Bчït’½Æ9Æf ’þ´–ÓÌÐÉ16£`ÑÆ0Äv,‰¾q3.yÊ]L±žSTu$2„FØÝF™“xÚQúhgŽ1úN©#@ƒ;É“û{éÝ+Ji^v|ê¤äþßó*•J<ðÀ”J%®½öZt]ç¾ûµ•7¼á ¨ªÊ¹sçøÙÏ~ÆÞ½{Y¿~ýKþ~;³¨2 M˜¸t4’DµL…<-MóDÈ0FR²‚$Fàpì¾zŒ%IôHq]A¨¯YÀ_.a6¨ÄXÀC…fhfI¼›µ:–ª¢b8­bÓ"K”­Ö<ËJ“h12ãÄ< ︆2K4c‘‚ÏnX:2ÄYpÊͺ¬5VS4éÉ—ðÙ ™4¶Ö8KÆ áu•œñU–ï|€\°„M­œ<¥‚¯¬ZˆÀUÆ}Š8j7Z(Èc‹—4QBä(ãs2.*²Ì.<êͲ/m9v>[nW0íèk‘ÉQ!6Ê"ˆssr#fâ•UJ hf ¿ŒGö~éT9‡W¶2mx˜§moÔ…KÈd½œk 4ޱÙi¿fÌ0¦ª9ŸÅDsôvÔ³>'Ht>™SQÃOQnâŠt)S¸©RïÑÉ«¦j¸.\1™è÷ÿjAÿWÁ2û÷ïç›ßü&¿ó;¿C<ç…^àë_ÿ:»wïæÖ[o%›ÍòÅ/~‘b±ˆ¢(ÜyçXÖ/oÜ^›@E0ÛEäðBFHgAæX ¿K2º™p(pnªD%]LÐ…Ô!,b­ÌÑËë8M”]L«Ïµ’LÓÉ}äh …=LHµxEJ8TÇþbgœdÿÛ”*ÑFèg”ò ÷~ùØd²fEŸºVqÊ=a2ÎN²ŽN—ôX IŽ.¦0M8 R4²Lùâ¶ C™¦16qœUœs@öî߆iø¾ZŽh9M —„jˆ>{ž ó9¢¤_¼_¬Eâ”$üb9L0+vóvŸ(GÌg 9üÑ©3Àµ1z” ] …— Zœüà G1!å$*yäwÚÉ4~ X(rP×¥PÒ,:Íi|f‘vf0Í"~ü5ñ|ì^º=ÉÚÿµß­°tV4’"L†Væ (yÙKIH# ’¶·ANÐÄ2 ‚Ëßh²ôtO%OLYx…%÷ï×ÃþwµÊG>òZ[[¹ä’KøÈG>B?'Ožäûßÿ>Ùl–›o¾™={öð¹Ï}ŽÙÙÙ_ë¡É£š&Í2âNT|ª²¼-¾c/eÉE`¢yBÅœCxl!! ®Y‚–Ð)8牢AØJS­¹qÕKø)$GO~ŠfcYœò*îr•6æK5Ýjk­'(^–ŒmÆíµ9YêÕ(ÔÆ‚¬'Ôhb™1Ž”šPu×2Ž€­I¶Cþ e¯Wž~sô3êhoj–ˆídZ.z¦–)i~™—P—ÊsKBW*xF¯• K›™à+Ž^Hü¡¬ïeÜ™ã\²”b9M&ØÕic–NYÑ´™îvìª8ʈEÊU+á’¥ì_"•! ê>Ê´2G˜, äœï£…y¹Näi¶–Ð0é`Møö™¥™EšY’ê‰M,Ój&ð×2rºÛšÀ'7z-ÌÓiMËfE Ÿ´š •|šFˆ“ ÉZ¦•yÚ˜u°Ú&ŠcÝ ‘Å-«›âcìZu–™ƒ*FM€u^YÉýßúU;ÿúøC"‘ßüæ7¹øâ‹9}ú4×^{-›6m¢££ƒ‰‰ 8À~ð Ãàío;µZ ·[œ¾ŸÝoгZìJOô€3DˆJqVŠ(]L³L#YÂÌÑŽ)®:ºäu/ÑΜ° ¸ý²0M„3¬•jN‘j”}þÊÖÍD¼ #½«‹Yès&;Î-ûê)"2©KPlᕽ}[ae+HdìÖ²@Œôþ£Ä®d™&I­ÏÒ ûÂü¬å,³´“¤‰1ziõ,PÄOœ&šãaÕ¨S$€Oö¤Ó±jH[ࢊâ5yôY/ßi£™%æiÁG‘Nf(âg’nür@†È²@\îžëlå°ð|³Š£ÖfB¦Ð9Tð0À.ªÌÒ(4g‚^fèBýGi¿b y‚LÓIë8íÄ-–ñR €F1úi$I+ó$‰J¿¦ŠŽA˜4I™»,BmBTñ0êîcYiâ,k¸€£ø(“¥“ûS(W\*3“µË¶'•¤ðÈBa™f²„i!AÎÓÀ(}”ñÉRb?%6YÇ9¬luúš6AJä?«„£ük žýÊ<ý—Åé]q•»ØøZ–Åðð0Ùl–M›6áñx~kô‘‘&&&xöÙgÑuë®»Žz½ÎE]DGG_úÒ—ˆÅb\zé¥lذË.»Œ¡¡!ÚÛÛEëë"h% ™YJª6fIÒˆN|Š8eÚVO•K¤ˆôç¤åLd€—L?%ÕãèO,9»­*QR¸­I%ÊèþY¶]!6í£@Þ Ôò4T ŒùrÚNC¬£a¡â©V©é.jŠ›u’’îu àYBødIY„‰¸N‘iÄ2R4’Ú‚ÝW”h¶–鳯˜P{ÐMƒ€QÄòXÎbŸ&̼ÕFOe’ªé¢®k”¢,{ _¾_Þ/M„ aV3L±‡™4n*ÝŸf×~â,8!)‰Õ¶ãXÝòݵ­½ Ìà§@œE*Q_~Ƥõ.OŠŒPÃEZ:RDñQäÔþE6^ptO™En3(Ð"7ne©hcž">"2€+¨¤¨×¢Ž‹‚ ú)ÐÉŒã9÷S¤Q]F{â z¯èeFi§¬ˆvA–ê(ºãغ ƒ^Æuãì°± ÄY$F’(u\bÞâˆà,7ÜÔ(y|¸Zjd,ŸÜS!´Á»Â*÷_™9,‹S§NQ©TtÖÛ߸ '“I6oÞÌÕW_ÍG?úQÚÚÚØ¶m›ø ºN½^Ç0 4MCUUjµÚKNèKÏŒÐÖ\¥o`‘ø`3EËO“•dr†œÕ@^ ÷õÖ)TÅä0[)#ì öb_ À†ÙÀI, häèbš+x‚$bA±Üt*Ó„Èâ- ÓjVé$‰%6¬ Ýœ¥®êlà$iIEÒ©ËdžuΠˆvrˆ± OszÝ9«~e”"~ÆèÃ@#ÆV~†-ÔˆY‹,+ì6âµJìW÷²@œ Ês,ÓH‚VRV”uKÃ\|PpQ%IÙEÀ*²F9+°‡u7%ÕÇzõ*³t8^X“ÆbŠéL=ÆÔ’ŠØèØJö~FdÃ2Y­ sŽÙƒ/òÿY0F:†8íøXoœbP=A‡2C‚L­2f’Œ&ð‹Âèù3´1‹*OÆ;¬C¬2G8ªm&Aœ=2-@žnj¸ØÎ3[p9?gžV¦è’jùiÈQG#¡µ°Çzš•¥K™¢×œ`^iáûùò$a ‰j¸XËɯw±@Eb,á5Ë„ Yþ·çN*˜W[P€+K?£±"Ú¼ì@(ÈÑb%˜Rºˆ˜i.P‘™žäþéÿÿ×£ìºæÕ±­íß¿Ÿ‡zˆþþ~yän¾ùæßÚ½\.“N§ù“?ùüqî½÷^\.Š¢8óE©TÂçb7ŸÏG©TzÉÏ8ð/NùU¶®í&ºV(µÁ+W\(º"ÅQ*xeŠ˜I†"Éa ã§à`9]œa­£Æ¶M©tøæ©äëŒ0 bAÝSœSV‘"B›¾ÈœÒæä‡«˜Žè4)K$‰rDÝ‚F“ :¯">Ú™£ ºŒž Í-Sù(Çóh¦]MàµJœd½P`c‘¢Q@WÜ&ŒH-’H{Œ³@^&9ñ“&Œ"µÓtJv¹ˆŽž —‘üz帩ãrÜ:â`B„.¬ç k)Ja¢meEf¾×ÑP€i:¥›Fg’©7¨ L/ð"›P`1):ÉÑ€‹šm²s;„“ÉÇ Tq3ÂEüT¥RÊOÉ!úÙ9çuªxduR¼9ÖB-wK¶SDñS”vY‘àg3=Z˜. bÉ%McJŸÄኬά“£³¬U™0ç£DfêɱiÆ_Â_®´mMˆszè!ùãQº¢SQžÇk•)• L'kè‘_pÒ«RW5<Å:¯ M1¨)Ï“©)”UÍEQ0 £ZaÌdŽ2^£Œ¿\¡äs£U-t·O¾ºEmÔ$}Ü"_20t'òeð@Ùó/( œÔ¡¤ûÐ-ƒH¡Î×r.<¡§¨øÜäÜ"ƯÕx}©ŒÞì-ÀR¦„êª3íÒQL‹ªêA¯”)ü”/ÇFr,Ž¥9øœJ¡uÓ­â2kŒÉ¼®ê¸ª5t 꺊¡h¨×ñ–+WG9À¢"üÆþZ‰¼fð‚Q¡hœAs ¦uMõ‘Sr$ë:Ï[ÂjP¨ú^Àq£Õê<¹XÂpkŸBÓ긪uêºÎl±BM÷©Wɨ ÕLz–¼nªª¾Ìý7©\ÅÏûçþgþâ/þ‚žžÞÿþ÷“J¥ˆF£¿• zKK ½½½„Ãaš››I$d³YŠÅ"“““´µµ±nÝ:žxâ êõ:'Ožäúë¯ÿå$¤ëT'²Ìx|”FsTN“dTVÚ¦0,T5AÊ“r (KL“a‹„T¾[¨„IƒT*·2/ó ë,Q”Œp:5ŠÕE&FêŒú¤zš)ÒD™O–ȇŽPÑ=NË,!{£YÆdäqQö «$¥êÛEMV÷ò2½kDêi¼ø9iÌ‘ÐHœJslT••1/.Rt—§0QFHŠÅò©ábÉJs†4ue‰"sL’áE4‚ä(2‡êÀ¬Ò,S`\Šèjò2åS<9ê–)Œnòd°€9æÈÉ ›IÙÆJ’¢*ixSÒG?¢Ô‹ƒò¹x°˜eŒs,HÏvJ2äó¢ªqjšÄ(È£QÄGiG\gŸ” N‹Ã ³ÌJìk7ª2ÄU”Æ—¥ÃÀC/%ªÈeJžû8%ò§||˜žžúûûWäùÞzë­Üpà ¬^½š÷¿ÿýüÝßýݯí¶ÿ'\+=fþ­ï·X,²k×.\.Éd’cÇŽ½êcwrr’öövÖ­[‡eY¼øâ‹är¹WmìZ–ÅéÓ§™™™!³yóæwì¶µµ±fÍš{Ö…BC‡qÙe—Q¯×9|ø0Š¢°mÛ64M[Ñqdš&CCC$“IEáòË/GQ”_»étš#GެèØ]XXàøñãÄb16mÚÄÌÌ gΜaãÆÄãq,ËâØ±cäóy¶oßþØù\ï}ï{¹é¦›ƒ|ìcã®»îúµŸ­}ò“ŸüäJÜÌ4MöíÛG­Vã±Ç#ÐÝݽâôÉ'ŸäÁdaa /¼Çœ|EQx衇¸ôÒK¹ýöÛ±,‹'žx]×AûJ¯“'O2<ô!:::øÎw¾ÃêÕ«ijj:ïçÛÚÚÊ—¾ô%öïßÏ®]»Øµk×ÿ¸ÅüôéÓüýßÿ=---ÜsÏ=\}õÕ+~\.Ç÷¿ÿ}¾óïpÕUW¡( 7ß|óKÆîÔÔwß}÷Š]˲¸ÿþû üà?  ròäI}ôQLÓä‘Gá’K.áÓŸþ4º®óè£âóùÎ{¾4M“£GðƒüŸÏÇÁƒ"NóÜsϱsçNnºé&ššš¸ÿþûimm¥µµuEžõÝwß;}ûx×»ÞÅ×¾ö5ÆÇÇgxx˜M›6ñ|€îîn¾ýío³víZ_ñ½ªÕ*·Þz+kÖ¬!ÐÕÕÅ7¾ñ ÆÆÆsÆî7ÞHgg'÷Þ{Ýééi>ûÙÏÒÛÛK¹\&ð©O}Šžžî¾ûn.¿üržzê)~ò“ŸP¯×ùÙÏ~Æ%—\r^ó”}µ´´p×]w±ÿ~^ÿú×ÿ«‡æË Ξ=Ë-·ÜÂôô4Ÿÿüç ËJ^¿û»¿‹ÏçãøñãX–Å£>ÊÛßþvÖ¬YÃ[Þò™ŸŸçæ›offf†»îº‹Ë/¿ü¼î¹e˶lÙBµZå;ßù333¸\.®»î:¼^/=ô¹\Žë¯¿ž½{÷rðàAFGGÏ{÷{ùå—“L&9sæ Õj•ðîw¿›Þò–·H$X^^æãÿ8cccÜsÏ=ìÝ»÷¼ŸñÉ“'I¥R¬_¿Ã08pàûØÇhnnæÿøyÓ›ÞÀu×]GOO?ü0[·n=¯{ªªÊââ"ÇgÕªU9r„Í›7sÍ5×099ÉÁƒyà{Ôûßÿ~’Éäy ÐL&ÃÃ?Ì5×\Ãôô4^x!‡æoþæop»Ý¼ë]ïbÇŽ466òæ7¿™@ Àc=ÆêÕ«Ïûoذ/~ñ‹†±b;øß¶ë‘GáÍo~3W\qO>ù$SSStuu­è=Âá0úЇ8wî333¸Ýn®»î:<?ü0™L†n¸={öpðàAÆÆÆÎë;V…w¼ã¤ÓiÎ;ÇñãÇyÏ{Þó’±›L&ù½ßû=.¼ðB¾úÕ¯²gÏžóú¬š¦qÅW°¼¼Ì¡C‡(—ËÎØmjjâmo{o|ãQ…믿žîîn~øa¶lÙrÞÏùàÁƒx½^:;;©×ë:tˆ;î¸˲øð‡?ÌîÝ»‰F£\{íµx½^{ì1V­Zu^ÏØ²,Ž?Ζ-[0 ƒÃ‡sûí·£ë:ïyÏ{رcMMM\{íµø|¾»÷Ýw±XŒááaöîÝË¡C‡Ø±c×\s ###>|˜ûî»Ûn»h4ÊûÞ÷>ÒéôŠ´Ó¶oßÎÆ±,ëßtŨ+5p Ã@UUE!’J¥þS&…b±H l n·›\.‡¦i¸\®UM{>¥»»ï¾›7½éM‹EÂá°ìoDI§Ód2Âá0Š¢àóù(‹ç}ÏJ¥Âý÷ßÏ‘#Ghnn¦T*á÷û_òYu]G×uü~ÿŠÜ³\.ó­o}‹?øƒ?p ö¢£ª*º®“Édœß …ÂyßwëÖ­ÜqÇìÙ³‡|à¤R)"ÁEnhh —ËQ.—ñz½¸\B¬V©œÄ¥V«qæÌ6lØ@8æóŸÿ<¦iâñxÐ4 Ó4) Îû‰DH§Ó+öîºÝn|>ߊìÞ¯_õ„B!²Ùì«~Ïl6ûïŽ]¯×»"ãàìÙ³<öØc\}õÕÎiî_»+5_Ø«ûî»S§N‡©×ëÎXÕ4l6ë¼sÁ`pEÆn6›åG?úo}ë[9DQ\.—#–N§Ó444¼d<ŸÏ¥ë:ŸúÔ§ø³?û3ž|òIzè!gì꺎aäóyg¾ŒD"d2ç¯íš%•Jqíµ×rÇw022â,ÖÁ`|>ïÌS¶­¬V[¹Heǃ×ëý7ç }%''{¡¯¯ïUœ¶Â~~~ž––jµÍÍÍÔj5ŠÅ¢óÿW¢ð•¯|]×ùÃ?üCH$X–Åèè(½½½är9ÆÇÇÙ¸q£ã8ßËçóñÎw¾“Ý»wóío›ÆÆFˆÅbÔj5âñ8år™R©ÄÜÜÜŠ”Î2™ ãããÜu×]œ:uŠo}ë[øý~R©˲hkk#•Ja333ç]n·ORáp˜îîn*• ìß¿ßD¯{ÝëˆÇãÌÏÏã÷û©×ëÎñJ/¯×Ëàà 6l ££ƒGy·ÛM6›u6„ñxÜù®ÇÆÆV¬¥ñÚ%Ät333ÎÉy%Þ£ßtÙï=v{zzÈf³Œ388xÞUûáÎ;ïäæ›o¦©©É»öü‹Å(—Ë”Ëå»öÆè=ïyÛ·o硇rÆ®ÛívÆn2™Ä0 ¦§§Wä™' fffØ·o§OŸæþûïGQ …¦iâr¹èêêr`BSSStvvžwEÏ^cvïÞÍÜÜ.—‹L&ãpZZZV|ìöõõ9­ÍÖÖVB¡€ÐwmݺÕyÇì¶½‘ûϸVLgYßûÞ÷xê©§( |æ3ŸyUzè?ü0ÿðÿ@2™ä/ÿò/Ù²e ûöíC×uÞð†7pýõ×sï½÷òôÓOS©T¸ùæ›8ï{~ðƒäꫯvv†_øÂ˜žž¦T*ñ…/||>Ï'>ñ \.}}}üÕ_ýÕy÷w?ùÉOR*•X^^æÝï~7@Àq\uÕU\{íµ|ãßààÁƒT*n¹å–óÞHY–å¨'o¸á~øÃrôèQî¹çÞúÖ·rå•Wr÷ÝwsúôijµÿøÇ_ y%׃>ÈO<áIþèþˆÛn»r¹ŒËåâöÛog||œÏ}îsx<öîÝËïÿþïŸ÷g½÷Þ{9pà•J…÷½ï}d2¾ûÝïbïxÇ;ؽ{7ûöícvvÃ0øÔ§>µ"þk,..òñ]×éïïçƒüàŠß£\.ó±}ŒGy„‹.ºˆ;3¯|å+LOOS.—¹ë®»^•±ko@ûûûyýë_O{{;wÞyç«:vK¥·ß~;•J…ÅÅE>ò‘ËåøêW¿úªŽ]Ó4Sèõ×_Ï~ô#8Àw¿û],ËâOÿôO¹øâ‹qT¯×¹í¶ÛÎkår9>ó™Ï`KKKìÛ·ãÇó½ï}Ã0xç;ßÉ®]»Ø·osss+6v‰·Þz+@€@ ÀM7ÝÄm·ÝF­VÃçóñéOš‘‘î¸ã<W\q7ÜpÃÚ˜ú¿$Íè²ÐµgIEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_som.pdf000066400000000000000000001775571323370031300201320ustar00rootroot00000000000000%PDF-1.4 %µí®û 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream xœ…}ËŽí:ÞÜOQ/ÐÕÖÍ–ž @€¹ 22Vòj7ÒÝòúÑw¡äUUÿ v‘Ë–)Š¢(ФþùHøï_þçÇ?þ·óãþë‘Úgoù#•Ïó¾>Ú9>Óü·”ñYëøø—ÿññ·ã?|ü3»óýQZù¼çã-ÿPjÂÿù㟎þøÇÿßþÏÿùÿòO¯ýøÇÿÝ>þõõOñ‰óãüh¥~ö\Zm\ýóºÆÈÙÍóxèüøÿf½ôÙ>þïÄþÛùÿÿ:þËý8?Ïÿ~Ìïþ»\?K ’ÿxüúøO‡¥åÏ–Ûz ÔNOèk“ ¹}¦<>úg*COÎÞ šŸWþ¸?{éý®Èåúx{®Ïk>xL(ûc²¨~øïÙN¹õ ÀòYÔÞÊŸu6âÓl¾Î.ñ ¢ãü C$ x¼ëúíúÌgñKÇ„ÚÙW“ìéŠÏ]ŸãAˆ€E¤@Òø-uÍ-®nësf‰1³ž|Do¢ë3â Ï^}÷g¹Ûlr¤Œ/̶ÀTÚle¶7ùp}žirVÀ"Zà‚«ÆkILQ“é3]™´è{çgé#(™ÒtæÍZ/p=Õ¿MVî·Žœ?û=V›,W‰ïåÙd J,*ª‡_SïÜäê¹¾g®ˆóëÉËל1k®Ìžhüc*,Äž ÚÓaa~›é¼çì\—Ò$yÜׂûç‹ ž} Áõ<ÚdÌeÄH}ŠÖüî‰IsNÖˆ‹c{AX×)¶™Ð5ùv`´ôð}ßóÇ”N''Miöó¯Oy…çÀ'ˉ8€¸®>‡ä¾­LèœS1 Ây-xŽÚ(zsŽrâÃvÎ9CNöíÅÏÖ ©s¾€¤ùì9…²“Þ6ª!u.O ø¹SéN¨Bõ‚æ–ùpÿ¤„–)2ލbfO(O Ká³B¤©ù=¯ý–ÕòI…PüÒ©,F#c0Z gJC"˜PSÄ¡–Ѓۀžë?‚ý=¡Ý¾$®‰’+¾ÌW'³j"p€ ØÌ6xתfgö“hsN£ã=?XÉú fN‹Ô‚RìÕäõ$2~X §ø~M>M ™ÑåÊY Ö1é蔦A}Êæóš_oSp@o_)ˆÇ4ê1óëìúÊF-N‘;³á¯ß”÷/>ÏEæþ|)V£ûù>Òœ¤ƒ¿Éñ7p·^-4‚@Li½Ýü ¸¾ñøßæóhùZk*à’Nc’Ýš×@° bœg/-?O/Lþ;«A­gñš–ºhôˆ…0¾©e2èÑ ÔÆòšÆ§ËípŒ+–åsÎJÌ•Xa'|kEŸÐAÕkH¯…™à7½ÌºÝÍ}5˜$’Žàà“¿¯/•—Ï€ù!Ú4˜Çœés ú^uNLÛKÒ„í.¸†ÖZføðJçW½ºáµBú»Z?ƒ&-­Añ /hLµ?OjF[¯NQ½¨aÀз1>sA$´…D°úã7ÕÕhVŒ8^ë«bTP$&¾³øm η~ÚÖh ö¨Q‹40¿Ú¤wá"4Õë´‘ñð\ÙúmøkÁ“BÎo<wL©Æ<å嚊Ð/Üm©¯|OÚÚøïLê° >1G$Ç@áw8^øÛ´Üæß£m°cÙ|Ò° ‡ÜçškÁ7pÙ@\Õv€žmGiaGä>——+ì@¦±,€°gÎȽÎ%<ìˆÜÛ\9ºí@=?ì Mv k¾*;" XÚ–¡7SlùlËàwÓ°!𠥦;û²$ØÝ+…%°õË– vaI`z®6%ÕbKÀ™–D Â’àÞaIºKXøNJK‚ãÕÃ’àøô0؃³-SðèëÇ9U9›aI"›dH€/xS– fCBof ¢/ÉŽp‹6#âk2#Lˆì„ r™dtß?Où»³Ì¥µ0#žµØŒ §r±Ó ìˆ÷iñfHÌÁœµc+’…ØŠ$P[‘,ÌoФ´i õmHàášöÒ°—òÒæzs•ïà±oX8¡®’A…M‘k?;µpR¾fÓ'gp™8Õ+ÀqPåJœ£s4ZáÃSÊÄÁ¹!Ô9XFAµ4~ôÀÃÚRMU» ÎàœîÔÎëãõ€Ç¥_çbpÌía×Àš{Õ ¢\Ôª%“þQ“;“ºõí¬4°ð#zÞ¸JU,¯´Í:gp©À7¹Ô©¦¦¾ /:I‚a¸éñز© »­}§á'P;å•dL ’5Å€$¶d9´¥Î]=÷¯™3{ŒÔ­ 4”¡gç4£±9&›•ÐØº4½œÊ6OBÕ» Øsª¶ÛŸ¿f²;SŒç¬i(ì ‹VÃ-^©ŠE/D+¤¥Ð¼µ\œÉ²©†:Ns2ÓVzŸXÆá‹ªe™ªsü±² Ýzg_±F¶e¢•ëšC @ÊdÚv„p1Óø¢LÆhuy⣲7MlQÓ†j¹ÕNü8È{‚ös¬vË='uºã«Êá”2°ˆ(_P¼¦^F£›úf0HôóŒå¬%<–n›»ý%€øÊR>m—žD³ìÙ°Nu ‹. M¼`YƒñªLÅhøCÒŸ••i‚d€.NË:Å(Ào?^ÔtG¼8‡mö–k**X¢•6WÛ+è1Ôpgüª;ªvüU3ɉÇs߬ÓZ;­ðµ¨,Ä^Tµ•…ùmQ©u.­wY‹ F'b•Ø«H­9|OðØo© ßMý¨5_’Q¥5¥ÖÉ.èM­)µ=ÁšRëE—Y¬)€åZÐ=Š×@PîkM©›Éê5T•Ö” iMÙ0Ö¾9瀴,éÕ¢xòÕ‹ ).ZFØ™óŠ5 ÔáágϵúLÁ Çó½Ö0©s#s“KкÃk ø;¸–ñ¢ðá~[ŒØPÉZQøºò¼¢ˆË Šè ‰WRHº Å¿Nž¤ìPki-(*¬'¦Vözד b9¡œâ#ZOÁ]ë ›Í^NðMø µœª»ÂêŽÍÏåêå$¨-KP`ÉÆrÂ!»š×@ -'ÇûTÀÄ« ®–.ßÊœ­ÑaWK€Xå+á©&zýÏmÏ=ib~©Áe5¨pGB`ºBb%?- T˜¶€`*`ÿÔðèœB ÍŒÖøpáž)~­öKP&ZãZ;í^ÚÁ€•Ö5µÍY68§ ”ɺ×Ƅś–>D‘ Áz<Ù·—>;y9—›‹õ®w’_òRÀ€ë„cÿ,~)äÙ}¢™SâÕÒcÄñ€ûO;"@­póTn Ó„¸4søè"-·š–Ó“25!8Sqp´è:kÓà ¬ Ø”³¤8ŽfüZ?åÏÃ" ¨Â=Á–ãµ»7rÞ7œŒ|Ì}mïëU8¡aÈ}uÃtŽ`‚¢©ÛXôÍò‘?Ë AEÇq ‚ÙUÍrˆõl¸ñ%Só^wýˆQ¹’¼>ÞfÈ»'U'‘9Q‘Áõ„±Íhù­GZNOÄÛ:58Z8;¹0'¹ÁN”g.(&º+äðEMÍ“ºë¢eGJžÆ)f˜¨þÖëÿMYº’_›$Wžl¡ÅÔ©}^ÐéøÜ„åBJ\~ÇUL£x™§¤Õ€q 0âµ4¥v5˜’vÔúŽ!&&$  2`uáð«î_J«ßþšybJÌ®7VÎþž“§IŸŽË¡õª“A¸¦˜Ì%2×80É\4p¶Þâp¥’žZtžó޽šº8£†'”àÓ|Åw'ã*˜+Š`âä¶y|Rþ:Vƒ7ýâ~ kæ¢Õ×Ç%Ÿ±>) ÞÔR ª‡^s'Õä‾göˆòíÁÐ×/S"§ðšxNŠýPÌŠçSkZÜÜ–ãÚå8›xà"Ä×BœƒæÆ&Ë•À¤PqÔ£iÈR†#3Èv]s„u b§M#(}àb‡…åæ›óe•&Ç뉠»¾Fù”9:¥ RqföÏÓMžMɳ‘à ŸRÈ}CœØ¢óè‘•^î V!XZ§Œf£ôfÚØð`˜`¡Ýpá:ñ…‘äLÕ6ŽEià«Ü2<+¥Œ8a|ø¼æÌVA°"Û†`ÄaÀ"ަxJ&ÏðëætµÝ92tLÛ ã•è<¼íôõöÅÅ|µ~qo%!XuW¢±Þ\á n 슯˜ä;$5Ô§È`‰Ä-“}§ ìt=I09ÿœ3¿-ZÓê™C{?f¨o3t=´fèã©5C±SÂê­]çô¿üð˜+*—ГswuòÄ#×N§=·4@\tçÉTý®Vá‚N?à¹æ\Z¨ƒªo`<þ7 ¢@ ø·å0€èÞ94€ÿõ¢tNÃg9…ÃÞu¤=`,@Œz-XšXo¦>¨³ÙìÉÖ-ø(ˆì—é™ÀÅÃpQk’v×ý;Ê4öËI^¦Ý6´f«? •„Yeº ›îõ{o»ÇÑúâH|Ýü:‚:só¯_3 ÅmH[ﵦ㲊iœµÖJ;€:‘JoRÐå„f,ÀÙ°Àè͘ÙýUì×{wÝ|÷…¿µˆ¨£tÝ\Ï<1rØË,/h¼|+gµ}Øcæoßôa†á‡EÇ7ÝéÃ-/¦ø»æ™i ޾sü·e;ß6QÛ’üfÉÆ#Ë’ÝÏ<v¯ùÎ\ΠJÛðׂ‡lvâPËà‘ûIAåã'/°’¤ Z.?áÕ¼œ.‘h*~-ú¾ÃÑÀßÀØ6Ö'ht@Þ÷71‰¾R¢MÍwøÀIe¥þ<Ühäaa%t!lª"÷„0¯á A8ðb&ôš»,ˆS ^¥@$çÄžqÊŒS¯1s®Âƒ;&ðÝhŠ‘âÄD™Í6.4oœbrQ`’Øzç1â¸UÇ FÞ‰¢>èÓ:DG+NdÖÏ8„#=Y"„z‘"íj †Ú¡:~H `ï¤C§ª:æ¾zB?w:² ™›[¯j^tTMø.0òBv/ªäû^YÏ… 0I®|4%«’$"›9|½ðÜ› ¶‘Õ'äô›õ˜KÛÝÖÛÓ¿vÛ—-J}šÃŒ‘0e¯ºè@¶·òø1ÿšÀöžÕN«I–öïn{ AÚDjtáx,Ú.<¦Í»Ýññüñoÿÿá»ÿéñ›ñ‹ýGŸßÎ4ØËܶ+šªŒÈ]š'b„KáejX¸Qæü Ä ï fÜ/†B,žÁÌ’i^ãäü ÇÞoøçKâÎÚà‹ˆ¯ßá3úðËÀŠÃƒÝ¼N)âóyP䂸{Ä×qÌ„ûçxý¢—-šÇ™}On¡ ŽÑ m‚7—0oøµ:gDô}½.Þëw->x&BUôâ\.)œ¡÷§!@*㋳ìxÀؽ¾ö0‡ A¦k€×}°ÂÇ‘R×ÉÈ­Ô®)©/5ôà¹_ODæQâñÀ€ñÔF_ÀÊ)QîD˜ìÅ•Œœ½ÄR;ð饤K L¦õ{b°'@‹7§ÜÚK|©}ô`¾ø<\g`»qÕÌ#GìÞ$z:SL¯Dõ‹ãBN¿N©@f0Ï·i~à$Ïú•“g‹[£÷ikhØeþ^aâüipe´Vª:Êw`&S¾ƒÍKÔ±WI8¼¨Z&ä·ÄIéý"âÒ2[§¸ĹøioÚ¯àK—BÄÛIK™«!œ=Ä0´“^‹Ç0M!܈ÙóNc‡‹<¨ítÊí5Ç{Øâž*¤*W*Öx¸‘ {i‰nsʯ_Ú¼¹ù½ ûó\¥±ª›<Ì)0Ïä|­î=~Gß»ŒÉàMo±G0󺘃µP›í^¬ÇŒ¥z!pÚ8°åÒ-ŠÚ“rꌓ ¡·Û“„æBƒÀm0AøÇ·F^-XUËBÓ–.:¤ƒxƒ¯Õ9#Žè;ÓbM’Ó0ƒsÁ /3v‚”Ö˜Îsö5h¬Ã*(8ªÍõ'‚ ”‰5ñ¡¡Ä$-ù⽟ø¹(s÷5—´$bø…ÀáneÀ.v®}üD$UJgó8*x%N5íM`F#1 enåd¥&~€XE_ ñèß\1±×ûÙ#ü@tëG•Š^]Ô óôf;Uñ游“w Q*™Ù|Kа+…X’B[¢ Ž3‹æ†ß”.>¤”8CYC\R zgÂ7`H+öPSwL‘½ µÂFÈ!\ŠŒ¡7DÂñÛœz³\tö}#¦»ø(-Æ î%ì¤A}±ƒG™ŒíJ‘L0¨yˆEŠ_Ss+*Özá4 /UÁÈì."Pµ¿@W'—'(Ql œûÆÇO6ϨôjîΡ•Z¤:Dô¢ ZÔcãþº÷ØèjÉ{ìºÒä¿(åfšÍêù„±—0µÓTêÄá †¡þˆDW3_·þj|JýÒ¯¥šBýbHÆÖ͕º±¹òþÙk(¯ò;gz™ÍV¾”ùÏ’ D—æ7 )Õ¾Õ“ üá0‘¡u«øŽa‚VF¤+vA×Põ˜`X“È÷úŽ83öFÊ °õ3ú~*L‚”WY²î)Ï]Ÿ5w¤Æ)ì‹`æ8ŒÌBowç7“ émTu2™؇¤²¿0™23y÷b½àX2ÒqïðRT«……Y­CBÀ‰åu `걈eœ}ÓE«0–_ˆà{+ wÆýزŸÏÊ´ÒPl€“‚n°ç³ÐŠ^ 4^<*Cg²‚¸¼t¬å?06âm[Ñú’þøº¤ÿâ,ߦ}‰tmý¬~ÛðYŒY–‘'»)˜j«ê}E âŸÂ>Œ°ÍFB{˜“€tŽ,ƒ0>m{tcòiœ ê”:â)Xªô߇BJ˳>š4ܲ´ &T¶å†ÝœK#aϱ€»Ÿ†‰9Ê z‡s-ªÜ:ÈÜ´ù*\u8FõóD ž\¤´ÂBKlAäÐ`:_¤ü0^•sÒÖ.š9`…žnƒâë1F‰±S_ÏG(¯•Y•˜I`ÓX•Z8ˆÙäÚ.1ó¾c‘ädè}¯¡ °kË­ßsl×xLñeó:{¡xÎNt—Ý׎ù£QÏKn‹Étj‘89¸š-° a¨'ÍMÕû0u`>T4¦àQ—}“½Òn Ÿ”½°~¯²? ݉à$NÆAvlÀtÓOSÀÂnV?EŸºu\¤Ë. ‚-QWK6%F5s{O3 ÁÙIË©¨ŒLÖ Q³æ¾xç•«´~?¹‰Á×56ƒ‘*…ªÞLÕ¸·Æ> `ÑV[šÎàé3è@™«R?k#µùŽ  '߯0޵0¸6sGË!.\àYÖp3ÉNÊ€åI*¸Y a–­¾‡ˆûzþ¯@•I{÷xÞ±Ü7™%}l‰âˆÊ€Ðáå·!>˜ÅŽòM5‡M†a¯œõÛH ÄI5 ÄÍ\ÖŧوjàlÎåÆ`DŒ‡’áóX%CÄýÌr#ÓoÊg÷ñJ‰½÷;b‘:»SªÂjÂVY¯©8½—Û z¢y‡ÌvÓ4ÎêßÏ8ÇÍՎ§pÂè}†»Ç̨'2[>C˧ÒÑ`ä `˜´ŸÜ()0žçѓʄÏÀ˜Ô €*@ìï!§c¨(ØBàpîà!YJ¾ 'î [œŒCæëUÑ«Â^ìAEL¼B:±çq§¢j ‚›}8-x²„?x nd†hb/ ^1@bètÛc†tú†â[‰èJçŠcr”>ð¶Ø ÂÄð2T9B=PKd‚9FüÚÃÀ@=Ô ¸òÈÈq] IÕf³ÇïU‘—ŽÀÀ¸‹Í+~’S˜CÌöÁzåÙ"¸£V‚ç•wäÉBÜL¨úÒ 8&@T$N½Ð^ã<ÂÀ {«„F "ör¹'cärÇ¡bÆÿå< °ó5‚ýïø¡”ü5³ ŠìåX«Xl¿™Àõû5ü<±‹ÛJé(,»Æ˜<íE9+¾ˆØ €¬"Ââ$^ÁŒòÉpÉ –ÇUQ0CÇ/Á¨¡"'„büS3§³ÍNžÕÙü õúx@>\ D¢û t=ª%úcŠ´Ê ñ œsm"xjÈùZ"+=á¨~ŸÒ.@1 ˆÊ<&Š˜AžŠ¥ÐÚ%sÂS÷è[ù^šéªâ)àj q]ýóQϓӈ¯…ÀrDU\ \СG=›¿"Du@a!­*Èznñ q<>SêÛwã‘ õb‘ú·ÙÊPÀVcŽ º3¸sè•Û÷z®è[$¨ŸY†½FSicG/TÎõTæe/ÌñMnÏ{ñµ•Âp|ñì Œ¢*æ €wâ,œ€ØÎPùÓÐĪªÒ ±DÈ Å*ªºr©µˆ8Ï ³Çà(Aô,«£œ˜ §D»n?TÇìx{åÁfr>õ˜F•éˆÀR€RI%­}e•»+®;Y ¦m…],ƒÐü€1^Öf“ Œe/\ú½18Õo€¡íËGŸ—tÑ&д¿q‚ˆ}·»J)Fë`­Íø<”-ÆÈÄ…n ê—nÞ_¯÷PõѼxw¬ï›×AÝë7ùàÆÉB=©1ŠJi~@ìTRж$¿R§ fSܵˆ`¤‹‡VAY}dé(ÒßÓ~ [PÀ“kb&Ö¤ô#ÍQ¹Á¹"€4ÀGoŒè&V¯{a‰æeœ¾âë˜ý^¤yUÚת}3âpÏ»ÊDc#­f¥5˜heñæÚ››‰{$¶âKEiß[ßF#?0NÎ68†¯õÖOçAe”TR(/¡{#½çþwm>¡‘z)·ˆ“ÅME ‚BWp9žHYÈéŒQA¡¢|ÓJ5ø"Â|Ðï]æÑÍ]:@äsÃØa¶ùÌÐa‰›<¨Ä 5?Aí6±{Ç<þÔaÆì‘ˆF~ nZ€_$‹¾ã®dp’)YÃéÀ$‹)Sw³“Ò”¦¬j\KÖPOä‡0ÂTúÖÜx¶‡öN ã(J†t‰¤1ÆüæáÁ7`Ù!Dôdå_̽~ `…+….æ7E¼Ãú92BY€8íYUá©+L`‰§¢`='ÔÒ°·:Vް~Öï×”'šà¥pe/µ¬¢Jå–ÁzÓÕ ð¾Ã<~-V#—]>®Pî”Ø4Êv‚¤»¦) Úq(ØUr dÂIe}h‘ýÄ9Óz 0p#w£[ÊÞ|t;«†–¨­Eù.XnÊ49†-¤¢UF@EBÏàõ¢Àã¢Ö½CT¢3Is¸ÈØ õ\š2»–ú.®¹¿{îyUÅaíPa3pö¢þ†÷#Dhè|󛈑š+2ÐÀñ^»FäÝò{Ôn,FT.ž/2È:Ffh?óîÐ[¬èŒ2!´ÃGg›¨Óï5+pX@ÖØpá.ðê"‚ko‘;½IC Òl!º3‡{ó«áôyó4 !|­)Òï¯|(NÏÂ:Ôýó±1™Áõ€•e.O`y‹+p•ÓáwØÐÌÍ2«Ö+UّņfÀ/bRÝOÌ.Ç}¸…Kamñ `Šn\pzÑ(øˆn¼(of5@Kû}Ð]¥\Šš\ ™]1 «#†_»«ë qâÑ„™õøŠÙ¹èv‚Ÿ]A½ Db°n>== sS%fý殤o4Òy~ E0ÆÛwe²ƒT5Ñ~€Îá8`Ïë÷#—+´Os‹Pr¢8ÈXÖÞhr î¡Áíϼ¢(ÁÆ\ÞåÅK¬­pê3i¸ÒÔ¿ËŸ¥pIÖ©P&‰Ã–õlÀŠÔ|hÜút¦á œ«˜Hîu•#É’X×£=Šp¨,í :*¾Ô\øFÔŠág𤧶&é9U("_5ä‹q®ð ©k<·s¶äÁ¾µ{!,Å®# åÞ…A ´Épž€unë8ãÁ £àw¥ƒ‰cñ ï©lÏ>ü:«£Ð£_Àì^4‘øCúØ4Â344±˜bˆ×îézÄœ¼97àÄÔ` Xi9¸’%¨Ã¼æY ÇÎÂTç»Ä´:~¢bî1ð}šê ´*Þìé01!k·«b-@…'¯,ähM͵W ˜˜î2áq×z¢R± P D±Uù?`xf?T&ª ~êTÉ”to˜Š¦æG,;è>+ÙÿD<´šùŽ"mŒ9(H…ÁH"[) VQwXÔ†Z£Ç!#„èq Sùx 0¬Dóx„Œ*í€Å£ãV½ÁCrb<†~¡Çæ&"/³ô}à•QÐíd-e súþ$WèKo˜¡g`²@hm&W{*ÀVàÉõ:­-eu fv.BÏ#‰)$RǬHI)6ßõ!¹zq·Ãl ®W¨=püÁcÛINVJNËxœþz :ÍÛ/µq« ú¯sÔÚq0~Vð2eª¬Ô—‡.ÍŽµ&Ì<žóÓ¥ ,Ž9wý@ÒuEü$â¿y¶×UiɼHJ4áyŒ¦\œx!Âka̤’³…¤9ŽÌa|$yÆ)@‡cx«¹¤kã!’ pz“Zl§=ôDÖÉ(æARÖÐÅÜqøŽuJ“‹ëüÚø[Ü2¾ ¤S¼r×LG#ŒR±'''qÇNocÔï(ÞQrŒ’µüÅAQâ0»ß•¼ÕZ[°sŽZÙOÀrYg1L? ;BORp°šÐSqQ*¬˜6<.EOJt.ú¦9y/=Vœxv«NVxTlÆl§VxVøÎª±Kä(Õ'_N¤kP@p3pñ¶-”ø¼Í%Qó¥Œ2¡t˜òÅ×®°MÉæÁ‡Â4ÁÞžt†J\NUâ• $ÞÅÃ}z@*ÁîÙÔº»â"îÝq¯ L6ýÒÙ¹-Ñ Ì-• ØYÕŸ¡Ë»öCÅù(o¯=yÏñðž—U®XŸec2ÏÍ3k(z°ôc‰ Š…;c¯*˜Øç²·%ŒµÍÀެoÌÁLªRMȶ¿Lí2JLQIðˆ~¼ö'‹¡Äë8²(u·¥ãDQ@ÍD —»zaøµû¹žM˜W¯˜›‹ŽàviÄ/)®Ú¤²*D_)V Õ¹D•ŽŠãaƒ¡/¹Ä’ ²Ò·j£ fÃ"3³ ËzÄ¢ ®“Ð)R±ÅeyĘs6ki(#ž= ̹“ Z ÊXÑb!et`=Á>Æ„®õ&º²W$wv¯YÁ ¬r‹Yš€ÝüV^E§3z±ÄÇ€`uÞˆeŠÑSÃŒÛ1G«™…ù6КžCu°ýÐ/™œÇâ&õªÎÙ‹…ÊYcüЉúPÇBa÷‹ÃòZÕ©AK vƒƒžÇ1šBÚ®Ìäw‰]à+& +`Ôz/õñÄ¥¼]°Ë`Az?·w˶ªQZwÐDEø"ÂÒi°¢/Ú½UpÍ/˜=@ñÖÂì†ìBÖCÙ×*\p{[ˆóvô'[›Ý­Âòö)¤­6 Y¬ .ˆ+Âå\SOT^IÉ9À 4Ô<±éè„»âU¨ëV“Ö´Ê >BDxÆÛ.F…=lã…Y–pKËÞ-Ea#h꺶mŒ˜ª«>ÇAW×6ŽŠ´c”o¯OÛ¸U^¸lãVeì‡mŒºåµ¼ÙÆp§Y®h£||Þ¦qóU·Ë4^ˆmãs‘¶q EbÛ¸5›!Ë6]g ÛøÌ|й¦$ŠÇضü´–Áx¡`þ°Q¬âNÛ6^pØÆÇFÙ6n,º´Lc|¢ô§Þn)¶TìŒÙ{jþÙØœim@8ؽMep†Ó> ãÖè±±Y|ˆÝäLØÅKÔlÆÛ`,ß2‹9@ò<Ú0nMc†1ªYÜãi·ºü Pr¡ò0{çݰ ã§QÜ6qSØìñ0Š›rS—QÜ’Ó~l.ÛÄîØñ4Š¿;‹ê4Ã)“t¦”/í'ÿ"C´±úpaå0–Dÿ±P ¾=È è`iCž 6c¾6&¹Äþz)?šy<ãO?æÑpÖAÕ[CúÞXÓ’o€ûûýbæžÈ4"ðy;½Ìm¶Rs4Fæ£xwÒñðÑ’Ë4gջ̔–¬južšp¾ð„±8ò}úc‘d1w¢ikÁ᪼ÀÐæBöÔ ŠëÈo‚oZ\Fà•¡$¶õˆŠvFH|CH/ÖWf%bj6Òs‰ÄúÁþ†»½Á ·Û1ëë#zºíô@¨ÆÖÅÆKH\ßiÄÐÓÕ¤ë÷ޤðå¤ nRŠl&enój¢²~Í«\µ´¼ï߃9¹w¤^MqC•jpþäÉôë»b~Ñl–Û-њí üd@Ä›.¦†¤äÃaÆÔ­í‡AöVw"va'˜»àgVþí­úñ"gðâ `å䕬[2c°0$AoéÄÏ 6{õ-LGV{\Hjièˆ_Ù¿¬³÷í¨Þ­XÅÃ[|ƒŽ:ëâjcJÀæ²ÂÃX¬Vˆ÷ À|Ï“™‚h‚QPø©ñ,Pƒ¥(So$ž–² }óeÞXÈtÉÖPó%0óLéU͵à“.VŠ_{¨'^l/lV¨9KÁ±Y¾dž¬1aØ¥”£¦€MÃï/L2T2:¾#6ÜÀwXÕ‰¿$ú$­ å&¦“éb®,ºÂ½âaº¡šÕ¡‚W‚²kœùñóPy<\¾Èy"H ¬'}XYI>®Ì´]Ü­šå^ÉQìÿ}9¨ZãaºŸ0÷ÎŽ:Ìr‘=a„Ög…©g__œu1dÎQ8DŠK¶ÕµŠó±4–¶*4äz@̬åùUüŒ4[vÇ׬ªØÂf/jìÏ;ÇiwÒ’FÏÉè3’ Û¸úúð™×``ZRá“*q½tµ]¢'ˆkàÒSaªÄ;«6¦€ØÕ¢šŽYõ·àFdÆ~gÚähe÷5«,«iÌ*\žu1l@(@¶¤UÌ¡2g‘y˜•ÑAh÷ÔJ®Âºœ>ë:0pÿ^R•å§\Š“±¬Ÿñ “X©úqR(¶k/F¶qóR‹ìÊß%H££ìN¼ü‡pa6ç8­­tW^a–­²+ÅI,—ªdŽ­k]µOñ?K»ÑgõUãÇÂMiVÕ`áÛ.x¡‚,:_‚³Ì‚® ¡9DnýA>5ªkp‚ZÓÁÙšOx¬Ù1Ta@“ã@ÅÔöì@=ÄTbv×}•Œ”¤8!1¸jáÔ"ÈŸ3Ö<=ñ<ÖìÐÑ¡'‡+\bn0¸ÅÜÀ7$ýU!º%ÇêÊ‹î]SâêyëÉÁ{%î59†ö¶šG‘ÐêÉ!ã9&‡v>19 yrAÍ…D5ÕO«Î ÄUE ²hU§©TæPX§ÁÉ‚Îè¤øYîT¼‰ta9SóŠÝ’+5ë†ä£ÜQ ˆÆ,(îQ—5zÄXÿû|,‹!ø‡Qn.¥.ÚnP*N½,ˆÂ« m@”®Ëœ, Hݪ%1—ª?Pb²Q7¥Ȕ2 ?¤ZÈ2 bPå…{âã·},ª}AמξO:…øËò|$3®²ËŽTѦ!A” C°Q­a³MpÈ”,-€¨Ki¯®§›¤³Á §àÄïbâ©MÖnÀÜ=»ƒï±b¹Á®[o±îTˆÈ[ (ÚˆCÚ×­‘ïXùLÁ‰6¾#Ø!¨Ò/•œ ‘·Jñ°šöɪuÁZRé {y0&6sßì «øº˜a¨`©AÚ€27„È*¡Á×eTñ:DÂÝÏ—ÓÜZfx'¬.^ÀhžU à}x™Ü)œ·s⢒§YY\™s#ªž8e²j òtåH€Û`ríº§œ@Ôbª³Èú¾a·úâiyBÆ~À½”ùTU¥QN+'5±ñÎyviÕm·Š:UÂR³ Q}5ßH” ìòóå &B7d‘cŹ©‚EaüheùO6ì6÷0ë° «L߯xtžMgVÕÀÌüÚ"žð†\ º6xÉÎùY¯¢hb©èG6[pa Ì}Ë)ŬºPÛöĺɆ¥BKÚå˪.>ªYK«0„GÇáß„‹Ã•\ós’óGzP“\Í48gNÔ¶úŽ‹]ª*õ ©(‡ýY«¥Ä['Y¡Yë÷¢} Î*T±$§Üeß®ŒˆÊ8«’*L`ÑèÊ–·Ž(ÀÆû¤UÉ‚ Œ’ øÐý \ºÈ?0”lîòK±¶­ªÌœµ3EÂ8F-ëõ΂«ù%±¾Ñ[âR>‹d¿D6º¿»óV¼fõòm ™Ì£â›µôU½%i¹\©öTÅ:!ôKÉ’›¶\ÓìÕ¹¨ïÊ hA<’)ÉaëºAn#hï–õvVa¯Ý8¶WR¿üx/Òñ@¨þ§×ÔÊ\“h½û2ãõñB'Ò†6-AºÀWôíXœKUðõàL4¿8§ï?8ݹî¾sþWgý™Äcwý_»êJ4 ë7cÜB%¾ˆh²'…€¼SáQ(Œ Z8Í•I€¡Ñ(Z©¢h㲟O'TÈGkÙð$¦1© ¼Û¤Ö(’nŠ®qoªŸrabÅ0Ä:«:`õÏI'HñªJﬦÏ8OŠOŸÔ¤Ç¢ÌgÕAxlüV¿öï²¥hÇo¶œqB|;éá ¦ž¬Óºx~2ùëµ>ucL‡]ÕšS%áæah´îuC7é)B F ¯²Ò®½å±éE÷½ÏÕïÇLZ&ÀI_p"+Ža4H¢àÑ=¨)ZÊãM¸‡Â·{œÙ~ÏÛçÌÏK†qòFo8çÃ9tp,°í.AeK(–ÒkÄ; Ç“§’ß!ÁããÛtx9NÆE/„ëyóÜ+˜n/€ðÒ&‘S¡$mì0\E§(¡‡,m«4ž`¾}oï7²>Z„¹y» ©Vå_“3Úݧ[¾k;qÂY9Û’üO«ž6û#ßIó×·'ís‹q‡3¥w½´¨xO\L·y6òÆbF'e_ª›é©øÃ˜‚!w™¢Ot˼*<âôÌ>/Y1?t )š‘ÆYYÛPI`Õ6.šÎLZdˆƒÔE[²7™Ù”¦”u™ssˆAùXˆĵÒ犆(r )ЖÁ*\+!®I7f.Øe…08£ˆ–ï¾x,K8ÂÈŽÀ,w@4ò‘µWâRu7°ˆd°ãàBÁ>¥ Ê‘6R)Xé‘´Î …ºêÒH‚1ò~Àñ1CÇÖ<:œ‰¨/ºTO•DU,UªÂi &—D]ˆi)–I[ìZ6¤€ÕCcÁ\b8Š"·¡€ ;˜”÷º˜%ÄñõĨÆBèüYñ,Ú$`óðÚ»¹”¼ªfÇš…7¹e]¢K(ƒ«ZüHg)òô.«!uŒC=m±aÇ ˜ ¤«ò¹åà- œâù¢s¤~ižØ¿—§¡4õ©UÕÙO>ái>< ×%eâq~È~çuÔÔX<š3$Ë!Õ\Kàh̹ñÇ8å/‡ß„žªÜ·ú,7` R?”-ø±<Ç£H=”/ +ž‡3ˆó´·ŸÑWÝ@†g´åT€GÓ‡~¿eˆÛÜBP‹\r 2Ì…Û9ºœw?Ë”W0þ5'šÇl}ü@„kmíådàŠNhvÕã|‘ôéå­ß‡ÖúÁ”2Þäb¨†fÈ…*«ÚIˆAL ±F6í ù ×°ËQøM ~³¡ëP”Jfnü¥ ¿ >}âZY!–´KióEÇ]\…Ã=-ÍΫ<ž9–}óx­ºéMݦ†‡òÀ¼žkè©|Û'ICÒõhÛ˜GK~ka~4ôx¨^ÔÇϦ…y4]Wnà~-PßRdrÕ½ïµÐ<–ÉÅÃ5c»¬É”z„eÙ•’š-Ø)ñê©J3F%-¶ Ó¤‚µÖ»ØKÀy/ <¶~éóEãxÛäÂZ¬ÜÃÇ‹(ªÒõHSäÐj¢1Ú“‘—ãhã¨èXžÝœŽ½x÷bcPïy5Q3íŒc}„|â¦b1ÒT.>¿¨JÃàaµrcøÙ*Qd˜\R±Ÿ·F¬ÖjÖ®2©º 8÷¸»fLQ±êÝB‘Ÿm}Äü}m2pTq¥M&2Úýè‰WpCAíÑ ß ù{±|‘´-4 ~ô$0ìêna±BßXÌZD,všH³ûLj¼ºOûÔÓê—à~¬<¹¹*öpð¬0çÃnd€Ï†Ç‹8ãJ²#«Å¶z ¦æ/ºXq«ôLAÐ/Å­êN(Ï ¬7-½WüÍg,'4jpª”Óz+ªÈq«§P8‡Pܪí·#9Öönn„vq_jC÷OÝtæ:s)ÇWé}-7Wµ×cu½?åË —ô`Aªã)_1ÝOžð„xÙ{!k™)EߥQoð:b `Tÿªhªh¥øeVG̦¾©xG¨¸p¼‡„^ÖÐoŽšy̶¬$Áý„Jî« ¦†(¢7zb^&ƒd©¢-ûvê ¤ ¨'½?:}û²qJ|U´”¬SaÖ²kïäOD±õöh&P ƒŒ×>¾aŠÚpˆH¦dñiJYáÖE÷*q~¡O8ÉçÙUg¬C+ ö3ˆiʌ٤nC#ÞÙ;±‘½~iÊÁr¬ÙÐíëF”w¥DÀó\ØÑõJ`6ƒ`¢{úŽÙfÙzmñ~a4`¾.Ì/åÊèbruæ7?Q¬Lµ_yÙb‚šV…]^y‰â…<†Gº·â8±’œ¹¾®nýPu]ôVqÝ€^2qþZðàÖmràæþ}#¤a¾i’‚Ìߌ"‘´˜ºÂb¨ŒLõ³ðw0ψ—z²ÔG'+x?)ïÛR• æk$nÁÙˆÁ ¿Â«7p,Ä‚ºíñ€ ê>ߨ,Âmžr˜t 8r‚µ.DñÒç»ÝÞÍ÷nâ.{ݰÀ»N+‡.LÞuÊ…Å|nݲ‰u0©¤'/ÝÔå*8Ç ðEwafޱ»£0B—¹5_š‰ZãNOÄw¥}«4=¼*IWŠžrœ¼ü%]…L¾…CgݵÊì^RAPkŸë¡ë;`YCÎQo d×Yâp=P%‰øÖEÖåQ}Gz¯AlÒ¥€°æ .^óBñ¾£ áHS }d‹kÁC}×Ȉǂ‡ÉgÂbCrô²«uÃI·”òå‹)¸™Dó¾Ç~˜ׇ%G®û.g7ät±H€–9`Ê[•²MJNù×…½Î‡×——Diº9Q..`IE=|3åõ{ãy_GÿGP/nþ<¨©<†`wN& m‹ÄSã¸;ÑET$†•:þŽ-šUáï?ÀÓÎݧ?Š+ Ìi`IAýA @óÑ,ʦ²Œ6ƒ8z½T‡»Áè`‚@îý:ðâÜyécíùqMTìä@/-–4/ÒC¸±ÖŠÅ~ YÁ'Wðâ9”Ô™Îajñã,RÄM IS,ÃAûÁ˺ãu%Þ­Ö›6€þøœ3qÁ×o|mÄíÍ_Iž{B€ž”TL‚÷,èðàÑ€î;¼¡pýãÔíÞÄïYõìâí¡…j}ñ6¾~º|Pe&Mý¹Õ·žÂ0_y½ŒÉÛ­ãú·ÑÖ×ó­…K¤´dÈ0;v¬WÕm·½Ù²¾-¶™.ñÔT[#1Ì÷2›åÙaÖç‡4-“G×m‰‰¹ÖQ8ÚõÀpZ÷+p°”Èz@q•6°Úœq3´®àæt#`ˆY¿øZó›Ñ¡û‰£\Ü¡<ÞyïÝofêIS/!L‹‡JÂÿ•‡Žµgùå‹iX®VLæK¥‡5•t€ò»çýx‚U‹+¬ÄKƒ5ToUÔgªªÔ>ªŠ%äµÙLEFCÉW·æfþ.äjèÎX޾^[Ï úÌoo½÷”°5Ö¥â²$ ³ß«Ú…ý‚ávQT¦²´`IMUýâz[”k”_F±—¬õ Ö(àDÁk´kUØaÀ/b¬¥ô€néP”ÅÆê34Ût•g­ºYT(¯*­H!½ÃÙ5¤õè«Ê¿ü‚©ºLøëÑP`vCµYÂAvwÀ`S¸˜(ÉÅþ ½1T´n–—.–Hï]*:j8iâ©ÌAa8,¹“ÀWֺͬ&Œ¶ÖýÆüš-•g ?„Ì[²é¼¦LËžàK²³Ùo=Dô[C‡ÌÉgÓ‹Û £Ãô·†õ½! {Ó½Mxj°òúBìï3põDcÉ~+^ ÔÆÈÊ~Ç`K ¸[™ñÆ^ @K™…dj»<ƒtó+`©UE©æ¦Î0ä#hfûà¹_zÃÀ[R?8ΜªZ•­W[]Äcs øºe¨ÓôÞˆäë{6fóH7-ý†Ùºo½¶ÙÙ“³FÌa½šeX…Ðæ¸.L¦:_»NO¥7ÌÐiH.dȆ UH9dtL ]z#„ |áè[l™3¼^J =ñ"J†UÀL õõÀ]s€÷S“o÷H)l–CèMÒÀœÁˆ][_^2{‡Æ¼ c.ö#*M/%ÜÉJ)ÐÆ”ë`·¨`¥þ%kU×f|“F©4he= "æÔ–E›“¾ÚÔ´ôU¬àª rxRY«%zrIL”¯Ï®Åêy…´¶Ö>ö)¶?¸T“âÍ|÷ÃÜ«®<—õˆöŒ•…Ð8cº¤æº{vD×~3ÉRÜ{*d¤iYÿ+ßV‚»¨(×O£T@`ªë³$3Ó~`ÓÎØ”ÝÐBmLc¼®0û½›Šªά>ËŽùÍÑ•‰×+(ÄÅ-R¹§Ý`]I^-˳‘Ë‘ÑñH£qÈFáX)>^?›£ã’oíÈ,Î_ /2V°pbrtÀÝéa3äUˆ&¾Ë—ñ•t:–cÑó'ø‚Nœ?Ý»'Ù÷50+l†a f¥äœ‹Ÿ)9u:ž´||mÅË6ݳ?Ì-³$¹hd[€nºÎ ©FtGúTÏè¡GpÏꉒvš“$€a¢‰1 ém«‰Î›ˆöGÔ™ûAFˆ—èÜð£À »¥Ø€"Qê&¾á1{m*Òi½W: "Þ£G ^»¯ëób5an=>"~>èŽïcÂøX‘érZ‚JLDžŠ0‰ª£†[$Ùtf6R•@ÕÈ{¹™Ó83äfÕ†ã‚'†¼±‰¬LV$)LUhŠÞˆÈsì @V$ŽH@÷9ž²@=yoY¨‘eÑx'jªN²…,(¿(%V ŠŸ°È"¶x=}`bTà¼Æf8KãAÄfþ€œö#7‰láVþ ŽV3%oJ¢lˆ]“Øõ=)ØC}Wñ–ᢋ¡Ãub7Cuéé×ó‘ËÂÀÛYæa¦½+¾Âƒ PÛ‰ Nz’ ‹1s†_âpË'Š®|#â‡#à&=3œ‚„îƒ굘]¬ó²S<•y>"a‘v§ßÜë‚«U©‰a͇Èä$å7f.ƒÈÍ^P̉Þ¡Y3ô@Íš6¡ÞFÑx¨Ø³T šÖ÷ﳄº ¥&W¶¬.`x -¢ðJ°ÓM^"ÂÖîq¯2P¨ˆÑÄ[r¿íÜU§N¼‹{<ž`¼®’qAå6t‘¼ˆ QÄÖ+µHyQHQÀ”]]±Ù³}¬‰ù ƒAâ!Îjç;F)“DÐRÜ»HG˜-mø÷U³”b u6y˜ÅMåÎŰƒsµ=†½3ÇÃŽK O (šK؆³å8<]p-½¾Å ãËø¤´]½ñrZ£­*4Òf"ÄÀÕ¶á˜3\©ù 7øu$lo®ôäéõé4¸Ê‹êð'Ò‡6”¬þ0HŸÒQðÆì×LòOÌ"yv캔Ù¹¿šý Äà’ž.GË„ŠºkíQú3ÔÁ/æhŸ¿¬†‹µfÅ4÷#øf!¢«,‰W Yyë#À´È„zB&Õ°IºÝŹ¥ÄVº4y}äŒ[6Nµ]„ž<ÐˆŽœ>ÞXŸÅ‡c¿n^­/ln fvø6˜×­©32¨6¦27ï(OÑŸj2ríŒÜ_Í:½½š›PBúÁIvF‚:ÎúIÆ3²I2«Ç¦U“}ó¸yS¡d­¨ä>Aš=WfýɃ4Ð-(®ôïx§0чM:‡’E¬ðÍâ$I¹®€*j¢pŠJY®¢’©´†5dJ%Œ'š+‘€îÎbf X’žÌ”å+‰;vÞ Žûºœ˜WLL…¹ó ]BSY~$x+©(mÊU×+(wXÉšÉìVßÊÛ’›úã‰ÌJ2Ì4Êýo¾²;a[ïN¥éz%ç„ê:® ï •VÖ(n±ZM`–²|T|óºö˜¶ÅÛ8œÅ›L+÷èÇÞFOã3"‡`ÕÞ7“¤Çb7–ý5{KˆP¿1›¾#Ž˜qT’watÊø‹‚_ø³‚Ìø³âFÀy"¶Œ€›QÁ±ÈߺsåaÜÉÞx"}æ‡pŸJÚfÀ}:¥ÚfÀ}ºD ÍÃO3`=²Öˆk83ñf±hµó³Í€[)%aÜŽ\ 3àN4ØfÀ´-Š‘¾ó¶o‚×›þ>Í€;;Ùfà73ô0n‡¸‡pâm3àÛ K³ëÈÁÁê¨t ú^µ¢oD³›GU ¼?­Í;ž+ OÞ—óAUÏðÚVÒR½u“R ðŠêù&ÝÝùèIf€•YÜœât5Â-¥qUy"ÒFõr1Åiôq¹‡l]¤Tb7r»bÝ©ä À4Ê»ô\W ÷­ 6±Ý»£†ÁÚÞ—Ut<Ñ´—8UèÃïû•F¨)Ç@vgdz ß‚;«Q‘Üùß^±ÃÞ_pº»ý] ÂÛÂÛ)oÕO[˃݇¼ÞJÚ‹Ÿ»**²FÖ¦Ë{².MEn+‰îŒ%gƒ©Ûß%Qœí±CírwÞÝ6½îâgΰ­»sS«R#†7òRê;閛ΛGô«ïͤ†ÇÉþz@Ó¾idó„Õ‰j¾1¨ùTˆ1ç†KÚ (@{‚THòˆnE¯8 {]jK…s€‘«´(¬‡§¦ðÀ0“\μîEÕÏNÝ”žzöBm«¨gËÙ²ŠzRfŽpØ…)”‚/¾”~`§m àKæZeÞ.>[eÃ(µ„É“\x>X>ݪRúÝ[‡X} £ñ€øìɺ/KE÷i¸ªØ &‰RÏpùó¢÷3·} —ž|ÿÕOMÎ+ju{Э¶¿ôÓS–+/BÄŒþCêyZŒÌÞLs²4`8ïØ;% ˜Ð HP…U'µ|fÿjxcøE ޽ ‘mDæ](E§n¬ž«(H„kQx“Ke²Ea’V¡…8]¿faàËS$ˆ]O¿a¼ÐY6‰Jd4E€æ%fÞ‘t^!CÆY—±\X 5K®}BVòƒÇ`†%ÎåºOœë XW¹Œ`¾qšÇIÎÝ®ŠT€ë¸àSªŽ…Ù½½uì/˜ÕÿI´ÒµTá;)K™ŠlŒgÿ±ÒÜ÷ê¿Ö¿Ý}-4Wöÿ¾M­ûUÖ£Kåxéä½§ÀHÉ›.Y 26Ù®,»ÿ ±:«Õª··þô³ËƒÚù‰É®ŒEbx–—TŠXâÌÈÐû¢‹Òœb âIu*.5 :Ž)r«˜ÁcŠ€«8]OHk’%É“HŸ€‰©ÊPß{ÐcI.×X¸öd§“mÈÚãË¬Šµ0X©Tû¸Ë0Çdߦ}rˆq{ÑmÙuø.±¢«mc–èK^;uæíÛr¯Îè*Áˆ—®ÕbÁÛEÖNê„o]²t']Éí¬YÞêsú–î[W_~ÍJ͸BæÖåÄ©¨4[`nö~ù Ù®‹»Qi%ñRsÝÌœõYF1ë५îÛû¢:˜ÆD$]+……(`qƒ±¥ë tI_ôíˆLz2CåPƒrÞõÈ<ºRmÃ#*s`Žœ·/e,šÊttA<ÉÞú‘êºØ‰C[“Å®o1ºd=KŶèóšeÁâ#ª'E†{>}‹NJßR/0aˆ·ó,q¨-Þñµ§BÈ8ãòquÌg!¡"*¨¢0B§ bIد˜)wV¡ˆýD×.…Mø®±s)xw™]ccš$ê²2­ª§ þÑ-÷J¹  gb;ˆÆbZi †Âø ?”\¼²•ÜÂÜ®¯…«ñ%ø–¾ŽbE†².$½-lÊ^|„Ñ€h–÷òødÉï¸<ïBÂgJËÜèž‹âS@ÀÒ*·m)Þuë2w—èv\*ÔLÖeX„±9ÐiÒÂ$ùL£ ЏnäJ±ôHƃŒñ s °{²Düˆ¾®'Ì +óŬ­îƒŸ\†øI†³&ýÇ·qQÈ›ŽýÙl‹TN£jÝ…‹›÷É5Åßž‘2Åž4é:~¤)üMUÝ(÷F¼ØW¸NÞŒ´[¸eÇ­OPº(´‹Š-‘¹{¶Ghcz{´œþI¾YjAc l"¡A>¢R(î5»éŸÍƒõ²¹´[7ýùãÉúuõk{t%çu[pØìj} X“n½³gæ÷fq:?šÕì^`e0ù[zoBò+ݼ2þfNE`VµÇ_0§j+É '”.‹WÀV bOz¨3z:4³ðô©¯ ®›ndºaî¾>Tþ,?è,ŠÏÑá}Úv©»º+…MºqrÃ#rˆj÷»âRÃÖ&0³0ðÚÄ '±ܰ÷@8ÝDÚØõ&çY=ßí³ÊUì !¾»žbÕT×32¯üè[Sºg׫©Gªæ¾79•µfF)X$Š ]RP>ÛÚ´úNðÑMI>§s Z@m|‡cç8hf"3Ïs-¾'æN"ÕÞkL\›,™lB—B‹®<ÌuöØÄþÙjÓ {(Öàh¨^sœtÀxܳ˻¬Xú=æÖÌ3&5"g­>}[@ñ|ÀòJì"³î (mí;åŽÍEG‘äÈ-Uy=Iq¹ÔåWU\0çFÌÊR§\–qYÇðÞ¦êúU¤§Âd'¯@a"Òà‰PUâ@ìuÒõ¥Á,&=ÚY|[˜µVâ²–Ò¼V6Â2 ÑÕ;03ÏÝÙcË Ó¹ ? ai¶§ÖÞœ¨ñö«3$UÁ+_$Pb‡X¨NÙB8Z++<)…°Ùú>ü‰šm­„ßta–—ÕM´!à Þ§ ‘Ý^bºéU9†½Ý)}ï©\—eX­dU?áÁÛQˆ’AÉ{¨æªO˯ÊÊQ§· á5emžn™‡×Ny{MYr¨í5ݘðšê,e4X¬'ɧf·)¿ùjB·^­*=E336CE·Á<6C,€òØ.][~SÀ©¦7v Ä_I‹öìûQÂoºáð›fùMÙDº>ÂoНp™ZN%ãm…×]àJyê!—Ãúbi¼z®éÀ'Yœ·åÈ BíÙžS1Ý~;ΞÓï"é-Ç)v‡°ÔQÒ(ÚqÊr`q@@—Ç(”; û¢j½áeÇÚ½à—k µÇ}{lª*w1»*<§d^•«Ô ™Ì/Ï)§L·›TžSwëá8e54«1’üÃJ=<`9u1`$Àé,´Ù»Gó$šu62,šSå µy·QT¥·Í&$%Œ¶0_ª&%”ªÖñµÊÂÐwl >Šî[jŒ…¬aTØEq~`ê#8hXäª1d½/㊾ (tÔ©ã[e׺d20—½Ý‘ä³!ÕO~>4–ÚÞ¯=¹ÿku¤3)U4)± ɳù¯sÈÐ=j{,-ðåýR=¤KÁ–3n³:y Q ¾åzYõ~½³0?šy<äO?b7Ì‹¾5¨ïÍðö –iA‰‹›Ác¨´±1ëy“á—µ&Vr!¨ì™„%\&ÁÉç­4/Ì’{¥“ ¿¤eú~âÐæñ~4‘YÁtE¦K~áR“y< ƒÛ˜‹h7!Ëz¤Å-±›%©lB+íÝÁ¯Gg…yp#š0¿â#›¡AF0\dþ¼¢`›Â 6”¬…Q-1¼Cïoœ)j}ÎVkû«I%WRsI7¦Ué^"D?®ß‹Üz»ã/xûIrBJqw`ª /=_ysý&zÁWV,ŒÊê}=^Rl1›ähdÅVñ«Ð(·î*7ŠÝ†÷•$–:$(]‚à?ƒàªéx éxÕ +aðÒ |È2ÏÕÂä†u=Ìë ƒX·/6ÂeV",…„ªU+å/gŽ|Vf¬äŠþ=Ôl¹îXOPRøb„XÁS}c(îU‚x^Éž Éö¥ xì€-pnÕ$U øÚr˜ÎíY¼pžÖòøFÜ'³¨(¼–}‰j3·FÝ8ñÚ]]˜Ї=m^•3nb17|vXG‰ßÃwðĈ(`ù1F[ÉzF?Q1í¨0á#¸¤f[ûçcc–RÏ.,ö æŽzÕ©ÓÐg #•×`ØËØÕ‰N¦+ÿÌö4!bð¥¹Vûã¤<<Ÿ²nçðu•u:C»Ã¢-ô! Nd`À7w'/µñ¾‚qQ…ð³×«xka ºWô}‘Y¹Å.pŒ2•rÒ¦œ‚à 8“ÞÀzkѶ,ñRÒòñ6TÍÌ[Ú8.ô`nJ sJtnªŸq–²Zï*±!!¬£”]G#“Ò? ±d­8Ðí'…¿T×:ÞZ˜…hÜp¼!tgf—-ç«n8Q×ê¤Ò\?«.GÙg\±äAÇsÉ;6eB=iݯmŒŠoÆÉ IçmŸ¨çzKKÊ©RÂY–u]ôRw÷NMøPñŠÙ<òaÀOÌâõnh³a4f›· ËÇ|¹Í§†æSQžæ²[J³VÞö¼ùa?¦¦,ó©Tëõe>•ò鉢 ϨŽÝ@fÊ÷ÃzÂE\ùa=•ì±*]¿±õ´š°Ù²>² ›M‡MŸ Ó’´:²Œ§èi<ŒÐûÇfÖþF°3¨v•ïBöÞÒÛxZOsGÍ‹'VMµòX#¤¯Úx Ï£Rx¥È6žŠË¯îß³ô­­'xÆÒ›õ„û¾ú²žÀû¦ßa=Á†gÐ'Ü2·PËzZ/Ùz*9L¡Òª5íøØ¶ÓQ¢Î]O…çK6póqþX¦ƪåmZ]y,Ó©ð†Æ‡åTÚZÏû9T6œ Ëi=²,§âãe[NüŠ4OöðkÑÞ†S©òØpBíµ´#v«¼ÙME[ŽýHV9¿0œ|ñô6œ€aIµ°›PȸJ Y%'À=™cÃi5`»i}"ì¦cQaÃÉT®•,ú±W²èéZÉ‚a8™YÃ)¸i³i1[fÓC½-»)0eê^Kì7ÌÓlBõZªHQ² ¡´©C6—¬,›”½ej Ö’Í8j±š½t ò¨¢àµàkÑ7a «,†2-ÉoƒÖªi®ÍÄlú÷]Œ)º¦lcÖRW†W٘ǒ¯mÆ­†–Tu•¬, WœôZ6†º£2Ía±Ç%m ¨&Wj²ÜTo‚—܈­×õöÈUÃF÷ÈxÌUT nŠŠnT?4˜n¢¨¢½íE÷ܽ>¾ €„b(  ?sŽ7æ¢ë÷K%‹rÿ޹õŒl8¬lˆÞØ\5ï}Q†4ž¡aÕ;!È‘JôÞy!^¬ÿê2½<þ‡LWæ [å2][s]z>Ö–n°páÐÀä8ÝÝ$J™Š_å©–jÔÝïá¯VU–½{+U•½UhÛ‰®šv²~ŠÃXº¯ÇíÓ/tºÝ«Ëb>˜Q½Sé¬M}jœª_<ƒ{©€“P™«¬h÷ BTÆQó’Žq¢²×+5¢Ö^’J¥7?ÞìZl õDÿlK»•¸—‰V‘ªYáY_=Yö0¤­3Cå»<¾Äµ‚­šéz«Î8ÈòJò«E¦6¶v€éÚÅGJŒ”û;7VX½4ÏÛ¥z‹£,PCDoüz@×/«W(«Þ•¨ì7ù—Õ—;©Þ¢L ZWU®âžhEwç¢oœ’­.]–\XZQÖyø X'¦ï1u™š&ö± TÃ)[†*¨Å>UÖPó65Œ¥æì!¾‚¦ qeK$ †ïp˜&ì+JGØíƒð˜K(®ÑdÜp©hE‘293l pö^7S yÂ{ÐðËW„@ÐÖ#ݹ.\‰îuE•ê¨{5ÝpŠãJ.@¨!ˆsµgVñy=0‰ i7q*#>Âò|Ég4¤e5š/y•MõZVGZÔo9V_ã‘àE늟3¯ÐbN>­"7Q%7D»ÛðÉeŒÇ¹^1¦uú[ºâ.Àù÷V—ª§o8y§»1'B» Œ€o÷ Ûð]¡$¯@B)±*õÝägÚiq=0 ‘6gcÌ9\- ísù ÅLFdðnÜSvÍ¥ç ¯ž,LæM» 0ãñ°K±YAÆâ§É4¿ ‰z"ŒJÿa#tôï§y¹zFí¼q}$P!L„B¿àèÛ±Q'—ÕD“ge}dó<èh>‡Z„Æd\ôC".…ÿ®'œ¿·›h,~ñYWÌ :`>¥ Þ]Y(÷6šnÄGL7‹¥AhðüÛ¨p:±èîÍ9‰|v*Ù@„Ïœvºuá:uh³'ÜÄäÈÐëçC>Úð²´'\s`{L8jñ¶'Ü‚·˜&&\4®9pqO¸¦è•5]@f½3.z²Çß+{RfTMíìÕyL8 G¯{Â]öÁÄ„[ðêÉÂÄ„‹&<áâ#{™Šàgüv7ŽÇЯ1ZóíbšøzJÑ–ÌBÃõ½ ÝÀ¶ìª \ðî™0Çãh"ÄÜ_y2Ütx®˜ÌcÍ¥5Dk¶¡nðsqÄ*øh )¸òxNiG€¬IË_J!à-lÂ[µ¸‰¥zÂùPN"#øi*Íð÷á\Cái¸Âh\ X@#H)”W¹ô†fL˜>•KEó!(ÈâW°+Ê®ØBuîSç!WD¢äkh;mÌ”¿î•~õƒ/mY_Äp+wɽš/Ýæàd+à ì·dÇ´¸¤+Èm×oӪĬ†¾£È#Þ j¢C2åÛ«.Ý]Œîf|ݶ¬#$ °æ›‡æVa¶=4Ä0îíñÈíáåÕ/·Ëö%ÉÆª i(‡›€¥Á¾ü€$ù}ø±I˜2‚M”劅ÑMD_Äè[ÝQ¹ÛSwß¡&DÖFà¼u5J:Ñî‡ Ù“’ƒ\T°a•™@1%KyÆë”„ˆ˜¼ŒŒqÛ‡*lLÕÞ!Úwg4Øã…|}Ƀ0åì²%` ”<à‹.!O½2¬ aƃ*)\U[‡ò^\˜F]¥Dž1|‘atË\º­ð°eÁ0oŒÀÖË Éè”K×…åîcÄKu/7|ÒoóÚ˜¦’êhA1ÈXLŠ>¬ŠÖ#³ EnÏ^0”h¨†¦CÉ…«nåøbï™K kßÖK?yyÔ׎ë!èKu;µ,£·Oš²d_ÌðÉß¡÷†|Ôhc4}(¬Ð^M(å­)Utsv@K“ãê[À/b¸‹\O$Ez,ö©&‰P‚ù'=ÿ@zv°4#Î4`îC“_¸èwEísÔ³ÁLªÚºbϬ-"XU·AƵŒM"ÀbE_8.-î¥Çqÿw)œó‹Üaˆõçƒ{(ƒÇû§£|ijª‘[õ) Õ(­‡£<´þµôSÕFja Ï´²Ü îDQ©[û*yyÖä…®'ѵ:ÖÎmö‹“}íìbxÖ¾ {;D ‚O½ª•Òçðpá‘hI >ysÒ»êã9t•c(!¨C‡í.ÍÕe„UN»0tb˜Qþ¢s©°0`¤•ñ6¼vÇ “ûh×­o`•W×LDSäõ"2„×Ý8ò=Ò²NõH–}MŒ¢@ëõQèv;LèæžHÜðêĸ›n Øp¬O,V-"‚™Ad0ûÛp€¹ %AøÃF´•³hÌÏ0{~ƒJº¶‚åªHZ‘H}Ûù7ÊP¥kÊw~»sIÎ!Š&RÖGÀN…Dô¢ôMærÄDO¶zÃHS}i`_ZMtϪõ‘)(×2yÔ2­D…Ÿ°Æâý€·¬¦:Á4šfÄW¿ÁÑ syb¾ Š¦Ò­ãCPÌȪ„”ª¬#õaç)4¢†íÂɾw ©Àõí-!–i‡—ªÿ†±‰ÂfŠ·cƒbáÚÁÆ[ ³ZÞýږ州²úÇÿîûäú endstream endobj 4 0 obj 25892 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> /a1 << /CA 0.5 /ca 0.5 >> >> /Pattern << /p5 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 534.823547 368.669922 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Type /XObject /Subtype /Image /Width 150 /Height 100 /ColorSpace /DeviceRGB /BitsPerComponent 8 >> stream xœÔ×÷[Ów÷ýël\µ­mí°¶ZëÖºGÝÖ½•½„AöÞ!aÂÞ{ï½Y"(2dÊ^ @ò=îo¶çyÞ×qû·û{<ÿƒÇñz ûÿ–ªû_+)ß~¶ÜùÙRÇç‹oÖ||­µÐª=ÿr­üÅziㆹ†/¦Ÿ9YóõXõ·#U[†+~è/ù¹·ð×®¼íÙ»_gìkNþ£!þhMÔ©'agË/Kþ*ð½‘íq'Cô …¯›ÄÕO`Å2L£iædHÅ&˜b@u”P¾4´ëÅ$x²ÉšéÆc‰Àøl¡:ŽÏ x"0W¾ÈU ºº‰„n"‘»››»»»‡‡‡§§———···¯Ø××ÏÏÏ_" ð     ‹ŒˆˆŠŠŠ‰ŽŽ‹KHHHJLLNJJIIIKMMOOËÌÈÈÊÊÌÉÉÊËÍÎÏÏ-,Ì+.Î/--,//ª¬*©~Zú¬¶üy}eCcUÓËg-¯j_¿ièèlzÛý²÷Ý«þþ¶Á¡Ž÷ï»FG»ÇÇ{''ßMO÷ÏÎ ÎÍ É¤CrÙм|pA1øa~ð£¦Å…°%u}K ï–z–º—º–:• o” ¯U ¯T /…À|0_(jųՀÿ{ÁÙÿÿŠÿK08ôÿB0ý+X÷ÿUPño‚‹ÿ{Á¶ÿSAÕ¿ viÛÿÔe+‚õjÁ àûª-C?® æª_­ {uº*ì\ià¥"¿«ù> àÝtуd¾n"× žeÃ0¢™‡“!¡äÿôÖz°Éî*((R"þ‡ ñÿTÐï¿Cþo3r²ÿ—¬[|ÚÒú"8ðIpð?> öÿ¿;>m°UµÐ Ì7óõÀüs@Q(ž®¦zû?þ­)Áºþõi€Ÿ|½æÃ+­ùEóZYÓú¹†3õ_LÕ~5ñlóè“ï†+¿,ÿ±¯d[wáöŽÜßÛ²ö´¦ïoJ:\w¼:òLEèùâ€+âk¹Þ73Üï¥ &òôâ9†±,ã(ºYÕ"”dL†’a \Lqö¦¢½èX&ÁEvcSE\¦Æså±]yW>WˆÈ BWW‘P(‰Ü4‚ á Š5‚þ †‚¡Ÿ##Õ‚11jÁøøÄ„µ`rrZJJzšF03#;;37'+?/§° ·¸(¯¤¤ ¼¬°²²¸ººôY (XQßPÕÔ¼"X¯|û²··µ¯¯mp°}x¸sd왜x75µ"8(“þ§àØâ|ÿâð½]á[þ‡ï¥†¯AÃN¯PT­¦êú+jê:A;uKퟩùÚÔ|à U¼Ô‘¿X§9¡§ë6MÔ~=öì›÷O¶ Uþ0PþSoñ/o v´çìz•¹÷eú†Ä#µ±'ª"þ, ¹P ù+×÷F¦×íT·ûI‚DZƒh–Q$Ã$œfJ± "Yl%d{1îCqö¤`$'/²³ãNÅºÑ B&É•Epš˜|.‹Ïekâðy\>÷¢««P=C7 á¿ ‚3ôóý$è¿"ü?g˜Ÿ” g ‚3LOÏÎÌÈÉÊiA~NQA®Z°¤ ¢¢èI•Z°Vó66U¿|Yóêu}{{cW—FðFp¨säýÛ±Ñî‰ñÞ©ÉÁÙÜ€\:  ,È>(Ô|ŸA¾^oi¾k…oYÍתTó5ªþƒ¯—ò¢Õ–?nÅn©ý_ Ý*ß+oÍÂKíùfmyÓZiãúÙzõ'Ÿ9ölóHõ·CUßTüø®lëÛ¢_;ò{½ûeƾ¦ÔCµ ǪcN•†/ ¼œ-¾žî}+Åý^¼ë£ž^Ë(ŒaB3¤Xú“­ýP_"̇èàErò !ÝÈ+¤\$“ÂgÓùÃäqXšØ<.‡Çåò4ŸÇçóÁ~2\¡§‡‡—§§——¯7(è+‹$’ ÿà€€UÁˆÐPµ`DDLddlttœæ®&'&¦&%‡4#55S3ܬ ðäeæ«iYI~yyaUeñÓ§¥µ5åuu MÕÍÍÏZ_×½yÓØÙù¢»»å]/ø¾ìx?¬~ 'ÆzÀ§pfºov¶ÿ¿  šoñßÒ ŸâµRÑ¢T4+*EJñ7_ /ä€,wµåö­ö´û×Rh÷ÙâëÏ>¾ú\çò)^èÈÁ®Ÿ©Û8õ<¡_=ÝüþÉ·ƒ•ß÷—ÿØ[ºµ«ð×ö¼­Y{šÓ÷7¤z¼*útqè…¼€+>7R=ï$ºÝ<Žâê‡2ƒé¦Ts2ÄdíC°õ&À¼ˆŽD„)"a„¬+  “øL Mç±\6S‡Åå°¹WóñÔŒjAÁÿBÐ[ü_‚¡AA«‚aa `ôß‚±±‰qqIññ«‚ÉÉ©)™i©jÁÌ ðæç‚‚9Å…y¥ÅùàSX¥y kž•Õ=¯hh|¢| 6üOGÞŽƒ‚½ÓSïfgú¥³ýò¹~…¬AÞÿäSô-*Þ-*zÿæS€|¯–ÿƒ¯F¥~ø*E™fwù€,e®¶üê_+-©ûl±õ³Å–Ï>¶|öáåç^¬YhÒšoÔV4èÈêÖÍ=_?S³qêÙ¦‰§_>Ùü¾ò»òúJÁúsgþö¶œ/3ö6¦xžtøIì‰òÈ3Á³%¥zßJò¸/zÅÓ gÓMifþ ?’•/ÑÆoçI°÷ 8º""Ò•„±|*G#ñ.‹Æa18l&‡Íâ°Ùœ5+äñWCõ/š•ߤžîî^ž>žA‰¯8ÀÏ/Pâì¿*>…!¡‘¡aQááÑà £¢â¢£ãcbbã’ââ“RAÁô””ÌÔÔ¬ô´œŒôܬÌüœ¬Â¼ìâ‚ÜÒ¢¼òÒ‚ªŠ¢ê'%5OËž×–×7:&!&616.9>>%!!-1)œaJJVZZv:(˜‘ŸU›]”ŸSRÒ‚ÊòÂ'UÅϪÁCZV__õ¢©º¥¥¶íU]ǛƷͽÝ-ê§°ÿÍð`ÇÈûα‘®‰ñ·ÓݳÓ=Ò™Ùlb®{AÖýAþvQÞµ(ïX”¿Y’·-É[—åÍËŠÆeÅsÐN©¶+W)ŠUŠ|•"P¤Š@Ècy ]m©á³•Áê?ûXÿùǺÏ?Ô}¾ð|ÍB­Ö|–â©¶ü©Žôɺ٪õÓ'Ë7—}5RòÍPñw}…?ôlíÊÛÖ–ý[KÆ®ú”ý5 <‰=Vqº ä\¦äJŠÏõ8÷»ÑÂûüG!lý@†‘ÕLL¶ð!A¼Öžx¨;ÖN„³â]ñ>É#b¸$,‡‚çP‰l™Å ©cÒYL‹Åd±X "{ñAÍ/š•º‹Dnn^îÞšн}$>A?ID}HC‚Ã?Í0:,<&""V“›—Î0=))#99+55;- <¤ùÙ™9YÁ\ð)¬,+|R –Ô‚‡´®²©ñÉËæš×­ÏÛÛº:^ô¼} Ò¾¶¡ö÷Ãc#c]Sog¦º¥Óoe3os] Ò®²ÎEYû¢¬mQöjIÖ²òÉ–åÏ—åO•ŠJ¥¢T¥(íTŠL@‘ (hÈCy ¯¶XûÙj5Ÿ}¬ùüã³Ï?¨[³ðtÍ|µ–≖¼R[^©3W¾n¶lýTéÆÉâMãE_½/üf°à»wy?vçníÌùåUÆÎ©{jVÇ)>QúgNà…TñÕ¯›QÂ{ႇ!\ݦ¡„fâC6÷"Yz­Üñ6n8[!æŠuàà|<‚‹Gr6Ë&ãY"‹JfÒ©L:É 3 &ˆÈ\AdÿÛy¼Õߤà¿C‘««›Pä!RRowµ —·Ÿ¿¯8PìäÎ0 4 0,0(<(8"X=Ãè°°˜ðˆØˆÈ¸È¨„¨èÄè˜¤ØØ”¸øÔ„„ôÄÄŒ¤äÌ””ì´Tðæeedgåe—ä”çUhéӪ⚧¥Ïk+뫚_<{ÕRûæu}g{S78Þ–þw¯Þ µ¾oíœì’Nuʦ;³í sí¤m‹ÒW‹ÒÖ%ió’´iYV¿,«Y–W+åeJõôò@;•"E¥¶‹a€"ûro@îÈ]W[¬þl¥OÀ>ÿVµf¡jÍ|¥–¢BKQ®-/Ó–•êÌ•¬›)^?U¸q¢`ÓXþWïó¾Èý®7ûÇ·Y?·gþÒ’¶³1iϳ¸C•ÑGK"NæŸÍô¿˜äs-ÎãV¸à~ïQ[OÂ0ò¥šx‘,<ˆw‚•g#ÄÚººÀX>ÎÅ!8x$›€a±,žI&2(dÊ Ñt:c‘ù!{U»òß‚ÿIPè!yºi=ÀCêíçýo‚ÿÿ€CB£BÃbÂÂcÃ#â"""££¢“bbSbãRããÓ3“2““³SSsÒÓò2AÁÌÂܬâüð)¬(ɯ*/|ZYTS]ò¼¦¼±®ª¹éé«—5o^Õu¾ièîxÑÛý²¿·u°¿mx°mtøÍøHûÔXÇÌD‡t²]6ýF1Ó¶0÷ú£´uQúrIúbIÚ°$­[–Ö,Ëž,ËÊ”òB¥"W¥HW)’UŠX•"P„  ð+v\@Î\m±ü³•>–}þAÓBé°ù-E±–¼H[V¨#+ЙË_7“·~2÷‹‰œMcÙ_ g~ÓŸ±¥;ýÇÎÔŸÛR~mNü½>nouÔ¡²ðc…!§²Î¥‰/%x^Ýå=â<ögê‰iFÞdS‚…;↳bm\]lùÏÅ‹…sp6ÉÂc˜& Ï J¡ƒˆôDƪ¡‘ÅúqEЕÏ n®B¡ÈSäæíæ®ôôòóòö÷ñ ð‰ýVÁ†EG‡D‡„Æ„†Å†…Ç…G$DD&FF%EŤDÇ¦ÆÆ¥ÅÇg$$f&%e''礥楧ågfædçf•ä”çU•TW>«*~þ¬¬áy勯êÖægm-µmõoÛ{Þ6÷õ´ ¼{5<ðjtèõøû×S£m3mÒÉ×ò©WŠ™–…Ù—ç^,j얤ϖ¤Õ˲ŠeYñ²<_)ÏT*RUŠx•"J¥U)…/ ðB@Á WûXðÙ§>ÿÿùBþ°ù¼5Š\-E®¶ÉërŒèF¸àN û¡?󱘮ïM1ò$šŠpBÄk%p±áclyhãÀq³±ÉÀ£:G'èd"J¡ié4ýDÖ'Dðw øËte†®Ÿfè.‚‚^  »‡¯‡ZPâíà#òõ KBüüCýÂ#ƒ"ƒ‚£ƒBb‚CcCÂâÂÂÂ##"“"£’£¢ScbÓbãÒãâ3³“rR’óÒRóÓÓ ³2г3Kò²Ë s+Kò«Ë žUÕV—6Ô”¿¨¯jmzúúeMû«ç]oê{:›úÞ6ô¾êoln™i™o‘N4Ë'_(¦fê?Î=_šíª–¤eK ,oYž¹,OU*â•j»•Â_¥ðV»S PÐ Pà;¯ö1ûó•>hZÈZ3–©¥ÈÔ’ghËÓµei:Ò4ÙÔuÓ)&’¾Kür$á«øozã¶tÆüÔ½­%ò×ú°]OCö•.Ïö=“ây!ÁíJ¤àF(÷Ž„ùHL×õ¡ê{’ŒÝ ¦B¬…« DàbÅÇØðж\4Œƒv`c™.IÇ¡éx ˆ£‘ð42‘J!k©4PðoÃÿFäq8|.וǪgèê®™¡—f†¾ž~ž^/PÐ7ÐG,ö ñ“„JÂý##ƒ¢ƒc‚BbƒCãBÃBÃÃ"’""“#£R¢bÒbbÓcã2ãã³³“’rS’óÓR 2ÒŠ²2Jr³Êó³+‹òªKóŸ•Ö>)ixVÖTWÙÒøäuó³öÖÚ®×uÝ ﺚú{š‡Þ5ô¿z1õþÅìØ Ùx£|²~~êù‡™š³ÕKs•Ks¥KÒ‚eYβ,}Yž¤”Ç*áJEj^¬š÷TÍ»ó`ž̯ءP8 ØjR?_-åó…”5`óÉkÉZŠ$-y’¶,Q[š 3—°v&~ÝT܆ñ˜/Fc¾|ýUä·=ß·‡ýÔ²íEðöÚ€]U’ýE¾Gr½O¤{ü™ º#ø+Œs3y×—öØ›¢çI2pà q¦|Œá¡­¸hÊ–‚±PL´#ƒ »8Ó°(C%`©D<•D ’I "õâÊéš'‘¡ù]Ãdªg"r¹ ¢ˆ/p¸z…^B‘ZÐÝCìá%ñôðö ôög"ö õó—DH"ý£‚bƒcƒBâ‚CãCÂCÓÂ"’Ã#S"£Ò¢¢Ó£c2bã²ââ³s“’òS’ ÒR‹2ÒŠ³3Êr³* sžç=--¨©,®¯.mª­xY_õª©úÍËg¯jß¾©{×ÙÐÿ¶q°·q¤¯a|°aj¸av´^6ö\1Q3?UýaºêãlùÒlÑÒ\Þ’4cY–²,]–G(ÁJ…X©±SÍsTó4`žÌ»ó`„³6€(ÌWûÿùJ êÖÌÇi)bµä±Ú²0i´Î\ôÚ™Èõ“‘ÆÃ¿ ÿr8ìë¾oß߸µÅ[£dû3ßÝÞû \"\K¦%Ó–…jKCuæBtfCÖN¯ŸÚ0¸é}À—Cþ_÷ú}Û%þþ•ÏÖfï_ê½vT»ï.s;çz4ƒ*‰{6†})œq5vKL¾çIxìŽ×á .Æ<´)iÁFZ²‘V,g¦3”álGGÚÓQŽT´ƒ » ÉX4ïB&àÈD<™D$“Ôˆõ§F¤jžDð÷)m‘ ÎÅâ±Ù| ¢ÇwÓÌÐÓUè-ùˆÜÅn¯Oï@/Ÿ oßoq¨_¸¯$B,‰ôóö ˆ‘ÆúÆÅ'…$‡&‡„¥„†§†E¤GDfDFgFÅdÇÆæÄÅç%$ä'%¦$¥§–f¦—çdVågWæ>+Í^QØP]Ò\SÖRWñº©ª£ùI׫§½ojú;j»kFzŸ÷?ªžy"­PŒ—.L~˜Ê_œÉZšM]šKX–F-ËB—å’e¹·Rî¦TðT ¦JAR)p*R}3Õ|àî,…  0z€âñj ’ÏWš—¬SøiÉý´dbm©X{N¬3ë»vÆgí”Ïúqï#^›†<¿ðøºÛý»vÑ-Ÿ]­üVÉÛSÌ9˜Í:–Ê8O?I½B¾*!ÞòÁßsÃ>ºè Ð<”1iÊB˜3–L„°¦# 4';Fuv  àd4‚„A’\P$,†„Ã’ð8‘@"ªÉêOHQTº:‘"² “ÉÕ 8W.OÄã»óžWoW¡ÐM,r—¸y¸{zxyú„xù„zû†{‹#|ü"}%Ѿ’±¬Ø?N/ LðJ N I M K O‹ÌŒˆÌŠŠÎ‰ŽÉÍ/HL(JI*IK)ËL«ÌÎx’—õ´(·¶4¿¾²èEuÉËš²WõåíM]-•½¯«úß<êªé©齃,Ÿ{_"-œË[˜Èü8•¶8“¸4³4¶, X–ú.ËÜ”2¾RÎVÊ)*9^¥@©NšÇÎæ?튀âîjókþN¡Iî¡&s×–ºkϹé̺­­­nvÝ4(øª¿¹‹÷ÝîÍìmõ¬í5Ìåô½…´ƒ™”cÉäÓ±¤sa„ËAøkbìm/—{BôcJ4à8±& 's†“Ý Bs²¦Ám¨p[ŠŒŒ°'!I('"Æ™ˆA±"Î…ˆÇ 0‘¤ùÔˆš›J£P蔿l5"‹ÇbóÙWWÄå¹óøž|W/ÐÇU$ºù‰<Ü<ݽ‚<¼C<¼Ã<}½|#½ÄQÞâh¿¿X_IœØ?^à˜( JòSƒBÓ‚CÓCÂ3C#²""s"£r££óbc âb JR’ÊÒS*2Óª²3ªó³kŠrëÊó›ª ›Ÿ·>/}ÓPÚÙ\ÖÓZÞßV1ÔY6Ú]:ÑW23P4÷¾@1’3?–±0‘üq*~q&ri&diÖyÎkY*Z–q”2ºRFVʱ*9R%wäv€ÜJóÞÚÆN~ß\MÁ]óïÉ9`Z2Ž–”£=ÇÑžeḛ̈×N³ÖM07Œ271¾ì§ÕKÛÜAÝòŠòcyÛsÒöjâξ<ü¡4ìñ—ÓQ˜sÁèËþ¨kÞÈÛîÎ÷øˆÇ<„ÇÉ€7bÀMhŽf4G ª£%ÅÑŠâhCv„’àv$'{¢³# Ç£x4ï‚Æc1,–€Ç«#5[)êÈT2™F^A¤2itÁa0¹D›#äpݸ|žÀ‹ïê#Š]E~Bw‘G È#ÈÍ3ÄÝ+ÌÃ;ÂÃ'ÒÃ'ÊÓ7ÚÓ7ÆKë%Žóö‹÷‘$øú'Šý“ü’%©þAiÁéA!Á¡™¡áÙa9y‘QùÑÑ bqB|irRyZJeFÚ“œŒgùYÏKrÊó_T¶<+l{^ÔÙTÜó²¸ÿUÉP{ÑhWÁDoÞL®t8K1’:?š¸0õq2lq:`iÆgiÖ}yŽ·,e(¥D¥ «”¡T2G•ÌYrs@n Èõù#@~ßѨ]äWù•ÕÔ5'W§%Ó$¥jÏQµg):Ó”µSäuãä #¤/‰_ö¾î!|ÓŽßÒŠû©ûKËŽ*ÌïEè}9¨?RÇãœOG Î"®ø9]ó„ßÁïñsõXŽú #ºƒ ÅÁŒâ`Nv°$;X‘¬‰P¢£-Ã#pÎp C;ã0(œ çâ‚Çáð8¼Ú¯Ù"‘¬¹©jDÒ*"ƒJcÑèl:ƒË`ò˜,‹-dsÜ8<.ß‹'ðỊB?W·¡{ Ð=Xä"ò sóŠpóŽt÷Žr÷Žöð‰ñð‰õðóô÷'xû%úH’|$É‿ÀTI`ºpF@pfPhvHXNhXnxD~DDAttQ\lIb|YrbEjrUfÚÓ܌ڬ†’œ¦ò¼—Õym5ù ù=/òû[ †ÞävæLôdÍôgH‡RïæG£ÆC>Nú/N{-͈–fy˳´å9¢RŠVJJ©ƒJUÉ €Ì2]@þßÕØÝødw _XM[³’\˜L“§=‹Ó™ÁêLa×Nb×¹lÆ|Ñþªýõ[Ô7mÈï_"ªsþå)â· Ä®§ýYð?’Ç8žs8àpYìpÍÃþ–ÐþÇþË^— Ó§Á ©0cÌ”3#Â,0f…‡Ùà 8G;,ÜÞáàâ wA"\PH4 ‹Ac]\°X,«–ÔÌ‘:ˆ" ìoD&…Æ¢Ò94—Îä3XB&ÛÅñ`s½8<®@Ìs•ð…Q À-ØÕ=ÔÕ=Lè!ôŒzF‰¼¢E^1"¯X7ï8wïxwŸßDOq’—8ÙÛ/ÅG’êëŸ&Èfúeg…䆄慆ˆEQQű±eñqåI •iIO3SjrÓë 2šŠ³š+²^Wgu<ÏêiÌî{™=ô:c´=m¢;eæ]’t0^15?²0æ÷qÂkqÊuiš³4C_ž%.Ϲ(眔R{¥ÔV%µTIÍT+|²€ì. »ȯò¿Ùe@vdgW“Ã׬æ¤&ûÔœ“ö,\g¾v¾nÂqýˆãÆ!‡M}_õØoî´ÿö쇰­µv¿>±û­ÌnWžíþ Û? '¢ §C ç$ÐËÞЫnÐ[|è]ô!ú˜Õ£@ HP#Ô5ÅÙšcm-°¶;+ ÌcE;Ø¡áö('GŽvF ‘Îh Fc0ÑŇU;px"èˆ'AG‰J$ÓI™Â¢PÙ—JçÓ˜®t–ˆÁö`r¼X\o6OÌæK8‚®kW̆òDa|·¾[$ß=Jà-pxÄ <â\=ã…ž B¯D‘w’›w²»OЇoª§8ÍÛ/ÃG’éëŸå- Ì Ê Î - +ŽŒ,Ž*©HŒ«N‰¯ÉHªËNnÌOm.Iy]‘Òþ,¥§.¥¯)e¨5q´-~¢+vº'zn \>8?,^uÿ0Îÿ8ÉXš¢,Mã—gP˳påœrÎZ9g¡’«¤*é#@zÝd7ÙU@vIcwý ÈβS«É¡Z'³U'µÕž³ÕžêLA×N@×C׿·Ù8h³©×úë·Ö›;¬¾mµú¡Ñjë3«í•%Ý9iÃqÓAsbÈe/ÈU¡ÕMžÕ†õCšõ#е.ÉZŸ`mˆµ6ÁÚ˜ºØ˜a æh¨%Ê‚²³FÂlö¶H˜³£ƒ3Üéä„D ÎÎ($JÃè‚Á¬"‚o#GÄiñD*D#’D2“Da“© G¥»Ò":ËÎöd°½™\1‹+añØü ¶ „ãÊq ç #¸¢(MÑ\·®[,Ï-ŽçÏwOx$ <’\=“„^)"ïTwŸ4ßtOq†·_–$ÛW’ãçŸ+ È *) + /‹Œ¬ˆ‹~’ó,5®.#¾!;ñEa«҄ö'ñݵñ} ñC/cF_GMt„Ow‡ÎõÊ|Cî #¼cŒÄ¥IìÒjiÚqyÆN9k¥œ3WΙ¨æôUsTÒ{*ém@zþ¥áÓìNzž¤'éñÕd¦Zÿ•ÔTlÖTgÚtí”éÚqÓõ£&ë‡L¾è7ù²ÇøëNãoÞ÷ÒøÇz㟫·—ï,4Þ“e| ÅøpŒÉ‰0“Ó&ç|L/y˜ý%0»Á1¿C³x@±xH²|Œ·ÔÃZ` Æhˆ ÊÊimælmް±D@!N¶ÖNvP'˜­“=ÌÉÁÞÉч#œœggg$ ΣqÄa\ð.XGÄâI8G â‰t Dd)l•G¦ (t!•áNezÒXÞt¶˜Î–08Ln0“Âä‡1ùá,A$KÅrf¹ÆhŠe ãØÂx¶0#JàŠ¹nI|÷Gª«gšÐ+]äáî“éá›åé›í%ÎõñËûH ƒŠƒƒKCCÊ#êbŸ&D>OŽjH‹nʉzUÕ^Ùý4²¯.bèEèhKÐøÿé.¿¹wÞò~‘b;ÿžúaÿq¹8_š´_š²^ž¶TΚ(g •³ºª¹ª¹;ª¹*é5•ô2 ½HA»Ó;Pí =Ìý±šLOëß“êiKõÕÍêëLë¯Ô[7¦·~DoàÞ}z_¾ÕÝÜ¡ûm›îw/t¬Óý¹JoG©Þïùz{2ô&éŽ28bpZbpÎËð’›Ñ_<ã,“ÛTÓû$³‡³GXs=Œ¹>ÊÂiaìli‚€˜:Y™Á­-m,m¬m­í Ž0;G{˜£ƒÜÑî œV‘H‹F«1X‚ D$cñ " GdàI,™M p‰T‰&$ÓÝ) O ÛÊSY;Î ¦sBèÜ0:7œÎ‹dð£èüh:?FS,CÇÄ3 L×–k"K˜Ä%sÝRxni|tG†Ð3Sä•åæíî“ãá›ë-Î÷õ+”øû”–…WE„< ­«O oÊ kÍ }SÒ]ÜW<Ôè?òÒo¼ÍgºÓs¶G${ÇU Ðç‡ñFPÇÇm—&¬—¦Ì—§M–gô•3•³”³wT³7UsWUs—Usç?ñPÛÍv‡¹CÀÜÁÕd÷´þNzL{NÓÌ}©ûk'¿áýý÷7½»ÿU×ýÍí÷¿}uoKãýŸjïo«x°£øÁï¹ö¤=<ðèpÄããAO‹uÏzè]ê_á\gÞ"Ý%ßÇ?ĘN4ÂãŒÄ"QjD†„v¡`°4 Žá‚g¹8X"GâÈîxŠ'žêM Š 4 ‘Hd!$f‰AbE‘ØÑ$vŒ¦X;ŒÌŽ'sÈœD 7‰ÊK¦ñRèüT† éšÎfpD™\QÏ-‡ïž+ôÈwó,ðð.òò.ññ)“øVúV‡Šk#ÄõÑâ¦$ßÖtŸ7y^o‹={+<ž ß×ñG›Ù“¯˜3é[¼¼£è‡/ Ú}xY1_5YÓ_¼¢j‰°6PX"lŠâ·$ðÚÒ89¬îBF_9e¨š8R‡xž~˜kwvÚÊ{ ó}æ>é/?^zyäÎòè åØUåøåÄÕäYÕÔiÕÔIÕô1Õôa`æ0³_Ó>`f¯¦=«ÉNk­$=­5wZ{ö´öÌiéÓ:“gÖŽŸY?rfÃðŸÿÜÔ{ö«®³›ÛÎ~ÛzvË‹³ßמÛZuþ—¢ ;r.þžviOü•‘ýxí˜ïõ“î7Îðocß¾H½s…x÷šËý›¨·î8êÞ‡é=„<¶1Ôµ6Ôƒé[Z˜Y˜[˜šX˜™Zš›YZXXZXB,! #b½²Hk[芣ƒ ³GØ; íAD¬#w&9!)ÝÍtư]øÎXWgœ;ï‰Ä{# bA‚"¢IÁhR(šŽ&G )Qj †«)C×” )CKt¡%aiÉXz Žž‚g¤˜iDV:‰AædQ¸Ù4^ƒ—ÇâpøEðŸv»ÿIv\k%éq­¹ãڳǵ§ë€M_7vbýû†N|ÑrSÏɯ:Om~}êÛ—§¶4žþþÙ™­n+8»#ëÜï)ç÷Ä\Ü~éÿ•£ÞWOˆ®æÞ8Ǽyrû áÎU̽Èû·œÞqx|ÏN÷µþ#+]ˆ¡ž¥‘¾…‘¹±¡¹‰‘¹‰±¹©©¹™™¹¹¹…¹Èhi±%-W¡VÖ¶Ö6v6P˜­Ôn CØÙ#a˜#ÖNpp"9"¨pgÉ‚£xNhW'Œ›“‹§Ö#p>ÐìLq&†;#¤($9IŽÕ‡$ÇkJДˆ"'¡(IhJ2šš‚¡¦¸ÐR]hi8z:ž‘A`fYÙ$v•Gã09Eln ‡[&àTº±«½Xµ¾Ìz ³)„ÖIy@êH!¼ÍÄ÷ J‡«ÇžÃ&_ØÌ´Xν6“u)ºõÞ=úØwÿãÀÝÅÁ›KC×–ß_QŽ\TŽœWŽþ©;­?¡š8¦š<¬š<L¦öS{é=švÓ»V“ÑZiîˆöìí™#:ÓGt¦Ž¬?²nôÈú÷G7 ý¢ïè¦îc_uÛÜzüÛÇ·ÔŸø¾úäÖ²SÛòÎìÈøó÷¤³»£Ïï½pÈïÒQÏ+'„æ\;˸~|ó2þö_è»7œïÝ‚?¸mÿèž­î+ýGýÇ–º†úæFfƆfÆFf&Æf¦&f¦¦f ¢†ÑÂ\3Gµ£•%Äb…XÙZYÛYÛØÛ@ml vζ0”­=ÆÎs$Ú;QtËÉuD ÑnŽOGŒ7ÜE w‘À±p\°.Ä æDˆ@¢Ä1VS‚¯Ž”€ %‚9“’Ô‘“‘ä%MIÃPÓ]hXz&ž‘M`ä˜yfUÄ`•°Øe¨3upíø¡u#‡6 Ú8ðÇ}lz{ø«öÛ[Ž|ÛtdKÝÑ龜m-9±-çäŽôS;ÏìŽ<»?øÜ!ñ…#—Ž .Ÿbÿu–~í<éÆ%Ü­¿Pw®#îÝt¼öð.ôñ}ˆÞ#KýǺæ†zf†ú¦F†¦ÆFêLLÔ†+Œfê9ª!–Ö–`Kˆ-ÄÊÎÊÚÁÊÆÑêdcëlc‡†ÚcmvŽdœsbÂ\{g=ÒÍåaò¶Gû:`$˜— —Gl˜#.Ž‚ãcà„X8!NS<œ )QS’1ALs&¥:“ÒPät4%CÉt¡faiÙZ‘^@¡Ñ%tF‡^ŧU‹(µä:Rcþe¶5 ó&Õ™ŒìÎrìˇ –ÙŒ<Œ?7›n4ži6˜{­+o8ÿöÛ{o.ö]]¸²ÙŸǧ iN„tgb’”‰"e¡ÉÙ.ä<¥€H)&QK)Ôr¹ŠCªjÝpužØ1¦9Õ†h‹rêˆw|›f÷.Ûz Èâ}¹éØ3ÃÉçúÓçZÈ^ßUtÜúÐuãC÷µ½Wû.. œ_<«:£>©>¡zT5rD5ú‡jì 0¶ßŒïÆ÷㻉]ÀÄï«Iwi­4·K{f—öô.É]k'v­ݵþý® ƒ»7öíÞÔ»çËŽ=_¿Þ»ùžoë÷oy¶ÿ‡òƒ[ ÿØ–yd{òѱÇv…žÜpê ×ŸGDçŽñΟd\ú“råþÚE—ëWœo]ƒß¹aïôÁëG÷,tšë=2Ó{lª¯gb olh`lhhlfdld¬f\u431Yq´05³45ƒ˜™Y™™[›Y@Í-íÌ-aæ +¸…µ³¥ ÅZÙ­ak{ºµÛÆ‘oA< N^P„/ÔÙêEAQ!¶¨0;t„& æs‰…¹Ä©ÃÆÃ° š5%iJ¶Ç¦¨Ã¥:àÒqép|†!Ó™…$f£‰y.¤©˜@*%‘ËiÄ*¾š‡­qÅÔ¹£|œ_H-!Žmöí1°®dëÞ Ëþ|Óá£Ñ'z“5§ëξ¸+k½­xsc¡ãÚ‡®¿>ö\Z|wa©ÿìòÀŸË§•ƒ'•CÇUÃGUï«F©F£û±}ÀØ^`l0¶ßŒÿ¾ÚÜN­•fwjÏìÔ™úMgò·µã¿­ùmýðÎ ;7öþ¾©û÷/ßìúºu÷æÆ=ß>ß³¥zï¥û·æÜ–þÇö¤#;cŽî 9±Ï2Õ{l¢¯kl gd``dfhdh¤ù@FÍM5ˆ&&æ&¦&¦–&¦S3+SsSs[3 ˜™¥½™¥£9an…¶°ÆZÚ,¡dK[Æ‚Øó¬„VŽîVpOk¸µ“Ÿ5"Àdãbƒ ƒ¢" è([tŒ-&Ö§)Þ“`‹IüT’¦d;—;—T;—4˜Kš=6Ý›áˆË„㲜ðÙH| _àB(ÂJðÄr ¾ŠŽ­æ`jø¨ç"d½—Ó ±cKýë0»ö(hW"¤7ͼ?×d¸Èp´Bw¢úÑT̓™†»ÒæÛòW7Ú®-´ÿõ¡ëòb÷Å¥ÞsËïþ\î;½ÜR9p\9xT5tD5ü‡jøðþ0²ÙŒìFö¨ݽÚÜ­•fvhOïЙڡ3±}íøöuïw¬Ú±¡ÇÆžß6uýöeÛί[~ßܰëÛšÝ[žìþ¡dïÖ¼ýÛÒmOücgô‘]!Ç÷INôÔr4‚d úúe§[×î\·»{ÓæþȪàCS½GÆzºFúz†ê4ŸQ³E#£Dc3csc cµ ‰©•‰™µ‰9ÔÄÜÎÔÂÞÔÂÑÔÒÉ ‚2³r1·&˜Û, T [–¥×æ ±wƒ8xB} p±•“¿•S"ØÚ9ÌaƒŠ²AÅØ bmÐqšâmÐ 6èÄO%AÑÉPt “j‹Iƒa2ì]2\2±Ypl6—‡Ä qE.ø¾Œ„­¤až°PÏxÈ箈zOx“¯ÃË»×!Ð7‘Öñ–=)f}ÙFC£eº•¦ž>˜©»+m¼-yc¾õÚÂë¿>´_þØyq±ûÜRÏÙåÞ3ËïN*ûN(ûªލ«†©†Ã€áýÀû}Àû½šö¬6»]{¥™íÚS¿êLþª3þëÚ±_Ö½ÿuýà¯ú~ÝØ½}Sçö/_ïøºù·Íu;¿}öû–Ê]?íÙš»o[êí ‡vFÞ|lŸäÄAÓG\5‚´‹gHWÎa¯^D]¿ ¿uÕ^#h­¼köøéã‡&º êÿ¢f‹†Æ†+ˆjGS#c3#cs# ¢±)ÄØÔÚØ jlfkl31w0±p2±D™ZbL!xS+’™5Õ̆iå˜Û ,`nö–Þ–ŽbK¸?q ¶B„Y9GX#£¬‘1ÖÈXkdœ:T¼*Á •¨)IS²5*ÅF]*•E§Û¢3ìÐ0L¦=&Ë“ wÉC¸ä#±Ehl‰ ¶Œ€©¤ Ÿ0‘Ï8ˆZS»C“7ì¥?ôU°õ›pHgœyO’i_¦áPžþHÉã‰ò‡SU÷gjîÎÕÝ–5ÝP¼¼6ßzu¡íòÇö‹‹ç—ºÎ.uŸYî9µÜ{BÙwLÙwTÕX5ð‡jð0xÛ íÓ´wµ™_´WšþE{j›Î͵c?¯ýyÝÐÏëûÞлmc×¶MíÛ¾lýåë¦_7×nÿ¶zÇ–Šß~(ܵ5{϶”ýÛãîŒücWÐÑ}~ÇÕ‚‚?±Ï¤^Á=m›ý¬_BÞ„ZtD›ö$÷¥ eë>š(y0U~ºúÎ\ÍmYý EãõùWZ.x}ñã›ó‹g—:ÿ\~{j¹û„²÷˜²÷¨êÝUßaUÿ@ÿA`쀦ýÿ4³M{¥©Ÿu&ÖߺvtëÚ‘ŸÖ þ´¾o놞­;·nzóó—/·}ÝøËæš_¿­Ú¾¥lÇù;·fíÞ–¼o{܇vÝ'>~ÐýÔaPõIsõ¢óõË·®Úݾ½{rÿ¶ÅªàãÇ uèéê¯~úÿá>Ɔ`&†¦Ff ¢‘…¡±¥¡±•¡‰¡ ÔÐÄÎÐÔÞÐnhælh†64Ú -ÈFº±Û؆ošØº›Úy™Á|Íì%ææÁŽ¡ðp §(KDŒ%"Ö§)Þ‘`HÔ”dH³D¤X"R!`ÎiVÎéÖÎÖΙ6ΙPd–-2†Ìu@åÃQEt1]ꂬ 8WQž2k8Ï]íݡ;V¯ü-Ú‚Í:"»ã ûRô‡2uGòN=˜,½7]yg®ú¶´ö¦¼îº¢ñêBó•-—>¾¾°Øvn©ýÏ¥ÎÓË]'—»+»){Žªz¨ÞÞúV:øp+Mü¬3¦á{ÿÓº¡ŸÖõÿ´¾ç§ ]?m|³uÓ«­_6ýüuݶÍÕ¿~W±}KÉŽrwnÍØ½-qߎ˜;Ãíö?²ÏçøAѩü?1Ï$_<ƒ¿|}õâúeØÍ«¶·¯Yß¹ayï–Ùý;Æï=z`øø¡î#}]]=õ§¯§¦ž£&C}#MÆšLô ÍÀ Í Œ, Œ FÖÆP}c;}c{}G}g}S”¾)Vߌ``N6° Z² ­xFÖ®F6nÆPO[;?SX€©}™C¨™c¸9<Êc5‡Ç™ÃãÍá fðD0s§$MÉšR,œR-œÒ,é`D†"Ó‘e㜠fçœCæ; ‹àÈ'T)Ú¹‹¨"ŸRjèöuÛFM³‡Õ+Ë7~f!&=‘F}ñúC)º#™&rLåߟ)¾7WvGVu[ñôæ|Íõ…º«¯|l¾´øòÂRëù¥×g—ÛÎ,·ŸRvœRvžPuWuÞÞU× väŸ&4vj¾ŸuÔ|[ׂ|?®ëýqýÛŸ6tü´ñõO›Z¶~Ùðó×µÛ6?ù廲í[Švü³skúîmñûvDØzh·äÈ>ïã…§sΣŸ;Iºxwù,ò¯ ðk—ìnþ½uÍêÎ ‹»·Lïß1zxÏðá}ƒGô?ÒÓ} jÒW;ꀎzú†šŒ4ë˜è˜ê˜é˜ëZèBô ­õ zF¶zFözÆŽzÆÎz&(=¬ž)þÿ¡¢®ãÚºþ€ÿÑä&÷F 7H ÅB’’7ÜÝÝ­hii¡BÝ×®î.[·uíº­“N;wïÖ®n@r^¥ëóüžózÿyÎ}Ý×ùÜïÍÈïÉ(È(\Y´0³xqVÉҬ҉첕9kr*ÖåVn̫ޒW½-¿vG~íËùµ»òkwç×îɯݛW»oV~Ýþ9æ,¨;TPw¸°þȬ¢ú£ÅõÇJê—6œ˜UÞpº²ñluãùšÆWëš.45¼ÑR©£öJwÍ;}ÕWT|¸°ìã±’ÏÇ‹¾XYðõúÜ6gÿ¼3ã÷½î¿;ÿ9ê¸uÂ~ûŒõîyËý æ‡o¤?ºdx|%íÉ»©Oß×L}˜2}-iúãÄ™Of>Sy?÷^Wú¾ˆ›¾Œ_ÍŠùÏ×Ñÿ¹1×nÖŸ ìïsù~¦Á?Òïh¸¯høë4Â'tâ5:é*Ãï “ò;ðUNÐYõxã ½[ÄÛ²I"\--/Ž“ ÇGõ«c»’âÛRS“jÓR* ©¥F]±IŸoIϵš2íÖL‡-Ãa÷8n—ËåvÏñ¸<îg2çdÍÉv{rܹoÎþ9òjgÌ«=”ÿÌá‚Ú#uG ëŽ=s¼¸îDIýɲúÓåõg+ÎW5¼ZÝøZ}ýÅÆºK­5WÚ«ß骺ÚWñá`ÙÇ#%Ÿ/.úriÁ7«rX—ýóÖŒßwºÿÚç¼yÀñïaÇícö»'m÷ÏXž7?ºþø¢áÉå´§o§N½«¾ª™~?eæÃ¤™½³>Vû>Ið}š>SýçóøÿÏl¸çæòa¡Ï惿§"ßÐp_ÐðŸÑшÐHï0ü.3ý_c¾Â >ã a²_ñ¶E†n”'墉hñ¢8Ù‚ø¨¾„˜Ž$ekŠªA›X£K)×kKŒº¢t}žÙ˜m5eØ,»Õã°¹—Ëéú߈îŒ9™.OÖœìÿ"zrÝž<·'ßQàÎ(re”¸2Ê\™®Ì*Wf­+«Á•ÝìÊnsåt¸rº]¹ý®¼AWþˆ+Ô]°ÄS4žQ¼"³d2³tmVÙúìŠÍÙ•ÛrªväVïÊ­ÞS½'§zoNõ¾œêýsÌš˜[s0·æP^ÍáYùµGòkÔ+¬=>«¨îDqÝÉ’ºÓeõgËëÏWÔ¿ZÕðZmÝÅúÚKM5WZªßi¯|¯»üZ_Ù'ƒ%×Gо-üv"ïÇÉì_6fü±Í}c—óæÇ¿û·9î±ß?a{xÚòèœùñã“7 O/§M½¥›~;uú]íÌUÍÌû)Þ’}&û®%Í%>óñœOÔÿÏïsífýÊÀþ<›?ûÿ¤"_RqŸSñŸÐÒˆWi¤+ ¿7™þ¯²Ïq‚Oñ¨‡C˜û„ì"Þ–ÈÐõáJyIJhñÂ8Ùüø¨ž„˜ö$es²ªN›X¥K.Õk‹ º‚ô´\³1Ë’î±YÜ6«Ûns9ìN§Ã9WÑér;]§{VÆœL§;ËõL¶ËãrçºÜy.O¾ËSàò9=%NO™3£Â™Qą̊uf68³šœYmÎìgv·3§ß™;ß™;ìÌ[äÌ_â*Xæ.\î)^•Q²&£t}fÙæ¬ò­Ù•;rªvåTíήړ]µ7»j_vÕþìªÏåTœs(·úð35GòjŽæ×˯9^Ps¢°öDQíÉâÚ3%ugKë^)«¿P^ÿZUÝÅšÚËõÕo7V½Û\ù^{ùµ®²OúJ®Ï/þj¨ðÛ%y?.Ïùemæ›<7^rÞÚéüw·óÎ>ç½Î‡Ù²<>gzòªñéú©‹úéKiÓoéfÞNõ¾“ê}W뽪õ½§ñ½¯³>HyæÃÿßO,ø¹˜ðwLøò%¹NG>¥á>¢ã? Þ¥¯ÐI~Xþg9§¸ÁÇxÔ¡ÌÝBö6ocdè©pB.Z-^'ë‹Wt$D7'ÆÕ'ÇWiÔeÚ¤B]J~š6Ç Ë4êÝ&ƒÃlrXÌv«Ån³Úf—Ýn³;lç—Ýé¶;=vg†ã™L‡+ËáÊv¸rçä9\w‘Ã]âp—9ÜvO•ÝSkÏh°g4Ù3Ûì™ö¬n{V¿={¾={Øž³È‘»Ø‘·Ì™?á*\å*Zã.^ç)Ù”Qº5£lGfù®ÌòÝ™å{2Ë÷fVìϬ80çବÊY‡²*gϪ:’Su4§êXnõñÜêyÕ'ójNåל.¨=[P{¾°îBQýëÅ Kë/—×]©¬}·ºæýšêª>i®ø¼½üË®²ozK¾*üy4ÿ·‰œ¿Vgý³!ãßÍw¶zîîðÜÙýpûÑ~çãCŽ'ÇlOOZ§ÎX¦Ï™§_1ͼ–>ózº÷¢Ñû¦ÑwÉà»lð½¥Wæ¼=ç´ÿç;üÜ7lø+òùŒ|BÇ]£ãß§ãߥÞbßd^cúgùŸâçæS÷†2w†±7GðÖ‰CWI…K¢EÑâXY·RѪŠnHŒ«IR–§$kóS“stš¬4­Û sõV“ÑjJ·šM‹Ù2»¬6‹m–ÝjsXíN«Ý5ËæðØöYÎ,»3Ûî̱;síÎ<»³Àî*´»Jì®2»«Â殲¹kmž›§Ù–ÑfËè°evÛ2ûmYómYö셶ìÅöÜ¥ö¼ Gþ*gÁjgá:WÑ&wñVOÉOé.OénOÙ^OÙ>OÙ~OÙOÙÁŒòY‡feVÌ:œYq$«âhVå±ìgNdWÌ©:•S}:§úLnÍùÜÚWóê^Ï«¿˜ßp©°þJQý;%uï•Õ~X^ûQuõguU×›*¿n­ø®£üǾ’_†Š~_’c"÷æê¬Ûk³înȺ·9óÁ¶Ì‡;2ïò<Ùë~rÀõô°sê˜cú„}ú”mæ¬Õ{Þê}Õâ»`ñ½fö½nö½aMàÍ9—æ\~á .üÜçäSò1ù…{Ÿ‰{—¿Â \fß`’.0IçX~§ÙþǸ‡yÁûC¨/ ˜ÛÂØ"x«Å¡Ë¥ÂÅ ÑPtdo¬´])oTEÕ¨c+㊓Uù) ÙšÄ m²;5Åž¦µêu&ƒÞd4˜ŒÆôÙe2¥›Íéf‹Él5Yl&‹Ýlu˜­N‹m¶£Ûjϰ92mŽ,›#ÇæÈµ9òlŽ|›£Ðæ,±:ˬΠ««Êꪵº¬îf‹§Íâé´xº-}–Œù–Œ!KæBKÖ¨5{©5g–»Ò–·Úž¿ÎQ°ÉQ¸ÕY´ÃU¼ËU¼ÛU¼×U¼ÏUrÀUrp–»ôМÞ²YG÷é¦Ü©­¹ÓÛs§wæÌìʙٛí=å=”é=šá;–á;‘á;é§<à´œ™svι> Až{Ÿ\åáÞáâ®pð—Ùø‹,Âk,«,â9é4‹|œM9Âõ?À Üür(u›±1œ=É[.“ ‡¢þ¨ÈöXI£RV¯(Kˆ.RÇæ&*3“âÉ öµU“dÒ&S5iºÔ4.-m–>MoH3Ó ézã,³!Ýb4Y&[ºÙa²<˜a±eZlÙ[ŽÅ–k±å[l…f{‰Ù^f¶—›UfG­ÉÙ`r6›œm&W§ÉÕîêKwÍOw¥»GÒ=£¦Œ1Sæ¸)k…9{Òœ½Ö’³Ñš»Õš·Ã–¿Ë–¿ÇV°×V°ß^pÐ^xÈ^xØQôÜgñ¬£®’c®’ã®ÒãîÒ®²S®ò3®ò³®Šó®ÊWœÕ¯;k.:ê.;Þv4¾ël|ßÙtÍÕô‰»é3OÓõ¬Æ¯s¿-hø¡¸þ粺_kjþlªºÑQ~«·ô΂âû#EF‹.-|þ‚G8Æ#á‘ñHûø~»Cüw„nmRׄÓWˆ˜K"9Ãþ€4´S.lV„×DG”ÅŠ ã¤9JyF¼Â©Š¶©bÒâ jeZb|jR‚&I”œ””’<+9E“¬™¥MÖ¤¦hu)Ú4MêlJƒV—žšfNM³èô¶4ƒ#ÍàÒ=zc¦>=Ûžk0LÅs©Á\n°T,µk£ÁÚ¬·µëmz[ÞÞ¯·Ï×Û‡ô޽cTï3¸Æ îFϤѳ6=cSzæVSÖNSönSö^sÎ~sÎKî!KÞ‘ç¬yG­ùs ŽÛ OØŠNÚŠOÛJÎØÊÎYË_±V¼j©|ÝRõ†¥æ’¹îйá]sã{æ¦ÌÍYš?µ¶\·¶|ikýÚÙò»ù‡¬æŸsš~Ëoú£´áFeÝÍúšÛ-Õw;+ôV<(4\ödQéÓ±’©e¥S¥Ó+Kg&KgÖ–y7”z7•z·–x·—øv”ø^.ñí*öí.{‹Á¾b°¿˜sðœ•àž;‰;;Ž;.Ä Å Å %%ì %î %½ê·]@Ù, Ø´6Á³û%ÜN)¿I.¨UË¢DÑÙ±bwœÔ'³(éʨ´øèTU¬F—œ LTÇ«Õ ‰‰ ‰I³f‹ª“RÔIšÄdmbrjRŠ.)EŸ¬1¦hÓS´fMªU“j×ê\©ižT}¦Î£3äëŒEié¥iéåi¦ê4Smš¹QgnÑYÚu–.¥Ggí×Yçë¬C:ÛBmTg_šæOs®Ô;'õ®u÷&ƒg›1ãecÆcæ¾ô¬éYMÙ‡M9Gg™ŸË=öLþ sÁIsáiKñYKÉ9sé+¦ò ¦Š×Ó«.¦W_2Ö^1Ö½clxÏØô¡±ù#c˧é-Ÿ§·~ijýÚÔö­µíGëOîÖ_3Z~Ïnù« éŸ’Æ[UõwêêîµÔ1Ù˜œž”bNÒX“µÎ”T·F—¡MËѦå¥ê‹R ¥©ÆòTcujz]jzcª©%ÕÔ®5uiÍ=Zs¿Ö2¨µ k- S­£©¶¥©¶q}¥Î1™æX—æÜ¬wmÓ»_Ö{ö<ûŒŒ™‡Ò³Ž¤gMÏ>ö?ާçž4åŸ2œ13¿’^zÁXþº±â¢¡ê’¾æ-}í;úú«úÆôM×ô-ë[>Ó·^7´}ehûÖÐþ½¹ý'kÛ/޶ß]mf´ÝÈm¹YØüoY㪆ûõu›kµ×<î©~:P55\9½°jz´jf¬jfYõÌòjïÊjïdµwmµo]µocµoSµoKµok5ØV ^š³£ìœóò £pÏãöKqû$¸½¸=á¸]aø—Ãð;ÂÛÈÛÂH›ÂÉëÃ)«E+#'"‚F#i Äôn1«U©—r+dübyhŽBè‰ ·G‹ÌёƱ.F¢‰‘&ÆÊÕ± U\”2.:N7G¯Š‹Oˆ‹WÏRª’”ªäø„”øM|BªJ¦RÓ’̉Éö¤W’Æ“’š’š—¢+Ò¤•hôåZCµÆP§14jŒ-c‡&½K“Þ£IИ5¦ay¡Æ¼XkYªµŽk­+Sm“©¶u:ûfc»Îùrškoš{¿Þ}Ðà9dÈ8jÌ<6çø3YsrNóNóÏ _1¿j(}]_~1­â’®ê-]ÍÛºº«ºú÷u×tÍëZ>Õµ^×µ}©kÿ&­ý»´ŽŒ?›:~µ¶ÿaoÿËÕþwVÛ­ÜÖÛEÍwËšîW7>¬oxÔ\ÿ¤³öioÍÔüê顚鑚™Ñš™%µÞeµÞ‰ZïŠ:ïª:ßê:ßÚ:ߺ:߆:߯:°¹l©[ëÀ¶9ÛëÀK/ìRâž{9÷r4n§÷’ ·]‚Û&Æoã7‹ ÅÄ bÒ1y•Øo\ì?&X$š/¦vKhÍF”U!eʸ92¾[j“ ÒaiŠp­B”¤ˆHˆŠTF‰c£$1QÒ¨h™"Z.‹VÈ££äÑÑòèEt윸¨eTŒ*:&!:V››§‰ÓÅÆéc•éJ•E™`W»T‰™ I9 Ʌꔵ¦"Q[“¨­OLmJLmMÔu&êºÓúÓæ'ê$êG £IÆ%IéË’Ó—§˜V¥˜W§XÖk¬[4ÖíZÛ.­}_ªc¿ÎyHç:œæ>ªw×{Nè3fÔgžÔgÒçœÑçKË%­èBZÉ뺲7uå—S+¯h«ßÑÔ^ÕÔ} i¸¦iúDÓü™¦õº¦í+MÛ7šŽï´?h;JëüÕÐù»©ó/Kç߶ΛîŽ3ÛïäµÝ+j}PÞü¨ºéq}Ó“–†§õS½uÓýu3ƒõ3ÃõÞEõÞ%õÞ¥õÞñzߊߪßêßšߺ°¾ll›Àæ°eÎÖ°­ñ?Ûո綩p[•¸­±¸-Q¸ÍrÜF9~ƒ ¿NFX+#®–WÈÈËd~£RÿiÀ 4°[Ü*¥ÖIéRf‘”•#åxd\›ŒŸ. ÑÉBSäÂDy˜J' ’E(äry¤T.–È%b¹T,—Iär‰\1K*’Ê£¥òX™"N¦PÊ*¹"A•$JVDiÑ©QÑúèXStœ5Féˆ÷Ä©²• JuI|b…*©V•\¯JnV¥´©R:Uš•¦_¥T¥%è&è'¤©õã‰†å‰ÆUIÆ5Iéë“M[RÌ/¥Xvk¬û4¶Zû¡TÇó˜ÎyBç:©sŸÔyNé2Në2ÏèrÎéò^Ñ\H-z=µä¢¶ì²¶âЦò”ê«)µï§Ô_Knø8¹é³äæëÉ­_&·}ÜþmrÇÉ?%wý¢íúM×õ‡¡ëFz×?–®[ŽÎÛžŽ»Ùí÷óÛ·>.o}RÝò¤¡iª¥qº³q¦§q¦¿qfA£w¤Á;Úè]Òè[Úè›hô­hô­jô­nkšÀº&°¾ lœ³© ln[þÇ òÜúdd}"n]n­·&·:¿*¿2†°<†8C‹&-Œ"*(}rÿ.y@³,¨V\&£HéYR†SʲJÙ)G+å%Iù*IHœ$$Z*—Äba¤8l–H.…‰#ÂÅ‘sÄ¢H‰(R)‹Ë#ÄQâèHql¤X)QEJÔbI’X’"‘ê$2£Tn–)lò(—<:3*6?*®$ZY£ª‹Q5Æ$´Ä&´Çª»cÕ½±‰±I â’‡ãRF•)K”š¥ñÚ UêJ•n2!m­Z¿AmÜšhÜ‘dÚ“dÞŸl>˜b9œb=ª±×ÚOj§´®ÓZ÷­ç¬6óœ6ûUMÞkš‚74EojJ.§”½\ñnrÕ{I5$Ö^K¬ÿ$±ñ3uóuuË—êÖ¯Õíß©;~Pwþ¤îúEÝý[r÷šî¿t=ÿè{n{þµtßqtÝót=Èê|˜ßñ¸¨ýIYÛÓêÖ©ú–é––™öæ™îfo³w°Ù;Òä[Ôì[Üì[Úìoö­h+[Àd XÓÖ¶€õs6´€³ZÁ¦V§!ÏM¦"«4Ȫ$ÜJ5n… ·<?_¦$,U–(‰ ãHƒ±äžh¿Ž(J‹Â¿VX.*Q³d4—”n‘2 ¦VÂN’pâÅÜ17*’'äGF†„G„„E„†E„"@$ ……ŠÂ³ÂEÂðax¤0\, —„…ËÂÂaáQaá1á"e¸H.R‡‹’DšˆH}„8=RbKY†T‘/‹*–GW(bëqЏV…²#JÙߥš0­‰I\“4›´,.eyœf¥R»:>u­J·Q•¶-A¿CmÜ“˜~ 1ý`’éH²ùhŠåDŠõdŠýtŠãLŠëlŠç|JÆ+)Ù¯¥ä¾‘\ðfrñåäÒ+Iåï&V¼—Xõºæšºîㄆϯ«š¿Tµ|­jûVÕþƒªã'U×/ªîßT=$öü•Üû·¦÷fjï­´ÞÛ¦ž»ÖžûÎîGÙ]Oò;Ÿw<­hŸªiŸnl›iiioõö´zZ|C-¾‘ߢß’ßÒV0Ñ V´‚U­`²¬ikÛÀº6°~Άÿ1‘ŽüÇ€Œëq-nY2ni"nL_¢Æª ‹Ô„…jâ ŠÔOnókŠ¡ÔEû—G*³äA.Y°EJÓKèZ #QÌŒ³b"Ùò¶$‚!↉¸¡á¼°Y|~XO8+”'ð¾@È„…ÂC¢Adˆ@"† ä¡‚¨PAL¨ .T/ªÂda˜Nn™Â#ì¢HO„$/RZ,–WH£ê¥QMÒè6it‡,¦GÛ/‹”+‡ñ ª%Q K£Ôãщ+b’VŦ¬‰Ó¬‹ÓnR¦n‹×íTé÷&$©GÓ%™N$›O%[Ï$ÛÏ%;Ï'»_Mθ”ýFRî›I—‹¯$–¾£.O]ùABÕ5UÍǪºOã®Ç7~ßüµ²õ[eÛ÷ÊŽŸ”?+»Söü®ìýSÕ{CÝûOrß-MßíÔ¾;†¾{¦Þû¶Þ‡ÎÞÇ=OrºŸæwO•tMWtN×vÌ4vx[Ú½mÞÞ6ßüVßP«o¤Í7ÚÆÚÀ²Ù:m`E;XÕ&ÛÁšv°vVX7gý ‹Ès mÈB 2bB† Èp²@‡ÔáRñ}ZB¯–БBlN"Õ©É•*¿R%%/Ö?3&Àh’¥É‚“¥Ô 5VLSDÒ¥Œ3<œ)c…„±¹B6WÀáÌ å²CyìY|6?„ÃåðžÃ ãòD\^$—'æò¤\žœÇâñcxü8_ÅIä‡jBBu!C¨Ð,sEYaùá‘¥"IM„´>BÖ)ïˆTôŠóÅQ $Ñ %1£ÒØ¥²¸q™r¹<~•BµZ¡^¥Þ´%&ù¥Ø”]qÚ}ÊÔƒñºÃª´c*ý‰ã)uúµùœÚúŠÚ~Aíz]í¹¨Îº”ûVBþÛ EWU¥ï«Ê?Œ¯ø(¾êeÍgqu×㾊kü&¶ù»ØÖbÚ~Šíø%¶óרî?b{þŒí½¡ìûGÕwSÝÿoRÿ”þ»ºþû†þ¦þGÖ¾Çξ§½SÙ½S=Ó%Ý3•ÝÞš.oC—·µÓ×Ùéëíð tøt€‘0ÚÆ:À²0ÑVt€U`²¬îkæ¬ÕõŸÁLä¹ùdÀ… 8~+ÒgFzL¸ît\§ßnÀ·ê :b–XžL*J$ç%øeÄSqþéÑ:E@²,P% Š•Ë#©’ªHD†ÓCÃè‹­ù"¶î«˜†ob¿‹nþ!ºõ§è¶Ÿ£;~îü=ºûÏèž1½ÇõÝTößRõßVÜM¸§x xhxlxb˜rõOeöOçöÍöΔöz+{¼µ=¾¦n_[·¯«Ë×ÛºÀPXØw±.°¬ Lt]`U˜ì«ç¬™ÕýŸÎB乎|¤#iÏFÚ267ÒâDš¸;®Î†¯±ÊM„b#1WGÌÔ’\)d‹šlPùib)êh¥Ü?J FD EA!aÁ\a0G@e…R¡4ZƧÓx —Aã0©l•Ŧ±84&—ÆäÑ!´ÙM !NgˆèŒH:CBgÈLƒÅ`Æ0XJ&KÍd'±Ø'Í5qxNnH&/4Ÿ/( « oˆÚ…‘ýBñP˜x$\²8\ºT$›ÉWF(&#¢ÖFF­ŒÞ³E»]ª|Y¦Ú£PˆJ<t,&åd¬æt\ê9¥î¥ñ5¥é ¥õM¥ã²Ò}%.óݸœ÷âò>ˆ-ü(¶ä“˜²Ïb*®GW}]óuTÝ·Q ßG5þ hþYÑú‹¼í7EÇŠÎ?Ý7=GõÝŒéÿ7¶ÿ¶rànüü{ªù÷“æ?Ô >J|b|jœ²ÍŸv͟ΘÉðö{Kû}}¾º>_c¯¯­tö‚ž^0¿ õ€…=`´Œõ€eÝ`¢¬œ³ªLö<³ú…ær书R¤±i,Dòàú¸6 ©ÎD*=¸27¾Ä‰/°r,·‘h×Í©$}2I£&'(ýâbü ŠDê/û "xála SÈ ¢…SùÁÁ0Ò õ‚%½`i/ïË{Àа²¬š3ùBU=ò\e-RQƒ”WÁeåpY)\\Œ"ùù¸œ\\V6ÞíÁÛ“• 7´bb*1>™¥"IcÉQd¡Ì/Dâlj 0Ã)4!%8Ô?($ À ôçús‚üYÁþÌ`ÕŸFó§Ñý© ÿ`–Û?ëÈ œÝ- F‰ƒ¤A²À EPptP°2(XLUS“©´4ÝBc8éÌ,»É©`ñØüvnèO0ÂŽòÖ†„O„ˆV†F¬X¹A Þ,oH^ “í W쉈Ú/Ž9,‰;&Už©ÎÈÕçI¯F¥¼¥{3Êp9Êôv”íj”ó}EÆ5EÖÇŠÜOå×åE_ÊK¿–•+«üNZýƒ´ö'iý/’Æ_%Í¿KZþ·ý%é¸!éüGÚ}SÚsKÚ÷¯¼ÿŽbànÔüûуb<Œzœ0ô$yø©fx*mxÚ80Þ&úÁò~°¢¬|¡°ùORÐç7Áyõp^-œ]gV ž2ÄUŒsâÌ9xc&>Õ‰O¶Ô&B\!JK”¨‰¢x’ †Ä““9R2#Ò&ò ó PB)þ|^…@aR˜AF0…L ¦R‚i” %I dQ8”%€ÿì@€Ð? Ü?@ä öøÈ1Ê€@U@`b`PJ`°>ˆj ¦¹‚iYTF!YNg708í,^?›?Âå„.å &xÂU¼°5ü°uüð|Ñ–ˆí!‘;BÅ»„Ò}a²ƒ"Å‘ˆèã‘1§Äʳ’øW¤ê×d‰eÚ˲´·eÆ«2Ë2ÇG2÷'²ŒÏ¤Ù×¥y_I ¿‘')ý^Rþ£¸êgqÍ/âºß"~lú3²ù¯ÈÖ‘íÿDvÜwß÷ü+é»#í¿+¸'| Xð0jèQÜÐãøá'‰#SÉ#Ó© gô#3ƯeÄkñ¹‡}Yþ¼a_ñ0(ÕC ~4 ö {è_æ‚¡A02FÁ’A06–‚eƒ`|L¼9€<—ÑgôÀž.ØÝ»[aGl«G,µˆ©g,ÃéŠp)yxu^éÄÇXñ2#A¬#„%CˆÜ8"+ŠÄ‘¨brP9 Œì/ð£„úQø?.ÅíOfdZ™L¢’iä:9€Iög‘)l2…K¦ðü(!~”Ùca~‘%’B‘P(2 EAñ¡ø+)þ ÿ$Š¿Æ?@h reÑʃé TFÕOg08£LîRo‚2É ]ˬç 7q…[¹a/ñÂwòE»C#÷ ć„ÒcᲓáŠ31ç#b/DÆ¿!N¸$N~[œzU¬_búHbûTìü\ìùBœùUdÎ7‘ùßEýYòcDÙÏ•¿FTÿQû‡¨îOQã_¢¦¿E-ÿˆÚnFtÜŠèºÑs'²ï®¸ÿždà¾tð¡lÁ#ùÐãèá'q#OU §N§,šI]4£_ä5-òZú }ž…¾ì…¾‚… x!¨5# ~´Œ€öÐ= z‡ÁÀ0X0 †‡ÁÂa°h,K挽`^ ?gZ›Fàô!Ø8`}¬ëD´mHr#’T‡SUàâJpŠ<œ4éÂ…Yð¡Ïb_öb¿”,壠jÔ‚¦QÐ> :GAÏ(è£`Á(ã`d,‹^H]?§€µã°f)œ²NY' ÁêXÕƒ(;ØDQ‡H+‘ˆ"\X..4ǵãØ&]‡ NÆ$à)±x¿hYF ‰‰D‘ $BI‰À!XdÃ@£àƒðxJ0ÞŠ÷£áÉt<‰'²ðD6žÈ%ùb( ÈÄ"qöAR"QA$ƈñ¢š@L&S D#‘d#’\Dr‰œOò+#SêýüÛ(ýþÃÁ£ÔeAôåTæj*k½‘ÎÙÂàngðv2ù»Y!ûØ‚CáQ^ØI^øY~ÄùÉk¡²‹Å[˜w„ª÷…‰×„šO…ú/„¦¯…Öo…öï…®? ²äý*(ø]Pô‡ ô/Aù AÕß‚šu· ÿ šn ZïÚï;ï »ï…õÞï>ÿ¡hÁ㈡Ǒ#O¤ Ÿ*MÅŒN+Ï$,ñ&-ñ¦,ñê–øôK|¦%>ëŸsÌ—1rÆ@Á(åc f Ôæ1Ð::Æ@×èýc`` Žc`h ¿ Üÿg·Ž[Ç®‚cWÀÑKaÅ(,†%ýHd7Þ‚ê~9Â)D˜9Í…[‘â§Å‘qÄx!—ãñ<.‚€ #àDˆãñLŽNÆQ)H ? R0B¢"D:B` &B`!ŽÀÃøxB(†ÇGàñb<^ŠÇGáð±8¼ ‡OÄá58|ŸŽÃÛqx7Ÿ…'à eR=‘ÔF"÷‘ü†Éþ‹(Kýƒ–PWÒÖÑ73¶3_¢²wÑ8{éÜ Þ&ÿ8+ä ;ôÓ2Ÿu™Ï¹ dŒƒœq?ŠÇAù8¨uã a4O€Ö Ð>º&@÷è}  ¼ x ~N¾ –oe›`ÙXº–¬‚#ÇaÑ8l·C:n3ªF¥5 Ê@ˆ_:BÒ!ÄdŸ€ÃÇápQ8œ Dâ‘p" <"Â!â$„FF‚)p€?L „IA0)&Ra"&Ða<Ƴ`<Áó|/ÀáÃp¸HN2û,.ÁÅ!85‚KFpZg@pfçDp.‡/Âá+ð„<±@ê%’ü’)Ký–SWû­Þ@ÛHßÄØÌÜGe¢±Ñ9'ÜsLÞ«Ì×YÂKìð+ìȫɜ¨¹qŸs¾ä¦|ËÓýÈ5üÌ5ýµþÊuüÎuýÁÍü‹—}ƒ—÷7¯ð&¯ø¯ì_^Åm^õ^í]^ý=~Ó}~Ë}~ûƒÎ‡!=Cû  <= ™ŠX4%–.™QŒyc–yã–yUË|IË|)ã>ݸÏ0î3MûpM€Ìå g9È_JV€ò z¨]êW‚Æ• y%h[ÚWŽU kè^z^ˆØ‹ýÏn¬èe¬h¾ ß ×ÂI8dæ-†¹#0«f´Ã´:8¨(„)Y°Ÿ !Y‚ÁÏ^m"‚‹Ç!Ñ8DŽƒ%8X„‡…˜O„9D˜A‚idx® –ˆ%aIÁX"K a t,ž‰Å³°8ŒãÁ¸'€qá0 #RQÀH Œ(a$F40¢ƒát±ÂˆF²`$FJ\%ß€Ã·á ½xâ 4B$‘ü&Èþ«ýÖûn¢m÷Þ@ÝH;H?Ä8Ì–ØŽÅ×cqX¤F²aØ Ãk€±›c•6ÁʞĄá1|†MÄÐH˜`2&ˆù@~1"R!ÂÓ B‚ácàP †E¬ƒ•c°Ñ¬ƒUc0 F‡Á1+ãÂ`²0Ø| ¶ƒ­Ä`k±pnÃÂÝ0Ò# Üb?Ž#LâˆëñÄÍòKD¿]DÊ’ÿrÀq¿À3” Wüƒ_÷§^  _ `] ä|Èÿ8(ô³ Ñ—Á’oƒ?Pã~¡&üNKú“¦ù‹–zƒnø‡nºI·Þb8þe¸o3²î0sï2 î1‹ï³Ê°*²ª±ê±³[³Ûž°;žpzžrûžr§xCSü…Ó!£Ó¡Kf„K½aã^ÑrŸx…O¾Â³Ò§\ Ô«@ò* i«q °¬öµÀµd®9@þFP¸o¥›AÙfP±TnU[@õP³ÔnýOÀk˜ÿ\Àø¿‚õ?‡õ?¥œ„ýÃä½XÒN,q–°‹[†EF°pÛ‚ÅÔ`1%XL>ãÁbì0Æct0&ƨ`L,ŒQÀ1‚ ÇA|Ä&B4ìRÐþh¿@41M ¢ 44žŽÆÑѰÑ0 ‡@X„ ‡°‘Fa¢ L,„QA˜$J… ™!ÈAÊ… "Saj L=„i†0mlÛ‡Á.À£Xxö]'aÜz·!ìÀvãI ¤£òI¢ß9åÙÿMrÀ¿ wýhPQØŸQ¸_ø ¾ } ù)0ê·À¸?ƒn%þœòOpê­`ý¿TÓmªõÍq—æ¹GϺGÏ»O/xÀ(yÈ(Ĭ|̬}¬ÂlzÂjyÊjÊêšb÷NqæOq†¦¹ §y£3ü%3!˼¡>á Ÿh¥O¼Ê'Ÿ1“ ~5HX’Öí: [Œëy°nÎÍÀ³dm9[AÞ6¿¾Šw‹%Çb »±ømXÜ,²üÙÝ`û±Øv,¦‹)Çbа˜,,Æ…ÅX°=ŒÑÂ5ŒQ˜h#A  !@"D'£©~è ÿ)Hü¿gó1ç òÐp(+„°"#†0ra”F A)”Aéd… ÊDCùh¨ •£¡Z4ÔA-Ôaº!L?„Y€Á.Æ`Ç1ð$^E6ø~ŽpG<Ž'"Ïý^#R.‘(o“®’ƒ?$Ó>öc~îÇþ’ò-%ìÿÈŸýå¿Dÿ ü;PõO`âÍ Í¿A©·ƒ w‚Íw©¶»T×=ZÆ}ZöZÞCzÑ#zécFÅFõFÝfãSfóSfÛÔlAVï{`š½`š32Ãá.ñò–yùË}¡+}a«|“>Éj _bÖå:°$mš m0l¦-Àº 8¶÷KÀ³dîÙ/ƒœ] o7Èß fí…{@Ñ Ä+Ð.CÄ71Ä70Ä×0ÄW±„SXü,n·ƒlÆÀ«0Ø¥ì Óš1P5*ÅB¹Xȃ…ìXȈ…tX( †fÇ0†¤‡B‰h. M÷CS)è ÿ¹‚AhÒÿ-È@ãfó±Ð0 óÑX†ÆD 1R4& ‰EC*4”„†´hÈ€†Ìh´Î@£sÐèB4º®D£ëÐèF4ÔŠ†:ÑP/€ !³ÂŒc°“ìz ¼‹ì„q{üa„pG8'¾‚'½N _&’ß!ú¿G ¼F¢~B¢_'3¿"ó¾óüèþ EòE~Ã?æoåÍÕ­€¤Ûš;iwƒŒwƒÌ÷‚í÷©®ûÔÌÔœ‡´‚G´âÇô²'ôª'Œš§Œ†§Œ¦§ŒÖ)fç³gš50ÍZ0ÍžaÎp–x¹Ë¼¼å>þ*Ÿ`Ò¶Ú¹HÖÅz³Äm ›@Òf Ý tÛ€~;0í–À¾ 8v×àÞ <û@æ~µdÏ:r€ÜpïAÏ!ïBÈ;rB.a‹ä<9‰c°»1ØíÌ: f9³ `  Ô€*1P!ÊÆ@.,dÆB,¤ÁBjŠƒ!9ãÑB"šGF3(hš?:8ˆ¢¡HÁ("E £ð Ž…BØ(˜‡‚Cæò‰Ð1#GC1h( ©Ñ ¥¡Ñ&4Ú†F»Ðèl4:….A¡ËQ¨jª…jF¡ÛQè.º…žF£ÑKÐÐ8š„ uf3»ïÅ"³ßâIwÁ_@q„+xâU<ù‚ÿÇ„ÀÏÔ/‰ôoˆìHüŸI‚_É¢?É’¿ýäÿøEߢÄýKQÝñO¼ ¹ »h¼hydì~œùˆš÷˜Zø„Vò„Vñ”Vý”^7Eoœ¢·L1:¦ÝÓŒþæà sh†µÈËZâe{9Ë}ÜIµ/t­/l=mâM@¶DmqÛ€j;Hz ¤ìÚ] m0ìéûé°ÖCÀv8ŽÇQà< \Çžq¿€½†þÏö=û.„}¾a_ƒ°g!Ì1³‚vBÐFZA‹!h„îÐÍt-]‚Açaд ¥c¡Ô¹1Œ‡¡($™-HBóÉ(EóGýß‚ä`‰Š"ÎdÎä `> EaÃQ˜$EA ‡‚PP ŠBPh íD¡3P¨\ª…*E¡*Q¨Zª …jE¡:P¨nª…D¡FP¨1zžD£×¡¡-æe»ÅÀ§°È9,òŒ{Á½àßÃ?Äù}‚÷ÿô5žúù#ó ‘ÿ1ì/RÄß$ÉM²ü_rôm?å]¿„{”äûþÚûiÒZ9yç<ÎB-~J-{J«œ¢ÕNѦèÍÓôöiz× £o†1†1äe.ò2—xYã>Ö {ÒÇ]ãã¯ó…nÂM | o²í ú%·$¼ Ô»AÒ^ ÙR‚´Ã@‚ôcÀt˜OóI`9 ¬§ž±þú3ô>A£?B£?DCïAлô&½ ¡OCèCz„Þ ¡×Aèq½BχкBW`ÐEt6íÄ -XtJ¡ŠÁ¡et8 â‡bú£è(j *0åÿ¼ Ed ,ŽƒBž ¢°(ŒÉQP ­B¡Qh ­G¡M(”…ò PÙ(T UŒÿ&}†ø}øƒ üGûÇüÏùrƒ ü‡q‹(¹M”ß!Eß#ÇÝ÷Kxà—ô€¢}à¯þ0Àö(Ðù8(óIPî“à‚§Á%SÔò)jõµnšÖ4Mk›¡uÎÐzgè^ú/}¡—±ØË÷1Vø˜«}¬µ>Îzwào¡ÛAرHwÅn»ÄíñúH<’O€”“@s hOƒÔ3@w¤úó@ÿ 0Ìzõ?èÏÑÿùŸˆè÷Ñè· ôëú„> ¡÷Cè— ôF½BAèá¹1l…Ð5ºtn =´‹6bÑ©0: FÇáÐ *‚„ø¡Ø(f Šˆ F£ü¨(2Eb¢lž‹BfP€‚ÃQX1 #CAQÏ­F¡SþOûõý¤E½åq¼¿çœow?9‡ÉÃÌCN’3¢("‚ ( *¢€‚¢€LW1b@Å„(^E ‚ä äœ3×U‰Ÿ~úÔöÓ̈líVío[µu«>ÿÁ«ÞçÛM²ÉnFê‰t;R?¤ˆ÷ Þø âÄшcÇ!ŽG| ñÄç_B|q*Ñ»DÓIÎL ªó¥¶PÕ–¨úOš¾Js¬×›uׇg‡Ã·Ç<à vÆ9ÓOº²N»ªýË]ð»§ðOOÑ9oÝóÞ†}M.û›_ö·ºh[ìXêRêV¾¥4Ò«,Ò§<Ú¿<:°"6¸"v"þ`">"eÄÇi㌴ É´§’i““é/$Ó§˜é¯™o™™ï˜Yï™9Ó9÷#®ö)|Æ5fríY\çK®?‡ÎåÆßpÓù|ÝwÜb!·\Ä­~àÖ‹¹Ín»ŒÛ-ãö?rûåÜÁÚO•“»eåþ âZ)WH¹DÒ·’¾’4SÒ‡’¦JzEÒó*MTéQ•†«4DMeØG“=uy£•¡C¶sÈæ.ÙÈCE~ª¤œ0eE(=J±EâL'ù²È“KîçüY\c6~ŵ¿æ:ó¸ÞwÜà{n´ˆ›,á¦K¹Ù2¾îGnþ·XÁ-Wp«•ÜêçÔZ¯ªí£Êí!ÚE)ÇíRn•r£¤Õ’–KZ(i¾¤/%}*iš¤7%½,i’JãU¥Òƒ*Ý£RzëÖk(»:¬ ©¥›šz©žŸ ƒX-‚9QÌŒaZ£éÊÀ@úsЛ‡îtÕDgmtÔE½!jMl¾VU|7Ú|·ö¼pà}€C†<0 ` ÀcOLx`2À S^C|+%ˆ"}Ž4›ä·$ u™TWJmÔ6ªÚ¯ªc›êÚ¥¹÷jÞƒšÿˆ:®GO9ÒÎ82ÿÙó‡3ÿœ«úywáwÑ%O½ËÞFÅÞ¦Å)ÄÖ%þv%Î¥ÁÊ‚ÝËB=Ë÷W„ûUD$"÷$¢CÑØCFl”{4{<›ŒOJÆŸOƧ˜i¯›iï˜iÓÌôÌô9cg|ÎY_rölÎýš«Íãüï¸ú÷\󮵄‹–qÝŸ¸Þ n°’®âF«¹ñn¼–›¬K­éznº¡r´Ÿ*wq7ÑN¢íD›‰Ö­$ZL¸€páç§K|GâkŸ—ô¤JcU‘ÊhÔW£:usPg'µvÓu^ªÀÚ!Ìbn ³â˜ž†1K0ƒÙèÏEo>zª£«Eè°lŒj3-A¶êÔè&Àž€½û 0TÀƒF)`´c…'Äx!žb’ϼh ¾ðÀ4Ä-Á9Hߥå2R&u­T7Im‹Ô·KçnÕµOõR½GµÀ -|JÕÓÿÑõ§3÷œ3ÿ¼«ÆEW­Kî¢bOýbO ±ÄÛ¢Ä׺Ôß¡4Ð¥,Ø­ªâÃV† Ò¨ƒnuP7'vô`k6 b½0ÖŒa~sÓ13Ó²0’ƒ¡<  ¯&zk£«.8€£1èÍAm²=ÈÎ@7u·ìc(`€{Ü/`¸€‡„%Ä#U>a >m >o ¾*Ķà{|– Z‚K–#¥QþBr©;IÛCú~r–®cÒ{R œVCÿÒb¿kiçôÌózÎGµ‹Î‚ËÎÅ®Ú%®º%î%žÆ¥)ÄÖe¾veþ.åþ+Ý+‚·Uû$Bw%ÂwáûŒðFd„ŒŒMFOFª£ošÑi)ÁÈÇfä332‹#s8ò5G¾åÈBŽ,áèrŽ­à´Ÿ9} g®ç¬Mœ½™s~åÜ-\m+çm缜¿“ówÙÛ]9¸. #P+5Ò /²³ =¢Õ \Á௠Þ:à®®Æàhz+ÐÚìÒºŸ7ÝjØOÀ_>hó¬â{Ìp‚à3Ö µ_²ßâ€÷mÁYs¿G\ŠøÒj¤õH¿¢Ü†r'ª{I;@úar“ž“ÒwF þKü¡ÅÎiéôÌ‹zÎ%GÞeGA±³°Ä™B,u7,u[ˆ-ʼ­Ë}Ë}×W¤{Tz%‚ý¡Fh°ºß3Â#“á1ÉÈcÉÈSÉÈsÉÈ3ò¦yÏŒL7ߘáÏÍЗfh.‡æsh‡sh‡VrxGÖrtG7sl Ç·rÚvNßÉé»8cgìåŒ}œim?g¨ÃÊÁ«ˆw^Ép-ÁJ„% ¾"ø‚à‚w%¼žz ñ)‰ã¤•!Õp û:ñVÞà…~h‚Æ(ŠCÍt(È„œlÈÈ…X>DªC¨üEà«î†àj ÎæBo#´B^/d7A=öØGÀ]UZ/à0EŒTÄhEŒQģЧˆñŠ˜¨ˆ§1IÏ)â[ð5[ð]!,ÁO¾ø`!à2À€k6¤i;Ê]– ªH;Bú1r’Þ3Òÿ›úCžÓÒ.hµ¬Kzn±žWâ¨Q’B,*uÕ/u5,s7+ó´,÷¶+÷uªðu­ðwOz&}Á;àÝFhˆzÀ=œ N†M†ŸL†ŸM†§˜á7Íð{føC3ô©ú Í6ƒ_›Áo9¸K9°œ«8°†ƒë9¸™ƒ¿rh;‡vpxGöpd/G÷sôGrôGsôHåà8^Y ñ(^q/áŽT†°a5‹¾!ø'ÁgïL•ð’„É&HxD…á v@'ôrA7/töC«4Šºi¢V†¨ž%rsEfžˆˆHM®-u…¯ð4®ë„³•ÐÛ ­“7ºYPO·‹T€ÿ P#1JTñ=®ˆ ŠxRÏ(b²-ø¢"^¶§Ú‚ñ©-øMJ®®ܸhÒ.”û,AT vœœ§ÈsFú~“Á?Ôðy5vAM»¨e\Ò²‹õܽÀB,uÔ*uÖµËÜMÊÜÍË=mʽ*|]*|Ý*ü=Û~Fp ¼×5B#’¡QÉðØdxâßß7C™¡fp–œc晦û—±oûÖ°o=û6±ïWöncß.öífß^öïgÿAöfÿöåÀ1{Ç+'°r–ã_ˆGR·Ôʶ#lFX© —"|Gð5Á—L#xM‹ž‘0N…‘: qÀ@ôqCwt ˆ¶aÑ<*¤‰:™¢f¶È«&²óE¼¦ˆÖá:"Ø@ø O3án)œm…ÞIh]…¼YÈ[õx‡À»l¾û< ˆáŠxØæ«ˆÇl¾+>eø¬"ž·§(âu[pÚA!þi .ø`%€%¸1%ˆ;wíCyåT£ã¹Î’ç7øS†ÎËÈ5vQM»¤ekÙ%z5 ±4…X»ÌY·ÌÕ¨ÌÕ´ÜݲÜÓ¶ÂÛ±Â{C…ïæ„ÿ¶„¿¯¸Ë 6‚CŒàðdpd24&š˜ MN†¦˜¡©fè3ø±üÌ |iúçšþoMßBÓ·ÄôþÄžUìYÇîìþ…]ÛØ¹“{Ù¹ŸÙy˜]GÙuœ]'ØuÒÞ)v®Ü5‚•ˆ¶à‚=;~ÁT†?[,$˜G0‡`Át;Ã)ž“0^ƒ1:<è„Á.èç†[}¢[@tˆˆ–1Ñ(]Ô͵rD~žÈ©.Ò E¬HDê‰`#áo"<Í…»µpµŽ.B»QÈ[„¼MPa}À à=V€Jê~>d8¶*À'lÁ'ÿ&ø‚"þa ¾¡ˆ·lÁéBÌb¶ó®„k‚<šÔO¡-Hþ?dð¼ _Ñ‹jü’šQ¬e–hV†y¥zõT†Ž¢2gƒ2W“rw‹rwërOû ïõÞn _Ï„ÿvÃßß 2÷aFðádð‘dpB289œ’ N5ƒ¶``¦éŸmú¿6}ß™¾E¦w©éYÁžÕìÞÀîÍìú•ÛÙ¹‹ûØq€‡Øq„ÇØyÂÞIvžbçivž©ÜUÁkì%؉°a‚‹í×к¥³¬×P¦^Ã7ì[ú´ëð†¸a€Gôö‹îAÑ9*ÚÄEÓ Ñ [Ô©&jˆj5EFm‘VWĈP¸Nx[ w;áê$7Í °§· ê'¬?¼Ûæ{@U/à_÷s|Õ }ºê„^|Å|[ï ñá_‚~Xn ®Ø°p§-¸ÿŠ È)AçYtÿF¾?(pN†.ÈÈE»¤¦]V3J¬ 5+ÃüR½¦…Xæ¨Wæ´2l–ÊÐݦÂÓÙÊ0á½%áëeXúþ{ŒÀFà!#0:˜ LNR‚ÉÀt3ð‰éÿÜôÏ1}óLïBÓ»Øôühz~f÷Zvmd×/ìÜš б‡ûY?ÈúaÖ²~œõ“¬Ÿbý´½3W' jø×›h!Â!„}»¶l&°¾g~&XJ©×ð[‚Ù3%| ám ¯ªð¬0ʸÅÝÑ7 n ‰®QÑ>M\—)刺y¢fu‘_(2ëˆôú"ÖH„›‰` ÅÛFñtP\]G7E¿EQ{)²¯Bw*8HÁ{ªX/ \ pLß6ßÄk•å%EyEQÞT”·å}E±?ûKPÀr? X'`“€­v K-ÁC@)AÐN£ã,º~Cïä?G•^’ñËjz±šU¢å”hv†za©£n™£A™³i¹«y¹«u¹»c…Çʰ{ÂÛÓðõ1|wþÁ†¨áaøGñÉÀ¤”` %˜ôjú¿0}_™¾ù¦w‘é±\nºW±{»6±Ó p;¬÷²~€õC¬aík'X;ÅÚi{gì­Üßáš#ìÇÔ!ÝNð+Áz‚ÕË)õQú=Á\+C K˜&áM^ÔàiŒu‰nq¯Wôˆ^aqcLtL-²D“\Q?_Ôª) j‹ìº"£¡ˆ7‘æJ°•âk¯x:+£»¢÷TÔ>Šì§Ð…+xŸàp®8¶Šo|•àSögŒý¦_V”WmÁwlÁ””à!æÿ‚{îxHÐQA)A¸"èù}Rà> >> >> stream q 150 0 0 100 0 0 cm /x7 Do Q endstream endobj 9 0 obj 32 endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 10 0 obj << /Creator (cairo 1.8.6 (http://cairographics.org)) /Producer (cairo 1.8.6 (http://cairographics.org)) >> endobj 11 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 12 0000000000 65535 f 0000064820 00000 n 0000026007 00000 n 0000000015 00000 n 0000025983 00000 n 0000064520 00000 n 0000026139 00000 n 0000026353 00000 n 0000064496 00000 n 0000064799 00000 n 0000064885 00000 n 0000065011 00000 n trailer << /Size 12 /Root 11 0 R /Info 10 0 R >> startxref 65064 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_som.png000066400000000000000000001533011323370031300201220ustar00rootroot00000000000000‰PNG  IHDRôYnTݺsBIT|dˆ pHYs Z Z®ÃRstEXtSoftwarewww.inkscape.org›î< IDATxœì]wœUÅõÿÎÝ¥Ã*Ò;H ŠPÁbA%¢FDM,±übšÄ[Œ£11š¨1‰1јD£±„ØKD»¢iJØ„Ý}w~¼÷î=gîœyóö-ˆ8_?+çÍs¦Ü2w¾sF@@ÀƃRª€l À»þ µþØSÿn˵Öç7s½Zø.€½tð)€—Ü¥µ®'ù†8¶Pÿ%^ðg­uLò`GÿÒZO6Ê9ÀÖîÖZ¿Þœmø*#ú¢+ðU‚Rê[Þ°€©&à}¥T·/°jð—˜à/>ð=‹ õt}ü ÀWxZ)ÕØ:Àé~L PJup€³ ÙP ø*¢ú‹®@@ÀWJ©žîðK­õƱ›¬#¿[ø:€À›t†,Øn `8€Fo3ê®êÔò¬ÕZÏ4ôûà[ZëÉ¡«IžÞnp©Öú&’þ¯¸ÀED÷{*¥új­çÒŽð,€ý\í (a†°ñp:€Õ®1h­§k­W€Rj_s< àqÿSJí"UJíàcx À,¥ÔÎ$ËŸüÀL O«›ø@Ü/ùgX à£î‹ü À÷•RTU¡ Ç“´ õ hf„= `ãa”˜m+¥Úø3òá€Âß þ¢”jaÉß®ÿ¡BÞþ^ðg¥TÉz€3µÖ´Ö˜v´ÖK§ÜïUJ=¦”:K)ÕÅRÿ×´Ö –ªOÐùµqŠ»‘Ä¡”Ú@¿BÛša@Øxè`y‰<»è àWZë5ZëZägă‘§àMì €›´Ök ³ü[‘|·#ùþ«µ~ÊU°Öú;Fžæÿ)€yJ©ÛȬ»«£þËIЧ´SJí¼#à}¥–š†0 l<ÌAޙ̅Þê´Öï’´éȯ÷¶äïà3­õ,’ö*òƒ2Íÿ_Ÿ j­ŸÔZŠüKÂNp€GýûþýȰ—p€S|nØ`z@ÀÆÃ«F*¥z9ò,ÐA)Õ—¤m‹üÚöbKþOlUp¸+b;äïmšßF“‹ÐZ¯×Zßà-ß,$O°[ÁÉÎÄxóµÖ‹,ÇŠ´ûR­õŒrêà0 l<üùOÂî.|¾PJµPJ]©”ê`òÎdßQyDÈ;•} àM‹ÍW÷^ÿvÁV„üzùBä?ó‚Rª[Á¦m`€ù…¤ßøÀï”RmI¾CœàB›íÛp €“}ëP>Âgk Zëz¥ÔÁþàC¥ÔÈSé#ÿæû&­u­RêLäÿ‰Z"O£µ^k±¹\)uòƒì±Úè`¢Öz™ß-<¦”úùYy7;˜à×…²Ö+¥p€”R¯ÊÚÀ…Zëûmÿ{u hTØ). `ãB)¥·C~Àž©µ~ÕÈÓÀȯ…¿ µ^HŽ Рµþ¤õ/äo,ä_DŽmüºüÜõj‹¼“]ä¿[Ÿ¥µžjÉ×ùïÙ‹;ÅM/|ºFól @›ß»“ã{Ú½ÔU§€€„= `3@XCØ ô€€€€€€ÍMvŠSJýãõ˜\Yñªd¶" Ít%äãéšü.cibKˆcjK%eÆšÛÒ´.1Õ¬²ÖQRf¾ŽäÉט«²êDZJt´VI=izV'µ•ËѺp[Zè#Z¯XóºP[I¿@A+ÒäýQ«ÈžŽˆõ% ùò&©>)SÙí ìZ“-0(ùõ€œ_ ”¢:RžÈøm/„Ù"Ç¢Hh—â:,M—dC‹7Å®ãS/¥L»fÝÒ6²2Ŷðs—K¨ü’¶EŽ)¤ÍT,_DÎ+µE齪  ×¾Šˆ¾RˆX_¦¶Td· Eê¥h)ãÜ}±_ô…²´Ÿ´8•7¢t00}G~aÜ€t´i»€ØÌGÇ !ŸY¶¶¤Ð’Ž€m ûåž§ŒrFX4ôÎÚ—6 ì±ÇWM}{!z ñ¡–­:wtÛð_½WX¹br¢>hk–…•S8¦¡Œ2@°~5Muˆ ¹ÝĶñBËõ ­[E™Aœëa°A˜µE(Ÿ¿\¤/*¼^r_È2R[Hí¦¿ åÓAØÍß@±«íƒ8}i(¬^³íÛµcú÷¥ÏKf&—0ðXFtë¦ØòÐK§CñÇhÝê:tèP“±,ê{–Yn½\µWz~´²×…à:‚m6(ñŽIe ¬_¿­[·býJd¥ [v™ôŠ\ûJ)QÇ­OÊ^zÄ~1óóñ=•Xº0¸;ô¥Ë— k'Û<t)ÝÌc{Ypåq½(Øqs@wÕÅÀ3ÓžÄ1|§Çž§Œræ3ôѰo/™ÁI'Ôk̈yÔÏ~|Á§@ï”~x­Wþ:·2ixf† ²1ØAøø`™Þ Ù™¬JòÛfµùcd†Ý˜vqΘmg¹æ¬zÝú+ërèÒ± -ˆ->Ã.θã8øiºYf.—Ö¥¡!•ã8Jʧ¶²í²Û™(6ðæ@ôI ˜¤Çˆ …t†Îmi2ƒÑdËò8ªÂ¼ù зOq“´âË…öÀ˜­:ò lÏŸÿ)<ä„:X›3ôâ1Ï|$èø¹sç`À€­úæàXnù>õò¸$}Ú/JìøÀÇ˰ÙRFÓòu¬±|ùrtíÚJ©Ä¶"³ušUä:¦éÕÕéýÁlEQRfÆVU•U6ûžêKýErÙúU)…¨ŠäcC=I7>šï·ÞÀˆF × ‡Î!;Ûf3iáM>3“.ä‹=õsFzqœ¢úF½Ø Ýd |ïšïº3Ьߡ¯ý¼3Þøcvë‹8Öxjòì·—«aÓGðûØÜ@¯i?Â4@,8fë›$ÌúKVý/¢ª-Û¥“qy)Cy§¿{öïŽêv6·.ÿ–«‹óƒúWÍê·`Q-Nýþ#ù:Æ¡Çþµ9Íe P]ž:MÝ”‡-2Ý<¡”b3c!—ñ÷ÕÄê5«ñß©<¼@ñ¾ãO?÷ 6É>ÚÄO]Eºëöníéá³÷Ò¨®RèXSêÁ ¡g’k=z÷.;&@BEèÔ©Ó]/æÍŸ‡3Ï=ƒ¥uë’wÈjhhÀáGOÒÏþÁY¨­«Ý¨õû²Â: ßÿý= ÄHû1cÆŒ¿üòË·€[n¹eà%—\ÒwÜ¡¿Æñ§?„·ß[R² )/}Œívÿ-zns#Fîó;L#¿‘Õu¿z7ߑߌjú‹Ðcèxû½ü¦S?ýÅóøÕm/ç Ø¼µî ‡ºp@ÊoÚò®–ÉO_‰å±4mÿs•)þQŽöJ:M_Ÿ§ÿeóÓ=OfSêU¡­Š«û%ko¤þ¿)æ•ëñ Ò›hwûv^™ÜªU+Ô-^“üþÛý÷áóÏ?÷/£9:J²ãñ Ì<ó¼®%þ¯vYô &,Z½zuÛû¼÷Þ{íg̘1ôÌ3Ïœ5cÆŒš .¸`ÂÉ'Ÿ¼ø™GÏÁ„ñÃðÃËžp²zM=&|÷¸â½°ð½à„c‡ã¨ïÞ††vúzO<öx>òãS“?ÄVÛàé)ùŒ=þvÑÓeÚ_G²¡Ê4íšôé!oËkË&÷Ð ب8ôˆoâÍ·óq„~u˯0b×áɱ;¯¿ù:€üëÌE—]ˆAÛ Ä~‡ŒÃ´Óõõõ¸]Þ÷ê’+.FÝê:pè~ØyôŽ˜7ÿc|¾îsœuþ™è¿M?ìº×(ÜtË/Ëm¢ çù(RîãÇŸ~ûí·ï×]wÝð]vÙå½nݺÕß{ï½kjjêæÍ›×êÁGÞÀòk1ãÍO°ü3ù jú‹Ð²E&ŒßQ¤ð½vƲåk1sÖ2ŒÞµ/¦½¾ëÖ7â¹ççàêK÷Á³ÏÏÁªÚuøà˱ëN¶Ð›"¶Ývž~æiÀž˜­5Þù.V¬\¯MÇööÌ|&†m; ³ßþŽ<|nºå&€ÖK–æYÚk¯ºÚwÀ<…é/¾†¾}úášëŠåŸ-Ç»3ÞÃÓÿ~ÏMy“_˜ü…´uSƒ8 _vÙeoΘ1ãk .l5iÒ¤Î<óÌéPWWתeË– j}}#Ö­kÄO/Ý®=áW¯®G·®í’ß-ZDتc¬^S¶mZ`øöÝñÌ”°`Q-?x(ÞŸ½ ÏÝwÛ#q~ëÒ¹ ¾=ñ;PJáˆCÇ /=ïeÿ_ý }{÷Å?ÿõ|øŸèÕ³7|䟲I_ˆîÀ½{÷^7bĈYßüæ7Ç·mÛöó#<òØc=ÝsÏ={íµ×^ ÷õiúúg+ ³tcí`Ø×ºâí÷–`ùòÏÑi«¶˜õár|ºd5†ê h`ïÑðÓŸÇî»ô °ÓðžøùÍ/â¨Ã¶Kl¥k*ùMé úMÛØ…¬ehs=‚å³—œÙeÎò{f3j—n¦bÈÅßqFŸäsÈÅßYYØL†È9#][le¾C‡_½’~±Sœd‹ÉäÙ?í,ÔÓÅ•‚4£¹#=Ä^Z•G6%Úõ(®â/Å„ª‹éØúªKm‘ÓÍŽTB>¡@áôÅ•ëÂ1b »\eƒá§!\‡ì·2®QÁ€´ YÁDz@èt~hkºyŒb7¦3+òÿl½öØmÿÝãðÜäç°Çn£±÷ؽqõµ?AŸ>}°ï^û$*]:wI¾woÛ®Ö¬YK=5PWW‡–-Zbݺ|tà‡ïˆ^={gê‘€~;“}¶÷‰`‹<Ðtæ›vA¶ÁÓ7Àù}ÏYg5íè£þ¿sÎ9çÑbÚ‰'ž8ïž{îyû’K.qÄ!Û`«-€)ÿýSŸçž¶+`ß=à{罃ÛùÍÒ-Ødо]{l»í0\{õøþ™ßÇÛí€÷Þ³þ7 §~÷ÿʶ׵k7ÔÖ®B·®y/ø‡ïˆêêjüßw¿×ÜUÿÒÃ9 2duëÖ­×]rÉ%oÓô§Ÿ~úßW\qE·-Þî»uß–øÁY»úôÚ¾íp@ËUxâŸÇ%:7þdL<|;Ìúp9Núöl¿mºgìn;÷Á³Ÿˆ pG¶ì„¶ö• Ød±ÏؽqÝ ×aŸ±{C)…á; Ç‹/¿ˆaÛ +ÛÖQG…¿w†ï0—_t®»ê:zÔ¡˜öÚ«Ø}×=0óý™ØiÄN8÷Ìó6@K¾\ô?ýéO}oºé¦ÑGyä‹Ýºu«7÷ëׯ~ÌpŶ~mÓº£vì ÏÞì¹[¿K§&vÑ ;È×Éÿ€ªªcwïâšö­0v·þ,ŸÖ6ZÝNS›ôwJ¹Û)sR•Œ>¥ƒ5ñ"‰LÓ‹¿}Çþ甲éè&Pî9BåýÞH·´e¶¢dÏ÷œsëWz™ýB1ú$Èà”}" “3rZèt's•ágKÓì"5.éÂ¥—)èò9s%¨Ðîqm«)­JPW¿Ê4»}é#»Ä -‘úœnçëè{f5碲æá¶µmt`BíkVKñÚå4¹Iíë¤ ÍúÂX_̶$³.A—Á”¶%»»[¡.Žûó´SÏÀþã@Ç­òßå_wõϰªvUr¼¿þ¸ó·¿O~·iÝþó1@Ë–-1é¡ÿ$Ç®¸øJœqꙘùÁLÔÔÔ [×nxý¿oàÅ—_ÄÒ¥K°×˜½±ËN»$´´¹+ÒÜÊ]™ä÷¡ÉsFºf7liI߆^;à‰úÃ?Š<òÈþC:Î4p+ÿÂüûÚð×rkeÅümrZ4hB¿ó“/ÑïÜÞ®ŸµUºZ1RÆÆduDÏrÓK¾/§©1/wÓ›=‘c.Ûè{——»d—-%d¼Üiû¹g{¢´/\§;fT-¬²]³øìv^S¤f•PeðÜöëß cáGÛ!×ÝǪ£å^K•C¢ÕeHËŒ~wõ‹£]Å#Îei)ÁÈ“Ø2Ü•µ d^†66جô|uWQGX–íÄ@Ü“cö]_J+›¬—•£ñš¦ûÐì®D¹›Ôº%]¢Ù3^î’-´Gdôy…¿’˜:uj]í!K ×ûäNëäN(Â2 |iQSÓÕÕùÀ/tŽ"óÑ­’y8S’CyJ+˜áPI©©ä°ËB¦’ú)¥°~ýz¬_Ÿq- øBÂRlptïÞ mÛ¶-ü’ßä˜ñÒÍ=Íã£Ã³ðY%³E5ðÙòa@ØäPÑ€î5yvdðZï t¶VŒVá4µ,—M“{Ø¢ÞªŅ^Pe×E¢Æµ6¨mCÇ*“|1Ñ7ûˆë“tãkƒ¤]Êhˆ,ЋšsnÚÁŽ &`¥ÖuÆ ƒöq(÷¹Ž¡nUZ¥´q”.ê(ÒÇJñ~a 2ó`N9à̘'ô¹Ï …bíÊæ+{ã×1tèP´iÓï½÷zöì‰-·Ü’Ù3õçÍ›¥úôqGƒ³õE¦îf_ëϬ“{J)xtçïúâ’?wÔ=ÿåKöddžÂ’yî/wvS*æÎ¼ä9½x\°b½Èë"ae4¦Â¥ãTظd|¬YlG+C–<Û%™è¸¼Ü©N)vM×hhÖx衸֭Uڡɵ«Ü.…<ÚÈ'égò ¼?Mþx:¼t¤?¦£á¥#þiãÏ#_q§ºâZ|Ùåxåwµ‹ž)]þ+ûòª@·©¶YºÏCÅ·<>·2Ó}Ízêÿä'WañâO·Þz Þ{ï½’:>ú&Mšd=6}ú4<ðÀ×K6`ý•*Fó0¯ÁÜÛXEUi~ø><¬c†0nÄM°kêÄÍðWl_ l:z@@ÀW¿ýímØ}÷Ý+²1wîÇxíµMÒ5£t5뀰‘QÙ€^曋6þ\ÇhžR²÷Ê×‘êØ¤òÅz©Šô‹”yþO|VÎÒíåÇžκ¿Lÿÿ<νÄ2—›dWÈ—=_:ýóÐÏÖ?Õg׈QgéVÙ(`ló™ò1ë›ï¢‹.ÄôéÓË–-õ×^ƒƒúN9å\}õOðÐC&ö–-[†“N: ûí·/®¼òr¬Y³Ë–-Ãí·ÿS¦LÆ‘Gë¯ÿ`êÔWpâ‰'àÀÀo~s+>ø@¬®[ h`ÂQpϽ÷ààCÆ…^øÇ?þ}ÇíC¾y®½ö,^²0qâÌþß줾ÏM~ßÿþÙä|Óÿäëµ(ÿŸüçy°¾¥v7ÐEÅ®o£pvß°º í¢íðù3ÚU‘-S/NÿøƒŠü™éÍ1öü‰u±ýyžãÊgèetlöЂMmÊ$‹¨/QèÞ=Õ“›]>Z^›ÇhxRᔲ6)ø’T¼g9b½ÌSë£#ä1ÏqEýÝ|úµµµ¨¯Ï;—Ýu×]hÓ¦ yä1üà?Ä#<œà€gžyW^y{l>ýt1^~ù¿èܹ3N;í Œ»xàA\xáEˆã_|~ðƒâ±Ç&!ŽcÌ;7œV¬ø Ó§Oǽ÷þ7Üp#^yåÜqÇmøë½ãü:wÂÝwÿ °Ï>ûâïÿø{R‡¿þõ^Œ·_ÉvÉ×Ûft%n¨¦ÏÃ̱rÇ–JƦء¿ú/v@h<ÿü|ë[G¢ººC‡ň#Øñ}öÙ}úôA«V­°çž{bÚ´iV;o½õzôè‰í·ßUUU˜8ñèLž ŽÂ[l¥žyæi 8ÿýïKxøá¡M›¶xòÉ'ßúÖ·0iÒ$¬_¿‹-Ä;ï¼öÿFó7>  PÙgkžw¥h9Ÿôä·9e“¦p>ù<õµd‹zs›ì§œê+‡7:¬r‘7eêýnÓ±§+Ø<Û›Ö.Ò/€¸Yóî… ³ug¾Ì5ULP`^ÇB¨È ˆk:õ§úTù¨“üæçUÅCÏt˜Üi ]u1ô-”RbWµ'ÿLªKöžNé\­8ÖX»v-ù´-R3%³‘l%ª´iÓŸ¯ûÜÚwkÖ¬ávÚ¶AU±Û·ÿþISÖ¬Yƒ–-[a}}~S–-[àä“OA¬5:uî‚‘#Gâ‰'žÀ‡}ˆñãC‹–-¡±&{ýeë‹L¿H^ê$—‚õr/Êʸ¦›ÕËÖÑÈ^<ãÚlŒ%OÆ–‘'ém“ Ô3\|6Ë:âþëTÇôL—t$YÒ7½Ü‰ì±—{S6–)EÚ¡,x<Éi²ë¤™u‘äJ_˜Ž²Èí/ÈÙ]eäüïÒ²ÜÅf'},ÊÆ o‹íîm+sûªä_)€ƒë‘".[_ä|•|KS©¾`UËŸ„ùèÐZùÖPÊל=T®-¥ÆŒƒ—^zãdžµk×bÚ«¯bÔ¨Q%u;uꄺºº¤_FމK.¹«W¯Fûöí1eÊıüÄ6l~øaLœxLZŸ|¥GO<7ÿúWX°`>þr÷½^í‘ú¢)}œÿh.«%¥;miy¹ô¨@ e¤+Kž2Ì&Ꚙv>Ûã‡m@.þNd%¤ ú¾:œ=tEtJ^ñkÃÆ2›Ž=öÛøéO¯Æ¤I“°dÉ º ªªJ?¢FÚ?ûÙu¸ðÂa§vÂĉGãôÓÏÀĉЫWo´nÝ ­ZµFUU•U‘Gá©'ŸÄᇊ}öÙµµµølùrÜôË›»îº+®¼jú÷€4k›ša@ب¸ú꟢{÷€sÏ=ݺu <þó=˜3ç#ôêÕ'N@×®]‡~c2Fƒá…5ö¶mÛbÒ¤Ç1kÖ,´h‘´>úvØáX²d êêêðê«ÓþÆoBçÎ[-Z´À]wÝ×ßx<:uÂÎ;¥‘À [·n8jÂÄ Ó!Í„ÊvŠËº±T&€î’”=V]T|JM'É™59"ë,Ú–Ç\ÿø]ÑVœêÄÆú6Ÿ‘‹#&Å1¨Ò˜ó“s¹l ó\¬Ë‘2%ÙAß‹ÁYÄ€, ééos éæJˆ-`0oì<š9}Vóäì44û˜‚­KÚë"Çç¦:¾ô§À{j!ÝÔê.î”f–.TÓ¥“±QøwذaIÚàÁCùwÞÁ;ï¼®]»á÷ø°Û®»èѳgbCi s§ÎèÜ©sb5Іš4ïþþš5X½ºÿûßpôÑG'ywØáëI>Úe#FŒàŽxX°`ž~æ)Ô®Z…o|㚘~žEû’w†=:I¿.XóùFÒÙýFòÐâ%Ù,Sºþtæ®LEzÍPuî–"]¯BÉɦ_Èô—sG6š^¼HMjÛES9&ú”&§ù¤uï³.$Os¬¡7ðØi8x¹lèÑ£;êëë1cÆt <÷Þ{ZµjÕ$[ƒÂìÙ³0wîÇ8ùäSqî¹ç5ÉγÞGmí*Ü|ó-"e°© Pî›:uêŒã?1ÿCUæ 7bDZãŽ;U\§}÷‡}÷·Ü!š• è9îK]‹?dš]¤žýžaL%@ÊáR*Çäv%ú=¦´©²R_ÅYRJ¹k–ž§Ç‹yÌøäEärñwŽèçâ9!:“òÊ=æ”;DÊ=m‹é‰O)wÑA•Ò†>h3EøÄGþl †‡®6Ì\WB0lN§Ót³|;4»%xã¼¥xP*…7]®‹8w“f–0oþTE….é¤HŠ–¦Ìð©T&aNaê«ÄŽ>ßÊó릘~¾^ ÊÞÕÉÒuÍ.iá¶|¶üï˜íÊÜéÍ÷ó0S¶莗ñ³3{]š²S\x.å³#³®& |‚¾ S¦<ö: _¿~øä“OP]ýå&¦Änqô—O¾&íZGL±ì*µe¯¢·>KoB]$Ãþ]ì·»›×}Pвƒ®ÏNqæ«è?âgÀUQ{ºô<…qíÐç´ííw}Ó±¼†ÎœtØ n¤Ûa×€Þ Èj@÷XCŸ­l2X±b%V¯^ƒ•«VáƒY³¨†Úº:Ì™;7“¿¡¡Ìš…•+WeŽÅqŒ>øëׯgéãÆÃ;ìP(oV¯^«««ÃÊ•+«W¯ÆŠ+°víZÌœ93±³nÝ:Ìš5Ë:Ëù裛+V¬ß'|ùòåhhhÀ»ï¾‹5kÖ$vfΜ™ü€ÚÚU‰^Ë–-cu °Á÷rwÅé=ã‡dêÕh³Í² }s»±ô˜7åNå˜ËÅßšœQævYkN§›Ü˜^J×+&¿©¬}Ûe¼u³ßJΗԽ ÿéž¿bÉÒ¥øtñb´nÝ9sôQ¸÷¯CuuÚ´iƒ›n¸0ç㹸ìŠ+Ыg/¬]»ݺuÃ¥_ D ¯¼ò n»ývôéÓ ,@‹-’2ÿx×]:t(>ø`üù/Aß¾}qøa‡&MúV¬XÓN; Ï=÷žyæÔÖÖ¢S§N˜3g.ºè"ÜvÛmèØ±#–,Y‚ßüæ7¨©©ÁâÅ‹qÍ5× ººŸ}öºuë†îÝ»ãüóÏÇË/¿Œ|kÖ¬Aß¾}qÒI'cíÚµ¸êª+1hÐ |öÙg:t(Î;ï|Ìžý?ÜqÇíøÝï~Ÿ?qŒÓO? ×_=¿Ž Wi’ClgÒìFß›ù]6#ñöê—J¥¬ƒ²íÒÉ&}>>2iòRË@™¬ŒìÜ9Õçô½íY¥`”Ie5M˜¤<õ3÷'o@éz¡  õ—Úe"ÎЉì ß)å®/wå ®Rümΰ%Ê^’7Ä Ýc¬¾Ê]Êg2äO’"2µ[ššwÊMѱèk£.~ƒ ¡¶cN¹—œ…Óä~úf Íd‰rGiYxXšÞ«P[W‡?Ü~”R8ù´3ðïIÿÁ·ÿpüI'cÁÂ…èÝ«núå¯pôĉ8ä ƒ ¡ðãË/Ç;gaÆá†oÄ\€Q#GbÉÒ¥8æ˜cšôTš3gî¿ÿ~´lÙ×]w~ö³ëñ÷¿ÿUUU¸êª+ñúë¯cìØ±xê©§°Ã;à”SNAkœvÚièÞ½{bgÖ¬YxðÁQS³à;ßù6Î>ûŒ3€ÂgœŽùóçcÇwÄš5k0{öl <¯¼ò :w·ˆåËgðΫ„BÞDÑœ”}Shòæ„TfSêÒ$[ÞÏ]bËã…&cW:æ%“%¹Ì€.Ñì™ èb@W •rt×t}Et])傳|Ù°Çn»&³ÉAbÈàÔ~ÐÀ˜=ûèÙ£f¾ÿ>:wî„wÞy°|ùr¼øÒKèÖ­Ö¬Yƒ [xvíÒ[o½u“ê2jÔ(´lÙ2_ö A¨®n‘ì6hÐ Ìš5 cÇŽÅÔ©Sqê©§¢(Â.»ŒBmmmbçë_ÿ:jjj«V­ÂüùóñüóSðâ‹/Pøüóµxá…pì±ÇâÐCÇã±ÇÁyçý<ò0=ôÐ&Õ= ેÊgè>_Òhö=‹Ïtδ%Ì~3Ùôµ‘MÐg49)‡yskÈ3qÒ?å®cƒZí:,]§Çâ8=–ŸíÛëâôLׂ YÇ*'ÿC&^²-ò¡yÛ´i“üŒ¢mÚ´N¦kQT•„Á¬ªªÂÁTˆ‘7ܾ];@)är9är‰ó[}}=--ù·E‹¨¯¯ORW­Z•´_ë|]ŠHêRÈEâXCk`Ë-·Dmm1|§ÆªU« q§‘/Î8«ªªPUU…Ã?íÛ·O/ÎÞ<ð wÜwpä‘Gá­·ÞÆå—_™œ‡b=%ïàŒg¹°ÜÁói’ί >[N3q¯þÔn³Äy÷ÐϬØ:Æ1'–®o9—˜ú¶ee¤K›"I1̵ªÌË] Þ÷ù|¥Ù8–`ÜßÂ%"Òìf:£Ìi¡>³mßý×%™ÎěⷉPî•9Å qýå÷2Lþ}гGTWW£cÇŽèÚµ+¦Ly€Æ¬Y³0þ|«í¶Ûo¾ù&€¼ÜäÉ“KnÁî»ïŽ'žx«W¯Æüùó1uêT1oûöí1xð`¼öÚ ôîÝ}ûöE÷î=’—ššŒ5?þñ¥7nZ·n±!=l}PÑw¥ÌØ¥Ÿµ¥È_Sô×} ò¼øØµïH—L‰÷–Q_Ÿ¶p»šgJDmä#÷­dØÑ±^÷=ý‹]Çù3t,Úçù[| ªøWÜU­ð§È14~qÊø+K?Pî›3Î=÷\ÿó0aâ10 ?–.YгÏ> #GŽÄe?¾·ßqîàTWW³è^;í´}ôQüñ¨ªªJ¼ßËÅ>ûì‹U«jqƧc«­¶Â®»îê *ré¥?Æu×]‹‡úúôé¥K—â²Ë.Ç6Ûl?þ0œqÆé¸âŠ+šTŸ€€€¯&”´É@)tïÞýñߟ·ä€ýGº]<˜S›3_yNqYG4»ƒwòB"ÇZA‚‚;œ‘0¥qIWˆ :9"çÔˆŽNuês-¹!—¾?5ÆrÛùý׫¬ùê‰~cšžËU1ý$|j.µ›?Fd~5GÊÈïåed­ùŒJê#­y?²ïЩwµe‹Ö~£ßÖƒÓôÌNq[¿«²víZ¬^³;uBELwÕªUØb‹-‰ f0‘jkk“5ns);fÙ(œ}öÙØo¿ýpè¡ãc\§®®ëׯC§Nóu/Ø2e2î¿ÿ~Üzëo’¼Ó¦Ï@}}ƒÅ–¼Å)ßÖ”’q©ßóÜ×m‡k‹U{ùîíqK×…É'“v1Ù°EÚ9êYÊ4·”­bú‘UŸm#kØØ6´é½ZM"»)¥’ë#RQ"S».ýˆôQDlѶäå4_ˆ¾±w¾B”ʤ#ò:ÒÛÖLן«ô™ókW _æ42ˆ*á%@јâtv è’7;Õ§v‹K¦-c@§õ×%täà=Pî¢OŸ>8ãŒ3°hÑ"Œ3Ûl³M“w£¡Ü©]·>o#mWR—æ Ü%}&sN/uæV"eo•v™ì°•÷€NeJ/K¬u~·²ìL<ŸîS:ÛæéÉn_†y~]3Wm£üT¦h#_j—x=«ô:–š˜…²¥ ƒ‚e§Ëy“»Áô3Ñ…e83‹Wùœš·ó³Ëï ã[•xêÙM(w¥Á¨i¦SÉNo€7åÎörÏYÒMrivº¬P´m“mˆ=ò`clýš9ûÒ'¾úBºÇƒÐ\C÷²›¶T"Óµfq=žmýÊ×’Øgoôoq œê§öbbË?Ð ˜œ,_m¡ð¸}t Z#=}DnÒ8Á¾1 ûª{¤—Q1¯òEíÊš%«4¡ZÌ–Ñ/®ñÑj‹èk£.¢ŽPÑgÀÔ/ý.–í0A_•I^X;4S¶ÏïÍÔùyâ¼Ñ>¯¢ÖÂ!_"ZéÆ7âV™VFúÔ«ø»Çàn] „ïÅUS>[“¾=§ß·“¶dÖÓ+Ð=vŠ ”{@@@@@Àf€ >CwQp»çÔ×Á­oÎÊ™¾4ã¤é1Ïc›•ggèD–‚³P}B™îA¹SšÜŒ­î»¬ÀfåÎÐ¥s× „Ó€v}^ çŽ©œNÓ-ûÒdLe)ðԥ͵ÇÔNÎoÌD-é»&—^¼vŒúr¯i{ÃÌ€.–Ò,¶ì\ÁaÊ…;8‹4¯´ëóµdW´êU_¹lß”hšø¬a2/3õrO¿HÉ7K[u¸Ìkàº÷¬u¡5ÑBo˜éÂ3ŒQét&«Áf²Î¸åE˜”{ñ·9.Uœ…~‚Dw—“lmIdš^´m“m0uT6 ›tD¹`š‹«+ÐÉBº]§˜®²O½b~—NâZ3¡¶µb¶ø §É™-‰&>ó0)sm¡ì/Ò€ [ß–¨³Ù½ó¸àc·IШ„ån͇ «Òœ-¡¶ÜKå-q4eYC¤ìû°ìâ €ôÂh9f³Ð%Ù„‹_{Œæyïú^g³ÔÑeL³íZéóWq ÍÎdòlö¥Ü]ƒ»´†îûBPîNqRltã¼f¡Ü=ô@¹l¨˜r/¹-Aæ¥O¢«\Ó1mÏâãåNi!–nê³6·+Rî’-OÊ],“ʆ‡hOÝ´ÕÊÝÚ.ÞË̇ÐÖôL!4Œp­4¦tyܰ"*š¤ÑiäÅé÷´xB›’t©ì¬Hv»×´»äxæfumùšD™{RÛÍ q^é•GºvéæP4tߤ†70&¿#:ƒR :¢¶ y ˜ûÚBôrWÉf0ZiÄ»ø¤M‘u;~ÒûK¥k:©6νåÎèwmÜ‘tÓa_uæåNg²®ä.Y˜¡³ihùÒ ß¬‹0“––ÌMr¼(÷R³o“Ú°‘(÷"Eãi×ã¡ÔìºqiÓL0ªÏtgƒ0§Òù *Pó’,¼hƒÖ©h@‡Ò •5Äç­h[#}à8ôýÐZ§µ4Ïå*åWL¢“›D-“Ò™ìiKÊç­ïSÈ=ä{]m(dê_*Ÿƒ×–®}@gü&€ü @äᙞ]÷N)÷ⱜbõ^^#¿Ù¸ÔNÃ.»Þ¤g;¸ˆa:^Ðʸ"œù¬[»(wF u1?[“vŠ“a©].Ê]ZаÁs@”{@@@@@Àf€0 l¨Œr_`­;‹“%fh[[zÆ–@c‘¼4:Ýõ ‹GÎw}KÓsF ôâš[ŽÈÅ߉ ²VI¾œœEÖ§yÒ¯)èNs1IÏ´%¶§g?[+¬×9|b¥O_2Ÿ1GX¢ úBy–›~ƒFÓ#óÊhNøøûøP»êèëP&÷ëVÙ´e:;“%ú]Ûó˜&=¶áÏèÓøÞt‰DIu$†#º¶Mך‰¾‚â¶èulÙ¡»¦Á]Œû€œ×*"³ØêDG«ô³3¥`xÖ—k;é#°þ²?Ùù&Ï &~@ŠÐÔlÙ‘W¡Ÿ­¹(wM7m¡APÌ]ÛŠešËÐuóõDG Î#ÝÇAßgÊ/Â\C·ÉÅߤ|'€¼¡”Ò_ÛRaT7îi˜±áU øÎ2éö‚¤³²Ó®‘Ç6«Îΰ=mѺHú.šœì¹Î_µ _Ú×…s¨²—;×Oe“ƒ¥u)mËB'7'Hlö|³Ê+‡±¾çp Rj{#QãM™Kƒd+ãå^ÌO&å&ãÎ6m!¨°U4Ù¿,·((NæžyÏ#ÝTJ)®ü(£ Ø~Äf#“st"ç7–Q$Ñ7îb*§±Ùuê=on?ã¶™Èæ^îlÿv‰2§žÛ„íUæ&*>”9Õ1½Ü…¥þÙ¹3ti3˜Ì—4gèÃÛî”È«¶j–:E-€5È;É¥•ðЇNQÍNô}Ÿ§î5pûÚ­H“ÃÔOóp[>ô»|ž½ÚæÈãz¹)•‡×ERù”­¸>˧Í|6Ã~× }@k³óT*(¡LÎÎò2)ËNã´WB“Cë4‡ÜEcDÇw`fT„sw.ÑïMy¨Ú®ÞKÌÓ%é˜txñy­Jìú¤ëìæ‚~Dò Kt|0ëA/M.CvïÒÙЋÙzºI¹—KsÊ\çŒRŠAnæ©„&—q—-Ÿ‡¨$»ô+@¤”ê­”  €­•RÕRÕ ”ú¶Rª§Rj(€›¬ðfóÐ\ˆLð+Ÿ8ª ׎ð,€Gtp€Ö•l%°!P­µþ%€_Új­r)ëõ€.€Èwù² ”ææé47øîn©·¨ù©ùü„~Öb¤óâ 2LŽ–Ò]úÚª“#é9hòŇNt¨œµe—] ÿüÅNêiÂGk­Œ¼T‡3½TD‡r¥ŠÅkæÛzR‘qu :†> 8ÁÌr}¨†î.gƾfõOK´Zâô¿f}$ÙUÆx|]T ét­Ö®4ûØ^ž¹D ÒÙ’¾Ã–dW*?]Òd¶œ-´‹/UkC_ºŽ€ˆA¡ëùÛ]Ž<_hlu\%Í)è+¤eäuHùÂZ[•‘*±Áý¼ŒÑÌ:õ'ÐHÊ1Øît1ÝÅìô¦Ö“RèçiJöR§;Å9‚«ÐÝÝÄÏÖ *³OÕˆo€Hÿ ~™urÊÝg§8Oø°—{@@@@@Àf€0 l¨(8 °ÞßE7C± ªrÜíò%oòL rCG²Ë³ô;`Ú•äò23uI>9)PÝ…)uX.åžgˆì\'ûÔŒÑÌÜ–-ýŠ }ó;›¢(¤SNL)þŽj °‘±åçÐ= ù@ótJ¨J49ï#¡Ãmš•H—ŒW÷„’U¦ýa§“MÏxJً붺[òˆÔº½ZYÓ¤a>4»Ã<-OÖç]!è+ð€,Dæ;ÊúÅç”{œE%Ô0M/ "×O+œÞíf\{Š˜ÐÉ‘ñÙV±þñr×1X@—¨ž\“„~§ñÌ9å™ro$m4²0[ä*ÑäâNstÉ Fz›ô½°^f§8ò%€8hIw´Qa†° è›*£Ü+Œ‡Ná¢ø>Æ©,雞å©79Ý]ì‡eNmI”yN ò3û("Kù¥ÆdâÍCq[,ŸÝVΠi+D¨| F³3f•x¯C ^êà±›)UÈø1•å.-é²Ç;¯³äå.Ë&7m7-ë¤_M:Ùƒò—Hzeœ ÞÅöJ²d]'~ àÅs:ܰ­Ænȧ’˜èdR&÷Lçr,õ+[{Qî´í‘A¿«¤.t×9Nù3Ê] Ï9)M¼ç /y Vx¡§Üs9rMÇ V Ù ¹iÜqMé÷u¤ñŒr×ånä+‚z¹K^Œ]똗»ƒrO(mM–<uÑ.ÊØ?’v ³@›ƒ„€0CØ ô€€€€€€Í•Qî†Oe „¯×1QöòrŽeª”i‹Ë¢o²{˜“ê˜Ñ7l%å+j!rþ7¡¼^ê¼-Ô ÖîAí¬oÑÃ3‡Z’ h‘ÞAL(LÒ:«äŽûm×g1ÔìéÙà,Î*:mñ>d_Tªl™iåVÇeוÎí¤‹pìÜAöþg«@*ý¹ jÞV¥Ó¥|p—|z¤`^ÑV™-B±s¤“| Šé°er}R9Bº$©H9JN×”f7èä"=œß˽ð¬ˆ4ýZ%§¬úšÚ]y{–Ó¥Å25Xcè†7šÄdE(wtF Ââñ9 Îb+ËËÝ3Oez“‚³Px,˜IÐ.%ûÚ¹f¤…|™b,2–ùÁU(G éh†½¨¯¹ #Ÿœè4ö27æUG¢¢q¨…Ç2-R ümÂxÓÅyþI’«;gúB‘ê4¸Š£)Ìí r¾ÌvI7F2²3Ö8… ïWÒvuSõ7òW´‡Ó‚™Nî)ŸËÐðIéO¢Ö -[æ8o9GÊ8áÒ¹§r¬Óòcš¥©#ßÐ IDATA[cà5×zé`—Èš –âú²Ç€®]»³ùg‘N×wÀÖv•Ð)eË”aä³É6xÞKrØ °Q)wפÚõ¢,½ì”û²ÄŽiýT&qÇgÏŒffØ:c7ÿ›êÈrJ³+åNd©^¤n±Y¾Ô®2åLŠI—a^ÅCÊÜK=}e3“˜Ï“Š3s:+W*¹çOa6eJ)M¥IlÎtr VˆíÑ0^½“nd‡ÕLºqâ‹¢~¦ž¶$ïl¾±`–4†Rææùb{ÜSšœ¦š.[JIå”Òœ¾gžñFý ˆ3ehú#S†Y>ûÒ‡Íö5¡àÓ}ÙͧPL6s‰ cÉ5NFÈSMõYTF)Ÿª]ƒ­Ù2eH6³R[šñbšK«bomi³ÍW{×}e·ÌóKåû¤ƒœWs‰CüìŒ>ÔiIßeK艎2¯=i@^h>³§ýtò[ókšÚ£Ÿ­Q™|4º¦ÁM¶#›¼†®ÓµvÏY»TºSœ¶ëHkàŒæ7áJg5Ò€#_3 Pî›*§Ü}fèe¾êË/8Ê*Ûtlú¥òYe£îìÅ­’º"o·Æ¼–çÓ¢l§Ü¹G¯Ÿl!Íz¹Mj¯·«t™¯¤NyQ©üršôª,éTjËÅÉm0ªËZ“ _š?\õÒ$ÉÒì™ñIœ~W$½xí+(¶¤Å7%JíFšïåN)wöäâ.ó è&1€ØB DÈ:â%ú ="3t…”~§2`ÎÐI{åžÞ“*§5¯<½ÜÍ]Ü£>ëcJWxÍеåX YÑÍh ÊúT¹n[i†^ÎãÌdT6 ›'A¤'}ÒäYýòleûÏN!gŠ—òHÇÊ¥Ì]ùú©.¡Ü¡!Ñž¾¬P*“B`¼PÐtz7…øeªñ¸V$ÝË…Û$d)!íU2Ó´²÷‹o‰¾™*ÕQ¶aãþ”îõf¢-…XažùJ^H¨—¼Ócž€y³;*às¯ÇH7Ž£ Óc>ó|°È±Nm1/wmœzaÖŒrO}Q✆’¼Ü*Ћ”·6(s6@ 3 E\ÆNq’-sàMòID‡¾—\êX3 P°`ƒ¶æbdöSá>LˆDõi²–•ÁòYeƒ5dK>„ú¢ùx@*k&KÁYµM^¹Ì8ç,:‘Å€.T&Á ¶Š-E1°e-¢/2«&×(l©¡ —¹ÞÒ5JJí’taÒÔáAHh¦´.‘é‚,踂zŠñº˜}%,_°†L»R}–.­ xæsÄ`)Û–lÀ{>ßO½bËеnÁ®2m‰²¶§É2µeÚ5wl´Öä£÷ª‚å- Gn¯Èàß‹kÂùõݢ̟¨9òÙÛ®¡Ç©>bÅ¿ ú äl ybkÝ\O§ 3ãž[dæ¥nRöžô?{ðÑ¢`‹}¦Wîæ3¥Ž5a†° ²z@@@@@ÀWª#ÐòÂÁ¦QÔX»?¶î½õלëÊWÙ€Þ`½v_VÁé-x†³¸åLõùWv/wN™»PÉoJ³k£L_¹H[çé{BwQ™| Âés»¾i‹ÓìiËbMÛE³€v( hõ¶ª-ZÕ´j` W¾@¹l`Üðäuø÷Û”Ì÷³'~ŠÇßýwÉ|³gÏn»xñâ–4- èÃzn‡^[ö.™oÎÒ°tõÒ’ùN8á„®½öÚíiÚ>Õ×ÐÆ±™^ê®*ÚÀŤï•[Îè8äD_qïf–y£Y«Ô³Ýw§8ZM'å³% cw6¹¿e­4qÃ5Æ ¤3×]úÃåÓÛŒpF@ð)_è%)¶;uaö-OêG™É>ĸ/¼œÜ7Py&|z’îüÅirºtäØ)N(ÏœѸãÌËÝ£ÃèRÛN é†]dˆíà¦I Mtˆ÷;Àw‡3wŠ‹ ötLž;®xè‚7¸ŠuzKÄ*9ÆvmƒÑHà*JCÞQNº=5)“<Y:²Ëô_¸oÚ=8pØÁزmG@íçµxøÍqÜ.'¢Cë´iÙ6É;ó“wñø{“Юe;1|:·ïÂëV°;gùGø÷ŒÇУk-‡ŒX]SSÓ8eÊ”­-ZÔéÕW_Ugu–7nÜ‚Ã;ìÓÊfèqsþ)òç›GÒQ%ÿ´SǯÎÚã/91®?ß|ìO'ÁtLd­Y>-ýqSB:›¯[N}üñ Ó_ŽvùÔ‹Ú&åeþè옣Îäþ¤ûRÃ.á/ö±ã<ºÎ¿ï¹¬D¿ð™hñåÛÞeüUR^ë\â/&ç8ÞöK–/<[¤tß¿ØñçgC烲ä£2Ïçz~–’}ŸìVoÂóT—™žù+àÙ÷ŸÆ}¯Þ“¤ß?ã><õÞ€û¦Ý‹—?|0yÖ³øÆ-ûbͺ5˜>wv¹~×~ ¯ÎŠƒoÝ«×Öaþ§óZ8ðô3fÔd2¼ÜšÇŽ:?þ×E8}ìÙ€¿L½—xy&ß O^‡óöý!ÎÝ燀£î<¿{ñ6\vÐU,ß•ýçíûCôÞýz÷[’Û²qñí·ß¾íwÞ9µgÏžËGŽ9ïæ›ožQÌ¿qör÷4%¥k*¸U6iòrõ%[ àQhº]'&Ö2ÁU(eNóQ™ÚeyŒØìIF—-BƒQÃNÊÝÞ.ÖGÌ ^á¤Ü®‘Rö”CvÚ*.ú^[¹˜mGÚŒUYÉ9bì»âý'y¼½S/`Ê *~Ž]Îä¶Ö+],'·è¹ìnH˜ULºÅQáC€ ®,—žRür—û;¡ì©-£LÊ]Ú‹<ÒF>ªOƒ«PjZ“%­¸L¯cåž\ãqª¯bŽÜsv™ÑÿÄË=ŠÓzæ)ó4_DÉdãs…bkã:ö‘éoòÌÜÐÃc‡ì¥«—`æ'ªóWÌÃ>C÷ËèÌZü®:äšä÷˜A{bÚǯfò½ÿéLüþ¥ßaÝËŸC) \ݸºsŸ>}–HuÙdtÆ-@Ö­³ù Ç\ y‚¾ë… ‘uzL’m:ÖtÐë‡TñÒ7Ÿ¢I»ÈOhCE—HwÛÒé‚!•]:æ•þHÖ5u€0¾ö i…ÔYkµ²=\ú‰‘ï Mälº7¤Ê”êE³_ØkÜ”¶d.)Ëe캤ÍÁµ¸žIuhºY&ûôÖ¸é=©I18 ©Œ9 '^´N?_Õ<èL,铱N^,óQØËg“©­(NïW4Æ Îâ38Óà,Z{êCNOn)-¿°ÚÒ•ŠpÌÈãpÏ«A¤"3ê8TEU™â¶j× .ývî7 ðá²±U»N™|ÛwÁ%߸ իпW¿w>~ÄÅcQé8ŽÙռܚ ßÞåxümÚ=¸oÚ_pÜ.'Xó1âHÜùâíøhÙ‡x~öd<òæC8|ø·2ù¾³Ëñ¸á©ŸaÖüYÐZã¹çžëtß}÷õ€áÇ/˜6mZßW_}u‹åË—·šÃËÝc†îËxHéŒ ÞŽ]3l›¾6u$ý åNdKùßö£‰‡n‹mS;ðMfØ Û´­Ó²ùóȱ k÷œÆ3׊-Rj¸ëŒÛæh­1¤ÛÐäø®CЭ¦´ÎÛ÷¬­ÿGÝy8Ú´hƒ«½{ÞÀn_C·šîÐÎÜë\´¨j‰Û»¿¹ÿæÁ:uh{î¹ç¾çŸþ»_|q»N8áÐ &¼þ“Ÿüä¥Ë|°ѽ{÷Çok·ü€q5î›;ß·ÊÚp‘f¦Ô¡ÏdÂ}åÈ­•cútw7•ÐZ9(äˆ~#Ño$éëUúÎCuU„ÆÂÎaùôT¿žÈë£j’žR/L_qý’¯>¢:©œS qA'Vis*JÒ‹¿™<1rÄn¬TÒ—ÔVqX-‚ö·&vY:`p’t¹DÍÇ­ÏŽpâ1·Ewz½@Nç;ÅI¶"«ÌwËØNs‰-¥ }JÏ™ÑvT'"å¨L™v»t‹¶…ëó>–ÚeìƒæÜÞΖîx~xØrÆ&®å‘'È~]P9úK‘s¬HÑtˆÈ9¢¶ªãô¹¡´BTÐt”èD$ªtzŽ[ýqÉ¡J}"W‘HP­‰~Žèç"TÇ8Õ©ŠªâˆåKÚBåÆÔVžþW‰­(.Ò÷à;Å‘7 ¨Ñž®bòÛÐýŸSÖt¶»œ6eÅò™úQg õbËw¦Z&­~ý{õ{‡Rî6/÷€€€€€€&B4¾)ä2ñ¿"ZT½|çãG¼âÊô€€€€€€&B¯ê_¤ \V¶ôŒwo.~kZ¬ÿäˆ[yÜ•¯¢]Ç€® º7&EYéw »ŽKË·­›Ë4âz6 JA—ſĮ=ýlë³Xã´^™æt ½Ø/éÚ:Ìz Ÿ­e—Ÿå.õ‘è'`ÒçTɵbiK7ùixÁøÔ.Mæ~Ãöà,Ú Ü­¦Œ±AÈFÄY{”>U3|UD6Zò˜ÏŠN¬°™ç ‰ãÄøž%¡^åkóÕ)¿p@A>¯¬¹Žxè‘¥ÿòéö:²µyá2 7+õx7óÑÏÖh€§d·šDLejÆCXp–4K~—Â1´ûT-GäHølúc±ì¥ÆS[F:ûöVzpѾ0òh[~þ¬TÒ@Ó”y}ûd^° ²5ô€”»/¸Ç;÷š¶mâ¦Ì¹­"ÙiÒäæFC‰Lc ôy¢¯4‹AN=æsôÓŒª´f–o©æ¸DºƒrGdPë±nçZU$œ ƒŸäí¢¶ u8:Í¢ãK¹‹„d32•Þð¡ÜÅéO_úÝL‰L)wöóx·{`g6–Ñi:=9r#42j;Í“û ý©L©å*ÜÈ:ÖÉÃ#¿1L‘~‡(yˆúŸÅi'Ëè8]d»ÙÁ±S“® nPöR@ós8æÙNy=w„<sV(ŸL–²\3ô€€€€€€Ía@Ø °QvŠ£06KÉô7c˜”é]MdÉy‘è8c;ìÚê¢Í|¢¸Q/ê”Ét}Æ?§ÔY¾/‘…vIuÌ´EÙum¡Èì3Oê,*%yŒ$É åo‚¤Ò‚˜]’î©î«â¾ªm²WMæmwn§P¼–tÈ1ó2hÊŒˆ>2#é^5îûäY¡Óû>Ö\‰ÙvzS:;ž÷’/Pæ:ÝõÍÔwŠÓ*‘£XeöiOô™]Þö´]ä7Ú%=3;È‘U(-=) ÊœÝêÌ–]}cÃg¨­ü;ô ÜXɼ8Äk‘Žêdô…2+lŸëb /rºÊ-WЦ4½âËAˆ~¡µæŸZy׆tŒJO>ÛâTzªkrnXµ´q^+èp_U³cU‰tÛ1Ÿ|®QMÈâÕ^ ‰Í Ÿ‹Ñ·¿H–2UJÚ³Êâ€NŽél¾DÖŠul·¥µ JЧATbœ…¦Ûê_n» èÈBzÌP…ÂÌc\ç{S|©”{@@@@@Àf€Ê6–ñ¤#´ñ/Õwå·é‹´”ƒ27–êâ´UB6ë錄 Ûö|rSY,_ª‹‘ÎÛRä›”£þšÈ\‡Óì’7µñÞkq[ÏÓ`B_(á„5'åž9@áÕûÆoʾôòr§›å·[*ÚÔBù*Ófš_x/Elžâ‘+ð©HO¥±£R™Ú2gÅô¥ÞØ|yŽÊÄ›m§”}þù­ˆl/_œU“c,è 8ÍN=ÖcçÅ’ÞëÙ뵘Ã~Ýš1çù&Í«7Â=áX¶£ÃR%ûîgSy<ô7sö°°¨ë­oO÷yŒzÂTöп`îEª{ÅvM¾©Ìº4±Tk¡M¨ ×2(wjMºÝÍB]ŸÇYóXjÓdx)®~gÉ> Ìf9>'ÌÙ®f¼±¤å9×Í[!·îóìó™Ê¦Ü}dÉn)}›ìhW¹ÏfLG:uôV‡1Gh |.=Ÿ{B’›Ÿq&Pî›6ø ßÐ$ÊYÒoηÀ朡»ôYFÒ¥AELÏê¤¼Ž¶¦sÙ¤~t6ÙQ€í oóš±¥2û#3}Z:ûÔ6î½äa…ÌØk¹þÌ–'™IñÌ3†¥DºËYJ°Ô%9h-Ôa«t¶/3¬©åßÇäZ7<éLš|í¡û=kì¶òúiþ”~W.sb‹´„yò íÍzmçæ)wZz5A|Ø4#<Êð¤Ü76ª—»3«ë åãóP²LšOzŽyÔ+³´ëq-m¨óúE?[¿èò›ŠÌçÑaŽÁ)ã¯ÓÝ eï5ÙcD’„= Ç×^Ã[³ß_f\zR¾¦éÅZëCŽIçž”g.é”é‰â/÷¦ è-´ëܹsu‹†Të2&ùtt."—ƒ^Sׄj”‹GAMÇŽx”':ç_.RYzxja@ΞbŸAÁsà°ÜØO?ý V®\é§°£)ú@Ï?ÿü~ƒ>[€VÕeÌÐÁß| ^ºëî½³ ÕhNÌüà èß­Zµ*K¯®®K—.ÃÖ[o½jàƒf ÜËÊΰ>—CµVбrRËEö‡RÞ1 š²l£Ù3ñÐúݤõÓxèHâ–gèr—¼[ù¤<Ćs)ÂԱ؀Ûîü~xî÷Ñ»w/Ñ#Øvª?üð#üû?ÿÁ%_lÏè5ùöt1em)Ò†æ¾ê>;ÏW>É,Ÿ<-¹*S®Ô¬‹gNùI’nêÊ]ѭÄØêGöäí.nægT™ó]=± œçG¹PÂ/1~»Ù.*%g˜y’^ÜN¢˜RñYPÊ֖ܵOˆŒúæˆN•œ%&ÔxæÁ‘æË VTœRèÚùà±·‹Ö™~jRîôyÌöˆ'¶ÒEÃB¿2Ù¾Th_Läú&¤ëÅEDZm¹–KÜ7ùeQwà vŠÛã¿ÅûË>û"«à@©èfqìÿ§4L;åGU ¨ü;ô€/%>š;ÿ烘óñ<ì4|8Û{ù”^€R  À·; }ûöü袋°Ï^{ãñ'ŸÄ 1fôèDoýúõ¸õÖ[1t›mpðAaáÂ…¸ÿ0kÖ, 2 8øàƒ±í¶ÛâŽ;î@×®]1uêT444ছn»ヒ?þñ¨¯¯Ç Aƒ0~üxôï?wÞù; :cÆì X¾|9®½öüüç7lÜN Ø„QÑ€>õaòÊ•X½~=žœ9·u(zmQƒ_M~ /~ø1Föí…Fí„Þ·¬­oÀ¦NÔÙaâŽ_Pð´ŒýibF3K¬”ÁÒÆD–"‘²§Þž&Í®‰ì¨¿U¦;.[ˆÌ™Pfñèúúz\}ý 8ùøïà¢óÏãÿy?ýt’kìžcpä‡^zùe<øð¿pîÙgPXµªïð®¹új´mÛo¾õÚÚUøù 7bôèÑ8à€ Üýç?cäÈ‘8çœs0mÚ4üâ¿Àþûï­5k×⥗^Â.¸]»tÁÊ•+qã7âÒK/Å Aƒðæ›oâ®»îÂUW]…]wÝûÛß’ýÙgŸÁöÛoªªªÂU޵ Úvæzj÷€öë{3—Ïlž•¦K”=¥J#®k¯3 Ôb–Æë¬HùÜK_Xc‘\˜Áýb½¿ÐO|árqY’öèé{¤§{¼Ý'ìRK71YU‰K*²_:/õ¤ÈÆCŒ”Ï({AßÁúˆ\SÄ.ù4”ýR(ÓGÂr‰ùŒD§Gìä ïï*ék /ÊÝõp)ãÒ5NˆŠ(÷ùË?ÃE?Ž5õ ¸~üèÔ®-ÎüÇÃx÷“Ÿæý1¤kì÷›? ÇÐZcÜ­wbβÏpù7öÅã3?Àœ@·!˜;o`]w…R ûï»/ª«Ów»¶mÛâ婯ຯ½ñ^ã F‹ï¿ß8´k×.YWüì³øÉÕ?ÅøC¿‰8@~¶>{ölŒ;J)Œ5 :ubõØm÷ÝѵkW(¥ðöÛo£¦¦ ,ÀäÉ“±bÅ ,\¸«V­ÂvÛm‡ºº:ÌŸ?qãÙgŸÅ¸qûmèn øR¡bʽ_§-qÑ~cµëÖáo3ÞÂs眊­[a—þ}°M÷®xáùèܾ-f/]†ÉßÿZVUáúCÄß_{«â”õëë±EMM2 ·lÙmÛ´IŽßzÛmèÓ«7vÝeÚ´mƒç_x hÙ*ï†Ò³GfOk††FÛ×××#Š"ö¢Ðºuk¦Gí¬[·-[¶DCCC’6qâDy‡¤ýöÛO?Ÿ™wéÒ½{÷®´6+T}ç>½*á“U«QE¸yòKIž­Z¢nýzh­1¤k´¨ª‚Щ};tïÐ>aj(+bÒߔՉ CÄòQuÍÓ‹¿32m‹§\.Í]îÆ0îòMr5¥ì‹´gf)‚Å^ÎëÙ£,Z„•«Va‹šÌ7µuu4êëðö;ïâß?UÕ-ðêôéOrZ3N[m…SN=×^{-êë0zôhtèÐ=zôÀìÙ³1dÈ|úé§X¸paª«¹8`ÀÖX¼x1F“øµÆŽÝ ?úÑ1þ<ì;n?¢îòrWéog Þ—+³Ó©ü˜§­LÝmW‚ëêáu±é¸ô˜*ü(÷&ÐçžÍõV¢Ébu*^ö¢âŸ?p}ÊA¸é–e˜2e'Àðð0ö[´ÿöïÿiÓ§áÞ{WV«l¯òaì²óÎxß{ß‹}øÃÁ±Ç‹SN9gŸ}6¦OŸŽÇ{ óæÍCQ„»‡=÷ÜÇw<ÞúÖÄG,AQ¸þúëðÑþ+`òäÉ8à€Å¸úê«ðÎwý³q‡¡;v`ß0Æçè|"õZbj‘4ФÞ$§³ÂéY™ÞêL„{h)Ôr Ó¥jÁåžšîŠl¡XýùÊXÿy,ÞØÄ×ï{e3¹(°u‚ôÀª#· žâÅ’³%Ù2FNÙrºuU¶îfn\«ö²öЭ‰ÈJ Üæ€Jµ·y‘D½z™n™]b»áa¼é˜gà5ßø^äÓ°ûô©¸ôŽåxîþ‹°ÿ¬8záxÍ׿‹S;_¹ôJLÞ¶7#oN IDAT&ã‡S^ôB<ëØcpó²[ñ’¾«x»ì¼ àoÿ'ܸô&lÁi§î‹Ûï¸'N¼õ-oÁäÉ“«|öÚsOœzê©€©S§âï?î^±Þ{xàøøÇ?Ž{î¹Ó§OÇ™gž‰iÓ¦µË?åì¸ãŽ¢N§Ÿ~:Ž?þxÜyg»¼“O>Y\Ÿ>}Ž>æ o¶vÉÈÈÈøsÅ@úþsgcñTÙ)ðäð´Ýçá×ËnÃåwÝfÏÄüim-÷ïýÍ_á'7Ü„‹nýþñøgâÆ•û`çí·kRÎLC–+lCFÍÜB+aí¿7f ß±vJ¸‘—§‹®ð™®»êá$Í®¦uœÇÔ)S°äðÃàá0yÇzvÎá€ý÷«ò[´hQ'3ì½p/‘Ï“&a‡Iµì¤I“°hß}W]}5}äl³í¶8çœs°×Â…˜5{6<€¹sçPê:Î;·±?¾fÍÜpà ¸øâ‹Û+vZò°Oç±Ú Y1Õ³kke•°ŒVªo<Ù.ˆò¶ O_ø0ç·¯_ÊÝ*¿;ú¢ #ϼ:è§Ž©›1Té)w¯.ÔöÓë­£Â7WßUz#Ì+t~sô"–eZêZ˜ßHZH›õõôJ3}®‘RY1§Pî]òîš&²ZOM§cq èûΙšnž»ÿ"Þ v+ºV›ý47ËXá”<´mU£‡=Á6Ÿ—¯¯¶¿õv¸„Ô´üv]0\¢Þ¡ñº©RÉÔÉ\ãwGœË/¬Ký~u^CjXEŸ[ƒp+¯ëÂ(Ô"Žý–[tº0‰p¼¨ƒŠ7'*Ýt=ã0ÐÏ€~€ï}ÿûß?aöc÷ì5gb\eB 6ôbc³µ ëû¨BÆŸfÍš…¿øÅç3þ|œvÚéãP£ŒŒŒŒ­ý èkÜpå•W>þhk5F»x[ë: gl1ܺt)¶Ó J/pµ‡5çĶŒ™¾0„ãTS)¼zŒ$‹¤lǯ_Ÿ'„À€”{‰îƒ2kO6¨i¶ DJ5è×Pz׈€õûœW r¾ ;¹7¤ºqùnËGu_1ç0V8ät¦‘ÎaÀvÎ"ÒÕ?î¾ãö*<ÊþÐQÊ¥SþÐõ`Ý ‹|£+‰ð„ ™:e×*%Þ†¤:»ŸrrãU­J Z³wÇ¢ªÄéyÊ› ªíªk¹‹¼aA® §‡: &?wœ¼&í0±#Bˆ-º?׿«.ßiì]à˜<°úáõظ©¥|e‡óò¨‹Su–MIåy®Þ_¿Ní¡[' 8º@Ý卑ɢï-úŸûª܇I*žóý)w-¾~ú0ÊNXxÀûñ$£5ñ¹½9_¦ÜMí}—ñIu£ÌCyõ_­¡îé²-÷ŒŒŒÍŽ»MÅž»ï¸ÒOgïýZéìd±+öµK¯XûX+<#c‹ã õ¶–‘‘‘±9°ú¡UX~×­Ákk×®Á­·d+•[’Vèιí¼÷ÍJï]E[hî¡×0éhƒZŽÒÔJ¦ »0-Ôs=ÃÚ¢–Õºf],mS;Ú Ža•‚ö•0;w‘Û”Ž©qfƒ¹ W“Î¥¯å,’ cù~#ªœ t´o¬„ ®9a1×8s‘@…y“`ÔÏÔ7âÇ)o·¹ª‹ €‰&×γ+•b¹Àï‹ ìiêoäEé“EáR,ªóÚ«~›oº÷ƳȲï¾ëOøŸ¯|þØ×#¾Ém t€¨ïÈëݹä(¦ßu¾¼ºj8TárIVÔKÑô¡R ¢Ö9ìÐ6ÖÁØÓÛnµ¼µÊ÷"ÞbµÕæ(}AñBÞÈŒã ÚŠÐÔ¶ð§nl­ ÊÝË{N¡Öc”»¹QØÃQ:$–)œsç8çnrÎ=âœÛAèÜι[Üíœû£snaz2222ú; ì lY<‘egd¤b€_øwW¡9™ø&€/ø¿>à+žŒŒŒŒ>ñЃ÷ã{çžk¯þ=fÍÞ ;ï2û/~*Ž:öùøÞ¹ŸÇ† ëqËM×`å½Ëñ™/ü÷­\޳?óA<üð˜¿ûÞxÞ OÇþ‹Ã÷¿ý8/~Ùk›6mÄ?½ñ%øðÇά]ûÎzßkqÏŠ;pèaGã%/{¦MŸ!êrç·àœ¯|ïýàÙ€Ç×<Šw¿ãUøÏýpÓWá ÿy6¬_‹½ö^Œ¾ä5Øs¯ý·\cedô€ Þû¯é•98ç°Àg¼÷£Î¹Ïx—sn7ïýr ©Ý‚ Ü!éMIg[ñäP…òb*^Ëíu„©mMsÛa'½çeß·‹%ÛVèPFíò=…Ã4{©µÔi´_âšF³xRMÿ×pІŒ—艦é¥Â×¥:ÜbÜ»G€Aé{z{„5˜ðsq¥zJ¤v-|WÏÕ±Ol©ÚV[ê~ð/bòŽSðéÏÿwÜ~3ÞóöWa¯…X¿n~û›á½<»Íß›6mÄ¿žõ8팷ሧŸ€»—߆}øøôç†%G>xÏø‹—¾EQà÷¿;³ç.À¤§Â¸üÒ_ãù*öÞç |ã>‰Ï|òÝxßY_õÁš5TMX–%}d5¼Ö<ºýÐßã]ïýí{n¼þr|á?ÏÂGþí\xïV›¨¿#I€ó¶Fø[Õ¹°1˜N¹mí÷ðVCSá‚Úvï°È“N¦©·Søö¤Ñ–p##7ÞÖr÷Ü!áx¾/݉ûaùü$åÎßoeÒkxûZß_»“',Ä’Ìp‡÷~xïï°ÀüNÝÖyÇÊöߦÌHedd$àÊË‹N|)†††°×°pŸƒÄõCžzv›ßÞÝ»ãö›°nÝãØ°~-.ºð<üéÖPn[v=fÍž9s÷ÀÕW^ øåù߯ 'žRå³`Ï}±ïþ‡bhÂ<çäWà†ë.G«¥ ™Ú¸áú˱ýö“±ò޻𛠀U«îÁªûWà¡ï‡VÈȈãñÑG±fô¬}£~S’LL)n"ÚFdD*ß–…s•òDV—ÏÈÈ膲,±iãl³ívUÜöÛK‚pöœùUxýºµØf›m±iSÝ¡ü‚Ӱ䶉Nz.üÅw±ë®s°ú¡U8ø©õŽà”)Ó«ðŽ;Mƒ÷£#²ctEO{õ#t}ÃúNÙ«¸—½ò p†ÇÀŒŒñÄ›P1¡Î¥½s±ý‹œsCÞû–sn2€yVŽ]÷Ã`Cq¡¹/ke’_qÍtNÓ¹æéš¦©5ÍÎñ!j¼…Ms™V¸)ïx]/–ÚèœÆU×Òó¢òKΗ¶2<*C%09"IÙÓç•:¦¥¥Îœš¢¾‚e:ؤ¢–‰iÒk™&& ú©þÀˆn¹Aâ+2ºòcílÚ¸³3à\§r$®¹ê÷xæÑ'cýúÇqã WâÐÃU[smì¶`o<öèÃ8ðà§cÆÌ¹:Kvøqøê>Šs¿þ‹áPTÂ7ÝxZ££š€ëÿx9¦ï<·Ù®ÚJò˜=wÜÿ ŒŒŽ`xÂ0®ºâ·ÕÝ/Øk¬ºžqÔÉØ~‡ÉU¼àýІËQ§ÂõkíHëÜ š]Ë€~U!WË·ó­ÃÒe*kZ3½ ¡åîêSJ¤aÖrgíw_¸ªZî…|öÂÆ¼±k&µÜëíLE!»'(û$Ê]e&N%P^ ëZŒJïWË}bQOt 7Á´Iψ èרà©.C[î7wxaB4„æz ~¬ÙÚ7ZWSa¶Wí;S¸ó;$ïUQ—@XËÄê˜d)Î ûúžGâ€îÂñ{ ¿i){t ÃÑÉLflî›7& •‰}X)÷bÏMìªèž­—øD (Þ3Ú¶}­ƒçýÅiøÂž…‹óc<ôàýØc}1T ©™;£©SvÁ©§¿ï}Ç«pøÇcÒ¤pýu—áŸÞõILº Š¡!sü‹ðƒïœ3Î|·xvÙuÞõÖW`Ÿ}ÆÕW^ŒWÿÍ;©Fíád›‰ÛbñGà¬÷¼»Î˜‹Ç[]Õw÷‹pÒóNÅ[Þð,9ò9˜0<Œk®¼ŸøôQûïÂ^ ¶¼¿,a¹ŸÎCLv¾ž°ñvN”ŽÃÌ"Ðæ«§ Aéë£j¥wbO™ý™ò}•®Ú ¢ç¤u †Ä€nLTH tõ$ ôjÛGà}ç8ô°cª<ààCÂ>ûŒ¡¡ ¸óö›ñªÓÿ±¢ùwÛm!^óú÷TißúÎOâæ›®ÆèÈöYt0n¿}iuíU¯þ'û¬ãöÛ–bxâ68ùù§m–6ÉÈLp€I>1WñÞŸíœû=€œå½¦—¼Zå† Vè^®RµÌSVŦ¼ Sîqš<4»ë=/M`vXµAËWk¶;™—l’1 ÖH¥LXÏm¾_*7²¬…‘&–Ž“¨6AƬ¹u[ƒî$4âx‡.TÂøƒm/»ùZÜqû͘:ug|ÿÛ_ÀÐÐìàÓàì:F«ëZì2cv™1GÔrã†õ¸áºÿÅyßý"ÞþîÏ¡)SvÆ”)mS³3fÌ«êÛn? »ï±¯ Mí{HõkŸE‹ô³çì‰Ùsö¤›ûfT%Å[èxeê*ê‚WØß¡ps½8&Ïô»s€Œ ò…}®c]~a„éCØÞä먭çÀ2‚°»}õB„m_Ì^Qt¾–0Ú2…ï ã¹}ÐÈËñý䎧ÙT“VMé°R‡ö4I…ß|Ó5¸iéÕX°ç~8ãÌ÷`ÂÐp¼À@Û­]»×ýññš×¿óæïÝ¥)Ã/¶\)”ÄÛCQ”r÷¼W^§“T¼ìÍ]ï"ú]”!åK#^×¥à0É´ ú¼U:¸ÎÏk¯(_çêï¹.rßž»–ѹ¥èõq4ÏëÉU]†9Ít@Oˆ¯ªáF¹wO’‘‘‘1~˜:mW¼àEg œÏ´é3ðׯýçq¨QFÆÖݧv;Õé]=Cjh¹SØTŠ£™—\¡;±úey‘—“JqœW¯”»eL&¾gÊ›(óX:A“sš0åÍ‹ã}Oíâëb,¿,Eöæ21¼ .Â;éz^[™9úšé`kÿÍG¹[[š“±X,_~b+ÖfVºú–ÌŸî|˜¼“…WoM8#YÊ:Ü|A;”°B¸E}è‘ cß\÷Uµ$—å Ý\á«øšr/j:Ýɼ 㾤Á—ZùÍ5ÂéBᦖ{ÏÌZa¼zšíÔ‡µµïIÆ`EejÞIJå^(yvq+âùw„²·`¿‰Ýã;HÙÞÐÜk VÄ×´–îzä€î‚ñMšòr,c˳E5¦ÉM¿çÎó Þ+e®Z¾—Þ'¬åîë{ôèªÎRéØÁÁÅòGnBãÀ™F«¾îݨJÃÁ‡A 7dS*™4R[ø‘G7à‘G7ŒýâGóˆáÜœ9ð«ÁÚø»O­p\Ê«ÑÝ‹pX³]îU›º¢Ì+ vïHަ數6Òr÷tìÍ»Ššw^9gIÐr/H³½¡ånÍøÅIÖlg{5‰ œX^ú—ð¸]†ŒYXLzÂÆeK è)”{¶‘‘‘‘‘± è[¢Ü[Îa´ˆ“ÂRœ‡¢ kÙ–oi¶kúžÇ y¢Öý®(wÞ:h)ùP^-W×9fu.f0‡å-€ñB-Õ^¡=x½‡Þ²(w¶_›pŠÇ_âá{êdayM§òqÛP Ë[|W*çÜ-ßÌ©7>»oÊžaÑÿžÛ›¢Õ-ÖmæÔ£ôA™ 㸖¤ÿ`>IpŠú7Ò…Ë“ïE¸xo¼{öÑ«8µ®0É8‡ÎÚ©]FØ€ o?8©ƒ]ýn;4 Sîœ×âgùÔóŠN^¤YÞ×2…A™—®¦Ö _[š+K§ WQ_Eñe-ËwU<—ÎZöœ¯ÖR7å Ã2…¢Üe‹×ÿZÔzŒrï•ZïöÙ”0š)÷ŒŒŒŒŒŒ'ò€ž‘‘‘‘‘±` Ê}Ô#]¸¦ÆÛaI§×a+¾–‰Qîæ±5ÔNØLƒšô;ÓÜ®ëÙ"™&Ím„½Œï”Ó Ü™f·êâÃ4{“þ/)\ÏßZß¶5–Æ7éÙ ‚Wbªy“Ÿu†¼¦FëßÞ¤ß;è’ecu WR¡{ºA•Ä£ò ÕlRë½ÉhÛ[õw(¿$Aá ú>Lå5¯ÈJpºò¢øÞès΢օ6y¸he4&‘rZêä¡›è÷öÖ·‹a¿]¿ÓB³=L¹³Œ§pÉT¾A³s|£|>MDÔzá†Æ¨ý!çµManAÿKûëBK]œ`ªÁýä¨/=-ÊWËL”»® ݲÈW¦ÓiÚyÁ„õ¶XiBðûCÏÈÈÈÈÈÈø3AÐ322222¶ fX&Aó®¡åNÔDÌŠZ%Oט²O¦Ü'‡*.¨ñÞ–±µÉ9Ü©K ®’áxÔ8Å;NSSðM-÷°¼ÔX÷U=ÛÛ u¼Ø¾`mW¢©™†ó®¦¶Y‹µMõ±%&†èé5´Ük j©åŽ 4êòÎ9E¡2e_RXä.0 K]Õ¡ašª‡r6+e?žHÝ¥ÂÅ8ì„|ûy^)y¹HñL“kr´Ó×ôA¹³Œ Ù‹$Ã2Mkv®Š÷p;YX¾áÀ…¬ÃÉ’©ßà¾Qìu! Ƴ45}Rumʽ·"å®ey«3¼£„‚Æ)+_À¦Ü-ŸH)t{·kÒ³tOb£åRtW…¹q…W1´Õ¶Ð¾yl@O²ýÒÊ2Cñ-ÇÇÖêµ/÷Úë°½_É{%ÃyÒx¯ £)w».)µŸAº7„IA¯«cU?Vå„}ëØ4Eˆ'Ô%š—£XË"›E*:[”#dŒ^ä-‡Û"\¯²L—4 3ýîä=šô¿±Ÿ/ÛÈ™2Þ¨£¿kùòØš·(wÈÉEÕ®^Sëá¡^[fèâyãuìÙÒ¹ Ëp^>Ïù‰úzû á2ôÂê>Õ ôØi!Sî[WŠë2k³+gÏä ]ÓÁÍYœWéb+\±’5Vè¬ÉÙ²Ü\]N µ6{LË]h¼ ú=fËÝ÷(·"L-w60ÁT>i†{¸Šv.!Ý>Jž›gÝe(šr4½ipFÆK-÷Àj !`¸)oÌ_…Ñu¿žê"¨ùþWùÿ_Óç)ü €z&=Ëo8§¶kìw¯¯l±[+q{…^T¿5R#´ÙM?ëšîÎèœ8÷‡ÖÉOŸwêF•Pû£Ï‹ór2»ç«û1î癩µªÞÁ‹m4v 7ꜘ®“`³Sîe¢s–ê¡+þÁ¢£™Š'Eʾ)wOaóØ×Ë Sº–£0ì½n{ f-wok¹ š]Ö…÷Í} ª^f{£öÍ.)wo\ °f»|àRËÁx)/a ÜrŸ>¶‡Îéd™aô³}Ð=¦tLÉ7ÜÁ7eSëÊ»÷«)NåÍ+MyyÀ¤¶£u÷Yj¶+wWdÔ=ò$ÓKmv©¥ni¹K ru¸l èŽÒP:¦Ü©wL­“f:¼ƒ;dIÓr¯³rªÎFPÀÑÅÆ[dm×(ù”7WȘ[G‰ò i:ÈZîO"ä=#####c+À@”ûHlЧiPî†æ­¤€¥¼E¹3¢”{€fZŠ#ºiTí§whöQ£Ê’2¡¼Fˆ¡4£®vÒ‚ÔLeër´ÿÀõ*A¾ˆQÓmíø:/±WÎzÄß´5­kz±i1« ëðŠþßË ¥ák¼oîºÈtâU>UDaRî1Ç#¬`Ù)1ùà†Ñ”î2–¦os“2Ô.NÒ‹ŠÎÜþàvú..˜^Ê8qQ«#„3ˆµ‘ F›é9?¡Yn¿¯Ò¹‹6“@¹ m0¦Ô…©xY—è¶ÓìâÙ§øSçxWÕÙ9I¹³>€pÔâe{UÖÝ|®ôÒºØFãwÒ´­³9Jß©‹z'>H¼«à/5þétÐÐ’W¿Cyi™b+ã^é÷J‡ìœ%#####ãÉ‚< gdddddlÌzlêŰŒ¦Ü­b„åÎÿ·Œ H*ßÍN~¿ak¹3ý>¢â%åÞ9¶ælÊj6Bó§QulëÏ2£Â‡¹º¯Ý…š:,ᄆ*SŠBsUІˆPî ¢á"DRœŽ‹µhGX4½¦ÜÃ/žE¹KOa#n¸h86vá ¡âjkï[Ù*RÏä 5Û-_ùìÍ] UOIuñúùï_¾GΨ‹~לU놣\%¿ãÆ;éù=Ðé ‡èwI¹Kú›©uMÙšíf¼¤Ü¥oôðËÇ–+õs`ç.&å^ˆ‡TÇûÚIRákbŸ›´e8Lò|‚‰ûv ;ö»ÊJ¡ Þ˜”»‘—îBtºÎË¢Ù-Ã2:Ükš²?ôŒŒŒŒŒŒ'ò€ž‘‘‘‘‘±`³»O…'JOSî¬mhúzŠHÕr×ÚóÂR\§îJFRîõaéÍÕ>Ðåî$>*¬±Îy±?tiÝ­%hvÒrgúìFZzÚ¦¼-aPî@M_é­ ›>·Ò ˜ÐT:§Ò”s˜rÙð®ËPåÑ“%±–Ê-„Ø¢ÐoÖØoW¿}N×Ñ ÜUÍÍ./…E"Dœ™—µÅaGpV–U-!®Ò°a?ðžd¹ÃÑ‹iïUø’M–¦Ùrg¿å1ÊÝÊ· t,Ãñ±òu¸™—¦Éío’(o']¦š†eŒšˆßÌs«t¦ Åä[–â,#*úóè'/D¨üT *ߺqòcÌR\´z8¶ÖÐ è¦1}••¨ d:ŽYTk è5Âí=tWÅ Ó¯bB e‚a¯,ÍyK&œ¯ÜCgKoR·€«ðàÞž4mŽ]¥KÐÛ åé9¬uÑð–æêA¸Þ÷.Å%ï‡ë½¾æíÛY÷lé“tP8!¯˜C’zO›d|¤.Ö3öË{-’Wd¶ó å¡óÒƒpxß<ÅÒ›p´yT­¿ckÝ-ʼnúS^ÚzŠsé„E¶Q©ÒÕ¥«w'ø¼´Çy‘¸ØkæwÄS©2Å#õ’ùZkKÑ} èá÷m\ô.v¶—‘‘‘‘‘ñ$Âà+ôA(wNfi¿;© ɲ–f¼´_îz^¡ÛÎQjʪDó4»\yw(÷²Q>Ñ즖{}/m-w¢Ü)ûú3õ-ï«p½1áÔŠ·×:ñh€ÒL'æÕg]3^AcNë•6kU:ç¤aË!‹¶–qi‹j³rzåÞ-} Þ×?X³ÆwÕrçèÕò HÍW­âCÌCc…ÞýÆ,c2é”»ÅDXˆžï9F¹‡Á›MºV–Ö¶vEZÖŸ¤Ü•¸åg]ß»ÙBôCÔE-‘­¬5NDWØ b‹Rî‰Ð9KwUúرµFºN2Üû€.Ãe Üò±Ý ûÚ¡ŠÊצÆ9ìE<{néX·Àðg^z5 òÒÚÈÓÀéÅ *é{ë÷ê¡:’Ÿp¢®—Žà2½ ¿$<éiPÂKòÎ÷1 ó`ém‹jVï£;G5úB IDAT/KÈÚ76Ó;]èaî=™žÀ…ß=ØXò2l¶m¤aú?6ˆF¶"d¼«ÓÍ490eRt¶îËu¿/˹ÎËö¡Îßp}Q„¡({Ö×ý™~¦®ú§ÞÏ·½šÅd9 »`º”Ýô삵m\ÓwÍ;€”ÉA¦Ü322222ž$r÷mâPhPîÆÌ)²Bç4>t1,3nyÒ w5å D”â˜2‡Ôr·ü™ÛZî\^½Ú/álV€m¹«™vÈåiéåLY*°¼½Ê²•┦1u4äÅê×2,£}x•d–ΪMÑûªìÞWè,Cá-Oa1EVuvu@ÔÞâéc‹UÎËP"4¥m¦T*©ke’a;<€“÷’BßǶÄö¼Ò=ìø·« ò6îö‰þÌ{Õr×+ü´ûRlA(¬dL-wÔ†§ô]1,Êœai©²­¢Þƒñ%újò–ö½§|R:¾óŠ3Ñ“ºòî‡~­ðûͰckƒj¹‹Áƈ7höä¨õ–¯5Ã[^îçð`Õr“ºògn èzÐNÛƒ—åW÷= …½<'O°¼žX¹F¸Ï½{^r@×½}xgO#ö€œ2ˆë]jɇ«liá6ºj—ÔŒUÑ€lùǎѱb@ô¢©¥oz£Ñ¿Ã_z8¡-’f:uÝD -sv´bÉǴܓԦ–»Ö’·Ÿ}ÌRœñî¤j¹'$,-÷²ñÆ&rwNV…ivÎKsé.Á{½ŸÏuQU;z·…({C^¦é->Šn£¸J›)÷ŒŒŒŒŒŒ' ò€ž‘‘‘‘‘±`0Ê}é’CSË9d¦®HFð¯Â*_IŸ„édI¹KúéìQ#¼IQæ-JSQæNÒä#$/œ³ÐM²t6£Ó1}ÏGÍJºOI¹7HgúÅT<§©¯iÊ]ÒçœqŒ–ïNJš\Ï+C´­r¨’½Nù ‘êeí¡;¯ØM¦é)Þô9#ïEÒïœ,L¡6¨p¦Ù VìnZž‹á¼BñÏÛªŠ¨‹Ú#t–¼|wêSgŠ&çý1¾npÈ6&Ã0Bw§»16,“ê=É0MŒþ· Θ”¿¦Ü è"ž³Ôï[k—N}?Svîâêþ…ãÇ .“^„Bõ;ÕשÔ[R´ÄÅVŸ Zì´õ­Y=–†uœ¯TBVÖ¾y7Ê^©Ÿ™È+ôŒŒŒŒŒŒ­y@ÏÈÈÈÈÈØ 0å>2lê–Sî|¾ šˆÄYÇ´ÜÙ¯uÐòµaI¹K òâRåÎÇÖˆf%÷v¾u¥7Ñ5¬ÈØÐr÷”¨C§{@Ø)/IU›5$™/}퟼,°>Jer¸ÅaÔÎ]Z^úFïÕk W×RÓœµï5Í^Ë×2Ú@ƒÐÓ6,„œ"4â½M7Yò€&Ùù¹XZê–|¬LKË]æ[¹luN¼#ä]Øæ–ñÞ×þÔ}å[Ý)W°ìÛå¥GGu©Ä¤!¥FlŒ‡ _Íœ™2,S};JËÝr—k)œÃS¤-]á”í•Î j]ÑܱÓ¬Œ¼úsΖ‰9g‰œW(^"íKã4òm³œ Ç)®Þ¸Ò]»i€%R‡Ðj™§1âõï@·KZ;uOϽž‹¤ë)ùlQç,ƒèâ›Ú+6>k^ì»'ùC÷µLËißèrß¾*ŸëÈ x±‡.-ÝYòò¾Bí¢O ¨ö &Ií ÌkzǨN¾gÄ*M/Ÿ³*–÷¾¬;?¶{ØŽWžÛ̆õ2èBaµ¿kî¾¥ |ö`aœ¢|Ucl |Á2#u±&bB1í’✅Tc=:ÇŽ­õ6 […ÔçméµøF;voã˜oôеf<išaêÃP÷oÚÛš¯ w~KŸïqD~‡`É[½^r8NÝd¦Ü322222¶lv[îð´hQ+ta³Ýà{¼¯iS¦ÙÛaZÕF´Á;t|{…ÞYa%%¡âÙ Ûe/¶ß®)wËýê¨Q¯RÕ_¸L5üÛv”©ÄÊ,ÌçúF<¯Ly…0’(÷˜Pï”{J\ÃÅ*Sà\ݣР—d]_Q‡ÆT¨ z©]!ï7äÝA/„](hÚrg­e½â2µ–Õ*Í´ÏïAa?•Z1ÝU÷Ò¾¯psX»æ¬Ê,\Í®«wúWÐ5›yðÞZ­Sù¤Ù_­w_U§ÊÇž—ý…ÄêÒÌË;ñ˜”¹µ“Û2ºó†›k,0K:dÄ[«åX]8ž{ ÝÚ‚¦W¤[(EŸ+ñÔüÐG{pÎÒÿ€Na4ÀM¹·J¹‡^QîNî[{è£ÊR\MÙ·óî„î¤LV·X9gñjÞ‡ÃÖ–ƒ‡¯©/Õ.I|“¯‰!Í›Jd ·_¾úŠKJeCï•W²âJÔÇwäºG´g’¯Ÿ²Þw¥ |8¬‰C× ·;U£óÕƒ§¡ý]k@æ°/¥<[ã³&a¿Ùò]w<Øùz°–õBc?xLÿës:>Lm‹0É{ïrŽ¢e§ÌcÇÖš÷,-ÈA¤±ê"ÓÙñ¼cÛw¤Ý„'œ—¦ÖÅ„L”Âi ·³í:Ø41ž&ªåÎÔ:qËÚzµo.öå^¯Ð,'ν,ë½g±Ÿ^-âoFIf”¸qÞCgúž}£—¥Ôr¡i˜ÜO§zAú3/µOt• Ù‰úò5-Öõ–éêÕY˃åU^’*Õ~¨¹@Þ™cX;X6ì“PÖÁIvÕûÛüòÙ¾Õå^µÕ´ö¥u8 —´ãç´u¹ª*Ç%†AgKKq–µ°†¥9„* Û…‡B¯B¶CÐ:œÖ3hÐôÍx8‡ÊBZ©8FgÑKª©qj±§Ç49É{E¹hë¸Æ¼E٧ʇ)oÍ·†Ùû溽SžKij¿óWĵWu$qv*%ÞÊ‹û³Šþ¦OzTÄ»P‘o»Lª‹“é:`ç0fÊcŽ–qµÜWÿ¼þ¼öÕÀmw\ïüà3xç?~?² ù¿¯ÃÇ>x^ß½FÖrÏÈÈÈÈÈØLxôÑq÷½·&Mš‚ö{`ddn¹õêq-+Sî[Ã&bÇÉÓ‚×®¹îb\¿ô˜´ÃwÔK1e§«k­V ç_pÞN_úŸ3kÖ¬5o{ÛÛnœ;wn#ôõÛÆÓ4(w¾–àœ¥ÔZî0´ÍNÔQYSðL¿·JIÍ3ÍÎZî|œ­×Xy@e)®TeŽÇ3JÜÓ=ìEƒM!hö0•Î4{Ã` sD¬"ÚP×$šÝ²ªÕ éCñвTa¯Þ„½¤Mg–Í(IM[û=’ÖçÖ‡¢“©Á×´­+8_©=ò§ÞöA¦=aÑï‚×”¹ÑF ÊÞpEÁ4;i¦—DG¥¤òk홯ܖ;dq^Ö±’/ìíP{Clkå^8¢ÐÍÍÔºSîLÓGš™šøTÇ2º.”o‘$Qî².VX§7·?ŒpÃLud²îÃ4Mnƒáí'Ü”gG+â^(/þºÕ›Ó(Ó’m\9EÅ›Zîªßm Õ¯C§Û-°båŸðµoÿžùŒV¾óï//:ûîóT¬yüa¼îÍÏÄ{ßþe°ßŒŽŽàcŸx&NÜfÚsN:þšûï¿Ò%—\2ý¯x4ò =#####ã ÆÛÞôYÀÞƒÂøõo¿‡ö[‚_]t.Ö¬y ç|õçw<çyG9ú< gddddd<ÁøÌÙïÀu7ü“'MÁÈÈ&¬ßð8`ùÝ˰ß~OIÊc }ÓD`ýv] Ê]òB›Ý¢ÜKÔ–â´Æ;[Q#>›©ôV«¦Ã9¯v|]Ž ÆYc낚>aëpH‹pì[Ó”®–×ÊÿLÍK–›¶(ôE¯#BaE]…<½427T<èÀ©Ki&4i,ß0Ë [Dذ`PÞ :ç+XöåÎ×êƒÚï²Z mÿp]ä¶„  y_!ú^ÒÉÓÔB{ÞÒl—ó‚æõol%xM¹…ÃL¹3ÍÎZòNÝ—Aß{} óÁ:è–1lÜûê·Œ‡ˆ—ò¾áü:òŽV¡ZFÿQ/R Í.6±œúA”»å7Ýý€ø µÜÇÂÎúºÕ™K(/½¹&jé¶<¥a«q–¹>_¡³- êï]½“Éô;Sîwܵÿ{Åùøï/\ çÎûñá§?ÿ*Jì¸Ót¬¼oE³s k¹gddddd<ÁX¿~-~dnûÓñãŸ}¹Š?樗`ÅŠ;ð㟜;õᇾꪫv¼îºë&‡òÈzFFFFFÆfÂÔ©3°ûüE€¶ß{/<0qx°ßÀîó÷à Ÿÿ:¼õÏŧ>÷VœúòªÒíºË\¼ùMÀÅ¿»`§½÷Þûõ/ùË_²råÊ :ºóuÚ3gÎ<ߣ9qÖqÿ©‚fWtn:å^§—”;¥cÊòj‘fzY¢²iÝ ÜÉbA‹Â##Lå×e¶Zu™%œiæ®Wé]U~ã^¸]ˆ§—šíNµkÝ.&µ.´Ü5åîša%ØÔ襼RèE“È’vÆí¼ÂòšÂEÐèŠÎk(vCpß*Ì醩*µ¥%ç¶¡ðÀ ¥ª¨^ç&À¹á  ÓÁÎÕ»cŽîË¡¨ïÑŠejœï±@MGsXk@×2E1!ÒrwNÓ÷DÙ…)s7Ä÷H2…“Ž×'<Ëp|QT6ã½sµýxE“cˆ¶¸^/dˆr÷‘¼„½zJçe)ï ùF^uØy±ØÉ ¹-‚@¢÷`HåÕÑLoQ®ª"»,•_TÏ{¼Î×”½Ðr‡üºYf˜ó2´Ôµ<×e˜d8_¡åîe¯“B¹ë•ñ´iÀþÖy„À W¸ñæbÞ¼ù7œtòÁߥèOxœÓý9 ×ùZ–zDXí[Ta•®Ut—Tç–kï“èøN9]ÃÞWû»18! :æWH„±Ÿ’.q~{™S²°äÓ§§ÖDCMN‡]3^Ã8×v\ÈJV¸Q-–G ãØ}ñïXeø=²&y<9by:B•Ö¾hBá ˜ÎY¬‰%9tÞÒ”n€<¶fLXµLõ­Å&©ávÑÖÓž‘|^™NrùñzÅÒ ‡,J#éô*º‡¡âa C4Gå¹Öƒ˜?©zÃT›ZÀ#6[ÛB·4+W>ˆ‰§®pE·tº¬åž‘‘‘‘‘1ŽX³¸îñéâ;øñ.ÁÎÓWÝñê3Žþj,Ý€¶Ü=6 wYñJ:¶B7ì„xk…Na@j¦óŒ²l麯Š>Ìé¯ÊGy…îë^«¨ivÖ^¤ašØj5<Úgp(lB·q²ÆûØ:¿t$ädB!c©‹J{%Íizßö±5æ H#»œs¢)´»Æ`n¯Üµ† Ë´ËápXã]›ž·mÁu1+éêûrrÅjjS+ ¶64"5ÞS¨§nRhìs=ËpcÃ4¥C‡ñŸºú@ M~‘¦ ™6ŸÜN¯ë[á›Ì±*6ìå×åêê«4LA«eþ:Ùºs®‘..œ«ú§®j¢ª‰ yíÍ!åKLª‘/hUÝp!M0MX©º[+t!¹ºÿØj¿[;x§^ƒ èCÀÈpö&Ê÷f«”¤%)E%‘¼oß(ß’Wá ö´Æo@ÏZî[ò€ž‘‘‘‘‘± J¹;çÎSQÿ潿¤ócÓD`CÎY4M›rl­A¹—žÂDñV™j+[D¹·ê¼ÚûéD“3}Ï”û¤¯;´ïÁ3(Íx‹£ûÔTŠ¥-*ÖVF#] ,Ž+мœù¼d¾ÖÞº¤þe.j¦ K4õ‚ô]zM„Õä›Üß ‹ˆH,Ä‚*–[”Îl´Ú ”[Õá Ì£Kú^\èËG¢„OkåG8j‘éjùˆs–¢¦ÜEðG5 ¥8AA‹FVë›Ð¼ƒÊË8¾é 9è ¡ õ±[ô»„Ü_?¯²ñW‰Ôs©É[?§ZµïÂ]ÇË„Y>f)ÎÜCWåóӲޭIg4ÆÓˆr/–ßÝöÐÿÀ±ôû–îYfddddddlitUŠóÞ_´ê‘‘‘‘‘‘‘1ºèιe6ø1€³¼÷:×6l ¬Ý¡KÄe4¬˜¥PîD“[ô;”›ˆnbFn´Î[Pîà‰š·(÷ÕKS)d íýÆ©/Áà†ÝE9Áóøê¦ä¼A‡›”;ßX”r·ö¢BU(vT­ÊÙÇ©Ç.Òꈑâ¤ZŠ<•îŒúƨuáÄ…‚E_H¯/eŸæxCrö¬M®ªp¸ Ç·µÑ;/9É;•EØRœ«Ë)”a–êÈ‚–sõ;jÒߊrÎ`@òÜ^*/g¼Gš¶ä­£jZ›·< v[Ltꊦ½ø¥­Ëq á}ìRX»¢š.­SKÖ’QæFuMæˆä¥m@…ìHêÇeõ¦Æ½¬fß”{éä¸f¡Û€~<€k àc&xxï݆•o×¾•mvvÞ±×Î7######Cc劫P¶FÖ­N’‰èÞû_éœ; mÛ±oçœßv–ä=²¢|FFFFFÆxbÖÜC«ð¶ÛOK’éŰÌ,qÄè„¶¦{ ©†e´f{& 0ýÞ'ÊšµÌ À™n+ ¢ßeUMÎFfJE™W”»¯éì¶e"«|¦ÑÂiÚD–’^•5`ŒˆÐfO‰'z2UcÞ,°–F“O®ï{'¯š”»EÊÅè÷Ëíþ!!ì 0O^7“ÛŽ?¢¹Ku‹½¦Ñ”³tÐ æß”{€²w¢SÀÞh#¦é½lcgi£ úº¨òöšr·lɳö<§)èÝqDA3•®ë¢µÜ-Ê=ú¾ŽÅj*t‹–y6óä‰ü)é÷:lÙ)oîd¸*OûtN˜âçÇ¢)ri¬©–ât˜ÔãŽÔ?„˜–»°©„pXw{¡'œÚƒëW ¨åîœ;À‘–¢M¹¿Àû»g™‘‘‘‘‘‘±¥óoG{À>€íü¥÷þs[¤V=Á\¡{ïïB—y«†WÂÁÖrW¶Íëx%Nl0(,(sÃìsYžm®wê¢("i=nË4)&_H [j{Zô9ÕßAd`³Ö½ÓÙ)Ú¢éFWXH<Èñ«L_òáòãn&SéûaÖ;yæœj2J-£=½_Òy¯"M/ž6¢-¬x8Š“1íùŽmtk&|rCú\—{U:çìÒ©½ˆê™ Uig:g1ÃÂ0 $µoq°’'V8•‘ðˆ£œq(ßÔ¼H^WÅʪ¡pO?h'À_Ó;–»AÙ‹º; Qêœ$OñÕ—î"÷É+µwéV—<¾RÈ9K9´ºåÐϱµÔ¿1Þë¦2{ݰ:#,ÍEôªüBåkL(¬§&¶„½.i¬Q_å ãæàþ[ã¦R?еȀlúÄNÐ-oeì½QÿˆÞ PUÈ!KÄ9Kì~+^[Ó3Ú5ÅCY©ê’"ßЬ.òøgÂû1ùt†£ó2öÓÅ%/öݹhóý®ë{÷¤s™U°)œ,¹Ž”¯1ièÝåõ ÏGŠ­ým}TMÄ»NÝå—ny®‹MÆ}@×ín «¨gdddddlh…ÞjkºÇ×r7èh^¹;Ôší®¾Æñ€2æY¡szV(6éû¶¼«;-”%éz°Ž®Põ4¶JsºÐZ¸GJ¯ÁœXIÒ~÷ô;2¥LºI½4èC¦WÊÜôi(ß×\?ŒŽ¿/¤ ï|eÈ9O×¼¹ø“Fmj-{ÃÉU©0(b…AþÐå^À6NÎ ŽN(ÊÝ¢Í4ålóˆ-w«Žpо'[îBÆ¢òµ4¤¼’Ø(ÔåÑó²ž1T³r<JPJF„xD’š¶õ®î‡Txà³Ðñœ$…ro¬–:o³F™ÇeäkTE„SWñ!¤®ÐŸàfw<5‹ èbpVýcÊ€nÑïÍâ9_ãôKòXu-ЄYo°-°éN±çŒø×|(]y5fP‰òžz?–·,ŒQ¸IÓ†Ú5uF±Dßk*ßÚ÷–4m}Í;`½“Q1¸«ãauyE%ï½<ÂæùØY)eBñp䜥,¤7aQÛX¦©êÝ7޽‰x*S;û¶>ꘗ%~tíÓ»z.xà ÃÁªÀzöš‡å×8Ä3CVNÆN§FáB]»äv¥÷wÐ]0ÞÐnª!o è ù@™6ån½ü³‡ž& 6‚Ã@zÆÿŸ8hÿÅ8á˜ãÛ?,oNi§Ñá0´Ò™ÆáÓŸý"6nÜÔKµ322ÆÞ—([%†& wO\Éx”£#Ùˆ ÃÛŒW36SŠ+|¢–{gÅY„ÃQmGk¢Kv¯õ »šÙ°"›VŠ3'ÍNÆÓÔËÖ¹aÚ4œo[†¦º +ۤůŠ¡ Øf›¶_ÛrÌJNQÝ{²,1T !i@åüÐPãZ»Œ” #}U߳ƘõÀBé¬pà!;W÷°¥åÞDû%©YY³{¯4Ë ÊÝ\±"]ª–{iÄÃÕÚìΙԺOÒr'Êž)s ‹ÃšìŽÔ¹­Ù®'¼¡­'ïzÄêT‚§°^ÉÀ­×\„ Ïýþöc¿ä%o³siõýwá3o~Þwîmü€·?g*>vþØ0q±zµàU³vºþt¥¸p^)+tý¸“VèÖ [ǧt!ê§ ' 06<ìW˜10å>^Zß×€ÎZî–?u¦É#Zî>Ìô‰>=Æà¦h¹[cE#â#øÍ//ÄÐÐŽyÖqk×ÿñXvÓMxé+þ²÷Œ¬X±çÿôGxíëÿ¡ŽìyÐ !ð øX#%4r¿”{Hf@mpý Ŷ9ç…íkè ve|îË–×E÷°9ih¹¥¥å^ºšÕ”y’–;ý.GòÞq–þwX~ËÕxáß}³÷Øÿþ·G£Ei`M- IDAT36/¢ÜG†×MO‚zi^EPîD5ò~Y ï[žÂRÞ¶ÔFTQ`”ªÅÕl…Ø xϘׂ8 o/7xRƒ8Mpºë»p4tÈ —ýáR<ë9ÏÆ>ûïŸÿèǸçž{pÔ1’‚oµZØc¯…xÆÑÇàûÀw¾õuœùwoÄ“&µóo}Ç=ëD,Ügî½gE£¼_ýòç¸oå½xÙËÿª*ì`WšêgQ•š;ëH‡äu^CF˜Ó ѵBîñ¸˜|ögfÑìVI0zÑĦæ¯6šBúÂ9‹È,Õ9 µ‹áÛËCÁøöÙ§1™¢ÚìÎxÆN;jéhɤà ÷ㇸ-,ç,ò6öQ®âËPmÌò· ÚFt5å¿nÍ#Ø´a6¬[ƒ]æì)»Ì­ÒlÚ€ÿ>ë•Øqú,œþ/ç¹C>öå¸üÿƒã^þO¸ê‚¯cÑáÏÆö;íŒ ÇèÈF<ÿo?Š©3æcÎ^áúeܹôr,XüôvPwAÞ¡ÌÆõkñ¿?ù Þüùßa›I;aþOÃÜ}ÆMW]ˆÖÌ1ZÈûåÓ¾<4¨ÇeŸRÍ]¼eØOl³r¶NÊ‹#ãû*ìÇ%ªkõÔ½Pîe!ýYÈZîOÌš=‡?} àg{ ~õó_4ôI“&aïE‹°òž{°æ±G±ó.»â–›—â§Ž+.»>å`<õð#;í4¥úšF[£øÞw¿‰ CðÊWý5 —ðÖedd Œý?kV߇ï|êo±qý÷²·ãˆ“Î<´ò¬Z± oøÄoĤgÉó^‡¯¾ÿû²·â?>/ú‡OV×¶Ýa'L1àŠ³öXŒÇy°k=:6[}ÜÐ.:÷?ªk&n‹ë—ûÍèŽ< ? 0sö¬:ÞüÀÖ¬y _üÏÏaï}aúô]044„XU]Ûwÿ‚y?öè£xô‘‡ñê3^?¦I¿yî!##C¢š€§Ÿ|&ž~ò™¸ùMøä›ŸŽ§õÀŒùûâY¯x'¾ðîç㌳~€Ù{,ÌZ°?&OÝ~ó_1:² {=åè*¿ kŪå7c×Ý¡5:‚ˮƔ]æ4Ê6s>Zy'fïµk}«–ߘºë<À §½óT¥w.¾3w [[Ô–{;Lô¢Å9”*3ÂL“S=g:Zî¬qOñlÖUÈg6„º'ý`Ê^ð2¯å†–|š3×àoV,_.Â;î´S£È«¯¸>å`‰€w¸å曪kS§NÃ]wÜŽÅÜ›6m:N<éùøÆ×¾‚—ÿåé˜3g^ R›½ÕLO ÜMš=¾÷Qè œ u_êáÙNd`Äëv!XÇBõVQÐ~»“F_uu=Õ¥¦©•‘Ëþ¸æ3YKžeް Ã2žÐ%–¯ù\¢Émh7ä5lí‘˜ç« _Ñ1\uá×Pú»ÌÙËo¹Ógí‰ÛíTÝßĎïøo|ù}/Âéï;óö>ðÀ’矉o|äÕxþ™­»fLÜv|ÿSoÁ‘/x=®þõ·0gáÁ˜»Ï¡ »`û~~rö{pøI§áÊ ¾‰ÛîÐ6À2q"žõWïÀ×Îúk}Êßc—¹{áöëÿ€ý—œ„rø ”N9Á¢f‰QæÖ«7iîÒHgí°è2ùD±E³[ñ‘*ËGo¥  tiþÐ3?ú$ÀëÆ?ý®»æZüæWbÉ3Žl¤ÙuÆL,»åfÜzË͸àç?Ńc«sxÆQÇbé7àWü wÝy.ýýï0::Z]ßmþ¼ü•§ãÜoýîºëŽ-rOOvÌÜ}1VÝ} .;ÿ‹Æk>ðC8ç0}æö¬¶.Ë‚ŽÄ«ß÷mÜ~ýï*·½9C†q؉§Uym7i Nþ›᤿~?n½æ78è˜—à Ÿúuuý„Óßb¨½j:ùµgá £_ŒÛ¯»Ï~õ»ñ¼×“§Í<÷µÀÉg~÷Üz®øÅ7°íö“1}ö‚-Õ$OzdÊ}+Ç‚½öÀ‚½öÄ«Váž»ïÆ+O? »ìº+à3gb„ö+°Ï¾û¢,KÜ|ÓR̘9§¼âTŒŒ´-½í:c^sæßáê+¯ÀÕW^޳f¡( ì´ãúÔ§æÌ™‡Sÿê ܶìÌ»Ûv¿OÌÙã ÌÙ³¦¶;KÆi3ˆAtîÞ‡`îÞ‡h+»ð›Ã’ç¿;ì´s•f»ISpÔKߘ¿ß¥Þ³OwÞf;þÜÓw:àæ-:T¬0÷?òyX|äódµÈ”û–À@ºweÑåA5(w‹\s…¾¬JÊ]j÷šö!ýv›æl÷§ šœ¹˜p^2lXa.GÉs²”Ï@—`™{î9öïÌfÌœ‰3g¾mInÿÅ‹±ÿ‹ƒÏhúôq‰Ï…ì¸ÓN8䩇×ù͘…»Îi"•6âÐзYÊÔˆQÓF^ƒÊw%Ìt1*/Kûe­L|ÅRÞ—¶•N˜vÁØ"Y2œù@|£b1ëjo¥+0[tÓÙ§ELÇÙlÑMûœH‘gnÔaçÕI†¤v‘Ϙ­ÆY[,Ú0MŸ~óј>k^ò¦Ï@ÃÚ­±Òé÷3ö¾v4ä55Ý𭃸¥7+ÌòÊgM’<Û¨çkšr· )jú>Ö½ô ÞmKqÚÚZ8Ô€Þ{!Ks «s Û¨Â+Z?§ ¸L–Õ¥×±"*£Þ¦Ð[çî½ï>üöÒßÕdLGï*0 eõ–å®ö?££™XÒA¢×At<dãØÛR—„/X÷¤&êDm‡.n,LÇÖ<ì^ŠåU•sèco\¦k¤×ñâï¦orq„¬|QßK=ö‘—××edD80{Q¯pš x!1Þøéßw="¥«b% â!ÇsAkgôê‘a>óØYÌœ5/ò†¹ïÔÝœP¨û2/ 0 §XŠË”ûVˆ•÷߇•÷ß×þa â-ãkà/«1 s86 ó`•‘‘1ž¸înƒõ³L+¨†3æ¨âkòjÒUÂNp…¸V¯GÆÀ€”{‚æ^¡Ãx¹žRòÆ Ý¢ÉSWè&ÍÞX¡û¦|Cã=aæPOÕÕ40EiºaÚ¼Gl¾-c Þˆ­«×m¹³fz/yÕ«OS>å5ºl. òdcÏ.æ=-ÖR7=dÄ–9ô¼­É(‹¤xÛˆ5»E™›K)•YŠÖ¥Ó4t‚uú…”ÑØ£‰ èy®Ëz?¶ÖåžBßkîÊ|ƒTñÖosòÕÅDÊãß±AÔÜ׈Qæ½[“eZô{¨þ°:ÖséI_²æÈÈÇÜÏ3âp÷û²hî¨÷£$¯r°¼-÷ðzr’Wßû ¯Ú«ˆÝ DØq]ÆF8ï¡hzK^Ö¥ú©åÍn¿ Õ–‰Wƒ’vÁøÆ#Å#íqñ€ÎÈÃ>Ö×€bTýõ|»WÊÝÐUp =;gÉÈÈÈÈÈx’`@è€KÒr§©—¥maåÓ0ø;$íw&ëi2­‘…‘tªW)yñ’É…‚}-ÒR0®Tº4ÃØ*Áº ÃÊ/q%ÛóÃɇâëÐM§=T³ÔsáÜ’i³³Æ{Ï/Ú+¹p™Ö½ë°µBWéLmt# k£kÍtcõÖ¨W Î®T÷käë€ µ>Zîì]¼¡4|É‹t ?µK°Š×;$¡ºSuI$Tìº%£Vû¡Õ÷ +ôF5ú\¡—n h¹Ãa³k¹›º>bí‡;„™Ö-¥åÓxïu@o¡;!+_“ÿéçf„ûÊ+å!m.-w¾ÖG^‚¾Á’G%ÏïUÞ•H6µÔÅoiõÎÒf7)g–g«oy¯äkmtWk£—Îôg¥ÏZî¾Q*^ä… 6{TË]?#FH˽ñ}ƾɒåµݧ•µñˆcóå΀U¸4yK˽ñyX”û8èÖäBmʽ[Ó§ŒµÈ”{FFFFFÆV< gdddddll}à‡»$â£^‘}1§­ö3ì¤×¬é(…Y>U³Þ²þ4ª6+;òž2Ó¬);gªå}ØKÕ25ö)íðÌ1«–{„4­¥®åS÷8û"⸂–Iðgî•?ó$ùú%ó¢üTÊ>Fß[{?–¼B{ŸçJ÷žÂ΢ÙÍ Ãžî«Jç áèEøV·î×±‘›b¬Í›éœæJY¾òöA¬“ô½ÌËØ (öâéqIû;òÔ?ÔNcdùf¿ana8uQlZÛrßÜÚ>i”¼QëZîšæ.(L]X’?sÕV2ª.˜ }ÞN×¥ÇnS„ÕÒØ¤Ù­ÇÚånÀhÂhWè[ò€ž‘‘‘‘‘±`pÓ¯)tÓÔ†–»žÃI(ÄbMK*SÓýü»e„u ÊÝà=cué@µƒ`õñ›@Xhùk {ó G[ê–,¡Ü mè6?Éò)4{˜æŽKèn ÈèÝö§®ïËÚVÐmj×H'jï{joIS°a4…B$oj©Ç¶ µgGï´ÈË´õ½\eãØµQÞÖ…üTbßDUyõî ­S/Z¦•z_ázŠ£j)Ncøg´#t©0^¦Ù™þÖ¶–˜~75ãéS×GØ ’·(÷–Q¦ÿ;¿{ ofʽ,dÝ-äzFFFFFÆV€< gdddddlذL϶}±‹žÂá²Mÿš5eÃ0S*´ÉUš|Á]9íjÈ ÷ʺ"!MÊóˆ!Ù‰Hï7fÓ¶íšØHQç( 4wò>*Ÿ‚ÞR’À´üåT|J:Ÿ8„ý±« 'P»ŽjÊ=UÞ²ÈÖ£¥9Q²4çŠDjÛ‘ å園7-Õ©ºŒk‰x-i¯P^¡2C⎽ZÄAñ©…ü¤*^Q䜗uÇ {*“ÃU=CaÎKW}(÷-ã>5u@ɧ„úääSP!KoÝä9<ˆ¥8î|Ø©ºnk±ÅaKÞz›(B›YJñ$f=0í#)/½W0 '½<}ì¡'¿|½ÖE_ƒŸ’>CÆ´4×÷‹Ø£<×E«T±ÌØ`õ4¹hXdK×ǶØzå\¥”wÔÆ)[ãëÔ«TMŸ0Qi[§£>߸ßê÷õêñuéÇ2³8ªf|ª1ÿT)Ÿz_{èFúÎ-¯íÜm®U7,dÊ=#####c+À€þеE”Þଣž]Ѭ۴ ?®+tʘésöÍY¡{K^Ý£3ä“µÆ ¿/·á,ä¸.ã±*îCÞ‡äÕKr`_ËøTú¾ÑÈ¡†ígµmÅë¼ÂÔª’7g÷&M±2 Sæ©H¼÷$mj’±ŒKé0Ó䚯.¸$y]Üæ Ü9¾!o„k£'RîÑ0¯Êèwë¥pö% /ÀôyY+leǨBÃH!ÏÚìVØR^ä ™Ž¯…Â{«þIY•w[¡»-䜥ë?uîU>–—>*f è)>е?ôÎïõG×/åžr/âÍäÏ…'ö› w¾,¾¸b´|ç­o˜óëm–/X¿{$!ù^(÷ÍAÿóµ~òêv-#é§=½.žîÅéÄq8óL’N‡p:#Þ³ï`9”±öÍEOõ¤>¤I¹;!ÃùVƒ•ÊËÒMˆÓÿô}Z”{Ä:œ ó·Nñ=ŽÎb‹D½:É;uôê‰=p5ØV0â-«sÚF";á„=ôÎ慠ü¼zЃ×BñÝôBm7È”{FFFFFÆV€Á ˤÀZXj•‘Y\ʦAÑ8 w.&/ø¼ˆw%MÝxÁ£Þª°¼_/¦)òá0OºQ zžÇ3 …,Å&‹ÚNÝKGè>Yž`¶c¯+j{fß(Ò¢DY^§Q«Ñn2!ßÞŒÄ%§FùF^œk¯t²ÝK)Wb‡&¦ÈÆyu~ôA¹³6»ÈËAÙ±hvUG¦Ü-¿çIþÐù·#ÕXïcànév¡OÝ\ýê¾Ò˜+t'¬Ð•3è óÒèi…Žæ'«å®ó²ÂVŸÚ+kÊ´ÒÁàê0ï[4{´]\ÞäˆẨck‘/#Æ)õ¥Ïaž…(~ø¡¼ôK‘OœDîеԼt>.&–WL>å#N¹¯~ÚE½‡c¿Ût²¾Ö ‡ãã2ÝåMæ Ê]¦«îDÐÿ4@é¼ k~IûÞz{ *]7è|] œ±;§‘Ðmˆß‘W2E]&6 ¢å>è€Þ¸ftí]t‡¤=Sî[ò€ž‘‘‘‘‘±`Ëh¹‡Â€yd$J?th,Û‰Šµ_è¹mP_ºÌÇk“[¬LùØý êF˜Ò4܃wÀÚó€¹W-Ï|TÿS|•â¾,ÕSo9WÑ/9NIñaÞs:zàž~,¯ö5é´EåÕph‹¨ö~l+ 7yá*%Åþ`¤58™— n«¸H™)[$‘û¢37ì(¦QóÐNB£þF¼urÃ!ÂWÚôwÕæ^³Ù‡ QÞzÜ7ifµonrµV£¹;hô ag4¹èøó¶» 8£ @aSîâ¨ÚP8>Ù°Œ•Fƒæç£é#hÀhÖrÏÈÈÈÈÈxr è[£Ü5sBÌ`%khxFbÄüއè*¯2"þÃb`õª#„¿i¢Æç%êQ[dC\/³<‡ •¯ Þ,©ú_“rg;,<íÜ™%£Ó QØ¢Ü{;–`ûF’èdA³Û4¹¯FlÆkèújõ½„›(®Ò’W|¢0,ÃT~‚Ú´¦øå% Ãø°Œ¶eîùX)×— ³›ܬ¾9ö“·Á´0õ5eîÙü×Kmωò –Ý[÷¨ì…ާEúió)rWyÜòËcÀ•±¬‚äu^±®‚ÂŽ>Oñ\)ðÍ®vׂtºÊ+…Нî!®çÏ~ ¥ËþÐ322222ž4ÈzFFFFFÆV€Áœ³)¬š¤¹’Ç,Yô…EkYK¾$!¦»†¿š9H‹rl jÔ ¿5'({¦Ù ûEÆô;Ë(š¾ƒB5DEU*ÊÝ⻜a ÙiÕUKžUW•ºªÉkʽ{ئÙ5ånPù «uåžj¤&EË‹QÓN:<2ó’\©§çí,-÷¨!¾±WASËK…ꈚU)eë[¡­iôÅâ¬-8Hc.¾y#¡%¡ÉÍxëÕ³ݰf{©ªâƒÁ8¬Ý‹>w¨²ƒ¤ß-j=¶ëFZòüŽ”––|?”»ñ©Ç(wóuK¡âÇÐ*Ô¼BÏÈÈÈÈÈØ ôŒŒŒŒŒŒ­–ñi”“EW‰¼šÉ«ø;¡Ï½r‚" óò©JÓd Þø† ku:™¦“®´ïŤ®Ø Ë  ®™P $Ò¹ ÉGo8$_ Ò‘øÞ©iXÅj ýÐç½^±a:Z‰ QÐ’IÍWhÌIÔç)~ÖuŠã‘†–;oÑÆ FSœ.ߨ¿)OnRÙŸ9Çw~Wâšf§° ´‹®£®¿Y_6rK ÷Sœ>¯v›û }£þTEa-ïŸ:Û'ŠÉÇòe¤¦ÓØrþÐ{éuúpÜ'ÇN!u®ñËÛ§IБ4 GÂIòÖ›I¿ƒ{ÂÛ¬Ã!G/º‘SÞfË[Z0] /ñÀ¸‘8°¸ŽOyyz\ô"ÀïTùl/×¶Ô}…ò¥3êèé=Žë´œ«pv±¾&Á’¢Wƒ-΋å­pj^–s–h­úêx^l'6Óçí6Rä#ÝFpœ»Cit|¨n½„HÐ3åž‘‘‘‘‘±`p-÷HŠÎ´Pa#i× Ù;(Pk°‹U-gNÊ®ðƒ®Ð…“ü©«p -¼ö‡n6q,³Xº>+Ö|lµ?ŽKoòÌV]z‘MG_JS~@úÝ*4ê+›W-±Ó&¡¼Äбg¿ß]®uKcù çju®…•÷ 49ºq@}Á ßc÷eÒ÷œ.Æôr£qM|^áQÈ'v;©î B”»ÎËrËÚ× ÝJ€‡í „1åžP‘qÉ?ô tZ'ù2˜rç¼Æ“r/#錨Ù.®Fá Íy›-úÜ)yëÌJt$¡.ц$¯ñ–Gàw?(&¡÷‰~œã5!‰µQåyÔïU?Ûs@œŽÅǾŠ£v=ÊGiò„°1òæ¿9höçÛ±¹{_ê2 ]¶:gQî¢ LéÛU9æ„ÀJ@ö‡ž‘‘‘‘‘ñ$BÐ322222¶l-w{+-ᘂ¡Åêõ‘¹˜¥8AŸeZt•ò‡.Ž¡1ÍmYfbù–*¯ÊÊI.†­ËÎY|ÉŒ•/$OÃj’ÚR\Õ°l©Ms_†¥¸†£Ú‹0ý¦Gw®9Ê«áÃ<Åj?˜ZÞGý™÷£%£ü{Í‹AÏ[¥‰ý ¡áÅÕá4®“Å#å1UlÔË%ÔPûÃìOóRï±øôË*ÚtÂb:gašÛÉOBìAÇÚ¢sIÓä¡4:œ`¬‘W;¥ŸtÈ¢û «œhßJÉhrñF?õºPvVåµÕ¸Ž|äóöCápã@M§nÒï¹P¸×4c(ùŒ ¯Ð322222¶ä=#####c+ÀàZî½@Ñ æ }!A2™édL¹_c“Áå¼cԙȋ.pk'úC‡E1å®ý¡[ÆhL#5®æÉ—Š»JRñÔêÿ†|Ôºu” •&çpû·ôÍžJ¹s~½ÓäéèŸ>ÈEš´BøïµÊ±w?EÜâ¼5ïƒA¹#§Î¦Yt¾·Ž­15]×õé(‘×–?:? „µÔq<·Ä¢þÐéÔŽ°4gÐìMKqµú~å´&rœ® ³ç§6víøènª–{”Ê7>ïdù”O=%C¿ò±.‡Wè[ò€ž‘‘‘‘‘±`óS¯yº(D´îÑ>l*C3½lÔEÐáVõeÃoi¹ñZËë849),´ä5åÎÜ•¥ÙÎ|צ©IE´“®Ðª•.cïD“ûÆÃèæ½ån9F&èâÁh5Ö^5ÓùZŒ‡ƒãô,Äò­å%ýÞ+ž*i#>m4·ú†ôíÎ8 媾㺱ïDRéD™ó–ûw€§Ó-Bãžin]޵À›$üyòV¢ÜE]:éÔ½;’—Ûs2#iЬç$[Läì|]ík¢*v|§Û‚ðg.(sKc]‡-Ê>AžeR·vM túwÊ'Õ©†ûò =#####c+@Ð322222¶ H¹§½Q9Í\ôÀÕD{± ª0ƒ«2¤Úe·(¢Ôº8 WZ¸®wíK!3X#ù9FM÷“W›™ëãôj‡²ëY{ãPËV”©¦®äù;°¨uƒ~—ârO˜œQnNë2øäIKã^ÔEiÜ4ÈcÎYÄU¶ïU3=ÒvA/…œP ‡ oü²Œ ‰ôÆûéõ§n–‘·®õ!ÓkùOdWa èsì<âˆ#&/Ÿº\î›èñ©æ7l¸­ÎæP£ïÙô5>¤œbâ;: SÆ…ÏÇâ'²\8ÌûL%]k´KJ˜~Çü¡#1ßàž*ì™JÃÏz›Y‰Ñ¢™˜´Ã6c¿­ÍqSêÂH°:×è½RêÕ~ø×]÷6mò‘òíY6SÏ”˜ï~ûc»íÚi]Am!¾ ÖßPûî¤{ã,§Öpÿ+îmlÆÛØ„$Oýƒ÷êîäÎYRäS0ΓIÔ9öxÎÝïC]æÓ 4ó¶ÊLDk÷Ý0}ÏݧxJàòÝìÞk1€§Å xÁ ^°ëÝóî¶K©Nÿú-oAKìÎÈèÏ8rÌ™3eìWÊ ªÑëJ>ÖcŒ¡1 [á¦A„Ûn{›6X•ý³Ç3Ÿ± fÌh?×Ï$µÓ~N= %sÙÕ-¬¸7÷1ƒãÀaàaô>pwI_>õÌž?.€¿\þ)ÆôèúÈÈÈе×^;ïÚk¯wî¹çνçž{¶Yºté¤åË—o k^‹õ¯ÇÆÇ7â®?ÜUIXÿÈz¬¸bF7v ™ûêoíƒk±âÊ(GkÕËr´Äê;V×÷Ýp6<¶!¥ êÙÓñWÐ_ìZŸWiup ánòc|&6†§¿ñiØAä5B×›éî^~#6mZç|šX·îQ¬¼wYðÚŠK±qÃÚ üªûoÇš5FÊMòè‰×Å{ú‹\cÜ~ûo1Ú ÞËŠ»¯À† *ÊZm‹± ^ý±×—Yéu~ÍMO•&Uƺ/y/Ô(,#þK*FµqýËj{ïTñAê»ïÕ§¬óiš7Hn·¹¯°¼ø£ºl܈{®½ w]ölZ¿£›6á¡;þ$Òo\û8Yq7<€Öè(î½öjÜ{íÕ|WÜvë6eYº_üâ»,]ºtR³¥"üâÚµk'~ñ‹_|Õ²eË&ï{ß›ÙEÂ!yÞïüî槪OTõšWÔš“鬸t£‡pˆrwêë°äuƒ;º1aV‹ÓÅ øxYè᩼¢Jú… ¿@?þÉà”—¾»ìºἃ{ï]†Ëþ÷{8õUm\;ÿçŸÆIÏ}æÌYÔÈë8 ö8øœHîVÙÖ$ÆšÔè¼béÆãWÆw¾u:Þðæ«°ýöÓ×~ñ³wá„çœ…Ýæ/IËŒ¿U—¯eSoËÂzdè1ìÓêܸ…DZO2nÐݵ¾ä ãf)Žâî½ö*|ó•/Æä™³±óÂ}ÐÁ‹Ïþ*¾tâQø›_]‚©óÛ}ͯ?ü/˜¸Ã$÷žàÛ¯þK Ã{‡þt+žû¯ÿŽùO&àƒ¯zÅÂó?uø‹Ö¬Y³ý}÷Ý7ý¸ãŽûãw¾ó‹ø>Ìý¢‹.:È9篸âŠ{_ûÚ×Þ2}úôÃæÍ›wý©§žz<§[}Çjüýå¡á!¬[½?yóOpæÅgbÚÓ0ºqŸ=ü³8ì5‡áÑâ×ú5Þ|ý[°ÝÔí°nõ:|ùÄ/á W´·_õ8Ž~û1˜wø<ÜsÕ=øÙÛÚÐ32ž(x¯&!êrYš×6zM222žHüðÎÄûFùo­#pð©¯ÆU_ýžõ/Âè† øã·¾†×_|àåç|»Ú^ºõ—çãªÿþR5 ÀñÇë‡?üáë—.]:éˆ#Žx}Y–¿-H¿ÄЗ/_¾×Î;ï¼üúë¯?ìÛßþöO.½ôÒ]W­ZµÇ>ûìs'§[xÂB ·÷÷î¿ñ~Àüâêzk¤…;w'Ö­^‡á†ñ‹>¿º¶öÁµ¸ï†û°Ý”í°ýôí1÷°¹€ÙÏÆÊkW†+Æ3¡ÔYå 3/k…ÞÏjŸg”-÷žmž°–zLËÝ\¼7Ú¸NçÓ*Öåz‘4/‰ûVþ ]tî»ÿv,\ø´±Á¹öâß~ ¼îWpp˜5k!žùÌWb×íÙôçÿëL|ðI¸üŠbÎì}°øÀgUyŽŒlľÿì¶Ûb±ä¥€Ûn½ ç×^½/9âe8ä“ë:µí|³f-ÄâÅÏ\vÙw02²ÏxÆið¾Äo~ó\{íϰýö;aÑ¢cp䑯ÂððöÁûà•j†-2-HYñÆÄÕ ôê+þ×\s&Nœ„£Žy;öÝïu¶céÎýú+±äÈÀn»/é~Õ×é…6¼¥Mnå¥8âžóêRç°ŒÌ h²GEyã—×z•m²–»µZÔ'\¯îˆ¥]ëÄnØ€û®¿§~ë¼Fš§žñZ|ñ„gâ¸w¿7ž÷]Ì9ô0ì4o7ÀòK/Áµß8÷^ûÿÚ;÷訪{~3““0’y’ò4| h/] _\½·¥(¨T—zU´ë.–®[mK»tq/>Ú®úk}ÖG©¸¬hÑŠABP‰…‚BB2ìûÇ9™9çdÎd„$p¾kÍšýøýöù}öÙ¿}öÞ¿ßþ —ÛÍ‘ï¾5ñÞvÛm_”””s»Ý¡O?ýÔ7ujd»›­BoiiI=zôv¯×Û\]]’™™y ¶¶¶°±±1rL¼^øè.·‹¤´$¦Ý5-\仦‘–“Æ®¿í"-+Í’w!¾\͇šIHILÄ%¨6¥5V›‡Þ¥þ½«úá„v¹Kt»és1Ä­ªÄÚÙx\D< tyÊÝ7N¹+‰³,—9¬ì*Ùfú½Ã”yw(ôH8ðüïãÒKsíu?gãÆ7Øüé_Ât&ÌbúŒùì(ÿ;ýãO\}õR@hj>BuM97.zŒääT*¿Ù ÍMGøÓ‹÷1~ÜLʦ\– jÏç,¼áQüV¯¾—ä”TJŠ/ˆÖÖcþpÜïoÇ7o~êêmÜzë $$$³fÍoرc'^nsÏÄ‘n¥9-êý¤QWWÎâ[>æð‘jV=9‹ò2t’‰æøñÄ‚­áxkk#@3ï¿ûwÜ[N[[ˆW_ËÐa¥ Îï8ùaζæEC,åhÃY½ÛÅÅo£Ðmùíp*§Üc½’±x¢ñw×wÀÉòŸHY€x܈Öãòä=n_½³†Í+Ÿà‚;ï -âõŸ.dުșø{lú„§¯šƒ:tZ›ÎÌÌ w.—«-˜J·Ý'"mÁ`ÐSVVöõC=4¹©©)±²²2¡ººzˆN¢HDÛå>H†œ 9„ü!ê+ëÉ•Aƨ ¼ƒ½¸Ýá5õÖÆÖp^ò€dRâ²{sàà”¡®n7(ÅØ±!"”–ÎÁ펌m“’½TìXÏÚµ³k×F*wm2M¯O.½œä”´ð ähc=Ï>w\pI™Œ7“”~ýñù²3f»¿ÙÜ%Ywî\OzúP¾üòC¶o¯w ïŸÄÝ÷]L*ý ‰‰ý<¸˜Âá3ø¦²kõ°sÇ[ô÷ £|ÛkTlŸo(å¯w“´Îf¸(œ~1Ÿ­zжfAl 4Ë-f݃÷Ó°·ŠQ—Ì ¹þ þ¦cdŸˆˆ°õ­×A” ‰q]×ö =%%¥ñàÁƒƒW¬XñÑ’%K.X¸páÌœœIIIerrr0O¢7‘yÏÌã­ÛßbÝëÂkå ×.¤N®zò*^üÑ‹x3½x’<ø›üÜòñ­ñ×’§þ@ ^BNð$’”ä ç¿ùÆÃddæQR<¤¤~|±}Á Ÿ„DÍFsРaæ•"ôwp,àM§zÓ9zô`Êà<Œ˜¢ùýÍx<‰õ¯ÎrÈÎ}wÝ÷‘šš §et´JÐ\ÈDžC0±˜immÄíI § Í€ô<š:ãÀÁIcîãOðò‚ÿàK X8‚þÃr¹æ©Õ͚͚»oãœù q¹µ%ëÔ¬l~pÅ5<^6q¹uÉlCiñÍ¢Ù*ô¢¢¢Š-[¶L÷ù|Ÿ<ùä“ÿ|þùçGMš4郹sçÎ7nÜ?B¡3ï˜ f¾‚iÜñùQË3g cæŒ1¤hBú†ù¸«üníÿ4ü<®pà «È”K}} MÇð¦¦SWWEsó‚A?»woáškîÃíIà«/7tºù­ÿL.»ünž_ý3‚A?ãÆEöVíþŒÑ£Ï`wÕrsÇvàÏÊI]]e8¾k×FŽÔvl2†@ •É“¯2pô)òSªoþÎàÁÅáðŒ.í@“3ŽÚýÛ>òbÚÚ‚Tîz‘0dè9¸Ý‰”{S˜^DØø™ úIn8i~} äpóûŸD}ôþ¦c„ü~J¯¿Ñ”>gùc¦ø¥¿^ÿaãgå'ܨ:ôˆµ\[…>cÆŒŠêêêÂ%K–ܾuëV÷À-[¶lVqqqÕ‚ jV®\Ù…»sà ÷ ­ÿ f\ôcV®ZBQѪ«ËIÕ¿¤=žDò ÆóòËàó æ`}5nOçËB>ß`,XÎêÕ?#heÒ9Úèú»}_ñÚ«¿àxK#~ e“;ú…9r*~ø,¡Púú½xûÑt¾¢ÕXßÈc¸/åê€,Ì;…ÏС>Úwºküžšš ò Æs¸¡–ÌÁ$$¤ ”bïžm‚­äç§v%¹ycqñmM9CF…×Üo¤ñh=ƒ³†‡ãT‘—;–ÚºÝ L¾ý_ãvyÈËŸ Ëõõ5¤¤¤áõ¦B ÐBeåF²²Fâv' T Õª§-ÈÞ½Û8zô>_6¹¹p»yä‘/8|8€í¹“ÖÝ$ÉîFÂ<öºt_ÅëØäãÙ˜î"úq·YÄæ¸\SºG„Å7§‘­{Š«©ÙDVöXöîù˜´þ9dçŒ×É„ýû¶1pÐp’’Ó¡¹ù{öT­'7ïtF õgi±ÊªàløF»Ñè{EæB[é8ï2-¯A©-â¡‹÷MއÎî~ã4”µÔ½2 (Œá"'.Å;€‰çúV™£…Íñ ¡í›¨ì¼÷uHÓ_|<ÑE”y&(?Hb”j‘hÁªb1 TâKF++¿q,yž™cm#‹jiBR¼1ÃØûå°ÐÙð«X¯Q'¼Ö¼˜ÝS<è ÏÎíȈQ’°Bohh¸SJå)[ŸmN×MÙÆrª`§Üc)q;žXéÑ”»•Ç8›gô(2ômÒñ~Ú_(;y]ýúmØ÷FÅ)––·oôhüÖ·D,ÿñÄ£¬cÑXeLŠ‘ ±¾r»ú¦vµ—‰EOYÖžÔ»¯}#¿Ñe!@šÍ5»ê¾Ðšg'W4™:»Ž19Æ`ÈV Û±XÛkôbmL{løííQÆ<±Æ«8M2Ú„°k:.«,úx^o»f( i‰‘$Û.ÌæÞ t'4^õÅ“~" ½+_ MG·vFf·)Î8pЇpæ.À9pàÀgNxʽ3ˆÈP`<°M)µ¯»®s¦ADFFA(¥Vô8}"’‡­mMD)hF†›•RQ½ž­‘"`2emg"²˜È‚:ÀJ©m§S¾Þ ÉJ½J©/£äç%À¥TÝé–¯7CD\À9@:ð‘RªÅ— 5û•R§YÄ>‰nùB‘yÀ.à RD®ìŽëœ¡˜Ü 0üØ@DnK,yiÀ‡Àog€wELÙg5ôúù+ðïÀÿ‰tXþ%0„H;têN‡ˆ\lE{WW‰H¹®àÛó¯v¢õ»Eä’¨½¨–7»DÄèü'À_€úïÓ/^ßÄ)_C°X¤”zGD.GëP •R§Òà󌄈\ \©”º®§eé ÐGóÀƒ€[)µÄw'p9š£$7°ø½Rꙵ×BD£yãq)C‡ "b¥T} ×K¡×Ùa¥”_ÿØ©”ú¥ˆ¤ß—)¥6ˆÈ÷+¥ŠcyVAD†)¥¾ÕÓÐ̤ó”R­"²ÈQJÝÓ£BöAtÇúx47]èñuhÓ'ãl9X1QDž‘_ŠH^çäg/”RÓu\ ¬WJtš±,g8èËEäw"rEç¤g”RÚ•¹Ž=@žŠæ¦ï=þ7`Œˆ ?mör´+s{L̆Î#Dä¹ðôJÖ·Ñ = ¨TJµ(¥š*´©;£ xxȾ‘ž©Ïb0Pnˆ—c^›s+€7Ñ9?&"÷÷°<½úZùÍh3‘ µ»ŠöÙ¥ÔAà NÛ³Ão€ÕJ©=~8\¼""o‹ˆÕàÍAtǦ¸ ×Ú’1{Hw`¥Ô&`“}ID>æ£M);肘=Q'cöúï ”R¿Òƒ‘/Ç_ô H½"’¬þ[)õ¹žlmw õ‰NÛ³@D–¢Íêþk{šRêit—e"ÒmùâJ šstÇz-¯o¸ADÒÑF¦5Ýp­³ûéØ98ˆµ€ñ¼Ò±À·6´bc?Φ8ôýïëJ¨µÀh}?ú²Yœ¶g‚ˆÜ \ \ª”jŒF£Ïðn†NÙú*ºC¡—£yr¿A/¶+¥vvõÎ8ˆÈl%"Ù"²˜‹¶ÙA×ñ 0[¯Ë<`&ðRËÔ« "ÅD=Ed´ž>\DþED‰Èt`°¦§äìm‘AhÊ|¥Rêw–ìhJ}¾n9p°Á²n|VCDîB›yœ¥”:lÉË3„KŸž^ û&ºÅSœˆ”o M=¹SJm9å:¡ïÌ^€fŸ¹xT)õçªC·¢XMd£X¬”zIÿBzm§»G§û/Õ¾BD^À¼¿å¥Ô"ƒ6Å>ÍŠà=àA¥Ô‘³×AWHË£†äõJ©¹zþ…ÀkÀq4З9¶ÔˆHípjãÆÂéJ©/Dd-šý~È~¥”ZÖbö9ü?>¼³ÌÒ;é„IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_svdclf.pdf000066400000000000000000000472351323370031300206020ustar00rootroot00000000000000%PDF-1.4 %¬Ü «º 1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj << /CreationDate (D:20081113012450-04'00') /Producer (matplotlib pdf backend) /Creator (matplotlib 0.98.1, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /Type /Page /Resources 10 0 R /Parent 3 0 R /MediaBox [ 0 0 576 432 ] >> endobj 10 0 obj << /Pattern 8 0 R /XObject 9 0 R /Font 6 0 R /ExtGState 7 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> endobj 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream xœ­WQoÛ6~ׯàc Ì,ïŽ<’m·(–EŒí%/†ã.ìx•²öïïHY–D9²;¬@j‰÷ñîûÈ»#…ê³õ$Ÿ*£ŒÚ+çY~wù×Ê“9ýÊxõ^pŸ*2¨1á!hÛ¾ìŽ/‚ò& Ác ‘ùßNoÖr‚[§YÕõ—zVFŸ*0¬‰‚ep\ ¬X=G$#ÿw1‹Qð¬uÿ*±}íjb?Ñü¢®!QÃq®åŽ(¢Ähù AG´ûš=ëj¢èƒ6ÇØ&tD PS·tÝ•£„aL´ð5¶«‰ý爓Å& Ñ4¶ÂÁÒ­6c¢…¯±]Mì?GÔÚ¨}±É{eƒÕ†;NÑb¨ØúÂר®&ö«‰ªÏ iwÜ ï8§]D£óÖ¦¢*ìÑkë-°7S» MÔäº ¤£ äù˜³½°Ç¨ÁÀà]ë!:!ˆ²[£IÞ@š˜‡É©?ÏD¹ÅSmºDGYQÏ2ÝšÈ!eCa—W2Äǘ=Xfº &%\´³N"¥m*ì)3DG°Ö{›=\^Zɧ~Tß*È­&K9^êõ^½½5ê×à œ½Šh& ÖBtx-8í½aïc4ñ ç²Ê‘ÙØˆ^Rê"½T–'ÑÈ&öð/ÿÇÂŒs,;‡©“u™»¨#!á"|ÞK¯¢(ôýe<ír BÝ ài]®žW-ÏÂvÖ«ÈöäÌPj¡&ŸÓ?ª÷Kõöc«壜” ¥n¼³!Ï2:í×ò¡ºy·Û©C½}ÒoÔò«úm9ž'%LÑv©ªÑHÛog>nV/ÿÔ›FÝß82÷o:¥¶¢ð{m¶ÔV ÚÜœ65³lþqÖXÛ‡Ãþïæ¬6ˆV#1»ÀmÊ»¿f4åžÔKቔ¶iõ üŒ”ì"©ØÜÖÍ‹rg¹£œúÒë䌛”;±Nbõkœ‹vØ“%ù9PgTPª)ÒVàT ™³RˆQ³É{Ðvé«ݹ¦TT@Šf$Y›Ø¤ši§)"òg¨g99Æå€ÒÓ©!oàø¨ˆý:”‚üpW`Rúƒ;t‹˜«x—œ“È”{W·š²#3¡Á˜Ó¢LJ³=„Ì•¤ÏA£ôýQ|˜‹ïRˆÖù¤žŽñ¹‚’øÑäòH[1b€3 Pâ¶Î'%ÑÆïs…àÒ—F®f„t* ÃÓ\xOúè'|$0€Ì%®PHy*'´¸a|;ŸNÇÎ+É7„\ȾÔÌäSfœn.|_”øJþ !òÏrn§r£g Ÿ-Ùb‘bÉ%-œ\^™mN¡å¾º¹Ý¬žÕz·jšíãv½zÙžÕ¦®µœ}ȼu}hšÅ÷Õnû¿ˆÛÅãa÷П (—ìÿþ9|Wå[ƒ|Ot´EW>Ĉ4$Ær7Ñl»æôûöy³ªÕ‡ÅÝŸ·%ñûyhÔ÷F«f½mšCÝô4«8GR( endstream endobj 11 0 obj 1117 endobj 42 0 obj << /Filter /FlateDecode /Length 149 >> stream xœ5K! C÷9…/0R~„pª®¦÷ß6aZ Û/Áƒ‘ŒKL`ì˜cá%TO­>$#ºI9©P7OhL 3lÒ%ðÊtß2ž[¼œVê‚NHäé¬6¢Œf^ÃÑSÎ ›þËÜ$jeF™2ëT·²²`æµ<÷3î¨\脇ʰèN1¢ÜfF~ÿÛôþ{20c endstream endobj 43 0 obj << /Filter /FlateDecode /Length 52 >> stream xœ363T0P0±T026Q064b…C. ˆ•Ë˳@ªr¸ Ês`ªr¸Òé À endstream endobj 44 0 obj << /Filter /FlateDecode /Length 49 >> stream xœ36´P0P040’F†@–‘‰BŠ!HÄÌå‚ æ€Y@¢8®&‡+ Æè & endstream endobj 45 0 obj << /Filter /FlateDecode /Length 80 >> stream xœEŒ» À0D{¦`~&fŸ(•³ JÜpOº{¸:2SÞa†‡ž ,†Sñ™£`5¸FR죰n_uæzS«õ÷*Ovvq=ÍËô endstream endobj 46 0 obj << /Filter /FlateDecode /Length 90 >> stream xœMAÀ ï¼"OPDÐÿtzÒÿ_«Ô½ÀN‰E‚ô5jK0î¸2kP)˜”—ÀU0\ Úî¢Êþ2IL†Ó{·ƒ²ñqƒÒIûöqz«ýzÝÒ"X endstream endobj 47 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ5PË C1»g ¨džV½uÿkmÐ;aÿBXÈ”y©ÉÎ)éK>:L¶.¿±" ­u%ìÊš ž+ï¡™²±ÑØâ`p&^€7`èi5tႦ.•BÅ%ð™|u{è¾OxjrvCÉ` jºMX´<ŸNâÿ~Ãî-ä¡’óÊžùœíð;³ná'jv"Ñr2Ô³4ÇE> stream xœ36´P0P07WÐ544U022P042QH1ä2443s¹`‚9`–‰a$Ár¸`ZsÀ: ²P­9\iM8õ endstream endobj 49 0 obj << /Filter /FlateDecode /Length 147 >> stream xœ=O¹ 1 ë=8Àz,[ó\ê²ÊFR"@ñ‘eGÇ \b“Ž9/i?øiX5Gô„ŠaXàn’ƒ,JWž-^ ‘ÚB]HøÖÞ­Ld¢<¯;p'£>TYz@;DY®IÃXÕV]j°²ÎÂu=̪åÑ'k)PTB½tÿŸ{Úû o/ë endstream endobj 50 0 obj << /Filter /FlateDecode /Length 17 >> stream xœ36´P0€ÃC.”ì endstream endobj 51 0 obj << /Filter /FlateDecode /Length 317 >> stream xœ5RKrC1Û¿SpΘ¿}žt²jî¿­„'+°-@B./YÒK~Ô%Û¥ÃäW÷%±B>íšÌRÅ÷³Ï-¯GÏ·- Q=ø2'"ÔÏÔè:xa—>¯N)x“¯á_x”NƒÀ;2Þ“‘$ÁšK‹MH”=Iü+åõ¤•4t~&+sù{r©j£É X¹Ø¤+)$=‰H²r½7VˆÞW’Çg%&Ý&±M´ÀãÜ•´„™˜BæX€Õt³ºúLXã°„ñ*aÕƒMž5©„f´ŽcdÃx÷ÂL‰…†ÃP›}• ª—ÓÜ #¦GMví²[6ï!D£ù3,”ÁÇ($‡Nc$ Ò°€9½°Š½æ 9Àˆeš, mh%»zŽ…ÀМ³¥aÆ×ž×óþE[{£ endstream endobj 52 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ-Q9’AËçzBsÓï±Ë‘÷ÿé ʃ†C :-qPÆO–+ÞòÈU´áï™ÁwÁ¡ßÊu9HÒTM¨]¼½vfó¤5,ƒë?c 7zqxLÆÙíu5{×kOfP2+qÉÄSuØÈ™ÃO¦Œ í\Ï È¹Öe¤›•ÆŒ„#M!RH¡ê&©3A£«Q£Å~éË#aU#j û\KÛ×sÎ4;«<9¥GWœËÉÅ +ý¼ÍÀET«<p¿ÛCýœìä7ÞÒ¹³Åôø^s²¼0XñæµMµø7/âø=ãëùü¨¥[ endstream endobj 53 0 obj << /Filter /FlateDecode /Length 163 >> stream xœM;Ã0 CwŸ‚ êãÏyRtjï¿Vr ƒÁÊ(usfà !¼ÞÀ‹-eÇ· ¬Oãø'庉}€ù‹º ’*†³©Æ€F ;tõ’³™{MÃXp¤¤ï¶@'<,›ÙVµQ•°{ì“î"I­Ú£Ó Œg í° °»›O㵦¦_š)雨3˜·ðH›BdˆZÊ÷qêg{ÿ?ë83 endstream endobj 54 0 obj << /Filter /FlateDecode /Length 131 >> stream xœEË ! CïTáò>©‡ÕžØþ¯ë0šABøA";ñ0¬óò6ÐÅðÑ¢Ã7þ6Õ«c•,ºzRV釼òPi0QÄ…YLCaΘÊÈ–2·á¶Mƒ¬l•T­ƒv<¶§e«~©maê,ñ ÂU^¸Ç ?K­w½U¾BS0— endstream endobj 55 0 obj << /Filter /FlateDecode /Length 88 >> stream xœ5Œ» À0D{¦¸ø8€÷‰R‘ýÛ[.¸{Òç9ÀÈ>GèÄ-dCá¦xI9¡>Q4Zo:¶Hs¿¼d3ý3Ü}…íæ€d4Iä!ÑåråY)z>—Ú~ endstream endobj 56 0 obj << /Filter /FlateDecode /Length 232 >> stream xœ5Q;r1ë} ] 3æoŸg3¯JîßF°“fa ç=؈ėÒåŠoYf~'‹¼øY)œ¼QTEX!íàYÎj†Ás#Sàr&>ËÌ'ÓbǪ‰8ÎŽœf01ëh9fš=!×#nì4ËU i½[ª×÷ZþSEùȺ›åÖ)›Z©[ôŒ=‰ËÎë©-í £Žâ¦ Òác‡÷ _ÄœÅE'ÒÍ~3å°’4§ð#1”êÙá5ÂÄÏŒOÙÓé}”†×>hº¾w/èÈÍ„LåÊHÅ“•Ƙ1T¿Í$õý?г>š0TG endstream endobj 57 0 obj << /Filter /FlateDecode /Length 74 >> stream xœ357U0P°´¦†æ æF– )†\@>ˆ•Ë˳ÌLÌ€,CKd–‰±!eba†Ä26±€Ê"X@lMÌô®4q“ endstream endobj 58 0 obj << /Filter /FlateDecode /Length 87 >> stream xœ=Ž»À0C{¦`ó †}r©œýÛ€?iÐC:N¸ 6 ÏÑíÂÎ7AîE/°.o€ !‹$ùöÎÅ¢V™Å¯¦Eê„4Iœ7QèN‹Jçãôx>ºuz endstream endobj 59 0 obj << /Filter /FlateDecode /Length 59 >> stream xœ355W0P°´¦¦F æF– )†\@>ˆ•Ëehifå€YÆ@Hœa¤Ášs`zr¸Ò©áZ endstream endobj 60 0 obj << /Filter /FlateDecode /Length 75 >> stream xœ5±À0{¦`ËöÉ¥Âû· øh¤ÈäæÁž²t°Mçôç¤MóBQª0Ðtf}qhäV^hJ¯ŠèÏAï™êš endstream endobj 61 0 obj << /Filter /FlateDecode /Length 338 >> stream xœ5RK’[AÛ¿Sè®jþÍyœšÕäþÛ쬠8ÈÄK QrÅy‚ñ:¿ëåiü>Þ…Ô‚§"ýÀµiïÇš5Q°4b)Ì>öý(!ÇSãßè¹Hfd2r ˆûµ>Ö›L9ü¤isú(Iz-ØÝv|YAÒ“–ìä‡u-°ºM˜k"9µ25ÏÇžá2ž#AÕ, IŸ¸OŒH3;g-yáxª/~½×2©—U2¶ æ`;™ §("¿ $¹‰»hê(ŽfÆšÛ…†’"÷Ý=œœôº¿œD^ á,ÖŽzÊ2'; J jå˜a½ö…qš6J¸SÓí]±¯ßg&aÜæ°³R2 Îqp/›Ì${Ý1a‡˜÷îŒÄ¼ù]l\¹Ì¹&Óý(ÚH×ç\M™­(áªä‰×øÿüÞÏÏ?7}± endstream endobj 62 0 obj << /Filter /FlateDecode /Length 247 >> stream xœMQ»mD1 ëß\àëkyž R]öoCÉ ¡/)§%öÆK á[¾ä‘UC?1ì3,=ÉäÔ?æ¹ÉT¾ª›˜Pbáýh¼t/"+Êße sÎ÷ࣗ`&4`¬oI&Õ¼3d‰¡ŽÃA›TwM,®Í3ÈíV7²:³ lx%âÆDÙÍ`£Œ±•År¨ ’Z`×éQ‹‚+”Ö t¢ÖĺÌà«çöv7C/ò਺x} ëK°Âè¥{,|®BÌôL;wI#½ð¦fR™‘•:=b}·@ÿŸe+øûÉÏóý (\* endstream endobj 63 0 obj << /Filter /FlateDecode /Length 70 >> stream xœ3³0Q0P°b3s3s#K…C.# 3 @.—X ‡ËÐÐÊ261R044²LÍ¡b0@YKA9Pý9\iOT/ endstream endobj 64 0 obj << /Filter /FlateDecode /Length 304 >> stream xœ=’;’Ã0 C{‚ÈŒø“äód'•÷þí>2ÉV€I‰(/u™²¦< i& ÿÑááb;åwØžÍÌÀµD/Ë)Ï¡+ÄÜEù²™º²:ŪÃ0[ô¨œ‹†M“šç*K· žÃµ‰ç–}Ä74¨uK ÝÕhY Ípuÿ;½GÙw5<›TêÔQæù!O¢‡éJâ|<(!\{0FäSÑ@޳\­ò^Bö·²ÂAjIç³'<ØuzO.nÍd¹TøNQìíÐ3¾ìJ =¶áXî};š±é›8ì~ïFÖÊŒ®h!~ÈW'ë%`ÜS&EdN¶Xn‹Õžî¡(¦s†s êÙŠ†RæbW« ;o,/Ù,È”Ì 2F§Mž8xÈ~šôy•çxýlós; endstream endobj 65 0 obj << /Filter /FlateDecode /Length 230 >> stream xœ5QInÃ0 ¼ëóâ.¿ÇAOíÿ¯Ò ``hKœÍx‰ÁÏAäÆ[ÖŒšø›É]ñ»< ·‚'Q^†{Ù .o—ý8Ì|ð^Z9“O2 ÙôðDÈ`—@èÀìÔa›i'ú†„ÏŽH5YN_KÐK«(OÙ~§ J´­êÏí³.´íkO8Ùí©'•O ž[²—WLcôDå.ÅôAª³…ž„ò¢|²ù¨!]¢œ'£@;°ç¶Ÿ‰W… uuŸ¶¡)Oÿ645I"ä%œÙÒ¸[øþž{ýü¦TSŸ endstream endobj 66 0 obj << /Filter /FlateDecode /Length 245 >> stream xœEP»C1 ë=`ý,{žwH•Û¿=JFp…!Z?’Z˜ˆÀK ±”oâGFA= ¿…â3ÄÏ…A΄¤@œõ™x†ÚFnèvpμÃ3Œ9ÅZp¦Ó™ö\Øäœ'Îm”ñŒBºITqTŸqLñª²Ï×¥µl³Ó‘ì!„KI%&—~S*ÿ´)[*èÚE°Hä“M4á,?C’bÌ ”Q÷0µŽôq²‘GuÐÉÙœ9-™Ùî§íL|X&™Qå)ç2>'©ó\N}î³Ñ䢥UûœýÞ‘–ò"µÛ¡ÕéW%Q™Õ§¸<ÿŒŸñþŽ Y> endstream endobj 67 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ5O;²! ë9….Œm`ϳ™T/÷oŸd² þHòôDG&^æÈ¬Ùñ¶ˆøSñ¯=íÄê=¸‡åâB˜a$œ5븛§ãÅ¿]å3ÖÁ» ¾b–¶0“õ•Å™ËvÁX'qN²c×Dlc]ëéÖL(!í0%È)}²£Œ9:Nä‰çbªÅ.¿ïa}Á¦1¢ÂWOÐdP–=ï& ôßÕßI4‹^2‘`a$æÎYNøÕkGÇQ‹"1'¤ä2Òœ®b ¡ Å:; *—êsÊÝ>ÿh][M endstream endobj 68 0 obj << /Filter /FlateDecode /Length 338 >> stream xœERKrÅ0Ûç\ 3ægãó¼NWéý·•p:Ý<ô  2=eH¦Ü6–d„äò¥WdˆÕŸFŽDÄß)¡À®ò¹¼–Ä\Èn‰Jñ¡?—¥72ͮЪ·G§6‹F5+#ç C„zVèÌîQÛdÃëv!é:S‡p,ÿC²”uÊ)”mAߨ#èo<ܳær³¹Lnõ¿î[ ž×:[±m@ –sÞ`Äà ÚÄÜÚÞ)(UºŠI­ò\';P¶Ðªt¼7€9`Ã’­×hoÃ>ô¢FÅö ¨, þÎÙfÁÞ1ÉH°'æN=q:Å‘pI8Æ@Š­âºñØâ/®ˆšð u:eM¼ÂžÚâÇB“ïRqð"n]EµlOç ´?*’3b¤ÄÑ ‘ԒΗõÐû¸‰¯Äæž¾Ý?Â9Ÿëû¸ƒà endstream endobj 69 0 obj << /Filter /FlateDecode /Length 133 >> stream xœMAÃ0ï~…ž€±óžtzJþ-6î팀‘†03× endstream endobj 70 0 obj << /Filter /FlateDecode /Length 68 >> stream xœ32·P0P°4†& æf )†\@¾©‰¹B.H Äʳ €´%œ‚ˆ[B4A”‚X¥f&fI8"—É´å endstream endobj 71 0 obj << /Filter /FlateDecode /Length 255 >> stream xœE‘K’ D÷ž‚#€üä<™šUrÿí4˜L6v—¨ý„J#¦,çy0ýÈòÍd¶éµ«Š"Ìä*ôXÕ)â̵Dµõ±2rÜéƒâ 箜T²¸QÆ:ª:8¦çÊúªîü¸,ʾ#‡2lÖ96på¶aŒ£ÍVw‡ûD§“©£âvløƒ“ƾÊÕ¸N6ûê%‚~¡ LòM u†@ãæ)zr öñq»ó@°·¼ ¤läÈŒA»N®qëüÞÿ:ÃçÚ WŽwñ;Lk»ã/1ÉŠ¹€EîÔó=­ë ïÉ™crÓ}Cç\°ËÝA¦Ïüë÷PŠfˆ endstream endobj 72 0 obj << /Filter /FlateDecode /Length 45 >> stream xœ32·P0P°4†& æf )†\–V.L,ÌÑ–p "žŸ} µ endstream endobj 73 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ=P»C1ë= äÎ|í7ÏË¥Ëþm$œ¤B6B”šLÉ”‡:Ê’¬)O>Kb‡¼‡ånd6%*E/“°%÷Ð ñ}‰æ÷ÝÕ–³C4—h9~ 3*ªÓK6šp*º ÜÃ3ú mtV‡±[ Ф`×¶ rÇ Á™‹" JMÿ­r÷RÜï=o¢ˆ”tð®ùåôËÏ-¼N=ŽDº½ùŠkq¦: DpFjòŠtaŲÈC¤Õ5=kµ®Þzù7hGt€ì‰ã4¥CÿÖ¸Ç뇊Rô endstream endobj 74 0 obj << /Filter /FlateDecode /Length 161 >> stream xœEKà C÷œBGðG|žtºJï¿­!M³€§±@w'©µÑ/mKº >[ ÎÆxè6n5äu€V¤ãh”R}¹Åi•tñh6s+ ­fz”£ :Þí¢är¦îÎùGpõ_õG±îœÍÄÀdå„fõ)î|›Q]ÝdÒcnÖköª°´¬¥å„ÛÎ]3 î©íý©s:„ endstream endobj 75 0 obj << /Filter /FlateDecode /Length 236 >> stream xœMPKnD! ÛsŠ\àI$!ÎCÕUçþÛ±ÃTí*†Hé²UëSbu‰ìò¥M—Ê2y¨åOÛÿQ nÿÐÈA´·ŒbæÖÅÂ$<å4#'×,;Of…ÆÄã.`Ÿ5[•Í9m:7@º·ª³ÞdP "êBÍ“.œ§Ñ—ˆ9ž¨`Jw&µ\>Õ¡qZ½ ¹c‹“oÄY¡ÀaÐLqÖ_֨ɲYÈ I†!Î}£{” ¨Êy+“¡õ†Õ •¹…¢©å’üÚ0¶Œué JªÁß*§}¿$]S endstream endobj 76 0 obj << /Filter /FlateDecode /Length 332 >> stream xœ-R9Ž$1 Ëý ~`ëòñžLÔûÿtIUªlË<ärÃD%~,ÛQkâ×Ff Âð¯«Ì…ïHÛÈ:ˆkÈE\É–ÂgD,ä1Ä<Ä‚ïÛøù¬ÌɳÆ/Ù÷Vì© ËBÆ‹3´Ã*ŽÃ*ȱ`ë"ª{xS¤Ã©$Øã‹ÿ>Ås‚¾#hÀ/ùç«#x¾¤EÚ=fÛ´[–iG•–ƒíiÎËäKë,WÇãù ÙÞ;BjW€¢0wÆy.Ž2meDkagƒ¤ÆÅöæØ¥]èÆe¤8ù™*ÂJšÌl¢ þÈé!§2¦®éJ'·QwêÉ\³¹¼I2[÷EŠÍÎë™õw˜2«Í;y–¥NEø{¶ ãêÙk™…F·9Á+%|6vzrò½šYÉ©HHÓº N£ÈKØ–øšŠšÒÔËðß—÷ÿ3â| endstream endobj 77 0 obj << /Filter /FlateDecode /Length 157 >> stream xœE¹C1DsUA °ê±ÇÑwÿ©ùJ´o-‡¯%Sª'"¦Ü×hô0yŸM%V,Ø&¶“rAJ1˜xN1«£·¡™‡Ô븨ª¸uf•ÓiËÊÅóhW3“=Â5ê'ðMèøŸ<´©è[ ¯ ”}@µ8IP1}¯b£œv"œà>G™)#qbn ì÷f¾W¸ÆãÝ7y endstream endobj 78 0 obj << /Filter /FlateDecode /Length 320 >> stream xœ5Q»qÅ0 ë5ðø•4s¯ÊÛ¿ @;a@ª¼dJ¹\ê’U²ÂäG‡êMù>`¦üõãèÙ!ºSÖ–{ËÄ<¥ŽXM–{¸/ M‰¹…ó÷è+£0ºÅß?@³$0ipðSk­Zb‰<,X³+Ì­)TÈU|;6¹rq³Ð§š·Ü‚ðeˆdGj±¯Ëe)ò»õ „æˆO‰…çf"ñ'b{öÙbWW/ªÖI‡RÒln04E²êƒØWÇ5?OGÙÁÉA¿ŠÁø68™/Iy_¡þÏÙȱ’C$ò}µÀˆ#l€¡Oí#e 4E÷î™R>&UŠïF!}ªW2¼‘Ùj†Íÿ]Ù* UYŸFp&ƒI8ód£ ÓRµÓ¿ûÜãóccz€ endstream endobj 79 0 obj << /Filter /FlateDecode /Length 338 >> stream xœ5R9®Ý@ ë} ] €vÍœç©~î߆”_ C´VŠšŽ•iùe!U-“.¿íIm‰ò÷É ‰’W%Ú¥ ‘Pù<…T¿g˼¾Öœ K• ““’Ç% þ —Þ.çck?#w=z`UŒ„Ë£kY:»Ãšü<¦?âr®X·cH ºqÚïCóyÈ f˜–Š ]V‰~Añ G­}÷XTX ÑíIpŒP‘€vÚH 9³»¨/úY”˜ tí‹"î¢ÀIÌœb]:ú>t,¨¿6ã˯ŽJúH+kLÚw£IiÌ"“®—Eo7o}=¸@ó.Ê^Í ASÖ(i|Ъc(še…wš 4LJÌ<‡3”ô}(~_K&º(‘? ¡_£ŒœosÑŸ¶ŠñÙa¯`…ÒÅšä}@*z`úÿ×øyþü¶€T endstream endobj 80 0 obj << /Filter /FlateDecode /Length 72 >> stream xœ5Œ±À0{¦Ð6X`ï“KEöoC|N/—¢ÁZ º‚#pu©üÑ#]¹)E—c΂áqª_H1F=¨#ãÞÇO¹_p} endstream endobj 81 0 obj << /Filter /FlateDecode /Length 392 >> stream xœ=RKn1ÛÏ)¸@¥ðMrž©ÞîÝ[›ÌTª /¶1”— ©%?ê’ˆ3L~õr]âQò½ljgæ!î.6¦øXr_º†ØrÑšb±OÉ/È´TX¡VÝ£Cñ…(-àá¾ÿñ¨Á×°…rÃ{d`JÔn@ÆCÑHYAaû‘è¤P¯láï( WÔ¬…¡tbˆ –)¾« ‰˜¨Ù ‡„•’ªÒñŒ¤ð[Á]‰aP[[ÛxfÐÙÞ‘3íÑqYk?=é£Q2µQMg|ñÝ2RóÑè¤ÒÈÝÊCgÏB'`$æI˜çp#ážÛA 1ôq¯–Ol÷˜)V‘ð;ʽýÞ’Ï{à,Œ\ÛìL'ðÑi§­¾býƒ?lK›\Ç+‡E¨¼(~×Aq|XÅ÷d£Dw´Ö#Õh% ÂÎí0òxÆyÙÞ´æôDh£DÔŽ=(²Å地§ü¬Í±ž&{o´”Į̀„Ôvz¨¶ÏcÔwžûúü.¡ endstream endobj 40 0 obj << /FontMatrix [ 0.001 0 0 0.001 0 0 ] /Name /BitstreamVeraSans-Roman /FontBBox [ -184 -236 1288 929 ] /Encoding << /Differences [ 32 /space 40 /parenleft /parenright 44 /comma /hyphen /period 48 /zero /one /two /three /four /five /six 56 /eight /nine 65 /A 67 /C 70 /F 76 /L /M /N 83 /S 86 /V 97 /a 99 /c /d /e /f /g 105 /i 108 /l /m /n /o /p 114 /r /s /t /u /v ] /Type /Encoding >> /BaseFont /BitstreamVeraSans-Roman /Type /Font /CharProcs 41 0 R /Subtype /Type3 /FontDescriptor 39 0 R /Widths 38 0 R /LastChar 255 /FirstChar 0 >> endobj 39 0 obj << /FontName /BitstreamVeraSans-Roman /Descent -236 /FontBBox [ -184 -236 1288 929 ] /CapHeight 730 /Ascent 929 /MaxWidth 1342 /StemV 0 /Flags 32 /XHeight 547 /ItalicAngle 0 /Type /FontDescriptor >> endobj 38 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 318 401 460 838 636 950 780 275 390 390 500 838 318 361 318 337 636 636 636 636 636 636 636 636 636 636 337 337 838 838 838 531 1000 684 686 698 770 632 575 775 752 295 295 656 557 863 748 787 603 787 695 635 611 732 684 989 685 611 685 390 337 390 838 500 500 613 635 550 635 615 352 635 634 278 278 579 278 974 634 612 635 635 411 521 392 634 592 818 592 592 525 636 337 636 838 600 636 600 318 636 518 1000 500 500 500 1342 635 400 1070 600 685 600 600 318 318 518 518 590 500 1000 500 1000 521 400 1023 600 525 611 636 401 636 636 636 636 337 500 500 1000 471 612 838 361 1000 500 500 838 401 401 500 636 636 318 500 401 471 612 969 969 969 531 684 684 684 684 684 684 974 698 632 632 632 632 295 295 295 295 775 748 787 787 787 787 787 838 787 732 732 732 732 611 605 630 613 613 613 613 613 613 982 550 615 615 615 615 278 278 278 278 612 634 612 612 612 612 612 838 612 634 634 634 634 592 635 592 ] endobj 41 0 obj << /parenright 42 0 R /hyphen 43 0 R /period 44 0 R /one 45 0 R /four 46 0 R /zero 47 0 R /comma 48 0 R /parenleft 49 0 R /space 50 0 R /six 51 0 R /two 52 0 R /nine 78 0 R /three 79 0 R /A 55 0 R /C 56 0 R /F 57 0 R /M 58 0 R /L 59 0 R /N 60 0 R /S 61 0 R /five 62 0 R /V 63 0 R /a 64 0 R /c 65 0 R /e 66 0 R /d 67 0 R /g 68 0 R /f 69 0 R /i 70 0 R /m 71 0 R /l 72 0 R /o 73 0 R /n 74 0 R /p 75 0 R /s 76 0 R /r 77 0 R /u 53 0 R /t 54 0 R /v 80 0 R /eight 81 0 R >> endobj 6 0 obj << /F1 40 0 R >> endobj 7 0 obj << >> endobj 8 0 obj << >> endobj 9 0 obj << /M21 33 0 R /M22 34 0 R /M17 29 0 R /M9 21 0 R /M4 16 0 R /M14 26 0 R /M5 17 0 R /M3 15 0 R /M19 31 0 R /M11 23 0 R /M8 20 0 R /M7 19 0 R /M6 18 0 R /M2 14 0 R /M18 30 0 R /M16 28 0 R /M24 36 0 R /M1 13 0 R /M13 25 0 R /M10 22 0 R /M25 37 0 R /M0 12 0 R /M12 24 0 R /M20 32 0 R /M15 27 0 R /M23 35 0 R >> endobj 23 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 36 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 33 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 18 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 13 0 obj << /Filter /FlateDecode /Subtype /Form /Length 24 /Type /XObject /BBox [ -3.25 -0.25 3.25 0.25 ] >> stream xœ3VÐ5PÈUÐ5V0PÈá æÀ endstream endobj 19 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 14 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 17 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 32 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 16 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 15 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 26 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 22 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 24 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 12 0 obj << /Filter /FlateDecode /Subtype /Form /Length 24 /Type /XObject /BBox [ -3.25 -0.25 3.25 0.25 ] >> stream xœ3VÐ5PÈUÐ5V0PÈá æÀ endstream endobj 20 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 0.25 4.25 ] >> stream xœ3P0PÈb…®`.¥ endstream endobj 30 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 21 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -0.25 -4.25 0.25 0.25 ] >> stream xœ3P0PÈb]…®`.¿Ò endstream endobj 35 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 25 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 29 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 34 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 31 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 37 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj 28 0 obj << /Filter /FlateDecode /Subtype /Form /Length 20 /Type /XObject /BBox [ -0.25 -0.25 4.25 0.25 ] >> stream xœ3P0PÈU0’9\Á\¥ endstream endobj 27 0 obj << /Filter /FlateDecode /Subtype /Form /Length 21 /Type /XObject /BBox [ -4.25 -0.25 0.25 0.25 ] >> stream xœ3P0PÈUÐ5R9\Á\ÑÒ endstream endobj xref 0 82 0000000000 65535 n 0000000016 00000 n 0000000065 00000 n 0000000216 00000 n 0000000275 00000 n 0000000511 00000 n 0000013985 00000 n 0000014017 00000 n 0000014038 00000 n 0000014059 00000 n 0000000382 00000 n 0000001703 00000 n 0000016547 00000 n 0000015000 00000 n 0000015313 00000 n 0000015930 00000 n 0000015776 00000 n 0000015467 00000 n 0000014846 00000 n 0000015158 00000 n 0000016705 00000 n 0000017013 00000 n 0000016239 00000 n 0000014382 00000 n 0000016393 00000 n 0000017323 00000 n 0000016085 00000 n 0000018251 00000 n 0000018097 00000 n 0000017478 00000 n 0000016859 00000 n 0000017787 00000 n 0000015622 00000 n 0000014691 00000 n 0000017633 00000 n 0000017168 00000 n 0000014537 00000 n 0000017942 00000 n 0000012449 00000 n 0000012234 00000 n 0000011685 00000 n 0000013502 00000 n 0000001724 00000 n 0000001946 00000 n 0000002070 00000 n 0000002191 00000 n 0000002343 00000 n 0000002505 00000 n 0000002788 00000 n 0000002926 00000 n 0000003146 00000 n 0000003235 00000 n 0000003625 00000 n 0000003946 00000 n 0000004182 00000 n 0000004386 00000 n 0000004546 00000 n 0000004851 00000 n 0000004997 00000 n 0000005156 00000 n 0000005287 00000 n 0000005434 00000 n 0000005845 00000 n 0000006165 00000 n 0000006307 00000 n 0000006684 00000 n 0000006987 00000 n 0000007305 00000 n 0000007605 00000 n 0000008016 00000 n 0000008222 00000 n 0000008362 00000 n 0000008690 00000 n 0000008807 00000 n 0000009094 00000 n 0000009328 00000 n 0000009637 00000 n 0000010042 00000 n 0000010272 00000 n 0000010665 00000 n 0000011076 00000 n 0000011220 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 82 >> startxref 18406 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_svdclf.png000066400000000000000000001012331323370031300206020ustar00rootroot00000000000000‰PNG  IHDRô“Þ'àhsRGB®ÎébKGDÿÿÿ ½§“ pHYsaa¨?§itIMEØ 59¤É3 IDATxÚìÝyXTeÿ?ð÷ÌÀ û¾ ˆÊŽ""¸+ä–¦ej*áR®iešiîei–[¹/©¹dÙbOh™ &(® ¨ *n È"û:l3÷ï~œGÔëùÎäûu]^—3çÌaæsÎÌûÜ÷¹Ï92!„éœÔÔTܾ}Ï<ó d2Y½éû÷ïÇ;#ƒÂÃÃC/>Syy9nß¾¢¢"ÔÔÔÀØØpqq¡¡áC_{ÿþ}ܽ{eeeÉd055…ÜÜÜ››‹ëׯ£U«V°¶¶®÷Ú¢¢"\¾|ÞÞÞ077ÇÕ«WQRR///¸¸¸Ô™7++ W¯^…±±1‚ƒƒù¾sàÀL:€——×ß^Ûªª*̘1X³f ¬¬¬PUU…Õ«Wã‹/¾@ee%Œnݺa„ ¸|ù2þ²¿ŸsssxzzÖyÞÃÃS§NÅ”)Sþ'Û˜Z­Fxx8zôè)S¦@.—ÿ%ËÍÎÎÆ­[·Ð®]»ÿz›Ð'çÎðaÃðý÷ß#$$D§ßëk¯½KKK,Z´FFFOun0:uÓ×_¹s確º …¢Þô-Z`̘1°´´ÔùÏ"„À7ðÅ_ ** *• *• ÕÕÕ066Æ Aƒ0iÒ¤F_ñâE,[¶ III°´´„\.GYY±{÷n\½zãÆÃôéÓñúë¯7®ï¼ó¾úê+¸ººbÊ”)ˆÇÔ©S±dÉ’:?úkÖ¬Á’%Kàåå…'NÀÞÞ^/¶…BîÝ»£¼¼*• pýúulÙ²£GF§NàììŒêêj¼öÚk011ùKÿþ;#àà`,_¾¼ÎócÆŒAPPÐÿ¬Dvv6 ô—…9;v sæÌÁ¹sçôf›xNNN;v,uþ½Ž;S¦LÁ¥K—СC:馆Zæµ¼½½1yòd˜™™´Z-ª««ahhF­V 044¬÷æÕjQSS­V ™Lƒ:; Biºr¹u–£ÑhPSSCCCi^CCÃw>îÝ»‡Ù³g#11+V¬€”J%ÊËËqñâEœû IIIX·nš4i(,,Äõë×ahhˆàà``ïÞ½xå•W`jjZç³~ûí· ‚ÊÊÊþþþ8uêîܹ#õpàðáÃðõõ…F£y¬•ë¤P( P( ’ššh4! “É P(``P÷+X[×Úyjk/“É „€F£ip …}ûö…V«…‘‘jjjpûömÈd2ôéÓ~~~P*•Ðh4˜>}z5ôÞÜ&jÿfíöòÇ÷T]]-mSÒv§P(0eÊi£¡ÏøÇm«¶¦ —Ë¥ùj?çþ%%%øê«¯ЦM›>t›ÿãgxp=6ôù«««!„@ee%*** —Ë¡T*ùÚ?n/ÕÕÕÉdõZùµËW*•n+ …⡟ÿ¶-=ê{Þ¤IL:Uú}ihy¾§Ç©ÃÃÖ{m \ïµÛ‘L&«·ì¿;>>>prrBTT‚‚‚¤>•é¤O>ùDÈårQSSÓàô}ûö OOOqóæM!„?ýô“ðòòk×®/¿ü²­Zµü±(//—^wÿþ}ñ¯ýKtíÚUøûû‹   ñöÛo‹¬¬,iž˜˜1pà@Ѷm[áëë+BBBÄâÅ‹EQQ‘4ÏîÝ»…§§§øôÓOųÏ>+üüüÄ×_ÝègqrrGŽipzcŸQ!’’’D‡ÄÛo¿ýÐzíÝ»W4mÚTDFFÖyþÆÂÒÒR¬_¿^hµZ‘œœ,:wî,fΜ)Ú¶m+¶mÛ&4BˆmÛ¶‰   1{öláãã#îß¿ßèß+++‘‘‘¢GÂßß_´lÙRôíÛWúŒ?ÿü³ðôôÉÉÉB!222ÄäÉ“EÇŽ…¿¿¿ãÆ—.]’þ~NNŽ˜>}ºhݺµðññ­[·C‡×®]FÄÇÇ‹ˆˆáçç'|}}EPPx÷ÝwEii©¨¬¬o½õ–9r¤¸ÿ¾Xµj•pqq*•J4kÖLx{{‹cÇŽ‰}ûö ‘-}–¸¸81vìX(üüüDûöíÅÇ,„¢ªªJ,^¼X„††ŠV­Z 1`ÀqðàAQUU%rssÅĉ…‰‰‰°¶¶ÞÞÞ"((HìÝ»W!D‹-ĪU«„BhµZqãÆ 1mÚ4ѲeKáçç'Ú¶m+¶lÙ" …Bäå剈ˆ1räH±`ÁÑ¥Káåå%  Î;'Õª!ÑÑÑÂÃÃCœ;w®ÎóyyyâóÏ?:t~~~¢U«VbøðáâòåËB«ÕгgÏŠ—^zI ???$>øà‘››+„âСCÂÙÙY áíí-F%Š‹‹ETT”xá…„ŸŸŸðóóÁÁÁbñâÅ ¾¿œœ.†*´Z­ô|II‰9r¤xî¹ç„V«7oÞ£G-[¶¾¾¾¢M›6âÍ7ßéééýû‘šš*¦L™"-£uëÖbìØ±Òï…Z­¿üò‹èß¿¿ð÷÷þþþ¢gÏžâÇBqöìYáîî.âââ„BܺuKLžþøc(•J¨T*<ÿüóhÖ¬ pãÆ ¬^½ööö˜0aBãŠQQQ˜4illlмyóßç¾}û ÿF»‹cccGGGDGG#22pss«÷š^½zÁÈÈÑÑÑèÝ»7Œ_}õÜÜÜеk×:õ211AŸ>}ð믿bРAÉd8zô(ÂÂÂ`kkûкkµZùîîîðõõElllù3220mÚ4˜™™aΜ9pvvFnn.ªªª¤ÏêììŒiÓ¦ÁÆÆ•••ˆŒŒÄ‡~///¸¹¹áí·ßF\\|||ðÖ[oA¡PÔÙjÿ^AA>ùä\¸pï½÷€÷ßðꫯJ¯‰…»»;,XµZ+V`íÚµX½zuƒ‡™„¸yó&Ôjuãøؾ};V¯^iÓ¦! BdddH-9¥R‰gŸ}-Z´€R©Ä;w°zõjXXX`êÔ© Áë¯¿Ž 6Hã,--Q\\ŒeË–ÁÖÖŸ}öŒ‘ŸŸ/µ4ÿÈÖÖ]ºtÁêÕ«qïÞ=¸ººJ‡F.^¼ˆéÓ§C«ÕbݺuHJJÂG};;;£´´ô±[žZ­;wîÄÑ£Gñá‡ÂÁÁååå(((€J¥‚111˜:u*úôéƒÉ“'ÃÄÄiii ŽA©ªªÂ®]»#½§²²2ÀÐÐjµZz~Ù²e077G^^žT!–-[†¨¨(¼ùæ›ðõõÅ… °nÝ:(•JÌœ9Sú[§OŸF“&M°`Á(•J899aúôé077ÇÒ¥Kaaaüü|¨Õê:¿Í›7Gff&îß¿ÿÈï/»ÜI/(•J :LJB¡€‡‡Nœ8ØØXtëÖ éé騻w/Þxã Œ5 BÀÈÈsçÎÅ+¯¼‚Ö­[#$$¨®®†F£A«V­˜˜ˆ_~ù#FŒŽ¿VUUaÖ¬YÒÎBcnݺ…–-[6vv¹=ØÕ­T*aoowß}3gÎÄ´iÓ`nn;;;ôìÙáááhÑ¢d2,,,0hÐ DEE!%%~~~ÈÈÈÀ¡C‡Ð©S'øùùÕù[†††èÚµ+¦OŸŽŒŒ áÊ•+ظq#bccú>óóó±gÏ`îܹR·¤1uqqÁÈ‘#QUU%u_WUUaþüù(**‚……ÒÒÒ`aaçž{uºe³²² ???„……Õ;¼ñ`ˆÈd2¸¹¹Á××ÆÆÆÒᆆ|ÿý÷ÈÉÉÁÊ•+"…oízP*•Òû®í.µ°°@\\.^¼ˆ-ZÀ××hÒ¤ :uêÔhÝRRRðÓO?aùòå6ld2ºvíŠsçÎáßÿþ7ž{î9iP“³³3æÌ™SSShµZäååaéÒ¥(..n0Ы««‘––{{û:uKOOÇîÝ»7ß|Sꦭ]W2™ ðññ‘º¹póæM;v £F‚¼¼¼ R©"C¿sç233ѯ_?tíÚJ¥ÒᮆvÀ{õê…M›6aÿþýxýõסÑhpþüy¨Õj<óÌ3¨©©Aff&\\\лwoi™†F£Avv6¬­­Ñ·o_Ö©Iii)¾ù渻»cîܹprr’jÒÐ{¯®®Æýû÷aooßà{*))AZZž}öY„††ÂÈÈ …Bú.¤¤¤àÀ3f ÆCCCtîÜøî»ï0|øpiçÆÝÝ“'OFË–-¥²»wïbøðáÒŽóƒË~pÇßÌÌ 7oÞ¬÷]g “^222BÛ¶m¥úÚ–Dnn.àòåËÈËËCdd$N:%½N­V£°°iiihݺ5°nÝ:\¼xQj©åççÃÏÏÅÅÅR »¸¸<Ö{…B!ÿjLUU¶oߎ_ýUzîý÷߇¿¿?ºvíŠèèhœ?—.]B||<¾üòK|ñÅøá‡Ç®]» DEEáæÍ›øì³ÏüQ „··7¾úê+ÁÃà ôÂÂB$%%aÒ¤IuŽEËd²FqæççcóæÍøñÇQ^^!ÊËË‘™™‰üü|¸¹¹aРA8~ü8žþy´k×:uBÛ¶máéé ;;; 8Ÿ~ú)†Šàà`¡cÇŽÒòãܹsptt¬æöšTTTàÇĆ PPP ÕÈÌÌDzzúŸú[7nÜ€……üýý¥¿ehhˆ^½zaùòå(,,”>KPPT[¹\{{{TVVJÇVê)))……EÏQPP€[·náÙgŸ­³ Ô®+!±nÝ:ÄÇÇKc áááââbØÙÙ5ø7íííŽ 6 &&FÚîÔ©Sƒ-]ðóóC‡ðÓO?!<< …{÷îEÿþýáàà•J…!C†`ñâÅÒvбcGÃÍÍí±Ž¡¢ÿþˆGß¾}Ѿ}{´k×íÚµC³fͤ±+ƒ®Óš­=6ýG¦¦¦xî¹çpîÜ9ôïßíÚµCpp0:tèwwwaôèÑØ¹s'Nž<‰N:!00íÛ·‡®]»hß¾½´c¡R©Šýû÷ãÎ;R ûøøÀÙÙ¹Îg;v,vìØ³gÏ¢K—. D»víꜥadd•J…¼¼¼§:èÿ0~!k¿üµ{Ý*• õ‚xàÀð÷÷‡V«Å‚ “É0þ|4iÒ …;vì@RRR=x¥RùX?0ÞÞÞ¸wï annÞà|8üüü‡+W®à»ï¾C×®]ñþûïÿ×§ iµZÈåòF?Ë™3g°`ÁŒ7!!!033CVV-ZÔh¸þÙš5ô\cƒÊS;H­²²²Á×4öùª««ñ¯ý ¹¹¹˜5k\]]ahhˆï¿ÿ'Ožl´µ fffxóÍ7Ѿ}{$$$ !!Û·oÇÀ1þüF·õððpLš4 —.]‚­­-®]»†×^{M:L4pà@4iÒ ¸zõ*.\ˆæÍ›céÒ¥} dïÞ½áè舳gÏâÚµkX±bìììðÉ'ŸÀÙÙùOm¿Ð·o_¸¸¸àÌ™3HJJ²eËàææ†… ¢uëÖ˜>»víÂ3Ï<ƒ•+W6ºù`€?¸î Þxã ã·ß~C||ñãÇK£¸û᪪ªÂåË—áçç‡W^yEªsRRJJJê´2€ŠŠ üöÛo˜0a>Œ¨T*téÒ:uBii)¢££1iÒ$¼ð èӧϵnpùòe\¿~ÞÞÞuvår9’’’P]])S¦H?–'OžDQQQƒ½0Ó¼ysàîÝ»hÛ¶-d2´Z-Î;77·Fðq7999áþýûuÛXZZÂÅÅçÎChhh½©©©A||<&OžŒ!C†@.—£ºº›6mzdø!`ff†^½z¡{÷î(..ÆöíÛ±iÓ& :´Ñó·CBB`nnŽØØX”——£Y³f ’z  S§NèСÔj5Μ9ƒˆˆ$$$Hã4M££Þk—ѦMB­V#99Ï=÷N:…ˆˆøøøàüùóÒwïa;]µÏ=¸¼;wî K—.8uêZ·n “:uغu+6mÚ„äädxxx@«ÕâÊ•+ ƒB¡€F£Á… `bb77·Gö<öìÙSZöŽ;°jÕ*\»vM:%²¸¸%%%Žãa Óÿ9!Μ9S/d\ö(^^^èß¿?6oÞ …BV­ZIÝ’xá…`aa¦M›"&&þþþP*•8zô(ê]„åq <ñññ˜3g !..IIIضm[ƒ¯MOO—¶µhÑ&&&())Add$ÒÓÓ1þü:?ºÝ»wGóæÍ¥cÛ={ö|dÈìÙ³GXó8×Y²³³Cxx8fÏžuëÖ¡K—.P*•ÈÌÌ„›››Ôcð`«ÃÍÍ ÇÇ‘#Gààà€Û·ocóæÍuÂ'22 …BºÐÎÕ«WQQQ'''àÈ‘#°¶¶†££#4 ®\¹ ØØØü×ÛØðáñwï^¼÷Þ{˜0aìííQTTµZ¾}ûÂÕÕßÿ=Z¶l‰ÂÂBlÚ´ ÙÙÙu–ãêêŠëׯ#..fffpvv†••UyZ´hÞ½{céÒ¥033ƒ ±ÿ~Ì›7NNNuvpþŒÚžššdddH=-nnnˆˆˆÀ† àêê*%¸ÿ>|}}áììŒæÍ›#&&F ¦“'O"66¶NW{íg9yò$¼¼¼`ffcccì߿͛7‡­­-***póæMXYYÕûìÜ!2d~øáäææb̘1R•••á矆™™œœœ —Ë‘˜˜###X[[C&“áêÕ«8zô(† Ö`ÏLEE> !ÜÜÜ —ËñÛo¿ÁÀÀ¶¶¶°°°Àˆ#0uêT¬Zµ }ûö…J¥’”ýqG¤¬¬ QQQR=e2’’’`bb[[[¨ÕjlÞ¼­Zµ’NÞ¾}¦¦¦°²²BÓ¦MñÌ3Ï`ÇŽptt„§§'~ûí7|ýõ×hWWWcíÚµhݺ5lllPUU…[·nÁØØXÚîµZ-îÞ½ ###4kÖŒNºk̘1õö˜wîÜÙh‹óQfÏžM›6aË–-(//‡\.‡‘‘BCCñâ‹/B&“á½÷ÞòeËðÆoÀÆÆþþþèÙ³§t,ìϲ··Ç‚ вeK|ùå—P«ÕÒ¹¸...ˆˆˆhôµ&&&B`óæÍÒ±çÚØÙ³g× lwww„……aåÊ•˜0aÜÝÝùþ0ö8ÝÈ … @uu56oÞŒ]»vÁÐÐvvv˜2eJ½@—Ëå>|8nÞ¼‰©S§ÂÚÚÎÎÎxæ™g™™)Í—““ƒÝ»w£¢¢Bi´zÿþý!„À… pòäIi\ƒJ¥Âœ9s¤VÊ×ÿãto»»»céÒ¥X¿~=fΜ ¡wïÞèÛ·/BCC1~üx,^¼æææ°µµEÛ¶m¥ÁZ¯¾ú*æÍ›‡‰'ÂÂÂ3fÌÀóÏ?_oGhöìÙX½z5Þ}÷]©U?}út„‡‡?ô l³m·jÕ Íš5ÃÑ£Gáëë+m?µ±j/z£T*ѼysÌš5 îîî˜>}:–,Y‚É“'ÃÆÆžžžèß¿?Ξ=+-;00/¾ø">üðC"$$ï¾û.Ž?Ž­[·J‡ŠÌÍÍ1wî܇†”¡¡!ºté‚Í›7C­V£ÿþÒç“ÉdHNNÆÁƒQUU% Z6mš´ X°`:wîÜ` Ëd2¤¤¤àû￯³-½ñÆèÞ½; zôè?þ›6mBdd$ aee…×^{­^ Ëd2ܺu ?þø£4º\.—ãwÞA÷îÝ¡Õj‹¯¿þZúþXZZböìÙRë{îܹX¾|9–-[&‡Þ¿Lž<ù‘šÓ§OãÛo¿•j\»ìÚk ¨ÕjÄÅÅ¡[·nõ®¯ð´‘ñÒ¯º©°°ùùù N«=–——'''¢¼¼ùùùptt”~µZ-rrr¤=ó÷à ¥@J¥–––011‘.⟟òòr( XZZB«ÕB­VÃÁÁ …¥¥¥(,,„³³ócuS×îm ¢¢†††055•®þÖØZ­V£´´TzB¡€‰‰ ,-- ¢¢"äççÃÊʪÞà¤êêjäääÀÄĤÁV”ÅÅÅ(..®wxàjjj——'ýÈÃÊÊ *• åååuÖOíû*,,„¦¦¦011A~~¾4J­V£¨¨•••ÐjµP©T°²²‚‰‰ ´Z-JKKQZZŠÊÊJÈd2ÁÎÎN:[!??Z­¶¶¶Ëå nåååÈÉÉ«««ôÙ´Z­ÔeYSS¥R © \­V#77Wƒaii‰¢¢"iÔvçääHÛ”­­-ÌÍÍ‘––KKK©Å,„¶F¥R [[[é°…V«Enn. Em¶¶žÎÎÎŽúÖjµX¾|9¢¢¢ðÃ?Ô¹(Jee%òòòPUU%]:ØÊÊ Ðh4(((@ii) …4°®´´T5_û¾  Ñh`dd{{{””” ¼¼UUUËå066†Ý#¯RWYY‰œœh4¸¸¸Ô}_VV†ââbiÇ­¶u^[£ÒÒRiÛúãE{üÎ×ùŽÛØØÔ¹4jMM ¤e###XYYÁÈÈ•••ÈÎΆ£££t¨’’’:Ë«]oBÖ©ƒ‰‰ lll¤m¬ösI‡Ðj·íZ¹¹¹BHÛoíëþ¸ìÚÖymÍîܹƒ!C†`Á‚xá…þÔØ:‘ŽÊÉÉÁàÁƒ1yòdéÔ8úgûä“O””„Ï>ûì©>NDÿ8'Ož„™™Z·nÍ@ ÄÄÄÀÎÎN:wþ„âââ°fͤ¥¥ÁÅÅ&L@—.]ì+,,Ä矎ãÇ£¤¤þþþ˜2eŠtÌ‹ˆˆˆþ=77C† A=0xð`>|?ýôÖ¬YSo©¬¬ ,@ff&&Nœ(fÒ¢E é¦DDDôç=ñ(÷èèhTVVâ­·Þ‚µµ5ìì샳gÏÖ¹"ÄÇÇã—_~Á¤ÑÇÞÞÞ\ DDDÿ×~éÒ%4oÞ\Mleeooo\ºt Z­¶Î(á .@&“áóÏ?ÇéÓ§!„À€ôæ¾ÞDDDÿØ@/--­szHí)Eyyyõ.ÒQ\\Œ;wî@«ÕbÍš5ÈÈÈÀüùóaiiYïÊeIII8xð ×Ñÿ"Ð¥›¿Ÿ ZYY)Óü ÚËwN›6 öööðòòBXXâãã1tèÐ:;ñññHKK{䕾ôÍ®]»0jÔ(ny“S§NÁÉÉ -Z´`1þUUUøñÇ1lØ0ãoòÎ~¡t IDATã?¢W¯^u~鯓––†Û·o#,,ìõ¹æÍ›÷äÞªU+?~\j©ãÖ­[èÙ³g½‹+xxxÀÊÊJj‰×Þݧ±qyõ®6¥ïΜ9óûLº¤²²-Z´®žF­òòr\»vÛðßèúõëèÓ§O£wl£'“””KKËÜ6üé§ŸBþ¤ éÞ½;är9¶nÝŠ›7obß¾}ÈÉÉA§NPXXˆ/¾øW¯^tîÜ~~~X·n’““qêÔ)œ8qíÛ·êï’CDDô$ž¸…îììŒyóæaÍš5øæ›o`mm-Wž––†uëÖÁØØ~~~pqqÁâÅ‹±páBüòË/P©TxñÅñâ‹/>öåC‰ˆˆ¨¾¿ìJqBé6{;×jµõž«@½iµvîÜ ­V‹Ñ£Gÿ£ ~áÂ…FïÏMO.55fffOý% ÿ.555HJJBëÖ­YŒ¿Ibb"<==¼N;=¹ÚûdüÓÆÙôìÙó¯»ÛZcÁÜÐM ›÷iÀ0ÿ{=ÎÝÕè¿g``À0ÿ›ñ¦¯GÝÞVŸÉ¹z‰ˆˆèDDD¤êt¹«Õjdff¢ªª ööö°±±áÝŠˆˆˆô!Ы««qëÖ-|÷Ýw8räJKK¥›Ý{zzbذaèÝ»7T*ȈHWýƒ>@||<¼¼¼0eÊ4mÚJ¥YYY¸té¶lÙ‚ï¾û3fÌà`"""] t'''¬^½õî_Þ·o_àèÑ£¨©©aµˆˆˆt5Ð_ýõzAþ kkk <˜•"""Òå@?~üx£ÇÆ…P*•èÚµ++EDD¤Ë¾hÑ")¼322 —Ëakk‹‚‚TVVÂßߟNDD¤ëþå—_bbb°oß>Ìš5 ööö(,,Ć àááÁ*é8¹‹‹ \\\ðÓO?aÊ”) ‚««+Zµj…‰'âØ±c¬‘®zíÊËË‘••Ugbnn.Š‹‹Y%"""' o6l/^Œ«W¯ÂßßwîÜÁ?ü€~ýú±JDDDúè/¿ü2***pøðaÄÄÄÀÂÂÆ Ø1cX%"""} t¹\ŽÑ£GcðàÁ())‰‰ ¬­­¼ý)éX GEE=t¥R‰ÐÐPVŠˆˆH—}Ù²eÁÊÊŠNDD¤ë¾eË–‡ÎÀ.w"""=t777éANNîÞ½‹üü|XZZÂÍÍ ŽŽŽ¬‘®zí²²²ðÎ;ïàúõë055…Z­FÓ¦MñÁ €•"""ÒaRúÎ;¡Ñh°iÓ&lß¾Ÿþ9œ±iÓ&V‰ˆˆH_ZèÑÑÑøàƒ"Mœ4iÞxã V‰ˆˆH_Zè¸sçN‰™™™022b•ˆˆˆô¥…þÒK/aÑ¢EHKKC«V­pûömìÞ½ `•ˆˆˆt=ÐËËËallŒ—^z jµ{öìÁÞ½{annŽˆˆ^ú•è)'„Î~B ¤¤Ëåpww‡••‹D¤ ¾bÅ ¼õÖ[ˆÅ‹/¾ˆ—^z EEE077‡¹¹9+DD¸ÿ>îÞ½‹òòr¬]»3g΄B¡€HW}ÿþý9r$6lØOOOxzzÂÁÁPSSóûL¬ÑSJ&“¡]»vh׮Ћ‹ñÃ?ॗ^baˆt-Э­­1oÞ<\¹rŸ~ú)lllêÌ`ff†yóæ±RDDD:L>wî\4mÚZ­ååå(--­ó¯¬¬ŒU"""Òõzhh(:tèŒ1NNNÐjµÉdÒ?"""ÒñºL&ƒ‘‘Þÿ}xxxÀÄÄG…V«…©©)LLLX%"""]ô?>!„ÀgŸ}†ÜÜ\V‡ˆˆH_ˆˆˆþ^{ŠŠ±±1«CDD¤'  ô9sæÀÒÒ’Õ!""Ò—zuu5ÒÓÓ‘€ôôtTVVÂÆÆ …åå刎Žf•ˆˆˆt=Ð9‚—_~ãÇÇàÁƒ±~ýzøýrsçÎe•ˆˆˆtœÁ¶mÛЯ_?ôï߉‰‰Ø²e rss±hÑ"V‡ˆˆH_Zè÷îÝCxx8ñòË/cÕªUHHHÀüùóQXX!«DDD¤ë-ôÚcå —Ë€•+Wâí·ßFJJ JKKY%"""]o¡;88àòåËužôññÁÂ… ‘••…¼¼|øá¾}ûv\¼xãLJ——Wƒ§·…††b÷îÝ8wîqçÎ$%%aÈ!ÐjµÈË˃™™Œ¡V«QSS¥R ­V‹7n 77...\CD³ììlh4š'ZFII Ôj5222þ’% ®¢¿ÈC]¡P ++ óæÍÃôéÓZožàà`¼øâ‹øè£Ð²eK\¿~Ï<ó Úµk‡””DDD`ÆŒÇO?ý„ÇÃÑÑHHH@DDºuëÆ5Aô7ëÖ­lllžh·nÝÂàÁƒŸh9¥¥¥8p >úè#®¢ÿE 5 áááHMM}èHôiÓ¦áôéÓÈÎÎF÷îÝÑ®];XYYA.—ã½÷ÞC«V­:u‚±±1òóó¡P(ðüóÏ£C‡066æš ú›YXX`ìØ±O´ŒŠŠ |ñÅO¼œÛ·os…ý®V«Q^^­V+='—ËáååõÐ…˜™™¡wïÞ þ€ 0@zìêê WWWVˆˆèï ô´´4¬^½×®]“†Â !`ee…={ö°RDDDúè7nDrr2FŒi†Æ®óNDDD:è—.]¼yóбcÇz—k%"""Ý&(Þ¡Cܹs‡÷?'""Ò纣£#Ö¯_k×®ÁÍÍMº(Œ‘‘Qƒ÷J'""" ô . ªª ‡†\.—ºÝ­¬¬èDDDúè7nd5ˆˆˆô=Р¸¸±±±HIIA“&Mеk×ï‚FDDD:è©©©>|8***`ii‰ÒÒRÈår¬\¹;wf¥ˆˆˆt˜4Ê}ãÆ ¿ÿýoDEEaÿþýèÓ§»â‰ˆˆô)Ð/]º„W^yM›6…\.‡££#† †ÔÔTV‰ˆˆH_ÝÉÉ çÏŸ‡Z­TUU!11‘·7$""ÒÒ1ô#F`ÆŒHNNFÓ¦M‘'N`ܸq¬‘¾´ÐðhÑ"áàÁƒHOOÇÔ©S1lØ0V‰ˆˆH_Zèxþùçñüóϳ*DDDúèßÿ=ž{î9>|ÙÙÙu& !`llŒÑ£G³RDDDºè'OžD=púôi\½zµÞ ––– t"""]ôO?ý0oÞ<˜™™A¡PHµZ-Š‹‹Y%"""' Š[±bE½.÷üü|,]º”U"""Òõ@×jµÐh48qâŠŠŠ Ñh¤ùùùˆ‰‰a•ˆˆˆtœÁÑ£GqõêUÜ»w»w£#€ß»ÛaooÏ*éz '''#66EEE¸páÌÌÌ~oºËå°µµÅ;ï¼Ã*éz 3#GŽÄwß}‡^½zÁÚÚú? `bbÂ*éz ×öøñãQ^^Žôôt”——× õV­Z±RDDDºèµÿ),,ÄÌ™3ñÛo¿I7hkkk;vŒ•"""Ò‡@_»v-Œáç燶mÛÂÛÛ[¶lÁÀY%"""'‡~æÌŒ1¶¶¶°²²Â³Ï>‹·Þz ?ÿü3«DDD¤/-t™L•JSSSdeeøý²¯wïÞe•ˆžbB\¾|™™™¨®®Fvv6<…B€€899±HDºèíÚµCJJ :vìˆO>ù8sæ Z´hÁ*=Åd2üýýáëë èÕ«äòß;÷ Y "] ôW_}jµÍ›7GFF¢££áì쌉'²JDO97‘º»»»ôä˜1c0dÈ(•J±JDDDºè›7o~è ÆÆÆ5j+EDD¤Ë~âÄ @ee%¢££áããäääàêÕ« c éz ¯^½ðõ×_£yóæ˜8q",--QZZŠ={öÔ¹jé&¹µµ5¬­­qðàA„‡‡£E‹°µµ…»»; €ØØXV‰ˆˆH×½ö?–––8vì˜tÙתª*œ9s …‚U"""ÒqÒ(÷‰'bܸq8qâš5k†ŒŒ \¹rsæÌa•ˆˆˆô¥…ÞµkWDFF¢]»v(//‡ŸŸvíÚ…ádzJDDDúÒB___Ì›7U!""Ò·@߸q#FŒ={ö --­Þ ¦¦¦˜5k+EDD¤ËžŸŸFƒ‚‚dgg×›ÁÜÜœU"""Òõ@Ÿ;w.`æÌ™¬‘¾znnîCgËå°±±a¥ˆˆˆt9Ðû÷ïÿÐlllðË/¿°RDDDºèK—.}è ¼m"‘zXX˜ô@FFÃÊéS ×þG£ÑàÈ‘#¸|ù2ŠŠŠ „ðûik<7ˆˆHOýèÑ£X±bòóóáêê ¥R‰¸¸8 <˜U"""Ò—@ßµk&NœˆØØX´mÛƒ ÂîÝ»‘ššúÈ…TWWãþýûP«Õ022‚½½=T*ÕC_SVV†ììl˜™™ÁÁÁk‚ˆˆè H×rÏÉɯ¯/LLLPQQsss„……!..î‘ Ù³g&NœˆY³fáõ×_ÇÎ;zõªª*ìØ±ݺuÃâÅ‹¹ˆˆˆþª@wrrBnn.\\\pòäI#!!UUU]@JJ Ö¯_ððp¬]»ãÆÃŽ;˜˜Øèk®_¿Ž'N iÓ¦\DDDe :ÅÅÅ8p ÊËËÑ¥K,Y²ãÇè:¼üòËpvvFXXZ´h˜˜hµÚzó«Õj¬]»={ö„ŸŸ×Ñ_@:†þàf>ÿüs\ºt öööðöö~èîܹWWWé|u¸¸¸àöíÛÒHùZBDFFB­VcРA8wî×Ñ_èkÖ¬AHHBBB`ee…ÏO˜ÊÊÊ:àär9”J%***êúÕ«W±uëV¬X±¶¶¶\öþýû‘žž.=îÙ³':uêĵFDDO­ÒÒRDFFâÎ;Òs)))ÿ ôââbLž<æææèß¿?úõë‡&MšÀÊÊ 2™¬ÑÛØØÔ¹íjuu5ŠŠŠ`ggWçujµ[·n…ƒƒrrrð믿"##*• hÙ²%”Jee÷íÛ£FúÏÞ‡×$=ÕLMM1tèÐ:‡µ=úŸ@Ÿ;w.ÂÃÃãÇ#22žžžèÕ«FŽÙè‚Û¶m‹Ÿ~ú YYYprrBaa!’““1bÄÈåÒ!z!àåå…û÷ïcûöíB 99 …@óæÍ뺡¡!ŒŒŒ¸öˆˆˆþ?™LV//årù]&“ÁÓÓžžžnß¾C‡áÀP(1bÄC`nnŽíÛ·cõêÕX¸p!üüü°nÝ:xyyáÞ½{¨ªª‚F£L&ƒ©©ià€J¥‚¹¹9×Ñ_è{öìÁ?ü€ììløùùaæÌ™èܹ3œ¹&Mš`É’%õžwqqÁæÍ›}ÝŒ3¸ˆˆˆþÊ@?þ<ž}öYtêÔ nnn°´´duˆˆˆô-З/_à÷®÷o¿ý}ûöe¨é ùŸB`Æ ÈËËcuˆˆˆô5ЉˆˆèèÁÁÁ066fuˆˆˆô5Ðår9.\SSS”••±BDDDúèûöíÃálj‰‰èÝ»7ú÷ïS§N±JDDDúè»w¡!4 V¬XÐÐPtëÖ «V­b•ˆˆˆô%Ð `ooììlܽ{o¿ý6FŒ¬¬,V‰ˆˆHÇIç¡;88 ..*• VVVhÒ¤ ®\¹Â;œéS ¿ú꫘;w.d2&Mš™L†äädøøø°JDDDúè=zôÀºuëPSSƒÀÀ@@ëÖ­áëëË*éK ÁÛÛVVV(**®]» T*Ñ»woV‰ˆˆH_}Ñ¢EÆÈ‘#±qãFìÙ³*• ·o߯œ9sX)"""&rONNFË–-Q^^Ž#GŽ`ñâÅøðÃÃ*éK ]&“¡¬¬ ‰‰‰¨¨¨@ïÞ½‘’’«ÅéS wêÔ Ë—/‡J¥BëÖ­ahhˆ{÷îÁÖÖ–U"""Ò—@;v,JKKQQQqãÆJJJзo_V‰ˆˆH_ÝÙÙ ,@~~>ª««‘ž={B©T²JDDDúè555ؾ};>ŒœœX[[£{÷î3f ¬¬¬X)"""}ô`óæÍ5jüüüššŠÝ»wC.—cêÔ©¬‘>ú®]»ðÁà…^€L&ƒ~~~X´hˆˆHÇIç¡«ÕjØÚÚB&“øý46KKKTWW³JDDDúèmÛ¶ÅÆ‘žž­V‹¼¼<|ùå—hÖ¬«DDD¤ã¤.÷3f`ìØ±èÕ«T**++áåå…O?ý”U"""Ò‡@×h4øõ×_±hÑ"dffJ£ÜÛ´i{{{V‰ˆˆH].—c×®]øðÃÑ£GV…ˆˆHÏÈßÀ…††âرc())aUˆˆˆô±…eeeضmâããáää¹ü÷ñr¦¦¦˜?>+EDD¤^SSƒ: ¦¦÷îÝ“N_³°°`•ˆˆˆô%Ðßÿ}VƒˆˆHOI硟>}±±±u&^¼xGe•ˆˆˆô%зnÝŠÒÒÒ:Õj56oÞÌ*éK §¥¥ÁÙÙ¹ÎD[[[ddd°JDDDúèMš4Á¹sçêLLJJâ 8"""= Š=z4¦NŠ{÷î¡M›6¸qãöîÝ‹×_U"""Ò—@ïÖ­æÎ‹ÿû߈…µµ5^{í5 :”U"""Ò—@—Ëå:t(úô郢¢"˜™™ÁÊÊJºÀ éA ÿ¹º¥¥%+CDD¤GØü&""b ˆˆˆþþ@¿ÿ>¾üòKV‰ˆˆHŸ=##«V­b•ˆˆˆtœÁ‚ ¤[¥þQVVŠŠŠX%"""]ô5kÖ cÇŽpqq©71//†U"""Òõ@÷õõÅË/¿ŒAƒÕ›xùòeL™2…U"""Òõ@ïÞ½;är9ÌÍÍëMtrrB‡X%"""]ôéÓ§C¡P48ÑÃÃëׯg•ˆˆˆt=Ðmllê=YYY ¥RÙè`¹?JMMÅš5k””oooLœ8¾¾¾õ^ŸžžŽmÛ¶!..UUUhÖ¬&Mš„6mÚ<öß"""¢ú궦ÕjѧOܹsç±P\\ŒqãÆA«ÕâÃ?„……¦NŠ7nÔ›W£ÑÀ×× ,À¿þõ/xxx`ܸq8þ<×Ñ“´ÐŸtÑÑÑ())Á¬Y³àèèÄÇÇãìÙ³ðòòªÓòvww‡»»»ôØÓÓ_}õRSSµADDôWº‘‘Ñcw_¼xîîîpttXYYÁÇÇ—/_†V«mðø|QQJKKqèÐ!ØÚÚÂÏÏk‚ˆˆè¯ t¹\ŽO>ùÎÎ倂‚XYYI aaa´´4!êͯÑh0{öl\»v ùùù˜0a\]]\öÍ›7qêÔ©:-ü†Î—'""zZTUUáæÍ›(,,¬ÓP6(//¯7³´Z-j§™˜˜4º`•J…¼¼<é±V«EUUU£­|…B?þHJJÂ{ï½WWW 8°Þ¼åååuÞ°““×$=Õ„(--­“ÕÕÕ0 mô°²²ÂÉ“']°§§'Ξ=‹ªª*(•J”••!==AAAvÛ[[[lllФI$''C£ÑÔëžoݺ5úõëǵGDDô@Cº}ûöuž[±b æÌ™SoæÒÒRDEEá×_•Ž7æÙgŸÅ¶mÛðõ×_£W¯^8sæ RRR0uêT”••áäÉ“ðó󃻻;RSSQXX!œœŒÔÔTDDD4z.<=šÁK/½$=¨©©A||<¶nÝŠ7n`„ xpzCš6mŠ·Þz »wïÆÞ½{!„À˜1càï ÌŸ?ï¾û.ÜÝÝqíÚ5ìܹeeeR/ÀÈ‘#Ñ£G® ""¢' tà÷ ɤ¥¥aåÊ•8sæ ºvíŠÝ»wÃÕÕ*•ê‘ :t(zô芊 ¨T*ØØØ@©TÂÝÝûö탥¥% ,, ¨¬¬”º jç%""¢'ô‹/"22@PPÖ¯_<þ)ê vÍ¢I“&Òc###l#""ú;}̘1(((@Ÿ>}гgOàÈ‘#Ò J¥={öd¥ˆˆˆt9ÐËÊÊ`llŒ¸¸8ÄÇÇ×›ÁÆÆ†NDD¤ë~úôé‡Î —ËY%"""]t[[[VˆˆHÏɧOŸŽ3gÎ ''FšP{%š[·naݺuˆŽŽfµˆˆˆtµ…îîK—B©T"00vvv000@aa!nݺ…ÔÔTøøø OŸ>¬‘®úo¼~ýú!..‡BTTª««agg‡víÚ!""mÚ´©©)«EDD¤«n``OOOxxx`èСÐjµ™L…BÁAqDDDúèµÿ‘Édêb2DDD¤;Øü&""ú'µÐ‰ôUyy9ÒÓÓQYY µZ …B¥R SSS¸ººò^DôôºV«ELL Zµj{{{V…ôŠZ­ÆÍ›7QRR‚}ûöÁÝÝppp€££#ˆžž@—Édذa>øàúß@«ÕJçø ! “É€ƒÿ"¶¶¶èׯ %%mÚ´ái–Dôôz›6mpúôixxx<Ö-Séñ:u GìØ±¯¾ú* gÏžèÚµ+ DDDM €±±1V­Z…ÄÄD4iÒDj9ãõ×_g¥ž@×®]¥à>~ü8,XÀ¢Ñßèiii°³³ÃÅ‹‘˜˜(u [YY1Љˆˆô%ÐW®\Éjé{ ×¶Ò£¢¢™™ {{{„……ÁÓÓ“·ˆˆˆô%ÐSSS1|øphµZ888 ??[·nÅÊ•+ѹsgVŠˆˆH‡IMïÏ>û ]»vÅ¡C‡‰Ã‡cèСXµj«DDD¤/~ýúu 2~ÝÞ·o_dee±JDDDúèŽŽŽˆGYY4 Ôj5¥€'"""Ý%C;v,¦NŠË—/ÃÛÛiii8uêÞzë-V‰ˆˆH_Zè;vÄG}SSSœ={555˜5k Ä*éC ]£Ñ`øðá˜;w.>úè#TWWÃÀÀ*•Ч¬éK + X[[#//FFF022beˆˆˆô-Рÿþؼy34 <<< P(r¹îî>ú÷ßóçÏãÊ•+00øÏälllÍJéz kµZ„‡‡c̘1033«3ƒ¡¡!«DDD¤¤šèÒ IDAT/-ôÈÈH̘1>>>¬ ÑÿPrr2"##QQQÛ·oÃÍÍ †††ð÷÷Ç‹/¾X§×”è¡.—ËallŒ›7oÂÛÛ[ºu*ýý<==1eÊ!0fÌŒ;NNNP( súó-ô6mÚ`õêÕÈÉɳ³³tºšR©DXX+EDôÿØ»ïð¨êtãß)ɤOz/$!”¡×ËEš QÀEl ,* zEQ@вˆ ê‚……E”² ¡,Ih&’ÞHBBêd23÷oήˆîfðý<Ïcf¿À;gÎûë¿ßˆZ­F§Ó߯:Òét²ÚHüò„þÅ_ðÍ7ßðÏþ'''¥•îááABB‚DJ!„°†„þ·¿ý ‹Å"B!¬9¡«Õjª««¹xñ"%%%ÄÆÆRWW‡F£ÁÙÙùw¨mÛ¶qùòå;.'==¥K—ÞQ¶¶¶,Z´è®ŠïåË—Ù¶mÛ—Ç… ˆ‹‹»ã²æÍ›'‡ !¬/¡WVVòøãO}}=àüù󤧧3gΜß} >úè#"""îxŸÙl¦¦¦æŽÊؾ}û]—Я\¹Â7ß|C÷îÝ靖ºº: ÃÇxß¾}Ìœ9SºÂúúÊ•+±±±á«¯¾âÀd2À¦M›$¡ÿ¿ððplmmï¨ {{{Z¶lyGeÜ­“e¼¼¼î86iiiøûûßq9Ò+%„°6ÊÉ+ñññÌœ9“€€eBœ‹‹ ååå%!„ÂZº££#ׯ_W&ÆY, Ðëõ%!„¢™SºÜ'MšÄÊ•+©ªª¢¼¼œcÇŽqèÐ!†*QB!¬%¡6ŒË—/³qãFJKKÙºu+ýúõcâĉ%!„ÂZºN§cîܹL™2…ššt:žžž888H”„BkIè I=00P¢"„BXµ„@!„„.„BIèB!„ø5(cè‹…äädÎ;Guuµ²ÝÞÞž)S¦H¤„BkHè_|ñ .ÄËË {{{T*‹WWWIèB!„µ$ô-[¶ðôÓO3mÚ´Û>€¤¢¢‚cÇŽQPP€··7½zõÂÃãÉu¥¥¥\¸pÌÌLêëëñ÷÷§oß¾899É'!„Bü ]«ÕÒ¹sç_tšØo¼A||<;wfÏž=?~œ àææÖ躯¿þšm۶ѲeKlmmÙ±c'Nœ`Á‚’Ô…Bˆ_#¡=š÷ßWW×F›É¨Õj|}}oYÀéÓ§Ù»w/7n$**ŠË—/óØcѯ_?† ÒèÚ?üáôïßGGGT*Œ=šþýû3`Àù4„VëÚµkÜq9eee$''S\\|Gåh4"##åƒL&ÅÅÅÔÖÖR__ÉdB§Ó¡Õjñðð¸kN°Tú·ß~Ë'Ÿ|ÂðññQN\suuå³Ï>»eÇŽÃÇLJ®]»¢R©&22’S§NqÏ=÷ Vÿk"½««k£?«×ëQ©TÔÕÕÉ'„°j›7ofÇŽMz&oWRRK—.½ã£šÓÒÒÈÈÈ0 ÄÇÇ“››Kjj*IIIŒ9bcc²Ñj• }òäÉMZÔÀ¿½©òóóUìììðòò"77³ÙÜ(¡ÿÅbaË–-øùùѾ}{¹ã„V/66–¶mÛÞQï½÷#G޼ã“.ß~ûmù@þŸƒƒÆ S¡:Ž™3gÞuÿN%¡÷íÛ—úúzJKK©©©ÁÎÎ77·›Ð-‹’Ì4Ì¿•êêjÞ{ï=>ÿüs6lØ€¿¿ÿM¯Ûµk©©©Êσ&&&FîN!„¿[ìܹ³Q~LOOÿWB¯¯¯góæÍ8p€k×®áææFÿþý™1cF“®òòõõ%%%EI샒’üüünÚ:7›ÍlÞ¼™Ï>ûŒ%K–йsç[–=f̦M›&ŸžBñÿœ›äÆ'Nük§¸½{÷²iÓ&bbbX´hÇg÷îݼÿþû?Yp=ÈËË#-- ø~iZRR’2¦þcü1~ø!O=õÿó?ÿ#ŸŒBñ+PZèýë_yñÅ1b„ÒeÞ¶m[–/_Μ9snY@LL ýúõcÞ¼yÄÆÆròäIÚ·oOtt4ééé<ðÀ<óÌ3Œ?ž;w²`Áî¹ç زe Z­–èèhZ·n}×ùòåË$''ߟh×0É022’ˆˆ¹ …Büz ½¦¦¥U­R©ÐëõÆŸ,@¥R±téRöîÝKff&#FŒ`РAxzz¢V«™6mš2IÄßߟÇ{Œúúzòóó°±±¡¦¦æ®r«V­hÕª•Üm¿‘ÊÊJ®^½Jmm-ÙÙÙTWWS]]³³3¡¡¡èt: ’â÷“лtéÂÆ Æßߟëׯóá‡úo ¹Õö°îîîÌš5Kù¹wïÞôîÝ[¢.~U¶¶¶øøøP__··7jµFƒ­­-Z­V$„ø}%ôùóçóðÃ3hÐ t:ƒˆˆV¯^-QÍ>¡{{{K „’Ð\\\Ø´igÏžåÚµk¸ººÒ©S'¼¼¼$JB!DsOèƒ[[[êêê°··oÒ%n0îšmñ„Bˆ»6¡Ï™3‡W^y…_|‘ï¾û®É†0nnnìÚµK"%„B4ç„>~üx3f ±±±Mº´Î…B+H辟©Þ³gÏF'­ .^¼(QB!š9e§¸yóæ‘ÝèÍÂÂBžzê)‰’BÑÜ[èUUU ŒF#ååå”––ߺ’œœ|ËÓÒ„BÑŒú믿Ξ={HMMeúôéʘ¹Åb¡®®Ž{ï½W¢$„B4÷„>vìXzöìÉæÍ›5jžžž¨Õj<<<ˆŠŠ’( !„Í=¡GEEE«V­ ’}¯…BkLè ÿʹs爋‹£¤¤³Ù €££#úÓŸ$RB!„5$ôo¾ù†Å‹SVV†ÎÎΜ;wŽ˜˜‰’Ba- ýÃ?dÖ¬Y$&&Ò½{w ć~ˆÉd’( !Äo¨¨¨ˆ‹/*GK=z;;;|||èСƒ¬6·—Ðssséܹ3ÉÉÉTUUáååÅàÁƒyúé§Y°`DJ!~#Ê9}úôA­V£R©Ðh4’ÌÅí'tJJJ "..ŽþýûsúôiŒF£DI!~C{{{ „øuúˆ#¨¬¬dÈ!ìÙ³‡x€ŠŠ žxâ ‰’Bˆÿº“'OòÚk¯ÝQ%%%qáÂ…;þûÌŸ?Ÿèèèæ—Ðï»ï>, †O?ý”+W®àææF`` ÜEB!þëòòòÐjµôíÛ÷—‘žžNJJ ýû÷¿£¿K\\¹¹¹Í³…~õêUŒF#mÛ¶ÅÙÙ™.]ºpõêU._¾L»víäNBñ_gccsGÃ:­V{ÇC666Í.6Êl‹wß}—”””Fofee±aùƒ„BˆfNIègÏž%,,¬Ñ›þþþr|ªBaM ÝÍÍ+W®4z3;;[9¬E!„Í—2†>|øpV­Z…££#;wæòåˬZµŠ>}úH”„BkIè“'O&33“E‹QQQ££#÷ÜssçΕ( !„Ö’Ð5 .dòäÉáîîN‹-°µµ•( !„Í=¡ lmm©««Ãl6ãç營Ÿ&“‰ššÙÁH!„hî }òäɼóÎ;Ì™3‡ÄÄD,K£ <<<ˆ‹‹“H !„Í9¡?ñĸ¸¸(cç?ÖÏ !„âG ýwÞ¡}ûöìÝ»—‡z___‰ŠBam =##ƒ””>ÿüsúôéÓäüsF#I^!„hî =""‚ùóç“––ÆâÅ‹qttlt^¯ç£>’H !„Í9¡¯\¹’óçϳxñbFݤ5.;Å !„VР¾¾ž˜˜\]]%*B!„µ%ôóçÏÓ¦MZ´hARRR“ lllèÞ½»DJ!„hÎ }åÊ•¬ZµŠÕ«Wsîܹ&¸»»sðàA‰”BÑœúúõëqvvfõêÕÆ&¨Õj‰’BÑܺ^¯¾ŸÍÞÀl6sîÜ9´Z-mÚ´‘( !„ÍœÒü^±býë_øøã™8q"“&M’%kB!„5%ô“'OA]]ýë_yî¹çX´h;vì( !„Ö’ÐNUËÎΦ´´”1cÆÐ½{wÊÊÊ$JB!D3§œ‡Þ¶m[>üðChÑ¢z½ž””œ%JB!„µ$ô™3g²hÑ"ŒF#O?ý4yyyôîÝ[¢$„ÂjF²²²¨¨¨ ??ŸÂÂBΞ=‹­­-ÁÁÁ899Ý] =22’7b2™ðññ ::ZºB«¦V«qrrB«ÕâââBxx8:­V‹V«½ûZèçÎÃÆÆ†víÚ‘žžÎ²e˰··gîܹJ‚B!¬F£ù]ä1eRÜÚµkIMM`Íš5”——SVVƆ änB!¬¥…ž››KXXׯ_'11‘õë×c6›™7ožDI!„°–º³³3)))|óÍ7hµZ:v숽½=f³Y¢$„BXK }Ĉ¼úê«ØØØ0lØ0®\¹Òä|t!„B4ã„>nÜ8ÜÝÝ©««#&&yä‘[ˆÅb¡¾¾³ÙŒZ­F«Õ¢R©nz­ÉdÂd2a±XÐh4wÕ C!„â¿EérwttäÞ{ïeèÐ¡ØØØPZZJË–-éҥ˿-dß¾}Œ=šAƒ1jÔ(þö·¿a0š\W\\ÌÂ… ‰ÅÏÏ×_]>!„â×l¡F¶lÙ™3g¨¬¬Äb±ßŸÂ¶qãÆ[——Ç«¯¾Êĉ>|8GeýúõDDDЩS§F×ÚØØÐ­[7ºvíÊûï¿/ÑB!~íúŽ;ؽ{7©©©899áççGRR!!!?YÀ?þñT*3fÌ ,,Œ{ï½âââšL¨ÓëõLš4‰aÆÉÚv!„â·h¡ïܹ“yóæñÕW_ѹsg&OžÌ®]»8räÈOœœLhh(ŽŽŽ¸¸¸Æwß}§´ò…BñJèÕÕÕøøø`kk«œ°Ö¶m[Ö­[÷“ÔÔÔ`gg÷¯&¿ZN§£¨¨èŽú×_Ýh,¾W¯^tìØQ>5!„¿[ÕÕÕ9r„œœåµÜÜÜ%ô°°0rssiÕª»wïfàÀìÛ·N÷“;;;SPP ü\__OUU...·œéþsEEE1tèPågWWWù$…Bü®ét:ºwïN‡”×>øàƒ%ô©S§R[[ËÈ‘#9{ö,S¦LÁÅÅ…… þdÁ:uâàÁƒ”––âîîNyy9W®\aÔ¨Q¨Õê;úK»»»,ŸžBñÿ4 ÞÞÞ^³³³ûWBïÕ«—òÆË/¿ÌÕ«Wqqq! à' Žeýúõ¬]»–1cưÿ~*++éÙ³'×®]ãÝwßåž{î¡{÷¤PPP@ii)yyyÄÇÇÔä/'„BˆŸO››› Ðd¼»¡{»¨¨??¿[àááÁªU«X»v-sçÎ%88˜e˖Ѻukrrr8yò$QQQÊõ«V­âìÙ³TTT‘‘Á™3gxæ™g˜0a‚|B!Ä/MèãÆûÉ ÜÝÝÙ»wïO^Ó©S'þò—¿4y=$$„={ö4zíÏþ³D]!„øµú›o¾ù“ØØØH”„BˆæžÐûôé@ee%f³åͪª*êëë%JB!D3§LCß¼y3hôæÉ“'Y³fDI!„°–„~äÈ‚‚‚½éëë˱cÇ$JB!„µ$t€ÚÚÚFo ŒF£DI!„hæ”uèÑÑѼûî»xyyDaa!|ðíÛ·—( !„֒ЧNÊŒ3xàððð ¼¼'''þÝ,x!„B4£„îççÇ'Ÿ|Bbb"iiiÑ­[7Ù?]!„°¦„ß}Kll¬DF!„°"j B! ]!„’Ð…Bñkh4†^__ÅbitòšJ¥’ýÜ…BkIè—.]bþüù¤§§+‰ÀÓÓ“'NH¤„BkHèkÖ¬! €§žz GGGåi !„V”ÐsrrXºt)Ý»w—¨!„VF™7|øpΜ9CUU•DE!„°Özyy9[·nåôéÓxzz¢R©prrâ…^H !„ÖÐëëëéÑ£&“‰¢¢"傚š‰’Ba- }ñâÅ !„ÂÚ:|zFFåååʲ5­VK·nÝ$RB!„5$ôüü|{ì1’““Q«Õ¨Õjªªª áèÑ£)!„Âúš5kˆŒŒÄËË‹nݺѡC¶lÙBïÞ½%JB!D3§,[»xñ"cÆŒÁÍÍ úôéÃôéÓÙ¿¿DI!„°–„®Óépss#--ÚÚZ, yyy%!„¢™SºÜ£££ÉÎΦoß¾,Z´ƒÁÀÙ³géÔ©“DI!„°–„>eÊŒF#>>><÷Üs>|˜2nÜ8‰’Ba- Ý××—ºº:JJJhÛ¶-ýúõÃb±Èá,B!„5%ôššÖ­[Ç×_Mqq1;wî$==¢¢"Æ/‘B!š1eRÜÎ;9xð >ø õõõFT*»ví’( !„Ö’Ðÿö·¿ñüóÏ3~üx\\\ð÷÷'77W¢$„BXKBÐh4Ê)kðý lööö%!„ÂZztt4›7o¦°°€ªª*>ÿüs:vì(QB!¬%¡?ù䓨Õjî¹çRRR˜2e —.]bΜ9%!„¢™Sf¹ÛÛÛ³nÝ:Μ9C^^žžžtíÚOOO‰’BÑܺÉdR~ppp _¿~.0™Lh4‰”BÑœz·nÝÐéthµÚ›^àææÆž={$RB!DsN踸¸KŸ>}š$v™å.„BXABÿüóÏùꫯøöÛo©­­e̘1 4½^ËV»B!šYB‰‰!&&†êêjvíÚÅîݻٸq#111Ìœ9“àà`‰’BÑÌ)ËÖ?~<>ú(ÎÎÎlß¾´´4‰Ba -tƒÁÀ78vìÛ¶m£¨¨ˆ=zð /Ю];‰Ba ýÙgŸåøñã8991~üx „‡‡ƒ£Ñˆ^¯—H !„Í9¡¯]»:tèÀáÇ9|øp£ ôz=›7o–H !„Í9¡¯Y³æ'/ekB!„$ôÙ³gK„B+§–!„’Ð…B! ]!„¿†_eo×¢¢"¶nÝÊ¥K—hÙ²%S¦L!$$ä¦×VTTðöÛo“’’B@@Àïn7º¼¼<üýýåÎû”••akk‹ƒƒƒã7`6›)**Â××W‚ñ),,ÄÓÓSN¹üÔÖÖR]]»»»´Ðoœ'žx‚””FM~~>óæÍ#33³Éµ•••Ìž=›¤¤$F…ÑhäÑGý]íH— ߨßPFF¥¥¥ˆßH}}=çÏŸ—@ü†¾ûî; ƒâ7¬ô§§§K ýfŽ=JFF»ví"((ˆÎ;3}útNž¼½½)))!66–™3gRXXÈý÷ßÏüùó™8q"f³™mÛ¶±mÛ6üýý)..&::šÇggçfœÔÔTvïÞMtt4½{÷nôÞúõë1bÁÁÁœ|˜òòr"##8p Õ?Kàû!ݳgÏ’@YYÎÎÎDEEѳgÏ[ÞÒB¿M3fÌàÕW_eúôé,_¾œGygggظq# øþ—©ÕLš4‰•+W2cÆ ^|ñEž|òÉf™Ì>þøc–-[ÆÖ­[©¬¬lôÞš5k”IÇŽcÏž=¿ÚÚQ;;;\\\š YX£mÛ¶±lÙ2>øàªªª%è5kÖ••…ÅbáÛo¿eïÞ½ÔÕÕÝ´œ#GŽððÃóüNG]]Û·oçõ×_—Lý3:uŠ¿ÿýï8::âåå…——z½N‡^¯ÿEËF/\¸Àòå˹~ýú-¯IJJâÝwßÅÅÅEù½Íõ;;îY''§Fñ´³³ûÅñ>žºº:Þ|óM>øà«·Ñhdݺu<óÌ3¤¦¦âääĵk×xíµ×سg|Áù•vг³³£C‡M^···§k×®^³±±¹éµÍMFF_}õ ,`Ïž=$%%Ñ£G_TÖ7HII¡²²ggg"""Ðëõ˜L&eS“ÉDAAááḸ¸`±X” …\¹r…ŠŠ e‡.³ÙLÛ¶m›u ÓÓÓÙ¿? .dÏž=¤¤¤ü¢y)))Ì™3‡'žx‚Gy¤ÑDË‹/6j¹dggS__¿¿?¡¡¡ØØØPUUÅwß}Gpp0YYYÔÔÔ@HHäççãââBDDŽŽŽTWW“””„ŸŸTTTàííMDD666˜L&rrrÈÎÎÆh4booO«V­¬bç©°°0¦OŸÞ¨W£¸¸´Z-µµµ$%%áããCaa!eeetéÒ£ÑHzz:UUUèt:‚ƒƒñööV†Ø¾þúk|}}‰ŒŒÄÛÛ»ÉïurrbÆŒwE"ÿ¡ˆˆf̘^¯W^+,,Ä××FCMM ß}÷þþþäççS^^N÷îÝ©©©!==êêjt:-Z´ÀÝÝøøxRRR8rännntèСÑ*"€2pà@åç{|É“'Ó®];vìØ½½=+V¬ÀÍÍN:±xñbî»ï>eɰ5úüóÏyï½÷Ø´i111Êë555äçç+ÏíììlÌf3~~~„……¡Õj©ªª")) rrr0 ÄÕ«WÉÏÏÇÕÕ•V­Zaoo¯\Hnn.•••x{{Óºuëf½ƒŸÑ„ÅbáôéÓTWW3vìX8qâݺu»íZwee%¯½ögÏž%00ÂÂBÚ·oÏSO=…““ï¼ó‰‰‰´mÛ•JŸqã¸|ù2ÇgíÚµhµZ6nÜÈÁƒiÙ²%jµš+W®Ì»ï¾Û¬cxêÔ) ãÆãôéÓœ8q‚Î;ßvÏ×_~‰ ÷ß“/Sûöí•Äþ / Óéprr"//‡~˜#F™™Éc=F—.]prr"''‡ÊÊJ&MšÄ… ¨¨¨ %%…Gy„ &——Çܹs ÃÙÙ™šš²³³yòÉ'1bééé<ÿüóØØØàêêŠÁ``Ê”)üá°Š{û‡›ï¨T*NŸ>͆ Ø´if³™ àéé©$æÀÀ@V­ZEAA¾¾¾˜ÍfzôèÁ¨Q£8sæ ׯ_çË/¿ÄÃý^Ó„~ãÆ V¬X½½=‘‘‘Œ1Q¯p IDAT⎗€6×x=z”?þ˜wÞy‡ÊÊJž~úiBBB”JT`` +W®¤¤¤oooL&}ûöeðàÁ$&&RZZÊ_|^¯ÇËË«IBÿa/WUUñññøùùáåå…ÉdâôéÓôë×O©dôêÕ µZMbb"C† ±Ú8oß¾¾}ûÒ«W¯& ǰ°0âããyùå—qppÀÎÎŽ‚‚fÍšÅðáÃÉÎÎfÖ¬YtèÐwww²²²¨®®fêÔ©œ9sF©ÄÏž=›1cÆ••Å“O>Idd$ŽŽŽTVV’››ËÓO?ÍСC›mï©$ô[$᯿þšÞ½{Ó¢E ¢££Ù½{7>úèmÓìß¿Ÿ/¿ü’-[¶Bjj*³gϦcÇŽ :ø~röìÙ`ggÇ•+WµNwìØÁÒ¥KéÛ·/¹¹¹Ì˜1£Ùǰ¢¢‚#GŽÐ·o_BBBèÓ§;wîdÖ¬Yhµ·wÛ¥§§ãããÓhƒª««cÍš5¸»»³|ùrìììøøãY¿~=;vTz@|||xúé§©««c„ ìØ±ƒ+VàïïÏ»ï¾Ë§Ÿ~ª|& ç%K–`kk˶mÛØ¸q#:u"11‘ŠŠ V®\Ipp0555V³wü·ß~Ë}÷ݧ$ÓeË–Ýô:•JÅ¢E‹°··§ººšo¾ù†7Þxƒ>}ú(;ʹ¹1qâDÒÓÓY´h7ý~øúú2iÒ$Z´hA^^+W®äÒ¥K<ûì³V¿;ä¡C‡9r¤rO¯\¹R‰ßú¶¶¶,^¼;;;®]»ÆéÓ§yã7èÞ½;F£µZ««+cÇŽ%''‡¥K—âááqËq FEmm-ƒ·Þz êêê(--ÅÕÕU‰­»»;666VY›†Ju¯^½nZ¬¨¨`ݺu°dÉllløè£X¿~½R鯬¬$<<œ'žx‚ªª*&L˜À§Ÿ~ÊÊ•+ñôôdýúõìÚµ«QÅÜÆÆ†%K– ÕjÙºu+ï¼ó;v$  YÆIN[»‰ììlŽ=ÊСC±±±¡OŸ>äççÛeÅÅÅEÇŽquu%22’^½zqúôie¼866–ððpe<ó‡.\¸€ŸŸ]»vE¯×IŸ>}š} 3228~ü8Æ C«ÕÒ·o_rrrHLL¼í²T*ÕOn“““ÃÅ‹yàðóóÃÍÍPYY©l £Ñh1bøùùA‹-hß¾=îîî´iÓ†’’’Fó ÆŽ‹¯¯/îîî 2„ââbrrrhݺ5µµµ¬^½š;w’™™i5itéÒ…µkײyóf6oÞ|Ë!ûî»___ôz=„‡‡³yófÞ{ï=.^¼ˆÙlF­Vcgg‡Z­ÆÁÁGGÇ›VÖúôéòe˘1c‹/fõêÕlÛ¶sçÎYý³¢W¯^¬[·N‰g»vínzÝèÑ£ñññQz0Ù´i[·n%)) ‹Å‚Z­F§Ó¡V«qttÄÑÑñ–÷•££#›6mbíÚµ 4ˆ—^z‰ììlåûòãÖí¯0÷ù¿ª¡‚t«Gvv6IIIL:ÜÝÝuuu9r­VÛd‚²µµÐg̘Á©S§Ø¿?555ÊýTPP@ii)AAAûì3öíÛGPPƒóçÏ3f̘»ö;‘••ÅóÏ?Oxx8:Žóçσ»»;AAAxzz²fÍBCC6l­[·Vþlmm-[·nU†ŽJJJˆçñÇ¿e÷ôÝîòåË,_¾œððp´Z-çÎcÀ€8;;+1W®\IPP#GŽlô¼1 ¼ÿþûœ????ª««‰gÊ”)DGG£V«=z4 ,^¼˜={¶ÕŸÿ=pà@fϞ͚5køòË/ñ÷÷çÆ\¹r…‡~˜Ù³góòË/SXXˆ££#'Nœàü#¿øpñâE–.]ŠÅbáØ±c<öØc„……QTTÄØ±c™2e ³fÍj6½¦š_|ñEIãÿRYYI‡èׯ_£®r‚ƒƒ %00OOOºv튳³3ŽŽŽDDDÚdÌËÎÎŽÞ½{£×ë±±±¡gÏžL:T*•2.þãfhÙ²%ááá899ѱcGeLtt4W®\¡uëÖÄÄÄ R©ðöö¦GwÔýµcELLL£½!†aaaàååÕ(†­Zµ¢E‹77 $&&4 ^^^ 0€1cÆ Óé ¤cÇŽØØØàììÌ„ 2d:­V‹¿¿?;vT6ßpqq¡C‡ Óé ¥]»vTTT°{÷nžxâ ‚ƒƒÑétŒ;–aÆakk‹^¯WZCŒ9’!C†4ûYÛ Ëë"""uÛÚÚB›6m°³³ÃÇLJ¨¨(¥[ÞÞÞ½^­­-öööÄÄÄ0qâDÜÝÝ•y! C-[¶lÔ¯V«qvvV>‡   ÆÏÈ‘#­~Bœ££#­[·&<<¼Ñ=Ûp/µjÕ ;;;üüüˆŠŠRΪpppPâéèèHÿþý?~|Û“Q›]w²ZMÇŽéÖ­öööØØØĘ1cˆŽŽ&<<œ¨¨(e‚á„ >^9-99™¬¬,ªªªˆ¥E‹ʵõõõ¤¤¤páÂL&mÛ¶¥}ûöÊ’@“Éĉ'ÈÈÈÀl6N§NpttÄ`0G›6m¬zîÏñÉ'Ÿ`ooϬY³­‰vttTö·~ë­·øî»ï°±±Á`0ðè£rï½÷b±X3f -[¶D¯×“žžŽ 3gÎ䨱cddd““ÃÌ™3™2e <òÈ#èõzìíí),,¤¢¢‚Ù³g3jÔ¨»2áddd°ÿ~V¯^Ýh1;;;<<<0™LlÛ¶;v V«•ïÞüùóñööfÓ¦MìØ±ƒÁƒ“––F^^#GŽÄÉɉS§NqõêUذaz½ž¿ÿýï,[¶ŒqãÆ‘‘‘Áµk×èܹ3úÓŸðòò’Ìö;eõƒ: {%:tˆ¼¼Ë±cÇ”÷ãããyçwšl°ðŸb±Xøúë¯ùøã©««#99™åË—óÎ;ï°hÑ¢&;Í>}š pìØ1NŸ>ͳÏ>Ë”õ»ÿûßyî¹çHHH 99Y‰GÃúÑo¿ý–÷Þ{ï®þ’×ÕÕ‘––FË–-oºEmÃÞ ñññ¬X±‚·ß~›|—_~™ääd¥bi4yôÑGY»v-666,[¶Œ!C†°fÍzè!>øàrss•r333™5k6l`„ ¼ùæ›Íz—­;qíÚ5€[®­ÏËËcõêÕ :”·ß~›E‹‘Àßþö7åšÒÒRúôéêU«xøá‡Y¹r%×®]céÒ¥¬X±‚äädŽ?®\_UUE‹-xã7X²d ÍêÙ%¤…~ÛÉüøñãdggóè£*Û«Ö××síÚ5nܸZ­ÆÓÓSYJc4)((PÎfvqqÁÓÓ­VKqq1ß}÷jµš¤¤$ñõõ¥  OOOeÉSyy9eee„„„`±XHMMÅÍÍÊÊJå¤/FCAA555ØÚÚâãã£üùššŠŠŠ¨©©A­Vãââ‚ÏM[.}ôaaaNVspp`áÂ…ÿª•ýÿd­VËСC¹çž{”÷Ÿÿüg6oÞÌÔ©SÑh4¬_¿žÀÀ@–/_ŽN§cýúõ¼þúëÊ2½Gy„#F0bĺwïþÿL«ªªØ¾};cÆŒÁÝÝggg¶nÝÊõë×yðÁ›Äè7Þ k×®<ûì³¼óÎ;¼üòË 4­VËæÍ›:t(O?ý4*•ŠíÛ·³}ûvî½÷^üýý™8q"?ü0÷ß¿²óÖݦá‘[-«+//çĉŒ3†: R©˜8q"«V­"!!6mÚ`kkË€hß¾½Ò+T]]MÿþýQ©T 4ˆµk×R\\¬ô >œŽ;¢Õj™>}:6l !!ÐÐл.Æ&“ FsËÞ‡¸¸8ôz=ãÆÃÛÛú÷ïÏþýûyüñÇï÷[2djµšÞ½{ãî…ˆŸŸÉÉÉ 6 ø~)gý¾¾¾ôêÕ‹ƒòÐCý®’صk×øàƒøú믩¨¨ M›6<óÌ378¼wï^Þ{ï=JKKQ©TtéÒ…Gy„V­Z¡R©¨ªªâý÷ßg÷îݘÍfzöìɼyó¬f ¿U'ôÔÔT¶nÝJqq1ùË_ˆŠŠbÙ²eìÛ·?þ•J…Á`ÀÓÓ“—^z‰€€rrrxõÕW©ªªÂh4¢Õj™:u*T¶b,(( ++‹öíÛ3iÒ$üq-Z¤,aúì³Ïغu+‡¦¾¾žèèh†Š­­-...̘1ƒ#GŽpðàAìì쨭­¥k×®<þøã899±eËöîÝ‹ƒƒ†ððp–,YÒä £ÑÈxî¹ç½×°Y|¿“\tt´26Ùp]ÃIL%%%Êšw“ÉÄÉ“'yúé§•´W¯^üå/¡¢¢WWWÜÜÜ ãØ±ctéÒå?>æyõêUrrr”SÙlmm•.Ë›ÍNMMe„ Je©M›6dgg“••Exx8!!!+›ñàçç§ì™ßªU+ùì³Ïxæ™gîÊž­­-ÁÁÁœ>}ƒÁÐ伓ÉDmmm££M5 :NéÉÐjµØÙÙ) K«Õâää¤ülccƒÙlnÔCöÃñ\[[[´Zm³ÛYë×âíí­ìy«Šª­­­òýT©T888(Cg õ†{\¥Raoo¯ 5¬}n8§á3hX Ñh°³³k´ùïÁ`àÕW_¥°° àëëKaaá-·âõööfΜ9øûûSUUÅ믿Ί+Xµjz½ž>úˆ>úˆ—_~{{{^{í5Þ|óMå$GIè¿¡víÚ1{öl.\¸ÀÒ¥Ki×®ééé¬[·ŽiÓ¦1dÈ*++Y²d ›6m⥗^ÂÓÓSÙM¬¾¾žÝ»w³}ûvzõêÅÀéܹ3]»vå©§žB«ÕRZZª´rnåÆèõzæÌ™ƒ»»;‡fÛ¶m¬^½š°°0233yþùçiÓ¦ ±±±üýïgüøñŒ5ŠúúzªªªnÚzÊÌ̤ªªªÑNQŒ1‚²²2e¯ô©S§2sæL%ù&$$°fÍ Q©T¼òÊ+¨ÕjnܸAMMM£­ÝÝݱµµ¥  WWW¥õ•œœLUUÕ/žðK:u ‚‚‚~ÖõNNNö¿~ý:ÕÕÕäääÁÂ… ™;w.“&MB«Õ¢Õjyî¹ç”•JEûöí9{ö,F£ñ®8ÒóÇT*÷Þ{/»wïfß¾}ƱÍf3¹¹¹„„„púôixà4 ………”””ø‹ïÙ³g©««ÃÞޞ˗/c4•|î6tîÜ™-[¶«lâb±XÈÉÉ!$$„ÂÂB®^½JÇŽ©®®&%%…–-[þâßYZZÊ•+WèÖ­åå夥¥ñ»Jèñññ9r„mÛ¶)òüÔ’Þ÷:Ž;–·ß~›ÊÊJL&dìØ±ÄÆÆ0{ölž{î9zè!«X*lÕ ½aW0Fƒ‹‹ ...$$$`4ñöö&++ øþÌì#GŽ(3Lß~ûmΟ?Omm-ÔÔÔPSS£$7åßЊ»»;ÿó?ÿCxx8&“‰cÇŽˆF£!33£ÑH@@§N"66–ÐÐPöíÛ‡F£¡S§N„„„Ü´õ™]£·úõë§´ÈÍf3‡fñâÅôêÕ‹N:ÎܹsÉÊÊbË–-lݺ•:(•’v 6l[ûÃ1s???NŸ>MMMÍ<¡geeáä䤴¸ÿ‡zˆíÛ·ãææ†ýë_•V ÑhdûöíÔ××óøããààÀæÍ›ùôÓOiÛ¶­R‹÷óóãäÉ“TUUÝòˆVk×§O.\ÈÊ•+9zô(QQQTVVGÏž=™4i‹-â…^ 00}ûö1xð`ú÷ïߨëþv¶¯½öÞÞÞ|öÙg 4H™è8uêTyñÅ­¢åóïxzz²xñb^xáî¿ÿ~bccqppàÂ… ”––²xñbºwï΋/¾È=÷ÜCJJ —.]bÆ ¿8¾%%%üùÏ&!!óçÏ“‘‘Á‚ صkÿû¿ÿˬ~ËןÒ0Aø“O>Qæ >œ3fÜò»\YYÉ¥K—(--åý÷ßgĈx{{sõêU233™;w®rmÃÐRnn®$ôÿ†ššrrrزeK£nêþýû£V«yûí·ÉÎÎæÕW_U×+¯¼rË/ÓÍÆÄ~ØíÕÐØ0ÙÈd2a0HNNfݺuÊiß¾=z½ž¥K—ràÀùä“OðóócݺuM’gàw³ýp Çž={R]]ݨ«O¯×Ó¥Kºt邟Ÿ³fÍ"--MÙŠ²a‚@YYuuufõ7œfôߨC§Óa2™”“¢þ)S¦`ggDZcǰ³³#&&†ôôtÂÂÂÈÎÎfçά]»–˜˜¥E?{ölrss•„n0šÄõn£V«™:u*;v䨱c¤¦¦âààÀøñãª,½R©TôèÑwwwJJJ¨­­eøðáL™2EéÑ8räÿüç?Y°`A“Uâ—Ñét 4ˆÖ­[KBÿ´lÙ’áÇßÕÃD?‡§§' ¸¸˜€€ÎŸ?ÏöíÛ¹ï¾ûˆÅ××\\\”³***0 ääü_;w‹j!pü_,v7q4¸‹kÐr’Éä 4؃èÌî@¬º‘+˜N0D8·7úxï‚¿% ÃÀ|0/º®CkM†X–…RоïB ”¢®k„Að±~~¹ÿs˲eQ}­Ýé8’$Á÷}¤”RŒµÖÌóLÛ¶TUõqrq—mÛHÓÏóR>Éöx|¡iš(Ë’u]1Mó:Šû¹†<Ï“¢(Ç‘}ß1 Û¶‰ã×u¯f©i†a@kã8äyþ«uèNo-JZ雉.-IEND®B`‚pymvpa2-2.6.4/doc/source/pics/ex_topo_plot.pdf000066400000000000000000000700441323370031300213320ustar00rootroot00000000000000%PDF-1.4 %¬Ü «º 1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj << /CreationDate (D:20081113011300-04'00') /Producer (matplotlib pdf backend) /Creator (matplotlib 0.98.1, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /Type /Page /Resources 10 0 R /Parent 3 0 R /MediaBox [ 0 0 576 319.5 ] >> endobj 10 0 obj << /Pattern 8 0 R /XObject 9 0 R /Font 6 0 R /ExtGState 7 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> endobj 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream xœ­™Ë®f7…ç~Š=„Á1¾UÙžF‘ZDb1àbÒ ‚I^Ÿoù?AgÛ»9¡“ô%Þ¶ËU«V­ª.×W¾þÎ_BºÒõÓeÝùõëúµæß§¿c-|þyÕ­çV†~¾ZoêœÕòUXœ£§\øyûÓ¿þvýåú™c~à¿/Tj[Çê×Z¯Ö®¿þtýáùúþ×áÇë7_õ;ûýõ˕—PJ‹µŽ”g³Ô®ÜRÓZkµNãí¥ Öëð”‡ç+×{N£÷byðîRsìVkj)·ÉúŒ#·V,Õ2ñOˆi´Þ¸žåfXêe¤TzYÛ±nz¯#Wž™mÆê|ìæÅ×öË,Éj¯}\ÙG Cr/íýv>ž©˜ »rÏÜŽ+’Nc{!FØ:[MÖY/±ÎR1Å[×þíu¬ÉøQúÚï±æZúì-c~O±¥2SÜu?ëÙ½;ëÜï3NÇ3µ§—ùÅØPy,æëüûhfÝòûýwïwÌm3×ôºßt›

    Z,UŽto˵%ÇÊOzž÷¾©i—jEë´ŽZªÉöYyJ6ÞûòMîËöá^{ yöèNðlËk½El˜mdP•ð­ãª9m®·å'~˜Î[ FqâÆ„UyQÒˆzÖÖŠöϨǘ¢·ÌcCÏÎÞTF%WB™Pû:>)ü!¬íÙãL¼åÚpËYêØ‘<ï¤Ýj÷œ”y–Ö݇ÕëH¹Áa  ¦ Lî;ìT±«MqížðjoŒQ¡“/:ï³c T¸³M7òrÅ#e†ƒ¬€{ ÀMép':X·Ãq";IRÇìœLŸœ»8ß ìE_|Þ§'bÑá`xÒŒßq—‚³×‡Ë’à Š)[y ,7|@°B{qºÜê pñQÚ›S³\úÂü^uuí|Ëq>κº=k+Ë»»ïU}[çòÇXr·G² ¨ïHànroHRœ¾ãˆTîr˜ä“„Ô8(nöNzË¥7“Ç„‡»`¹>ç‘ð0"Iž3{rN0Ã褺gž( ¡ ^ÉsKÛ 0ÑÏ0*àžóìN±’¸œÖÖî;er‹ò0wÎEmò$öÊïtx§+ìÌò%™?jØÙîâ•€}B¬£ûI–£ã`~ƒ—Q\_ÃkåAÒEÆÇIÕäíl|nE…áNô ÏH¡Ð׳Á%ÌÚ©ò¸˜Unˆ¹±x´ÁëD€«Éø@ÉÎÔ¼\ê8ŠÐÅ2—¸aûXËV±iC‰H·ÝòŠ‘nÉàÎÒP¶ÇÝ·¹¶úº={+Ï»ÓÂVÝ7—oâ`XØ´Å-܇4ÙÁ6es í¦‹ †MW8¿Ë²#MÂ&ëŽ$»ËÂ#E7Uy$ø]•nü°ößDíF.wI|íÔvI½3Û†?ÿ?š¯ÕçE ¿¼º½W¯'‰;ÎC'$ F}L«õ«üS¢üÏço"ý$/QyLŠé×öðùëëL¤ÜåËÐ,€м}ûtxåÛ'ǃèÁCÉ0ÄnŠeäÑá­gSðò Þ’úNWôáäçw®ÏÅŽ`¾_oJSy*öôýëó '0¹þ 7ÎH±"ŒbG¦¢+퇷§Ó „t¥s.^ù_O'"¼o‡î€JZVê×&Ïï\bŠÄ˜¸ë?¿­¯QÊŠ aÉbL²Q‰§=mXß7Ò§ªê}Æ7¸ŠÌô—¸ÄH'ƒfýT*\¤>$ΟþúœìçÓ l–ª…p>”Ù}ãpÞ9EzOŸÇÓÂNù ^]¬mdîí †o–¡Õ†b´Zìýµ¾“öƒ'“ê=L¥°ôgØ~8±ûú#ž}ööÒ¨¸¼¨¹¨XÃV(³üd±ÖQt ˆ˜›?ž"/hPzлM‘7u£äo_„ñx8i¯9’å[ =ž-ÃÑ€‡AÞ¨!Tª>Ðñ·Ãß'mYµÜüúùdûpLõxÔ¯c½òa¬÷/[s½ ²b«)ít¾H:›VÖ¸Bbj¦ K¢wÄK¨é¥ã$:•\ªЉtT£yµ>W%¤D®R=Uæ‘#4;=U£©}ét¹RCmÕñ`jÉ•x N“/º" Š<³¾ö«´Bá¹¼:/©ŽNu¯ÉšÑ²;ªv"›$CH§ÇPdÆêeÒ2˜æÖ%É´N®TµÃ×þûûX'Þôy„}ÝÀ¨"´G^ãu÷¥%{ÙÏ:í-Óh”µÎ ‡¿T³Ihð=Í*ây >údG+w¾îe®ñE[½!] s{Ø\Ó*Ä¿©²¤e~æy8¼/YG¤ó<¤ÐXÝ!%9JðÙ’´K´ÑˆãNOËzDXói$eÑ–ÒQù]ªÒÄéžW»B½Î¢Íƒ—¥±L§ñEFã" ‰F¿æe<õÆo€²DÓ\‚ Q'•Õ4Ybcw±5„Å­ÈÈSΣXDšÔ¼úŽ5ãENMðuS—¬okøÔˆçK2²µÞ%I[€˜‡&‰;Þð%Q›¦ àgš½Ñ… “úÝ%îq¬°9¥35Þ»Õ O/x‡ÀZ±/iö&ê¨êvWÃEN è9 MÏƒÑ œŸpæ@9j?Ià:r£H2˜š”9VcÃc"Éš*hÊ»MÍÕ8È—ýÔô‰€0U3"ë±ÀTðj_£Q­XTÃ=ÜÃmëij>–ûåo%3òGÄÜ¥y›`LíÕvHƸ ,‡ýRðI#½=\Ÿ4ô¦Bʽ‡ù*^4äN¯çë+XW¿¢ÿçíôVD ¼ÔÚŽÃûH•mSKKªÑ«¢ >†=Öäw>õ[#7Ê&&—=U£•®aÕ¬žè¤X%îÔ‚è6È<›ZZÙ±¡þ£™teë\Ù±e,".i›Ïì«RMËõ41v$oÅ$Ƙ„g™OS¦æQêŽ6hç –aEÊ,ÿPrÂA;t‘KËÒÐᎃ¶®ª9j Û©Ûá ½*gª3Ä<Ÿm²NÑu ²ÉÂκZ®“Þ8k2v6ëUÃ%µ‹¥rýNúUsdj B¡k`· Ö“¦–ÀÜ5ÛkNE)Ðtãq–šÅú2iË3€GÍÓ~PÒ4ýªGÉdsÉí¢¶l„£äÞ_w”ìÃù÷’¿¯ï’`nPsÜD¼ÑNpp?Ü—j³ØZs'î™JËwì}D¦¦VECùÊíÀuÐÐëU„(¡/ÜßòBƒI l™¯¼¾åUP/@RºæÂe™wÏK5i’Œ>5è<òZ¼DŽÑù=ío´@ £v¢=lÍ%vVïHsê Õ' ñwˆû+¥ï”6ôwžšÒy2âHô«I“²þD¨}DM?P(\·èú‡N% 5,>ÉœW@$YŸº*Å­ÐȪ±â‘¨²U(zì"–¬ºÆøÍø0£»ÖÅEÌH€ù‘]sú©<‚ÌY¦X¦+ÚG»+á@ûý¥S>wCÛ ü¨(+çÝ÷zX~¯ÀÛ«ïåûðØ­ú‡ÃÝwñ°kÓ·P-ߤË”Mù|DÙ©›vˆn²kø®ÚŽüØTßž_»j<òs{~ïšõà‡MòîôrHæžvɽÑÛ'Óšý…©ÎÛ endstream endobj 11 0 obj 3090 endobj 6 0 obj << >> endobj 7 0 obj << >> endobj 8 0 obj << >> endobj 9 0 obj << /I1 12 0 R /I2 14 0 R /M0 13 0 R >> endobj 15 0 obj << /Width 234 /ColorSpace /DeviceGray /Height 234 /Filter /FlateDecode /Subtype /Image /Length 16 0 R /Type /XObject /BitsPerComponent 8 >> stream xœíÝyLYÀqÂQ@QèÔÕèY)°®ñ,—² ‹\â&MV%@)ø·Ñ%Á3Ê!W[ {Ä5f ŠPÚ⑨›è‰‚µÜl¹Ah ìè€a·«í¼y³òûü?oæ‡:SïYXðy²¶s¢ËÎ÷Åš%¬ldŠž1y8î‹ý$–Ó¤´KËÃgÂ}ñÁšïI9Y;F³T¯øqú˜âÿsÛnL«¤(ZŒ4K'^ÖO“±Éwmñ¿(ÆIš¡SS“Æéc®ìsÂ@ƒ áuêí@SÎD“cø lqÇ|Ó±T*­PjÍ(Õª*É1$ÛàŽù E®’Æéþtþãø›!®ZŒ;æ=ì~ÁÁÁ1ç™Ñ8Ûã ±äxþËy¸ÃL8‹²ŠŠŠÊUm •¶«+ÈñŽ.ÂfÂ=±j```ðµ¡RÃëAr¼ÛÉ|ÜaÿÄ#|ãòž2Ô8[cÁ^_—n`‘¤\݉ ´«¡";ÈwÞ,‚ä*ݰA©a¸÷ö‘/qçÍàñ½ãòdRš ã}Ü‘o- Ì”©»•v7Ȳ‚–âŽ|kå‘êîA·.E?Ø]“ºs£#ß+ ¶° Y&åÅ¥xò<ëùŽØJÝB²rssKU݈K{ÔRò<Ù¡ØJ׊ë4M{ÿ8âR};yEæ:<™ŽîëJ_!nœ­µìûu8n`̲†^KûîJ%; ¥ž™uÚ>t¹¦ô}­ŠìõJ…9-,fR4¹P ¥ærXº*¶„©—núÚ¥ñ«—²û ̸’€d:eD9wþA)†ÊH(…R(…RŽ€RsXºù†ŸTàýúÈ”±>'"‚áǤyÂdY]Ëî´™|©(—3~ m®‰Q.§Ãß¼ÿl='ÖèP;°…@Xjãè%eñ=SåÑÎN6K-æÌZ:PÊ:6J}Å7žtàýBIßù´*Ëy)±ý‡‹JÌkÓ©óï@¿¸¢ÝB·)Þõuò8·…öÈKI>7;Ù_þ”¢ïj¬’°²†$‰¿=1O‰m]PU~’ˆ`©ÔÞESŠm­WYœ€…¥2ßñJ¿ÙÔÅþ <ÞÝTéÍ^&ÉcGr^=†5™U)"v÷Kâ¹®Œ.ne½´½4våÖ7Kš#k§CégYê)®ÑèXÝ·B§©•xa(uJ/VëX,ím(ÉÁ±QƒÛš¸b ‹¥ÚÒ„µn˜6HZ“^ÓÜܬíEý1ÞÛJž§VŒiÏ ’[°8''§X‰n 3Jª„ËõòàÌÆ ‚¤=H6ÔõT§ ß΀>—RU‚ÒNµ,SÄ¥­™íùÞ1Ÿ (ý3/ևϙ[—â~øºN§ëcl¿WýH9^U"Çö)&9oÈê™z=oSÊÈñ$"îí=mOøŠD¢¨³*}|~9ž`å{ÝO°hÿÕ¡¡¡a³öÚ6Œ “cü~KD¦œ6§—””Èæì¡©UÊÉ12¶ÎÇóA6|ahhèîÜ»f”Þ?ý9†@¹Sâ~£èéOh³Æç[—žZíשrJm3ݟ؉–ºécÒ¾axj=BVÂpÊñ;tgUêëNLãÇG³sZ»J‡&è•}‹ûbÍâ}Xö=åIp_¬Y–mˆˆ¢g·ï¸/Ö,–ó¬èš‡dª.0îo4Ïå endstream endobj 16 0 obj 1862 endobj 12 0 obj << /SMask 15 0 R /Width 234 /ColorSpace /DeviceRGB /Height 234 /Filter /FlateDecode /Subtype /Image /Length 17 0 R /Type /XObject /BitsPerComponent 8 >> stream xœí]XT×ÖÝÓªˆ"öÑh4ÆÄMÑ“çÂÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ`x¨T*™LÑÜ,7é_§ïÁЧ¡SâäÉ K—z™šn0Åb{{¯ððs†> 5´ªÞ%K ©ÞE‹¶‡‡Ÿÿ£·gèÓÆ``ÐëraaQrrFhèÙßsýú½Ó§»Qý]Šu@nB:ŠDŽÓ¦mþæ›C¡¡:ð|hè9úÞ’’Ò Š˜¯xœ!—ËÒ6o²³Ûö{N›æ6hÐ&ào‹·:é:88óù.n™:ÕÏÎî Ý;»}vv{íìvÚÙùÚÙm÷ð¼t)U&“ú2 ­­­‡G¾ýö¡pãï)8ðx§[ؤÓ-€ €€ç-ì ý…ƒBá~¡>÷ =„B‡¹s·üòË©ææfCŸB†¿ …‚^m©O †VÇè5kv?ÿ¼Ëß(ÑßûG½bÝ6lðØ °   DÁä%°JKeð^ ¼T #ó Û50‹£ƒÀséÝÛaÒ$Wê…Ú?¯““tt<½âz(þc—øú›9Ó£K—:ZX8sŃªW']ê¶ìÀÔ,  à"@À €b€à«¡§žÖÂKXG`+ÍZpׂ‹Vªa†úÉ¡ë-09|wú¹è§£Ÿ±ýó¾ü²»·wHaa‘¡‡‚áÏ‚^( ŠRS¯ž^½ÚoäH'ƒú„ß7ŒºÛÑ-P—õ«[€[À+£Z0kƒnž"œtí|M¥«…£ZAˆR|¬Í,´ÙØK*úZÎ[ †—J`¬ë`¶ øÞ˜Ò/Ȧ#W­ò ˆ¤gƒš(f!~TWWÇÄ$Мúz%íÙÓ€>¡£tÛ ƒ®¶°¥„ÒHȸP ü°h…ÞJÎëN'ð5rhà’ÚXÒÚ5£¦×µânq•¦¡ü]2Þµ°,^¾ OÇCïHA+B=‰“Ãĉ. nsvö?sæRee•¡‡áÿ 2ôrI C·nff"ÑC¢Þv¯«3 ûõQW'Ý+wÊš@ †xR “¼Kàsn4«†»Jó’º^µ…äÙ}ëò,K*„w[xQRÞV)¬’«eðä50>>dÍ ©— gÀÊŠ³Û·çåÝ3ôà0ükÐËbaaqFÆ5j>üÐ^4 ­ØŽÜ„óîXóÃØH½îq€3—.sÒå•°ŒeÐ…À/xƒæhì%ÂH…ør«YE}߆üQ²ËS´ç'(ãG·¦ kȘ}§ODaŸ Ë¯ŠŒçßáO¸Câ¡{ˆè·c·.¶iåJßÇ#ÓÓ¯R[ÕÚÚjèáb¸•4¿vs;¼x±5 ô¢ihÅþF½ºÀë…Š:p+c±˜¦Ýæ¢.¿L©×UAÏxÀbßð&JLZ­rªz7<Ý–1C=ŸÌW¼£|»-èµò“Sn\›6$8«»ç]á…ð<}̨9 àO3Ä=8 AÏŒ‹Kµåå†.†û““G/ޝ¾êޣͻ7ŠDWlG:b²¶ëcûÑî†cqL PÐȆ®诅Q˜©½×îœ'Y }Ê žT]}Q³@ëÿñüJëô­vãšï?W¸/–îy£)tBn€ø£#Íð½ fJÁª à4 ¿Ô>YX8Ð3óÒKn[·¹};ÇÐÃõX£¥¥¥°°èòå줤tƒ‚¢èÅqذ‡Ê0lÔ738u¼4Ã"C<ÚÝ\àW‚@ b= <‰³ÿ@ÏðZ8©á¥«»åV ©»5^›ø ]I|~"<Èç~dÅAòžyß•|ù­öçå »gåž•šÕ? °Ûúã×¥‚qeü¡)<ë£`¾ ÄÛ€ïq¥ûŽ ãõ¢ùwyã2¡ÿY°: ¢-ÖÖŽ“&¹-YâÕ~Þœý##c‹ŠŠ =¤²³o¹»~ñE·6騻÷&KËFF—ë參«ñ¶^]²–€j÷€WFÍ`ªàª»Ã L!0—Àj?ÓÀKx'Õ¼t9¿TÚ».\›ä5rbñû‘|¿“,'³%dì=Ò³PÛ£@csOÓ+M5&LñºOÛª/=fUê_”c~¾Jì\ËÿGŒÎ…¾Ñ`ì'9ZZ:ÒsÕ~Þ¦Ms£Éµk7 =¤>许¸„žjÿlû÷7Hoؤ^G ¼ž¯.ð¦r—KÖšÀ¤ ºª 1^Á¹‰/Ññ$ü³Jáu©¸®a`ËíqsIð'd‹ Yû ±=§žv]ñD]›isƒQK…¨µ@XRÐãrѨ˜’;«ß_Óì:Gyü¹ü¤'ŽßìñC…ù¢{â—’ø#ŽA¯ýÐe7ˆ|±áNß^ß¾K—z:tŠžU™…øë@O/5 4VÐN“h+«‡ª°ð{ê eº|m'ÀA¬Ä¶;Þ<€ÈÀ\Éx˜@`¥Öã¤pVxIfœÛdÑZ5Lž5M³€ü²–¸l%%ÿˆ—?ŸÓ8°¥J,»-' äü†SæÅQ½oÆ K›Xø®gÛg_Ôx¼}õèøˆ”A;®u_Ÿiô^*LM€'ÎE˜]TÀ]»:¼ð‚‹®Á2"âbA›Vþ«põêu*]júõÛDOûCVXø—êÕ5@za×®Î6œÅRÃulfÀ¹ K ôÕr“ÂÓ¼ùÚüï¸Vœ"µ(®í®.¥IU±˜ìýŽüD“µSdfZë3E}¹BÍ%žæ0OãÂS: Û<Ä-ÛÌ*Žõ¸sepZóè`Å?~lúáíÊàñW„Þ0q-‡÷+arX_Ãb½l‰虤˜ZêigèA~d‘’ryݺ½ƒ=䆡£zuSÃÞ8C¡kÜí` „Z°"0€Àhl$›Oà#œ¡ØEx'´Æé­–eÕ6¤ð’ò _FvþH6ì!K¢ÈK—›F•÷T] Û|ʕк ê>„jae iEªefî¨Àòù?6ý¸¸ôÀŒÔsÃŽß±ö,1_Q$œzgƒÍy0 ð·Ï™z`šÄ%%¥zYtNõz¢z÷áÔð € ÔÛ B©w šÞ— , ð MöДMkœAÕ[Õ“ÜK’_'ÇiÊö3ùv±&Ó¯6Ž,+詾" ¡@\,‡æyP4®M‡sù…Õ:šì“zþÙ“wçøÞ[ýÕ ÷yé!ÏGÅÞ•m¶¡•Âä[Ð7 Ä1 þV¦Þ¿V½>¨^]Êvñ×ZY»z»D`,¦lïa¯#7;Ì‹Ðg¶t-¯ìEòŸ%IºJ¯ùæYx–L»VÿTyž:M@üd>TMƒË£àTo¸8€w{4¿iŠ@ºÜ¸Î«kù¥^wÆÚþ\õâCÏg&t.ß6XÖ O׃yˆÏ‚`'Sï_„ÖÖÖòòŠ;wrƒ‚¢–/÷6h{ùÿ{©sHÁ&Þ€fjÀJûkì}éw±7c¯öÞ8mòœ_Õ»þŸê͵Q§ H @Þ†ò 2‚ Ò®uº ˜ ª/@ÕIÝSsÆ5¾ëвÁ¶"htî5ë ÕæîM¢ùrÞØzš =B{õ]²bÏáÀèÛ·séÙf½ ……EÑÑñÛ¶¯\é;y²+Í2 -Ë?¯^ÝòŸíXìÕuæÄàê‰l€B®] K5—µÀ¬m üD`G{ÖVc­.£I™­ ¿Ï94Œ,Ëï©J ?y*_€Œ&†(dC‘ÔéP;@Ëaó{‰ӊLJ4Ìs¨ùÞ®âðÄ› C#o[z×ò×6òæçó^Ȱ5éõ#|txëÖ°3gYñáA&Âîî‡_yÅ}èPGkk‡‡lJâß«·cÅìP‡ŠÙUníÔr3 %·†b(οE` ØœsTk”ÔfVPg¥(¥JŸ©9©ËÚvë²¶†§KïõTe H0Ÿ,€ê‰puœC4$¸!‚¢¾P?”K@å(l 5«½ÙízõS¡ sZ¾YZ¿wʽ‹½®#šù.õ<»ÑÄ|ëññCÆ¿ôÒ—ôtV|øŸ •J++«rsóO/]êÕ³gg±»ítèБ®›&Ö·–e`Co%ð[ÀTÝÔ\kÙ8³ØãJ OZQ¬Ì$‡«÷>)¿ú’*Êžìý–ü¬«˜¥7=S\Ü›«9„q² ê_…»OC¢5$v…ÌnpÓ Ÿ„º—@¹´<õ1¾ò†°¬¦W\Ë”½ª¥_«Þ…m¾nšSgt´•ÿ­ Þ’Âø\èu©Gï`û%þ1ôÌÓóÏVdüw ¯˜˜x/¯£«Vq†¡Kƒ«ñ¿SïïçÚtÝe¸~WâVœ° ¿–|ßù§õD)EYR㺆!-7§(.Ì'kp¶"„¼•Üú\AU?e¾\² ÈWк*fAÎ8Ž…¡l:Ô¾­Ÿ‚Ú T¿¤ñÆ E9-ƒÎÊfìV/ûF³iž2hŒ,Õ¦´Øâ\È[Ÿ(àõ*xòŽEß„‰ÓCW®ؾýØ™3ñ÷îZiiWÜÜ8Ã0|¸£ÍÃ?7ñ/Õ«Û'ÇË{õë)ÎüÓ<ðª@ØF ®KG7Ýö:å¾#àE­¯šŸ¦–µõ«Ï{®-ñMò1ÙêBÖùqòIy••BmpæÁTk m4Í…¦w¡e)H?ùO òm((Dõw,Jz\UŽˆPÏÜ¡}ÿ[íF;ÍÁIꋃënõÈ,3•‚›–Éàù&Q¿ÂCc‡üåå—½œƒRS¯Z ôRU]]MïáÑ‹{uïÞYr´©^]—Žûýí‘XõÕÕÍJ€Wǹ_±zxײÙbs¯ nA/GÙ³¢xtKÆ+$rÙõùa7YzFùòué“ÍfòÛ"Õ9æh·R‡Ú¯A³§vã«üŠ ‘,F,Í0©ÍíZPÝ7K>ü"™HÞÙL>]C\hý'k.>ÑtÃæF©It+͹býëZ¹{ŒÃ¬¬¼.ÜEÇ‚Ž³ôRE ƒOȇúMšäbnnpþïêuî¿­é1ú}ò€‡îW¤ávª…ñú𻞀/×ß ™êîù•Ã꯿ ½ô ü‚¸{’ÏŽ¨ç%(ž/hë[]fÕœm¢Œå«#A šP ZO‰/˜U§X•f÷Ì¿7 »rDbó„Óª—ýÉ|*ÝoȦ%Ú=¯¨"GÉ3zUX^®1:)ƒíØÛ6ƒÀ )ô¸&gÌÌöNœè»jÕnoïèèøüüCK£ %岫kÀ«¯ºáH3µ‡cYåÿ¨^Wýž9»pã‘Ë‚n¢ûmŠkxè£åÔ§¢ûýÃo€bµ]nÔõ«Ê©ÍœIN½OvüH¾ß¥]vJ33S5*·¥_eU×¶"”·@•Ò›¢º<ó²ëܪþ×êF$7n›¬œ»K³Ì…¬YKœ—’ݯkž•'õmÉ5/­1–´Ž*ÁÀJTïPØä‚iœPdc³kĈÍÔ¼99ù''gZôkNÓ´‡¾ì?R¯®Wg›>wÓ¹ßýjbl6ãËÀT Ý4ÐçÝ^%°À7|„Ó”fëÂòŠ»Õqïh?'®dÍAbw†LOU¹­XÙfYÛj^Ûb^×l^.íž§è—­&!ccÈ‹¡äýdÑòÉäûOÈæ…Ú³5áñCšnt­ªÞm埗óª¹æŠe^¤ê•ƒM·×—`Øjié°b…OTTœ¡¥Ñ ð©wãýæas‡U™Á§pÞMW|(âܯQ ˜)¹‰ã'0}›MàlSßCŒNË,®5t¯©Ù|åeyÔ"í~j\©€÷‘EÇ4oF«¦')žM‘å(¯x!F5ý„v6µ¸Ô!SÝn$ßÒ×Ó M•ÿ’2jœ,yHà ›’bÓÛ üd9ÿ˜Šç¥áöê±Åšó@X—€Éeü~Ñ/šSïŸÇ#§ÞöuwýÂ̽˜¾…â’É8¬ýâ>$‚:ÉÀ„@/\àö<6L~BÀ™Ô¢8¹q¾´å½g[$³µ'ìÉ>j€7‘o¶h?Ù©Yæ¯Y ~7@=ß_½`ŸÚÞWóÁò©#Y÷-ÙH5Õí|ð91I}ñ©¶Ë}ó,Ë+Mo6 “e¼SjÞ lÒrFå-\ÎÜOÝ*Àø®Ö§&LJ©÷ÿ…\.ojjªªª>³x1ý¾\xVÿپìw#á«  àáx§ñð lV#I¬rk†Vßž H˜©ŽX ñ_¥õ¦^O6þL¾ÝHÖÓǟȆïÈÏk‰Ë'dË âG}ÂÛÚ#³4§¦¨/ŒU¥<Ñvݦ¾È¤¼žWÆKVB„Îñ~… ð_!ÜŠæžJ°¬£»x] ïЯK‡… ·EÑÑilld\ÿE.$ïÙþé§;§Lq3Ôzþ2õ:þ.};¨ß J·U/îIB#0¯LZ¡«‚+ Ö·îÐ˺/SÄ,©ÙæVÙÊ;c2&Kcg©NýCstÖ1ÙCs±%dÏb²×Ž|‡¾IŽÍÔœš¦:;A?¦5mxcöÀÚœž¥%]rk²Zy‰Juá¶`my%®§›„¡tU‚i5s°“óÀNn-çÇïܽ;ìüù$6ñ{H$™îîAsæl}æ×>} ºÓã_$àöÚ¯n¯éÝú]øÂ1ÇãVf·WÂKÁ\ËepOc ›vQ˜Â4¡Õòv½MI逺œáòk£UiÏi¦óSÉ9Júd"‰OÇÔê+Cd7ú¶äÚÔu+­è’_oz½Å(EÆ?¯„0  ÒÕrëî?Âÿ ö¹Ñ¯Œ‰Œj@‡»Rs¾K(têÝÛiÌ××^ÛâꘔĊ¿EDDìò徿æN¦:]Kßä¦û7Kß©ïœ Óï •þkõÀS‚… z«a¸^ÑÂr­nÅ„H Â,¹IA“E}u÷æÒÞÒ{äwÉoRpì¯Èé­¸×CQÜUZnÖP#®jJù·¼L \"Iàݸâž~#>ÆâÆl´ÙO`«¼@ üàéÔkš\pÆÐÙÄÄyÉŸ“'/Z,P½>ææ:é>)ÛïÙÑoÑo&Ùq×ô É8‹‘ËílfR ] w+<#‡Y*X‚ <Ô¦ ‚ã*£óm&iMæWëºÞ¨¶¾SnSf[fWÖ=¯¢knµEn­Ùíqv³ð²”Ÿ,ç]PA¤B¸ÿË5°9ãlÈG(Ý× LFÇÛO à˹ùkÞ]t§0ÇtÓ ˜Z¦Þ ½zôyºÁ•ö©·ý&AºÚvý¾|ºíÓÃ1Ç¡r²8ó).³è×£å\7—mn Åþ´/Ÿã??F³± ·G{uû n95çD®µØ‚€‘„­À¯Å&n`±7;âöã»âÔ+8ôëçøÜs®sçnóðJJÊxÌoövnÑ"±øÑ.5ü{þæ¯î¨äÍ(f/œ›Û‰[ßœA#Jíhw7S Øh`°Fb[ÚTÔäëèÞÅ}!l1ÆÎÇÎÅ]zfbäDœP‰íĽ±È`J¸m%@É­³ãfLîbí.³È`¬Šxá[rÖ¿[G¡ÐÙÎÎ;4ô,Sïc¯Þûn®ví ã-xáÞ£_’| +E ®„.u`Ó ýÚ`ˆFh¹©ñ8ã0'éfè9LÄŸŽÁC ·©'J×LbÚ¸=„¡œ«uÐl‘ûšÄàRüîlÑemL½¿So‡oÒ˸]ÉíbÖ5HìÁƃ®"!¸â|0«€. `ÕÆ• z¡&iDF¸Ê£0{Ÿ<…‡ O ñÖš@WæL´ R •ëâ¢n.vNEÇ«Ûël?Î ºãÛpdêý ˜zÿÛël>u·0ÎÄPYÁuG€Zn k3–ºc"ÖKOT,´]Ð'àkG ƒ C)þªl¬r\Âl1‹xºÀëŒÝ©÷7@õz¡záIŠÿíîBç"‚06êÖ&ß¹¹îVY¢&·€©Ìe`©ä6VÕÑRÅMÛ™)¹Y`ê„rà·†Ü&nU>·/JGéFcÙ9¯æk§¸w":ÚÙy1õêջ鑞¤x êÕ ØC¿¯TûìýÜ\!ðKAX ¢Z0jãV0nãnBd,ç(–Qˆ¤\MŒßÄõñªÐ-bfVéžÀ_~KÛÐñv ,Ü; 7ÙÙmgêEõn‹™nÿ$]ô›RîÁzZ(^åu YX‘ÈÇXZ…~ ™Û¦¤8Ñ‚ÿ¤©µ¸Õ¨Û,/\ÇÒnJ‡¨«“î®ûK ÷Q(Ühg·íñT/ýÈ%%¥©©WÂÃϯ_¿oÚ4·Î¼xío¦“þÎò~ú{ëºÜ/â2ÏtŒÃ7Ñ ¢ŒË°’PŽOJñH!*ü.u¯`ÈMDƒÁü(ÚÝ=á;–î£@à0uªÛºu{ÃÂÎÓøóXMºi4š””ËÞÞ!‹û¼ø¢Ç AŽ|¾ÁUÑYؾLc›¾AÂ%w ÂPŠ©N³QŸ·0 ßÁÇÛ(ìë¥uºMºî9 à'ð÷øãïôÓß ½Ôpy¼:N›æ¾h‘·½½L¦0´¦þ>¨ÕjzÑY¸ÐÛÄÄY$¢Òe¥†?Ïö⃮OX×è~»ÔBPQ¨ÆX”q2Z‚´LÅ#ɸ #7rBålj Œç;Ú'×:”~K>ߎM·)››£ÕT½GF/XàÅç;³BÙÈöâC{‡·¾OØ-ëqTãitç1Çb€Õ1œÃŸžÆ²0”} ®Ý‹ÒõÒßeþßw«¶œ™zÿ´z;vø¸wèðÙƒÙÖaŒ¢Ç0ÿ:‰…µHªŽ‘¨Ø“øÓPÔí”ýlòÃ_¥ë(sÖK—©÷>0õ>¶wG´wøè‚ð^”â/(ã#¨ä³Ž!x$ƒmêö >äz£×Ýüoì.S/aê}0ü—-jÞ?wé[Ô¢øUÚÎCx|?š=øb_}ÈõÔ/£púƒÒ~ `¾×àbètìh!Ú¬kéñFAîÀP¼ ¹…ºwãñøÔíV}ÈuÕgjfÞóŸíL½Œÿ-Û-„®3Í£ƒŒ·ëé…’öÑËu;þTl=ðétû_Î×?–êÝÎç;ý›š ãŸãï,;6 ·s ÆØ­ød3þÔ½}¹%þßÿ~=ìc©ÞmXéeí ÿ»zÛ,ïÃîèÑÿR·ÿ}—Ôã§Þ3¨^ƒý£D‡ûͰ.ÿ;úÛÿ5€0õ2>8vôĹoS/ãƒãokü˜acêeü èðÇ|ˆ©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±ó’©—±óòñS/ÛC²³ó1ß}Z·/»=q'åã»óÿñãçìí}ÌÍÅb'¡íÞù(l¢cgjêLùX©W£Ñ¤¦^ñõ ]¶ÌwÆ Áƒ~;y¼ƒ9NŸî±d‰ÏÒ¥¾Õ½2µZmYYyFƵˆˆØ ¼ø"»Oq'#6Ó¦¹}ûíþS§.R>V÷)îvøÎÈÇùñÁÔÛÉÔ«Sog$S¯L½‘L½:0õv6r“Bá&;»íL½L½Ü$…PèhgçÅÔËÔÛÙÈÝKK(t¶³ófêMI¹¼uë‘ùó·¾ð‚Ë€ôKmðÑaüC ýû;>ÿ¼ë¼yÛ6o>’œœù˜«·¨¨8!!-0ðôÚµ»§Ms366ü1þŒ6N™âºf͞ÇOÓQ+,,6´| µZ­P(¤R)½ -^ìeffø1bü#š˜8,\¸=$$šŽ—\.§cghù<,ˆˆ¸¸|¹·¹¹áÇù—ß¡¯3’ªwɯ“'/Z,&õ¶ßç·¬“#SïáaR¯NºÎ¨°ÁߘÉÔûGHI¹ìéøÖ[›ÇsîÛ÷ï,>´ßÚQ_u*WW7=és<èÔ!·ß¨úÑ7t,úôq;ÖyÎOw÷ÃÉɆËCšÀÆÆJöï?ñù绦Nu55ýÛFg“^±.zÑzxlØŒO<î æGßTÐ;y²ëgŸíÜ·/üâÅä‚‚"C‹å¡ƒB¡hii©­­¥)-½Êj€J|A@À-”q*þ†ŒÞÁø–vãÛÐEàÎ:³la±qòd×?ôóñ ‰‰‰gsÿ襪ººšÚ­#GÎ/[v¬gÏsèH/êýçIŒ{:ÿù ^¾uå,oŒÌ¿)ÃêêcžhŽâ¥?-•b@=@€ @ žøJ(¹Gút”ã šQÌå“©†¯ 8fø(Úà]h!<ð/^Šÿ{ôظx1gè™§ç_*•Z—/ßôô<3kÖéaO^°é›`d™ ¦i`’ &ñ` âs :ÂHàŸÞq ƒ™ÛÅì…!×3¬cç8Ë¿ÂU¸Œå`ª3-˜° Ð…€%+]ñ9=B›0%`¢ã60jQ5J€—‡¡; Dfþøw·ëÃo§ñFFœn‡ s|õUw7·Ã× =슊JÏžMõöŽYýiäÔÙº¿}  OôΞw Û-èrL³Àè*ð/ë}i<¦Wgô!ú¸¾Ï%e¼0*ÓZ°l†îmÐS} 0ˆÀPONàI|†GãOékzi ‡¬d`ÞâzàW£åÈÁDO‚ß‹püîìÂøïÒ‰ °¥%gV­òõò:“@m›¡‡ý½xUVVåäÜ >–ðþš‹}§ÝƒQ­0²žjaÍ0  z5U#˜6€° í+õ…ú‹{ JK‚Aòç`y­`ÒV 襂j®…§ Œ%0À$“ L%0 §àz|á^ó¤†h Ÿ¬U`¦½Õp1þ­Tðq´ÞúYŒÎa€{÷Þ´l™wPPTNN^EE%3 )é××¹^4·^$0ÀKøHÕõ1*i„ì­åb©¬[ { t+†®y`™ ]r Kt©„.RÎô&0„À(ãQ¢/xÀ›æx—À| ðñ<ò&þôeÔóü[4&÷Aka¦“V.‹JApxèÌÃÑŠïÀ ‰Û”A*: à¸vítCò# N½›/ Z\‰j!åV"?ÀçvÞ&ðºfj`† ¦Êab ÑÂX¢[¼-ƒ7d0K/ËàU%ÌÒÀ ª‹¬@q~…ÿë'Ž\ ¸á¯õÄ'.œl$ðõ¾$ð~Sl1 Óà?Q c4ð„ ú(À² „­h$r21‡é¼íþvƒ+ö>éÒKÀÎk×îeêýëp5ûŽûÁ¸—¾¿2`Ci7·zÑ.%iyá~´Z£4Š‹CÛŒÛÄûeF~2ÑV¹ÐU!بäoPñ¿Ró>ÓÀj-|¤åäúŠÿ{T»»¶ka—†·WÃ;¨æ¨ù‡Õü@5ÿˆšwXÍó§¹ÁN-÷ÙŒbþ¿£1õ3ѽÐx>@7¦r0®Ñ=Ð,2x'0Û‡Em¦3/á mêÖ“îôéž®®—/gzY—”‰Íðü%î}ŸÄI;²»©çGk„‰rñ•Vóì†nW«ze”ôI)ê™Pj}±Âêlu—Óuf'µˆ¥‚rÞn%o—šÓáNû"¨…cÞIïŒRpN.Œ•%H9&J’¤¢ø6aœLpAÎQò"ÕpB G øØKÀ Ãò?ÀPü:¦{4³¬„^-еL Áè:ð%X>‰ó,ôáŽ^ÂÑ@梮••ãĉnË—ûzx>ǶhøëÐÚÚZRZ~ýVN`tÒûGD– ÒTâ;­æåuÝkKÔæŒ¨¹6ª:sxeÖàò[ýJs{u+(·È«1¹Ù ºÚÂK“ñ’•¯8 ’´¢åeªxY þÍ6áÝq~“iQý¯,®7.h4Êoæ´ nÊø×”¡…d-Ĉ&Nà0=è[0’¯B Ï¢^BO)¡ º6)uÂ÷°Y"'YÂpneßýiñ¿†~ýœ—-óñ÷ÈξURRÚÒÒbèA~ôqýnŽgTÜKWžH¸7âÊíÑw³Æ•¦O¨Oœ"??œD.>GâÇ’äQÚŒaškƒT·úJsm ­ªËº–UYÕYä7ZÜk´(l2/j´(­³¨¬éRSiÕPfÝ\ÜSZÐÎ-EÝšJ»6”w©®6/§’n6Ék5¾%5¾Öf”*Å)„g”ücjÞ Š© Y‹ÉÝÛ˜Ó"Ð_ ÖR¬ã•ÿðÒb"qVî`‡ie·¿«µÒÁÈÈÁÊÊ¡oßMƒ;ì4x0gÜ݃®]»aè!}ŒPRV%Iw?÷Mdì·1¾»pöó„Hû¬ãóªCÞ"!sIð<Hùmð›Úc³Õá¯("§Ic&6ÇNhHx¶6å™êÌ15—Ÿ®¹2ªöê¨úËO7f<Ý’6Fš:V&yV‘ÔαrÉè¶ÔQÒŒ§š¯o¸>´öö ªœþeù}‹ mòˬnW™gÕKZD1r^¨öØ‚©ß§Xý Ax‚†+ —ºÔƒIòôAø,–Ô‚ÐHìÀ‰9Ï¿>¡ã‚­µµãäɮ˗û¬[·wݺ}”nnÔ0—zH#P Q\ZvõÖ”¬ë)ÙÙ”aÉ±Ž ‡WìYBvH¼¾ n_ǯ‰ÓWZ§5Z×OÕ›W©¼–+wØ+öÙÊüß‘™+ yS:G6G~ü EèÊÐ7TÇÞT‡¼¥9ÚÎ7Ô¡¯«Â^SxE9C=U~á…¶Kã¥ÉcZÒ‡7ehÈéQWlY\m|£…Ÿ¢†¹âÝX©øëoia²žTA/9X¶€Q6HÜÁÙ@]¹¿5Âõ/ëŽøÕ' ê¼r¥_PPTJÊe¯^½^TTÌ ƒa‘_xïð¥ãßgú~YµyCãÏ®Š5ÛÉjo²Ò¬ð#ï{‘U[´»k¿p$ë~ ߯'_§/‰Û§ÄSÇOÈæßó#²~VŸed—=Ù÷9ô6 šCŽ¿B"'‘ Ï”'HVß¶¼nÕ•¦ù-F×äÂx%?RÍ Ðð¶i¹‚Æ*,Oº>°PH ‚Jàåâ `Ö„uhÐEàïD¢M––޽z9¿úêæmÛŽÞ¹“kèáb¸•ÕUq‰‡âB6'úyfýäS½ú y/Ì %sN’Y'µ³NjfP¿¢yë°öÝdá²D§j*ò­ä£-äãÍäJOò)ò3ò™ùÒ™¬¥‚ÿ™|·ü´Ž8~NV9é¬êÅÓê—Oh^;¢}û€v¡/YáN¾ø‘lXC\> ¾ ˆÿkäÄ$íÅ‘ê̾Ê\«ºr³» ¢d9ÿ„†·GËÍn|ŽyÜ+Ø4»#„*ÔsË7¸õGºÞž0p»…pþß-5 ææ4Ss¢†ÁË+$?¿ÀЃÃðÿ ¦¦Z’{"n×±Äu1WÞÎ.YÛlÑTm"-ÊsùÒÛ¢ælãú+f5×,+²º—\·)¾Ù«ðNŸ{9ýòóúåßëŸWØ?·h@nÉÀœÒAwÊß®z³rXv툫M£2¤cåÏǨ^ ×¾@ÞÝI–Qƒñ#ùžÚ jŒçjÌМ«’ m¹Þ»¼°ËÝZqªT¡àï×pó_âÄôLl(J ‡,ZÁ¨,ÛÜÞ]©KâþÓ¦ˆÞ´]Çž='Mr[¼ØÇÍ-0&&¡ªªÚЃÃðÿ ­­­¸¤(ûæåؤИ _f_/«4Rä U×øê$žò_qR(?*j ·†·œ4m>mÚtÖ¬é¢yc¼yc’EcªECºECf—†+]ê³,ë®[ÖÝêZ“oU]Ö½²Îº ¥ïMùÐtíÓÉDê7“wv÷]ÈšÒüÎVûËLÍÉç•—†·fõl(²(¬3NoœVÁA,D¬!`O`66 ÓB/%˜Êïp6§í¹Œÿt"£}ãV'ŸzÊeõjÎ0¤§_-,d†¡3¡¬¬8þ‚_FììúëÝê%Ýêcº5ëÚzÐLé-"®@Ül²ˆÝ@  ä8p §€œä<8 é@n)úE¨m´(–÷¸¥”¦}A;9L;›æ€[ÉÇ?‘ ŸO{²fsÈ¥¡äziq—ÂZ£LÿŒ†wHËuþ|…Íls¼€=ðݨ…P¿Ao!$¸d©½3í?3ÀÔ'˜š:víêÔ­›³Ž3gnöõ e“¿uuµ™éçâι'D¯J8µ*!tURÀâ,Ÿ©åN}É7@¾òO|ŽOÖYä @œ¸ñ²ˆ½@‚€D‰Eš°å†ImEie܆þÙ²aIÊñ‘êW´óiNç@¾ù’¸-!{æã/¸ò«ýjò¬îU™d¶‘ñQs}kßà|Ü›XINÀFÃõs¢%â’½£8›¼ìü' CŸ>ŽS¦¸SŸ°jÕ]]9ÃPSScè¡`øA-DIqÁìÔŒ´˜ŒÔ˜ IŒä|È¥ŸßþnY ÄÈ< ¯y ÈL ¯àó¹@±²È2 ¢¶×Ùd} >ÆWÄÛ$FÍ7LëŠ-*­rdÒ”c¢µ/!s©‹p"_¯%.KÉî7Hèdõ…Qm™ýó¬J*Í.7 c”€}ßagæ?°«çI-ôV‚YZˆB\(z ×x`OÚV ¿Ê0<óŒË§Ÿî:z4š*VÇ””ËEl†Gµ55 !ûÓ¾{«e‘yË[æ-3Ì[Æ›µ=m¬xB¨êÊ! Š1 Ê  œª ž š·A³´ŸùÍÆ~ a ½êë ª€úF³ü¶>™ê‘çµSB´oí"Ë\ÈÚ¯ˆ3ÍãÞ"!SÈù§Èå¾mùVÅUâ«RÞ9 /P Û°x%ÎeLÆL-„€ZˆZ\晉5´P ¿>ØŠö/D+n‹¹ínÌÍÌÍÍÍÞxcëž=á,5{TÑÜÜ|%)6î€g¢ãòÄ—'®_žøùâÔ¹Ó²Æö/ì96p£\YƒàúP¸5 òGBé3Pó4½ò¹ ]äKŒÃ¾  Í9P_Ö šžÍ ï¢ØÀ mhÏ€2EÐzÛ¸¡Â¢¸©w–lDœfby}±÷ Ÿ¯'+‰Ï<4C}fl[ÊàÆÛ=ÊÊ,²D±r8FÀ—l|„«<¦êf“`ÞŠ«Jïb‰þÁçþÚõ &¸}ùåîcÇb"#cuÔù¹\nèÓÌð7¡µµõ\` ÿ»ï‹÷‰Å[Åb±ØY,ö‹½Äâ‘èŒ@c5½@= È$ oY)u‡°4‘$Z«MJZzf©†_"χ“ÙûÉ"OòÙ·zO'Ñ£IÚùÝîå•âmO ”Àòël2µq¥§PT`7Z,ŸL$Ú);!7á»Û¤ûç¼yÛüý#éÕÄЧÁ` ‘*31ñÄÖ­ööûííwÐ+±½½½½Ÿ½ý.{ûÓ§<8^(¼i •=@=Èx ³,Á’…+—Ç‘“@’䀴¸¬Éæ†jh"ŠÌþžü¸šlŸO^&§Ç‘äÁŠ[Ö•åÆw¤ !p›Û±£r>.ÀA ;žxÔ?Üàóã ~ñÅ=øŽ¼ñ­éHŸûlÞ|$>>U&“ú2 jµº¤¨èjJJ\xøÅðð ááçÂÃÏãÊ£6™1ã¬X|Íʬ@ÕÈh¬NØa-ÂÈN ¡@âÜi©qyƒõmå òÌiòòaò®ùð'²á²ÅŽœEN>GžPܰ©)5Éo… § ÀE kp}ô˸ªÈF—¾Uï–H”ðâ‹!ß~ŒïHÇsíÏ%’ÌÂÂb•JeèSÈð"áÔ©#Ë–E˜›§ó‹,ùŠž|ÍH¾f:_³€¯ù˜¯ù‰¯ñák‚ùšó|M¿µÐ¤¼ÖúŽ|`ªfÌÍŒ#šw|58hÖ¡ñ°×웣9>I;B~µOM¡yA3ÿІ­áûkøžþ: ©†?[çá÷Ñð”|a_pÛÄ$qñâð' }:%²32NûùY¼øÄBÛs‹m“–ÙJ>²•¬µ•ü`+q¶•lµ•ì´•²•„ØJ"mÎ.¼»ôLÒ'$KÖ’lØ%qÜ&ñt•øü,Ù»^ð…äØê¤ˆ÷cÏ.:o{Jb,±= ±õ•ØzHl7Jl¿‘Ø~*±}_bk—dûÞEÛ÷¢- óñ‰NKc‹|þT”•e¥¥] »t,$!4$94D"9"‰‘D…H¢C$gC$B$±!’øä„c‰I¡ñÉÇ/IÂc%'/H"ÎJNGKÎDIb"%çNI.œÄ†%_:ž”p,!)ä’$$Vr^# 9# ‰”„œ’„„KBŽKBB’CBCBâOMÍ*--7ôi`è”ÐjµFm8пN߃¡OÃߊÿj®èP endstream endobj 17 0 obj 15453 endobj 18 0 obj << /Width 234 /ColorSpace /DeviceGray /Height 234 /Filter /FlateDecode /Subtype /Image /Length 19 0 R /Type /XObject /BitsPerComponent 8 >> stream xœíÛQŠÃ0DÁÀÞÿÌ»dûc¢Øš¥Þ ºЇ$I’$I’$]ÜÏDÕ›çú¨zó\¤¤Í¤3¼žhÒ¤×ÓÁ¤¤ý¤w óÀ¤¤M¥‹˜ZÒ½¤k••ZRÒ~Òá¿HIIÙ#RRRÒœH÷R‘’’f+G¤¤¤áÌ))iµã%iU¤¤¤¤9Ý+MÁÞ®$]Þi­x)‘”´½t½¶JIJÚ[º[¬|FºŸôè ˆ#RÒ¾ÒÑG¤¤}¥/mÎ{‰t?©$I’$I’$IÒiÞƒdµ endstream endobj 19 0 obj 362 endobj 14 0 obj << /SMask 18 0 R /Width 234 /ColorSpace /DeviceRGB /Height 234 /Filter /FlateDecode /Subtype /Image /Length 20 0 R /Type /XObject /BitsPerComponent 8 >> stream xœí}¨œÅÆ_iþ(¡Š‹P*T("¶Ò@$” ¢¨ø€‚¢)¢býÀ(" 4Ò@DDT"*ZñbÀ€ÁL1%%¨Øñƒ ¤(’ÜÓ÷²;ÏüÆ;«h’Ý;7ÏÃóײw÷½ïû›eΙ3g",˲,˲,˲,˲,˲,˲,˲,˲,˲,˲,˲,˲,˲,˲,˲Ž9<ªyzZ>‡fû`áéŸáòÓò듾7Ö\Ww1|Mòºì…¾’¯Ç¾3þ*_OËgÆÛ³}v¼%Wßp}<*/‰×åIßk®ËôZíÊôZíÊôZsVݸ“ÿ—ý§ÈÞ<ô ß~._›åÇâÚŸŽKåGâfù¾¸]Ö‹|óÛq¦üiœ4p|Ùeï®ù]øØš×2½V»2½Vê6%ú]ö9‘Ý=œ¼?ûîOŠ|k¬•·Ærywœ6ðÇqŠü~œ!Î=qêÀñY—ýwxjèï¾ÎÖWô~5–üd¬9Xž Ž›ºl«A™^ÓÛ®L¯émW¦×ôÎ}÷ÅY¼õVV¶[٠к{‡^Ù;²WÅCïŒÓåß'Oïë.€å’§àÙúØ©8O~ VËŠÇ;r÷Ñtö1ð–¸B&ÉJ“~hÖP¦×ô¶+ÓkzÛ•é5½ÍIÊ¢ƒ{å_ï“»m1ôu0AÕjÞpZì–߉ÅǶ.›+Ô¼~~!™ôþ'[d}Ü(/Wå{nŒìkàˆæòŠnÔL4§+çÚ‡5v™^ÓÛ®L¯émL÷w²fƒ§Æ¹ÛûMös14ŸïYðùÉ›³Y‘øVœ=0g§{Ûjf ÷•šñiš9÷Ö×Ý÷ɛݚIéîVXox/›µ—«ãŠU2Ȥð¼–é5½íÊôšÞvezMïÜ×éüh\/ßwÊWÄ–ùt zŸ‰¡µ±|W/¾œÍm;*ßýÁXüËë“×Â(ïdrXùpfð×FæLž#«ÅJÓkzM¯é5½ã—é5½ Ó»¾VëQlöaêRÏ—7Ÿqc EC¼·ÌL*Jâî›"îKeºßMPw$u¤÷¢d€ÝñüGt‘ä­Øº^‹ÔÁ)¬#ó$Gÿ2c+ ž¯mO6wèóuÁª?é}agh.FšvÇß³¤A½Óù±ˆÚxÀŠ ¸Ù­ºþrq<+ó^éEÞ‚*sA¤jÖó³‚B'oò׆צöPEgZn£Óv¿'àC¦×ôšÞ#)ÓkzÛ¥WOO‡]q4Ñâ­ã-Õì‹oà"»fb3“±í142ÌLêQr·K1)Õôu)|9¬i-›íð–©d–O^¾9hÖ|²z³ZçÉêDýGŒ ØKG/oþ><öKç\—¯kBΙ3 !Dlqò8hD£j4æd¾×ôš^ÓkzMïøezMo»ôj½ž)J–1è ¼ŸL6VÊá½å'+ñËì(¡‚;_Š:‡“Y˽íiÛb?¾6¿cSyA2‹¾ýY¬’fVç²AQˈV5îcP¦ßRÊO`.Z?;ü9âOAîTÀ“Ç ¥ÑÍsnæ{M¯é5½¦×ôŽ_¦×ô¶Ko·>ù:ø8u‚âZ9w¥U3ð¬ ö ë¶ðYÏnÔ9cÒ«šÆVUë |d´šºa Iæ×ͯ5!úX.ñdqÅ6y¯4ryW¹Qýá¡ÞÜï–÷Ñ£·U±¡„‹5þéì'ozM¯é=²2½¦·azïH¾^¯J½ÜÜ]’së²äý0÷@©ûú¨ÀA­ìù2'ó½¦×ôš^ÓkzÇ/ÓkzÛ¥W¹Äâ°„ñ¨ÀYfõæTÚŸcóPš4ª™^ÓkzM¯é¿L¯ém˜^=ô¿ÀkàtëX¡¦3}4áß1ÂS°ú$ d`é¬Öî¹K®ˆwž‰¡¯I²Â7ljÕEmĉE<äH´ðE^OõØ÷êiDš£ }GíkS Ê#8Ùk‹%(zF¬7f1°–œøÆ€˜¬7>8=iRk2½¦×ôš^Ó;~åƒ{p©¼KÊa2ûW쯋üa‘ûMÅ¥y~²æo,B(Î+Tv”õ„›á´§I'z÷æ´V3UnÕ5)Íéedh‰–0æd˜Ðj ’±j×,f‰«=$G 7&««ýµTÍÒ[cV±’^=zÎÃM¯é5½GV¦×ôš^Ókz'(þ/œä+%XT{2[«tîËF!C ÒI#ùdzM¯é5½¦wü2½¦·]z¹wŒ+à¢tzQv>‡½÷=É# ¸#^÷»ÎYAQÝðÎEpòE‚ª®w°5“Ì70‚cК‰ÅážlÓ¤ëábo¦þ5îaç&AmßcK6x2V Ì@ŒOªrãå_nvÃaŠ‹’é5½¦×ôšÞñ‹Ó$NºDï›]vœ ß–Œy¯:Š÷æC©vžá×é)'&?õ"'~œ$ëññ?â¼N£†0¦Uó¼wŒª Íuù_0¿ªh‚¿ Œdy¾yv[øï]<3É:–ˆü×n¼(›Ý ºSbà†dzM¯é5½¦wü2½¦·]z)æ~s_ öâ^ §B,]`T¢ £wµo«'°¤W‘‰å§é™²~•­Ñ8ÏÜ›E $²”WÑÑb÷õœúfȶsíˆ"Æ¿üïx §Ì ‘»„rÒþ–lþLš¾Ã•é5½íÊôšÞvezMoÃZ×e¯Hæ Ûn§Δ8ÃÞR­Â³G(+¸]æb„nr5EÏŽè [XV¡çÈ(‰oµ’"ó ¹æ™'K¾2â(vùéš«mH׿;LÙ!–CO£‰«l¥ñlkÀÊIÃwØ2½¦·]™^Ó;?¤C™·ÀHí*‘ȉË 8{’Ûv´]/r\Ýu^-i ½ÅB¿Z÷°ùO~Ay§žuÑŸœ{”>å}ì[®ȲR6xç¬AåÝN³åQô2÷«ßÞvv3иcÊ}Ò5™^ÓÛ®L¯émW¦×ô¶«´>êÐíagtÆd,³£ŠÎ˜>åsÖþ(½Œûø¤t ̈2Sš÷ò3b"{Œ˜ÄÛðzXp.‡—ÁúX†rä_ ç÷Œp ™FfäÈ-EÕßÖWO„œ4dGM¦×ô¶+ÓkzÛ•é5½ó@Xçݽ¼‡Ü•F+jãb÷³«w»?±wº¶~óc«+ U¸%> stream xœ}P¹ 1 ë5…¡Ço›UܤÉþmNMÎpi Ðâ’‘ ?Èe¬Öy™C)­Ía«‹V$-}ÚbáQ'jS¶jÝO7‚IÁåò½# ·¿¿ŸS Aؘˆ‡E̲‹âéQ™:¥À¸EœÉâ†ÞÎÖ@æ¡ç]ÝçäfŸ”J^ö /øŒî[ endstream endobj xref 0 21 0000000000 65535 n 0000000016 00000 n 0000000065 00000 n 0000000216 00000 n 0000000275 00000 n 0000000513 00000 n 0000003699 00000 n 0000003720 00000 n 0000003741 00000 n 0000003762 00000 n 0000000384 00000 n 0000003678 00000 n 0000005873 00000 n 0000027935 00000 n 0000022091 00000 n 0000003816 00000 n 0000005852 00000 n 0000021513 00000 n 0000021535 00000 n 0000022071 00000 n 0000027914 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 21 >> startxref 28209 %%EOF pymvpa2-2.6.4/doc/source/pics/ex_topo_plot.png000066400000000000000000001563341323370031300213540ustar00rootroot00000000000000‰PNG  IHDRÂè|Xä¡sRGB®ÎébKGDùC» pHYsaa¨?§itIMEØ 7#€,í IDATxÚìw|eþÇß3³}³©$$!¡—PÍQT¤¨–Ó»9ÏSAÎrÍ^Q ž¨Ç– ?ÐâRÕSº€€" žlòûc“ìÌîäN©óy½æ•<;³³³ÏÎ|?Ï· š¦i˜0a„‰¸Ð4ÒÒRæÌ™CçÎ6l6›Íœ˜3s L˜0a¢yðÔSO1{öl™2e ×^{-.—Ëœœ3‚©š0aÂD|ìÙ³‡ûî»O?ý”`0@VV÷Þ{/cÇŽ%99Ùœ$“M˜0aâÌĦM›x衇X¶lŠ¢D„¦ ššÊm·ÝÆ=÷ÜCZZš9Y&š0aÂÄ™ƒ@ À’%Kxä‘Gزe ͉HI’9r$S¦L¡mÛ¶æÄ™Dh„ §?B¡o¿ý6O>ù$?è=W\qO>ù$=zô@EsM"4a„‰Óõõõ¼õÖ[<þøã:tè¿Ïb±0dÈÆÏÀ±XÌD“M˜0aâ4CUU/½ôÓ§O§¬¬,î1­[·¦ªªŠššš¸dسgO&OžÌ%—\‚$I椞F0õx&LœÕ(,,äÁdÊ”)qIÐn·óë_ÿš… 2kÖ,Ú´iƒ †cdYfÓ¦MÜpà ̙3¿ßoNìiéñÇÜœ&LœØ¾};÷ß?³gÏ& Åìw:ÜtÓM<ýôÓ´oßž.]ºÐ«W/¶lÙ¡C‡bi¼^/K—.%99™:˜¹†&š0aÂÄ© MÓX³f ãÇgÁ‚qINNæÖ[oeâĉddd4½ÞºukzöìÉþýû)..6¤VƒAÖ­[G0$//ÄÄDsÂM"4a„‰SŠ¢ðùçŸ3nÜ8¾úê+TU9&##ƒ{ï½—»îº+&OPEZµjEŸ>}Ø¿?»wïŽ9‡Ïçã»ï¾£´´”óÎ;„„sâOa˜Á2&L˜8køðÃ7nûöí‹K‚íÛ·ç±ÇãÚk¯ÅápU«¬ªªj2­ú|¾˜c¬V+dæÌ™äææšé¦Fh„ '555¼ýöÛÜy甕•Åø÷A k׮̘1ƒ«¯¾ú˜i‚ àt:¹è¢‹P…;wR__o8FUUöíÛÇ×_M^^™™™fD©I„&L˜0qâQVVÆ?ÿùOž|òIªªªb¡$1xð`ž~úi†z\ç¶ÙlôîÝ›ÄÄD¶mÛ7½¢¤¤„Í›7“••E»víÌ\C“M˜0aâÄ¡¤¤„§žzŠ3fPYY³ßjµ2|øp&OžÌyç÷_™/Ý»w§M›6¬]»6† 5MãàÁƒ¬_¿žÔÔTòóóÍæ‚é#4aÂÄ MÓ(..æ®»îâÓO?%Äc·Û5jO>ù$ÙÙÙÿ³O–eÖ¬YØ1c(((ˆëƒllå4fÌœN§ùC™¡ &Lüøe™Í›7sË-·°dÉ’˜€ÔÔTn¾ùf^|ñERSSc’äÿˆ¢Hnn.dÏž=””” ˲á˜@ ÀòåË©««£{÷î$$$ü(ŸmÂ$B&L˜@Ó4Ž9‚ ?~<_ýuÜî999Üyç<ðÀ¸ÝîõA 33“üü|ÊËËÙ½{w ƒA¾ûî;öîÝK«V­HOO7ý†'¦iÔ„ §5jjjؾ};ß~û-7nd÷îÝ|ÿý÷8p îñ­[·f„ \sÍ5$%%ý¤×¶wï^ž{î9¦OŸÞì1½zõ¢sçÎtíÚ•^½zѳgO:vìhF—šDh„ ±e™P(DEE«W¯fÞ¼y¬[·Žšš|>^¯7n©´FM-''‡ýë_ <»Ý~B®¹²²’§Ÿ~š_|1n®aãµÙív\.N§“V­ZqÉ%—p饗ңG\.V«ÕÌC4‰Ð„ g#¼^/¥¥¥”””°|ùr>ûì³&òû¡°Z­ôéÓ‡éÓ§Ó»wï“òÞxã ž~úiŠ‹‹9±›““ÃE]Ä%—\B×®]ÉÊÊ"##ÃÔM"4aÂÄ™ MÓ(--eݺu¬[·ŽU«VñÍ7ßÄÍ<DQdРA<ûì³ôéÓç¤iU^¯—9sæðÈ#4Ûêéh$‰ÜÜ\Î=÷\ÈùçŸO^^ǼaL"4aÂÄ™‚@ À·ß~ËâÅ‹Y³f ß}÷ˆõùƒœ н{w¦L™ÂðáÃOz@J}}=S§Nå©§žúŸZ59NòòòèÑ£ƒfذa´nÝÚ¼L"4aÂÄéUUñù|,^¼˜W^y…­[·R^^ŽÏç;¢‚‚„'1‘üüŸÑ¯ßyœß]ºç‘•…­Á'(XõçÔ° r´>j¼¾8m[µÿ¡•kMm-{öðÝ·ß²ní×|½ök¶mùMU6-úŽª%&&&’––Æå—_ÎM7ÝD÷îݱZ­fJ†I„§4MCUUDQ4o^g jjjسgË–-cæÌ™ìر#nzs°Ûí$&§sØßºAÊyvdtÉ>È œ£xv ÷˜#"Aáj÷‡†ófsÐ0ÞF‘çRÆÂ~rNPÉUáèšh·#_Q±¾ÃëŠ8´¦Š‚j‚‡kPªëÑä® ;N† ˜1c8ÿüóÉÌÌÄf³™7›I„§þjxûöílذ /¼œœsRLœÑ8rä6l`éÒ¥|ôÑGìÞ½ûk~N§“:ЩS'ºuëFFÛþÜùno°g‚ €è{áž&DØ›o /TEå»­Vª¾ÞEýÆ=øvãØqˆ²ý%?xž, C‡eĈ 4ˆ=zœ°(ÙÓfçIÖ7oÞÌ£>Êš5k6lÓ¦M345aâLßïgéÒ¥Ì;—+V4Û)fµÞö0dÈ.¾øb:uêDûöíIOOgg‰óϬy%wÏv8zvDõ ì?½»’)Ü´•/¾ø‚5kÖP[[{ÔsȲ̒%KX±b]»v墋.âæ›o¦K—.æhá©…­[·2f̾ÿþ{dYfîܹøý~ž{î9ÚµkgN‰3›7ofÊ”)|õÕW>|8¦ÒJs8hÐ FÅ€hÕªiiig•û@tØpvÌfXÇÁ$ Î 7ÜÀÞ½{ù裘3gN³EáõzÙ°aßÿ= .ä·¿ý-£G&33Ó¼)õ÷ši=ñðz½,^¼˜;3ââ☇¿oß¾<õÔS 8дï›8mQ]]ÍÆyùå—Y°`AL¯¾8â,)àh)# ý· w…oõǨ€.ÚÒ-B]óÜàjÝ*‰Wj[ 1Ôþy„hPÌ—†«HƘ¢QJ–Á4ª"R[wÕ ÔÎÙ’RÃþ¶ì3œ3‹øõá#zQ\ÉÑf¼àõÂòM0{¬ÚûKÁ8öï’››Ë-·ÜÂu×]GëÖ­MƒYkô¤‡Y³f1aÂŠŠŠâÓØ»¬E‹tíÚÕ¬&aâ´B(bóæÍ<ÿüó<þøã¬]»¶Ùj/‹¿ììlúÊõOû¤]Öt†”; ôþ7›¹:Ö ÈÓÛªaÏ‹°„J;Ë^Iµ‰")Æ´†:ŸŠ¢°wï^Æχ~H0k³p¹\$''säÈ‘¸û¸õÖ[¹÷Þ{ÉÊÊ2s Mœ2ìÚµ‹çŸž·Þz EQš%@ÑbEMÎ…ž—ÁEÆ’Ûéçºcë!pc”壮¶ÏÖ½Ðø•n(­ í(E&åîHúƒSðq…¸ il%ÄÏu>AÎì4 FG[5ÉaØ4¹N•*#cU¥C™Îâ£ÛŒs"D© ò9úýBOªya?9(Dj‹"Ã’Q‹%*É¿5 øB|ÿå>~¡¢/PéoÞõ(Š"999Ü}÷ÝŒ5Š–-[ž5nS#ü‰Ipýúõ<ñÄ,^¼8îª,%%…1cÆpå•W2sæLfÏžQWWWÇßÿþw***xôÑGiß¾½9¹&N:Ž9¼yóx饗زeK³©¢(Ò®];Î4Œ²GCÛÞ ZE5Ý3WBk€>¡2Íû'6§Ä5á’ ø´ÞÞ «Ë@³øðûý¼ÿþûìØ±ƒÛo¿Q£FÑ¢E “M4McñâÅ<øàƒ|ûí·Í ˆI“&1zôè¦ÙYYYLœ8‘-Z0}úô_¢ªªÌ›7êêj&MšÄ¹çžkšIMœPƒAæÏŸÏßþö7Ö¯_Ô|Àüü|xà.¼ðB222ØgúO*r`L¸0 ffý‘Îü?ª««ã¿eË&L˜Àš5kxðÁéÞ½û+oLጺº:þïÿþÉ“'Çí;&I;wæ‰'žh6J«¾¾ž7Þxƒgžy&nŠ…(Šäåå5UÔ7ó€LœˆÅ]AAÏ?ÿ<³fÍj>Æb…–™£®ÇþÇ?ÙNCÃ&;E8R)ó¥ùD¼¤FÞëÓà¡(›vÔY„“4²À~kdkàõˆpN´WsCßW›ÆN|\Ë»‘ç…‚ˆÜ^#™ ~ã÷Òˆ'üu¯© TèÞ£jˆ•Qsã0½½Œ‹‚ ÎÞÓç:¡ŸÁÔ¹<ƒ_rêR8öìïF dü±Èx /÷» «‰A¸ü‘/Ø^XÇ3›4>;•øÖiI’hÕª“&Mâšk®Áår™¡‰æQ^^Î?ÿùO^|ñŸæ"Q0`>ú(C‡mÖív»ùÃþ@FFãÇgçÎ1šáÖ­[¹ýöÛyê©§9r¤Qjâ'ƒ¢(¬Y³†ÇœÏ>û¬Ù`[r2Á‹.E¸ùv„üÞ(v¨«htˆi‚`ìüÒ )È€}nÍøWˆ"!!JŠY4¬DüŽVB†?KTÐhžóõŽ¡+D»15b}€Q\ªEõÔUÉ@„2dÝ b3ŒØ Äè×Ô(¶•rXAŒ|›æ§oºÆë?‡öÂÔ ßoñ£*±¿QQ·Ýv{÷îeôèÑ´nÝúŒÒM"üIpòäÉGM6l“&M¢OŸ>Ǽ‰DQdäÈ‘Øívžxâ Ö¯_#€<ȃ>Hee%7ÝtÉÉÉæaâG·pÌŸ?Ÿ©S§²iÓ¦fëСÃ︋^xd´l¡æžH°ÂAº6‹wfUóÕ¼jj*c;¿ßϳÏ>ËöíÛ¹çž{èÝ»7’$s`íìß¿ŸqãÆ1cÆŒ¸$(Š"×\s S§N¥o߾ǵ’1bS§NeÈ!q5ÈÒÒRž|òIþö·¿Q^^nþ&~ÔÅÝßþö7zè!6oÞ÷«ÕÊ•W^É+¯¼Â·Ü¢#A§òz;ùãSYüñé,r;Û‰'¦êëëùàƒøÃþÀ'Ÿ|rÆ|wÓGø_B–e|>Û¶mcÒ¤IͦGx<FÍ<@«V­þ+s‚ªªìÙ³‡‡zˆ?þ8n®¡Ãáàºë®ãᇦU«VØíö3fµfâÄBÓ4 ¹çž{X¸p!@lKAÈl“°?gpÑíHNK¤HÈáQùžÈ}« ý?– ìHŠœÄÚ»ºÅ]x7Ji*u~ÆGÜÖì -§DJ¤e‡yÁrGdP¦Ïú-º ÉiÔv‰°9³ñÑŒ–ˆÞè¢Ê‘M¼èJ‘†ÇQO[Z_X. 6˜F?å2ƒésMÉ‚jÄ¿ª¬²ƒ?"K”õšW8êug¿²ÁùrÏïÁ¥Eúù¾ÕØä Ь±¯XeÂË Þ8©‚ ÀäÉ“3fLSÀßé Ó4z(--¥¸øGŽ”³«W¯âƒ>h6êJèÕëWôí{=6Ô±aÃŽÿéó¯¼ò~¾ù¦’• RÃh¶˜9s&óæÍcìØßÓ½{w’“37àÁbq™é$77‘ÔÔ„³"7ÈÄ·ÀÛ¼y3wÝu+V¬hV ìÓ§<=mp¸RˆBZ‚Î%¨ iºü;M@“E#yDû…xÎ4·Ñ†¥o«gÉ!6 ».!ÞŠŒ%¤Iéx«*qˆP>Ê1ñÖºQÆE¢xÔb  6TAEç·€O÷Aõq;ŠÀêIÞH°ú&JŠ‚U–±]ráÍ)ðÜ›ðê\(:hx+š¦Q[[˸qã(**âÎ;ï$;;û´õšÒð(¤·sçN4MÃçó±sçNÖ®]˦MßQX¸¯·–£;Ñ=¨êV®ÌaåÊ…?â•õm Áqî|¨¬¬dêÔgž<7´ÄáÈdÀ€Î\zi'úõËãœsz‘’’bþÐ&"Â7äóÏ?ç¯ý+_ýuÜc¹êª«¸ï¾ûhÕËÊ—gZ3@+“î¾ :·…çf†ïAŽZÔÖÖòòË/SQQÁ¸qãNÛb&6¬nÿ6æIíÝ»—nݺQTTÄ‚ X»vm³š_,RÁ@÷Ÿ`Š]À€’[º*÷±ËÖÚ†­H$ôãñt¡´´”•+W0hÐ ú÷ïÇ„*4-ÌÍ<ų¡Pˆ>úˆ‰'²mÛ6%6X¢E‹ÜqÇÜ|óÍdggSÁvsâÎp¸œpõÅÐ>ž˜Ù›yŸ|sLMM ³gÏæàÁƒ¼üòËäää˜Dx:’`0¤²²ŠmÛ¶óÞ{séÚ5Ñ£G“ššJ(bàÀüéObÕªUÇ8›d퀟ÊGçú‰À»Hó°Ù¬\{íUŒ?žœœA ¤¤„3f°hÑ®¼ò*RSÓ°Zmˆ¢„ÃaÅãqc·Û°XL?ãÙ  ¾õÖ[<üðÔ——ÇD' ‚@ëÖ­ùûƒ×qQÕ 8ç¾€?+]£†4wXHÇ)E*"Éš…êzÕ! @…îÄ~0”õT€ŽQ'5¬ýôkÌþ:–"[×Û/• ‚zÛ§ M©ÄY;ëö‘iq$§%\Ʊ抾„øŒ–Óèµ A-b •?µC½îCjcІ›˜\E¢ŠÁÔîja¸Îtÿ#)bÝØ­7v-òƒ$ 5ˆBÇteÈäLù˜ƒ¯,D©3V¾òù|,^¼˜ë®»Ž¿ÿýïôèÑã´ŠQ8«‰°¶¶–Ý»w³|ùrÞÿV¯^E¿~ý¸í¶[›:8Ûl6òóó¹þúëùúë¯RIÃBØ yaœ§ù§úéº>àˆ¿ñÃÕ³²²9r$:ujz­}ûö <˜?ÿùÏL›6^½úÑ»÷´jÕ‘.]:pÎ9íÈÎNC’œ¦Vx£¦¦†7ß|“x nË›ÍFß¾}yñÅé“Z o?Ecšž–¨üX2„(wÞGˆ%¼UŒÞ…xcÁHdãX°UKT‰ª ŠÑg÷rübWËÇGŸC8ƘØ$}UÇR!Íj˜[|èƒaä¨ëã\WT U– ß½–Dƒ°Êšdð¯ Q5T•‰´ýë 8:dQüÌ\E‡ ŽCEQX¹r%cÇŽå™gžaРA§Mû¸³’«««Y½z5K–,aÙ²elß¾P(„Åb!//¬¬Øžh ÀétR[[«»ó’€ä†-È:œàosNƒ†x„p([%áew= 65=íÖ­[Ì;»uëFvv6EEE¬]ûÖ­[Arr.çœs.¿ü宸b(­[g›Ñ§g(ªªª˜9s&O=õT\t:\zé¥<úè£äççþÿ˜“v–Cr;È} –$O¼Ï¡í1¶o¾ù†Gy„É“'7›öeáI‚ªª”—W°hÑB>þø6lXÏÞ½{ ŰEa×®]”••‘žžnxÿÚµkñùd  CØšÜ`“p7,SO´æ$4,ûz6,„hê M+¤´ô;vìˆqdïØ±ƒÒÒÒ&S˜ªÊTTì嫯ŠÙ³g+V,â׿þC‡^ÔTÆÍb‘°Z-MQ§¦¶xzÂëõòÆoðì³ÏrèС¸šàµ×^˸qãèØ±ãYÓŽÇÄ C—Œ‘ƒ¹;óž¹í>öìÙC†k×®åÞ{ïåÕW_¥OŸ>&ž è÷ûY¸p!Ó¦McË–-ÔÔÔ¢ª±fDMÓøöÛoY²d 999x<Eeß¾}¼óÎdy aã¿­aêN& Q[c\y aG@£­D¡¤¤Œùó¿¢W¯|Z¶ |YYóçϧ¤¤$æÌŠ"STT@IIË–-¡gÏŸqíµ7ѱc22RhÕ*äd™‚qšB–e^{í5üñ¸`Vnw…ø½s=k:ÍdmÃb'”¢ú/·7W'%°¼¦±'ɺ»vÊÈÔ=`ÄvTÒ›=Õ†Û×ÀÈ€~Mšl5—•»O•ñƒvîîiHw)Lhg[$c^´ï£dÔêÈdìMµqèÚ–ðî=P¸}m6MÓØ´i·Ür ¯½öùùù§ôbꌕdªªRZZÊêÕ«yå•Wøì³ÏâFÂE£ºÚÇc½ÀÇo`Ô¨+(((aþü5ìÞÓðž*Г ¤Û,„¥ÿ:Úñæ›{Y¿~*#GöæÎ]Æ÷[W G˜|ùåg¬Zµ‚¶mó>üJ®¾úbÎ=·§I„§!êêêxã7¸ï¾ûâ÷ÇáŽdx0Uã\C©™´Ú¨Ô¥ÜøpÐ1YkLï¿ØÕæQHCˆC:R””²D#ým*¢@DAEqD°¦hÆ÷k?ðQ;ÞGóßûX§ { #s)¸¢ê²:1Žqˆ0^®£îƒƒA»!¿1 †Z¤¢¦k‹W9¡2ò†b+Ц?üî5˜÷0l] r0† ÇŽË´iÓNéÞ†g”$Ó4 MÓ¨¯¯gáÂ…üûßÿæ³Ï>£ªªê¼Û ä­¨«kÃ_$°fÍ2dÙF(Ô‰Ïó)A€bÃf"A›ns.üþVlب²e[HÊÃàÚ žå\u߀Üü<…BvíZËþýÛØµk=·ß>–!C*Ñ‹¢€(Š‚`šLOAx½^Þyçžx≸$˜&ÁŸ’à/Éà4>?ÙÝáÊ¿†Å͆OÂÕ€t2yóæÍ<öØcL:•Þ½{Ÿ’šáE„Š¢ðÍ7™9óu,XÀ~À»<@§†-»a–>ß©”p.D–ÀM[£hÕm6"¡uö"LÁ’‹€ÔnpÙ!¹=$ý컡j-”|‡–@¨yBôùjX¼ø#vïÞÊe—]Æ/~ñk²³s$ÇIb¢‡Ã,ïvª! ±xñbžy晸>A·ÛÍŸûŸÃŸ V‘fþt&޹ùpëÓðØôeŒ‚²råJ&L˜À«¯¾J«V­L"ü©4Áªª*^ýu^{í5 âÖã4’JÐÈ#lò<Á.Ç =Zt›MG‚äçh°Ÿ¸¾« ,pZ!ÑIB8Ï(U‚]@mÞaP¹¶¼û>¹Æ°º‹Ì·ÊîÝ;yå•">þx!ƒ_E~þ :wnI×®­ÈÊjaá)† 60nÜ8vïÞÛ#S€»ïø#wåçá¿¡)€>€ Y‹ˆ Uˆ¬æÕ85ûõé"Z$ @PŨÛYˆ³Öã¯E߆t áã“ô˜kÍÏSãØ8wÆÔA0Î¥&³¦& G7;7wMú÷D§³4ö€ŒÜ±>^ýïÙ¦+Üñ"Lû |·ÜZ!Ë2K—.åþûïçµ×^;åzžöE·kkkùæ›o¸ûî»Ù¸qã1޶i@W é§K?!ŽhÓiv :i4‡‚j"¹ Á©¤ &„_3€–€¨!¨¨Tª°}/Ú¦—¡t!øö€vô…EJJ.¿ü7üîwÓ¯_RR`ÓÆv²‰;wîdĈìÝ»7f¢î:ÿŠ_èHü IDATþ~dgàQݱž*ò:GºPؒƃ0—ôygHTê"[ü²“µ.Й€÷­FÁú]œ¥º>÷Ê·Áòû h)¨F¼ÍfcìØ±Lš4‰´´4S#ü_¡ª*Ìž=›—_~9nô£qé™tº5áé  …f4A«ŽíDL¡z-Ð ‚¬N°ØÀf$)q—FXÌ24h©!YU$AFHÓP]¹È-'¡\ƒVð”,ohJÜ¥eeå.ü'¢XŠÅr?ûYWœN6›ÕÔO"víÚÅ=÷Ü—=6}ü¹ØÌŸÈÄ…´®pÞ£ UCÑjƒU) òÎ;ï••Å_þò—S¦‡êiI„ªª²dÉ^zé%¾úê+êêêŽrtá<»nªÏi¤êƒbô$¨ˆÑ #B‚¸@t‚Õ. ¸…°8µÓ¤k’=„ÍÀn @@#˜bCȲl—yãѶŸÀþ…ªŒK†ååûyï½™lå÷¿ÿ#C†œOzz N§ÝÌC; (++ãùçŸçóÏ?Ùg³Ù¸¢w*wŸ[JºÛœ+?22σß<oŒ†²}†]•••¼üòË´oßžk¯½ö”¨>sÚa(búôéL:•ƒâcm &ÌâÔ‰ú<^Äó êý¦Ð(“(n`•À-A¢!Á [ºÖ°©Hî6»§Í‹ ©YNÔz ¡Ö¶/!u8ZFØ~9l› uñÍÐ^o+W~ÁþýEŒs cÇÞˆÃÑ '~¿Ÿwß}—wÞy'nÕ˜~ýúñÄ}Ãi³ñQs²Lüëxz†ßO…çÇ‚×Ø°üÀLœ8‘üü|ºwïná…,ËìØ±ƒI“&ñá‡%ÆÚ åN8ôtöQÅ‹m$ÀFMÐa$@Á¢ DØìaM0±AÔ¡®!¤)Hi Rj—»½½‹(ã9ð|B+ŠÍ†âLAI¹„PvoäïÞB=8üE1þCMS),ÜÅ”)±oß.î½÷n:uêˆ$IfjÅ ²˜,X°€‰'Ƥ ‚@Ïž=y÷ÝwùrW+:|3>²³cé @×ÓVÉ’¨íìÑÙZªÉ%⟳ —ý†ÏStδ€ÅNN›Èñ~ÅÁ'£¯ˆà­¨ Ù5À·ºqcXãwMð"AAÑÙyUDcÏ=ìƒ!#ÖŸ—Ǩo}4D÷2Žò;f×—ÆmÝ…a ÃܹðÆ9ì7_Þ2Íà3ØÑª‹a|dc.šª{ö 1æ~Ilq=~ePËŽÒ/Ú` »È¡ãU`ó ÷C…1Zy×®]Œ3†>ú¨©¶³I„ÇÐ-ZÄsÏ=ÇŠ+šIŒKüî„a’Ï‘¦’ÑkƒzBl$ÃPr€Õvú8 gƒ$5LMRd<VO›;€Ýé%ÑVC²¥’$± ‡àG–$«…f%âÀ/»ð;œø’-xSêÓn Pp.Ú®w lqÜD¿ßÇ›o¾Nqñ>î½÷~.¸à|\.§é3ü‰±mÛ6}ôQ**bK¦äåå1mÚ4²³³a—9W&~j†±Âϯ†Òb˜5jrbãÆ<ñÄLœ8ñ¤ÏœòDØØyýùçŸg×®]GÑÄÛ¢iý€öÄö]9]IPO„zi<ÿ`ƒV(ØÃ1N)l!õèȰ‘AHT±&„p¸}¸u$Y«H‘*IÊIê$ AÐÐDúT7µöDêR¨I÷ ¦y¦%̸-¥ lîû¦ƒûû(ŠÂÒ¥K8|øwÜq×\ók<žS@üD(++ãñÇgÇŽ1û²²²¸ë®»èß¿¿©•›8qp'ÂU7CÑNX<äÁÒ÷î»ïÒ¥K~ÿûßãtžœHþS’3:jkk™6mÓ§O›±QänV›Äé shåSAþcÌuß~»‰‰#ðqã76{Ûú³œÌ˜1ƒ… Æìs:Œ5Šk¯½‡ÃaN–‰‹YpËZîÞ@ÙŽï »ÊËË™>}:={ödÈ!'Eœ²D¸gϦL™Âœ9sâ:ûÄ—F¸|šv¦ɉN™ˆ&ÀFMÐшV$°Š·aF2ôhM›˜ cuqØ|¸D/n¡µ$RK •¸©Ã-ÔãÀO@°S'&àÕÜT¸R)MÎæ ±¤S#$RëðP›Öƒ`ɳ({»¢•¼c:‹ª†‹—ß{ï½ìÞ½‡1c~Ç“„$‰¸Ý\.'V«Y»ô¿…¢(ÌŸ?Ÿ×_úúØFÍm/½”Wïú 3ª+ˆÓ ºQ?Æœ9 ’M ’ÉÁ¦q&e deÓ8:~F$ˆJE0ôÔóá$“ˆoÌ'9©ÏŽø÷dÅÊŠa—/ü0F›C^¡Õ-“cø%=ÔÒ†H”¢]ÙyºTvë… ±E·£¢hýÉÆõµ*ˆÔ:=G“`†|Êp D£; J0:ýØ ‰ÿNü`*¡‡ZÃñ9Q¾Y€tÆ[ò»ÞSÜ UÕ]WkÁ¸†­ÄØ»QÁ˜whÒ;20ø -m½Ý Ô&N3¯§ú×Ïà?Xe÷;wîdÊ”)´k׎6mÚ˜Dðý÷ßóØcóÑGóãúAÄfë‚,÷GQr8½bâi€ú” 騡hI —iäÇ¨ÒÆ3B‚ *‚[nJ™p >\x¶z k‡ÉTá¡6\ÈX³ÔlTK)´t¦…p„2[&eŽL¦ej“…ZìAhó{äÍíѶ½¾mDwAõz½<ÿüߨ³çC†\MË–™tì˜Aûö™$'{Lÿá‰]»v1cÆ ŠŠŠböåååñÄ3Ïp}rrTaã¬Uý4Cõ“˜j((º±ÔÐ~Öp¼`ÇtŽY}ÆxM±ƚÛ Xûeô§ GñzùjÇ)³â}¯£blÑsAÐbç6Ú¸¦F9Ê\«qœ†Äɽ[Ó}ÂUlyô}Gê d¸téÒ¦®('ZœrD¸qãFyä-ZDü¢76 0MK懕?] ñh©:¡h ¡E0º£‰Ð­[Ep+.‹=ØD„NÂd覵¤RA:‡I¥ISÐ4M¨iá:Lªã©‰Gp´ð"·¨¬O$T ÉhêHd.쟵ÿ-£.Xð›6Ó¥Ëp.»¬II.ÝME»Müpþõ¯±|ùò˜}Lœ81Ü‹²®Úœ,'¢ÕBÎ5}©Þ²Ÿ½ÿú Å2áŒ3¸øâ‹2dÈÙI„š¦±qãF~øa>ûì³fHÐ ôGÓz¸Ï£4Âx õV, ‰F"ŒëBÔ*’CÆâaµ†°IAl±ãÇѰ95nÕ‹G©Ç£Öc †BHáD° v)ˆdUÜ*$@¹œF]m"u¾DêCç ´¼‹ÐJéBPýQ¦¼……k©¬ô’í¡sç$&ºúJM©&ŽåË—óÚk¯Å¤Y,nºé&†N9M&NØÓø «V­j&I>•°?°;gnÅx&Ñx¦Q= Ú@²€EŠŸž uÊ£`Ó°Ø$»ŒÍ “ ÄN isàÇ¡°ƒØ‚26¿‚¥FE¨ÔjÀ ’"Õ"YÀiàJò“’ZEfr)e‰™”¶Î¢LÊ¢,9oIKê[ß…oCêŽ7!Tõ}CÔÔlbÉ…ôt'~ˆ2ÈÌL!9ÙsJTœ8ÕQ\\Ì}÷Ý“/(ŠÝ/M§å-;ù8ñ*Iâ¢Ä†ctmͦëÏ‹¼°pýÉFDE³{¨¥/‘:­û¹ºtQäî­i±b0Þh¹‘¡ì¶ Žˆø½¸ØMÇÈÝ`±RÖטOæ :Øß+r‹5DJj¤²Q¢PÍ0–®q‹#Ö½ BÊ Ý"L!\CSèÛ,Û8¬q%L¡2Ju ‡5|Qu‹•(»¢/ª`©7Êy$j²«H6˜OCX ãh³gÕ1Í~õ¾Òð¸Ð`«ÜÕf»ÁwYÔ¦ Š—3‘uãº*ª¢³§úì ÏKtAŠ\W^ú÷$Û÷åcÂD’¨†î_<\Ï÷‹)5¶mZ¾|9/¼ð=ön÷‰){tJ0ʺuë¸ÿþXµje3G´."\)æL×¢ÉP¤y?aÃ&6šE…XlÚ4D›†hS±ÚBجA¬b«ÞìèQ `†°yelõ Ò!á P B „d­Åe ìª%%»Š,ëAr“ö±ß“CAnì)~”,ª"7J‹–øSï{&l}|EQ–•63kÖ?)(ø-\ÐÁƒ;àpرX,¦Vxx½^^z饸©ém< ýcZt²‡Œ ‹`ìÔ*Iª‘,ýFBô©„­„‚U•$•¬.è‚/Äó~ýXED”ŒÂ\´¨`× ×(Ø~E‹.¢Ç‚lKšŠák«Ä&ÐC j"Ô ,ÑãÆïr4bŒÞ¬®Ç–ZŒŸÐՙ׊l8§U” >\Q4zMEÐt×iÑŒ÷„¤…+ÈD~ Ãý# j¸v±^lXl#À¥WZørUÿ7õ°¡ÉÏçãý÷ßgÈ!Œ1â„”g<éD¸eË–M°9Ì.Ú¡âLÆb©Âbñ &¢ªéÄÏ!ŒÎ%Ô™K!(£·žZâlV Ñ¢"Z$‹ŒU +CáM a•e,É«b©Öàp„zDÑ@t×c Õâ+HµÆí©G´h¨ir‚‡˜h±£Úøåß![“·¼ˆV·+Ƭ]Rò-‹ ¨ê(:ujA»v-M¦;V­ZÅüùóc¢ª%IbÔ˜«é~‘ל$§,D~yGß,÷±uµ±^ôÞ½{yûí·éÛ·/-[þô²à¤&Ý0~üxV¬Xq¼ˆpíž3P÷äænáæ›3xöÙŸó«_I$&nÂX÷HÄM*è–ëB㉌¼)Dýmø_ûš…7¡!Ê/üWiˆúS5AÕ”†½ðu W‚·L£¢H¥|—Bý÷!´~ÜkëIßTAë½Åt-ßI¯Ð·tsl£s‹]´k³—Ì®µ$ ‚­ÿýÐ6Îl(Ô×ÇîÝ˨ªª Ù²&8tèsæÌ¡  Öûׯ_?þðÇÛ±ØÍBç&Nm¤eYõ@+RZZ£,EŸ|ò Ë–-;!×qR4BMÓ(..f„ |úé§qR$„¼”pÁìã1© 긦Iœº ö*¹¹ßóá‡%/¯ V«…Ñ£ɇ.â®»æSQñ³8¤'Ä·Y‡+…xªéŒ.áMDEj Dýÿ‚ª‚¢…óŠ‚ dX®¤V^%u"AE#¥D%µH!iw€´œJ¬mURÛV“‘u„"ËaÒRËIJ©¤8¡¥-2¶F0«%Ú‡‚Úâ¨û"ÄÖ­ÿaá èFZZ’))â-…eË–1wî\dÙhþ’<ì}âOÜ“æãVÃ/:®fžáØm-»á¿0’øUó³dŠÏïÐ4v&Ö“Ñ>’Ÿ–'nãB¾h'×À“‘óÕWÁ¦¥‘±+~6H'lRÚôˆÆðIz´ùNo¡cÃVÙj¡6=Ñ`ZkMļžD5¿`~ÄÜW/Óf®øFtí×\Æuf—#>ûEhe0sFûøBº„: ꨂ¥u«+Õà1<×^\3f0ªi€ù˜¦Ð,]Î'@w}áX #» ŸQB¶Á„»ÏÚÚZ–ÑY7.×Ò ã`EÕ¯½°‡Ô¨$Íìõ$#÷eÆžzTCMO…@H÷ÛÔÕÕ1aÂ.¿üòŸ¼]ÓI!ÂÇóÔSOñïÿ›P(ÔŒ&xaßà¦W$ÉKJJ ݺّ$ï¿P^ž€¢¸9Õ|‹’t˜_þò\z÷Î<ÄV+_°r7¬ÝghlOAAS§Ne„ Øl?]¡N„²,óâ‹/òæ›oÆ%A»=—`pšv|vaQô“Ÿ_ÍØ±ý¹ð $‰ÿüg5o¼±Šµk…2cék'÷Ð~,N)UÆž@LRÉHw²Xd§  ²Ý†U•©Ø›zߣ>­rGÌ=2mÚódeeqÝu×át:‘$3¿°³fÍâ›o¾‰yÝÚ£3Îß\à1 š8½Ð³Œê[K¡&já2gÎFŒÁ€Î"œ;w.ÿøÇ?ðzcùnw.×Å”—g£gŠ`BB £Fõâæ›‹Ý.ºÝ¦Mk‚Á;v|My¹ë”Ò 7+WnbäÈ+Œ&’šZ6m* —¿2°™žÕ¢6ME ko²þÛ¨Í)úÿTE@UETUBET¡±Þ‡Ðd ÕPM£S¯ÂwŽÖô¹þôÿùEˆ¢Hnn.]ºucÊ®ì™û:jÀ~„ý`q+$*u(–CØÝATÉ ]*®õ”uJçˆÔÅv'¡OŸ€jcI¶êêjž}öY’ùÅ/.ÃåršD2sæÌXÅ&1ÇÈ˰ôÊ3Fò™0qÀ"Âõ}áѯ6Uôýû÷3{ölÎ9ç~š‚ý'ŒEaÅŠLž<™ÊÊØçK*Nç…ƒmÑ´ã”h×.Èå—m"Awá¾ä’AÌž½žÕ«ÕŸá©EIçÿæÆ75ù Ë–­`ùòbTõœæU»è×Ô0É!7Ô ”ã‘ h h D(kŠ*6a”§°ASDG†‡Bè<ˆN=Î1„3»\.†ÿîV~ð.™µõp,°9d-58\~RS*Ý¢EÁâ b·ûì2ô6Ô·½ Å^‡úî“à‹ø4M£ `/½ôYY-8°ÿYßå^Q^y劋¾UApwíG}ß;ðîÊ ÍU‡­CÐ`&KÀhJmÃ>ú²>rþ‰PçHuš±’®lmgÕ•q~Á¦ˆf§ºúÉ>¿¡}!)!8w¯~•ºö…H6…Üvû æ=T>žˆŠUW3:ÎasD ®–iµ Üø¯ë­ °w§î|thgø€ØX¼¨5ºP” P2øød,좓Áý=j1Ö&­ŠjWNªa\G‚á3•(QÝ’2ƒÙ1™Ø6hÖ(Ógû ª€‡Zƒ©³[ Ÿ¹6n!m ¾ÊBÚâ×åGÒÖO™ÆÒ¢|„jY'Þ%W$Å&¸'ßÉê«ê é.= ²téR®¾új.¾øâŸdA|Bˆ°¦¦†åË—óá‡Ò²eKÊËË9|øp“£_åA9Ò‘cì›A($P_ï‹yÝçóÑlß“ ‘ââî\}õD†ϧW¯|ùåf–,)¤¦¦gÓ#Ÿ eãÖH„¡†-ˆq nzQCJÈÞ¤†¬+Ñ‚ŒD¨! KÁ‚*I¨ºJ5’CCS|È¡ØÉ¬¯­ÅnWÑ YÂ6~!¨a±)!\š—¡œkõv^§ƒJgGÒR±·HB¹ùB•U¨Ÿ¾Ðäd²Ûí´nÝ·ÛÁ;ïÌAUe ¸«Õ†(žÍ}ׯ_ÏG}D ˆ²†$ðû;îæùÔ\eŸj“bjSJQÏV´ÏOlbPG:µ$)‚àÑê°ë¦†"ÍšŒAô†4Œ'²q,HF¿•‚×GèÐ9ùœøpë“UEªWõ 5ÆÏ éÄ‚$¯1ŽÈ‰)ÁkžŠößé C‹*6žªc£ƒcŽF„Ñ>Çxy‡±>BÅðš £Ï/ÚŸçÄgø}ø>C‚_iÜZ²ÑI›£›ÑP×o€…_ß`çïñ]»vñÞ{ïѧORSSOO"œ;w.@€Ûn»ŒŒ –/_Μ9sXºt)²¬b±ô'êù?™.‹Šì|òÉçtïÞ—ËÕD‚K–,g÷n M;õ´ M³S\܃™3c± z4A£?Pïl”& RH …}„²–,"Q›æÐ"rÀ‚´²Ú 6‚š€N©b#(Z‘% Õ.¢5´sÊHW7­bÛæ ´ÌÌj*Š[UUÅçïÿ×µöáj¶t2@Ë3%B)BN ¿ÝFH²  "V1„Sòá¶yÑ,ˆWýY)ÚºY8¬"¿ûÝï9r$]ºt¡  €õë7P^^Áˆ#p:X,gWq:æÏŸÏž={böõïߟK† ãù}¦‰ÍÄé É#o²ñåâ÷W( ,`Ô¨Q\xá…?úBø''Âââb y衇šÊåää䜜ÌÖ­[9|8YîCl©óãƒ×›ÄìÙÛ §qõÕ—`±X˜7o ï¿¿‹ššœºi$d¹aåXÐ`ôO#l C¥5íèDPZ@#´l„DA‹ &Á6B‚ ÙjAµ‹àÍ ŽT8¿e óß{–â¢Bú_8œƒÅE¬^<ŸüòÏhפd°´©hY gHøS¬ø]6ü6;!QB…&"t~\v/r‚-;Ðew"W «û÷ß?;w›ðÚ´¡W¯^Lš4™NºÒµkdz.xfÛ¶m|üñÇ1Éóv»;î¸Ãà0aâ´…y=, »ÊÊ[ÿ´ÇƒòÆo0xð`,–—º~r"œ7o—]v™¡fœ$IôîÝ› .Î{ï) !ÿTÕÆîÝ™L›vwßý¢¨QR’€ßßU=jV 6üU%-ἿFâk$C_ÃÖ¨úDT¿)`#(ÚZô•F ÙbE±K¨ªˆ– @’FûÖ2£­«Ùºþ;–}1ƒj¿Nèz®êRMnn®aVRRRèÝûg|ñÅW´m›‹ÍùMÏtBôz½,X°€­[·Æì …®à8¥ðXäu¿è0ÔñQqE9¿|8 }ììÂu F9ùD|‚Ž`0\a(b¿ƒs#Ã4ܬ X•ì@{Ýñ é‚ Ìœ­£êc:ñ“«Ë´T+´ø® I%èÓ#>ØT¨“ `ðžY5èReŽÛ‹ÊJ±Gå_h`¸îVl:{«ŠÈAPCàé†s”Gå¦L›5%éhº:ž‚ÇoXË'¥Tc“"fä¶X3d’©2˜BÛVDÔÇc” †Ëv‰Ñ$ϰån‚ºú¿ßÑ“z]ÍÔtŽàÕ庩‹I+)JÈ6¤»´óÄŠ˜_C¢G²…¡WÁ—Kd w)1ÖÅ{üüüÓ‡:ÄüùóéÖ­[Ì>YVSQ”ÀqGˆ6oj´âó¥QPvˆ?=Ê ³N $Ô U¬á}ª5ÜuTQÃþ@_ƒÏIØoÒÐ÷µ"š]Dlø­êqSGBÓV+x¨–êpi^löÎD?ÖŒVQ&)Yå‚65 ðÖ )Š]DuYñ%ˆ( ²Ç‚ì±H´SçrQgwQ+º8,dp˜tŽÐ‚J-…j5‰Z̓7䯲#‡,hªR»â·îFUµ¨ßV£´ô _~¹–üü¾äåµ%9ÙÍf?ãµÃ’’Þ~ûí8…'Z¢ª7S\œSwBC`ƒ„ã—R±è¸•`Œ?N/´lš“l® ‘4H¶$¼E> ¦ hh`+c¯I ’¢"ÕªFÒÒ—æ_ÈøÅ$i©Ç75ÍpÙ±}c{ê ~aÔX3úC!šq爲bóyƒ?¤6iôuÛÙH„ Dh“C†¹pSUw9ñ|„N|Q¹ŽZŒ%.$Z ~G-ª>ic^ß6†Œ°s`Ÿ×8ã÷ûyá…xõÕWT­ð'sœù|>^ýuÖ­[Ç¢¥ IDAT¬Y³¨©©Ñ‘ Ìºu›X»¶Eq˜æ€c’aTpLÃw¯Ö j*¨ZC¼^éÖ7a-P'@mxÓê%d¿•€ìÀ«¹ dX+$P#z¨¶x¨²%Rëqáoa#ÔJDm jGP»€’r' ÞöjsÝTe&RžšB™§¥Î Z39(dSJ&‡È œ4*i BÙC]È?è$´¢‚ÎN,X½ŸÂ}ûcUï¼3‡•+ÿìY°fÍN¬ˆ 9ñÉ'ŸPXXçÑôáÌ/DoâlƒÃ)pÅod¶Šu™ýç?ÿ‰k9å4BMÓX½z5o½õ555,Z´ˆÇœ_üâ´jÕŠ… —1wî&LäÌm©ôcj„"ÆœˆF2´ÐªÉáã ‚ø…°Ù¨ Ú 7êõP' ¹Ed‡ÈN½æ¢6¡Sða.ÔmI ÊáŠ3‚®$![$6+>›ŸäÂ+:©ÝÔJjÄDªE5B"¤RE U$S¡¥R­&Q#'RJ r ­¨AÄ$v)2aêûüfDùù=غu+óæÍcëÖ­>úèßÔÕ¥âpØHHpâpØÏØÎö^¯7nÞ dÃþš0qæ¡g+½~žDñÞŠ˜Eñ|@=~´”ªŸ„…ÊÊÊxýõ×Ù¹sgÓxƌ̛7§ûöC]]ª© “ãùC fÒ ‘Áˆ†¨ aa@ 'MÕ7¡­á¯HÕ."Û­\¼7uš‡ZÑ‹KôQ%x± A$!¬eÊ6 AÉJÀnåÿÙ{óh»ª:ß÷³ºÝï}ÎÉ99ÉIß' „&€   * ZU*W-ë–×[¾ûª,Gyë{ßs\G•UWê^ˆÍ¸Z– Š" Ò †Ð&!}Cú¾;99ÝîW3ß»›s®}Ò@IØ¿1VNæ^{¯~ÍßïûýE·2ÿ@E+BÁŠ‘·ãä* I†È0Dºú7ÀhgP´3(ÚôÚ*e(”rQ¼l‘³ o@ʱ<¾¥›—_†nû íÝÅÑ£½õ³}}»X¶ìI>ò‘K)•ÜÓæZ?í™gžaëÖ­¡Ï-k ¾? jñ³| ¶6Ô˜ q6͸@òRª·£KFò+¦fûëívoöBc½é‚B‹—Im˜'µ#(1BÿbÙMfV56.Å Òþ"C.m«³~£X*}! BÒ~8íNVù´…êþCT=&¨Û”-‘-©å…Lƒd2§\G9fèc)T¡ÄÒŽ•ÕðÍp_;Bªõ$<ã¸uÇ]Å["¢K¸š>iÞPwX֮ŠTþ˰ê&wC"-Q<¦o¦kôá1ŠJŒÐÅ •›"£|gzr?ø Wé ÙN±æOÀÕÿ±§~ò²òŽ ^xáþìÏþ¬žPwÖa<ñÄüêW¿ªÇ4„ vî<,¤Rù²åÎ9þLД@Р'ti”cª9ØF[ðjE«Uëê×l -ϱ1" Œ¸ÁpÂ%)áD\lË­ök6e#Ê‘!eåH9Q}hEE‰¦dF)šQŠFŒ¼'O‚< †I“%I–4ä Úô3 û²¥4ÙlŠb.?A³& à.™xÁDeÿ„CÇBöŸAÈohÀ¡C/²cÇ&®»î‚óöIæG?ú…‚ÊM&“ÜtÓ§yì±¶FÏØJ"Jàš Ù¹ÖA«/¿§Õô”ƒ‹%•1*Ê8U/C㶨ë#@‡ÚÒ÷…¡“Nžp|++ÔÎYªªžiîY,ýÿ¢Éë†v’™Z¼º¦Ë+·ëÔAIO¨]¯ïY¨E„Íë†k6\ ¤R0§a¿ºÞÉ{ bÄ‚¢r1cÑmƒ@)üÛì¦z?|,%ž:íÊ..¸¡›8¢xW­ZÅsÏ=Ç´iÓNK¬ð´áÁƒ¹çž{šèˆÚÀû¨ÔlàÈ hHogM-[všªÕ ö–í Ê) ìÊf,T ŒV\¥Â1ðâAÂÄO›D(£„c•qª@ècQ&BÒH'OÜ*b‹šÐnËF„ ,«¦WÄ%Wk’<ɺ+tØMS(&(çb¸ƒQ‚A§ ‚ ²F%®Y¬¾¤A œ‚õ xÏ*o¥ÿþïsÇ×3~üùé\¶l6l@hSÞ &ðÑÞÎcµjUµìü·kÿ|[—Å-5ž÷¡¡!žþy>ö±1~üø³ ƒ àûßÿ>›7on²¶˜šôPËš¡<4•ÁPB‹F­¥b£-Lð­ ¥B˜`™!?ÃhÌ£ lƒ nU–”M2Y£„e¹˜f€gX”Œ(#NœQ³H”RuaÔµI]"Uþa”"1J"J8y‘  *3Ä‚H0\N“-§È–’”r1İM0h#ú-0*j Y@X¦"'&‚õðW‚8¢\©M›ÖòÔSO0cÆL³R¥â|É-•JüñäÀ¡uŸüä';v,p õº´ì¼·éWv2ù’¶½Ò§|þâ‹/²cÇÆ÷¶ßûÓ „¯¿þ:=ôPèsËŠ‰Ì§PhUknRª€'ƒa™páAŸ Às hW÷–Ù¨`o‚ˆTܦAÌÄõ"ä½$F |“’¥`'¶ÒÄŒ VʲT€PÔ°R×¾D”²ˆP ¢”‚(E?ÞøëÇ(ã q¼b” ç ú-D¿YÁÁªË+W‚†ÆÀ5×á¿ùÍo¸ôÒËX¸ðR©8¶í`šç>îÙ³‡•+WÖ㢒c”Ÿÿü&~8Lj|VÈUª»F‹y-?¢¤qµ;âb˜Ò6 u›ºÂú¦9’Š+\ÄQÝÀz•£vm\î¨×Á4T—p¥ìR£]"¢ìlB eìl›®lcu‘¢WºŸñÆYx¯ÿ¤B«Zoo/K—.åÊ+¯ÄqÞWü´áàà ÷Ýw»w‡už¢Ñ)D"—Q(´*fŸúÌ0\¦Ð…€R/ÏäUh^ ŠñŠi`TK6U{ £ÑS”Ë(§p}‡¢—`8ž!ˈZ¥ú¼Ï4‚úþL<ì:ºCÙPö"”Ý®Á+W7ÁËÛx‘5 VAp ÚÁÕf…¹*–ª@èG€¯/€”LQ‰¬ä{ßû7¾üå$_ÛdÍ `gP£e-;+Íêȸò"†žx `X™„=üðÃï> !X¿~=¿ÿýï›ÌS4”/Z@øöÀ°™TÂ&®Q…„_‚ e§âß2lˆØ•¿µÔûª2Ò¤DÂ$ˆZøv€çø–P¢VÔ7°|“À3®‰([.cɬûóÐå¤`VÂlm6(*3YQÕÖÏ©XlB„¬\ù,ƒƒ_¥’•|nÛòåËÙ¶m[“5 €ñ­×¡eï=3 RX€ÓÓ©!ÀóÏ?ÏáÇ3æ­ç ¼m ÌçóÜwß}>|X;n¸!º[ xZl$à³Õ`tA)E!bàG¡/n DJäí ® ý Ú+@(Ò&ARàEfD`DD…‘\K\5@£NžQ!û¢\©(ª*päi$Âäi¸As æ…„U0¬ŸTÛË•ç*›íç—¿ü)W]u1Bˆs:{ô¡‡ *3=pûG`^•±žd:Eß»w/6lxçÐ÷}|ðA<rxÞDz{Çàûç†G4:̘1ÃÄb>ûö¥(2ÁÙXý»™‹Ô L²—zXV™öö£Œgp°“¾c3)ç¦U²J £‚t§¢!™0*c@Ìhˆw×[Û•ž´*W*kK KÒL°LÕ%ZAùKe EuV89P&„`Ë–Í<òÈb:;»éîn;§€°¿¿Ÿ_|‘ Pß›öövnûóKX;v}ý³üPŠƒ;§4¾Ô‡šL;„¢?P˜då”k”ítlaÔäþz»DŒIìUÜVÛ¥PŽ$;¥d¤"1öHŒúQv3Yqɱ1—)RáÝEæ ©P SáBV.Šr‹)ä`£ô8ªô>GFí­°@)‰k„÷zEýQ‰äÑ@)`\&¢´õ¡ ¬05Š6Ʊ“E £!¹‹æ1%a„²²2Ñg¯U¼`?ãÕz„Ñ’²¶YÃÒz}{½æhEt“®ê.¦(1ÁíL'[¿[?¸nªzŽ“1€ê•8p`3‡Ï¹òLo¼ñ}}}¡Ïo¹åŒ–P}ËZV±ä(˜v9¬Q“4×­[ÇÁƒß9 äµ×^ãØ±c¡u‰ÄX„ØAø\x¡É'?YqÇüæ7ËØ¸1N©ÔÃÙX}¢½½O}êKuˆD®¾z!_¼‚gŸ-g+Ë.R£éPÊqú¹ùæ ™3g¦òËÎÎNþôO¯å7ÖS*9Ð Šà&ÁOVòÓMQÑ×2E£Š…œ=*Ï åYa ÙõPŸŠB„‚êLPèÃRÅ!—\ÊÂ…Eî¼ó2vî<Äᅵ;’ÄãC¸n¥Ò!e Ï÷³eË:|ÿösæÝÎçó¼ùæ›ärjî¾mÛÜxãìnu-kYÅ☱(„;vìàÀ,X°à”äÞîØ±C‰e†Agg'×]w=ŸýìÝ>ÜËÆùë¿þ*ãÆà3Ÿù0ßúÖüüç”Jgݵµ,Ÿt:ú<[ƹâfkîJ1 Ÿd2Šm‡gµ™LÓ¦©¢TàUªž ZE7Ó®Ì õÅÔR±1*@'g’ú¢êÕU *îPš¹C+©¤™Ì þþï§òÅ/ÞA{{ß÷ùâoá¿þ×ÿ—ÿüŸÿ’}ûöñðÃñÊ+/“Ífë‹_|ŽRéoΙw{ÿþýìÚµ+Triú\‹ÁqŸÅd4_¤Q„ôhº‹ÕsÔÛýÙNÞè¸ÉO ’؆“)1ú}jÑÛ6£W‰á¥“åR¥][Ñ}"Ãfæ4Ún†µó,˜¸o&ÕÞE SE#EÌ ç—$§ÕC ÂñºpH0”ÕP¨‰*8ç Öv —Ö~0V+viûÔá(jaÞ¸Ïè|cæ^6"ŒŽ÷*×M80IéJÞú>2^µàcõÚ´emÑ”™Uâ{)²Êµ‹“WÚƒp+ê x˜´âÆmcPië®ò~ÚWç>&*1ÂíLWb„[†g1äe”}–^kS\¡â¡^‹Oj×åÕ‘Ø=o‘tbG'ÇžÏô7ºÅb‘µk+qÂhôÔò:NY«ÉóÏf³üìgOQ(tJnÉË}U{°Âh²àçÀ+@¹¥”](yPò«Kõÿe\<ü2¥Ê"jÌz™DX±„aeþü€[o½ŠÑ£;q‡X,ÆÜ¹p×]·“LFùó?ÿ<øàÏùð‡?¬Œ·nÝÄ–-ož3÷gß¾}Mëç^Åp*×?^¯öX f‰Ø¥úb;n% D^´Ì_ÓöÕÅ ´!T£šÈHK¹*¿^[jÕFJA”’Å+;êâI‹ïÔãFz<)<ˆ“LÊÊqÕÕM³LCZj¹cÇ[޳ÿÚbŠ@]8þbÔYu¢y ÑJˆß0„ºpê‹þ‰‡­\§÷­‰ç¯}ª‹+¼ÀV–À5e£¾„®m¬ |µ% ´53îcÅ|œÉ]ØSÂ*K+W¾¢ó Ìçó<ùä“õoÃ0˜2e úЇH§ÓAÀ¡C‡˜2eJè·\0“ž£š uv™çµñØc»øÞ÷þ5kÖ±{÷zè7üèGÏsøp‚3PÃø¶[¶8ü¯ÿõÏ>û<{÷î套^å;ßù¯¿îSIu% ’Áphd ôŠà–¡TB ˸¾„nÃ* òM@°XdËbÖ¬cÇŽÍüùóë1êÑ£Gó©O}ŠD¢1Bðøã¿;7æðB°oß¾¦µ/¼4†åв–µLöà=y\èóÕ«×P.Ÿ:žrïÞ××Ç’%K”Ï:;;ëU‚MÓdìØ±ìÚµ‹iÓ¦)ßÛ´i+Šº$×ÙÕYlÛ6†o}k5¿þõ2‹µk =šÄóÒçÅÃS*å—¿ìç•W~Å´iq*³}{@6;‰FF‹<:¯÷dù¶(§²µôÑ_T¦l@¸†0ÔÇõµ¬ÐF‚ŒïÖ-ƒ:t„Ñ£U0\»v-³gÏ®·gÏžM,Sbl/¼ðÇŽ££cÔY]£°P(°mÛ6òù¼òy2m2y–ƒeµeZÖ2e×Ý5y|eŠ/e‡ïÙ³—ÒÕ5úÌáÒ¥KPF³Û·ogùòåLš4 Ó4™;w.O>ù$3f̨VÒ†ñÛß.áàÁ8œ¥pA£¿ ¯½æa‚ Èp~)ý›”ËlÝê±}{€I„¨e¹ÈŠ4²(Ð@±Lƒ”/¡ƒÌW ë¯)ÁÂ&@(b…ˆ°vmž§žZÆØ±cë1ÂÝ»w³víZþäOþßx≧R `‡æ©§sà 7ÒÕÕF4zvº·‡‡‡Y¿~}èóYS.‹â‚ƒÙìæ ÖÔ×ív&’N6$æ%Æ’ŸÕˆ–ùXä‚åÇ1\F+ªœ•8“+q0² 1Êvq”⮃´±Æà¶<#X&iIöò$< ,”Úíà]$K°™D$NGxŠ^jÅUuÔ~ã«us£ 1+t× ¤´é€=CóÉmƒ°Žy§ÖÖ8F¢ËŲÆM> \·q<«&ÓÙ®l27OÍGp͈ª-jÏYƒ ™!#,†b„–ˆÔµG},ÅM¡¬´uêƒ#ÜËD…¹µ8“\Ð8¯ìÆQxÚ;7ÉP2ÌÇݰÛn À/06“ʬMrö5JR{w¥†e–Îz“G3¹@òìy¼þúëÌŸ?ÿÌaÅÝôxèó£G‡xôÑç=º‡¹sçÐÞÞŽ6Ÿÿü׸ñƃßüæ%)kôl6!œs.õþTaŠ]43Ô«\Ô€*¢ Tö^C1Âvd>…þWfÝ{ Mæü<ýôjî¼ójvíÚÏ믿ÄW¿úr¹¹\ž•+×ò«_½„ç©A6;Ì/~ñA0Ž›ožOOÏÙ„žçÑ××G©T"ràÀ¦@xÁ,ÓîãµN¿É ¯t1£HÄit6¶4÷q±µŽÑ$8%Þ Þö»RY¤>µE• Ñmò¶©ÿ?Ö¨j°Fšotþ•™ú6Jõ 6+P{ÜŽP-ÖkjAc"Ôë×ÞŽ¸ê \Û©j&j1àZÜQÞljø‹ú><ìãnCBG{>4©ppE£¸¢d†Gºvʫķ뀞WŠ5gTžó¶j¬`ÚéιõZ.[¶ŒO~ò“ \×¥½½¶¶¶Ó„}}}¬X±¢É‹ÝÆ¿ÿ»Ïoü+øÀtžzê©“–}KuØä¦öðFG…‡Õ‘búáÆ¹%’y¦¥w4Úä™!Å¡\%&d×pŽæ®ó±ÈIÂŽ%¢ôÓàüú†ò ^X³U9¬ZíäúI pöÌ´ )C’<IØÓÆ—'ôµǘØhvàRqÇ„qR¸Ít 9Mëá.R·‡´= Ð$9Uéºf½¤A…QTë€ å† ª‡ÍŒÈ6鲘ÓvbhÞ—!Ô©¿‡­8:£Zü.…Ê+ŒSPÚê{[±²vbzÌPw­º8Šë¼N…wZi7.Ž ˆIþï¶…{0µç}ª³Kò+_`oTâÄWðI© äÅÛ6’*4žû€‡QlôGÏRb£Y§:Þ@t``€Õ«W³aÃf̘Á׿þu…nuÒ@844ÄêÕ«›Œd#U lÙù5+¤ øøÚbk@hp|רh†zÌÐ×@ЗÀðDÕç¦KQº%<ï0AðîÔ+—Ë<øàƒ§‚™.‡Ì¸8E³öeÃQ&éf(EnkÌ>¹S“×›MâN:P­Ò–VUC¸Ṵ́~ƒ°³U@Ñã\z»éí•K– imUBs˜Qí Q #¨9MÆö:ðÑd\׸0ØÂÓzŲ„QM@3¦µK”š×g¬’¯•~íN&F¨oß?ddŒ ¥­Äˆµç£Æy¬ßî¸zæä”xiŠaåZeR€°£<@ª$ ಠ…¹¨ ¬¡î®Ë?üÃ?pË-·ð¾÷½Oy,NÊvìØÁÑ£G›¬ƒ"Þ²sç•ãwº.èÉ,:WP®5X[Ü& x2 X›‚ŒnF½x^ö]¹¢ëÖ­ã8eðt‡E{w+´Ð²–ϦwW€ðTlxx˜oûÛŠ®ïIobÛ¶m#áÄÖÝxO¢žäÒŒò0’h¶v%íû%ñ@ÙêkÇr"s€î&@xßç0ŸÏóío»I©2°, Ë²Ž „£í֣ز–ÇftWjœŠAÀâÅ‹yôÑGëÂ0'õ¦ !Z@øžÄšH/8Xs•ÊÚTrµ ýÿ#ÖgŸúg' ‚‡TÅC¡a…ÂBˆw´Zý/ùKž{î¹Ðç]]]üÝßýúЇxàøþ÷¿¯hŒZ–…9f2WÔ¯â¨d?ýS1‚WâwEbt"é_Qã7¨®ÔÊQÝ¥–GªÉpÕÛ†…eI´€„‰Tž°2®‘ÂNF"Àº²áÖŠÙ9&±Gš¿gIK| ?œXÞ²D¦S‚ ²Ê»M É’š6H­•G±»Écƒv²ùM^ ‰&bØß'•³<¦OÙ.]W“a­.ŸN§èÕ<CdBnj¹mã)®P‡²V4‰*GTÕ•iMEbÊ/ÍUZ$F íÓÅ©n£’OÐA¿²ý‰ìUž§NúB.á©ìT¾3‡ÍŠkô²á5$‚†ï3¾µ¤ÄcC3ÂËÀŽ Ðt&MšÄûoÿE‹ñw÷w<ù¤*Ð}ìØ1~úÓŸrÅW0þü“¶nÝÒp‹F“”ËcÎsÎÝ{åÞÀÔ@J/ŒÖãèäú‘@ðxŸÊÃeQaCÇ‘ Bx¬[·†}èæSã};¶dÉ’Éß4Mî¼óNþËù/8ŽÃw¿û]–.]ʆ €‹1iÚ,òF£Çš%rÑy½¤bJçêc…¸lzL0WMžCù¿2Ž0 ÇßdPJ€‘–âX¦¯èQcH–„#K݇a€“ÐÖ'5 Lh@ע¶½ Nu½)1¡@€©pá…+•"ÅòµŽPVÚzâJ³x¯Ñ”„Ùì^Õã Ç„eó4ðÕoi`§ <ƒi†C@¨ $É)ÏD"(ðׯ(j ç¨]M¢ ¦M€•QÞŸ¿ø‹¿àK_úßûÞ÷¸îºëعs§2¹Û¸q#Û¶móù<;wîäÍ7ß$›Í200ÀòåËCß5jGFpÝ …ï @ h^ø×$œiÊ €°à5[NÕRÕÞXíhž~úi&MªTSïèè`Μ9L™2Ç9sq¸h4š:ŽSÁJÇnðWõW|å+_©Ï c±S¦LnÒ·¬e-ÓmöTGÅg?ûÙz{ìØ±|á _à¿ÿ÷ÿ®Žl»^ÍÞɳyóf¶mÛF6›Å4M†‡‡CÐÑ1žþ~×mM ß[€(×=4•Qb!¬2£!ð½U¤:=È Ôî^~ùe6mÚD¹\¦££ƒ3fpÑEqÇwpà 7œ‘+‰DB@hF]v°fW^y%===uÑíX,ÆäÉ“9ÄŽÖcײ–§¨íK/½´>è­yaÆŒ ‡LlÛ®Çé \»v-_ûÚ×8|øp=ˆx†sš¬o2—·YRÙ)û ê1ÁS–‰h@g„tbuÓ?Ó íêàNÈqCÇ,[†!ÛTîgƒÊz¨Ä •aS8˜fY»–B5Ø*z1‹iï³±¬¾ÝÝÝÜrË-'|ç ¦¨¡ P*•øÙÏ~ÆòåËO R©4‰D‹?ز‘b{:íâtÄÿNÖRœ¬¼Ÿçyüþ÷¿gñâÅxÞéÐ,Z–Åܹs™1£2œ={ö;šÝÚ²–Ë–é0é쮀þo¾‘L&}B/Œ>#4V¯^̓>ØDGtdëèE2™jÝ…Ž|'ZÎ$¦ ûØF¶ýû÷óƒü€C‡Þ¹i$ÒÔ5ÚÌM3{ölæÎ[ÿËZÖ²“}Ï`âT Ûo¼ŽX<~Rïœââ‘GaݺuMwòùÏžŸüä'¡Ï»ººI§Û8.É£eï!0<›¬ ÕŸVuÃ$“Ü|óÍüö·¿ ­{ñÅùíoËW¿úÕ3>#löRvvvr饗òôÓO3{öl²»ÛØñÚ+œ5¤må!8ÔY#&°Æ4\NfwÀŽÛ¿EòÌ»QÙg‚¼Â=lÆ5%ÅLÅÝZù$©…G›Ô8¸ŒgãzPRêòEƒ2íƒRª¼×ä9Šã”ªôG]/l(Ž—dà “£é.u›šŽAJ¨b £lµm¸Ú#®×°Pål-õ S0f”ÚOfTNvž„´”x­¯¬Ï’R\ŸYR o*õ#eÓõNõ¡î:oc@quŽc¿¢{!IHrh=Þ!¢¢ñl'†]lQà ¸’×1Òï«%­£FÚr¨n芫;fi3L¦N :fpáEc°›UŒ„õd™R©ÄÁƒq]7Ôi|ÿûßç£ý('NäþᔚÎÎѤә¶ì,´6t²˜išÜÿýÜyçÜsÏ=üÓ?ý…B£.—ËìÚµë´ÅH@(ïW>¾n¸ÿøÇ\tÑE¬,Úä¦ä^ vJ?v+¨¦Ö¬)ÚÕV‹¬’\Sé¯ýwL×'•Û•:{ž‚ŽRóЫ’¬Û’Eµ£”HHi„2Ž+õrÍ<Ó:WѦ’,a»º>úß0(DF探:2F›€±ŒµÚÕò8°¬sAmG=WÛd9tÝePrð´¶«ŸÎ ÕkIVÓµO•›(£HL:±´® *ú‰RLW`•µÁM5`Hº‚öhE‘1ÕŒiÄc0c–A,f2yj8Vz<×hÆdš¦I$v#Í;—… ’Éd¸é¦›˜0a‚òÒvtt'Z}nËÎB‹U‘¡ñ’O›6[o½•T*Å5×\£<Ïõ_ÅbgGrÓÌ›7K.¹„‰[jM-kÙÉZĹó .½Â cMð„3‘€P~§NÊ‚ êÅC‰$ÝݵŒÑ–µìl³ZmFæê-·ÜB*•jú|Ÿ) l#„ælµýýë_?íÇѲ–ÏfZpùÕ&…<#&™0FhšfSu ×uëŠù===\rÉ%<ýôÓ”J%Òé4ÝÝcðZ¬‰–µÖAMñÆ0ÞÿþëêãºnSžìé–_;•aÍ.¹ä’ê—@ ÏU\£r»ÕU:˜'µµ<6â‰yØŠ»ÍÆS¸†1Š ÏÏB•H«P6†•v§t6.=’°ƒË4)FhùìSRu{V~¤È¶ùŽÉ`wÃÅëýÑ¥ÝëtÖÛ¦¢Éj HKîZB.ã £ð;Ç÷«´”.ÓG[¨”Ž&}³îÚ4 Bñ:¹] ®¸>Ò¥¸>к¿G4QÕ^F«Û,Æ•v{t@-£„_u}Õ7j@quO8@ÆkÜÿèÆfV*«Õ èzÕÕYâø)Ô˜n …ýžtžA¦ê2·Ü ”0~RÉ2¦i6íÊårC™Û¶¹êª«˜4i[·n%“ÉÐÓ3޽{[ÝmËÎV몿À±ØFšXŸ¹®Û”*ÇÏ8 !šÆC ÆÊZ»Rx¦ÒAÈ€Õl“fu¶ÜAWHøe¥-Çøl\(m<Úµd½-sM!t%¼0ë%ªa1(wØ ˜g%ò°à 0’ÐÕ@(ü8"žmÕCÄU,3tà 8þyÍ|â¸mÝôÚ%¢ –ˆ†€°¤;+"Ûƒ)Q„Py„zCSÊîvp•PÒ-’r¥?†š2r„6y‰GŠE»^)íYÔßX®YÙ,h¢—;BŒPáŽäÕGÍsæÌaâĉ8ŽC&“ ÉD~ó±¬a熑?;ìÓ¬gî:Í.É‘Ü4'£ÚÔ²–µì4¢É Þ¹]£år™ ê%˜–-[Æu×]Çœ9sسg/ì'"gä  £È˜1û¸òʉL™Òë¯îbÍš^ … ͇ºç¬¹Œ½‹+®˜ÀŒ=¼ñÆ^V¬8B>?é<;OQ£vrùåã˜3gk×îgùò O>Cçéã}ﻌ+¯¼”Çáµ×žçâ‹{èèèÀó¼w‡††By à N·z¦–µì2Ã0”ü€ú ¹X¬»LmÃ0Ž;#ìïïçw¿ûW^y%·Þz+¶m³uëVž{î8@(˜0a;÷Üó9.¿|mmiöí;ÈÏ~ö÷ß¿‘|~òysƒ:;7s⦅aÑ¢Kiooãðá£üâOòï¬ —›~Þœg:½‰ï|ç.®»îJFj§··Çûßüæ d³³Nûþ‰½üÕ_]Äç>÷u&L˜ÀÐÐ06làÇ?þ1_ûÚ×Þ±áÀÀ@h?†aÐÙÙyÂßf¦÷sÁüˆ|9ÁÑᆨ¦?àP|Sz¹Sf6öM–è™ÐàðÅÌã8 ì#E–Ñ4´CcCô9=ÞÁU$ÓtרƒG—´='ðéÉ5ør†/ˆ÷•åW]‰ Ó o¼Úa¹F„Þhƒèš‡¤Ø—‡­ÄÂ|,úè”va(5Mú%¾E%Fx@žª7Q¼u¦ÈŒo\Cbc4×›–#•«*\CZ0TçôõÑ©¸²{­¸F3F‘Ü;À¸ÐqïR3£óÛAq…ª9<¥Œa5nÂ67e”’"±fô ;ëÖ ê²nEÕd­<4ªë³M w¢*`ÇQµ1QC ÔAŒýÅ4MF §“æóyòù|cF8RŒ0Ö­[GOOW_}u=Æ2jÔ(†††yóÍ?âû§·Š¶aôqûísøÄ'n«§¶¶··s÷ÝK—îâµ×òqîÓ6 ã·Ü2…O}êcÊyþ‡ÿðq–,Ù‹/f"uœç7Ü0ž?ýÓ×g\ííí|îsiž}v-Ï=7ŒéÓ¸¿<óç'¹ûîÛ™;wN}ãÇcÓ¦lÞ¼ù‹;v¬é~F}ÂßFÒeÚÓÄ3ðp3j‡ _¶(0Z*îuI%K †â”:y1ŠŠf„²Ó«á| uÞ #|2nVv `È\GCí´„¥vµ3/¥_ –‰p”.å¶žSÇÆ.EHß4‡ Rz;k¥4MV?¤±j…ªù¢€qAë›%.)ñ;¢ ‰)çQ ¦l#O"´Íœ«ž‡;ë´Êë}ÔãV±]åW•c ƒà0¤R5 44 L¢ÆW]mPájß/jÛó›Ï»ººBŸçr¹:ž0F¸~ýz.»ì2% Ü0 .¼ð2ƒ pOóhþûØRU‹ŠM˜ÐÃÕWOÇq œðñ_:Ïîî.®¿~.‘ÈùŹýökBÏX{{7ß| ÑèðiÝŸã¸úêéL˜Ð£|nYW\qkÖ¬yÇb„ÇŽk:#löR¶¬e-;3fšfS/LGŸ3f ûöí ­ïíí¥XÆéñ¸n‚M›¶…>β{w¾ïœ7Çuclܸ½Ét½Àއñ¼óã<=/ƦM»´l®R©Ì–-ûñ¼ÓëŽô}‡Ý»ûΆÖíÝ»—žžžc„ï„k´"FÑÑêZÖ²wGrÖ2¸Í Bòjµ´a,X°€W_}µ^Ë­¶×^{bÑÁ²No‡].wó«_=ÇîŽ `ùò5¼ôÒn|ÿü¨xáº]<òÈÙ·o¿òùªUëX²d ¾Ÿ9OÎs=örH¾lãÆÍ<ûì:<¯í4a’—^ÚÅòå«•D•ƒòÆop饗bšfS¢ûñø}§þ—%ˤÓéÓ¸-kYËF6Ã0š¡<#´=Ïcpp0ô¥t:M$aòäÉ,\¸{«®ºŠd2É’%K0Í“'ÏÄ0Nwí+VtóéO»îº‘¹sgòÄKøÝï6pèÐTΟlÊ›7Oá®»þ†;>‹/¾?üáe~x9L?ÎÓaÇŽüÉŸ|ƒO~ò:.¿|>K—.ç׿~…½{§ T¼m³8thó7?aéÒ|ä#׳yó66o^ÇúOA2™$•J5££Gž¶£ÈårM¹K'˜Å›ü÷ÕÛ3No¤ñÛBWœÞ¶FÕmϰ¶1劶œÈâÒ‰z~q0¯è#”µäOãªû°=ŸQ}R悆,` ðïË orJúºÍ*¨×‘Û˜Yo‰²Gª¼ëa‡’cô‚Å2÷Í$P„ YM}@Od =T§QáC(IEÍ,¯‘öû5ì#t+1¹ƒô(1ÁŒÓ’eÆ*<ƒC=”}5üཀྵålä¸1Âl{;D_(bÙxj‡²À ,CÝF€¢Z¿OÝGr2z2ŒÜŽjíjÜïáÂ2ò«<¾9¦R)b±˜òN–Ëe²Ù,A`—Ëee¶W³¶¶6¢Ñ(¶msË-·p饗òúë¯ÓÛÛËg?{7Ù¬Ïc­?#]g¹<ŠeËR¼þúËD" —ë@ˆ Ï»‘ŠçexõÕ+W®$]J>ßFÌ;ïÎ3R¬\9‡5kÖ‹½L¡Á÷çÒ”i|Lˆ8»vÍåÞ{ðþÏ÷I§;ùÅ/þ/.¼pf}×,1æÈ‘#§í†‡‡›çOC‰'¸”F1\ŠÑÆ9¸8JQUOI„±ñš=—C¢ÙrÛÁUÚ¾’hbã©mTÔbêÓsÂl•ôKðmSúº©dxV:ß(E©§+U¥Ÿe ”ÛC!’MŠ ËI%z»v-õ¶š,„¶9N²L³mê‚ØzQ\]õG'Ô‡Ú…¨ƒgáj^²„Z-íÀ7À7”k)SH€á¯¯ N4]#œ<#·E“cùžFikkS€PÁÀÀ®ëžxFX³®®.n½õÖʨ¬Xbóæ=g|ÆT.O¤\>ß'î6®;×=ßÏÓÂóƑ;s{b4Ùìh’É$¦Ùx–k£Ã39#Ìf³Mg„­D™–µì]ð¿E"¤Ói>¬|>88ˆçy˜®ëŽ„­XFËÎGK&“M°¯¯¯„-kÙyhÑh”L&œw188X™Ž„™L¦)­¢e-;×-N7ÂÞÞÞ3„'ëõ°>Û˜âQnî_*ÍvMÅ–&Ø6zR½`*î8“@Ô†J 0©Õ”c]¶ð”úrf ˆ¥z…>8’Ȳá U\Ÿ¡ÛP–t ]Óf3”s^‡&ÍZæ×Û… ΖRC„!ð,rýj®ì"6LA¬MÙ6Ƨ jÍx„yTž²ÎKÔc‚רšhek„6Ws…µ˜á1F—P?DFq…æH*îÕr!†çiýµñÚƒêVÌ¢º/´‘«46†iÒ½È(…˜ý !Å(1ºx„Æ#4b¨®Ï.Ôtˆ­@åz¨ÜE5¦(Fž6ºkÔuÝãÆ[Ö²óÏö¡ÀP+CŸ6IéqìI1%ÀTbgÍâXÊJÑÁU”C¬zõ*Hdt,Wë¤tý+ †õc4TÕ»©P´œüR N>hUXÜ‘6 3€ qN¦„bˆá¸¤Ú. ÅM¸[ï} ½S,šëc)÷?À…®CR# †#Ôsã"Ú3âhm›0¡>Ѐï$d‹k1‘€°åmÙ{ÎÞ©a3:FË5Ú²–½óF›jüÖ\£fË5Ú²÷š%“ɦƒ¼w"Fx2:£-kYËN¯Õ’eFÂc„©Tª„-;¯_ Ó4ÂûÐÐårù´<÷o7Yf“øŸ®·'F÷rhlƒ7˜aH)rk‚nT×®¬ i{mÇTW­ O¯?'ù˜r­7 yª–d€*€ìP)\û¹mÒo¸oKDØËÄzÛÅa ªû ×ÆÚl#F Ûä_kl8,ùçL”¢Ä²(Mm¸Ä K°{FD¹n~·ê¯Ó õަ7DÁ5Y Žäv6´k_½”Z[ucæI† ñNQÑý ª[6Àò!0¥#tqª[ÑÑ,âí :‰HóãÎå¶ô$ÚEãÚNºôñ¼ä™@XtÛÕöGu}ê"ÜwªÛ rÑ£ÞähŠvcP;6'5Â;Üd™ÁÁAÊG!“ÉdF¬§Ö²–ëÖÙÙ‰eY AÀÑ£G7nÜÛÚ¶ïûuPÕg¢ÍÊÁ4³2%I#efé7ÛÔ)I±¬ oPïœ%Ž ˆ{0ÕŽi$Ó×û¨ÊÿžÖÖÕaŽ˜gZJç.Çã\œæ1B¿Lµ-µc•Çñ&!Ò¸(X0 Êž „ú>›µu Ô ØêE-¼Szftža€˰ õ¯¡}®‹'ÙÚ„9z>Êý1¥Ü*³´~]ÌEéþ CÝgºÉ1èé£Ú3'œ,#¡è!Ýžr̦dE”ëÖÌFŠö÷÷W\£Íâ"±XŒd2Ùê-[vÞZGGGHð\qZÜ£¥R‰lÂd{{{½"vËZÖ²wÎ,Ë"•J…tµk¥˜ša<oaËÎk ”N7)¶ªÓ·¬eï¼Aд$š‚cÇŽa7{ñ[3–µf„ooôÙ,ÎØÛÛËòåË™9sæ ·q¬w4+ß¼ªÞÞÔ‘å™—ÔÛis˜)ö®Æà•=RÙ$yf±¥Þn3‡ø@j©²3¶Ìœ„SÓeÜöPc€*W-@åx%A*%ˆï˜¥A)åDtqèE¡f ¼7¥¾¨Ï€—¥/”]R; Ñe“–{# îP“(úâjBSž¸¦¦RQšÅH®9šë4©ÓlÍg"ªW(ó Û;ûñ„:°ëŸØ£¡¡º%QÛí(nɳ]qñîe¢¢±º•YJ}Ê`ŒER4x©]Ý}D}5s:’÷0„r1L§ð¥÷²×êRܱ{œ ͆«|‹1“a©0çÝLdn—òÑ£GYµjU %`gß IDATkem]r*þÔÓ]›­e-;›,•J…*P!N —0“Épíµ×òè£rðàAeFøÀð©O}ê„.R¯ìíõàÈ7ƒR4BI4Ž7%²Jœ*A^éÓÒ +É3¦ IQb„uýã£ß= =íû¶ Br§æâ„b„!MÎÀQb|äQtÊÀ€<ŠE7@?&xÒ}7DH£Sçøé1C=&h BÕÞGŠU5CËËÀ Å!•Á¾„z2Žm7‰Iê‰ÑI ø<Â"ܦz„vdmÙqµ‰©1EÇÄ*( =.©?÷iK‰#çˆ+ÏH?ŠàÁº‘ôѦ³¾M›6ñÌ3Ï „ºók¯½–Ù³gWèÍF®»wï•iYËÎ7Ɇ šfuº§IôõŠ+®`Μ9¡„³•+W²nݺムç1°}<~üãPȶnZËZ&ƒ[ 8°a€í¬¥Ø{ü÷Ãu]/^ä:ŽÃÍ7ßÌèÑ£1-Zrõõõ±lÙ²¦Š3u¤Î娹s5®[æLUhYËÞš«Óƒpê"ìß¿Ÿ¥K—†€Ð²,-ZtZŽ`âĉ\sÍ5!¾b¹\æÁ Låwïþûïç_ÿë—áß„ÝëAˆÖ-mYËdüé/³ô»›ùÃ_<Ê«_ùëþñ²;ûAø]Éf³üú׿}>uêT-ZD,þâŠ+¸ð •Qª‚矞ݻw‡À¾ïóúë¯ñOÿô?yùåW)•îÆJ~‡–µìÝ´mÀóT|<zªÿo€ák¯½Æ¦M›B`tñÅsñÅŸ–£0M“üãüð‡?T7^xáöìÙÃäɺzÅb‘Å‹sß}÷±|ùr$ßÀ›!{qã],Øí %ñ63°vvÃÝ61±›¹S74Þ[LKu×–Kå †b„Ê—É”S L@Ò ’Ù1Rº=Q¤ a‰¨ÂKsq”dâŠ^Bu}fµcˆ‚Tž°"Ù%wY ¯ HI2q† Wg)-^çk'-0”ó¨}¦^&Oi;ZÌ/ƒ*£  ×2 )îшö{/TvKwé:ãUwiatB9Îr.‚\—®PÝÒ€ h<3GÌnE’o'SÍÕ2ŽÂ¯ÜgN$"Tp:™UÎËÆSÚ}Æ(åzïa’"¸‚… ÒÆÑW^gõÿ¥4Pb÷#«Øÿôv<´œ â‚¿ÿÿH$îÓeË–±mÛ¶Ð;º`ÁæÍ«”íñãÇóñœ7*m;vì`ñâÅÌ›7ÇqÈårlß¾{ï½—‡zˆR©TíHvb=umYËÞ=+[Z\î‡@;¥Ò5”Ë*Ú‚Ï=÷œ»«Í¿üå/‡Ò«ßŽ]|ñżÿýïç‘GQ¡zÛ6~ðƒp÷ÝwÓÞÞÎúõë¹çž{xá…¤÷J²}>"0ñ;¥útŽC9)Åñ (‚Çi†ÕZr†0š›þÙ‰^aã8Àh¡hMŠx‘Æ1{˜JgíU+ŽÔð…Ž;j5 þ{¤ ~2ÚÚ1ÚÒIÛôB #›ïMê ªm« xʦÿ>À é™êm”Ó,)ÛŒR Å c1U@ÁiÇl ú%µ- µ]&¢Sž„ÒÎ’RÎËDà*€–©œ‹ƒ{Üm ‘Q€°NŽ•SÜ’'¬‘ˆãåÊ ¬?À}ï!ê|éK_"‘HpèÐ!þå_þ%æëêêâCúP}¢g'“I®¹æ&L˜ÀîÝ»•YáC=ÄܹsikkcñâÅüô§?eÏž=Ê‹îfìØ›ÈåÊ ¹”Ë­¸bËÞ-Vi½fñôÓ3H¥îbÍš5,Y²$6Ó§OçÚk¯=­Gcš&ŸÿüçyôÑG•qppoûÛüüç?碋.béÒ¥ärÇ©p^Ú¦MsZÖ²÷®wâð7]ßùÎwøÝï~ǘ1cX³f CCCMÝ¢7Üpƒ4øæÍ›Ç%—\¹µk×òå/™t:ÍŽ;BJŽs˜[omg×.—U«ú9r¤D+ǦeïŽmg$©”û￟çž{Žýû÷7×þÈG>rÒ•!NÅ-ZÄœ9sظq£:C‚½{÷²wïÞo$û,pEëö¶¬e€wl˜âö#®‚€-[¶°eË–¦ë-Ëâ†n`âĉ*Ž3†k®¹†?üá!ôÜ¿ÿqÊuótv‘ÉL`÷î½½eZ±Â–½ó¯Ž<©*•X³fMÓucÆŒáºë®;iù³S±t:Í]wÝÅ7¿ùÍ·¾‘Ò³0ëÿ뤲L©2‰Éw5í 3+Óxñ'Z»ykëí„[ vX¡ETªþÚš€N‡LçûHÒ“x¶EŸDâ+aHŠ­•‰P’Ü^.v˜>aÙáŸÌ4Pi0UjÛsFÃ…f˜=c¤z„ ÿÕmÔã–ÝOI¶Md‡SÊuñ]µH^2¥Îøí˜§]V5vÖA¿ÒNk1íØ`Š\(–©G¯»Xˆªz¦nÄQõMm½†bL¡'`œ3ô°”2^]UÚ•+a(‹‰ìS8“•Øgã9ß/ûûÃÁ Q¹qo1gYŸùÌg”Œn»æÂ¹í¶Ûø·û7Ö®]{Jõ};ÖpãóikÛeUbAàÀ ¸4-kÙ[7ÓôÂ@ˆ*Ž*m´Ø“LÜÈ2Ú<$uB½´I×"&JXzU(—pÍ:4±NЖ_q%yFXj½Á2ÑP­±g) P‰S)á´ IU\Ú¥Ž®¤}é~ÄcyéTíÊO4Ò5z;&ž |ÜRD¹N¿Sõi¶BÜA8ñ”ØZD‹­yØ! ÔzœÑ¶<-ç¸Âß.áõòýË“PŽ¡H,-ã`I¿±ª‘áÆ ¤ºÖÊ«@”ìW½%4 ƒx<ÎM7ÝÄE]¤]ߪ͚5‹›nº‰-[¶4åW8Mõ<Ö­[üy׋íãúë\W°~ý1úúbõÎÅóM†—-kÙÉZÇɦéÒÝí²`Ašþ~—M›Š D ‚þSÞjWW7Þx#ãÇ?cG>wî\î½÷^žzê)Ö®]ËÖ­[9|ø°¢rá8Ó¦M#•J±jÕ*5¸ï ÃÑ¥ UjoYËÞ‹&¸O?^‘é„ 3ˆÚ‰Ûß«„øâñ8Ó¦Mcúôé\vÙe|⟠zm-¿ò•¯ÐÓÓÊ+X±b»wïV^ÖT*E±X Éԙ䄱 † ã \°Á_ðå‚Á`,‚M  `PÎyµy'u¨ïžÙíê‰$`%ö¹CCúæ³u*hŽúü¯ÿpq•ʇÜ7öH.œ:Œá…Ci<†5kÖPUUE=<嘙èæêºNMM 555Œ9’éÓ§“H$Ðu’’Ö®]Ë}÷Ý×FŸ !8üðÙ0a¦i¶ÉWõë×±cǶÀI'U°}û-z; ;äªPÓl¦²²‘HÄfÇŽbR©ÒŒ¿ó дEEuTV&hj Q__†mÇ:è*=Åá‡\tÑisÌQ!(--¥¦¦+«W¯fÙ²eqÄD"fÌ8Ÿÿý߇¨««kûtEE%—\r eeeœ{î¹hšF4%ç¨)}þ¡OŸ>ôéÓ)e‡Ãa&OžÌ< ¼¿iÃ.ÂËÿÉqcËš§Ùé~ˆÑÊa´§?…,›Â¾Ã!×}j¢æà Ô’“'Mõ¡&H›j}Áßm %¸ÂÂÌÉTR-Ç'¤é.ĤŸ P=,:ˆ2Û7Ùpˆ–¶*ƒµßWªáRŒZ¤€¸ÒúÚòùý‰æÒÕiÕG¨ÄÛpR¡ý~‡@æä ú¯…­a˜d¦0oö§ÌeCÌœ$|µŸ€T071tºrÜÁš‰2síç •côŽ;¥W¡'â÷Ÿ6‚ÿ°JœÆ¶àštÒEΚ .………\pêN­È$ÆöëGß¾}?Öw¿0™­áTUUEyy9º®ÓµkWN:é$u¶“H´•q]—õë×sÄG((¬icÆCŸ>Þ ²#Rp55Û¹üò>úMž{în¸¡/ÇïD×[ 4ŒzNúhúôéÓ¦ßÖÜÜÌŸþô'›8ûì³0 ƒÙ³_cèС{ÜxSS/¼0‡-[B’†+-­eúôKÛŽ¼ ŠqãFqÔQ‹xõÕ4®=ho$ÓlfÒ¤¡ 2Py½²²’ .˜Ä’%o“Jõì`@aÑ¢ÍÌû.}úÖVão÷îÝ<ûìs\yåÌžý³fÍâÿø‡iÙ«W†~PþVååå|å+_áwÞQ^ß±Ñâ•w«h9”.f#|*:‘º Ú)?±]"ÿOáÉåÁ/B͹+GI=°uD¹ÊÔ šŒvA3j¿Á·ÕGhaÐäs:%Õœ@€n:TW·§…)1ÝvjM.f³¯ïPéóé8Ôàó•âRÃÎÀ L—P'½Qª•´ Ç£lÛîSÔ:.¹þ؈:æϳˆf„F,£^¡«¨U¨ÑJö¨ÒtNúEn9)uì ¦74S¨ø(Q¨Ñ0)eŸI"Êö( …ö, ®h‘z·Xò}—‹R‘êm”2[‡§7`—èl«…í¯ÅIÆÝ<:çœs>ýBè“|(ëÿ[·n]&gÐeÕªUÜsÏÝÌŸ¿èaÇŽf–.ý\p>úwÞz+E"ѽC>†áPVV’óz4!3âà^ áRRË[¯¢¢M³;àQkÔÖÖðóŸ?Ç[o-bÆŒ¯²nÝfþò—WX° Í[oý7ñøZöî]¢”OB0eÊ**ÊÊß*‰0fÌzöì©(Ï8¶dÞ3»©¹p<Ñ2›"Ÿ¯+œ°ˆlòù€6ƒô§G ç”P¥ŒøŠP °"šS0Hø|€†übc(~KC©gc(y…ù|„A½L¡I¢ÑVÈüIÜ:Žr‚>AG †Ñp•íù,ŒØ¢c£¡ ùÝ;B   ·“[OÐ$­ø#íÐ( ¥ ž‰Ïñ¯ýé@úZ0O07øESê,¶ËÉMTƒgT?¦™ ‡ N”¢Æ ©úS·¡ˆ¬—íhD&àÝ÷àƒäˆ8Œ?ž>}ú|1@XYYɸqãxöÙgÛTò¥”$“Iêëwrî¹óúëÛyå•ͼðÂ_¼‹žèB{•ŠŽg{÷VðÄÏ3xðà6ÿŒã8Ì›·˜… ÷â8Õ71š.â…sþù8òÈ¡í7wk+ÿû¿ÿ ‘¨ìÇ-e˜­[çá‡ëyê©ßaYR©n@„––zàM9­¨¨`êÔ)ÆÊßJÁСC9æ˜cr$Ø6ÏÙÄžå»9ü„Nº¬Ó¾Ö’€ÙKaóžÀÝàœéÓ‰F?=S§}ÒuôèÑ~øá9ÛÞ)¦Ù@·n…˜f‰D?‰~¨:IÏl»„çž[σ>Æòå+زe O>ù ?üOvîŒ~Ò9CGZg°j•ν÷>Î?ÿù&Û¶mcþü…ü÷ÿ‘ Ò(qòÒÊhiH*Õ+³¼Ø ìÈyçøñã°Y½ÚAÊpF§ó`ŒàË›ËÚ°aÃ?~|^_èÁf#FŒ`̘1¬^½Z©¯M0ÿÏ›po9µ ìÝÀ£lKØãcŒ ]Ô›õüX~N ÖŸ+4Ò¾<ÀÅÌe´óø ý}]ñ:è9 8R ^É„þBºùúA  ŠQÇ€Ì+Œ’P@ÅÀ¦@´¿Ç&Sý1":v÷ûE´ä$Èû¯”¥_è¹Í9@´àµNÎËAW€0AT Ž) ®]’(ºo»‰¥“žÉ áU‡Ãê0e¥©­]III={F)-50̓aÀæ==„Z` ¶NûllcÞÕ`uu¦NýêAM‰í˜cŽáØcÍy½~m›^]‡kwÿì´CÓšlxòÑ89ŽÅúõï0eÊd4-Ä–- êꬄbÍO…JÚ}‚2ðšÌ³=øÞNût¶Ø@>Zôšk®iKº?”l̘1}ôÑ,\¸°ýE [æl¤è­—˜Ø«œJ§ ¿„f¡£|ñZèØña™–µ ûúÀ6b7Õ¾)HTé[˜Ôú ï:è4øŠØæ –©õõ]4âJ±XI8 £á*IÙ.¾$½ ÏOǡ܈bà()nŽÈ¶?¸&ûžàøà÷¥¥ )ÓZ[7õiwI)h®)TF—.Åj¤ÒѼ§ôG°XIˆ?‚+þµžµ{ÐÝö¾±ÇA8>mÒ´ îþǘˆPý¯ÅQK™Ÿ—×´€/À1R”ÂÖT-Y¿v¬©ôsêba~Ï›&$ÓmFXRõV1¨MÀ“Àî< Âï_{6—|«;8¬GBMÓ;v,Ó¦MãñÇWÔ=¶lÙÄ’%¯qÔQç0wî:¢ŒW~ÿŸ–Å>À.ºûG·?•µËªGkšÆ•W^ÉàÁƒ)Z4kUUU|ûÛßfùòåJ9)+nñâý›9iÄH+s ˆù8B¨•ܳ¯ùç aõ=ÒÔrD²ýý|Õ#ö×wЕ¾D(Áù ÓzÁ2®èÜýdè8J0F°¯>ï]u´*ÔGHæD®ú‹ùÚ jUÎ+6”s( D*å ÈñŸgq5¡ÞI¢;¾8 Š Nê£ -Á78 ê1ë0)´@0Œ«ÕuòL‚Óõ;…ô½–o(5À1àåðÚŽ\l¯®®æºk¯ ¦æÀ>ç¤[uu5gžy&]»æ&Ì?÷Üߨ½{SL¥Èúý‚ô¦™iÙ‘#äká<Í¿ÝôíÃ@¥K;}‡ŸÎdf%¸&gKŸ>}8ÿüó1 ãBÓ49ñÄ9þøãs¶½ÿn‚½ÐÜy{tÚ!c»ã0k=ì ®›4Áå—_Nuõ79 @¨i'žx"cÆŒÉInlnnæÿxÛNu0Ôò€ŸCx‰ÛùZ4Ó"ûD?ú¶?¹%ñ"EÕûÈ0 Î9眼⇒õéÓ‡¯~õ«””¨2€RÂ_¨£©Îî¼E:í˜î¾³ foÉÝV4¨;§žýÕϤzÌ‹`©ªªbƌ̙3‡={T-œuëþMQQ/``ºäù‚c ÔÀ•" þd•mÙ¾æ{MОô]çwR¤ß–@@,àðÃqÆS(,,<¤Ï> qæ™gò—¿ü…ùóç+Û¶¼Ÿä­Ûw2ÊŸeGU4Œ@Nîqo _{7QboIûND){|>À8ì¢=R/Mˆ:Úõ\?JB}#*©Ñ méѧz` «R¡*uê(bÕù¶©Ð.®Z)§DS}ˆÅ4)Ô¨…Iv)ç0ˆ”Ï8Ê1KªÙ­Þ·¬RúÃê× ù¯#«ª°ÖUÝâV`Ñ?Âܺ)ЬMD %²üˆ:ÜpûNwkÕ$}Å|‹hV´D›(V¨ïVrëÎîÐj”ºˆ½GlÃô•OK…__Aß ®“8åë}†|&Ï×B!gžy&³gÏæþûïW¯wªØǀ=pÝJvïNÓÜüEÌ`ý ¤0ýÿûÛ¾¢>³@èø@Ðöýïoö>>ß ˆͶór®Uaa!\p£GHR¢AëÛ·/—]v+V¬PJN¥,øŸ—-ƆcÊÛP*×ÿ ì0Kndô°FZ7}@§ú½Ð‡Òúƒ¢Úþ¾‹–SA}:eŽJ°Økö}Áwìk»ÈéËœ~[ðFÛYã"šs€Ð¯€ã¢åˆQ'X-¾œ:¥_j7!ü $M¨¢IMÀþ2e>JQŸdàŠú ¿£éZ¸Rðû[ƒÅ‚ƒ¿U°/@Z˜J%Y(™ór]xøixcižc?rö¤óp#ŸÍ„W;;BpÝu×Ñ«W¯œméô6*+×rì±Etïù‚V€ÙU^È72D‚L‹ái¢âioþ/òmùZ¯iÓùýˆ©ÍZ€…äÊ¢ÀÈ‘G·ù¿,vÎ9ç0dHî¬x] <²:ËvÚAj«×Âï~ŸgC4ãOƒC>³ïÖô;ì0fΜ‰iª3$ËJ³~ý|Z[Q\üEDfƒcü>À°¸‚@˜ ý øa`ôš¨~ÃNÜ¿I4mÑèbt=7]Â0 ®»î:;ì°/ÕU)--åšk®Éy¾R.<· þUû¡QôÖiÎZãðð#°~cžý‡)€a~fßÀ§Òº®sÖYgñòË/3{öì¶A«ÿþœ}öÙ v$Ï<ó&k×Ö‘HŽmëXÖGyrå'4n± IDATÜ–oEhú€*‚êv1}€¥¡Ò™n†Gp|­Ìÿ¶ð¬}€^viÐ,*+—1eÊ0N8á.ÈóÏ?϶mÛÚÞ1uêTN;íT CÿÒ]SO=•É“'óì³Ï*¯oŽÃÃ[àØPU Œñm œ«tWøvê²Þ,eƒÏ‘ØL1;|ɇ ¢ŠÐÂT|„¹y„ºâ3”hJ=Cï°R¾©ªT|†Ù}S.üý -éæÙ´°/=BHI¬VuÓÈú@a^}»BùIMЫd—2ÇN†Õ¡TwÕGÝlP¿#²YMÑ«¥:|€JÝm5Ñ»> ¡* ýp`ŸâÞR5=f']íÙfŠrêZÊk{ ªÐ¥Íâ¹u<ýÒ&’ÉÜ\ó{®ù7¶?Á°Ï(Mø3á”úöíËÌ™3Y³f ›6mâä“OæÁ¤G!˜:u =öþórš›çý÷‰|9xÁÿùíÁäu„fü²-¸rËþõ¯Ú2Á2"G(³ÇôZ>0Lãy£³ª²f¦¯âþ@šN0‡®]ßçÿþïzN:iš&¸øâ øîw¿ËgœÁ¶mÛ4h7ß|sŽ´ß—ÅÊÊʸîºëXºt)7¶O¡¥„Yà”ðÑ ºŪÀ˜X.°ŠÛGÏ`áÝ%a:E8ÇG¸?Ÿ`>óû=àʸ+óŒ¾ e2 ÛûÁ}h øåËsó¿&èéÀs×"ìC ªD‡X4¡†I G$ÁêýÝÇ¿6„"ϰ¡íg;y€18Úç‘ðü8¡È$”ûÃLÓL‘*°ôõ[[yê¡f6¯ËÁI“&1ó›ß@×µÏô™úLö.„`âĉ|ýë_§¤¤„óÎ;Ã; ]×Ñ4X,Æ 'ÏÈ‘ôî%ítÉ<©•@9Pši%>Š2õh²ïÔ¢¼éÀ,ÕY’ù޲Àß Ø{ŸÈP "ÓÚ(Ñ¢Ì{Š}û)ñ}ÖO«ú}‡aß ÔÌŒ_nÓõFN9eÇs†áÝ/º®3tèP¦L™B—.]¸æšk8pà—ö !1b3fÌÈ)JêJ¸c¬®ï¼—:í ˜öÚ’yÛÅ{/Ôæ¬Šk øá ?øLÒ%>—!xÒkßþö·™;w.ÇsLÎöÊÊ zô(Á²¢D"U™éí[Y9y¨Ç|íÀŠ*N8¼¤RUÐÊúÃ> , €TvUhäªA(ü37ÿ Ôö­þ,¼­ìô<Ü„ŸfÍŠPˆ&"‘Fl;„e•Ž»7Í$ÇE4ªTišÆñÇO:fêÔ©_ÚÕ`ÖŠŠŠ8÷Üs™={6 ,P õni†;æÃÝà,Ö9ØvZǵMË[xîžÍ¤â*­›#g dàÑ}?—ãøLÃíz÷îÍ¥—^ÊÛo¿ÍðáÕmÛ¶mcåÊ¥ z&„X»Þ¥¶Îd÷^hn)}©ÒiƒëdþwÚ_kÎáð:† ÙÅôé'`šO>ù&Ë–“Lö÷­ÞнUž(Ȭò¢ …A„A„@èÙÑ^¥‚R£Š<©ƒÔ¼¿®‘éÞÿm4«?oQñ` H W3fL9gŸ} k×nåÙgç³~}O§ä¬G°,\8xü,ì\×eíÚµœ{î¹yŒ¾Œ6dÈf̘ÁÊ•+innVV…ϬÒ)ÚÓŸ±SGh4pBZ`Òa)þ² ÙAM[¿•[}ŽÅ4¡œ¼@-¿œz„Ò`oªÒ÷ûJ„)Š2¢}¼À¹|>”Ž3°?TÆÍ¿]# u ^¶ŽßvI U®N€Q”ï^V8AÕ6ú+ßÑè†êó« ô»å™çŠé¡F+TrªÕŒaûÄÞã(Ôgœå÷¯§LÉÝJ÷œô‰jv·ù…íxšoÝÈî¹÷À€#Ü;ݦ´È9øàüóÏçÿý¿ÿÇ»ï¾ËÀ …BìÞ½›Y³fñä“OpÖY’sι‚MÛ`éJ‡yK¬ÞÅq%H×kŽ Žãýµ]/á$û7†¡ÐFf̈ò‹_ÜA×®žsdÆŒÉÜ~ûùãm’É*ÍZzŒ0!Ð 0tÐ5OtÖŸkO€mõ»$ÛšGGϤj`ë`™ Ã^#I{@Nœv?$äú@;bðŒ¤´t·Ür*_ü5b±ŽãpÙe›¸ôÒŸñ¯’ë”øø+MÇYÌ«¯nã…Nä´ÓN#‹‘H$X´h¶m3iÒ¤/EÎàGzx ƒoûÛ¼ñÆüíoS¶54;<ýT-ÎøAôWš† à#$)ñeYÇ)P*ƺ4!ÅgÌ ÌÑ"•&i'¤¡iXàNû:-Oqß>F™ Áq¹.ð8ŠÀ­.òøƒB°XJ°hHCà;ì<#µ9?| ü°@“¨:?·5[èÊÄÇlÁ~šâ#n¦('¿2 ¤NÚaÁ}ï²ì•Ý9‡QZ©sÖåeŒ™ãŽ;Ž+VF¹ë®»>ÁÁdÑh”Ûn»%K–°~ýz?Z°ýß{™ûÀ ª”RTÓÉ‘vZ™R»’Íolâß/%Ý3Ðà¤iÅœza)Úç¨Oý¹d"8+¯¼’믿ž|PUз,î½÷nŠŠËèV3š’ª¢´È[Ue#4ýî·4–õu™YºTw‹3xp.Ÿ<`@oºõ˜ËÚ-ÅHYz+ÁˆðZF U*4›A±? ´|̬% - ­A*s|ÂÍP¥Ù¦™–¢ªêßw\1ýûW±hÑVÞ}wñøa4Έ_ @êºÅá‡WSUU‘³íøãG‰¼FKË'ŸãÃRàÝ6Џ¾¾žgžy†_|‘I“&qË-·‹uæù¬ÿþ|ÿê™Üpýµ4V+žßHÍ‘LüÉÈÎ ÕiÂ76ðÞý ©_W—³­Ç€0ý¨’‚ÂÏ7€ðsÂl”Ûµ×^ËÕW_ÍÖ­* ¿uëî½÷¿8ûë?B+¥nÒðáãŸt†iLË m*Ùåöbùʵôïß_Ù÷«6°µ±YQ"Â]oÏ¢ð§FÈU]Ë„ný@R£W¢@RóVŠŽôVNfõhëT”ÎâÞ{Ç3zôJK‹Ùµ«–Ç‘ÿú¯ÓÚÚ?À¿f¿ü‹ ª±m“•+w±k×**T0|ûí…$ŸÆGø>ð/”¿q]—Aƒqýõ×Ó£GÎd?¬ËY_›Î¼yïðè_þª”B³â6oÞ½”‰Ñ$-מ®>—€_€R"úÔFÏ‘Dó—rЕðø4!…ZRb¥‰ÿ)_ý:á)MøŽGRp¦ihJºƒ—¡¦?¨”¯®¤€è84Qìû¼Ú¸¤s»œ’–[QSܵ©ƒÏµê]Øàœ-ý!ôk°VdOÔ`òãTj³yP×l_15GŠp4•-±4õÚ›R¥¥#$¹9Mwj´Y+T¨Ï$a…·0±1•ßß¿}÷–îÄ[UI4Ù-É’°áÕõHGÇ"!¸é†;˜Ø”Ýíuè!x¥d¦NÊÖ­[ùñ¬¬ ]×åý•ËùóÃwQ>º ÊjÔâþÂïNl2€cymWËQ<ùÒÓ <€^=º!„`Ûö<ýÂ"¶Ê±PS š "°r+*ùPß5êOôÇë$} Äs&2Ç™22$M;8õÔ"Î=wJÝWZZÊÅOåõ×7ðÖ[i¤,@Õ0õû?g:CFY¼xÏ?ÿ:唕•’N[¬^½–ÇŸƒã|’ê.°x\E`èÕ«?øÁ;vl'%ú!Ö¥¦W]s=¬ÛÈÂ… •(ÒÖ½Iî}p3_™XOÕUm>Ö` ƒdÿþ7oÀPkûù÷á¢åèxº®¦|ãè>Lõ1j¸y´F÷¯J@ŸTü–AÚ7XëhJ_.nЗ\Œ´€Ð¥–¯¾|Œ^Ðçt}PT?cµ „V¥¦?µÉ™´¤NÂp@e[â(×Ò”©L2œŒ„yûï­+÷GÐg˜l‰oòE¹ËßxŸ…¿y;¥~—¡Ãe§ÂÙ§N¢„¡Ÿÿdòóž¹^uÕU¬X±‚Gy„d2©€áºU‹Ø“ºclwŒ®C°cv†Ì®ØB!=)Ùˆ2v¢7³vgÅÏŸæÌчaê:³ÞXÏûM£Hõ8 4Ã# µŒ0è¶ó¡.÷ „mÁ1>t|˜éDãš×â:´š $ÑÐV¦M;.g€¯®®ä䓇0þ&R©òÌŽ³,r ^&hnîÅ­·¾ÍK/-eêÔãY·n/¾¸˜M›zòñs!]`0'0ªxV\\Ì÷¾÷=¦OŸÞ ‚‘u5jW]u?üáÙµK­¨°mu#oÝ<‡SîžDIïÒÎ ÖiŸóLÚ…ÅoòÆM¯ç€ ®Áø¡pùiPZøÅäTîjź®ó³ŸýŒ¦¦&ž~úi,K]®7m|“âè9¬ïÏi®Âöh +*Q‰ˆ¸hÂE·ô´ƒ°$2-)›ÈÞGñAs_ÖmY‹LK’}ǃV°²3ÝŒJŒN{Š_` K0$B—`€02`#!m­ÀËîHKde| ˜Ì¡ [VáÑ¥-`µvcåªÜ"³ñx‚õë±íj¼tìNm¤KåçŒ:­­˜3§™yóæbÛ&¶=€O–G¸ ø'°=/{pÉ%—pÅW|©µNŸ>U«Vqûí·«ÓÇeã«ëYü‡EÿÃ1DJ#¬Ó>?[·þçìº\¥‡Ãªáši0¸×wx_È(Ó­[7n¼ñFêëëyõÕWŸ@ËêWizUP}áO¨ëz NŽ^h£ØºEȱÙi ÇÆµ5l[DZu\[ñMû¤¥aXNÚBZÂÕ®–áZ„¯òRüBLa¸C¢é@ô‰ÔH¤H'“.ak` ¤¥ymÊ·2ôa«¯5g€°éHþúÂ3|ë›Û”H×ÅKVòúu8ÎIÐkãWQöýoîç† eÉdѧØÃ.àå X)Mcúôé\wÝõt Ó¢Ñ(W_}5ï½÷/¿ü²²-Ý’fésbr3F„jl"ÃÚY™ÆP›Š»ùè¶B¶ù’ꂺž)Â9y‡Û}Î.)N2ä[hmr\Ý¥9R¬Ð”å…õaвªTåDŽ°Ñ§ªá²Û§—*pÙQóR{¨{9”ÜZ€A ù!ÔhpÞ\”w |îH•ÝЧ¶OWw•Ñ_ù-öR ºÍ[F½r½º²Sñ·F>ÃVb9©)ê)%§Ô ìoO÷½ˆj gÛNRÏþ gù-=†xþ¿tÍ„M@aŒê¿ËôKïækgŒà¨#ûñÚk‹ùËS[Ù¾ók^`Ì~ äÃDæ ñ;'¡£ w{n)‰”Û—ò®u]gêÔ©üìg?W&öñ¬ººšÛn»]»v±téRåÙŠï‰ó»ß®gÂ^˜p è¾Â¼E‘FS OÈïwJU‚cr®¥Àµ}ƒ³+ ÕÞ—ºF:R€0è·t}/ 0 h° ÐÌ®’©áÒª&\Á9^E lBêC€0Èîçx•Ï|„Å…Xzûyí F9¯½”çø ÈMT÷]Í9GþíiB9>cõ”eR&¥€c¨0‰QŸÀzø^œçž‚t*‡½è¢¯sÙ•?"ùbŠ/ŒwÒ4‘#Gòë_ÿšo}ë[,[¶,@åØì™ûaiÓóÚÓud Ò RH3 áVd(-4 , lL,i¶£•6±,Û2pm¯I[WCú}º‹ÐÐ4ÝEÓtÝE3Õ²] 7Û×2pd¥-i/pG¦2-‘i­™Ö¬y¸Vèá›ëü½ÿÁ{/"ßH¼å8ÜÔ7ÁLƒLd’ñ p³NÌxæéHúV†‚vGeö©t;Üà\T$€M´¶¾ŠãlË ‚§v·Þz+ƒN§}:;ꨣ¸é¦›¸îºëذaƒ²­! ßyþØÆŸà*tZ§pæ(ž ù›ÇIÞ÷?9+AMƒ GÃ-7ýð Á/³6jÔ(îºë.~ðƒ°tiniâÔ;³qÒí5qÌpšu‹z‚­E­Ô•%qu·m&ãVë8BÇ–abc`iŽaâ8&®càÊŒB}&Ï[ºM"4¡¹h™¾:ÁÕp5ëêH]ÃÑ ÇÀ5uÃ:®£áX:Ž¥c¥ ì”Ûjà´ê81ÓTíðP+:«~,8ÐlC‹ Ùž¨/Cu]ìï0[êÉò¢è +ÄödaáZšš^Ï ‚ãÇŸÈ­·þC‡íA€éºÎ¤I“¸âŠ+Ú˜¿mj€ŸÍ‚»†Ã±GyS§uÚ27e‘úó,’wÿ>Žì?½ºT˜âx;D$ÂI'Äm·ÝÆOúS–,Y’³}óâ÷xå®ÿbÐ÷¯gô¸ãYŸNC2ë4ƒžÎƒI{Bx¦Ð°tK˜Xºí†°3«EGê™Ð_ÌjŠ ÙÖ„(æø4¤ÔÚ€Ôv \×À‘¶«{”¬k`»ž´TÒ “¶BØ­ah áÆt¤¿~oV)‹qÍËqÂKóHé Mp" Ì xŠ4Xéž_Ó¨R ,£¶véôÞ¼ï7nwÜqG5¼s9€‹Å¸ôÒKÙ±c÷Üsz/KX¸n½ î™ {@¤ªÔ%UΡ߂y„þ2>AíQ¹ )ïW}Š®Z©äFרzhÝÝðÑˤAT(ƒ'ÃF€>õ[p¼¯ <%ƒÕGx}eO\ßìd…6X9¯EŒTt?÷P•Cöc]à,eL‹’P®mšÒwÐ:4H}—ЀãûÎ,ÆÆÀµ%ï=³™æ_¾‰lÎUÙèÕ«?üÉ•{j_´Pu'¶ý@¦ÉW¾òLÓäûßÿ>Ë—/W}†®ËŠ¥K¹ã¦›øñOn`ظ£ÙcKšV4·…¨ˆ-™Þ2)´¶Õ Êlý4£-çÅ h¶= "D<Cf´í -›–YH“t¢hN©¸Äm81Ó[Æ@Æ„çpÏæK†ñ$Þ¤‘‘–Ë„´Ú°²2mAý7}KßÈ/ =Ÿ`)ßæ’N7ç¼GÓ4ÆÏwÞÉÈ‘#;5D?«¨¨à¦›nbÍš5¼ð j²½ ¯¾צàáë¡,âP(Û®0)´ýh=šXÄ|"šq Ôà Wƒßàé ŠOëà¶øÂpr|„zN¡°võ³Ÿñ¿?èT’þ‘Jñ`€¦B5¦{÷Àc”ÍöŸ—˜ûÅ?d¤-ô«T ¬•(:Ÿ{¨Rt7q0]Wä êH?·Ç®^LýÖÜ@‚"ýè‡\vÙenÒÛá’´FÍý÷ßÏ 7ÜÀ[o½…m«!À­­­üæ¿ͶíÛ9ëëgÑ·_7œ$‰X3Ü”‰\JyT©tѤD“®ç3ª”l32«ÂìÊ0ÛÕë3 šQSÈVß¶3:iB$3½“™¸ÖVbÄE+q#F"œ U‹‘0 H…ä ¤calÃÀ5 „¡!³rrY\3ý•0  ¥–ÂlÓPKK‹ÀÔÕöñ7ŸºËšC"±./ø†ÁyçÇOúÓ/uÝÏÓzöìÉÍ7ßLKK o¿ý6Ž£®ôf/‚~+ùqOÉÀA¢ ;ícƒà²—vðøuKò‚`4¦1åÒr¾{Õ%’ùéÙÊÙšÿøÿàïÿ;é´*ÔgÛ6Ïþu[7mæâË/ ï¨btË&L1âÐJ ꤅éÚ8BÇÒ¼¨RKX„Hg1 nÙ&ÛÂo„OvJd¼*f5E˜Q’DHfVƒ­Ð*bÄõBZÃqÂf‚–p­v81ÜH]‚)p Ý+%} ;#CyJé­¥é¬2¸NnL¶?—ð‹ Gm<ÝÐyØöö¼ïˆD"\|ñÅÜxãôìÙ³sùœ,«÷ûóŸÿœ™3g²råJe{Ú†gK;Ü|³ o?Ð¥KØñM â 6ûî¶Â¡AíϦ&]Òí4£Ól¿¢_D(¤ÞÂ2$Hºj¡), aû,;Ò¡)”¡‹P|gH(}©H¬‰6ý^ŠO¡ZcªïLs*Öúú’²jŸD  z]žGÃ?Eí£ö7öôâ2¶F Pò×0@9Ï]t!åë{9€êd· 5'³f…ï ‘òê1ú(e?Íœ ª0b-ÄÚÙ£Âu\ÇeÍß×ðÊO—³ws<dBÇŸÓ•É×F´ÈìÏG‡BMÓ>|8wÝu………<ù䓊@:fÁ¼lܰé_ŸÌ©ß:ŒPZ6wQŽSj$d§1 Ó¶p¥' lK[xàeá¢#t$:ŽÐBˇȡ JáÕus…îù…% R"LBDHˆ( ‘ÂBZ‰Ñ¢µÕŠË$!#…*BwmôCÒ. Màê:RjH] uá$„’"SóÍ‹ÄrÉ”£ ®ó <À©ú}B´¢iópœ%ä_k§è®¼òJ®¾újª««;Ñés6]×?~<<ðçž{.»w«µà øÇs’tBòëû [˜–oåØb‹)Oa ò¢HIÂn÷[¹I]Mu@q[…~*0ZR(ttŸŸRôH=_½ªwšÊ)ÄJ?H ßåK¸( 5*Ÿ3±ˆDÚïq]º”D@ŒÂU¿' ô½7\ª€Ð*Ÿ_ÐGبõWH‹D”Gõ*¤Ú¢¶ÒÖnLVŽ)N„ÍcÙ‚u/®åŸ¼ËÞs†Ý=¥Šé7 °gAÞxŒN ü0ìÝ»7øÃèׯ<ð@Ž~¢ã8ìØ¾“ûî|ˆE FqñwOfð2̲4E1RFÊAO¹È´D·$¦íฎ—b¡¥=Ÿæ«iHM 5@™\C‘I³HÍ‹F•š÷^×ÐqL ÛÐI!z„¸æa+1Z(lkÍ´R âDI ""ID&i)("N!"äb™!ÍÄ éÈî¹³«Ãlæ„.¼„TÈ+÷äjÙ 8#HÅ>@ðÓ€¡On‡4°)_ÂqvïóÙ*]tQ‡r’ÙÌ0 N<ñDžzê)¾óËY½z•ÝžJÃßÿ»÷Àÿ GöïÌ3ì´}ð?I›¥,çÍß ^›»ÔMÁè¯uå²û‡RXfvì碣_ìp8Ì 7Ü@¯^½¸÷Þ{Y¶lYŽà_sÞeÛæíœóµ‘L›bÒs€…·Ñâ.Z\"ã ÇdÒŵ¤¦áê©iHC u¦hguÌŠnkPÔ} © dDà†nH#冈›aâ¡q< Œej|GIÉxM‘Æ”iòÑ-´¨'éæD50=QqK^b—íxåwj´¥c+?¿ôš_°;Ûÿ4 ˜×:<îk¡·\ØÇÀ{üñÇsÓM71qâÄÎÈÐb£GæW¿ºŠoüË—ç¦z½û.̼nþ!Œ áPç5ë4{PŸbÉ£«øçOæä×Ðã¦VñÍ»wx<(€¼ˆÒ /¼¾}ûrçwòê«¯æø ¥”lX¿?ü®ž¥ï–2óâ"Æ)DO ˆƒÖ’ÄhŠc6'0ÒÛ«D¡Ñ– ýµ³Z¤mÁ*B Ð4ðr£ £‚Tؤ &A˜¸¡@KIoõ—ÁH{‰ÂÓÁÑuÇÙÀ–:B—¤loµ‰È„…»¥½ÐR° Hš™âÄ2³èó׉ʂŸíûßáÓÔ4 …4¢Q°¬$‹r3¹ÅÖ<‹ÅbœsÎ9‘\…IDAT\{íµ >¼;Ø3uÊ)“‘2Åüï¿ÿA J¼ß¿YpÉ»2jjWD•5²}Pk—°šmýÝVWRÛÚSä6áéªûçhŽÂÝyšš>S)Û¸BSòé<É´ˆBúÓ#$šÒ5¯Ð£‹j´% ©¦ç”#2r¨ÑVŸØ¨ŽCs´DÙgE×zåÄKìFeŸ[ÃjÂõôUhÈõôU¨Ñ­ôT|›^lCûûKhÌÑþìÉf¥ßuÊyW¸£FJêr =”k·nX„Hîl`Õo^géïæA-lÐåìã¸îßfTW5aÒ¤c×>h¤ýC¡ãÆ£OŸ>Üyçüæ7¿Éû¾¦¦8³_O°jU„Ó'ôâë_;‘š²´äVÂÎZŠ[WkÞ…p\/«XúÁ.Ó̰­jE (Y 0Ѝ‹v0LÓ´ˆ˜)ÂZšPü„‹Þ–¸ád¨Wo¥f†lâ….štIãzJ~R¡#5Ñž6í1îRƒ´ VÄÃ#×|n ü$l~…˜F\w©ÔHÙºO@---åºë®ã²Ë.£K—. Ø-éÇi§]M,6’ /¼0ë–¯ÜúÃΓÝ9þë}ˆµû[(d'í‚Õuv%V½/Øe°2pùYñBÔµnF˜Ûÿ’æEkûwá÷9è¤}; ÏHI_¾l*× Î%¨ £Î†Èµ¡pÐCíà©á¢‡, 5v¯®&î¡*à#Täë(Ïc0ȧUÀ¢ »”ó&°)Š0ü×vÌTÒ¸+Éû¿x›Í-ÄnN掆NÕÇ0àÖ Øg2½ÅÁ pPÕ¸Ñ4ž={rï½÷ròÉ'sÛm·±råÊœ@)%›·%øýÿ½Ç‹oìä²o}ƒ“FKU´œÕHAýDÂñØjªî;Ó‚º³ÒŸEŠB‰s Ùh…3æ.°((L’ж1’Dô$!=Õ¦‚Ê$_hÈL&¢CØHcÄ4ÃF 9¤0ha,#“cò_(óWM€“¡Ks¢G³Ý®oµøqÌÁ“YN]ÝBö PPPÀ‘GÉ<Àˆ#:Ñæ XN˜0—^z‰Ë.ÿK–,ƶ|ê·'øã·±iy+'|o%]£­sbóe2Çr¨_¾‘yßý3õ Öç} ÓãÒ‰ ¼ýBŒÂ(pðÜ#e±7MÓ˜6m à·¿ý-ýë_Ù³gOÞ÷nÞ²›nù%'Œ>–ÉÇ à$-J4QˆÙbyãyB"Ò."e#,!]/S!¤¡Ði“BÙ"¾Å ½™­Väb–HŒ·Xx%¡4eè™ ÛÓ/²-QCdªkg5tÃAF…§µI®w¥Ž£¦hŸ Ö OHœ¤™YøÙ^k£G³%œ5º¿ë º.Ðu‰ëîŲÖ"åR`ç>W€š¦Ñ«W/Î;ï<®¼òJzõêÕ9zDvä‘Grßï~ÄOn¾„wf'H%ÔßÙN»Ì¾o5»ÖÇ™xýPz]qŽöq-Õ˜bÍ k™wë|êßß•HªËèùÍ“pÓtô‚ƒ/î ½•5Mãˆ#ŽàÖ[oe̘1üò—¿dùòåyßëº.sþ5ÅK–òr÷bNëSÍéC§ÔˆB†½uèÛw`nÛ†ÖÚŒkx gnF¸Eh™âö!ÐC`„@€Þzh… ŠA$$$%Z ¤í`J0¤†õdpA˜  ‰®yE†³TІח†È0Ÿ=«$#¶0=‰Ô½|#%8ÔÛ·W¾0vÔ㵜¬S&í£G³}?’ªha¡NYYœx|MM+Íä$B~‹SN9…+®¸‚ &P\\Ü9z„ÏÓÈÇsç÷ñë;_å/ÏÊñÃ[ ‡%³6S·©•s¾ßƒ£¿Ö‹Í¢}Âc‡C”önvCM'”ç môø3DHRb¨´dL¨ìƒ§èR¨Q¿Ô˜‹F«OÿTêX¶:ìµ<C½s¾3HúS4tå;4Ü™·`…ªæ€_²‘…ÝN7…­mè‚å¶÷KKëÐ4×GƒÖQL“²ÏÞlTúÝw¨š©z°lM!¶¯ÔS#%Ôîtøà·ï°ü¡÷hÞÖœ÷ÞéÙ³']{G_2™PA;ÍÜÝ÷;tágl\pÁ :”‡zˆG}4Gi?kM­ ^_“`Ѷ&žÚdsî§3aÜ(¢õuX‹ßEÔÆÑj›IkÖ!mx12šæý 1 ¬C$ ‘V·@¨D¥v®°@: Ù’P¡MAA!3….t‰f¸^á_ÚõµLŽ”†‹®9!jÕ„KJ„±D£ëª¨Œ•hèA2æÑ¤ÒÍ𿎯%i˜ δ"å¿Ù»w%©T-–•d5UUUÌœ9“o|ãôèÑ]?X-,z1jÈ·øåN¦(VÁ<;©´%Ôòèu 4ìHRrù‘oI­vi2‹MC}@h¢]~™OaBLW/˜ Ù¶3b~Ðòûµd Á í¨Á3Ž­Þ³»BjaP¬ÚÀVìƒÂà:E>QU¤H¨  è Á ú±öẨ¸ ¡µû!‹h¦uÜ낺z«¬kTÅÃsÛ‚.q¥æážmi^ûÞ‹ìœý>VS2ï=Ó­[7n¿ýv¦M›FaaáA{ï䆮ëŒ1‚{3fpÇw0gΜ¼€(%4´&XøÁ:­ù-ÝjžáŒ“Ndle9Å¡Œ8$4 h6tL)).!…Š4(Pd‚[è­ÍB¼ì„‡1" 2塞–„Sºíß`ÈÆÔ, ÍBn¶’b[‚«¡Ù˜aÛˈ‹Š!LpMÇÔU¦?}P×¼¢¾Ž –™Á°¬ÔZMóŠùºn]<…à½Àr`ÍÍñý‚Ÿ‚.]º0yòd¾ÿýï3pàÀN<„¬¦¦†_ýêWôíÛ—»ï¾›;w*bÝ»¶ÚüïÖÐçõ¿rÜÇÑå¨èL=èMJhitø×‹qþ~ã}ÔnlÍÎ d2ôðA<ò§?qÔQG¡äu¼)–?›³öøãóÐCñÄO°téRš›ó/éÇaËÖ­üîÑÇx²¨ˆc£QúÉ¡P»K Ž<«®kõjz‡ÃTK‰ÓÚŠliAkMJK")ôÚâO2+3mþECs0 " …$®¦áá•-ñÉ»Y˜žÔ‘ð/e†H‡3š¦ÒDde²1/í5z-ÀÒ ¡AÜÌ86Ó@Ãh¢ºz-ǧ"Ųeõ46:Äãu8Î*¤\GŽüE+//çØcå;ßù§vZ‡(ªÙiÞ ¸êª«èÝ»7wÝu .ÌÑýµ“kžù€½ï×2òªQt½ðD¯š{§”æ8ðÁ²³þ§‘—o¦©>t¹(-Á›¦¹hšTóý)ÙH×ìëÙ¢èZÇ¿œË/ÂØ±#˜?úӣ̙ó¶øÐk‹Å8á„8묳8ýôÓ;uB¿‰D˜6m½zõâ®»îâ©§žÊYÔ­ªeÎ ¯Ñkyœôe ÒYé÷ ³T^z¢™ÇþЊwSJä°‚]«‰\õMÂß8—²žEÔ¡úÃêºÎ AƒèÓ§S¦LáùçŸç`íÚµûý\E—.LŸ1ƒI“&¡iݺu£o¿~¬ß´‰xÏžT“¬«ÃÚ¶ÅBÛ¿ ¡“ç4×Íaì|`¨ûÂEh®·È3÷†Á¢.””¼Ïyçõàüó§bšžß¡gÏÔÖîfá‘Jí>úh®¹æN8áºuëÖ¶N;ôM×uFÅwÞI÷îÝùÝï~G<ž+§eµ¦Yÿð\ ÞÛÁ°ï eÌ=‰—UóØUµ¯8’µï¶'’‹°KäèöC³éÉ–ÀeSàóÚŠÍ$Ô;®NmK¥ëƒ´åçleNд”ê µéJõÜ"¦ò]84„K•côËØTøÔÅ5\jØ¡N2ìKqÅGhg´ÛŽq…ÉöẤª‘‘jë÷bsNÞ`·µªò·xVª™S•Þdy]Ü7žx¯žÝ;÷½XèÞ£¿úͯéyò ˆ¢Bú‰Cg8ä Ãá0ýû÷gæÌ™œwÞyÌš5‹Gy„5kÖÐØØ¨Ìp Ã`ܸq9œw$áÌiÓ˜væ™ô©ªb˜ms„ë2PèH¡cè:1CCÓ}Ñœ~‰Ï J ËÄ5¢`Fv]˜è˜è„С¢H,Ò8Ø®ƒtlh6¦n«‰ýa'”ÂÑ8´â:[ÀùÈ—0@pê©*fš&§v=öóçÏÏüÊËË6lßüæ7™:u*ÅÅŽ Ó>¹õêÕ‹[n¹…‘#Gò«_ýŠ•+W*u ¤eѺh5oÎ\ËöÇʘxûxBGžŽ‹z‘Ï %~ý̟˜n $…· Od,[¦Ö„¡ic¶|Á0R`¥Ô[3öŸG ¦i © ÷šp•„z[‰5°•¤þ`iöµàyúrr 7 /x!{é\¯~N –'¡>T}ÙFºv¶ÀS+à7ïÀưÝ<×ED¬€ð„ãùËíw3zð°CrøÒd†A·nݸꪫ¸è¢‹xþùçyúé§Y²d [·nŲ,¤”466æñîÚµ‹½uulݶ·¼ûƒ…… Ž•2¤¼˜~U%Tv)¢¤"FqEŒ¢Ê±²ZL´—·ÀiÒ±âé&ƒ´nbˆ1B˜„)$DѶâ¾^Ã)é’vX–CÚŠc¥‰t ñd-ñ&ZZhi¨¥i÷:¶¯¤aÇ ­»É¼ÄãGä jhhPÎ5Ó»woFÍyçǸqãêH°N;°‹Å˜1cÇçî»ïfÖ¬Y¹÷•;åòÁœ½¬ò*—–RpþdBG ÌÌÜ:í‹¶½I˜·î ³×ï',Nƒû»äbŸEuå 4ÍÉð—2%¶¸¸˜3f0yòdæÍ›Ç›o¾É[o½Å»ï¾Ë‚ ˜?>={öÄ0¼ËS__Ïc=F"‘ðÑ)°¥¹…-Í-¼² B¦Iei Uå¥T”—PY^BuU9å•e—S\RDIY1%e¥Db¡z(DÈ 5CÍÀr$IË!mÙ¤-—´íÐØ\GCc3M-´6¶ÐPßÄÞÚ½4ì©¥qo- {öP¿w- ض•÷|7nÜÈ‹/¾È!CˆÅ¼Ùmkk+/¾ø"7n¤¸¸˜ãŽ;ޱcÇ2~üxFÝÓiû´aÆq÷Ýw3|HOúí-,ßQö ˜]ßBó}ÿGò|íTÂÓ¦¡Ö]ê´ÏÓRÌÛO®‡g6ÀŽø¾AÐ0æ”Sˆ}ï„ÇŒD„íIŒRÊ/û ÒÚÚÊ–-[X¶l/¿ü2[·neܸqœ}öÙlÚ´‰§Ÿ~šgŸ}–ÚÚÚµ_]׉F#„Ãa"á0‘H„H$‚2Ñ4 ]×ÑtMÓЄ†+]œÿßÞ¹Æ6užqüçãû%‰Cb; „$Ž›&mÇE@mGK.ckÖuˆ­½6©HÕ¦}èªmÕ¦jߺ±UU5­«ºv- "º ÚRhU-–BGH ’ø’'±ÛçØgœú„èxÒÑ9¯d[çòüßç}ŸçyI‰Édê8‹ÆˆÅbÄ¢Q¢ãÛ…‚.Ú±“$jjjhnn¦¥¥€Í›7søðaYµj‡ŠŠ !€‚ÉÖHÖÞå™g_eûoœWê0ÇÐX1ÌnÀ¼r5öû–¢›R„$%(- ä )~[{0ÏÁÌ]_0Љ.Ü™ÿ 9¡d‚6’q-çNdÕ·Ô€j’²-s^]"/õGÎ3”òJjPSÓé÷\azU&öÀ@œ6g}?ÉböæœÃž·hn'žœ!ß7Y™3G¸ÏÛD<™¹M®÷0k3ó°å¼<ÂdVEî8 Ïüv…S!ˆO0:l./¢nýR~³öw”Vg®í\LX®SPaÉd’h4J0dÛ¶mìÚµ‹®®.z{{9¯ÒÆ5s“5ŒF#EEETUUQ__ÏòåËÓU`L&“(Š-¸,TU% ±}ûvžxò Îôž!K\ìAD20ͨƱa5Å+ç3µ$†F—2®ZÜÂ'¹^%:BYJÆ0sœúŒ0ª&ŽÇ3ídLËèQG¶ŠAaŽŠ5oä$¯Ò ѼwA¹D‡W¯0mF®þ„s„ðŽœe8À™—ì~–Ê!|‡e9Bø6wåtîäÝœ9Á•üç¼báu;NÐÕÿx ^ÝÞAP&è?ë‹Ì¸n¯§áW÷P|k1>€3¯ÎõЍ˜ç9Y,, 6l`ýúõøýþôðikk+^¯—@ @0üB^ÙW~cu:ìv;N§“êêjæÌ™Ã’%KX°`EEEâf ®Z'«  €5kÖиp&lZωí팜 ’Ì·ºªJr,F¤µžuO3´x<´û<–'Z“ƺòŽ Œœ>!óÊ‹ðò»p&0ñw¬hlÃÏ[˜ºf’A—î3Ü(!¼ÄKîr¹hnn¦¹¹™þþ~ÚÛÛéì줫«‹ŽŽ:;;9uêÁ`¯Ó¹–$‰’’Ün7uuu¸ÝnÜn7µµµ466b·ÛÅ |©8jœ,~êªïöÐöòQÚ·C_|etïQŽ~ÜAÑm5”Ü>“²e$æ'ÐêE•¢ËaȯÐúþöŒqp÷§Ú/e3Àã†ûWÃVßçÎaDwcJ‚½LdYÆï÷x½^Nž<™Éîîn|>ß—"Ž:޲²2Ün7ÇCuu5.— §Ó‰ËåÂn·‹|?ÁWJ”(]ôö…9²óžöy:4a1 ɨÇVëdö" Ëï·qËB#F³Ä…´r[ús#òMévL1qÒßñˆd ÊÙ¬¼A p&ò{¸¹íXž'š4žßVIÕþüt:S]¦FªIв±üOé¶–køWÎ)œŸåÎçä?P9EʈR'µ9)5t§S8‚…®íÇØùïQºÚd¼ ÉK¬´f6Á?~Ÿ=¸ŠoÍÔc³Â}#rVnàL*0Þ ¾’«D"‘@–eâñxz?::Š×ëÅçóáóùèïï§¿¿ŸP(D,#266F4E–e f³9\3Xc·Û)++ÃårQVVFEEN§‹Å‚Á`@¯×§÷"ÏOðMBQü~?;vì`Ó¦M´··çD^_¸“ÖB Ï =wÝgá¶ïWòñ”;Ñ›th´ÎQÌÛܕѰ¸‰®3 Y/"ÈÎ~Ê¿àœ`ˆ‰ÛÉáêP{+Xí)÷'«’F«¢›–µúŒªAgÍÇ©ÀPž?p.ï7‡óÚ*.Ôb0ĸÿ‡ÿL·õªÌßú6æ|ÆøT^NÆwíx¡ŽxUžÂºŽ+øNËøz”øäMµsšžukç;wÌaf½DéòcŒßCTûB(¾F‰Á`¶¶6^zé%¶lÝÊàp”LÖ,Ì`¶µ*`V4-„ª:0™Ñµ«FÓ«a¨ª†Ø°-WÔ|yb0p!Tó„0+X†$UßZo’¹û±m™¿¨Êlm_“ùº ‰‡ ¡‚¢B0.‚;á@'ôà\\C$¬¢(“4䌦ÕXùÓbšî-`EåaÌf³˜B(®:ΜfÎ ›wï#Ù}šd¿âò嬰n𳿢ŸWƒfÚ4(*kqÕ˜Ì)7éËB’²‚ ñ×Ê@(çàøÓp4­!hƒøeXaÌZJ+ôÔ6¸gyËlXl)ÑŸËQñP !×Ã$q+}$‡‚$Fþà#”ý­(G: 8xe'7Ð8œPQêªW”8  Å`-Ëø³ÖZ]*Œ5¤OKºqwN†ˆI%u¬(0…Ø(ÄFÑ&ƒÌlÚƒ2E†‘½C4ÛEŸzý0„+©Å!IPVc¤~®•†y6f70c¶cî¢B… ‚k8*ÛÔ¬ô Y!q²‡Èÿ:h;ð!ÿÝ·ƒ¢Lv¼pRi“ L0YS{u\ø´©}rüXŸÄK&@VRû¤ ¢q#ƒFGD$Žª$®Ž¡Öh(--eþüù45-föÜ*ª-Øz4šÏ—qÊ¥„Uâ¡B(®’É$‘H„`0HOO»wïfçÎ9r„±h4•¬™1¤A£Õ`)11}áT6ÞûKš4Q\\ŒÝnÇh4ŠC¡@ ¸Ñéïïç•7ßâñ×߃žv„Ñ „‡A¾¶ älzLEFLv#6§™i *ð,«bêÜ2 6y[NõpB@ Ú"0ãRâw¶zŽBàœéo/|0è‡pèã5JZ Å-öR-%åz\Ót(õ8J(­/¦¸ªp<ã=ƒB!„@pA‚ lÍŽ£Ñ&F‚àï‡?êÐa¿Þ³gééé¡»»›¾¾>'\CñŠO’°Ùl8jjj˜>}:•••TL-§´ÌHQ‰Ž).¥å:ÎY¦æ,Ô:δ¹½ÈùB(—‹¢(D£Q"‘áp˜h4J<gxx˜¾¾>|>_º.ðàà`ºpö‹Å$)]8{³X,8\.ååå”——ãp8°Z­F, f³‹Å"Öÿüò¨|゘¡ IEND®B`‚pymvpa2-2.6.4/doc/source/pics/extravaganza-dc09.jpg000066400000000000000000000775511323370031300220700ustar00rootroot00000000000000ÿØÿàJFIFHHÿÛC  #!!!$'$ & ! ÿÛC  ÿÀ*ô"ÿÄ ÿÄH!1AQa"2q‘¡±#BRÁÑ3bráð$C‚²ñSc’“Â4Ts¢ÒÿÄÿÄ5 !1A"Qa2#BRq‘¡±ÁðÑá3b$ÃñÿÚ ?ÉÖ+¨L2¬!ßòþu'gÄW–2•ž3ëÒ®“ØÙÝf…Y€Àn„}Fõ ¬ÿ‡k5† ~peëï1ß}ñÓ·Ö¼Œ5q’©žžZVęн¢Ý[2þÜàzÖ™£{@Ó®ñø”Uvêé±5ç­CAüçìDæ"¼EPŠŒdô?,úPµÝ"æH.àxd‰Œ’~Íðqtàœä»WOK‡*µÇöþ`¬™!Ãäõå–©mt­.’Oòç¥¡Ô •5ä#î­]GŒÊGbpkLÐý§’«Ó Wɪ†MHsCõqäâF÷ ú·S½?Šï=?­fÚoéZ‚ãÁsû¬r*ÃäCŸÄ§"‘¹1ºb祌¹‰qK zš\L§½U¡ÔAÆNiüwjÃfûÕèkŸ’†M+‰7â +j=n1ñ6>´ºÌ§¦OÈUµ©S+fà³y€ù aõ˜äØ@=¬ñ|?¶O&Ù‡È÷úýé[~E Ì¥ToÊã’¹ü¬M-ÕÂDŠ2ZGÀëXæ«ý¡}’Ùë3iRj“ÜxÙ¹··-eì­œ“Ø1ëU^–q—´²³nTÍ}õ{Hc "‘ØÝ\Π/õYææÚÇ‘r[ò¬z/í5ìÞIBÊš´Q1>ü–èܣוÉúcækIáî)á^1Ó£¿áÝb Èäòg–EÁÁÊ0ûPê'¨qK"¥ü`Ž»«Ý­ôŠU®]TöŒüÆÿAO`9¹yØ~ón~毳XŸ*žÄݪJTkFQ—Ek\v¨Ë«æB’ÆOb*ñq§c8Z‰žÈŒíOŒþ”J4–w6™ðóÏ_ÑÍåÞ¹§JdÃ-ƒ+Ä݈÷@>U\ÑuI¢¸:F¦ù¸A˜¥Æëæ=|Ço•'.:åÇ“Ã,¼Ìz±?3B(‚Œ V¢ÅŠ)Þ•V¤£ƒ@ÐIŽ•©dZf­J«P4b×mË7ËñÛ?ù£=~Ƥᘃ¸5’.pÃ(À«0zÒvSþÄ´‘Æa8÷SÐÒåA)S,±MëO¢›¦õL¸â;D‘žFý›rI' ¾{R#´’üJ£`7¾À:®ñ±ÊFøïNN§om‹<é ²íšÅµjÐB¢$<ǘ†(î>uOŸÚ ÞÆ×r\Oç9H?i OsŒ àüÀó¨ZiËÀo,cÛ=Sk«ÀØÃIÀæR¹?Z”°ÕÄÆUpÆÜ»ƒßù×m8¥™cv½f1È®÷7<ÊgÜ'á_A¿çZ§{NÒžâ[tÆñœïƒœŸ=ýwò^]$¢¬(æ‹=øåðŸÞýÓIé’vD9þËöb+ jš&^;yíSÝÁ0_™=þY©]ŠEÞ³[܈³r{g5Yá’]åÁ®®£ž‡?*+jz¶>g™I¯¿y ùši6¼Ø>ý£&êþ £Šî?ƼCqœóÜ0ëW[Q·Ó½—èº|z¦—;´AÞÚk Z"wÿŽý{Y­Ôž6§¨Êw/>3['xX𦧱֠-‘|)~°PF6ýíëØè.*×Çßü{Vï!KÑKN Ôunnáñ (Ä[¾G/¿!süG`*7€J¯›ÖPËiÏž9Gêj[PI,øÍ;…72ss=ôL¤dŸð#QÊvµ@pœ†»ºèe|§þõWê ˇÈíãr6—âXŸt}MugQlüUÕƒú9³ëßL¿Á¯¡Þ›=¥Ì;˜Ék½>I§ -PÜÑx…´Òm#O¸˜LÖê$Û$mÍè|êÊÑ[ÍñÆ óèi 4Õ ˜%Áì¥29)Úà†“ì¤Üpª¹”s¯†ä¸äŒeH” Ç| ço#PgHÔm­Œ±G2!&¹Lõß±lïÄ mÂ|[q÷˜-nÜòþ'ÉIè_ퟟ]òKd|Œa¼ŽÆ¾oè¶—P\r 1`àã$/µ{SØW´{Ž6Ònø]$êúZ«$Ì}ëˆÁù†Àžù®kS¢Žûqd’ŽâùqeŒœmQ76JA÷jç5›¦JáÇ“uûÔlÐ#’¸*ßÂÛÉž9ct˘µ7ÙD¹±#8O½D\ZOô«õÍ ÜPwvxÎLd\âJÑI¸µFEDObñknP;ÆÃÝ?Ò®6ØÎÕžñWðß Èö÷w&âñFM¼™—ýG¢ü‰Ï¥]źN¢¬¯“jVÅùà ŠOà=þ^t„‘zVM«ûd»»v‡OÒ-íÓ³Ü1r=vÆÞ¢“ÚO++¶¡·+ļ­ùgó­¦ÉVSõ¢Ý+ÇH²UFö’nfHu+x²ß½!Þ¯\Ayl—Ò "qÂ…ÅdžßBh…})Ó/¦i2äGÏj$Àh¾ÓíõW r§(êpÈ|ÁªÝ­î‘v†B ÷e '¡þùØéW¿/½#4M C2,‘¸Ã)ЩA1¬wq•ˆ²ÚV—4J“x‹ãä:Ó=7RÕ8wPþä¸Öå‡I•±+Àßksj2Hy™šýw;Óˆõþ “E×Úl몢`Í-à*çý$QSIÒãÁ]:ß#»'1ûœÓ¤Ž8†"Š8ÿЀ~”>·Â'Òûº¼Ú ëKk¥Ûê1IÕe²3€?úMAqiW“»ÜÛIaqsÄ!ˆ)‰½r¡ê*GŠø‚M>ÁZÌEÌŠI ֳyæyd~i’Kæ»ÔuÏAÇo‚çcí&Ýl£K›žp0̤?SRÖÐ4{£ËpÔžì9‡ÜV`-q/‚„¶:æ~˜ýsA-½ŽP}e¥õ¥êsÚ\Ç2ÿ‘³N>uçøŸPÒo#¾°¸xÝwÛqòÅk¼-Äi¯é¡¤;¸Æ$AúJ-í:h²ƒëG Hæ„ :Å̘\íöªþ·ª%¡Ô¢›™#nFø8ýjZgÄîó{§Ý󬛌µÔ’ìØFUÖg#f;õ•1†çH-Ô­‘ޱsq4Çñ ÈÌ2s»`ääö8ûTײ³û’J‚6ÅÜxŽB§+“îäùbšKK6å‘f;V„1¤SÉ‘µÀé/ç†6ˆIØŒž¢‰ y£s€ÅR{|©³#@fy31ßqMÚ¼ ÜüŠÈòDÁT°9Ü{ĉle1…Î F,NI§2ÊZV8åØ/zFø 3®I»+¨¡…ƒHæ)±Î‰Ón™üëZá.#[M¶€C.îW$õÆÇþyÖr0ÇÉ jÉcy¢³žb¼W§0nL]ÆÜÜü˜÷†üØ8ùàâ´®-ºKî,ŽÚ=B;Ùe‘cäüT’¶ä `ÇÎ~C•­¦ã¿#+?þB»Ç1¶¦éöOBë9ç³ð²‚OWèw5\ÓOáôè×q‘Ì~µ/íø”Ù~mÚ4E1ªÊ¸ÈÏIIa×½D(åEQÐ U]Rýf×à³§âò93œõüÅu1’`‚qÞº«í¼»+U^‹áâ»”Šó|âêþF•Y4`ÕÔpùeó¢½½´¹%cÝv4Ü=(¢™Ö$úsâ7£mMÞ9¢øÐùT€ŠPKçF¤üAÍmmtœ·¬ƒÔTtú0ñ#–Æd…£1+)±ÁõÈ9ɼ£t |Å5{9~ÍÃ#µ6k§@I_e æÂkU»–ëMs#‚b–ѹU[˜”Æ9qÌ09qž»b›Yë·6² ‚èÈXà!\|ÁÛìM_›6‘HùÓ ½'L¾<×±—þ,`ýêü5Rª—%Ià‹æ<4?h×¶n¥eÁÁ²î)¾“Y×õɘ®îCޤgaú¥^ÿ¹…¥¤°Úºør0g ªIÔ‚~ØúÕwŒtX-tq¨ÂгDp¬€Wɾù®iž7=ÑTÄÏ Þ6ÛèËn´7ŽR#œ¯1 óúV•ìÿ‡K—•f$Ãå=±T‹4{¹–XK´ÜÀ"÷o§üëZ§ ÙëVs(¿µ(‡ry·­<ÒÛ )i1©NÚ,\ aw,s¢,L7!Fõ©ð³[óAÅ)''n`{Ô4ù¢ÅâŒF:ãj&¥ ¹¹ÃŸ>îwÚ©ú“JÓ6} rtÑç &m îGrÅ9·=ûgþzÕ£€xæÇƒx¶Ï\†fic!.# ¼±1!—ô#Èâ´;ý"ÂñygŒ08ýï:Ï®=›.³Çv–zc¤L—r“ð aÓÌž•Q«'\š)C˜>>qǨ[ÝÙÅu f):“¶AÒá¡‘pà×z¤fÖ 8-æ8T öjm7„ÙHÀìk&iåí"‡L³Ý3Æ „«ü,wúëQ\E'ºU‘ÎG+ŒòóúU~^)cŸ{*Œ»×c¸B&!”o“Û×Ò–±È¹¢»3mþЮ8rÞ=Dºðu+…ç–Tø¢ŒôÈ÷êÏ5æüEä¦Ydi]ŽX“’jc‹5Çâ^5Ôu#3I“ “ȯ zà·ÔyšuRÈCa‡Q^§8éñ+ìÇ“–£-#6‹M¹“–ÌpN mŸ‘¥ Ò//,GßÂÈW«4ŽÒQ5”`œNÅú-£™âÓ Yøùk¥©ã„[Ž7Ëèúwˆ ËrÝG1éR<=Zëèðœ”t#ò­ÇNá}A‡–ÖÙ ŽÃ,~µŒë ö¦°[áâ–PÅÅO§¥TŒ÷ͤ36Or.á½*aŽ´–ã¨ÇÌŠîtÇÆƒÿ5?z2v²¿ÄzÄðedÞg–cƒÈ£®6Æ}k½¼šîùîÌ$’œ–ÈÆ=+Lã‰ÚÝ¢[wQ$ŠëÌA*T°cÓ¸8ûšÊݤI~ u¾U£§I«ELí§@óaä÷ÏO:HÜ’åÛÝýÜGóH±ªRyˆë•6Ÿö’äg$ù`•\¢­ü F#2Ùbwå2Æ¡UÂ÷¶ôœ!ÖLAÇž)ÌüÙÆ»TQ×ÀQ ž~U#·tJùæf ®(d’4R99ËXÓÒ›ÊÆBŽUc4T Ñ#5Ê¢`}Ü|9¥`»’’BX„œ}GÇû<Ù󥕲9ÑOºs“Ú—(®†Æo³\àÍnk‹e³œ ŒHéëùÕ¶i¤18DRØØsµd<)}4z¼1ÛÈü’äH ºo¸>µ¨,0÷¤ºaç?@+2Ù*4qûÕ¡Ïj\?¯ÚëZ$òÚ¿ˆ‰!nR݉å ìpv=©þ£ÅKªêë©ÝÞfU“Ä È äƒœB½¢‹Æ?ꙇó¤¿|P#|Ï7ë]Lá±|-!éQI"Šc“ #}é´BÝ)ô®æ¢³zÑ®±ÔRÇB’ÛµEqLZn§ÁÒ\+¬jèÓ‰dK…ÈûcÒ‰ÅE‹§Hp$—ÝLþµžð6­uªèºéÿ¦\¤ sgcæäÌki#-®o¢ºÏ7…wCOg6’jò)”÷F~U“k¼?Äv¶ö³¼–Ä’é%¸vÏl7•Xt>ŽÈ@ñò/íB€ v®–ÕCñ¹¹[EÂÉÈ% ƒ¡ÏZG‡tëùe¾Ô¬ùf!üPÞþ wŽžU–ñ©«3Gl“]äæÚÕÑ<┼Ñ?eÆ7#Æ£V·Ws€ cz±Ç¨[]BÏÔR¢ìJ° |ë¹³â=FT¶»ÑôîU x£läî}NõaµZn‰«[ÃM$Kîòóàn)Œb»/ã”äê‹5þ³¢ðÛU¶1À_f°Ÿh‰q"Ý£iSØùTýÝœVÎŒÚ*߃ŸU¦|ó¿Ú«|Q¡\ CHµš¶†i˜.6ÊáÙ=rÌ; ª!Ž0ɺÅj2Êxš£BáI%“…lži‰M¹úž•0ñ+ïŸxt#¨¦ÒÝ%¤qÚØ•*ä°ûÒ¡µg?áŸ9IþBª<¼ÙO`áV^nVBGñŠæLur5k}E‡¿unŸùK:DÙÜäsjäþâúŠWîw§ö·(êÉÿÕH³Æ?î(úMÞÁý¥íÃ|Ž?Jjúm·>CÈÿë‘åšïU|“é¿ãÏõr~˜þtÖê;kÍ.üƒ”XŠÈI4 al§&%?J´ñiÚ‚r 4[¨^£ëSÛ¡øaSV3àØ­´ýÁd‘by1-±$ïZu”Ѳ$‹"º¹È¬ÊòÙ¿ºÃ,'ÆW>˜Ø¬‰Žo‹ ;‘ŒçlÓ=?[Öa¾1éöò[+,‚DsöÈúæ¬B\–œÖ:M¿6QH9Ú‘¸“–6lãj¨iYø­*y.1-¯*ʃ‘‘ÓÏ"£¯xÿM‘üãIÐrÂp~´ÆŸG,°ì—Ô/ÄHrrk ‰e¿ã{ýA²<bV##?ó5¡]q5¥Åȳ[–WçoÝòÍWmX-Ä$r¤ò½ÑR;¶@?`*½l·\ƒžK$jø±Jq™ÏÐ ?€;Ï)ûÒžÛÚ´ÑÎã¤1ø‡líÌó¦òŸ 2:Ò[e%”^=G¦'¸ÎÜÛ31<¾µ—Hfñ V!Xo×JصÛy/­^<†?ÂÛæ³½6æÞàÕå$€ÜZº«n×ÙKW‰Ú’èŠÚG¼ýœ,A\¶w æsFx廆;zv«ç pòêK¹Ã"4.±Îvß½/ªðÅÖšˆ·×ñ dSr¶Ûw\×ëW=ut tRpÞŠÙx‹æË¹÷WÌRÐiÿŒ2ÄQƒEÔ¨ØoŒš›}>;¤…-T¬à¬\°ÁLššÕxKOÓµ}y„SÉâ4iƒËóÇ^´^ £ÑGšÊ k†"USËîœçÔbè•ÑHw­ézF…-¿à¬aD>&‘sÌ~µQâŽ}&oÆiÀÉgñ:3ì§Ëå] ɽ¬ŒšV£¾<”å<»vñŠ!,É̦ŸÛiwú£“i ÏÊ7¢ø?*‘Ö4WÑô‹t\Ý#GÝ ³÷ÏÖ›¹'Ee 4åà™öujf×I#ÜŠ2Äžçëó­{ÃÀØòù«p^—®›ä(QfO1;±ûtÞ­Ù®?*ÁÔO~FÑ­‚;`ƒß?öÚž!‡9ˆ* øzÑŒ`ôaý -~²lX¹ýŠÍÍÐmß·åI];ûDYLtòþ´B<ÁüévuüÏûRDåùP#±ÿŸí]G*}?ë]\qVžÊé†-(—È/)ûÔiµÔ­XÈýèÏô«‹BAøh¥–)öŸa§(ôV­x‹V³|‹‚Hþ!‚>£z³Ø{IÔ`À¹ x|ýð:BKXe’4õ Ó ô[Œü¦ 7%[aHž› ¼ªq^çüÍNö‰§Ý²Å,^ùì‡ýõ©ø8“D¸F·ad?ºÊvùžŸb¶k³•‹rN9ØnE>[‰mææQͪ«Ñ+tÙ››êërXâ«äÙ®®­-Ô\Ë:•sÍœŠ¯ËÆZj¾þ-¿LÖ-Ì’B#UájOr2sG 'ï2–o«É¿Õ*Eå¸ÚÓÆÀ²”Ç瑟µ%qƶ¥1mi!o7Çò5LZ)L1#½9i S—ÔóõØ³ËÆSÄVê‡ÌïI¿j òˆÔ‘œ…Þ«¼£íëBd" ï¶Æ˜°AtŠò×ç—rþë¯uã±wKyf?¼¨JþxûTw iGLµ–@A >y‡Ê¥xr)ä×m-Ù¹æA .w*þéÎ7ÜVµÑ¦Ÿ-Œ‰‰#$äAÞ¯«ôTWVj}-©Jr}‡°u™‘ÁíüêÑa« €Ò ¬öÚY´û¾PyӨϕZÖv¼S F¶æÔº§fÜrW´úí¼­%Ä6òÞ@6/:‘†G’òÚY1lFíÐýj§w©µ¬mov¾ ó9^daóÌ …^(›Noú˜/¹ýÕµ2d錑ö¦¸_6YŽJ^ä+«Adº…éð”8r#Ï}¾õ41ÁqŽ™ëJÉp×wóË;Æ×!¿j±·2ÆÝ×é°Ï¥/0?*ÈÍ/ÖRð*rSVµÔ5aª(XQ‹(|sdõÉ“òÍ8Iur$>¤ÿJN÷@:r¢—,³j¬JÅîŽÿ«oŠãêú“FŽ9b•e72±R01·Ò…NM-Ûz^é ÛÄ5{íêæØÉ&¦î< T’Tn}îƒsVmìÕ¯B<ª•sO)!Ê ò1©©ýínB·IÝ‘jÑÁ“ÔVü)4ì¶ÎÖ‚'ðíƒ7)$·AP6—úlV—¿¹<‘à„ç•)®¾§ij'³·[ˆ ÝDœ¤zôªÕγ¶æ94’e墻gçðãóÅYئ¹,BSî(µéñXËiÇ„„°ÉfNµ^â+[MNtžâ5xíAŽ$bA;y£ïO­®nAYæF€:æ5n¿Z¯¯4Ó“ÍÌXç'½QÎÔ#Çd<—j‰¸ãxUcpTòƒ÷þt°#ÌÊ“XLD®Ç­ ÏŸÜU=¥;˜ÿ›õ¤›üÅ—>_|P•;|_­JGXƒú~FÜóö§/ž>¢«Ú‡húi+%ÀšQÿnÌ~½…20ru.SQW'Dæ;}ñU~,âî‹ahü·“H¥›#Ï|ÿ>«zŸßÜŽÆ1kÏÄß~ÕM½¹žæs,Ò4’žf9$ö­m6ŽJ[¦fçÖª¬}üž•Ðӡ·¸$rŒm¿OåRÚ†Ÿ¿?Š¥›ï.I5DáKõ¹Óâš@b˜ IêŒ6`~G5b¹¸7ÖæB,ªÙ,$ÊimS£ÐÆq’B—ö0/ ]ÂöˆâUæ%pvï‘ßjƒ½àù/´´Fž<1ï·¦¤õ+½n-.-5„^oñ¾&ǨÖœO¬Çi¤*Å/2Ƽ¹>•1ß$dX§Íû !t«)–YQ;;̘“äïŒR\Ú^ß4¶r£B,j§<ª1TŽ-×®5h$™ˆ_“› ¸ÿ*µmªÜZÜC•'8ÏJ7¦”ù¾LF¶0~œWá§a-µp9­ð3Ÿþ"y|ª6å†O—­TtÎ0¹L…’Eå`ǽXmõË+ÈùKxNˆì~µO$%M‹4$û"î—9¨Ë*ÚæQ+ÇûE9·Ú¦î—'Ò›„Áéù¦¦âíSTÊâEyÃ’ßi+ã-Á><2.ÝóÚ¬ Ä–ÜB‘Xê:SÇq¿*É‚¬qØŽ´¯*¬±HÃ*­ƒò;T¥¥¶¹§Íj Í֦ؔ»árìˆcqü—ÁU¹ÑµÞIF™§.—cä8ç|tÆwÍDXÙ¼MÀ<ó¸ËM-ÀÈ>£·]M¢‡P˜•=Óò¦ŦÌüâÕñ¹­,Íp´»ÙOÒ´9#°R© ËžUó4ß[Ž¤éÈ@'ήײÇonV Æ1YÇ\È–/È}æÎ.7)‡8Ç64àY4k æâúX`ð]™8-¶ÇÔzU ‰µ¯ïí~{Ä[/ìáCÙGõëDšv·ÒîT1W¹u^_ò“ú­C¯ÃŸ#Zxñ¤ÜÏ?›3pX—F—ÂÜftÍ* >êÜÍy ÈÄ0Î1Þ´›;Ë]BÕ.-eçFêr=Õçû+–³–9ÕU¤SÌ(#êZÑ´^+´ÔeUÔYl¯À9Iòßù6Õ©Óóº(µ§Ì«l™dcî(÷*|otáàl?ˆúÕKPâOCš1tc¾¶{’®Q‰AêúT…·é:ŒVñ1{yUyH—¤äˆ½ê‡§$›.9+¦Iô?$Éÿ¥8ý›®T©¡¦ˆc=‡ÛÿzHcnAéùWRÅ$ÏCù×WYÄ£i°Ì9¢uqæ¤aya¬M4ò,h;±Åg¶÷W°L9¥‘1ÿq‡/Û:†±w}Ê’M#ª v-ú×GU*lV³(ûy„úÉñ‚¼«²3š¼Ô®%Uæ>é=À d_Ýæò’•ó =~8‘å²jrM»}LŽe;Ó¸/„ŠM˜~u¹ï°§ÕH#loG±äÉÕ`.hüþö¢£¼ØoÛjwÜËçQ²„6Çe6:P–çMÃç9£«}*(‹ÈäÁw¦ŽÜ„®ÞöãÔ÷¥óîíE‘9ãïŸ1\-“\1ŸÚº;!yøS·ÐÖÉÅVH— |£1].säÀn>¿Ö¼õ§ÝK¥ëv—êkyVM»Œî>£5餂ÛZáIíæ‘„óÇ)8åÛ çË|VÖ,úwv=£Óš—ƒÕb”Heµ²©`|ªKGâ»yŒ)8XfOÙºŠç½8Ô &u‘Hœc“U{» zò;lAžCÊ‚Gs‘ÐíÔÖzǽí®OG<›ôË®©MjÍo{êù¬Ï]žöÚê+[)Ð]Èp1¼+¿¼|•3ÖtÿÃê¯g£kú··7›ÅJãâa¶Ã9åžôÖÁ¢€<6m%üò6d¸o{2ÇËÈTäÂñªl©¨ú¥âq‚åýÉ‹(×Oc…ŽFå‰Ý™©Û˜îC£¨Y“óÚ¡r ä÷é\²˜H§qŠÊž5.|˜ú}dñJï%¢ÈVÛ·ó¥y>t6„Kl$s(ýi¶³©ÚèšDÚÙýœCeY»ó¬úmí]ž½N;wø"oKxy[WžõN/×µ[§•ïæ‚6>ì0¹UQØm׿j%¯ïH{©Xy3“ZÑú\Ú÷JŒé}B7ÄOA‹‹C¨-ºÞBÓ3# dnv£^ Ý"ìjp'20Ä‹Ø?d~ÎÄâø$lŸ þþïÿ•z@Z Ne ¤yTÇÁ' ²Ô3<Ø÷Õ pþ½a«Øä!eÏ)Bh·:%ˆžk†Xz„ p=)œ¼msrnln¥Ó\õ1þGjg7jK7…sÄ×W6ÿ½Ä#-ólšk‚K†:åêZ€¿»0ZdYÛŸ 7ñÔ 89åôô©FÏIÒ8Zâ{û”Ó­b\G À(q°PAÉôÁÍd|1í1mõmuç2Z3 éb Ê;s*ùútõ¬Çƒ.våÄBËšiIó#_‘Šø©ïE}h-ï,õ¿esÄIY#9— <—èj³áÓr„¹<ÏÜT.¿Ä~ƒµÉ3Œ¤Hw>¾‚§Ý–(ÙÜòªŒ’NÀWž¸Z“YÖî/#6#R~\Ò`õ¥ÏH©ªÏèÇŽÙ%­ñ~©«–‹Æü=¹ÿ· êz𮓰& ß4^eÏJôPÅ*Š0'’Sw&tŒyIÍ Ž‹:«;}i ØR: Ç l0ÁvÛý©É FÅe¨þ ŠßÞÛR+$n:s?QùеêL×ì.VÛÅd!6ly©ˆèüEow¦®«7„ÉþÀ8åîþF´+Œø‡GµFºÓ_S·øVê× Ì˜ìk?.)Z=—V¢¹%fµ¼IÔÞÛDæi3·•Fq´-Ð[Ûƒ4År¨Oæ})kÞ8¿Ö‘¡Ó´™â${Ó]/‡~¤ŸåYÞ¿¬ÚÙG-•É»»”æ{Ÿâ>CÒ¦å'ÈZb|¦FGs%ƧqâËâI.C7¯lzt¤ËžipF)ž’§w;•<Æ“Í4ŸçéWZ§Gž“mÛC#*ƒÌsó§ðÞËêæ¡–LmÚ–ñ ‹4‚}œ¥E²Ãˆ%VXç÷’¬Ö×]†wëŠÌRà«¡ÇZ›Ó5o{ G;@ÏÄ3¸¬½F‘5qìÑÓêåMð_ü ÊAèvëQV’Úqu¦™(^­¾Á¿‡>¿jšMWHBCݨÇùª#ˆbá½^Óß ¨÷É]Ç‘ßqYºi¸J¤¸fääÒ¸ö\¸—ˆô[Yæ™yä˜Ä‡$Ÿä* ÿèXÄd½?\®ç}ñY´W6ÚKgy#G9øG6Ï;‘VMË@¸äal·a:ó±­§¥lZsü-’Ì5 K»i¥†ùgT°lã:¢q±øˆ1>¯72ï‘ô§Zí–ŽÏ-²˜Rmš5;)Û úV¨Ç0£¤0Ô6òÀɦaě܊:¬òŠÚû#d‘¥™˜±}ö'¿­)À9ëNa‡N$+_õð[­Ä‘B­êÜ;r„`@óßjÑ£±RÛgfœ$l åùéAc—üÆ–‚ûÝÌi2c¢—’ý£kzV©$:v¹bdWe䓜όoÆ~tωtßîM@ gæ¶›&0ÃuÇU?—Þ©’\À+>§zЯ&ï%ÄŒx£ñû˳:£,N2OÃ.Ã.è¸ù#ô>+ŸOArK~ë×åZ5­ÅµýªÜÚÎ’FÝò6ôÜVÐÀ `æ¤l5k½>Søk©"ŽM›â‘›K|dž<þ²r5ÿü×U­]B³Å¬»#Œ‚¿¥uPôþåâ:â´) /r[íÿ½B´˜$õî*w‰ð'3tœÕm‹£`ûåWñ{—&·ÿ3YÇ0Ë{§ò¡O…á'!†TÓV`¸ ½ˆì|¨þ'F\Ô_OéV6Ñžù9“*zæ1s–8¤&™_>´)ã¬/r`o§6655Am”úC…•‹{µ#ÎÞ¢t§Àe;œìõ/Ħ†\pÄÉWŒmÅ( êôÑ"™{œR¦Sý£½%ƒ¹:HvE(º3L–òÛ?â ç¥,“£óçŽÕÃx2.âÁš>o!Zÿ =Íÿ XÝE#\‚Ñö”ìqÜòã~ݺœãì;¶Õ©{/»1éZŒºbpÍu<Àî?úkKé²K6×Ó@ÂÓ¢[V…¤1þ.ÝЧ½ˆÐ#}€¾rHoYý÷5³\Ûhð,wL|5Ü|C©Á=6ùüU#ÆüT÷ò3O~[eø‚ƒèç隢Ƌ{Û’zôÝ^¢Èý.þFÏQ=¾š|–q¹à™RÂËú梅Q‚v•È¥S ³Í à>FÜ£ó¬Y;ìBm‡qÐ ¼ªwDá{ÍrÝnmÚ7_<ïQÿ„üB~6S¶h㪊Ðxs…t½JHµ.â9ŒÈ¸å·˜ QÖ–þÆßÒ´‹4žLŸ…rß iW6B ±»ÂO¡ï^zöÙö›©Yh³ÄË7>,„ì1êú«Ñúv­øR1äª6 ½vYQIRE7''m“|=ÄÚ¯ Þ‹‹ ÈBi n’|Çóë[Fƒí+@ÕâDº•të³€cŸe'Ѻ}ñ^|®ôO>n_䳇S<\.Qèn:×aµáY¢¶–6–èˆG+gîÇìúÖ,G®i¼7³ò¤¿4j}Üö¥T•:m7¡±Z¬þ´÷ ’Bš(øh\á­ÙjÑPrÄù š¸á뛋h¥·¸n@ܱH .ÙTL0™UŽp¾u#m¦Bœ9·‘wY ò}¨sŠtÇC¤®Š´‘¼r4r)‡Æ•†úúØb ¹båb*fâÅ_I+ò;8ëýjf=Mü ´Ñ/?B 9 –¢+ÁjYKÉP›RÔ'@“ÞM"ŽÅ‰¦£,ØsçVé´ý$`1þ–9¨¹ô«hÜImsÌ;« ~t0ÔÂ\ttô™"¯°-žm„Pžião*;>|%eHÈïJÈ)¾l ïÈœ£–SŽûŠäú}üéI”xhÞ˜¦ãàÀ©ð@³>?Â)D–ÝdóFÛSy3•6Þ@{еÀI—5,õ;ï<5æmœûí>6­Ëαì07?Ö¬ٮLJ5ïh“ðÇØ~2 Ûg{qâ2òÊž÷No°¯UñO³Ofœ3Ázμxb&þï³–äžS’¨Hr¬éh2JocUþý\ZÈíJKŸ÷î|õÖõ;{~#•-â(ñш;ŸÔT·XJ––ê·ßd*©Ý¢Ë#3 ’ÙÍ61F­†**/ÁWך“’òI_ê÷Ú´’ÊîÜ‹‚r~ÕœsnjAÊÿt¨ Îúã$~´ÌuÍ9%À—''l2Gò½w+.̤Q\1Í¿jæ@·9~… HqI)ËçÊ€MX(2sµhÜsÖsa(#Á>}U³þõßn•kà‰¹u©¡ÎÒDvó ÷ªù“q†U$V¯ 6·“BÛ`×Rž·tƒY_É~â;¸o."’”-ê• 6=õc¼Ó!k9Ybåp¹Ux,€à®q¶qTð­±Ûbµøå)¼‘\1†lå{õ§ú^ŒÚ…ÁžEQÌyäýö¤ã†ægÄQs`~uUÔŸ%Ä¥Ú!G‰“Î@^žéÎi)¡òé€Ç~Pw4Ѧdv^@NqÌFùÐxÌHÃ.ôÍ;Bw¦©¢RÚÀFÇ;eM':4nÈÃqHÛÝ7Ų²žaRW,·Þ*üJqE J2§ÐŒø£(nhmí‰éŠo ·0ûYFQÅ7…¹Njâ2ƒÊF  B D˜¢œä’s@òÍM_½‹j²éÛxNê*ͨEnÇü² ¿'5í¯í¨>ŸýŸø£b¯8† &™ü³^öp-}¤påÉ8jVîOÊE5îÏí5 Kýžµ×QŸ Kg?/ó§cì˜v|é—ùÒ »R²:O÷³B5¨ˆ“‡ôeD‘%x¤’Ndå ûBqÖ¢­¢ñ®á„íÎá~椵nB¶!F?éPœyÓm'Á]jÙ§‘c_˜³†7¨9–+»w½Ðc—7vS óÀþU[¿Qôñª… ØvªËeãIªÎ¥KI"ˆ”ž§$/òªÞ¦Ì5)üDUpØpc|}jNèoÃ4rs\0P…sÒ‡îIÊOLT÷ 9ÿÄö¡N>/ý& I$` žá8Éâ87Áål}.imv2 îT+Æq:ñjsç¶?•W• ]÷«gó&«o;aúVT íµ]E š¹0{t"º–ñØŠê‹gR6c0 ¨9ªYˆ[ÞOo"gÃl:Øý«AzUW‰lÌö÷ʾ쿳|yކ²1¾M†FÅ; Jã#çÖž˜…ÔJ­ÔošF09yÛaŽâ”Óœ-؉ŽÎ0)™W·‚cÝí¸~ÞX¹äÙíQÚæoaà$Qª—$œy ¼ZEÿN»US‹™Rú'cÉúŸö¥A»E]g¤Tn¥HU¼Lò°ÆÝê»–”òåLôÏSæjWZ¸F‹°Ê~dö¨ˆîm–eñUš$ýÕls·rkKx³/Oí‡>GIdÈ€ÌGÄ; t±™§@— Pw§Ö¶×–“r@#HÀ*¹Ï3yzŸéH {·¿Anżû ùSZ-ÅóD”ºl‘[”â°7jiiexnÄv¶­ã7ºw&µNàÓzö÷š°Fžlg ퟨÛó­;…øNÌ]PÂ9¦`éÊ1Ê»íé°FY+…É­—/ƒ,Ð}ßÉbº†¯(µ×˜Ä —9ì|ª‰´ 9ù´Ý&ÕÜÚ‚f” î:(¯Hq%½Ñ°ŽÒÑ„&y.~èäüûRPh66ž¤'±ó'½!ä•Ùu`ƒ$yÛMÒ4äài®å·Ë©1¬ƒ•Ôî7¥U ”YÝåd\l~«OÕ=Ÿê2q5Ý®Ÿrë§ÝÌeš._v=Á%qæ21UÎ?áUÑ!Ò¤Frbñ þµ*qÝWÙKYŠ^ƒ•U/æ7€‡S'ñmô¡šDŽ6vØDµb-" ×—Îæâ3v"nF‰wpç©ò½JVÏûÓä…—|œ)ÇÞ´½>K[ks3JªÀe˜÷5œÚ(¹¿Š8‹¢6ÅyëÖ¬×6ÐC~*11 ³JóÇZ• Ò¶zo¥ÉÃ«Ë ¨_êš÷ ñ]͕͌¤Ú3ÊãoB0©Ÿ.õç&fwgvæf9&·ÍEïßû0êÒéÍ®ƒ¨Žæ¸ïÊÃÿ™¬µ0Â)Z¨Ë)KkéCACV ÀЊ/z0®87jîõø×u¯LPØRHq!¡®8Z‡µé\zW|4­»{„zÒ&”· +gÏ­p2èx?Ã4I²QT £&ñÑân®­­Ëa¤(úœPK¢!ø‘uÐ}˜j¶ü7¼’Kï"¬yÀõ9§ðû4Ôôë–K©î†ÜñÚ»«}@­5 ½X4mR© Ä!Ê0ò>FµY.ìVåXÁ¨yYWeÃVc„ÎywéKÜJž%œì˜C.zòœ`ý¦óMãLóc—ËcË&¤áC€2hêÙÀ¤ 2hèÇ3@ÐI‹sdìµ;Â`ž&µÉ ñc?é5¿ï œáUç×â”|0©sŸ–?.qn.†FI4Ù-Çpxw–s<ƒ!‡ýêš×<»"Õ«®V[»X{¢ûŸöª–÷¨Œj+pY$œ›ˆOÎø®¥qŽõÔV…š2kºŠõ‘#ùÒz–±=æšð̙ޟ8#éIi;b“’ÚB¤0zÖjÊí#Mê3W/ú![ƪÇc×Ê‚yMµôs©%ÊœùÿJ&Ÿø<ž*ø€à®psý)úéò‹3)…å}ð:šé5Ó,$ß(Ÿ³âý8À’GúúUoˆo¡Ôµ‘,<  ñŠ‹n¥g6Ñf 䑾Ek÷R¤F8×—™Í+¤¶¶ÊZ̲’P’Jþ,Ž¿Ï#$r$^™ØýªÇ.T?0ÏQÞ$¡À üèþ޹¾x­T¶ª)öHé7ÿ„–1³*îAßz·é“ íB…B©`ýjˆ¶òG ý›Ô‘Wg@]q5´R‡lvÎÔ3ü#ðó4Ehšté`¨«ÿQ$XÉýÎlgì+EÒÑ „/ÂP›TU”Q¤#^‹©Y. .Wâ|Öeòz$©—³ÚŠdTOj#KjWiWCN¾YõÊÓ(6y—?j¥ßpõÌwˆ_W–í Ëò;PK}±ÐÈ£Ò5GŠîütßl7ʨ¾Ó¬,®4 $vUxH¥Ž:¶jsK³Ô#´`²´ËËxò{K@»Õ5;§‚ÒÙej›4Ð=‡¥)a÷pÉÔeŒ°µ%ÃEFk„†Ðʧ ü#Ìž”Ö%†YKJÞñå“ÜúQcšÒû‡$¿U&8dŽ4aœ+nN~˜Zë’ÞÅ ‚yÎI?b­G¦K RKä°èvê’›—Œ¦zdäÔoj.aŠ\<½ênöE·´!FÀl*“tåå-•ùÓaÔF+8ø.<)6‘²­RÖhYµ&™ðY)‹“-·Läõ¬ îOε“y GriínîÍr…ŸþÞó ÉOJµ§†×&PÔMJ’ña… ïA\½jÙTÓ4Ź©8m«‹ÞŠ:oÚ”‚ n®b· Ë+„EX“€+Ž\ð„‰ò¥[û$Ô'öbxËñed1øé&Å3“žãùš¿Iýôÿî›D‡\ºmQâ7º†5ù.ÇQ¹­s‡ì¬­ýœ[ðõÐŽâ8m ë*ÚrŒ`\V^}]¥é3{Kôæ¤ÖuãŽO8Oì3‹ÀÁÜi×¥#Žb¬Þƒ*z÷¬Âx&´¸’Þâ7ŠhØ££Œ#¨5ëä³¼´¸/¦_¼vϲG"e^›ÿ]þuç?iòXÉÇ3þ–GªÜ2ï™Gß—–™¦Í’r©õ 1݈¤ž”¬? |é'—$ãéKA´c˜îN}*ù„ÇQŒG€6«V‰¦Újñèí§Î‹u Ôj‘O1d“Ï3æµTV+±ûÖ‡ìŠ->.$Ô%»’ÐPã#Ûÿ*Fy8Á´YÑAdÏ?%†Å/´QŸp·zƒO:Ç& Ä݈ÏP0züûUãˆum:Xd²ŽÎâKˆ#u–"¼§Áƒú€FýjoDÑm%½MX+¼PeâW‘˜vÎäù‘õ£jÚtw’ÛG,ÓIW!XOÈu+ÕO¾Ïgú;‚öôÊW êúë;A&›8&7I$<¬|‚·_=ªïc=Â'í'ÃŒ‡ÎÃýª¶xJ ìå‚…yP…SníqD·öC§[[“ÅÖ¡­¹÷Œ2LÑÀ¢)þJ785É]Ã.7IYÜGÅ<8±Ée¡õÓØ´wó œ}kÔ­nÜòÉ‘3’Bsê­êkm+KÓ®—coi1É a3êqÖ¡ìx*ËU¾†{¹ŠÆÇ•ËÝÁ'»S1Í.й±K%nfÌŘ4!eìzTw(ÔÚBܪĒ3×Ò´jw ðôöö–NßÞ2{Å ›îÞD±èk<¶’PT“œí¾Ý+C®6bêq¬rÛcÛ£âEÝÎÍó¦þëgÒ )>¢›È3Èæœfö3”qžÇʸ7(É4¤ë”WÛj@.XyúÑ¢ç=?•k>Äxƒ‰­ø_DÖ®´ÔÕÜG!…ØtÌUNøüë$=zfµïìãl³û{áþn± åûA'óÅ ¢¤¶²w8û‘˜k¶RiœA©i³i-nd‰ÉV íô¨Èpe\³¿Ê´m#OöÛÅЀú„“€?ù‡Äÿò¬ú§ähåÃ/œ¶hs\½BMA h˺ ù×7Z4#™±Ž›çʸáe‹˜{çÊ•ÈQ…® |ÐýØ_À æ®ü h$ŠòR7,«Ÿ¿õª`§-iœh`Ð\ŒåÎFþ_Ê«æÉ¶%Œ÷L¥q>_‰.—;&}¨o ÍIj÷ q¬ÞL!¥b>YÚ¢¤“Ê6Ð3I6›åµu"7Ôt*ÍSœ‹µ9š$±ák*&œ†v>½tðÁ‘”°o•[-ãG¶^f'm±TØ®¶±7GOÔéVûSˆ$ÁÜ.GËþ ËÜ_Ò{±òEëƒðö™V`&l{â³ÝzåA ©.Ë¹ÎØÞ´%–9VÕAÃdòçlŠÎuøeYðAtëLÀ½ÊÌmsÿäÓø+ñÀP~<õô¯H{8á¾¼á*æçJ†íWÄ3ž`NA¯>$ÂQȧŸ™ùV«ì“Š–ÏSn¼uU¹>%¹fÀ.F ýGéWó&áh³ôçWdüš'èÚ6‹ ·•ŠEž8U˜¹»×ª™Â:BiãË%«Û&-üeär™øˆë¾>u¼þÞV¶¸ ,³d# ËŒ<ÍRµ> õÉÈ÷6±ÿz£½»Fœð¨MI£@Ó¤ m`¿?kQ4g|Û8ÍV´«•x4`BãcW+)#ePÇ4Š-Ú’*z®›¨Bìïž,ò9×òªÞ— ë×G¡¨jos '™Q¡X×?éÆk]œDaæ,¤vX¼Ô‚Ü›k42:nåwÐzÐÉˤ? ùl}²9¨U#ŠÆ}©pD §êzÅ…²x¯‰ž\± ïùV™7iö0‰5 o#æ8ÚÙÜžÕ¯ñ_–F»3žXЮ 7eïŸJ„²'¹–§ÿáŒp¦•à{=HµÙ‘ðÃlü#ôªš{-CÆ\¤Èç”ykYÑZZÚÙB1(•W8‡„£Ôäk»]‘ï+||ü­VÅ©QË-ý3Ìj´RÉŠ.ÄBóPîž/¬­ØÎ -ÌŒ²7ñ?tþGæ*°Ö³³¼×Ë%’ãÄšTå8ò@~&òë½ <Æ’J¦…©1bPK $¡ßøÇ»ùÔ•¿]Á~#Öå&â?Ž>n¶3Ó=zmóí±,°ŠÜù²® fÈý$ºóðVµ›‹‹½SÖäÁ…‚YÛ&~<"‘õªøkZöš-ì¸[NÓàQ™ù•’©Ïþ¡Y6=Ú·‚Ümùž*ؼ7Ý4ö£SÄê(ØÅ9î+‰#s½qÁHÃoÐÕ‹­ÌÜ¢ÇÈX~) ÀÎ9ÏÓ­Wyò0w© Y¸Ðu«]VÜs5»†+üC¸ûPÍ7Ìm)¦þOoä¼…¥rüÑÈÿ½3…’Þêæ>N’{ÿ:¢hþØ83U†ÜI~mæA†YЯ.}z~tîóÚ‡ ÇtV³xYp¢Þ6ç°Øu¬Í­pÑè–E.Sê\Y•¨ÝX>+ÐXI²·™ÏM«Ê×)×õG­s#gsœ±={ÖÙ­j:§j^8°}>ÝÀRe|I"5Πåöy¤j6Ïøbö· ¶TåIóÁþX¡Å¢‘o}sÓ4•´Æ{$æ>ü^áùŸ—éJ¯_žÕò&¾üm˜Ú›rìwÇÖ—Vå9¤äœòÑ$2:`üëuþÌ¿ŠöÑÈ\;ä>¹þºÃ6ï^­þ̼?w£èÚ—I£›•¿Smk)œG„F&Ø$‚Ü£8ýÃSä‰+Tf¿ÚoLþïöá}tPµ‚ä}Ã?œf±Dœü«Ñ_Ú™n/8AÖåÓMšÉk%¯øÞ&J?7ðŒ‰^uÎæ*[MÚMpÅ—që\zW/À(àTyÓ›vO>dÓqðâ†×xõ?­CVrN”RýIÀò®Ž.QÌFõÄí@è.E¡®gŽw`£æMjW² †ß€ ‡•ÕŒΪ|¦™¯›Q•gBg»cùÖ–ãS>š?i'ò¯åUä·M%ÑkÛ'ÙGw$“Í ÄšT•4NQÔÕŽŠ¯¤ãÒºÈç5Ôih‡‹´þ‹Ÿ›D“Šläÿ›ý«; OSF |êšÓÅz‰²Ûq¨Áq8‘_—´]-’îÊÕâ`^æ™ÎÀýëæ>u~àýd¶žÚ|’„žñ cú~´pÚ²æQRq~K«^h‚E¼µcÌ™ß#b*¯^Ø0HÞ¬ÒêbGmV݇8¹‹{dUjê~k÷¸¶ˆÇ‡à=ŸÊ«Æ- ú’ƒqÈŸ?ï%â–ÙÛs¶|©Pω0“’P~ pG­Xnô¦¼!àe]ðCmЇÔt¹,*ßÃZ0›’å¡+äôñ'O¡[~3SŠçœlòÅÌÀvÜšºÕ¦’úX®JøÊw `Z£{6¿G±ŠÔKºŒÈÚ¬|X¯iso¨Æ¾é÷$Ž{Õ~&GêJPR“²å¡ß¾îž§=*Ûmy"Ƥd±zÖ[¢ê±‰{o¿ûÕÎÛTGE1à–ÆyM&QcÔÒåî¾Út!(È3×eëó¦:f§eÉ};nÙnb}vïEkxï5¸Þ\ŽHö!±‚r?CR…»´Å¶º…‚ƒ$JN9yq· ©‹ãî: RçÁW×µY¢-ü…AÇ0€ý+:"Ê~&Óg; g勯SÌB)rã;£×zеYðÎ[Ô†> BŠÃ|ÐVÅ÷š½Þ©Ïs¼V¨ WIÆXíÓÒ¥'‘í­o uù;6[»ûKWüEåÂC –cU©=£ðé»1sÊ6ñ XSòß5޵ÌÒÊÉ3£,\“úÒr_+ÉÊŒN:3÷úRcôø»ÜìÏzÆ¿ ëö«Ã6ü?ifàL3·…I$õÖª¦åï¯noä¾4Œø=²v“pœ÷š¤“JAŽ1…å'r|ëMâ ¤Ðøjâðû4Øç°¦Ç RPðƒŒâ ò¥M™o´Í^;ífÚÆ#Íø4ncÛ™±·Ø £ Öºy乞K‰˜´’1vo2Nô ¸ÅlEmTbN[¤äÎïGÆEõ£ Æ(8dѱ帢î>UÁ±\qܣʇ{Ðõ®ÍqÀÚ¸³¼Šå‡%HÈaÜVÁ¦ÜÚËkݲ¬!€ÉŒÇõ¬mŽ«Ä b¥á>8Wòô4œÜ­pdÚé› W nä9óÏZ{ky.ÎÄ ÕF@˜„ø‘™ßÚêãPDwˆ…P2K6¨Oþ© FÎP§YÍ­¹¸ÓíÌߌÍpSªFJ®}w#§©è g`zäzÖ§ÁÚÆ‹gis.±wqø» 1B$¹aÊAa¶7ï×Ò©²ðå›MÑçûà/Dž§·J³…úoÒ~ íJy\¼‘vp¼ò,Q.dsÊ*÷ “Û[C yT‰r ó« û9³ÑâŽãUý½Û ð©è?Þ­Ç Çwkˆa 'T|çoZ´¹*%]•~·K‘*¤¢)àlûÿ™ûV§ga?áwº¸Üç¥a—vWVz“I òÙÜ¡äf‰†Hë‚ ÿ:a¨ñMÜëe6¼ÝÆÌrGn¸ôóª9tò·$ø7ô¿PÆ ±ÉrhÚÍõ•»¥»PŠ}íþ/J¨ÜÉq©ÎÆÑZ(ï¸ßè)7Gc¨´w× ò©Èyì<÷«¤v°y½jžÕï$²;"tÝ$XØ•Á.þó1êjíO†ß†ÞíÀâ¨OROôÍk\ªS=+ ãkÿñ…¾ƒ§¾l­d(]OÆÿ¼ß 6_:fÊY©œqâiƒÂÐIgÃëu1g–í¿f¤þèé¯ëR÷Ú Ž³´‰Ì–ÎIqÌH9ô'žÎ (ò(Dá‰@ÆIíV}+CUEQïªõvéžøóùÖ”Ó|£¸f)­ðeÆ‚¯}j^m>VuÞ#Øå¹ßj®†ú׫%‚)l[OµŠ9" ¬†Q̤ž ŽþµŒño³mZÒú{Ý&®-›Þ0Á•d=ð§¶{h#>j@äÅ~虳 ~t„ÀH#Ëô§3#Ç;$ŠQÔà« i´¹ñI°ý)È®iÜ#ìc\Öôâ½fx´Ž‚º{‚Áæ™9 ?Ø÷¹GÏ¥z³Ù„šÿhÓðüè–zl7fFWÎŒ;`ì2NzŸaú/‘ýšÛ@ž?å"d23üQ¼íŒ<>€Ö‘ìVúÂeÖñ¤ÐxËq)u{¤˜çb°Nتï,­¢ÜqB£'Ùý¦4ËK¿epßÉgúUp±9ÍD1¸®CÉ’2¥¬§µzœÐ—ÇZ!qÚ™LGw'Öº‹ŸZê0£ -u¨ 0©­ K(gw½pƒç_‹éQ¤ÓëkvwNUælì<Íãº.7AâžÉ©U–;KÄœÈ$ÌvþU"°ó®Ur1÷¦Z~Œ£\àœóò²ŸŸzÀ‰2÷#aU=$åÇDOot†W’¼ 4vv8*˜ÉÍ!uÁú¬Ê“NŒÇ?გsúT嬭oqÑ`”naóò­:Ú+}OMŽú9dŽê{ŠíDç-½ô8ñM½Ý¢ÂZ#hº åŒr:õ#§¦jñ¬ZÅ}§I `ÊvòÚ’{s d/Jx¤Ë ïß}ê´[|³VI%µT:…ÆvÖ—AŒ Þ뎠zÕçFÕí^.e™NÙÀjO^ÒRá|e›÷‰EU%Ð cÆŽGŠMÈd8§º‘I9@Ö­/í¹ƒû탟åV¸BTÈcµyºçVÖ4¦§3.û÷ÿzµö©uo%ͼ‡a‡ô4/’Æ=k ØuM:د‰+nÝk*™"¥ôIÊBÉ’G™©{HÕõI6M‘ïtæ==(úE½äVÏq~å®ndçq×ð¸»l f²9c¶(sq¤[]—6±ÈÁ$ïúUWTàfF2iržEÜÆûœyßä~õ ºûÙÆâ¹—¨óäÜz2Û²+€¬â´Óy€9',YpIùSOjú›.i§®ßˆ”»öQÓîGÚ¬¶¶ÿ†¸b»FÀ±ùÖyí<´—š\ês Ây|³ÿQS‰\ËùZýâg}½(êpÃ~´v *{VŽ*Evq×j llßCFË|ëŽ 5Ø¢’TnBÐsŒàe«ŽÖ€¸f‹‡n§ʃ•WÔ×q9¢·aC²îNôPyŽ{Tœm¼ìæMSƒ­u”âH-žà; fFfL9Qé¸úÔ7ðßÙÞ¶›op—¶ìŒ' ¸nõPÒ5[É&²ÓãŽ%Y!Vå$Œ3±ÞµÕ¬}¥\ðíê°M?’IeÁŒœàÊ~¿@jƒË=Õ³ó³J:xz{ý_Ê¿îÿ1—û0–øÅ}©ê,-vFP¶<‰ßOë[†‡a¤"Ǧڬ®ÝsNµ‘#…²œ»?÷§ñ?‰—czVùìªÝ.:Ï/+tÀM!m(,r7¸O¦Tç§Ê¸1¾1„lg'8õ¦ÒF »Vov9Ny7cNB™¬h–Úƒ9l$ŒI¨í¿å÷ªmÖ}¤ÍÌÑ—\äH›‚FÿCÿ:V‘rᜲƒä;ÓVWdx¥€H£vCåæ•7´+¦fú‡é8²×m®-nSx®`^duóë|ÆôHý¦pýš`\Ouè‘ÿX«pnŸÄ¶Ê“?áîÁ&)—§oˆ~½ÿJÁ5=*çHÔæ°ºP$‰±‘Ð1Užž\Ž«"EÓ‰½©j:¬e¤@l }šRÙ‘‡¦>¦~tfœ/u{xúµÄOš©Dñõ æGÚìç€câ9UÕ[—M¶|†ÆvëËžËçßõ­À­¥¥ºDï ¥¬ "`îåè(£ÁTENrÈîLcc¦BmÛš1ª‘NK‘Ýz’Œ5ÑEnƒâùQÑÑRéÉä`uùÿJu!åÂ*€ ôÇJ—À)XT…by•IØã IÑ\ó0ÀiÆC)Sœ ÉÍ7?´ O`sU¥~Yj2ãáßpNŸ¯¹€‹mD.Ò´žAÇŸ_ž¬¢ÓA6ÚÌ–úÄ-²æØ¶zÈ>cï^ˆºHÖä~sçPz¶•§º>«¨Ø­Ç ªŽ¹ÇR=>}2j=Û\Hq‹’•f­Ä <Ú–— ¤Æé "ÅÌaÙr{ç¾jÅÂÜOm¥i/ew¥þ3”ód(W? j•¬Ãce«6­ä3ÍpÅÅ´9+ ú±ê}:RqñUÚ“ö‘Æø.Í9í½*QN;b:çsD‡´n-‹\‚×M³°’Î$&YOâsž‹û£ßÏ­gñE$¹¤Ÿ:žÖ½þ¡ÃáFŠ€1J†l“°$ã­Ié<)©ß‹ya·)dí¼¤€1ñÞ¬bK4ŠÙo$ÛD®‰{s"¤(Ò1ìŠMMÜpv³§Z-ÛØóÆX£+ó¯Ú×ÛèVö6Ö‰ãòíÙQGŸÎªÚ—j OðjÃÞ`y›>›mFœ™1’¨Í(#oÓj°éœ-©^ªÍw›hNàï‘òíõ¦ºF­oiªþ.þØ];¹øÿìjÁ«q¥µ´\š`ñåažfUþ¿*/5@$š»'!·Òô19`AñÈçÞcüÏ¥g|A¯OªÜòÆY-û©çêj:ëR¼Ô%2]Ü4¯ŸÞ;íM_¯•NÄžäsÈÚÚ$ì2h†CÐR„!ê>Ô##⢱t Æ‹œ ž´2É~êûÍåDžµÇjê ×T)ÉGX÷¥BÒª€¥YÁím^y–(×,jå§ØCcÊ—õ8ëý7Ò¬–ÎÜ;®fq“ééRjIo{|Ò%-Ïì:)GøŠ,¬ŠÈRÁð:åŸjD!#mÅ(«ƒœc=¨¢-Š×ánž†­!®&©;§Å­Ñç÷±ªÂÚŠã*@øÆÿ1F⧬èMã’’6«ë"•Ýþb£­p.ç?Aðßø¶q隉" E1ýáü-ëRWø‹ Â6Aêk=ãptÍÈeŽE¹³YA%±îäoœ®ÜiQÉ®»¸5)è’—Î7ÅWõ;‡ þ ‚2:·6Þ•(épCë]Œ-¼q+\Ϲve^ç劭ˆ,®I…´N¿ –@r;~X¥x‹Q6Ö"ÒÞY%¿¾`†V;…ïAAkÇp®ê£5f¾LíD’[PáaŽÀŠ5@{(À¥Ô{ª½Nh€À¨ño" bè¦û’yÎW¥*rfÓ¯¥5w íçNrQö q HpÞüL •ÈÆGQëTh©\?¦AÌ®ñ¿*žàrœÿ*¾¡\Œ¼ë=ö•e3‹Kø¹šLl£ 8È?‘ûTA{Ðõ’±Ê/Éœš6{R#ƒ]Ìýÿ*ºUFzŠàÁÄ1åš #²ççGíž•ÇοåAœ§í]ü"»oáüëŽ;œ“çC‚{ÐGEÇÖ¸–=ÅqÀr¦…wÆÂDŽyW$ùN#L°tƒ„m—- ʆѥŒg™Hln7¯Lê–ññd·*‘‰nÙe‘•Bç€?¯Ö¼ó§ÃÉkloʸ­ë^ºkZMÁ8Fˆ#È®7¬yçœu˜±§í’—uUþMHb‹Ód›\¦¿¨â;»C)HŸ”ßË‘¥þæ' ãzùÓIŸÃ•‹åâr¿|ÇùW[HÑ»XÝfÆboÌl8ùFj•:d©,'Ï$7–5–Ü)ÈÆAë]%ˆæ8ï½vHg<ªùÚ¥;!¡Ë2s™ºÍÿ!,rBÛ©%7Œç¨þùéN%@³S³ ýGûÎõ~9Õ,µ[‹d³„Å”^pK`g œ÷ÇØŠ4Àh¼µ¬N¡Ç+{ËËÚªzç³[N'¼—Pžò;Y"·}œòøŽGºsûçïÞ¥¸_V—SÒE˪nÇ™¢žøòëœTΣÜCrM€Boö&‡’x#m4Ëm FKWŽ8bP¤àóèNÛäŸÊ’‚Þ&¹[«éV(ÞIØ/1ì7è=)¿”—‡.”¿"C a±÷›÷GÔíõ¬¦ÒF»[xäÕYÂ/9æŒï× Éü‚8=aщ º°;Ú“rDLÀc;zf‹Ç Án¹0Á‘î€0>˜[†å‰I# ã½(oØ78²lr7ڛƌªdß#Ò“»`Y#,¸;Aÿ=hòMËlI?ó4)qa7ÈÎT2Íâñɹßr|©5S=Ä‚@LH…˜u'­*È,22¤Ù…¼*§ ËŽ¹4ìûžg×l_LâÍ<ƒˆ$*¹ëËÔ¶*&8¥šà²¹«Ï´;xeã9¤‰Ô©Eñ9N}á¶>xÅVUBŒ(Àò©H‰?Bòà#Uc¹ã=RãJ[e· à˺Jö_•WÚ‘r¦R}ŠÜ×B·3Îóx³HÒ±ø™ŽIúÓ~lLÑùòœ‡·OéMË`œôÇz:°ìÅzýè…Šyã븤™°*NûÍÚ’yKµ(Ö’|gÈ×1'sŠÏ@Mƒæ >uÄT–êiN”Rp(3“é\pmÍué]QdŽÂõ?ÖÉ{tÒ¾9céž…ª¢ªÜØ@[>B´]*Õm4ø¡;62ÇüÝéSI*&?$Œ¬„·Å,=i4p¬ÈÁè|©ÁÆØ¥¨’ÙÈëµ-Žø¤ˆõ£¡çˆyŠ:Å6åÏCI²’9ÁÇ.õÄår½¶ gÈQ"ø€”<’ ñRÖÚÒÜ"ÛÞ¿…rª#V#·ùÔJ€»¢‚TY o#ЊéEK°±å–7h²Á©]Á!š9¨bÛc5_»Ö/ç½nTÄAŽ3îàyÿµ6ø[~!€òeÏçJÇoâ8<¦OS°¥¬)e«”¸HB;xæº[¦ÊŽU-çßÖ¥Ð(a¾qåçE„AÛÐ`•˜Ž›QWÁYÉÉÛ69òHPFpêzœÐss"¿\Ô*êJáqƒÖ¡Ä̹“—°õ§QÊn:w¦LØs°¥¢m–åIëD×ß#Äl°êCtÅFq-¼—Z4±D@’ñ ßéÞ­R]þ*~e^_3ž§¹ûæœFî¨KĤc­§#|‘EhÚ6å‘YO“ R°ÙÝ\m¼’ÿ¡I«KyÛü2¤oçN”ÜäŽB@À$c¶ô>[Êxѯ1™y!ôvßì3­4œÈªòb~jÊæá›EzäÆ)Fyb°ÈØŸASéÑÈÃ[C4Ê D±Ðg' c¯®j”$ïáä b>UFïóò§š&…ýãs™‘âµýØü_óÖ¯ÖzU½—3Õ/*ƽZÊÕë#Šá‹ñckC –d²eü??ôfŸþ‹hR骞-ÂÜ?ýæ|·Û§åYoû2׸UšçÃ7–VxÇAþaÚ½j±~Ñ[Ÿ>Ô[»x'ŒE2‰ö5™‡[–ÜìÕÏôü9#ìTx5óœ©5»{Tö]­¼ÜAÃñÑ}ù­”lvQúŠÁðpkÐá˱ÝËê4óÁ-³8·­FÈÈïI4™4 Þè$àU’¨bǶh¬Ä 'w¤žtÏÅö® W›"¹Û Scp½¢´¯&È1]G <¡6''ÈQUËnvòE@7+“G$WnôaŠOc]ƒÚ¸álú×R8>fº âáf¶2Çm÷6¯œUí&T–I < ½M¡nlƒœvªéPÜ’±àm°NiżÀŸ _ü§ùSsžƒ4<Ìæ¥J±ëéE·tó¤c¸ÇÊû:ì}h¿ýY_:“‡jpŒ3I*pNM“†GÊ‘Š·QçPŽc†otGV(>C°¦ñ¿7SÓó£#®p(ˆû® Ï"¸çÂMaJ‡œmPÙÔ,Iä$ã4ž;÷£È„Õ؎”Ñ…Á;ç¥|„¹y¨Ë€WŠoäŸxãÖ•æPp­AÁ%cÏŠ4 +‚NØM0 œïJY\{Ò ïåMð’v2?{a֜Ü|]OZŽŒã9ó& HQ“òªòCâÈ­N{«#s&XI`qÜ~B³»„HRC´[(' '¦+bV” ñT^$áéã’}FÅKÂÀ³§tîHô§iò(½²$oÜŠè¶!rœ»:”±f6Žž@?mªÖçš.GPݶ©M%ð“*É‚BkFÊ´;Q :`ôëN’8ÌAí½&¯!^b¡½ô¨“”‚ÑdîzTÙ$a0²n<öïL.Xb¤l3žôîêV(ØŒ‚06¨ç á3?0©²æ@‹#mË¿_,b¡">ðùÔ­ú;XH°Ÿt>=HÞ¢<f³õÚEý? ³BеùtN9¤ <.<7LÁùúâµk+¸æö{¦Îk`·sE„S‘ï1Áµ`\1g5÷éö®XL¡¤LìPnsôé 2×ð¼5%»)aé|1f\ü±X:ë ï¬‹úÚÿ&¾‘©z«ÿGþ±ÚK=¸“iÇù㣠vh˜$2`ü)[ ÿ¥ŽãëGK˜¢S LòŒ2¨SËóï@n­&pÑÝò«tnlþM‘ùÖõ¿&E/F£vÊDÀ4RÂyÚ68 wÁﱬ’~'Ö¯KKlÅØò5Áö­/‹$»µá½Rk¯ÃÌ‚& ¬¤ŒŸ:ó«ÈL†¥Ô’!7ò8ƒŠs/Þfæ¸ñ“ÅjÇ9ÉœU:ÖÖ{Ù„6г±ò {}¤½„¥¸…¤ýèÕ·;É;ßÁw¸â;Ëëm­%Â9ƒJ¤d½EôŸD“Û•n®¬6úsU,âŠqAèÿìÃõ¯¸¢òNV%n`8èyÇõ§vúµ¤Ë=­äqJ½dú÷ô¬æŠzÔ<7ûL•™/ÙF¶œc|™Æ©Ïú(‹îÞ#jq”=½ÚÉjOû©ÓCmBRC«þ_:Tñ¨ÕÉóÁkÉŸw§ö¦ßðF‚ÜQ;MôG>¢œ/]Gª_[áÂíY-vv£ôï2·®¿u§µMfÆ.KmBÕ}LhOÞŽ}¯q—ÄmJØœçxÖ°ªê®ôŸ,¶¾¥š)$ÍÊl|Rñ8‹WµŽOÝe‰3ùÔû^öœ!· t>ÿÍe4Rhã¢Ä¼/¨ç—í}ϵ^9ºˆÅ>½nèAxî_ݬïTX…§Çâƒï…=sÜ dMh\¢ó‚ ŒŽ¢Ÿ `ýœ²ê'—ñ»xœó×‘Æ $Rþù~t`¼£b¬F¡Ÿ„Ñ„Mßjs:ê›8@Cæi@  8\ì~T¨¶œŒˆ›íQg ðh0Ôr ä‚:ƒA\p\yC]]\p/Öº…S˜g8®¨³‹€†;i[9ËÒ§nm¶úÔ‰¾šÇüçô62Ñäô¥¾ÎbÛ9?®ô –UǼHò4Ú'‘wø‡Ÿ•(푸?1\@»ÊACJ§Íâ¾v"’ŠBã—!¾tטÅz@sµdËõÚ¹­"²ŒÎiw<ëÍŽ¢—Ó ÀŒrÊ3µ<™2¡”ÔT„«dRvòxÖ g,=j_¹àV NRO7¨ ñ °'§zg“™ÎÙßzp6Çmª(–) ¾sLœ…rïIFÁ_”ÏÖ”''o®hz$Udys¿z) ï°¤Ý×nQéHóm¶ÕÈà—§)½L Õ"‚ÿðÆ0Ò0 ¹líJÈO1ßýê¹v#}lé úãsNBü—ø.ÚA¼@}iØŸ¹G©ª‰Ô#CHÑtݳ­MEŒrÀæ42Š 2QÜH¾äêXõ°?Þør醼pÞ˜ ö¦ko 0 ª~)a ¦y‹lì).—C=”m{Km'TY£\[ϸå觸þcçA¥á¼vë·«ÕÕ¥µý¡µ–4‘ã9ØúÒª‡I¸Òîä^VhX‚²uϧέbË~ר©Â¹@Å¿º6ô¥—œ)ø²Q\€F3ÓwÀ÷—#¶õfÅPÞ噣$³T$®yyKl}ÓRó0 ÜÛ*Šš_'õ¢DÆÁò­Ð·Â]ö¥5G$ó«wZéÓñ•Ÿ÷ª)µCŸ{áæýÜÖ.«2rmx6´˜J?$—³n×nõVÔ`°h¡)È&™yTäƒ{ôí^‹‹I´XL:“!/º¤¯N˜Ç}è«}k"+lJX{±ÇÔÿµ9‡K{ȪÜr¯Q  zšÈÊžg?£Òiá <\{²“7…6¡=¬Op°¹Þ0¤¤Óà!¹-ÔslpçÓoçOxƒ‰,ôÆš6'­×ßX!¯•UãÔWPQ|3û@sË¿ˆþ_^•¥¥Ï<ÆJ¨Ç×é1áJQwo¢›í+ÅÓ¸kðÑÊM½ÄÁyªãÞÛÓjÅHËgÖ©íRõÚ+ )™•É8ò¶7ßÈVWZqû˜“ûqk°Ø%œNÀ9ÿ†˜³³’Îʼnîi<×D°I =h¹ &¤€Ô\ ìÑà†K›•‚1–c• i+aBœ”b­±ÞŸmŽ÷;[C»ŸâòQó§±]Éiªsí”WU)è)ýÄaÊØþ­ümݨÚ;fîX¿ø°º~UO"r‹Èÿ/áÙè´¹#‹<4xßÔŸËi¯ä®—ÞØÂ»4\Ðf®žpï]š.h T¨„Ð4× Ψ£,Ä<Í\8žÄzVœUDöÖÁ”`Ÿ çzŠá+Çñ-¸` pfgÏ@ûâ–Õ.Ž£­ÜÝs¼Äƒä£§ò¡çÀjŸdCYH§¡ûRb&Y:ó/p*LËrŒCxr€¼ÙSÚ‘’î)W‘ãä=ɨ÷®:¢údk®þÌòçlÒ‘ÏlÖÈß:”Qc"€´øÜ«Tz‹É>›ð7ŽúÜðÊ%¥Ò•1kdÎ1ƒI›SØÔÒ`ÛD´°ÚÜbFElìNwùíM_GYµ¼‡aœ51ðæAî“CJ%ÕÜ'ÝfÖºŸ†u«å“N»þß0ó]鸂f81?*’MReÇ:†Å(šŒ8*cåu×%àš‹é†·´@ªÿSƒ]Füm¹Ü>+¨)“ÀöÊ# ©Û¶wÚ¤-\Tõ¤ òôô®BQÁæ ω1YƒG)d8=ÇcKC;ºdÀ*¦"â‰_’%òƒz}«ÄT“PÑɶôêÚr² —§È¤øÎ(ö7¼ŽF<ë®×Üæâ ƒR½È‡Ã, ¼¼ë¸4ŒR~-é­øÙHÞ™¥]|7GÎ…qà î?fWQï{ËÞŒ&^]ŽOsH$©ÊÒo:>v* "Ï#‡J sÕŽôÕæüCä(ÜþîGSÜÑP Ìù}†j¸ÏÏ©]?P_ʦ%›ªÏsP¶^wþ)š€dî¬$r:ñ¹qþ“³#VXÜŸ„+<¹‰n"å;Çʤxnþê–ÓïxØœãFkœ]pi—´9ø¥ÛÊœ ˆN^|vì*2&'z}bÁ[°ªÓq±DŠ` ëå°¢Ë ÍFÙNÄTæÁ\a¨Æ²ZðƤñ¶áŒ ¡‡ÌàUŽ/e¼x±<5pOp]?­V¿üy1[ËiìîJ±&>¨|é²Î_1À=«f¾à+¶ˆµï Þ²÷å¶i%ª¼4.¡M*îÒåFÜö’DÏ™@«Õ¤½èKÓ¹?g%É9>^t„¹0–8Å]í=ŸñEôoŸá·ñÊáGÏÏò¨}„õžÔ£µÕ!%¬‘œ£ã¨méëUŠOld›é3Åo”_À…Xò“ò©®WmI Uc΄ŽQчCQ×—PØÛ e$geQÔš{ÜIk¦j«suìJ’JúÖ6ÉÍ9$lãÉdŠ“£rá×þïX>y¦`YÏËùUÞ]?RÔ,Ïã®Í¹1DhÞ…º§Þ²Ýˆí—Yµ½¶c$H€ç³gËò« â;{PþíÒÔ§7ø³Ä+ý|…QiÝË¢­«Ûèº.´-tÀÌò È¡‹`wbOü5 ¼Öâl×ĵøð€~%òúU§Št;Hî ³Ó!ˆ#žy³ï0é¹õ?¥S!¸}8\é×ø9`Ǻç|ü‰CéVtyÉVSú”°&—L˽ êiÄAanhaUû|êšMHk7 s¬\Ë<2ä&?„l?!QŒkyN]HÎqÞ¥ÏNko¤-Ýc˜~uœêOM†é¡škyÄ@û‡#9­+3¨Úuþþf‡Óâ§—Óx÷ÚüÕy\¯êÂx:yÜ]MÿÚÿzãoaÿògÿìÿ½<†ÎöÙZ8®ãEfÈû)N]S˜z™,[àîË®;Ug—ž%þÿ#jâ·á§öWÿ؈ßõÌÛò¿ÞŽf†ÚÚHíݯ÷ì4Ž*ãÆ_)r¯âò|}¿ä‚ÃÝ>])ÍŒÍk}ÌŒUNø©ôp_Â9RéT.G/ï}ºúPÜ B S9¾V¯\ûS%™KÛÇ?Çþ x¾<-f÷'zŽxdb±v,³O‚vÄ_ïDhìT Í>ý?f?­=ŽèaTŽì P^N…»t¦ò[Ïs4‰%Ç:Û€ òÏ•BŸ?‹÷ìM+QMb÷?·/öþÏÀ€K`«,ìOaþ´»ÙØÅ4ׯ{!QÌ~™ÛëN? "ÞE„ÊYó·Þ äÚVÜÛüè¢ÞGÄ…j1ÇIêbM¿åýíÿOÌ4…c¿óûU…´¼†çùU“‰9tý+KÐâ#Ä$“ØÿÃ÷¨[r«pAÿ¶¡>½OçúQâÇêMDé=°±#sîN«t|3o4|½J®Æù<ß*keW7ð&yØ‘ÓðUžÞÆ4µ³4O(Á`Ù­OÉUØ•'%eFn#¼oÈ´‹ƒùS)t-Bƒ@²IËñ о0½[Há‚éžbã¯Þ3BòxZ•Fêë¶i~šgnhÊ$K¸›öÑ}AA6>%"µ³e§™‘ù¹ú$ƒ Ôdü+kpäx0¹„yH xW€½O“8#taFØúÕºÿ‚á”C4ŠÌ3†Lõ¨Ix_RB‰±ü ¿Úâ’ M2,¢žª)3 g¶)Y­oí›@ë5Å f#fB() ­0†šºã'ž>•Õ΢Èçöó4R}Þ´nïó4Oâ¤C¤Lÿ[°–.\œŠ.eÊß:JËãj4„‰Î6©]‘àïÚÏá€>b˜jÇ/r ;•HÆÍÎ=ã÷¨Ý\“,9õ£]‚)û€õ¥’^VSXþ8êh™ì2,ðòЏ„Ç!8Úœiäó ÏZs¨¾ÝéIÔ¨6­Y ÏÊsºü©ÌWDàÈõ¦óåIÄ“qMí %–ô¨ÀRÃÖŠò»œ³ÿ(¦LHÀjQ Ú†‚tf”{€u&‘ýúè·Üîs\pIØ…æ5 ~Ë>dŸÎ¥n¿Ãj„‡üùS"—£s:²È‡3Ì4…8=>¿Ê› ]ìs"Ù 6jõw±+>^ƒQ°K{M¶¹™°ÒDÙø|×ùõ¯hd›irzHqéS<'©j:w´ëc§ßÜZ&Us¬œÃmŽâ³óâsTQwM$§Mv})‚NuxŒFõ¢;¾;³ƒ$œÔت¸m+,å:fÉ$Ô}ýµ¥Ô%nmã™|A§mÒ xŽY"Ò.^9FH*pFÔÌ’ãqÇ•FoÅ6¶–¬i`ѤŒ xdçcò¨‹„†ö êÕB÷,¡Ðý b¼©j:‡´mrkûû‹©99敜à’z Ÿ½n~î’9vÊžŸ*ÃÏ…G#HõzY9bŽçgš=­ð¥¢_ÿ{ÙÄdÒÉÇ*| ùúzü…e"wî™ãŽã‡Ñ.eV¶Ã+Ž`vïšñV©i«Þ¢Fª«3€ `Ìk[CÉzrð`}KKmd’o…xÒ;©ÇÿN‡ 2õ@|ëhиÎËFIͼi$Sî„ÝŽ{ÿZó•´Q³·4jvî*ÍÃ’Ê ¸ˆJâ5>ê†8!GŸ[´NU=»_&ï§ñ%½Â]ÞÞKÉ,¤0æ= ÏëYÏëÖ²^_ÜÚ*…+×byqö¬÷_¼»Vä[©B7Upi+x£þâgð×›7¤ãÑF3Ylµ©ú“pôvÒ·4†’4wê~t“t­¤y—ØÕ–ÄÇm¢™Ê#ä“‚züV O.2qIÍ‹ÔJ7FÓõß¡d–M»›M"Ô%Áã+1À÷ºƒ·~¦ŽVLç Cõ=q‚:ÕO™€Àc,Ó˜I6— I$‚{oU¥¥®S=®¬l±ó_? ¿‚ÃÈý=ìn¹ß¡ß=i9XónÆýAØuïUŽwþ6û×+1#,Nþu+Hÿx[úü õÿ¢ÈóÃÊÅ,…\°`=ã’F<é®§Ï!ŠÒÜo‹Æùš…›üfùÒy9ëG 55+*ê>²òBx\)7áó^|¿œ±Þ-²Ê.%-Žw°˽:´ šÈù%‰‘‰ïåÞ¢ÊîÅloïŒSRNô^›š«óð":Øéò,Š-Ü|ËúõüÉë™ÌÒIÌäyž½ê¼XÐ7Z-3=ˆ§®Ö½\“ªKïïýœÔÿØ þ#€?øp~Õ¶Ûj¯÷«íe­8Ù„ãf¦³=ê—¿×./ü0ÄþQÐ~•0à±rîsçJð'ùýBÀå;S1Çu°¤Ë7 [8Š{–9ÉäSŸ½[3É 7Çëò¨>÷t~]²OO™©k¯vueØ“Ô})Éð)Žl„r#†Ãàõ'4ý4@v&ùÿ:snÄÜH 8p>”IqbØå ‰ˆb¸#½&–« »ÂpϹ>tµp¢!¡/ñf°Ñã¦(Ë,&F2@#â]©^ÔWÊŠÁ¢&Ò;+ÉdeWP§²î›Þh=Ì­A—©pEH6*ª£7þ(sÌreÆsC*QÜŠ·@ËÁ6fBVYybº§.æ•nX,Œ5Ôå§MX£?ÿÙpymvpa2-2.6.4/doc/source/pics/favicon.png000066400000000000000000000012261323370031300202530ustar00rootroot00000000000000‰PNG  IHDRóÿasRGB®ÎébKGDÿÿÿ ½§“ pHYs  d_‘tIMEØ %3°ÏÈIDAT8Ë¥“KH”a†Ÿ3rfi¥PHŽ"nuÀ©E·E»2%¤¢ha­¦‚¨EZ «EÑefp‚"A £Â„Z¡ÙvÚI`›f•Óxùßý¿üJ‹8—ï}9çûÞÏ$ñ?ò'…BL&ÃÈpå?“S'0o‚xk†X"Ò.1Tßgf–Îçæ§×" xà†Ñ°DÊÿ2c—³’¦êÚ"OëцÕH^°ìh°ÉM+Àœ|®ØgÆà#ÍÄ‘+±D4\F`fÔµEj€NCRw][d‹™ÝÚ¶áÛóæê/Á–êÏ—öÔ¾›|Ñ×ßä3I=ûx£#Í5>ŽÙ@Àv;ކ7ŽëlªÝÞO°3Û×>°Ö–4±Dd¯Ä8–Ìl¿¤S@0öðà‰›áà˜Û÷,ðž#Ÿ+¾1〠Í.à@Ïè`3pÕž²3[©vÙŒû@ZânÙ@ÿé—©WÀ[`,O¦'B]½îŽ4W±.ÔSZXpxíã8¯pÕ,¸-+žL-„̸芧 TZú‘Ÿ(öÆÑ÷’æèŸµlêÓxÁ‰ßsü“™$W…ÑI×€zƒa̲’†€õî¾[¿N×R>7?bF“IJf|ÚŸÜî^\M‰+x–¨G€ú"˜ k  !2³H4ÖIŒª€Ùˆê‡@LD‰€Zp€äÀ D( ::.þ3€áñ×qé=‰Db#C¸€Y†1 /€!Si`²b TÆ %2 ©ŠÍ Vx_È#P Þ¨©DRˆ5”¦„ZÀð…Ö lqø”, ¬Såúž ñNrH$6&!?ñoþíPé­%O ¢bÉ0`Ø"D0CD%jŒ€:9Å“  ¡U"Uq¢Å‚Dý}èÇ &0 *AÔ¡¼ª@õq € ‘Ä R"%(AIAŠáþðž‰D"±Qº ìu¯{½qT%çfër΀‚R•Àˆ`Ù¢BÖhŒUð ¥ QEŒ³ %Ò¨-3 ïxç;”ljé¢P]çGÂ<]Œ‹Û•÷L$‰ .ÐJ™e©c¢AvìÚõã?þã?ûs?wË¡[-("Þ°}ç/ô¾÷}ß÷[¿ó1ˆ‚uÓ [?øo?ô‘_þè­¯»“ FÓüÊïüúëï}ýG~ñçn¿óÖ€XûíûðO}øýßÿý+“sËßýíß,¬U#}•«m£°!^Œ{ ¯©ÚŽB ‰D"±‘ZTÁâP Ñ>ð?û³?ÿØÇ>ö?}à¼hšü}ßÿ¾‡¾ðàçüÂÍûö¢•ÍlÝò£ÿë¿üä§ÿâ7û7øù)£¯üž½{vîÚõ+¿ö+üà•Tïû¾öéÏ|úÈ‘'1>xeýà¿ú±2„¡¾]·­—ã¡_^g›“ƒN$×ΆB,ŒuYˆá¾ûî»çž{Ô‡F³1¨ªJ«ûî»ï§~ê§‚UGƒjáÅ3n¿õCwßÙ b€FëÿûƒÿXT²grÖ+¼ùðë>ü¿ÿk±Î֠Ξ:u¹2Ó:y¦QôŒ 0F+…ëó:$½o‰DâzhïªÚÎ[Áûï×bùÎw¼C%`¤™ÖÚ‚A¢ÀeœeÙ{Þq?V.JeU–ƒ~°€aVE£éˆ¨ô1ø¸¼¼\+l0 9¡ÅŸ×d׌ÂÄPP©=¤#c”·‘H$® XâöX§ŠÕ¤-NÏúÓ?ùÄ»ÞñÎGž|l°²rþüy>÷ô]ßúç\ ªÐ‡þò»o?üìO3s}  xf(Ò“GŸºïÞ{+¢f{ ¦&'/,^€ D0 *Úí_ 6×¹ÑQ!ÚTh4v¸¬HTë’€4‰u"‘ØÈ°%{êÔ©ÿëg~æ?ú‹ùèGü¿ñ‡þ??üáüâ/Á0¬ùøÇçþùû÷ìݳÒí"@+ùèG>òÖ·¼õ'òÿð‹?ÏÄŽ?N }ê)zeõÛ¿ý±üп˜Ÿ$`CD¢¤ˆD u™ dYƒDVU¨ÔQè䜉Äõ Ð $µ:L€ ë@ Q8¹÷ýßóGòŸ2¶nÑÏ<Ù¤¦ªÛ@ðV%§Âó@ë5½-,ÍFÅŒ® ™zõO¬C¨…ƒ€r¨ÆPt¡hïúïûµ±&/óP©@8€ŒÀ«„VŽå"àŒõ$Ï´fšÍ:ÿœ;‘Hl@PE “iµa­†h@ÑW°(gî¯þãïC}{èõ¯{öÉçâJ3næàmÝÏí…°÷½ïBð!úã<§—cÃlþ§o›;ztßä §Îœí.ß~ÓÕª?÷Ø£hš›^wïÙÓó;wîzþ‹–‹ó§³` òÓÙ¦[n™leO?ø%>µHh×¦í³³³¦õðç>'^®³>(E5‰ÄuD–ªlA ˆ€ (²hpË»ï¿ã»¾y||ß_švüÛnÇÎfE6€µ)È656¿óM1ÓmÿÝ»ðÆÛt²sÛ{ßݱ_§Zw¾ç~d„&üï¿{¶ëÖ©ƒo»™C®s- V1ã˜íèTkç·›— ÎÝúoØSRX. À\RžŠV‰Ä†h|#`(꾡²CÃöîKsËÏŸ@¿zò³Ÿ¿Plºñ} Íù?PÊ¡gY_ÙzËØ¿jái‹/ðȳǞø›ÎíûåñSg?ùÜvÆ ¤•¡Õ¿~üéßÿ³±{¡­ˆv‚ xÆ7¾ûmƒ{:“»o¹Ìe˜˜˜ú›??L©Ã0uc}þFèD"±aZé³ÔÍš# @7aü…~îsA™{ÕKž'n=¼tô8–=Øvó»Þµ*±ô;»0-ž=©8â¹y]Ž'1@“ÁTB³“Ý|!„MŒåÈ›¬5MDrÓã‹?rúo>ò‡U~ú“Ÿšë®îÿÖ7Â^Ò{# t"‘¸.ÚÀ2,Ä ‚A4€ËçÈÎué& 0=g§o½yóÓÿá7n¾ýv´Û t§go\ýò“½³/Œuç11ßï¯.‚*t{¶WE-º)<Я«ƒ°£ƒÛƾú"Ž/¡ì¯,.DõÈLÿñçOœ?ýıs?‚–ÇOÍ}õÉ×ÞózäÍ+µù’Þ‰D"±á°hØ:¿Ž$ÔŽT"h h™·þ‹lä¼?µp~ñ¡ÏÿUÿÄóÏkïð{ÿñÃû„VÙsŸ}à®÷ÿó§^xñ…£Oþ7ïÿÿô«¿Ê¤ðͱ†uj²ÜAøP°Ùÿ†Ãw>ü©?úàÀ|¥¡„±ÇþàÞÿöî}kî²ÿü¯^|ÿ½?ú£+½þõ×Q!t±íh"‘H\´ Zîˣxå €³üæÛò±}ùØ E§ÓîLØÌ‚ƸVkx„™·i5›4Ùlu¦—më€ †Ýæ)šØ 7¹Í1lm÷ïüR6¹µ1¶™l Ô€mg›vÀ´`ÛèŒÛ±ñ¼Ó*¶L ,+6µ²Íj84œ…1`X†öˆ&p’ìD"±±4.FqGÁQ Kðy»|é$Wã"°ê‰A D@ÔAÀÊŠgF¿PÀW<,`_^F°|·‡,C‰€ª» _ 8„AunybýA°Ý@«jp¾ÂXc•O=E6‰ÄƆrÕ==,E£— â{;ãÓr5TÕyî",çx@…1G–t) CcnzÕ¯FÓrEáWO®sèPÀš¬Š2 B¶Óìpˆ+U׃±¤ª] Ÿ“q&JÀ¨¯¿ò¨é°:ÅF`­ i*õN$ÚA_æJ ¦ºç\%àùÁKØMŠtT Ã( À)Ç(Ð'ƒ· ¶m4}¯X9Uí1PÅjøÀË@Wz]H|ƒ]kÍ„ápg  ¿nvl²Í‰Dâzèºlºª›~ (‚2ÐYÕð0@(߃‰ÝU÷I¨R|M#ŸìæÀòyðŸ+Q%÷º¼àühð«¨Æ‘åDÛ(Ÿ Öíž=8Ê€ @È ®4ÂÃ,à ÃfÑAU´~n!½W‰DâzhÈFÝÿuë8Ô¹Ä!Ö³bE‚UÐT›/UŒl²iñ ™–t1xœq–“”êëq݈uzC"£ýtI|"ÖûËZŸ:©»õóe?5‰Äu!Ðqm‘ÐÀ"µµ6¢¨xVOJ=¬´úÙ’,˜2Óçâ<|ÖhÍôK%QpC`b9¶Œ!Á4 AF 8€Ò¬ 3‚ÁUu×àŠ¨FèD"q…8H•atíU€ „€žÁŽº7‡×UhhO¼‡Z/pY¶¥8„ˆƒ! C‡nÖËëú6tõÑõ2¾Ê~"‘H\OÍ‚„Z˜í:†‚*{ ¬ D@hXÔ.`[•] P0¬i 9º«€µ® iù! k}0(qu¿LëþÆôÎ$‰$Э+ž®Ö4R‰Aãq€´t 6XT¤‚à1gsVâ( .ÇSP®Ê9ˆgX¨U< ò àU1š«—²^¶/_O#ÍŽM$×&€.‰; ãÆ="ПQNçB@ôA-6ÆÀù€ó ׄGдÎ}VaŒBQ¡Ê ¹(«ëçV1†àëŒ/óÕ=x"‘Hl(f8@e}›×jûåÕý?ò¶~¯7y3-ÌÏß¹²ï?ÿÖ#2H‘0(°Š"x™–SQñŒ,4”P DI´àQ7Ï»To×{m]wÍúèH²Ñ‰Dbcc†ÀZG}ë^ h Ú—Å•ÎμgæÅO=ûÐÙ>õ´NPFXa&•"j 7÷ýÀ»}å0{Ùh]ƒÂ4Ì¡atÅA (Õ‰wtQ éRñåuíùׇER»ÑD"±Q©Ç¹Ú¢#lzO,"b²tåñAy|бXiSØü¾½Ó3ÓÏ}ü¡ò ¤ÔÉ};ß<ÕiwøðWïß{^»pàÀíGôQ3ƒx{gç=‡›™?øùßGWÑzõ¡€@€€‹½ôêEŸÎ;¯j¸uûi91‘Hl`Ùa`ÃÖ0¬Ahoüå×b/ÚµŽÏâMß¾ƒèÍüöy& |÷O|ßA¼13mþßwÐëÀnýÙBw²Ùj03: ]zhÏ ˜AÑ7êyƒ£-²5“ ¯Y¿o¯(TO$‰ 報ΟÖ!‰HÃ=Wõ@hŒ1œE,í?x§Ëó,ß´<þ"z8úÙG·îœüÔ2õ26¶]] âØçþäÐÛ<ùñ#¨ä°½<7ùj óõ0Õ%1  R^3ö1Öîþ⭇ƦfI‰DâºèË—Ú"@ð}u€5Ð(0púàa å׿€€—‡ü‘‡ŽR†ï˜zéWÏ{«¾ôÃU”û'–Ÿ|í;îxè“`0œ¦µ—€Áè% ëvënuèzÀ¾ØU‡‘k¤5ÂD"±á5*ëc  4à úíªÀý΀e<ó×_*nÉ:Sí©ö8h ½y¬¨š“7Þs±uCQ‡‡;“c­ªmǧëVÈ‘Ã8˜ý&º€ªºšñ¢!Ö‘ºËZÊǺ„ºþbèD"±a©ƒºD4l¾L¸$a‚1uÓÔ¹ÇNf+0!Ãâ¹ù­{fw¸áàÖŸyâÃö¶ûg[ó£ù(NgÊóï¾ñì_Ÿ‡âŽo¿{rjò‹Ÿxp€Fha1 ¼ah4V™¡&@1LÐV…sˆ2L”¶¬Ì±dCZL$9+6@°ˆhVÐ´àˆ¦Àq0 V`…”5V–WA0…Q"&, `ÑP„oƒÆDè34 á ‚²>1D@Ál$Ô½O ªC÷í KéÁÄÖH•Z&‰í ÙÃu7# :ÖAÃòÂBö5ó1“ã“ͱSƒžB÷,„cUbQù¨,±†h,ÚÅ*êø9eQRÕ)ÅÍ›§.¬ö3ÅnÁöÌr«åÕ¶N»êWQ!‚¦ S0©f„\†"¯+rUU㫪*Rt"‘Ø 0 4Öú$EÀ `S–ïÅv5M›6wP ¼}|ë®dN˜f„4( Ä4=ÀfÀh Ç‚IÁ6rûÇÇ)M³¶:»0ŠB1´AE”0¦˜e Wg߉Q†ýû%h”˜—H$ ½r¥m؃ˆÆ¡75'O,-Tâ_*» £*˜BtÀô šÞr¨7¢ª¾Ñ`=4Ý UurÅà ²ŒK³ÇO?? ŒuK;¦fw¹öãñó‹ Œ³[¦IØíŸŠ+ݪì&w<Ú›œœxfî¬nhŽ«5¯ž' ¤®'O …‰Dbƒ:hÅÅí¢­UuÀlÞ9%~ X",A¼ìµc6è»PµCuÓÔxÌîžØÔ,ƒzÉÜÝÜ:­•ëõ:@ ØS´ 0¨Üóe  Ý<3]7ðØ7µ©Ë"–;Æ&0ìoÏìjµí`0ì›™™‰(|eVÑZ¸Úù%‘H$6ˆƒ®%î’Òj8Gea7#l« xDUBÙà>à’ÊÜÍ¢8À•žæòüæPÎ 8^3ãôâò\È€f»X8‡sÝ¥r²3Ì0•^pÀ6›õ&'#ñü˜[?K@ þäêʪ¯”10¡Ý0g., ì0+ÐQ¨‡t%‰ÄFsУ„뮪;‚!9àz±Ýnк瑅éP_ƒ˜š™ê ºÏ¯œŸq®,ÇÎöú˜¨€çBwnµ?³}T¾ Æ”@$¶@2ˆÁùÐÀTÑ|jiþØ…¹£'NÀ"±ë«T‚ K+åêΩÉè(UM‹„‰Dbà ´b896€Â¨àÚ¸§€/5º··Æon«ðšˆÉ€¬«Ëœõ€0£™ÞU¥Åù&0ŒÞ¼u| X   »0\ŒÔ¾µxx+¶Šóe¾?( Ðw¶êÍGmôãV4ê§¾ ØsʈN$5ÄQs™ U9Ê å³^Úi³mã“[&œŠ¼øÒ|[P'ç9`aîܽ3ûÎÍŸ;}jñæ­xø4ÞpûmfñégOöhîÙ»?øðìñç €k}Ô˜ÈëXs ”ÀÓ'NÞ¶yÇM­æ3-:rä¨ÄÆ×vž±ß®Ù3~~ñÈÇ­.¢¤ðF"‘ظÚ\©Úä 7˜Š–€ h3Àd-éZ0uÏOžZÀ,²M°—2 Zœ÷”"ÂX³µä=Žx ƒ‰AJäH$’ ÈG½•i­Çš¯Îñ>ù¯^wßA×ÞÿÐëñ_>ÿŒq&[(.‡uÈ\í‘ÑòÖÈà"‡+ fÀ€s³|ë­7é‹Ïü»Ÿþ|€z}Ygì#‰'0,ƒ !€é´J""cL–eY–cêÐJ"‘H\kX†‚ FagF@’@…Lñâ3Ø4V¼áMÛ7ÍÏ?Ç€|äüÛŒ ÞŒmß2iUÏÇR…™™Y¸ïñ dÓ3Û O0ªM;&“«“¶õÀgVJ[p¼ññ¯|N"ÁüÞwݵãBwëŸÎú ‚Ñaký—Ÿ:vòi”%$‚-l£Óˆˆ^qäé¸:xöøgßõãOü^È2!Š ”‘bT“®õt•«Ç8^^s‰hM¬Ó‡ ‘H\³}q„ÃP°BdUUUa:0>ÿðù¾>ñ¥‡–ˆ‘eÓ@ÂC_|îþû÷>ÿäüÓ¾ðþ÷½í×ó/B¬Þø&:°ÿðçþâ)g\@äÜ~Ëèž[ïúã?y"RŒŠÿÿ¿÷Í›ñ¦Îeýé/@!œ‘CŒPà?ðmƒÁÊsÏS T°ŽB¨§ŠÔz:ÔÞ:{ã•¡E$„Pï¤A"‘¸Fz4|5ˆðP Ð?û3¨Š…óøÔ'S‚³üÓ?ùg`Ëô{çoÚMgæÊ'žøêÔØ ˆÎ>ú˜¾øü™gž97- l}ê1í½pöáG—UÅ–«ç{SSgT-@*úSÿæO+–ñȃ/öƒgž=e*(³ˆøJ T/Ëú2úü2!U !Ôû)¾‘H$®aèâB‚%XƒÂ ¶(š0 ÈA–ˆeÖe¦mဆ…%8¢øã?ýÁÎ$\=E -Fó÷ÿø‡M4ê 1ÌŽ†e˜aðÛ V? BfÀ@ÓÂ9g­½øñØ™S§o¹åÐé3ÂÌÌ6Y§=Ñʦ*PyƦÙém[n8{záé§Ž}ñË_"°U(Ãæš7´ÚEgݨq_þ¤ à«ô{‚!bA j9Õ´$‰W™@” ƒ¹x@Úî`U…k:v8SS¸†Q“‘=?w~Ûö, Ân玙Åó§Íà;ey>úîùŹf3#dÁ쮙ǎ>rÓÞ-«Õé"o&‚—“Ù<»õÔ…G%Ÿ;׃ª!ðwÞòúûî¹óðöÙ-íVÞò†oÝ:½ùÍßòÚ™öX,‡i޽õõozë›ÞrÖ†@oó·Ý¸u×[ßôî¿÷mÆ(5Çî{ã}¯½ó~eYÓ‰D"ñMh½Ø²ŸÖE E²A9X\\ܽû¦€¸mÛ¶¥¥%BUVýªaiiëô–Õ¶M[OŸ9}¡¿èEbfœeã2{âĉÕ–‰Ùù……óË Ý••ñÖô ìÕ‡ ÏóN§sî¹…•ó€ôc/ ø<öØ£O?ýÔôÔTmv™ët:G޹å–[úRYëöîÝóøãO<üå/ošž!.Ëøì_Ö€}U»o¼ñ™gŽ}é+_öâyT†“H$¯ši]™7ò•¨G5>1>?¿055e­Û4;»°8ÖRCœ<;·ý†sЦMQŠPŽmjÝrë¾[íŸ?úÂMmšš;w¢ÝÈ^|éù›öÞ`Ù)b„T®–NÍx{Ü’µ0o¿÷- ,—=7ï¸åöÓ[¦È:¦ÙÈÏv¡»\Í ƒŸžœºq×®»ï¼³( Ø6EÕïŸ<}ÂÁXðøØmךžœš;{Ö€P¤ŒD"ñªa˜#q©l)Ö®Š1¨ÊÂÂüÞ½7Ÿ››•‚ tW»Y–µÇ³"þô  °²Ò}ø«W@Ë43d’i§Ó)š…BEsllüôÌé³sg¨B›Íf¯ß×eé! XQ}ä+XëVCߨ¨fȱª¼‰1zpïk IDATÄ#GŽTJ«qP§|8ë|ðUå™MåËCžå•¯X‘âЉDâÕ%З¡KA¸,+€æçç·mÛvvþÜ@}»Ó©oêWƒ3sg÷ܼï…_*l}$Q¡ÄN©Š%»wí=uæô©Ó§‰%ÞtãMEž;c} QèÉ“§6ÏnŽ1’(3+( ::fìÌ™¥òU…h³Ýfb"7¿¸0=3Ó­ú •þòª×ªhµ˜L½’ª²'%€sóó[·oë­ö^š;õri‰D"qa°®A­åCCeeYvîÜ9Y]]-˪ͼ1wnŽ@ ”ƒ²Ñhœ9sf+3q§Ý9·°5F(ƒ&&'çæÎ©ªoÈ ÊA«ÙZZZÒað›å@¢4›Íññ‰…ó Ý¥eY]YÙµsW³Õ;{n.BÇZã/;Å`kíÒÒrËsóóSÓS““f{ii)ŠäY~æÜ™±Æ¶;¹¹3‚ãívk~~^’:'‰Wui]á €!CÄDð1Шƒ˜Hª8`ë†pŠ*z…æ6+CÀÕöœÉ[úBëŒkCV4®ÏGÎlE­W-‰‰H)"28 (3Y?–”să¢ ˆ Ç -ŒG PxgÙ¢®Ô¬ÍxI$‰kþÚ¨ÄßyçãcãL\‹!YsÛkn“î¸û.TÑWÁûjÍ­b¨ÿ¹EDQ‘ZL`…Phxtò¡ 1ˆ*,‘à8¬ï¦2úúD"P/!@ @ZE¢U¨@볎@h%>ªL/Sz˜H$× @ëÛZ}!ß}xÏî=uD"wÙ7ì¾ûðadŒ`Œé)±1¶$ R[סdSmÌ£Êè"ÖvjU**@%!@"4 Š£¦Õµ ¨‚êû¡uñËðA €ÊèÿDˆF¤ÖH‰DâUƒýÚ7)gœˆ´Ú­Ìeƒjçù¦ÙÍeUk½“ÓÓTerzz×®:ö_}îs1†‰©©ýûö7›Í¿üô§G™m„Kâ¿té]<ä¥;WÉÔ;z…å¿âëƒjJ}N$¯VMWlµÕuì‘“'Oî¹i€™™™“§Nkhµ[[·n ï¸óŽó‹çŸ}æÕHÆ8p°òáØ±gF£/.?ÒÕ·~ûÛø:¥6)r"‘Ø}5ycCFDBŒ!Ĺ³s»wïÎL¾oÿþùùyU ¾f6Ö¼¸xaçÎ'Ož½ñÆÝO>þø‰—^J·‰Dâè¯ƒŽˆ˜Ùûj¥ÛýÖo}³ÄØ_]-ŠƒÁ ÆE9räÉçŸ~ß.˲,sΕe]õñ_fK$‰ÄË9h {Ûçlü±cÇ:ãc?òÕØï÷A¤Ñ|i2 ßë?wÇÝwù²_ zK+Ë»öì™Ôú"‘H$¾A¾ÂÈÒhÐï÷º0¿ðgþçóós¨‡•¨h6šÑ{ÿã}à=ï~×g?û™úAxà×¾öžÿùG~Ø9W—t_K["‘H\‡bÏ—ûñ4¯$‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰ë"ZkLxeÏÂD"ñ÷Dú²%þÎb}ÙN"‘H$®SúÈA'+H$׺R'‰¿¯oYz _'Î9kíš:§G"‘:ñ͇ˆ²,kµZDÄÌÎ9Õ4à1‘H¸ºÝnOMMu:cŒµvÍJ'‰¿?Ò×,ñ·#"ív{bb‚ˆŒ1uÖ]rЉÄß»7J/Aâë¡ÑhdYæ½÷Þ×׬í$®Åo°^ýg²¤W, tbS'o¨jrÐ×Äw÷k}ƒåâW tzç’@'‰€æË tYwuL¯Ø†x{‰Ä«Êh%¯•t"‘¸Ö-–^¾O_ãÆÄµI/A"±A,VRß GJ³K$6 I “ƒN$‰Ä?ü¤D"‘¸šLÕé•"’Ò+ÿ!I!ŽÄ?Ô‰^_ñÝÿnRrÝ*_ñÚÖ/Ä7XœR—ÖMD1ƤÑI B õ}H½Š]‰àú °¾ åk•¥¼â3cŒ1juN>: tâUˆÒ×!ÐúŠÄ‚¾ÖµªEIôú-cÖu¯ý-'¹W"ÐkÝeëýTGš:±!ú¿^è⪗ ÄD‰‚èzW+ »¿ñ—£öË"Ó_½ŸÔ9 tâU(Ít…L¯;¬ûVÓ% B뮿ò«Ïën¥Ëºî«G U( Ò«ªÌõ Í_ë·Æ7â£U5Æ`-ÄQ_L$N¼Jàaa¤®4ºr@«÷%^¡ÚÄÌ*ªPÐ%:ÎÌ*ëD™×í+.; ¨(@×s20}býÊXï Óçý›uêM$^:[f’5­!€ÀæKÒ³êï¶x‰ŠB"C—™\Pe²ÌLr1p¡Cч(TªT›h&Å %}™/wÁéSštâzUZ—>APuî¡Z;™x(ݤù/ÃrŽˆÅ{¨‚4 rÔÿš˜Hˆj푉 DTkó(Ä1§ë^‡’'N$.Sˆ2ˆ•¨XbcL†™µôƒ: f°`2GÌD¤Ùä¡:@1°:[¬F †Q¨RˆªJD 2`U!"‰B°Å­#R‹úD q$®£ü²!&"V&b€kcEef2LD^B @®Q4š RV%l˜AA$O cDbŒÑPî¬eg‰8H‰‘C`@G9uœDEU×–)¥ö•úê1—_ëuN‰×'©Gâhb"1³ac3ÆXã,˜"TTÀ©q°*³0¹"ow:E£EDU  hôœÙ¢Y4[­"/ …Íl^´òF¡Öz—£öÏuJ.qoVÖ‹?÷õUçA®çr›DèÄmAaĄ̃‹­5ÖZ—Yç”Éû P¶V…˜Ù٬ȅ*““7ÝtÓŽÛ™¹,KcŒBcdL£Ñh6™±!FRdlÆl¢D‚ª:—Yc˜™A ⺞‚ ×±h†°µš$ó™x•’bЉoÈë1“1Fl†Ø×hçà«~¨ lòªLLOnÛºµ\í?þn4Š¢(¬µ£¶Âu,[/K®ûx8“YcɲˆöÖnm·Û!„jµb°Äê‡D—Æe.6J²œHظðÅ®Zë§ØÚÌeÙö]7ì;tHHûýÞé3'5 ûÊYãäT C¦p¹ã¾'Ož »Ý.ˆâÅ ÃæR®§x¶Èóœ­õUUùAˆ¡>v·Ûc$1&J´ÖcÈB9‹(U%°bÔK/Ét" tbãÅ7h]S$bª“ì²,ck5Jwuue¥4t»ÝrPæYýîªJk—ƒÞ³Ï<ã}Õëõ‹‹‹‹Kʲ$¾Ø¤t-sî¬:66朓z2žúƒŠ*ëÂÂ3‡A‰Ñмºaq«ÝŽ1ôËRU« 1Õ+§ô%I Æ;ƒ†«kÄuë#&RfR,/wÍÖb÷Â~°ß_Y\¼ 2ÁXå¨[Ò¸¼¼b>ðjDdeyLήûø‰Ö5%Æ0q](ÈÜnµU¥Š‘ˆ¬19H¬ª*JtÖ"Uk.Ë’ÙØZaˆ#Bİ—“¾LÐæï@RøDèÄ7MŒGÓçÖ)˜©8+”‰1¶®APUã¬h\^^β̇¾h¬Ý°!µÎ¢N¨¨£µ9QaÃõš`Œ†! &D@HëwÃÕÁ`%ú}U‰ºæµ#eÍ > ªAˆˆªª*ËòÂ⢵6ˆˆÑ Ø•Ô Uv­ñ|èĵüã5½‰—hCDàØÃõ“HPˆ™Xk#¼ªB³¯¢ˆz Ëú¶ÎkÖºËÝó¹£€ˆ fc­avÆcr.ê¡V": E´žëAD…±QeÚ¼01Ë#"U¥¾ª#Ì(´N·6Š(xe“›R¥K"9èĵ€®ûË£4;½xëúƒª"0J2 È%é%6ª*Q_&§¢6ÈÃfâ½÷^B}Þ ¢à˜˜ˆÉ9Wß9s™**¿ª¢.˘Y(8—™Ì0*‰Y¢\Læ#i´^" tâÕKí”AuÜ9™a¶]À6ȬZC¥f&"#V)¨¯PÀ‚…¢()Q¼Ú`W"0Õõã"QT¤nã1˜Ø+l,96l™™Ù³gOoyåØÓÇZÍ–ª®®® cm–EP }k Ø€H8†ÒH½DèÄ«Þ5[WÔS^¡Ì¤2$†Ùh`°À:Í2—¹Œ˜‰ÔÓã®–"£‚c`™RχKŽs1¶2Œ«ˆ*D‡±U@ Ã,<­ _ʘžš¾íÖÛNáèÑ£Î0õ}k­µ³!¢¥ª| Ñ:GD*2ÌÝ…„qeuL ø%’@'®Y¨.±&Z†¹oÖˆ¬ÎuŽ{DDà2rY–3‘j4Ö^X9/ˆlYíÆØÕ^5ì¢Ï€`8„°¾ª^*©w=ÝÐÔIx,àa6+1xùÂò±§Ž-_XTÕÕ^WUG™vB ¾cô!ÀA$Š){ÜIãDèĵ¬Å—ygR"‚ˆ€•ÃZĈ,Cž“³0¶áœª: ª*103²Ö5rg­©35غÊW¾ Ö’°B‘娼y–Å®¬tMFãí6‘]î.‡2C hteUŠŒ:„2ÕÓf™ë.Ï5ªa šHáÜÜüòÒ2HˆÉkŒQ²<·Ö c0x˜Èb21z©Ë[˜™­*D¢ŠŒæÛâ GŸ5I מ@ƒV‚ª¬"cÇ.Íæä¤mµ¬s¦¬ú½ž =" U0ÌLê,;0ET1ÄmÓ… aè() p–wlß’»Ö‰“'ΜYŠ^ȉq쬭ª*–£hæ‚XIT_k´2h¤ª¤Š1H%r Á—¡ßë³Ó©©©Í›¦WW{e·gŒñBÌìœcHUURU!fXέóï0,2Ä0 2Ræ$Љ$Љk &€Ë8:D­ È´•Ù‰F{zÆ#ç{¾ç‚·lä˜äŒr^BU«J½½~¥¾j8rlE=uyùBÑUP†åÕUØa# Å`µʨaX•M£'£J"¢ DUÌðŒ±Ö8¦ljrÓÎ];çææN¿ô‚¨p¬ÈŒQç\U ÊàÉÀccFDÎduÊ  ‘˜DT×g¦#[d:‘:ñͳÏW1Ñ6ÈœÕf¬ª–È‚ÜD8AlIY<Lˆ r 6È=T”¼r%ÝAß—UÞ`Ë”!D={ö4Û¢ßïÙ‚‚QõQñ(TQ*‘aN1˜QW¬D!U…vÒЕÙk˜bðìŠbwµ?(}é}Æš¼ BF)€Q À°eæÈbÌpö7A½ÄG'N\3¤~Ðש@Y×™I ƒ"7®!–Ur.rcŠ"·Ä ruEºË¾ì;ß¹DA9H«ÇTF "ú¡W‰©0 ¯^KR“A+ T…«[á `À1,…Q€ ŽA€*ê"De0Œ©W1­%"ã½wYd.,÷Í;ã Ê.H¡>„ R ¢„UX¬±ÆšŒ™cô"qxŠÒzÉs}η&N$ø¦±Ö–è²æœuE41¬¡<Ëm³‘çù2Q¨Ê~w…˜¼÷~ËrÙæPO&Máéb±ØkK.YXû¾V"$3AVÀ§o?ýßýÚ¯;~ü[+ˆvvvwöæ»;»‹E»¶¶¶±±R75‘-‹ù|?•¼º²¶²2›MgÓéì Yƒì>ÌtÿŸü“ßúü㟿ùÄ6nŽ zÄwîëN9h0wÎ1¨¨J匙V½Õµ;±®DH›æ<¦ñp*¹ÍQDæÁˆhÑ mÛýLz•RŠëáØ54ɹ˜¨c¿fÂŽO”nR7G|ØâœR¿MÓ4ÖRJ›]7ŸÏ÷J[¤…¼Cê1 ÓüãýÙÙ×/Ö+W®\¼øÆ«ç^3U ÁT÷ëkk‡66š¦!Pß÷]ß‹ˆD¥ä\J9qôè­ïºíøñ#fªj¦O>ùÔoýÖ?»zõÚÛHy¬G|?þåŽøþ>|£_‚‰ˆf ä4˜ï3Ã{ç£ù:¬¯U¾iXÕέ(Q1ŸŠÌ%õ¹d§¥H—‡6855—ሃù"E¡lÃæW–ÄT Ð{Rpqã8qÞgPJ¹Í 5=‡ª 1¸f2ùŸÿÇðG}{qþÜ«Ï<ýÌsgÏnmnŠݰõØÖTUŠ˜Z]7³ÉÔûXŠt]ß÷igkûüùóo^¼Èέ¯¯ßè®Ãm·Ýöáø™§ŸÞÙÙ«æ#AønS3}ÝÇ䉙ț1Œ@¤|Œ:‘0›¬žUk«Ÿ%Wm‘e¢eÊs+I$›Š˜pÅä½:V®3{sNØ ‹pŽ<ØåžQ¬ôL½sh&Ï>ˆ‹©”®ˆ¨Zp8Øœ4r˜L&wÝu÷ÿúþ·£ÇŽ8øòåË_üÓ?yñÅ—‹%½íe©•ÁUÉLM†/¸¦nŽ9väð1bߥvÙ•,ƒ›]»lßxãs¯¾º¾±6›N‡'Š1þôÏüÔÕ+—ÏŸ??.˜#Aø^‘5Ù0ŸÂÌjxbpMôUE5OVV_kVV¥PRÍ­[v}Ÿ))¤jÖ™ª™S"fª¹"b°SäÁ‚p.LÉÄ=aÑ÷BŽ|èË®k³:ï›Ù %)EØóm·üŸ~ã™N&4ôݾúÕ/ÿéŸüéb±Èšì@-655£ƒù@G`G.¸8™L9º¶ºVD—‹Å²]H)Cy=xÚu]ûÊ˯ìïí8qÂÝ[yôÑGÏ;wéÒ¥qŒ zÄw]Ýàƒ~¸Áß™à‰ ÀÞ{šV>FjÜdeåðñUß4óý´,’¼LYŃœ9QSCô3Uxe°ª9v0ê¡ä½“L< 41©ç^Õà´LÚ§"äbUǪ’¢E³ªMV&¿þßÿƱ£Ç±ak{ûó?öÚë¯9òó`œçƒË)©æ•Éìøß8uÇ)qÌ›[›¿ÿo>»¿¿ïœcçšI£EŠï¼Ba,ëªADLÞ{çœgÏÌìîî.‹Åþ¾c–RŠ!Bˆ‘ˆJ)fèºþµ n}×m“¦cü±û±'žxb±XŒ‹gÄHÐ#¾³`æ4ƒ8¦Á½“ÔÌ.¸:DbŽudæÃǦ”6n?ëªMó½ý²/]×kïÀLìC ® ļ’R¶S#•étR–IU¹>¸Tоª‚¨ÔjÑyƒ1¹l¶lS3[m&Ó¬"Ë""ÎsßõÐüwþ«¿ûÞ‡¦ƒ1nû7Ÿûýe» cõ)U1.K!¢"ÅÄÈ@ Ç,f¼U]O'Ó¦n˜hoo¯ï–}× iß¹$Sõ1Ìf³bÛv0„P™Ñ›—.Ý}×]ƒÖcxcíHU5¢sÑ|C%3«B¼õ]·-—‹PG®<çCÞ;3šøèB4¢ªjB3e‹ÁˆrˆrâúÊjêóþØÿç?ÿsÎ9&&¦'þÝ×7¯¢LŒ1ºphýP·h™Ù±¯«ºdq䈙ÀÌγó.4U½¾²²¾¾æ]»È}ŸS×÷])YQBpU 1ÛÙÙLñˆRzýµ×OÝyÚ{`ccc:>ýôÓßp-2àÛ¹šaæÑùcÄHÐ#€âóÊLÞU!ÖUU9V…yçØ;ˆ>Öõê‘õƒ PR*¹¬×ë¢ÊÉ›™cv<ç)ó¤ªëºÙX[½ãŽSÛ[›>„bª*`"¢È®©ë••ºª\Œ!x|Àà)šBߥÉtzÛ­·9zäïþò'¼!z"~üñÇÚvÙuÞ1DÇ~}c}±?¯›ZDƒuU³ãªªÌ,„àœ7³º®›ªZ]Y5“¾ï½çÅbQ$‹…z犔”z³ƒÒ¾ï½÷*²·¿ÿÖ[oÝ{ß½Ãa»÷Þ{Ï;÷æ Ão‡—ߎ‘GüU1zqüM>µ8UR«A|ôìÁ½eRa3¶b戈­°¯Ê·&.—-g³¶`Jí²ë[fçNŸ¾óòåË»{Ëélvüèʤ®Uºíííå²=rüè-'O®ol[‘²»³½µ½@ëë³™w|ùêÕëׯ¯®m4M¦ÉÉŠ”nÑ:ϱŠûç?ÖL&¦Ê çžîõ×.¼ë¶w /1ú"yꛕ•k>zöõ¬>„XQasózq6›õ}_o–Ûv?¥Vµè‡™²¨t}jšfum¥©ëvÛ¤Í IDATÙ:â¢bÔÞ¼øæŸ}éÏÞÿ÷GïŸøÄSO=5ëˆïõEðˆ¿¹ô&è_7˜•”RßkQè`G7 ³Ô÷©ïsNƒ ;™NóD”s^¶í|>O©˜a1_\¹zm{{{¹\ÎfSUëRzý7¶¶¶šºÙÝÛUÕ[n¹u:^»~uÑ.ï¸ãŽ;OŸö!ÔMãœ3;^[[›L'Áû÷ýÐÃï¾÷ÝL`wgçK_ü"1ð<ÀKn—KÍ¥Lš ;Wr)¥xï›z"*Ì `±Xìíî]»vuk{swwgÙµDðÎÝT(ªªªëÚÌöçsçܑÇþ5˜©=õÔ—.]<¨š?þñ|\E#F‚ñ—Ñë_rséí†)+(É¡%]BZ“ì =iAR.Å4K‘ÝÝÝn¾@. “ÉJSOk7q®æé¡Õj}Z¯Vqš&„@fÆÌ ´}—r·»·}íÊ[¦™ “ºÙÝÞ,©sÎ9çs×÷]7«ªÛO/mëTgµÛX©«ˆIÃù©™©zçþäóìAÑûº ‡lll¬®¯¯=rèÈ¡à]ô¾´}Î9õ}J©äHÊ-$9*%/»nÙîõýb¾˜ïÍ÷E‹‘‘÷+:ônG"n—-Ô̬n-"¹¨(`döÄž¸y >úÑΦS~[¼Á*­cĈQâx§Ã™Ì@ïÀ¤b4¤’¢ ¢®r9ça¯äãLEûÔ•,¥”!;ø­íMU™Í¦++³k×—[Û[¶ºº*RrNf¶2[‰•;~üÄ|oŸ½§’OÞ~;¼÷d¶½½]Jñ!Üÿ}9e3óޭ̦þÈo:týúuf¾tñâÅ‹oÄ…,u½ÁËEî¤HYqM Á;1ĺª©†‘sž—R’Rj»0 ¾¡¦ïS)©ˆô} 5DŠó1„0[[i»6õ©mÛœsJIDDÅ W¯^}òÉ'}ôQ³Ùì#þÈïýÞïkiÄHÐ#¾‰^¿Å.ýÇY\ ž“gìÉM÷}/DBd0Utûz¤fI½gºý–[–»»%g3ìí.ÌXÕŽ=²¿ÿ¦÷^µ3$QO½£º HÉIU“æëW.çœýÀ#{»{ç΋1¾ï¡‡sÎJ˜Ï÷v/ît]×÷=ˆv¶¯ÿè´”l¦FüäŸþIN;ÞܼÞK[Š˜@TC ®o»¾†LÚ¶],“¦>uêöCGÖ7¯^ͪ¹”¢¨@¼X.‹hÛ¶}ê“ %Sh‘ܧ^‹mnn–R†hU-’ÍÔ üùŸÿùÃ?\×5ûØÇ>û™Ïèã=²Œ‹sÄHÐïhqßd3øvRþ´}] MŽ9T¡©k"SUÉ= É~‰ f¦:ŸÏ¯¾uY‹ìn/cSÊLœRöÞQŸRUÅùóù¾÷B8qâDJÝîÎ.Ue¢¾O”vÙzçX.Þ»#‡ƒ°µ½½²º:_ì_¿~Ý;X ±ž4k'NÜbfÄ|õÊ•sçÎUÁP…5µRL ªâ$笪ªÚ÷}UÅ"ÙÌî?sæä©Sßxý™?û³]ï}×¶›››m×´l»\Jê»#³UMÉÌ"—à=‰êr¹SÕ‚¶¶m_yå•3gÎpôø±;N:ÿÚ…qŸpÄ÷c›Ý÷#1sÄ»väÀÃàòp#"æ¡Nå›zèðMDßhÂf*µ1;òÎyƒ¯« Œ\Ф¢jسcÕ¦ªT³–ÜÄ0ßÛ[ö©¤’z‘¢)Û|¹\,ZÀbUåœT¤CÒ«™‰5M³uíº™uËÅl:-93ór9÷Þ›a±XîììTu]DœãiU{vDœߣœ:}ŠˆTõ‰/|áúõë>8vì{çP²æ¢RH•”ä"j&v\r)=ôÞÉd²ººvÿgb_»pa±hÍÐç¢fì)RIjZŠˆÞ(… Þ;vÎ{¿¿¿«v-nv`Û¿³»ûðÃÎ9=óÌ37Ïðõšô¨M+è¿áj†CËÂÁçf °sºQ»™™1½½ŽÆ;Èôm VpLäˆ`FE„‘»ÞÈ´OƒA(Èqh<;8ö–û‹¾Íàœ‹(›ÙÖæ6dÌÌo½ùfÓ41Äv¹\îoçœ=¹‚áÚ•«»»{u]KÎ/¿øÒööfŒ!F¿µµÝ÷y¹\Öuµ?Ÿçœ˜Ý5Eß÷}Nλý?_JQ‘\Ê‹/¼ÀŽU-§ (,[)*¥”Ò¡´Ë…˜SU·X0ñ0°¾ì:U2dï{àÌ©»îþ·üÇ_}æË¥ˆšRÏfšRöΊˆªB €3ÏŽEU5UƒÙÁ£põÊ•ÝÝÝõµ5<óàÐî¢c=b$èw ˜9°êaçØsNCø´fÆ ˆ0“a˜ã˜Ì°1@žá˜TMUÄJ2%bË…ÌyrÁ‘xçMmÞµI²!À9Q 0³'RO®ò™JN¦â˜´HR¶äÔº¿·—svŽKA×w§*ÌND˜y¹\–¶WU#LãìŽÓ§â»tñâ²mcUå¾WÕ\a ¬f('¡ŠK.`R‘¼\8ïA0CÉYÍÈ ƒUuý“?õÓýÀü‹OýÎÖæfÏÉ̤•œUÅT)«(ÔTU‰`uôð^~饼ÿDt×]w­¯®-—Ërð.xà==®Û#A¿S:VÑû`"DD QÇÌìÜ@ *2h f昇‹ìanx`Šƒ6EÔ´0³#ÇLE3ÄC !„5°Á4VÞ<%‡¨ªÒ—âàE•Ä1 ±¯1ÆÚG.IH0LêªZ.úÅbѶíD–\å‹¥A•s~:™t]®ëÆ fÔ÷=@ŽAD)—S§NyïÍLÍ®\¹2ô";ªIÉ08ï=’Õ×èRòµ3RÑ5HMõ@y7€Ž?ñßü½ÿö™?úsô‡}Û11‚ó›šÁ,ç€0îA:íÁ3»ôúEzäÑáŠåž{îyá¹ç‰ª¥’‡1®Û#A¿cNƒ÷+³YÂr¹4C]×U‰8—\ò`ÃFC Á@̓䡪7™ZM;2xUU‘ƒªšc2²ª®Wf3ö.—²×-EµÔ„¨bU«AUËΞÐ9L¡b¬¤>86b°'ï£kžÀÎy)$¢RJÊÙÔ’ä *ìb˜L&ÇŸxå•s%ç”JÓLr.§NzõÅçCAýý<( ¯]¸ÀDž¯ˆ™]IFæ@Uƒ#Š!ôÌÍ%é` *¥˜¨aH<ˆo2çC?tßý÷ÿñ¿ýã?{ê©*V¹d3°ƒ”ƒÆ ª)ƒU•™ÉHo$}¿qñ &@>øà+/½|`Û”Ó¸\GŒýÂÐAཿõÖw]½z¥äÂÎÝ}÷]¯¾zÎ9¶XQJ‰ø ܉n4jCoØ13‰|$ÄŽF vÁÌ”´ò4[[].ÛN’Áhµ®ë¾ªbAêSoZÚVLM¤¸è]Ü…a‘|›õÙÚþr¾µ½µ~èØá#Dzl§B¢ó"I#ˆ {2Í{û;Žmc}à|¨-¬­¯;~tss½m—U]¯­¯:ö”’K a}mµÛÙfÇÑØTY)… ‘88ª£ï 1ƬƒøC 2"&³Ô”Ù™ê KDMSÿÌOÿô÷ßÿùÇ?éÍK0Ó‚àCAf¦œsðဉ¨©©©*€¾ïÕ”@ͤyè}?°³·{þü…sç^õ#A¿ãz1ŸÍf{{{§OŸ>{ö¹Ó§O—\æó9;¾åĉµµõÛo¿½mç/œßÞÞ&¢‡zè¹çŸ?}òŽ•••?üÃ?<|øðÉ“':tåÊ• . ÈÚêÚdRO¦“ÙċʳÏ=«RN<ùñâl61Ã-wŸ:røH»RˆN¯\½Òúúõ×^SG©êêÚùmfîæKç¦'o»}±\înïF¯^»¶qèÐm·Ÿ¼xñ“ÆXíín 'Ó8íÚ=U!ÓB]Õ“Édo?XauSWu$ÆáÃ÷ŸyÏÊÊJÎÙT¯^¹êˆL5w9ç™p¤.Á;W…Ú¶U¡«ª®C¬À$"’uPä™wNUEDÕN>ý_ÿò}ø¹Ï=ñ…/0s]×ËÅœ™êzÒ4s°íÝÍíM)€ªR:þüwÞ Ð‰'BŒÄTDFvñ]Õ?ÇCð½Åàø#ªË¶½ðÚÂí·ß¾¶¶úÆÅ‹f¶±±1™L¶w6_~åÅýý½ûï»ÿÖ[o]YY9yÛíï¾ëî+o]~ó‹'Ž¿ÿÞûª/¾þÆt²rï=÷¯¯­Ç*ÞsòÔÖ¥Ëo¼ôÚæÅ뇛õzMúRºì š®]»võ™¯<½9¿W\昕£ïZEì ÷+‡ê·UM¥ÒdEɽðÒËm%ï}sáµ7¿íÑ¿õ“Ùᕵc“ɪÂåœsu]ÍV&«+«u¬f“•&6Á¹Ò§E?W'óÜjÀt²bŠœúœzf"i¶Ò#'N½O)ªzMè—®_¸nÛEl—X¶ºX8§`ru=;1SbòØÑàÇ/ªì\#ߨ]ýà?ø÷þþß¿ó®»677»>µm?›­0ñõÍë¥Èt614H.¢šs.MJ){{{çÎf[Æ;b¬ ßYMDMU·m{hmýܹs?þÁ¾ð C>Hßõ;;»Î¡ïû¶í 68Ðïíï¿ñúëZä‹ól6{þùçsJäÂý÷ßÿÆùs“É$Ƹ¶¶6ßÝÉ}šÎ¦óùb¹Xö]OMÜÝÙ]®(_Û¼ ²ÍåÕɤi¦«õ¤öI×Öך¦ÞÝÝeË®=4[¯ªêèñc‡ÞÞÙ“"!6jÖ÷=»U„˜MQJÙÝÝNœŠ¡išãǯ¯¯ßšALK¿ À9êS¿³½Óõ„õœ³WQÕAš`")EYÍÄÔL‘û¾ä´ìz3[©g9WU•s ç¼slaV¢"U¬bŒr“O͈ymmí?þ‹·Ÿ¼ý³Ÿþ 3O&Í믽¾l—©KwÞuç•Ë—‡Žl3 *ˆ”’www_yå•®ë†=€±ˆ1ô;HßH)Z[ïú¾ëºÅ|!¢/^J)M&“"¥Oýý÷Ý÷»ïÞÛÛ3µëZÑT“’µïÓle­[¶kkWU³œÏ›X…Ùlžó³¯¿vÇ=÷Ó´½µõê˯°c'Ítl1ƻ_¦·ÇúÕW®èêêæÌÝ}×=çϾvë­·/®v)—ˆª©'.T]*bt}{·ªB–CNÛ/½øÌþb»”¼Ì;®¶vWÔ²šKÞÚÍ—.ï¾zñ5÷Ö¥vÙ9ï÷Êüð ¼ÀÂŽwC# ‘8Òd*²©‹:µj°Ú£uÖj6sŽ«grŽœ+¥ø¡gYÅTƒ"òÞ眉I“>ôÞ÷~îßüA×uuU§œ¦ÓiJi¶2“]tÑC3 "ËåòÚµk7·gGŒ ú…R 9ǹd"Z,!„RJÓ4xäo¼ñÆã=ØOüćØßÛïû^DªºòÎïç½®m«ªÚÝݽõ–[wv¶«ºZ.–[ÛÛW®\Íêûî½Ç{«ÊÔTm:›¬®®^½z5—¼7Ù­c=©'%ËÙgŸûÀ>pìèñÂ…·.ˆhß÷¹”½½½ÕÕÕsç_½óôé®O››[EmccýÍ·ÞÚÞÞêÓ¢Q±º®’ïE »ÈŪÉY‰].…ïº>›ìï/R*UU¯¬¬ˆjÛµDT…Juˆ<1\±sô½V5›©Šh)!Ff6¨H)°®ëº¾ëûÞTر¥¬f·”úbs=*¢f¥H.YU÷öö~ç·»ë:)EM½s{{{³Ù¬äÂàÁãk´} ¸Ñ63–Ï#F‚~g¡ª*å’Û-—KUÍ%3óÎîÎþþ~N™ˆÖ×7vvvÌ«šjѵM¬–eêxþµ×Vf³â÷÷÷»”¶÷vŽœ8ásž­Lw»Î|X¦lÞ»ªÚÛ_ÌVÖÚEWUñDs,¶þ0yýõ××üÚ¥/=tÏÃ/¼ð|·è\¶BŽL•<.¾yñ½ï}ïöö®±ÜÊÊÊë_›/öÍÊl¶’{gf>nHßwycTZéÊ4Yh{!ÒÎRg©%­ôâ—¨0³HTs)ATUX3³ Œ„h#vESiªÚ±[¶ í—…ýréRîÕD•D93%9DŠŠVU4€зýÿóGôÕ¯|emmµ©›åbqéÒ¥Õµµºi¦“é›o¾Y¤ MˆU5”Ó7'¹Gv1ô;±|&ƒŠ[ÎùÒ¥Kƒ%ÐàÕyáü…ÙlväÈa½~ýúÆ¡k×®]~ë-çÜþ|?ÄØµíæÖÖÑÃG>œRzõÜùå~Jùر£Þ¹¾m/½ñfê³÷n>_¤\Dm{ww²:kšfÑî.v·êiäJ“í^ß½¾výÚåëÝB½÷¹”餉®ÚÛÛ­cõòK/Ý~ò$3º.¿ñÆëbj* Š1–”—íÒ¬ª› ̉š¨-»Þ ‹å2DÏÄf¼··X,zçò~Зþâ¥{ﻀH¹õ¶[/Ÿ;ŸR/ªZRóN‡é›.¥Ï™E XÌ{)¥x,sÕÂLìXUEM´"3f+¥À@ÀógÏþï¿õϺ®+óù¼®+¹víÚñã'f³YJéÊå+Ëv94H›AT ¸åÖ[F>{ö¬snô±1ô;•£s³ ZJ¾xñbιHI)™éµk×Ο?_UU¾i&[[[Þû/}éÏ[´K´måÃæõë—/¿5›Îöö÷œsê¨ïûçž=ËÌš˜¸¼òê…ÅrYMª®¨íK)"H¥”±Ï]«¢_¹þe€ØœôIEööRåc×uÐòf»¿»{-çÌ®êºÎÈ‰ŠŠö}—T5VW±Úï:õ!dfEÂå+»DM×¥ÝÝe¤”Ôl¿î»¥i *LH€(–ƒ¥‘²L4ƒ¨ïÔ;-ªZ¨¨ä”zä € fVò둚öÚommýËñ;ñ‹)§£YÎ[ò䜳Þ.^|ƒˆRŸŠ”R 3£+jVÕõÍjy7ÆU:b$èw(BQ•ëׯåœÍ¬ïº>QLÙ97_ÌcÛÛ;0Y)eÒLT•SØþþ>1Ô‹ †étª¢©O’µªª«œ³”¢j‹e[E5oDèsÉ9Ï÷U¬›%;â¶íÅ *iуÑBf³Ùr¹/"ì¥Hi—‰=‹(Ô@>Ä–,©ªeãÐáC‡Öçóy_:¹ïz"v>®¬MierýÚµe·óüsÏþgû§ ª*'n9ñêW¿œJÞP%vjB TP´ .F 6¨ô}„B… 0U1(eØf¢™.í¿ûÂ>û{Ÿ13©ëºB‘t]7tÑ ü+LÜrË-7ÏγÏ>;Š#F‚~§²³êMÃJ5ÛÙß ìé#V±ï{ÀR)ô›ÁrNŽ}ÎÙy×¶­Äا¾nê>õÌÜv—"Þ¹¾ïͼ)¹àcÉ¢jÅÐÏFV×UßkÎêÈ5±Ì̃èÜæ¶ïŒº }ÉäÀ¬¦©”¤j©,Cp!0e5$Æb”É|Vên¹ãØÅ‹i§íuR…êðÆ¡;Oß±·µ)Òv»;ç.¼¢* °£»ï{÷“ý‰@ fªæ#‹*AÕ³Áu4ìÁ ¾‘¹håŽ~öåg¾ü¯þåïîííªšÁTàí¾¬v#ìëÏ…éà9u÷Ýwß¼óêÕ«ã*1ô;7û„0øO@ËàÞÃ…™¸ïû eP¬" )evºZ¯Ìçóàýb¹ ªµ}7›Ns²fç¼óÎ ¬ˆ6“ÍÐÔ·}R”r)¦V&AŠZÉf– @PÌÀ!+´Ï¥·P!õ*ï=Èlh”0CtÞys­RH¶·Ì[ûiKUb=®T'o?r×Ýïzþ+×&SÖÞµÝüÚõkÇ'¦{Þ}oŒ¾d¸’H•Ø Ã;–˜&(€sŒä€›¨ªp0üB­ÍÍþü_ñâ‹Dä+E@¦¢ýz‚Æ7ÙhÃ5S€3gÎ w^¹re$è#A€˜ˆš€œ³cG€ ‘"ûˆ´Ë¶”B )âØõ©WÕ>õRD`f& ¨df¯mÛ9ç˜l BIBDßlOÐÉ"F †)J_0x')J(*Yœ”’T4ÆÈ`ƒ©šjQi¯ˬôâ+_½víÚþr§ªê:LŠv}¿wõê]¿«Ú²Gå«ç^¹õÖ[‡WúÀƒ>ÿìWC r8ˆ¨b0˜L!P‰Í9$)hùä¸2GŒ=âëK»lñ Ìò­ o¸õÛ7H'ÃÞcŸ’JÊÃx´©Šû£N‚ a[|ãÇtˆÎ2À ( ¶xGð(¢$x{mªI:rÆ•«ë Þ«™IéÛn>ŸïrιY3›L§WÞºÔwÝ$xQ¹÷÷¬­¯as (©™‚T4›ªj†š™¤XŸQ ‹åB¿ûÙuÏéw¿~þâ3_þs×9"‚’¨²¬Tn¼½Ù¿§^þ–û~Cª7€ù|þÔSOKrÄ÷ c&á÷)ìÆí[Ýÿ ·oõ4ìXÍ‚£"™ Î1Aû¾Ø DÆLЍ±ÝŒ­%½ñÔƒ2ðuBQ}²Ï¿ Ñsˆ#6…5±>©¤Ê‡àÙ5ul*L&“S·ÝÓ 6­ês_ýª‰öfÅ´g'@œ6õtWf.„¶””JRƒš i¶kW7_xáù·^ÓÄ´¨ n¡6ôa‹¨Ø_>úèüÈ ‡ï‰'ž zÄ÷£·ÀßüZœ 8ˆtBΩˆ i‡€øàB ι| _ Þ39`ÛqC€x` X`@&À|}£Â×"9¥¾ï¤dQ0ªê:„äŒúÅ'º¶~ÈCïdº²ZrN)µ}×÷©Oi¹lcˆG;|øHUU)i¿T)šSIIJÊšU~;К¿TUõ³?û³7à§>õ©q+èß±JœŒ 9vž9zï™ÕU ΗœKÊ:l£5»¡i ÚÊMyåf¡^50Ü é#2|ãƒf‚‰7'PRê]U8ÄÔ‘ªKNºý¦×õÛÝÖTèÔÝ÷3×mþ'²oÒKÞ“”4‹óq2©¦«¥èμ›Ï—ZÔ™' –@™-&Å`:l¥þõðs?÷s>øàð¢{ì±Ç|\B#F‚ñ»F" a¨Ž] ¡ŠÑÌ›äzç t Dú6R¦· ÍÐÁ5ÇÉŠ2 ÞÁW¨cŒ1TU½™ù`1Fa5³Ìl¦U"T ç\W³šJ.)¥ë¯žÿÑûHã#˜7ÚßßùÜ+bÚßèEéû´³·¿½½½;4®0̬èAþ‰© Ú·‹{î¹ç—~é—n¹O~ò“‹Åb\A#F‚ñ‘8ˆDÈ@ &!ˆˆ±) æ \””<Á‘ñ eDoÐ4½M1 €ƒ_÷ÇŽ[9²HýÎL`N\ô± “ªîR_5u¬©=‡*×B‘™÷ޝ†˜f¡v^*gÎú¾ksÿÀ{*P1=~úŽÿ÷ì—¯íí,a…-™µ¹ß/æËE?ÌIª‰èÐ÷LjPƒìŽ~;ì|øðá_ýÕ_1Þ7FõyÄHÐ#¾ã} RÜ0”pÞ©ª@™‰¢sÁe1ìõÉ vÆ×³³<ÜÄϦ³P5RÊòÚþðcàCí+ç|d Tň‰¯'MX‰UU±*¿J!VUšEï:"3¤òâ«/Üê¾ÃGMÍùxÏ>ñ…'–}ƒÄn{†¾ŽaëïF¿ÊAJ÷ÍQl{ÛÇÿñ˜L&¿ò+¿rôèÑáÓsçÎýæoþfÎy\?#F‚ñ]âèƒÝ96‘ÒS2†5&ÑÕLJÎF7¶ßNÐC] €ÁŠIÚ/»´Ó¡ CÄ2´pk)Rœ“¬øfmV­ÕqRk™Ôœª-H*}N’r—R—òÓO}ñƒ?ñÓ.DªÉôÞ3þ»/~±íÓÜ­0€Ôç¦Ìv¢«Ç_S}nšæ×~í×î¸ãŽá(ÍçóO~ò“ãôàˆ‘ G|Wiú€ IMÍœyç|ã§³Y3©Í¬ïó×ç”ßÖÄG<èÖ+’K/ý¢Egl®FEMEK1Õž²Òp3™„I$æÉ¾´}’.÷9ï¤>uiÙåÜ•ÜI–ùÅ—_üÁ÷=â}4ÃêÚú‡~âÃ_ùòW¶¶vT¬•ƒià ¾Ù¶aj7âPþÊ}òäÉO~ò“7kgÿøÿãgžyf\0#F‚ñ=€™`ÎØ9ŠÜ4®Hé–ýÁ  Ù°WÈFvÙ ¤°d€Àh«H@D#g,)vh IDATDd0ë¹(¬Tä‚/¬}În7ï·mߦ6—.kI–“iÆÐ†Q —¯\ÝÙÚ~ÿÞbˆ>úÃ/½ôòµ«WvÕLM‡úÆÞà·Ñ²a'Ožüõ_ÿõétzóà<öØc¿ýÛ¿=.’#AøîSóÁN3ó0‰âÉìô%-3ƒD`0ËA@*2¸¹–•Î Θ1´W ®™©3Í)¥eÒ½~Ñu¥×^-‹’™‹*xíÕóW¯\yà31Ä£üƒ?NfgŸ{fúµ°À¡¼Ç·cú3?ó3¿üË¿üvvþô§?ý›¿ù›ã:1ôˆï™Ð€‰ˆŒTM‹æ>ç.KGΓÂPÊg28âhD06@†RZᙜ9˜9™ªˆ1&ˆ‡)`ªRJÊ’²u–DL€DAÙ”LMƒm¿WzíÂ…³O?óÃëoU! àþ÷óÙÏ~öÚµ«íÚùèÑ£úЇ~á~áíwÎçóôþÑØT7b$èßËÂß{:ìªétâ¢#¢œD¤hŸK/ ÐÀ+t‰”aðÌgº³$ (œƒyÈ`  ÊljÀ5˜Á)«ŠjqÞ)WÔ A i¦¿ô‰O|è#Á×[ë?þøãO=õÔ—¾ô¥¿Òxàyä‘~ô£ßpÿ¹sçÆž#Aø~$èƒ/ˆÈÇ8N]ôÌœr)¥”>•"µs…Máë‘ ¬Cã4R ˜õ˜ ΃™A …8Šx!UIZBðêMMUôk£10|äÃþ/ÿÎ'f³Ù7üÚW®\9{öìÙ³gÏŸ?þüùï«>}úôéÓ§Ïœ9sæÌ™ãÇóþé?ý§?þø8.8b$èß§ÄÍÌxÁO𯅠Ë)åTú V2³PÀ*縈$$á`ÞP[63+€p v0EñA3ˆ!Sò>øÐH03/(%/Sïƒ/^UE‹Áø€ ˜L¦¿ø‹ÿØÇ>öŸð…?ù䓟úÔ§¾³1ôˆï=vvÌ0»ƒygjÅ$¥4LF#S bV¸ >8Ï,ºVU0hØõ2Ã19 ÓHÎyrž˜<{3e†w®F4S$Í9/RËŽ…TEb©èkæ¥]؆cÇŽ}øÃùèG?úÍÕô<çOúÓ#5 zÄ÷¯Ü1ükfDD7dï ààS×ûŠä†ƒªÖÊ TJ™*@ÂP´¬‡Ð;¢YáitÞyöÁ±#&©kEÕÈ)Û;k*PS¾1*C³›f ®¸þð‡yäÑ|p:ÞlˆÀÌ6Íô›”œgŸ}ö±Ç{ê©§Aƒþ2í#F‚ñÝ-“ßNÍÞ{f6³¶mgÍħªÎqÛvª9„°lót3ŠBß÷fðÁ\UUm»¬ªŠˆÍ¬ï;€ÌÔ{Ÿs®ëzo¾\]ííÍWV§C‚bÓ4}ß3³ªšd3+¥8çäœc¬SJÌ®iêÝÝ=fR³IS9¢Å¢+@ôÄÎ }ÌNU†Òþλî:óÀƒ'ï¸ãøñã˜T €ˆ0ŸÏ_=wþùçÎ~õ«ÏÚ·X÷#M zÄ÷– ékMBÞ;ç‰)·}ˆqg:v]˜sѺ®¨jŒ±ëC}‘ªétBÄ9çœKÎi°Ê¯ªªíZS›L&]ßWuµ\v++Ó¾O)¥ÃGum§¢Þ{"5U•RBˆÁ»¶M9'"Ž1ô}ŸŠFOî#‘wì|Œˆvwç“IcQ‰ÖõB0vúè[—/ÌÌþ?öÞ4ÈÒë,|Þ÷œo¹[.•U•YUªURI–eYÆBò‚l@&€F£Ñít¼s‡žhµ0e¹²²BÌR–Ö¹4Iœ÷̤XQ–e¥1o¹ÿþùùù$ÑÎù¢(†5¦?èïØ19ô!`Å€~ç;ßùÅÇ/P¤iš&ÆX£X¥YjÏó<ø²RÖZï=̬”b¢f³Ùïõ‚qÇyO€õ¶ª`M‘ #n*ˆ+¤É³Ï> 'õzí‘GÞqüø±¼–µZ­4QÝn—ùœÙ·o_š$³s³'O¾b­QJ9çjµÚñcLjhbbâ®»î:þ¼µvP¦,kõz¿×Û³gÏ‹/¾¸¸°Ðét¬sy–Õò|zÇŽ4I–——-Ddrj²ÕjE)<ÏÔjµ$I‰Ðï÷ççÏk­ßô¦7ÍÏÏÏÌ̼úê«LÔl5÷Oï_\X\ZZRZ×ò|fçŒ//.–ÆkïÝl4¦§§;ÝîÎ;Ûí¶µÆ9o­%R˜ÈIdæˆHÐ7›I‹Uõ6ƃÂ[«˜———”R‡ÁOLNöz=cí[ßúÖ§Ÿ~Zk¦‰÷.ìò…=Æ¢(–——ðÞ+¥ˆ¨Ûí6›MVêÕW_Ý¿1,//×k5­õ¾}ûêõ:3OMM}ÿû/8xðVÊ‹LLLZë”â¹¹=">Ërç\¯Ûóâï¿ÿþ§žú^³Ù‰“¦§¦'Z;gv~ëÛßJ˜çöÌ¥i–gµ©©©ï¿ôÝsÏ=ÇŽSZ/..:t¨V«9sæàßé%±¶p·xVì¬!"tÄÍ"œˆ˜œuZi&>zô(‰ ƒ'N¤i:³sg1x±Y–“ˆo4êNûìÙsZ«,Íœ÷i’$Ir÷Ýw[kOŸ>}âÄ c-yïé+­_{õÕV³¹wïÞþ`P…Rêà¡CeY–eyøÈ‘Óg^/‹b×Î/¼ø"HÓ”™æææ¼wÆ˜à†‘e¹ˆt:íóçç“4µÎ ŠbpîÜÃ?øƒßþÎwjµúÁƒWVÚõZ#ËóãÇŽˆ•j·Û‹‹‹ÌíÙóÌÓOwºÝ$IŒ1ÖZç½u`ò IbŸˆˆqs°sõ"$½WZYgóZÞë÷Äú^¯Ûn·³,K´>·²ÒëuDÄ;_%3Ÿ?¿ â‰41yãœs,,.–eÙívççç˲4ÖfišgYY–‰Ö¼ôÒK;wî¼û®»žyæɲ앓'÷í•ïœó.Ë2笵V' 3;gÆK/½T ýA_i%"J©Á`Ðëõ'''s¸HVœ&‰ˆ4›ÍùùóýÞ ?h]¯Õz½^Y–Iš2óâÒ3'IT¿RJ)£X{c%nFD‚ޏ@´†©sišö{ý¢(Nœ8¡‰Ë²ÔZ;ç—––VVVVÚKJé^¿ç¼k·ÛÁé8lëEÁ¬û½Þ‰'¬1ƒÁ@)6sõZM)Õë÷›Jyï»ÝîÜÜ1[k»Ýn¯×k·ÛÎ9À§i:(Zk€œµƒÁ KÓ……óËËËgÏžÍóL¼€=33±³¶Ûí2³ÖZk½²²R–¥rnyy¥Óé,.,ÇAï½s·T×@14êu¥uˆÄafö^1…¿"úAGD‚ޏÕ´—²,ÅËéÓ§‹Aa)¤ä§$¡Ó§OÏÍÍ #n›à …z#/‹²^¯ÏÎÍΟ›o/¯LMMZëɲ¤Ùl.¯,MMNž›?—¦©ÖÉÊÊŠR ì°)NæææNŸ>­µîv»iš–Æ' §´&"ç\«Õ‚ˆµV¥Ô ß¯Õëz€Rjaa>MÓ5¿ÓíÔòZ»ÓɳŒ™Y±x©7í•çÝ®]»—KSj¥›­æÊòJ–g"Ònw굚N’<˺Ý~½ÑXY^öÞïÞ½ûÔë¯;k“$Ùµk—Ò:KÓ33ßøÆ7DÄY[‘2Æ…‚0±3DD‚ޏ¹çé`PÖjYÛèvú“­FY Ÿh €•òÎñ`0öÙDDi­˜™Ù:ç Öï½±¨Õ¦4Y–æyn¬õÎõúÅÔd«( /¢˜kµšˆe?MRëœVj¥ÝÉó”Y9g‰ˆY)fë,³²Ö„ÚâE'É`0ÐJeYÖë÷ò, ÊñDŠˆúý~Q»wïÖZ¿þúëSÓÓ?üÞ÷&iº¼´tò•WNœ8á¬uÞ›Ò±³ÞÅ~ :â&3¼¯ ÓUâf&I’Ô˜Ò‡wåµZ¿×+-ë ðŠÁÌÎù`Ë%"ODÎI­–fÒº²›9ç’$1Ö&Jë4)‹+R¬ƒ¾ó^J+kò,!fïsÒ¸,­ê xïkµÚ ß€‰A(èzñpÞk¥œó 0‘N’4IB²‘n¯W¯ÕVVÚÎ{ïœ ®u‚hàˆ¸UmзÚ¹ÉÒ<äz»$Ú Ö×U¿wÀ•&¼éÖKazáÆU¿™Ã‡ÁïÁ£ëöP ÖÃZï\¨è†Ü c¼sž 0¾,-)¯E‰ˆòÎ)ÅxÇÞ9XK€„œ£Ä³±^ Z‘³ä={ï¡È9ÇÌÞy!kAy/á}ë¹(½1àµ]”Þ{xçbwDTÐÛühü ²† åÆÙUimOÙ,Ÿgx‡­/"Jiç¬÷`1[ëÃwU•ËtÍw7¾ µs–f«ñLªá…ˆ„ÂØÝ""AG\7lÌuõ†¶¯ºMV">znDÜ#<âo°}¼ÑE"mJб¯DD±íO€Æÿ/¼JÓd#QåÖq› nÞ’ ÿŠ3mDD$èˆíåÚK•Ð!ó<ËøqVÅ#]Ñ‘oƒ¶Œò9"tÄõ_˜ CÞLY}Ç’±Ï ®÷#""AG\ èrß'„ Là1¯fÙ𥡓Yl㈈HÐ×eÏ&$DP©%°±…"""AGÜ(0X)—xÒZ”‚Ò ©ùj}Žˆˆ±’ø2?O -¨“Ê”ËD¬Ã( Ø*Ü{h¾öѼ :âz†N57t³ÑDCEQ®tŒP€‹ :""tÄÕ3í(¤âr˜ ÅœåÙÔÔZz0,Æ+ø‘rºxáæÑ73#""Aߤ¬´/mõ¾‡xçÅyò"^Ä ü&D,7«’fæ*׳È(¥Qä興M×Ì7€CNŸ $ñÙ4éÉ$I“Ù$Õ>'ÊSÑ X Ü@îîf¼ýqÄlsQAßxÙ8" ÀJ›¦õ¹(ĉ+âK[Â!'§ÌM¬™×Ý‚€4Mëõz¨‡2 ";GDD‚¾‘¬¤” ºØ9wå‚ѳøàòL•^ö!ñþ-³7HDõz}nnn×®]ι“'O†ÚZ1ÕQDD$èFÐÞ{fRú*: €!hç[!ã±RJk=55µwïÞ½{÷ƒååå………˜¯9""ô”—“$ɲÌ{_–eY–—KÓUõKà±¢%r ì&Ë»ÖZ)åœëõzËËËÖZÑZ[ƒ #"6šØׇ›’$ ú±ÙlîØ±£Õj1³µÖ9·ÕW.¬ÇW…óÈ[OnöF-"ÖÚ~¿ßn·—––ÚívQq“0""*è†ÉÉÉN§CD333išæynŒ¹="éµôw³»<‡„µ6ê¶Ö¶Ûíð:²sDD$èÉMyž÷û}ç\š¦wÞyg£Ñ8vìØ©S§°ÅæØV6Ù ¬icÈ ßÜÈ!7Y;8ç‚”vÎ…»wmБ oØê¾Óé”eÉÌÆ˜N§c­ív»Á{Yâ±"µ››ˆ/åF/®Øã0"âö§ŽØ×£‰(MÓ©©©`€ØÁ`ÅcDDD$èÏÑY–Üì/{ï·Ú'Œˆˆˆq=P„ýÕÛ^/ý±Å­·ˆˆ[Ñ}´3Æl¯£<Ñu!"""*è›QG‡w¢:""b+Ä@•€Q¦ÍØÛˆ˜d'""â6ßÒŒ2ŧ úF_+³Öz' :""âöÆ­IÈÌJ)¥ aÓÛ*Î úâ]%ê Ø¦€i­uŒÆŽˆˆˆ}Iì¼i®ÎmUë1QDDÄÅ­‘n4404Ck­ ƒíKu˘FDDD}"ZkÝl6§§§§§§µÖÛJБ#""n8n/QJeYV«Õ²,w爎QAßèkUJkMDƒÁ ßïE«ùEDDÜÆ¸•J^9çFf kmd爈ˆÛ·’q€ˆÆKFÅ}¼ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆkŒ˜ )âút³èÇqÃÁ± "". ‚ggT7™~aÞ¿x­”ŠtDÄÍïý¯ÿú¯˜žžvÎE :"âcÄÂÌ\c #f ¸¾ˆié#".DÓKKK¯¿þº1†"=GDqƒ¹ÃÖÚPÊ„[+ò6â6ÀM—‹ãÒG€lø–ÐæˆÚ'âÂýM6¼K¨ª©ÕëõÀÔLä7µol~ˆˆˆÛ“ +ŠöQç'Ðhø 3*ž@ Øø´#.Ì®ÃÞ˜v,Yç)ïDcT¼¥,ˆˆ¸] z¤¡i AM›)èU0xŒÂÃË`hßn‚Þt?î)Ýzl €Àv{ú DÃÇHYOмµpˆˆ¸ÍZxÍp‘áÿªR„ÓÒ´…½cëqw‰<»®ìa(¸uÑ…$ ¦Ñ exñ)ÅâÅÉ…¢ˆˆY¼wCPD9ñZ)ë\¸&¾ðq"®!c¯vȈ74A‘x­ Ä'BY“ \`nïGïoãŒÿ†Œy) —™C.S­µs.|@kmŒÁrXªßBBÌU6ÔѤ.Y+ W˜0”RZi眷&P‚Vº´–AŠÙ:G€"&"uù5’Ë´ÑX±éæÕI—®h∸å ZÄ"ðމ)$FÄ Æ”#òeÄ¥ø`µ¦Õ1%I³ŠÈÆ^?\™8ˆVçÃ…1[çHXQWšñ¯ø¡nO•ö"L bˆgЬÐZL À›¦).dà g&ˆ@(V‰Ò…5™Nœu™R‰ˆx!`æ@m)WOÖ2öH< €.^"6|ÄÅÄA4üᡨ¬^hbañc&‘"Þ5Ö8 is^ ‚âD'Ú;ã ^OÍ26D#SøêXçE$Õšˆò,ï['~ü+2¼R¬’D‘1Ö8Ë 4ICíDYYV¬ˆwµ$5Æ0³xñð0ª¤<Ö;ç]˜4)0Q’$-&ÆšL×*Û “ôØŠmW®.h“Mÿ¶Ö(6}ÄÌÄ!PBŠ9Xr5U/ˆˆˆ¥’5 &ï=ˆX±”Ö0q½Ù(¼33+"RZ¹`QŠÄ7óL¼ç*˲r®Ú;ô1H‘â,àœñÖ$ÐÌ k'VDˆˆìP´²•4å”@ªu†Ü{/εҴ´&' oŒi4½~Ï;o­G̉N¥g€D²$!"0—¦dq5­sÍg¾ˆëŽ›m•FDd­+ËÒ3(wܱïÎ;:°ÿ޽{ævïNÓ$OS‚tÚí¯í‰ï=ùä»ßñ®½³s¯ž<ùÊÉ“Gܹ£5Ñ^\lÕë/<ÿü?ÿ÷ÿöÔ·¿ýÀ›ß¼ov·+‹Z–N·Z/<ûÜüé3w9’'‰3vïì,ä}³VSÄyš&Šàm./-<õÝï<ûôÓ÷=Z˲Tk[–š¨ÕhܱïS–_ùïÿí¥_8tð`žgÌ”$ÉD«E@«ÕÚ·oßë§NAdçŽÖ˜ï¿øâýûµR333z ­fkzzzÇÔ¤)ŠÃ‡¸cÿäÄÄŽ©©{ï>züØóo{ðÁöÊò‹Ç޽xüø‘C‡á…cÇœ±á eQüóWþY)õ?þùŸ‹þ Ñh,.,LNNš²Œ]y›Hü¢¬LÑ#âöVЫkHf&Å!(Cq1¤i2ÝjäYxçÝÂüDY”,;uòD{yEi=‘×—ÎÎϯ,(¥ò£÷×Yµá»‹ ;''ëšï˜Ú¹³ÙHám¿“ß{å嚢²(gZyî½Ô’dÐõæT£ÁÎ'Š÷îšé.íªçiY”Göï2ËŒ1“õ:9Wv»SÍ&‹¿ëÐ!V|÷G¾òO_n÷:J©z­Þît "ÎkVýAÙï¶5¡×íÙÒ¦š5Έïu;Y­zmeiÁåÔä${šÛ5Û]éôÛÝûî9º8®×îL7›{wí®%IYZ)Í ?رcÇ|»=èõµRZ©N¿Ÿê$ORnMtºÝØ›¯¸ï…ßjƒ‚ö€£Q˘ZÖ+fz‰¸ÍMÀ´b³ñöÕ×Oð—© IDAT_ýÚ·¾Þj¶Ê²pÎAÄXëÅw{ý¢,§uçe¥ÝQ:I’¤Ùjg§¦¦Ž9’çY§ÝièÌ{1ÆLOMi¥VÚmoCX‡Ä:[Baœ+Îkù Xçt’ó®Ù]/¼ôB·×UZyxI²dç®]Ëí•z³±¼¼üÂK/-·;J)ëíN'Ͳ3gÏ¥Yî½8/Íf „~YŒë÷zÆI–×ç—¬'(Ý^Z9ö G=þÜñ}<ÿìóœ$Ý~¿Ö¨ àH^~ídéla]krb¢Õêt:S““eQ$IR–å ?€H¯Û‰Öç«ì{kŒri–‘ØÜo‚^]NŠ8qV8aEL¬Ù‰3âzeß|~éAY¨D;ï c¼ 4f`\’fSSSË++õtbß¾}Ï>ýôéÓ§÷LÍÜ{Ï=Š9Ѻ(Ë4ËÎ/ŸkÔë€×Z•Æ–EÁÌräÎ;Y«v§Í¬^üþK§_?ýÚë§²<÷Þwz4M¼xïmYÇ_<þÚk§N¾úšsîɧŸé33;Ûí6XíÚ5Ûív?~ÿ[øÞSOe©N³ü®{îzêé§óƒÒ/dœ?{~¡Ó+ú…9}öÜá;ïÚ½g®ÝmŸ>{¶4å3Ï?ûÊÉWÎ/œ¯Õj¥5ç——jõ†J’4M»Ý. œµÖZïEkÍÄÎØÒ”ÑÇîjzÝk¿égâüñF&è'"Î&¬¡ï,¥Ù;ßóÞ²,§&Z¦4¥)Ÿx≾uRˆG1 $µBÝ^O)Ýs¾kŒiwO9[›˜¼w׬ívÏ,-:|ä{O}ZÏ/-9æ¶)Wƒž1íAÝ÷Ö·2óÂâ‚1Ìi¢Ÿ{é¥Ý»vÿÀ#$IÒé´¿úÕ'(˼V]cVú½gŽ?`ÿ·ìœÐë¾üåê}+~©ÓÑZ—âO9»sv÷=o~ËäD³ÓíôåÓÏ>7(MZk$YíüÂr–×­©…v‡“¬gì׿ûäýèc_þò——ú]ñòÄ·¿ó¦{ß´çà¡z½ÞtÏ|ùŸÉ÷ž{æþîüñÇ“¢þä“ß}øßþÕ'žc͉VvŸÇ²‘ŒrJDM}‰m·`í³ÀÙz•9Kˆ°: ÒˆÇå"´qµ&¸›â"`°f&¢\%FÃÅýo¹_A¬µy–ˆ÷ÖºW_}en×îsóóA3Þs×=Çï»"ÏóCsû^xáxRK[i-ÓZ+ëDD2}úõ×ï:xøØñãLÄÌsûöž~ýõ^¿?999==ã¬[X8¿ÿ¯¾B½³<«×ëZ'Æ”¯½vJ%zÿ'^~Ù“¤I³Ñ¬ÕjZkçpìØóÖCkͬsJ©Zž×óÚÄÄDž§ƒÁ ßïöú=ZëC‡Ž<÷ìsI’¹óÈñãÇ! R¼onïüùùÁ`À̦4{öîiä5bvÖ¼vêUï]½^ŸžÙqâä d"²ïÐÁ—¾ÿR»?8|øð‹/½l+½”e)ñçeõ€Å>úè£_ùÊW˜Y˜ÄyTYkwØýšïÆf¸­ :Uº^«—eQo4X|¨g¡—Ʀ ‘Ó¬ AÄ‘“ñÞW~QJ˜¬ÕiR£“ëýúX^aªhif"žˆ‰àœ÷âG:ÔZ“$)³rÖk½÷!8°è""R”R#ÏY­‡S™ˆÔƼâCˆ¶(°RÊzï½Qˆ\c!"o bRJÁ9)a­Ê²ôÄÆ€™Ué}aJõÛµÆzkU :â65qxº½EY²xˆ„0À•…«’isai4#ô )y!gE„,‘ÙÑцÇäa¦Q>‹Qx‚ˆˆw#‚&Vý¢ð^r¢çe)ÁóX\å2$bç !‰%“Þ$ái˜QD´Ò°ÖBˆ£ ¨yœ$‰VÞÁ9Xc¼5Þ{Ö‰÷cli9""ôv`l÷\ â9³ ›8­Wßã©;=y¤7×8bWÕŒU,ÜjAáÇâ>võR+ÖfÖùjzð©é”èճІÄÓajÀÖ‡û‘5{È;ks©ø$QLd½·âB(a͉PHs±]ë»Î–\>,À6Y£Î#®Š ·Éx:MSk­1&¶vÄÍKÐëTj`Ú¨<·à¨m¢ÔͪÕ]=íÉ…ÏE@(=*ÈŒ°{X×&I”)k(ODäŒ ^Õã5v#®˜F×¼–+}ºŽh:Ö–Œ¸Ù z‰C6£ãËW?®Ô”qU“ÔÆÒJÞ(€ ¥•+WŬ ç¼óÌ„à|ïM¿¤Kë—ʰšƒ;¦ÖZDŒ11(?âV2qȆŽý š¯ )Óš³­Z× ¾"‡Ñ¹dy±ùäüü<3ǭˆ[FA.•/¼‘x-Ôº\—{ ŽrkÊ)Ix>SÀŠ€»<À4VS§Ê’§Á\®Çz‡úeCJ0íÇà‹v›ô¦Và +¦k>°6fvÙÙ.1„„n糋ôø}PX ðØvo‚V£rk²™e Q«_‡[«¼Môõ•Pÿ3{n³í7¼é_D°!ß…åseŒ +žfóÒO5ú=RЗêP­tĦ4„=yƒ¡ëyc5©¶l²Ç°íÍ*H˜ „!ª2ñÎ.‚ò¤žyl¨=Ò1JæãBÕ­=ºÈZM]0|# 5t²ÙDA‡QT¶þüÊJ`R )R)àÆå¹š­V0Ȫ´T×uSæÌŠØÙ d¡w8µÚ!C‚EK ÏsiW½l».e¸6ÝÖù€Æ<½'Vë1ßxŒˆ`èqx‘f'èàí{Qá;jîpܤ†‡º´GľbQÎöÜãp·Ë2©åh§=ˆAžh0€å6µ›‚$ÔÌÔá`@Àô µ ÝŽrr½²€0_«/ìLðfîßoH[;_é]IÕqFkñ~ÍBAFÝ+ Ýofª8LÊ!‘Ê]›ááf½uСô8 E ¥@LØîtv-#M_#BغÏ_ÊpØ>VdƒÄ@i¨‘¿OØ×œ I””³ NMö«>¬ébh÷îÝëRº\.A¯{±Þ#a2h“ȆܬQ …:òÃ{ª‹°ÕºŒ«ÍœàÜÌÁ@FN xèàáA’ô‚§60,*îAÂ^”ó+@·™¿%mÎÚÀ§ZUc'ø¤ŒŒ(ˆ&é+àå‡&I(ØûªUC­H Àz¿‰¢X7Ä´ÖûäøÎЈèGÕ-F9a’$ÿ.3ó;g0)¬‚×ÁAA)—ô(7©6HÄ ƒ%qtÉè²”ÿj˜6¼ß¸‰~íÔWûB€ ´»1åÂò2ŒBö[ZÀ¯Y²ÿKIA•¯Zr/r°-Úyc&?,¦U9‹øŠKY»Æc{f—ºÚIH'¤ÌñÞÝ\½þ"“â@µLœa‡1Ü€â4“•ݤJß÷€ƒÀ ÔêuÀƒ¼ïÁШ‰ˆÒ´{÷„HQ™¨×%êE+ ŠÂ@ZšÀÎa¯à×|@YÌ%º:¤óä*eB,°^õÈÀ­}Ôîp),ûYàÞ©=ÈÒèÅq•òy¤jsιðbd^6åWŽàœk4ácAGc 3L"J©‘mDk¦éh¿GœÞßÔâ½ç¡ÃNåhÀBVÚB¥ ‰´Îðа/kLV?—m†¿Ü=3š&f…-6 /?¹­.@Àh©Zèc¨Óƒî 4½6‘Í6Ø /Æ4 :›¬ñ›Ï°17Tç áº©ð²î,›´MgõÈ:iÔ¬ªTÞ%]nóŒ|¢a¼KÓd¹™K¹×pí¬¬r­:ÌðE‚õ·¶6Ó¨âúê´%eìN9© FŒpÛ^ˆ1˜®å¥„1™¬OÌL630¸Q‡â,×"nqᬵ"p²%Aóªyn’°«Q£ê¯ëÛ<üOZdrP=¯±GæÅ—ðB\z7¦T¶¯1#–¤‰tGÞ€÷Ñî|MLïÿû?ûÙÏ~êSŸzøá‡Ó4õÞ¿ÿýïÿ¾ðgög>øàx ß4Mgff>ó™ÏüéŸþéììl î/}éK?þøßÿýßþóŸÏó<¼™e€Ÿø‰Ÿøìg?ûéOúÑGõÞ[kgff>ùÉO~êSŸÚ·o_š¦Î¹ýû÷âŸø‹¿ø‹Qõ²w¿ûÝŸûÜç>÷¹Ï½ûÝï®tŸQ¸8X DðÔß 9€<µ¾&8¤&ƒ!€ü&’f ½:a_QmXê±R-ë’ˆ ¯öÓPHoÍï—’\i-Á ™Çyx€ò}yc7¨©÷mPÍ ŽôÐ:ÈØ–ÒM´™éZ†ñÄ!P½ž¯e1ñD~8¨yC%å¬@vݹM…­Ñpé)Hƒv¨¬9¼‘þ¤^i æQz\h@¯±]WÖì*ˆÙI ÁôƒG€Ä¿¸ÇËwŸi–&‹°Ó«á‡I:h´1{¡|Öc­¡E´ˆI1¨r”a%!YF5­®jYVÖë] tRH*e ÔPjeÏŽ^ è7`'3Ðþ¹¹]Sèkò£ ¤ï ‡Ò—v 5T– Íö£¬u¤ÁÕj A’10¸‡j÷f“\âa_YÞeµ S 3ŠhÌ•44†öоé|ËxKùòÞ¬Ž– g^u¾uÂ(ÑC*~ ¦©G’½û†R*MÓ÷¾÷½ÿøÇÿöoÿöw÷wƒõù=ïyÏýÑ}á _øð‡?Hsbb€1æWõWŸzê©cÇŽýÂ/üBðúxç;ßù¿ñ¿õ[¿õÛ¿ýÛEQ„ÏeýÐC}ä#ùüç?ÿ{¿÷{Á<òË¿üËO>ùä·¾õ­_ù•_1Æø¥_ú¥gžyæøñã¿ök¿æ½gæ?þã?þØÇ>ö±}ìÿøƒM\)á‚‹AÜ(+ãIªˆÑD­!á~ 1+öÎŒZuô ^<ƒ¬w`f3›ì¼amš‡CT<¦Ie“[(´1•Û¥³$ ã}‡¦{šh4»ó c0¤$7º<ï¡Ù[×åÆyŒqX„o^Ћ^ƒ,$¤βŒÇ¼|Dcõ W /£}3Ù°·&\T¥þ¯Ö™Òá–@i]Œ*âS2ô ÏžÂ2š_޾å¾SÿødQ»Ž>yòä«ó§¦î˜[†MPS'дFÕccÖæÊY¥’U `e(•i7,GKVð¶zpÕ#qÛfsTõ‡C³{—uIL˜ž›õˆ$…Þ3;Ûlw [ÂZ¡žûv·ü—¿:öÐÛÁJ9mÆ6ƒÉóIDATA <Uv‚I]ßÙœàó§H‘Ø¡ÓæØ½zÃûÕÝß‘G³†*QB ô{6¿ö @§Š¥=êNJ´”åæÔkg†Þ¡÷¯FA—eù‡ø‡ív»V«}üãF†~ô£½^ozzúOþäO¬µ­V«Ýn‡ÏÿôOÿôüÈt»Ý¯}íkðÐï÷•RÏ>ûlèºY–c‚DD~ÿ÷¿,Ë3gÎüùŸÿ¹1†ˆ~ê§~ꡇ"¢o~ó›ùÈGDäøÀûÞ÷>çÜ¿üË¿|ô£%¢4M_~ùå Øƒ-{˜†0ÀÿöæGîº רR8ý¤ÏíœÊ$ò5,EÆ{Þ˜% ¤) úŸè‡w¿|÷;ßzâ‚L6›Aºr5qmRàju½Ì"¦AnäM\éˆ+Cb‚¢ÀãëtÝÆ œñ’Š«Ô€JA¸i±3¯×€3@‘˜. Àð¡{îûÑ=÷Îû|¾ßäu$éf©:/ÍŸw½ „ÒC+¬¦p€§„,A ààpøßüæ‰ÚÛV…°—={v »˜Kƒ)FaÜm{2Eò®ƒØ i‰‡vC[˜Þcñv‹næ» ¿ïî#½íÝ%Њz¦}_á¡÷>8tY#‚zäÑà:ª¾26-c=¢ß+úÀ ?ðÌwïùzíÈóÙág€D z4„ZM<]=–GßñCë6fÇ‹{%@ ¨W4`$I†tÔz“‚–E ¤Àÿ üYC“¿ÅÜ·gßùݳPŽXÇÎÌŸ-Ë.šç,8JÙÖæú˜+ÂÏ#i‡ ÖøÞúŸûES°ª"ÁáÁÐ`¬…EìuØ7Àçûß¶”ÜüÇ·=b`@¾F^ÿø?w~7ü»€sÀ™š>_o/+æé_8øÀÆ¿`Z›ûTùwþ,¶~ðDëhZ¦„ô5üûïºÿ ЄÜÓ·'#Õ^± ÀÂÂB–e?÷s?÷ÉO~2¼SEš¦úЇ>ñ‰Oh·ÛAÿ2ówÞyêÔ©^¯wèС‘ïõzý×½gÏž¢(Å‹v»Ý.Šâg~ægþê¯þ*˜˜:ÔëõºÝî‘#G¹Ž=º´´Ôëõ>¾øáøþáþò/ÿòÇüljHkÍJ©ro†ˆÔ[M¨ Þ2RǪ½²Òš““oó#hÔêƒÎŠ7"P)rÀJ¯Óédy¦”N)³À;ßõ®©F=lh¥ˆ €|lã/½ô‚ÒÁ¹ ŸØ»oŸ‚r⸲‘Ây¿>ÈõÂE³Öh8H׃o ¡@­É‰Ùc÷¼¥95Ùz@[«•nZeH̲ì 6<ÌÔ|áóna¥µVKXˆhpC§ ˜€T'ŠYi6LRªß8çuR¹›xåÕW ‘ò¨öUUÆd´EøÀ[îaU¹”ݰAWíT(VŽÎÞQÙM2mÕI2ÙÔ0Æ..-³B­Q#@1 ,§g¦]HàíšYP˜£‰$M¡ôQ®ßé§I­•´$ħ( TåÞÇPIp!"×¶Ñ*A3@à÷<úpü‡ÿãg‘Bå„M†<"¹€‡'RëlN©F’7P¬I—®\Î9èÅ•6³†Eð†0ð}Sdy– ãVµìµ×^År™A½>ùÿþ×ÇQ:jz¥Ò½÷‰¦ÙȲ¬©Q¥3ý²p”2ZUyCµ\ïÜÿ`䵇~çJÎiTnù ˜ÕxÓ½o>{欱^Tr¾½dY…–N2 ”R…[¢Aú ²Ì­V‹ˆÞÿþ÷?ú裿ó;¿3ò¸xì±ÇÞþö·‡w&''GþËeY™Üï÷ƒ|N’djjê¹çžûìg?;«|9{ì±w¼ã¿ù›¿9Ú* D¯µ‘$I´ÖƘ¢(§gYö¡}è'ò'?ýéOÿüÏÿ|ÐãÜ<Ò*÷èÔÍäK€žºãÿð›|7pd±¾ç…ûžÌQïíŸ~¥ætú=æ`&µì…AèC‹'àT ƒÓïyôG,$ÉR4³¥^RžKkÿËþÕ3ôœ+‡Þ°¥÷yšŒ†P­VOóŒµÐïõˆÈC˜™‰ƒ}§¾c Nxýzy†ÜèwáÀl $ XôWî=ü-ý‡öwj°  MÌüûÇŽ=räkoã¯L–O;7ûÐ{~ôþS˜4§ã©¤ÔÖõÎõÐ`´~ìÔ÷ÏÞEh š·€ÿ¿½o’ª:÷üí½Ï«]ÕÕ4Ý 4v7€ ¼U@ðQ£+frǸ0Ž+“Kîr²ÌºgœÄÉCÉÌʺ׌³Ç…—WïLŒ7æ&ê%ŠDÔ ¯¦ÐôûQÕõ<çìÇü±«‹¦»º%7^9¿? z×Ù»êì:ç·¿ó}¿ïÛ6a0|)¤ä¾_ ±XƒÄN½ytZ&¬üÓu¡+1sÞŠUæÁG¿¥ H$b–E*±AMQXQXQnÚÕ–QI\`ˆFØH¥3¨¸gÁ ŧ‚T²æËƒ(ÀmXÕŒBfp`0Lý,°éª¹ž<„GrËo[ŽÜé4\åöýt騒åYž2LOÔWÖ(烘 Ê t\þÕ¸ŸpĦIKEûs1 7Aà€qE’2£@d¹æÆÀÀ¡Ù¬c^Ô@7ÇɾªôPMA*å \Ô‚RLƒŒLÌoŸ»Ü;¸C–“­tP!ªÐ½C'ûiÿ¥·.EԥΪ‘$pxÎe»â³€|K„ @, „J*r(@›7fÝP› cïüø‘³ZäMaDϲfÑ]“>ô6 vTὕng£B5Â,á‘\D{Ï]ä ‡Ì-|êo÷y·Ñ˜œ Ê©¬`ái¦Œè'^2SJ~ heÛ•W^yë­·ÞÿýRJ}5®ZµjãÆßúÖ·4i¦R©’¹ÝÙÙ …êëë;;;K{ß÷øÃ.\¸°¤ÊÐX·nÝ–-[î»ï¾RîX{{{4­ªªúàƒ4‰ÿñŒÅbÓ¦MkkkàyÞ¦M›8ðì³Ï>øàƒÚœ§7ù ØPÀŠ‹¡2ä˜yåY!n¹m3@ÐÜtåu×ÇÈ0wØÏ»6ÕÜ«¨"0(%b‰Ê!$n^~™ËµXó‹]±* ”1OŒV•z=`” –]Y×Ñà 'ZðB Ì÷!òpšOØs/½X“¥ ‡êš›´Ís ÇZ¸ô"_(P„€|ÎÅu7n¥Z¹ (| ׆¯ƒª¦5gѥƴX(a†‰ 5DD(()$$WPþ¨ŠHA)%Eq]—NñCyB!’@È´¡ oÓÚ ¥ Í̲uh¡KªæukòªÀ q‡špFc´OÉ÷-DëkÞÞµÌñà "Aýœóëc3Q‘pCe<¬Óß\´pn6; ÂAèù¯Á‚Dt´…*íãöá]ºf©¯0läxCA͹l. P’ À4Ç„c†+hÓâ`¨ª«N&S0!OÀˆ„D1YEï¤cÄ¢•¶6™ ˜–m1ÃLÒ\ˆ†††‚_]r³~臑‘‘G}ôÕW_?þ’%K´IûÐCíܹ³¡¡añâÅZr·dÉͰ۶mûÊW¾rÿý÷?÷ÜsŒ1!ÄÒ¥KW­ZµeË–]»vé1—-[¦±üñŸÿüç‹-Z½zµ^ž}öÙ­[·~õ«_ýÅ/~¡/þ—_~yëÖ­[·n}á…´‘ÞÚÚú…/|áŽ;îØ·oŸ^0è±Pheèn4‡VÍ<ÇPÔ9* pò¤y7ÝÞZû™»ö? 5(̯=YŤ­`Qr\IjY¤eÀ ,†m0ÁÇR„ÛÜܼjÕ•ápØ0Œ+W¯ÆÇÞ„­(ô’𔇬dGØ)òö ¶F, ›V.ˆùUù£ÃšÅp´Î¦õuiJ'r­!aHŒÕœaH Q&åEÂN§}‡ ‚PíC¦£ÉŸ0A‰’Ü¥`° t§ÝÖ>5ªÑ"¦UUÁGÁ¥’ô£2/¥KkØñ¨—ÏëI¾ú¦UòBñ¸•q<´¾{ydø/–á°`®Yö?ßxEo² @pÊK!¬\¿¶ ƒuœèƒ.)%%‡Á‚2áÜxI¦0áÇj¥xtÙâ‚'S™Ž|Ü£¾´*v»µÝÕË1}AïFÊ ¯È †Ãâ°¼ßu¼ƒ*€ ØŠF )Rˆ œôÕ¨ÇÉÕ²írµªMGëã ®EA ꚪÓqcö­3ON°0äxɾØÈxptÜ΃D`Ù 9D$ª Q©¼O«h¤F0Ö5Ð_ḛ́}7GÀ l ÊG£òŸ’äªaBƒƒƒ÷Þ{ïÃ?ü½ï}OÁ9Ù¸qã~ðƒGyDû”{ì1͹O?ýôÒ¥KgÍšõÄOhü»ßýî7¾ñÆÆÆ¯ýëšÄ{ì1–’N§ï¿ÿþïÿû?ü°þÄ'Ÿ|ráÂ…óæÍûñ¬ùÉO~R__?kÖ¬'Ÿ|RóÍo~sÆ ›6mzà´InôìéFŠ!\U}ìH+82ïïo¥¤ó·m& ~wG×? ÎYY×õS™ P€/ªgLw]דĕ>÷Õôxl(Ÿ7¢Ñ¡þþcZ4 Ie÷pÏûGCÕ•ÈÁveog;<Å|¢‘J·{ö¹ð|Œß2¤Çáqmt÷t»¾ ™¶mÛq×u> ZÌÚ8K›yÜ„0ƒóP3Ù„;w_rÉ%þp@׎ᾞ.Y êgG áC)£è$™°™sYñ\ÙOíq¤å‹¼Ód\HæHÉ %Š*"”¡ýÝŒ‚‰‘ô¡Ýokg 7)¡jÿþ÷ˆA/j %´T„EÊäzÞ9¤އFPÉW—J£"%?üÃ!â+t:„L–‚I&;·!屡Ö#mð€'ÔP"¿kûN¤‘ËA¹z×k­†iÙßèÛsòè+ï®zf¸œp ·ûõ)à ¦P`àŒP¥¤t£¢¯¯¯ìvk¤äDRdd8Šö½G˜ ˲SyN!(˜–"fCNÇ©“B‚šºgûN­9õaûÈÉae(CrøTÁ$pûس¹$xŽ„(Rï·¤Ýt'Z÷v@¢õíÊ!ýï·À7)QêøŽ# Så* Æ !ó†BFõ¿Û›Í Ñƒ¾î!£ooGÕ´šÌ@ŠÄã8<œ DhþÌŽcýÄ#=ºZ÷¶À-²kk:ÕO”¢R*%eÁ95øÞˆlá‰ÊÄpwW[G*6F nwÏ1ƒpp•"ŸŽÂ‹ÿ"ÙYôwÞ©‰5 i¡ÛwÜ¡ßÕJ8ÆØúõë5A÷ôôÜ}÷Ý¥Dm)å¦M›tBJ)<¸~ýzÇq|ß¿å–[´œCÇ•Rýýý[¶l›ŸÒÙÙùµ¯}­TŽC)µcÇŽÝ»w»®‹ÑR û€IaI¸ YS‚Z™°ò&—¾ »Ä$ÊÓ²"b›1Î9g\ _—n)ZŽÕ6|Ž,ç ²˜#`SêI­[³ áB²èM—RrýŠY¦\šŠùLf %•R†Á¤” PžœbccŒ[NŒùwL ~(&a¨¬âýð‹82•U\A!TE}Wò< ˆš‡(V²Ï£*cK8£h&9C˜a”>WAãQJeÄ"©¤€‹Ñò˜QX2gPŸ0p]ÃU”É  6•yI -þЮpI!1cà²HÞ”åÒÒ6„Ë #ŒHž@FMx>“L,陂ðŸ„XPJZ–äÒ˜Á‹á-P¬0›‚¹F;l %4\!9‡ÈQJåê¬~Zøkp,³à¹cí´ç¢8cŠƒ1A¸à –×%€‚mBHpAl„]€@(˜0Òqßæ$ɘJ P !œ%’œRde LÓòÓ Ë*NÅé†0¹%„TªPÊH€ûQôsð TrÊ!95…ä>ÌÓ[³Q eR0 NáùEµ ! „)I^x Œê+MI8ÐÞlÛ” yŽˆI¡H–G 4p}×—~%½ÀvKéYFÜã9À%0UÑ-ò=×P¡”Ò4MíƒÖq9Ó4=Ï3 ƒsnY–çy%J-±­î[ÊÂBè# Ã(Uó[¾c\½”²õ‘¥ÔDBˆö€†aPI¡÷"võƒ¹NÞ® —±(DV‹w‰¢ŠJB¸tAA”,nZÜíÈø§ ¹PZÜÌCJ™”ŠR@ EQÜ–žãtʘò8%¥B)}c ŠÁ‹‰˜¾€A‹Zâ³¶i;—BA¦²”Q¸’™R ¤p&]½Q|€‚«1ãŠbý±xªµÇÚÝ>%”(p.%tt÷€C) '¥þ‘:gO(JгVüíÉØDJŠ] JA%„.¾E%•TRW¤„B„))(|ZÚ|…R­W'÷‰ÉxÌÖ-êt”Q58cyè*T@9¥ž$R(Ÿ è¯MÔ¸ØÇ}BÉ™³8f™SR)Pª@(„Йî Ì”"D_° „xTÄ×¥ ÑBŽ…e 2PV€È1F•’žÒ×,=m^x€ !9¡T#)P¥t†!(çñ):K¥z“ét._ 8:@€ó†\. Ž\ 'kÛÎØ­ÿ>3p}žõü¼Ï§ÎÜ caËŒØæx‚žÌÅá ™g•’ó8DÆfA9@€ó€¾¾¾þ¡!Ó² ®{!œo8bŒU„œêêêÏØ©¥}±vŲ…s›«X´«ohxÇ;û;{ûƦ\.„àþx‚.ëâ„ Ã:‡5P(×ÍSÈ0ødæd6›v½šÙ†i^P'>ÔÛÍ{º£±ÏÒIqÓY¾pþØ–šªÄ캚q]“Îd—.œÿïþÍ]õÈcgÓKŸûY¦e8¶}ݺ5k._ÙÖqbl—}o¾‘è?ŠÇ_zé¥ÆÆÆd2•J¥âñøK/-]ºti*•:›îzØûæ+Ö]_ž ÏñÚ˜xúe\3œI%7­[³vå²×vî~mçî‰4m9¡±£±ÙÕ•ÁíxÁà¼ÇuÝçþî½EМ9M·ÝºáÚE³w<LN™‡ßøôܩ։íBLúÌÑyѼ›~ýŒ!ÅÂÞÚ¾áÍÅeŸ¹ï‘‰¤<‘LQ @4}ú±¸c΢ë^{n ÕÎûáOŸáB¼úû·ü·÷h‚.‹§¤d?õ‹(&F«áÔÈÙω|2QY"OT Ç™uµŸ»öêã!|~F—sbgÛ¶mkllüÕ?þºµµ @EEÅ—þõ]Û¶m»ýöÛÏ~ä@ÿZ¸Oìâ˜à8žZï…6ßtýMëV¿ôÚë¯íÚ=®ãØÑ*#Np^ XÙ4+vü0 G"a¹\n8™\Ü0= è²ð×vl·póËO½RUuDÊÄðéøUUe\{5†“‰øTOÂãÚRÎäò=ù¿Ï~N|. ~ù8ÖºUWÜrãV*€çû™OúÚ¼ys__.—«««-.Q'6oÞ|®ãLñ^çݹ³ëOû©<ï`KÛÙc|<)O8úÒ¿ÚpÓºÕ>ú?Îð¯mF( è ÛÀ9¯«­-51Mý8_öÖ YÆùý MÖ;tpñÚß_ÿ… /?`ÏU—íÝÞ|äÝc V¼½vãÍ¿zZ›Ï mÏˇÞû×ß¶-óskWùóû_OŸe/)Ea’ …ïsY®ÈpscÃ'#æó¹±­m[c)¾ÃþCG÷:ú±Ç1Ê]:|Ò½ˆÎ´Æ_Û¹{\Ç3,ÿ\!¸/ìk;5’w››çtuu—.ôÊÊÊ·Z[ƒÉ9_gRÙheEz8­ŒdG¦hœÇÍ/Ý÷»ç¶ü'ýgMýç~ý “ââÃûö­º¹h<6-ºú·?¶×P2U¨ì®NTž“³€ëù¿Ù±kÓמ—s?z¼õW¯nׯW_¾bZUâ¼ »cÇŽ«®ºªÄþ”Ò™3gîØ±ãÓó£—!âT29í£ãe£…©ääÐ œpp_]Hæò¼øÛÿþš›çèuÚ¶íÎÁtàߘÔpK'ϵKýÉ£/[³òíW>¼lͬ“G§h,ãQ1­ƒ‹×V —ÏŠ‘¡–yËæÝ|þòŠÔ€áD¢tÚPÏØ^ï>ºþê5Ï¿üÊú«×¼ølÍÀ/n¼ùåíop!>·vÕ‰®žóEÐGû_½¶}õÊ·­¿q"M–ͽs0¨xà;v47ÏÑEŸ-ËJ¥R<ðÀ¹q¨eÿé®rñåkÇ5͘Uß4wî¸ÆÿðÕ{478|¼í©^,«·kkié>Õyú©Ä‰Ž\t)•.\6»ö—ÿþËU!¯ÿñÄ‹{ŽsR-{wßWÞL YƲÕkËÛ¤–óÆwõÖ5Ôöt\³ýyÛs'k$Ô2;&xMï‰U;Kè«©ß½nsª²:žXóû_Lï?u`ùu‚+Þù§3lvÇù˻ﺸ©áX[Çÿçù|á ™]É›3ƒ„kW.ûüú"áбöÏüü—ýCÓõï Ø½ëœt™š¦ÿã÷?=E¹LOë1/^i-ä¸öÚkµA½yóæ³”phX¡HÝœ‹íp´ì»k®9·ˆ·ÞØñÑ͘±dåJ½Ik uÏ—.šY÷Ô /nm/ï=)ÞÛ»wŠt€>Ú#X¾úªþ4—îܺvÇ‹Õ]®—B¼»ûMO|¦²‘?9A—qqÁÛ[Z\z騯¿y湩‡noi Ø9@€O×uÓÉáÄôšæÏ-%§ü¹0’L\Fp œa.O›uÑÄÖ|>g;N$=ËQúzzN<Ìf€Ÿ”Cý}PJ)é„.ˆNjh°§ódûñÐÏZ‚ûŒúzJ϶Šç|"‹Nº^µ9œÍd&:£'bœë9@€Ÿèa¤½½{ž_È_çk:!fÌø „èîìœ^W7Î]<…™;±±Œz,¦×Ö5Í;™ê®P(œloïïí nª8ï(ïâ(!—Íôtu)) ð¬Óîl&ÓÛÕÕrøp&=Lb€ü)ðt€øs!Ø%@€>¥øÿ+Må®WºIEND®B`‚pymvpa2-2.6.4/doc/source/pics/logo.bmp000066400000000000000000000420761323370031300175700ustar00rootroot00000000000000BM>DF8–:øC..øàt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[´cV|v|–„V|õkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[v|y¥œÎ~ïßÿÿÿÿÿÿÿÿÿßÿ~ï¾V|t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[v|úµ~ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[Æ´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[´c8ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=ßÕkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[´c™¥žïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼Î”[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[”cY¥žïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾÷úµv„6tÚµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø”t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[׌=çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœÎõkt[t[t[t[=çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼Ît[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[õk{ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚ­”[t[t[t[t[t[ÜÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾÷Õkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[•žïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿy¥t[t[t[t[t[t[”[žïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Œt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[Õc[Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹­t[t[t[t[t[t[t[V|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúµt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[V|]çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;¾t[t[t[t[t[t[t[t[y¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÞt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[s[M”M”.Œ²kt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[ø”¾÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß´ct[t[t[t[t[t[t[t[›Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾÷´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[s[¢íàýàýÁõMŒt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[y¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾÷6tt[t[t[t[t[t[t[t[”[žïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ6tt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[s[ƒåÁõàýàýÁõ±kt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[·Œ¼Î¼ÖÜÖÜÖÜÖÜÖüÖüÖüÞýÞýÞßß•t[t[t[t[t[t[t[t[t[6tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Œt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[s[s[ɬàýàýÉ´t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[”clt[t[Õkß]ç]ç~ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÖ¶úµÚµÕkt[t[lœdÝdÝ‹¤t[t[t[t[t[t[t[t[s[“c“c“cs[t[t[t[t[t[t[t[t[t[t[t[t[ÑsàýàýÂí“[t[t[t[”c´c´c”ct[t[t[t[t[t[t[t[”c´c´c”[t[t[t[t[t[t[”[´c´c´c”ct[t[t[t[t[t[”[´c´c´ct[t[t[t[t[t[t[´c´c´c”[t[t[t[t[t[t[t[´c´c´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[¶ß”ct[t[•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾t[t[ï{àýàýàýàýÅ“ct[t[t[t[t[t[ð{àýàýàýMŒt[t[t[t[t[t[t[t[t[t[t[t[‹œàýàýàý-Œt[t[t[[ÆÿÿÿÿœÎt[t[t[t[t[t[t[t[üÖÿÿÿÿúµt[t[t[t[t[t[¼Öÿÿÿÿÿÿ=çt[t[t[t[t[t[™­ÿÿÿÿß÷Õkt[t[t[t[t[t[=çÿÿÿÿ{Ît[t[t[t[t[t[y¥ÿÿÿÿß÷õkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[÷Œÿÿÿÿ¶t[t[t[[Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß”ct[²k¢íàýàýàýàýàýdÝÑst[t[t[t[t[ð{àýàýàýMŒt[t[t[t[t[t[t[t[t[t[t[s[dÝàýàýàý&Åt[t[t[[ÆÿÿÿÿœÎt[t[t[t[t[t[t[t[üÖÿÿÿÿúµt[t[t[t[t[õkß÷ÿÿÿÿÿÿÿÿV|t[t[t[t[t[™­ÿÿÿÿß÷Õkt[t[t[t[t[t[¹­ÿÿÿÿß÷´ct[t[t[t[t[üÖÿÿÿÿÜÖt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[lžïÿÿÿÿÿÿ÷Œt[t[Õc^çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžïtt[s[&Íàýàýàýàýàýàýàý¢í„t[t[t[t[ð{àýàýàýMŒt[t[t[t[t[t[t[t[t[t[t[„àýàýàýàýÁõ’ct[t[[ÆÿÿÿÿœÎt[t[´c—„—„”ct[t[üÖÿÿÿÿúµt[t[t[t[t[Yÿÿÿÿÿÿÿÿÿÿúµt[t[t[t[t[™­ÿÿÿÿß÷Õkt[t[t[t[t[t[6tÿÿÿÿÿÿúµXXXXy¥ß÷ÿÿÿÿ8t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[”[ÜÖÿÿÿÿÿÿÿÿžïlt[t[—„ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Œt[t[ª¬àýàýàýàýàýàýàýàýàýàõ‹¤s[t[t[ð{àýàýàýMŒt[t[t[t[t[t[t[t[t[t[t[½àýàý¢íàýàýlœt[t[[ÆÿÿÿÿœÎt[t[y¥ÿÿÿÿ8t[t[üÖÿÿÿÿúµt[t[t[t[t[üÖÿÿÿÿßÿÿÿÿÿ~ç”[t[t[t[t[™­ÿÿÿÿß÷Õkt[t[t[t[t[t[t[ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿÷Õkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[º­ÿÿÿÿÿÿÿÿÿÿÿÿÜÖ”[t[t[Úµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúµt[t[„àýàýàýàýàýàýàýàýàýàýàýàýÅ“ct[ð{àýàýàýM”’c’c“ct[t[t[t[t[t[t[²kÁõàýÁõMŒàýàýEÕt[t[[ÆÿÿÿÿœÎt[”[=çÿÿÿÿüÞt[t[üÖÿÿÿÿúµt[t[t[t[tßÿÿÿÿÿº­ÿÿÿÿÿÿ–„t[t[t[t[™­ÿÿÿÿß÷t´c´c”[t[t[t[t[y¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœÎt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[·„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹­t[t[”cßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÖ”ct[²k¢íàýàýàýàýàýàýàýàýàýàýàýàýàýdÝÑsð{àýàýàýÁõÁõÁõ¢ídÝŠ¤“ct[t[t[t[‹¤àýàý&Ås[¢íàýàý±kt[[ÆÿÿÿÿœÎt[—„ÿÿÿÿÿÿÿÿV|t[üÖÿÿÿÿúµt[t[t[t[™¥ÿÿÿÿžï´c=çÿÿÿÿ¾t[t[t[t[™­ÿÿÿÿÿÿ¾÷¾÷¾÷~ï¼Î÷”t[t[lÿÿÿÿÿÿúµ×Œ×Œ8ÿÿÿÿÿÿ•t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[Õk~ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿ—„t[t[6t¿÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžïõkt[s[EÕàýàýàýàýàýàýàýàýàýàýàýàýàýàýàý¢íФàýàýàýàýàýàýàýàýàýdÝ’ct[t[s[dÝàýàý.Œt[è¼àýàýª¤t[[ÆÿÿÿÿœÎt[{Æÿÿßÿÿÿÿÿ¾t[üÖÿÿÿÿúµt[t[t[t[ßÿÿÿÿ[Æt[º­ÿÿÿÿžï”[t[t[t[™­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾t[t[üÖÿÿÿÿ[Æt[t[8ÿÿÿÿ¾÷´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[œÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~çÕkt[t[Yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿ·Œt[t[ɬàýàýàýàýàýàýàýàýàýàýàýàýàýàýàýàýàýdÝàýàýàýdÝEÍEÕÁõàýàýàýÉ´t[t[„àýàý¢í“ct[.Œàýàýƒåt[[ÆÿÿÿÿœÎõk¿÷ÿÿ[ƼÖÿÿ¾÷´cüÖÿÿÿÿúµt[t[t[6tÿÿÿÿÿÿ׌t[V|ÿÿÿÿÿÿ·Œt[t[t[™­ÿÿÿÿÿÿÜÖ¼Îßßÿÿÿÿÿÿÿ·Œt[Xÿÿÿÿžï”ct[¼Îÿÿÿÿ[Æt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[y¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{Ît[t[t[¼Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹­t[t[.ŒàýàýàýàýàýàýàýàýàýàýàýàýàýàýàýàýÁõ‹¤ð{àýàýàýMŒt[t[±k¢íàýàý¢ís[t[ÅàýàýÉ´t[t[“cÁõàýàýð{[ÆÿÿÿÿœÎy¥ÿÿÿÿ–„÷Œÿÿÿÿ8üÖÿÿÿÿúµt[t[t[º­ÿÿÿÿžï´ct[t[=çÿÿÿÿ[Æt[t[t[™­ÿÿÿÿß÷Õkt[t[׌ÿÿÿÿÿÿ;¾t[Õkßÿÿÿÿÿ·ŒÕkß÷ÿÿÿÿ׌t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[v|ß÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXt[t[õkžïÿÿÿÿÿÿÿÿÿÿ¼Î”[t[±k¢íàýàýàýàýàýàýàýàýàýàýàýàýàýàýàýƒåð{t[ð{àýàýàýMŒt[t[t[ÅàýàýÁõ’c²kÁõàýàýð{t[t[t[ÅàýàýÉ´[Æÿÿÿÿ¼Î=çÿÿ=ß”[”c~ïÿÿýÞüÞÿÿÿÿúµt[t[”[=çÿÿÿÿ[Æt[t[t[¹­ÿÿÿÿ¾÷”ct[t[™­ÿÿÿÿß÷Õkt[t[t[~ïÿÿÿÿÜÖt[t[¼Îÿÿÿÿ;¾•ÿÿÿÿžï´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[´c]çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß÷V|t[t[׌ÿÿÿÿÿÿÿÿ~ïÕkt[s[EÕàýàýàýàýàýàýàýàýàýàýàýàýàýàýàý輓ct[t[ð{àýàýàýMŒt[t[t[EÕàýàýÁõ“cM”£å£åEÍs[t[t[t[-Œ£å£åDÕ[Æÿÿÿÿ¾÷ÿÿÿÿy¥t[t[Ú­ÿÿÿÿ¾÷ÿÿÿÿúµt[t[V|ÿÿÿÿÿÿ׌t[t[t[6tÿÿÿÿÿÿ÷Œt[t[™­ÿÿÿÿß÷Õkt[t[µc¾÷ÿÿÿÿœÎt[t[8•ÿÿÿÿžï¼Îÿÿÿÿ;¾t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[[Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=ç´ct[t[;¾ÿÿÿÿßÿ–„t[t[©¬àýàýàýàýàýàýàýàýàýàýàýàýàýàýÁíM”t[t[t[t[ð{àýàýàýФð{„É´àýàýàýEÕt[t[t[t[t[t[t[t[t[t[t[t[t[[Æÿÿÿÿÿÿÿÿ¾÷Õkt[t[tßÿÿÿÿÿÿÿÿÿúµt[t[úµÿÿÿÿžï´ct[t[t[t[=ßÿÿÿÿ{Æt[t[™­ÿÿÿÿß÷·„v|׌¼Îÿÿÿÿÿÿ™­t[t[´cß÷ÿÿÿÿÿÿÿÿÿÿ—„t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;¾t[t[´c]çÿÿy¥t[t[.ŒàýàýàýàýàýàýàýàýàýàýàýàýàýàýEÕ±kt[t[t[t[t[ð{àýàýàýàýàýàýàýàýàýàý.Œt[t[t[t[t[t[t[t[t[t[t[t[t[[Æÿÿÿÿÿÿÿÿ[Æt[t[t[t[¼Îÿÿÿÿÿÿÿÿúµt[”[~çÿÿÿÿ;¾t[t[t[t[t[¹­ÿÿÿÿß÷´ct[™­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžïÕkt[t[t[›Îÿÿÿÿÿÿÿÿ~ï”[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[6t¾÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•t[t[v|{Æt[t[²k¢íàýàýàýàýàýàýàýàýàýàýàýàýàýª¬s[t[t[t[t[t[t[ð{àýàýàýàýàýàýàýàý¢íM”t[t[t[t[t[t[t[t[t[t[t[t[t[t[[Æÿÿÿÿÿÿÿÿ–„t[t[t[t[÷Œÿÿÿÿÿÿÿÿúµt[–„ÿÿÿÿÿÿ·Œt[t[t[t[t[6tÿÿÿÿÿÿ•t[™­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßV|t[t[t[t[÷”ÿÿÿÿÿÿÿÿúµt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[v|•••]çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžï•••·Œt[t[t[t[t[”[XÎ6÷6÷5÷5÷4÷4÷ÿ÷÷÷÷÷RÞ|t[t[t[t[t[t[t[t[²kª¬ª¬ª¬ª¬ª¬ª¬‹¤.Œ“ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[÷Œ¹­¹­¹­y¥”[t[t[t[t[”[™­¹­¹­¹­·Œt[—„¹­¹­™­”ct[t[t[t[t[t[y¥¹­¹­×Œt[–„¹­¹­¹­¹­¹­¹­Xv|t[t[t[t[t[t[”c¹­¹­¹­¹­6tt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[[Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼Ît[t[t[t[t[t[t[t[t[™¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿúµ´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[y¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™­t[t[t[t[t[t[t[t[v|ß÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]ç—„t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[—„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ—„t[t[t[t[t[t[t[µc]çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿ¾´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[´cß÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿÷µct[t[t[t[t[t[”c¼Öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßv„t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[üÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÞt[t[t[t[t[t[”[{Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾÷y¥”[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[º­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúµt[t[t[t[t[”[;¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{Æõkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[V|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹­t[t[t[t[ÕkÜÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÖ–„t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[^çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÞ”ct[”[•~ïÿÿÿÿÿÿÿÿÿÿÿÿ=ç׌t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~ç¼Öžïÿÿÿÿÿÿÿÿÿÿÿÿ~ç8”[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[¼Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß•”[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[´c¼Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾÷;¾v„t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[”[•=çÿÿÿÿÿÿÿÿÿÿÿÿßÿ^ç[¾×Œ´ct[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[6t•Y¥™¥8·Œõkt[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[t[pymvpa2-2.6.4/doc/source/pics/pymvpa_on_phone.jpg000066400000000000000000001321111323370031300220210ustar00rootroot00000000000000ÿØÿàJFIFHHÿþCreated with GIMPÿÛC  !"$"$ÿÛCÿÀ´O"ÿÄ ÿÄ[!1A"Qaq‘2¡±Ñ#BRrÁ$3b‚’Òá%Sƒ“¢Âð 4CTcs²&DEt„ñ56FdVWe•³ÃâÿÄÿÄ6!1AQ"2a‘q¡±ðBRÑ#á3bñSÁÿÚ ?ö]Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@…))IRˆrMhyÓµ\³–ß6AÇq,@öK4÷‹sÐs;‘A(BSvŠ»7ÚCÏ4Ê ÝqHä¨ÅpÌS´.Ñ1Û„·‚`ÖxM¡'ÇxJÜ#¡²H÷š¨¸É˜þ:­y—6b—©Zt­–ÜîšPò)NƳOJN.^zÊÑ^§QÌ]®ä Exý³Ž%eµ6ÁïT•A ’+BÌ}¹c‚œ¶ÈyRîýS º¹Im¿x‘ò©g™s i>Í…[…uZ“©Gç[]¶Å»zm)÷D±­ùW¹²3 <›~ÆîhísÃ-Q£Â.B¥å ê@:Ò§Ü,¹ùÛÜÈíÓ¤|ÄÖü-§d•9ol’@ ©×­.¶4¨a)­)£šß#µÏdCvÙ±!iT— ²eCˈ¬Ûv·ÚXºÍ™Wò• ;ÝaÓ!>©=~"º°µ@ !Ü!—“»iéVF­hõ¹DÿGQZP·À£ËÝ·ä T¥·±Oɯ”©»Ä´úIØŸq®†âx~$°¼b嵤)*ma@ƒÁÚ¹¦fìóƤÞa¶îí΀ÌW?ºìÛË Är^5w„]³zõ4¿B“µ_RÚjÆipÊuèÏäÏKQ\s²þÖ.^¿FXÏŒ# ÆAÒÓü3s¼ $þ·§ËÈv0Aƒ Ö”ÓÕš”§JYf¬ÂŠ(¦VQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQXZÒ„­A)“@ªœË˜ðŒ½d«¬Rñ¦Ò’¯ÌLÉ;p+žgNÖÎïeÌŸdq§© ùƒP²žL¹½ÄŒæ»·1[ó¸.}Tz%<…FSŒ<ÆÚX)Ê9ç¢-ÛízÝÀÒ‘•ñ­.î‚[Hþ4«^Øðd≳Åp¬O m{ ‡ÚÜù yÚ¬o,›.¨†Òày  ÆðÆnSkm*I… ®]N!5-#¡Ô¥Ãpõ®Ó:~ŠáØÅ’/0ËÆ.í×õ\iaI?S+Ì)FaȘŠñL¦ü[;ˬ9_Í<:‘û*Ž£ÈLÞ{=ÎXVrÁ…þ¥¥h:iÄé[K)#Òzm[pø¨WZnsq¼>®^-Wse¢Š+I€(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Lí´l%¶Ów«râúâE½« Ôã„zt÷šÖ;Yí]x&.ÖWÊöˆÄñ—Ò{Âà´¸ûºúV“•òª›¹sÆ.ÄqKƒ©Û‡·2zÐz ÍˆÄÆŠõ:˜,OŠZDvçÏÙÑj8éÁpå’Skha™ÛRùŸtUîXÊxfÐÖ¨Aê®I÷žµkhÂ@÷U­›e{t®[«R»ñ=E’–9i+Ú¶Cd€ò©Í´ @*J‘ Ž“RP 8A#=Jêe!B<4ëh ƒ½8Ô‰†’¤êËXÈçqÖÛA¤¶"–ÒÁ€jZYB“=jèFæYTqÜÅ»sÔö­S¨¨mø¬Zu*jZi¥ÔÃZRè6mÄì÷Õ&1`'HŠØT´‚%Q?m@¼RL€¢¬"Õ‡†«8Êèä¹÷)XcVE‹„–ÝAÕkp–ÓƒêOa] â—øæJÍzSŒX‰eÀ˜² ~ôóï·âŒ6ãK \CµëÌ:âß3`«S¦àq.#—ê“æ#jËJ³£,¯fvëPXÊ-þäzŽŠ¦ÉÓ9‹*aØË3¦é„9‘"`úÕÍtÏ2Õ´ (¢Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@U^gÇð̹„¿‰â·M°Ã)ÔJŽçЧҤ۲&bWÖ˜m“·—϶à $©n-P$šáç9⽡â²Ã¶¸L\ß ©ÿè£É>½}ÜÔbxÆdíZõH½iX~\Cº™¶ø>øãß×Hʸ ¶f‹{vÚ BxªªTË¢Üîá8|iG›_~‹ûÈ™CÀì’ų IÄ¢7'ß[Ʀ­,HIu[QíÒ–PA¬Û¤Ü\•G…«¹12âk¤^…•iYêÁ7N¥i¤A®nwF¢œOMÉŽ&‹§>§¢°»Û|GbúÕĺÃè BÒd( Š“\³èѯÈ# ¸ZÕq…<«RT”Ó$‡Æºz˜MN*K©óÊÔÝ*Ž QE"°¢Š(¢Š(¢Š(¢ŠbþîÞÆÍÛ»§RÓ-$©kQ€ë@’$˜“\wµ^Ó±&q¦²¶GfÚþý`û]”KvƒúQÊŽûL@ÇûK¿Îλƒd¦ÞbÆTÕÎ"ê dq gÏSrfN°Àì;‹VB–½Üq[­ÅI=Mf­]GÃξ ‡æµJÚG·sNÉ9aœ1×uJ¸½¹Yvæá{©Õ“$“[êPh±*dÚÝ)$AI3ð§Ý}(úß}peQÊMËsÖ:i$¡±6Ñ$€$’&¬­ " Þ«íրΡÁ¤wäª$Õñj&IÁÍ´Z4àRÉ;ÔÖU¿J nä!{š¼Ãž:¦›LɈ¤à®O‘ʲ„… ù¬œE8”ùU¹NkmBaS >QÓjD(€…÷)­;KrB_I‘Ökò˜RDG*‡9"œuÔ¥Å50ä«’=¥KW4—]¸&«ÃÐN˜Þ™yõÞ‡7bØáõÐríR˜U¢g¶«5¤ªP­ºkl}èLLíZŽo¸Oä÷ußøÖD¼'gI¦7ôIºÅ `÷N¶«+ å7j™ñ¤ŸMöø×s®ôWq/¯4<›gR x€$dŸx®å]ª-ºi³ÉcUä–× (¢¬3Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@V·žó~•pgo®WÞºCL6AqÅžãBWNNÈ^x͸VS½¿x†™Nëq]‘ÔÿÏÀE¶`Ï™‹ò¾dqi·×6ÖG»e=6ê¯3ü6«ì7Äó6*¬Ó™Ð“t´éa<,£®üÖóáM²™Ð©©S\±= O mMeö fÊÙ J@Ut\m”tô¤<´´˜O@+–n¾èuÐc¢kIµá†äªO™ã›Ð‘l¹XB|ëa±¶K Ò0ë`Ê&¥L&š»‡QñKs‰‰Ägyc±V”F™­nüÌÕæ%pƒ +Š×qÄ5N!¬ÆÜ …5ã “Zžfjm–’Ÿ=ëhº~“Z¾b¹G³¬+zãâš=v I2«è݈³cÚ†9ƒ).w·–¨}}PH?¯HW™{ «¶¥ºŸÉî&Gï&½5]Î,Øxž?ŽC&6aEVã’QEQEQ\ÿ´NÒí2Þ$Î adö)ŠÜ¡E 0D4GÃú ùúMØ”!)Ë,UÙ´fÜÉ„e|!ìO¼nÝ–’Oˆî£äR|…pÇ1<ÛÚ›ësiÜ#-‡ ˜¶I)zá~’:Ùûê^•qLÅŠ7Œç[Óˆ\%Zš·ˆaö OSêd×IÃðöÛBÚ4¥<+LNo =Îå 0Ë=]eÛ±S—pK<:Ý»{[t!´ ³ÚZ„¢OÖëHi…DTû^60FàúÕt¡mljÄJzš®eÃT›Žñ %J!Cú^cî? Ôq²Z·ï¢bº¥õ².Ú Õ ò5«c¸¹iKJ!dâ4ì¯ZNJ½e£Ã¸„U£Qš^²e•¸Ðõ«d^%ÂÚ:V…šr®+n⟰ÖH2:ÕfUÌ·I{ÙnJ‚ÐaZŒMs¡VIå‘è sY Î¨§;ħ‘RðûÅAQµ‹ÊåU‡Ÿ 75W:wz‹sv®LUrª‘®8w&;urTdÌW/íSy«ØÚo.ekQ÷ÖÑâíÛ!zÖ&µžÉòâ»Aí#òÅón+Xqp~e;õ’=GCTS‹¯UD׉šÁaÝG¿C¼öM–ÆVȘn¦ÛMÂZ ¸(áNÔ~dÖ×@ŠôIYXùü›“» (¢˜‚Š( Š( Š+ ZP’¥¨$¤Ðh$kRÍyï ÁOpÈ]ýÙØ2Ljƒëåñ­Ìs9cw…ë‹ÏÉöÊ"ݼ5s>èª*b!Os~‡WÄkeÝcÇðŒ1W—­ Á! Ê•ÀäÖ´ÿi8x¹î­°Ûë†âC©@HûH5«áØ#mK…:Ö£©KY’Ië5oof„ - VgŠœ¼ªÇN&…?û%wèYÐ[*ðae=f'ï¦.{O²¶p°lD7;¬%$¶š ·P|3q‡¶à §bzŠ9õWbÏøüÒÍ|Í·.fÌOùºýµ¹ZW…cÞ“½^×ÅrÛ}÷´Z-V×)’‡YQJ“ñ7+gü[ijWéìÖ­ ßÄ™Ø/¤züúšº–*2v–ŒÇ‹á§ô^eõ;†]mæ’ãJ B„‚ .µP¢Š(¢Š(¢Š(¢Š(¢¹¦!Û‡gì\\ZÙb‹Ä®ÃhÊœJÏ’V“sí{2bm†ò¾X[iÙëó§IýÑÏÌTe8Çvi¥ƒ¯WËvÇ\m¤¸´¡#’LW;Í}°e\évn¹Šß ÁfÑ:ô™ÏÜL×:¼²Î™¥Ò¬ÉŽºÝºù´´–Ûˆ‚R‘5e„å\+ g»µ´BRçßXêãá #©×ÃpFÝë?’+±lùÚ`YE³Œ`L)` 6žñÈŽ ;}Ÿã?&ä–}¯òž"ó؆#2·®+Q÷Oð©ÊÂÒvBž UÆo|ˆJÒ8˜Þ²ÒÆV“ÔëÔÀáéCüVL»q†-šB J@qJe×ð0˜´iØqZƒ©N+ÍUqeo¸Ò*ô¥/C™R¤ ·¸Î`ÂÖJÖy&®ímÇ06¥±n„™#z•²G­¨¨£_æÀl)›—@AœïÒO _¹ï*“²Ð¢œ3HªÄ¢­êŽü(¨Õ½Û“"«.);W.¤C…ðØ£»Lˆ­_46j¥yVÝrˆZFz¾nÞÅÝdIÞ¹‰+ž‡ RÅѽÇî{j½ZYe›¬ IP€O¬•z¢¼õô=ÖèÌyAa»›„°Üˆ@’Gžêû+еéð0ÉB(ñ§síA"D‰ò«t6qÖ¸^ôŠÊjpëáïq\'镞lÙ]•üT~5U:Š×ìÅZYËOºþΦòŒÇXnë@DùW(_mÙ}Ã#¼ õÖšŽçl:Ì£ »õÖšƒ¯g¥ý‹!…rVuýiÛí $ ¶Ž~¦/¾¹ã‚y®6®Ö°Âu ’?}4Ú»]ÃÁ„X\B±Qx‰®Œ¿ôQ±Öq4[(ªBN½Ç¡®Ú~ ¬3V)fˆmFV Sø—l–l´£ù.ñãäÚ’H­[íMœnÑL~Ju‰ªáÔ¤OÂk5HN¶ª%ôj¬+ó°ÜÏj»pÚÜÒb Š˜Îh·iÎíÇRSÓzàهĺR¬¬]q'qݹ¨²µûœs3–ûÁ…ÜéÕ¦wæ&>Tã…¬úãÄh%vÏVáù•´Cº“èklÂsNÄ:÷׉°ü휬ÜÈ.@PkhÁ»VÅ­Ö Î|Ú‡%&¥,5xj‘5ÂVÒOÝ?èö•–2•$àŠ1ÉÔ¥ëË?m ³ÑmxØþ“ ­Ã í—y¤÷¯”ýt(\ʱÞ/؃Ãaæï /sº\\AJÁTw\IL\‹ü¯eÈL^§}¸;R]ís):o y‹®ûŽ1êuÖ‘¨…l&k^ÆñvíšWŒ|ë™c]±áL´¾æéD”t$’fµ<6Œù/ 8î—lÐnÞbo†Q¦@!ˆÔ­æ6ã‘DiÔªíË]z8x朑·¡üOìµÃ°[{t¶ÖþêµjÍ(; Ϻ«ìsvVtã1aN€\¤}æ®ì/lïF«[»gÇRÛ©WÜj0Œ̶­j‹t ÛøDŸp©ŒÚ•$xf¤°ÄøŒGœŠ°a„…i3—Wb©6ºº$zÒ]HSp¤•vã))ˆøÔ †ÂIéMÆÅp¯™šõã"f&+ZÌ8r/-ÖÛ­…¡C˜â·{–I• «»·JDÒ®b³Ô…ÎÆfi]›æüS+f+l¯‰ê ¸V‹GÖiG„“åå]è×θb\µ76„¢á’i}R¡¸®§Ù–<¬Å”,ïÝÙý:ÓNÇá"µá*¹,¯trxÎ0’­MY?¹³QE¬á…Q@Q@Q@[ ʘu‹iM¶Ã`Õ@W,ahLÚDzVÀÓ}QKS'ŠâònîÏ[,kبjѸˆ“K^¨|*ɶ¨mµI 7©ª)¢™bšz2F¡Vvvà’*J›#j•jÐb¯§M"ŠØ—(ê)›u) ÔÛf{µ ¢¤[„„§Þ|«TaÔãÔ¬äìzaÇR­ˆ4<³*ªQ9 ;­Ä¡>•[x¢ `ÖT⌂v¨wO„k%Yécu6c+nwQ¨w…)I¥9x7U9Š"Ý…¸µ@ó\¬MUuèQ›‘_˜±f¬[Q*cÍyõþÐ-\½o EûVæáä¶·—¨¡”“j V7:A;l Ú˜íëµpËÎaXS¡w$BÔ ÷uçµ?s{r]uJqLj“¹¨`ð3®ÕJž_¹£…ºpó}b«éUrZµËY *bØÒlI`\]­m>”ÈïÁHR”V|P¤ øŒÁÚ¹–lú]v¿‹ 'F —›KÊZWifqHÞ²ñZLmºR“#ËjâÌØ¸²?G À¨˜’Ú´Ov.y•èÔÞÈóS¡M,ÒdüåÚzÍî¸s>jÅñD*áW!‹‹•)–œTÉm¹ÐßÖ €0 mZÒ®Qñ<â·ÔM6¢I$õ¬UÆ)n-kRÔ£*2i4Q@“çB”¥R‰÷šÅghçzÅ(¢€ [NºÑ–œZšTE"³áõ h–Þ)‰·üÞ#xÝyCøÔ–³&ahËxæ$ŸuÊÿ®Ou-s=)Ô ]ŠÃÑÖ" Ô{Eˤ¾¤ôæœÊ?øö$}÷*?y§†pÌÑ Æ.”<”©¨hcRR¡í$@ŠSláeCQºƒý­¨uо.·JŸROçf2¸ï<õOãJNhºål¡_×4ϲaZ€&è×M8›,+Çí‘ÇËþ/ض3Ä-ª/rZ3c‘§î]gó¥ˆZžH÷ŸÆ˜M–S:± @J“ l)>Í–¸.ßyh Á~×ì\ªWÿì¹1½šÕ&ñiŸx© ]جx±(==ú´‘;¸v?:¡¼´¸·âî@ÿÄ«…àwn’íÙÕ&£¶ú¸ïIëá«bš1Vñô(ý¢àmß»ý³G´ÜÿÞþÙ«…åˤ‚t;zi•`w"K¢jÍ{¹r+ÅåØ3íOÏþa¬ûmæÿʞߟ©kÁ®Ò'»T{©•a—iå³ò¤G#ö»Ÿôî|ë>Ûuþ™U“cr–•êIµ|OèÕ·¥1Y‹8…á‰wèˆ]ƒ=âgÕ´ŸáM›gÿÑ«åI,º Ô>˜øÄ¯GG¹ð§QŒâˆú·Ž £h¨Jmc”šÆ…~ɨ¸§¹%9ÇfZ7™1ÖÈ(ÄßzÕ–}Ívk grG€kY ŽDV*£N[ÅÇ^Y¿s®åŸ¤'h8*’ˆ­äð•>\W[ÉÿLKæ†ñü,¾Xˆ?¼EVð´ÿnŸÏ×UzNÒø¯Æ}ÉßI®Ï1õ%§ñ`òøCÆSó;×OÃñì#µá—ö×M¨H-,*¾KUÆ_͇/ܦãÆol\IZxòâ¡*–Wøÿèœ14¯â¾ÓþÏ©wn„ðxó¨ŽÉDÆ¡^-È¿Jã…© æ›6qÛ4@S­Ão]Ccî5èŽÎ{jÈ9Ô"ÞÃnÎùcþ§zCNÏŸ ¿ªMfžxy•ŽÅ ´¦¼ÔÙ3 âtÇvˆ*ßư5¨Ê…ÃI÷쯸Tœq!Dí26ªÉcü²<”Ÿþ²~ OãQÃ;VÐÝÄbª`úòŠ(®¹â‚Š( Š( Š(  |· šis4ò‰™&˜R’¥yÖvcs%F6¥7©F€€®)Ö“¦š‹i!m ¨S™kB}|ª3[*iõ8`OßWEXËQ· àq í"—ÞÌ*•AqA*Õ4%äùüéæ±Jä·^Aò‘ç½B}ÁmXzâAL¦=AqFNñUNeôh÷ûñÖª¯Þ ÍH¸Y "ªqaDŽ+ yåW;j*ä{«€Ò šóçÒG´¿ÈxqÃ,œúà„ÏÕOíè}©ç[<³€\Þ\º™ª@>5á|ÑŽ_fl~ç¾Z”ãËð‚~¢zéX°¸oÕUÍ/*ü±£‰ý%<±ó2"MÅýÒÝujuÇ*RŒ•[•­ƒæùÀ€7 <š­KÖøe¸T¾FÃÊ«ˆÄq‹˜m·®;% &+Ш¹m±æeW'«,q|Ä·‚˜±l2Ϻš RŠ”T¢I<“[}g¸Ó .íLÚ$¤µ+ݯlr&^¶±FæåC”·Z¢¢fœ¥'vsfû´­Aä¨ÂH~ÔmöÓuÚ,ð¬—j”„`m¾FáO(¨üj}¦#—­F–rþˆVÄ09øÔ´#c„€OÓ‰·}E,¸u˜D$^ï:î©Ìv «ÁƒañÉ›d~/óªÝ¥2S†aИ)SM#Áê<·£@Ðóæ…ïàVÜíÅe É!GD ÜëÐéÍ îF‡B· Û¢~êq9®Ý V‡¸+ mÀ¥ øNà.•évs5–¦ð\?tÿÝ=|©ÆóE¸Î† 3 µA÷ôëKÂf(IrR…zÅ<Ø ¥Û/aÕMzYÆÝ”€Œ ÀhŸºžVqa`¥x^A ™´AãáG„zp¶w ‡JˆÚS ÔûKì •(»hòд’Óß]ý¬ïh.P?$`¨ ÞUfÐ=b²öw¶Q > R‰T¦Í¸å·ô o“³?g¶íwx­ƒ±£cÝžçŠUÞ7Ù˜»RÚ³yÁ§`Ado]¼ód ¶Æ ƒ¨jãØÛlT„gE)æ ”ˆÿ©6w£7¨‘ϘÇû1uðåÑy¤àŽàª`}QÇΘ»ÌªýÇ «…N„¡ˆ?ŸJê'80„ŸýÀÈQñMƒeGã†3»)úÙkIÜ‚pöÏð§uÝŽÇ2³Ä»,RBœ¹}IÖT”¼•%dvQì6û*}¾;Ù2T Д6êžå²¤Ææ`‰é&k£õlâÁV[Ë©öÚ3ðŠyòÄ­S,•@Ã[ÒHv¦¤—Võ*plwèÙj¯jx¾¤$$w%¥(ÄNÆ9˜­ÏÍE[k{~ñz)J”‡¤“Ô/*¡N}²mHÿØÌ²HÞ?'¶ ùÓŠÏö’“2¢‰Ü©[b}ÛSæ>ïóæ5nçF°íè»Þ-,Ý`­‚“*rÝÀü ;Uµ—h_FĒݾ/—ÒbTÃ~%5É›ÏX9i)9,˜Ü(áÈ$ý”â3Öã$åd¥gÄEƒÅßwùóž§f·ÎÿG’¢¦±¬¤’L™;üELg;v â{ÄcYL€tê!ÄWüõÀB\ȹb`Aöl({8à¯íy7-”ˆ:f,ïù?ϘïS¼³š{ xŒo&7ÝæGßO9ˆö&ó^c¼=Nì×ùVÍÞäÍöÿ®3ýêq»~ÄÔ¢Qq“‰O$]³ýêóòqü¤ÜÙî]2ž–ôÒ³JXRgùs:{³·ÛO™/äÿ>bn§¢œµìaM·òvƒÄݲ?⨋Â; }òyO]7íøë‚»™²¨ ³ì q¾¤°vøMEü¯ÙÃÊ)Ofø$ŽHB’ÛG2_Éþ|Âðõ;ËùS°G›RVæSÓÁŒI±ÿV½Ùß`Bû@ãÁеýêâ—X‡gK{4ÁàÀ³Ç^j+«ìÉBÉ݃f†µÜO±ÎÏ­L#°}jA´¬nzAü+_o²fä',¸’S/œ5yS²ÕAVr˜àŒAmßẩŒö[”´•±Š0$Ö‘vqinéC¬­"wqÖ·•äþÌtŒ;*˜öåGº¢¹ò ÉYeÌa…Ênæ>b¢ÝÁ#ŒbØ ¶‹†Î©ú¢yªw™u•iq'Ý]ªã³,ºâUì˜ýúÂTì+MQ⽕bãR°ìfÎõ)%ßßP°¶ŠØñŒ›™°Ô©WX;Ú¿xÐÖ#áZòÒ¤(¥I)#DCMËN­£);H%'êª<ÇZË®•¼]JÑ&@D€§•% R•¤Â’dZM :¯g]ºçLªÓx}åÚñ¬); {¥’¶Çôwã"½yôT¼°Î¸µæ|³¾·HE ¶üž.[íkY•:„¨©½Ú!:€Ô$ ŸÕe–qÜc,ãÖ˜îˆÜaØšõ±rÂô­>ðA ƒ±‚$U MO:VfÏ××å:NWLû EygèÓôª°ÍNÛe^Ñܴ±®ì%ŒX©-ZÞ)#päÀiÃ#À£ i:R}MW˜ÂŠ( Š( Š(  YNj$VYî*8XÕ°§ƒ° ×>:êÎû‹JÈ”J§X˜JX‰òàuex:<ê›nîã6æ-íÞQ°·Y ìµUZf ‡Þß>°¶SÎùÇ…#Ìš¹ËYIË.qMM4wK|)_…nÍ-›f½›HeBGJôpð£MB'ŒÄb§^«©-ßЦÁòM‹\ãw^Òèß¹A„yäÖÑjõ¥“ÞÂݦ4&?Æ«Ó+ZŠ•&Ÿ@Þ*äfÜ’·–µ)J2:ÒÒñÓ1 wêŸ!Ä3mfÓjÖ(ƒÏ•&çigR žj^á>±JJõ¤îÞ-[#t—P0Sj±jÙÝhPш­YÜ%’ ®í!`×Ω³Š^om(Qý)‚GÝO ¬BºÌØE¢Ë}ùZ‡:S5„gL» Ôê?¨kJ±Á/1÷ím[J\hAVßXO¼WJGÑë9-:“y„˜N¢;åHÙõ§É«Šë¹Z¼ïƒ+Nî:÷f”s¾´„-J ¡² Rñ¾Ãs^h.Ÿ¹Ã–Ù^Ѻ¥õðíT¿äà ­fæÈ‚¥êW¸i“ð©*S{!9EnË_Ï<'À§½?G5”ç,ÈuO*|“Tøg÷w··Vë»¶R­’C­…­µ¡FB~³pF®G”©ÓÙn9/°³þ¹ܡҚè—rqÍYx™N°=Q4÷ç†^ÓOoû)…V’¬ÂR¥&ï !1?§W_êÒeØùâë >çÕýÚ\¹öuܼo:e¤  Gí"MHg>åäý ¹Zßù,ÌgT?†øD«ôçmãöhOfôŸÃý"ãÿù£—>ÃRO©²œù—Êä¸÷?³I^xË‹Q:ÜH=’*ŠË²\ÏypX¶sqpJ@¸‡¼Rì—86êÛ6Öê(0J_Ió¥Ë—`λ—Ã9eµ « &}Ô±œ2ÉQ>ÐêAå"cŠÖÿÉFrÚ,™3ÇéÓøÖe9ÎcØÿnÆžIv ˹·';e=¥{qKç-%#MÒmZù&ÎÐäÔ|žAþ5"Ó±Ìïr‚¤X6#™yøÒÉ!æ]͘g\¸IÕz¿$Nô£›òÒ·A;•FçáZê»Ï€m‡4yÿ·Gã@ìS=‘¾Øÿ\ÆŒ² ú›çŽ]$¨âR7Í-¬ã—%7r£ÖÕ«ÿ‘\÷¤ŸÉÈŸ.õ?±\þxÃøº(´€Û0:¯ÀôŽ)ïÏ|bõ)#m…iÊìO??“Y>çÂ’®Å{@þjAŽaÑJÌ Àç< ÇewÈ;r9¥ ß—€ð^ ª"IãÒ´•v5ÚT~D'×¼H_c½¡&'YŸ'SøÑ¨XÞNkÀˆƒ~Ù”•P¼×–ÂMÓk:u½h'²>ЂJ¿7^÷wˆüi?ä›´Oÿ†. Z?5ý9¯m$7pÔqÊÂ3†¾«‹x‰P1\ûü”ö‰2¥ùÈ'ñ¦_ìÇ´D¹”ñ0=ŸºšM‰ètÔf¬-@“{n'¤Šq9PîØWƹ3ýŸgvS¹_@;ÿ0j2²nm@Ô¬¹Šÿʯð§’}„šz#² {ßMë`Ÿ%ŠmÌk )7Ì‘û¸ÑÊùœs—ñiòöG? OæÖdÿ˜qXH“ü‘;ÊV’%©Ø•Šádønå5ƒ‰áéþnåµuú¸ºð|m´…/ Ä €MºÀû©HÁ±ÅýL+TÚÝg•b; ±% 7 ž¤ê¥b6À›”@¡\˜eœÒ8,¦æOòg#ãµWÝÙbVÎ)76—l)'pãjIOÎ@íÍ=ß M¹#ÐóJö‹†÷Iã‰'zã™{¿ÃoPRòÖÑ#[j$‚=<«¯°âµmôn$I¥p$µ]·±QŽ´Î$Þ "1L1‡ÑzBU>r)¥È‡P€=zѰæ-Ù­‹ä¯ÄJ$Ïvöð#€Esì_İ—{»ûG3¨l}ƺøSîvéÅH[ì]Ûkæ¸i\¥i½(øÂh®…˜ò+.%wXœ ,(ýÆ´+«wí_S -§`¥B¥`¯N}þ“÷¹!«l¥Ÿž»ÄrÓiCWHH[ØrA€ë8Љ*JRA&¼ÇE}’°»µ¿±·¾±¹fêÒ夼Ãì¸Û¨P”­*)$AiêùÙôNúCÝöexÞVÍ.?y“n%$·0Çd¸Øä´I•¶:’´øµ%Ï¡¶v·ö6÷Ö7,ÝZ\´—˜}—Ûu •¥Ce$‚#b =EPEP‚!{t8¥Ww‚B†Ãî©–ËFÄ×.2LõÓ§e{¨*¤¶½)•q¨â¸P¡Ç¥Qbv3J9´ãËJä¥%éLªCZ€ƒ¨TWï`i“‹#C6Å‹×ZRN¡·­Sßâ[ÀPš‹ut  ªkx®&ÓED¸c«ZÇO €MÝ–÷xŠ’‚¢¡±­c0fVíZR”° UZžmάØÛ¹7 ÍyÇ´¾Ó¯qG]±Ã†É…:“Ï ¬Ð…LD²À߈©CO™Sÿdí—µ'žqÌ/ ¸Öê¼*ZLèÿÑrÎ܈b ïoãJW¾_SQ2¾ [#¿O+vЮG©õ­¨¬÷ó]ì68xÙn÷g‡âB¦2¦ihº.ÂÖâÊàÔÒY2¨W=7¦Tîä$Ó­Áçî­ ’ ž”²¢wü©Gˆ¥¤ÀÜoAи#`<éĺ&EFQ}õ†Ô#I’9Äþô`‘æi½ZRB6>tÊ$íæ&²§N‚6¦!(RŠÂ7ò“ÖŸÍ“‚²4„”’8šƒ¬S©A)žOJŸžóBu‡Q¦&†ô¥å[§Å=­/÷bÔ.ZD„éZ£è?Œu¯Hc}ÕµûΪÂé庄)›†Ð° l“öW›òçt1LfYK«jÔ„ÆÅå07ÿ˜®³‚çœçwdÊXq”6Ó)ÔâÛJNÛnx&¶a䲨ÏVæØæ¬Ã“î°w5X*îå½*qµ•!!J0w‰J«MÁû.wÛ½·Ç†ÖT]º‚I ð} $çlÙ~êíûµ:ã©HM¿‰07;tƒÏ­Bo:cm¦q´ÎÀõÜž}k}mZ)¨J×2Ô¢¦ï$n™‹.Yà·wX«—±¡/ ì‰Ln<÷;õª>ðÉÞ”U+ùÃ}!/†]HTÌÓC2ÝrlìÿØÿgNîí“³ÚÆÓjãfÚä8V<);{ê!pìx5H35ÐB€´³…l¡ÝsöМÇt£ÿT³ùlþ4ÓO±°°²X¹2wH$Ïô…a‡T‚˜ø¦EP#3\¥*þGh†ÿ£WùÔ…ãw¶ ØS ƒ´©¥´Ï_J@“7¤IÆe ñ)—:A¤f%_¡aV}òR§]-¶ÂÔú¢<‰ëZEžl»²{¿¶³´mpDè?.js9çÔ²Úñ³ ÈÜûýG5½Å«èmï P1lQjžñm…ÆxÅÝp6”[•y÷š.Ç•ö7‹#v-R.Rª Q1Äÿ°d¸›GUl•wºLóÉ« õŠ‚AjØ‘¶Èãí§ÙϘ’?Iì¬((é ÆÝþ´·s¢Y9p-[©ZŠJ´kH T Þ=j+OcJu,¥MÀB“F9æ´Öû@ÄV°gn£;«ñ§[Ï×ÛYÛÁõWO+\’v7%Ücܸ›6Ô²‘Á÷êà qç[Y} ,.#LG…;|É­öïþéoÎþ%T†óëð5Y³ëãUEÅkÐÙp»¼UXšÙ¹m+oqõtè±ãV÷Ž¾Í¢Üe¢ó€xQZ´oÏÇÇþäÉóñþÊZ3óÿ­bשÖwû)8‘Œ\{›±kÖÖÒb‚¥¨Â4DI—Ú*á—ã ©Ö‚D©=G¥i)ÏŠÔ ±AÿX XÏDƒþoIÚ?…+2Vô"gœÇˆa˜êí˜yHoBT  VÃ…ßâáרÚ%×´ò²v=*…üãfêµ»ƒ°êˆúÊX3óâsËHHJpà‘ ͇ÙRzÅ+ Bøb—e#Mª”µ ¶DO§ÖùT‹,D¾§C¶ËgB jýj×zh‰.Oèü<éÜ?97}zÕ«6+8HD¸ØM,{ 1²6åÂJÂJt×3c.ìYÚ,2ËvæáÝ'JÝN¨Ð8ëVž×v+h’?aÌI-÷ö‹C­OvãN€¤Ï#ÔzT*BR‘¯Zªf–ß lq6mœW²8ýà ³]ÂZqeKeH<ÏZÑŽiƳwrïfåo€ÃaJ -(Ðz×BÂí·Nëï\<ëÎ…-ÁäO—¥T«cßäwfÔ¹Þ›^ù=ÙXàùǤÕ1§5UþgUc0Ùžý5¶¬ŸsŽ\©ÝÓ)=õº!Z‰ñ ó©y{ºzáM(Â[RÀmÅ Äû¾U—Ëêü (Ààp65›d3m«¸ÂÑZaE$|ëE¼6hâNIÍÊ;w1âJ¸þWpûmFÅ{É1ÖiŽÖËÿ›¶K³Z‚®J-À*ØñÇOº‡0æ.Í¥è/)%fftñU]«ÞÜ·‡áLÚ57>Ú‚ÓjL¡ÃÇ==j¸AžÌ¤å©æ¼äÒ?=¯ÁLà’OôGÛ]#m,à–©OFÅhyñÇWÚ0nBíŠJДÀI˜Ú·ß«…°€>CÖF–†œƒüiBd‡•$,cÒ›Z„ýûTD-Jèf¨$1ÖšQ<‰·4’I'rZwÔÜ)²4À>uðüe¢.€ôB]Ó$PµÈÞº“¨L¡PhÔk™0g°|Al(-l“ú'JcPüj®ºëéfîØÛß!.!\&+AÌYrçqn²;ÖwW‡õEPW©¾…¾þjßZöwœïÐÖ[z[®TÚ›Öâ–R※Z–¯‰Òtð™)òÍ€û1EyŸèEÛoç¦\5b}îgÃüÇQ ½³J@¹ñºÂ¤S¥^"PôÅQEhX…‚YQuŸjÜÒª½£»V…î:UÞrL9 óªñ«J.[ ¿d×­â³@ö8yø¹u=Ì{V”l°M`_JwVÕCp·™B¼$¥<Ž¢©®ñÜ”+R}ðEQú«8`Tö6×ïÒ¨USÞâ‰D¨ªµ ìÉÝ‚CœÖ•˜ó²JåÈç­S:훩`T ûÌ­¶Ñý$D×"Ͻ ³bËŠ7 6ßšÑ3—h—·nJŒ»Zä8¶'w‰Ü©û·T²NÂv£ ƒwyhŒ[íUøž6åí²íÒÒZmÀÖ¤¤ø| ‰€:ìO]¹©º„T ÏòÖNØ‚Oª ZqŒƒŠ n|*Ûì®olùiÍA´.AL-3Ôzù¸ÂñäYâwW®Y‡EÃ]Ùh*Ÿ­¶óñ$Ы\3rÎb1&v÷þ³‹àS¾"Ç9ó­IxþâÔµàŒ$% KIB%z‚¢7#º’Œcu‡™»Ã_!m) 8…¤–]RÁˆÜ ’$q±éOšG–nÁÊvâDëcFzþi×ï¬VÚJ™ä8IY½VÞQç\ÂßÁÓ„±dæ[ñ-eCĨ «Ž“ǃQqLS ¸ÃÕmi†&ЗCšõH)ß}1yÐæ¬ ¬évYŸ ¶i¤ FÉÀ—áÔ­Ô¥‰ô"6ò“çR‘›0¾ál¦îÁ)qµ4­ Ó!D–㎵˰\c ¶aÄâµ:¤" | Œò)õb9x[wÂÔã‰@B_Žºú³æÎ})çBÉêufs~m®âÁÎí¢*ZN¥QCQIäŸâ²Æk»–YuÜ-æÚ%BTBH;Nñ?ãX…í•åëëK&ÞÝEN6Ûm§Â²ýÙ*™âØs ²Î%cíHeehÒ#pbvçyøt¨©Ç±,u:ðÌØ"îmZðç»”$)*y#Zô§TGBAÛúGŠfË™a¶ý‹ÉB–F·DxŠãú±î5ÌEöWÔæóÝ┤¡2‚ßÕõŽŠÒc~jíÖëö}Í™e–”Cá(‚âuÖ;Áˆôó¥Óê,¯¹Ù-Ø6õµÃw{ki Òê$…6'ÔWõ«7¶r×t.-î´„¼˜@L”ŸSé\©w¹eoG°Üw)-&¤ŽõJe^Ÿ(õ¦°ÕeÐõÒ¯-nKeɶ "wÙ`™=>ïZ3¥Ð2¾çWmì<¯mÚÆŸJ¬´Ïµ±éúT×/CÙ]J-&Éö™RUªT¤iñ}æ¡Û*ÎÛeäõ¼ÊÒ¦Á?W~HÏ^Hë.Ã?S®ZÌ –úÔþ4â{‰‚ó^íb¹X»Â¯1&—un›kT[¬­ ˆ*T(¥>»À“½<Ò²êÞ|%«´´…Žì¢“¹1·ˆ§aåëKš»TŸs©2í?×ùT‹52ÅËNÓ¡µ…hR„䘢ðSlµaÝòR‘ݶf4Së2jUÙÊÉaÅÛ]b¹§ôm¨Á&c˜àn}x¨óVÖ+×îuƒoÝ­Õ%BÖT¤3¬0„µpJA(#PJˆž ‰®5›Ýï0»÷gPF— ƒŸT¯(ª—Ú®;?¾ióc؃¤ûž„g¸Š®µmÖŒËP·§*NnÍËJ!*qd'a¶•ó’o.ö‹—ÇúÃø×vú=-NeÆß}aj£Þ7LÂE¸Ú|·š|ÈôDVuNáR<>ú˜'‘½OO$¤¶¡ýë:VF”Lu¤êhŠ+‹m½$²¯#VêÑ¥2)눙Üü)*ƒÊŠç­Þ)¥h3¹Ž•—íÝ!)mj¬U€Lì“Äø¸¥i ¤'·PE‹hþôÖ•Û3ϲÆÛl­È}NÊG‰$Dë½t¤¥0"¹Go7KgËöíâÔ¢¢4ÊÑä}?æ)Fwv,ŒlpÜâú®3þ.ò”ewë_½[ÛÛY´#„öW7Ç^Î×îU«w¯ôÍt âBP‘' ùV~¥ìd+ šA>7<Ò@:ŽóˆV鎛 B™VäϾ°5­Í)IQ‰0k ;ò'­7­)‚ |iµNÄuëH+è®<ë%RLAŽ´ÊŽ¨“Á¦K›$§ãÍ/Z^AmrúT:zÓ+êzSkTpw£æ,-xuÑ€KJàúùUUuí½³ [Ž´ÒÑ%¸QÉ„óÇ^=kãbÃv݇›Ið8“熬˜±|¥š0ìˀݮÓÃß0âIŽR¨å*¥IáI$}\ì·;`ý¢d\77`jX´½A%§6[.$”­µ4¨äD±ò6½9ôí1k?\dä¿(¢Šç&ÙíÎÆ¬;ÆÁðŸ#·Ô Ç¡Z8¶‰IÜyâBY^Vzßûc™n1‹Ø!ÉRN•zW<Ìxlê ¡d@RvŸZê7JJ›žµC‹Z7p’•¦}k."—Tt°8‰EYœËxªÜZ­n\|¹­vï b÷$ûIrNðv¯GX`L­M¥rcz‘‹5omjHkBR6éUS¥«³e~#?,Oö§…')·V¢ã†)#aëZQApƒ¦`zšë?IüXÞç&¬R!»vÊ€õQÿ çx¿xËjÝ ñC×¥wp+ü)÷#Zµ°Gç#=óŠl=âJAßB oç°žœÖÛŒáîbÝ–dä6´µ¡ûôêXØx›üjnJ4›o±Ei(«ÉØÑ°æ,—xrà,š XXL ŸßÒ›Äí­Ù×Ü8•éQL…‚âP}@¯m²µúÛmÜY¸Påµ*bvâcÝɨÎåKľ´‹»e~·ˆjë5Ž8ª.WS1þ»å~`…ax+Ï´Ûº[ @Õ¬$! Q$‘¨û§ÒR¼&ÁÜaûo˶a”²EÂQQÛŸ?*ÙØì—u„:1L-)Z5ø”¸uÓâG›2>3—n ]CiqkbJ@QPÁŸ ¶ÛκÒö6ÆIꘛ¬³jÅ’V?iß­•¼ ¤íÆçc¨ñü1i—™u´)ü^ÊÝ`¨:…,€Rb‹xùÕgäÌH¶µ›7å …€“¨™Žx#~’<éVö×á…!8[Žê?\°­Ièb=ãçM5Øvd˼Ù¬9Û¶ñ6 i %¥F¥+R’B`ð õ©X^[nöÝ.ŒV͓܇KkWˆ¦ oÓMT[ÚÝÛ>ËËÃÔøYmI$S7A)›Ç’åÚ-“l5¨èIQ „Ÿ!·¯Z.» &^¯/0Û¬¥ÌfÑeä¯@hj)Dø˜õšªJ,ÿ'w…÷=·¾ÓÜèð÷qΩæj ?ýë)ò˜e&×a¤;#HŽ|« ‘Ö2 ¸ëKVê:A é5™&`Ïœeeµ¥cJ”ž5&G˲šÀ¥#qÍaû‡Ü¸x¼éJ–¡¼ $€mIJÔ8Ú°óéåIø4î;[uECbIØ^”èpŸuE·qm8Ú´¬}SÌS­¨Ž¤ÒcD¤,Ìý´ó/÷`è ?®:ˆëQÚÔ¢¨žZZO‹ŠdGR G=)o¥Æ”´é+HPÌŽ‡šhìzÒTG˜ lCê&Lž:ÔU;mOÆÒÁN–]ZûÍ:»Ç ¶ME8Êtû/a—pÓªm+B ¤ÖŸ^œÔü9ßl±fè°¶K© йԙè}jWv#mGR**Û¡žxªÜ_¶Ä/{KŒÜ‹M­ w>ýêÈ qITâMUâxÍ®xã6·=Óm¥j} ”Sßµ.º £e·›qÐ)XRáÁ*‰ÛÜI$Õ”•DI#Ѝ³Ç,î.;g¹mEÎí'I ™Žœ\éÒFÒ|éH‡›Û¥q¾ÞHÏYY•””•ÕÀv4GUWí©ë_òŸ"í+-5l\–£^©QIßÔ…(nËÃÚ_{˜Ô¸¼»ZÅfº.$¿À®qó¶%;)Ù=k}ÅWz@ ©nLiN¨HŸJZW<’ lMF¤$ÌÈé48ép‚gh€qӤߚŒµ'iž”ìqµ0‹Î€ ÐÓ#y¤Óä(B’fD{Í Co:wøŒoåLÜ,©RNçš}D”í¸ûª+ÄD>\ëй¦æ9øÕfh²MÝ©¸Bu;ƒ<ù§øÕ‚†ûÒ´©³Îéû »« ë{ë—­níKÌ>Ë…4´™JÒ¡ºT¸"¦fiyÞ& oJ„ 3ºçÌUe >µö7œÏÝ–åÜÜ•2]Äl»ËjCh¸L¡ô$*N”º•¤I22y­¶¼gÿFþw}næÎî–ó!¡‹XøAC@)->’¢dI[%)6pÈ'fP¡z•(£»JÚ:§o:Ø ƒš®Äm»Â`Ç¥q*Ǫ=F¦WfV÷¥BfG˜ÜRISrG5”³Ý»¥$N”û‰Áõª¯š: ¤ÕˆŽ÷zá š«ÌwGÙ±"ýÎéE\NÕ®æ‹æÓfêÖ­´~1Y§7•¢÷ÞcÄݸ^¾Òq#;6¤¶>üjXgMšžRBTâ¾ÁÅVç‹Ãœq[ g]Òôû÷VÁ†¶³e¾¡;ûëÑa£’ŒW¢˜ó ”w:3Gô`ùÒµ"£Y¸Un“;NÉ ØÐ1RŸãNH€Ö˜&E-); BÁÞO”…€]%2‘?e(…iQŸJKh!Pf"€ò–§Ò&@ÔÆ§òEÈ2<M@¸)BÓ¢A;RíÔU‡Ü ßAÚŸAŠVb¶C{•’“[¡VŽÇ0'ý­‹c¾ +Hñ-Ÿ“ç¶À˜£”‡1Û$­ÍOi*‰‰Ú·»%½sØõ‚•…¹ˆºÞ7p”´”Én“«öL|g˜©Æ*Pi”Ô‚š´–…%íôëE¦.Ñy®õiB‚_Œ%D’ “öV÷KzÝëœzÅ·\‚ûe=ÑÕ¤¦f6ý•õÖ-®-ûܟܱ³imÉ qÙÜ9ØÄzsÍHSŽ=ˆ0†rÌ!%«T¤+Iö‰!sĈL„*¦¡{äE£¡ü²6“š1›kv¬Ãƒ]4mô¶À€L’}g¹I™±ìlj)›±ŽØÜ=¡ Û´”@Ò\<ù~ uŠ MÅ›¨qcqàÂÚ¼ $)!{¨ˆÜ‚’|Êi79e½èÃît¥’…[¨l\ß•LÈð‰÷šÓÚŪœc²$cCÂÐíêq†.S©V«îÀI*P#‰”‚O¨¨6™··„·zt•”èH '™Û­@ÆÝÃÕt‘†…†HYŸ™ûÀøUvõÏ¡,©›& Œcw8ƒVL^¥µÜ8”©e BŠ1Îäü 8œ¸õýÛëN'‡8êJVæ•%@¯m£ÓÝTx?³œNØ]¥Å°\Ä ¥'ÈFóWŒ ç\,ØÝÛ¶Žèw‹RŒaA@ã`v¡;î+[a¦òÍÂÖê[¿²sº /JÉ@;m¿#‰ôàÓVX×6]ú¸.­(iÀD¥-ë*ãŽ>ud›| Þ°ÃXUùuIHrw B¡Cq¶áQ×oZe)Á[i ¿g/eC€£¹;ýƒ‰¢Èz‘Àn_ÄWjÂÒ”¡ïxÿ0P•Dùø©Ël¹‰=ríºH-#Z–·!«¶®$jI>úqïÝ.\Þ‹ ܦÜ(…ÂA3ÇíH¨8±bÞñVøuÛ[iA*Ô@*ØŸ‘|&“In4Ø›‹ ‹lA6/ %òQá'`?ÚvŒ›(éKVê:T­ž 0Oñ÷V¾‡ÍÅê»yÅ•8’ë„ø¢@'ß±+óeZÎ#Š)ŸSŒn£é&|>ý^›‰& ´7e–/KKUųIqÆÒÞO…Sãpükk¼$¶¦Ãa²â”¥iH*|·AŸ-ªOq—šC‹â¯Z hP ¤,‡‡ž› Œû¨B°´Ý klÂúlI—R¥TR4ñ°$K­<¨3W‚Ý3‰±‡Ü:Òy°¹0™ÁÈü©Õ`8Š.˜¶BPóÏ6§¡RHç€v˜æ“о¼<0pÜbåöÞG{:ÈS`Ç’Dõ>uœ_HREõÌè‚éâ‘WÌùÔZH’l“so{…Ý >…[ºéåVVX2«Ä6‹R…j))N­·?~â©o/.nÊ\¹yN©¶‚O@8oÛ[[ ±.?pÖj¸·KcR^¥D%1·'~ƒ¤r6ŠI’»EsxòÒáWt‚ÒV\ X”%$Ì~ðú†Œ+~ÕMZ:ã+$%i LýÇäjÚážô^1â»6Ù*K…`÷Ž ¤< ø0*uÅÚPÝâÛÌ *îÞC,’ ·ßa¸*ñG¸£*‘£:ADÈùÔUVÔî]AÃ˧¶ö¦ÙqçYÔ%CeJc×TŠÕt¯Ôq"„¬E깊ô¯Ñì(dܤ+¿VÿùŠóJÖgQ“^›ú?ù•‚;{ÅüîþÈIF]Úð4•Çê|©B:PIò¤™ IQPÒIi.…8‚…¡¥$ò•n 8AÍ$ÀÚ¥p±€WêíÆæ„‚H¥n¥‰Ú>4&kϸ:§;Y¶@2¦l&‚¯¾½ɯ5öÔî¾Õñ"ÂÜ;Ÿü~4C«'sšåIV+j“035¼b*W´¶’9æ´ÜžÜbvëÙ^•µÞºTú€ØÌûª¥¹`ÂÕ *;ô¬$øe'¯4§7yäV5ißzb$•B¼öëIÔ ôÎý"’õH:и'ny¤•ANÔâÌ$A‘åM6¢yzÖ\'LM 0`ž7÷ÓkŽ Iô¬ë°£ÏXÀidŸZÊR½ô«LÄÅ%à ڒH‚v™"1ûf_±t¨»Þ¡:Ú L‚G ï¶ßuj¼Ü©µH* ßßçöV‰2ݽó̲¥­´ª¥§I#¤Šß~y½· ¯>ómY‹Ákx·]-¶†¥­gÉz÷ÚP+ê|g¯®]”c7y²ü«ß¼Û×¸Ž iur¶À S«e*\°ñ·N(ŠT|ë)XZH<Ó;±o}0ÍÈפª¸“’Lôê›q ¶•ê€dÒAÅ*åZ“ªv^nÕ~ê¦RIš ›E>= 6¨€G–ÕÉûSÄÞ²Ëw÷ IWvÊ„ïÁ®ŸÝ¥r„™æ¸_nw­§(b€¨x˜P‰êk2W’798Òlò­¨ïñõ’u¹'×zÝ­Ì(8§`i Ä›‘1½n6Ló¯SÐðÉßR—1ª\)ž+]tBÍ^ck%õ7ªG€gz%±+Å:VRÞRALÄÿ©¶Ê¼iGNE;=âà*ªT7?ÃÝLCa=êü €6»]޳´vS‚#Í"ÍcÀ¬üÅWg7ò6uÅp±²m®Üm?»&>ȨfñXÑʵ(Ï»6,!z¬“ç/Y÷ªÜ_ÉÔâwÞ¦TôcR}Ý)iæ Uò¤Z-¤Ý4§“,…b&S;×Q—dK0p‡›!mòUIFè‹•Žj•BOº@¬‡!Q×ß]Âr>%’ñLW-2óOaú£+ÈØ…O"kšHˆÛÐÅEèì(É1/¥“Áéë5$|Oê• ª­·ó©K$8žšLPK¡­Ùº‹|Ó†¸¶›wùBR:ul‰ ™òÈ­ÃxžÆ®Ü8Ьœk%/J•ja$úÄV“¥ Çðô¸ámí°¥¤IHÔ$ÖÛ€]ZÚöO®âÉ7¬ÛãÌåÓ©§'ïô5e7dÊäT,4Óöì ÓiqÝËÈ+·Ô„­K’IúÚ‰3>êq¤©wN2sSi¦Ôþ¤ÂŒ‚ r‘&'b&«ǰuw)F_m¤µ¸Ò ¢UGôFÜnO;Ôv±\%7oÞ« —^B“ÝŽíµ™=dít«.FÅÒÅå‹@áøör­a]ËiJ ŠÔa*‚6ñýÃ"›ÁžM½Æ&«ëgÕ vá úÉS„=?[ì>•ÊØ'v¤~EIÔ²½Õ¹ñ¨¥3ÐB Ç¡ŒKV›[¬9Å(é%M˜)TT ;í}"•¯ lPîzïÍ?¾UÞã…õáo!…) !± OƒIÏ2&|äô‚ÓeÃróîYÜÊHnر‘¾¹ž'Ý¿1܇€wÿ–ì…°l¾nï'N©>•¸)¬}vÌÜ—ðµ––4º§§” T¤BSðôÛO¼8{xºMš]šæ­†¨>§TU¹»ÊŠVÎ$¤! £¼ÚJ¤vl”Y‹LM¬u×%pÆxû ¡Hî‰Õã0P"Nâ#n£­<ʱw^möUf»Õ$[ÛIQV…!Jßr?[€'ã4v·˜²”ÕÀt8ÚÜQ•@©>dsP=iÌ%ì‹u\¹qp›¤2†Ð¢“¬¦AôÜϸzÔ¯ÛÿÁX¯Æ±G1 Ôºë 6¤ !ILn IQÚ7$š„•4¯¬ :O"­ÃyuËçžq÷š´  áV‘;‘ÎÕ·²·¾ X\—ÛIÖGS¹ ­¦M3i>ÔÁh%Å¥3É‘µn×nf4»wð|5²è†ô©_¦H@íº†æ6ëÒ´RÙ}¢µ”'P•@ãÖ¶¦†·•«Äe-¬)D•©ÅÊv#`Rñ÷T£°˜a÷x³®;si‡6³h°½aÉ÷ÊxÏ?¬6ª-¶+m†©ÛŒ‹ßÊBÕ©[j)Ÿª|]<©Ë7­J°ô5Š»if&á+t6­kú¨àøÜI$Òׇ`7¯%hÇÔ»§Ì’¦àk*VçìûiëÐzéô¿vûÉh4—]R ½Â–Ö£ÓsW68ú”Òñ¶ã–ØÓâ D ÕåÏÙëUš‡–”¸•%* $yÕnè’ÜïqN¤}#Îá;a3V«&? ò‘Æôp9H§2cNÂ’°@Ø}”ľLj Üj2Ô:¨Rß ò¨ä+¨54&*ATI3^¤ì9/õÃÞWö®Oá^YÈ1^«ì9!7XJIøÜ8…2ÇFp+ “XI'jÁÛ©¨ˆÜšLÒ‰óŠÁ>Tî+ Þ8æ”nM p<Åe)\htÇW–{dx«µ Ê ¢’Ý’’ê;´¦>Úõ0;æ+É«¼Ú&sp‰†ÔþÑ¡ü JÃ!õF¹“Ìâh b~U°_(‡A#~+_ÉÀþR@IÞ¯.*PÔFÿ:­_„DÇ]…!DªY3×Ê$é1@ê$ &iOܲÂH¡ÇœShú±÷Ö¡‰¸ýî&¦B‰ZR:Spfñ— PQJ§ÊåCPé°µ;,:âÎ啇“¨Ÿ@â¶uêIƒÈ¢à(êˆ"›_MÍ)J$ó3M¸|?… 0²c𠹕(ˆXYOÒ•ã=kxùR¯RÊŽ€Ï°û"¯ÜXüj“1iï›Ò 3ö ª¯¤@Ün×ú:a–,!ô»ƒ^ÝXÜK.›€QÊt>¼ Ú Ÿ›õï¯ú8.Wcxí¨Wé[Ì.8¡ä•[°þ…Ppº¶I@¤¿·SK+l|+bwmù¨°R|=+Zš’=6«‹5û‡ž,êDÁÕé½I$$DÀP‘V÷Êî*Pð,ï·ÛÉCíê@‘Óþy¬9sX¼º¤h™–öá›u”²ñTlkÉݳg;ŒRõü)SieÒ—¤òGO{wÁؼ´%o¼IRUóšòGÒƒ"Yà×cØU¯rÓ«ÑsGp¯[„„c]9ü¾&n%VrÃISùü?—’}½+#m'zÚìcÅéZ®ÿ]IÔ>©[fr q$“^„òIhkØÜwë žjžå0”ýµwŒ¤ûB¹:¨½ØQI°ëN/YJZR$‘°ÿÞ›l”’@ÇQR4¥L¨‚TñXÎÝLûâ˜ÑÒ¾Ž×ùQ·d¬í©m¤i?ÀÔ/¤M˜²í£oIHuM:6ç[H$üɨýˆß‹.Ö2ÛÏ.vä0£×Ç)éû¶¦ ³íŽFÝþnäû‚“ÿ S$ÔÓïsvdðÉvf“—×úž*Ò©2úå$zU¶¡Áš¸É-ÇN% €¥Þ‡e™¨'P6 ÿêHûÅh!DqÒºƒö‰Ø7weˆ^5n´‚Úž½Ñ«Ü<ªI&Š¤ÚØ¶F_¼Ê½šæâï[¥ÛĶ–Ї5AzÎޕˤÎþêÙó¶,ZmyË—í¡›Žõ°zqÁøV¦y©=*-ÝŽ+K‰2Ii§,Œ8¯Pj:Ƀ·­9`¢0v#åEÆkÏ8µ¢¦"áNß­<ÖÛƒ-öqœ-—/fµ*7‚êÁ3Zn.Cwq²V¼MtL˜•µeíìšI}«Ëe!«ÂUí °˜Ï&¥SD$rô²Ç~Þ…‚‚Hâ>ýª^#g`Ûm*Ù𥒵CP½$”üÀùŠØžEÏxìdö]Wxàq߬²dz'ËÆ éQmÐÒõ‹œ°µµÝƶĩ*îÓ´ìCæ5yš‹¦ôÔƒ‹m;‘îðœíö‹¥–TÂ\wÚÓ¥Mõw ¦s©>{CÃ0‹{·nÛV#nßp˜lÀý!'Ôùmp=jÓ-Þ»oecnpom(èQ :ŠO"“õ>ñ^UÎjætZ³N…߉äí¾Ü™1¶ß3VYl``àÜ gq[3¨CK™nBI'Ý|Ͼ‹<¶íËkX¿ÃQ¥IHJžÒTHÎ=ôõ£VN„¥ü¿|òû´ ¤BJÉ㙳óCmÛ¦ÍW¶Ø%Ál¶[ Rd£Vä“…qæzT¬ˆ]ˆ^[T¸„Þ0Ïy­JW†S£aÖ||GJIË/~™)¼¶0¨V¥@‚a&|É €|‡.á›°ú-°{ÅÝ¥p'JgH ’cÎAª×­Sl§wAÄ)A ,)¤¨×c¤GZZ 6ËK|£zëêd<Ò m¼U¸I Z`FêÝ#>±Qðܽsx\oWvëoH(%>¾!ósòš–½¥çÂQÞ8ò•D“÷Í:‹ÛЄ ¼ãˆDâÊ'Š4¥‹w¸Aq–’G|Z@Q *"<@GˆP m¾ß œÝÝö”>Ún !m©P NÀI1á:uW5™ }ô…çjãɶÏKئÆ–õ¥Gq¨°û‚—“¤§cç[MØ:$¤?:Ô±–ݵºMʼ&6+%E–W:tefX©f\nÄq\§é~WÈØ¢[@ZÐÖ¤Îð¤î#å]RÍAä%ÔiJu~¶çãT¹çEÞ tÊÐC(+VÀ )O¯؜âšqî|ôÁü7Ít’R~U·ØÞp+XÄ­ÿ&æ+«R’=žéHq°Q~±Y+K©3^†2¹ã'­Ä ¥Ó ÞzÕÚJ™Õé?mm9’¢HÖ¿pØ(Ztð<êHÎU²@Q“:ÿ"Ÿ!´)+HÔ#t«ÌyTP<@:’²R¯tù¯O?:`I±º~ÖòÖòÝZµq/ ˜ u}àW]ú\^1‹æ\¯[Gsˆ`¸‚<‹‹T|5×%´a¥)IKí‚[ܵ(ƒ•[fœÁùc&å|9ò}£EÅ®æIiKK“ý¥§Ü‘Qjöô4FiBQ#åÓâ‰ämWDÊ@ª¾½.ƒWeRg‰ÞÊÝ…| WgÄq¬B×>ål*ÚåÆl]¶d­¦àH#t â¡Dû mø–m¶ºÌ¸,Ý£ÉNË-º“¬ îDzU°–Ÿ2™ÆæðqKìa¬ù‚b›‹{FÜrßPݽ*$·:ˆ®@\0 ]C4gÜ´¬g/X­»ìU$\:¦ts±RŒF'ŠåZæ:T%¸SV⌙yRìúh_:eõ”ÃÖ³b¥{G¼íH™Ažÿ–õÐrq¶SYù·œp°mXye²uß ’" øŽßmhñ÷m*…ˆøù×BÈh,b™½‹gSŠÀÚy™AV¦&=Nþ[Ô¡Ô„´5kµaåj4]¡ ¸Ì)E´é¤ÌnHÓð“YÃ7Èö|Ï¥ò€”—©¤yûÆæçµN¾o7O§ó¹Xpë¹PI+A€®‰¨·‡}ª š/ =–˜u°°’’¡ÏÀØŒó+úþ{§²@rÎÏV(KaÅ$)ÐCk ‘ 3>¤UÛNÝ) ŒêÒRXRN°B‚D ò>ݧ’+0÷n×…µb0±pÞ·– ˜ 3>EIˆÜüªn ¦®í–Ëy`¦ñÄwiTÑ€Ï)Þàu&Ÿ@d<*ùë›u´î0¦ÒÉm¶ ºBt A“ÔLp'šu7Ù^ûŽ­V®²¥©Nǯ†8à.´wn-XgÀõ&Ù´·Þƒ:BTBŒIP=z{Érá‹$,¨e·”Ë¥ d¶µ–ŠLjßëûSÌú¿©Kâ­Ù-V¸“HCˆrVSÞJ€¶™ÛÔë »ÅmKŽ9ˆZjgWtÐ2°¤ DŽÃ¿;¼V¥ pwØèl¨%$à¿ÁGÒg¤TE7n}G ¹i*D4ˆ'BÆ’©ëG3Í Ói‰á¬©äÜZ\îeJ[Ž8‡ u0yói ã¸Ýµ£Ú¡,0¥E“+LŸ~¡óõ¥!XÏ”Œ>ø?ߨ¨¤]DáØÇÊ™K˜bBZö7Ô•8Þ²¤’R·$ ù#@Ú7R¸ÈéÇoRÞ–»´ˆÑ ;Ìéûk8–8þ R›«v4! JP„” D@VÜ‘·¦ÑK¹¶ÂݵdÙ³xÜ÷ï»âJN‰€êA÷ª×Úe ¥MÜ%ÅÊF€‚9HW_RG–f4‘›—™wù›T³ã'e)[ nzùÓE( …¤¨“·• ¥z”€¤ÁÚk¥@æ)0žb•;Š4§öÒO¾”„Ìî#¦â‹€¶•ââ§³ FÛT4¾`üÔ†u§Ã&EEÖB@")30:šI©¢DùyTF8&DùRTGRhÔLÇ’™â‹‚#\¨žj)5"äŽ*15$& äLW²»/„`©0c ±O~€ã^3ó÷º½¥Ùóa¼(ú¶Ö‰ù[7øÑ"ÐÙŠÉ&6¡ RU©&À4•,$l)‰ëµ@OMزR<…$¬t¤GZ5zSmì,FÓN£ÔïQõŸ*R <ЂèšÒ’“=Ex‡0>µþXp®1y>±Þ?Þ¯k„4¥¨ÀJ ‰÷øWˆ±.óò 0Cø“ÊD’ïU‰xI+“rª@eõò8©n+ÆA‘ÔoQ²ÈH³xƒÖ–I‘'ßPC #nf³¼ΚùQÖfhw¢Ùj™„ïUÙRÎÞâÆáÇ­Ò³Þ@Z“ xx§=v©wë)ÃÜ#'Šk&2§,-Û­Ç’T´@äî'áÅ€g/îùÀ )QåÍY¼HYÜyíUy|©Ë‡ÜVÓ&§¬ó¿=h ùâ‘3ÇßD<éþ´ RŒJmjß}½Õ’³§~|©§á òºƒ8ChH0²¢¦4A$Îõ]©$¥'ëFÔW^úÿ£‚Ý„ö7ŽÝ¥´‡ÜÌ.6µõRSnÁHø«ækÀµôkè ‚' ú;Ù_¥Ò³Œâ7WªOì¬[ÇÉ€~4ÑœRGZŽãÉk.©P1P”³¨…|ë-]Nšd ´­%'ž‘PoìÒûkJ’xßzR]RWÏSáE@«žžu[´–¥™\ѪظpëŲò¡²|$‰«LA->Ò:‚†Ä‰çŠo²KÈR€“ÍA°¼=׳¾xŸªxš£¦VjÒk2Üñ¿Ò‡-=þRe­ _¤“ÿ˜ÌEjkÆYr@$ ôwÒ§./ÊÞ°…)Û5÷âÈ ü ? óö¦ÊŽé2¥u03RÊ÷GšâT²Vmu6käw¶ht <­~é!B'­l¸iZ©³¹]~Ô(ƒó5¾Ç*[šEÊ4>´ÄA©ˆJT€¦R B”R²cQ÷yÖqfW!NH9¦me-ë"æ|BzDÐDu¶ݧZT5"H€A˜?yøR1$!*l¦ ”5)@í;mðßàE= m Þ…%ðw![GHŠvæ°Øð¿ÕéþºŽå–Gx'áy25CƒìèéWR7¡lNB‚«ªáMdì§”ð¼GÈßâ-—SaÅi1° ð€ó5Éço^•Ó±Üû6d<»ˆ`È/Y0mÞa+]ÓÖR>¬ZFéÍìO~Ë$ç|"ýx0ÜVÕ’òR–ÂÀ¸¤ƒÄÆÜ×$Ö²”‘>%WQì§-cX&'{‹cVk±µfÍÐCÄ,˜'`L3\®AßÒ£+_@a-JGžô»¾ü±’i—bLšÍ±‡g~”‰\«ÌJ›§·Ì™<ÖñÙsk¹ÇñÛD!ǽ§,©!I*Qî›:DuØÖŸ˜®(U¶´÷(p¸R’“ɉñ5¹vDÃnæ—˨$«/-M(,…%iBw}*pÜŒ¶ ^e⥭Ïbͬ•þŽÜY» §J§ëÎÃoÚ>[ŲÂ_júÝi¶X#Bœ¶ru(Á”Çìúr}*ñxÎ0†J‘ŒbHðÌ‹·<§Î´¤ç¬âŸÿRâ±×ùJ¿“VëùîE]–x-»Vì¸Å똛*«ZâQ¤iVÃ’ç¥DzäÜã7…çofC$‚‰HÒ8Ž©Hù @í:ÿRâ'Þìýôó=¡fÿÌ7F)’Jºtøü(¾»þ{§Ûó؉û*ͽ³›ueÔøGëju%GÒjFë¨KaóL¡°ƒÝ<©JŒ©’HJA“Ó­z}}™à'œ'>ëWÿì¦ÑÙ–—CˆÂ°„©(Bÿn–a¹Xó"BŠw‘±¬n#¥ziîË0¥¯ ÂÔµR»ÇÄ“ýjaÎÉòÿLÃátøþ4f+#Î,è×.(ï6Û¯ÙOÛ“Îñ^…‘` ßòM·Âùáü+#²L$Æßõq?»JR°)+\à!D/})N⻣ݘå¶nZ¶]¡Cë¥YQÀÿ³ÚOS†û7ÊN´Ë¨T¢ã_p¤âÂÐ \J:AŸ(¥­¯a)&pùò¬J0ߊí÷}—e‹t´»Žý”º56£Š" Ž ýjB{¤([âˆ#pEóF>i¨¦ßO°ó£Ï—ÜÔ”½>ÀÚGóØD+Ú¹<Ú\&~ªÚGɆ…r3Øvvïq±´rÁþ5Øòû/0Ëåö”Ê|­(Q„éJDÆßªjM‘¾m‹Xˆ¬)` AYàó RL|A¯!búS‚`„¢Ë«W¬º ?ôÕŸ°œ}K< Q†-]J©A^ìccMá'N8‰¤¡É?}DøY '¬õ¥'ë Ž•ƒ;O¾¤7:BŒP´áî˜éÖ£å[¦…»¶Ï©í&JBx­È敹$u&)y[º¼Âo1 nì¦Ü¢¥€A÷ÏÂÀN_Ûêp*ZÔ¨¸>¤Z¸…óN©q¸ùÒEG~•½dsr6úN­ú=èÅÐÍ0ò‡”µmL8­ÆûЛ;ñUx«„Ü”x@V!{T· Öú׿hºúÇØ6Œ ±\™…Œ8áÎ5‚ZªâÙMÔ‡ÖÒVî¤ÂËŠYTï$Í|Âì¯*\gžÑ° ¥nÿ9ß6Ë«e!Ki™—\ìt6¯ê××*ço… úTK’4zÔ·\lªr UÍqä{J~¤7^­‡"Úí)D)\q½D¸VÐ6*ˆó©@1Ö³·c[Šš±ispÚßš§º·×;z1Q•y¤è$š–ÃÅàÓ¤ð Gq“G["ÿzÒé°´­®""¼YžòÕÎLÎ.Ú8’-R”ÂúÇÀí^츴–ޤoÒ¸ÏÒ$/0åg^bØû}”¼ÁH`~?|U¸z¼ª—è÷0q*­Mµº<ÿ„Ü®û+š²Äíu IH);Ö§…ܨ·¥fhAçjÝpwÑ{l¸Ô‘»«SÉÍ~?b¥¶¨\Ö¶ØpF²¾í‰ÞætÌcÔ DqZ5‡¹háu3ÝÌ‘JåBíÒ”»$…& t¤ìHò"›Æ¦íÖ-û©QÀ>‡â)ü–îo¸:[BÖ ƒÐ978Ûwv{¥4V—•¸B½fv/˜ÆŠÜ/gSWsµQáÇô‚­ÁЉ=‡6çV¹1ãX Öp»å°•ýtlR¯x;|j¢vÞ€GŸÆ¤›ŽÄmseÆóÆfÅígyˆÿ'_×Cm¥Ç‘ŽG¥kZ¾~T*"gÖ›'~8¤ÝÁ+!/&AÜò(a^1Å̘˜ôša·¡È“± DlÃ&íSû==Õºö.á9æÍ÷¸;íÿº¿Â´Ìtü.$nkiìL‘Ú#g-_GØíJžäe°äþŒ$€|1½AsÃõohÉþ­Mt¨ƒ°ŠmQ½_£±ZzÕ…áÇÿskåXVâ ´“ú¥*ÛãçRÚ+hPÁ¶A86möé ?$`˜iX#ܳV>êM5öÝïr½ã‰B[PÔ@úæ¦`¸-…¶5dúà[7M¨xú…Š|“©;ǾŸ°WòÆÿŒƒþð§’6½ƒ7C»X‚1GNñá÷Õù„„Š×í ìÿç;÷»*˜÷VIhN+S W‹c¤˜4Æ­éĪ è4µ"c÷ëð×/=Ú‘!Ò@ ¨žõ×k¿¿ö Û6¶­¼êœ ’”4áBŠ€à5ªÑiiÀPò¤s¥I àj£9¡´dÌuHBA^þ¢•~ŒóS§fì-Ùv’Ô6ÇíÇõ?ᥣ´š£ÿæ+1ïÔ?…y€(Ç'qÖ€UÔ×~"Œµmý zœg¼ ¯«˜ðïö‘ü)æ³–UY”æ4Ïþ0¯*jõ©¶Š0} ý¿áVPàTêÊÙ™˜‰$zfþû¾ºfö×íԀӥÒÒ•ê  ’“¸…É5]ie—m˜·Ky’Ç[M©'Ó¤jeÆÔR'b¢´¨Ï:k”[+ $’¤@@!`¸ÖµxAWÛÅylDÕ,DèùÐë`°«…ç^ÎûXô5Ëxv%klÅæaà Y;j=žè ´¶ÉÜx7A­¢ÛÃÃIV'‡ëJV‹„ÌtÅy,“qX*÷|©s£µ¾¿è¾<;O7Óýž¹V+‡Æ#gþÝ-öDíyl}Ï'ñ¯¨¦ ŸT§b=õ„¨ÎÛT•Xvüö$¸[“ó}?ÙìQym§k–úÁøÐmd¥¡]`(ñÙqA2Fý oÝ)kí$­J ²}DIßêãFx¶CÃ9fÛÓýžˆÔ¤‰àq4Ó÷3qoná^·õwd ”ÊA$O¸•q~ßœwó›BZBl¤Á‰•¯ð­ó³û öFËŽºóéSº’¸¨(|ö1MÔWÊ·(žTèF³~chN'jåêìÐé/$¨¤€JcP©„ûéé“UìØ0Õò®Ò§K‹* )[*5<Α>î•0*H©$c•Û°Ûø…¥»Êiç †»Óá1§PNÆ ™ G;Š“gtÕË)zÝZÐNÇI™¬ƒ·¥W_a­^Ü÷Î\<ƒÝ„¦!0´¬(mÈRAøW,íúæç ³À­,/.Y•Ü8µ!Ò’²JI&#ª‰øÕøj/YR‹µÅ&¡›'h[˜?g9J»uÀ»u(* T5/tÏTxŽÛDŸ:óv:•-œ!¤é%8x$¾î8­ý`ÍJÅ1|Më7{½q·) }E*ô š…­mÞÙè0¤XÛÁ÷´“ükN;ðrPr¿QÒžurÂÈ÷xJwäÉ4Ê—¤ï#jX:pæÒ7‘Q×ã$NÑ5„´u·±úœ‡HÜ{ª­½ˆ€i]éJäºÐqó6©ÕÍIË8^*ý£ŽÚ4éo¬ 2ÊÛ|èt3½tl›°¬v×Ù”ñW£VÄh6ì»lá䔮¦»ÉãŽjÇ2bþ[Èm %JÙ)Ú*¡[ ™?}6µñ\¦d ©L(ÈÜ|©Ä«Á°¤–GSQÖ¡;RÖ©™Ê£\PòÊ*‚gaúÕJ£QÒI´ó/sÄþú‡@ÿ£¯*'ícÍ7ÈuŒ)eÂáJš¹¸%! øi7Ì#¬ïºâ_BœŽŒ›ØNtê#Ìçk•jJ¼$w)I=ÐB´’aK^ûÀí´È.1…W?Š&NäÔÛºRü Ié4¦l.JÁ_NEps¶}4`µc½û®¨…Áâ›x8 t ñ½KC/£ZSæ¤5n`H=I¨ØÒ)PÒÌ+»3÷TÌ>ReÏzU¢-&5A"…ÛtÆÄo)4Ðù±zIï MG¿³C¬)0"+ ¶ éÐJDñåRr¥DLmj·ªÔ®qìyG·®ÍNxöiÀØ"ÝGUó#ÿ\˾ö[¤¬ØŽkÛXÝ­½ã+aô‚…‰Øó^Bík)þhæU"Ý+uÑ*·Qáõ‘üEt08¦Ÿ._/èó\W ù±_a·m«ëY ‘µUbØ _A¹IÛŠªÊáµu,¼­)¦ºFÝ\øŠ’¤Ÿ3ç]k\áØç¬d‹›!iÜ9 ÏvúI®Õ£æ›Ë»ìX»v†Ò¤$6”6˜J@W¤®ì›83©xÙZ½+Ï9¶Û»ÄÝ”ÀÕÒ«z; Øy—zMZÎÜ}µW†§Ä|êÀ“Ô‘&ÇÛaYÏzh*²UL€£1éXR„ÒIÛšCŽ@Ú ´—W()1¾ôÃgÇ2$C®ø€Úcx¤[)& ëé@…ãj:‘ÎjÚ;*g=åwÊ¡+yÆ„¾-ö«VÆ7îº?Ưû,p7šrÓ¥diÅBcß§ìßïó©ÓÒB–Å–,Tq €£ÃªOBˆŠ§^/`•)µ¾’`&®s·âè.œïšçX‡ý~ãÿ1_}MË*H®*æÖ1[ Úå#Jü¥b¯ýé¯iuI:€#¦òisY,†ì›û(ÿ­3ý¡J–‡hhÿ\V–Ú™qdîˆç&š©s•ö.ç@bòÐ8•-öÈ`,oO¢îÝËöÖÛ‰Z C™\å “rx"ÇSxƒ@¤‡RwóMUéa´òØõ•ª‡·4&Lçþ“W%r+_´WùÁ¾?ŸXÿtÕÂ×Vyn$ÿpôÀ¥!BÔÆ Sî¡*„óQÓaõº*š©Î‹ÿؼpý=ÿÿƪ²™*7ܲîPÇ›iÔ­H°}* 36©Ö¥Mx’v<Â8扤ƒî£­{=,f°°jm©”‘ý÷Tš—f|QçµkÂJÕ ª¯ »àÊá¡`ŸÌÿÞ"µ›¡²?tUöZ?ÈÉæ~i1TWcNO>ÓøWÏx¬rq*«Ôôœ_%Ù‘äùÒIŠÈ‚ š¢Ö:QØadÍd© ¬t¦N›³NÛõ®ôyîWû8{Ÿk×6Q‘î®—ôvLæ|M³aïu5(-LÜAÿ…–ý´~—6´$ múò¥þ5¹åk\A6ëZ”Ê,­ÈÒæBµ¤§‚TTžxJÓûQHw5Ü. ·i;~ìÿÞp G»c Ã;¤iK 6TU ° ~ÏßTR©›4º ˆÊ?ñ´"·&ávøƒ8½Ûϼ¥[)!%[©ZÉ$€HHãaÅ[…oÈôª\8“· ,wij N©Ô PŸ’gúÕfÖº:Øóqvd•*5Äþ’N+‚´wÓnê¹óX»&¯w—5Ã>Î%YªÁ²çÔ±ãÊV£] ¦2#­ä9n Gr¢™‚v¥f©F>âcvÛeû­  F&PR” ˜ LùÆõœÑ¶e¿O! @ß 1ü+WžlOÈXuá'¬blpb¢¨I$«¥HZ´²€w!"*2–Iƒ>µÅ.°¤‚$Sdîy4â¦wOJoL«‰ qzu4µ­IdóÞÉNÆ !K•FÛzÐÉñM­ÏZjdzÒŠ÷zУsÌS„"™A ¥,‰вšh¬!jè&…1¸¨—ŽÉîÁØs@ -Ek*<“[Ç`ýŸÝv›ÚŽ•KÉ´yÞû} AbÕº½A* Q• :Ö€y­¾}{.{)d'ó¾0ÃIÄó+m®Ð‚¶lG‰Ĥ¸N² ¥-='nË6ì7onÒe¤„6Ú”$°t¥ÑEq“  çšœ‡LyWÛPÞÔÚHÓ¼íX(“ÅpR±ôY$õ$„¶ÏÕê)EHRFD•^·õ; È'ÈÓÌ©s©Fè+‰ÅîLh:¥ 'Lq=)öÊ[Ö“jðÛW>½iÒâàßn)§¡L¤ÛµˆËHI;éM<€P8‰RžHï’i‹„ÂÀÔ$‹#-ŠKöJ’N¹æ¹Om9yîZ¹¶J_@ÖÂÏê¬nÞ>5×ï>¾àDíZ¾f³ 86#Ê©•ãâDkAT‹‹êxŠÝå¥Å²âKo6­+IèFÕ¹å Ϋe¡›•ÊFÁF©{SÁÝÁ3ËkOvÝ‹Öît3õ’~3î‘Tl¼ºVã¨5èèÔÏ5Ôðõ©òê8>‡{F(‹‹Cݨ*G ×,ω7kp&$ÍWaXõ퉄8T“КÇ|~(©É_TTQ0Ñl™æŸû)²­K“Å^¦1dÖ €šARcΛr9MHC…Ñ é²àX0;íM%RO)õ¦œ:ð’ éAÕ’‘Í)%¢”éBáD¬êHÚ óÔÓ :dÄ?Ze _y*Û­LÅaL³¤вÈΡ¬S{AIkhÈêe?ªœAZ˜l“ÔÕ†WuÏem QÒÞ%néxÝBvß§ÝRŽäY·fÆ–¼ÓŠ¡´Ì]¹ö¨×7ÅRSˆÜÏxk£çGÜg6⺮5}Çø×;ÆÔUŠÜ(õTý•)-œm¦ä*(¬ˆ‘;Ьd›2ÅΤ•'@$GëÆ›*¶'ù§GúÁøVmÏè®G›cÿZi‘Í#•6_aÈbÍ u(W| •+r™è6©·Hnñä©à®ñ*éþ5æÈq:uD’LÔ†Ðèrt«c¸îjõ¢±W[žƒ±$_6zÚƒW)\“¸uPØ.`Ìˉßý]\ôª%«,Ž›k?Vv¥(ȦgƒYÕ Þ ÇÒ¨­fÌ<[àŠõ.€ß m´iLé'R·Ý]'jØuy ©ÎJœÿ`ÿþƒR‡šâécÌ=(ŠÅd õ©õ3™NñµL¶B‚Á‚:Tv¬m;u59¤›äÔ×KG;ÏÛó±EY[C`ËŠW±<àõ752êÒH„­caÓQ©9h—€ØI¢b§ô™ ã^ ŽÆÜJvëcÑñÙÿ†¬_rT´jó°­·•¬V:¾V6÷;|©ž¼šuF<¦‡ƒ=ËEµ8\ƒÞ$7ÛIöæ˜Þº¡øy®¥ôuç|a~VÍ'æ²…r¯«ó]oèð”…ãnj$éa$G¸jQÑ™qÒ½]ç6ûÜ{pƒáJGÉ´Öd[·¶ÔÊ®n€¤Çˆ”þ üGj™ŽþëZ¦5ª Ç øVÅo`–®ÅÊ]QܯB’ )JVAõJ=7ørxtÔñUšèÎf"³•8G±>ÕÛ'Vï²J‚ÀwB@ ‘;ìYøÓáG“ÍE²e,!ßœ[®)Ç $’zû„=:Lñ÷×n2±‰ÅKR.8«³h=N÷ÉTé@þsc &vÇ•qÞ.g°“2‹Rw÷?Æ»±QžHø×Ÿ;ew¼í ù2% ²w€W_ƒ+â.º"ªÚÌÒô¥Ë»f×% u û¤M1Œ,;Ž^87 ¹Y¹Ë6žÕ˜-HmaK3$Y܆õ¯Î»Â¢fVOÛK‹Jø–[GÊZ>¯‚D lûÐê‰Q3I‘1Ö¹¥¦dG‚`V3Ö°³¼’(GÏŠÀP™ó¬(|ÅÛŠÂ’A+ Ýb°­¸ØPÞ *ƒ@Fô…’Aóô¤—ó¤©a *&}}Ú#õ•ÄÔ#¹šqå…A’Tyòê¶È™_ι» ÊØüG{ºe*0”ìJ”£Ñ)HR‰è gCú*öF÷k¢!‹Äi˘V‹œYÉPïO…„”îáLˆJVAúr”€àV¡Øæ@Â;4ìÿʘCmáw—oI»¹)Ç” &TFÀ“ HØ Ü(¢Š(Ž>”Á*zT5¡JQðˆ™©—K—  ªTR²¥ªHçÖ¸Œ÷Ô›hmÖÓï)§Òä )ûk¥ÅÐüë#jƒF…¶¢PùRˆJ€ýèMÁ ð¨ó¾ôÚЄOwâá#§4â|EB`ý A­KE³‰€±àïÅ)Å—B€Ò#©òª´…•L‡_:XuzŠTt‘ÐÔnÊz¼Ý• 0`íZÞ.à<Ìš¿næTP±]&µüËh²ã$ƒÉ*©½.TüÖgí{)5™ðw’Ú›¶ ]»ŸÒŽ¡ãå^n!Û{§,¯Ò¦.š%½Kóª¿O#ÓÔqëŨ¼·›P… ˆ5ÆûoÉŠZ9dÉ. i¸ Y#õ¾umÀâ2\ÓOAD}SÐSÉ'NüÓ$<ýô›Í¬ÓTSØ*ÒÝ¥Âõ­.´£h¹ÿŸáQn ömöÞ§e¤¶ênmœ'ôš4¤$U&7ò’?äS‹ÔLܳќÏxµ :ô®#ú´ hF$ï¬}¶ìÑ‹7u‰›¤Z]‚¦Ñ¬) ð D k·âÎéðò…ÀR€-ÀSz¡%bšŠ±¶&açÄ~Ó|Ò=–ÐÄ\¸'Í£P°î5c7 1»P?´šC„¢A©¨³³;*ûHmC¶VÇŒE¯ŠMX&‡0ÜY 4–n›RÒ‘ Ryʬb¶mƒÜ°µ:¡L$U1°j`_ÛüI <"ö×⸫¤ºj'¤°ÕêçÍm‘þήõ·JÔ0¬_ ,ÚF#i¨‰ò`Ö¯Æ'b¥@¾¶>ç“øÕs„¯k 4‘b“ÔÈT˜5 7L©pʧˆq'øÓ­º…ª’O¡š†W}‡²$êÓ´ûª¯8Y?æ}éÛú¦ë1•kYÌEx.<—Ðç³ûÔØ ODi=e$Ï‘§ ¦G¡çÔ‚>F–â’à+Ò¡ ñ¦Ç£²O•z˜ÈÌÇ *„ó[.Y³jÿ0aÖ7(ïyä¡`Û­kv]æÆ<ëmÈßþoÂ|B} }ƺøi[ RI³5_:GLµÉ¹zËÄÚ]kR¹/˜ŸZ‰å\¨…'ÚºC®*Žü¢@G”VÅ‹—vÛ) um¨'P  zW7J¬_¿Ä×{l—%M(,äL ðRŒ+K=[·ñ7F´è_•,·ßOèÚ‡fùuA0íðÔ$~”qòõªW²ÎFB”‡1kÆÔ“ʺ36ÛM¥$·¤26 øWÅšÆn‹++*Iî•ÌAoJ«•Nï6Ÿ6hXšÉ+I›r®(…¹c‹^º”ANße öw€«‰ßÁè÷ùÔÎÉ™»´Âoý­§QP)*AN­”O>ñJºXR>¼mÆÅ …6úû°ý]u´ˆã²ìL†/v¦u¢ZäK<#+*í›LE×ý­HÔ§[%:€ˆýãS/[}ü˜k=÷v•ië±Ü|«Ifîõ眰fÝå¸vI)2¯ãVC$›·©Ÿ¬ÒŒ™Ñï,ú® ®{õ-DiâzTÝw >ë˽:V PSû0?£¿¾i‹Ym‹vÜ:”†ÀQó T”©û ã]ûhd~•ņ°òia3NšÕï®ä%7Ý+›.v¥X…¤Ýé$w’G¼˜øTÏjY?U'ÖjŸ mËl;»[¯HðéN™Û“O<§5³Ý’•¿HÒxøÅjƒÍÈ”ã~¥ºWì§Î¹ækìñÌ{1Ýâ¿•’Ç~ C}É:a s;ñ[ch½(·mo!µ†d{ý}Õ*Í/6€ÊÜ’¤ÉŸ‡Â¯£Zt%š“³$Õô’8¾%ƒ\å,ÝajÕÕ»êqÜSP”‚¥s¿>½s«q/ z×Sía7gt)*Hîðõ.yÒ…¨˜ÿž•Ë-¿ŸG¾j’©,ÓweI+"c„ÉÜsY™â"I;ïJ߯Q!S‰¬·Õ4Jxb°IÜM óëÅ ˜ˆÚ±1¼mXRäm@0w˜¤ÂÉŽ($! ¨û¨I%)• ©«‚HŽçõ|½M:êƒ@)•»7ýï3éóò£ Ãîñ;®êÝj;­j;Ri6’»%Êo,UØÕ…¥Õýõ½³×Ww.¥–e²·ZŒ% HÝJ$€Ü“_K>‹]ˆá“eDÝ^°ÍÆnÄ”¯$+ºI2-Ú= j®¡$Â>‡Ù—³¼ŽýóÙƒMž(–ClbˆÃœsRA:Ïy­kJ׬ )BÐ2T¢+Øùo1`¹ŽÈ^`¸½ë<4¹Òb`އq±Þ£‘žÌ²­ ”¦¬ZÑE2¢Š(Šºÿx ž&74ÊÁH”'¯‹Ö–R”¢Dú™Qpw€!jtžÛç\[ô=ô#ØYT©IH“éåNÈRÏHÒ8¦ÛmJN§€ .µ‚dÆÂ¢Ë£-lJ '¤+ Bu{”+ ÙIñt’“¡À®AéPh¶úXX˜FñçÖ›u%iÔ‘*:ÊHN㈬8à‰FÄ â²ýôÒ®Òê48H=i÷ T½ ÈWÈÔ+Æ@%z¼qP”m© %Ô¤Ç0З=¥êDñõÅR¾Å¶%l¦‘0B’G>žê¹¼¼u Pì¨ ¤ò*m÷¯÷­*à(mµT’¶†j´\–§í³E[­×ìRKdêˆúµË•o}…>¶Ö ÁSkN¤/ÊG_á^Å]ƒ5¥ÔÛ>B ióëLM…®Í¡¬‚{²"¡éZðøÉÓÒZ£…_w±æö’Ë‚-]î^ënê¶?º¾>=æ°¹mÕ2ûjaÔ줭0Em›$^Z8âPÒÒ´Ïi…|<ëTUÅå¨öK¶CÍ'†ÞNéýÓÊ~»«Bªº9U¨N“Õ5¥.x’ ˆž°`ÒJ”˜šJM³ƒù-Ê™Wú+ƒ·ÁccñßX{¾`§ÚR¾ª†éW¸Â®(8žk$íµ2lÄ4 }AøÐ!e@ŠH_H{é*‚Õ†”R±©Àý_ã@ZÚ›·Í²vR·Lõ­Ó%eûœ2íÛè^²Â•% R›&7`¤üGº´F^u‡’ëj!I2=+yÃ3ájÕ6Ø…¢T¨$xT FÄÓµÁnâ— 'S®8T¢ãÎØ2¢è‘±LBx£“ÍWªÓQ*U¶¤ž°”OÍ$VSžpÎUnø÷yÛ?Y«éµ,žˆ›•Ä6ÅâÁWûÖ¹ÊËv£V§p‰!hŸ“†*[yßLkzEHFxË*”©ç“åú:2¿Ë äkjI+ËøT(lQuv’>sKoÁÖÒƒØ#=æÚ{¼MÀ óõš1Ò¬šÎYd¦ âöóE<ÞlËRoS¿šhÈÇr¡ì/x…«Ò :qdö±M·€a*ÿá‰2®˜›$éø´7«ôæL²¥»f Á§ÿ.åwy¼µþ}(Ëéõas^üØÁ–á?“î´µZ«øŠuŒ™ƒ<«[Æ Hl­G ¥z1´µ 7–¿Ú¥‡òêÜnl¾ccçï¡)~\.»Lä| ƒÝ±ˆ·Öa¶ôz²œ‡f4”µˆž°-Áûž«bœ™Kö‡xÙ`MŒ$ƒ¡Û}ú@ŠiÍ×b¿ó J”&Á‚m;Uf–Œ„Û¨SnbXªZRN­Vwšwä@Ö§%‹=P‡’?uþ~Úy6í«r®8/S¸x{'³)m­Ïly¤Ì$9gx ßÿ*²×eøZÔ¶Õ‹4…&wSw(Ý-UøeÀe×Iž¹?("ïu'½ï*ühÍ>ì-Å-¿dÖW+ N?‡·¤Fï-1 ‹|úÕ¥‡cå+jâß7aM:…íá%˜ýdˆ©¨sDhű>W üibóLéÆñ)<þQöÕ±¯V*ÊR·Çýp¦ú#³ |§Rsí‰Ò‘‹³É>´”öqœ[yINr°t°8Ŷû~õ`_ãóÞk'ϼÿ ¯ñÕ V/zcDû*¼þ¯ÝA–ˆoå ÒËèdç;ITjt(ôuŸÌîÐØ]¶>‡åZ`\ÚŸwëÓ«½ÆH3‰>­õxÚB·ù}”ƒwŠýohäÌ›VϸýZå}ÿ=‡Ë¦#óG´´‰ÉTÛª~K¢ã(v’Ä]¶‚’Hd‰= *”¬GîïˆÛä+.â8²•⸷ÜFöMoöSM÷üö§LŠ2ÿi¦å²"C ‘¶ÜÏP}‹´Vßu [¶°ÙΉ25yùU˜Ä1`‚»0“Ïò&àõòóÞšUÍðZÔQ‡’³©SbÞæ"xæ6¥š}Ñ Beùü\­ ²¤ÁQîͦ²xÜr~œ öûjJ°†ÜF™)6Šù|éå½x:lR½Î¤Ú$J‚AñÚ”ÿòâäú¯aréôPí)µæiØŸa_ÈR[´/s J%@x¬œêbvé½JnÿhC~È“h‚ã­aÜOXÓªÒuI! “þõ¥Ý{ —%Íî~³¼vÖã `–ÖQ©,,¥[ă֘FeÎ RÇäÖI “©‡úT§± mÑÞ–\[®cÖ÷TBíú>²Á$̇OOEPå/Ä œAš°ü}ÇnsV+‡»l¬kWt¤´ k@Nãë±´×3µþxWdÇìo±ÜVÜ,¡ ïH/-egËÄNÕÌ1L!Xc§Z÷;ÎÿM·¨ÚKbd‘YܘéÍ ˜'Ò°T4sRA2:RJ4Ñ^úE8NüZÉ>´<ì+ q´ ˆZ¼¨T îÓ·óh>#ï<Žþ” JYC)Ô $™Ø9ò¤÷ýÑQl…8¡Â8ýß/>êS^ÓxE¥«GI2@çÞzük¢äÌ®ñ –¾mJ%BOñÿ¦­hÒW‘£†©^VŠ4ܱ–oq—‚ô©»`|K#î®ï{3CŒ7ß2«{.Hánûü…t|ÙÝŽÃJ¸e RG…¸ð§ñ5¾¦É†XЄ @qÌ«Vužº#Ö`pTðËEywþŒ§‡ÚÛ%¶BDDÔ|2ëɸ‚ñ¼ÿp⣽h‰C ?"Mn7Mþ±ÛÖª16B‘ç#z„^Wá:0Ñ«M\î]•çü7;àýë'¸¿buj£âm_㝾@Ý+Æùsw%ç›,y¢±n¥†¯Iúí¦:Ç? ö›è¹µjῪâB‡ÆºÔ*ó#sÅqÂÕʶ{ÑEq€áiK·> ׺&–Ó)lim’$ž¢”óÛƒ¥¥5jè VÚÈ2<¾5Ų¹ï”ÛBÊÂRP²|Å7Þ#}GJzÇ5›—F²°B‰<ôÒ Ü,ÎûÿZ‰(+îHqÀIÜ$N}‚¢[ ly¨!ÅÈäq½-)JÔÒèZô0c^Àoîi·Á[‡IéYy:ˆ•<üé :Q0R84¬ C.JP7=O!ÅêBÊ·QØúRn'TñIÖ’[(O>µBMÝX q•¬ #šÖÕÞZ\i2Që[í÷@©Q¨qäPâŒ4êÊDAÞj©BÏB¬÷Б„^2â ´¨‰Ò¦8ÛKPPkTÒYY(Qô©Lß>Ø)*$Næi[¹EJ}‹,w±ÄlÊemQê<«†güˆZÜ ‡ÚŸ¬6Rk¶þPSˆˆÅW^X.ù²’G‹¤T“qwކgN-ZJç”ñ,°°²m¯ôjð«üjÄ_áêSJK­õG…^ñÁø×¡s~H¸ qÛv&‘×Ò¹<ŒFÉõ2ëeHOê:Cí®†&òÈçâx]),ÔÝH¾ÓŸÏ["i³ Ÿ¼}”gÐ o:•Ï O„xßì«'ò‹56O*e\| ýôçä[“ªÛm&'Cé(?>>ÚßÍ]NCÁTýº”Ýã{9>³Í(¼é3"G•Z+,â¥:íÛnå´ÊÂÇÙPŸÂq& ;dú}è5%R©L¨TŽñc yÎBdi^ÒIÝñ¤*Ýô˜S.êšABÇ(PøT®ŠÜZè-Ní ”šÀu@ÒS¯¨P±ÂÕ·­1XÊÖT|©$Ï4°ó¿é}æh/,ó¤ûÐ? n³'Μö…Äiký’ Ö¿Ù'ð õ*"Md­GiO·vPg¸·Wï6+ ¹J‰&ÖÞIÆ€Ô¡úÇçJ:8Y¥÷íÜØù¯ûÕû½“¨`#Ú®~u‘spÏ,|idzR’¡ÉKǘ5žó 6—S×ùJ¹EÀB/nÓõnÖ4âq+ä™.j…9†•‚›[´§¨7)'ÿE^OŽÞðG’᧨ ü¯‰þX琉өÇq1ÅÛ»LÓcò1QŸo ¾¡4œ .ß×ôH?ñR¼Ó˜±i‘vôùë4ûYÚ/ŸÓYªÕ' Ô­7·ÚgÃ6ÉŸé(›õoo=“'ûôf`\7™q¿–ÜúB¹§Ó™ñÑpþ‘ª›3~ø‘¿òa·ûÔ/ÙdiÄ>ûxþ4ó>àl?ï>Þ÷¬šX͘òAýÚ×wi 0K$Ϥ ZRÄÿø³8–œþí}ÀØ×›ñ¹Ajé䀑ªW2¨ÜúO•dç<ŸkQþ¯@ZhSØ’£Çvð?ú+¦õùs;s¡ï—ótü@lž˜èØÜŸ•(g\pÌÜm³ZÑ ‰ü«c>Z]þåd¦@#±3Òzix€ÙFwÆÁ½IŽ%"”sÞ0“ƈ٭d² tŒKˆ™ W÷i*mÀ¶*Ô:,íïÚ‹¾Àlç=bçõš3ýÇçÎ+Ô3·ôkZCGµØl'wÀ¸¬)—çg¬ºå+°¹²«<âdÿ6×Á4ïˆi©ŽcŠÖ½šæélvÿ÷mïþõ'Ù®È'¼²þi¿ïS» ›#Ùß-©-¢gÄõ­^]?tâ}ej=i³nø@*~ÔoI#äiÏfd÷¸½¨Ÿ¬”!Å(»çJ÷1ÕÍÊéçF€4½yr® ¶–‡ÀʾáI7Œ Ÿf±a@S’â¾ßÙ@ e§Ÿ$ÛÛ©`r°6óÀ¥:”·üýÊT¨úŒ_5qòšÁrÿRY ~â…´É ÷°«Ü'%âW*I»‹d«„ýeŸ€ããUΤ`¯&[J…JÎÐW5òúèíÙ êáÝjøþ+cË'Å–…ºÚ™dž£s]S!vZV¤¸›M=KÏn~§Î»¦RÉ8v¥6wö”>êÁWÞ”ÑסÂrëUüŽeÙ¿dÍ0–ÝS:¥)>%WmÀ²Ý¦lnÈDºŸ\°Û퀔¼‡•\•‘ÃX²¶ï'vvhÒ²´UÂR€!*Ôž TwT@![Ç«‹ÐHJ`}õ ۦ̠õÞjLéB[*iÍ”­úíÅSb-¨Áx«´é+‘$ESbN…(’fx§ÐwÔÕsM²\·s© Åz?èýŽ+ìà }× Þe‡ T™AÓ'ÔÄ×›óá ­2 &ºïÐÝ/ Š-Ĩ6¬Ie²f n>5³õhàñè'II÷;Q]ÊžyK„'JŒ§Èß×Μ.ÆŸsQšÔTJ„Hòßü)ôƒ¡HïÛãç\Sßg@ûútTF秸S)" péôêi.édµ~Ò¿çjd…¹0=äïMÝ"*[IJ *yÊ£¥Í ‘2UÔóXh¨îUTá} o­0\¨qL<ùˆ'ΛºPJ|3¿ÛPVàO?*W¡Ç”·ÇSB @ëu5ÇÔágOñM\; ì&£rψb7k ÷cn“éT·,*$Ây5.ñjR#‚*¢ùÝ f6>µ ’VKAÀò Џµ2ë¡25 7Êiª@RG&ʤõ,ÐèÙSÍKbáAIñïÒ¨YyJ<ì:Ô¯lK[˜>¢„RÒlØš{PRU 7éZÖpʸN)láq„÷‘²ÀÜu8šR §žDÄ1e©'@Rä@sNñ¶¤&ö8Žiɯa×J øÐ:Åkwö Iâ½)„eW1VMÕð! >‘ºª«1öjÅÁ&ų¬˜ÒDïVF¼ãð oIoîV•JTAµ>‹üQ bHAÕGÊk¢cÙ°$ªÙa#õ€ÚµüöIåZa‹Œ´eráÉ«Á•èÇq”}µjýô%_x¥ ÅŒ»¶êýëVÏü5`á1 ü¨^âGÔ?*»™LÌðU—S?œXžòßryÕfÞÿ )x’\Âð·'ÎÞ>â)µY¯öM Ú‘ÊMIJŸb™a+w·?_/áGÜ—ܪAÅpåÒeë/ê8â!ËRzS µÛж2Ц¼ô¿¢Oå_[/û·k³íY}_üé?»{ø¦«Wn v¦Ú=EMåïõ2¥S5¤—²'­Ì¾®0üA¿uÒOÞšB†_<7Š'úíŸà)€Éýš ¹ò¨Þ=þ¥Ü‰¿Ú½‡J0ÃøŠO«H?ñ Oq‚ž/ïG¾Õ?ߦ¹òû)=‡ÿj•×r·JKx/¯öIXBŽØ»©ýëOÁF±ìqc(¼ÂÇÝ4ÊXTVKô¥›ÔkÙ÷þÅœ>Ïõq‹O‹nøi&Âߦ/b~ÿr«sÚ˜W¯Ê¤¥êW:-~ϸê¬[lJÉ^â±÷¦’lOêÝZ+ýh}5ܪŽå^f¥R·Oÿ¨³dïEÛŸsèüi*´y<–¹äãIîÈ=iÖÑC•‚4T¬ÿ>C~Ì÷’?¶ŸÆ²-^<%?Û?ÝÐÒK#ÈÔy… ùø†M³ãþÌŸvõg¸ÿ@çöM:Xô¤÷'Ê¥œƒ û?Ïg¸ÿ@ïö ÏqþßìWtªÇt¯:yˆrŸa=Ãÿè\þÉ£¸{ý ŸÙ4¾é~¿:Èig©ùÒÌ>Kì7Ü?þ…ÏìšÏ³¿þÏìšx2çí+çJKôRÿµK:&°²}¹{ýŸÙ4w/¢_öMOC/ðpXÓÈfäpë¿‹¬‘t8tåܨ-¸9B¾U”²êÌ%¥«Ü’jùתá×ÏõÍ8,o—±[çÞ³Px˜—Ç„Te±½1ïÿ†iæð«Å}d´Øþ›©ð™­ŽÓ.ßÜ(²âä´šÚp~Îq+’ íÊAÞHŠªXĶ4Sà©¿¿>§=c T;v“èÒ Û±à™U‡ÝHnÅû•7uP>Cñ®³€vooj»¢Uæ6®‘‚`øm“m¡›v°!;Š¢UêÏm…>…¥´s?S™å^Î1šHE£1%  &ºvZȘvÒVXKŽOÖPšÚ,ÔÒ~¯ ÛÊ‹ËòÀ)$=jœ‹y;šc·–*ËÐu‹dÛ64¤2Úà& ­}Üd-RÄH&v¡³L0í-M•wþ(“ *“5«œ@$ƒ'ž¦8ªÚ‡º‹–òì‹ß%DÈ?‡qr„¤ñÕeÝêô!>BjªâõZw_¸MA²Ô\ûj•°>ú©Än´¸  V9ˆ)$QUž(”-nFÒhDe%qŒÛˆ†ì]*X˜Ú½eôxÀîðÊ0‹Käh¸qõ¦ §Y*ƒê&+Í„äw{JÎÂúí* u.‡•M‚¿`ü«Á}PkÓëìR¡(Ò)‹ÎÇ-Ò‚PìuOõ;º8CÌ.Y‘ú´–í¨ ¯@^ö@ø$¶´«úµ=–<‡x OÖ*[X®X<5î™ÅE‹‡õM<Þòâk¹ÙöjÊŠK‹<ïÒ¶ŽYß¿cai’„þ‘Ùž ºÍ[ ŸC~!FŠñH昦`i¤À^¥‚FäŸ*èý•vš3³íby¡·°\ ¨ÍºÁMÓàqá?Q'}Îûq¸5è>ÎûÈÙ3»¸´ÂÑwˆ$ ¼ºý#’'pNÉäýP&º2RH‚¶RÂÆ:³ÏâøÄê,´ôEnXÀp¼·‚ÛaEª-­-›m æzŸSÍYÑEk8­ßVQE<¦› y‰!·ûØ &GP6†“*QÓˆ§8Òµúu®=Ïk•Ê ñ“ë°¤•$'uyµDy.6¥ÇXê+û€xSüê7D’d—?D°J¤ùt¤»qƒ×QÃJ6¥€ ŸA²ØÇ¸òÞ)“öyTu:Uãˆô¤(…$êàóHÕHµ!Ô•(íð=)«„¤øf?R]JRR¦V§"ïr1 '‘±¦Ü•pO¥:êTA˜ ï4¤¦L< Bjä;°Hæ¡” @ëSœ¦ç¥B}² ïEФí¡X뇽PÔ OÖW@ªÇÒ5ÌoÖjVèàQŽáÐØ,£½v5{l‰(@Ø(ü«^²ZJAæ¯ð÷ö)•È#zå‘EýÁÒ’½MÆÇΗn­J "#¥Ea%~’ÈÛsRJ$$ÆÜR'bŰŽvšu L„L¥B¡²¥))ÛuxеA'b<©‘±pÚÊ‘á€â–¥;li¶†Dlw$ÓÎ(Îé“D‚)\u·Á´y‘O‚dªÆžuI'aÐÔŽù¥^‡ÈФìNTÑ)Õ>´ïL¡ØQHùÅ4µÛcII÷;ûèNÌ‹¦¬J.¢&cšŽè O|i2Ù[“¸ŠB–D*)·qF•¿«¾Aij)“ÔmVO$¦g¥@}kP$"«Ÿ¡u8j]òUî¤ìjá·@Mjv·)¸e'IÜúÕŽˆw +YšŒ*=™9ÐOTlД~A¤%M”Ãnë@V°iÞø%³vfgÈ.RÒ4¨ÓJm*Q:€÷u¦KºÔI¨÷a+0v¥˜’¥®‚îwâ‘QÜ}µ«Hnµv¤˜1çQÝu(#~*IØ—-u1z¤”˜bµûå'ì«%¬¨ÁÓ«"F’¡Ö©Óp¶Pƒæ)ÖÝ(ññäÅqï©î.¥9å=DýôËÊZU„u>t†.´i#aÓñ¦nNéÜyô˜-ì>\@HxãÌÓ+¨øyTpàG %^´´-?YF¡bÕ î¢7^Àp 2û „Pê‚ ƒ'Ê£>zÌR$™j ØÏ­a.fO¾…¦­!~íÏSA7+è>µ‰Ñ:“Ò˜YØÉÜt¦’¥ ñçM¸ùշƆˆ1kðïçöT[µèa¾üS‹y ïÍC¹pÑb‰jA¸‚¨ßÒ¢Ú«KÁ2@©wAÞ¡ ïdìBÚ„v6,=cTsÅlØq žóÎùVŸ†9¸ßÝ[^êCP±©¤V4Gcd`‚€­àñR¼" ó±5—@‚Ÿaz¤¤ÉV‹ Ħ‡é ‚Ät§ÉRÖNÀ¦¢Ixâ–:A|èC±ojç„S<Šx9á ¨ªÛ'F€H2 T¤«bFâ›'–ÃWN°£:…>‡QTˆÜT[Ä4I„ä)®ÐI>••ìY{ij+ Dê$yÔnüP:Ó.=Ütó¦³È;mj$´-BûÍ€ùS$øÀ×΢°éÒ|üéIXQ"IWOZvÑë3¿ßM¼è ãšH*S%Dÿ@¹p!$t´œK›%8ظ·(Pé3åZÿxæx¹BIÚ®ð÷¤l`¶¢ã¶è¹eIÚz³UNŸTJ3Ë+2e¥á så5-d €EhÖ8‹–÷Éq:“²IäŠØ˜»“"*p–d)Ç)jíÁhiª†ëd‘Ôñ4‚uAªn®;•}iOÝR{ /±)OisAEaw) ñ¨Iâªî®ƒ¨%^/CÒ«^¿j1ºÐR-ž¼H !Q|ëRÍ7ÉïPµ*:M=wˆ¥-ÁVÝkE͸‹·e» 9]ÃËi)Ü•­Œš±’µEvY9Œ¥µýp1s˜ÚÒJ=k¢å/£eÄÛiü˘´h¨)M[$©JIäIˆ?];ú3öw`Ò‘|Ýî&¢© }ò }˜­ÐÂ>§§¥µ<°ömB¥-%n¬~À$ý•; ³Î¸ò™.XÄŸKæçrB½Ga^ÞËÝŸdÌ¥XV^ÃíÜîûIJ5ùÉ­‘›vHCL¡´ŽR^°±[˜jqi?*š)‘ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€<]¡¯¬A÷ÓÈhlxƒ¥Cl¯mDGŸ9ªèÈOôEqp›&¡µ¢U)1ÔÓw.¹ cÈTdÝ)$É߉"”—J†û¦‘%Üò‚ 'í§ á Hï¦ÔêcJ8êi—J 4™j³%‡Áþuõ­`ô‰HØE6µ¨«Ä6¤ ×¹„,£be4¥ÜjA@¦T©6‘'zI­Ç5))™ôŠa×4… 書¸ õ¨N¼¥ÌÅ$AÉ’;ÕF#ךŽë…J™ˆ4ÐqKŸ¾‚AéMøŠS„™ò¦Y*&)j!3;Žû€ÌèÜWÔ°Ã]pzñ[>øör˜’…ïå÷ÖˆÝÆ•¶œ"ãRO+l¨ÔR.‰µÚ\¢@'n•id½.DD «SiÓ;}SÅ[Ù]•6 Œ’`šMZèØC¡J3:må€QFiÆŠ¥îy÷Ô[›„¶²[t¤Ó#yX»¶y J“¹ƒçO5t¤( ÀMkí^ip‘ÁèM:íØ 6÷Ћd¬^]>4<óPÛ¹ 'ÅUVõáÓõ€Hý±ò «þÂû²+‰Æ±§‘ŠãÊ@ý!OèíüÂëÓW—”™í@ q]*4=Yæq¼BU¼1ØEVƒ˜QEQEQEQEQEQEQEQEQEQEQEQEQEQEQExŠÔë+qB‰ ØÆôQ\ާ·D…[’Ú¢¨(¦vš(¨ËrÈ ’™;Ò’`p(¢¢5¹”A'y¡Ð(¢’ÜLˆé:£¥0ñ (¢2ÂA$žj*‰ï¯4QQ}‚•'Lõ¢ŠhRx3Ö >¢QÍTˆ"3j%q5²å×T”• ÛåE–戗IZ’«'V‘<‰¢ŠOsDv,BÔdyS *wŠ(¨„w0—¡*ëJ®T'hš( “#¼êÂdŠã«$Fh¢›GеoM)jçΊ) Œ­Ålj:ßp(ÁâŠ(‰$2§Ü$I¨·n¬“¿êÑEH]JöXzAÞ¥=rï‡ÅE%±\÷":û¤™UT⎭L-*2"Š*/au(°«·’ ¶I4œBáÐI ¢Šœ ng³¤§íg*Y^!/[½‹0—P”©:ÆÄA¯¦m6†Ð”!!"Š+§CÊyN,ïXUQWœ°¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ÿÙpymvpa2-2.6.4/doc/source/references.rst000066400000000000000000001300111323370031300200300ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- # # THIS IS A GENERATED FILE -- DO NOT EDIT! # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: references .. _chap_references: ********** References ********** This list aims to be a collection of literature, that is of particular interest in the context of multivariate pattern analysis. It includes all references cited throughout this manual, but also a number of additional manuscripts containing descriptions of interesting analysis methods or fruitful experiments. .. _AHL+13: **Adluru, N., Hanlon, B. M., Lutz, A., Lainhart, J. E., Alexander, A. L. & Davidson, R. J.** (2013). Penalized Likelihood Phenotyping: Unifying Voxelwise Analyses and Multi-Voxel Pattern Analyses in Neuroimaging. *Neuroinformatics*, 1-21. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1007/s12021-012-9175-9 .. _AVM+12: **Albanese, D., Visintainer, R., Merler, S., Riccadonna, S., Jurman, G. & Furlanello, C.** (2012). mlpy: machine learning Python. *arXiv preprint arXiv:1202.6548*. Keywords: :keyword:`pymvpa-reference` .. _ARV+13: **Andersson, P., Ramsey, N. F., Viergever, M. A. & Pluim, J. P.** (2013). 7T fMRI reveals feasibility of covert visual attention-based brain–computer interfacing with signals obtained solely from cortical grey matter accessible by subdural surface electrodes. *Clinical neurophysiology*, *124*, 2191-2197. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.clinph.2013.05.009 .. _ALR+14: **Avants, B. B., Libon, D. J., Rascovsky, K., Boller, A., McMillan, C. T., Massimo, L., Coslett, H. B., Chatterjee, A., Gross, R. G. & Grossman, M.** (2014). Sparse canonical correlation analysis relates network-level atrophy to multivariate cognitive measures in a neurodegenerative population. *NeuroImage*, *84*, 698-711. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1016/j.neuroimage.2013.09.048 URL: http://dx.doi.org/10.1016/j.neuroimage.2013.09.048 .. _Ban09: **Bandettini, P. A.** (2009). Seven topics in functional magnetic resonance imaging. *Journal of Integrative Neuroscience*, *8*, 371–403. Keywords: :keyword:`pymvpa-reference` URL: http://www.ncbi.nlm.nih.gov/pubmed/19938211 .. _BHG+13: **Baumgartner, F., Hanke, M., Geringswald, F., Zinke, W., Speck, O. & Pollmann, S.** (2013). Evidence for feature binding in the superior parietal lobule. *NeuroImage*, *68*, 173-180. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.neuroimage.2012.12.002 .. _CCK+11: **Carlin, J. D., Calder, A. J., Kriegeskorte, N., Nili, H. & Rowe, J. B.** (2011). A head view-invariant representation of gaze direction in anterior superior temporal sulcus. *Curr Biol*, *21*, 1817–21. DOI: http://dx.doi.org/10.1016/j.cub.2011.09.025 .. _CRK+11: **Carlin, J. D., Rowe, J. B., Kriegeskorte, N., Thompson, R. & Calder, A. J.** (2011). Direction-Sensitive Codes for Observed Head Turns in Human Superior Temporal Sulcus. *Cerebral Cortex*, **, . Keywords: :keyword:`pymvpa`, :keyword:`fMRI`, :keyword:`searchlight` DOI: http://dx.doi.org/10.1093/cercor/bhr061 URL: http://cercor.oxfordjournals.org/content/early/2011/06/27/cercor.bhr061.short .. _CBR+12: **Carter, R. M., Bowling, D. L., Reeck, C. & Huettel, S. A.** (2012). A distinct role of the temporal-parietal junction in predicting socially guided decisions. *Science*, *337*, 109-111. DOI: http://dx.doi.org/10.1126/science.1219681 .. _CPL+06: **Chen, X., Pereira, F., Lee, W., Strother, S. & Mitchell, T.** (2006). Exploring predictive and reproducible modeling with the single-subject FIAC dataset. *Human Brain Mapping*, *27*, 452–461. *This paper illustrates the necessity to consider the stability or reproducibility of a classifier's feature selection as at least equally important to it's generalization performance.* Keywords: :keyword:`feature selection`, :keyword:`feature selection stability` DOI: http://dx.doi.org/10.1002/hbm.20243 URL: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?cmd=prlinks&dbfrom=pubmed&retmode=ref&id=16565951 .. _CSM+10: **Clithero, J. A., Smith, D. V., Carter, R. M. & Huettel, S. A.** (2010). Within- and cross-participant classifiers reveal different neural coding of information. *NeuroImage*. DOI: http://dx.doi.org/10.1016/j.neuroimage.2010.03.057 URL: http://www.ncbi.nlm.nih.gov/pubmed/20347995 .. _Coh94: **Cohen, J.** (1994). The earth is round (p< 0.05). *American Psychologist*, *49*, 997–1003. *Classical critic of null hypothesis significance testing* Keywords: :keyword:`hypothesis testing` URL: http://www.citeulike.org/user/mdreid/article/2643653 .. _CAS+10: **Cohen, J. R., Asarnow, R. F., Sabb, F. W., Bilder, R. M., Bookheimer, S. Y., Knowlton, B. J. & Poldrack, R. A.** (2010). Decoding developmental differences and individual variability in response inhibition through predictive analyses across individuals. *Frontiers in Human Neuroscience*, *4:47*. DOI: http://dx.doi.org/10.3389/fnhum.2010.00047 URL: http://www.ncbi.nlm.nih.gov/pubmed/20661296 .. _CEZ+11: **Cole, M. W., Etzel, J. A., Zacks, J. M., Schneider, W. & Braver, T. S.** (2011). Rapid transfer of abstract rules to novel contexts in human lateral prefrontal cortex. *Frontiers in Human Neuroscience*, *5*. DOI: http://dx.doi.org/10.3389/fnhum.2011.00142 .. _CIB15: **Cole, M. W., Ito, T. & Braver, T. S.** (2015). The Behavioral Relevance of Task Information in Human Prefrontal Cortex. *Cerebral Cortex*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bhv072 URL: http://dx.doi.org/10.1093/cercor/bhv072 .. _CGG+12: **Connolly, A. C., Guntupalli, J. S., Gors, J., Hanke, M., Halchenko, Y. O., Wu, Y., Abdi, H. & Haxby, J. V.** (2012). The Representation of Biological Classes in the Human Brain. *Journal of Neuroscience*, *32*, 2608-2618. DOI: http://dx.doi.org/10.1523/JNEUROSCI.5547-11.2012 URL: http://www.jneurosci.org/content/32/8/2608#aff-4 .. _Dem06: **DemÅ¡ar, J.** (2006). Statistical Comparisons of Classifiers over Multiple Data Sets. *Journal of Machine Learning Research*, *7*, 1–30. *This is a review of several classifier benchmark procedures.* URL: http://portal.acm.org/citation.cfm?id=1248548 .. _DTM+11: **Duff, E. P., Trachtenberg, A. J., CE, C. E. M., Howard, M. A., Wilson, F., Smith, S. M. & Woolrich, M. W.** (2011). Task-driven ICA feature generation for accurate and interpretable prediction using fMRI. *NeuroImage*, *60*, 189-203. URL: http://www.ncbi.nlm.nih.gov/pubmed/22227050 .. _EHJ+04: **Efron, B., Trevor, H., Johnstone, I. & Tibshirani, R.** (2004). Least Angle Regression. *Annals of Statistics*, *32*, 407–499. Keywords: :keyword:`least angle regression`, :keyword:`LARS` DOI: http://dx.doi.org/10.1214/009053604000000067 .. _EDT+12: **Ekman, M., Derrfuss, J., Tittgemeyer, M. & Fiebach, C. J.** (2012). Predicting errors from reconfiguration patterns in human brain networks. *Proceedings of the National Academy of Sciences*, *109*, 16714-16719. DOI: http://dx.doi.org/10.1073/pnas.1207523109 .. _FWJ+12: **Farrell, D., Webb, H., Johnston, M. A., Poulsen, T. A., O’Meara, F., Christensen, L. L., Beier, L., Borchert, T. V. & Nielsen, J. E.** (2012). Toward Fast Determination of Protein Stability Maps: Experimental and Theoretical Analysis of Mutants of a Nocardiopsis prasina Serine Protease. *Biochemistry*, *51*, 5339-5347. DOI: http://dx.doi.org/10.1021/bi201926f .. _Fis25: **Fisher, R. A.** (1925). Statistical methods for research workers. Oliver and Boyd: Edinburgh. *One of the 20th century's most influential books on statistical methods, which coined the term 'Test of significance'.* Keywords: :keyword:`statistics`, :keyword:`hypothesis testing` URL: http://psychclassics.yorku.ca/Fisher/Methods/ .. _FKM+14: **Fogelson, S. V., Kohler, P. J., Miller, K. J., Granger, R. & Tse, P. U.** (2014). Unconscious neural processing differs with method used to render stimuli invisible. *Frontiers in Psychology*, *5*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.3389/fpsyg.2014.00601 URL: http://dx.doi.org/10.3389/fpsyg.2014.00601 .. _GF09: **Garcia, S. & Fourcaud-Trocmé, N.** (2009). OpenElectrophy: An Electrophysiological Data- and Analysis-Sharing Framework. *Front Neuroinformatics*, *3*, 14. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.3389/neuro.11.014.2009 URL: http://www.ncbi.nlm.nih.gov/pubmed/19521545 .. _GWC10: **Gilliam, T., Wilson, R. C. & Clark, J. A.** (2010). Scribe Identification in Medieval English Manuscripts. Proceedings of the International Conference on Pattern Recognition. URL: ftp://ftp.computer.org/press/outgoing/proceedings/juan/icpr10b/data/4109b880.pdf .. _GMS+12: **Gorlin, S., Meng, M., Sharma, J., Sugihara, H., Sur, M. & Sinha, P.** (2012). Imaging prior information in the brain. *Proceedings of the National Academy of Sciences*, *109*, 7935-7940. DOI: http://dx.doi.org/10.1073/pnas.1111224109 URL: http://www.pnas.org/content/109/20/7935.abstract .. _GSD+15: **Greisel, N., Seitz, S., Drory, N., Bender, R., Saglia, R. & Snigula, J.** (2015). Photometric Redshifts and Model Spectral Energy Distributions of Galaxies From the SDSS-III BOSS DR10 Data. *arXiv preprint arXiv:1505.01157*. Keywords: :keyword:`pymvpa` URL: http://arxiv.org/abs/1505.01157 .. _GHH+16: **Guntupalli, J. S., Hanke, M., Halchenko, Y. O., Connolly, A. C., Ramadge, P. J. & Haxby, J. V.** (2016). A Model of Representational Spaces in Human Cortex. *Cerebral Cortex*. Keywords: :keyword:`pymvpa`, :keyword:`hyperalignment` DOI: http://dx.doi.org/10.1093/cercor/bhw068 .. _GM15: **Guo, B. & Meng, M.** (2015). The encoding of category-specific versus nonspecific information in human inferior temporal cortex. *NeuroImage*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.neuroimage.2015.04.006 URL: http://dx.doi.org/10.1016/j.neuroimage.2015.04.006 .. _GE03: **Guyon, I. & Elisseeff, A.** (2003). An Introduction to Variable and Feature Selection. *Journal of Machine Learning*, *3*, 1157–1182. URL: http://www.jmlr.org/papers/v3/guyon03a.html .. _HBI+14: **Hanke, M., Baumgartner, F. J., Ibe, P., Kaule, F. R., Pollmann, S., Speck, O., Zinke, W. & Stadler, J.** (in press). A high-resolution 7-Tesla fMRI dataset from complex natural stimulation with an audio movie. *Scientific Data*. Keywords: :keyword:`pymvpa` URL: http://www.studyforrest.org .. _HHH+10: **Hanke, M., Halchenko, Y. O., Haxby, J. V. & Pollmann, S.** (2010). Statistical learning analysis in neuroscience: aiming for transparency. *Frontiers in Neuroscience*, *4*, 38–43. *Focused review article emphasizing the role of transparency to facilitate adoption and evaluation of statistical learning techniques in neuroimaging research.* DOI: http://dx.doi.org/10.3389/neuro.01.007.2010 .. _HHS+latest: **Hanke, M., Halchenko, Y. O., Sederberg, P. B. & Hughes, J. M.** The PyMVPA Manual. Available online at http://www.pymvpa.org/PyMVPA-Manual.pdf. .. _HHS+09a: **Hanke, M., Halchenko, Y. O., Sederberg, P. B., Hanson, S. J., Haxby, J. V. & Pollmann, S.** (2009). PyMVPA: A Python toolbox for multivariate pattern analysis of fMRI data. *Neuroinformatics*, *7*, 37–53. *Introduction into the analysis of fMRI data using PyMVPA.* Keywords: :keyword:`PyMVPA`, :keyword:`fMRI` DOI: http://dx.doi.org/10.1007/s12021-008-9041-y .. _HHS+09b: **Hanke, M., Halchenko, Y. O., Sederberg, P. B., Olivetti, E., Fründ, I., Rieger, J. W., Herrmann, C. S., Haxby, J. V., Hanson, S. J. & Pollmann, S.** (2009). PyMVPA: A Unifying Approach to the Analysis of Neuroscientific Data. *Frontiers in Neuroinformatics*, *3*, 3. *Demonstration of PyMVPA capabilities concerning multi-modal or modality-agnostic data analysis.* Keywords: :keyword:`PyMVPA`, :keyword:`fMRI`, :keyword:`EEG`, :keyword:`MEG`, :keyword:`extracellular recordings` DOI: http://dx.doi.org/10.3389/neuro.11.003.2009 .. _HH08: **Hanson, S. J. & Halchenko, Y. O.** (2008). Brain reading using full brain support vector machines for object recognition: there is no "face" identification area. *Neural Computation*, *20*, 486–503. Keywords: :keyword:`support vector machine`, :keyword:`SVM`, :keyword:`feature selection`, :keyword:`recursive feature elimination`, :keyword:`RFE` DOI: http://dx.doi.org/10.1162/neco.2007.09-06-340 .. _HS11: **Hanson, S. J. & Schmidt, A.** (2011). High-resolution imaging of the fusiform face area (FFA) using multivariate non-linear classifiers shows diagnosticity for non-face categories. *NeuroImage*, *54*, 1715-1734. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1016/j.neuroimage.2010.08.02 .. _HMH04: **Hanson, S. J., Matsuka, T. & Haxby, J. V.** (2004). Combinatorial codes in ventral temporal lobe for object recognition: Haxby (2001) revisited: is there a "face" area?. *NeuroImage*, *23*, 156–166. DOI: http://dx.doi.org/10.1016/j.neuroimage.2004.05.020 .. _HSN+13: **Hassabis, D., Spreng, R. N., Rusu, A. A., Robbins, C. A., Mar, R. A. & Schacter, D. L.** (2013). Imagine all the people: How the brain creates and uses personality models to predict behavior. *Cerebral Cortex*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bht042 .. _HTF09: **Hastie, T., Tibshirani, R. & Friedman, J. H.** (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer: New York. *Excellent summary of virtually all techniques relevant to the field. A free PDF version of this book is available from the authors' website at http://web.stanford.edu/%7Ehastie/ElemStatLearn/* DOI: http://dx.doi.org/10.1007/b94608 URL: http://web.stanford.edu/%7Ehastie/ElemStatLearn/ .. _HCG14: **Haxby, J. V., Connolly, A. C. & Guntupalli, J. S.** (2014). Decoding neural representational spaces using multivariate pattern analysis. *Annual review of neuroscience*, *37*, 435-456. Keywords: :keyword:`pymvpa-reference` .. _HGF+01: **Haxby, J. V., Gobbini, M. I., Furey, M. L., Ishai, A., Schouten, J. L. & Pietrini, P.** (2001). Distributed and overlapping representations of faces and objects in ventral temporal cortex. *Science*, *293*, 2425–2430. Keywords: :keyword:`split-correlation classifier` DOI: http://dx.doi.org/10.1126/science.1063736 .. _HGC+11: **Haxby, J. V., Guntupalli, J. S., Connolly, A. C., Halchenko, Y. O., Conroy, B. R., Gobbini, M. I., Hanke, M. & Ramadge, P. J.** (2011). A Common, High-Dimensional Model of the Representational Space in Human Ventral Temporal Cortex. *Neuron*, *72*, 404–416. Keywords: :keyword:`pymvpa`, :keyword:`hyperalignment` DOI: http://dx.doi.org/10.1016/j.neuron.2011.08.026 URL: http://www.cell.com/neuron/abstract/S0896-6273%2811%2900781-1 .. _HR06: **Haynes, J. & Rees, G.** (2006). Decoding mental states from brain activity in humans. *Nature Reviews Neuroscience*, *7*, 523–534. *Review of decoding studies, emphasizing the importance of ethical issues concerning the privacy of personal thought.* DOI: http://dx.doi.org/10.1038/nrn1931 .. _HGH2015: **Hebart, M. N., Görgen, K. & Haynes, J.** The Decoding Toolbox (TDT): a versatile software package for multivariate analyses of functional imaging data. *Frontiers in Neuroinformatics*, *8*. DOI: http://dx.doi.org/10.3389/fninf.2014.00088 .. _HPL+14: **Heitmeyer, C. L., Pickett, M., Leonard, E. I., Archer, M. M., Ray, I., Aha, D. W. & Trafton, J. G.** (2014). Building high assurance human-centric decision systems. *Autom Softw Eng*, *22*, 159-197. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1007/s10515-014-0157-z URL: http://dx.doi.org/10.1007/s10515-014-0157-z .. _HSC+14: **Helfinstein, S. M., Schonberg, T., Congdon, E., Karlsgodt, K. H., Mumford, J. A., Sabb, F. W., Cannon, T. D., London, E. D., Bilder, R. M. & Poldrack, R. A.** (2014). Predicting risky choices from brain activity patterns. *Proceedings of the National Academy of Sciences*, *111*, 2470-2475. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1073/pnas.1321728111 URL: http://www.pnas.org/content/111/7/2470.abstract .. _HBL+12: **Hiroyuki, A., Brian, M., Li, N., Yumiko, S. & Massimo, P.** (2012). Decoding Semantics across fMRI sessions with Different Stimulus Modalities: A practical MVPA Study. *Frontiers in Neuroinformatics*, *6*. Keywords: :keyword:`pymvpa`, :keyword:`fmri` DOI: http://dx.doi.org/10.3389/fninf.2012.00024 URL: http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2012.00024/full .. _HRB+11: **Hollmann, M., Rieger, J. W., Baecke, S., Lützkendorf, R., Müller, C., Adolf, D. & Bernarding, J.** (2011). Predicting decisions in human social interactions using real-time fMRI and pattern classification. *PloS one*, *6*, e25304. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1371/journal.pone.0025304 .. _HS14: **Huffman, D. J. & Stark, C. E.** (2014). Multivariate pattern analysis of the human medial temporal lobe revealed representationally categorical cortex and representationally agnostic hippocampus. *Hippocampus*, *24*, 1394-1403. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1002/hipo.22321 URL: http://dx.doi.org/10.1002/hipo.22321 .. _Ioa05: **Ioannidis, J. P. A.** (2005). Why most published research findings are false. *PLoS Med*, *2*, e124. *Simulation study speculating that it is more likely for a research claim to be false than true. Along the way the paper highlights aspects to keep in mind while assessing the 'scientific significance' of any given study, such as, viability, reproducibility, and results.* Keywords: :keyword:`hypothesis testing` DOI: http://dx.doi.org/10.1371/journal.pmed.0020124 .. _JK12: **Jain, A. & Kemp, C. C.** (2012). Improving robot manipulation with data-driven object-centric models of everyday forces. *Autonomous Robots*, 1-17. DOI: http://dx.doi.org/10.1007/s10514-013-9344-1 URL: http://www.hrl.gatech.edu/pdf/improve_everyday_forces.pdf .. _JP11: **Jimura, K. & Poldrack, R.** (2011). Analyses of regional-average activation and multivoxel pattern information tell complementary stories. *Neuropsychologia*. DOI: http://dx.doi.org/10.1016/j.neuropsychologia.2011.11.007 .. _JCS+14: **Jimura, K., Cazalis, F., Stover, E. R. S. & Poldrack, R. A.** (2014). The neural basis of task switching changes with skill acquisition. *Front. Hum. Neurosci.*, *8*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.3389/fnhum.2014.00339 URL: http://dx.doi.org/10.3389/fnhum.2014.00339 .. _JL09: **Jurica, P. & van Leeuwen, C.** (2009). OMPC: an open-source MATLAB-to-Python compiler. *Frontiers in Neuroinformatics*, *3*, 5. DOI: http://dx.doi.org/10.3389/neuro.11.005.2009 .. _JSW09: **Jäkel, F., Schölkopf, B. & Wichmann, F. A.** (2009). Does Cognitive Science Need Kernels?. *Trends in Cognitive Sciences*, *13*, 381–388. *A summary of the relationship of machine learning and cognitive science. Moreover it also points out the role of kernel-based methods in this context.* Keywords: :keyword:`kernel methods`, :keyword:`similarity` DOI: http://dx.doi.org/10.1016/j.tics.2009.06.002 URL: http://www.sciencedirect.com/science/article/B6VH9-4X4R9BC-1/2/e2e90008d0a8887878c72777462335fd .. _KT05: **Kamitani, Y. & Tong, F.** (2005). Decoding the visual and subjective contents of the human brain. *Nature Neuroscience*, *8*, 679–685. *One of the two studies showing the possibility to read out orientation information from visual cortex.* DOI: http://dx.doi.org/10.1038/nn1444 .. _KM12: **Kaplan, J. T. & Meyer, K.** (2012). Multivariate pattern analysis reveals common neural patterns across individuals during touch observation. *Neuroimage*, *60*, 204-212. DOI: http://dx.doi.org/10.1016/j.neuroimage.2011.12.059 .. _Kas14: **Kasabov, N. K.** (2014). NeuCube: A spiking neural network architecture for mapping, learning and understanding of spatio-temporal brain data. *Neural Networks*, *52*, 62-76. DOI: http://dx.doi.org/10.1016/j.neunet.2014.01.006 URL: http://dx.doi.org/10.1016/j.neunet.2014.01.006 .. _KKO+11: **Kaunitz, L. N., Kamienkowski, J. E., Olivetti, E., Murphy, B., Avesani, P. & Melcher, D. P.** (2011). Intercepting the first pass: rapid categorization is suppressed for unseen stimuli. *Frontiers in Perception Science*, *2*, 198. Keywords: :keyword:`pymvpa`, :keyword:`eeg` DOI: http://dx.doi.org/10.3389/fpsyg.2011.00198 URL: http://www.frontiersin.org/perception_science/10.3389/fpsyg.2011.00198/full .. _KFS+09: **Kienzle, W., Franz, M. O., Schölkopf, B. & Wichmann, F. A.** (In press). Center-surround patterns emerge as optimal predictors for human saccade targets. *Journal of Vision*. *This paper offers an approach to make sense out of feature sensitivities of non-linear classifiers.* .. _KLE+14: **Kim, N. Y., Lee, S. M., Erlendsdottir, M. C. & McCarthy, G.** (2014). Discriminable spatial patterns of activation for faces and bodies in the fusiform gyrus. *Front. Hum. Neurosci.*, *8*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.3389/fnhum.2014.00632 URL: http://dx.doi.org/10.3389/fnhum.2014.00632 .. _KZ14: **Klein, M. E. & Zatorre, R. J.** (2014). Representations of Invariant Musical Categories Are Decodable by Pattern Analysis of Locally Distributed BOLD Responses in Superior Temporal and Intraparietal Sulci. *Cerebral Cortex*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bhu003 URL: http://dx.doi.org/10.1093/cercor/bhu003 .. _KFR+13: **Kohler, P. J., Fogelson, S. V., Reavis, E. A., Meng, M., Guntupalli, J. S., Hanke, M., Halchenko, Y. O., Connolly, A. C., Haxby, J. V. & Tse, P. U.** (2013). Pattern classification precedes region-average hemodynamic response in early visual cortex. *NeuroImage*, *78*, 249-260. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.neuroimage.2013.04.019 .. _KGB06: **Kriegeskorte, N., Goebel, R. & Bandettini, P. A.** (2006). Information-based functional brain mapping. *Proceedings of the National Academy of Sciences of the USA*, *103*, 3863–3868. *Paper introducing the searchlight algorithm.* Keywords: :keyword:`searchlight` DOI: http://dx.doi.org/10.1073/pnas.0600244103 .. _KMB08: **Kriegeskorte, N., Mur, M. & Bandettini, P. A.** (2008). Representational similarity analysis - connecting the branches of systems neuroscience. *Frontiers in Systems Neuroscience*, *2*, 4. DOI: http://dx.doi.org/10.3389/neuro.06.004.2008 .. _KCF+05: **Krishnapuram, B., Carin, L., Figueiredo, M. A. & Hartemink, A. J.** (2005). Sparse multinomial logistic regression: fast algorithms and generalization bounds. *IEEE Transactions on Pattern Analysis and Machine Intelligence*, *27*, 957–968. Keywords: :keyword:`sparse multinomial logistic regression`, :keyword:`SMLR` DOI: http://dx.doi.org/10.1109/TPAMI.2005.127 URL: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?cmd=prlinks&dbfrom=pubmed&retmode=ref&id=15943426 .. _KWO11: **Kubilius, J., Wagemans, J. & Beeck, H. O. d.** (2011). Emergence of perceptual gestalts in the human visual cortex: The case of the configural superiority effect. *Psychological Science*, *in press*. Keywords: :keyword:`pymvpa`, :keyword:`fMRI` DOI: http://dx.doi.org/10.1177/0956797611417000 .. _KWO14: **Kubilius, J., Wagemans, J. & Beeck, H. P. O. d.** (2014). Encoding of configural regularity in the human visual system. *Journal of Vision*, *14*, 11-11. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1167/14.9.11 URL: http://dx.doi.org/10.1167/14.9.11 .. _LSC+05: **LaConte, S., Strother, S., Cherkassky, V., Anderson, J. & Hu, X.** (2005). Support vector machines for temporal classification of block design fMRI data. *NeuroImage*, *26*, 317–329. *Comprehensive evaluation of preprocessing options with respect to SVM-classifier (and others) performance on block-design fMRI data.* Keywords: :keyword:`SVM` DOI: http://dx.doi.org/10.1016/j.neuroimage.2005.01.048 .. _LaC10: **Laconte, S. M.** (2010). Decoding fMRI brain states in real-time. *NeuroImage*. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1016/j.neuroimage.2010.06.052 URL: http://www.ncbi.nlm.nih.gov/pubmed/20600972 .. _LBB+98: **Lecun, Y., Bottou, L., Bengio, Y. & Haffner, P.** (1998). Gradient-based learning applied to document recognition. *Proceedings of the IEEE*, *86*, 2278–2324. *Paper introducing Modified NIST (MNIST) dataset for performance comparisons of character recognition performance across a variety of classifiers.* Keywords: :keyword:`handwritten character recognition`, :keyword:`multilayer neural networks`, :keyword:`MNIST`, :keyword:`statistical learning` DOI: http://dx.doi.org/10.1109/5.726791 .. _LMcC14: **Lee, S. M. & McCarthy, G.** (2014). Functional Heterogeneity and Convergence in the Right Temporoparietal Junction. *Cerebral Cortex*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bhu292 URL: http://dx.doi.org/10.1093/cercor/bhu292 .. _LB10: **Legge, D. & Badii, A.** (2010). An Application of Pattern Matching for the Adjustment of Quality of Service Metrics. The International Conference on Emerging Network Intelligence. Keywords: :keyword:`pymvpa-reference` .. _LB13: **Lescroart, M. D. & Biederman, I.** (2013). Cortical representation of medial axis structure. *Cerebral Cortex*, *23*, 629-637. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bhs046 .. _LMH+13: **Liang, M., Mouraux, A., Hu, L. & Iannetti, G.** (2013). Primary sensory cortices contain distinguishable spatial patterns of activity for each sense. *Nature communications*, *4*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1038/ncomms2979 .. _KKD+12: **Man, K., Kaplan, J. T., Damasio, A. & Meyer, K.** (2012). Sight and sound converge to form modality-invariant representations in temporoparietal cortex. *The Journal of Neuroscience*, *32*, 16629-16636. DOI: http://dx.doi.org/10.1523/JNEUROSCI.2342-12.2012 .. _MR13: **Manelis, A. & Reder, L. M.** (2013). He Who Is Well Prepared Has Half Won The Battle: An fMRI Study of Task Preparation. *Cerebral Cortex*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bht262 URL: http://cercor.oxfordjournals.org/content/early/2013/10/02/cercor.bht262.abstract .. _MHH10: **Manelis, A., Hanson, C. & Hanson, S. J.** (2010). Implicit memory for object locations depends on reactivation of encoding-related brain regions. *Human Brain Mapping*. Keywords: :keyword:`pymvpa`, :keyword:`implicit memory`, :keyword:`fMRI` DOI: http://dx.doi.org/10.1002/hbm.20992 .. _MRH11: **Manelis, A., Reder, L. M. & Hanson, S. J.** (2011). Dynamic Changes In The Medial Temporal Lobe During Incidental Learning Of Object–Location Associations. *Cerebral Cortex*. Keywords: :keyword:`pymvpa`, :keyword:`fMRI` DOI: http://dx.doi.org/10.1093/cercor/bhr151 .. _MBL+10: **Margulies, D. S., Böttger, J., Long, X., Lv, Y., Kelly, C., Schäfer, A., Goldhahn, D., Abbushi, A., Milham, M. P., Lohmann, G. & Villringer, A.** (2010). Resting developments: a review of fMRI post-processing methodologies for spontaneous brain activity. *Magnetic Resonance Materials in Physics, Biology and Medicine*, *23*, 289–307. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1007/s10334-010-0228-5 URL: http://www.ncbi.nlm.nih.gov/pubmed/20972883 .. _McMLZ+15: **McNamee, D., Liljeholm, M., Zika, O. & O'Doherty, J. P.** (2015). Characterizing the Associative Content of Brain Structures Involved in Habitual and Goal-Directed Actions in Humans: A Multivariate fMRI Study. *The Journal of Neuroscience*, *35*, 3764-3771. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1523/JNEUROSCI.4677-14.2015 .. _MRO13: **McNamee, D., Rangel, A. & O'Doherty, J. P.** (2013). Category-dependent and category-independent goal-value codes in human ventromedial prefrontal cortex. *Nature neuroscience*, *16*, 479-485. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1038/nn.3337 .. _MSB+12: **Merrill, J., Sammler, D., Bangert, M., Goldhahn, D., Lohmann, G., Turner, R. & Friederici, A. D.** (2012). Perception of words and pitch patterns in song and speech. *Frontiers in psychology*, *3*, 76. DOI: http://dx.doi.org/10.3389/fpsyg.2012.000 .. _MK11: **Meyer, K. & Kaplan, J. T.** (2011). Cross-Modal Multivariate Pattern Analysis. *Journal of visualized experiments: JoVE*. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.3791/3307 .. _MKE+11: **Meyer, K., Kaplan, J. T., Essex, R., Damasio, H. & Damasio, A.** (2011). Seeing Touch Is Correlated with Content-Specific Activity in Primary Somatosensory Cortex. *Cerebral Cortex*. DOI: http://dx.doi.org/10.1093/cercor/bhq289 URL: http://www.ncbi.nlm.nih.gov/pubmed/21330469 .. _MKE10: **Meyer, K., Kaplan, J. T., Essex, R., Webber, C., Damasio, H. & Damasio, A.** (2010). Predicting visual stimuli based on activity in auditory cortices. *Nature Neuroscience*. DOI: http://dx.doi.org/10.1038/nn.2533 .. _MHN+04: **Mitchell, T., Hutchinson, R., Niculescu, R. S., Pereira, F., Wang, X., Just, M. & Newman, S.** (2004). Learning to Decode Cognitive States from Brain Images. *Machine Learning*, *57*, 145–175. DOI: http://dx.doi.org/10.1023/B:MACH.0000035475.85309.1b .. _MBT+14: **Mittner, M., Boekel, W., Tucker, A. M., Turner, B. M., Heathcote, A. & Forstmann, B. U.** (2014). When the Brain Takes a Break: A Model-Based Analysis of Mind Wandering. *Journal of Neuroscience*, *34*, 16286-16295. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1523/jneurosci.2062-14.2014 URL: http://dx.doi.org/10.1523/JNEUROSCI.2062-14.2014 .. _MBK09: **Mur, M., Bandettini, P. A. & Kriegeskorte, N.** (2009). Revealing representational content with pattern-information fMRI–an introductory guide. *Social Cognitive and Affective Neuroscience*. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1093/scan/nsn044 .. _NH02: **Nichols, T. E. & Holmes, A. P.** (2002). Nonparametric permutation tests for functional neuroimaging: a primer with examples. *Human Brain Mapping*, *15*, 1–25. *Overview of standard nonparametric randomization and permutation testing applied to neuroimaging data (e.g. fMRI)* DOI: http://dx.doi.org/10.1002/hbm.1058 .. _NPD+06: **Norman, K. A., Polyn, S. M., Detre, G. J. & Haxby, J. V.** (2006). Beyond mind-reading: multi-voxel pattern analysis of fMRI data. *Trends in Cognitive Science*, *10*, 424–430. DOI: http://dx.doi.org/10.1016/j.tics.2006.07.005 .. _OJA+05: **O'Toole, A. J., Jiang, F., Abdi, H. & Haxby, J. V.** (2005). Partially Distributed Representations of Objects and Faces in Ventral Temporal Cortex . *Journal of Cognitive Neuroscience*, *17*, 580–590. DOI: http://dx.doi.org/10.1162/0898929053467550 .. _OJA+07: **O'Toole, A. J., Jiang, F., Abdi, H., Penard, N., Dunlop, J. P. & Parent, M. A.** (2007). Theoretical, statistical, and practical perspectives on pattern-based classification approaches to the analysis of functional neuroimaging data. *Journal of Cognitive Neuroscience*, *19*, 1735–1752. DOI: http://dx.doi.org/10.1162/jocn.2007.19.11.1735 .. _OGA2012: **Olivetti, E., Greiner, S. & Avesani, P.** (2012). Induction in Neuroscience with Classification: Issues and Solutions. Machine Learning and Interpretation in Neuroimaging, 42-50. DOI: http://dx.doi.org/10.1007/978-3-642-34713-9_6 .. _OVG+10: **Olivetti, E., Veeramachaneni, S., Greiner, S. & Avesani, P.** (2010). Brain Connectivity Analysis by Reduction to Pair Classification. The 2nd IAPR International Workshop on Cognitive Information Processing. .. _OWD+11: **Oosterhof, N. N., Wiestler, T., Downing, P. E. & Diedrichsen, J.** (2011). A comparison of volume-based and surface-based multi-voxel pattern analysis. *NeuroImage*, *56*, 593-600. .. _PLW14: **Parkinson, C., Liu, S. & Wheatley, T.** (2014). A Common Cortical Metric for Spatial, Temporal, and Social Distance. *Journal of Neuroscience*, *34*, 1979-1987. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1523/jneurosci.2159-13.2014 URL: http://dx.doi.org/10.1523/JNEUROSCI.2159-13.2014 .. _PVG+11: **Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M. & Duchesnay, E.** (2011). Scikit-learn: Machine Learning in Python. *Journal of Machine Learning Research*, *12*, 2825-2830. Keywords: :keyword:`pymvpa-reference` URL: http://dl.acm.org/citation.cfm?id=1953048.2078195 .. _PB11: **Pereira, F. & Botvinick, M.** (2011). Information mapping with pattern classifiers: a comparative study. *Neuroimage*, *56*, 476-496. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1016/j.neuroimage.2010.05.026 .. _PMB09: **Pereira, F., Mitchell, T. & Botvinick, M.** (2009). Machine learning classifiers and fMRI: A tutorial overview. *NeuroImage*, *45*, 199–209. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1016/j.neuroimage.2008.11.007 URL: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2892746/ .. _PSR11: **Pernet, C. R., Sajda, P. & Rousselet, G. A.** (2011). Single-trial analyses: why bother?. *Front Psychol*, *2*, 322. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.3389/fpsyg.2011.00322 .. _PP07: **Pessoa, L. & Padmala, S.** (2007). Decoding near-threshold perception of fear from distributed single-trial brain activation. *Cerebral Cortex*, *17*, 691–701. *Analysis of slow event-related fMRI data using patter classification techniques.* DOI: http://dx.doi.org/10.1093/cercor/bhk020 .. _PSE14: **Plitt, M., Savjani, R. R. & Eagleman, D. M.** (2014). Are corporations people too? The neural correlates of moral judgments about companies and individuals. *Social Neuroscience*, *10*, 113-125. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1080/17470919.2014.978026 URL: http://dx.doi.org/10.1080/17470919.2014.978026 .. _PZB+14: **Pollmann, S., Zinke, W., Baumgartner, F., Geringswald, F. & Hanke, M.** (2014). The right temporo-parietal junction contributes to visual feature binding. *NeuroImage*, *101*, 289-297. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.neuroimage.2014.07.021 URL: http://dx.doi.org/10.1016/j.neuroimage.2014.07.021 .. _RC12: **Raizada, R. D. & Connolly, A. C.** (2012). What makes different people's representations alike: neural similarity-space solves the problem of across-subject fMRI decoding. *Journal of Cognitive Neuroscience*, *24*, 868-877. URL: http://raizadalab.org/publications.html .. _REA+14: **Rueschemeyer, S., Ekman, M., van Ackeren, M. & Kilner, J.** (2014). Observing, Performing, and Understanding Actions: Revisiting the Role of Cortical Motor Areas in Processing of Action Words. *Journal of Cognitive Neuroscience*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1162/jocn_a_00576 .. _SMM+08: **Sato, J. R., Mourão-Miranda, J., Martin, M. d. G. M., Amaro, E., Morettin, P. A. & Brammer, M. J.** (2008). The impact of functional connectivity changes on support vector machines mapping of fMRI data. *Journal of Neuroscience Methods*, *172*, 94–104. *Discussion of possible scenarios where univariate and multivariate (SVM) sensitivity maps derived from the same dataset could differ. Including the case were univariate methods would assign a substantially larger score to some features.* Keywords: :keyword:`support vector machine`, :keyword:`SVM`, :keyword:`sensitivity` DOI: http://dx.doi.org/10.1016/j.jneumeth.2008.04.008 .. _SAF+15: **Schlegel, A., Alexander, P., Fogelson, S. V., Li, X., Lu, Z., Kohler, P. J., Riley, E., Tse, P. U. & Meng, M.** (2015). The artist emerges: Visual art learning alters neural structure and function. *NeuroImage*, *105*, 440-451. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.neuroimage.2014.11.014 URL: http://dx.doi.org/10.1016/j.neuroimage.2014.11.014 .. _SP14: **Schlichting, M. L. & Preston, A. R.** (2014). Memory reactivation during rest supports upcoming learning of related content. *Proceedings of the National Academy of Sciences*, *111*, 15845-15850. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1073/pnas.1404396111 URL: http://dx.doi.org/10.1073/pnas.1404396111 .. _SS01: **Scholkopf, B. & Smola, A.** (2001). Learning with Kernels: Support Vector Machines, Regularization. MIT Press: Cambridge, MA. *Good coverage of kernel methods and associated statistical learning aspects (e.g. error bounds)* Keywords: :keyword:`statistical learning`, :keyword:`kernel methods`, :keyword:`error estimation` .. _SRR+13: **Schrouff, J., Rosa, M. J., Rondina, J., Marquand, A., Chu, C., Ashburner, J., Phillips, C., Richiardi, J. & Mourão-Miranda, J.** (2013). PRoNTo: Pattern Recognition for Neuroimaging Toolbox. *Neuroinformatics*, 1-19. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1007/s12021-013-9178-1 .. _SDV+14: **Schönwiesner, M., Dechent, P., Voit, D., Petkov, C. I. & Krumbholz, K.** (2014). Parcellation of Human and Monkey Core Auditory Cortex with fMRI Pattern Classification and Objective Detection of Tonotopic Gradient Reversals. *Cerebral Cortex*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1093/cercor/bhu124 URL: http://dx.doi.org/10.1093/cercor/bhu124 .. _SHA+14: **Sha, L., Haxby, J. V., Abdi, H., Guntupalli, J. S., Oosterhof, N. N., Halchenko, Y. O. & Connolly, A. C.** (2014). The Animacy Continuum in the Human Ventral Vision Pathway. *Journal of Cognitive Neuroscience*. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1162/jocn_a_00733 .. _SSS+11: **Shackman, A. J., Salomons, T. V., Slagter, H. A., Fox, A. S., Winter, J. J. & Davidson, R. J.** (2011). The integration of negative affect, pain and cognitive control in the cingulate cortex. *Nature Reviews Neuroscience*, *12*, 154–167. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1038/nrn2994 URL: http://www.ncbi.nlm.nih.gov/pubmed/21331082 .. _Shi10: **Shiffrin, R.** (2010). Perspectives on Modeling in Cognitive Science. *Topics in Cognitive Science*, *2*, 736–750. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1111/j.1756-8765.2010.01092.x .. _SCR+13: **Smith, D. V., Clithero, J. A., Rorden, C. & Karnath, H.** (2013). Decoding the anatomical network of spatial attention. *Proceedings of the National Academy of Sciences*, *110*, 1518-1523. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1073/pnas.1210126110 .. _SFK+12: **Sobhani, M., Fox, G. R., Kaplan, J. & Aziz-Zadeh, L.** (2012). Interpersonal liking modulates motor-related neural regions. *PloS one*, *7*, e46809. DOI: http://dx.doi.org/10.1371/journal.pone.0046809 .. _SS09: **Spacek, M. & Swindale, N.** (2009). Python in Neuroscience. *The Neuromorphic Engineer*. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.2417/1200907.1682 .. _ST12: **Stelzer, J., Chen, Y. & Turner, R.** (2012). Statistical inference and multiple testing correction in classification-based multi-voxel pattern analysis (MVPA): Random permutations and cluster size control. *NeuroImage*, *65*, 69-82. Keywords: :keyword:`pymvpa-reference` DOI: http://dx.doi.org/10.1016/j.neuroimage.2012.09.063 .. _SPB+13: **Strnad, L., Peelen, M. V., Bedny, M. & Caramazza, A.** (2013). Multivoxel Pattern Analysis Reveals Auditory Motion Information in MT+ of Both Congenitally Blind and Sighted Individuals. *PloS one*, *8*, e63198. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1371/journal.pone.0063198 .. _SET+09: **Sun, D., van Erp, T. G., Thompson, P. M., Bearden, C. E., Daley, M., Kushan, L., Hardt, M. E., Nuechterlein, K. H., Toga, A. W. & Cannon, T. D.** (2009). Elucidating an MRI-Based Neuroanatomic Biomarker for Psychosis: Classification Analysis Using Probabilistic Brain Atlas and Machine Learning Algorithms. *Biological Psychiatry*, *66*, 1055–1060. *First published study employing PyMVPA for MRI-based analysis of Psychosis.* Keywords: :keyword:`pymvpa`, :keyword:`psychosis`, :keyword:`MRI` DOI: http://dx.doi.org/10.1016/j.biopsych.2009.07.019 .. _TRL09: **Trautmann, E., Ray, L. & Lever, J.** (2009). Development of an autonomous robot for ground penetrating radar surveys of polar ice. The 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 1685–1690. *Study using PyMVPA to perform immobilization detection to improve navigation reliability of an autonomous robot.* DOI: http://dx.doi.org/10.1109/IROS.2009.5354290 .. _vdL+12: **Van der Laan, L. N., De Ridder, D. T., Viergever, M. A. & Smeets, P. A.** (2012). Appearance matters: neural correlates of food choice and packaging aesthetics. *PloS one*, *7*, e41738. DOI: http://dx.doi.org/10.1371/journal.pone.0041738 .. _Vap95: **Vapnik, V.** (1995). The Nature of Statistical Learning Theory. Springer: New York. Keywords: :keyword:`support vector machine`, :keyword:`SVM` .. _VS06: **Varma, S. & Simon, R.** (2006). Bias in error estimation when using cross-validation for model selection. *BMC Bioinformatics*, *7*, 91. *Demonstration of overfitting and introducing the bias in the error estimation using cross-validation on entire dataset for performing model selection.* Keywords: :keyword:`statistical learning`, :keyword:`model selection`, :keyword:`error estimation`, :keyword:`hypothesis testing` DOI: http://dx.doi.org/10.1186/1471-2105-7-91 URL: http://www.ncbi.nlm.nih.gov/pubmed/16504092 .. _VCL11: **Vickery, T. J., Chun, M. M. & Lee, D.** (2011). Ubiquity and Specificity of Reinforcement Signals throughout the Human Brain . *Neuron *, *72*, 166-177. DOI: http://dx.doi.org/10.1016/j.neuron.2011.08.011 URL: http://www.sciencedirect.com/science/article/pii/S089662731100732X .. _VCG12: **Viswanathan, S., Cieslak, M. & Grafton, S. T.** (2012). On the geometric structure of fMRI searchlight-based information maps. *arXiv preprint arXiv:1210.6317*. .. _WLM+14: **Wang, Q., Luo, S., Monterosso, J., Zhang, J., Fang, X., Dong, Q. & Xue, G.** (2014). Distributed Value Representation in the Medial Prefrontal Cortex during Intertemporal Choices. *Journal of Neuroscience*, *34*, 7522-7530. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1523/jneurosci.0351-14.2014 URL: http://dx.doi.org/10.1523/JNEUROSCI.0351-14.2014 .. _WCW+07: **Wang, Z., Childress, A. R., Wang, J. & Detre, J. A.** (2007). Support vector machine learning-based fMRI data group analysis. *NeuroImage*, *36*, 1139–51. Keywords: :keyword:`support vector machine`, :keyword:`SVM`, :keyword:`group analysis` DOI: http://dx.doi.org/10.1016/j.neuroimage.2007.03.072 .. _WHA14: **Watson, D. M., Hartley, T. & Andrews, T. J.** (2014). Patterns of response to visual scenes are linked to the low-level properties of the image. *NeuroImage*, *99*, 402-410. Keywords: :keyword:`pymvpa` DOI: http://dx.doi.org/10.1016/j.neuroimage.2014.05.045 URL: http://dx.doi.org/10.1016/j.neuroimage.2014.05.045 .. _WTB+10: **Woolgar, A., Thompson, R., Bor, D. & Duncan, J.** (2010). Multi-voxel coding of stimuli, rules, and responses in human frontoparietal cortex. *NeuroImage*. DOI: http://dx.doi.org/10.1016/j.neuroimage.2010.04.035 URL: http://www.ncbi.nlm.nih.gov/pubmed/20406690 .. _Wri09: **Wright, D.** (2009). Ten Statisticians and Their Impacts for Psychologists. *Perspectives on Psychological Science*, *4*, 587–597. *Historical excurse into the life of 10 prominent statisticians of XXth century and their scientific contributions.* Keywords: :keyword:`statistics`, :keyword:`hypothesis testing` DOI: http://dx.doi.org/10.1111/j.1745-6924.2009.01167.x .. _XLR2012: **Xu, H., Lorbert, A., Ramadge, P. J., Guntupalli, J. S. & Haxby, J. V.** (2012). Regularized hyperalignment of multi-set fMRI data. Proceedings of the 2012 IEEE Signal Processing Workshop. .. _ZH05: **Zou, H. & Hastie, T.** (2005). Regularization and variable selection via the elastic net. *Journal of the Royal Statistical Society Series B*, *67*, 301–320. Keywords: :keyword:`feature selection`, :keyword:`statistical learning` URL: http://www-stat.stanford.edu/%7Ehastie/Papers/B67.2%20(2005)%20301-320%20Zou%20%26%20Hastie.pdf pymvpa2-2.6.4/doc/source/release_notes_0.5.rst000066400000000000000000000047611323370031300211350ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: release notes .. _chap_release_notes_0.5: *************************** Release Notes -- PyMVPA 0.5 *************************** For The Impatient ================= * Datasets are no longer relatively static objects, but become flexible multi-purpose containers that can handle attributes for samples, feature, or whole datasets. There is some inital support for other datatypes than NumPy's `ndarrays`, e.g. sparse matrices. Critical API Changes ==================== * `.states` -> `.ca` (for conditional attributes). All attributes stored in collections (parameters for Classifiers in ``.params``, states in ``.ca``) should be accessed not at top level of the object but through a collection. * Dataset: behaves more like a NumPy array. No specialized Dataset classes, but constructors - MaskedDataset -> `dataset_wizard` - NiftiDataset -> `fmri_dataset` - ERNiftiDataset -> `fmri_dataset` + `eventrelated_dataset` (see :ref:`event-related analysis example `) * MRI volumes: 3,4D volumes (and coordinates) are exposed with following order of axes: t,x,y,z. Previously we followed a convention of t,z,y,x order of axis in volume data (to be consistent with PyNIfTI). * Masks (`mask_mapper`) - now ``[1,1,0]`` is not the same as ``[True, True, False]`` * We have weird (but consistent) conventions now - classes are CamelCased - factory functions (even for whatever might have been before a class) are in pythonic_style * `detrend` -> `poly_detrend` * ``perchunk=bool`` (in zscore/detrend) got refactored into ``chunks_attr=None or string`` to specify on which sample attribute to operate. * internally and as provided by mvpa2.suite, `numpy` is imported as `np`, and `pylab` is imported as `pl` General Changes =============== Datasets ======== Sparse data support ------------------- Dataset in principal now support non-ndarray types for dataset samples. However, most parts of PyMVPA still assume an (at least) ndarray-like interface. Splitters --------- * `permute` -> `permute_attr`, so if you had `permute=True`, use `attr='targets'` if you like to permute targets pymvpa2-2.6.4/doc/source/release_notes_0.6.rst000066400000000000000000000043671323370031300211400ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: release notes .. _chap_release_notes_0.6: *************************** Release Notes -- PyMVPA 0.6 *************************** * All mappers, classifiers, regressions, and measures are now implemented as :class:`Node`\s that can be called with a :class:`Dataset` and return a processed dataset. All nodes provide a ``generate()`` method that causes the node to yield the result. In addition, special nodes added implementing more complex generators yielding multiple results (e.g. resampling, permuting, or splitting nodes). * Splitters as such do not exist any longer. They have been replaced by a number of generators that offer the same functionality, but can be combined in more flexible way. :class:`Splitter` now is just a generator which implements only the actual splitting of the :class:`Dataset` into a set of disjoint pieces (e.g. one for training and one for testing). * There is no `TransferError` anymore. Any classifier (or measure) can evaluate error functions using a post-processing node, e.g.:: SVM(..., postproc=BinaryFxNode(mean_mismatch_error, 'targets') This is possible, because by default classifiers simply return a dataset with all predictions as samples and assign the actual targets as a samples attribute. The post-processing node can subsequently compute arbitrary error values (total, or per-unique sample id, ...). * Feature selections are no longer a separate entity, but are implemented as training procedures for :class:`SliceMapper`. The most important effect is that :class:`SliceMapper` tries to perform slicing without copying whenever possible. Note that any feature selection procedure has to be trained on a dataset before it can be used -- otherwise it won't do the right thing(TM). * There is no dependency on PyNIfTI for any functionality anymore. It has been replaced by NiBabel (http://nipy.org/nibabel). pymvpa2-2.6.4/doc/source/sitemap.rst000066400000000000000000000006461323370031300173630ustar00rootroot00000000000000.. _sitemap: ****************** PyMVPA.org Sitemap ****************** .. toctree:: :maxdepth: 2 whoisusingit manual datadb examples faq glossary changelog devguide history references support legal todo .. Files which are not directly mentioned in any toctree but nevertheless included .. toctree:: :hidden: authors devguide docoverview index modref pymvpa2-2.6.4/doc/source/support.rst000066400000000000000000000043771323370031300174420ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Support .. _chap_support: ******************** Where To Get Support ******************** If you have problems installing the software or questions about usage, documentation or something else related to PyMVPA, you can post to the PyMVPA mailing list (preferred) or contact the authors on IRC: :Mailing list: pkg-exppsy-pymvpa@lists.alioth.debian.org [subscription_, archive_] :IRC: #neurodebian on OFTC All users should subscribe to the mailing list. PyMVPA is still a young project that is under heavy development. Significant modifications (hopefully improvements) are very likely to happen frequently. The mailing list is the preferred way to announce such changes. The mailing list archive can also be searched using the *mailing list archive search* located in the sidebar of the PyMVPA home page. .. _subscription: http://lists.alioth.debian.org/mailman/listinfo/pkg-exppsy-pymvpa .. _archive: http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/ Reporting A Bug --------------- If you think you have discovered a bug, please report it. Only known bugs can be fixed. If you have a GitHub_ account, the easiest way to report a bug is via the `issue tracker`_ -- just click the "Create Issue" button, describe your problem, and submit. If your are using a Debian package of PyMVPA, you can alternatively use the :command:`reportbug` command. We would appreciate if in your bug report you would include the output of call to :func:`mvpa2.wtf()`, which summarizes the details of your system. If you spot an error in the documentation, simply leave a comment at the bottom of the corresponding webpage on *pympva.org* (comments can be made without the need for any type of account). If you don't like either way, please post to the user mailing list (see above). .. _GitHub: http://github.com .. _issue tracker: http://github.com/PyMVPA/PyMVPA/issues pymvpa2-2.6.4/doc/source/todo.rst000077700000000000000000000000001323370031300177712../../TODOustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/tutorial.rst000066400000000000000000000064321323370031300175630ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial .. _chap_tutorial: ******************************* Tutorial Introduction to PyMVPA ******************************* In this tutorial we are going to take a look at all major parts of PyMVPA, introduce the most important concepts, and explore particular functionality in real-life analysis examples. This tutorial also serves as basic course material for workshops on introductions to MVPA. Please contact us, if you are interested in hosting a PyMVPA workshop at your institution. Please note that this tutorial is only concerned with aspects directly related to PyMVPA. It does **not** teach basic Python_ programming. If you are new to Python, we recommend that you take a look at the :ref:`chap_tutorial_prerequisites` for information about what you should know and how to obtain that knowledge. Throughout the tutorial there will be little exercises with tasks that aim to deepen your understanding of a particular problem or to train important skills. However, even without a dedicated exercise you are advised to run the tutorial code interactively and explore code snippets beyond what is touched by the tutorial. Typically, only the most important aspects will be mentioned and each building block in PyMVPA can be used in more flexible ways than what is shown. Enjoy the ride. Throughout the tutorial we will analyze :ref:`real BOLD fMRI data `. Therefore, to be able to run the code in this tutorial, you need to download the :ref:`corresponding data from the PyMVPA website `. Once downloaded, extract the tarball. On a NeuroDebian-enabled system, the tutorial data is also available from the ``python-mvpa2-tutorialdata`` package. The ``pymvpa2-tutorial`` command (installed with PyMVPA) can be invoked in a console in order to launch a tutorial session. If the tutorial data was downloaded manually it may be necessary to specify the appropriate ``--tutorial-data-path`` option (see ``pymvpa2-tutorial --help`` for more information). Virtually every Python script starts with some ``import`` statements that load functionality provided elsewhere. Likewise a tutorial session needs to import the PyMVPA packages and some little helpers we are going to use in the tutorial:: >>> from mvpa2.tutorial_suite import * If this command succeeds without error, everything is ready to go. If you want to prevent yourself from re-typing all code snippets into the terminal window, you might want to investigate IPython's ``%cpaste`` command, or use the `IPython notebooks`_ provided for each tutorial part. .. _Python: http://www.python.org .. _IPython notebook: http://ipython.org/notebook .. toctree:: :maxdepth: 2 tutorial_prerequisites tutorial_datasets tutorial_mappers tutorial_classifiers tutorial_searchlight tutorial_meta_classifiers tutorial_sensitivity tutorial_eventrelated tutorial_eventrelated_searchlight tutorial_openfmri tutorial_significance pymvpa2-2.6.4/doc/source/tutorial_classifiers.rst000066400000000000000000000562561323370031300221630ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, Classifier .. _chap_tutorial_classifiers: ***************************************** Classifiers -- All Alike, Yet Different ***************************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] In this chapter we will continue our work from :ref:`chap_tutorial_mappers` in order to replicate the study of :ref:`Haxby et al. (2001) `. For this tutorial there is a little helper function to yield the dataset we generated manually before: >>> from mvpa2.tutorial_suite import * >>> ds = get_haxby2001_data() The original study employed a so-called 1-nearest-neighbor classifier, using correlation as a distance measure. In PyMVPA this type of classifier is provided by the `~mvpa2.clfs.knn.kNN` class, that makes it possible to specify the desired parameters. >>> clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') A k-Nearest-Neighbor classifier performs classification based on the similarity of a sample with respect to each sample in a :term:`training dataset`. The value of ``k`` specifies the number of neighbors to derive a prediction, ``dfx`` sets the distance measure that determines the neighbors, and ``voting`` selects a strategy to choose a single label from the set of targets assigned to these neighbors. .. exercise:: Access the built-in help to inspect the ``kNN`` class regarding additional configuration options. Now that we have a classifier instance, it can be easily trained by passing the dataset to its ``train()`` method. >>> clf.train(ds) A trained classifier can subsequently be used to perform classification of unlabeled samples. The classification performance can be assessed by comparing these predictions to the target labels. >>> predictions = clf.predict(ds.samples) >>> np.mean(predictions == ds.sa.targets) 1.0 We see that the classifier performs remarkably well on our dataset -- it doesn't make even a single prediction error. However, most of the time we would not be particularly interested in the prediction accuracy of a classifier on the same dataset that it got trained with. .. exercise:: Think about why this particular classifier will always perform error-free classification of the training data -- regardless of the actual dataset content. If the reason is not immediately obvious, take a look at chapter 13.3 in :ref:`The Elements of Statistical Learning `. Investigate how the accuracy varies with different values of ``k``. Why is that? Instead, we are interested in the generalizability of the classifier on new, unseen data. This would allow us, in principle, to use it to assign labels to unlabeled data. Because we only have a single dataset, it needs to be split into (at least) two parts to achieve this. In the original study, Haxby and colleagues split the dataset into patterns of activations from odd versus even-numbered runs. Our dataset has this information in the ``runtype`` sample attribute: >>> print ds.sa.runtype ['even' 'even' 'even' 'even' 'even' 'even' 'even' 'even' 'odd' 'odd' 'odd' 'odd' 'odd' 'odd' 'odd' 'odd'] Using this attribute we can now easily split the dataset in half. PyMVPA datasets can be sliced in similar ways as NumPy_'s `ndarray`. The following calls select the subset of samples (i.e. rows in the datasets) where the value of the ``runtype`` attribute is either the string 'even' or 'odd'. >>> ds_split1 = ds[ds.sa.runtype == 'odd'] >>> len(ds_split1) 8 >>> ds_split2 = ds[ds.sa.runtype == 'even'] >>> len(ds_split2) 8 Now we could repeat the steps above: call ``train()`` with one dataset half and ``predict()`` with the other, and compute the prediction accuracy manually. However, a more convenient way is to let the classifier do this for us. Many objects in PyMVPA support a post-processing step that we can use to compute something from the actual results. The example below computes the *mismatch error* between the classifier predictions and the *target* values stored in our dataset. To make this work, we do not call the classifier's ``predict()`` method anymore, but "call" the classifier directly with the test dataset. This is a very common usage pattern in PyMVPA that we shall see a lot over the course of this tutorial. Again, please note that we compute an error now, hence lower values represent more accurate classification. >>> clf.set_postproc(BinaryFxNode(mean_mismatch_error, 'targets')) >>> clf.train(ds_split2) >>> err = clf(ds_split1) >>> print np.asscalar(err) 0.125 In this case, our choice of which half of the dataset is used for training and which half for testing was completely arbitrary, hence we could also estimate the transfer error after swapping the roles: >>> clf.train(ds_split1) >>> err = clf(ds_split2) >>> print np.asscalar(err) 0.0 We see that on average the classifier error is really low, and we achieve an accuracy level comparable to the results reported in the original study. .. index:: cross-validation .. _chap_tutorial_crossvalidation: Cross-validation ================ What we have just done was to manually split the dataset into combinations of training and testing datasets, given a specific sample attribute -- in this case whether a *pattern of activation* or :term:`sample` came from *even* or *odd* runs. We ran the classification analysis on each split to estimate the performance of the classifier model. In general, this approach is called :term:`cross-validation`, and involves splitting the dataset into multiple pairs of subsets, choosing sample groups by some criterion, and estimating the classifier performance by training it on the first dataset in a split and testing against the second dataset from the same split. PyMVPA provides a way to allow complete cross-validation procedures to run fully automatic, without the need for manual splitting of a dataset. Using the `~mvpa2.measures.base.CrossValidation` class, a cross-validation is set up by specifying what measure should be computed on each dataset split and how dataset splits should be generated. The measure that is usually computed is the transfer error that we already looked at in the previous section. The second element, a :term:`generator` for datasets, is another very common tool in PyMVPA. The following example uses `~mvpa2.generators.partition.HalfPartitioner`, a generator that, when called with a dataset, marks all samples regarding their association with the first or second half of the dataset. This happens based on the values of a specified sample attribute -- in this case ``runtype`` -- much like the manual dataset splitting that we have performed earlier. `~mvpa2.generators.partition.HalfPartitioner` will make sure to subsequently assign samples to both halves, i.e. samples from the first half in the first generated dataset will be in the second half of the second generated dataset. With these two techniques we can replicate our manual cross-validation easily -- reusing our existing classifier, but without the custom post-processing step. >>> # disable post-processing again >>> clf.set_postproc(None) >>> # dataset generator >>> hpart = HalfPartitioner(attr='runtype') >>> # complete cross-validation facility >>> cv = CrossValidation(clf, hpart) .. exercise:: Try calling the ``hpart`` object with our dataset. What happens? Now try passing the dataset to its ``generate()`` method. What happens now? Make yourself familiar with the concept of a Python generator. Investigate what the code snippet ``list(xrange(5))`` does, and try to adapt it to the ``HalfPartitioner``. Once the ``cv`` object is created, it can be called with a dataset, just like we did with the classifier before. It will internally perform all the dataset partitioning, split each generated dataset into training and testing sets (based on the partitions), and train and test the classifier repeatedly. Finally, it will return the results of all cross-validation folds. >>> cv_results = cv(ds) >>> np.mean(cv_results) 0.0625 Actually, the cross-validation results are returned as another dataset that has one sample per fold and a single feature with the computed transfer-error per fold. >>> len(cv_results) 2 >>> cv_results.samples array([[ 0. ], [ 0.125]]) .. Disable for now as this doesn't work that way anymore. Look at RepeatedMeasure for a related XXX... The advantage of having a dataset as the return value (as opposed to a plain vector, or even a single number) is that we can easily attach additional information. In this case the dataset also contains some information about which samples (indicated by the respective attribute values used by the splitter) formed the training and testing datasets in each fold. . >>> print cv_results.sa.cvfolds [0 1] .. _NumPy: http://numpy.scipy.org .. todo:: * TEST THE DIFFERENCE OF HALFSPLITTER vs. ODDEVEN SPLITTER on the full dataset later on Any classifier, really ====================== A short summary of all code for the analysis we developed so far is this: >>> clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') >>> cvte = CrossValidation(clf, HalfPartitioner(attr='runtype')) >>> cv_results = cvte(ds) >>> np.mean(cv_results) 0.0625 Looking at this little code snippet we can nicely see the logical parts of a cross-validated classification analysis. 1. Load the data 2. Choose a classifier 3. Set up an error function 4. Evaluate the error in a cross-validation procedure 5. Inspect results Our previous choice of the classifier was guided by the intention to replicate :ref:`Haxby et al. (2001) `, but what if we want to try a different algorithm? In this case another nice feature of PyMVPA comes into play. All classifiers implement a common interface that makes them easily interchangeable without the need to adapt any other part of the analysis code. If, for example, we want to try the popular :mod:`~mvpa2.clfs.svm` (Support Vector Machines) on our example dataset it looks like this: >>> clf = LinearCSVMC() >>> cvte = CrossValidation(clf, HalfPartitioner(attr='runtype')) >>> cv_results = cvte(ds) >>> np.mean(cv_results) 0.1875 Instead of k-nearest-neighbor, we create a linear SVM classifier, internally using the popular LIBSVM library (note that PyMVPA provides additional SVM implementations). The rest of the code remains identical. SVM with its default settings seems to perform slightly worse than the simple kNN-classifier. We'll get back to the classifiers shortly. Let's first look at the remaining part of this analysis. We already know that `~mvpa2.measures.base.CrossValidation` can be used to compute errors. So far we have only used the mean number of mismatches between actual targets and classifier predictions as the error function (which is the default). However, PyMVPA offers a number of alternative functions in the :mod:`~mvpa2.misc.errorfx` module, but it is also trivial to specify custom ones. For example, if we do not want to have error reported, but instead accuracy, we can do that: >>> cvte = CrossValidation(clf, HalfPartitioner(attr='runtype'), ... errorfx=lambda p, t: np.mean(p == t)) >>> cv_results = cvte(ds) >>> np.mean(cv_results) 0.8125 This example reuses the SVM classifier we have create before, and yields exactly what we expect from the previous result. The details of the cross-validation procedure are also heavily customizable. We have seen that a `~mvpa2.generators.partition.Partitioner` is used to generate training and testing dataset for each cross-validation fold. So far we have only used `~mvpa2.generators.partition.HalfPartitioner` to divide the dataset into odd and even runs (based on our custom sample attribute ``runtype``). However, in general it is more common to perform so called leave-one-out cross-validation, where *one* independent part of a dataset is selected as testing dataset, while the other parts constitute the training dataset. This procedure is repeated till all parts have served as the testing dataset once. In case of our dataset we could consider each of the 12 runs as independent measurements (fMRI data doesn't allow us to consider temporally adjacent data to be considered independent). To run such an analysis, we first need to redo our dataset preprocessing, as, in the current one, we only have one sample per stimulus category for both odd and even runs. To get a dataset with one sample per stimulus category for each run, we need to modify the averaging step. Using what we have learned from the :ref:`last tutorial part ` the following code snippet should be plausible: >>> # directory that contains the data files >>> datapath = os.path.join(tutorial_data_path, 'haxby2001') >>> # load the raw data >>> ds = load_tutorial_data(roi='vt') >>> # pre-process >>> poly_detrend(ds, polyord=1, chunks_attr='chunks') >>> zscore(ds, param_est=('targets', ['rest'])) >>> ds = ds[ds.sa.targets != 'rest'] >>> # average >>> run_averager = mean_group_sample(['targets', 'chunks']) >>> ds = ds.get_mapped(run_averager) >>> ds.shape (96, 577) Instead of two samples per category in the whole dataset, now we have one sample per category, per experiment run, hence 96 samples in the whole dataset. To set up a 12-fold leave-one-run-out cross-validation, we can make use of `~mvpa2.generators.partition.NFoldPartitioner`. By default it is going to select samples from one ``chunk`` at a time: >>> cvte = CrossValidation(clf, NFoldPartitioner(), ... errorfx=lambda p, t: np.mean(p == t)) >>> cv_results = cvte(ds) >>> np.mean(cv_results) 0.78125 We get almost the same prediction accuracy (reusing the SVM classifier and our custom error function). Note that this time we performed the analysis on a lot more samples that were each was computed from just a few fMRI volumes (about nine each). So far we have just looked at the mean accuracy or error. Let's investigate the results of the cross-validation analysis a bit further. >>> type(cv_results) >>> print cv_results.samples [[ 0.75 ] [ 0.875] [ 1. ] [ 0.75 ] [ 0.75 ] [ 0.875] [ 0.75 ] [ 0.875] [ 0.75 ] [ 0.375] [ 1. ] [ 0.625]] The returned value is actually a `~mvpa2.datasets.base.Dataset` with the results for all cross-validation folds. Since our error function computes only a single scalar value for each fold the dataset only contains a single feature (in this case the accuracy), and a sample per each fold. .. XXX disabled for now -- see tutorial_start for reason Moreover, the dataset also offers a sample attribute that show which particular set of chunks formed the training and testing set per fold. . >> print cv_results.sa.cvfold ['1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0->0.0' '0.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0->1.0' '0.0,1.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0->2.0' '0.0,1.0,2.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0->3.0' '0.0,1.0,2.0,3.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0->4.0' '0.0,1.0,2.0,3.0,4.0,6.0,7.0,8.0,9.0,10.0,11.0->5.0' '0.0,1.0,2.0,3.0,4.0,5.0,7.0,8.0,9.0,10.0,11.0->6.0' '0.0,1.0,2.0,3.0,4.0,5.0,6.0,8.0,9.0,10.0,11.0->7.0' '0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,9.0,10.0,11.0->8.0' '0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,10.0,11.0->9.0' '0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,11.0->10.0' '0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0->11.0'] We Need To Take A Closer Look ============================= By now we have already done a few cross-validation analyses using two different classifiers and different pre-processing strategies. In all these cases we have just looked at the generalization performance or error. However, error rates hide a lot of interesting information that is very important for an interpretation of results. In our case we analyzed a dataset with eight different categories. An average misclassification rate doesn't tell us much about the contribution of each category to the prediction error. It could be that *half of the samples of each category* get misclassified, but the same average error might be due to *all samples from half of the categories* being completely misclassified, while prediction accuracy for samples from the remaining categories is perfect. These two results would have to be interpreted in totally different ways, despite the same average error rate. In psychological research this type of results is usually presented as a `contingency table`_ or `cross tabulation`_ of expected vs. empirical results. `Signal detection theory`_ offers a whole range of techniques to characterize such results. From this angle a classification analysis is hardly any different from a psychological experiment where a human observer performs a detection task, hence the same analysis procedures can be applied here as well. .. _contingency table: http://en.wikipedia.org/wiki/Contingency_table .. _cross tabulation: http://en.wikipedia.org/wiki/Cross_tabulation .. _signal detection theory: http://en.wikipedia.org/wiki/Detection_theory PyMVPA provides convenient access to :term:`confusion matrices `, i.e. contingency tables of targets vs. actual predictions. However, to prevent wasting CPU-time and memory they are not computed by default, but instead have to be enabled explicitly. Optional analysis results like this are available in a dedicated collection of :term:`conditional attribute`\ s -- analogous to ``sa`` and ``fa`` in datasets, it is named ``ca``. Let's see how it works: >>> cvte = CrossValidation(clf, NFoldPartitioner(), ... errorfx=lambda p, t: np.mean(p == t), ... enable_ca=['stats']) >>> cv_results = cvte(ds) Via the ``enable_ca`` argument we triggered computing confusion tables for all cross-validation folds, but otherwise there is no change in the code. Afterwards the aggregated confusion for the whole cross-validation procedure is available in the ``ca`` collection. Let's take a look (note that in the printed manual the output is truncated due to page-width constraints -- please refer to the HTML-based version full the full matrix). >>> print cvte.ca.stats.as_string(description=True) ----------. predictions\targets bottle cat chair face house scissors scrambledpix shoe `------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ P' N' FP FN PPV NPV TPR SPC FDR MCC F1 bottle 6 0 3 0 0 5 0 1 15 75 9 6 0.4 0.92 0.5 0.88 0.6 0.34 0.44 cat 0 10 0 0 0 0 0 0 10 67 0 2 1 0.97 0.83 1 0 0.79 0.91 chair 0 0 7 0 0 0 0 0 7 73 0 5 1 0.93 0.58 1 0 0.66 0.74 face 0 2 0 12 0 0 0 0 14 63 2 0 0.86 1 1 0.97 0.14 0.8 0.92 house 0 0 0 0 12 0 0 0 12 63 0 0 1 1 1 1 0 0.87 1 scissors 2 0 1 0 0 6 0 0 9 75 3 6 0.67 0.92 0.5 0.96 0.33 0.48 0.57 scrambledpix 2 0 1 0 0 0 12 1 16 63 4 0 0.75 1 1 0.94 0.25 0.75 0.86 shoe 2 0 0 0 0 1 0 10 13 67 3 2 0.77 0.97 0.83 0.96 0.23 0.69 0.8 Per target: ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ P 12 12 12 12 12 12 12 12 N 84 84 84 84 84 84 84 84 TP 6 10 7 12 12 6 12 10 TN 69 65 68 63 63 69 63 65 Summary \ Means: ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ 12 68.25 2.62 2.62 0.81 0.96 0.78 0.96 0.19 0.67 0.78 CHI^2 442.67 p=2e-58 ACC 0.78 ACC% 78.12 # of sets 12 ACC(i) = 0.87-0.015*i p=0.3 r=-0.33 r^2=0.11 Statistics computed in 1-vs-rest fashion per each target. Abbreviations (for details see http://en.wikipedia.org/wiki/ROC_curve): TP : true positive (AKA hit) TN : true negative (AKA correct rejection) FP : false positive (AKA false alarm, Type I error) FN : false negative (AKA miss, Type II error) TPR: true positive rate (AKA hit rate, recall, sensitivity) TPR = TP / P = TP / (TP + FN) FPR: false positive rate (AKA false alarm rate, fall-out) FPR = FP / N = FP / (FP + TN) ACC: accuracy ACC = (TP + TN) / (P + N) SPC: specificity SPC = TN / (FP + TN) = 1 - FPR PPV: positive predictive value (AKA precision) PPV = TP / (TP + FP) NPV: negative predictive value NPV = TN / (TN + FN) FDR: false discovery rate FDR = FP / (FP + TP) MCC: Matthews Correlation Coefficient MCC = (TP*TN - FP*FN)/sqrt(P N P' N') F1 : F1 score F1 = 2TP / (P + P') = 2TP / (2TP + FP + FN) AUC: Area under (AUC) curve CHI^2: Chi-square of confusion matrix LOE(ACC): Linear Order Effect in ACC across sets # of sets: number of target/prediction sets which were provided This output is a comprehensive summary of the performed analysis. We can see that the confusion matrix has a strong diagonal, and confusion happens mostly among small objects. In addition to the plain contingency table there are also a number of useful summary statistics readily available -- including average accuracy. Especially for multi-class datasets the matrix quickly becomes incomprehensible. For these cases the confusion matrix can also be plotted via its `~mvpa2.clfs.transerror.ConfusionMatrix.plot()` method. If the confusions shall be used as input for further processing they can also be accessed in pure matrix format: >>> print cvte.ca.stats.matrix [[ 6 0 3 0 0 5 0 1] [ 0 10 0 0 0 0 0 0] [ 0 0 7 0 0 0 0 0] [ 0 2 0 12 0 0 0 0] [ 0 0 0 0 12 0 0 0] [ 2 0 1 0 0 6 0 0] [ 2 0 1 0 0 0 12 1] [ 2 0 0 0 0 1 0 10]] The classifier confusions are just an example of the general mechanism of conditional attribute that is supported by many objects in PyMVPA. pymvpa2-2.6.4/doc/source/tutorial_datasets.rst000066400000000000000000000473551323370031300214640ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, Dataset concepts .. _chap_tutorial_datasets: ***************************** Dataset basics and concepts ***************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] A `~mvpa2.datasets.base.Dataset` is the basic data container in PyMVPA. It serves as the primary form of data storage, but also as a common container for results returned by most algorithms. In this tutorial part we will take a look at what a dataset consists of, and how it works. Most datasets in PyMVPA are represented as a two-dimensional array, where the first axis is the :term:`sample`\s axis, and the second axis represents the :term:`feature`\s of the samples. In the simplest case, a dataset only contains *data* that is a matrix of numerical values. >>> from mvpa2.tutorial_suite import * >>> data = [[ 1, 1, -1], ... [ 2, 0, 0], ... [ 3, 1, 1], ... [ 4, 0, -1]] >>> ds = Dataset(data) >>> ds.shape (4, 3) >>> len(ds) 4 >>> ds.nfeatures 3 >>> ds.samples array([[ 1, 1, -1], [ 2, 0, 0], [ 3, 1, 1], [ 4, 0, -1]]) In the above example, every row vector in the ``data`` matrix becomes an observation, a :term:`sample`, in the dataset, and every column vector represents an individual variable, a :term:`feature`. The concepts of samples and features are essential for a dataset, hence we take a closer look. The dataset assumes that the first axis of the data is to be used to define individual samples. If the dataset is created using a one-dimensional vector it will therefore have as many samples as elements in the vector, and only one feature. >>> one_d = [ 0, 1, 2, 3 ] >>> one_ds = Dataset(one_d) >>> one_ds.shape (4, 1) On the other hand, if a dataset is created from multi-dimensional data, only its second axis represents the features >>> import numpy as np >>> m_ds = Dataset(np.random.random((3, 4, 2, 3))) >>> m_ds.shape (3, 4, 2, 3) >>> m_ds.nfeatures 4 In this case we have a dataset with three samples and four features, where each feature is a 2x3 matrix. In case somebody is wondering now why not simply treat each value in the data array as its own feature (yielding 24 features) -- stay tuned, as this is going to be of importance later on. Attributes ========== What we have seen so far does not really warrant the use of a dataset over a plain array or a matrix with samples. However, in the MVPA context we often need to know more about each sample than just the value of its features. For example, in order to train a supervised-learning algorithm to discriminate two classes of samples we need per-sample :term:`target` values to label each sample with its respective class. Such information can then be used in order to, for example, split a dataset into specific groups of samples. For this type of auxiliary information a dataset can also contain collections of three types of :term:`attribute`\ s: a :term:`sample attribute`, a :term:`feature attribute`, and a :term:`dataset attribute`. For samples ----------- Each :term:`sample` in a dataset can have an arbitrary number of additional attributes. They are stored as vectors of the same length as the number of samples in a collection, and are accessible via the ``sa`` attribute. A collection is similar to a standard Python `dict`, and hence adding sample attributes works just like adding elements to a dictionary: >>> ds.sa['some_attr'] = [ 0., 1, 1, 3 ] >>> ds.sa.keys() ['some_attr'] However, sample attributes are not directly stored as plain data, but for various reasons as a so-called `~mvpa2.base.collections.Collectable` that in turn embeds a NumPy array with the actual attribute: >>> type(ds.sa['some_attr']) >>> ds.sa['some_attr'].value array([ 0., 1., 1., 3.]) This "complication" is done to be able to extend attributes with additional functionality that is often needed and can offer a significant speed-up of processing. For example, sample attributes carry a list of their unique values. This list is only computed once (upon first request) and can subsequently be accessed directly without repeated and expensive searches: >>> ds.sa['some_attr'].unique array([ 0., 1., 3.]) However, for most interactive uses of PyMVPA this type of access to attributes' ``.value`` is relatively cumbersome (too much typing), therefore collections support direct access by name: >>> ds.sa.some_attr array([ 0., 1., 1., 3.]) Another purpose of the sample attribute collection is to preserve data integrity, by disallowing improper attributes: >>> ds.sa['invalid'] = 4 Traceback (most recent call last): File "/usr/lib/python2.6/doctest.py", line 1253, in __run compileflags, 1) in test.globs File "", line 1, in ds.sa['invalid'] = 4 File "/home/test/pymvpa/mvpa2/base/collections.py", line 459, in __setitem__ value = ArrayCollectable(value) File "/home/test/pymvpa/mvpa2/base/collections.py", line 171, in __init__ % self.__class__.__name__) ValueError: ArrayCollectable only takes sequences as value. >>> ds.sa['invalid'] = [ 1, 2, 3, 4, 5, 6 ] Traceback (most recent call last): File "/usr/lib/python2.6/doctest.py", line 1253, in __run compileflags, 1) in test.globs File "", line 1, in ds.sa['invalid'] = [ 1, 2, 3, 4, 5, 6 ] File "/home/test/pymvpa/mvpa2/base/collections.py", line 468, in __setitem__ str(self))) ValueError: Collectable 'invalid' with length [6] does not match the required length [4] of collection ''. But other than basic plausibility checks, no further constraints on values of samples attributes exist. As long as the length of the attribute vector matches the number of samples in the dataset, and the attributes values can be stored in a NumPy array, any value is allowed. Consequently, it is even possible to have n-dimensional arrays, not just vectors, as attributes -- as long as their first axis matched the number of samples in a dataset. Moreover, it is perfectly possible and supported to store literal (non-numerical) attributes. It should also be noted that each attribute may have its own individual data type, hence it is possible to have literal and numeric attributes in the same dataset. >>> ds.sa['literal'] = ['one', 'two', 'three', 'four'] >>> sorted(ds.sa.keys()) ['literal', 'some_attr'] >>> for attr in ds.sa: ... print "%s: %s" % (attr, ds.sa[attr].value.dtype.name) literal: string40 some_attr: float64 For features ------------ :term:`Feature attribute`\ s are almost identical to :term:`sample attribute`\ s, the *only* difference is that instead of having one attribute value per sample, feature attributes have one value per (guess what? ...) *feature*. Moreover, they are stored in a separate collection in the dataset that is called ``fa``: >>> ds.nfeatures 3 >>> ds.fa['my_fav'] = [0, 1, 0] >>> ds.fa['responsible'] = ['me', 'you', 'nobody'] >>> sorted(ds.fa.keys()) ['my_fav', 'responsible'] For the entire dataset ---------------------- Lastly, there can be also attributes, not per-sample, or per-feature, but for the dataset as a whole: so called :term:`dataset attribute`\s. Both assigning such attributes and accessing them later on work in exactly the same way as for the other two types of attributes, except that dataset attributes are stored in their own collection which is accessible via the ``a`` property of the dataset. However, in contrast to sample and feature attribute, no constraints on the type or size are imposed -- anything can be stored. Let's store a list with the names of all files in the current directory, just because we can: >>> from glob import glob >>> ds.a['pointless'] = glob("*") >>> 'setup.py' in ds.a.pointless True Slicing, resampling, feature selection ====================================== At this point we can already construct a dataset from simple arrays and enrich it with an arbitrary number of additional attributes. But just having a dataset isn't enough. We often need to be able to select subsets of a dataset for further processing. Slicing a dataset (i.e. selecting specific subsets) is very similar to slicing a NumPy array. It actually works *almost* identically. A dataset supports Python's `slice` syntax, but also selection by boolean masks and indices. The following three slicing operations result in equivalent output datasets, by always selecting every other samples in the dataset: >>> # original >>> ds.samples array([[ 1, 1, -1], [ 2, 0, 0], [ 3, 1, 1], [ 4, 0, -1]]) >>> >>> # Python-style slicing >>> ds[::2].samples array([[ 1, 1, -1], [ 3, 1, 1]]) >>> >>> # Boolean mask array >>> mask = np.array([True, False, True, False]) >>> ds[mask].samples array([[ 1, 1, -1], [ 3, 1, 1]]) >>> >>> # Slicing by index -- Python indexing start with 0 !! >>> ds[[0, 2]].samples array([[ 1, 1, -1], [ 3, 1, 1]]) .. exercise:: Search the `NumPy documentation `__ for the difference between "basic slicing" and "advanced indexing". The aspect of memory consumption, especially, applies to dataset slicing as well, and being aware of this fact might help to write more efficient analysis scripts. Which of the three slicing approaches above is the most memory-efficient? Which of the three slicing approaches above might lead to unexpected side-effects if the output dataset gets modified? All three slicing-styles are equally applicable to the selection of feature subsets within a dataset. Remember, features are represented on the second axis of a dataset. >>> ds[:, [1,2]].samples array([[ 1, -1], [ 0, 0], [ 1, 1], [ 0, -1]]) By applying a selection by indices to the second axis, we can easily get the last two features of our example dataset. Please note that the ``:`` is supplied for the first axis slicing. This is the Python way to indicate *take everything along this axis*, thus including all samples. As you can guess, it is also possible to select subsets of samples and features at the same time. >>> subds = ds[[0,1], [0,2]] >>> subds.samples array([[ 1, -1], [ 2, 0]]) If you have prior experience with NumPy you might be confused now. What you might have expected is this: >>> ds.samples[[0,1], [0,2]] array([1, 0]) The above code applies the same slicing directly to the NumPy array of ``.samples``, and the result is fundamentally different. For NumPy arrays this style of slicing allows selection of specific elements by their indices on each axis of an array. For PyMVPA's datasets this mode is not very useful, instead we typically want to select rows and columns, i.e. samples and features given by their indices. .. exercise:: Try to select samples [0,1] and features [0,2] simultaneously using dataset slicing. Now apply the same slicing to the samples array itself (``ds.samples``) -- make sure that the result doesn't surprise you and find a pure NumPy way to achieve similar selection. One last interesting thing to look at, in the context of dataset slicing, are the attributes. What happens to them when a subset of samples and/or features is chosen? Our original dataset had both samples and feature attributes: >>> print ds.sa.some_attr [ 0. 1. 1. 3.] >>> print ds.fa.responsible ['me' 'you' 'nobody'] Now let's look at what they became in the subset-dataset we previously created: >>> print subds.sa.some_attr [ 0. 1.] >>> print subds.fa.responsible ['me' 'nobody'] We see that both attributes are still there and, moreover, also the corresponding subsets have been selected. It makes it convenient to select subsets of the dataset matching specific values of sample or feature attributes, or both: >>> subds = ds[ds.sa.some_attr == 1., ds.fa.responsible == 'me'] >>> print subds.shape (2, 1) To simplify such selections based on the values of attributes, it is possible to specify the desired selection as a dictionary for either samples of features dimensions, where each key corresponds to an attribute name, and each value specifies a list of desired attribute values. Specifying multiple keys for either dimension can be used to obtain the intersection of matching elements: >>> subds = ds[{'some_attr': [1., 0.], 'literal': ['two']}, {'responsible': ['me', 'you']}] >>> print subds.sa.some_attr, subds.sa.literal, subds.fa.responsible [ 1.] ['two'] ['me' 'you'] .. exercise:: Check the documentation of the `~mvpa2.datasets.base.Dataset.select()` method that can also be used to implement such a selection, but provides an additional argument ``strict``. Modify the example above to select non-existing elements via ``[]``, and compare to the result to the output of ``select()`` with ``strict=False``. Load fMRI data ============== Enough theoretical foreplay -- let's look at a concrete example of loading an fMRI dataset. PyMVPA has several helper functions to load data from specialized formats, and the one for fMRI data is `~mvpa2.datasets.mri.fmri_dataset()`. The example dataset we are going to look at is a single subject from Haxby et al. (2001). For more convenience and less typing, we have a short cut for the path of the directory with the fMRI data: `tutorial_data_path``. In the simplest case, we now let `~mvpa2.datasets.mri.fmri_dataset` do its job, by just pointing it to the fMRI data file. The data is stored as a NIfTI file that has all volumes of one experiment concatenated into a single file. >>> bold_fname = os.path.join(tutorial_data_path, 'haxby2001', 'sub001', ... 'BOLD', 'task001_run001', 'bold.nii.gz') >>> ds = fmri_dataset(bold_fname) >>> len(ds) 121 >>> ds.nfeatures 163840 >>> ds.shape (121, 163840) We can notice two things. First -- *it worked!* Second, we obtained a two-dimensional dataset with 121 samples (these are volumes in the NIfTI file), and over 160k features (these are voxels in the volume). The voxels are represented as a one-dimensional vector, and it seems that they have lost their association with the 3D-voxel-space. However, this is not the case, as we will see later. PyMVPA represents data in this simple format to make it compatible with a vast range of generic algorithms that expect data to be a simple matrix. We loaded all data from that NIfTI file, but usually we would be interested in a subset only, i.e. "brain voxels". `~mvpa2.datasets.mri.fmri_dataset` is capable of performing data masking. We just need to specify a mask image. Such a mask image is generated in pretty much any fMRI analysis pipeline -- may it be a full-brain mask computed during skull-stripping, or an activation map from a functional localizer. We are going to use the original GLM-based localizer mask of ventral temporal cortex from Haxby et al. (2001). Let's reload the dataset: >>> mask_fname = os.path.join(tutorial_data_path, 'haxby2001', 'sub001', ... 'masks', 'orig', 'vt.nii.gz') >>> ds = fmri_dataset(bold_fname, mask=mask_fname) >>> len(ds) 121 >>> ds.nfeatures 577 As expected, we get the same number of samples, but now only 577 features -- voxels corresponding to non-zero elements in the mask image. Now, let's explore this dataset a little further. .. exercise:: Explore the dataset attribute collections. What kind of information do they contain? Besides samples, the dataset offers a number of attributes that enhance the data with information that is present in the NIfTI image file header. Each sample has information about its volume index in the time series and the actual acquisition time (relative to the beginning of the file). Moreover, the original voxel index (sometimes referred to as ``ijk``) for each feature is available too. Finally, the dataset also contains information about the dimensionality of the input volumes, voxel size, and any other NIfTI-specific information since it also includes a dump of the full NIfTI image header. >>> ds.sa.time_indices[:5] array([0, 1, 2, 3, 4]) >>> ds.sa.time_coords[:5] array([ 0. , 2.5, 5. , 7.5, 10. ]) >>> ds.fa.voxel_indices[:5] array([[ 6, 23, 24], [ 7, 18, 25], [ 7, 18, 26], [ 7, 18, 27], [ 7, 19, 25]]) >>> ds.a.voxel_eldim (3.5, 3.75, 3.75) >>> ds.a.voxel_dim (40, 64, 64) >>> 'imghdr' in ds.a True In addition to all this information, the dataset also carries a key additional attribute: the *mapper*. A mapper is an important concept in PyMVPA, and hence has its own :ref:`tutorial chapter `. >>> print ds.a.mapper -> Having all these attributes being part of a dataset is often a useful thing to have, but in some cases (e.g. when it comes to efficiency, and/or very large datasets) one might want to have a leaner dataset with just the information that is really necessary. One way to achieve this, is to strip all unwanted attributes. The Dataset class' :meth:`~mvpa2.base.dataset.AttrDataset.copy()` method can help with that. >>> stripped = ds.copy(deep=False, sa=['time_coords'], fa=[], a=[]) >>> print stripped > We can see that all attributes besides ``time_coords`` have been filtered out. Setting the ``deep`` arguments to ``False`` causes the copy function to reuse the data from the source dataset to generate the new stripped one, without duplicating all data in memory -- meaning both datasets now share the sample data and any change done to ``ds`` will also affect ``stripped``. Intermediate storage ==================== Some data preprocessing can take a long time. One would rather prevent having to do it over and over again, and instead just store the preprocessed data into a file for subsequent analyses. PyMVPA offers functionality to store a large variety of objects, including datasets, into HDF5_ files. A variant of this format is also used by recent versions of Matlab to store data. .. _HDF5: http://en.wikipedia.org/wiki/Hierarchical_Data_Format .. _h5py: http://h5py.alfven.org For HDF5 support, PyMVPA depends on the h5py_ package. If it is available, any dataset can be saved to a file by simply calling :meth:`~mvpa2.base.dataset.AttrDataset.save()` with the desired filename. >>> import tempfile, shutil >>> # create a temporary directory >>> tempdir = tempfile.mkdtemp() >>> ds.save(os.path.join(tempdir, 'mydataset.hdf5')) HDF5 is a flexible format that also supports, for example, data compression. To enable it, you can pass additional arguments to :meth:`~mvpa2.base.dataset.AttrDataset.save()` that are supported by h5py's `Group.create_dataset()`. Instead of using :meth:`~mvpa2.base.dataset.AttrDataset.save()` one can also use the `~mvpa2.base.hdf5.h5save()` function in a similar way. Saving the same dataset with maximum gzip-compression looks like this: >>> ds.save(os.path.join(tempdir, 'mydataset.gzipped.hdf5'), compression=9) >>> h5save(os.path.join(tempdir, 'mydataset.gzipped.hdf5'), ds, compression=9) Loading datasets from a file is easy too. `~mvpa2.base.hdf5.h5load()` takes a filename as an argument and returns the stored dataset. Compressed data will be handled transparently. >>> loaded = h5load(os.path.join(tempdir, 'mydataset.hdf5')) >>> np.all(ds.samples == loaded.samples) True >>> # cleanup the temporary directory, and everything it includes >>> shutil.rmtree(tempdir, ignore_errors=True) Note that this type of dataset storage is not appropriate from long-term archival of data, as it relies on a stable software environment. For long-term storage, use other formats. pymvpa2-2.6.4/doc/source/tutorial_eventrelated.rst000066400000000000000000000446041323370031300223300ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, event-related fMRI .. _chap_tutorial_eventrelated: ***************************** Event-related Data Analysis ***************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] In all previous tutorial parts we have analyzed the same fMRI data. We analyzed it using a number of different strategies, but they all had one thing in common: A sample in each dataset was always a single volume from an fMRI time series. Sometimes, we have limited ourselves to just a specific temporal windows of interest, sometimes we averaged many fMRI volumes into a single one. In all cases, however, a feature always corresponded to a voxel in the fMRI volume and appeared only once in the dataset. In this part we are going to extend the analysis beyond the spatial dimensions and will consider *time* as another aspect of our data. We will demonstrate two different approaches: 1) modeling of experimental conditions and proceed with an analysis of model parameter estimates, and 2) the extraction of spatio-temporal data samples. The latter approach is common, for example, in ERP-analyses of EEG data. Let's start with our well-known example dataset -- this time selecting a subset of ventral temporal regions. >>> from mvpa2.tutorial_suite import * >>> ds = get_raw_haxby2001_data(roi=(36,38,39,40)) As we know, this dataset consists of 12 concatenated experiment sessions. Every session had a stimulation block spanning multiple fMRI volumes for each of the eight stimulus categories. Stimulation blocks were separated by rest periods. Event-related Pre-processing Is Not Event-related ------------------------------------------------- For an event-related analysis, most of the processing is done on data samples that are somehow derived from a set of events. The rest of the data could be considered irrelevant. However, some preprocessing is only meaningful when performed on the full time series and not on the segmented event samples. An example is the detrending that typically needs to be done on the original, continuous time series. In its current shape our datasets consists of samples that represent contiguous fMRI volumes. At this stage we can easily perform linear detrending. >>> poly_detrend(ds, polyord=1, chunks_attr='chunks') Let's make a copy of the de-trended dataset that we can use later on for some visualization. >>> orig_ds = ds.copy() Design Specification -------------------- For any event-related analysis we need some information on the experiment design: when was stimulated with what for how long (and maybe with what intensity). In PyMVPA this is done by compiling a list of event definitions. In many cases, an event is defined by *onset*, *duration* and potentially a number of additional properties, such as stimulus condition or recording session number. To see how such events definitions look like, we will simply convert the block-design setup defined by the samples attributes of our dataset into a list of events. With :func:`~mvpa2.datasets.eventrelated.find_events`, PyMVPA provides a function to convert sequential attributes into event lists. In our dataset, we have the stimulus conditions of each volume sample available in the ``targets`` sample attribute. >>> events = find_events(targets=ds.sa.targets, chunks=ds.sa.chunks) >>> print len(events) 204 >>> for e in events[:4]: ... print e {'chunks': 0, 'duration': 6, 'onset': 0, 'targets': 'rest'} {'chunks': 0, 'duration': 9, 'onset': 6, 'targets': 'scissors'} {'chunks': 0, 'duration': 6, 'onset': 15, 'targets': 'rest'} {'chunks': 0, 'duration': 9, 'onset': 21, 'targets': 'face'} We are feeding not only the ``targets`` to the function, but also the ``chunks`` attribute, since we do not want to have events spanning multiple recording sessions. :func:`~mvpa2.datasets.eventrelated.find_events` sequentially parses all provided attributes and records an event whenever the value in *any* of the attributes changes. The generated event definition is a dictionary that contains: 1. Onset of the event as an index in the sequence (in this example this is a volume id) 2. Duration of the event in "number of sequence elements" (i.e. number of volumes). The duration is determined by counting the number of identical attribute combinations following an event onset. 3. Attribute combination of this event, i.e. the actual values of all given attributes at the particular position. Let's limit ourselves to ``face`` and ``house`` stimulation blocks for now. We can easily filter out all other events. >>> events = [ev for ev in events if ev['targets'] in ['house', 'face']] >>> print len(events) 24 >>> for e in events[:4]: ... print e {'chunks': 0, 'duration': 9, 'onset': 21, 'targets': 'face'} {'chunks': 0, 'duration': 9, 'onset': 63, 'targets': 'house'} {'chunks': 1, 'duration': 9, 'onset': 127, 'targets': 'face'} {'chunks': 1, 'duration': 9, 'onset': 213, 'targets': 'house'} Response Modeling ----------------- Whenever we have to deal with data were multiple concurrent signals are overlapping in time, such as in fast event-related fMRI studies, it often makes sense to fit an appropriate model to the data and proceed with an analysis of model parameter estimates, instead of the raw data. PyMVPA can make use of NiPy's GLM modeling capabilities. It expects information on stimulation events to be given as actual time stamps and not data sample indices, hence we have to convert our event list. >>> # temporal distance between samples/volume is the volume repetition time >>> TR = np.median(np.diff(ds.sa.time_coords)) >>> # convert onsets and durations into timestamps >>> for ev in events: ... ev['onset'] = (ev['onset'] * TR) ... ev['duration'] = ev['duration'] * TR Now we can fit a model of the hemodynamic response to all relevant stimulus conditions. The function :func:`~mvpa2.datasets.eventrelated.eventrelated_dataset` does everything for us. For a given input dataset we need to provide a list of events, the name of an attribute with a time stamp for each sample, and information on what conditions we would like to have modeled. The latter is specified to the ``condition_attr`` argument. This can be a single attribute name in which case all unique values will be used as conditions. It can also be a sequence of multiple attribute names, and all combinations of unique values of the attributes will be used as conditions. In the following example ``('targets', 'chunks')`` indicates that we want a separate model for each stimulation condition (``targets``) for each run of our example dataset (``chunks``). >>> evds = fit_event_hrf_model(ds, ... events, ... time_attr='time_coords', ... condition_attr=('targets', 'chunks')) >>> print len(evds) 24 This yields one parameter estimate sample for each target value for each chunks. .. exercise:: Explore the ``evds`` dataset. It contains the generated HRF model. Find and plot (some of) them. Take a look at the parameter estimate samples themselves -- can you spot a pattern? Before we can run a classification analysis we still need to normalize each feature (GLM parameters estimates for each voxel at this point). >>> zscore(evds, chunks_attr=None) The rest is straight-forward: we set up a cross-validation analysis with a chosen classifier and run it: >>> clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') >>> cv = CrossValidation(clf, NFoldPartitioner(attr='chunks')) >>> cv_glm = cv(evds) >>> print '%.2f' % np.mean(cv_glm) 0.04 Not bad! Let's compare that to a simpler approach that is also suitable for block-design experiments like this one. >>> zscore(ds, param_est=('targets', ['rest'])) >>> avgds = ds.get_mapped(mean_group_sample(['targets', 'chunks'])) >>> avgds = avgds[np.array([t in ['face', 'house'] for t in avgds.sa.targets])] We normalize all voxels with respect to the ``rest`` condition. This yields some crude kind of "activation" score for all stimulation conditions. Subsequently, we average all sample of a condition in each run. This yield a dataset of the same size as from the GLM modeling. We can re-use the cross-validation setup. >>> cv_avg = cv(avgds) >>> print '%.2f' % np.mean(cv_avg) 0.04 Not bad either. However, it is worth repeating that this simple average-sample approach is limited to block-designs with a clear temporal separation of all signals of interest, whereas the HRF modeling is more suitable for experiments with fast stimulation alternation. .. exercise:: Think about what need to be done to perform odd/even run GLM modeling. From Timeseries To Spatio-temporal Samples ------------------------------------------ Now we want to try something different. Instead of compressing all temporal information into a single model parameter estimate, we can also consider the entire spatio-temporal signal across our region of interest and the full duration of the stimulation blocks. In other words, we can perform a sensitivity analysis (see :ref:`chap_tutorial_sensitivity`) revealing the spatio-temporal distribution of classification-relevant information. Before we start with our event-extraction, we want to normalize each feature (i.e. a voxel at this point). In this case we are, again, going to Z-score them, using the mean and standard deviation from the experiment's rest condition, and the resulting values might be interpreted as "activation scores". >>> zscore(ds, chunks_attr='chunks', param_est=('targets', 'rest')) For this analysis we do not have to convert event onset information into time-stamp, but can operate on sample indices, hence we start with the original event list again. >>> events = find_events(targets=ds.sa.targets, chunks=ds.sa.chunks) >>> events = [ev for ev in events if ev['targets'] in ['house', 'face']] All of our events are of the same length, 9 consecutive fMRI volumes. Later on we would like to view the temporal sensitivity profile from *before* until *after* the stimulation block, hence we should extend the duration of the events a bit. >>> event_duration = 13 >>> for ev in events: ... ev['onset'] -= 2 ... ev['duration'] = event_duration The next and most important step is to actually segment the original time series dataset into event-related samples. PyMVPA offers :func:`~mvpa2.datasets.eventrelated.eventrelated_dataset` as a function to perform this conversion. Let's just do it, it only needs the original dataset and our list of events. >>> evds = eventrelated_dataset(ds, events=events) >>> len(evds) == len(events) True >>> evds.nfeatures == ds.nfeatures * event_duration True .. h5save('results/ds_haxby2001_blkev_facehouse.hdf5', ds) .. exercise:: Inspect the ``evds`` dataset. It has a fairly large number of attributes -- both for samples and for features. Look at each of them and think about what it could be useful for. At this point it is worth looking at the dataset's mapper -- in particular at the last two items in the chain mapper that have been added during the conversion into events. >>> print evds.a.mapper[-2:] -> .. exercise:: Reverse-map a single sample through the last two items in the chain mapper. Inspect the result and make sure it doesn't surprise. Now, reverse-map multiple samples at once and compare the result. Is this what you would expect? The rest of our analysis is business as usual and is quickly done. We want to perform a cross-validation analysis of an SVM classifier. We are not primarily interested in its performance, but in the weights it assigns to the features. Remember, each feature is now voxel-at-time-point, so we get a chance of looking at the spatio-temporal profile of classification-relevant information in the data. We will nevertheless enable computing of a confusion matrix, so we can assure ourselves that the classifier is performing reasonably well, because only a generalizing model is worth inspecting, as otherwise it overfits and the assigned weights could be meaningless. >>> sclf = SplitClassifier(LinearCSVMC(), ... enable_ca=['stats']) >>> sensana = sclf.get_sensitivity_analyzer() >>> sens = sensana(evds) .. exercise:: Check that the classifier achieves an acceptable accuracy. Is it enough above chance level to allow for an interpretation of the sensitivities? .. exercise:: Using what you have learned in the last tutorial part: Combine the sensitivity maps for all splits into a single map. Project this map into the original dataspace. What is the shape of that space? Store the projected map into a NIfTI file and inspect it using an MRI viewer. Viewer needs to be capable of visualizing time series (hint: for FSLView the time series image has to be opened first)! A Plotting Example ------------------ We have inspected the spatio-temporal profile of the sensitivities using some MRI viewer application, but we can also assemble an informative figure right here. Let's compose a figure that shows the original peri-stimulus time series, the effect of normalization, as well as the corresponding sensitivity profile of the trained SVM classifier. We are going to do that for two example voxels, whose coordinates we might have derived from inspecting the full map. >>> example_voxels = [(28,25,25), (28,23,25)] The plotting will be done by the popular matplotlib_ package. .. _matplotlib: http://matplotlib.sourceforge.net/ First, we plot the original signal after initial detrending. To do this, we apply the same time series segmentation to the original detrended dataset and plot the mean signal for all face and house events for both of our example voxels. The code below will create the plot using matplotlib's ``pylab`` interface (imported as ``pl``). If you are familiar with Matlab's plotting facilities, this shouldn't be hard to read. .. note:: ``_ =`` is used in the examples below simply to absorb output of plotting functions. You do not have to swallow output in your interactive sessions. >>> # linestyles and colors for plotting >>> vx_lty = ['-', '--'] >>> t_col = ['b', 'r'] >>> >>> # for each of the example voxels >>> for i, v in enumerate(example_voxels): ... # get a slicing array matching just to current example voxel ... slicer = np.array([tuple(idx) == v for idx in ds.fa.voxel_indices]) ... # perform the timeseries segmentation just for this voxel ... evds_detrend = eventrelated_dataset(orig_ds[:, slicer], events=events) ... # now plot the mean timeseries and standard error ... for j, t in enumerate(evds.uniquetargets): ... l = plot_err_line(evds_detrend[evds_detrend.sa.targets == t].samples, ... fmt=t_col[j], linestyle=vx_lty[i]) ... # label this plot for automatic legend generation ... l[0][0].set_label('Voxel %i: %s' % (i, t)) >>> # y-axis caption >>> _ = pl.ylabel('Detrended signal') >>> # visualize zero-level >>> _ = pl.axhline(linestyle='--', color='0.6') >>> # put automatic legend >>> _ = pl.legend() >>> _ = pl.xlim((0,12)) In the next figure we do exactly the same again, but this time for the normalized data. >>> for i, v in enumerate(example_voxels): ... slicer = np.array([tuple(idx) == v for idx in ds.fa.voxel_indices]) ... evds_norm = eventrelated_dataset(ds[:, slicer], events=events) ... for j, t in enumerate(evds.uniquetargets): ... l = plot_err_line(evds_norm[evds_norm.sa.targets == t].samples, ... fmt=t_col[j], linestyle=vx_lty[i]) ... l[0][0].set_label('Voxel %i: %s' % (i, t)) >>> _ = pl.ylabel('Normalized signal') >>> _ = pl.axhline(linestyle='--', color='0.6') >>> _ = pl.xlim((0,12)) Finally, we plot the associated SVM weight profile for each peri-stimulus time-point of both voxels. For easier selection we do a little trick and reverse-map the sensitivity profile through the last mapper in the dataset's chain mapper (look at ``evds.a.mapper`` for the whole chain). This will reshape the sensitivities into ``cross-validation fold x volume x voxel features``. >>> # L1 normalization of sensitivity maps per split to make them >>> # comparable >>> normed = sens.get_mapped(FxMapper(axis='features', fx=l1_normed)) >>> smaps = evds.a.mapper[-1].reverse(normed) >>> >>> for i, v in enumerate(example_voxels): ... slicer = np.array([tuple(idx) == v for idx in ds.fa.voxel_indices]) ... smap = smaps.samples[:,:,slicer].squeeze() ... l = plot_err_line(smap, fmt='ko', linestyle=vx_lty[i], errtype='std') >>> _ = pl.xlim((0,12)) >>> _ = pl.ylabel('Sensitivity') >>> _ = pl.axhline(linestyle='--', color='0.6') >>> _ = pl.xlabel('Peristimulus volumes') That was it. Perhaps you are scared by the amount of code. Please note that it could have been done shorter, but this way allows for plotting any other voxel coordinate combination as well. matplotlib also allows for saving this figure in SVG_ format, allowing for convenient post-processing in Inkscape_ -- a publication quality figure is only minutes away. .. _SVG: http://en.wikipedia.org/wiki/Scalable_Vector_Graphics .. _Inkscape: http://www.inkscape.org/ .. figure:: pics/ex_eventrelated.* :align: center Sensitivity profile for two example voxels for *face* vs. *house* classification on event-related fMRI data from ventral temporal cortex. .. exercise:: What can we say about the properties of the example voxel's signal from the peri-stimulus plot? This demo showed an event-related data analysis. Although we have performed it on fMRI data, an analogous analysis can be done for any time series based data in an almost identical fashion. Moreover, if a dataset has information about acquisition time (e.g. like the ones created by :func:`~mvpa2.datasets.mri.fmri_dataset`) :func:`~mvpa2.datasets.eventrelated.eventrelated_dataset()` can also convert event-definition in real time, making it relatively easy to "convert" experiment design logfiles into event lists. In this case there would be no need to run a function like :func:`~mvpa2.datasets.eventrelated.find_events`, but instead they could be directly specified and passed to :func:`~mvpa2.datasets.eventrelated.eventrelated_dataset()`. pymvpa2-2.6.4/doc/source/tutorial_eventrelated_searchlight.rst000066400000000000000000000074551323370031300247100ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, event-related fMRI, searchlight .. _chap_tutorial_eventrelated_searchlight: ******************************** Multi-dimensional Searchlights ******************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] This is a little addendum to :ref:`chap_tutorial_eventrelated` where we want to combine what we have learned about event-related data analysis and, at the same time, take a little glimpse on the power of PyMVPA for "multi-space" analysis. First let's re-create the dataset with the spatio-temporal features from :ref:`chap_tutorial_eventrelated`: >>> from mvpa2.tutorial_suite import * >>> ds = get_raw_haxby2001_data(roi=(36,38,39,40)) >>> poly_detrend(ds, polyord=1, chunks_attr='chunks') >>> zscore(ds, chunks_attr='chunks', param_est=('targets', 'rest')) >>> events = find_events(targets=ds.sa.targets, chunks=ds.sa.chunks) >>> events = [ev for ev in events if ev['targets'] in ['house', 'face']] >>> event_duration = 13 >>> for ev in events: ... ev['onset'] -= 2 ... ev['duration'] = event_duration >>> evds = eventrelated_dataset(ds, events=events) From the :ref:`chap_tutorial_searchlight` we know how to do searchlight analyses and it was promised that there is more to it than what we already saw. And here it is: >>> cvte = CrossValidation(GNB(), NFoldPartitioner(), ... postproc=mean_sample()) >>> sl = Searchlight(cvte, ... IndexQueryEngine(voxel_indices=Sphere(1), ... event_offsetidx=Sphere(2)), ... postproc=mean_sample()) >>> res = sl(evds) Have you been able to deduce what this analysis will do? Clearly, it is some sort of searchlight, but it doesn't use :func:`~mvpa2.measures.searchlight.sphere_searchlight`. Instead, it utilizes :class:`~mvpa2.measures.searchlight.Searchlight`. Yes, you are correct this is a spatio-temporal searchlight. The searchlight focus travels along all possible locations in our ventral temporal ROI, but at the same time also along the peristimulus time segment covered by the events. The spatial searchlight extent is the center voxel and its immediate neighbors and the temporal dimension comprises of two additional time-points in each direction. The result is again a dataset. Its shape is compatible with the mapper of ``evds``, hence it can also be back-projected into the original 4D fMRI brain space. :class:`~mvpa2.measures.searchlight.Searchlight` is a powerful class that allows for complex runtime ROI generation. In this case it uses an :class:`~mvpa2.misc.neighborhood.IndexQueryEngine` to look at certain feature attributes in the dataset to compose sphere-shaped ROIs in two spaces at the same time. This approach is very flexible and can be extended with additional query engines to algorithms of almost arbitrary complexity. .. there is something that prevents us from mapping the whole dataset >>> ts = res.a.mapper.reverse1(1 - res.samples[0]) >>> # need to put the time axis last for export to NIfTI >>> ts = np.rollaxis(ts, 0, 4) >>> ni = nb.Nifti1Image(ts, ds.a.imgaffine).to_filename('ersl.nii') .. We need to remove generated files so daily tests pass After you are done and want to tidy up after yourself, you can easily remove unneeded generated files from within Python: >>> os.unlink('ersl.nii') pymvpa2-2.6.4/doc/source/tutorial_mappers.rst000066400000000000000000000732741323370031300213220ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, Mapper, OpenFMRI, Dataset layout .. _chap_tutorial_mappers: .. _chap_tutorial_getdatainshape: *********************** Getting data in shape *********************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] In the tutorial part :ref:`chap_tutorial_datasets` we have discovered a magic ingredient of datasets: a :class:`~mvpa2.mappers.base.Mapper`. Mappers are probably the most powerful concept in PyMVPA, and there is little one would do without them. In general, a mapper is an algorithm that transforms data. This transformation can be as simple as selecting a subset of data, or as complex as a multi-stage preprocessing pipeline. Some transformations are reversible, others are not. Some are simple one-step computations, others are iterative algorithms that have to be trained on data before they can be used. In PyMVPA, all these transformations are :mod:`~mvpa2.mappers`. .. note:: If you are an MDP_-user you probably have realized the similarity of MDP's nodes and PyMVPA's mappers. .. _MDP: http://mdp-toolkit.sourceforge.net/ Let's create a dummy dataset (5 samples, 12 features). This time we will use a new method to create the dataset, the ``dataset_wizard``. Here it is, fully equivalent to a regular constructor call (i.e. `~mvpa2.datasets.base.Dataset`), but we will shortly see some nice convenience aspects. >>> from mvpa2.tutorial_suite import * >>> ds = dataset_wizard(np.ones((5, 12))) >>> ds.shape (5, 12) Some datasets (such as the ones `~mvpa2.datasets.mri.fmri_dataset()` with a mask) contain mappers as a :term:`dataset attribute` ``.a.mapper``. However, not every dataset actually has a mapper. For example, the simple one we have just created doesn't have any: >>> 'mapper' in ds.a False Now let's look at a very similar dataset that only differs in a tiny but a very important detail: >>> ds = dataset_wizard(np.ones((5, 4, 3))) >>> ds.shape (5, 12) >>> 'mapper' in ds.a True >>> print ds.a.mapper We see that the resulting dataset looks identical to the one above, but this time it got created from a 3D samples array (i.e. five samples, where each is a 4x3 matrix). Somehow this 3D array got transformed into a 2D samples array in the dataset. This magic behavior is unveiled by observing that the dataset's mapper is a `~mvpa2.mappers.flatten.FlattenMapper`. The purpose of this mapper is precisely what we have just observed: reshaping data arrays into 2D. It does it by preserving the first axis (in PyMVPA datasets this is the axis that separates the samples) and concatenates all other axis into the second one. Since mappers represent particular transformations they can also be seen as a protocol of what has been done. If we look at the dataset, we know that it had been flattened on the way from its origin to a samples array in a dataset. This feature can become really useful, if the processing become more complex. Let's look at a possible next step -- selecting a subset of interesting features: >>> myfavs = [1, 2, 8, 10] >>> subds = ds[:, myfavs] >>> subds.shape (5, 4) >>> 'mapper' in subds.a True >>> print subds.a.mapper -> Now the situation has changed: *two* new mappers appeared in the dataset -- a `~mvpa2.mappers.base.ChainMapper` and a `~mvpa2.featsel.base.StaticFeatureSelection`. The latter describes (and actually performs) the slicing operation we just made, while the former encapsulates the two mappers into a processing pipeline. We can see that the mapper chain represents the processing history of the dataset like a breadcrumb track. As it has been mentioned, mappers not only can transform a single dataset, but can be fed with other data (as long as it is compatible with the mapper). >>> fwdtest = np.arange(12).reshape(4,3) >>> print fwdtest [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] >>> fmapped = subds.a.mapper.forward1(fwdtest) >>> fmapped.shape (4,) >>> print fmapped [ 1 2 8 10] Although ``subds`` has less features than our input data, forward mapping applies the same transformation that had been done to the dataset itself also to our test 4x3 array. The procedure yields a feature vector of the same shape as the one in ``subds``. By looking at the forward-mapped data, we can verify that the correct features have been chosen. Load real data ============== We have pretty much all the pieces to start a first analysis. We know how to load fMRI data from time series images, we know how to add and access attributes in a dataset, we know how to slice datasets, and we know that we can manipulate datasets with mappers. Now our goal is to combine all these little pieces into the code that produces a dataset like the one used in the seminal work by :ref:`Haxby et al. (2001) ` -- a study where participants passively watched gray scale images of eight object categories in a block-design experiment. From the raw BOLD time series, of which we have the full 12 recording runs of the first subject, they computed: A *pattern of activation* for each stimulus category in each half of the data (split by odd vs. even runs; i.e. 16 samples), including the associated :term:`sample attribute`\ s that are necessary to perform a cross-validated classification analysis of the data. We have already seen how fMRI data can be loaded from NIfTI images, but this time we need more than just the EPI images. For a classification analysis we also need to associate each sample with a corresponding experimental condition, i.e. a class label, also sometimes called :term:`target` value. Moreover, for a cross-validation procedure we also need to partition the full dataset into, presumably, independent :term:`chunk`\ s. Independence is critical to achieve an unbiased estimate of the generalization performance of a classifier, i.e. its accuracy in predicting the correct class label for new data, unseen during training. So, where do we get this information from? Both, target values and chunks are defined by the design of the experiment. In the simplest case the target value for an fMRI volume sample is the experiment condition that has been present/active while the volume has been acquired. However, there are more complicated scenarios which we will look at later on. Chunks of independent data correspond to what fMRI volumes are assumed to be independent. The properties of the MRI acquisition process cause subsequently acquired volumes to be *very* similar, hence they cannot be considered independent. Ideally, the experiment is split into several acquisition sessions, where the sessions define the corresponding data chunks. There are many ways to import this information into PyMVPA. The most simple one is to create a two-column text file that has the target value in the first column, and the chunk identifier in the second, with one line per volume in the NIfTI image. >>> # directory that contains the data files >>> data_path = os.path.join(tutorial_data_path, 'haxby2001') >>> attr_fname = os.path.join(data_path, 'sub001', ... 'BOLD', 'task001_run001', 'attributes.txt') >>> attr = SampleAttributes(attr_fname) >>> len(attr.targets) 121 >>> print np.unique(attr.targets) ['bottle' 'cat' 'chair' 'face' 'house' 'rest' 'scissors' 'scrambledpix' 'shoe'] >>> len(attr.chunks) 121 >>> print np.unique(attr.chunks) [ 0.] :class:`~mvpa2.misc.io.base.SampleAttributes` allows us to load this type of file, and access its content. We got 121 labels and chunk values, one for each volume. Moreover, we see that there are nine different conditions and all samples are associated with the same chunk. The attributes file for a different scan/run would increment the chunk value. Now we can load the fMRI data, as we have done before -- only loading voxels corresponding to a mask of ventral temporal cortex, and assign the samples attributes to the dataset. `~mvpa2.datasets.mri.fmri_dataset()` allows us to pass them directly: >>> bold_fname = os.path.join(data_path, ... 'sub001', 'BOLD', 'task001_run001', 'bold.nii.gz') >>> mask_fname = os.path.join(tutorial_data_path, 'haxby2001', ... 'sub001', 'masks', 'orig', 'vt.nii.gz') >>> fds = fmri_dataset(samples=bold_fname, ... targets=attr.targets, chunks=attr.chunks, ... mask=mask_fname) >>> fds.shape (121, 577) >>> print fds.sa We got the dataset that we already know from the last part, but this time is also has information about chunks and targets. More structure, less duplication of work ======================================== Although one could craft individual attribute files for each fMRI scan, doing so would be suboptimal. Typically, stimulation is not synchronous with fMRI volume sampling rate, hence timing information would be lost. Moreover, information on stimulation, or experiment design in general, is most likely available already in different form or shape. To ease working with a broad range of datasets, PyMVPA comes with dedicated support for datasets following the specifications used by the openfmri.org_ data-sharing platform. These are simple guidelines for file name conventions and design specification that can be easily adopted for your own data. .. _openfmri.org: http://www.openfmri.org .. exercise:: The tutorial data you are working with is following the openfmri.org scheme. Open the dataset folder and inspect the structure and content of the files with meta data. Notice, that it is possible to run a standard analysis using, for example, FSL's FEAT directly on this data in unmodified form. Accessing such a dataset is done via a handler that simply needs to know where the dataset is stored on disk. This handler offers convenient access to basic information, such as the number of subjects, task descriptions, and other properties. >>> dhandle = OpenFMRIDataset(data_path) >>> dhandle.get_subj_ids() [1] >>> dhandle.get_task_descriptions() {1: 'object viewing'} More importantly, it supports access to information on experiment design: >>> model = 1 >>> subj = 1 >>> run = 1 >>> events = dhandle.get_bold_run_model(model, subj, run) >>> for ev in events[:2]: ... print ev {'task': 1, 'run': 1, 'onset_idx': 0, 'conset_idx': 0, 'onset': 15.0, 'intensity': 1, 'duration': 22.5, 'condition': 'scissors'} {'task': 1, 'run': 1, 'onset_idx': 1, 'conset_idx': 0, 'onset': 52.5, 'intensity': 1, 'duration': 22.5, 'condition': 'face'} As you can see, the stimulus design information is available in a list of standard Python dictionaries for each event. This includes onset and duration of the stimulation, as well as literal condition labels, and task descriptions. With a utility function it is straightforward to convert such an event list into a sample attribute array like the one we have loaded from a file before. ``events2sample_attr()`` uses the sample acquisition time information stored in the dataset's ``time_coords`` sample attribute to match stimulation events to data samples. >>> targets = events2sample_attr(events, fds.sa.time_coords, ... noinfolabel='rest', onset_shift=0.0) >>> print np.unique([attr.targets[i] == t for i, t in enumerate(targets)]) [ True] >>> print np.unique(attr.targets) ['bottle' 'cat' 'chair' 'face' 'house' 'rest' 'scissors' 'scrambledpix' 'shoe'] >>> print len(fds), len(targets) 121 121 Note, that the conversion of stimulation events to attribute arrays is a rather crude way of labeling fMRI data that only works well with block-design-like experiments. We will see other approaches later in this tutorial. In addition to experiment design information, the dataset handler also offers convenient access to the actual BOLD fMRI data: >>> task = 1 >>> fds = dhandle.get_bold_run_dataset(subj, task, run, mask=mask_fname) >>> print fds , , > The method ``get_bold_run_dataset()`` works the same way as ``fmri_dataset()``, which we have seen before, and also supports the same arguments. However, instead of giving a custom filename, BOLD data is identified by subject, task, and acquisition run IDs. Multi-session data ------------------ Many fMRI experiments involve multiple runs. Loading such data is best done in a loop. The following code snippet loads all available runs for the object viewing task from our example subject in the dataset. >>> task = 1 # object viewing task >>> model = 1 # image stimulus category model >>> subj = 1 >>> run_datasets = [] >>> for run_id in dhandle.get_task_bold_run_ids(task)[subj]: ... # load design info for this run ... run_events = dhandle.get_bold_run_model(model, subj, run_id) ... # load BOLD data for this run (with masking); add 0-based chunk ID ... run_ds = dhandle.get_bold_run_dataset(subj, task, run_id, ... chunks=run_id -1, ... mask=mask_fname) ... # convert event info into a sample attribute and assign as 'targets' ... run_ds.sa['targets'] = events2sample_attr( ... run_events, run_ds.sa.time_coords, noinfolabel='rest') ... # additional time series preprocessing can go here ... run_datasets.append(run_ds) >>> # this is PyMVPA's vstack() for merging samples from multiple datasets >>> # a=0 indicates that the dataset attributes of the first run should be used >>> # for the merged dataset >>> fds = vstack(run_datasets, a=0) Now it is a good time to obtain a `~mvpa2.datasets.miscfx.summary()` overview of the dataset: basic statistics, balance in number of samples among targets per chunk, etc.: >>> print fds.summary() Dataset: 1452x577@int16, , , stats: mean=1656.47 std=342.034 var=116988 min=352 max=2805 Counts of targets in each chunk: chunks\targets bottle cat chair face house rest scissors scrambledpix shoe --- --- --- --- --- --- --- --- --- 0 9 9 9 9 9 49 9 9 9 1 9 9 9 9 9 49 9 9 9 2 9 9 9 9 9 49 9 9 9 3 9 9 9 9 9 49 9 9 9 4 9 9 9 9 9 49 9 9 9 5 9 9 9 9 9 49 9 9 9 6 9 9 9 9 9 49 9 9 9 7 9 9 9 9 9 49 9 9 9 8 9 9 9 9 9 49 9 9 9 9 9 9 9 9 9 49 9 9 9 10 9 9 9 9 9 49 9 9 9 11 9 9 9 9 9 49 9 9 9 Summary for targets across chunks targets mean std min max #chunks bottle 9 0 9 9 12 cat 9 0 9 9 12 chair 9 0 9 9 12 face 9 0 9 9 12 house 9 0 9 9 12 rest 49 0 49 49 12 scissors 9 0 9 9 12 scrambledpix 9 0 9 9 12 shoe 9 0 9 9 12 Summary for chunks across targets chunks mean std min max #targets 0 13.4 12.6 9 49 9 1 13.4 12.6 9 49 9 2 13.4 12.6 9 49 9 3 13.4 12.6 9 49 9 4 13.4 12.6 9 49 9 5 13.4 12.6 9 49 9 6 13.4 12.6 9 49 9 7 13.4 12.6 9 49 9 8 13.4 12.6 9 49 9 9 13.4 12.6 9 49 9 10 13.4 12.6 9 49 9 11 13.4 12.6 9 49 9 Sequence statistics for 1452 entries from set ['bottle', 'cat', 'chair', 'face', 'house', 'rest', 'scissors', 'scrambledpix', 'shoe'] Counter-balance table for orders up to 2: Targets/Order O1 | O2 | bottle: 96 0 0 0 0 12 0 0 0 | 84 0 0 0 0 24 0 0 0 | cat: 0 96 0 0 0 12 0 0 0 | 0 84 0 0 0 24 0 0 0 | chair: 0 0 96 0 0 12 0 0 0 | 0 0 84 0 0 24 0 0 0 | face: 0 0 0 96 0 12 0 0 0 | 0 0 0 84 0 24 0 0 0 | house: 0 0 0 0 96 12 0 0 0 | 0 0 0 0 84 24 0 0 0 | rest: 12 12 12 12 12 491 12 12 12 | 24 24 24 24 24 394 24 24 24 | scissors: 0 0 0 0 0 12 96 0 0 | 0 0 0 0 0 24 84 0 0 | scrambledpix: 0 0 0 0 0 12 0 96 0 | 0 0 0 0 0 24 0 84 0 | shoe: 0 0 0 0 0 12 0 0 96 | 0 0 0 0 0 24 0 0 84 | Correlations: min=-0.19 max=0.88 mean=-0.00069 sum(abs)=77 In :ref:`chap_tutorial_openfmri` you can take a look at an example on how the kind of data preparation described above can be perform in an even more compact way. The next step is to extract the *patterns of activation* from the dataset that we are interested in. But wait! We know that fMRI data is typically contaminated with a lot of noise, or actually *information* that we are not interested in. For example, there are temporal drifts in the data (the signal tends to increase when the scanner is warming up). We also know that the signal is not fully homogeneous throughout the brain. All these artifacts carry a lot of variance that is (hopefully) unrelated to the experiment design, and we should try to remove it to present the classifier with the cleanest signal possible. There are countless ways to pre-process the data to try to achieve this goal. Some keywords are: high/low/band-pass filtering, de-spiking, motion-correcting, intensity normalization, and so on. In this tutorial, we keep it simple. The data we have just loaded is already motion corrected. For every experiment that is longer than a few minutes, as in this case, temporal trend removal, or :term:`detrending`, is crucial. Basic preprocessing =================== Detrending ---------- PyMVPA provides functionality to remove polynomial trends from the data (other methods are available too), meaning that polynomials are fitted to the time series and only what is not explained by them remains in the dataset. In the case of linear detrending, this means fitting a straight line to the time series of each voxel via linear regression and taking the residuals as the new feature values. Detrending can be seen as a type of data transformation, hence in PyMVPA it is implemented as a mapper. >>> detrender = PolyDetrendMapper(polyord=1, chunks_attr='chunks') What we have just created is a mapper that will perform chunk-wise linear (1st-order polynomial) detrending. Chunk-wise detrending is desirable, since our data stems from 12 different runs, and the assumption of a continuous linear trend across all runs is not appropriate. The mapper is going to use the ``chunks`` attribute to identify the chunks in the dataset. We have seen that we could simply forward-map our dataset with this mapper. However, if we want to have the mapper present in the datasets processing history breadcrumb track, we can use its `~mvpa2.datasets.base.Dataset.get_mapped()` method. This method will cause the dataset to map a shallow copy of itself with the given mapper, and return it. Let's try: >>> detrended_fds = fds.get_mapped(detrender) >>> print detrended_fds.a.mapper --> ``detrended_fds`` is easily identifiable as a dataset that has been flattened, sliced, and linearly detrended. Note that detrending doesn't always have to be an explicit step. For example, if you plan on modelling your data with haemodynamic response functions in a general linear model (like it is shown in :ref:`chap_tutorial_openfmri` with NiPy), polynomial detrending can be done simultaneously as part of the modeling. Normalization ------------- While this will hopefully have solved the problem of temporal drifts in the data, we still have inhomogeneous voxel intensities that can be a problem for some machine learning algorithms. For this tutorial, we are again following a simple approach to address this issue, and perform a feature-wise, chunk-wise Z-scoring of the data. This has many advantages. First, it is going to scale all features into approximately the same range, and also remove their mean. The latter is quite important, since some classifiers are impaired when working with data having large offsets. However, we are not going to perform a very simple Z-scoring removing the global mean, but use the *rest* condition samples of the dataset to estimate mean and standard deviation. Scaling dataset features using these parameters yields a score corresponding to the per time-point voxel intensity difference from the *rest* average. This type of data :term:`normalization` is, you guessed it, also implemented as a mapper: >>> zscorer = ZScoreMapper(param_est=('targets', ['rest'])) This mapper configuration implements a :term:`chunk`\-wise (the default) Z-scoring, while estimating mean and standard deviation from samples targets with 'rest' in the respective chunk of data. Remember, all mappers return new datasets that only have copies of what has been modified. However, both detrending and Z-scoring have or will modify the samples themselves. That means that the memory consumption will triple! We will have the original data, the detrended data, and the Z-scored data, but typically we are only interested in the final processing stage. To reduce the memory footprint, both mappers have siblings that perform the same processing, but without copying the data. For `~mvpa2.mappers.detrend.PolyDetrendMapper` this is `~mvpa2.mappers.detrend.poly_detrend()`, and for `~mvpa2.mappers.zscore.ZScoreMapper` this is `~mvpa2.mappers.zscore.zscore()`. The following call will do the same as the mapper we have created above, but using less memory: >>> zscore(detrended_fds, param_est=('targets', ['rest'])) >>> fds = detrended_fds >>> print fds.a.mapper ---> .. exercise:: Look at the :ref:`example_smellit` example. Using the techniques from this example, explore the dataset we have just created and look at the effect of detrending and Z-scoring. The resulting dataset is now both detrended and normalized. The information is nicely presented in the mapper. From this point on we have no use for the samples of the *rest* category anymore, hence we remove them from the dataset: >>> fds = fds[fds.sa.targets != 'rest'] >>> print fds.shape (864, 577) Computing *Patterns Of Activation* ---------------------------------- The last preprocessing step is to compute the actual *patterns of activation*. In the original study, Haxby and colleagues performed a GLM-analysis of odd vs. even runs of the data respectively and used the corresponding contrast statistics (stimulus category vs. rest) as classifier input. In this tutorial, we will use a much simpler shortcut and just compute *mean* samples per condition for both odd and even run independently. To achieve this, we first add a new sample attribute to assign a corresponding label to each sample in the dataset that indicates which of both run-types it belongs to: >>> rnames = {0: 'even', 1: 'odd'} >>> fds.sa['runtype'] = [rnames[c % 2] for c in fds.sa.chunks] The rest is trivial. For cases like this -- applying a function (i.e. mean) to a set of groups of samples (all combinations of stimulus category and run-type) -- PyMVPA has `~mvpa2.mappers.fx.FxMapper`. it comes with a number of convenience functions. The one we need here is `~mvpa2.mappers.fx.mean_group_sample()`. It takes a list of sample attributes, determines all possible combinations of its unique values, selects dataset samples corresponding to these combinations, and averages them. Finally, since this is also a mapper, a new dataset with mean samples is returned: >>> averager = mean_group_sample(['targets', 'runtype']) >>> type(averager) >>> fds = fds.get_mapped(averager) >>> fds.shape (16, 577) >>> print fds.sa.targets ['bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe'] >>> print fds.sa.chunks ['0+2+4+6+8+10' '0+2+4+6+8+10' '0+2+4+6+8+10' '0+2+4+6+8+10' '0+2+4+6+8+10' '0+2+4+6+8+10' '0+2+4+6+8+10' '0+2+4+6+8+10' '1+3+5+7+9+11' '1+3+5+7+9+11' '1+3+5+7+9+11' '1+3+5+7+9+11' '1+3+5+7+9+11' '1+3+5+7+9+11' '1+3+5+7+9+11' '1+3+5+7+9+11'] Here we go! We now have a fully-preprocessed dataset: masked, detrended, normalized, with one sample per stimulus condition that is an average for odd and even runs respectively. Now we could do some serious classification, and this will be shown in :ref:`chap_tutorial_classifiers`, but there is still an important aspect of mappers we have to look at first. There and back again -- a Mapper's tale ======================================= Let's take a look back at the simple datasets from the start of the tutorial part. >>> print ds > >>> print ds.a.mapper A very important feature of mappers is that they allow to reverse a transformation, if that is possible. In case of the simple dataset we can ask the mapper to undo the flattening and to put our samples back into the original 3D shape. >>> orig_data = ds.a.mapper.reverse(ds.samples) >>> orig_data.shape (5, 4, 3) In interactive scripting sessions this is would be a relatively bulky command to type, although it might be quite frequently used. To make ones fingers suffer less there is a little shortcut that does exactly the same: >>> orig_data = ds.O >>> orig_data.shape (5, 4, 3) It is important to realize that reverse-mapping not only works with a single mapper, but also with a `~mvpa2.mappers.base.ChainMapper`. Going back to our demo dataset from the beginning we can see how it works: >>> print subds > >>> print subds.a.mapper -> >>> subds.nfeatures 4 >>> revtest = np.arange(subds.nfeatures) + 10 >>> print revtest [10 11 12 13] >>> rmapped = subds.a.mapper.reverse1(revtest) >>> rmapped.shape (4, 3) >>> print rmapped [[ 0 10 11] [ 0 0 0] [ 0 0 12] [ 0 13 0]] Reverse mapping of a single sample (one-dimensional feature vector) through the mapper chain created a 4x3 array that corresponds to the dimensions of a sample in our original data space. Moreover, we see that each feature value is precisely placed into the position that corresponds to the features selected in the previous dataset slicing operation. But now let's look at our fMRI dataset again. Here the mapper chain is a little more complex: >>> print fds.a.mapper ----> Initial flattening followed by mask, detrending, Z-scoring and finally averaging. We would reverse mapping do in this case? Let's test: >>> fds.nfeatures 577 >>> revtest = np.arange(100, 100 + fds.nfeatures) >>> rmapped = fds.a.mapper.reverse1(revtest) >>> rmapped.shape (40, 64, 64) What happens is exactly what we expect: The initial one-dimensional vector is passed backwards through the mapper chain. Reverting a group-based averaging doesn't make much sense for a single vector, hence it is ignored. Same happens for Z-Scoring and temporal detrending. However, for all remaining mappers the transformations are reverse. First unmasked, and then reshaped into the original dimensionality -- the brain volume. We can check that this is really the case by only reverse-mapping through the first two mappers in the chain and compare the result: >>> rmapped_partial = fds.a.mapper[:2].reverse1(revtest) >>> (rmapped == rmapped_partial).all() True In case you are wondering: The `~mvpa2.mappers.base.ChainMapper` behaves like a regular Python list. We have just selected the first two mappers in the list as another `~mvpa2.mappers.base.ChainMapper` and used that one for reverse-mapping. Back To NIfTI ------------- One last interesting aspect in the context of reverse mapping: Whenever it is necessary to export data from PyMVPA, such as results, dataset mappers also play a critical role. For example we can easily export the ``revtest`` vector into a NIfTI brain volume image. This is possible because the mapper can put it back into 3D space, and because the dataset also stores information about the original source NIfTI image. >>> 'imghdr' in fds.a True PyMVPA offers `~mvpa2.datasets.mri.map2nifti()`, a function to combine these two things and convert any vector into the corresponding NIfTI image: >>> nimg = map2nifti(fds, revtest) This image can now be stored as a file (e.g. ``nimg.to_filename('mytest.nii.gz')``). In this format it is now compatible with the vast majority of neuroimaging software. .. exercise:: Save the NIfTI image to some file, and use an MRI viewer to overlay it on top of the anatomical image in the demo dataset. Does it match our original mask image of ventral temporal cortex? There are many more mappers in PyMVPA than we could cover in the tutorial part. Some more will be used in other parts, but even more can be found the :mod:`~mvpa2.mappers` module. Even though they all implement different transformations, they can all be used in the same way, and can all be combined into a chain. pymvpa2-2.6.4/doc/source/tutorial_meta_classifiers.rst000066400000000000000000000141041323370031300231530ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, Classifier, meta-classifier .. _chap_tutorial_meta_classifiers: ********************************************** Classifiers that do more -- Meta Classifiers ********************************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] In :ref:`chap_tutorial_classifiers` we saw that it is possible to encapsulate a whole cross-validation analysis into a single object that can be called with any dataset to produce the desired results. We also saw that despite this encapsulation we can still get a fair amount of information about the performed analysis. However, what happens if we want to do some further processing of the data **within** the cross-validation analysis. That seems to be difficult, since we feed a whole dataset into the analysis, and only internally does it get split into the respective pieces. Of course there is a solution to this problem -- a :term:`meta-classifier`. This is a classifier that doesn't implement a classification algorithm on its own, but uses another classifier to do the actual work. In addition, the meta-classifier adds another processing step that is performed before the actual :term:`base-classifier` sees the data. An example of such a meta-classifier is `~mvpa2.clfs.meta.MappedClassifier`. Its purpose is simple: Apply a mapper to both training and testing data before it is passed on to the internal base-classifier. With this technique it is possible to implement arbitrary pre-processing within a cross-validation analysis. Before we get into that, let's reproduce the dataset from :ref:`chap_tutorial_classifiers`: >>> from mvpa2.tutorial_suite import * >>> # directory that contains the data files >>> datapath = os.path.join(tutorial_data_path, 'data') >>> # load the raw data >>> ds = load_tutorial_data(roi='vt') >>> # pre-process >>> poly_detrend(ds, polyord=1, chunks_attr='chunks') >>> zscore(ds, param_est=('targets', ['rest'])) >>> ds = ds[ds.sa.targets != 'rest'] >>> # average >>> run_averager = mean_group_sample(['targets', 'chunks']) >>> ds = ds.get_mapped(run_averager) >>> ds.shape (96, 577) Now, suppose we want to perform the classification not on voxel intensities themselves, but on the same samples in the space spanned by the singular vectors of the training data, it would look like this: >>> baseclf = LinearCSVMC() >>> metaclf = MappedClassifier(baseclf, SVDMapper()) >>> cvte = CrossValidation(metaclf, NFoldPartitioner()) >>> cv_results = cvte(ds) >>> print np.mean(cv_results) 0.15625 First we notice that little has been changed in the code and the results -- the error is slightly reduced, but still comparable. The critical line is the second, where we create the `~mvpa2.clfs.meta.MappedClassifier` from the SVM classifier instance, and a `~mvpa2.mappers.svd.SVDMapper` that implements `singular value decomposition`_ as a mapper. .. exercise:: What might be the reasons for the error decrease in comparison to the results on the dataset with voxel intensities? .. _singular value decomposition: http://en.wikipedia.org/wiki/Singular_value_decomposition We know that mappers can be combined into complex processing pipelines, and since `~mvpa2.clfs.meta.MappedClassifier` takes any mapper as argument, we can implement arbitrary preprocessing steps within the cross-validation procedure. Let's say we have heard rumors that only the first two dimensions of the space spanned by the SVD vectors cover the "interesting" variance and the rest is noise. We can easily check that with an appropriate mapper: >>> mapper = ChainMapper([SVDMapper(), StaticFeatureSelection(slice(None, 2))]) >>> metaclf = MappedClassifier(baseclf, mapper) >>> cvte = CrossValidation(metaclf, NFoldPartitioner()) >>> cv_results = cvte(ds) >>> svm_err = np.mean(cv_results) >>> print round(svm_err, 2) 0.57 Well, obviously the discarded components cannot only be noise, since the error is substantially increased. But maybe it is the classifier that cannot deal with the data. Since nothing in this code is specific to the actual classification algorithm we can easily go back to the kNN classifier that has served us well in the past. >>> baseclf = kNN(k=1, dfx=one_minus_correlation, voting='majority') >>> mapper = ChainMapper([SVDMapper(), StaticFeatureSelection(slice(None, 2))]) >>> metaclf = MappedClassifier(baseclf, mapper) >>> cvte = CrossValidation(metaclf, NFoldPartitioner()) >>> cv_results = cvte(ds) >>> np.mean(cv_results) < svm_err False Oh, that was even worse. We would have to take a closer look at the data to figure out what is happening here. .. exercise:: Inspect the confusion matrix of this analysis for both classifiers. What information is represented in the first two SVD components and what is not? Plot the samples of the full dataset after they have been mapped onto the first two SVD components. Why does the kNN classifier perform so bad in comparison to the SVM (hint: think about the distance function)? In this tutorial part we took a look at classifiers. We have seen that, regardless of the actual algorithm, all classifiers are implementing the same interface. Because of this, they can be replaced by another classifier without having to change any other part of the analysis code. Moreover, we have seen that it is possible to enable and access optional information that is offered by particular parts of the processing pipeline. .. Think about adding a demo of the classifiers warehouse. .. exercise:: Try doing the Z-Scoring before computing the mean samples per category. What happens to the generalization performance of the classifier? ANSWER: It becomes 100%! pymvpa2-2.6.4/doc/source/tutorial_multiclass_hyp.rst000066400000000000000000000116541323370031300227050ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial .. _chap_tutorial_multiclass_hyp: ************************** Part X: Hypothesis testing ************************** Let's revisit the classification problem from :ref:`the chapter on classifiers `. >>> from mvpa2.tutorial_suite import * >>> ds = get_haxby2001_data_alternative(roi='vt', grp_avg=False) >>> print ds.sa['targets'].unique ['bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe'] >>> clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') >>> cv = CrossValidation(clf, NFoldPartitioner(), errorfx=mean_mismatch_error, ... enable_ca=['stats']) >>> cv_results = cv(ds) >>> print '%.2f' % np.mean(cv_results) 0.53 So here we have an 8-way classification problem, and during the cross-validation procedure the chosen classifiers makes correct predictions for approximately half of the data points. The big question is now: **What does that tell us?** There are many scenarios that could lead to this prediction performance. It could be that the fitted classifier model is very good, but only capture the data variance for half of the data categories/classes. It could also be that the classifier model quality is relatively poor and makes an equal amount of errors for all classes. In both cases the average accuracy will be around 50%, and most likely **highly significant**, given a chance performance of 1/8. We could now spend some time testing this significance with expensive permutation tests, or making assumptions on the underlying distribution. However, that would only give us a number telling us that the average accuracy is really different from chance, but it doesn't help with the problem that the accuracy really doesn't tell us much about what we are interested in. Interesting hypotheses in the context of this dataset could be whether the data carry a signal that can be used to distinguish brain response patterns from animate vs. inanimate stimulus categories, or whether data from object-like stimuli are all alike and can only be distinguished from random noise, etc. One can imagine to run such an analysis on data from different parts of the brain and the results change -- without necessarily having a big impact on the overall classification accuracy. A lot more interesting information is available from the confusion matrix, a contingency table showing prediction targets vs. actual predictions. >>> print cv.ca.stats.matrix [[36 7 18 4 1 18 15 18] [ 3 56 6 18 0 3 7 5] [ 2 2 21 0 4 0 3 1] [ 3 16 0 76 4 5 3 1] [ 1 1 6 1 97 1 4 0] [20 5 15 4 0 29 15 11] [ 0 1 0 0 0 2 19 0] [43 20 42 5 2 50 42 72]] We can see a strong diagonal, but also block-like structure, and have to realize that simply staring at the matrix doesn't help us to easily assess the likelihood of any of our hypothesis being true or false. It is trivial to do a Chi-square test of the confusion table... >>> print 'Chi^2: %.3f (p=%.3f)' % cv.ca.stats.stats["CHI^2"] Chi^2: 1942.519 (p=0.000) ... but, again, it doesn't tell us anything other than the classifier not just doing random guesses. It would be much more useful, if we could estimate how likely it is, given the observed confusion matrix, that the employed classifier is able to discriminate *all* stimulus classes from each other, and not just a subset. Even more useful would be, if we could relate this probability to specific alternative hypotheses, such as an animate/inanimate-only distinction. :ref:`Olivetti et al. (2012) ` have devised a method that allows for doing exactly that. The confusion matrix is analyzed in a Bayesian framework regarding the statistical dependency of observed and predicted class labels. Confusions within a set of classes that cannot be discriminated should be independently distributed, while there should be a statistical dependency of confusion patterns within any set of classes that can all be discriminated from each other. This algorithm is available in the :class:`mvpa2.clfs.transerror.BayesConfusionHypothesis` node. >>> cv = CrossValidation(clf, NFoldPartitioner(), ... errorfx=None, ... postproc=ChainNode((Confusion(labels=ds.UT), ... BayesConfusionHypothesis()))) >>> # cv_results = cv(ds) >>> # print cv_results.fa.stat ['log(p(C|H))' 'log(p(H|C))'] Most likely hypothesis to explain this confusion matrix print cv_results.sa.hypothesis[np.argsort(cv_results.samples[:,1])[-1]] [['bottle'], ['cat'], ['chair'], ['face'], ['house'], ['scissors'], ['scrambledpix'], ['shoe']] References ========== pymvpa2-2.6.4/doc/source/tutorial_openfmri.rst000066400000000000000000000266111323370031300214630ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, OpenFMRI .. _chap_tutorial_openfmri: ******************************** Working with OpenFMRI.org data ******************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] Working with data from other researchers can be hard. There are lots of ways to collect data, and even more ways to store it on a hard drive. This variability turns discovering the structure of a "foreign" dataset into a research project of its own. Standardization is one way to make this easier and the OpenFMRI_ project has proposed a scheme for structuring (task) fMRI dataset in order to facilitate automated analysis. While there are other approaches to standardization, the `layout proposed by OpenFMRI`_ is appealing, because it offers a good balance between the level of standardization and the required effort to achieve it. .. _OpenFMRI: http://www.openfmri.org .. _layout proposed by openfmri: https://openfmri.org/content/data-organization PyMVPA offers convenient tools to work with dataset that are (somewhat) compliant with the OpenFMRI structure. So independent of whether you plan on sharing your data or not, it may make sense to adopt these conventions, when working with PyMVPA. Take a look at this tutorial and make up your mind whether there is something about this convenience that you like. As a bonus, if you have your dataset formated for OpenFMRI already, it becomes technically trivial to share it on openfmri.org later on -- for free. Here is how it looks like to work with an OpenFMRI dataset, starting with the bare necessities: >>> from os.path import join as opj >>> import mvpa2 >>> from mvpa2.datasets.sources import OpenFMRIDataset Assuming you downloaded and extracted a dataset from OpenFMRI.org into the current directory, you will have a sub-directory (for example ``ds105`` if you picked the `Haxby et al, (2001) data`_) that contains all files of the data release. In order to have PyMVPA access this data, we simply have to create a handler that is pointed to this sub-directory. In order to spare you the 2GB download just to run this tutorial, we are using a minified version of that dataset in this demo which already comes with PyMVPA. .. _Haxby et al, (2001) data: https://openfmri.org/dataset/ds000105 >>> path = opj(mvpa2.pymvpa_dataroot , 'haxby2001') >>> of = OpenFMRIDataset(path) Through this handler we can access lots of information about this dataset. Let's start with what this dataset is all about. >>> print of.get_task_descriptions() {1: 'object viewing'} We can immediately see that the dataset is concerned with a single task *object viewing* The descriptions are always returned as a dictionary that maps the task ID (an integer number) to a verbal description. This is done, because a dataset can contain data for more than one task. Other descriptive information, such as the number and IDs of the subjects in the dataset, as well as other supporting information specified in the ``scan_key.txt`` meta data file are also available: >>> print of.get_subj_ids() [1, 'phantom'] >>> of.get_scan_properties() {'TR': '2.5'} As you can see, subject IDs don't have to be numerical. So far, the information we retrieved was rather simple and the advantages of being able to access them through an API will not become obvious until one starts working with a lot of datasets simultaneously. So let's take a look at some functionality that is more useful in the context of a single dataset. For task fMRI, we are almost always interested in information about the stimulation model, i.e. when was any particular subject exposed to which experiment conditions. All this information is readily available. Here is how you get the number and IDs of all contained model specifications: >>> of.get_model_ids() [1] >>> of.get_model_descriptions() {1: 'visual object categories'} This particular dataset contains a single model specification. With its numerical ID we can query more information about the model: >>> conditions = of.get_model_conditions(1) >>> print conditions [{'task': 1, 'id': 1, 'name': 'house'}, {'task': 1, 'id': 2, 'name': 'scrambledpix'}, {'task': 1, 'id': 3, 'name': 'cat'}, {'task': 1, 'id': 4, 'name': 'shoe'}, {'task': 1, 'id': 5, 'name': 'bottle'}, {'task': 1, 'id': 6, 'name': 'scissors'}, {'task': 1, 'id': 7, 'name': 'chair'}, {'task': 1, 'id': 8, 'name': 'face'}] >>> # that was not human readable -> make prettier >>> print [c['name'] for c in conditions] ['house', 'scrambledpix', 'cat', 'shoe', 'bottle', 'scissors', 'chair', 'face'] We can easily get a list of the condition names and their association with a particular task. And with the task ID we can query the dataset for the number (and IDs) of all related BOLD run fMRI images. >>> print of.get_task_bold_run_ids(1) {1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]} If there would be actual data available for the ``phantom`` subject, we would see it in the output too. With this information we can access almost any item in this dataset that is related to task fMRI. Take a look at :meth:`~mvpa2.datasets.sources.openfmri.OpenFMRIDataset.get_bold_run_image`, :meth:`~mvpa2.datasets.sources.openfmri.OpenFMRIDataset.get_bold_run_dataset`, and the other methods in order to explore the possibilities. After looking at all the raw information available in a dataset, let's take a look at some high-level functionality that is more interesting when actually working with a task fMRI dataset. For any supervised analysis strategy, for example a classification analysis, it is necessary to assign labels to data points. In PyMVPA, this is done by creating a dataset with (at least) one sample attribute containing the labels -- one for each sample in the dataset. The :meth:`~mvpa2.datasets.sources.openfmri.OpenFMRIDataset.get_model_bold_dataset` method is a convenient way of generating such a dataset directly from the OpenFMRI specification. As you'll see in a second, this methods uses any relevant information contained in the OpenFMRI specification and we only need to fill in the details of how exactly we want the PyMVPA dataset to be created. So here is a complete example: >>> from mvpa2.datasets.eventrelated import fit_event_hrf_model >>> ds = of.get_model_bold_dataset( ... model_id=1, ... subj_id=1, ... flavor='25mm', ... mask=opj(path, 'sub001', 'masks', '25mm', 'brain.nii.gz'), ... modelfx=fit_event_hrf_model, ... time_attr='time_coords', ... condition_attr='condition') So let's take this bit of code apart in order to understand what it is doing. When calling ``get_model_bold_dataset()``, we specify the model ID and subject ID, as well as the "flavor" of data we are interested in. Think of the flavor as different variants of the same raw fMRI time series (e.g. different set of applied preprocessing steps). We are using the "25mm" flavor, which is our minified variant of the original dataset, down-sampled to voxels with 25 mm edge length. Based on this information, the relevant stimulus model specifications are discovered and data files for the associated subject are loaded. This method could be called in a loop to, subsequently, load data for all available subjects. In addition, we specify a mask image file to exclude non-brain voxels. Often these masks do not come with a data release and have to be created first. Now for the important bits: The ``modelfx`` argument takes a, so-called, factory method that can transform a time series dataset (each sample in the dataset is a time point at that stage) into the desired type of sample (or observation). In this example, we have used :func:`~mvpa2.datasets.eventrelated.fit_event_hrf_model` that is designed to perform modeling of each stimulation event contained in the OpenFMRI specification. PyMVPA ships with three principal transformation methods that can be used here: :func:`~mvpa2.datasets.eventrelated.fit_event_hrf_model`, :func:`~mvpa2.datasets.eventrelated.extract_boxcar_event_samples` and :func:`~mvpa2.datasets.eventrelated.assign_conditionlabels`. The difference between the three is that the latter simply assignes conditions labels to the time point samples of a time series dataset, whereas the former two can do more complex transformations, such as temporal compression, or model fitting. Note, that is is possible to implement custom transformation functions for ``modelfx``, but all common use cases should be supported by the three functions that already come with PyMVPA. All subsequent argument are passed on to the ``modelfx``. In this example, we requested all events of the same condition to be modeled by a regressor that is based on a canonical hemodynamic response function (this requires the specification of a dataset attribute that encodes the timing of a time series samples; ``time_attr``). >>> print ds , , > This all led to an output dataset with 96 samples, one sample per each of the eight condition in each of the 12 runs. >>> print ds.sa.condition ['bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe' 'bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe'] >>> print ds.sa.chunks [ 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11] Each value in the sample matrix corresponds to the estimated model parameter (or weight) for the associated voxel. Model fitting is performed individually per each run. The model regressors, as well as numerous other bits of information are available in the returned dataset. Depending on the type of preprocessing that was applied to this data flavor, the dataset ``ds`` may be ready for immediate analysis, for example in a cross-validated classification analysis. If further preprocessing steps are desired, the ``preproc_ds`` argument of :meth:`~mvpa2.datasets.sources.openfmri.OpenFMRIDataset.get_model_bold_dataset` provides an interface for applying additional transformations, such as temporal filtering, to the time series data of each individual BOLD fMRI run. pymvpa2-2.6.4/doc/source/tutorial_prerequisites.rst000066400000000000000000000211451323370031300225450ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial .. _chap_tutorial_prerequisites: ********************** Tutorial Prerequisites ********************** The PyMVPA tutorial assumes some basic knowledge about programming in Python. For a short self-assessment of your Python skills, please read the following questions. If you have an approximate answer to each of them, you can safely proceed to the tutorial. Otherwise, it is recommended that you take a look at the Python documentation resources listed under `Recommended Reading and Viewing`_. .. _Python: http://www.python.org * Are you using *spaces* or *tabs* for indentation? Why is that important to know? * What is the difference between `import numpy` and `from numpy import *`? * What is the difference between a Python list and a tuple? * What is the difference between a Python list and a Numpy `ndarray`? * What is the difference between an *iterable* and a *generator* in Python? * What is a *list comprehension*? * What is a *callable*? * What are `*args` and `**kwargs` usually used for? * When would you use `?` or `??` in IPython? * What is the difference between a *deep* copy and a *shallow* copy? * What is a *derived class*? * Is it always a problem whenever a Python *exception* is raised? If you could not answer many questions: **Don't panic!** Python is known to be an easy-to-learn language. If you are already proficient in *any* other programming language, you can expect to be able to write fairly complex Python programs after a weekend of training. What Do I Need To Get Python Running ------------------------------------ PyMVPA code is compatible with Python 2.X series (more precisely >= 2.6). Python 3.x is supported as well, but not as widely used (yet), and many 3rd-party Python modules are still lacking Python 3 support. For now, we recommend Python 2.7 for production, but Python 2.6 should work equally well. Any machine which has Python 2.X available can be used for PyMVPA-based processing (see :ref:`chap_installation>` on how to deploy PyMVPA on your system). Any GNU/Linux distribution already comes with Python by default. The Python website offers `installers for Windows and MacOS X`_. .. _installers for Windows and MacOS X: http://www.python.org/download However, PyMVPA can make use of many additional software packages to enhance its functionality. Therefore it is preferable to use a Python distribution that offers a large variety of scientific Python packages. For Windows, `Python(x,y)`_ matches these requirements. For MacOS X, the MacPorts_ project offers a large variety of Python packages (including PyMVPA). .. _Python(x,y): https://code.google.com/p/pythonxy/ .. _MacPorts: http://www.macports.org The *ideal* environment is, however, the Debian_ operating system. Debian offers the largest selection of free and open-source software in the world, and runs on almost any machine. Moreover, the NeuroDebian_ project provides Debian packages for a number of popular neuroscience software package, such as AFNI_ and FSL_. .. _Debian: http://www.debian.org .. _NeuroDebian: http://neuro.debian.net For those who just want to quickly try PyMVPA, or do not want to deal with installing multiple software package we recommend the `NeuroDebian Virtual Machine`_. This is a virtual Debian installation that can be deployed on Linux, Windows, and MacOS X in a matter of minutes. It includes many Python packages, PyMVPA, and other neuroscience software (including AFNI_ and FSL_). .. _NeuroDebian Virtual Machine: http://neuro.debian.net/vm.html .. _AFNI: http://afni.nimh.nih.gov/afni .. _FSL: http://www.fmrib.ox.ac.uk/fsl Recommended Reading and Viewing ------------------------------- This section contains a recommended list of useful resources, ranging from basic Python programming to efficient scientific computing with Python. Tutorial Introductions Into General Python Programming ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_2.6 Basic from-scratch introduction into Python. This should give you the basics, even if you had *no* prior programming experience. http://swaroopch.com/notes/python/ From the author: The aim is that if all you know about computers is how to save text files, then you can learn Python from this book. If you have previous programming experience, then you can also learn Python from this book. We recommend reading the PDF version that is a lot better formatted. http://www.diveintopython.net A famous tutorial that served as the entry-point into Python for many people. However, it has a relatively steep learning curve, and also covers various topics which aren't in the focus of scientific computing. http://docs.python.org/tutorial/ Written by the creator of Python itself, this is a more comprehensive, but also more compressed tutorial that can serve as a reference. Recommended as resource for people with basic programming experience in *some* language. Scientific Computing In Python ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Python_ itself is "just" a generic programming language. To employ Python for scientific computing, where a common analysis deals with vast amounts of numerical data, more specialized tools are needed -- and are provided by the NumPy_ package. PyMVPA makes extensive use of NumPy data structures and functions, therefore we recommend you to get familiar with it. .. _NumPy: http://numpy.scipy.org http://www.scipy.org/Tentative_NumPy_Tutorial Useful for a first glimpse at NumPy -- the basis for scientific computing in Python. http://mathesaurus.sourceforge.net/ Valuable resource for people coming from other languages and environments, such as Matlab. This pages offers cheat sheets with the equivalents of commands and expressions in various languages, including Matlab, R and Python. http://www.tramy.us/numpybook.pdf This is *the* comprehensive reference manual of the NumPy package. It gives answers to questions, yet to be asked. Interactive Python Shell ~~~~~~~~~~~~~~~~~~~~~~~~ To make interactive use of Python more enjoyable and productive, we suggest to explore an enhanced interactive environment for Python -- IPython_. http://showmedo.com/videotutorials/series?name=CnluURUTV Video tutorials from Jeff Rush walking you through basic and advanced features of IPython. While doing that he also exposes basic constructs of Python, so you might like to watch this video whenever you already have basic programming experience with any programming language. http://ipython.org/documentation.html IPython documentation page which references additional materials, such as the main IPython documentation which extensively covers features of IPython. http://ipython.org/notebook.html IPython notebook provides an interactive programming environment right in your browser. Our tutorial is available not only as static web-pages but also as IPython notebooks, thus making learning and tinkering with code convenient and fun. Familiarizing with principles of ipython notebooks and keyboard shortcuts would be beneficial. Multivariate Analysis of Neuroimaging Data ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There is a constantly growing number of interesting articles related to the field -- visit :ref:`chap_references` for an extended but not exhaustive list of related publications. For a quick introduction into the topic read :ref:`Pereira et. al. 2009 `. For the generic reference on machine learning methods we would recommend a great text book :ref:`The Elements of Statistical Learning: Data Mining, Inference, and Prediction ` by `Trevor Hastie`_, `Robert Tibshirani`_, and `Jerome Friedman`_ , PDF of which was generously made available online_ free of charge. For an overview of recent advances in computational approaches for modeling and decoding of stimulus and cognitive spaces we recommend video recordings from `Neural Computation 2011 Workshop at Dartmouth College `_. .. _online: .. _The Elements of Statistical Learning\: Data Mining, Inference, and Prediction: http://web.stanford.edu/~hastie/ElemStatLearn/ .. _Trevor Hastie: http://www-stat.stanford.edu/~hastie/ .. _Robert Tibshirani: http://www-stat.stanford.edu/~tibs/ .. _Jerome Friedman: http://www-stat.stanford.edu/~jhf/ pymvpa2-2.6.4/doc/source/tutorial_searchlight.rst000066400000000000000000000326251323370031300221430ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial .. _chap_tutorial_searchlight: ************************************** Looking here and there -- Searchlights ************************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] In :ref:`chap_tutorial_classifiers` we have seen how we can implement a classification analysis, but we still have no clue about where in the brain (or our chosen ROIs) our signal of interest is located. And that is despite the fact that we have analyzed the data repeatedly, with different classifiers and investigated error rates and confusion matrices. So what can we do? Ideally, we would like to have some way of estimating a score for each feature that indicates how important that particular feature (most of the time a voxel) is in the context of a certain classification task. There are various possibilities to get a vector of such per-feature scores in PyMVPA. We could simply compute an ANOVA_ F-score per each feature, yielding scores that would tell us which features vary significantly between any of the categories in our dataset. .. _ANOVA: http://en.wikipedia.org/wiki/Analysis_of_variance Before we can take a look at the implementation details, let's first recreate our preprocessed demo dataset. The code is very similar to that from :ref:`chap_tutorial_classifiers` and should raise no questions. We get a dataset with one sample per category per run. >>> from mvpa2.tutorial_suite import * >>> ds = get_haxby2001_data(roi='vt') >>> ds.shape (16, 577) Measures -------- Now that we have the dataset, computing the desired ANOVA F-scores is relatively painless: >>> aov = OneWayAnova() >>> f = aov(ds) >>> print f > If the code snippet above is of no surprise then you probably got the basic idea. We created an object instance ``aov`` being a :class:`~mvpa2.measures.anova.OneWayAnova`. This instance is subsequently *called* with a dataset and yields the F-scores wrapped into a :class:`~mvpa2.datasets.base.Dataset`. Where have we seen this before? Right! This one differs little from a call to :class:`~mvpa2.measures.base.CrossValidation`. Both are objects that get instantiated (potentially with some custom arguments) and yield the results in a dataset when called with an input dataset. This is called a :term:`processing object` and is a common concept in PyMVPA. However, there is a difference between the two processing objects. :class:`~mvpa2.measures.base.CrossValidation` returns a dataset with a single feature -- the accuracy or error rate, while :class:`~mvpa2.measures.anova.OneWayAnova` returns a vector with one value per feature. The latter is called a :class:`~mvpa2.measures.base.FeaturewiseMeasure`. But other than the number of features in the returned dataset there is not much of a difference. All measures in PyMVPA, for example, support an optional post-processing step. During instantiation of a measure an arbitrary mapper can be specified to be called internally to forward-map the results before they are returned. If, for some reason, the F-scores need to be scaled into the interval [0,1], an :class:`~mvpa2.mappers.fx.FxMapper` can be used to achieve that: >>> aov = OneWayAnova( ... postproc=FxMapper('features', ... lambda x: x / x.max(), ... attrfx=None)) >>> f = aov(ds) >>> print f.samples.max() 1.0 .. map2nifti(ds, f).to_filename('results/res_haxby2001_fscore_vt.nii.gz') .. exercise:: Map the F-scores back into a brain volume and look at their distribution in the ventral temporal ROI. Now that we know how to compute feature-wise F-scores we can start worrying about them. Our original goal was to decipher information that is encoded in the multivariate pattern of brain activation. But now we are using an ANOVA, a **univariate** measure, to localize important voxels? There must be something else -- and there is! Searching, searching, searching, ... ------------------------------------ :ref:`Kriegeskorte et al. (2006) ` suggested an algorithm that takes a small, sphere-shaped neighborhood of brain voxels and computes a multivariate measure to quantify the amount of information encoded in its pattern (e.g. `mutual information`_). Later on this :term:`searchlight` approach has been extended to run a full classifier cross-validation in every possible sphere in the brain. Since that, numerous studies have employed this approach to localize relevant information in a locally constraint fashion. .. _mutual information: http://en.wikipedia.org/wiki/Mutual_information We know almost all pieces to implement a searchlight analysis in PyMVPA. We can load and preprocess datasets, we can set up a cross-validation procedure. >>> clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') >>> cv = CrossValidation(clf, HalfPartitioner()) The only thing left to do is that we have to split the dataset into all possible sphere neighborhoods that intersect with the brain. To achieve this, we can use :func:`~mvpa2.measures.searchlight.sphere_searchlight`: >>> sl = sphere_searchlight(cv, radius=3, postproc=mean_sample()) This single line configures a searchlight analysis that runs a full cross-validation in every possible sphere in the dataset. Each sphere has a radius of three voxels. The algorithm uses the coordinates (by default ``voxel_indices``) stored in a feature attribute of the input dataset to determine local neighborhoods. From the ``postproc`` argument you might have guessed that this object is also a measure -- and your are right. This measure returns whatever value is computed by the basic measure (here this is a cross-validation) and assigns it to the feature representing the center of the sphere in the output dataset. For this initial example we are not interested in the full cross-validation output (error per each fold), but only in the mean error, hence we are using an appropriate mapper for post-processing. As with any other :term:`processing object` we have to call it with a dataset to run the actual analysis: >>> res = sl(ds) >>> print res , , > That was it. However, this was just a toy example with only our ventral temporal ROI. Let's now run it on a much larger volume, so we can actually localize something (even loading and preprocessing will take a few seconds). We will reuse the same searchlight setup and run it on this data as well. Due to the size of the data it might take a few minutes to compute the results, depending on the number of CPUs in the system. >>> ds = get_haxby2001_data_alternative(roi=0) >>> print ds.nfeatures 34888 >>> res = sl(ds) .. h5save("results/ds_haxby2001_alt_roi0.hdf5", ds, compression=9) .. h5save('results/res_haxby2001_sl_avgacc_roi0.hdf5', res) Now let's see what we got. Since a vector with 35k elements is a little hard to comprehend we have to resort to some statistics. >>> sphere_errors = res.samples[0] >>> res_mean = np.mean(res) >>> res_std = np.std(res) >>> # we deal with errors here, hence 1.0 minus >>> chance_level = 1.0 - (1.0 / len(ds.uniquetargets)) .. map2nifti(ds, 1.0 - sphere_errors).to_filename('results/res_haxby2001_sl_avgacc_roi0.nii.gz') As you'll see, the mean empirical error is just barely below the chance level. However, we would not expect a signal for perfect classification performance in all spheres anyway. Let's see for how many spheres the error is more the two standard deviations lower than chance. >>> frac_lower = np.round(np.mean(sphere_errors < chance_level - 2 * res_std), 3) So in almost 10% of all spheres the error is substantially lower than what we would expect for random guessing of the classifier -- that is more than 3000 spheres! .. exercise:: Look at the distribution of the errors (hint: ``hist(sphere_errors, bins=np.linspace(0, 1, 18))``. In how many spheres do you think the classifier actually picked up real signal? What would be a good value to threshold the errors to distinguish false from true positives? Think of it in the context of statistical testing of fMRI data results. What problems are we facing here? Once you are done thinking about that -- and only *after* you're done, project the sphere error map back into the fMRI volume and look at it as a brain overlay in your favorite viewer (hint: you might want to store accuracies instead of errors, if your viewer cannot visualize the lower tail of the distribution: ``map2nifti(ds, 1.0 - sphere_errors).to_filename('sl.nii.gz')``). Did looking at the image change your mind? .. # figure for the error distribution (empirical and binomial) bins = 18 distr = [] for i in xrange(100): # random binomial variable with errors for each sphere r= 1.0 - (stats.binom.rvs(len(ds), 1.0 / len(ds.uniquetargets), size=ds.nfeatures) / float(len(ds))) distr.append(histogram(r, range=(0, 1), bins=bins, normed=True)[0]) distr = np.array(distr) loc = hist(sphere_errors, range=(0, 1), bins=bins, normed=True)[1] plot(loc[:-1] + 1.0/bins/2, distr.mean(axis=0), 'rx--') ylim(0,6) axvline(0.875, color='red', linestyle='--') axvline(res_mean, color='0.3', linestyle='--') For real! --------- Now that we have an idea of what can happen in a searchlight analysis, let's do another one, but this time on a more familiar ROI -- the full brain. .. exercise:: Load the dataset with ``get_haxby2001_data_alternative(roi='brain')`` this will apply any required preprocessing for you. Now run a searchlight analysis for radii 0, 1 and 3. For each resulting error map look at the distribution of values, project them back into the fMRI volume and compare them. How does the distribution change with radius and how does it compare to results of the previous exercise? What would be a good choice for the threshold in this case? .. h5save('results/ds_haxby2001_alt_brain.hdf5', ds) .. h5save('results/res_haxby2001_sl_avgacc_r0_brain.hdf5', r0) .. map2nifti(ds, 1.0 - r0.samples[0]).to_filename('results/res_haxby2001_sl_avgacc_r0_brain.nii.gz') .. h5save('results/res_haxby2001_sl_avgacc_r1_brain.hdf5', r1) .. map2nifti(ds, 1.0 - r1.samples[0]).to_filename('results/res_haxby2001_sl_avgacc_r1_brain.nii.gz') .. h5save('results/res_haxby2001_sl_avgacc_r3_brain.hdf5', r3) .. map2nifti(ds, 1.0 - r3.samples[0]).to_filename('results/res_haxby2001_sl_avgacc_r3_brain.nii.gz') You have now performed a number of searchlight analyses, investigated the results and probably tried to interpret them. What conclusions did you draw from these analyses in terms of the neuroscientific aspects? What have you learned about object representation in the brain? In this case we have run 8-way classification analyses and have looked at the average error rate across all conditions in thousands of sphere-shaped ROIs in the brain. In some spheres the classifier could perform well, i.e. it could predict all samples equally well. However, this only applies to a handful of over 30k spheres we have tested, and does not reveal whether the classifier was capable of classifying *all* of the conditions or just some. For the vast majority we observe errors somewhere between the theoretical chance level and zero and we don't know what caused the error to decrease. We don't even know which samples get misclassified. From :ref:`chap_tutorial_classifiers` we know that there is a way out of this dilemma. We can look at the confusion matrix of a classifier to get a lot more information that is otherwise hidden. However, we cannot reasonably do this for thousands of searchlight spheres (Note that this is not completely true. See e.g. :ref:`Connolly et al., 2012 ` for some creative use-cases for searchlights). It becomes obvious that a searchlight analysis is probably not the end of a data exploration but rather a crude take off, as it raises more questions than it answers. Moreover, a searchlight cannot detect signals that extend beyond a small local neighborhood. This property effectively limits the scope of analyses that can employ this strategy. A study looking a global brain circuitry will hardly restrict the analysis to patches of a few cubic millimeters of brain tissue. As we have seen before, searchlights also have another nasty aspect. Although they provide us with a multivariate localization measure, they also inherit the curse of univariate fMRI data analysis -- `multiple comparisons`_. PyMVPA comes with an algorithm that can help to cope with the problem in the context of group analyses: :class:`~mvpa2.algorithms.group_clusterthr.GroupClusterThreshold`. .. _multiple comparisons: http://en.wikipedia.org/wiki/Multiple_comparisons Despite these limitations a searchlight analysis can be a valuable exploratory tool if used appropriately. The capabilities of PyMVPA's searchlight implementation go beyond what we looked at in this tutorial. It is not only possible to run *spatial* searchlights, but multiple spaces can be considered simultaneously. This is further illustrated in :ref:`chap_tutorial_eventrelated_searchlight`. pymvpa2-2.6.4/doc/source/tutorial_sensitivity.rst000066400000000000000000000477621323370031300222500ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial .. _chap_tutorial_sensitivity: ******************************************************* Classification Model Parameters -- Sensitivity Analysis ******************************************************* .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] In the :ref:`chap_tutorial_searchlight` we made a first attempt at localizing information in the brain that is relevant to a particular classification analyses. While we were relatively successful, we experienced some problems and also had to wait quite a bit. Here we want to look at another approach to localization. To get started, we pre-process the data as we have done before and perform volume averaging to get a single sample per stimulus category and original experiment session. >>> from mvpa2.tutorial_suite import * >>> ds = get_raw_haxby2001_data(roi='brain') >>> print ds.shape (1452, 39912) >>> # pre-process >>> poly_detrend(ds, polyord=1, chunks_attr='chunks') >>> zscore(ds, param_est=('targets', ['rest'])) >>> ds = ds[ds.sa.targets != 'rest'] >>> # average >>> run_averager = mean_group_sample(['targets', 'chunks']) >>> ds = ds.get_mapped(run_averager) >>> print ds.shape (96, 39912) .. h5save('results/ds_haxby2001_blkavg_brain.hdf5', ds) A searchlight analysis on this dataset would look exactly as we have seen in :ref:`chap_tutorial_searchlight`, but it would take a bit longer due to a higher number of samples. The error map that is the result of a searchlight analysis only offers an approximate localization. First, it is smeared by the overlapping spheres and second the sphere-shaped ROIs probably do not reflect the true shape and extent of functional subregions in the brain. Therefore, it mixes and matches things that might not belong together. This can be mitigated to some degree by using more clever searchlight algorithms (see :ref:`example_searchlight_surf`). But it would also be much nicer if we were able to obtain a per-feature measure, where each value can really be attributed to the respective feature and not just to an area surrounding it. .. _chap_magic_feature_selection: It's A Kind Of Magic -------------------- One way to get such a measure is to inspect the classifier itself. Each classifier creates a model to map from the training data onto the respective target values. In this model, classifiers typically associate some sort of weight with each feature that is an indication of its impact on the classifiers decision. How to get this information from a classifier will be the topic of this tutorial. However, if we want to inspect a trained classifier, we first have to train one. But hey, we have a full brain dataset here with almost 40k features. Will we be able to do that? Well, let's try (and hope that there is still a warranty on the machine you are running this on...). We will use a simple cross-validation procedure with a linear support vector machine. We will also be interested in summary statistics of the classification, a confusion matrix in our case of classification: >>> clf = LinearCSVMC() >>> cvte = CrossValidation(clf, NFoldPartitioner(), ... enable_ca=['stats']) Ready, set, go! >>> results = cvte(ds) That was surprisingly quick, wasn't it? But was it any good? >>> print np.round(cvte.ca.stats.stats['ACC%'], 1) 26.0 >>> print cvte.ca.stats.matrix # doctest: +SKIP [[1 1 2 3 0 1 1 1] [1 2 2 0 2 3 3 1] [5 3 3 0 4 3 0 2] [3 2 0 5 0 0 0 1] [0 3 1 0 3 2 0 0] [0 0 0 0 0 0 1 0] [0 1 4 3 2 1 7 3] [2 0 0 1 1 2 0 4]] Well, the accuracy is not exactly at a chance level, but the confusion matrix doesn't seem to have any prominent diagonal. It looks like, although we can easily train a support vector machine on the full brain dataset, it cannot construct a reliably predicting model. At least we are in the lucky situation to already know that there is some signal in the data, hence we can attribute this failure to the classifier. In most situations it would be as likely that there is actually no signal in the data... Often people claim that classification performance improves with :term:`feature selection`. If we can reduce the dataset to the important ones, the classifier wouldn't have to deal with all the noise anymore. A simple approach would be to compute a full-brain ANOVA and only go with the voxels that show some level of variance between categories. From the :ref:`chap_tutorial_searchlight` we know how to compute the desired F-scores and we could use them to manually select features with some threshold. However, PyMVPA offers a more convenient way -- feature selectors: >>> fsel = SensitivityBasedFeatureSelection( ... OneWayAnova(), ... FixedNElementTailSelector(500, mode='select', tail='upper')) The code snippet above configures such a selector. It uses an ANOVA measure to select 500 features with the highest F-scores. There are a lot more ways to perform the selection, but we will go with this one for now. The :class:`~mvpa2.featsel.base.SensitivityBasedFeatureSelection` instance is yet another :term:`processing object` that can be called with a dataset to perform the feature selection: >>> fsel.train(ds) >>> ds_p = fsel(ds) >>> print ds_p.shape (96, 500) This is the dataset we wanted, so we can rerun the cross-validation and see if it helped. But first, take a step back and look at this code snippet again. There is an object that gets called with a dataset and returns a dataset. You cannot prevent noticing the striking similarity between a measure in PyMVPA or a mapper. And yes, feature selection procedures are also :term:`processing object`\ s and work just like measures or mappers. Now back to the analysis: >>> results = cvte(ds_p) >>> print np.round(cvte.ca.stats.stats['ACC%'], 1) 79.2 >>> print cvte.ca.stats.matrix [[ 5 0 3 0 0 3 0 2] [ 0 11 0 0 0 0 0 0] [ 0 0 7 0 0 1 0 0] [ 2 1 0 12 0 0 0 0] [ 0 0 0 0 12 0 0 0] [ 2 0 1 0 0 8 0 0] [ 0 0 1 0 0 0 12 1] [ 3 0 0 0 0 0 0 9]] Yes! We did it. Almost 80% correct classification for an 8-way classification and the confusion matrix has a strong diagonal. Apparently, the ANOVA-selected features were the right ones. .. exercise:: If you are not yet screaming or haven't started composing an email to the PyMVPA mailing list pointing to a major problem in the tutorial, you need to reconsider what we have just done. Why is this wrong? Let's repeat this analysis on a subset of the data. We select only ``bottle`` and ``shoe`` samples. In the analysis we just did, they are relatively often confused by the classifier. Let's see how the full brain SVM performs on this binary problem >>> bin_demo = ds[np.array([i in ['bottle', 'shoe'] for i in ds.sa.targets])] >>> results = cvte(bin_demo) >>> print np.round(cvte.ca.stats.stats['ACC%'], 1) 62.5 Not much, but that doesn't surprise. Let's see what effect our ANOVA-based feature selection has >>> fsel.train(bin_demo) >>> bin_demo_p = fsel(bin_demo) >>> results = cvte(bin_demo_p) >>> print cvte.ca.stats.stats["ACC%"] 100.0 Wow, that is a jump. Perfect classification performance, even though the same categories couldn't be distinguished by the same classifier, when trained on all eight categories. I guess, it is obvious that our way of selecting features is somewhat fishy -- if not illegal. The ANOVA measure uses the full dataset to compute the F-scores, hence it determines which features show category differences in the whole dataset, including our supposed-to-be independent testing data. Once we have found these differences, we are trying to rediscover them with a classifier. Being able to do that is not surprising, and precisely constitutes the *double-dipping* procedure. As a result, both the obtained prediction accuracy and the created model are potentially completely meaningless. Thanks For The Fish ------------------- To implement an ANOVA-based feature selection *properly* we have to do it on the training dataset **only**. The PyMVPA way of doing this is via a :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier`: >>> fclf = FeatureSelectionClassifier(clf, fsel) This is a :term:`meta-classifier` and it just needs two things: A basic classifier to do the actual classification work and a feature selection object. We can simply re-use the object instances we already had. Now we got a meta-classifier that can be used just as any other classifier. Most importantly we can plug it into a cross-validation procedure (almost identical to the one we had in the beginning). >>> cvte = CrossValidation(fclf, NFoldPartitioner(), ... enable_ca=['stats']) >>> results = cvte(bin_demo) >>> print np.round(cvte.ca.stats.stats['ACC%'], 1) 70.8 This is a lot worse and a lot closer to the truth -- or a so-called :term:`unbiased estimate` of the generalizability of the classifier model. Now we can also run this improved procedure on our original 8-category dataset. >>> results = cvte(ds) >>> print np.round(cvte.ca.stats.stats['ACC%'], 1) 78.1 >>> print cvte.ca.stats.matrix [[ 5 0 2 0 0 4 0 2] [ 0 10 0 0 0 0 0 0] [ 0 0 8 0 0 1 0 0] [ 2 2 0 12 0 0 0 0] [ 0 0 0 0 12 0 0 0] [ 1 0 1 0 0 7 0 0] [ 0 0 1 0 0 0 12 1] [ 4 0 0 0 0 0 0 9]] That is still a respectable accuracy for an 8-way classification and the confusion table also confirms this. Dissect The Classifier ---------------------- But now back to our original goal: getting the classifier's opinion about the importance of features in the dataset. With the approach we have used above, the classifier is trained on 500 features. We can only have its opinion about those. Although this is just few times larger than a typical searchlight sphere, we have lifted the spatial constraint of searchlights -- these features can come from all over an ROI. However, we still want to consider more features, so we are changing the feature selection to retain more. >>> fsel = SensitivityBasedFeatureSelection( ... OneWayAnova(), ... FractionTailSelector(0.05, mode='select', tail='upper')) >>> fclf = FeatureSelectionClassifier(clf, fsel) >>> cvte = CrossValidation(fclf, NFoldPartitioner(), ... enable_ca=['stats']) >>> results = cvte(ds) >>> print cvte.ca.stats.stats['ACC%'] >= 78.1 False >>> print np.round(cvte.ca.stats.stats['ACC%'], 1) # doctest: +SKIP 69.8 A drop of 8% in accuracy on about 4 times the number of features. This time we asked for the top 5% of F-scores. But how do we get the weights, finally? In PyMVPA many classifiers are accompanied with so-called :term:`sensitivity analyzer`\ s. This is an object that knows how to get them from a particular classifier type (since each classification algorithm hides them in different places). To create this *analyzer* we can simply ask the classifier to do it: >>> sensana = fclf.get_sensitivity_analyzer() >>> type(sensana) As you can see, this even works for our meta-classifier. And again this analyzer is a :term:`processing object` that returns the desired sensitivity when called with a dataset. >>> sens = sensana(ds) >>> type(sens) >>> print sens.shape (28, 39912) .. h5save('results/res_haxby2001_sens_5pANOVA.hdf5', sens) Why do we get 28 sensitivity maps from the classifier? The support vector machine constructs a model for binary classification problems. To be able to deal with this 8-category dataset, the data is internally split into all possible binary problems (there are exactly 28 of them). The sensitivities are extracted for all these partial problems. .. exercise:: Figure out which sensitivity map belongs to which combination of categories. If you are not interested in this level of detail, we can combine the maps into one, as we have done with dataset samples before. A feasible algorithm might be to take the per feature maximum of absolute sensitivities in any of the maps. The resulting map will be an indication of the importance of feature for *some* partial classification. >>> sens_comb = sens.get_mapped(maxofabs_sample()) .. exercise:: Project this sensitivity map back into the fMRI volume and compare it to the searchlight maps of different radii from the :ref:`previous tutorial part `. .. map2nifti(ds, sens_comb).to_filename('results/res_haxby2001_sens_maxofabs_5pANOVA.nii.gz') You might have noticed some imperfection in our recent approach to computing a full-brain sensitivity map. We derived it from the full dataset, and not from cross-validation splits of the data. Rectifying this is easy with a meta-measure. A meta-measure is analogous to a meta-classifier: a measure that takes a basic measure, adds a processing step to it and behaves like a measure itself. The meta-measure we want to use is :class:`~mvpa2.measures.base.RepeatedMeasure`. >>> sensana = fclf.get_sensitivity_analyzer(postproc=maxofabs_sample()) >>> cv_sensana = RepeatedMeasure(sensana, ... ChainNode((NFoldPartitioner(), ... Splitter('partitions', ... attr_values=(1,))))) >>> sens = cv_sensana(ds) >>> print sens.shape (12, 39912) .. h5save('results/res_haxby2001_splitsens_5pANOVA.hdf5', sens) We re-create our basic sensitivity analyzer, this time automatically applying the post-processing step that combines the sensitivity maps for all partial classifications. Finally, we plug it into the meta-measure that uses the partitions generated by :class:`~mvpa2.datasets.splitters.NFoldPartitioner` to extract the training portions of the dataset for each fold. Afterwards, we can run the analyzer and we get another dataset, this time with a sensitivity map per each cross-validation split. We could combine these maps in a similar way as before, but let's look at the stability of the ANOVA feature selection instead. >>> ov = MapOverlap() >>> overlap_fraction = ov(sens.samples > 0) With the :class:`~mvpa2.misc.support.MapOverlap` helper we can easily compute the fraction of features that have non-zero sensitivities in all dataset splits. .. exercise:: Inspect the ``ov`` object. Access that statistics map with the fraction of per-feature selections across all splits and project them back into the fMRI volume to investigate them. This could be the end of the data processing. However, by using the meta measure to compute the sensitivity maps we have lost a convenient way to access the total performance of the underlying classifier. To again gain access to it, and get the sensitivities at the same time, we can twist the processing pipeline a bit. >>> sclf = SplitClassifier(fclf, enable_ca=['stats']) >>> cv_sensana = sclf.get_sensitivity_analyzer() >>> sens = cv_sensana(ds) >>> print sens.shape (336, 39912) >>> print cv_sensana.clf.ca.stats.matrix # doctest: +SKIP [[ 5 0 3 0 0 3 0 2] [ 0 9 0 0 0 0 0 0] [ 0 2 4 0 0 1 0 0] [ 2 1 0 12 0 0 0 0] [ 0 0 0 0 12 0 0 0] [ 3 0 4 0 0 6 2 1] [ 0 0 1 0 0 0 10 0] [ 2 0 0 0 0 2 0 9]] I guess that deserves some explanation. We wrap our :class:`~mvpa2.clfs.meta.FeatureSelectionClassifier` with a new thing, a :class:`~mvpa2.clfs.meta.SplitClassifier`. This is another meta classifier that performs splitting of a dataset and runs training (and prediction) on each of the dataset splits separately. It can effectively perform a cross-validation analysis internally, and we ask it to compute a confusion matrix of it. The next step is to get a sensitivity analyzer for this meta meta classifier (this time no post-processing). Once we have got that, we can run the analysis and obtain sensitivity maps from all internally trained classifiers. Moreover, the meta sensitivity analyzer also allows access to its internal meta meta classifier that provides us with the confusion statistics. Yeah! While we are at it, it is worth mentioning that the scenario above can be further extended. We could add more selection or pre-processing steps into the classifier, like projecting the data onto PCA components and limit the classifier to the first 10 components -- for each split. PyMVPA offers even more complex meta classifiers (e.g. :class:`~mvpa2.clfs.meta.TreeClassifier`) that might be very helpful in some analysis scenarios. Closing Words ------------- We have seen that sensitivity analyses are a useful approach to localize information that is less constrained and less demanding than a searchlight analysis. Specifically, we can use it to discover signals that are distributed throughout the whole set of features (e.g. the full brain), but we could also perform an ROI-based analysis with it. It is less computationally demanding as we only train the classifier on one set of features and not thousands, which results in a significant reduction of required CPU time. However, there are also caveats. While sensitivities are a much more direct measure of feature importance in the constructed model, being close to the bare metal of classifiers also has problems. Depending on the actual classification algorithm and data preprocessing sensitivities might mean something completely different when compared across classifiers. For example, the popular SVM algorithm solves the classification problem by identifying the data samples that are *most tricky* to model. The extracted sensitivities reflect this property. Other algorithms, such as "Gaussian Naive Bayes" (:class:`~mvpa2.clfs.gnb.GNB`) make assumptions about the distribution of the samples in each category. GNB sensitivities *might* look completely different, even if GNB and SVM classifiers both perform at comparable accuracy levels. Note, however, that these properties can also be used to address related research questions. It should also be noted that sensitivities can not be directly compared to each other, even if they stem from the same algorithm and are just computed on different dataset splits. In an analysis one would have to normalize them first. PyMVPA offers, for example, :func:`~mvpa2.misc.transformers.l1_normed` and :func:`~mvpa2.misc.transformers.l2_normed` that can be used in conjunction with :class:`~mvpa2.mappers.fx.FxMapper` to do that as a post-processing step. In this tutorial part we also touched the surface of another important topic: :term:`feature selection`. We performed an ANOVA-based feature selection prior to classification to help SVM achieve acceptable performance. One might wonder if that was a clever idea, since a *univariate* feature selection step prior to a *multivariate* analysis somewhat contradicts the goal to identify *multivariate* signals. Only features will be retained that show some signal on their own. If that turns out to be a problem for a particular analysis, PyMVPA offers a number of multivariate alternatives for features selection. There is an implementation of :term:`recursive feature selection` (:class:`~mvpa2.featsel.rfe.RFE`) and a helper to simplify its invocation for a typical use-case (:class:`~mvpa.featself.rfe.SplitRFE`). Also all classifier sensitivities can be used to select features. For classifiers where sensitivities cannot easily be extracted PyMVPA provides a noise perturbation measure (:class:`~mvpa2.measures.noiseperturbation.NoisePerturbationSensitivity`; see :ref:`Hanson et al. (2004) ` for an example application). With these building blocks it is possible to run fairly complex analyses. However, interpreting the results might not always be straight-forward. In the :ref:`next tutorial part ` we will set out to take away another constraint of all our previously performed analyses. We are going to go beyond spatial analyses and explore the time dimension. pymvpa2-2.6.4/doc/source/tutorial_significance.rst000066400000000000000000001276601323370031300222740ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Tutorial, statistical testing, monte-carlo, permutation .. _chap_tutorial_significance: *********************************************** WiP: The Earth Is Round -- Significance Testing *********************************************** .. note:: This tutorial part is also available for download as an `IPython notebook `_: [`ipynb `_] After performing a classification analysis one is usually interested in an evaluation of the results with respect to its statistical uncertainty. In the following we will take at a few possible approaches to get this from PyMVPA. Let's look at a typical setup for a cross-validated classification. We start by generating a dataset with 200 samples and 3 features of which only two carry some relevant signal. Afterwards we set up a standard leave-one-chunk-out cross-validation procedure for an SVM classifier. At this point we have seen this numerous times, and the code should be easy to read: >>> # lazy import >>> from mvpa2.suite import * >>> # some example data with signal >>> ds = normal_feature_dataset(perlabel=100, nlabels=2, nfeatures=3, ... nonbogus_features=[0,1], snr=0.3, nchunks=2) >>> # classifier >>> clf = LinearCSVMC() >>> # data folding >>> partitioner = NFoldPartitioner() >>> # complete cross-validation setup >>> cv = CrossValidation(clf, ... partitioner, ... errorfx=mean_match_accuracy, ... postproc=mean_sample()) >>> acc = cv(ds) .. exercise:: Take a look at the performance statistics of the classifier. Explore how it changes with different values of the signal-to-noise (``snr``) parameter of the dataset generator function. The simplest way to get a quick assessment of the statistical uncertainty of the classification accuracy is to look at the standard deviation of the accuracies across cross-validation folds. This can be achieved by removing the ``postproc`` argument of ``CrossValidation``. Another, slightly more informative, approach is to compute confidence intervals for the classification accuracy. We can do this by treating each prediction of the classifier as a Bernoulli trial with some success probability. If we further assume statistical independence of these prediction outcomes we can compute `binomial proportion confidence intervals`_ using a variety of methods. To implement this calculation we only have to modify the error function and the post processing of our previous analysis setup. .. _binomial proportion confidence intervals: https://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval >>> # complete cross-validation setup >>> cv = CrossValidation( ... clf, ... partitioner, ... errorfx=prediction_target_matches, ... postproc=BinomialProportionCI(width=.95, meth='jeffreys')) >>> ci_result = cv(ds) >>> ci = ci_result.samples[:, 0] >>> ci[0] < np.asscalar(acc) < ci[1] True Instead of computing accuracies we use an error function that returns a boolean vector of prediction success for each sample. In the post processing this information is then used to compute the confidence intervals. We can see that the previously computed accuracy lies within the confidence interval. If the assumption of statistical independence of the classifier prediction success holds we can be 95% certain that the true accuracy is within this interval. .. exercise:: Think about situations in which we cannot reasonably assume statistical independence of classifier prediction outcomes. Hint: What if the data in the testing dataset shows strong auto-correlation? *Null* hypothesis testing ========================= Another way of making statements like *"Performance is significantly above chance-level"* is *Null* hypothesis (aka *H0*) testing that PyMVPA supports for any :class:`~mvpa2.measures.base.Measure`. However, as with other applications of statistics in classifier-based analyses, there is the problem that we typically do not know the distribution of a variable like error or performance under the *Null* hypothesis (i.e. the probability of a result given that there is no signal), hence we cannot easily assign the adored p-values. Even worse, the chance-level or guess probability of a classifier depends on the content of a validation dataset, e.g. balanced or unbalanced number of samples per label, total number of labels, as well as the peculiarities of "independence" of training and testing data -- especially in the neuroimaging domain. Monte Carlo -- here I come! --------------------------- One approach to deal with this situation is to *estimate* the *Null* distribution using permutation testing. The *Null* distribution is estimated by computing the measure of interest multiple times using the original data samples but with permuted targets, presumably scrambling or destroying the signal of interest. Since quite often the exploration of all permutations is unfeasible, Monte-Carlo testing (see :ref:`Nichols et al. (2002) `) allows us to obtain a stable estimate with only a limited number of random permutations. Given the results computed using permuted targets, we can now determine the probability of the empirical result (i.e. the one computed from the original training dataset) under the *no signal* condition. This is simply the fraction of results from the permutation runs that is larger or smaller than the empirical (depending on whether one is looking at performances or errors). Here is our previous cross-validation set up: >>> cv = CrossValidation(clf, ... partitioner, ... postproc=mean_sample(), ... enable_ca=['stats']) >>> err = cv(ds) Now we want to run this analysis again, repeatedly and with a fresh permutation of the targets for each run. We need two pieces for the Monte Carlo shuffling. The first is an instance of an :class:`~mvpa2.generators.permutation.AttributePermutator` that will permute the target attribute of the dataset for each iteration. We will instruct it to perform 200 permutations. In a real analysis, the number of permutations will often be more than that. >>> permutator = AttributePermutator('targets', count=200) .. exercise:: The ``permutator`` is a generator. Try generating all 200 permuted datasets. The second necessary component for a Monte-Carlo-style estimation of the *Null* distribution is the actual "estimator". :class:`~mvpa2.clfs.stats.MCNullDist` will use the already created ``permutator`` to shuffle the targets and later on report the p-value from the left tail of the *Null* distribution, because we are going to compute errors and we are interested in them being *lower* than chance. Finally, we also ask for all results from Monte-Carlo shuffling to be stored for subsequent visualization of the distribution. >>> distr_est = MCNullDist(permutator, tail='left', enable_ca=['dist_samples']) The rest is easy. Measures take an optional constructor argument ``null_dist`` that can be used to provide an instance of some :class:`~mvpa2.clfs.stats.NullDist` estimator -- and we have just created one! Because a cross-validation is nothing but a measure, we can assign it our *Null* distribution estimator, and it will also perform permutation testing, in addition to the regular classification analysis on the "real" dataset. Consequently, the code hasn't changed much: >>> cv_mc = CrossValidation(clf, ... partitioner, ... postproc=mean_sample(), ... null_dist=distr_est, ... enable_ca=['stats']) >>> err = cv_mc(ds) >>> cv.ca.stats.stats['ACC'] == cv_mc.ca.stats.stats['ACC'] True Other than it taking a bit longer to compute, the performance did not change. But the additional waiting wasn't in vain, as we get the results of the statistical evaluation. The ``cv_mc`` :term:`conditional attribute` ``null_prob`` has a dataset that contains the p-values representing the likelihood of an empirical value (i.e. the result from analysing the original dataset) being equal or lower to one under the *Null* hypothesis, i.e. no actual relevant signal in the data. Or in more concrete terms, the p-value is the fraction of permutation results less than or equal to the empirical result. >>> p = cv_mc.ca.null_prob >>> # should be exactly one p-value >>> p.shape (1, 1) >>> np.asscalar(p) < 0.1 True .. exercise:: How many cross-validation analyses were computed when running ``cv_mc``? Make sure you are not surprised that it is more than 200. What is the minimum p-value that we can get from 200 permutations? Let's practise our visualization skills a bit and create a quick plot to show the *Null* distribution and how "significant" our empirical result is. And let's make a function for plotting to show off our Python-foo! >>> def make_null_dist_plot(dist_samples, empirical): ... pl.hist(dist_samples, bins=20, normed=True, alpha=0.8) ... pl.axvline(empirical, color='red') ... # chance-level for a binary classification with balanced samples ... pl.axvline(0.5, color='black', ls='--') ... # scale x-axis to full range of possible error values ... pl.xlim(0,1) ... pl.xlabel('Average cross-validated classification error') >>> >>> # make new figure ('_ =' is only used to swallow unnecessary output) >>> _ = pl.figure() >>> make_null_dist_plot(np.ravel(cv_mc.null_dist.ca.dist_samples), ... np.asscalar(err)) >>> # run pl.show() if the figure doesn't appear automatically You can see that we have created a histogram of the "distribution samples" stored in the *Null* distribution (because we asked for it previously). We can also see that the *Null* or chance distribution is centered around the expected chance-level and the empirical error value is in the far left tail, thus relatively unlikely to be a *Null* result, hence the low-ish p-value. This wasn't too bad, right? We could stop here. But there is this smell.... .. exercise:: The p-value that we have just computed and the *Null* distribution we looked at are, unfortunately, **invalid** -- at least if we want to know how likely it is to obtain our **empirical** result under a no-signal condition. Can you figure out why? PS: The answer is obviously in the next section, so do not spoil your learning experience by reading it before you have thought about this issue! Avoiding the trap OR Advanced magic 101 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Here is what went wrong: The dataset's class labels (aka targets) were shuffled repeatedly, and for each iteration a full cross-validation of classification error was computed. However, the shuffling was done on the *full* dataset, hence target values were permuted in both training *and* testing dataset portions in each CV-fold. This basically means that for each Monte Carlo iteration the classifier was **tested** on new data/signal. However, we are actually interested in what the classifier has to say about the *actual* data, but when it was **trained** on randomly permuted data. Doing a whole-dataset permutation is a common mistake with very beneficial side-effects -- as you will see in a bit. Sadly, doing the permuting correctly (i.e. in the training portion of the dataset only) is a bit more complicated due to the data-folding scheme that we have to deal with. Here is how it goes: >>> repeater = Repeater(count=200) A ``repeater`` is a simple node that returns any given dataset a configurable number of times. We use this helper to configure the number of Monte Carlo iterations. .. exercise:: A :class:`~mvpa2.generators.base.Repeater` is also a generator. Try calling it with our dataset. What does it do? How can you get it to produce the 200 datasets? The new ``permutator`` is again configured to shuffle the ``targets`` attribute. But this time only *once* and only for samples that were labeled as being part of the training set in a particular CV-fold. The ``partitions`` sample attribute is created by the NFoldPartitioner that we have already configured earlier (or any other partitioner in PyMVPA for that matter). >>> permutator = AttributePermutator('targets', ... limit={'partitions': 1}, ... count=1) The most significant difference is that we are now going to use a dedicate measure to estimate the *Null* distribution. That measure is very similar to the cross-validation we have used before, but differs in an important twist: we use a chained generator to perform the data-folding. This chain comprises of our typical partitioner (marks one chunk as testing data and the rest as training, for all chunks) and the new one-time permutator. This chain-generator causes the cross-validation procedure to permute the training data only for each data-fold and leave the testing data untouched. Note, that we make the chain use the ``space`` of the partitioner, to let the ``CrossValidation`` know which samples attribute defines training and testing partitions. >>> null_cv = CrossValidation( ... clf, ... ChainNode( ... [partitioner, permutator], ... space=partitioner.get_space()), ... postproc=mean_sample()) .. exercise:: Create a separate chain-generator and explore what it does. Remember: it is just a generator. Now we create our new and improved distribution estimator. This looks similar to what we did before, but we now use our dedicated *Null* cross-validation measure, and run it as often as ``repeater`` is configured to estimate the *Null* performance. >>> distr_est = MCNullDist(repeater, tail='left', ... measure=null_cv, ... enable_ca=['dist_samples']) On the "outside" the cross-validation measure for computing the empricial performance estimate is 100% identical to what we have used before. All the magic happens inside the distribution estimator. >>> cv_mc_corr = CrossValidation(clf, ... partitioner, ... postproc=mean_sample(), ... null_dist=distr_est, ... enable_ca=['stats']) >>> err = cv_mc_corr(ds) >>> cv_mc_corr.ca.stats.stats['ACC'] == cv_mc.ca.stats.stats['ACC'] True >>> cv_mc.ca.null_prob.samples < cv_mc_corr.ca.null_prob.samples array([[ True]], dtype=bool) After running it we see that there is no change in the empirical performance (great!), but our significance did suffer (poor thing!). We can take a look at the whole picture by plotting our previous *Null* distribution estimate and the new, improved one as an overlay. >>> make_null_dist_plot(cv_mc.null_dist.ca.dist_samples, np.asscalar(err)) >>> make_null_dist_plot(cv_mc_corr.null_dist.ca.dist_samples, np.asscalar(err)) >>> # run pl.show() if the figure doesn't appear automatically It should be obvious that there is a substantial difference in the two estimates, but only the latter/wider distribution is valid! .. exercise:: Keep it in mind. Keep it in mind. Keep it in mind. The following content is incomplete and experimental ==================================================== If you have a clue ------------------ There a many ways to further tweak the statistical evaluation. For example, if the family of the distribution is known (e.g. Gaussian/Normal) and provided via the ``dist_class`` parameter of ``MCNullDist``, then permutation tests samples will be used to fit this particular distribution and estimate distribution parameters. This could yield enormous speed-ups. Under the (strong) assumption of Gaussian distribution, 20-30 permutations should be sufficient to get sensible estimates of the distribution parameters. Fitting a normal distribution would look like this. Actually, only a single modification is necessary (the ``dist_class`` argument), but we will also reduce the number permutations. >>> distr_est = MCNullDist(Repeater(count=200), ... dist_class=scipy.stats.norm, ... tail='left', ... measure=null_cv, ... enable_ca=['dist_samples']) >>> cv_mc_norm = CrossValidation(clf, ... partitioner, ... postproc=mean_sample(), ... null_dist=distr_est, ... enable_ca=['stats']) >>> err = cv_mc_norm(ds) >>> distr = cv_mc_norm.null_dist.dists()[0] >>> make_null_dist_plot(cv_mc_norm.null_dist.ca.dist_samples, ... np.asscalar(err)) >>> x = np.linspace(0,1,100) >>> _ = pl.plot(x, distr.pdf(x), color='black', lw=2) Family-friendly --------------- When going through this chapter you might have thought: "Jeez, why do they need to return a single p-value in a freaking dataset?" But there is a good reason for this. Lets set up another cross-validation procedure. This one is basically identical to the last one, except for not averaging classifier performances across data-folds (i.e. ``postproc=mean_sample()``). >>> cvf = CrossValidation( ... clf, ... partitioner, ... null_dist=MCNullDist( ... repeater, ... tail='left', ... measure=CrossValidation( ... clf, ... ChainNode([partitioner, permutator], ... space=partitioner.get_space())) ... ) ... ) If we run this on our dataset, we no longer get a single performance value, but one per data-fold (chunk) instead: >>> err = cvf(ds) >>> len(err) == len(np.unique(ds.sa.chunks)) True But here comes the interesting bit: >>> len(cvf.ca.null_prob) == len(err) True So we get one p-value for each element in the datasets returned by the cross-validation run. More generally speaking, the distribution estimation happens independently for each value returned by a measure -- may this be multiple samples, or multiple features, or both. Consequently, it is possible to test a large variety of measure with this facility. Evaluating multi-class classifications ====================================== So far we have mostly looked at the situation where a classifier is trying to discriminate data from two possible classes. In many cases we can assume that a classifier that *cannot* discriminate these two classes would perform at a chance-level of 0.5 (ACC). If it does that we would conclude that there is no signal of interest in the data, or our classifier of choice cannot pick it up. However, there is a whole universe of classification problems where it is not that simple. Let's revisit the classification problem from :ref:`the chapter on classifiers `. >>> from mvpa2.tutorial_suite import * >>> ds = get_haxby2001_data_alternative(roi='vt', grp_avg=False) >>> print ds.sa['targets'].unique ['bottle' 'cat' 'chair' 'face' 'house' 'scissors' 'scrambledpix' 'shoe'] >>> clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') >>> cv = CrossValidation(clf, NFoldPartitioner(), errorfx=mean_mismatch_error, ... enable_ca=['stats']) >>> cv_results = cv(ds) >>> print '%.2f' % np.mean(cv_results) 0.53 So here we have an 8-way classification problem, and during the cross-validation procedure the chosen classifier makes correct predictions for approximately half of the data points. The big question is now: **What does that tell us?** There are many scenarios that could lead to this prediction performance. It could be that the fitted classifier model is very good, but only captures the data variance for half of the data categories/classes. It could also be that the classifier model quality is relatively poor and makes an equal amount of errors for all classes. In both cases the average accuracy will be around 50%, and most likely **highly significant**, given a chance performance of 1/8. We could now spend some time testing this significance with expensive permutation tests, or making assumptions on the underlying distribution. However, that would only give us a number telling us that the average accuracy is really different from chance, but it doesn't help with the problem that the accuracy really doesn't tell us much about what we are interested in. Interesting hypotheses in the context of this dataset could be whether the data carry a signal that can be used to distinguish brain response patterns from animate vs. inanimate stimulus categories, or whether data from object-like stimuli are all alike and can only be distinguished from random noise, etc. One can imagine running such an analysis on data from different parts of the brain and the results changing -- without necessarily having a big impact on the overall classification accuracy. A lot more interesting information is available from the confusion matrix, a contingency table showing prediction targets vs. actual predictions. >>> print cv.ca.stats.matrix [[36 7 18 4 1 18 15 18] [ 3 56 6 18 0 3 7 5] [ 2 2 21 0 4 0 3 1] [ 3 16 0 76 4 5 3 1] [ 1 1 6 1 97 1 4 0] [20 5 15 4 0 29 15 11] [ 0 1 0 0 0 2 19 0] [43 20 42 5 2 50 42 72]] We can see a strong diagonal, but also block-like structure, and have to realize that simply staring at the matrix doesn't help us to easily assess the likelihood of any of our hypotheses being true or false. It is trivial to do a Chi-square test of the confusion table... >>> print 'Chi^2: %.3f (p=%.3f)' % cv.ca.stats.stats["CHI^2"] Chi^2: 1942.519 (p=0.000) ... but, again, it doesn't tell us anything other than that the classifier is not just doing random guesses. It would be much more useful if we could estimate how likely it is, given the observed confusion matrix, that the employed classifier is able to discriminate *all* stimulus classes from each other, and not just a subset. Even more useful would be if we could relate this probability to specific alternative hypotheses, such as an animate/inanimate-only distinction. :ref:`Olivetti et al. (2012) ` have devised a method that allows for doing exactly that. The confusion matrix is analyzed in a Bayesian framework regarding the statistical dependency of observed and predicted class labels. Confusions within a set of classes that cannot be discriminated should be independently distributed, while there should be a statistical dependency of confusion patterns within any set of classes that can all be discriminated from each other. This algorithm is available in the :class:`~mvpa2.clfs.transerror.BayesConfusionHypothesis` node. >>> cv = CrossValidation(clf, NFoldPartitioner(), ... errorfx=None, ... postproc=ChainNode((Confusion(labels=ds.UT), ... BayesConfusionHypothesis()))) >>> cv_results = cv(ds) >>> print cv_results.fa.stat ['log(p(C|H))' 'log(p(H|C))'] Most likely hypothesis to explain this confusion matrix: >>> print cv_results.sa.hypothesis[np.argsort(cv_results.samples[:,1])[-1]] [['bottle'], ['cat'], ['chair'], ['face'], ['house'], ['scissors'], ['scrambledpix'], ['shoe']] Previously in part 8 ==================== Previously, :ref:`while looking at classification ` we have observed that classification error depends on the chosen classification method, data preprocessing, and how the error was obtained -- training error vs generalization estimates using different data splitting strategies. Moreover in :ref:`attempts to localize activity using searchlight ` we saw that generalization error can reach relatively small values even when processing random data which (should) have no true signal. So, the value of the error alone does not provide sufficient evidence to state that our classifier or any other method actually learnt the mapping from the data into variables of interest. So, how do we decide what estimate of error can provide us sufficient evidence that constructed mapping reflects the underlying phenomenon or that our data carried the signal of interest? Researchers interested in developing statistical learning methods usually aim at achieving as high generalization performance as possible. Newly published methods often stipulate their advantage over existing ones by comparing their generalization performance on publicly available datasets with known characteristics (number of classes, independence of samples, actual presence of information of interest, etc.). Therefore, generalization performances presented in statistical learning publications are usually high enough to obliterate even a slight chance that they could have been obtained simply by chance. For example, those classifiers trained on MNIST_ dataset of handwritten digits were worth reporting whenever they demonstrated average **errors of only 1-2%** while doing classification among samples of 10 different digits (the largest error reported was 12% using the simplest classification approach). .. _MNIST: http://yann.lecun.com/exdb/mnist .. Statistical learning brought into the realm of hypothesis testing .. todo:: Literature search for what other domains such approach is also used The situation is substantially different in the domain of neural data analysis. There classification is most often used not to construct a reliable mapping from data into behavioral variable(s) with as small error as possible, but rather to show that learnt mapping is good enough to claim that such mapping exists and data carries the effects caused by the corresponding experiment. Such an existence claim is conventionally verified with a classical methodology of null-hypothesis (H0) significance testing (NHST), whenever the achievement of generalization performance with *statistically significant* excursion away from the *chance-level* is taken as the proof that data carries effects of interest. The main conceptual problem with NHST is a widespread belief that having observed the data, the level of significance at which H0 could be rejected is equivalent to the probability of the H0 being true. I.e. if it is unlikely that data comes from H0, it is as unlikely for H0 being true. Such assumptions were shown to be generally wrong using :ref:`deductive and Bayesian reasoning ` since P(D|H0) not equal P(H0|D) (unless P(D)==P(H0)). Moreover, *statistical significance* alone, taken without accompanying support on viability and reproducibility of a given finding, was argued :ref:`more likely to be incorrect `. .. exerciseTODO:: If results were obtained at the same significance p<0.05, which finding would you believe to reflect the existing phenomenon: ability to decode finger-tapping sequence of the subject participating in the experiment or ability to decode ... What differs multivariate analysis from univariate is that it * avoids **multiple comparisons** problem in NHST * has higher **flexibility**, thus lower **stability** Multivariate methods became very popular in the last decade of neuroimaging research partially due to their inherent ability to avoid multiple comparisons issue, which is a flagman of difficulties while going for a *fishing expedition* with univariate methods. Performing cross-validation on entire ROI or even full-brain allowed people to state presence of so desired effects without defending chosen critical value against multiple-comparisons. Unfortunately, as there is no such thing as *free lunch*, ability to work with all observable data at once came at a price for multivariate methods. The second peculiarity of the application of statistical learning in psychological research is the actual neural data which researchers are doomed to analyze. As we have already seen from previous tutorial parts, typical fMRI data has - relatively **low number of samples** (up to few thousands in total) - relatively **large dimensionality** (tens of thousands) - **small signal-to-noise ratio** - **non-independent measurements** - **unknown ground-truth** (either there is an effect at all, or if there is -- what is inherent bias/error) - **unknown nature of the signal**, since BOLD effect is not entirely understood. In the following part of the tutorial we will investigate the effects of some of those factors on classification performance with simple (or not so) examples. But first lets overview the tools and methodologies for NHST commonly employed. Statistical Tools in Python =========================== `scipy` Python module is an umbrella project to cover the majority of core functionality for scientific computing in Python. In turn, :mod:`~scipy.stats` submodule covers a wide range of continuous and discrete distributions and statistical functions. .. exercise:: Glance over the `scipy.stats` documentation for what statistical functions and distributions families it provides. If you feel challenged, try to figure out what is the meaning/application of :func:`~scipy.stats.rdist`. The most popular distribution employed for NHST in the context of statistical learning, is :class:`~scipy.stats.binom` for testing either generalization performance of the classifier on independent data could provide evidence that the data contains the effects of interest. .. note:: `scipy.stats` provides function :func:`~scipy.stats.binom_test`, but that one was devised only for doing two-sides tests, thus is not directly applicable for testing generalization performance where we aim at the tail with lower than chance performance values. .. exercise:: Think about scenarios when could you achieve strong and very significant mis-classification performance, i.e. when, for instance, binary classifier tends to generalize into the other category. What could it mean? :class:`~scipy.stats.binom` whenever instantiated with the parameters of the distribution (which are number of trials, probability of success on each trial), it provides you ability to easily compute a variety of statistics of that distribution. For instance, if we want to know, what would be the probability of having achieved 57 of more correct responses out of 100 trials, we need to use a survival function (1-cdf) to obtain the *weight* of the right tail including 57 (i.e. query for survival function of 56): >>> from scipy.stats import binom >>> binom100 = binom(100, 1./2) >>> print '%.3g' % binom100.sf(56) 0.0967 Apparently obtaining 57 correct out 100 cannot be considered significantly good performance by anyone. Lets investigate how many correct responses we need to reach the level of 'significance' and use *inverse survival function*: >>> binom100.isf(0.05) + 1 59.0 >>> binom100.isf(0.01) + 1 63.0 So, depending on your believe and prior support for your hypothesis and data you should get at least 59-63 correct responses from a 100 trials to claim the existence of the effects. Someone could rephrase above observation that to achieve significant performance you needed an effect size of 9-13 correspondingly for those two levels of significance. .. exercise:: Plot a curve of *effect sizes* (number of correct predictions above chance-level) vs a number of trials at significance level of 0.05 for a range of trial numbers from 4 to 1000. Plot %-accuracy vs number of trials for the same range in a separate plot. TODO .. XXX ripples... .. nsamples = np.arange(4, 1000, 2) .. effect_sizes = [ceil(binom(n,0.5).isf(0.05) + 1 - n/2) for n in nsamples] .. pl.plot(nsamples, effect_sizes) .. pl.figure() .. pl.plot(nsamples, 0.5 + effect_sizes / nsamples) .. pl.ylabel('Accuracy to reach p<=0.05') .. pl.hlines([0.5, 1.0], 0, 1000) .. commentTODO:: If this is your first ever analysis and you are not comparing obtained results across different models (classifiers), since then you would (theoretically) correct your significance level for multiple comparisons. Dataset Exploration for Confounds ================================= :ref:`"Randomization is a crucial aspect of experimental design... In the absence of random allocation, unforeseen factors may bias the results." `. Unfortunately it is impossible to detect and warn about all possible sources of confounds which would invalidate NHST based on a simple parametric binomial test. As a first step, it is always useful to inspect your data for possible sources of samples non-independence, especially if your results are not strikingly convincing or too provocative. Possible obvious problems could be: * dis-balanced testing sets (usually non-equal number of samples for each label in any given chunk of data) * order effects: either preference of having samples of particular target in a specific location or the actual order of targets To allow for easy inspection of dataset to prevent such obvious confounds, :func:`~mvpa2.datasets.miscfx.summary` function (also a method of any `Dataset`) was constructed. Lets have yet another look at our 8-categories dataset: >>> from mvpa2.tutorial_suite import * >>> ds = get_haxby2001_data(roi='vt') >>> print ds.summary() Dataset: 16x577@float64, , , stats: mean=11.5788 std=13.7772 var=189.811 min=-49.5554 max=97.292 Counts of targets in each chunk: chunks\targets bottle cat chair face house scissors scrambledpix shoe --- --- --- --- --- --- --- --- 0+2+4+6+8+10 1 1 1 1 1 1 1 1 1+3+5+7+9+11 1 1 1 1 1 1 1 1 Summary for targets across chunks targets mean std min max #chunks bottle 1 0 1 1 2 cat 1 0 1 1 2 chair 1 0 1 1 2 face 1 0 1 1 2 house 1 0 1 1 2 scissors 1 0 1 1 2 scrambledpix 1 0 1 1 2 shoe 1 0 1 1 2 Summary for chunks across targets chunks mean std min max #targets 0+2+4+6+8+10 1 0 1 1 8 1+3+5+7+9+11 1 0 1 1 8 Sequence statistics for 16 entries from set ['bottle', 'cat', 'chair', 'face', 'house', 'scissors', 'scrambledpix', 'shoe'] Counter-balance table for orders up to 2: Targets/Order O1 | O2 | bottle: 0 2 0 0 0 0 0 0 | 0 0 2 0 0 0 0 0 | cat: 0 0 2 0 0 0 0 0 | 0 0 0 2 0 0 0 0 | chair: 0 0 0 2 0 0 0 0 | 0 0 0 0 2 0 0 0 | face: 0 0 0 0 2 0 0 0 | 0 0 0 0 0 2 0 0 | house: 0 0 0 0 0 2 0 0 | 0 0 0 0 0 0 2 0 | scissors: 0 0 0 0 0 0 2 0 | 0 0 0 0 0 0 0 2 | scrambledpix: 0 0 0 0 0 0 0 2 | 1 0 0 0 0 0 0 0 | shoe: 1 0 0 0 0 0 0 0 | 0 1 0 0 0 0 0 0 | Correlations: min=-0.52 max=1 mean=-0.067 sum(abs)=5.7 You can see that labels were balanced across chunks -- i.e. that each chunk has an equal number of samples of each target label, and that samples of different labels are evenly distributed across chunks. TODO... Counter-balance table shows either there were any order effects among conditions. In this case we had only two instances of each label in the dataset due to the averaging of samples across blocks, so it would be more informative to look at the original sequence. To do so avoiding loading a complete dataset we would simply provide the stimuli sequence to :class:`~mvpa2.clfs.miscfx.SequenceStats` for the analysis: >>> attributes_filename = os.path.join(pymvpa_dataroot, 'attributes_literal.txt') >>> attr = SampleAttributes(attributes_filename) >>> targets = np.array(attr.targets) >>> ss = SequenceStats(attr.targets) >>> print ss Sequence statistics for 1452 entries from set ['bottle', 'cat', 'chair', 'face', 'house', 'rest', 'scissors', 'scrambledpix', 'shoe'] Counter-balance table for orders up to 2: Targets/Order O1 | O2 | bottle: 96 0 0 0 0 12 0 0 0 | 84 0 0 0 0 24 0 0 0 | cat: 0 96 0 0 0 12 0 0 0 | 0 84 0 0 0 24 0 0 0 | chair: 0 0 96 0 0 12 0 0 0 | 0 0 84 0 0 24 0 0 0 | face: 0 0 0 96 0 12 0 0 0 | 0 0 0 84 0 24 0 0 0 | house: 0 0 0 0 96 12 0 0 0 | 0 0 0 0 84 24 0 0 0 | rest: 12 12 12 12 12 491 12 12 12 | 24 24 24 24 24 394 24 24 24 | scissors: 0 0 0 0 0 12 96 0 0 | 0 0 0 0 0 24 84 0 0 | scrambledpix: 0 0 0 0 0 12 0 96 0 | 0 0 0 0 0 24 0 84 0 | shoe: 0 0 0 0 0 12 0 0 96 | 0 0 0 0 0 24 0 0 84 | Correlations: min=-0.19 max=0.88 mean=-0.00069 sum(abs)=77 Order statistics look funky at first, but they would not surprise you if you recall the original design of the experiment -- blocks of 8 TRs per each category, interleaved with 6 TRs of rest condition. Since samples from two adjacent blocks are far apart enough not to contribute to 2-back table (O2 table on the right), it is worth inspecting if there was any dis-balance in the order of the picture conditions blocks. It would be easy to check if we simply drop the 'rest' condition from consideration: >>> print SequenceStats(targets[targets != 'rest']) Sequence statistics for 864 entries from set ['bottle', 'cat', 'chair', 'face', 'house', 'scissors', 'scrambledpix', 'shoe'] Counter-balance table for orders up to 2: Targets/Order O1 | O2 | bottle: 96 2 1 2 2 3 0 2 | 84 4 2 4 4 6 0 4 | cat: 2 96 1 1 1 1 4 2 | 4 84 2 2 2 2 8 4 | chair: 2 3 96 1 1 2 1 2 | 4 6 84 2 2 4 2 4 | face: 0 3 3 96 1 1 2 2 | 0 6 6 84 2 2 4 4 | house: 0 1 2 2 96 2 4 1 | 0 2 4 4 84 4 8 2 | scissors: 3 0 2 3 1 96 0 2 | 6 0 4 6 2 84 0 4 | scrambledpix: 2 1 1 2 3 2 96 1 | 4 2 2 4 6 4 84 2 | shoe: 3 2 2 1 3 0 1 96 | 6 4 4 2 6 0 2 84 | Correlations: min=-0.3 max=0.87 mean=-0.0012 sum(abs)=59 TODO .. exercise:: Generate few 'designs' consisting of varying condition sequences and assess their counter-balance. Generate some random designs using random number generators or permutation functions provided in :mod:`numpy.random` and assess their counter-balance. .. exerciseTODO:: If you take provided data set, what accuracy could(would) you achieve in Taro-reading of the future stimuli conditions based on just previous stimuli condition(fMRI data) data 15-30 seconds prior the actual stimuli block? Would it be statistically/scientifically significant? Some sources of confounds might be hard to detect or to eliminate: - dependent variable is assessed after data has been collected (RT, ACC, etc) so it might be hard to guarantee equal sampling across different splits of the data. - motion effects, if motion is correlated with the design, might introduce major confounds into the signal. With multivariate analysis the problem becomes even more sever due to the high sensitivity of multivariate methods and the fact that motion effects might be impossible to eliminate entirely since they are strongly non-linear. So, even if you regress out whatever number of descriptors describing motion (mean displacement, angles, shifts, etc.) you would not be able to eliminate motion effects entirely. And that residual variance from motion spread through the entire volume might contribute to your *generalization performance*. .. exercise:: Inspect the arguments of generic interface of all splitters :class:`~mvpa2.datasets.splitters.Splitter` for a possible workaround in the case of dis-balanced targets. Therefore, before the analysis on the actual fMRI data, it might be worth inspecting what kind of :term:`generalization` performance you might obtain if you operate simply on the confounds (e.g. motion parameters and effects). .. index:: monte-carlo, permutation Hypothesis Testing ================== .. note:: When thinking about what critical value to choose for NHST keep such :ref:`guidelines from NHST inventor, Dr.Fisher ` in mind. For significance range '0.2 - 0.5' he says: "judged significant, though barely so; ... these data do not, however, demonstrate the point beyond possibility of doubt". Ways to assess *by-chance* null-hypothesis distribution of measures range from fixed, to estimated parametric, to non-parametric permutation testing. Unfortunately not a single way provides an ultimate testing facility to be applied blindly to any chosen problem without investigating the appropriateness of the data at hand (see previous section). Every kind of :class:`~mvpa2.measures.base.Measure` provides an easy way to trigger assessment of *statistical significance* by specifying ``null_dist`` parameter with a distribution estimator. After a given measure is computed, the corresponding p-value(s) for the returned value(s) could be accessed at ``ca.null_prob``. :ref:`"Applications of permutation testing methods to single subject fMRI require modelling the temporal auto-correlation in the time series." ` .. exercise:: Try to assess significance of the finding on two problematic categories from 8-categories dataset without averaging the samples within the blocks of the same target. Even non-parametric test should be overly optimistic (forgotten **exchangeability** requirement for parametric testing, such as multiple samples within a block for a block design)... TODO Independent Samples ------------------- Since "voodoo correlations" paper, most of the literature in brain imaging is seems to became more careful in avoiding "double-dipping" and keeping their testing data independent from training data, which is one of the major concerns for doing valid hypothesis testing later on. Not much attention is given though to independence of samples aspect -- i.e. not only samples in testing set should be independent from training ones, but, to make binomial distribution testing valid, testing samples should be independent from each other as well. The reason is simple -- number of the testing samples defines the width of the null-chance distribution, but consider the limiting case where all testing samples are heavily non-independent, consider them to be a 1000 instances of the same sample. Canonical binomial distribution would be very narrow, although effectively it is just 1 independent sample being tested, thus ... TODO Statistical Treatment of Sensitivities ====================================== .. note:: Statistical learning is about constructing reliable models to describe the data, and not really to reason either data is noise. .. note:: How do we decide to threshold sensitivities, remind them searchlight results with strong bimodal distributions, distribution outside of the brain as a true by-chance. May be reiterate that sensitivities of bogus model are bogus Moreover, constructed mapping with barely *above-chance* performance is often further analyzed for its :ref:`sensitivity to the input variables `. References ========== :ref:`Cohen, J. (1994) ` *Classical critic of null hypothesis significance testing* :ref:`Fisher, R. A. (1925) ` *One of the 20th century's most influential books on statistical methods, which coined the term 'Test of significance'.* :ref:`Ioannidis, J. (2005) ` *Simulation study speculating that it is more likely for a research claim to be false than true. Along the way the paper highlights aspects to keep in mind while assessing the 'scientific significance' of any given study, such as, viability, reproducibility, and results.* :ref:`Nichols et al. (2002) ` *Overview of standard nonparametric randomization and permutation testing applied to neuroimaging data (e.g. fMRI)* :ref:`Wright, D. (2009) ` *Historical excurse into the life of 10 prominent statisticians of XXth century and their scientific contributions.* pymvpa2-2.6.4/doc/source/whoisusingit.rst000066400000000000000000000425401323370031300204540ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. index:: Who is using it?, Publications .. _chap_whoisusingit: **************** Who Is Using It? **************** .. only:: html If you are using PyMVPA or have published a study employing it, please leave a comment at the bottom of this page, if you want to be listed here as well. Institutions Where PyMVPA Is Known To Be Used ============================================= * Center for Mind/Brain Sciences, **University of Trento**, Italy * Department of Psychological and Brain Sciences, **Dartmouth College**, USA * Thayer School of Engineering, **Dartmouth College**, USA * Department of Psychology & Neuroscience, **Duke University**, USA * **Fondazione Bruno Kessler**, Italy * Department of Brain and Cognitive Sciences, **Massachusetts Institute of Technology**, USA * Department of Neurology, **Max Planck Insititute for Neurological Research**, Cologne, Germany * **MRC Cognition and Brain Sciences Unit**, Cambridge, UK * Department of Experimental Psychology, **Otto-von-Guericke-University Magdeburg**, Germany * Donders Center for Cognition, **Radboud University Nijmegen**, Netherlands * Department of Psychology, **University of California at Los Angeles**, USA * Center for Functional Neuroimaging, **University of Pennsylvania**, USA * Brain & Creativity Institute, **University of Southern California**, USA * Imaging Research Center, **University of Texas at Austin**, USA * Department of Psychiatry, **University of Wisconsin, Madison**, USA * Department of Psychology, **Yale University**, USA ...and many more (stopped extending this list in 2012). Studies employing PyMVPA ======================== 2016 ---- * :ref:`Guntupalli et al., Cerebral Cortex (2016) `. A Model of Representational Spaces in Human Cortex * Watson et al., NeuroImage (2016). Spatial properties of objects predict patterns of neural response in the ventral visual pathway * Watson et al., NeuroImage (2016). Patterns of neural response in scene-selective regions of the human brain are affected by low-level manipulations of spatial frequency 2015 ---- * Floren et al., Frontiers in Human Neuroscience (2015). Accurately decoding visual information from fMRI data obtained in a realistic virtual environment * Merkel et al, NeuroImage (2015). Neural correlates of multiple object tracking strategies * Pogoda, et al., Brain and Cognition (2015). Multivariate representation of food preferences in the human brain * Emmerling et al., NeuroImage (2015). Decoding the direction of imagined visual motion using 7 T ultra-high field fMRI * Danelli et al., Frontiers in Psychology (2015). Framing effects reveal discrete lexical-semantic and sublexical procedures in reading: an fMRI study * Schlegel et al., NeuroImage (2015). The artist emerges: Visual art learning alters neural structure and function * Maass et al., ELife (2015). Functional subregions of the human entorhinal cortex * Sha et al., Journal of Cognitive Neuroscience (2015). The Animacy Continuum in the Human Ventral Vision Pathway * :ref:`Greisel et al., arXiv (2015) `. Photometric redshifts and model spectral energy distributions of galaxies from the SDSS-III BOSS DR10 data * :ref:`McNamee et al., Journal of Neuroscience (2015) `. Characterizing the associative content of brain structures involved in habitual and goal-directed actions in humans: a multivariate fMRI study * :ref:`Cole et al., Cerebral Cortex (2015) `. The behavioral relevance of task information in human prefrontal cortex * :ref:`Guo and Meng, NeuroImage (2015) `. The encoding of category-specific versus nonspecific information in human inferior temporal cortex 2014 ---- * :ref:`Rueschemeyer et al., Journal of Cognitive Neuroscience (2014) `. Observing, performing, and understanding actions: Revisiting the role of cortical motor areas in processing of action words. * :ref:`Hanke et al., Scientific Data (2014) `. A high-resolution 7-Tesla fMRI dataset from complex natural stimulation with an audio movie. * :ref:`Helfinstein et al., PNAS (2014) `. Predicting risky choices from brain activity patterns. * :ref:`Sha et al., Journal of Cognitive Neuroscience (2014) `. The animacy continuum in the human ventral vision pathway * :ref:`Schönwiesner et al., Cerebral Cortex (2014) `. Parcellation of Human and Monkey core auditory cortex with fMRI pattern classification and objective detection of tonotopic gradient reversals * :ref:`Klein and Zatorre, Cerebral Cortex (2014) `. Representations of invariant musical categories are decodable by pattern analysis of locally distributed BOLD responses in superior temporal and intraparietal sulci * :ref:`Huffman and Start, Hippocampus (2014) `. Multivariate pattern analysis of the human medial temporal lobe revealed representationally categorical cortex and representationally agnostic hippocampus * :ref:`Schlegel et al., NeuroImage (2014) `. The artist emerges: Visual art learning alters neural structure and function * :ref:`Jimura et al, Frontiers in Human Neuroscience (2014) `. The neural basis of task switching changes with skill acquisition * :ref:`Lee and McCarthy, Cerebral Cortex (2014) `. Functional Heterogeneity and Convergence in the Right Temporoparietal Junction * :ref:`Watson et al., NeuroImage (2014) `. Patterns of response to visual scenes are linked to the low-level properties of the image * :ref:`Schlichting and Preston, PNAS (2014) `. Memory reactivation during rest supports upcoming learning of related content * :ref:`Mittner et al., Journal of Neuroscience (2014) `. When the brain takes a break: A model-based analysis of mind wandering * :ref:`Wang et al., Journal of Neuroscience (2014) `. Distributed Value Representation in the Medial Prefrontal Cortex during Intertemporal Choices * :ref:`Parkinson et al., Journal of Neuroscience (2014) `. A common cortical metric for spatial, temporal, and social distance * :ref:`Kim et al., Frontiers in Human Neuroscience (2014) `. Discriminable spatial patterns of activation for faces and bodies in the fusiform gyrus * :ref:`Pollmann et al., NeuroImage (2014) `. The right temporo-parietal junction contributes to visual feature binding * :ref:`Fogelson et al., Frontiers in Psychology (2014) `. Unconscious neural processing differs with method used to render stimuli invisible * :ref:`Plitt et al., Social Neuroscience (2014) `. Are corporations people too? The neural correlates of moral judgments about companies and individuals * :ref:`Kubilius et al., Journal of Vision (2014) `. Encoding of configural regularity in the human visual system * :ref:`Heitmeyer et al., Automated Software Engineering (2014) `. Building high assurance human-centric decision systems 2013 ---- * :ref:`Anderson et al., Clinical Neuropsychology (2013) `. 7T fMRI reveals feasibility of covert visual attention-based brain–computer interfacing with signals obtained solely from cortical grey matter accessible by subdural surface electrodes * :ref:`Manelis and Reder, Cerebral Cortex (2013) `. he who is well prepared has half won the battle: an fMRI study of task preparation * :ref:`Kohler et al., NeuroImage (2013) `. Pattern classification precedes region-average hemodynamic response in early visual cortex. * :ref:`Hassabis et al., Cerebral Cortex (2013) `. Imagine all the people: How the brain creates and uses personality models to predict behavior. * :ref:`Smith et al., PNAS (2013) `. Decoding the anatomical network of spatial attention. * :ref:`Lescroart and Biederman, Cerebral Cortex (2013) `. Cortical representation of medial axis structure. * :ref:`Strnad et al., PloS one (2013) `. Multivoxel Pattern Analysis Reveals Auditory Motion Information in MT+ of Both Congenitally Blind and Sighted Individuals. * :ref:`Baumgartner et al., NeuroImage (2013) `. Evidence for feature binding in the superior parietal lobule. * :ref:`McNamee et al., Nature Neuroscience (2013) `. Category-dependent and category-independent goal-value codes in human ventromedial prefrontal cortex. * :ref:`Liang, et al., Nature Communications (2013) `. Primary sensory cortices contain distinguishable spatial patterns of activity for each sense. 2012 ---- .. cummulative impact this year: 81.406 * :ref:`Viswanathan et al., arXiv preprint (2012) `. On the geometric structure of fMRI searchlight-based information maps. * :ref:`Farrell et al., Biochemistry (2012) `. Toward Fast Determination of Protein Stability Maps: Experimental and Theoretical Analysis of Mutants of a Nocardiopsis prasina Serine Protease. * :ref:`Sobhani et al., PloS one (2012) `. Interpersonal liking modulates motor-related neural regions. * :ref:`Kingson et al., Journal of Neuroscience (2012) `. Sight and Sound Converge to Form Modality-Invariant Representations in Temporoparietal Cortex. * :ref:`Kaplan and Meyer, NeuroImage (2012) `. Multivariate pattern analysis reveals common neural patterns across individuals during touch observation. * :ref:`Carter et al., Science (2012) `. A distinct role of the temporal-parietal junction in predicting socially guided decisions. * :ref:`van der Laan, PloS one (2012) `. Appearance matters: neural correlates of food choice and packaging aesthetics. * :ref:`Merrill et al., Frontiers in Psychology (2012) `. Perception of words and pitch patterns in song and speech. * :ref:`Ekman et al., PNAS (2012) `. Predicting errors from reconfiguration patterns in human brain networks. * :ref:`Hiroyuki et al., Frontiers in Neuroinformatics (2012) `: Decoding Semantics across fMRI sessions with Different Stimulus Modalities: A practical MVPA Study. * :ref:`Gorlin et al., PNAS (2012) `: Imaging prior information in the brain. * :ref:`Raizada and Connolly, Cognitive Neuroscience (2012) `: What makes different people's representations alike: neural similarity-space solves the problem of across-subject fMRI decoding. `Preprint PDF and code `__ are available * :ref:`Connolly et al., Journal of Neuroscience (2012) `: Representation of Biological Classes in the Human Brain. 2011 ---- .. cummulative impact this year: 75.619 * :ref:`Cole et al, Frontiers in Human Neuroscience (2011) `. Rapid Transfer of Abstract Rules to Novel Contexts in Human Lateral Prefrontal Cortex. * :ref:`Vickery et al, Neuron (2011) `. Ubiquity and Specificity of Reinforcement Signals throughout the Human Brain. * :ref:`Duff et al., NeuroImage (2011) `: Task-driven ICA feature generation for accurate and interpretable prediction using fMRI. * :ref:`Haxby et al., Neuron (2011) `: A common, high-dimensional model of the representational space in human ventral temporal cortex. * :ref:`Jimura and Poldrack, Neuropsychologia (2011) `: Analyses of regional-average activation and multivoxel pattern information tell complementary stories * :ref:`Carlin et al., Current Biology (2011) `: A head view-invariant representation of gaze direction in anterior superior temporal sulcus * :ref:`Kaunitz et al., Frontiers in Perception Science (2011) `: Intercepting the first pass: rapid categorization is suppressed for unseen stimuli. * :ref:`Carlin et al., Cerebral Cortex (2011) `: Direction-Sensitive Codes for Observed Head Turns in Human Superior Temporal Sulcus. * :ref:`Kubilius et al., Psychological Science (2011) `: Emergence of perceptual gestalts in the human visual cortex: The case of the configural superiority effect. `Complete suite of sources from stimuli delivery (PsychoPy) to data analysis (PyMVPA) `__ is available * :ref:`Manelis et al., Cerebral Cortex (2011) `: Dynamic Changes In The Medial Temporal Lobe During Incidental Learning Of Object–Location Associations. * :ref:`Meyer et al., Cerebral Cortex (2011) `: Seeing Touch Is Correlated with Content-Specific Activity in Primary Somatosensory Cortex. 2010 ---- .. cummulative impact this year: 34.078 * :ref:`Woolgar et al., NeuroImage (2010) `: Multi-voxel coding of stimuli, rules, and responses in human frontoparietal cortex. * :ref:`Clithero et al., NeuroImage (2010) `: Within- and cross-participant classifiers reveal different neural coding of information. * :ref:`Gilliam et al., Proceedings of the International Conference on Pattern Recognition (2010) `: Scribe Identification in Medieval English Manuscripts. * :ref:`Cohen at al., Frontiers in Human Neuroscience (2010) `: Decoding Developmental Differences and Individual Variability in Response Inhibition Through Predictive Analyses Across Individuals. * :ref:`Meyer et al., Nature Neuroscience (2010) `: Predicting visual stimuli based on activity in auditory cortices. * :ref:`Manelis et al., Human Brain Mapping (2010) `: Implicit memory for object locations depends on reactivation of encoding-related brain regions. 2009 ---- .. cummulative impact this year: 11.98 * :ref:`Trautmann et al., IEEE/RSJ International Conference on Intelligent Robots and Systems (2009) `: Development of an autonomous robot for ground penetrating radar surveys of polar ice. * :ref:`Sun et al., Biological Psychiatry (2009) `: Elucidating an MRI-Based Neuroanatomic Biomarker for Psychosis: Classification Analysis Using Probabilistic Brain Atlas and Machine Learning Algorithms. Articles referring to PyMVPA ============================ 2014 ---- * :ref:`Haxby et al, Annual review of neuroscience (2014) `. Decoding neural representational spaces using multivariate pattern analysis * :ref:`Avants et al, NeuroImage (2014) `. Sparse canonical correlation analysis relates network-level atrophy to multivariate cognitive measures in a neurodegenerative population 2013 ---- * :ref:`Adluru et al., Neuroinformatics (2013) `. Penalized likelihood phenotyping: unifying voxelwise analyses and multi-voxel pattern analyses in neuroimaging: penalized likelihood phenotyping. * :ref:`Schrouff et al., Neuroinformatics (2013) `. PRoNTo: Pattern Recognition for Neuroimaging Toolbox. 2012 ---- * :ref:`Albanese et al., arXiv preprint (2012) `. mlpy: machine learning Python. * :ref:`Stelzer and Turner, NeuroImage (2012) `. Statistical inference and multiple testing correction in classification-based multi-voxel pattern analysis (MVPA): Random permutations and cluster size control. 2011 ---- * :ref:`Meyer and Kaplan, Journal of Visualized Experiments (2011) `. Cross-Modal Multivariate Pattern Analysis. * :ref:`Hollmann et al, PloS one (2011) `. Predicting decisions in human social interactions using real-time fMRI and pattern classification. * :ref:`Hanson and Schmidt, NeuroImage (2011) `. High-resolution imaging of the fusiform face area (FFA) using multivariate non-linear classifiers shows diagnosticity for non-face categories. * :ref:`Pereira and Botvinick, NeuroImage (2011) `. Information mapping with pattern classifiers: a comparative study. * :ref:`Pedregosa et al., The Journal of Machine Learning Research (2011) `. Scikit-learn: Machine Learning in Python. * :ref:`Pernet et al., Front. Psychology (2011) `. Single-trial analyses: why bother? * :ref:`Schackman et al., Nature Reviews Neuroscience (2011) `: The integration of negative affect, pain and cognitive control in the cingulate cortex. 2010 ---- * :ref:`Margulies et al., Magnetic Resonance Materials in Physics, Biology and Medicine (2010) `: Resting developments: a review of fMRI post-processing methodologies for spontaneous brain activity. * :ref:`Shiffrin, Topics in Cognitive Science, (2010) `: Perspectives on Modeling in Cognitive Science. * :ref:`LaConte, NeuroImage (2010) `: Decoding fMRI brain states in real-time. * :ref:`Legge & Badii, Proceedings of the 2nd International Conference on Emerging Network Intelligence (2010) `: An Application of Pattern Matching for the Adjustment of Quality of ServiceMetrics. 2009 ---- * :ref:`Spacek et al., The Neuromorphic Engineer (2009) `: Python in Neuroscience. * :ref:`Bandettini, Journal of Integrative Neuroscience (2009) `: Seven topics in functional magnetic reasonance imaging. * :ref:`Garcia et al., Frontiers in Neuroinformatics (2009) `: OpenElectrophy: An Electrophysiological Data- and Analysis-Sharing Framework. * :ref:`Mur et al., Social Cognitive and Affective Neuroscience (2009) `: Revealing representational content with pattern-information fMRI – an introductory guide. * :ref:`Pereira et al., NeuroImage (2009) `: Machine learning classifiers and fMRI: A tutorial overview. pymvpa2-2.6.4/doc/source/workshops/000077500000000000000000000000001323370031300172205ustar00rootroot00000000000000pymvpa2-2.6.4/doc/source/workshops/2009-fall.rst000066400000000000000000000325531323370031300212700ustar00rootroot00000000000000.. -*- mode: rst; fill-column: 78; indent-tabs-mode: nil -*- .. vi: set ft=rst sts=4 ts=4 sw=4 et tw=79: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### .. _chap_workshop_2009fall: ******************************** PyMVPA Extravaganza -- Fall 2009 ******************************** This development workshop took place at Dartmouth College, Nov 30 -- Dec 4, 2009. Goals ===== The primary purpose of this first PyMVPA workshop was to gather all people involved in (or related to) the development of PyMVPA. Participants introduced their projects and discussed their integration into, or interoperation with the PyMVPA main line. In addition, we discussed changes scheduled for the upcoming 0.5 release of PyMVPA that are supposed to improve shortcomings of the original design, or missing features that have been identified over the past two years. These include: * More flexible data storage: A new dataset implementation. * Better integration of PyMVPA and MDP_. * Establishing an optimization framework within PyMVPA. * Various performance improvements, e.g. kernel-caching, parallelization, potential of CUDA. .. _MDP: http://mdp-toolkit.sourceforge.net/ Participants ============ * Satrajit Ghosh, MIT, USA (for the kick-off talks) * Scott Gorlin, MIT, USA * Valentin Haenel, BCCN, Germany * Yaroslav O. Halchenko, Dartmouth College, USA * Michael Hanke, Dartmouth College, USA * Emanuele Olivetti, Fondazione Bruno Kessler, Italy * Per B. Sederberg, Princeton University, USA (virtual) * Tiziano Zito, BCCN, Germany Kick-off Talks ============== The workshop started on *Monday Nov 30th at 9:30am* with a series of talks covering the various aspects of the workshop (abstracts below). PyMVPA: Where we are now, and where we are going ------------------------------------------------ Yaroslav O. Halchenko, Michael Hanke This talk will give a brief summary of our original concept of PyMVPA that we had in mind when designing it two years ago, and how the project evolved since then. We will touch upon several issues we had to face concerning development, quality assurance, and deployment. While the latest PyMVPA release offers a wide array of tools and algorithms, we also identified a number of problems that limit further integration of novel techniques into the framework. The talk will conclude with an outline how we believe these issues can be resolved and introduces a number of improvements that will become available with the next milestone release: PyMVPA **0.5**. MDP inside out -------------- Tiziano Zito MDP is a Python collection of machine learning algorithms and a framework for implementing new algorithms and combining them into data processing workflows. MDP has been designed around two main ideas: expose a simple API, to allow scientific users to use it as a standalone library, and organize the internal structure of the objects to encourage developers to extend it and embed it in other libraries such as PyMVPA. In my talk, I will use MDP as a starting point to hash over some basic principles of scientific software design. I will discuss the criteria that inform the design of MDP and their specific implementation, and examine their advantages, limitations and possible alternatives. I will conclude with a summary of the current status and future plans for MDP development. Nipype - A Python framework for neuroimaging -------------------------------------------- Satrajit Ghosh Nipype is a project under the umbrella of Nipy, an effort to develop open-source, community-developed neuroimaging tools in Python. The goals of Nipype are two-fold: 1) to provide a uniform interface to existing neuroimaging software packages; and 2) to provide a pipelined environment for efficient batch-processing that can tie together different neuroimaging data analysis algorithms. By exposing a consistent interface to the external packages, researchers are able to explore a wide range of imaging algorithms and configure their own analysis pipeline which best fits their data and research objectives, and perform their analysis in a highly structured environment. The nipype framework is accessible to the wide range of programming expertise often found in neuroimaging, allowing for both easy-to-use high-level scripting and low-level algorithm development for unlimited customization. Profiling PyMVPA ---------------- Valentin Haenel In this talk I will present the work we did to compare the PyMVPA and Matlab implementations of the searchlight algorithm. This will include a description of how we iteratively discovered various bottlenecks and the steps taken to eliminate these. In particular, I will first present modifications of the source code and then show the resulting change in profiler output. I may conclude with some ideas for future work and some additional remarks about optimization in general. Supervised Tract Segmentation ----------------------------- Emanuele Olivetti Automatic segmentation of tractography data into pathways/tracts is a problem traditionally addressed by means of unsupervised techniques, i.e., clustering streamlines. The core of this work is to adopt instead a supervised approach, learning from the segmentation made by an expert neuroanatomist in order to predict tracts in new brains. In this talk a novel set of supervised approaches to the tract segmentation problem will be illustrated. The proposed solutions are based on machine learning topics like "supervised clustering", "learning with similarity functions" and "transduction". These solutions allow to exploit both diffusion and functional MRI data, to avoid co-registration between different subjects and to predict tracts in hemispheres different from the training example. Preliminary results support these claims. An intended goal of this talk is to open a discussion on how to map the building blocks of the proposed methods into the PyMVPA framework in order to support tractography data analysis natively and, more in general, to provide novel machine learning approaches to the users. Caching kernels --------------- Scott Gorlin A major bottleneck in a standard classification analysis relies on calculating the dot product between vectors in high-dimensional space. This is especially time consuming when there are few samples but the number of dimensions is high, such as the case of fMRI data. In fact, many common analysis techniques such as cross validation, bootstrapping, and model selection require that the kernel be recalculated for each permutation, even if that exact calculation has been done before. This presentation analyzes the problem inherent in a high-level library such as PyMVPA and illustrates one example of how to cache and reuse kernels, greatly simplifying the underlying computations and accelerating many analytical technique implementations by several orders of magnitude. Workshop Results ================ The workshop has been a huge success. We worked on further integrating PyMVPA with other Python-based software packages, both to make use of them inside PyMVPA, but also to better expose PyMVPA's functionality to other packages. The kick-off talks were followed by four days of intensive coding. During these days we were able to integrate virtually all outstanding patches that have been offered over the last year, but could not be merged yet due to required changes in the codebase. Below is a list of projects that we have been working on during the workshop. Moreover, we were able to continue the transition towards the new dataset implementation that had been started prior to the workshop. A significant number of additional unittest has been ported to the new code -- as usual identifying and fixing a number of bugs. .. figure:: ../pics/extravaganza-dc09.jpg Workshop participants (from left to right and top to bottom): Emanuele Olivetti, Scott Gorlin, Michael Hanke, Tiziano Zito, Yaroslav O. Halchenko, Valentin Haenel Grand Kernel Unification ------------------------ Scott Gorlin, Yaroslav O. Halchenko, and Emanuele Olivetti Many core MVPA algorithms rely on expensive kernel computations. However, most of these algorithms have their own naming standards and backend implementations which are not interchangeable, meaning that new advances in kernel logic or software implementations are not generally beneficial to PyMVPA as a whole. To solve this, we have implemented a new class hierarchy which not only specifies a standard kernel interface, but also allows the automatic translation of kernels from one software backend to another. Specifically, it is now possible to specify new kernel classes in pure Python (or any method which can expose a Numpy array, such as PyCUDA or custom C) and automatically convert these back and forth to Shogun kernels. This has the immediate advantage of allowing custom kernels for any Shogun-based classifier (e.g. SVM), using Shogun kernels for fast computation in any other solver (e.g., GPR), or the automatic exchange of kernels for any implementation in the future. Cached Kernel Optimization -------------------------- Scott Gorlin, Yaroslav O. Halchenko The main benefit of the kernel unification work is that new kernel classes can be specified in pure Python. A new optimized kernel class we have implemented is a CachedKernel which can automatically cache and reuse kernel matrices from any other NumpyKernel (or any kernel which is convertible to Numpy, such as a Shogun kernel). This class will prove extremely useful for techniques such as cross-validation, bootstrapping, etc, where the kernel product is normally recalculated every time it is computed - e.g., every time SVM.train(...) is called. Caching the kernel will avoid these expensive computations and greatly speed up this type of analysis by several orders of magnitude. Flexible, straightforward adaptor for arbitrary MDP nodes and flows ------------------------------------------------------------------- Michael Hanke, Tiziano Zito Although previously PyMVPA used MDP to provide a subset of its functionality through Mappers, this was limited to single nodes (e.g. PCA, ICA) and was not meant to be extended by users (except for subclassing and writing a new node wrapper by hand). Now, PyMVPA included flexible adaptors for arbitrary MDP nodes, or whole MDP flows. Besides incremental training, these adaptors offer access to the full functionality of the underlying node or flow. Straightforward (single-line of code) wrapping allows to seamlessly blend MDP into PyMVPA. The benefits are two-fold: PyMVPA users have now access to the full functionality of MDP without having to develop custom mappers. This includes algorithms, such as PCA, ICA, factor analysis, discriminant analysis, slow feature analysis, or restricted Boltzmann machines, and many more. MDP users can now use PyMVPA to perform convenient cross-validation of classification procedures with arbitrary mixes of PyMVPA classifiers and measure and MDP nodes, and flows. Non-matrix Dataset and prototype mapper for tractography data (and more!) ------------------------------------------------------------------------- Emanuele Olivetti, Michael Hanke The vast majority of algorithms available (and desirable) in PyMVPA requires data in a 2D matrix format. For this reason, until now, PyMVPA accepted only 2D matrices as samples in a Dataset. However, sometimes this causes problems, for example, with tractography data. That consists of a set of streamlines, a streamline being a polyline made of a non-constant number of points. In PyMVPA terms it means that the number of features in the corresponding dataset of streamlines would be different across instances. The purpose of a set of patches made during the workshop is twofold: first to allow PyMVPA to accept also row-wise iterable collections as a Dataset independently of the content of each row and second to provide a mapper to transform these every kind of Dataset into 2D matrix Dataset. The mapper is prototype-based which means that each instance within the Dataset (e.g., each streamline) is mapped into a fixed size M-dimensional vector. The M values are computed by specifying a similarity (or kernel, or distance) function which evaluates the distance of that instance against a given set of other M instances (e.g., other M streamlines) called *prototypes*. An example application is supervised tract segmentation from tractography data which now can be mapped into a standard binary classification problem over the usual 2D matrix class-labeled dataset. This approach to adress varying features-space sizes is flexible, and not limited to the tractography domain. Optimization and Generalization of Searchlight-analyses ------------------------------------------------------- Valentin Haenel, Michael Hanke The searchlight analysis code has been ported to the new dataset/mapper framework, taking into account the result of a profiling analysis done by Valentin Haenel during the last year. The new code avoids significant look-up penalties of the previous implementation. Moreover, it has been generalized to support arbitrary look-up algorithms (e.g. kd-tree_) and is no longer limited to sphere-based spatial searchlights. .. _kd-tree: http://en.wikipedia.org/wiki/Kd-tree Acknowledgements ================ We are grateful to Prof. James Haxby for sponsoring this workshop and hosting it in his lab. pymvpa2-2.6.4/doc/sphinxext/000077500000000000000000000000001323370031300157135ustar00rootroot00000000000000pymvpa2-2.6.4/doc/sphinxext/__init__.py000066400000000000000000000001041323370031300200170ustar00rootroot00000000000000"""Dummy module groupping our collection of 3rd party extensions""" pymvpa2-2.6.4/doc/sphinxext/autosummary/000077500000000000000000000000001323370031300203015ustar00rootroot00000000000000pymvpa2-2.6.4/doc/sphinxext/autosummary/__init__.py000066400000000000000000000454141323370031300224220ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ sphinx.ext.autosummary ~~~~~~~~~~~~~~~~~~~~~~ Sphinx extension that adds an autosummary:: directive, which can be used to generate function/method/attribute/etc. summary lists, similar to those output eg. by Epydoc and other API doc generation tools. An :autolink: role is also provided. autosummary directive --------------------- The autosummary directive has the form:: .. autosummary:: :nosignatures: :toctree: generated/ module.function_1 module.function_2 ... and it generates an output table (containing signatures, optionally) ======================== ============================================= module.function_1(args) Summary line from the docstring of function_1 module.function_2(args) Summary line from the docstring ... ======================== ============================================= If the :toctree: option is specified, files matching the function names are inserted to the toctree with the given prefix: generated/module.function_1 generated/module.function_2 ... Note: The file names contain the module:: or currentmodule:: prefixes. .. seealso:: autosummary_generate.py autolink role ------------- The autolink role functions as ``:obj:`` when the name referred can be resolved to a Python object, and otherwise it becomes simple emphasis. This can be used as the default role to make links 'smart'. :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ import os import re import sys import inspect import posixpath from types import ModuleType from docutils.parsers.rst import directives from docutils.statemachine import ViewList from docutils import nodes from sphinx import addnodes from sphinx.util.compat import Directive from sphinx.pycode import ModuleAnalyzer, PycodeError # -- autosummary_toc node ------------------------------------------------------ class autosummary_toc(nodes.comment): pass def process_autosummary_toc(app, doctree): """Insert items described in autosummary:: to the TOC tree, but do not generate the toctree:: list. """ env = app.builder.env crawled = {} def crawl_toc(node, depth=1): crawled[node] = True for j, subnode in enumerate(node): try: if (isinstance(subnode, autosummary_toc) and isinstance(subnode[0], addnodes.toctree)): env.note_toctree(env.docname, subnode[0]) continue except IndexError: continue if not isinstance(subnode, nodes.section): continue if subnode not in crawled: crawl_toc(subnode, depth+1) crawl_toc(doctree) def autosummary_toc_visit_html(self, node): """Hide autosummary toctree list in HTML output.""" raise nodes.SkipNode def autosummary_noop(self, node): pass # -- autosummary_table node ---------------------------------------------------- class autosummary_table(nodes.comment): pass def autosummary_table_visit_html(self, node): """Make the first column of the table non-breaking.""" try: tbody = node[0][0][-1] for row in tbody: col1_entry = row[0] par = col1_entry[0] for j, subnode in enumerate(list(par)): if isinstance(subnode, nodes.Text): new_text = unicode(subnode.astext()) new_text = new_text.replace(u" ", u"\u00a0") par[j] = nodes.Text(new_text) except IndexError: pass # -- autodoc integration ------------------------------------------------------- class FakeDirective: env = {} genopt = {} def get_documenter(obj, parent): """Get an autodoc.Documenter class suitable for documenting the given object. *obj* is the Python object to be documented, and *parent* is an another Python object (e.g. a module or a class) to which *obj* belongs to. """ from sphinx.ext.autodoc import AutoDirective, DataDocumenter, \ ModuleDocumenter if inspect.ismodule(obj): # ModuleDocumenter.can_document_member always returns False return ModuleDocumenter # Construct a fake documenter for *parent* if parent is not None: parent_doc_cls = get_documenter(parent, None) else: parent_doc_cls = ModuleDocumenter if hasattr(parent, '__name__'): parent_doc = parent_doc_cls(FakeDirective(), parent.__name__) else: parent_doc = parent_doc_cls(FakeDirective(), "") # Get the corrent documenter class for *obj* classes = [cls for cls in AutoDirective._registry.values() if cls.can_document_member(obj, '', False, parent_doc)] if classes: classes.sort(key=lambda cls: cls.priority) return classes[-1] else: return DataDocumenter # -- .. autosummary:: ---------------------------------------------------------- class Autosummary(Directive): """ Pretty table containing short signatures and summaries of functions etc. autosummary can also optionally generate a hidden toctree:: node. """ required_arguments = 0 optional_arguments = 0 final_argument_whitespace = False has_content = True option_spec = { 'toctree': directives.unchanged, 'nosignatures': directives.flag, 'template': directives.unchanged, } def warn(self, msg): self.warnings.append(self.state.document.reporter.warning( msg, line=self.lineno)) def run(self): self.env = env = self.state.document.settings.env self.genopt = {} self.warnings = [] self.result = ViewList() names = [x.strip().split()[0] for x in self.content if x.strip() and re.search(r'^[~a-zA-Z_]', x.strip()[0])] items = self.get_items(names) nodes = self.get_table(items) if 'toctree' in self.options: dirname = posixpath.dirname(env.docname) tree_prefix = self.options['toctree'].strip() docnames = [] for name, sig, summary, real_name in items: docname = posixpath.join(tree_prefix, real_name) docname = posixpath.normpath(posixpath.join(dirname, docname)) if docname not in env.found_docs: self.warn('toctree references unknown document %r' % docname) docnames.append(docname) tocnode = addnodes.toctree() tocnode['includefiles'] = docnames tocnode['entries'] = [(None, docname) for docname in docnames] tocnode['maxdepth'] = -1 tocnode['glob'] = None tocnode = autosummary_toc('', '', tocnode) nodes.append(tocnode) return self.warnings + nodes def get_items(self, names): """Try to import the given names, and return a list of ``[(name, signature, summary_string, real_name), ...]``. """ env = self.state.document.settings.env prefixes = get_import_prefixes_from_env(env) items = [] max_item_chars = 50 for name in names: display_name = name if name.startswith('~'): name = name[1:] display_name = name.split('.')[-1] try: real_name, obj, parent, modname = import_by_name(name, prefixes=prefixes) except ImportError: self.warn('failed to import %s' % name) items.append((name, '', '', name)) continue self.result = ViewList() # initialize for each documenter full_name = real_name if not isinstance(obj, ModuleType): # give explicitly separated module name, so that members # of inner classes can be documented full_name = modname + '::' + full_name[len(modname)+1:] # NB. using full_name here is important, since Documenters # handle module prefixes slightly differently documenter = get_documenter(obj, parent)(self, full_name) if not documenter.parse_name(): self.warn('failed to parse name %s' % real_name) items.append((display_name, '', '', real_name)) continue if not documenter.import_object(): self.warn('failed to import object %s' % real_name) items.append((display_name, '', '', real_name)) continue # try to also get a source code analyzer for attribute docs try: documenter.analyzer = ModuleAnalyzer.for_module( documenter.get_real_modname()) # parse right now, to get PycodeErrors on parsing (results will # be cached anyway) documenter.analyzer.find_attr_docs() except PycodeError, err: documenter.env.app.debug( '[autodoc] module analyzer failed: %s', err) # no source file -- e.g. for builtin and C modules documenter.analyzer = None # -- Grab the signature sig = documenter.format_signature() if not sig: sig = '' else: max_chars = max(10, max_item_chars - len(display_name)) sig = mangle_signature(sig, max_chars=max_chars) sig = sig.replace('*', r'\*') # -- Grab the summary documenter.add_content(None) doc = list(documenter.process_doc([self.result.data])) while doc and not doc[0].strip(): doc.pop(0) # If there's a blank line, then we can assume the first sentence / # paragraph has ended, so anything after shouldn't be part of the # summary for i, piece in enumerate(doc): if not piece.strip(): doc = doc[:i] break # Try to find the "first sentence", which may span multiple lines m = re.search(r"^([A-Z].*?\.)(?:\s|$)", " ".join(doc).strip()) if m: summary = m.group(1).strip() elif doc: summary = doc[0].strip() else: summary = '' items.append((display_name, sig, summary, real_name)) return items def get_table(self, items): """Generate a proper list of table nodes for autosummary:: directive. *items* is a list produced by :meth:`get_items`. """ table_spec = addnodes.tabular_col_spec() table_spec['spec'] = 'll' table = autosummary_table('') real_table = nodes.table('', classes=['longtable']) table.append(real_table) group = nodes.tgroup('', cols=2) real_table.append(group) group.append(nodes.colspec('', colwidth=10)) group.append(nodes.colspec('', colwidth=90)) body = nodes.tbody('') group.append(body) def append_row(*column_texts): row = nodes.row('') for text in column_texts: node = nodes.paragraph('') vl = ViewList() vl.append(text, '') self.state.nested_parse(vl, 0, node) try: if isinstance(node[0], nodes.paragraph): node = node[0] except IndexError: pass row.append(nodes.entry('', node)) body.append(row) for name, sig, summary, real_name in items: qualifier = 'obj' if 'nosignatures' not in self.options: col1 = ':%s:`%s <%s>`\ %s' % (qualifier, name, real_name, sig) else: col1 = ':%s:`%s <%s>`' % (qualifier, name, real_name) col2 = summary append_row(col1, col2) return [table_spec, table] def mangle_signature(sig, max_chars=30): """Reformat a function signature to a more compact form.""" s = re.sub(r"^\((.*)\)$", r"\1", sig).strip() # Strip strings (which can contain things that confuse the code below) s = re.sub(r"\\\\", "", s) s = re.sub(r"\\'", "", s) s = re.sub(r"'[^']*'", "", s) # Parse the signature to arguments + options args = [] opts = [] opt_re = re.compile(r"^(.*, |)([a-zA-Z0-9_*]+)=") while s: m = opt_re.search(s) if not m: # The rest are arguments args = s.split(', ') break opts.insert(0, m.group(2)) s = m.group(1)[:-2] # Produce a more compact signature sig = limited_join(", ", args, max_chars=max_chars-2) if opts: if not sig: sig = "[%s]" % limited_join(", ", opts, max_chars=max_chars-4) elif len(sig) < max_chars - 4 - 2 - 3: sig += "[, %s]" % limited_join(", ", opts, max_chars=max_chars-len(sig)-4-2) return u"(%s)" % sig def limited_join(sep, items, max_chars=30, overflow_marker="..."): """Join a number of strings to one, limiting the length to *max_chars*. If the string overflows this limit, replace the last fitting item by *overflow_marker*. Returns: joined_string """ full_str = sep.join(items) if len(full_str) < max_chars: return full_str n_chars = 0 n_items = 0 for j, item in enumerate(items): n_chars += len(item) + len(sep) if n_chars < max_chars - len(overflow_marker): n_items += 1 else: break return sep.join(list(items[:n_items]) + [overflow_marker]) # -- Importing items ----------------------------------------------------------- def get_import_prefixes_from_env(env): """ Obtain current Python import prefixes (for `import_by_name`) from ``document.env`` """ prefixes = [None] currmodule = env.temp_data.get('py:module') if currmodule: prefixes.insert(0, currmodule) currclass = env.temp_data.get('py:class') if currclass: if currmodule: prefixes.insert(0, currmodule + "." + currclass) else: prefixes.insert(0, currclass) return prefixes def import_by_name(name, prefixes=[None]): """Import a Python object that has the given *name*, under one of the *prefixes*. The first name that succeeds is used. """ tried = [] for prefix in prefixes: try: if prefix: prefixed_name = '.'.join([prefix, name]) else: prefixed_name = name obj, parent, modname = _import_by_name(prefixed_name) return prefixed_name, obj, parent, modname except ImportError: tried.append(prefixed_name) raise ImportError('no module named %s' % ' or '.join(tried)) def _import_by_name(name): """Import a Python object given its full name.""" try: name_parts = name.split('.') # try first interpret `name` as MODNAME.OBJ modname = '.'.join(name_parts[:-1]) if modname: try: __import__(modname) mod = sys.modules[modname] return getattr(mod, name_parts[-1]), mod, modname except (ImportError, IndexError, AttributeError): pass # ... then as MODNAME, MODNAME.OBJ1, MODNAME.OBJ1.OBJ2, ... last_j = 0 modname = None for j in reversed(range(1, len(name_parts)+1)): last_j = j modname = '.'.join(name_parts[:j]) try: __import__(modname) except ImportError: continue if modname in sys.modules: break if last_j < len(name_parts): parent = None obj = sys.modules[modname] for obj_name in name_parts[last_j:]: parent = obj obj = getattr(obj, obj_name) return obj, parent, modname else: return sys.modules[modname], None, modname except (ValueError, ImportError, AttributeError, KeyError), e: raise ImportError(*e.args) # -- :autolink: (smart default role) ------------------------------------------- def autolink_role(typ, rawtext, etext, lineno, inliner, options={}, content=[]): """Smart linking role. Expands to ':obj:`text`' if `text` is an object that can be imported; otherwise expands to '*text*'. """ env = inliner.document.settings.env r = env.get_domain('py').role('obj')( 'obj', rawtext, etext, lineno, inliner, options, content) pnode = r[0][0] prefixes = get_import_prefixes_from_env(env) try: name, obj, parent, modname = import_by_name(pnode['reftarget'], prefixes) except ImportError: content = pnode[0] r[0][0] = nodes.emphasis(rawtext, content[0].astext(), classes=content['classes']) return r def process_generate_options(app): genfiles = app.config.autosummary_generate ext = app.config.source_suffix if genfiles and not hasattr(genfiles, '__len__'): env = app.builder.env genfiles = [x + ext for x in env.found_docs if os.path.isfile(env.doc2path(x))] if not genfiles: return from sphinx.ext.autosummary.generate import generate_autosummary_docs genfiles = [genfile + (not genfile.endswith(ext) and ext or '') for genfile in genfiles] generate_autosummary_docs(genfiles, builder=app.builder, warn=app.warn, info=app.info, suffix=ext, base_path=app.srcdir) def setup(app): # I need autodoc app.setup_extension('sphinx.ext.autodoc') app.add_node(autosummary_toc, html=(autosummary_toc_visit_html, autosummary_noop), latex=(autosummary_noop, autosummary_noop), text=(autosummary_noop, autosummary_noop), man=(autosummary_noop, autosummary_noop), texinfo=(autosummary_noop, autosummary_noop)) app.add_node(autosummary_table, html=(autosummary_table_visit_html, autosummary_noop), latex=(autosummary_noop, autosummary_noop), text=(autosummary_noop, autosummary_noop), man=(autosummary_noop, autosummary_noop), texinfo=(autosummary_noop, autosummary_noop)) app.add_directive('autosummary', Autosummary) app.add_role('autolink', autolink_role) app.connect('doctree-read', process_autosummary_toc) app.connect('builder-inited', process_generate_options) app.add_config_value('autosummary_generate', [], True) pymvpa2-2.6.4/doc/sphinxext/autosummary/generate.py000066400000000000000000000267141323370031300224570ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ sphinx.ext.autosummary.generate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Usable as a library or script to generate automatic RST source files for items referred to in autosummary:: directives. Each generated RST file contains a single auto*:: directive which extracts the docstring of the referred item. Example Makefile rule:: generate: sphinx-autogen -o source/generated source/*.rst :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ import os import re import sys import pydoc import optparse from jinja2 import FileSystemLoader, TemplateNotFound from jinja2.sandbox import SandboxedEnvironment from sphinx import package_dir from sphinx.ext.autosummary import import_by_name, get_documenter from sphinx.jinja2glue import BuiltinTemplateLoader from sphinx.util.osutil import ensuredir from sphinx.util.inspect import safe_getattr # Add documenters to AutoDirective registry from sphinx.ext.autodoc import add_documenter, \ ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter, \ FunctionDocumenter, MethodDocumenter, AttributeDocumenter, \ InstanceAttributeDocumenter add_documenter(ModuleDocumenter) add_documenter(ClassDocumenter) add_documenter(ExceptionDocumenter) add_documenter(DataDocumenter) add_documenter(FunctionDocumenter) add_documenter(MethodDocumenter) add_documenter(AttributeDocumenter) add_documenter(InstanceAttributeDocumenter) def main(argv=sys.argv): usage = """%prog [OPTIONS] SOURCEFILE ...""" p = optparse.OptionParser(usage.strip()) p.add_option("-o", "--output-dir", action="store", type="string", dest="output_dir", default=None, help="Directory to place all output in") p.add_option("-s", "--suffix", action="store", type="string", dest="suffix", default="rst", help="Default suffix for files (default: %default)") p.add_option("-t", "--templates", action="store", type="string", dest="templates", default=None, help="Custom template directory (default: %default)") options, args = p.parse_args(argv[1:]) if len(args) < 1: p.error('no input files given') generate_autosummary_docs(args, options.output_dir, "." + options.suffix, template_dir=options.templates) def _simple_info(msg): print msg def _simple_warn(msg): print >> sys.stderr, 'WARNING: ' + msg # -- Generating output --------------------------------------------------------- def generate_autosummary_docs(sources, output_dir=None, suffix='.rst', warn=_simple_warn, info=_simple_info, base_path=None, builder=None, template_dir=None): showed_sources = list(sorted(sources)) if len(showed_sources) > 20: showed_sources = showed_sources[:10] + ['...'] + showed_sources[-10:] info('[autosummary] generating autosummary for: %s' % ', '.join(showed_sources)) if output_dir: info('[autosummary] writing to %s' % output_dir) if base_path is not None: sources = [os.path.join(base_path, filename) for filename in sources] # create our own templating environment template_dirs = [os.path.join(package_dir, 'ext', 'autosummary', 'templates')] if builder is not None: # allow the user to override the templates template_loader = BuiltinTemplateLoader() template_loader.init(builder, dirs=template_dirs) else: if template_dir: template_dirs.insert(0, template_dir) template_loader = FileSystemLoader(template_dirs) template_env = SandboxedEnvironment(loader=template_loader) # read items = find_autosummary_in_files(sources) # remove possible duplicates items = dict([(item, True) for item in items]).keys() # keep track of new files new_files = [] # write for name, path, template_name in sorted(items, key=str): if path is None: # The corresponding autosummary:: directive did not have # a :toctree: option continue path = output_dir or os.path.abspath(path) ensuredir(path) try: name, obj, parent, mod_name = import_by_name(name) except ImportError, e: warn('[autosummary] failed to import %r: %s' % (name, e)) continue fn = os.path.join(path, name + suffix) # skip it if it exists if os.path.isfile(fn): continue new_files.append(fn) f = open(fn, 'w') try: doc = get_documenter(obj, parent) if template_name is not None: template = template_env.get_template(template_name) else: try: template = template_env.get_template('autosummary/%s.rst' % doc.objtype) except TemplateNotFound: template = template_env.get_template('autosummary/base.rst') def get_members(obj, typ, include_public=[]): items = [] for name in dir(obj): try: documenter = get_documenter(safe_getattr(obj, name), obj) except AttributeError: continue if documenter.objtype == typ: items.append(name) public = [x for x in items if x in include_public or not x.startswith('_')] return public, items ns = {} if doc.objtype == 'module': ns['members'] = dir(obj) ns['functions'], ns['all_functions'] = \ get_members(obj, 'function') ns['classes'], ns['all_classes'] = \ get_members(obj, 'class') ns['exceptions'], ns['all_exceptions'] = \ get_members(obj, 'exception') elif doc.objtype == 'class': ns['members'] = dir(obj) ns['methods'], ns['all_methods'] = \ get_members(obj, 'method', ['__init__']) ns['attributes'], ns['all_attributes'] = \ get_members(obj, 'attribute') parts = name.split('.') if doc.objtype in ('method', 'attribute'): mod_name = '.'.join(parts[:-2]) cls_name = parts[-2] obj_name = '.'.join(parts[-2:]) ns['class'] = cls_name else: mod_name, obj_name = '.'.join(parts[:-1]), parts[-1] ns['fullname'] = name ns['module'] = mod_name ns['objname'] = obj_name ns['name'] = parts[-1] ns['objtype'] = doc.objtype ns['underline'] = len(name) * '=' rendered = template.render(**ns) f.write(rendered) finally: f.close() # descend recursively to new files if new_files: generate_autosummary_docs(new_files, output_dir=output_dir, suffix=suffix, warn=warn, info=info, base_path=base_path, builder=builder, template_dir=template_dir) # -- Finding documented entries in files --------------------------------------- def find_autosummary_in_files(filenames): """Find out what items are documented in source/*.rst. See `find_autosummary_in_lines`. """ documented = [] for filename in filenames: f = open(filename, 'r') lines = f.read().splitlines() documented.extend(find_autosummary_in_lines(lines, filename=filename)) f.close() return documented def find_autosummary_in_docstring(name, module=None, filename=None): """Find out what items are documented in the given object's docstring. See `find_autosummary_in_lines`. """ try: real_name, obj, parent, modname = import_by_name(name) lines = pydoc.getdoc(obj).splitlines() return find_autosummary_in_lines(lines, module=name, filename=filename) except AttributeError: pass except ImportError, e: print "Failed to import '%s': %s" % (name, e) except SystemExit, e: print("Failed to import '%s'; the module executes module level " "statement and it might call sys.exit()." % name) return [] def find_autosummary_in_lines(lines, module=None, filename=None): """Find out what items appear in autosummary:: directives in the given lines. Returns a list of (name, toctree, template) where *name* is a name of an object and *toctree* the :toctree: path of the corresponding autosummary directive (relative to the root of the file name), and *template* the value of the :template: option. *toctree* and *template* ``None`` if the directive does not have the corresponding options set. """ autosummary_re = re.compile(r'^(\s*)\.\.\s+autosummary::\s*') automodule_re = re.compile( r'^\s*\.\.\s+automodule::\s*([A-Za-z0-9_.]+)\s*$') module_re = re.compile( r'^\s*\.\.\s+(current)?module::\s*([a-zA-Z0-9_.]+)\s*$') autosummary_item_re = re.compile(r'^\s+(~?[_a-zA-Z][a-zA-Z0-9_.]*)\s*.*?') toctree_arg_re = re.compile(r'^\s+:toctree:\s*(.*?)\s*$') template_arg_re = re.compile(r'^\s+:template:\s*(.*?)\s*$') documented = [] toctree = None template = None current_module = module in_autosummary = False base_indent = "" for line in lines: if in_autosummary: m = toctree_arg_re.match(line) if m: toctree = m.group(1) if filename: toctree = os.path.join(os.path.dirname(filename), toctree) continue m = template_arg_re.match(line) if m: template = m.group(1).strip() continue if line.strip().startswith(':'): continue # skip options m = autosummary_item_re.match(line) if m: name = m.group(1).strip() if name.startswith('~'): name = name[1:] if current_module and \ not name.startswith(current_module + '.'): name = "%s.%s" % (current_module, name) documented.append((name, toctree, template)) continue if not line.strip() or line.startswith(base_indent + " "): continue in_autosummary = False m = autosummary_re.match(line) if m: in_autosummary = True base_indent = m.group(1) toctree = None template = None continue m = automodule_re.search(line) if m: current_module = m.group(1).strip() # recurse into the automodule docstring documented.extend(find_autosummary_in_docstring( current_module, filename=filename)) continue m = module_re.match(line) if m: current_module = m.group(2) continue return documented if __name__ == '__main__': main() pymvpa2-2.6.4/doc/sphinxext/docscrape.py000066400000000000000000000357051323370031300202420ustar00rootroot00000000000000"""Extract reference documentation from the NumPy source tree. """ import inspect import textwrap import re import pydoc from StringIO import StringIO from warnings import warn class Reader(object): """A line-based string reader. """ def __init__(self, data): """ Parameters ---------- data : str String with lines separated by '\n'. """ if isinstance(data,list): self._str = data else: self._str = data.split('\n') # store string as list of lines self.reset() def __getitem__(self, n): return self._str[n] def reset(self): self._l = 0 # current line nr def read(self): if not self.eof(): out = self[self._l] self._l += 1 return out else: return '' def seek_next_non_empty_line(self): for l in self[self._l:]: if l.strip(): break else: self._l += 1 def eof(self): return self._l >= len(self._str) def read_to_condition(self, condition_func): start = self._l for line in self[start:]: if condition_func(line): return self[start:self._l] self._l += 1 if self.eof(): return self[start:self._l+1] return [] def read_to_next_empty_line(self): self.seek_next_non_empty_line() def is_empty(line): return not line.strip() return self.read_to_condition(is_empty) def read_to_next_unindented_line(self): def is_unindented(line): return (line.strip() and (len(line.lstrip()) == len(line))) return self.read_to_condition(is_unindented) def peek(self,n=0): if self._l + n < len(self._str): return self[self._l + n] else: return '' def is_empty(self): return not ''.join(self._str).strip() class NumpyDocString(object): def __init__(self, docstring, config={}): docstring = textwrap.dedent(docstring).split('\n') self._doc = Reader(docstring) self._parsed_data = { 'Signature': '', 'Summary': [''], 'Extended Summary': [], 'Parameters': [], 'Returns': [], 'Raises': [], 'Warns': [], 'Other Parameters': [], 'Attributes': [], 'Methods': [], 'See Also': [], 'Notes': [], 'Warnings': [], 'References': '', 'Examples': '', 'index': {} } self._parse() def __getitem__(self,key): return self._parsed_data[key] def __setitem__(self,key,val): if not self._parsed_data.has_key(key): warn("Unknown section %s" % key) else: self._parsed_data[key] = val def _is_at_section(self): self._doc.seek_next_non_empty_line() if self._doc.eof(): return False l1 = self._doc.peek().strip() # e.g. Parameters if l1.startswith('.. index::'): return True l2 = self._doc.peek(1).strip() # ---------- or ========== return l2.startswith('-'*len(l1)) or l2.startswith('='*len(l1)) def _strip(self,doc): i = 0 j = 0 for i,line in enumerate(doc): if line.strip(): break for j,line in enumerate(doc[::-1]): if line.strip(): break return doc[i:len(doc)-j] def _read_to_next_section(self): section = self._doc.read_to_next_empty_line() while not self._is_at_section() and not self._doc.eof(): if not self._doc.peek(-1).strip(): # previous line was empty section += [''] section += self._doc.read_to_next_empty_line() return section def _read_sections(self): while not self._doc.eof(): data = self._read_to_next_section() name = data[0].strip() if name.startswith('..'): # index section yield name, data[1:] elif len(data) < 2: yield StopIteration else: yield name, self._strip(data[2:]) def _parse_param_list(self,content): r = Reader(content) params = [] while not r.eof(): header = r.read().strip() if ' : ' in header: arg_name, arg_type = header.split(' : ')[:2] else: arg_name, arg_type = header, '' desc = r.read_to_next_unindented_line() desc = dedent_lines(desc) params.append((arg_name,arg_type,desc)) return params _name_rgx = re.compile(r"^\s*(:(?P\w+):`(?P[a-zA-Z0-9_.-]+)`|" r" (?P[a-zA-Z0-9_.-]+))\s*", re.X) def _parse_see_also(self, content): """ func_name : Descriptive text continued text another_func_name : Descriptive text func_name1, func_name2, :meth:`func_name`, func_name3 """ items = [] def parse_item_name(text): """Match ':role:`name`' or 'name'""" m = self._name_rgx.match(text) if m: g = m.groups() if g[1] is None: return g[3], None else: return g[2], g[1] raise ValueError("%s is not a item name" % text) def push_item(name, rest): if not name: return name, role = parse_item_name(name) items.append((name, list(rest), role)) del rest[:] current_func = None rest = [] for line in content: if not line.strip(): continue m = self._name_rgx.match(line) if m and line[m.end():].strip().startswith(':'): push_item(current_func, rest) current_func, line = line[:m.end()], line[m.end():] rest = [line.split(':', 1)[1].strip()] if not rest[0]: rest = [] elif not line.startswith(' '): push_item(current_func, rest) current_func = None if ',' in line: for func in line.split(','): if func.strip(): push_item(func, []) elif line.strip(): current_func = line elif current_func is not None: rest.append(line.strip()) push_item(current_func, rest) return items def _parse_index(self, section, content): """ .. index: default :refguide: something, else, and more """ def strip_each_in(lst): return [s.strip() for s in lst] out = {} section = section.split('::') if len(section) > 1: out['default'] = strip_each_in(section[1].split(','))[0] for line in content: line = line.split(':') if len(line) > 2: out[line[1]] = strip_each_in(line[2].split(',')) return out def _parse_summary(self): """Grab signature (if given) and summary""" if self._is_at_section(): return summary = self._doc.read_to_next_empty_line() summary_str = " ".join([s.strip() for s in summary]).strip() if re.compile('^([\w., ]+=)?\s*[\w\.]+\(.*\)$').match(summary_str): self['Signature'] = summary_str if not self._is_at_section(): self['Summary'] = self._doc.read_to_next_empty_line() else: self['Summary'] = summary if not self._is_at_section(): self['Extended Summary'] = self._read_to_next_section() def _parse(self): self._doc.reset() self._parse_summary() for (section,content) in self._read_sections(): if not section.startswith('..'): section = ' '.join([s.capitalize() for s in section.split(' ')]) if section in ('Parameters', 'Returns', 'Raises', 'Warns', 'Other Parameters', 'Attributes', 'Methods'): self[section] = self._parse_param_list(content) elif section.startswith('.. index::'): self['index'] = self._parse_index(section, content) elif section == 'See Also': self['See Also'] = self._parse_see_also(content) else: self[section] = content # string conversion routines def _str_header(self, name, symbol='-'): return [name, len(name)*symbol] def _str_indent(self, doc, indent=4): out = [] for line in doc: out += [' '*indent + line] return out def _str_signature(self): if self['Signature']: return [self['Signature'].replace('*','\*')] + [''] else: return [''] def _str_summary(self): if self['Summary']: return self['Summary'] + [''] else: return [] def _str_extended_summary(self): if self['Extended Summary']: return self['Extended Summary'] + [''] else: return [] def _str_param_list(self, name): out = [] if self[name]: out += self._str_header(name) for param,param_type,desc in self[name]: out += ['%s : %s' % (param, param_type)] out += self._str_indent(desc) out += [''] return out def _str_section(self, name): out = [] if self[name]: out += self._str_header(name) out += self[name] out += [''] return out def _str_see_also(self, func_role): if not self['See Also']: return [] out = [] out += self._str_header("See Also") last_had_desc = True for func, desc, role in self['See Also']: if role: link = ':%s:`%s`' % (role, func) elif func_role: link = ':%s:`%s`' % (func_role, func) else: link = "`%s`_" % func if desc or last_had_desc: out += [''] out += [link] else: out[-1] += ", %s" % link if desc: out += self._str_indent([' '.join(desc)]) last_had_desc = True else: last_had_desc = False out += [''] return out def _str_index(self): idx = self['index'] out = [] out += ['.. index:: %s' % idx.get('default','')] for section, references in idx.iteritems(): if section == 'default': continue out += [' :%s: %s' % (section, ', '.join(references))] return out def __str__(self, func_role=''): out = [] out += self._str_signature() out += self._str_summary() out += self._str_extended_summary() for param_list in ('Parameters', 'Returns', 'Other Parameters', 'Raises', 'Warns'): out += self._str_param_list(param_list) out += self._str_section('Warnings') out += self._str_see_also(func_role) for s in ('Notes','References','Examples'): out += self._str_section(s) for param_list in ('Attributes', 'Methods'): out += self._str_param_list(param_list) out += self._str_index() return '\n'.join(out) def indent(str,indent=4): indent_str = ' '*indent if str is None: return indent_str lines = str.split('\n') return '\n'.join(indent_str + l for l in lines) def dedent_lines(lines): """Deindent a list of lines maximally""" return textwrap.dedent("\n".join(lines)).split("\n") def header(text, style='-'): return text + '\n' + style*len(text) + '\n' class FunctionDoc(NumpyDocString): def __init__(self, func, role='func', doc=None, config={}): self._f = func self._role = role # e.g. "func" or "meth" if doc is None: if func is None: raise ValueError("No function or docstring given") doc = inspect.getdoc(func) or '' NumpyDocString.__init__(self, doc) if not self['Signature'] and func is not None: func, func_name = self.get_func() try: # try to read signature argspec = inspect.getargspec(func) argspec = inspect.formatargspec(*argspec) argspec = argspec.replace('*','\*') signature = '%s%s' % (func_name, argspec) except TypeError, e: signature = '%s()' % func_name self['Signature'] = signature def get_func(self): func_name = getattr(self._f, '__name__', self.__class__.__name__) if inspect.isclass(self._f): func = getattr(self._f, '__call__', self._f.__init__) else: func = self._f return func, func_name def __str__(self): out = '' func, func_name = self.get_func() signature = self['Signature'].replace('*', '\*') roles = {'func': 'function', 'meth': 'method'} if self._role: if not roles.has_key(self._role): print "Warning: invalid role %s" % self._role out += '.. %s:: %s\n \n\n' % (roles.get(self._role,''), func_name) out += super(FunctionDoc, self).__str__(func_role=self._role) return out class ClassDoc(NumpyDocString): def __init__(self, cls, doc=None, modulename='', func_doc=FunctionDoc, config={}): if not inspect.isclass(cls) and cls is not None: raise ValueError("Expected a class or None, but got %r" % cls) self._cls = cls if modulename and not modulename.endswith('.'): modulename += '.' self._mod = modulename if doc is None: if cls is None: raise ValueError("No class or documentation string given") doc = pydoc.getdoc(cls) NumpyDocString.__init__(self, doc) if config.get('show_class_members', True): if not self['Methods']: self['Methods'] = [(name, '', '') for name in sorted(self.methods)] if not self['Attributes']: self['Attributes'] = [(name, '', '') for name in sorted(self.properties)] @property def methods(self): if self._cls is None: return [] return [name for name,func in inspect.getmembers(self._cls) if not name.startswith('_') and callable(func)] @property def properties(self): if self._cls is None: return [] return [name for name,func in inspect.getmembers(self._cls) if not name.startswith('_') and func is None] pymvpa2-2.6.4/doc/sphinxext/docscrape_sphinx.py000066400000000000000000000171171323370031300216300ustar00rootroot00000000000000import re, inspect, textwrap, pydoc import sphinx from docscrape import NumpyDocString, FunctionDoc, ClassDoc class SphinxDocString(NumpyDocString): def __init__(self, docstring, config={}): self.use_plots = config.get('use_plots', False) NumpyDocString.__init__(self, docstring, config=config) # string conversion routines def _str_header(self, name, symbol='`'): return ['.. rubric:: ' + name, ''] def _str_field_list(self, name): return [':' + name + ':'] def _str_indent(self, doc, indent=4): out = [] for line in doc: out += [' '*indent + line] return out def _str_signature(self): return [''] if self['Signature']: return ['``%s``' % self['Signature']] + [''] else: return [''] def _str_summary(self): return self['Summary'] + [''] def _str_extended_summary(self): return self['Extended Summary'] + [''] def _str_param_list(self, name): out = [] if self[name]: out += self._str_field_list(name) out += [''] for param,param_type,desc in self[name]: out += self._str_indent(['**%s** : %s' % (param.strip(), param_type)]) out += [''] out += self._str_indent(desc,8) out += [''] return out @property def _obj(self): if hasattr(self, '_cls'): return self._cls elif hasattr(self, '_f'): return self._f return None def _str_member_list(self, name): """ Generate a member listing, autosummary:: table where possible, and a table where not. """ out = [] if self[name]: out += ['.. rubric:: %s' % name, ''] prefix = getattr(self, '_name', '') if prefix: prefix = '~%s.' % prefix autosum = [] others = [] for param, param_type, desc in self[name]: param = param.strip() if not self._obj or hasattr(self._obj, param): autosum += [" %s%s" % (prefix, param)] else: others.append((param, param_type, desc)) if autosum: out += ['.. autosummary::', ' :toctree:', ''] out += autosum if others: maxlen_0 = max([len(x[0]) for x in others]) maxlen_1 = max([len(x[1]) for x in others]) hdr = "="*maxlen_0 + " " + "="*maxlen_1 + " " + "="*10 fmt = '%%%ds %%%ds ' % (maxlen_0, maxlen_1) n_indent = maxlen_0 + maxlen_1 + 4 out += [hdr] for param, param_type, desc in others: out += [fmt % (param.strip(), param_type)] out += self._str_indent(desc, n_indent) out += [hdr] out += [''] return out def _str_section(self, name): out = [] if self[name]: out += self._str_header(name) out += [''] content = textwrap.dedent("\n".join(self[name])).split("\n") out += content out += [''] return out def _str_see_also(self, func_role): out = [] if self['See Also']: see_also = super(SphinxDocString, self)._str_see_also(func_role) out = ['.. seealso::', ''] out += self._str_indent(see_also[2:]) return out def _str_warnings(self): out = [] if self['Warnings']: out = ['.. warning::', ''] out += self._str_indent(self['Warnings']) return out def _str_index(self): idx = self['index'] out = [] if len(idx) == 0: return out out += ['.. index:: %s' % idx.get('default','')] for section, references in idx.iteritems(): if section == 'default': continue elif section == 'refguide': out += [' single: %s' % (', '.join(references))] else: out += [' %s: %s' % (section, ','.join(references))] return out def _str_references(self): out = [] if self['References']: out += self._str_header('References') if isinstance(self['References'], str): self['References'] = [self['References']] out.extend(self['References']) out += [''] # Latex collects all references to a separate bibliography, # so we need to insert links to it if sphinx.__version__ >= "0.6": out += ['.. only:: latex',''] else: out += ['.. latexonly::',''] items = [] for line in self['References']: m = re.match(r'.. \[([a-z0-9._-]+)\]', line, re.I) if m: items.append(m.group(1)) out += [' ' + ", ".join(["[%s]_" % item for item in items]), ''] return out def _str_examples(self): examples_str = "\n".join(self['Examples']) if (self.use_plots and 'import matplotlib' in examples_str and 'plot::' not in examples_str): out = [] out += self._str_header('Examples') out += ['.. plot::', ''] out += self._str_indent(self['Examples']) out += [''] return out else: return self._str_section('Examples') def __str__(self, indent=0, func_role="obj"): out = [] out += self._str_signature() out += self._str_index() + [''] out += self._str_summary() out += self._str_extended_summary() for param_list in ('Parameters', 'Returns', 'Other Parameters', 'Raises', 'Warns'): out += self._str_param_list(param_list) out += self._str_warnings() out += self._str_see_also(func_role) out += self._str_section('Notes') out += self._str_references() out += self._str_examples() for param_list in ('Attributes', 'Methods'): out += self._str_member_list(param_list) out = self._str_indent(out,indent) return '\n'.join(out) class SphinxFunctionDoc(SphinxDocString, FunctionDoc): def __init__(self, obj, doc=None, config={}): self.use_plots = config.get('use_plots', False) FunctionDoc.__init__(self, obj, doc=doc, config=config) class SphinxClassDoc(SphinxDocString, ClassDoc): def __init__(self, obj, doc=None, func_doc=None, config={}): self.use_plots = config.get('use_plots', False) ClassDoc.__init__(self, obj, doc=doc, func_doc=None, config=config) class SphinxObjDoc(SphinxDocString): def __init__(self, obj, doc=None, config={}): self._f = obj SphinxDocString.__init__(self, doc, config=config) def get_doc_object(obj, what=None, doc=None, config={}): if what is None: if inspect.isclass(obj): what = 'class' elif inspect.ismodule(obj): what = 'module' elif callable(obj): what = 'function' else: what = 'object' if what == 'class': return SphinxClassDoc(obj, func_doc=SphinxFunctionDoc, doc=doc, config=config) elif what in ('function', 'method'): return SphinxFunctionDoc(obj, doc=doc, config=config) else: if doc is None: doc = pydoc.getdoc(obj) return SphinxObjDoc(obj, doc, config=config) pymvpa2-2.6.4/doc/sphinxext/exercise_directive.py000066400000000000000000000051241323370031300221340ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Sphinx extension add a 'exercise' directive similar to 'seealso' and 'note'. This directive can be used to add exercise boxes to tutorials. """ __docformat__ = 'restructuredtext' from sphinx import addnodes from sphinx.util.compat import Directive # DeprecationWarning: make_admonition is deprecated, use docutils.parsers.rst.directives.admonitions.BaseAdmonition instead try: from sphinx.util.compat import make_admonition except ImportError: from docutils.parsers.rst.directives.admonitions \ import BaseAdmonition make_admonition = None from docutils import nodes class excercise_node(nodes.Admonition, nodes.Element): pass def visit_exercise_node(self, node): self.visit_admonition(node) def depart_exercise_node(self, node): self.depart_admonition(node) if make_admonition: class BaseExcerciseDirective(Directive): def run(self): return make_admonition( excercise_node, self.name, ['Exercise'], self.options, self.content, self.lineno, self.content_offset, self.block_text, self.state, self.state_machine) else: class BaseExcerciseDirective(BaseAdmonition): def run(self): return super(BaseExcerciseDirective, self).run() class ExcerciseDirective(BaseExcerciseDirective): """ An admonition mentioning an exercise to perform (e.g. in a tutorial). """ node_class = excercise_node has_content = True required_arguments = 0 optional_arguments = 1 final_argument_whitespace = True option_spec = {} def run(self): ret = super(ExcerciseDirective, self).run() if self.arguments: argnodes, msgs = self.state.inline_text(self.arguments[0], self.lineno) para = nodes.paragraph() para += argnodes para += msgs ret[0].insert(1, para) return ret def setup(app): app.add_node(excercise_node, html=(visit_exercise_node, depart_exercise_node), latex=(visit_exercise_node, depart_exercise_node), text=(visit_exercise_node, depart_exercise_node)) app.add_directive('exercise', ExcerciseDirective) pymvpa2-2.6.4/doc/sphinxext/numpydoc.py000066400000000000000000000127131323370031300201270ustar00rootroot00000000000000""" ======== numpydoc ======== Sphinx extension that handles docstrings in the Numpy standard format. [1] It will: - Convert Parameters etc. sections to field lists. - Convert See Also section to a See also entry. - Renumber references. - Extract the signature from the docstring, if it can't be determined otherwise. .. [1] http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines#docstring-standard """ import os, re, pydoc from docscrape_sphinx import get_doc_object, SphinxDocString from sphinx.util.compat import Directive import inspect def mangle_docstrings(app, what, name, obj, options, lines, reference_offset=[0]): cfg = dict(use_plots=app.config.numpydoc_use_plots, show_class_members=app.config.numpydoc_show_class_members) if what == 'module': # Strip top title title_re = re.compile(ur'^\s*[#*=]{4,}\n[a-z0-9 -]+\n[#*=]{4,}\s*', re.I|re.S) lines[:] = title_re.sub(u'', u"\n".join(lines)).split(u"\n") else: doc = get_doc_object(obj, what, u"\n".join(lines), config=cfg) lines[:] = unicode(doc).split(u"\n") if app.config.numpydoc_edit_link and hasattr(obj, '__name__') and \ obj.__name__: if hasattr(obj, '__module__'): v = dict(full_name=u"%s.%s" % (obj.__module__, obj.__name__)) else: v = dict(full_name=obj.__name__) lines += [u'', u'.. htmlonly::', ''] lines += [u' %s' % x for x in (app.config.numpydoc_edit_link % v).split("\n")] # replace reference numbers so that there are no duplicates references = [] for line in lines: line = line.strip() m = re.match(ur'^.. \[([a-z0-9_.-])\]', line, re.I) if m: references.append(m.group(1)) # start renaming from the longest string, to avoid overwriting parts references.sort(key=lambda x: -len(x)) if references: for i, line in enumerate(lines): for r in references: if re.match(ur'^\d+$', r): new_r = u"R%d" % (reference_offset[0] + int(r)) else: new_r = u"%s%d" % (r, reference_offset[0]) lines[i] = lines[i].replace(u'[%s]_' % r, u'[%s]_' % new_r) lines[i] = lines[i].replace(u'.. [%s]' % r, u'.. [%s]' % new_r) reference_offset[0] += len(references) def mangle_signature(app, what, name, obj, options, sig, retann): # Do not try to inspect classes that don't define `__init__` if (inspect.isclass(obj) and (not hasattr(obj, '__init__') or 'initializes x; see ' in pydoc.getdoc(obj.__init__))): return '', '' if not (callable(obj) or hasattr(obj, '__argspec_is_invalid_')): return if not hasattr(obj, '__doc__'): return doc = SphinxDocString(pydoc.getdoc(obj)) if doc['Signature']: sig = re.sub(u"^[^(]*", u"", doc['Signature']) return sig, u'' def setup(app, get_doc_object_=get_doc_object): global get_doc_object get_doc_object = get_doc_object_ app.connect('autodoc-process-docstring', mangle_docstrings) app.connect('autodoc-process-signature', mangle_signature) app.add_config_value('numpydoc_edit_link', None, False) app.add_config_value('numpydoc_use_plots', None, False) app.add_config_value('numpydoc_show_class_members', True, True) # Extra mangling domains app.add_domain(NumpyPythonDomain) app.add_domain(NumpyCDomain) #------------------------------------------------------------------------------ # Docstring-mangling domains #------------------------------------------------------------------------------ from docutils.statemachine import ViewList from sphinx.domains.c import CDomain from sphinx.domains.python import PythonDomain class ManglingDomainBase(object): directive_mangling_map = {} def __init__(self, *a, **kw): super(ManglingDomainBase, self).__init__(*a, **kw) self.wrap_mangling_directives() def wrap_mangling_directives(self): for name, objtype in self.directive_mangling_map.items(): self.directives[name] = wrap_mangling_directive( self.directives[name], objtype) class NumpyPythonDomain(ManglingDomainBase, PythonDomain): name = 'np' directive_mangling_map = { 'function': 'function', 'class': 'class', 'exception': 'class', 'method': 'function', 'classmethod': 'function', 'staticmethod': 'function', 'attribute': 'attribute', } class NumpyCDomain(ManglingDomainBase, CDomain): name = 'np-c' directive_mangling_map = { 'function': 'function', 'member': 'attribute', 'macro': 'function', 'type': 'class', 'var': 'object', } def wrap_mangling_directive(base_directive, objtype): class directive(base_directive): def run(self): env = self.state.document.settings.env name = None if self.arguments: m = re.match(r'^(.*\s+)?(.*?)(\(.*)?', self.arguments[0]) name = m.group(2).strip() if not name: name = self.arguments[0] lines = list(self.content) mangle_docstrings(env.app, objtype, name, None, None, lines) self.content = ViewList(lines, self.content.parent) return base_directive.run(self) return directive pymvpa2-2.6.4/doc/templates/000077500000000000000000000000001323370031300156575ustar00rootroot00000000000000pymvpa2-2.6.4/doc/templates/autosummary/000077500000000000000000000000001323370031300202455ustar00rootroot00000000000000pymvpa2-2.6.4/doc/templates/autosummary/base.rst000066400000000000000000000001461323370031300217120ustar00rootroot00000000000000{{ fullname }} {{ underline }} .. currentmodule:: {{ module }} .. auto{{ objtype }}:: {{ objname }} pymvpa2-2.6.4/doc/templates/autosummary/class.rst000066400000000000000000000002631323370031300221050ustar00rootroot00000000000000{{ fullname }} {{ underline }} .. currentmodule:: {{ module }} .. inheritance-diagram:: {{ objname }} :parts: 1 .. autoclass:: {{ objname }} :members: :undoc-members: pymvpa2-2.6.4/doc/templates/autosummary/module.rst000066400000000000000000000015221323370031300222640ustar00rootroot00000000000000{{ fullname }} {{ underline }} .. automodule:: {{ fullname }} {% if classes %} .. inheritance-diagram:: {{ fullname }} :parts: 1 {% endif %} {% block functions %} {% if functions or methods %} .. rubric:: Functions .. autosummary:: :toctree: {% for item in functions %} {{ item }} {%- endfor %} {% for item in methods %} {{ item }} {%- endfor %} {% endif %} {% endblock %} {% block classes %} {% if classes %} .. rubric:: Classes .. autosummary:: :toctree: {% for item in classes %} {{ item }} {%- endfor %} {% endif %} {% endblock %} {% block exceptions %} {% if exceptions %} .. rubric:: Exceptions .. autosummary:: :toctree: {% for item in classes %} {{ item }} {%- endfor %} {% endif %} {% endblock %} pymvpa2-2.6.4/mvpa2/000077500000000000000000000000001323370031300141415ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/COMMIT_HASH000066400000000000000000000000511323370031300156530ustar00rootroot0000000000000063e6063bbf6354f4138422f7ea63b174ebf71d83 pymvpa2-2.6.4/mvpa2/__init__.py000066400000000000000000000133101323370031300162500ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Framework for multivariate pattern analysis (MVPA) Package Organization ==================== The mvpa2 package contains the following subpackages and modules: :group Algorithms: algorithms :group Anatomical Atlases: atlases :group Basic Data Structures: datasets :group Classifiers (supervised learners): clfs :group Feature Selections: featsel :group Mappers (usually unsupervised learners): mappers :group Measures: measures :group Miscellaneous: base misc support :group Unittests: tests :author: `Michael Hanke `__, `Yaroslav Halchenko `__, `Nikolaas N. Oosterhof `__ :requires: Python 2.6+ :version: 2.6.4 :see: `The PyMVPA webpage `__ :see: `GIT Repository Browser `__ :license: The MIT License :copyright: |copy| 2006-2016 Michael Hanke :copyright: |copy| 2007-2016 Yaroslav O. Halchenko :copyright: |copy| 2012-2016 Nikolaas N. Oosterhof .. |copy| unicode:: 0xA9 .. copyright sign """ __docformat__ = 'restructuredtext' # canonical PyMVPA version string __version__ = '2.6.4' import os from os.path import join as pathjoin import random import numpy as np from mvpa2.base import cfg from mvpa2.base import externals from mvpa2.base.info import wtf # commit hash to be filled in by Git upon export/archive hashfilename = pathjoin(os.path.dirname(__file__), 'COMMIT_HASH') __hash__ = '' if os.path.exists(hashfilename): hashfile = open(hashfilename, 'r') __hash__ = hashfile.read().strip() hashfile.close() # # Data paths # # locate data root -- data might not be installed, but if it is, it should be at # this location pymvpa_dataroot = \ cfg.get('data', 'root', default=pathjoin(os.path.dirname(__file__), 'data')) # locate PyMVPA data database root -- also might not be installed, but if it is, # it should be at this location pymvpa_datadbroot = \ cfg.get('datadb', 'root', default=pathjoin(os.getcwd(), 'datadb')) # # Debugging and optimization # if not __debug__: try: import psyco psyco.profile() except ImportError: from mvpa2.base import verbose verbose(2, "Psyco online compilation is not enabled") else: # Controllable seeding of random number generator from mvpa2.base import debug debug('INIT', 'mvpa') # # RNGs control # from mvpa2._random import _random_seed, seed, get_random_seed # # Testing # # import the main unittest interface from mvpa2.tests import run as test # # Externals-dependent tune ups # # PyMVPA is useless without numpy # Also, this check enforcing population of externals.versions # for possible later version checks, hence don't remove externals.exists('numpy', force=True, raise_=True) # We might need to suppress the warnings: # If instructed -- no python or numpy warnings (like ctypes version # for slmr), e.g. for during doctests if cfg.getboolean('warnings', 'suppress', default=False): import warnings warnings.simplefilter('ignore') # NumPy np.seterr(**dict([(x, 'ignore') for x in np.geterr()])) if externals.exists('scipy'): externals._suppress_scipy_warnings() # And check if we aren't under IPython so we could pacify completion # a bit externals.exists('running ipython env', force=True, raise_=False) # Check for matplotlib so matplotlib backend becomes set according to # our configuration externals.exists('matplotlib', force=True, raise_=False) # # Hooks # # Attach custom top-level exception handler if cfg.getboolean('debug', 'wtf', default=False): import sys _sys_excepthook = sys.excepthook def _pymvpa_excepthook(*args): """Custom exception handler to report also pymvpa's wtf Calls original handler, and then collects WTF and spits it out """ ret = _sys_excepthook(*args) sys.stdout.write("PyMVPA's WTF: collecting information... hold on...") sys.stdout.flush() wtfs = wtf() sys.stdout.write("\rPyMVPA's WTF: \n") sys.stdout.write(str(wtfs)) return ret sys.excepthook = _pymvpa_excepthook # Attach custom top-level exception handler if cfg.getboolean('debug', 'pdb', default=False): import sys _sys_excepthook = sys.excepthook def _pymvpa_pdb_excepthook(type, value, tb): if hasattr(sys, 'ps1') or not sys.stderr.isatty(): # we are in interactive mode or we don't have a tty-like # device, so we call the default hook sys.__excepthook__(type, value, tb) else: import traceback, pdb traceback.print_exception(type, value, tb) print pdb.post_mortem(tb) sys.excepthook = _pymvpa_pdb_excepthook if __debug__: debug('INIT', 'mvpa end') # Setup duecredit entry for the entire PyMVPA from .support.due import due, Doi due.cite( Doi("10.1007/s12021-008-9041-y"), description="Multivariate pattern analysis of neural data", tags=["reference-implementation"], path="mvpa2") due.cite( Doi("10.3389/neuro.11.003.2009"), description="Demonstration of PyMVPA capabilities concerning multi-modal or modality-agnostic data analysis", tags=["edu,use"], path="mvpa2") pymvpa2-2.6.4/mvpa2/_random.py000066400000000000000000000021611323370031300161320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper module for control of RNGs (numpy and stock python)""" import random import numpy as np from mvpa2.base import cfg if __debug__: from mvpa2.base import debug # # RNG seeding # def get_random_seed(): """Generate a random int good for seeding RNG via `seed` function""" return int(np.random.uniform()*(2**31-1)) if cfg.has_option('general', 'seed'): _random_seed = cfg.getint('general', 'seed') else: _random_seed = get_random_seed() def seed(random_seed=_random_seed): """Uniform and combined seeding of all relevant random number generators. """ if __debug__: debug('RANDOM', 'Reseeding RNGs with %s' % random_seed) np.random.seed(random_seed) random.seed(random_seed) seed(_random_seed) pymvpa2-2.6.4/mvpa2/algorithms/000077500000000000000000000000001323370031300163125ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/algorithms/__init__.py000066400000000000000000000010661323370031300204260ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for PyMVPA algorithms.""" if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.algorithms') if __debug__: debug('INIT', 'mvpa2.algorithms end') pymvpa2-2.6.4/mvpa2/algorithms/benchmarks/000077500000000000000000000000001323370031300204275ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/algorithms/benchmarks/__init__.py000066400000000000000000000011561323370031300225430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Benchmarks for various analyses """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.algorithms.benchmarks') if __debug__: debug('INIT', 'mvpa2.algorithms.benchmarks end') pymvpa2-2.6.4/mvpa2/algorithms/benchmarks/hyperalignment.py000066400000000000000000000150701323370031300240320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Benchmarks for hyperalignment algorithms """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning from mvpa2.support import copy from mvpa2.mappers.base import IdentityMapper from mvpa2.mappers.zscore import zscore from mvpa2.generators.partition import NFoldPartitioner, HalfPartitioner from mvpa2.generators.splitters import Splitter from mvpa2.mappers.boxcar import BoxcarMapper from mvpa2.datasets.base import FlattenMapper from mvpa2.measures.anova import vstack from mvpa2.mappers.fx import mean_group_sample if __debug__: from mvpa2.base import debug def wipe_out_offdiag(a, window_size, value=np.inf): """Wipe-out (fill with np.inf, as default) close-to-diagonal elements Parameters ---------- a : array window_size : int How many "off-diagonal" elements to preserve value : optional Value to fill in with """ for r, _ in enumerate(a): a[r, max(0, r - window_size):r] = value a[r, r + 1:min(len(a), r + window_size)] = value return a def timesegments_classification( dss, hyper=None, part1=HalfPartitioner(), part2=NFoldPartitioner(attr='subjects'), window_size=6, overlapping_windows=True, distance='correlation', do_zscore=True): """Time-segment classification across subjects using Hyperalignment Parameters ---------- dss : list of datasets Datasets to benchmark on. Usually a single dataset per subject. hyper : Hyperalignment-like, optional Beast which if called on a list of datasets should spit out trained mappers. If not specified, `IdentityMapper`s will be used part1 : Partitioner, optional Partitioner to split data for hyperalignment "cross-validation" part2 : Partitioner, optional Partitioner for CV within the hyperalignment test split window_size : int, optional How many temporal points to consider for a classification sample overlapping_windows : bool, optional Strategy to how create and classify "samples" for classification. If True -- `window_size` samples from each time point (but trailing ones) constitute a sample, and upon "predict" `window_size` of samples around each test point is not considered. If False -- samples are just taken (with training and testing splits) at `window_size` step from one to another. do_zscore : bool, optional Perform zscoring (overall, not per-chunk) for each dataset upon partitioning with part1 ... """ # Generate outer-most partitioning () parts = [copy.deepcopy(part1).generate(ds) for ds in dss] iter = 1 errors = [] while True: try: dss_partitioned = [p.next() for p in parts] except StopIteration: # we are done -- no more partitions break if __debug__: debug("BM", "Iteration %d", iter) dss_train, dss_test = zip(*[list(Splitter("partitions").generate(ds)) for ds in dss_partitioned]) # TODO: allow for doing feature selection if do_zscore: for ds in dss_train + dss_test: zscore(ds, chunks_attr=None) if hyper is not None: # since otherwise it would remember previous loop dataset as the "commonspace" # Now let's do hyperalignment but on a copy in each loop iteration hyper_ = copy.deepcopy(hyper) mappers = hyper_(dss_train) else: mappers = [IdentityMapper() for ds in dss_train] dss_test_aligned = [mapper.forward(ds) for mapper, ds in zip(mappers, dss_test)] # assign .sa.subjects to those datasets for i, ds in enumerate(dss_test_aligned): # part2.attr is by default "subjects" ds.sa[part2.attr] = [i] dss_test_bc = [] for ds in dss_test_aligned: if overlapping_windows: startpoints = range(len(ds) - window_size + 1) else: startpoints = _get_nonoverlapping_startpoints(len(ds), window_size) bm = BoxcarMapper(startpoints, window_size) bm.train(ds) ds_ = bm.forward(ds) ds_.sa['startpoints'] = startpoints # reassign subjects so they are not arrays def assign_unique(ds, sa): ds.sa[sa] = [np.asscalar(np.unique(x)) for x in ds.sa[sa].value] assign_unique(ds_, part2.attr) fm = FlattenMapper() fm.train(ds_) dss_test_bc.append(ds_.get_mapped(fm)) ds_test = vstack(dss_test_bc) # Perform classification across subjects comparing against mean # spatio-temporal pattern of other subjects errors_across_subjects = [] for ds_test_part in part2.generate(ds_test): ds_train_, ds_test_ = list(Splitter("partitions").generate(ds_test_part)) # average across subjects to get a representative pattern per timepoint ds_train_ = mean_group_sample(['startpoints'])(ds_train_) assert(ds_train_.shape == ds_test_.shape) if distance == 'correlation': # TODO: redo more efficiently since now we are creating full # corrcoef matrix. Also we might better just take a name for # the pdist measure but then implement them efficiently # (i.e. without hstacking both pieces together first) dist = 1 - np.corrcoef(ds_train_, ds_test_)[len(ds_test_):, :len(ds_test_)] else: raise NotImplementedError if overlapping_windows: dist = wipe_out_offdiag(dist, window_size) winners = np.argmin(dist, axis=1) error = np.mean(winners != np.arange(len(winners))) errors_across_subjects.append(error) errors.append(errors_across_subjects) iter += 1 errors = np.array(errors) if __debug__: debug("BM", "Finished with %s array of errors. Mean error %.2f" % (errors.shape, np.mean(errors))) return errors def _get_nonoverlapping_startpoints(n, window_size): return range(0, n - window_size + 1, window_size) pymvpa2-2.6.4/mvpa2/algorithms/group_clusterthr.py000066400000000000000000000641401323370031300223040ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Cluster thresholding algorithm for a group-level searchlight analysis""" __docformat__ = 'restructuredtext' __all__ = ['GroupClusterThreshold', 'get_thresholding_map', 'get_cluster_sizes', 'get_cluster_pvals'] if __debug__: from mvpa2.base import debug import random from collections import Counter import numpy as np from scipy.ndimage import measurements from scipy.sparse import dok_matrix from mvpa2.mappers.base import IdentityMapper, _verified_reverse1 from mvpa2.datasets import Dataset from mvpa2.base.learner import Learner from mvpa2.base.param import Parameter from mvpa2.base.constraints import \ EnsureInt, EnsureFloat, EnsureRange, EnsureChoice from mvpa2.mappers.fx import mean_sample from mvpa2.support.due import due, Doi class GroupClusterThreshold(Learner): """Statistical evaluation of group-level average accuracy maps This algorithm can be used to perform cluster-thresholding of searchlight-based group analyses. It implements a two-stage procedure that uses the results of within-subject permutation analyses, estimates a per feature cluster forming threshold (via bootstrap), and uses the thresholded bootstrap samples to estimate the distribution of cluster sizes in group-average accuracy maps under the NULL hypothesis, as described in [1]_. Note: this class implements a modified version of that algorithm. The present implementation differs in, at least, four aspects from the description in that paper. 1) Cluster p-values refer to the probability of observing a particular cluster size or a larger one (original paper: probability to observe a larger cluster only). Consequently, probabilities reported by this implementation will have a tendency to be higher in comparison. 2) Clusters found in the original (unpermuted) accuracy map are always included in the NULL distribution estimate of cluster sizes. This provides an explicit lower bound for probabilities, as there will always be at least one observed cluster for every cluster size found in the original accuracy map. Consequently, it is impossible to get a probability of zero for clusters of any size (see [2] for more information). 3) Bootstrap accuracy maps that contain no clusters are counted in a dedicated size-zero bin in the NULL distribution of cluster sizes. This change yields reliable cluster-probabilities even for very low featurewise threshold probabilities, where (some portion) of the bootstrap accuracy maps do not contain any clusters. 4) The method for FWE-correction used by the original authors is not provided. Instead, a range of alternatives implemented by the statsmodels package are available. Moreover, this implementation minimizes the required memory demands and allows for computing large numbers of bootstrap samples without significant increase in memory demand (CPU time trade-off). Instances of this class must be trained before than can be used to threshold accuracy maps. The training dataset must match the following criteria: 1) For every subject in the group, it must contain multiple accuracy maps that are the result of a within-subject classification analysis based on permuted class labels. One map must corresponds to one fixed permutation for all features in the map, as described in [1]_. The original authors recommend 100 accuracy maps per subject for a typical searchlight analysis. 2) It must contain a sample attribute indicating which sample is associated with which subject, because bootstrapping average accuracy maps is implemented by randomly drawing one map from each subject. The name of the attribute can be configured via the ``chunk_attr`` parameter. After training, an instance can be called with a dataset to perform threshold and statistical evaluation. Unless a single-sample dataset is passed, all samples in the input dataset will be averaged prior thresholding. Returns ------- Dataset This is a shallow copy of the input dataset (after a potential averaging), hence contains the same data and attributes. In addition it includes the following attributes: ``fa.featurewise_thresh`` Vector with feature-wise cluster-forming thresholds. ``fa.clusters_featurewise_thresh`` Vector with labels for clusters after thresholding the input data with the desired feature-wise probability. Each unique non-zero element corresponds to an individual super-threshold cluster. Cluster values are sorted by cluster size (number of features). The largest cluster is always labeled with ``1``. ``fa.clusters_fwe_thresh`` Vector with labels for super-threshold clusters after correction for multiple comparisons. The attribute is derived from ``fa.clusters_featurewise_thresh`` by removing all clusters that do not pass the threshold when controlling for the family-wise error rate. ``a.clusterstats`` Record array with information on all detected clusters. The array is sorted according to cluster size, starting with the largest cluster in terms of number of features. The array contains the fields ``size`` (number of features comprising the cluster), ``mean``, ``median``, min``, ``max``, ``std`` (respective descriptive statistics for all clusters), and ``prob_raw`` (probability of observing the cluster of a this size or larger under the NULL hypothesis). If correction for multiple comparisons is enabled an additional field ``prob_corrected`` (probability after correction) is added. ``a.clusterlocations`` Record array with information on the location of all detected clusters. The array is sorted according to cluster size (same order as ``a.clusterstats``. The array contains the fields ``max`` (feature coordinate of the maximum score within the cluster, and ``center_of_mass`` (coordinate of the center of mass; weighted by the feature values within the cluster. References ---------- .. [1] Johannes Stelzer, Yi Chen and Robert Turner (2013). Statistical inference and multiple testing correction in classification-based multi-voxel pattern analysis (MVPA): Random permutations and cluster size control. NeuroImage, 65, 69--82. .. [2] Smyth, G. K., & Phipson, B. (2010). Permutation P-values Should Never Be Zero: Calculating Exact P-values When Permutations Are Randomly Drawn. Statistical Applications in Genetics and Molecular Biology, 9, 1--12. """ n_bootstrap = Parameter( 100000, constraints=EnsureInt() & EnsureRange(min=1), doc="""Number of bootstrap samples to be generated from the training dataset. For each sample, an average map will be computed from a set of randomly drawn samples (one from each chunk). Bootstrap samples will be used to estimate a featurewise NULL distribution of accuracy values for initial thresholding, and to estimate the NULL distribution of cluster sizes under the NULL hypothesis. A larger number of bootstrap samples reduces the lower bound of probabilities, which may be beneficial for multiple comparison correction.""") feature_thresh_prob = Parameter( 0.001, constraints=EnsureFloat() & EnsureRange(min=0.0, max=1.0), doc="""Feature-wise probability threshold. The value corresponding to this probability in the NULL distribution of accuracies will be used as threshold for cluster forming. Given that the NULL distribution is estimated per feature, the actual threshold value will vary across features yielding a threshold vector. The number of bootstrap samples need to be adequate for a desired probability. A ``ValueError`` is raised otherwise.""") chunk_attr = Parameter( 'chunks', doc="""Name of the attribute indicating the individual chunks from which a single sample each is drawn for averaging into a bootstrap sample.""") fwe_rate = Parameter( 0.05, constraints=EnsureFloat() & EnsureRange(min=0.0, max=1.0), doc="""Family-wise error rate for multiple comparison correction of cluster size probabilities.""") multicomp_correction = Parameter( 'fdr_bh', constraints=EnsureChoice('bonferroni', 'sidak', 'holm-sidak', 'holm', 'simes-hochberg', 'hommel', 'fdr_bh', 'fdr_by', None), doc="""Strategy for multiple comparison correction of cluster probabilities. All methods supported by statsmodels' ``multitest`` are available. In addition, ``None`` can be specified to disable correction.""") n_blocks = Parameter( 1, constraints=EnsureInt() & EnsureRange(min=1), doc="""Number of segments used to compute the feature-wise NULL distributions. This parameter determines the peak memory demand. In case of a single segment a matrix of size (n_bootstrap x nfeatures) will be allocated. Increasing the number of segments reduces the peak memory demand by that roughly factor. """) n_proc = Parameter( 1, constraints=EnsureInt() & EnsureRange(min=1), doc="""Number of parallel processes to use for computation. Requires `joblib` external module.""") def __init__(self, **kwargs): # force disable auto-train: would make no sense Learner.__init__(self, auto_train=False, **kwargs) if 1. / (self.params.n_bootstrap + 1) > self.params.feature_thresh_prob: raise ValueError('number of bootstrap samples is insufficient for' ' the desired threshold probability') self.untrain() def _untrain(self): self._thrmap = None self._null_cluster_sizes = None @due.dcite( Doi("10.1016/j.neuroimage.2012.09.063"), description="Statistical assessment of (searchlight) MVPA results", tags=['implementation']) def _train(self, ds): # shortcuts chunk_attr = self.params.chunk_attr # # Step 0: bootstrap maps by drawing one for each chunk and average them # (do N iterations) # this could take a lot of memory, hence instead of computing the maps # we compute the source maps they can be computed from and then (re)build # the matrix of bootstrapped maps either row-wise or column-wise (as # needed) to save memory by a factor of (close to) `n_bootstrap` # which samples belong to which chunk chunk_samples = dict([(c, np.where(ds.sa[chunk_attr].value == c)[0]) for c in ds.sa[chunk_attr].unique]) # pre-built the bootstrap combinations bcombos = [[random.sample(v, 1)[0] for v in chunk_samples.values()] for i in xrange(self.params.n_bootstrap)] bcombos = np.array(bcombos, dtype=int) # # Step 1: find the per-feature threshold that corresponds to some p # in the NULL segwidth = ds.nfeatures / self.params.n_blocks # speed things up by operating on an array not a dataset ds_samples = ds.samples if __debug__: debug('GCTHR', 'Compute per-feature thresholds in %i blocks of %i features' % (self.params.n_blocks, segwidth)) # Execution can be done in parallel as the estimation is independent # across features def featuresegment_producer(ncols): for segstart in xrange(0, ds.nfeatures, ncols): # one average map for every stored bcombo # this also slices the input data into feature subsets # for the compute blocks yield [np.mean( # get a view to a subset of the features # -- should be somewhat efficient as feature axis is # sliced ds_samples[sidx, segstart:segstart + ncols], axis=0) for sidx in bcombos] if self.params.n_proc == 1: # Serial execution thrmap = np.hstack( # merge across compute blocks [get_thresholding_map(d, self.params.feature_thresh_prob) # compute a partial threshold map for as many features # as fit into a compute block for d in featuresegment_producer(segwidth)]) else: # Parallel execution verbose_level_parallel = 50 \ if (__debug__ and 'GCTHR' in debug.active) else 0 # local import as only parallel execution needs this from joblib import Parallel, delayed # same code as above, just in parallel with joblib's Parallel thrmap = np.hstack( Parallel(n_jobs=self.params.n_proc, pre_dispatch=self.params.n_proc, verbose=verbose_level_parallel)( delayed(get_thresholding_map) (d, self.params.feature_thresh_prob) for d in featuresegment_producer(segwidth))) # store for later thresholding of input data self._thrmap = thrmap # # Step 2: threshold all NULL maps and build distribution of NULL cluster # sizes # cluster_sizes = Counter() # recompute the bootstrap average maps to threshold them and determine # cluster sizes dsa = dict(mapper=ds.a.mapper) if 'mapper' in ds.a else {} if __debug__: debug('GCTHR', 'Estimating NULL distribution of cluster sizes') # this step can be computed in parallel chunks to speeds things up if self.params.n_proc == 1: # Serial execution for sidx in bcombos: avgmap = np.mean(ds_samples[sidx], axis=0)[None] # apply threshold clustermap = avgmap > thrmap # wrap into a throw-away dataset to get the reverse mapping right bds = Dataset(clustermap, a=dsa) # this function reverse-maps every sample one-by-one, hence no need # to collect chunks of bootstrapped maps cluster_sizes = get_cluster_sizes(bds, cluster_sizes) else: # Parallel execution # same code as above, just restructured for joblib's Parallel for jobres in Parallel(n_jobs=self.params.n_proc, pre_dispatch=self.params.n_proc, verbose=verbose_level_parallel)( delayed(get_cluster_sizes) (Dataset(np.mean(ds_samples[sidx], axis=0)[None] > thrmap, a=dsa)) for sidx in bcombos): # aggregate cluster_sizes += jobres # store cluster size histogram for later p-value evaluation # use a sparse matrix for easy consumption (max dim is the number of # features, i.e. biggest possible cluster) scl = dok_matrix((1, ds.nfeatures + 1), dtype=int) for s in cluster_sizes: scl[0, s] = cluster_sizes[s] self._null_cluster_sizes = scl def _call(self, ds): if len(ds) > 1: # average all samples into one, assuming we got something like one # sample per subject as input avgr = mean_sample() ds = avgr(ds) # threshold input; at this point we only have one sample left thrd = ds.samples[0] > self._thrmap # mapper default mapper = IdentityMapper() # overwrite if possible if hasattr(ds, 'a') and 'mapper' in ds.a: mapper = ds.a.mapper # reverse-map input othrd = _verified_reverse1(mapper, thrd) # TODO: what is your purpose in life osamp? ;-) osamp = _verified_reverse1(mapper, ds.samples[0]) # prep output dataset outds = ds.copy(deep=False) outds.fa['featurewise_thresh'] = self._thrmap # determine clusters labels, num = measurements.label(othrd) area = measurements.sum(othrd, labels, index=np.arange(1, num + 1)).astype(int) com = measurements.center_of_mass( osamp, labels=labels, index=np.arange(1, num + 1)) maxpos = measurements.maximum_position( osamp, labels=labels, index=np.arange(1, num + 1)) # for the rest we need the labels flattened labels = mapper.forward1(labels) # relabel clusters starting with the biggest and increase index with # decreasing size ordered_labels = np.zeros(labels.shape, dtype=int) ordered_area = np.zeros(area.shape, dtype=int) ordered_com = np.zeros((num, len(osamp.shape)), dtype=float) ordered_maxpos = np.zeros((num, len(osamp.shape)), dtype=float) for i, idx in enumerate(np.argsort(area)): ordered_labels[labels == idx + 1] = num - i # kinda ugly, but we are looping anyway ordered_area[i] = area[idx] ordered_com[i] = com[idx] ordered_maxpos[i] = maxpos[idx] labels = ordered_labels area = ordered_area[::-1] com = ordered_com[::-1] maxpos = ordered_maxpos[::-1] del ordered_labels # this one can be big # store cluster labels after forward-mapping outds.fa['clusters_featurewise_thresh'] = labels.copy() # location info outds.a['clusterlocations'] = \ np.rec.fromarrays( [com, maxpos], names=('center_of_mass', 'max')) # update cluster size histogram with the actual result to get a # proper lower bound for p-values # this will make a copy, because the original matrix is int cluster_probs_raw = _transform_to_pvals( area, self._null_cluster_sizes.astype('float')) clusterstats = ( [area, cluster_probs_raw], ['size', 'prob_raw'] ) # evaluate a bunch of stats for all clusters morestats = {} for cid in xrange(len(area)): # keep clusters on outer loop, because selection is more expensive clvals = ds.samples[0, labels == cid + 1] for id_, fx in ( ('mean', np.mean), ('median', np.median), ('min', np.min), ('max', np.max), ('std', np.std)): stats = morestats.get(id_, []) stats.append(fx(clvals)) morestats[id_] = stats for k, v in morestats.items(): clusterstats[0].append(v) clusterstats[1].append(k) if self.params.multicomp_correction is not None: # do a local import as only this tiny portion needs statsmodels import statsmodels.stats.multitest as smm rej, probs_corr = smm.multipletests( cluster_probs_raw, alpha=self.params.fwe_rate, method=self.params.multicomp_correction)[:2] # store corrected per-cluster probabilities clusterstats[0].append(probs_corr) clusterstats[1].append('prob_corrected') # remove cluster labels that did not pass the FWE threshold for i, r in enumerate(rej): if not r: labels[labels == i + 1] = 0 outds.fa['clusters_fwe_thresh'] = labels outds.a['clusterstats'] = \ np.rec.fromarrays(clusterstats[0], names=clusterstats[1]) return outds def get_thresholding_map(data, p=0.001): """Return array of thresholds corresponding to a probability of such value in the input Thresholds are returned as an array with one value per column in the input data. Parameters ---------- data : 2D-array Array with data on which the cumulative distribution is based. Values in each column are sorted and the value corresponding to the desired probability is returned. p : float [0,1] Value greater or equal than the returned threshold have a probability `p` or less. """ # we need NumPy indexing logic, even if a dataset comes in data = np.asanyarray(data) p_index = int(len(data) * p) if p_index < 1: raise ValueError("requested probability is too low for the given number of samples") # threshold indices are all in one row of the argsorted inputs thridx = np.argsort(data, axis=0, kind='quicksort')[-p_index] return data[thridx, np.arange(data.shape[1])] def _get_map_cluster_sizes(map_): labels, num = measurements.label(map_) area = measurements.sum(map_, labels, index=np.arange(1, num + 1)) # TODO: So here if a given map didn't have any super-thresholded features, # we get 0 into our histogram. BUT for the other maps, where at least 1 voxel # passed the threshold we might get multiple clusters recorded within our # distribution. Which doesn't quite cut it for being called a FW cluster level. # MAY BE it should count only the maximal cluster size (a single number) # per given permutation (not all of them) if not len(area): return [0] else: return area.astype(int) def get_cluster_sizes(ds, cluster_counter=None): """Compute cluster sizes from all samples in a boolean dataset. Individually for each sample, in the input dataset, clusters of non-zero values will be determined after reverse-applying any transformation of the dataset's mapper (if any). Parameters ---------- ds : dataset or array A dataset with boolean samples. cluster_counter : list or None If not None, given list is extended with the cluster sizes computed from the present input dataset. Otherwise, a new list is generated. Returns ------- list Unsorted list of cluster sizes from all samples in the input dataset (optionally appended to any values passed via ``cluster_counter``). """ # XXX input needs to be boolean for the cluster size calculation to work if cluster_counter is None: cluster_counter = Counter() mapper = IdentityMapper() data = np.asanyarray(ds) if hasattr(ds, 'a') and 'mapper' in ds.a: mapper = ds.a.mapper for i in xrange(len(ds)): osamp = _verified_reverse1(mapper, data[i]) m_clusters = _get_map_cluster_sizes(osamp) cluster_counter.update(m_clusters) return cluster_counter def get_cluster_pvals(sizes, null_sizes): """Get p-value per each cluster size given cluster sizes for null-distribution Parameters ---------- sizes, null_sizes : Counter Counters of cluster sizes (as returned by get_cluster_sizes) for target dataset and null distribution """ # TODO: dedicated unit-test for this function """ Development note: Functionality here somewhat duplicates functionality in _transform_to_pvals which does not operate on raw "Counters" and requires different input format. Altogether with such data preparation _transform_to_pvals was slower than this more naive implementation. """ all_sizes = null_sizes + sizes total_count = float(np.sum(all_sizes.values())) # now we need to normalize them counting all to the "right", i.e larger than # current one right_tail = 0 all_sizes_sf = {} for cluster_size in sorted(all_sizes)[::-1]: right_tail += all_sizes[cluster_size] all_sizes_sf[cluster_size] = right_tail/total_count # now figure out p values for our cluster sizes in real acc (not the P0 distribution), # since some of them might be missing all_sizes_sorted = sorted(all_sizes) pvals = {} for cluster_size in sizes: if cluster_size in all_sizes: pvals[cluster_size] = all_sizes_sf[cluster_size] else: # find the largest smaller than current size clusters = all_sizes_sorted[all_sizes_sorted < cluster_size] pvals[cluster_size] = all_sizes_sf[clusters[-1]] return pvals def repeat_cluster_vals(cluster_counts, vals=None): """Repeat vals for each count of a cluster size as given in cluster_counts Parameters ---------- cluster_counts: dict or Counter Contains counts per each cluster size vals : dict or Counter, optional Returns ------- ndarray Values are ordered according to ascending order of cluster sizes """ sizes = sorted(cluster_counts.keys()) if vals is None: return np.repeat(sizes, [cluster_counts[s] for s in sizes]) else: return np.repeat([vals[s] for s in sizes], [cluster_counts[s] for s in sizes]) def _transform_to_pvals(sizes, null_sizes): # null_sizes will be modified in-place for size in sizes: null_sizes[0, size] += 1 # normalize histogram null_sizes /= null_sizes.sum() # compute p-values for each cluster cache = {} probs = [] for cidx, csize in enumerate(sizes): # try the cache prob = cache.get(csize, None) if prob is None: # no cache # probability is the sum of a relative frequencies for clusters # larger OR EQUAL than the current one prob = null_sizes[0, csize:].sum() cache[csize] = prob # store for output probs.append(prob) return probs pymvpa2-2.6.4/mvpa2/algorithms/hyperalignment.py000066400000000000000000000647511323370031300217270ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Transformation of individual feature spaces into a common space The :class:`Hyperalignment` class in this module implements an algorithm published in :ref:`Haxby et al., Neuron (2011) ` *A common, high-dimensional model of the representational space in human ventral temporal cortex.* """ __docformat__ = 'restructuredtext' # don't leak the world __all__ = ['Hyperalignment'] from mvpa2.support.copy import deepcopy import numpy as np from mvpa2.base.state import ConditionalAttribute, ClassWithCollections from mvpa2.base.param import Parameter from mvpa2.base.constraints import * from mvpa2.mappers.procrustean import ProcrusteanMapper from mvpa2.datasets import Dataset from mvpa2.mappers.base import ChainMapper from mvpa2.mappers.zscore import zscore, ZScoreMapper from mvpa2.mappers.staticprojection import StaticProjectionMapper from mvpa2.mappers.svd import SVDMapper from mvpa2.support.due import due, Doi if __debug__: from mvpa2.base import debug __all__ = ["Hyperalignment"] # # Helper functions which will be used as defaults for Hyperalignment parameters # to avoid lambdas (we fail to serialize them ATM in h5save) and to # provide easier to comprehend repr of their values # def mean_xy(x, y, weights=(.5, .5)): return (weights[0] * x + weights[1] * y) / (weights[0] + weights[1]) def mean_axis0(a): return np.mean(a, axis=0) class Hyperalignment(ClassWithCollections): """Align the features across multiple datasets into a common feature space. This is a three-level algorithm. In the first level, a series of input datasets is projected into a common feature space using a configurable mapper. The common space is initially defined by a chosen exemplar from the list of input datasets, but is subsequently refined by iteratively combining the common space with the projected input datasets. In the second (optional) level, the original input datasets are again aligned with (or projected into) the intermediate first-level common space. Through a configurable number of iterations the common space is further refined by repeated projections of the input datasets and combination/aggregation of these projections into an updated common space. In the third level, the input datasets are again aligned with the, now final, common feature space. The output of this algorithm are trained mappers (one for each input dataset) that transform the individual features spaces into the common space. Level 1 and 2 are performed by the ``train()`` method, and level 3 is performed when the trained Hyperalignment instance is called with a list of datasets. This dataset list may or may not be identical to the training datasets. The default values for the parameters of the algorithm (e.g. projection via Procrustean transformation, common space aggregation by averaging) resemble the setup reported in :ref:`Haxby et al., Neuron (2011) ` *A common, high-dimensional model of the representational space in human ventral temporal cortex.* Examples -------- >>> # get some example data >>> from mvpa2.testing.datasets import datasets >>> from mvpa2.misc.data_generators import random_affine_transformation >>> ds4l = datasets['uni4large'] >>> # generate a number of distorted variants of this data >>> dss = [random_affine_transformation(ds4l) for i in xrange(4)] >>> ha = Hyperalignment() >>> ha.train(dss) >>> mappers = ha(dss) >>> len(mappers) 4 """ training_residual_errors = ConditionalAttribute(enabled=False, doc="""Residual error (norm of the difference between common space and projected data) per each training dataset at each level. The residuals are stored in a dataset with one row per level, and one column per input dataset. The first row corresponds to the error 1st-level of hyperalignment the remaining rows store the residual errors for each 2nd-level iteration.""") residual_errors = ConditionalAttribute(enabled=False, doc="""Residual error (norm of the difference between common space and projected data) per each dataset. The residuals are stored in a single-row dataset with one column per input dataset.""") # XXX Who cares whether it was chosen, or specified? This should be just # 'ref_ds' chosen_ref_ds = ConditionalAttribute(enabled=True, doc="""Index of the input dataset used as 1st-level reference dataset.""") # Lets use built-in facilities to specify parameters which # constructor should accept # the ``space`` of the mapper determines where the algorithm places the # common space definition in the datasets alignment = Parameter(ProcrusteanMapper(space='commonspace'), # might provide allowedtype # XXX Currently, there's no way to handle this with constraints doc="""The multidimensional transformation mapper. If `None` (default) an instance of :class:`~mvpa2.mappers.procrustean.ProcrusteanMapper` is used.""") output_dim = Parameter(None, constraints=(EnsureInt() & EnsureRange(min=1)| EnsureNone()), doc="""Output common space dimensionality. If None, datasets are aligned to the features of the `ref_ds`. Otherwise, dimensionality reduction is performed using SVD and only the top SVs are kept. To get all features in SVD-aligned space, give output_dim>=nfeatures. """) alpha = Parameter(1, constraints=EnsureFloat() & EnsureRange(min=0, max=1), doc="""Regularization parameter to traverse between (Shrinkage)-CCA (canonical correlation analysis) and regular hyperalignment. Setting alpha to 1 makes the algorithm identical to hyperalignment and alpha of 0 makes it CCA. By default, it is 1, therefore hyperalignment. """) level2_niter = Parameter(1, constraints=EnsureInt() & EnsureRange(min=0), doc="Number of 2nd-level iterations.") ref_ds = Parameter(None, constraints=(EnsureRange(min=0) & EnsureInt() | EnsureNone()), doc="""Index of a dataset to use as 1st-level common space reference. If `None`, then the dataset with the maximum number of features is used.""") nproc = Parameter(1, constraints=EnsureInt(), doc="""Number of processes to use to parallelize the last step of alignment. If different from 1, it passes it as n_jobs to `joblib.Parallel`. Requires joblib package.""") zscore_all = Parameter(False, constraints='bool', doc="""Flag to Z-score all datasets prior hyperalignment. Turn it off if Z-scoring is not desired or was already performed. If True, returned mappers are ChainMappers with the Z-scoring prepended to the actual projection.""") zscore_common = Parameter(True, constraints='bool', doc="""Flag to Z-score the common space after each adjustment. This should be left enabled in most cases.""") combiner1 = Parameter(mean_xy, # doc="""How to update common space in the 1st-level loop. This must be a callable that takes two arguments. The first argument is one of the input datasets after projection onto the 1st-level common space. The second argument is the current 1st-level common space. The 1st-level combiner is called iteratively for each projected input dataset, except for the reference dataset. By default the new common space is the average of the current common space and the recently projected dataset.""") level1_equal_weight = Parameter(False, constraints='bool', doc="""Flag to force all datasets to have the same weight in the level 1 iteration. False (default) means each time the new common space is the average of the current common space and the newly aligned dataset, and therefore earlier datasets have less weight.""") combiner2 = Parameter(mean_axis0, doc="""How to combine all individual spaces to common space. This must be a callable that take a sequence of datasets as an argument. The callable must return a single array. This combiner is called once with all datasets after 1st-level projection to create an updated common space, and is subsequently called again after each 2nd-level iteration.""") joblib_backend = Parameter(None, constraints=EnsureChoice('multiprocessing', 'threading') | EnsureNone(), doc="""Backend to use for joblib when using nproc>1. Options are 'multiprocessing' and 'threading'. Default is to use 'multiprocessing' unless run on OSX which have known issues with joblib v0.10.3. If it is set to specific value here, then that will be used at the risk of failure.""") def __init__(self, **kwargs): ClassWithCollections.__init__(self, **kwargs) self.commonspace = None # mapper to a low-dimensional subspace derived using SVD on training data # Initializing here so that call can access it without passing after train. # Moreover, it is similar to commonspace, in that, it is required for mapping # new subjects self._svd_mapper = None @due.dcite( Doi('10.1016/j.neuron.2011.08.026'), description="Hyperalignment of data to a common space", tags=["implementation"]) def train(self, datasets): """Derive a common feature space from a series of datasets. Parameters ---------- datasets : sequence of datasets Returns ------- A list of trained Mappers matching the number of input datasets. """ params = self.params # for quicker access ;) ca = self.ca # Check to make sure we get a list of datasets as input. if not isinstance(datasets, (list, tuple, np.ndarray)): raise TypeError("Input datasets should be a sequence " "(of type list, tuple, or ndarray) of datasets.") ndatasets = len(datasets) nfeatures = [ds.nfeatures for ds in datasets] alpha = params.alpha residuals = None if ca['training_residual_errors'].enabled: residuals = np.zeros((1 + params.level2_niter, ndatasets)) ca.training_residual_errors = Dataset( samples = residuals, sa = {'levels' : ['1'] + ['2:%i' % i for i in xrange(params.level2_niter)]}) if __debug__: debug('HPAL', "Hyperalignment %s for %i datasets" % (self, ndatasets)) if params.ref_ds is None: ref_ds = np.argmax(nfeatures) else: ref_ds = params.ref_ds # Making sure that ref_ds is within range. #Parameter() already checks for it being a non-negative integer if ref_ds >= ndatasets: raise ValueError, "Requested reference dataset %i is out of " \ "bounds. We have only %i datasets provided" \ % (ref_ds, ndatasets) ca.chosen_ref_ds = ref_ds # zscore all data sets # ds = [ zscore(ds, chunks_attr=None) for ds in datasets] # TODO since we are doing in-place zscoring create deep copies # of the datasets with pruned targets and shallow copies of # the collections (if they would come needed in the transformation) # TODO: handle floats and non-floats differently to prevent # waste of memory if there is no need (e.g. no z-scoring) #otargets = [ds.sa.targets for ds in datasets] datasets = [ds.copy(deep=False) for ds in datasets] #datasets = [Dataset(ds.samples.astype(float), sa={'targets': [None] * len(ds)}) #datasets = [Dataset(ds.samples, sa={'targets': [None] * len(ds)}) # for ds in datasets] if params.zscore_all: if __debug__: debug('HPAL', "Z-scoring all datasets") for ids in xrange(len(datasets)): zmapper = ZScoreMapper(chunks_attr=None) zmapper.train(datasets[ids]) datasets[ids] = zmapper.forward(datasets[ids]) if alpha < 1: datasets, wmappers = self._regularize(datasets, alpha) # initial common space is the reference dataset commonspace = datasets[ref_ds].samples # the reference dataset might have been zscored already, don't do it # twice if params.zscore_common and not params.zscore_all: if __debug__: debug('HPAL_', "Creating copy of a commonspace and assuring " "it is of a floating type") commonspace = commonspace.astype(float) zscore(commonspace, chunks_attr=None) # If there is only one dataset in training phase, there is nothing to be done # just use that data as the common space if len(datasets) < 2: self.commonspace = commonspace else: # create a mapper per dataset # might prefer some other way to initialize... later mappers = [deepcopy(params.alignment) for ds in datasets] # # Level 1 -- initial projection # lvl1_projdata = self._level1(datasets, commonspace, ref_ds, mappers, residuals) # # Level 2 -- might iterate multiple times # # this is the final common space self.commonspace = self._level2(datasets, lvl1_projdata, mappers, residuals) if params.output_dim is not None: mappers = self._level3(datasets) self._svd_mapper = SVDMapper() self._svd_mapper.train(self._map_and_mean(datasets, mappers)) self._svd_mapper = StaticProjectionMapper( proj=self._svd_mapper.proj[:, :params.output_dim]) def __call__(self, datasets): """Derive a common feature space from a series of datasets. Parameters ---------- datasets : sequence of datasets Returns ------- A list of trained Mappers matching the number of input datasets. """ if self.commonspace is None: self.train(datasets) else: # Check to make sure we get a list of datasets as input. if not isinstance(datasets, (list, tuple, np.ndarray)): raise TypeError("Input datasets should be a sequence " "(of type list, tuple, or ndarray) of datasets.") # place datasets into a copy of the list since items # will be reassigned datasets = list(datasets) params = self.params # for quicker access ;) alpha = params.alpha # for letting me be lazy ;) if params.zscore_all: if __debug__: debug('HPAL', "Z-scoring all datasets") # zscore them once while storing corresponding ZScoreMapper's # so we can assemble a comprehensive mapper at the end # (together with procrustes) zmappers = [] for ids in xrange(len(datasets)): zmapper = ZScoreMapper(chunks_attr=None) zmappers.append(zmapper) zmapper.train(datasets[ids]) datasets[ids] = zmapper.forward(datasets[ids]) if alpha < 1: datasets, wmappers = self._regularize(datasets, alpha) # # Level 3 -- final, from-scratch, alignment to final common space # mappers = self._level3(datasets) # return trained mappers for projection from all datasets into the # common space if params.zscore_all: # We need to construct new mappers which would chain # zscore and then final transformation if params.alpha < 1: mappers = [ChainMapper([zm, wm, m]) for zm, wm, m in zip(zmappers, wmappers, mappers)] else: mappers = [ChainMapper([zm, m]) for zm, m in zip(zmappers, mappers)] elif params.alpha < 1: mappers = [ChainMapper([wm, m]) for wm, m in zip(wmappers, mappers)] if params.output_dim is not None: mappers = [ChainMapper([m, self._svd_mapper]) for m in mappers] return mappers def _regularize(self, datasets, alpha): if __debug__: debug('HPAL', "Using regularized hyperalignment with alpha of %d" % alpha) wmappers = [] for ids in xrange(len(datasets)): U, S, Vh = np.linalg.svd(datasets[ids]) S = 1/np.sqrt( (1-alpha)*np.square(S) + alpha ) S.resize(len(Vh)) S = np.matrix(np.diag(S)) W = np.matrix(Vh.T)*S*np.matrix(Vh) wmapper = StaticProjectionMapper(proj=W, auto_train=False) wmapper.train(datasets[ids]) wmappers.append(wmapper) datasets[ids] = wmapper.forward(datasets[ids]) return datasets, wmappers def _level1(self, datasets, commonspace, ref_ds, mappers, residuals): params = self.params # for quicker access ;) data_mapped = [ds.samples for ds in datasets] counts = 1 # number of datasets used so far for generating commonspace for i, (m, ds_new) in enumerate(zip(mappers, datasets)): if __debug__: debug('HPAL_', "Level 1: ds #%i" % i) if i == ref_ds: continue # assign common space to ``space`` of the mapper, because this is # where it will be looking for it ds_new.sa[m.get_space()] = commonspace # find transformation of this dataset into the current common space m.train(ds_new) # remove common space attribute again to save on memory when the # common space is updated for the next iteration del ds_new.sa[m.get_space()] # project this dataset into the current common space ds_ = m.forward(ds_new.samples) if params.zscore_common: zscore(ds_, chunks_attr=None) # replace original dataset with mapped one -- only the reference # dataset will remain unchanged data_mapped[i] = ds_ # compute first-level residuals wrt to the initial common space if residuals is not None: residuals[0, i] = np.linalg.norm(ds_ - commonspace) # Update the common space. This is an incremental update after # processing each 1st-level dataset. Maybe there should be a flag # to make a batch update after processing all 1st-level datasets # to an identical 1st-level common space # TODO: make just a function so we dont' waste space if params.level1_equal_weight: commonspace = params.combiner1(ds_, commonspace, weights=(float(counts), 1.0)) else: commonspace = params.combiner1(ds_, commonspace) counts += 1 if params.zscore_common: zscore(commonspace, chunks_attr=None) return data_mapped def _level2(self, datasets, lvl1_data, mappers, residuals): params = self.params # for quicker access ;) data_mapped = lvl1_data # aggregate all processed 1st-level datasets into a new 2nd-level # common space commonspace = params.combiner2(data_mapped) # XXX Why is this commented out? Who knows what combiner2 is doing and # whether it changes the distribution of the data #if params.zscore_common: #zscore(commonspace, chunks_attr=None) ndatasets = len(datasets) for loop in xrange(params.level2_niter): # 2nd-level alignment starts from the original/unprojected datasets # again for i, (m, ds_new) in enumerate(zip(mappers, datasets)): if __debug__: debug('HPAL_', "Level 2 (%i-th iteration): ds #%i" % (loop, i)) # Optimization speed up heuristic # Slightly modify the common space towards other feature # spaces and reduce influence of this feature space for the # to-be-computed projection temp_commonspace = (commonspace * ndatasets - data_mapped[i]) \ / (ndatasets - 1) if params.zscore_common: zscore(temp_commonspace, chunks_attr=None) # assign current common space ds_new.sa[m.get_space()] = temp_commonspace # retrain the mapper for this dataset m.train(ds_new) # remove common space attribute again to save on memory when the # common space is updated for the next iteration del ds_new.sa[m.get_space()] # obtain the 2nd-level projection ds_ = m.forward(ds_new.samples) if params.zscore_common: zscore(ds_, chunks_attr=None) # store for 2nd-level combiner data_mapped[i] = ds_ # compute residuals if residuals is not None: residuals[1+loop, i] = np.linalg.norm(ds_ - commonspace) commonspace = params.combiner2(data_mapped) # and again if params.zscore_common: zscore(commonspace, chunks_attr=None) # return the final common space return commonspace def _level3(self, datasets): params = self.params # for quicker access ;) # create a mapper per dataset mappers = [deepcopy(params.alignment) for ds in datasets] # key different from level-2; the common space is uniform #temp_commonspace = commonspace # Fixing nproc=0 if params.nproc == 0: from mvpa2.base import warning warning("nproc of 0 doesn't make sense. Setting nproc to 1.") params.nproc = 1 # Checking for joblib, if not, set nproc to 1 if params.nproc != 1: from mvpa2.base import externals, warning if not externals.exists('joblib'): warning("Setting nproc different from 1 requires joblib package, which " "does not seem to exist. Setting nproc to 1.") params.nproc = 1 # start from original input datasets again if params.nproc == 1: residuals = [] for i, (m, ds_new) in enumerate(zip(mappers, datasets)): if __debug__: debug('HPAL_', "Level 3: ds #%i" % i) m, residual = get_trained_mapper(ds_new, self.commonspace, m, self.ca['residual_errors'].enabled) if self.ca['residual_errors'].enabled: residuals.append(residual) else: if __debug__: debug('HPAL_', "Level 3: Using joblib with nproc = %d " % params.nproc) verbose_level_parallel = 20 \ if (__debug__ and 'HPAL' in debug.active) else 0 from joblib import Parallel, delayed import sys # joblib's 'multiprocessing' backend has known issues of failure on OSX # Tested with MacOS 10.12.13, python 2.7.13, joblib v0.10.3 if params.joblib_backend is None: params.joblib_backend = 'threading' if sys.platform == 'darwin' \ else 'multiprocessing' res = Parallel( n_jobs=params.nproc, pre_dispatch=params.nproc, backend=params.joblib_backend, verbose=verbose_level_parallel )( delayed(get_trained_mapper) (ds, self.commonspace, mapper, self.ca['residual_errors'].enabled) for ds, mapper in zip(datasets, mappers) ) mappers = [m for m, r in res] if self.ca['residual_errors'].enabled: residuals = [r for m, r in res] if self.ca['residual_errors'].enabled: self.ca.residual_errors = Dataset(samples=np.array(residuals)[None, :]) return mappers def _map_and_mean(self, datasets, mappers): params = self.params data_mapped = [[] for ds in datasets] for i, (m, ds_new) in enumerate(zip(mappers, datasets)): if __debug__: debug('HPAL_', "Mapping training data for SVD: ds #%i" % i) ds_ = m.forward(ds_new.samples) # XXX should we zscore data before averaging and running SVD? # zscore(ds_, chunks_attr=None) data_mapped[i] = ds_ dss_mean = params.combiner2(data_mapped) return dss_mean def get_trained_mapper(ds, commonspace, mapper, compute_residual=False): """ Trains a given mapper using dataset and commonspace and computes residuals if necessary. Parameters ---------- ds: dataset A dataset commonspace: ndarray Commonspace data. mapper: Mapper Typically ProcrusteanMapper. compute_residual: bool Whether to compute residuals or not. Default is False and returns None. """ # retrain mapper on final common space ds.sa[mapper.get_space()] = commonspace mapper.train(ds) # remove common space attribute again to save on memory del ds.sa[mapper.get_space()] residual = None if compute_residual: # obtain final projection data_mapped = mapper.forward(ds.samples) residual = np.linalg.norm(data_mapped - commonspace) return mapper, residual pymvpa2-2.6.4/mvpa2/algorithms/searchlight_hyperalignment.py000066400000000000000000000774241323370031300243050ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Searchlight-based hyperalignment""" import os import numpy as np from tempfile import mktemp from numpy.linalg import LinAlgError import mvpa2 from mvpa2.base.state import ClassWithCollections from mvpa2.base.param import Parameter from mvpa2.base.constraints import * from mvpa2.algorithms.hyperalignment import Hyperalignment from mvpa2.mappers.staticprojection import StaticProjectionMapper from mvpa2.misc.neighborhood import IndexQueryEngine, Sphere from mvpa2.base.progress import ProgressBar from mvpa2.base import externals, warning from mvpa2.support import copy from mvpa2.featsel.helpers import FixedNElementTailSelector from mvpa2.base.types import is_datasetlike from mvpa2.misc.surfing.queryengine import SurfaceVerticesQueryEngine if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load if externals.exists('scipy'): from scipy.sparse import coo_matrix, csc_matrix from mvpa2.support.due import due, Doi # A little debug helper to avoid constant if __debug__ conditioning, # but it also means that debugging could not be activated at run time # after the import of this module def _shpaldebug(*args): pass if __debug__: from mvpa2.base import debug if 'SHPAL' in debug.active: def _shpaldebug(msg): debug('SHPAL', "%s" % msg) @due.dcite( Doi('10.1016/j.neuron.2011.08.026'), description="Per-feature measure of maximal correlation to features in other datasets", tags=["implementation"]) def compute_feature_scores(datasets, exclude_from_model=None): """ Takes a list of datasets and computes a magical feature score for each feature in each dataset :ref:`Haxby et al., Neuron (2011) ` Parameters ---------- datasets : list or tuple of datasets exclude_from_model: list of dataset indices that won't participate in voxel selection of others Returns ------- list : a list of feature scores; higher the score, better the feature NOTE: This function assumes that the datasets are zscored """ if exclude_from_model is None: exclude_from_model = [] feature_scores = [np.zeros(sd.nfeatures) for sd in datasets] for i, sd in enumerate(datasets): for j, sd2 in enumerate(datasets[i + 1:]): corr_temp = np.dot(sd.samples.T, sd2.samples) if j + i + 1 not in exclude_from_model: feature_scores[i] += np.max(corr_temp, axis=1) if i not in exclude_from_model: feature_scores[j + i + 1] += np.max(corr_temp, axis=0) return feature_scores class FeatureSelectionHyperalignment(ClassWithCollections): """A helper which brings feature selection and hyperalignment in a single call It was created to facilitate its usage in any searchlight or ROI, where hyperalignment is trained and called on the same list of datasets. But unlike Hyperalignment, it doesn't need to be separately trained. Called with a list of datasets, it returns a list of Mappers, one per each dataset, similarly to how Hyperalignment does. """ def __init__(self, ref_ds=0, hyperalignment=Hyperalignment(ref_ds=0), featsel=1.0, full_matrix=True, use_same_features=False, exclude_from_model=None, dtype='float32', **kwargs): """ For description of parameters see :class:`SearchlightHyperalignment` """ super(FeatureSelectionHyperalignment, self).__init__(**kwargs) self.ref_ds = ref_ds self.hyperalignment = hyperalignment self.featsel = featsel self.use_same_features = use_same_features self.exclude_from_model = exclude_from_model if self.exclude_from_model is None: self.exclude_from_model = [] self.full_matrix = full_matrix self.dtype = dtype def __call__(self, datasets): ref_ds = self.ref_ds nsamples, nfeatures = datasets[ref_ds].shape if 'roi_seed' in datasets[ref_ds].fa and np.any(datasets[ref_ds].fa['roi_seed']): seed_index = np.where(datasets[ref_ds].fa.roi_seed) else: if not self.full_matrix: raise ValueError( "Setting full_matrix=False requires roi_seed `fa` in the " "reference dataset indicating center feature and some " "feature(s) being marked as `roi_seed`.") seed_index = None # Voxel selection within Searchlight # Usual metric of between-subject between-voxel correspondence # Making sure ref_ds has most features, if not force feature selection on others nfeatures_all = [sd.nfeatures for sd in datasets] bigger_ds_idxs = [i for i, sd in enumerate(datasets) if sd.nfeatures > nfeatures] if self.featsel != 1.0: # computing feature scores from the data feature_scores = compute_feature_scores(datasets, self.exclude_from_model) nfeatures_sel = nfeatures # default if self.featsel < 1.0 and int(self.featsel * nfeatures) > 0: nfeatures_sel = int(self.featsel * nfeatures) if self.featsel > 1.0: nfeatures_sel = min(nfeatures, self.featsel) fselector = FixedNElementTailSelector(nfeatures_sel, tail='upper', mode='select', sort=False) # XXX Artificially make the seed_index feature score high to keep it(?) if self.use_same_features: if len(self.exclude_from_model): feature_scores = [feature_scores[ifs] for ifs in range(len(datasets)) if ifs not in self.exclude_from_model] feature_scores = np.mean(np.asarray(feature_scores), axis=0) if seed_index is not None: feature_scores[seed_index] = max(feature_scores) features_selected = fselector(feature_scores) datasets = [sd[:, features_selected] for sd in datasets] else: features_selected = [] for fs in feature_scores: if seed_index is not None: fs[seed_index] = max(fs) features_selected.append(fselector(fs)) datasets = [sd[:, fsel] for fsel, sd in zip(features_selected, datasets)] elif bigger_ds_idxs: # compute feature scores and select for bigger datasets feature_scores = compute_feature_scores(datasets, self.exclude_from_model) feature_scores = [feature_scores[isub] for isub in bigger_ds_idxs] fselector = FixedNElementTailSelector(nfeatures, tail='upper', mode='select', sort=False) features_selected = [fselector(fs) for fs in feature_scores] for selected_features, isub in zip(features_selected, bigger_ds_idxs): datasets[isub] = datasets[isub][:, selected_features] # Try hyperalignment try: # it is crucial to retrain hyperalignment, otherwise it would simply # project into the common space of a previous iteration if len(self.exclude_from_model) == 0: self.hyperalignment.train(datasets) else: self.hyperalignment.train([datasets[i] for i in range(len(datasets)) if i not in self.exclude_from_model]) mappers = self.hyperalignment(datasets) if mappers[0].proj.dtype is self.dtype: mappers = [m.proj for m in mappers] else: mappers = [m.proj.astype(self.dtype) for m in mappers] if self.featsel != 1.0: # Reshape the projection matrix from selected to all features mappers_full = [np.zeros((nfeatures_all[im], nfeatures_all[ref_ds])) for im in range(len(mappers))] if self.use_same_features: for mf, m in zip(mappers_full, mappers): mf[np.ix_(features_selected, features_selected)] = m else: for mf, m, fsel in zip(mappers_full, mappers, features_selected): mf[np.ix_(fsel, features_selected[ref_ds])] = m mappers = mappers_full elif bigger_ds_idxs: for selected_features, isub in zip(features_selected, bigger_ds_idxs): mapper_full = np.zeros((nfeatures_all[isub], nfeatures_all[ref_ds])) mapper_full[np.ix_(selected_features, range(nfeatures))] = mappers[isub] mappers[isub] = mapper_full except LinAlgError: print "SVD didn't converge. Try with a new reference, may be." mappers = [np.eye(nfeatures, dtype='int')] * len(datasets) # Extract only the row/column corresponding to the center voxel if full_matrix is False if not self.full_matrix: mappers = [np.squeeze(m[:, seed_index]) for m in mappers] return mappers class SearchlightHyperalignment(ClassWithCollections): """ Given a list of datasets, provide a list of mappers into common space using searchlight based hyperalignment. :ref:`Guntupalli et al., Cerebral Cortex (2016)` 1) Input datasets should all be of the same size in terms of nsamples and nfeatures, and be coarsely aligned (using anatomy). 2) All features in all datasets should be zscored. 3) Datasets should have feature attribute `voxel_indices` containing spatial coordinates of all features """ # TODO: add {training_,}residual_errors .ca ? ## Parameters common with Hyperalignment but overriden ref_ds = Parameter(0, constraints=EnsureInt() & EnsureRange(min=0), doc="""Index of a dataset to use as a reference. First dataset is used as default. If you supply exclude_from_model list, you should supply the ref_ds index as index before you remove those excluded datasets. Note that unlike regular Hyperalignment, there is no automagic choosing of the "best" ref_ds by default.""") ## Parameters specific to SearchlightHyperalignment queryengine = Parameter( None, doc="""A single (or a list of query engines, one per each dataset) to be used. If not provided, volumetric searchlight, with spherical neighborhood as instructed by radius parameter will be used.""") radius = Parameter( 3, constraints=EnsureInt() & EnsureRange(min=1), doc="""Radius of a searchlight sphere in number of voxels to be used if no `queryengine` argument was provided.""") nproc = Parameter( 1, constraints=EnsureInt() & EnsureRange(min=1) | EnsureNone(), doc="""Number of cores to use.""") nblocks = Parameter( None, constraints=EnsureInt() & EnsureRange(min=1) | EnsureNone(), doc="""Number of blocks to divide to process. Higher number results in smaller memory consumption.""") sparse_radius = Parameter( None, constraints=(EnsureRange(min=1) & EnsureInt() | EnsureNone()), doc="""Radius supplied to scatter_neighborhoods in units of voxels. This is effectively the distance between the centers where hyperalignment is performed in searchlights. ATM applicable only if no custom queryengine was provided. If None, hyperalignment is performed at every voxel (default).""") hyperalignment = Parameter( Hyperalignment(ref_ds=None), doc="""Hyperalignment instance to be used in each searchlight sphere. Default is just the Hyperalignment instance with default parameters. Its `ref_ds` parameter would be overridden by the `ref_ds` parameter of this SearchlightHyperalignment instance because we want to be consistent and only need one `ref_ds`.""") combine_neighbormappers = Parameter( True, constraints=EnsureBool(), doc="""This param determines whether to combine mappers for each voxel from its neighborhood searchlights or just use the mapper for which it is the center voxel. This will not be applicable for certain queryengines whose ids and neighborhoods are from different spaces, such as for SurfaceVerticesQueryEngine""") compute_recon = Parameter( True, constraints=EnsureBool(), doc="""This param determines whether to compute reverse mappers for each subject from common-space to subject space. These will be stored in the StaticProjectionMapper() and used when reverse() is called. Enabling it will double the size of the mappers returned.""") featsel = Parameter( 1.0, constraints=EnsureFloat() & EnsureRange(min=0.0, max=1.0) | EnsureInt() & EnsureRange(min=2), doc="""Determines if feature selection will be performed in each searchlight. 1.0: Use all features. < 1.0 is understood as selecting that proportion of features in each searchlight of ref_ds using feature scores; > 1.0 is understood as selecting at most that many features in each searchlight.""") # TODO: Should we get rid of this feature? use_same_features = Parameter( False, constraints=EnsureBool(), doc="""Select the same (best) features when doing feature selection for all datasets.""") exclude_from_model = Parameter( [], constraints=EnsureListOf(int), doc="""List of dataset indices that will not participate in building common model. These will still get mappers back but they don't influence the model or voxel selection.""") mask_node_ids = Parameter( None, constraints=EnsureListOf(int) | EnsureNone(), doc="""You can specify a mask to compute searchlight hyperalignment only within this mask. These would be a list of voxel indices.""") dtype = Parameter( 'float32', constraints='str', doc="""dtype of elements transformation matrices to save on memory for big datasets""") results_backend = Parameter( 'hdf5', constraints=EnsureChoice('hdf5', 'native'), doc="""'hdf5' or 'native'. See Searchlight documentation.""") tmp_prefix = Parameter( 'tmpsl', constraints='str', doc="""Prefix for temporary files. See Searchlight documentation.""") def __init__(self, **kwargs): _shpaldebug("Initializing.") ClassWithCollections.__init__(self, **kwargs) self.ndatasets = 0 self.nfeatures = 0 self.projections = None # This option makes the roi_seed in each SL to be selected during feature selection self.force_roi_seed = True if self.params.nproc is not None and self.params.nproc > 1 \ and not externals.exists('pprocess'): raise RuntimeError("The 'pprocess' module is required for " "multiprocess searchlights. Please either " "install python-pprocess, or reduce `nproc` " "to 1 (got nproc=%i) or set to default None" % self.params.nproc) if not externals.exists('scipy'): raise RuntimeError("The 'scipy' module is required for " "searchlight hyperalignment.") if self.params.results_backend == 'native': raise NotImplementedError("'native' mode to handle results is still a " "work in progress.") #warning("results_backend is set to 'native'. This has been known" # "to result in longer run time when working with big datasets.") if self.params.results_backend == 'hdf5' and \ not externals.exists('h5py'): raise RuntimeError("The 'hdf5' module is required for " "when results_backend is set to 'hdf5'") def _proc_block(self, block, datasets, featselhyper, queryengines, seed=None, iblock='main'): if seed is not None: mvpa2.seed(seed) if __debug__: debug('SLC', 'Starting computing block for %i elements' % len(block)) bar = ProgressBar() projections = [csc_matrix((self.nfeatures, self.nfeatures), dtype=self.params.dtype) for isub in range(self.ndatasets)] for i, node_id in enumerate(block): # retrieve the feature ids of all features in the ROI from the query # engine # Find the neighborhood for that selected nearest node roi_feature_ids_all = [qe[node_id] for qe in queryengines] # handling queryengines that return AttrDatasets for isub in range(len(roi_feature_ids_all)): if is_datasetlike(roi_feature_ids_all[isub]): # making sure queryengine returned proper shaped output assert(roi_feature_ids_all[isub].nsamples == 1) roi_feature_ids_all[isub] = roi_feature_ids_all[isub].samples[0, :].tolist() if len(roi_feature_ids_all) == 1: # just one was provided to be "broadcasted" roi_feature_ids_all *= len(datasets) # if qe returns zero-sized ROI for any subject, pass... if any(len(x)==0 for x in roi_feature_ids_all): continue # selecting neighborhood for all subject for hyperalignment ds_temp = [sd[:, ids] for sd, ids in zip(datasets, roi_feature_ids_all)] if self.force_roi_seed: roi_seed = np.array(roi_feature_ids_all[self.params.ref_ds]) == node_id ds_temp[self.params.ref_ds].fa['roi_seed'] = roi_seed if __debug__: msg = 'ROI (%i/%i), %i features' % (i + 1, len(block), ds_temp[self.params.ref_ds].nfeatures) debug('SLC', bar(float(i + 1) / len(block), msg), cr=True) hmappers = featselhyper(ds_temp) assert(len(hmappers) == len(datasets)) roi_feature_ids_ref_ds = roi_feature_ids_all[self.params.ref_ds] for isub, roi_feature_ids in enumerate(roi_feature_ids_all): if not self.params.combine_neighbormappers: I = roi_feature_ids #J = [roi_feature_ids[node_id]] * len(roi_feature_ids) J = [node_id] * len(roi_feature_ids) V = hmappers[isub].tolist() if np.isscalar(V): V = [V] else: I, J, V = [], [], [] for f2, roi_feature_id_ref_ds in enumerate(roi_feature_ids_ref_ds): I += roi_feature_ids J += [roi_feature_id_ref_ds] * len(roi_feature_ids) V += hmappers[isub][:, f2].tolist() proj = coo_matrix( (V, (I, J)), shape=(max(self.nfeatures, max(I) + 1), max(self.nfeatures, max(J) + 1)), dtype=self.params.dtype) proj = proj.tocsc() # Cleaning up the current subject's projections to free up memory hmappers[isub] = [[] for _ in hmappers] projections[isub] = projections[isub] + proj if self.params.results_backend == 'native': return projections elif self.params.results_backend == 'hdf5': # store results in a temporary file and return a filename results_file = mktemp(prefix=self.params.tmp_prefix, suffix='-%s.hdf5' % iblock) if __debug__: debug('SLC', "Storing results into %s" % results_file) h5save(results_file, projections) if __debug__: debug('SLC_', "Results stored") return results_file else: raise RuntimeError("Must not reach this point") def __handle_results(self, results): if self.params.results_backend == 'hdf5': # 'results' must be just a filename assert(isinstance(results, str)) if __debug__: debug('SLC', "Loading results from %s" % results) results_data = h5load(results) os.unlink(results) if __debug__: debug('SLC_', "Loaded results of len=%d from" % len(results_data)) for isub, res in enumerate(results_data): self.projections[isub] = self.projections[isub] + res if __debug__: debug('SLC_', "Finished adding results") return def __handle_all_results(self, results): """Helper generator to decorate passing the results out to results_fx """ for r in results: yield self.__handle_results(r) @due.dcite( Doi('10.1093/cercor/bhw068'), description="Full cortex hyperalignment of data to a common space", tags=["implementation"]) def __call__(self, datasets): """Estimate mappers for each dataset using searchlight-based hyperalignment. Parameters ---------- datasets : list or tuple of datasets Returns ------- A list of trained StaticProjectionMappers of the same length as datasets """ # Perform some checks first before modifying internal state params = self.params ndatasets = len(datasets) if len(datasets) <= 1: raise ValueError("SearchlightHyperalignment needs > 1 dataset to " "operate on. Got: %d" % self.ndatasets) if params.ref_ds in params.exclude_from_model: raise ValueError("Requested reference dataset %i is also " "in the exclude list." % params.ref_ds) if params.ref_ds >= ndatasets: raise ValueError("Requested reference dataset %i is out of " "bounds. We have only %i datasets provided" % (params.ref_ds, self.ndatasets)) # The rest of the checks are just warnings self.ndatasets = ndatasets _shpaldebug("SearchlightHyperalignment %s for %i datasets" % (self, self.ndatasets)) selected = [_ for _ in range(ndatasets) if _ not in params.exclude_from_model] ref_ds_train = selected.index(params.ref_ds) params.hyperalignment.params.ref_ds = ref_ds_train warning('Using %dth dataset as the reference dataset (%dth after ' 'excluding datasets)' % (params.ref_ds, ref_ds_train)) if len(params.exclude_from_model) > 0: warning("These datasets will not participate in building common " "model: %s" % params.exclude_from_model) if __debug__: # verify that datasets were zscored prior the alignment since it is # assumed/required preprocessing step for ids, ds in enumerate(datasets): for f, fname, tval in ((np.mean, 'means', 0), (np.std, 'stds', 1)): vals = f(ds, axis=0) vals_comp = np.abs(vals - tval) > 1e-5 if np.any(vals_comp): warning('%d %s are too different (max diff=%g) from %d in ' 'dataset %d to come from a zscored dataset. ' 'Please zscore datasets first for correct operation ' '(unless if was intentional)' % (np.sum(vals_comp), fname, np.max(np.abs(vals)), tval, ids)) # Setting up SearchlightHyperalignment # we need to know which original features where comprising the # individual SL ROIs _shpaldebug('Initializing FeatureSelectionHyperalignment.') hmeasure = FeatureSelectionHyperalignment( ref_ds=params.ref_ds, featsel=params.featsel, hyperalignment=params.hyperalignment, full_matrix=params.combine_neighbormappers, use_same_features=params.use_same_features, exclude_from_model=params.exclude_from_model, dtype=params.dtype) # Performing SL processing manually _shpaldebug("Setting up for searchlights") if params.nproc is None and externals.exists('pprocess'): import pprocess try: params.nproc = pprocess.get_number_of_cores() or 1 except AttributeError: warning("pprocess version %s has no API to figure out maximal " "number of cores. Using 1" % externals.versions['pprocess']) params.nproc = 1 # XXX I think this class should already accept a single dataset only. # It should have a ``space`` setting that names a sample attribute that # can be used to identify individual/original datasets. # Taking a single dataset as argument would be cleaner, because the # algorithm relies on the assumption that there is a coarse feature # alignment, i.e. the SL ROIs cover roughly the same area queryengines = self._get_trained_queryengines( datasets, params.queryengine, params.radius, params.ref_ds) # For surface nodes to voxels queryengines, roi_seed hardly makes sense qe = queryengines[(0 if len(queryengines) == 1 else params.ref_ds)] if isinstance(qe, SurfaceVerticesQueryEngine): self.force_roi_seed = False if not self.params.combine_neighbormappers: raise NotImplementedError("Mapping from voxels to surface nodes is not " "implmented yet. Try setting combine_neighbormappers to True.") self.nfeatures = datasets[params.ref_ds].nfeatures _shpaldebug("Performing Hyperalignment in searchlights") # Setting up centers for running SL Hyperalignment if params.sparse_radius is None: roi_ids = self._get_verified_ids(queryengines) \ if params.mask_node_ids is None \ else params.mask_node_ids else: if params.queryengine is not None: raise NotImplementedError( "using sparse_radius whenever custom queryengine is " "provided is not yet supported.") _shpaldebug("Setting up sparse neighborhood") from mvpa2.misc.neighborhood import scatter_neighborhoods if params.mask_node_ids is None: scoords, sidx = scatter_neighborhoods( Sphere(params.sparse_radius), datasets[params.ref_ds].fa.voxel_indices, deterministic=True) roi_ids = sidx else: scoords, sidx = scatter_neighborhoods( Sphere(params.sparse_radius), datasets[params.ref_ds].fa.voxel_indices[params.mask_node_ids], deterministic=True) roi_ids = [params.mask_node_ids[sid] for sid in sidx] # Initialize projections _shpaldebug('Initializing projection matrices') self.projections = [ csc_matrix((self.nfeatures, self.nfeatures), dtype=params.dtype) for isub in range(self.ndatasets)] # compute if params.nproc is not None and params.nproc > 1: # split all target ROIs centers into `nproc` equally sized blocks nproc_needed = min(len(roi_ids), params.nproc) params.nblocks = nproc_needed \ if params.nblocks is None else params.nblocks params.nblocks = min(len(roi_ids), params.nblocks) node_blocks = np.array_split(roi_ids, params.nblocks) # the next block sets up the infrastructure for parallel computing # this can easily be changed into a ParallelPython loop, if we # decide to have a PP job server in PyMVPA import pprocess p_results = pprocess.Map(limit=nproc_needed) if __debug__: debug('SLC', "Starting off %s child processes for nblocks=%i" % (nproc_needed, params.nblocks)) compute = p_results.manage( pprocess.MakeParallel(self._proc_block)) seed = mvpa2.get_random_seed() for iblock, block in enumerate(node_blocks): # should we maybe deepcopy the measure to have a unique and # independent one per process? compute(block, datasets, copy.copy(hmeasure), queryengines, seed=seed, iblock=iblock) else: # otherwise collect the results in an 1-item list _shpaldebug('Using 1 process to compute mappers.') if params.nblocks is None: params.nblocks = 1 params.nblocks = min(len(roi_ids), params.nblocks) node_blocks = np.array_split(roi_ids, params.nblocks) p_results = [self._proc_block(block, datasets, hmeasure, queryengines) for block in node_blocks] results_ds = self.__handle_all_results(p_results) # Dummy iterator for, you know, iteration list(results_ds) _shpaldebug('Wrapping projection matrices into StaticProjectionMappers') self.projections = [ StaticProjectionMapper(proj=proj, recon=proj.T) if params.compute_recon else StaticProjectionMapper(proj=proj) for proj in self.projections] return self.projections def _get_verified_ids(self, queryengines): """Helper to return ids of queryengines, verifying that they are the same""" qe0 = queryengines[0] roi_ids = qe0.ids for qe in queryengines: if qe is not qe0: # if a different query engine (so wasn't just replicated) if np.any(qe.ids != qe0.ids): raise RuntimeError( "Query engine %s provided different ids than %s. Not supported" % (qe0, qe)) return roi_ids def _get_trained_queryengines(self, datasets, queryengine, radius, ref_ds): """Helper to return trained query engine(s), either list of one or one per each dataset if queryengine is None then IndexQueryEngine based on radius is created """ ndatasets = len(datasets) if queryengine: if isinstance(queryengine, (list, tuple)): queryengines = queryengine if len(queryengines) != ndatasets: raise ValueError( "%d query engines were specified although %d datasets " "provided" % (len(queryengines), ndatasets)) _shpaldebug("Training provided query engines") for qe, ds in zip(queryengines, datasets): qe.train(ds) else: queryengine.train(datasets[ref_ds]) queryengines = [queryengine] else: _shpaldebug('No custom query engines were provided. Setting up the ' 'volumetric query engine on voxel_indices.') queryengine = IndexQueryEngine(voxel_indices=Sphere(radius)) queryengine.train(datasets[ref_ds]) queryengines = [queryengine] return queryengines pymvpa2-2.6.4/mvpa2/atlases/000077500000000000000000000000001323370031300155755ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/atlases/__init__.py000066400000000000000000000023771323370031300177170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for PyMVPA anatomical atlases Module Organization =================== mvpa2.atlases module contains support for various atlases :group Base Implementations: base :group Atlases from FSL: fsl :group Helpers: warehouse transformation """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.atlases') from mvpa2.base import externals # to pacify the nose # (see e.g. http://nipy.bic.berkeley.edu/builders/pymvpa-py2.7-osx-10.8/builds/4/steps/shell_3/logs/stdio) # import submodules only if lxml they need is available if externals.exists('lxml'): from mvpa2.atlases.base import LabelsAtlas, ReferencesAtlas, XMLAtlasException from mvpa2.atlases.fsl import FSLProbabilisticAtlas from mvpa2.atlases.warehouse import Atlas, KNOWN_ATLASES, KNOWN_ATLAS_FAMILIES if __debug__: debug('INIT', 'mvpa2.atlases end') pymvpa2-2.6.4/mvpa2/atlases/base.py000066400000000000000000000712241323370031300170670ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Base classes for Anatomy atlases support TODOs: ====== * major optimization. Now code is sloppy and slow -- plenty of checks etc Module Organization =================== mvpa2.atlases.base module contains support for various atlases :group Base: BaseAtlas XMLBasedAtlas Label Level LabelsLevel :group Talairach: PyMVPAAtlas LabelsAtlas ReferencesAtlas :group Exceptions: XMLAtlasException """ import os.path as osp from mvpa2.base import externals if externals.exists('lxml', raise_=True, exception=ImportError): from lxml import etree, objectify from mvpa2.base.dochelpers import enhanced_doc_string import re import numpy as np from numpy.linalg import norm from mvpa2.atlases.transformation import SpaceTransformation, Linear from mvpa2.misc.support import reuse_absolute_path if externals.exists('nibabel', raise_=True): import nibabel as nb from mvpa2.base import warning if __debug__: from mvpa2.base import debug def check_range(coord, range): """Check if coordinates are within range (0,0,0) - (range) Returns ------- bool Success status """ # TODO: optimize if len(coord) != len(range): raise ValueError("Provided coordinate %r and given range %r" % \ (coord, range) + \ " have different dimensionality" ) for c, r in zip(coord, range): if c < 0 or c >= r: return False return True # # Base classes # class XMLAtlasException(Exception): """Exception to be thrown if smth goes wrong dealing with XML based atlas """ pass class BaseAtlas(object): """Base class for the atlases. """ pass class XMLBasedAtlas(BaseAtlas): """Base class for atlases using XML as the definition backend """ def __init__(self, filename=None, resolution=None, image_file=None, coordT=None, default_levels=None, load_maps=True): """ Parameters ---------- filename : str Filename for the xml definition of the atlas resolution : None or float Some atlases link to multiple images at different resolutions. if None -- best resolution is selected using 0th dimension resolution image_file : None or str If None, overrides filename for the used imagefile, so it could load a custom (re-registered) atlas maps coordT Optional transformation to apply first default_levels : None or slice or list of int What levels by default to operate on load_maps : bool Load spatial maps for the atlas. """ BaseAtlas.__init__(self) self.__atlas = None self._image_file = None self._filename = filename # TODO: think about more generalizable way? self._resolution = resolution self._force_image_file = image_file self.default_levels = default_levels if filename: self.load_atlas(filename) # common sanity checks if not self._check_version(self.version): raise IOError( "Version %s is not recognized to be native to class %s" % \ (self.version, self.__name__)) if not set(['header', 'data']) \ == set([i.tag for i in self.getchildren()]): raise IOError("No header or data were defined in %s" % filename) header = self.header headerChildrenTags = XMLBasedAtlas._children_tags(header) if not ('images' in headerChildrenTags) or \ not ('imagefile' in XMLBasedAtlas._children_tags(header.images)): raise XMLAtlasException( "Atlas requires image/imagefile header fields") # Load and post-process images self._image = None if load_maps: self._load_images() if self._image is not None: # Get extent and voxel dimensions, limiting to 3D self._extent = np.abs(np.asanyarray(self._image.shape[:3])) self._voxdim = np.asanyarray(self._image.header.get_zooms()[:3]) self.relativeToOrigin = True # Assign transformation to get into voxel coordinates, # spaceT will be set accordingly self.set_coordT(coordT) self._load_metadata() def _check_range(self, c): """ check and adjust the voxel coordinates""" # check range if __debug__: debug('ATL__', "Querying for voxel %r" % (c,)) if not check_range(c, self.extent): warning("Coordinates %r are not within the extent %r." \ " Reseting to (0,0,0)" % (c, self.extent)) # assume that voxel [0,0,0] is blank, i.e. carries # no labels which could possibly result in evil outcome c = [0]*3 return c @staticmethod def _check_version(version): """To be overriden in the derived classes. By default anything is good""" return True def _load_images(self): """To be overriden in the derived classes. By default does nothing""" pass def _load_metadata(self): """To be overriden in the derived classes. By default does nothing""" pass def load_atlas(self, filename): """Load atlas from a file """ if __debug__: debug('ATL_', "Loading atlas definition xml file " + filename) # Create objectify parser first parser = etree.XMLParser(remove_blank_text=True) lookup = objectify.ObjectifyElementClassLookup() parser.setElementClassLookup(lookup) try: self.__atlas = etree.parse(filename, parser).getroot() except IOError: raise XMLAtlasException("Failed to load XML file %s" % filename) @property def version(self): if self.__atlas is not None \ and ("version" in self.__atlas.attrib.keys()): return self.__atlas.get("version") else: return None @staticmethod def _children_tags(root): """Little helper to return tags for the children of the node """ return [i.tag for i in root.getchildren()] def __getattr__(self, attr): """ Lazy way to provide access to the definitions in the atlas """ if self.__atlas is not None: return getattr(self.__atlas, attr) else: raise XMLAtlasException( "Atlas in " + self.__name__ + " was not read yet") def set_coordT(self, coordT): """Set coordT transformation. spaceT needs to be adjusted since we glob those two transformations together """ self._coordT = coordT # lets store for debugging etc if self._image is not None: # Combine with the image's qform coordT = Linear(np.linalg.inv(self._image.header.get_qform()), previous=coordT) self._spaceT = SpaceTransformation( previous=coordT, to_real_space=False) ##REF: Name was automagically refactored def label_point(self, coord, levels=None): """Return labels for the given spatial point at specified levels Function takes care about first transforming the point into the voxel space Parameters ---------- coord : tuple Coordinates of the point (xyz) levels : None or list of int At what levels to return the results """ coord_ = np.asarray(coord) # or we would alter what should be constant #if not isinstance(coord, np.numpy): #c = self.getVolumeCoordinate(coord) #c = self.spaceT.to_voxel_space(coord_) #if self.coordT: # coord_t = self.coordT[coord_] #else: # coord_t = coord_ c = self.spaceT(coord_) result = self.label_voxel(c, levels) result['coord_queried'] = coord #result['coord_trans'] = coord_t result['voxel_atlas'] = c return result def levels_listing(self): lkeys = range(self.nlevels) return '\n'.join(['%d: ' % k + str(self._levels[k]) for k in lkeys]) def _get_selected_levels(self, levels=None): """Helper to provide list of levels to operate on Depends on given `levels` as well as self.default_levels """ if levels is None: levels = [ i for i in xrange(self.nlevels) ] elif (isinstance(levels, slice)): # levels are given as a range if levels.step: step = levels.step else: step = 1 if levels.start: start = levels.start else: start = 0 if levels.stop: stop = levels.stop else: stop = self.nlevels levels = [ i for i in xrange(start, stop, step) ] elif isinstance(levels, (list, tuple)): # levels given as list levels = list(levels) elif isinstance(levels, int): levels = [ levels ] else: raise TypeError('Given levels "%s" are of unsupported type' % `levels`) selected_levels = levels # test given values levels = self.levels for level in selected_levels: if not level in levels: raise ValueError, \ "Level %r is not known (out of range?). Known levels are:\n%s" \ % (level, self.levels_listing()) return selected_levels def query(self, index, query_voxel=False): """Generic query method. Use shortcuts `__getitem__` for querying by voxel indices and `__call__` for querying by space coordinates. Parameters ---------- index : tuple or list Arguments of the query, such as coordinates and optionally levels query_voxel : bool Either at the end query a voxel indexes or point coordinates Allows to access the elements via simple indexing. Examples:: print atlas[ 0, -7, 20, [1,2,3] ] print atlas[ (0, -7, 20), 1:2 ] print atlas[ (0, -7, 20) ] print atlas[ (0, -7, 20), : ] """ if len(index) in [2, 4]: levels_slice = index[-1] else: if self.default_levels is None: levels_slice = slice(None, None, None) else: levels_slice = self.default_levels levels = self._get_selected_levels(levels=levels_slice) if len(index) in [3, 4]: # we got coordinates 1 by 1 + may be a level coord = index[0:3] elif len(index) in [1, 2]: coord = index[0] if isinstance(coord, (list, tuple)): if len(coord) != 3: raise TypeError("Given coordinates must be in 3D") else: raise TypeError("Given coordinates must be a list or a tuple") else: raise TypeError("Unknown shape of parameters `%s`" % `index`) if query_voxel: return self.label_voxel(coord, levels) else: return self.label_point(coord, levels) # ## Shortcuts for `query` # def __getitem__(self, index): """Query atlas with voxel indexes Examples -------- :: print atlas[ 0, -7, 20, [1,2,3] ] print atlas[ (0, -7, 20), 1:2 ] print atlas[ (0, -7, 20) ] print atlas[ (0, -7, 20), : ] """ return self.query(index, True) def __call__(self, *args): return self.query(args, False) # REDO in some sane fashion so referenceatlas returns levels for the base def _get_levels(self): return self._get_levels_virtual() ##REF: Name was automagically refactored def _get_levels_virtual(self): return self._levels levels = property(fget=_get_levels) resolution = property(fget=lambda self:self._resolution) origin = property(fget=lambda self:self._origin) extent = property(fget=lambda self:self._extent) voxdim = property(fget=lambda self:self._voxdim) spaceT = property(fget=lambda self:self._spaceT) coordT = property(fget=lambda self:self._spaceT, fset=set_coordT) class Label(object): """Represents a label. Just to bring all relevant information together """ def __init__ (self, text, abbr=None, coord=(None, None, None), count=0, index=0): """ Parameters ---------- text : str Fullname of the label abbr : str, optional Abbreviated name. coord : tuple of float, optional Coordinates. count : int, optional Count of those labels in the atlas """ self.text = text.strip() if abbr is not None: abbr = abbr.strip() self.coord = coord self.count = count self.__abbr = abbr self.__index = int(index) @property def index(self): return self.__index def __repr__(self): return "Label(%r%s, coord=%r, count=%r, index=%r)" % \ (self.text, (', abbr=%s' % repr(self.__abbr), '')[int(self.__abbr is None)], self.coord, self.count, self.__index) def __str__(self): return self.text @staticmethod def from_xml(Elabel): """Create label from an XML node """ kwargs = {} if 'x' in Elabel.attrib: kwargs['coord'] = ( Elabel.attrib.get('x'), Elabel.attrib.get('y'), Elabel.attrib.get('z') ) for l in ('count', 'abbr', 'index'): if l in Elabel.attrib: kwargs[l] = Elabel.attrib.get(l) return Label(Elabel.text.strip(), **kwargs) @property def abbr(self): """Returns abbreviated version if such is available """ if self.__abbr in [None, ""]: return self.text else: return self.__abbr class Level(object): """Represents a level. Just to bring all relevant information together """ def __init__ (self, description): self.description = description self._type = "Base" def __repr__(self): return "%s Level: %s" % \ (self.level_type, self.description) def __str__(self): return self.description @staticmethod ##REF: Name was automagically refactored def from_xml(Elevel, level_type=None): """Simple factory of levels """ if level_type is None: if not 'type' in Elevel.attrib: raise XMLAtlasException("Level must have type specified. Level: " + `Elevel`) level_type = Elevel.get("type") levelTypes = { 'label': LabelsLevel, 'reference': ReferencesLevel } if level_type in levelTypes: return levelTypes[level_type].from_xml(Elevel) else: raise XMLAtlasException("Unknown level type " + level_type) level_type = property(lambda self: self._type) class LabelsLevel(Level): """Level of labels. XXX extend """ def __init__ (self, description, index=None, labels=None): if labels is None: labels = [] Level.__init__(self, description) self.__index = index self.__labels = labels self._type = "Labels" def __repr__(self): return Level.__repr__(self) + " [%d] " % \ (self.__index) @staticmethod ##REF: Name was automagically refactored def from_xml(Elevel, levelIndex=None): # XXX this is just for label type of level. For distance we need to ... # we need to assure the right indexing if levelIndex is None: levelIndex = [0] index = 0 if 'index' in Elevel.attrib: index = int(Elevel.get("index")) maxindex = max([int(i.get('index')) \ for i in Elevel.label[:]]) labels = [ None for i in xrange(maxindex+1) ] for label in Elevel.label[:]: labels[ int(label.get('index')) ] = Label.from_xml(label) levelIndex[0] = max(levelIndex[0], index) + 1 # assign next one return LabelsLevel(Elevel.get('description'), index, labels) @property def index(self): return self.__index @property def labels(self): return self.__labels def __getitem__(self, index): return self.__labels[index] def find(self, target, unique=True): """Return labels descr of which matches the string Parameters ---------- target : str or re._pattern_type Substring in abbreviation to be searched for, or compiled regular expression to be searched or matched if anchored. unique : bool, optional If True, raise exception if none or more than 1 was found. Return just a single item if found (not list). """ if isinstance(target, re._pattern_type): res = [l for l in self.__labels if target.search(l.abbr)] else: res = [l for l in self.__labels if target in l.abbr] if unique: if len(res) != 1: raise ValueError, "Got %d matches whenever just 1 was " \ "looked for (target was %s)." % (len(res), target) return res[0] else: return res class ReferencesLevel(Level): """Level which carries reference points """ def __init__ (self, description, indexes=None): if indexes is None: indexes = [] Level.__init__(self, description) self.__indexes = indexes self._type = "References" @staticmethod ##REF: Name was automagically refactored def from_xml(Elevel): # XXX should probably do the same for the others? requiredAttrs = ['x', 'y', 'z', 'type', 'description'] if not set(requiredAttrs) == set(Elevel.attrib.keys()): raise XMLAtlasException("ReferencesLevel has to have " + "following attributes defined " + `requiredAttrs`) indexes = tuple(int(Elevel.get(a)) for a in ('x', 'y', 'z')) return ReferencesLevel(Elevel.get('description'), indexes) @property def indexes(self): return self.__indexes class PyMVPAAtlas(XMLBasedAtlas): """Base class for PyMVPA atlases, such as LabelsAtlas and ReferenceAtlas """ source = 'PyMVPA' def __init__(self, *args, **kwargs): XMLBasedAtlas.__init__(self, *args, **kwargs) # sanity checks header = self.header headerChildrenTags = XMLBasedAtlas._children_tags(header) if not ('space' in headerChildrenTags) or \ not ('space-flavor' in headerChildrenTags): raise XMLAtlasException("PyMVPA Atlas requires specification of" + " the space in which atlas resides") self.__space = header.space.text self.__spaceFlavor = header['space-flavor'].text __doc__ = enhanced_doc_string('PyMVPAAtlas', locals(), XMLBasedAtlas) ##REF: Name was automagically refactored def _load_images(self): # shortcut imagefile = self.header.images.imagefile #self.nlevels = len(self._levels_by_id) # Set offset if defined in XML file # XXX: should just take one from the qoffset... now that one is # defined... this origin might be misleading actually self._origin = np.array( (0, 0, 0) ) if 'offset' in imagefile.attrib: self._origin = np.array( [int(x) for x in imagefile.get('offset').split(',')] ) # Load the image file which has labels if self._force_image_file is not None: imagefilename = self._force_image_file else: imagefilename = imagefile.text imagefilename = reuse_absolute_path(self._filename, imagefilename) try: self._image = None for ext in ['', '.nii.gz']: try: self._image = nb.load(imagefilename + ext) break except Exception, e: pass if self._image is None: raise e except RuntimeError, e: raise RuntimeError, \ " Cannot open file %s due to %s" % (imagefilename, e) self._data = self._image.get_data() # we get the data as x,y,z[,t] but we want to have the time axis first # if any if len(self._data.shape) == 4: self._data = np.rollaxis(self._data, -1) # remove bogus dimensions on top of 4th if len(self._data.shape[0:-4]) > 0: bogus_dims = self._data.shape[0:-4] if max(bogus_dims)>1: raise RuntimeError, "Atlas %s has more than 4 of non-singular" \ "dimensions" % imagefilename new_shape = self._data.shape[-4:] self._data.reshape(new_shape) #if self._image.extent[3] != self.nlevels: # raise XMLAtlasException("Atlas %s has %d levels defined whenever %s has %d volumes" % \ # ( filename, self.nlevels, imagefilename, self._image.extent[3] )) ##REF: Name was automagically refactored def _load_metadata(self): # Load levels self._levels = {} # preprocess labels for different levels self._Nlevels = 0 index_incr = 0 for index, child in enumerate(self.data.getchildren()): if child.tag == 'level': level = Level.from_xml(child) self._levels[level.description] = level if hasattr(level, 'index'): index = level.index else: # to avoid collision if some levels do # have indexes while index_incr in self._levels: index_incr += 1 index, index_incr = index_incr, index_incr+1 self._levels[index] = level else: raise XMLAtlasException( "Unknown child '%s' within data" % child.tag) self._Nlevels += 1 ##REF: Name was automagically refactored def _get_nlevels_virtual(self): return self._Nlevels ##REF: Name was automagically refactored def _get_nlevels(self): return self._get_nlevels_virtual() @staticmethod ##REF: Name was automagically refactored def _check_version(version): # For compatibility lets support "RUMBA" atlases return version.startswith("pymvpa-") or version.startswith("rumba-") space = property(fget=lambda self:self.__space) space_flavor = property(fget=lambda self:self.__spaceFlavor) nlevels = property(fget=_get_nlevels) class LabelsAtlas(PyMVPAAtlas): """ Atlas which provides labels for the given coordinate """ ##REF: Name was automagically refactored def label_voxel(self, c, levels=None): """ Return labels for the given voxel at specified levels specified by index """ levels = self._get_selected_levels(levels=levels) result = {'voxel_queried' : c} # check range c = self._check_range(c) resultLevels = [] for level in levels: if level in self._levels: level_ = self._levels[ level ] else: raise IndexError( "Unknown index or description for level %d" % level) resultIndex = int(self._data[ level_.index, \ c[0], c[1], c[2] ]) resultLevels += [ {'index': level_.index, 'id': level_.description, 'label' : level_[ resultIndex ]} ] result['labels'] = resultLevels return result __doc__ = enhanced_doc_string('LabelsAtlas', locals(), PyMVPAAtlas) class ReferencesAtlas(PyMVPAAtlas): """ Atlas which provides references to the other atlases. Example: the atlas which has references to the closest points (closest Gray, etc) in another atlas. """ def __init__(self, distance=0, reference_level=None, *args, **kwargs): """Initialize `ReferencesAtlas` """ PyMVPAAtlas.__init__(self, *args, **kwargs) # sanity checks if not ('reference-atlas' in XMLBasedAtlas._children_tags(self.header)): raise XMLAtlasException( "ReferencesAtlas must refer to a some other atlas") referenceAtlasName = self.header["reference-atlas"].text # uff -- another evil import but we better use the factory method from mvpa2.atlases.warehouse import Atlas self.__referenceAtlas = Atlas(filename=reuse_absolute_path( self._filename, referenceAtlasName)) if self.__referenceAtlas.space != self.space or \ self.__referenceAtlas.space_flavor != self.space_flavor: raise XMLAtlasException( "Reference and original atlases should be in the same space") self.__referenceLevel = None # pylint shut up if reference_level is not None: self.set_reference_level(reference_level) self.set_distance(distance) __doc__ = enhanced_doc_string('ReferencesAtlas', locals(), PyMVPAAtlas) # number of levels must be of the referenced atlas due to # handling of that in __getitem__ #nlevels = property(fget=lambda self:self.__referenceAtlas.nlevels) ##REF: Name was automagically refactored def _get_nlevels_virtual(self): return self.__referenceAtlas.nlevels ##REF: Name was automagically refactored def set_reference_level(self, level): """ Set the level which will be queried """ if level in self._levels: self.__referenceLevel = self._levels[level] else: raise IndexError, \ "Unknown reference level %r. " % level + \ "Known are %r" % (self._levels.keys(), ) ##REF: Name was automagically refactored def label_voxel(self, c, levels = None): if self.__referenceLevel is None: warning("You did not provide what level to use " "for reference. Assigning 0th level -- '%s'" % (self._levels[0],)) self.set_reference_level(0) # return self.__referenceAtlas.label_voxel(c, levels) c = self._check_range(c) # obtain coordinates of the closest voxel cref = self._data[ self.__referenceLevel.indexes, c[0], c[1], c[2] ] dist = norm( (cref - c) * self.voxdim ) if __debug__: debug('ATL__', "Closest referenced point for %r is " "%r at distance %3.2f" % (c, cref, dist)) if (self.distance - dist) >= 1e-3: # neglect everything smaller result = self.__referenceAtlas.label_voxel(cref, levels) result['voxel_referenced'] = c result['distance'] = dist else: result = self.__referenceAtlas.label_voxel(c, levels) if __debug__: debug('ATL__', "Closest referenced point is " "further than desired distance %.2f" % self.distance) result['voxel_referenced'] = None result['distance'] = 0 return result ##REF: Name was automagically refactored def levels_listing(self): return self.__referenceAtlas.levels_listing() ##REF: Name was automagically refactored def _get_levels_virtual(self): return self.__referenceAtlas.levels ##REF: Name was automagically refactored def set_distance(self, distance): """Set desired maximal distance for the reference """ if distance < 0: raise ValueError("Distance should not be negative. " " Thus '%f' is not a legal value" % distance) if __debug__: debug('ATL__', "Setting maximal distance for queries to be %d" % distance) self.__distance = distance distance = property(fget=lambda self:self.__distance, fset=set_distance) reference_level = property(fget=lambda self:self.__referenceLevel, fset=set_reference_level) pymvpa2-2.6.4/mvpa2/atlases/fsl.py000066400000000000000000000261711323370031300167420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """FSL atlases interfaces """ from mvpa2.base import externals if externals.exists('nibabel', raise_=True): import nibabel as nb import re import os.path import numpy as np from mvpa2.misc.support import reuse_absolute_path from mvpa2.base.dochelpers import enhanced_doc_string from mvpa2.atlases.base import XMLBasedAtlas, LabelsLevel if __debug__: from mvpa2.base import debug __all__ = [ "FSLAtlas", "FSLLabelsAtlas", "FSLProbabilisticAtlas" ] # # Atlases from FSL # class FSLAtlas(XMLBasedAtlas): """Base class for FSL atlases """ source = 'FSL' def __init__(self, *args, **kwargs): """ """ XMLBasedAtlas.__init__(self, *args, **kwargs) self.space = 'MNI' __doc__ = enhanced_doc_string('FSLAtlas', locals(), XMLBasedAtlas) ##REF: Name was automagically refactored def _load_images(self): resolution = self._resolution header = self.header images = header.images # Load present images # XXX might be refactored to avoid duplication of # effort with PyMVPAAtlas ni_image = None resolutions = [] if self._force_image_file is None: imagefile_candidates = [ reuse_absolute_path(self._filename, i.imagefile.text, force=True) for i in images] else: imagefile_candidates = [self._force_image_file] for imagefilename in imagefile_candidates: try: if not os.path.exists(imagefilename): # try with extension if filename doesn't exist imagefilename += '.nii.gz' ni_image_ = nb.load(imagefilename) except RuntimeError, e: raise RuntimeError, " Cannot open file " + imagefilename resolution_ = ni_image_.header.get_zooms()[0] if resolution is None: # select this one if the best if ni_image is None or \ resolution_ < ni_image.header.get_zooms()[0]: ni_image = ni_image_ self._image_file = imagefilename else: if resolution_ == resolution: ni_image = ni_image_ self._image_file = imagefilename break else: resolutions += [resolution_] # TODO: also make use of summaryimagefile may be? if ni_image is None: msg = "Could not find an appropriate atlas among %d atlases." \ % len(imagefile_candidates) if resolution is not None: msg += " Atlases had resolutions %s" % \ (resolutions,) raise RuntimeError, msg if __debug__: debug('ATL__', "Loading atlas data from %s" % self._image_file) self._image = ni_image self._resolution = ni_image.header.get_zooms()[0] self._origin = np.abs(ni_image.header.get_qform()[:3,3]) # XXX self._data = self._image.get_data() if len(self._data.shape) == 4: # want to have volume axis first self._data = np.rollaxis(self._data, -1) def _load_metadata(self): """ """ # Load levels self._levels = {} # preprocess labels for different levels self.nlevels = 1 #level = Level.from_xml(self.data, level_type='label') level = LabelsLevel.from_xml(self.data)#, level_type='label') level.description = self.header.name.text self._levels = {0: level} #for index, child in enumerate(self.data.getchildren()): # if child.tag == 'level': # level = Level.from_xml(child) # self._levels[level.description] = level # try: # self._levels[level.index] = level # except: # pass # else: # raise XMLAtlasException("Unknown child '%s' within data" % child.tag) # self.nlevels += 1 #pass @staticmethod ##REF: Name was automagically refactored def _check_version(version): return re.search('^[0-9]+\.[0-9]', version) is not None class FSLProbabilisticAtlas(FSLAtlas): """Probabilistic FSL atlases """ def __init__(self, thr=0.0, strategy='all', sort=True, *args, **kwargs): """ Parameters ---------- thr : float Value to threshold at strategy : str Possible values all - all entries above thr max - entry with maximal value sort : bool Either to sort entries for 'all' strategy according to probability """ FSLAtlas.__init__(self, *args, **kwargs) self.thr = thr self.strategy = strategy self.sort = sort __doc__ = enhanced_doc_string('FSLProbabilisticAtlas', locals(), FSLAtlas) ##REF: Name was automagically refactored def label_voxel(self, c, levels=None): """Return labels for the voxel Parameters ---------- c : tuple of coordinates (xyz) - levels : just for API consistency (heh heh). Must be 0 for FSL atlases """ if levels is not None and not (levels in [0, [0], (0,)]): raise ValueError, \ "I guess we don't support levels other than 0 in FSL atlas." \ " Got levels=%s" % (levels,) # check range c = self._check_range(c) # XXX think -- may be we should better assign each map to a # different level level = 0 resultLabels = [] for index, area in enumerate(self._levels[level]): prob = int(self._data[index, c[0], c[1], c[2]]) if prob > self.thr: resultLabels += [dict(index=index, #id= label=area.text, prob=prob)] if self.sort or self.strategy == 'max': resultLabels.sort(cmp=lambda x,y: cmp(x['prob'], y['prob']), reverse=True) if self.strategy == 'max': resultLabels = resultLabels[:1] elif self.strategy == 'all': pass else: raise ValueError, 'Unknown strategy %s' % self.strategy result = {'voxel_queried' : c, # in the list since we have only single level but # with multiple entries 'labels': [resultLabels]} return result def find(self, *args, **kwargs): """Just a shortcut to the only level. See :class:`~mvpa2.atlases.base.Level.find` for more info """ return self.levels[0].find(*args, **kwargs) def get_map(self, target, strategy='unique', axes_order='xyz'): """Return a probability map as an array Parameters ---------- target : int or str or re._pattern_type If int, map for given index is returned. Otherwise, .find is called with ``unique=True`` to find matching area strategy : str in ('unique', 'max') If 'unique', then if multiple areas match, exception would be raised. In case of 'max', each voxel would get maximal value of probabilities from all matching areas axes_order : str in ('xyz', 'zyx') In what order axes of the returned array should follow. """ if isinstance(target, int): res = self._data[target] # since we no longer support pynifti all is XYZ if axes_order == 'xyz': return res elif axes_order == 'zyx': return res.T else: raise ValueError, \ "Unknown axes_order=%r provided" % (axes_order,) else: lev = self.levels[0] # we have just 1 here if strategy == 'unique': return self.get_map(lev.find(target, unique=True).index, axes_order=axes_order) else: maps_dict = self.get_maps(target, axes_order=axes_order) maps = np.array(maps_dict.values()) return np.max(maps, axis=0) def get_maps(self, target, axes_order='xyz', key_attr=None, overlaps=None): """Return a dictionary of probability maps for the target Each key is a `Label` instance, and value is the probability map Parameters ---------- target : str or re._pattern_type .find is called with a target and unique=False to find all matches axes_order : str in ('xyz', 'zyx') In what order axes of the returned array should follow. key_attr : None or str What to use for the keys of the dictionary. If None, `Label` instance would be used as a key. If some attribute provided (e.g. 'text', 'abbr', 'index'), corresponding attribute of the `Label` instance would be taken as a key. overlaps : None or {'max'} How to treat overlaps in maps. If None, nothing is done and maps might have overlaps. If 'max', then maps would not overlap and competing maps will be resolved based on maximal value (e.g. if maps contain probabilities). """ lev = self.levels[0] # we have just 1 here if key_attr is None: key_gen = lambda x: x else: key_gen = lambda x: getattr(x, key_attr) res = [[key_gen(l), self.get_map(l.index, axes_order=axes_order)] for l in lev.find(target, unique=False)] if overlaps == 'max': # not efficient since it places all maps back into a single # ndarray... but well maps = np.array([x[1] for x in res]) maximums = np.argmax(maps, axis=0) overlaps = np.sum(maps != 0, axis=0)>1 # now lets go and infiltrate maps: # and do silly loop since we will reassign # the entries possibly for i in xrange(len(res)): n, m = res[i] loosers = np.logical_and(overlaps, ~(maximums == i)) if len(loosers): # copy and modify m_new = m.copy() m_new[loosers] = 0 res[i][1] = m_new elif overlaps is None: pass else: raise ValueError, \ "Incorrect value of overlaps argument %s" % overlaps return dict(res) class FSLLabelsAtlas(XMLBasedAtlas): """Not sure what this one was for""" def __init__(self, *args, **kwargs): """not implemented""" FSLAtlas.__init__(self, *args, **kwargs) raise NotImplementedError pymvpa2-2.6.4/mvpa2/atlases/transformation.py000066400000000000000000000234011323370031300212150ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Coordinate transformations""" import numpy as np if __debug__: from mvpa2.base import debug class TypeProxy: """ Simple class to convert from and then back to original type working with list, tuple, ndarray and having XXX Obsolete functionality ?? """ def __init__(self, value, toType=np.array): if isinstance(value, list): self.__type = list elif isinstance(value, tuple): self.__type = tuple elif isinstance(value, np.ndarray): self.__type = np.array else: raise IndexError("Not understood format of coordinates '%s' for the transformation" % `coord`) def __call__(self, value): return self.__type(value) # def __getitem__(self, value): return self.__type(value) class TransformationBase: """ Basic class to describe a transformation. Pretty much an interface """ def __init__(self, previous=None): self.previous = previous def __getitem__(self, icoord): """ Obtain coordinates, apply the transformation and spit out in the same format (list, tuple, numpy.array) """ # remember original type #speed origType = TypeProxy(coord) # just in case it is not an ndarray, and to provide a copy to manipulate with coord = np.array(icoord) # apply previous transformation if such defined if self.previous: # if __debug__: debug('ATL__', "Applying previous transformation on `%s`" % `coord`) coord = self.previous[coord] #speed if __debug__: debug('ATL__', "Applying main transformation on `%s`" % `coord`) # apply transformation coord_out = self.apply(coord) #speed if __debug__: debug('ATL__', "Applied and got `%s`" % `coord_out`) #speed return origType(coord_out) return coord_out def __call__(self, coord): return self[coord] def apply(self, coord): return coord class SpaceTransformation(TransformationBase): """ To perform transformation from Voxel into Real Space. Simple one -- would subtract the origin and multiply by voxelSize. if to_real_space is True then on call/getitem converts to RealSpace """ def __init__(self, voxelSize=None, origin=None, to_real_space=True, *args, **kwargs): TransformationBase.__init__(self, *args, **kwargs) if voxelSize is not None: self.voxelSize = np.asarray(voxelSize) else: self.voxelSize = 1 if origin is not None: self.origin = np.asarray(origin) else: self.origin = 0 if to_real_space: self.apply = self.to_real_space else: self.apply = self.to_voxel_space ##REF: Name was automagically refactored def to_real_space(self, coord): #speed if not self.origin is None: coord -= self.origin #speed if not self.voxelSize is None: coord *= self.voxelSize return coord ##REF: Name was automagically refactored def to_voxel_space(self, coord): #speed if not self.voxelSize is None: coord /= self.voxelSize #speed if not self.origin is None: coord += self.origin return map(lambda x:int(round(x)), coord) class Linear(TransformationBase): """ Simple linear transformation defined by a matrix """ def __init__(self, transf=np.eye(4), **kwargs): transf = np.asarray(transf) # assure that we have arrays not matrices prev = kwargs.get('previous', None) if prev is not None and isinstance(prev, Linear): if prev.N == transf.shape[0] -1: if __debug__: debug('ATL__', "Colliding 2 linear transformations into 1") transf = np.dot(transf, prev.M) # reassign previous transformation to the current one kwargs['previous'] = prev.previous TransformationBase.__init__(self, **kwargs) self.M = transf self.N = self.M.shape[0] - 1 def apply(self, coord): #speed if len(coord) != self.__N: #speed raise ValueError("Transformation operates on %dD coordinates" \ #speed % self.__N ) #speed if __debug__: debug('ATL__', "Applying linear coord transformation + %s" % self.__M) # Might better come up with a linear transformation coord_ = np.r_[coord, [1.0]] result = np.dot(self.M, coord_) return result[0:-1] class MNI2Tal_MatthewBrett(TransformationBase): """ Transformation to bring MNI coordinates into MNI space Apparently it is due to Matthew Brett http://imaging.mrc-cbu.cam.ac.uk/imaging/MniTalairach """ _UPPER = np.array([ [0.9900, 0, 0, 0 ], [0, 0.9688, 0.0460, 0 ], [0,-0.0485, 0.9189, 0 ], [0, 0, 0, 1.0000] ] ) _LOWER = np.array( [ [0.9900, 0, 0, 0 ], [0, 0.9688, 0.0420, 0 ], [0,-0.0485, 0.8390, 0 ], [0, 0, 0, 1.0000] ] ) def __init__(self, *args, **kwargs): TransformationBase.__init__(self, *args, **kwargs) self.__upper = Linear(self._UPPER) self.__lower = Linear(self._LOWER) def apply(self, coord): return {True: self.__upper, False: self.__lower}[coord[2]>=0][coord] class Tal2MNI_MatthewBrett(TransformationBase): """ Inverse of MNI2Tal_MatthewBrett """ def __init__(self, *args, **kwargs): TransformationBase.__init__(self, *args, **kwargs) self.__upper = Linear(np.linalg.inv(MNI2Tal_MatthewBrett._UPPER)) self.__lower = Linear(np.linalg.inv(MNI2Tal_MatthewBrett._LOWER)) def apply(self, coord): return {True: self.__upper, False: self.__lower}[coord[2]>=0][coord] def mni_to_tal_meyer_lindenberg98 (*args, **kwargs): """ Due to Andreas Meyer-Lindenberg Taken from http://imaging.mrc-cbu.cam.ac.uk/imaging/MniTalairach """ return Linear( np.array([ [ 0.88, 0, 0, -0.8], [ 0, 0.97, 0, -3.32], [ 0, 0.05, 0.88, -0.44], [ 0.00000, 0.00000, 0.00000, 1.00000] ]), *args, **kwargs ) def mni_to_tal_yohflirt (*args, **kwargs): """Transformations obtained using flirt from Talairach to Standard Transformations were obtained by registration of grey/white matter image from talairach atlas to FSL's standard volume. Following sequence of commands was used: fslroi /usr/share/rumba/atlases/data/talairach_atlas.nii.gz talairach_graywhite.nii.gz 3 1 flirt -in talairach_graywhite.nii.gz \ -ref /usr/apps/fsl.4.1/data/standard/MNI152_T1_1mm_brain.nii.gz \ -out talairach2mni.nii.gz -omat talairach2mni.mat \ -searchrx -20 20 -searchry -20 20 -searchrz -20 20 -coarsesearch 10 -finesearch 6 -v flirt -datatype float -in talairach_graywhite.nii.gz -init talairach2mni.mat \ -ref /usr/apps/fsl.4.1/data/standard/MNI152_T1_1mm_brain.nii.gz \ -out talairach2mni_fine1.nii.gz -omat talairach2mni_fine1.mat \ -searchrx -10 10 -searchry -10 10 -searchrz -10 10 -coarsesearch 5 -finesearch 1 -v convert_xfm -inverse -omat mni2talairach.mat talairach2mni_fine1.mat """ return Linear( t=np.array([ [ 1.00448, -0.00629625, 0.00741359, 0.70565, ], [ 0.0130797, 0.978238, 0.0731315, -3.8354, ], [ 0.000248407, -0.0374777, 0.838311, 18.6202, ], [ 0, 0, 0, 1, ], ]) , *args, **kwargs ) def tal_to_mni_yohflirt (*args, **kwargs): """See mni_to_tal_yohflirt doc """ return Linear( np.array([ [ 1.00452, 0.00441281, -0.011011, -0.943886], [ -0.0141149, 1.00867, -0.169177, 14.7016], [ 0.00250222, 0.0920984, 1.18656, -33.922], [ 0.00000, 0.00000, 0.00000, 1.00000] ]), *args, **kwargs ) def mni_to_tal_lancaster07_fsl (*args, **kwargs): return Linear( np.array([ [ 0.9464, 0.0034, -0.0026, -1.0680], [ -0.0083, 0.9479, -0.0580, -1.0239], [ 0.0053, 0.0617, 0.9010, 3.1883], [ 0.0000, 0.0000, 0.0000, 1.0000] ]), *args, **kwargs ) def tal_to_mni_lancaster07_fsl (*args, **kwargs): return Linear( np.array([ [ 1.056585, -0.003972, 0.002793, 1.115461], [ 0.008834, 1.050528, 0.067651, 0.869379], [-0.00682 , -0.071916, 1.105229, -3.60472 ], [ 0. , 0. , 0. , 1. ]]), *args, **kwargs ) def mni_to_tal_lancaster07pooled (*args, **kwargs): return Linear( np.array([ [ 0.93570, 0.00290, -0.00720, -1.04230], [ -0.00650, 0.93960, -0.07260, -1.39400], [ 0.01030, 0.07520, 0.89670, 3.64750], [ 0.00000, 0.00000, 0.00000, 1.00000] ]), *args, **kwargs ) def tal_to_mni_lancaster07pooled (*args, **kwargs): return Linear( np.array([ [ 1.06860, -0.00396, 0.00826, 1.07816], [ 0.00640, 1.05741, 0.08566, 1.16824], [ -0.01281, -0.08863, 1.10792, -4.17805], [ 0.00000, 0.00000, 0.00000, 1.00000] ]), *args, **kwargs ) if __name__ == '__main__': #t = Tal2Mni tl = tal_to_mni_lancaster07_fsl() tli = mni_to_tal_lancaster07_fsl() tml = mni_to_tal_meyer_lindenberg98() #print t[1,3,2] print tl[(1,3,2)] print tli[[1,3,2]] print tml[[1,3,2]] t = MNI2Tal_MatthewBrett()([10, 12, 14]) print t, Tal2MNI_MatthewBrett()(t) # print t[(1,3,2,2)] pymvpa2-2.6.4/mvpa2/atlases/warehouse.py000066400000000000000000000075761323370031300201700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Collection of the known atlases""" import os from mvpa2.base import warning from mvpa2.atlases.base import * from mvpa2.atlases.fsl import * __all__ = [ "KNOWN_ATLAS_FAMILIES", "KNOWN_ATLASES", "Atlas"] KNOWN_ATLAS_FAMILIES = { 'pymvpa': (["talairach", "talairach-dist"], r"/usr/share/rumba/atlases/data/%(name)s_atlas.xml"), 'fsl': (["HarvardOxford-Cortical", "HarvardOxford-Subcortical", "JHU-tracts", "Juelich", "MNI", "Thalamus"], r"/usr/share/fsl/data/atlases/%(name)s.xml") # XXX make use of FSLDIR } # map to go from the name to the path KNOWN_ATLASES = dict(reduce(lambda x,y:x+[(yy,y[1]) for yy in y[0]], KNOWN_ATLAS_FAMILIES.values(), [])) def Atlas(filename=None, name=None, *args, **kwargs): """A convinience factory for the atlases """ if filename is None: if name is None: raise ValueError, \ "Please provide either path or name of the atlas to be used" atlaspath = KNOWN_ATLASES[name] filename = atlaspath % ( {'name': name} ) if not os.path.exists(filename): raise IOError, \ "File %s for atlas %s was not found" % (filename, name) else: if name is not None: raise ValueError, "Provide only filename or name" try: # Just to guestimate what atlas that is tempAtlas = XMLBasedAtlas(filename=filename, load_maps=False) #, *args, **kwargs) version = tempAtlas.version atlas_source = None for cls in [PyMVPAAtlas, FSLAtlas]: if cls._check_version(version): atlas_source = cls.source break if atlas_source is None: if __debug__: debug('ATL_', "Unknown atlas " + filename) return tempAtlas atlasTypes = { 'PyMVPA': {"Label" : LabelsAtlas, "Reference": ReferencesAtlas}, 'FSL': {"Label" : FSLLabelsAtlas, "Probabalistic": FSLProbabilisticAtlas, "Probabilistic": FSLProbabilisticAtlas, } }[atlas_source] atlasType = tempAtlas.header.type.text if atlasType in atlasTypes: if __debug__: debug('ATL_', "Creating %s Atlas" % atlasType) return atlasTypes[atlasType](filename=filename, *args, **kwargs) #return ReferencesAtlas(filename) else: warning("Unknown %s type '%s' of atlas in %s." " Known are %s" % (atlas_source, atlasType, filename, atlasTypes.keys()), 2) return tempAtlas except XMLAtlasException, e: print "File %s is not a valid XML based atlas due to %s" \ % (filename, `e`) raise e if __name__ == '__main__': from mvpa2.base import verbose verbose.level = 10 for name in [ #'data/talairach_atlas.xml', '/usr/share/fsl/data/atlases/HarvardOxford-Cortical.xml', '/usr/share/fsl/data/atlases/HarvardOxford-Subcortical.xml' ]: atlas = Atlas(name) #print isinstance(atlas.atlas, objectify.ObjectifiedElement) #print atlas.header.images.imagefile.get('offset') #print atlas.label_voxel( (0, -7, 20) ) #print atlas[ 0, 0, 0 ] print atlas[ -63, -12, 22 ] #print atlas[ 0, -7, 20, [1,2,3] ] #print atlas[ (0, -7, 20), 1:2 ] #print atlas[ (0, -7, 20) ] #print atlas[ (0, -7, 20), : ] # print atlas.get_labels(0) pymvpa2-2.6.4/mvpa2/base/000077500000000000000000000000001323370031300150535ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/base/__init__.py000066400000000000000000000352321323370031300171710ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Plumbing layer for PyMVPA Module Organization =================== mvpa2.base module contains various modules which are used through out PyMVPA code, and are generic building blocks :group Basic: externals, config, verbosity, dochelpers """ __docformat__ = 'restructuredtext' import sys import os from mvpa2.base.config import ConfigManager from mvpa2.base.verbosity import LevelLogger, OnceLogger # # Setup verbose and debug outputs # class _SingletonType(type): """Simple singleton implementation adjusted from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/412551 """ def __init__(mcs, *args): type.__init__(mcs, *args) mcs._instances = {} def __call__(mcs, sid, instance, *args): if not sid in mcs._instances: mcs._instances[sid] = instance return mcs._instances[sid] class __Singleton: """To ensure single instance of a class instantiation (object) """ __metaclass__ = _SingletonType def __init__(self, *args): pass # Provided __call__ just to make silly pylint happy def __call__(self): raise NotImplementedError # # As the very first step: Setup configuration registry instance and # read all configuration settings from files and env variables # _cfgfile = os.environ.get('MVPACONFIG', None) if _cfgfile: # We have to provide a list _cfgfile = [_cfgfile] cfg = __Singleton('cfg', ConfigManager(_cfgfile)) verbose = __Singleton("verbose", LevelLogger( handlers=cfg.get('verbose', 'output', default='stdout').split(','))) # Not supported/explained/used by now since verbose(0, is to print errors #error = __Singleton("error", LevelLogger( # handlers=environ.get('MVPA_ERROR_OUTPUT', 'stderr').split(','))) # Levels for verbose # 0 -- nothing besides errors # 1 -- high level stuff -- top level operation or file operations # 2 -- cmdline handling # 3 -- # 4 -- computation/algorithm relevant thingies # Helper for errors printing def error(msg, critical=True): """Helper function to output errors in a consistent way. Parameters ---------- msg : string Actual error message (will be prefixed with ERROR:) critical : bool If critical error -- exit with """ verbose(0, "ERROR: " + msg) if critical: raise sys.exit(1) # Lets check if environment can tell us smth if cfg.has_option('general', 'verbose'): verbose.level = cfg.getint('general', 'verbose') class WarningLog(OnceLogger): """Logging class of messsages to be printed just once per each message """ def __init__(self, btlevels=10, btdefault=False, maxcount=1, *args, **kwargs): """Define Warning logger. It is defined by btlevels : int how many levels of backtrack to print to give a hint on WTF btdefault : bool if to print backtrace for all warnings at all maxcount : int how many times to print each warning """ OnceLogger.__init__(self, *args, **kwargs) self.__btlevels = btlevels self.__btdefault = btdefault self.__maxcount = maxcount self.__explanation_seen = False def __call__(self, msg, bt=None): import traceback if bt is None: bt = self.__btdefault tb = traceback.extract_stack(limit=2) msgid = repr(tb[-2]) # take parent as the source of ID fullmsg = "WARNING: %s" % msg if not self.__explanation_seen: self.__explanation_seen = True fullmsg += "\n * Please note: warnings are " + \ "printed only once, but underlying problem might " + \ "occur many times *" if bt and self.__btlevels > 0: fullmsg += "Top-most backtrace:\n" fullmsg += reduce( lambda x, y: x + "\t%s:%d in %s where '%s'\n" % y, traceback.extract_stack(limit=self.__btlevels), "") OnceLogger.__call__(self, msgid, fullmsg, self.__maxcount) def _set_max_count(self, value): """Set maxcount for the warning""" self.__maxcount = value maxcount = property(fget=lambda x: x.__maxcount, fset=_set_max_count) # XXX what is 'bt'? Maybe more verbose name? if cfg.has_option('warnings', 'bt'): warnings_btlevels = cfg.getint('warnings', 'bt') warnings_bt = True else: warnings_btlevels = 10 warnings_bt = False if cfg.has_option('warnings', 'count'): warnings_maxcount = cfg.getint('warnings', 'count') else: warnings_maxcount = 1 warning = WarningLog( handlers={ False: cfg.get('warnings', 'output', default='stdout').split(','), True: []}[cfg.getboolean('warnings', 'suppress', default=False)], btlevels=warnings_btlevels, btdefault=warnings_bt, maxcount=warnings_maxcount ) if __debug__: from mvpa2.base.verbosity import DebugLogger # NOTE: all calls to debug must be preconditioned with # if __debug__: debug = __Singleton("debug", DebugLogger( handlers=cfg.get('debug', 'output', default='stdout').split(','))) # set some debugging matricses to report # debug.register_metric('vmem') # List agreed sets for debug debug.register('PY', "No suppression of various warnings (numpy, scipy) etc.") debug.register('VERBOSE', "Verbose control debugging") debug.register('DBG', "Debug output itself") debug.register('STDOUT', "To decorate stdout with debug metrics") debug.register('DOCH', "Doc helpers") debug.register('INIT', "Just sequence of inits") debug.register('RANDOM', "Random number generation") debug.register('EXT', "External dependencies") debug.register('EXT_', "External dependencies (verbose)") debug.register('TEST', "Debug unittests") debug.register('MODULE_IN_REPR', "Include module path in __repr__") debug.register('ID_IN_REPR', "Include id in __repr__") debug.register('CMDLINE', "Handling of command line parameters") debug.register('NO', "Nodes") debug.register('DG', "Data generators") debug.register('LAZY', "Miscelaneous 'lazy' evaluations") debug.register('LOOP', "Support's loop construct") debug.register('PLR', "PLR call") debug.register('NBH', "Neighborhood estimations") debug.register('SLC', "Searchlight call") debug.register('SLC_', "Searchlight call (verbose)") debug.register('SVS', "Surface-based voxel selection (a.k.a. 'surfing')") debug.register('SA', "Sensitivity analyzers") debug.register('SOM', "Self-organizing-maps (SOM)") debug.register('IRELIEF', "Various I-RELIEFs") debug.register('SA_', "Sensitivity analyzers (verbose)") debug.register('PSA', "Perturbation analyzer call") debug.register('RFE', "Recursive Feature Elimination") debug.register('RFEC', "Recursive Feature Elimination call") debug.register('RFEC_', "Recursive Feature Elimination call (verbose)") debug.register('IFSC', "Incremental Feature Search call") debug.register('DS', "*Dataset") debug.register('DS_NIFTI', "NiftiDataset(s)") debug.register('DS_', "*Dataset (verbose)") debug.register('DS_ID', "ID Datasets") debug.register('DS_STATS', "Datasets statistics") debug.register('SPL', "*Splitter") debug.register('APERM', "AttributePermutator") debug.register('TRAN', "Transformers") debug.register('TRAN_', "Transformers (verbose)") # CHECKs debug.register('CHECK_DS_SELECT', "Check in dataset.select() for sorted and unique indexes") debug.register('CHECK_DS_SORTED', "Check in datasets for sorted") debug.register('CHECK_IDS_SORTED', "Check for ids being sorted in mappers") debug.register('CHECK_TRAINED', "Checking in checking if clf was trained on given dataset") debug.register('CHECK_RETRAIN', "Checking in retraining/retesting") debug.register('CHECK_STABILITY', "Checking for numerical stability") debug.register('ENFORCE_CA_ENABLED', "Forcing all ca to be enabled") debug.register('MAP', "*Mapper") debug.register('MAP_', "*Mapper (verbose)") debug.register('FX', "FxMapper") debug.register('ZSCM', "ZScoreMapper") debug.register('COL', "Generic Collectable") debug.register('COL_RED', "__reduce__ of collectables") debug.register('UATTR', "Attributes with unique") debug.register('ST', "State") debug.register('STV', "State Variable") debug.register('COLR', "Collector for ca and classifier parameters") debug.register('ES', "Element selectors") debug.register('LRN', "Base learners") # TODO remove once everything is a learner debug.register('CLF', "Base Classifiers") debug.register('CLF_', "Base Classifiers (verbose)") #debug.register('CLF_TB', # "Report traceback in train/predict. Helps to resolve WTF calls it") debug.register('CLFBST', "BoostClassifier") #debug.register('CLFBST_TB', "BoostClassifier traceback") debug.register('CLFPRX', "ProxyClassifier") debug.register('CLFBIN', "BinaryClassifier") debug.register('CLFTREE', "TreeClassifier") debug.register('CLFMC', "MulticlassClassifier") debug.register('CLFSPL', "SplitClassifier") debug.register('CLFSPL_', "SplitClassifier (verbose)") debug.register('CLFFS', "FeatureSelectionClassifier") debug.register('CLFFS_', "FeatureSelectionClassifier (verbose)") debug.register('STAT', "Statistics estimates") debug.register('STAT_', "Statistics estimates (verbose)") debug.register('STAT__', "Statistics estimates (very verbose)") debug.register('STATMC', "Progress in Monte-Carlo estimation") debug.register('FS', "FeatureSelections") debug.register('FS_', "FeatureSelections (verbose)") debug.register('FSPL', "FeatureSelectionPipeline") debug.register('KNN', "kNN") debug.register('SVM', "SVM") debug.register('SVM_', "SVM (verbose)") debug.register('LIBSVM', "Internal libsvm output") debug.register('SMLR', "SMLR") debug.register('SMLR_', "SMLR verbose") debug.register('LARS', "LARS") debug.register('LARS_', "LARS (verbose)") debug.register('ENET', "ENET") debug.register('ENET_', "ENET (verbose)") debug.register('GLMNET', "GLMNET") debug.register('GLMNET_', "GLMNET (verbose)") debug.register('GNB', "GNB - Gaussian Naive Bayes") debug.register('GDA', "GDA - Gaussian Discriminant Analyses") debug.register('GPR', "GPR") debug.register('GPR_WEIGHTS', "Track progress of GPRWeights computation") debug.register('KRN', "Kernels module (mvpa2.kernels)") debug.register('KRN_SG', "Shogun kernels module (mvpa2.kernels.sg)") debug.register('SAL', "Samples lookup (for cached kernels)") debug.register('MOD_SEL', "Model Selector (also makes openopt's iprint=0)") debug.register('OPENOPT', "OpenOpt toolbox verbose (iprint=1)") debug.register('SG', "PyMVPA SG wrapping") debug.register('SG_', "PyMVPA SG wrapping verbose") debug.register('SG__', "PyMVPA SG wrapping debug") debug.register('SG_GC', "For all entities enable highest level" " (garbage collector)") debug.register('SG_LINENO', "Enable printing of the file:lineno" " where SG_ERROR occurred.") debug.register('SG_SVM', "Internal shogun debug output for SVM itself") debug.register('SG_FEATURES', "Internal shogun debug output for features") debug.register('SG_LABELS', "Internal shogun debug output for labels") debug.register('SG_KERNELS', "Internal shogun debug output for kernels") debug.register('SG_PROGRESS', "Internal shogun progress bar during computation") debug.register('IOH', "IO Helpers") debug.register('NIML', "NeuroImaging Markup Language") debug.register('HDF5', "HDF5 IO") debug.register('CM', "Confusion matrix computation") debug.register('ROC', "ROC analysis") debug.register('REPM', "Repeated measure (e.g. super-class of CrossValidation)") debug.register('CERR', "Various ClassifierErrors") debug.register('HPAL', "Hyperalignment") debug.register('HPAL_', "Hyperalignment (verbose)") debug.register('SHPAL', "Searchlight Hyperalignment") debug.register('GCTHR', "Group cluster threshold") debug.register('ATL', "Atlases") debug.register('ATL_', "Atlases (verbose)") debug.register('ATL__', "Atlases (very verbose)") debug.register('PLLB', "plot_lightbox") debug.register('REP', "Reports") debug.register('REP_', "Reports (verbose)") debug.register('SUITE', "Import of mvpa2.suite") debug.register('ATTRREFER', "Debugging of top-level attribute referencing, " "needed for current refactoring carried out in tent/flexds") debug.register('BM', "Benchmark") # Lets check if environment can tell us smth if cfg.has_option('general', 'debug'): debug.set_active_from_string(cfg.get('general', 'debug')) # Lets check if environment can tell us smth if cfg.has_option('debug', 'metrics'): debug.register_metric(cfg.get('debug', 'metrics').split(",")) if 'STDOUT' in debug.active: # Lets decorate sys.stdout to possibly figure out what brings # the noise class _pymvpa_stdout_debug(object): """ Kudos to CODEHEAD http://codingrecipes.com/decorating-pythons-sysstdout for this design pattern """ def __init__(self, sys): self.stdout = sys.stdout sys.stdout = self self._inhere = False self._newline = True def write(self, txt): try: if not self._inhere and self._newline: self._inhere = True debug('STDOUT', "", lf=False, cr=False) self.stdout.write(txt) self._newline = txt.endswith('\n') finally: self._inhere = False def flush(self): self.stdout.flush() def isatty(self): return False _out = _pymvpa_stdout_debug(sys) else: # if not __debug__ # this debugger function does absolutely nothing. # It avoids the need of using 'if __debug__' for debug(...) calls. from mvpa2.base.verbosity import BlackHoleLogger debug = __Singleton("debug", BlackHoleLogger()) if __debug__: debug('INIT', 'mvpa2.base end') pymvpa2-2.6.4/mvpa2/base/attributes.py000066400000000000000000000160701323370031300176170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Module with some special objects to be used as magic attributes with dedicated containers aka. `Collections`. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.collections import Collectable from mvpa2.misc.exceptions import UnknownStateError import mvpa2.support.copy as copy if __debug__: from mvpa2.base import debug ################################################################## # Various attributes which will be collected into collections # class IndexedCollectable(Collectable): """Collectable with position information specified with index Derived classes will have specific semantics: * ConditionalAttribute: conditional storage * Parameter: attribute with validity ranges. `IndexedAttributes` instances are to be automagically grouped into corresponding collections for each class by `StateCollector` metaclass, i.e. it would be done on a class creation (i.e. not per each instance). Upon instance creation those collection templates will be copied for the instance. """ _instance_index = 0 def __init__(self, index=None, *args, **kwargs): """ Parameters ---------- value : arbitrary (see derived implementations) The actual value of this attribute. **kwargs Passed to `Collectable` """ if index is None: IndexedCollectable._instance_index += 1 index = IndexedCollectable._instance_index else: # TODO: there can be collision between custom provided indexes # and the ones automagically assigned. # Check might be due pass self._instance_index = index self._isset = False self.reset() Collectable.__init__(self, *args, **kwargs) if __debug__ and 'COL' in debug.active: debug("COL", "Initialized new IndexedCollectable #%d:%s %r", (index, self.name, self)) # XXX shows how indexing was screwed up -- not copied etc #def __copy__(self): # # preserve attribute type # copied = self.__class__(name=self.name, doc=self.__doc__) # # just get a view of the old data! # copied.value = copy.copy(self.value) # return copied def __reduce__(self): cr = Collectable.__reduce__(self) assert(len(cr) == 2) # otherwise we need to change logic below res = (cr[0], (self._instance_index,) + cr[1], {'_isset' : self._isset}) #if __debug__ and 'COL_RED' in debug.active: # debug('COL_RED', 'Returning %s for %s' % (res, self)) return res # XXX had to override due to _isset, init= def _set(self, val, init=False): """4Developers: Override this method in derived classes if you desire some logic (drop value in case of ca, or not allow to set value for read-only Parameters unless called with init=1) etc) """ if __debug__: # Since this call is quite often, don't convert # values to strings here, rely on passing them # withing debug("COL", "%s %s to %s ", ({True: 'Initializing', False: 'Setting'}[init], self, val)) self._value = val self._isset = True @property def is_set(self): return self._isset def reset(self): """Simply reset the flag""" if __debug__ and self._isset: debug("COL", "Reset %s to being non-modified", (self.name,)) self._isset = False # TODO XXX unify all bloody __str__ def __str__(self): res = "%s" % (self.name) if self.is_set: res += '*' # so we have the value already return res # XXX reports value depending on _isset def __repr__(self): if not self._isset: value = None else: value = self.value return "%s(value=%s, name=%s, doc=%s, index=%s)" % ( self.__class__.__name__, repr(value), repr(self.name), repr(self.__doc__), self._instance_index, ) class ConditionalAttribute(IndexedCollectable): """Simple container intended to conditionally store the value """ def __init__(self, enabled=True, *args, **kwargs): """ Parameters ---------- enabled : bool If a ConditionalAttribute is not enabled then assignment of any value has no effect, i.e. nothing is stored. **kwargs Passed to `IndexedCollectable` """ # Force enabled state regardless of the input # to facilitate testing if __debug__ and 'ENFORCE_CA_ENABLED' in debug.active: enabled = True self.__enabled = enabled self._defaultenabled = enabled IndexedCollectable.__init__(self, *args, **kwargs) def __reduce__(self): icr = IndexedCollectable.__reduce__(self) icr[2].update({'_defaultenabled' : self._defaultenabled, '_value': self._value}) # kill the value from Collectable, because we have to put it in the dict # to prevent loosing it during reconstruction when the CA is disabled res = (icr[0], (self.__enabled, icr[1][0], None) + icr[1][2:], icr[2]) #if __debug__ and 'COL_RED' in debug.active: # debug('COL_RED', 'Returning %s for %s' % (res, self)) return res def __str__(self): res = IndexedCollectable.__str__(self) if self.__enabled: res += '+' # it is enabled but no value is assigned yet return res def _get(self): if not self.is_set: raise UnknownStateError("Unknown yet value of %s" % (self.name)) return IndexedCollectable._get(self) def _set(self, val, init=False): if self.__enabled: # XXX may be should have left simple assignment # self._value = val IndexedCollectable._set(self, val) elif __debug__: debug("COL", "Not setting disabled %s to %s ", (self, val)) def reset(self): """Simply detach the value, and reset the flag""" IndexedCollectable.reset(self) self._value = None def _get_enabled(self): return self.__enabled def _set_enabled(self, value=False): if self.__enabled == value: # Do nothing since it is already in proper state return if __debug__: debug("STV", "%s %s", ({True: 'Enabling', False: 'Disabling'}[value], self)) self.__enabled = value enabled = property(fget=_get_enabled, fset=_set_enabled) pymvpa2-2.6.4/mvpa2/base/collections.py000066400000000000000000000610171323370031300177500ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Module with some special objects to be used as magic attributes with dedicated containers aka. `Collections`. """ __docformat__ = 'restructuredtext' import copy, re import numpy as np from mvpa2.base.dochelpers import _str, borrowdoc from mvpa2.base.types import is_sequence_type if __debug__: # we could live without, but it would be nicer with it try: from mvpa2.base import debug __mvpadebug__ = True except ImportError: __mvpadebug__ = False _object_getattribute = dict.__getattribute__ _object_setattr = dict.__setattr__ _object_setitem = dict.__setitem__ # To validate fresh _dict_api = set(dict.__dict__) class Collectable(object): """Collection element. A named single item container that allows for type, or property checks of an assigned value, and also offers utility functionality. """ def __init__(self, value=None, name=None, doc=None): """ Parameters ---------- value : arbitrary (see derived implementations) The actual value of this attribute. name : str Name of the collectable under which it should be available in its respective collection. doc : str Documentation about the purpose of this collectable. """ if doc is not None: # to prevent newlines in the docstring try: doc = re.sub('[\n ]+', ' ', doc) except TypeError: # catch some old datasets stored in HDF5 doc = re.sub('[\n ]+', ' ', np.asscalar(doc)) self.__doc__ = doc self.__name = name self._value = None if value is not None: self._set(value) if __debug__ and __mvpadebug__: debug("COL", "Initialized %r", (self,)) def __copy__(self): # preserve attribute type copied = self.__class__(name=self.name, doc=self.__doc__) # just get a view of the old data! copied.value = copy.copy(self.value) return copied ## def __deepcopy__(self, memo=None): ## # preserve attribute type ## copied = self.__class__(name=self.name, doc=self.__doc__) ## # get a deepcopy of the old data! ## copied._value = copy.deepcopy(self._value, memo) ## return copied def _get(self): return self._value def _set(self, val): if __debug__ and __mvpadebug__: # Since this call is quite often, don't convert # values to strings here, rely on passing them # withing msgargs debug("COL", "Setting %s to %s ", (self, val)) self._value = val def __str__(self): res = "%s" % (self.name) return res def __reduce__(self): return (self.__class__, (self._value, self.name, self.__doc__)) def __repr__(self): value = self.value return "%s(name=%s, doc=%s, value=%s)" % (self.__class__.__name__, repr(self.name), repr(self.__doc__), repr(value)) def _get_name(self): return self.__name def _set_name(self, name): """Set the name of parameter Notes ----- Should not be called for an attribute which is already assigned to a collection """ if name is not None: if isinstance(name, basestring): if name[0] == '_': raise ValueError, \ "Collectable attribute name must not start " \ "with _. Got %s" % name else: raise ValueError, \ "Collectable attribute name must be a string. " \ "Got %s" % `name` self.__name = name # Instead of going for VProperty lets make use of virtual method def _get_virtual(self): return self._get() def _set_virtual(self, value): return self._set(value) value = property(_get_virtual, _set_virtual) name = property(_get_name, _set_name) class SequenceCollectable(Collectable): """Collectable to handle sequences. It takes care about caching and recomputing unique values, as well as optional checking if assigned sequences have a desired length. """ def __init__(self, value=None, name=None, doc="Sequence attribute", length=None): """ Parameters ---------- value : arbitrary (see derived implementations) The actual value of this attribute. name : str Name of the attribute under which it should be available in its respective collection. doc : str Documentation about the purpose of this attribute. length : int If not None, enforce any array assigned as value of this collectable to be of this `length`. If an array does not match this requirement it is not modified, but a ValueError is raised. """ # first configure the value checking, to enable it for the base class # init # XXX should we disallow empty Collectables?? if value is not None and not hasattr(value, '__len__'): raise ValueError("%s only takes sequences as value." % self.__class__.__name__) self._target_length = length Collectable.__init__(self, value=value, name=name, doc=doc) self._reset_unique() def __reduce__(self): return (self.__class__, (self.value, self.name, self.__doc__, self._target_length)) def __repr__(self): value = self.value return "%s(name=%s, doc=%s, value=%s, length=%s)" \ % (self.__class__.__name__, repr(self.name), repr(self.__doc__), repr(value), repr(self._target_length)) def __len__(self): return self.value.__len__() def __getitem__(self, key): return self.value.__getitem__(key) def _set(self, val): # check if the new value has the desired length -- if length checking is # desired at all if self._target_length is not None \ and len(val) != self._target_length: raise ValueError("Value length [%i] does not match the required " "length [%i] of attribute '%s'." % (len(val), self._target_length, str(self.name))) self._reset_unique() Collectable._set(self, val) def _reset_unique(self): self._unique_values = None @property def unique(self): """Return unique values """ if self.value is None: return None if self._unique_values is None: try: self._unique_values = np.unique(self.value) except TypeError: # We are probably on Python 3 and value contains None's # or any other different type breaking the comparison # so operate through set() # See http://projects.scipy.org/numpy/ticket/2188 # Get a 1-D array # list around set is required for Python3 value_unique = list(set(np.asanyarray(self.value).ravel())) try: self._unique_values = np.array(value_unique) except ValueError: # without forced dtype=object it might have failed due to # something related to # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679948 # which was fixed recently... self._unique_values = np.array(value_unique, dtype=object) return self._unique_values def set_length_check(self, value): """Set a target length of the value in this collectable. Parameters ---------- value : int If not None, enforce any array assigned as value of this collectable to be of this `length`. If an array does not match this requirement it is not modified, but a ValueError is raised. """ self._target_length = value class ArrayCollectable(SequenceCollectable): """Collectable embedding an array. When shallow-copied it includes a view of the array in the copy. """ def __copy__(self): # preserve attribute type copied = self.__class__(name=self.name, doc=self.__doc__, length=self._target_length) # just get a view of the old data! copied.value = self.value.view() return copied def _set(self, val): if not hasattr(val, 'view'): if is_sequence_type(val): try: val = np.asanyarray(val) except ValueError, e: if "setting an array element with a sequence" in str(e): val = np.asanyarray(val, dtype=object) else: raise else: raise ValueError("%s only takes ndarrays (or array-likes " "providing view(), or sequence that can " "be converted into arrays (got '%s')." % (self.__class__.__name__, str(type(val)))) SequenceCollectable._set(self, val) class SampleAttribute(ArrayCollectable): """Per sample attribute in a dataset""" pass class FeatureAttribute(ArrayCollectable): """Per feature attribute in a dataset""" pass class DatasetAttribute(ArrayCollectable): """Dataset attribute""" pass class Collection(dict): """Container of some Collectables. """ def __init__(self, items=None): """ Parameters ---------- items : all types accepted by update() """ dict.__init__(self) if items is not None: self.update(items) def copy(self, deep=True, a=None, memo=None): """Create a copy of a collection. By default this is going to return a deep copy of the collection, hence no data would be shared between the original dataset and its copy. Parameters ---------- deep : boolean, optional If False, a shallow copy of the collection is return instead. The copy contains only views of the values. a : list or None List of attributes to include in the copy of the dataset. If `None` all attributes are considered. If an empty list is given, all attributes are stripped from the copy. memo : dict Developers only: This argument is only useful if copy() is called inside the __deepcopy__() method and refers to the dict-argument `memo` in the Python documentation. """ # create the new collections of the right type derived classes # might like to assure correct setting of additional # attributes such as self._attr_length anew = self.__class__() # filter the attributes if necessary if a is None: aorig = self else: aorig = dict([(k, v) for k, v in self.iteritems() if k in a]) # XXX copyvalues defaults to None which provides capability to # just bind values (not even 'copy'). Might it need be # desirable here? anew.update(aorig, copyvalues=deep and 'deep' or 'shallow', memo=memo) if __debug__ and __mvpadebug__ and 'COL' in debug.active: debug("COL", "Copied %s into %s using args deep=%r a=%r", (self, anew, deep, a)) #if 'state2' in str(self): # import pydb; pydb.debugger() return anew # XXX If enabled, then overrides dict.__reduce* leading to conditional # attributes loosing their documentations in copying etc. # #def __copy__(self): # return self.copy(deep=False) # # #def __deepcopy__(self, memo=None): # return self.copy(deep=True, memo=memo) def __setitem__(self, key, value): """Add a new Collectable to the collection Parameters ---------- key : str The name of the collectable under which it is available in the collection. This name is also stored in the item itself value : anything The actual item the should become part of the collection. If this is not an instance of `Collectable` or a subclass the value is automatically wrapped into it. """ # Check if given key is not trying to override anything in # dict interface if key in _dict_api: raise ValueError, \ "Cannot add a collectable %r to collection %s since an " \ "attribute or a method with such a name is already present " \ "in dict interface. Choose some other name." % (key, self) if not isinstance(value, Collectable): value = Collectable(value, name=key) else: if not value.name: # None assigned -- just use the Collectable value.name = key elif value.name == key: # assigned the same -- use the Collectable pass else: # use the copy and assign new name # see https://github.com/PyMVPA/PyMVPA/issues/149 # for the original issue. __copy__ directly to avoid copy.copy # doing the same + few more checks value = value.__copy__() # overwrite the Collectable's name with the given one value.name = key _object_setitem(self, key, value) def update(self, source, copyvalues=None, memo=None): """ Parameters ---------- source : list, Collection, dict copyvalues : None, shallow, deep If None, values will simply be bound to the collection items' values thus sharing the same instance. 'shallow' and 'deep' copies use 'copy' and 'deepcopy' correspondingly. memo : dict Developers only: This argument is only useful if copy() is called inside the __deepcopy__() method and refers to the dict-argument `memo` in the Python documentation. """ if isinstance(source, list): for a in source: if isinstance(a, tuple): #list of tuples, e.g. from dict.items() name = a[0] value = a[1] else: # list of collectables name = a.name value = a if copyvalues is None: self[name] = value elif copyvalues == 'shallow': self[name] = copy.copy(value) elif copyvalues == 'deep': self[name] = copy.deepcopy(value, memo) else: raise ValueError("Unknown value ('%s') for copy argument." % copy) elif isinstance(source, dict): for k, v in source.iteritems(): # expand the docs if isinstance(v, tuple): value = v[0] doc = v[1] else: value = v doc = None # add the attribute with optional docs if copyvalues is None: self[k] = v elif copyvalues == 'shallow': self[k] = copy.copy(v) elif copyvalues == 'deep': self[k] = copy.deepcopy(v, memo) else: raise ValueError("Unknown value ('%s') for copy argument." % copy) # store documentation self[k].__doc__ = doc else: raise ValueError("Collection.update() cannot handle '%s'." % str(type(source))) def __getattribute__(self, key): try: return self[key].value except KeyError: return _object_getattribute(self, key) def __setattr__(self, key, value): try: self[key].value = value except KeyError: _object_setattr(self, key, value) except Exception, e: # catch any other exception in order to provide a useful error message errmsg = "parameter '%s' cannot accept value `%r` (%s)" % (key, value, str(e)) try: cdoc = self[key].constraints.long_description() if cdoc[0] == '(' and cdoc[-1] == ')': cdoc = cdoc[1:-1] errmsg += " [%s]" % cdoc except: pass raise ValueError(errmsg) # TODO: unify with the rest of __repr__ handling def __repr__(self): return "%s(items=%r)" \ % (self.__class__.__name__, self.values()) def __str__(self): return _str(self, ','.join([str(k) for k in sorted(self.keys())])) class UniformLengthCollection(Collection): """Container for attributes with the same length. """ def __init__(self, items=None, length=None): """ Parameters ---------- length : int When adding items to the collection, they are checked if the have this length. """ # cannot call set_length(), since base class __getattribute__ goes wild # before its __init__ is called. self._uniform_length = length Collection.__init__(self, items) def __reduce__(self): return (self.__class__, (self.items(), self._uniform_length)) @borrowdoc(Collection) def copy(self, *args, **kwargs): # Create a generic copy of the collection anew = super(UniformLengthCollection, self).copy(*args, **kwargs) # if it had any attributes assigned, those should have set # attr_length already, otherwise lets assure that we copy the # correct one into the new instance if self.attr_length is not None and anew.attr_length is None: anew.set_length_check(self.attr_length) return anew def set_length_check(self, value): """ Parameters ---------- value : int When adding new items to the collection, they are checked if the have this length. """ self._uniform_length = value for v in self.values(): v.set_length_check(value) def __setitem__(self, key, value): """Add a new IndexedCollectable to the collection Parameters ---------- item : IndexedCollectable or of derived class. Must have 'name' assigned. """ # local binding ulength = self._uniform_length # XXX should we check whether it is some other Collectable? if not isinstance(value, ArrayCollectable): # if it is only a single element iterable, attempt broadcasting if is_sequence_type(value) and len(value) == 1 \ and ulength is not None: if ulength > 1: # cannot use np.repeat, because it destroys dimensionality value = [value[0]] * ulength value = ArrayCollectable(value) if ulength is None: ulength = len(value) elif not len(value.value) == ulength: raise ValueError("Collectable '%s' with length [%i] does not match " "the required length [%i] of collection '%s'." % (key, len(value.value), ulength, str(self))) # tell the attribute to maintain the desired length value.set_length_check(ulength) Collection.__setitem__(self, key, value) @staticmethod def _compare_to_value(a, v, strict=True): """Helper to find elements within attribute matching the value value might be a multidimensional beast Parameters ---------- strict: bool, optional If True, it would throw ValueError exception if provided value is not present, or incompatible. If False, it would allow to proceed returning an empty mask (all values False) """ r = a == v if isinstance(r, bool): # comparison collapsed to a single thing, must be False assert(r is False) raise ValueError("%r is not comparable to items among %s" % (v, a)) if a.ndim > 1: # we are dealing with multi-dimensional attributes. # then value we are looking for must be just 1 dimension less, # otherwise numpy would broadcast the value and match which is not # desired vshape = np.asanyarray(v).shape if vshape != a.shape[1:]: raise ValueError("Value %r you are looking for is of %s " "shape, whenever collection contains entries " "of shape %s" % (v, vshape, a.shape[1:])) # collapse all other dimensions. numpy would have broadcasted # the leading dimension while r.ndim > 1: r = np.all(r, axis=1) if not np.any(r): if strict: raise ValueError("None of the items matched %r among %s" % (v, a)) else: return np.zeros(len(a), dtype=bool) return r def match(self, d, strict=True): """Given a dictionary describing selection, return mask for matching items Given a dictionary with keys known to the collection, search for item attributes which would satisfy the selection. E.g. >>> col = UniformLengthCollection({'roi': ['a', 'b', 'c', 'a']}) >>> print col.match({'roi': ['a']}) [ True False False True] >>> print col.match({'roi': ['c', 'a']}) [ True False True True] Multiple keys could be specified with desired matching values. Intersection of matchings is returned across different keys: >>> col = UniformLengthCollection({'roi': ['a', 'b', 'c', 'a'], ... 'vox': [[1,0], [0,1], [1,0], [0, 1]]}) >>> print col.match({'roi': ['c', 'a'], 'vox': [[0,1]]}) [False False False True] Parameters ---------- d: dict Dict describing the selection. Keys must be known to the collection strict: bool, optional If True, absent matching to any specified selection key/value pair would result in ValueError exception. If False, it would allow to not have matches, but if only a single value for a key is given or none of the values match -- you will end up with empty selection. """ mask = np.ones(self.attr_length, dtype=bool) for k, target_values in d.iteritems(): if not k in self.keys(): raise ValueError("%s is not known to %s" % (k, self)) value = self[k].value target_values_mask = reduce(np.logical_or, [self._compare_to_value(value, target_value, strict=strict) for target_value in target_values]) mask = np.logical_and(mask, target_values_mask) return mask attr_length = property(fget=lambda self:self._uniform_length, doc="Uniform length of all attributes in a collection") class SampleAttributesCollection(UniformLengthCollection): """Container for attributes of samples (i.e. labels, chunks...) """ pass class FeatureAttributesCollection(UniformLengthCollection): """Container for attributes of features """ pass class DatasetAttributesCollection(Collection): """Container for attributes of datasets (i.e. mappers, ...) """ pass pymvpa2-2.6.4/mvpa2/base/config.py000066400000000000000000000206051323370031300166750ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Registry-like monster""" __docformat__ = 'restructuredtext' from ConfigParser import SafeConfigParser import os from os.path import join as pathjoin class ConfigManager(SafeConfigParser): """Central configuration registry for PyMVPA. The purpose of this class is to collect all configurable settings used by various parts of PyMVPA. It is fairly simple and does only little more than the standard Python ConfigParser. Like ConfigParser it is blind to the data that it stores, i.e. not type checking is performed. Configuration files (INI syntax) in multiple location are passed when the class is instantiated or whenever `Config.reload()` is called later on. By default it looks for a config file named `pymvpa2.cfg` in the current directory and `.pymvpa2.cfg` in the user's home directory. Moreover, the constructor takes an optional argument with a list of additional file names to parse. In addition to configuration files, this class also looks for special environment variables to read settings from. Names of such variables have to start with `MVPA_` following by the an optional section name and the variable name itself ('_' as delimiter). If no section name is provided, the variables will be associated with section `general`. Some examples:: MVPA_VERBOSE=1 will become:: [general] verbose = 1 However, `MVPA_VERBOSE_OUTPUT=stdout` becomes:: [verbose] output = stdout Any length of variable name as allowed, e.g. MVPA_SEC1_LONG_VARIABLE_NAME=1 becomes:: [sec1] long variable name = 1 Settings from custom configuration files (specified by the constructor argument) have the highest priority and override settings found in the current directory. They in turn override user-specific settings and finally the content of any `MVPA_*` environment variables overrides all settings read from any file. """ # things we want to count on to be available _DEFAULTS = {'general': { 'verbose': '1', } } def __init__(self, filenames=None): """Initialization reads settings from config files and env. variables. Parameters ---------- filenames : list of filenames """ SafeConfigParser.__init__(self) # store additional config file names if filenames is not None: self.__cfg_filenames = filenames else: self.__cfg_filenames = [] # set critical defaults for sec, vars in ConfigManager._DEFAULTS.iteritems(): self.add_section(sec) for key, value in vars.iteritems(): self.set(sec, key, value) # now get the setting self.reload() def reload(self): """Re-read settings from all configured locations. """ # listof filenames to parse (custom plus some standard ones) homedir = os.path.expanduser('~') user_configfile = pathjoin(homedir, '.pymvpa2.cfg') user_configfile_old = pathjoin(homedir, '.pymvpa.cfg') # first load user config and then overwrite by local and custom config # files. filenames = [user_configfile, 'pymvpa2.cfg'] + self.__cfg_filenames # Check if config for previous version exists, we need to # warn users since they might need to copy it over if not os.path.exists(user_configfile) and \ os.path.exists(user_configfile_old): # but we can't use our 'warning' since it would not be # defined yet and import here would be circular # so use stock Python one from warnings import warn warn("You seems to have a configuration file %s for previous " "version of PyMVPA but lacking configuration for PyMVPA2. " "Consider copying it into %s" % (user_configfile_old, user_configfile)) # read local and user-specific config files = self.read(filenames) # no look for variables in the environment for var in [v for v in os.environ.keys() if v.startswith('MVPA_')]: # strip leading 'MVPA_' and lower case entries svar = var[5:].lower() # section is next element in name (or 'general' if simple name) if not svar.count('_'): sec = 'general' else: cut = svar.find('_') sec = svar[:cut] svar = svar[cut + 1:].replace('_', ' ') # check if section is already known and add it if not if not self.has_section(sec): self.add_section(sec) # set value self.set(sec, svar, os.environ[var]) def __repr__(self): """Generate INI file content with current configuration. """ # make adaptor to use str as file-like (needed for ConfigParser.write() class file2str(object): def __init__(self): self.__s = '' def write(self, val): self.__s += val def str(self): return self.__s r = file2str() self.write(r) return r.str() def save(self, filename): """Write current configuration to a file. """ f = open(filename, 'w') self.write(f) f.close() def get(self, section, option, default=None, **kwargs): """Wrapper around SafeConfigParser.get() with a custom default value. This method simply wraps the base class method, but adds a `default` keyword argument. The value of `default` is returned whenever the config parser does not have the requested option and/or section. """ if not self.has_option(section, option): return default try: return SafeConfigParser.get(self, section, option, **kwargs) except ValueError as e: # provide somewhat descriptive error raise ValueError( "Failed to obtain value from configuration for %s.%s. " "Original exception was: %s" % (section, option, e)) def getboolean(self, section, option, default=None): """Wrapper around SafeConfigParser.getboolean() with a custom default. This method simply wraps the base class method, but adds a `default` keyword argument. The value of `default` is returned whenever the config parser does not have the requested option and/or section. """ if not self.has_option(section, option): if isinstance(default, bool): return default else: # compatibility layer for py3 version of ConfigParser if hasattr(self, '_boolean_states'): boolean_states = self._boolean_states else: boolean_states = self.BOOLEAN_STATES if default.lower() not in boolean_states: raise ValueError('Not a boolean: %s' % default) return boolean_states[default.lower()] return SafeConfigParser.getboolean(self, section, option) def get_as_dtype(self, section, option, dtype, default=None): """Convenience method to query options with a custom default and type This method simply wraps the base class method, but adds a `default` keyword argument. The value of `default` is returned whenever the config parser does not have the requested option and/or section. In addition, the returned value is converted into the specified `dtype`. """ if not self.has_option(section, option): return default try: return SafeConfigParser._get(self, section, dtype, option) except ValueError, e: # provide somewhat descriptive error raise ValueError, \ "Failed to obtain value from configuration for %s.%s. " \ "Original exception was: %s" % (section, option, e) pymvpa2-2.6.4/mvpa2/base/constraints.py000066400000000000000000000267331323370031300200070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##g """Helper for parameter validation, documentation and conversion""" # TODO: __str__ / __repr__'s __docformat__ = 'restructuredtext' import numpy as np if __debug__: from mvpa2.base import debug class Constraint(object): """Base class for input value conversion/validation. These classes are also meant to be able to generate appropriate documentation on an appropriate parameter value. """ def __and__(self, other): return Constraints(self, other) def __or__(self, other): return AltConstraints(self, other) def __call__(self, value): # do any necessary checks or conversions, potentially catch exceptions # and generate a meaningful error message raise NotImplementedError("abstract class") def long_description(self): # return meaningful docs or None # used as a comprehensive description in the parameter list return self.short_description() def short_description(self): # return meaningful docs or None # used as a condensed primer for the parameter lists raise NotImplementedError("abstract class") class EnsureDType(Constraint): """Ensure that an input (or several inputs) are of a particular data type. """ # TODO extend to support numpy-like dtype specs, e.g. 'int64' # in addition to functors def __init__(self, dtype): """ Parameters ---------- dtype : functor """ self._dtype = dtype def __call__(self, value): if hasattr(value, '__array__'): return np.asanyarray(value, dtype=self._dtype) elif hasattr(value, '__iter__') and not isinstance(value, basestring): return map(self._dtype, value) else: return self._dtype(value) def short_description(self): dtype_descr = str(self._dtype) if dtype_descr[:7] == "": dtype_descr = dtype_descr[7:-2] return dtype_descr def long_description(self): return "value must be convertible to type '%s'" % self.short_description() class EnsureInt(EnsureDType): """Ensure that an input (or several inputs) are of a data type 'int'. """ def __init__(self): """Initializes EnsureDType with int""" EnsureDType.__init__(self, int) class EnsureFloat(EnsureDType): """Ensure that an input (or several inputs) are of a data type 'float'. """ def __init__(self): """Initializes EnsureDType with float""" EnsureDType.__init__(self, float) class EnsureListOf(Constraint): """Ensure that an input is a list of a particular data type """ def __init__(self, dtype): """ Parameters ---------- dtype : functor """ self._dtype = dtype super(EnsureListOf, self).__init__() def __call__(self, value): return map(self._dtype, value) def short_description(self): dtype_descr = str(self._dtype) if dtype_descr[:7] == "": dtype_descr = dtype_descr[7:-2] return 'list(%s)' % dtype_descr def long_description(self): return "value must be convertible to %s" % self.short_description() class EnsureTupleOf(Constraint): """Ensure that an input is a tuple of a particular data type """ def __init__(self, dtype): """ Parameters ---------- dtype : functor """ self._dtype = dtype super(EnsureTupleOf, self).__init__() def __call__(self, value): return tuple(map(self._dtype, value)) def short_description(self): dtype_descr = str(self._dtype) if dtype_descr[:7] == "": dtype_descr = dtype_descr[7:-2] return 'tuple(%s)' % dtype_descr def long_description(self): return "value must be convertible to %s" % self.short_description() class EnsureBool(Constraint): """Ensure that an input is a bool. A couple of literal labels are supported, such as: False: '0', 'no', 'off', 'disable', 'false' True: '1', 'yes', 'on', 'enable', 'true' """ def __call__(self, value): if isinstance(value, bool): return value elif isinstance(value, basestring): value = value.lower() if value in ('0', 'no', 'off', 'disable', 'false'): return False elif value in ('1', 'yes', 'on', 'enable', 'true'): return True raise ValueError("value must be converted to boolean") def long_description(self): return 'value must be convertible to type bool' def short_description(self): return 'bool' class EnsureStr(Constraint): """Ensure an input is a string. No automatic conversion is attempted. """ def __call__(self, value): if not isinstance(value, basestring): # do not perform a blind conversion ala str(), as almost # anything can be converted and the result is most likely # unintended raise ValueError("value is not a string") return value def long_description(self): return 'value must be a string' def short_description(self): return 'str' class EnsureNone(Constraint): """Ensure an input is of value `None`""" def __call__(self, value): if value is None: return None else: raise ValueError("value must be `None`") def short_description(self): return 'None' def long_description(self): return 'value must be `None`' class EnsureChoice(Constraint): """Ensure an input is element of a set of possible values""" def __init__(self, *values): """ Parameters ---------- *values Possible accepted values. """ self._allowed = values super(EnsureChoice, self).__init__() def __call__(self, value): if value not in self._allowed: raise ValueError("value is not one of %s" % (self._allowed,)) return value def long_description(self): return 'value must be one of %s' % (str(self._allowed),) def short_description(self): return '{%s}' % ', '.join([str(c) for c in self._allowed]) class EnsureRange(Constraint): """Ensure an input is within a particular range No type checks are performed. """ def __init__(self, min=None, max=None): """ Parameters ---------- min Minimal value to be accepted in the range max Maximal value to be accepted in the range """ self._min = min self._max = max super(EnsureRange, self).__init__() def __call__(self, value): if self._min is not None: if value < self._min: raise ValueError("value must be at least %s" % (self._min,)) if self._max is not None: if value > self._max: raise ValueError("value must be at most %s" % (self._max,)) return value def long_description(self): min_str = '-inf' if self._min is None else str(self._min) max_str = 'inf' if self._max is None else str(self._max) return 'value must be in range [%s, %s]' % (min_str, max_str) def short_description(self): None class AltConstraints(Constraint): """Logical OR for constraints. An arbitrary number of constraints can be given. They are evaluated in the order in which they were specified. The value returned by the first constraint that does not raise an exception is the global return value. Documentation is aggregated for all alternative constraints. """ def __init__(self, *constraints): """ Parameters ---------- *constraints Alternative constraints """ super(AltConstraints, self).__init__() self.constraints = [EnsureNone() if c is None else c for c in constraints] def __or__(self, other): if isinstance(other, AltConstraints): self.constraints.extend(other.constraints) else: self.constraints.append(other) return self def __call__(self, value): e_list = [] for c in self.constraints: try: return c(value) except Exception, e: e_list.append(e) raise ValueError("all alternative constraints violated") def long_description(self): cs = [c.long_description() for c in self.constraints if hasattr(c, 'long_description')] doc = ', or '.join(cs) if len(cs) > 1: return '(%s)' % doc else: return doc def short_description(self): cs = [c.short_description() for c in self.constraints if hasattr(c, 'short_description') and c.short_description() is not None] doc = ' or '.join(cs) if len(cs) > 1: return '(%s)' % doc else: return doc class Constraints(Constraint): """Logical AND for constraints. An arbitrary number of constraints can be given. They are evaluated in the order in which they were specified. The return value of each constraint is passed an input into the next. The return value of the last constraint is the global return value. No intermediate exceptions are caught. Documentation is aggregated for all constraints. """ def __init__(self, *constraints): """ Parameters ---------- *constraints Constraints all of which must be satisfied """ super(Constraints, self).__init__() self.constraints = [EnsureNone() if c is None else c for c in constraints] def __and__(self, other): if isinstance(other, Constraints): self.constraints.extend(other.constraints) else: self.constraints.append(other) return self def __call__(self, value): for c in (self.constraints): value = c(value) return value def long_description(self): cs = [c.long_description() for c in self.constraints if hasattr(c, 'long_description')] doc = ', and '.join(cs) if len(cs) > 1: return '(%s)' % doc else: return doc def short_description(self): cs = [c.short_description() for c in self.constraints if hasattr(c, 'short_description') and c.short_description() is not None] doc = ' and '.join(cs) if len(cs) > 1: return '(%s)' % doc else: return doc constraint_spec_map = { 'float': EnsureFloat(), 'int': EnsureInt(), 'bool': EnsureBool(), 'str': EnsureStr(), } def expand_contraint_spec(spec): """Helper to translate literal contraint specs into functional ones e.g. 'float' -> EnsureFloat() """ if spec is None or hasattr(spec, '__call__'): return spec else: try: return constraint_spec_map[spec] except KeyError: raise ValueError("unsupport constraint specification '%r'" % (spec,)) pymvpa2-2.6.4/mvpa2/base/dataset.py000066400000000000000000001352331323370031300170610ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Multi-purpose dataset container with support for attributes.""" __docformat__ = 'restructuredtext' from os.path import lexists import numpy as np import copy from mvpa2.base import externals, cfg, warning from mvpa2.base.collections import SampleAttributesCollection, \ FeatureAttributesCollection, DatasetAttributesCollection from mvpa2.base.types import is_datasetlike from mvpa2.base.dochelpers import _str, _strid if __debug__: from mvpa2.base import debug __REPR_STYLE__ = cfg.get('datasets', 'repr', 'full') if not __REPR_STYLE__ in ('full', 'str'): raise ValueError("Incorrect value %r for option datasets.repr." " Valid are 'full' and 'str'." % __REPR_STYLE__) class AttrDataset(object): """Generic storage class for datasets with multiple attributes. A dataset consists of four pieces. The core is a two-dimensional array that has variables (so-called `features`) in its columns and the associated observations (so-called `samples`) in the rows. In addition a dataset may have any number of attributes for features and samples. Unsurprisingly, these are called 'feature attributes' and 'sample attributes'. Each attribute is a vector of any datatype that contains a value per each item (feature or sample). Both types of attributes are organized in their respective collections -- accessible via the `sa` (sample attribute) and `fa` (feature attribute) attributes. Finally, a dataset itself may have any number of additional attributes (i.e. a mapper) that are stored in their own collection that is accessible via the `a` attribute (see examples below). Attributes ---------- sa : Collection Access to all sample attributes, where each attribute is a named vector (1d-array) of an arbitrary datatype, with as many elements as rows in the `samples` array of the dataset. fa : Collection Access to all feature attributes, where each attribute is a named vector (1d-array) of an arbitrary datatype, with as many elements as columns in the `samples` array of the dataset. a : Collection Access to all dataset attributes, where each attribute is a named element of an arbitrary datatype. Notes ----- Any dataset might have a mapper attached that is stored as a dataset attribute called `mapper`. Examples -------- The simplest way to create a dataset is from a 2D array. >>> import numpy as np >>> from mvpa2.datasets import * >>> samples = np.arange(12).reshape((4,3)) >>> ds = AttrDataset(samples) >>> ds.nsamples 4 >>> ds.nfeatures 3 >>> ds.samples array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) The above dataset can only be used for unsupervised machine-learning algorithms, since it doesn't have any targets associated with its samples. However, creating a labeled dataset is equally simple. >>> ds_labeled = dataset_wizard(samples, targets=range(4)) Both the labeled and the unlabeled dataset share the same samples array. No copying is performed. >>> ds.samples is ds_labeled.samples True If the data should not be shared the samples array has to be copied beforehand. The targets are available from the samples attributes collection, but also via the convenience property `targets`. >>> ds_labeled.sa.targets is ds_labeled.targets True If desired, it is possible to add an arbitrary amount of additional attributes. Regardless if their original sequence type they will be converted into an array. >>> ds_labeled.sa['lovesme'] = [0,0,1,0] >>> ds_labeled.sa.lovesme array([0, 0, 1, 0]) An alternative method to create datasets with arbitrary attributes is to provide the attribute collections to the constructor itself -- which would also test for an appropriate size of the given attributes: >>> fancyds = AttrDataset(samples, sa={'targets': range(4), ... 'lovesme': [0,0,1,0]}) >>> fancyds.sa.lovesme array([0, 0, 1, 0]) Exactly the same logic applies to feature attributes as well. Datasets can be sliced (selecting a subset of samples and/or features) similar to arrays. Selection is possible using boolean selection masks, index sequences or slicing arguments. The following calls for samples selection all result in the same dataset: >>> sel1 = ds[np.array([False, True, True])] >>> sel2 = ds[[1,2]] >>> sel3 = ds[1:3] >>> np.all(sel1.samples == sel2.samples) True >>> np.all(sel2.samples == sel3.samples) True During selection data is only copied if necessary. If the slicing syntax is used the resulting dataset will share the samples with the original dataset (here and below we compare .base against both ds.samples and its .base for compatibility with NumPy < 1.7) >>> sel1.samples.base in (ds.samples.base, ds.samples) False >>> sel2.samples.base in (ds.samples.base, ds.samples) False >>> sel3.samples.base in (ds.samples.base, ds.samples) True For feature selection the syntax is very similar they are just represented on the second axis of the samples array. Plain feature selection is achieved be keeping all samples and select a subset of features (all syntax variants for samples selection are also supported for feature selection). >>> fsel = ds[:, 1:3] >>> fsel.samples array([[ 1, 2], [ 4, 5], [ 7, 8], [10, 11]]) It is also possible to simultaneously selection a subset of samples *and* features. Using the slicing syntax now copying will be performed. >>> fsel = ds[:3, 1:3] >>> fsel.samples array([[1, 2], [4, 5], [7, 8]]) >>> fsel.samples.base in (ds.samples.base, ds.samples) True Please note that simultaneous selection of samples and features is *not* always congruent to array slicing. >>> ds[[0,1,2], [1,2]].samples array([[1, 2], [4, 5], [7, 8]]) Whereas the call: 'ds.samples[[0,1,2], [1,2]]' would not be possible. In `AttrDatasets` selection of samples and features is always applied individually and independently to each axis. """ def __init__(self, samples, sa=None, fa=None, a=None): """ A Dataset might have an arbitrary number of attributes for samples, features, or the dataset as a whole. However, only the data samples themselves are required. Parameters ---------- samples : ndarray Data samples. This has to be a two-dimensional (samples x features) array. If the samples are not in that format, please consider one of the `AttrDataset.from_*` classmethods. sa : SampleAttributesCollection Samples attributes collection. fa : FeatureAttributesCollection Features attributes collection. a : DatasetAttributesCollection Dataset attributes collection. """ # conversions if isinstance(samples, list): samples = np.array(samples) # Check all conditions we need to have for `samples` dtypes if not hasattr(samples, 'dtype'): raise ValueError( "AttrDataset only supports dtypes as samples that have a " "`dtype` attribute that behaves similar to the one of an " "array-like.") if not hasattr(samples, 'shape'): raise ValueError( "AttrDataset only supports dtypes as samples that have a " "`shape` attribute that behaves similar to the one of an " "array-like.") if not len(samples.shape): raise ValueError("Only `samples` with at least one axis are " "supported (got: %i)" % len(samples.shape)) # handling of 1D-samples # i.e. 1D is treated as multiple samples with a single feature if len(samples.shape) == 1: samples = np.atleast_2d(samples).T # that's all -- accepted self.samples = samples # Everything in a dataset (except for samples) is organized in # collections # Number of samples is .shape[0] for sparse matrix support self.sa = SampleAttributesCollection(length=len(self)) if sa is not None: self.sa.update(sa) self.fa = FeatureAttributesCollection(length=self.nfeatures) if fa is not None: self.fa.update(fa) self.a = DatasetAttributesCollection() if a is not None: self.a.update(a) def init_origids(self, which, attr='origids', mode='new'): """Initialize the dataset's 'origids' attribute. The purpose of origids is that they allow to track the identity of a feature or a sample through the lifetime of a dataset (i.e. subsequent feature selections). Calling this method will overwrite any potentially existing IDs (of the XXX) Parameters ---------- which : {'features', 'samples', 'both'} An attribute is generated for each feature, sample, or both that represents a unique ID. This ID incorporates the dataset instance ID and should allow merging multiple datasets without causing multiple identical ID and the resulting dataset. attr : str Name of the attribute to store the generated IDs in. By convention this should be 'origids' (the default), but might be changed for specific purposes. mode : {'existing', 'new', 'raise'}, optional Action if `attr` is already present in the collection. Default behavior is 'new' whenever new ids are generated and replace existing values if such are present. With 'existing' it would not alter existing content. With 'raise' it would raise `RuntimeError`. Raises ------ `RuntimeError` If `mode` == 'raise' and `attr` is already defined """ # now do evil to ensure unique ids across multiple datasets # so that they could be merged together thisid = str(id(self)) legal_modes = ('raise', 'existing', 'new') if not mode in legal_modes: raise ValueError("Incorrect mode %r. Known are %s." % (mode, legal_modes)) if which in ('samples', 'both'): if attr in self.sa: if mode == 'existing': return elif mode == 'raise': raise RuntimeError("Attribute %r already known to %s" % (attr, self.sa)) ids = np.array(['%s-%i' % (thisid, i) for i in xrange(self.samples.shape[0])]) if attr in self.sa: self.sa[attr].value = ids else: self.sa[attr] = ids if which in ('features', 'both'): if attr in self.sa: if mode == 'existing': return elif mode == 'raise': raise RuntimeError("Attribute %r already known to %s" % (attr, self.fa)) ids = np.array(['%s-%i' % (thisid, i) for i in xrange(self.samples.shape[1])]) if attr in self.fa: self.fa[attr].value = ids else: self.fa[attr] = ids def __copy__(self): return self.copy(deep=False) def __deepcopy__(self, memo=None): return self.copy(deep=True, memo=memo) def __reduce__(self): return (self.__class__, (self.samples, dict(self.sa), dict(self.fa), dict(self.a))) def copy(self, deep=True, sa=None, fa=None, a=None, memo=None): """Create a copy of a dataset. By default this is going to return a deep copy of the dataset, hence no data would be shared between the original dataset and its copy. Parameters ---------- deep : boolean, optional If False, a shallow copy of the dataset is return instead. The copy contains only views of the samples, sample attributes and feature attributes, as well as shallow copies of all dataset attributes. sa : list or None List of attributes in the sample attributes collection to include in the copy of the dataset. If `None` all attributes are considered. If an empty list is given, all attributes are stripped from the copy. fa : list or None List of attributes in the feature attributes collection to include in the copy of the dataset. If `None` all attributes are considered If an empty list is given, all attributes are stripped from the copy. a : list or None List of attributes in the dataset attributes collection to include in the copy of the dataset. If `None` all attributes are considered If an empty list is given, all attributes are stripped from the copy. memo : dict Developers only: This argument is only useful if copy() is called inside the __deepcopy__() method and refers to the dict-argument `memo` in the Python documentation. """ if __debug__: debug('DS_', "Duplicating samples shaped %s" % str(self.samples.shape)) if deep: samples = copy.deepcopy(self.samples, memo) else: samples = self.samples.view() if __debug__: debug('DS_', "Create new dataset instance for copy") # call the generic init out = self.__class__(samples, sa=self.sa.copy(a=sa, deep=deep, memo=memo), fa=self.fa.copy(a=fa, deep=deep, memo=memo), a=self.a.copy(a=a, deep=deep, memo=memo)) if __debug__: debug('DS_', "Return dataset copy %s of source %s" % (_strid(out), _strid(self))) return out def append(self, other): """This method should not be used and will be removed in the future""" warning("AttrDataset.append() is deprecated and will be removed. " "Instead of ds.append(x) use: ds = vstack((ds, x), a=0)") if not self.nfeatures == other.nfeatures: raise DatasetError("Cannot merge datasets, because the number of " "features does not match.") if not sorted(self.sa.keys()) == sorted(other.sa.keys()): raise DatasetError("Cannot merge dataset. This datasets samples " "attributes %s cannot be mapped into the other " "set %s" % (self.sa.keys(), other.sa.keys())) # concat the samples as well self.samples = np.concatenate((self.samples, other.samples), axis=0) # tell the collection the new desired length of all attributes self.sa.set_length_check(len(self.samples)) # concat all samples attributes for k, v in other.sa.iteritems(): self.sa[k].value = np.concatenate((self.sa[k].value, v.value), axis=0) def __getitem__(self, args): """ """ # uniformize for checks below; it is not a tuple if just single slicing # spec is passed if not isinstance(args, tuple): args = (args,) if len(args) > 2: raise ValueError("Too many arguments (%i). At most there can be " "two arguments, one for samples selection and one " "for features selection" % len(args)) # simplify things below and always have samples and feature slicing if len(args) == 1: args = [args[0], slice(None)] else: args = [a for a in args] samples = None # get the intended subset of the samples array # # need to deal with some special cases to ensure proper behavior # # ints need to become lists to prevent silent dimensionality changes # of the arrays when slicing for i, a in enumerate(args): if isinstance(a, int): args[i] = [a] # for simultaneous slicing of numpy arrays we should # distinguish the case when one of the args is a slice, so no # ix_ is needed if __debug__: debug('DS_', "Selecting feature/samples of %s" % str(self.samples.shape)) if isinstance(self.samples, np.ndarray): if np.any([isinstance(a, slice) for a in args]): samples = self.samples[args[0], args[1]] else: # works even with bool masks (although without # assurance/checking if mask is of actual length as # needed, so would work with bogus shorter # masks). TODO check in __debug__? or may be just do # enforcing of proper dimensions and order manually? samples = self.samples[np.ix_(*args)] else: # in all other cases we have to do the selection sequentially # # samples subset: only alter if subset is requested samples = self.samples[args[0]] # features subset if not args[1] is slice(None): samples = samples[:, args[1]] if __debug__: debug('DS_', "Selected feature/samples %s" % str(self.samples.shape)) # and now for the attributes -- we want to maintain the type of the # collections sa = self.sa.__class__(length=samples.shape[0]) fa = self.fa.__class__(length=samples.shape[1]) a = self.a.__class__() # per-sample attributes; always needs to run even if slice(None), since # we need fresh SamplesAttributes even if they share the data for attr in self.sa.values(): # preserve attribute type newattr = attr.__class__(doc=attr.__doc__) # slice newattr.value = attr.value[args[0]] # assign to target collection sa[attr.name] = newattr # per-feature attributes; always needs to run even if slice(None), # since we need fresh SamplesAttributes even if they share the data for attr in self.fa.values(): # preserve attribute type newattr = attr.__class__(doc=attr.__doc__) # slice newattr.value = attr.value[args[1]] # assign to target collection fa[attr.name] = newattr # and finally dataset attributes: this time copying for attr in self.a.values(): # preserve attribute type newattr = attr.__class__(name=attr.name, doc=attr.__doc__) # do a shallow copy here # XXX every DatasetAttribute should have meaningful __copy__ if # necessary -- most likely all mappers need to have one newattr.value = copy.copy(attr.value) # assign to target collection a[attr.name] = newattr # and after a long way instantiate the new dataset of the same type return self.__class__(samples, sa=sa, fa=fa, a=a) def __repr_full__(self): return "%s(%s, sa=%s, fa=%s, a=%s)" \ % (self.__class__.__name__, repr(self.samples), repr(self.sa), repr(self.fa), repr(self.a)) def __str__(self): samplesstr = 'x'.join(["%s" % x for x in self.shape]) samplesstr += '@%s' % self.samples.dtype cols = [str(col).replace(col.__class__.__name__, label) for col, label in [(self.sa, 'sa'), (self.fa, 'fa'), (self.a, 'a')] if len(col)] # include only collections that have content return _str(self, samplesstr, *cols) __repr__ = {'full': __repr_full__, 'str': __str__}[__REPR_STYLE__] def __array__(self, *args): """Provide an 'array' view or copy over dataset.samples Parameters ---------- dtype: type, optional If provided, passed to .samples.__array__() call *args to mimique numpy.ndarray.__array__ behavior which relies on the actual number of arguments """ # another possibility would be converting .todense() for sparse data # but that might easily kill the machine ;-) if not hasattr(self.samples, '__array__'): raise RuntimeError( "This AttrDataset instance cannot be used like a Numpy array " "since its data-container does not provide an '__array__' " "methods. Container type is %s." % type(self.samples)) return self.samples.__array__(*args) def __len__(self): return self.shape[0] @classmethod def from_hdf5(cls, source, name=None): """Load a Dataset from HDF5 file Parameters ---------- source : string or h5py.highlevel.File Filename or HDF5's File to load dataset from name : string, optional If file contains multiple entries at the 1st level, if provided, `name` specifies the group to be loaded as the AttrDataset. Returns ------- AttrDataset Raises ------ ValueError """ if not externals.exists('h5py'): raise RuntimeError( "Missing 'h5py' package -- saving is not possible.") import h5py from mvpa2.base.hdf5 import hdf2obj # look if we got an hdf file instance already if isinstance(source, h5py.highlevel.File): own_file = False hdf = source else: own_file = True hdf = h5py.File(source, 'r') if name is not None: # some HDF5 subset is requested if not name in hdf: raise ValueError("Cannot find '%s' group in HDF file %s. " "File contains groups: %s" % (name, source, hdf.keys())) # access the group that should contain the dataset dsgrp = hdf[name] res = hdf2obj(dsgrp) if not isinstance(res, AttrDataset): # TODO: unittest before committing raise ValueError("%r in %s contains %s not a dataset. " "File contains groups: %s." % (name, source, type(res), hdf.keys())) else: # just consider the whole file res = hdf2obj(hdf) if not isinstance(res, AttrDataset): # TODO: unittest before committing raise ValueError("Failed to load a dataset from %s. " "Loaded %s instead." % (source, type(res))) if own_file: hdf.close() return res def to_npz(self, filename, compress=True): """Save dataset to a .npz file storing all fa/sa/a which are ndarrays Parameters ---------- filename : str compress : bool, optional If True, savez_compressed is used """ savez = np.savez_compressed if compress else np.savez if not filename.endswith('.npz'): filename += '.npz' entries = {'samples': self.samples} skipped = [] for c in ('a', 'fa', 'sa'): col = getattr(self, c) for k in col: v = col[k].value e = '%s.%s' % (c, k) if isinstance(v, np.ndarray): entries[e] = v else: skipped.append(e) if skipped: warning("Skipping %s since not ndarrays" % (', '.join(skipped))) return savez(filename, **entries) @classmethod def from_npz(cls, filename): """Load dataset from NumPy's .npz file, as e.g. stored by to_npz File expected to have 'samples' item, which serves as samples, and other items prefixed with the corresponding collection (e.g. 'sa.' or 'fa.'). All other entries are skipped Parameters ---------- filename: str Filename for the .npz file. Can be specified without .npz suffix """ # some sugaring filename_npz = filename + '.npz' if not lexists(filename) and not filename.endswith('.npz') and lexists(filename_npz): filename = filename_npz entries = np.load(filename) cols = {'a': {}, 'fa': {}, 'sa': {}} skipped = [] for e, v in entries.items(): if e == 'samples': samples = v else: if '.' not in e: skipped.append(e) continue c, k = e.split('.', 1) if c not in cols: skipped.append(e) continue cols[c][k] = v if skipped: warning("Skipped following items since do not belong to any of " "known collections: %s" % (", ".join(sorted(skipped)))) return cls(samples, **cols) # shortcut properties nsamples = property(fget=len) nfeatures = property(fget=lambda self: self.shape[1]) shape = property(fget=lambda self: self.samples.shape) def datasetmethod(func): """Decorator to easily bind functions to an AttrDataset class """ if __debug__: debug("DS_", "Binding function %s to AttrDataset class" % func.func_name) # Bind the function setattr(AttrDataset, func.func_name, func) # return the original one return func def vstack(datasets, a=None, fa='drop_nonunique'): """Stacks datasets vertically (appending samples). All datasets must have an identical set of sample attributes (matching keys, not values), otherwise a ValueError will be raised. See `a` argument documentation for transferring dataset attributes, and `fa` argument for feature attributes -- by default feature attributes which differ in any input dataset from the others would be dropped. Parameters ---------- datasets : tuple Sequence of datasets to be stacked. a: {'unique','drop_nonunique','uniques','all'} or True or False or None (default: None) Indicates which dataset attributes from datasets are stored in merged_dataset. If an int k, then the dataset attributes from datasets[k] are taken. If 'unique' then it is assumed that any attribute common to more than one dataset in datasets is unique; if not an exception is raised. If 'drop_nonunique' then as 'unique', except that exceptions are not raised. If 'uniques' then, for each attribute, any unique value across the datasets is stored in a tuple in merged_datasets. If 'all' then each attribute present in any dataset across datasets is stored as a tuple in merged_datasets; missing values are replaced by None. If None (the default) then no attributes are stored in merged_dataset. True is equivalent to 'drop_nonunique'. False is equivalent to None. fa: {'update', 'drop_nonunique'}, (default: 'drop_nonunique') Indicate which feature attributes are stored in merged dataset. If 'update' - attributes are updated while growing the dataset. If 'drop_nonunique', attribute would be dropped from the dataset if its value differs across datasets for any feature. Returns ------- AttrDataset (or respective subclass) """ if not len(datasets): raise ValueError('concatenation of zero-length sequences is impossible') if not len(datasets) > 1: # trivial vstack return datasets[0] # fall back to numpy if it is not a dataset if not is_datasetlike(datasets[0]): return AttrDataset(np.vstack(datasets)) if __debug__: target = sorted(datasets[0].sa.keys()) if not np.all([sorted(ds.sa.keys()) == target for ds in datasets]): raise ValueError("Sample attributes collections of to be stacked " "datasets have varying attributes.") # will puke if not equal number of features stacked_samp = np.concatenate([ds.samples for ds in datasets], axis=0) stacked_sa = {} for attr in datasets[0].sa: stacked_sa[attr] = np.concatenate( [ds.sa[attr].value for ds in datasets], axis=0) # create the dataset merged = datasets[0].__class__(stacked_samp, sa=stacked_sa) _stack_add_equal_attributes(merged, datasets, fa, 'fa') _stack_add_equal_dataset_attributes(merged, datasets, a) return merged def hstack(datasets, a=None, sa='drop_nonunique'): """Stacks datasets horizontally (appending features). All datasets must have an identical set of sample attributes (matching keys, not values), otherwise a ValueError will be raised. See `a` argument documentation for transferring dataset attributes, and `sa` argument for sample attributes -- by default sample attributes which differ in any input dataset from the others would be dropped. Parameters ---------- datasets : tuple Sequence of datasets to be stacked. a: {'unique','drop_nonunique','uniques','all'} or True or False or None (default: None) Indicates which dataset attributes from datasets are stored in merged_dataset. If an int k, then the dataset attributes from datasets[k] are taken. If 'unique' then it is assumed that any attribute common to more than one dataset in datasets is unique; if not an exception is raised. If 'drop_nonunique' then as 'unique', except that exceptions are not raised. If 'uniques' then, for each attribute, any unique value across the datasets is stored in a tuple in merged_datasets. If 'all' then each attribute present in any dataset across datasets is stored as a tuple in merged_datasets; missing values are replaced by None. If None (the default) then no attributes are stored in merged_dataset. True is equivalent to 'drop_nonunique'. False is equivalent to None. sa: {'update', 'drop_nonunique'}, (default: 'update') Indicate which feature attributes are stored in merged dataset. If 'update' - attributes are updated while growing the dataset. If 'drop_nonunique', attribute would be dropped from the dataset if its value differs across datasets for any sample. Returns ------- AttrDataset (or respective subclass) """ # # XXX Use CombinedMapper in here whenever it comes back # if not len(datasets): raise ValueError('concatenation of zero-length sequences is impossible') if not len(datasets) > 1: # trivial hstack return datasets[0] # fall back to numpy if it is not a dataset if not is_datasetlike(datasets[0]): # we might get a list of 1Ds that would yield wrong results when # turned into a dict (would run along samples-axis) return AttrDataset(np.atleast_2d(np.hstack(datasets))) if __debug__: target = sorted(datasets[0].fa.keys()) if not np.all([sorted(ds.fa.keys()) == target for ds in datasets]): raise ValueError("Feature attributes collections of to be stacked " "datasets have varying attributes.") # will puke if not equal number of samples stacked_samp = np.concatenate([ds.samples for ds in datasets], axis=1) stacked_fa = {} for attr in datasets[0].fa: stacked_fa[attr] = np.concatenate( [ds.fa[attr].value for ds in datasets], axis=0) # create the dataset merged = datasets[0].__class__(stacked_samp, fa=stacked_fa) _stack_add_equal_attributes(merged, datasets, sa, 'sa') _stack_add_equal_dataset_attributes(merged, datasets, a) return merged def _stack_add_equal_attributes(merged, datasets, strategy, colname): """Helper function for vstack and hstack to perform update of the corresponding collection according to the strategy """ mergedcol = getattr(merged, colname) if strategy == 'update': for ds in datasets: mergedcol.update(getattr(ds, colname)) elif strategy == 'drop_nonunique': # discover those attributes which differ drop = set() ds0 = datasets[0] ds0col = getattr(ds0, colname) for ds in datasets[1:]: dscol = getattr(ds, colname) for attr, v in dscol.iteritems(): if ((attr not in ds0col) or np.any(ds0col[attr].value != v.value)): drop.add(attr) # and ds0 might have some attributes which others don't for attr in ds0col: if attr not in dscol: drop.add(attr) # now update but only those which to not drop for ds in datasets: mergedcol.update( {attr: v for attr, v in getattr(ds, colname).items() if attr not in drop} ) else: raise ValueError("Unknown strategy %s on how to deal with %s collection" % (strategy, colname)) def all_equal(x, y): '''General function that compares two values. Usually this function behaves like x==y and type(x)==type(y), but for numpy arrays it behaves like np.array_equal(x==y). Parameters ---------- x, y : any type Elements to be compared Returns ------- eq: bool True iff x and y are equal. If in the comparison of x and y and exception is thrown then False is returned This comparison is performed element-wise, if applicable, and in that case True is only returned if all elements are equal ''' # an equality comparison that also works on numpy arrays try: eq = x == y except: # we can get here, in case of dictionaries with non-simple values # (e.g. arrays) try: if not set(x.keys()) == set(y.keys()): return False keys = list(x.keys()) x = [x[k] for k in keys] y = [y[k] for k in keys] # this is just for fooling the next test eq = [0, 1] except: # cannot do more than try return False # eq could be a numpy array or similar. See if it has a length try: len(eq) # that's fine, so we can zip x and y (below) # and compare by elements except TypeError: # if it's just a bool (or boolean-like, such as numpy.bool_) # then see if it is True or not if eq == True or eq == False: # also consider the case that eq is a numpy boolean array # with just a single element - so compare to True return eq == True else: # no idea what to do raise # because of numpy's broadcasting either x or y may # be a scaler yet eq could be an array try: same_length = len(x) == len(y) if not same_length: return False except: return False # do a recursive call on all elements return all(all_equal(xx, yy) for (xx, yy) in zip(x, y)) def _stack_add_equal_dataset_attributes(merged_dataset, datasets, a=None): """Helper function for vstack and hstack to find dataset attributes common to a set of datasets, and at them to the output. Note:by default this function does nothing because testing for equality may be messy for certain types; to override a value should be assigned to the add_keys argument. Parameters ---------- merged_dataset: Dataset the output dataset to which attributes are added datasets: tuple of Dataset Sequence of datasets to be stacked. Only attributes present in all datasets and with identical values are put in merged_dataset a: {'unique','drop_nonunique','uniques','all'} or True or False or None (default: None). Indicates which dataset attributes from datasets are stored in merged_dataset. If an int k, then the dataset attributes from datasets[k] are taken. If 'unique' then it is assumed that any attribute common to more than one dataset in datasets is unique; if not an exception is raised. If 'drop_nonunique' then as 'unique', except that exceptions are not raised. If 'uniques' then, for each attribute, any unique value across the datasets is stored in a tuple in merged_datasets. If 'all' then each attribute present in any dataset across datasets is stored as a tuple in merged_datasets; missing values are replaced by None. If None (the default) then no attributes are stored in merged_dataset. True is equivalent to 'drop_nonunique'. False is equivalent to None. """ if a is None or a is False: # do nothing return elif a is True: a = 'drop_nonunique' if not datasets: # empty - so nothing to do return if type(a) is int: base_dataset = datasets[a] for key in base_dataset.a.keys(): merged_dataset.a[key] = base_dataset.a[key].value return allowed_values = ['unique', 'uniques', 'drop_nonunique', 'all'] if not a in allowed_values: raise ValueError("a should be an int or one of " "%r" % allowed_values) # consider all keys that are present in at least one dataset all_keys = set.union(*[set(dataset.a.keys()) for dataset in datasets]) def _contains(xs, y, comparator=all_equal): for x in xs: if comparator(x, y): return True return False for key in all_keys: add_key = True values = [] for i, dataset in enumerate(datasets): if not key in dataset.a: if a == 'all': values.append(None) continue value = dataset.a[key].value if a in ('drop_nonunique', 'unique'): if not values: values.append(value) elif not _contains(values, value): if a == 'unique': raise DatasetError("Not unique dataset attribute value " " for %s: %s and %s" % (key, values[0], value)) else: add_key = False break elif a == 'uniques': if not _contains(values, value): values.append(value) elif a == 'all': values.append(value) else: raise ValueError("this should not happen: %s" % a) if add_key: if a in ('drop_nonunique', 'unique'): merged_dataset.a[key] = values[0] else: merged_dataset.a[key] = tuple(values) def _expand_attribute(attr, length, attr_name): """Helper function to expand attributes to a desired length. If e.g. a sample attribute is given as a scalar expand/repeat it to a length matching the number of samples in the dataset. """ try: # if we are initializing with a single string -- we should # treat it as a single label if isinstance(attr, basestring): raise TypeError if len(attr) != length: raise ValueError("Length of attribute '%s' [%d] has to be %d." % (attr_name, len(attr), length)) # sequence as array return np.asanyarray(attr) except TypeError: # make sequence of identical value matching the desired length return np.repeat(attr, length) def stack_by_unique_sample_attribute(dataset, sa_label): """Performs hstack based on unique values in sa_label Parameters ---------- dataset: Dataset input dataset. sa_label: str sample attribute label according which samples in dataset are stacked. Returns ------- stacked_dataset: Dataset A dataset where matching features are joined (hstacked). If the number of matching features differs for values in sa_label and exception is raised. """ unq, masks = _get_unique_attribute_masks(dataset.sa[sa_label].value) ds = [] for i, mask in enumerate(masks): d = dataset[mask, :] d.fa[sa_label] = [unq[i]] * d.nfeatures ds.append(d) stacked_ds = hstack(ds, True) return stacked_ds def stack_by_unique_feature_attribute(dataset, fa_label): """Performs vstack based on unique values in fa_label Parameters ---------- dataset: Dataset input dataset. fa_label: str feature attribute label according which samples in dataset are stacked. Returns stacked_dataset: Dataset A dataset where matching samples are joined. This dataset has a sample attribute fa_label added and the feature attribute fa_label removed. If the number of matching features differs for values in sa_label and exception is raised. """ unq, masks = _get_unique_attribute_masks(dataset.fa[fa_label].value) ds = [] for i, mask in enumerate(masks): d = dataset[:, mask] d.sa[fa_label] = [unq[i]] * d.nsamples ds.append(d) stacked_ds = vstack(ds, True) return stacked_ds def _get_unique_attribute_masks(xs, raise_unequal_count=True): '''Helper function to get masks for each unique value''' unq = np.unique(xs) masks = [x == xs for x in unq] if raise_unequal_count: hs = [np.sum(mask) for mask in masks] for i, h in enumerate(hs): if i == 0: h0 = h elif h != h0: raise ValueError('Value mismatch between input 0 and %d:' ' %s != %s' % (i, h, h0)) return unq, masks def split_by_sample_attribute(ds, sa_label, raise_unequal_count=True): '''Splits a dataset based on unique values of a sample attribute Parameters ---------- d: Dataset input dataset sa_label: str or list of str sample attribute label(s) on which the split is based Returns ------- ds: list of Dataset List with n datasets, if d.sa[sa_label] has n unique values ''' if type(sa_label) in (list, tuple): label0 = sa_label[0] sas = split_by_sample_attribute(ds, label0, raise_unequal_count) if len(sa_label) == 1: return sas else: return sum([split_by_sample_attribute(sa, sa_label[1:], raise_unequal_count) for sa in sas], []) _, masks = _get_unique_attribute_masks( ds.sa[sa_label].value, raise_unequal_count=raise_unequal_count) return [ds[mask, :].copy(deep=False) for mask in masks] def split_by_feature_attribute(ds, fa_label, raise_unequal_count=True): '''Splits a dataset based on unique values of a feature attribute Parameters ---------- d: Dataset input dataset sa_label: str or list of str sample attribute label(s) on which the split is based Returns ------- ds: list of Dataset List with n datasets, if d.fa[fa_label] has n unique values ''' if type(fa_label) in (list, tuple): label0 = fa_label[0] fas = split_by_feature_attribute(ds, label0, raise_unequal_count) if len(fa_label) == 1: return fas else: return sum([split_by_feature_attribute(fa, fa_label[1:], raise_unequal_count) for fa in fas], []) _, masks = _get_unique_attribute_masks( ds.fa[fa_label].value, raise_unequal_count=raise_unequal_count) return [ds[:, mask].copy(deep=False) for mask in masks] class DatasetError(Exception): """Thrown if there is a problem with the internal integrity of a Dataset. """ # A ValueError exception is too generic to be used for any needed case, # thus this one is created pass class DatasetAttributeExtractor(object): """Helper to extract arbitrary attributes from dataset collections. Examples -------- >>> ds = AttrDataset(np.arange(12).reshape((4,3)), ... sa={'targets': range(4)}, ... fa={'foo': [0,0,1]}) >>> ext = DAE('sa', 'targets') >>> ext(ds) array([0, 1, 2, 3]) >>> ext = DAE('fa', 'foo') >>> ext(ds) array([0, 0, 1]) """ def __init__(self, col, key): """ Parameters ---------- col : {'sa', 'fa', 'a'} The respective collection to extract an attribute from. key : arbitrary The name/key of the attribute in the collection. """ self._col = col self._key = key def __call__(self, ds): """ Parameters ---------- ds : AttrDataset """ return ds.__dict__[self._col][self._key].value def __repr__(self): return "%s(%s, %s)" % (self.__class__.__name__, repr(self._col), repr(self._key)) # shortcut that allows for more finger/screen-friendly specification of # attribute extraction DAE = DatasetAttributeExtractor @datasetmethod def save(dataset, destination, name=None, compression=None): """Save Dataset into HDF5 file Parameters ---------- dataset : `Dataset` destination : `h5py.highlevel.File` or str name : str, optional compression : None or int or {'gzip', 'szip', 'lzf'}, optional Level of compression for gzip, or another compression strategy. """ if not externals.exists('h5py'): raise RuntimeError("Missing 'h5py' package -- saving is not possible.") import h5py from mvpa2.base.hdf5 import obj2hdf # look if we got an hdf file instance already if isinstance(destination, h5py.highlevel.File): own_file = False hdf = destination else: own_file = True hdf = h5py.File(destination, 'w') obj2hdf(hdf, dataset, name, compression=compression) # if we opened the file ourselves we close it now if own_file: hdf.close() return pymvpa2-2.6.4/mvpa2/base/dochelpers.py000066400000000000000000000544271323370031300175710ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Various helpers to improve docstrings and textual output""" __docformat__ = 'restructuredtext' import re, textwrap types = __import__('types') # for table2string import numpy as np from math import ceil from StringIO import StringIO from mvpa2 import cfg from mvpa2.base.externals import versions, exists if __debug__: from mvpa2.base import debug __add_init2doc = False __in_ipython = exists('running ipython env') # if ran within IPython -- might need to add doc to init if __in_ipython: __rst_mode = False # either to do ReST links at all if versions['ipython'] <= '0.8.1': __add_init2doc = True else: __rst_mode = True # # Predefine some sugarings depending on syntax convention to be used # # XXX Might need to be removed or become proper cfg parameter __rst_conventions = 'numpy' if __rst_conventions == 'epydoc': _rst_sep = "`" _rst_indentstr = " " def _rst_section(section_name): """Provide section heading""" return ":%s:" % section_name elif __rst_conventions == 'numpy': _rst_sep = "" _rst_indentstr = "" def _rst_section(section_name): """Provide section heading""" return "%s\n%s" % (section_name, '-'*len(section_name)) else: raise ValueError, "Unknown convention %s for RST" % __rst_conventions def _rst(s, snotrst=''): """Produce s only in __rst mode""" if __rst_mode: return s else: return snotrst def _rst_underline(text, markup): """Add and underline RsT string matching the length of the given string. """ return text + '\n' + markup * len(text) def single_or_plural(single, plural, n): """Little helper to spit out single or plural version of a word. """ ni = int(n) if ni > 1 or ni == 0: # 1 forest, 2 forests, 0 forests return plural else: return single def handle_docstring(text, polite=True): """Take care of empty and non existing doc strings.""" if text is None or not len(text): if polite: return '' #No documentation found. Sorry!' else: return '' else: # Problem is that first line might often have no offset, so might # need to be ignored from dedent call if not text.startswith(' '): lines = text.split('\n') text2 = '\n'.join(lines[1:]) return lines[0] + "\n" + textwrap.dedent(text2) else: return textwrap.dedent(text) def _indent(text, istr=_rst_indentstr): """Simple indenter """ return '\n'.join(istr + s for s in text.split('\n')) __parameters_str_re = re.compile("[\n^]\s*:?Parameters?:?\s*\n(:?\s*-+\s*\n)?") """regexp to match :Parameter: and :Parameters: stand alone in a line or Parameters ---------- in multiple lines""" def _split_out_parameters(initdoc): """Split documentation into (header, parameters, suffix) Parameters ---------- initdoc : string The documentation string """ # TODO: bind it to the only word in the line p_res = __parameters_str_re.search(initdoc) if p_res is None: return initdoc, "", "" else: # Could have been accomplished also via re.match # where new line is after :Parameters: # parameters header index ph_i = p_res.start() # parameters body index pb_i = p_res.end() # end of parameters try: pe_i = initdoc.index('\n\n', pb_i) except ValueError: pe_i = len(initdoc) result = initdoc[:ph_i].rstrip('\n '), \ initdoc[pb_i:pe_i], initdoc[pe_i:] # XXX a bit of duplication of effort since handle_docstring might # do splitting internally return handle_docstring(result[0], polite=False).strip('\n'), \ textwrap.dedent(result[1]).strip('\n'), \ textwrap.dedent(result[2]).strip('\n') __re_params = re.compile('(?:\n\S.*?)+$') __re_spliter1 = re.compile('\n(?=\S)') __re_spliter2 = re.compile('[\n:]') def _parse_parameters(paramdoc): """Parse parameters and return list of (name, full_doc_string) It is needed to remove multiple entries for the same parameter like it could be with adding parameters from the parent class It assumes that previously parameters were unwrapped, so their documentation starts at the begining of the string, like what should it be after _split_out_parameters """ entries = __re_spliter1.split(paramdoc) result = [(__re_spliter2.split(e)[0].strip(), e) for e in entries if e != ''] if __debug__: debug('DOCH', 'parseParameters: Given "%s", we split into %s' % (paramdoc, result)) return result def get_docstring_split(f): """Given a function, break it up into portions Parameters ---------- f : function Returns ------- (initial doc string, params (as list of tuples), suffix string) """ if not hasattr(f, '__doc__') or f.__doc__ in (None, ""): return None, None, None initdoc, params, suffix = _split_out_parameters( f.__doc__) params_list = _parse_parameters(params) return initdoc, params_list, suffix def enhanced_doc_string(item, *args, **kwargs): """Generate enhanced doc strings for various items. Parameters ---------- item : str or class What object requires enhancing of documentation *args : list Includes base classes to look for parameters, as well, first item must be a dictionary of locals if item is given by a string force_extend : bool Either to force looking for the documentation in the parents. By default force_extend = False, and lookup happens only if kwargs is one of the arguments to the respective function (e.g. item.__init__) skip_params : list of str List of parameters (in addition to [kwargs]) which should not be added to the documentation of the class. It is to be used from a collector, ie whenever class is already created """ # Handling of arguments if len(kwargs): if set(kwargs.keys()).issubset(set(['force_extend'])): raise ValueError, "Got unknown keyword arguments (smth among %s)" \ " in enhanced_doc_string." % kwargs force_extend = kwargs.get('force_extend', False) skip_params = kwargs.get('skip_params', []) # XXX make it work also not only with classes but with methods as well if isinstance(item, basestring): if len(args)<1 or not isinstance(args[0], dict): raise ValueError, \ "Please provide locals for enhanced_doc_string of %s" % item name = item lcl = args[0] args = args[1:] elif hasattr(item, "im_class"): # bound method raise NotImplementedError, \ "enhanced_doc_string is not yet implemented for methods" elif hasattr(item, "__name__"): name = item.__name__ lcl = item.__dict__ else: raise ValueError, "Don't know how to extend docstring for %s" % item # check whether docstring magic is requested or not if not cfg.getboolean('doc', 'pimp docstrings', True): return lcl['__doc__'] if __debug__: debug('DOCH', 'Processing docstrings of %s' % name) #return lcl['__doc__'] rst_lvlmarkup = ["=", "-", "_"] # would then be called for any child... ok - ad hoc for SVM??? if hasattr(item, '_customize_doc') and name=='SVM': item._customize_doc() initdoc = "" if '__init__' in lcl: func = lcl['__init__'] initdoc = func.__doc__ skip_params += lcl.get('__init__doc__exclude__', []) # either to extend arguments # do only if kwargs is one of the arguments # in python 2.5 args are no longer in co_names but in varnames extend_args = force_extend or \ 'kwargs' in (func.func_code.co_names + func.func_code.co_varnames) if __debug__ and not extend_args: debug('DOCH', 'Not extending parameters for __init__ of %s', (name,)) if initdoc is None: initdoc = "Initialize instance of %s" % name initdoc, params, suffix = _split_out_parameters(initdoc) params_list = _parse_parameters(params) known_params = set([i[0] for i in params_list]) # If there are additional ones: if '_paramsdoc' in lcl: params_list += [i for i in lcl['_paramsdoc'] if not (i[0] in known_params)] known_params = set([i[0] for i in params_list]) # no need for placeholders skip_params = set(skip_params + ['kwargs', '**kwargs']) # XXX we do evil check here, refactor code to separate # regressions out of the classifiers, and making # retrainable flag not available for those classes which # can't actually do retraining. Although it is not # actually that obvious for Meta Classifiers if hasattr(item, '__tags__'): clf_internals = item.__tags__ skip_params.update([i for i in ('retrainable',) if not (i in clf_internals)]) known_params.update(skip_params) if extend_args: # go through all the parents and obtain their init parameters parent_params_list = [] for i in args: if hasattr(i, '__init__'): # XXX just assign within a class to don't redo without need initdoc_ = i.__init__.__doc__ if initdoc_ is None: continue splits_ = _split_out_parameters(initdoc_) params_ = splits_[1] parent_params_list += _parse_parameters(params_.lstrip()) # extend with ones which are not known to current init for i, v in parent_params_list: if not (i in known_params): params_list += [(i, v)] known_params.update([i]) # if there are parameters -- populate the list if len(params_list): params_ = '\n'.join([i[1].rstrip() for i in params_list if not i[0] in skip_params]) initdoc += "\n\n%s\n" \ % _rst_section('Parameters') + _indent(params_) if suffix != "": initdoc += "\n\n" + suffix initdoc = handle_docstring(initdoc) # Finally assign generated doc to the constructor lcl['__init__'].__doc__ = initdoc docs = [ handle_docstring(lcl['__doc__']) ] # Optionally populate the class documentation with it if __add_init2doc and initdoc != "": docs += [ _rst_underline('Constructor information for `%s` class' % name, rst_lvlmarkup[2]), initdoc ] # Add information about the ca if available if '_cadoc' in lcl and len(item._cadoc): # to don't conflict with Notes section if such was already # present lcldoc = lcl['__doc__'] or '' if not 'Notes' in lcldoc: section_name = _rst_section('Notes') else: section_name = '\n' # just an additional newline # no indent is necessary since ca list must be already indented docs += ['%s\nAvailable conditional attributes:' % section_name, handle_docstring(item._cadoc)] # Deprecated -- but actually we might like to have it in ipython # mode may be? if False: #len(args): bc_intro = _rst(' ') + 'Please refer to the documentation of the ' \ 'base %s for more information:' \ % (single_or_plural('class', 'classes', len(args))) docs += ['\n' + _rst_section('See Also'), bc_intro, ' ' + ',\n '.join(['%s%s.%s%s%s' % (_rst(':class:`~'), i.__module__, i.__name__, _rst('`'), _rst_sep) for i in args]) ] itemdoc = '\n\n'.join(docs) # remove some bogus new lines -- never 3 empty lines in doc are useful result = re.sub("\s*\n\s*\n\s*\n", "\n\n", itemdoc) return result def table2string(table, out=None): """Given list of lists figure out their common widths and print to out Parameters ---------- table : list of lists of strings What is aimed to be printed out : None or stream Where to print. If None -- will print and return string Returns ------- string if out was None """ print2string = out is None if print2string: out = StringIO() # equalize number of elements in each row Nelements_max = len(table) \ and max(len(x) for x in table) for i, table_ in enumerate(table): table[i] += [''] * (Nelements_max - len(table_)) # figure out lengths within each column atable = np.asarray(table).astype(str) # eat whole entry while computing width for @w (for wide) markup_strip = re.compile('^@([lrc]|w.*)') col_width = [ max( [len(markup_strip.sub('', x)) for x in column] ) for column in atable.T ] string = "" for i, table_ in enumerate(table): string_ = "" for j, item in enumerate(table_): item = str(item) if item.startswith('@'): align = item[1] item = item[2:] if not align in ['l', 'r', 'c', 'w']: raise ValueError, 'Unknown alignment %s. Known are l,r,c' % align else: align = 'c' NspacesL = max(ceil((col_width[j] - len(item))/2.0), 0) NspacesR = max(col_width[j] - NspacesL - len(item), 0) if align in ['w', 'c']: pass elif align == 'l': NspacesL, NspacesR = 0, NspacesL + NspacesR elif align == 'r': NspacesL, NspacesR = NspacesL + NspacesR, 0 else: raise RuntimeError, 'Should not get here with align=%s' % align string_ += "%%%ds%%s%%%ds " \ % (NspacesL, NspacesR) % ('', item, '') string += string_.rstrip() + '\n' out.write(string) if print2string: value = out.getvalue() out.close() return value def _saferepr(f): """repr which would not repr instances of bound methods since that might recurse See: bound methods to its instances https://github.com/PyMVPA/PyMVPA/issues/122 """ if type(f) == types.MethodType: objid = _strid(f.im_self) if __debug__ and 'ID_IN_REPR' in debug.active else "" return "" % (f.im_class.__name__, objid, f.__func__.__name__) else: return repr(f) def _repr_attrs(obj, attrs, default=None, error_value='ERROR'): """Helper to obtain a list of formatted attributes different from the default """ out = [] for a in attrs: v = getattr(obj, a, error_value) if not (v is default or isinstance(v, basestring) and v == default): out.append('%s=%s' % (a, _saferepr(v))) return out def _repr(obj, *args, **kwargs): """Helper to get a structured __repr__ for all objects. Parameters ---------- obj : object This will typically be `self` of the to be documented object. *args, **kwargs : str An arbitrary number of additional items. All of them must be of type `str`. All items will be appended comma separated to the class name. Keyword arguments will be appended as `key`=`value. Returns ------- str """ cls_name = obj.__class__.__name__ truncate = cfg.get_as_dtype('verbose', 'truncate repr', int, default=200) # -5 to take (...) into account max_length = truncate - 5 - len(cls_name) if max_length < 0: max_length = 0 auto_repr = ', '.join(list(args) + ["%s=%s" % (k, v) for k, v in kwargs.iteritems()]) if truncate is not None and len(auto_repr) > max_length: auto_repr = auto_repr[:max_length] + '...' # finally wrap in <> and return # + instead of '%s' for bits of speedup return "%s(%s)" % (cls_name, auto_repr) def _strid(obj): """Helper for centralized string id representation in debug msgs """ return "#%d" % (id(obj)) def strip_strid(s): """Strip off strids (#NUMBER) within a string """ return re.sub("#[0-9]{7,100}", "", s) def _str(obj, *args, **kwargs): """Helper to get a structured __str__ for all objects. If an object has a `descr` attribute, its content will be used instead of an auto-generated description. Optional additional information might be added under certain debugging conditions (e.g. `id(obj)`). Parameters ---------- obj : object This will typically be `self` of the to be documented object. *args, **kwargs : str An arbitrary number of additional items. All of them must be of type `str`. All items will be appended comma separated to the class name. Keyword arguments will be appended as `key`=`value. Returns ------- str """ truncate = cfg.get_as_dtype('verbose', 'truncate str', int, default=200) s = None # don't do descriptions for dicts like our collections as they might contain # an actual item 'descr' if hasattr(obj, 'descr') and not isinstance(obj, dict): s = obj.descr if s is None: s = obj.__class__.__name__ auto_descr = ', '.join(list(args) + ["%s=%s" % (k, v) for k, v in kwargs.iteritems()]) if len(auto_descr): s = s + ': ' + auto_descr if truncate is not None and len(s) > truncate - 5: # -5 to take <...> into account s = s[:truncate-5] + '...' if __debug__ and 'DS_ID' in debug.active: # in case there was nothing but the class name if len(s): if s[-1]: s += ',' s += ' ' s += _strid(obj) # finally wrap in <> and return # + instead of '%s' for bits of speedup return '<' + s + '>' def safe_str(obj): """Return string of an object even if str() call fails """ try: return str(obj) except Exception as exc: return "%s(FAILED str due to %s)" % (type(obj), str(exc)) def borrowdoc(cls, methodname=None): """Return a decorator to borrow docstring from another `cls`.`methodname` It should not be used for __init__ methods of classes derived from ClassWithCollections since __doc__'s of those are handled by the AttributeCollector anyways. Common use is to borrow a docstring from the class's method for an adapter function (e.g. sphere_searchlight borrows from Searchlight) Examples -------- To borrow `__repr__` docstring from parent class `Mapper`, do:: @borrowdoc(Mapper) def __repr__(self): ... Parameters ---------- cls Usually a parent class methodname : None or str Name of the method from which to borrow. If None, would use the same name as of the decorated method """ def _borrowdoc(method): """Decorator which assigns to the `method` docstring from another """ if methodname is None: other_method = getattr(cls, method.__name__) else: other_method = getattr(cls, methodname) if hasattr(other_method, '__doc__'): method.__doc__ = other_method.__doc__ return method return _borrowdoc def borrowkwargs(cls, methodname=None, exclude=None): """Return a decorator which would borrow docstring for ``**kwargs`` Notes ----- TODO: take care about ``*args`` in a clever way if those are also present Examples -------- In the simplest scenario -- just grab all arguments from parent class:: @borrowkwargs(A) def met1(self, bu, **kwargs): pass Parameters ---------- methodname : None or str Name of the method from which to borrow. If None, would use the same name as of the decorated method exclude : None or list of arguments to exclude If function does not pass all ``**kwargs``, you would need to list those here to be excluded from borrowed docstring """ def _borrowkwargs(method): """Decorator which borrows docstrings for ``**kwargs`` for the `method` """ if methodname is None: other_method = getattr(cls, method.__name__) else: other_method = getattr(cls, methodname) # TODO: # method.__doc__ = enhanced_from(other_method.__doc__) mdoc, odoc = method.__doc__, other_method.__doc__ if mdoc is None: mdoc = '' mpreamble, mparams, msuffix = _split_out_parameters(mdoc) opreamble, oparams, osuffix = _split_out_parameters(odoc) mplist = _parse_parameters(mparams) oplist = _parse_parameters(oparams) known_params = set([i[0] for i in mplist]) # !!! has to not rebind exclude variable skip_params = exclude or [] # handle None skip_params = set(['kwargs', '**kwargs'] + skip_params) # combine two and filter out items to skip aplist = [i for i in mplist if not i[0] in skip_params] aplist += [i for i in oplist if not i[0] in skip_params.union(known_params)] docstring = mpreamble if len(aplist): params_ = '\n'.join([i[1].rstrip() for i in aplist]) docstring += "\n\n%s\n" \ % _rst_section('Parameters') + _indent(params_) if msuffix != "": docstring += "\n\n" + msuffix docstring = handle_docstring(docstring) # Finally assign generated doc to the method method.__doc__ = docstring return method return _borrowkwargs pymvpa2-2.6.4/mvpa2/base/externals.py000066400000000000000000000673141323370031300174450ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to verify presence of external libraries and modules """ __docformat__ = 'restructuredtext' import os import sys import numpy as np # NumPy is required anyways import warnings import subprocess from mvpa2.base import warning from mvpa2 import cfg from mvpa2.misc.support import SmartVersion if __debug__: from mvpa2.base import debug class _VersionsChecker(dict): """Helper class to check the versions of the available externals """ def __init__(self, *args, **kwargs): self._KNOWN = {} dict.__init__(self, *args, **kwargs) def __getitem__(self, key): if key not in self: if key in self._KNOWN: # run registered procedure to obtain versions try: self._KNOWN[key]() except ImportError: # known but not present return None else: # just check for presence -- that function might set # the version information exists(key, force=True, raise_=True) return super(_VersionsChecker, self).__getitem__(key) versions = _VersionsChecker() """Versions of available externals, as tuples """ def __assign_numpy_version(): """Check if numpy is present (it must be) an if it is -- store its version """ import numpy as np versions['numpy'] = SmartVersion(np.__version__) def __check_numpy_correct_unique(): """ndarray.unique fails to operate on heterogeneous object ndarrays See http://projects.scipy.org/numpy/ticket/2188 """ import numpy as np try: _ = np.unique(np.array([1, None, "str"])) except TypeError, e: raise RuntimeError("numpy.unique thrown %s" % e) def __assign_scipy_version(): # To don't allow any crappy warning to sneak in import warnings warnings.simplefilter('ignore', DeprecationWarning) try: import scipy as sp except: warnings.simplefilter('default', DeprecationWarning) raise warnings.simplefilter('default', DeprecationWarning) versions['scipy'] = SmartVersion(sp.__version__) def __check_scipy(): """Check if scipy is present an if it is -- store its version """ exists('numpy', raise_=True) __assign_numpy_version() __assign_scipy_version() import scipy as sp def _suppress_scipy_warnings(): # Infiltrate warnings if necessary numpy_ver = versions['numpy'] scipy_ver = versions['scipy'] # There is way too much deprecation warnings spit out onto the # user. Lets assume that they should be fixed by scipy 0.7.0 time if not __debug__ or (__debug__ and 'PY' not in debug.active): filter_lines = [] if "0.6.0" <= scipy_ver and scipy_ver < "0.7.0" \ and numpy_ver > "1.1.0": if __debug__: debug('EXT', "Setting up filters for numpy DeprecationWarnings " "regarding scipy < 0.7.0") filter_lines += [ ('NumpyTest will be removed in the next release.*', DeprecationWarning), ('PyArray_FromDims: use PyArray_SimpleNew.', DeprecationWarning), ('PyArray_FromDimsAndDataAndDescr: use PyArray_NewFromDescr.', DeprecationWarning), # Trick re.match, since in warnings absent re.DOTALL in re.compile ('[\na-z \t0-9]*The original semantics of histogram is scheduled to be.*' '[\na-z \t0-9]*', Warning) ] if scipy_ver >= "0.15": filter_lines += [("`scipy.weave` is deprecated, use `weave` instead!", DeprecationWarning)] if scipy_ver >= "0.16": # scipy deprecated it but statsmodels still import it for now filter_lines += [("`scipy.linalg.calc_lwork` is deprecated!", DeprecationWarning)] for f, w in filter_lines: warnings.filterwarnings('ignore', f, w) def __assign_mdp_version(): """Check if mdp is present (it must be) an if it is -- store its version """ import mdp ver = mdp.__version__ if SmartVersion(ver) == "2.5" and not hasattr(mdp.nodes, 'IdentityNode'): # Thanks to Yarik's shipment of svn snapshots into Debian we # can't be sure if that was already released version, since # mdp guys didn't use -dev suffix ver += '-dev' versions['mdp'] = SmartVersion(ver) def __assign_nibabel_version(): try: import nibabel except Exception, e: # FloatingError is defined in the same module which precludes # its specific except e_str = str(e) if "We had not expected long double type " in e_str: warning("Must be running under valgrind? Available nibabel experiences " "difficulty with float128 upon import and fails to work, thus is " "report as N/A") raise ImportError("Fail to import nibabel due to %s" % e_str) raise versions['nibabel'] = SmartVersion(nibabel.__version__) def __check_pywt(features=None): """Check for available functionality within pywt Parameters ---------- features : list of str List of known features to check such as 'wp reconstruct', 'wp reconstruct fixed' """ import pywt import numpy as np data = np.array( [0.57316901, 0.65292526, 0.75266733, 0.67020084, 0.46505364, 0.76478331, 0.33034164, 0.49165547, 0.32979941, 0.09696717, 0.72552711, 0.4138999, 0.54460628, 0.786351, 0.50096306, 0.72436454, 0.2193098, -0.0135051, 0.34283984, 0.65596245, 0.49598417, 0.39935064, 0.26370727, 0.05572373, 0.40194438, 0.47004551, 0.60327258, 0.25628266, 0.32964893, 0.24009889]) # default one is the per or periodization DEFAULT_MODE = 'per' if 'per' in pywt.MODES.modes else 'periodization' wp = pywt.WaveletPacket(data, 'sym2', DEFAULT_MODE) wp2 = pywt.WaveletPacket(data=None, wavelet='sym2', mode=DEFAULT_MODE) try: for node in wp.get_level(2): wp2[node.path] = node.data except: raise ImportError( "Failed to reconstruct WP by specifying data in the layer") if 'wp reconstruct fixed' in features: rec = wp2.reconstruct() if np.linalg.norm(rec[:len(data)] - data) > 1e-3: raise ImportError( "Failed to reconstruct WP correctly") return True def __check_libsvm_verbosity_control(): """Check for available verbose control functionality """ from mvpa2.clfs.libsvmc import svmc try: svmc.svm_set_verbosity(0) except: raise ImportError( "Provided version of libsvm has no way to control " "its level of verbosity") def __assign_shogun_version(): """Assign shogun versions """ if 'shogun' in versions: return import shogun.Classifier as __sc versions['shogun:rev'] = __sc.Version_get_version_revision() ver = __sc.Version_get_version_release().lstrip('v') versions['shogun:full'] = ver if '_' in ver: ver = ver[:ver.index('_')] versions['shogun'] = ver def __check_shogun(bottom_version, custom_versions=None): """Check if version of shogun is high enough (or custom known) to be enabled in the testsuite Parameters ---------- bottom_version : int Bottom version which must be satisfied custom_versions : list of int Arbitrary list of versions which could got patched for a specific issue """ if custom_versions is None: custom_versions = [] import shogun.Classifier as __sc ver = __sc.Version_get_version_revision() __assign_shogun_version() if (ver in custom_versions) or (ver >= bottom_version): return True else: raise ImportError( 'Version %s is smaller than needed %s' % (ver, bottom_version)) def __check_nipy_neurospin(): from nipy.neurospin.utils import emp_nul def __assign_skl_version(): try: import sklearn as skl except ImportError: # Let's try older space import scikits.learn as skl if skl.__doc__ is None or skl.__doc__.strip() == "": raise ImportError("Verify your installation of scikits.learn. Its " "docstring is empty -- could be that only -lib " "was installed without the native Python modules") versions['skl'] = SmartVersion(skl.__version__) def __check_scipy_weave(): """Apparently presence of scipy is not sufficient since some versions experience problems. E.g. in Sep,Oct 2008 lenny's weave failed to work. May be some other converter could work (? See http://lists.debian.org/debian-devel/2008/08/msg00730.html for a similar report. Following simple snippet checks compilation of the basic code using weave """ try: from scipy import weave except OSError, e: raise ImportError( "Weave cannot be used due to failure to import because of %s" % e) from scipy.weave import converters, build_tools import numpy as np # to shut weave up import sys # we can't rely on weave at all at the restoring argv. On etch box # restore_sys_argv() is apparently is insufficient oargv = sys.argv[:] ostdout = sys.stdout if not(__debug__ and 'EXT_' in debug.active): from StringIO import StringIO sys.stdout = StringIO() # *nix specific solution to shut weave up. # Some users must complain and someone # needs to fix this to become more generic. compile_args = [">/dev/null", "2>&1"] else: compile_args = [] fmsg = None try: data = np.array([1, 2, 3]) counter = weave.inline("data[0]=fabs(-1);", ['data'], type_converters=converters.blitz, verbose=0, extra_compile_args=compile_args, compiler='gcc') except Exception, e: fmsg = "Failed to build simple weave sample." \ " Exception was %s" % str(e) sys.stdout = ostdout # needed to fix sweave which might "forget" to restore sys.argv # build_tools.restore_sys_argv() sys.argv = oargv if fmsg is not None: raise ImportError(fmsg) else: return "Everything is cool" def __check_atlas_family(family): # XXX I guess pylint will dislike it a lot from mvpa2.atlases.warehouse import KNOWN_ATLAS_FAMILIES names, path_pattern = KNOWN_ATLAS_FAMILIES[family] filename = path_pattern % {'name':names[0]} if not os.path.exists(filename): raise ImportError( "Cannot find file %s for atlas family %s" % (filename, family)) pass def __check_stablerdist(): import scipy.stats import numpy as np # Unfortunately 0.7.0 hasn't fixed the issue so no chance but to do # a proper numerical test here try: scipy.stats.rdist(1.32, 0, 1).cdf(-1.0 + np.finfo(float).eps) # Actually previous test is insufficient for 0.6, so enabling # elderly test on top # ATM all known implementations which implement custom cdf for # rdist are misbehaving, so there should be no _cdf distributions = scipy.stats.distributions if 'rdist_gen' in dir(distributions) \ and ('_cdf' in distributions.rdist_gen.__dict__.keys()): raise ImportError( "scipy.stats carries misbehaving rdist distribution") except ZeroDivisionError: raise RuntimeError( "RDist in scipy is still unstable on the boundaries") def __check_rv_discrete_ppf(): """Unfortunately 0.6.0-12 of scipy pukes on simple ppf """ import scipy.stats try: bdist = scipy.stats.binom(100, 0.5) bdist.ppf(0.9) except TypeError: raise RuntimeError("pmf is broken in discrete dists of scipy.stats") def __check_rv_continuous_reduce_func(): """Unfortunately scipy 0.10.1 pukes when fitting with two params fixed """ import scipy.stats as ss try: ss.t.fit(np.arange(6), floc=0.0, fscale=1.) except IndexError as e: raise RuntimeError("rv_continuous.fit can't candle 2 fixed params: %s" % str(e)) def __check_in_ipython(): # figure out if ran within IPython if '__IPYTHON__' in globals()['__builtins__']: return raise RuntimeError("Not running in IPython session") def __assign_ipython_version(): ipy_version = None import IPython try: # Development post 0.11 version finally carries # conventional one ipy_version = IPython.__version__ except: try: from IPython import Release ipy_version = Release.version except: pass pass versions['ipython'] = SmartVersion(ipy_version) def __check_openopt(): m = None try: import openopt as m except ImportError: import scikits.openopt as m versions['openopt'] = m.__version__ return True def _set_matplotlib_backend(): """Check if we have custom backend to set and it is different from current one """ backend = cfg.get('matplotlib', 'backend') if backend: import matplotlib as mpl mpl_backend = mpl.get_backend().lower() if mpl_backend != backend.lower(): if __debug__: debug('EXT_', "Trying to set matplotlib backend to %s" % backend) mpl.use(backend) import warnings # And disable useless warning from matplotlib in the future warnings.filterwarnings( 'ignore', 'This call to matplotlib.use() has no effect.*', UserWarning) elif __debug__: debug('EXT_', "Not trying to set matplotlib backend to %s since it was " "already set" % backend) def __assign_matplotlib_version(): """Check for matplotlib version and set backend if requested.""" import matplotlib versions['matplotlib'] = SmartVersion(matplotlib.__version__) _set_matplotlib_backend() def __check_pylab(): """Check if matplotlib is there and then pylab""" exists('matplotlib', raise_='always') import pylab as pl def __check_pylab_plottable(): """Simple check either we can plot anything using pylab. Primary use in unittests """ try: exists('pylab', raise_='always') import pylab as pl fig = pl.figure() pl.plot([1, 2], [1, 2]) pl.close(fig) except: raise RuntimeError("Cannot plot in pylab") return True def __check_griddata(): """griddata might be independent module or part of mlab """ try: from griddata import griddata as __ return True except ImportError: if __debug__: debug('EXT_', 'No python-griddata available') from matplotlib.mlab import griddata as __ return True def __check_reportlab(): import reportlab as rl versions['reportlab'] = SmartVersion(rl.Version) def __check(name, a='__version__'): exec "import %s" % name # it might be lxml.etree, so take only first module topmodname = name.split('.')[0] try: v = getattr(sys.modules[name], '__version__') except Exception as e: # we can't assign version but it is there if __debug__: debug('EXT', 'Failed to acquire a version of %(name)s: %(e)s' % locals()) # if module is present but does not bear __version__ try: import pkg_resources v = pkg_resources.get_distribution(topmodname).version except Exception as e: # and if all that failed -- just assign '0' v = '0' versions[topmodname] = SmartVersion(v) return True # we did manage to import it -- so it is there def __check_h5py(): __check('h5py', 'version.version') import h5py versions['hdf5'] = SmartVersion(h5py.version.hdf5_version) def __check_rpy(): """Check either rpy is available and also set it for the sane execution """ import rpy if not cfg.getboolean('rpy', 'interactive', default=True) \ and (rpy.get_rpy_input() is rpy.rpy_io.rpy_input): if __debug__: debug('EXT_', "RPy: providing dummy callback for input to return '1'") def input1(*args): return "1" # which is "1: abort (with core dump, if enabled)" rpy.set_rpy_input(input1) def _R_library(libname): import rpy2.robjects as ro try: if not tuple(ro.r( "suppressMessages(suppressWarnings(require(%r, quiet=TRUE)))" % libname))[0]: raise ImportError("It seems that R cannot load library %r" % libname) except Exception, e: raise ImportError("Failed to load R library %r due to %s" % (libname, e)) def __check_rpy2(): """Check either rpy2 is available and also set it for the sane execution """ import rpy2 versions['rpy2'] = SmartVersion(rpy2.__version__) import rpy2.robjects r = rpy2.robjects.r r.options(warn=cfg.get_as_dtype('rpy', 'warn', dtype=int, default=-1)) # To shut R up while it is importing libraries to do not ruin out # doctests r.library = _R_library def __check_liblapack_so(): """Check either we could load liblapack.so library via ctypes """ from ctypes import cdll try: _ = cdll.LoadLibrary('liblapack.so') except OSError, e: # reraise with exception type we catch/handle while testing externals raise RuntimeError("Failed to import liblapack.so: %s" % e) def __check_subprocess_call(args): """Executes the command using subprocess""" try: subprocess.check_output(args) except Exception, e: raise ImportError('The following command gave an error: "%s"' % args) # contains list of available (optional) external classifier extensions _KNOWN = {'libsvm': 'import mvpa2.clfs.libsvmc._svm as __; x=__.seq_to_svm_node', 'libsvm verbosity control': '__check_libsvm_verbosity_control();', 'nibabel': '__assign_nibabel_version()', 'ctypes': '__check("ctypes")', 'liblapack.so': "__check_liblapack_so()", 'shogun': '__assign_shogun_version()', 'shogun.krr': '__assign_shogun_version(); import shogun.Regression as __; x=__.KRR', 'shogun.mpd': '__assign_shogun_version(); import shogun.Classifier as __; x=__.MPDSVM', 'shogun.lightsvm': '__assign_shogun_version(); import shogun.Classifier as __; x=__.SVMLight', 'shogun.svmocas': '__assign_shogun_version(); import shogun.Classifier as __; x=__.SVMOcas', 'shogun.svrlight': '__assign_shogun_version(); from shogun.Regression import SVRLight as __', 'numpy': "__assign_numpy_version()", 'numpy_correct_unique': "__check_numpy_correct_unique()", 'numpydoc': "import numpydoc", 'scipy': "__check_scipy()", 'good scipy.stats.rdist': "__check_stablerdist()", 'good scipy.stats.rv_discrete.ppf': "__check_rv_discrete_ppf()", 'good scipy.stats.rv_continuous._reduce_func(floc,fscale)': "__check_rv_continuous_reduce_func()", 'weave': '__check("weave")', 'scipy.weave': '__check_scipy_weave()', 'pywt': "__check('pywt')", 'pywt wp reconstruct': "__check_pywt(['wp reconstruct'])", 'pywt wp reconstruct fixed': "__check_pywt(['wp reconstruct fixed'])", # 'rpy': "__check_rpy()", 'rpy2': "__check_rpy2()", 'lars': "exists('rpy2', raise_='always');" "import rpy2.robjects; rpy2.robjects.r.library('lars')", 'mass': "exists('rpy2', raise_='always');" "import rpy2.robjects; rpy2.robjects.r.library('MASS')", 'elasticnet': "exists('rpy2', raise_='always'); " "import rpy2.robjects; rpy2.robjects.r.library('elasticnet')", 'glmnet': "exists('rpy2', raise_='always'); " "import rpy2.robjects; rpy2.robjects.r.library('glmnet')", 'cran-energy': "exists('rpy2', raise_='always'); " "import rpy2.robjects; rpy2.robjects.r.library('energy')", 'matplotlib': "__assign_matplotlib_version()", 'pylab': "__check_pylab()", 'pylab plottable': "__check_pylab_plottable()", 'openopt': "__check_openopt()", 'skl': "__assign_skl_version()", 'mdp': "__assign_mdp_version()", 'mdp ge 2.4': "from mdp.nodes import LLENode as __", 'sg_fixedcachesize': "__check_shogun(3043, [2456])", # 3318 corresponds to release 0.6.4 'sg ge 0.6.4': "__check_shogun(3318)", # 3377 corresponds to release 0.6.5 'sg ge 0.6.5': "__check_shogun(3377)", 'hcluster': "import hcluster as __", 'griddata': "__check_griddata()", 'cPickle': "import cPickle as __", 'gzip': "import gzip as __", 'lxml': "__check('lxml.etree', '__version__');" "from lxml import objectify as __", 'atlas_pymvpa': "__check_atlas_family('pymvpa')", 'atlas_fsl': "__check_atlas_family('fsl')", 'ipython': "__assign_ipython_version()", 'running ipython env': "__check_in_ipython()", 'reportlab': "__check('reportlab', 'Version')", 'nose': "import nose as __", 'pprocess': "__check('pprocess')", 'joblib': "__check('joblib')", 'h5py': "__check_h5py()", 'hdf5': "__check_h5py()", 'nipy': "__check('nipy')", 'nipy.neurospin': "__check_nipy_neurospin()", 'statsmodels': 'import statsmodels.api as __', 'mock': "__check('mock')", 'datalad': "__check('datalad')", 'afni-3dinfo': "__check_subprocess_call(['3dinfo','-h'])" } def exists(dep, force=False, raise_=False, issueWarning=None, exception=RuntimeError): """ Test whether a known dependency is installed on the system. This method allows us to test for individual dependencies without testing all known dependencies. It also ensures that we only test for a dependency once. Parameters ---------- dep : string or list of string The dependency key(s) to test. force : boolean Whether to force the test even if it has already been performed. raise_ : boolean, str Whether to raise an exception if dependency is missing. If True, it is still conditioned on the global setting MVPA_EXTERNALS_RAISE_EXCEPTION, while would raise exception if missing despite the configuration if 'always'. issueWarning : string or None or True If string, warning with given message would be thrown. If True, standard message would be used for the warning text. exception : exception, optional What exception to raise. Defaults to RuntimeError """ # if we are provided with a list of deps - go through all of them if isinstance(dep, (list, tuple)): results = [ exists(dep_, force, raise_) for dep_ in dep ] return bool(reduce(lambda x, y: x and y, results, True)) # where to look in cfg cfgid = 'have ' + dep # pre-handle raise_ according to the global settings and local argument if isinstance(raise_, str): if raise_.lower() == 'always': raise_ = True else: raise ValueError("Unknown value of raise_=%s. " "Must be bool or 'always'" % raise_) else: # must be bool conditioned on the global settings raise_ = (raise_ and cfg.getboolean('externals', 'raise exception', True)) # prevent unnecessary testing if cfg.has_option('externals', cfgid) \ and not cfg.getboolean('externals', 'retest', default='no') \ and not force: if __debug__: debug('EXT', "Skip retesting for '%s'." % dep) # check whether an exception should be raised, even though the external # was already tested previously if not cfg.getboolean('externals', cfgid) and raise_: raise exception("Required external '%s' was not found" % dep) return cfg.getboolean('externals', cfgid) # determine availability of external (non-cached) # default to 'not found' result = False if dep not in _KNOWN: raise ValueError("%r is not a known dependency key." % (dep,)) else: # try and load the specific dependency if __debug__: debug('EXT', "Checking for the presence of %s" % dep) # Exceptions which are silently caught while running tests for externals _caught_exceptions = [ImportError, AttributeError, RuntimeError] try: # Suppress NumPy warnings while testing for externals old_handling = np.seterr(all="ignore") error_str = '' try: exec _KNOWN[dep] result = True except tuple(_caught_exceptions), e: error_str = ". Caught exception was: " + str(e) except Exception, e: # Add known ones by their names so we don't need to # actually import anything manually to get those classes if e.__class__.__name__ in ['RPy_Exception', 'RRuntimeError', 'RPy_RException']: _caught_exceptions += [e.__class__] error_str = ". Caught exception was: " + str(e) else: raise finally: # And restore warnings np.seterr(**old_handling) if __debug__: vstr = ' (%s)' % versions[dep] if dep in versions else '' debug('EXT', "Presence of %s%s is%s verified%s" % (dep, vstr, {True: '', False: ' NOT'}[result], error_str)) if not result: if raise_: raise exception("Required external '%s' was not found" % dep) if issueWarning is not None \ and cfg.getboolean('externals', 'issue warning', True): if issueWarning is True: warning("Required external '%s' was not found" % dep) else: warning(issueWarning) # store result in config manager if not cfg.has_section('externals'): cfg.add_section('externals') if result: cfg.set('externals', 'have ' + dep, 'yes') else: cfg.set('externals', 'have ' + dep, 'no') return result # Bind functions for some versions checks versions._KNOWN.update({ 'shogun': __assign_shogun_version, 'shogun:rev': __assign_shogun_version, 'shogun:full': __assign_shogun_version, }) def check_all_dependencies(force=False, verbosity=1): """ Test for all known dependencies. Parameters ---------- force : boolean Whether to force the test even if it has already been performed. """ # loop over all known dependencies for dep in _KNOWN: if not exists(dep, force): if verbosity: warning("%s is not available." % dep) if __debug__: debug('EXT', 'The following optional externals are present: %s' % [k[5:] for k in cfg.options('externals') if k.startswith('have') and cfg.getboolean('externals', k)]) pymvpa2-2.6.4/mvpa2/base/hdf5.py000066400000000000000000001133021323370031300162530ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """HDF5-based file IO for PyMVPA objects. Based on the `h5py` package, this module provides two functions (`obj2hdf()` and `hdf2obj()`, as well as the convenience functions `h5save()` and `h5load()`) to store (in principle) arbitrary Python objects into HDF5 groups, and using HDF5 as input, convert them back into Python object instances. Similar to `pickle` a Python object is disassembled into its pieces, but instead of serializing it into a byte-stream it is stored in chunks which type can be natively stored in HDF5. That means basically everything that can be stored in a NumPy array. If an object is not readily storable, its `__reduce__()` method is called to disassemble it into basic pieces. The default implementation of `object.__reduce__()` is typically sufficient. Hence, for any new-style Python class there is, in general, no need to implement `__reduce__()`. However, custom implementations might allow for leaner HDF5 representations and leaner files. Basic types, such as `list`, and `dict`, whose `__reduce__()` method does not do help with disassembling are also handled. .. warning:: Although, in principle, storage and reconstruction of arbitrary object types is possible, it might not be implemented yet. The current focus lies on storage of PyMVPA datasets and their attributes (e.g. Mappers). """ __docformat__ = 'restructuredtext' import numpy as np import h5py import os import os.path as osp import mvpa2 from mvpa2.base import externals from mvpa2.base.types import asobjarray from mvpa2.misc.support import builtins_mod if __debug__: from mvpa2.base import debug # don't ask -- makes history re-education a breeze universal_classname_remapper = { ('mvpa2.mappers.base', 'FeatureSliceMapper'): ('mvpa2.featsel.base', 'StaticFeatureSelection'), } # Comment: H5Py defines H5Error class HDF5ConversionError(Exception): """Generic exception to be thrown while doing conversions to/from HDF5 """ pass def hdf2obj(hdf, memo=None): """Convert an HDF5 group definition into an object instance. Obviously, this function assumes the conventions implemented in the `obj2hdf()` function. Those conventions will eventually be documented in the module docstring, whenever they are sufficiently stable. Parameters ---------- hdf : HDF5 group instance HDF5 group instance. this could also be an HDF5 file instance. memo : dict Dictionary tracking reconstructed objects to prevent recursions (analog to deepcopy). Notes ----- Although, this function uses a way to reconstruct object instances that is similar to unpickling, it should be *relatively* safe to open HDF files from untrusted sources. Only basic datatypes are stored in HDF files, and there is no foreign code that is executed during reconstructing. For that reason, any type that shall be reconstructed needs to be importable (importing is done be fully-qualified module names). Returns ------- object instance """ if memo is None: # init object tracker memo = {} # note, older file formats did not store objrefs if 'objref' in hdf.attrs: objref = hdf.attrs['objref'] else: objref = None # if this HDF group has an objref that points to an already recontructed # object, simple return this object again if objref is not None and objref in memo: obj = memo[objref] if __debug__: debug('HDF5', "Use tracked object %s (%i)" % (type(obj), objref)) return obj # # Actual data # if isinstance(hdf, h5py.Dataset): if __debug__: debug('HDF5', "Load from HDF5 dataset [%s]" % hdf.name) if 'is_scalar' in hdf.attrs: # extract the scalar from the 0D array obj = hdf[()] # and coerce it back into the native Python type if necessary if issubclass(type(obj), np.generic): obj = np.asscalar(obj) elif 'is_numpy_scalar' in hdf.attrs: # extract the scalar from the 0D array as is obj = hdf[()] else: obj = _hdf_to_ndarray(hdf) else: # check if we have a class instance definition here if not ('class' in hdf.attrs or 'recon' in hdf.attrs): raise LookupError( "Found hdf group without class instance " "information (group: %s). Cannot convert it into an " "object (content: '%s', attributes: '%s')." % (hdf.name, hdf.keys(), hdf.attrs.keys())) mod_name = hdf.attrs['module'].decode() if __debug__: if 'class' in hdf.attrs: debug('HDF5', "Found class info %s.%s" % (mod_name, hdf.attrs['class'])) else: debug('HDF5', "Found recon info %s.%s" % (mod_name, hdf.attrs['recon'])) if 'recon' in hdf.attrs: # Custom objects custom reconstructor obj = _recon_customobj_customrecon(hdf, memo) elif mod_name != builtins_mod: # Custom objects default reconstructor cls_name = hdf.attrs['class'].decode() if cls_name in ('function', 'type', 'builtin_function_or_method'): # Functions and types obj = _recon_functype(hdf) else: # Other custom objects obj = _recon_customobj_defaultrecon(hdf, memo) else: # Built-in objects cls_name = hdf.attrs['class'].decode() if __debug__: debug('HDF5', "Reconstructing built-in object '%s'." % cls_name) # built in type (there should be only 'list', 'dict' and 'None' # that would not be in a Dataset if cls_name == 'NoneType': obj = None elif cls_name == 'tuple': obj = _hdf_tupleitems_to_obj(hdf, memo) elif cls_name == 'list': # could be used also for storing object ndarrays if 'is_objarray' in hdf.attrs: obj = _hdf_list_to_objarray(hdf, memo) else: obj = _hdf_list_to_obj(hdf, memo) elif cls_name == 'dict': obj = _hdf_dict_to_obj(hdf, memo) elif cls_name == 'type': obj = eval(hdf.attrs['name']) elif cls_name == 'function': raise RuntimeError("Unhandled reconstruction of built-in " "function (at '%s')." % hdf.name) else: raise RuntimeError( "Found hdf group with a builtin type " "that is not handled by the parser (group: %s). This " "is a conceptual bug in the parser. Please report." % hdf.name) # # Final post-processing # # track if desired if objref: if __debug__: debug('HDF5', "Placing %s objref '%s' to memo", (obj, objref)) memo[objref] = obj if __debug__: debug('HDF5', "Done loading %s [%s]" % (type(obj), hdf.name)) return obj def _recon_functype(hdf): """Reconstruct a function or type from HDF""" cls_name = hdf.attrs['class'].decode() mod_name = hdf.attrs['module'].decode() ft_name = hdf.attrs['name'].decode() if __debug__: debug('HDF5', "Load '%s.%s.%s' [%s]" % (mod_name, cls_name, ft_name, hdf.name)) mod, obj = _import_from_thin_air(mod_name, ft_name, cls_name=cls_name) return obj def _get_subclass_entry(cls, clss, exc_msg="", exc=NotImplementedError): """In a list of tuples (cls, ...) return the entry for the first occurrence of the class of which `cls` is a subclass of. Otherwise raise `exc` with the given message""" for clstuple in clss: if issubclass(cls, clstuple[0]): return clstuple raise exc(exc_msg % locals()) def _update_obj_state_from_hdf(obj, hdf, memo): if 'state' in hdf: # insert the state of the object if __debug__: debug('HDF5', "Populating instance state.") if hasattr(obj, '__setstate__'): state = hdf2obj(hdf['state'], memo) obj.__setstate__(state) else: state = _hdf_dict_to_obj(hdf['state'], memo) if state: obj.__dict__.update(state) if __debug__: debug('HDF5', "Updated %i state items." % len(state)) def _recon_customobj_customrecon(hdf, memo): """Reconstruct a custom object from HDF using a custom recontructor""" # we found something that has some special idea about how it wants # to be reconstructed mod_name = hdf.attrs['module'].decode() recon_name = hdf.attrs['recon'].decode() if __debug__: debug('HDF5', "Load from custom reconstructor '%s.%s' [%s]" % (mod_name, recon_name, hdf.name)) # turn names into definitions mod, recon = _import_from_thin_air(mod_name, recon_name) obj = None if 'rcargs' in hdf: recon_args_hdf = hdf['rcargs'] if __debug__: debug('HDF5', "Load reconstructor args in [%s]" % recon_args_hdf.name) if 'objref' in hdf.attrs: # XXX TODO YYY ZZZ WHATEVER # yoh: the problem is that inside this beast might be references # to current, not yet constructed object, and if we follow # Python docs we should call recon with *recon_args, thus we # cannot initiate the beast witout them. But if recon is a class # with __new__ we could may be first __new__ and then only __init__ # with recon_args? if '__new__' in dir(recon): try: # TODO: what if multiple inheritance? obj = recon.__bases__[0].__new__(recon) except: # try direct __new__ try: obj = recon.__new__() except: # give up and hope for the best obj = None if obj is not None: memo[hdf.attrs['objref']] = obj recon_args = _hdf_tupleitems_to_obj(recon_args_hdf, memo) else: recon_args = () # reconstruct if obj is None: obj = recon(*recon_args) else: # Let only to init it obj.__init__(*recon_args) # insert any stored object state _update_obj_state_from_hdf(obj, hdf, memo) return obj def _import_from_thin_air(mod_name, importee, cls_name=None): # to overcome TypeError: Item in ``from list'' must be str, not unicode importee = str(importee) if cls_name is None: cls_name = importee try: if mod_name in ('builtins', '__builtin__'): # we might have got it from the hdf saved using another version # of python, so let's map mod_name = builtins_mod mod = __import__(mod_name, fromlist=[importee]) except ImportError as e: if mod_name.startswith('mvpa') and not mod_name.startswith('mvpa2'): # try to be gentle on data that got stored with PyMVPA 0.5 or 0.6 mod_name = mod_name.replace('mvpa', 'mvpa2', 1) mod = __import__(mod_name, fromlist=[cls_name]) else: raise e try: imp = mod.__dict__[importee] except KeyError: mod_name, importee = universal_classname_remapper[(mod_name, importee)] mod = __import__(mod_name, fromlist=[cls_name]) imp = mod.__dict__[importee] return mod, imp def _recon_customobj_defaultrecon(hdf, memo): """Reconstruct a custom object from HDF using the default recontructor""" cls_name = hdf.attrs['class'].decode() mod_name = hdf.attrs['module'].decode() if __debug__: debug('HDF5', "Load class instance '%s.%s' instance [%s]" % (mod_name, cls_name, hdf.name)) mod, cls = _import_from_thin_air(mod_name, cls_name) # create the object # use specialized __new__ if necessary or beneficial pcls, = _get_subclass_entry(cls, ((dict,), (list,), (tuple,), (object,)), "Do not know how to create instance of %(cls)s") obj = pcls.__new__(cls) # insert any stored object state _update_obj_state_from_hdf(obj, hdf, memo) # do we process a container? if 'items' in hdf: try: # charge the items -- handling depends on the parent class pcls, umeth, cfunc = _get_subclass_entry( cls, ((dict, 'update', _hdf_dict_to_obj), (list, 'extend', _hdf_list_to_obj)), "Unhandled container type (got: '%(cls)s').") if __debug__: debug('HDF5', "Populating %s object." % pcls) getattr(obj, umeth)(cfunc(hdf, memo)) except NotImplementedError as e: if issubclass(cls, tuple) \ and hasattr(obj, '_asdict') and hasattr(obj, '_make'): # this is an ugly hack to support NamedTuples -- which # for some fucked-up reason needs this items as args # instead of a sequence like tuple itself obj = obj._make(_hdf_tupleitems_to_obj(hdf, memo)) else: raise e if __debug__: debug('HDF5', "Loaded %i items." % len(obj)) return obj def _hdf_dict_to_obj(hdf, memo, skip=None): if skip is None: skip = [] # legacy compat code if not 'items' in hdf: items_container = hdf # end of legacy compat code else: items_container = hdf['items'] if items_container.attrs.get('__keys_in_tuple__', 0): # pre-create the object so it could be correctly # objref'ed/used in memo d = dict() items = _hdf_list_to_obj(hdf, memo, target_container=d) # some time back we had attribute names stored as arrays for k, v in items: if k in skip: continue try: d[k] = v except TypeError: # fucked up dataset -- trying our best if isinstance(k, np.ndarray): d[np.asscalar(k)] = v else: # no idea, really raise return d else: # legacy files had keys as group names return dict([(item, hdf2obj(items_container[item], memo=memo)) for item in items_container if not item in skip]) def _hdf_list_to_objarray(hdf, memo): if not ('shape' in hdf.attrs): if __debug__: debug( 'HDF5', "Enountered objarray stored without shape (due to a bug " "in post 2.1 release). Some nested structures etc might not be " "loaded incorrectly") # yoh: we have possibly a problematic case due to my fix earlier # resolve to old logic: nested referencing might not work :-/ obj = _hdf_list_to_obj(hdf, memo) # need to handle special case of arrays of objects if np.isscalar(obj): obj = np.array(obj, dtype=np.object) else: obj = asobjarray(obj) else: shape = tuple(hdf.attrs['shape']) # reserve space first if len(shape): obj = np.empty(np.prod(shape), dtype=object) else: # scalar obj = np.array(None, dtype=object) # now load the items from the list, noting existence of this # container obj_items = _hdf_list_to_obj(hdf, memo, target_container=obj) # assign to the object array for i, v in enumerate(obj_items): obj[i] = v if len(shape) and shape != obj.shape: obj = obj.reshape(shape) return obj def _hdf_list_to_obj(hdf, memo, target_container=None): """Convert an HDF item sequence into a list Lists are used for storing also dicts. To properly reference the actual items in memo, target_container could be specified to point to the actual data structure to be referenced, which later would get populated with list's items. """ # new-style files have explicit length if 'length' in hdf.attrs: length = hdf.attrs['length'] if __debug__: debug('HDF5', "Found explicit sequence length setting (%i)" % length) hdf_items = hdf['items'] elif 'items' in hdf: # not so legacy file, at least has an items container length = len(hdf['items']) if __debug__: debug('HDF5', "No explicit sequence length setting (guess: %i)" % length) hdf_items = hdf['items'] # legacy compat code else: length = len(hdf) if __debug__: debug('HDF5', "Ancient file, guessing sequence length (%i)" % length) # really legacy file, not even items container hdf_items = hdf # end of legacy compat code # prepare item list items = [None] * length # need to put items list in memo before starting to parse to allow to detect # self-inclusion of this list in itself if 'objref' in hdf.attrs: objref = hdf.attrs['objref'] if target_container is None: if __debug__: debug('HDF5', "Track sequence with %i elements under objref '%s'" % (length, objref)) memo[objref] = items else: if __debug__: debug('HDF5', "Track provided target_container under objref '%s'", objref) memo[objref] = target_container # for all expected items for i in xrange(length): if __debug__: debug('HDF5', "Item %i" % i) str_i = str(i) obj = None objref = None # we need a separate flag, see below got_obj = False # do we have an item attribute for this item (which is the objref) if str_i in hdf_items.attrs: objref = hdf_items.attrs[str_i] # do we have an actual value for this item if str_i in hdf_items: obj = hdf2obj(hdf_items[str_i], memo=memo) # we need to signal that we got something, since it could as well # be None got_obj = True if not got_obj: # no actual value for item if objref is None: raise LookupError("Cannot find list item '%s'" % str_i) else: # no value but reference -> value should be in memo if objref in memo: if __debug__: debug('HDF5', "Use tracked object (%i)" % objref) items[i] = memo[objref] else: raise LookupError("No value for objref '%i'" % objref) else: # we have a value for this item items[i] = obj # store value for ref if present if objref is not None: memo[objref] = obj return items def _hdf_tupleitems_to_obj(hdf, memo): """Same as _hdf_list_to_obj, but converts to tuple upon return""" return tuple(_hdf_list_to_obj(hdf, memo)) def _hdf_to_ndarray(hdf): # read array-dataset into an array obj = np.empty(hdf.shape, hdf.dtype) if obj.size: hdf.read_direct(obj) if 'is_a_view' in hdf.attrs: assert ('c_order' in hdf.attrs) if externals.versions['hdf5'] < '1.8.7' and not 'shape' in hdf.attrs: shape = tuple() else: assert ('shape' in hdf.attrs) shape = hdf.attrs['shape'] if 'dtype_names' in hdf.attrs: assert('dtype' not in hdf.attrs) names = [x for x in hdf.attrs['dtype_names']] dtypes = [x.decode() for x in hdf.attrs['dtype_types']] dtype = zip(names, dtypes) else: assert('dtype' in hdf.attrs) dtype = hdf.attrs['dtype'].decode() obj = np.frombuffer(obj.data, dtype=dtype, count=int(np.prod(shape))) obj = obj.reshape(shape, order=['F', 'C'][int(hdf.attrs['c_order'])]) return obj def _seqitems_to_hdf(obj, hdf, memo, noid=False, **kwargs): """Store a sequence as HDF item list""" hdf.attrs.create('length', len(obj)) items = hdf.create_group('items') for i, item in enumerate(obj): if __debug__: debug('HDF5', "Item %i" % i) obj2hdf(items, item, name=str(i), memo=memo, noid=noid, **kwargs) def obj2hdf(hdf, obj, name=None, memo=None, noid=False, **kwargs): """Store an object instance in an HDF5 group. A given object instance is (recursively) disassembled into pieces that are storable in HDF5. In general, any pickable object should be storable, but since the parser is not complete, it might not be possible (yet). .. warning:: Currently, the parser does not track recursions. If an object contains recursive references all bets are off. Here be dragons... Parameters ---------- hdf : HDF5 group instance HDF5 group instance. this could also be an HDF5 file instance. obj : object instance Object instance that shall be stored. name : str or None Name of the object. In case of a complex object that cannot be stored natively without disassembling them, this is going to be a new group, Otherwise the name of the dataset. If None, no new group is created. memo : dict Dictionary tracking stored objects to prevent recursions (analog to deepcopy). noid : bool If True, the to be processed object has no usable id. Set if storing objects that were created temporarily, e.g. during type conversions. **kwargs All additional arguments will be passed to `h5py.Group.create_dataset()` """ if memo is None: # initialize empty recursion tracker memo = {} # # Catch recursions: just stored references to already known objects # if noid: # noid: tracking this particular object is not intended obj_id = 0 else: obj_id = id(obj) if not noid and obj_id in memo: # already in here somewhere, nothing else but reference needed # this can also happen inside containers, so 'name' should not be None hdf.attrs.create(name, obj_id) if __debug__: debug('HDF5', "Store '%s' by objref: %i" % (type(obj), obj_id)) # done return # # Ugly special case of arrays of objects # is_objarray = False # assume the bright side ;-) is_ndarray = isinstance(obj, np.ndarray) if is_ndarray: shape = obj.shape if obj.dtype == np.object: if not len(obj.shape): # even worse: 0d array # we store 0d object arrays just by content if __debug__: debug('HDF5', "0d array(object) -> object") obj = obj[()] else: # proper arrays can become lists if __debug__: debug('HDF5', "array(objects) -> list(objects)") obj = list(obj.flatten()) # make sure we don't ref this temporary list object # noid = True # yoh: obj_id is of the original obj here so should # be stored # flag that we messed with the original type is_objarray = True # and re-estimate the content's nd-array-ness is_ndarray = isinstance(obj, np.ndarray) # if it is something that can go directly into HDF5, put it there # right away is_scalar = np.isscalar(obj) if is_scalar or is_ndarray: is_numpy_scalar = issubclass(type(obj), np.generic) if name is None: # HDF5 cannot handle datasets without a name name = '__unnamed__' if __debug__: debug('HDF5', "Store '%s' (ref: %i) in [%s/%s]" % (type(obj), obj_id, hdf.name, name)) # the real action is here if 'compression' in kwargs \ and (is_scalar or (is_ndarray and not len(obj.shape))): # recent (>= 2.0.0) h5py is strict not allowing # compression to be set for scalar types or anything with # shape==() ... TODO: check about is_objarrays ;-) kwargs = dict([(k, v) for (k, v) in kwargs.iteritems() if k != 'compression']) is_a_view = False try: hdf.create_dataset(name, None, None, obj, **kwargs) except TypeError as exc: exc_str = str(exc) if ("No conversion path for dtype" in exc_str): is_a_view = True else: # we know no better raise # some numpy dtypes can't be represented in the hdf5, so # we would need to save a view of the bytes and other # parameters (shape, dtype, order) to reconstruct later if is_a_view: assert(is_ndarray) # do conversion to pure byte array, by using array's buffer if not ((obj.flags.c_contiguous or obj.flags.f_contiguous) and obj.flags.aligned): # we need a copy to operate on obj_ = obj.copy() else: obj_ = obj assert(obj_.flags.c_contiguous or obj_.flags.f_contiguous) obj_data = np.frombuffer(obj_.data, dtype=np.int8) hdf.create_dataset(name, None, None, obj_data, **kwargs) hdf[name].attrs.create('is_a_view', True) hdf[name].attrs.create('c_order', obj_.flags.c_contiguous) if obj_.dtype.names: # record array dtype = obj_.dtype hdf[name].attrs.create('dtype_names', dtype.names) hdf[name].attrs.create('dtype_types', [dtype[i].str.encode() for i, _ in enumerate(dtype.names)]) else: hdf[name].attrs.create('dtype', obj_.dtype.str.encode()) # shape is handled later if not noid and not is_scalar: # objref for scalar items would be overkill hdf[name].attrs.create('objref', obj_id) # store object reference to be able to detect duplicates if __debug__: debug('HDF5', "Record objref in memo-dict (%i)" % obj_id) memo[obj_id] = obj ## yoh: was not sure why we have to assign here as well as below to grp ## so commented out and seems to work just fine ;) ## yoh: because it never reaches grp! (see return below) if is_objarray: # we need to confess the true origin hdf[name].attrs.create('is_objarray', True) if is_objarray or is_a_view: # it was of more than 1 dimension or it was a scalar if not len(shape) and externals.versions['hdf5'] < '1.8.7': if __debug__: debug('HDF5', "Versions of hdf5 before 1.8.7 have problems with empty arrays") else: hdf[name].attrs.create('shape', shape) # handle scalars giving numpy scalars different flag if is_numpy_scalar: hdf[name].attrs.create('is_numpy_scalar', True) elif is_scalar: hdf[name].attrs.create('is_scalar', True) return # # Below handles stuff that cannot be natively stored in HDF5 # if name is not None: if __debug__: debug('HDF5', "Store '%s' (ref: %i) in [%s/%s]" % (type(obj), obj_id, hdf.name, name)) grp = hdf.create_group(str(name)) else: # XXX wouldn't it be more coherent to always have non-native objects in # a separate group if __debug__: debug('HDF5', "Store '%s' (ref: %i) in [%s]" % (type(obj), obj_id, hdf.name)) grp = hdf # # Store important flags and references in the group meta data # if not noid and obj is not None: # no refs for basic types grp.attrs.create('objref', obj_id) # we also note that we processed this object memo[obj_id] = obj if is_objarray: # we need to confess the true origin grp.attrs.create('is_objarray', True) grp.attrs.create('shape', shape) # TODO: should we confess about a n is_a_view again here similarly to how was done for is_objarray? # standard containers need special treatment if not hasattr(obj, '__reduce__'): raise HDF5ConversionError("Cannot store class without __reduce__ " "implementation (%s)" % type(obj)) # try disassembling the object try: pieces = obj.__reduce__() if __debug__: debug('HDF5', "Reduced '%s' (ref: %i) in [%s]" % (type(obj), obj_id, hdf.name)) except TypeError as te: # needs special treatment pieces = None if __debug__: debug('HDF5', "Failed to reduce '%s' (ref: %i) in [%s]: %s" # (%s)" % (type(obj), obj_id, hdf.name, te)) # , obj)) # common container handling, either __reduce__ was not possible # or it was the default implementation # _reconstructor could be overloaded by e.g. shogun with _sg_reconstructor # which makes our tender piece of magic fail if pieces is None or pieces[0].__name__.endswith('_reconstructor'): # figure out the source module if hasattr(obj, '__module__'): src_module = obj.__module__ else: src_module = obj.__class__.__module__ cls_name = obj.__class__.__name__ # special case: metaclass types NOT instance of a class with metaclass if hasattr(obj, '__metaclass__') and hasattr(obj, '__base__'): cls_name = 'type' if src_module != builtins_mod: if hasattr(obj, '__name__'): if obj.__name__ not in dir(__import__(src_module, fromlist=[obj.__name__])): raise HDF5ConversionError("Cannot store locally defined " "function '%s'" % cls_name) else: mod_content = dir(__import__(src_module, fromlist=[cls_name])) if cls_name not in mod_content: # sometimes the class name is not the name of the type # instance imported from the module, e.g. NamedTuple # stored with a different object name # we can fix this by looking through the classes of the # module and search for the type instance that # matches the class found = False for stuff in mod_content: stuffobj = _import_from_thin_air(src_module, stuff)[1] if isinstance(stuffobj, type) \ and stuffobj.__name__ == cls_name: cls_name = stuff found = True if not found: raise HDF5ConversionError("Cannot store locally defined " "class '%s'" % cls_name) # store class info (fully-qualified) grp.attrs.create('class', cls_name.encode()) grp.attrs.create('module', src_module.encode()) if __debug__: debug('HDF5', "Stored class info: %s.%s" % (src_module, cls_name)) if hasattr(obj, '__name__'): # for functions/types we need a name for reconstruction oname = obj.__name__ if oname == '': raise HDF5ConversionError( "Can't obj2hdf lambda functions. Got %r" % (obj,)) grp.attrs.create('name', oname.encode()) if isinstance(obj, (list, tuple)): _seqitems_to_hdf(obj, grp, memo, **kwargs) elif isinstance(obj, dict): if __debug__: debug('HDF5', "Store dict as zipped list") # need to set noid since outer tuple containers are temporary _seqitems_to_hdf(zip(obj.keys(), obj.values()), grp, memo, noid=True, **kwargs) grp['items'].attrs.create('__keys_in_tuple__', 1) else: if __debug__: debug('HDF5', "Use custom __reduce__ for storage: (%i arguments)." % len(pieces[1])) grp.attrs.create('recon', pieces[0].__name__.encode()) grp.attrs.create('module', pieces[0].__module__.encode()) if __debug__: debug('HDF5', "Stored reconstructor info: %s.%s" % (pieces[0].__module__, pieces[0].__name__)) args = grp.create_group('rcargs') _seqitems_to_hdf(pieces[1], args, memo, **kwargs) # pull all remaining data from __reduce__ if pieces is not None and len(pieces) > 2: # there is something in the state state = pieces[2] if __debug__: if state is not None: debug('HDF5', "Store object state (%i items)." % len(state)) else: debug('HDF5', "Storing object with None state") # need to set noid since state dict is unique to an object obj2hdf(grp, state, name='state', memo=memo, noid=True, **kwargs) def h5save(filename, data, name=None, mode='w', mkdir=True, **kwargs): """Stores arbitrary data in an HDF5 file. This is a convenience wrapper around `obj2hdf()`. Please see its documentation for more details -- especially the warnings!! Parameters ---------- filename : str Name of the file the data shall be stored in. data : arbitrary Instance of an object that shall be stored in the file. name : str or None Name of the object. In case of a complex object that cannot be stored natively without disassembling them, this is going to be a new group, otherwise the name of the dataset. If None, no new group is created. mode : {'r', 'r+', 'w', 'w-', 'a'} IO mode of the HDF5 file. See `h5py.File` documentation for more information. mkdir : bool, optional Create target directory if it does not exist yet. **kwargs All additional arguments will be passed to `h5py.Group.create_dataset`. This could, for example, be `compression='gzip'`. """ if mkdir: target_dir = osp.dirname(filename) if target_dir and not osp.exists(target_dir): os.makedirs(target_dir) retries = 30 while retries: try: hdf = h5py.File(filename, mode) break except IOError as e: # sadly this test is not reliable #if e.errno == 11: if retries > 1 and 'resource temporarily unavailable' in str(e): # cannot lock the file: possibly concurrent use, but also # seems to happen spuriously with HDF5 1.10 # give it a second and try once more import time time.sleep(1.0) print "'%s' cannot be locked, will try again in a second" % filename retries -= 1 else: raise hdf.attrs.create('__pymvpa_hdf5_version__', '2'.encode()) hdf.attrs.create('__pymvpa_version__', mvpa2.__version__.encode()) try: obj2hdf(hdf, data, name, **kwargs) finally: hdf.close() def h5load(filename, name=None): """Loads the content of an HDF5 file that has been stored by `h5save()`. This is a convenience wrapper around `hdf2obj()`. Please see its documentation for more details. Parameters ---------- filename : str Name of the file to open and load its content. name : str Name of a specific object to load from the file. Returns ------- instance An object of whatever has been stored in the file. """ hdf = h5py.File(filename, 'r') try: if name is not None: if not name in hdf: raise ValueError("No object of name '%s' in file '%s'." % (name, filename)) obj = hdf2obj(hdf[name]) else: if not len(hdf) and not len(hdf.attrs): # there is nothing obj = None else: # stored objects can only by special groups or datasets if isinstance(hdf, h5py.Dataset) \ or ('class' in hdf.attrs or 'recon' in hdf.attrs): # this is an object stored at the toplevel obj = hdf2obj(hdf) else: # no object into at the top-level, but maybe in the next one # this would happen for plain mat files with arrays if len(hdf) == 1 and '__unnamed__' in hdf: # just a single with special name -> special case: # return as is obj = hdf2obj(hdf['__unnamed__']) else: # otherwise build dict with content obj = {} for k in hdf: obj[k] = hdf2obj(hdf[k]) finally: hdf.close() return obj pymvpa2-2.6.4/mvpa2/base/info.py000066400000000000000000000224351323370031300163660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Provide system and PyMVPA information useful while reporting bugs """ __docformat__ = 'restructuredtext' import time, sys, subprocess import os from os.path import join as pathjoin import platform as pl from tempfile import mkstemp from StringIO import StringIO import mvpa2 from mvpa2.base import externals, cfg from mvpa2.base.dochelpers import borrowkwargs def _t2s(t): res = [] for e in t: if isinstance(e, tuple): es = _t2s(e) if es != '': res += ['(%s)' % es] elif e != '': res += [e] return '/'.join(res) __all__ = ['wtf', 'get_pymvpa_gitversion'] def get_pymvpa_gitversion(): """PyMVPA version as reported by git. Returns ------- None or str Version of PyMVPA according to git. """ gitpath = pathjoin(os.path.dirname(mvpa2.__file__), os.path.pardir) gitpathgit = pathjoin(gitpath, '.git') if not os.path.exists(gitpathgit): return None ver = None try: (tmpd, tmpn) = mkstemp('mvpa', 'git') retcode = subprocess.call(['git', '--git-dir=%s' % gitpathgit, '--work-tree=%s' % gitpath, 'describe', '--abbrev=4', 'HEAD' ], stdout=tmpd, stderr=subprocess.STDOUT) outline = open(tmpn, 'r').readlines()[0].strip() if outline.startswith('upstream/'): ver = outline.replace('upstream/', '') finally: os.remove(tmpn) return ver class WTF(object): """Convenience class to contain information about PyMVPA and OS TODO: refactor to actually not contain just string representation but rather a dictionary (of dictionaries) """ __knownitems__ = set(('process', 'runtime', 'externals', 'system', 'sources')) def __init__(self, include=None, exclude=None): """ Parameters ---------- include : list of str By default, all known (listed in `__knownitems__`) are reported. If only a limited set is needed to be reported -- specify it here. exclude : list of str If you want to exclude any item from being reported. """ self._info = '' if include is None: report_items = self.__knownitems__.copy() else: # check first if not self.__knownitems__.issuperset(include): raise ValueError, \ "Items %s provided in exclude are not known to WTF." \ " Known are %s" % \ (str(set(include).difference(self.__knownitems__)), self.__knownitems__) report_items = set(include) if exclude is not None: # check if all are known if not self.__knownitems__.issuperset(exclude): raise ValueError, \ "Items %s provided in exclude are not known to WTF." \ " Known are %s" % \ (str(set(exclude).difference(self.__knownitems__)), self.__knownitems__) report_items = report_items.difference(exclude) self._report_items = report_items self._acquire() def _acquire_sources(self, out): out.write("PyMVPA:\n") out.write(" Version: %s\n" % mvpa2.__version__) out.write(" Hash: %s\n" % mvpa2.__hash__) out.write(" Path: %s\n" % mvpa2.__file__) # Try to obtain git information if available out.write(" Version control (GIT):\n") try: gitpath = pathjoin(os.path.dirname(mvpa2.__file__), os.path.pardir) gitpathgit = pathjoin(gitpath, '.git') if os.path.exists(gitpathgit): for scmd, cmd in [ ('Status', ['status']), ('Reference', 'show-ref -h HEAD'.split(' ')), ('Difference from last release %s' % mvpa2.__version__, ['diff', '--shortstat', 'upstream/%s...' % mvpa2.__version__])]: try: (tmpd, tmpn) = mkstemp('mvpa', 'git') retcode = subprocess.call(['git', '--git-dir=%s' % gitpathgit, '--work-tree=%s' % gitpath] + cmd, stdout=tmpd, stderr=subprocess.STDOUT) finally: outlines = open(tmpn, 'r').readlines() if len(outlines): out.write(' %s:\n %s' % (scmd, ' '.join(outlines))) os.remove(tmpn) #except Exception, e: # pass else: raise RuntimeError, "%s is not under GIT" % gitpath except Exception, e: out.write(' GIT information could not be obtained due "%s"\n' % e) def _acquire_system(self, out): out.write('SYSTEM:\n') out.write(' OS: %s\n' % ' '.join([os.name, pl.system(), pl.release(), pl.version()]).rstrip()) out.write(' Distribution: %s\n' % ' '.join([_t2s(pl.dist()), _t2s(pl.mac_ver()), _t2s(pl.win32_ver())]).rstrip()) def _acquire_externals(self, out): # Test and list all dependencies: sdeps = {True: [], False: [], 'Error': []} for dep in sorted(externals._KNOWN): try: sdeps[externals.exists(dep, force=False)] += [dep] except: sdeps['Error'] += [dep] out.write('EXTERNALS:\n') out.write(' Present: %s\n' % ', '.join(sdeps[True])) out.write(' Absent: %s\n' % ', '.join(sdeps[False])) if len(sdeps['Error']): out.write(' Errors in determining: %s\n' % ', '.join(sdeps['Error'])) SV = ('.__version__', ) # standard versioning out.write(' Versions of critical externals:\n') # First the ones known to externals, for k, v in sorted(externals.versions.iteritems()): out.write(' %-12s: %s\n' % (k, str(v))) try: if externals.exists('matplotlib'): import matplotlib out.write(' Matplotlib backend: %s\n' % matplotlib.get_backend()) except Exception, exc: out.write(' Failed to determine backend of matplotlib due to "%s"' % str(exc)) def _acquire_runtime(self, out): out.write("RUNTIME:\n") out.write(" PyMVPA Environment Variables:\n") pymvpa_envvars = ' '.join([ '%-20s: "%s"\n' % (str(k), str(v)) for k, v in os.environ.iteritems() if (k.startswith('MVPA') or k.startswith('PYTHON')) ]) if pymvpa_envvars: out.write(' ' + pymvpa_envvars) out.write(" PyMVPA Runtime Configuration:\n") out.write(' ' + str(cfg).replace('\n', '\n ').rstrip() + '\n') def _acquire_process(self, out): try: procstat = open('/proc/%d/status' % os.getpid()).readlines() procstat += ['Python recursion limit: %d' % sys.getrecursionlimit()] out.write(' Process Information:\n') out.write(' ' + ' '.join(procstat)) except: pass def _acquire(self): """ TODO: refactor and redo ;) """ out = StringIO() out.write("Current date: %s\n" % time.strftime("%Y-%m-%d %H:%M")) # Little silly communicator/ if 'sources' in self._report_items: self._acquire_sources(out) if 'system' in self._report_items: self._acquire_system(out) if 'externals' in self._report_items: self._acquire_externals(out) if 'runtime' in self._report_items: self._acquire_runtime(out) if 'process' in self._report_items: self._acquire_process(out) self._info = out.getvalue() def __repr__(self): if self._info is None: self._acquire() return self._info __str__ = __repr__ @borrowkwargs(WTF, '__init__') def wtf(filename=None, **kwargs): """Report summary about PyMVPA and the system Parameters ---------- filename : None or str If provided, information will be stored in a file, not printed to the screen **kwargs Passed to initialize `WTF` instance """ info = WTF(**kwargs) if filename is not None: _ = open(filename, 'w').write(str(info)) else: return info if __name__ == '__main__': print wtf() pymvpa2-2.6.4/mvpa2/base/learner.py000066400000000000000000000261661323370031300170700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Implementation of a common trainable processing object (Learner).""" __docformat__ = 'restructuredtext' import time from mvpa2.base.dataset import AttrDataset from mvpa2.base.node import Node, ChainNode from mvpa2.base.state import ConditionalAttribute from mvpa2.base.types import is_datasetlike from mvpa2.base.dochelpers import _repr_attrs from mvpa2.base.node import CompoundNode, CombinedNode if __debug__: from mvpa2.base import debug, warning class LearnerError(Exception): """Base class for exceptions thrown by the Learners """ pass class DegenerateInputError(LearnerError): """Learner exception thrown if input data is not bogus i.e. no features or samples """ pass class FailedToTrainError(LearnerError): """Learner exception thrown if training failed""" pass class FailedToPredictError(LearnerError): """Learner exception if it fails to predict. Usually happens if it was trained on degenerate data but without any complaints, or was not trained prior calling predict(). """ pass class Learner(Node): """Common trainable processing object. A `Learner` is a `Node` that can (maybe has to) be trained on a dataset, before it can perform its function. """ training_time = ConditionalAttribute( enabled=True, doc="Time (in seconds) it took to train the learner") trained_targets = ConditionalAttribute( enabled=True, doc="Set of unique targets (or any other space) it has" " been trained on (if present in the dataset trained on)") trained_nsamples = ConditionalAttribute( enabled=True, doc="Number of samples it has been trained on") trained_dataset = ConditionalAttribute( enabled=False, doc="The dataset it has been trained on") def __init__(self, auto_train=False, force_train=False, **kwargs): """ Parameters ---------- auto_train : bool Flag whether the learner will automatically train itself on the input dataset when called untrained. force_train : bool Flag whether the learner will enforce training on the input dataset upon every call. **kwargs All arguments are passed to the baseclass. """ Node.__init__(self, **kwargs) self.__is_trained = False self.__auto_train = auto_train self.__force_train = force_train def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(Learner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['auto_train', 'force_train'], default=False)) def train(self, ds): """ The default implementation calls ``_pretrain()``, ``_train()``, and finally ``_posttrain()``. Parameters ---------- ds: Dataset Training dataset. Returns ------- None """ got_ds = is_datasetlike(ds) # TODO remove first condition if all Learners get only datasets if got_ds and (ds.nfeatures == 0 or len(ds) == 0): raise DegenerateInputError( "Cannot train learner on degenerate data %s" % ds) if __debug__: debug( "LRN", "Training learner %(lrn)s on dataset %(dataset)s", msgargs={'lrn': self, 'dataset': ds}) self._pretrain(ds) # remember the time when started training t0 = time.time() if got_ds: # things might have happened during pretraining if ds.nfeatures > 0: self._train(ds) else: warning("Trying to train on dataset with no features present") if __debug__: debug("LRN", "No features present for training, no actual training " "is called") else: # in this case we claim to have no idea and simply try to train self._train(ds) # store timing self.ca.training_time = time.time() - t0 # and post-proc self._posttrain(ds) # finally flag as trained self._set_trained() if __debug__: debug( "LRN", "Finished training learner %(lrn)s on dataset %(dataset)s", msgargs={'lrn': self, 'dataset': ds}) def untrain(self): """Reverts changes in the state of this node caused by previous training """ # flag the learner as untrained # important to do that before calling the implementation in the derived # class, as it might decide that an object remains trained self._set_trained(False) # call subclass untrain first to allow it to access current attributes self._untrain() # TODO evaluate whether this should also reset the nodes collections, or # whether that should be done by a more general reset() method self.reset() def _untrain(self): # nothing by default pass def _pretrain(self, ds): """Preparations prior training. By default, does nothing. Parameters ---------- ds: Dataset Original training dataset. Returns ------- None """ pass def _train(self, ds): # nothing by default pass def _posttrain(self, ds): """Finalizing the training. By default, does nothing. Parameters ---------- ds: Dataset Original training dataset. Returns ------- None """ ca = self.ca if ca.is_enabled('trained_targets') and isinstance(ds, AttrDataset): space = self.get_space() if space in ds.sa: ca.trained_targets = ds.sa[space].unique ca.trained_dataset = ds ca.trained_nsamples = len(ds) def _set_trained(self, status=True): """Set the Learner's training status Derived use this to set the Learner's status to trained (True) or untrained (False). """ self.__is_trained = status def __call__(self, ds): # overwrite __call__ to perform a rigorous check whether the learner was # trained before use and auto-train if self.is_trained: # already trained if self.force_train: if __debug__: debug('LRN', "Forcing training of %s on %s", (self, ds)) # but retraining is enforced self.train(ds) elif __debug__: debug('LRN', "Skipping training of already trained %s on %s", (self, ds)) else: # not trained if self.auto_train: # auto training requested if __debug__: debug('LRN', "Auto-training %s on %s", (self, ds)) self.train(ds) else: # we always have to have trained before using a learner raise RuntimeError("%s needs to be trained before it can be " "used and auto training is disabled." % str(self)) return super(Learner, self).__call__(ds) is_trained = property(fget=lambda x: x.__is_trained, fset=_set_trained, doc="Whether the Learner is currently trained.") auto_train = property(fget=lambda x: x.__auto_train, doc="Whether the Learner performs automatic training" "when called untrained.") force_train = property( fget=lambda x: x.__force_train, doc="Whether the Learner enforces training upon every call.") class CompoundLearner(Learner, CompoundNode): def __init__(self, learners, auto_train=False, force_train=False, **kwargs): '''Initializes with measures Parameters ---------- learners: list or tuple a list of Learner instances ''' Learner.__init__(self, auto_train=auto_train, force_train=force_train, **kwargs) CompoundNode.__init__(self, learners, **kwargs) is_trained = property(fget=lambda x: all(y.is_trained for y in x), fset=lambda x: map(y._set_trained() for y in x), doc="Whether the Learner is currently trained.") def train(self, ds): for learner in self: learner.train(ds) def untrain(self): for learner in self: learner.untrain() def _call(self, ds): raise NotImplementedError class ChainLearner(ChainNode, CompoundLearner): '''Combines different learners into one in a chained fashion''' def __init__(self, learners, auto_train=False, force_train=False, **kwargs): '''Initializes with measures Parameters ---------- learners: list or tuple a list of Learner instances ''' CompoundLearner.__init__( self, learners, auto_train=auto_train, force_train=force_train, **kwargs) def _call(self, ds): return ChainNode._call(self, ds) class CombinedLearner(CompoundLearner, CombinedNode): def __init__(self, learners, combine_axis, a=None, **kwargs): """ Parameters ---------- learners : list of Learner combine_axis : ['h', 'v'] a: {'unique','drop_nonunique','uniques','all'} or True or False or None (default: None) Indicates which dataset attributes from datasets are stored in merged_dataset. If an int k, then the dataset attributes from datasets[k] are taken. If 'unique' then it is assumed that any attribute common to more than one dataset in datasets is unique; if not an exception is raised. If 'drop_nonunique' then as 'unique', except that exceptions are not raised. If 'uniques' then, for each attribute, any unique value across the datasets is stored in a tuple in merged_datasets. If 'all' then each attribute present in any dataset across datasets is stored as a tuple in merged_datasets; missing values are replaced by None. If None (the default) then no attributes are stored in merged_dataset. True is equivalent to 'drop_nonunique'. False is equivalent to None. """ CompoundLearner.__init__(self, learners, **kwargs) self._combine_axis = combine_axis self._a = a def _call(self, ds): return CombinedNode._call(self, ds) pymvpa2-2.6.4/mvpa2/base/node.py000066400000000000000000000444261323370031300163640ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Implementation of a common processing object (node).""" __docformat__ = 'restructuredtext' import time import numpy as np from mvpa2.support import copy from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.base.state import ClassWithCollections, ConditionalAttribute from mvpa2.base.collections import SampleAttributesCollection, \ FeatureAttributesCollection, DatasetAttributesCollection if __debug__: from mvpa2.base import debug class Node(ClassWithCollections): """Common processing object. A `Node` is an object the processes datasets. It can be called with a `Dataset` and returns another dataset with the results. In addition, a node can also be used as a generator. Upon calling ``generate()`` with a datasets it yields (potentially) multiple result datasets. Node have a notion of ``space``. The meaning of this space may vary heavily across sub-classes. In general, this is a trigger that tells the node to compute and store information about the input data that is "interesting" in the context of the corresponding processing in the output dataset. """ calling_time = ConditionalAttribute( enabled=True, doc="Time (in seconds) it took to call the node") raw_results = ConditionalAttribute( enabled=False, doc="Computed results before invoking postproc. " + "Stored only if postproc is not None.") # Work-around for "happily-broken-by-design" HDF5 storage # serialization: upon reconstruction, no __init__ is called # so no private attributes, introduced since the moment when # original structure was serialized, would get populated. # "More proper" solution would be finally to implement a full # chain of __reduce__ and __setstate__s for derived classes (and use # Parameters more). For now we would simply define those with default # values also at class level. __pass_attr = None def __init__(self, space=None, pass_attr=None, postproc=None, **kwargs): """ Parameters ---------- space : str, optional Name of the 'processing space'. The actual meaning of this argument heavily depends on the sub-class implementation. In general, this is a trigger that tells the node to compute and store information about the input data that is "interesting" in the context of the corresponding processing in the output dataset. pass_attr : str, list of str|tuple, optional Additional attributes to pass on to an output dataset. Attributes can be taken from all three attribute collections of an input dataset (sa, fa, a -- see :meth:`Dataset.get_attr`), or from the collection of conditional attributes (ca) of a node instance. Corresponding collection name prefixes should be used to identify attributes, e.g. 'ca.null_prob' for the conditional attribute 'null_prob', or 'fa.stats' for the feature attribute stats. In addition to a plain attribute identifier it is possible to use a tuple to trigger more complex operations. The first tuple element is the attribute identifier, as described before. The second element is the name of the target attribute collection (sa, fa, or a). The third element is the axis number of a multidimensional array that shall be swapped with the current first axis. The fourth element is a new name that shall be used for an attribute in the output dataset. Example: ('ca.null_prob', 'fa', 1, 'pvalues') will take the conditional attribute 'null_prob' and store it as a feature attribute 'pvalues', while swapping the first and second axes. Simplified instructions can be given by leaving out consecutive tuple elements starting from the end. postproc : Node instance, optional Node to perform post-processing of results. This node is applied in `__call__()` to perform a final processing step on the to be result dataset. If None, nothing is done. """ ClassWithCollections.__init__(self, **kwargs) if __debug__: debug("NO", "Init node '%s' (space: '%s', postproc: '%s')", (self.__class__.__name__, space, str(postproc))) self.set_space(space) self.set_postproc(postproc) if isinstance(pass_attr, basestring): pass_attr = (pass_attr,) self.__pass_attr = pass_attr def _get_call_kwargs(self, ds): """Helper to provide _call kwargs, to be overriden in sub-classes To be used if the same state variables should be set/used by .generate or direct __call__ """ return {} def __call__(self, ds, _call_kwargs={}): """ The default implementation calls ``_precall()``, ``_call()``, and finally returns the output of ``_postcall()``. Parameters ---------- ds: Dataset Input dataset. _call_kwargs: dict, optional Used internally to pass "state" keyword arguments into _call, primarily used internally (e.g. by `generate` method). It is up for a subclass to implement/use it where necessary. `_get_call_kwargs()` method will be used to provide the set of kwargs to be set/used by `generate` or direct `__call__` calls Returns ------- Dataset """ t0 = time.time() # record the time when call initiated self._precall(ds) result = self._call(ds, **(_call_kwargs or self._get_call_kwargs(ds))) result = self._postcall(ds, result) self.ca.calling_time = time.time() - t0 # set the calling_time return result def _precall(self, ds): """Preprocessing of data By default, does nothing. Parameters ---------- ds: Dataset Original input dataset. Returns ------- Dataset """ return ds def _call(self, ds): raise NotImplementedError def _postcall(self, ds, result): """Postprocessing of results. By default, does nothing. Parameters ---------- ds: Dataset Original input dataset. result: Dataset Preliminary result dataset (as produced by ``_call()``). Returns ------- Dataset """ result = self._pass_attr(ds, result) result = self._apply_postproc(ds, result) return result def _pass_attr(self, ds, result): """Pass a configured set of attributes on to the output dataset""" pass_attr = self.__pass_attr if pass_attr is not None: ca = self.ca ca_keys = self.ca.keys() for a in pass_attr: maxis = 0 rcol = None attr_newname = None if isinstance(a, tuple): if len(a) > 1: # target collection is second element colswitch = {'sa': result.sa, 'fa': result.fa, 'a': result.a} rcol = colswitch[a[1]] if len(a) > 2: # major axis is third element maxis = a[2] if len(a) > 3: # new attr name if fourth element attr_newname = a[3] # the attribute name is the first element a = a[0] # It might come from .ca of this instance if a.startswith('ca.'): a = a[3:] if a in ca_keys: if rcol is None: # We will assign it to .sa for now rcol = result.sa attr = ca[a] else: # look in the ds # find it in the original ds attr, col = ds.get_attr(a) if rcol is None: # ONLY if there was no explicit output collection set # deduce corresponding collection in results # Since isinstance would take longer (eg 200 us vs 4) # for now just use 'is' on the __class__ col_class = col.__class__ if col_class is SampleAttributesCollection: rcol = result.sa elif col_class is FeatureAttributesCollection: rcol = result.fa elif col_class is DatasetAttributesCollection: rcol = result.a else: raise ValueError("Cannot determine origin of %s collection" % col) if attr_newname is None: # go with previous name if no other is given attr_newname = attr.name if maxis == 0: # all good value = attr.value else: # move selected axis to the front value = np.swapaxes(attr.value, 0, maxis) # "shallow copy" into the result # this way we also invoke checks for the correct length etc rcol[attr_newname] = value return result def _apply_postproc(self, ds, result): """Apply any post-processing to an output dataset""" if self.__postproc is not None: if __debug__: debug("NO", "Applying post-processing node %s", (self.__postproc,)) self.ca.raw_results = result result = self.__postproc(result) return result def generate(self, ds): """Yield processing results. This methods causes the node to behave like a generator. By default it simply yields a single result of its processing -- identical to the output of calling the node with a dataset. Subclasses might implement generators that yield multiple results. Parameters ---------- ds: Dataset Input dataset Returns ------- generator the generator yields the result of the processing. """ yield self(ds) def get_space(self): """Query the processing space name of this node.""" return self.__space def set_space(self, name): """Set the processing space name of this node.""" self.__space = name def get_postproc(self): """Returns the post-processing node or None.""" return self.__postproc def set_postproc(self, node): """Assigns a post-processing node Set to `None` to disable postprocessing. """ self.__postproc = node def __str__(self, *args, **kwargs): return _str(self, *args, **kwargs) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(Node, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['space', 'pass_attr', 'postproc'])) space = property(get_space, set_space, doc="Processing space name of this node") pass_attr = property(lambda self: self.__pass_attr, doc="Which attributes of the dataset or self.ca " "to pass into result dataset upon call") postproc = property(get_postproc, set_postproc, doc="Node to perform post-processing of results") class CompoundNode(Node): """List of nodes. A CompoundNode behaves similar to a list container: Nodes can be appended, and the chain can be sliced like a list, etc ... Subclasses such as ChainNode and CombinedNode implement the _call method in different ways. """ def __init__(self, nodes, **kwargs): """ Parameters ---------- nodes: list Node instances. """ if not len(nodes): raise ValueError("%s needs at least one embedded node." % self.__class__.__name__) self._nodes = nodes Node.__init__(self, **kwargs) def __copy__(self): # XXX how do we safely and exhaustively copy a node? return self.__class__([copy.copy(n) for n in self]) def _call(self, ds): raise NotImplementedError("This is an abstract class.") def generate(self, ds, startnode=0): """ Parameters ---------- ds: Dataset To be processed dataset startnode: int First node in the chain that shall be considered. This argument is mostly useful for internal optimization. """ first_node = self[startnode] if __debug__: debug('MAP', "%s: input (%s) -> generator (%i/%i): '%s'", (self.__class__.__name__, ds.shape, startnode + 1, len(self), first_node)) # let the first node generator as many datasets as it wants for gds in first_node.generate(ds): if startnode == len(self) - 1: # if this is already the last node yield the result yield gds else: # otherwise feed them through the rest of the chain for rgds in self.generate(gds, startnode=startnode + 1): yield rgds # # Behave as a container # def append(self, node): """Append a node to the chain.""" # XXX and if a node is a ChainMapper itself -- should we just # may be loop and add all the entries? self._nodes.append(node) def __len__(self): return len(self._nodes) def __iter__(self): for n in self._nodes: yield n def __reversed__(self): return reversed(self._nodes) def __getitem__(self, key): # if just one is requested return just one, otherwise return a # NodeChain again if isinstance(key, int): return self._nodes[key] else: # operate on shallow copy of self sliced = copy.copy(self) sliced._nodes = self._nodes[key] return sliced def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CompoundNode, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['nodes'])) def __str__(self): return _str(self, '-'.join([str(n) for n in self])) nodes = property(fget=lambda self: self._nodes) class ChainNode(CompoundNode): """ This class allows to concatenate a list of nodes into a processing chain. When called with a dataset, it is sequentially fed through nodes in the chain. A ChainNode may also be used as a generator. In this case, all nodes in the chain are treated as generators too, and the ChainNode behaves as a single big generator that recursively calls all embedded generators and yield the results. """ def __init__(self, nodes, **kwargs): """ Parameters ---------- nodes: list Node instances. """ CompoundNode.__init__(self, nodes=nodes, **kwargs) def _call(self, ds): mp = ds for i, n in enumerate(self): if __debug__: debug('MAP', "%s: input (%s) -> node (%i/%i): '%s'", (self.__class__.__name__, hasattr(mp, 'shape') and mp.shape or '???', i + 1, len(self), n)) mp = n(mp) if __debug__: debug('MAP', "%s: output (%s)", (self.__class__.__name__, mp.shape)) return mp class CombinedNode(CompoundNode): """Node to pass a dataset on to a set of nodes and combine there output. Output combination or aggregation is currently done by hstacking or vstacking the resulting datasets. """ def __init__(self, nodes, combine_axis, a=None, **kwargs): """ Parameters ---------- mappers : list combine_axis : ['h', 'v'] a: {'unique','drop_nonunique','uniques','all'} or True or False or None (default: None) Indicates which dataset attributes from datasets are stored in merged_dataset. If an int k, then the dataset attributes from datasets[k] are taken. If 'unique' then it is assumed that any attribute common to more than one dataset in datasets is unique; if not an exception is raised. If 'drop_nonunique' then as 'unique', except that exceptions are not raised. If 'uniques' then, for each attribute, any unique value across the datasets is stored in a tuple in merged_datasets. If 'all' then each attribute present in any dataset across datasets is stored as a tuple in merged_datasets; missing values are replaced by None. If None (the default) then no attributes are stored in merged_dataset. True is equivalent to 'drop_nonunique'. False is equivalent to None. """ CompoundNode.__init__(self, nodes=nodes, **kwargs) self._combine_axis = combine_axis self._a = a def __copy__(self): return self.__class__([copy.copy(n) for n in self], copy.copy(self._combine_axis), copy.copy(self._a)) def _call(self, ds): out = [node(ds) for node in self] from mvpa2.datasets import hstack, vstack stacker = {'h': hstack, 'v': vstack} stacked = stacker[self._combine_axis](out, self._a) return stacked def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CombinedNode, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['combine_axis', 'a'])) pymvpa2-2.6.4/mvpa2/base/param.py000066400000000000000000000235151323370031300165330ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##g """Parameter representation""" __docformat__ = 'restructuredtext' import re import textwrap import warnings import numpy as np from mvpa2.base.state import IndexedCollectable from mvpa2.base.constraints import expand_contraint_spec if __debug__: from mvpa2.base import debug _whitespace_re = re.compile('\n\s+|^\s+') __all__ = [ 'Parameter', 'KernelParameter' ] class Parameter(IndexedCollectable): """This class shall serve as a representation of a parameter. It might be useful if a little more information than the pure parameter value is required (or even only useful). Each parameter must have a value. However additional attributes can be passed to the constructor and will be stored in the object. Notes ----- BIG ASSUMPTION: stored values are not mutable, ie nobody should do cls.parameter1[:] = ... or we wouldn't know that it was changed Here is a list of possible additional attributes: step Increment/decrement step size hint for optimization """ def __init__(self, default, constraints=None, ro=False, index=None, value=None, name=None, doc=None, **kwargs): """Specify a Parameter with a default value and arbitrary number of additional attributes. Parameters ---------- constraints : callable A functor that takes any input value, performs checks or type conversions and finally returns a value that is appropriate for a parameter or raises an exception. name : str Name of the parameter under which it should be available in its respective collection. doc : str Documentation about the purpose of this parameter. index : int or None Index of parameter among the others. Determines order of listing in help. If None, order of instantiation determines the index. ro : bool Either value which will be assigned in the constructor is read-only and cannot be changed value Actual value of the parameter to be assigned Examples -------- -ensure the parameter to be of type float (None not allowed as value): constraints = EnsureFloat() >>> from mvpa2.base.param import Parameter >>> from mvpa2.base.constraints import (EnsureFloat, EnsureRange, ... AltConstraints, Constraints) >>> C = Parameter(23.0, constraints=EnsureFloat()) -ensure the parameter to be of type float or to be None: >>> C = Parameter(23.0, constraints=AltConstraints(EnsureFloat(), None)) -ensure the parameter to be None or to be of type float and lie in the inclusive range (7.0,44.0): >>> C = Parameter(23.0, AltConstraints(Constraints(EnsureFloat(), ... EnsureRange(min=7.0,max=44.0)), ... None)) """ allowedtype = kwargs.pop('allowedtype', None) if allowedtype is not None: warnings.warn( "allowedtype option was deprecated in favor of constraints. " "Adjust your code, provided value '%s' was ignored" % str(allowedtype), category=DeprecationWarning) # XXX probably is too generic... # and potentially dangerous... # let's at least keep track of what is passed self._additional_props = [] for k, v in kwargs.iteritems(): self.__setattr__(k, v) self._additional_props.append(k) self.__default = default self._ro = ro self.constraints = expand_contraint_spec(constraints) # needs to come after kwargs processing, since some debug statements # rely on working repr() # value is not passed since we need to invoke _set with init=True # below IndexedCollectable.__init__(self, index=index, # value=value, name=name, doc=doc) self._isset = False if value is None: self._set(self.__default, init=True) else: self._set(value, init=True) if __debug__: if 'val' in kwargs: raise ValueError, "'val' property name is illegal." def __reduce__(self): icr = IndexedCollectable.__reduce__(self) # Collect all possible additional properties which were passed # to the constructor state = dict([(k, getattr(self, k)) for k in self._additional_props]) state['_additional_props'] = self._additional_props state.update(icr[2]) res = (self.__class__, (self.__default, self.constraints, self._ro) + icr[1], state) #if __debug__ and 'COL_RED' in debug.active: # debug('COL_RED', 'Returning %s for %s' % (res, self)) return res def __str__(self): res = IndexedCollectable.__str__(self) # it is enabled but no value is assigned yet res += '=%s' % (self.value,) return res def __repr__(self): # cannot use IndexedCollectable's repr(), since the contructor # needs to handle the mandatory 'default' argument # TODO: so what? just tune it up ;) # TODO: think what to do with index parameter... s = "%s(%s, name=%s, doc=%s" % (self.__class__.__name__, self.__default, repr(self.name), repr(self.__doc__)) plist = ["%s=%s" % (p, self.__getattribute__(p)) for p in self._additional_props] if len(plist): s += ', ' + ', '.join(plist) if self._ro: s += ', ro=True' if not self.is_default: s += ', value=%r' % (self.value, ) s += ')' return s def _paramdoc(self, indent=" ", width=70): """Docstring for the parameter to be used in lists of parameters Returns ------- string or list of strings (if indent is None) """ paramsdoc = '%s' % self.name if self.constraints is not None: sdoc = self.constraints.short_description() if sdoc is not None: if sdoc[0] == '(' and sdoc[-1] == ')': sdoc = sdoc[1:-1] # parameters are always optional paramsdoc += " : %s, optional" % sdoc paramsdoc = [paramsdoc] try: doc = self.__doc__.strip() if not doc.endswith('.'): doc += '.' if self.constraints is not None: cdoc = self.constraints.long_description() if cdoc[0] == '(' and cdoc[-1] == ')': cdoc = cdoc[1:-1] doc += ' Constraints: %s.' % cdoc try: doc += " [Default: %r]" % (self.default,) except: pass # Explicitly deal with multiple spaces, for some reason # replace_whitespace is non-effective doc = _whitespace_re.sub(' ', doc) paramsdoc += [indent + x for x in textwrap.wrap(doc, width=width-len(indent), replace_whitespace=True)] except Exception, e: pass return '\n'.join(paramsdoc) # XXX should be named reset2default? correspondingly in # ParameterCollection as well def reset_value(self): """Reset value to the default""" #IndexedCollectable.reset(self) if not self.is_default and not self._ro: self._isset = True self.value = self.__default def _set(self, val, init=False): if self.constraints is not None: # for c in self.constraints: # val = c(val) # #val = c.validate(val) val = self.constraints(val) different_value = self._value != val isarray = isinstance(different_value, np.ndarray) if self._ro and not init: raise RuntimeError, \ "Attempt to set read-only parameter %s to %s" \ % (self.name, val) if (isarray and np.any(different_value)) or \ ((not isarray) and different_value): if __debug__: debug("COL", "Parameter: setting %s to %s " % (str(self), val)) self._value = val # Set 'isset' only if not called from initialization routine self._isset = not init #True elif __debug__: debug("COL", "Parameter: not setting %s since value is the same" \ % (str(self))) @property def is_default(self): """Returns True if current value is bound to default one""" return self._value is self.default @property def equal_default(self): """Returns True if current value is equal to default one""" return self._value == self.__default def _set_default(self, value): wasdefault = self.is_default self.__default = value if wasdefault: self.reset_value() self._isset = False # incorrect behavior #def reset(self): # """Override reset so we don't clean the flag""" # pass default = property(fget=lambda x:x.__default, fset=_set_default) value = property(fget=lambda x:x._value, fset=_set) class KernelParameter(Parameter): """Just that it is different beast""" pass pymvpa2-2.6.4/mvpa2/base/progress.py000066400000000000000000000131061323370031300172720ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to print pretty progress indicator. """ __docformat__ = 'restructuredtext' import time import datetime import math def seconds2prettystring(t, ndigits=0): '''Prints seconds in a pretty form Parameters ---------- t: float time in seconds ndigits: int (default: 0) how many digits are used to show time in seconds (after the decimal sign '.') Returns s: str time represented as a string HH:MM:SS ''' if t < 0: return '-' + seconds2prettystring(-t, ndigits) if t == t + 1.: return 'oo' # infinity seconds_per_day = 60 * 60 * 24 ndays = int(t) // seconds_per_day nseconds = t - ndays * seconds_per_day sec_str = str(datetime.timedelta(seconds=nseconds)) # split on decimal point sec_split = sec_str.split('.') if len(sec_split) != 1: big, small = sec_split # before and after dot if ndigits == 0: sec_str = big else: sec_str = '%s.%s' % (big, small[:min(len(small), ndigits)]) return sec_str if ndays == 0 else '%d+%s' % (ndays, sec_str) def eta_string(start_time, progress, msg=None, progress_bar_width=18, show_percentage=True): '''Simple linear extrapolation to estimate how much time is needed to complete a task. Parameters ---------- starttime Time the tqsk started, from 'time.time()' progress: float Between 0 (nothing completed) and 1 (fully completed) msg: str (optional) Message that describes progress - is added to the output progress_bar_width: int (default: 18) Width of progress bar. If zero then no progress bar is shown. show_percentage: bool (default: True) Show progress in percentage? Returns ------- eta Estimated time until completion formatter pretty, Notes ----- ETA refers to "estimated time of arrival". ''' SYM_DONE = '=' SYM_TODO = '_' now = time.time() took = now - start_time legal_progress = 0 < progress <= 1 eta = took * (1 - progress) / progress if legal_progress \ else progress * float('inf') pct_str = '[%.0f%%]' % (progress * 100.) formatter = seconds2prettystring if progress_bar_width: n_done = int(math.floor(min(progress, 1.) * progress_bar_width)) n_todo = progress_bar_width - n_done done = SYM_DONE * n_done todo = SYM_TODO * n_todo if show_percentage: # replace characters in 'done' or 'todo' (whichever is longer) # by a percentage indicator (e.g. "[42%]"). n_pct = len(pct_str) margin = 2 n = n_pct + margin # required length for pct string if n <= n_done and (n > n_todo or n_done >= n_todo): offset = (n_done - margin - n_pct // 2) // 2 done = done[:offset] + pct_str + \ done[:(n_done - offset - n_pct)] elif n <= n_todo: offset = (n_todo - (n_pct + margin) // 2) // 2 todo = todo[:offset] + pct_str + \ todo[:(n_todo - offset - n_pct)] else: pass # not enough space - don't show anything bar = done + todo else: bar = pct_str full_msg = '+%s %s %s' % (formatter(took), bar, formatter(-eta)) if msg is not None: full_msg = '%s %s' % (full_msg, msg) return full_msg class ProgressBar(object): '''Simple progress bar in ASCII text''' def __init__(self, start_time=None, progress_bar_width=18, show_percentage=True): ''' Initializes the progress bar Parameters ---------- start_time: float or None (default) Start time relative to the start of the Epoch. If None it takes the current time. progress_bar_width: int (default: 18) Width of progress bar. If zero then no progress bar is shown. show_percentage: bool (default: True) Show progress in percentage? ''' self.start(start_time) self._progress_bar_width = progress_bar_width self._show_percentage = show_percentage def start(self, start_time=None): '''Resets the start time Parameters ---------- start_time: float or None (default) Start time relative to the start of the Epoch. If None it takes the current time. ''' if start_time is None: start_time = time.time() self._start_time = start_time def __call__(self, progress, msg=None): ''' Returns a string representation of progress Parameters ---------- progress: float Between 0 (nothing completed) and 1 (fully completed) msg: str (optional) Message that describes progress - is added to the output Returns ------- bar: str A text representation of progress. ''' return eta_string(self._start_time, progress, msg, progress_bar_width=self._progress_bar_width, show_percentage=self._show_percentage) pymvpa2-2.6.4/mvpa2/base/report.py000066400000000000000000000257571323370031300167600ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Creating simple PDF reports using reportlab """ __docformat__ = 'restructuredtext' import os from os.path import join as pathjoin from datetime import datetime import mvpa2 from mvpa2.base import externals, verbose from mvpa2.base.dochelpers import borrowkwargs if __debug__: from mvpa2.base import debug if externals.exists('reportlab', raise_=True): import reportlab as rl import reportlab.platypus as rplp import reportlab.lib.styles as rpls import reportlab.lib.units as rplu # Actually current reportlab's Image can't deal directly with .pdf images # Lets use png for now if externals.versions['reportlab'] >= '1112.2': _fig_ext_default = 'pdf' else: _fig_ext_default = 'png' __all__ = [ 'rl', 'Report', 'escape_xml' ] def escape_xml(s): """Replaces &<> symbols with corresponding XML tokens """ s = s.replace('&', '&') s = s.replace('<', '<') s = s.replace('>', '>') return s class Report(object): """Simple PDF reports using reportlab Named report 'report' generates 'report.pdf' and directory 'report/' with images which were requested to be included in the report You can attach report to the existing 'verbose' with >>> report = Report() >>> verbose.handlers += [report] and then all verbose messages present on the screen will also be recorded in the report. Use >>> report.text("string") # to add arbitrary text >>> report.xml("

    skajdsf

    ") # to add XML snippet or >>> report.figure() # to add the current figure to the report. >>> report.figures() # to add existing figures to the report Note that in the later usecase, figures might not be properly interleaved with verbose messages if there were any between the creations of the figures. Inspired by Andy Connolly """ def __init__(self, name='report', title=None, path=None, author=None, style="Normal", fig_ext=None, font='Helvetica', pagesize=None): """Initialize report Parameters ---------- name : string Name of the report title : string or None Title to start the report, if None, name will be used path : string Top directory where named report will be stored. Has to be set now to have correct path for storing image renderings. Default: current directory author : string or None Optional author identity to be printed style : string Default Paragraph to be used. Must be the one of the known to reportlab styles, e.g. Normal fig_ext : string What extension to use for figures by default. If None, a default will be used. Since versions prior 2.2 of reportlab might do not support pdf, 'png' is default for those, 'pdf' otherwise font : string Name of the font to use pagesize : tuple of floats Optional page size if not to be default """ if pagesize is None: pagesize = rl.rl_config.defaultPageSize self.pagesize = pagesize self.name = name self.author = author self.font = font self.title = title if fig_ext is None: self.fig_ext = _fig_ext_default else: self.fig_ext = fig_ext if path is None: self._filename = name else: self._filename = pathjoin(path, name) self.__nfigures = 0 try: styles = rpls.getSampleStyleSheet() self.style = styles.byName[style] except KeyError: raise ValueError, \ "Style %s is not know to reportlab. Known are %s" \ % (styles.keys()) self._story = [] @property def __preamble(self): """Compose the beginning of the report """ date = datetime.today().isoformat(' ') owner = 'PyMVPA v. %s' % mvpa2.__version__ if self.author is not None: owner += ' Author: %s' % self.author return [ rplp.Spacer(1, 0.8*rplu.inch), rplp.Paragraph("Generated on " + date, self.style), rplp.Paragraph(owner, self.style)] + self.__flowbreak def clear(self): """Clear the report """ self._story = [] def xml(self, line, style=None): """Adding XML string to the report """ if __debug__ and not self in debug.handlers: debug("REP", "Adding xml '%s'" % line.strip()) if style is None: style = self.style self._story.append(rplp.Paragraph(line, style=style)) # Can't use here since Report isn't yet defined at this point #@borrowkwargs(Report, 'xml') def text(self, line, **kwargs): """Add a text string to the report """ if __debug__ and not self in debug.handlers: debug("REP_", "Adding text '%s'" % line.strip()) # we need to convert some of the characters to make it # legal XML line = escape_xml(line) self.xml(line, **kwargs) write = text """Just an alias for .text, so we could simply provide report as a handler for verbose """ # can't do here once again since it needs to conditional on externals # TODO: workaround -- either passing symbolic names or assign # post-class creation #@borrowkwargs(reportlab.platypus.Image, '__init__') def figure(self, fig=None, name=None, savefig_kwargs=None, **kwargs): """Add a figure to the report Parameters ---------- fig : None or str or `figure.Figure` Figure to place into report: `str` is treated as a filename, `Figure` stores it into a file under directory and embeds into the report, and `None` takes the current figure savefig_kwargs : dict Additional keyword arguments to provide savefig with (e.g. dpi) **kwargs Passed to :class:`reportlab.platypus.Image` constructor """ if savefig_kwargs is None: savefig_kwargs = {} if externals.exists('pylab', raise_=True): import pylab as pl figure = pl.matplotlib.figure if fig is None: fig = pl.gcf() if isinstance(fig, figure.Figure): # Create directory if needed if not (os.path.exists(self._filename) and os.path.isdir(self._filename)): os.makedirs(self._filename) # Figure out the name for image self.__nfigures += 1 if name is None: name = 'Figure#' name = name.replace('#', str(self.__nfigures)) # Save image fig_filename = pathjoin(self._filename, '%s.%s' % (name, self.fig_ext)) if __debug__ and not self in debug.handlers: debug("REP_", "Saving figure '%s' into %s" % (fig, fig_filename)) fig.savefig(fig_filename, **savefig_kwargs) # adjust fig to the one to be included fig = fig_filename if __debug__ and not self in debug.handlers: debug("REP", "Adding figure '%s'" % fig) im = rplp.Image(fig, **kwargs) # If the inherent or provided width/height are too large -- shrink down imsize = (im.drawWidth, im.drawHeight) # Reduce the size if necessary so reportlab does not puke later on r = [float(d)/m for d,m in zip(imsize, self.pagesize)] maxr = max(r) if maxr > 1.0: if __debug__ and not self in debug.handlers: debug("REP_", "Shrinking figure by %.3g" % maxr) im.drawWidth /= maxr im.drawHeight /= maxr self._story.append(im) def figures(self, *args, **kwargs): """Adds all present figures at once If called twice, it might add the same figure multiple times, so make sure to close all previous figures if you use figures() multiple times """ if externals.exists('pylab', raise_=True): import pylab as pl figs = pl.matplotlib._pylab_helpers.Gcf.figs if __debug__ and not self in debug.handlers: debug('REP', "Saving all %d present figures" % len(figs)) for fid, f in figs.iteritems(): self.figure(f.canvas.figure, *args, **kwargs) @property def __flowbreak(self): return [rplp.Spacer(1, 0.2*rplu.inch), rplp.Paragraph("-" * 150, self.style), rplp.Spacer(1, 0.2*rplu.inch)] def flowbreak(self): """Just a marker for the break of the flow """ if __debug__ and not self in debug.handlers: debug("REP", "Adding flowbreak") self._story.append(self.__flowbreak) ## def __del__(self): ## """Store report upon deletion ## """ ## if __debug__ and not self in debug.handlers: ## debug("REP", "Report is being deleted. Storing") ## self.save() def save(self, add_preamble=True): """Saves PDF Parameters ---------- add_preamble : bool Either to add preamble containing title/date/author information """ if self.title is None: title = self.name + " report" else: title = self.title pageinfo = self.name + " data" ##REF: Name was automagically refactored def my_first_page(canvas, doc): canvas.saveState() canvas.setFont(self.font, 16) canvas.drawCentredString(self.pagesize[0]/2.0, self.pagesize[1]-108, title) canvas.setFont(self.font, 9) canvas.drawString(rplu.inch, 0.75 * rplu.inch, "First Page / %s" % pageinfo) canvas.restoreState() ##REF: Name was automagically refactored def my_later_pages(canvas, doc): canvas.saveState() canvas.setFont(self.font, 9) canvas.drawString(rplu.inch, 0.75 * rplu.inch, "Page %d %s" % (doc.page, pageinfo)) canvas.restoreState() filename = self._filename + ".pdf" doc = rplp.SimpleDocTemplate(filename) story = self._story if add_preamble: story = self.__preamble + story if __debug__ and not self in debug.handlers: debug("REP", "Saving the report into %s" % filename) doc.build(story, onFirstPage=my_first_page, onLaterPages=my_later_pages) pymvpa2-2.6.4/mvpa2/base/report_dummy.py000066400000000000000000000021231323370031300201510ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dummy report class, to just be there in case if reportlab is not available. """ __docformat__ = 'restructuredtext' from mvpa2.base import warning if __debug__: from mvpa2.base import debug def _dummy(*args, **kwargs): pass class Report(object): """Dummy report class which does nothing but complains if used """ def __init__(self, *args, **kwargs): """Initialize dummy report """ warning("You are using DummyReport - no action will be taken. " "Please install reportlab to enjoy reporting facility " "within PyMVPA") def __getattribute__(self, index): """ """ # returns a dummy function return _dummy pymvpa2-2.6.4/mvpa2/base/state.py000066400000000000000000001140321323370031300165460ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Classes to control and store state information. It was devised to provide conditional storage """ _DEV_DOC = """ TODO: + Use %r instead of %s in repr for ClassWithCollections Replaced few %s's... might be fixed + Check why __doc__ is not set in kernels Seems to be there now... - puke if *args and **kwargs are provided and exceed necessary number + for Parameter add ability to make it 'final'/read-only + repr(instance.params) contains only default value -- not current or set in the constructor... not good Now if value is not default -- would be present ? check/possible assure order of parameters/ca to be as listed in the constructor There is _instance_index (could be set with 'index' parameter in Parameter). ATM it is used in documentation to list them in original order. """ # XXX: MH: The use of `index` as variable name confuses me. IMHO `index` refers # to a position in a container (i.e. list access). However, in this # file it is mostly used in the context of a `key` for dictionary # access. Can we refactor that? # YOH: good point -- doing so... also we need to document somewhere that # names of Collectables are actually the keys in Collections __docformat__ = 'restructuredtext' from mvpa2.base.types import is_sequence_type import mvpa2.support.copy as copy from textwrap import TextWrapper # Although not used here -- included into interface from mvpa2.misc.exceptions import UnknownStateError from mvpa2.base.attributes import IndexedCollectable, ConditionalAttribute from mvpa2.base.dochelpers import enhanced_doc_string, borrowdoc, _repr_attrs, \ get_docstring_split, _strid, _saferepr from mvpa2.base import externals # XXX local rename is due but later on from mvpa2.base.collections import Collection as BaseCollection if __debug__: from mvpa2.base import debug # XXX # To debug references on top level -- useful to keep around for now, # don't remove until refactoring is complete import sys _debug_references = 'ATTRREFER' in debug.active _debug_shits = [] # remember all to don't complaint twice import traceback _in_ipython = externals.exists('running ipython env') # Separators around definitions, needed for ReST, but bogus for # interactive sessions _def_sep = ('`', '')[int(_in_ipython)] _object_getattribute = object.__getattribute__ _object_setattr = object.__setattr__ ################################################################### # Collections # # TODO: # - refactor: use base.collections and unify this to that # - minimize interface class Collection(BaseCollection): """Container of some IndexedCollectables. XXX Seems to be not used and duplicating functionality: `listing` (thus `listing` property) """ def __init__(self, items=None, name=None): """Initialize the Collection Parameters ---------- items : dict of IndexedCollectable's items to initialize with name : str name of the collection (as seen in the owner, e.g. 'ca') """ # first set all stuff to nothing and later on charge it # this is important, since some of the stuff below relies in the # defaults self.name = name super(Collection, self).__init__(items) def __reduce__(self): #bcr = BaseCollection.__reduce__(self) res = (self.__class__, (self.items(), self.name,)) #if __debug__ and 'COL_RED' in debug.active: # debug('COL_RED', 'Returning %s for %s' % (res, self)) return res @borrowdoc(BaseCollection) def copy(self, *args, **kwargs): # Create a generic copy of the collection anew = super(Collection, self).copy(*args, **kwargs) anew.name = self.name return anew def __str__(self): num = len(self) if __debug__ and "ST" in debug.active: maxnumber = 1000 # I guess all else: maxnumber = 4 if self.name is not None: res = self.name else: res = "" res += "{" for i in xrange(min(num, maxnumber)): if i > 0: res += " " res += "%s" % str(self.values()[i]) if len(self) > maxnumber: res += "..." res += "}" return res def _cls_repr(self): """Collection specific part of __repr__ for a class containing it, ie a part of __repr__ for the owner object Returns ------- list list of items to be appended within __repr__ after a .join() """ # XXX For now we do not expect any pure non-specialized # collection , thus just override in derived classes raise NotImplementedError, "Class %s should override _cls_repr" \ % self.__class__.__name__ def _is_initializable(self, key): """Checks if key could be assigned within collection via _initialize Returns ------- bool value for a given `key` It is to facilitate dynamic assignment of collections' items within derived classes' __init__ depending on the present collections in the class. """ # XXX Each collection has to provide what indexes it allows # to be set within constructor. Custom handling of some # arguments (like (dis|en)able_ca) is to be performed # in _initialize # raise NotImplementedError, \ # "Class %s should override _is_initializable" \ # % self.__class__.__name__ # YYY lets just check if it is in the keys return key in self.keys() def _initialize(self, key, value): """Initialize `key` (no check performed) with `value` """ # by default we just set corresponding value self[key]._set(value, init=True) def __repr__(self): # do not include the owner arg, since that will most likely # cause recursions when the collection it self is included # into the repr() of the ClassWithCollections instance return "%s(items=%s, name=%s)" \ % (self.__class__.__name__, repr(self.values()), repr(self.name)) # MIH: explicitly comment out the rest, as it is unreachable and # remained around for a while # items_s = "" # sep = "" # for item in self: # try: # itemvalue = "%r" % (self[item].value,) # if len(itemvalue)>50: # itemvalue = itemvalue[:10] + '...' + itemvalue[-10:] # items_s += "%s'%s':%s" % (sep, item, itemvalue) # sep = ', ' # except: # pass # if items_s != "": # s += "items={%s}" % items_s # s += ")" # return s def is_set(self, key=None): """If item (or any in the present or listed) was set Parameters ---------- key : None or str or list of str What items to check if they were set in the collection """ if key is not None: if isinstance(key, basestring): return self[key].is_set else: items = key # assume that we got some list else: items = self # go through all the items for key in items: if self[key].is_set: return True return False def which_set(self): """Return list of keys which were set""" result = [] # go through all members and if any is_set -- return True for key, v in self.iteritems(): if v.is_set: result.append(key) return result def _action(self, key, func, missingok=False, **kwargs): """Run specific func either on a single item or on all of them Parameters ---------- key : str Name of the conditional attribute func Function (not bound) to call given an item, and **kwargs missingok : bool If True - do not complain about wrong key """ if isinstance(key, basestring): if key.lower() == 'all': for key_ in self: self._action(key_, func, missingok=missingok, **kwargs) else: try: func(self[key], **kwargs) except: if missingok: return raise elif is_sequence_type(key): for item in key: self._action(item, func, missingok=missingok, **kwargs) else: raise ValueError, \ "Don't know how to handle variable given by %s" % key def reset(self, key=None): """Reset the conditional attribute defined by `key`""" if key is not None: keys = [ key ] else: keys = self.keys() if len(self): for key in keys: # XXX Check if that works as desired self._action(key, self.values()[0].__class__.reset, missingok=False) # XXX RF: not used anywhere / myself -- hence not worth it? @property def listing(self): """Return a list of registered ca along with the documentation""" # lets assure consistent litsting order items_ = self.items() items_.sort() return [ "%s%s%s: %s" % (_def_sep, str(x[1]), _def_sep, x[1].__doc__) for x in items_ ] class ParameterCollection(Collection): """Container of Parameters for a stateful object. """ # def __init__(self, items=None, name=None): # """Initialize the conditional attributes of a derived class # # Parameters # ---------- # items : dict # dictionary of ca # """ # Collection.__init__(self, items, name) # def _cls_repr(self): """Part of __repr__ for the owner object """ prefixes = [] for k in self.keys(): # list only params with not default values if self[k].is_default: continue prefixes.append("%s=%s" % (k, _saferepr(self[k].value))) return prefixes def reset_value(self, key, missingok=False): """Reset all parameters to default values""" from param import Parameter self._action(key, Parameter.reset_value, missingok=False) class ConditionalAttributesCollection(Collection): """Container of ConditionalAttributes for a stateful object. :Groups: - `Public Access Functions`: `has_key`, `is_enabled`, `is_active` - `Access Implementors`: `listing`, `names`, `_get_enabled` - `Mutators`: `__init__`, `enable`, `disable`, `_set_enabled` - `R/O Properties`: `listing`, `names`, `items` - `R/W Properties`: `enabled` """ def __init__(self, items=None, name=None): """Initialize the conditional attributes of a derived class Parameters ---------- items : dict dictionary of ca name : str literal description. Usually just attribute name for the collection, e.g. 'ca' """ Collection.__init__(self, items=items, name=name) self.__storedTemporarily = [] """List to contain sets of enabled ca which were enabled temporarily. """ # # XXX TODO: figure out if there is a way to define proper # __copy__'s for a hierarchy of classes. Probably we had # to define __getinitargs__, etc... read more... # #def __copy__(self): def _cls_repr(self): """Part of __repr__ for the owner object """ prefixes = [] for name, invert in ( ('enable', False), ('disable', True) ): ca = self._get_enabled(nondefault=False, invert=invert) if len(ca): prefixes.append("%s_ca=%s" % (name, str(ca))) return prefixes def _is_initializable(self, key): """Checks if key could be assigned within collection via setvalue """ return key in ['enable_ca', 'disable_ca'] def _initialize(self, key, value): if value is None: value = [] if key == 'enable_ca': self.enable(value, missingok=True) elif key == 'disable_ca': self.disable(value) else: raise ValueError, "ConditionalAttributesCollection can accept only enable_ca " \ "and disable_ca arguments for the initialization. " \ "Got %s" % key # XXX RF: used only in meta -- those should become a bit tighter coupled # and .copy / .update should only be used def _copy_ca_(self, fromstate, key=None, deep=False): """Copy known here ca from `fromstate` object into current object Parameters ---------- fromstate : Collection or ClassWithCollections Source ca to copy from key : None or list of str If not to copy all set conditional attributes, key provides selection of what to copy deep : bool Optional control over the way to copy Crafted to overcome a problem mentioned above in the comment and is to be called from __copy__ of derived classes Probably sooner than later will get proper __getstate__, __setstate__ """ # Bad check... doesn't generalize well... # if not issubclass(fromstate.__class__, self.__class__): # raise ValueError, \ # "Class %s is not subclass of %s, " % \ # (fromstate.__class__, self.__class__) + \ # "thus not eligible for _copy_ca_" # TODO: FOR NOW NO TEST! But this beast needs to be fixed... operation = { True: copy.deepcopy, False: copy.copy }[deep] if isinstance(fromstate, ClassWithCollections): fromstate = fromstate.ca if key is None: # copy all set ones for name in fromstate.which_set():#self.keys(): #if fromstate.has_key(name): self[name].value = operation(fromstate[name].value) else: # workaround for supporting py2 and py3 dictionary interface try: has_key = fromstate.has_key except AttributeError: has_key = fromstate.__contains__ for name in key: if has_key(name): self[name].value = operation(fromstate[name].value) def is_enabled(self, key): """Returns `True` if state `key` is enabled""" return key in self and self[key].enabled def is_active(self, key): """Returns `True` if state `key` is known and is enabled""" return key in self and self.is_enabled(key) def enable(self, key, value=True, missingok=False): """Enable conditional attribute given in `key`""" self._action(key, ConditionalAttribute._set_enabled, missingok=missingok, value=value) def disable(self, key): """Disable conditional attribute defined by `key` id""" self._action(key, ConditionalAttribute._set_enabled, missingok=False, value=False) # TODO XXX think about some more generic way to grab temporary # snapshot of IndexedCollectables to be restored later on... def change_temporarily(self, enable_ca=None, disable_ca=None, other=None): """Temporarily enable/disable needed ca for computation Enable or disable ca which are enabled in `other` and listed in `enable _ca`. Use `reset_enabled_temporarily` to reset to previous state of enabled. `other` can be a ClassWithCollections object or ConditionalAttributesCollection """ if enable_ca is None: enable_ca = [] if disable_ca is None: disable_ca = [] self.__storedTemporarily.append(self.enabled) other_ = other if isinstance(other, ClassWithCollections): other = other.ca if other is not None: # lets take ca which are enabled in other but not in # self add_enable_ca = list(set(other.enabled).difference( set(enable_ca)).intersection(self.keys())) if len(add_enable_ca)>0: if __debug__: debug("ST", "Adding ca %s from %s to be enabled temporarily " "since they are not enabled in %s", (add_enable_ca, other_, self)) enable_ca += add_enable_ca # Lets go one by one enabling only disabled once... but could be as # simple as self.enable(enable_ca) self.disable(disable_ca) def reset_changed_temporarily(self): """Reset to previousely stored set of enabled ca""" if __debug__: debug("ST", "Resetting to previous set of enabled ca") if len(self.enabled)>0: self.enabled = self.__storedTemporarily.pop() else: raise ValueError("Trying to restore not-stored list of enabled " \ "ca") # XXX probably nondefault logic could be done at places? # =False is used in __repr__ and _svmbase # XXX also may be we need enabled to return a subcollection # with binds to ConditionalAttributes found to be enabled? def _get_enabled(self, nondefault=True, invert=False): """Return list of enabled ca Parameters ---------- nondefault : bool Either to return also ca which are enabled simply by default invert : bool Would invert the meaning, ie would return disabled ca """ if invert: fmatch = lambda y: not self.is_enabled(y) else: fmatch = self.is_enabled if nondefault: ffunc = fmatch else: ffunc = lambda y: fmatch(y) and \ self[y]._defaultenabled != self.is_enabled(y) return [n for n in self.keys() if ffunc(n)] def _set_enabled(self, keys): """Given `keys` make only those in the list enabled It might be handy to store set of enabled ca and then to restore it later on. It can be easily accomplished now:: >>> from mvpa2.base.state import ClassWithCollections, ConditionalAttribute >>> class Blah(ClassWithCollections): ... bleh = ConditionalAttribute(enabled=False, doc='Example') ... >>> blah = Blah() >>> ca_enabled = blah.ca.enabled >>> blah.ca.enabled = ['bleh'] >>> blah.ca.enabled = ca_enabled """ for key in self.keys(): self.enable(key, key in keys) # Properties enabled = property(fget=_get_enabled, fset=_set_enabled) ################################################################## # Base classes (and metaclass) which use collections # # # Helper dictionaries for AttributesCollector # _known_collections = { # Quite a generic one but mostly in classifiers 'ConditionalAttribute': ("ca", ConditionalAttributesCollection), # For classifiers only 'Parameter': ("params", ParameterCollection), 'KernelParameter': ("kernel_params", ParameterCollection), #MH: no magic for datasets # # For datasets # # XXX custom collections needed? # 'SampleAttribute': ("sa", SampleAttributesCollection), # 'FeatureAttribute': ("fa", SampleAttributesCollection), # 'DatasetAttribute': ("dsa", SampleAttributesCollection), } _col2class = dict(_known_collections.values()) """Mapping from collection name into Collection class""" #MH: no magic for datasets #_COLLECTIONS_ORDER = ['sa', 'fa', 'dsa', # 'params', 'kernel_params', 'ca'] _COLLECTIONS_ORDER = ['params', 'kernel_params', 'ca'] class AttributesCollector(type): """Intended to collect and compose collections for any child class of ClassWithCollections """ def __init__(cls, name, bases, dict): """ Parameters ---------- name : str Name of the class bases : iterable Base classes dict : dict Attributes. """ if __debug__: debug( "COLR", "AttributesCollector call for %s.%s, where bases=%s, dict=%s ", (cls, name, bases, dict)) super(AttributesCollector, cls).__init__(name, bases, dict) collections = {} for name, value in dict.iteritems(): if isinstance(value, IndexedCollectable): baseclassname = value.__class__.__name__ col = _known_collections[baseclassname][0] # XXX should we allow to throw exceptions here? if col not in collections: collections[col] = {} collections[col][name] = value # and assign name if not yet was set if value.name is None: value.name = name # !!! We do not keep copy of this attribute static in the class. # Due to below traversal of base classes, we should be # able to construct proper collections even in derived classes delattr(cls, name) # XXX can we first collect parent's ca and then populate with ours? # TODO for base in bases: if hasattr(base, "__class__") and \ base.__class__ == AttributesCollector: # TODO take care about overriding one from super class # for state in base.ca: # if state[0] = newcollections = base._collections_template if len(newcollections) == 0: continue if __debug__: # XXX RF: and "COLR" in debug.active: debug("COLR", "Collect collections %s for %s from %s", (newcollections, cls, base)) for col, super_collection in newcollections.iteritems(): if col in collections: if __debug__: debug("COLR", "Updating existing collection %s with the one from super class" % col) collection = collections[col] # Current class could have overriden a parameter, so # we need to keep it without updating for pname, pval in super_collection.iteritems(): if pname not in collection: collection[pname] = pval elif __debug__: debug("COLR", "Not overriding %s.%s of cls %s from base %s" % (col, pname, cls, base)) else: collections[col] = super_collection if __debug__: debug("COLR", "Creating ConditionalAttributesCollection template %s " "with collections %s", (cls, collections.keys())) # if there is an explicit if hasattr(cls, "_ATTRIBUTE_COLLECTIONS"): for col in cls._ATTRIBUTE_COLLECTIONS: if not col in _col2class: raise ValueError, \ "Requested collection %s is unknown to collector" % \ col if not col in collections: collections[col] = None # TODO: check on conflict in names of Collections' items! since # otherwise even order is not definite since we use dict for # collections. # XXX should we switch to tuple? for col, colitems in collections.iteritems(): # so far we collected the collection items in a dict, but the new # API requires to pass a _list_ of collectables instead of a dict. # So, whenever there are items, we pass just the values of the dict. # There is no information last, since the keys of the dict are the # name attributes of each collectable in the list. if colitems is not None: collections[col] = _col2class[col](items=colitems.values()) else: collections[col] = _col2class[col]() setattr(cls, "_collections_template", collections) # # Expand documentation for the class based on the listed # parameters an if it is stateful # # TODO -- figure nice way on how to alter __init__ doc directly... textwrapper = TextWrapper(subsequent_indent=" ", initial_indent=" ", width=70) # Parameters paramsdoc = [] paramscols = [] for col in ('params', 'kernel_params'): if col in collections: paramscols.append(col) # lets at least sort the parameters for consistent output col_items = collections[col] iparams = [(v._instance_index, k) for k,v in col_items.iteritems()] iparams.sort() paramsdoc += [(col_items[iparam[1]].name, col_items[iparam[1]]._paramdoc()) for iparam in iparams] # Parameters collection could be taked hash of to decide if # any were changed? XXX may be not needed at all? setattr(cls, "_paramscols", paramscols) # States doc cadoc = "" if 'ca' in collections: paramsdoc += [ ('enable_ca', "enable_ca : None or list of str\n " "Names of the conditional attributes which should " "be enabled in addition\n to the default ones"), ('disable_ca', "disable_ca : None or list of str\n " "Names of the conditional attributes which should " "be disabled""")] if len(collections['ca']): cadoc += '\n'.join(['* ' + x for x in collections['ca'].listing]) cadoc += "\n\n(Conditional attributes enabled by default suffixed with `+`)" if __debug__: debug("COLR", "Assigning __cadoc to be %s", (cadoc,)) setattr(cls, "_cadoc", cadoc) if paramsdoc != "": if __debug__ and 'COLR' in debug.active: debug("COLR", "Assigning __paramsdoc to be %s", (paramsdoc,)) setattr(cls, "_paramsdoc", paramsdoc) if len(paramsdoc) or cadoc != "": cls.__doc__ = enhanced_doc_string(cls, *bases) class ClassWithCollections(object): """Base class for objects which contain any known collection Classes inherited from this class gain ability to access collections and their items as simple attributes. Access to collection items "internals" is done via attribute and interface of a corresponding `Collection`. """ _DEV__doc__ = """ TODO: rename 'descr'? -- it should simply be 'doc' -- no need to drag classes docstring imho. """ __metaclass__ = AttributesCollector def __new__(cls, *args, **kwargs): """Instantiate ClassWithCollections object """ self = super(ClassWithCollections, cls).__new__(cls) s__dict__ = self.__dict__ # init variable # XXX: Added as pylint complained (rightfully) -- not sure if false # is the proper default self.__params_set = False # need to check to avoid override of enabled ca in the case # of multiple inheritance, like both ClassWithCollectionsl and # Harvestable (note: Harvestable was refactored away) if '_collections' not in s__dict__: s__class__ = self.__class__ collections = copy.deepcopy(s__class__._collections_template) s__dict__['_collections'] = collections s__dict__['_known_attribs'] = {} """Dictionary to contain 'links' to the collections from each known attribute. Is used to gain some speed up in lookup within __getattribute__ and __setattr__ """ # Assign owner to all collections for col, collection in collections.iteritems(): if col in s__dict__: raise ValueError, \ "Object %s has already attribute %s" % \ (self, col) s__dict__[col] = collection collection.name = col self.__params_set = False if __debug__: descr = kwargs.get('descr', None) debug("COL", "ClassWithCollections.__new__ was done " "for %s%s with descr=%s", (s__class__.__name__, _strid(self), descr)) return self @classmethod def _custom_kwargs_sort_items(cls, **kwargs): """Custom sorting of kwargs to fulfill premises of pymvpa Some time ago the world was square and we could assume that enable_ca always comes before disable_ca. But we were misguided, thus now we need to provide a custom sorting routine to sort disable_ca after enable_ca """ def _key(x): k = x[0] if k == 'enable_ca': return 'ZZZZZZ' return k return sorted(kwargs.items(), key=_key) def __init__(self, descr=None, **kwargs): """Initialize ClassWithCollections object Parameters ---------- descr : str Description of the instance """ # Note: __params_set was initialized in __new__ if not self.__params_set: self.__descr = descr """Set humane description for the object""" # To avoid double initialization in case of multiple inheritance self.__params_set = True collections = self._collections # Assign attributes values if they are given among # **kwargs for arg, argument in self._custom_kwargs_sort_items(**kwargs): isset = False for collection in collections.itervalues(): if collection._is_initializable(arg): collection._initialize(arg, argument) isset = True break if isset: _ = kwargs.pop(arg) else: known_params = reduce( lambda x,y:x+y, [x.keys() for x in collections.itervalues() if not isinstance(x, ConditionalAttributesCollection) ], []) _, kwargs_list, _ = get_docstring_split(self.__init__) known_params = sorted(known_params + [x[0] for x in kwargs_list]) raise TypeError( "Unexpected keyword argument %s=%s for %s." % (arg, argument, self) + "\n\tValid parameters are: %s" % ', '.join(known_params)) ## Initialize other base classes ## commented out since it seems to be of no use for now #if init_classes is not None: # # return back stateful arguments since they might be # # processed by underlying classes # kwargs.update(kwargs_stateful) # for cls in init_classes: # cls.__init__(self, **kwargs) #else: # if len(kwargs)>0: # known_params = reduce(lambda x, y: x + y, \ # [x.keys() for x in collections], # []) # raise TypeError, \ # "Unknown parameters %s for %s." % (kwargs.keys(), # self) \ # + " Valid parameters are %s" % known_params if __debug__: debug("COL", "ClassWithCollections.__init__ was done " "for %s%s with descr=%s", (self.__class__.__name__, _strid(self), descr)) #__doc__ = enhanced_doc_string('ClassWithCollections', locals()) if __debug__ and _debug_references: def __debug_references_call(self, method, key): """Helper for debugging location of the call """ s_dict = _object_getattribute(self, '__dict__') known_attribs = s_dict['_known_attribs'] if key in known_attribs: clsstr = str(self.__class__) # Skip some False positives if 'mvpa2.datasets' in clsstr and 'Dataset' in clsstr and \ (key in ['targets', 'chunks', 'samples', 'mapper']): return colname = known_attribs[key] # figure out and report invocation location ftb = traceback.extract_stack(limit=4)[-3] shit = '\n%s:%d:[%s %s.%s]: %s\n' % \ (ftb[:2] + (method, colname, key) + (ftb[3],)) if not (shit in _debug_shits): _debug_shits.append(shit) sys.stderr.write(shit) def __getattribute__(self, key): # return all private ones first since smth like __dict__ might be # queried by copy before instance is __init__ed if key == '': raise AttributeError, "Silly to request attribute ''" if key[0] == '_': return _object_getattribute(self, key) s_dict = _object_getattribute(self, '__dict__') # check if it is a known collection collections = s_dict['_collections'] if key in collections: return collections[key] # MH: No implicite outbreak of collection items into the namespace of # the parent class ## check if it is a part of any collection #known_attribs = s_dict['_known_attribs'] #if key in known_attribs: # return collections[known_attribs[key]].getvalue(key) # Report the invocation location if applicable self.__debug_references_call('get', key) # just a generic return return _object_getattribute(self, key) def __setattr__(self, key, value): if key == '': raise AttributeError, "Silly to set attribute ''" if key[0] == '_': return _object_setattr(self, key, value) if __debug__ and _debug_references: # Report the invocation location if applicable self.__debug_references_call('set', key) ## YOH: if we are to disable access at instance level -- do it in ## set as well ;) ## ## # Check if a part of a collection, and set appropriately ## s_dict = _object_getattribute(self, '__dict__') ## known_attribs = s_dict['_known_attribs'] ## if key in known_attribs: ## collections = s_dict['_collections'] ## return collections[known_attribs[key]].setvalue(key, value) # Generic setattr return _object_setattr(self, key, value) # XXX not sure if we shouldn't implement anything else... def reset(self): for collection in self._collections.values(): collection.reset() def __str__(self): s = "%s:" % (self.__class__.__name__) if self.__descr is not None: s += "/%s " % self.__descr if hasattr(self, "_collections"): for col, collection in self._collections.iteritems(): s += " %d %s:%s" % (len(collection), col, str(collection)) return s def __repr__(self, prefixes=None, fullname=False): """String definition of the object of ClassWithCollections object Parameters ---------- prefixes : list of str What other prefixes to prepend to list of arguments fullname : bool Either to include full name of the module """ prefixes = prefixes or [] prefixes = prefixes[:] # copy list # filter using __init__doc__exclude__ for f in getattr(self, '__init__doc__exclude__', []): prefixes = [x for x in prefixes if not x.startswith(f+'=')] id_str = "" module_str = "" if __debug__: if 'MODULE_IN_REPR' in debug.active: fullname = True if 'ID_IN_REPR' in debug.active: id_str = _strid(self) if fullname: modulename = '%s' % self.__class__.__module__ if modulename != "__main__": module_str = "%s." % modulename # Collections' attributes collections = self._collections # we want them in this particular order for col in _COLLECTIONS_ORDER: collection = collections.get(col, None) if collection is None: continue prefixes += collection._cls_repr() # Description if present prefixes += _repr_attrs(self, ['descr']) out = "%s%s(%s)%s" % (module_str, self.__class__.__name__, ', '.join(prefixes), id_str) # To possibly debug mass repr/str-fication # print str(self), ' REPR: ', out return out descr = property(lambda self: self.__descr, doc="Description of the object if any") pymvpa2-2.6.4/mvpa2/base/types.py000066400000000000000000000041721323370031300165750ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Things concerned with types and type-checking in PyMVPA""" import sys import numpy as np def is_datasetlike(obj): """Check if an object looks like a Dataset.""" if hasattr(obj, 'samples') and \ hasattr(obj, 'sa') and \ hasattr(obj, 'fa') and \ hasattr(obj, 'a'): return True return False def accepts_dataset_as_samples(fx): """Decorator to extract samples from Datasets. Little helper to allow methods to be written for plain data (if they don't need information from a Dataset), but at the same time also accept whole Datasets as input. """ def extract_samples(obj, data): if is_datasetlike(data): return fx(obj, data.samples) else: return fx(obj, data) return extract_samples def asobjarray(x): """Generates numpy.ndarray with dtype object from an iterable Is needed to assure object dtype, so first empty array of dtype=object needs to be constructed and then only items to be assigned. Parameters ---------- x : list or tuple or ndarray """ res = np.empty(len(x), dtype=object) res[:] = x return res # compatibility layer for Python3 if sys.version_info[0] < 3: from operator import isSequenceType as is_sequence_type def as_char(x): """Identity mapping in python2""" return x else: def is_sequence_type(inst): """Return True if an instance is of an iterable type Verified by wrapping with iter() call """ try: _ = iter(inst) return True except: return False import codecs def as_char(x): """Return character representation for a unicode symbol""" return codecs.latin_1_encode(x)[0] pymvpa2-2.6.4/mvpa2/base/verbosity.py000066400000000000000000000573011323370031300174610ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Verbose output and debugging facility Examples: from verbosity import verbose, debug; debug.active = [1,2,3]; debug(1, "blah") """ __docformat__ = 'restructuredtext' from sys import stdout, stderr # GOALS # any logger should be able # to log into a file or stdout/stderr # provide ability to log with/without a new line at the end # # debug logger should be able # to log sets of debug statements # add/remove debug setid items # give verbose description about registered debugset items class Logger(object): """Base class to provide logging """ def __init__(self, handlers=None): """Initialize the logger with a set of handlers to use for output Each hanlder must have write() method implemented """ if handlers is None: handlers = [stdout] self.__close_handlers = [] self.__handlers = [] # pylint friendliness self._set_handlers(handlers) self.__lfprev = True self.__crprev = 0 # number of symbols in previous cr-ed def __del__(self): self._close_opened_handlers() ##REF: Name was automagically refactored def _set_handlers(self, handlers): """Set list of handlers for the log. A handler can be opened files, stdout, stderr, or a string, which will be considered a filename to be opened for writing """ handlers_ = [] self._close_opened_handlers() for handler in handlers: if isinstance(handler, basestring): try: handler = {'stdout' : stdout, 'stderr' : stderr}[handler.lower()] except: try: handler = open(handler, 'w') self.__close_handlers.append(handler) except: raise RuntimeError, \ "Cannot open file %s for writing by the logger" \ % handler handlers_.append(handler) self.__handlers = handlers_ ##REF: Name was automagically refactored def _close_opened_handlers(self): """Close opened handlers (such as opened logfiles """ for handler in self.__close_handlers: handler.close() ##REF: Name was automagically refactored def _get_handlers(self): """Return active handlers """ return self.__handlers def __call__(self, msg, args=None, lf=True, cr=False, **kwargs): """Write msg to each of the handlers. It can append a newline (lf = Line Feed) or return to the beginning before output and to take care about cleaning previous message if present it appends a newline (lf = Line Feed) since most commonly each call is a separate message """ if args is not None: try: msg = msg % args except Exception as e: msg = "%s [%% FAILED due to %s]" % (msg, e) if 'msgargs' in kwargs: msg = msg % kwargs['msgargs'] if cr: msg_ = "" if self.__crprev > 0: # wipe out older line to make sure to see no ghosts msg_ = "\r%s" % (" "*self.__crprev) msg_ += "\r" + msg self.__crprev = len(msg) msg = msg_ # since it makes no sense this days for cr and lf, # override lf lf = False else: self.__crprev += len(msg) if lf: msg = msg + "\n" self.__crprev = 0 # nothing to clear for handler in self.__handlers: try: handler.write(msg) except: print "Failed writing on handler %s" % handler raise try: handler.flush() except: # it might be not implemented.. pass self.__lfprev = lf handlers = property(fget=_get_handlers, fset=_set_handlers) lfprev = property(fget=lambda self:self.__lfprev) class LevelLogger(Logger): """Logger not to log anything with a level smaller than specified. """ def __init__(self, level=0, indent=" ", *args, **kwargs): """ Parameters ---------- level : int, optional Level to consider be active. indent : str, optional String to use for indentation. """ Logger.__init__(self, *args, **kwargs) self.__level = level # damn pylint ;-) self.__indent = indent self._set_level(level) self._set_indent(indent) ##REF: Name was automagically refactored def _set_level(self, level): """Set logging level """ if __debug__: try: from mvpa2.base import debug debug('VERBOSE', 'Setting verbosity to %r from %r', (self.__level, level)) except: pass ilevel = int(level) if ilevel < 0: raise ValueError, \ "Negative verbosity levels (got %d) are not supported" \ % ilevel self.__level = ilevel ##REF: Name was automagically refactored def _set_indent(self, indent): """Either to indent the lines based on message log level""" self.__indent = "%s" % indent def __call__(self, level, msg, *args, **kwargs): """Write msg and indent using self.indent it if it was requested. It appends a newline since most commonly each call is a separate message """ if level <= self.level: if self.lfprev and self.indent: # indent if previous line ended with newline msg = self.indent * level + msg Logger.__call__(self, msg, *args, **kwargs) level = property(fget=lambda self: self.__level, fset=_set_level) indent = property(fget=lambda self: self.__indent, fset=_set_indent) class OnceLogger(Logger): """Logger which prints a message for a given ID just once. It could be used for one-time warning to don't overfill the output with useless repeatative messages. """ def __init__(self, *args, **kwargs): """Define once logger. """ Logger.__init__(self, *args, **kwargs) self._known = {} def __call__(self, ident, msg, count=1, *args, **kwargs): """Write `msg` if `ident` occured less than `count` times by now. """ if ident not in self._known: self._known[ident] = 0 if count < 0 or self._known[ident] < count: self._known[ident] += 1 Logger.__call__(self, msg, *args, **kwargs) class SetLogger(Logger): """Logger which prints based on defined sets identified by Id. """ def __init__(self, register=None, active=None, printsetid=True, *args, **kwargs): """ Parameters ---------- register : dict or None What Ids are to be known. Each item dictionary contains consists of concise key and a description as the value. active : iterable What Ids to consider active upon initialization. printsetid : bool, optional Either to prefix each line with the target Id of a set in which the line was printed to (default behavior). """ if register is None: register = {} if active is None: active = [] Logger.__init__(self, *args, **kwargs) self.__printsetid = printsetid self.__registered = register # all "registered" sets descriptions # which to output... pointless since __registered self._set_active(active) self._set_printsetid(printsetid) ##REF: Name was automagically refactored def _set_active(self, active): """Set active logging set """ # just unique entries... we could have simply stored Set I guess, # but then smth like debug.active += ["BLAH"] would not work from mvpa2.base import verbose self.__active = [] registered_keys = self.__registered.keys() for item in list(set(active)): if item == '': continue if isinstance(item, basestring): if item in ['?', 'list', 'help']: self.print_registered(detailed=(item != '?')) raise SystemExit(0) if item.upper() == "ALL": verbose(2, "Enabling all registered debug handlers") self.__active = registered_keys break # try to match item as it is regexp regexp_str = "^%s$" % item try: regexp = re.compile(regexp_str) except: raise ValueError, \ "Unable to create regular expression out of %s" % item matching_keys = filter(regexp.match, registered_keys) toactivate = matching_keys if len(toactivate) == 0: ids = self.registered.keys() ids.sort() raise ValueError, \ "Unknown debug ID '%s' was asked to become active," \ " or regular expression '%s' did not get any match" \ " among known ids: %s" \ % (item, regexp_str, ids) else: toactivate = [item] # Lets check if asked items are known for item_ in toactivate: if not (item_ in registered_keys): raise ValueError, \ "Unknown debug ID %s was asked to become active" \ % item_ self.__active += toactivate self.__active = list(set(self.__active)) # select just unique ones self.__maxstrlength = max([len(str(x)) for x in self.__active] + [0]) if len(self.__active): verbose(2, "Enabling debug handlers: %s" % `self.__active`) ##REF: Name was automagically refactored def _set_printsetid(self, printsetid): """Either to print set Id at each line""" self.__printsetid = printsetid def __call__(self, setid, msg, *args, **kwargs): """ Write msg It appends a newline since most commonly each call is a separate message """ if setid in self.__active: if len(msg) > 0 and self.__printsetid: msg = "[%%-%ds] " % self.__maxstrlength % (setid) + msg Logger.__call__(self, msg, *args, **kwargs) def register(self, setid, description): """ "Register" a new setid with a given description for easy finding """ if setid in self.__registered: raise ValueError, \ "Setid %s is already known with description '%s'" % \ (`setid`, self.__registered[setid]) self.__registered[setid] = description ##REF: Name was automagically refactored def set_active_from_string(self, value): """Given a string listing registered(?) setids, make then active """ # somewhat evil but works since verbose must be initiated # by now self.active = value.split(",") def print_registered(self, detailed=True): print "Registered debug entries: ", kd = self.registered rks = sorted(kd.keys()) maxl = max([len(k) for k in rks]) if not detailed: # short list print ', '.join(rks) else: print for k in rks: print '%%%ds %%s' % maxl % (k, kd[k]) printsetid = property(fget=lambda self: self.__printsetid, \ fset=_set_printsetid) active = property(fget=lambda self: self.__active, fset=_set_active) registered = property(fget=lambda self: self.__registered) if __debug__: import os, re import traceback import time from os import getpid from os.path import basename, dirname __pymvpa_pid__ = getpid() def parse_status(field='VmSize', value_only=False): """Return stat information on current process. Usually it is needed to know where the memory is gone, that is why VmSize is the default for the field to spit out TODO: Spit out multiple fields. Use some better way than parsing proc """ regex = re.compile('^%s:' % field) match = None try: for l in open('/proc/%d/status' % __pymvpa_pid__): if regex.match(l): match = l.strip() break if match: match = re.sub('[ \t]+', ' ', match) except IOError: pass if match and value_only: match = match.split(':', 1)[1].lstrip() return match def get_vmem_from_status(): """Return utilization of virtual memory Deprecated implementation which relied on parsing proc/PID/status """ rss, vms = [parse_status(field=x, value_only=True) for x in ['VmRSS', 'VmSize']] if rss is None or vms is None: # So not available on this system -- signal with negatives # but do not crash return (-1, -1) if rss[-3:] == vms[-3:] and rss[-3:] == ' kB': # the same units rss = int(rss[:-3]) # strip from rss vms = int(vms[:-3]) return (rss, vms) try: # we prefer to use psutil if available # and let's stay away from "externals" module for now # Note: importing as __Process so it does not get # 'queried' by autodoc leading to an exception # while being unable to get values for the properties from psutil import Process as __Process __pymvpa_process__ = __Process(__pymvpa_pid__) __pymvpa_memory_info = __pymvpa_process__.memory_info if hasattr(__pymvpa_process__, 'memory_info') \ else __pymvpa_process__.get_memory_info def get_vmem(): """Return utilization of virtual memory Generic implementation using psutil """ mi = __pymvpa_memory_info() # in later versions of psutil mi is a named tuple. # but that is not the case on Debian squeeze with psutil 0.1.3 rss = mi[0] / 1024 vms = mi[1] / 1024 return (rss, vms) except ImportError: get_vmem = get_vmem_from_status def get_vmem_str(): """Return a string summary about utilization of virtual_memory """ vmem = get_vmem() try: return "RSS/VMS: %d/%d kB" % vmem except: return "RSS/VMS: %s" % str(vmem) def _get_vmem_max_str_gen(): """Return peak vmem utilization so far. It is a generator, get_vmem_max_str later is bound to .next of it - to mimic static variables """ rss_max = 0 vms_max = 0 while True: rss, vms = get_vmem() rss_max = max(rss, rss_max) vms_max = max(vms, vms_max) yield "max RSS/VMS: %d/%d kB" % (rss_max, vms_max) get_vmem_max_str = _get_vmem_max_str_gen().next def mbasename(s): """Custom function to include directory name if filename is too common Also strip .py at the end """ base = basename(s) if base.endswith('.py'): base = base[:-3] if base in set(['base', '__init__']): base = basename(dirname(s)) + '.' + base return base class TraceBack(object): """Customized traceback to be included in debug messages """ def __init__(self, collide=False): """Initialize TrackBack metric Parameters ---------- collide : bool if True then prefix common with previous invocation gets replaced with ... """ self.__prev = "" self.__collide = collide def __call__(self): ftb = traceback.extract_stack(limit=100)[:-2] entries = [[mbasename(x[0]), str(x[1])] for x in ftb] entries = [ e for e in entries if e[0] != 'unittest' ] # lets make it more consize entries_out = [entries[0]] for entry in entries[1:]: if entry[0] == entries_out[-1][0]: entries_out[-1][1] += ',%s' % entry[1] else: entries_out.append(entry) sftb = '>'.join(['%s:%s' % (mbasename(x[0]), x[1]) for x in entries_out]) if self.__collide: # lets remove part which is common with previous invocation prev_next = sftb common_prefix = os.path.commonprefix((self.__prev, sftb)) common_prefix2 = re.sub('>[^>]*$', '', common_prefix) if common_prefix2 != "": sftb = '...' + sftb[len(common_prefix2):] self.__prev = prev_next return sftb class RelativeTime(object): """Simple helper class to provide relative time it took from previous invocation""" def __init__(self, format="%3.3f sec"): """ Parameters ---------- format : str String format to use for reporting time. """ self.__prev = None self.__format = format def __call__(self): dt = 0.0 ct = time.time() if self.__prev is not None: dt = ct - self.__prev self.__prev = ct return self.__format % dt class DebugLogger(SetLogger): """ Logger for debugging purposes. Expands SetLogger with ability to print some interesting information (named Metric... XXX) about current process at each debug printout """ _known_metrics = { # TODO: make up Windows-friendly version or pure Python platform # independent version (probably just make use of psutil) 'vmem' : get_vmem_str, 'vmem_max' : get_vmem_max_str, 'pid' : getpid, # lambda : parse_status(field='Pid'), 'asctime' : time.asctime, 'tb' : TraceBack(), 'tbc' : TraceBack(collide=True), } def __init__(self, metrics=None, offsetbydepth=True, *args, **kwargs): """ Parameters ---------- metrics : iterable of (func or str) or None What metrics (functions) to be reported. If item is a string, it is matched against `_known_metrics` keys. offsetbydepth : bool, optional Either to offset lines depending on backtrace depth (default behavior). *args, **kwargs Passed to SetLogger initialization XXX """ if metrics is None: metrics = [] SetLogger.__init__(self, *args, **kwargs) self.__metrics = [] self._offsetbydepth = offsetbydepth self._reltimer = RelativeTime() self._known_metrics = DebugLogger._known_metrics self._known_metrics['reltime'] = self._reltimer for metric in metrics: self._registerMetric(metric) ##REF: Name was automagically refactored def register_metric(self, func): """Register some metric to report func can be either a function call or a string which should correspond to known metrics """ if isinstance(func, basestring): if func in ['all', 'ALL']: func = self._known_metrics.keys() if isinstance(func, basestring): if func in DebugLogger._known_metrics: func = DebugLogger._known_metrics[func] else: if func in ['?', 'list', 'help']: print 'Known debug metrics: ', \ ', '.join(DebugLogger._known_metrics.keys()) raise SystemExit(0) else: raise ValueError, \ "Unknown name %s for metric in DebugLogger" % \ func + " Known metrics are " + \ `DebugLogger._known_metrics.keys()` elif isinstance(func, list): self.__metrics = [] # reset for item in func: self.register_metric(item) return if not func in self.__metrics: try: from mvpa2.base import debug debug("DBG", "Registering metric %s" % func) self.__metrics.append(func) except: pass def __call__(self, setid, msg, *args, **kwargs): if setid not in self.registered: raise ValueError, "Not registered debug ID %s" % setid if not setid in self.active: # don't even compute the metrics, since they might # be statefull as RelativeTime return msg_ = ' / '.join([str(x()) for x in self.__metrics]) if len(msg_) > 0: msg_ = "{%s}" % msg_ if len(msg) > 0: # determine blank offset using backstacktrace if self._offsetbydepth: level = len(traceback.extract_stack()) - 2 else: level = 1 if len(msg) > 250 and 'DBG' in self.active and not setid.endswith('_TB'): tb = traceback.extract_stack(limit=2) msg += " !!!2LONG!!!. From %s" % str(tb[0]) msg = "DBG%s:%s%s" % (msg_, " "*level, msg) SetLogger.__call__(self, setid, msg, *args, **kwargs) else: msg = msg_ Logger.__call__(self, msg, *args, **kwargs) ##REF: Name was automagically refactored def _set_offset_by_depth(self, b): self._offsetbydepth = b offsetbydepth = property(fget=lambda x:x._offsetbydepth, fset=_set_offset_by_depth) metrics = property(fget=lambda x:x.__metrics, fset=register_metric) if not __debug__: class BlackHoleLogger(SetLogger): '''A logger that does absolutely nothing - it is used as a fallback so that debug(...) can still be called even if not __debug__''' def __init__(self, metrics=None, offsetbydepth=True, *args, **kwargs): '''Initializes the logger - ignores all input arguments''' # do not be evil - initialize through the parent class SetLogger.__init__(self, *args, **kwargs) def __call__(self, setid, msg, *args, **kwargs): pass def register_metric(self, func): pass def register(self, setid, description): pass def set_active_from_string(self, value): pass def print_registered(self, detailed=True): print "BlackHoleLogger: nothing registered " pymvpa2-2.6.4/mvpa2/clfs/000077500000000000000000000000001323370031300150705ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/clfs/__init__.py000066400000000000000000000022121323370031300171760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for PyMVPA classifiers Module Organization =================== mvpa2.clfs module contains various classifiers :group Base: base :group Meta Classifiers: meta :group Specific Implementations: knn svm _svmbase plr ridge smlr libsmlrc gpr blr :group External Interfaces: lars libsvmc sg :group Utilities: transerror model_selector stats kernel distance :group Warehouse of Classifiers: warehouse """ __docformat__ = 'restructuredtext' from mvpa2.support.due import due, Doi if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.clfs') due.cite( Doi('10.1007/b94608'), path="mvpa2.clfs", description="Thorough textbook on statistical learning (available online)", tags=["edu"]) if __debug__: debug('INIT', 'mvpa2.clfs end') pymvpa2-2.6.4/mvpa2/clfs/_svmbase.py000066400000000000000000000402421323370031300172430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Common to all SVM implementations functionality. For internal use only""" __docformat__ = 'restructuredtext' import numpy as np import textwrap from mvpa2.support.copy import deepcopy from mvpa2.base import warning from mvpa2.base.types import is_sequence_type from mvpa2.kernels.base import Kernel from mvpa2.base.dochelpers import handle_docstring, _rst, _rst_section, \ _rst_indentstr from mvpa2.clfs.base import Classifier from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureListOf from mvpa2.support.due import due, BibTeX if __debug__: from mvpa2.base import debug class _SVM(Classifier): """Support Vector Machine Classifier. Base class for all external SVM implementations. """ """ Derived classes should define: * _KERNELS: map(dict) should define assignment to a tuple containing implementation kernel type, list of parameters adherent to the kernel, and sensitivity analyzer e.g.:: _KERNELS = { 'linear': (shogun.Kernel.LinearKernel, (), LinearSVMWeights), 'rbf' : (shogun.Kernel.GaussianKernel, ('gamma',), None), ... } * _KNOWN_IMPLEMENTATIONS: map(dict) should define assignment to a tuple containing implementation of the SVM, list of parameters adherent to the implementation, additional internals, and description e.g.:: _KNOWN_IMPLEMENTATIONS = { 'C_SVC' : (svm.svmc.C_SVC, ('C',), ('binary', 'multiclass'), 'C-SVM classification'), ... } """ _ATTRIBUTE_COLLECTIONS = ['params'] # enforce presence of params collections # Placeholder: map kernel names to sensitivity classes, ie # 'linear':LinearSVMWeights, for each backend _KNOWN_SENSITIVITIES={} kernel = Parameter(None, # XXX: Currently, can't be ensured using constraints # allowedtype=Kernel, doc='Kernel object', index=-1) _SVM_PARAMS = { 'C' : Parameter(-1.0, doc='Trade-off parameter between width of the ' 'margin and number of support vectors. Higher C -- ' 'more rigid margin SVM. In linear kernel, negative ' 'values provide automatic scaling of their value ' 'according to the norm of the data'), 'nu' : Parameter(0.5, min=0.0, max=1.0, doc='Fraction of datapoints within the margin'), 'cache_size': Parameter(100, doc='Size of the kernel cache, specified in megabytes'), 'tube_epsilon': Parameter(0.01, doc='Epsilon in epsilon-insensitive loss function of ' 'epsilon-SVM regression (SVR)'), 'tau': Parameter(1e-6, doc='TAU parameter of KRR regression in shogun'), 'probability': Parameter(0, doc='Flag to signal either probability estimate is obtained ' 'within LIBSVM'), 'shrinking': Parameter(1, doc='Either shrinking is to be conducted'), 'weight_label': Parameter([], constraints=EnsureListOf(int), doc='To be used in conjunction with weight for custom ' 'per-label weight'), # TODO : merge them into a single dictionary 'weight': Parameter([], constraints=EnsureListOf(float), doc='Custom weights per label'), # For some reason setting up epsilon to 1e-5 slowed things down a bit # in comparison to how it was before (in yoh/master) by up to 20%... not clear why # may be related to 1e-3 default within _svm.py? 'epsilon': Parameter(5e-5, min=1e-10, doc='Tolerance of termination criteria. (For nu-SVM default is 0.001)') } _KNOWN_PARAMS = () # just a placeholder to please lintian """Parameters which are specific to a given instantiation of SVM """ __tags__ = [ 'svm', 'kernel-based', 'swig' ] def __init__(self, **kwargs): """Init base class of SVMs. *Not to be publicly used* TODO: handling of parameters might migrate to be generic for all classifiers. SVMs are chosen to be testbase for that functionality to see how well it would fit. """ # Check if requested implementation is known svm_impl = kwargs.get('svm_impl', None) if not svm_impl in self._KNOWN_IMPLEMENTATIONS: raise ValueError, \ "Unknown SVM implementation '%s' is requested for %s." \ "Known are: %s" % (svm_impl, self.__class__, self._KNOWN_IMPLEMENTATIONS.keys()) self._svm_impl = svm_impl impl, add_params, add_internals, descr = \ self._KNOWN_IMPLEMENTATIONS[svm_impl] # Add corresponding parameters to 'known' depending on the # implementation chosen if add_params is not None: self._KNOWN_PARAMS = \ self._KNOWN_PARAMS[:] + list(add_params) # Assign per-instance __tags__ self.__tags__ = self.__tags__[:] + [svm_impl] # Add corresponding internals if add_internals is not None: self.__tags__ += list(add_internals) self.__tags__.append(svm_impl) k = kwargs.get('kernel', None) if k is None: kwargs['kernel'] = self.__default_kernel_class__() if 'linear' in ('%s'%kwargs['kernel']).lower(): # XXX not necessarily best self.__tags__ += [ 'linear', 'has_sensitivity' ] else: self.__tags__ += [ 'non-linear' ] # pop out all args from **kwargs which are known to be SVM parameters _args = {} for param in self._KNOWN_PARAMS + ['svm_impl']: # Update to remove kp's? if param in kwargs: _args[param] = kwargs.pop(param) try: Classifier.__init__(self, **kwargs) except TypeError, e: if "__init__() got an unexpected keyword argument " in e.args[0]: # TODO: make it even more specific -- if that argument is listed # within _SVM_PARAMS e.args = tuple( [e.args[0] + "\n Given SVM instance of class %s knows following parameters: %s" % (self.__class__, self._KNOWN_PARAMS) + \ list(e.args)[1:]]) raise e # populate collections and add values from arguments for paramfamily, paramset in ( (self._KNOWN_PARAMS, self.params),): for paramname in paramfamily: if not (paramname in self._SVM_PARAMS): raise ValueError, "Unknown parameter %s" % paramname + \ ". Known SVM params are: %s" % self._SVM_PARAMS.keys() param = deepcopy(self._SVM_PARAMS[paramname]) if paramname in _args: param.value = _args[paramname] # XXX might want to set default to it -- not just value paramset[paramname] = param # TODO: Below commented out because kernel_type has been removed. # Find way to set default C as necessary # tune up C if it has one and non-linear classifier is used #if self.params.has_key('C') and kernel_type != "linear" \ #and self.params['C'].is_default: #if __debug__: #debug("SVM_", "Assigning default C value to be 1.0 for SVM " #"%s with non-linear kernel" % self) #self.params['C'].default = 1.0 # Some postchecks if 'weight' in self.params and 'weight_label' in self.params: if not len(self.params.weight_label) == len(self.params.weight): raise ValueError, "Lenghts of 'weight' and 'weight_label' lists " \ "must be equal." if __debug__: debug("SVM", "Initialized %s with kernel %s" % (self, self.params.kernel)) # XXX RF @property def kernel_params(self): if self.params.kernel: return self.params.kernel.params return None def __repr__(self): """Definition of the object summary over the object """ res = "%s(svm_impl=%r" % \ (self.__class__.__name__, self._svm_impl) sep = ", " # XXX TODO: we should have no kernel_params any longer for col in [self.params]:#, self.kernel_params]: for k in col.keys(): # list only params with not default values if col[k].is_default: continue res += "%s%s=%r" % (sep, k, col[k].value) #sep = ', ' ca = self.ca for name, invert in ( ('enable', False), ('disable', True) ): ca_chosen = ca._get_enabled(nondefault=False, invert=invert) if len(ca_chosen): res += sep + "%s_ca=%r" % (name, ca_chosen) res += ")" return res ##REF: Name was automagically refactored def _get_cvec(self, data): """Estimate default and return scaled by it negative user's C values """ if not 'C' in self.params:#svm_type in [_svm.svmc.C_SVC]: raise RuntimeError, \ "Requested estimation of default C whenever C was not set" C = self.params.C if not is_sequence_type(C): # we were not given a tuple for balancing between classes C = [C] Cs = list(C[:]) # copy for i in xrange(len(Cs)): if Cs[i] < 0: Cs[i] = self._get_default_c(data.samples)*abs(Cs[i]) if __debug__: debug("SVM", "Default C for %s was computed to be %s" % (C[i], Cs[i])) return Cs ##REF: Name was automagically refactored def _get_default_c(self, data): """Compute default C TODO: for non-linear SVMs """ if self.params.kernel.__kernel_name__ == 'linear': # TODO: move into a function wrapper for # np.linalg.norm if np.issubdtype(data.dtype, np.integer): # we are dealing with integers and overflows are # possible, so assure working with floats def sq_func(x): y = x.astype(float) # copy as float y *= y # in-place square return y else: sq_func = np.square # perform it per each sample so we do not double memory # with calling sq_func on full data # Having a list of norms here automagically resolves issue # with memmapped operations on which return # in turn another memmap datasetnorm = np.mean([np.sqrt(np.sum(sq_func(s))) for s in data]) if datasetnorm == 0: warning("Obtained degenerate data with zero norm for training " "of %s. Scaling of C cannot be done." % self) return 1.0 value = 1.0/(datasetnorm**2) if __debug__: debug("SVM", "Default C computed to be %f" % value) else: warning("TODO: Computation of default C is not yet implemented" + " for non-linear SVMs. Assigning 1.0") value = 1.0 return value @due.dcite( BibTeX(""" @Book{Vapnik95:SVM, title = "The Nature of Statistical Learning Theory", author = "Vladimir Vapnik", publisher = "Springer", address = "New York", isbn = "0-387-94559-8", year = "1995", pymvpa-keywords = "support vector machine, SVM" }"""), path="mvpa2.clfs.SVM", description="Support Vector Machines (SVM)", tags=["implementation"]) def _train(self, dataset): # exists primarily for dcite, and no parent has it defined pass # TODO: make part of kernel object #def _getDefaultGamma(self, dataset): #"""Compute default Gamma #TODO: unify bloody libsvm interface so it makes use of this function. #Now it is computed within SVMModel.__init__ #""" ## TODO: Check validity of this w/ new kernels (ie sg.Rbf has sigma) #if self.kernel_params.has_key('gamma'): #value = 1.0 / len(dataset.uniquetargets) #if __debug__: #debug("SVM", "Default Gamma is computed to be %f" % value) #else: #raise RuntimeError, "Shouldn't ask for default Gamma here" #return value ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, **kwargs): """Returns an appropriate SensitivityAnalyzer.""" sana = self._KNOWN_SENSITIVITIES.get(self.params.kernel.__kernel_name__, None) if sana: return sana(self, **kwargs) else: raise NotImplementedError, \ "Sensitivity analyzers for kernel %s is unknown" % \ self.params.kernel @classmethod ##REF: Name was automagically refactored def _customize_doc(cls): #cdoc_old = cls.__doc__ # Need to append documentation to __init__ method idoc_old = cls.__init__.__doc__ idoc = """ SVM/SVR definition is dependent on specifying kernel, implementation type, and parameters for each of them which vary depending on the choices made. Desired implementation is specified in ``svm_impl`` argument. Here is the list if implementations known to this class, along with specific to them parameters (described below among the rest of parameters), and what tasks it is capable to deal with (e.g. regression, binary and/or multiclass classification): """ # XXX Deprecate # To not confuse sphinx -- lets avoid Implementations section # %s""" % (_rst_section('Implementations'),) class NOSClass(object): """Helper -- NothingOrSomething ;) If list is not empty -- return its entries within string s """ def __init__(self): self.seen = [] def __call__(self, l, s, empty=''): if l is None or not len(l): return empty else: lsorted = list(l) lsorted.sort() self.seen += lsorted return s % (', '.join(lsorted)) NOS = NOSClass() # Describe implementations idoc += ''.join( ['\n%s%s : %s' % (_rst_indentstr, k, v[3]) + NOS(v[1], "\n" + _rst_indentstr + " Parameters: %s") + NOS(v[2], "%s" % _rst(('','\n')[int(len(v[1])>0)], '') + _rst_indentstr + " Capabilities: %s") for k,v in cls._KNOWN_IMPLEMENTATIONS.iteritems()]) # Describe kernels idoc += """ Kernel choice is specified as a kernel instance with kwargument ``kernel``. Some kernels (e.g. Linear) might allow computation of per feature sensitivity. """ # XXX Deprecate # %s""" % (_rst_section('Kernels'),) #idoc += ''.join( # ['\n%s%s' % (_rst_indentstr, k) # + ('', ' : provides sensitivity')[int(v[2] is not None)] # + '\n ' + NOS(v[1], '%s', 'No parameters') # for k,v in cls._KERNELS.iteritems()]) # Finally parameters NOS.seen += cls._KNOWN_PARAMS# + cls._KNOWN_KERNEL_PARAMS idoc += '\n' + _rst_section('Parameters') + '\n' + '\n'.join( [v._paramdoc() for k,v in cls._SVM_PARAMS.iteritems() if k in NOS.seen]) cls.__dict__['__init__'].__doc__ = handle_docstring(idoc_old) + idoc # populate names in parameters for k, v in _SVM._SVM_PARAMS.iteritems(): v._set_name(k) pymvpa2-2.6.4/mvpa2/clfs/base.py000066400000000000000000000742141323370031300163640ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Plumbing for all learners (classifiers and regressions)""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.support.copy import deepcopy import time from mvpa2.base.types import is_datasetlike, accepts_dataset_as_samples from mvpa2.measures.base import Measure from mvpa2.base.learner import Learner, FailedToPredictError from mvpa2.datasets.base import Dataset from mvpa2.misc.support import idhash from mvpa2.base.state import ConditionalAttribute from mvpa2.base.param import Parameter from mvpa2.misc.attrmap import AttributeMap from mvpa2.base.dochelpers import _str, _strid from mvpa2.clfs.transerror import ConfusionMatrix, RegressionStatistics from mvpa2.base import warning if __debug__: from mvpa2.base import debug __all__ = [ 'Classifier', 'accepts_dataset_as_samples', 'accepts_samples_as_dataset'] def accepts_samples_as_dataset(fx): """Decorator to wrap samples into a Dataset. Little helper to allow methods to accept plain data whenever dataset is generally required. """ def wrap_samples(obj, data, *args, **kwargs): if is_datasetlike(data): return fx(obj, data, *args, **kwargs) else: return fx(obj, Dataset(data), *args, **kwargs) return wrap_samples class Classifier(Learner): """Abstract classifier class to be inherited by all classifiers """ # Kept separate from doc to don't pollute help(clf), especially if # we including help for the parent class _DEV__doc__ = """ Required behavior: For every classifier is has to be possible to be instantiated without having to specify the training pattern. Repeated calls to the train() method with different training data have to result in a valid classifier, trained for the particular dataset. It must be possible to specify all classifier parameters as keyword arguments to the constructor. Recommended behavior: Derived classifiers should provide access to *estimates* -- i.e. that information that is finally used to determine the predicted class label. Michael: Maybe it works well if each classifier provides a 'estimates' state member. This variable is a list as long as and in same order as Dataset.uniquetargets (training data). Each item in the list corresponds to the likelyhood of a sample to belong to the respective class. However the semantics might differ between classifiers, e.g. kNN would probably store distances to class- neighbors, where PLR would store the raw function value of the logistic function. So in the case of kNN low is predictive and for PLR high is predictive. Don't know if there is the need to unify that. As the storage and/or computation of this information might be demanding its collection should be switchable and off be default. Nomenclature * predictions : result of the last call to .predict() * estimates : might be different from predictions if a classifier's predict() makes a decision based on some internal value such as probability or a distance. """ # Dict that contains the parameters of a classifier. # This shall provide an interface to plug generic parameter optimizer # on all classifiers (e.g. grid- or line-search optimizer) # A dictionary is used because Michael thinks that access by name is nicer. # Additionally Michael thinks ATM that additional information might be # necessary in some situations (e.g. reasonably predefined parameter range, # minimal iteration stepsize, ...), therefore the value to each key should # also be a dict or we should use mvpa2.base.param.Parameter'... training_stats = ConditionalAttribute(enabled=False, doc="Confusion matrix of learning performance") predictions = ConditionalAttribute(enabled=True, doc="Most recent set of predictions") estimates = ConditionalAttribute(enabled=True, doc="Internal classifier estimates the most recent " + "predictions are based on") predicting_time = ConditionalAttribute(enabled=True, doc="Time (in seconds) which took classifier to predict") __tags__ = [] """Describes some specifics about the classifier -- is that it is doing regression for instance....""" # TODO: make it available only for actually retrainable classifiers retrainable = Parameter(False, constraints='bool', doc="""Either to enable retraining for 'retrainable' classifier.""", index=1002) def __init__(self, space=None, **kwargs): # by default we want classifiers to use the 'targets' sample attribute # for training/testing if space is None: space = 'targets' Learner.__init__(self, space=space, **kwargs) # XXX # the place to map literal to numerical labels (and back) # this needs to be in the base class, since some classifiers also # have this nasty 'regression' mode, and the code in this class # needs to deal with converting the regression output into discrete # labels # however, preferably the mapping should be kept in the respective # low-level implementations that need it self._attrmap = AttributeMap() self.__trainednfeatures = 0 """Stores number of features for which classifier was trained. If 0 -- it wasn't trained at all""" self._set_retrainable(self.params.retrainable, force=True) # deprecate #self.__trainedidhash = None #"""Stores id of the dataset on which it was trained to signal #in trained() if it was trained already on the same dataset""" @property def __summary_class__(self): if 'regression' in self.__tags__: return RegressionStatistics else: return ConfusionMatrix @property def __is_regression__(self): return 'regression' in self.__tags__ def __str__(self, *args, **kwargs): if __debug__ and 'CLF_' in debug.active: return "%s / %s" % (repr(self), super(Classifier, self).__str__()) else: return _str(self, *args, **kwargs) def _pretrain(self, dataset): """Functionality prior to training """ # So we reset all conditional attributes and may be free up some memory # explicitly params = self.params if not params.retrainable: self.untrain() else: # just reset the ca, do not untrain self.ca.reset() if not self.__changedData_isset: self.__reset_changed_data() _changedData = self._changedData __idhashes = self.__idhashes __invalidatedChangedData = self.__invalidatedChangedData # if we don't know what was changed we need to figure # them out if __debug__: debug('CLF_', "IDHashes are %s", (__idhashes,)) # Look at the data if any was changed for key, data_ in (('traindata', dataset.samples), ('targets', dataset.sa[self.get_space()].value)): _changedData[key] = self.__was_data_changed(key, data_) # if those idhashes were invalidated by retraining # we need to adjust _changedData accordingly if __invalidatedChangedData.get(key, False): if __debug__ and not _changedData[key]: debug('CLF_', 'Found that idhash for %s was ' 'invalidated by retraining', (key,)) _changedData[key] = True # Look at the parameters for col in self._paramscols: changedParams = self._collections[col].which_set() if len(changedParams): _changedData[col] = changedParams self.__invalidatedChangedData = {} # reset it on training if __debug__: debug('CLF_', "Obtained _changedData is %s", (self._changedData,)) def _posttrain(self, dataset): """Functionality post training For instance -- computing confusion matrix. Parameters ---------- dataset : Dataset Data which was used for training """ super(Classifier, self)._posttrain(dataset) ca = self.ca # needs to be assigned first since below we use predict self.__trainednfeatures = dataset.nfeatures if __debug__ and 'CHECK_TRAINED' in debug.active: self.__trainedidhash = dataset.idhash if ca.is_enabled('training_stats') and \ not ca.is_set('training_stats'): # we should not store predictions for training data, # it is confusing imho (yoh) ca.change_temporarily( disable_ca=["predictions"]) if self.params.retrainable: # we would need to recheck if data is the same, # XXX think if there is a way to make this all # efficient. For now, probably, retrainable # classifiers have no chance but not to use # training_stats... sad self.__changedData_isset = False predictions = self.predict(dataset) ca.reset_changed_temporarily() targets = dataset.sa[self.get_space()].value if is_datasetlike(predictions) and (self.get_space() in predictions.fa): # e.g. in case of pair-wise uncombined results - provide # stats per each of the targets pairs prediction_targets = predictions.fa[self.get_space()].value ca.training_stats = dict( (t, self.__summary_class__( targets=targets, predictions=predictions.samples[:, i])) for i, t in enumerate(prediction_targets)) else: ca.training_stats = self.__summary_class__( targets=targets, predictions=predictions) def summary(self): """Providing summary over the classifier""" s = "Classifier %s" % self ca = self.ca ca_enabled = ca.enabled if self.trained: s += "\n trained" if ca.is_set('training_time'): s += ' in %.3g sec' % ca.training_time s += ' on data with' if ca.is_set('trained_targets'): s += ' targets:%s' % list(ca.trained_targets) nsamples, nchunks = None, None if ca.is_set('trained_nsamples'): nsamples = ca.trained_nsamples if ca.is_set('trained_dataset'): td = ca.trained_dataset nsamples, nchunks = td.nsamples, len(td.sa['chunks'].unique) if nsamples is not None: s += ' #samples:%d' % nsamples if nchunks is not None: s += ' #chunks:%d' % nchunks s += " #features:%d" % self.__trainednfeatures if ca.is_set('training_stats'): s += ", training error:%.3g" % ca.training_stats.error else: s += "\n not yet trained" if len(ca_enabled): s += "\n enabled ca:%s" % ', '.join([str(ca[x]) for x in ca_enabled]) return s def clone(self): """Create full copy of the classifier. It might require classifier to be untrained first due to present SWIG bindings. TODO: think about proper re-implementation, without enrollment of deepcopy """ if __debug__: debug("CLF", "Cloning %s%s", (self, _strid(self))) try: return deepcopy(self) except: self.untrain() return deepcopy(self) def _train(self, dataset): """Function to be actually overridden in derived classes """ raise NotImplementedError def _prepredict(self, dataset): """Functionality prior prediction """ if not ('notrain2predict' in self.__tags__): # check if classifier was trained if that is needed if not self.trained: raise FailedToPredictError( "Classifier %s wasn't yet trained, therefore can't " "predict" % self) nfeatures = dataset.nfeatures #data.shape[1] # check if number of features is the same as in the data # it was trained on if nfeatures != self.__trainednfeatures: raise ValueError, \ "Classifier %s was trained on data with %d features, " % \ (self, self.__trainednfeatures) + \ "thus can't predict for %d features" % nfeatures if self.params.retrainable: if not self.__changedData_isset: self.__reset_changed_data() _changedData = self._changedData data = np.asanyarray(dataset.samples) _changedData['testdata'] = \ self.__was_data_changed('testdata', data) if __debug__: debug('CLF_', "prepredict: Obtained _changedData is %s", (_changedData,)) def _postpredict(self, dataset, result): """Functionality after prediction is computed """ self.ca.predictions = result if self.params.retrainable: self.__changedData_isset = False def _predict(self, dataset): """Actual prediction """ raise NotImplementedError @accepts_samples_as_dataset def predict(self, dataset): """Predict classifier on data Shouldn't be overridden in subclasses unless explicitly needed to do so. Also subclasses trying to call super class's predict should call _predict if within _predict instead of predict() since otherwise it would loop """ ## ??? yoh: changed to asany from as without exhaustive check data = np.asanyarray(dataset.samples) if __debug__: # Verify that we have no NaN/Inf's which we do not "support" ATM if not np.all(np.isfinite(data)): raise ValueError( "Some input data for predict is not finite (NaN or Inf)") debug("CLF", "Predicting classifier %s on ds %s", (self, dataset)) # remember the time when started computing predictions t0 = time.time() ca = self.ca # to assure that those are reset (could be set due to testing # post-training) ca.reset(['estimates', 'predictions']) self._prepredict(dataset) if self.__trainednfeatures > 0 \ or 'notrain2predict' in self.__tags__: result = self._predict(dataset) else: warning("Trying to predict using classifier trained on no features") if __debug__: debug("CLF", "No features were present for training, prediction is " \ "bogus") result = [None]*data.shape[0] ca.predicting_time = time.time() - t0 # with labels mapping in-place, we also need to go back to the # literal labels if self._attrmap: try: result = self._attrmap.to_literal(result) except KeyError, e: raise FailedToPredictError, \ "Failed to convert predictions from numeric into " \ "literals: %s" % e self._postpredict(dataset, result) return result def _call(self, ds): # get the predictions # call with full dataset, since we might need it further down in # the stream, e.g. for caching... pred = self.predict(ds) tattr = self.get_space() # return the predictions and the targets in a dataset if isinstance(pred, Dataset): # it is already a dataset, e.g. as if we did not # use any combiner for MulticlassClassifier # to look at each pair pred.sa[tattr] = ds.sa[tattr] return pred else: return Dataset(pred, sa={tattr: ds.sa[tattr]}) # XXX deprecate ??? ##REF: Name was automagically refactored def is_trained(self, dataset=None): """Either classifier was already trained. MUST BE USED WITH CARE IF EVER""" if dataset is None: # simply return if it was trained on anything return not self.__trainednfeatures == 0 else: res = (self.__trainednfeatures == dataset.nfeatures) if __debug__ and 'CHECK_TRAINED' in debug.active: res2 = (self.__trainedidhash == dataset.idhash) if res2 != res: raise RuntimeError, \ "is_trained is weak and shouldn't be relied upon. " \ "Got result %b although comparing of idhash says %b" \ % (res, res2) return res @property def trained(self): """Either classifier was already trained""" return self.is_trained() def _untrain(self): """Reset trained state""" # any previous apping is obsolete now self._attrmap.clear() self.__trainednfeatures = 0 # probably not needed... retrainable shouldn't be fully untrained # or should be??? #if self.params.retrainable: # # ??? don't duplicate the code ;-) # self.__idhashes = {'traindata': None, 'targets': None, # 'testdata': None, 'testtraindata': None} # no need to do this, as the Leaner class is doing it anyway #super(Classifier, self).reset() ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, **kwargs): """Factory method to return an appropriate sensitivity analyzer for the respective classifier.""" raise NotImplementedError # # Methods which are needed for retrainable classifiers # ##REF: Name was automagically refactored def _set_retrainable(self, value, force=False): """Assign value of retrainable parameter If retrainable flag is to be changed, classifier has to be untrained. Also internal attributes such as _changedData, __changedData_isset, and __idhashes should be initialized if it becomes retrainable """ pretrainable = self.params['retrainable'] if (force or value != pretrainable.value) \ and 'retrainable' in self.__tags__: if __debug__: debug("CLF_", "Setting retrainable to %s" % value) if 'meta' in self.__tags__: warning("Retrainability is not yet crafted/tested for " "meta classifiers. Unpredictable behavior might occur") # assure that we don't drag anything behind if self.trained: self.untrain() ca = self.ca if not value and 'retrained' in ca: ca.pop('retrained') ca.pop('repredicted') if value: if not 'retrainable' in self.__tags__: warning("Setting of flag retrainable for %s has no effect" " since classifier has no such capability. It would" " just lead to resources consumption and slowdown" % self) ca['retrained'] = ConditionalAttribute(enabled=True, doc="Either retrainable classifier was retrained") ca['repredicted'] = ConditionalAttribute(enabled=True, doc="Either retrainable classifier was repredicted") pretrainable.value = value # if retrainable we need to keep track of things if value: self.__idhashes = {'traindata': None, 'targets': None, 'testdata': None} #, 'testtraindata': None} if __debug__ and 'CHECK_RETRAIN' in debug.active: # ??? it is not clear though if idhash is faster than # simple comparison of (dataset != __traineddataset).any(), # but if we like to get rid of __traineddataset then we # should use idhash anyways self.__trained = self.__idhashes.copy() # just same Nones self.__reset_changed_data() self.__invalidatedChangedData = {} elif 'retrainable' in self.__tags__: #self.__reset_changed_data() self.__changedData_isset = False self._changedData = None self.__idhashes = None if __debug__ and 'CHECK_RETRAIN' in debug.active: self.__trained = None ##REF: Name was automagically refactored def __reset_changed_data(self): """For retrainable classifier we keep track of what was changed This function resets that dictionary """ if __debug__: debug('CLF_', 'Retrainable: resetting flags on either data was changed') keys = self.__idhashes.keys() + self._paramscols # we might like to just reinit estimates to False??? #_changedData = self._changedData #if isinstance(_changedData, dict): # for key in _changedData.keys(): # _changedData[key] = False self._changedData = dict(zip(keys, [False]*len(keys))) self.__changedData_isset = False ##REF: Name was automagically refactored def __was_data_changed(self, key, entry, update=True): """Check if given entry was changed from what known prior. If so -- store only the ones needed for retrainable beastie """ idhash_ = idhash(entry) __idhashes = self.__idhashes changed = __idhashes[key] != idhash_ if __debug__ and 'CHECK_RETRAIN' in debug.active: __trained = self.__trained changed2 = entry != __trained[key] if isinstance(changed2, np.ndarray): changed2 = changed2.any() if changed != changed2 and not changed: raise RuntimeError, \ 'idhash found to be weak for %s. Though hashid %s!=%s %s, '\ 'estimates %s!=%s %s' % \ (key, idhash_, __idhashes[key], changed, entry, __trained[key], changed2) if update: __trained[key] = entry if __debug__ and changed: debug('CLF_', "Changed %s from %s to %s.%s", (key, __idhashes[key], idhash_, ('','updated')[int(update)])) if update: __idhashes[key] = idhash_ return changed # def __updateHashIds(self, key, data): # """Is twofold operation: updates hashid if was said that it changed. # # or if it wasn't said that data changed, but CHECK_RETRAIN and it found # to be changed -- raise Exception # """ # # check_retrain = __debug__ and 'CHECK_RETRAIN' in debug.active # chd = self._changedData # # # we need to updated idhashes # if chd[key] or check_retrain: # keychanged = self.__was_data_changed(key, data) # if check_retrain and keychanged and not chd[key]: # raise RuntimeError, \ # "Data %s found changed although wasn't " \ # "labeled as such" % key # # Additional API which is specific only for retrainable classifiers. # For now it would just puke if asked from not retrainable one. # # Might come useful and efficient for statistics testing, so if just # labels of dataset changed, then # self.retrain(dataset, labels=True) # would cause efficient retraining (no kernels recomputed etc) # and subsequent self.repredict(data) should be also quite fase ;-) def retrain(self, dataset, **kwargs): """Helper to avoid check if data was changed actually changed Useful if just some aspects of classifier were changed since its previous training. For instance if dataset wasn't changed but only classifier parameters, then kernel matrix does not have to be computed. Words of caution: classifier must be previously trained, results always should first be compared to the results on not 'retrainable' classifier (without calling retrain). Some additional checks are enabled if debug id 'CHECK_RETRAIN' is enabled, to guard against obvious mistakes. Parameters ---------- kwargs that is what _changedData gets updated with. So, smth like `(params=['C'], targets=True)` if parameter C and targets got changed """ # Note that it also demolishes anything for repredicting, # which should be ok in most of the cases if __debug__: if not self.params.retrainable: raise RuntimeError, \ "Do not use re(train,predict) on non-retrainable %s" % \ self if 'params' in kwargs or 'kernel_params' in kwargs: raise ValueError, \ "Retraining for changed params not working yet" self.__reset_changed_data() # local bindings chd = self._changedData ichd = self.__invalidatedChangedData chd.update(kwargs) # mark for future 'train()' items which are explicitely # mentioned as changed for key, value in kwargs.iteritems(): if value: ichd[key] = True self.__changedData_isset = True # To check if we are not fooled if __debug__ and 'CHECK_RETRAIN' in debug.active: for key, data_ in (('traindata', dataset.samples), ('targets', dataset.sa[self.get_space()].value)): # so it wasn't told to be invalid if not chd[key] and not ichd.get(key, False): if self.__was_data_changed(key, data_, update=False): raise RuntimeError, \ "Data %s found changed although wasn't " \ "labeled as such" % key # TODO: parameters of classifiers... for now there is explicit # 'forbidance' above # Below check should be superseeded by check above, thus never occur. # remove later on ??? if __debug__ and 'CHECK_RETRAIN' in debug.active and self.trained \ and not self._changedData['traindata'] \ and self.__trained['traindata'].shape != dataset.samples.shape: raise ValueError, "In retrain got dataset with %s size, " \ "whenever previousely was trained on %s size" \ % (dataset.samples.shape, self.__trained['traindata'].shape) self.train(dataset) @accepts_samples_as_dataset def repredict(self, dataset, **kwargs): """Helper to avoid check if data was changed actually changed Useful if classifier was (re)trained but with the same data (so just parameters were changed), so that it could be repredicted easily (on the same data as before) without recomputing for instance train/test kernel matrix. Should be used with caution and always compared to the results on not 'retrainable' classifier. Some additional checks are enabled if debug id 'CHECK_RETRAIN' is enabled, to guard against obvious mistakes. Parameters ---------- dataset dataset which is conventionally given to predict kwargs that is what _changedData gets updated with. So, smth like `(params=['C'], targets=True)` if parameter C and targets got changed """ if len(kwargs)>0: raise RuntimeError, \ "repredict for now should be used without params since " \ "it makes little sense to repredict if anything got changed" if __debug__ and not self.params.retrainable: raise RuntimeError, \ "Do not use retrain/repredict on non-retrainable classifiers" self.__reset_changed_data() chd = self._changedData chd.update(**kwargs) self.__changedData_isset = True # check if we are attempted to perform on the same data if __debug__ and 'CHECK_RETRAIN' in debug.active: for key, data_ in (('testdata', dataset.samples),): # so it wasn't told to be invalid #if not chd[key]:# and not ichd.get(key, False): if self.__was_data_changed(key, data_, update=False): raise RuntimeError, \ "Data %s found changed although wasn't " \ "labeled as such" % key # Should be superseded by above # remove in future??? if __debug__ and 'CHECK_RETRAIN' in debug.active \ and not self._changedData['testdata'] \ and self.__trained['testdata'].shape != dataset.samples.shape: raise ValueError, "In repredict got dataset with %s size, " \ "whenever previously was trained on %s size" \ % (dataset.samples.shape, self.__trained['testdata'].shape) return self.predict(dataset) # TODO: callback into retrainable parameter #retrainable = property(fget=_getRetrainable, fset=_set_retrainable, # doc="Specifies either classifier should be retrainable") pymvpa2-2.6.4/mvpa2/clfs/blr.py000066400000000000000000000145531323370031300162310ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Bayesian Linear Regression (BLR).""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.state import ConditionalAttribute from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples if __debug__: from mvpa2.misc import debug class BLR(Classifier): """Bayesian Linear Regression (BLR). """ predicted_variances = ConditionalAttribute(enabled=False, doc="Variance per each predicted value") log_marginal_likelihood = ConditionalAttribute(enabled=False, doc="Log Marginal Likelihood") __tags__ = [ 'blr', 'regression', 'linear' ] def __init__(self, sigma_p = None, sigma_noise=1.0, **kwargs): """Initialize a BLR regression analysis. Parameters ---------- sigma_noise : float the standard deviation of the gaussian noise. (Defaults to 0.1) """ # init base class first Classifier.__init__(self, **kwargs) # pylint happiness self.w = None # It does not make sense to calculate a confusion matrix for a # BLR: self.ca.enable('training_stats', False) # set the prior on w: N(0,sigma_p) , specifying the covariance # sigma_p on w: self.sigma_p = sigma_p # set noise level: self.sigma_noise = sigma_noise self.ca.predicted_variances = None self.ca.log_marginal_likelihood = None # Yarik: what was those about??? just for future in # compute_log_marginal_likelihood ? # self.targets = None pass def __repr__(self): """String summary of the object """ return """BLR(w=%s, sigma_p=%s, sigma_noise=%f, enable_ca=%s)""" % \ (self.w, self.sigma_p, self.sigma_noise, str(self.ca.enabled)) def compute_log_marginal_likelihood(self): """ Compute log marginal likelihood using self.train_fv and self.targets. """ # log_marginal_likelihood = None # return log_marginal_likelihood raise NotImplementedError def _train(self, data): """Train regression using `data` (`Dataset`). """ # BLR relies on numerical labels train_labels = self._attrmap.to_numeric(data.sa[self.get_space()].value) # provide a basic (i.e. identity matrix) and correct prior # sigma_p, if not provided before or not compliant to 'data': if self.sigma_p is None: # case: not provided self.sigma_p = np.eye(data.samples.shape[1]+1) elif self.sigma_p.shape[1] != (data.samples.shape[1]+1): # case: wrong dimensions self.sigma_p = np.eye(data.samples.shape[1]+1) else: # ...then everything is OK :) pass # add one fake column of '1.0' to model the intercept: self.samples_train = np.hstack([data.samples,np.ones((data.samples.shape[0],1))]) if type(self.sigma_p)!=type(self.samples_train): # if sigma_p is a number... self.sigma_p = np.eye(self.samples_train.shape[1])*self.sigma_p # convert in matrix pass self.A_inv = np.linalg.inv(1.0/(self.sigma_noise**2) * np.dot(self.samples_train.T, self.samples_train) + np.linalg.inv(self.sigma_p)) self.w = 1.0/(self.sigma_noise**2) * np.dot(self.A_inv, np.dot(self.samples_train.T, train_labels)) pass @accepts_dataset_as_samples def _predict(self, data): """ Predict the output for the provided data. """ data = np.hstack([data,np.ones((data.shape[0],1),dtype=data.dtype)]) predictions = np.dot(data,self.w) if self.ca.is_enabled('predicted_variances'): # do computation only if conditional attribute was enabled self.ca.predicted_variances = np.dot(data, np.dot(self.A_inv, data.T)).diagonal()[:,np.newaxis] self.ca.estimates = predictions return predictions def set_hyperparameters(self,*args): """ Set hyperparameters' values. Note that this is a list so the order of the values is important. """ args=args[0] self.sigma_noise = args[0] if len(args)>1: self.sigma_p = np.array(args[1:]) # XXX check if this is ok pass return pass if __name__ == "__main__": import pylab pylab.close("all") pylab.ion() from mvpa2.misc.data_generators import linear_awgn train_size = 10 test_size = 100 F = 1 # dimensions of the dataset # np.random.seed(1) slope = np.random.rand(F) intercept = np.random.rand(1) print "True slope:",slope print "True intercept:",intercept dataset_train = linear_awgn(train_size, intercept=intercept, slope=slope) dataset_test = linear_awgn(test_size, intercept=intercept, slope=slope, flat=True) regression = True logml = False b = BLR(sigma_p=np.eye(F+1), sigma_noise=0.1) b.ca.enable("predicted_variances") b.train(dataset_train) predictions = b.predict(dataset_test.samples) print "Predicted slope and intercept:",b.w if F==1: pylab.plot(dataset_train.samples, dataset_train.sa[b.get_space()].value, "ro", label="train") pylab.plot(dataset_test.samples, predictions, "b-", label="prediction") pylab.plot(dataset_test.samples, predictions+np.sqrt(b.ca.predicted_variances), "b--", label="pred(+/-)std") pylab.plot(dataset_test.samples, predictions-np.sqrt(b.ca.predicted_variances), "b--", label=None) pylab.legend() pylab.xlabel("samples") pylab.ylabel("labels") pylab.title("Bayesian Linear Regression on dataset 'linear_AWGN'") pass pymvpa2-2.6.4/mvpa2/clfs/distance.py000066400000000000000000000370271323370031300172450ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Distance functions to be used in kernels and elsewhere """ __docformat__ = 'restructuredtext' # TODO: Make all distance functions accept 2D matrices samples x features # and compute the distance matrix between all samples. They would # need to be capable of dealing with unequal number of rows! # If we would have that, we could make use of them in kNN. import numpy as np from mvpa2.base import externals from mvpa2.support.utils import deprecated if __debug__: from mvpa2.base import debug, warning def cartesian_distance(a, b): """Return Cartesian distance between a and b """ return np.linalg.norm(a-b) def absmin_distance(a, b): """Returns dinstance max(\|a-b\|) XXX There must be better name! XXX Actually, why is it absmin not absmax? Useful to select a whole cube of a given "radius" """ return max(abs(a-b)) def manhattan_distance(a, b): """Return Manhattan distance between a and b """ return sum(abs(a-b)) @deprecated("Use correctly spelled manhattan_distance instead") def manhatten_distance(a, b): return manhattan_distance(a, b) def mahalanobis_distance(x, y=None, w=None): """Calculate Mahalanobis distance of the pairs of points. Parameters ---------- `x` first list of points. Rows are samples, columns are features. `y` second list of points (optional) `w` : np.ndarray optional inverse covariance matrix between the points. It is computed if not given Inverse covariance matrix can be calculated with the following w = np.linalg.solve(np.cov(x.T), np.identity(x.shape[1])) or w = np.linalg.inv(np.cov(x.T)) """ # see if pairwise between two matrices or just within a single matrix if y is None: # pairwise distances of single matrix # calculate the inverse correlation matrix if necessary if w is None: w = np.linalg.inv(np.cov(x.T)) # get some shapes of the data mx, nx = x.shape #mw, nw = w.shape # allocate for the matrix to fill d = np.zeros((mx, mx), dtype=np.float32) for i in range(mx-1): # get the current row to compare xi = x[i, :] # replicate the row xi = xi[np.newaxis, :].repeat(mx-i-1, axis=0) # take the distance between all the matrices dc = x[i+1:mx, :] - xi # scale the distance by the correlation d[i+1:mx, i] = np.real(np.sum((np.inner(dc, w) * np.conj(dc)), 1)) # fill the other direction of the matrix d[i, i+1:mx] = d[i+1:mx, i].T else: # is between two matrixes # calculate the inverse correlation matrix if necessary if w is None: # calculate over all points w = np.linalg.inv(np.cov(np.concatenate((x, y)).T)) # get some shapes of the data mx, nx = x.shape my, ny = y.shape # allocate for the matrix to fill d = np.zeros((mx, my), dtype=np.float32) # loop over shorter of two dimensions if mx <= my: # loop over the x patterns for i in range(mx): # get the current row to compare xi = x[i, :] # replicate the row xi = xi[np.newaxis, :].repeat(my, axis=0) # take the distance between all the matrices dc = xi - y # scale the distance by the correlation d[i, :] = np.real(np.sum((np.inner(dc, w) * np.conj(dc)), 1)) else: # loop over the y patterns for j in range(my): # get the current row to compare yj = y[j, :] # replicate the row yj = yj[np.newaxis, :].repeat(mx, axis=0) # take the distance between all the matrices dc = x - yj # scale the distance by the correlation d[:, j] = np.real(np.sum((np.inner(dc, w) * np.conj(dc)), 1)) # return the dist return np.sqrt(d) def squared_euclidean_distance(data1, data2=None, weight=None): """Compute weighted euclidean distance matrix between two datasets. Parameters ---------- data1 : np.ndarray first dataset data2 : np.ndarray second dataset. If None, compute the euclidean distance between the first dataset versus itself. (Defaults to None) weight : np.ndarray vector of weights, each one associated to each dimension of the dataset (Defaults to None) """ if __debug__: # check if both datasets are floating point if not np.issubdtype(data1.dtype, 'f') \ or (data2 is not None and not np.issubdtype(data2.dtype, 'f')): warning('Computing euclidean distance on integer data ' \ 'is not supported.') # removed for efficiency (see below) #if weight is None: # weight = np.ones(data1.shape[1], 'd') # unitary weight # In the following you can find faster implementations of this # basic code: # # squared_euclidean_distance_matrix = \ # np.zeros((data1.shape[0], data2.shape[0]), 'd') # for i in range(size1): # for j in range(size2): # squared_euclidean_distance_matrix[i, j] = \ # ((data1[i, :]-data2[j, :])**2*weight).sum() # pass # pass # Fast computation of distance matrix in Python+NumPy, # adapted from Bill Baxter's post on [numpy-discussion]. # Basically: (x-y)**2*w = x*w*x - 2*x*w*y + y*y*w # based on value of weight and data2 we might save on computation # and resources if weight is None: data1w = data1 if data2 is None: data2, data2w = data1, data1w else: data2w = data2 else: data1w = data1 * weight if data2 is None: data2, data2w = data1, data1w else: data2w = data2 * weight squared_euclidean_distance_matrix = \ (data1w * data1).sum(1)[:, None] \ -2 * np.dot(data1w, data2.T) \ + (data2 * data2w).sum(1) # correction to some possible numerical instabilities: less0 = squared_euclidean_distance_matrix < 0 if __debug__ and 'CHECK_STABILITY' in debug.active: less0num = np.sum(less0) if less0num > 0: norm0 = np.linalg.norm(squared_euclidean_distance_matrix[less0]) totalnorm = np.linalg.norm(squared_euclidean_distance_matrix) if totalnorm != 0 and norm0 / totalnorm > 1e-8: warning("Found %d elements out of %d unstable (<0) in " \ "computation of squared_euclidean_distance_matrix. " \ "Their norm is %s when total norm is %s" % \ (less0num, np.sum(less0.shape), norm0, totalnorm)) squared_euclidean_distance_matrix[less0] = 0 return squared_euclidean_distance_matrix def one_minus_correlation(X, Y): """Return one minus the correlation matrix between the rows of two matrices. This functions computes a matrix of correlations between all pairs of rows of two matrices. Unlike NumPy's corrcoef() this function will only considers pairs across matrices and not within, e.g. both elements of a pair never have the same source matrix as origin. Both arrays need to have the same number of columns. Parameters ---------- X: 2D-array Y: 2D-array Examples -------- >>> import numpy as np >>> from mvpa2.clfs.distance import one_minus_correlation >>> X = np.random.rand(20,80) >>> Y = np.random.rand(5,80) >>> C = one_minus_correlation(X, Y) >>> print C.shape (20, 5) """ # check if matrices have same number of columns if __debug__: if not X.shape[1] == Y.shape[1]: raise ValueError, 'correlation() requires to matrices with the ' \ 'same #columns (Got: %s and %s)' \ % (X.shape, Y.shape) # zscore each sample/row Zx = X - np.c_[X.mean(axis=1)] Zx /= np.c_[X.std(axis=1)] Zy = Y - np.c_[Y.mean(axis=1)] Zy /= np.c_[Y.std(axis=1)] C = ((np.matrix(Zx) * np.matrix(Zy).T) / Zx.shape[1]).A # let it behave like a distance, i.e. smaller is closer C -= 1.0 return np.abs(C) def pnorm_w_python(data1, data2=None, weight=None, p=2, heuristic='auto', use_sq_euclidean=True): """Weighted p-norm between two datasets (pure Python implementation) ||x - x'||_w = (\sum_{i=1...N} (w_i*|x_i - x'_i|)**p)**(1/p) Parameters ---------- data1 : np.ndarray First dataset data2 : np.ndarray or None Optional second dataset weight : np.ndarray or None Optional weights per 2nd dimension (features) p Power heuristic : str Which heuristic to use: * 'samples' -- python sweep over 0th dim * 'features' -- python sweep over 1st dim * 'auto' decides automatically. If # of features (shape[1]) is much larger than # of samples (shape[0]) -- use 'samples', and use 'features' otherwise use_sq_euclidean : bool Either to use squared_euclidean_distance_matrix for computation if p==2 """ if weight is None: weight = np.ones(data1.shape[1], 'd') pass if p == 2 and use_sq_euclidean: return np.sqrt(squared_euclidean_distance(data1=data1, data2=data2, weight=weight**2)) if data2 is None: data2 = data1 pass S1, F1 = data1.shape[:2] S2, F2 = data2.shape[:2] # sanity check if not (F1==F2==weight.size): raise ValueError, \ "Datasets should have same #columns == #weights. Got " \ "%d %d %d" % (F1, F2, weight.size) d = np.zeros((S1, S2), 'd') # Adjust local functions for specific p values # pf - power function # af - after function if p == 1: pf = lambda x:x af = lambda x:x else: pf = lambda x:x ** p af = lambda x:x ** (1.0/p) # heuristic 'auto' might need to be adjusted if heuristic == 'auto': heuristic = {False: 'samples', True: 'features'}[(F1/S1) < 500] if heuristic == 'features': # Efficient implementation if the feature size is little. for NF in range(F1): d += pf(np.abs(np.subtract.outer(data1[:, NF], data2[:, NF]))*weight[NF]) pass elif heuristic == 'samples': # Efficient implementation if the feature size is much larger # than number of samples for NS in xrange(S1): dfw = pf(np.abs(data1[NS] - data2) * weight) d[NS] = np.sum(dfw, axis=1) pass else: raise ValueError, "Unknown heuristic '%s'. Need one of " \ "'auto', 'samples', 'features'" % heuristic return af(d) if externals.exists('weave') or externals.exists('scipy.weave') : if externals.exists('weave'): import weave from weave import converters else: from scipy import weave from scipy.weave import converters def pnorm_w(data1, data2=None, weight=None, p=2): """Weighted p-norm between two datasets (scipy.weave implementation) ||x - x'||_w = (\sum_{i=1...N} (w_i*|x_i - x'_i|)**p)**(1/p) Parameters ---------- data1 : np.ndarray First dataset data2 : np.ndarray or None Optional second dataset weight : np.ndarray or None Optional weights per 2nd dimension (features) p Power """ if weight is None: weight = np.ones(data1.shape[1], 'd') pass S1, F1 = data1.shape[:2] code = "" if data2 is None or id(data1)==id(data2): if not (F1==weight.size): raise ValueError, \ "Dataset should have same #columns == #weights. Got " \ "%d %d" % (F1, weight.size) F = F1 d = np.zeros((S1, S1), 'd') try: code_peritem = \ {1.0 : "tmp = tmp+weight(t)*fabs(data1(i,t)-data1(j,t))", 2.0 : "tmp2 = weight(t)*(data1(i,t)-data1(j,t));" \ " tmp = tmp + tmp2*tmp2"}[p] except KeyError: code_peritem = "tmp = tmp+pow(weight(t)*fabs(data1(i,t)-data1(j,t)),p)" code = """ int i,j,t; double tmp, tmp2; for (i=0; i=0) == (d[1]>=0) )-1) self.ca.predictions = estimates self.ca.estimates = estimates # just for the sake of having estimates return estimates class RandomClassifier(Classifier): """Dummy classifier deciding on labels absolutely randomly """ __tags__ = ['random', 'non-deterministic', 'oneclass-binary'] same = Parameter( False, constraints='bool', doc="If a dataset arrives to predict, assign identical (but random) label " "to all samples having the same label in original, thus mimiquing the " "situation where testing samples are not independent.") def __init__(self, **kwargs): Classifier.__init__(self, **kwargs) self._ulabels = None def _train(self, data): self._ulabels = data.sa[self.get_space()].unique @accepts_dataset_as_samples def _predict(self, data): l = len(self._ulabels) # oh those lovely random estimates, for now just an estimate # per sample. Since we are random after all -- keep it random self.ca.estimates = np.random.normal(size=len(data)) if is_datasetlike(data) and self.params.same: # decide on mapping between original labels labels_map = dict( (t, rt) for t, rt in zip(self._ulabels, self._ulabels[npr.randint(0, l, size=l)])) return [labels_map[t] for t in data.sa[self.get_space()].value] else: # random one per each return self._ulabels[npr.randint(0, l, size=len(data))] class Less1Classifier(SameSignClassifier): """Dummy classifier which reports +1 class if abs value of max less than 1""" def _predict(self, data): datalen = len(data) estimates = [] for d in data: estimates.append(2*int(max(d)<=1)-1) self.predictions = estimates return estimates pymvpa2-2.6.4/mvpa2/clfs/enet.py000066400000000000000000000176561323370031300164140ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Elastic-Net (ENET) regression classifier.""" __docformat__ = 'restructuredtext' # system imports import numpy as np import mvpa2.base.externals as externals # do conditional to be able to build module reference if externals.exists('elasticnet', raise_=True): import rpy2.robjects import rpy2.robjects.numpy2ri if hasattr(rpy2.robjects.numpy2ri,'activate'): rpy2.robjects.numpy2ri.activate() RRuntimeError = rpy2.robjects.rinterface.RRuntimeError r = rpy2.robjects.r r.library('elasticnet') from mvpa2.support.rpy2_addons import Rrx2 # local imports from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples, \ FailedToPredictError from mvpa2.base.learner import FailedToTrainError from mvpa2.measures.base import Sensitivity if __debug__: from mvpa2.base import debug class ENET(Classifier): """Elastic-Net regression (ENET) `Classifier`. Elastic-Net is the model selection algorithm from: :ref:`Zou and Hastie (2005) ` 'Regularization and Variable Selection via the Elastic Net' Journal of the Royal Statistical Society, Series B, 67, 301-320. Similar to SMLR, it performs a feature selection while performing classification, but instead of starting with all features, it starts with none and adds them in, which is similar to boosting. Unlike LARS it has both L1 and L2 regularization (instead of just L1). This means that while it tries to sparsify the features it also tries to keep redundant features, which may be very very good for fMRI classification. In the true nature of the PyMVPA framework, this algorithm was actually implemented in R by Zou and Hastie and wrapped via RPy. To make use of ENET, you must have R and RPy installed as well as both the lars and elasticnet contributed package. You can install the R and RPy with the following command on Debian-based machines: sudo aptitude install python-rpy python-rpy-doc r-base-dev You can then install the lars and elasticnet package by running R as root and calling: install.packages() """ __tags__ = [ 'enet', 'regression', 'linear', 'has_sensitivity', 'does_feature_selection', 'rpy2' ] def __init__(self, lm=1.0, trace=False, normalize=True, intercept=True, max_steps=None, **kwargs): """ Initialize ENET. See the help in R for further details on the following parameters: Parameters ---------- lm : float Penalty parameter. 0 will perform LARS with no ridge regression. Default is 1.0. trace : boolean Whether to print progress in R as it works. normalize : boolean Whether to normalize the L2 Norm. intercept : boolean Whether to add a non-penalized intercept to the model. max_steps : None or int If not None, specify the total number of iterations to run. Each iteration adds a feature, but leaving it none will add until convergence. """ # init base class first Classifier.__init__(self, **kwargs) # set up the params self.__lm = lm self.__normalize = normalize self.__intercept = intercept self.__trace = trace self.__max_steps = max_steps # pylint friendly initializations self.__weights = None """The beta weights for each feature.""" self.__trained_model = None """The model object after training that will be used for predictions.""" # It does not make sense to calculate a confusion matrix for a # regression self.ca.enable('training_stats', False) def __repr__(self): """String summary of the object """ return """ENET(lm=%s, normalize=%s, intercept=%s, trace=%s, max_steps=%s, enable_ca=%s)""" % \ (self.__lm, self.__normalize, self.__intercept, self.__trace, self.__max_steps, str(self.ca.enabled)) def _train(self, data): """Train the classifier using `data` (`Dataset`). """ targets = data.sa[self.get_space()].value[:, np.newaxis] enet_kwargs = {} if self.__max_steps is not None: enet_kwargs['max.steps'] = self.__max_steps try: self.__trained_model = trained_model = \ r.enet(data.samples, targets, self.__lm, normalize=self.__normalize, intercept=self.__intercept, trace=self.__trace, **enet_kwargs) except RRuntimeError, e: raise FailedToTrainError, \ "Failed to predict on %s using %s. Exceptions was: %s" \ % (data, self, e) # find the step with the lowest Cp (risk) # it is often the last step if you set a max_steps # must first convert dictionary to array # Cp_vals = np.asarray([trained_model['Cp'][str(x)] # for x in range(len(trained_model['Cp']))]) # self.__lowest_Cp_step = Cp_vals.argmin() # set the weights to the last step beta_pure = np.asanyarray(Rrx2(trained_model, 'beta.pure')) self.__beta_pure_shape = beta_pure.shape self.__weights = np.zeros(data.nfeatures, dtype=beta_pure.dtype) ind = np.asanyarray(Rrx2(trained_model, 'allset'))-1 self.__weights[ind] = beta_pure[-1,:] # # set the weights to the final state # self.__weights = trained_model['beta'][-1,:] @accepts_dataset_as_samples def _predict(self, data): """Predict the output for the provided data. """ # predict with the final state (i.e., the last step) try: res = r.predict(self.__trained_model, data, mode='step', type='fit', s=rpy2.robjects.IntVector(self.__beta_pure_shape)) fit = np.asanyarray(Rrx2(res, 'fit'))[:, -1] except RRuntimeError, e: raise FailedToPredictError, \ "Failed to predict on %s using %s. Exceptions was: %s" \ % (data, self, e) if len(fit.shape) == 0: # if we just got 1 sample with a scalar fit = fit.reshape( (1,) ) self.ca.estimates = fit # charge conditional attribute return fit ##REF: Name was automagically refactored def _get_feature_ids(self): """Return ids of the used features """ return np.where(np.abs(self.__weights)>0)[0] ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, **kwargs): """Returns a sensitivity analyzer for ENET.""" return ENETWeights(self, **kwargs) weights = property(lambda self: self.__weights) class ENETWeights(Sensitivity): """`SensitivityAnalyzer` that reports the weights ENET trained on a given `Dataset`. """ _LEGAL_CLFS = [ ENET ] def _call(self, dataset=None): """Extract weights from ENET classifier. ENET always has weights available, so nothing has to be computed here. """ clf = self.clf weights = clf.weights if __debug__: debug('ENET', "Extracting weights for ENET - "+ "Result: min=%f max=%f" %\ (np.min(weights), np.max(weights))) return weights pymvpa2-2.6.4/mvpa2/clfs/gda.py000066400000000000000000000204101323370031300161720ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Gaussian Discriminant Analyses: LDA and QDA Basic implementation at the moment: no data sphering, nor dimensionality reduction tricks are in place ATM """ """ TODO: * too much in common with GNB -- LDA/QDA/GNB could reuse much of machinery * provide actual probabilities computation as in GNB * LDA/QDA -- make use of data sphering and may be operating in the subspace of centroids Was based on GNB code """ __docformat__ = 'restructuredtext' import numpy as np from numpy import ones, zeros, sum, abs, isfinite, dot from mvpa2.base import warning, externals from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.base.learner import DegenerateInputError from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureChoice from mvpa2.base.state import ConditionalAttribute #from mvpa2.measures.base import Sensitivity if __debug__: from mvpa2.base import debug __all__ = [ "LDA", "QDA" ] class GDA(Classifier): """Gaussian Discriminant Analysis -- base for LDA and QDA """ __tags__ = ['binary', 'multiclass', 'oneclass'] prior = Parameter('laplacian_smoothing', constraints=EnsureChoice('laplacian_smoothing', 'uniform', 'ratio'), doc="""How to compute prior distribution.""") allow_pinv = Parameter(True, constraints='bool', doc="""Allow pseudo-inverse in case of degenerate covariance(s).""") def __init__(self, **kwargs): """Initialize a GDA classifier. """ # init base class first Classifier.__init__(self, **kwargs) # pylint friendly initializations self.means = None """Means of features per class""" self.cov = None """Co-variances per class, but "vars" is taken ;)""" self.ulabels = None """Labels classifier was trained on""" self.priors = None """Class probabilities""" self.nsamples_per_class = None """Number of samples per class - used by derived classes""" # Define internal state of classifier self._norm_weight = None def _get_priors(self, nlabels, nsamples, nsamples_per_class): """Return prior probabilities given data """ prior = self.params.prior if prior == 'uniform': priors = np.ones((nlabels,))/nlabels elif prior == 'laplacian_smoothing': priors = (1+np.squeeze(nsamples_per_class)) \ / (float(nsamples) + nlabels) elif prior == 'ratio': priors = np.squeeze(nsamples_per_class) / float(nsamples) else: raise ValueError, \ "No idea on how to handle '%s' way to compute priors" \ % self.params.prior return np.atleast_1d(priors) def _train(self, dataset): """Train the classifier using `dataset` (`Dataset`). """ params = self.params targets_sa_name = self.get_space() targets_sa = dataset.sa[targets_sa_name] # get the dataset information into easy vars X = dataset.samples labels = targets_sa.value self.ulabels = ulabels = targets_sa.unique nlabels = len(ulabels) label2index = dict((l, il) for il, l in enumerate(ulabels)) # set the feature dimensions nsamples = len(X) nfeatures = dataset.nfeatures self.means = means = \ np.zeros((nlabels, nfeatures)) # degenerate dimension are added for easy broadcasting later on # XXX might want to remove -- for now taken from GNB as is self.nsamples_per_class = nsamples_per_class \ = np.zeros((nlabels, 1)) self.cov = cov = \ np.zeros((nlabels, nfeatures, nfeatures)) # Estimate cov # better loop than repmat! ;) for l, il in label2index.iteritems(): Xl = X[labels == l] nsamples_per_class[il] = len(Xl) # TODO: degenerate case... no samples for known label for # some reason? means[il] = np.mean(Xl, axis=0) # since we have means already lets do manually cov here Xldm = Xl - means[il] cov[il] = np.dot(Xldm.T, Xldm) # scaling will be done correspondingly in LDA or QDA # Store prior probabilities self.priors = self._get_priors(nlabels, nsamples, nsamples_per_class) if __debug__ and 'GDA' in debug.active: debug('GDA', "training finished on data.shape=%s " % (X.shape, ) + "min:max(data)=%f:%f" % (np.min(X), np.max(X))) def _untrain(self): """Untrain classifier and reset all learnt params """ self.means = None self.cov = None self.ulabels = None self.priors = None super(GDA, self)._untrain() @accepts_dataset_as_samples def _predict(self, data): """Predict the output for the provided data. """ params = self.params self.ca.estimates = prob_cs_cp = self._g_k(data) # Take the class with maximal (log)probability # XXX in GNB it is axis=0, i.e. classes were first winners = prob_cs_cp.argmax(axis=1) predictions = [self.ulabels[c] for c in winners] if __debug__ and 'GDA' in debug.active: debug('GDA', "predict on data.shape=%s min:max(data)=%f:%f " % (data.shape, np.min(data), np.max(data))) return predictions def _inv(self, cov): try: return np.linalg.inv(cov) except Exception, e: if self.params.allow_pinv: try: return np.linalg.pinv(cov) except Exception, e: pass raise DegenerateInputError, \ "Data is probably singular, since inverse fails. Got %s"\ % (e,) class LDA(GDA): """Linear Discriminant Analysis. """ __tags__ = GDA.__tags__ + ['linear', 'lda'] def _untrain(self): self._w = None self._b = None super(LDA, self)._untrain() def _train(self, dataset): super(LDA, self)._train(dataset) nlabels = len(self.ulabels) # Sum and scale the covariance self.cov = cov = \ np.sum(self.cov, axis=0) \ / (np.sum(self.nsamples_per_class) - nlabels) # For now as simple as that -- see notes on top covi = self._inv(cov) # Precompute and store the actual separating hyperplane and offset self._w = np.dot(covi, self.means.T) self._b = b = np.zeros((nlabels,)) for il in xrange(nlabels): m = self.means[il] b[il] = np.log(self.priors[il]) - 0.5 * np.dot(np.dot(m.T, covi), m) def _g_k(self, data): """Return decision function values""" return np.dot(data, self._w) + self._b class QDA(GDA): """Quadratic Discriminant Analysis. """ __tags__ = GDA.__tags__ + ['non-linear', 'qda'] def _untrain(self): # XXX theoretically we could use the same _w although with # different "content" self._icov = None self._b = None super(QDA, self)._untrain() def _train(self, dataset): super(QDA, self)._train(dataset) # XXX should we drag cov around at all then? self._icov = np.zeros(self.cov.shape) for ic, cov in enumerate(self.cov): cov /= float(self.nsamples_per_class[ic]) self._icov[ic] = self._inv(cov) self._b = np.array([np.log(p) - 0.5 * np.log(np.linalg.det(c)) for p,c in zip(self.priors, self.cov)]) def _g_k(self, data): """Return decision function values""" res = [] for m, covi, b in zip(self.means, self._icov, self._b): dm = data - m res.append(b - 0.5 * np.sum(np.dot(dm, covi) * dm, axis=1)) return np.array(res).T pymvpa2-2.6.4/mvpa2/clfs/glmnet.py000066400000000000000000000332251323370031300167350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """GLM-Net (GLMNET) regression and classifier.""" __docformat__ = 'restructuredtext' # system imports import numpy as np import mvpa2.base.externals as externals # do conditional to be able to build module reference if externals.exists('glmnet', raise_=True): import rpy2.robjects import rpy2.robjects.numpy2ri if hasattr(rpy2.robjects.numpy2ri,'activate'): rpy2.robjects.numpy2ri.activate() RRuntimeError = rpy2.robjects.rinterface.RRuntimeError r = rpy2.robjects.r r.library('glmnet') from mvpa2.support.rpy2_addons import Rrx2 # local imports from mvpa2.base import warning from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.base.learner import FailedToTrainError from mvpa2.measures.base import Sensitivity from mvpa2.base.param import Parameter from mvpa2.base.constraints import * from mvpa2.datasets.base import Dataset if __debug__: from mvpa2.base import debug def _label2indlist(labels, ulabels): """Convert labels to list of unique label indicies starting at 1. """ # allocate for the new one-of-M labels new_labels = np.zeros(len(labels), dtype=np.int) # loop and convert to one-of-M for i, c in enumerate(ulabels): new_labels[labels == c] = i+1 return [str(l) for l in new_labels.tolist()] def _label2oneofm(labels, ulabels): """Convert labels to one-of-M form. TODO: Might be useful elsewhere so could migrate into misc/ """ # allocate for the new one-of-M labels new_labels = np.zeros((len(labels), len(ulabels))) # loop and convert to one-of-M for i, c in enumerate(ulabels): new_labels[labels == c, i] = 1 return new_labels class _GLMNET(Classifier): """GLM-Net regression (GLMNET) `Classifier`. GLM-Net is the model selection algorithm from: Friedman, J., Hastie, T. and Tibshirani, R. (2008) Regularization Paths for Generalized Linear Models via Coordinate Descent. http://www-stat.stanford.edu/~hastie/Papers/glmnet.pdf To make use of GLMNET, you must have R and RPy2 installed as well as the glmnet contributed package. You can install the R and RPy2 with the following command on Debian-based machines:: sudo aptitude install python-rpy2 r-base-dev You can then install the glmnet package by running R as root and calling:: install.packages() """ __tags__ = [ 'glmnet', 'linear', 'has_sensitivity', 'does_feature_selection', 'rpy2' ] family = Parameter('gaussian', constraints=EnsureChoice('gaussian', 'multinomial'), ro=True, doc="""Response type of your targets (either 'gaussian' for regression or 'multinomial' for classification).""") alpha = Parameter(1.0, constraints=EnsureFloat() & EnsureRange(min=0.01, max=1.0), doc="""The elastic net mixing parameter. Larger values will give rise to less L2 regularization, with alpha=1.0 as a true LASSO penalty.""") nlambda = Parameter(100, constraints=EnsureInt() & EnsureRange(min=1), doc="""Maximum number of lambdas to calculate before stopping if not converged.""") standardize = Parameter(True, constraints='bool', doc="""Whether to standardize the variables prior to fitting.""") thresh = Parameter(1e-4, constraints=EnsureFloat() & EnsureRange(min=1e-10, max=1.0), doc="""Convergence threshold for coordinate descent.""") pmax = Parameter(None, constraints=((EnsureInt() & EnsureRange(min=1)) | EnsureNone()), doc="""Limit the maximum number of variables ever to be nonzero.""") maxit = Parameter(100, constraints=EnsureInt() & EnsureRange(min=10), doc="""Maximum number of outer-loop iterations for 'multinomial' families.""") model_type = Parameter('covariance', constraints=EnsureChoice('covariance', 'naive'), doc="""'covariance' saves all inner-products ever computed and can be much faster than 'naive'. The latter can be more efficient for nfeatures>>nsamples situations.""") def __init__(self, **kwargs): """ Initialize GLM-Net. See the help in R for further details on the parameters """ # init base class first Classifier.__init__(self, **kwargs) # pylint friendly initializations self._utargets = None self.__weights = None """The beta weights for each feature.""" self.__trained_model = None """The model object after training that will be used for predictions.""" self.__last_lambda = None """Lambda obtained on the last step""" # def __repr__(self): # """String summary of the object # """ # return """ENET(lm=%s, normalize=%s, intercept=%s, trace=%s, max_steps=%s, enable_ca=%s)""" % \ # (self.__lm, # self.__normalize, # self.__intercept, # self.__trace, # self.__max_steps, # str(self.ca.enabled)) def _train(self, dataset): """Train the classifier using `data` (`Dataset`). """ # process targets based on the model family targets = dataset.sa[self.get_space()].value if self.params.family == 'gaussian': # do nothing, just save the targets as a list #targets = targets.tolist() self._utargets = None elif self.params.family == 'multinomial': # turn lables into list of range values starting at 1 #targets = _label2indlist(dataset.targets, # dataset.uniquetargets) targets_unique = dataset.sa[self.get_space()].unique targets = _label2oneofm(targets, targets_unique) # save some properties of the data/classification self._utargets = targets_unique.copy() # process the pmax if self.params.pmax is None: # set it to the num features pmax = dataset.nfeatures else: # use the value pmax = self.params.pmax try: self.__trained_model = trained_model = \ r.glmnet(dataset.samples, targets, family=self.params.family, alpha=self.params.alpha, nlambda=self.params.nlambda, standardize=self.params.standardize, thresh=self.params.thresh, pmax=pmax, maxit=self.params.maxit, type=self.params.model_type) except RRuntimeError, e: raise FailedToTrainError, \ "Failed to train %s on %s. Got '%s' during call r.glmnet()." \ % (self, dataset, e) self.__last_lambda = last_lambda = \ np.asanyarray(Rrx2(trained_model, 'lambda'))[-1] # set the weights to the last step weights = r.coef(trained_model, s=last_lambda) if self.params.family == 'multinomial': self.__weights = np.hstack([np.array(r['as.matrix'](weight))[1:] for weight in weights]) elif self.params.family == 'gaussian': self.__weights = np.array(r['as.matrix'](weights))[1:, 0] else: raise NotImplementedError, \ "Somehow managed to get here with family %s." % \ (self.params.family,) @accepts_dataset_as_samples def _predict(self, data): """ Predict the output for the provided data. """ # predict with standard method values = np.array(r.predict(self.__trained_model, newx=data, type='link', s=self.__last_lambda)) # predict with the final state (i.e., the last step) classes = None if self.params.family == 'multinomial': # remove last dimension of values values = values[:, :, 0] # get the classes too (they are 1-indexed) class_ind = np.array(r.predict(self.__trained_model, newx=data, type='class', s=self.__last_lambda)) # convert to 0-based ints class_ind = (class_ind-1).astype('int') # convert to actual targets # XXX If just one sample is predicted, the converted predictions # array is just 1D, hence it yields an IndexError on [:,0] # Modified to .squeeze() which should do the same. # Please acknowledge and remove this comment. #classes = self._utargets[class_ind][:,0] classes = self._utargets[class_ind].squeeze() else: # is gaussian, so just remove last dim of values values = values[:, 0] # values need to be set anyways if values state is enabled self.ca.estimates = values if classes is not None: # set the values and return none return classes else: # return the values as predictions return values def _init_internals(self): """Reinitialize all internals """ self._utargets = None self.__weights = None """The beta weights for each feature.""" self.__trained_model = None """The model object after training that will be used for predictions.""" self.__last_lambda = None """Lambda obtained on the last step""" def _untrain(self): super(_GLMNET, self)._untrain() self._init_internals() ##REF: Name was automagically refactored def _get_feature_ids(self): """Return ids of the used features """ return np.where(np.abs(self.__weights)>0)[0] ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, **kwargs): """Returns a sensitivity analyzer for GLMNET.""" return GLMNETWeights(self, **kwargs) weights = property(lambda self: self.__weights) class GLMNETWeights(Sensitivity): """`SensitivityAnalyzer` that reports the weights GLMNET trained on a given `Dataset`. """ _LEGAL_CLFS = [ _GLMNET ] def _call(self, dataset=None): """Extract weights from GLMNET classifier. GLMNET always has weights available, so nothing has to be computed here. """ clf = self.clf weights = clf.weights if __debug__: debug('GLMNET', "Extracting weights for GLMNET - "+ "Result: min=%f max=%f" %\ (np.min(weights), np.max(weights))) #return weights if clf.params.family == 'multinomial': return Dataset(weights.T, sa={clf.get_space(): clf._utargets}) else: return Dataset(weights[np.newaxis]) class GLMNET_R(_GLMNET): """ GLM-NET Gaussian Regression Classifier. This is the GLM-NET algorithm from Friedman, J., Hastie, T. and Tibshirani, R. (2008) Regularization Paths for Generalized Linear Models via Coordinate Descent. http://www-stat.stanford.edu/~hastie/Papers/glmnet.pdf parameterized to be a regression. See GLMNET_C for the multinomial classifier version. """ __tags__ = _GLMNET.__tags__ + ['regression'] def __init__(self, **kwargs): """ Initialize GLM-Net. See the help in R for further details on the parameters """ # make sure they didn't specify incompatible model regr_family = 'gaussian' family = kwargs.pop('family', regr_family).lower() if family != regr_family: warning('You specified the parameter family=%s, but we ' 'force this to be "%s" for regression.' % (family, regr_family)) family = regr_family # init base class first, forcing regression _GLMNET.__init__(self, family=family, **kwargs) class GLMNET_C(_GLMNET): """ GLM-NET Multinomial Classifier. This is the GLM-NET algorithm from Friedman, J., Hastie, T. and Tibshirani, R. (2008) Regularization Paths for Generalized Linear Models via Coordinate Descent. http://www-stat.stanford.edu/~hastie/Papers/glmnet.pdf parameterized to be a multinomial classifier. See GLMNET_Class for the gaussian regression version. """ __tags__ = _GLMNET.__tags__ + ['multiclass', 'binary'] def __init__(self, **kwargs): """ Initialize GLM-Net multinomial classifier. See the help in R for further details on the parameters """ # make sure they didn't specify regression if kwargs.pop('family', None) is not None: warning('You specified the "family" parameter, but we ' 'force this to be "multinomial".') # init base class first, forcing regression _GLMNET.__init__(self, family='multinomial', **kwargs) pymvpa2-2.6.4/mvpa2/clfs/gnb.py000066400000000000000000000300111323370031300162030ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Gaussian Naive Bayes Classifier Basic implementation of Gaussian Naive Bayes classifier. """ """ TODO: for now all estimates are allocated at the first level of GNB instance (e.g. self.priors, etc) -- move them deeper or into a corresponding "Collection"? The same for GNBSearchlight """ __docformat__ = 'restructuredtext' import numpy as np from numpy import ones, zeros, sum, abs, isfinite, dot from mvpa2.base import warning, externals from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.base.param import Parameter from mvpa2.base.state import ConditionalAttribute from mvpa2.base.constraints import EnsureChoice #from mvpa2.measures.base import Sensitivity if __debug__: from mvpa2.base import debug __all__ = [ "GNB" ] class GNB(Classifier): """Gaussian Naive Bayes `Classifier`. `GNB` is a probabilistic classifier relying on Bayes rule to estimate posterior probabilities of labels given the data. Naive assumption in it is an independence of the features, which allows to combine per-feature likelihoods by a simple product across likelihoods of "independent" features. See http://en.wikipedia.org/wiki/Naive_bayes for more information. Provided here implementation is "naive" on its own -- various aspects could be improved, but it has its own advantages: - implementation is simple and straightforward - no data copying while considering samples of specific class - provides alternative ways to assess prior distribution of the classes in the case of unbalanced sets of samples (see parameter `prior`) - makes use of NumPy broadcasting mechanism, so should be relatively efficient - should work for any dimensionality of samples `GNB` is listed both as linear and non-linear classifier, since specifics of separating boundary depends on the data and/or parameters: linear separation is achieved whenever samples are balanced (or ``prior='uniform'``) and features have the same variance across different classes (i.e. if ``common_variance=True`` to enforce this). Whenever decisions are made based on log-probabilities (parameter ``logprob=True``, which is the default), then conditional attribute `values`, if enabled, would also contain log-probabilities. Also mention that normalization by the evidence (P(data)) is disabled by default since it has no impact per se on classification decision. You might like to set parameter normalize to True if you want to access properly scaled probabilities in `values` conditional attribute. """ # XXX decide when should we set corresponding internal, # since it depends actually on the data -- no clear way, # so set both linear and non-linear __tags__ = [ 'gnb', 'linear', 'non-linear', 'binary', 'multiclass', 'oneclass' ] common_variance = Parameter(False, constraints='bool', doc="""Use the same variance across all classes.""") prior = Parameter('laplacian_smoothing', constraints=EnsureChoice('laplacian_smoothing', 'uniform', 'ratio'), doc="""How to compute prior distribution.""") logprob = Parameter(True, constraints='bool', doc="""Operate on log probabilities. Preferable to avoid unneeded exponentiation and loose precision. If set, logprobs are stored in `values`""") normalize = Parameter(False, constraints='bool', doc="""Normalize (log)prob by P(data). Requires probabilities thus for `logprob` case would require exponentiation of 'logprob's, thus disabled by default since does not impact classification output. """) def __init__(self, **kwargs): """Initialize an GNB classifier. """ # init base class first Classifier.__init__(self, **kwargs) # pylint friendly initializations self.means = None """Means of features per class""" self.variances = None """Variances per class, but "vars" is taken ;)""" self.ulabels = None """Labels classifier was trained on""" self.priors = None """Class probabilities""" # Define internal state of classifier self._norm_weight = None def _get_priors(self, nlabels, nsamples, nsamples_per_class): """Return prior probabilities given data """ # helper function - squash all dimensions but 1 squash = lambda x: np.atleast_1d(x.squeeze()) prior = self.params.prior if prior == 'uniform': priors = np.ones((nlabels,))/nlabels elif prior == 'laplacian_smoothing': priors = (1+squash(nsamples_per_class)) \ / (float(nsamples) + nlabels) elif prior == 'ratio': priors = squash(nsamples_per_class) / float(nsamples) else: raise ValueError( "No idea on how to handle '%s' way to compute priors" % self.params.prior) return priors def _train(self, dataset): """Train the classifier using `dataset` (`Dataset`). """ params = self.params targets_sa_name = self.get_space() targets_sa = dataset.sa[targets_sa_name] # get the dataset information into easy vars X = dataset.samples labels = targets_sa.value self.ulabels = ulabels = targets_sa.unique nlabels = len(ulabels) label2index = dict((l, il) for il, l in enumerate(ulabels)) # set the feature dimensions nsamples = len(X) s_shape = X.shape[1:] # shape of a single sample self.means = means = \ np.zeros((nlabels, ) + s_shape) self.variances = variances = \ np.zeros((nlabels, ) + s_shape) # degenerate dimension are added for easy broadcasting later on nsamples_per_class = np.zeros((nlabels,) + (1,)*len(s_shape)) # Estimate means and number of samples per each label for s, l in zip(X, labels): il = label2index[l] # index of the label nsamples_per_class[il] += 1 means[il] += s # helper function - squash all dimensions but 1 squash = lambda x: np.atleast_1d(x.squeeze()) ## Actually compute the means non0labels = (squash(nsamples_per_class) != 0) means[non0labels] /= nsamples_per_class[non0labels] # Store prior probabilities self.priors = self._get_priors(nlabels, nsamples, nsamples_per_class) # Estimate variances # better loop than repmat! ;) for s, l in zip(X, labels): il = label2index[l] # index of the label variances[il] += (s - means[il])**2 ## Actually compute the variances if params.common_variance: # we need to get global std cvar = np.sum(variances, axis=0)/nsamples # sum across labels # broadcast the same variance across labels variances[:] = cvar else: variances[non0labels] /= nsamples_per_class[non0labels] # Precompute and store weighting coefficient for Gaussian if params.logprob: # it would be added to exponent self._norm_weight = -0.5 * np.log(2*np.pi*variances) else: self._norm_weight = 1.0/np.sqrt(2*np.pi*variances) if __debug__ and 'GNB' in debug.active: debug('GNB', "training finished on data.shape=%s " % (X.shape, ) + "min:max(data)=%f:%f" % (np.min(X), np.max(X))) def _untrain(self): """Untrain classifier and reset all learnt params """ self.means = None self.variances = None self.ulabels = None self.priors = None super(GNB, self)._untrain() @accepts_dataset_as_samples def _predict(self, data): """Predict the output for the provided data. """ params = self.params # argument of exponentiation scaled_distances = \ -0.5 * (((data - self.means[:, np.newaxis, ...])**2) \ / self.variances[:, np.newaxis, ...]) if params.logprob: # if self.params.common_variance: # XXX YOH: # For decision there is no need to actually compute # properly scaled p, ie 1/sqrt(2pi * sigma_i) could be # simply discarded since it is common across features AND # classes # For completeness -- computing everything now even in logprob lprob_csfs = self._norm_weight[:, np.newaxis, ...] \ + scaled_distances # XXX for now just cut/paste with different operators, but # could just bind them and reuse in the same equations # Naive part -- just a product of probabilities across features ## First we need to reshape to get class x samples x features lprob_csf = lprob_csfs.reshape( lprob_csfs.shape[:2] + (-1,)) ## Now -- sum across features lprob_cs = lprob_csf.sum(axis=2) # Incorporate class probabilities: prob_cs_cp = lprob_cs + np.log(self.priors[:, np.newaxis]) else: # Just a regular Normal distribution with per # feature/class mean and variances prob_csfs = \ self._norm_weight[:, np.newaxis, ...] \ * np.exp(scaled_distances) # Naive part -- just a product of probabilities across features ## First we need to reshape to get class x samples x features prob_csf = prob_csfs.reshape( prob_csfs.shape[:2] + (-1,)) ## Now -- product across features prob_cs = prob_csf.prod(axis=2) # Incorporate class probabilities: prob_cs_cp = prob_cs * self.priors[:, np.newaxis] # Normalize by evidence P(data) if params.normalize: if params.logprob: prob_cs_cp_real = np.exp(prob_cs_cp) else: prob_cs_cp_real = prob_cs_cp prob_s_cp_marginals = np.sum(prob_cs_cp_real, axis=0) if params.logprob: prob_cs_cp -= np.log(prob_s_cp_marginals) else: prob_cs_cp /= prob_s_cp_marginals # Take the class with maximal (log)probability winners = prob_cs_cp.argmax(axis=0) predictions = [self.ulabels[c] for c in winners] # set to the probabilities per class self.ca.estimates = prob_cs_cp.T if __debug__ and 'GNB' in debug.active: debug('GNB', "predict on data.shape=%s min:max(data)=%f:%f " % (data.shape, np.min(data), np.max(data))) return predictions # XXX Later come up with some # could be a simple t-test maps using distributions # per each class #def get_sensitivity_analyzer(self, **kwargs): # """Returns a sensitivity analyzer for GNB.""" # return GNBWeights(self, **kwargs) # XXX Is there any reason to use properties? #means = property(lambda self: self.__biases) #variances = property(lambda self: self.__weights) ## class GNBWeights(Sensitivity): ## """`SensitivityAnalyzer` that reports the weights GNB trained ## on a given `Dataset`. ## """ ## _LEGAL_CLFS = [ GNB ] ## def _call(self, dataset=None): ## """Extract weights from GNB classifier. ## GNB always has weights available, so nothing has to be computed here. ## """ ## clf = self.clf ## means = clf.means ## XXX we can do something better ;) ## return means pymvpa2-2.6.4/mvpa2/clfs/gpr.py000066400000000000000000000606441323370031300162440ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Gaussian Process Regression (GPR).""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals, warning from mvpa2.base.state import ConditionalAttribute from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureFloat, EnsureNone, EnsureRange from mvpa2.kernels.np import SquaredExponentialKernel, GeneralizedLinearKernel, \ LinearKernel from mvpa2.measures.base import Sensitivity from mvpa2.misc.exceptions import InvalidHyperparameterError from mvpa2.datasets import Dataset, dataset_wizard if externals.exists("scipy", raise_=True): from scipy.linalg import cho_solve as SLcho_solve from scipy.linalg import cholesky as SLcholesky import scipy.linalg as SL # Some local binding for bits of speed up SLAError = SL.basic.LinAlgError if __debug__: from mvpa2.base import debug # Some local bindings for bits of speed up from numpy import array, asarray Nlog = np.log Ndot = np.dot Ndiag = np.diag NLAcholesky = np.linalg.cholesky NLAsolve = np.linalg.solve NLAError = np.linalg.linalg.LinAlgError eps64 = np.finfo(np.float64).eps # Some precomputed items. log is relatively expensive _halflog2pi = 0.5 * Nlog(2 * np.pi) def _SLcholesky_autoreg(C, nsteps=None, **kwargs): """Simple wrapper around cholesky to incrementally regularize the matrix until successful computation. For `nsteps` we boost diagonal 10-fold each time from the 'epsilon' of the respective dtype. If None -- would proceed until reaching 1. """ if nsteps is None: nsteps = -int(np.floor(np.log10(np.finfo(float).eps))) result = None for step in xrange(nsteps): epsilon_value = (10**step) * np.finfo(C.dtype).eps epsilon = epsilon_value * np.eye(C.shape[0]) try: result = SLcholesky(C + epsilon, lower=True) except SLAError, e: warning("Cholesky decomposition lead to failure: %s. " "As requested, performing auto-regularization but " "for better control you might prefer to regularize " "yourself by providing lm parameter to GPR" % e) if step < nsteps-1: if __debug__: debug("GPR", "Failed to obtain cholesky on " "auto-regularization step %d value %g. Got %s." " Boosting lambda more to reg. C." % (step, epsilon_value, e)) continue else: raise if result is None: # no loop was done for some reason result = SLcholesky(C, lower=True) return result class GPR(Classifier): """Gaussian Process Regression (GPR). """ predicted_variances = ConditionalAttribute(enabled=False, doc="Variance per each predicted value") log_marginal_likelihood = ConditionalAttribute(enabled=False, doc="Log Marginal Likelihood") log_marginal_likelihood_gradient = ConditionalAttribute(enabled=False, doc="Log Marginal Likelihood Gradient") __tags__ = [ 'gpr', 'regression', 'retrainable' ] # NOTE XXX Parameters of the classifier. Values available as # clf.parameter or clf.params.parameter, or as # clf.params['parameter'] (as the full Parameter object) # # __doc__ and __repr__ for class is conviniently adjusted to # reflect values of those params # Kernel machines/classifiers should be refactored also to behave # the same and define kernel parameter appropriately... TODO, but SVMs # already kinda do it nicely ;-) sigma_noise = Parameter(0.001, constraints=EnsureFloat() & EnsureRange(min=1e-10), doc="the standard deviation of the gaussian noise.") # XXX For now I don't introduce kernel parameter since yet to unify # kernel machines #kernel = Parameter(None, allowedtype='Kernel', # doc="Kernel object defining the covariance between instances. " # "(Defaults to KernelSquaredExponential if None in arguments)") lm = Parameter(None, constraints=((EnsureFloat() & EnsureRange(min=0.0)) | EnsureNone()), doc="""The regularization term lambda. Increase this when the kernel matrix is not positive definite. If None, some regularization will be provided upon necessity""") def __init__(self, kernel=None, **kwargs): """Initialize a GPR regression analysis. Parameters ---------- kernel : Kernel a kernel object defining the covariance between instances. (Defaults to SquaredExponentialKernel if None in arguments) """ # init base class first Classifier.__init__(self, **kwargs) # It does not make sense to calculate a confusion matrix for a GPR # XXX it does ;) it will be a RegressionStatistics actually ;-) # So if someone desires -- let him have it # self.ca.enable('training_stats', False) # set kernel: if kernel is None: kernel = SquaredExponentialKernel() debug("GPR", "No kernel was provided, falling back to default: %s" % kernel) self.__kernel = kernel # append proper clf_internal depending on the kernel # TODO: add "__tags__" to kernels since the check # below does not scale if isinstance(kernel, (GeneralizedLinearKernel, LinearKernel)): self.__tags__ += ['linear'] else: self.__tags__ += ['non-linear'] if externals.exists('openopt') \ and not 'has_sensitivity' in self.__tags__: self.__tags__ += ['has_sensitivity'] # No need to initialize conditional attributes. Unless they got set # they would raise an exception self.predicted_variances = # None self.log_marginal_likelihood = None self._init_internals() pass def _init_internals(self): """Reset some internal variables to None. To be used in constructor and untrain() """ self._train_fv = None self._labels = None self._km_train_train = None self._train_labels = None self._alpha = None self._L = None self._LL = None # XXX EO: useful for model selection but not working in general # self.__kernel.reset() pass def __repr__(self): """String summary of the object """ return super(GPR, self).__repr__( prefixes=['kernel=%s' % self.__kernel]) def compute_log_marginal_likelihood(self): """ Compute log marginal likelihood using self.train_fv and self.targets. """ if __debug__: debug("GPR", "Computing log_marginal_likelihood") self.ca.log_marginal_likelihood = \ -0.5*Ndot(self._train_labels, self._alpha) - \ Nlog(self._L.diagonal()).sum() - \ self._km_train_train.shape[0] * _halflog2pi return self.ca.log_marginal_likelihood def compute_gradient_log_marginal_likelihood(self): """Compute gradient of the log marginal likelihood. This version use a more compact formula provided by Williams and Rasmussen book. """ # XXX EO: check whether the precomputed self.alpha self.Kinv # are actually the ones corresponding to the hyperparameters # used to compute this gradient! # YYY EO: currently this is verified outside gpr.py but it is # not an efficient solution. # XXX EO: Do some memoizing since it could happen that some # hyperparameters are kept constant by user request, so we # don't need (somtimes) to recompute the corresponding # gradient again. COULD THIS BE TAKEN INTO ACCOUNT BY THE # NEW CACHED KERNEL INFRASTRUCTURE? # self.Kinv = np.linalg.inv(self._C) # Faster: Kinv = SLcho_solve(self._LL, np.eye(self._L.shape[0])) alphalphaT = np.dot(self._alpha[:,None], self._alpha[None,:]) tmp = alphalphaT - Kinv # Pass tmp to __kernel and let it compute its gradient terms. # This scales up to huge number of hyperparameters: grad_LML_hypers = self.__kernel.compute_lml_gradient( tmp, self._train_fv) grad_K_sigma_n = 2.0*self.params.sigma_noise*np.eye(tmp.shape[0]) # Add the term related to sigma_noise: # grad_LML_sigma_n = 0.5 * np.trace(np.dot(tmp,grad_K_sigma_n)) # Faster formula: tr(AB) = (A*B.T).sum() grad_LML_sigma_n = 0.5 * (tmp * (grad_K_sigma_n).T).sum() lml_gradient = np.hstack([grad_LML_sigma_n, grad_LML_hypers]) self.log_marginal_likelihood_gradient = lml_gradient return lml_gradient def compute_gradient_log_marginal_likelihood_logscale(self): """Compute gradient of the log marginal likelihood when hyperparameters are in logscale. This version use a more compact formula provided by Williams and Rasmussen book. """ # Kinv = np.linalg.inv(self._C) # Faster: Kinv = SLcho_solve(self._LL, np.eye(self._L.shape[0])) alphalphaT = np.dot(self._alpha[:,None], self._alpha[None,:]) tmp = alphalphaT - Kinv grad_LML_log_hypers = \ self.__kernel.compute_lml_gradient_logscale(tmp, self._train_fv) grad_K_log_sigma_n = 2.0 * self.params.sigma_noise ** 2 * np.eye(Kinv.shape[0]) # Add the term related to sigma_noise: # grad_LML_log_sigma_n = 0.5 * np.trace(np.dot(tmp, grad_K_log_sigma_n)) # Faster formula: tr(AB) = (A * B.T).sum() grad_LML_log_sigma_n = 0.5 * (tmp * (grad_K_log_sigma_n).T).sum() lml_gradient = np.hstack([grad_LML_log_sigma_n, grad_LML_log_hypers]) self.log_marginal_likelihood_gradient = lml_gradient return lml_gradient ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, flavor='auto', **kwargs): """Returns a sensitivity analyzer for GPR. Parameters ---------- flavor : str What sensitivity to provide. Valid values are 'linear', 'model_select', 'auto'. In case of 'auto' selects 'linear' for linear kernel and 'model_select' for the rest. 'linear' corresponds to GPRLinearWeights and 'model_select' to GRPWeights """ # XXX The following two lines does not work since # self.__kernel is instance of LinearKernel and not # just LinearKernel. How to fix? # YYY yoh is not sure what is the problem... LinearKernel is actually # kernel.LinearKernel so everything shoudl be ok if flavor == 'auto': flavor = ('model_select', 'linear')\ [int(isinstance(self.__kernel, GeneralizedLinearKernel) or isinstance(self.__kernel, LinearKernel))] if __debug__: debug("GPR", "Returning '%s' sensitivity analyzer" % flavor) # Return proper sensitivity if flavor == 'linear': return GPRLinearWeights(self, **kwargs) elif flavor == 'model_select': # sanity check if not ('has_sensitivity' in self.__tags__): raise ValueError, \ "model_select flavor is not available probably " \ "due to not available 'openopt' module" return GPRWeights(self, **kwargs) else: raise ValueError, "Flavor %s is not recognized" % flavor def _train(self, data): """Train the classifier using `data` (`Dataset`). """ # local bindings for faster lookup params = self.params retrainable = params.retrainable if retrainable: newkernel = False newL = False _changedData = self._changedData self._train_fv = train_fv = data.samples # GRP relies on numerical labels # yoh: yeah -- GPR now is purely regression so no conversion # is necessary train_labels = data.sa[self.get_space()].value self._train_labels = train_labels if not retrainable or _changedData['traindata'] \ or _changedData.get('kernel_params', False): if __debug__: debug("GPR", "Computing train train kernel matrix") self.__kernel.compute(train_fv) self._km_train_train = km_train_train = asarray(self.__kernel) newkernel = True if retrainable: self._km_train_test = None # reset to facilitate recomputation else: if __debug__: debug("GPR", "Not recomputing kernel since retrainable and " "nothing has changed") km_train_train = self._km_train_train # reuse if not retrainable or newkernel or _changedData['params']: if __debug__: debug("GPR", "Computing L. sigma_noise=%g" \ % params.sigma_noise) # XXX it seems that we do not need binding to object, but may be # commented out code would return? self._C = km_train_train + \ params.sigma_noise ** 2 * \ np.identity(km_train_train.shape[0], 'd') # The following decomposition could raise # np.linalg.linalg.LinAlgError because of numerical # reasons, due to the too rapid decay of 'self._C' # eigenvalues. In that case we try adding a small constant # to self._C, e.g. epsilon=1.0e-20. It should be a form of # Tikhonov regularization. This is equivalent to adding # little white gaussian noise to data. # # XXX EO: how to choose epsilon? # # Cholesky decomposition is provided by three different # NumPy/SciPy routines (fastest first): # 1) self._LL = scipy.linalg.cho_factor(self._C, lower=True) # self._L = L = np.tril(self._LL[0]) # 2) self._L = scipy.linalg.cholesky(self._C, lower=True) # 3) self._L = numpy.linalg.cholesky(self._C) # Even though 1 is the fastest we choose 2 since 1 does # not return a clean lower-triangular matrix (see docstring). # PBS: I just made it so the KernelMatrix is regularized # all the time. I figured that if ever you were going to # use regularization, you would want to set it yourself # and use the same value for all folds of your data. # YOH: Ideally so, but in real "use cases" some might have no # clue, also our unittests (actually clfs_examples) might # fail without any good reason. So lets return a magic with # an option to forbid any regularization (if lm is None) try: # apply regularization lm, C = params.lm, self._C if lm is not None: epsilon = lm * np.eye(C.shape[0]) self._L = SLcholesky(C + epsilon, lower=True) else: # do 10 attempts to raise each time by 10 self._L = _SLcholesky_autoreg(C, nsteps=None, lower=True) self._LL = (self._L, True) except SLAError: raise SLAError("Kernel matrix is not positive, definite. " "Try increasing the lm parameter.") pass newL = True else: if __debug__: debug("GPR", "Not computing L since kernel, data and params " "stayed the same") # XXX we leave _alpha being recomputed, although we could check # if newL or _changedData['targets'] # if __debug__: debug("GPR", "Computing alpha") # L = self._L # reuse # self._alpha = NLAsolve(L.transpose(), # NLAsolve(L, train_labels)) # Faster: self._alpha = SLcho_solve(self._LL, train_labels) # compute only if the state is enabled if self.ca.is_enabled('log_marginal_likelihood'): self.compute_log_marginal_likelihood() pass if retrainable: # we must assign it only if it is retrainable self.ca.retrained = not newkernel or not newL if __debug__: debug("GPR", "Done training") pass @accepts_dataset_as_samples def _predict(self, data): """ Predict the output for the provided data. """ retrainable = self.params.retrainable ca = self.ca if not retrainable or self._changedData['testdata'] \ or self._km_train_test is None: if __debug__: debug('GPR', "Computing train test kernel matrix") self.__kernel.compute(self._train_fv, data) km_train_test = asarray(self.__kernel) if retrainable: self._km_train_test = km_train_test ca.repredicted = False else: if __debug__: debug('GPR', "Not recomputing train test kernel matrix") km_train_test = self._km_train_test ca.repredicted = True predictions = Ndot(km_train_test.transpose(), self._alpha) if ca.is_enabled('predicted_variances'): # do computation only if conditional attribute was enabled if not retrainable or self._km_test_test is None \ or self._changedData['testdata']: if __debug__: debug('GPR', "Computing test test kernel matrix") self.__kernel.compute(data) km_test_test = asarray(self.__kernel) if retrainable: self._km_test_test = km_test_test else: if __debug__: debug('GPR', "Not recomputing test test kernel matrix") km_test_test = self._km_test_test if __debug__: debug("GPR", "Computing predicted variances") L = self._L # v = NLAsolve(L, km_train_test) # Faster: piv = np.arange(L.shape[0]) v = SL.lu_solve((L.T, piv), km_train_test, trans=1) # self.predicted_variances = \ # Ndiag(km_test_test - Ndot(v.T, v)) \ # + self.sigma_noise**2 # Faster formula: np.diag(Ndot(v.T, v)) = (v**2).sum(0): ca.predicted_variances = Ndiag(km_test_test) - (v ** 2).sum(0) \ + self.params.sigma_noise ** 2 pass if __debug__: debug("GPR", "Done predicting") ca.estimates = predictions return predictions ##REF: Name was automagically refactored def _set_retrainable(self, value, force=False): """Internal function : need to set _km_test_test """ super(GPR, self)._set_retrainable(value, force) if force or (value and value != self.params.retrainable): self._km_test_test = None def _untrain(self): super(GPR, self)._untrain() # XXX might need to take special care for retrainable. later self._init_internals() def set_hyperparameters(self, hyperparameter): """ Set hyperparameters' values. Note that 'hyperparameter' is a sequence so the order of its values is important. First value must be sigma_noise, then other kernel's hyperparameters values follow in the exact order the kernel expect them to be. """ if hyperparameter[0] < self.params['sigma_noise'].min: raise InvalidHyperparameterError() self.params.sigma_noise = hyperparameter[0] if hyperparameter.size > 1: self.__kernel.set_hyperparameters(hyperparameter[1:]) pass return kernel = property(fget=lambda self:self.__kernel) pass class GPRLinearWeights(Sensitivity): """`SensitivityAnalyzer` that reports the weights GPR trained on a given `Dataset`. In case of LinearKernel compute explicitly the coefficients of the linear regression, together with their variances (if requested). Note that the intercept is not computed. """ variances = ConditionalAttribute(enabled=False, doc="Variances of the weights (for GeneralizedLinearKernel)") _LEGAL_CLFS = [ GPR ] def _call(self, dataset): """Extract weights from GPR """ clf = self.clf kernel = clf.kernel train_fv = clf._train_fv if isinstance(kernel, LinearKernel): Sigma_p = 1.0 else: Sigma_p = kernel.params.Sigma_p weights = Ndot(Sigma_p, Ndot(train_fv.T, clf._alpha)) if self.ca.is_enabled('variances'): # super ugly formulas that can be quite surely improved: tmp = np.linalg.inv(clf._L) Kyinv = Ndot(tmp.T, tmp) # XXX in such lengthy matrix manipulations you might better off # using np.matrix where * is a matrix product self.ca.variances = Ndiag( Sigma_p - Ndot(Sigma_p, Ndot(train_fv.T, Ndot(Kyinv, Ndot(train_fv, Sigma_p))))) return Dataset(np.atleast_2d(weights)) if externals.exists('openopt'): from mvpa2.clfs.model_selector import ModelSelector class GPRWeights(Sensitivity): """`SensitivityAnalyzer` that reports the weights GPR trained on a given `Dataset`. """ _LEGAL_CLFS = [ GPR ] def _call(self, ds_): """Extract weights from GPR .. note: Input dataset is not actually used. New dataset is constructed from what is known to the classifier """ clf = self.clf # normalize data: clf._train_labels = (clf._train_labels - clf._train_labels.mean()) \ / clf._train_labels.std() # clf._train_fv = (clf._train_fv-clf._train_fv.mean(0)) \ # /clf._train_fv.std(0) ds = dataset_wizard(samples=clf._train_fv, targets=clf._train_labels) clf.ca.enable("log_marginal_likelihood") ms = ModelSelector(clf, ds) # Note that some kernels does not have gradient yet! # XXX Make it initialize to clf's current hyperparameter values # or may be add ability to specify starting points in the constructor sigma_noise_initial = 1.0e-5 sigma_f_initial = 1.0 length_scale_initial = np.ones(ds.nfeatures)*1.0e4 # length_scale_initial = np.random.rand(ds.nfeatures)*1.0e4 hyp_initial_guess = np.hstack([sigma_noise_initial, sigma_f_initial, length_scale_initial]) fixedHypers = array([0]*hyp_initial_guess.size, dtype=bool) fixedHypers = None problem = ms.max_log_marginal_likelihood( hyp_initial_guess=hyp_initial_guess, optimization_algorithm="scipy_lbfgsb", ftol=1.0e-3, fixedHypers=fixedHypers, use_gradient=True, logscale=True) if __debug__ and 'GPR_WEIGHTS' in debug.active: problem.iprint = 1 lml = ms.solve() weights = 1.0/ms.hyperparameters_best[2:] # weight = 1/length_scale if __debug__: debug("GPR", "%s, train: shape %s, labels %s, min:max %g:%g, " "sigma_noise %g, sigma_f %g" % (clf, clf._train_fv.shape, np.unique(clf._train_labels), clf._train_fv.min(), clf._train_fv.max(), ms.hyperparameters_best[0], ms.hyperparameters_best[1])) return weights pymvpa2-2.6.4/mvpa2/clfs/knn.py000066400000000000000000000222531323370031300162340ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """k-Nearest-Neighbour classifier.""" __docformat__ = 'restructuredtext' import sys # not worthy of externals checking _dict_has_key = sys.version_info >= (2, 5) import numpy as np from mvpa2.base import warning from mvpa2.datasets.base import Dataset from mvpa2.misc.support import indent_doc from mvpa2.base.state import ConditionalAttribute from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.clfs.distance import squared_euclidean_distance __all__ = [ 'kNN' ] if __debug__: from mvpa2.base import debug class kNN(Classifier): """ k-Nearest-Neighbour classifier. This is a simple classifier that bases its decision on the distances between the training dataset samples and the test sample(s). Distances are computed using a customizable distance function. A certain number (`k`)of nearest neighbors is selected based on the smallest distances and the labels of this neighboring samples are fed into a voting function to determine the labels of the test sample. Training a kNN classifier is extremely quick, as no actual training is performed as the training dataset is simply stored in the classifier. All computations are done during classifier prediction. Ties ---- In case if voting procedure results in a tie, it is broken by choosing a class with minimal mean distance to the corresponding k-neighbors. Notes ----- If enabled, kNN stores the votes per class in the 'values' state after calling predict(). """ distances = ConditionalAttribute(enabled=False, doc="Distances computed for each sample") __tags__ = ['knn', 'non-linear', 'binary', 'multiclass', 'oneclass'] def __init__(self, k=2, dfx=squared_euclidean_distance, voting='weighted', **kwargs): """ Parameters ---------- k : unsigned integer Number of nearest neighbours to be used for voting. dfx : functor Function to compute the distances between training and test samples. Default: squared euclidean distance voting : str Voting method used to derive predictions from the nearest neighbors. Possible values are 'majority' (simple majority of classes determines vote) and 'weighted' (votes are weighted according to the relative frequencies of each class in the training data). **kwargs Additional arguments are passed to the base class. """ # init base class first Classifier.__init__(self, **kwargs) self.__k = k self.__dfx = dfx self.__voting = voting self.__data = None self.__weights = None def __repr__(self, prefixes=None): # pylint: disable-msg=W0102 """Representation of the object """ if prefixes is None: prefixes = [] return super(kNN, self).__repr__( ["k=%d" % self.__k, "dfx=%s" % self.__dfx, "voting=%s" % repr(self.__voting)] + prefixes) ## def __str__(self): ## return "%s\n data: %s" % \ ## (Classifier.__str__(self), indent_doc(self.__data)) def _train(self, data): """Train the classifier. For kNN it is degenerate -- just stores the data. """ self.__data = data labels = data.sa[self.get_space()].value uniquelabels = data.sa[self.get_space()].unique Nuniquelabels = len(uniquelabels) if __debug__: if str(data.samples.dtype).startswith('uint') \ or str(data.samples.dtype).startswith('int'): warning("kNN: input data is in integers. " + \ "Overflow on arithmetic operations might result in"+\ " errors. Please convert dataset's samples into" +\ " floating datatype if any error is reported.") if self.__voting == 'weighted': self.__labels = labels.copy() Nlabels = len(labels) # TODO: To get proper speed up for the next line only, # histogram should be computed # via sorting + counting "same" elements while reducing. # Guaranteed complexity is NlogN whenever now it is N^2 # compute the relative proportion of samples belonging to each # class (do it in one loop to improve speed and reduce readability weights = \ [ 1.0 - ((labels == label).sum() / Nlabels) \ for label in uniquelabels ] self.__weights = dict(zip(uniquelabels, weights)) else: self.__weights = None # create dictionary with an item for each condition self.__votes_init = dict(zip(uniquelabels, [0] * Nuniquelabels)) @accepts_dataset_as_samples def _predict(self, data): """Predict the class labels for the provided data. Returns a list of class labels (one for each data sample). """ # make sure we're talking about arrays data = np.asanyarray(data) targets_sa_name = self.get_space() targets_sa = self.__data.sa[targets_sa_name] labels = targets_sa.value uniquelabels = targets_sa.unique # checks only in debug mode if __debug__: if not data.ndim == 2: raise ValueError, "Data array must be two-dimensional." if not data.shape[1] == self.__data.nfeatures: raise ValueError, "Length of data samples (features) does " \ "not match the classifier." # compute the distance matrix between training and test data with # distances stored row-wise, i.e. distances between test sample [0] # and all training samples will end up in row 0 dists = self.__dfx(self.__data.samples, data).T if self.ca.is_enabled('distances'): # .sa.copy() now does deepcopying by default self.ca.distances = Dataset(dists, fa=self.__data.sa.copy()) # determine the k nearest neighbors per test sample knns = dists.argsort(axis=1)[:, :self.__k] # predictions and votes for all samples all_votes, predictions = [], [] for inns, nns in enumerate(knns): votes = self.__votes_init.copy() # TODO: optimize! for nn in nns: votes[labels[nn]] += 1 # optionally weight votes if self.__voting == 'majority': pass elif self.__voting == 'weighted': # TODO: optimize! for ul in uniquelabels: votes[ul] *= self.__weights[ul] else: raise ValueError, "kNN told to perform unknown voting '%s'." \ % self.__voting # reverse dictionary items and sort them to get the # winners # It would be more expensive than just to look for # the maximum, but this piece should be the least # cpu-intensive while distances computation should consume # the most. Also it would allow to look and break the ties votes_reversed = sorted([(v, k) for k, v in votes.iteritems()], reverse=True) # check for ties max_vote, max_vote_label = votes_reversed[0] if len(votes_reversed) > 1 and max_vote == votes_reversed[1][0]: # figure out all ties and break them based on the mean # distance # TODO: theoretically we could break out of the loop earlier ties = [x[1] for x in votes_reversed if x[0] == max_vote] # compute mean distances to the corresponding clouds # restrict analysis only to k-nn's nns_labels = labels[nns] nns_dists = dists[inns][nns] ties_dists = [np.mean(nns_dists[nns_labels == t]) for t in ties] max_vote_label = ties[np.argmin(ties_dists)] if __debug__: debug('KNN', 'Ran into the ties: %s with votes: %s, dists: %s, max_vote %r', (ties, votes_reversed, ties_dists, max_vote_label)) all_votes.append(votes) predictions.append(max_vote_label) # store the predictions in the state. Relies on State._setitem to do # nothing if the relevant state member is not enabled self.ca.predictions = predictions self.ca.estimates = all_votes # np.array([r[1] for r in results]) return predictions def _untrain(self): """Reset trained state""" self.__data = None self.__weights = None super(kNN, self)._untrain() dfx = property(fget=lambda self: self.__dfx) pymvpa2-2.6.4/mvpa2/clfs/lars.py000066400000000000000000000225171323370031300164120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Least angle regression (LARS).""" __docformat__ = 'restructuredtext' # system imports import numpy as np import mvpa2.base.externals as externals from mvpa2.support.due import due, Doi, BibTeX # do conditional to be able to build module reference if externals.exists('lars', raise_=True): import rpy2.robjects import rpy2.robjects.numpy2ri if hasattr(rpy2.robjects.numpy2ri,'activate'): rpy2.robjects.numpy2ri.activate() RRuntimeError = rpy2.robjects.rinterface.RRuntimeError r = rpy2.robjects.r r.library('lars') from mvpa2.support.rpy2_addons import Rrx2 # local imports from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples, \ FailedToPredictError from mvpa2.base.learner import FailedToTrainError from mvpa2.measures.base import Sensitivity from mvpa2.datasets.base import Dataset from mvpa2.base import warning if __debug__: from mvpa2.base import debug known_models = ('lasso', 'stepwise', 'lar', 'forward.stagewise') class LARS(Classifier): """Least angle regression (LARS). LARS is the model selection algorithm from: Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani, Least Angle Regression Annals of Statistics (with discussion) (2004) 32(2), 407-499. A new method for variable subset selection, with the lasso and 'epsilon' forward stagewise methods as special cases. Similar to SMLR, it performs a feature selection while performing classification, but instead of starting with all features, it starts with none and adds them in, which is similar to boosting. This learner behaves more like a ridge regression in that it returns prediction values and it treats the training labels as continuous. In the true nature of the PyMVPA framework, this algorithm is actually implemented in R by Trevor Hastie and wrapped via RPy. To make use of LARS, you must have R and RPy installed as well as the LARS contributed package. You can install the R and RPy with the following command on Debian-based machines: sudo aptitude install python-rpy python-rpy-doc r-base-dev You can then install the LARS package by running R as root and calling: install.packages() """ # XXX from yoh: it is linear, isn't it? __tags__ = [ 'lars', 'regression', 'linear', 'has_sensitivity', 'does_feature_selection', 'rpy2' ] def __init__(self, model_type="lasso", trace=False, normalize=True, intercept=True, max_steps=None, use_Gram=False, **kwargs): """ Initialize LARS. See the help in R for further details on the following parameters: Parameters ---------- model_type : string Type of LARS to run. Can be one of ('lasso', 'lar', 'forward.stagewise', 'stepwise'). trace : boolean Whether to print progress in R as it works. normalize : boolean Whether to normalize the L2 Norm. intercept : boolean Whether to add a non-penalized intercept to the model. max_steps : None or int If not None, specify the total number of iterations to run. Each iteration adds a feature, but leaving it none will add until convergence. use_Gram : boolean Whether to compute the Gram matrix (this should be false if you have more features than samples.) """ # init base class first Classifier.__init__(self, **kwargs) if not model_type in known_models: raise ValueError('Unknown model %s for LARS is specified. Known' % model_type + 'are %s' % `known_models`) # set up the params self.__type = model_type self.__normalize = normalize self.__intercept = intercept self.__trace = trace self.__max_steps = max_steps self.__use_Gram = use_Gram # pylint friendly initializations self.__lowest_Cp_step = None self.__weights = None """The beta weights for each feature.""" self.__trained_model = None """The model object after training that will be used for predictions.""" def __repr__(self): """String summary of the object """ return "LARS(type='%s', normalize=%s, intercept=%s, trace=%s, " \ "max_steps=%s, use_Gram=%s, " \ "enable_ca=%s)" % \ (self.__type, self.__normalize, self.__intercept, self.__trace, self.__max_steps, self.__use_Gram, str(self.ca.enabled)) @due.dcite( Doi('10.1214/009053604000000067'), path="mvpa2.clfs.lars:LARS", description="Least angle regression", tags=["implementation"]) def _train(self, data): """Train the classifier using `data` (`Dataset`). """ targets = data.sa[self.get_space()].value[:, np.newaxis] # some non-Python friendly R-lars arguments lars_kwargs = {'use.Gram': self.__use_Gram} if self.__max_steps is not None: lars_kwargs['max.steps'] = self.__max_steps trained_model = r.lars(data.samples, targets, type=self.__type, normalize=self.__normalize, intercept=self.__intercept, trace=self.__trace, **lars_kwargs ) #import pydb #pydb.debugger() # find the step with the lowest Cp (risk) # it is often the last step if you set a max_steps # must first convert dictionary to array Cp_vals = None try: Cp_vals = np.asanyarray(Rrx2(trained_model, 'Cp')) except TypeError, e: raise FailedToTrainError, \ "Failed to train %s on %s. Got '%s' while trying to access " \ "trained model %s" % (self, data, e, trained_model) if Cp_vals is None: # if there were no any -- just choose 0th lowest_Cp_step = 0 elif np.isnan(Cp_vals[0]): # sometimes may come back nan, so just pick the last one lowest_Cp_step = len(Cp_vals)-1 else: # determine the lowest lowest_Cp_step = Cp_vals.argmin() self.__lowest_Cp_step = lowest_Cp_step # set the weights to the lowest Cp step self.__weights = np.asanyarray( Rrx2(trained_model, 'beta'))[lowest_Cp_step] self.__trained_model = trained_model # bind to an instance # # set the weights to the final state # self.__weights = self.__trained_model['beta'][-1,:] @accepts_dataset_as_samples def _predict(self, data): """ Predict the output for the provided data. """ # predict with the final state (i.e., the last step) # predict with the lowest Cp step try: res = r.predict(self.__trained_model, data, mode='step', s=self.__lowest_Cp_step) #s=self.__trained_model['beta'].shape[0]) fit = np.atleast_1d(Rrx2(res, 'fit')) except RRuntimeError, e: raise FailedToPredictError, \ "Failed to predict on %s using %s. Exceptions was: %s" \ % (data, self, e) self.ca.estimates = fit return fit def _init_internals(self): """Reinitialize all internals """ self.__lowest_Cp_step = None self.__weights = None """The beta weights for each feature.""" self.__trained_model = None """The model object after training that will be used for predictions.""" def _untrain(self): super(LARS, self)._untrain() self._init_internals() ##REF: Name was automagically refactored def _get_feature_ids(self): """Return ids of the used features """ return np.where(np.abs(self.__weights)>0)[0] ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, **kwargs): """Returns a sensitivity analyzer for LARS.""" return LARSWeights(self, **kwargs) weights = property(lambda self: self.__weights) class LARSWeights(Sensitivity): """`SensitivityAnalyzer` that reports the weights LARS trained on a given `Dataset`. """ _LEGAL_CLFS = [ LARS ] def _call(self, dataset=None): """Extract weights from LARS classifier. LARS always has weights available, so nothing has to be computed here. """ clf = self.clf weights = clf.weights if __debug__: debug('LARS', "Extracting weights for LARS - "+ "Result: min=%f max=%f" %\ (np.min(weights), np.max(weights))) return Dataset(np.atleast_2d(weights)) pymvpa2-2.6.4/mvpa2/clfs/libsmlrc/000077500000000000000000000000001323370031300166775ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/clfs/libsmlrc/__init__.py000066400000000000000000000041641323370031300210150ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wraper for the stepwise_regression function for SMLR.""" if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.clfs.libsmlrc') import numpy as np import os from os.path import join as pathjoin import sys from mvpa2.base import externals if externals.exists('ctypes', raise_=True): import ctypes as C from mvpa2.clfs.libsmlrc.ctypes_helper import extend_args, c_darray # connect to library that's in this directory if sys.platform == 'win32': # on windows things get tricky as we compile this lib as an extension # so it get a .pyd name suffix instead of .dll smlrlib = C.cdll[pathjoin(os.path.dirname(__file__), 'smlrc.pyd')] elif sys.platform == 'darwin': # look for .so extension on Mac (not .dylib this time) smlrlib = C.cdll[pathjoin(os.path.dirname(__file__), 'smlrc.so')] else: smlrlib = np.ctypeslib.load_library('smlrc', os.path.dirname(__file__)) # wrap the stepwise function def stepwise_regression(*args): func = smlrlib.stepwise_regression func.argtypes = [C.c_int, C.c_int, c_darray, C.c_int, C.c_int, c_darray, C.c_int, C.c_int, c_darray, C.c_int, C.c_int, c_darray, C.c_int, C.c_int, c_darray, C.c_int, c_darray, C.c_int, c_darray, C.c_int, c_darray, C.c_int, C.c_int, C.c_double, C.c_float, C.c_float, C.c_int64] func.restype = C.c_long # get the new arglist arglist = extend_args(*args) return func(*arglist) if __debug__: debug('INIT', 'mvpa2.clfs.libsmlrc end') pymvpa2-2.6.4/mvpa2/clfs/libsmlrc/ctypes_helper.py000066400000000000000000000045631323370031300221270ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helpers for wrapping C libraries with ctypes.""" import numpy as np import ctypes as C # define an array type to help with wrapping c_darray = np.ctypeslib.ndpointer(dtype=np.float64, flags='ALIGNED,CONTIGUOUS') c_larray = np.ctypeslib.ndpointer(dtype=np.int64, flags='ALIGNED,CONTIGUOUS') c_farray = np.ctypeslib.ndpointer(dtype=np.float32, flags='ALIGNED,CONTIGUOUS') c_iarray = np.ctypeslib.ndpointer(dtype=np.int32, flags='ALIGNED,CONTIGUOUS') def extend_args(*args): """Turn ndarray arguments into dims and arrays.""" arglist = [] for arg in args: if isinstance(arg, np.ndarray): # add the dimensions arglist.extend(arg.shape) # just append the arg arglist.append(arg) return arglist ############################################################# # I'm not sure the rest is helpful, but I'll keep it for now. ############################################################# # incomplete type conversion typemap = { np.float64: C.c_double, np.float32: C.c_float, np.int64: C.c_int64, np.int32: C.c_int32} def process_args(*args): """Turn ndarray arguments into dims and array pointers for calling a ctypes-wrapped function.""" arglist = [] for arg in args: if isinstance(arg, np.ndarray): # add the dimensions arglist.extend(arg.shape) # add the pointer to the ndarray arglist.append(arg.ctypes.data_as( C.POINTER(typemap[arg.dtype.type]))) else: # just append the arg arglist.append(arg) return arglist def get_argtypes(*args): argtypes = [] for arg in args: if isinstance(arg, np.ndarray): # add the dimensions argtypes.extend([C.c_int]*len(arg.shape)) # add the pointer to the ndarray argtypes.append(np.ctypeslib.ndpointer(dtype=arg.dtype)) else: # try and figure out the type argtypes.append(arg) return argtypes pymvpa2-2.6.4/mvpa2/clfs/libsmlrc/smlr.c000066400000000000000000000160041323370031300200210ustar00rootroot00000000000000/*emacs: -*- mode: c-mode; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: t -*- ex: set sts=4 ts=8 sw=4 noet: */ #include #include #include #include #include #include /* Following code is for compatibility with Python3 Example taken from: http://docs.python.org/py3k/howto/cporting.html#module-initialization-and-state */ struct module_state { PyObject *error; }; #if PY_MAJOR_VERSION >= 3 #define GETSTATE(m) ((struct module_state*)PyModule_GetState(m)) #else #define GETSTATE(m) (&_state) static struct module_state _state; #endif static PyObject * error_out(PyObject *m) { struct module_state *st = GETSTATE(m); PyErr_SetString(st->error, "Error!"); return NULL; } static PyMethodDef smlr_methods[] = { {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL}, {NULL, NULL} }; #if PY_MAJOR_VERSION >= 3 static int smlr_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(GETSTATE(m)->error); return 0; } static int smlr_clear(PyObject *m) { Py_CLEAR(GETSTATE(m)->error); return 0; } static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "smlrc", NULL, sizeof(struct module_state), smlr_methods, NULL, smlr_traverse, smlr_clear, NULL }; #define INITERROR return NULL PyMODINIT_FUNC PyInit_smlrc(void) #else #define INITERROR return PyMODINIT_FUNC initsmlrc(void) #endif { #if PY_MAJOR_VERSION >= 3 PyObject *module = PyModule_Create(&moduledef); #else PyObject *module = Py_InitModule("smlrc", smlr_methods); #endif struct module_state *st = GETSTATE(module); if (module == NULL) { INITERROR; } st->error = PyErr_NewException("smlrc.Error", NULL, NULL); if (st->error == NULL) { Py_DECREF(module); INITERROR; } #if PY_MAJOR_VERSION >= 3 return module; #endif } /* End of Python 3 compatibility layer */ /* Workaround for Python 3, which does not define the DL_EXPORT macro any more */ #ifndef DL_EXPORT /* declarations for DLL import/export */ #define DL_EXPORT(RTYPE) RTYPE #endif DL_EXPORT(int) stepwise_regression(int w_rows, int w_cols, double w[], int X_rows, int X_cols, double X[], int XY_rows, int XY_cols, double XY[], int Xw_rows, int Xw_cols, double Xw[], int E_rows, int E_cols, double E[], int ac_rows, double ac[], int lm_2_ac_rows, double lm_2_ac[], int S_rows, double S[], int M, int maxiter, double convergence_tol, float resamp_decay, float min_resamp, int verbose, long long int seed) { // initialize the iterative optimization double incr = DBL_MAX; long non_zero = 0; long wasted_basis = 0; long needed_basis = 0; int changed = 0; // for calculating stepwise changes double w_old; double w_new; double w_diff; double grad; double XdotP; double E_new_m; double sum2_w_diff; double sum2_w_old; long cycle = 0; int basis = 0; int m = 0; float rval = 0; // get the num features and num classes int nd = w_rows; int ns = E_rows; // loop indexes int i = 0; // pointers to elements to avoid explicit indexing double* Sp = (double*) NULL; double* Ep = (double*) NULL; double* Xp = (double*) NULL; double* Xwp = (double*) NULL; // prob of resample each weight // allocate everything in heap -- not on stack float** p_resamp = (float **)calloc(w_rows, sizeof(float*)); for (i=0; i lm_2_ac[basis]) { // more towards bounds, but keep it w_new -= lm_2_ac[basis]; changed = 1; // umark from being zero if necessary if (w_old == 0.0) { non_zero += 1; // reset the p_resample p_resamp[basis][m] = 1.0; // we needed the basis needed_basis += 1; } } else if (w_new < -lm_2_ac[basis]) { // more towards bounds, but keep it w_new += lm_2_ac[basis]; changed = 1; // umark from being zero if necessary if (w_old == 0.0) { non_zero += 1; // reset the p_resample p_resamp[basis][m] = 1.0; // we needed the basis needed_basis += 1; } } else { // gonna zero it out w_new = 0.0; // decrease the p_resamp p_resamp[basis][m] -= (p_resamp[basis][m] - min_resamp) * resamp_decay; // set the number of non-zero if (w_old == 0.0) { // we didn't change changed = 0; // and wasted a basis wasted_basis += 1; } else { // we changed changed = 1; // must update num non_zero non_zero -= 1; } } // process changes if necessary if (changed == 1) { // update the expected values w_diff = w_new - w_old; for (Sp=S, Xp=X+basis, Ep=E+m, Xwp=Xw+m; Sp 0): maxlen = max(maxlen, max(x_i.keys())) else: maxlen = max(maxlen, lx_i) # bind to instance self.data = data self.maxlen = maxlen prob.l = size prob.y = y_array prob.x = x_matrix def __repr__(self): return "" % (self.size) def __del__(self): if __debug__ and debug is not None: debug('SVM_', 'Destroying libsvm.SVMProblem %s' % `self`) del self.prob if svmc is not None: svmc.delete_double(self.y_array) for i in range(self.size): svmc.svm_node_array_destroy(self.data[i]) svmc.svm_node_matrix_destroy(self.x_matrix) del self.data del self.x_matrix class SVMModel: def __init__(self, arg1, arg2=None): if arg2 is None: # create model from file filename = arg1 self.model = svmc.svm_load_model(filename) else: # create model from problem and parameter prob, param = arg1, arg2 self.prob = prob if param.gamma == 0: param.gamma = 1.0/prob.maxlen msg = svmc.svm_check_parameter(prob.prob, param.param) if msg: raise ValueError, msg self.model = svmc.svm_train(prob.prob, param.param) #setup some classwide variables self.nr_class = svmc.svm_get_nr_class(self.model) self.svm_type = svmc.svm_get_svm_type(self.model) #create labels(classes) intarr = svmc.new_int(self.nr_class) svmc.svm_get_labels(self.model, intarr) self.labels = int_array_to_list(intarr, self.nr_class) svmc.delete_int(intarr) #check if valid probability model self.probability = svmc.svm_check_probability_model(self.model) def __repr__(self): """ Print string representation of the model or easier comprehension and some statistics """ ret = '' def predict(self, x): data = seq_to_svm_node(x) ret = svmc.svm_predict(self.model, data) svmc.svm_node_array_destroy(data) return ret ##REF: Name was automagically refactored def get_nr_class(self): return self.nr_class ##REF: Name was automagically refactored def get_labels(self): if self.svm_type == NU_SVR \ or self.svm_type == EPSILON_SVR \ or self.svm_type == ONE_CLASS: raise TypeError, "Unable to get label from a SVR/ONE_CLASS model" return self.labels #def getParam(self): # return SVMParameter( # svmc_parameter=svmc.svm_model_param_get(self.model)) ##REF: Name was automagically refactored def predict_values_raw(self, x): #convert x into SVMNode, allocate a double array for return n = self.nr_class*(self.nr_class-1)//2 data = seq_to_svm_node(x) dblarr = svmc.new_double(n) svmc.svm_predict_values(self.model, data, dblarr) ret = double_array_to_list(dblarr, n) svmc.delete_double(dblarr) svmc.svm_node_array_destroy(data) return ret ##REF: Name was automagically refactored def predict_values(self, x): v = self.predict_values_raw(x) if self.svm_type == NU_SVR \ or self.svm_type == EPSILON_SVR \ or self.svm_type == ONE_CLASS: return v[0] else: #self.svm_type == C_SVC or self.svm_type == NU_SVC count = 0 d = {} for i, li in enumerate(self.labels): for lj in self.labels[i+1:]: d[li, lj] = v[count] d[lj, li] = -v[count] count += 1 return d ##REF: Name was automagically refactored def predict_probability(self, x): #c code will do nothing on wrong type, so we have to check ourself if self.svm_type == NU_SVR or self.svm_type == EPSILON_SVR: raise TypeError, "call get_svr_probability or get_svr_pdf " \ "for probability output of regression" elif self.svm_type == ONE_CLASS: raise TypeError, "probability not supported yet for one-class " \ "problem" #only C_SVC, NU_SVC goes in if not self.probability: raise TypeError, "model does not support probability estimates" #convert x into SVMNode, alloc a double array to receive probabilities data = seq_to_svm_node(x) dblarr = svmc.new_double(self.nr_class) pred = svmc.svm_predict_probability(self.model, data, dblarr) pv = double_array_to_list(dblarr, self.nr_class) svmc.delete_double(dblarr) svmc.svm_node_array_destroy(data) p = {} for i, l in enumerate(self.labels): p[l] = pv[i] return pred, p ##REF: Name was automagically refactored def get_svr_probability(self): #leave the Error checking to svm.cpp code ret = svmc.svm_get_svr_probability(self.model) if ret == 0: raise TypeError, "not a regression model or probability " \ "information not available" return ret ##REF: Name was automagically refactored def get_svr_pdf(self): #get_svr_probability will handle error checking sigma = self.get_svr_probability() return lambda z: exp(-fabs(z)/sigma)/(2*sigma) def save(self, filename): svmc.svm_save_model(filename, self.model) def __del__(self): if __debug__ and debug: # TODO: place libsvm versioning information into externals debug('SVM_', 'Destroying libsvm v. %s SVMModel %s', (svmc is not None \ and hasattr(svmc, '__version__') \ and svmc.__version__ or "unknown", `self`)) try: svmc.svm_destroy_model_helper(self.model) del self.model except Exception, e: # blind way to overcome problem of already deleted model and # "SVMModel instance has no attribute 'model'" in ignored if __debug__: debug('SVM_', 'Failed to destroy libsvm.SVMModel due to %s' % (e,)) pass ##REF: Name was automagically refactored def get_total_n_sv(self): return self.model.l ##REF: Name was automagically refactored def get_n_sv(self): """Returns a list with the number of support vectors per class. """ return [ svmc.int_getitem(self.model.nSV, i) for i in range( self.nr_class ) ] ##REF: Name was automagically refactored def get_sv(self): """Returns an array with the all support vectors. array( nSV x ) """ return svmc.svm_node_matrix2numpy_array( self.model.SV, self.get_total_n_sv(), self.prob.maxlen) ##REF: Name was automagically refactored def get_sv_coef(self): """Return coefficients for SVs... Needs to be used directly with caution! Summary on what is happening in libsvm internals with sv_coef svm_model's sv_coef (especially) are "cleverly" packed into a matrix nr_class - 1 x #SVs_total which stores coefficients for nr_class x (nr_class-1) / 2 binary classifiers' SV coefficients. For classifier i-vs-j General packing rule can be described as: i-th row contains sv_coefficients for SVs of class i it took in all i-vs-j or j-vs-i classifiers. Another useful excerpt from svm.cpp is // classifier (i,j): coefficients with // i are in sv_coef[j-1][nz_start[i]...], // j are in sv_coef[i][nz_start[j]...] It can also be described as j-th column lists coefficients for SV # j which belongs to some class C, which it took (if it was an SV, ie != 0) in classifiers i vs C (iff iC) This way no byte of storage is wasted but imho such setup is quite convolved """ return svmc.doubleppcarray2numpy_array( self.model.sv_coef, self.nr_class - 1, self.get_total_n_sv()) ##REF: Name was automagically refactored def get_rho(self): """Return constant(s) in decision function(s) (if multi-class)""" return double_array_to_list(self.model.rho, self.nr_class * (self.nr_class-1)//2) pymvpa2-2.6.4/mvpa2/clfs/libsvmc/sens.py000066400000000000000000000170231323370031300200540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Provide sensitivity measures for libsvm's SVM.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning from mvpa2.base.state import ConditionalAttribute from mvpa2.base.param import Parameter from mvpa2.base.types import asobjarray from mvpa2.measures.base import Sensitivity from mvpa2.datasets.base import Dataset if __debug__: from mvpa2.base import debug class LinearSVMWeights(Sensitivity): """`SensitivityAnalyzer` for the LIBSVM implementation of a linear SVM. """ _ATTRIBUTE_COLLECTIONS = ['params'] split_weights = Parameter(False, constraints='bool', doc="If binary classification either to sum SVs per each " "class separately. Note: be careful with interpretation" " of the values") def __init__(self, clf, **kwargs): """Initialize the analyzer with the classifier it shall use. Parameters ---------- clf : LinearSVM classifier to use. Only classifiers sub-classed from `LinearSVM` may be used. """ # init base classes first Sensitivity.__init__(self, clf, **kwargs) def _call(self, dataset, callables=None): # local bindings if callables is None: callables = [] clf = self.clf model = clf.model # Labels for sensitivities to be returned sens_labels = None if clf.__is_regression__: nr_class = None svm_labels = None # shouldn't bother to provide "targets" for regressions else: nr_class = model.nr_class svm_labels = model.labels # No need to warn since now we by default we do not do # anything evil and provide labels -- so it is up for a user # to decide either he wants to do something silly #if nr_class != 2: # warning("You are estimating sensitivity for SVM %s trained on %d" % # (str(clf), nr_class) + # " classes. Make sure that it is what you intended to do" ) svcoef = np.matrix(model.get_sv_coef()) svs = np.matrix(model.get_sv()) rhos = np.asarray(model.get_rho()) if self.params.split_weights: if nr_class != 2: raise NotImplementedError, \ "Cannot compute per-class weights for" \ " non-binary classification task" # libsvm might have different idea on the ordering # of labels, so we would need to map them back explicitely ds_labels = list(dataset.sa[clf.get_space()].unique) # labels in the dataset senses = [None for i in ds_labels] # first label is given positive value for i, (c, l) in enumerate( [(svcoef > 0, lambda x: x), (svcoef < 0, lambda x: x*-1)] ): # convert to array, and just take the meaningful dimension c_ = c.A[0] # NOTE svm_labels are numerical; ds_labels are literal senses[ds_labels.index( clf._attrmap.to_literal(svm_labels[i]))] = \ (l(svcoef[:, c_] * svs[c_, :])).A[0] weights = np.array(senses) sens_labels = svm_labels else: # XXX yoh: .mean() is effectively # averages across "sensitivities" of all paired classifiers (I # think). See more info on this topic in svm.py on how sv_coefs # are stored # # First multiply SV coefficients with the actual SVs to get # weighted impact of SVs on decision, then for each feature # take mean across SVs to get a single weight value # per feature if nr_class is None or nr_class <= 2: # as simple as this weights = (svcoef * svs).A # and only in case of classification if nr_class: # ??? First label seems corresponds to positive sens_labels = [tuple(svm_labels[::-1])] else: # we need to compose correctly per each pair of classifiers. # See docstring for get_sv_coef for more details on internal # structure of bloody storage # total # of pairs npairs = (nr_class * (nr_class-1))//2 # # of SVs in each class NSVs_perclass = model.get_n_sv() # indices where each class starts in each row of SVs # name is after similar variable in libsvm internals nz_start = np.cumsum([0] + NSVs_perclass[:-1]) nz_end = nz_start + NSVs_perclass # reserve storage weights = np.zeros((npairs, svs.shape[1])) ipair = 0 # index of the pair """ // classifier (i,j): coefficients with // i are in sv_coef[j-1][nz_start[i]...], // j are in sv_coef[i][nz_start[j]...] """ sens_labels = [] for i in xrange(nr_class): for j in xrange(i+1, nr_class): weights[ipair, :] = np.asarray( svcoef[j-1, nz_start[i]:nz_end[i]] * svs[nz_start[i]:nz_end[i]] + svcoef[i, nz_start[j]:nz_end[j]] * svs[nz_start[j]:nz_end[j]] ) # ??? First label corresponds to positive # that is why [j], [i] sens_labels += [(svm_labels[j], svm_labels[i])] ipair += 1 # go to the next pair assert(ipair == npairs) if __debug__ and 'SVM' in debug.active: if nr_class: nsvs = model.get_n_sv() else: nsvs = model.get_total_n_sv() if clf.__is_regression__: svm_type = clf._svm_impl # type of regression else: svm_type = '%d-class SVM(%s)' % (nr_class, clf._svm_impl) debug('SVM', "Extracting weights for %s: #SVs=%s, " % \ (svm_type, nsvs) + \ " SVcoefshape=%s SVs.shape=%s Rhos=%s." % \ (svcoef.shape, svs.shape, rhos) + \ " Result: min=%f max=%f" % (np.min(weights), np.max(weights))) ds_kwargs = {} if nr_class: # for classification only # and we should have prepared the labels assert(sens_labels is not None) if len(clf._attrmap): if isinstance(sens_labels[0], tuple): sens_labels = asobjarray(sens_labels) sens_labels = clf._attrmap.to_literal(sens_labels, recurse=True) # NOTE: `weights` is already and always 2D ds_kwargs = dict(sa={clf.get_space(): sens_labels}) weights_ds = Dataset(weights, **ds_kwargs) weights_ds.sa['biases'] = rhos return weights_ds _customizeDocInherit = True pymvpa2-2.6.4/mvpa2/clfs/libsvmc/svm.py000066400000000000000000000302401323370031300177050ustar00rootroot00000000000000# emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrap the libsvm package into a very simple class interface.""" __docformat__ = 'restructuredtext' import numpy as np import operator from mvpa2.base import warning from mvpa2.base.state import ConditionalAttribute from mvpa2.base.learner import FailedToTrainError from mvpa2.clfs.base import accepts_dataset_as_samples, \ accepts_samples_as_dataset from mvpa2.clfs._svmbase import _SVM from mvpa2.clfs.libsvmc import _svm from mvpa2.kernels.libsvm import LinearLSKernel from mvpa2.clfs.libsvmc.sens import LinearSVMWeights from mvpa2.support.due import due, Doi, BibTeX if __debug__: from mvpa2.base import debug # we better expose those since they are mentioned in docstrings # although pylint would not be happy from mvpa2.clfs.libsvmc.svmc import \ C_SVC, NU_SVC, EPSILON_SVR, \ NU_SVR, LINEAR, POLY, RBF, SIGMOID, \ PRECOMPUTED, ONE_CLASS def _data2ls(data): return np.asarray(data).astype(float) class SVM(_SVM): """Support Vector Machine Classifier. This is a simple interface to the libSVM package. """ # Since this is internal feature of LibSVM, this conditional attribute is present # here probabilities = ConditionalAttribute(enabled=False, doc="Estimates of samples probabilities as provided by LibSVM") # TODO p is specific for SVR _KNOWN_PARAMS = [ 'epsilon', 'probability', 'shrinking', 'weight_label', 'weight'] #_KNOWN_KERNEL_PARAMS = [ 'cache_size' ] _KNOWN_SENSITIVITIES = {'linear':LinearSVMWeights, } _KNOWN_IMPLEMENTATIONS = { 'C_SVC' : (_svm.svmc.C_SVC, ('C',), ('binary', 'multiclass', 'oneclass'), 'C-SVM classification'), 'NU_SVC' : (_svm.svmc.NU_SVC, ('nu',), ('binary', 'multiclass', 'oneclass'), 'nu-SVM classification'), 'ONE_CLASS' : (_svm.svmc.ONE_CLASS, (), ('oneclass-binary',), 'one-class-SVM'), 'EPSILON_SVR' : (_svm.svmc.EPSILON_SVR, ('C', 'tube_epsilon'), ('regression',), 'epsilon-SVM regression'), 'NU_SVR' : (_svm.svmc.NU_SVR, ('nu', 'tube_epsilon'), ('regression', 'oneclass'), 'nu-SVM regression') } __default_kernel_class__ = LinearLSKernel __tags__ = _SVM.__tags__ + [ 'libsvm' ] def __init__(self, **kwargs): # XXX Determine which parameters depend on each other and implement # safety/simplifying logic around them # already done for: nr_weight # thought: weight and weight_label should be a dict """Interface class to LIBSVM classifiers and regressions. Default implementation (C/nu/epsilon SVM) is chosen depending on the given parameters (C/nu/tube_epsilon). """ svm_impl = kwargs.get('svm_impl', None) # Depending on given arguments, figure out desired SVM # implementation if svm_impl is None: for arg, impl in [ ('tube_epsilon', 'EPSILON_SVR'), ('C', 'C_SVC'), ('nu', 'NU_SVC') ]: if arg in kwargs: svm_impl = impl if __debug__: debug('SVM', 'No implementation was specified. Since ' '%s is given among arguments, assume %s' % (arg, impl)) break if svm_impl is None: svm_impl = 'C_SVC' if __debug__: debug('SVM', 'Assign C_SVC "by default"') kwargs['svm_impl'] = svm_impl # init base class _SVM.__init__(self, **kwargs) self._svm_type = self._KNOWN_IMPLEMENTATIONS[svm_impl][0] if 'nu' in self._KNOWN_PARAMS and 'epsilon' in self._KNOWN_PARAMS: # overwrite eps param with new default value (information # taken from libSVM docs self.params['epsilon']._set_default(0.001) self.__model = None """Holds the trained SVM.""" @due.dcite( Doi('10.1145/1961189.1961199'), description="LIBSVM: A library for support vector machines", path="libsvm", tags=["implementation"]) # TODO: conditioned citations for nu-SVM and one-class # B. Schölkopf, A. Smola, R. Williamson, and P. L. Bartlett. New support vector algorithms. Neural Computation, 12, 2000, 1207-1245. # B. Schölkopf, J. Platt, J. Shawe-Taylor, A. J. Smola, and R. C. Williamson. Estimating the support of a high-dimensional distribution. Neural Computation, 13, 2001, 1443-1471. def _train(self, dataset): """Train SVM """ super(SVM, self)._train(dataset) targets_sa_name = self.get_space() # name of targets sa targets_sa = dataset.sa[targets_sa_name] # actual targets sa # libsvm needs doubles src = _data2ls(dataset) # libsvm cannot handle literal labels labels = self._attrmap.to_numeric(targets_sa.value).tolist() svmprob = _svm.SVMProblem(labels, src ) # Translate few params TRANSLATEDICT = {'epsilon': 'eps', 'tube_epsilon': 'p'} args = [] for paramname, param in self.params.items() \ + self.kernel_params.items(): if paramname in TRANSLATEDICT: argname = TRANSLATEDICT[paramname] elif paramname in _svm.SVMParameter.default_parameters: argname = paramname else: if __debug__: debug("SVM_", "Skipping parameter %s since it is not known " "to libsvm" % paramname) continue args.append( (argname, param.value) ) # ??? All those parameters should be fetched if present from # **kwargs and create appropriate parameters within .params or # .kernel_params libsvm_param = _svm.SVMParameter( kernel_type=self.params.kernel.as_raw_ls(),# Just an integer ID svm_type=self._svm_type, **dict(args)) """Store SVM parameters in libSVM compatible format.""" if 'C' in self.params: # svm_type in [_svm.svmc.C_SVC]: Cs = self._get_cvec(dataset) if len(Cs) > 1: C0 = abs(Cs[0]) scale = 1.0/(C0)#*np.sqrt(C0)) # so we got 1 C per label uls = self._attrmap.to_numeric(targets_sa.unique) if len(Cs) != len(uls): raise ValueError( "SVM was parameterized with %d Cs but there are %d " "labels in the dataset" % (len(Cs), len(targets_sa.unique))) weight = [c * scale for c in Cs] # All 3 need to be set to take an effect libsvm_param._set_parameter('weight', weight) libsvm_param._set_parameter('nr_weight', len(weight)) libsvm_param._set_parameter('weight_label', uls) libsvm_param._set_parameter('C', Cs[0]) try: self.__model = _svm.SVMModel(svmprob, libsvm_param) except Exception, e: raise FailedToTrainError(str(e)) @accepts_samples_as_dataset def _predict(self, data): """Predict values for the data """ # libsvm needs doubles src = _data2ls(data) ca = self.ca predictions = [ self.model.predict(p) for p in src ] if ca.is_enabled('estimates'): if self.__is_regression__: estimates = [ self.model.predict_values_raw(p)[0] for p in src ] else: # if 'trained_targets' are literal they have to be mapped if ( np.issubdtype(self.ca.trained_targets.dtype, 'c') or np.issubdtype(self.ca.trained_targets.dtype, 'U') ): trained_targets = self._attrmap.to_numeric( self.ca.trained_targets) else: trained_targets = self.ca.trained_targets nlabels = len(trained_targets) # XXX We do duplicate work. model.predict calls # predict_values_raw internally and then does voting or # thresholding. So if speed becomes a factor we might # want to move out logic from libsvm over here to base # predictions on obtined values, or adjust libsvm to # spit out values from predict() as well if nlabels == 2 and self._svm_impl != 'ONE_CLASS': # Apperently libsvm reorders labels so we need to # track (1,0) values instead of (0,1) thus just # lets take negative reverse estimates = [ self.model.predict_values(p)[(trained_targets[1], trained_targets[0])] for p in src ] if len(estimates) > 0: if __debug__: debug("SVM", "Forcing estimates to be ndarray and reshaping" " them into 1D vector") estimates = np.asarray(estimates).reshape(len(estimates)) else: # In multiclass we return dictionary for all pairs # of labels, since libsvm does 1-vs-1 pairs estimates = [ self.model.predict_values(p) for p in src ] ca.estimates = estimates if ca.is_enabled("probabilities"): # XXX Is this really necesssary? yoh don't think so since # assignment to ca is doing the same #self.probabilities = [ self.model.predict_probability(p) # for p in src ] try: ca.probabilities = [ self.model.predict_probability(p) for p in src ] except TypeError: warning("Current SVM %s doesn't support probability " % self + " estimation.") return predictions def summary(self): """Provide quick summary over the SVM classifier """ s = super(SVM, self).summary() if self.trained: s += '\n #SVs:%d' % self.__model.get_total_n_sv() try: param = self.__model.model.param C = param.C # extract information of how many SVs sit inside the margin, # i.e. so called 'bounded SVs' inside_margin = np.sum( # take 0.99 to avoid rounding issues np.abs(self.__model.get_sv_coef()) >= 0.99 * param.C) s += ' #bounded_SVs:%d' % inside_margin s += (' used_C:%-5g' % C).rstrip() except: pass return s def _untrain(self): """Untrain libsvm's SVM: forget the model """ if __debug__ and "SVM" in debug.active: debug("SVM", "Untraining %s and destroying libsvm model" % self) super(SVM, self)._untrain() del self.__model self.__model = None model = property(fget=lambda self: self.__model) """Access to the SVM model.""" # try to configure libsvm 'noise reduction'. Due to circular imports, # we can't check externals here since it would not work. try: # if externals.exists('libsvm verbosity control'): if __debug__ and "LIBSVM" in debug.active: debug("LIBSVM", "Setting verbosity for libsvm to 255") _svm.svmc.svm_set_verbosity(255) else: _svm.svmc.svm_set_verbosity(0) except AttributeError: warning("Available LIBSVM has no way to control verbosity of the output") # Assign SVM class to limited set of LinearSVMWeights LinearSVMWeights._LEGAL_CLFS = [SVM] pymvpa2-2.6.4/mvpa2/clfs/libsvmc/svmc.i000066400000000000000000000172121323370031300176540ustar00rootroot00000000000000//-*-c++-*- /*emacs: -*- mode: c++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: t -*- ex: set sts=4 ts=4 sw=4 noet: */ %module svmc %{ #include "svm.h" #include #include // Compatibility layer for Python3 #if PY_MAJOR_VERSION >= 3 # define PyInt_AS_LONG PyLong_AS_LONG #endif // Just to assure its availability even on older versions of libsvm // where no such preprocessor variable was available (when was it? ;)) #ifndef LIBSVM_VERSION # define LIBSVM_VERSION 0 #endif enum { __version__ = LIBSVM_VERSION }; #if LIBSVM_VERSION < 300 struct svm_model { svm_parameter param;// parameter int nr_class; // number of classes, = 2 in regression/one class svm int l; // total #SV svm_node **SV; // SVs (SV[l]) double **sv_coef; // coefficients for SVs in decision functions (sv_coef[k-1][l]) double *rho; // constants in decision functions (rho[k*(k-1)/2]) double *probA; // pariwise probability information double *probB; // for classification only int *label; // label of each class (label[k]) int *nSV; // number of SVs for each class (nSV[k]) // nSV[0] + nSV[1] + ... + nSV[k-1] = l // XXX int free_sv; // 1 if svm_model is created by svm_load_model // 0 if svm_model is created by svm_train }; #endif /* convert node matrix into a numpy array */ static PyObject* svm_node_matrix2numpy_array(struct svm_node** matrix, int rows, int cols) { npy_intp dims[2] = {rows,cols}; PyObject* array = 0; array = PyArray_SimpleNew ( 2, dims, NPY_DOUBLE ); /* array subscription is [row][column] */ PyArrayObject* a = (PyArrayObject*) array; double* data = (double *)a->data; int i,j; for (i = 0; idata; int i,j; for (i = 0; i= 2.89 */ #if LIBSVM_VERSION >= 289 /* borrowed from original libsvm code */ static void print_null(const char *s) {} static void print_string_stdout(const char *s) { fputs(s,stdout); fflush(stdout); } /* provide convenience wrapper */ void svm_set_verbosity(int verbosity_flag){ if (verbosity_flag) # if LIBSVM_VERSION < 291 svm_print_string = &print_string_stdout; else svm_print_string = &print_null; # else svm_set_print_string_function(&print_string_stdout); else svm_set_print_string_function(&print_null); # endif } #endif %} %init %{ import_array(); %} enum { __version__ = LIBSVM_VERSION }; enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */ enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */ struct svm_parameter { int svm_type; int kernel_type; int degree; // for poly double gamma; // for poly/rbf/sigmoid double coef0; // for poly/sigmoid // these are for training only double cache_size; // in MB double eps; // stopping criteria double C; // for C_SVC, EPSILON_SVR and NU_SVR int nr_weight; // for C_SVC int *weight_label; // for C_SVC double* weight; // for C_SVC double nu; // for NU_SVC, ONE_CLASS, and NU_SVR double p; // for EPSILON_SVR int shrinking; // use the shrinking heuristics int probability; }; struct svm_problem { int l; double *y; struct svm_node **x; }; // // svm_model // struct svm_model { svm_parameter param; // parameter int nr_class; // number of classes, = 2 in regression/one class svm int l; // total #SV svm_node **SV; // SVs (SV[l]) double **sv_coef; // coefficients for SVs in decision functions (sv_coef[k-1][l]) double *rho; // constants in decision functions (rho[k*(k-1)/2]) double *probA; // pariwise probability information double *probB; // for classification only int *label; // label of each class (label[k]) int *nSV; // number of SVs for each class (nSV[k]) // nSV[0] + nSV[1] + ... + nSV[k-1] = l // XXX int free_sv; // 1 if svm_model is created by svm_load_model // 0 if svm_model is created by svm_train }; /* one really wants to configure verbosity within python! */ void svm_set_verbosity(int verbosity_flag); struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param); void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target); int svm_save_model(const char *model_file_name, const struct svm_model *model); struct svm_model *svm_load_model(const char *model_file_name); int svm_get_svm_type(const struct svm_model *model); int svm_get_nr_class(const struct svm_model *model); void svm_get_labels(const struct svm_model *model, int *label); double svm_get_svr_probability(const struct svm_model *model); void svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* decvalue); double svm_predict(const struct svm_model *model, const struct svm_node *x); double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates); %inline %{ /* Just for bloody compatibility with deprecated method, which would not be used any ways, but declaring it for newer versions should allow to build across different versions without patching */ #if LIBSVM_VERSION >= 310 void svm_destroy_model(struct svm_model *model); #endif %} /* Not necessary: the weight vector is (de)allocated at python-part void svm_destroy_param(struct svm_parameter *param); */ const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param); int svm_check_probability_model(const struct svm_model *model); static PyObject* svm_node_matrix2numpy_array(struct svm_node** matrix, int rows, int cols); static PyObject* doubleppcarray2numpy_array(double** data, int rows, int cols); %include carrays.i %array_functions(int,int) %array_functions(double,double) %inline %{ struct svm_node *svm_node_array(int size) { return (struct svm_node *)malloc(sizeof(struct svm_node)*size); } void svm_node_array_set(struct svm_node *array, int i, int index, double value) { array[i].index = index; array[i].value = value; } void svm_node_array_set(struct svm_node *array, PyObject *indices, PyObject *values) { int length = PyList_Size(indices); int i; for (i = 0; i< length; i++){ array[i].index = (int)PyInt_AS_LONG(PyList_GetItem(indices, i)); PyObject* obj = PyArray_GETITEM(values, PyArray_GETPTR1(values, i)); array[i].value = (double)PyFloat_AS_DOUBLE(obj); Py_DECREF(obj); } } void svm_node_array_destroy(struct svm_node *array) { free(array); } struct svm_node **svm_node_matrix(int size) { return (struct svm_node **)malloc(sizeof(struct svm_node *)*size); } void svm_node_matrix_set(struct svm_node **matrix, int i, struct svm_node* array) { matrix[i] = array; } void svm_node_matrix_destroy(struct svm_node **matrix) { free(matrix); } void svm_destroy_model_helper(svm_model *model_ptr) { #if LIBSVM_VERSION >= 300 // yoh: Silence the blurber // fprintf(stderr, "warning: svm_destroy_model is deprecated and should not be used. Please use svm_free_and_destroy_model(svm_model **model_ptr_ptr)\n"); svm_free_and_destroy_model(&model_ptr); #else svm_destroy_model(model_ptr); #endif } %} pymvpa2-2.6.4/mvpa2/clfs/mass.py000066400000000000000000000107431323370031300164120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Generic wrappers for learners (classifiers) provided by R's MASS Highly experimental and ad-hoc -- primary use was to verify LDA/QDA results, thus not included in the mvpa2.suite ATM. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning, externals from mvpa2.base.state import ConditionalAttribute from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.base.learner import FailedToTrainError, FailedToPredictError # do conditional to be able to build module reference if externals.exists('mass', raise_=True): import rpy2.robjects import rpy2.robjects.numpy2ri if hasattr(rpy2.robjects.numpy2ri,'activate'): rpy2.robjects.numpy2ri.activate() RRuntimeError = rpy2.robjects.rinterface.RRuntimeError r = rpy2.robjects.r r.library('MASS') from mvpa2.support.rpy2_addons import Rrx, Rrx2 class MASSLearnerAdapter(Classifier): """Generic adapter for instances of learners provided by R's MASS Provides basic adaptation of interface for classifiers from MASS library (e.g. QDA, LDA), by adapting interface. Examples -------- >>> if externals.exists('mass'): ... from mvpa2.testing.datasets import datasets ... mass_qda = MASSLearnerAdapter('qda', tags=['non-linear', 'multiclass'], enable_ca=['posterior']) ... mass_qda.train(datasets['uni2large']) ... mass_qda.predict(datasets['uni2large']) # doctest: +SKIP """ __tags__ = ['mass', 'rpy2'] posterior = ConditionalAttribute(enabled=False, doc='Posterior probabilities if provided by classifier') def __init__(self, learner, kwargs=None, kwargs_predict=None, tags=None, **kwargs_): """ Parameters ---------- learner : string kwargs : dict, optional kwargs_predict : dict, optional tags : list of string What additional tags to attach to this classifier. Tags are used in the queries to classifier or regression warehouses. """ self._learner = learner self._kwargs = kwargs or {} self._kwargs_predict = kwargs_predict or {} if tags: # So we make a per-instance copy self.__tags__ = self.__tags__ + tags Classifier.__init__(self, **kwargs_) def __repr__(self): """String representation of `SKLLearnerWrapper` """ return Classifier.__repr__(self, prefixes=[repr(self._learner), 'kwargs=%r' % (self._kwargs,)]) def _train(self, dataset): """Train the skl learner using `dataset` (`Dataset`). """ targets_sa = dataset.sa[self.get_space()] targets = targets_sa.value if not 'regression' in self.__tags__: targets = self._attrmap.to_numeric(targets) try: self._R_model = r[self._learner]( dataset.samples, targets, **self._kwargs) except RRuntimeError, e: raise FailedToTrainError, \ "Failed to train %s on %s. Got '%s' during call to fit()." \ % (self, dataset, e) @accepts_dataset_as_samples def _predict(self, data): """Predict using the trained MASS learner """ try: output = r.predict(self._R_model, data, **self._kwargs_predict) # TODO: access everything computed, and assign to # ca's: res.names classes = Rrx2(output, 'class') # TODO: move to helper function to be used generically if classes.rclass[0] == 'factor': classes = [int(classes.levels[i-1]) for i in classes] if 'posterior' in output.names: self.ca.posterior = np.asarray(Rrx2(output, 'posterior')) res = np.asarray(classes) except Exception, e: raise FailedToPredictError, \ "Failed to predict %s on data of shape %s. Got '%s' during" \ " call to predict()." % (self, data.shape, e) return res pymvpa2-2.6.4/mvpa2/clfs/meta.py000066400000000000000000001612721323370031300164010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Meta classifiers -- classifiers which use other classifiers or preprocessing Meta Classifiers can be grouped according to their function as :group BoostedClassifiers: CombinedClassifier MulticlassClassifier SplitClassifier :group ProxyClassifiers: ProxyClassifier BinaryClassifier MappedClassifier FeatureSelectionClassifier :group PredictionsCombiners for CombinedClassifier: PredictionsCombiner MaximalVote MeanPrediction """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.misc.args import group_kwargs from mvpa2.base.types import is_sequence_type, asobjarray from mvpa2.base.param import Parameter from mvpa2.datasets import Dataset from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import NFoldPartitioner from mvpa2.datasets.miscfx import get_samples_by_attr from mvpa2.misc.attrmap import AttributeMap from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.base.state import ConditionalAttribute, ClassWithCollections from mvpa2.clfs.base import Classifier from mvpa2.clfs.distance import cartesian_distance from mvpa2.misc.transformers import first_axis_mean from mvpa2.measures.base import \ BoostedClassifierSensitivityAnalyzer, ProxyClassifierSensitivityAnalyzer, \ MappedClassifierSensitivityAnalyzer, \ FeatureSelectionClassifierSensitivityAnalyzer, \ RegressionAsClassifierSensitivityAnalyzer, \ BinaryClassifierSensitivityAnalyzer, \ _dont_force_slaves from mvpa2.base import warning if __debug__: from mvpa2.base import debug class BoostedClassifier(Classifier): """Classifier containing the farm of other classifiers. Should rarely be used directly. Use one of its children instead """ # should not be needed if we have prediction_estimates upstairs raw_predictions = ConditionalAttribute(enabled=False, doc="Predictions obtained from each classifier") raw_estimates = ConditionalAttribute(enabled=False, doc="Estimates obtained from each classifier") def __init__(self, clfs=None, propagate_ca=True, **kwargs): """Initialize the instance. Parameters ---------- clfs : list list of classifier instances to use (slave classifiers) propagate_ca : bool either to propagate enabled ca into slave classifiers. It is in effect only when slaves get assigned - so if state is enabled not during construction, it would not necessarily propagate into slaves kwargs : dict dict of keyworded arguments which might get used by State or Classifier """ if clfs is None: clfs = [] Classifier.__init__(self, **kwargs) self.__clfs = None """Pylint friendly definition of __clfs""" self.__propagate_ca = propagate_ca """Enable current enabled ca in slave classifiers""" self._set_classifiers(clfs) """Store the list of classifiers""" def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] if self.__clfs is None or len(self.__clfs)==0: #prefix_ = "clfs=%s" % repr(self.__clfs) prefix_ = [] else: prefix_ = ["clfs=[%s,...]" % repr(self.__clfs[0])] return super(BoostedClassifier, self).__repr__(prefix_ + prefixes) def _train(self, dataset): """Train `BoostedClassifier` """ for clf in self.__clfs: clf.train(dataset) def _posttrain(self, dataset): """Custom posttrain of `BoostedClassifier` Harvest over the trained classifiers if it was asked to so """ Classifier._posttrain(self, dataset) if self.params.retrainable: self.__changedData_isset = False def _get_feature_ids(self): """Custom _get_feature_ids for `BoostedClassifier` """ # return union of all used features by slave classifiers feature_ids = set([]) for clf in self.__clfs: feature_ids = feature_ids.union(set(clf.ca.feature_ids)) return list(feature_ids) def _predict(self, dataset): """Predict using `BoostedClassifier` """ raw_predictions = [ clf.predict(dataset) for clf in self.__clfs ] self.ca.raw_predictions = raw_predictions assert(len(self.__clfs)>0) if self.ca.is_enabled("estimates"): if np.array([x.ca.is_enabled("estimates") for x in self.__clfs]).all(): estimates = [ clf.ca.estimates for clf in self.__clfs ] self.ca.raw_estimates = estimates else: warning("One or more classifiers in %s has no 'estimates' state" % self + "enabled, thus BoostedClassifier can't have" + " 'raw_estimates' conditional attribute defined") return raw_predictions def _set_classifiers(self, clfs): """Set the classifiers used by the boosted classifier We have to allow to set list of classifiers after the object was actually created. It will be used by MulticlassClassifier """ # tuple to guarantee immutability since we are asssigning # __tags__ below and rely on having clfs populated already self.__clfs = tuple(clfs) if clfs is not None else tuple() """Classifiers to use""" if len(clfs): # enable corresponding ca in the slave-classifiers if self.__propagate_ca: for clf in self.__clfs: clf.ca.enable(self.ca.enabled, missingok=True) # adhere to their capabilities + 'multiclass' # XXX do intersection across all classifiers! # TODO: this seems to be wrong since it can be regression etc self.__tags__ = [ 'binary', 'multiclass', 'meta' ] if len(clfs)>0: self.__tags__ += self.__clfs[0].__tags__ def _untrain(self): """Untrain `BoostedClassifier` Has to untrain any known classifier """ if not self.trained: return for clf in self.clfs: clf.untrain() super(BoostedClassifier, self)._untrain() def get_sensitivity_analyzer(self, **kwargs): """Return an appropriate SensitivityAnalyzer""" return BoostedClassifierSensitivityAnalyzer( self, **kwargs) clfs = property(fget=lambda x:x.__clfs, fset=_set_classifiers, doc="Used classifiers") class ProxyClassifier(Classifier): """Classifier which decorates another classifier Possible uses: - modify data somehow prior training/testing: * normalization * feature selection * modification - optimized classifier? """ __sa_class__ = ProxyClassifierSensitivityAnalyzer """Sensitivity analyzer to use for a generic ProxyClassifier""" def __init__(self, clf, **kwargs): """Initialize the instance of ProxyClassifier Parameters ---------- clf : Classifier Classifier to proxy, i.e. to use after decoration """ # Is done before parents __init__ since we need # it for _set_retrainable called during __init__ self.__clf = clf """Store the classifier to use.""" Classifier.__init__(self, **kwargs) # adhere to slave classifier capabilities # TODO: unittest self.__tags__ = self.__tags__[:] + ['meta'] if clf is not None: self.__tags__ += clf.__tags__ def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(ProxyClassifier, self).__repr__( ["clf=%s" % repr(self.__clf)] + prefixes) def __str__(self, *args, **kwargs): return super(ProxyClassifier, self).__str__( str(self.__clf), *args, **kwargs) def summary(self): s = super(ProxyClassifier, self).summary() if self.trained: s += "\n Slave classifier summary:" + \ '\n + %s' % \ (self.__clf.summary().replace('\n', '\n |')) return s def _set_retrainable(self, value, force=False): # XXX Lazy implementation self.clf._set_retrainable(value, force=force) super(ProxyClassifier, self)._set_retrainable(value, force) if value and not (self.ca['retrained'] is self.clf.ca['retrained']): if __debug__: debug("CLFPRX", "Rebinding conditional attributes from slave clf %s", (self.clf,)) self.ca['retrained'] = self.clf.ca['retrained'] self.ca['repredicted'] = self.clf.ca['repredicted'] def _train(self, dataset): """Train `ProxyClassifier` """ # base class does nothing much -- just proxies requests to underlying # classifier self.__clf.train(dataset) # for the ease of access # TODO: if to copy we should exclude some ca which are defined in # base Classifier (such as training_time, predicting_time) # YOH: for now _copy_ca_ would copy only set ca variables. If # anything needs to be overriden in the parent's class, it is # welcome to do so #self.ca._copy_ca_(self.__clf, deep=False) def _predict(self, dataset): """Predict using `ProxyClassifier` """ clf = self.__clf if self.ca.is_enabled('estimates'): clf.ca.enable(['estimates']) result = clf.predict(dataset) # for the ease of access self.ca._copy_ca_(self.__clf, ['estimates'], deep=False) return result def _untrain(self): """Untrain ProxyClassifier """ if self.__clf is not None: self.__clf.untrain() super(ProxyClassifier, self)._untrain() @group_kwargs(prefixes=['slave_'], passthrough=True) def get_sensitivity_analyzer(self, slave_kwargs, **kwargs): """Return an appropriate SensitivityAnalyzer Parameters ---------- slave_kwargs : dict Arguments to be passed to the proxied (slave) classifier **kwargs Specific additional arguments for the sensitivity analyzer for the class. See documentation of a corresponding `.__sa_class__`. """ return self.__sa_class__( self, analyzer=self.__clf.get_sensitivity_analyzer(**slave_kwargs), **kwargs) clf = property(lambda x:x.__clf, doc="Used `Classifier`") # # Various combiners for CombinedClassifier # class PredictionsCombiner(ClassWithCollections): """Base class for combining decisions of multiple classifiers""" def train(self, clfs, dataset): """PredictionsCombiner might need to be trained Parameters ---------- clfs : list of Classifier List of classifiers to combine. Has to be classifiers (not pure predictions), since combiner might use some other conditional attributes (value's) instead of pure prediction's dataset : Dataset training data in this case """ # TODO: implement stacking to help with resolving ties pass def __call__(self, clfs, dataset): """Call function Parameters ---------- clfs : list of Classifier List of classifiers to combine. Has to be classifiers (not pure predictions), since combiner might use some other conditional attributes (value's) instead of pure prediction's """ raise NotImplementedError class MaximalVote(PredictionsCombiner): """Provides a decision using maximal vote rule""" predictions = ConditionalAttribute(enabled=True, doc="Voted predictions") estimates = ConditionalAttribute(enabled=False, doc="Estimates keep counts across classifiers for each label/sample") # TODO: Might get a parameter to use raw decision estimates if # voting is not unambigous (ie two classes have equal number of # votes def __init__(self, **kwargs): PredictionsCombiner.__init__(self, **kwargs) def __call__(self, clfs, dataset): """Actuall callable - perform voting Extended functionality which might not be needed actually: Since `BinaryClassifier` might return a list of possible predictions (not just a single one), we should consider all of those MaximalVote doesn't care about dataset itself """ if len(clfs)==0: return [] # to don't even bother all_label_counts = None for clf in clfs: # Lets check first if necessary conditional attribute is enabled if not clf.ca.is_enabled("predictions"): raise ValueError, "MaximalVote needs classifiers (such as " + \ "%s) with state 'predictions' enabled" % clf predictions = clf.ca.predictions if all_label_counts is None: all_label_counts = [ {} for i in xrange(len(predictions)) ] # for every sample for i in xrange(len(predictions)): prediction = predictions[i] # XXX fishy location due to literal labels, # TODO simplify assumptions and logic if isinstance(prediction, basestring) or \ not is_sequence_type(prediction): prediction = (prediction,) for label in prediction: # for every label # XXX we might have multiple labels assigned # but might not -- don't remember now if not label in all_label_counts[i]: all_label_counts[i][label] = 0 all_label_counts[i][label] += 1 predictions = [] # select maximal vote now for each sample for i in xrange(len(all_label_counts)): label_counts = all_label_counts[i] # lets do explicit search for max so we know # if it is unique maxk = [] # labels of elements with max vote maxv = -1 for k, v in label_counts.iteritems(): if v > maxv: maxk = [k] maxv = v elif v == maxv: maxk.append(k) assert len(maxk) >= 1, \ "We should have obtained at least a single key of max label" if len(maxk) > 1: warning("We got multiple labels %s which have the " % maxk + "same maximal vote %d. XXX disambiguate. " % maxv + "Meanwhile selecting the first in sorted order") predictions.append(sorted(maxk)[0]) ca = self.ca ca.estimates = all_label_counts ca.predictions = predictions return predictions class MeanPrediction(PredictionsCombiner): """Provides a decision by taking mean of the results """ predictions = ConditionalAttribute(enabled=True, doc="Mean predictions") estimates = ConditionalAttribute(enabled=True, doc="Predictions from all classifiers are stored") def __call__(self, clfs, dataset): """Actual callable - perform meaning """ if len(clfs)==0: return [] # to don't even bother all_predictions = [] for clf in clfs: # Lets check first if necessary conditional attribute is enabled if not clf.ca.is_enabled("predictions"): raise ValueError, "MeanPrediction needs learners (such " \ " as %s) with state 'predictions' enabled" % clf all_predictions.append(clf.ca.predictions) # compute mean all_predictions = np.asarray(all_predictions) predictions = np.mean(all_predictions, axis=0) ca = self.ca ca.estimates = all_predictions ca.predictions = predictions return predictions class ClassifierCombiner(PredictionsCombiner): """Provides a decision using training a classifier on predictions/estimates TODO: implement """ predictions = ConditionalAttribute(enabled=True, doc="Trained predictions") def __init__(self, clf, variables=None): """Initialize `ClassifierCombiner` Parameters ---------- clf : Classifier Classifier to train on the predictions variables : list of str List of conditional attributes stored in 'combined' classifiers, which to use as features for training this classifier """ PredictionsCombiner.__init__(self) self.__clf = clf """Classifier to train on `variables` ca of provided classifiers""" if variables is None: variables = ['predictions'] self.__variables = variables """What conditional attributes of the classifiers to use""" def _untrain(self): """It might be needed to untrain used classifier""" if self.__clf: self.__clf._untrain() def __call__(self, clfs, dataset): """ """ if len(clfs)==0: return [] # to don't even bother raise NotImplementedError class CombinedClassifier(BoostedClassifier): """`BoostedClassifier` which combines predictions using some `PredictionsCombiner` functor. """ def __init__(self, clfs=None, combiner='auto', **kwargs): """Initialize the instance. Parameters ---------- clfs : list of Classifier list of classifier instances to use combiner : PredictionsCombiner, optional callable which takes care about combining multiple results into a single one. If default ('auto') chooses `MaximalVote` for classification and `MeanPrediction` for regression. If None is provided -- no combination is done kwargs : dict dict of keyworded arguments which might get used by State or Classifier NB: `combiner` might need to operate not on 'predictions' discrete labels but rather on raw 'class' estimates classifiers estimate (which is pretty much what is stored under `estimates`) """ if clfs is None: clfs = [] BoostedClassifier.__init__(self, clfs, **kwargs) self.__combiner = combiner """Input argument describing which "combiner" to use to combine results of multiple classifiers""" self._combiner = None """Actual combiner which would be decided upon later""" def __repr__(self, prefixes=None): """Literal representation of `CombinedClassifier`. """ if prefixes is None: prefixes = [] return super(CombinedClassifier, self).__repr__( ["combiner=%s" % repr(self.__combiner)] + prefixes) @property def combiner(self): # Decide either we are dealing with regressions # by looking at 1st learner if self._combiner is None: if isinstance(self.__combiner, basestring) and self.__combiner == 'auto': self._combiner = ( MaximalVote, MeanPrediction)[int(self.clfs[0].__is_regression__)]() else: self._combiner = self.__combiner return self._combiner def summary(self): """Provide summary for the `CombinedClassifier`. """ s = super(CombinedClassifier, self).summary() if self.trained: s += "\n Slave classifiers summaries:" for i, clf in enumerate(self.clfs): s += '\n + %d clf: %s' % \ (i, clf.summary().replace('\n', '\n |')) return s def _untrain(self): """Untrain `CombinedClassifier` """ try: self._combiner.untrain() except: pass finally: self._combiner = None super(CombinedClassifier, self)._untrain() def _train(self, dataset): """Train `CombinedClassifier` """ BoostedClassifier._train(self, dataset) # combiner might need to be defined and trained as well at this point if self.combiner is not None: self.combiner.train(self.clfs, dataset) def _predict(self, dataset): """Predict using `CombinedClassifier` """ ca = self.ca predictions = BoostedClassifier._predict(self, dataset) if self.combiner is not None: cca = self.combiner.ca if ca.is_enabled("estimates"): cca.enable('estimates') # combiner will make use of conditional attributes instead of only predictions # returned from _predict predictions = self.combiner(self.clfs, dataset) else: cca = None ca.predictions = predictions if ca.is_enabled("estimates") and cca is not None: if cca.is_active("estimates"): # XXX or may be we could leave simply up to accessing .combiner? ca.estimates = cca.estimates else: if __debug__: warning("Boosted classifier %s has 'estimates' state enabled," " but combiner doesn't have 'estimates' active, thus " " .estimates cannot be provided directly, access .clfs" % self) return predictions class TreeClassifier(ProxyClassifier): """`TreeClassifier` which allows to create hierarchy of classifiers Functions by grouping some labels into a single "meta-label" and training classifier first to separate between meta-labels. Then each group further proceeds with classification within each group. Possible scenarios:: TreeClassifier(SVM(), {'animate': ((1,2,3,4), TreeClassifier(SVM(), {'human': (('male', 'female'), SVM()), 'animals': (('monkey', 'dog'), SMLR())})), 'inanimate': ((5,6,7,8), SMLR())}) would create classifier which would first do binary classification to separate animate from inanimate, then for animate result it would separate to classify human vs animal and so on:: SVM / \ animate inanimate / \ SVM SMLR / \ / | \ \ human animal 5 6 7 8 | | SVM SVM / \ / \ male female monkey dog 1 2 3 4 If it is desired to have a trailing node with a single label and thus without any classification, such as in SVM / \ g1 g2 / \ 1 SVM / \ 2 3 then just specify None as the classifier to use:: TreeClassifier(SVM(), {'g1': ((1,), None), 'g2': ((1,2,3,4), SVM())}) """ _DEV__doc = """ Questions: * how to collect confusion matrices at a particular layer if such classifier is given to SplitClassifier or CVTE * What additional ca to add, something like clf_labels -- store remapped labels for the dataset clf_estimates ... * What do we store into estimates ? just estimates from the clfs[] for corresponding samples, or top level clf estimates as well? * what should be SensitivityAnalyzer? by default it would just use top slave classifier (i.e. animate/inanimate) Problems? * .clf is not actually "proxied" per se, so not sure what things should be taken care of yet... TODO: * Allow a group to be just a single category, so no further classifier is needed, it just should stay separate from the other groups Possible TODO: * Add ability to provide results of clf.estimates as features into input of clfs[]. This way we could provide additional 'similarity' information to the "other" branch """ def __init__(self, clf, groups, **kwargs): """Initialize TreeClassifier Parameters ---------- clf : Classifier Classifier to separate between the groups groups : dict of meta-label: tuple of (tuple of labels, classifier) Defines the groups of labels and their classifiers. See :class:`~mvpa2.clfs.meta.TreeClassifier` for example """ # Basic initialization ProxyClassifier.__init__(self, clf, **kwargs) # XXX RF: probably create internal structure with dictionary, # not just a tuple, and store all information in there # accordingly self._groups = groups self._index2group = groups.keys() # All processing of groups needs to be handled within _train # since labels_map is not available here and definition # is allowed to carry both symbolic and numeric values for # labels # XXX TODO due to abandoning of labels_map -- may be this is # no longer the case? # We can only assign respective classifiers self.clfs = dict([(gk, c) for gk, (ls, c) in groups.iteritems()]) """Dictionary of classifiers used by the groups""" def __repr__(self, prefixes=None): """String representation of TreeClassifier """ if prefixes is None: prefixes = [] prefix = "groups=%s" % repr(self._groups) return super(TreeClassifier, self).__repr__([prefix] + prefixes) def __str__(self, *args, **kwargs): return super(TreeClassifier, self).__str__( ', '.join(['%s: %s' % i for i in self.clfs.iteritems()]), *args, **kwargs) def summary(self): """Provide summary for the `TreeClassifier`. """ s = super(TreeClassifier, self).summary() if self.trained: s += "\n Node classifiers summaries:" for i, (clfname, clf) in enumerate(self.clfs.iteritems()): s += '\n + %d %s clf: %s' % \ (i, clfname, clf.summary().replace('\n', '\n |')) return s def _train(self, dataset): """Train TreeClassifier First train .clf on groupped samples, then train each of .clfs on a corresponding subset of samples. """ # Local bindings targets_sa_name = self.get_space() # name of targets sa targets_sa = dataset.sa[targets_sa_name] # actual targets sa clf, clfs, index2group = self.clf, self.clfs, self._index2group # Handle groups of labels groups = self._groups groups_labels = {} # just groups with numeric indexes label2index = {} # how to map old labels to new known = set() for gi, gk in enumerate(index2group): ls = groups[gk][0] known_already = known.intersection(ls) if len(known_already): raise ValueError, "Grouping of labels is not appropriate. " \ "Got labels %s already among known in %s. " % \ (known_already, known ) groups_labels[gk] = ls # needed? XXX for l in ls : label2index[l] = gi known = known.union(ls ) # TODO: check if different literal labels weren't mapped into # same numerical but here asked to belong to different groups # yoh: actually above should catch it # Check if none of the labels is missing from known groups dsul = set(targets_sa.unique) if known.intersection(dsul) != dsul: raise ValueError, \ "Dataset %s had some labels not defined in groups: %s. " \ "Known are %s" % \ (dataset, dsul.difference(known), known) # We can operate on the same dataset here # Nope: doesn't work nicely with the classifier like kNN # which links to the dataset used in the training, # so whenever if we simply restore labels back, we # would get kNN confused in _predict() # Therefore we need to create a shallow copy of # dataset and provide it with new labels ds_group = dataset.copy(deep=False) # assign new labels group samples into groups of labels ds_group.sa[targets_sa_name].value = [label2index[l] for l in targets_sa.value] # train primary classifier if __debug__: debug('CLFTREE', "Training primary %s on %s with targets %s", (clf, ds_group, ds_group.sa[targets_sa_name].unique)) clf.train(ds_group) # ??? should we obtain values for anything? # may be we could training values of .clfs to be added # as features to the next level -- i.e. .clfs # Proceed with next 'layer' and train all .clfs on corresponding # selection of samples # ??? should we may be allow additional 'the other' category, to # signal contain all the other categories data? probably not # since then it would lead to undetermined prediction (which # might be not a bad thing altogether...) for gk in groups.iterkeys(): clf = clfs[gk] group_labels = groups_labels[gk] if clf is None: # Trailing node if len(group_labels) != 1: raise ValueError( "Trailing nodes with no classifier assigned must have " "only a single label associated. Got %s defined in " "group %r of %s" % (group_labels, gk, self)) else: # select samples per each group ids = get_samples_by_attr(dataset, targets_sa_name, groups_labels[gk]) ds_group = dataset[ids] if __debug__: debug('CLFTREE', "Training %s for group %s on %s", (clfs[gk], gk, ds_group)) # and train corresponding slave clf clf.train(ds_group) def _untrain(self): """Untrain TreeClassifier """ super(TreeClassifier, self)._untrain() for clf in self.clfs.values(): if clf is not None: clf.untrain() def _predict(self, dataset): """ """ # Local bindings clfs, index2group, groups = self.clfs, self._index2group, self._groups clf_predictions = np.asanyarray(ProxyClassifier._predict(self, dataset)) if __debug__: debug('CLFTREE', 'Predictions %s', (clf_predictions)) # assure that predictions are indexes, ie int clf_predictions = clf_predictions.astype(int) # now for predictions pointing to specific groups go into # corresponding one predictions = np.zeros((len(dataset),), dtype=self.ca.trained_targets.dtype) for pred_group in set(clf_predictions): try: gk = index2group[pred_group] except IndexError: raise IndexError("%s: Cannot obtain value for index %r among %r" % (self, pred_group, index2group)) clf_ = clfs[gk] group_indexes = (clf_predictions == pred_group) if __debug__: debug('CLFTREE', 'Predicting for group %s using %s on %d samples', (gk, clf_, np.sum(group_indexes))) if clf_ is None: predictions[group_indexes] = groups[gk][0] # our only label else: predictions[group_indexes] = clf_.predict(dataset[group_indexes]) return predictions class BinaryClassifier(ProxyClassifier): """`ProxyClassifier` which maps set of two labels into +1 and -1 """ __sa_class__ = BinaryClassifierSensitivityAnalyzer def __init__(self, clf, poslabels, neglabels, **kwargs): """ Parameters ---------- clf : Classifier classifier to use poslabels : list list of labels which are treated as +1 category neglabels : list list of labels which are treated as -1 category """ ProxyClassifier.__init__(self, clf, **kwargs) # Handle labels # TODO: move to use AttributeMap #self._attrmap = AttributeMap(dict([(l, -1) for l in sneglabels] + # [(l, +1) for l in sposlabels])) # check if there is no overlap overlap = set(poslabels).intersection(neglabels) if len(overlap)>0: raise ValueError("Sets of positive and negative labels for " + "BinaryClassifier must not overlap. Got overlap " % overlap) self.__poslabels = poslabels self.__neglabels = neglabels # define what values will be returned by predict: if there is # a single label - return just it alone, otherwise - whole # list # Such approach might come useful if we use some classifiers # over different subsets of data with some voting later on # (1-vs-therest?) if len(self.__poslabels) > 1: self.__predictpos = self.__poslabels else: self.__predictpos = self.__poslabels[0] if len(self.__neglabels) > 1: self.__predictneg = self.__neglabels else: self.__predictneg = self.__neglabels[0] @property def poslabels(self): return self.__poslabels @property def neglabels(self): return self.__neglabels def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefix = "poslabels=%s, neglabels=%s" % ( repr(self.__poslabels), repr(self.__neglabels)) return super(BinaryClassifier, self).__repr__([prefix] + prefixes) def _train(self, dataset): """Train `BinaryClassifier` """ targets_sa_name = self.get_space() idlabels = [(x, +1) for x in get_samples_by_attr(dataset, targets_sa_name, self.__poslabels)] + \ [(x, -1) for x in get_samples_by_attr(dataset, targets_sa_name, self.__neglabels)] # XXX we have to sort ids since at the moment Dataset.select_samples # doesn't take care about order idlabels.sort() # If we need all samples, why simply not perform on original # data, an just store/restore labels. But it really should be done # within Dataset.select_samples if len(idlabels) == dataset.nsamples \ and [x[0] for x in idlabels] == range(dataset.nsamples): # the last condition is not even necessary... just overly # cautious datasetselected = dataset.copy(deep=False) # no selection is needed if __debug__: debug('CLFBIN', "Created shallow copy with %d samples for binary " "classification among labels %s/+1 and %s/-1", (dataset.nsamples, self.__poslabels, self.__neglabels)) else: datasetselected = dataset[[ x[0] for x in idlabels ]] if __debug__: debug('CLFBIN', "Selected %d samples out of %d samples for binary " "classification among labels %s/+1 and %s/-1. Selected %s", (len(idlabels), dataset.nsamples, self.__poslabels, self.__neglabels, datasetselected)) # adjust the labels datasetselected.sa[targets_sa_name].value = [ x[1] for x in idlabels ] # now we got a dataset with only 2 labels if __debug__: assert(set(datasetselected.sa[targets_sa_name].unique) == set([-1, 1])) self.clf.train(datasetselected) def _predict(self, dataset): """Predict the labels for a given `dataset` Predicts using binary classifier and spits out list (for each sample) where with either poslabels or neglabels as the "label" for the sample. If there was just a single label within pos or neg labels then it would return not a list but just that single label. """ binary_predictions = ProxyClassifier._predict(self, dataset) self.ca.estimates = binary_predictions predictions = [ {-1: self.__predictneg, +1: self.__predictpos}[x] for x in binary_predictions] self.ca.predictions = predictions return predictions class MulticlassClassifier(CombinedClassifier): """Perform multiclass classification using a list of binary classifiers. Based on a `CombinedClassifier` for which it constructs a list of binary 1-vs-1 (ie in pairs like LIBSVM does) or 1-vs-all (which is yet to think about) classifiers. """ raw_predictions_ds = ConditionalAttribute(enabled=False, doc="Wraps raw_predictions into a Dataset with .fa.(neg,pos) " "describing actual labels used in each binary classification task " "and samples containing actual decision labels per each input " "sample") def __init__(self, clf, bclf_type="1-vs-1", **kwargs): """Initialize the instance Parameters ---------- clf : Classifier classifier based on which multiple classifiers are created for multiclass bclf_type "1-vs-1" or "1-vs-all", determines the way to generate binary classifiers """ CombinedClassifier.__init__(self, **kwargs) self.__clf = clf """Store sample instance of basic classifier""" # adhere to slave classifier capabilities if clf is not None: self.__tags__ += clf.__tags__ if not 'multiclass' in self.__tags__: self.__tags__ += ['multiclass'] # Some checks on known ways to do multiclass if bclf_type == "1-vs-1": pass elif bclf_type == "1-vs-all": # TODO raise NotImplementedError else: raise ValueError( "Unknown type of classifier %s for " % bclf_type + "MulticlassClassifier") self.__bclf_type = bclf_type # XXX fix it up a bit... it seems that MulticlassClassifier should # be actually ProxyClassifier and use BoostedClassifier internally def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefix = "bclf_type=%s, clf=%s" % (repr(self.__bclf_type), repr(self.__clf)) return super(MulticlassClassifier, self).__repr__([prefix] + prefixes) def _get_binary_pairs(self, dataset): """Return a list of pairs of categories lists to be used in binary classification """ targets_sa_name = self.get_space() # construct binary classifiers ulabels = dataset.sa[targets_sa_name].unique if self.__bclf_type == "1-vs-1": # generate pairs and corresponding classifiers # could use _product but let's stay inline with previuos # implementation label_pairs = [([ulabels[i]], [ulabels[j]]) for i in xrange(len(ulabels)) for j in xrange(i+1, len(ulabels))] if __debug__: debug("CLFMC", "Created %d label pairs for original %d labels", (len(label_pairs), len(ulabels))) elif self.__bclf_type == "1-vs-all": raise NotImplementedError return label_pairs def _train(self, dataset): """Train classifier """ # construct binary classifiers biclfs = [] for poslabels, neglabels in self._get_binary_pairs(dataset): biclfs.append( BinaryClassifier(self.__clf.clone(), poslabels=poslabels, neglabels=neglabels)) self.clfs = biclfs # need to be set after, not operated in-place # perform actual training CombinedClassifier._train(self, dataset) def _predict(self, dataset): ca = self.ca if ca.is_enabled("raw_predictions_ds"): ca.enable("raw_predictions") predictions = super(MulticlassClassifier, self)._predict(dataset) if ca.is_enabled("raw_predictions_ds") or self.combiner is None: if self.combiner is None: raw_predictions = predictions else: # we should fetch those from ca raw_predictions = ca.raw_predictions # assign pos and neg to fa while squeezing out # degenerate dimensions which are there to possibly accomodate # 1-vs-all cases # for consistency -- place into object array of tuples # (Sensitivity analyzers already do the same) pairs = zip(np.array([np.squeeze(clf.neglabels) for clf in self.clfs]).tolist(), np.array([np.squeeze(clf.poslabels) for clf in self.clfs]).tolist()) ca.raw_predictions_ds = raw_predictions_ds = \ Dataset(np.array(raw_predictions).T, fa={self.space: asobjarray(pairs)}) if self.combiner is None: return raw_predictions_ds else: return predictions class SplitClassifier(CombinedClassifier): """`BoostedClassifier` to work on splits of the data """ """ TODO: SplitClassifier and MulticlassClassifier have too much in common -- need to refactor: just need a splitter which would split dataset in pairs of class labels. MulticlassClassifier does just a tiny bit more which might be not necessary at all: map sets of labels into 2 categories... """ stats = ConditionalAttribute(enabled=False, doc="Resultant confusion whenever classifier trained " + "on 1 part and tested on 2nd part of each split") splits = ConditionalAttribute(enabled=False, doc= """Store the actual splits of the data. Can be memory expensive""") # ??? couldn't be training_stats since it has other meaning # here, BUT it is named so within CrossValidatedTransferError # -- unify # decided to go with overriding semantics tiny bit. For split # classifier training_stats would correspond to summary # over training errors across all splits. Later on if need comes # we might want to implement global_training_stats which would # correspond to overall confusion on full training dataset as it is # done in base Classifier #global_training_stats = ConditionalAttribute(enabled=False, # doc="Summary over training confusions acquired at each split") def __init__(self, clf, partitioner=NFoldPartitioner(), splitter=Splitter('partitions', count=2), **kwargs): """Initialize the instance Parameters ---------- clf : Classifier classifier based on which multiple classifiers are created for multiclass splitter : Splitter `Splitter` to use to split the dataset prior training """ CombinedClassifier.__init__(self, **kwargs) self.__clf = clf """Store sample instance of basic classifier""" if isinstance(splitter, type): raise ValueError, \ "Please provide an instance of a splitter, not a type." \ " Got %s" % splitter self.__partitioner = partitioner self.__splitter = splitter def _train(self, dataset): """Train `SplitClassifier` """ targets_sa_name = self.get_space() # generate pairs and corresponding classifiers bclfs = [] # local binding ca = self.ca clf_template = self.__clf if ca.is_enabled('stats'): ca.stats = clf_template.__summary_class__() if ca.is_enabled('training_stats'): clf_template.ca.enable(['training_stats']) ca.training_stats = clf_template.__summary_class__() clf_hastestdataset = hasattr(clf_template, 'testdataset') self.ca.splits = [] for i, pset in enumerate(self.__partitioner.generate(dataset)): if __debug__: debug("CLFSPL_", "Deepcopying %s for %s", (clf_template, self)) clf = clf_template.clone() bclfs.append(clf) if __debug__: debug("CLFSPL", "Training classifier for split %d", (i,)) # split partitioned dataset split = [d for d in self.__splitter.generate(pset)] if ca.is_enabled("splits"): self.ca.splits.append(split) clf = bclfs[i] # assign testing dataset if given classifier can digest it if clf_hastestdataset: clf.testdataset = split[1] clf.train(split[0]) # unbind the testdataset from the classifier if clf_hastestdataset: clf.testdataset = None if ca.is_enabled("stats"): predictions = clf.predict(split[1]) self.ca.stats.add(split[1].sa[targets_sa_name].value, predictions, clf.ca.get('estimates', None)) if __debug__: dact = debug.active if 'CLFSPL_' in dact: debug('CLFSPL_', 'Split %d:\n%s', (i, self.ca.stats)) elif 'CLFSPL' in dact: debug('CLFSPL', 'Split %d error %.2f%%', (i, self.ca.stats.summaries[-1].error)) if ca.is_enabled("training_stats"): # XXX this is broken, as it cannot deal with not yet set ca ca.training_stats += clf.ca.training_stats # need to be assigned after the entire list populated since # _set_classifiers places them into a tuple self.clfs = bclfs @group_kwargs(prefixes=['slave_'], passthrough=True) def get_sensitivity_analyzer(self, slave_kwargs=None, **kwargs): """Return an appropriate SensitivityAnalyzer for `SplitClassifier` Parameters ---------- combiner If not provided, `first_axis_mean` is assumed """ if slave_kwargs is None: slave_kwargs = {} return BoostedClassifierSensitivityAnalyzer( self, sa_attr='splits', analyzer=self.__clf.get_sensitivity_analyzer( **_dont_force_slaves(slave_kwargs)), **kwargs) partitioner = property(fget=lambda x:x.__partitioner, doc="Partitioner used by SplitClassifier") splitter = property(fget=lambda x:x.__splitter, doc="Splitter used by SplitClassifier") class MappedClassifier(ProxyClassifier): """`ProxyClassifier` which uses some mapper prior training/testing. `MaskMapper` can be used just a subset of features to train/classify. Having such classifier we can easily create a set of classifiers for BoostedClassifier, where each classifier operates on some set of features, e.g. set of best spheres from SearchLight, set of ROIs selected elsewhere. It would be different from simply applying whole mask over the dataset, since here initial decision is made by each classifier and then later on they vote for the final decision across the set of classifiers. """ __sa_class__ = MappedClassifierSensitivityAnalyzer def __init__(self, clf, mapper, **kwargs): """Initialize the instance Parameters ---------- clf : Classifier classifier based on which mask classifiers is created mapper whatever `Mapper` comes handy """ ProxyClassifier.__init__(self, clf, **kwargs) self.__mapper = mapper """mapper to help us our with prepping data to training/classification""" def _train(self, dataset): """Train `MappedClassifier` """ # first train the mapper # XXX: should training be done using whole dataset or just samples # YYY: in some cases labels might be needed, thus better full dataset self.__mapper.train(dataset) # for train() we have to provide dataset -- not just samples to train! wdataset = dataset.get_mapped(self.__mapper) if __debug__: debug('CLF', "Training %s having mapped dataset into %s", (self, wdataset)) ProxyClassifier._train(self, wdataset) def _untrain(self): """Untrain `FeatureSelectionClassifier` Has to untrain any known classifier """ # untrain the mapper if self.__mapper is not None: self.__mapper.untrain() # let base class untrain as well super(MappedClassifier, self)._untrain() def _predict(self, dataset): """Predict using `MappedClassifier` """ return ProxyClassifier._predict(self, self.__mapper.forward(dataset)) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(MappedClassifier, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['mapper'])) def __str__(self, *args, **kwargs): return super(MappedClassifier, self).__str__( str(self.mapper), *args, **kwargs) mapper = property(lambda x:x.__mapper, doc="Used mapper") class FeatureSelectionClassifier(MappedClassifier): """This is nothing but a `MappedClassifier`. This class is only kept for (temporary) compatibility with old code. """ __tags__ = [ 'does_feature_selection', 'meta' ] class RegressionAsClassifier(ProxyClassifier): """Allows to use arbitrary regression for classification. Possible usecases: Binary Classification Any regression could easily be extended for binary classification. For instance using labels -1 and +1, regression results are quantized into labels depending on their signs Multiclass Classification Although most of the time classes are not ordered and do not have a corresponding distance matrix among them it might often be the case that there is a hypothesis that classes could be well separated in a projection to single dimension (non-linear manifold, or just linear projection). For such use regression might provide necessary means of classification """ distances = ConditionalAttribute(enabled=False, doc="Distances obtained during prediction") __sa_class__ = RegressionAsClassifierSensitivityAnalyzer def __init__(self, clf, centroids=None, distance_measure=None, **kwargs): """ Parameters ---------- clf : Classifier XXX Should become learner Regression to be used as a classifier. Although it would accept any Learner, only providing regressions would make sense. centroids : None or dict of (float or iterable) Hypothesis or prior information on location/distance of centroids for each category, provide them. If None -- during training it will choose equidistant points starting from 0.0. If dict -- keys should be a superset of labels of dataset obtained during training and each value should be numeric value or iterable if centroids are multidimensional and regression can do multidimensional regression. distance_measure : function or None What distance measure to use to find closest class label from continuous estimates provided by regression. If None, will use Cartesian distance. """ ProxyClassifier.__init__(self, clf, **kwargs) self.centroids = centroids self.distance_measure = distance_measure # Adjust tags which were copied from slave learner if self.__is_regression__: self.__tags__.pop(self.__tags__.index('regression')) # We can do any number of classes, although in most of the scenarios # multiclass performance would suck, unless there is a strong # hypothesis self.__tags__ += ['binary', 'multiclass', 'regression_based'] # XXX No support for retrainable in RegressionAsClassifier yet if 'retrainable' in self.__tags__: self.__tags__.remove('retrainable') # Pylint/user friendliness #self._trained_ul = None self._trained_attrmap = None self._trained_centers = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] if self.centroids is not None: prefixes += ['centroids=%r' % self.centroids] if self.distance_measure is not None: prefixes += ['distance_measure=%r' % self.distance_measure] return super(RegressionAsClassifier, self).__repr__(prefixes) def _train(self, dataset): targets_sa_name = self.get_space() targets_sa = dataset.sa[targets_sa_name] # May be it is an advanced one needing training. if hasattr(self.distance_measure, 'train'): self.distance_measure.train(dataset) # Centroids ul = dataset.sa[targets_sa_name].unique if self.centroids is None: # setup centroids -- equidistant points # XXX we might preferred -1/+1 for binary... centers = np.arange(len(ul), dtype=float) else: # verify centroids and assign if not set(self.centroids.keys()).issuperset(ul): raise ValueError, \ "Provided centroids with keys %s do not cover all " \ "labels provided during training: %s" \ % (self.centroids.keys(), ul) # override with superset ul = self.centroids.keys() centers = np.array([self.centroids[k] for k in ul]) #self._trained_ul = ul # Map labels into indexes (not centers) # since later on we would need to get back (see ??? below) self._trained_attrmap = AttributeMap( map=dict([(l, i) for i,l in enumerate(ul)]), mapnumeric=True) self._trained_centers = centers # Create a shallow copy of dataset, and override labels # TODO: we could just bind .a, .fa, and copy only .sa dataset_relabeled = dataset.copy(deep=False) # ???: may be we could just craft a monster attrmap # which does min distance search upon to_literal ? dataset_relabeled.sa[targets_sa_name].value = \ self._trained_attrmap.to_numeric(targets_sa.value) ProxyClassifier._train(self, dataset_relabeled) def _predict(self, dataset): # TODO: Probably we should forwardmap labels for target # dataset so slave has proper statistics attached self.ca.estimates = regr_predictions \ = ProxyClassifier._predict(self, dataset) # Local bindings #ul = self._trained_ul attrmap = self._trained_attrmap centers = self._trained_centers distance_measure = self.distance_measure if distance_measure is None: distance_measure = cartesian_distance # Compute distances self.ca.distances = distances \ = np.array([[distance_measure(s, c) for c in centers] for s in regr_predictions]) predictions = attrmap.to_literal(np.argmin(distances, axis=1)) if __debug__: debug("CLF_", "Converted regression distances %s " "into labels %s for %s", (distances, predictions, self)) return predictions def _set_retrainable(self, value, **kwargs): if value: raise NotImplementedError, \ "RegressionAsClassifier wrappers are not yet retrainable" ProxyClassifier._set_retrainable(self, value, **kwargs) pymvpa2-2.6.4/mvpa2/clfs/model_selector.py000066400000000000000000000273711323370031300204540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Model selction.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals from mvpa2.misc.exceptions import InvalidHyperparameterError if externals.exists("scipy", raise_=True): import scipy.linalg as SL # no sense to import this module if openopt is not available if externals.exists("openopt", raise_=True): try: from openopt import NLP except ImportError: from scikits.openopt import NLP if __debug__: from mvpa2.base import debug def _openopt_debug(): # shut up or make verbose OpenOpt # (-1 = no logs, 0 = small log, 1 = verbose) if __debug__: da = debug.active if 'OPENOPT' in da: return 1 elif 'MOD_SEL' in da: return 0 return -1 class ModelSelector(object): """Model selection facility. Select a model among multiple models (i.e., a parametric model, parametrized by a set of hyperparamenters). """ def __init__(self, parametric_model, dataset): """TODO: """ self.parametric_model = parametric_model self.dataset = dataset self.hyperparameters_best = None self.log_marginal_likelihood_best = None self.problem = None pass def max_log_marginal_likelihood(self, hyp_initial_guess, maxiter=1, optimization_algorithm="scipy_cg", ftol=1.0e-3, fixedHypers=None, use_gradient=False, logscale=False): """ Set up the optimization problem in order to maximize the log_marginal_likelihood. Parameters ---------- parametric_model : Classifier the actual parameteric model to be optimized. hyp_initial_guess : numpy.ndarray set of hyperparameters' initial values where to start optimization. optimization_algorithm : string actual name of the optimization algorithm. See http://scipy.org/scipy/scikits/wiki/NLP for a comprehensive/updated list of available NLP solvers. (Defaults to 'ralg') ftol : float threshold for the stopping criterion of the solver, which is mapped in OpenOpt NLP.ftol (Defaults to 1.0e-3) fixedHypers : numpy.ndarray (boolean array) boolean vector of the same size of hyp_initial_guess; 'False' means that the corresponding hyperparameter must be kept fixed (so not optimized). (Defaults to None, which during means all True) Notes ----- The maximization of log_marginal_likelihood is a non-linear optimization problem (NLP). This fact is confirmed by Dmitrey, author of OpenOpt. """ self.problem = None self.use_gradient = use_gradient self.logscale = logscale # use log-scale on hyperparameters to enhance numerical stability self.optimization_algorithm = optimization_algorithm self.hyp_initial_guess = np.array(hyp_initial_guess) self.hyp_initial_guess_log = np.log(self.hyp_initial_guess) if fixedHypers is None: fixedHypers = np.zeros(self.hyp_initial_guess.shape[0],dtype=bool) pass self.freeHypers = -fixedHypers if self.logscale: self.hyp_running_guess = self.hyp_initial_guess_log.copy() else: self.hyp_running_guess = self.hyp_initial_guess.copy() pass self.f_last_x = None def f(x): """ Wrapper to the log_marginal_likelihood to be maximized. """ # XXX EO: since some OpenOpt NLP solvers does not # implement lower bounds the hyperparameters bounds are # implemented inside PyMVPA: (see dmitrey's post on # [SciPy-user] 20080628). # # XXX EO: OpenOpt does not implement optimization of a # subset of the hyperparameters so it is implemented here. # # XXX EO: OpenOpt does not implement logrithmic scale of # the hyperparameters (to enhance numerical stability), so # it is implemented here. self.f_last_x = x.copy() self.hyp_running_guess[self.freeHypers] = x # REMOVE print "guess:",self.hyp_running_guess,x try: if self.logscale: self.parametric_model.set_hyperparameters(np.exp(self.hyp_running_guess)) else: self.parametric_model.set_hyperparameters(self.hyp_running_guess) pass except InvalidHyperparameterError: if __debug__: debug("MOD_SEL","WARNING: invalid hyperparameters!") return -np.inf try: self.parametric_model.train(self.dataset) except (np.linalg.linalg.LinAlgError, SL.basic.LinAlgError, ValueError): # Note that ValueError could be raised when Cholesky gets Inf or Nan. if __debug__: debug("MOD_SEL", "WARNING: Cholesky failed! Invalid hyperparameters!") return -np.inf log_marginal_likelihood = self.parametric_model.compute_log_marginal_likelihood() # REMOVE print log_marginal_likelihood return log_marginal_likelihood def df(x): """ Proxy to the log_marginal_likelihood first derivative. Necessary for OpenOpt when using derivatives. """ self.hyp_running_guess[self.freeHypers] = x # REMOVE print "df guess:",self.hyp_running_guess,x # XXX EO: Most of the following lines can be skipped if # df() is computed just after f() with the same # hyperparameters. The partial results obtained during f() # are what is needed for df(). For now, in order to avoid # bugs difficult to trace, we keep this redunundancy. A # deep check with how OpenOpt works or using memoization # should solve this issue. try: if self.logscale: self.parametric_model.set_hyperparameters(np.exp(self.hyp_running_guess)) else: self.parametric_model.set_hyperparameters(self.hyp_running_guess) pass except InvalidHyperparameterError: if __debug__: debug("MOD_SEL", "WARNING: invalid hyperparameters!") return -np.inf # Check if it is possible to avoid useless computations # already done in f(). According to tests and information # collected from OpenOpt people, it is sufficiently # unexpected that the following test succeed: if np.any(x!=self.f_last_x): if __debug__: debug("MOD_SEL","UNEXPECTED: recomputing train+log_marginal_likelihood.") try: self.parametric_model.train(self.dataset) except (np.linalg.linalg.LinAlgError, SL.basic.LinAlgError, ValueError): if __debug__: debug("MOD_SEL", "WARNING: Cholesky failed! Invalid hyperparameters!") # XXX EO: which value for the gradient to return to # OpenOpt when hyperparameters are wrong? return np.zeros(x.size) log_marginal_likelihood = self.parametric_model.compute_log_marginal_likelihood() # recompute what's needed (to be safe) REMOVE IN FUTURE! pass if self.logscale: gradient_log_marginal_likelihood = self.parametric_model.compute_gradient_log_marginal_likelihood_logscale() else: gradient_log_marginal_likelihood = self.parametric_model.compute_gradient_log_marginal_likelihood() pass # REMOVE print "grad:",gradient_log_marginal_likelihood return gradient_log_marginal_likelihood[self.freeHypers] if self.logscale: # vector of hyperparameters' values where to start the search x0 = self.hyp_initial_guess_log[self.freeHypers] else: x0 = self.hyp_initial_guess[self.freeHypers] pass self.contol = 1.0e-20 # Constraint tolerance level # XXX EO: is it necessary to use contol when self.logscale is # True and there is no lb? Ask dmitrey. if self.use_gradient: # actual instance of the OpenOpt non-linear problem self.problem = NLP(f, x0, df=df, contol=self.contol, goal='maximum') else: self.problem = NLP(f, x0, contol=self.contol, goal='maximum') pass self.problem.name = "Max LogMargLikelihood" if not self.logscale: # set lower bound for hyperparameters: avoid negative # hyperparameters. Note: problem.n is the size of # hyperparameters' vector self.problem.lb = np.zeros(self.problem.n)+self.contol pass # max number of iterations for the optimizer. self.problem.maxiter = maxiter # check whether the derivative of log_marginal_likelihood converged to # zero before ending optimization self.problem.checkdf = True # set increment of log_marginal_likelihood under which the optimizer stops self.problem.ftol = ftol self.problem.iprint = _openopt_debug() return self.problem def solve(self, problem=None): """Solve the maximization problem, check outcome and collect results. """ # XXX: this method can be made more abstract in future in the # sense that it could work not only for # log_marginal_likelihood but other measures as well # (e.g. cross-valideted error). if np.all(self.freeHypers==False): # no optimization needed self.hyperparameters_best = self.hyp_initial_guess.copy() try: self.parametric_model.set_hyperparameters(self.hyperparameters_best) except InvalidHyperparameterError: if __debug__: debug("MOD_SEL", "WARNING: invalid hyperparameters!") self.log_marginal_likelihood_best = -np.inf return self.log_marginal_likelihood_best self.parametric_model.train(self.dataset) self.log_marginal_likelihood_best = self.parametric_model.compute_log_marginal_likelihood() return self.log_marginal_likelihood_best result = self.problem.solve(self.optimization_algorithm) # perform optimization! if result.stopcase == -1: # XXX: should we use debug() for the following messages? # If so, how can we track the missing convergence to a # solution? print "Unable to find a maximum to log_marginal_likelihood" elif result.stopcase == 0: print "Limits exceeded" elif result.stopcase == 1: self.hyperparameters_best = self.hyp_initial_guess.copy() if self.logscale: self.hyperparameters_best[self.freeHypers] = np.exp(result.xf) # best hyperparameters found # NOTE is it better to return a copy? else: self.hyperparameters_best[self.freeHypers] = result.xf pass self.log_marginal_likelihood_best = result.ff # actual best vuale of log_marginal_likelihood pass self.stopcase = result.stopcase return self.log_marginal_likelihood_best pass pymvpa2-2.6.4/mvpa2/clfs/plr.py000066400000000000000000000155251323370031300162470ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Penalized logistic regression classifier.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.misc.exceptions import ConvergenceError from mvpa2.base.learner import FailedToTrainError from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples if __debug__: from mvpa2.base import debug class PLR(Classifier): """Penalized logistic regression `Classifier`. """ __tags__ = [ 'plr', 'binary', 'linear', 'has_sensitivity' ] def __init__(self, lm=1, criterion=1, reduced=0.0, maxiter=20, **kwargs): """ Initialize a penalized logistic regression analysis Parameters ---------- lm : int the penalty term lambda. criterion : int the criterion applied to judge convergence. reduced : float if not 0, the rank of the data is reduced before performing the calculations. In that case, reduce is taken as the fraction of the first singular value, at which a dimension is not considered significant anymore. A reasonable criterion is reduced=0.01 maxiter : int maximum number of iterations. If no convergence occurs after this number of iterations, an exception is raised. """ # init base class first Classifier.__init__(self, **kwargs) self.__lm = lm self.__criterion = criterion self.__reduced = reduced self.__maxiter = maxiter def __repr__(self): """String summary over the object """ return """PLR(lm=%f, criterion=%d, reduced=%s, maxiter=%d, enable_ca=%s)""" % \ (self.__lm, self.__criterion, self.__reduced, self.__maxiter, str(self.ca.enabled)) def _train(self, data): """Train the classifier using `data` (`Dataset`). """ # Set up the environment for fitting the data X = data.samples.T d = self._attrmap.to_numeric(data.sa[self.get_space()].value) if set(d) != set([0, 1]): raise ValueError, \ "Regressors for logistic regression should be [0,1]. Got %s" \ %(set(d),) if self.__reduced != 0 : # Data have reduced rank from scipy.linalg import svd # Compensate for reduced rank: # Select only the n largest eigenvectors U, S, V = svd(X.T) if S[0] == 0: raise FailedToTrainError( "Data provided to PLR seems to be degenerate -- " "0-th singular value is 0") S /= S[0] V = np.matrix(V[:, :np.max(np.where(S > self.__reduced)) + 1]) # Map Data to the subspace spanned by the eigenvectors X = (X.T * V).T nfeatures, npatterns = X.shape # Weighting vector w = np.matrix(np.zeros( (nfeatures + 1, 1), 'd')) # Error for convergence criterion dw = np.matrix(np.ones( (nfeatures + 1, 1), 'd')) # Patterns of interest in the columns X = np.matrix( \ np.concatenate((X, np.ones((1, npatterns), 'd')), 0) \ ) p = np.matrix(np.zeros((1, npatterns), 'd')) # Matrix implementation of penalty term Lambda = self.__lm * np.identity(nfeatures + 1, 'd') Lambda[nfeatures, nfeatures] = 0 # Gradient g = np.matrix(np.zeros((nfeatures + 1, 1), 'd')) # Fisher information matrix H = np.matrix(np.identity(nfeatures + 1, 'd')) # Optimize k = 0 while np.sum(np.ravel(dw.A ** 2)) > self.__criterion: p[:, :] = self.__f(w.T * X) g[:, :] = X * (d - p).T - Lambda * w H[:, :] = X * np.diag(p.A1 * (1 - p.A1)) * X.T + Lambda dw[:, :] = H.I * g w += dw k += 1 if k > self.__maxiter: raise ConvergenceError, \ "More than %d Iterations without convergence" % \ (self.__maxiter) if __debug__: debug("PLR", \ "PLR converged after %d steps. Error: %g" % \ (k, np.sum(np.ravel(dw.A ** 2)))) if self.__reduced: # We have computed in rank reduced space -> # Project to original space self.w = V * w[:-1] self.bias = w[-1] else: self.w = w[:-1] self.bias = w[-1] def __f(self, y): """This is the logistic function f, that is used for determination of the vector w""" return 1. / (1 + np.exp(-y)) @accepts_dataset_as_samples def _predict(self, data): """ Predict the class labels for the provided data Returns a list of class labels """ # make sure the data are in matrix form data = np.matrix(np.asarray(data)) # get the values and then predictions values = np.ravel(self.__f(self.bias + data * self.w)) predictions = (values > 0.5).astype(int) # save the state if desired, relying on State._setitem_ to # decide if we will actually save the values self.ca.predictions = predictions self.ca.estimates = values return predictions def get_sensitivity_analyzer(self, **kwargs): """Returns a sensitivity analyzer for PLR.""" return PLRWeights(self, **kwargs) from mvpa2.base.state import ConditionalAttribute from mvpa2.base.types import asobjarray from mvpa2.measures.base import Sensitivity from mvpa2.datasets.base import Dataset class PLRWeights(Sensitivity): """`Sensitivity` reporting linear weights of PLR""" _LEGAL_CLFS = [ PLR ] def _call(self, dataset=None): """Extract weights from PLR classifier. PLR always has weights available, so nothing has to be computed here. """ clf = self.clf attrmap = clf._attrmap if attrmap: # labels (values of the corresponding space) which were used # for mapping Here we rely on the fact that they are sorted # originally (just an arange()) labels_num = attrmap.values() labels = attrmap.to_literal(asobjarray([tuple(sorted(labels_num))]), recurse=True) else: labels = [(0, 1)] # we just had our good old numeric ones ds = Dataset(clf.w.T, sa={clf.get_space(): labels, 'biases' : [clf.bias]}) return ds pymvpa2-2.6.4/mvpa2/clfs/ridge.py000066400000000000000000000065141323370031300165420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Ridge regression classifier.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals if externals.exists("scipy", raise_=True): from scipy.linalg import lstsq from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples class RidgeReg(Classifier): """Ridge regression `Classifier`. This ridge regression adds an intercept term so your labels do not have to be zero-centered. """ __tags__ = ['ridge', 'regression', 'linear'] def __init__(self, lm=None, **kwargs): """ Initialize a ridge regression analysis. Parameters ---------- lm : float the penalty term lambda. (Defaults to .05*nFeatures) """ # init base class first Classifier.__init__(self, **kwargs) # pylint happiness self.w = None # It does not make sense to calculate a confusion matrix for a # ridge regression self.ca.enable('training_stats', False) # verify that they specified lambda self.__lm = lm # store train method config self.__implementation = 'direct' def __repr__(self): """String summary of the object """ if self.__lm is None: return """Ridge(lm=.05*nfeatures, enable_ca=%s)""" % \ (str(self.ca.enabled)) else: return """Ridge(lm=%f, enable_ca=%s)""" % \ (self.__lm, str(self.ca.enabled)) def _train(self, data): """Train the classifier using `data` (`Dataset`). """ if self.__implementation == "direct": # create matrices to solve with additional penalty term # determine the lambda matrix if self.__lm is None: # Not specified, so calculate based on .05*nfeatures Lambda = .05*data.nfeatures*np.eye(data.nfeatures) else: # use the provided penalty Lambda = self.__lm*np.eye(data.nfeatures) # add the penalty term a = np.concatenate( \ (np.concatenate((data.samples, np.ones((data.nsamples, 1))), 1), np.concatenate((Lambda, np.zeros((data.nfeatures, 1))), 1))) b = np.concatenate((data.sa[self.get_space()].value, np.zeros(data.nfeatures))) # perform the least sq regression and save the weights self.w = lstsq(a, b)[0] else: raise ValueError, "Unknown implementation '%s'" \ % self.__implementation @accepts_dataset_as_samples def _predict(self, data): """ Predict the output for the provided data. """ # predict using the trained weights pred = np.dot(np.concatenate((data, np.ones((len(data), 1))), 1), self.w) # estimates equal predictions in this case self.ca.estimates = pred return pred pymvpa2-2.6.4/mvpa2/clfs/sg/000077500000000000000000000000001323370031300155015ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/clfs/sg/__init__.py000066400000000000000000000015131323370031300176120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Classifiers provided by shogun (sg) library""" __docformat__ = 'restructuredtext' from mvpa2.base import externals if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.clfs.sg') def setup_module(module): if not externals.exists('shogun'): from nose.plugins.skip import SkipTest raise SkipTest if externals.exists('shogun'): from mvpa2.clfs.sg.svm import SVM if __debug__: debug('INIT', 'mvpa2.clfs.sg end') pymvpa2-2.6.4/mvpa2/clfs/sg/sens.py000066400000000000000000000107021323370031300170230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Provide sensitivity measures for sg's SVM.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals if externals.exists('shogun', raise_=True): import shogun.Classifier _shogun_exposes_slavesvm_labels = externals.versions['shogun:rev'] < 4633 from mvpa2.base.state import ConditionalAttribute from mvpa2.base.types import asobjarray from mvpa2.measures.base import Sensitivity from mvpa2.datasets.base import Dataset if __debug__: from mvpa2.base import debug class LinearSVMWeights(Sensitivity): """`Sensitivity` that reports the weights of a linear SVM trained on a given `Dataset`. """ def __init__(self, clf, **kwargs): """Initialize the analyzer with the classifier it shall use. Parameters ---------- clf : LinearSVM classifier to use. Only classifiers sub-classed from `LinearSVM` may be used. """ # init base classes first Sensitivity.__init__(self, clf, **kwargs) def __sg_helper(self, svm): """Helper function to compute sensitivity for a single given SVM""" bias = svm.get_bias() # if it has get_w (linear ones like SVMOcas) -- use it, # otherwise resort to recomputing if hasattr(svm, 'get_w'): res = svm.get_w() else: svcoef = np.matrix(svm.get_alphas()) svnums = svm.get_support_vectors() svs = self.clf.traindataset.samples[svnums,:] res = (svcoef * svs).mean(axis=0).A1 return res, bias def _call(self, dataset): # XXX Hm... it might make sense to unify access functions # naming across our swig libsvm wrapper and sg access # functions for svm clf = self.clf sgsvm = clf.svm sens_labels = None if isinstance(sgsvm, shogun.Classifier.MultiClassSVM): sens, biases = [], [] nsvms = sgsvm.get_num_svms() clabels = sorted(clf._attrmap.values()) nclabels = len(clabels) sens_labels = [] isvm = 0 # index for svm among known for i in xrange(nclabels): for j in xrange(i+1, nclabels): sgsvmi = sgsvm.get_svm(isvm) labels_tuple = (clabels[i], clabels[j]) # Since we gave the labels in incremental order, # we always should be right - but it does not # hurt to check if set of labels is the same if __debug__ and _shogun_exposes_slavesvm_labels: if not sgsvmi.get_labels(): # We need to call classify() so labels get assigned # to the multiclass SVM sgsvm.classify() assert(set([sgsvmi.get_label(int(x)) for x in sgsvmi.get_support_vectors()]) == set(labels_tuple)) sens1, bias = self.__sg_helper(sgsvmi) sens.append(sens1) biases.append(bias) sens_labels += [labels_tuple[::-1]] # ??? positive first isvm += 1 assert(len(sens) == nsvms) # we should have covered all else: sens1, bias = self.__sg_helper(sgsvm) biases = np.atleast_1d(bias) sens = np.atleast_2d(sens1) if not clf.__is_regression__: assert(set(clf._attrmap.values()) == set([-1.0, 1.0])) assert(sens.shape[0] == 1) sens_labels = [(-1.0, 1.0)] ds = Dataset(np.atleast_2d(sens)) if sens_labels is not None: if isinstance(sens_labels[0], tuple): # Need to have them in array of dtype object sens_labels = asobjarray(sens_labels) if len(clf._attrmap): sens_labels = clf._attrmap.to_literal(sens_labels, recurse=True) ds.sa[clf.get_space()] = sens_labels ds.sa['biases'] = biases return ds pymvpa2-2.6.4/mvpa2/clfs/sg/svm.py000066400000000000000000000705271323370031300166730ustar00rootroot00000000000000# emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrap the libsvm package into a very simple class interface.""" __docformat__ = 'restructuredtext' _DEV__doc__ = """ TODOs: * dual-license under GPL for use of SG? * for recent versions add ability to specify/parametrize normalization scheme for the kernel, and reuse 'scale' now for the normalizer * Add support for simplified linear classifiers (which do not require storing all training SVs/samples to make classification in predict()) """ import numpy as np from mvpa2 import _random_seed # Rely on SG from mvpa2.base import externals, warning if externals.exists('shogun', raise_=True): import shogun.Features import shogun.Classifier import shogun.Regression #import shogun.Kernel import shogun.Library from mvpa2.kernels.sg import SGKernel, LinearSGKernel # set the default kernel here, to be able to import this module # when building the docs without SG _default_kernel_class_ = LinearSGKernel # Figure out debug IDs once and for all if hasattr(shogun.Classifier, 'M_DEBUG'): _M_DEBUG = shogun.Classifier.M_DEBUG _M_ERROR = shogun.Classifier.M_ERROR _M_GCDEBUG = None elif hasattr(shogun.Classifier, 'MSG_DEBUG'): _M_DEBUG = shogun.Classifier.MSG_DEBUG _M_ERROR = shogun.Classifier.MSG_ERROR else: _M_DEBUG, _M_ERROR = None, None warning("Could not figure out debug IDs within shogun. " "No control over shogun verbosity would be provided") # Highest level if hasattr(shogun.Classifier, 'MSG_GCDEBUG'): _M_GCDEBUG = shogun.Classifier.MSG_GCDEBUG else: _M_GCDEBUG = None else: # set a fake default kernel here, to be able to import this module # when building the docs without SG _default_kernel_class_ = None import operator from mvpa2.base.param import Parameter from mvpa2.misc.attrmap import AttributeMap from mvpa2.clfs.base import accepts_dataset_as_samples, \ accepts_samples_as_dataset from mvpa2.base.learner import FailedToTrainError from mvpa2.clfs.meta import MulticlassClassifier from mvpa2.clfs._svmbase import _SVM from mvpa2.base.state import ConditionalAttribute from mvpa2.measures.base import Sensitivity from sens import * from mvpa2.support.due import due, BibTeX if __debug__: from mvpa2.base import debug def seed(random_seed): if __debug__: debug('SG', "Seeding shogun's RNG with %s" % random_seed) try: # reuse the same seed for shogun shogun.Library.Math_init_random(random_seed) except Exception, e: warning('Shogun cannot be seeded due to %s' % (e,)) seed(_random_seed) def _setdebug(obj, partname): """Helper to set level of debugging output for SG Parameters ---------- obj In SG debug output seems to be set per every object partname : str For what kind of object we are talking about... could be automated later on (TODO) """ if _M_DEBUG is None: return debugname = "SG_%s" % partname.upper() switch = {True: (_M_DEBUG, 'M_DEBUG', "enable"), False: (_M_ERROR, 'M_ERROR', "disable"), 'GCDEBUG': (_M_GCDEBUG, 'M_GCDEBUG', "enable")} if __debug__: if 'SG_GC' in debug.active: key = 'GCDEBUG' else: key = debugname in debug.active else: key = False sglevel, slevel, progressfunc = switch[key] if __debug__ and 'SG_' in debug.active: debug("SG_", "Setting verbosity for shogun.%s instance: %s to %s" % (partname, `obj`, slevel)) if sglevel is not None: obj.io.set_loglevel(sglevel) if __debug__ and 'SG_LINENO' in debug.active: try: obj.io.enable_file_and_line() except AttributeError, e: warning("Cannot enable SG_LINENO debug target for shogun %s" % externals.versions['shogun']) try: exec "obj.io.%s_progress()" % progressfunc except: warning("Shogun version %s has no way to enable progress" + " reports" % externals.versions['shogun']) # Still in use by non-kernel classifiers, e.g. SVMOcas def _tosg(data): """Draft helper function to convert data we have into SG suitable format TODO: Remove once kernels are implemented here (or, possibly for non-kernel solvers, modify?) """ if __debug__: debug("SG_", "Converting data for shogun into RealFeatures") features = shogun.Features.RealFeatures(data.astype('double').T) if __debug__: debug("SG__", "Done converting data for shogun into RealFeatures") _setdebug(features, 'Features') return features class SVM(_SVM): """Support Vector Machine Classifier(s) based on Shogun This is a simple base interface """ __default_kernel_class__ = _default_kernel_class_ num_threads = Parameter(1, min=1, doc='Number of threads to utilize') _KNOWN_PARAMS = [ 'epsilon' ] __tags__ = _SVM.__tags__ + [ 'sg', 'retrainable' ] # Some words of wisdom from shogun author: # XXX remove after proper comments added to implementations """ If you'd like to train linear SVMs use SGD or OCAS. These are (I am serious) the fastest linear SVM-solvers to date. (OCAS cannot do SVMs with standard additive bias, but will L2 reqularize it - though it should not matter much in practice (although it will give slightly different solutions)). Note that SGD has no stopping criterion (you simply have to specify the number of iterations) and that OCAS has a different stopping condition than svmlight for example which may be more tight and more loose depending on the problem - I sugeest 1e-2 or 1e-3 for epsilon. If you would like to train kernel SVMs use libsvm/gpdt/svmlight - depending on the problem one is faster than the other (hard to say when, I *think* when your dataset is very unbalanced chunking methods like svmlight/gpdt are better), for smaller problems definitely libsvm. If you use string kernels then gpdt/svmlight have a special 'linadd' speedup for this (requires sg 0.6.2 - there was some inefficiency in the code for python-modular before that). This is effective for big datasets and (I trained on 10 million strings based on this). And yes currently we only implemented parallel training for svmlight, however all SVMs can be evaluated in parallel. """ _KNOWN_SENSITIVITIES={'linear':LinearSVMWeights, } _KNOWN_IMPLEMENTATIONS = {} if externals.exists('shogun', raise_=True): _KNOWN_IMPLEMENTATIONS = { "libsvm" : (shogun.Classifier.LibSVM, ('C',), ('multiclass', 'binary'), "LIBSVM's C-SVM (L2 soft-margin SVM)"), "gmnp" : (shogun.Classifier.GMNPSVM, ('C',), ('multiclass', 'binary'), "Generalized Nearest Point Problem SVM"), # XXX should have been GPDT, shogun has it fixed since some version "gpbt" : (shogun.Classifier.GPBTSVM, ('C',), ('binary',), "Gradient Projection Decomposition Technique for " \ "large-scale SVM problems"), "gnpp" : (shogun.Classifier.GNPPSVM, ('C',), ('binary',), "Generalized Nearest Point Problem SVM"), ## TODO: Needs sparse features... # "svmlin" : (shogun.Classifier.SVMLin, ''), # "liblinear" : (shogun.Classifier.LibLinear, ''), # "subgradient" : (shogun.Classifier.SubGradientSVM, ''), ## good 2-class linear SVMs # "ocas" : (shogun.Classifier.SVMOcas, ''), # "sgd" : ( shogun.Classifier.SVMSGD, ''), # regressions "libsvr": (shogun.Regression.LibSVR, ('C', 'tube_epsilon',), ('regression',), "LIBSVM's epsilon-SVR"), } def __init__(self, **kwargs): """Interface class to Shogun's classifiers and regressions. Default implementation is 'libsvm'. """ svm_impl = kwargs.get('svm_impl', 'libsvm').lower() kwargs['svm_impl'] = svm_impl # init base class _SVM.__init__(self, **kwargs) self.__svm = None """Holds the trained svm.""" self.__svm_apply = None """Compatibility convenience to bind to the classify/apply method of __svm""" # Need to store original data... # TODO: keep 1 of them -- just __traindata or __traindataset # For now it is needed for computing sensitivities self.__traindataset = None # internal SG swig proxies self.__traindata = None self.__kernel = None self.__kernel_test = None self.__testdata = None # remove kernel-based for some # TODO RF: provide separate handling for non-kernel machines if svm_impl in ['svmocas']: if not (self.__kernel is None or self.__kernel.__kernel_name__ == 'linear'): raise ValueError( "%s is inherently linear, thus provided kernel %s " "is of no effect" % (svm_impl, self.__kernel)) self.__tags__.pop(self.__tags__.index('kernel-based')) self.__tags__.pop(self.__tags__.index('retrainable')) # TODO: integrate with kernel framework #def __condition_kernel(self, kernel): ## XXX I thought that it is needed only for retrainable classifier, ## but then krr gets confused, and svrlight needs it to provide ## meaningful results even without 'retraining' #if self._svm_impl in ['svrlight', 'lightsvm']: #try: #kernel.set_precompute_matrix(True, True) #except Exception, e: ## N/A in shogun 0.9.1... TODO: RF #if __debug__: #debug('SG_', "Failed call to set_precompute_matrix for %s: %s" #% (self, e)) @due.dcite( BibTeX(""" @article{Sonnenburg+2010:Shogun, author = {Sonnenburg, Sören and Rätsch, Gunnar and Henschel, Sebastian and Widmer, Christian and Behr, Jonas and Zien, Alexander and Bona, Fabio de and Binder, Alexander and Gehl, Christian and Franc, VojtÄ›ch}, title = {The SHOGUN Machine Learning Toolbox}, journal = {J. Mach. Learn. Res.}, issue_date = {3/1/2010}, volume = {11}, month = aug, year = {2010}, issn = {1532-4435}, pages = {1799--1802}, numpages = {4}, url = {http://dl.acm.org/citation.cfm?id=1756006.1859911}, acmid = {1859911}, publisher = {JMLR.org}, }"""), description="Shogun: Machine learning toolbox. SVM implementations", path="shogun", version=externals.versions['shogun'], tags=["implementation"]) def _train(self, dataset): """Train SVM """ super(SVM, self)._train(dataset) # XXX watchout # self.untrain() newkernel, newsvm = False, False # local bindings for faster lookup params = self.params retrainable = self.params.retrainable targets_sa_name = self.get_space() # name of targets sa targets_sa = dataset.sa[targets_sa_name] # actual targets sa if retrainable: _changedData = self._changedData # LABELS ul = None self.__traindataset = dataset # OK -- we have to map labels since # binary ones expect -1/+1 # Multiclass expect labels starting with 0, otherwise they puke # when ran from ipython... yikes if __debug__: debug("SG_", "Creating labels instance") if self.__is_regression__: labels_ = np.asarray(targets_sa.value, dtype='double') else: ul = targets_sa.unique # ul.sort() if len(ul) == 2: # assure that we have -1/+1 _labels_dict = {ul[0]:-1.0, ul[1]:+1.0} elif len(ul) < 2: raise FailedToTrainError, \ "We do not have 1-class SVM brought into SG yet" else: # can't use plain enumerate since we need them swapped _labels_dict = dict([ (u, i) for i, u in enumerate(ul)]) # Create SG-customized attrmap to assure -1 / +1 if necessary self._attrmap = AttributeMap(_labels_dict, mapnumeric=True) if __debug__: debug("SG__", "Mapping labels using dict %s" % _labels_dict) labels_ = self._attrmap.to_numeric(targets_sa.value).astype(float) labels = shogun.Features.Labels(labels_) _setdebug(labels, 'Labels') # KERNEL # XXX cruel fix for now... whole retraining business needs to # be rethought if retrainable: _changedData['kernel_params'] = _changedData.get('kernel_params', False) # TODO: big RF to move non-kernel classifiers away if 'kernel-based' in self.__tags__ and (not retrainable or _changedData['traindata'] or _changedData['kernel_params']): # If needed compute or just collect arguments for SVM and for # the kernel if retrainable and __debug__: if _changedData['traindata']: debug("SG", "Re-Creating kernel since training data has changed") if _changedData['kernel_params']: debug("SG", "Re-Creating kernel since params %s has changed" % _changedData['kernel_params']) k = self.params.kernel k.compute(dataset) self.__kernel = kernel = k.as_raw_sg() newkernel = True self.kernel_params.reset() # mark them as not-changed #_setdebug(kernel, 'Kernels') #self.__condition_kernel(kernel) if retrainable: if __debug__: debug("SG_", "Resetting test kernel for retrainable SVM") self.__kernel_test = None # TODO -- handle _changedData['params'] correctly, ie without recreating # whole SVM Cs = None if not retrainable or self.__svm is None or _changedData['params']: # SVM if 'C' in self.params: Cs = self._get_cvec(dataset) # XXX do not jump over the head and leave it up to the user # ie do not rescale automagically by the number of samples #if len(Cs) == 2 and not ('regression' in self.__tags__) and len(ul) == 2: # # we were given two Cs # if np.max(C) < 0 and np.min(C) < 0: # # and both are requested to be 'scaled' TODO : # # provide proper 'features' to the parameters, # # so we could specify explicitely if to scale # # them by the number of samples here # nl = [np.sum(labels_ == _labels_dict[l]) for l in ul] # ratio = np.sqrt(float(nl[1]) / nl[0]) # #ratio = (float(nl[1]) / nl[0]) # Cs[0] *= ratio # Cs[1] /= ratio # if __debug__: # debug("SG_", "Rescaled Cs to %s to accomodate the " # "difference in number of training samples" % # Cs) # Choose appropriate implementation svm_impl_class = self.__get_implementation(ul) if __debug__: debug("SG", "Creating SVM instance of %s" % `svm_impl_class`) if self._svm_impl in ['libsvr', 'svrlight']: # for regressions constructor a bit different self.__svm = svm_impl_class(Cs[0], self.params.tube_epsilon, self.__kernel, labels) # we need to set epsilon explicitly self.__svm.set_epsilon(self.params.epsilon) elif self._svm_impl in ['krr']: self.__svm = svm_impl_class(self.params.tau, self.__kernel, labels) elif 'kernel-based' in self.__tags__: self.__svm = svm_impl_class(Cs[0], self.__kernel, labels) self.__svm.set_epsilon(self.params.epsilon) else: traindata_sg = _tosg(dataset.samples) self.__svm = svm_impl_class(Cs[0], traindata_sg, labels) self.__svm.set_epsilon(self.params.epsilon) # To stay compatible with versions across API changes in sg 1.0.0 self.__svm_apply = externals.versions['shogun'] >= '1' \ and self.__svm.apply \ or self.__svm.classify # the last one for old API # Set shrinking if 'shrinking' in params: shrinking = params.shrinking if __debug__: debug("SG_", "Setting shrinking to %s" % shrinking) self.__svm.set_shrinking_enabled(shrinking) if Cs is not None and len(Cs) == 2: if __debug__: debug("SG_", "Since multiple Cs are provided: %s, assign them" % Cs) self.__svm.set_C(Cs[0], Cs[1]) self.params.reset() # mark them as not-changed newsvm = True _setdebug(self.__svm, 'SVM') # Set optimization parameters if 'tube_epsilon' in self.params and \ hasattr(self.__svm, 'set_tube_epsilon'): self.__svm.set_tube_epsilon(self.params.tube_epsilon) self.__svm.parallel.set_num_threads(self.params.num_threads) else: if __debug__: debug("SG_", "SVM instance is not re-created") if _changedData['targets']: # labels were changed if __debug__: debug("SG__", "Assigning new labels") self.__svm.set_labels(labels) if newkernel: # kernel was replaced if __debug__: debug("SG__", "Assigning new kernel") self.__svm.set_kernel(self.__kernel) assert(_changedData['params'] is False) # we should never get here if retrainable: # we must assign it only if it is retrainable self.ca.retrained = not newsvm or not newkernel # Train if __debug__ and 'SG' in debug.active: if not self.__is_regression__: lstr = " with labels %s" % targets_sa.unique else: lstr = "" debug("SG", "%sTraining %s on data%s" % (("","Re-")[retrainable and self.ca.retrained], self, lstr)) self.__svm.train() if __debug__: debug("SG_", "Done training SG_SVM %s" % self) # Report on training if (__debug__ and 'SG__' in debug.active) or \ self.ca.is_enabled('training_stats'): if __debug__: debug("SG_", "Assessing predictions on training data") trained_targets = self.__svm_apply().get_labels() else: trained_targets = None if __debug__ and "SG__" in debug.active: debug("SG__", "Original labels: %s, Trained labels: %s" % (targets_sa.value, trained_targets)) # Assign training confusion right away here since we are ready # to do so. # XXX TODO use some other conditional attribute like 'trained_targets' and # use it within base Classifier._posttrain to assign predictions # instead of duplicating code here # XXX For now it can be done only for regressions since labels need to # be remapped and that becomes even worse if we use regression # as a classifier so mapping happens upstairs if self.__is_regression__ and self.ca.is_enabled('training_stats'): self.ca.training_stats = self.__summary_class__( targets=targets_sa.value, predictions=trained_targets) # XXX actually this is the beast which started this evil conversion # so -- make use of dataset here! ;) @accepts_samples_as_dataset def _predict(self, dataset): """Predict values for the data """ retrainable = self.params.retrainable if retrainable: changed_testdata = self._changedData['testdata'] or \ self.__kernel_test is None if not retrainable: if __debug__: debug("SG__", "Initializing SVMs kernel of %s with training/testing samples" % self) self.params.kernel.compute(self.__traindataset, dataset) self.__kernel_test = self.params.kernel.as_sg()._k # We can just reuse kernel used for training #self.__condition_kernel(self.__kernel) else: if changed_testdata: #if __debug__: #debug("SG__", #"Re-creating testing kernel of %s giving " #"arguments %s" % #(`self._kernel_type`, self.__kernel_args)) self.params.kernel.compute(self.__traindataset, dataset) #_setdebug(kernel_test, 'Kernels') #_setdebug(kernel_test_custom, 'Kernels') self.__kernel_test = self.params.kernel.as_raw_sg() elif __debug__: debug("SG__", "Re-using testing kernel") assert(self.__kernel_test is not None) if 'kernel-based' in self.__tags__: self.__svm.set_kernel(self.__kernel_test) # doesn't do any good imho although on unittests helps tiny bit... hm #self.__svm.init_kernel_optimization() values_ = self.__svm_apply() else: testdata_sg = _tosg(dataset.samples) self.__svm.set_features(testdata_sg) values_ = self.__svm_apply() if __debug__: debug("SG_", "Classifying testing data") if values_ is None: raise RuntimeError, "We got empty list of values from %s" % self values = values_.get_labels() if retrainable: # we must assign it only if it is retrainable self.ca.repredicted = repredicted = not changed_testdata if __debug__: debug("SG__", "Re-assigning learing kernel. Repredicted is %s" % repredicted) # return back original kernel if 'kernel-based' in self.__tags__: self.__svm.set_kernel(self.__kernel) if __debug__: debug("SG__", "Got values %s" % values) if (self.__is_regression__): predictions = values else: if len(self._attrmap.keys()) == 2: predictions = np.sign(values) # since np.sign(0) == 0 predictions[predictions==0] = 1 else: predictions = values # remap labels back adjusting their type # XXX YOH: This is done by topclass now (needs RF) #predictions = self._attrmap.to_literal(predictions) if __debug__: debug("SG__", "Tuned predictions %s" % predictions) # store conditional attribute # TODO: extract values properly for multiclass SVMs -- # ie 1 value per label or pairs for all 1-vs-1 classifications self.ca.estimates = values ## to avoid leaks with not yet properly fixed shogun if not retrainable: try: testdata.free_features() except: pass return predictions def _untrain(self): super(SVM, self)._untrain() # untrain/clean the kernel -- we might not allow to drag SWIG # instance around BUT XXX -- make it work fine with # CachedKernel -- we might not want to fully "untrain" in such # case self.params.kernel.cleanup() # XXX unify naming if not self.params.retrainable: if __debug__: debug("SG__", "Untraining %(clf)s and destroying sg's SVM", msgargs={'clf':self}) # to avoid leaks with not yet properly fixed shogun # XXX make it nice... now it is just stable ;-) if True: # not self.__traindata is None: if True: # try: if self.__kernel is not None: del self.__kernel self.__kernel = None if self.__kernel_test is not None: del self.__kernel_test self.__kernel_test = None if self.__svm is not None: del self.__svm self.__svm = None self.__svm_apply = None if self.__traindata is not None: # Let in for easy demonstration of the memory leak in shogun #for i in xrange(10): # debug("SG__", "cachesize pre free features %s" % # (self.__svm.get_kernel().get_cache_size())) self.__traindata.free_features() del self.__traindata self.__traindata = None self.__traindataset = None #except: # pass if __debug__: debug("SG__", "Done untraining %(self)s and destroying sg's SVM", msgargs=locals()) elif __debug__: debug("SG__", "Not untraining %(self)s since it is retrainable", msgargs=locals()) def __get_implementation(self, ul): if self.__is_regression__ or len(ul) == 2: svm_impl_class = SVM._KNOWN_IMPLEMENTATIONS[self._svm_impl][0] else: if self._svm_impl == 'libsvm': svm_impl_class = shogun.Classifier.LibSVMMultiClass elif self._svm_impl == 'gmnp': svm_impl_class = shogun.Classifier.GMNPSVM else: raise RuntimeError, \ "Shogun: Implementation %s doesn't handle multiclass " \ "data. Got labels %s. Use some other classifier" % \ (self._svm_impl, self.__traindataset.sa[self.get_space()].unique) if __debug__: debug("SG_", "Using %s for multiclass data of %s" % (svm_impl_class, self._svm_impl)) return svm_impl_class svm = property(fget=lambda self: self.__svm) """Access to the SVM model.""" traindataset = property(fget=lambda self: self.__traindataset) """Dataset which was used for training TODO -- might better become conditional attribute I guess""" # Conditionally make some of the implementations available if they are # present in the present shogun if externals.exists('shogun'): for name, item, params, descr in \ [('mpd', "shogun.Classifier.MPDSVM", "('C',), ('binary',)", "MPD classifier from shogun"), ('lightsvm', "shogun.Classifier.SVMLight", "('C',), ('binary',)", "SVMLight classification http://svmlight.joachims.org/"), ('svrlight', "shogun.Regression.SVRLight", "('C','tube_epsilon',), ('regression',)", "SVMLight regression http://svmlight.joachims.org/"), ('krr', "shogun.Regression.KRR", "('tau',), ('regression',)", "Kernel Ridge Regression"), ('svmocas', "shogun.Classifier.SVMOcas", "('C',), ('binary', 'linear')", "SVM with OCAS (Optimized Cutting Plane Algorithm) solver"), ]: if externals.exists('shogun.%s' % name): exec "SVM._KNOWN_IMPLEMENTATIONS[\"%s\"] = (%s, %s, \"%s\")" \ % (name, item, params, descr) # Assign SVM class to limited set of LinearSVMWeights LinearSVMWeights._LEGAL_CLFS = [SVM] pymvpa2-2.6.4/mvpa2/clfs/similarity.py000066400000000000000000000057721323370031300176430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Similarity functions for prototype-based projection.""" import numpy as np from mvpa2.clfs.distance import squared_euclidean_distance if __debug__: from mvpa2.base import debug class Similarity(object): """Similarity function base class. """ def __repr__(self): return "Similarity()" def computed(self, data1, data2=None): raise NotImplementedError class SingleDimensionSimilarity(Similarity): """TODO .. math:: e^{(-|data1_j - data2_j|_2)} """ def __init__(self, d=0, **kwargs): """ Parameters ---------- d : int Dimension (feature) across which to compute similarity **kwargs Passed to Similarity """ Similarity.__init__(self, **kwargs) self.d = d def computed(self, data1, data2=None): if data2 is None: data2 = data1 self.similarity_matrix = np.exp(-np.abs(data1[:, self.d], data2[:, self.d])) return self.similarity_matrix class StreamlineSimilarity(Similarity): """Compute similarity between two streamlines. """ def __init__(self, distance, gamma=1.0): """ Parameters ---------- distance : func Distance measure gamma : float Exponent coefficient """ Similarity.__init__(self) self.distance = distance self.gamma = gamma def computed(self, data1, data2=None): if data2 is None: data2 = data1 self.distance_matrix = np.zeros((len(data1), len(data2))) # setup helpers to pull out content of object-type arrays if isinstance(data1, np.ndarray) and np.issubdtype(data1.dtype, np.object): d1extract = _pass_obj_content else: d1extract = lambda x: x if isinstance(data2, np.ndarray) and np.issubdtype(data2.dtype, np.object): d2extract = _pass_obj_content else: d2extract = lambda x: x # TODO: use np.fromfunction for i, d1 in enumerate(data1): for j, d2 in enumerate(data2): self.distance_matrix[i,j] = self.distance(d1extract(data1[i]), d2extract(data2[j])) self.similarity_matrix = np.exp(-self.gamma*self.distance_matrix) return self.similarity_matrix def _pass_obj_content(data): """Helper that can be used to return the content of a single-element array of type 'object' to access its real content. """ return data[0] pymvpa2-2.6.4/mvpa2/clfs/skl/000077500000000000000000000000001323370031300156615ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/clfs/skl/__init__.py000066400000000000000000000016171323370031300177770ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Classifiers provided by scikit-learn (skl) library""" __docformat__ = 'restructuredtext' from mvpa2.base import externals if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.clfs.skl') # to pacify the nose # (see e.g. http://nipy.bic.berkeley.edu/builders/pymvpa-py2.7-osx-10.8/builds/4/steps/shell_3/logs/stdio) # import submodules only if skl they need is available if externals.exists('skl'): from mvpa2.clfs.skl.base import SKLLearnerAdapter if __debug__: debug('INIT', 'mvpa2.clfs.skl end') pymvpa2-2.6.4/mvpa2/clfs/skl/base.py000066400000000000000000000120761323370031300171530ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Generic wrappers for learners (classifiers) provided by scikit-learn (AKA sklearn)""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning, externals from mvpa2.base.dochelpers import _repr_attrs from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.base.learner import FailedToTrainError, FailedToPredictError, \ DegenerateInputError # do conditional to be able to build module reference externals.exists('skl', raise_=True) class SKLLearnerAdapter(Classifier): """Generic adapter for instances of learners provided by scikits.learn Provides basic adaptation of interface (e.g. train -> fit) and wraps the constructed instance of a learner from skl, so it looks like any other learner present within PyMVPA (so obtains all the conditional attributes defined at the base level of a `Classifier`) Examples -------- TODO """ __tags__ = ['skl'] def __init__(self, skl_learner, tags=None, enforce_dim=None, **kwargs): """ Parameters ---------- skl_learner Existing instance of a learner from skl. It should implement `fit` and `predict`. If `predict_proba` is available in the interface, then conditional attribute `probabilities` becomes available as well tags : list of string What additional tags to attach to this learner. Tags are used in the queries to classifier or regression warehouses. enforce_dim : None or int, optional If not None, it would enforce given dimensionality for ``predict`` call, if all other trailing dimensions are degenerate. """ self._skl_learner = skl_learner self.enforce_dim = enforce_dim if tags: # So we make a per-instance copy self.__tags__ = self.__tags__ + tags Classifier.__init__(self, **kwargs) def __repr__(self): """String representation of `SKLLearnerWrapper` """ prefixes = [repr(self._skl_learner)] if self.__tags__ != ['skl']: prefixes += ['tags=%r' % [t for t in self.__tags__ if t != 'skl']] prefixes += _repr_attrs(self, ['enforce_dim']) return Classifier.__repr__(self, prefixes=prefixes) def _train(self, dataset): """Train the skl learner using `dataset` (`Dataset`). """ targets_sa = dataset.sa[self.get_space()] targets = targets_sa.value # Some sanity checking so some classifiers such as LDA do not # puke meaningless exceptions if 'lda' in self.__tags__: if not dataset.nsamples > len(targets_sa.unique): raise DegenerateInputError, \ "LDA requires # of samples exceeding # of classes" # we better map into numeric labels if it is not a regression if not 'regression' in self.__tags__: targets = self._attrmap.to_numeric(targets) try: # train underlying learner self._skl_learner.fit(dataset.samples, targets) except (ValueError, np.linalg.LinAlgError), e: raise FailedToTrainError, \ "Failed to train %s on %s. Got '%s' during call to fit()." \ % (self, dataset, e) @accepts_dataset_as_samples def _predict(self, data): """Predict using the skl learner """ try: res = self._skl_learner.predict(data) except Exception, e: raise FailedToPredictError, \ "Failed to predict %s on data of shape %s. Got '%s' during" \ " call to predict()." % (self, data.shape, e) if self.enforce_dim: res_dim = len(res.shape) if res_dim > self.enforce_dim: # would throw meaningful exception if not possible res = res.reshape(res.shape[:self.enforce_dim]) elif res_dim < self.enforce_dim: # broadcast res = res.reshape(res.shape + (1,)* (self.enforce_dim - res_dim)) # Estimate estimates after predict, so if something goes # wrong, above exception handling occurs if self.ca.is_enabled('probabilities'): if hasattr(self._skl_learner, 'predict_proba'): # Duplication of computation, since in many scenarios # predict() calls predict_proba() self.ca.probabilities = self._skl_learner.predict_proba(data) else: warning("%s has no predict_proba() defined, so no probability" " estimates could be extracted" % self._skl_learner) self.ca.estimates = res return res pymvpa2-2.6.4/mvpa2/clfs/smlr.py000066400000000000000000000561331323370031300164270ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Sparse Multinomial Logistic Regression classifier.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2 import _random_seed from mvpa2.base import warning, externals from mvpa2.clfs.base import Classifier, accepts_dataset_as_samples from mvpa2.measures.base import Sensitivity from mvpa2.misc.exceptions import ConvergenceError from mvpa2.base.param import Parameter from mvpa2.base.constraints import * from mvpa2.base.state import ConditionalAttribute from mvpa2.datasets.base import Dataset from mvpa2.support.due import due, Doi __all__ = [ "SMLR", "SMLRWeights" ] _DEFAULT_IMPLEMENTATION = "Python" if externals.exists('ctypes'): # Uber-fast C-version of the stepwise regression try: from mvpa2.clfs.libsmlrc import stepwise_regression as _cStepwiseRegression _DEFAULT_IMPLEMENTATION = "C" except OSError, e: warning("Failed to load fast implementation of SMLR. May be you " "forgotten to build it. We will use much slower pure-Python " "version. Original exception was %s" % (e,)) _cStepwiseRegression = None else: _cStepwiseRegression = None warning("SMLR implementation without ctypes is overwhelmingly slow." " You are strongly advised to install python-ctypes") if __debug__: from mvpa2.base import debug def _label2oneofm(labels, ulabels): """Convert labels to one-of-M form. TODO: Might be useful elsewhere so could migrate into misc/ """ # allocate for the new one-of-M labels new_labels = np.zeros((len(labels), len(ulabels))) # loop and convert to one-of-M for i, c in enumerate(ulabels): new_labels[labels == c, i] = 1 return new_labels class SMLR(Classifier): """Sparse Multinomial Logistic Regression `Classifier`. This is an implementation of the SMLR algorithm published in :ref:`Krishnapuram et al., 2005 ` (2005, IEEE Transactions on Pattern Analysis and Machine Intelligence). Be sure to cite that article if you use this classifier for your work. """ __tags__ = [ 'smlr', 'linear', 'has_sensitivity', 'binary', 'multiclass', 'oneclass', 'does_feature_selection', 'random_tie_breaking'] # XXX: later 'kernel-based'? lm = Parameter(.1, constraints=EnsureFloat() & EnsureRange(min=1e-10), doc="""The penalty term lambda. Larger values will give rise to more sparsification.""") convergence_tol = Parameter(1e-3, constraints=EnsureFloat() & EnsureRange(min=1e-10, max=1.0), doc="""When the weight change for each cycle drops below this value the regression is considered converged. Smaller values lead to tighter convergence.""") resamp_decay = Parameter(0.5, constraints=EnsureFloat() & EnsureRange(min=0.0, max=1.0), doc="""Decay rate in the probability of resampling a zero weight. 1.0 will immediately decrease to the min_resamp from 1.0, 0.0 will never decrease from 1.0.""") min_resamp = Parameter(0.001, constraints=EnsureFloat() & EnsureRange(min=1e-10, max=1.0), doc="Minimum resampling probability for zeroed weights") maxiter = Parameter(10000, constraints=EnsureInt() & EnsureRange(min=1), doc="""Maximum number of iterations before stopping if not converged.""") has_bias = Parameter(True, constraints='bool', doc="""Whether to add a bias term to allow fits to data not through zero""") fit_all_weights = Parameter(True, constraints='bool', doc="""Whether to fit weights for all classes or to the number of classes minus one. Both should give nearly identical results, but if you set fit_all_weights to True it will take a little longer and yield weights that are fully analyzable for each class. Also, note that the convergence rate may be different, but convergence point is the same.""") implementation = Parameter(_DEFAULT_IMPLEMENTATION, constraints=EnsureChoice('C', 'Python'), doc="""Use C or Python as the implementation of stepwise_regression. C version brings significant speedup thus is the default one.""") ties = Parameter('random', constraints='str', doc="""Resolve ties which could occur. At the moment only obvious ties resulting in identical weights per two classes are detected and resolved randomly by injecting small amount of noise into the estimates of tied categories. Set to False to avoid this behavior""") seed = Parameter(_random_seed, constraints=EnsureNone() | EnsureInt(), doc="""Seed to be used to initialize random generator, might be used to replicate the run""") unsparsify = Parameter(False, constraints='bool', doc="""***EXPERIMENTAL*** Whether to unsparsify the weights via regression. Note that it likely leads to worse classifier performance, but more interpretable weights.""") std_to_keep = Parameter(2.0, constraints='float', doc="""Standard deviation threshold of weights to keep when unsparsifying.""") def __init__(self, **kwargs): """Initialize an SMLR classifier. """ """ TODO: # Add in likelihood calculation # Add kernels, not just direct methods. """ # init base class first Classifier.__init__(self, **kwargs) if _cStepwiseRegression is None and self.params.implementation == 'C': warning('SMLR: C implementation is not available.' ' Using pure Python one') self.params.implementation = 'Python' # pylint friendly initializations self._ulabels = None """Unigue labels from the training set.""" self.__weights_all = None """Contains all weights including bias values""" self.__weights = None """Just the weights, without the biases""" self.__biases = None """The biases, will remain none if has_bias is False""" ##REF: Name was automagically refactored def _python_stepwise_regression(self, w, X, XY, Xw, E, auto_corr, lambda_over_2_auto_corr, S, M, maxiter, convergence_tol, resamp_decay, min_resamp, verbose, seed = None): """The (much slower) python version of the stepwise regression. I'm keeping this around for now so that we can compare results.""" # get the data information into easy vars ns, nd = X.shape # initialize the iterative optimization converged = False incr = np.finfo(np.float).max non_zero, basis, m, wasted_basis, cycles = 0, 0, 0, 0, 0 sum2_w_diff, sum2_w_old, w_diff = 0.0, 0.0, 0.0 p_resamp = np.ones(w.shape, dtype=np.float) if seed is not None: # set the random seed np.random.seed(seed) if __debug__: debug("SMLR_", "random seed=%s" % seed) # perform the optimization while not converged and cycles < maxiter: # get the starting weight w_old = w[basis, m] # see if we're gonna update if (w_old != 0) or np.random.rand() < p_resamp[basis, m]: # let's do it # get the probability P = E[:, m]/S # set the gradient grad = XY[basis, m] - np.dot(X[:, basis], P) # calculate the new weight with the Laplacian prior w_new = w_old + grad/auto_corr[basis] # keep weights within bounds if w_new > lambda_over_2_auto_corr[basis]: w_new -= lambda_over_2_auto_corr[basis] changed = True # unmark from being zero if necessary if w_old == 0: non_zero += 1 # reset the prob of resampling p_resamp[basis, m] = 1.0 elif w_new < -lambda_over_2_auto_corr[basis]: w_new += lambda_over_2_auto_corr[basis] changed = True # unmark from being zero if necessary if w_old == 0: non_zero += 1 # reset the prob of resampling p_resamp[basis, m] = 1.0 else: # gonna zero it out w_new = 0.0 # decrease the p_resamp p_resamp[basis, m] -= (p_resamp[basis, m] - \ min_resamp) * resamp_decay # set number of non-zero if w_old == 0: changed = False wasted_basis += 1 else: changed = True non_zero -= 1 # process any changes if changed: #print "w[%d, %d] = %g" % (basis, m, w_new) # update the expected values w_diff = w_new - w_old Xw[:, m] = Xw[:, m] + X[:, basis]*w_diff E_new_m = np.exp(Xw[:, m]) S += E_new_m - E[:, m] E[:, m] = E_new_m # update the weight w[basis, m] = w_new # keep track of the sqrt sum squared diffs sum2_w_diff += w_diff*w_diff # add to the old no matter what sum2_w_old += w_old*w_old # update the class and basis m = np.mod(m+1, w.shape[1]) if m == 0: # we completed a cycle of labels basis = np.mod(basis+1, nd) if basis == 0: # we completed a cycle of features cycles += 1 # assess convergence incr = np.sqrt(sum2_w_diff) / \ (np.sqrt(sum2_w_old)+np.finfo(np.float).eps) # save the new weights converged = incr < convergence_tol if __debug__: debug("SMLR_", \ "cycle=%d ; incr=%g ; non_zero=%d ; " % (cycles, incr, non_zero) + "wasted_basis=%d ; " % (wasted_basis) + "sum2_w_old=%g ; sum2_w_diff=%g" % (sum2_w_old, sum2_w_diff)) # reset the sum diffs and wasted_basis sum2_w_diff = 0.0 sum2_w_old = 0.0 wasted_basis = 0 if not converged: raise ConvergenceError, \ "More than %d Iterations without convergence" % \ (maxiter) # calcualte the log likelihoods and posteriors for the training data #log_likelihood = x return cycles @due.dcite( Doi('10.1109/TPAMI.2005.127'), path="mvpa2.clfs.smlr:SMLR", description="Sparse multinomial-logistic regression classifier", tags=["implementation"]) def _train(self, dataset): """Train the classifier using `dataset` (`Dataset`). """ targets_sa_name = self.get_space() # name of targets sa targets_sa = dataset.sa[targets_sa_name] # actual targets sa # Process the labels to turn into 1 of N encoding uniquelabels = targets_sa.unique labels = _label2oneofm(targets_sa.value, uniquelabels) self._ulabels = uniquelabels.copy() Y = labels M = len(self._ulabels) # get the dataset information into easy vars X = dataset.samples # see if we are adding a bias term if self.params.has_bias: if __debug__: debug("SMLR_", "hstacking 1s for bias") # append the bias term to the features X = np.hstack((X, np.ones((X.shape[0], 1), dtype=X.dtype))) if self.params.implementation.upper() == 'C': _stepwise_regression = _cStepwiseRegression # # TODO: avoid copying to non-contig arrays, use strides in ctypes? if not (X.flags['C_CONTIGUOUS'] and X.flags['ALIGNED']): if __debug__: debug("SMLR_", "Copying data to get it C_CONTIGUOUS/ALIGNED") X = np.array(X, copy=True, dtype=np.double, order='C') # currently must be double for the C code if X.dtype != np.double: if __debug__: debug("SMLR_", "Converting data to double") # must cast to double X = X.astype(np.double) # set the feature dimensions elif self.params.implementation.upper() == 'PYTHON': _stepwise_regression = self._python_stepwise_regression else: raise ValueError( "Unknown implementation %s of stepwise_regression" % self.params.implementation) # set the feature dimensions ns, nd = X.shape # decide the size of weights based on num classes estimated if self.params.fit_all_weights: c_to_fit = M else: c_to_fit = M - 1 # Precompute what we can auto_corr = ((M - 1.) / (2. * M)) * (np.sum(X * X, 0)) XY = np.dot(X.T, Y[:, :c_to_fit]) lambda_over_2_auto_corr = (self.params.lm/2.)/auto_corr # set starting values w = np.zeros((nd, c_to_fit), dtype=np.double) Xw = np.zeros((ns, c_to_fit), dtype=np.double) E = np.ones((ns, c_to_fit), dtype=np.double) S = M * np.ones(ns, dtype=np.double) # set verbosity if __debug__: verbosity = int("SMLR_" in debug.active) debug('SMLR_', 'Calling stepwise_regression. Seed %s' % self.params.seed) else: verbosity = 0 # call the chosen version of stepwise_regression cycles = _stepwise_regression(w, X, XY, Xw, E, auto_corr, lambda_over_2_auto_corr, S, M, self.params.maxiter, self.params.convergence_tol, self.params.resamp_decay, self.params.min_resamp, verbosity, self.params.seed) if cycles >= self.params.maxiter: # did not converge raise ConvergenceError( "More than %d iterations without convergence" % self.params.maxiter) # see if unsparsify the weights if self.params.unsparsify: # unsparsify w = self._unsparsify_weights(X, w) # resolve ties if present self.__ties = None if self.params.ties: if self.params.ties == 'random': # check if there is a tie showing itself as absent # difference between two w's wdot = np.dot(w.T, -w) ties = np.where(np.max(np.abs(wdot), axis=0) == 0)[0] if len(ties): warning("SMLR: detected ties in categories %s. Small " "amount of noise will be injected into result " "estimates upon prediction to break the ties" % self._ulabels[ties]) self.__ties = ties ## w_non0 = np.nonzero(w) ## w_non0_max = np.max(np.abs(w[w_non0])) ## w_non0_idx = np.unique(w_non0[0]) ## w_non0_len = len(w_non0_idx) ## for f_idx in np.where(ties)[0]: ## w[w_non0_idx, f_idx] += \ ## 0.001 * np.random.normal(size=(w_non0_len,)) else: raise ValueError("Do not know how to treat ties=%r" % (self.params.ties,)) # save the weights self.__weights_all = w self.__weights = w[:dataset.nfeatures, :] if self.ca.is_enabled('feature_ids'): self.ca.feature_ids = np.where(np.max(np.abs(w[:dataset.nfeatures, :]), axis=1) > 0)[0] # and a bias if self.params.has_bias: self.__biases = w[-1, :] if __debug__: debug('SMLR', "train finished in %d cycles on data.shape=%s " % (cycles, X.shape) + "min:max(data)=%f:%f, got min:max(w)=%f:%f" % (np.min(X), np.max(X), np.min(w), np.max(w))) def _unsparsify_weights(self, samples, weights): """Unsparsify weights via least squares regression.""" # allocate for the new weights new_weights = np.zeros(weights.shape, dtype=np.double) # get the sample data we're predicting and the sum squared # total variance b = samples sst = np.power(b - b.mean(0),2).sum(0) # loop over each column for i in range(weights.shape[1]): w = weights[:, i] # get the nonzero ind ind = w != 0 # get the features with non-zero weights a = b[:, ind] # predict all the data with the non-zero features betas = np.linalg.lstsq(a, b)[0] # determine the R^2 for each feature based on the sum # squared prediction error f = np.dot(a, betas) sse = np.power((b - f), 2).sum(0) rsquare = np.zeros(sse.shape, dtype=sse.dtype) gind = sst > 0 rsquare[gind] = 1 - (sse[gind]/sst[gind]) # derrive new weights by combining the betas and weights # scaled by the rsquare new_weights[:, i] = np.dot(w[ind], betas)*rsquare # take the tails tozero = np.abs(new_weights) < self.params.std_to_keep * np.std(new_weights) orig_zero = weights == 0.0 if orig_zero.sum() < tozero.sum(): # should not end up with fewer than start tozero = orig_zero new_weights[tozero] = 0.0 if __debug__: debug('SMLR_', "Start nonzero: %d; Finish nonzero: %d" % ((weights != 0).sum(), (new_weights != 0).sum())) return new_weights ##REF: Name was automagically refactored def _get_feature_ids(self): """Return ids of the used features """ return np.where(np.max(np.abs(self.__weights), axis=1)>0)[0] @accepts_dataset_as_samples def _predict(self, data): """Predict the output for the provided data. """ # see if we are adding a bias term if self.params.has_bias: # append the bias term to the features data = np.hstack((data, np.ones((data.shape[0], 1), dtype=data.dtype))) # append the zeros column to the weights if necessary if self.params.fit_all_weights: w = self.__weights_all else: w = np.hstack((self.__weights_all, np.zeros((self.__weights_all.shape[0], 1)))) # determine the probability values for making the prediction dot_prod = np.dot(data, w) E = np.exp(dot_prod) if self.__ties is not None: # 1e-5 should be adequate since anyways this is done # already after exponentiation E[:, self.__ties] += \ 1e-5 * np.random.normal(size=(len(E), len(self.__ties))) S = np.sum(E, 1) if __debug__: debug('SMLR', "predict on data.shape=%s min:max(data)=%f:%f " % (`data.shape`, np.min(data), np.max(data)) + "min:max(w)=%f:%f min:max(dot_prod)=%f:%f min:max(E)=%f:%f" % (np.min(w), np.max(w), np.min(dot_prod), np.max(dot_prod), np.min(E), np.max(E))) values = E / S[:, np.newaxis] #.repeat(E.shape[1], axis=1) self.ca.estimates = values # generate predictions predictions = np.asarray([self._ulabels[np.argmax(vals)] for vals in values]) # no need to assign conditional attribute here -- would be done # in Classifier._postpredict anyway #self.predictions = predictions return predictions ##REF: Name was automagically refactored def get_sensitivity_analyzer(self, **kwargs): """Returns a sensitivity analyzer for SMLR.""" return SMLRWeights(self, **kwargs) biases = property(lambda self: self.__biases) weights = property(lambda self: self.__weights) class SMLRWeights(Sensitivity): """`SensitivityAnalyzer` that reports the weights SMLR trained on a given `Dataset`. By default SMLR provides multiple weights per feature (one per label in training dataset). By default, all weights are combined into a single sensitivity value. Please, see the `FeaturewiseMeasure` constructor arguments how to custmize this behavior. """ _LEGAL_CLFS = [ SMLR ] def _call(self, dataset=None): """Extract weights from SMLR classifier. SMLR always has weights available, so nothing has to be computed here. """ clf = self.clf # transpose to have the number of features on the second axis # (as usual) weights = clf.weights.T if __debug__: debug('SMLR', "Extracting weights for %d-class SMLR" % (len(weights) + 1) + "Result: min=%f max=%f" % (np.min(weights), np.max(weights))) # limit the labels to the number of sensitivity sets, to deal # with the case of `fit_all_weights=False` ds = Dataset(weights, sa={clf.get_space(): clf._ulabels[:len(weights)]}) if clf.params.has_bias: ds.sa['biases'] = clf.biases return ds pymvpa2-2.6.4/mvpa2/clfs/stats.py000066400000000000000000001311111323370031300165760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Estimator for classifier error distributions.""" from __future__ import with_statement # Let's start using with __docformat__ = 'restructuredtext' import warnings import numpy as np from mvpa2.base import externals, warning from mvpa2.base.state import ClassWithCollections, ConditionalAttribute from mvpa2.generators.permutation import AttributePermutator from mvpa2.base.types import is_datasetlike from mvpa2.datasets import Dataset if __debug__: from mvpa2.base import debug if externals.exists('scipy'): import scipy.stats.distributions as ssd def _auto_rcdf(dist): dist_check = dist # which to check for continuous/discrete if isinstance(dist, ssd.rv_frozen): dist_check = dist.dist if isinstance(dist_check, ssd.rv_discrete): # we need to count the exact matches rcdf = lambda x, *args: 1 - dist.cdf(x, *args) + dist.pmf(x, *args) elif isinstance(dist_check, ssd.rv_continuous): # for continuous it is just as good rcdf = lambda x, *args: 1 - dist.cdf(x, *args) elif isinstance(dist_check, Nonparametric): rcdf = dist.rcdf else: raise ValueError("Do not know how to get 'right cdf' for %s" % (dist,)) return rcdf else: def _auto_rcdf(dist): if isinstance(dist, Nonparametric): rcdf = dist.rcdf else: raise ValueError("Do not know how to get 'right cdf' for %s" % (dist,)) return rcdf class Nonparametric(object): """Non-parametric 1d distribution -- derives cdf based on stored values. Introduced to complement parametric distributions present in scipy.stats. """ def __init__(self, dist_samples, correction='clip'): """ Parameters ---------- dist_samples : ndarray Samples to be used to assess the distribution. correction : {'clip'} or None, optional Determines the behavior when .cdf is queried. If None -- no correction is made. If 'clip' -- values are clipped to lie in the range [1/(N+2), (N+1)/(N+2)] (simply because non-parametric assessment lacks the power to resolve with higher precision in the tails, so 'imagery' samples are placed in each of the two tails). """ self._dist_samples = np.ravel(dist_samples) self._correction = correction def __repr__(self): return '%s(%r%s)' % ( self.__class__.__name__, self._dist_samples, ('', ', correction=%r' % self._correction) [int(self._correction != 'clip')]) @staticmethod def fit(dist_samples): return [dist_samples] def _cdf(self, x, operator): """Helper function to compute cdf proper or reverse (i.e. going from the right tail) """ res = operator(x) if self._correction == 'clip': nsamples = len(self._dist_samples) np.clip(res, 1.0/(nsamples+2), (nsamples+1.0)/(nsamples+2), res) elif self._correction is None: pass else: raise ValueError, \ '%r is incorrect value for correction parameter of %s' \ % (self._correction, self.__class__.__name__) return res def cdf(self, x): """Returns the cdf value at `x`. """ return self._cdf(x, np.vectorize(lambda v: (self._dist_samples <= v).mean())) def rcdf(self, x): """Returns cdf of reversed distribution (i.e. if integrating from right tail) Necessary for hypothesis testing in the right tail. It is really just a 1 - cdf(x) + pmf(x) == sf(x)+pmf(x) for a discrete distribution """ return self._cdf(x, np.vectorize(lambda v: (self._dist_samples >= v).mean())) def _pvalue(x, cdf_func, rcdf_func, tail, return_tails=False, name=None): """Helper function to return p-value(x) given cdf and tail Parameters ---------- cdf_func : callable Function to be used to derive cdf values for x tail : str ('left', 'right', 'any', 'both') Which tail of the distribution to report. For 'any' and 'both' it chooses the tail it belongs to based on the comparison to p=0.5. In the case of 'any' significance is taken like in a one-tailed test. return_tails : bool If True, a tuple return (pvalues, tails), where tails contain 1s if value was from the right tail, and 0 if the value was from the left tail. """ is_scalar = np.isscalar(x) if is_scalar: x = [x] def stability_assurance(cdf): if __debug__ and 'CHECK_STABILITY' in debug.active: cdf_min, cdf_max = np.min(cdf), np.max(cdf) if cdf_min < 0 or cdf_max > 1.0: s = ('', ' for %s' % name)[int(name is not None)] warning('Stability check of cdf %s failed%s. Min=%s, max=%s' % \ (cdf_func, s, cdf_min, cdf_max)) if tail == 'left': pvalues = cdf_func(x) if return_tails: right_tail = np.zeros(pvalues.shape, dtype=bool) stability_assurance(pvalues) elif tail == 'right': pvalues = rcdf_func(x) if return_tails: right_tail = np.ones(pvalues.shape, dtype=bool) stability_assurance(pvalues) elif tail in ('any', 'both'): pvalues = cdf_func(x) right_tail = (pvalues >= 0.5) if np.any(right_tail): # we must compute them all first ATM since otherwise # it would not work for "multiple" features with independent # distributions rcdf = rcdf_func(x) # and then assign the "interesting" ones pvalues[right_tail] = rcdf[right_tail] if tail == 'both': # we need report the area under both tails # XXX this is only meaningful for symmetric distributions pvalues *= 2 # no escape but to assure that CDF is in the right range. Some # distributions from scipy tend to jump away from [0,1] # yoh: made inplace operation whenever RF into this function np.clip(pvalues, 0, 1.0, pvalues) # Assure that NaNs didn't get significant value # TODO: should be moved into corresponding cdf/rcdf computation # since that is where x->pvalues relation can be assured x_nans = np.isnan(x) if np.any(x_nans): if (isinstance(x, np.ndarray) and x.shape == pvalues.shape) \ or (pvalues.ndim == 1 and len(x) == len(pvalues)): pvalues[x_nans] = 1.0 else: raise ValueError( "Input had NaN's but of different shape %s than output " "pvalues %s, so cannot deduce what needs to be done. Please " "make your input cleaner" % (x.shape, pvalues.shape)) if is_scalar: pvalues = pvalues[0] if return_tails: return (pvalues, right_tail) else: return pvalues class NullDist(ClassWithCollections): """Base class for null-hypothesis testing. """ # Although base class is not benefiting from ca, derived # classes do (MCNullDist). For the sake of avoiding multiple # inheritance and associated headache -- let them all be ClassWithCollections, # performance hit should be negligible in most of the scenarios _ATTRIBUTE_COLLECTIONS = ['ca'] def __init__(self, tail='both', **kwargs): """ Parameters ---------- tail : {'left', 'right', 'any', 'both'} Which tail of the distribution to report. For 'any' and 'both' it chooses the tail it belongs to based on the comparison to p=0.5. In the case of 'any' significance is taken like in a one-tailed test. """ ClassWithCollections.__init__(self, **kwargs) self._set_tail(tail) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(NullDist, self).__repr__( prefixes=["tail=%s" % `self.__tail`] + prefixes) ##REF: Name was automagically refactored def _set_tail(self, tail): # sanity check if tail not in ('left', 'right', 'any', 'both'): raise ValueError, 'Unknown value "%s" to `tail` argument.' \ % tail self.__tail = tail def fit(self, measure, ds): """Implement to fit the distribution to the data.""" raise NotImplementedError def cdf(self, x): """Implementations return the value of the cumulative distribution function. """ raise NotImplementedError def rcdf(self, x): """Implementations return the value of the reverse cumulative distribution function. """ raise NotImplementedError def dists(self): """Implementations returns a sequence of the ``dist_class`` instances that were used to fit the distribution. """ raise NotImplementedError def p(self, x, return_tails=False, **kwargs): """Returns the p-value for values of `x`. Returned values are determined left, right, or from any tail depending on the constructor setting. In case a `FeaturewiseMeasure` was used to estimate the distribution the method returns an array. In that case `x` can be a scalar value or an array of a matching shape. """ peas = _pvalue(x, self.cdf, self.rcdf, self.__tail, return_tails=return_tails, **kwargs) if is_datasetlike(x): # return the p-values in a dataset as well and assign the input # dataset attributes to the return dataset too pds = x.copy(deep=False) if return_tails: pds.samples = peas[0] return pds, peas[1] else: pds.samples = peas return pds return peas tail = property(fget=lambda x:x.__tail, fset=_set_tail) class MCNullDist(NullDist): """Null-hypothesis distribution is estimated from randomly permuted data labels. The distribution is estimated by calling fit() with an appropriate `Measure` or `TransferError` instance and a training and a validation dataset (in case of a `TransferError`). For a customizable amount of cycles the training data labels are permuted and the corresponding measure computed. In case of a `TransferError` this is the error when predicting the *correct* labels of the validation dataset. The distribution can be queried using the `cdf()` method, which can be configured to report probabilities/frequencies from `left` or `right` tail, i.e. fraction of the distribution that is lower or larger than some critical value. This class also supports `FeaturewiseMeasure`. In that case `cdf()` returns an array of featurewise probabilities/frequencies. """ _DEV_DOC = """ TODO automagically decide on the number of samples/permutations needed Caution should be paid though since resultant distributions might be quite far from some conventional ones (e.g. Normal) -- it is expected to them to be bimodal (or actually multimodal) in many scenarios. """ dist_samples = ConditionalAttribute(enabled=False, doc='Samples obtained for each permutation') skipped = ConditionalAttribute(enabled=True, doc='# of the samples which were skipped because ' 'measure has failed to evaluated at them') def __init__(self, permutator, dist_class=Nonparametric, measure=None, **kwargs): """Initialize Monte-Carlo Permutation Null-hypothesis testing Parameters ---------- permutator : Node Node instance that generates permuted datasets. dist_class : class This can be any class which provides parameters estimate using `fit()` method to initialize the instance, and provides `cdf(x)` method for estimating value of x in CDF. All distributions from SciPy's 'stats' module can be used. measure : Measure or None Optional measure that is used to compute results on permuted data. If None, a measure needs to be passed to ``fit()``. """ NullDist.__init__(self, **kwargs) self._dist_class = dist_class self._dist = [] # actual distributions self._measure = measure self.__permutator = permutator def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ["%s" % self.__permutator] if self._dist_class != Nonparametric: prefixes_.insert(0, 'dist_class=%r' % (self._dist_class,)) return super(MCNullDist, self).__repr__( prefixes=prefixes_ + prefixes) def fit(self, measure, ds): """Fit the distribution by performing multiple cycles which repeatedly permuted labels in the training dataset. Parameters ---------- measure: Measure or None A measure used to compute the results from shuffled data. Can be None if a measure instance has been provided to the constructor. ds: `Dataset` which gets permuted and used to compute the measure/transfer error multiple times. """ # TODO: place exceptions separately so we could avoid circular imports from mvpa2.base.learner import LearnerError # prefer the already assigned measure over anything the was passed to # the function. # XXX that is a bit awkward but is necessary to keep the code changes # in the rest of PyMVPA minimal till this behavior become mandatory if self._measure is not None: measure = self._measure measure.untrain() dist_samples = [] """Holds the values for randomized labels.""" # estimate null-distribution # TODO this really needs to be more clever! If data samples are # shuffled within a class it really makes no difference for the # classifier, hence the number of permutations to estimate the # null-distribution of transfer errors can be reduced dramatically # when the *right* permutations (the ones that matter) are done. skipped = 0 # # of skipped permutations for p, permuted_ds in enumerate(self.__permutator.generate(ds)): # new permutation all the time # but only permute the training data and keep the testdata constant # if __debug__: debug('STATMC', "Doing %i permutations: %i" \ % (self.__permutator.count, p+1), cr=True) # compute and store the measure of this permutation # assume it has `TransferError` interface try: res = measure(permuted_ds) dist_samples.append(res.samples) except LearnerError, e: if __debug__: debug('STATMC', " skipped", cr=True) warning('Failed to obtain value from %s due to %s. Measurement' ' was skipped, which could lead to unstable and/or' ' incorrect assessment of the null_dist' % (measure, e)) skipped += 1 continue self.ca.skipped = skipped if __debug__: debug('STATMC', ' Skipped: %d permutations' % skipped) if not len(dist_samples) and skipped > 0: raise RuntimeError( 'Failed to obtain any value from %s. %d measurements were ' 'skipped. Check above warnings, and your code/data' % (measure, skipped)) # store samples as (npermutations x nsamples x nfeatures) dist_samples = np.asanyarray(dist_samples) # for the ca storage use a dataset with # (nsamples x nfeatures x npermutations) to make it compatible with the # result dataset of the measure self.ca.dist_samples = Dataset(np.rollaxis(dist_samples, 0, len(dist_samples.shape))) # fit distribution per each element # to decide either it was done on scalars or vectors shape = dist_samples.shape nshape = len(shape) # if just 1 dim, original data was scalar, just create an # artif dimension for it if nshape == 1: dist_samples = dist_samples[:, np.newaxis] # fit per each element. # XXX could be more elegant? may be use np.vectorize? dist_samples_rs = dist_samples.reshape((shape[0], -1)) dist = [] for samples in dist_samples_rs.T: params = self._dist_class.fit(samples) if __debug__ and 'STAT__' in debug.active: debug('STAT', 'Estimated parameters for the %s are %s' % (self._dist_class, str(params))) dist.append(self._dist_class(*params)) self._dist = dist def _cdf(self, x, cdf_func): """Return value of the cumulative distribution function at `x`. """ if self._dist is None: # XXX We might not want to descriminate that way since # usually generators also have .cdf where they rely on the # default parameters. But then what about Nonparametric raise RuntimeError, "Distribution has to be fit first" is_scalar = np.isscalar(x) if is_scalar: x = [x] x = np.asanyarray(x) xshape = x.shape # assure x is a 1D array now x = x.reshape((-1,)) if len(self._dist) != len(x): raise ValueError, 'Distribution was fit for structure with %d' \ ' elements, whenever now queried with %d elements' \ % (len(self._dist), len(x)) # extract cdf values per each element if cdf_func == 'cdf': cdfs = [ dist.cdf(v) for v, dist in zip(x, self._dist) ] elif cdf_func == 'rcdf': cdfs = [ _auto_rcdf(dist)(v) for v, dist in zip(x, self._dist) ] else: raise ValueError return np.array(cdfs).reshape(xshape) def cdf(self, x): return self._cdf(x, 'cdf') def rcdf(self, x): return self._cdf(x, 'rcdf') def dists(self): return self._dist def clean(self): """Clean stored distributions Storing all of the distributions might be too expensive (e.g. in case of Nonparametric), and the scope of the object might be too broad to wait for it to be destroyed. Clean would bind dist_samples to empty list to let gc revoke the memory. """ self._dist = [] class FixedNullDist(NullDist): """Proxy/Adaptor class for SciPy distributions. All distributions from SciPy's 'stats' module can be used with this class. Examples -------- >>> import numpy as np >>> from scipy import stats >>> from mvpa2.clfs.stats import FixedNullDist >>> >>> dist = FixedNullDist(stats.norm(loc=2, scale=4), tail='left') >>> dist.p(2) 0.5 >>> >>> dist.cdf(np.arange(5)) array([ 0.30853754, 0.40129367, 0.5 , 0.59870633, 0.69146246]) >>> >>> dist = FixedNullDist(stats.norm(loc=2, scale=4), tail='right') >>> dist.p(np.arange(5)) array([ 0.69146246, 0.59870633, 0.5 , 0.40129367, 0.30853754]) """ def __init__(self, dist, **kwargs): """ Parameters ---------- dist : distribution object This can be any object the has a `cdf()` method to report the cumulative distribition function values. """ NullDist.__init__(self, **kwargs) self._dist = dist # assign corresponding rcdf overloading NotImplemented one of # base class self.rcdf = _auto_rcdf(dist) def fit(self, measure, ds): """Does nothing since the distribution is already fixed.""" pass def cdf(self, x): """Return value of the cumulative distribution function at `x`. """ return self._dist.cdf(x) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ["dist=%s" % `self._dist`] return super(FixedNullDist, self).__repr__( prefixes=prefixes_ + prefixes) class AdaptiveNullDist(FixedNullDist): """Adaptive distribution which adjusts parameters according to the data WiP: internal implementation might change """ def fit(self, measure, wdata, vdata=None): """Cares about dimensionality of the feature space in measure """ try: nfeatures = len(measure.feature_ids) except ValueError: # XXX nfeatures = np.prod(wdata.shape[1:]) dist_gen = self._dist if not hasattr(dist_gen, 'fit'): # frozen already dist_gen = dist_gen.dist # rv_frozen at least has it ;) args, kwargs = self._adapt(nfeatures, measure, wdata, vdata) if __debug__: debug('STAT', 'Adapted parameters for %s to be %s, %s' % (dist_gen, args, kwargs)) self._dist = dist_gen(*args, **kwargs) def _adapt(self, nfeatures, measure, wdata, vdata=None): raise NotImplementedError class AdaptiveRDist(AdaptiveNullDist): """Adaptive rdist: params are (nfeatures-1, 0, 1) """ def _adapt(self, nfeatures, measure, wdata, vdata=None): return (nfeatures-1, 0, 1), {} # XXX: RDist has stability issue, just run # python -c "import scipy.stats; print scipy.stats.rdist(541,0,1).cdf(0.72)" # to get some improbable value, so we need to take care about that manually # here def cdf(self, x): cdf_ = self._dist.cdf(x) bad_values = np.where(np.abs(cdf_)>1) # XXX there might be better implementation (faster/elegant) using np.clip, # the only problem is that instability results might flip the sign # arbitrarily if len(bad_values[0]): # in this distribution we have mean at 0, so we can take that easily # into account cdf_bad = cdf_[bad_values] x_bad = x[bad_values] cdf_bad[x_bad < 0] = 0.0 cdf_bad[x_bad >= 0] = 1.0 cdf_[bad_values] = cdf_bad return cdf_ class AdaptiveNormal(AdaptiveNullDist): """Adaptive Normal Distribution: params are (0, sqrt(1/nfeatures)) """ def _adapt(self, nfeatures, measure, wdata, vdata=None): return (0, 1.0/np.sqrt(nfeatures)), {} if externals.exists('scipy'): from mvpa2.support.scipy.stats import scipy from scipy.stats import kstest """ Thoughts: So we can use `scipy.stats.kstest` (Kolmogorov-Smirnov test) to check/reject H0 that samples come from a given distribution. But since it is based on a full range of data, we might better of with some ad-hoc checking by the detection power of the values in the tail of a tentative distribution. """ # We need a way to fixate estimation of some parameters # (e.g. mean) so lets create a simple proxy, or may be class # generator later on, which would take care about punishing change # from the 'right' arguments import scipy class rv_semifrozen(object): """Helper proxy-class to fit distribution when some parameters are known It is an ugly hack with snippets of code taken from scipy, which is Copyright (c) 2001, 2002 Enthought, Inc. and is distributed under BSD license http://www.scipy.org/License_Compatibility """ def __init__(self, dist, loc=None, scale=None, args=None): """ Parameters ---------- dist : rv_generic Distribution for which to freeze some of the parameters loc : array-like, optional Location parameter (default=0) scale : array-like, optional Scale parameter (default=1) args : iterable, optional Additional arguments to be passed to dist. Raises ------ ValueError Arguments number mismatch """ self._dist = dist # loc and scale theta = (loc, scale) # args Narg_ = dist.numargs if args is not None: Narg = len(args) if Narg > Narg_: raise ValueError, \ 'Distribution %s has only %d arguments. Got %d' \ % (dist, Narg_, Narg) args += (None,) * (Narg_ - Narg) else: args = (None,) * Narg_ args_i = [i for i,v in enumerate(args) if v is None] self._fargs = (list(args+theta), args_i) """Arguments which should get some fixed value""" def __call__(self, *args, **kwargs): """Upon call mimic call to get actual rv_frozen distribution """ return self._dist(*args, **kwargs) def nnlf(self, theta, x): # - sum (log pdf(x, theta),axis=0) # where theta are the parameters (including loc and scale) # fargs, fargs_i = self._fargs try: i=-1 if fargs[-1] is not None: scale = fargs[-1] else: scale = theta[i] i -= 1 if fargs[-2] is not None: loc = fargs[-2] else: loc = theta[i] i -= 1 args = theta[:i+1] # adjust args if there were fixed for i, a in zip(fargs_i, args): fargs[i] = a args = fargs[:-2] except IndexError: raise ValueError, "Not enough input arguments." if not self._argcheck(*args) or scale <= 0: return np.inf x = np.asarray((x-loc) / scale) cond0 = (x <= self.a) | (x >= self.b) if (np.any(cond0)): return np.inf else: return self._nnlf(x, *args) + len(x)*np.log(scale) def fit(self, data, *args, **kwds): loc0, scale0 = map(kwds.get, ['loc', 'scale'], [0.0, 1.0]) fargs, fargs_i = self._fargs Narg = len(args) Narg_ = self.numargs if Narg != Narg_: if Narg > Narg_: raise ValueError, "Too many input arguments." else: args += (1.0,)*(self.numargs-Narg) # Provide only those args which are not fixed, and # append location and scale (if not fixed) at the end if len(fargs_i) != Narg_: x0 = tuple([args[i] for i in fargs_i]) else: x0 = args if fargs[-2] is None: x0 = x0 + (loc0,) if fargs[-1] is None: x0 = x0 + (scale0,) opt_x = scipy.optimize.fmin( self.nnlf, x0, args=(np.ravel(data),), disp=0) # reconstruct back i = 0 loc, scale = fargs[-2:] if fargs[-1] is None: i -= 1 scale = opt_x[i] if fargs[-2] is None: i -= 1 loc = opt_x[i] # assign those which weren't fixed for i in fargs_i: fargs[i] = opt_x[i] #raise ValueError opt_x = np.hstack((fargs[:-2], (loc, scale))) return opt_x def __setattr__(self, a, v): if not a in ['_dist', '_fargs', 'fit', 'nnlf']: self._dist.__setattr__(a, v) else: object.__setattr__(self, a, v) def __getattribute__(self, a): """We need to redirect all queries correspondingly """ if not a in ['_dist', '_fargs', 'fit', 'nnlf']: return getattr(self._dist, a) else: return object.__getattribute__(self, a) ##REF: Name was automagically refactored def match_distribution(data, nsamples=None, loc=None, scale=None, args=None, test='kstest', distributions=None, **kwargs): """Determine best matching distribution. Can be used for 'smelling' the data, as well to choose a parametric distribution for data obtained from non-parametric testing (e.g. `MCNullDist`). WiP: use with caution, API might change Parameters ---------- data : np.ndarray Array of the data for which to deduce the distribution. It has to be sufficiently large to make a reliable conclusion nsamples : int or None If None -- use all samples in data to estimate parametric distribution. Otherwise use only specified number randomly selected from data. loc : float or None Loc for the distribution (if known) scale : float or None Scale for the distribution (if known) test : str What kind of testing to do. Choices: 'p-roc' detection power for a given ROC. Needs two parameters: `p=0.05` and `tail='both'` 'kstest' 'full-body' distribution comparison. The best choice is made by minimal reported distance after estimating parameters of the distribution. Parameter `p=0.05` sets threshold to reject null-hypothesis that distribution is the same. **WARNING:** older versions (e.g. 0.5.2 in etch) of scipy have incorrect kstest implementation and do not function properly. distributions : None or list of str or tuple(str, dict) Distributions to check. If None, all known in scipy.stats are tested. If distribution is specified as a tuple, then it must contain name and additional parameters (name, loc, scale, args) in the dictionary. Entry 'scipy' adds all known in scipy.stats. **kwargs Additional arguments which are needed for each particular test (see above) Examples -------- >>> from mvpa2.clfs.stats import match_distribution >>> data = np.random.normal(size=(1000,1)); >>> matches = match_distribution( ... data, ... distributions=['rdist', ... ('rdist', {'name':'rdist_fixed', ... 'loc': 0.0, ... 'args': (10,)})], ... nsamples=30, test='p-roc', p=0.05) """ # Handle parameters _KNOWN_TESTS = ['p-roc', 'kstest'] if not test in _KNOWN_TESTS: raise ValueError, 'Unknown kind of test %s. Known are %s' \ % (test, _KNOWN_TESTS) data = np.ravel(data) # data sampled if nsamples is not None: if __debug__: debug('STAT', 'Sampling %d samples from data for the ' \ 'estimation of the distributions parameters' % nsamples) indexes_selected = (np.random.sample(nsamples)*len(data)).astype(int) data_selected = data[indexes_selected] else: indexes_selected = np.arange(len(data)) data_selected = data p_thr = kwargs.get('p', 0.05) if test == 'p-roc': tail = kwargs.get('tail', 'both') npd = Nonparametric(data) data_p = _pvalue(data, npd.cdf, npd.rcdf, tail) data_p_thr = np.abs(data_p) <= p_thr true_positives = np.sum(data_p_thr) if true_positives == 0: raise ValueError, "Provided data has no elements in non-" \ "parametric distribution under p<=%.3f. Please " \ "increase the size of data or value of p" % p_thr if __debug__: debug('STAT_', 'Number of positives in non-parametric ' 'distribution is %d' % true_positives) if distributions is None: distributions = ['scipy'] # lets see if 'scipy' entry was in there try: scipy_ind = distributions.index('scipy') distributions.pop(scipy_ind) sp_dists = ssd.__all__ sp_version = externals.versions['scipy'] if sp_version >= '0.9.0': for d_ in ['ncf']: if d_ in sp_dists: warning("Not considering %s distribution because of " "known issues in scipy %s" % (d_, sp_version)) _ = sp_dists.pop(sp_dists.index(d_)) distributions += sp_dists except ValueError: pass results = [] for d in distributions: dist_gen, loc_, scale_, args_ = None, loc, scale, args if isinstance(d, basestring): dist_gen = d dist_name = d elif isinstance(d, tuple): if not (len(d)==2 and isinstance(d[1], dict)): raise ValueError,\ "Tuple specification of distribution must be " \ "(d, {params}). Got %s" % (d,) dist_gen = d[0] loc_ = d[1].get('loc', loc) scale_ = d[1].get('scale', scale) args_ = d[1].get('args', args) dist_name = d[1].get('name', str(dist_gen)) else: dist_gen = d dist_name = str(d) # perform actions which might puke for some distributions try: dist_gen_ = getattr(scipy.stats, dist_gen) # specify distribution 'optimizer'. If loc or scale was provided, # use home-brewed rv_semifrozen if args_ is not None or loc_ is not None or scale_ is not None: dist_opt = rv_semifrozen(dist_gen_, loc=loc_, scale=scale_, args=args_) else: dist_opt = dist_gen_ if __debug__: debug('STAT__', 'Fitting %s distribution %r on data of size %s', (dist_name, dist_opt, data_selected.shape)) # suppress the warnings which might pop up while # matching "inappropriate" distributions with warnings.catch_warnings(record=True) as w: dist_params = dist_opt.fit(data_selected) if __debug__: debug('STAT__', 'Got distribution parameters %s for %s' % (dist_params, dist_name)) if test == 'p-roc': cdf_func = lambda x: dist_gen_.cdf(x, *dist_params) rcdf_func = _auto_rcdf(dist_gen_) # We need to compare detection under given p cdf_p = np.abs(_pvalue(data, cdf_func, rcdf_func, tail, name=dist_gen)) cdf_p_thr = cdf_p <= p_thr D, p = (np.sum(np.abs(data_p_thr - cdf_p_thr))*1.0/true_positives, 1) if __debug__: res_sum = 'D=%.2f' % D elif test == 'kstest': D, p = kstest(data, dist_gen, args=dist_params) if __debug__: res_sum = 'D=%.3f p=%.3f' % (D, p) except (TypeError, ValueError, AttributeError, NotImplementedError), e:#Exception, e: if __debug__: debug('STAT__', 'Testing for %s distribution failed due to %s', (d, e)) continue if p > p_thr and not np.isnan(D): results += [ (D, dist_gen, dist_name, dist_params) ] if __debug__: debug('STAT_', 'Tested %s distribution: %s', (dist_name, res_sum)) else: if __debug__: debug('STAT__', 'Cannot consider %s dist. with %s', (d, res_sum)) continue # sort in ascending order, so smaller is better results.sort(key=lambda x:x[0]) if __debug__ and 'STAT' in debug.active: # find the best and report it nresults = len(results) sresult = lambda r:'%s(%s)=%.2f' % (r[1], ', '.join(map(str, r[3])), r[0]) if nresults > 0: nnextbest = min(2, nresults-1) snextbest = ', '.join(map(sresult, results[1:1+nnextbest])) debug('STAT', 'Best distribution %s. Next best: %s' % (sresult(results[0]), snextbest)) else: debug('STAT', 'Could not find suitable distribution') # return all the results return results if externals.exists('pylab'): import pylab as pl ##REF: Name was automagically refactored def plot_distribution_matches(data, matches, nbins=31, nbest=5, expand_tails=8, legend=2, plot_cdf=True, p=None, tail='both'): """Plot best matching distributions Parameters ---------- data : np.ndarray Data which was used to obtain the matches matches : list of tuples Sorted matches as provided by match_distribution nbins : int Number of bins in the histogram nbest : int Number of top matches to plot expand_tails : int How many bins away to add to parametrized distributions plots legend : int Either to provide legend and statistics in the legend. 1 -- just lists distributions. 2 -- adds distance measure 3 -- tp/fp/fn in the case if p is provided plot_cdf : bool Either to plot cdf for data using non-parametric distribution p : float or None If not None, visualize null-hypothesis testing (given p). Bars in the histogram which fall under given p are colored in red. False positives and false negatives are marked as triangle up and down symbols correspondingly tail : ('left', 'right', 'any', 'both') If p is not None, the choise of tail for null-hypothesis testing Returns ------- histogram list of lines """ # API changed since v0.99.0-641-ga7c2231 halign = externals.versions['matplotlib'] >= '1.0.0' \ and 'mid' or 'center' hist = pl.hist(data, nbins, normed=1, align=halign) data_range = [np.min(data), np.max(data)] # x's x = hist[1] dx = x[expand_tails] - x[0] # how much to expand tails by x = np.hstack((x[:expand_tails] - dx, x, x[-expand_tails:] + dx)) nonparam = Nonparametric(data) # plot cdf if plot_cdf: pl.plot(x, nonparam.cdf(x), 'k--', linewidth=1) data_p = _pvalue(data, nonparam.cdf, nonparam.rcdf, tail) npd = Nonparametric(data) x_p = _pvalue(x, npd.cdf, npd.rcdf, tail) if p is not None: data_p_thr = (data_p <= p).ravel() x_p_thr = np.abs(x_p) <= p # color bars which pass thresholding in red for thr, bar_ in zip(x_p_thr[expand_tails:], hist[2]): bar_.set_facecolor(('w','r')[int(thr)]) if not len(matches): # no matches were provided warning("No matching distributions were provided -- nothing to plot") return (hist, ) lines = [] labels = [] for i in xrange(min(nbest, len(matches))): D, dist_gen, dist_name, params = matches[i] dist = getattr(scipy.stats, dist_gen)(*params) rcdf = _auto_rcdf(dist) label = '%s' % (dist_name) if legend > 1: label += '(D=%.2f)' % (D) xcdf_p = np.abs(_pvalue(x, dist.cdf, rcdf, tail)) if p is not None: xcdf_p_thr = (xcdf_p <= p).ravel() if p is not None and legend > 2: # We need to compare detection under given p data_cdf_p = np.abs(_pvalue(data, dist.cdf, rcdf, tail)) data_cdf_p_thr = (data_cdf_p <= p).ravel() # true positives tp = np.logical_and(data_cdf_p_thr, data_p_thr) # false positives fp = np.logical_and(data_cdf_p_thr, ~data_p_thr) # false negatives fn = np.logical_and(~data_cdf_p_thr, data_p_thr) label += ' tp/fp/fn=%d/%d/%d)' % \ tuple(map(np.sum, [tp, fp, fn])) pdf = dist.pdf(x) line = pl.plot(x, pdf, '-', linewidth=2, label=label)[0] color = line.get_color() if plot_cdf: cdf = dist.cdf(x) pl.plot(x, cdf, ':', linewidth=1, color=color, label=label) # TODO: decide on tp/fp/fn by not centers of the bins but # by the values in data in the ranges covered by # those bins. Then it would correspond to the values # mentioned in the legend if p is not None: # true positives xtp = np.logical_and(xcdf_p_thr, x_p_thr) # false positives xfp = np.logical_and(xcdf_p_thr, ~x_p_thr) # false negatives xfn = np.logical_and(~xcdf_p_thr, x_p_thr) # no need to plot tp explicitely -- marked by color of the bar # pl.plot(x[xtp], pdf[xtp], 'o', color=color) pl.plot(x[xfp], pdf[xfp], '^', color=color) pl.plot(x[xfn], pdf[xfn], 'v', color=color) lines.append(line) labels.append(label) if legend: pl.legend(lines, labels) return (hist, lines) #if True: # data = np.random.normal(size=(1000,1)); # matches = match_distribution( # data, # distributions=['scipy', # ('norm', {'name':'norm_known', # 'scale': 1.0, # 'loc': 0.0})], # nsamples=30, test='p-roc', p=0.05) # pl.figure(); plot_distribution_matches(data, matches, nbins=101, # p=0.05, legend=4, nbest=5) ##REF: Name was automagically refactored def auto_null_dist(dist): """Cheater for human beings -- wraps `dist` if needed with some NullDist tail and other arguments are assumed to be default as in NullDist/MCNullDist """ if dist is None or isinstance(dist, NullDist): return dist elif hasattr(dist, 'fit'): if __debug__: debug('STAT', 'Wrapping %s into MCNullDist' % dist) return MCNullDist(dist) else: if __debug__: debug('STAT', 'Wrapping %s into FixedNullDist' % dist) return FixedNullDist(dist) # if no scipy, we need nanmean def _chk_asarray(a, axis): if axis is None: a = np.ravel(a) outaxis = 0 else: a = np.asarray(a) outaxis = axis return a, outaxis def nanmean(x, axis=0): """Compute the mean over the given axis ignoring NaNs. Parameters ---------- x : ndarray input array axis : int axis along which the mean is computed. Returns ------- m : float the mean. """ x, axis = _chk_asarray(x, axis) x = x.copy() Norig = x.shape[axis] factor = 1.0 - np.sum(np.isnan(x), axis)*1.0/Norig x[np.isnan(x)] = 0 return np.mean(x, axis)/factor pymvpa2-2.6.4/mvpa2/clfs/svm.py000066400000000000000000000103421323370031300162470ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Importer for the available SVM and SVR machines. Multiple external libraries implementing Support Vector Machines (Classification) and Regressions are available: LIBSVM, and shogun. This module is just a helper to provide default implementation for SVM depending on the availability of external libraries. By default LIBSVM implementation is chosen by default, but in any case both libraries are available through importing from this module:: > from mvpa2.clfs.svm import sg, libsvm > help(sg.SVM) > help(libsvm.SVM) Please refer to particular interface for more documentation about parameterization and available kernels and implementations. """ __docformat__ = 'restructuredtext' # take care of conditional import of external classifiers from mvpa2.base import warning, cfg, externals from mvpa2.clfs._svmbase import _SVM if __debug__: from mvpa2.base import debug # SVM implementation to be used "by default" SVM = None _NuSVM = None # TODO: handle choices within cfg _VALID_BACKENDS = ('libsvm', 'shogun', 'sg') _svm_backend = cfg.get('svm', 'backend', default='libsvm').lower() if _svm_backend == 'shogun': _svm_backend = 'sg' if not _svm_backend in _VALID_BACKENDS: raise ValueError, 'Configuration option svm.backend got invalid value %s.' \ ' Valid choices are %s' % (_svm_backend, _VALID_BACKENDS) if __debug__: debug('SVM', 'SVM backend is %s' % _svm_backend) if externals.exists('shogun'): from mvpa2.clfs import sg SVM = sg.SVM # Somewhat cruel hack -- define "SVM" family of kernels as binds # to specific default SVM implementation # XXX might need RF from mvpa2.kernels import sg as ksg LinearSVMKernel = ksg.LinearSGKernel RbfSVMKernel = ksg.RbfSGKernel #if not 'LinearCSVMC' in locals(): # from mvpa2.clfs.sg.svm import * if externals.exists('libsvm'): # By default for now we want simply to import all SVMs from libsvm from mvpa2.clfs.libsvmc import svm as libsvm _NuSVM = libsvm.SVM if _svm_backend == 'libsvm' or SVM is None: if __debug__ and _svm_backend != 'libsvm' and SVM is None: debug('SVM', 'SVM backend %s was not found, so using libsvm' % _svm_backend) SVM = libsvm.SVM from mvpa2.kernels import libsvm as kls LinearSVMKernel = kls.LinearLSKernel RbfSVMKernel = kls.RbfLSKernel #from mvpa2.clfs.libsvm.svm import * if SVM is None: warning("None of SVM implementation libraries was found") else: _defaultC = _SVM._SVM_PARAMS['C'].default _defaultNu = _SVM._SVM_PARAMS['nu'].default _edocs = [] """List containing tuples of classes and docs to be extended""" # Define some convenience classes class LinearCSVMC(SVM): def __init__(self, C=_defaultC, **kwargs): SVM.__init__(self, C=C, kernel=LinearSVMKernel(), **kwargs) class RbfCSVMC(SVM): def __init__(self, C=_defaultC, **kwargs): SVM.__init__(self, C=C, kernel=RbfSVMKernel(), **kwargs) _edocs += [ (LinearCSVMC, SVM, "C-SVM classifier using linear kernel."), (RbfCSVMC, SVM, "C-SVM classifier using a radial basis function kernel")] if _NuSVM is not None: class LinearNuSVMC(_NuSVM): def __init__(self, nu=_defaultNu, **kwargs): _NuSVM.__init__(self, nu=nu, kernel=LinearSVMKernel(), **kwargs) class RbfNuSVMC(_NuSVM): def __init__(self, nu=_defaultNu, **kwargs): _NuSVM.__init__(self, nu=nu, kernel=RbfSVMKernel(), **kwargs) _edocs += [ (LinearNuSVMC, _NuSVM, "Nu-SVM classifier using linear kernel."), (RbfNuSVMC, _NuSVM, "Nu-SVM classifier using a radial basis function kernel")] for _c, _pc, _d in _edocs: _c.__doc__ = \ "%s\n\nSee documentation of `%s` for more information" % \ (_d, _pc.__class__.__name__) pymvpa2-2.6.4/mvpa2/clfs/transerror.py000066400000000000000000002007761323370031300176570ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Utility class to compute the transfer error of classifiers.""" __docformat__ = 'restructuredtext' import mvpa2.support.copy as copy import numpy as np from StringIO import StringIO from math import log10, ceil from mvpa2.base import externals from mvpa2.base.node import Node from mvpa2.misc.errorfx import mean_power_fx, root_mean_power_fx, rms_error, \ relative_rms_error, mean_mismatch_error, auc_error from mvpa2.base import warning from mvpa2.datasets import Dataset from mvpa2.base.collections import Collectable from mvpa2.base.state import ConditionalAttribute, ClassWithCollections, \ UnknownStateError from mvpa2.base.dochelpers import enhanced_doc_string, table2string from mvpa2.clfs.stats import auto_null_dist from mvpa2.support.due import due, Doi if __debug__: from mvpa2.base import debug import numpy as np if 'nanmean' in dir(np): from numpy import nanmean elif externals.exists('scipy'): from scipy.stats.stats import nanmean else: from mvpa2.clfs.stats import nanmean if externals.exists('scipy'): from mvpa2.misc.stats import chisquare from scipy.stats import linregress, friedmanchisquare from mvpa2.misc.errorfx import corr_error, corr_error_prob else: chisquare = None linregress = None def _p2(x, prec=2, formatting=''): """Helper to print depending on the type nicely. For some reason %.2g for 100 prints exponential form which is ugly """ if isinstance(x, int): s = "%d" % x elif isinstance(x, float): s = ("%%.%df" % prec % x).rstrip('0').rstrip('.').lstrip() if s == '': s = '0' else: s = "%s" % x return formatting + s class SummaryStatistics(object): """Basic class to collect targets/predictions and report summary statistics It takes care about collecting the sets, which are just tuples (targets, predictions, estimates). While 'computing' the matrix, all sets are considered together. Children of the class are responsible for computation and display. """ _STATS_DESCRIPTION = ( ('# of sets', 'number of target/prediction sets which were provided', None), ) def __init__(self, targets=None, predictions=None, estimates=None, sets=None): """Initialize SummaryStatistics targets or predictions cannot be provided alone (ie targets without predictions) Parameters ---------- targets Optional set of targets predictions Optional set of predictions estimates Optional set of estimates (which served for prediction) sets Optional list of sets """ self._computed = False """Flag either it was computed for a given set of data""" self.__sets = (sets, [])[int(sets is None)] """Datasets (target, prediction) to compute confusion matrix on""" self._stats = {} """Dictionary to keep statistics. Initialized here to please pylint""" if targets is not None or predictions is not None: if targets is not None and predictions is not None: self.add(targets=targets, predictions=predictions, estimates=estimates) else: raise ValueError, \ "Please provide none or both targets and predictions" def add(self, targets, predictions, estimates=None): """Add new results to the set of known results""" if len(targets) != len(predictions): raise ValueError, \ "Targets[%d] and predictions[%d]" % (len(targets), len(predictions)) + \ " have different number of samples" # extract value if necessary if isinstance(estimates, Collectable): try: estimates = estimates.value except UnknownStateError, e: estimates = None # reset to None to be safe below if __debug__: debug('CM', "Cannot get yet uncollected estimates from %s", estimates) if estimates is not None and len(targets) != len(estimates): raise ValueError, \ "Targets[%d] and estimates[%d]" % (len(targets), len(estimates)) + \ " have different number of samples" # enforce labels in predictions to be of the same datatype as in # targets, since otherwise we are getting doubles for unknown at a # given moment labels nonetype = type(None) for i in xrange(len(targets)): t1, t2 = type(targets[i]), type(predictions[i]) # if there were no prediction made - leave None, otherwise # convert to appropriate type if t1 != t2 and t2 != nonetype: #warning("Obtained target %s and prediction %s are of " % # (t1, t2) + "different datatypes.") if isinstance(predictions, tuple): predictions = list(predictions) predictions[i] = t1(predictions[i]) if estimates is not None: # assure that we have a copy, or otherwise further in-place # modifications might screw things up (some classifiers share # estimates and spit out results) estimates = copy.deepcopy(estimates) self.__sets.append( (targets, predictions, estimates) ) self._computed = False ##REF: Name was automagically refactored def as_string(self, short=False, header=True, summary=True, description=False): """'Pretty print' the matrix Parameters ---------- short : bool if True, ignores the rest of the parameters and provides consise 1 line summary header : bool print header of the table summary : bool print summary (accuracy) description : bool print verbose description of presented statistics """ raise NotImplementedError def __str__(self): """String summary over the `SummaryStatistics` It would print description of the summary statistics if 'CM' debug target is active """ if __debug__: description = ('CM' in debug.active) else: description = False return self.as_string(short=False, header=True, summary=True, description=description) def __iadd__(self, other): """Add the sets from `other` s `SummaryStatistics` to current one """ #print "adding ", other, " to ", self # need to do shallow copy, or otherwise smth like "cm += cm" # would loop forever and exhaust memory eventually othersets = copy.copy(other.__sets) for set in othersets: self.add(*set)#[0], set[1]) return self def __add__(self, other): """Add two `SummaryStatistics`s """ result = copy.deepcopy(self) result += other return result def compute(self): """Actually compute the confusion matrix based on all the sets""" if self._computed: return self._compute() self._computed = True def _compute(self): """Compute basic statistics """ self._stats = {'# of sets' : len(self.sets)} @property def summaries(self): """Return a list of separate summaries per each stored set""" return [ self.__class__(sets=[x]) for x in self.sets ] @property def error(self): raise NotImplementedError @property def stats(self): self.compute() return self._stats def reset(self): """Cleans summary -- all data/sets are wiped out """ self.__sets = [] self._computed = False sets = property(lambda self:self.__sets) class ROCCurve(object): """Generic class for ROC curve computation and plotting """ def __init__(self, labels, sets=None): """ Parameters ---------- labels : list labels which were used (in order of estimates if multiclass, or 1 per class for binary problems (e.g. in SMLR)) sets : list of tuples list of sets for the analysis """ self._labels = labels self._sets = sets self.__computed = False def _compute(self): """Lazy computation if needed """ if self.__computed: return # local bindings labels = self._labels Nlabels = len(labels) sets = self._sets # Handle degenerate cases politely if Nlabels < 2: warning("ROC was asked to be evaluated on data with %i" " labels which is a degenerate case." % Nlabels) self._ROCs = [] self._aucs = [] return # take sets which have values in the shape we can handle def _check_values(set_): """Check if values are 'acceptable'""" if len(set_)<3: return False x = set_[2] # estimates # TODO: OPT: need optimization if (x is None) or len(x) == 0: return False # undefined for v in x: try: if Nlabels <= 2 and np.isscalar(v): continue if (isinstance(v, dict) or # not dict for pairs ((Nlabels >= 2) and len(v) != Nlabels)): # 1 per each label for multiclass return False except Exception, e: # Something else which is not supported, like # in shogun interface we don't yet extract values per each label or # in pairs in the case of built-in multiclass if __debug__: debug('ROC', "Exception %s while checking " "either %s are valid labels" % (str(e), x)) return False return True sets_wv = [x for x in sets if _check_values(x)] # check if all had estimates, if not -- complain Nsets_wv = len(sets_wv) if Nsets_wv > 0 and len(sets) != Nsets_wv: warning("Only %d sets have estimates assigned from %d sets. " "ROC estimates might be incorrect." % (Nsets_wv, len(sets))) # bring all values to the same 'shape': # 1 value per each label. In binary classifier, if only a single # value is provided, add '0' for 0th label 'value'... it should # work taking drunk Yarik logic ;-) # yoh: apparently it caused problems whenever we had just a single # unique label in the sets. Introduced handling for # NLabels == 1 for iset, s in enumerate(sets_wv): # we will do inplace modification, thus go by index estimates = s[2] # we would need it to be a list to reassign element with a list if isinstance(estimates, np.ndarray) and len(estimates.shape)==1: # XXX ??? so we are going away from inplace modifications? estimates = list(estimates) rangev = None for i in xrange(len(estimates)): v = estimates[i] if np.isscalar(v): if Nlabels == 1: # ensure the right dimensionality estimates[i] = np.array(v, ndmin=2) elif Nlabels == 2: def last_el(x): """Helper function. Returns x if x is scalar, and last element if x is not (ie list/tuple)""" if np.isscalar(x): return x else: return x[-1] if rangev is None: # we need to figure out min/max estimates # to invert for the 0th label estimates_ = [last_el(x) for x in estimates] rangev = np.min(estimates_) + np.max(estimates_) estimates[i] = [rangev - v, v] else: raise ValueError, \ "Cannot have a single 'value' for multiclass" \ " classification. Got %s" % (v) elif len(v) != Nlabels: raise ValueError, \ "Got %d estimates whenever there is %d labels" % \ (len(v), Nlabels) # reassign possibly adjusted estimates sets_wv[iset] = (s[0], s[1], np.asarray(estimates)) # we need to estimate ROC per each label # XXX order of labels might not correspond to the one among 'estimates' # which were used to make a decision... check rocs, aucs = [], [] # 1 per label for i,label in enumerate(labels): aucs_pl = [] ROCs_pl = [] for s in sets_wv: targets_pl = (np.asanyarray(s[0]) == label).astype(int) # XXX we might unify naming between AUC/ROC ROC = auc_error aucs_pl += [ROC([np.asanyarray(x)[i] for x in s[2]], targets_pl)] ROCs_pl.append(ROC) if len(aucs_pl)>0: rocs += [ROCs_pl] aucs += [nanmean(aucs_pl)] #aucs += [np.mean(aucs_pl)] # store results within the object self._ROCs = rocs self._aucs = aucs self.__computed = True @property def aucs(self): """Compute and return set of AUC values 1 per label """ self._compute() return self._aucs @property ##REF: Name was automagically refactored def rocs(self): self._compute() return self._ROCs def plot(self, label_index=0): """ TODO: make it friendly to labels given by values? should we also treat labels_map? """ externals.exists("pylab", raise_=True) import pylab as pl self._compute() labels = self._labels # select only rocs for the given label rocs = self.rocs[label_index] fig = pl.gcf() ax = pl.gca() pl.plot([0, 1], [0, 1], 'k:') for ROC in rocs: pl.plot(ROC.fp, ROC.tp, linewidth=1) pl.axis((0.0, 1.0, 0.0, 1.0)) pl.axis('scaled') pl.title('Label %s. Mean AUC=%.2f' % (label_index, self.aucs[label_index])) pl.xlabel('False positive rate') pl.ylabel('True positive rate') class ConfusionMatrix(SummaryStatistics): """Class to contain information and display confusion matrix. Implementation of the `SummaryStatistics` in the case of classification problem. Actual computation of confusion matrix is delayed until all data is acquired (to figure out complete set of labels). If testing data doesn't have a complete set of labels, but you like to include all labels, provide them as a parameter to the constructor. Confusion matrix provides a set of performance statistics (use as_string(description=True) for the description of abbreviations), as well ROC curve (http://en.wikipedia.org/wiki/ROC_curve) plotting and analysis (AUC) in the limited set of problems: binary, multiclass 1-vs-all. """ _STATS_DESCRIPTION = ( ('TP', 'true positive (AKA hit)', None), ('TN', 'true negative (AKA correct rejection)', None), ('FP', 'false positive (AKA false alarm, Type I error)', None), ('FN', 'false negative (AKA miss, Type II error)', None), ('TPR', 'true positive rate (AKA hit rate, recall, sensitivity)', 'TPR = TP / P = TP / (TP + FN)'), ('FPR', 'false positive rate (AKA false alarm rate, fall-out)', 'FPR = FP / N = FP / (FP + TN)'), ('ACC', 'accuracy', 'ACC = (TP + TN) / (P + N)'), ('SPC', 'specificity', 'SPC = TN / (FP + TN) = 1 - FPR'), ('PPV', 'positive predictive value (AKA precision)', 'PPV = TP / (TP + FP)'), ('NPV', 'negative predictive value', 'NPV = TN / (TN + FN)'), ('FDR', 'false discovery rate', 'FDR = FP / (FP + TP)'), ('MCC', "Matthews Correlation Coefficient", "MCC = (TP*TN - FP*FN)/sqrt(P N P' N')"), ('F1', 'F1 score', "F1 = 2TP / (P + P') = 2TP / (2TP + FP + FN)"), ('AUC', "Area under (AUC) curve", None), ('CHI^2', "Chi-square of confusion matrix", None), ('LOE(ACC)', "Linear Order Effect in ACC across sets", None), ## ('Friedman(TPR)', ## "Friedman CHI^2 test of TPRs consistencies across sets", None), ## ('Friedman(CM)', ## "Friedman CHI^2 test of full CM (normalized) consistencies across sets", None), ) + SummaryStatistics._STATS_DESCRIPTION def __init__(self, labels=None, labels_map=None, **kwargs): """Initialize ConfusionMatrix with optional list of `labels` Parameters ---------- labels : list Optional set of labels to include in the matrix labels_map : None or dict Dictionary from original dataset to show mapping into numerical labels targets Optional set of targets predictions Optional set of predictions """ SummaryStatistics.__init__(self, **kwargs) if labels is None: labels = [] self.__labels = labels """List of known labels""" self.__labels_in_custom_order = bool(len(labels)) """So we know later on either we could resort them""" self.__labels_map = labels_map """Mapping from original into given labels""" self.__matrix = None """Resultant confusion matrix""" def __call__(self, predictions, targets, estimates=None, store=False): """Computes confusion matrix (counts) It would rely on previously provided 'labels' to define columns/rows of the matrix to assure consistency across multiple invocations. Parameters ---------- store : bool, optional By default, this function does not modify an existing instance of the ConfusionMatrix, and is just used merely to provide a resultant confusion matrix. If 'store' set to True, provided set of predictions and targets would be added to the sets. Returns ------- numpy.ndarray counts of hits with rows -- predictions, columns -- targets """ labels = self.__labels if labels is None or not len(labels): raise RuntimeError("ConfusionMatrix must have labels assigned prior" "__call__()") # verify that we know all the labels labels_set = set(labels) if not (labels_set.issuperset(targets) and labels_set.issuperset(predictions)): raise ValueError("Known labels %r does not include some labels " "found in predictions %r or targets %r provided" % (labels_set, set(predictions), set(targets))) Nlabels = len(labels_set) cm = np.zeros( (Nlabels, Nlabels), dtype=int ) rev_map = dict([ (x[1], x[0]) for x in enumerate(labels)]) for t,p in zip(targets, predictions): cm[rev_map[p], rev_map[t]] += 1 if store: self.add(targets=targets, predictions=predictions, estimates=estimates) return cm # XXX might want to remove since summaries does the same, just without # supplying labels @property def matrices(self): """Return a list of separate confusion matrix per each stored set""" return [ self.__class__(labels=self.labels, labels_map=self.labels_map, sets=[x]) for x in self.sets] def _compute(self): """Actually compute the confusion matrix based on all the sets""" super(ConfusionMatrix, self)._compute() if __debug__: if self.__matrix is not None: debug("LAZY", "Have to recompute %s#%s" \ % (self.__class__.__name__, id(self))) # TODO: BinaryClassifier might spit out a list of predictions for each # value need to handle it... for now just keep original labels try: # figure out what labels we have labels = \ list(reduce(lambda x, y: x.union(set(y[0]).union(set(y[1]))), self.sets, set(self.__labels))) except: labels = self.__labels # Check labels_map if it was provided if it covers all the labels labels_map = self.__labels_map if labels_map is not None: labels_set = set(labels) map_labels_set = set(labels_map.values()) if not map_labels_set.issuperset(labels_set): warning("Provided labels_map %s is not coherent with labels " "provided to ConfusionMatrix. No reverse mapping " "will be provided" % labels_map) labels_map = None # Create reverse map labels_map_rev = None if labels_map is not None: labels_map_rev = {} for k,v in labels_map.iteritems(): v_mapping = labels_map_rev.get(v, []) v_mapping.append(k) labels_map_rev[v] = v_mapping self.__labels_map_rev = labels_map_rev labels.sort() if self.__labels is None or not len(self.__labels): self.__labels = labels # just store the recomputed labels else: # we should append them to already known ones # Otherwise order of labels known before might be altered add_labels = [x for x in labels if not (x in self.__labels)] if len(add_labels): self.__labels += add_labels labels = self.__labels # and use them later on if not self.__labels_in_custom_order: labels.sort() Nlabels, Nsets = len(labels), len(self.sets) if __debug__: debug("CM", "Got labels %s" % labels) # Create a matrix for all votes mat_all = np.zeros( (Nsets, Nlabels, Nlabels), dtype=int ) # create total number of samples of each label counts # just for convinience I guess since it can always be # computed from mat_all counts_all = np.zeros( (Nsets, Nlabels) ) # reverse mapping from label into index in the list of labels rev_map = dict([ (x[1], x[0]) for x in enumerate(labels)]) for iset, set_ in enumerate(self.sets): for t,p in zip(*set_[:2]): mat_all[iset, rev_map[p], rev_map[t]] += 1 # for now simply compute a sum of votes across different sets # we might do something more sophisticated later on, and this setup # should easily allow it self.__matrix = np.sum(mat_all, axis=0) self.__Nsamples = np.sum(self.__matrix, axis=0) self.__Ncorrect = sum(np.diag(self.__matrix)) TP = np.diag(self.__matrix) offdiag = self.__matrix - np.diag(TP) stats = { '# of labels' : Nlabels, 'TP' : TP, 'FP' : np.sum(offdiag, axis=1), 'FN' : np.sum(offdiag, axis=0)} stats['CORR'] = np.sum(TP) stats['TN'] = stats['CORR'] - stats['TP'] stats['P'] = stats['TP'] + stats['FN'] stats['N'] = np.sum(stats['P']) - stats['P'] stats["P'"] = stats['TP'] + stats['FP'] stats["N'"] = stats['TN'] + stats['FN'] stats['TPR'] = stats['TP'] / (1.0*stats['P']) # reset nans in TPRs to 0s whenever there is no entries # for those labels among the targets stats['TPR'][stats['P'] == 0] = 0 stats['PPV'] = stats['TP'] / (1.0*stats["P'"]) stats['NPV'] = stats['TN'] / (1.0*stats["N'"]) stats['FDR'] = stats['FP'] / (1.0*stats["P'"]) stats['SPC'] = (stats['TN']) / (1.0*stats['FP'] + stats['TN']) stats['F1'] = 2.*stats['TP'] / (stats["P"] + stats["P'"]) MCC_denom = np.sqrt(1.0*stats['P']*stats['N']*stats["P'"]*stats["N'"]) nz = MCC_denom!=0.0 stats['MCC'] = np.zeros(stats['TP'].shape) stats['MCC'][nz] = \ (stats['TP'] * stats['TN'] - stats['FP'] * stats['FN'])[nz] \ / MCC_denom[nz] stats['ACC'] = np.sum(TP)/(1.0*np.sum(stats['P'])) # TODO: STD of accuracy and corrected one according to # Nadeau and Bengio [50] stats['ACC%'] = stats['ACC'] * 100.0 if chisquare: # indep_rows to assure reasonable handling of disbalanced # cases stats['CHI^2'] = chisquare(self.__matrix, exp='indep_rows') if linregress and Nsets > 3: # Lets see if there is possible order effect in accuracy # (e.g. it goes down through splits) # simple linear regression ACC_per_set = [np.sum(np.diag(m))/np.sum(m).astype(float) for m in mat_all] stats['LOE(ACC):slope'], stats['LOE(ACC):inter'], \ stats['LOE(ACC):r'], stats['LOE(ACC):p'], _ = \ linregress(np.arange(Nsets), ACC_per_set) TPRs_per_set = [np.diag(m)/np.sum(m, axis=0).astype(float) for m in mat_all] # Confusion ratios (both TPs or FPs) # we want to divide each column but sum in the column CM_per_set = [np.ravel(m/np.sum(m, axis=0).astype(float)[None, :]) for m in mat_all] ## stats['Friedman(TPR):chi^2'], stats['Friedman(TPR):p'] = \ ## friedmanchisquare(*TPRs_per_set) ## stats['Friedman(CM):chi^2'], stats['Friedman(CM):p'] = \ ## friedmanchisquare(*CM_per_set) # # ROC computation if available ROC = ROCCurve(labels=labels, sets=self.sets) aucs = ROC.aucs if len(aucs)>0: stats['AUC'] = aucs if len(aucs) != Nlabels: raise RuntimeError, \ "We must got a AUC per label. Got %d instead of %d" % \ (len(aucs), Nlabels) self.ROC = ROC else: # we don't want to provide ROC if it is bogus stats['AUC'] = [np.nan] * Nlabels self.ROC = None # compute mean stats for k,v in stats.items(): stats['mean(%s)' % k] = np.mean(v) self._stats.update(stats) ##REF: Name was automagically refactored def as_string(self, short=False, header=True, summary=True, description=False): """'Pretty print' the matrix Parameters ---------- short : bool if True, ignores the rest of the parameters and provides consise 1 line summary header : bool print header of the table summary : bool print summary (accuracy) description : bool print verbose description of presented statistics """ if len(self.sets) == 0: return "Empty" self.compute() # some shortcuts labels = self.__labels labels_map_rev = self.__labels_map_rev matrix = self.__matrix labels_rev = [] if labels_map_rev is not None: labels_rev = [','.join([str(x) for x in labels_map_rev[l]]) for l in labels] out = StringIO() # numbers of different entries Nlabels = len(labels) Nsamples = self.__Nsamples.astype(int) stats = self._stats if short: return "%(# of sets)d sets %(# of labels)d labels " \ " ACC:%(ACC).2f" \ % stats Ndigitsmax = int(ceil(log10(max(Nsamples)))) Nlabelsmax = max( [len(str(x)) for x in labels] ) # length of a single label/value L = max(Ndigitsmax+2, Nlabelsmax) #, len("100.00%")) res = "" stats_perpredict = ["P'", "N'", 'FP', 'FN', 'PPV', 'NPV', 'TPR', 'SPC', 'FDR', 'MCC', 'F1'] # print AUC only if ROC was computed if self.ROC is not None: stats_perpredict += [ 'AUC' ] stats_pertarget = ['P', 'N', 'TP', 'TN'] stats_summary = ['ACC', 'ACC%', '# of sets'] # 'Friedman(TPR):p', 'Friedman(CM):p' #prefixlen = Nlabelsmax + 2 + Ndigitsmax + 1 prefixlen = Nlabelsmax + 1 pref = ' '*(prefixlen) # empty prefix if matrix.shape != (Nlabels, Nlabels): raise ValueError, \ "Number of labels %d doesn't correspond the size" + \ " of a confusion matrix %s" % (Nlabels, matrix.shape) # list of lists of what is printed printed = [] underscores = [" %s" % ("-" * L)] * Nlabels if header: # labels printed.append(['@l----------. '] + labels_rev) printed.append(['@lpredictions\\targets'] + labels) # underscores printed.append(['@l `------'] \ + underscores + stats_perpredict) # matrix itself for i, line in enumerate(matrix): l = labels[i] if labels_rev != []: l = '@r%10s / %s' % (labels_rev[i], l) printed.append( [l] + [ str(x) for x in line ] + [ _p2(stats[x][i]) for x in stats_perpredict]) if summary: ## Various alternative schemes ;-) # printed.append([''] + underscores) # printed.append(['@lPer target \ Means:'] + underscores + \ # [_p2(x) for x in mean_stats]) # printed.append(['Means:'] + [''] * len(labels) # + [_p2(x) for x in mean_stats]) printed.append(['@lPer target:'] + underscores) for stat in stats_pertarget: printed.append([stat] + [ _p2(stats[stat][i]) for i in xrange(Nlabels)]) # compute mean stats # XXX refactor to expose them in stats as well, as # mean(FCC) mean_stats = np.mean(np.array([stats[k] for k in stats_perpredict]), axis=1) printed.append(['@lSummary \ Means:'] + underscores + [_p2(stats['mean(%s)' % x]) for x in stats_perpredict]) if 'CHI^2' in self.stats: chi2t = stats['CHI^2'] printed.append(['CHI^2'] + [_p2(chi2t[0])] + ['@wp=%.2g' % chi2t[1]]) for stat in stats_summary: if stat in stats: printed.append([stat] + [_p2(stats[stat])]) if 'LOE(ACC):inter' in stats: # Inject into sets line printed[-1] += [ '@w ACC(i) = %(LOE(ACC):inter).2g%(LOE(ACC):slope)+.2g*i' % stats + ' p=' + _p2(stats['LOE(ACC):p']) + ' r=' + _p2(stats['LOE(ACC):r']) + ' r^2=' + _p2(stats['LOE(ACC):r']**2)] table2string(printed, out) if description: out.write("\nStatistics computed in 1-vs-rest fashion per each " \ "target.\n") out.write("Abbreviations (for details see " \ "http://en.wikipedia.org/wiki/ROC_curve):\n") for d, val, eq in self._STATS_DESCRIPTION: out.write(" %-3s: %s\n" % (d, val)) if eq is not None: out.write(" " + eq + "\n") #out.write("%s" % printed) result = out.getvalue() out.close() return result def plot(self, labels=None, numbers=False, origin='upper', numbers_alpha=None, xlabels_vertical=True, numbers_kwargs=None, **kwargs): """Provide presentation of confusion matrix in image Parameters ---------- labels : list of int or str Optionally provided labels guarantee the order of presentation. Also value of None places empty column/row, thus provides visual groupping of labels (Thanks Ingo) numbers : bool Place values inside of confusion matrix elements numbers_alpha : None or float Controls textual output of numbers. If None -- all numbers are plotted in the same intensity. If some float -- it controls alpha level -- higher value would give higher contrast. (good value is 2) origin : str Which left corner diagonal should start xlabels_vertical : bool Either to plot xlabels vertical (benefitial if number of labels is large) numbers_kwargs : dict Additional keyword parameters to be added to numbers (if numbers is True) **kwargs Additional arguments given to imshow (\eg me cmap) Returns ------- (fig, im, cb) -- figure, imshow, colorbar """ if numbers_kwargs is None: numbers_kwargs = {} externals.exists("pylab", raise_=True) import pylab as pl self.compute() labels_order = labels # some shortcuts labels = self.__labels labels_map = self.__labels_map labels_map_rev = self.__labels_map_rev matrix = self.__matrix # craft original mapping from a label into index in the matrix labels_indexes = dict([(x,i) for i,x in enumerate(labels)]) labels_rev = [] if labels_map_rev is not None: labels_rev = [','.join([str(x) for x in labels_map_rev[l]]) for l in labels] labels_map_full = dict(zip(labels_rev, labels)) if labels_order is not None: labels_order_filtered = filter(lambda x:x is not None, labels_order) labels_order_filtered_set = set(labels_order_filtered) # Verify if all labels provided in labels if set(labels) == labels_order_filtered_set: # We were provided numerical (most probably) set labels_plot = labels_order elif len(labels_rev) \ and set(labels_rev) == labels_order_filtered_set: # not clear if right whenever there were multiple labels # mapped into the same labels_plot = [] for l in labels_order: v = None if l is not None: v = labels_map_full[l] labels_plot += [v] else: raise ValueError, \ "Provided labels %s do not match set of known " \ "original labels (%s) or mapped labels (%s)" % \ (labels_order, labels, labels_rev) else: labels_plot = labels # where we have Nones? isempty = np.array([l is None for l in labels_plot]) non_empty = np.where(np.logical_not(isempty))[0] # numbers of different entries NlabelsNN = len(non_empty) Nlabels = len(labels_plot) if matrix.shape != (NlabelsNN, NlabelsNN): raise ValueError, \ "Number of labels %d doesn't correspond the size" + \ " of a confusion matrix %s" % (NlabelsNN, matrix.shape) confusionmatrix = np.zeros((Nlabels, Nlabels)) mask = confusionmatrix.copy() ticks = [] tick_labels = [] # populate in a silly way reordered_indexes = [labels_indexes[i] for i in labels_plot if i is not None] for i, l in enumerate(labels_plot): if l is not None: j = labels_indexes[l] confusionmatrix[i, non_empty] = matrix[j, reordered_indexes] confusionmatrix[non_empty, i] = matrix[reordered_indexes, j] ticks += [i + 0.5] if labels_map_rev is not None: tick_labels += ['/'.join(labels_map_rev[l])] else: tick_labels += [str(l)] else: mask[i, :] = mask[:, i] = 1 confusionmatrix = np.ma.MaskedArray(confusionmatrix, mask=mask) # turn off automatic update if interactive if pl.matplotlib.get_backend() == 'TkAgg': pl.ioff() fig = pl.gcf() ax = pl.gca() ax.axis('off') # some customization depending on the origin xticks_position, yticks, ybottom = { 'upper': ('top', [Nlabels-x for x in ticks], 0.1), 'lower': ('bottom', ticks, 0.2) }[origin] # Plot axi = fig.add_axes([0.15, ybottom, 0.7, 0.7]) im = axi.imshow(confusionmatrix, interpolation="nearest", origin=origin, aspect='equal', extent=(0, Nlabels, 0, Nlabels), **kwargs) # plot numbers if numbers: numbers_kwargs_ = {'fontsize': 10, 'horizontalalignment': 'center', 'verticalalignment': 'center'} maxv = float(np.max(confusionmatrix)) colors = [im.to_rgba(0), im.to_rgba(maxv)] for i,j in zip(*np.logical_not(mask).nonzero()): v = confusionmatrix[j, i] # scale alpha non-linearly if numbers_alpha is None: alpha = 1.0 else: # scale according to value alpha = 1 - np.array(1 - v / maxv) ** numbers_alpha y = {'lower':j, 'upper':Nlabels-j-1}[origin] numbers_kwargs_['color'] = colors[int(v recode into digits to match # underlying API recode = dict([(e, i) for i, e in enumerate(ds.sa[self._labels_attr].value)]) partitions = [[[recode[label] for label in class_] for class_ in hyp] for hyp in hypotheses] else: # use hypotheses as is -- all bets are off partitions = hypotheses if self._prior_Hs is None: # default: uniform prior on hypotheses: p(H_i) prior_Hs = np.ones(len(partitions)) / len(partitions) else: prior_Hs = self._prior_Hs # p(X|H_i) for all H logp_X_given_Hs = np.zeros(len(partitions)) for i, psi in enumerate(partitions): # use Emanuele's toolbox logp_X_given_Hs[i] = compute_logp_H(ds.samples, psi, self._alpha) out = logp_X_given_Hs statfa = ['log(p(C|H))'] if self._postprob: # convert into posterior probabilities: p(H|X) # normalization constant: p(X) logp_X = reduce(np.logaddexp, logp_X_given_Hs + np.log(prior_Hs)) # p(H|X) from Bayes rule: log_posterior_Hs_given_X = logp_X_given_Hs + np.log(prior_Hs) - logp_X out = np.vstack((out, log_posterior_Hs_given_X)).T statfa.append('log(p(H|C))') if not self._log: # convert from log scale out = np.exp(out) # remove the log() from the stat label statfa = [s[4:-1] for s in statfa] if hypotheses is None: if self._labels_attr in ds.sa: # recode partition IDs into actual labels, if the necessary attr # is available hypotheses = Partition(ds.sa[self._labels_attr].value) else: hypotheses = partitions hypotheses = list(hypotheses) out = Dataset(out, sa={self.get_space(): hypotheses, 'prior': prior_Hs}, fa={'stat': statfa}) return out class RegressionStatistics(SummaryStatistics): """Class to contain information and display on regression results. """ _STATS_DESCRIPTION = ( ('CCe', 'Error based on correlation coefficient', '1 - corr_coef'), ('CCp', 'Correlation coefficient (p-value)', None), ('RMSE', 'Root mean squared error', None), ('STD', 'Standard deviation', None), ('RMP', 'Root mean power (compare to RMSE of results)', 'sqrt(mean( data**2 ))'), ) + SummaryStatistics._STATS_DESCRIPTION def __init__(self, **kwargs): """Initialize RegressionStatistics Parameters ---------- targets Optional set of targets predictions Optional set of predictions """ SummaryStatistics.__init__(self, **kwargs) def _compute(self): """Actually compute the confusion matrix based on all the sets""" super(RegressionStatistics, self)._compute() sets = self.sets Nsets = len(sets) stats = {} funcs = { 'RMP_t': lambda p,t:root_mean_power_fx(t), 'STD_t': lambda p,t:np.std(t), 'RMP_p': lambda p,t:root_mean_power_fx(p), 'STD_p': lambda p,t:np.std(p), 'RMSE': rms_error, 'RMSE/RMP_t': relative_rms_error } if externals.exists('scipy'): funcs['CCe'] = corr_error funcs['CCp'] = corr_error_prob for funcname, func in funcs.iteritems(): funcname_all = funcname + '_all' stats[funcname_all] = [] for i, (targets, predictions, estimates) in enumerate(sets): stats[funcname_all] += [func(predictions, targets)] stats[funcname_all] = np.array(stats[funcname_all]) stats[funcname] = np.mean(stats[funcname_all]) stats[funcname+'_std'] = np.std(stats[funcname_all]) stats[funcname+'_max'] = np.max(stats[funcname_all]) stats[funcname+'_min'] = np.min(stats[funcname_all]) # create ``summary`` statistics, since some per-set statistics # might be uncomputable if a set contains just a single number # (like in the case of correlation coefficient) targets, predictions = [], [] for i, (targets_, predictions_, estimates_) in enumerate(sets): targets += list(targets_) predictions += list(predictions_) for funcname, func in funcs.iteritems(): funcname_all = 'Summary ' + funcname stats[funcname_all] = func(predictions, targets) self._stats.update(stats) def plot(self, plot=True, plot_stats=True, splot=True #labels=None, numbers=False, origin='upper', #numbers_alpha=None, xlabels_vertical=True, #numbers_kwargs={}, #**kwargs ): """Provide presentation of regression performance in image Parameters ---------- plot : bool Plot regular plot of values (targets/predictions) plot_stats : bool Print basic statistics in the title splot : bool Plot scatter plot Returns ------- (fig, im, cb) -- figure, imshow, colorbar """ externals.exists("pylab", raise_=True) import pylab as pl self.compute() # total number of plots nplots = plot + splot # turn off automatic update if interactive if pl.matplotlib.get_backend() == 'TkAgg': pl.ioff() fig = pl.gcf() pl.clf() sps = [] # subplots nplot = 0 if plot: nplot += 1 sps.append(pl.subplot(nplots, 1, nplot)) xstart = 0 lines = [] for s in self.sets: nsamples = len(s[0]) xend = xstart+nsamples xs = xrange(xstart, xend) lines += [pl.plot(xs, s[0], 'b')] lines += [pl.plot(xs, s[1], 'r')] # vertical line pl.plot([xend, xend], [np.min(s[0]), np.max(s[0])], 'k--') xstart = xend if len(lines)>1: pl.legend(lines[:2], ('Target', 'Prediction')) if plot_stats: pl.title(self.as_string(short='very')) if splot: nplot += 1 sps.append(pl.subplot(nplots, 1, nplot)) for s in self.sets: pl.plot(s[0], s[1], 'o', markeredgewidth=0.2, markersize=2) pl.gca().set_aspect('equal') if pl.matplotlib.get_backend() == 'TkAgg': pl.ion() pl.draw() return fig, sps ##REF: Name was automagically refactored def as_string(self, short=False, header=True, summary=True, description=False): """'Pretty print' the statistics""" if len(self.sets) == 0: return "Empty" self.compute() stats = self.stats if short: if short == 'very': # " RMSE/RMP_t:%(RMSE/RMP_t).2f" \ return "%(# of sets)d sets CCe=%(CCe).2f p=%(CCp).2g" \ " RMSE:%(RMSE).2f" \ " Summary (stacked data): " \ "CCe=%(Summary CCe).2f p=%(Summary CCp).2g" \ % stats else: return "%(# of sets)d sets CCe=%(CCe).2f+-%(CCe_std).3f" \ " RMSE=%(RMSE).2f+-%(RMSE_std).3f" \ " RMSE/RMP_t=%(RMSE/RMP_t).2f+-%(RMSE/RMP_t_std).3f" \ % stats stats_data = ['RMP_t', 'STD_t', 'RMP_p', 'STD_p'] # CCp needs tune up of format so excluded stats_ = ['CCe', 'RMSE', 'RMSE/RMP_t'] stats_summary = ['# of sets'] out = StringIO() printed = [] if header: # labels printed.append(['Statistics', 'Mean', 'Std', 'Min', 'Max']) # underscores printed.append(['----------', '-----', '-----', '-----', '-----']) def print_stats(printed, stats_): # Statistics itself for stat in stats_: s = [stat] for suffix in ['', '_std', '_min', '_max']: s += [ _p2(stats[stat+suffix], 3) ] printed.append(s) printed.append(["Data: "]) print_stats(printed, stats_data) printed.append(["Results: "]) print_stats(printed, stats_) printed.append(["Summary: "]) printed.append(["CCe", _p2(stats['Summary CCe']), "", "p=", '%g' % stats['Summary CCp']]) printed.append(["RMSE", _p2(stats['Summary RMSE'])]) printed.append(["RMSE/RMP_t", _p2(stats['Summary RMSE/RMP_t'])]) if summary: for stat in stats_summary: printed.append([stat] + [_p2(stats[stat])]) table2string(printed, out) if description: out.write("\nDescription of printed statistics.\n" " Suffixes: _t - targets, _p - predictions\n") for d, val, eq in self._STATS_DESCRIPTION: out.write(" %-3s: %s\n" % (d, val)) if eq is not None: out.write(" " + eq + "\n") result = out.getvalue() out.close() return result @property def error(self): self.compute() return self.stats['RMSE'] class ClassifierError(ClassWithCollections): """Compute (or return) some error of a (trained) classifier on a dataset. """ confusion = ConditionalAttribute(enabled=False) """TODO Think that labels might be also symbolic thus can't directly be indicies of the array """ training_stats = ConditionalAttribute(enabled=False, doc="Proxy training_stats from underlying classifier.") def __init__(self, clf, labels=None, train=True, **kwargs): """Initialization. Parameters ---------- clf : Classifier Either trained or untrained classifier labels : list if provided, should be a set of labels to add on top of the ones present in testdata train : bool unless train=False, classifier gets trained if trainingdata provided to __call__ """ ClassWithCollections.__init__(self, **kwargs) self.__clf = clf self._labels = labels """Labels to add on top to existing in testing data""" self.__train = train """Either to train classifier if trainingdata is provided""" __doc__ = enhanced_doc_string('ClassifierError', locals(), ClassWithCollections) def __copy__(self): """TODO: think... may be we need to copy self.clf""" out = ClassifierError.__new__(TransferError) ClassifierError.__init__(out, self.clf) return out def _precall(self, testdataset, trainingdataset=None): """Generic part which trains the classifier if necessary """ if trainingdataset is not None: if self.__train: # XXX can be pretty annoying if triggered inside an algorithm # where it cannot be switched of, but retraining might be # intended or at least not avoidable. # Additonally is_trained docs say: # MUST BE USED WITH CARE IF EVER # # switching it off for now #if self.__clf.is_trained(trainingdataset): # warning('It seems that classifier %s was already trained' % # self.__clf + ' on dataset %s. Please inspect' \ # % trainingdataset) if self.ca.is_enabled('training_stats'): self.__clf.ca.change_temporarily( enable_ca=['training_stats']) self.__clf.train(trainingdataset) if self.ca.is_enabled('training_stats'): self.ca.training_stats = \ self.__clf.ca.training_stats self.__clf.ca.reset_changed_temporarily() if self.__clf.ca.is_enabled('trained_targets') \ and not self.__clf.__is_regression__ \ and testdataset is not None: newlabels = set(testdataset.sa[self.clf.get_space()].unique) \ - set(self.__clf.ca.trained_targets) if len(newlabels)>0: warning("Classifier %s wasn't trained to classify labels %s" % (self.__clf, newlabels) + " present in testing dataset. Make sure that you have" + " not mixed order/names of the arguments anywhere") ### Here checking for if it was trained... might be a cause of trouble # XXX disabled since it is unreliable.. just rely on explicit # self.__train # if not self.__clf.is_trained(trainingdataset): # self.__clf.train(trainingdataset) # elif __debug__: # debug('CERR', # 'Not training classifier %s since it was ' % `self.__clf` # + ' already trained on dataset %s' % `trainingdataset`) def _call(self, testdataset, trainingdataset=None): raise NotImplementedError def _postcall(self, testdataset, trainingdataset=None, error=None): pass def __call__(self, testdataset, trainingdataset=None): """Compute the transfer error for a certain test dataset. If `trainingdataset` is not `None` the classifier is trained using the provided dataset before computing the transfer error. Otherwise the classifier is used in it's current state to make the predictions on the test dataset. Returns a scalar value of the transfer error. """ self._precall(testdataset, trainingdataset) error = self._call(testdataset, trainingdataset) self._postcall(testdataset, trainingdataset, error) if __debug__: debug('CERR', 'Classifier error on %s: %.2f' % (testdataset, error)) return error def untrain(self): """Untrain the `*Error` which relies on the classifier """ self.clf.untrain() @property def clf(self): return self.__clf @property def labels(self): return self._labels class ConfusionBasedError(ClassifierError): """For a given classifier report an error based on internally computed error measure (given by some `ConfusionMatrix` stored in some conditional attribute of `Classifier`). This way we can perform feature selection taking as the error criterion either learning error, or transfer to splits error in the case of SplitClassifier """ def __init__(self, clf, labels=None, confusion_state="training_stats", **kwargs): """Initialization. Parameters ---------- clf : Classifier Either trained or untrained classifier confusion_state Id of the conditional attribute which stores `ConfusionMatrix` labels : list if provided, should be a set of labels to add on top of the ones present in testdata """ ClassifierError.__init__(self, clf, labels, **kwargs) self.__confusion_state = confusion_state """What state to extract from""" if not confusion_state in clf.ca: raise ValueError, \ "Conditional attribute %s is not defined for classifier %r" % \ (confusion_state, clf) if not clf.ca.is_enabled(confusion_state): if __debug__: debug('CERR', "Forcing state %s to be enabled for %r" % (confusion_state, clf)) clf.ca.enable(confusion_state) __doc__ = enhanced_doc_string('ConfusionBasedError', locals(), ClassifierError) def _call(self, testdata, trainingdata=None): """Extract transfer error. Nor testdata, neither trainingdata is used """ confusion = self.clf.ca[self.__confusion_state].value self.ca.confusion = confusion return confusion.error pymvpa2-2.6.4/mvpa2/clfs/warehouse.py000066400000000000000000000702441323370031300174530ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Collection of classifiers to ease the exploration. """ __docformat__ = 'restructuredtext' from mvpa2.base.types import is_sequence_type # Define sets of classifiers from mvpa2.clfs.meta import FeatureSelectionClassifier, SplitClassifier, \ MulticlassClassifier, RegressionAsClassifier from mvpa2.clfs.smlr import SMLR from mvpa2.clfs.knn import kNN from mvpa2.clfs.gda import LDA, QDA from mvpa2.clfs.gnb import GNB from mvpa2.kernels.np import LinearKernel, SquaredExponentialKernel, \ GeneralizedLinearKernel from mvpa2.featsel.rfe import SplitRFE from mvpa2.clfs.dummies import RandomClassifier # Helpers from mvpa2.base import externals, cfg from mvpa2.measures.anova import OneWayAnova from mvpa2.mappers.fx import absolute_features, maxofabs_sample from mvpa2.clfs.smlr import SMLRWeights from mvpa2.featsel.helpers import FractionTailSelector, \ FixedNElementTailSelector, RangeElementSelector from mvpa2.generators.partition import OddEvenPartitioner from mvpa2.featsel.base import SensitivityBasedFeatureSelection # Kernels from mvpa2.kernels.libsvm import LinearLSKernel, RbfLSKernel, \ PolyLSKernel, SigmoidLSKernel _KNOWN_INTERNALS = [ 'knn', 'binary', 'svm', 'linear', 'smlr', 'does_feature_selection', 'has_sensitivity', 'multiclass', 'non-linear', 'kernel-based', 'lars', 'regression', 'regression_based', 'random_tie_breaking', 'non-deterministic', 'needs_population', 'libsvm', 'sg', 'meta', 'retrainable', 'gpr', 'notrain2predict', 'ridge', 'blr', 'gnpp', 'enet', 'glmnet', 'gnb', 'plr', 'rpy2', 'swig', 'skl', 'lda', 'qda', 'random-forest', 'extra-trees', 'random', # oneclass-binary can provide binary output for the labels # oneclass would always output a single label but with # estimates/probabilities of interest 'oneclass', 'oneclass-binary'] class Warehouse(object): """Class to keep known instantiated classifiers Should provide easy ways to select classifiers of needed kind: clfswh['linear', 'svm'] should return all linear SVMs clfswh['linear', 'multiclass'] should return all linear classifiers capable of doing multiclass classification """ def __init__(self, known_tags=None, matches=None): """Initialize warehouse Parameters ---------- known_tags : list of str List of known tags matches : dict Optional dictionary of additional matches. E.g. since any regression can be used as a binary classifier, matches={'binary':['regression']}, would allow to provide regressions also if 'binary' was requested """ self._known_tags = set(known_tags) self.__items = [] self.__keys = set() if matches is None: matches = {} self.__matches = matches self.__descriptions = {} def __getitem__(self, *args): if isinstance(args[0], tuple): args = args[0] # so we explicitely handle [:] if args == (slice(None),): args = [] # lets remove optional modifier '!' dargs = set([str(x).lstrip('!') for x in args]).difference( self._known_tags) if len(dargs)>0: raise ValueError, "Unknown internals %s requested. Known are %s" % \ (list(dargs), list(self._known_tags)) # dummy implementation for now result = [] # check every known item for item in self.__items: good = True # by default each one counts for arg in args: # check for rejection first if arg.startswith('!'): if (arg[1:] in item.__tags__): good = False break else: continue # check for inclusion found = False for arg in [arg] + self.__matches.get(arg, []): if (arg in item.__tags__): found = True break good = found if not good: break if good: result.append(item) return result def __iadd__(self, item): if is_sequence_type(item): for item_ in item: self.__iadd__(item_) else: if not hasattr(item, '__tags__'): raise ValueError, "Cannot register %s " % item + \ "which has no __tags__ defined" if item.descr in self.__descriptions: raise ValueError("Cannot register %s, " % item + \ "an item with descriptions '%s' already exists" \ % item.descr) if len(item.__tags__) == 0: raise ValueError, "Cannot register %s " % item + \ "which has empty __tags__" clf_internals = set(item.__tags__) if clf_internals.issubset(self._known_tags): self.__items.append(item) self.__keys |= clf_internals else: raise ValueError, 'Unknown clf internal(s) %s' % \ clf_internals.difference(self._known_tags) # access by descr self.__descriptions[item.descr] = item return self def get_by_descr(self, descr): return self.__descriptions[descr] @property def internals(self): """Known internal tags of the classifiers """ return self.__keys def listing(self): """Listing (description + internals) of registered items """ return [(x.descr, x.__tags__) for x in self.__items] def print_registered(self, *args): if not len(args): args = (slice(None)) import numpy as np import textwrap # sort by description for lrn in sorted(self.__getitem__(args), key=lambda x: x.descr.lower()): print '%s\n%s' % ( lrn.descr, textwrap.fill(', '.join(np.unique(lrn.__tags__)), 70, initial_indent=' ' * 4, subsequent_indent=' ' * 4) ) @property def items(self): """Registered items """ return self.__items @property def descriptions(self): """Descriptions of registered items""" return self.__descriptions.keys() clfswh = Warehouse(known_tags=_KNOWN_INTERNALS) # classifiers regrswh = Warehouse(known_tags=_KNOWN_INTERNALS) # regressions # NB: # - Nu-classifiers are turned off since for haxby DS default nu # is an 'infisible' one # - Python's SMLR is turned off for the duration of development # since it is slow and results should be the same as of C version # clfswh += [ SMLR(lm=0.1, implementation="C", descr="SMLR(lm=0.1)"), SMLR(lm=1.0, implementation="C", descr="SMLR(lm=1.0)"), #SMLR(lm=10.0, implementation="C", descr="SMLR(lm=10.0)"), #SMLR(lm=100.0, implementation="C", descr="SMLR(lm=100.0)"), #SMLR(implementation="Python", descr="SMLR(Python)") ] clfswh += \ [ MulticlassClassifier(SMLR(lm=0.1), descr='Pairs+maxvote multiclass on SMLR(lm=0.1)') ] clfswh += [ RandomClassifier(descr="Random"), RandomClassifier(same=True, descr="RandomSame"), ] if externals.exists('libsvm'): from mvpa2.clfs.libsvmc import svm as libsvm clfswh._known_tags.update(libsvm.SVM._KNOWN_IMPLEMENTATIONS.keys()) clfswh += [libsvm.SVM(descr="libsvm.LinSVM(C=def)", probability=1), libsvm.SVM( C=-10.0, descr="libsvm.LinSVM(C=10*def)", probability=1), libsvm.SVM( C=1.0, descr="libsvm.LinSVM(C=1)", probability=1), libsvm.SVM(svm_impl='NU_SVC', descr="libsvm.LinNuSVM(nu=def)", probability=1) ] clfswh += [libsvm.SVM(kernel=RbfLSKernel(), descr="libsvm.RbfSVM()"), libsvm.SVM(kernel=RbfLSKernel(), svm_impl='NU_SVC', descr="libsvm.RbfNuSVM(nu=def)"), libsvm.SVM(kernel=PolyLSKernel(), descr='libsvm.PolySVM()', probability=1), #libsvm.svm.SVM(kernel=SigmoidLSKernel(), # svm_impl='C_SVC', # descr='libsvm.SigmoidSVM()'), ] # regressions regrswh._known_tags.update(['EPSILON_SVR', 'NU_SVR']) regrswh += [libsvm.SVM(svm_impl='EPSILON_SVR', descr='libsvm epsilon-SVR'), libsvm.SVM(svm_impl='NU_SVR', descr='libsvm nu-SVR')] if externals.exists('shogun'): from mvpa2.clfs import sg from mvpa2.kernels.sg import LinearSGKernel, PolySGKernel, RbfSGKernel clfswh._known_tags.update(sg.SVM._KNOWN_IMPLEMENTATIONS) # TODO: some classifiers are not yet ready to be used out-of-the-box in # PyMVPA, thus we don't populate warehouse with their instances bad_classifiers = [ 'mpd', # was segfault, now non-training on testcases, and XOR. # and was described as "for educational purposes", thus # shouldn't be used for real data ;-) # Should be a drop-in replacement for lightsvm 'gpbt', # fails to train for testAnalyzerWithSplitClassifier # also 'retraining' doesn't work -- fails to generalize 'gmnp', # would fail with 'assertion Cache_Size > 2' # if shogun < 0.6.3, also refuses to train 'svrlight', # fails to 'generalize' as a binary classifier # after 'binning' 'krr', # fails to generalize 'svmocas', # fails to generalize 'libsvr' # XXXregr removing regressions as classifiers ] if not externals.exists('sg_fixedcachesize'): # would fail with 'assertion Cache_Size > 2' if shogun < 0.6.3 bad_classifiers.append('gnpp') for impl in sg.SVM._KNOWN_IMPLEMENTATIONS: # Uncomment the ones to disable if impl in bad_classifiers: continue clfswh += [ sg.SVM( descr="sg.LinSVM(C=def)/%s" % impl, svm_impl=impl), sg.SVM( C=-10.0, descr="sg.LinSVM(C=10*def)/%s" % impl, svm_impl=impl), sg.SVM( C=1.0, descr="sg.LinSVM(C=1)/%s" % impl, svm_impl=impl), ] if not impl in ['svmocas']: # inherently linear only clfswh += [ sg.SVM(kernel=RbfSGKernel(), descr="sg.RbfSVM()/%s" % impl, svm_impl=impl), # sg.SVM(kernel=RbfSGKernel(), # descr="sg.RbfSVM(gamma=0.1)/%s" # % impl, svm_impl=impl, gamma=0.1), # sg.SVM(descr="sg.SigmoidSVM()/%s" # % impl, svm_impl=impl, kernel=SigmoidSGKernel(),), ] _optional_regressions = [] if externals.exists('shogun.krr') and externals.versions['shogun'] >= '0.9': _optional_regressions += ['krr'] for impl in ['libsvr'] + _optional_regressions:# \ # XXX svrlight sucks in SG -- dont' have time to figure it out #+ ([], ['svrlight'])['svrlight' in sg.SVM._KNOWN_IMPLEMENTATIONS]: regrswh._known_tags.update([impl]) regrswh += [ sg.SVM(svm_impl=impl, descr='sg.LinSVMR()/%s' % impl), #sg.SVM(svm_impl=impl, kernel_type='RBF', # descr='sg.RBFSVMR()/%s' % impl), ] if len(clfswh['svm', 'linear']) > 0: # if any SVM implementation is known, import default ones from mvpa2.clfs.svm import * # lars from R via RPy if externals.exists('lars'): import mvpa2.clfs.lars as lars from mvpa2.clfs.lars import LARS for model in lars.known_models: # XXX create proper repository of classifiers! lars_clf = RegressionAsClassifier( LARS(descr="LARS(%s)" % model, model_type=model), descr='LARS(model_type=%r) classifier' % model) clfswh += lars_clf # is a regression, too lars_regr = LARS(descr="_LARS(%s)" % model, model_type=model) regrswh += lars_regr # clfswh += MulticlassClassifier(lars, # descr='Multiclass %s' % lars.descr) ## Still fails unittests battery although overhauled otherwise. ## # enet from R via RPy2 ## if externals.exists('elasticnet'): ## from mvpa2.clfs.enet import ENET ## clfswh += RegressionAsClassifier(ENET(), ## descr="RegressionAsClassifier(ENET())") ## regrswh += ENET(descr="ENET()") # glmnet from R via RPy if externals.exists('glmnet'): from mvpa2.clfs.glmnet import GLMNET_C, GLMNET_R clfswh += GLMNET_C(descr="GLMNET_C()") regrswh += GLMNET_R(descr="GLMNET_R()") # LDA/QDA clfswh += LDA(descr='LDA()') clfswh += QDA(descr='QDA()') if externals.exists('skl'): _skl_version = externals.versions['skl'] _skl_api09 = _skl_version >= '0.9' def _skl_import(submod, class_): if _skl_api09: submod_ = __import__('sklearn.%s' % submod, fromlist=[submod]) else: submod_ = __import__('scikits.learn.%s' % submod, fromlist=[submod]) return getattr(submod_, class_) if _skl_version >= "0.17": sklLDA = _skl_import('discriminant_analysis', 'LinearDiscriminantAnalysis') else: sklLDA = _skl_import('lda', 'LDA') from mvpa2.clfs.skl.base import SKLLearnerAdapter clfswh += SKLLearnerAdapter(sklLDA(), tags=['lda', 'linear', 'multiclass', 'binary'], descr='skl.LDA()') if _skl_version >= '0.10': # Out of Bag Estimates sklRandomForestClassifier = _skl_import('ensemble', 'RandomForestClassifier') clfswh += SKLLearnerAdapter(sklRandomForestClassifier(), tags=['random-forest', 'linear', 'non-linear', 'binary', 'multiclass', 'oneclass', 'non-deterministic', 'needs_population',], descr='skl.RandomForestClassifier()') sklRandomForestRegression = _skl_import('ensemble', 'RandomForestRegressor') regrswh += SKLLearnerAdapter(sklRandomForestRegression(), tags=['random-forest', 'linear', 'non-linear', 'regression', 'non-deterministic', 'needs_population',], descr='skl.RandomForestRegression()') sklExtraTreesClassifier = _skl_import('ensemble', 'ExtraTreesClassifier') clfswh += SKLLearnerAdapter(sklExtraTreesClassifier(), tags=['extra-trees', 'linear', 'non-linear', 'binary', 'multiclass', 'oneclass', 'non-deterministic', 'needs_population',], descr='skl.ExtraTreesClassifier()') sklExtraTreesRegression = _skl_import('ensemble', 'ExtraTreesRegressor') regrswh += SKLLearnerAdapter(sklExtraTreesRegression(), tags=['extra-trees', 'linear', 'non-linear', 'regression', 'non-deterministic', 'needs_population',], descr='skl.ExtraTreesRegression()') if _skl_version >= '0.8': if _skl_version >= '0.14': sklPLSRegression = _skl_import('cross_decomposition', 'PLSRegression') else: sklPLSRegression = _skl_import('pls', 'PLSRegression') # somewhat silly use of PLS, but oh well regrswh += SKLLearnerAdapter(sklPLSRegression(n_components=1), tags=['linear', 'regression'], enforce_dim=1, descr='skl.PLSRegression_1d()') if externals.versions['skl'] >= '0.6.0': sklLars = _skl_import('linear_model', _skl_api09 and 'Lars' or 'LARS') sklLassoLars = _skl_import('linear_model', _skl_api09 and 'LassoLars' or 'LassoLARS') sklElasticNet = _skl_import('linear_model', 'ElasticNet') _lars_tags = ['lars', 'linear', 'regression', 'does_feature_selection'] _lars = SKLLearnerAdapter(sklLars(), tags=_lars_tags, descr='skl.Lars()') _lasso_lars = SKLLearnerAdapter(sklLassoLars(alpha=0.01), tags=_lars_tags, descr='skl.LassoLars()') _elastic_net = SKLLearnerAdapter( sklElasticNet(alpha=.01, **{'l1_ratio' if externals.versions['skl'] >= '0.13' else 'rho': .3}), tags=['enet', 'regression', 'linear', # 'has_sensitivity', 'does_feature_selection'], descr='skl.ElasticNet()') regrswh += [_lars, _lasso_lars, _elastic_net] clfswh += [RegressionAsClassifier(_lars, descr="skl.Lars_C()"), RegressionAsClassifier(_lasso_lars, descr="skl.LassoLars_C()"), RegressionAsClassifier(_elastic_net, descr="skl.ElasticNet_C()"), ] if _skl_version >= '0.10': sklLassoLarsIC = _skl_import('linear_model', 'LassoLarsIC') _lasso_lars_ic = SKLLearnerAdapter(sklLassoLarsIC(), tags=_lars_tags, descr='skl.LassoLarsIC()') regrswh += [_lasso_lars_ic] clfswh += [RegressionAsClassifier(_lasso_lars_ic, descr='skl.LassoLarsIC_C()')] # kNN clfswh += kNN(k=5, descr="kNN(k=5)") clfswh += kNN(k=5, voting='majority', descr="kNN(k=5, voting='majority')") clfswh += \ FeatureSelectionClassifier( kNN(), SensitivityBasedFeatureSelection( SMLRWeights(SMLR(lm=1.0, implementation="C"), postproc=maxofabs_sample()), RangeElementSelector(mode='select')), descr="kNN on SMLR(lm=1) non-0") clfswh += \ FeatureSelectionClassifier( kNN(), SensitivityBasedFeatureSelection( OneWayAnova(), FractionTailSelector(0.05, mode='select', tail='upper')), descr="kNN on 5%(ANOVA)") clfswh += \ FeatureSelectionClassifier( kNN(), SensitivityBasedFeatureSelection( OneWayAnova(), FixedNElementTailSelector(50, mode='select', tail='upper')), descr="kNN on 50(ANOVA)") # GNB clfswh += GNB(descr="GNB()") clfswh += GNB(common_variance=True, descr="GNB(common_variance=True)") clfswh += GNB(prior='uniform', descr="GNB(prior='uniform')") clfswh += \ FeatureSelectionClassifier( GNB(), SensitivityBasedFeatureSelection( OneWayAnova(), FractionTailSelector(0.05, mode='select', tail='upper')), descr="GNB on 5%(ANOVA)") # GPR if externals.exists('scipy'): from mvpa2.clfs.gpr import GPR regrswh += GPR(kernel=LinearKernel(), descr="GPR(kernel='linear')") regrswh += GPR(kernel=SquaredExponentialKernel(), descr="GPR(kernel='sqexp')") # Add wrapped GPR as a classifier gprcb = RegressionAsClassifier( GPR(kernel=GeneralizedLinearKernel()), descr="GPRC(kernel='linear')") # lets remove multiclass label from it gprcb.__tags__.pop(gprcb.__tags__.index('multiclass')) clfswh += gprcb # and create a proper multiclass one clfswh += MulticlassClassifier( RegressionAsClassifier( GPR(kernel=GeneralizedLinearKernel())), descr="GPRCM(kernel='linear')") # BLR from mvpa2.clfs.blr import BLR clfswh += RegressionAsClassifier(BLR(descr="BLR()"), descr="BLR Classifier") #PLR from mvpa2.clfs.plr import PLR clfswh += PLR(descr="PLR()") if externals.exists('scipy'): clfswh += PLR(reduced=0.05, descr="PLR(reduced=0.01)") # SVM stuff if len(clfswh['linear', 'svm']) > 0: linearSVMC = clfswh['linear', 'svm', cfg.get('svm', 'backend', default='libsvm').lower() ][0] # "Interesting" classifiers clfswh += \ FeatureSelectionClassifier( linearSVMC.clone(), SensitivityBasedFeatureSelection( SMLRWeights(SMLR(lm=0.1, implementation="C"), postproc=maxofabs_sample()), RangeElementSelector(mode='select')), descr="LinSVM on SMLR(lm=0.1) non-0") _rfeclf = linearSVMC.clone() clfswh += \ FeatureSelectionClassifier( _rfeclf, SplitRFE( _rfeclf, OddEvenPartitioner(), fselector=FractionTailSelector( 0.2, mode='discard', tail='lower')), descr="LinSVM with nested-CV RFE") _clfs_splitrfe_svm_anova = \ FeatureSelectionClassifier( linearSVMC.clone(), SplitRFE( linearSVMC.clone(), OddEvenPartitioner(), fselector=FractionTailSelector( 0.2, mode='discard', tail='lower'), fmeasure=OneWayAnova()), descr="LinSVM with nested-CV Anova RFE") clfswh += _clfs_splitrfe_svm_anova clfswh += \ FeatureSelectionClassifier( linearSVMC.clone(), SensitivityBasedFeatureSelection( SMLRWeights(SMLR(lm=1.0, implementation="C"), postproc=maxofabs_sample()), RangeElementSelector(mode='select')), descr="LinSVM on SMLR(lm=1) non-0") # "Interesting" classifiers clfswh += \ FeatureSelectionClassifier( RbfCSVMC(), SensitivityBasedFeatureSelection( SMLRWeights(SMLR(lm=1.0, implementation="C"), postproc=maxofabs_sample()), RangeElementSelector(mode='select')), descr="RbfSVM on SMLR(lm=1) non-0") clfswh += \ FeatureSelectionClassifier( linearSVMC.clone(), SensitivityBasedFeatureSelection( OneWayAnova(), FractionTailSelector(0.05, mode='select', tail='upper')), descr="LinSVM on 5%(ANOVA)") clfswh += \ FeatureSelectionClassifier( linearSVMC.clone(), SensitivityBasedFeatureSelection( OneWayAnova(), FixedNElementTailSelector(50, mode='select', tail='upper')), descr="LinSVM on 50(ANOVA)") clfswh += \ FeatureSelectionClassifier( linearSVMC.clone(), SensitivityBasedFeatureSelection( linearSVMC.get_sensitivity_analyzer(postproc=maxofabs_sample()), FractionTailSelector(0.05, mode='select', tail='upper')), descr="LinSVM on 5%(SVM)") clfswh += \ FeatureSelectionClassifier( linearSVMC.clone(), SensitivityBasedFeatureSelection( linearSVMC.get_sensitivity_analyzer(postproc=maxofabs_sample()), FixedNElementTailSelector(50, mode='select', tail='upper')), descr="LinSVM on 50(SVM)") ### Imports which are specific to RFEs # from mvpa2.datasets.splitters import OddEvenSplitter # from mvpa2.clfs.transerror import TransferError # from mvpa2.featsel.rfe import RFE # from mvpa2.featsel.helpers import FixedErrorThresholdStopCrit # from mvpa2.clfs.transerror import ConfusionBasedError # SVM with unbiased RFE -- transfer-error to another splits, or in # other terms leave-1-out error on the same dataset # Has to be bound outside of the RFE definition since both analyzer and # error should use the same instance. rfesvm_split = SplitClassifier(linearSVMC)#clfswh['LinearSVMC'][0]) # "Almost" classical RFE. If this works it would differ only that # our transfer_error is based on internal splitting and classifier used # within RFE is a split classifier and its sensitivities per split will get # averaged # #clfswh += \ # FeatureSelectionClassifier( # clf = LinearCSVMC(), #clfswh['LinearSVMC'][0], # we train LinearSVM # feature_selection = RFE( # on features selected via RFE # # based on sensitivity of a clf which does splitting internally # sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer(), # transfer_error=ConfusionBasedError( # rfesvm_split, # confusion_state="confusion"), # # and whose internal error we use # feature_selector=FractionTailSelector( # 0.2, mode='discard', tail='lower'), # # remove 20% of features at each step # update_sensitivity=True), # # update sensitivity at each step # descr='LinSVM+RFE(splits_avg)' ) # #clfswh += \ # FeatureSelectionClassifier( # clf = LinearCSVMC(), # we train LinearSVM # feature_selection = RFE( # on features selected via RFE # # based on sensitivity of a clf which does splitting internally # sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer(), # transfer_error=ConfusionBasedError( # rfesvm_split, # confusion_state="confusion"), # # and whose internal error we use # feature_selector=FractionTailSelector( # 0.2, mode='discard', tail='lower'), # # remove 20% of features at each step # update_sensitivity=False), # # update sensitivity at each step # descr='LinSVM+RFE(splits_avg,static)' ) rfesvm = LinearCSVMC() # This classifier will do RFE while taking transfer error to testing # set of that split. Resultant classifier is voted classifier on top # of all splits, let see what that would do ;-) #clfswh += \ # SplitClassifier( # which does splitting internally # FeatureSelectionClassifier( # clf = LinearCSVMC(), # feature_selection = RFE( # on features selected via RFE # sensitivity_analyzer= # rfesvm.get_sensitivity_analyzer(postproc=absolute_features()), # transfer_error=TransferError(rfesvm), # stopping_criterion=FixedErrorThresholdStopCrit(0.05), # feature_selector=FractionTailSelector( # 0.2, mode='discard', tail='lower'), # # remove 20% of features at each step # update_sensitivity=True)), # # update sensitivity at each step # descr='LinSVM+RFE(N-Fold)') # # #clfswh += \ # SplitClassifier( # which does splitting internally # FeatureSelectionClassifier( # clf = LinearCSVMC(), # feature_selection = RFE( # on features selected via RFE # sensitivity_analyzer= # rfesvm.get_sensitivity_analyzer(postproc=absolute_features()), # transfer_error=TransferError(rfesvm), # stopping_criterion=FixedErrorThresholdStopCrit(0.05), # feature_selector=FractionTailSelector( # 0.2, mode='discard', tail='lower'), # # remove 20% of features at each step # update_sensitivity=True)), # # update sensitivity at each step # splitter = OddEvenSplitter(), # descr='LinSVM+RFE(OddEven)') pymvpa2-2.6.4/mvpa2/cmdline/000077500000000000000000000000001323370031300155545ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/cmdline/__init__.py000066400000000000000000000007741323370031300176750ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PyMVPA command line interface module""" __docformat__ = 'restructuredtext' # NOTE: enable commands directly in bin/pymvpa2 pymvpa2-2.6.4/mvpa2/cmdline/cmd_atlaslabeler.py000077500000000000000000000772471323370031300214300ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Query atlases for anatomical labels of voxel coordinates, or their statistics Examples: > pymvpa2 atlaslabeler -s -A talairach-dist -d 10 -R Closest\ Gray -l Structure,Brodmann\ area -cC mask.nii.gz produces a summary per each structure and brodmann area, for each voxel looking within 10mm radius for the closest gray matter voxel. Simpler, more reliable, and faster usage is by providing a corresponding atlas volume image registered to the volume at hands, e.g.: > pymvpa2 atlaslabeler -f MNI-prob-bold.nii.gz -A MNI -s mask_vt.nii.gz > pymvpa2 atlaslabeler -f HarvardOxford-cort-prob-bold.nii.gz -A HarvardOxford-Cortical -s mask_vt.nii.gz would provide summary over the MNI (or HarvardOxford-Cortical) atlas, .nii.gz of which were previously flirted (or fnirted) into the space of mask_vt.nii.gz and provided in '-f' argument. """ # magic line for manpage summary # man: -*- % query stereotaxic atlases __docformat__ = 'restructuredtext' import re, sys, os import argparse import mvpa2 from mvpa2.base import verbose, warning, externals if externals.exists('nibabel', raise_=True): import nibabel as nb if __debug__: from mvpa2.base import debug from mvpa2.atlases.transformation import * if externals.exists('lxml', raise_=True): from mvpa2.atlases import Atlas, ReferencesAtlas, FSLProbabilisticAtlas, \ KNOWN_ATLASES, KNOWN_ATLAS_FAMILIES, XMLAtlasException import numpy as np #import numpy.linalg as la # to read in transformation matrix def select_from_volume_iterator(volFileName, lt=None, ut=None): """ Generator which returns value + coordinates with values of non-0 entries from the `volFileName` Returns ------- tuple with 0th entry value, the others are voxel coordinates More effective than previous loopy iteration since uses numpy's where function, but for now is limited only to non-0 voxels selection """ try: volFile = nb.load(volFileName) except: raise IOError("Cannot open image file %s" % volFileName) volData = volFile.get_data() voxdim = volFile.header.get_zooms()[:3] if lt is None and ut is None: mask = volData != 0.0 elif lt is None and ut is not None: mask = volData <= ut elif lt is not None and ut is None: mask = volData >= lt else: mask = np.logical_and(volData >= lt, volData <= ut) matchingVoxels = np.where(mask) for e in zip(volData[matchingVoxels], *matchingVoxels): e_ = tuple(e) if len(e_) < 5: e_ = e_ + (0,) # add time=0 yield e_ def parsed_coordinates_iterator( parseString="^\s*(?P\S+)[ \t,](?P\S+)[ \t,](?P\S+)\s*$", inputStream=sys.stdin, ctype=float, dtype=float): """Iterator to provide coordinates/values parsed from the string stream, most often from the stdin """ parser = re.compile(parseString) for line in inputStream.readlines(): line = line.strip() match = parser.match(line) if not match: if __debug__: debug('ATL', "Line '%s' did not match '%s'" % (line, parseString)) else: r = match.groupdict() if 'v' in r: v = dtype(r['v']) else: v = 0.0 if 't' in r: t = dtype(r['t']) else: t = 0.0 yield (v, ctype(r['x']), ctype(r['y']), ctype(r['z']), t) # XXX helper to process labels... move me ##REF: Name was automagically refactored def present_labels(args, labels): if isinstance(labels, list): res = [] for label in labels: # XXX warning -- some inconsistencies in atlas.py # need refactoring s = label['label'] #.text if 'prob' in label and not args.createSummary: s += "(%d%%%%)" % label['prob'] res += [s] if res == []: res = ['None'] return '/'.join(res) else: if args.abbreviatedLabels: return labels['label'].abbr else: return labels['label'].text def statistics(values): N_ = len(values) if N_==0: return 0, None, None, None, None, "" mean = np.mean(values) std = np.std(values) minv = np.min(values) maxv = np.max(values) ssummary = "[%3.2f : %3.2f] %3.2f+-%3.2f" % (minv, maxv, mean, std) return N_, mean, std, minv, maxv, ssummary ##REF: Name was automagically refactored def get_summary(args, summary, output): """Output the summary """ # Sort either by the name (then ascending) or by the number of # elements (then descending) sort_keys = [(k, len(v['values']), v['maxcoord'][1]) for k,v in summary.iteritems()] sort_index, sort_reverse = { 'name' : (0, False), 'count': (1, True), 'a-p': (2, True)}[args.sortSummaryBy] sort_keys.sort(cmp=lambda x,y: cmp(x[sort_index], y[sort_index]), reverse=sort_reverse) # and here are the keys keys = [x[0] for x in sort_keys] maxkeylength = max (map(len, keys)) # may be I should have simply made a counter ;-) total = sum(map(lambda x:len(x['values']), summary.values())) count_reported = 0 for index in keys: if index.rstrip(' /') == 'None' and args.suppressNone: continue summary_ = summary[index] values = summary_['values'] N, mean, std, minv, maxv, ssummary = statistics(values) Npercent = 100.0*N/total if N < args.countThreshold \ or Npercent < args.countPercentThreshold: continue count_reported += N msg = "%%%ds:" % maxkeylength output.write(msg % index) output.write("%4d/%4.1f%% items" \ % (N, Npercent)) if args.createSummary>1: output.write(" %s" % ssummary) if args.createSummary>2: output.write(" max at %s" % summary_['maxcoord']) if args.showOriginalCoordinates and volQForm: #import pydb #pydb.debugger() #coord = np.dot(volQForm, summary_['maxcoord']+[1])[:3] coord = volQForm[summary_['maxcoord']] output.write(" %r" % (tuple(coord),)) if args.createSummary>3 and 'distances' in summary_: # if we got statistics over referenced voxels Nr, mean, std, minv, maxv, ssummary = \ statistics(summary_['distances']) Nr = len(summary_['distances']) # print "N=", N, " Nr=", Nr output.write(" Referenced: %d/%d%% Distances: %s" \ % (Nr, int(Nr*100.0 / N), \ ssummary)) output.write("\n") # output might fail to flush, like in the case with broken pipe # -- imho that is not a big deal, ie not worth scaring the user try: output.flush() except IOError: pass output.write("-----\n") output.write("TOTAL: %d items" % count_reported) if total != count_reported: output.write(" (out of %i, %i were excluded)" % (total, total-count_reported)) output.write("\n") parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } def setup_parser(parser): parser.add_argument("-a", "--atlas-file", action="store", dest="atlasFile", default=None, help="Atlas file to use. Overrides --atlas-path and --atlas") parser.add_argument("--atlas-path", action="store", dest="atlasPath", default=None, help=r"Path to the atlas files. '%(name)s' will be replaced" " with the atlas name. See -A. Defaults depend on the" " atlas family.") parser.add_argument("-A", "--atlas", action="store", dest="atlasName", default="talairach", choices=KNOWN_ATLASES.keys(), help="Atlas to use. Choices: %s" % ', '.join(KNOWN_ATLASES.keys())) parser.add_argument("-f", "--atlas-image-file", action="store", dest="atlasImageFile", default=None, help=r"Path to the data image for the corresponding atlas. " " Can be used to override default image if it was " " already resliced into a corresponding space (e.g." " subject)") parser.add_argument("-i", "--input-coordinates-file", action="store", dest="inputCoordFile", default=None, help="Fetch coordinates from ASCII file") parser.add_argument("-v", "--input-volume-file", action="store", dest="inputVolFile", default=None, help="Fetch coordinates from volumetric file") parser.add_argument("-o", "--output-file", action="store", dest="outputFile", default=None, help="Output file. Otherwise standard output") parser.add_argument("-d", "--max-distance", action="store", type=float, dest="maxDistance", default=0, help="When working with reference/distance atlases, what" " maximal distance to use to look for the voxel of interest") parser.add_argument("-T", "--transformation-file", dest="transformationFile", help="First transformation to apply to the data. Usually"+ " should be subject -> standard(MNI) transformation") parser.add_argument("-s", "--summary", action="count", dest="createSummary", default=0, help="Either to create a summary instead of dumping voxels." " Use multiple -s for greater verbose summary") parser.add_argument("--ss", "--sort-summary-by", dest="sortSummaryBy", default="name", choices=['name', 'count', 'a-p'], help="How to sort summary entries. " " a-p sorts anterior-posterior order") parser.add_argument("--dumpmap-file", action="store", dest="dumpmapFile", default=None, help="If original data is given as image file, dump indexes" " per each treholded voxels into provided here output file") parser.add_argument("-l", "--levels", dest="levels", default=None, help="Indexes of levels which to print, or based on which " "to create a summary (for a summary levels=4 is default). " "To get listing of known for the atlas levels, use '-l list'") parser.add_argument("--mni2tal", choices=["matthewbrett", "lancaster07fsl", "lancaster07pooled", "meyerlindenberg98"], dest="MNI2TalTransformation", default="matthewbrett", help="Choose between available transformations from mni " "2 talairach space") parser.add_argument("--thr", "--lthr", "--lower-threshold", action="store", type=float, dest="lowerThreshold", default=None, help="Lower threshold for voxels to output") parser.add_argument("--uthr", "--upper-threshold", action="store", type=float, dest="upperThreshold", default=None, help="Upper threshold for voxels to output") parser.add_argument("--count-thr", "--cthr", action="store", type=int, dest="countThreshold", default=1, help="Lowest number of voxels for area to be reported in summary") parser.add_argument("--count-pthr", "--pthr", action="store", type=float, dest="countPercentThreshold", default=0.00001, help="Lowest percentage of voxels within an area to be reported in summary") parser.add_argument("--suppress-none", "--sn", action="store_true", dest="suppressNone", help="Suppress reporting of voxels which found no labels (reported as None)") parser.add_argument("--abbr", "--abbreviated-labels", action="store_true", dest="abbreviatedLabels", help="Manipulate with abbreviations for labels instead of" " full names, if the atlas has such") # Parameters to be inline with older talairachlabel parser.add_argument("-c", "--tc", "--show-target-coord", action="store_true", dest="showTargetCoordinates", help="Show target coordinates") parser.add_argument("--tv", "--show-target-voxel", action="store_true", dest="showTargetVoxel", help="Show target coordinates") parser.add_argument("--rc", "--show-referenced-coord", action="store_true", dest="showReferencedCoordinates", help="Show referenced coordinates/distance in case if we are" " working with reference atlas") parser.add_argument("-C", "--oc", "--show-orig-coord", action="store_true", dest="showOriginalCoordinates", help="Show original coordinates") parser.add_argument("-V", "--show-values", action="store_true", dest="showValues", help="Show values") parser.add_argument("-I", "--input-space", action="store", dest="inputSpace", default="MNI", help="Space in which input volume/coordinates provided in. For instance Talairach/MNI") parser.add_argument("-F", "--forbid-direct-mapping", action="store_true", dest="forbidDirectMapping", default=False, help="If volume is provided it first tries to do direct " "mapping voxel-2-voxel if there is no transformation file " "given. This option forbids such behavior and does " "coordinates mapping anyway.") parser.add_argument("-t", "--talairach", action="store_true", dest="coordInTalairachSpace", default=False, help="Coordinates are in talairach space (1x1x1mm)," + " otherwise assumes in mni space (2x2x2mm)." " Shortcut for '-I Talairach'") parser.add_argument("-H", "--half-voxel-correction", action="store_true", dest="halfVoxelCorrection", default=False, help="Adjust coord by 0.5mm after transformation to " "Tal space.") parser.add_argument("-r", "--relative-to-origin", action="store_true", dest="coordRelativeToOrigin", help="Coords are relative to the origin standard form" + " ie in spatial units (mm), otherwise the default assumes" + " raw voxel dimensions") parser.add_argument("--input-line-format", action="store", dest="inputLineFormat", default=r"^\s*(?P\S+)[ \t,]+(?P\S+)[ \t,]+(?P\S+)\s*$", help="Format of the input lines (if ASCII input is provided)") parser.add_argument("--iv", "--input-voxels", action="store_true", dest="input_voxels", default=False, help="Input lines carry voxel indices (int), not coordinates.") # Specific atlas options # TODO : group into options groups # Reference atlas parser.add_argument("-R", "--reference", action="store", dest="referenceLevel", default="Closest Gray", help="Which level to reference in the case of reference" " atlas") # Probabilistic atlases parser.add_argument("--prob-thr", action="store", type=float, dest="probThr", default=25.0, help="At what probability (in %) to threshold in " "probabilistic atlases (e.g. FSL)") parser.add_argument("--prob-strategy", action="store", dest="probStrategy", choices=['all', 'max'], default='max', help="What strategy to use for reporting. 'max' would report" " single area (above threshold) with maximal probabilitity") def run(args): #atlas.relativeToOrigin = args.coordRelativeToOrigin fileIn = None coordT = None niftiInput = None # define data type for coordinates if args.input_voxels: ctype = int query_voxel = True else: ctype = float query_voxel = False # Setup coordinates read-in volQForm = None # # compatibility with older talairachlabel if args.inputCoordFile: fileIn = open(args.inputCoordFile) coordsIterator = parsed_coordinates_iterator( args.inputLineFormat, fileIn, ctype=ctype) if args.inputVolFile: infile = args.inputVolFile # got a volume/file to process if __debug__: debug('ATL', "Testing if 0th element in the list a volume") niftiInput = None try: niftiInput = nb.load(infile) if __debug__: debug('ATL', "Yes it is") except Exception, e: if __debug__: debug('ATL', "No it is not due to %s. Trying to parse the file" % e) if niftiInput: # if we got here -- it is a proper volume # XXX ask Michael to remove nasty warning message coordsIterator = select_from_volume_iterator( infile, args.lowerThreshold, args.upperThreshold) assert(coordT is None) coordT = Linear(niftiInput.header.get_qform()) # lets store volumeQForm for possible conversion of voxels into coordinates volQForm = coordT # previous iterator returns space coordinates args.coordRelativeToOrigin = True else: raise ValueError('could not open volumetric input file') # input is stdin else: coordsIterator = parsed_coordinates_iterator( args.inputLineFormat, ctype=ctype) # Open and initialize atlas lookup if args.atlasFile is None: if args.atlasPath is None: args.atlasPath = KNOWN_ATLASES[args.atlasName] args.atlasFile = args.atlasPath % ( {'name': args.atlasName} ) akwargs_common = {} if args.atlasImageFile: akwargs_common['image_file'] = args.atlasImageFile if not args.forbidDirectMapping \ and niftiInput is not None and not args.transformationFile: akwargs = {'resolution': niftiInput.header.get_zooms()[0]} query_voxel = True # if we can query directly by voxel, do so akwargs.update(akwargs_common) verbose(1, "Will attempt direct mapping from input voxels into atlas " "voxels at resolution %.2f" % akwargs['resolution']) atlas = Atlas(args.atlasFile, **akwargs) # verify that we got the same qforms in atlas and in the data file if atlas.space != args.inputSpace: verbose(0, "Cannot do direct mapping between input image in %s space and" " atlas in %s space. Use -I switch to override input space if" " it misspecified, or use -T to provide transformation. Trying" " to proceed" %(args.inputSpace, atlas.space)) query_voxel = False elif not (niftiInput.header.get_qform() == atlas._image.header.get_qform()).all(): if args.atlasImageFile is None: warning( "Cannot do direct mapping between files with different qforms." " Please provide original transformation (-T)." "\n Input qform:\n%s\n Atlas qform: \n%s" %(niftiInput.header.get_qform(), atlas._image.header.get_qform), 1) # reset ability to query by voxels query_voxel = False else: warning( "QForms are different between input image and " "provided atlas image." "\n Input qform of %s:\n%s\n Atlas qform of %s:\n%s" %(infile, niftiInput.header.get_qform(), args.atlasImageFile, atlas._image.header.get_qform()), 1) else: coordT = None else: atlas = Atlas(args.atlasFile, **akwargs_common) if isinstance(atlas, ReferencesAtlas): args.referenceLevel = args.referenceLevel.replace('/', ' ') atlas.set_reference_level(args.referenceLevel) atlas.distance = args.maxDistance else: args.showReferencedCoordinates = False if isinstance(atlas, FSLProbabilisticAtlas): atlas.strategy = args.probStrategy atlas.thr = args.probThr ## If not in Talairach -- in MNI with voxel size 2x2x2 # Original talairachlabel assumed that if respective to origin -- voxels were # scaled already. #if args.coordInTalairachSpace: # voxelSizeOriginal = np.array([1, 1, 1]) #else: # voxelSizeOriginal = np.array([2, 2, 2]) if args.coordInTalairachSpace: args.inputSpace = "Talairach" if not (args.inputSpace == atlas.space or (args.inputSpace in ["MNI", "Talairach"] and atlas.space == "Talairach")): raise XMLAtlasException("Unknown space '%s' which is not the same as atlas " "space '%s' either" % ( args.inputSpace, atlas.space )) if query_voxel: # we do direct mapping coordT = None else: verbose(2, "Chaining needed transformations") # by default -- no transformation if args.transformationFile: #externals.exists('scipy', raise_=True) # scipy.io.read_array was deprecated a while back (around 0.8.0) from numpy import loadtxt transfMatrix = loadtxt(args.transformationFile) coordT = Linear(transfMatrix, previous=coordT) verbose(2, "coordT got linear transformation from file %s" % args.transformationFile) voxelOriginOriginal = None voxelSizeOriginal = None if not args.coordRelativeToOrigin: if args.inputSpace == "Talairach": # assume that atlas is in Talairach space already voxelOriginOriginal = atlas.origin voxelSizeOriginal = np.array([1, 1, 1]) elif args.inputSpace == "MNI": # need to adjust for MNI origin as it was thought to be at # in terms of voxels #voxelOriginOriginal = np.array([46, 64, 37]) voxelOriginOriginal = np.array([45, 63, 36]) voxelSizeOriginal = np.array([2.0, 2.0, 2.0]) warning("Assuming elderly sizes for MNI volumes with" " origin %s and sizes %s" %\ ( `voxelOriginOriginal`, `voxelSizeOriginal`)) if not (voxelOriginOriginal is None and voxelSizeOriginal is None): verbose(2, "Assigning origin adjusting transformation with"+\ " origin=%s and voxelSize=%s" %\ ( `voxelOriginOriginal`, `voxelSizeOriginal`)) coordT = SpaceTransformation(origin=voxelOriginOriginal, voxelSize=voxelSizeOriginal, to_real_space=True, previous=coordT) # besides adjusting for different origin we need to transform into # Talairach space if args.inputSpace == "MNI" and atlas.space == "Talairach": verbose(2, "Assigning transformation %s" % args.MNI2TalTransformation) # What transformation to use coordT = {"matthewbrett": MNI2Tal_MatthewBrett, "lancaster07fsl": mni_to_tal_lancaster07_fsl, "lancaster07pooled": mni_to_tal_lancaster07pooled, "meyerlindenberg98": mni_to_tal_meyer_lindenberg98, "yohflirt": mni_to_tal_yohflirt }\ [args.MNI2TalTransformation](previous=coordT) if args.inputSpace == "MNI" and args.halfVoxelCorrection: originCorrection = np.array([0.5, 0.5, 0.5]) else: # perform transformation any way to convert to voxel space (integers) originCorrection = None # To be closer to what original talairachlabel did -- add 0.5 to each coord coordT = SpaceTransformation(origin=originCorrection, voxelSize=None, to_real_space=False, previous = coordT) if args.createSummary: summary = {} if args.levels is None: args.levels = str(min(4, atlas.nlevels-1)) if args.levels is None: args.levels = range(atlas.nlevels) elif isinstance(args.levels, basestring): if args.levels == 'list': print "Known levels and their indicies:\n" + atlas.levels_listing() sys.exit(0) slevels = args.levels.split(',') args.levels = [] for level in slevels: try: int_level = int(level) except: if level in atlas.levels: int_level = atlas.levels[level].index else: raise RuntimeError( "Unknown level '%s'. " % level + "Known levels and their indicies:\n" + atlas.levels_listing()) args.levels += [int_level] else: raise ValueError("Don't know how to handle list of levels %s." "Example is '1,2,3'" % (args.levels,)) verbose(3, "Operating on following levels: %s" % args.levels) # assign levels to the atlas atlas.default_levels = args.levels if args.outputFile: output = open(args.outputFile, 'w') else: output = sys.stdout # validity check if args.dumpmapFile: if niftiInput is None: raise RuntimeError, "You asked to dump indexes into the volume, " \ "but input wasn't a volume" sys.exit(1) ni_dump = nb.load(infile) ni_dump_data = np.zeros(ni_dump.header.get_data_shape()[:3] + (len(args.levels),)) # Also check if we have provided voxels but not querying by voxels if args.input_voxels: if coordT is not None: raise NotImplementedError, \ "Cannot perform voxels querying having coordT defined" if not query_voxel: raise NotImplementedError, \ "query_voxel was reset to False, can't do queries by voxel" # Read coordinates numVoxels = 0 for c in coordsIterator: value, coord_orig, t = c[0], c[1:4], c[4] if __debug__: debug('ATL', "Obtained coord_orig=%s with value %s" % (repr(coord_orig), value)) lt, ut = args.lowerThreshold, args.upperThreshold if lt is not None and value < lt: verbose(5, "Value %s is less than lower threshold %s, thus voxel " "is skipped" % (value, args.lowerThreshold)) continue if ut is not None and value > ut: verbose(5, "Value %s is greater than upper threshold %s, thus voxel " "is skipped" % (value, args.upperThreshold)) continue numVoxels += 1 # Apply necessary transformations coord = coord_orig = np.array(coord_orig) if coordT: coord = coordT[ coord_orig ] # Query label if query_voxel: voxel = atlas[coord] else: voxel = atlas(coord) voxel['coord_orig'] = coord_orig voxel['value'] = value voxel['t'] = t if args.createSummary: summaryIndex = "" voxel_labels = voxel["labels"] for i,ind in enumerate(args.levels): voxel_label = voxel_labels[i] text = present_labels(args, voxel_label) #if len(voxel_label): # assert(voxel_label['index'] == ind) summaryIndex += text + " / " if not summaryIndex in summary: summary[summaryIndex] = {'values':[], 'max':value, 'maxcoord':coord_orig} if 'voxel_referenced' in voxel: summary[summaryIndex]['distances'] = [] summary_ = summary[summaryIndex] summary_['values'].append(value) if summary_['max'] < value: summary_['max'] = value summary_['maxcoord'] = coord_orig if 'voxel_referenced' in voxel: if voxel['voxel_referenced'] and voxel['distance']>=1e-3: verbose(5, 'Appending distance %e for voxel at %s' % (voxel['distance'], voxel['coord_orig'])) summary_['distances'].append(voxel['distance']) else: # Display while reading/processing first, out = True, "" if args.showValues: out += "%(value)5.2f " if args.showOriginalCoordinates: out += "%(coord_orig)s ->" if args.showReferencedCoordinates: out += " %(voxel_referenced)s=>%(distance).2f=>%(voxel_queried)s ->" if args.showTargetCoordinates: out += " %(coord_queried)s: " #out += "(%d,%d,%d): " % tuple(map(lambda x:int(round(x)),coord)) if args.showTargetVoxel: out += " %(voxel_queried)s ->" if args.levels is None: args.levels = range(len(voxel['labels'])) labels = [present_labels(args, voxel['labels'][i]) for i in args.levels] out += ','.join(labels) #if args.abbreviatedLabels: # out += ','.join([l.abbr for l in labels]) #else: # out += ','.join([l.text for l in labels]) #try: output.write(out % voxel + "\n") #except: # import pydb # pydb.debugger() if args.dumpmapFile: try: ni_dump_data[coord_orig[0], coord_orig[1], coord_orig[2]] = \ [voxel['labels'][i]['label'].index for i,ind in enumerate(args.levels)] except Exception, e: import pydb pydb.debugger() # if we opened any file -- close it if fileIn: fileIn.close() if args.dumpmapFile: ni_dump = nb.Nifti1Image(ni_dump_data, None, ni_dump.header) ni_dump.to_filename(args.dumpmapFile) if args.createSummary: if numVoxels == 0: verbose(1, "No matching voxels were found.") else: get_summary(args, summary, output) if args.outputFile: output.close() pymvpa2-2.6.4/mvpa2/cmdline/cmd_crossval.py000066400000000000000000000073031323370031300206100ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Cross-validation of a learner's performance A learner is repeatedly trained and tested on partitions of an input dataset that are generated by a configurable partitioning scheme. Partition usually constitute training and testing portions. The learner is trained on training portion of the dataset and then learner's generalization is tested by comparing its predictions on the testing portion. A summary of a learner performance is written to STDOUT. Depending on the particular setup of the cross-validation analysis, either the learner's raw predictions or summary statistics are returned in an output dataset. If Monte-Carlo permutation testing is enabled (see --permutations) a second output dataset with the corresponding p-values is stored as well (filename suffix '_nullprob'). """ # magic line for manpage summary # man: -*- % cross-validation of a learner's performance __docformat__ = 'restructuredtext' import numpy as np import copy import sys import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import vstack if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import parser_add_common_opt, \ ds2hdf5, hdf2ds, learner_opt, partitioner_opt, \ learner_space_opt, arg2errorfx, get_crossvalidation_instance, \ crossvalidation_opts_grp parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } def setup_parser(parser): from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts, single_required_hdf5output parser_add_common_opt(parser, 'multidata', required=True) # make learner and partitioner options required cv_opts_grp = copy.deepcopy(crossvalidation_opts_grp) for i in (0,2): cv_opts_grp[1][i][1]['required'] = True parser_add_optgroup_from_def(parser, cv_opts_grp) parser_add_optgroup_from_def(parser, single_required_hdf5output) def run(args): dss = hdf2ds(args.data) verbose(3, 'Loaded %i dataset(s)' % len(dss)) ds = vstack(dss) verbose(3, 'Concatenation yielded %i samples with %i features' % ds.shape) # get CV instance cv = get_crossvalidation_instance( args.learner, args.partitioner, args.errorfx, args.sampling_repetitions, args.learner_space, args.balance_training, args.permutations, args.avg_datafold_results, args.prob_tail) res = cv(ds) # some meaningful output # XXX make condition on classification analysis only? print cv.ca.stats print 'Results\n-------' if args.permutations > 0: nprob = cv.ca.null_prob.samples if res.shape[1] == 1: # simple result structure if args.permutations > 0: p=', p-value (%s tail)' % args.prob_tail else: p='' print 'Fold, Result%s' % p for i in xrange(len(res)): if args.permutations > 0: p = ', %f' % nprob[i, 0] else: p = '' print '%s, %f%s' % (res.sa.cvfolds[i], res.samples[i, 0], p) # and store ds2hdf5(res, args.output, compression=args.hdf5_compression) if args.permutations > 0: if args.output.endswith('.hdf5'): args.output = args.output[:-5] ds2hdf5(cv.ca.null_prob, '%s_nullprob' % args.output, compression=args.hdf5_compression) return res pymvpa2-2.6.4/mvpa2/cmdline/cmd_describe.py000066400000000000000000000136401323370031300205350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Describe a dataset's content This command can produce a number of reports for datasets. Currently supported are summary statistics in text format, as well as basic plots. See the --report option for more information. """ # magic line for manpage summary # man: -*- % describe a dataset's content __docformat__ = 'restructuredtext' import numpy as np import sys import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import vstack from mvpa2.base.dochelpers import _indent if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import arg2ds, parser_add_optgroup_from_def, parser_add_common_opt parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } def arg2transform(args): args = args.split(':') if not len(args) == 2: raise ValueError("--numpy-xfm needs exactly two arguments") if not args[0] in ('samples', 'features'): raise ValueError("transformation axis must be 'samples' or 'features' (was: %s)" % args[0]) axis = args[0] if not hasattr(np, args[1]): raise ValueError("the NumPy package does not have a '%s' function" % args[1]) fx = getattr(np, args[1]) return fx, axis def _limit_lines(string, maxlines): lines = string.split('\n') truncated = '\n'.join(lines[:maxlines]) if len(lines) > maxlines: truncated += ' ...' return truncated def _describe_samples(samp, style): if style == 'terse': return "%s@%s\n" % (samp.shape, samp.dtype) else: return 'IMPLEMENT ME\n' def _describe_array_attr(attr, style): if len(attr.value.shape) == 1: shape = attr.value.shape[0] else: shape = attr.value.shape if style == 'terse': return '%s %s@%s' % (attr.name, shape, attr.value.dtype) else: return 'IMPLEMENT ME\n' def _describe_attr(attr, style): if style == 'terse': return '%s %s' % (attr.name, _limit_lines(str(attr.value), 1)) else: return 'IMPLEMENT ME\n' def txt_content_summary_terse(ds, args): print ds.summary(targets_attr=args.target_attr) info = '\n\nDetails on dataset attributes:\n' for cdesc, col, describer in \ (('sample', ds.sa, _describe_array_attr), ('feature', ds.fa, _describe_array_attr), ('dataset', ds.a, _describe_attr)): info += ' %s attributes:\n' % cdesc for attr in sorted(col.values(), cmp=lambda x, y: cmp(x.name, y.name)): info += ' %s\n' % describer(attr, 'terse') print info def sample_histogram(ds, args): import pylab as pl pl.figure() pl.hist(np.ravel(ds.samples), bins=args.histogram_bins) if args.xlim is not None: pl.xlim(*args.xlim) if args.ylim is not None: pl.ylim(*args.ylim) for opt, fx in ((args.x_marker, pl.axvline), (args.y_marker, pl.axhline)): if opt is not None: for val in opt: fx(val, linestyle='--') if args.figure_title is not None: pl.title(args.figure_title) pl.show() info_fx = { 'txtsummary' : txt_content_summary_terse, 'sample_histogram' : sample_histogram, } xfm_grp = ('options for transforming dataset content before plotting', [ (('--numpy-xfm',), dict(type=arg2transform, metavar='SPEC', help="""apply a Numpy function along a given axis of the samples before generating the dataset info summary. For example, 'samples:std' will apply the 'std' function along the samples axis, i.e. compute a vector of standard deviations for all features in a dataset""")), ]) output_grp = ('options for plot formatting', [ (('--figure-title',), dict(type=str, help="""title for a plot""")), (('--histogram-bins',), dict(type=int, default=20, metavar='VALUE', help="""number of bin for histograms""")), (('--xlim',), dict(type=float, nargs=2, help="""minimum and maximum value of the x-axis extent in a figure""")), (('--ylim',), dict(type=float, nargs=2, help="""minimum and maximum value of the y-axis extent in a figure""")), (('--x-marker',), dict(type=float, nargs='+', help="""list of x-value to draw markers on in a figure""")), (('--y-marker',), dict(type=float, nargs='+', help="""list of y-value to draw markers on in a figure""")), ]) ds_descr_grp = ('options for dataset description', [ (('--target-attr',), dict(default='targets', metavar='NAME', help="""name of a samples attributes defining 'target'. This information is used to define groups of samples when generating information on the within and between category data structure in a dataset.""")), ]) def setup_parser(parser): parser_add_common_opt(parser, 'multidata', required=True) parser.add_argument('-r', '--report', **dict(type=str, choices=info_fx.keys(), default='txtsummary', help="""choose a type of report. Default: terse summary in text format.""")) parser_add_optgroup_from_def(parser, xfm_grp) parser_add_optgroup_from_def(parser, output_grp) parser_add_optgroup_from_def(parser, ds_descr_grp) def run(args): ds = arg2ds(args.data) verbose(3, 'Concatenation yielded %i samples with %i features' % ds.shape) if args.numpy_xfm is not None: from mvpa2.mappers.fx import FxMapper fx, axis = args.numpy_xfm mapper = FxMapper(axis, fx) ds = ds.get_mapped(mapper) info_fx[args.report](ds, args) pymvpa2-2.6.4/mvpa2/cmdline/cmd_dump.py000066400000000000000000000146571323370031300177330ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dump dataset components in various formats A single arbitrary dataset component (sample data, sample attribute, feature attribute, dataset attribute) can be selected and exported into another format. A list of supported formats and their respective capabilities is below. PLAIN TEXT OUTPUT 1D and 2D numerical data can be export as plain text. In addition lists of strings are supported as well. Typically data is exported with one element per line is, except for 2D numerical matrices, where an entire row is written on a single line (space-separated). For all unsupported data a warning is issued and a truncated textual description of the dataset component is given. HDF5 STORAGE Arbitrary data (types) can be stored in HDF5 containers. For simple data that is natively supported by HDF5 a top-level HDF5 dataset is created and contains all data. Complex, not natively supported data types are serialized before stored in HDF5. NUMPY'S NPY BINARY FILES This data format is for storing numerical data (with arbitrary number of dimensions in binary format). NIFTI FILES This data format is for (multi-dimensional) spatial images. Input datasets should have a mapper that can reverse-map the corresponding dataset component back into the image space. Examples: Print a sample attribute $ pymvpa2 dump -i mydata.hdf5 --sa subj Export the sample data array into NumPy's .npy format $ pymvpa2 dump -i mydata.hdf5 -s -f npy -d mysamples.npy """ # magic line for manpage summary # man: -*- % export dataset components into other (file) formats __docformat__ = 'restructuredtext' import numpy as np import sys import argparse from mvpa2.base import verbose, warning, error if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import arg2ds, parser_add_common_opt, hdf5compression def _check_output(args): if args.output is None: raise ValueError("no output filename given (missing --output)") def to_nifti(dumpy, ds, args): from mvpa2.datasets.mri import map2nifti # TODO allow overriding the nifti header nimg = map2nifti(ds, dumpy) nimg.to_filename(args.output) parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } component_grp = ('options for selecting dataset components', [ (('-s', '--samples'), dict(action='store_true', help="""dump the dataset samples.""")), (('--sa',), dict( help="""name of the sample attribute to be dumped.""")), (('--fa',), dict( help="""name of the feature attribute to be dumped.""")), (('--da',), dict( help="""name of the dataset attribute to be dumped.""")), ]) hdf5_grp =('option for HDF5 output', [ hdf5compression[1:] ]) def setup_parser(parser): from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts parser_add_common_opt(parser, 'multidata', required=True) parser_add_optgroup_from_def(parser, component_grp, exclusive=True) parser.add_argument('-o', '--output', help="""output filename. If no output file name is given output will be directed to stdout, if permitted by the data format""") parser.add_argument('-f', '--format', default='txt', choices=('hdf5', 'nifti', 'npy', 'txt'), help="""output format""") parser_add_common_opt( parser, 'multidata', names=('--mapper-dataset',), dest='mapperds', help="""path to a PyMVPA dataset whose mapper should be used for reverse mapping features into volumetric space for NIfTI export. By default the mapper in the input dataset is used.""") parser_add_optgroup_from_def(parser, hdf5_grp) def run(args): ds = arg2ds(args.data) # What? if args.samples: dumpy = ds.samples elif not ((args.sa is None) and (args.fa is None) and (args.da is None)): for attr, col in ((args.sa, ds.sa), (args.fa, ds.fa), (args.da, ds.a)): if attr is None: continue try: dumpy = col[attr].value except KeyError: raise ValueError("unknown attribute '%s', known are %s)" % (attr, col.keys())) else: raise ValueError('no dataset component chosen') # How? if args.format == 'txt': if args.output: out = open(args.output, 'w') else: out = sys.stdout try: # trying to write numerical data fmt=None if np.issubdtype(dumpy.dtype, int): fmt='%i' elif np.issubdtype(dumpy.dtype, float): fmt='%G' if fmt is None: np.savetxt(out, dumpy) else: np.savetxt(out, dumpy, fmt=fmt) except: # it could be something 1d that we can try to print if hasattr(dumpy, 'shape') and len(dumpy.shape) == 1: for v in dumpy: print v else: warning("conversion to plain text is not supported for " "this data type") # who knows what it is out.write(repr(dumpy)) if out is not sys.stdout: out.close() elif args.format == 'hdf5': from mvpa2.base.hdf5 import h5save _check_output(args) if not args.output.endswith('.hdf5'): args.output += '.hdf5' h5save(args.output, dumpy) elif args.format == 'npy': _check_output(args) np.save(args.output, dumpy) elif args.format == 'nifti': _check_output(args) if args.fa: # need to wrap into a length-1 sequence to survive rev-mapping # properly # TODO maybe we should allow more complex transformations, e.g. # 2d features may just need a transpose() to fit into a NIfTI dumpy = dumpy[None] if args.mapperds is None: mapperds = ds else: mapperds = arg2ds(args.mapperds) to_nifti(dumpy, mapperds, args) return ds pymvpa2-2.6.4/mvpa2/cmdline/cmd_exec.py000066400000000000000000000106541323370031300177030ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Execute arbitrary Python expressions (on datasets) This command can be used to execute arbitrary Python scripts while avoiding unnecessary boilerplate code to load datasets and store results. This command is also useful for testing functionality and results via the commandline interface and for asserting arbitrary conditions in scripts. First, optional dataset(s) are loaded from one or more sources. Afterwards any number of given expressions (see --exec) are executed. An expression can be given as an argument on the command line, read from a file, or from STDIN. The return value of any given expression is ignored (not evaluated anyhow), only exceptions are treated as errors and cause the command to exit with a non-zero return value. To implement tests and assertions it is best to utilize a Python unittest framework such as 'nose'. In the namespace in which all expressions are evaluated the NumPy module is available via the alias 'np', and the nose.tools under the alias 'nt' (if installed). Any loaded datasets are available as a list named ``dss``. The first dataset in that list (if any) is available under the name ``ds``. Examples: Assert some condition $ pymvpa2 exec -e 'assert(4==4)' Check for the presence of a particular sample attribute in a dataset $ pymvpa2 exec -e 'dss[0].sa.subj3' -i mydata.hdf5 Extract and store results $ pymvpa2 exec -e 'a=5' -e 'print a' --store a -o mylittlea.hdf5 """ # magic line for manpage summary # man: -*- % evaluate arbitrary Python expressions for tests and assertions __docformat__ = 'restructuredtext' import os import sys import numpy as np import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import vstack if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers import arg2ds, ds2hdf5, parser_add_common_opt, \ hdf5compression, parser_add_optgroup_from_def hdf5output = ('output options', [ (('-s', '--store'), dict(type=str, nargs='+', metavar='NAME', help="""\ One or more names of variables or objects to extract from the local name space after all expressions have been executed. They will be stored in a dictionary in HDF5 format (requires --output).""")), (('-o', '--output'), dict(type=str, help="""output filename ('.hdf5' extension is added automatically if necessary). NOTE: The output format is suitable for data exchange between PyMVPA commands, but is not recommended for long-term storage or exchange as its specific content may vary depending on the actual software environment. For long-term storage consider conversion into other data formats (see 'dump' command).""")), hdf5compression[1:], ]) parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } def setup_parser(parser): parser_add_common_opt(parser, 'multidata', nargs='*', action='append') parser.add_argument('-e', '--exec', type=str, required=True, metavar='EXPR', action='append', dest='eval', help="""Python expression, or filename of a Python script, or '-' to read expressions from STDIN.""") parser_add_optgroup_from_def(parser, hdf5output) def run(args): if args.store is not None and args.output is None: raise ValueError("--output is require for result storage") if args.data is not None: dss = [arg2ds(d) for d in args.data] if len(dss): # convenience short-cut ds = dss[0] try: import nose.tools as nt except ImportError: pass for expr in args.eval: if expr == '-': exec sys.stdin elif os.path.isfile(expr): execfile(expr, globals(), locals()) else: exec expr if args.store is not None: out = {} for var in args.store: try: out[var] = locals()[var] except KeyError: warning("'%s' not found in local name space -- skipped." % var) if len(out): ds2hdf5(out, args.output, compression=args.hdf5_compression) pymvpa2-2.6.4/mvpa2/cmdline/cmd_hyperalign.py000066400000000000000000000140271323370031300211170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """""" # magic line for manpage summary # man: -*- % align the features across multiple datasets into a common space __docformat__ = 'restructuredtext' import numpy as np import argparse from mvpa2.base.hdf5 import h5save from mvpa2.base import verbose if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import strip_from_docstring, parser_add_common_opt, \ param2arg, ca2arg, arg2ds from mvpa2.algorithms.hyperalignment import Hyperalignment from mvpa2.mappers.procrustean import ProcrusteanMapper parser_args = { 'description': strip_from_docstring(Hyperalignment.__doc__, paragraphs=(4,), sections=(('Examples', 'Notes'))), 'formatter_class': argparse.RawDescriptionHelpFormatter, } _supported_cas = { 'residual_errors': { 'output_suffix': '_resid_errors.txt', }, 'training_residual_errors': { 'output_suffix': '_resid_errors_train.txt', }, } _output_specs = { 'commonspace': { 'output_suffix': '_commonspace', 'help': 'Store the final common space dataset after completion of level two.' }, 'store-transformation': { 'help': 'Store common space transformation mappers for each training dataset.', }, } _supported_parameters = ( 'alpha', 'level2_niter', 'ref_ds', 'zscore_all', 'zscore_common', ) def _transform_dss(srcs, mappers, args): if __debug__: debug('CMDLINE', "loading to-be-transformed data from %s" % srcs) dss = [arg2ds(d) for d in srcs] verbose(1, "Loaded %i to-be-transformed datasets" % len(dss)) if __debug__: debug('CMDLINE', "transform datasets") tdss = [ mappers[i].forward(td) for i, td in enumerate(dss)] return tdss, dss def setup_parser(parser): # order of calls is relevant! inputargs = parser.add_argument_group('input data arguments') parser_add_common_opt(inputargs, 'multidata', action='append', required=True) parser_add_common_opt( inputargs, 'multidata', names=('-t', '--transform'), dest='transform', help="""\ Additional datasets for transformation into the common space. The number and order of these datasets have to match those of the training dataset arguments as the correspond mapper will be used to transform each individual dataset.""") algoparms = parser.add_argument_group('algorithm parameters') for param in _supported_parameters: param2arg(algoparms, Hyperalignment, param) outopts = parser.add_argument_group('output options') parser_add_common_opt(outopts, 'output_prefix', required=True) parser_add_common_opt(outopts, 'hdf5compression') for oopt in sorted(_output_specs): outopts.add_argument('--%s' % oopt, action='store_true', help=_output_specs[oopt]['help']) for ca in sorted(_supported_cas): ca2arg(outopts, Hyperalignment, ca, help="\nOutput will be stored into '%s'" % _supported_cas[ca]['output_suffix']) def run(args): print args.data dss = [arg2ds(d)[:,:100] for d in args.data] verbose(1, "Loaded %i input datasets" % len(dss)) if __debug__: for i, ds in enumerate(dss): debug('CMDLINE', "dataset %i: %s" % (i, str(ds))) # TODO at this point more check could be done, e.g. ref_ds > len(dss) # assemble parameters params = dict([(param, getattr(args, param)) for param in _supported_parameters]) if __debug__: debug('CMDLINE', "configured parameters: '%s'" % params) # assemble CAs enabled_ca = [ca for ca in _supported_cas if getattr(args, ca)] if __debug__: debug('CMDLINE', "enabled conditional attributes: '%s'" % enabled_ca) hyper = Hyperalignment(enable_ca=enabled_ca, alignment=ProcrusteanMapper(svd='dgesvd', space='commonspace'), **params) verbose(1, "Running hyperalignment") promappers = hyper(dss) verbose(2, "Alignment reference is dataset %i" % hyper.ca.chosen_ref_ds) verbose(1, "Writing output") # save on memory and remove the training data del dss if args.commonspace: if __debug__: debug('CMDLINE', "write commonspace as hdf5") h5save('%s%s.hdf5' % (args.output_prefix, _output_specs['commonspace']['output_suffix']), hyper.commonspace, compression=args.hdf5_compression) for ca in _supported_cas: if __debug__: debug('CMDLINE', "check conditional attribute: '%s'" % ca) if getattr(args, ca): if __debug__: debug('CMDLINE', "store conditional attribute: '%s'" % ca) np.savetxt('%s%s' % (args.output_prefix, _supported_cas[ca]['output_suffix']), hyper.ca[ca].value.samples) if args.store_transformation: for i, pm in enumerate(promappers): if __debug__: debug('CMDLINE', "store mapper %i: %s" % (i, str(pm))) h5save('%s%s.hdf5' % (args.output_prefix, '_map%.3i' % i), pm, compression=args.hdf5_compression) if args.transform: tdss, dss = _transform_dss(args.transform, promappers, args) del dss verbose(1, "Store transformed datasets") for i, td in enumerate(tdss): if __debug__: debug('CMDLINE', "store transformed data %i: %s" % (i, str(td))) h5save('%s%s.hdf5' % (args.output_prefix, '_transformed%.3i' % i), td, compression=args.hdf5_compression) pymvpa2-2.6.4/mvpa2/cmdline/cmd_info.py000066400000000000000000000032221323370031300177030ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Query various information about a PyMVPA installation. If no option is given, a useful subset of the available information is printed. """ # magic line for manpage summary # man: -*- % query various information about a PyMVPA installation import mvpa2 __docformat__ = 'restructuredtext' def setup_parser(parser): excl = parser.add_mutually_exclusive_group() excl.add_argument('--externals', action='store_true', help='list status of external dependencies') if __debug__: excl.add_argument('--debug', action='store_true', help='list available debug channels') excl.add_argument( '--learner-warehouse', nargs='*', default=False, metavar='TAG', help="""list available algorithms in the learner warehouse. Optionally, an arbitrary number of tags can be specified to constrain the listing to learners with matching tags.""") return parser def run(args): if args.externals: print mvpa2.wtf(include=['externals']) elif args.debug: mvpa2.debug.print_registered() elif not args.learner_warehouse is False: from mvpa2.clfs.warehouse import clfswh clfswh.print_registered(*args.learner_warehouse) else: print mvpa2.wtf() pymvpa2-2.6.4/mvpa2/cmdline/cmd_mkds.py000066400000000000000000000225711323370031300177160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Create a PyMVPA dataset from various sources. This command converts data from various sources, such as text files, NumPy's NPY files, and MR (magnetic resonance) images into a PyMVPA dataset that gets stored in HDF5 format. An arbitrary number of sample and feature attributes can be added to a dataset, and individual attributes can be read from heterogeneous sources (e.g. they do not have to be all from text files). For datasets from MR images this command also supports automatic conversion of additional images into (volumetric) feature attributes. This can be useful for describing features with, for example, atlas labels. COMPOSE ATTRIBUTES ON THE COMMAND LINE Options --add-sa and --add-fa can be used to compose dataset attributes directly on the command line. The syntax is: ... --add-sa [DTYPE] where the optional 'DTYPE' is any identifier of a NumPy data type (e.g. 'int', or 'float32'). If no data type is specified the attribute values will be strings. If only one attribute value is given, it will copied and assigned to all entries in the dataset. LOAD DATA FROM TEXT FILES All options for loading data from text files support optional parameters to tweak the conversion: ... --add-sa-txt [DELIMITER [DTYPE [SKIPROWS [COMMENTS]]]] where 'DELIMITER' is the string that is used to separate values in the input file, 'DTYPE' is any identifier of a NumPy data type (e.g. 'int', or 'float32'), 'SKIPROWS' is an integer indicating how many lines at the beginning of the respective file shall be ignored, and 'COMMENTS' is a string indicating how to-be-ignored comment lines are prefixed in the file. LOAD DATA FROM NUMPY NPY FILES All options for loading data from NumPy NPY files support an optional parameter: ... --add-fa-npy [MEMMAP] where 'MEMMAP' is a flag that triggers whether the respective file shall be read by memory-mapping, i.e. not read (immediately) into memory. Enable by with on of: yes|1|true|enable|on'. Examples: Load 4D MRI image, assign atlas labels to a feature attribute, and attach class labels from a text file. The resulting dataset is stored as 'ds.hdf5' in the current directory. $ pymvpa2 mkds -o ds --mri-data bold.nii.gz --vol-attr area harvox.nii.gz --add-sa-txt targets labels.txt """ # magic line for manpage summary # man: -*- % create a PyMVPA dataset from various sources __docformat__ = 'restructuredtext' import numpy as np import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import Dataset if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers import process_common_dsattr_opts, \ hdf2ds, parser_add_common_opt # necessary to enable dataset.summary() import mvpa2.datasets.miscfx parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } datasrc_args = ('input data sources', [ (('--txt-data',), dict(type=str, nargs='+', metavar='VALUE', help="""load samples from a text file. The first value is the filename the data will be loaded from. Additional values modifying the way the data is loaded are described in the section "Load data from text files".""")), (('--npy-data',), dict(type=str, nargs='+', metavar='VALUE', help="""load samples from a Numpy .npy file. Compressed files (i.e. .npy.gz) are supported as well. The first value is the filename the data will be loaded from. Additional values modifying the way the data is loaded are described in the section "Load data from Numpy NPY files".""")), (('--mri-data',), { 'type': str, 'nargs': '+', 'metavar': 'IMAGE', 'help': """load data from an MR image, such as a NIfTI file. This can either be a single 4D image, or a list of 3D images, or a combination of both."""}), (('--openfmri-modelbold',), { 'type': str, 'nargs': 4, 'metavar': 'SPEC', 'help': """load all data associated with a stimulation model in an OpenFMRI-compliant dataset. This option needs 4 argument values: . The first value is the base directory of the dataset. The next two are (integer) ID for the desired stimulus model and subject. The last argument is either a string indicating the data flavor to load, or an empty string for the default image (bold.nii.gz)."""}), ]) mri_args = ('options for input from MR images', [ (('--mask',), { 'type': str, 'metavar': 'IMAGE', 'help': """mask image file with the same dimensions as an input data sample. All voxels corresponding to non-zero mask elements will be permitted into the dataset."""}), (('--add-vol-attr',), { 'type': str, 'nargs': 2, 'action': 'append', 'metavar': 'ARG', 'help': """attribute name (1st argument) and image file with the same dimensions as an input data sample (2nd argument). The image data will be added as a feature attribute under the specified name."""}), (('--add-fsl-mcpar',), dict(type=str, metavar='FILENAME', help= """6-column motion parameter file in FSL's McFlirt format. Six additional sample attributes will be created: mc_{x,y,z} and mc_rot{1-3}, for translation and rotation estimates respectively.""")), ]) def setup_parser(parser): from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts, single_required_hdf5output # order of calls is relevant! parser_add_common_opt(parser, 'multidata', metavar='dataset', nargs='*', default=None) parser_add_optgroup_from_def(parser, datasrc_args, exclusive=True) parser_add_common_attr_opts(parser) parser_add_optgroup_from_def(parser, mri_args) parser_add_optgroup_from_def(parser, single_required_hdf5output) def run(args): from mvpa2.base.hdf5 import h5save ds = None vol_attr = dict() if args.add_vol_attr is not None: # XXX add a way to use the mapper of an existing dataset to # add a volume attribute without having to load the entire # mri data again vol_attr = dict(args.add_vol_attr) if not len(args.add_vol_attr) == len(vol_attr): warning("--vol-attr option with duplicate attribute name: " "check arguments!") verbose(2, "Prepare to add volumetric feature attributes: %s" % vol_attr) if args.txt_data is not None: verbose(1, "Load data from TXT file '%s'" % args.txt_data) samples = _load_from_txt(args.txt_data) ds = Dataset(samples) elif args.npy_data is not None: verbose(1, "Load data from NPY file '%s'" % args.npy_data) samples = _load_from_npy(args.npy_data) ds = Dataset(samples) elif args.mri_data is not None: verbose(1, "Load data from MRI image(s) %s" % args.mri_data) from mvpa2.datasets.mri import fmri_dataset ds = fmri_dataset(args.mri_data, mask=args.mask, add_fa=vol_attr) elif args.openfmri_modelbold is not None: verbose(1, "Load data from OpenFMRI model specification %s" % args.openfmri_modelbold) if not len(args.openfmri_modelbold[3]): args.openfmri_modelbold[3] = None # load openfmri dataset from mvpa2.datasets.sources.openfmri import OpenFMRIDataset of = OpenFMRIDataset(args.openfmri_modelbold[0]) ds = of.get_model_bold_dataset(int(args.openfmri_modelbold[1]), int(args.openfmri_modelbold[2]), flavor=args.openfmri_modelbold[3], mask=args.mask, add_fa=vol_attr, add_sa=args.add_fsl_mcpar) if ds is None: if args.data is None: raise RuntimeError('no data source specific') else: ds = hdf2ds(args.data)[0] else: if args.data is not None: verbose(1, 'ignoring dataset input in favor of other data source -- remove either one to disambiguate') # act on all attribute options ds = process_common_dsattr_opts(ds, args) if args.openfmri_modelbold is None and args.add_fsl_mcpar is not None: from mvpa2.misc.fsl.base import McFlirtParams mc_par = McFlirtParams(args.add_fsl_mcpar) for param in mc_par: verbose(2, "Add motion regressor as sample attribute '%s'" % ('mc_' + param)) ds.sa['mc_' + param] = mc_par[param] verbose(3, "Dataset summary %s" % (ds.summary())) # and store outfilename = args.output if not outfilename.endswith('.hdf5'): outfilename += '.hdf5' verbose(1, "Save dataset to '%s'" % outfilename) h5save(outfilename, ds, mkdir=True, compression=args.hdf5_compression) pymvpa2-2.6.4/mvpa2/cmdline/cmd_mkevds.py000066400000000000000000000216361323370031300202520ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Extract (multi-sample) events from a dataset An arbitrary number of input datasets is loaded from HDF5 storage. All loaded datasets are concatenated along the samples axis. Based on information about onset and duration of a sequence of events corresponding samples are extracted from the input datasets and converted into event samples. It is possible for an event sample to consist of multiple input samples (i.e. temporal windows). Events are defined by onset sample ID and number of consecutive samples that comprise an event. However, events can also be defined as temporal onsets and durations, which will be translated into sample IDs using time stamp information in the input datasets. Analogous to the 'mkds' command the event-related dataset can be extended with arbitrary feature and sample attributes (one value per event for the latter). The finished event-related dataset is written to an HDF5 file. Examples: Extract two events comprising of four consecutive samples from a dataset. $ pymvpa2 mkevds --onsets 3 9 --duration 4 -o evds.hdf5 -i 'mydata*.hdf5' """ # magic line for manpage summary # man: -*- % extract (multi-sample) events from a dataset __docformat__ = 'restructuredtext' import numpy as np import sys import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import Dataset, vstack from mvpa2.mappers.fx import FxMapper, merge2first from mvpa2.datasets.eventrelated import eventrelated_dataset, find_events if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import parser_add_common_opt, \ ds2hdf5, arg2ds, process_common_dsattr_opts, _load_csv_table parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } define_events_grp = ('options for defining events (choose one)', [ (('--event-attrs',), dict(type=str, nargs='+', metavar='ATTR', help="""define events as a unique combinations of values from a set of sample attributes. Going through all samples in the order in which they appear in the input dataset, onset of events are determined by changes in the combination of attribute values. The length of an event is determined by the number of identical consecutive value combinations.""" )), (('--onsets',), dict(type=float, nargs='*', metavar='TIME', help="""reads a list of event onsets (float) from the command line (space-separated). If this option is given, but no arguments are provided, onsets will be read from STDIN (one per line). If --time-attr is also given, onsets will be interpreted as time stamps, otherwise they are treated a integer ID of samples.""" )), (('--csv-events',), dict(type=str, metavar='FILENAME', help="""read event information from a CSV table. A variety of dialects are supported. A CSV file must contain a header line with field names as a first row. The table must include an 'onset' column, and can optionally include an arbitrary number of additional columns (e.g. duration, target). All values are passed on to the event-related samples. If '-' is given as a value the CSV table is read from STDIN. """)), (('--fsl-ev3',), dict(type=str, nargs='+', metavar='FILENAME', help="""read event information from a text file in FSL's EV3 format (one event per line, three columns: onset, duration, intensity). One of more filenames can be given.""")), ]) mod_events_grp = ('options for modifying or converting events', [ (('--time-attr',), dict(type=str, metavar='ATTR', help="""dataset attribute with time stamps for input samples. Onset and duration for all events will be converted using this information. All values are assumed to be of the same units.""")), (('--onset-column',), dict(type=str, metavar='ATTR', help="""name of the column in the CSV event table that indicates event onsets""")), (('--offset',), dict(type=float, metavar='VALUE', help="""fixed uniform event offset for all events. If no --time-attr option is given, this value indicates the number of input samples all event onsets shall be shifted. If --time-attr is given, this is treated as a temporal offset that needs to be given in the same unit as the time stamp attribute (see --time-attr).""")), (('--duration',), dict(type=float, metavar='VALUE', help="""fixed uniform duration for all events. If no --time-attr option is given, this value indicates the number of consecutive input samples following an onset that belong to an event. If --time-attr is given, this is treated as a temporal duration that needs to be given in the same unit as the time stamp attribute (see --time-attr).""")), (('--match-strategy',), dict(type=str, choices=('prev', 'next', 'closest'), default='prev', help="""strategy used to match time-based onsets to sample indices. 'prev' chooses the closes preceding samples, 'next' the closest following sample and 'closest' to absolute closest sample. Default: 'prev'""")), (('--event-compression',), dict(choices=('mean', 'median', 'min', 'max'), help="""specify whether and how events spanning multiple input samples shall be compressed. A number of methods can be chosen. Selecting, for example, 'mean' will yield the mean of all relevant input samples for an event. By default (when this option is not given) an event will comprise of all concatenated input samples.""")), ]) def setup_parser(parser): from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts, single_required_hdf5output parser_add_common_opt(parser, 'multidata', required=True) parser_add_optgroup_from_def(parser, define_events_grp, exclusive=True) parser_add_optgroup_from_def(parser, mod_events_grp) parser_add_common_attr_opts(parser) parser_add_optgroup_from_def(parser, single_required_hdf5output) def run(args): ds = arg2ds(args.data) verbose(3, 'Concatenation yielded %i samples with %i features' % ds.shape) # build list of events events = [] timebased_events = False if args.event_attrs is not None: def_attrs = dict([(k, ds.sa[k].value) for k in args.event_attrs]) events = find_events(**def_attrs) elif args.csv_events is not None: if args.csv_events == '-': csv = sys.stdin.read() import cStringIO csv = cStringIO.StringIO(csv) else: csv = open(args.csv_events, 'rU') csvt = _load_csv_table(csv) if not len(csvt): raise ValueError("no CSV columns found") if args.onset_column: csvt['onset'] = csvt[args.onset_column] nevents = len(csvt[csvt.keys()[0]]) events = [] for ev in xrange(nevents): events.append(dict([(k, v[ev]) for k, v in csvt.iteritems()])) elif args.onsets is not None: if not len(args.onsets): args.onsets = [i for i in sys.stdin] # time or sample-based? if args.time_attr is None: oconv = int else: oconv = float events = [{'onset': oconv(o)} for o in args.onsets] elif args.fsl_ev3 is not None: timebased_events = True from mvpa2.misc.fsl import FslEV3 events = [] for evsrc in args.fsl_ev3: events.extend(FslEV3(evsrc).to_events()) if not len(events): raise ValueError("no events defined") verbose(2, 'Extracting %i events' % len(events)) if args.event_compression is None: evmap = None elif args.event_compression == 'mean': evmap = FxMapper('features', np.mean, attrfx=merge2first) elif args.event_compression == 'median': evmap = FxMapper('features', np.median, attrfx=merge2first) elif args.event_compression == 'min': evmap = FxMapper('features', np.min, attrfx=merge2first) elif args.event_compression == 'max': evmap = FxMapper('features', np.max, attrfx=merge2first) # convert to event-related ds evds = eventrelated_dataset(ds, events, time_attr=args.time_attr, match=args.match_strategy, event_offset=args.offset, event_duration=args.duration, event_mapper=evmap) # act on all attribute options evds = process_common_dsattr_opts(evds, args) # and store ds2hdf5(evds, args.output, compression=args.hdf5_compression) return evds pymvpa2-2.6.4/mvpa2/cmdline/cmd_plotmotionqc.py000066400000000000000000000134201323370031300215010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Generate a QC plot for (BOLD fMRI) motion estimates of multiple segments. The generated figure consists of two subplots: one for translation and one for rotation. The L2-norm for each motion type is plotted. Segment boundaries are indicated with dashed vertical lines. The following statistics are visualized 1. Range across subjects (min, max) with a light gray shaded area 2. 50% percentile around the mean with a medium gray shaded area 3. Standard error of the mean (SEM; +/-) with a dark gray shaded area 4. Median across subjects with a black line 5. Outlier subjects are represented as individual red lines Outliers are defined as subjects that exceed the threshold anywhere within a given segment. In that case the entire motion time series for that segment is plotted as an outlier. Example pymvpa2 plotmotionqc \ -s sub*/func/*run-1_bold_mc.txt \ -s sub*/func/*run-2_bold_mc.txt \ --savefig motion.png """ # magic line for manpage summary # man: -*- % BOLD fMRI motion QC plot __docformat__ = 'restructuredtext' import argparse import numpy as np parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } def setup_parser(parser): parser.add_argument( '-s', '--segment', metavar='FILE', type=np.loadtxt, nargs='+', action='append', help="""two or more text files with motion estimate time series. This option can be given multiple times (with multiple time series each to generate a multi-segment plot (e.g. for multiple run).""") parser.add_argument( '--estimate-order', metavar='LABEL', default='transrot', choices=('transrot', 'rottrans'), help="""column order of estimates in the files. `transrot` indicates translation first, followed by rotation. `rottrans` refers to the oposite order. [Default: 'transrot']""") parser.add_argument( '--rad2deg', action='store_true', help="""If specified, rotation estimates are assumed to be in radian and will be converted to degrees.""") parser.add_argument( '--outlier-minthresh', type=float, default=None, help="""absolute minimum threshold of outlier detection. Only value larger than this this threshold will ever be considered as an outlier. [Default: None]""") parser.add_argument( '--outlier-stdthresh', type=float, default=None, help="""minimum threshold in units of standard deviation for outlier detection. [Default: None]""") parser.add_argument( '--savefig', metavar='FILENAME', nargs=1, help="""file name to store the QC figure under. Without this option the figure is shown in an interactive viewer.""") return parser def motionqc_plot(data, outlier_abs_minthresh=None, outlier_stdthresh=None, ylabel=None): import pylab as pl from mvpa2.misc.plot import timeseries_boxplot, concat_ts_boxplot_stats from mvpa2.misc.stats import compute_ts_boxplot_stats # segments x [subjects x timepoints x props] segment_sizes = [d.shape[1] for d in data] # get stats for all segments and concatenate them stats = concat_ts_boxplot_stats( [compute_ts_boxplot_stats( d, outlier_abs_minthresh=outlier_abs_minthresh, outlier_thresh=outlier_stdthresh, aggfx=np.linalg.norm, greedy_outlier=True) for d in data]) outlier = None if outlier_stdthresh: outlier = [list(np.where(np.sum(np.logical_not(o.mask), axis=0))[0]) for o in stats[1]] # plot timeseries_boxplot( stats[0]['median'], mean=stats[0]['mean'], std=stats[0]['std'], n=stats[0]['n'], min=stats[0]['min'], max=stats[0]['max'], p25=stats[0]['p25'], p75=stats[0]['p75'], outlierd=stats[1], segment_sizes=segment_sizes) xp, xl = pl.xticks() pl.xticks(xp, ['' for i in xl]) pl.xlim((0, len(stats[0]['n']))) if ylabel: pl.ylabel(ylabel) pl.xlabel('time') return outlier def run(args): import pylab as pl from mvpa2.base import verbose # segments x [subjects x timepoints x properties] data = [np.array(s) for s in args.segment] # put in standard property order: first translation, then rotation if args.estimate_order == 'rottrans': data = [d[:, :, (3, 4, 5, 0, 1, 2)] for d in data] # convert rotations, now known to be last if args.rad2deg: for d in data: v = d[:, :, 3:] np.rad2deg(v, v) # and plot # figure setup fig = pl.figure(figsize=(12, 5)) # translation ax = pl.subplot(211) outlier = motionqc_plot( [d[..., :3] for d in data], args.outlier_minthresh, args.outlier_stdthresh, "translation\nestimate L2-norm") if outlier: verbose( 0, "Detected per-segment translation outlier input samples {0} (zero-based)".format( outlier)) # rotation ax = pl.subplot(212) outlier = motionqc_plot( [d[..., 3:] for d in data], args.outlier_minthresh, args.outlier_stdthresh, "rotation\nestimate L2-norm") if outlier: verbose( 0, "Detected per-segment rotation outlier input samples {0} (zero-based)".format( outlier)) if args.savefig is None: pl.show() else: pl.savefig(args.savefig[0]) pymvpa2-2.6.4/mvpa2/cmdline/cmd_preproc.py000066400000000000000000000226251323370031300204320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Preprocess a PyMVPA dataset. This command can apply a number of preprocessing steps to a dataset. Currently supported are 1. Polynomial de-trending 2. Spectral filtering 3. Feature-wise Z-scoring All preprocessing steps are applied in the above order. If a different order is required, preprocessing has to be split into two separate command calls. POLYNOMIAL DE-TRENDING This type of de-trending can be used to regress out arbitrary signals. In addition to polynomials of any degree arbitrary timecourses stored as sample attributes in a dataset can be used as confound regressors. This detrending functionality is, in contrast to the implementation of spectral filtering, also applicable to sparse-sampled data with potentially irregular inter-sample intervals. SPECTRAL FILTERING Several option are provided that are used to construct a Butterworth low-, high-, or band-pass filter. It is advised to inspect the filtered data carefully as inappropriate filter settings can lead to unintented side-effect. Only dataset with a fixed sampling rate are supported. The sampling rate must be provided. Examples: Normalize all features in a dataset by Z-scoring $ pymvpa2 preproc --zscore -o ds_preprocessed -i dataset.hdf5 Perform Z-scoring and quadratic detrending of all features, but process all samples sharing a unique value of the "chunks" sample attribute individually $ pymvpa2 preproc --chunks "chunks" --poly-detrend 2 --zscore -o ds_pp2 -i ds.hdf5 """ # magic line for manpage summary # man: -*- % apply preprocessing steps to a PyMVPA dataset __docformat__ = 'restructuredtext' import numpy as np import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import Dataset from mvpa2.mappers.detrend import PolyDetrendMapper if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import parser_add_common_opt, ds2hdf5, \ arg2ds, parser_add_optgroup_from_def, \ single_required_hdf5output parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } detrend_args = ('options for data detrending', [ (('--poly-detrend',), (PolyDetrendMapper, 'polyord'), dict(metavar='DEG')), (('--detrend-chunks',), (PolyDetrendMapper, 'chunks_attr'), dict(metavar='CHUNKS_ATTR')), (('--detrend-coords',), dict(type=str, metavar='COORDS_ATTR', help="""name of a samples attribute that is added to the preprocessed dataset storing the coordinates of each sample in the space spanned by the polynomials. If an attribute of such name is already present in the dataset its values are interpreted as sample coordinates in the space spanned by the polynomials. This can be used to detrend datasets with irregular sample spacing.""")), (('--detrend-regrs',), (PolyDetrendMapper, 'opt_regs'), dict(nargs='+', metavar='ATTR', type=str)) ]) normalize_args = ('options for data normalization', [ (('--zscore',), dict(action='store_true', help="""perform feature normalization by Z-scoring.""")), (('--zscore-chunks',), dict(metavar='CHUNKS_ATTR', help="""name of a dataset sample attribute defining chunks of samples that shall be Z-scored independently. By default no chunk-wise normalization is done.""")), (('--zscore-params',), dict(metavar='PARAM', nargs=2, type=float, help="""define a fixed parameter set (mean, std) for Z-scoring, instead of computing from actual data.""")), ]) bandpassfilter_args = ('options for spectral filtering', [ (('--filter-passband',), dict(metavar='FREQ', nargs='+', type=float, help="""critical frequencies of a Butterworth filter's pass band. Critical frequencies need to match the unit of the specified sampling rate (see: --sampling-rate). In case of a band pass filter low and high frequency cutoffs need to be specified (in this order). For low and high-pass filters is single cutoff frequency must be provided. The type of filter (low/high-pass) is determined from the relation to the stop band frequency (--filter-stopband).""")), (('--filter-stopband',), dict(metavar='FREQ', nargs='+', type=float, help="""Analog setting to --filter-passband for specifying the filter's stop band.""")), (('--sampling-rate',), dict(metavar='FREQ', type=float, help="""sampling rate of the dataset. All frequency specifications need to match the unit of the sampling rate.""")), (('--filter-passloss',), dict(metavar='dB', type=float, default=1.0, help="""maximum loss in the passband (dB). Default: 1 dB""")), (('--filter-stopattenuation',), dict(metavar='dB', type=float, default=30.0, help="""minimum attenuation in the stopband (dB). Default: 30 dB""")), ]) common_args = ('common options for all preprocessing', [ (('--chunks',), dict(metavar='CHUNKS_ATTR', help="""shortcut option to enabled uniform chunkwise processing for all relevant preprocessing steps (see --zscore-chunks, --detrend-chunks). This global setting can be overwritten by additionally specifying the corresponding individual "chunk" options.""")), (('--strip-invariant-features',), dict(action='store_true', help="""After all pre-processing steps are done, strip all invariant features from the dataset.""")), ]) def setup_parser(parser): parser_add_common_opt(parser, 'multidata', required=True) # order of calls is relevant! for src in (common_args, detrend_args, bandpassfilter_args, normalize_args): parser_add_optgroup_from_def(parser, src) parser_add_optgroup_from_def(parser, single_required_hdf5output) def run(args): if args.chunks is not None: # apply global "chunks" setting for cattr in ('detrend_chunks', 'zscore_chunks'): if getattr(args, cattr) is None: # only overwrite if individual option is not given args.__setattr__(cattr, args.chunks) ds = arg2ds(args.data) if args.poly_detrend is not None: if args.detrend_chunks is not None \ and not args.detrend_chunks in ds.sa: raise ValueError( "--detrend-chunks attribute '%s' not found in dataset" % args.detrend_chunks) from mvpa2.mappers.detrend import poly_detrend verbose(1, "Detrend") poly_detrend(ds, polyord=args.poly_detrend, chunks_attr=args.detrend_chunks, opt_regs=args.detrend_regrs, space=args.detrend_coords) if args.filter_passband is not None: from mvpa2.mappers.filters import iir_filter from scipy.signal import butter, buttord if args.sampling_rate is None or args.filter_stopband is None: raise ValueError( "spectral filtering requires specification of " "--filter-stopband and --sampling-rate") # determine filter type nyquist = args.sampling_rate / 2.0 if len(args.filter_passband) > 1: btype = 'bandpass' if not len(args.filter_passband) == len(args.filter_stopband): raise ValueError("passband and stopband specifications have to " "match in size") wp = [v / nyquist for v in args.filter_passband] ws = [v / nyquist for v in args.filter_stopband] elif args.filter_passband[0] < args.filter_stopband[0]: btype = 'lowpass' wp = args.filter_passband[0] / nyquist ws = args.filter_stopband[0] / nyquist elif args.filter_passband[0] > args.filter_stopband[0]: btype = 'highpass' wp = args.filter_passband[0] / nyquist ws = args.filter_stopband[0] / nyquist else: raise ValueError("invalid specification of Butterworth filter") # create filter verbose(1, "Spectral filtering (%s)" % (btype,)) try: ord, wn = buttord(wp, ws, args.filter_passloss, args.filter_stopattenuation, analog=False) b, a = butter(ord, wn, btype=btype) except OverflowError: raise ValueError("cannot contruct Butterworth filter for the given " "specification") ds = iir_filter(ds, b, a) if args.zscore: from mvpa2.mappers.zscore import zscore verbose(1, "Z-score") zscore(ds, chunks_attr=args.zscore_chunks, params=args.zscore_params) verbose(3, "Dataset summary %s" % (ds.summary())) # invariants? if args.strip_invariant_features is not None: from mvpa2.datasets.miscfx import remove_invariant_features ds = remove_invariant_features(ds) # and store ds2hdf5(ds, args.output, compression=args.hdf5_compression) return ds pymvpa2-2.6.4/mvpa2/cmdline/cmd_scatter.py000066400000000000000000000066561323370031300204330ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Scatter plot PyMVPA datasets and/or brain volumes """ # magic line for manpage summary # man: -*- % scatter plot PyMVPA datasets and/or brain volumes __docformat__ = 'restructuredtext' import pylab as pl from mvpa2.cmdline.helpers \ import parser_add_common_opt, ds2hdf5, hdf2ds from mvpa2.misc.plot.scatter import plot_scatter_files scatterplot_opts_grp = ('options for scatterplot', [ (('data',), dict(nargs='+', help='Nifti datasets to scatterplot')), (('--volume', '-t'), dict( type=int, help="If 4D image given which volume to plot. If 5D with rudimentary " "4th, it gets removed. Default -- all")), (("-m", "--mask-file"), dict(help="Filename to use as a mask to decide which voxels to plot.")), (("--thresholds", ), dict(help="How to threshold the mask volume. Single value specifies " "lower threshold. Two comma-separated values specify exclusion " "range: e.g. '-3,3' would include all abs values >=3. '3,-3' " "would then include all abs values < 3")), (("-M", "--masked-opacity"), dict(type=float, default=0., help="Opacity at which plot masked-out points. Default is 0, i.e." " when they are not plotted at all")), (("-u", "--unique-points"), dict(default=False, help="Plot those points which are present only in 1 of the volumes " "and not in the other along corresponding axis")), (("-l", "--limits"), dict(choices=['auto', 'same', 'per-axis'], default='auto', help="How to decide on limits for the axes. When 'auto' -- if data " "ranges overlap is more than 50%% of the union range, 'same' is " "considered.")), (("-x", "--x-jitter"), dict(type=float, default=0., help="Half-width of the uniform jitter to add to x-coords. Useful" " for quantized (thus overlapping) data")), (("-y", "--y-jitter"), dict(type=float, default=0., help="Half-width of the uniform jitter to add to y-coords. Useful" " for quantized (thus overlapping) data")), (("-s", "--stats"), dict(default=False, help="Whether to print additional stats on the data")), (("-o", "--output-img"), dict(help="Where to output png of the scatterplot.")), ]) def setup_parser(parser): from .helpers import parser_add_optgroup_from_def parser_add_optgroup_from_def(parser, scatterplot_opts_grp) def run(args): plot_scatter_files(args.data, mask_file=args.mask_file, masked_opacity=args.masked_opacity, volume=args.volume, thresholds=args.thresholds, limits=args.limits, x_jitter=args.x_jitter, y_jitter=args.y_jitter, uniq=args.unique_points, include_stats=args.stats) if args.output_img: pl.savefig(args.output_img) pl.show() pymvpa2-2.6.4/mvpa2/cmdline/cmd_searchlight.py000066400000000000000000000252701323370031300212540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Traveling ROI analysis """ # magic line for manpage summary # man: -*- % traveling ROI analysis __docformat__ = 'restructuredtext' import numpy as np import sys import os import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import vstack if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import parser_add_common_opt, ds2hdf5, arg2ds, \ get_crossvalidation_instance, crossvalidation_opts_grp, \ arg2neighbor, script2obj parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } searchlight_opts_grp = ('options for searchlight setup', [ (('--payload',), dict(required=True, help="""switch to select a particular analysis type to be run in a searchlight fashion on a dataset. Depending on the choice the corresponding analysis setup options are evaluated. 'cv' computes a cross-validation analysis. Alternatively, the argument to this option can also be a script filename in which a custom measure is built that is then ran as a searchlight.""")), (('--neighbors',), dict(type=arg2neighbor, metavar='SPEC', action='append', required=True, help="""define the size and shape of an ROI with respect to a center/seed location. If a single integer number is given, it is interpreted as the radius (in number of grid elements) around a seed location. By default grid coordinates for features are taken from a 'voxel_indices' feature attribute in the input dataset. If coordinates shall be taken from a different attribute, the radius value can be prefixed with the attribute name, i.e. 'altcoords:2'. For ROI shapes other than spheres (with potentially additional parameters), the shape name can be specified as well, i.e. 'voxel_indices:HollowSphere:3:2'. All neighborhood objects from the mvpa2.misc.neighborhood module are supported. For custom ROI shapes it is also possible to pass a script filename, or an attribute name plus script filename combination, i.e. 'voxel_indices:myownshape.py' (advanced). It is possible to specify this option multiple times to define multi-space ROI shapes for, e.g., spatio-temporal searchlights.""")), (('--nproc',), dict(type=int, default=1, help="""Use the specific number or worker processes for computing.""")), (('--multiproc-backend',), dict(choices=('native', 'hdf5'), default='native', help="""Specifies the way results are provided back from a processing block in case of --nproc > 1. 'native' is pickling/unpickling of results, while 'hdf5' uses HDF5 based file storage. 'hdf5' might be more time and memory efficient in some cases.""")), (('--aggregate-fx',), dict(type=script2obj, help="""use a custom result aggregation function for the searchlight """)), (('--ds-preproc-fx',), dict(type=script2obj, help="""custom preprocessing function to be applied immediately after loading the data""")), ]) searchlight_constraints_opts_grp = ('options for constraining the searchlight', [ (('--scatter-rois',), dict(type=arg2neighbor, metavar='SPEC', help="""scatter ROI locations across the available space. The arguments supported by this option are identical to those of --neighbors. ROI locations are randomly picked from all possible locations with the constraint that the center coordinates of any ROI is NOT within the neighborhood (as defined by this option's argument) of a second ROI. Increasing the size of the neighborhood therefore increases the scarceness of the sampling.""")), (('--roi-attr',), dict(metavar='ATTR/EXPR', nargs='+', help="""name of a feature attribute whose non-zero values define possible ROI seeds/centers. Alternatively, this can also be an expression like: parcellation_roi eq 16 (see the 'select' command on information what expressions are supported).""")), ]) # XXX this should eventually move into the main code base, once # sufficiently generalized def _fill_in_scattered_results(sl, dataset, roi_ids, results): """this requires the searchlight conditional attribute 'roi_feature_ids' to be enabled""" import numpy as np from mvpa2.datasets import Dataset resmap = None probmap = None for resblock in results: for res in resblock: if resmap is None: # prepare the result container resmap = np.zeros((len(res), dataset.nfeatures), dtype=res.samples.dtype) if 'null_prob' in res.fa: # initialize the prob map also with zeroes, as p=0 can never # happen as an empirical result probmap = np.zeros((dataset.nfeatures,) + res.fa.null_prob.shape[1:], dtype=res.samples.dtype) observ_counter = np.zeros(dataset.nfeatures, dtype=int) #project the result onto all features -- love broadcasting! resmap[:, res.a.roi_feature_ids] += res.samples if probmap is not None: probmap[res.a.roi_feature_ids] += res.fa.null_prob # increment observation counter for all relevant features observ_counter[res.a.roi_feature_ids] += 1 # when all results have been added up average them according to the number # of observations observ_mask = observ_counter > 0 resmap[:, observ_mask] /= observ_counter[observ_mask] result_ds = Dataset(resmap, fa={'observations': observ_counter}) if probmap is not None: # transpose to make broadcasting work -- creates a view, so in-place # modification still does the job probmap.T[:,observ_mask] /= observ_counter[observ_mask] result_ds.fa['null_prob'] = probmap.squeeze() if 'mapper' in dataset.a: import copy result_ds.a['mapper'] = copy.copy(dataset.a.mapper) return result_ds def setup_parser(parser): from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts, single_required_hdf5output, ca_opts_grp parser_add_common_opt(parser, 'multidata', required=True) parser_add_optgroup_from_def(parser, searchlight_opts_grp) parser_add_optgroup_from_def(parser, ca_opts_grp) parser_add_optgroup_from_def(parser, searchlight_constraints_opts_grp) parser_add_optgroup_from_def(parser, crossvalidation_opts_grp, prefix='--cv-') parser_add_optgroup_from_def(parser, single_required_hdf5output) def run(args): if os.path.isfile(args.payload) and args.payload.endswith('.py'): measure = script2obj(args.payload) elif args.payload == 'cv': if args.cv_learner is None or args.cv_partitioner is None: raise ValueError('cross-validation payload requires --learner and --partitioner') # get CV instance measure = get_crossvalidation_instance( args.cv_learner, args.cv_partitioner, args.cv_errorfx, args.cv_sampling_repetitions, args.cv_learner_space, args.cv_balance_training, args.cv_permutations, args.cv_avg_datafold_results, args.cv_prob_tail) else: raise RuntimeError("this should not happen") ds = arg2ds(args.data) if args.ds_preproc_fx is not None: ds = args.ds_preproc_fx(ds) # setup neighborhood # XXX add big switch to allow for setting up surface-based neighborhoods from mvpa2.misc.neighborhood import IndexQueryEngine qe = IndexQueryEngine(**dict(args.neighbors)) # determine ROIs rids = None # all by default aggregate_fx = args.aggregate_fx if args.roi_attr is not None: # first figure out which roi features should be processed if len(args.roi_attr) == 1 and args.roi_attr[0] in ds.fa.keys(): # name of an attribute -> pull non-zeroes rids = ds.fa[args.roi_attr[0]].value.nonzero()[0] else: # an expression? from .cmd_select import _eval_attr_expr rids = _eval_attr_expr(args.roi_attr, ds.fa).nonzero()[0] seed_ids = None if args.scatter_rois is not None: # scatter_neighborhoods among available ids if was requested from mvpa2.misc.neighborhood import scatter_neighborhoods attr, nb = args.scatter_rois coords = ds.fa[attr].value if rids is not None: # select only those which were chosen by ROI coords = coords[rids] _, seed_ids = scatter_neighborhoods(nb, coords) if aggregate_fx is None: # no custom one given -> use default "fill in" function aggregate_fx = _fill_in_scattered_results if args.enable_ca is None: args.enable_ca = ['roi_feature_ids'] elif 'roi_feature_ids' not in args.enable_ca: args.enable_ca += ['roi_feature_ids'] if seed_ids is None: roi_ids = rids else: if rids is not None: # we had to sub-select by scatterring among available rids # so we would need to get original ids roi_ids = rids[seed_ids] else: # scattering happened on entire feature-set roi_ids = seed_ids verbose(3, 'Attempting %i ROI analyses' % ((roi_ids is None) and ds.nfeatures or len(roi_ids))) from mvpa2.measures.searchlight import Searchlight sl = Searchlight(measure, queryengine=qe, roi_ids=roi_ids, nproc=args.nproc, results_backend=args.multiproc_backend, results_fx=aggregate_fx, enable_ca=args.enable_ca, disable_ca=args.disable_ca) # XXX support me too! # add_center_fa # tmp_prefix # nblocks # null_dist # run res = sl(ds) if (seed_ids is not None) and ('mapper' in res.a): # strip the last mapper link in the chain, which would be the seed ID selection res.a['mapper'] = res.a.mapper[:-1] # XXX create more output # and store ds2hdf5(res, args.output, compression=args.hdf5_compression) return res pymvpa2-2.6.4/mvpa2/cmdline/cmd_select.py000066400000000000000000000200671323370031300202350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Select a subset of samples and/or features from a dataset A subset of samples and/or feature can be selected by their indices (see --samples/features-by-index) or via simple expressions evaluating attribute value (see --samples/features-by-attr). It is possible to specify options for selecting samples and features simultaneously. It is also possible to strip arbitrary attributes from the output dataset (see --strip-...). SELECTION BY INDEX All --...-by-index options accept a sequence of integer indices. Alternatively it is possible to specify regular sequences of indices using a START:STOP:STEP notation (zero-based). For example, ':5' selects the first five elements, '2:4' selects the third and fourth element, and ':20:2' selects all even numbered elements from the first 20. SELECTION BY ATTRIBUTE All --...by-attr options support a simple expression language that allows for creating filters/masks from attribute values. Such selection expressions are made up of ATTRIBUTE OPERATOR VALUE triplets that can be combined via 'and' or 'or' keywords. For example: ... --samples-by-attr subj eq 5 and run lt 5 or run gt 10 selects all samples where attribute 'subj' equals 5 and the run attribute is either less than 5 or greater than 10. 'and' and 'or' operations are done in strictly serial order (no nested conditions). Supported operators are: eq (equal) ne (not equal) ge (greater or equal) le (less or equal) gt (greater than) lt (less than) """ # magic line for manpage summary # man: -*- % select a subset of samples and/or features from a dataset __docformat__ = 'restructuredtext' import numpy as np import sys import argparse from mvpa2.base import verbose, warning, error from mvpa2.datasets import Dataset, vstack from mvpa2.mappers.fx import FxMapper from mvpa2.datasets.eventrelated import eventrelated_dataset, find_events if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import parser_add_common_opt, \ ds2hdf5, hdf2ds # map operator symbols to method names attr_operators = { 'eq': '__eq__', 'ne': '__ne__', 'ge': '__ge__', 'le': '__le__', 'gt': '__gt__', 'lt': '__lt__', } filter_joiner = { 'and': np.logical_and, 'or': np.logical_or, } def _eval_attr_expr(expr, col): #read from the front rev_expr = expr[::-1] # current filter -- take all actfilter = np.ones(len(col[col.keys()[0]]), dtype='bool') joiner = None while len(rev_expr): ex = rev_expr.pop() if not ex in ('and', 'or'): # eval triplet (attr, operator, value) attr = ex try: attr = col[attr].value except KeyError: raise ValueError("unknown attribute '%s' in expression [%s]. Valid attributes: %s" % (attr, ' '.join(expr), col.keys())) op = rev_expr.pop() try: op = attr_operators[op] except KeyError: raise ValueError("unknown operator '%s' in expression [%s]. Valid operators: %s" % (op, ' '.join(expr), attr_operators.keys())) val = rev_expr.pop() # convert value into attr dtype try: val = attr.dtype.type(val) except ValueError: raise ValueError("can't convert '%s' into attribute data type '%s' in expression [%s]" % (val, attr.dtype, ' '.join(expr))) # evaluate expression newfilter = getattr(attr, op)(val) # merge with existing filter if joiner is None: # replace actfilter = newfilter else: # join actfilter = joiner(actfilter, newfilter) else: joiner = filter_joiner[ex] return actfilter parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } samples_grp = ('options for selecting samples', [ (('--samples-by-index',), dict(type=str, nargs='+', metavar='IDX', help="""select a subset of samples by index. See section 'SELECTION BY INDEX' for more details.""" )), (('--samples-by-attr',), dict(type=str, nargs='+', metavar='EXPR', help="""select a subset of samples by attribute evaluation. See section 'SELECTION BY ATTRIBUTE' for more details.""" )), ]) features_grp = ('options for selecting features', [ (('--features-by-index',), dict(type=str, nargs='+', metavar='IDX', help="""select a subset of features by index. See section 'SELECTION BY INDEX' for more details.""" )), (('--features-by-attr',), dict(type=str, nargs='+', metavar='EXPR', help="""select a subset of features by attribute evaluation. See section 'SELECTION BY ATTRIBUTE' for more details.""" )), ]) strip_grp = ('options for removing attributes', [ (('--strip-sa',), dict(type=str, nargs='+', metavar='ATTR', help="""strip one or more samples attributes given by their name from a dataset.""" )), (('--strip-fa',), dict(type=str, nargs='+', metavar='ATTR', help="""strip one or more feature attributes given by their name from a dataset.""" )), (('--strip-da',), dict(type=str, nargs='+', metavar='ATTR', help="""strip one or more dataset attributes given by their name from a dataset.""" )), ]) def setup_parser(parser): from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts, single_required_hdf5output parser_add_common_opt(parser, 'multidata', required=True) parser_add_optgroup_from_def(parser, samples_grp, exclusive=True) parser_add_optgroup_from_def(parser, features_grp, exclusive=True) parser_add_optgroup_from_def(parser, strip_grp) parser_add_optgroup_from_def(parser, single_required_hdf5output) def run(args): dss = hdf2ds(args.data) verbose(3, 'Loaded %i dataset(s)' % len(dss)) ds = vstack(dss) verbose(3, 'Concatenation yielded %i samples with %i features' % ds.shape) # slicing sliceme = {'samples': slice(None), 'features': slice(None)} # indices for opt, col, which in ((args.samples_by_index, ds.sa, 'samples'), (args.features_by_index, ds.fa, 'features')): if opt is None: continue if len(opt) == 1 and opt[0].count(':'): # slice spec arg = opt[0].split(':') spec = [] for a in arg: if not len(a): spec.append(None) else: spec.append(int(a)) sliceme[which] = slice(*spec) else: # actual indices sliceme[which] = [int(o) for o in opt] # attribute evaluation for opt, col, which in ((args.samples_by_attr, ds.sa, 'samples'), (args.features_by_attr, ds.fa, 'features')): if opt is None: continue sliceme[which] = _eval_attr_expr(opt, col) # apply selection ds = ds.__getitem__((sliceme['samples'], sliceme['features'])) verbose(1, 'Selected %i samples with %i features' % ds.shape) # strip attributes for attrarg, col, descr in ((args.strip_sa, ds.sa, 'sample '), (args.strip_fa, ds.fa, 'feature '), (args.strip_da, ds.a, '')): if attrarg is not None: for attr in attrarg: try: del col[attr] except KeyError: warning("dataset has no %sattribute '%s' to remove" % (descr, attr)) # and store ds2hdf5(ds, args.output, compression=args.hdf5_compression) return ds pymvpa2-2.6.4/mvpa2/cmdline/cmd_ttest.py000066400000000000000000000112301323370031300201110ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """t-test across multiple volumes against some chance level This is a rudimentary way to perform fixed-effect significance test across subjects on e.g. searchlight results maps. """ # magic line for manpage summary # man: -*- % simple t-test routine __docformat__ = 'restructuredtext' import numpy as np import copy import sys import argparse from mvpa2.base import verbose, warning, error from mvpa2.base.hdf5 import h5load, h5save from mvpa2.datasets import vstack from mvpa2.datasets.base import Dataset if __debug__: from mvpa2.base import debug from mvpa2.cmdline.helpers \ import parser_add_common_opt from mvpa2.datasets.mri import map2nifti, fmri_dataset from mvpa2.misc.stats import ttest_1samp import nibabel as nib import scipy.stats as stats parser_args = { 'formatter_class': argparse.RawDescriptionHelpFormatter, } def setup_parser(parser): """Setup parser for command line arguments""" from .helpers import parser_add_optgroup_from_def, \ parser_add_common_attr_opts parser_add_common_opt(parser, 'multidata', required=True) parser_add_common_opt(parser, 'mask', required=False) parser_add_common_opt(parser, 'output_file', required=True) parser.add_argument('-c', '--chance-level', default=0, type=float, help="""chance level performance""") parser.add_argument('-s', '--stat', choices=['t', 'z', 'p'], default='t', help="""Store corresponding statistic, e.g. z-value corresponding to the original t-value""") parser.add_argument('-a', '--alternative', choices=['greater', 'less', 'two-sided'], default='greater', help="""Which tail of the distribution 'interesting' values belong to. E.g. if values are accuracies, it would be the 'greater', if errors -- the 'less'""") parser.add_argument('--isample', default=0, type=int, help="""In case of multi sample dataset, which sample to extract to run the ttest on""") def guess_backend(fn): """Guess which filetype we're dealing with""" if fn.endswith('.gz'): fn = fn.strip('.gz') if fn.endswith('.nii'): filetype = 'nifti' elif fn.endswith('.hdf5') or fn.endswith('.h5'): filetype = 'hdf5' else: # assume default filetype ='nifti' return filetype def run(args): """Run it""" verbose(1, "Loading %d result files" % len(args.data)) filetype_in = guess_backend(args.data[0]) if filetype_in == 'nifti': dss = [fmri_dataset(f) for f in args.data] elif filetype_in == 'hdf5': dss = [h5load(f) for f in args.data] data = np.asarray([d.samples[args.isample] for d in dss]) if args.mask: filetype_mask = guess_backend(args.mask) if filetype_mask == 'nifti': mask = nib.load(args.mask).get_data() elif filetype_mask == 'hdf5': mask = h5load(args.mask).samples out_of_mask = mask == 0 else: # just take where no voxel had a value out_of_mask = np.sum(data != 0, axis=0)==0 t, p = ttest_1samp(data, popmean=args.chance_level, axis=0, alternative=args.alternative) if args.stat == 'z': if args.alternative == 'two-sided': s = stats.norm.isf(p/2) else: s = stats.norm.isf(p) # take the sign of the original t s = np.abs(s) * np.sign(t) elif args.stat == 'p': s = p elif args.stat == 't': s = t else: raise ValueError('WTF you gave me? have no clue about %r' % (args.stat,)) if s.shape != out_of_mask.shape: try: out_of_mask = out_of_mask.reshape(s.shape) except ValueError: raise ValueError('Cannot use mask of shape {0} with ' 'data of shape {1}'.format(out_of_mask.shape, s.shape)) s[out_of_mask] = 0 verbose(1, "Saving to %s" % args.output) filetype_out = guess_backend(args.output) if filetype_out == 'nifti': map2nifti(dss[0], data=s).to_filename(args.output) else: # filetype_out is hdf5 s = Dataset(np.atleast_2d(s), fa=dss[0].fa, a=dss[0].a) h5save(args.output, s) return s pymvpa2-2.6.4/mvpa2/cmdline/helpers.py000066400000000000000000000771401323370031300176010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """""" __docformat__ = 'restructuredtext' import argparse import re import sys import copy import os import numpy as np from mvpa2.base import verbose if __debug__: from mvpa2.base import debug from mvpa2.base.types import is_datasetlike from mvpa2.base.state import ClassWithCollections class HelpAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if option_string == '--help': # lets use the manpage on mature systems ... try: import subprocess subprocess.check_call( 'man %s 2> /dev/null' % parser.prog.replace(' ', '-'), shell=True) sys.exit(0) except (subprocess.CalledProcessError, OSError): # ...but silently fall back if it doesn't work pass if option_string == '-h': helpstr = "%s\n%s" \ % (parser.format_usage(), "Use '--help' to get more comprehensive information.") else: helpstr = parser.format_help() # better for help2man helpstr = re.sub(r'optional arguments:', 'options:', helpstr) helpstr = re.sub(r'positional arguments:\n.*\n', '', helpstr) # convert all heading to have the first character uppercase headpat = re.compile(r'^([a-z])(.*):$', re.MULTILINE) helpstr = re.subn(headpat, lambda match: r'{0}{1}:'.format(match.group(1).upper(), match.group(2)), helpstr)[0] # usage is on the same line helpstr = re.sub(r'^usage:', 'Usage:', helpstr) if option_string == '--help-np': usagestr = re.split(r'\n\n[A-Z]+', helpstr, maxsplit=1)[0] usage_length = len(usagestr) usagestr = re.subn(r'\s+', ' ', usagestr.replace('\n', ' '))[0] helpstr = '%s\n%s' % (usagestr, helpstr[usage_length:]) print helpstr sys.exit(0) def parser_add_common_opt(parser, opt, names=None, **kwargs): """Add a named option to a cmdline arg parser. Parameters ---------- opt: str name of the option names: tuple or None sequence of names under which the option should be available. If None, the default will be used. """ opt_tmpl = globals()[opt] opt_kwargs = opt_tmpl[2].copy() opt_kwargs.update(kwargs) if names is None: parser.add_argument(*opt_tmpl[1], **opt_kwargs) else: parser.add_argument(*names, **opt_kwargs) def strip_from_docstring(doc, paragraphs=None, sections=None): if paragraphs is None: paragraphs = [] if sections is None: sections = [] out = [] # split into paragraphs doc = doc.split('\n\n') section = '' for par_i, par in enumerate(doc): lines = par.split('\n') if len(lines) > 1 \ and len(lines[0]) == len(lines[1]) \ and lines[1] == '-' * len(lines[0]): section = lines[0] if (par_i in paragraphs) or (section in sections): continue out.append(par) return '\n\n'.join(out) def param2arg(parser, param, arg_names=None, **kwargs): """Convert a Node parameter into a parser argument. Parameters ---------- parser : instance argparse parser instance (could be option group) param : tuple or parameter instance A length-2 tuple with the Node class (no instance) as first, and the name of the parameter as second element. arg_names : tuple(str), optional Argument name(s) to overwrite the default parameter name. **kwargs Any addtional options are passed on to the `add_argument()` function call. """ if kwargs is None: kwargs = {} if isinstance(param, tuple): # get param instance param = param[0]._collections_template['params'][param[1]] if arg_names is None: # use parameter name as default argument name arg_names = ('--%s' % param.name.replace('_', '-'),) help = param.__doc__ if param.constraints is not None: # allow for parameter setting overwrite via kwargs if not 'default' in kwargs: kwargs['default'] = param.default if not 'type' in kwargs: kwargs['type'] = param.constraints # include value contraint description and default # into the help string cdoc = param.constraints.long_description() if cdoc[0] == '(' and cdoc[-1] == ')': cdoc = cdoc[1:-1] help += ' Constraints: %s.' % cdoc try: help += " [Default: %r]" % (kwargs['default'],) except: pass # create the parameter, using the constraint instance for type # conversion parser.add_argument(*arg_names, help=help, **kwargs) def ca2arg(parser, klass, ca, arg_names=None, help=None): ca = klass._collections_template['ca'][ca] if arg_names is None: arg_names = ('--%s' % ca.name.replace('_', '-'),) help_ = ca.__doc__ if help: help_ = help_ + help parser.add_argument(*arg_names, help=help_, default=False, action='store_true') def arg2bool(arg): arg = arg.lower() if arg in ['0', 'no', 'off', 'disable', 'false']: return False elif arg in ['1', 'yes', 'on', 'enable', 'true']: return True else: raise argparse.ArgumentTypeError( "'%s' cannot be converted into a boolean" % (arg,)) def arg2none(arg): arg = arg.lower() if arg == 'none': return None else: raise argparse.ArgumentTypeError( "'%s' cannot be converted into `None`" % (arg,)) def arg2learner(arg, index=0): from mvpa2.clfs.warehouse import clfswh if arg in clfswh.descriptions: # arg is a description return clfswh.get_by_descr(arg) elif os.path.isfile(arg) and arg.endswith('.py'): # arg is a script filepath return script2obj(arg) else: # warehouse tag collection? try: learner = clfswh.__getitem__(*arg.split(':')) if not len(learner): raise argparse.ArgumentTypeError( "not match for given learner capabilities %s in the warehouse" % (arg,)) return learner[index] except ValueError: # unknown tag raise argparse.ArgumentTypeError( "'%s' is neither a known classifier description, nor a script, " "nor a sequence of valid learner capabilities" % (arg,)) def script2obj(filepath): locals = {} execfile(filepath, locals, locals) if not len(locals): raise argparse.ArgumentTypeError( "executing script '%s' did not create at least one object" % filepath) elif len(locals) > 1 and not ('obj' in locals or 'fx' in locals): raise argparse.ArgumentTypeError( "executing script '%s' " % filepath + "did create multiple objects %s " % locals.keys() + "but none is named 'obj' or 'fx'") if len(locals) == 1: return locals.values()[0] else: if 'obj' in locals: return locals['obj'] else: return locals['fx'] def arg2partitioner(arg): # check for an optional 'attr' argument args = arg.split(':') arg = args[0] if len(args) == 1: chunk_attr = 'chunks' else: chunk_attr = ':'.join(args[1:]) arglower = arg.lower() import mvpa2.generators.partition as part if arglower == 'oddeven': return part.OddEvenPartitioner(attr=chunk_attr) elif arglower == 'half': return part.HalfPartitioner(attr=chunk_attr) elif arglower.startswith('group-'): ngroups = int(arglower[6:]) return part.NGroupPartitioner(ngroups, attr=chunk_attr) elif arglower.startswith('n-'): nfolds = int(arglower[2:]) return part.NFoldPartitioner(nfolds, attr=chunk_attr) elif os.path.isfile(arg) and arg.endswith('.py'): # arg is a script filepath return script2obj(arg) else: raise argparse.ArgumentTypeError( "'%s' does not describe a supported partitioner type" % arg) def arg2errorfx(arg): import mvpa2.misc.errorfx as efx if hasattr(efx, arg): return getattr(efx, arg) elif os.path.isfile(arg) and arg.endswith('.py'): # arg is a script filepath return script2obj(arg) else: raise argparse.ArgumentTypeError( "'%s' does not describe a supported error function" % arg) def arg2hdf5compression(arg): try: return int(arg) except: return arg def arg2neighbor(arg): # [[shape:]shape:]params comp = arg.split(':') if not len(comp): # need at least a radius raise ValueError("incomplete neighborhood specification") if len(comp) == 1: # [file|sphere radius] attr = 'voxel_indices' arg = comp[0] if os.path.isfile(arg) and arg.endswith('.py'): neighbor = script2obj(arg) else: from mvpa2.misc.neighborhood import Sphere neighbor = Sphere(int(arg)) elif len(comp) == 2: # attr:[file|sphere radius] attr = comp[0] arg = comp[1] if os.path.isfile(arg) and arg.endswith('.py'): neighbor = script2obj(arg) else: from mvpa2.misc.neighborhood import Sphere neighbor = Sphere(int(arg)) elif len(comp) > 2: attr = comp[0] shape = comp[1] params = [float(c) for c in comp[2:]] import mvpa2.misc.neighborhood as neighb neighbor = getattr(neighb, shape)(*params) return attr, neighbor def ds2hdf5(ds, fname, compression=None): """Save one or more datasets into an HDF5 file. Parameters ---------- ds : Dataset or list(Dataset) One or more datasets to store fname : str Filename of the output file. If it doesn't end with '.hdf5', such an extension will be appended. compression : {'gzip','lzf','szip'} or 1-9 compression type for HDF5 storage. Available values depend on the specific HDF5 installation. """ # this one doesn't actually check what it stores from mvpa2.base.hdf5 import h5save if not fname.endswith('.hdf5'): fname = '%s.hdf5' % fname verbose(1, "Save dataset to '%s'" % fname) h5save(fname, ds, mkdir=True, compression=compression) def hdf2ds(fnames): """Load dataset(s) from an HDF5 file Parameters ---------- fname : list(str) Names of the input HDF5 files Returns ------- list(Dataset) All datasets-like elements in all given HDF5 files (in order of appearance). If any given HDF5 file contains non-Dataset elements they are silently ignored. If no given HDF5 file contains any dataset, an empty list is returned. """ from mvpa2.base.hdf5 import h5load dss = [] for fname in fnames: content = h5load(fname) if is_datasetlike(content): dss.append(content) else: for c in content: if is_datasetlike(c): dss.append(c) return dss def arg2ds(sources): """Convert a sequence of dataset sources into a dataset. This function would be used to used to convert a single --input multidata specification into a dataset. For multiple --input arguments execute this function in a loop. """ from mvpa2.base.dataset import vstack return vstack(hdf2ds(sources)) def parser_add_common_attr_opts(parser): """Set up common parser options for adding dataset attributes""" for args in (attr_from_cmdline, attr_from_txt, attr_from_npy): parser_add_optgroup_from_def(parser, args) def parser_add_optgroup_from_def(parser, defn, exclusive=False, prefix=None): """Add an entire option group from a definition in a custom format Parameters ---------- parser : argparser instance defn : tuple Option group spec. Complicated beast. Grep source code for syntax examples. exclusive : bool Flag to make all options in the group mutually exclusive. prefix : str Prefix all option names with this string. Returns ------- parser argument group """ optgrp = parser.add_argument_group(defn[0]) if exclusive: rgrp = optgrp.add_mutually_exclusive_group() else: rgrp = optgrp for opt in defn[1]: namespec = opt[0] param = None if len(namespec) == 2 and not isinstance(namespec[0], basestring) \ and issubclass(namespec[0], ClassWithCollections): # parameter spec -> use its name param = namespec[0]._collections_template['params'][namespec[1]] optnames = ('--%s' % param.name.replace('_', '-'),) else: # take the literal names optnames = namespec if prefix is not None: # overwrite all option names with a common prefix optnames = ['%s%s' % (prefix, on.lstrip('-')) for on in optnames] if param is None and len(opt) > 1 and not isinstance(opt[1], dict): # parameter spec is given at 2nd position param = opt[1] if isinstance(opt[-1], dict): # last element has kwags for add_argument add_kwargs = opt[-1] else: # nothing to add add_kwargs = {} if param is not None: param2arg(rgrp, param, arg_names=optnames, **add_kwargs) else: rgrp.add_argument(*optnames, **add_kwargs) return optgrp def process_common_dsattr_opts(ds, args): """Goes through an argument namespace and processes attribute options""" # legacy support if args.add_sa_attr is not None: from mvpa2.misc.io.base import SampleAttributes smpl_attrs = SampleAttributes(args.add_sa_attr) for a in ('targets', 'chunks'): verbose(2, "Add sample attribute '%s' from sample attributes file" % a) ds.sa[a] = getattr(smpl_attrs, a) # loop over all attribute configurations that we know attr_cfgs = (# var, dst_collection, loader ('--add-sa', args.add_sa, ds.sa, _load_from_cmdline), ('--add-fa', args.add_fa, ds.fa, _load_from_cmdline), ('--add-sa-txt', args.add_sa_txt, ds.sa, _load_from_txt), ('--add-fa-txt', args.add_fa_txt, ds.fa, _load_from_txt), ('--add-sa-npy', args.add_sa_npy, ds.sa, _load_from_npy), ('--add-fa-npy', args.add_fa_npy, ds.fa, _load_from_npy), ) for varid, srcvar, dst_collection, loader in attr_cfgs: if srcvar is not None: for spec in srcvar: attr_name = spec[0] if not len(spec) > 1: raise argparse.ArgumentTypeError( "%s option need at least two values " % varid + "(attribute name and source filename (got: %s)" % spec) if dst_collection is ds.sa: verbose(2, "Add sample attribute '%s' from '%s'" % (attr_name, spec[1])) else: verbose(2, "Add feature attribute '%s' from '%s'" % (attr_name, spec[1])) attr = loader(spec[1:]) try: dst_collection[attr_name] = attr except ValueError, e: # try making the exception more readable e_str = str(e) if e_str.startswith('Collectable'): raise ValueError('attribute %s' % e_str[12:]) else: raise e return ds def _load_from_txt(args): defaults = dict(dtype=None, delimiter=None, skiprows=0, comments=None) if len(args) > 1: defaults['delimiter'] = args[1] if len(args) > 2: defaults['dtype'] = args[2] if len(args) > 3: defaults['skiprows'] = int(args[3]) if len(args) > 4: defaults['comments'] = args[4] data = np.loadtxt(args[0], **defaults) return data def _load_from_cmdline(args): defaults = dict(dtype='str', sep=',') if len(args) > 1: defaults['dtype'] = args[1] if defaults['dtype'] == 'str': data = [s.strip() for s in args[0].split(defaults['sep'])] else: import numpy as np data = np.fromstring(args[0], **defaults) return data def _load_from_npy(args): defaults = dict(mmap_mode=None) if len(args) > 1 and arg2bool(args[1]): defaults['mmap_mode'] = 'r' data = np.load(args[0], **defaults) return data def _load_csv_table(f): import csv import numpy as np sniffer = csv.Sniffer() try: dialect = sniffer.sniff(f.read(1024)) except: # maybe a sloppy header with a trailing delimiter? f.seek(0) sample = [f.readline() for s in range(3)] sample[0] = sample[0].strip() dialect = sniffer.sniff('\n'.join(sample)) f.seek(0) reader = csv.DictReader(f, dialect=dialect) table = dict(zip(reader.fieldnames, [list() for i in xrange(len(reader.fieldnames))])) for row in reader: for k, v in row.iteritems(): table[k].append(v) del_me = [] for k, v in table.iteritems(): if not len(k) and len(v) and v[0] is None: # this is an artifact of a trailing delimiter del_me.append(k) try: table[k] = np.array(v, dtype=int) except ValueError: try: table[k] = np.array(v, dtype=float) except ValueError: # we tried ... pass except TypeError: # tolerate any unexpected types and keep them as is pass for d in del_me: # delete artifacts del table[d] return table def get_crossvalidation_instance(learner, partitioner, errorfx, sampling_repetitions=1, learner_space='targets', balance_training=None, permutations=0, avg_datafold_results=True, prob_tail='left'): from mvpa2.base.node import ChainNode from mvpa2.measures.base import CrossValidation if balance_training is not None: # balance training data try: amount = int(balance_training) except ValueError: try: amount = float(balance_training) except ValueError: amount = balance_training from mvpa2.generators.resampling import Balancer balancer = Balancer(amount=amount, attr=learner_space, count=sampling_repetitions, limit={partitioner.get_space(): 1}, apply_selection=True, include_offlimit=True) else: balancer = None # set learner space learner.set_space(learner_space) # setup generator for data folding -- put in a chain node for easy # amending gennode = ChainNode([partitioner], space=partitioner.get_space()) if avg_datafold_results: from mvpa2.mappers.fx import mean_sample postproc = mean_sample() else: postproc = None if balancer is not None: # enable balancing step for each partitioning step gennode.append(balancer) if permutations > 0: from mvpa2.generators.base import Repeater from mvpa2.generators.permutation import AttributePermutator from mvpa2.clfs.stats import MCNullDist # how often do we want to shuffle the data repeater = Repeater(count=permutations) # permute the training part of a dataset exactly ONCE permutator = AttributePermutator( learner_space, limit={partitioner.get_space(): 1}, count=1) # CV with null-distribution estimation that permutes the training data for # each fold independently perm_gen_node = copy.deepcopy(gennode) perm_gen_node.append(permutator) null_cv = CrossValidation(learner, perm_gen_node, postproc=postproc, errorfx=errorfx) # Monte Carlo distribution estimator distr_est = MCNullDist(repeater, tail=prob_tail, measure=null_cv, enable_ca=['dist_samples']) # pass the p-values as feature attributes on to the results pass_attr = [('ca.null_prob', 'fa', 1)] else: distr_est = None pass_attr = None # final CV node cv = CrossValidation(learner, gennode, errorfx=errorfx, null_dist=distr_est, postproc=postproc, enable_ca=['stats', 'null_prob'], pass_attr=pass_attr) return cv ######################## # # common arguments # ######################## # argument spec template # = ( # , # {} #) help = ( 'help', ('-h', '--help', '--help-np'), dict(nargs=0, action=HelpAction, help="""show this help message and exit. --help-np forcefully disables the use of a pager for displaying the help.""") ) version = ( 'version', ('--version',), dict(action='version', help="show program's version and license information and exit") ) multidata = ( 'data', ('-i', '--input'), {'nargs': '+', 'dest': 'data', 'metavar': 'DATASET', 'help': """path(s) to one or more PyMVPA dataset files. All datasets will be merged into a single dataset (vstack'ed) in order of specification. In some cases this option may need to be specified more than once if multiple, but separate, input datasets are required.""" } ) multimask = ( 'masks', ('-m', '--masks'), {'nargs': '+'} ) mask = ( 'mask', ('-m', '--mask'), {'help': 'single mask item'} ) output_file = ( 'output', ('-o', '--output'), dict(type=str, help="""output filename ('.hdf5' extension is added automatically if necessary).""") ) output_prefix = ( 'outprefix', ('-o', '--output-prefix'), {'type': str, 'metavar': 'PREFIX', 'help': 'prefix for all output file' } ) learner_opt = ( 'learner', ('--learner',), {'type': arg2learner, 'help': """select a learner (trainable node) via its description in the learner warehouse (see 'info' command for a listing), a colon-separated list of capabilities, or by a file path to a Python script that creates a classifier instance (advanced).""" } ) learner_space_opt = ( 'learnerspace', ('--learner-space',), {'type': str, 'default': 'targets', 'help': """name of a sample attribute that defines the model to be learned by a learner. By default this is an attribute named 'targets'.""" } ) partitioner_opt = ( 'partitioner', ('--partitioner',), {'type': arg2partitioner, 'help': """select a data folding scheme. Supported arguments are: 'half' for split-half partitioning, 'oddeven' for partitioning into odd and even chunks, 'group-X' where X can be any positive integer for partitioning in X groups, 'n-X' where X can be any positive integer for leave-X-chunks out partitioning. By default partitioners operate on dataset chunks that are defined by a 'chunks' sample attribute. The name of the "chunking" attribute can be changed by appending a colon and the name of the attribute (e.g. 'oddeven:run'). optionally an argument to this option can also be a file path to a Python script that creates a custom partitioner instance (advanced).""" } ) enable_ca_opt = ( 'enable_ca', ('--enable-ca',), {'nargs': '+', 'metavar': 'NAME', 'help': """list of conditional attributes to be enabled""" } ) disable_ca_opt = ( 'disable_ca', ('--disable-ca',), {'nargs': '+', 'metavar': 'NAME', 'help': """list of conditional attributes to be disabled""" } ) ca_opts_grp = ('options for conditional attributes', [enable_ca_opt[1:], disable_ca_opt[1:]]) hdf5compression = ( 'compression', ('--hdf5-compression',), dict(type=arg2hdf5compression, default=None, metavar='TYPE', help="""\ compression type for HDF5 storage. Available values depend on the specific HDF5 installation. Typical values are: 'gzip', 'lzf', 'szip', or integers from 1 to 9 indicating gzip compression levels.""")) attr_from_cmdline = ('options for attributes from the command line', [ (('--add-sa',), dict(type=str, nargs='+', action='append', metavar='VALUE', help="""compose a sample attribute from the command line input. The first value is the desired attribute name, the second value is a comma-separated list (appropriately quoted) of actual attribute values. An optional third value can be given to specify a data type. Additional information on defining dataset attributes on the command line are given in the section "Compose attributes on the command line.""")), (('--add-fa',), dict(type=str, nargs='+', action='append', metavar='VALUE', help="""compose a feature attribute from the command line input. The first value is the desired attribute name, the second value is a comma-separated list (appropriately quoted) of actual attribute values. An optional third value can be given to specify a data type. Additional information on defining dataset attributes on the command line are given in the section "Compose attributes on the command line.""")), ]) attr_from_txt = ('options for attributes from text files', [ (('--add-sa-txt',), dict(type=str, nargs='+', action='append', metavar='VALUE', help="""load sample attribute from a text file. The first value is the desired attribute name, the second value is the filename the attribute will be loaded from. Additional values modifying the way the data is loaded are described in the section "Load data from text files".""")), (('--add-fa-txt',), dict(type=str, nargs='+', action='append', metavar='VALUE', help="""load feature attribute from a text file. The first value is the desired attribute name, the second value is the filename the attribute will be loaded from. Additional values modifying the way the data is loaded are described in the section "Load data from text files".""")), (('--add-sa-attr',), dict(type=str, metavar='FILENAME', help="""load sample attribute values from an legacy 'attributes file'. Column data is read as "literal". Only two column files ('targets' + 'chunks') without headers are supported. This option allows for reading attributes files from early PyMVPA versions.""")), ]) attr_from_npy = ('options for attributes from stored Numpy arrays', [ (('--add-sa-npy',), dict(type=str, nargs='+', metavar='VALUE', action='append', help="""load sample attribute from a Numpy .npy file. Compressed files (i.e. .npy.gz) are supported as well. The first value is the desired attribute name, the second value is the filename the data will be loaded from. Additional values modifying the way the data is loaded are described in the section "Load data from Numpy NPY files".""")), (('--add-fa-npy',), dict(type=str, nargs='+', metavar='VALUE', action='append', help="""load feature attribute from a Numpy .npy file. Compressed files (i.e. .npy.gz) are supported as well. The first value is the desired attribute name, the second value is the filename the data will be loaded from. Additional values modifying the way the data is loaded are described in the section "Load data from Numpy NPY files".""")), ]) single_required_hdf5output = ('output options', [ (('-o', '--output'), dict(type=str, required=True, help="""output filename ('.hdf5' extension is added automatically if necessary). NOTE: The output format is suitable for data exchange between PyMVPA commands, but is not recommended for long-term storage or exchange as its specific content may vary depending on the actual software environment. For long-term storage consider conversion into other data formats (see 'dump' command).""")), hdf5compression[1:], ]) crossvalidation_opts_grp = ('options for cross-validation setup', [ learner_opt[1:], learner_space_opt[1:], partitioner_opt[1:], (('--errorfx',), dict(type=arg2errorfx, help="""error function to be applied to the targets and predictions of each cross-validation data fold. This can either be a name of any error function in PyMVPA's mvpa2.misc.errorfx module, or a file path to a Python script that creates a custom error function (advanced).""")), (('--avg-datafold-results',), dict(action='store_true', help="""average result values across data folds generated by the partitioner. For example to compute a mean prediction error across all folds of a cross-validation procedure.""")), (('--balance-training',), dict(type=str, help="""If enabled, training samples are balanced within each data fold. If the keyword 'equal' is given as argument an equal number of random samples for each unique target value is chosen. The number of samples per category is determined by the category with the least number of samples in the respective training set. An integer argument will cause the a corresponding number of samples per category to be randomly selected. A floating point number argument (interval [0,1]) indicates what fraction of the available samples shall be selected.""")), (('--sampling-repetitions',), dict(type=int, default=1, help="""If training set balancing is enabled, how often should random sample selection be performed for each data fold. Default: 1""")), (('--permutations',), dict(type=int, default=0, help="""Number of Monte-Carlo permutation runs to be computed for estimating an H0 distribution for all cross-validation results. Enabling this option will make reports of corresponding p-values available in the result summary and output.""")), (('--prob-tail',), dict(choices=('left', 'right'), default='left', help="""which tail of the probability distribution to report p-values from when evaluating permutation test results. For example, a cross-validation computing mean prediction error could report left-tail p-value for a single-sided test.""")), ]) pymvpa2-2.6.4/mvpa2/data/000077500000000000000000000000001323370031300150525ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/README000066400000000000000000000004371323370031300157360ustar00rootroot00000000000000PyMVPA Example Dataset ---------------------- Posterior half of a single axial slice. Numerical sample labels: * 0 - rest * 1 - face * 2 - house * 3 - shoe * 4 - cat * 5 - scissors * 6 - scrambledpix * 7 - bottle * 8 - chair 12 independent chunks of data samples. pymvpa2-2.6.4/mvpa2/data/attributes.txt000066400000000000000000000136421323370031300200070ustar00rootroot000000000000000 0 0 0 0 0 0 0 0 0 0 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 0 0 0 0 0 0 0 0 0 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 0 0 0 0 0 0 0 0 0 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 0 0 0 0 0 0 0 0 0 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 0 1 0 1 0 1 0 1 0 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 0 1 0 1 0 1 0 1 0 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 0 1 0 1 0 1 0 1 0 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 0 1 0 1 0 1 0 1 0 1 0 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 0 1 0 1 0 1 0 1 0 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2 0 2 0 2 0 2 0 2 0 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 0 2 0 2 0 2 0 2 0 2 0 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 0 2 0 2 0 2 0 2 0 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 0 2 0 2 0 2 0 2 0 2 8 2 8 2 8 2 8 2 8 2 8 2 8 2 8 2 8 2 0 2 0 2 0 2 0 2 0 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 0 2 0 2 0 2 0 2 0 2 0 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 0 2 0 2 0 2 0 2 0 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 0 2 0 2 0 2 0 2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 2 0 2 0 2 0 2 0 2 0 2 0 3 0 3 0 3 0 3 0 3 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 3 0 3 0 3 0 3 0 3 0 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 0 3 0 3 0 3 0 3 0 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 0 3 0 3 0 3 0 3 0 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 0 3 0 3 0 3 0 3 0 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 0 3 0 3 0 3 0 3 0 3 0 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 0 3 0 3 0 3 0 3 0 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 0 3 0 3 0 3 0 3 0 3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 0 3 0 3 0 3 0 3 0 3 0 3 0 4 0 4 0 4 0 4 0 4 0 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 0 4 0 4 0 4 0 4 0 4 0 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 0 4 0 4 0 4 0 4 0 4 7 4 7 4 7 4 7 4 7 4 7 4 7 4 7 4 7 4 0 4 0 4 0 4 0 4 0 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 0 4 0 4 0 4 0 4 0 4 8 4 8 4 8 4 8 4 8 4 8 4 8 4 8 4 8 4 0 4 0 4 0 4 0 4 0 4 0 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 0 4 0 4 0 4 0 4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 4 0 4 0 4 0 4 0 4 6 4 6 4 6 4 6 4 6 4 6 4 6 4 6 4 6 4 0 4 0 4 0 4 0 4 0 4 0 4 0 5 0 5 0 5 0 5 0 5 0 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 0 5 0 5 0 5 0 5 0 5 0 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 0 5 0 5 0 5 0 5 0 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 0 5 0 5 0 5 0 5 0 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 0 5 0 5 0 5 0 5 0 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 0 5 0 5 0 5 0 5 0 5 0 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 0 5 0 5 0 5 0 5 0 5 7 5 7 5 7 5 7 5 7 5 7 5 7 5 7 5 7 5 0 5 0 5 0 5 0 5 0 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 0 5 0 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 0 6 0 6 0 6 0 6 0 6 0 6 8 6 8 6 8 6 8 6 8 6 8 6 8 6 8 6 8 6 0 6 0 6 0 6 0 6 0 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 0 6 0 6 0 6 0 6 0 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 0 6 0 6 0 6 0 6 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 0 6 0 6 0 6 0 6 0 6 0 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 0 6 0 6 0 6 0 6 0 6 4 6 4 6 4 6 4 6 4 6 4 6 4 6 4 6 4 6 0 6 0 6 0 6 0 6 0 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 0 6 0 6 0 6 0 6 0 6 0 6 0 7 0 7 0 7 0 7 0 7 0 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 0 7 0 7 0 7 0 7 0 7 0 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 0 7 0 7 0 7 0 7 0 7 5 7 5 7 5 7 5 7 5 7 5 7 5 7 5 7 5 7 0 7 0 7 0 7 0 7 0 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 0 7 0 7 0 7 0 7 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 7 0 7 0 7 0 7 0 7 0 7 4 7 4 7 4 7 4 7 4 7 4 7 4 7 4 7 4 7 0 7 0 7 0 7 0 7 0 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 0 7 0 7 0 7 0 7 0 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 0 7 0 7 0 7 0 7 0 7 0 7 0 8 0 8 0 8 0 8 0 8 0 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 0 8 0 8 0 8 0 8 0 8 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 8 0 8 0 8 0 8 0 8 4 8 4 8 4 8 4 8 4 8 4 8 4 8 4 8 4 8 0 8 0 8 0 8 0 8 0 8 2 8 2 8 2 8 2 8 2 8 2 8 2 8 2 8 2 8 0 8 0 8 0 8 0 8 0 8 6 8 6 8 6 8 6 8 6 8 6 8 6 8 6 8 6 8 0 8 0 8 0 8 0 8 0 8 0 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 0 8 0 8 0 8 0 8 0 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 0 8 0 8 0 8 0 8 0 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 0 8 0 8 0 8 0 8 0 8 0 8 0 9 0 9 0 9 0 9 0 9 0 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 0 9 0 9 0 9 0 9 0 9 0 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 0 9 0 9 0 9 0 9 0 9 6 9 6 9 6 9 6 9 6 9 6 9 6 9 6 9 6 9 0 9 0 9 0 9 0 9 0 9 2 9 2 9 2 9 2 9 2 9 2 9 2 9 2 9 2 9 0 9 0 9 0 9 0 9 0 9 5 9 5 9 5 9 5 9 5 9 5 9 5 9 5 9 5 9 0 9 0 9 0 9 0 9 0 9 0 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 0 9 0 9 0 9 0 9 0 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 0 9 0 9 0 9 0 9 0 9 7 9 7 9 7 9 7 9 7 9 7 9 7 9 7 9 7 9 0 9 0 9 0 9 0 9 0 9 0 9 0 10 0 10 0 10 0 10 0 10 0 10 4 10 4 10 4 10 4 10 4 10 4 10 4 10 4 10 4 10 0 10 0 10 0 10 0 10 0 10 0 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10 0 10 0 10 0 10 0 10 0 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 0 10 0 10 0 10 0 10 0 10 7 10 7 10 7 10 7 10 7 10 7 10 7 10 7 10 7 10 0 10 0 10 0 10 0 10 0 10 3 10 3 10 3 10 3 10 3 10 3 10 3 10 3 10 3 10 0 10 0 10 0 10 0 10 0 10 0 10 2 10 2 10 2 10 2 10 2 10 2 10 2 10 2 10 2 10 0 10 0 10 0 10 0 10 0 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 0 10 0 10 0 10 0 10 0 10 5 10 5 10 5 10 5 10 5 10 5 10 5 10 5 10 5 10 0 10 0 10 0 10 0 10 0 10 0 10 0 11 0 11 0 11 0 11 0 11 0 11 7 11 7 11 7 11 7 11 7 11 7 11 7 11 7 11 7 11 0 11 0 11 0 11 0 11 0 11 0 11 2 11 2 11 2 11 2 11 2 11 2 11 2 11 2 11 2 11 0 11 0 11 0 11 0 11 0 11 8 11 8 11 8 11 8 11 8 11 8 11 8 11 8 11 8 11 0 11 0 11 0 11 0 11 0 11 6 11 6 11 6 11 6 11 6 11 6 11 6 11 6 11 6 11 0 11 0 11 0 11 0 11 0 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 0 11 0 11 0 11 0 11 0 11 0 11 3 11 3 11 3 11 3 11 3 11 3 11 3 11 3 11 3 11 0 11 0 11 0 11 0 11 0 11 4 11 4 11 4 11 4 11 4 11 4 11 4 11 4 11 4 11 0 11 0 11 0 11 0 11 0 11 5 11 5 11 5 11 5 11 5 11 5 11 5 11 5 11 5 11 0 11 0 11 0 11 0 11 0 11 0 11 pymvpa2-2.6.4/mvpa2/data/attributes_literal.txt000066400000000000000000000273721323370031300215300ustar00rootroot00000000000000rest 0 rest 0 rest 0 rest 0 rest 0 rest 0 scissors 0 scissors 0 scissors 0 scissors 0 scissors 0 scissors 0 scissors 0 scissors 0 scissors 0 rest 0 rest 0 rest 0 rest 0 rest 0 rest 0 face 0 face 0 face 0 face 0 face 0 face 0 face 0 face 0 face 0 rest 0 rest 0 rest 0 rest 0 rest 0 cat 0 cat 0 cat 0 cat 0 cat 0 cat 0 cat 0 cat 0 cat 0 rest 0 rest 0 rest 0 rest 0 rest 0 shoe 0 shoe 0 shoe 0 shoe 0 shoe 0 shoe 0 shoe 0 shoe 0 shoe 0 rest 0 rest 0 rest 0 rest 0 rest 0 house 0 house 0 house 0 house 0 house 0 house 0 house 0 house 0 house 0 rest 0 rest 0 rest 0 rest 0 rest 0 rest 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 scrambledpix 0 rest 0 rest 0 rest 0 rest 0 rest 0 bottle 0 bottle 0 bottle 0 bottle 0 bottle 0 bottle 0 bottle 0 bottle 0 bottle 0 rest 0 rest 0 rest 0 rest 0 rest 0 chair 0 chair 0 chair 0 chair 0 chair 0 chair 0 chair 0 chair 0 chair 0 rest 0 rest 0 rest 0 rest 0 rest 0 rest 0 rest 1 rest 1 rest 1 rest 1 rest 1 rest 1 face 1 face 1 face 1 face 1 face 1 face 1 face 1 face 1 face 1 rest 1 rest 1 rest 1 rest 1 rest 1 rest 1 cat 1 cat 1 cat 1 cat 1 cat 1 cat 1 cat 1 cat 1 cat 1 rest 1 rest 1 rest 1 rest 1 rest 1 shoe 1 shoe 1 shoe 1 shoe 1 shoe 1 shoe 1 shoe 1 shoe 1 shoe 1 rest 1 rest 1 rest 1 rest 1 rest 1 chair 1 chair 1 chair 1 chair 1 chair 1 chair 1 chair 1 chair 1 chair 1 rest 1 rest 1 rest 1 rest 1 rest 1 scissors 1 scissors 1 scissors 1 scissors 1 scissors 1 scissors 1 scissors 1 scissors 1 scissors 1 rest 1 rest 1 rest 1 rest 1 rest 1 rest 1 bottle 1 bottle 1 bottle 1 bottle 1 bottle 1 bottle 1 bottle 1 bottle 1 bottle 1 rest 1 rest 1 rest 1 rest 1 rest 1 house 1 house 1 house 1 house 1 house 1 house 1 house 1 house 1 house 1 rest 1 rest 1 rest 1 rest 1 rest 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 scrambledpix 1 rest 1 rest 1 rest 1 rest 1 rest 1 rest 1 rest 2 rest 2 rest 2 rest 2 rest 2 rest 2 cat 2 cat 2 cat 2 cat 2 cat 2 cat 2 cat 2 cat 2 cat 2 rest 2 rest 2 rest 2 rest 2 rest 2 rest 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 scrambledpix 2 rest 2 rest 2 rest 2 rest 2 rest 2 scissors 2 scissors 2 scissors 2 scissors 2 scissors 2 scissors 2 scissors 2 scissors 2 scissors 2 rest 2 rest 2 rest 2 rest 2 rest 2 chair 2 chair 2 chair 2 chair 2 chair 2 chair 2 chair 2 chair 2 chair 2 rest 2 rest 2 rest 2 rest 2 rest 2 bottle 2 bottle 2 bottle 2 bottle 2 bottle 2 bottle 2 bottle 2 bottle 2 bottle 2 rest 2 rest 2 rest 2 rest 2 rest 2 rest 2 shoe 2 shoe 2 shoe 2 shoe 2 shoe 2 shoe 2 shoe 2 shoe 2 shoe 2 rest 2 rest 2 rest 2 rest 2 rest 2 face 2 face 2 face 2 face 2 face 2 face 2 face 2 face 2 face 2 rest 2 rest 2 rest 2 rest 2 rest 2 house 2 house 2 house 2 house 2 house 2 house 2 house 2 house 2 house 2 rest 2 rest 2 rest 2 rest 2 rest 2 rest 2 rest 3 rest 3 rest 3 rest 3 rest 3 rest 3 shoe 3 shoe 3 shoe 3 shoe 3 shoe 3 shoe 3 shoe 3 shoe 3 shoe 3 rest 3 rest 3 rest 3 rest 3 rest 3 rest 3 house 3 house 3 house 3 house 3 house 3 house 3 house 3 house 3 house 3 rest 3 rest 3 rest 3 rest 3 rest 3 chair 3 chair 3 chair 3 chair 3 chair 3 chair 3 chair 3 chair 3 chair 3 rest 3 rest 3 rest 3 rest 3 rest 3 cat 3 cat 3 cat 3 cat 3 cat 3 cat 3 cat 3 cat 3 cat 3 rest 3 rest 3 rest 3 rest 3 rest 3 face 3 face 3 face 3 face 3 face 3 face 3 face 3 face 3 face 3 rest 3 rest 3 rest 3 rest 3 rest 3 rest 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 scrambledpix 3 rest 3 rest 3 rest 3 rest 3 rest 3 bottle 3 bottle 3 bottle 3 bottle 3 bottle 3 bottle 3 bottle 3 bottle 3 bottle 3 rest 3 rest 3 rest 3 rest 3 rest 3 scissors 3 scissors 3 scissors 3 scissors 3 scissors 3 scissors 3 scissors 3 scissors 3 scissors 3 rest 3 rest 3 rest 3 rest 3 rest 3 rest 3 rest 4 rest 4 rest 4 rest 4 rest 4 rest 4 house 4 house 4 house 4 house 4 house 4 house 4 house 4 house 4 house 4 rest 4 rest 4 rest 4 rest 4 rest 4 rest 4 scissors 4 scissors 4 scissors 4 scissors 4 scissors 4 scissors 4 scissors 4 scissors 4 scissors 4 rest 4 rest 4 rest 4 rest 4 rest 4 bottle 4 bottle 4 bottle 4 bottle 4 bottle 4 bottle 4 bottle 4 bottle 4 bottle 4 rest 4 rest 4 rest 4 rest 4 rest 4 face 4 face 4 face 4 face 4 face 4 face 4 face 4 face 4 face 4 rest 4 rest 4 rest 4 rest 4 rest 4 chair 4 chair 4 chair 4 chair 4 chair 4 chair 4 chair 4 chair 4 chair 4 rest 4 rest 4 rest 4 rest 4 rest 4 rest 4 shoe 4 shoe 4 shoe 4 shoe 4 shoe 4 shoe 4 shoe 4 shoe 4 shoe 4 rest 4 rest 4 rest 4 rest 4 rest 4 cat 4 cat 4 cat 4 cat 4 cat 4 cat 4 cat 4 cat 4 cat 4 rest 4 rest 4 rest 4 rest 4 rest 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 scrambledpix 4 rest 4 rest 4 rest 4 rest 4 rest 4 rest 4 rest 5 rest 5 rest 5 rest 5 rest 5 rest 5 house 5 house 5 house 5 house 5 house 5 house 5 house 5 house 5 house 5 rest 5 rest 5 rest 5 rest 5 rest 5 rest 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 scrambledpix 5 rest 5 rest 5 rest 5 rest 5 rest 5 face 5 face 5 face 5 face 5 face 5 face 5 face 5 face 5 face 5 rest 5 rest 5 rest 5 rest 5 rest 5 shoe 5 shoe 5 shoe 5 shoe 5 shoe 5 shoe 5 shoe 5 shoe 5 shoe 5 rest 5 rest 5 rest 5 rest 5 rest 5 chair 5 chair 5 chair 5 chair 5 chair 5 chair 5 chair 5 chair 5 chair 5 rest 5 rest 5 rest 5 rest 5 rest 5 rest 5 cat 5 cat 5 cat 5 cat 5 cat 5 cat 5 cat 5 cat 5 cat 5 rest 5 rest 5 rest 5 rest 5 rest 5 bottle 5 bottle 5 bottle 5 bottle 5 bottle 5 bottle 5 bottle 5 bottle 5 bottle 5 rest 5 rest 5 rest 5 rest 5 rest 5 scissors 5 scissors 5 scissors 5 scissors 5 scissors 5 scissors 5 scissors 5 scissors 5 scissors 5 rest 5 rest 5 rest 5 rest 5 rest 5 rest 5 rest 6 rest 6 rest 6 rest 6 rest 6 rest 6 face 6 face 6 face 6 face 6 face 6 face 6 face 6 face 6 face 6 rest 6 rest 6 rest 6 rest 6 rest 6 rest 6 chair 6 chair 6 chair 6 chair 6 chair 6 chair 6 chair 6 chair 6 chair 6 rest 6 rest 6 rest 6 rest 6 rest 6 scissors 6 scissors 6 scissors 6 scissors 6 scissors 6 scissors 6 scissors 6 scissors 6 scissors 6 rest 6 rest 6 rest 6 rest 6 rest 6 shoe 6 shoe 6 shoe 6 shoe 6 shoe 6 shoe 6 shoe 6 shoe 6 shoe 6 rest 6 rest 6 rest 6 rest 6 rest 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 scrambledpix 6 rest 6 rest 6 rest 6 rest 6 rest 6 rest 6 house 6 house 6 house 6 house 6 house 6 house 6 house 6 house 6 house 6 rest 6 rest 6 rest 6 rest 6 rest 6 cat 6 cat 6 cat 6 cat 6 cat 6 cat 6 cat 6 cat 6 cat 6 rest 6 rest 6 rest 6 rest 6 rest 6 bottle 6 bottle 6 bottle 6 bottle 6 bottle 6 bottle 6 bottle 6 bottle 6 bottle 6 rest 6 rest 6 rest 6 rest 6 rest 6 rest 6 rest 7 rest 7 rest 7 rest 7 rest 7 rest 7 face 7 face 7 face 7 face 7 face 7 face 7 face 7 face 7 face 7 rest 7 rest 7 rest 7 rest 7 rest 7 rest 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 scrambledpix 7 rest 7 rest 7 rest 7 rest 7 rest 7 scissors 7 scissors 7 scissors 7 scissors 7 scissors 7 scissors 7 scissors 7 scissors 7 scissors 7 rest 7 rest 7 rest 7 rest 7 rest 7 shoe 7 shoe 7 shoe 7 shoe 7 shoe 7 shoe 7 shoe 7 shoe 7 shoe 7 rest 7 rest 7 rest 7 rest 7 rest 7 bottle 7 bottle 7 bottle 7 bottle 7 bottle 7 bottle 7 bottle 7 bottle 7 bottle 7 rest 7 rest 7 rest 7 rest 7 rest 7 rest 7 cat 7 cat 7 cat 7 cat 7 cat 7 cat 7 cat 7 cat 7 cat 7 rest 7 rest 7 rest 7 rest 7 rest 7 chair 7 chair 7 chair 7 chair 7 chair 7 chair 7 chair 7 chair 7 chair 7 rest 7 rest 7 rest 7 rest 7 rest 7 house 7 house 7 house 7 house 7 house 7 house 7 house 7 house 7 house 7 rest 7 rest 7 rest 7 rest 7 rest 7 rest 7 rest 8 rest 8 rest 8 rest 8 rest 8 rest 8 face 8 face 8 face 8 face 8 face 8 face 8 face 8 face 8 face 8 rest 8 rest 8 rest 8 rest 8 rest 8 rest 8 chair 8 chair 8 chair 8 chair 8 chair 8 chair 8 chair 8 chair 8 chair 8 rest 8 rest 8 rest 8 rest 8 rest 8 cat 8 cat 8 cat 8 cat 8 cat 8 cat 8 cat 8 cat 8 cat 8 rest 8 rest 8 rest 8 rest 8 rest 8 house 8 house 8 house 8 house 8 house 8 house 8 house 8 house 8 house 8 rest 8 rest 8 rest 8 rest 8 rest 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 scrambledpix 8 rest 8 rest 8 rest 8 rest 8 rest 8 rest 8 shoe 8 shoe 8 shoe 8 shoe 8 shoe 8 shoe 8 shoe 8 shoe 8 shoe 8 rest 8 rest 8 rest 8 rest 8 rest 8 bottle 8 bottle 8 bottle 8 bottle 8 bottle 8 bottle 8 bottle 8 bottle 8 bottle 8 rest 8 rest 8 rest 8 rest 8 rest 8 scissors 8 scissors 8 scissors 8 scissors 8 scissors 8 scissors 8 scissors 8 scissors 8 scissors 8 rest 8 rest 8 rest 8 rest 8 rest 8 rest 8 rest 9 rest 9 rest 9 rest 9 rest 9 rest 9 face 9 face 9 face 9 face 9 face 9 face 9 face 9 face 9 face 9 rest 9 rest 9 rest 9 rest 9 rest 9 rest 9 cat 9 cat 9 cat 9 cat 9 cat 9 cat 9 cat 9 cat 9 cat 9 rest 9 rest 9 rest 9 rest 9 rest 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 scrambledpix 9 rest 9 rest 9 rest 9 rest 9 rest 9 house 9 house 9 house 9 house 9 house 9 house 9 house 9 house 9 house 9 rest 9 rest 9 rest 9 rest 9 rest 9 scissors 9 scissors 9 scissors 9 scissors 9 scissors 9 scissors 9 scissors 9 scissors 9 scissors 9 rest 9 rest 9 rest 9 rest 9 rest 9 rest 9 chair 9 chair 9 chair 9 chair 9 chair 9 chair 9 chair 9 chair 9 chair 9 rest 9 rest 9 rest 9 rest 9 rest 9 shoe 9 shoe 9 shoe 9 shoe 9 shoe 9 shoe 9 shoe 9 shoe 9 shoe 9 rest 9 rest 9 rest 9 rest 9 rest 9 bottle 9 bottle 9 bottle 9 bottle 9 bottle 9 bottle 9 bottle 9 bottle 9 bottle 9 rest 9 rest 9 rest 9 rest 9 rest 9 rest 9 rest 10 rest 10 rest 10 rest 10 rest 10 rest 10 cat 10 cat 10 cat 10 cat 10 cat 10 cat 10 cat 10 cat 10 cat 10 rest 10 rest 10 rest 10 rest 10 rest 10 rest 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 scrambledpix 10 rest 10 rest 10 rest 10 rest 10 rest 10 chair 10 chair 10 chair 10 chair 10 chair 10 chair 10 chair 10 chair 10 chair 10 rest 10 rest 10 rest 10 rest 10 rest 10 bottle 10 bottle 10 bottle 10 bottle 10 bottle 10 bottle 10 bottle 10 bottle 10 bottle 10 rest 10 rest 10 rest 10 rest 10 rest 10 shoe 10 shoe 10 shoe 10 shoe 10 shoe 10 shoe 10 shoe 10 shoe 10 shoe 10 rest 10 rest 10 rest 10 rest 10 rest 10 rest 10 house 10 house 10 house 10 house 10 house 10 house 10 house 10 house 10 house 10 rest 10 rest 10 rest 10 rest 10 rest 10 face 10 face 10 face 10 face 10 face 10 face 10 face 10 face 10 face 10 rest 10 rest 10 rest 10 rest 10 rest 10 scissors 10 scissors 10 scissors 10 scissors 10 scissors 10 scissors 10 scissors 10 scissors 10 scissors 10 rest 10 rest 10 rest 10 rest 10 rest 10 rest 10 rest 11 rest 11 rest 11 rest 11 rest 11 rest 11 bottle 11 bottle 11 bottle 11 bottle 11 bottle 11 bottle 11 bottle 11 bottle 11 bottle 11 rest 11 rest 11 rest 11 rest 11 rest 11 rest 11 house 11 house 11 house 11 house 11 house 11 house 11 house 11 house 11 house 11 rest 11 rest 11 rest 11 rest 11 rest 11 chair 11 chair 11 chair 11 chair 11 chair 11 chair 11 chair 11 chair 11 chair 11 rest 11 rest 11 rest 11 rest 11 rest 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 scrambledpix 11 rest 11 rest 11 rest 11 rest 11 rest 11 face 11 face 11 face 11 face 11 face 11 face 11 face 11 face 11 face 11 rest 11 rest 11 rest 11 rest 11 rest 11 rest 11 shoe 11 shoe 11 shoe 11 shoe 11 shoe 11 shoe 11 shoe 11 shoe 11 shoe 11 rest 11 rest 11 rest 11 rest 11 rest 11 cat 11 cat 11 cat 11 cat 11 cat 11 cat 11 cat 11 cat 11 cat 11 rest 11 rest 11 rest 11 rest 11 rest 11 scissors 11 scissors 11 scissors 11 scissors 11 scissors 11 scissors 11 scissors 11 scissors 11 scissors 11 rest 11 rest 11 rest 11 rest 11 rest 11 rest 11 pymvpa2-2.6.4/mvpa2/data/bold.nii.gz000066400000000000000000050011411323370031300171140ustar00rootroot00000000000000‹ æ!Mÿbold_fixed.niiĽ|ÙÖ½ÝUu¬ÁÝÝ î. îîîî6Øà >8 0¸»»»»»»»|Oç¾ÓL¸ ÷û¿÷ ¿:¡súTÕ©½öZkïS5,W¾Ú¹„+¹+²Ër-’ÿüKÂÞ”Þ[5òËçrµùŸÿâówï¼ÿ-+ø¯×þoåz–È×ÿU ÿù•/‘É'] þ/|pž9º\‡µ-àêv/{sÛøÛÿËÿçþ¯<ÇÅ׿Þãÿò_Çêêý?ßxÿj•*½÷õóÅrWk…÷Ã[å¬j/–÷_ÿý k©Õ×~br–ÙM¬°ŒÃjdGµ3ñßh˶Nýû_ô¯¬©Î_¢¡,&óÈjâ«=Ð>h·‹pÂÏ)êÌgTÖO|õÓeME•Ëe\yR´§¬NdYTvÙE'ÑD4·‡h¼7ÖI«©­È鲚<(ˤªˆÌ%§‰-|÷\Ö‘íd YDTnq##¦wú;3ÄFyEΖãå!ù–'Ȉ*–ÊÃg¤U7emùZ4—cå3±0Øc¾kå—Å.QJFR…TYXf‘Id/ùH&RÙÔægóÿîrŠüKF’%,ÁŒXÏ™/Éê¼û¸'“ÊY²¼)¨j†êªŠ¨ýòºÜ)¯ÉWò®<*÷ËÔb²åóƒ1¯ºšÚU9¾12•,"ÿ”Ff£änJ]R±ä9\UU¿¨}2œ²Ôr9„kµ@î•WE çuçñŒ5ßI*7JKu“­8®û²ž¬,‡s|Ÿ7ª˜'«}ª¥j¤ÎÉ}r«!‹ËX\ï‚r®óÏá2Xœ•b°”üF{å£b¨² sl¬f«.j¨J® òê¾z­6ªê*³z&ÏÈKòœÌ¡„Jå|¶¾²•=]t•]e1uTR59®eò™lª i_ÝDßÑYMS_S½t½ƒOÂgœU UbW¹Dà#Îbß•eKYEmRn½J]~j‡*¯ók£?éÖ¦©ù`.š½*‚n®Óè‘*¯*ÏY=¦Rꪜ,!³YÓ¾»*³m‡ã[#C«̰´J¡Âéúz½. Fê}f‰ã¾h"»³êϪ.ª÷3Z\µW%Õ¶Þ«®È2”óà»ñ&ˆx*¡zÂuø••á«©úO=[·QO´p¯2M!“ƽJ+}Bg4ÏÕz5Uý©¶«s*”NÎñÄѼãų Ù}X¯¹TU…õÿLŽU¿ë‹úWÞ$ÓÑÍ SÐä7ÌSÂÖ¹MvSÅ\W#ÕõBÅÖcUI•IEÛ¼W¤°5ѹ,“«7¬‹ª„l­nªFz¼yf*› :…Ygvš#æÉèŽcÞëHî>¦‚Îi^JGUVëTl5[&ËÅ ïü–[ÏT¬µ6ܳ%U|›söÚŒ1óLwó†qã~cú˜=æ±N`|LW3QÝ3ãt#)­†Ì,Sr/^ó®Â¯Öe"î“Iò³ð)Êðê¸òÜcTY'¦…RëÀ¼ar™•UíR)@«ûUi9ï¿o¨H â©ç\ÝîàlV>{žž¢Çëzê¦çÞhÒ˜DÕßµ?´qéõj¹š©6€Æ¶Žª×¨8"…w¼ˆV {œLŠKUüx"ç¨ßô1ÝÅD3iur³Ê”6åÌo&´»–9¦‹™œ¦†ÙÃu™ ž©ðzwÎ{AxÒú}å³F;7¤z'•Z£21Ãj˜bni+tZsÈ\2û9Ú¼î¤æƒþgÕáÌY©U5µ’Lb¹L%úˆcÞù­µn8Id!ÙP^–aÔs‘QMÑ/Loó—idnéIf€¹nžš¶f¹Æ89A·ñj™¦‡É°*¦ª,Ó‚Ž:å]…/­ÉÎ|‘IöàúÆ•vèâîÑf•> ~d7íÜëM9ð〩éîÄüî›·z“ޝ#˜ª¹°¯ÔdžuÕÍÿüØê²­íŸh°¤”\Dñ¾9Ð e­²úØÚÉç¶[Yñ9Û±¬D¶Û6vx»Ÿe¬£Þÿï¿­c5sƈƲªL-}Å.»£ý»=žˆÿÆ)î$sÆØñìgÿ~€@ÿÚ]Ì"ÚG—퉛¿È©¢¶ˆa¯wn‹¼²†È"ŠF¢™}7ÐïýíQë™UIÜ+åîËmd¶dJð)båYį²£ÖJ¼zˆï~Åç,K¸''¥÷ɰ˜…Ò¨8* Q"–:Côþ…yO•_Å^ïþnˆo¾¹c%æ}»D ²úLj0Ñ22 öɧò+q¾ 1|º %ý¿`FlåL”§áã¹W:ËŒœ½þDc_ò²iªJ§ÖÈ×p„Ͱkr8Y̶"ý`Ì®v¶/q÷Wf”\+,(2B!ç_§¢1þ bw õ™Ûj±^ͯN‰ÒÎçoŽðï——à™8ûwe[òü7ò%ãV¥=&J$¯ßÅ"w ²ÑÃÁrÎ_I>±|l·÷Îý{,—+¯Õ þ1A~&“«C4M2ö–ód%âÒïª·Š©Ó¨ñê–úLt¬A.~ä:ÌYMMŒKâ¼²> åÿª·=F´„‰Sˆ‘•Q¿ƒeU"øGO}S'2±L&}\ý¡ÓꌘŒÙ¥æª(::& Ïýóí—Ÿ}M”c¼lD´Wꤺ.sqtùu&­«ŸéhÞ›óf½réÆ:‘ž÷,ï9îµ$bæ’~Ö¢ïFgßa,"6÷â}¥UõEÕÖ‹t<ÕOï!B'rŸ'¿~”×Åõ1FK¥Naô²šÒvÞ~7Þl‘’|ç=ùS5@eWwÕ½LÏÑÍÔ#ýÙ,5ɉ„–{<ØvD§2_ÔÎã5Ÿ³ãèðz¶Š%2yÇ‹o¶Ç³Æ2À? «³ä&T}Z·5n“B'4kMS˜XýŒÈL¬5ùÈÒO’Ï åú„Ò“¹z‰T8oR[£œ#Äì·¬íª¢lÏy¨GšàÇ>Μ2WÍ ó~Ã<×wMÓ–ó^Fæº-QIÕt²ÁßÅqïüvX—øä(-È}B©2³š¬¿‚£MsOO7³þÑÝ,7/ˆò…L}ÓOí6toð# ü#©LÃÞå]…àGóD îˆ>ò“h%ê*îvfž^«3˜ ¦„{ºÉê®æ>g*¸û™§úd¡ÎÌ =ø‘’ý\ìÕK'$jÇ·kêÿÅë]®/®mÞ>¹ Z¼çÉûã½øäZcu°ßØ‹àElF1Vhû³õÚ|ƺ¢Qþ~Sa+¿3\Ô–ueYL<¶»Ø}íùÖ2犓ÃIèüjǵÅOͳ0¹ecòÞNršŒ-wˆV"‡=Î9/ÒËž"·(+*‹zöÇ¿?üßþ½Ýze§ÉÝ&Õ7ó'k2‹\†Bv,xYDÙJ”?²‡`ŽÚ™ã,ãàÂ+ˆq;áØûˆíë6™:âÉ͉aY«Ñ{¾;Þ-+4ëóúÕGbÍØmvXׯDéD*§Úͧ<"òµf´2ž¬êÔfÄ2Δêž—=ù…òîÂÜD±éª±ù¨|ÏØ°âø)ô«b·ác «§œ‚~•L‹HnÐWþ8YísYÔ¹ƒ>0–çU+{€è.ûÁ΋·âˆFÀ0«©ººnFžÚ¤3EôiÕ]gÕ÷Qs€ZkÁªºˆÚ#>;±WÈÞ# Àk}QŸs\dFµ5,Šþ¨bš¡¦y~\PŸTki%[nð芊£›«Ô¬øŽÖìïFdouÈ$sÛ~ù(£+ém:‡ª¤ç›-hW7Í“ü¨ óé˰¸Ô(ga@«õ¨ªÓ¤ ÍîÛ#ž+’³>Â?š©^¼z¬6êÍèWýÕ)ýÅì=Šá^îqĘ¢FqÄ{”ÖBÏTR4òŽÇ*`÷“…á€.U\Ý`ýÍW½õ9ÝÕÄ6qµå2©L-óÀT7§uzF.i.‚EQÃ>ƒÁ¾¬ôØ" ¿ô±Æ:ák¬?¯jÊRðÈnº—¹k|ÁsÜ5{M8w wvóR_@oj®£šH*4×dÈ:_V?nyçw̺â¤@­K‘Z%F1èç¯_ 3ÕÌý›™o™k°˜晎lŠÃ ©u¦¯þ v›@5$£ ¥.Ê%ÞUxŚ挹Éé:rOôktQbš^‡¶–ÐÜ3‹¹eÜkMJwøÍ”ÏCpŨ&¯ê~ä‡Çï—y྽ ÿ¥×»\o\[½Ÿåà”ñž'ïCôB[‡­Av '³ÏþÕŠÌ(¶¥ma‡µ»«å¶Ž„h”¿ßTܪíŒ d3r^_qÑîc°çX‡œ«N!d¬íc¿üû­!ú»‚˜Fv™H:–»iîDbûsCä'ÒçÀ ©%ªÙB4Ònë‘UX\%r%/?I ~ÀÿXHž{™(;H6• @¤H"MÎå/Î*gªËïΆì${>ÃýŠ•–]“1¹[ëJ‹•5½éI°ã]¶â÷‰<ÒM ÁêJÉñÙ¨”j#±ÿÊ[[Fû 5§ªS2˜Ë:ý@…`â!\“D`\?"u~bÉUnœ5ÝcÜ3œübŽçc~p ¶Ë£qõᚦdœÐ2øqc±2œ¹ ª":Ηìl5ŸØ}þŠ\ ~xVSà¯Ör§Øõ?¥>èuT,å¯_9*Šõ2qZ-Cc+¬®Á˜¶,¹8₨+¼wnÀ˜)¬JÎR4ÎØ0–dïIÔzøÇBYB çû^dúyÕXu‡ø4JÕ…ÞAeÜ‚$àewn’ŒåyÕÖîŽÿÑýë8øQ…È5\+©Òsç7ÐOtxøG1}‹¸è£Ïªr*¢ª>ö—Ц³©Í¸}W”'K€ÔføOjuA•$žU @næªÉœê:¡^Æ™,¬¶¨Ã*5ú•*m9kÙw3ìgååRb_\’Ê ¢ÁçXªÁïØnv˜îë0šú™Ê¥ ëxq©àQ¿èPz9ùÍjðãÅwã-?ò€ÁI°•j £MÓÕíàd2éÍ3Ýe·Ni^â}ŒGošB~ïâV¨T"€ g°ÊÛÃàj ‰øyÕeyKNU­ôAÝÙD2ñP„¦?¢²/xYÂÕyMV¾»ÏHƒ`3ù;sM$®z/H^ô¡ÓäÀ²vZÃí°ŽsÒîkEemEµ_Z¡ð*~µ´u槆+Äý+üXW~¼çä¦ôø¥ñ>ª_ȘùëW'á&-unb¼/Ž÷nð.«î©J‘ñ–·¾÷ΆØD59öÖ³ä ~„ÓåðÏÉVz£Ùeâ»oáÈg…ÔÀ£ße®#è#ä7kdçËw3\.0Ф®  ™E&”¤õødÒê6î&œáš¾ÄÇÈÿ1ž0•cÙŽ2NÏU™E>ïxQ¬Úö²8î¨bêgz<ø±O÷sCqcÌ? ˜ÄÿjæˆÎeâã‡ì‡Oæxµ^ŽeS)D€ßš }èüã9Õ~üóâ0·NºŠUq³IG2‡ÍV°H¸ÓºÓÛÜ6•L\–ðê³lÇ, Roâ+Ɖ3Þùm³â”ç¾<‡K“˜¯±¶ÝCM_SÕìÑÓðSNr¬ÍбÃêÁ”F«ÍfŒîË;ã©æ¬úäI[½«ð)ø1Ž«ûÙT,î²ø¿›-z#ì%2¨±Ö”r—ÆÝ*ÆO¯è½&…Y£‹¡ZP­¸·Kɨ0Û2êñÿ ~ìpE²ö{—~(«È쟇¶X­íNçŒý‡¿ÿñÞöÙNh¶¤õsÕ­rÎ0ô«ædÐEÅ-» d’uÑyíTqÊ:CÁÀŠ÷ ‚|‘GŒÄ™ŠŒ4‹k4Åê­5Ãy+ŠÉ®àG3ÑTt´ßù›xÈzjÕa ó‰X{ˆ«ÑUÖÄ ±˜,ü¬¤-ñ¬%ŸKxP4¸¯ÐÎDg²ÇoΗSP–%Üvø“{úc{ÜkA¶¾TÆ‘ï‚ï’•樋²â§†Â‹Ò²¾~㌇ž|œÙ>$kî„Wq”Þ>Xü¨èü*Ôu²¾}àH¹kòqß/!+¯¨Ö&'@¼·Ô–Ü û¬#–øçAõmTüdáÁñü¨Ñdzðc³t©m*¸6å(&‘9 (² ~4ô|EýUÙ ùÇZk…SÖñ (ÙŽ÷Ý%Z7‚‹|&&V”éÄqí¨*EUЮÖxüóä(‹íä>ï0ËdVITÄ™œï‘üNnôí`æbÍp²­Ê/øúžú(Ç]P}áó΃YiAéŠÎk+ðÚ©k½ÉVJªËÄû¶ä²2Gâ´®©«ê£:>±°Œ~§Æ‘õŸ‡{¤Q]` [ñ×›«"æ?2ÜöIQ–»¡ŠOXô¤G²õW%u$ýZE7MOøÇ>ó †ÐCgÐóTYU†*£¯*Ÿ¥ò’CT´Æ}·v&Ú7EMؤV}x_òü„º©>«}U}z¤nÛm¹[êк¯.¯¯0»ìÔ_¥Æë¾Ÿ[/c;ßûñDV¢öWÿH6–OnuJ¯Ò¿ª³:¦{7.rþ]:ø‘Ë}†œawƒ3›FoQE¿Á„V»£,„gFå­NÊ¥Ô_=„1Ä4it(³¼(mâ·C/*jÊâU_Çñà{|}5®¸J.ê=ÓS[·…G©ò0Õh•pgúëÍÆqw,sÌlâÜÝÃÿÈmb˜×xIsQÅ’«×²/פ\¸°#vxÏß*뺼¿6Ù^F꯾È9Úr3“Á´«º¡™d†›·0Â9Fš”xû ÍuÎ0LÆÀÛoêÔ|ï*|¿?Zda…váÞm'·êÒî)æºÞ¡m“Ȥp/3ÜÜM,÷`é|먮¥?ê ª/Nbt‰S(£ëËù¿öj%,!©¿¸òX™¼çéç&ñÕµÊjo±“8×ì þÆ—îáØqì¡èY×~j¸ÎH;¹TNúã(&_ð[¨èZ$:‹Pöç5šÀ8QI´Ç?oe®y z´½ÖUô«Wè-Ëa‡ˆ!ññÄòƒCóñ>¡™wáO7QEDICp.c:“È|ÿ$oA/Ùt™>I\J«NËx’]p>†ñIåÇ`Ç» ~„'g¯Mfœ_ý% «ã =J}a"ü3¢µ§~w+È—Qþê4 fÄÊÎd­!3ºÃ(iÁ¸ŽÔp%ŠÍD/(¡6ãlƒ…¹Ñœî§«ˆ ?ħ®FvaøÕPÜ¢BòwøG 0i=µ{UZðc ™~Æüwdã¹ÔiQÜ ŠÑ¬°þrÒrÆ“«aÜso`VMÁ‰\¥êË bƒ¸ŒÚ=Œ;V?ªã‘|òÞ¹W8ª•›ú«y2 ¼ª3±2GÖ…ü<¨áá…uYôõ·Ô>m¤R*>ùÿpõµÌ é„—8›©h©¨„Öþ,’šâ”F¿ª®+ë]TýÄ6•õ5šJÌ+èì‰`=G@„"º«º.ˆô®Kv{¯(ÂŒ©ÓÔøž'¶eæ¬Å+ÿ¨”éÿø`ΙøÇ½t*½˜ž‡()urûª\¿ÖÖÚïFb•`Œžªék¨|åT2Ý^ï×U½7 !üÃv×Òa©çʢϪ†°#Tsi°ëç3¬ó½–:LÄ?³v[qžŠÃƒ®éCz1HvL§tŸÀE. CÚþìÕILTFYJÄ?†Þ–‡€-*§ðõÎ/¢•ÞîIF‹³–“lj™E+}C£þª Žf6šÚDêrøß]¨p*ÉwUÍ*«‚õªÙÒ©âž÷ⱆ9{¨”ûÌÚØ†Öì£nSÏ5Ó„w×@¿ŠF=ð1T¢Ðî øa©íÿøÅÄæ*÷ç˜Ëª£²¢@½ÿßî¶Ž8>0Ù¦¬ý Jü¡Ñõ7KÀŒ3:<¤,æWxÒ'xfiXÒƒ`æ¸Rº­{*ȶI-·› øµÜGLj÷Xë[”À½º6ó®¥Fà$–¥~w7ëâ‹sóï þÿ^íºï:ìýh}qÜ¢–“ ý*ÉO⇯˜$1§³ösÉuä·¬þŽC÷8QšZÛ†¢C+ºN[ç¬"â=x ³»JtÍ¡ËJ²˜KŒ}Ã*èkÓ ‡%Î?ªh‚:‘᜙Î,~÷ câ†gO#«N§zF&TÏa9’¹ïCÅvì Føög·¬¸èWgDu*· ªÑpŒ,ø!áIð@¯‘›¿£^ª?÷ä6™Y6qªsµë8Â<:ƒaGiÁÌÉèÑÙ` ˆŠåÕNîž#èCaˆ*'ˆeÄb+ ’ÿÛ™¹\–ÕŒúÝWèR ÉÁÆûWñÁà ‡‚’ãŸI¤ŽN¼hwG¸RÓ[© ¢ˆã1ËÅÖêwÝàÇ#®DK®ÇÆž—ëÄu¼‚¶hCWA¼½ KQ>µ1ÂWï0¿XV.gƒ˜—5R ?’¨½ä3ˆøp˜;©‚èJ3‰ÎoQ]j€.ÏA«Ä|*¹êGý• 4ÃFöHÑ™óV•N—n‹¿1ŸkàGl]îýºÉbÊ3ÚdèÜœÏkF4]‰¿ÞLÝ‚Ä 4^Iô¦"0èzèaùpÜoÉ4ĶÌ:‰v¨ßíBîkèØxOýVsøÇ=/±Ù¢vjªªÎНj­ûnÄáö²³ÅølC˜a=»¸ºS9ñß·³RQ¿ûÙTÑnÝÿã:~|6Ü…Ìøß§Õ]t·ó½–:FÄc ¸ÚÄÍ„ç³7~žþMÝÓ1ÜÛqò2ÞW85*Ô6øëxj\ºÎÃ|³ŠÞùE³²ØMá E¨VªÈz8(GQgpÅ)¹É«c§k™:üwÕ´4w©Q*`Z™+p·9 al´¶Ú8}™¾á9¬ÎÎj™]½$9¥Šs¿žPa3’˜¿‡z®[8è—©Èèö1ŸõF‡ª‘ZÀî°¤¼0Ñ|¢ƒ8èßY뜓FzÔÄ«²° ‹v:Zÿâþ ½j¶¹ÌÑ­‚Á(÷(XÍW¨ çµÜ Ñ+a·IT{Xw"vµw¾·þôׯ†“od c^§K¹'€lÇtלÆÏànà~dЏ»£¯}4‰ñÏóé(¦„GJ éfu7P÷œÆ°®ÿ·_]t%°z?DZ¬œÞóäýqˆ^D²¶Z³í¯vç=ÐòdÞ6uxÑí0v»¥Þº¢Qþ~SZ«¯3¦Zvê¯ÖÛ[ì™V‘IÔGÁj§µ#ÿÔ<[‰idݹ‰Igˆ";Ä ±ÆZ€ ÖLÎíD[QC !~ܵöZÔæªýÜ}m‰LÏeNU–ØÔI"·~…Â3 ³žè(|Dà¬ôï£ûöo_§ÊÉ "àF²ñ“dÀÏQ‹4ym9\Ò4¬´:8³À½<òt°Ç|Ú*N àqÑDÆæ÷±ÊóÂoçáR¤ã^<z¸ÔJVþ"$©ìè” fÄÜy—9ÎI Äd™Nð56ùÑÞ§ûçö‹ÁÏéW/9Žò£Ç1ëÆ|ÿ( N ¹JÏ£s=ÆÀ]‘Óío®j©48äâÿ{¸RÁc©žŠJAÖïnµ:Ù9ßqÕòò›Ìª&F3OÿGl1G¼£Îµ:O†6 ÿ#Œ±²<ë½s®Cl«¨³SÌïýæ¤Å»ÝAô_*‹p”-`$ tZÜí¨è÷«Q›2Q zæù|É¡²‚[¤kÙÃЯ†Ê*êü£-ãÍá<–CŸª…v}ŒÊþŒ&;ZТýyŽ;‰êÈYØ‹[]CíñþÑÿ‘Ù¾‡ÞÔŽÄã*/¾û}"×fꯒèÇê«h£»Ü07T$=ÿ|=Žxõµ­°Çê,& Yú½ç¨'Ø/Deð1 õïѯ2yzb;;‰YY݇¨-D¿_S]̨áQ?Uô§CøÐäûìwWyªH ~ò Ý~ •CÐÄ‹À]A}@~g˜³C¬ÂUØ€|€Œû!³tèÖÈN—q8C]ùVü…ž"DõW>ðË¢)ªZ>5v›ƒ< œÁ¶°—ûûŽC”ïŬãîNé`Îb7g‘¹ØqÅ)!s€jSwMl^Âñ#¦œ"BfÛ~˜|v5°ËÀ)zÀ¤ò¡ÕÅâˆ&àL|–›U*îí5p…°ê+ßDo›AÍ~¢ôáë¼ âÄm³V:Y-¬ óxζÀÑC÷áGzª"Ñ1üþÑ”hr —äŸWÄ?[+.ïQ¬òÎF±Õo(¼%©g=Ošƒ>5g»'Ñ5ñÉÑ/©hL-ë[¸Ö晼¼¬óØ ìw7²Ç‰æàGmÐ#œÀq-Ī ~”£ë ®²]íi™äIâw|âø "tNOm‚öãóÚo¨·m+«ã§”Òoð?|©&.¤SƒAŸt74Ž{ô;ŸÀn¯ã á”¡†ì©ú¨ÊèÁt'—õ­Kß]éÑöcQ‘UàÆ…°ttÃÄàÇn]ÿã4õW>hN¶»þJüóì / %cße}ž¥ÿüûñæ‰8DíWD²Îj}w·Ôô«uz„z«3Ã?|ÁˈËx šžÉ0» ø59#{ð?âzçÑò±‡òPA[X½ ³˜DWã Ý7¡¡®C¯_<…|æu×u%Üô^f>ëq(NN&}‘U”P˽kÆ\ô,šëVî1•‘úÝwjªnÂk“ºJmØE“É΄Ã©iZëæܬÐɨ7Ë)º‰}Þù†d"›kÇ‘KÍOe, íkŒã‹Îú·o~$ãFÄë®JåÀ@uÈü¥Ç˨\ç&¨¨Õ¨¿ºå]…¯ÀÑ"%Üy£6Ãÿxâž§Ê¢).Ù úsº›º£ƒƒ¨ßêŽK×}Ip*ƒê„_Rýj©¿~õsÖ{zþ½xìJû²תòûç¶uК‡^Ø9ž’³ýÙUÌNe§¡ƒ°³î—%$ÎF=ÌVxy¢ýPô«ýödvA‰&ÒˆÁN5gƒÛŽá½ž!¯¼hÇn#™Aø³dkÄ qÿ<1g5Ü´'üãwûIHr²NXõÀÅtPtb´g°ÑÊ\ÅÎbé'2õ¡ðj¢¦ˆ(¾†`Ä Îg/‘ë*œ`ñù ‘ð/2•Dä_ç©Ø¸ˆfnì-¨G·ƒ=æýVÖÔMŽ66èP޵481›L9+Jî%âñK"vwf?¨ŸÜn5œ¹DʦðŸ³ÄzÜŠAÄAÏÞ‹Ñyª©U Ýä1nò)ú'3Š­VÚÌòŽ«¹]œ™ŒäHJ‘1©ü ŒMœÏH4^Ju™mõDêÏûVùOˆ|AÖ_-§+¬,®QL5™z…·0¬^èü#‰ˆaЯBS1ó•­ ªÝqŽz?Ø\ÆU—j„Þ;7àò„³2:ËÅRøÇ(¢Fré]Œ·@;Zã‚!̧rÖP9T™lý ×ë<þ¾ú†/õWëwëÒ?Ø ¦Uuè%^mäÈ=ýçEt)}R—E™H>‚þ:dð?ö‘“ç×EÕ\êww7‡/Tƒ5 ŠgÒ—¸’9xw!í©°}G/\tñ•ðˆº˜²Šá‚ôF@¿š 2pä­cß]•‘ösðh1rû¡T _mÒ~ª§Þ€™zÑ+ð‡ÔUaÿ’(÷{Pßá\Üa-|°Ÿ~7Þï"˜û”µ[›:-?øÇVÜ”zŒzCÿù:4œÌÔŸÓŸ¨ÇÊiÂSs¶‚êÝM ruö/Y¦ò‰ Þñ"Yiì!0¿bt¥Ä½z,çP§öU¦~·¼á }m“›Š©nìòQ‡WCÌÿêçûÔÉÝÃ}1ªˆ˜ï½¸å­_cÔ ~%GÙ¯òpÍÎQ·Ð‚þÈšæûŸ|¤‚÷Ñ>§; ýƒÚÝÊüª#š»ÜƒÁà2jUéݾÙ;h¯uËÉL7@GŽ6ú@-Mý…n<(þ^×4.÷}sGê<ÕSo?®Y¬ÖÒ>—H—úÝ´²gó€w¾¢þj2“ýÉXr±–·êœTZíýL2TµÓ¦¼»±;Œ;—{¸¹¡c»5µY‰©ÀÈFÿ`|šð¨-”%®yø¿÷â”+…°oG4ô«üÞëøs³øÅZo-µã8õœ+ô{$`”'.?úÏ#Ø7­ÖG×ÙŸ.³ÕÖé)àˆ¤–é îÇX{¬[¤œì°•ø'ý²¸™5È?¡ÓË]Tçì·&8ÑÈ!Á=zÃAz„?®€“ Ä[âß2ØË8¬5~r¸ØN>ò‚ŸN†éÔEÊñ|ìµ îr…ªÈ™hXѰ ”&‡Ü'žíåHÜ‚Íxk—ƒ½6Û­<ò£¸,º ƒùªá¬òÂtýMåÒ¥ö¡÷<ã3º’ëÌ…™4s3bkg=zP]°ëDàtþúÕ}Tý}¸£TTžO8ûàaô¸!=úU±ŒyßÕÛ®IJÕHNø@¼ýDaƒr“XBäŽNdvSºŠ+5\z*Ï‚Aõñï°Ö:©ùÄhðî°Ÿ·dç-ÈÞr ]Lysk0é"˜y§2øQžU”~e[©á3dJº<Ú Oyjßþàwb¨qª)?KCd]†ÿñ’޲f\™|â3ð£¨J¥r9—­À½C•í\ƒ~²šüfüxÎ]žŒ|»ÊDa´˜ÔúþyR}U5‚ŸôWW‰nùt µ@¼w.º[ŠÛoɦºÏ£_]£¢ þGU_»pYÓý¬Ü 颋­[ áì„/äÃ?|ÖXð£¬ÄªývÈI¶Eγ¶; ü(ÃQ$Åé8ÿøUŸ„Äu? Nûpí¨óÔ_ùPs—Q§ç \æºhçû\f´ÈL¬÷èWMP6s«'ôîF¿§èwF¿Êg’¸àÇŸ¡ã;#n€§,Q¯aHùÙ¥ ¨‘HÀþWcP ¨/2“:I†2Z Ñ÷õPê™ÚéNô¹ô„T5¿¸P[ߔ«^…S1•ª¯œzW‡ÚE1Ç{¸uÉ4®Â$Ÿ „íQ¹&ûÕn=™qjšuºÚ•ÛýɇøªãºÛãUD5—87ÝáQ¾jŽÌ&z‰Þó·ßºãxxB r–Bê³£:À ZÓïAO¢NC¿ùÎ]_xH*üî.pˆyô ÐXMÉ©ß̓Žùmýî«;àåà^è‰[ÙJnÒ…Üóð8öÓ©ßÚ¤s4UÝÍÝ1ÜéÝÓè=7î¨xë¹™a2Õì( ?®ùØ ¨£õúÿú‹»®tßTF9èW9¼çéç>< þùL;¾S×¹N½UFyæ*AõnT[Ù-ç'ëw“XÎþõWéesñˆê«‘ö\Ë%2ŠN~g/û—üÈ¥ zÖ>8Õѯ~#ã#W‰EÔïNp’Ñs6WÔýðÐÇÙA©$ÿ킵Ï*-î“¿dmEIDMGmÙ_¬$¿±ÕHXhkÙO>†Ð!8—Éœ±Î:±Œ·~!qð8sü@xzõ@F"{®ÇN#ƒÀ¥8òS°ã²RS­uý*<šÄÍ?*ªÎŒ‡ÄHõ‰l“@ƒîNû`F¬ãüÿhÈç_Ã|˜ãÆ(EíÌD"^µ”¿Vr†,q?÷SnüsŸŒùÌÕÆÎAÞ>F”µ7þÇ~+<}ÈÁ§%dø1QŸ~¡k ¹û0j®ÉÃ"“ó⟗ÁµËZâøâ„U€yg;d<ꗆƅ܆tÂM}jžgæ5É*ñçº7ó 6¼•þÁ àGoÕÌ7È8 üH®ªš8½IЯ–©ÈDÏY ANfy ­æ1™drU/ùSÀPþ¯ÊÛ¿Ñÿ1ˆ}%®²'Sœà…àGyô¥|øçGuy*EÓRÔ‡Hp„ŠÎLOÁ(éòj°øúÄÌd_ÕqôËÅsáA¼%óÝÿK÷ö;=Ñü޳‚êÖ躞È^4¶R8/ïá3ÃPü Èö¸“ßNq8û—T§Š[¡ú|†«¥s±ÕU}Å$ºû)Ìp”²ºº4Km0aì&lé,9SJçÞwã ©XoïÈ#*ûógj…Þ@ÿùEzàÞ‚~•¾ðN?Q—ر*Ⱦ3¹ÿ£ˆŽEýUI‘Ê;^R+§=ä(BÅmfµ–;bˆj¡¯ëA&4Ž~Ô¦Öøuðãg™­øõéõ>F>3 ÄÌ«/€œqUéoð£„ÕÛ9/ÓsÎBÁ› ɺüÝì社ڤ+➟‚/Ü‚”ÅÿP A7Ì8T‘÷ý‹¨IdEÅRïüö°ÿUêf[°úr©8ÜõÍé±oÿèAÿ E¥òcjáF1jR?нKêŠBb–6D#nµ.ZÉÅ¢ý\âÖ&|íèª!Ží(8Ä%bD8NKÙƒ£‰ä!11û_­³ˆ½ Яv‘‡_&r½„ø©«äÒ‡ÁЈD¢%œ‰ˆÁÖïî¶ÞCÌ­Ì>‰©‰¬~ðÛÌh¯ŒCŽy™qcÉZ£hMó¨yNï`fèçü†Ù˜ÁÿÈ‚£Ü Õ·9æ$T…ªj=µ»q)îë=þMN±Ù P²¿¿>G\-ì<àä Æ)¦%àïßù½pŒV–¿„Šà_P(²—„– Á¹Ydpd³\BUqÎw,_/0î$Ì¿¿ñ?e0ücš¸EõLbó 4³ÓpºR8>Møä úϵ•ÌYŠÇ§ŸÎS¿›PíGA›‰k4”~Âê(æ¹É˜ŸÂ&€HÉA«K\ùKäŸe>¼äÀ ©¼ÝCô`Ï.êwñ6¢«ùpÀú8%ÈϰëFB“„ÊÝfDûãd÷QqUöâ)…×ÕqÍ ¼»t^úÏÃÉÊQePÝ?†§¦b5ú•¦³® £WØ?ãþL[´ñõä™Á—Óø-¿ª\T+tT¿»„úݲÔp[äØw©0ËÊÕÖ;u5ˆý÷˜°Äü»¸Õ|¦nw#ðc nwt˜ÃMp'5ß^Ý‘"5µE/¸u©0¨€¶¶œÝ—kö*¤ãí(øQÉ„r?Ô¿Ðÿ×|fo• ìŸ8•}N2ÃÂVЯÐ^ÄÊa¦> (>FvuˆaþÇ-ÝüHîìðtU<'^¦±G ]q*Ñ>)Ú]Ü« ßìŸØÞèÜ’EÔkà>U†}rS]< Ç£6ܹÍYó’ýÛŸ °ÿz::WS%üŒu؉}¦3ª©ÔVv ¼Ç»Ý:ê$ ©‹nT@E ¶Q£<‚ºâ¶æŽ.…«?• ¶ÑtaÆ¢Ÿ$ ìhƒÚd:èQ0íDªš@U0. þê™õû—¤æ^èÁ=ÙLÆ4c@£iœ©‚ n÷sßÝÒþ1D*ìö5£ééü¢#1VÔø¨ÔÞTTáÄÃo/ÈéµÅnÛyw4«ÞÝÏà&t×uþáç”vÞÙÓü»H>¸²Øùѯ"Ùm,õ“û—d¶;½D4ë²)õWÛà»­NZÑ‹þó•va;±÷z73Ï¿‡­Ð/Òàx/ÑÌ‹E|{™“„5gtõÄd;\ˆF\LŸ}(±†X¹„ú«-äÏ)T[²€üì d4Q£9+®‚¢ý¯B³ÉZ1… y5YþfâþE¢õ/ppzÏØôë46ŽÅ4xEè`ñc§õX„“·9sѾF£÷—$§™ˆ7‘š~«`Ós¼ðN¨oÓ‰ß]‚Å"ާG²1ZÎ"~XK70(/Ùã,ð£²:ÈçD¿Ïÿ=ûw%«ˆï]eìÄ(䣨˜¾êPòòú9ð6•¦µ<=–ºK-×K<šn œ§ž`¦ÈéD âÊ,°9é8žÐj6øñ–ãê ~LqCÃëKŠ½â“ºW(¡no[Á{ÿQ’ì/àÉ +Çm%¥ŠzèêéÌEÕÍ~t¶¥²8G9Ž›žº¨é¸½OØw¼YäðêŠúê|ιojÿ5f}»7þ¹Ç>LoÆqMƒ£Õ'â×B':N}¨¡5œî¤S꣨M¡‰ø‹Q. ~*dŸàX¼7…ÜÅxÂÈsvÎm«ÃšÐ¸/-PÙí„n¢¶bš÷xOX‡8]2‚Tž_•Ítðc†©k^Q1Š'ŠÜbתãx\/©3ìß>À ÕQ-SU@£JC~°‹ç=úSzˆü¬âþT˜·”u~0l þQ¢"½ÙÙã õW;í=Ö['©(ïds†Ùyí öôþñGÑœü4dêûJº“cÛÓElž"ÊÐ=XF´ ¡~µ'2‰ð¨[ù“DµÆ[é%<ÚÓ=Ö@Ùü¨.’‹uB|;O·3ž_‡’!Ï{vÃqo7õ»Õ¸Qlq ŠzöO”ÁâÇ*듈~”GÇI FkÙà[ÃИ’pW_"Þ~%ÿoNtž®´ V¿Êìt'Jzðc/,&-G;ˆH‹üq†ê ~쎃¢ÇˆE‹xW.1ÃúQeÜ5We;±|upiA£¸\?ùÍHèÑáQƒ–3bbz&¿€ ›àvÁÓr©¨àÅ çóÔ|òб+¿q›µÒ—ã3u3ÝÙ1u¯¸Ôõ鈼,(+I¾v&ÿòb8‹Å(Îw'\ÜDË£`ÛdâWo~Ò‡¦*ß?Q»Ÿ13¢²á³7°+ÌsYÐ9aìöú¯k[ËîŠÿÑ—â Q­)üb2ç­8äÿ¸MÖЧ½gÿÄú,ÉÓ)·æ=L`¶8ïî'IÃ~#•9ÎR ÷¢ïs™™NÂÂ:R.üä‰Tûl7ç=µ^øç³©Þõ!#?~tQ~ÜCã]•^ö)Ñé¶lÎT  9ûríÕ‰ñä7Qô =g˜á U‡ÏsT’á0„ƒ+Ä%?,ó8ßw8Žé`<ïad Ñ53‚I«Ñ¯¦éVj•ÿþ%yÙ×í>NÅÀ 2þð à4ØæŸÌ0Ü.UCT,g·rÛcaZ™é*Šš{[NdW¯-T}ÿžÀ?мh ýðÂ=ýç¾0ÅTÃùÀ_îák%qWroÇ jžèW¸ò©ZKfR)ž3‡ãâz´WÓœCø_ü[Ã7"zÏLTøGHb^P|AgÄR;¡SÛ¹I¥­Ç {ì*mça§ÜvöO¼Ô/ýðgÙ¬ªô#CMÅó£®ðôÁIöT+5M¶Î»Î;ëòÍ?d‰G±PÈÇQߺL,÷xþ`j›¦±{bO¬Q!Ô¯ŽáŸ—‡p?&ã íåLªj‘ÛöÀÿð(%È#j°«oö¿ œE~3!ïË ìµKŒCÃÜŠ¶æyžÞNpD³Òò“Û~"¯¯/¿Ëzž×ñ}Îçâ››­”Tk=µÉËө߉—™ðMÆ¡T„…Õ†é†SKq8þÑ<˜³ØÖÈÌ:ðîpj¤'Ôð_bñ8DäÔ÷ÖÄ_˜Aƒê-NÿãYEì/ÄûðUxÔEfv“NOÔX…A1é®P+ÍFz9š¢_ ¢ª¸¿z¬*Êsž{ÓõÍ2a'äÇ¢*nµ< ˜ÊNLš§ŸË*z!þÇ}ž†´…ÝnCë:ü  eèö’çv\GeMåìçá5D<£¨“-é ,À1Ô³ô\Uí@±ßAõnâêhÜš5DÅhacèΛˆkš=ÿRi¾ñ ÓàŸÏk}ÈŸr«Õd3UjžÛQ}™j³mäùmѬž‚Gáiá·QÍFQ›Þ— Ô7äø¦~·¢5Ź gþBÅq•N¶‚N ›ä±} ýëžjÛë&Š»;9ý’Nò4Œz‰ciG¶P\M”™ÄZ1Ò{þÖ°btá:¬Ól* Ü·»vÛ°gân½_M¯K³Œýw#ð¬Ä>tŠ¿1¿ižIß`eúRá8m÷â‡b'¥‰"wir žÿQƒJÝ•ìr“Ä ïžó¨Æ.XØ•÷õ»‰ù”Ú×hÕîÑ ë« ¢‰ÿ ü¸åŠøÿ!­ÊÿñþWaèËžeÇewܽvÿœwèW_aŸõ‹k÷·Ë7Ø×©àt£`ì8£IÑ–æØx*nd*S*áÐ/³‹ØûÛ;oð}¨‘ŠMÅmùR´³Åiú—%ãàIOý©¶m`ø@ÿnÄ[ÖlöO¼IäJ„;Â=˜\å ’h¨8K,»Î*øÒϨôÍ3~V¨¿êʳ?ª²ÃsöñüììCå=ôÿõ/\ñ­¯î³ë?Ç×®-Öd; ϯÝI¥”§‡ì®‹]rm‹=Üë±Ö‰Ÿ:–ØV5gøQ…XPœ·wÛ=ì"Vt4¡þÏ?/ü“ýéÅ =ºÍjÎùôœEK$].ZŠ¢ú•ñ®7ÕËøçÍÄEÜóŒv†èš\µ$§˜,Πp{ú?ÆÂ@šðLßõfâùµÉ|ï0³éàÇbüŸ2!úµ;ij °™¸üËI¢À‹`g8ËJ ÚÜ%6D掟»ÍÇþW£È¿Ó¡_]&ξ'Þw`îˈ¦½œ6ÁŒ˜Å«j~œÝR¢QýN]ˆÊËÙDÖš¸Âq€öÁkîÀ$®Èüb¢ïhPgp•«Ÿ–x?Õ63nI"®ÂoÇe·$ÿX¡šSïÙ¿ý ç¡?²ŸŸn`ÿÄÀO‡õŒ~„ç×c>.õ˜W·x¾~èìŸøÈ™NÿàrÜÒüËyrØ…8I餫-:·fÛ*â¬Ó@¯VT\•Ãß<ŠÿE~9P àH#èx8è0˜§É3¼òv–¬6†Šâl±×N¶ˆnÌ+'¹îYð'©ZI<ªŽ>_t)“j¤á:šNWêÚáŸoUqð?ÚˆçÿàéíðÖð=äØgáp?ö ­ß²{[4’óô\UŠ.rð*Ã.ü~?ÝNyž?Ø*~Läùµ•XqÏd?Ð;ŠS"ÝÅÝàŸìC¿Æ3g/à|Eé)C*ã¯_ÅÄ??Êgo‘ÅíŸ8NT¤Í¥àŸÓI$÷<¿bªß6Ë}ˆnû8Ô9=aÿ—“ÔïÞ%ÚÏcã¥p©ì¶JUÿ¦þ*•UÚžBI~åF‡;ËYžH‡Å"~ö|É:T“žîtàG;vùð< ¤9õVñ Žâè•K#½·.;Ý]… †E_Û¥ÊËahŠ[ñ)>ÀÚ¶³“åMêN¢Ùsç2õc\‘A<·ü,wÊ”®º(ɨ÷ë½S–Xœdììл*-þG ºxò¹ËRwµý+>h¾Žj®É\¨àQ¤«:gFè6(ÊÉTbE)ÔÊ€ý¯>£_?áàų ^·3;¢Û˜\‰ÙôvvKwf<–:´;:¬+7|Ô|£IT 'z)+©7ÿX3Þð¿øâž+‘uÖ;~D«ÒÝOï›~ðâ©k»õ§Õ)å\f¿OýîsW;&;¸¿³ðüó€.Å ðÝÓXmœ9¢ŽheÙB±OÛíNôæ}ØÿjþùÏõÔq÷% ë]ƒ‹þ§8C?P7' nÕ&ž-6”j©!Ü¿ý‘µÆj/^P‰´=ú‘35yeÙ¥k'1å%Õ±s¨“©OÅx©ìbôÝ!þÏ7Eœ~ìŸ8•¸ºõ~ üã™o("JE´œh°‘6(nÓÉv©Võ®á FòülU·äõ»‘É*§áä§{ݳ{o|rÒ Ä‹ÏDì¦d㫈⽜ºÁŒX ü¸ŽïyvÚ0–äú¯©¥_ÌÝ:‚œyUŽÇá™ÿ)8J1Ë*øƒ1ÏÓÿQˆ÷w&ާæ7 Üh,‡ÀmGX~„Còì廋ØÛ$ýHÿ¹_û—ìçùQ5A˜Ô_õ¡[òï¯Åq}侯OýÕLá&m ‹ó¨vžžþ* pEòÆãAðPì×¹(¨¾j ûÈ ³êÿÉšüÆ‘ÆÔÉùû j«¿?òwÏÊÉMéýßôPýëÊÔ·ûŠ. Z¢óuÕãO~£~DYúÏ=»ŽG0Éàƒ‰öç9îðàÇi¼xºê'Þ8³­DöC:”[ÓÁ~,;NœÎÍY+†úuŽï–ì xšçÞ§ · =â³AM_ðåϯ­¥|‰1¬ï×ÎöÓ*J‡ó¯ß­DÌM­[¡¸Gfÿ’óDú(î½ R9}KÕ‡xöÓòìÿ¥tD½üØ!SÚ¿ÄÃ?|¨ßõì5%ë†ÚÉîí“uWu_'sïáùçIÙ¯p+3ßGÇ#Üî?ùäÉÌ0 ûu-fÿÄ€ê•ìŸ8—ëQõЍä%“éj|®û3(Ís›ÁÊÑOÒšzÙ²xó=ÍÔ¿Ù°…ˆìO–‚«—Y ñÞ"ͬ^ÎkðVà§\Q9©Ê¥F±‹ÊÎÚ˜ÆÎÝ Üîìò,n˯  u£Þ.ºm:ž&ÓÉ»ª×°xv*;p'äU)Èñ:éî tŸ¯?òáW\“Ãh¨â¢Ï=­ñU7©§j 7Ž~ed.¿Ù7‚ÝßÙÊ󣆒±$C¶éZî9æW£9}—é`oÜíè?ïBUïÎæ;˜‰›óFõæ^/Et€{+GÄqï¡ÿ¯¿xèÊöͳ ¢Yµ~ØýÜTŒµßZMÿGqçÄÿø×]Áð8è Ù¿äçv‡LÈþ%¨J(dkøÇq»-®ü}'Ž~¬µýlÏ!ÿJÞ†ˆ9ì;±ƒ:~†§|-åv1i~„Œœ±VYEQ[Ös÷u!+ß +­F†× q…85ON…‡v¦¦+ã7{úüx¦ÙÀ…àÇ+ÔôY°‚(Yãé҈½ó–w€yGÛî'ûì1ϵ¢s= ¶&y$«Ë×g ¸”’¬l3þù´œÞ¨o3™óh§]0#–rÆÙ»—Ï£y¥3ûÁGÒ“=ŽGÏ)¥–À;ƒçÁŽs SY±ƒ=œƒ>Úk®ßì”Ì œ¨3Hƒ—ý8òœÊ«Hý jmÃàZzö/ÙÁF{'·ˆüNà§kxÆ?dMu|q‡´š…_ä"ªyöÍÿ ÿèµ1éÅ(q•X_—<üGpžë^ÿ¦Ž×å ðã“+þùX¼÷¾8æ9án{¹ŸWÈÒàI}*²Bé¤ðê9Ì«>ÿþ¼|"ä¦s#»sÚºèKÐ?Ø“ó\˜ £ª œhѦjM1ü„ý:±%9½xé¾¾¢SŸÕ-gnFc5„úÝÀ;§%²=5mp^×ñÙ³êýçÙ8JÆ;Ýÿü1ÝtϘaGüóyÄ{?|ô“tT~àtOëÈwW¥ý@T„½}‘½ÐÃ*’‡¢þj±ÿ8„óÚ}þ…Ò<§£%ZûaøGzê—#ÂGÂçvÉ,Î÷k±›Èÿ¸ÁY)O_‡ç)‰K¨^¡›« øç ©¾ÊnÒ»73ÒFÅ8t@Σ2z9Øš \ÎþWûÒÚÑ› ↥U+sªœgÿĈ¦¶æ±ŠÿÑØŠÈ“ú€PÛqåƒê ðÈ?^”¿’•&‘¿‘A[ìȸUµš;‰Pf¶ˆîìæ^QtáóÏo³OKñýê/xÂIbgJrŠœøç‰R—ÑeæÁD+²#Jdñ‰ü㥡ì¼4,ßóDuf‡¶=M5÷Ï\ðmp¤ˆðT¯_í²Š°¦àŸ‡a¿ÄÉ8§Ù¨ûíM–“ñÂCú§ú«ÚÚ2|b'ì|ßkAŽ•¬`&¨N9Pž+äWˆ­¯’£þ|ªâÁ¹jë¦Vâ§ûI•ù.L¶>ô‹‰½ò½8»Ý4è2¾ó%ê¬10‰›ø×'襆³âYe±V†¬"˜õs^gA¦qú6ìDiýÙkú£æX«"ó±v%”hõA±Ž;ß\× ªŠïð°³n0 Þİþ¼Í+±ÿ#ÈaºÓã#1“2‚ÁÃ7À¯çGu—<ñ ù@Jÿ;ðQû“ÛÀÊУùÇ®³(Q}ú—Ü1ê2Å:³ñèÞêÕ/Ô-Òa°©²•¸©…µÙèÕ‚8 >Ìt\êùèYA²jÓý|ÁdŒáTÃ-§þ<„úóÆŸpþ¥¨<ù:Ô–Þ0õaJèz¿)ød¥ÜË#ì}^…¹®ˆÕ/OÎåÇüÚ(ØgkWY-t/„墶ÑBõZ³Ã0÷›Cäõ˜#“:ŒH¾q>Ä‹ü#€ÕFƒXÝ ãŸÏ\Mî6ÐÍð'gI!‹ŠEΛÛP¯½#ÿâlÄtD«u¼à «º~Ì©tvwóøPÓïò€H¤?øU-¢0úU rîoúÝüË)£½ çrý•ÃZu²»Ë¿´ê?ú¡à]žuËi²×øØÑøƒçx¡Sø¢Ê|^5¸Ÿðú'†ØÊsféq@©Z’³dæ¬&à-ó`_ËÞØý$ v–Zö$HSªä`+ïéűI´‹Êþ0;,¯Žãéý(ú š­àrKÉ”¬þ»5PľG}™Šéâ·a§Ó“´ÁR¶Àާ UAÙK<ü!ÿH ^ŸÜ©:ŠÒøÆ ”©ÁˆÊŠqWƤÂl<ùÇ*úï*¬îN<_ë»—Íè bãÿÁŒ’ïþB?ߪ ¥Ÿõ!`r­¸";úÝ͆Aÿ«›ÄÏÌš¥®® £(ýw+ãV3]Ïh._¡ß]ZW%ê1ª3öÕ̤t,±ò… lîøÀ­tß°;×ˬ¤T—èEÈò¢²Ò ž˜œÓU&>…ÀîÔ‚¯èŒb·6øÕX”¬ ckÌ­pG³Èà’Ñq+&§™Rüî¼ÚfÊ(ÍêTfõ»¼&Ëâá®Ó]å*öKSXšë|‚Å?>6ú¦ÂöÖf3Xù‹d=ˆ|`®òŠñbŒs»á? 8ꯀ"¾&–Üd¤K[ sr ïXí×?Á¸™måks’Q¥zVÙ L wç²ÓÄPçPVœXjN3ý áÏ¤ÚÆ^´™áÎ;›}ìuíeí©¸Þ+|R2X•LF&S§–Dpoí¼è¿V³ç<€ÿàA¶äŠëíŒÓmUnü“ÿ4æò-PKh•µWê\Ç ˆÛ¶rj5=ùGcú'Þÿ¥E=”²è¯ =ÊÏLÔ3êEµ®:FQE1Tk®SË©¹iŸµÉeÚÀ\ ÓN­_#•éZ†åÔ–N„?ŸɌ戲^© îc[¶ë'sG“W þÜŸ'ý l2¶¯=ó?²GŠ?ÏCýÇ)aõ!<‚Mß ú€µ"V_ìhØßÚd‹±Íyô Ÿ^óZ%#úÝ@QK˜_ކ/.AÖ0+Ÿ›rÌå 'Ð c9ìÃhmðOVl£-Ä_ÔåÙ~@âAÖÕá IOT¢ÒÍ\ó^4 w°Ðû±ú©Ñ9F”Á¾´ÕQ ²Z7r¢‚d@ñ ãȈa“‘#ÌG§“ÈÚš3zÄÁf,wò9µOá<;•Z!N_ƒ×ïâu›{Ùžk3±bµuCŒ/ˆè[ƒíŸÅ\!ƒ+º\–è/üúóüô/™ë4 ã žsžf#HõDØï© 7©¸â`~­fżä8dd/uílÚñïf ük«5ÔD,}Àǯñ3QlÇzÕE\’ùµ° ÌìÆ+xá\Ʋ¤ÄàW±©ºQDvçµëa®Ø ¾¢>g_ ¯aå–?(K¢¿z,MúÏF:Š.ªÑ
    ¯½7€—õ€á­ ÷SÓÃY¯Ï™ ~u‡û˜n£“Ro~˜95‡@‹‚áSêà3+Êt M‚n)9™=zjíL¨õ7Îì.HaW#ot‡ðF‹~Ì?7È? ÁRØíà}Òêõkà+–ágÒÀÉo¿réa )iÕåððÅA3 É#¼S“éŸhͯfY¥SàWÕa@Þ£Ÿ²øêTÞoWœÁYg&³ÉCµf51Þy‚-©¸¦ûÊO¼Íò&ók‡¡†I&€›e›ÓäñE'øíÌ ¯§EÄ{l!ÂNyûÎ3/1pŠ–6u·hA¯½VÔ˜¼ŽøÇ¿û›ð罄]ÎîŽÕ;mYfìÒPqÛøZÂ3ùƒÑй:S~·@˜/Ë1püÇ18ãeäï°Ä£AJÓc§®“¤F>:YÓy¢ç»Îg8Ì"Îow(•Ñï>€?^·+Oy ðÑ)°ü©Áí÷£Š&wφñÐÿT¿ÛM[Š•¬ ëqü* ×<Œ»hÕ«k]¤2e3ÖûŸqƒúó V=µõ¿ â=)@¾6•w¥Lϧ³ò8©/&O ©“ÐäŸävCðHwÉ? „«¿:¦ü©•‚ϱÉáxŽO–åÂ^ÿ•~MÖõIë)¢¡ê†}‘ϼÅßxÕçŽ_s¾¹Îc³ÅV*SŹþcŒlJæ– {ÿ;š_oò‘¦ü/£‘Ÿù–Xý°l„U{ ïs”“(K”œD;ùCw…6ê*Vûóóù©v¨±—ãP‡Xž áÖ¬fZ2ßÉ9G…ÿÇ&22ËžâÞú«üêGQ6° Ÿÿ…¨ø2ñô¦¥‡ Ž zÕ›ücŠy/Ðÿ±ÿQœNï÷ø¼Þ2 ʆJègg”úF”Àïë°emêí“à?âàÑ®Qa‘þüžYÝx ~UЬ¡×¹ýURã,øê^=™êYÜ$<ÈÙ¾¶"«(§²‡ÕÖ­˜n_”Ÿ^iàÏŸÑ?±®ùeÃBôWÓáî³Ùð„‹ÏÌ¢$RsržDùÀ\õßÉŠ.Ò¹ý 5òué Ò’ŠóFôÓKPØ,C­#þW·`„ü©‰MÿݱΛÛùQ·á삈Ê’Uçä6€+]¿ºj´¤Žð„Lo{ô»™ìµÌz°êVßøöœ`¹ýn1Ãy½—”›ZaÞø®ìÌS ž‚Á诚Ñ1qˆyeD&€ãžœ§Gæ+ú«d0»ËGàWA£³3ëº>ˆót¡¨¯”±Úï°Q#±é¸WþFcû|*wQ›’“Þ\ÍZöŠö$ö|d%÷Tô/ †ÿp§~°5XJe¦ºm׉Pþ'üÇU[ÒïfÄVª8*7œGÿ _<·¦þ#;ý¯î«‹5d`cô¾RÔçJC%ú ù¿_:óFˆF •õÎâµz^­.wÌ Úk¥´ªÇ/ÎLKþÑ‹Õ ˜NŸ%DTµ–˸¥TQIÌR¿þý–þÿo*'•"â ¶e+ÙÌp|àD5õqä±T ùÓ®Žþ‰¹DD•ØßPím ÈÉC<ÑFÖ|K¬ü;¶ÆêŸû„Øü{L⨓(¦§þiÿ’íJ ¢ú«œ\Z"§¹XÒbprÖôôD²!±œÕAq+ùÑðœbúDm¼ó­ø~O®¯«kãñmÁ»N`ë3ð¿éd"9A® ¾¬—òll èÕ%‡')+E¨à{ek©f'SLN™ü*#ò4bÙ8x£ôøO?ª5Ê·p_ønçx{´GTÐ’„³ËÌ?/ÀYŗ˸ž/œ_W~-Å“¼FÝ•Tò*Qn/TÌñçõõÄ}ÅaHêéAáø¯6wúËäpy«ûaxykþàXüEêÒªP­ð_àG¶ýÕr¹[TñÅ—¥´?ÔŸ×R;£¿ê>+@¾—=ÑW­ÁãTíol´0î‚Ú'…?/GÞT¡÷Ä¿ÔÆ‹nE[å+Gµ§®[àø*·@NÙ=×Y™Ø¸/­~ä‡eaã–:„ʺÑð¿«MiDƒÅHêð›%AΞ˼F_™È£¿:_è§•@`ƒt&b'sÓù£©±ÛHK¿’“Xèöìk7vX…XЋ»uJÞá4“‚Ù}¿Å"×7ü}Î/Ÿ!:Šÿ˜N¿v«–$/–0†ý3|ÊV2aÆËL§ÿ•ÝÈCNâþ*¯s½âJu†Þ ëæÈ?>ékÐ<1æÃ'Ô€™xDÿ’rfUr¤ièwËà›¦˜‡ð Ñ ä4.à9+Ê6b•s{UÐâ\'“¼G4v^6лÓœçÌâÚk›‹˜ñwÃÑ÷¡™Ñ^{Ý^ Ý@R3wÖš?XHÑKLrî À“WŒLá ï~T|ðBú_µ ÿñ`ú·g‚ÿ0ígÌßáå3ƒ_µ¢j~´\mÎ5 ‰qcfG9°¹hr£ó)|C'ÐqàW±v1èXwÎèdoÉ•í¡ ðt3µ„Á¯â€L¿JhOL’ž.”i¨6Ø…ÅÔ†«¹pÀð‹×¶XßõžNª´vt>ü'b `þy¦;ÝW'9jÈîÚ²0çé«ò^iÁ|¶ ¿´hj¥ýk’#–Ô;‰sê3uºº¹_LrѪh³Ô‚¿8°Œ@?Þ£ÁØ÷ôÔú•ùZjîØn¦G õÄØHêww£S.#ÁV#%wL&kp×»ˆ­Ø“×DéS±gÈj<¿›éñÅ»kóéŸ8?t‚y–ðÈÉG=vë)¶â? ¬¶?¨úSÿÁô òÙ›‚©–hfÆâ}½©z™²”Ž|æ"öö-» þàâ ÚHç[þksàª]#qÇ÷ŒÄŸX½hçï5—ëñ&þüéyv}ÿWXü¡d‹`Í@úïæãóg‘Tft0è–~7&jœ˜0üVý`<0tè9EoÎÒòùµ(ᬸ[Ù¬ù𹚜Ç]üÊ»Üßÿà+›¬¯g¤¦‡ܬXÿñün5Z‰ŒøùáâWŸÐïîãá^zâ1*’ýíç>Î!¾‡ÒŸ¹N¥±v¯±Ö«É’ò…\dMk¾pR™‹þWÂ_Ku¨„?ó¦Öù üF\òWD¾¹QÉ֋ɶ³ÕÜ©ž» GëÆYÀ¢*ä9}Ä-læê®ÞÍíÂ~¶`s°…EÈVJÒäü3…øy¹ùœŸïÏüÁx„\DÙ'¥‡15š‡Þ] Ýo¤/ó?šrç> ?âó Á<×1I%kÑ?ñõÓÇðµÈ¢»Hì‘•þ‰š ÿq^*Iüj½HI¢'¬ºŠÂ¬¹ŸøÙÏN½yRjI SÉùƒAüyYªÈ9ò¥dR9é!¼K–Ù÷ØSI¢ÎÓ+ä…»›/›3sk<ü¹7'RW…΂wèyˆù¹ò«h%fr"ñEEÀãú~ç?š)]´;D‰6Êꨮ0•}1¯ê£ßjHíGt{çW•þ‰É$š‚’å2£ã Û‘=6B#’ýÕDçþ6Ñ73^ '±“MF‡Ÿg¸£ÚG*3èìøLì7ó 5“ߌþä£äQs•1˜H)9Cijy¥œîôßPòLDG5›^$ y×.™Ì~ˆî÷ P |1—˜>öÚÔ¦‡G:Cþ/WØÈoƖè…®A|ø‘†h»Â<ƒÿoc+yÈ þú¤4JS¾ÿë»_ûýžíŽ2K-†þ*D]äè¢õýnAú·«è¯„òkêä$Jm”ðámÏ®7eþÇ3êW(Ï´,èw›PÿQMÍüKûLÄ9cUˆ¤G°âh±S<¤+N<ž?²!¢¾XIF~·r@ñ§±‚á?¶€Ú$"'õbâÇf2ˆ`<ÔoüùªÚs‹ä‘Øcvm õç³±Gû°—±‡'±ªÁäaüWEq<ø9µnû©ÿؤÄ@­õZÔÅN»Ã ÔCé”|f/þ¨˜¼D|h¢j€/µô³£´Y?Ùakm,qs‡ƒÇYÉuß×Ó£e^®&Pß ‚µ k*Vº7Ò»” |ý%ùÇ>øõ¤Ü™k\÷!ð®ÔBÜø¡»tkú'ö"ƒÉ‡»KÅa|¹u^%øˆÒF5ú—d153 È•U-~ÏžD|6õ•}ĩ˕©¬Ã“Uí(ŒUƒsJz¨À‹FÃ(ºU EפQßž’úËún¡¢$‘Ñþ#“>B¹ê ­þWQkD‘]°áuÁU¢ƒ_m0âÊrÆ6†Oôp:fö§6¾<û=‹œ‘œó ]Þ­úÁàWB­·Eä$ÿx‚[ \³$¸Ïc•±öe±ùNô¶™¨)9…þj5QuRc;ÿjÿ;…ÿHÞæ- ;×ó`~í6üP P½LäÌAèwÛ0M©3‘|Yº}†[hƒþž±;è„_Ȥ.ï6›Ì¦yqáÂË›)ݵ›ð)ßx«f€_u';z„fí4³öÁŸ Rã+þ#³Ý“ù)ì­Ì‚ÜŸ$ò‘Þ t°²\©W@aãšt°E9¢•@qÙ‘ç”j%|úÃŽëVÿ’½t¼ÊÇùÝË:C×–wàmEÁ¯¶‘ âNïàÏãóœ»ü‡Jÿ«Y"/ïxgVóÕMéÁµï›–Ÿ½Zçk/aiÏN”'†§=9ªÄ†§™€þí™Ó¾°ÓØ"Àõ8ÿ׾Э¢·È_—ZéðùU¹¥¬Tój5™ÿ±PñaÍ@[QÕWͪ&RÂÑßúëC"õ{Z¥¸6ÿáI¶P]ìQŸ¨=õƒD_ô»gÕª‡sבY0kÕÙiIT›Lï#v£ßýC‹OÙ Ò1‚üc½êò£·¢úÝÌb1½xô¢îØÒ²ÒÄ:¢û«Ø°àðí‰Xr‰8‘Øcnm†vDL‡ߊÊj31ÒAìŽ^”=qp=T±¤1#Ñ¿}’òEĦ#guX„Ìÿ¨ÀÎR‘9ì£wBqy•ý}ÅGõ Ÿ°æOÔ&ÿd‡µ´A¨æÛÀsß$ÏD~4ˆ÷Ùwu"ȹÕ÷1ÄNò°=xÁz2ê?*D°æð«ôøºÚòöÍÀÅçœÔzÊ"@_";ó^ÝÂ_Ýæ :¡´@ž4ýUxüùR¢¶b ¿É(»ó&_µ²>VÕÑõ¤þ|ˆ¸N•Jmê/cçOâYj¢$ðâ3·8#?×}þlsÓÖŠ9Ä㽉݋cÅ7 z^E¦5ž]µƒ×6èuFz7±xfG†´¿_>ÖÓhû˜®Y]í)Ús½°×È_bËäqeá¾ËƒX]3ÒQišêŠVFfX*µÝ&¼r Lzk±_{áښ㫼ôi?õäšî±æ+ºñw¥AÿŽÁD¿c©ë~+›Q?8Û[¥ñIø¦Òû6>Lÿ’±ø¦œÞôW׈<è_ ÅÔ'½¾±Þ\O5öL¦Ø6 š¯ÇÛGÍJ^ö²ÆVæG…®ÿX&<ùï‰O“—æÇ'­1Ö¡¿ªN÷¨öexÌðÓþtØÃXA7ßÑ  Ñ_Åc^»pÍcȉÿX#\I~!kÞCl0ÿqI³uÝè Òœž%5ðG}ˆê½èGÛÇ<€ÿøn¹É¨L,_I¸úíµQÚk¯Èg^Â-ã4ƒì§.|•‚{A_à)¯À€ä·ç¡ê[#+)ŒªK•o`Ž;,CÁ3Rôp>Õ~ÊqÍâ?šòœêÒF ±Š©!éÛ»ˆü%!ÙÐEö8ýsNð+Xôörþ£+ÿ2¡lƒ0-™ÕJçSø‘ùìãE.Þ±NÔ4Ðÿ4z؇™ ®¸*±if柛ðCñÅà?¶_eøæúaME³üGÆÿIýy"Å[Iæ<™äø:?ê…íºrZ-GvðÿQœ5¯ØZ¨eÕbL©Iý‡+ój„ûmbæ×޾D¨nzUôWŸÔ¡¨‚S¢¿úyáïÔ^j)ç®Ã] Ìfâm®‡/j‹åŒ¥O§Å&ú'ºayÖƒ^CƒµM©/)»”ªâ(6y-ý–VÙ'”Å@‰Æ`o•NÙïG5z‘G„‡»„Ù˜­®6I;Œÿ¸‚žëÞÌ7p‰”Rc§Ãl¿ŠŠGÚWš »’õý % =9_‹VT†e–#PÞzÓßÀòñ±×ù”[ä­ÈHÐé 5—*1¼Õl¶¦Ú®©"ÞR“àÏÂ"½¡êa QúXâ<‹óÙσ̇[ÏHÿ݈òë¶^jQV³êØKó3ÅÀƃTÙ°ÉD ¾‡88>ùÇk2Cø¢ªøâÅútæ„íŽníu²@kÈOůõÁ^ÂZÿ†/1Á‚úëR,A`Mˆ…-lí¾¹êÈb`fáÍ2•Ìðç+ð×}ùU’þWËYu“^†ïº‘/ù‡`»ýছ^æJ.éd°[Û¡ì s|Ý©ìK®ë _qS6… ^Ì=­ŒÚ(/öø"5Ø·" Cí˜u¥ÎYþI­â5,KGqL;f½rê;îépò ¨ˆ÷ÉûzøöÊè¡îÉ÷ô’mI÷’Eæu*>úâ—¦â7‹¡¿ú“x¼ŽôBãÙ]Ùêé^Ÿgë³>[_ÿ‘…Y…[ ú«æN8†¾tãÈ:ÖˆŠy<\F,~úuòOAÍ/Ôz›D^ªöÞÔÇd皯ÐecºÑBž„Q w,µãÏÌ?Àê¶á?bã?fâg‚¹‘C­‘‰D"çz™ÐýïÓ[R•"¸ŠÃÜáyt¥¿iô£çduNnv¿*•u7ÈA¶¥˜ÛÜ\Ÿ2Úüôøºt°9•ÅZç 6a~m¼Ê+²£2¥Þ‚O=@5É=ú/úÓI_¥7á;2®löl̺_ŽÆêâÙ‚ü£ºœ¡—&›íäÜßåÈi~ìÉ9,÷7‡ü#%µŒ[é€ü”îÛÉŸÒå=û}¶˜Á!×™.<]ŠlHŸž v¾Ó$R'10ñSCy7o鿟úvxÝëôE)kof¿o6°W¥ò¼´=;»¼-ó0¡¤+øU-žê÷ðo4çÿ÷¾ˆ«äwÌ*ÿ×'&UÚEˆ^ÿlOߨ<£ÑÚj_Ô#JiNûŽÍKõ†éŽCÿö¨¿Ø?1†RP$ŠÂxfÖë‹—ê æŸÏe~TA1E¢Ý£›b!çýüÙά¿©•Áw¤"眇YNý ¢ÖTÔ›É>&ÂVlŠ$£²NYÉ5fè˰që±tiÉ?*ëKÄŸDÎwô‰¼åÝPcµÅ¿ã#ÞcvæGý)ðæm‡ÛßE|DF‘¶â ò(Ñ¿Aä¹VìŸâW(Á"1Ït=žì\<ùuÐ_¥Ã®ŸÃÕÆêœæsvçX5Û©õÚ´Ÿœb%m"ö¼ yÂE Íág'a«}P´ZÝ‹šƒ.XÑý,Êy‡ÿÈ€_ÎÁš·m­Ô,ä1 É,|ð³xg°®J¥‚‘ëj"}E>U~HÖ•|q ¾n¦ðÑÒ„³âJTýuÈbÊ™ä)›Ý“ûá‡ÿHÃ{• Äá&v¶]`nqÕñöePn—$÷Ùä|s]wåƒ-õƒÓøé¡(xkKïç„vé¹Î>ü’F,<æm2\uFùî`^9¥üª{h»~èîVUíþjŒîV X²ŠeD¿µ@‰ŠŘLZd£$ì4JQÔ¸uàSëÃ/Àä— Ä^-låiô¶‰Krá5>cŸŒc*I|4ÀAÌ(êŒzt±ù€ü +=WcïËã=nPÝÝJ¦%›£l u†™GÕ•Óz‰ÿØO™þ¼ ŒEú¸/ ÿx 6´¶A£ÿn¬~Y¢‘ÔßÇ26ÅîÓ3…áÏWˆ<àWωNºEUÆwí ›k´“Ë ýUn¬ü9zr˜tå(‚òl+hØ𺓠zÁ¬\â;­IÅW]¨7äÎ%‚ÿ¸N¾»œ*”ëÆot—òdîÞN²Q ÜÀFŸá$‹Ó÷ÜÇ\²™8ÆeôWUd±ÃysÛ)=µÓ(>“Õÿ.Ëë£AõvëPIùR?X’>Z×àTSß]“y³Ѳ•cK ÇÕûÝ‘¸©¤è-\Jw&œú’)Ü].ÒËèÕF›³Ðß4–’ÍLÃê7Gÿü™Ùôè4ßBn4g‘Ä£¢¥o“„çå| U”<ÓEJpÝ~z¢I¢¬¦þc³N˜Ä’ÞîËBwª ¿Â&Au–ÕÈ ~Õ“ïÍNÒ ³ÿOê5øWç€Dtªú§ù‡d®Ò!5—Öë¾ÏÑå±­š‡JØj;%Ê/Îÿˆ¢Ô„?·ê*ŠémDtí…:H¨DÇ&/ÓºiÔújÁPïƒóa‰à …ì¿!õƒý±Lùõíâˆx®LÐÒâOö¡ÍG¯õÅjÔH­xýn!qœu¡`™ÓÐÓ¿–>^Á6¿Ç?YõÐ}舒MD4IéûMziýÁ¯,ÿ±q˜8ÿö8a}bÛ”°•­é`5ü*M$æ×NT‚K½Í`õÁ^༩󘺓è>÷û%UcCØå"þ|Ž6î'×\F[ ßÑÿñJŸNʾ²/ã×2¤õÄt»9 ‹KÞ 2VBlð zmk«fOóáóó‘ Lpx€CÒƒõ÷P™—H>Å?}ÅBi\ îä'Êj®ØÔur‹P­”Áw%—“9ñ`2«ÆøœE؈ ’^íôøŒM±Pt »M.Q‘X¤*ÿïB\«EQRi Ål~z *°<ÒKžÀg¯ÒóÐu·+yAJ#%=ëŸâ –á“2ƒm<㚑ĵ}ŠkÚݿ֬Lý`wžƒBØû‹¬ÓÃ4"Ê/n5Nƒ‡ ‹}B¶ÃxÇžö k¿ N®#Nj·][s|•þÚú•ƒüç1k^¿Ú Wáf|–¯X®C¨XƒáÏCÑ´’Œ§Þóú«á2ïÐ$% Ôî¡ÂlÇ6„Ÿ©ƒ¿LHÿ’mFFÖ\k.#ßO>Ó~¾¸ÖužÅ’øÏ`¦uœ”wÈ5%šï·8EdåÔ$yYìx.üÂ6ªI¶õ™žl!5võ.݆π8YS WÁŒáJ²Ò#~©´}ç?2€_ÍÓ«€B©ø¤ýhGÈ>ÆG‹(&óz©ënM¬Ú`N­ÍcðµÉCîI!׋ö,+™‹—ðwn¯¡Ò\³*=ód­æI+Å¿Ê4ÃDhnwƒ/¡äúB6R„úó #æbó£îqoòF¨PjR_<Ôy½Ë¨\ÍË_‹gNy}å¨ìÁCÃòÌOÿ„‹Vè?Ñ¥>ùÇ&úGlÓ‘»xKwõß rôßÍÒ˜—œÛè`_ ~ƈ ÿž^&•ì-ìA¦§½¨gl{9®º0מé<ѾÔÐf–qį)”œÇóo}ñЖIqa­šRûçBÙ¬¬Shµµ êTGýÇ]›7ú«8êªÚïªL"³áhНÖU´ÁøÒ‹0Šfj«Ô9J,ìü4ôW;ÉkÂÓtF¼rÑŽû“˹‰h,@¼g韘™\áÞc&üùUs>!¯c³]¤ÿU Œ­\ˆ}8ˆ=®Œ¦¢5‰»°¡_°9¿ë#õfÔ±#±bð¸}b)±ÌV|Äq4†/à¶cã¶&¶u—xªâ­_… ŠöÓücžR¼âþ£¸5q¶ªñx9* î¡Dúr4²‚Zˆ©?Õï–Ò¬e ïzÃ2ó³³`櫃b,¥‡Ik¹ g/;¿†=½ÉËQWQrþ#?uãPïú€Õe@4ƒ+Žƒ%ôÄn‚gvc_‰Ïö»OfíÇèãJiá!‹Ëà¯|xƒʹp2:~§>oæt¾J"»ƒyÎ߈¿»bùÞÃ\¿ÇóÕÂcUµ¾îŒü\÷ù‹-ók×ènøxtà&#`·2À´ 3Èh¢sbtã8{W¢u*™±kÏQõ¤–Ú)å¶k)ÇWuÕ‘b0>°!úÝÇü„øÕG¾Ë@ÿ’jôâÈ÷\NƋܧâ.gyui£.±óÅzq¥^ܪo)ƒ—‰kÜà”òc«ÐGïzcéd~›Ž}Ÿˆ¿Ç íÜÌjű¦èð>F¦ƒó¦ÿÕpúiµ‚·ŠBD~¦!;ÈOK8êR̯]C&#Ðïú›}Œç(g+²Ã^\ó ª(Óœ\À¤ÑB×#N¥Pø¾! l,‹ŸÝˆšk§1LÞe6ßaæŸg'zÆO¤öÞêF\ž¡gäPÁð%„«8;ý¯üèèKyž°ûzOúøÇ”ÌŒOeÞ§"¢ÖKr¤“ôªa¶£òþ~ëWq‚Ÿ),›ŠuÎ;Ò€7ý&J¸`ÞÕù;ô§Ëp_365Èj±âcú—@¹+éÓ<)#þ#÷í<¸âªš†Ð—ç¯ý”½š‘YCÞÙL®‰K®Õ-ð2sÆ}:^¤j6ʪ™4 ´ë$ýÌÅÆÔ0I˜-К§&®ôs>…AôWY)òpw;#6Õ#˜?¸)Q© ùBØœþ% ì•샨ÿˆO—®ÃÄ L¦øh¾mÂÒ˜âê_ü/þþÉVBq±“qÐïFÔ=õg›2™µþ‰íµ`”R'ÿØÖAõbz&?ÅþA!ÿ÷ëEQªi½à†¼A`–‰Z"¦R­T2ˆßÄ6æ>ƒ—/㼟¿Ò¿þ65Ñ[üÇl\%ý´xNhŒ–4&¤|j© j‚H­PA¼äÝ[©Å~ó4t!B¯‚ÿ¸†õÚ„õŸèè¿[໚¨ˆ÷X›üã”ØK¸·<& Œ½ºü†ÿ¸ î_u‹šíÏ?Ýáb¥<üÎg®ÖýüN¯*xëÞÁÌÌ׆üdÅVÚE®©) Ê~¦ ¨ÍX,}>0ŠYTJÔ"ÿxAŽp‚+ÿFÄŒááËë¶>jYlîBb‚ÒøOÖ›Iµ¤‰ýpÇWìä}NŽô’=ž€eŸêPW¢~0<iƒ2Y+Äõ$G3 ;ø‚7¯Ë7=®ì¦W+˜?xýnuiõ©º†Þº!þª)ósç›ëº+¦’H;!üàkG’ ”79Ãço#¿Ä“˜Üš¾ZÁ’nD±” ÏNgGî}ð¦:pÉa»K×P»ˆád»ÌïSêG—¬d+ ˆò½ÁƒÎÃÚÆ¦þü½C$iù—X²¹¥YEò–Äeí®kkޝ|°÷ °/2ä âõ€ÊçÃô/Im¼¦ÿÕ4ìé54X!ø§NFZzx4$z@ýG.c¼ôæè®Üu§gÒÿª!\<²HÕðÅö§#ÿ8lT”¨xéäôﱜú`Ùw– Êÿþ%ò.x ›¶;ôz"?üÇ3PÈ&ðEè$²›iT+ŒÌ?WÁ¯|ÑÛ¾džÒ*÷<Ì/ä<»Xo9gS‚gtÿ®WuZ%§º‰ŽNU@œ²ÜGÚÜjú+wúK="Îï ‚̤ñN²"ÈuÎn.%s¢΀r±·Xà<ÁætJ Ö‹Á<Ó—Èlzm2³ÆF,s3ô»íQK=Ëzj·×q2í=˜UžÓL‹Vj(~°¹\ÿ.¦;¯w—rV+bÝ‚7)ª¼(2Q+ß^×ÜK®µô nÄÎrzïÁìB`mÒ›‹d³Ç£ÔŒ%;ѹ£\å| ?+#èÕ”ƒØ¶ XsýŒñJ«utlÉ@m}%û.³ƒ½•=‘Ý‹ù7ò°4—˜öÅB/òU^N®«:ó£ÂrfÎø~aR1èR ŧÒϪÿ'ÿ½£~p¿ê~CÛè¨"¹mk¨VÄÄÂ|³…}Ãþþ3¤R•þ%ˆK3­#ª–BÛ¤ž¦ÿnG°áAÚkµö/ú(D[è_2vº<˜U ØGÖ˜†Lá#Þc ÝrFRuIñ£~ð9Q÷ âú ØüÔ6¢ó¬Õ)J•›±‰ô®ì´H¤æ×V¥ÿîY±•èô:lð.,á#rƒWàO¥ˆ˜RSCØŽŽ$3ˆu¼õ ?Í?6+iÑp zÍ9Mb_UAæ²³ô 0 oaâ»ÂÝ,† Ø¡ÍþÉÝî­m„ÿhN.ðSn,êhbÌÂX™ ØMäIÖ;êÈž;üGn±+BýÕMð« \Ç"˜l_|e^؈ix$MQ<çZr…”ݯx+âÙçâQo3Ÿ¥\¸þc]2³·4roÞW¬s/îî\ªGR€ {3#ì*\s¬Ð|ï>¯xY <ˆ"~|öT%†¶WÌ!Bœ€ÕðÁ+sùzô @æ‘—úA $g1kæÇ~ÃÞî’åå‘-É?®…Y²©ÚQ !Ó*‡¢ê >(=z./àF½GEjŠQËÃx+;“A±bj¸Ÿ ä6’ `œ8®…­e­¢^­¹Â"d9ñbV çYj5Ò~ÝFÙÚµèúÚ&¥ÿnfc=>¯,ÒUj G¡îðÔÇ(×CÝéê="×ídz3Ñä¶ V5ºÑ“þ‰U¨´Xí{B¬mÌÁO)oœÁæ%bx…;¢zJ§ µÞ|‘Üè)Q@òR«ÊqLÇ*£¶õ5•`)£> D«”ùçïÁ¯&ÁÈ¿¥"&.6¿Èç\/›’U]@¾P k›KžæÙí‰Îù ý¯RÁÈä‚[˜DaC8šñDéÍ’ðÕϸ×3Ñ¥¹³V^0À.ßuƒjËlÉDA<«kdi½<÷d5}|cÛ{Âè[ýwŸSËþÄ,Èü¨WÆ{|ñHòäÝÉ`ëÈ­øïûïn£rÕzvkƒÝÆëÄGý4ý}ñCËAàµðF·Éhø¹æD¹Çm¬ä_'’±÷nhÁ8ýÇKØÕ"#ÑÏb¿Æú cøÕ>8oîiYú'N°÷²§¶gųÝ3 ‚²Ý!nˆk¦C¿« gåÍk$¿ýOæ~¢»pÞ¹øJçÙÏ0/ÈßFa=HÿÝÚZ:SÉÀšOmåÕœ¨¯>)Õé_rû‡Ÿø»?ˆ­´ÔfˆšD‹¥õIâ¼j×f«Ì¶ OÕb­•vE- fsîúïÖùëïòˆ>Ø@OlÂXàYä˔ߵl`Ü7aÏÁŸ/‹dÿ’[ô¿j"¾}ìå§Oc‘KÈZp³ÝÄN¼ µ²øx“Ö¢°ùëãÿæ÷êÚdí2ÈÉ ¼‹øi«³ÒBÖILþþÿqª1;œÁ)NâÛO¯y·R´ë›h‚ÿi!á+Ë3ßr>1é)0&º½ñý>«ˆ>Msuõ ‹Ý´=Xä\S WœB_‚Ç}Žíš0A6–»@˜Žs¦œÄiü_ ᧸”ü¡×ül믖秭N"eð`9øýw~* nJ²˜²ùÇ5þÅ7¼Éxî×N²2æ×†7ÿcý/½ÉUbËéd•/ØG{,K±ˆn²‡ž©.!ĸ­ñšW`×oà“ÝUã<\ë\ûûjËà¨ÂIz5‚š‘ X Š)?8•¼ ó°kae3Éô/ «½o§öÖü¨*تoô?1¥w–YäDó>ô€*Cþá†Gÿ«›|B4ÐÅóè˜?“7´´°ÕRµé¿Ûþ£6Òƒëø³Ô¦åë{TÖ "ÿ˜e¾!Oê@o=XŸ 4ñ5cdb,];åQ¨gg óÔ[òT˜è°?òd¸á:ÁWx’FÙú[Hÿ«[(Ä*¢0îL7‘¹ÒfÄ€Ÿ¾ÉÏEÑV†Zo)ú«ìÄ;·éí4‘Ó;N‡ÂƒÆD£ù‡`«;ãiìoéþ¾Ø>¶ñ î|.ÿ{Á ÷ÆFé!â:×Ë®¤V·bkqÊ^r ÏVøó cšƒvô«zZ×Ì*•ÙÛø¾,󣮀.ÎbÞ¤;øU~öÚPÌtÞÜæJ í ™ÛGüÇrø*œ43š¨lH¾P¿L¾õþÃÇT±ý¿Ñ¿$¹ùljûk Wá?Ú|7?*@9JþQ–¸î*Oßi!äŸF"{Q*f–°ÃTÌ!|…Fl¨X~¾¯HÕ<š æŸïÖ3ò|ÿFnž‡YßùQ̯M­‡‘OO=ÇycS’¿•$.Èhßcö²7·g´G¥Æý¤QÞÔ<Å9&7cò^~%ù™›TËØþ'õçŸm…•ÏΓNǤkòì?ù/ŠrVñW31ÿãzØ¡¿zÿ‘NÍ¡~Q,üêÆ/-ëÿó†ÄªÅ{U×fªS˜[Ÿ[,ÐêjçÔ’ªç/í3&üùPNz6)'5ͨÿðÑ$¶ù&‘ê4ј#f¤V<¨ìV¼ÅMìßÞçSD¶îhº«2%q vê ˜ùb>¥ƒhIý [$V,¦ÍÒüÉ]îa‡×b‰m 3‰ÉSaIž/Ü¡ö#HúN"ýOó•Jj®ò•¨Î ¾0ñ:‰ñsõìXÅó#N¼ƒ6¡Ÿ×´øƒóÍu­öÑf×üÄDˆã¨K(ž³‹çeJåa K©Ù+N\­ÂxÿI–”W¾Å{\æš‹rŸ|éß~ǵ”ã+_µ‡èÍ9—¿zƒ†':ù‡Â^â1ÿ£²qÖ¨o&4³±ZWÔX‰îMâÜ,~l£±óÞú—äTO€7u£q·LEÇÅÇ|ò1Y®ã5µp#‰ÇO™³M•~¼™Ñ±•;cuŽE…Hoé†Åê¦ÿÕXõ¦¨ÇÂTÅûähIÉ­¬þíôþ06¡DUìËaj“/´„ñ?A±üèí^“ßü‰þÊþãF¨»1ÆŸëF™:‰à‰™v^*³1ßÜ@¦ÿn?G=âNo^ÁýNl&§2òÓQeÈÕ}8ô­fEY”ÜËvìßR*Qn¡ÚEÿ+O"{âæýh’³®ÝZæ’!Õ¦þcÌ$\Uh锌êJê?*Sÿ‘Ü¢ëÖF *$̯õqÔv72›0d*×*ÌéMçÈð.è¿ íCRêÏw:Ÿ™Ì2} CÄS0C&C•;SÎÄïØìý™'^®û)x¥½þÃÄ46Gð·ñX¥Þß[®Óó‘Ìp^ïøüÄ@mxRƒÐâ$•KèºX–®Åà; R;ø\dzÔàai‰F;ô» xº b›Âdµ¯ômNÿñ&v‹HF”×ídøó©øŒSd©c©›q·Ÿ'ÿèOõyôÅçŒ~ö¼TÄb]ÉZ/EUªC/òdÅ¿Æ8çßúBRã1?*óœ~má÷¶³Êaµ¤Ö”ê¾ùJ^V¹hk¤ÖSSÑ¿¤.3rM]…{>Žˆ«2•Ôs…Ô¢jk©?O¹IëC‡­Ò¿Èd°šô‰X&/ò ú4µÐ b# ¦Ó7²õƒ•mJ]øMüê æô Œ»; AqÿaYç‰ø^¢/þÃå™#>ËJÚHí:¾ç>hÿ*üÑ7b¸ÉXÁ¬à$Oôt ÍMô¸ ñ׉x´Ÿæ3•¢x›W(×’ËJr6–ßÖǪNL Jr Äþ%ùÂ(2†Å 9ó5WW†ðwØPÛÝkÈŽa³cíg+XÍûÚNZ=hwãõnñë(ö>•Xë¨ oµ[¶®j9ð³9|r¼Q^¼îl~ú«~ÿ o‘‰8opAäaÝðí;ñKD‰pç¬Qfky@â lšHþñ v¹'x˜Ý_d*Ø;ìR[ð«;d]·9Û&Tµäyºå|s]»ÔKúÝÁø¼TÉçç£z°6Ön¤Â|Ĭ†WÊ,?s?Îs§ c+Ói§•C®¥_ùÀô%b©ˆ%ý"–˜(öÙC<øó Ô2ø˜ŠYuSð«kd8ñÈ.ábèŸxN{f½¢Øûæp7äfzÜÕ,€ÿÈ ×q[> ~°êØõ°±¾ôOÜ*›SCw›ÌÂÍ,sÀ6õQž„z¯¡çjÀ“ ÁçÀWd@¹Õ—Ž}EÈ7ü-å)j®mÌáû&›°ã‹œ€7ñý<Èž¢ÓºÐæ„ZožHCÍå}òï¦x†ü ’ëcôo_żÁwXSoº˜_ƒ¸Cþ‘–Î-ÁàM«ÉA^ÈôOÜ.Ó}W?è¡DU—èíapL|Òqbˆ> hoÑf:³'wŸ¾W=Ñì>ÀGddºÕ»x¹a&ò|t’ï$v;O° ùÇAòµwdº@ó*‚Ž£n0½Vº£{{4û³°½0ùÇô¶ÝA¡ÞìuàËÔ¶ú9¯÷€²_+L.[¤5«< ‚ô9ÔHæAñ|Ån:æ@Þ@ 7Éþ¾…á?æÐÿjšñ‡•ç»ù‡''5Ïù+©tGßÓ‹wÕÿÑŸÎþ¨:ÒeÓ¤û}'ûHæ¶³wa¿õ¨ÿ¸MO<Ü@°ê ¨"ãµµ_³°Îãù·¾ødËKmÆ_Kèd ¹œßýõ§‘û]§þã€ê£ÕÓ©k•b¬rþ£ ê®ÆT«P?vBÛ߯‹ùD ì_%&û½‡ÿX¨ŽT¢bç×ܦªý×úty€_ ÃLÁ ¢¦à™ØÀTä„(‘^Š%bº®ª ý»½íWÖ*¾â%(ÐzâËýX‘’²=s#aÕÒEãi›Š2ý®w¤ú—TÒj7Äj¢¬‹ØÔcx çäQ`T«'gmf– )Æ.ÑOýÇ"¥ùÇG´ý™yÿ–г£Ï×4²—ÄØÁ+øKÝÕ ¾î§õÿÉÝn©m`?‰ëŸèVýàZ|Ѫ"¬üc¸ùò‰ð–…>ƒ/H%ÖGȼBW6·¤LJ~|ÛD|N¨B.¼ÏFâôDD‰Ÿð{ð£À´nëûE1M g— •yZq¼Z9ìÿ²+ËXtIÀ…ÝÅ qGtø{\ó5vÞÜñvÖÓß:ß\×}~oK£„?OD¾ÑåšqïLÊBpù_ôå¶v5¸|&ü‡5ðùI*™ýUXídUøÁ…! ±“Dv°‘ßÀFjêè¿ëGÿö=F¦ÄØáÒ½éßnc‚TM&–D%@ý` êÏ»QYìKtyJù'Úçÿ÷¾H@þ‘ÚyçÒS©ñOù`Û-å‚Zžüã›zÐ1ÿüº­* ïHòŸ‚¼ƒã°8¸M!<ç2ÙÍ‹Å~| Œw^£²^xj2œÇ“xò¹ É?†’³²ËÁø¸¸pÑíôÌÌ_¹ŸÐšªÉGœí=>µ ú±:d´ááWïlš¶»Uò<¸OiujÙê7 ¿Ûäª< ÑT~¯ÄdóßÁ'Ý×s`ù 0?*,Þ˜üêÿ(…%ý†H‚²úa$´:§—¬ªñBöFuëŽFœ{’èøyC±ñ‡úA_úï¶ÁÅo{Øœ#>ðwÌ?ƒþª'ñøAªþÒ¡ª5þc ¨]aþ–”;Oü0åZ¨3œ Þ #ß‹ï ÎÕ ÅRLýT&бµt"I õ4ÔN‚y‰ùsøÐ\ø7äa¬ÊSÿ‰©ß¿%„óîGs:,B¿»ƒ*ûÕFOòØø_òsà.ñèéž™þ‰WñË8ËhtjÚS Kqó¯ÿ’)Qà?ê“ÅD%¼‰§î#›Ñ[¥¿Ã,Í܋ӿ@ºÛ¥Ê¢ –ÔÿáÃD‘Í0WÇÉÍα&ß|7 £ú«#܉@ž’E2£¾”ŠNi.$²/åÀ¯’3Ùï ä9˜õ͸³âeÄ`º_Rž…@üÇ ½€(ÿ]ÿÄ«t~ÎEìSŸÌèª~V´—[Œ²öÞLAìIÿ¬1=°nf¯—Šy7üÑ89Ïe,"²‰)ûP“•‚7q²Ó¼QhÃE}qZˆ(¦W2gÛ;˜ãQ3x˜oŒ*Tž¦ÿUúâÌÃÍj/ÿ“>[‰å”2@îѵò‘vâ¯ü/þž†iÕ.»™Eiûõ» >«¥é%铟§á"ý¯¼Ô"tà­„ÆëÜ/]U¥±6P”çÉgJž¸¢FךRžB4p¾T˜´ùÅúóì—¨;;¦Ã7MgÄaægçÅFœ¿S+ÐWQóR?nú$ýwKkŒÀÊ÷ BÝ_[d¤­8L4ü‘Œ¦Ø}7*Vs‹È0*õµUÚ1“7oYÁnð @l»‰]bê%ËÐ#ò=ŸXã©óûq_ÿú“åŠÕêO©Ü—X¢IäEåˆiF³fj¬Ä%"•'p`náÆj®¨*ü{jsù‰:x†;TPÁWŒç*˃…ÏEn!OƒfmÇΟCùdG1K©Á._á?Š»ÎÀ§Õá_"÷žÅŠô‘ñ±I›á`™òk;k5GQµ­\†põWs”ÕZ9®Ë” ÉûCðCíІ­àº“È–zr*¾ža¡ZS `1ÝԱú$†ó)¨Ÿp¾¹®kþjKIçêý;‘-XS¡pæËá/&`ݧa—‘s½—OàÒ½Á¯y˜Œé4^ú+µ{~P‡XúÝø³Š è÷¸“º\Ëu¶†ûÎOÅù¦ ½¤NœÌ%æl”å¨ìX†•íЖôWÍTl0±óq”¶GÉ$³âoJƒƒß–/™…Ô‘¨w0ú«(äÖüÁª\Ã.bòd¹ŠŽÊ³Pwe z®–x|°RldMò£˜ÌÜb¼Ð‹»Ð=EÍ5ŒúxLKôªË5¦ï¹0–(Ñ¿¨ B­wP¤„ &·¦5f”‡©~¨+ˆU}p¬>øŠx&oøåÜ©}ð?kÑJ§fð|çÍm¤tÕnp'?’9ƒþñôúËYÔÌH Ô$`6“aO¥E5úW½£»–/–û#‘I-îIM9KÏMUW¥Ô6e7þ×((¨,P¼Õ·25½1øa/P§zdnŠ=³Ù¸êÏ0]ÍÔ7†ÀjšVoh´÷è}ýן+£™uT»ÑŒ^ì¾ú!c0ÞhUBqÉ?J¢ßÍmojWìE˜Dø‚þW™¹êèFóïG°ð&«>£7¿ú5„ç¯Oÿ÷~©x(iw.ÒFIåüî×V~o D¿ë¡UÔÞªýwOÚÊde†T%EÿEüJQòá?*pÖ™ôÚb¿¢6£ÿÕ ­¨˜£uDáUWýµ:Çšùf*tRÃñ"x$qGé§%ÀÚïè€U›úÈt±ÙÖ++”(b%±åD2šXýdèw«éÃÄ64Rïõ©d¡ý˜fÛRäü.'ø,³ ¿:"F!l!wù×$X«×^LØ…çt<8ÀžÁ´¬d6€ñSüj¤büՈáÝÐ_5ijåÄæ!æi&ï`½Ÿð)]Øý8Nv²6å'wÛK ³ÑžâZn²  ØÁ<ôNœDÙTÛÁ:„¥Ÿ7Ž/¶)•"Xó•­¦š?1K^ž,­ d2\tpÿÔd_[AŽbo½eÍuÄb5‰·×éÈ?\«ë')3µ’øK1ýçþÈ:uö`Rµ ÓEGÌ+¬[ÚM®à"¹]m®¸0ùìQç›ëZí­MÕ6ˆYzT|Xk"Ø‚r'~vîE Ú üJ7¢“—¼ r#«Ã†¿à~m'[”òƒžþé†÷·zôTämnçÜ_€rþ¼1Ðk²Ý—"*\Ob2†ÅèÂÖ2Ÿdžé#ýw¯šyèWÕ€N“ä$|ñ8þut«šßÏéCOá=e¨6T¤ä­ì¬ÇÀÉ4–r~IÑ=§&“)ÏüZ›==QiíùPt #Žù‰¸éð¢ßD qJ –ƒsÀð‹¬°.&Áþ»u¿ûÙ&‚mÁèw+2]6ÚŒœöEêŬúsSõfþù¯UGÆS*h£ñž ù¾b§šH+®ŽSQSñ‡6†¾‡™Ù~®=§Ä¢ÖÃ7Ä–&ÒG‚_í£~ 1Ý*ú·O¿Ú¯†§u­ð×WÛ”uÔÁïÆò­#FöH%«cûˆCØÀs ûˆ\»P©¹þ»¾Ì:ò~†Øm ëYýwgÀÄÁ¼Ö¿ÀXWa*@wlY<ý±óþk7aï§$£éØöWP¦yDø©/K^Kz«÷ËÝ ÄgqËäŸö¿j¤ýNæÑ˜¬Œ›LæHÖ °÷ôõøÝÐz>ç8¾ã:ç0• <9º¶ìò¹­–š‘ëœD<\š|¥øÕ òÜçûC¤W>$»ƒmn„½Â¯ƒÿøö2ù~>þËìÏFd?”«ºuHUKt0‚Îzë§àb à¬êóÓä•èäbéfv:ß\ײó?Ö‹MœRüG ô<)‹ô¢²Qh'üÇ}¤|ˆ½›„-M –ˆ×<…þ?ª4Ðï†ýÖ@m%º«xÃwßdÅxr9Ö«|DQÛ ×OÁ î‚Ë$2Žð *qîŸØ¿KdO>bw8øU ùÂN~z©CXÕTÄøç0¼v´%9C?ó);lAmòR®»$Ñøqð¦62YüÄ0úݾê#Ñ…ûfÃ7Þ#[Éÿ¬Êĉûz~ì^N#`€’'´Àã$çÊŠ˚Ż‚˜á´ž LýÇNቇùˆÿh@þá&6‡nZS ¹ÎÐìk蟘˜>éÛ©DÜH]7TR‹ašúsç“¢¿Ú*ݾ«?/ ÄP·¢¹*Šÿ((roÇàgP |Fm ¦§£YÅÙeòÍTbfå÷#dÃ#ðÕ‰Œ=d…dw±ÆysÛ(µèw-ó„̫׃z…æù$žgõ‚ìCµ?FédÍ?×ìÔ:â•2[8(žºw.;læoΧúóÏ ‘É6¤“/D¹Ü(joKŸÜf裊0ÛÊbÒ'Óy=7“µ™8Uv1'Ñ´¨<›Eõ|(‰8ŸÂð#D ²‰nX;oý6ùGws>ó£Ò¡[û„6¢½KbókŒù§áA•ãW<úmÃ&›è7D𔓨ËNi:¯ø¿÷EzêÏK:OÆMéæ˜øO>ÿ#ýÛϨ•˜Îñ^ÝAÅ ÍvÏVOm­VSª^ŠúC…îO>ƒù}é¿[‚˜·ºx~ÕH¢|ÐÊ€_Ð>п½–s×?YÉñ×5OÔ+‰¤gÁ7ÍwÄ5Ts)‰YýaÏ1Cê–š1R+ú+{Ðo†‰ßM¼»_Ö í,6€“Ü%>ï‹=ŠýJ&2EbÅbÚB횘Ǜw±+³n@‚—4”¯ôhr/êËxª•t1‰þÓüc„$¢Š¶ÒíØ¹ÉÄHµàχ)§¾‚õ¾OÆTK;?_£…F!~П«§ˆÅ[Úì ýÛ»Ðéjl”Ú߃äí=쉙!5ÿ‘Øž•UcïÏð¯„øÂ]½‚¼ …aÂê¥í2ùGY­*Öý°ƒÿ¸Lÿö tà åù¶äZÿá ³ðHýFÆ1Z И¯~÷¡ÚYõ õüþlÇ×µŠpÜéñkA0üÄ[¡«Í´hܱ×tjý]4gÕð¦Üý¸îFôWñÀ¯¦ÑÃv8Ü„Øøéø” X•¹XÑ1LCo ² —gþq¿þᶉáDðGˆÉwm] *DQmåKêÙ®±vB¬)½üô?õã•÷tBø(j2¥—+ñ™Å@ý'bgÝ 1úÝ›ø¼UÄâÛ8©zñ§R>‚;ó=w2r«»5­³Á\~š D0zkþ¹Ugwƒ·á%^e8ñØüÈ*ú—„§Œ›¢ ×Ê’õD¥~p§È5õ‡§ÑÑïŽÑË0ñç4ñhâú@8šëhq›‚ãx“ù„ÇŸ±}V·Š©ºF¾Ñû—”ÆêµY NGâä(FR2WäkAí²á5.€Û]†o—ð燨ÿ¨¨6]ñðaWe,áZ8ùœÁ,?)“îÊP»ÑþãÙ\,ü‡¾á¾©5²®šÞÝ‹<êeQ¯Ÿ‹õ˜ÊÁW0ûûYËDûÀhK4> Ö;ÿÑF~;©HÓuêM:ÉèFæR庫6Û8øóvdyÖ¼¬ó(+<àvñ~Ó³ÓAbNÓÏ5+ï¨Ï¨@–S6{$þã+œJ÷*“¶!ÔzKðyÉ—_â#G“û‘›ñ’SaïçoÐså@ÅJ_-ð°UÔvg‡Á±æuLph_ác‹ —ê"¥’\_A†ÀzåÓ¢4»˓ެÆL×Í0í°ýç¹ê«ðç1À²¬^ýS@ôB8Á|Ô³L® ÀÐïÅó¡¿:"óÜbW³Á¯z˜‡QZÅ´¿ úü¶™Ž'ÆKTµðÜÙNxçVr½íš áÿÿïõç ¯õˆË»â‚îoij`úÇv3Ð(Á¾&S{Ù†$žL¤Ýœ.{ÀŸÏæmŽ"ÇÝF‡CêíŠbÔVZw‘ç·Ï´±¦c½±Éhc¾ÆŸ­¡³cø™2öFLþȾvÜH®awÞ‰²à Ïx²îj¿Æ0ÿu5ÿÞïi”²ßU & ÿpÅ¿¶r°í)ýÛ+Ð?ñ«ºËQp–~«Í¨ÔH¢–§Fñ×𫯶Šð¸K¨ü ÆÐÚ«ƒ•Øèw3¯OÑú¨E¹áï:ˆN;r™A<9™‰úŒ>“´xĬ/èµ\4Ç#ÉlP)¹ÅAðô¥¬v‘$¬Æ4Hì‡#°É Dcôþð·¹DX+ÞÞÊ0?ê:ȉ&±šìò¹$RiD”™\^'ªN‚%:…Î"Äù ‡·’õg£•ÄàsÁ&ò¢"š‹¥öÅ_ŽÁ'%§î-'í#YP¨yàWó~Ú?±¦6ËÜdíYQ~ò­Qä‰EÇã?|ä!¬ÿNâØ  o»8‘èw½"Øås[]5'–|oPm|C)b­qÄðñé°Å+ðG±¸æ vëÀÜúâiÎ2_Áó‡nPÖ•þ¡ ÑŠñ©q@é†`›/ãûã•lèfºêé¨ÿx=iNlýÖç;¯/m@žÿxfSèº {0Ô»Ö ¼î*°òþ í±® a>žÁÌmJ%ƒÑ¼Ü%£(Чq×ý ¿ò&ÿèÇ}ô"[xŒ.9VHŃd¨ÓË‚¥ÉBöеÔe¼œ€º~7„ܧóoZ—øÝåÁ›:rÔÅ3)ðYZì~0°'ÔŸw4«aíûS?ø½mrc«•Âs½&ÿ‰þÊG „®Þ„;÷ lè1üKþemc»‘Me²ÒXó0¶us”lLµ-GþÑEÁ*²hdWÀi_‡Ñ_myðÛ!T@Õ'ÈIíÉ ªÙ×â?¶ß蟼[A›ÞɵXìd(Ïaïç¢W®d¼F;e~70©’Bݤ7#s4¹{þDCñ³ÑïšìH£»cu0¢ºhd›aI½`1ZPù²>þ”LkìGK-×Í£¥ÒT;Ç3ûo¹Y&á͸''³èyåßí[„jWØóØk ]GÝÕÝÈfFù?âÎ,‹m}ûï̬Y3¯ºíØvw'&vw'¶bwww÷V,¶ÝØØÝX؉Šúý†ý÷Dó¿Î9{_{ ‹53kž¸ïûy€¾<½Fd¢MEÏýÛ/(—QÞ”$ªzÀé»&Þꛌ´ô¦:Â~|ŒV(&Ò?±'ü¹Ë•–,iŠ‹à‡Á¯Îk§Bœ—ÿÖ‡‰ÉœÊ¹¸J«»{t&dÞVsÓê½ê\pÕfe¹V7¿ ›áÿþ ££ÙJ†]‹³?G©š6’úóX¢¾Ø¤ dBU;µä/¬Tøë&­°öh¹ˆòÝô5ôo?‚jΪÿx!–ˆ5t;ôQí‘Zñ$ýwˈûX¸µdœ—ycŠÉJØ¥îⱸ"W…Ï¢~pp$ëkÁçœ;‰ò}±q×x£Ïí 0$æ{GÖpÝXl°£[èpƒ"ÜáT%Ó -þ#/Qô b¤â°³X3 1éeüȬF7|Áb”Y›"įškk@¼Ú’udíqÜC‰Þ6üÌH¹Ñœc,ânáæ!w<"ÿxFÿ’";ÑAGôW•ô†;ŒÑê/0õ$ÝòÐÿêˆYÓÞ/ú]fܧ4ÿ@§jèl ¾ åõÿ‰~71“žœGL¥ õ η**©(<ŽS?ØR³YÆe[^ætäVÿPk+6åZT³)Š+üGcâçbúhñY•Z3ÕK¹­Uký˜Û:ŠõçqD5ØŠÌØ+KÏ4‡þ»/:Í ºR>¶â¤êô£¿Ûê^å2õLj⽨W;…ÿÈ"kç{ˆµðŠ’8s:¿e)]ˆšÚ_¯è¢-`rê\læ9°µ°O°u_ø³.QfbÔC]À¯&aŸóE¢É4%,ÏG¢’Tðåsé7[…«ž€•N Jq““ö–ŃÈ~XÎ2mYO›îŽxŽ&x;`C…°òVý`YbÌé UÈ?Øó>P¼‡dvÌ[gÉhÿZ»Ò^¥{!þµÏu9œv7>wƒÌÀÕï"Ò+é<æ¾áû¶{zQ®‡³âle!˜äKPº­Äm ?×CƪŸˆòºê.t¤¹ŠÒU–‘ñn@ºš¢Æ¨OþáŽÿˆ¾G,ÅË΃…pC?Í5oÔ]°ý]ɵ>á1æ`?ï`›c)ƒðrД¡¯~u+Ì%7SÝÉ?æó^P;2™ìeþ¦2ø|&£œñ€øö>“Óÿ*,z"æVTîDUJzïŸ:¶”WÏ‘€÷¡¸¥.Œ?ËňçpÁ©„Xã} ½U;øó-hkcQýñ5ceV"ˆIa𫶪¿èƒ÷‘Ú¼d¦t_7š2±<ó›K°}›PYµáUÐ_=$ +œ-Ä#ÿ¸ÄYü®†®Ü"Òcµßñ64‚‡paͽôßXŽÿØoèöÍhlsÃwŸ§Zr5þ#¾ñ ?¼¼î3ýÛýù3ŽÈãxÆÙáÏçá?òÒíÃ…øE½]ïañß‘o}6Σè†*ö J§ èc+ñ¯œl"w$þ#'j€â˜ã‰´¢þãú«KØï29ãv‹dµàOJ˜±íYíßA›rÛëןנWUÓ…Z¿¾dœ=AÛŠzÂÓ±¿+ʱ`üʃÓùB¿'>ëcÔô¦ÚaåT†þ…~7>hÏĄ̀T¦4'É…Ôs¬¿J@þQÖd©ÞÒq +½µN"QÞ ]ÃÞ}6&ÐÃq /ѨoŒÏü¨,öÚv?3+¯×F?TÆO|ø–œø—¢ïû#z`øj'Wüßû ì¹U«ñÏ?‰©ÿpêèþõÕÈýh{¦œ`þ¹‡=Š¥®½k+§ÖGÁ›D­£ÄŠâüÚ¯¶œð¥±4®ôß55U« ÎÄÔ%··ð«np*‘Û×?ßH¬ÚšL¯V® üÇþã»Bè-VR­qC Ûméw/ÑGeþc9~bv5lÁšÝÄ|ÖþÆWÇ€¼L-DÆHéwsœ‹y“O_¾߉֨„°æ&$îDþ1æ!G$êÏg)oE*& wƸÉÉø’ÜÁ±ØÏL0––þ)žÃòSñ,kèh~¾£%µyüL+¾û!þ2b"ö=/ù\âÇêò0Ÿífo×É뎓¡d{‰_½²ÕU³ãæ“}4f¥²Db–gðéÈbÁđϸAÜ×Þ¼M³æ|æ$çYÏ`ªuAîSyˆU~°¿^ XsøJ êró‹Žâê[”Xè¯Òb?Ûâ7Û³„©";‰UÚçÖ‚?rSO“ÄŸÂk<“/É?ÎR{÷¯ó[Ø–šç¾è¯T£5éëÈäʱÞsò®Ò•Èc™r<Ô=ìÏ<ÃVœW¯ð‚ß_ý•;õ牘Ð> †‹ ùó¨öþLåEM<Ü üÇjÖ‹fì’gÈ?tm}¨õ&‰x@žnOüGUXˆCôct€ïPè [­Ó¦W| ¯{N33W“ÁÎÁ»ÁY.Ó…ðY”XêlïiyÞùxB»È— ß5©•Mþñî‰ËÉ?üÔ¬‘ZÑ›ü#µØ‹Õ\KÆyË™A6ÅôSÐ¥Hù7¸Ç}×R‰¼‘X15þð(þã-X˜—~|é¾Ä"Ö”±gÖü¨4DÖÇ8'Å"äÏÿRD!="ñÛrì²V?–wñ'í5È›µ S‰þ7k;"Øa}mV²±Ñ+²£Rdóð@ExW'Á4aŬ½‹¼æ :¬ùàFûÙ?1†â®–Â-Ô«£…Z ShÕŸï¿Z.Ëâ)–ëwðH﹯£È×é.EµDáìrœ²€˜àì“Õ)W—L‰ÀËZh‚ ÍÅaüGgâp+ÿ°Ôc–×U×;Ç›ë<9Ñ•ê.ôW ±~Vÿ«üdVÓ¸Ú¬°¼ýÉ´ü‰FÿBuŸX¹ÞE“O¹—@ErÉöÚå´s©àªõD”üdLc{Ú@¬J ‘£UÿQ„Êäâ ÿàC.ãÆå^^!·øGÒUÌÕ>…Y¯þ£×™œ?“q/›†J>è.ÌrGl~7¬hl¦f3öà‰+°ž?ór§ Xͯ¯ 3¿v$ó¨zðÌTXñW\½PZm3ÜàT–AŸÁ N7{况êG‚΄)‰gæN¢þ#´þj%üG.øçz9€»wŽšˆ«Æ\c€\f|a­RLéxFÜìOå^v¦>As5ƒ‰¸²$Þi¡Œ&,‹ñÏ?yÐ_ÍÒ-åœ~?ÝnßÏI'ôÌ×8Èlñ†Ì@¿ƒnù•4åL7:·ìy<‚>ú,ìUnæÞû×r¶6ÌÂÞE%Î+Nò.éF'ê› |é[Ҽɕþ‰±¨®xaæb†‡sQÙlk$6ÓãóG³¿N¼ÑM…›èçØß]e­–ÆÓµLryW¼Ôg±Yk |Èä2:3Æ„O¿€fùLW2sš\†ÿØÆwÇ•c9÷v|RmÇ)üÿáIþ1Œø'QâYz$Ž5Wð4¾Ñ8½Ü Ø+Ù›ùÉJn“4@…åfü>LÿŠ,E†–L^Ð:®ø¿÷A\¥zˆŒ#¡Ò2„+Š» þü€ZRk£Äce¸Û~ð.jV5ý¯bü¤PùýêA¶"̯-EÌX-ìcôWµ™Š{M«$Öhƒ©Pl«Vr<Ï߯ôÏß~Ðjƒ<¦£âf+vx¹¸"^*u´8دOTŸ¯&[8ª¦ŠÔŠ»•óJvqlc=6n?ñ3“™8MÅrâÜVœŠÿIF“%'øë=ѦS?¸š¨ÛÊ?¶Óܺ¿ÑM˜»@°˜3`öqÀ¯.PK™8Bÿ±P‰Á L•ŸIŠ?z XŸI v)d5y‘wÑäìzâ–GoÐVDpÍ5µñØOV¿Ê #0 ÿQTg˜x-¬¬Å|l˹€ïó¦ÉŽàÞËá]¯Têª9øÎeø´šhc󰫃Ø'*?ò‚Í N!Oá©^€“õ#kZËÚÞøg‡çºã”ÕZ^ö– Ë<¼/€œ«7k[ó£º_u—P°6|Î{~›×üª.Hcxóc)Ñ´CbQ°ÿ‹íÍ+C®€ÿ°øóÙD¬)È?>ã?ó¹U)w \ÞF”ŸU–×öüÔÿª™ÚAôæ^•'WŒáà[¹ÎêôỎn÷ŽFw©oÔŸ'5î ´³ƒ.^ÿ}GѧXòSÿöúô[wçŽä#G±f~¼áƒ«ˆF.âÇü¨ö°ÊCAq¾ËàW{è<^õîSòñ2#ÏmŠr2Ô“îª>9qïõä•°ý)Œ–àWùAÇ&‘yÜCå´ù™QU üj§ÇO}¬5ÿ#¾¶%ÔzÁää®ÜÓ»[ä?ßNÅß £:¬¦7þ£ÝiMaTBð«•ÜɰC5Œ7èr‡˜_KE³:]¯¦¦“ƒ\ãɶ’mñ¹cQ¦ŦîGwåçqÅÀ5ôM•À²ð«ôI÷““k+üG¥RWÛN„þ–'pBæàž`žHGºäÖ3×µÍ &‰|¢š½xÖgãZ„‰àWÉÑtå:ZȽT´¡ße‚µ–O/MVv}GÜÓgÃR4¢ê²3]« ãwðaÀ­úÁ ¼es¦\kŽ4¬nÇqéÕíªç“ópø?êãGˆÌè¯,n¤,üÇûts*‹˜ô.ÆôøÒÔŸ«ö¢Ô´_1rÁÒ\Åd¦Ããýº-T$5¥ÏÿD¿›M©Â¤Q:…èfâx‘úà‹í-ú«&ZO-!ü‡¥Á9…ÿ¨BÅdØú¶°q~¿¨¢&ÿ¨@¤êFµ_ MkEÿÝZ5f#LÑ^©]¢ÈĵÀ ‚‰ì! Y üá?ºh&œús±Vúï& õFüjk©ÿH ÿá=äßê¤ÝŒ<©…ðâ}|EÌ<2Qt¹DÚH¬X@[CýÇÎöi|Û.ò3ØMA¶]ÿ†ººã9|5‡;Bÿ±XÑ©²×ÀêR»-!æ®ÍUãOK$~žâ5QµU÷hYñ%Ú¼vXK›Å·ò•WüWÄ| *–âp•s‰÷jH«ÆiîÂV>JN‘“¹ÀE~±æ;[5ß·ŸÖœ¯ä$ü° n®__LÔWú“‰'âé‡ð=gõÅ¢ öG8+Žej´¥æJ ³0Œ¼ï)ØäH®ë-š˜þäÄ´¦-ñ¢~|×|[sž|S½ŽàxsÏø僺þ#þb"H~NüØx2µ|0 ÍÁ¯ÞR=°ë~Ô¥)Ѻ *v´¦Ý2ܰ¥aO·§Úþc"øÕy0Ÿ~ðë¸S 雉z¼ëôfDÍÚ™‰°·¸îxä7á_‚ø7B¿ûÀ¹µà:RÿÑÿáBœÅ8!ïÂg’è/òL¾3<˜™·–úA >݃úó­x¤2ø£§Äãd6ô SÂÌœ£~íˆ*¾éã©9¬Êo S¾ÜÈ…ÿ˜‹Ø×\`Î6‡eeúïúƒä”' {³G^÷’Ĉ!·¸F$ÃÞ~ÄŸw#/Ís¿Î8m,4£”µúïCÁKUº«%XÔøø¥ÕÜç¿PD—ƒ; ³ g<˜BI¥þ"5§üÎý÷'Ïë.›ÔŸÿa¦cŽ”N ~åÄm’Ó¿$rU?oï›írZm µÒbkÛ‚ñ+_ôþ•T7&6Qèîþóüæ+&õçãE5¢Å ðçWÐ_UU'+?´fÌFX iÚ84Á¿ùñŸþ*—h¾á‚¥ÙB?Ÿù§•±ZÞp›¾[ìC„o$çGíT+Ä9üÄ*¼‘øUNÙ?ç'r+»Ô{´>‰þ}…"¥ß­¨MÒîŠØ½³XöƒD„w@x‚¨khÃû¨JK-—láyÓÛ¯yŠ’ƒn‹A¢)•meåbp¢jøyØöDVDŠ·»C¶Ð4g'ÕK[ÁŠá?ùLw²úæîÄâ ö‰.i,Ò1Þ¡“|õ2¿a«æ Y?¨*­ÕÜì`,vS¼/}¬‰ñ÷á-¬©>ô5X½?å 2°‡0*}P£xcù½D1ÍÎ.çQ^„½Å•ÞøÃèòÙ?<Žî€RÅe|jYÿaaè[Ð_¹à±jëwo®ó˜hŠAýùîÚxФØ m\ï¬Îð˜ÑØØïú*¢å§øM«7ú'öøˆ§•NPÀ°§»‰Úþcº^ Îä+þ'º\Î}kŽþª¸Õ¢æ§Ôi<¡º; ÿ·ú·7!º÷†ÿ(! ¿rZ¿öؼÉêU‘|& Uá~<ƒó`K*¶ý½Ñ Dço¬é|U7üÇ!îd1¾ó|ò`™—~”ò0Ô=NÿöF<·/ú|0šfdT‰Œ&tÌH!‹K©}»J7Ʊf+бÔ©ÜÅ’ÀÀßì–—xÚª¶2Ôz‹,xÕWÜéñœ²0%»ãôOl)wÑíÛ˜^[”ºˆ›äZV‡TìÚ‹œfßW_²HÆÑ¿$•bW9# ˆñaƒž‘áv‡'ºeŒ†ŽÜ¿¤š+wð¡þð%ÈlJšÏðãÉiÒGØizÙN8;"wa„LÕ;¬ý%Òdx·Á̯}MÞ²˜þ½º=ófï€ÕozaG¿›ÓŒG,ÓÄÒ]®Ñ‹37¢­ãzo*¾Z%"³ö`ÌiäqÆ"'ý¯¼©‹_ÆtŹ¦Õ ~8þ#™ù<Ø¿M—kÌÁ†…­F'¶)ƒ~÷²ÞÙq _SÉ3_w èUM8þÌÃ(³RÏyµÔ&ØÿýTçä`þàqÇÃmL/Ö³z~v¤ŸDM“{8ÍÚzʯ4ÊšÑé¼û™…a¾_Õ`î{&ô»ñ@oƒVnÔ+ƒFvÜ?«~°((T[ò™ôò)ú«9FR{øóæjæ‘,Á|C çOÿÄ@ÖÏhŽÁL6æ’ikrÈWbPé&ŽSøTM­[&¢Ÿ~TzºéŒÖö‘àWGàÏ“¡^CfT×`f´ÏÁe±We aøó·ä+þäùЧ—–ëþ'øUôºNÝQ<¥)ó7>J|µ}A¿[ü#¾v"X¿{Åæk‘ƒþW•”϶°oÄï·Ó?qŒ(Cþ‘™Z¼ËªÐŸ_¢þ|™6Šþ‰¨)ùý ¡ÿV‡gêÿÑt‰· ýÕGô»6,ÎMº_- ¿ÍùHú­ÊAúïƒ XŒ…ÛÒ’HVÅ*yŠUà÷õñD÷ƒôq ¦©"¥¿Ê£-Ô‹Ù !çè,rëéKm¸¥¼jHUÙXhOøóXÆäzÌñ«Ê‘Bÿ ò˜xyÖ>3ȼUEçK,ûY/Í,Œ°³Ú«]Ä îZX ›Ñ“=í$ìMïܼF ã2QêS£™‡Õ÷AÈ¢iFtëç!fü4°šz‹zö‘XÁÝð)'ä}ÎÇ!´¶AXê'ðç-èžÑÉ ‚Ÿ¯‡‡ZÏÙ)†"é8|Kð«lúØIçÕÚ˜Dÿ†|æ žuœN}°N›Qy³‰aÜg{œ$Šov†›(Þø Jaž¸/,û6žÐiôW«B­·Säã;^“E¶§ã¤+¼ÁJc—1Âh‹¿`š«+\À^4g÷韘ž.ˆVÍhâûû(¦nqgc‹bŽõ²2pµÞ/ð ¬é<Ï®?™ÖFú·2¢ K'Û“þ»Ç©sã¬<üªHÚ”õ¨??Jæöþa7þ#+:­ñpF/Ø•xS3b?Àø¡ûSð¡Æôm1Ð_Åå<Þ‚Y£×§þ£«c¾ä…@ÁRòüÅ5}=†{QßÒ*ìæ3žý¸ŠÃÔ¼¨d3næt¹ÜìcÌ!KN€fª&¬Éi½¡ã>Âõˆ:=À¯é~F{Gs3ýÃRsm ÐïVcöàøý%dpñ™ÿq“šN+ÿèO÷ 7üѲÑ-ZÔ*ìBž†ÿãÔJ`¬éŸ’+]þíúÁø«j3ºã*`£V €¯­:©Šjbµ ý¯Di“Š’ú¼íY`¦ªñµÊôO DÓ»{+µ‰jCÇóŒÌÂÏ´Ì`9)è›1…‰ âŠÒ üj´~YÌs`[/GRµZÙ¦DÃÒŒê ´UO ëƒ0w…?¿€õ‡‡j+RŠðtCaw›þã¢XÄϤ›ïßx ½àW±mÈ? ‹½#ÿ€õŽ®ŒðšûÑÿêêÏÝA¶SË9àDAæ`ß³^Hé[VoÈz#ñË a÷fCÅ0Ä©5ÙÖMì©•)Ïä­)>Ÿª¯öXQzB`åwƒæM†¡¶1¿öWÈb€­¶ Œo>'¾w®ò¬°î ßkáWÉ‚ñŠç¼mÙ{°®qÔÄçºÇ3¿¶–ì3žµO0ê×›7pú€„’>ƒ ’7À¯ºÃÀÞåÞÞâ9¹ƒ¸’}Þs¼¹Îëýfû¡zñb€ô·¦z0½ÜC´žZ宲q¨j¨DËoÉ@ÀäIJ]a§É?ë9µ JØÚߺj;ìý|¬Ö~¦?=×q6jRå¿q|ä¶‘•ʹ¦TÔÝ!þ×è°†þ<}S1õ§ùƒîô«êK¶ìÂ]÷ÇÓÜ'Ë:ÖôŸöš}UˆÉ;šº¡‘¤46ã\‰ð÷JÍh!³7- ã?FÀŸ{à³U)_Y›žaA(¡6ŠÌiLÅ.ïbn/æ(½—ÍЊރMÉŠ=ž³Û·OùÜ(RÚ‘«6ÿºÀ½ìÀL3jÊ9Æks1L@êëîÂÖ, 0‰±“œc¾úÎÊ?‡Ð*fWâ¨ëY§lÕ}ßòÕQsõ¢:#ñÐ8‚÷hç± ë$=¢rÒ¿Ý¢iôv‰M7Êìx²Q!ô»žÔåÌ~æ¬î‘%±µ‡å@£9ùAs.ž\£û+üG6{MæG½…o‚º)±LwðÊÁþ£«è8ƒG©Ì£W&¾y “ *[«ûpð«DøÝ8ø%øàb¨ìÜ`~&Ë¿à?¡ßµø†àW~!ò'0±ýD.?O˜N7аÑTn§Ò2wí‡9Õ¬OýÇg&”,F¹›šªùËàWqÌØ™g¢oÓEÓó?É?r0qÐÒJýóO:¥ï¿ÍØüG-­&ó£ö× û2ïº'èªnQž_«(EñÉn(<3ë-é•H«¯ÎVTt¶;´™x¨jÇ®ÿµûßý鯹Ÿ¦Ä&åÿ³Ä{qþ#'Vô(ý¯VÃv_P°¿[i›²NI.¶Ç¬&Ùf_zÛö{°Îï°¢žä%“èȘQD‹Ä‹j³µ§b512Øøwœ†u 0bÉ>‘ñn£b!6¹ÓNz㼉p½áŠÁw›zÞ ýnb­‡ºFù¬u öR'¹}ýó]×µôļixv“é5 üê¶ÒKK‰Åñ£ÉZÐò‡‘ì¿»AÙ¯$ÆÞO$ÿÄ›tެØ[×V¬Å:鳩 ÁÌ]‘"DO†_ï5¯6_»'VÀƲïÄ^…±¾vGÕ™üª/Yí"üØ‘è_2AùÈIŒ Ç÷y×\½Çp~Úêçû«÷ŽßâNÞ5 ÿ±TÛÁ]¬«õãhMvqÿQ€Ès êZ:þÇ’Ö•g±ÍG°ò{‰ü—âµ¢‹-Á½—ûÞ{ÌJŠÍ]DÖŒkt#™…çù¡/•q±Æû±()å=<ÌCîë@¼L²¹~"¿=œ].Væhn¬fÊ¿õ¡ÔÜäý›Ž6à˜ôD½®˜.RÏmÕ<Âg>Ä37`ÿeàpv9Þ\ç.EÑö“Aêx‹Öèw3ÈÜ#/ð§dÀ…âë¯ׯB}â÷Yµ£©±¹´ÅÊvçRÁÕT;‹ìÞ tUöýÚÈ“µæŸç¦žû]—Â+ Ç4®À# VÝN}üª±˜þÓü¨šä ½@ Q#òïMâíÔDCÑôËZœÁƒü#½Tc#ùGØøø&TÌ¥¡þÃ'Ô=œ€?jÍ=·D^æ»óð5á»ÈüLÆ‹ÿ˜Œ:¶Ú¨Ì%<ÏîòqNð»7ÊýDM‰´¡ÖÛ,Šâù4öÕþ¼.ùÇ*ê§§îôß½ÌdÇÜ “™ ÿ‘g¶À)Ú¢wÜ.­(äX/“RZÝW”›†•YÑâä+Ós²;j&üã4½¹:ÁŸïB/{’Jšð wáãGÉ<§<»JÌw*z*í´cT‚¾¤_À^™_ÏgU2³ñøÒrø‰ï0 6»ú«„(q«Ó¥1µ¬Vÿö:d³Íñû;…þ*/ˆCo²ÞZr®ðÑ@½jq}ýá?ò££þÆŠ£ÀÇJ1Õ4ëšÃäîå ¼õ "Á.ìã£^×q oƒ_õÑÁ-ú€ ´Ðwì#¨$9ÿ¡˜ÉíËͲööGfò¨ªÐ%¾ ß äÜ?eAƒO“nÖœWæ0þ?Í‚¥Ïï¸3©•®ÿvÿö7¶ûÊ%üG[¦sœ ®??f+ªÖPó÷¿ŠEþü­Í_Q ßšGwgþ` ­ƒºQ¹ÿaõ¿zÁüÁÈô¶uÞ¸óZE½ v¸!+!œì ú·»k’hà9ÝKþ‚í¾iþc?üÇz¢èy<ñ-à.¹ekTNíÅ,žã#¢ðÁرÑtìLb&§s'a?ÊÍüÚËb!vý6x?ÖÙÒv½ÒãÉzàÉBžÀÚ'á¬nBWñü¨aJ4ÝÒÕ¾#-qxî`ìØÖ«ŒFé¸Ö¢ÿž`ZÙôyš—ãÙ‡Ý×?ŸWÔÆc};sUþü—“Ìh<1f1êɦaY¢C¼ÎžÿÆÅsÖ“2W¾ü/Ö|H>•Ù<˜ì ¬T† d6è×WÝ ÿFÆ• d&€œf;t';ñF½=ÜúÁ•Êd­÷ì VÞªqôC§6ËfîQWƒ'z >µ^ó=q¢eí݉F,o^ÿ«×6C[/þâ~·‡ï( {p?çM\ׯŒ"ŽO‚Å Dc»D£,úÝû<««Ø=-(àÉ0·¯ªÚKŒÁÞÁ†_f$r;wÞýn>z8]%²|DŸõGðɰ©žôìªNf1un~YU øIK“ùQ½yfY¸¦@p©Çz p'7<Ð3:ö€MžBÁïò;>ÒP QŸ+X#Ê$F™šlžr"ÔS­^;‡Oë‡J«±†^ÆËˆŽbk&ÊÝ= &ÌÆ+æQ•7îó¤]¹—W¨oÜ&ñÄÿ £ß]&¬ùQßðý Aز‘Ó, [a”%ÿxJE]Q¢ðeøSø•lf&ò1ä)CåI™–ŠÄ92‡°ÿÿü“J)¥ÎÓ‹ÃØÇä¸MtÝ–ý,O|3¶ñüª=ÖÝÍÝØëãdrIàÏ/ãWËd\êÏc‘{ ÎiJm”&ÚA=÷ì•~ÿQ’{xž¹ƒWÐﮂï~ÞöÕ)é°ÌO©–¯ªßÌ@þÑ‹~5Ýa,ÊŠnÂݱ¿ÊE- '¸QK3ø˜²/U­è_2=×K*Ú_Ñe¡écf¥KEzG®‘Ãé©å¥'å,öÆyQoàðw˜¤=PÄóxðF´ÖéGooIe£5?ÊOëkv¶·aúG^û0:_e¢þã%§(õƒãõ§øF †IåaÍÙ±å_wò?ÿgŠPúÝèws;îSÔ~{ í¶r‹þ»Ý5“zÜš¬²ysÕ<̯­EÿĨé¯ÞÛÊá?šƒV%ÿø¬Æ‚?ª¼Ó:Òwâ»GQ¿ûQ«Š}IÆáà-ŠëJ-™‚ÔWŠ °­GÔ4‘ºòmÊF¥œØ‡­_r€3Y@¶Â.yŠƒD÷o‰Ôgð7cE_QN$ÄŠ¥Ðï^K±ÊDZq{ˆQ.ƒ›Ød¢ŸwXýÓœÓ8ÎîfFÈŸUâã=¾Ó+ %?þ£syȹ.¯6¦’î<(üv¼ÊL¼A øÐ]Œ~~âŵé Cm±\Š\ÊJ›ùÈêݬ`ÑýЦxQ_lÑVÍ$¼•_Mf±òDàUsÈ;*ã!*`Ëç’u}×È Øÿ- GÉå+<ÕK²’ÁäPXuùGxü‡ªÇª°Ìä)Æ“Do#x*Ñá]çêyá?žÃ 7Á–øá“ŸÁeÔãÉ7ÇÓŸr¼¹Îë Ĭ% ŒK4Pºa Ïót×ñlr•ðqˆpÀe¬ ˆíß‘•]bÏE°2™ésйTðGjOÑ“û^+ï’üê5÷-ŽQÚ(I-u1:{3>È®°w±Qú)bû‡²š¬-&ÿK–¥_•'qIal_œü[¬àY‹ê‘ò+±t}¬swêÏc}ðOV߯rd_2¥ÑKfÄïÿ¦â`õ›è€ ÔQÓR­l>ÓŽUY©)YÅZgà,†Qþ†NMÁÙÚpO†â¹bÐÛ÷"g1u˜ùƒ“ä`WôJ™ÊEε߸@ò®Ò›ú] 9n¬ù OtžkOê¶ ´n<{)V_!c gß½ôJu«^•» öê0÷¹'øÕc"õÜïËäÍ`@N“!ùÀÔ¿ºÏ}™BFö'*=÷°«p²É-é¿{’'ù‰“»‡lÌ^ìÕì1à¼õ¨8$yÆ|ñú(ÄY{3ùaNrÿÁhØ<åtæ¶Žwù rJË ^7ÃEú‹óúD£™Ý1z’Gðü÷À¯&±bUüQk:­£ÿîXc6H…"ÛéuÈZ_èí§0€ùCDJôƒ-‰p*êæT“l‡%Ë ³óž§õƒßÌìöÕ(¯RÁï ³u+±äý1ýÛ]9YåþŸÎL˜#ùù4þé|H x*Ù÷)j¿ð­í¬rþ£³W»Ì©øÚÜÔæÔ&¢ÿU´Ÿ:Ìý~u[­›pãUÑ—ˆ”Zv*>V)~øKè]ÕA`b¿_!ôßÞÕÊ`²‚ÝÆ‚l?Ä+üGJl}rÝGìWñUër½ŠõÙf: ¥û±¤ËyŸOÁ凫CƒD_AXç©ü»ˆü#‹ˆŒ/.ÈüÁ[bQøm¢øS`´WYûÈzsNÛŸ¼­žz*V<’Ù¡ÿ˜¤ŠºB“…(z–¿~bdléc«Â±7ÙÓlÞ€ya¢ÈŸ¯¶6äª9þ[²ŒbøˆÉäXV-ÙL”®MÉh^ÁUìeï¾ps©?ßýKþü)ñDйExZ¬V ²˜Ÿû¦o’Ùð+»‰Ó3È»Øúwd)cÀ£öâGF×pñ«ÙLm«D¦’dh:HB÷i1O¹ ýôXôW;±{%xW?bíwðv&V«®þê»í™º^ldµ è@]@ðOs¥«ÑzÁºOÁ§Ãº ¬õBéÁ•òvíZžx²XΑ0·®”ÚLŒâ~¸á>â“’ÊÍÜÁfÄÇ9Ðï^†¾Äˆàj¿Çä]‰ñîÉm> Ãª'ÆþÔ·.ùÂPÌ0ì)© sUk4ÀþÌÿhAÍF{3+v!;Å®é­7Joô“™@lg†©?Ÿ€~×êþ©’IÞ“Áв°X-é_²€Î»ÑïÎ5‡’ßL0ºâE c=AýÇvPÌäaú—¬%ðϸ#͸ƒ¹ÑUÝFiëmÌ%y³\‘.#o¸æOò8ñy:ãj„IÔøÃá\Ád1ÿ#=ùÇrê?\9ÿ¥ÐïZ3Õ[ÑÉÃÛLeâsÁÃf“wÅî¢Tq®½ùN|&O(j®,`Ný…³š®)õ'@"ƒ8%e4u>r(Õˆ±È¶0?ý|w»n/N}Elt¼Ý˜J˜×Ì…fn÷fŒœÏ¢ž!ê?Ná?Jd´äì’oÅaøôðç»Ø×>êúãƒ4P§ÏäH6ö–Á<$÷/I,mry†Åž•á?†Pž„è§Zܺú £)ÙË1ºd†{w¡sb#ü‡´ç£Ýßp±wá>¶·ºÀ<§ÆºïK6¹ï¢¿Ê¯´PJ8,qr¥™’ÉñY˜W"‚O5ůjkžZ,í*ëØl§meÕŽj üG;%º5ýîS›‹ÖüªVn5Fm?/Чò|A|mŒÚ2Jû<©¹b5‹ƒŠ\†ë>%Åú—D'SH¯ûÐï>Š$ÿ±K9Àü¨Ø¿5XB«‚7¯œ€]j%fcE…<…­LÏ®Ž"‘ˆ —T\ó&ÿXÍ¸Š½<Žý»KÜû¾Âƒø+|…ÏKµ÷%ŠÌ¡ÿ§<‰ÈWÚ㔆ùk‰.Š÷ñƒ³k)?ã?l(ºù,‡Ø&ŠüùçÒFaÏ»Ãm|'‚/K>L©èÕ,óuˆ}Žáïn°óCxƒ4èÜ~ñdÞÙ:©1a",ýUKðª*¨x'½( õ•±›Á âIkzT™ÇÔWëÈȆÓ?1U8+Îd~}Žl€ !líVYµ¾ð€#+ æˆNÀz_жJú]壖! ó?JbMÛ¢¶½JdÿÞÙ—ÙT~ÄÎ-á?^;·üQÕ—~#‹ˆ×RCr‚SQ+ØÕÞÊsĸõÀœ:â? º°§êÈÓ?ÎnSý©ÿH¦oRN…º‡ÃÐsyrÏ£¡zµú_QsgŒ§b¼ÌÀœØéàW ™b1Âø(‡ÍÈ“zàÆá¢ñ»ïâ?h¡çQM¹A­>Â6Áãª/1!o¿±½Õ=üGC"é3èo?ȳ(f³¢[ {>-@qP¼92‰¨æØ_z¥: å.ÝŠÙ×YÎCú¼ t)Í¼Æ ã0 õH¸óÔXœ¿hHÈ[˜”Y ©©UÉC_~â£ãv¢ÿÕ^üÇ¢²¿df"«£tyé‡}ïB•w9" ëü‚N!mè*ó ÝÙ6Ô±%ñC£ÈàÈåú`f\;ûµQNk©8½­9}L:·õ©¨¢:¢ßE÷l|'£¹‹"x¾iM2üˆo/€ÿèbö3NqZìØŠ–` WôŠŽSøXñ Ö-oee:”6Ò}¶L:·ú·ç'³ŠK-¡»ÝÓdDÓuƒù É]‹¢óJ!™ª@þQ„È$õƒ÷Wüßû Óª‰˜îœFµ]Håþ£žÖ›üãf°O:D½X[ô»q©Ôß(-÷ÒVN©:Uè–›FKc¾F±‰âµ¶ýnï(Ö¼kíþ2t¤…~A˜úeø$X¼|¶[ôCã•Òq‚·ÕSÊ1ú_"÷"î¥åLoÎD'±ŽµuéCl?þÜ^DfÅŠÚbí<‘¯e6aMÀzxá•’•ª¨&ïû¹ÄíYõ¸úIŠ ÿ¡‘k¥!~óBoæŽ×ƒH/݉™/pÖ¶©/k*¯{Ó¹éw×j³UÐà{,¶ä=ÖÜ•NÅÓ1™ŠÀªžÁnâßëèÐNâeò”ûÅšþ¶jZV[‰Ú ÿ¯2¿óCgnÞs'XA|öx“÷|\Æ`<Ö>}ºh®ÅgÅy̪Î÷ÆF¥<ÿßçùÁ«ÛÁò—ÀF Ï`£[aG_à‘²V3Þ4+Ÿ}íxs×dû€þÊ-ÝP¬}A¼În}üGj¼I/´ÂHBò‰šï…ðëŰ”øÝϱEieMÍû§Ó]Wm/³/zæ£yíB^µf¿%8XQþ=ƒéüù;ØŠ”DÌÐuzs+—È—êŠyÚ]çÖ‚?ª¬>ƒ8oyÀä*±?!ó9ÿÈ‚…¿Á,V«»5¿V=èð{!ØÞä7ËBDµs• ¡îáæQ ‚Çø¨Å¿µ¶2.c"CfŠLÃRŸ àT&”<¿jÚ4R'缃Ý£½_ÿCÛj½u¢ wå3LS+òÈÅx£\蓺y'7Š‚®?Å‚ZU*ùÐKÝ«yH>L6%ÿ[^Oí$†_U•úÀu¥”{ÙYsþ%9˜å] fÔ(܃zç°IqÙé Ö¾î)jŸÃ<–Úêyð¦9 ø«È.Á4äD[Ÿî‹ EõÍ ;ݰ¢ŠÑ…ði4cõ°’çÁºFÉ¢œñ#aôW#ÔW¢§M# xÆ÷–†i‚â§ö|ýw}a?æÓ¿ÄfôGÁû†ï*É×àWŽpå™_Zù½V”¿úHæXŸ¬"3œÊm# Õø f‰”@eûÀ|E}üV,j6æŠ,'O™*¿Èz\ÿ<柗uœÄ4J%u®^™»§wŠ³Û„9’ý$2+²êu2£éXù³(Œé$H'ÞâæWrþxøô&.@ä4U†)RŨ,‰rÀGn‡?÷¦ÒXÈ¡Ø üÃé?üP‚ΙáÛz·Ô·ÀŒ…ÿðeÖûG£Œý„YÂÞÌ~Š) ä4ü¦®føUæGbúHe²ê;  ~ê™æ¸ÿÁŠ£ØuÖ{%‚ÿøwñ+Sy£ŸH¼%ù‡?yÓŽ`ïqLCþ±Œöçu¬¯¼³uW]ð±ÖTÝ–ì¢.oËýïÔŸç°t\Ä{ñÁ»­þW‡É?ú‚±í¤WYÙpû'ÎT¦hUX-1ÞÂêéèOü6 Ïýf`)ÝÈV‹§ä–~7€ç€ÿ¨„nÁ¿áõ/ùÿ±A,#éO¾‘‡zˆcxÊ­àÊ`¿§Â{g'òNްÔ.™ám2Âp_Idm¦p…Õ¾T`~Ô î{9P¤7¬„õ‚ôäðgа¾DïD\þØž«Ö~9ë»Ñ»iÊO½¸+Ó?±q€ ú§4Øð0+¾² ýß ßíH5öTô»oá·û‘“ì÷)M­õ}ºZ %·KªïS…z*ÓÕð秸[ÀhPђՠøQ•šö‘XêýÔ2Œ7›Ñ_k°Ñ„i~m<þø+ç$ÒV‡Zo•°ô»Oð©ÍÉ*¬©ï÷á?¼è<<ÇxÏ$ŒšT¨œ½×©Š£–žf*¬Òpðºâ¨ƒ'Sÿá좔VqSwëÕñˆï/szÊ.àBK™ç—“¨üùÇ(¼å~gwéÕ„*íÏp]Óð­¹ÈͲ ‘´WjÓ¿$Ÿ|‡Z`‹ÌÏ?ÆüÁù̯­_á B”Ùž¤ ¬µ¿ên õçÉØß8¹µzÞfgý¹rEsA+Õš4±ü&Þ2?JÚû3±]Gjáy¯û¼fýx«šå6jiÖ D—ƒ°?Ð}Trä÷OmùG/¬Â¼;Œê(uÑ%-¥w!û2³”½‰}—YÅ>‘~‘1ñLxu3)üÇ áFTü µÚ™ÿ ÿ‘á¬äN¡´ÑM1|+ð«¯*J€òR­É4ÖÚ³à5ÛJªèÀ›LmCý¹³ŸÙ¯VùõGð}ÉÍÊ%oñµ´ÚXø§Ú(ñP[«ýÉ4['òç~õñU-mQb†Û<ù="HœQÊjÑ@”‹ ¾xÉücýK²‹Í`É Žç&'­CýÇüy<æ´Ã_T$ÿèŽj¹0™—UoÖ äá&(Ê6¼ËBlnY}¯ÿùî•¿z„%_Æuî@/µŽk¶¦^ ¥ûö\˜€kØæ“ø½cì}ö;‹8õKþãƒm šŠï÷&ÿ¨« ±˜Ÿý*]’Uöá?rüø ;y›ú‚×x¡µ.¥% e«þÙåe((Â%=¡ÜJFó?Þ trO õÅLq—¼][ž±Þ#þ¦5µ-©Y ϼĬËáz`Í aƒ|`±vs׆`ýGP·‘ õBÞ‚iÌßdž8KÎTËßHûë§úó²ÔŸÅ”ÆÊ?'ÿˆÏzO ¶‘ ~û VëƒQѰº­ÿ‰Åë?Rë¼ Ü§ý'ja…üG²ÆÂØÈdðã°'eUz]=–w¨Œp‡íH˜FøÝtl¬¢sU2•V¦!Ý&ÿè¯Þí¸¾ú(0¤êÔê%2†“ÔÀ %®÷!Æ‹ÿøÃhÿx*“ô¡ÚÏêr…Ø)®v8Ô3™ž•Z˜Ûø…àG—à?^K r øÕf:MUa¦úæn$âOMúRÎÐ@ò­b¨Fâ?\ë¿ZLýGQP½òkö£Oñ c¼i7K2Ñõ"º«!ìñ9Èeìhc¸yile½Íôo§¿$ÊßýÛ‡)µè¿›OÂÕm‘ùá¤ö’Ì k{üG9Ø/0èñìeá?LЬ.ÌÞˆKþßñ¯¹˜ÞvîÂ9oè(󳡓òàù•/ÅF½õ¹g½Ñ`oKá?f≠PORœk_+7ÐÙdØ´]Ž$zTÑôÿÿóRé® \¤«v š½!3£Á2í$/]¯²ØÛÙ÷›®öÉLðMeoOÔMrŠþü£ouN¹C‹š…ý×oÿ¿ý™þ%%O. Þ$£ã³¨­üÕvI¹~·/üÇ…àœæú«6ðç1Éâ*W£´Ü3ê?zÐÛ¾ ˜ÃRñQµøMÊtÒ7´eZmxù­&Qt<üqìV?úïž¿J@ü›E?$vŠþ⹚.RW~LY«äV·ÙMúH¬Þ9Ë2£$ªƒ¸†õòÂÂÎ×ç‰f"w¤üGymú«¥°Èþà5ÑšÞ&V$ǵð«4ø®xŽax–Lz¼ýÇ`EP}þ[“ç0›†è¶å'Ázù÷ñöwÂÇM%úÿ[ÛÁ5WÑfÿyâgß’Â÷X™HÞøe  Q‡ùá9v±þ°­ä»8Qá?ê¶¾j.îØlPÉføÈ*ì`º2|(#;ÛC>¼î:În² O¼ÜV¸ËZœpVœGÿ’R|oz®’>¤D¾}xÂ›É ²ËÚz#1Q<"ÿè†{Êsñç÷5/«Å“ ?k{Áü¨éðç°•y‰¥¦l€eI>â.“yAH^òïNtl¤-xŸwõ,ì¸õ{Ã\rIµI0ÿaõË}ÌŠñäJî[sì{Q#ñJ‘ü3ÿ<6Œo[üfm¢âØÝlôoŸªù…Y/·z {? +¸ŸpŒ3Õ|åéžDÿ«^Ìœ€E ¿q§¢d;Ϻ"ßùŒß×Q¦Âx‡áÏ»3Oݪ)"vFUU“®)iì2*€ÍÂþ­Ç Žc~­nôÄV½!ÿȇ½EýÇj2‚}zÂ0ùÇ2QÜð~º9VÜ<ê¼ñŠ~Œ#äjô»£¿ªiøƒžî™ÌÌT´OÄ«Žâûò;É?↘?˜üc:™[~ù•*tËôç  .>¶™ýÕa"üq0èGà?.1¼ k tÅ“è_œÌ¸!€òuwГùV$ðo¹ýn:»¬&ËJDÍß:žÄsêý {"{!ôWÖ»9êî‚TŸôB[ÐSÇ }gð¤ržh´2þãlÛsáþ*-Uá>æ`ò:T¥x›1ÉGîÀ×<¤SM9s³ÜK/üU  o‰±ºÓ%ç‚^Åá?ü¨ì)¢aMi×VÁŸCüóOýú+ï‚ùóÜĨۉ»—‘@•œø6…¾þc¸§†§òùyÅKÊv¥0šï5pÃaŽo€=6"Kj fbE5é 24ý»±"±ÇÚÚíœX Šs ôêѸñô´âmå=<ÇyK os…ú%BÿÑ_Ñ©û.Ú‘’ ˆ¹+ƒÚâ§c%üÉC^bcÛãáæ‚ .ÖöE°C‹?¿NÅÓTüÚôù¹ÇÔŽEí2”*5rç“üÍ),þ~ôFYÄ1NÔÏwÍúÊ7[5'˜ÏR6­ þ!»<ƒ7´æG“-d_iÉA®îcïÖ mÊ‚²ôOÞ»œHVÒÖ*{œKT üj(Þ±UþDîVýà{ð+ô*7<ƒ…_U1>Ñ¿=qŸßH×+ìø*tKn²Ñ ³^9õ6Ït0ž{\ÌQyG/‹¯)Ü÷•1€Jì•æ$ó ñr{&ŒlÃ6—éò#oê!sÁÊnU΄z*CÔן/ÈüÈ?23?ªŸ±ÏpÁLµx`lá`³ ýP:â?^‚äÙ»m+ÈÝa= š[\-¬üÃF´S ë\œ¬ë’qŸúAzâÒwKpýÇØê¸T&ÿÐŒyð)cðHù³œ¦Ü!jmS+ÉÔ-zžÁþ¿•BGtjAÆ"Ô°ÙoÆ92„î(xOà5/SÿQƒê{9×,|[zøýä`wã…Óšö!ÿ8KœñåàZîFê*'óÌ öâæØü YÒžÌîJÿÝøL¥êLßÈf:Ø—<»Î¼E͉/ý.ÎÑǵg¸-'à«þZøé½©ZoÜ?ñ xZ_:(&¥âY&ëªTNÖ7ÿ–ÞôßCLx‡¬º5JõòŽSøšþW£ELÞ2«SjMêÏ+¢´ZŒ..óoÓZ¹à?vã?zÓµ¹(Û}z’2mrÚŸÒ°[ÏÀYÿ7ýwS-:+)â3?*2šÓ'ç_³=Q.’ôF¿{-¿ò¿êÈüsU-«|µEMðÒVL°8±sfºªµ¡ê\ú·Ïf~í<øóÖLÜ(üóÄr ZÝžÄÊ ±îš~I)­™ØúTú^ú·@¹Ìk›²E))˜«Šué…=¾Ç;Ýš¸¶­Xý £2´iŒ|N‘5{´æÞû `­]dGAœÊ%XA•·úñð12ÚXxªœ­ˆëÏû)ßDlfštÒÿ ÷ßÌ™¬j33ç©CÌ|nUŸ†-*¤¯ÐÎE°ÃÂÚ$loWüÍØäÂäóaÌ­ùçˆÌ‚…_ÁÖ¯ÒâYþâÊÄü¨_yö·¶.jòŒàWîðD•ÐOÁ|֗Ȭ¬²‰È>¾¼I¼yoÒß7ˆïí~^þ1Ké¯UÀ·%ÆXù‡Õ¿}8*+… cõòÔÞké„]~Aþñ”ì©9} ,¶ñ¦ãÍu @Ûcu@Z®Ìš^Lîå9®‡e˜ ß1ˆêì¼(NŸÂqoÄŸ¤Â\¿ºÄ÷Çaþàzes©à*Ñw2~­š gø¤$r'w¾9õmE`ÐÏ‚áá?¾`ÿd&_]®»ùÇbØö4²Š¥…­¶-EÿÝŽDÖò„ðç7É|¢•ŠK…Æ=òFDä#Ì—tAlBMá˜úÊàW¾äMÍdJòîõT-…ÜâHõ¹À½ÿNo©û°ÔiaÞ[›Œ0󙥾,f°Y…~·-è‹ußá‚9EåZžù^=k˜þ%^ð¹äwò¼úÔYã;·ƒ8Í7z×nÃ)C½øð¶ñLtMa¼ÆÚaŇÌÿ¸@æà"²8ö—C) þ…¯­ˆ?* þVŸ…~÷uñññoäCÉNÂT\`µrLWmÃýMõ<=ëñ_“CÌÿè‹Òò$žè=ØðYLñ»ò¢~°,uQz$µÿiOc¯ 3ýݸ ^Êïô`MVÿ«°i-ÄpÑα¿#Ê9-V¤v;³|-îèC¸öæ\ß@ð°ÎdF;Ì$ö¡Ì') Ÿ’/7R®0‡ õò3QQS‡×ôjŽSø†N®ÝE N{"œªú£ =Û÷QÍ•wtû<&×6µ¯ ÿî|ò‘¼d!ÏVTñ?Å#ÿ(ÀÙO'ha5!Ÿ÷êãö°ÁΦù”>JaÇ}ŠÚïÔ”OŠFõÇf­£–XíÎ*{lCÔ“êZµµÚþ#섶߯~ÛVJk‰OND×@_‘^Ë©µWW(/µù"¶ø¤ ÕΨ¡ß‡ß¯f³õÕ^2M$3jàip^â’"«UAØ5ýˆ8.¼DeÍ©ÐûÝjS˜õLë…ÍÚŠû‹ŒA—–J¬®˜H^ÿ¶¢%vì°è!žk‘Ñ_•Ô|´Wb=Vú6x8ÌA,õP£úDã±åAâ•„¬Iß[1>U¹ˆ691XŽ <ÁêÔÞÖg“„U´ôùŸðî¬6®¬´[<íÚPxâ>XÒ‡X›fp“Ð,Ä.ãͪE,úîc#é20¶búíA>-ô}¼oóPcâ?âÕ:³b}žÄx<3Sd ò/,sByõà?Fñ¬ªZYókÃëCÙŠç—‹½Å“»È:,ÆÝª÷ÞFZ½¡>Ô´‹÷ƒá¿Íï©‹ÿ¨ÊzØñæ:÷÷ѶUµúïÆó~ž ¯4=ååón\ë:VY‚59It]Ž]ªärçȼ¾â÷‚åø8— þ¨¾ZGŒäžd% ¸§5ä>0É:X®„tÜÝB¥³ä!OQPÅ"›¨Æ“.Çn'“ݤ•­Ä4íG˜õÚ£·B•ÕÛ;r€»(+öÁuG¿ÚMÿÄlDø¥ÍG茫IŒµ¬æŠ5Ý vÖÄ?³~\ ­—Z©Þã¸Ó:¾ñ"9O:©’(°²£kd6ÅÕ§»`>Ö¯oT3ŹáCöÉø¸³œÏ˜Ú”P'gºÈ ê÷»Ñšæ;—Ð?q‘QY01›Ä•.ó̆4ÆP X4û:%T4c)1~‘ݱ^6¥„ºA¯É5˜x‚{d £ñ”©ôKlþŒT»´¦»Ê¼Ò^##U!E™¾ž'5…µ¾ØCÄ3Ç€>ö¢žõˆÂóËò·þ»õ™Šèb.ÿº‡˪@Ïk¯3}-[#㇑…wÏïw‡ÿšàÔ_ÝV®k“Ú›(¯:óÏ÷ë}ð:uðºCÌF'” ÓÌ„Xý§fjg}Ø:IuޱŒÓ¥0Û¬3.ÑÓ9Ná[æN:þãïàÎÚöô¿zKÎåoT±GÕ¯”´O£âº®øàëã›dÈïEÞ£µÄOs´¨1ŽÛóú œÒ*ļ¸dŠG5oÔ~oûª\`~Ô`­Qm%NÃnú­vVKÑ¿¤:ókùddÖ}~w½%3ƒÆŒ`þ`2­­ºT ÂO_ÖfÁ°ŒV»8Î[dÖ»¢åÄïÿ‰Å¥g$Wð£I+--÷mº·¯¤~ð‡š'R+.§ûb!ÑéìÕ*p› ðÕ±s^X0 O}´>Åx\™Ž(¨g9Oþaͨ8¶d͑ڈõ‰þĹ8@Fû'ØÌ<!~5Vù$rS^Ÿüƒ™èÂb5çb),„ä9–ô.œukr±ä%뵃\s#m0–'WuìÈÊ?Và1²ðî/}h'oà1Ï‘Kìæ ÁÓ}§wͯôW6¥¥š›»Œ=uåJ«±Þ,¼’56ÌnxêTØéÛàW»ùµQL£“qq-a8»ìÉü¨jx#Sn7³Á’æizƒgå—ÝÀѺ’lÃBU3xÄîwóì­^×ùÂå?L屺‰ü#9ÙGoleaêé\W1|Gþû„žz1ÓÎÿ7@õO¼ž $.=‹_m sëSÞS‹Òy?þc YÊ6že ºÜ¢æï0õƒ̰þ.[ –ºÃoˆa=-î©/ÙS%êÖë«É?&c7aÃwã½Rðÿ¼èk_ËF3ºƒ ÕùÿщŠÄݰ>…ñ{ÐK1ÓÜqr$Ô=œAÿÄ^d»ŸônXÜjx­7ô˜šfÄ Cš@íà>0Ozþ½ÂÃD!Õ¯Ü^–a7¬~Ëvmn¨õŽâ?²ŸÐ—œ< (k3Ö“ÚÔ<¦ÂÕLÁ|¥7Vg¦Z¸ÀRLâ õFs–ÿ9F&κ‚̤æ›|Æêør‘·Â¤î¨ÑŠn¶ñÐaE6ÕÕôN>ô»ÍÄN}¸{ãѯý`)¨öŸÂ´©^‰ÞÀêB@¯/Уmò }©öRçM&(íÉQï>¢¾¢©ùÚ¸ WSjÅÔ¬Ó2™ÍÐY´t\orDËÄIêÌh$Þˆ–Faz¿†×¿òµØ¼‰ÿØŒž·г"Ôpl’óÍîÆô»A¼w a±ŽéUþã–Ò[k-’¢’ï†B¾®îm¥fðH_\Ö{I>“Ç^ÏnÚó0ý4•ŠEèŠRž í÷Á?ü˜qQ†ä‡??æ þ7>­¤4R;îLV¥ÿ¿­¿ ´}cþymˆ– ü ÆÃ¶ÃV—9O%á?\•÷¶‹Qºœ@[:ú—¸`aÒêݘ?˜ÄjøÕPq†y1´~ª³fd¾ÀoVUþ×tÉDßNËL4ˆ÷XD‚@Õ™AÿnÅYÊfê×`QW㋼ˆ•“€C¶1™=yÒv$vc µDJ¿›=ÙU~ö!±ôßxŽo°(^0}±8½ßÑì#&±[{ãI_8žÔ¯vØNy)Rë GZÏuXtK5;ÿñ„¼&ûÝŠŽÕXaÿôØ`Džä,ñ—®DäV­w´—3™VÑVžÇ3Ä‹îånÌG¬‰½!ôà¡wùÝÖPM·™rÕ˜k­†þj>¸œ¯ψ:bÕ"æ]ªÅ•Ï¥’<…&ùîÊ2­¾Æâ?&€ã?Á‹Ì"'4‰¥×â͇ ¢ÛÎÔ6<á»üˆÝ«À •'Gòq¼¹ÎýÚn¨Û‰ âÃúã? É\ÑôN½±›#ÐM%@±ü€ž!ÞøôDÚðxWÈêÞ襴…?áWµÉ?Æp¥Ö¼À¯Äøñy/é¿+©îËF/òL`ØÕ`šƒèœ…G2¨X<ò³ßTC þi–uKõ¸è‹Ú£0ßÒå‡ÿ؇vÉ4Ó¿ÄšÞý®D[ËF¬³m £'ˆzýP˜þ‰“è§ÕíÂW}UÕÁ|ÞRù±ÀHƒ0 _´ ,¦™Ùžü£Œÿ#ÅŒx9_²”µp^>ÔŸ/õL–‹|Ç pB¼evìîLð—èwg£·]JD~ªÐ/Ðm¸µyññ##ñ3á?R‡ðωE)Çzy”$ôO¬D§AÎ|æm8SHQÿ…Ú}µ)Óè^Òþ£§¹~: ÈurŠñt¸Œo쇑J.ç gG¥2ú«’Dc&w®:˜ÓQyÂhO=J~s©5©ÖžÉn·?ÆJ3“Ðø–­šËÌ(3Át]ÃsÎç4 NTö¹rV+MvÜ™¸ÄEf &Æü¨ö\_gð°<øÉ”ö¯ô/¾ ®@ `&s\ÂLÃ%<³¯äÞƒÈ߯ê%§ð.–¨¯HÌ[Ö‹ÇC_MÎ1†Îôç©ÿˆEn´ˆùnLØÍŒª÷„QÖÿ ]ÔÒš÷À9n‰¬p‰Þ°;Ëÿ'ú]ü‡3^L£ VÒ;ž£óíŠÌGŸm¯à?ª‚`ÅÖŽ× ¯£þ¼ óÏS÷oÿñÊVPs9éKï(üÔŸÓ ;~/áÆÏ/`§)a„à T“W°ÌW8¿‡‰ï';ÅÛCÄ#¡¯õ©­¹š›5ÏQÕJ&Í᪃ô¥2ÙÍnüQ’ÿGÜY€Wmoÿ$ÙÙÉÁÝ]Š)ÅÝÝapw(î.ÅÝÝuðâîîîZЇï—3wÎiK™¶÷{îf -ewg'YïZﻄˆæ9?qÜn9¢”ñôò 5þèÇüá2`®Šg?FùkÝo¼¥³ð9ú›°ýåázn³¢Õ?1ú‡§~Üùæºö§)ÕCbÿ¶=×–‹ü«Ëìs9‘Ö j)FcU%xyøc8ìŽ-ºÄÝ>C¶×G=ù»[\K9>ª®ÖC?ŸFþÐNr¶z½lwK‘•ƒ¹Q§èÏwÉ(I^S=ŒÛø¸vk'œÎ¸±"¢Ó/½(ªÂ7õg½Üd½='ÿÔªç9$³`ßoÉ{ôȨ ~t0£Ò¿¤4ü••‰P¥æ$ö¾>¹m É¿:ì} ~t„{ýIocdV¸Q…^”zèd0MD‰ßböƒÇér^[õŒ3È%»‚…Ÿ¨î8ÄýN£áEùo‰HKýàW¢Ñ&àB&úžOÇâÏ3ÚÈɆLQ1¦¸nÄ¿Ääñdf|ø«(M¹’èÆj9@fEœëåUÒ¨3Ñ+²3å± y <ìâu:¿_7vàçÄ·ß…²°~SIñðˆµfÓÓSû9ÁØÔŸ»*ø(ÕÈ¿ÊïÿH¿! ÂÍ£ŸV𣙺¹˜ÿ{ü°âìµÞ}¼„f pw9B¯J~K?¿ËüÁŒx7^Ële¯b÷¥É\À¤öšdua‡DÜ—Dižé=ø13ÿ•úóüt,qÕ¤R¼7ç} òx„ãÃ7¶WÊCêÏ{RÿqQ±ºÙì·5T{ª¥ýu%bÝéŸÚ 2°of,ˆó?Ѝ3•ïàô1m‘›þW®zžplÎvDË‹Ož‰»>‡ˆfg”FZRP@¥¾}?ÖæK8ñc‹²^IW5•{¶ø¨žD¶Â£n,fêÛ°b3@ÉT½õiD‚pœe%®Ç_L!â8…/¾¶÷(Úü[´¾ædE‘Gaq’à™Ô£êÂ\¯‰¶+^LRøèÕè&UÉ`›ÊÚ&øq“XAÈ¥Øå©DIùô%Úž0VÌ§Íæýµúïúâ]YÂ[˜¿~V±8øqlZƒGjeAyéIé¿Ûâ7k>·µP’0‹=5#Ë;êÏOÁ=í$þX~ÞÎù+^ã$Z}ô#ƒ·§È£¡¬¸ü(ũĒ«øñ˜«ÄÚ.fž^™þ•—àÄëÂÜ[´¯±ÇÚd¢•‡w¸â|s]OÎÛôóùœNâ¾¼xÐçAì%z\X–6p-¯å;TÜûàÇjÙÛ¬Ëëä†ÝÔãÀÑçÆ™¿[Gm%¼9‘BXùG¬›¼¼wz]ìy# žy˜ˆLÆsØ¡øÆ~F\ÇüÚUääæ–ÅÅ0í©kkŽ*8ðcVp 1ÐAéÏSwœ^‡ßØÓc£6jÞn üR3‰ùHpH;¤u¥;,ðtΠKŽPß!þèE¬P–Z¹Ÿ¬¶Øˆ~Œ…Á_é°ÐmˆnZÑøÂæ b¸ÿ¶™øãˆž.DçæéÂêŸhõ%¯E6UQ®cÙ\óà¯&©G,Eµh¾Ä%iÉ¿z OiöÒqä üUö üU¥°:LbDy¹P·îáIÕ7îÓeØdòíCc×Ú´ÜʯÓDr™ÈsòG=šH b‡kKgeÞ ×¼Ó¾xŠôÔò3 âž´”àG]ê>žÑ÷}&Ý¿Psþ’¼«,öVØë·ô,ô&?.%¾Ì ÎÚKNï.¬Ž~ý÷LñÅšTAíþD”d'r®c|…¡Û`NwL}Cý Šjñˆ¼âÏôçòCšÇ,ù™pÊþ Dw=ŸôÕK;ŸÂÏÌ ÕL™Ê<÷«ŒâÔŸ¢Ê4óÏ·Á‡5·W´?ƒ›ÂWÓØ ‘…åúᚨL"kºèšE?/b¸"³TÊà Õ ŸWøþ|õ’ùµC´¼h¨e9íCÌ+G¬ìäï„o™ÿ|×#[V­¯(JÅš'½¤>«˜ÿ±L Ô&Š'Úº)ŽT{:ïgx>MÆvO¸ï6XœRÌ çÀwò<˜@xB d´}ø2Ï6Á$Ç?þÄŽ@çõ‡“ö“®(¦bI¿óõ±TK,=Eb‘,{ÌC?úÛb–ë^üvÖ;~<Ä[mŠJ›OÓ D ²¤Ôc†©t§þ\‡ïêEFŸUÿÑD/•^FŒ /ó:Ê‚ÄÞvƒÃšŒ%ݦþQXK„ÑÔµ*¸K‚£ˆ7R Í Äk´¦Ãùs¢ˆ™Žƒ¥}õ„bÇoãWðW‰ØÉ*"ª6`m%îÄdôŸÔ@gŧ]N´‚ë½Íj‰ò;ÂHÍà^ÔÌPÎqÒQË.FAÿ˜ÌU]ç_Œ!nQYËl†Fâ*Þ­U~ƒ}±öy–êâ­Ýt¾¹®'ç­íº…» ­¶×C䌶buZƒ'íaw~è+Ñ®Á±·'³í'¹WGX7%ÊEqô½®¥UV›/,‚o:€†=üØ‹gP>ÉÝšˆ ½MÿÄ7øÁ ‰ añªËóè×Á®êbÈ/ñG=ò¥¼ÙQzìd<ã0×”Û[õý†¼fÔC X£ó~¬¾£þ£x´‹làTFW™ Åχ®;A·8Eý)ºÁëê#ÐãË}•åŒUFnº£Œ€1Y‹‚ÞÎþ³üü¸ˆ¯P”(ì>ùÇ{ðw陵¥ÁÖ›+ÒÛoy¾Z¢Ÿç’åTžU°g³è7²u¿õ÷èÖ5? ™Ó`­ÆS»˜“ú~Ôºº?”T’« ñìÝÉ_/Íóð M¾ÕØýÁ„Ì׸D•ádð^ç®R?˜ÆéØaÕÄc¯‰ˆ¦ÆÉ¿Ë›~%ê W{”\û”D’Cè{uÛªº¤ÿ‰? ˆ´?7³Ú»Óÿê¨2V+™pÃå=®|4øá-\^ömåøÑ†¼úïè3ñõ½zm¢„ô½C‡¯WLc‰ln_jÞGçNݤæJú—ô7Vùx!«‡EfÙ™¨³˜†`õ>œ‚=[BÄ›BDÇ«ÂÇù‹ÕxáXq•ǰ÷7Q6›JEF—'àEâÉžÓcëaóWƒèC`ñ3“y´æ©6ì÷ì±ÄJ\ÃÞúcíÛcÙf³ç°ëÏ‹k‹°’ÍÁgıÂVÇÜÔàÇP~•‘gð-D°TÎEt\O+|~$C7X† oÍ.ª€Gç€g‹½Õ7:{¼ÄÕŸ5‚îkèdUP¡œãDe¸V3¦ÜÅù“ûЇSÚŠš—|†º¢†8E¬P[vÑ\·¦+”‚» ~|`~íf±Õ©7ŒE>|i:ÇsÅéÑŸ;Ãþ‚ýX„¥=Ýk ³ò…¨ì ÖÒÊß­ ­û…¿ª ¶GX ®ý#úIL¹f­<óUÓwl!ëô>u„o‰RÀy‘Õ€ÞZËP7<èŸ8á—ùµ%èŸØ{‘ÔHbr ?%ÝÉÞ½KüÑy4Ö7ùE%=6¾+5Û±÷‘^0ôÙôm!ôó¡¬× œŽEð’+ÊÏ„ÞêÆj²Ž23gc&}Ðã›Ð[å2ºnaá­™“ÀºÂc1Sh ƒÝ“YðW™°ŽþØz²qÉZžfì`~m¹˜ùµK©Ä.€^q€ksŸÊPŒùŽ ð§Ô@n_=D^çz¹”ÄäïÖ'â°G¸³5á¯îQ—¢›†NÞî"˜«îLvmËŠ9‰Ú˜/‰É&rÅVÿݨœáTqÖiºz+U©ÿ((ŸÕï²Ð g­Qƒþ†-©ÊÈNô‘ü¸OÿÄút%»„–Ô™þ%y޼A`fÒ[›.lÎý]¦ÿnvë.T{¹ÉÛØ‚Äžô/ù“É!·†fjûGX¬ûÜ‘×Ä9)Ír³Ù×°²û^ÂnO†{|¢çw>…þôç5Ë‘·b1úùX˜¹ ì±#Pf˜™ãa JB{ø«‚ Ü78„‹¢>â=\þ¯Äe•öŠKIˆO4>+ê¼9Îl/à›k}èUuÓÁ_ùô¡ÿ®›ZN¿txpþÃP?¸gËÎLà¼D žÌÒø¡f£bp)ý'ˆ@ôó´ÚDµ»ó~†º@ˆ/Zú`I›aç*0“è¥8LýGd,T~ý¤¸&&‹HZ¾p­ø§²VI)vÀml‚܈†–˜þW•ô¢Â +mMɘˆmÞŒâY¤ÇŠ¥éŸøT,yžcK·—°š±ªÕñy“cýú0°;–?¾þ:Ìõ¼éŸhïÛæ¥¼ÜÆŸÍÐä¦ð„EÁÚßfmø£|Ô|¸¼ÍaÖ”Ö&ùþ÷Dž æ0¸ ¸0Ãã±³•PTîðõhþGÁ…NàÇž zZð›@ýy"¬î𨖾zÊ Îì>Z¦ãÃ_Å•'ÁŽ[dõåš'ós;Â_Ååº'Óõ¡×«œm¾Ç9 Ç;PðõÛêD=q;Q›XÁªzñ™[ÍÖà×ç›ëÚß'›õçKaZä?Nr—Sÿ߃¨¨.ʹŠu÷Ã..ÃÒç‡ ¹Æ>o£Ä“õ´é¿ÔÖQk‹>`mAìÚOxšÄ¨4=®>ËlTú€ÈÃz!kÑÁê&l“-é5ýgàÆо¿ðW ˜ÿÑo'ªxã<ˆ‘M ú> þ°2nGÂ}“šQƒÀ˜•á'?Boé‡ÅLJÿ«àúÇdðc(÷ì§#þ¨ ×ÿ…IµKŒ,ät ¦¼zJ³µñü¨n<U‹âß‚;ŠŸsHO‚¿Z&²‚ª¯QïêÂL•&–š~Œ4úS©w’|®ªt'¿x¸PaÚÃ_5#þ(jŸDþîq"µèDY#ÌööªtèŠEýàò¯ÜÌóÄÙÍX²~ƒü«F¼}Iå-bJ®gÿÿç£bJÏ |CJ¥>+úëÏühóWî“¿;ýãéæÖPû«eÔ8ÄŸm.>ò×ûëWîÚrj­ÉDÍ{¿RÄÐr2ÿ|%ý¯†‹—š–þj”óyûõ_ÿú•ÃZj|qtC üLñEÜ'+#Œ‡»~NƒßŒ«y†kÅ•ÌÿH)v·X½h÷£¤—C¸ï5Ä@,©¥ Õ—ê{™G„§–¿4ùW÷Å s?žÄp´·°Ò~¼Ù ˜R›ß þÊÒ?’èÑÃä¯Ú*"xÓ_–üݶÖœXB²l¬ÉqÖüÚæ ³)¨ÿ¸Æ5ç?赋xa;ýÏ7jz°âMÔô}hgù›åœpZqú·ó_ÒÿÊš?¸'¾&ˆVü˜BF×}2ø±Y_†×œfæqÜQð£þû\ô\Zh}ð'*ôòxÐä,ýSð£/|â"²3SfMˆ?¶È–°v¾Ä3~hŒ­@Ò*üòu¾¹®çäùWëÅBT¢~øÅEáN.âí¯¡.kúG}ò„bâݾ¦Vb5L ;Îó+ w¨>\NHþªø1˜}•â_|eE«ÿ®ý ÂÍÝØúù?ßÓ¿Ýš ØÎ¥ ±Ízò^sQ?Øïü(Nþ®•Eí~ä€ã rÁ_æ´ÄRM¢.@1bP•˜œ¤>ðvÛÀ¨Fo™ål—²/Øí¨<£3}¿2ý¯"QÓ¼ŒúŒÆHæ ÍFÿh63ޡДCí÷C øˆžs)>5“®Ó³Ùf¼þç j ¬s ”û…TÙÏ2Ó?ñ6ù»¥Íü䳞…y›cqCðX8ÙÑh/é¶bñW®·/“’BO¬æ‰ÊT‚üÃäò6 ~p •ŠÆwðWÖü¨ÞXúÔ[$7ÓGø¹ ãüâÅá GŠGÎíWjgxK_ðŽùHOtÅMò=uâÐ'öYÐ*bÛ ò¯Ü©|bœâ«c‰r<ÑQúƒoVýy/º´w^ïUåšfM¶ë„ÇW@ 𨷑Å^õc&ù¶ßé Ós} }µ*Ò©ª=Q¶IoôóÙ¼“X‡Aøp;õ,Χð;LìTá”C ³&“÷p~yà¾ì¨í­A¸„䇭0Û‘{Qô.ÖË».~§D¬Ã‡óxþ¿>¨@ÅG%çɤ¥~ð¿ÕÏ_ÚÞ)Oà¯ÆjñÐ?¬5·‘¿;T­©¦aVù›+ž φØJRSã Û‹ùQ¦æ©õU;ú—ÜÒ6i)´qê@ç®Ã³Þ -œNvîÑ>üîUT&îV<µXC7ýŠ8#F‰hZîp­¸‹þ‰YÄ&8›MüëÝØÏlÒªò΋½°¸˜EXÛñhòmEòpáG9ôóÛ0'ÖL²}Øv?ìólòX~0-â;|üe|õDØÆÝd¢É0ñ£—¢è1õ°?©©@ÞBþU PÓ›è%à*r1;ü(Ìü¨+a\sim ;ê…Žýˆë-À¯±¼5nø¢“Á?°%ÖÔÄu`ËAðÃKO.(®JÝàwæ#ýwSƒdVþpC¾»†£²q‘…ê±ÔIäuV|Èj^dH?PÁ´h¡ìrý‹Ã_Å%3v!1Œ/ÊŒ7ûüˆæ:™ø£¡8‚­íŒõÃÒß"Þé³T•¬¯Ðù«‡ên1•Sê ›”ü8…w°Åâ&ÑˇÃ\E9¬ù‹ð–­YDVÞÙ5âÃxô/YöKý‡5p0;*% ×(¶ÜNŒTK¾sÊDþU~jòÒ¿¤&ÙRüVyªÖ‚ ¹eôs×ô¼¿Î°ñ‚•—‘“ø'!ÿ%pó¶÷;î ùWµÑ+ªš|V}#%ñGo,ïzÔ…¸ŽüÝLú‰ù»ÞêWGþÕ}1QUx;sjY‰¦Ó}=ÜÐ8ûÛ(Eø}5åÃè˜ò…ŸJ§}ø«àõëDê%‚ÔEåæ»¦Ó%rœ1Eާ¢Ââ¯R1UéjÍt2” ?ø®ñh §è!ü'9Ò™…k QZ%ºe!7¿j} œXuªÙárȬý~Œ%7¬“‡ã»Ñ«­yÔšHGO½%5¤›¸î|ø‘eeI~åI[N¥‘;?y¾ýE:/.'“AP[aÚ_ 4f•/šC”‡ìhB@/iõOìdþùIú—äÄŠôÄ[LOÿÝãèçžý|Y ÑÛ;z—l#þ¨OÆr|º®Ìpä_-dz¦œqN’µ÷÷¥Úý<.Ïg <ªîú £ˆ}“rmÉÍôôÂêfïi÷ J¥›¹”ÚôÁ^ÅVg•?°onè»èšáG%ˆ?Ó/¢âÝ·ê‚M[ÈïÊ* Ó¿Ä•}ú×ÂõÈ¿j‡¿RkJlœ”OXù,õç_±pg601“Ìêt²ÁŒ'Bÿ{¹ý#–Ál\žûUÊ™`ÏÎU%»íªÛxú«TG»ø†Æ0•úŒÌš‚ì…¢Ò½¢8ÁWˆŠbåO0ËdÜÅS;DýÇ‘—sªv¤Î²qÅ\ðc2ñÇæND(I÷m˜·ðWYÁ¹yr «>¡û&<‘d"…snJBu#ü•;(¿‹'UÓxJ—ú`Ydóе3lõ#˜ÍT#ÆBñ~@ä6‘:ÔdœÍg°b‚pM„쥔ÕNaé?àe,–(é›Pe<é*_ÊœŽ|6mäï>3S2Y<€îZÍ"F\úïº÷ÙÛ\ºqöUœû;Ãü(«g[¢Þ|ò–8Aý‡Ýž”,³ÁôãŠv˜öcÄÒ^ KŸjŽœd76±¯àÇ0¢ÖÝz'~|#w2‰zñÞôùF]ò¯WŒ(f3®}£9Ê>ÊînÏAOÆùô/)DíPêîßoŸ¤ÇSÞ¾är¿¢ŸWV&+'“W骸ú„x%ÂøÔ®¨êwµ)Ó,²h÷=¼w£ŸS›«IÕêÊ÷ÖÞ³Õ'ÿª06®°¾Ú>­’ê­¼§?j{µRäïŽsî:Œ9þú¬–ŽûíÆ¯ƒèçÑNðT%?<è!s}ÌM _ýùFeµ’{?ë2™7ð:ùõ©Më ~ì‚«]Œµ­¯éâ‰ôáØc]æa=‹ø—Wx¶b“N`£ŸcçkÖšòÞz"Þõ}Äaן÷&þÐPJ:%är¢áFämM@ãŽFüq«ÿ€j§>_çšv5ŒVÔÆáSö?¬©VÁLolDrFbõ,FÌŸý®á—Õk¨žH%¢ ýŽ|·uG?¿Ì 5°Ä³AŠ—ú*™ôù;[^áNÃfyqÝ£ù¹Sè_~x£”áô£Ëu ¡¿Cÿðæû­y£õ”¢"ø±‘è£þ²•µÌ*DÎ@ñPçG=¶=¢~pQ_7,Fr¸vrj;‰?¼©÷˜…åLB–ñKb„­|ž¬Ý[\ókÐKcþù"eUˆK. ~ôg…ÂxدШcÊ5|w3¬tVø¥=F64ÐDt¡­cÄÄcî¾Ô‚¿Z‹LEýàÄ_ð£ý¯zÁ_Ò§QÅÒÀø—2"÷äêÏKR‘]þÊŽÚ­g`ÄŠ’õ”ø£‹LDÆzÈùµãÔWìïx9U§0úŒfÔÅÞ§'þ˜ˆ]^Bm·=7îâùCcéNü1kùˆ~™ç4±67Ø]+2£¡øaë“U ¥d†±Ý˜HýàãñG.ft\ÚúHo#™ŸÌ³™(ÓƒÀ™2Ä=d¢ ýó(¦: Å“ø» ÏÃ#½uú@ÉŸôⲡS¢s{{µÁá£ÓÇTo+>±—àîM.5` RR;Œþñwl™~žÔ‰l€·:FÖóZt„—Ì{úÆtöT°F/ÙmA³¦ñÞÈUý¼‘œ¡w‚éç§µÜx¡‰“Êgâª^ÏxC„µ>í,SOŽ‚H{É6‹noI>pBfJÍ—í™_{€è6Œ K5ìáÄCm£€uîÃ{Q€§t°‘•ž‰ÇŒ[Ä.)‰?˜+boËŒ’xÄ;`Ê*£)tèzÅn£Ÿ×Ï¿éc´“!žÁÿ‹O )#We~Feø(Ê'ú_ýÁü7Íß¡Ÿ¯·5W‡«ÍTwú—hÔÏïÚªiãÈi+†f»D¼VKôUÞ‘¿û†~QÙ#ÜÓÜ9íôdÇ­fÍi"²¾CñТu'Ó‹Cb43ª²{#~wú‡É¤÷‡°|Ö,¥Ýغ”²½dÛ‹aD~¼ãCøµCt£I’p¬XE[þ1ßè.žü.G?9üþž7è'ŠÛeâÚ˜09> HØøÑGùIþn4b–XàÇŸàG*hF³³HX”ÓÄKo‰œ:pÝCP3iwÃØaIÍÛÛŸ8àºENo<ï3[ÈÙo‡Nz‚]å«V÷ù( qÅÉ ù|ÁÏð­§švn5ÕçMÙIENmœŸ?^aV+žÃ2Gãž ‘lÅOkˆn¿„ùçåBí5þªç@ndwoøÈ›ÜÈxùYåêËŠcXû&T½Ü‚iºƵ&£*òÐùæºö`{ªîKô$(C`N²peãѸòó™ø±Uv9Vñù»ñLr¢—ø™nLÌÍü¨õ®¥•P›‰ÑXŠºò 6w½\×Á¬ÕG ÉD²ÏÈlú39Êë‡ßéÿŸeí}h÷ÅÄhíÖ/ëݧßáxôóåTœÓƒ5…ÐQ¯ÉÃF+Ô…éÔ‹¿cý’à“±BØ»3ô ö¢bZê?Ž»ÓSÔO¢3O¯Jßò ’“ù[‹~#)éŸ8 ÿ~5 Q]³*™Wøús,¼'ÌÞiâ§-òzWâñ‡Õ¿=³|…oÑëœÚ”©àÇc¸œo\5ãé§Á^Ÿdg½Q¼s~¨ì£aÄ® Ÿ[¼¥»HéÜ_v%’Ê´zž×ïÔ»œáîu‘•ËàGô(äq„¹jŒî‹=M3VÛe,úG7,T9”ÁF6ûJ*Ù÷e£ê|·9žø£=LF’œÚž–,yg~øk§D ¸Md.Ö^†xfþ/>-« ¢ýŽl¬üÎÏþþjøþüa P"kÍ©fHªQ¬nëm èXZM¥–†¿ŠXwÈ»¶zäïæ¢·d:zImWSj%Ô.Êcm´8¥mÓ2ôÐ>ÏrÇÛ≷ÁWÍ ×Àœî¤Z4˜&¡ûæŸÇÒ\xþéŠ+‰?þ?Öï³»©‘ÓQ–*Go>~Ë;Þ ¿s1ýK‰ðäB—ÑæÌÀ>ß=vã¥îeíòmë“q™'­-ŒTS,©ÎÌÝÚ™õwm•Ž,‘¹ÎdèóÑÖªQo?‘èÅŽE9[ä‡òÐô致]»ÆŠ…4+s¸ ±Å-¼Õ¼D SˆܱxÃÈTª"OÀ~oA¿IÌ`Íte:ßmýÛau×¥×…ó* ’Ï'çàµ>I¦DWY„¯Œ³t…í`\]ðc:üUÞPû·¢kiM7ºÜö¼‡ëÁUÍ$¾J)‹ê1ñÇY^ÈêÈx—0ë¥HèýÛßÐ?ѪÂé«RÛq„SÛŒ¶ÕTk~DÃrûÃ1­!¢ÉHfÃ]0é&*vté µ6ø¥Ú*S?8œ³ÊË¿|@¬U.&¶i‚ŽâFÆî²÷_Ò‰÷ ñGJã<öS'æ9ŠM=DÖO~Ñ?ü¸Kü1Öj6œÔa01#XS”y°¾ò$ÌNÔ /úï¾ÀÆnð#?ûµêÏÛÉÈäãm"ë#èǨ_DoÔ°¨hÄïáºR£lg‚ÔO=õSÌØäöf šÊÔÉ߇‹±æ~¾w•ÜÇ“Ÿˆœ³ ë-9À_| ¨=(mr™±–õº#w© .`¦&'x3¹ÃPò±ëY2£põ½(ªÄW×ëõ¸‚WœßnÞ…ä_í!ÊŠl–2LìþDª?Z¡Ñ´¢ž.‘MSó˜0‹½%æ4£s†Ó‚äïN†©¾ ãmz¥ÏG?oB]Ð4Îì,Uˆ[á—"ÛcبIn¯GVÃ)2ÅòÒõМ†Þð–ä,½žh%þp^ïKú—ä OÊÒω?y^;6ªÂ'’µvƨm^6š¯À¶×T6¾D§HbŽ•ùÍnÆ>Ðæ6nUy:ñã«ÒB›þÑÿ«ø1ü«L&¹Bíú3£¾ý ÙÑÞ †­Š½ëå°AU¹&Ó›?Yé¦(ŽÕÉyZÈÖ ÷çõqYe=Ûÿ^=\–+î﯆ïÏO¶OÊW•IðZnÍבùý¼—Z‰þWU•·¶ˆEW·l韘ÆÝî—7©?/NÅy˜rR[@„3NuÍs ÏþŽi)±)°}±"óÄWæ¦Ñbbq>ˆÕbƒ#¢káë_²L–|Øû…xa£°§[õx²&YÀñW@aàÇ8òw›‹ØAzŠþ~•Ðsè•ô†§`+QÆ,ª•-kÇö}× ÞŸ–L„j…½ý)>9ïÔïÖkeê‘ñðcã‡[ý«ŒÅÖ©Ä#gaqÞèÓPÜ:òìe?·±bm<Ñ›+½‰ÂQ|›yà“ÃêÕG%¸ v,æ–ƒµõb‹#ö mm}ÕØàÇ:öT¬-O5Æ퉾Žé™úbl]\üÍp\›x+*ëOD«Ê¦% e—£•~Z-¢€r+vúç6»¹w9Š}Ô—©Àn" ÈßÄr¬f=bžÒ°v¿îî퉺¯@'gs™kiåâ™ÕðEãàê¦D¡ámx, “Üä;Ö<„·$ÉGÿÝñGµ¾èÃÕY]r/‚ñÑ?^êUЪ;â´0å…ÀÔž'¢ù¡—$w%ñM™Oôù¥~°(󣺲^bt GsÓÊ;“yÀŠGôrê@~S/þDŸ(EÛíä§Jî u+ebìµÊ¹`g8 ý|øñü]?zoÅcgÅŒé† v y±«QZ˜åÉçªåǽÎ:u†y³å&°85/AOq½(ÆÎŸƒ5Qø‹­¤ÊX£õç~T#–?–‘“j3Ó{¸QÂ"ŸaØgЮù»®ìwôuÄjÖ”®¼ä_Ý%þ¨GÍ~sâÄô¤ÝJßö¾TL®ÂþfÒSJ”ŸÓœËPô(èÑaãf‰ÏÎíÍVjkGÈV¨Õgo*üÕLpû!ˆèMäöÎ|°ž ü~Mg§Fp3×Qºï³~y"žÔÒq¾¹®{ñÖöSÝ%æõYÓ>²‚ÇÁÌ?ñZÇ¢%L•¾`ùzø«}X :dänmãgêØÌøÚ|eŽk)ÇGµÕ®b¨>F/„ q å Š\ ²ýí÷ Ö¼Ò“ÔŸ?…×OÄ4ÔçûÆX ä_õû%³ù¶9ç ‚/»¸ ³úsOôϹ±R­©¢#—žX‹ABd8m!÷«!úGvôóàóÏ'«Ä3Ç9ûA(ðP ¾ÊüàÇw=9uÞÝÉß­o6¡­•\¥.ÞG;yh1QìZý+Ù,A/y·(ÌAÕ¦tX)BµŒIçSŒ¦r¸q~ZyP‚g2Ïš§žÑÌAÎÀ<žŸ!àq2Ю»"¶s½ž21¼A=ê+qfý¨ú«FŸ/jû ÷ä¤I:v:üÝ®ÆL²->µô%ªº¤—s>…¯˜O2[$æùíÁ;ÑRŸHŽÕtâ«°h7饸ެFÿöktqïDÕi:ôó«ôHþ1ý¼$ËÞîéÿŠþQý£óÎ¥ ÷2|^xÐgç¯Ø•ØLœLtpY±²vÛšRÿQKM®ÖF?¿ðë?ù‡¯Ü¶U¦ÿU^<§$ðW¾jVú'ZóŠËäïÐæF?Öi‰AöÄäàÌ"i¶ø!žÀŠFÆ2¾$ú؃þ‘R+î<‡ؘmŸ²›€^å`8öëV¾OúŒOÃÆßÃWïŠý_/Ú‹TAbò߯XV›¡ÝãðêÏÃÆlÂÛº„?} V¬®üD5È>‹‹"‡w3SÍ¿…¹ÃÞÊa‡ïj£G†±ž ~Ô¤ëW<ƘhÉ7©L$Ó ë<üئ~žSþ†uXœRI"¤)0Eée Øf/vhu·;ÀW·ƒ.ÃÁªâXy–Á¯úú¹^Ìã.4"^©~Xgö†úóL0Y«-['ïÁœº)4AåïJü%”ëE×ëF`×Îl™0Wø±3=õ…ÉßÝ…­-+Ê'Xµ+úzbžLܧ,úiç›ëÚŸ/ñÇZ1 Üî›|¤ãüìDZ°s£É’‰â{ }:k¦‘o‰ÊþM,‚ù»›]K9>*ÁüóäWäD ¸‰EúàëׯËOFÿ’íØ§+äï>#¯(6¯:œ}~ÔšùXÀøè“4×ôÕ¿.¦^}¹ 9ài¾yœ…Ï?.³“¿{ø£Ó5š/|…_*NL²œ=P“÷ƒÍe<ˆʦ`ghéç=ðTlh3çÈÔËÈwæ0¼ŒztÇ4Ã9Øæ:fziçnpйð¶,“{9—!êÏÿDÿÈÀózÅg!çwˆ<ÝeÄ•ä ã:õy©ò›DMÃ>aææšgÂvãJÒÒ-¸ ñ‡‹¿ÊÁüÁ…Äe9•Bò™níAÅmtiyO¶ÚmâŽXçÄuÈrÆÌ§æ²«û’Kö…x/:ÑÔDášàØS)Ïü(78¯úRð£(g8 žé ñÁDô”èç¯ÈæJŽ2ˆZSÒ´ªƒ]8ã&r¬Þ…þª.þêù»¹ÈÅèJÌ›Šêšcz+ºf•¤â¼•¹’ì€QÔKFB«¸³ßVÚ\ {Óÿj™_>…—íKü¶ õçà[¯®úG}²‘ǾÄ\ƒâ“¼Èc_mæ³W#þÈkož¤¦Òä:¨›ÀzRd#Š_ÍÛ>YÛâü¿ø´ ŒU#ç“•úóð©È¿îMU计µ þ°æ–gÍ ä_ÕU««&úG@çúÚþ@S*‚·˜” äݪ§VH¢Ä ‡©—( `ÿ’ÛZ6¬f,–9¬8ŽiÃ;æJ ø‹¥â¤˜ iácî|”íJ!± ŽjëOüÚ ÒšÒ>Lù´;zÅL*Lú2ÿ<<ù»uÈ¿ äßZó£ÁíÜÇ^Oc~î¼ë=`€AT³C+^:ïÔ¯çÿ×WÚ(±éÿ> ñÇ|,uIÔÓñ<ã*¬þQ,Þ ””®¬ge£¢ÓÌïVúëë lR#*ù³·"ìb‘RV<³¡¼YUب·^k%'Ò™úŽ{êªJ/ôsέ1ÚÆVÔ"œÔ òû¢ñâ]-Äfç9‰Õ¼Mµá°–2¿6ƒö=”å¦+“´V`×'a¾½?¼¡Uÿñ tk­g%Å}l]KNñ1qáþÚº;?3U“¿.÷Å@ýàL]!úèFþ© õ@všühJf¨/<Õ4X™Ý¨ uàGüXs?Ö2!1bmµ²&Ä’ Ô†b8>FløYò«"Ë™øuÈ¿J‡}ïñ.uèÏ™_Ÿì¦F¨ó•ÉìšG-y¾æÊ>ýká²êUø°!ðœâ”R…š—:Šò:YQ?z“Åz“.VÖŒYËÞOÇŠ°ûO¢(úyðJŸ êkщ+øLÿÄ“ä~%’oa¾¼z\cªéo_æ¥ ±L‡þQ›ŽÄu‰¥üˆ¿vãïÆÔ¼ƒ=9'Diü•Wx-ˆP*qNsÐ?†Åà¯nÓOËý|Þù[ÙnÈ“˜k ÊK;¾/…±–óI)ìÎõ<”¨ê~½ÏGü~ÔA3ªŽ5NH~Óv¸µnôP\KŒ´‘“4¬>é\ó0ÎÏN6W ¼ÒT±ÏyGú0ÿã zÑgââ…ÂÖd-ÃË<¦-4rÓñê ZÅg3½>ýF®Íd#×…¼È¿ª*—êÕéfPݹ¿kÊQ- y¡ÕÉ$ñ½Å}ñG1sû:H-çp:ñö®è Ä3Vw€‰rõƒsô$òOU?²2¶ë…œOá;ú—ô©ñùº#WEÿØa_…Vt…Q/¶tb̃v~’þŽ­yjÊØ‹òS²QéÕ‹:åÌ<×ÈŽé®…œ¡ì<€ÿáeȾêä<™Lh!™ŸEìÇ2´HN÷voðã€R˜U–ØZ«MAxäïÚ\ñdxÖõµµÔ&‰bà‡;Õ;ÕLZ|ôs8ᎶS˧yGP?®å… I‰%œNÓ!ôýx%VÏ™—bø1K$gÿ«µÔ–¡^|&H4 æÿ$üU!|eo¼×+øÒƒÐÁ–ê‹èxà)b„ã,«‚‡Oˆ]>ÃìåÍ´a“§Âƒ)¼ùD!»y®âÃ¥œFÕxæz]”ôdk™ì!',Â*öUü S•ô¼Ðy¨îDNÌBÕÏ…9°¾¶ ¡1ÑÁ+P¢,ù#AºbDõƒ©f(ZñLYN¼°‰¿›¨§¡‰å;„ö_,¥«š 3ôèÄjØÁþÝ}%ø1~¨#Y²÷ÙëeÖê̽G´@Ò¾„²\_e¢VÄ 5‹÷ç>Ñü8ö© …GË-nâgVÃ._ãd¯5"ò¬Š‡wÂù準ý@ü±¯à§Þ»Vë{Öa¦ã:; Ì>À{]D-ǼúØR›ô‡¹|ŠUJ)#Ã_mr-åø¨ý­ª}ügz"v§®~3÷²:úD ÞýóX½›ðX·è•-Ù—Z¬nÕŸ'”¹ÄtíNˆõʨ·DÖK‹ý”8à Y{`œ¾ƒW‰?ŠÀ_µ4o[µØØ}xÎù°ãèj5HŠŒèG‚Ý•ñàGwž…·Ìö»†þ—L­ªÌ›ý†~>Û¼’š¼êøáúGeú¬X=%»ÀjÆ ¹‚»“Xl½­"ñÇ[µ‘EnbšÝT¹L6ŠÓ¯ý>ñG6²¤-˜Ìt‡¿zBýéÙ E%‡±”O.¢:×˯üTÖacs£XäçJßrOwP,¾3?ÄR¸G}4¦^ïóþ¾'¶;Ób 2¼>ó¬Ž.5`„Rý#©´:í’É‰Ø n75ò¡”?RÙ_£d´·C¡¿ÅIÖAã ¦vàlÉézCòw›;÷÷œùQnp¡ía®2˨fmŒgìb©CÏû‹^UcÌ›àÓ30 ˆ9þ»½Œéd+X]¢{R£¿S¯é| ß2ÿ£»ˆG׎¨¦²>•ùçóØÙ r•OÙ™dØÄÞ€,ÞöFàG:ðcŸ‘† ð÷¼Ã'D~0gñÇ8m[ˆgæÿâÓ"LŒråïºÑÍÝÃyNûùªòRùLýÇú—ø*åXeùWÝÔªÔŸ×!þˆXwÈë¶Z/j+s’=4…þW´ŒªóG‹ÛÚZêgE¿:¢•&‹Èšµ²”5×1?Ê_ɬÅÄB%À‰4W·ºre¥â.öcé×:4sD£µ°…ýÅDx?}8Öy<&Dö 1ùïW,Gýà32G yüÀ^Oç±Ë¶ÔD“'x®¢³¦Õ¿$V˜õçÝ”H°Wqˆ0<ðAwÁ•„±'Ý÷; `ß­±Dcx.„‰E´ØÞxâoÁ‰pvV¯œd¥xó«^úPo¿[Ø4ü«óí+´ëýfªfæê–ÁsYý¯ª’u0¸à¹¾BÁòóV“§t kTÈ›6…Øb¤¨jÿ«äïÖ€AHB4»ÿ _`w÷6}žü8µoƒÍ¾ Çvè©.úT•ç›ëÚåkú—lk@£áü_Ýöww;|Q_‘µXNåøh°–Í]þdÅËü¬t°%è2þ¨¡6Cx¯‹ ™¼B‘O –…“yB‡Øt6Êb¾‚¿ò?’°Î1Aº[¨Ô”Ëjb°æªžþk%ÔSäÛN$ÿjf/ÉÛüä}hÏÑGò¶Ð¯·™©¢WÔ„sÚAeEq¼ìÌS"ðmTv{¯«oà×,ý¼7øV½'*yºSŒ¤Ìãð‚ÇŸNoOú_é G%ã3˜à º_"~Ú.·p§323Ëuz6Ûrákeq°U`û²Ó¬£Ê~‚ÑVŽ¡b36´ ýÖ¯PíÒƒÙ'žÔ­,„mêOþ®Çø+W¯ŸÜÊwe>'W>Ì¥àøÑ›ºóÞD©`uö[UÈÀÚC úY,}Np@R3 lMns2îÉáê×:V)MýGNêBîóŒåÓ3¡º´@›~B¤±“ú3©ý%ùW©°Ï6ð£5\“»éŽÕ¸³xÙQ4uœ×{AÙ©eÂ/ë‡ïTFÚxF{/àÂfÒ÷6¼ÒT¢“â…?o¥˜?8×oì ×ã¾X7PÇGÏã| •Vصx¼ãy>ëê}ˆ1f£ùÂ}ùÒ‹w¹YƒùôW鞤°7E;+ÉüÄÏø¯EUv²Žª§ÿÊü¨çœ'“Jé¢dq~ôùûc©|V¾¨ ´qZm¿£~p;óÏ[‘•˜þWŸl›ÿqÉÖ€ž”eÈGȤÔZVu˜’ýüý¯Šjc#Ø¿ý…VüHûè~ ñõeJ6¼ˆôúØÃüóQÔŸ»2Ðÿéj)ë”Êâ OÍR '°v™äXĦbLÎlØP¼êe¢¥H#BãíC®Ýýü³X ^\Ç‹_sÛjÍ*h‰?¸=ˆ0œµÍp̨xP§žö'›,'­J‹Šä LEˆïr’héO+²&À¹ÔN…q·ÿÐcÍ{`É?€¹ˆfcï3añ¼Ñ•kÑ<åk[`svp²Sà6é‡üZlÕJØòùðRõ@ˆ‚ Ørëºð3“9uˆÆ‘°A×8‰ÎàæÎw2ýK”Pv9RªU'vIˆ=›§ö^y9q_À¦zIø«gð-íˆ?n°âSr£k¡T"þ­û'Ûu“XO>•Å«„û; ¶ nr ZOgbƒ(ðE·ñ—Ùл_Á‰}ÔóâuÖv(³ƒ_ª­šÚZŒEÿ¨I´ðf%¶\Ïꡟ»ƒÖÔ¼'ød[ª5¬ên…³¼Ž^󀪇Æbá/üUqõ|Ø\æQYŠÁ yÁáEç“SltÅRM¦‡â=ì{=*Jö°ëb\½Õ¿d„LO¸:„~>^<§{yê&Áq•ßL£1ó:Ò’Ó5ÿ~#šw/澦GJatþQD³}@Q…Øf?˜ï®Ï_Y$òr*ŸÀÔú0lùøÎ5DYc j/a„¦Ð$§¹Û¦VþýÈ|%}œˆƒÇÔ‘l¡²úr£Š} õ/Y뫑ľÔlc/bWìyì Éj¯Å®¢tPûõ}èçµÑÅ$õçÿFÿ’üJ úGzº¹‡¯ ûïkwýùþW?è¿;Ÿúó'JYN{ýK¼a°’Ò¿$¢ùW—lžZ‘5µÜR+®•¢â°áåñëž±êqSßi¨L%_µ¾j!ñÇ'®V³7 ÿn:¢£¥ô¿`,‡eeÞ<ÏuX¹‚ΧÐÊ¿$ÒbŸ¼ðéèéc\C??Ê•ªäo•¦þ£“½ˆ” L:iä¶ä÷"d±}Ç«¼#2QÏÁ×…xfþ/>-Lÿ]²æ¢ÿ•+;b?_R5ªk­´š];¦â´·PoÜ™þ»ñ©?k;¡åN£ CÿÈIÎþqŠþ%™@Œ¸ôY?‹½ÍÉ4ôÎûž…é8Ðþjv./ñ¨©OVêkTkÄ`‚í)ð#Žæz‚ÿiÅcLâ)'.áů„!ß {“\–Á¯­$ð ±g㹫KñÚ“¿ûõŸúÏßµ£û˜“Ÿ¼Í>xòVŸÛ9¬£Swˆxo=ÏÖ!t‹a^ó %78c'ÎÊÈ¿”g¼1ñÇtŒL Yþ*§x‡'\µÂêÐõô«’6F÷|á|s]ûÓ”ê ±<Èi(è©?ÄÝÝH¦òXâ/ ô-ò9ù8+d,ÔÐã:w©8ç¤;¤þÑVí(áGT”wðÙÛa —á!Ô¦#¼Ûéê}…>Š/dSÔŠ'XæŸhëWA„;(/…Äx-d·êºêG1ŠóðÄNºa#¯Â“à—^Ë;ÔŸEó®Oýy –6.1B74½ðM‰Ð?âÂ`N ŒS%Öê$¹ É +…íÿ.+3ŒèÔÇ"Sj5j|;âGTîÕ?&Ïôf6c+ñÞ.ý{ýq¿ÈÉ7‰Éº™›xm)üÕ0£5yXwÌqĹˆžÂÕõ†¿Ê .­$úèEDWý¼­Œ#7#üÕ!|ô¢<ÿ¥xÞ‘ׄ¾»ƒ‰Ù¢3ŸéñGòÖ£Ó¬¦~Г8ä:5£á¯Ò{Eå^Mœëõ¢SêPã ¹#Û¨ÿÈK ×üðqW•À‘dö@ºs¥·W¢â+t¤â¨Ó±á¯:Rÿá%ã –Gü×ß”}°áUñEˆo‹ ôoÿAÃ"zʯ2©¿,n õÜ,‡~ž…ým‘ÍîÆ<¬üX.z!0É¥Ÿ?W:$Ä«ÌZLŸg³Ï¤SâY*eìt•ßhcþ`\{ûD2زéø£å5oñýWѶjÂ/ÄÞZHõïýþ/ÿ,¡ôä¡þü¿Õ?¾ÚÞ+jcôótÿÑ?Ö“¿ÛYmBÿÄzôo(EÇ]rÓ²e:W< ÿ*3øñ”<…;ôû(  ‹ þqœú/b°ÿ¥Ð* ý’RT‹ã‘\ßIþ®·ˆÎü«½t2Í$V#ÅßÝ‹­‹DüQœs¿¿‡ÕÉG~JæU{uLò%£u‰î‡Ž^ ýÜ&O€v¼ñ½¨a÷ߨ˜äùÚÑÒÀü¯&r¨¬§‡÷°*K‚§ˆo–ƒèÿ(L&Ò­0vXN[èÈlš‚}&æ߆€s™ñÌFb›+ÈÓüí1üôÍ ËR0)ýküfÍhJ35'´Œ˜¨>ˆTü˜ÊŠú82&ë›ðõy‡¬Ò3¬Ø‰]zqƒDn-n(+SÆhµÈ¾JÍ ÍI¸Æ¿õΜ™ï"/ñÇ©ž¼ƒþ„Ÿú±l9f¿Pðã­í¾zþ*¹Vãæûð56‘õÙühãaU©¼C‘Þ@RVùût{”†Êí2ä_qƒ[¨MÑ?&a¯a™Ç oÙòq.#£±™üžFR‡~î†OÞ =¾33¶ãáç—EÄ0ínˆõê©É—šˆçº åÑQjyü°úïî¥2Û_¼<ó?¦uX9H­©žØŒ÷œØ,££ñý©÷ÆÓ¿¤#<ÔOfk<"ö‰‡Ò^‡ø#ÑÍ(ìý¼ð6ؼçàGqã1¶9øq‚(eȺYO¨ vOVˆÌÔŸû‘åQ—ȃk™o¥{]ú`]ÀÞçGØw‹yè éßþ‘'—ùÊÜÆz2ER Wå\ðW ±òEä3®÷(Q^Kðãµ#þHi|0ö€oMA·ÍôPôÁƦ‡i;Íã.%">2ål†‹Í¢”ÒŽIÚØß2˜ÒB<;Éß}L†ÙH£(ÈË~Ý<Íü¨&àÇY2—[#`¸Y¶æl:Êyô–h#\]fÑ?±(c{žŒò½ðÕûäFÿ˜J?à«Ts¦µ?âš_£¯øÁ^Ŧû0Ö\‹ßõ„÷§'QË õ”.Ú(‘„ç½ïd=â²ôßÝÏüø|ÔàøÃ&Ž¢þ#¦]³·¥{R{2–³2a÷ ßYÉÖÃ.,ÿWú'S†©ô ÷¿Õ?>Rþü˜ª%Ç*YšÊ[[êÏ›ªIÔjðW‹?nØšPë‘—ìSq–ùQ1ÔNðW£Åsm‹ÆTUul°ç7Äëö˧÷௼ÈXm­/¦'JY?Bý‡Õ™öØ-v0×0c¸ûïú(yÅVÖÙ†¬EÒ•ô–ðWû±¦Cù9£éùØK¤ÑñǖÚbí…˜‚/ãGô¿Eø4Vð#v°9£‘ä)0@…:KþÕÏ0×k¢Ä N=6:¥¬-7Âù×#†›oeo'ÖÌÕÇØä¦ØíñœÃÉ0õóJÚb|ÊvX®gD@%xRÇq$Å¢ZuuµPTƒlkñî­é§§f.pÛßì2ÀÖQ͆ÍZÂi5!ªó¶ŒcÕwú(Þêñp ­±³áﱞ¥ “æ®ÜNפôתàÓ'“ÛÀëàGWðc×YPÖ¡þ<7ù»»8K?¿Å›¾̲z]—ÑŸ†‚¯™¾C¬Õ£ÃªLĦnœèaX4š,¡æx¬‘`Øðþ-ý<üÚßù’ <G?É_U¦ÿÕ®®QÅ{ð#®ÜäÐϱÏnÔ2¸aY¬þ‰Õaôïsš*ÑáeGǪ,Ì\¤…ÌV,£^¦S¹†é¬<ÏýÝ&=Ñ:nËËàG*"J€pQ¬¸–ø£ ñÇ-ôjOˆ¸w+—ƒÝ•ê[ò¹6qn£Ð÷«ÀŸðWt£%ºí[ŽMd¶ B¥\‰z|vðã”cþàAü¤\!ò¯Æ’• ®é<õƒKÉÕÚOýù1ꃇàÃòáŸûRͰ>+ƒ™üØH;ˆz’štÔê*³é••Jä¥è¥äKðãïT+Ù˜þ‰ÝQ£K1_ã$¹Ua×N¡ðχÊÒÝ&[`¿âû¹StoœÊ¥¸v>ì)Õ=é 3mµQ‚úÁ Tyç¦[®f‡þ‘Ëüžh©‰Y |Ï+SÁÞ¢¶s*¾aoÑÙy~÷”]ZYØßVÔ#f”~DCÒ¿}'v×ødø0sö29ËŸÐWnD7·Êé Õ:žM«þ¼ þ×½„ó) PþЦ`‘¼¨P+Fl>×hÉÌÚL|ÏB£Ú·šÞÌLËü¨†ì·:ý¯ÞSCÅôÇc:ЬÌ{’X.úWæGU¤IkçÉxÀfes~æ¼áú@Q¾Ñ¿¤“6FK¥íUJ°ÊZæÍõP+¨Éø±#\«üýM¾¶šÚ4QÆÉ ý|·ZVK¢vTbŠ‘â"ó–ÜÐ?"6¿6PËÁýI‹]]G5nS‘X_AþnV,ŽÊ|ª½ÔÄÕÂÓ­Êf;¦ø(Ä ”“í`Å,rêϱˆbøñ ¯µ'¶p¦h&’‰Éÿ¾®_ÿì¢mÐÞ‹?ñ ý°Äsð¨¯ã‹§.®©|?} k/ÉÍØÇïaE 6['%‰Ô‰¸ÖÔ(ÇùFÖ”Þ³0aµ±ö‡a‹&ÀM ò*Gÿ’;aÜífÚf|÷vìë×ê s1‹÷9öi(¾}5´Ô0Q³Ð?Öë³Ùe\±þ·ùWÑÈß-’-‡šòÝÖlû¹pvúdŸ3Û~Hyõã õm‰:ñç0æ†Æ_ QæjµÙ[ ø«Á`Ðuâ¾IDßôÜÔs&åôŸbñ›  [hOù9µÉެ¿š~®;_à.ÄwxÅùa°Žaý÷Â"*ê Ïbƒ! ÀƯ$þÈÏv œ Ä“L/33 cqˆÛ€üÝqœry©@1ÕÀ€K ‡;úy:SÄ3ÞÉN¨égˆqTî–/þóY|w+þ8b½ºÔŸ÷åyË‹ÝMfÜ$æJKŽSNã 1Á *ëJÑ}©Y¬6ê5¢aC;c}}Ømrc 0˜óBÌÿ¯ZýÛò´MàçVß,å}¦ a< ðj¼ÞqfªÛ+µÑë‡ÉÒäì!¾ÙFD°^¦ç‹<ä¬ùÃuö¥ ²${›J½¯Ù[Vâ;æ9c/õƒÙ¨¯xC¯k¡?ý·'›Hüp^qårVoLµ&]ç{1ÕäY¾Ì½ÐéøÄèÁz}©ÏBÿ’ÔŸoÅ£™'“GȾú¦OëÍTrk/ð>ò ¯@ÿHÇ=Ùk”dzÏB–l.2wM¦GÝ#j¨NgÛÓÄrùÉ|ŠÉ3Ð|k(gë5EÏ õ•³Z¼þ o.¹Bøè3˜ötÔ3Ž¢ItòvcÚ×PÇ^›~𠘵Hn2ûó‰?>𯺂Škõ¢Nü°©™•ßv&ÜH>}‘шþí>Lìµf+Fµï¡ÿnk»'³ß¢öÔd‰e5 R>þ‰…@é Ó0Í•1à¼ôÿùe”QJw§ q'7§ó³ˆýð綘ê;Õ‹üÝTÚY¥ «l¶y©ã¨ÿˆ‰þñ!‚õ÷lÕÁäÂà±'d×ÔìZ úïZùW÷ÑÏ‹xGhŸ¯4wìKjlû<‡n ý¥,æjÒORÿ±D¤'~ìBÿÈ$Na©6‹î£ZÁM6$K¶½XÆÇ¯Xq0²üH®ü«ŽÔ³<Årýàßž†qÎïó±‡:Þϸ±£XÒèü$&•èaæï¶WÒ‚‘¸Î”Žê¾†dð+ÎèÑøü$vþ žx Ø£œì!:íÿó]n¦-Áú6D¹}LžU ˜‹IDH1ñ˜½±£äþÖ‡øã J•Ó•JúmýyôÄˉ<¬žÓe@¹ìè›>D¦ã|ðó#aÏñÿâ+ž§N“þ%®^F®ÝŽUfjå8-w|9«îÏ—l”‘œœ&sR?˜…ê«N¢#vï"q/6¯.'Q“kxîzsË©Ês2d—¢ŸæÊJ€ ‡Áå°ÃÈ*nAÍžÄr¿€3ZÄg™`³îü ¿7£lˆþ±Ú¹Ò_4V» WxëåÈPµýé»ï®Ž~žüØ~!ô»°ÖÔJáóZó£6Á‰yëÈÊÈGü_ßEýÇò¯\þiµ“ä_—aV6›ìàI!q[Š©àGïø`ìè<–lA8Ý߯ØA[¥=ÇrÙäÞçE ÈIVý‚lCþWþn<ž­zŠpðWÝ•tä_Eçûsbþ䯂þ1üˆÌ[z  ‡5¬–7qt ý@˜øÑýã!qÀX<ø­Ø!pçW[üò¶Ä{ùì8¬ÛV^¾ëAý¹+#øUGW«õÀ… G¢™ŠðI³QO¾è#è1ýܪÿ¸"ã.urðWô¡ô/ù|!ÇgS”YZk°' ;–¬«§¼McX;*Ö«™^ ýüö¸9>ÿcÐÃB¿ÜùÊÜ©Î7×µ¬Jì|\Ì×ãÀ‚Ì­©“¸bO8–ŽxÞw¨ÄÙ@uÞM¼ë?¨ÿä:ã½ç&3·œ6C ]·$w+TvÔð {k'gÍ?OcäD?ÏH£ Æ{ò€â^T'–¥÷ÆZø’L²¬ðþ%þ¨L½†7ˆ–Ÿœ€xtÿ¸sr„øC7®Ë[Fº/ gŠÒKX¨*†06`ë­~Œ—øÞAÄnúœùW“ÁA`¾‚×îO¬’€ÊíúÆ4ôôŽùk©ÿ ƒ»áOÿöò(üSÐÏ»c£MÖ>¬¯Ñ#kÁû—îYÉÚõ'·¢3X“m­qšùƒ#™#u]  Ûnª-®Ð+™Ò°sÁ™þd´åÃâ7– ƒàGv奲 ½» þS!ü‰zsò ^CénX~è8¶¹úù>~ß ˜ã2¼âxò¯,n/÷d±pu”ñVrhW©‡zE„¿™J£rœó~¢™ëhú‹Ð¡¿š ™>xÅ1ÿ#€IæÍ‰?â˜ññ!z€©ÿ¨Nÿ’"N¼|«×êÍvcg™á¯üÑ?â‚=s髲Íx„þ‘Ñ~‹|êÜ‘â:Ëñæ`ð#:ú¹•¥›Œ˜&¿ó)ü¬t#þH‹ØÎñfl$þ˜@ÿ«S mT”~ðWuìÉ™_Û“©R왈Ãâ1Ûö OüqQš·yvb”æºb×sý¿þ¨ù»®úóÔŸgpžSÄ~ö[[4Õм´I¨Û·”¬²Þ6„ùµuÐÏÿP^ÚBNˆþçÕoÛZÑ¿¤xœô°Z”þ%óè;5SœÇ_/«MPGhŸ_´BT1$&¯u+F ðÃ[i¥A©@ g‰?ÜÙµO9¤ä‡ÉÚ Ï´Æ×·1î lüC|àøÃÛÈßÍ-~þóE:þ¶9ñÔ{±%ÓŸ,[+þ8 6ÝÓM¼Òº±§MÀƒaD:tj óš[‚„)\g<òWÖóg-øº9àG,âK?L´Û”ø£±òš0çvÖs…­¹R?¬†ÕÿjLQ,°h8‘}9l‰Õ“q¼9g(Š é¿ëêôüò#)ÔÂh+`ΚTA–– µÈV>ˆ¶ÉB$+ÿŠûÄλŠìZhç8€þ%Å9o;zîBP÷ñÊ "¡h°K=ôj¢ x¯Þmø:ÿ¶±6Ù%Ñüo®kµ¯çÅBôón°*P5ö€h+aFL?Þé[°vGè_RìÞï05Vì•9ñGÈùQ½É¿ÏY"ã78’ôá:+aÜŒt(±nä55¢£ÓMNó'JÉi°k+õçMˆ?nº¶æø¨…ˆ~>¼ZÇ\^#¾<Êüïd_2›•Éß­MþÕwê)¢ãÛw·³Ú;4:×=Q9ìÙ™®Z=qö‚¿Þè3Ñ?>£QO2"Ã_Í —ëO¸¡6f;²»*ÕÐXz€Ê}ГÞË…d¬Ó¿…¨¿:.2ðý¹›VýyQ¢®eÆIc€Cÿ¸–—^PûàìÊöxè™]ÃÀÛÄcËX9¾0ûËFþÕ>NΓˆ!|¦¯Þ‘sºE_àðþÏÉ߃MíGw+ßIÒ?±y Mc{“¨ñ:59s…ëŽ $Sÿxûšl½}2¿Îô&yŽ,eI%÷<êŸ/|$:Jg/õ,.~¤;k„¿Ð/¬5Ó¬Šè¿þ{«ÔªCæÈ)ßæ ì5ÈØíNÔ 9½Bö‡¨éšývìÉ•¯• Íq†ÏæGÞ»¶4Þ,0àÕŠôo_¨¤kÄCí –M[¨öŽÐ>Ÿké¹;Éá0VR+>^à}5æó?¡žŸ«Èß Oµ†Í¶\Ù¡¤ÛÁ‰m؇­øÏédìR51+ý;Ø lY‰âVP„æ7‡<†ºÚVíµ˜/óŒØJ¦éQþýþlO$¿µõƒ°Ð‘tß0¯¹®’´‰æè0ÿ‹ñuƒ3á¾áwáüˆÁhõ£7ÌfíL+¶ÑÀþ4€]ºã”uûÌDlÔ|«Žöðž=¯"þXˆ½­¬G+•j¿YS*MÔ°sSAŠØ bxs±Âoõ¥2%Hq…ÆN¶íiþ_ ò•ámš¨¦IhúÇpe,Ây®Ó‡7ù=ûëÉæÇ%’Ôí‘õ…¹,Ä%ðãH_þ%y¹†Î7×u/"+Ÿˆ?–¥õA*3Aâ0ÑÌø©þ ÚD”}¼_=“]fA‹=‹­< ÀÐ3Ó?q¹k)ÇGÐ?¬›9°âþœ–&¢ŸW–‘ÈÚÍ@ŽNj˜Žtx÷5©?CÜõeüùfîxUâݪ뫾b((žŽ?¤¹¢§‚KËDdpø£ö¹#¾ê[x¶<ÔHl‘M@Ñ-( ¯Ù}2Ô¹!êÏ;©D?ž†zV¨ie ”O7~èîÆrwg‘![ßìˆ/FüqGÖá[âß¿?w’ÝVëì.ï™@˜—ØúVxUˆ£‡á¯¼˜´q™Î´eá¯6S-~údf&ãyÒãá¯Ð¿d Ù|Y‚Ô–S^+»É|ÎÁzåÀ‡zYƒlÖîÔä3uçCa®ÚQãØ“þUqÌd0m¹×Ã8îî'OÔâ ó?£„ {ƒ’²•lfwNú¶ÑǼAMü ¢!_&úÑm=9õQû«š@xôÒé,™ð%é5¨là¼ÞWÔ¸ó^uÆãKŤª“úºÖ%·3õƒ‘AµTtË]Mý`]fG¹“»¼ühcXù»ÏлRGê£Wt>…~JK­ úGW< r°sŒëèç›ð2ÒãÄ$kw–½>чJUáY#½='úyôÏT$œ€÷ªkSÖ\ˆâaü~Z–‰µ®H4+jHøXœ_·ô–\ T{Sÿ‘üÝ’œöJ[3u¼ZEuS‹¿2£äÿ÷àU$Û×÷é®êê>Èà ¸»»wׂÜÝÝÝ]‚kpw Üww×÷×™Ë „0 ó}ÿ{™g& “Tª«»÷Ú{­-?¯ðýßÜpxÐÿ*+¹CnôB;Jü_KÿæRе"…˜§OsÝÏïîWŸ_æŽ×ǃ¯ÈY6º1ík;SÒÀãHzånÔ?ÂÆÜù¡Ä‘óa^ÂO¬ÆŠÀXƒ åT°ÄîÉß ¹^Ö•éeHy§ÁwXN¬Wá&״Ѱ;0Ú–ëÜH ¬J\µ ,ø*Û`ËÂ/B½æFš“:‘/’šC*È|ɨJבAðN¨UØ…µþ@þ“7–­9ÇÛCÿQTôÆÊØýÞ/cñK°?{þ`¬Òüò²°<ö¾©È7›ï&ü’¿RZ =H6ªz`ü‘fm-oáT¥8ÍíD41à+Îláí¬O ÌßÂu÷ÒÆ‰Š0]_9™‘Æ>ë¦Ï‡ÉJ;T¦–ð-öOr.oµÀRœFHúùKÇ=@Î%jë‚ï^ Ý5Ü…UxŠ]±ÅÝé.xÛ˜Iü±‡ƒ x¦¯ˆ·¡ [x”˜¥´(Øm­¨—ðN Ã"]§>Páµë ú'ø«”X†èàGbòšÊPñwû­Áþl†[@VHvþ)—¦´~Uv$rLBwô‹ ÌŸD>§Uò£NãK{’{Õýã-K2¢«Ì§v¨; P_°úÑámw‹?ºë/eož´ÇèÝGÈõM²_É\f¾0’ Ÿ¥ƒlC¼úº¨ÑÑϲJNÎa >ƒ/õç?êÁBê:'R“KË®¦˜ëé‡ÒžÙ×ÑfÒ1³âìËÕ?-1—=¿¶»:DÅø2îRÎïú·Ñ^i»è•›ØŽZ?<žÖd•Ý1éOºs›ü¦Žô/ñfBlòYí¯ÞÖ â!ä6D!¿ø+Ͼ¯<æº#cµ"âQÇK|¨]*7Oï.õ'}Ö÷Â|­¥›c$,ógë8õç¥èŸx³¬ÂªEÈGn‡>ãVý#ˆå©ÙÀäÎ<¹)•Å{ÑÛŒE,3ýüýàW1MäœÝuxµ‹Ì Ô©ÿXbõ7çÂ2]!FïɽÛj$wáÇ+ú_õ•Éa¶ZÂ×—2VÒÿj";;Fd¢ŸÊBê›;Ý©@^&pædâ{f:?Çz‡£ab!úÇd±ÞuÅÿ½O*ƒAžD,êÿmþî3GDý©ÞV Ù˜*Q›7ÞÏQFï¡aþG1âÿuQÇé5 üÈNÍÆ8yA/%’ëýµÌ??+üD1–n&¿³`€ÈÈÝqÇrN?jÐwYá±`ìßËUÌÿ˜(ÿ¹Ã´âò¯ÊYd«®‡Uš KÙ~C}9oø¶º=þþNÙ –< +–¤þãŠouüYÁwbUÑv ÞKí ¸·5T¾ u=oú·G¤ÓI=”Ѽ¼éž(ÕiðâàýfT°G/ŒÙœÂžÖœÆq3” ƒì`Ìö*ôƒÝàïž;ÿÊ ‹qË|{²ƒÓ˜M\“Pnú%¥k^zxv2 ¢6–¾ þí9¤±Xw lÓ0i WPü ×#ù»F»ìBýGQ¢€ðj9»{úvÇ^O É®ºÓG¾°Ž`­×Àz RMØ×Yu.óg° ó°öÉ@ëìü ÷é (&j+‚=Œžô¿šŒ‘ë@ äÊ­ÀsŒOfR&eÇ»¯Bÿ»ÿ­Ýy3þóZêIòÊ.?åï–ÔOɾœØŠmVÁ…øƒï`€Žše¨înÄD¥gháùù»ùØ{Xþóà^}žþW»˜zöý‡¢Çw§_ƒ¨íˆA¤RÇœm†£bdLþ"ºx4³j‘y•— 爠rbåwßÀŠõ)DïÖÛCþnõˆ§¡.Œ_2ª^&˜{ÍÁ¨÷=Í“h¥¬¸Øëµ&©ˆpCµ™DÛö-Ñ’J+ºÖK§}Ñ–S«_‹_¤¼cÔƒ[»jv²–ý®¹Ž|."š Èjò±¢£S@ÿh…‚.P“È!cþÇ9×åŽÑJ <×°œ'U5¢0¾‰¨\E~ÔdÆ>ã«Dä_}$Z*I¬Ã*‹&Ô“³i¨–­Á þí7µ‹¢êa;ÞöŒ*1OÖHºŒ%§ÂÐ *Inƒ5‹™¸¥Éç-J}Êfú—ô6ã<â팰ÕÈä—šú¹;ßE°´1Ç,ÀüÝÄoEÈýÝÃJåœÑà‡¯•JwêÎüó«Fã˜,I”¾EeÊÿ¤þ£š6Z RÒÍ›Áu]7 LŸ¼wÄ?ZÐÿ*­¸X“¸ÂшùQžzVæþnýàeG1ŽÜ´tô¿ê/¢Ÿg1>£‰\eþyV1Sö[û¼ÇàƒŽè‰ÝÏkT—äœÿıõǨÿˆ-lÍ&ô?~¼‰tØÆŸ]Ìý[‰µ‹­Z‚IUÁƒÄ ÓyæS“؃ø#$¿9øo¨ ¾“ð ï`[ýà_Nca¿ÀÈ4£KÆ'x™–ôï 6E2n‡ºÃzZ<¹˜D î¼ËÑÏ`5í´ïxƒŽáj)·Œ8© á'…²by1–+l"¾ÅšÚø1’)žÙ0üôä_]“fƒ!K±*- §ÜöËúAK«®Gcµ™°ˆõy늀`ÓAËÆ…Ó<ˆ¥Ö`fl¾i(\œiºÑWOƒ_w×úþh1Ëø®g \w2°¦€¸IÔPx´üòö®{¼Àޝq§jÍÚù|!ÍÚsÝ_.2œÔj´À©üñVÐ/¤v©ZÃqc¾º eϯMË>ïrÝ7@i©Á_Í ¶ÃFÌÿèÃYe£‡ú5üì·ÄY:Zþ'4ï¸ôOLdm%±§=%ûog_‘:ÈÑ?ñWMôkÄ Ñó—À!g7)a± ‘Çt_º4JpmâûàG ôXär(%§ÕWrc£ÓÃaæÿÞ¢–x^5öv†¸(†ÒQÞ $¦Oá`§ð8Ø[ðã&V´ lÎaºy-W{ñã¯v’¿›RÝä¤ë“¿–½­07›Ã௺ÓQj5îôË݈ú>Å;¥iÏÿè Óu†y%öüó2¨Gí#ü•Ïï ò•¯°¦QÐc&>éLvºanDOéZ.‡ZÂI:˜X¾’Êœþè=ñaÆfÕÈïâ®Z q¥â9ÑÖ•ƒ§wZ„ý=É™­g~Hdj»ßÀ_}EEz Úe7ã[‰¨´ñ£…šˆ¿9D–qß-æG•$/¥^KN¥Ãb675gjæ+n?"ƒká˜G5‘úó¼ý#Ó¿d¥5М Ûõë`ç¶ì¿=2©?/c±Þø‘І/3?ºieÇHgé~¿Úòv¶"B*EþÕ3©ÓîÝœ‹{~‰wx—,ŽO4“¼þÿýÜõc°ëdÒi#þuÿ’;Ž·Ú ½‡†u¿ȯ¦þ|Š^]OAþ®Ð~o~ÔEG6¸*»7qnc‘|­W%à¯>ˆ)ÒÁ¬ôßíäÚõ·ûðO/à1´C‹oIŽSø«†¯VP$À²æaÈe¹ú°e¬ÖiÉåzlËzðcµ ITlS9Ùv;8=`“lIÿĸaØciâw(·°F;ùç5«¬„…ù~Øpû)‰†Z±&ÏjþnKí#f`ÿD7²jÖ€#À¹pBáí g,ó;ôë–Xüð¦‡Å•PvHwy8¹® î#tr;ÿjž~\<DZhªUÕ!,ó~V<Œ´ˆïKÇüó_ÕŸ[š§ž´+Á›pruð¶Æ‚HOAt•XaØ]›L4þkÄ:{X«¾ÚZzíAÚjÐ=nLÿÄì%‘ÚL|õÏ·3ïóìÉÛa’%À3ؼ2ê>lç_Õæ^×A¾¸ÞÜ ÕÞÂ_m“¾p#è=˜™,Ú]Ħ~¨‰µ|°Ä/ŒEøèWèQUþê¿ù"w;ö¾²ðÕV-øYc½†ÌÕyà‰¿†Ñ‰JüŒç¯ÌìÈŠgžœþ%©‰¼@‘K ±=ò8qƒ?ÚJY9P¼ ¶^%ý6zÅ,Ï2mÏÁ¥AÓÏAþîm¸üòø÷m­jÖSâ†T”lÄ6çe¢Ò P¡«rÂÛî V>ùçݱ|áP £ß'$ÿª3ªtfwì½/Þpbì­–Y×|EA>h,×F|†…†»øÑ[&íž/—y†+ãYäi×0åd¸9–úÁ‡àQ)¦€/¥â>Ւއ%Í7°kýȸK×”Õ(J©¾‹?Òkµ†'™×_PŒÎáWu§Næ#ŠwD«,ý7¡Mw§wû®y-ñCzb¥` ´™ì8¼úlL–\'8@+,¶“yà@Ù£²Ðo(€®ÀY©ø¨iÙHÅ™{o×4²"=x+$²ÜÁÃnì¯,p ÔÌz®7厶Mƒ íVXÝ•›Œzæ[+>ˆ±üHãt옊>_…IO‰­ÔÖ&µÍêjn…©¸Í3݇¬ð%T`~ÛàÃÀü«ÌdSõ•rÄC?÷‡©+ÇSrþª ùWo­ZÎñT¥'"þ¸dæ§nþÓy™¹4L¬û¶àñcUm(5ƒß~atº™üÛúÁWޝàGò¯²‘Õc£õrGÅ@üÈBý ö›øqÇáE¬Q€l„ÆryU/!Jéãµ—b¶¼-Έ bñoæïÞ°Hö=B™c"nc¼VI¤ÂsÍdÜ¡ÿÕ,éÆúóíèÙäf0bÖj6ÄÖ?ÊYäx’»ØE›EÙEG”Lßi‚ßNøç5ÅR¡Ãª½å=9Œßý k7+ø•LÈWXýk°8Q°eÇÈË}äºS?¯ó÷ß´ÒÒнD+³ÂŠlÇWâ §Sëulz…ýn cÏ;ĹPV¬'|É4j—ó®(ûëƒ-N‚ERP‹q†`ÿµ³Æú9äš_ÖhZ3½(Vw>O|SΩ*; ¿AÿH„}?µÆ…¿Ú÷ß$^gt¥þ#\»ìGýy]N+1ŠÉ(|û[¼ÏƒÁ0< !Dƒ•ä+¬qKòXOò;oƒ|uÑνÐpžºÞÜ S|Ëü¨-Òry.´Ûè+áŸ:¡^T9>PŸòŽlªØ5»þã<¶òQ^|UQÌø©þÜ[¯#G¡æcÿÈúíMO D~5ɇJk&¡I <Ë‚æk¬} j":¹¥WÆ:0!¿ª…~\-ô Œ?¦©*w#ÿêÌÚ)j3¤yM1+2㮪÷;ú6`þàF”†1{ŽÕ?Ì9wF5¹âÕªL©Têõ3v¢ùœfµØT—\#þ·‹ø#2åV×ÍíDÿöNÎfˆwÃ7E'šœõ¤8€FÁ™‘îèwè^› ÷CT·•ì~}¨l¡¦ï?ê»þ»Ï´SÄUxÅ•§…ùù&«­SdÕŦq-ÿ޲4rz¢Ï_5çªáÌZr=Ásò1"à$z õîôOdNïo¿”Á̼f·šä={8«P#_ùµ~Ìÿ(…Ê’Ò,kb—¤=»nQwG¼›ëþ?)® ¤fðÛ/ˆ–„Í ÿöAß:¾Ù‰i¬ù`Õíü«ŽÚú½°žQ÷ÒLí÷ú_s”C™_›–c+ýÛ+Šrók—Ê׆lòoâÇ%Q˜|ÅôØâõØ­62ª1MË,ó&x€—å)ŒóÏ·¡D”ËXg6xoL4ðÃŽ?úaiŸØy;;™”˜RFulÐ9ÿÌ›ŽÅ/ädâ‚[`’ÏäQðã#_{ãGÙóµ;Q fí$a˜_ë£%Emÿ*›ÑÙ­ =¼y3‚ggykl&gÈ4Ÿ<p!å©<Ê Š…Ä]±ó/É+ˆ• FÆÁ.‡Ãª ËsŽÈc5ëî…ßêad“»©Ÿ¿wtÒ ·ËPƽȴ-~LcÅ—ÆHåÆ5ûðGgv¿Üý¼mA­•ô*+ ôvÙ‹þ»^0ÚùàãfpN×Áؾà‡":èf”‘žòJ­ñ­ÿâ݉êòûªÒõ÷fЛëºwõr9âüâüÔ úƒé«±ÒÝ@µêø1— ¿sðG°,uœ¾$PuÄXm•k¥¿?)GýÇ`îZYþ¿ñcÌdò_Ó›IÍ-äï^cŽÔ ²YÓ˜§Á¨¯d]…9rU•~ê¿[T¿C|;¯ÀîQ~V'5ZL¸ªS̯­RÛ›&/ÈïªKmÀVl}”Š+Ä*tƒÄóX©mùá Çê:ÞëQ¼‰è)…ÁØf[s¥™†ú>è éIècUŸ›u¨Ÿ¦Jq.gá¯Öƒðó 7Ñý‡õæ ¸ã]#·hù³wÕv,þXs"ó¡Æ{À -&;I3ûãù§%kÙžÿÑ õƃn]5Tj˵^Lú—,@?Ϧìü&î]SÕÜüÄ”,w«8q—Òkر‰=¤ž0™gaÿ†q%?>£ÏMþn~í”ΓF®À;6C¥GCÚ­öR¥ñì¦ è©œnίÔY¤t6 3öÌØpªÚs‚BC¸ßÝx¾š’UÓµ¿«šíz“IeïÏÀ×éGþUrž÷od`U ÖPæä¶'žP{¿B-²:˜ÓyºNóŽ 'jÝDÛ·Gæ¾ÖE ’‰‰>ÚÐ)¹Š@Çx˜µt­¦áÜay:›pÙÀ¦ ÷Š™úÁKX†²*ïñ ¼Ã~ÿ“ùƒ ´ñüóíJRhþuþ•C‹®Õ‡` ËŠ5‰«žº/õç…õÚZ¸ßÄcŽ ä_Ã[,`¬“ô2›øãØ$#3A*¿ØF5á·]‡åã)‘ ¡–s7Ü{KÏX¬•Éñ™K¯Á2ƒ(¦·it–;°{Ûa¿–áÛº«VXé"r™®Œ¥X½ôè‡þñGVl(6 ŸÅ|?ÑÑW¬ÝBÐãžÜ°é!ûNŠ%:ûæ•¿ê­%¤b”¸ X«]Ä!ÍAÈ©Xd'Y©‰pzA ìòhxÓm¡òWžb1Y5A ¨3ÅÙßD®15–~"^sUÞ‡+üý2v·/¨§‘þªÚ/®ÚIÿÄbàÇz|°Ú GI¸^ªÎ‰ ¦ªt|Ü…?Ïú ÉØ(â™Fgð#¤úóZoø«'è;ð ¾b m{=‹ëË‚þQCV”ÍÑ2®³»ûø‘•ûTÒxåzsƒžœO޳úV¹5e6 Vi4”Ã`æB#m Ê[L½‡û؆7z¯¾*1Ç[Ö¼²&FioÂüÁàù»Þº‡GX‹kןGTkÙY~°$ùQ‹éáq½Ái¶'Ûö4Š} b€{(§ÈIh(»ŠëA[ ü¬Ž~_ö…;ÌFJBòiOS7yXe7ßãÁàK—¥ê¹žõ™þ"Á?,Ÿ7øq“¯û“¿›ÅØ©ý˜©=KœÚ9Îm (SŽßï0ÛPžMÅAÿE.Q"/3]k€Q ñFz‘#{‹šÌC< Äèîò™½à˜ÚˆóË‚Ý=i¾b~ÔXâûä%U$Wv±µõ“;Žm|Óâ” t<ìϵ^ô?N®ùWÕUžª}¯z‚¹¨ÿX‹~Þ‹üÝõä œAÏ Üâj{;ƦQc' dPãqúGîÙcc•J›v›]$FðÄŸwZ1œéðîoaŸ1ðçØ„¨$-UˆmøN/µý|„ôvíïµvVÔ RÌ;ê¡ËÆŸXõ䯃Y*zL#§«'ýQ*£ÍÄC_¤|É…žfÄ#Jî n'àÍLäz ?“5šü«–¼­v·ºæQf~¬#S Œß=Ð7•³®ó¸U„JôÓfg5|ÚhëXë ,E¦‰MßÿIýyyº—tsL<ð#ë«`p(_¾uXús},²ÓU©«,gŠÎDò¯2êÕ5C ‘ÿórùÑ:ì(‘î±ä_Uu?ôs?ùþ*—ðýMýüÈ‹5ÊBníF2ï|dcªVE$ÄÚç5nË?û_eÓ•o„IÎ c-7À·/ÇÚÇQ>Øâ|Ò®ñ{ "M7æ¢t’dü0¬X‡ú'Òž`q¸‘ÎW‡`—>ól¶„e'Їó#à‡!þh£¹ãm<‰™È\ÝÀǺ°N³ˆ?t<Èã0ÞJ­ Ÿj~P~c¨õç ÄJltG®é81Èh¾N€ÇÜMµP Z±¯ÿ×¾ ‹ä!Wþ’¿Š¨µÑ‹ƒ·sð˜¼99[ÛšŠÿ’̦x ÅR¸‚˜XÆóœé6~gcx©%ô>-âüÚÚQ •(‘ÚO¤`©³är"úûJNL'âüò>i²@£ÜãkDüY üxízsƒžÁއôß]jD„½DæfVÀ•.7²àÉ·Pôù„þqÜk›…¯€I`òâ¨Fbº¶ h©ÀÏ,F¤rOEEÿHÈ;´CóûáYì ;x£سÝk¢÷„7[À«¥å':¢Wس¼[YeX¿Y þjûkF.Ù;r—öá!E –µ@&Ájß‘j¢Œåw£tO½š­ÉpBù¬]Xk üÈnãlý|èêAN/õ'Òݵ¿ÔðWëÁ¼ä&xÀ>^¢ÿ•lN/ª)ÒRU·|ë~¬ãN¢ƒ Îû6¸:”‹ËÂȨhß÷ßDüqˆ§âV`þnfNî2Ya­—°j+Í0BéÉ}le$þÇ.ÛXň‘2Oõ[P¹Ó€jà úWZ€(DÖS+<©LLÞlt„£«kÕŒ«,õˆÝÐ>ºÓß· |XxÐÍW­c~íZâ¢'øXv·Ã%T }{d®h™Ua÷ÆhK€õƒIé_r€I‹¯èar,ÿbvîAéÍüÁhÎbT”'¯ë1í5reñ£ü/êÏkÃ_u–L¢õþ×üÕ;G\ýýw‡0]öV ~¾ÌQMKÿ’¼z5Mý&~\#·;úya¬Ü:ùBÏ%òé³µ‡ô4¹-N‰Ìbîoæï>ù¸ßIÉZ=w[ED_NDâMHi\‘gä<ú·Û=WBÿ³ & “ÜOÌè‡}8@]DrÕ–§©|ÅAðc¹Ñ ÙFÇçøR†aÅjb6ób]Îm$Z?ón¤üod,tSôóæü¦èFhÙ¶G/-’¡ˆ?šá—ÓëÞ‹èq “Ã~lzv4ÁïΓºžJϾbºãÿu3¦À®­d¥|v ×›w¿o÷)b.¬ö>¢±ÙœpV¹ç—ù»_èg“ cwÂõägJN…ï““‚3Û‚N‹O°[»O¼]u²î Oˆõç͉?¼É6 ŽÜxBv%ËÙ~΄¬ KÉ3d5„9"ý»æ~Tƒ»çzsƒ®ý㑾üˆ{?ŸI¬¶ò¬¬¥_HoÖh õÙØDæÓµÖÎÖÏϰêEâdÄóÂÒðW½AÇ Â;˜I.ÜKÔ¨ÉÌÌDMQ”Š6D#‡Ac'hßvÕ’½ªÿ(«Ÿ•AތĉÐ?ÎsÝ»Uø¥‹êý¯jÐC°±õ‘(¢"½‘6²ãš¨ñ'Ð+€îDÛ{¸ÓCè‡b÷O”D ׉Lã*ýcø‘þj(ÝÿêÂã4¤—o3V¼M´YŽxÓÎß]N„8›ê…‘?¬·L&DzęԆÙL…Näo^ažH_úíÞg®µ³`›bÃie²òS59¤‚}.Dþnm•ä;ý#)üÕ6¦z¨Çœÿž¿&ª³ù]?žåÎG?úù¶ß–3CêýÛS³W;§y<Ø þÊT_© âËÇÐiûwê=ìò••{|TÍ4ûaç+¹Yq™Íô4I~˜Öiú_u%ÿª‘e20+òa‚¢êGô¿*…ÚOªˆÒxVûп½:úÇ2:´$³ÀÿEgþy‘Ç"™ù0òZ Ãeؘ4 ÜÛ̉td~íN-(Òÿq½ˆZ݃«\ILÔ$*ÍÙO?Þ“¿—øã0~º‰uº&mâNÕ"¢Xht—¹DPngЊíéŸX”78 ü•]5x”܈AìAÇ C»œ|È„px¡»Ôú=ádíùÕ`DCêßþÎqŸþ» Œøp*#@Ú\ ÒpN*6Ä®‰d ˜ÿ;Ä QTRª×¬iOUO©â©êÌÿ˜´±ÀÏêê­åPîóÈ©í µ _¿:zvóý°ä7©ëÖ°ÙI̳(IvÿÄ3äïî#þ(/‰€ŸÖ»½˜¿Åýª‘‚• À€]W7ÍÊxàm¨¦ûL½`4‘µì¹™ÆÇU³¥Šr¶V[óó3Tÿ*;À9¾¦7È2-Æ“Ì Ä]ðï—ÑŸ°søèQÙ¼J¶D1âÄO‹ÔA¼…ø¢Ýë-”qA;Ü݆TAæ!þØKþÕT³7Ê÷=êI Z áaö¶»Ê’w<¿/ñ\v§Î*ûw¾Vú—,‚Êw› Ÿç%5òÄ@Ô&µÒÓ_j Ùa}™Ò±ˆÿ^&“Íì®süÖÑðW¦¹\…¸j‚Üï:Á¾tÚ>ŽRu—gx™ÊEÎíbòw{RßW“y°轞†þ‰·È¿jGeÅ~jùë£O•DÙj ¦×P£é­ÝIÚŒÊß®k×D<‘x>ÉÕ'ù§QÉLͬA_P÷‘åøºήdt5$ã8‰•ÖÚ¢Æ[ýÀˆàGÞ&{ÊfPþî[­=Z¯ÓÔÞrÆA3·s¦eŸ_ðñ ZTvgUçm«¸³(ÓÅý5}ˆcYa&öÉ|°ÊËÑ?þ7øQü‡úóZw-›ëœ¾WØ>Þs¼Ö®ë}ĺãÞ ÔÏç:ªë£ÉßÍ¥kçö̾ë #©èIm~~¥­èÅé_2šøcók÷ˆ¤bÚoÎÿ°H)ñ¤/‚-©±;AWN3n`ÿÝiô¿*¦+ŸI&}2¹Kµ”û}h!¶j„-,Ëû½ [;”'d¡±üȦúÁrb³x.gq\Û¶ðñøó+mÇNåÏzñ4¶ÀK…ŽM4Azlx«Ø¼˰ÓõëO”e­#0ckðÿm”+dlB¹æ’b"ÜOc2ÍîãÛä ‡`ßSÃô²–P{øê(QÂ.,þ,t&yä—ú¹IÿÝ¤Ä ¾xnuX©2ÜáÈÀøcŒÊ’øa¡LöxÆb3ï†L±Ýÿ*·Â.[¡:–§ê2‰ÚÉ*OQ#ú¢@ÎÏ“©Ödm• ~0?¼˜ºIÌó [éXžÝxâòü‚É{ŽËú9¼¶UÝÊäþl?6¢µöÆïf."ø1þê ù³ÞØø·XÊ‹ H*ÿbÕOýwKêµÑ»Gùa‡³FLå²Už'0Ñ¿±2ˆ?^ª¦ÄÇÙåòN«é ^rå){üTñRF?-ín`ÈzÏuÃrù“ ¬Ñå<ý¯Š´&ÿJ¢ªÄGQðošß$Ìz*&ç¼SÛñÃŽÐ_ÉÄ‚ª‰“äѹÕ1}Éßhv€¿šMnl=²e#Á´{¢·ôÃûhMõËlïnžÓ¬ÁæŸ/‘I©º¼BlêCd®zy˜ú^jŒy…‰®E¨P™EM\B³oS›oÁ¡!¬º[e6Á2fúî]I¨=ÐFsiÀÜð’OÉD¬m^2Ûп$:Q=7ª Úù&rŒ÷’›9À¶Aô‰D†°ƒúÉò/×ÍL¥×2î€KQÚRö?bÙgi¸SÛýŽ(-úÇWs+LTcú#ç¶•-2µªÁôËë%k¹Îï!ñG.ì|---™^såæWby`ø¦$^I¤³ø”‡ù³ÑXoV`ýà|pã1Qrkbǜ෠^£ßæÐ¶äÿ•#_rœ¹‡ü]?˜:âÆr®c‡uû¬¼Îaär%t–ƒ¿Êõžçþ4üU&žúHª÷ÿDÿð ûª£ëdâQþoñCcjñsꇿ{5?¢Ÿ¡b½,ó£ü¿W˜>u?ìì«ÔÆlù”þ%éØþü¸*ŽŠtàG׮òàQð£&ñGgì•'5Í&³`+ˆ80EnF€<@}P,Q(L+.Óök)`:ð6ƒq:hÄPíá kÉÑèßoù»XÛ-²õçAšà¯÷X^,oùÙ·DûñÍß`éì)z_¨?ÿ‚.vë< ªãU¨;¬«E¦£pLx«ø¼+ˆ¹j’µ<[gãÇðã%v¾6×=j«¸ÊŠùÄ ð¬%ªù;¬iNìúH¬{2eÏ?o‰ook »A„müß hŠ™¨¬ú‹5#iõõ?ð]ƒ Íøîâx“ù¹—ÆP•&k;\ËðWGˆ?VqÅÍaÆÐ;;gˆõçÝ©?/2Ä?f]]¥.k÷ä#èÖƒ®'9äMôè&`ÁM[ü¾†à_%âÙƒ®77è®\w<Ð÷ˉÜËɸʰ…Xÿ%ð'#ØU[8£Æ|,ü9â/þ¯¦.€„áÕ2¹\LÓ‚¦¥þ½fUÝüN}ÀI4çðW»¸5à²b›ÑÌÝX­óÄ:úGlú—´£Ò§4u†“±WéTEú—Y¿¿×«©ß’Ý9çlÌÍÐȯºHäs€Úpþq…ʺrô‚ò±€åm}žk(‚š²¬i¥¢ãO¬£k[ÐÕ:£¨ÿè Xøþgø^7*Gj›sÌÈt ì̤‘àQê#2½Ö›ß1nv=¥ ñ¡ø«Õ2šÑ¼‰ºÄ9ñÛ7Ò±jœÙJ 1ß 'Æ–ÎÄ;ʧ³ ˜ȿꬺ°e7gs.Id"×þŠhϨ?ÏE%Ì#ºVÂ'k~~ˆþýüñѰc.Œzý¥òX‚œAÔŸGbÂax"é2È_®¢IFõ$Ú¡2‚¼[ÕPðã-ÊûF"Á8Î|t0¹mer6?¡z¦+¯QLT•¶dƒ{Á_Upíï½vPTàíiÊS•^…ƒƒ`†#ÿj{ZO/™µ GF´Š«è+èRÌZ¥æ[ãL[]»OÔ®z-Ü·ûCoBþ•;ïl[V­h,2‹9—¬ù£ ¥3üdâZÎ…÷TàªË‚wñåÀÑTà©Ä{¿-ø_üXŠŠó N ø*‹ëœ~oŸo¨ÿhÌü¨Ìô¿²ë?8êè õzz½ ñGðŽpÿ¼úMGi4¥ô G,c| çaþù0í:šú)±A¤ ~sþÇN‘ˆû˵®©%ú‡?øÁ\¼õýÌš ㊠õŸö¶†ú¾i.oQOX˜XêàGEÙOü6£Ï^Ù@¦ýNüõŠÕ¨?Äzoðf÷Ó<ÄzÚõƒŸÆàGDõ'ëEÂgY/šµw8j¥=ÁÖ¶$ƒÚÊõÖÆ?™ŠMŽ ÛtóV±2v{ö{}¨ñG~1’«:Ñm”îÄ.ÃØ_8œ!0ÃÕ@¤¬9\™É‰TcþàŽÀÞ5!]ï;ò¹Ý°ºÔ†á»­ Ì­ ç÷Ô­âØ9¼«áÀË¿8Ç Ü­òä3eVd¹ñ£)UW…Àxس1œÞ©@er>y©è_R…þígÈjDóÐó4»¯E$V’gà¸ëÍ Úå Çmôóàõ@±úÇ^ÒÿrñG;ê6î ÈJ=Žk÷oÿÀŠX7*u…åè_?*éeåN9'YRðñ•Z…²_,qÇÞD}Ú³v¹JÀ ¢…h¨Å°k‰?ª¿?ÊQÿÑDKLTñ”(å8üÕ.ê-:(þiÖ&S´6ÕÓïñû30ÿ|5‘\>â€ÃàG  ålm°ùç}É¿êÁSñÚèH–V ~ëUÝœkÆ:€E3èQèmµ3¢Oƒ¿jG®DªãÒãö¾S¢`úù&™š¾1v§˜r°Hyéѵ˜þã“Í&Ô žAÏ‹­^Iu÷=<ÿdtoºÉ)÷E÷9H½ûî{.™Ôew’hïµmFVyŠ~t‚'¯>ýÛ¯Ñqýøs$P?ïI´µ~èö9²O¹×ÙÛæ´¤¬j¡¼ëº¹Ã¨ÿØG$óšwk•ªÌ=Ù­FÙÓ¨`ªVÒGêø«çT£'uVE¯Ø V U$ýKZs]aC»ÈÞ2(;ó úyV"èvì,–ú*¯2Ð +j)9p~Øõ–ÙÈ9ÈzDÖÀSV*„~ÞÝj üèçñš§?ªë)|§5d.w"îGžùrÆb3½sÌÚirÃö¡—/$óª¤]†©è›éô[Ü  }.ë>ñö^zt”å­ü`t;]Wüßû¤kƒâ7­ù¿Ö?¾:îhÑÏû¢N< ÔÏ7:jT£ImâßëuŠüÝ–2 ¶/6ó?ë©ÀÚmxÂ?Å ‘@LÔ‡¸ž·°œÖaÏN† ™Š ÜN:è’WDäž}¢ÿ®Ÿ~„¿ZÆü§ zÌÄ–Î'þøCyÃ_5•}ˆnqO©¬/ÿɰǢàáM9 mo'¾øòœü‰?^â¶ÂJEÁB7<ùMÂ0?ª®vKF œnaå–Â^Õå G¢©D ÿÊŽ?î“ÝUϾ yY«Cí•JУﶻî.%_ÊžybóW­É¿j Oqœ•Â×ùak‡óìÇ‘þ÷>¤{òÑᥛì`18ãÃõT@˜ ò<#þÈÊ×k±z±Q†OóýØ_)pk(ñG>=„sì ~äi¢¨íDGŸ@’nÌág|ÂþFyØÃ½X§úؽ+¨ºÇÉ®B[Ibžú—¼wœ×—ɱĽñc‹“aµ›+‹­‰Ý€?ý•æUj³Q1Ã_]ã>ýi˜ê™QA,ù ?ÊëÕd{,EòJï±f ´¨WhÂoÀLæ.Tßýf¦a”¤ÉIî´±Üv°ipKPT=ý÷If¥bb´D`ÌM4ô ÉzŸ;À “fU,¨=ƒð: Yæ.eÏù@šMê3'ÿ㨶î‡3ì­?àyÝÉÓÖ¬ ÉÏ™Ì>ÄŒAÓˆZ’)VO4ùª GAæGWM9ÇFìî5ªÊ>ž ŒbÂëM•éȺºÁÝ­Fì“…zž¹ÁcÖ$sj/õˆ%è8ƒœÔSàIJòwOƒ½ÁÕ*üU}U@¦w­—R‹¤£Ž±Þg#ÚËÝ«©ªaM«Ã}T¨?Iý¹,QyºÔ& þÈHæÀøÔiÊ þHL6ÙpyÝõŽÖÊÃ_åV÷ˆd–©¼ ï*Õž™§éê8$dÅB?¿l% _Õ󵘕ÉêÊdzèÃÙ´@?o?¤Ÿh'E><³®¼ î* Ï#f,–ókŠ}Ž<§ï$VLÏüdônYˆ~ÞÛÜ„~~ŸŸMŒ¼Áˆå·ZÑKF!ÞîŽihŒ7Ó:'Óßæ/j]îs­’N/:¬$…›k†w–¤÷fæ¼ ÄD,»a»ÇŠ­®+þï}Rƪ¿ëÎ¥F?[¨Ÿwø•úÁ—̯DÿÝ'6d½£®>To¤§ÓëhŸ§þ‘ø›ÓŽœðW9Œø°6Ãä]=›H¯¢ng <ß“üÝûþÃRÿkñG |OOcVpˆt2K£´ˆÏúE®“[¨/Fý|•¶[‹$G`³æ?ÎÄ‚%PÕÈGm.ûb oð tâßÕÄÑed×ÉþzÅÉ¿º&‡ìçç—âÇ\ج—èïȶݭµ¨YÙ@^ÕËP׫«Ý—ý¼¡á$þ_‡—ä…×=_Ù‚!ÙÏ*¯@§ê?ùW›á¯Ž¡§§`~Ô¾«/O‘?=„ýØmr™Äµ^2-¢¾Æ¨ÄÓe{*gˆG[ÓçÞÖ?€;X¯üU+ê²›3Ã…:•õ•ü«.œen¦—p8ð#(ÿªó?£§|äÞ¨ò±ævP­‘uäÙ}lÅv~¢¢;ýÛŸ˜gÉ ÎcF%7¸¾«žˆ¿9@ÚÑÿ9©ñFzò®f?öÕÉ(K×ÈZNåá@*£:gÀÕ$71x4C °š™ã 7u ½ŒÅf#œë)|§õÀ/N{Õ¾¾±1Žjˆ5•ì£ù”^гé\RÛùÄ*ä\…ÞÉY„,¬Z°€7ð®ÊT¼Ík‰„»ü”³÷m¿ÿ—ËÁXeR¤&þø·üÕsÇCí+}FÆSÿñZóä´·;šê=õ†ä_5ÒÞ9~¿:ä((šÉ4Xü¸Lëx '¤ÿîpí²è,/à¯`~TP×®°œÏ\ð£9y(Eð’sÑÑ÷®|¦åDÿèN®ëðc¸L* ¸žZq½¶JSxªSðÂPl"°"ZôÙŸ'鶬1JîVúï:eÚ0¬XB,·äòv ±Ç{@¥GXÕªê=ÖðQmâ¦EÌÿ½ÿU9íš| ;Wµ6>ožóØÿ}tBÉ%Ý ¿cçÏÚ]@skB­ÿ'ºr…¶|ƒ½åÁ‹†?˜_tüUUÔîkø_óø3‰rªQÑÏküâª/`Uo˃œ[°c1±z0güÕ*•EÆñG{Þ¬w«"W= \Î.b„°boTÇìÍÀÒÏ€8Kö×NIÀ_M72Ë‚ÒîÉZGU þ8Àéî%ÎOJÎY~ã’ëÍ ºÏO×õÕr:¼a;𢹨Û@ÅäÖµÁ÷ž Ü!þ¸~øÂÖ'Bÿ¸Â[{üøbsµ i©¯Y’þ»ÝˆQ³À«œÄÏjw´•näÄn¤ËÞ2¯n£9Ä1m•? ìâ:b›¥äv‘­Ä³ ­~桟@¯ [T¸Cüq ß®Š˜Pd¶Á¹§%þ¨bYÄ#eÍ(æzp3•òþ` ÓvyrNh8ÃNÌSïÊÔˆ#ûDƒ¿ÊʼŽOFTìt;2PÛQ“8Ä|¥\"BÈÀ¿kÉc^+º„îS~XoˆL n?E¡n€Š“…a†éG®.SCðè§cC…\CÝNÆTn®yË(È*ÏÉÂ:†gД½Àâ4_ «l7jƒ–cð÷ Æ§Bw¸FÕûh²Œ#€Fh8^¾r`G­¢ ß-»»n¬DÿH‰ªÑÚ¬C}_~kúÇ&uܱޢZÔ$^xÆ^‹Òe+ 9µP{Ú£Ô'¦¾k§µ"5ÞHg¼þLÊâùï~”$Ÿ¸øq•8é©“ ª[dÝãjÓÑÝq’ÕÓô ÌÆï@fHdåk¤t=…÷µÖôŠÊߟ©•1ØLGöï®Ø¢ãðSªI:;}œ¨oìEÿÝðÎZ¨4À©'¼‹èQ^ßè–1N\p]ñï“Òt¼jà:™LpY)\_ýÞ.>:žjtOð#9ª¬]í¿ÕÑLï€~žþJׂêAòî1GÑžü«ø°þ]ä1=ƒˆÍüókÄ$ç™_›[L!+,ë|ûž™"6ÖÍøp0,Æ(|ôûô/‰Œet+,“#eb‘+L+®¢+¾œGü±šûç‡?SU@™í$áS_Ã'°ë¦íü]·0éçùÅ4qW·›=ß=~i/kßçÍöT¯ŒH¼?õˆÁêa¹ÃáB­?¯¯=Ô? ­»uo]Ì/ªùW÷é⑵b/hË”=¥&‰RMí ŽîœÙ38=ò•ˆDŽ2ÿc)ú_™’™”‘þ‰óÉ8§x5öwÿö}*™9 üH&Sºö—A ¯eòGAõ9Ľ«Àœ”óàÚzß:mµ Þ»ýÛc¡¬t°îRרþÏŽCÔÕú'æFÿÈ®^s϶¨,|6A4«Ðq·ª5Ìôàãë&}“:+YwÍsDÝÉ|Ê Õœø£• 7ÝRÚ)þþsý<+Oo3¼Åüê¼c4G?/ˆnÎÜ-x¶– Çج¨RWíjk«šlõ0—ð6?u:â•ìþ.ÿêºVC '£§#^_^Þfeçzz…5ãpmqœÓ­~ÎJÎ?è²ÒÈZJþUmV­À•'¼ÃÀʨ)áÕpñç· þ?¢ú<Y3ÑËýßöOüฬ½¦OUoæŸÌá܈¿éCýGB½&óÏýÖU]tT­ÈiKJïжr£î&Rë½è[ÖAî¾0d}~3þ8,2Á®Ää¬Ç3…°µü,ÿDÿЉÞÃ_í ¿"™b`ÿi«;™ÿ‘Kîá]^ËOûòjÄÄ)Xs¦±•^Óxæ¾²/Ð!ñöÁ×®-¦£Ÿ/B¸ÄZkð$6b5ïñlÖ†y CãòÑ UÀÍ¡âGu-†ñ\FÀ—‰ #B¼üäÔ!ç#–ö$YÂÓÑ F’«T’L¤×[|_ALÆF·ÃÎß#òƒƒYïu$ÞYVV¼5ÌÛ‚·=˜ùQ¿Œ?8¼õdLR]rV£o6råTr›-BOqªðÉŸßÕ å¦#LÉXæ:CØå`­¾(Îo7`†¦ƒA÷ˆþGÃ8½€ßîi<éå±À\)/"‡³DO«ÁàÔàGãdøñšü«ðW6~4#RK£¶ ùÂ_uSuQ„רO Ü}üå5ä_e&Gô*wæ±gTÅ4³ŸæTa~mîc¾ÿ6úI\vùüxߟœÉ@ñ©/ÎØ=\Nk û|Û¼K^PÎAÙC߇âúyðc4h¹¥bž@*°&ùWê8¡²R­áa=¡^°5ãX±0¬Ûê!Ú¨Èx7‹‚ñWÐ?ºü_¶Ô`%ëë½*E½FJån¦ßáBÖó¡ÇE:Ì—„#ëF\ÔŠH*‚¹ýc‹C´øáž,ˆPn’R.QÑHú·1[ª¾äKMB HI¾ísñGb+ ‘×Dì}w©"õíT ”£Eûª­ƒ¿*Bü‘èò4oBó ¼Úk3ùÅ< nØÓIÖƒq3`³Ó«œs_ôóøÔÆDPïŒñ2hðP朄ù³5«-djd`‡“©‚?bçÜb‡Zú‡?óKR•ã~^ÕŒk%àÎv ‚«¬æ3ÿ¼þwýw¯k;DrI¼X¯ ºODÝÈ|Î|Å9Ô£f>¢=¹ö,Ùaw¹#gÑÏXÛ˜ÕÊœ~~–ª ¹Ä+ŒÌ®§ð³Öœü]'¼EE"üªäïV€©ÚGþsZÈY„cœœÙ˜@X}%‹37õƒ9àÝžâ/‘©ádÇðv÷C~…ÿOÿv#‰4¹åª£Ô¿îåN]DI}§EŸ5[‹žåH¦»éÙÀÛZ|í÷ôŽ~b–ÌŽ"› »™J|ÔËè×µ%ä)äÅ|ý9‰¿s0“ÄF8ÿ+² G{*Ú#%µŽúÙØHΜòòr©¼¨=Áÿ´òRô{â¯Ýw*ÿ­CýG# ìÇLìX/ž¬ºÆ¢2\öEL«dž{:ù~x§Wø­QÕy#¡NoxU‡úÁ2ì:‡11TüxåHÀ3x 65>žç¢lºñÖ€‰9ÆSû”8$9QI%ÐÏ^l¶ðe‡çõ(&}àéaã³N¬bf,Ý`2S2¨Y\ÿY¢šwÄ5kù¾Ü²©võÇçÔt¦N8ñ_ÓÑ“ižðòYí¦1H-á û‚J&Ù¸a´öáû/BŠ©¶1Y8¤úÁ¾äÏ¥'²HD–@u®î*;kξ%sm:Õ8ù•ø£)QÜ-tn?Ð-8œ*ߦòç ~t˜ô;̃ñŠªÜÕ”N_¬t_Ö¨[÷œûüg(¼Š·|l› Ö½6šˆ½Úú`KîÖÊÑ0ftꆩŒG¼»[ü¨Í»ïb‹r›øÃNÇ _·ß7fÅG’ODì`÷%õâU@Àؾ™äìÁ—]¡2ÑGj#óÏë’;‘ùLÐù‹Rc±ß=3qÅôóæÊ ¢Yçßo±—~zöSd¯UÊ÷Å6{c±Š©¤ÌšNÿ¿)LÑ+ Õþ‰÷àSÀÂÝfÿóÈ#.6ÿcµ,Š¡áã7â´$]´öÓq¶9LMG[^ge¡3úkW¼êðT8än/B*@ŽðaULtíσþW=a™*ÙãQzŽÉíF>âôo¯^¬%>j 7äÏǵhIˆ½2Ùtý‹e>«?Âë±9e™_{Ì(F^ï%£±éÆÿ{aD¤ÿÕKr›ïÙ_ gd§åLêÌe=£’<¼ýÌ|d!ázÇ©åtí,;¸ö÷\;#òóŽ—&þÔÌKtÉ(ÅTYø« œ'U„Í©EoŒ¢•x¡,zz:s6µ;xšŸ‚UŒ^Šj[~,b’M:‚÷Áž 24ã¼9ÖyZýA¬uƒ~íȼêK¼ÌÕtó=¼ÝWNöŒù„'ð ¬æDž÷Nê°ø½ ß? ÿþó]ŽXZPæõsGå=ÿ<ŽvN+®Ð‰Ô"¼^‚Óžï0ôˆLÿhªßÔÿ&~ÜtøˆÅÒ9;ýd³‰³tÑò£ãQØ /Ø«W0b¿sÕ“Ä&îÍCYÍæ$°î†ÑSkÏL·êô]O&kâGœ0­8ŽNt§Ä:üÜÓð+ó`µ[«Î`Fy8(›‡–´3¦‚e¾Ëiÿõ^?ês…¯,ooçïîÃþEWSø÷.jÛdؘ?@§ø-ÀÒ™¡âÇGLðã¼ÌŒ¯ãRØ=n+awaïòƒLðÎײÒlb†ÎÌ´ó¬ÿéÏE½Ø0 öç Qr\žÕÒ\er{’ךßì)²“ì±ÓXú·úe§šðš¡_:ªL ö55;Ò¿·ˆÏR7ðÃÃèDÖù÷[‚ßô•xù»ˆ$cÀ#õ§.¥kŽÃâ™Îep:5Pø½èÀ{OÕãL¦pýÑÌM0ª÷ê¿;K–&æqt$¿à«ÁÜK–Ù`s¤êašÎµäïF£¯Ç$*ÛP;i!  Ú~#ˆ\ü8BÏ–Š®ýåÒžhÝñ F}xþ’kŒüæqæ¸Y¥ÑÑgÐ}·%¹±ø¸Æ¼N¿ù:V4þœt8½Ìê‘qè;ü¨FýÇVr§#ñŒ60KR³ ûg.[£2<Ã"'qFpF¡‹b~K³,çkfkL5kÀRŽ…Õ›I¬Ÿø#(Kõ9ÇDq’ø£*yRžÖKzT}©¶\4$›³žè¨_ÔýÖz;Åi,ûKYî6½±‘W”ý…l¤ºHôºX-wé´âtí0yÄþdê\Åæ­†ÕÃxÀi­ã«¥ä¥Ö£ëFBYO¾ËŠTìO£ŠÔ/pÐ8N¼‘“Œ4dŠãÿ ÏÞB­ˆÌš­Yur¨øñØ‘ÌÝ'ã`iš©y`I)¼Ïšhg âú#Ä7«à¡fÀ¾´66‹ ª¨·úXï…§;š«zÌϘ`GU⌜غ%xâňî Œì úx«1’ΔÞÚ¯*EÃÃKDä:W‘Ÿ)1žA[òÆr >jTmªvÃ#ó¹íމ~øÌ‘­èÒM¨B? ê‰m ò Nµ‹¼%bº¬éß ÇÑ/âM5Æ+_"m$þ(óä ™ëèßÞšúîUhÀ'ˆ8Oþp•éÐI43–Ù^ýwÓŸ¨ùû-¶'þ¨‹ÿŸ¾º«ÉQ‹Ißö‘ôO̤r›cY+¾s»åt6Gÿ¨~<ãÝP^ªÈæJþ¼‘V úa½)2 (daí[¯_ f° 53?*–s7ÙWo˜hÏÿèof³Â‡ $žÙ‡}®ÞV=¤íqþýÇ]»¯õÅÖ¢jfèXž?Θƒ˜¡ž“~„ãÈ«LÆònf4¡K¼8f4Ùk‰¨ÉŒÅStP>ü¶œ£ ó£ÕÙÕMð#/ù2—ìhF×ÈPÞaêäÚ¦pÆdag1ðã 1‰~¾]ÐF«ø «¤²‹¬ëÚßUíœÈÊ{PŸåõƒ… EǪôS9‚½aÞb?G©E?g`$“ÍÝ\dE4çù7ñ)ÐÉѯ¹ðcÜZ c Ác™Ì;öѬé<ÆÎº›ÕPŒ6sÉ­‰HŠ;[¢Ïï¦z2yÇLúÆ›µ€‰ö£êçÿ$ÿj«#=ÜÒ·£¾çÈø¯çŸ{h'´²úJ=¾ˆ-^jv4:Ë_¤gÖ½õ«ZRm×·_¦§ÝÄDfªä¤kù28oéN½­6Z‘éE51AJGß0-ôŸo2Òx&KðG¦;î=9C«CűH¡¨œ ýõ²Dþµ#Úcذ'puQ^uU-˜üºr ~ÀüÛ<#sYµ@˜êcˆIb‰´-à)ü‰,R<ðCWÑ7ÄUMŒÏ² k–1†Šøø||nÔ#Ž©…Ç]k)+ ôEɳ՛…¡öŒ<¢÷íNä׈X’Â_Cc(…< «8;|ˆïˆL”›øøƒ"r¸vïçC ü›7dxßÁœàÇ<ð#q è3Å¢+¹ùéz„®…Gİ+¹Z&QB¸×Ë4O4­;ø©s¨·u– ls*A> Ðç–/ÄCâŽxÎd>@Ä•aµ0¬gøqÍ s §mw¿r§ã r+æƒýðл€!`áߣLF©(‚ÿ¸ vm,¿_WCÅ-xïÓaúÙœ˜1 ¶~L“¨ï(Ýöž“”Ç\ü‡Õ ]¡ ø±¤‹µZKvôò–R|Üè¿[%3üÕb°{ÌÚ<´ƒ/D;QlËÚÝÑ­WpVyÌÄæÔø4̹K?Z;·¨Ñ›¬ÁïoKý°¬730þ¨†oÃìʾ2QÞÕš@oóMôpªO„T‘ ôGtc´‘õ ݱ¶¡ýÞ0ò㯺Êä¥éê:½FÊ©ÇÆ3µý|:¿}°—Þ^t&ÜÌL¤7è!i,•b0XKÈ'ÈC¯ýª bRc§¶7’Q?øÙCÞÂ=é Sù*?®U„9 ¾è¥PäÏÐce+ýL £ƒÇ@‘ï̉$àc b‹ ò9jÉÄAžþˆj/™¶íñ®žUíúh<Ûøùì(Ó ¯¨òÎn½e¾øŸÔæM6 ‚_#‰¸¦âÛc¾uC×ùÝ&ÿ*-ZTužº7*~Iú_%%wó¢âÁô³“}p…ÉVÇÀ€ tí‹6µ’Ó~Î31Ž|2jž\ø±Tk,ÚÊ;²OïDbüSf&ªáàSR1ŽÏ;Wu &±“y‚zô÷ü¿Kæâã“x`Sx3˨Kâú÷7ø¿ôù&G*-H彃þÒ»–Íd¥CBUý„nÛw‰ƒÇ{Jü XóYð1#°—è(þEe•Åá¯@ÀE¨.B5ǵMÁ™­úÙôŽÞl`ŸÉ8JNÑ3𣜽úG9*?™5ÐÏâÝ{À#õRÇÀžò¡þ,FÒoÊRì(Ƚš>*PÈæ¢$2PÞ‹P+ñýÉ{*Él:¢Š¤ÄoèGÛUE„¯ìŒ¿êO={bÒˆXÉük¡Å70כɨ_Ÿ‡^‘Ñéo‘‰d¾„¿ªŽoO-ì½ÉïÛ€~uý¼ç÷dú‡'½ìŸ½É~~cæsýÛ‡Óÿ*‚sÝ¿0}õˆméMø‰ÊøÞXçu r6ò/«2k½ršÔ‡ D•F5šçú˜x!y–î-s¿cÃ[u£sn-ë :ÿ4êÑ{“qkÙÛE(!Nzõ‚˜%¨þ£™VT\6j «Ÿ7<ÍÂÆYyÇ(K7”m¨F³ÌÔŸwFtšÎN7ëJÆ}æÏ0 ä“õFFYGÚ ÿ¹X^Œ¨þºqWhy1ø)OP·9zy ¦ }KÂa%#Ë.%yÕ‘¨™×Ìý° Ï`<)jÚã·õü´V¢+¹¦}ñXï䳡óªµN“‰­ãfç0«¼³JRÑMgÒú@òfÒ‡ø"\ÊeÙš7eYo§þ'ñÇvGÔïôó‹Ž š»ëœ¾]_Ø>FC(¦Ÿ×‹â…fG£ÓñôxLòÔïh‘µßË.;áh'ÖÈ|Ĉ¹ˆþWô·ZmE ÕüøÂDܰíëïïÚ-öçÝÞT 4!7±ÑM› _ÇÏœò"r­<§‹0­¸B;£½[ãÖ|KüQ{XVÚÙ·7áel­bݯZɰÄH‰È¿Z!Ëã7°·]øÞa4“éf&~pªkðL&–¨/¶qV¨øñÉ‘kqý<úö"ží<ütY¸¥}èO°õzA)ò¨6àño^¡\ó{} Oý@®Ìž “kÇy`»&©ž°<ËÙí=<ñðXŽÃØÛv²­¼vúÛ}Š¢=×ùR³É‰È‡§•ºè–¼1·aè(>ÆTlJuôÐÔvrØl4N¢6Éú!ö/é¢5©8ïð\eã/"?»*±Ù\áù ¥%x¹ÝÑ?.ÙmÃWË ™Õ§cøqÙaÑ[Í—|Ü¡ªõ‰¸²ö° éð“ÛÀ‚mSæTãý‰› ü¸÷½ž3<Çk‰}ÚîoùŸ[ëëCN&£´1Êòb¾—>Sô#Ìcb2Ð;úÚú«fäÛãºS¡±@ÿ8ê‘×D‚`÷%úGiv”‘…¨ì{¹++©½‹C×…@þjvë(9Y6t dOG®Ø]ø—Æ* Oçmõ+ÖÑÿÂg9ÅÝ(†ŽR þ,…ÙÆ))õ¾¨¿:Y?gy˜«:àÇ+â[y¹O©M`ç1¦Wü˜¿;\¦åÜ$üUVÓÉÓÚ@ü1Âìä cŸ.¹¬9æv*/Rí·›XsÈz¼ú@æY™Ïµ¿¬ÚYšY2¾^#á¯ÈFFúïv´™Ùñ»·€ʼnÎÃdÍAÿh†­ÎDŒ4œ{“ˆ˜.!ñÇzyÃuGjj‰Ä~ª©ñ¤u2«0[áá öªË}Ä ¯©ÌSÎÌüSüx†:]¼ÞÚDpc¸âÁd1&’Õ¾Ûßeí´È…GWŸì¾rçmЉÅ'¢ÉmôŽQôŸÜЦ½æ ½fZ)éÊè4gqÚ¯ÉÚªa4áþé¾trk&c‚}‰ÇMC·:‘™Ü–Þ^wèÇ5’̰öÎVQgspí:•“ϩͼk^…ùõ—aVåÔ ñ{J®ãùÿôÉ>« ü«×ïß[8™v’þx—¨/#žjv-ÞGJ=©ž[o®ŸÑRjÁ;úüóêû}Äfâo,Í;Qü¥ŸÓÆj«EcY– ÷Iè*a±ÍA¿c#ŠÅ4ã#9‹›9ïµt+k¥-§kl¤–%em¹MžÑÃ’-Eç9í¸ö@\À²_G·„¿[CÕ%¯§y|Û`áW¢7´&Ð]¶–aQT"‹žä_5ÀßÚŒ—¼uo‰‘˜¬ÓÔd7i|lŽî[“l񻮿Pñã­£ ŒßQ”£œp7À2ÃÁïA9/G^Ê Ø¡õ¬6Dh, uæâ}}(1Ð ðã? ‹Y”™ðôÆêç«À»ûÔ­ðc7¸WEöÒ.KtþögÑ´/Ú+NÍ¥£c¢wòº“köȘC¦€§1½RQ­ñNh3Q¾/ ¡»Ú*½~êæa¯ÖIóéˆ?ØS™8àÙWÞøï9³‘dÌ\ŸèiÑËwža X‚ß—™ßØ-üxíx§Ï@?¨°5ÑŠÝYµ!¬_A¼ÚªèçK‰‹<• ÿÆ*4*cCýa·5:”úÇ{KßýñÓ˱XŠLüä1ÕË:k]ý ®™ŒþW5,'ÞýU×,Ç[ðK;LV×A¼™ò¤ˆì cS¯Q´MKȬïA2,ÖÐ;Ê :ÏdðâÔxo?.¢Ï'áï ÐCä0UóÊìDÿ’ªÆdmÛ+ÖÕ{Ÿ@-*CmpÛÝìÅ\«T¬98øqŸùo¨ü.Iž˜Vy$ñ×C¢ŸøÝED·Ö%ó¢ä˜ø’p'ð㣵ýÀa[L®Y3¯Ü™þd¶-¢·Kjjʪ¶2¨n9~W¼€Dm£@Þ—ò¼‘‰ø£»õnî’¹ Z“šƒTz¯àïÛ‚‰ÍëàÑ<•„ü«Ä°»dßQJË„÷XH}ÀçóD?ßK<ê©6 §ÜcÈòdÓÓYŠŽ!ô„Ï…®KFÃ@¦"^OK7Ôª®ëÝEü‘’'Ø›ì‰ËJÂ=Ä`*`kuŒ§ÁòeT°ßf¢×nr$ŽÑ‰q$ùfkÈ¿ZEtëϳÚЮNÃ]ñÇ|­uÑndGtA>ËÛf]²6£ŸÇa¾b¥¸öŠîð×é s×|DL» æÅ›R^íÁ5¸ïÇÿ³O8²jI\'sÃáñ¯ñÃ?ÈÔeÒSmáÈ_­p$¥÷UQôóèAñdX.ÆßÑH¬“%±5é ˜Ghtú룭§ë‰vLÿˆ¢+׮òÞ*ˆ–Ãë´Änv¡;U~£»6ŸÎƾ³²·É+zŽþÓŠ¾<ÝoxÂ·Æ òLª†ø¶-åJ¬ô'Ö÷$Go*Ó£ªÊ°ì1–Ø(–“ö‚·Ùžœô ‹< ?ø)¶kìÌcð#!D/|“¡âG-!Û)«4¼Ï›È(ÏÿWžÊ”Ëp¤/A½°”ò U?ª÷ÂBà»_À]Ùù» P¼Ó“Õ8 PR­=Î5½ÆÿßgLÀ﬽øÅñ…ÓÂé„dðWyð fqU:ٴݰ«#ácÚý°Ý_Yç5¾µÝ=}&:mBõ—L-B:ÇZKQ€Ó¯–¢C]b}XÍÎßÕÕ$ú?·°R@ƒk¬¹ ®)3ù^ÅÀá!àš˜+§áõŽWÞôI öàN7’cå¼ad«3tæ°ÌÃxÿe¨í¾Ê®7¯}àtzŠK?Í?Ÿ®’ƒ¹cÀ„=èQÕ °.;ùªíÌæ:®Ç³ªS]ÑØÌ &5bŠHqìýlõ›5FÞ©‚=Ýñõ§Ä ˆ‡fwœCÑ1PRRƒxŒúóÚä7'Ïç.ÿ§õ%;aÃ’Ð¥ü#zý   ?ÚèñYþäzk°NNò¦£2p±Yž<¬±dEuÒíÐò!ò¨Lœô uÝ_‚GÐ~ÙDËv8WVçœ>‚,u‰?Þ:ч/VnùW’j¸,0X›±öé’À2Íõ<=P†n£×Kþ¶²ÌàZÏM»¥5Fk.¬>Qó¶9Ícà‡ÓŠNÿ’•Ôé5±µoüümè"]˜@˜Þj5„‰Ñ?R)jp¿‹?¼´ b9ƒ_‰+˜äìÁ_% š¹‚~²Ã¼i^&ÿJ‡Êã,Jó˜Äý£<’ªü Ô8e!—²™k×µ?EÞ¬h‚§ÕÞµHfL¦r,£jæþ[ËqôŒ?:aûÅg]gþùnpº¾h ~|Ò‚{hÿ¼üRqüx)Ûà}W'‚-dÔ`÷Sð£îX1<‹&¤=Ƨþ|Üö{ø›§ÿ€=ØHÊ»“GǧCõç>x&͵¡âÇ{Gj£ oHz¨ƒZÂéቬCÔu‚}:ñ 5‡'Ö¯™±NTån_BÉÔT_žÔ§œ\|¢*ÌST¬âDø‚âj׿?ühºþª¾ªu>ýñzÉ죊á±LI2¥¦ÍDæÚFb&ñŽ6úÄ|Éíg¦{zæÃ]_‹»wX܃Cpww‡àÁÝÝÝ×àN‚KpÞrIa ûÞÝ»ûÛ%@2_OOOªS§ª`±z)gŽàðc 9Á5ìñê<úÝÐ"š!z[XvÊþê,Z|® ‡¥Æ™ éS` –jˆrè ÷¾ >,ûèNÍîàPðã¶ ü˜B>`&?‘îd{>¿v±6ùsìŸn­ÂÿÎFä<øqá-øÕCìú®þc9ñG*R²£ : ÓA-Ás¢/mNýÇ^º‡Ç±+€­éâ~”KÄg\â{Ÿ€Ëãä=äÓýg£b)2<9Ðí§~?¶h9\S\òGðÀ‹ ™Ú…{]•"¾ÙN»¶ÙBoÛ]% þ"ÿÑía;ö:*Ȱ“ïN@æ »µÅʧòR1_wUu½ñæsYÕ­{DP yâ½×.òI'©žþV5Kæ£Dëæè#SǸÀš¢«/ý¿¥g’Òº7-Wtn²-§'ØXâ¨ÇT-F¥vƒ)“'1;qjoÔëîÄ#yzåe³œõœ<Ç+«å‡–©³IJãÁ›Ô…T²ã#yQ•”ÒzAóû<ððåbþùnô»Ÿ9iµ-üÇ ó“ŠFªÖTqú[þvDâzùé°u›Î–¥àÅ*ÂSN¡Že2>ÒïTˆé¯îë‡ð\jqÚ.š7Ô :¦'žœº”3¬ð :ã¶×>‚Îö³éSÙ È)éÖMUÂþ $‡4'?fq’›¢ßÁéíH¯¢7Ôœfec­ê`Ù ºégwõ£>¥’« ìtÚºÖá‘uŸ@wÀa¼ÍÔ5q;ðŽÿ½/öq|r¾ðW)÷k«ú½ŸñÙøSt\eŒÇp7*]Œzýת[ökåÄÔRyN™ÌvôôMj,нÉŒ£Å#¡‘é—ÖÙC,€-ü(ñÎw§j3¯¹„øã6”T4£¯AxþîÎ{éWõëb!ÊÑ{øÎ£á¯ê¨a`F镾t4û›+ȸËÉz×cO¦Q 4‹?Yáy£&ýTâ‡ŸÊ ŽÔãwÑa¯¼ñÉ aeê 'Nr&º6ëIo=H9ùí>¾Ò¾è·¥‰2֩뙂=M6b4–œV3s0:§ˆêŸô‹? V÷ þÿ.æ×&e•Íé_’‰ïÍÌ]¶ä³ïóöÕć» ¸ÈŒ(ω}0û]•‡zÀ½ï`O‹óy¥‰ã&†‚~Ú]"†qf8ðc–+6QM[s&ñOcxwåɪkÁßì?r€/wÐ.íAüa¼¶Ò…r×··ªM à¯:›äoÀ…fx+±Ö¹¹BâƒÌÒ o×´^Ã_"§Òü(ϵ ~h„ÚLíJÈ““Ù¸ÀYíÏõfƒ —à?,ô´Ùè~rH­ÇÞåBÓ:ËVdä«[éÁ”’¨—î’Ž ~ä„s\"ÿуëµ%¡¡M>Ë„YëNü‘—úAº8a[ס&Á•òá÷e³€\OˆÀöÏ]7Kˆþß</™þSؘsžïô&?žÞVM±ÈKQÛ†Gïô”ìI=òçΔŽìó~¥Y‰?ŽªÞÁúKýFþ¼U€þê5Aa}ÌDèb{ØŸÐܰ&PA×Úî=0C °×¥™E…ü2MÈ£§ÄJŸ“ñ××]w+ˆæÃsþsZe©ÿ2Uw+ý©:POág½´ÝèòÁŽI}^4ªÑ?“Øj5Ag7 ýÁ\âå ²†¬x½—ðW°Kxcר(œd7+ƒ+;û¿‚+©Àµ]pk}чeG l;¹jVÂ[ûͤ( ÁWã4ñW³©ÿÀ×ÄíÁùL`–¶G¸¼Q&÷$zN½Ç;µ«-—žZ=¬®ŽLì]DŸ”çxX·ñˆ½ðàšªßÍ q$ÿ+¿=©eÒ³îÌS­é?®?·È 4`z9Ñ‚^ëNÖ¹Zl£ ÿ66Î0Uýת[ViÅzYˆ½*ýc‹‹X"²±QŸ@MC:¤,5bAªã°lÌl±×ÄÒç-\%ÝÍAúzÈ5#ï]^V•{¥¿Ôçï®8R?¡ßCOþ‹Õ ¦É† §”\‹e~Œî¯5šªÄ&aê‡~«äŸxݧ9Í8d¹GÀK_7óªy¨±ñ)ѱŒ¹îªŸâ‡¦Ç¥ºû*õƒ ›·¸¨2?]‰Ìü-<0*†ðø>Ø‹…ìÅZÑ(ðÙ‡~ÏŒvØ÷>pV×à¼ÒaÕ«ƒ‰yWù ùòçÑr=á]:DtÒHŽÐƒ”“ß^ÓÀ.|ï°»…a°Æ¡¶Ù©1äôÇÃît?’ÿ¸J¤ó™ïñÂûwfËŸ’î¡âG{½6ñÇ üÔ-`Ú%ó2 X°û#ø1ßL†é Š&ø«‹Ä [XuV¸åR ÌðPðã¥öјBÆBrgƒ`¾`5œ©‹‰‰²jðï,XÿЍoϹEởk®%?òŠ'´Tœÿ®~p hÔÄÿ{\4”Ó9õ¥¨_ç›êîk诊Á5£b¼ññøãCÔRù@„<‹ÐKUà9d¦Ç¬/«8ÆÍ!w‡x`ŸUŸ~3É*ß!ÿ^œœÈAÐ(-ü•S¯1@åÁ£X‚¿êv¤§í ̹qdBô»¬5V62Óá¯\Ä÷™¾Ÿþ%%á„<ÑVÍ€]S Ê9"äbÈ7'Ç‹ü¹ÖÑ—úÁ–Ĺ/è_2 ýîøª÷ö;-5 ÷Ñï.†±KlÓEþj&LÜðIRÓ_¼ÞoÌêF$Xœë9ñGRö:qF2%˜7»€Ù$È€<¢fru饩T¬1 û‹u öÑTGdPÊÖzf±Ý,¤Þ±î|ûþÿýÝWA~÷K­¾RùÖÏû¢×{1É~t™é¸«icµ4°W¥~ÆQjÜÏ…õBß·R«!VËêp,5ÈWdbÔ})ñG Ùšøf½Åøµ>cð@fSIÒÅN+&2ùN÷‚MidV§ÏH=¹Aúa‹¼&Ãξ;¹Î žÜDüÏRª=žy3ét|hnådu2ÈÌdUÒ¾?¾ù¨b%L]UtCÎt§c ÇMl{,ÞXú/ÄÈmÌXüžü·ù§øüÈmÞ”é°kñÌk¿6Y¤íøÊyQ7ub† øLk±·Û„ÇOVøÌh&ö R~Dü–u@3<ùD°,=ToGûÉ»xfP'^ÚJDSXzé?ªš¤cUk&ïcq4+SèËe`£G²g#`wZ›C°)±ÀM_>ñù5äUâªðWÑCYe ½U\÷ÌøäÚkÜa‡3HPrŽ©‘ƒ¾Cíž'•wÍàçt¬èü†Žhã¾´kÆ(ø«ðpM`.âô1Çò ¢+jAcøñšúðùTjäÂÿ?‰§°–»×Õ$±ÿ;ýîL£Žì=HIN÷øÁôBbªÂXô²ÌÝD-CLô»·È.äƒmªJ~$?‘Ê8ò白z^„<Ý©Œk²(1hÖÇô(ðˤ—J&º¿ïW'Л– ;áHò—Ð_¥''R†éaWÞnsòçôÌá\ø›ÅÉ<—÷L ç©B\Gÿ’·vW<×Sê» Óá÷ 5nÄ…‰ÊÆVëéfP-XÿD?ú'¦Ä/óÀ‡<¥|ea3™•ÀU”t.1ÝÏ’û蕆y„EAÎpT‘¿‡“eº#Z‹¦W ~,¢þ£¶Œ³Ú•êÖæ]«5‘Ænð#)•>ôŠ,èj~$tµ·GY×YuîÛßzOñ–¬mÀ©¯®‹»wüï}qU+0kö?ŸøŒùuÿ´þ<õƒ}IC•#Dv£=§a¶–™î»%Žù_»»mije<ç*ÄÙE\&Ñ'Ñ“·£è#VÙŒ ®+aÙ-zLa±LlûNüù­ÔëMD¿ë+;RT”úóÍòy#šè^pïò®ôÄC}cVP=°‡5å"lĸœ?ñ1–Ë„²¡ÌøNüxQé'¼¤tæžï‚]“pë#á)Àv¬®€FIA–xþKе¨ì×;ôW U;,«^R$¬êfì] õ~Ì *ù„ZŒuÛ-Zÿd…ŒÚÜÓ(¢…ÜYRþ+ƒŸ›üÇ@,]>µ›wè/âç È^p¦¦¯Sçê?Ï´pt|•A½2‚8) 6z&–¢rúµOÄ׈? ë‰Kfïdn†,*~tF•lS ,{Cò¶·ð ‚‰Ök.üÕ á‹•jJ~ø*ع;pGœÜ7ü8GÿDo9™hr"ø‘|);>BòÕÀâ fQ<ÿ‹t½MG†öbÀ5w‚úoÌÉèwCÖN0ÚÈat¸Hޜ抱ä]ÔþàGnú„Ô@¿[_¹ø±‹):V÷4ñÇS²ÞrïwýKâÓù¾6øœ›{••Ó1¶7 |ÒVذÒänØÁ·²–Þ}r4Ð_V•‚¾‘[¿ËçìŸÁ¢E›\‚¹ÁѬVX|'þ˜D,óÙÞ‰þ´‘Li«6¹.õ$sˆ?>’uÙ‹§ÓZôúæä ?*q—·¨†*O¶GC{µˆøc1ýJ^£NA½Ëº­ÏQ é\øæª qÞ&õ ¥ï+v‚,x½ º¿Þ“ûsê8†¨Kœßã诮ñ¾ÃÌ­»ô™ bÔ!ÿ=‰<ÅUºDUÂÃ"ͦŠå*Xì¢jèiàlBÿ«ƒ¼M~(ýJZn诘è¦íýDmÓ™Ñôµ™Ë¥¹ÒÑ?QG•uÚÂVyvpõ‹È¦å”=ƒ­ï!üUFìR-öï¬z.ó˜¿Qÿ‘›jø®è­ÞÑ¿ý:V;ð)‘}ŒÏqc®ð2û…ZÂ[ý _®7žÈesB ~ÌÓ›Š6Rq2=9Á‰ÀÚL9žÇãÎq¥Êè¯â‘ãok¥›qc²"]àÝ®¡p?';aÏö™E”+˜b ðÖÿë_øjƒÕŸ¿&þ[¨ïC÷!ÿ_4ED\Ùö8‡y¥%éàÞÉØ®ÇÒ¯~ÿ#ó'g´b·,¥+—šTDåCÞª³¡Š“ôô Ëlñ 8À ò"× ZëžÉ¬¬o6âa¿ŠÈ’œ?Bórƒ®ðõ«Uú ú·û`Uï`±æ`?Ê©–02Uåq¬Ôssg úÝìÌ,{øõ‡þæ×RôO<€–2" ÉQ℘œ­a°2÷©÷sº£ÜÁúG†¡FÖ{ðOñã¥Ö€)‹—ÀŒpÖÎŒ¿rtí¨‹§y œû@|ó…8¬ñÄR¬ÛfQ?ð­ }‰~Ær8òþÄo8­©ñtªÁ}¥€ÕU‚¼ÅK"¤uüÿQÔõuñƒkúi‘ Â*v« û”ÄÔ±ˆóÉ÷LSÙ³µ0:ÖÞ—O\Jl7œUÛÔ U¿;L¯+ `²ÀVÕ&¸͛Ù–Oƒ…Ÿl¾ÇElk=,ßPy;O?½…~çím ~ÜÔ‹r9qßt~"ý ׳ïÓ¹Ó~ÜeI¬Ý`žó[|õuXú¬à‡£àÝI¾$õƒ‹ô!¶ÏË"‡òÔ Á\ÅèþÎÉËGF¢ú«5à‡Ú©kª–•…œ| â®’`Ó8<ü>Ì>ºý]ýyf*/+qZSÂÒœáßMàärÛ±—'©F,@λ­}’’ê\'‘a:bøûÞ*ñæèýÛûï`>vÅ4áûJR¥JÞƒ¾*QÁ¤9àǼç㶇u=pu¸¡¦¨bg’Õx~î%/ÕEtúæ)Ï”åùÌd*Z‡è|ò òçS¬Áô+±èžî„=ÚÏä¿?l_b£ü»‚ûMµCÕ—AêÇÔú}ø‘&·?ÑNJ|ƒ‚V8º%úro>ÖvòÓµø÷<ŒÑ8ú@Õ'ûó ä­OÌž>»]%·>‘VzátÊýÌ)u·bÒÑû9;ª1õ£:Nâ¡ØMÈt¦Çv—;ñCD×_øýs¬2|þ õ ük¦b>PP–øˆî#²ñöTc]7Õ%Y†êÆ,®´èw;¢º=ˆjʇúÖ¬O‡ÜÝUuÑŽnM `êàNd- ñc½ÞKtdfOoðÃÓŒf>±†óØKôö}úÒ©¾†«3V¹†ÐQ?Sv5ÖýÔºŒW¸W¶Ä‹=f'ÿñk ¥Àíùú⺖7Xþ\Ó[þcý®¿v[hÄÕD{‘Œ‰ƒNýGF£¨QÑèjì +ÿkø±@«Žªµ(_ ÿÞ(÷ôÅú4á![ßœ2R‡‘múº9 Èx¯Æ/ogX—ꢜf[}ïP+ì~e*Å÷ÊwFXØ&ª"ÁÉ—Ây‡NÑ‘q6hEÕ F¦ª\-|SR÷|†LKV>ù7ïØ×µ|ûkb±ˆüGeüû¿ðë¶Â‡\†‹G݇;ü•­ns¦°æn°û?×_}ÔÒám^”aî«¿”aeñáœà©— ÜüDäQ2€»ojî]~²ÂÇFO"¢aXä{ cj~¶6ÑQB²^ÄÌ<á|`šž³ö=Øü†r¢þåÛ ü`®õø«•¬© ÜPZôPmˆ üÌQʦrú+fè±Ø6>qWŒ«VÊœ¡ÖŸ·×›‰ì kx0ÇŸjpŸŸžkÆbNå}òçô?¶‘½ž†N?J‚v¡ê¯®joŒYr!Vy&QPNò»xºóÐ߃š¨NDZ5È?²€ ÈÍl$^ôåyy‰¥ßÅKnÒÉçgÄF^B ÷Žï ̦ŒgÃÏwâ²Öy¢…üÄ•A,&}ÃMÑJÍ’GEHï(‰ñš3ÒåôtªíŽ«Cä?V*7ø«Ýj•ÕýîL¬ê'ú_U%?¿N5(óœüù•¥Âöùó6Æ}2¯NbE¾/C«#õÙÉƒÌÆ¯Nüq†™Ý·á›*S^ŸˆÌ ¤q´¶'xÖÕCÔŸ“©‰džƒâŽÚù“©è…²ÝšfMQ­TÐŶÀ霠W{]&6=&þèþb.9þD Ónú—ea“ëoõq [.Îë@ØÜ¸D—¿Yw¬LcŠÀTŒÍ(•£B:Í:á‡W³“Àùp&½é×r..¼úKÕ›µÒ³ˆ³°·þØû Vó•|lF²JÂå#ÿa+ddþùGþON…|ÃYz®O·ŠR“Ӽߨè·#»ã¯Þ“ÿÌ#Ðo¿:+Ë›±­ßÁž¨Š·OinGv]€ÅºLþc§•›N+Ôaj^5ÆSÞæºd»ÿ2½ñc¡ÞY‰Qï:3 "”c~í«/kK@&j¡ÝÑÕÂ%]©˜EÝʳ§`‹Ÿõ€s} F¾/'±ºº-n¾iÿÞ×´ôÁòNý`ð‹« ë5ÒøêÁ6BäÏ'kÙ際٨nlÖûEüX£y’¨Êgâ­oD§õeàGoYL4ó馶háë=‚¿šg>•5ñ¼éÁ+ ›e௢áõf ûU%¹ýnر¹úmÝ”‡yS6qŽ…½wWµàc*ÈCænP`5<“§9”þ‰íÃTžT¬'þ¨ƒ¿µ+¿“÷æ/VšŽw± 6ÌMš¡ ªÄ5+„¡ûg-¶ù”LNS‡JÚ`…m>ÄY+Ä5¯bwVÊÃù·‘9_88ÿ·ÿˆNdxºg9V9 w×O>Zœ~xÊ¥•3ê<;ñ˜3¼›üC1ú·ÿˆ¿Ê£G5 ®¶þW9Loþ“ˆa kZHþ¼žé~D#;ë–kLÔ,®^”)Dh•Vú|QŒÝJÖ$:zÄûÜ”wЛ8ÕŒ"wŠ/øÊ­AÑs ý>¯$J‚¬¼¡¡õßõÕ¾Ûä *¼&¥„;YN&bè »Ô¶n • Ÿ±Ü‹aíòä?Vâ¿¿ízŠ…ú¼›8Ûè û“—IŽJ ž)Só‰ÐðóÑå´–1ýî-\þºƒä ÿQžüyº ŽÁ öP}Á³²1o67Q&ÖwˆJ‘­ä¶Ñ+W·ŽSÞJ¸Ñdî“) µõn!®uU™Ä©9“ô½ß<éàQ98Gµ? Ú|!ÃPŸüG2pd!L̦k Û’ùóª¨x«ÏŒƒaÓèu $,+‚úÑ:·¾Jæå{œ ½®œŠ·¦´–ÍŒ=+Oþ|*$&¾£)šO={|û39œnàÇtú¹$·^€ó½eÒÀõ%¥ëtVV€| à°¦wQÈ>¥Ïî-Káßo¡W}S˜LÚ˜Õ€iè‘Ñ«£³Á¯ó2HïéIþã µ7‘‰LªZé™BÉ[Íì'LeßL6æ&µƒo©BÿƒúŠk–Ëõ„?[b9]&À¯ÍWËÍDø‚…×çKýyqÞ¡ÚÜí_ê"º¸àG æYu°W[¯© Œàò¡>e§ý;(PÚÎûÄï௜¬feNzCu>Xþ|‰Þø#9¾O7þ.’iÙõ\;Q†5gŠnbºŒ²=]MˆRºZÛݬÇ\9ª=’Ïy€¯zJö&nÙ{MqÿßžÑ2ëEwæ¥Öì÷¿²èKÛ;_Z4©éuèôßMo”BÁ[™Î¹1ô ¿t;Û´lb¢Ì•ž¬7 Œgú,êlêÉ¢­ØÀ\‘°E _?´ƒèOþã,Ž÷\šê¾dæR}<ó? ­ø]æ–“ä+#¨‚éëO…öëý‘~E,ÅZç}ÝúCµÁf×’ àqn A*ˆ<þ‰Õ‚q¦¡]é?æôo_É»|Spžå=Ѩ¼=ê`¹?aùê£`ÌÉÿ †AõR{,³?O©žy%¬èü쮞N]çž’(Ic2'ySâûU6ªâcOƒ·z„œxË‹_t´jƒ‡¸™èã"Ù”shyæóY™eŸòW/µt{.ä¥Þr ¢€ÀÓ±C±®MÍ^øéŽ^à=QÜZÞ¥žäHÎ’­È!BCö¶è¯ò]PJÕƒ®cïÛÁ ½åßifLô»Wˆ<‰®ƒN={f”©xúíBá¯Ni¯éß>üï¥Z¡àI~ô 7“€»,N}„§šÁ~Þ…ZNt’L:I|4æù„Ù[ìün~Ôt£·ž&Ç'>û£‡àÚîq¤"þ(O§‹"XçªLß~Ä Þo!˜|ˆ=è/Ï|ħþ£ &2™§U|×9î{ ÕÑ©5ßJýGfxŽþ¶Ÿ:ÂDõ4ØøDPÛaÄ4«³ÊÁÔ×¾åÎSnE?ßFppï8e[`èt2ãõ¨øKH‡’Ô’|À:Ÿ±ûÀ_$ÿáLh‰}~H¶b§ò(ù)ß\o¶,¬jâá?'ÿQ õŸK}ŠÕžzÆçè‘Ú‘Ñ;í±V0ñ$9Z¤5xýÀ÷ðf†u˜˜«Xàõ’ë/õxNnàÑhxÜôx ‰È“7@•Ô:¾ ‡œzÄ)ô£½O¾¡µߺÒÏ!š¹AÞ"²º#ƒ¼˜z.ê?œé÷Ì¢VV3!^Io«J« à¤×a2¬ó}X¬ZöcªoÐk…å¢Ao¶œX¯$ýwƒô»ïõ‹èwâ‡^"þˆÅ‰J`%Dû;‹LÅ&ë1ÓXÝÃZ€qÐïV·s‚—+èù5‡\]f=Ô¦½~ãEz7ê?bpv=À8æmæG­&óÞÙŠùP÷µ«1ÿ<.ö ë Ì]|{°õÆzLT}þª9ï6µ]ò×2Ìß¿ëÿäO.hÙô¬Oî³ÖYø»_»Þ í$5tQATÑôW´ ¨¯2Æ4r,¿Æ_íÔrÓÊ\EJrDþ†!|õéúHQ™ø£7ø‘<ŒÕâ_ïaˆƒGëÌP…76Š>H]ôUhPšSi–‘êÒòª‘,Lw>A kr.–øµÎ4ðܪ6þt%¹«ç‡uæG •qdï0青ЭtúrôW{9N”£\÷7N{&"’wX¨vøýE8[EÌÉ?Í|Ö$›ÝØtT=ˉ…Ê¢è¨Oìpõùu¬ÞK"°XæñDà{DןÜóe£.+j…%½DLŽ»«Ç×ñÐÎôBçŸ?ø*vqþq,t ³¸l©úºé!~}EÿÄ‹ò9øU“Øc<±€ÍÙŸ~,V#‰†Ã½c…æÁõ`Õ|*úÝÐxÀ¨V à Ç%SQ4¿ÆOta¥þܹ·yWì—ÑÚ6Ã÷w&$î0§ÒÊ?<ÍÆ¡àÇií%ùóád‡ÆÐ*u([A0oø+§Ÿ{UrI£ð^`ŸÀÓT×È~,d7|Èñ7{ô9!îuýÛûsâb0/}ècª|g&òÏ•¬?ˆ?*a À_•&#¼S5„?ÊÚu„שOÿÄGßõoOÁÎÕ"ºŠCä7WÝ"øhΣÚZ'w°•jö"X™.ð$‡T>ò*'Xc*Ôg±-Tzvûàwñ‡ú+§¨,˜XKýeí*+£ŠAÞt4¨k‰?zÃŽ§þü•r'2ìL>>"H.ÀÝŽ½¿99Sè_Òˆ»¼†¢µ(Ý ?¨é ‘Ó¿½&o“™Ï®Ù'±Ê“ˆGܘS2—gÝ{Ÿ©¹_Ð_Í V?˜ŽùQCà_³p†3¤âÝHJÿööe¸¹}Öú'FuÖDx­ ÌÛx·6žŒÐïÄqá¯ÎÈÛOÄÁ¿`o%±L^Ëæm*¦úu_IdàÄ —íð¨¯^ØI\yí+ô'ôÁn/'þÈбe‰ZJÿ’ñ²JàýÞ¦þ+9g¸~Î1µQ–0‡Yn®DA-`èn¡¸:V6b"nRæ“B;pCm¤þÉ?^sâ«›}ø5¨~p®Þ‘¾L ÑQ5FѼdí¥~p!óXâQu¹…I‹e]]I˜q՘ɺ»ÁøñÁr&¶”]8õè ýù»™Çð_ü⬖JO¸3ï´~¿X×´4“ººžÐùÄŸâîð"ÓµF9£¸ÑÐNÿÝ‹A߆¯®iÄZYåaª.…ŸÎä pº ý¢ö9ÐjÊ~|á#ðW]@ëÚØ‘læ$™ÂL«3L³5½5óÉ:r‘fÖ“6k% ã,Dƒ‰°çmɨ<‡ÉïO̶Xuç½:Ëp´À}°û_ÌE²-#?TŸ#*òÙ1ðìÝÄ;w*ÿM2Ú ÌËâ°ˆ‡g_Û|\>ÊþQS ¶zšMBÁ×ZjqT.Ä¿Ÿ_• î{-gc9{6˜úž–غñÌòƒ©_€®36ô4»•O½‰º|½>7Äö-4ÆÈ‘Äc¿ÇU åèwÏ¡’ô¿JCf ®}É*mQ¹G·ª ä?,SûaÉœ\I[yEØ!Îbv#ϲ ùó èv÷¹Èåg±,²'Û­ÆÄƒíÞäÏþ%Éù³‚pl'±÷Òj •ÏôÖ÷}sÅž†À؆Rˆ( Š¥8èE—[‘¨)™ ~<Ç›ÞÇüZæ!ZMÈÑG;u˜a­S·ñ㫈 zçÖWÉðVOØçn0b6¼ÏZÐh¦Õ ýî;ì|4[1oc”5Hu£»Ô3>³È<‹JúœhÈ6«®2¨ûCTâ¥fVvå¥ÙO= >OlêÏ;Ù>ÔŸß¶–¢(NìàCÆa<ýÜ«`a/ùé Óº F¡*|Oàiäê¨GMJI+ù”xª,ÓnPÈ›~#`ë>Áb%£þü±ÙuLYf忼ÐLWsÍ8ô§ø3pÿ0´(ñ²3¿ö¸º%K™E¨ÿÈÅ®5a…÷é¬u( ¾›¨k=O:øq˜k6Ѭ/g³½¯¿.p¡>”þ%qˆšs:ýÛ«1qk¥5 üHBÖ¨š]ØÕ†ø#ó?ZÁUf£V\û>žØi9?ë U›¾ÿþ꜖;~<×Zê±÷éëý…íW]ëpã‹Q„ù€ çt ÑÒŒdÐW ¿:¶ËüßïÚ¦5¦þ£,LKjT:á©Lhìc~mkYøc?ñGÈ ãß_~¶˜ƒEòãŠãàļ©ÿ¨ª/¥‡Coæ>åƒÝœæúEú=Ý–›ðÝ®'ŒÃr•R•À¤ÊÄkÈÐ-?zÁ_åfzh¼KÈu&³Äb´5þ ÒNb§{:Vñ¾™Sí…¿ºŠeÁÉê‡ÇóóþWµd¼oäðAŠŠhbØ@v>³zÁû-àaËbû–’W9¢ EȵiÚ£=ì“ x‡õ?Õ˜\HZ<ÇÉXûRdœœüþö*§¹1j¶Ñ?ì¬ïÒc¡B}ÁåAF±Î8`úTvpïVKºZÀÎ^Ç:IµÌ ¿û†Jš’¡êwGÐÿªO!ÚÄ›| |ìěً…ˆÄMú‹[ê œ|e´RÉtÏ`'"ó´3[…‚L#KäX”Ƀ‰YòÃþ¬'"šMƳ‹j@ü0 Tw‡¿ÙK%f,©³0këÀ¾{øâõÅ&}kˆ­›Ö“ýHŽ†Ç‰/>«\3sA©À_Õ¢Ò  ñG#²![àØœùPµÑJ  þ#d2‰ñD6$"JIŽdQÆQ”Ëè_’Ürú_5²s€ÍáÙ’Q‰GÔP”.+‡ÉØVk•¶p·¾ó›÷º óDÚ¡ûb–'o_”ü¾ ~,³Ò£‡êN&å9Öð–Ý$ªÎ]UµÈŸOÞÒS짨­èüÍõ–ÈZ0}/ɬ×P#?V˜îeR èØ4ÃŽ‹éúÝ©¬/#³06Ã6 ‹¡¸}L4\º^ÏM· oNk ®×•LAz<ŒBä?zP QÞ:ÎäÀdÏ«è¯æÀãd¦¢î2wÑ•§þ*2üãñ`ó?z饄ú«çø@9¬¤ìFnÕ‰ósT‘ldžú=;–ë6s£"PC~jø«µV^:OVo8éKðŠÆKÀõÝÔo 7°¼&¾Ã:õFÖ¥+Jô»“Ð)Ûðt;Èì{Óãñ<Ófò,¯Q!,§ÉBÞê{ü”§Y›;›ˆ«¨?ï"cò–µoNnž·Zº–Ù‡Ð?EYæ‡2»žk„ëWWEtWûáîâÙu¬$¶/þË)9?ë¼Ù@ùÿOê/R?T7÷^«N¤âUão¥¾A@ÿ’j0Xy O®2GKNö£LV‘?ÿµúóeZ1æ1E©“ªá2è¯Ü³úQGvÅQúÂõË Ë›ˆ™d>>„÷߀}íN·Ç÷ä¾Úcé«H/©‰  ¦¿»â<ý¦I®Æ~'&Â#”£þÜüǼû;æzXœ®æX²*•ÂÔ¿$˜!6ÊêÄ1gÁmD/`obr PedÁcµ#ƒQÑŒ=[ÿÓøãŽÄ}!SáùvÊÂRÅÆWÚÀÊ*`%öÓ{d5:‰Ïèb^ Ñïûû>hôÁû›ÊÞ}ÀšÇ"jèºå€…Ÿƒý§ÚÅß®cG7›C@ã)úÇï/ð'oµ(°øá`†*ã;óÈ“òÎÌbeóÑdõ6§ÂˆGA/pÔÜ¿>÷€Ï!BãTûêåDv¸³j;t‹¨e÷ÙÃÔ`êwš)å'áƒMéˆ6ö,ìÕIV] ÏÓ™-Ü=üð¿ræGIlÆ`rʼnѾu"âŠC?Ç2¶#¬N5òq²YQv^åùoäY;k/Ö~W?8Øè%ÀU$%«ñ«p‘Oqú_ùÓÿ)ÊÖºTW Þœúóãd\¢©Läý¨¡Fÿê¾ñŸÍLdÜ‘ÕÀÔ$ð†>DÇAº¥LUÊLïy°ay°XýÑ5ÝÁßÿTagè¯,«¿Jµ7Dýù8ãžlOîæº¤Óà‡ óy;&κ“AèC¼ðœzÄ=v]k++ldùAe`_|ñï×{ùN5”üGeNî ,Y7ªYü課ښmã~o17 wÐmÄÄLbk ÞH*]–Ñd¶„µ’üyPÇ–ßõ÷úhúï ?RíÃÛð#©QNÏâ³ÄÝÉŸç¡Jo uâç™0^ž;Îg‰£ª£2èöÕó‹Sf.ΖŸéf%礥§f?+=»Ø‹‰kӭ峄+½KøúÝ…V!ve õˆKðOJË6ÁôW§ô"=ïPCÎÜ.õE.cU/êÏ—‚hQ™ v‚î»s™rŸ¯·P›“ ]ÜIôW«àZ f•–ƒ3nD'a¹³Ò%äâsÏÞhýI§¥‰D W¨Âîoe€«Ä*¯¡nŠjÍPtT¢ÛÛþožtã“l ò¿§&~y,‰ª+=×ÑAj} ? ‘Ý`×&sÞ†úóªñÌTÔ¬:É"©b!”ßÍeyT~ÜcâæCµ ü˜hÍS½À9àGDìý4â‘îV&æÞàô ‚‰{O~å‘WÓ`ýÛS2'¦™§‚ðaÕbFG7ŽìBDfþ>¥ÿ®7=m+“ßïŠÎöz ÑïÞ–2_å<{}Ÿ 8'ŸÈÝM8Ó ?éf'þ¨KYœ9åO¹Ê&ú¡œE»û’jxpP™üîOÏõä?ÊrÆÃQA¿šh¶• Š·N¢¿JÊIªƒجžÊÒf5+«+}Fnƒp/©o|DnÅ“yÂIà¯òÀ7½VW˜_; [Ž\i sìèª`øÑSô‘±Èn5ƒÝŠaî§þã€}Šþ/­íp¶r­²{¹zº’Ѹ}#£2~AoÞHöÞKX´àH%õá2ÿ|'ùó &H×ë)nü/}•þ»^ô¿*+Jˆx†Ó-ýK’Åè€u˜®Z—éjÛ´ÖÔ”‡Ù®JÍ—»ÈÌ5wêûÐI÷@ßµƒþ»!;\ÿýåбj% ›`KºÒ©˜Y\¯NMVk³7½ÑêË%ò‰ñ{˜î|-Ó™È[Dê7ð·ãÏWA!^þ‰“ðšßcM=ÑéO©Ñ_…ìBÚ3Ñw ÚgþÒ!lpxu&ÈéÁPLm'[ñ…ìp¸ïáX¾ ?ÅSw§æã1ùhX¥]œÇL¤é‹‡r™7;ˆ޳Ûë¼k´å§ù“¸-®ÂÙ~6,&µ.èæÆ»:þ¡)<üSt+Á€Ûô’²ÿ'ÓzR# ñÁ"ÞàÂ\) øÑ\tfžîæîˆGÄ2Þ&¦Û¾lÀN%§’8£ óÉwÿtÖÛÀ_=3ó`™;£Jö㮪‚ Nÿ«ôo*–¹>ÜÓ-Þó[Ä¥áËŠ0¡õO¼§}2É‘ð93@‹"*%+jÇ‘€(«:ñC_®Ò›l´Ó“±0žñ+îö(çÇóZÈüÁY!Ö7ùQãÐ…¥¤~À©éˆ¬æ“1ÉFþ 1ÃxSº]Ñz€©¹1ñI!X)§CH{ú—ÜûN¿ßx&+Ï8zàOê V56È”ôÙB¥^Kòç“íùös2æè‰u”3™‰h᪪Ñ**”yú±oö° ½ß<Ùeïçÿ¹T|«33Ÿ<ˆFÙCÁ™ÔG´/«S§r›³”+ ~0µ%g‰ºJ‡˜ÿá%ó€ÔÎcåAþú‘Z~L¢6²¯å‹²5 ÌÎV8ý9ÔDËúnZh… -*;ÐV¦ \_j&$t— ‘Éè[–‹è¶ uí±î¨ï> ¶u ÷}”u.±Þâá7AáäËéY¤b[—‰?›geP5Ý4ðã8Øý¶ÑÍò•YÀLä^G¬WÖ;“+œK0ÿ£(Qá[º4F¥~0'§`ñ›7‘c.:µ \ß]ê?rŒԶ«]2Y•Œ®HDYÁ°ÙöF8§ ÔøÙ1À¡bp‹Ÿ•ùó­øNqðË Q[Ïìè¯Gf¾ÞW´“‚w¬+gø7ó˜ÕŵÈe*½Xt’YkwsM`F{W]ôW¾ å k ¥ìgd#ßÈ>¼ÝËÑï>ûŸÔž×Êé™wæ ý£þîëý…íWE‡„ÅÄÄéº\eµVì¨e”7èáQ¿»^k&æÊм1•àÊ«ˆôÂ6öÒwf”F}â}ø«¼¿´Îb5ö(–f3ñë>Y„þíEÑÔ·3{ÒgÄS.§þ12ŒÔzÖT€d$Vï ~<¥ÿî1d4vÖTÌ”†§^ S6 üˆ¬Ë ßMSrNd{½š(Äœ‚¸­tÝa¦¸ÓwüÌd3wÄ{2Ò QOÝdgOGŽoçô¿êJüñýîÈXµd8üè.ÆTͱ®uáO›mQÃÒ-„Ìtug;ÿ½3ã«è¯Ö‡xIf ¿Ê^%aŸnƒ>±ñb¯™ùé UÓJBÿÝatê+†~·>Œþa⸰%G°€×A¯)òæwüUbòeÉ$&GtÆé„uÙïô‚ß§ßN|>‹;Øå*h\7¡¨*H.ý +ö"þ§¹v9ø»Ã_ypÞÞ˜U©O©ˆ_ÃjÉÌŽÂÄ!ãˆe„k<ü}]&V§gá3<7*!|Ñ_m&÷rɬ?ÉœìÔSžB Ôj6ëXL6eñF+êW3é/:ÙEäãë núÀžŒ™ƒ…éµòüÈÇÖ;-­2Íð¢Yˆ7­yŽvtGoF¬½äg<™Õ´þÊ៲R¥ý túi¥$† Ê·ŽÑsâ=ãOßP‡h`ùÓ8uÉOÜ#ž†éµo¨?/i¿áww­X0m%È‚õ%âœG_œ ãû÷L¿)þ€iZ. ~,-3Þc£R>bD"{¾…ê™NtòL|SØþh…·ØÂỨ䢖ªwµ*Xü±FïD_ñxd8[ñž‡7oZµ\K˜ì¾ˆI[:H¾ÂnéêëJírg>Ioú_£J¥%º?bêÛT©öÅó¬¬>Š ŠÉàOú¿ûõ­°T¹óY«ðCõÌÏÖŽùçSÉ4…èµ^•Ýž¦å;ʵ±üÑôë?»À7¿^k VÈJ°%EðzÝE|ñX_«Ï%'ÒZô‡¿˜ÿ˜(æc žííÂÚÐÓÕl¡{RƒÛ–ޱ•dS¹XJ”Áûf)!~³Z?«'”L#Vï‡/îËÉlŒn!'S™÷|ªgŽ0'“Ui-Óž¹ ö[71åOÎÖ~lðúĘïqÚ,Íɰ/ÑôUç”4 Cýy=/~ý|¢Äðö›òçïQ~âŒUR7xóßbï+ƒ{K±F‡E³Ÿ¬ð¨1’• ½îrgIðtš`‰ÓÀ¢LU]QÚÆÖŸ`Õï@mÄc5äŒz ¦ÅÐÀu<Óœœ}g²U/öê†9‘¸èOð£%–ç&Wô‹æ±·±Û™?ÕN÷¹¹ŸÔä7;)9NöÃéõœXd )äñ^¤1¶•>÷<»¡È¦µ6LJ‚—µ÷èwg@ž[¹Þdòçƒðå ?:‹eüs´$?΀»¸ã×ÄŸsÅñïê?†=e_â˜|ÿ1®(P†A¼O=Eb m&^nE|åÚô¿Ú cæB‹pTv:¥O¦‰ ñ\R0°>žIr¢¾ûtÿ8`&ÄÛNG­àjµŽü¹;=Í—£ó¹#–ÐZ#•“xæ)üÕ(•ä\">œÙM‰IM>÷(~@t*ïš`ñ©a²ëT[º¦’ÎÃüÁô/¹Ä ÝðÆï;º*ø«f9áTxýÓQæ&ÿá~Ô‡­³©iß ³¦ƒ&3ú«]dï£çJ~ìæj=Õ p&³e³eŸýU/ί;Õv­y ›gÉ\d毯U}Óv»'«*b§»RŸwýne:]ÃÚ/OÓyøüÕöÀÅ ÕS‰£ðWwð¡Â[ 8s1Èê ¡cIiø¥3ôwLïúo•Ô•™øã%‘R˜¶ŠD\£ÀßIø6e‹`ýåŸÂ£ç$¦+‡ è~L?J»jêշÒK'J†­Ô7î'{±ƒ$àëŽÛq­•t³ §šr{ðñWSõvð*ÑÌXŽ?àX3‚3‰¬¼ÀÌÛV>réy\=\÷ìò0W›˜¯[Ê>n îzHLíÃ)sê?ê¨;âVàÿ{_œ¥~0ˆeñ×jéæ7ç"ì+Qú_äÏ¿EI! §hºVm4X3áÈ®†ýR|ç6­•Ø„W^ˬ˜Gl×gP·×AÖ à¯DÙ¦¯ºE@¯_v†¿ªcî?Š£6N‚¿ÚDæ"YLý‡¦;ßÈüóèò:ù„#àÇ"ÎD%U“Џ&òzˆx¥ŽN¿7üUùùëÇÿͯŠ¡àG=¬ôVüA‡¿ò£B/1§½ÌL,õ€|¼AÆ`:ÌшŸÆ†Þ ¿þ¢ÌCæ¶©ZÈîgj¯öõ,¼Óã7þ5òçKà¯Ö‹ U{èKt‰E0N=±¾÷`çâòk;þË5‡h¡œš Šž@¿û [¿{[DÒåû˜@gd@_¶F;/M*»‚dñâ6à{yã‘FÁÚK¸»Å¼M ‰–â«2›m¢H?¦î”å N¬fbWU'þh_M 6ýÅ~‘ˆÌ´ƒXù>28Ù‰?s³þÐú'>Ó\b©ôâù#›‘ulg¿ç°‹ýñCa÷ÀÌ0<Ⱦ\ä“·Õ ˜©†Ä Clßj£ovX˜¥dñ©w(õŽÁ2XðW`v<ñSËS×ÐÊ‹OÞ”úÁBxг°ÐÉ%Ÿ!c¸TôÚ© 3šÜ>‹ÅßÀÎlgÖSbÓt,…Æi¶}üð„¿:†ísãûî€x½Ôo`þ@}ë7O¥£³¿—S×€nŒ¥Ñ§¢û&++3EœL|$×Jâ…òÔ—4±ªPSц=é +¥ÁHAë–S4ýæzód~pÖ—¿iÂŽkàÌ^ë<]_ò'q°€Iè»ÝžëdR¬ìuŽƒÙÓÙä{Rá/Wµe„Àëå#Ã8‰ø9+×ëŽn!7¨T“9}Éý¶v}nÿä߃¬s ú©NäÏm8¶îè¯2ÿðgeP5öX=1ùóœ\í©™ÓzI?3,/4EÐY½±Þ0ùã-3¤’¸rR¥âr…£kÈV+;8œøc"üUTzi;)þóÏkú'ƪŒ÷²E­‡{.o%rå!ËSϾM\3|»@o­µL/ßl¥cµ§•î2¬¹œ–—œªÂæ<»MüÕN½3sU£ãõ8ú]‹úÁñ®ÅhÕF‘ãxF?®Þôoëú‹ÿWæOý©v9É>i®3¯ã á×&êîÿD¿»‹ùA•ܯÑ_…ìœðu×~öë;mƒ>ÈPTTnF9v{"úÝtF8¬­zâ_ÌŸïÕª’Ï,ˆG鎢­‚H"îèôèÜj1pýÛm~ÔDòç“ñË[pÛ0¼„ÙS¯…Ö¬MÿĪÔ¾cÿ’ùúy=–<~¥zp6žwi|Šè¸VÁº|Ä–¶€%›)³Ê2Aà™ûñî¥óÑ_ÕGdz‹+îÀ7z~¤A‡T‰S¦÷7ªczaÖý?Þi¥ÁŒ;2'ùGO¼œ2dÓ#ƒhNoÆ?Á¢“|Ž£[ ÕÔ<*žñïþyn ƒÀ_í¢á\|¤Õtu¢c–ÉþÊ+´ü¸‚•Ô!úË\0–žÂˆÊm0 R‡1q”ÅÎdªñøÓ5‰Bzc¯±Bg^Ä:—Ð⮕„Ê_µ ÿ•;y j?Qÿu|Ëú¼}]@€øŠ9´rx#Ôý•3?êø[‚|KEâÐû'bºjZðòά¤Ä~ÉC9ª£ª5QÈ):>Gû´‰X$×<ÀUOb©Áâ¾,Ä=ÏDÍÕ[‘Žè –ò|Ý1uOTú«¯&ÿüÇC²éÈò7%çŸm°ÓÿÊ -ë…P⻲Ø—Žæ"¸pûºŒÙ)¨<Ê>÷€ùQNÇ’†àÓar¿¹ÉÇßD?Ô[E…1ÙÄÔšàKìÊìæf슆Õ?‹d¢»êÉħÂ0@}íqTDÌ¢Þ¯ŒõK[ þª3šØ±Ä3¶5Wv2Vbè7×›!‹€’O¯*q¯Á'o²vÂà$_þ†y"©éW¿¶é*ø–’l÷uç>á­îCIth]dÐûœ—NHñœ µõE©”ß§œåË]>r´ÖZòuùo;÷2‡ÏÓ®a'™Æ²7©ø„ØäMËC·ÛUO/öþ#ŸÁŠ„‘µY7TW5á©lx:gzÔï®ô®rðOï@©Dö*+ Odˆ oMÃßÊ*»ËA÷kœÙˆ>*pæg«G²°™ßJBÿ«%°j·™ŽÕ†øåˆ¾‰Hæ0Õöµ©n|ÄÌ“‘œæª:ÚÃD³Kñc5úÝúô¿r&T7ÃGó±ò¸¶ÙÛá¯¢ÃØ]C7ÛÕɵюâLW÷ TŠÞBÙö›í(oâåzª‡â@àÿ{_ÑëwÆW«úçhä?Æ‚uEm‘Ò¨É5ÇjÑ F!4X«¨*¹ôK7µB«"‚ì På`~mbðc)ýÛ›Ó?±•XlÄ6‚ô~a¹ðT±þê=ïÌa”°{d)³Ÿ^5i Øð²²<õA°ñW“9ÝQå6¼æK¨Z§ðkQð#?UÍ É|$‚hEþ£¦Ì¸³?^c|±˜IYœìLJßËîa[ãpÚó«-XR§¯ÓoÄaã©nØöSüˆ §!V¹-ݰ4 •3£'òO®|…u>Âæ9ý§*àÛ/¡VâÔOóJ8´£(»K|Ã\ƒ^df¥~pRüðÅ·_~\åס(Gê¡e»ûg6"^¯ÿàžBö#z[‡œÕÞ޵ˆªÎÃvdýÁ¸‹°4Û©?©fu®Ö•n6ù@¯Ìس¦æ9p¼ÞF;8î¨j¢™I^þ0BmÙ…«¬ü ÙwòH•ùœ¡ðWwµ·ôOœÂîxŒnÄ0›øÎYæïª8Ü„*Ž{¼£þØ»UàGnX¶ë<é“°q±ÕbbãmÎ’‚ý³Øh){³ž”p4×A$L;Býà U„šåôØ‹`×"»Ð‘.îGT4CE©S_Êõû¨‰äÏCzñ˜Xë’æðºªu¨–Ò?19ÜÒyذ¼ôò˜Eþã¼ê€¾kj® à‚nŰګøXà5úžoÎbf7·à¼JÔGQNÅeRkKk›Uþª?\˜ËåMý` ëi@ÿD?î %ùó—äÿ×{9eVQÿAÿuè5–¾Œ˜†Ê›»oõR¬èÄ)¹ßEô/ñƒ¿JF-ÝiÐc8•1U1fân£~0h Qý‰>œÈ/üU',mVðª<󣺠[M£³2`zm3{yšMô¿ò€ËŠ~xq&ã0¿6½úB¥Wм¡®ä?ö}¿ä]Jo™øW)èÃÒÚ~OÞd9uxϨÿxFw©Ìä>ÒmÅŸ˜a••K€Ë´­Ej/ªtOY=pÿîë—DV8Á²œÏ•ô¿ªDuJrj×ç¢>G6f y•gT¨làj©NINÿÝSLn_H¬ü¯$3Ôöë5%ÈŸðWð€jÂÖ_°<]K™tîeÌ|ÿß5еÛvsµU|A¦ÓôV4í¼w>¨ Zã¶WOþ'õ'´ zöÀy¥µøÇó?tø«ÉF\ª›Ñ×ÉŒÔ{¢‡ûzºÂŸ övýüËeZ ±Þ¾O)™™\$ÃÇÛ¯/dú3.§bXjó‚>g·XŠ?ûÍâN|Ô%p­A»Gì~cæGÕ‘óäµ0^q²~KÿMžÁßÝe…e* ~”'¾à%>«3lŠL%{…I•ýÕYüpælƒ½¿G¤”þª2‘ó |&O ùV梟âG8½5—W‰ÑsâÕnÄ×)LýyÞë T-½=ß%U¼a{΋öÏ>h¯‚N0§\yÁþ8,â)·#þH‰§<†~EÑr=Á¯Þ‰5uªÊF˜ž²»þ!ø‚}\d$Cg; ´-H|‘ëuäw÷àƒçóî,ÀVëêñˆ¡ÖÛÍÄNESËea¡‡²ÊVxmÉ`&å]lŠß3[‚ܽx ±Õ‘ä1¡Y[á¢*«[¬ì2¶² ¹ÉäJš…Š_ŒùrVy,ŒUfê?vñš©À´FÜëtE×à<{!¬Û<ÿœ€/(æR?¸*Ø}:_ΦÿîP®T¸³‘gyÀ€ J+^“I§Îü(ª©ñ¯ ‘S^âõWSåÅï*^¢¿*Å}2íü¸ »ŸRIÉSǬ:TÐ9SË“[¯ieäÏŠ2¯ãñ‚Fð;ØÂýÛ›S;Û˜'÷’ª ýxúщ?ºÒq$Š­î0ùoÐsA¿û¼«ŽÕïÄÌ“ÿèwOª¿x.Cä?æÈœ·—ă•ɼ¸À…Utcœ@÷ߺ–r­a†NNù V¾¼•–l÷=Ðc¹”G*·õžlHG™*ð¦CÏ5«z‹§~‚:Ó÷fië%šç§VZfǯ%îh µ×nï"ÒÌþƒþ‰þÄÃó¨Fôç ÅU¯äÍÀ'Òžúó`7“¨ÌÔðW)‰* 2Íð!øqÂrÑ«¥,Ým#¸òÑ1• _ðí·¡¿ÊÏsÿÀ5'šidó`ý¹œüG.xáZx>‹¨4©`f±Êº à-¨=ÌÀ¼ò³(xÁ&b̽àG3{¯ºIÍË,Þ¤œÒŠ(YÐæë½õVøÅ™ðk»mQÌÇÖŸ®á(“1+ëÓ»2Ÿ¤|bTWOxµDMÇè•ÃvçdküÀ &Äî¯ü½¤¥ Ö¿ýø¤æýµeÜfþà#ÑA{á2œncC´,F>#QÖXJUÉí_ºÜ<ú'ÎáiÿÁ|g$ƒcž ÕQ6¦þ|qMØÔR_?t²˜×ôY¶„Ç(Iu_³øñIv0ËËr²üÕ%#Nà þúS¡ý:é6Qåì‡3 × Ö†N 05å2¬ëx¡z°úÞôO!âN)f3é½2–èÖÝ™Çt TJŒö½ žÏ²ËM©,O®¥¾9ã§øKOE—ª³2 y™†p0E±ÕáÀà=ø^eà‹±Vk!øÑÌÜþÓþ‰Œø¨}‰?`Só³ˆãÜðõ† *Ší~B&y»q€< tò?ÂzD#lØvÞ½ìdäÓákuÉž›ƒÔtd,»ò+¾—·iŸö %B^7”'Óþ*¸‘ K_Ÿ]º‰Ö…Õ½†Ýžã°A|†;ª Çv;ïLß-nšœ¦f·PðãµfïÎÄRMAÜÑ€®i¦SiÖBÕC–ƒÅÌ%—1‡lsFE…1Ò!ž®&ˆ£ú†Geùó.`mf|ìûìTT5›h%|1f–¯Csú »|‹nXnÖ>”¯‘ÑKÝ +ÔSâ/y_D qÇ)ÑÛVF9˜‘ɲìçàB–ÀÖĵ¶«#VgºAM ~í 9”šðcûÈhdkûH?óQ*5ø±:Dÿ«öÆk´‡‡ðOÊïդæ.ùEV"<îv?jßvt¦N£œU†­+Y鉨‹cÓæ±(*–oV8Rf§šô ÷Xx-2<ÜJªIúYÀ "Tt’ÝIM5³Þ±°ÏÀáA0ƒ+ø´Ö[Ps¼ bAÒé¾úPâçì°~íA«2Ä£éà­Ú¡Œ’dѧ°UÛàìœþUUˆ¾âÀ±MäÉ%³^ñéqÕuy?ð‰L#þØ~¼ÅÞÇ·>Ê(^vÁ†½²Ë‚?TlعPï¾·Ó2ð)ݺü¬ð ^Äð~ùµì²c°þWϨLCÖº9Q÷dôͶÖPWôW½™•Î^Èü¨' ÜÐhݾŠÛçÔ5Û´¦Â*¼Æç¬z(XÿÄ9xBíåïä?ZRk/ÌÖÔ{T¤‚q*9ŸûôsfÇqõf}¹\mè÷uÉY>ÌjIjŸÁ#>);ñž\$ê{ù?©ÿ¸ªýL¿ûDódÒlàÆÿÒ/µ+ú$#Ýëˆ$õc´¬D…ÀI¨ºBËþø¶h Ä"Yû÷\æ#Š8 Ï¤{CYD4gþyú_ÄE©?$ëðÿL(pŠ˜uõq†?–\f“…äzleð~¼.M›ÄüZMîÆßÞˆ}o“üpú_­ÇÂÞÂN95ýdf΄d!B»nbæ.&Óó‘j‚\Á¥|ðöÂ5•Çfé¨?œœš;ŸUÙœ÷Süø %#³÷ˆü‡EšƒÏ]šYÈÈÁ¹»ðcÍ9|ÇHl#U„!Xìï×÷Öè‚×Ö‹ïw*(~ƒõêc.À ˆ·7D•C;ûot=QØvþ®²YþW?â¯"R?øYúóó9ȉÎå9$?–`ûÇ¡¸õ ÿÑåÎ0C‡ŸiŽ767¾¿Ìÿ]7Agƒ˜šPƒ¸Ç ­1ñÅCP›ê¬ÖE¼”VîO±ú5á†|P,ïâ®K‰åäí -þxªE?†³kCɹgVIá¯/ñ¦ÊÝâ9}•š«z0{Àåq<——2.*­r¡Ä7´˜b‚€…é…ýËJVcx4œ;¥ƒ,1SÇQO=„ëYÀߺ©“xÚóØÃKæy³®X£/ ñ€gÃðs+óf/ÇÕE_µÄÉ=ªHܵÔL¿#óqZ•±ò“í.G^5YO4U=¨…8"BÖðÛôŠ.ÂÙÂwÍ$b8D~y-š[Çw? “É5} TLÙ ¦ ;}þÊC%?è¿ÙCOãš¿³ÄjÅÐùºcñ]Ìù˜i¥p"Dï‰>ŽÐ-ãW”<ÍŸT¾uG½ì"ÞوðúæzÝè_RºÀ.UÀî?V3¨iU§~ä ø‘Œxk1ÓÆG‘ÿÈH-ÝBö´zåkLHt¦: ö®äÔ_èý¹¿ÂÄ3=Ô*²u¾Ì£:Íœ¨ûÖKµþíÍè~U˜ú Ž¢ .Ðý®þÌþ"ñÇoêœ ªW¦g§©3uæÄ%^ tâ‡è¯“ÿ8AÞ}jÇ3ºr0¡Êr]åšk­´D™ÝàÙf¨Ìì¬¿Ê ò‰y‡<ˆÃf©Ç²¶YÜÊ÷åMTäÄ 9©<ŽJj«}Wi°}«:k+k˜/ ŽÙ ý^Pÿöyº§èNýy7žoU´2ÈŸÏå' åÊ®5´[¸š¹¢“Ÿ)ÎÜóÄ3±ÈL}²î Á?$[ð¦Ü†[ý$n†8ƒÿÆo}µ,zPåç[­Ã?®ÿø¢íÕÇá˜ÿQFhF}N×X­!ó£ R>•þ%¿Öw¿ÖQ, þÈO–õ°¼lXbÞWßN¡ úÝãÌÌñÍùýÙ^-aÔŸ’ŽŠs"¨ó?RcMâÈ?d¹Lú„q"Õ\ô»¶Ü‚%^çÒ[—M5 JêKL²Ýô)¯ÕY¦—3eä0¬±"ùíÔ¡¼Æ o%glÃøŽÇn½‚;wº­ŸÁŽIþ£ üËèŸÆ4wòs>2;ù”Šj<|6ÓÆ?_Ã;_’ìÝ_xœøS漕‰?ºýd…‡Œ±¼%N'ógæ|:YŽÃV{Ãêô¢Öh¬Š3Ðé»rk:ŒË'{ÿ°É{ú¼•a—òMÊF”1lÐÁœ÷o#½rþ„Ïô„q±u(øqG '¦ÊiØûQ ÎdƒmÓñ‚{r—]àd–›¹±þ‡à˜rasþ»k‰®²;Å*}Zˆ8ÄèKþ¼‘Ú8µü0±BûÉáúã§¥3mû¼• }q#g:ü•ENe=»z„ÿÐÿ*¤Šþ7|²œ¶Tà×"MèæÃâæê;©ÌÎ@Ö¶¯}üùijÒ3€ûQó¾ ·E÷:ýÐ7Oz|õ¨ðoˆrÁíD'ÚdÅ€€KÉ/´!ž©Ð?±({2’øCqíCä“ê‹6ß\o°Ì¥JÀîï¤KXmî†iät/™OüÑ”Š¼©ôO´¹Þlú'v¶òSÿ±ÛÜƉn#äDv©>2vàõÒÓ¿½ïA|‰N¨-Ü9c9±é=ÑÃ~@¼üÈHÎ|·íEó§Ìrì Ctƒ'çôË=§>¡a<¬þcùKxS~àPJ+ç !ýÛë01ª*ý³R¡ ûV>DåoÑušùV,¢ÌÉÔ{ŽWtÍ—ÃdPw<ú'¦Æ«+ŒOµšþ‰žfE+-ú«mô•ß@n«:+ÛLŒt»ÞÈç”°7ªƒôOœ &¾"ûÑ”=ºiN Ì,Õ{ŠþR'þpþ5Í#Ve×&2ø^àG {z®š.WD¬:v_º­T‡ ì@œã_qL:^Ž3uå­êØâ0þ{Y+L¿kémþ1~¼×é›°óu©?·âÉZmº·7&ÿ1¬ü¯Õ¬dþàß"XæË2²H#žêcõó¢Ÿl*<Åð#ˆ/ ËöL“°™×e#ö<ƒ¹š8$¯>ßp&»£þ£.õçwÃØ¿}?úÝÒ™¡ó|É8|š2ª#±tªœïÁIÖÀ_ SÊ‘2´¾ã!W[Žþ‰›d]<ßýüü~½ Š$ÁÖWVÿQc5!Ï\‚Õ×4Çÿ?ÞjåÙ±;LÞŠŒWë î”0]xJû¸jaØ×}0üÈÐŒ<Ì!¦È…\›¦Ý2zòƒ`’ÞaÍ“‚Žmùµ(žã8ü½*ê ~tzÀµ6ó3ÿ#´j?çÊ~Zj#"ŠÑUQÑdæ×Ɔ[µHÄ®Oçš1a›Þ€q[Ya"š'¨¥Š…Ê_yÑ?±8O!øá~Ü?šJrÑ«P\‘ñžÛ€—Àå}`Avó-ñG³^(øqK‹-fÉA°ˆ=A7lÇB®çmþ~4ÄÖ Tkxëßc–bms¨+ Û:žµ3­=¿ØðÝüsoc¨Œw’ˆë}è·˜v‚}“LÓHkm…‹yNïªCªñÇ:>1"Ò&,ôسVòÖô?Ï$!½*‘áIÉ®o" ³™Hdµw‰È(,³Z¡ñéÏôm"„ZVbk55Ž…àÂná×S‰Èž-Ð~sÅ1ðWõ9ÁÁ4f†°¾4Vú—䢧ï@lÖؘô/9O„T’ÿW"CÒüð£ÆâleWÑç›ë ‘y‰Û|‰Ç¯Å'ãM•ä«§ê‚ât2™€·ÌÙXdy©vV‘ü Î… È›(i_¡õ6ÿ<…þYAŒPo¢›Z ãóß*—kÄB'­ ä©«2㙆þp<Øêc(׺ƒGУEe7}dšu"üÕj–>ÃŒ&¶þ’Õ@áVD Lj ¦Ò«ä$lÝ æ$uýN„£¹|©Í[i%%þ‡Ç@¥÷ø`ý¯S‡–”ŒgmÓdå…‰ÊX9˜>‡ºGèŒÐÇdYîƒpv«˜ÿ‘]Ã+òçŽ~÷ ï^M³+ù³5ø±X¯Iü¯³Ý6òš'¬&®}ô¿ǤÆÂdÍÛÛí]ý]1]É×LµvÙà¯ÕžÍ}ÞÄs²oçU³>ñǵï_ßÿúŸ\ÐJ«ü¨5ÒÃ}s.¾€OÚ}úÝú¢’ˆùëÏ+2°¨‘×XÄüÁ{a¿ß¹UFÿöŠÄ®y©_ˆ~D£ ü~ú—´FuÎHñ‹üÕD±ÖMýG38mwsWN£77l¼úò2'ÐWÈGFØ:·@gæFÎì$¤¼Îí€úó²fS¹;å‹U©ÉŸ þ|¬ K-My1Zl•¥øÉpL3±žÇ±Ö‰©‚*¨ '}ŒÅûw¨/¸4é§øá¯•‚ºGú(0ÛËÈ• ^ÛuEÖk0J©-øÅ^|R+s¯ªŠ ýñ\6FÁÉû Z$Ô]à±òãé9Õµù„§da÷°N=ÝX3¯ì©‡¬þzåOÚoTQ¿ƒrÍ„½rê'ã=­ÆÛ÷D5€ú\Þr"¹á æ¼ì5Ô>ùz‰`¿N`þ`X³„j>±ÊuòMɦô†“N¢V2?ꪈd-Å×U׉MN³ê|øviQå?®kÑ᯼¹×)dL²â½oâj«±ÿ½¨g­êc5›ãÍŸÄsvA.ð”v°«·À:w±KŸleΗ3௺óÄbãÝïCC-Å;¨Jþ¼*šÛ­V/4üEà‚ÊÁ6íàïÃQË¿_×]RyW¸B¼…n†õãngÂ[&HÀ¯tƒf’YN‰–µŸ},¨EÝ~Ö˜—(å Þn*&ŠîL ¾ÄáÆÙ”3ñ¯bxÝ®§µÆJGf 7Xô†Šl&ÚT!Ï_‘lÀPÐã#ÝãOÀ*¶}¿¹Þ0Y–óöŽø»^…/5# IWâûTB$¦3È ²¿ÃQ,ç%°‘ìÇPüûKÔò5ýƒÍ:H© cŒ™D GÞå >=‚˜ÞŠî„…©÷Ø¢µ‚]”¾ý™ßáK—¨&öM>q׋dùüâμŠléÚ§»wïîƒ;ƒ»Ã 0 î.Á ¸»îî®Aƒ»‚»‚»»ÿoŸûq¢Ü$ó?÷Þ™g†L&Ùg÷îîZU«VUÑ _R¾×y¹£•RÚm°[ÊŸäá?9ð£¸q ZhÜ0‘I¿C7Æ$ö, Üf€¤éÒ¡ÒÅùâO‡–2¨Òö ñGzîm'¼¦UÄ¥Ð聆§q3ïéýåøºëGG…ë~œ–§ÉŸS‡È[]N¾ÌÂV'~ø’É%àuÖƒΦ¯5JRíqÄXÌŒöŒ`ÛRs ½¯=½4ý{ç¹ö@0=ù¿í¸èƒ]c†ý¯¢V!á<žÿ¯/NÛŠSì~°uÀÒÿ³ã0¡f–£þ¼G­Æ*Óé_’‘üy9u9õAù¬È¬¿Þ6›ùçµÀãd=“iéµ$T!®%Ϋ­µÐ–«I"™íþõYëµ½X·ðD¾`Ò QGϯTPŠÄ5P`YùóÐïì¯ß ùçz嬒VÜÂ'²ôWcy+ËzXéÖb3<Î+rmyÏ WæF&þÈOÿÝ]pÑv¹›×c1°©Yè%TN.c½{¿ßcm‚¶ n"ž<ÇÞ6óç}réðÃK˵¼9O‰ró¬zsË#Äï¶ìô¿º&J£ôlDì_ äѰ¬Wð5Ëóôúc‘w‘Á›mì _ˆ0ÿqAíÉ•ÄÇy >¤'GÓŒs?&’­SôÐÁ_=Å:nã§ÚŠJhíЯk7•|xÑÑåL2çn`dÇüs‹£"†h¨¯Ä#UÈV¼ûÞBÌ3†]rµ¨¦Írøµ–ÍÖ‡¬csÐ( ¸Û˜7ùçÞ”³zEæg¬î"ÞRÿ±žüy}¸‚Kìqç] ÃÁ†QeG‡‘ðBû,q'bÕDhoaß}‰bš=Àë/Ìl‹Ä§¹fŠä,ðcGÐÆ_S½Åø´ä·ßS|u­ TV?©´([˜‰ÍöÆ#ú0¹cí;cñŠ£ó]ÀÏN“S©?OêéΌ޶Ö_ØÜ› È!lÑJ™Y{ÁÎ̘˜J½Ú+*CZ’Ÿ?BCWÖû‚þj´L_¸7Tþ£?ùàŸÂ=Ü^~¡³`?tÅåోÿãoÖf‡ÍŒæpBˆ¹f0=ñ ÞâäþÚÄ;œ)ÊÈ¿åW¢q«ûýŽ<ŒŠi¬1_¶3ÞaHk º(.e·½ WúÑ~‘û€€Ñ韜Ê,¤Ç/¡ê"·b°jÞÄyx šP/7ß¾ýw¢sêHÝA®y7sA: HŠ 6‚ÌPã¾LCüx.XÿDå/í"oÓžá|†Îiä—y™r¢Û«¡—zAGÂöïfr» ý©Ê3Sáõß þ£Où3˜Ú¹º;ZÊ üx¤Ü×RQà×´G~C‹ÓÌÈm¯D™vÌIƒz­$XéAN%¾y؈Mfê„üdÆ\bÿgø8z Ô•Aø±W¦u©xvÑv I<µ­Á*j^Éì“Í¢èwñï¾\ï[~L°úƒÿ‡Do¬ÍOXC¬ãp¨‡ñ?øŸ‡mnôVÿõmÔm8ÿë×w#÷§dBÍú·[üU6Õšö¸–þ%¥É€T§ÿUÊ(ÖŸ¯·µ ŸY ”ONÕW%¦âfW÷)>ZgætÑN©¹Õ ®Á‘ÙŸ·¶þx± ¦}¾vÊ|°XútZ_.Þª™"uåS•›Š!6À\œ„aYÆXJ6ç¾×£`Ùßc©Úòýyä?šE ?2iÌ&AÃñkô€ßŽ‹§»;v•áqÐD“]y¦Ó´ŒÄü¨W¶$ð4WÉŸgÅÜÂùUë‘8‰§ù«ƒï6é|°—µÞ\óQµ;o¥ßýNt•ƒÞ‰ía]sàëME™TÛ}Oü×},õô»S~Á~µ¥Uß ›\ ¦å&°òݸ+P^ù`g€H±ð‚É«‰e9¾Z%ª„[>‚©r•ÁRrœÚyðÑš~Þô‰N„S^<ÓÞè€õ·òRçaÍ*ƒ eÀ¿ðòçw©?Ÿ-ð†¯Äf•`ÚÞ2=«‰?F`Û‘k¸£S£ì"O\T^ƒ ä3ãQk0—úóÐõƒÕb0'œÄùF cuô:ÇxÂÄóhtŸè„gYÕÄÚ¦Z£;ú+fŠPÛþžS,ü´ÐSÒÀ7Õå´þ$G"øq­L>øñüè…šu*§›d(Úì£ãйÍHŽÿœJ›Ã¡úï$ÿÑ™§BÀÎÝåz¢ã¹÷&¯_E¦¤¢Õ¿}6°ÊÝÔ<ÙsœťV|ڡ˺—6)Ä“ÓU'Ò³¦× æ³£ ÞK7ö§ ú«Ý( öGeÛÝ1ÿÃfLåJöÈØTQZÙôQ¢¸s½ ŠT;ƒePRõ)«rOK£Wí ;”ŽùçéOد~;yþÃôßme73¡Ìš þæ2^¢K ÷ÃäÏOêyˆf¾܆»v¡óKOSA3µúkL¯}Fwðã»qüHO¥|F¢²1ò3k.BU8UTwîï*õƒyé‹Ñ„7c©´´÷µÌÔŸ/`W·èîÕŒüþcþ½ý Ûãe¾a~­¥¿ú…AP¢Þágü±—ùQCD p 9>P݇ùƒGèT²„kûƒÒŽúøÖöåÌ'Èw¯mùs²ñLKWøühÃ{RWÆQ«ÐŽŒÕŒøg.ØŠ›_ûÓÖüÏÿøaÛ­,Pc“Ý®¡åS­îjÓljÐAq#U‰÷#ÞL°ŸXckŒªµüUnò¥µ h‚O);µŽøã®š\-弟Á~í·_.Òvàq¿ñðéa25F¿ûq„h(ZŠÅÌŒœ~wüU|q»yþj ùв²-ÑS,Ö·âýa}oÂnhþ"³b~m™ž¦0 'a÷àñZ}™“…ÔÄ'à‰ß\Þ…)‚ÆOmùÉŸ¿À'Jƒòfï^yåÍÁ›p¤Ö¬ÙĵðÆ× ;¥ ŽàÏ©^°¼ãA†wè¯â…nÅŸEÑþ ¹Åbì cp•Èã9çpC§·g~Ôïú_éÌ? »4›œ–+üUVx¹¬xWÇ:ôå(r¬þí÷ˆ*öpë°F)QòçSmÝæ¾Ì¯­ {X¨èudó¤¦þ6q–ž Ó[ð£-Öÿ,þò!"®2Žø£“Þ9œøãý kê/ˆQ ËeU÷Ìà>ô"ƒ2+ò^o~šª½BØf:ôœÕ“ÉDr¾¶#ÌüÚ…äÏGúYÉH¼£®E—kÀ×bØj7+¿m´ÄR•cºFsêçNÈp.5°÷K˜;KÎ×ÃàG|Š\_zô¤:ý r2+Ñ_ÅÇ£·º1–5}Q9]!6ñ$¾ÙIüQMÞ'_C¯_™¨kÓÝ‚¿}˜_ëÉ©ý€o: v ,¯GªR!è Ű/AOT–x£ÿGDP.x÷ïÈ/œ€{9ËÌ÷ñGáFÏ-ƒXÏDú¢Ÿ•¾T¹L6&Ò?Ѱ¥þ<1zVã|V>úÑ>ÄÚá 4®? æaÁz5dR>¡ßM(ÝѰw¢~°vº!È’ß/O›Ì~t*ì*Dåú†ZšŠfNê>&qv¨IF÷²ëÁòçc7â7ØÛÇÔüÁÛð—ŒCÌö„LÂ#™8Žø#‡½õƒ/37Iøü x >(Š‹^¢¹óü•ÓÚŸp“­Ð^Ζ¯Ey¢£´ô^\@ÿ«‹tg)Jæè…µ6üÕ)ú·g ¯¥¿™Ò˜ƒ.ì3Ö¡ LèI}‹?Ö0ÿc$ŠÐþx@øT>Fº•ì6&ÐÛQ%êhl–¢â&ªTºòݓԻÜ&jýƒù˱dôýA;ÒGFç‚ßàÿÒ×W™•Íy2ßÿ?ê?¢‘WÞªF׺Ñ?1±Z5§Úª}Ô$þXMÿÄGQº¢ÅÌ\…WÞ@/K÷ŽÔàÇ+å<¸?ƒþ%ݵ3j*µ¬sבYx¶ö™h€%ñDU_/« Rcâ±¢O•Õ¿ý[$ù«Ý̯Í(Î`-O‹†oTDZqgw±ΚÆ×VšøKxË þ~´ÙÚ^Q&䈴ßû>¼I¸¦jx÷Ñäkì¢5pYâˆç¾±åC%u‹úÁŒØu E)º>Yù[0 yó 2’õXÍÊ„û‡b±Ãî2@µôWÝøÙG(â‚:ñäóÂÂOÃÎ6Åî¿Bu;nu)´¸¡IÊ›°Ë8¾“BÉ©¦ä„6‘?ÏKü‘f­/ÑÌ}âx KÁ“ú󯬶“^ŒóØsByHTS a-7†úsN??±J0ç1çÔ³ØÂEz*ñBK¯ÞB¶ÄíÁ÷_Œb&ŸÜï7ýwj³Å,ðc9¶²>¬…K9EoÔµ#±LßQí¿¤Òm;JÛ"°Yç¸êKD™ä8j[ƒº…ÿëâ§P?èn!Yñ‡ð_±åξ |ˆ1Á~²ªªYŠê¼¿2ä?ïT"w¾{….ZÜÔBg!Ó©oáí[,AñzIÓS“‰ÉN.þ¢9¹+þ¸Jþ«õÆ»;]"[Ñ?1%šÛ“Ô6 ÞŠF|T‚ïÞOÍÄÄ™y¾­Ùi-yÞw8ñ×úóA")ê«ö RB=·Ù’ž»+™?¨³BV{[³.ñÇ!¶L•ºÃzG9¨ Á(?D¥Ñß©…ü©M<ùµÓÿüŸwɤwžÌ[ð#è¿¢öéïm‡”ÅjR¬{e-½Z“5'ÚÊ«%‰?ª©{”¤QÄÝÄkDmð¸^cæG½¥>ñ€6ýU/í&øQƹëÈìs“¶{ô‘n•›`ÿ×Á%„¿ú&FÒé°•èŠ~÷“ôÿ»×Ñÿ*•؃W~ˆ˜`>H1Ùˆ]6ëx2ŸãëöÀ«ž*òD¦¢½¨¶„ÊçÊàÆ°gù‰Ë¬š§ªÜ~ªKìVîƒ÷hC„ñ‡¦”%KqOäÅóõËà¯ÊÓ¥°6þ,J›Ä!_ÈŸ×ÓgÁ`µÕÏD¨ß½¡ã {Y|åiƒ¶ê­Î@saZJƒE/ÐJmÄÒÛ Ó[ˆÉÊïtÉ•äªæáçÅ6g¦.r<8ñXŸ†w^ Ö07Çù¼OìqÊ¢1á)‚½•îZ5<Ó¬r;ž`ïøÑð'»Ì"ü™_{¯–´æú)º¡Ds…G†|¶©Ü…iØÓµðòÙ`¥¬>f³Ñ_M‚ ‹eŸ`—Žá…— ³z™OôãTc¢Ôª ,R{‹ÁœsA¼ûû°0ÑÈÇ_&o{{œšîäÏ«ÍÐïž_¢—ù”¯œêr7‰B=ÝñT¢#W;GªXak޽ÌWuNúS WŸìùó¹ú&`ʘÅàÑsø¡ 2 Qèe}ˆ;À_5ãT>êùBð†É™?¸‚üG*c*¼°¯ÃÞ×$Ò)ÍÌç0‹©Èx½%Û)/ÁÝöÕ?q²¨R[½šó%àª0M}¤1€|‡j† Ä'¨ö;‡þÌê_r‡{=ÀŠêèŸÌØHÍ}PýG.&|Î"Òʃ¸3w·=Ï^Eêå: ®Eofl'£ÐÒªÊ3‡’eþz–1“wˆWoÝ’©áiïˆ Ž–Ë•¼ÚCtÊÏx;cÑÿª'þO~ºDþ$jÛBôøø†]µçµ§?ÞÑ©ë,YJTÚ‰f (ˆ/ØÚy~—”ËZ:¢YT“äixÅ–F»+Yž~(£r™ž¦Í~´Ûfà$uÕÍ]ÒfOjŒ"¯gÂFÔÛŠ»œø±^ñ¦¯_tøÒ.p[iô#Fwû>ú_ͤ6>®ÙÈ>Úll¯k¿Îæq¢¹úLMEàkØ„kb¼ìɧÿÙúý¿àGZçÉ(Šç?î_òݶ“úÁ˜Då˜^Œ5ÚÊѧª 1ÈVðãq”®ÀÇVO[**ä¥knB-•öž¹M»ÑI7 þü¸šF­èÜud^‰~w‰þŸëoõ îy)¥9Ä–°UE]úï~Ždÿ«EÊU%½8ϳ³ŸœÄ",XY ÛÔY¬Änâ×wEù9QäƒDöHì1üÕjQnö$þàê#žeH×TKî„íy‹ML2—u÷Eˆ¦R„,E ¨¤'•ÍäòúEàÿªpÕ—àÃñÀàÕÆn¯Çêî°þü²:æªùW c¬~WЭ0ù¬j5Þî·ØÑ5 È-þœŠÎTÌß\u\ÅUF¦d68 fÅž3©/nøQ…w±=Ø—x›oȵ göÃß%ÿa„³âXã 00.xöM`“Ãǵ?s’ô¨+µ¯Ì ¬KݪÕ8Žž+'ú«ìl¸ø_[&ú€â“d¸šŒÔ­yrÒbç*Q™6¬üÍ ðÃ_ükú%iÔ:OÐÃÄ3èŸØ ã"w ¢íI~a 8ëNÞØ~+ü•f5Ž£ßÍ‹µoB¾Þœ™Oü1”üùÛ0ùóTä?ÊcISsîϨ?ß®Ç"{ð§‘ýîz‘W¡{ø2ø«G¬Epeâ[Ä É@¤ç)8ªI[Ç<ª‹àGSp« ‹ ôt]e‚¿c/ìg¨_hÄꙉîq ¹‰Œž0Ÿi;öô¥Þ]ó qO¦w®â)1Y ê6yüe\å4£|•J7Ùè’®a­}ÁÏæOb²‰è–’*Aþc¿¤þÁ¹^Qú'΀ŸËMµ]k˜L«Oa-ê?¬þ»‰ŒcäÏÇc+Se1þ)&¼V5º£_ Rg!(xŒ^?xÎ;ÍÂdâ4VMÃx(`‰¨²kUEXÖÉoÿÁÿeÏNýù 2Sïà¬ù¹ÞôçšË[”‰ùQíœû»’ÓQxG,á‹ö5 ƒ«‰ ÎÀ³µ…ÛOüqk>A0˜¦$üµ¬ïVÕ€U¨E:¢_ã·% Î=±BMð#&püô¿É@D¦û'›zÇ»ä?2R± ¾¦"ñ[=lû5X_+»ÿŒòÀs™‹­Ý¡þ*üx3;–i=üÏ,¸¢åhó­îÛ}È$3€<…/vÈêR8ToÃüAõ7wæ›-S>óû…É#³•lœ æNCeSVGŒø›«Á€I¬h£{-~8+¦þ¼:oN>u iO„֌ݾçüR‹ÙÚsºx°Ç3\ýYêMr¡ß.Âi¶?Ù¾©óÅÐuv¨(ý¯Và ΢ s<àø+?,í=²çëÉŽd¿º'S“Dziç”=¡nðu¸ðâIË,7`ÓûãßO#ÿQ¯ËawÀ¾[ù ²2ùóí²¹#þ¸NoÆçXÕAÔ†Ö¦$_QYïMv:ÜÐUéOd¶¶&¾qO¿3ŠŸÕXÓh€ ßœdÅœÄèG»PZý÷)¾!ΰ‹z_ʶ¯ŠªŠà—d²Õ#‡ƒèkû™éâGÍʬîBÍÞîŒ Ñ©£`¶jg;iãB¬çMþ£:ú6Omغr©£þ£+õ‚ŸQ^Ååï²Õ3‰²ç¿Ç‰ŽE•ðy#OÉ9 Ö¿¤þxê[ Ê7z,m4*ehž±QÄߟ>…Îx9¶þo&Œ'$FGü‘ŠGÃJ_~Î;ÒGI®íæ-ý@d‹‚ ÍLTfžè¯*è%¡SKûÔ¼Ùí¨pÉ?WŒ ä?þâ¾}E'²˜ùƒDgçõ8ê=°ÛwÈÜ¡Ž¿+ó£\©ùèGUŠ ë©y“®#[Ì·ÆiÔfñè_r˜i6ìèWp'u@L“pâÇ&¡µ ‰.`ïÒп½«}H1“î»qÌ|ö1f { ð# ™õ¨ÙJš¨‚é|7òªÄsz™Þlºø_Ô\° 6ã×QfþyP4ò뻑ûÓªÿX¤&¢º¯ µî¬9ÅVŸ>U¥Õ¢ê.%Nç×n²õg*F<å2XÏøZJzœ.VjýEú'VSDqþùim ˜Ûh­™àëD5½ªÒü¨¶¢$ú+ñ\ýßòúw)Š‹°êñö¢k]€ß]JÖ?¼„úPÊ;:ýÕ8ÞÜŠ«ÙlUè¿»½­àMñã‰ø‚¥žBüaƒƒXƒÇr »˜€Xa"(àaüñÊæNÆèú²äèñWÁµ–¤j£¨yŽ·æ ™Mî?æ£nAÿ]Kçðïþ PGl^ú(8¥•ôq\ÌS¾ˆø jΞ|ÂvÞI4moù÷ b†ä?~—?—J^5qÌLª‹²Jvr…ýˆFnè‹xG«ë£‰?„<Ï <‰ûÀ†ÍMÑ¿$Õé)I^ª7Sfó€’]éמˆxè;ó›‚¿oР¥!:Z$˜É(¿ó[õA¼7—ø1þíÝE2²ŒÝ‰@’êgÆv/*͇?©@o`Ÿ@üÑß®Ûÿ€¹ZE7ã T?òôwxKN‰±¨#Ÿ¢3Hð?‰?NÛ )éœ'óÓÖõë¯~ÚÎ++ÉŸ{j…µØŽþíóÈŸQë«¥T_ú_õ3sÞØó…m(z˜jØÌœ¨‰žª©éµüè§±v›¾Zœ»þ7Ë8ÿ×>m%žî4'3È£nåô|Êp5>}22-Ä*ñ*’ók·0]3¥ØK¶øw|6–¹€¬‚Eì~XÕÃy/ûƒ&.hþ"S?X’ùç{ÀKs´Oþ;>õ\òç߈²À˜žÅ3—<­½yò"î_rÛÖÆÂÔôœ˜z¸ÃÚ4"“pI/ uÛìƒ]ÄÎ=õÕÎ<©NÀFà§ŸÀ4Åf]á°rÁ´Ì‚Ó¨ëÀ=\÷u¬£/· õç§ò‹Øè¯øµKžåAZ25ý@¥'úTbw} •{ lÓ¢™ Dó@-»ÜFýyx•ÅàGY¸µL lK²÷÷¸—-‰.^ƒ½õOÚ|òç›ñÛJ«Vc3øñú‰ìD]^áàÇ;[m1úÝèðCQn&cÕæx)àD9ÆëG©ôYI áÛ[½ö·¡·{ŠÇP[;fþÇ2u´hC4” +ÿ}®Uÿqnç5ŒUzò žô’ÍIþ¼²áf\äãŠ'Î9/»É^ÔŸGõt§ÁÞWûÒ±“;V„}] ÷“„U;™hM/ZN^ÚþŒ>Ôn'…C:D?á21õçBÍ?oOíl vô’,ÛQ°Ë€ÑñD– ýî8ðÃÊY¥‰?ó9,þÊL˜~ c-ªŽSzŸPý¯¼Dqü§`j9®&ÜÙFúO6Úпä;ÌZ"¼ð›t£](0¡ï*]í;Ê®D4ß`Øã5“ñœWœ[ù¬,y‹±^;4„ñ(ªRgÞf)½©ŽàÛ—…Å9B¥ÅjC¡Ò¢*ñÇ5¬ý4ú;ž ãÉSb³óáóV*Qý•_~ä^%3ž“q®@”6œk,ÁüÁ¤Ì™Õí·AËlvúï>c~ÔUð#†ÌH^ÊfŒáÙÌ":‰–ÎýÝVÞj ÖåÉA~®­ÞÓȶŠÈãxÖœjöë°V;èµ×ø‹©R+ä¶ñ<Í?©È*£wã 8ñãˆ2N.á/µæÍLAþ£ž} •õãÙ[j³˜}ºÙÂÞËÍžÜÞ„ý~9Oí@–+¼•gÅ4<­'ô¹'n8¯ø¿÷Å]æŸMüH¨týÇñ‡Dá±QOv»°¦8Ø¥Y¶Öj µ9µKéªu/JuÌ6N[DÄ^ kxAP5m²D9Bý`~ê?Ω™ÔüÎû™…×kK°|7EY÷lúr‘‡úÁYjRjÑó‹üT.bþGx,Iص×*×”¬àÇ~l\'°ÿÖ´ ˜Ô[l‡Ñx ÏT»1H¤¢æHFb5蟸‹|Ìs,©ŒúlñH=©¤gŒÖx¡²ú+ø¶ŽàÈðã@[ìä9~^#»=«\„®‘­ô“Ø ªàÿ¯æÙoG“*ºäU…½Rë;GÔ¡ÄžàÍ=tW‰àªzÂÙ•ÄÆNF5T„{Ìš«ÁÍ] B/½¤èD¯åð×úaË õ 1Lr2 ôX×ÿ g¸Š3›'—q'Vc¡âƒq?x–ó™ÍY‘ ¡Ìá¬8†®×ʼnÜã‚’ ˆa^£µâ†%˜¬Ô6k1á2<ðŠ¯‚lY± ù¯¤°‹•ÃÁWÌÿ˜(Æ€\ýù¢àÇFTÖüéDYó±M~z3GþÇ괔¬yD€?€}sÕ†™_룎¸&û,ô.ì"Ê'øÿÌÔé5B‹êrÔ£Úo?[4²òñÈ-Äë$>‡ÉŸ§@/UY=™Öm€ÙÜ« °?ÀÝÈ)O£ÇÒ1ð#%ø‘—þíÇ@†odsR/ t"žiJ4úZoijÀù$¢Oâb#9Ëh,ÞGºfl7~ôˆ¯An¡(ýw»‚\ÑÐ#äi¢‹Pˆ{2T… û†ª 6ù¢X’Y&ð/SŒ†Ô£¼G–¯Þï|²ìcd¤þ|>:ÁàÇE”´ÉSy‰¸Îõ\éŸ8‡úúXÛÖ¨³ñ„T¤n°=¡ª®ÔŸ—'ã³Øê‹£> ·9™áÔK^ s˜üÊ&/Tjh·8ûW0›1Ä E¨[lJ–ñõ*òýÉ ŒÇÒn$'éÇ®ïáX“³Ü™þ»ùQ_¨¼ Þbu+r^ŸJ™5p(³X§¾ TXæ/`ÜzÞ¥¼÷ÉU 3MÉ:;JEͺ®´ünwNé!ÿnD¢â}N†¿Ú©}&/Û öé÷êqgyê qwZ„ƒßÑ_M#ùì‰èˆò ÊÝŒw0‹+~L%Ö:¦W§»ëi¸–’䮂HK@ÓÇ|nMfc® uƒç©]Ęûtè/£"þÆ»~VwƒË* nl7j %ú‹ºîºFc ž{"?ü}جæâqÅ€ ýkñ§‚7ÜÓueónªà’»äf*èR€c©Â> >¥‘ÜØã!ò$126þ²‡Á·8@ÕˆfŽ T@å‡V+>Nª“?O‹â·?k}C}ºÃ ÃV€ ¿Ûä’ÓsÇ_’Ÿ^£tBb"}^>åV&î• Írcú]Oò1ªR¢jÚ‹õ[ ž¸RO·MÚb¹‡ÔÐkà]ðúbŠ¢ŽÕ³ (ø„škïè:Ü>7êÀÛÀI¢ßí ‡SUðXž¯FYä>Ÿè •̸B-ÿä?‚ú—ÌQ<´³t’¡*^OlÄÆÏ¯º!øQ>(}GbØO2 $‰=#õ–ä0,Y®¸+|ãLÌU´Ö?ñ©rWˆgÛ ŸÅ[¾½ô6ê_ô»m˜gx–»q›\O3òçI˜OåA5á.ð#»AWÞçêp· ñFv:ñc£2üyB|ŸÎôoO¬ótØç›ãÁß„fvjg™uÈŸ7¢ßÝIÿ’<;ãù¥Lí ŽÝ%ëCDM¡üiøç_ß¶6ñ<šÒN‰œößÙ¶Ñ?1©Ö[+ŠþÊBëE¶²jÔ»Õ™?=ŠýwwÚÚ3ÿ£6§³ª%dþùe)üUIæ^“¢V?8Z›³ô†|Ç2ò«E½½2UÍŠ—[^uÄ,ø«È]ùzú—Ä„«ÚUŒÊ4ý•9ëÞb3\Ö#ò¾µñ©ý þø3Ä;ö̬ï”$ÿ±SÆfú‰m$WhMjJˆ·Tƒ§ìv¿®þNTÅﯨ/~ü ã÷PüóU‚ø£ ^Õ”oüS,ÅW>á qD=ÐÃz/7‡ê¢v‡§Õ<ÙÑc,~|°§ VÓ íåTGýÇNö½+þ{ºš7Êýîç°Ë8¾£*.Lœ¿MœU€¸h6sJ{Ï?Éuxë±Ò_økNµ`;â°GúFúïù¦AK{Ñ?±.>½¥´­ï~ŸSï r«07Ëõ?ÄðcÙšðÞ;ˆŽ–ðÆfÊ[õpç<±ÙàKÇ‘o™D^Çšµü˜¡'Ƨ­ÃÌXx ø«/àÇbð£þãuNЇ~Ñi~J[ò¯.U{‚á¿–aÅ»pò«ñÚéHþüU-¦Üe&þ¨NEÃaj :nm«xЧZh-yõ:Ÿ.äã—׉û’’u.i$%ÆÚGü‘™šˆ1àÇ-æfDëFN|/Õ„ñŒ2>Ä®Pø1íaîÙ7,Ïa2Õ&º«zôOt!Ý“¾„?ÉÇûšÉvä5jRRž˜¢;ÕÑŒmð¬GtÏPÊ‹A¢48kÍЬNÿLšN5âp£3.7Átä¾™hh,#þÈi~"2!ûѹñ¥ü þjú« .nŠM퉾¬zÁXïÖì2¿ˆ]¾c|bZÖZú¤W§‚pqÍúWU £ü†H¦/¹«ld“Xñ8ë|T¦(¥µ}œ},´ŒÉ ;ÌhE²=­Ì— Ðb8¢­L{g>ÀR—Bû–Êœgô^)Jæ‘x 3A°ŒÌüÛù.? î‚j¶5h9Q>&ßÞp¥~p:ø±ƒ~ŒèÄÌ+¨x÷ѵå0ó£‚ïÌ Æ¢Ñ<ÕEÀ_ÝωK”®Ú‘ÆñÄWàXet‚¿Z‰zÍnfcêùjê?ZÁ_%bþà #.QÈg£3±Éü«ã|ú@¼'ê?¢–!pÏÿ×çm¹CàÇ?¯?W˜9—ø£-@R«M8íyè¯rƒeè¿ûÝv=JûÜh+§Íá©S~‡ùƒIµ¼‹µ¢5ó ªÉÔÒÎû™…çhsð¡ß ìUQú_U×›*Þª ~Ôùð.‰7jèš­ð×ËüÁb-^÷r£Ðý¤BÃŒù ôBÖL—†°=SDb1\ä‰ÄóhKèYª…øâ‰²GC~à™8Ÿr…'Õ⾇ElŠ?^ÛR¡nz)\QêãÉ/ ²EÃf®Û*ÊwøáÏøºø1’'Ù?Bü8©¶ÆGm­à÷ç‚D3ð’6’ö¦ÖoãÖþ˜¾…ëÞ® ÔKˆ…Šþ›«N¤¤UoŠW xâÊqhx“3¬À‹óÁJTÒW‘ÿˆ%Ï‘©GD3û½F¿©nZx“…{(µF°Hé°g௮Ãð5#®ú ,¤~p»ö Úîè”~|YÈ}·Ã™Õ¡S@Ø;ûÄfÒ/gZYd *A>`ÛLêˇËV`åyÕÌ7²ákñ‹ S9Ã9îD…õC¯¥ Ã_MS»‰þÄTÉ·?‘>qz~0’@Œ °#ÍÐæäA'UÓ(n Gc²æ~t”Å…0ˆ™D}OÒ†¬¹Õ?ñõWW˜Ú‰ãèw{3ÛøÃF¾¢ ø±™]Yé!r‘hb¸¤"ùÛBÜ•®Ô#öà”éK|T‹Ÿ†9ƒ–þ*™þtôÁ®ƒ¿ªËœÝ»`¨uÏïÂ6íàžŸ'þª‡°Ns±(';ƒxjË8ú·ï† ›iôDõ.,z³]¨[òßEÌ/ðtcñîg¹1Áï`Zw7å™2‘üN)ùPo%ÏÕ¾Ö c/[`7££¿ÚMö¼ ÜÓ^pn²ñØh@ÿ«ûD caŲøô$DAjÖJaí :‹ø&Ô^ŠnzoTÉÍ×dvÒÍÑÏþÑH2jïƒvo™Uåg¸ÂN¦Öf¾MNÑC´wžßå––¯®+¾ÝY^tÔ¯•Ðn-Auœ«G÷Éìñ¬ÝðÃ…ù7ÌÜÆ|=>:éæ¼ŸMä¾`ñÇ¥›Ö^¤ÄCôäM¢Ÿ7D´Ùh &У¤*ÜÚ³ƒ½¦=®=­Ý›õ¾Ò»>ÀèDý¹ÅÞ¼)wÐv|Ö¢Ö¡6ì;ðO¾sßVZÉè<™øJsEqþWÔÖûd; •H먹kvÕê3ÏæIõG#z˜,S¾ÙnGi¹Ý¶^ô/i‚¥ËOŽ(¶–C{ >]£OeOâÇjž(êwh‹ñŸˆ–øåÈŸ—Ð]”ãj!,NO¢^Ì ˆdGßäÏ]Å)Þ¡ÃÌ`Ýꯞ¨Ë±ÈˆÝÞq~Éxbâɇ¿Šé!w’Ý o÷è nuz‰V"ü«U”TªÄÞ.mK±RÖóâºÞêËØi}ê‡ÀÃ_$–±”%A˜Í`×.Q#ÜúÁAÔŸ×âôs‘ èÇ)ÝÀÛoÁ;hƒÆéiÄa-5ÖÏÏÙٚ阋þ™‰{†ƒo韸 à;eWê±³€}¹Òd°ôM@qòúÝd¬ùyàýÈŸ…H!«Á­. uÉ‹¨ÿËó‘†ú›TÔ}vü´þv##ú«Êô3w?î0BMà<ø¹)ÄÝå$qF ÁÙÉwW'÷_”lÅc*E¬ÊÒ½ôBÉDîyÑ×Ìo.¤¿` ÚÞÆä碥Í+/È×2¶1L&!âž§ì qW© ‰Öv=ÕGUIÚ¨eoLņ5%“Ñ7} «¼Úl :µ1š€Jݨ鞚5:z/«Ïg}­KˆõæÔ÷ñÈ’?—TžìC;ߘ ½™µÑÌB/ó=LSÚ,[€ÙŠ¡Øûw²5,ûe+”ã*MÿÝ ðWLÛ"¾¿ !WiçïáæöR?؆ruVdÎD—Õ­Ó2ö½ÀöôÄc©È߈UÎ;2ýÕc:|ÁwŠgŠá¨ºr‘¥ˆk¯G—Âàd4êý®0?*?wå•icŠÇc”hyÂ¥1–X! õçAñÇmæŸÀßù›g„\¥bn¿‘ÔøQjØý‰?v1ÿc;l]as³ŒiOo,$W§É:¼Ÿ`Gƒê7Q>˜ÌÜÞðj¨í­í™¬;Ÿø£sg™ÝìmÐ_Ŷ·6 †®G|4˜}ò¾]ÂK)ÏûÒ^F q9/ý?þÅQ[©`óØÚSóFíÃc’?߬¦§;n-™C¿;ÙV“Þíõ¨Ù†Oµé&»l¨nÀ=ª‚j&–Z‹Iûmó£:iw£Ì_]×¶ëÓÉôã¯Iþ£ŽžCY¯¦åŽbzT{ô»÷ÔÐ5¿á_ÿaÔéÕ…5÷Ú䟂åú‹úÁª°êk°wñJ=±¶CD61LÄ ñŽ…¿^em†¶.!66á >üwPÄêûú¾i7^æ ¬ði!Xñüs©4$né¯òÃGO} ëfçû¬€ÕÛ‹‡½æjŸÑ‰gxX;ü®ÎcA›ï ¯ýµÒ§ê…à¯fƒ!UåJ<Ø]Ø¡Wðx‡8áNÂû·8S(YÔ”ü¼•ƒX%z`«ã]ø«-\å¶fÚ<Ñ·½.]GÒk™µê9òçÅ ôWwÕtQÌŸïҬꌨöáýî5ôÚÊ2UÇÞ¬mèî?S¼V“8Ÿ_»ïÏ=tçq<;¹ãËa›\éß^šÎ³3ôýd§w³çô/IŪ9#±b6m²¶Düͳµ…½mÁ?¿‡íLB®»¸ß{‡•ßÉi\ƒA‚™‚Í“ y~ ”lœø~ª0*Ƶ¼GÖüÁÉÄl³‰c*éSàob`íßò ä–¦`÷©ZÂpv9ü¨‹ÿì ~XÄ/œSGlþ{ô»ÓõjâŠv“.É \ÛJqŽÅÁÒáàÇ æ×Nãà›æâÇZ «D5³Á«ûøüçärâßï€rCãs¾ÑÊõÇ–+Ñï†ÎŒR;ˆ!<»E`úßJ/tÉ‹áÐJñu æ;í?T3?uõR(N;bó<À¦¹ÄÝäbñ Lÿ«$0íÀBðk`Á.á“ïÆÖÿ ûµ‘‚éÖ7 »|Ö߬ ¢p¡Vþ5üÕl™‘'â ²)ĶkÃŽ"•@þ‰FÞ£õ-dZø«9ô¦=Œ~·lPU£Y•!䤭i|ÖLG¸»v¡˜Ï>ªûøŸX‹ Ntö±Í¸ÄÂ}̱}EfÙ•\rÕØé¿û'ùgØåѰX_ÈDÄïFËäVž(£Q>—æÙo [Ö¯¬0¾øó×{ ýîD¸¬ªôW™anF‡Ô‰øã‘›…GYè•…ìÕ«`j¤žÔŸ?ään³ŽÝø.Fó&¸íèÚÞ‰ø##õÉìL Lg/wõ•^+}3ÿ !âœ?šMtç@ü‘+ÒŽìÛ¹W4×Û1¿6Ù˜!dhöÓëÕ—dBi[‘øIùÀLa,†¿ÒÈ•æÂ3œ®/sæ?ÖQ?è%’ÿ舲%±¾Ïè@÷ʵdbƒŒÑ@rOôWš=½¹ˆþŽU˜ÿÑ–úóW0׉~ÊÃ-×?¢æ¡‡|7ÿé]¢~ÐÕy2™ÿzò@dW~f»¤l'þ諵¦×zÖ\n+Bÿ«rÔ®g¦iÔ²;Ûm•Àš¼Õ©zvqÌÿ¸®ì ÏñXÂÌÿ(ãÜudvxþj>õçõ°ïõôÃô¬ ÌTá±NÍ©?ŸFIÊH­8Où¢ü)®c;NÀpL?òË&¼¡åļæ§`H'ž„™ä?Zˆ\‘X±€¶U;J<ô}Îq²–b×âá­¾ZþxïðX’³çÁìõ`„øñ‡RÛü„ëKH5Þ|r1åQM5ÆÆŸgŸOùìùŒaäù;ê§CU‡=ÉØZ/¼¿¡°?œ_°£qH¬ê ªZ‡?õ¬.&DZ¨ó˜µP b"B®Ÿþ%©°î«ˆÒ‹a›sÑ—¾#výµ>žvÔç’¯´ø«àÇ2.Ó¹Wukþ`PmYЊí˜ÚVþ¨ <²^„‹îæà¯ÞÃ(-bŽîí>Ц®Da§`ƒ¿Õ¨Ír;;…ƒBùª®¹²ØÉ°5V§ÈYä«s•£©"§÷„m¹D–¢µ±½‡¸âod$–k7ÂÔŸOWÛˆÁzS=Yˆ×ToÖdz‡’Ä•àœÖå°Q%a‡R?èÇJ޵ €%»Ex¢¸ª…~s«Ç™IÜMO GóŒ}#2Û ×”ýÕ&úï‡=E9€ŠÄ<ØøÚàG ?—ИçÀ-ÊöÏ¢Õ·5Ïêgô¶§‰VL,e_ì}cò “‰?4û.tIÉ<ÚD!ƒ°ÉÓ¸üÇA®½6&Äz“D6øÒkœISÃDÔ²,$=àÓ¸oÎÅOBýÇ%ð¤OT’L%¦™f"'¾›úÁ )D…è_2½”gÞEîñê¥é5»Y€Šî5(ªÓs÷0ó£VÓc°5õò¡-Hj\“éè€uOÜv>*ÞJmwâ!L¬þj4Õv‹Q hv8&f ú’c¸i>$þpg~”°gBÅ{ÅÈ*Λxk þI8Š ùƒÏè¿›ÆÁÊë’ tzFq{vÓ–þTèMË~š]í3“±¾;9ðKòš™Ù°¦Ëôê΄W±Z_àÄ­(Ñ;‹|<™]ð÷ªé§Ót[ÂéE'÷ž×>×ì •Ðn§“ûlêSªSË? Ü{K~0€§ÌêãØ[Jñ¿È\·e Ö¿D'þˆ‹ã¼9Î/¾ÚN(ãÔLèwë?¯ÃÓµ”ü¹ÙóRL~Š*µÌVŸþW•° UõŸ"±–[SU²”ÚhÑWë d.Uñϯs¿ùb“¶JŸ ÖŽ©:9YØKe¶úñÇ,ÑH4cþÇ5<+v¹UÊ{æGÝÆÚß%Ãꃭ+"Û`¥ÿËÈޡߢþc9‘ÆH~·wÂÛ„þ*¾ý 1Í,òe`ĺ í½«(¬¹Ö¯é3©ŠÐªóþƒ_ܵåW‚X–o¶.ÁªA¢ö±ªrùQ™QGÕÑb¨V·ã¶2L¯-ªSçÑ¿$jüÕfø«xåp·OÄ#5;kTŽÒ?±‰ÖO;¤&Vƒ¢¦Èìó’¶‹õ ý•yã%¢‰žGÙßAï#šˆ.b¸¨ÊoØïVÝ®|T2‹ `þ%|ññ HNrbõ b3vô vÊëˆÓë÷+‹¯/f­5¼‹ãñ€˰@È.¼a×§àÄj‰é¿U`ÄQ²«‰ñ—±§¢ì ¹B/Pâ¾¾œLMC} ägNõ kîA!¶ŒÒII” SmÝ›ŽJO­ lØŸðqõA'øo-À£ÏüÎ8ý/qP³×áð`kÀ¸ÌvıÁáÍÿxŽþjïhðCãPèZõíÙ[r8µÆp-‡a?ºP}}Šê½Btö»A¾ÞêØ¦«;ø±%Ôã2Sí.úÿÈH½ÈgîD,9ƒÜ@r!5É'¬#žþê ÙŠŠÆYv¶æ†£I?9Žþ%±C=9ÙÕ{¢28žšLŒ…×u{Êod7öÒ¿¤39Õ ô÷xÆMÉì"‡]Û|‡úéô/q×W0µ&øÛ©Egⲯè¥Îp½©¨œll1êÐÙcñÇwðè ÙÌpåazs"+@«Þý>ÏiëP™³U"/¼Õ[ι$&æ³÷ÿXkl’ƒ™(¾–ùѨÐ;løÊnTd¿%/=ž|Åzê»KS/¿VŽA~k.:”ÎAWW˜h´'w·ÏlEòäÓÌ×°}OŒðVe©Ý8Žâi)º,O: ãþÌbø«K0mÉäÓ`ýwG)µëxy6øµä†ÂsÜNZ]ªbÚ{˜cáǚ̯½NýGa*+lv ·x‹üyQü™àïú'¶¦¿º­øi®ÜÛeÂ^wµ(¾]Qîxxý¯>Ø>«±±Á‘ò/â-DmK@á Xw˳=Mü‹¿¦ÉMZýR¬>‚*³Šfk•½¡ŽnõcQâ¹Â|}”MåGîìizM™ðWy¨Œ¨L/Ùüp-® @;âjD äC¬à\ñZ bsþµpõµ°,V6*^:E-óTDYŒ£òµ 5É.5ŸòYÝÈ1ï#þ(€Jëvzžt?ö*'Bœa_ÕÒ’ìç|•!þÐÉPíæèß>Å|D>e¯Ùþª›ñ7ýKzÓÍc ÙŠ8¬}<î® ±Þ\‘¤~ÁÜ–LN<ø©MTá­##4‹— †hƒ±ž~îe˜_û@/"¨(¦¢ñSƒ‚ÍÊŽ'º&±Š´8ó\õ=‡ñ™¾ò68¿@ê?†š•¨ÿ`~íú··EyöŒÈpø‘†\MR*7>Ë&?Îóô?á¹Jap·-¨NéBÿ’Fæt#>½ª2Ó¿$€.Š•Px=c§‰?JÁM†¿Z‚¹‰Áú'>ÂÃÒ×ãÝJ|ì¥÷7Ê‚;ÁÝ—ði]˜è‡*ì0ñÇNîtaóž¼c–0&ë È3µÄ¿+$è‡øá«ôÐzˆì¨þ;ñîÆÖmísè 9ÆÈd@5y ƒìÖŒ«NðWÑ"ħ³L2ó ÞÜcîb?žyôqÿüxh+£”s> º2à·ìC¨$Ì~²€9´füí¢6bÍy¶Šê(µ1ø±˜ø#jóýmxåµxòÝá¯ÒknÚ7ÅO¹ÀL~ÚxíSEê9wf+á|ã€6ëöS´ç-n«oUõRÊ#55÷l˜ðÄ|bœ H8 8¿5è:•8„^õ>Ãòµî²*Y7â#X_Ø”þü©úóâÚí0j,Ô!2(†¼BV>O»JI;~okì^5~̉?’+U±ÍOE1Þ¿öäl«àí$'q+] Ê ¸€í Ý<ìs{êÏCZçE:¿ˆ£ÆïA´`å$Òaí[èëñª§aSGSÛ}œ+¾LÜõ_ìYv±^ ¯ÚÏZ0ú«„àãjò1øüœä?²ò+}¾œ’¬…ÑPÀË'd‘ü9Ù© Ój=ÝÃxãÖj-”ÞZ!˲_Ô'ºzˆÖ™õ>RY·V¯'~j±É/t¡6︾…Õr‘ÿ¨ŒMïõ‚þ%ëÅ,â‰Yp5±€ûøÉ©¨F‘C™€¯Ž :Öz3Ñ]ðÁÏrާÁ”ržv:Lü1E$F=g ð>±×ÑÝDƒ ÊJ^|i7¸––FAÃko÷&œŽ5Åb!ýwCóWÕWpœVþc9š¥»x1Ñ_åwh€÷€µÍe¨’,ýUKâ ø…À£gØûù27^ÄzÅ?ÄûÒŽù]ÁÕçè¥Î“mÿHeöHêRÚaôÅã}Lüq˜ùµGe£šžhÎfÃæ$B-vßk¬±Þ QUñŸš ¸ŽõTQL1¶:â_rÒÙÌ«T×m#^’ùÈ~x¡‹þ,‹vPeP°wÅ…ü\² OC/înrv™S>ÎüJÍ~€£~°)Èaðcú«žàÉ{X¸ÄoY¨uL„V쾸b=$Ž¿F()´SL }…Z žqEôF¿»˜™)±ì­˜² ÊþɲéjãÄT\#îÂþŽ5WPÛG4t^ï-ðçcy™2'õã wzgmF÷|šgv3/u]D•ÏÜÁüólèw“Á϶ ohn¼“ øc=õçVüá…?Úê‚@c‰}JÝÉF6¢¤ë cS{Oæ“ü¤_ä<ú3¿Ñôb 0~,•ÆbãÔâØ¯ þ/þyƒø£¨ód~ÚÚþcþê£í8ó?2Ðݰ%Z)æ¨ÛæÛr;º'ºS?-Šýw}mùµ¹¢8–¦].RkRSrT™BŸÊvL¨:+”ÏŠÌqmÑ&b‘¾ˆfؤÔTÕ;+{UX Ê‹ZbøËví%L·I&NÀúßùWàÓ¸£§CîãŒV=uÓEB¢š “ »Î¯ï$wðW͈A¯Áï噼†Ý²¦ —~xýïðƒcƒIC©’‹x~TJ%ˆûPÂ?mC¸ –•¥ÞÉ›må#­·ƒ*“@Ón̯á¼÷¿öòÏÏê@²~½ÉF<ƒ·ÊJìÑ^)u,ÖÎ+{΋‹:ˆÚ¼E¿`*¹ÕxØ÷M \A8¾ \×`ðã^ÜTâ‚­X”Xr/‘Òðn:§°t^)†éfní± ùóÊüÿ¤ì¡øñ„Î*­Xå˜;û¤Ý£ƒÇ@NÁªz9Æç”E‰Qœý ?îƒ+ÑB ®j8žgJTÝAÙ´’ÄþòªÞ$8ƶ¶þç¹$UàúwjW”#!Í6Gm+óf»Âñ[Þ{ "¬ Üõ‚)èŸX‚ø£$ú«  È~Ùüp‡GšMüÑE.7´ì¡îKBõ¶°ø«øÄoȲ_ã®ìÀwÏNŒµÆäorÔƒ¨Ë»MD“…¬ucPî *¨XðW¹ˆwâ}ßbOâ™ ô;ªŒ‘ùþªGgþÝ•èP2 ~è>ý/˜]‰ z?¿›ŸáøáÇ“¹ýÕðëEQqÝäYhÈŸ±Á‡­øð«-æ Fh9J¤˜ä?s©')‰Zê89.ÎFwFk~”w°X½ >»?W„kEtÙ„wÂ8£ºUwró±£µÈàï'ÒÉìi~G½6ŒZñ\ôqg:”|¬›ùL%³vÅ +7fÄÀN{Ê®ô¹E§C?úS]&þœÝeµW¡Ãïsvúúìh¸9æGÔ ‰ž¢óz)—௪⥓Q@õ2rÚ Ò?q•#¨ø¸OO­Öðé觘mà ð#½1›Ì\4êÿà™]¤OôÔzÒ¡ èQç–QüXh `ÒV=TÀ-˜_ÛˆèÃfïmÎ7îšE`ÄÚ1gýñÇKª!sǯ&›¸üNÿg¿¾lË,þønë÷ûï>±]Qƨy4æ;¥ü¿ø£€ê©Ö¡ƒûJ|Ò¨ÕŸo±å ž«ž¥ U_1µlÚ&¨m'ÎkŽþêñGUçýŒÌ ­ÓÚ[}-ê°ïsY¹‹ ÆÄÞ4Õ‰@¦ˆÇjÌH­¸Žús)¶béÏbgÁ¶ä!&Í‹òh>|Ëe,m#ž„é"¥è/ DbÅÜôO\ž=€ÛCõ¡M^&Ó «WƒˆD—·x$~s7Ö8K‰G]÷Sú—ذî+¨,Bý‡'»½©gå òÃâúðÝ!Øï:ÔÀN`‡?Õž Û@ø®‡Ô6f€…i†¤A=3QöÃoö?ê«à-6sõuõJbêoãtôßý*îƒCˆá§°ZBlþ,ìêLÙ,žŸïÌàAX†žÜ±ûúêÃË#yѵ´ø<…௬ùç軚þÀ©¬;Ç÷§ÿniúa½ zë¶çFqœ…XéœpînñÇ^ÞÒû<±Á•ÄH+‰ZŽó› á›^š±íoA“¤v7êÿ^ì2ƒMäüˆ=Áb˜óz+{5¼‘Žø,­¤¯ U›þ»“Éy¼aNÉ0:‡­†¿:vÄ(mf5OSžÂLt\i~ªx|ôµNüXMÿöV ïÈÛšPiôD¿ëcxtßEÅÕÆ¬hïìÀt8o榗q}²HwàWoMåGå_“þí—œWüßûâ©-u°øã5ø¤ƒˆÚ.>Ú.*ÕbZs­ž&Õfœö[ið£ 9)Ô$?ŒÒr[m­ÈÔä.åD5õEͪÅW¡›ë§‹¶K­­F¦·TÐGúÂà _û^K_„½n¦œ?ºbi\Eê/ª¡{fývð¯VÑ]!©ØFäá…‹Z^6„Wï(öa ƒ…ã.ˆI"2ˆTýÕZòù·Xo5­)-ýnVùeå¼ÌÃø$1a¡ºau‡DÈ_EWŠR?øœþÂßP¹ÏÂZV ûIG<Æ«0ÀŸø“nSxá½ÀbúŒP]ð‚_翾þêÀÎxï×±À‰Ù_Þ¿X±éè”É[¿&g7ŒT#T#•×a—q|Çdþ¹}-…?ËÁŠ™ÉÇ+¯ëôLׇ“éåñ‡ÏzÆéÅÞOæL¼3pS?õ¤€CëŽÜq ¬ˆ›’øã¡v[û‚ýlí¾ÈÞüøœ<Ôf%$öj~<·%жAþнeGìOLìVc}Ù•¡¬ÑK·ËøƒZ»Ùd?\±EÇðþ–€"wõôOÜêšÇ«C…•±JDÖùÑÀ+°&»Ïh@}¸¯Ñļ ~œuTƒlÁò겕yÐ7ýá¯B«è3Яªúœ,Ø´còˆ÷"Õ\ùå¦ÓþY[¨Ú@£ÝàG-z6–äz`Ù˜C8%êGªIΘuäûë—ˆ)1­ öÙf±ÞVQƒ¸,7 !hM'?‰~»mÑïNÆ’~0àôGñßåЉí¬S½ãßðaæ‰é\/% ñnô¶¨¶k/w¢’)Ów¹ÊF ¢š¥`e%&ª[ë&QôÜ~Œ‚Ëj\¥§‹¼%‚ cWÍŠýñŽÙ ÉÛI^sZSá¿®1 äõƒ_Í<(„?ÐéqYú˜D\`ìFÉ•zf1.ÄüûZÞÊf¬4Dî>ÔŸ³‚õ›ÄïïùÓ»¸5óã“ÿ°&¿¯¯Èð÷óUúï–£þ㒾ʼnGோ?xZòÿâè_¨‹ÒjÚß"ÌRlV¶¶K{:{/"—àGF³ókOñ&?ºâCõ–Iþ'üU ­ªĵÆTzQéêUˆäjx8K¨l©×4Gý ­%ÙZô/™­$ˆ"~ܵµÔV‰ <ù.°M襫›•ïZ/ª‘½˜^EÍ¥}î×Öàá~5toX˜•üÇUµ(±ˆ‹pg:åxq4’ú«ÃôQùCìEst+ì…ç›AÖ…3j%ŽSƒà‡“ï¾¥øýÕ÷Hœ][mýKº“—ØF>vøqüÈŒ"ŸÉ ð#à“®¡öGÖ=BüJ3Nì¼(¯SŸ7O¤¦m'~( s½®t±÷Tlc-}c¨*â°Û P—¡Ñi@4po< Ýn0Ve±btâÆ6Q“ f®"º¹. ¤Rw,Zí°ëXßùjË¢š\ó§ð™æòO*lÃt¸¯r('é‹…RÈ—>À&/?,þèýÛëj?ÂYpŽ2H«Ç]H‡/×.1Ÿo WþíÁ=üÈ@®·=ìÓYâºÍD]y7]Ḫ†ƒ7m©´ÝbìÚT~'Ùb_¼€™XQ²ÌH>¥ÓŽÎÀ‘¸/¨8ñå^óyÅ´}aúï?F¥#ó~ïðhsmÒgúѦ ²¸–y .æ ݳëüQìødø±²½x£…ÖfDo[‡ç-+v7•ÕV˜¶ÍÔöņOòÊX¶Ô¼MÌÑÔÈÆŠ®dù÷bÅŸƒ~1Ðï®Sއ¸+ÝÕhœÄžŠêüT-X¸Xä9|Œïz>c,ñÇKþñ5+‘™èBÿ]«»ÕÉå%õ«ÉÊí"ÿÑ'Äz‹„hUUÖÆ 0g“èæ;ÅèÎü×(oÓÒ»*Àiô–Ƚî9ªüûÓ æ"¨~ Iî+¾9ïqú—Òs¢*~O6þoÓk=7ókÂù•¦?áú¤W¥cË%ø¢áÔ£}1jåÁ䮢ÁµÅ#ÿqSÌq®7BI¯=âä4âoÍx$è]©Š/M=J;úšè€ß’ÛR¶øñ‰ÊœƒÆm#::®¾p…L¨e~Ô4aU´ýë/?æ×ZõƒÀ£nr¶`;òÚÉïÇ…÷ 7Ó‘' _aÅ+äC3¹ÑÍ5Sˆ1<ÐÈìsâÇA&1{‹èŽø¹ïúc4šÝ…D©­©gLB/ÅÚè¯L{y{s:Z¾C×Ì.ÝâÝ9'†âU|ÒK»XÿkƒÿÅ?ïÚÜ•,Γ‰¡ ùÇõçŸlW•¥jAê?ªÑk¤ k®²5PÛSAXL®Ø£¨ßÝmk£-ä)‰7W(ZA-…ºVyªõmµÁÌÿ¨ÅùQûµô:ü€þj)öØÊÌçSΑ?ïª7 ûÑG,7#Ù?q·rZI!Îb?ü±yã°«Ùà4+Ry} ËúÛ_ŠOÁüÁ±âK$îd{m˜vœ¼¾ÅÃìãÍŒŽ¿€Ï£Y»Ní3†)õ3ŒU²}ðüÄüf,”àéÆb”‡<æ[´›‰ÜW/ê­TÆgž¥±"Žãüb3¿dªbª¶Ž|zø˙Á kædG”‰ðVÙu=þª>:Æ•`ý|1Ýìçð’eE•éÈ£¤ÒÎÂ>€mLŠÿj½^WX9â{¦ÆÂ+Ý~‹ýƒ ™Áþ6¸ÿÜ–,sà‡±r9R17”ÿjóKŠQC7â©IýчýQNö’8àæãߊÉîó³` Ý*è[qJ40wÊS¦ÿ•5¸"ñÁYžÒW:ðc…2Zë/bòfuæLÍþ¨ò(F ŒeFa|kª}#óKÆÚ“ÛËPŒ0Ùõ’ˆnÄbè[؈7‰ïúD©…rœEüþý7~÷\üÐ茚 éçs‰B·BMªµa~bœ`ÿî:[EµLSôT¿é¿:jëÎT«O¹¨~EhZfðãû;‰¶ÌO¼ÄüÄ"Žçíçsùùwj3ÉcÞ‰ÆDÀ²ú ö`—S«jjsØ«fÌß ˆ"å«\U¢ òª×¾D¸›z!<Ý¥™<»Œ¨÷^¦Á4¦úQaÄŠi3`Þ»Àëœã}¶öŸ?Ò'“CßÅ×µ™Š÷4ÏT½+¿~öG %qùúN*ÜQÞ–"AÔìJ]s•ó|ë"yz‚rËÐU6…c±¾o·ÕItI %Óyò&¥jèÍUf%SEµP‘ ç3u˜/øñ~wsÞ/|ßmyaÝßpœrÔR«`å¡WrÝSå4*‡è:xù”·qg‚vO©?êhO~>1Û$¥+úÇ>ð—ï "Æt¥þ°ºåH&Ì CÄ0NÊnÄæ‹œßîiq=žáîô8þ|¸û¶ÚA1™LnnÛ\øw×àæšk>Ú£+]dgáº?‘W/!³¯@þx€úÃÿ’.›3ÿê`¸CVR´×ÓÑ/~Z¶Ó–“q” ?°8úÇðã1õÇEð£3;ãX*Býá > ýÙ?/ÜÓJ}!puù; Ãiòƒôj$Aÿ8 ~¥^fZÈÒ=ú¨,Åü]?yÿiOF3¼ÿª'»›[“U\¦Âº.+á ŠEl^lä€OêCÿàkôó°ì{éla<¦B±ô§T`»á¯¶é=Ã9÷f‹2(ö÷¸Æ¦DݘàÂT¦_4¦p…Ï™¿ëÄü«@ª…ñÔ3Q+¼xzºâ-bâº@eª0ŽòUñÄsU”ÞÙVÔ}¨?£“×a³S+:ÃwR7ÔÙ¹JwÄHð¤0 óîr_zs’ƒÉqx.7‡R“§(iµýèç·xúÿ’ïÄnâ·'sÛOâ‘:d|džÖCbý=T||*/@º—Æ%#%ÇLU3™·ÈšegeÄÿsJñÕR‘1V#»i$OòÞ÷1*²;d2¬¯ÆWã´yÏm[êš”8ÎÚRì•ÇÍ,Ʋ“W8ZÊ“ó°«ÚÖüÄB·Þ¼YÙtͬÁΨ5Æ\¶Œee7É&öG fþnVæ=öb›JX²BLÁâMº" nÔ~ÿ'úÇIæ_etÜ™·ø¯¢Ö…ýã^†üúÖvþ*¡V›ý_k~»·­Pðü’ÂÁþ+6,üÆ?§m}˜ŸX»]†ýjú×+ûð)´ÅµM>·ã¬£rØ{lC_v4†*úôege‹›ÈØôh-VˆÃjøw6âãú²?*µ°ºåNñdÏ ú’5á‰*‹Á.§…Äù±úö Rÿ`ÍSÛ(\q‚!K^K}pU%%\@eiù{ØO„­ ±¬†>>ÒúCQª‚e·EfêõĬj°6’H¸—\‰íÛÄ[kl'޶‚ìØGÉ]|®z¡û‚7OøŽŒDýžh I˜44ý£8o÷mîÃFðã®ÎÙº›˜É¬šˆÿèçsZ¦“d∙©gñ©Ü`r{ÞX ÞY˜ýq.˜µ—Úg³h¢Ù"8ËIèçõˆIÉì;‚3ÈÎ[0£BNÖ¿ko´hD?ËMzŽ«Þ®§ÿ<÷¢IøñÉ–YÛ!&€3ˆkùÙÆ±·Ù‹¨3–΃xwXoFô?JQ…?¿¶­¤ÞüF½èªWv†»äqêHáÎôÏôÔW‚åÅ`Xyô†Fvô–(­µ™ÕÔFfUR ܯ¹«o`gŠ?mÌŠ¡>u@Ȥ0?7á‘._WÈìè¤_ðüÝݺÎÌ«è+èèÈ –¼Fï…~žO_£\s[«:w‡»VÚª liB£/»™ÒÒA±€<ÚFÏÆ³ýãÝáµRÅdA­ÐÑë‚ð¾úØpÊÙRQĪɛRAi\ó®rÝw=Ù?8–HúÑ8ö1Ô#¥Ñöã¶í ÷”XñÀe"dkLJ´šT~)ä{úy]€ ÀôÁ|â#Ñ?≡¢—ãþÕ:¢.Ïüt¹N Ö1?1.S¾|ÐNþb>×j6œ_ªˆÜÌ¿Ú*ïšI r:ººxúËðùÝ …ƒƒç'öç©„ÿê†Ñ ý| ýƒáýÞði´·{0½¤„½…Ù7BüÅÅÀç¼Åç¸æã‘%%ás˜päå?oá¿ ñ ~´õÿÇø[9 •Rk¢•ÔþP]¸Û«l5P?œ©?¼˜‰të·ÎßÏÖE[ ËTü°æï¦Ö¾)sèû ú£\Qó©Q™ ò#okë‰Tïð¼ï$.lEôÖðWÙ¨ýç„·8Åúãûk ‹ËðýG`ïe~¢“^_ì ž¼@^ߘ¬z¬ÈÄ3—ØñÌ…œIø¯jk©?Úâü9C~dí% œ˜ùWÖtôïäýMélÉŸ´Ö§EЦbõæ¢ïd—mÁ‹mýFÑ^â|Qjš=Ô;ˆ²+9×®úÁHý»ÔYÄðáðLoÁx¸¥‘wgƒi^HYN‹D“hÞOˆKè­˜¢¿¸jM)¥&'WÀ_•ÒR©Ç¿ç¢xÉѰ)³¨^p_Ÿ¢ê®§^OÍÄTIêˆt¤™°ÆÐJ q•8‹ûè]øW'zÍÓ?jµ¯¨Éˆþ×élô óóòÁŠÕŽ?®Ø1ï`9 Ãt xx¬ýƒ^zfÀ¨H†£ë×Ç›DÿE-*Û ×q®86³2úP„°%¾ýÑ?&Iäož?ªœÏuVÀ¯ÚŒú`=»¼?²‘`'øµê*ùøWðj¦¸öÓü«ìðWua*¬.ŒT 'ÐÉV *§Â¼Ÿ·ï ú/ O§¦Ÿ» t/$6&ʤ(r[èéýäõQ¿ñÌ ³¯Éß+‹×( ówWâ:JcŒE?ÍÔp?³)Ψvè@ÀŒtç)Ì:<&Oñ çß]&ªsW,.³×Žy1 e´1SŽÃ¿» µ;}ŒyàI æt]ឌaîÕ{ø±4†7üUHh2&-Ó3¡3½d~¢5ôƒ^†ù»}Lìľ(³œç8˜þÁOF=|O7aÖf€Õ%wlÿ()÷‹CŽËCýqš§ÿ9TÃÆ³ß¯@¾æZúÚo£œ?2?šIè?a—™¿ŸŠk÷z˜\ªá]®æ¸G”{ZrÞòšT½³ä>´ËQFN{,æÉ%ác8ë¶5ÿ%™‚Xÿ®óKâÃ_e'O¨ì¿zJÿØM'¬«HF½ÝTJ§ßA?ŸÈ¬{¶§à'NenÖ²÷°ß5 Я2ˆýº©ðî•Æ%|ýü²EÖ”ž,)¥8æ¸âï‹'¶ÊJH$þbëúKõ3²szo;¬¬TSh®ÌoϨvän¯³Õ¢û¼ ÞÕŠ¦„ôóDv$ëÏ·±ÐKT?,G[1ÍIˤNV®ÂNÐ&²?ªúoîÜ­-%öÙp8œç-Ü'œõL N@1Ÿm±R¼ˆbÿ‡ÙQ>ô‹D±Ô_`%\È)š}N&›È¤­®ö"Â]¤uK¡M b°º4žÏÓÀ¸ºÒ£’–eï«3> ûD¡ýÄÆ'è ¸›Þ¿œ¥)¥ÕlDüÜ-gŽ”¥fHöäðàœ6¥ì5 ~¸2…#*àGÍç_y0õº&Žþâr¸qK¿£€ésåø±¤'ûkƒ´wDØÎÄÇËç?Ço‹µõ'¢ýç×ÀT )P:Ã^ý‰wÁê?ÏËÒ ò¤âè@¶ìGR*Øu™úó(õQ<9Sóÿi~I_µüUM\D>dÆnè:^Ü©2ÔÙÙ±”Šá/£–q^Ö3rÁ²µ / <îX/ôŠar‰x¡å ÷tÇ¢°6ÜaAðànÙA…º’ú#LÐ:èÊš ñŒ>†ÛªMM²Œ+Kë!?o¬L«g ð|˜#ödþn[ô¯°¤·pW%¤¶hƒþ‘•-}aL¾âFýˆ~~3¬fœ’-ezr†Ï8SÏmÖGjÃÃo†¨lMLá“«Oͧ€š‹Ø&2ܘž½‡×)Œ2pOê~ø°Lœç!žŸaÌvy†ƒ*Ç;”V˜Jy¥XNgÔ‚ö\igêÑ”Ì-qeŸ_E¦ún¥þh‰â³ï|ø¬RlÉ8‡  ?L\Fôx®ˆuއy øqÇš×x OP³êo>eÆáfê™sLâ `ÿyF{!ã:Ôiôó¤ô‡œÄ[˜ .:ÄirœþóÔdiÕxêFÉk(-’vg£ý°’ñ Le'Uê­l\¬Lï$;SLg£ourrÍz¸†kü؇’×Y|¼éÅÐ?..ö¹LVÏ÷þeäµï0ËØgØmöúÌ[™Ê|•ðWɨ›îÝ“ɱÓSeç—Wüï}ágû#ôû®¸üãþ ‡‡§šŠî'í±b¹ÝÖÚœÕ,jFü» Áß›_rÖ6–¬¼ØZþê!sáŸ*c•-ZkáÄ|ø ìUh'įï[L"þ*º5ÝyçГVù»>hˆ.º ýç ÄV±[}÷ëoõ'»•ýJ.aÍï¾H.¾ý#/ž¼LDNâè5¸”¦ü¯?þŸ1¡vª…:@¸/kPOy‹Ž ÅA¢üvø—§dÑéÉ–ŠñîÄ h­[{v§‚‘ûw)Í@Œc" Jk¹€\§8®å–pOAD/2Ç„r :óR&‘Tf†´U'þ§ÞÂ_™Ò ÷ð+°2!Ocîc¸p˜ 2Do*šÝpaoᚬùWƒDvÝG|ĸJA5-W4ä(D%“e ºÄu}‘ˆ»l&½×–ÿžH»“Ÿ8 Ö-¥Ü*Ü"Ü?詌Õ\ÁëBð ®àLÌT#ž—àŒ‡¶U“Æ6:/ZÀ5[=ù™1¹®zçê@[&\Ô“a÷æ¡åƒCßÒÌ…=9Æ ®÷–îBÿàið%£ÌÎ1¯ƒI§ÁªØ²µ¨wÉ#Õ¾b xæÄ ùT‚ŠƳQŒ.‹Zôg, û@!—ö‘­¨?¬nñ˜Äðç0:o@åI⫾ +¶úY´ "r¢>ú Êås܃þñ3ºJÅP‹ÿªyý½©¡À9Ñá:Ñ!3ÂÚy£Ú…>Å.êkŽ· ×C]t—:ò£þ-fƒ‹îéÔ1`P>šémt1*WeMfJyÓ¯þê:è0md˜ãyŠL€¼É[Q̶ã%[x¦ÑGŽ2RÐMÚá3eý©?òÁ6m%6÷‹eN£(ØñÒqz Øÿ±•*27•Nw¹V'6ªþeðã.ýöOèl@ÿ`ú»‡2?ñ¾Þ®æ%®uÚP6ãî¹êòˆðto.þ«<'–çúü»žµ©1}Û‰ïO†Z¡ÙÏ›&ý¥˜?¢°‰vj‹µGf4ŸÇ4êÛŒôŸ‡¼)ç•›Zb”жèç½Ø?ØJïÏþÚèOpˆµ¢,ÁìļL;SiÇ-Ö—ý Žz"²² yIÎå²?¶á¿ê"’ÀåvF»L­oƒ¿hNæîI”üŒöYÌwh÷2sÚ»À·}áÊ/‘77ŸÁÄ%çIO=ÓSf¥ø8.ý¿þÅ9[îÐï»Ò‘HÿÏ~hlºÍì¯íάÃoŠÕ¾¾"³š†X¿ W×Ýß:ì^Û(ºêóÔ¯‰?µXڼŻµÆ¢2/_5šå·Î󒶃hðVôç­¯¢¥þXLµôw¨•¨Ný1W †DéˆÇ˜îféçA‹^dgq#'Ðä×’ã[þ«ðWCé?wQñ"TÔ†ÓéR‡~ñdò;Éh_ëÒQ»‘>ü×=¸«¢žîA¼ŸiýM©@ÿÇ]ê4°3,®üh~\…}ÿÀ9E ¨Mý1™Zy³Ö9’kR‡›'P§]ÃwŸïk‡]/ÎPò½ºè·¹£ÛÑ?ÎãHš¡·s”·¿ø¤íJ5'/#'÷)9ñ¼#L•Õs1•÷q Gü ?Ôßð»ÓAÌÝÄçƒøwEg¹H鯹‘æ£K²;÷ýªNSÐí>ÌNO=HÛ¤½D'èOMs‡Ja7çVý£(H\=ü8þ±LŒ¥zY@\Ë‹vjmD\Œí@ù¥ù~œ½ÄÉ\ðG'¹;ѧ„ì©ÝRüÃ]óXÕCLBaÍINì¦ÉYT¬•á§jÒñáÍT=ÃlAvߌ‰äQù¢X\»Þrg=àÞÒ‡»bù»¥ÈKœøóÏò<@¹üˆm\‘§ŒqàÇlúýÁ”F,cAðŒà#°/錑2 Qir"Ì»©oÉp·êã)+–œ˜fÌ/™C$LHd¶6^0¥>ûÏ[QÌEM±vÍZÞ³išw˜ã-UQÞ“MÔ-£á%[Â<ø‘Fc9ÞˆÉ6½DÌ®:D7Ýc9‚zá2ýücˆy›ä+˜©„Æn¹G„Ä?˜p=|, êö“§`ßêYŒxòw/‹A'&˜ìbîÕà—°6%Öü«õ ß ôÔòª˜ëøD&2¿Ä'Ø¿{ ýã¡`‚¬Oo…ÆÌC/öø3ïÓ³‘ÔžŽ{Æ35®Û—wÖR3¼¨? S u\¯Õÿ‘„|ÇüèÂüvvWEéYÀÎó Fj³ ¿>Æ%5Ýô7|q+w7ƒ)ÁøCêñÖ†¿òwàÇ*é®ðWVý\tÙgÔ æp§{ÿÝììuͬö®¸°3¿d1þ° x¿Ì÷Téþb"¼DB2¯ìÿþêúyˆ__SÚýcý<.yùjÕԺѫ‘(xÔJ[)tîrÁø‘ð7çïeílQ“{S’nꚉÿj¢² ÿnGÍM;¢¦V 8>Oǃò¾Ø­-‡Í~C&¾Ó>QC_¦Ì`†\{t‹òL÷Ÿ…7v”ŽxT¹~XZ7,0œÎê&Lz[¾Xø˜h'›Ì¯k"ŸJ^Îå¡HÆÝ[.£Æ®‚êÓ,˜aÊN.À—úcÑÏ þjT$×|QíGý1-ûµGrx¬.<µ9‰§ÓÈ÷È-(@Ë¿{•š¢úÇÓ_}J 5 ~ßYè¹%@ó4œY?Ðä>›£p…ã¥+qì.ýûüî"þqj‰]ôŸ‡Ä–C¥þè«– ëGoÅÜ­n`í:Ò'럴ýÚS8ñV² |æ{õ‡j¬3LcÈQ~|uÑ¿¸'ŸÂ"ó‚tn'w™~>…è?–Øù]oŒ÷:|T9¢óðò Ž3;±r v]¹òã@ÿÿë@Õ]L Ö)ÞÜ%²Åä³xÜÿQÆÊ›\Zân:†©úù@T®2ømPŸ —ã©?Âë•°¹‰‚+àT˜ÿ>°í úù1Ãhº™|ü.¾ÙVx²ÖÂýä®ÀFM”ñ˜áp<ÕŒúþô+±ì8WßUS:Ò‚^lÒKa_MD{ã9º*2µ¾õÇBþ,&hgm‡\«- óäôdežÙs¸ÎÂB•ëØ4ÇpcþIlb_2ÓŽ*°Ëx/Ýñï‚•cèYE%•ÿÕy"ÔüöŒÔ¼åxö;ÁNv‡Ó-i¼e¯ß+£ÊÄ6ÜWy™e¾ÕdRs±ZÑGþn<œX68Á¿û?–8>‘ÁýçQÿüua<~0‘Y™¿û­)Kˆ÷¾(éf*{0 È¸Š¿)ü8ΆóW[õ¼¢_¨ù%û•ýZRÞ²Ô3ýÐ?ZêõQ,Š‚àM©b€gž Rq¦¶Ü4öç[šWå æ'Žf&]"Ùˆç°:NµüðQZÁË[^ön0»‰t?ª™íLjËÌȘl%iÁü«é8²œìCÁˇp_˜ºYÿÕ|êÉpü©Ù¹âü?Ù¦ÿãµmÈ?Æhôe¯g~û­ûÏÛðt-´US›òo]u93õ^8>Ϩ|±ßÖ ü¨ŒWº0UCJ-󝯱ÿ£¿èªbm3µj˜ç7²c?f2?±5jmgÝ[”ÑÇÑÿñ—p£R¨'Ú‹…QÞ?¸“én™ÅaÞ?*ÎäßÅñTÒ»ŠådöO@”ÆD² ø¯Š Q8ÇZÚLœ?m­HI”ßB{_EÅþ”7q7Ëòàhsõ²w¤ø‘LÉIýáDæ\[.ây¬ÂÔáŽÁ\}yÔ{AÔp!:o£zڣ͊ä ß«ÈɇÂLÝ!j$àêÚ•;à !êU—ˉÌ{9úsþü,oÀáÊöS‰«TS³Pl  (@<ÏDgü@îà]ø«YÔDkPÞp€ ›À—iÜÏWú>ñˆ1w¥‹æFdÉɤ‘Î Îþ¿ò‚˜>BÿªÐ¡Ÿ·â.\£úØjGG*ML?.³ÿc–˜~ÌåÊŠ[¹ïTJD¹ŽT1“`:õN¥©?nò¹ïãß˜à‡»ð~Œfÿù$>µ,xŒ“F“ ¹S•©`¬å«á\3?ñ(jzI2úFäºÖþÁ)Ä«a8B â‰üûÆ„¿*O&î¦oä9˜½-L¥MNoß c0‘p!|‰õQgbü4šÚïªÆY;}u2ô§Ñ îÖ꼃pž~‰øpSmè8ÈÏч“׿aài¦¥?“ÁÃ(@Y@·¯à›/.ð¥úmZ˜ãÕฬù uÁ_;3Vf£ÆO2zÁétÀe2cãIÚj|C˜Üt ÌZIý±ÿn"Îw…<Ê•›ù»ëuk âsœR»xòßêûp~¸Þ#ôŸ·Fñ¨ƒÞ3 “N/z]&Ÿ†eÜ€úM‰¹Ø³Úq¹ ”èEyú/éŸåqÏEQæï>g²ú#1>÷ÌPLŒ·Œ×ô³o +19³6ëО þª.øüœË~ìUk£E¼$mÑç’ë gûR”òyÆkÜ¿¥ìUÌbÌoßjæ`_Éf*<ÔaEèzùFœ¸/FðqPØ*‰ð;~œïóWk~bHÇ ]éôõï¶mtT¤ÖºjeÐÏ›s·—°ÿ¼2LSu)®® ¿um®ìl~T„½ùSK¨Åb еÿ¼…Ö^;£–QÃWøÿùðÛµ 0êïE\N5ôõÂY£lc&Dk}˜¨ÁþÚy"0Šó0 ;›Ø zl矉 R@¶""ŽkÈă¨IšÃ¤ Éİ(áGm “¾jñŽl o%ú=¦"–| .!v¿1Š2v?òþ»R„9å÷DVø«zdæ¥ù7:¼ÎFòåâÔG‰¸Û™Ü³€øíFldú¹¿Únʃá”2×kÑ?FQû‘õlæ:ÀQŸƒ§§qiõKÕñ¦…ýL¾ÛʪIõhrh[€xnñWùõþÝEðSѾp¬WÄfoþOÔÿ¬ûˆú?m·ŽëÉÖ¶öh%Åpë¶%6Rõ€áy §ÔS×…v;?ºïö€DÓ¹)ù)"콪‘ý£&úG!z¥[Ãþï—MÑjK3 jùø4¹œÙá{_”W¢ÏU.ª€¯°>»ù|×àV#Ìþªz÷vú?NÁˆ%"ãßÐ*ŽÙDÔ§~Ò?$™À)îu¼RìÕ•ñîœW:6ÀΆyù]1«£W´aþî!âS:4 $ü¼}ò x¼@›æSöe©?Þ¡ËÂÆŸZD—ý,œg®†7QêýÔ÷q,fžàqpz÷ò㱌e°”Ñdzs®S¨z‹ò´¢ÂG˜ßU07 ûk“ççƒ%ÚI·óKjòõ]j²)ðaéŒ{`a:ùTx9¾ñÊÚžÙ›dOqŒÂÚ±[üöòè©™uøÓÓÛ˜Ÿxƒþ¼bì)‰cZ>ðQ0€£©€2ˆù"dRõöH$ÁÞ„çsHÕ^ïÊüÝô4aCbR³=ŠÇgêe¨ñûÑW†›Sås3§Ñ ü°Ã_åÔKÓ¼ràÇüW=Á‘äÕÁúFê¸4¸´œv7³°}´}-üUúå_Ð{Õ`*þ«õtzA!NIŽS\„7à¿øÅyð#¤KÁNÿyTLC)®¦¦ÎÚNV›£XóóëmðÓ+œ.ÙÂ)ý© ^ ×Œæ çó³wˆfîÿè‰k¥ØVBîîNyȲæ—ÔLáe+WQª3úù>«£\q)œhYqO´‰€¿ ´Åb·ÌdT…©tŒÁ•»Ü^HÏåŽÐ gÔmrͧ¸6×2COÀ5nÃí`JOí£r.ä–5Bí*,?M˜œO0‰‰9§ã8ê^1s$1‘¡6S–êâkjµŽãô€ M/ÁªÕÂöÓäæø¥ªéC¨¶J'&~\£¾\'KãÃ!ýÌÊÄüÃæ8«’ÄãE8˜v†&˜¾œÜéƒÊ©0Ÿt'¸Û– ÚM+–Ñ+’DªFkÛÌ1™E_…Í>ƒ)Õ©?J‚G@¸ t§|aŠ.¾õúúpõÇEÞ¦°#×ÁT¦ T”uÃñZþ«>ðWî¼[¥é©­kV´76;Áÿ)pií•Ì\öQ Jêì')~^š)øWȽ®ˆ)tŦ¢Â­ Âï÷HþWþóª-S(¿þ›«Î>¢SQ”cèé´AZEí»Ò…§u!óKJòoYöG¿Ùÿqýc±¨Dì,~|RcñŽŽQ6kíE!öR‹©ÙüQèßóÕ<àk‘ç/Á ¿JÓ'2må Y‘^”sÐÏC&€†þÎð_V.Á_m'‡1™DÉ$kS à3ÎÂÖ–äÉê*â°0~α˜6žNûºäÍ[9æ tôëhi‰PEä^´ëë<©/Á»& )SS#ù'¶’wS qÒF ™VæAep3NQ5ß眉zàq»¬>9œ‹æçƒû«ˆá£ð™5LX¥®DõzAîëÝñ_…ÏŽ&ªcÉ ]¨?Ö£k´’_9Ö>bØkð#)™yó ȱj¤,V=ôóœ0c½9ãÎèÑBM3ÿû5õ+øÑ…gm<~®ÓÄ´Äó´†þSìò®Ìð]æmЪ>½Ûð_YïGà›†É4tÚ7ÿÊý£Èÿü8HäÿBÿG=&¾F“±ÙÓäa&bjßevæÝ• ÉuÏPsÅ ŠºÊl%–êË´ a>åÉøw«‚jþè)í¹{¾rêÇT£6zL4û"ðãÎØÆGéÁä¦3paS©Sæ 'IüÆÛ™òöeÂ!¿œþóR¸ÂêS Õ“GJ#Sá7PäŃuýc?3Î ‘‘ÆýÜÙ2™Œ[ aaéªþ˜§¤ÖÐïR%'5î‰óú0\pîtùÕ¢~IÉ}ÓíÑ?Ò¢ø³m·9øHâJÅ9RR¹‹Á¢§ãz(—´Œä@–þ1·C3½6úG5Ü` ÑO²€ggñ?ƒ¿ºËFG0Äœ.OƒíùÌËLí)ÅósÑQ¦“ÉM¤æiï‹$‡>i(ëÍ®Tovúöó°ËÖÙ> N~ì1òÙÓÑ¥RŒŸsÏáš]bØÎ²¨Øò8ÿk_]°•f¶á]é¥üÞ\ßi³ÅD??­&ÑúÑ«ñM±ø+o[+59ÕG üWßl÷Cþj¾ò³DϬEΘžÅ7Õ÷ê+e‚r]«+²Ò¡x_—³ã¬£p8Ûm1‘ï¾]oî÷vQBŸ¯¬Rcñ†'qá¯Æ‰ õW¾¡°Ç?ÁÓ]HX1vÀ…L Ф‘%ɧ=ÅIôï{h¹%¨C{±ÿ¼k¨™>aú¿ê¡,Çž¡O„gŠ&/ÝÓ ”Ç¥ùŸhYŒJ<[Y¢Ðÿa*UÉ6ï‰((¥å Î¥ ®€g»@¶bà‡/õÇ*˜<^ø¹´‘ÜE?u ñx"}7ˆû1©·º¡–W†Ë˜NЄ „É[ºài¢·cÿyÈ$ÕÐ×i³YõG\ôyœSn®1%ºNgr¨ }¹\ CçEä¶æ_½ã=ŸÏÛÔ’ÿ?§Ÿ"ôïŽTáßÝ÷ëoõüpáv¥Š.‡êG´íÚ{ܬn²øáÓ´„{ñ‰º¬Šž;ü8cKʾ²‰\ë`é~¤?:àË OWfd4\|#Ø¥£pì%À›ÜÏmóøQZ ú©ÿcû?ÆQ E§ßp'GŒ%g‚aMÑBjÑß·Àp¡S¹:•Gá£d÷‰Ñ»wRÑkºŠ?eöà\gõÌd* ƒd)¨?ÊEÇ™åN´òd߬ßß”ýµ›øì“áÅ:ÌÄ‘‘ìr-„ÿêf˜OÚ]ýNýqž§¡8“§S£¸={ŒKüWçÍú¨óÍèS¹@LŽN¼ÿÄ<fqé„築úä+/È"Z’|ÒÉåð÷3Œ²üÕ&Ü»/éÓ›i܃Q”¯QiM§>ø‰Šgû:ž;–¤œ«7¾ˆò`vCéËÓ÷…þó³ÁõGrã8ó«™¹Èò×Óÿ7ƒù¹%Ló!lÝ0êŠXÆyîu>y[,ro©’ü(/|EWð_Y›=‹¡ŸÂ1Í7’À_˜çˆøíi¨Þ˜¥ØJõÝxɓՑŠs4^·\¢¯ðtÜ¿uJ€–L®ƒ¢ÊÿD½Ÿ‘ï¯Å"0¥)uÈ]¦¬{Ñ'~ØÈl®0çÒžÁh…šWZû?€´øq%o¬ˆO/sMº?âá¿jj§ÇÞ˜@oJJ³8]•íSì»QAܸÞ$öüæ}>ã²f9Ø)~zKð£›,ô?™_rÞVˆÝ?nµTÚþcý\Uö*ÑÏûÂ_ES[rÌu¶ÆôÖ¡ÙÇþóë?~H”~=~ÎLO²ÒRD˜š`ÿÇ`%HëÀ6ìæìÊ÷›þ«]Ú|bàmx¢d¿»ÈçÇ(L,áøeD66 /×£8¿}¯rŽýµ—`D,ÿ®¬ê’LÜ= £ñ˜˜W ¤7þÝ®QÚÿÑ€ýQKEwtCd¨;¨šï‘+§ ÷ª!·®Õkä%ôrúˆHëCqgn‹ì0+•‰¬ùƒ]G¨’,¦â.qôuDpÀÊø×GŠg©?îâ'…Sv•²7¬Îz®xyy_"ë2peÕÂk*EäØåà¯Þÿâþf˯ªðKKAÄÜTZô¢ƒ¶sÐË·ƒC èBw“îQÓlägºògúF6¾Dä¬î®4Öjð³é£ãÍ;ÃQò=í`üÊiúsí&ûÏ­É…Mpt¦úZÌ{+õT8Ò"òï´ÅD? zOÄoU5èˆb㨠†‘-Ñ›ýÁüô\ã³Þ~Üãz*j/~š_2‚ù‰y’¡wŸ§‚ùBOÏaâ†UXóÛëÓ)P•ùíµJd÷-à¯ÒR¸³ËÉù‰Ñš|“T}BêJý±ˆN9?êDèçyÁƒò \~sйùŠ| cñ> ÕÇ ¯·LÀ¿N(ôÇ2 í¯¹¾Žçµ ^Û2°pq Wº²³ÿ|*s?€G—˜ßþš ©št-4ɨ7š±Džå®ÏÒæ…9ÞüW%À‹Dü°gØ»‰ØSºß`ˆþ4¿1Wp‡qIvE•§ãJØAÔ—àé~ôé8^ÎuŸk6ù ¥Âg/¦Ìîщš-'úù&ø« xv·áŒ]HŒ-Íì%OòGù@¼×G0¿dSwk G¿3–ÑI臒ü¸EÿG9s4¨ô˜g¡33FÉÕz2êýc/}ÌòVÖæ9­À¤”#úp£ŒÓbzÎá¹mmöG‘·æ¹ß7ÎUÙµU¾7S©•Ã_e… ½©vàÇq¥9ºnžßÎT©™_âj?ldËØ9'P£úÇy\¼=¸ƒ:ý)O˜ àb>¥ÿãn䆸üÛ£ø:®øßûâ ýç!zç[7%*ž¡ˆÎOeÿÇ&ö×öÐ22?±2OÃ|[[µø‘—ù%_m}Ó/ï¶m*ýµa$œÁØÏj íu’òI"œ©?®¨¹Õ‚Žçí— õgµ¥0ê·Ñ;|‰^[D½­²VMDŒ(ŠÓ¶þ««jT¦­Û˜ÒrþêïåûY§ZZ–Aÿè#¬yHÉÁKÇZ‹$àGHMêTÂ}Ù„Šmƒ¨G^LLÚJÜ¿EU“ ½6ŸÜ‡¿ò:ó[‘ô+¦÷Ž?b+é??—¨0ˆ˜™ÖÉ•ìÜš´êÏ9ßçœë—P¯ÕÜ"¹‹þêHÎl0gtŸº!&µK3òî¢TLƃi^JÝ¢<"—] &5#~¹AFSŠÂÂ<œPtçátÇwÌ#†­”lN×'¢§h°¯Á¸5ÄÛÆ é}°¾y„ýã•)Z'¸ñXp_-@ñ;T!¹®Ïä½Ð?|µïô^´• å ôÞuðuå¨?ÒðsDP\²e¡ \ÆÑó.¡‡Àõb&÷l Qd.Ü{p)ï‰É eâÓE"åF®ÜšÛR^{ ì÷©NQGо¼Ù9á¯N‚³ßñ€}gS6c;ÝOð5±¹Ö(ÛÔ‚œ¹4»=ˆ§®²üUxÇY"· Vzø³#ò™E2ܘ_r€þÁ>x†¦âg=~TFÿX‰£ªÕ×Yê…)2W¾OSèSìÆ'Ñžz÷9ç´™Êá/]§3e•›ŽÃIæDbé ¦È:dy6Ì^‚K2¸ oðsíÄ»¼C_¢ s¼uÔÎà‡?oC?°æ óK<F}ðÂn߉~þgJ¼+ÚÁ¢Ô)sø{ßPÐÈË"ÈqzÈÐ6ã|«,߃¾|®1@Ý»èçA̦¿nl1[€%éjoþñž~Änæ+Hõæ~ÜßÓˇb¸ãx^Jbíœë#ÞÆ5q üèÀ–“Wtíï Þï6ûMÔôtì0¿É¶«º¦§ñÅx5TêÙ„ýƒ!~³£Ê-+Õ{%ø«æl«¥aâzMô޶dßñ· w&3ŸÇCô¼ü×j¹ÑLkôÐàë«FÓŽçGs<…Ǩ¤‡‰Œ¼eƒaëè‡Ø&r f]ŒªÕûa–´O²oàÿ;1Õ$º=*ÿCYÉüjÕîbˆ££T å8s\úý‹Ë¶¢¡ôη6%¢]¡Q9 …Ηù%ݵ*x¥¬úc ýARêIôó;Q9ˆã ¢«®1ùdzd¢Sd¤‹ý”Ö„izíµcj¥ßÜ?xLÛÁüR´#‚6!§uÖG¡| ôf¢„pK„ŸQ—šã„_œ¢ÐYœåMñÁç3 Ϊ<óKòà¸ZÊר)›ÂS÷b~‰»™ ãøöŸ¾h¢MÑÖÐágƒ“8OLÒaJ&éiåüRûø¯«Ô§V¯—µ?Ê=Rüøl+Gl¾c‘[Ö…¿*Oe¤ÇÃå$…ßÙª·=–rž›´¾a¢ÀO'g»©öÁã4€3 "Ç…ckOÄÏA®7‰÷µ Î-ôYøîì îÂ|åËχ þ8Š“j þù–£Ô‹7E Yý³è?o¬{À|£RxÆ]ôeF‚Ç1ä9:~ôÎr*ó;‚ÙèéIuu… ­!òçÎý­¶C{‚šÐL²°óŸKzð¯0XÑþ¨;¶ôôa:1ZL0µ…h=QOŠÞàF¿M¾Ñ»Ñ¹wЍŸ~»ó|þ›¸rçm;í¡r>Ü5W‡ˆa0äéØÒq•#X3UöÀ}gžTþ`ÿÕKðÚ¶^é ÛTžªb&úúxÉ,¤Ÿü»:ûÊËsFP÷½ƒU9M,²üW)è!¹fŒ¦£n.zÅòþŽô„l±Ò€ŸäÆdiÕekfèS즾­¹+¯è…ÞM§w ´”îðWiùu2p(®šÝÁîüþ5059Ñ>®aô³ð”®ÑV„9Þ\ô¦ÁN…FðfñùÙÇðï.F?ïCÿÇvð½3üÌ‹†fxP{=ÇÙ0˜·YZóKàéº&B>ãÜL˜³&ɚ˃dcª,CÿGwfN¦5®°ßÏ ÿUfLcÿ“ÕîÊDF ?–à-¸÷Xý|Šãrgƒ7õJ ÑM]5¢ó™ºË­LiùJgÆb* ?ª­3ôŸç¦ð>Óæk£‚Ä05îI?2†Ér­^@ŒS×{œ>‚äViHqÛ`NW;ó *·'ÛDÎÐ):ÇÜÂþó\† •qBÙXQ‘úã¹£þØ¥t /!9hàJ¾—K¯b¶±÷¤šaÜÂü'SÛèÜi¦d~âæ'£ÊÉDzװWÀÞxÞœÊÂÏqÅÿÞçmÅBémnJÇ}ú½³ˆ­lUf1¿dýƒ1‚ý»+èÿȨVsªkù›üÕE[m®è ~TCµˆ®ÅÕ2°÷:ýƒÕد~€cþžÿê±vˆøIt!âTÕ 7ô?5hKæ—´b~ÉqõM”.øÙQ]ñš¸¹ öe…~•§¡9ÎÖ¡â(ñßÚÒׄdþÝQâ¯\´iTZ. Å^¢üvòçÇä½qpúåéôѵ! FSPÕô‘‘âGL¥<¿¥Ÿg„ùŸCÍâÄÖ÷NDŠ»àÜS~Âwbs[ÐËóœn ÷Ï7à‰: Fm8ÕÏ5âe\°©A*‘•OÁçZ[.'ïß ³¯kóôIÂK qb†=ž¦TVó¡Ë̃½JE}‘ŠÊ¨Š|¾VÎç —ÁâZîT «y›¦PÅ‘Çpl‡ÏÆ­ãĿۓ»“þª+îçP¤oà[~›Â´ ÚW˜#äWžOªøWÄŠˆ¿º`û“|e5׺ÈV–úcü¶µ…{´ìµ<ïûäG´- ¾ X;ÄâW‡k¯r§QGˆIÜa6¡ÁZó¯&½€@ð n€‹fÃ<Øõ¸øQCÞG+IÄĨE"–Èî-Tƒgí¸Rù­ c%÷À®¬#sO†rÅÈüÄMì³ð§°½»6*ÿq~rf™XS[–)ß±úG>·@朣¡P·7¶EÁÙ01)ìÛÈ¡ëÒ/Þ‚»·9Ür6êBFضkÔ+µ)aŽ7Q4•åä%ëí‚ñû¬_’ÛaÃæSýô2¤}—™žÞ¿Ë¨Ýwå£ùˆNO˜¡C ¡3úùZéjWg* ÀÇ’¨Ì-ð_YüU5*‚>ìÀ­DýqŒùWeÍœðW“Ím(Ý®àIN©T‰yø i©„üÅ8ÇÃ7K‰~&fûé_å[ñ@oÍüÄ!f\òùMFt|kŠý>lVAæï¾bÛUKX-›ùŠÏv4õÖ8<"©©?†9®×W9®eg&Lmý¸ÞLžxáÜÔ.Ë©‡>-é?>3¼ôÇìn®•¦=ŸÑ“'3)þÝäè‡ÇBñWG˜¿Û[Ä…õ® ‘W¿jLµŸ4û£]Æ–Ø^ϬnÁïäµd~I"{júJJ°ÄÚò|I,æ}OE–T%ÔÄ/Ç¥ÿ׿8OýânygkjáïýpU9¤¬cþî0-§ö)xþÕzæïæÇi[Z=†Fÿ{óO0ÿj¥pEù-‡œJËBOâtå©Ö6£‡vVÍ †ï°úÏgë¯í%bÚQ¡àƒ=‡2ßüˆ>¹ gôâ†úý?âÿÿôýN"þâ øácUœ™þȼ·ò;¨HZɬþóá¡8Ý_ºûxw‚ßx›O£MÞÏIäH6ø§DRkÿ‡¤Ž˜BÅùþÁ¸Jcø«³øŒR£Äþ½éφ/ð4Ñ«ʼ/êôn*šI¨õôÕZÇ[ñ>UGƒ8=ˆ¤Oø¾$ [?} ÿ9DÔ©ð+ðÚî•>‘㟠FˆÅ¿ÔÏßÛò©©Ñy˜ÍÍ[²ýÀ[JE²¤k«¯†mzÁqÞRC¬ãOæqd!wƒmTŸ¨ôÓ,ݼ Ü§ö„úƒYfÜû¯úŸ²ó¯Ni®Å…»pcnG½)Á&F'þNDóÛOÚ²âßM¤ò¡ È Ï`ñW3ô$ÔY®øw—ȯzw¦^F».Š—õ4ˆt V0³^]µç?ùwÝÕƒ³)ÜÃç†ú<‰'¦1zDÚ¿Ûü¨Êü’V°F‡Á—²:ø±™~ñ Ò E.S¸Ïåz]«pï+#ÿ¤ð,JúX,T/WÐÏ«š[À‹ fSã4îêàÇy‡}#ëe|²ˆyôt‡þ„]Ô÷dg'¹ÓáøkRe0:Ë²á –¾$Àlƒ_ª-}é·ášÒ³mV2?äqx+þ«…aŽ7FTâgžã®4±”ñQöŸO1ÈF¼§iéÿ¸Ì^Ø{r ½/þxȼa 7ãö*e66ÈÃâƒãô2°!a*xY\®u‰ÞS©E*3'q 5Lú•@åÞ‡ÿj)3¢ÚÓOønm `Iã)ŸH2ø+Çñ)ßÕ›z9HÎgþâüU!\f‰ìµ˜tõ ^íZÏwüM…ÀÇ ‘7[Õ_ë‰9â žòcz~1MŒq\ï)öØ¥‡¥nHîØF¶d&Ò@\QÙø\Ø_û–϶Ó| 1¬Ãm¶ÆÜ&Ø Òÿ‘š;S[OKÿûC=¾ƒ¿º ¸jÓD r³D»ÔºÑžÏì‡þqtËloe–?vÀ_ ä|¥½þÝŠìO|FL ©„âòæTùŸô·9‡ÒÏ_ØZ…šÆëø¢ô…©ìFÿˆ£M¦þ°«¸Û‹ÙUõÜYÝËŒÆQ:Ê¿tý|;úyª…§"ý9ÔìmqmÀ5ûoîz í†ŸWÉwÏ€òÇDC}ˆâ¥>MÁÚLG[+n«!l~œED¿^„§« ^¢ÕG‹¤O£*ÍP±“ßyGì·LÊS°#œÿÊMÛçµn-þ^ ôóLÆ@ôY'<»;ð ,c~» ÿW>Ú,¯ñwC:yKŒt|¸0OÚ î½ÅÞÆ5Þ‹ƒú@™‹[iìMè4OKßå=v€D³§¡†°ö¶aŠU¶ûÙá¿‘)íÆãßMLw\ïÅGûÂÖ”ã¹ð“Üé?ÏHWø"P<ˆ‰#-ب{‡ŽûñôËŸa7äPó°üff6\ÁTrOcy^·;žÂóJ­©ÈÀ[Öžw7¾‹ùWGÍÁøw_³M=»½­™›ýÛè?d.7ž±ÿã)3É›BŽCÑ]À÷Ä‘duqÔqÅÿÞÇmyCùw?Ûj(á3Ÿ¨žKLöGù¨9Qƒ‹iR­ÄÝÞŒþ‘_m„þqœtAQ=Pðß;n§ÍõaJ2 0‹–XK¢ÎanrW¢‰›vü(ïø<£rà'š Â_¢9H;òó:ø¯ö¨oÐC:Ò=è"6ŠËª-JG¼¥gÙ”)éiÍËän=¨ÇS‰f Ã\ä¸'ñï¦ ž_r†£^ñÐxšãß]‰æñwYsX^<9nœ¤ÚrG?ÿÓ^ ÿU*æ_Õ¡k¶OyÇS¸ÉbbÝ]U‘:®*µXDýƒWñïz‹~ü¼ÅðB¥™'¸¼ŽÎò_-¦ÞÒápÄ] G&â·ÅÕœãÓÈéÚgår¸Û·þj¸]ŒŽ ÅNÌÄwT#¢×&æïdæŸÝ,iœÄTŸì»-wµ™½»• ‡cå ‘Vä ÷,Æd^niª«ÊÄÜLðW>zNœÄy™=x ÿÕP³9,É%3­¾#=é«à~òPÏKñbýI±C¹æˆ#Ð?ZÀ˜~…!º‡[Kaïàê…ì(îžè YÙZô†ÐûËYs‰|‹drC¢ÙXJ˵¹aŽ7[Áãûˆ·Á·A<<Á;Ù?8Ó(Á¸ìgFb<­ ö‘0÷Š<~t¥¢ù„2žÚ˜O•²ß¡4LÆJ=9ŠÐsÜÅë`„SÒ5ó•Šá=XãOýÑãUafî 6RýþÑü¸*œfÎ{n€ôL¹ãøDæ+q´W<'Ðð>3ÙÄÊÃ_ű7 ÿ#%Ê‘Ý~ÈŒeÏoÏ‚+î3Ǜǎ’;8ZFPLE?/Í,‰íŽëµôóÔ¸¯šóT•g¾çy½·QÍ^7Q£!XJ`ôbzþp\ÙfØgpöŸ/¥þ˜ÈõÚì:?%=ºü rÊ—b:ïRjêæÿÿîY[•PÛ?Úºücüˆ«œ?’QTÑTµwÛÛÖÚ£;¤ö ©þõÜ6CóeªG÷õ]‘ŒùWÑÔñÊ+ø«ªZoí&øQÔñy:”ÿðE|q”»ýÏâ9ü°‡Ey½'n±D0ÕDIÑAìw£¸ÿãê^Eñ†gç$Š×,2zö ôÛaÄßëCy ú¢¤g¯aTÉU›À¦¬¶ÄUðÇÚu ^,%u‡‘11¿ÖA÷o€‰xiý‘@iI/üUžFœ‚°KV¤¶º$¯¢”Æ¿{&ky¬nªfú¼Hç_½P§S ‡¿º ŸôFX[ØWÁ„yã•ìÆOØoäK^wý6h:F,üeÿG<¥0õ‡!gPä?’p墜O:ø+*ÔmT"EñïS˜Ùg±0‡Á‚®ô—¬ƒ‘r‚»¿G<.cÃp¬Ç_uR­©Ì–ÿª5Uuð-ÑŠ!35Ív"_6»/QµÌUg£åCZƒš’Ùð»_­oц†yÿFŠjÔ»×¹'Uaã¾égå6TžÑFwø´TöcföG}‡}yþÑ=` j·zÅ_œanôv¨éãe”Ê6𱞷rLfLYÿn'ôtÆn𣕙—Ô*OúÿºÁYûkGâX.€~n±D×DoÇ'²NI®½æx7xJLæï~ÕÇËRÌœŒk/R¤¦nÁÓ¥ Ú3¡x¤+q<ÛÅx¦›r~äôó¡b«ãzãe†.üïs½:›¯–émrö|ÌO¬ÄþÛ?™‚µƒù»ù˜h¹þ2¨Ió¤n¯jÔFÕL-]pÃÕƒIéb=  ÐFˆ‚¼á#èÖŠ®a~âVzཙْìŠ3¸û?Öé®\¯iOŒþQ„ È`T‹%Tói¹ç-ÄfÇÿ{_³åa¶ÈŸ÷ÁÖéóW±à¯¶©v­æ ~Xû?¶Øš¨Eé©Mÿ`ÊßöïîÖP4D9~!„ýµã”[ðWMÑ?®pÔßãÙžh0/byx#æ_á»R¨1‰¬ „•]¬Ô_õ½ý¸;ÿúŒM èa½k3Xßó^A–¢Ë¢¿XK¾ˆ'¢¹îñ§˜¥ýQ­QŒ–ƒßaX¶ñfjä&½y"¥çãÊzG´7¨l‡s'EŠŸmè«8 2‘ët”óPN³Á:u¦Z²Ø“³úaêíDZOj…šúÌHûŸ©SyK:R‚•ß»w¨‘²¯§ÿËòïp烞‹õ¹ðÄao˜ã¿07ŒÐB2°\D…?˜¬2$cÛ9 YU}&‘ÚÒáïPCX“À¦rä/LuÑ4Çê8˜mo]#þ®3 G/P1|mÆ}’pù=tUœf”5÷¯¾ô1­(Tæ JDó¯ÞÚ ²/yx0– %ö¦ë d!Òu=ÑÿÐŒiMÖüÝÜÄ'«§ý’\·þ«‹!'üÕFu5ÕLr‹sT½ùǃb5¨/:áÙLÙ_äõ§ÐÏëã¶u!/­‚º²˜~iè%DêpW›~Š< ñ‡ Tíýzf¬$úÇay‰ú£2 Ì\HgÑ«“›a¤r¢køËTÄæ„ÜÛ5Ê“0G¡~A]ÜÉÓИ©$å9¿†;ºLj˜¢eèÒé`{Îþ[ìSoA×x[ꕨ3ɨE®€î‡´qaŽ7M´ãïXþŒðH’û´ü˜gt£ßܪ?’Ð?ø…n‹;è!uÁ¹àG:é?QMå€o 5½É …q'΃æàG=X]wr¡ºøt»sŒ¬L$ÜA½ŸïWñaM£ß»+}„¹Vkcn›h|&§…«ãÙª¤Ñ8IkÆg\ã-ïîDPk;NšÃ_= ñ½$oð7å`2È7Ø0o¶£%“£6FÈzZ1_ÈQi¹A(~Mé\@ÿy2æï®B?7áØºÓyŽþqÌ9¼ddU&Ê8ðW.à` fug‡ }¤§qd1×”áÚT‘ ­·#ù^V}‹Q‹nAXÎ+ðhÖÔÝföžöøwû ×ýÞi$¢ÿ|-û?ši´·J޲ÃVŽ>ñ¢hèûà¯ëp~¶ÍðÑPzKR5Ä×RjÎLñ½¨u§ÿ¼ƒ¶WWæß:Ï÷ÚQõ¯b o}[âkU=g›”hhÕMà¯Ô¨9Äüaª œ!—ïçt};>÷.bïã3"³+õGü»Dˆ³í×ß^›®-ˆ¿+9Ú…ÛDë´D҂İDðXõà]jSÝ6ˆBÿù[[<€~¸9’ÁÝx©óéïðïú›ÅPæ·àŽÝÍÎÔ×Íã´¦‘ÜÅ3Ô±å`ø+k§¬ä»zÛKã]AÎSQ²Aä<œÓ3îÈZ}¬˜* {Õq”Òj.*ªÙ¸sãßMJÿÇ0ªš'8¯£tÍ†Ñø.¿ vƒV¸Ãoù¬Úifg9U¢ Û À4uGüyÿj&ìû0=¶¸§ýA|îÄ¿Wȳ7ñ{E9ÿ2¨±½onÈùز‘¯Xx½µ£ ï¹/÷güÔbØŽ9ÄØ¿ðÚ|@_8̤‘¬°lÖ¼áƒz\ÔZí¥ò äPÁ_M£ÿc šŽ3Žßg(ïÑè¼cgJH& VÅU—ì¾ õÇb²dÔ7ˆÐ™é¥Û# þÔ9ôV±S77‡+]€Fòþ¬@p´ÌŽŸö»Xk’óJû;ÐÊ~î} fIôçT e*®üh8ÿÕPÕvQÔÁ§UÞ0)øAæË>§ÍdÒéíkp´6§O­9s­=*Ùa×’±¯êúù¶¯Îó™ÌÎ(.·¹+E¤»|¯–+è&kLä|RÙ/M¿±ý‘¥ÊŸÚ \öçùþ’‰Ø8ìZÀ†Å¡3o%šÖ1=q¿5qĞݼÂ~ 's"õÇ5žT÷àÏnýçÞ¡üWG•@-/µek”»ÌòžØ£»Nø¯¼™TòÆ8NãURSÉŒ£²âÜ$¬SÞç,¨ç è–®$—¹·sÄ7Ô!'Ð󆋉ôúD|ÿ’)eÔÌ0Dk©>J‚i¨Õ{‚·õÝœ)u øñî޵œºd,?ñ‰¾üˆ‡g¡Ÿ·‡•s†áèÇÙ]ÃýX{eí«Çï4“ܼ+Êâ^Ô”õTwåéwÏɽ­çxsCÎó´-,¢'>äeàGŽUDk/2»‘¨¨£aÖ¿éméÜ»@ÔÎÇ´Zk{ñ1ÐØÚèàÁ¼ÐðüÕhµ_0~äé )¶ ‡XˆÞœÙE+è1{Måq›îˆ¦Dû&ø½j[=ÛðWcåð#|uýUyFŽÁ„$î{bã=‘é­31rqÖüݦL|F»réј åf6áy:þæHö¥ê¾°®!Wk³uƒ¿jCVñúù5Ô’8`Ã@¶åUEžGäKcßcþaï`¼ÂlÍ nHÍåÉüv OôîæÙpõG‘ÖÏò÷å¡°ƒ3Ùrâ7ØHŠw(3ïГ߱¤‚¹i.Üâ*yßp>c·|-®9N/…rPñ„ë©Å;`q°sè­Ê,¦T1ôÂ×yÍ?Ø8 G×°W™p{‘nñíøªÎ‚ýåÑã{9ŽgñWÑP­žQ'—/E\¦UÐc† ¼3€Çévq²g¦sðµÜ0¦Þ±x[8Å. X6á%Ö;îßqå¡V0X??«·”AÄ7£›=+g³–9_ßðLÂK]‹ù\qà¶¥žY"ãÚóuùÌr‚Yù¿èéOáV*é "=lÔPòªÌz€Q ¦j´1., ,âh³®ÝËþÞ¬gÊüÄWfîe£‘ù’gú†XJý‘•'¨ÑÿÄ¿{Ê–R‰é¸3é?Ïêø/Ç¥/4tåEìÿ¨¯åÑî(å8Ê:üþñÕ$Ì:<ªˆßœ¿{’ù‰>¢ \S ²éGjl-SPü4g‘D«¬y©)Ô8¿užß58üg(*KÉA}DI½3jMbX̬"ž(Ëóq0ŠúùüWy„?Qó$1}¡â²qŒØBž{•ŸÒ~¨ Ì"*çX_›«M?‚Ì…?^Ãuü)¿“­"¿}H{'ÊÀ};éí"å¯â(‰“W™Óaƒ½õ¤VÎËþÚî ÛcêKDÒ·úq¢ì0jßÒú(­U$wñ‘:ü„Òs•ký.fqÍ+ˆª+ˆcCPè½É`­ýƒ¯‰Ek8f/áª5ìƒÿU ΋©„`Ç,ºù^ãŸFÌÞ$p×&bËCü ›<ÊÛ4< Ð÷ŠN?m㳎;A¥uçî§âšÃzùƒ’%¨ÑlhÑô£ôeá@\äiÎýˆT¿W.²Æ¾Ž77äüNÙòi[…µÿ|,ªi9™™¨ÑÎ+qŽŽ>¹üh@49‹æ[Šx{œŸ¸›c¾á;Ú2¯'¼º7M#¬L‰˜€¾a£ÿc;Ÿ@\¦ÜÒ1~¨fCbq\X[e/ú?ŠÂÞ€o%—ˆ¼?9/^*ŸD ®ÐÒó‘ï‡ÓÙÆwgĽu!xþîe\D_`„ÜŒpVåðKÝMTcþÝ|úåA˜Oz ýìm¨?ÞñôàŠTf{uÇq› NlŒ}&»û];R½  /ÄŒ>,^"#ý&¼C—Ãít Ð+.ƒªU©+b…“aé¼ 9oë<§Ÿ™crŠÎƹF|ÆK¨€€ïéx©&Š@LJ‘‡þiTÞåxö[’ Œ#_)Ä$®`n-£=½ :ŠÅü]˜b¦¨§Gc0õG"挱K䘙=XÿhÀÜÈdDçØ°Ÿ|6»õŽû·_¹¯åäjŒß¾û‡ècŒ’x§àÔMøÄx×ööÏÌìÙ3ƒ‡bÅÝ%¸»» 8w)Npw× Á%$<(ÁÝ‹ë÷›ôß“ú<_ïísË¡}föìYò¾ïZ‹¼r;“·Î¡ÅZ F¹ši‹%Í52šUÊp ‰6š ;ÌFþšÈy oÒ¿}þÃw«]€QŸŠËùÆDz/æa®Uo2™øÂVk³'úâhf|3+U&±È¼ˆet!ÍCô‘Cìtîà÷!ØQ\Ië܇Òç_óo6ÿ‘FkÿñZiÅš­TWæ×VS7ŸÿÔM]¥þ|+,EurïËBA¿k¨3ynCEym0üÈXèUGaå§š'õ9Ebºý=Ü”÷j 2…äíÄú·Owúíò§À¯ÒˆS`êûC¢ç`2öú 2­Ñaø€f…aˆÍ*<Âôdøv°¿k£Í×6ó.?Á ïñOHn;›ý•,÷0¿»AŽô¾¼FûHýG,¥ñÍqê%oÑ$²tíŽíºÿq‹ìëuslóL¬í­{$»ø@]€¦ÕîSÌOÄÄwØós€´Ì#ÿp…e¾Ë>졺ýÖtœÞ\ôQ¾„½½0Ÿß:rc¦4¼b1îå/þ£7¶è¶¾]''Z‡E1åir {þùH|ÖRbüÍ(î"Ê ç+ݵ&x­Ø¨Ìà!ÎòöµÁ Åý^Jÿ’gš ?ÝE6çý÷ç¾gp’ z˜tÖë8ßÜЋ»íÈ m£àL“³ØÕ.ÎÆ¬ÎR®jz¢Tƽë9ˆ}Ê#í^ËkxZ·¹Öºœ÷€Ð¥B>-Ulj‘ ŽI°è{°¬¯ùþËÔí;Œ¶ä «àŸÁƒ`Bwà飡VÝMåv0¨àR‘þ›cªÑ`S:Rÿ1‰¬âþ5 þ£(¹Ì!y†j’ò ø[Í'Ôu×A¿;{ŸäìUu¿Ë”`"{ÃõOì­ÆDenëÍ«RGR•}NÿDêsÂÆk?€Š¨¹QWô»Çei)P|D#æÃ‰\¯Ó–sr¦Šèw¯’—¥.(lÄFªIf3ä$*¦·-¨àEÓP†-¤rú ^pÖyz6Éü/yW„ÖˆæPî*[ˆ šÈ{(]—r®Ò“Ùó£^2£ý&ü~bðè‹G¥ä‚vy´¹\q;|-)Øì“ó‰x+±´{¨ìßpF4ã™x«/—+èyÞ“ ‹Mh¯|°ø à?Îqµ®Ì=‰FýGê†È´D7‡•߬ØFUQŸŸ}¬ÍߪľÇ4ÜÁ¯Ò³æjs¾‰ç©??óàŠŸ+ŽOC÷Ýgä_ç¹ï mÓ7ëMÕá\np…É¢b¡ýÚMþ1Ûè ~•ÂZLþzDc•ô"÷Úˆ `<~z5¨Ó8ïí2X„ÎwÈM‡‡…Üi3Þ„ ¤aJOð’O„¬º Ü)õݧAŒÆa­+Ð!$ˆLaÚ´«ô˜ªx¨ó@/Q¢£¿ªÄjgõ”ðçÏõUr"]¾6%Ý×ÂíFýœ‰ÊnTb%`¦R…ôßugð(é«—k¾éuFKÏïÊÝÖcrÉ:}²‘ǪM¿öö(k/‚Œ«KýG,ú«Ä«ô“¿Z•ŒúœÌ ²–ž\/§:£˜Ó( û1ÿ£7oCQÞŠôo_†¶”úÁbtÑobÖ±úY_Ñ‹Í4»Ù¬˜dIyø–÷DY`ïS¢Mn'›þOð«#ŽBÔ†ÿ½Õo”ŸÓÅþý“‡®ø);ÕDZ/-+xp3Ö\ãhHŸÜªð'ñQ7Cÿj>rLnD,_ü­ú…9¸ó•gô¿Ê¢ÕÕÎÃËÛYÔÿ÷Hó%„ædOÞüª·rE‡ÕÊ/rˆ̧¼§>ŠÒrGBêÏOÇìÀÂL'ç(ŒþÊTd¸ð5½?¼B?½'3䆉ˆì^ø/iÿ±šLë 6þ(ˆ,ðåÑàVOP‰o$z‹ÿ°û<d'úEšèJuüÇy‘|£¼E›¯èŽ‘'”ÆÆÞíÃsÌàìUÕGjý"ÙÅ@uyNöE¬Æ[0™VXõbDÓÁ ÚÊõè²ö`ßÀ?ìdÕQÔYÝ‹ÿ÷û·è)¢sgãásâ#ã ¿ê›BE WZƒ*è\ïÀ=ÇO aןcþù/\å4øónð9ÉÐnµÆÏ܇ÿhëß0Y¿¯]Ô¾Rך7ëÏê4ßW”ùÅyyKË9ßÜÐ tdÔ–‹axW{®‘«ÌŒÝêŽÿ(ˆëÂŒh‡UðO½Üÿ‘ ]nüÇ]jE¶g¨³HK|—S+Ñ7µ£ú…®\¬éËÕÁ÷…ÿèæ¼Ýè¯î}¿&;Šfl’œ°Ž±„ŠÁFæt#=“·4ÔfŸÑœ%‚á _1)´¯y÷úSñÓH"˜,æ:ïwø;ò)¡êÈwŽÎJ>ç>ýÜU(ôo_«Æ#;(Ný¹mÝW8ЧªÈf¬ßþ©åî8æà?˜ì…e>.™_;[¹®ueÐïP×^ì§®ó±F—~ì_;xäÒôÏÆüÚ£hPªëíDуþ‰—ÔÇQºÂ ÊY¥€¸Cîº`ùAi4yôqbô8jÃJ`XcDzv†NVùþÒuµX®ÚØ¡µDòvÿ«ü|l²mª"¢‘éÖ†÷¯…Òµ¦î©ÿP•z CWDV&ET–#`”sÁŸwÄv]#¢»Ä‰ÿ‚Ž´¾ЕúÁΑìâu¹&’ ð3yH3ò¤Rt%]N¶JŽáIxƒ"ûx /0¼ x¦ò‘¨÷úó‰ZsìUTÎàA΃HWäêžù Ñoi[´wXÓβ þã2yÊò·Xä í"äÏ/8~ Á¯>ëÃð9¹À@Öá)Ga]—ÀϦVï½Þ’þ‰g`@ŠP›çÏ÷Ù]©»“M5S ÎN§~p O,#˜Ê)r I–t‘¸3ºQ•úÁå¼ý¯2væÿð“퉙K=-¡Šz„\$*ˆBážËgå5¹s=9ùLQñžæžþ%{Ðï†Ø„ õ*>Ã}=ʸ,TD<—&ê®DDI^áø®ÌnnÉ<$JY+Ë¡N.‚þÊ×HGÿö5àWQ «èØ`x‘³`¡q¨¤‹c¨øôrú9-tž’ý|=DmjÞ9%döê<ýwW+ŒöðÉÁÂ’bûãZÇŒkèz7ÏÂTÌ‘½Qù“1äSy!Îý}L™Qâ,$wÁÕ“>œ‘ØL±JF÷G|£?øUÔWåà{Fà?Š£6f^ “ ¶˜ü*-Õ;¾¢‡s½•ŠÔ¡3³û#ã³PñÓùèRÏjE=^^Øž ªg^’ÄF1••ìò±LüyoÌ b¼Øë|"›•Sš]SSì¡>çéMŒŒÌô$ÿÐà?\ч œZÌ4©Cx"süGm£5Þ§]VšÐ¿$¤­9mofúú–§.ÑâMº€÷ÊHÄTMÖwüß}ØíH£„öíЕ¾aЬŸ» “ºˆeàWµµ<šC-Án¯rÔP Ò¿=zNõ纳œuÌ éJ[ ›ðD$Ô,zÂG7×itm´Cj柜_kÁXL"ï@ÿÝ ú@%þ¼9ªJÐÝf“8¬†fÐ?ºó³(Yʈ[ØMÛÏã×òô/ÉOÿ’ܧd$-‰˜†Š˜ÌÿPgîû+ÖÑ&‚_5‡Eöâ}ÞŒÅĆ]ÚýÛ½‰þ’`3°}#õšRÛ|\d ç¯EWÂJÔ'"2?‡’©–¼K$Kžäœ®!Ó©£ÏÒEr…ÕqDô]À’®ã?ìþ%íøÉªDåËAâ[ã?ž‚‰Ò?’לÄJÿNýÇ÷î:®’MMM¶1úÁ ä**ÿŒÆ¼Ñ·Á7Ó}ˆ÷¢Ý>§Îk#ö~;œ}díçGMTFj-ˆ(Ó€O·'*8Oe|sЩ/ìY/ýqOK…]j…5ó{óáêóáIsá5û9ßÜЧ²ß‘ó6_9ž'9@`|¹¢åpPvÛT˜„à-jÙ£0%á?N’m$°I';’\]*äÓTu°XÀ^¥ ‚ƒù^x“ü#&üyQ"K7ú_ÄstBÝ´ƒŒ.ËbçPa1\®åExuúgÅÁóê@VéINñˆ«‹ow÷b­]ÌòJ̼Û|E] QRÃRWÀRy’mZ8ýn3𰜶`NE|Á[½õjGšp*;ð¹ÑL=2[b ªÚñ¨‹¨f7ᧃy:‹Âõß,ªMœ ‚*ÿñB”OA_<á;Æ)é…’.à…¹OäEåÛvqyÞZ2©¼tÛ*o‹Ð þâÊ&e.ç·J’ê(F ¿jK‡'S²ªR¯áâ*þc?þc&LÅ(üÇ¨ÍÆ“'4ÐM8'õçœOd‡’P»Î“¼ÁózSÿZ_ƒß^ƒœ ¢ÞûO¼¯Bÿö´t¬zI>rou¶¢#ŒÏ"šÜô²Ûì|SN)~Z:Þ«NÄM@ÊêÃŒ|VÖð6SÐA«/LȺ¬/cšÈ²­øõDV9£/ª˜ô²#QlC¹%LýÇaú_õéñ‰¢’„Ô^ÆSlE»•%õÓÕêo]Äßµ£_ä;3†i°îx¸ñ0º é¯m ¯.ò?©¼ì¨¦â<¶â®üÜ\qçCrùìľÀZæ‡Û>ot…CÞ f›JþFVÓgŸ,åŠÛí29QíFåô7+ö`ö«¾Ž§æJNeÏJ‹ÞçÑ þ|™¹ÕütüG'üÇe8 dä`±¨ÿ8‚ c ý—}³^‘GÖö|² 䦾ð°ñ˜zü{4kÖ4üÇCã6sÑÛÑ¿ý"ñGg* _÷æïŠwÎ, lQ&°s5íØ‰w`•|ÍÀ™–°JsêÐ×QQšŒëˆ9†yJÉCænlEk7•Ékœ{L) ýwçzè¿{lþ¸}úÉt^’c6¤ÿU&k<õ#ŸŒmøŽS!õƒE±øª5=© 8ë>¬?g3"ü÷{JñÕR’Ôä Ðýž÷¾7ù‡=ïãèÕKcˆÕ ®p×9ðµéðRñ¬¦F"›l²=Yp5y†™¸_à^ð«~Tüöç—C™xŒi†¾ææåŒf¹…ôO¼ Ò”ù5­’`ÕP`Ä‘(3¡—IJ[û‚_€?EY>9Ú()œûô÷ýEíWÉ ÝLÿ’.ZúÙþc³£ó£ RAx\ùà?açÇ«žAµ]´ÂØÕY´Ôôoƒî¡7Ó„Zh˜+Rá§®Ó‡èÃ&ˆe>€«ûІð‡áÏ»P ÒT´ëÄÝ(Îÿðg~Tq“ٟ罌£l@\ÛWxå¾ÂtÇ6£~°—­ìÿþÝVÔÆý_ÿv쯈Ȕ|±8•ÈÝcrŠ›÷7"¯…þ‰ ”*ØæKðI±œË°—öÔÖÞÄ™§à‚ÏÂø}ÂêõÀ6¯#:ž§u‹dß«`ö‡’]ÅWjXÔæDŸù±t»‰ÌÉðöÜÅOxΛào£Ävå{¥¸aüÇ)£8Öb—\ä /™Añ@ާ¯Éî=9?‘|ègg6þ›õ–ˆB`(çñãåÀûb€K]G1µØXÇõ$µ67Iò£ÇôÏZMþq ß¶ ÿáK=eôÌëäCqÈyy¹• wÀ mÕí2v.+]¸Ò¡gÊf6c^àIp¢ÂfVT² Íõô¯j‡þj+ªæ±(òÒ!¥$þ#X4u®·R‰¡½æ-=Ï&¦uüGE33|ôF枢Ò>€Š¿tðP-?‚:ù¬è¯!½åΡ¿E\ô÷‚¨#p¡cjC"¦f²;9y7#§•~+¼þ+æ#Úë1EåOê?êS?ø˜ü£¢Ñ†h03o³«¶+Lþ±&o”ÈFÜ9€'‹~ýîYz¨l›#KE¿[Êêe]A¿Û >>®åBR]×WìÄgð«T ÀÕda±÷ï ü}BÿöDÎyIÿ«dÎßýÜeÄÇ®îUói´ ôs¨Ë*Û˜X ÿq’ùçá+¬~¼zc›fwYo†Õ|Oýyz¢ŒU>j]Egm”öXÍ‚ýx°šQœQà@óœ¸)UžØ úv[Ä©Äa>ôóEå ýKžc=ñnAY ýnQ»Û°)÷ñR‰u»1ÿ|œˆÊDÜnÚ ô»íˆ|·ã–É¿„ÿÈ"ž”"1Èt#v &R? ó?R+íÁÒnŠ‚üd{0÷ þïɲ®bßóðíÀ?À­a7jëãµ.‘6k}ˆéÒȦœûöœŸôÎSx@™¥ÅxÑ•¢»ûêÏýÌ…Ô_–1cÂêw6‹XC­[f4^sñÆÑèÀ«ƒ’ÅEõþ'Þ+ž® ó'8ïø¿ûpÉQÛþ÷÷}q´þ×õƒùÇ>5þ#§¦©µYs;õåÕZ!ýÛc*¡ý™ÿþ¶ýzűAÛU­Å?¯Dj-93Ef+4wªÉ:jÏñK¥Wý£uþþ³ìâÖàõj/yî'D)½¾rI-¢<ìc€Ø%‚ÕSÿåþzO¹¥Ôªü;êÎh÷o§ ·º<Â.ÖÆþ÷ÄDñò‡+ýõ‡ÝÈ?VÀË¼Ä ¯‡‰V‰ïfÓ øïm ÜŸàÀ¿€5,'·|~”¢tDsuA¤„ì€f4/ÞÄAöp¿YnáþÉÇ¶ÕØm*9´‘ìâgu6µ­Þ »¾’“ï‰ËVÓ“þWÀ¯¦‡íb^Á`_ãF0§-´Ÿó··W©¨¦ÇÍDŸ›{LL$æ—ï“#í«OùÈ÷<À£ØÝ.§ñïÄ(iZFXÿ1C£õá¾’‘µ"¹Î³lˆ2ù#¤+ú«ÝZ°WÖ<‚7:NmJI¾‘ºQ½½óÍ ½¾@G!mCL¬äp|B ¹4Dål#uÕà@VË×úPØï› =¹ÈOγâI¾3ZÞ.ôo÷]*äÓ\ê?ÆÀÝå‚)›ñÓóáhêÒϵö}+3+Þ¡Üõçw5±Î=P7Õk_†iýÛˈPNò¯…“ªÑA¡jÁšÓ ظMËMþQîy«¼B/ŽVTÀ  Þ/ö¸& ¬§Xét`Y™ÉB×+7¿yÒƒT“ª™D?vÿÝ’dWµè÷ºÏ(/ ƒÍ ê`ú¦Úd2ËŒáx‘TTÀÚÛþˆy‘ Ÿ£¾Yo:úÝÊTÅù‚ÍŒÁƒ?’§™}±ŽÊòTSïÇfrk OÄ ¶&Ÿµ ÔnøPZ íL)^æÜÁJÊeš+›•©%׳äEKMWà/Æ&îcÞGaôMðs¿3¡¯ ¦ì*Íi`…¥AÈ HT ¢¥s=oð«/àW·È”uã‹ø@¤²ƒ¾êÉé_²˜þ'‡Ì¦]ƒžðš.]}ÍYFYÓ—Hg0Ïk4w•ý®Ÿó~ñEx®¬×›ù˜“õF+5¨}Ã`à/ ¹Ý‡êv=–½é­ïʼ¬´VM£XkjY ®YvhÿÄ êϧˆ„ÄR#ÈÌ]to£µþc õ穹ªéÔŒµ®RŸÒÐÊüóTpóÞæSÐäÝàWE^žw{áå¼ãÿîÃð«PÆCUÚ‡aC~î*ºö¨yè¿[^{§”g·w;ÚªM™ÕHÝŒÆ+´?ATÖ½äXJ?ÔfÄÜÅ@âhYXs¼òA›Ãü¨ÑÚ¦R…W¨üxÕ¬!ùÇÑ›w¾¾¾¡"õƒyybÓE'á.ŠÀ(öß½‚Ÿl*ÞcãöÃ*o ¶u‘5è_ÒL쇟{~Õ ¼h(þÉafª}ÿêúicAê:a¥7á‘6€ˆÜDÃU& 6™s ”âØD<éd2±vßÄ­GB|þ< ‘÷ ½ø•…õ?€ÏÞ~à$Ôv0ˆ&ôOì|+"ZÍáе=äð@Áð®Þ¢(*Îm°¾5å2›DÖB^Åwz1ÿcÄüG]ÕÖŠ,'bÊŸœÞ‰ûzªûÉaøb»ŽN¡3ÇþËap­%x&Sž¥þãk·R¯õ%ÞÍ$ÁB¯Úœ•&<]ŽÆ\Ð~ƒ?ï"ëÉcø¤-D±Åàí‹UDÔ¿ä,ý½Ä¼÷dP‹lèdVÀLõOf0‘»U`AbÁŸûÉ h›‚È|®óÿ´`%=µ»ÿÈ? ÁÞÓ]ΣjºÑàWµè}èʼ½yô€úÌôò%Õ׋xR±©–û†ÚžåCÿÄð“Ç4üG52¬jdB ŒD©ñµÀ~¶PÿÑÑlD7Áuæ3x‡)Ôú ¨ÊKöñþcüG1ýè@ØM¦FÃÛú¡Wn„Ÿ©fš¶Û×pežì~üGbz^D¿ëÇz½Éqš¢YÞŠú8Àž$¶7s6…úóºòg¡û œï2“À—­lFÑ´‹— K8¶—ÑÃô'SX!ûƒ× #šªÕÒ_lv^^aê?|ˆ©íyTô·%ÂÈ*9<‡4™† OíFöQŒh$ö4=º,æ€À¨ŒËÎõ¥¢ÿåÑ̹Þåj€9^¹}Mÿ’¤<ϵÆLê‡06Ù‚ÎÝúS3™†&¦5ÙœLÕÆeÎ^ÀaäÆùıֹ•³Zq2ÝÎÄ%•¸r?½)õƒ¹à?FÑ›ê>Œù#:™TäªSQS†Þ2{eËݨÂYµùèdU—ô¢Î(æ:ó?¦¢ßíˉ+Èûz6~+þc,Lnª>*™µ¬vÔ>¦/ã2£®¥j•³üˆVç%üy2ò³:ôOü_øŽôaWŸÀ¯ÂT£;Ÿ@T>|t\d"lÔQE´ÇJqv{¿£8}ró’a&Dx…ã×<îHý`‰2zphÉ´<ðç§À¯ÂÐP‹ªéÏóÇ+ýõ§É±îS±ma1›é›È?ܨLÉ3›(ª‹Vbú«¨ MǺ+T¯À¾â‰–Uæ¢&(õçÛ8Oo±eͰ¶ƒ…"ŠÐÎ0߿ƺè¯V¡¥üH´í ƒþ ±íP"•÷ð{©CBœ£ÂúNF›10RÿC逵¸€ÿH([¢Ï°ç)+Üõe®¬4–ô(]µö©¯'n€þªO$»øFÏOö£݆ˆË»Ü ¬øÕ:ðœRÄÁöLªSàGTjèkÉ?(ñ¾³fBú_¥ã­œ†b= Ú¯¼ICx,ºƒÌÅÏ ÿ‚Ïp »ÙE¦3O§™¶‰P¿»P™®õ3K…ÿhƒúê Ù]4öüáLW¸ =§¾ »ì$Á¶ÃÜ$òˇwxþ`.òÝáøAÙ—·ÜƯš’#e ÿ¨fôU\72‰[(‡J‘\зruçùûd7òKáð8u™˜€÷N‡M{ Òÿ…Håpïhô»*m í;ìæ9Ùc/øU§[p/q©ß,²ý£~ð©òI”àË¡[zrIϧ_{î+¯½¨¡ @¿«‚Þô¢7ëQ2à |ï=ê!vÈ|d^'ÂÍÿhGþÑ^è ðaY•Fc*½mÒÁq3õé­ XÁväFè_r,4üy<|Ó¾{¥~=¾DTņ] ¦*NŸà^N7ЙùÉEFº£gC™”Ìډǜ‡·ÛO äü‡/ö9 >p(eh—]¹¨øq~K€ƒU•É?Jq§ñ©«°g¦\GÖ‘zöJÔ»üþ”…jô¬x KFè*?ÇäÎ0õ”xÚ}áËœPþí*/—èQ߉zîÂtûR,Oó$˜]F&\å`JìL#ŸéC$2Ÿ>_]šþx¾ÎS}X¹¬àYÔÇå’ ÄüG)«>£U’žF%z1nÀk¬`F˜?¿«en‘éÑ_Õáog‘]8ûȬ2:ýÇyêÏGŠÌØ¢.x,úyÃ…ŠýñT_¾¢Àq´õ­6Ö[æ]õ@Y¬R?˜Élbx˜iykž‚_½¹ˆ5› Ÿpgð¿øíEG®0ﻪ´V~Î.‡^c,¦¾ìPÓ3Í»¨vC)Ãnow” aÏ+«Þh„Î\sxÒ?±o`=P$×Òi˜u ýnmm æ¯VQ 8Ÿgè5|ÿS üÇhº÷#jt×7ˆÂzw¦Z&Æj u˜è-vG±ÿÕuæœÔ÷9‹Û‰@æç‘•Á-;‰=Ø“WØC7ìOô»C„…ktÓ†SébW0,ÿÙƒ}½Îq°¡%äj¼É]t$d$¿vÔÄT\±“'Qs$B¿; >.V³7™öm°;ø'ƒ¬ÆV¦®æßc"­?¦Î€‘îÏ}‹ŒÁùnA–‘e6Ú¦†r*º]_V—ò;á­/³¿;0±RVMÍÍ& Hÿb  ›@¾vþc<׸¬É$ÿø„9Äý.Ä'h2Æ+"MÇdú_õ¤!okÍÕÝÀÞWà‰¼%ƒ¡ÂO‹†mmŽ:‹÷ܦXUO@ ß!Bÿq™ücXÀ}>u¥P«îàoÒÿ…zïöhxÐGN¢û[<ëÃü“_ÓlõF¸£7W*ì‰-YÁÚï‚Ô¼‡¿¤ÿ®å¾=â8yNc3qu)0ž.ä;ÕÁ|æb½'É#¢‘ÿ~TwçN>³ˆ5^É=œ:_Y‰ÞƒAðçí©v>³ -î@Þû^öì H òLàW•gߜŎª†ÖÀ—§ÑÝWeü[c.}ÁëQ ¾åi ëýàËà¿'È Ò-ÄGH~¼Hÿ mûf½q¢)«üÁŽT†×ˆÇuÜ¢vn%÷6ýî^¼‡ÿÃB>ÒË b³æAìs£ 9ÔÇ0ÓW3Ò?q-™]ùX·ýÇ:|e=*!<©ç. £°;šó 2’9Xú¾fcsµ³éçë‚Ö8ØÝFÑÂùDN1ОÔq“XçzŒØøhè¯r¡lÚ.6„Γ;¨?ÿÍŠo^54XõÔ}p¦;íÀJge¾ÃçýîÆååÙÖ#nÊCýÇÝÖ¤~¨õ±ùŸèß^<ë½q¤2>óNY 7|ba銞>‹üª—wú3Ê m´HO…W;êj31ÿ<|Ìüy0½ÂR’Õ´†¡ÈÊjõ¥Þñ3S© º¡ 5MÉ´9±=W2ö¾Êÿ¤ÿnõç¡üù[Ç ݿݤ®î˜Z€ùƒùµkJev{ƒ£ŠZ¤©°º…÷ŸÓ_¿òMɱ+¢&2¨iÏ©Ž¢ÿUkò^šŸÚDÍï|žÎƒòƒiÅNžÏkø[d D5½]qL|þá&šs>6F±þüOx„ÍÜB\¾‘¬¡$ùGYü=½üÞ£)ÿ½‹ˆ/¦‰?¸¢¿ÿh$ú]oaOBÚ þå úò%_2N{é ?HþñU´!6)£7ˆÔÄWcïÑ_U”³‰<‹£ÑèÒrƒ³~Ÿg׺“Í&ÿ˜¡Œdª,é0Ø |*0W~ÍR?¾PñpÉÄöñwþ Êߤ/&ÿøÞ]ÿª4R]È(¸èSõ¤¬7oôP?SÓAßBô‘}}Â?±QSÙÏÏÔê4Õ"ê,3Ö±?÷•ü£vð&ïs]¸­gpƒõ¯ÚKÍF›Ú`›O’uã~«Áÿ7Är¾¹?‡ã”# ý:gÁÎL±r¡Ãî&2•ù!|ƒ}býå'°îûTtû„d 9‚WÚ‹ú+‘ļ‚ðµC“á?Fã×\àˆs¯¹› à~¨n¤16Àò³'Á¯ª“»á?ê`g’ ¡¢‹Ï!}UbqÆF¹.@Eü )9yCr˜ò“ÁƒêšçàÏ;Ó¿d-Üs lU+h›’ð“û•ûß<é.êrÞC°b®Ü›ÝO# ݪv•ìŸ@é”%–U…Õ¿óoW™ž˜!–Œä)Ásmâ7ëÍõøÆcx¤üäñà7NP1>ƒJøáFZ¢û¤`Oq¬ãø£ ÷ÉæËVÜÁSæä0¦ÈWaªªÂØøUMyš[ÅS(OUËúÛÙc%ãÈ`6‡ñžfN2,p¢¦Üù-ØŠ#tƒ@.]nw¹bi*ª‡ëœ‚ò+øÕ1tZÓáÏ«šKÑo-4cÃмã÷I©üxÆï»ÝÌý(Nú’Áy€Ñæ‹Ä çýz+W4»/P=NiiðÕUú,~ys%^\©†î‘Y€üã²ñÎ(J67OºXÍŒ¢d³1ek*×[ÊWzeç)<®üNþ‘‘wÌ ïQHßn¸QqÙÚðt1XôoïoÍ`~íPê?b‚_Q ;@}o¹FçÔÖ“nbóŽÿ»ÁŽjô¦r~ŸÒå_÷oF\¾WMÿ( = é‚âíè‰úªèké¿{Úù%QùpαL›,à=~£ù=Õ®ÿ˜¢hôD/Nýù}µyÈ„ª¨¬ô×߉Å>×#ÿ茫«¯)ô.J-ö¦œ¨!jŠåàW£´ÜKeRS\…IØ@¼0“§—åÉ?à¡v’E4!OhMýyBt]QãÏçh¾ä/ôÄïAD®›GË”iúÊ;^‹)cvz›HýGJ¥' ò3"ÑSvæ€WåÊTìÎ9ø‹,ò Órœ¦ä“ÀÃzE:ÿ<š¶ó;+œâ=~.¼ð[ð˜žpÊ]ÁÍ×°Þ~,{6Ïü^1ó»ý5¥¨Z‚ëš§_ü*'σ9œ¼ ­é¢ØÅÍ5lÚ}ÞÌ¡0ÞðN{Ä@-üt ûA-W&híñŠ6ÿÑ«À7Tg•?±éThðþ`xM°jödÇYhwz‚êt3úçƒv¸P¾ýžŠý+r²š'94f-èÒfbýköÔp}/ÐõŒrQ±Ïþ ÙNínÉ©ê$Øx¬óu|Xîð$ùÇkê? ÀS—1¯`û½©‹+ ~å ÿQ¦}(Üx¹.ý•Tc…è¯JÜÁ3øb‹6ËâÔ’œ&ÿð0«P»æož„¨¦5 F<+Z^o´ZóeNüþpóÏû¨ñðºû9¯m±º•å=6<ÇB##x±9ÈLk££GN92†™ÿa*þ5އ@•L믥јÁnïw´W³©Å¨ÙEMò÷ºZD|¯wëÀ¯a‹³ëkÄVú_Ùó-á*4­>õçIr~mb¢„¦ìv[P‘ÔT÷¥ÒÛ¢ OŠMIÓ]‡øÂGZ‡ÇóÔÖ7@D<É^&cÓ¡pɨO[Á„®€ T$W¨‰ÿf&NÄwiÿ×áÚx”?ö¤%xyTC\iKN„›ë¬cý*Â37EœI¯©ÿH¦ &¾9ÿˆÁ?Y/L§Û/¬î‡¥M)—sÕv»FDã3©‡è¡5p¾_¡­¿zLŸáþDÏãaRf•¯ÁcŽ"NoCötc[ñOô»Ü½Ú¦¾ßUÚ ¥šDj>prlsìe˜]A²ŠŠ¿røWÞ«@ð«ÇXg°¨éìÅÑN‹È³T–jíñâÉÀÐÚâuØÊ\b„×äM±oG´¤ðçYÓË퉚«ýÏÒp¢B‘ƒÐ{¾â¨«!ÿx‡ÿèð‹\‡§\ÈnaX§„üú˜¸z •èYAÙÁöÌ×?ð¼ Ó?1<ÿ±H]‡7jÄsÜÁÏ6&¯²'¨T£þ¼1õ[éŸ(Ì4Øùút”Ý ÒøŒ+{úA6’“ñ2ÜsIªÚØ[W:ÏÆGÜßK(vŽYãÁÈׂç¬i«A…±CJ<×)¸ö¹2ª³ùtm ½[‡c üGîA!Ê_CÅö&óÕ€A†²Õ“üÃÐ]35JàÊdL»ÁóL®.6½Qð¤t= ×ùf—hîÉž\†< lÄN²ÑF]éÿq„éçñ¬ (æ¢mÚƒÆmì´=ÿÃÑ›(ú(çåe#ÿ¸þZ,dWÖ¯Ð_Öx@–õÀˆE>Hÿ«X!øÕ¦¼šfvêÑ×à¥{£rp_KŠÿðùë ¢ÿŸøÌ2nŠÜto«@Ï—øôKœ /?O¹ µ@ZË4O@ÇÐd1Ú¿føq"'S_²¬záAþáN§È·T€E¿ÛÐj ‡”…þ%“ðÆG»d•ƒMUö§7ùzTŒ§¦´˜ã¼ãÿîÃSG9%´;¢ RÂW.EõZ>ߪyaƒ³i7•šœÖMŽijEµõ;”?'¢ºPÈß»éX­Í-@së+ÅæâæP=”ßèTUýîWTÁµ¾y"[<…X‡•y%ºͤ¥ÿn4½¬Z Ï…Ek±Z\T£’-8g”óðØú­D»“à, Ñ¿$¹>Kl'j¾Ì« –ßSd#¢Ô¿¤+ók}@˜ÞP5²G·Ñ¢‹ØºhDKÕÉ?âcÕe‚o#¾©@øó$ÊXNàIøøX¹9üL1T#Ñ_Ý!V:‰…±+gr3µ±‘ìbLm%?áŠï¸K´‹ÚëQŒ{ èpY¹‚ÌÖï¾ÃîodMw±…^ýßy̯ÍúúÝd[±É@Æðë3ÝSu;ˆÊç yÌŸdK;ø“.¬‡ÊIôÑ"š 9U™­uå¾bâÃ\¹º?`fÚÃÔHÐôW—µxÆ!,Ày„ml|I2±¼°>ÉonèuÞqdÖà?4ôWƒÑ.%’;±þÓx¶Ëñ@›mî<þ%vq?–(?þã÷{¼‹Î#Ô„?Ý+Cê?ƒ7m¤Äö‹ñ²˜ÇQþ‰G’ô’M†É –/øUø¾Ûa¸É©äÃá5ÉÔ8øû®x/lî*-ÒÒǽ€‘‚zë?Œ¹°É;¨ Ü…Çh„¢i5¬OFjô.‡-À´üGÿĪʺ•¬´:~¦8ûß §‡ñYÏ`lÁIi-#"ÝþíLjÞÁX˜Æg|éEžÙamÈ7Où€¨fv©‚B‘{™^;¦þ£9Ö]‰Hmko„®äWˬàÝËGô“õÆÀÈß ñ¥©BoŒµ1•?XÓî¿»¿pŒþ‰yöÊ$­>Y‘])Þ•,(€]o…w{BVy þ|/9Òlí®yö÷yYC½¸óÍ }äI`n„ô/ñ¢zÍaœÅÄ&:­ÎÓ¿ÆUëÆ2™€d‹âøæìŒÀõã]Õ«àßà^°¬]eFJ™~z,\òNe7v°+õ‡`„ ¸}CãVy™¼ë¤6ô›“ \øÎ3ÄO%ðØ á7V€¿Œ5*ÈžFbk%ù‡fƴγÒî} Ú¨%VÄiàm‹åŸb–óaVÖ+·©ù¨CÆPM+…½?ct ;Uò¢BôP¼ó=ɈcvF+ë…`ûvc\’FW‘ÒÎõV+OÔdÜÁSøiÜåJ÷¡è̼¨:(­Ò‘Ä »?ýL’Á~'‚e(ÁÔÙM`“­É?ZâÁ3ß:Tÿ|MñÆ”i8F°VÔgQ^Ìô% |Ã<‘Ît.¾c–…ËBÿ’Y²ŒÕÅȃÖ#=ZfxZoä<…”É̯-êЛ8TÓo,oø?|fQ³ºÕÎ%½é°R½ñ:¥<‡ *h´Æ ÿ˜DöŠ}j'9ïø¿ûðœü#4㈧ T²~s.¢~%’¹|>j²ƒÚy%/«0%³–¾°ê~u.êKñ7)+á3Û‚9$ׇˆ=ª¦eSÏ+/µrÂEëIýyùŸì¿[t©;üyM˜œú,Z)eµô0‹ED^òi|GÔ*äO(ï”J"ïa+t¦bïRÊôä4½ÅZâ²Ó`=õ©pï!²Ó…âuî¹…æ©íƒ‰d׃-¤Šb??/À’³à?bñk!æ¶×žƎ‚ÿ¨~×®ÿȉçÉ-†­ŽMæµ d:ÜÍ5+rvm ùL.Ý=Òþ‰´¹Øææ0AXÀ¸ðç]xŸ33éh±}üÇ{|’/9Ãqìé"½ ýw#b»íøMiªæ&Û°õ»yøwôWýAìè3d¬ÿ^V|õ²6ñw|ËEz —×"êŒlÆOÜ&žnÎÿßñ65Ñq þÃFĪ`vÀ²LÆÇ¿§Ê·¢žÉùæ†>ž;Ž‚ÚA1ûðÀšçå=ßÊ®ÍEÃ0nr&¶ý­Þÿq”|¢¶È®yYG6÷ Ï™S‹þÚÓÅäcAGÓëžÀ~Û¾ £õ Ī€qÂ(D-v ¸è¦x‘õ0Évÿ’3pÊñ¡óáχ{ ¨1ñíôßø;GàaŽƒ_ùÉÜh­ÎÊWDæåé&èoÞá»1ÿ|~: Þ"º_$“sçKÂÕW“ãuwóT[‚y•¯KÆdöµF øŽýæb3§åO]vcԺ͆Äô%Aî—5½C`w"ÝùÜ!ʲŠCTÇŽ[ì—'lÊ$£3xU k.ùGtTNËPƒ­1šcíÝñÀ¯‚ÈÈ’£9ó Óï05ýw/TG{XEî{-(‹Ò‹¶ö8¬¼ÝêãPÿqÞÅü¨¬Øë²æD|åP ¶°ø ±ù«©kŸ†µ÷¢ÚÏaÅ3÷ÀO÷5³¡oXƳmVº5‘Dz=t>‘ e·VˆÈ¶QN\ôWÁúD柗‚j`“[3¿P‹^‰ìè ¿«C'¬5ò=œ|9=ÜL)úN·ÇÓÖvžÂÃ!øUZ,GìHzýºÑ‹Œ­Õ—oè’hZuÍV{ëYRM:’%µR3¯ã?O<³y+_S‡R^LuÞñ÷á•£^ÅUrð«[ÿ†î¢šC¤Ô.*6º´×1mXh§ÿÁ0þøÿ¤þ|hÍ;“OßLýG,-ž:™þ%M¨¢9´š?Ù¿$ØÈóù$:‘±—Ó׉¢»’Ksá Œ§ÿî@â‹óQä?.ÐI¨„8ʛⅵZ@T™UºðÔÝÅìv¯&±nêÏëˆW?¾É?¡í€? _±’8~úÚ³Ä!ð#ÅÀP2ÁlV¿j‚ßË­ý&†ŒhñJG2àû¿K=—£4þ£;ø]=5VïxÏN쬧mëõq‘òçqµ(bÝÁ¯žpw À×ÜÈrâ=F`gk Rú€òEu|[?Oï.VUFü¿èðçYx+gÀžçâ £ÀÍ}½¡x*6ßDã ¹Ç+½‡ñ/Ãù¦ÛúiQJ‹È jkÈw&ŶÀûž&3rÁúL%ÍÝ!.Òÿj?þ£÷û¬iªáXìF=½‚óÍ ½Î·ô¿:IþñVïMl\Žcþcžž—<«1ÿ_-kƒõ‚ÎCâdz¢‹9GZY‡úð½ ¼ÔAÂÞ«$(U`-ïëc¹ÂzDðÍé¸]Í}¸ oê?js•vÅD9"è9èJ[ÉY¢ì?:ÿ—VS’9MO[M_«ðçAkÊ£åº$ƒAÜ]Í=Ä¿ÏCô»©Œ%xÍÌ`/É&üd*|æJº&„Þ­Ýÿ …]¾ÿ8Šïr nNý`"ó5TZÄ£ƒø ³õ$s6ä85a|ð1éðy'ÈD}ÂåûEAêÏplýntv꘱Eð¹nùuÔñÍèÖ9:1z£ßõ#óX.z'ùÖohªFÑ?q¢óòR+”‹øÇâ2åÕN"µª¨L¼…‚~÷õ½à©+2v&ý<²ÀöÓ;$l0ÌP1ô©¥*ˆúÎõ¶á?>ê¹äUžX°¼"bR÷Þž™ñ)¬Ôæ7W3c| Õû©¬¬æã6v¿.óYüx#»†äއé¿;K\rîße—V’=mIþ‘‚J:ë1µ° ^·9yÖvcþè(U[é¦xœ9O5ÍC² Õʨˆ¦ÌEÖ¡{{bšPÿhO²EÈgº‚¯&ÕoÕèÖÞ†é¿*OŸë©n @Oý>-m©Æ¤FŸÛÅ|‹¿y'f¢¯ü¢ÜXLwÞñ÷á!ýwCµ‚¿(ƒ•¢Î}ú¹«0”;ÊYµ´6•þ‰o»»ÈÇ0Õþ»%Õ3h:Ã3Œ?^ýüù:ÔRÈ@.‹_ÀÄò¨ ”hÔTt£Cc ­êOöß-(vÂ<°HméUTo dÒìCÐ_¹ƒ_]Qoÿø’þïO¯)ÁJcq›x{+xÉZx…ü²8vÉMøbS®S6ÅŒ¿f&ç÷—î©yQyЃ¼`'oßlâé+à@шX‹c¥ì>ŠUˆ›m[VUï©ÿH«tâ ‰Üz:Þù‰Xêr¨d{“ÓÜ&–>D¼®ao›;ÆbÏÒ†Gò´kK¸²¶àL×É|ˆ8[~46ãá™ €E='ª;N¾„5õÒG“8¾³f4¥ŒšOÿŠçÊ †¸˜ºY ff*+làJ›ÀŸw“‰éàëv['ÓyÄôÉšÚû¶o$õƒí¸ª øÝ>0îA¼My?ñO7=®Ø§¥AëN•/ÞÓ.¾×_ ßÑü¨ŽØÚ^1?8‘¾,%@`¶ã‹¦`¯§Ë`F;‰jG£_½‚ÍBoÛ h‚ ¦¥þÃþ»¡ÝÿþºÔmêp1ŽL4èÐ;®â6§I’àIUÑ-6jå'&whoÇ‹¸Ã®T†ž'5ɹ¢¾ˆns«±¸~w˜O²€÷øí|dÅá˜ÁD/¤–Ô¬5ÿÄ‚º±ÀpZPã˸ ÀL>°–MLç »‰¿«ñÙ%N…º¯bdW)èsµÓ(DÞj˜à”V õy É?M@ìúA_´Rièv‹³x5\ç´5ôo¯$xbd[ð£{r+øËbгF*k¹™œ©G_©Î;Bå^ó8•«¨íô½ÊK>6QÆÖ{9/ï7e›rŽL«‘¼N½ä.»süG ü‡YºiÐ11×e”SƒèoÛ›ê{*ØÉ?ÎsC7/š¦þ<ííAÏ™'“\‘”~¶KCújŤC×üIrs3SÚ‡˜ù‰û}8{=Ñ÷–KuìÃkçþ+~Z.ìR3NUª=wÒ7¾•¼ª#ާ¨ÌxH5bsêA ó0OúÏè¦ÙÑhÈYÍ&›à!Ês&CU'é¿»ŒúØ“ôd~FaëœÙoþŒY)ñ¨¬bu³‚MÃjO½}|ë,{qIvdB{{æŸOCcw÷BäÜÁÿîÃmGí0wùǿůPX)~jqØà‚Ú=%»½ÍÑ‚úó2Ô^d¦éÉŸº©êý°ªvG±sâ%üGju†ò?]‡þ»OàTJ:ŸgT.!’u9mé_’W¯…*Ãƪ/ìG7ò€(âW×Ñ™Uwˆ|÷¢€ôoIENš þc‘Ò ÞʦX²âWÑ]D¤; µ}µåÚÑ Üe7Öyì’U[y¥ÿ,ùÇ#ᆥ-§»Eê?~SÚ2ó÷Üe>§¸ Ÿæ‹Ê)-þc?Þà0>`Y@y} Ö!’]Œ¯Ùš¤þ`嶪8±æ Jvþ1IöçYJ¼o×Ý«ð4ˆKû %´÷·÷*©,ª<–0/ö< |üD2¸`}‹‰í_cúR¿À߸‡z ÞÖQ]‹(£™„j¾»ŸB®'ÿøÞ½­†àg£Ë6º)ök‰°ÌÍXÓ—ë;ÏU—‚oqáßM"È?Ð!rÞ¦á§a‡r¡“YÍÛ<Ÿüo::¡Åøx‹‰ÿØKÆ‘¿‹½åÌSù6e±DaºßDõÍóAã<}ÛãÂ'sE]z#¸ô5|ã0¸©bàWñ™Þâ¦ÿ®ò þ#ÞmŸ~]~Yä P57P&WêÏ Å¨¨›PsŸ‚ %_¨G¬FËã näŽåZ=•˜'^:ï÷üy}P†zœ+KÇõÚôO,@`W¢‚ýtyKoùÊÔ~BCU›J“2–ÕØ(ÆYeŠLÈü¨]a¢˜'Jú'fam~•†þ%¥­tÞa¼&WKau4Ý­ÖkðµÎäºD.–”þíRN`6’'ü沫rÿ#ÿQ5 b[Â\„=iQý¬pBªÕñùè¿[‘ÝÞèèK÷«j(xO¡>Õ…BþÞSæ×Úõƒîøy?ñD2ðÖ‚nz]´hZqµšóyFeáÌb> njK…Ú¡¡’Œ(Âþ»ÕPuy_]ÊBŽÛÊUÅMa-÷ãÿWáGRËÂ`FmÄbêkü·F|Koô»½£ÄtÖVPÞŒeVs5Öó"‘ÈWÔžYà+ì9¶ éU «[E©ÿH žÍRvìK:–eÿÞP¸ÿ‘ÏáÅ8‚Fl%ßQ”úÁÈúïÚJð ðç—a4,GG~¶06v,hSQ¹¬c+ ˆ&í½eÔvoú®þ*ŽRN͈¿™ƒÚÙ®ŒÅ?}tjÑÀ¯fÚ <óŸà‚7ùçñú(öóÝ\µˆ2šÑLîLüœLz“ù?àgš²ó­@ âðŽ>ÒÖjÑÁnš ûóžïÂS•¡³,t¨ò>ô_q¤G¿;•¼oÚ€|ä;ˆ3fp§ËXaU öN!c؃µÍ…?ÕžãÈ%›SºTȧj1ÏŸU–ωaßáÿQÇà€ÎHýG~ú_%„9o2…°ÙMò€…2 ùÇ"QO„ï‚O•¬æ†XÅÙ—ò8¸Ýiº=%@OD-YW,Ö ó%Ú¬žÌD_%Ëàå^‚_ýJÄÏžÿñmýùp5)÷çî5„g¯(ßèÉèÌµÄø•Œe=Фðµo°a~²º¬ƒä²)a~âÀÖ€T.Öµžß¼;DIò…Ä)Õ9ôkt˜ò¢ÿnOææ´Öã?‘\„Šm¶»_yâ—7ß§ÃŽ’Âô)¥LUžày+ÈkzmÎÕ.²ÀpÉ=èn˜…Ž WA¬Á/Ò§«‡‘ÕS5•äħe!|r*ùI¿&º:ŸÈa圚€ËžTó€J÷DìóTì¯ Ÿ0Í(Bý¡A½…·ù+ý¯¶1,æ¨t4÷ñ&Ö_ëÄùJ&† &xýßÿ®+۵œµàqån 7Çd%k«‡»~Û: 2›úóÔÇW67Ë05¹ÈV²¢T©÷[èÐý÷z'”®ÚpQœŒ{oF ý=T¶“ûí ÿC×Ä>æ@æ›ïñOn eññÈ9ï@ÞK™!õf­®Xò÷‚ÿá¯W˜ø‘ʹ31¨LíüÝÏ]ÆWÇ}å:õçséu_±»nv €ç.Š9¬|úIýî-òÂŽ(Kê§„Bÿödê$å©Ö4¼¦ ÆªòS×ù›XATÿ,=—u/‘H®dвëCÁ¯*3)pý£Vÿ¤ÜVê »{…=ÿ| ׯ² œ¼Ýw8Ê8¿Š+:Šˆâæð»:œùµÛ„­ Zƒ¾p%ð°%•Ø+?Qf¼uP„êx½Å{1R) Ö„ü£ –~¬Øü " s¼Pž+ÅbÚmĽkø5­,n9Qlÿcp%Fw‡ÿh'nE¼Ä7ÿu,üÇ^1;¼šó½=Ó9|…C¾"öÝ©'‘¯9©_D]М¼º{¤þ£’Ò»(òáÕêÈq(oò‚Ú fÍ6O¦ð [êF¦³˜Ìd¸6Àù쿹(çoÒi¹wr›\†ïhËÏ!Ö›&nÏÿ°ã𨪮Ào‹ΠÛÏÀ¹Žý!“âª`5{bAìyjÖNöbb™&)x‚5}eõgpJv¾0|Sß+šGˆ_ÍRViÝù›iá`Ú“]]À34ÁÓ½â»ë÷´@í ]‰r`¹w³Z "¿òìffç›zy´chY>ꈟ mïßžÊnÄ­c¥øLIµ3&àׯÀ~샧Ic#ÚGå|èR!Ÿ–¢ßÈ YAúc½ð‹Sð6õáÇ«Ro½üQHí_gºñÚUŽùG 8Y2£7ˆz•èw³«qÙ¡þ(‘´¿Á€aùg9ˆôëšÛÀ '¡ËÍdl$wŒª¶¥s=ªà?ŠÊ{¼—åKawv¡gX,«9úAæRñâKAý‡fM4‹€nFâØšóZ”yœoJ°rP+Ïij?øÀ^1~±ÒÒ§¤.ªˆãTã<§7pæ¼…*nF3OÈXþ†œôŒ²XE#yD¯ã<…·•áÚLò‰Ø[Yr‘ƒÛÐïn4^Ðe>©5ŒúÁÁøèVcs4žê:~å½´õ»]õ»à***Ž<²žXï¼ãÿîC€£ŽÚ%öƒ£í¿öéà?.¨.tsJ£+6;q”þíeÕºÔŸ¯D¿[æ¾ÑÈùŠæTy$[x£ÆÔn“Õ¾gþG­vŒº’rÎçæ§¾û±0ú«1º=‰/UåV]Ÿ¬$×cqŠê¢3õç;¢Xÿq ýU#ñK¼®c ëe‘Q‰M$ÃY¢_å 4Æ’õIEû(åØ1?1gÍ"¢ç‹ø¸XœìD÷ åc½øU 2¥dzýHýG ¥½ Oͤ‚Ïœ„N¶0üy,ÅK=#ü‡7™Â>²’µ|W½w8âŸÛGÛNÆÐí®­^‰ÁõµÂ÷dÅ{Ì!2+#—…ï%ÿxOÜ™,¥·˜¦ÄúΓєújvPåedHyñ_ÉðlýBË3¥ùÇÙ˜»þËìÄÞNÐíùÜ{˜?øùŸæXIÿľì~J¹Ÿv?Þ{íÎ[O§CýùÇ/X?7<Èn2£cèŸj?åJé|sC— ¢âA2†è°çƒQþ$“ È´¼°Ò^¬±[ý Ôá*Ÿ“°ëyñgñXvª¸àWŽÄÓÔ!b÷” Œÿ×ð›{Fo†.‹†i+Ï@#ºØºLOÚ„û…UïQ?Óè†~·¸_ƒ™LÍSë°Œ¬â%ñkjøÔCœ•÷Ðï¶A1z;u›úŠäô,) sÿ+µ„1‰(Óµ-ônŽßÁ¯Ú±ÜÔ;à·j¡{Ë`¸£Í¾Íœ…ÿ8ËüÁâø¶¶øùàWÙÈ8“Sÿ½¦k¸þ4s¶þ£ù‡/UK3a ž ¿ZÈäñô+IcyÒ½òÈÚJ¶4‹úíduû@†v€°ÅÇL‘¯ÃäÙ¨ÿ¸€§,KìTR®A©PÖèœö-´ZGŒãxŒxL4<ƒiº‘ ßYŽ M°Gô&C³màAæˆFÎÛÝ®«–ÛŸHç‚|/²‚6B¥YµÍUøŸîØû…L)b% É'ôN¹Œîæ}â˜Îä8›YQh>qî_ ýK ’Ó5#Ëü?ôahòÀwT‚ñ ÿË5Ô\5˜?ø6$ J¬iò¾9Ö(Ú™@Ö«¨ÇNUužÂ e¢6^$åëŸe ÿn5kþc7½†›R?•ùç}˜Ãr5»ÐÛý ^LN'Ý P¡¤d:K]±ÀyÇÿ݇‡ÔÚ½ÖÿúŸ ÿQÌù»¿ÿkÔ~†Âo¶‘üÃîîøk=¿>Š¡£«è­…N8 ݽ©Ê(­{•AzaWßc{ÂÛŠ¬ÏøËgÚô»Çdwbû pÁÃú\Þøh|KÍ0“{BW pä¡^u^pµ-É*¼ðJK°ÿ+QGy‚ÔÍxJrƃÚoVÜÃKxåAZŒàW#ÔY¢'-èÐM®â3˜æ>bóç²$1ôj£ý¯ÒÁõÖÏZÍ5&ÆaU-£»\ÉLî¹ÄSMâw½(8jVgÀíÖQ-—nâ<¶N²Ä¼7à{ìÆäá{ïQ¾D¦Ex ÕGèÝ:ýÔdmþ …u¨SïJÞÏèh,£þ⢵ë‰Ê+‡ðÉì~ð›ñn˜Û"1Etþf½™¢\ Ï­ØT.´ëñFÓNôsŒK/FZƒ0SäOd ÚSìèLôlKø{‰Ð_õÁÇ q^^AÅ ÿQäñ9^dû6P–3î¡kú€Þìý{POâÊýÁħþ¼®iÏõOý`E°»ÄÔŸŸUœëíW.«±ÉŸ‚ÑK½ ÿUqTjåŒy(›ê3e< SDÞS#~—þ\¿˜gé_2Ÿúò—zGjh˜ÒÖ´W\wÞïQå°–†ì½)QY2YIøêï¨:,@ýyUTñÈgîÓ›« ì~0]»R›‹Ì©2Ž5þœNGhKèÍÑs× ã?Ü™ž†¬¸n*ÝǸŸßßs‘î\Õ¬±øŽ<ÌkïÏü(É”ÄİA‰±žˆ­dñ¿P“40ŒÚyëÿß?Üý¦ÿ®Céö¯óäD8WÔìÚL-3õƒ¶ xŸ£ÜyJ5»ê‰M‰¨Å÷oïOÇm«hJÌ•M_,Ω‰Bê?Þi®"·ÖŒþ»õ~²ÿUnò¼¡L{ˆ¬«¯ɘè™PKFþщü£½'<Õ¨)Ä‘¸‹{Ø+t{ä »É?ŠÒ¥kœX¬oÁžÕ$.é¡we~m(õOKÿ+”ÊvWSo¬é ²ìÉœËØûð·ˆb üÇ(NVÓHó ÊêCøâtÉÎþ}úÄtÇÒ…wfzºgÍÌÌÌ 33£Ì °-33³3;f–™YÆÈÌÌÌÌLÿ7z/+°)9çÏSN¬õôÔ­º·@ ÇÒ'žÙÉŽ·ë?Üaö‡ a÷ sþyTcGÔÛlÏÿÄÿÞ¨®yáFI/t‚5¬¼Kú9‚]é/Fü27­ÖE/€¾ý;ÌU®€%œïfs¾lK>ý&Xö·àòS¬Ú.~2Èô%þØ"ê¡õN[ª-3:ÀšÅ’Ó¹³×yåElŠzòŠ{ðÂ8k¤ÂÖ5åù?Á=÷ƒ}+Æ$ï.Tþ —þ%£á¼§P±^ ¶/g= ›¬Ó J"‰ Øo7|q®Â)¼…8°íÁókçëÃÄ$ô±ÂØ´ûä%¿&šº‚¶ì û* y!|Ó|h½õ˜ÿ±‘wpR¡wËûVpósêÿóŒD×c’ïÓåi%ùWŸ‰L³¢îdGÿ ›¢š†~îO?f/D kö?ýw_ÀÍ—ñ8kí¸ËþÙ+¶s‡}fvÄFÖ¡b"­ê©F«Ø0^ðÆc;çÂâ§?¼TµšìâTä_ES?PXnpŸÏ‡È¿š+ÊïÚW$/¸†ãX¯Ö´“cTÔà$ÄP§/£\»“¿;“øµñÇ{ôú쪯¼„¿*¢mCÿHâý ]xOEúUÝF1~O®–=ÿËü«r(ƒÑ¿£“}՞ɋg¹?§é«{ôøb. Rÿ±B»¥k°Ž—Ù©O@*»'rnæÆt–´æÿ; k¿ŠìµXèÇÔ5æpEÁ:ï`u"7­: LA10Hþî)æ‚grgW¥—„¿9WiÎÌ`P=p2ÈÖ—lêÔ°kWñRÏ,’7àK­:e5ž;ObâÀ.žg´.ÆD•'¼ «U*ù™¾Ê*Iÿ’‰Ìÿ¸§Þà#t·>cîˆd¡HÔ®rbà¯ÍéÿÛONQèëÄcþ`ò`û,üo üاç0ú1ëépÀüAò¯ÊQžW÷ÓÞ;.‡)~ó•c:œ`9üç˜àÇA=ºaê]µoF]‘ÏhAþn}½Ùß:θÄy^d"uƒ“(J¯ªØæø€þ»ÌŒ ~°®˜,.ê!{p‡~À×éå.^ðì­gÅEü[D¥ ¦£_œÆÒ—æûmDLôðô/éÀóý±«sÌpDödu*½á­ò`%"²ë‹”Ú& Gÿݬè)¨?¯L&‘øáÆŽtbwl­7ÜC¬ðÅ¡±ÄD´ä^F÷0®¢eÌ >è7{–¿ÑøÜm –g@@ÿ’uXÅ£øuv×ÇØÈ–bk=-øL©5Ô3¢ÌD?OO®VtâîðX¯È¿êI¦U]à‡?ï÷ã\@4?†Xg?üUhýÒÿªçüè “t†xÁF8*¹DÌÇÆÃÀ7÷A½Ø­†[ËCü™Œæ„.Ï/ðøN1ÿ|§J¬5^Þ ´ØÀûsGÝž@Åò{s$¬Ì1ð$-OëQÐc=ˆ‰\Qã•v>p©€Wõ~¨ñ>Ø?;þèL\5®¨ñGx«Ådý\dþÇN&& «:úCy¸’9àG3¸—‚"$Qw²³º‘;Lx*·ÀOnÆöš0LO`[¼¨…8Ë\Øë²›RjñGjÔäÛÔ€,%þp3Ó;è!vÐSp•ör¾M°‘žÄGJùP‡}W2 þ*ý¯úä_UFÓ˜G­ø8¶‡ìÓ³F«`ëÍU±÷öL5¢^Ð÷€œM÷+°=&¯ssùÓÙv¹ú"G‘Ñ ‹Eíykþ'–Xõ@•¬ÿÈ -жrK“U†û°ÂlHœvþÊ®¹<¡Ž2g#.]·uýFý`uº×_GgL–C!îyBpgŸ¨î:Ý­Ú1ý¾ÿ|“7ôo/ ¦wB3Šì¬Š=þ¬|ÁŽ-T#¦r êÏ•s™e+P·ZÈ[²ñr61\.ßí¨¶“ÌÿÂÄö]8)þ I§YÏ…™êòœÞ½=Y;¸±‹Ê ôßÝ$_3S$Z]&rËs‡w™WúçžÑz½ñhGðW Íõª”ó =€ýÔU†,±ªÔŽF*î¤Î%?^sûZOà¹/ˆ9X5“n5-Åâ?ü?ßuäÒ¯Èî•/ؾÿ¡DÓ.i»Á.äJùÔîeÍAÿ’ìú.í­ãJø—â7o;æ¿ë‰Sf±Jÿ¢ÇÓÛk‘‰ì âÛz5½Æß:ÎäÄ>ô±­NŒV‘ þJ32cëcмä»Lû~â B?à÷Ú5ÍKÜÁ"m€-™Êîf^&ø1BØýGÎâCÔ„Yî)’‰vâYèKûî`c—ºÀÛ¯§Jz&Qó5bƒàGA|¯HXªÒäãÖg¯d2Ûºöp°%‚|‘\ Çžn:±`ñ€=y²á¡§GIÞŽâìç´{Z üèÆUŒõ~höy H4Ÿz=H4;Ö/w)±Ânüº· Þ^â¦Nbü/ówjz<|_8Þ´àndÁ`îSð£91ÞÕw ÁK,ín¼±^p>Oé¿[9Ôü«™Út£XIÎÓnbËë ­a ¢Í<0îQᇼe=TÝüÞ®£Î}*jfv=¹î–£Œq üødö¤~¡Ôë‰eFÀ¢¬ÆúO…+ŠÈ÷¿À’,àYM,¯ñ~{X—º ³Š‘JÙ?qŒ>†¨¯>úú&ºjøð[C¸R ©È¨‚¾½ü¸‰ß½“j¿"( uQ|k‘é;–ºíjôße—‡¸/ ©ÿ°{ø»Éi°R·ˆŽìyN%à1ü™>Kº€øã9ÀÈÍY ~ØýÛ/áßO•¸ßkQ'ÏÖÖ?’¯¶ ¬®È4 wðã ½W¨däCm²Æƒc°ª¹Õu:§÷¡ oQðcÖ>×ôؾ#Dÿ’­Â¬‚‹0™UéìÏõ¡ÿî:ð£ùÄ œk­¤p.ŸèG«ã‘—B§MMKtˆ§däTýä{ÑÛuxµ¥Ú>ÎÏÖÏ«þëÍÖ²2ºt/P#ø±³MAýÇz²Î|U%òc0áoúÇ*âŠíD„Q[¸Ö[™£»@¬{Ÿ«Q‚Z‘ßÔzú—ô„ÿzG'Å»pMwQª3ZçÔ}ú~ùÉÖÖz<ºÆàquɱˆ"­ëÙ»¬m4J±›ª³^*yFÜ5‘q[üH…£ƒêÆ^ÄZ¹‰â3‘+'}ºæË—Ì,†Å’MÐϽ©Š¬êÚ…´FW‘ÒŽ5³é¯|¨ÿpçL%×-UƒE©?ßÈü¨èýɜ諘Ž*šìû»hv±Q(‹ËRbžëŒÿ½ç˜_Ø+Zi]µÁöYøä›ã޶CÏnx¦±A³ÕíÓo=-Ü“ÐùPÓn‡)~ÓäšÎŰ™ßèÙ>E¨Gg~í#ƒˆH}ûU=·nO8 ÿG1eBƒ¯š€?L<£´LFFìI|‰~CÅ<ý\¸–»~T'A¥dZ †uŠ.ó²&\`Êaì`I¤«ˆ*ʆ«‰7Ï;D?¼¬9FávÓ”ÏÐn·£vïF§xOþUÔßf®=ü«C-«µ¤¾õœ(‹NYd?¦²˜HûŸû±¢W9ÊjdO 3¡“áÆUŒe,¥~°ر ZrŒv-{6ú·÷Ŭ —À»íeõ³ Þj޾ŽXöËùƒ™È¿JÇS9—ø£0ñOLîíh색Ɵ¼ ;jw¾¶ ƬXþ%÷¡œîm±ÁÌ"´9ªÂ.•r³ˆ†ÖcO)Ÿ§›Ù䣈‡Þ3?j8Ó¨NPî^ž²z«ÚdS¦îðË-ä YäG‰?ú‹ôìÝVØ£¤æiò¯XÕ>ꄃäÈ H ðnñÇIê?¨ö´žAÞc`•á}]güï½xêp 2ÿ<ŽÖþÏÿˆ‰.p„üÝÞäïÔìèà£=ÕƒÙôÄÌÔµSë¤^èçUˆ¼#àË/ÐuC×iÏ,•QݸBÿöRÁöoX‹§“±.D%l\bXzü«œFz8L ¬$†‰ú¥° øùeð£6úù|ü¢úÔ(Ø3: “Ž«øÎQ|½¢Ø³îLq—þÑ×X…þÑ…=à‹žÉ}>?’¼‡~¾œµ/Cv®-õÚ®=ü«C-¢µƒ£¹ÂyF'ãd$z\>®`_Öiö"öQB6ôá£Ä~Dsoy·²ÆWm·}HA>ë6ŸÙ6@åÞ?ôü:EÞ"ß*5•a¹¬=tn¿HwªÑù¹…µÜ†å} Ôþ*dÆ@ôîFðtyˆ6À¢ùcY7ÊÔždRlw8÷q00wˆ8šßÌÀwHD†ÓjO&IIÊbª^ƒžcŒ‡£óõ±(ߟL>%Ë”¢Õ4Ö²³X/YùÕcìS*ä3 JO$šùžá8¶ÁÖó¥AÉÓp˜EA¬àì2ê˜}Kþofª+R2‹ï2ú‡FOÞ àGðÃä,˜”Cµ’·Eg×áåÔæ¡Ä§/o­gÏ6Aÿð? ú_d¾nt†”Ö~â)*6Ý=­í àXr­R«’„øc‡ðv­·U»£¿¢“™]GzL/7ÎØ[¡ë•ýÐ5kúù¢ŽDô 9’±ÃrÒ×Ö?Z‚Ô割ˆþB¸ž½WÚJ£$¼p5öüGr9/›~t=)M Ó•'šÕ›ÏÏÉGŒyˆùê«­r¯ÕEuáî%`§Çã|Vš…]»ð ýK:‚ñ‰/R~Z  b¦™OU²ÖPÍÙ™¶ÔT¢/¢þüqÉcð#’ì@ÿD;«Å!³H·ÿ‘~ž3HÿÝXàGú`ûÂuÂ~¡}&·œÑ€ùÛæGít Cÿ¨Dÿ’õÚgGÈ «¿^ð‰cS]ÝyÚS›CÅÝ2b‘Y”©zä_ÕÑí ¯ðä É"²ëƒÿS„e¤b¬}Q†þ%“…ÿO>dè«_Ñ3Оպy.6$©ÌEÝè,ò0V`eÛaë›SGçÆž{úÁ¾ÛËK§È¶Ø¡Ù`ÑtvíaüÌØò¾ïF2Æ™`¾"žˆ®vÿ«ÜZw~ÿ)ý½b’3ìÉ—ßd;Çz˜wxŽTï>ØÙÇKEŠ~|ƒéOÔ1þg1QÜN»‰ H[üÖàÞ®=uw¹9Ëô™¿›–þ%ù±ï¾ànNVŒ õå8n˜ ¤•‹áþÄ]Oy.ÿà|û‚õwéE_Û¸ìŠýç‹ñÚx£ UdH)¼&¾jƒ…õ†mc&’yÙ¸lDÀ¿ïÌó¿ mW· HšÝfô\Onà²èß¾GŒ£þc ü½7ÖÜ—ý2ß,Ë™6'þ8J…Ý *òŽ•ü8ÏõüÜ|O_Ȉ¢ï \*àÕtÝ“h¦¹GñÅ;¢O†á«…—ßýc¹*G§‹üêÖµÕuÀÍŠØÜ‰xãÕäð#$ ü¨.ÚY´¯¥P7°E~èñ¨ÿ¸Ü„jƒ¨Èû‰b«¹T°¤'N¹É|ñ±ÄUé¿û6ØóÒ@ŒW`wEkæ G3H£ÜÑe¬¹.,ªs"ùMuÔ=»IjðcêÌclô]vÁ£I°õˆº î®J]&ç±n(ô΢~0»s<Ìgu=ùÕŽ5­¯d¸-´•øÀïÔbŒ•w‚àG|m¾v„ó+ÆU) ú_¥j£;Zr/|ûlÄ ËÈVÎÀŠ+éˆ5[M ›·•5̳á f2u‚è‡nlAðc£v\È•³û—ØñÇkjã—rv‘œÍɪý¨ÎYo˜žò€úФ0l“¬1V9Ðúƒ{ë…‚T‡X/1¹”q\øq›þí…ð<ðO2‹î²\hs&$km?r7ÚZ,7kó®N1OꦒʞŒÛµ=šlI‡¤†Æµ Ù;Y¤E=ì…Ú7É\m-qV¶:ª…üU æêÖ…ÃKÊ|Nok³ÚB×®i(*Òúýy ~Hž© äïÎ ±ÿ/_8Jj \;!ýÛÿiýyTüò=z!£9úù!Íf—¶9¢~ÔÔóè 5óoößUÚoÆZQÎ! µÜWôØF<½»vý¼ õ@¯¡Wpux®SV1“ûýL4ã©ÏgΆ9\ËMýGM³9ý[‰y̼ž…§a’›ˆãXË-h‹±!Ieq8£!b¯iOSê7Ó†ü«ÌÚ}Ž§Ð¿dŸè o?‡˜`\æE,§$/—â€m.‰nÓœø#®Y͵‡µpZ­ ç÷üp‚áÿ à‡Ý „‰t¼‡¢æ¯,85{ÚÍhÆULjÌ#¶°ç…ÇšÿÓðò  LÂÊzÀóøš·°Í€1ˆC¦˜­Äê þHð£L­•Ó3ðþ»áà ƒ:ÉÙùý‰Z^˜›¥ß[.›9ƒµàñ4i®s.ÕCÕÏÇj Á“dªù‚Ù:¬J3¼VðYQe_ó›qžþWgQÏk£5Ÿíçp¾?Ð…*†¼vä1Ž£Þ7G`'ë£ìÃ+ƒF£Î>1»Ã.ÝÆÚæ?žr—à¿k2¦,`DÿIÿ˜¨wSQP˜//5^n£çß â™Új¬$“ƒ¢1T4ض[äÎm1܃íœs¢JÓA"w*øK’s¶íxšêEþnzº¦·Þª;Ö-õµ¦:ÍbâºnpN‰wJsŒ_EO×fICýÇkª]+áKTÇÙ[7™†ë jPÒ™ê:¾õ$±à¯:Z‹ÕdØ¢nÔŸ_€Q=NõÊ.™’—7DU×zKµkú#ø°}ìЙ2'“Nî0“}2ùVÑÏ_©côËÝ„J‘ÈÅò£ú¯¾ÕS¦ÿ•ÁŠ×Ém>c¦“D ÿ÷Œþ%¹¦á›+P/>] t&¤«È$k]êoªÙVsrŸ+£ØJE<«:“ÂZ‘Ë;˜šÞ”²~SùGúÁÚâ DÛu`žŸš_,=B!k2U¦ÌüE¥©cåtöw ?×pðr+ýL¼¨SÉBÿöztæžGwÕX°´õ‚d°¹NýÿýÅRÇ´ê??˜Ø¡%¶/þüIØŸi_´&úm*5R µH¬²Ê‘A¯§;õfú]ðcSØKù÷Ž=Æaôfde2ëiŒŠú4-¢˜"²MŒ9ätÙïþñö)ö/QñiìkSêÏ3¡YÕ¦ÛP[ñP¬Õ7„k¹?x¥x Çr Û¼v§øQ?»zü ¹Nàî‡ÁŠ þáX±"ýE)"á©àÇfâöç`E,Tb9ý0’¬IÞqIrºb™ñÂÄïŽAä6Í:|o)9ÌÉCœ¦ð wñ¥áÙ§’W°ŒGÉ«jÒÁ>Œ«øEŸŠMm*žç¬‘£\Œ˜+?Oê ¼j7i«‡ùYB©q]×pÞšÅ÷çEH©EÓcßíJÈääðh¨žèäD0² wz':@yžèï±úW°¤qÙ»­ð³/|Ñ¢û™}ÀùÍ´½ÿFÈn´öŠËµFStûrq Ý·.ØP|úLü–_Ü2aýºÀʯ5çó>eé•%´ùƒç5qbqÌX0'.zö¢®áô_Z%{£™å;-±þôuÂÒçÃ+¶§fmàøtÙЈû~ìÔg‹ÎDÏù¨‰Þ†%¼Û½¿ÈFèKÉ¿ú¬Š“{Û€©ã›Ð=2ƒJûÀ×DËɼ™EŸ|©üÄ39±â9Š™ÙªßA‘ˆä³6·N€÷È0n®ì¹†ÅeZÞù´¼KìlÃOñGvÁf®[Erm‹ ¤Tm©8HFO”%TR't^$Ÿµ.ó:Ú)º¢T$£`9üÝ}Ðë*{q›1)ØÎ™*<ø[쫚D‘·Íwr#úùÕ¥:5Ó¼óYéXo7á8ú—œ•gâ-¬]éhHåÆ ±ìÏmœ±åÚ.3QÄ2ÖŽñ&'*z¯&2¶8±Ûð‚«G?ÆaÖLõ<ªkíGq&1àî2Ȳ}üÝéÚý•9Üô$\ÿ ¨„næ$êžžâ£OE/ŸÃ“àAþ®<ÎužÛwð€Ë‰sVûìž¡æ_ÍÕåyÇ$à‡7¿w‚è¿WÿÉ ³„¸j$ ~°úÇiâ£p.•ˆ?ò†<‚¿šË³øÅœ€âžžç|5ßX¬Îbðc v3:ù=¨µÛŽEqãJî#{i9ØM63RþÔ{s´>Q !âIÊï_„yÍý;On+Ì?ö}%]ûî¨põMùw ïVì¶>²j#ç§ q_豉>šÁâÏ„£º 'Ÿ-¦JCEÞ”ºÑÞc*Ý9:ÂçW~ VÔ›({e"ÍÃÚ¡`+¶×£c­6Á©U‚‘+)ošñU“Ü(Õˆ?’ÒÁÏ"þ8D¼ÐR%¦H ’ÆP¯Q,.áI¼0F[o*õçEØY»°øƒ¨•yFþÕRæö‘cኂ‰è ’øcøq³˜R®Çâ”)A™›b”kfжhvœb쨪ò§›¬ ¾ƒÊÊ Æ­°jc§óã㵦«|ÕÌZC”7–è0™šF~CdÙM´u­·K{®;ˆ#PÕÍØ*žÆ jø¢L×µVq'V$“ɺŠ~\V¯Ð?ãÓŽ‚ô{…?„˜Åžn× ÍÄŠMã]‘|¬ê‘®‚þçÌ ¢µë&ÿÎü({ÛmÐ-®Jˆïä'Mæ÷EA¥ÞJÿÄqd Ì š=õ§Õâ‡vô-ÜOoÚä¸U—k˜µ*HýànæG'KÅ ¸±”([9ÇBÔ£Ô'Ãø »·È]kFwà¸Ô“4tåp6QMxª£ËÖÄÀ}¸†¥\»pÖÝè‡þÑ UÆy9w­ªôŸ|¨z z0ÿcˆó‰UÊ9”©¶ïèbÿú"V,꜋¾øaÇéâ“2Ètúÿû‹5Ž˜Z`Ýõ ‡G@çÜò¶¨?ΜòbÆWú•ØU$kå¨ÿˆI­ÆMi¯þü‰c“±þŠ nàG&ÖÑGj±„‡ˆm”0üô”z`×ùðm"†ÁXÒÁðDm™_›Î¬§%0r’ƒR‘úÁJb–X®ïÏB޳àd~ñ /f+-Â.W BÈÄ~X‹½»cvÃCoKT#a±/†cÅêàÇ$lÍ#rYw£ój<˰JŸàÎg¡b<Ço~- `‹‡#þH­ …³:"²ÁT ò.Düö•¬Ë Røé½°C籌«yw³¸Q&˜øùpãÓ±È%aÔ®Á }‹@ô%fy¸“)Tûåâ_€I±óoˆ–Ѳ½úCÿH®¥×3sf³`Øìü«8hãýM»>q 1aY<ÿ.t#:Îo¥ì„çýe¦ ù»`îráÝï…»Ø Â=‡y®ÍlÌÞÑêÏãˆÒ B\áî£ií3K`Ïq¬¢®ø=³,üèß^‚Š<[÷ÉMü1› #íå$ú±…DÌz¸\òÖ°hÛYe;ãˆÌ¤ê–ü F¢¨ÞEï~Beab’­ØûxèçÇá†fÊøÜéEÚå`wº¥®}úñL5¸4èç¾*-¤¶ ü¦r>?ÚÄuïv`Ic£iÌ?_"¯²S÷…ˆ?v¡Ÿ7%O±^3ø£r­š©z¨àH²Qs¢ĦóÆ>9ÍÎ%~Ëï-»žÒ1¥‡Ü!¦ºnF^ú—\áLK‘ÓçÁ•ÊPJ¼¹ÌÓȨnQ?X…ɰ¹­'t®ê ÿT¹›¨³HnA2ò•Ã{M¥\ë-×Þé‘@ý—x™”Ýoä9ÙKÐcJÓ_ÝþT‰ÉÙÝl%§‡înTþQV0i™uÙçù$™îb“øèº~µ}D¾nøž‡@‚rb¶y®¸Õᯪ’%ðŒi^èvèA~X ô”–Ä!·¥rÖP>ì•Ô²þÝ4žÄ@üðgs+ð£;Zr·© ¨å•`êîSs_ÂÙÃêAýù}êû[m•p>33©ªÌ¯íFÿ’èˆ=ÀÅL×ÿ{/V8"j÷\o÷ÍÑCËàºN®o‡ëE|í6@Od”2"óPh¾£ˆ^D£—˜u6\«üùK_èµ@4ƾç7×Ó?1’‘[Aý ·HnÔ76é±õ<ë8íŒ)®t¸‘Ææ*‘ÐôÔJ’Åí…n‘kž˜NþêuöÅÅCž”-ð «±Åá¯èI lEõ{ ÊZ_ñÔh.þÊ›þ» E'ìóDléâ£påI±‚%°|I©\nï–u-Y8Ìø#¡6xÈg\E%¯¸QCCé>¶p/>pT¼³N¼Ï"Ø•ºFÕ0®b,cÈÓ†(á2üì 1£Ùc·‡,›úðWL?“þ¨×‚xéúG+úê…Vígß׌äïf ºè‹’“Ž 0ƒx°ˆùÉÜ+›Âl$Ó)‘ÇGŽñWc.+5ŠªFHël¯f×t³bȉpR÷8wp®7‘üW"«,âˆë×”ÛŠJ±û]&/=~cÖPð㘣4ýÛG4=ecØXp‡­P¤Êaçš’k*•&½±Æ/P3Š¢%Ÿ!ÖÚ¿&Ð*™õ[ö!ùX¡½¨ð·k ŽèÓÃ8Ö*ôi«*3§)5¶°,¹BíT9ªóà±ç#Ïw6õ!åæ)‡Ì¿’ºÎÙ5Ƨ˜Gìw ™\ÊI?ë2ýÖ}èFû¼ØkÌ÷Ë "åAO¹†úñšãMEÇ·ÉÚ…`wºŽþCTc¿!«bLÑw39<ÕVE&:i-²â2¯È?N²^+x¶T¬]s ÖØŽ…èܼUTà,ߢ„Õ¤þò½©ÁÞ¯T3TW9S%'þHg%@¥¾Äz‹±‰‡Èßóƒ¿Ú?B‹Dÿöþ®«—B[«Ý!¯.ùWMÉé _š•ü«iÔVä¤~p!õߨ«x34I9AæÐrsˆA„ZÓfÊ1¢™k½qÚý‹™ ÜÛÍYFÂÚÎ#[¹+üUQô÷ÌÄ Nçlð#:9¸ûÕ{ôï¡Êƒî †vÌÝ"Ö="‰ëÙ{Lü‘ 4¯@LÞHê\Å*¿³"ëÔ²îƒoݬ/tà­GM¢Úpw¾ÈøNoUüH!½‰?|¸ó?üµ!dÐäÂëìJõ`tSXnÎ]Ö@fOcÊÕºiu¤û ޝŸUCE?ÎpS[x4t§z˜õçE} [C¸«KpXŸÄ¬Î:Vº÷Ð/wöú´‡(xìvçù±bö«®_i´‚z-Ða*úG1ÎVcç·%ÎxIåÇ`¸ße0G°ŒXí2Ú‚­0|b–{ƒPçG-Ðf¥x÷DC ~ïw£ • ñº’U÷Šü+»~°¶\ºø‚WUÈ¿*ÃSÚüÁwŽòôßÅ;O@ÅNûsÔ…åš~Œ…¹‰J¡«wXíBèÍç‰;/Ã_Ämÿ ý#d†ñt} A¬“ ù}üœÏ!lur²™JR§WÜzEß§+t[oˆZÑ^¼:8ã‹–Ü_Þg—§ ±»“éq9K÷üxu>nžÇ‹N¡žHA¡Ö5ë(}ÿ¾Óÿ*>xyìý[”I¼Ãö(BÔŸ·Ðc²÷÷—ž Lub¶dªù»ÐÏ—[ó¬ŒÎ«ÄݨPéM^ï9Ð-5ÖYѯñ8ßœø£o°#œ) ÉràÇ ³6¸ yñÃÔd9‰þ%¬BäÛ&¿ºO<Ò€þ»«ôUò6]*UO΂ùÉ¿ZGF_v¬¬;h5ë˜Y1 »Y kùV‘°Õ†³ õ~1Èzr·fL#‚˨¦‚Ŷuì‡2W{©¿„½½ÅN ¢±«ÖÂsµ„eªjmDÿð¥?ˆ/UèñÁ*þèÙýß(Ø̬€– ÿ2°âUíˆQ…ÝV“,fô¿Zkz1c±üU T­7ÔzÜÍ«Á‹Å@ïD·yËæ·T öjb"íø¦7>\i~ Ö­›HO”ß/«y’Š™?¬Öj/ú¹7],[Óý‡óQ‰‰)\ÉÝ«e9e':«NdÈuÐ6ûÿ¤þ|Ùršk'¼t´øÇýK¢1ÿc}FÊìÖr±ævGúŒ¤Ö«èµˆÚñ F3Ì׺¶Âø]”&b¯DÓÏ$zí¥á)òà¯/g®aÈ'쯗¬~ Äw†mïHwçØ¦·×HÅ×-PÏ«‹­b‚þÇ_/ñߟ¾¤ÿn)ñ{¼µv¼S~™ü¨€'à‹ÞϤ#Õ¥*høò¯ú3D ,àLÐc)þù3¬ufù†dYë_ñø¶c(=S‡‰…µñìÀ­"'uMñôsƒ&‘°ù'ðò݈?À›ïÃ2žÃ#/åãº÷¡Ÿ|^âD“°–#±ûÓÉÚÚŒW½ƒ^C­áì盟ñ«O£¶Ä$÷Ù¶#ñB_+¾VH/ËõŸ„Z”×´ó߉žœµ…ç8tš—kÊhغ´;VmÒ‹¥‰š"?ý¼:È,ƒj`ÎAެ$‘Õ72•[™éÅCê7’[š.b/Ъ–ÁYðá}‚tÎ<ÎSÔŸD݉/× L`Æ)VrŒÓt±`@T¬¼þþm!X6fÙÄ]nrù'þj*üÕ0önN˜¾‡²7^ÀìV¨ 1ÃÔOƒî §á¯ÜQÀ»Òm¤"ñÂlðc³+j‰ô!®aTð£2ÿåA¿~ƒfp_öø‘üxKþU²¯nÐéýÓSÑ^{ÿdøAüSÆd=5gë ²7 Wâ(ØÝŠÜ€ºÄ)í>‰*ŸÌK©UôÊx`}·|Ôæ=5%Žkƒ&´‡øãŠ…­Ÿí 1¹r‘È.ë°¿Ãøym½¥ûê?:Щ0›s+ø‘üØCü1•þ»~hÿËdGþœMUKîÃ]‡—I[¦ÙóÝs1T Ð?ªJ;wùW9˜¨±m!ZÃÎzüUeúÞÚZfk–JMáþÄ^¢k½ô/ùl–‰6š‘•w»Zƃúß4‹þê˜vâ~$rc*äs«»Õ‚]Ἠ*)JJy±CDt={È¿*ú¶ãŽ6aòîr³ø‘–©[‰?N«Þ܉S`ÉTš=T­t²ÞÀ_•WuÀäïÆA1½oæ ‚#é¿›Ö¢þ^Fó©*ìÜgÕS[èYoÏ•lg•c~íaôý‘VMõ–.Äèú_ýcÌöX¦ýèÄíÅï®3þ÷^u¤ÒkŸž;Zýãþ»vÿöñz£Œü(Ên]ëpgvmz`ùi†víoÔ]Ç.¬j}vj>s³ˆ‰&_oÎüsw‘Ò¨e¬ 7g°ç!¬Å=ÀèÞøÏvþU{s»ˆKý` #)»ÀKõÄjzl…§ZÃáøª½Ð¼Å]*ŸwÁ®íGRÉhÖõÀæS¸÷J¬:\DfªzxVlL&S žàlæ2,ØMð#k6¬sž¡Zì’šð/t“tíá_oQðà ~. ñG9{™öË“çú Üùa4ßÄø®>Ä!«°§ a\Å\Æ¢êÁktL“¬¨ZÄÿŰø}ÉÚ)ξÃrŸç¨#À¡ÛøñÛ/õxZ½ŠT³;Š/¦þÓ¦‚kaý¼aŽì>PPHLb°•Øüwø€WE #0Ã#ð¼ç´%³*3Lm¬ùq¸©ªdh<›MM)ޱÔ<[ÿ¸ÆuÊDá7ºÑ±?p•?_¤»¿˜ rM¦SZø«mð{3±†‹±" Ñ’`å_cãÿÀ/Î/{šJù£èSä#~óÏ…þûy´>R ‡!/Àï¿"®z‰¦ušÕ„j¦Ò’ÙZ¢”b¾õv…I\²åž¡¸©éòºyÆ q_,ø¦RœWi,Z\T‡x‡ñ¶ÓüG±íN·ÃÖ0cßÛ kpŒOA;–…Ãl…`+VÓâ“øQmÙšªÀ&D éT/òÂò£Ÿûcùr:ug$g3òm;©Ö \S®ˆ?Ýw-â‡àê£g°õ¦Š†ì·›øåÐ6>š&ÖÏW QÃÐËsR?˜ÞÊEN× ôä¤áLá,á¯Ã°EU>ò´íº‚Ñ´uÚ~Ô‡¢¼Si¢EfIô'ý c[YÈÃÚFݹ¤ëÕk¢5V¥³ŠYe-ªAþã(B¾2=µSÍD×z¾ÌÿxI†Ò%ŽÎR‘ÁàÅT¡4XK课‘̰Õt‰KÕõª’vªµum«#h]Q.$Gs·0]ÏÞ!í¼‘™«ç~ÔEÿHÂ4õ*Î<àGkº—lGñ؉6SãK6Vcr.ÈwVåAíU Yº8g˜¿{Dëct xÆ:àûå0›rõ“¿»üŽ.Ó̪áìí<Õý£¤ó š˜ªIS¶¢ÉH3&^«”Yÿ'ýw78Òéßþ þ*dæ ë6„ñÂÔîiƒõ4°K ¨ÌËîZ㨠v$dV¹?1Nx¸œÀ·øè˜]D.M>¡ÞM{lÔ9™ÿ±‡¾(!3äÿ6´WÞâùq‘Øùoù<_D4}¨?Ï 3\þª¾X'fÿÔƒ"´uŽ[ÔIÖ bç±B;ðãüUa3ó(Wšó±…‰l»Ð¡Ñ žžõmá¯æŠNxÚs᯳kckbÈÇØ&_lþxý×d2ã=ò»öpèÇæp”Ñ&²·¡Æ¥ÀKƒ®ŸÕ»3LíC³(+7 j¼±øk±§-ÂìUˆøÃ’Õ‰®)GG­«Á_–Ä«µû·–výäa°ô;;øróÕµ%¶Všø#*zdž¡Ù0½?È>œcçKW¹žèç½É¼ºÁךüFâs Þ'QßøÊéNgþGe®~R9 ûø>©6èÐ2?Z1qô½¡¨Ãî@þîÎ}#Ø^ܪBìZýàG~ºÈ GϘEÄQ´ðEÿÅõ_@œ5›"*öî³|‰â›ƒŸûùôUüƒÜ¦œXçèØú  Dwó¶Ñ/Øz¿£ŸW†Ó=jVGÅJÍ{ÏQÕ85NNVœ+¨Oees>f“9D ñGc0ä61]RE`ÑÝuxvü±|,ŠåÅže¶“álÒÿª:s@Ö1/ʲŠP£7• 5HRÑÚL%ûL5ñG &ØúÉß]£ÝÕ¿}?A? ‰gæeô”žäï6¡_I\k-¯6Y»á³2Ò¡ë ó:¢¬ÃRxQ¡’‡üðÒb‹ˆîzökW ê½`…ð$´«Q¼,á¸40nwâ ¹¼ÓÉ9; '/.…³úG:®L=¢à†øù]^Ì1&1·ç‰ý …¶ 9×Õ ç9«"ïò×yÈ-nèJEarç$|ŽèÎê"9|u­x]ïÉòûŽmÓ¥S,r]ÁïÅ)×À|KƒùQÿ4ÿ*šöJÇü†ôY¯ågwmtT¤b &Ø׬¿©¼r,eþ`-ž˜BT|ÑcééõƨÕŒü]OÝfÈÂÿQM2ûc¯&cq˜3EJðÃÍH‰¥÷%`°VŠ¥áœÿáÐoj•Åg¸ãíÔìÆ*ä–éЃˉ5 Àmb»Oêït…ï&“s6ÐiÌM°€sð¸Ǿ^'þHLÜ‘F.!Ëæ¿BõíKÝj1×þÕ™çÒFbýÙ`nf‚yÙ_uðÏãËG¯‰³ß„HaÊîèV®«ÝIøõ̇C]W0£¶U»Äî/€Už¨a˜Tššê4¬rÌtÝLß’ïDpï¬ÑVzDUDk8Àq€[Œþ‘–¨UúóÍÚYý5H~*‚Š‚·¾Šx¦9eÈßÍJ½‡?Ðó+úÇmê5¼Ñ0ý¶`Õ ø'µÄ¡ ù»§è_RO¥™Í™Â_-6{ÂÑ ÿnEjÃíü«íL4¬a„£<§~£Jå–Lêl©‘»žNv&ׯÎ%ÌßÝ@ýÇ@2,{`;2•ŸR%¨¸l…þqíü•;ýKöƒQ“¬Ztú½ÇŒª‚Ì ‹!;‚SPuuòÍkб®+øï½ØëÈ®}t½ÝS‡§–4ؾpý(ÌI´Sš¯žØè`¤üoü±ÓQA/~”ÐÓëh˜+ý…çÔ,‡µi ËrD$5bÐc¨³öÔh*J‚ûéêû÷ø« â4\‰Ý¿ä1Í*‘ÝôÐRñ±ôÍè _[,‹ôðX{‡ã‡v^k î (lGÿØËz¥Èß-jÖKÌIؾAØúŽÔAf^^ zJ¿x=Õa,ÍáÕLÆŸþS”Z~à&ŸÁåTůJ.PV³h˜ø‘A³­Öa‘ ϸ"Ê@z0½'º9 u£sÑa"›}àÇ6s'V×ÃhÆÝÎ~®Ðü;$Z:nƒ£XÉ\¢^X)_t›cðC(¦øãÛP–“kúGâz°acÀL eD2‹ûPÍn€F£°ë‰bÂW|A#¹®,ÁºÝ5/‹žÆ§Pœ©M1ZqVÙ¸Jù½« [m,ÛŽw°IG#y§}`å7€.[°•M©{/‹×øä.{€úÁ=b<½_;;DZ¼™ŠêêKÜá‹å´¤'ÂgTë<Äûð=o¨IEät#±2çl´ÞV ϲbåŸW9À´ƒ¨)Ññæ³ãçW`F:l{kºKíâ(#€ÈIÈOÿýb¤ˆâ¾|×’øO1ôx./ÃÇlFÿˆG×S¦uw£Ÿì[úïÞ—ííþŒhÙy©> ×u@æ êÚ¢I[]çüvbKs„îÄŽéÁ‰-ùW[È¿ÊHþU*ø+;·*Hkêã·À—™|ç žØµùWS„w€½_­B.Þ éG–À¢©áTí&Zˆgepî`ÚîúïF=‡³äÿ³(%hBô;ìèº ´éè™°Ü7ÈæÚÊSá.+“g5ÕŠLýà~òÚXQXñõãÐEª£€0aæñ X4ŽJϲèãZov^ÿò¾Â#ù.?‰ÈD5Uò‰ËRžÏšAýùë$šOJú—¢“qeÕÁÚËÙ´./Ç‘¿»Qöž;Co¥ÄuˆæÝäKqü(µý#.U†ÑÙñSIæ€rU[ø0«ï¥*ùѤQ,‘’./fùWÃè1n5õƒOT9çm«.ý'Ï ãg¤ËcUçç6«üU%Vz©¾ÕÑz‡õz&¦’Åø‚¨»°˜ì:ãïÅG´ üÕ G{-mˆÞc‰5EOeÔ¿òÓ2±Ê2ôóâzF=«¾›™tá³Î¾Û5ðcŽðÀBç?,#®‘Ko©9…‡ÈFÿ?8±OØŸúç&àG'ìU?Ø‘ÞæJêϽ™ÿ!ð"ÜÑ?ÊŸ. '~|!·¡x ~Ì£zd'øA?Vøüjb6ñ!êJ žó¡Ä#…èì»=®Æ*,¼ /”/\od²;©^bÇOÀþÏô¼±Af ô”ØÎàÇjÐh×¶¼™Å 6;Ø øâ²£‚q”jÆÏ*~iòdÖâŸ/Bÿ^Hô°–¸!®lBñŠª¼|XÊýx7¸ª™Èö™o¤ÑCöl™¦O½¸ö…ð°?½‚Ø~Hôój6OZEðî;(O¬sâ*¬>™<£Qò;'äSø@³»èVg¯$—øñY^´ç¼èç·ÈßFÖ5*•÷Ë{rJŽþ‘xá),‘`õlüÝQÍ/Ø®¥ <?Ú‡8¥.ñG^ò¯ö¨<2‹:CÆiQ,X§‡:C<ÓþÊ“ȘðW{Èèèh¾2Z[oº¨ærE 9 ñ©MÙM5É@5üÉí\@ÿÄ(Lñ^5C5·örU— 'mCÿ¸Íäõ6òµhïº)µiðWvdw™Hww.˜Ä ðç³2Si;ݾ ôóçVúï¦BÅÈÎä÷ƒä_¥Ïâ8Ô«„°JÍ]ëMÖnë÷é$šÚùüØC=ûêKÁ_ŦN# ’Íe¢ßÈmòo ¡zï…™mË–#ÿÊ ûÈõìmж…Ø yšJʧX–i*³$=|+XÏT ¦²ŸEjL›Åz©ˆo¶È¸ÄEÁ¤pÁiQÅ^š]»ð ñÇ‘†ç«#Ïkó¡jç<Îüóchñ9¹jÍé_òYùéƒï¥Ê2ÿcúG_+6]î‰ixÅ_Ìx²²˜á:ãïÅNG¼ ùú/^ÿ¸I.*\WëñŒºÆSòw³±»Ž:I‹"ʈìÄû¨+Élÿ†uÅ‹“°0v¶›ÕixCži5ø«:LìÎ"‰…br8çŸ;ô;Zcôìk/þ}ÇdgMt ñ˜o²«J‚#™žCë°øy?ú_­Ýñ¹§Ã²,‚ß9VÄ7RãÓň?Ц|ï•P®=ü«…½´±àÇ6‘æ¾4™#Ùàÿ¾Ý\ÀR$•vÏ?'øaëé ˆêmøŠeŒØð¶ælðHbëIXàuf <¸ßȳɎ~KzÍŒ„‡}•çi ˜K®DèG‡þ̵9ÏßÈ€Ïoý|(Çñùí¹–³¨@ûL4ó æà\Þrò-O0‹·–ñ!”×4†AJA•dsb–íDU𢑹ÖÈL b‹ˆj/+¶CK¹Ï1/ÃþÆd7Õ6®'7pÙ‡ŽÊÔŸOâêÇ/Nå n‡›ôEE݃=´û—|‚º_œ—(i;ÇvŽnÉñeÃÔŸ.ðj²>\ú ø4÷Dgý`OjSÿQ…‰Q;éïúžª§éæQ‹Ü]¦âHð^ÑU/i’}²»["ø¦ª0&Åáù#ƒDZA»ÈJʦ^Á_õƒ¿ºu ~l£Ú/žýU*E˜ Ì.ØB?o~4„‰üHþî}Y üJ¦¼éxXŽþ%Ç`bÒ‚E‰à|T}åºOÏa™P=#Oö-OÒµùW£EqöÛyp¿*W0¸°œøc–êNþnç*+ zç6¢— dýRnM‰ ‚®‰‰?öñžó0«ý(~FEy4:†Õ÷”•ெX_ÐŽ£ŸW£’°1ýZº0Ïõ%³TªS]ã±Ñšt2¿v!Š$]î£>‘‘Øoˉóz“ŸLuæΧÛðVë8úGDëšúLÑ‚þ‰›y²;Ò¹¦J@ÿ’Aú_]×nµ`•›Q–aÕ1³—’Ô®D‰1é¬Ò,zBoßytúÏ6׺*sËå…ÈGü‘•ú;AòwÏ 2YÄc‡´ç¹È •Çy™ùÛ‰?ŠÒµ¤³UÍ9þªœs¼ÕþŽOÕ%jOáßdK,Ã|ðã=6(“èbþ_^wÔŸNSkúñ#-ùW³ôŒÌ¯ý@¾U:lÈqú'æƒi*ªïdÆáß‹?bj»éŸX.‰¹üpeõ©Z*QQ&÷:ëÚNø?ð `H>‹AöS ~|cæÔ§R9=úù±DÛD@: ¹‹GhÆó°0ëáëSÉ|°D=ÄZ|æ[¨’ñ¥{Štõ ~ô2º3.hð:6g#å,u¶Lx÷Iå3ò¹¾‰Ö•½’àÇì¾ Æö$Þ¨C ätæBÿp€GWYõ뎅·›üËø#ºÖ\/ÉÓ;ÔL ÞŽ%P0!ó8s_”ÀžæÉרáÿÈ»ÍåýF£2Ý¡æ_­ÕF É*NLÜV‡ó:jÔã™þÖÎŒ ~(ªÚÓlBÙhÎcü&Já‘h¡àÇ G1Ãv."¼\°"&ת ÇfOì [·«Ùƒ\ÓXí,2%öûZñNü¾/ôo÷5ýÞ^ì9Góìñ=ØÖèTS俪 Sž‹ÚŒF̯ÝB%!NºN­{´áý“þ‘@˳Юt†üÓµ‹±/:³zDÿ«öTСêà䃽k_ô8MÜjøÏÒæ~fj½»Ýôh Ñn|ìFôw¬…âœýc‘ªAýù˜—\tôHJÏñKô/ñR—9ºT(÷ÑÉ_öã\úš·ŒþÁÖûMÔ ÞïQj ðCðÞÛ™†;Vu‘³˜ ¾ÄJKïª8N?súùb…µÒî+v..·êJÍK/×áÓöh‡‰–K ©U þ˜kÖ£ÏË{ÝUxmÞø»ùÛZX{rpò+VS‡°õóþ²Œ<ÈO7`…ŠpüYù÷³áº\®¯EpÉQä`¸š,x°óñf™…AÊŽXÄàGðã(Êo.~~šL„ݼç#زºFªŸb×ÔöÑ œ&Óè9×f'½njB>*#Ê¢Ô&CMnDº?(— žä4PSõÉEê+ …ØÝÉu'Ì¡ø±ýã˜Íò¯V’Û$Q•_2õ}œJN%a+k+úÇŽ0.õ31ˆƒºÉßݨÝÐc°ž+ Ìß„ž²ËÒà¯æ«ˆàÇ7"®‡ÄGQè_ò˜¹¸¨ øõ¦7q¶›œFÆÅ*QÈõìÝÕüЍi^x7…¨œßaŽP7­ò¬Sý#êþJ²¹JQ—x”$ @v“(>ª2÷,ìGv³ù»]øqýc Šloüº°[[U²uûس¶<œ­:ôOÜi•u"+ë“cìÙ• ÉßmFfæìÂužõ"ÿþ꘣pü«·Ž†ZÆ`ûÂuSÃ|[ó×fèQ˜†ý£«lttfÎSr°Ž“¿2Cå¯|ê˜o,ÅënÀ¿B¼Ôß¡Â{Â_ù ô4n±n±¿uœÉÅ:t [GغHÄ4{iÉ8p9DjQS,‡ôc}Hÿýéi:aWçAŽhh+àÀsÈRøùÅòwb3Já ¦þ¼ŠmnwÈ7éiô¥ók{üy¨¼‹ðzna©“Á[eEÿN‹[‘.iÕñ5â›n®=r•?¿Îªµ'Ï÷$õƒ‘xæÇ€kÌ[ÏÎc—KK»_ž€ö‚}YÁq¶S?hL">ð!¶>¿–”ø¨V§Óf`i‹ÊͦÉz7àqžs%ÖÂ_ÍÖBS»íãK¨•ÐÝðx§s„i@$'ñÇ8ìªæÙìÁŽ y#¼nLâg3±üD=#$;d¯6Ra´#ú‹'g‚g±\õð ;ñÔÛsuâ¢?%êm´c“5hSEˆx2á‹çv=¹ö:ÿù8ëÈɼ™©ðWe?lo$°Û «„ëNLâO†‹O#äEI-÷Â]À~|çýÝ,?ÕÌ'w{!#õêWA ²\›;›c×Ó?ñ:y¶þèµèVÕ˜Šwf4ùRm¥ŸXðSÿÝDº†_âiº‘÷z‹¿‹¨w?V0 ýD®Ó‹¼ší3x’r¨=Ÿ ŒË'ï¶E?èÍf®Ôö{^:éQˆ?ìß5‰+ÊÄaZùAUD– ?v¢•E9º3+ýZ&Ó¿d=ü•­×GSo¸7¹W׌¦ÁÖ["JcïmE¨gc\ 6Muc~mfç.¬ªi}¶©/r™§'¸¢¿ËšÄv›‰ºÒRex)ˆ½/ª-ÕN³û+à;†Íõ%Fò†³éo%´ÜÔêÏëÍdÅËï‰þžj^ÄÈßÝ ?8 ü¸‹þ¨,#W‚÷ÍÍflõC$æw‹ ½EGYN½ø"ë&¶ÿ¢•Þ»âp^·òëlc'U?òK˜^òû‹¸ž½KÚ*Wëâ¯ì%{í¥˜m6Wö”òùè1=¯‘¹ûÆ*IÞÕ) ¹X;efg•ŸX9ºô!z²Ã»váYm¨1HdÅkìÍgÒ]Óy ÿ8=¿²[™^VKçHçn+¯³­Õ[Uw¾'2IO›ï±øý|?»!ûÿdþÇ>GÖ ó?Z£œ¿kÑ×|‚Ù(b¤¢ÿUv×nô"D •ô#Ì:÷磮ϯÉßKÞiy²<Šãô…÷Лj‘„'óÏ=Œ{LÅ-lÿ†µh Á½ÆW£¯°9HH³ƒ–ËpÂäF‰©÷](6ëáéVåp\×vR~›´‹5¯2­t3Ëп};öæ6£6¶“ˆ‡ÖF¬•1ý¼¶ùy9ÏÊ lý`ôóËØž™tq¸Ý¸"ªÀúÄ Gý`J­9uˆŒü¥Ý¿ÄŽŒ¾‰Ž<׬ƒ'~‹·Ïs'‘D)³Z˜ý¯œÆï`NEsQÈòŸñ·ÛàÞ·cg[a¥VwþXù8<뛈):‹%ôýnDÒ2è™È…€ò‘ =ÇÉzøfïˆ?-ÅB+ìÅ}®ÅAìý8ž¨{œ{óPû—Ìà©kÆ]HÄYºƒ#;@Åj\ùÈ(ÝÌŠïŒøÍ èìüZPË›ü±(”å\Onàqžp” `#¡êv€IÍ™µ"F«F¾ÓXz ßÂ*u¢Vá"/#±ÈIxÇøœö2 ÿT>_,†s<9ˆ\n mØYË'°GÑ©÷ȳS‚ø#7™W-Éä÷ãçqè!r¤úÎ58/~YB\C¡§ “YkòE}\•û°¯»añ³À½ J¹®åGÑ!¬qK-=raÃOrÄkP纛ë´3ÁVl­GFÕZ¿ã‰¢S/%j÷:•—œàÕd$å?2o˜WÒœ«ÈúIC}…¿»ÇN¸BÿX/Qÿq…st'/ÏÁ{/cRÇPÕ½#žs-óÊ?94< vžbïØÓŠW/Ý'c¸»¼&¹nFm’vö¶xTO}2q@5åG—aeU¤'íx¸+óÏOÁ_-ÀÆ'ñç\G‚À1É_K%?`3ZºÖ¨ÝÓ?š•9îíÄ\ð“Õ ºÖ£ÿÕ øºOÔh\!?Ö‰Åc³RУ˞íR¤ÉeÇzèçÙ]øqS;ÕÝW…̱u曩äSÉ ‹f9ù\˜h&—µ 4:¯ZЧñŠLäl§*ÀFÂ}wÁKòpíÂÚ ú'æ!ë²£Yœ§b“ª„þÑ”x¬2‘%Ќ̰ ΕtÁjG¼tÆa%á£Ê.ÔeþÇ1³¤Ì#æ»Îøß{ñùWo]o÷€þ‰!;'¸~Æ úïF6JQšmÝ:êP^L¯£¯%þ¸ÆßÿqT¦[ÏÅán¾ˆQb“þ‰.ð=´·FU¡^ÆN=›îìyþ×?•W¬¤ûÃ'Ñ’ ½,æqO ÑŠÏEYó®áÅÅ4ú'†O¡¹Kü‘N\ VØaV|‰2“WGlÄÞ]¥Îg×UÄk;ùóüôÆÆ\ø«!0ù¿FóˆCÎ…š †=>p|©òà^Yôˆf×þi™ÿ~£ Ö€(a‹È‡ÎŒeÍDág⸵Xâ,r#¬½" i R-$²s3Šâb‚W9Ï© e?ØÖ¹0´‹a–’m_ƒlö°E;Ñæ¿œ«xš‹~ÿGÜY€WqmoÿÌÌž=sðàÁÝ5@àVîP‚‚»{¡w÷`A‚»Bp)îÜÝåûMîå$9„K¸ßóïmŸ– ;{fö,yßw­…V"êÝeVr«ñ7#©ÖÏ…Uˆ…gÌj¯õMðçµôÉX”Ïx‚'d<»øýQø£ ú_µŒR5Ò„ëQ¤?™åQÞåì³/ˆŒ øU qQ³ƒýûbÕVqG—se¨?Ï@?µ¨øóÓð`±¨Åð‚=HÁªÉêR«Ü†Œ$,¥!qÿ{úá‰Áñæ¡—xª—Òj¨Î=‡×©½ÅüGð¯ p°¸ší°­_`‚³¢Ì¬Àü¨‚Æ ô»E¨˜n]šêQh¦jÊb’pwº‡àM¸ÂÒÔ3žóÙ „Z+!í ÏMQÆ·f‡¿3m{6rüÑQ™œœk’r$ÒŠ~ª-,“|KþqÜÇ&S…ñç1©€_‚ÿÈk_D}Dbð¦: nû¨EMÅOV¨/Ù Æ8DßèÔùæ¨(Gršø¤49_<ù‚:ÁLñE!üÊüIeÞ ã³œÎä§œžåÜéYìî\¿J¯LT΢)‹ÅÿttÞ üj',ÏCüåej²+Ðÿª(­ð¦™þ|7½¯&ÀN)Æ$žÎgøÇðùË•诘¯BÔ”Âø"é‹ÉŠÿç‚?O†ç=~u$ý/S‰^ˆ®î»‰ j²Ã¼()ÜéOÞ;èܬ¥‰®E&^H>KõŽðÍé\UvAüG ¬~2²¸TúUdŸwd|x#"ÍD²gПTÇá?.)ƒ4_‘/߇w2‰~èc¿m6E¿ö·‘ZÄŽTsŽ·O'ÿèÎõÞ£g×#tqM̼ð|*¹àq†h"kBÔïßÿÅïž´åT«{ßÚšü×ø•¡ìV¨ók£¥Ö(žœÖÕ¶ÒTŸç‡9Îüóà_Ú¾Fw£Y¢ O)Z¦[ê5óúÊQ-¿(Åüópò"½?[<QBx„¦X¤ÜT÷Ý3”Ú[ò‘¢0mÈO÷×/ê5/(!Š›8= ý Í Âœ•É­ĸ'`ÕJq Wª£ÂíWm­ ¥~°…þ‹¾Äý öú_ýwcËÅd¼OÀð‹ß°ÍI¢_%SjoÖœ¿"(eóqµÏðšðç9à?öU¿¶æw{R?…pÞ›ÍvNŒEo„]>HÞð›X—«,@ä8«— íì,÷Ô2Ïy;ׂÛò¬¿_ÇúJ~5-ˆÉ8êørèô*¤~°ùÇc=¼¸Þ G%ïú‚uo4‘õ.ÑÎOûłӘÚÖŽ]Åå*+±ƒƒ XÉþ>â}ZÑ¿ä´ö€ˆ¹)ÈK0¾y+¬K!ôw™ñ"Eonø²ÛmÐû†{‡.9+ªªÕ°>SàŸsÃAF4ð–Wè›¶á]ŠÊ­ìlYÝu¼|´÷× û4SíJnåÅÙ8 ƒîEMÏà0µÎ[z]PßÖ?±$ú0£Ö¹7z¯âäø—þr‹˜%¬þ?ÿ1Ô·pÿÞì'€ÏdÇT1bÓ¿ä)–µ¾yÿq\§‹‘ýU1²¤[üëbÉ äŒ[Ð4E\¯©úB´û7~µ ûBσN÷‘™ùçËè+•;Uk#ã ý«:“ãTESµ†î*9Ý9ô'´Á‘Öóñ|WÉ?<Á5?è—䉰úóæø"t'ô@;u‡œË÷S—j©\G<æaôWIŽDñ“ÛË¥¬Vv†é¯îã¶pR<á‰>2?Êþ%G©#¬…N6?*Ù?Ì¥pÌÕP/ï$÷GmNj#gGolñ‡c½ÊQõ%êòÜ0üꕾ–|fú«Äó¡ð)™!uŠþ%i°øWè2üʚܖkF·Lþ±E”vÄn¨ÿ(NN^‡Œ»ºü f¡¿2íué·»˜ •¯ÌÙËü¨bæ Ô»×è“{ÛÌdd£~Uò¤²üGsø³ÆŽS¸›I̽Á¯äeXEþqfµõyéeÒþ| úݬô‹œ>ì13Û«óÌí¨N^‰‘DØô²€Xá¸âîÃA[yå¡ãǽ ¢³òÜñ‡?ù ȧã?ZhÙ´MŠ×Ùš1?ÊM-¢žPâ+—~òý‘ÿø•m!ªÖNøø|úqùeÔæŠ Ö¯ ÖA»€7ù5ÿQI\Ʋ¿Æ^]ÂŽ.zK%¥¦€q7d~T[ vF³ÿîuæŸ×w±˱ ±®dqp¢†b ¶ðQ]còá"«F‡?ïÌü•ð2ŠœIÌŸp‘ø.,Hv~'#‰š3gɇL'—îæ8ÑïVøW¥•6ð$Vþ‘ƒÎÓ³°Ê™8_¾Ø®«`)áTyÿtû\Mo¡ÕŒdÂ×ùöÉ®-ä=jˆï8¯O@ɵ†'²Óº µ¤7–t&þã(ùGlùb'}[&ÿ°ÿn,¥¸šþú’tàq_„èi J ù‡·>®BȳxW¿‚û»¯÷7Cø ý¶/›mýKêàbÊ¿x7‰|›ñký÷Žnøâ£fÒ7¶—lHÖuþ|ÙI¼GyÝÃñ憯vÈæþj\LgìZ~ì9Ú®º,ØU;¢å3<‡~økÄßPª^ÂãzcŸÖ‚ÿpîî¶Rí"¦ã×rñ÷@k¾œ Kf4@wµô:½ÈOѤ©±úÂôxº›pJ¹Œ?$j¼ïæŸ'P?‰:äó$r\ìª"òÝ¢Î4GØÁð 6`h~¸§Øæ½2üÇ2§þ»íU üê(Oן[]>Ós#‰í=e^c¡2Ø·£ju§Þ|}ORû’‰+OmhÔ¬\C5·Î‰?ß!*ñ3Ï£Á+ÏýKÁ5ï§~š„ð'EÐre cPì;ñˬÙâä¯ëd °°—Ô8æ4ºÊÝø"Êl%õHINA%±ܷ&Æuc ØPøŠ…0 á§ïšýˆÅ%ª§6æZîódýwÏ—`’ªaõƒÉÔ[´——»õ”bÈæx÷ž*«µ à yÊÈ[ õ WæG-IK‡ÿËl«PøôEæiv]”»ù”úó¦Fm®)üyv½ÜáU:j=a,‡b;ròöž6jÛ_³‡zÕ»1¥·#ž|,`5ûpô»’)À×À@›±ekÞ¡áÔ€£N)y„ þðsýýé´­´âê°!Šâ£üÚ\ðý©ô…òg~T;-§¶5¬ÿî›/Ú«2ôpßôËõêÌ¢2ïp6ý¸x/_™ùƒµšÔŸÖžR—Xűëð=üøS%Ð¥–ÄŸ}õø‘ðã•Rš3÷E'ÕJÌa~môôW¡ÊøëXµà;ÀmâÉ‚(\ˆÙØ›³ÄÍÁŸúŠ˜¢ºˆNÍK7mÈIð¥ÔW›Ùßm¸DÍå|ê@^rª¾O²ÛŒÑ˜?XViA\ÿ‘ŒüÃê Uˆ*‹¨ý,G1$à¼ÂøOÝGëø“»˜X[Šþë{ øQX½B¬®À‹Áê[£r]Á[vm–55ñ,Io±â‡ø• õçåA«Æë ñ Ó¨Ôð´þøÜѲ?–¬UEò‚å¨>‡éóÑ!ë9ÀTà~§‚{¯Ê¯e×äJïs…ÃáÈïh*ú¦ÎXµø¾m¬õwÆ}}’(üÇe[bú_ #÷Ï›+[ÄUÏ¥ÓÄlç"&Ž+`a7Aë—Ûç„C>J¬}½f”ݨtVJŒVÛˆĨePIÝÙQä0ò´ÚÌMõ wê^êŠ?‚_í%[p‡ÿh ÚÔ>|ÚÜr¥h":=—,ª‰ïkO=›þ%·¥5qî\…Åñ<¦Ú­Ì}s?ÌHKüÇlor¥»è‘vÉœ\‰?QOÄ·ÃWuõÛËþ;£ß­MÆ ž|šQ€šÄÕæ$&b¬‡O)C¿]oô»[Øa2¬³«!ƒ<é©ú§ùµk„õâU›…ñeLé×^_”Š¿Ï ÷q‰ôß ‚=[€uÞ.ŸpʼnPi…ˆiŽíå£ûAÝš¨õ¹Ÿx¥J F?8ø’ÌÞ[„â*Õ˜]éø|¦,éwo+ÁV‚Ý$nàXo>ý5ºòžG3çj|ïô¿du:\}fFRó0žcüy|üÇY¦gí¢¢Ÿ¹…L¶6ºíbr%úÝE"¾Ãþ€X¡·aêTòߘkU”þYëé­’ëš{Lžý¯<ôLì­-'Ð,-¯ã^Rº0/В޼­qõF]ûuúï®G½•OÔ4q¸},š†L&ym^ +Ëdú;RÑ;”ÿ΀ffúŸÌ¯=nËa~í'økòìóOzòj|º>S—…åÛjÓ½ÝþüÇxT«þúm¬!²/ET¼Žë=Àß7eifc:k/æ1¿¶;>±"^á Ø+b‚³z-øl/0ü8dÕÌ ÎÔÒ(Çÿ'¡XªO¶°Œ·ÝäV:§9÷ßM­&'÷"Š^ ‹mé¯òb1sÐÿê²´ÓÇ£7øÕkú‚œÂÞǤʻ¢,M•ˆ²]f"V^¡lŽôTÚ©ñÈÃ× fèç^GÆ!ói ®–’ÈühNûaºšç¥ºd0Ò5Y æwÕݱŒ£<énÌ?Ÿi½)èw‹È}œ­šhs]á‹6ÓÍwža¦Qˆü#9þ#ùG PýêÌ?_…­oE Èe»tF+¬ðHÇÃp¿Ú…"• øé£:=s@êî£ñ¹ÅèI;—޶ >#”üc¹‘€®S5éoͯÝ% £ˆæÄ'ÂüÙðç6rå‡Ä@od ðÍ5ä<}èW\ÖœÊü¨Í(w_¥°Ç2ï2¿vªYë¼’J¢z0HEasÃH…óçá?¬ŽEí±e`þ·é>Æsf£˜„ø”~Àó˜Eu‰ühÝ|oñ¤mfB¦Št7ªÁ¥`–N|vHü*ýîêÏrâßýÁM¼Q{3*Û’T„ÿi<3·’ƒ½’5Íxt{)ÆÃo#fÊü?ñûmù"Ô~°µT~­¯­ã¡ÛìtHX¦º’ÄÑV‡åAäeÕßùï ýK~M%˜ÿ1 T§ úø×ÌÁm¢ÄfR`mêÏßÓ×·l¤ó¾¨?U!œz;–æ6vdšx‹Î4£fõóÅEƒíßih¢^éüG1qÄÝbT6ƒJäùÀó»‹@lá9°¡úð=DB²š¨ún8¯Ú Åó*Ñ»7V·:ø*xŽ)pÀÉIWej².•çM°ÞIõì?õ•Žè¯v &OŠÎt8xªçˤ%”eö66¹sNþ|<³Öô'w1ùÇßDZ=ñÓÀÿ¦c¥·aUÇc%š¡éô'bß>ô”ë$û*–þ°b\Å]ÍÇß[” =!§¿ßóT_"²îììë'GÙϽÛ¯_¡{Tþcj=,¸)ûÁ|Ü!º÷ÆÓ¶Àû¼æ×wÚ)í+̃Õ—5ˆ<­¾`1¸æò ÎÏÀf»Dÿöõb4« #ÖÎÏ9Ÿ¼o2WjÍÉ޽K,}ˆ•¯à“rP]q–'}œÔÑïüÎü©rÒŠaåÏÐ)ð ÙÛI¬aúïVÙ.MŸ¤Üô©ò¥’8„õSâ;Oá«\vpɃ…‹ÓsQÔ$ÔBYõ$ôÂÀªï×óÀÄxk0¥ËÚŽþMÏÌëd­ñ)x¸"pØOQå”y8§ œøó¶ä3õ‰*>ÃM?ç¾Çà'÷&c(MÿݽDÒ9°`É©y ¿êNžTšûcD÷‰øü„Szßi~í QŒ®.×9W…8±àñ·£˜fô“ èß~ýUBršøóÌD:ƒ x3çg'=ºÒÒÏ¥ƒ|A/•ƒþ%‡¨€ª"C‰T—ו^Ô  ê£2³/–ƒ ÙñO°ÐðçM¨C߇Ÿ‰ë7ö—ëÜOtq<ä ÊÕg¼ :üIJâ½xËñài%à2ÀŸ[3o‚g¥%C åëš [‹±Ð”#FÊ'ü#ð‡˜mW‚ÜÒ[ßNþñœÈ´ ¬¶'ªƒì+>»ñ1òy«#ÏÙ`&‚ÿ@·­gÆ 7"†é ‡äç8…AÊmÈÅiïŽWJ£ïdâÖyú—ì c>¦FÕ6³¢þ£°½úÝ·¨4ê(}̯dÛO9³÷ÄâŠ2b‚ãŠÿ¹'l®ôúol”_ë ¾ÓLÌŸ£æ€ÿˆ¥ÍVJpþÙêÂS ¹¿Š¡„†ÿÕh|J ƸÔ¦жÉ"ýnµ#þã7áÆüƒø_Óïz‰ýDá_A /€ˆ›"ýU "Õòøf(&—~g¢ÞæE*±:ŠçX¤aqüßä ù‰ž‡Š5X¼ë¨vêòž÷¸õ‘~·%úÝ5ä—àæ£èyJ 7ŠèëZ˜ÿÈ©AXç˜ÑÀ¯j)=ñ!àWI±r#É>ÜÑ÷õmy¢”˱xOøIV>2¬µ‰VÏÉNEÚ_dÖÖãš‘[ïǃ%Á³Yª“j £áòâáyˆøþ‘ìVõ+˜dT¼Õ’Ô1§ÿ•¥vŸÒÍÀ}ùG#}6T—ÖŸ`›§ò³fÀ×ÜùAÿö©(,ªò÷âȉøgØó*à4íØÏsò%ýwc`™»“¬#ç:ÈÓúúÜ ÏqonøÕÞÅì“ñ£@2Ãñtg‘³²ÆF,NüÈ3ø`CAæ¯áWbSÊêÌÆt®nš«vCxrÔµ]aOð_ÇQp¹R/èiYÓ°7dWº˜ì#KJ†ö8Yl£¬<(Zg9š€H  ÌÓ0°[(rƒ_02Pþ–j·Ú 9O±¢¯Qt%Ãq'z¸NàB-anPÌ=ÊÞHOº½ ï¶L¿–r™ìÂEf4z0?ªùÇ"èôËøl–7¾Òa¾>XM²Ù}ð1©9 N{Ñ©òtþ£¤ü›³[Š«ù¨ß’{áÏÿ4Ãd§yF´·¦ý"xÛj¸…“T¬ƒZû ãÒüÊËñ0òÒ÷Èm!2ŠòO¡ *°tyE·âËøèd‹’qõ6—yÐ4åÊ·‚4n§Ã£?;=¨·ýë­P.©:ùÇ3ÎðGÅàYÎê†~µÉÈŒrÍèþùQ<ò‡ãæ³ ámnEm€÷w—›ôÒàÛžŽØí‚¨•Š´äm*$oˆ“zwX‰ä-¥È²Šà=^˜7Ìòð稹ˆ–ÁÄ¢þ£$g5­l =F§ï÷· gþà ‘•Ú¥h7ÓêGaŒ‚¨?bÖIN3·Ýÿщ”ùè_2Ɉo‡ñ'+`¢Ü ~p$ó-ö’Ùä‹€~[ùÿþ×£6xµIÿöÿ–?·cWשY‰¦skË ]:`ëûQ®býw£S ~½wmó©é¯ƒ%NеU_©vµ‘òY+‡ÿèŽþªžZ4ÒûþQ*‰uꈕ+§qõ)ä1¨(*JˆªøÍßͰŽz¥Û(Yª‰›è¸üÙÝ|¢ïDDxùˆ'–cñn®X»%bD§æ¾ƒöWÿñ &y¨ÿsìL7NÚÎÄ ˜«ÿÕK𫮜­üŽ3õÞl¶rJk¸é`¢™DDÆÃñkùñMA*,4“]¿ƒ­ð‚Iœ‚륵ûÉ]LªÍwi zv ¨‘S}I5µdKx€¥d뉬m ûØ71û‡õç1”¼jQ|Ãhê?r‚ÖÅOb÷ZGÑUe]кâ>U^‚e™Ïoë'E™(õ»c¨ÿhÁÓL!'cé¯&5ãi6À—}!_J*h’ʼ*²ïÿ5}(zi:À'ÂKíxsÃïâ[ ê?†ò“‡Èn T¬JG®8;LÙG þ¼1z&”OÄ·îÄ;Ùé.¼a&üG¶ï´{ Õ¿ˆUZÀÎÀ7£¿º‹&âÖP£_I6c+ê¡/Øþm̬»à »P–Õ§“Ÿ4•3ɇ“9=—ŒêQû’þã-V÷8ÌÌð«TdO‰–»a±n˜§øY ŒxpÈ%ÁíoÃbÇKŠ[k~µ6›z®zè‡ê^T©×ŸÉm´¡þÃIèÜ”Û~ Ö¶<žªº,«‹yNNÉàC–â»Fƒ_-Ž´ÞÑþ$Y`M9Lï ý×P>@Ž6JÚ·Á¸Ðþ®¡£êmg^ãô¬AÛ°–œ&ŸYW^Œ=g'ÿ8Œ~×/ýJ³%øÝ2ø!ä…Œ«ÔkÔåSatMCð±±×-ðûATOpG–‚=^?në¸ÜqÊeUâ?“ëÚ7â3ùnú'~¶æb¡7 ¼š g‘”úó3tÿZº©+ý¯>èM‰¬þÎEÑg†çþ'”¥Zm¢•vœyˆü£5UáE©,OT›êýÛ¨€^7NÒ ~ õç±ìõŒ:œ•´²+Ü_C8ÃÊŽS¸Ci¯u¿êÇ{ŸVð þã˜YÃ8hœ0Šá5Úš%¨??CO²¨²Û¯1×6·Qœúæ0£ÖüSäÁÙÄÇÿsBm%"ô»3”NŠóäšèî%ý¯V¨¹éæ” ÿae1lmÔ¼ª'½÷)¶_œ%é_2CT¡3-ÊØ³ê#õ£RG‰IOÂâtHyƒÿ¨éüþl—ÙÅ|ž·'´þjš¸$–“$ W¨#rˆ–àWÑ­ÿxLÿöº(æ6Ñ6æD†)åÃN«É?.Q[“É:‹¸Ìqž*Õ.‡à?¶!ÜÃwÌ'+xJ$=;v‘7h-öâ)¨þkQû#£1?ªœRŠËãÂËU€:º<`ß*û À®f•VýÇ'|HKüÇLîƒßOóÔÚlâìfúD¼Úpê?¦b›—Áj.@¿Û$gëmƒå~»4ÏKl`ÖKT×i³ÅVjÀjá܈t3µ42ÊÃv·%þÿLe\r¹Šù)œîar51ˆI+b€udA·©¹É6_ÀHb\§þc(•Ï×`€×Ò+¾“?þÃ<ìùÎ*™™Ha—²>ÒŠUW¼›5#ÉŸS—«Kÿ±ÔÈ$=©?ǬÙ+̇ÍC÷ÞŽTqXùGF‰C±Îù‰Ég™%ÍOÔUÜ3{™s W,õטּ p;hØ!´@“Ãñ«•ÊôWYÁ¯à{äW?“žùQ±íõ©ˆ/î$ì“©v‹+LÏjHF·”˜ˆÞxÎiðçSEGìvUÙDþQ Û±ÍÒס»j¨ö’Ô 6…—±¦ £gI êÏR^ÿÔi„Qœˆ0•lJþ1@£×üvúN)=à?Òß·ç|¦Õàq¯ƒ_í6žthòª}™Þ>ØìdPÀ{<ã&æòî¯bšþÿW–S¿-øþJÄ*'ÁPüçÊ¥ènƪ\¥ÐúÀ¬›_{ÓÖ‰Úêjquõç¿6Ðòˆßà¢éÅ'õ™Wm¯H*ýÒ?ñZëùóÒb)ü¹Fwšüc¾8€ÿ(§}"«ƒ÷éŸèÌF}å¡Ê;ò«Þy xÉjlHZêÏÓÁx¬!Ó¾Šíòâ¿a"½¨-ÿÑþ|‘ïC¢Ý¥ÄZÏÉa˜ NÔŸt(©¼Nýþ%p' 8ÎpÔ{³Ùš+–—¼ ÊSné˃]¤àªO`ß³“ÏlßÙFd½_•Oo¥µp<û¨W̬mâ [“wœe&~¤È]59ž õkñtVo”ìÿ0þ£XV;êµâ(ÍÔâ\ßLüGaV”Øó)ðt&*ëªÏ‚yxÁÏy…Šö ¾c Þô¤~J Ñ¢ÒAÏ'ë¯WKM¦Ðvçþ£6wþ9;¢‹¢¦‰Ï`â]蟸Än÷¶,ý+€Åw¼¹áû|aË~5›Ñ®p[ðh³ðVþ1¯!ˆ—ßb¹·q_ a¡ö„>"ûIFýGêïú—ŒW‡ˆþXè X ‡ bOÑ \‚?ͼóRaüù #ù‡õÕz"öøxãG`0iÉ?V¡çpî"䦨˺aO×ÀbßážçUó0²Ã…i%È}Næm1s 0öaâî.²¸ôxã4FZøóòæ6Ž´ÞQ{o©kàmmð0KŒyÆL£œÿØNþþcÞn)Œ@Z)üôVy“;RÈhLÿÇö àëN«×q*~µ‡5kS‹=Ô|Wr™ùQžx’ÊôOô3çñùS•}œÈ3`aKy"{õvºÑnR®ªqdnyž3rBÆ×ërçú‘ÍÐ_˜ú‘tÔý¹Ø'€†Å±Ç5O…ÕÖàg-Só&ÇË+©?3#ô¿º¡¬Õ^¢ M=É1r"ð«SF3Ð@›¡Ù»¢¿J ÏÕŠÓ?˜\¨ãžc~íp‘\DH,ô¦è^ȤÚÃäõøÜÇlÂüó}Ì·a†©M.æbÔ7?rú´òÆ—åÅ|Çüç>·‰Ðÿ*=þã׿ú…ï4…rNÙ¢ºhí5©­ Ó_Û:S{nyíÊgÛåð¿Ove9õƒåyç“èóÄò,j_ð«RôOôÕÓ¿ÄšpýrrŸ;p§Û¢Ä©¬ÿ%þ›”ÒZZ<@~òäK£Y~™ü£’¸Ž}[‡…±PŒèwA/ñPãÈ?ÚâŸjêDQVD‡óéŒÿX/zÁ2L%ÒZŽ%¼·¬Ò$“\7 ö &¨7ÖöçóϽoòc¢(•pyå8ì´5³û|F/!«ûŸ›ë‹àX2è•XÐïï§›¶‚÷¨)9ÃQ¾CúÊ‘Rè/ûÊÖè”V`ý/¼Ã:žÂïõóéµüý:Öï$¤{,Ö ž©¹Zl¬?¹âwè¯úàÓæÈ&òþÃÒïž öɾ÷éWE3íU .PÆk­ñm‰åtÞä YÍàà;²Ú'݇®˜ï4Å‚£©ˆÿ`.;ùL1úäÄŽ77|Ùô¿: æp×FÐs1# ¢íø¢9Üÿeò_ý¯˜jCq*ì¬D¸sÕǰlñ±ü­èŸèœLTûS6ÅÊ'ÿð†QC^ÙYI%éA¾Þ`ú*±üêâ*ƒ6yaó*cŸ'€_Õ€ÿðÎ>8=õU‰OËRÍî ªt[tLº±È@[Z£B=d~f‡u©I_„–¶(±ý5ú™Oeþyaú·/ôTºã,ì)£PòlÊÇmT‡ÿXEDž‘ ¶'L»;%ÛâW‚ð Éá¤ñ…ë?†¯¿ªµŠ´ÞdøŠò*êê0±æc{ƒ_eašw31|ü)ªåÇñßáJ-ýÕz,þcöè#‹–އáÉ^OÔ—·È·.°Ë诮ҥå)s÷v©übä¢~¼·9…kú_¥fÖ>1wÓâм"ÔlRžƒ_eÃìÕïˬìð¼ô3¦‘odƒ?OÇôßOÔj¬$çŠIþ¡3‹ð³ìjN!Ž©ËÝö..6 GìvWÙ£UD3Þ‚H*•TÉ€g€OÕÀUâ©êT£¼ª?¹‹ê¸=x˜AW­F Þèèws‘óÝ'ÒúvÁ'Ñ_)xÚ‘›äÔš•a;¬úÁÇFYº–ô5›Ù;ÛÏ’¿õD¿û…®(Ö”²¦BÓSñ'èöߨ Rÿ“þW¨?ï¿›ÿaM.ÿoþIB…Ò8ôW–:jrjënqèKàè£Ã„ÿÜÌŠ¿6A”c‘Üé õŠjS(´t"…VS %§©üKûÌCžçEüéMHj¸îÝäÞZp'U¤¦ÿUúïF¡¹‚~×C\…ØŒŸ˜ŽõŽ?#góÕvÞÊâ ðý©ÿÈ&œYÕðë ÿä ¾ää vy+ÜÃ. aÍœ¶õø‘}èý KíqSü\¿ÛüêÙU,CV¬r1î`ìÎZ˜ýÔàW[Q/nÄή!–ýHeE…ŸÜÅÄèw`™û‘±ôÇ3MáóTI3xûk Ï'S:ðËáϾ 8Á2¡ÒPMÏu £Z¦8¾6ù`O¼°ÎÄq?ÞÅ0*o°õ_¹ú£¨ º€³ÍEååü Ð°âña{|âQØßQ¾a*ÐH^'ÿø?Û+´–;ºô­Ù~6=%ØKøÝÿöé.óÏŠ© QÖÄB7¼Âb"&ÁIø‚Ö­'ÿèCµÛßhmÝÐò^$æÛÁÞà—+F_Í„?Æ9(L¥~0Ø”5ÿã,ÕpŸ°ï5éŸèIlšÈXƒ~·˜1ý“ Ú¿Ÿs8y üGZ§çRP…WlOæˆÅÝAv䆵ÌM=øEy—Y-@¯6šÐâ–1À™çAýºô¥œ5Ãø0]w¾]«õëÕ…'¹‹{ß?T—xØŽNwŽQˆþ'é›Þ~Ž€^ÆU”OuŒ² ÿJ¼Û;4b‡Ñ>Ó:EZo¢(¥½Ê)«KdýÕ,cóÏ­ü#+Õnt¦MƒÿØ…þª¼y Ÿ¼‘º®á\XÏúKú¤Q¶*(-=SNð¾ÜµûTRä6û5zÂG鵕úóϲ±ù<ó5Yî±–(ÊCÌ‹ø€ÿ¡Ï7"éw“)¾ÿuýGbð«Õjš°ùQÓÃøó›¶¾j6«SüùÛ¯áWnÊ îiEt±/Ü·zQ•j'øT"™VW»¦ûÅùçùÅ\r™g¢$±S¼ÅQp–æš;ü€MXª`?1ó»â¨ÁüdSs³‰Å%ïë.LÞ¹@ì#^ÝÍ3µTcu¨ÿ(-üj¸6䤑ô\VœDþqÛW~E¡¹µ¹<Átׯ‰¢Ž3õÞl¶v䂉Q™dAÕäÆi•|ï:Š ¨>C°ôÛ±kØÓ˜z}'âûU“k|OS|Ç)Ë«‰ñ|ÞUœ ÏÜ+µŽ·l-ã)ùÓn®¿¡ØúÃþ‰©•zj.êPºcÃݰÍv˜™A°)õÙ(Iºá?ÚÀã†}¼»Ýx£VÁþ{i¾ß˜m»²Y«‹gˆ-'’YžáS EàóUY~÷õçûe Xݵd';@—Ë’?åF_ÿ6 ÿñ˜þ‰!b&Õìƒðň·á‹&1ø“à BÛÃz:§_·/,Cݰ ÚvúIÏAý¹sïæêp1„<3ÿI¼˜*­ÚR/ ýnp¢ôƒJŠ­«JýÇfê÷ìx­ÓøwüìÅ¢£pVѯhÂÕåߣ*Ý ?°…*8;õƒQ¶v âÝ‚ÿ¸FýGc« _8 ß2BfÇ_;ϯí¥*œ‚ÍD+õX­–üÌdŒ†ø/zCæû-`öÇvâÝBÆFÙ™Š•\s.Ô¶®ÆW¼Ó ™/µZ‘üÇlQÅðqž[ap© (‡GSÈg|èŸhåIá?ªÙɸÖåÌP¸Š²!XܼaNð«3¢‰ã§Æìb’`·å8a›õ®²˜;ð«zø‘ÙðÞ7èZò…úaFưZ c èÙz§?ëM¤~ð1ë=æ-8#€ãÞEVŒ©8þÇ…lk?37šú«+Lò_ÑÔœOlЂš—T’*\üGuÇ»wZY£ÕâÝo˹/&ωKúÃ`~ílv’”žíGèx5Dqœy| ÙÞLc|2} wÞÀ„²Ìû$ù"BýÇQŬ>1ZЂ úz£0h•/ýßQsµêØÛ_¡0®Èd«ûæn#1;¬eªÒšh4tb3þ#»ã¸âîÃq[A%Žã$¤Rú)©_ýÚ.R‚ëRsÑ]$­¶T)Ë*Çl=é]R‘ ÂÕpô¿†_ÅG#7 þ¼ Ó,ÚˆCª@cß@‰‡MÎEÿÝ j#õg‘säÝ—]ª·®®ûŽÉüÁÌØfW,}E&†ªÑËÎ)7”Zâ$¼ï~ž÷BìH|™ÕÄHÁôolDt>^D Eùhõ/¨ÍF¿;ï\&¶öÃâÏ¿À{`%RÊS܃»(¨zèñô2Ž3ù꿪®,"KØ/JÀs” ò ¶Ô΋¼#”Š3r…‡Äêu@á;½~:?*øÕ±0ÿ±{‹ü¨-ß_¦w´´&^/ÅÚï`í7øã0MÅjŹvúÛî²€_y”Œ¢§JVøFghÖ}}ü=bñHvý\}06ª-9Éaæ×6Òl$Cí"‘”¯!˜ßAòªd,†üd!ÓÚíúžž`C»ÈR¶¢ +æ?²ë1ÈÁ·Ùl÷me´ÓxG‰j°ê;ã=Ák:Èô¥‡)å G [Yy*ðÛÉ•âË’Z‘ïÎÎu4ÈB3ìýQ0šª ù¹ueBÔ»ÅÑ9ÕÂä€?¯"³4¬a}˜•)x(ú(ŠÞ"›Ó[XPM îÚ œ±ÁÔ9N‚«Òå¿î_’\g‹š ÿ!µEŠÅN\ÿ(N¥FQu5Š'é¢R*óÐ_ÕÃ`™kTSóP1ÿ#H¥ùhÕšjEÇ®£³pNÔ”•™ETíHL}¸.(õ´„ à ˜ÿQCô ¿Ã°£^÷ŒrF©,£-]‰¯˜‹ýÓé0” Äj5ÙÃI|J°¦. bUÄͨ—ˆô»­É?¶°»«0ËáãC‰ôûƒÃßÅöl×¼H>s$¯3™Xø ›HKDøÂKiBÄ~H”&Ï&Ço§ãëöäWˆ~1ßG5Rö|,8ž÷Oõ»éµ¿ð5ˆÞy‹Éæ`¡·³³YXæjØÑÅðÛÙñ[¼Þr®¿!¼R‚<™¤Ššÿõ'w+kØÏWxgæç-”>¬ëÏŠŠ¼D†tŸÈn$Jè®`m—PLD…ÎVækmñYñäP¾7˜ïh…EìG‡ ÿx® ñA. Ö³/¿^JP 㮿ˆ"ÿxaËÿ1•»Ö›ü£€Õ-Ÿ?Šøw–Ê¿Sð]a¸ƒ`A2rg-¾e/™—$rÏMÿçÓ½\í%Æ‚8cðÏéŸx$ ¿ª€ÿXhdÂR¹ °‹¹¨öó¤:±ÌHù¨ÛþùþÜMµƒÎùQ 1^ã¬Ü ›žÒ8ÿÑί«ÐŒ‚kiLN²–̰0ùÂIêAfÝT…ÿˆ\>þ£9wå•^«[‰{ܲ•AõíçÅÁü·õñ•»J0ók¬T ±æQòò0ÝêÒ_Î?Le¶6[TÂ$cÒÊ!õ©ê¢¶¡ÿUQN뤽V[©å»þ¶ûÿô«‡˜CK³>`¬8NBS-+oVM‘z­žbƒj?›íŒrþ‰–"t-oôzÎÕÿ*5UŽAäÇAgê7wý¨'®ÿ§-ýûϺi´u`åXQlé *Ž`UuÞR‹ÿpC¬G‡›æ0_EYÇþÑ¿+ÝPIÕ‰Hr’yç'¶á{6b•SÊMìú¾Ä¯—€"uÖºÿä.æÐÉŒ¼A¼·c5 òæDÞåá?þDÝèŽBì¶û«>æí\£×ÁJò¬™„ü£ ùÇòw”\ïE ò0 ÅôOlÅÿ›Ã\bÅ;dS‰ÆV’ã½bþ`TøÕbe,ú«#Ü¡©aüù žo]žïWr!K¿ýÕ~²òò8k†ÀWÕ$rp'÷²9"¿ð»xýÕJüÇ}(ZfP‹u¬À•.À£Œ€íýˆûŠ]\ŠmÎ-¯à=‚øÏ•ø†êÜél¢ÚM !/ŠÚ‚»×"ú)pÓ/˜;»Œh©‘„Þ_¾ædP¸¿Ðå&e¯iäú°õq<ÜUäïÁ¯®…^•)õ„øÕ*Æ1|d[øóÛè¹^ç_4íö„0,gÉ2ÝÁ¯žÐËk96ýzÄ QÎñîÝQ¶i¥±]xß=¤‰f¼ÂƒÏFqe'ÿè®vŽf(ÛßLMƾe•u4×ïð«Ij?1ˆü£ (Ò 2š¯ä2—àc¿ÈútP\KUr(ó£®ÉžøÜI8ìëXòä`9ÛD]‘ÎéR9ÊÞ»‘uÐEå‚<„-:N¯ÃÔXøWÔ2´¥Kß ó! ã^Ô%²Gú•ÃBÄ€±.ÆwžvêŸ8@M_´“ÚÍF0ØžäI©\hÔ£þc–/. Ò—f%CAC5œíw¬ù.ü‡Æ=µzч:!Ÿ‹Ê­0üª,YÔ[ýš<~5ÁX žÙ¾ýî'jìÖÒ¿d=9®ã•÷¡­^‡“ zÿáí8,yå4w¾w9/üß.½5ýwïS%éFg‘/aý¯’À*Ÿ4½é_òžI®Ìuàz3ñò©ñIäê?ÂëϨÿÐñ¯ñËTðŠ»aŽÒ¿Ä—=ûD®púó8øËð 5ÐÏ™m «’[úëeÅ2QËñî½QökAÚ/åGuJk|ÄÌcâG2tf+™Kbå6sÍ[tÊí¿’ÿ2Ú(M–ž¹U©—}L¦þí‚O)ƒµ1øþäÛ¨|ŸÜý§ýw«kÁ½ð7Á®2±¿6¨Ë küK6@#º¿´lÁo³ª¼û‰ã?D@Óâ?ªÕÍS+ïJÖö|”5?ª/ü€?þCÊ¿ñW/ñò³È@¶ãMï‹&šswtë¹Ïá¤ÏoŽ¥ {Ý7³'Tbé«i„Bl>þüùLèZQð7Or‚Ž77üüܳeÒ‚xÂO÷DkÿщŒÐƒLkhýpPk°£­x"ò$8ãEr©|¨¤;j1£È?Z“S¶¹HNЊú?PHx¢`ªƒ‚7Ш‰Ò3+}Ñ[¬–ý‰ÿ{  D‹Ô€X¼²HítºKªqˆVºP½Œ™´gà?²â™rÑÇûýK:ÁߥŸm+êJ¬ú2¬w{ºÅQný”²-ÒŠÝÕXxÝ}¨ÕÚâkÂ;¥ Np¡QS–¦~pVk]¡<éÓ7¿²…+ÈJ&•œþ#‡ðCÀ¯šGZ/@äë겓Š!ÔŸ?“[éTòÙÏt£üy êÏïƒçH8–ZTkøÃþ·ƒyy†ÿ(n4’WEÇÃH¦,Q® T®Aþ‘\bÞVç.?]ÍóÉ;bÐÑ7f`3ùGüÈfrÍAddyáú3Èsz‡õƒKéß®]Òê—`ƒLüV>ºùƵûÐ?ñ1ýZâ?nòµª¸Kô®*ÀŸîã · N*MüQPLŒ ¿zrš³Ö’·?—|'BôNè«*™³È;t2q¦ØoæBð¶³t‹\I½½Íþ'úÝôÔt‚ÏìÊ•UwœÂ³àW­E!Þoؼä…¨6oh7’Ó÷>>ªÝtöä…í-Ñ ¸ÚÏÁ倿ùʉø(Æ“¡K'F;îà?÷á‘­d½þg›·’#Ò¹ˆþN>ÚN’”bºS^-$¬þcókÀ WP7+qç ÿ?¯üÖÖþ¼&¶87Õ~gTCsW}”ZYÔœ­´›teŒ¬ÿøÏ«Ùl¥EþÝ$²?Œ&„>™þ퉱<¾è»šˆ bO4û'žP‚”6â&}vø8¼Brú—e[ Þq‹Ø¬ÿý +_O„+£¼?/m vJôÁ/ÂbZ|ÂU´žqˆP*`ÃÒ5Õã”ø§—×k;b ­WM¦ÇÖwŠìt»ªÂÉÏG¿cúžQµq–«=mI¦°’ ÚQNS¾_5³¶ÆzðŠ§°èqðq¿ã%r`éfÉ–x¨ÅØú]x§çØíËxÏq"DIÿƒ_ɧzre#ðà9Á¯Ì×Xó?:S¹± ÿ¡€]?:‰ížNŒÿîp~Úëï7f¦ ÔjòçYåXžèžFS2¿¶xóxr0ù}ú—lÃxÉm<•}ä ¨íõä«àxs×=dsÑÈ? •Áðç)±[a·èaŒ=@-w|,íð«XRwy/,7 ÕÓp—'Qÿq.|©°OÝÕ6øZøŸsÔȵ@4ˆ{ߘúoêÏW2¿ÖÀJ”ÝŒZøÎݾi ÿ’›DgáœÃéj rñzä;ËP,Ý!+Í‹'+j¤» FÒËÜü_Õþ|¬OvyŸL%…q–þWõíÊHO¥µúY4â®PÇêSG¾Ô]¨‹/Ӱܶ³zº¦ðýQMÕ%' fRybêÏŸà ¯k~‘Ö[~·2 õaNí_<+rYVc8óH*Ø—aí㘠í·È_æ2­ä XXº„õÜχ¨êÊ¢«ãfVQÿQÿqyœL¹=­‡àB¹¨ª{døÃ—›tÔºH‡©Íôj„?Y‚NayE^òÂäA“#Lاìƒÿ((-åHlã¾ÐPºÕ çdL*»çR×~¥À4¼©íÙéß~˜þWYÈuÖðf7&ç*þÂS, ïuÒðçÈâ©%“]±àxôbœ•˜¼r,þã^m•~×±ó{ÌTmŒ0Êâ ]e7lECy"ÂüZKÕÅäÄD{ûŒføútiOkfg6‰ÝÚ÷SÙ½ØgT]ùÍÂF'3Yûg"Ï× ç©eáÿIýùßè¯Âó¡x+¿6—ÉñÐmzXÿvWê3j;ÃòÕôo/¨–Rsªû%zÕÝßÖ{eCýG¸„ìúLq[§UR½”3ZQø–Ú-üǯñç•D ñ© †u6x´H §ÿUò–¢¼ðˆ½ßÅßöù××\gSò#DÇ͈Åÿ‰v§F£ØLŒk¡<~x)?á"‹‘¿5ʯZkcµ…¢'*Ö%ظ…Dã/aÉ;znjØò¶z¡›õõ)¤‡k£\Šß¬¨4ñÛÉ4³ÌdÖü7ôÉ;^‚‡`‘Ÿó_WÞ¤X£?åÏsjDïÍ`»ÏÀŽ¿ù¼‘wq5ŒrG0¥ìû vè5ë¾â§Œ;ØÁ9±RAmÂ>¦S›‡ŸŸ’ì{^é¹¾[#Ú_óð•·ÖZéJ´yÜáhÏ|µ÷Q\nò¶äF9ñ’õð#[9+uð!ïá£zê.âžm+ÊO¹O?­ïЧá;ìøšzÉ(üÇi[.²ÀxïedyPë¬#ÓZ §k²ƒ½?hÐt§©ð —‰NeÅZÓÜTç'=ÿÑ “–,á!–’¾Zܧôo¯‡ÿ˜N iÇö÷¦ïZ~BLô»çQ85F2K©ËwúÝ„êWØÀÖè‘f£É}%·‚O&ŠNI.rÕèIÿ«ýf2ûìvGj wá݈í-mì1Y‚|x7êȈ7±•jýìÇï¶‚Á®?›në[|²¼±žþW®öUD½M™?ø—ÑÑ8Œ ¬s*t?!h†à?zDZo 󣚙!oözW¤|oòQ†'¾('óϙώ¶x‡QÛ¼‡ZjÏf3¬Åk2žJò¾èîØ^Ae”r›ó[Ðÿ±ŠxÝ üª3ýÁWÌŸŽ…/¹†×\Šþª*W? 5ÁD0±Œ(Ž‹c爿ëÍRBÔ·œÙ»¬ôZ&"Vù#W°w&ÿxNoõXþ½ø¨BÃú_õ0÷poÚóÜ Ëcz9±YÔpøS诊òÆ·™q“ŽýIªP7²Š©ì_˜GUEW-Ø;0àÝɓҀŠýitÆRä†é³æÒ9Ná¥¥Ö üj–ƒu}¯QœZF0O|ºtõ7 0ðo³3rÇÁŸŸ3âÐQ«¥™šþíïÅXþ ÔéŸö?éß~þ#¼_Ql¥åÝÿÊ\g—šìÀ®í Ó_gþ §ZŽWÓ?ñ´ãyF烋2G[~U… yâúÝ<êHåVžþí]´Ûð*¿V?ØH,ÁØÃ4'ÕéˆrQLRªj©a–}È?æ®~CF½Ï«èÌšŠø¡Ø¢M õ©e?8G‹°|ùôV诊‹è bµÅÚa1½íjâÝÅDûáÏ“- Sù_Å|ÅŒ†-Ÿ¡õÞl¶ÞJª‰’ ¼å<òb°]Ƀ_m ÏkÅÞgSå­u‰d¾_5—¶ Û\žÂêŸ(±éÞØÁb¼ÿs°öt§w;νPå2”µô= Ž Çˆ¼^攃í˜Ë3ÍÿˆAþ1mC ÜŒm-(û'p²'T%ìåš?¾Nÿ’ªÚÈ …}5A™ªùàk¬NU PìźVåy ¬Wݺؒø#\õ!˜›*ì¿$ŠŒ<Ž77|Ù›¶ìÚqð+ƒúÀ¨,Sqe¾xó‚èy;`ý©j@?©ÛôŸÊæ?ΰ·Køøl²§–æ»ÞsÔ΢;y^5¾ã5è‰ÿ¸ˆzJ3ªPw¾Ú(IŸ¤Âä}aC6ÊføÍÆøutñ‘GD7á¬AÈ£ÚèBÒž(kÁÀnƒÅ”ýÉ~uV^4|‰Qwc³à3Úã?Öƒ°•¥ý ÜôiêKŸEzÒ½T++¡úÓZ¿ºð/)°öÓ’ä‹À¯2Sóg§¢B÷Ä–ðຶȔÔ<î‘7‰“/jÞ‘Öóe°÷V²rèœãñ“7¢êmÌ¿*nŸÿˆ˰žüe ¡nÈ©äQÈåNSQYÎçt„z¿‚Ê|å§¿Yž;–Ö_oBår‚ŒfG¸ãø…8fˆ ¼5{ˆù—ã?ZÉ `n¯ñ‡°ã׈ǗƒÛƒUF½»¸JYµLût2¤Ìd3 ¹®ža×j9ŸÚdÃ:}âß`üÊl0¶ë̯m©E5‘ª' Y/tÃÙä"é+ø·:aö?¡¹þF Õ>>´åß­(1­Þ–åðXUù‘(üÇ[ô»Ps§²%øÕâ%X±y°ßͰﱴ_À¢Ž¢D²òã\ñ9ô •ädíûþ»“T?N\3”gÁ¥:â‡sMÁ¯jP?¸ªQ]qTúÑ¿d—lÈüòØûõô¶#wQ?èÜ"¾ª³ó6¬·Q¢æ!ÒÏ ^:L¿{,£ j¤Oæ 2ŽÎpê˰½…XÏ„g½ K’q;ן·Rq®6‘[6 «R6‘ÑŠÜ ±t¿ `"ßVô>­Œ'x¸öØäꨚ‚™w˜’z÷Ä7wNÎzñžú >²"üyp©t¿jLÏ/f?ÛýÅp!ÿˆ÷S×¼LUÍRîŠ5?*µQÆh)ßF໓)½•½œÖªìª,|Ø"¬tE&1¡Ç-ñðç½AÿòŸw57E@Š|Í2â™pèyŒ­èÀ€Y tÂeÊqüG%0º…ºi¨°V'e%có±:¿\0‚A›Ö%ä°§A1u¯º›<'Ò©JÎõùk%ú—¸;Þ½#è¯J‘ÍZýÃêÐqšNG{uxò%°ï¹î`‰…øê=Ý]™Ó¾FÚí[ÊDš™P›»Q³yÜüÛ·(é¿ëŽåhͪéõ FSæ×V2v¢²p¥ª± lTüyqúïN0Ùh³“˼óõG"”l­òÿ¤þã’-·’Äñ¾ÇRZüP}ùíjôëÛUe±ZNóÓÒ1ÿÜòÁ¶jSª?ʨ+”7¶è©c¿­þÑö‡æ/JLXj©j\-Ú]y«ýÿÑQ»¬6ùEþ¼ŠX@^ð–8>ÿ—xGþá­åÙo#ÊÁT  Ô訥l¶‹è¯êŠGXd«ÿ•Õ=üG½‡ØK”•H½«þA¥|Iá\ðíê"þÚýî!1Ó|ìÕt¬ßaª-b{¹ÉMz:~mÎüA«UÒhäuáÏSéÁ¢±UâàDåaß;°Û×hEŽ‚4i¬ï¢³’<ºãOõ»´õpí±{ØUvá…'ÉCåðô—yðOñ¡'á±ïòïZ}„Ø®Äsœ§ˆ×i³¹*µÕzz\²"+ÿ˜O£q-ÑZ’ÛG_£ú™>"G:C&¶]ßÖ¯‹ºQÎ?Ÿ­,Ñš‘©äÅÔF eUsz’3¼„ý] )Bb™» -ÚŒ•ÜÈ­Mf-öŸËñæ†ïï¼­4*¸Å<Ë% Unİ›¹KK@á''w!3x£w£Fâö;~Œ;øõk!YJ"ÿpÎ4窃ÉfZè¿“U¼ÀÓ~$/=ƒî UÞ9ŒV÷X£,¶¸=ÿ_‹ÿ0á~à•Ó¾òøU§{˜KÍÆÞ›ÒIp-à(érbÏÝà³ïÊ×ä]Í`P˜Oä~ðç+±½Å©E´áKBdEÎÀ!åX¤»ª ±[Éý¼Ñ´$ÿH ~µÒÈNÿüGZøZÅÞȸB¬½aMØ-VÝíJ½âgüØ-Í+ÒzkDòSœ’RÜ¿äüìƒôÿëeL—“ ;ëaYMú·Ç¥+o+øä]øÊø&ƒ£@«Jý`xÿÄ<Ì?ÖK²ÞsþÂS ›3so„™Þ¬m¼6¦Óä%sþ›=ÂúXùǪlfRqŸ‰ü(ùG·ùÇ:嚪²ÚY4W¥wë(ßøææ|ã ÛßbëOƒå0OÐ-Fi-Ï·û,KüQ]Ì ¿Iÿ«D‰u9÷ävDþaпd“>…é¯Z ¿*OÝàmøóvf õˆ/ÌvFSð«Dh¦Jë@¥K9Nᥠýws ®ëƒÆ#©¾ÅÁyøóý̶ÊKþÑÁÌŽþj ýzÐ/ø%>.ž™¦§}+fƒÊ‡b+R‹áÇùûDÝ­^«“ùΣ£»•WXÖíjiú·ç×Ö…ñç;l-Õ°ÕÕôøJCóãµÙ†jóA|›“ííïÐQ½ñ^¢–ÖF»¤úªõ"߯ô¯?)CvЙü£#qª/õ±õ̯MÉéCþQYÌÕ§?[$ìÏOÓ'²–x›²‹•V`˜ùIœßrñp7ДîÔ/%¥ ìe4Vì‰þj¥èEÌí²³ÛIoêÒNc»6][ý5ÞõÑpÎ 1Ю¡tÇ:Ù@ÀJÃTçGéôA€ƒ ¹IY~d¸JÖÙS£uþÉ], ~õ?9”we2J?ÉZÖG¯¥Z«3&k@@¶rL¢ÒsXéñbs>-ò.3п½9üýT”W¹ñ1ðÁ±îè;éÔõ»nM¹ûŠšë÷`7ÙÇîîmj';iáJá+vU&k-Á¨3ˉœ’Çx5¿°üã?a°žP\ÑbR Ðnx Œå?r-Ô!üÍ _í˜-•¶]Lå:F?gÇ¡‚›Ë3˜ »s­»±ð=ÀZ^‚}ä@suÞë*g)*é1Z*Õ9»ž¥Sðž0ïèÜûšØò±ùG”Dy©³¨Œÿ(ˆ-Dô½~ä£^Û¿ü¥ D è¬ßM­ ®Î Ë?Œ…±*ÆŽÒ?1-/¡¿ò¢ûn"û#¶Þø” ¨ S­ò{zÅjC=ˆ® áWk³ Tv·¿ß€ ©ùO*¦u¬0ŠÈlÔ.´fÍ‚a7^?xã‡+£8nÍ;üˆåžÿ±I”BIp ïï ÚŸ¹5×@òáXÃ5ffòýwããɽ˜¿ ÿÑ'¬{"îCeyOtvl/üùÎX#yL¦ßŠ.Àç˜øäÆdŽ}TþÕ£~0;߇›ÔÒµ¢Cº?ë-À£–E•tïÏýK6+kÕ¯àW7ˆI#.¹r0ʵùðEÍiä3Aô;œOÇõ¤öÄt9JíFa£µÀYh?SŒ“PU,Œ ¿ºIoŒ\¼YõA H…z¦®t=©ÿ˜B—–DÔ䀛)dþEÍäeV*ÀüÁ=æ Û¸+˜S)ð¸Cä4ß.x«ÒDk/r¢WoϪiõÃdlOàÏCP:'¢Š³ýûÚW’´g¿ÏÑ XüGw3]tpÙâ§!±˜òmÁð×{¶Tú—H¥ƒ’5Ò9‹þVb(”jQÍ[KÁl™\¬‚ÿðdþ`1ÕŸþ»¿ÆÄB½HÔâmw‡ » ~•Pí¯ÄeÖS~­«v…þ%Å~iŸU±îíè¿Ñ ´º>[„Š¡J -Cyº—x‰éÑÖïžUã?Ž£\Uß‚¥s‘…a„»‰MX©›Äú ‰\ûSÕ^WÜ‹Æíë†_ ƒ÷]AN`áA×Éd]ä Þ 5üÊ9}'ZÀ`'×Ã{€þhážJ_²„äÙˆÇrVé×%܃gsõØ„u¶¼M¬—MoñSýn9žø¿ð"ýP#öÜÇ[½R+øóÍìw=±ø;b ³Ø£¾bÝû·§SÚQÿñÏU½ÒÉú’Á}$óh' "µóî?#§ Ög¢žá6üùó(.w¼²X£ÿ(oÎlögõ/iMDØ™ˆÚ$Æ‹!¾0pÌt-¹ž{=<}9b»ßÀî\onø²Wmy´`òÄ\— ÝŒðç~( ÊiønààŸéô¡ï„ ÈÂS ¶r#ôÕäPrcçüc¦:]ޝ^„æ!yÕ[4‡tú\_å¢ÿUIfy—»èCÿ«˜çèÄÞ€êäA‹tü*Sþ×ÓªÈÆ[¡÷Ù@áî’;øUNæG]“Ïa:3¿û“ùÿÔŒh%Ú‰"ä36æƒì•‰!(û#½/T »]ÍýkN5]òôàWKÈj0Ÿ)‹µ䤜qNçͨp¬‹Ï<Äî=u|¨µ´ÞRQ½Ô>+»§þ<6žv‹±ØšhH¬ÂöõX~•z’@fžP‘}œLk'zÛm(Ä’RGÙX~އ‘O™¢ìCý?©‚³ž&‹ÊŽØí®²A+Ê[ÙƯ¤ŒÇ5÷ÇG60ÿ$J†âv7½åŸR>€nЧ±óÛéVe·7JmXú]½-¾¬ŠãþMÿÝž¼±C¹¯ÅÈNöÒ >ˆú“ô†Ì`¾£KdFûPüyF{ s^ø¦¡˜y¹ïy_ ”ÿªAË";®øŸûjˡ߄€ÿp‹t.¢¿U E¿›‹î"YðVÿ’L9ó¦ïº§º^±+ήÿóÊqè°Txa‹‚_RcÑã´’N!#?áªÚüñ«b!öà“h‰…®ƒJèµø“úÁl 39EòIb±zè?oéßzþ£œ¸Î»Äî–ž1© œ¨§Xç çFµïïÔć•ÿÑY›DåZ¢ðÄ»V?©ûD"Vß’BrïItW/ñ¤]‰ÚÞ¿¤…Ò‹êŠ“ØšÏ ãð%èÞÛ¦ô ̦ե֚ÂVLi ¯îOëËjK,ƒµ_†•˜wÙ‡OùA¯G ŸÉçÿ¸zÿ?ͧwó"èÁ#ßÐäJµ~r6ÏÔ¯âàÏñÕ}…ì‚w¤£…CuHleq¼›Ç¨ ûœJÿö&x¯Dr ß{ïhžÁvÔ„-^i ˆ›;³æqµ ´Ñ•áÏ‹£(ˆjþà-[nê?†¡èÃlŠ({èªE†ðü*%õéçˆN’Éŧ3{g-½z$ò¥ÚÕþb諵~@Þ…áWñ@ ™a±Î¨Š6§"ܶÕMqìB<¢÷{DÐÙ±à[©?wÖ@§Rc´àÎoÀúÝ?Ë ž”|ê’|cü‰ÿð§Ÿà)*»’“XóÏs¡üº ã( r_5GÜb75&§w/wÆ<¦ 9El¬ý#+x!Lp,ûRð«|ôKìIýùZüGF®<&úÛ}xÒúe'ÿ±^ã ^ñª‚kÆfAé†Mõ4ÊØÂvß4™‹È?VríÈñ¸+Û©­Œod6¼ñíÛË£ WBQ&ÔÀÊçüÏç™T§’»]¯J‚ýÿÁ4s]ëŒdLñ¡ò~ž,FÏLÞb°c½ÌÿxÃJw¹Þ·2Hñ XýàUnèw“<±;†>6ú݇ô1‰iÌ3¹7ÀöJËåĘÓE6‡ÿ¸Íü¨ê  =ˆÄ*˧b õƒ`)†Pó‘ d‰™ÂòAä·àÀýè {C~¦I>=‘G'"âVàeþ#DiÈüêøNø²àWÅì×É´±77Vòåiô¡@{?øó[ bs}L;µˆO@â=¥”)"(–—þþá6ŠÏðXÇdþ`žHç,úxm»®Lfþ`-ý¯,þc›­2³ ÐÃd1õçW£¿ó‘­;üyyÛOb”8¢&Ñ ¨¾Ê}­”Ȥµ&ÿ¨¦þöKûL.æÞBÑ5›:BÄÒÇ*•Ñ_ÕÑÓaéKŠ1b­´‰©¼Êy%«ØF.¼ û°kšCVÆJ·Ç¬Õh¯Ð’ó+E[ñ,×ÜL›¯-ǯÝ#â^ ¿p T½/*¢»¨=×W„°Ç¢0ÿwÕÃ5„?Z¸¤Ònz/jŽ˜Ôá.Ưå¤ûIo"éóø£C¼Aïø)u°Œ±áíTü߯G› .ÕF·¦¯§’d×¶´u(wg"ļ–jó6ü|þ£ƒðÿ!ÿ‘Z©¨ÃâOeWnì 5ë Ý~VÿQ/Ò’ú«x¾Ïx¤¿ø©ÃÈNö‰æQêwÛâ?âu¥œD–zÿåìÿˆ#»Ó¿äøÕ~j7ª£B¸ Ò°„?dz) §p¼¹á×b‹…~w6˜Åp¼…1ìFÐèQ N3¸Î¡ØêStH5à&¦Û¦ƒ?·¦eùãëÒI-÷wý¯Ôöb­<øÕ],ê[bË#`; êÌ|ÚA÷¢³tn?.Û ÂÚ ÿ‘öùZ¯x«E¢pîbšPuoìmiè¨b|LfJGôW‰ò…шˆÅtº¸·ò3¬´y©4¸Š²*ÜE2ÎiˆÓüÚ^ðM¹Ë¡è¾vc©ßè©®èwcÓÍpú«dh¦âÚ=Ð+à÷7rGrʹ2–aðÙ¯ÎkÃ#½;E9˜¦÷dÕÑ©Åa{P™Í4ºÈîXíôá¸ò²”Úø%FüGü`°8¦·K7£¶¼Ao[Rª\Àü?âμŠkkÃgÏìÙ3wmà.A‹www‚;Å¥¸kÑàîî!Å÷ànÅõ'÷r"„›pŸçïmŸ6A²Ïž™=K¾ï[k•‚?/¤ö˱dE»QLi(aÿ¢¾¢è_6ï6ä‰`Z0QÄ¿Ïl/ó¾ÿ1FG¸î:qJ{Šâ.LiFç xÌ”ÞÙÖklü4R‡™÷´ü* óš7É“¢â]6p¦ëãáŠ(_üGHþüX — mr›þ|‘1þ£üyóX  ˜€žŠj«x=»¯ûSuÎjoÖÀ$ þ# ÷è€QÌu ˆô/) JІ7#5õYœ­t¦¹QZüG:'t΢ äø‹ôèr³’˜M¬(Êîß>” çˆc2üOð«3Žl!øóØ¢ÇÕû®ÇñƒoÞ;žŠ%š§ÞVÏ¥Ï êß¾ÁÑÚÁ ØúeÂøIÿñÚ1…®´•á<SÓ¼NK çÔZ1ÿÃKFÿ8 /_"ÔùýÁ¦\¿]\®Ä¾<‘Éòe £ ùGJÖOK¥Ÿ—\Fÿ«Èõß½$î‹Bò4Þcº–±|M¡2à?¼áÏç‘”‡kƒÂ+>þ#¼¸Ùµ¥ÓC_¨¯–MÉ–}ø—i”ĵí¸hHÒcÃ’c·j/d9¢“dFyW v•o¿Î$ºPÁzœëÓxãû`§Ó¡þí gqÆu?ï÷ 0·FØúy¼÷/‰¦OeGu°ó»É?~¨>(?øÕ`P{{Bâìâ2Peànr!½Î¾í&ôׄ"– ´j" ;lJbƒøÜGÆaPáŠÆI±wèšÞáQŽr/[ð‰—Œó²¶þ)ôBA¿ÆüÁAø¶8àWU@’ƒ&VÄbǧ†½ñA?¯'jK–´¯¾¯U ¦Ñÿ‘Óõæ/{üjŒ…À†—KȽ÷f§yñÍ@dü:¦ÛDëž0 WðÇ›ˆ!t´FÕô ßõo_£u„?¯‰<@ŒÝ\='û=†š×Aýyz@‡-@íF "ê|BTx?>9¦Ù’þW]ä¯aîaLͯ߼ýOêï¨MômÙCC28øAó?–ѳʮÆF´euNå«è…ת„p½ÛÂðç½5{*ÌrÝZðŰüQé,¿ÝLD¿4çê?b8ËQ?ØïV®97Š»ää[°Ã]‹aømÔÖQgðã9ð¿ f.•‚3ÍÁð1Å蟘‘ZìGÖ.zÖO5X§Ð^]X‚_~GW”ÂôO îW•+tåU3îZa0±™Æ@U…I°­é¢U†~‡³ÑÇÞ¡6b7øÕrbñ ÌC¿ÊzcñÉÍ9øþ»Æ,ÙÍõpw‹ÓÚò¢7œÐW*:ð úÁ¤þ£ùÇKó Üù|ø£XθÖó.~E™“­y„ÈØînk„Ò p)¶†xä±pq<ÕPùUï)þÜ[_rÒ ÿ±™œ`<+œ„ƒO ãšýUZb)w©ÌéÊdDÜ?1³èÉßóƒ‹Áo÷O,ÈUwÃÖ‚åŸ5Nñû°´{°¨åžaT˜ß߀OÚ4lLgöÀ®t²†æì3?oê0TIùÕ:<Ça<Þ}ü‡]³ÑIΉðdb‹ÔZ:x˜E0/øühøáðOŒ#DR¨lózÜàûôÁgÍÄ?üýƽð5@ £ÁÇ7åêNqç+²G ¢4Óð d°–nä+Éï—“wÖ Mvðåß\onð²é¿»Wú°»AüL&âÄÃø±XØÃ^pàè¯^a»¡.ÊJ–d«yÖá Ó¨ô/ ›]ïÖÈ™d ©U Ò¶5¯W@;AóÏç3ã<ß]£I ¬s¼¶tQ[å#[Ȱ,dj-Ï«51Àbô¶wÕ˜—#h¥ÒÁ¿DãÓˆ*ç(N»Ý›¾Z+¸ê,ôÓº„Vkúÿzv2øjŽQZð«Md»5Áæš mMNµø33Œ‹¨ 3@à£:ÛÃL×ÚB-ѯ D ƒzû~D…ò, s¶Q–æ*Ï`KËS¿Ïö17ÁÈ÷WC˜æ½Ûò`–R2çüÑ*,ß1r”¹ ‹;¹ŸÐÒ6SCðç©Å`q¥*8Tu‘“0{NBÐÿêš9¿AA4N#¬ùftæ×¶´&¢ç„N…¿, ®£ìäºÜCÌ2A×®EÝVi8©ÊlH]xb4SKÍÏàW_è}øú¦œÖaú'ž±¼ÌiÖ5NvKîM1üGyXæpÅnç™ÿQšššÆè2²Â,6&T%kr%Qaµ$›© ˜œYƒ©ÿ3©?fà­Î z¡õoÀ)¯í:…§D[úïfå„t&Íhøšä-é…«|E}KRçhçüÇ,~÷ÿWjP«XR5%6œŒu8Ç[ãÒ÷ù‡æ:YRtþa÷"×ãøÁ71¨p]¯¥a:Gj}{þj3ýheéÀë‡WºñƒŸ ÿ·ß;æêãe4‹9ÉEýáÏkh}Ľ¢ÌŠÂë,~©´k×á¯úwóË Ø—/èwO ’Qê"‹žˆ3PŠùµ åxrœ°6 ô ß~u]ì%á?öã-J=ï€sõ„—­,—a¥nSä¥^¢‹´Ð_E&ÿè®@)ÐË0Áñ×cMoÉô"º¼‰½ßB\ñŒ=>Ç“þí‹Øx jGÐï&WÎ¥|ÀkŠuÀ_\'2<Ç®?b÷b96°Iø·xÞqð'ãÁ›ÆÁáne¥ªñcQ5‹·ìk¿…98O<6N®ù¡þJ%µ¼`Sc¸’¬ðñˆžb£;U ò«S`b:vû>à oåXºTJoýÁ·›âë01L·uÉÉÕtî÷y÷†XXoÖwWsñnø½Ø©JÊ/ãG[þ?'Þ8‰ëÍ ^nŸ#µ¾KޱwG^•Ž|`'ëѹýî(*ÓžP™2€þ%7ñYÈ?.ò‰§ùô¯dŸÝ˜¼TÐwS˜?8Ž55x×A0©ÄìÇÁ¯$Ó³2Ùµ°u‘xßWÕ£}÷2ŠÛCÔ–$Wñ‘­¿Ó_ÅÒb’4Þ®âïÝÙô€?ÏL®qŠþ% ‰~·Pï÷Y=eÞFNòjª }Iî©÷(åRs] 3°žf«ùrÚêby²¿äæïð™°Ô P#Ť_x,gó¥ZŽ w-Ö7+W’Ô4Ìíê J K†®¿š#‹£×°«j½`Æ,³;ô/¡ƒ»š`z9wX9Av¾X‹éµ•ŽPçÔ4ÑuYq?þ##õÏCÔºÑü8|EUòˆhqçU æGM€[è€*xˆ=.‚_¢—G}ºOG7ž,19›¨æÖ9¸Êq\{‡Þà61ß[•Äó˜ª BeÐd¾yüê5šÝ+ùÇ)ó¼|s¼åGÔá‡Ë f¥åN™Íå?ˆ=z1PŒ&¼û^Êx¨‡iQ‹8ÿ“9‹w¨¿je~íg”ÕèsC½¶ú›¹y«ÝUk"º¼Ü© ®Sx„þ%eÞðh< {ÌâÎ÷túºz•†¸`:ÙàLê?j/•7³:ï£%ÈÈüDz6ÃŒ‚È3 ÕyåÂ0gðŸøå9G‘Äe‰ß9ºü×ø•~b6üy;=ƒ¾QTcÍ诪¦þüÓOÎÿxNÿ’?¤KVc•|¨E§GD ¨—–%Ñ_ÑÚi…]»ŽÌ}J%W5½Áœ% Êß©TØ”êô/©ˆ¾b—v#2 9î0g± ¼€½ÚJ5Ú&ÞÁ„* vºœ\N¼| ÛïE:VÚ½ó{a?¤‡>ŒJûô]EL>~ €ŸBâÊ«$FEc4HTY׻ʷ_g]™µW2ww~&Zâ°'ðsw©”8ƒÿø‚—ª‹ÅžºÔIïÁ]´ôùdF-¹wø µm-¸÷œäõ#á?™ïÉ~}¹§ïPÒžÅ'M¿úQþMxj™A¦‚°¥âz¢Rý4œk~Žÿhƒå߈ÿ0`»/¡ß=GÔ9Ž÷ó2ZäúáÖ Cõß¹Ž,x‹^dm¾`‘•ñµŸè_ÒßÈ ßŸï¿ª@¬~”q6O+ Ï©¡‘Ýõæ~»kT…:Òêûäb<×D¬yúìå›Â›î£úðïqõÄè:Ää&•žüäJ;üG\˜.zìïzÿOÒÆË)Xü‚d w©±xGtéÿøL%\:æüÙýÌó`‹›™¥`º¢;+‰ošMF35ÿ‘>ÌsI¢%æÜ6ÕYÿŸ˜ÝTÖ8©®bKÚ0uâ(Îcô²¿/”åG¥ÿ±ÅQòßP+öDÕš»òüÊvü½‘¶{…YDy™«ˆÆc:׃_U4ÿVcÍîÜÇêðñ{诙»É :wÃ̯#ËrÎßæ§ 4*{¼Mÿñ‰æ0úïsCMÝuæ]-cZû%ªü·áU7Óì9C1õ „^ÊCôÛ8ýÅÕ ð:»+PÕîHXó"LuNoô÷ €Û@ŒæðûMìé½Xú©ttÉLî•E=¥«‡ëá®»5YÉ0Øg*6HGy £Ñ(¤ÈKÓÆ|Žuü/#³™ö¡Ä*Çrи€ßòÃ/äÝÞ$ºÞ½³â ú« <ÝàkñˆM†Ó·]‹+’}üBýy)•\Ö ø¨Íü-?ïc£~01Üœ'§ê<=Q¾mðŒh£–ɈòšâésÔ 2ÿ£:³ /™ÉÈŠ&2ù·¿sßõ±™Oé¼ù Æ+¹jA?ž(ìÏ1Ïÿ¤~ð®£|ÄÊÍÿëúÁ_èëqPK§÷Òãƒ_ýÆi pô…§¨L²œ)?Wÿ‘ùµKPUœ*?i=6P˜Xúºú ý¹VS«ê}øö,~ô5þ£;«9V?›1Cž¦~0—žÚEVezíD¹!’þãsNªË‡ Ù[ˆVbMð©éØnÏï8ƒÛ¬{úÝÊòƶâ÷½õ‘ 'ÃÉ?–‘}ÌÅžF¿«-yÀƆy­Ä iH4þK$øó¦¢sÅ/É¢üta"ó¼œVëïC›è ·°•=ç“J]ô~ÜE¥“ó£IŠw˜DÆ0.ÄO´ÿÑ‚ çOò]üXX @2²aòà'ÈÄd~T.üÇ "°4Æ#xØ bü—Æ\*¡êK°õöäÚ—ükw­˜Š?:fÿ¯3ÀTÍñŠIÕ$üÇ)žF%öf׾Ɠ¼ÕŸá?þ‹‚WÀ#mDÝV–;SD4¼ùµ™ÿqX.%6í§z`+øÞöì¡0‘²·ê‹y Èž»\0ñãM®÷<Ù‡»ê¡»i§BìkúÝ&øÚ¨díþ»ÑtÍá~ìå^œ“ýõ§á<Þ¨`~˪–³?»ò¹±=þC—½ÐôXXæ–Äõû±;ÉìJ1ùŒ8®77xÙ뎊ävÿ]{^TzâÄÕ¬‡ÿ%Þo†µN¸5Ц X/0;Ü•ë°>)Qd‚?¿¼TÐw µqr«$¶ê žö‹ÏÉ|dbmZôW%è'˜[\ß,K·ª*ðªõð K¨ÂèGÿv¦Ç„¹‡±´„d’m²øØôOQ]±SC1ú Þ_‹B´ë ÓT›«*ÇÕ%3'‘Ãø£@Íâ¼C½xk>©ýÛ7píÉ?’_…™ë`| S>RâN_"ö±+.uTUÛéT2Àç4³ƒÛg¢wÕ'ô¬ÔŸ7Bµ•Ýw¿º ¢Û¬¢.ÊV®;è)æà?2_=D3¸“·ªU-ˆ¸5¢ò£æ&ðª÷f~ïÁÌãK}öB¿kW$í§£Ëjj¼:²—k½¥â±¾C6³ß¸‰-9™Û8òDÎÒðɘ|þ ÓNö’s¥UÜâ ,Ï: ÷V ´°‚ndÄ>¤råÑ?±2ˆ@)Þª‚**±ÉÔ¸TgÊG}"º9ÞÅ7¶&Ðe帙¿rVÝfRnuP…0}™ñ!ô»WDf"BìN¼—ßX…ÿ¸n5‚ò#Îø›j’ÊÎiÎ]L‘šÌT© Ôl4ÓÓÛ$¦j`<“cÁüygÒÈ®+þç¾¹ê(2ã€?ÿoûïšâ¹ØÁüÁð«‚øŽhws`ë—Q?™YÁ×m‰Éú|iÏOB/f-ž.´Qâ.þ#'ŸpUkö“õ%ä’/Ò®~Ë‚þꋜ)ÊèîFgt%eu9SÎÔ.üøî}¾jI»ÛzìÖB0ŒØ*'±»Ü›þ,´5^o(ø{›HÍÿ±„éøÐ"°»ØÌÁè:’»ïÅ8 âòVÖA?”8øUu1 ÿ€ÿHAv0H?›a‚½ûbëÒbIíŽy¾Øê5dúÐ0v*ì…§Ð÷¯ð4c¹Îô‘ŸEŒ¿ ±¶²9õ²î"µ¯üˆ//×ÿ°ƒA QNËMv0 CN°¡˜ø£A`ÒoŒéô/ih,çy Ëü pš\lœ…¿qAvÖáìr&SšámSq•U±Íûñ³ÍyÆ_A›á?Nè_°O­Àfüðêö´òräOå‰ð’‡ã?Î8òè[åB¼«œI!ºµ¯µ›„}~w:+ÝAuŸ~ÇÀù3Û È 2±ôj¹qØJÑYÚï\[mò—kAú«Ç<Ý#üê*lf2™Ä=[kZ>dLÒg£ì¼Ý¿¤7µÕe¦0WWK„çëH °‘DÍÜËÓ<sà†zë>ók»Ð ê.}›žRÑþ V;Ùç;6øÕi3]—àO7’µÖ¡J¥¨ê`T”ÓdF—ÿÀTç ×#ÖÉ¢šÈ½Æó³Ô'â×q¥ÍÈo åC.r€Lf2¸â3«¯YÏå„ÿ(ŽyœæÛ»@ýù0Y”q§óWøó?™åv+€Y)I--/çNzÊô§ÿðf\Ò5­5ó;Á}Œå-ºBìVP.ù¶à?øõŠ#gˆúÁ¯ŽN?D"ÚT qW¬¿ê¨ÇÔ—ˆ,œÿsަL?Ϭ×v’ã„Íðÿóz‡?Amjrô‘W5CÿDmÊ}½‚ÌÂë¼JØAÿy=/yxKbŽÀÞN“'Ð yé‰`$«Ò'·õƒ>ÚÑÿ¼Ä¿ÿô¦x%ÚÉÛ¼{‹À©Ö÷š¼¡qP®nÇÜCuZ»1JÆcþà‰H¬8Pï®o‘½±«ãXq*þã0ÖÚ©î’»¯"ÿ8Cûœ;1ô>Xò£…kˆî`i×d"ãôðžœó¯°+Û`JSåïñ!õÈ?&é´Ò…±Sa×M§o=hA.p¯æÀ¢6±Ë‹–s$1if5[¿ +ÿ’Là ¾`„ÜBÏzµ¸¢¥V‚+DŽî"fòŠ«w`1MÑZÀ×àSìùƒ™À†^S?¸‡è&³qMlu{hŠ(gÞ¿ þ£ Yn&s8CU&»ú£ Šâ¼K}]º/ö3Û²^3rM*ï͸ø¼çxéX²E¨õºË|tú¸J”Q˜û—<ÈKßÇœFýy.ð«äTz8R-¿Þ¬mÄïÅ//#Ÿ‹‚¿+£N‡¨tËÅ:¸f/|G6"õ©èwR'8ÜzNÍÌs&õÌŠLí*”†êÁRÖyÖÿð$WŠ:TKw=»ÿ•"š²‚'U:â“gx™Ôh ª?\Žç˜ËÔ$άðGð%¿Qã~uUm²½bª#ý¯þ”n.ÿ±]Ó ‚B5C-G9A"úÒ_·<óÏË“!Lµ:ˆÿ¨L^ôŽ$-ÁÝÜQÝŽ1 RåOUƒÇª Ü¿äŒèÅüÁLh;ß7Ö˜Iœ7¬VTº§ÏF׫¢ô/9Jýyoú]àäXVvêÚc(o:ãõ•?õ(ð?™_è(B/c1Ð#Ô¹p=„¿dÈ´àW1èŸXŒUŽ9êj5ð%´Uô¿ŠŒ- þÏŽÅú\ôW5É?FÉGš®?mÄ=½’ÌÅ'Øó£~®~03ÙAOøß¾äùÐ_Ý’sà?a +Ò¥1õƒ[¿ÓÐï&äwwE h"a‘×ñÓ«9e‰Tìt¹Àä3¢ûîÌÜ5Qa†JC®óí{o;©Ðx@´½ «nãWCèáôÐÈŒÊ&L[mxÿ:ìÞ=ùG9Ñ™\è<ÙpjÞgrìü¨Vû#Üá¬ÃÛ½cß ð‹ù³Áúèžvl}K+xóäFA[šç¥ a"Üt– ÿá‡-Xþ›Äøs¥oˆz¢o×ø¯¯_µD¼³ÈRÁ‚Ä'…eÿ`̃©iFþQ–ú ;|ÏSò1ÆÏ¿ª§¿ ½PЯ¦‹~z â®_Õh¢»ÿU9ž‡ØõçBžÓcÙ7IÞ+å‹?*ÆÄªRø„®È/xÙ“ÌÜ&熚€]KK½˜xcúŸ讦bÙ_=@enâ2‘we‡våË/tä®gÒÂvX™¢õ#ðhQI]ûÊ™8I5â{*r™k±~郵t¨hS tË5Á›VªfgµŸ“VòYÄ&–jnáÎ'D÷ËfVÎŽq¦¡1ø9ú™Ç¡^| 6~.Ͼ^æ õ$»é¿ëeÄÖ‡zÒ=˜Õ„Hà£Ñ4§ùGv¦î5[Qÿ±K˜ÐùÿÑv~¼Y pe²®CàeQá”^pÆSÉÐýçúÈŒtl´Upù©À4ÉÓR?=6b˜é椟/½GR:_¡;`6ÅÚo$ÿhйÆÉb–WÒèâzõçÛ‚ð«+\¥üÂúêL‡Õ­p›P´Þ¼A…Å4ê»À[ßb½AxÔߨùI‚un¢q/}ùâ‚_½€<¯Üx·Þ’çu¿*O=wZ²Í9œ.#Q)¬môOÜEíÅï–/qLmXšìjŒQ}ðì?±Q/GNÞœ3à‰:á˜1Šúºp(d tWï ŸrNf lÈ1ú_=ÃC.`§5À⩆0p-8MÍ\§ð¸h¤”…á?ºó¤rËÍ´àWÝéŸx õ–¢ê£2õ—­œÎFèw2E^Òrú«ÞøÙø“¼UEäR×üç¾9ç(ƒmÿöyoÑ_…U~|û³ˆ¾~uø‹5Zv½¿îÿ°§ËÚõe´Œtà]'>ü¤þê”cš„šøÆ:ù@‹~UŸúò2#Ïп$¿k×íÌþs7¹ßñ†:ï'ÄóÈ„F‘XOŠå©"3ÃW—K#‰_݇DCù`ÖhqylUÕvK9ob÷^¯ÎûÕKjtÁ»‰­ Õ‡ë+e+Þ䙸¤ÉœÚ@c$yG ùÂ*°˜³ä3¯ð¤uÀF#]Œ ôa™–ìÅSÍÀW– ÿè‚ÿ8C,w¬ö9SMð«ÄAƒô1ÜŨú"öÐîè Þ1ÿ5ÃäA)4‰8“<¯± mï¬þ-lþ®ÿ€_)ú·—Æ#ÎBe⎧t Ò_Í%cX­cû×bíßqõP¯†ÿx@/–Žzx‰>b¬Þ…?ÏF¦P ôløN VùdÄ%#I*ê‰ÀZºÂ€ØSp·ƒ‚T cJþnA×›üxöÁŸûÊÅüôpú%zÐj>Wú'ªÏÅüz8Ë[T@OˆèO¨IJw¹Ú øM'Z­™zÂï´¶~ׯúç65ÇÁõˆ»Ñõ$]»Êé?EýGý­£ê²µÂ¬H¤OÙUs‘¿W!Ýt“Éxóƒìî0s:YÍñ¨ ½FÞUß9ÁyŸžú}¬Ææ;X¤CœVTjIîÈq¨PŽ€{d“3]wðŸû抣`ˆþ‰ïEŽPç"ò;‰&6ˆ-ôY¬'B¿[œUV;Z2§£ =LöˆGŽ›‘_Š¿y˱€ú»Fd‰Íò©æÔ3jí…SÖ”é™?øXk©Õø©}•ÇÈ ^Á\'.S10¥nëwѺ êZ‹~÷L¤v .Šjò.ÏlLÇ"äd*3QC#üÇrl„7þ©ýíúóÈä#ȧVÉ6(†q¾Wsb'b“·§†ÃMNH-NH9Ð÷HÌô>0æÇá?’`Ùfás €ÚÔÇÆrj×}c¨‰ï›ƒÿø#ÂùQQôµxoЗKÆ(¹&°–­¿Z F§—€ÿ°ç\$kú/$çÿ°âGq­×9›ì#xR|Ô#C±wŒ?Õ@lílýk0†ø¤k|ÊîǸœVz°Â#øý!úêa Ò²»ÉÍ’`2o°é ú Ý ×ÛlÆ[¿Ü® Ý÷.j8þc‹#“¾^.${ù“Êú|舑ÌÅJÏ%ÿXC½d ò­û(x7R_zÔî8ùGvÕþ#¬ºp¬66žè‡þ‰·ØÅc0¶=ÄúïAòsSP…85%þ£øÕò“}ž‡ö0‡Ð·ówõƒŸDR®¯ž{=€ß‘I¦Âîç§ãu“ÎP͉yïZÙa?æ×.µOnvWÅ'ƒÈljZhýîPÍdGþøZ(_ërßÓ™£Íåto,Î<ðµVzê?¢:›°uÃøò72ñÉILžÁo¸ß1Âø¾ô/)Ê™ÝGÆÕŸþW×蟸ÏüÜ@ÿÞèέàWQ™gxÑäAtà}8?›°äNò%êbŒ¡®G›SüIþ‘‹;rtÒŸ µ)yš­¿rRÙ·žúÆ:doÕÑIõ¦*/1z§ªÖižÑîˆ'Úåøì£•âZï8ýKâàQÜWŸå/Ü™Ìæêeª‘o(tR¯¬iÖI¦lÄ ~ð/<±;êÞÄ$MÀ-©Â¬”™]þc·8„ÿ¨ W±/7].0zšO¬¼ðE¬¯Ô†Oeg—­jöW8Œšìûƒºc-0½xfqAj rϯÕ\§ðŠè×[œc$^)…1Ñ,~ÕÞ‹~t))éiÕv§ÿUNçT«'ó¯¡%(nv¡þ¼=ÜùdØÑ#œú\rµëŠÿ¹on8Ê…ìwGÿöÿ–?O ~µ†>ëÐ_m êuØÑI+G“ÜÚ&jN•H,ÕgÈÒÄò©¨¥¸¡}ÒâhS„!óÈ¢L¨zŒ~·îOùÔÚók;‰æE¿ë+'мzBìMmYT6bþÇÚHκ">ˆ2¼}hå\¡hʃXº?þÃKÕ;U Î&¾,/ââá=×.è¯6ÈþXÍ…¬¶;|‚FW×P¦îŇܯ‡¾— 0-#¸†)¼•ìßk+Úß\”ùÈ?rÃ,§çߨð®ûQ¦'ž;€…ü‹Èi7ùS!øžÜÅ àWoðgCðÓ±¿ÓˆàWònÏT£yÿ³ceß§\!k²»æÚó£vü°þ#™h¥•245ü*;èTR®k« úKMæI,á7Àî£l:¾5 /w.ˆÿxÎån`þ`=våJ×™û¾ X…’¥mu#P¿ ¾“È¿Z¥c [ÃñÁ&ï|´Cß/wþü¨\¶1QõŸŠ«–ƒ'ÌÅ>,CùU–¹Ì#:‡ìãªSòtîàé¯bâ¨þôoÛ{Óüª3Xó+à5:õÄãØó«£aÝdæÁ¤2ýÐyÁ.”Å;5Ä+¬D/ÕZ­§þ#U˜ç’{_Ž«+FåÍG2šœ ?¦µ¦01¿Ö›ü’uÛzMeH}Óa.&ÚΆö!øÕUoýAl µâp-&{±A3˜çzì/1üÇT³.•;¨„KIÇYÇ|ц|Ææ?6â`îQWu‚Cêj½^27c?oE^xì(ÔËøÒÿª»9üÃ^Œi¨ø3GÌÏjØÝE¥•<™mT:ÉÇ*©«!æ”ÃÄ₆êºÒqfWጻÁ'”[Oœÿά~Õþ"Ó?ªX·yB€æ1sã纅èuHœÐ’ÜăŸ&KÿHfBùwàã/Ñ»ê*õ ­kæ)kzÛøûh vÂvÍ VcŠüÍå?.ˆ½¨@[°Öìô¿:m´õjD I~øk VÝé-_ð ]WÊp7¨tZ©k$ ·£=㣨‚·Ëœè[Œ|»+«'Ó¨’À>µÀ\%Έ~·2üùN«8LÈ|óØÝrúPz1ÿ£ðŸÄ‡¼Cåœïõÿûï\sd_\ŸMxÿ×þ#ŠØ#†Ðç°"ý¯Vua¼‰ÿÈLÿ«zÚñÜqÃõ)‘ù&…Ø©Ócä¾&Ó¼÷jï´ôÚT‘Lv)ôúb-švBÂ^µ®¼Ç|88:Ø‘òš¬ˆ~77èN ™^ö—/å¡ï44á¯è/bicdeóÕñF§Œ*ª<Ú¨iò¶ð,¶¬1ù}+™"2õƒMõ±œžÆÄÜ@°VÀÂWÇâv'ÿð7) î6ÛˆDÿ«®bvfƒt‡(«þ€9M ~5…]^¤kÛCâô¤ÄÂýð!+è¢^QbÅÉôÙøÇž¨¥NañŸÊDÁ+˜ ¾´  ˜ýbüÑ&ì}VjÆîñ¦Æ/ÿˆérYµ&äðSñiɨq¹$ßÊnxÍ÷ÆAPî&Æx"Îwd“Í#?š뢫”F=i([õ¯]ëõ.ðqT?ð™Uàs¥é®›Ý¾ÇnOÖOéôz{*ƒ'°gÕ/æz?ÈÄÁOƒ¯÷–£«¾[Îá¾O¥$-W3““7ç`²"orƒøª‘ÿyüz;e÷Œ<ÎÓþÄnëê%¿›=¶O«#G§gC‰t†=|Â6lĶJlj*‹£ßu#óèÁ$ÒàW&¨“|¶‡ÙQ½&š±û†üçoñ+gµ6üǬøGµ…Þ>ª S“Ã0óÂ/¬¤ì]|†7ùǬ¥'øÕ~½X)î¶8jÅeZ|òð}(ZƒúTG÷–”laÞ«þãµÎ—©G,kZ¨¯šò°£vÿÄcðAÔ±sõ–¡Ö%ß“yœ!’(Âûb\RÃÉZ‘MÕeîàXªê^›¯˜ž§›>TŒïåJ·“u­Å?€ÅiBÏÈF®ËM!*‰µð(-x’™Ø3Ps=…WЙ?¸úóa C%á{¼©ŒMÒÑjÂ}^H–˜Ä,)1È9ݵÞú·''&x̾¤òâƒÔ]æ&ëh@ýàm´Vþ`LgÑ,'µnPÿÑ5pmú'ºÑOg%oÑEßådu—ÿX"Vëž(C»’y»©üß›ÞÂåÈa~§ÎÅŸÜe>5ˆéé£øÚ¼Þ \ñcPþáÆ9(JÔ4AÑk×å?ÎQë¶[÷ñ—Ñí2¶ËV/:Õgçg}¸¾>ÎýÎV%g'ôÆð\ä^Q˜ÂXXµ5ëKyUÎp]ñ?÷ÍkGËwcˆ>!ªÑnRlsÀ¯šêôµ¢!§k·cš6\ë­µÐv‹¨âöO-wØÑ—™Žñ‰T£‹e=.ó?š‹x Muô zJ½7ݰ~fÁÃú0ÔRv÷bÐ Ìüþ<Lr5é î#/kZ¤V<,ŽˆhrñûòŒqDöÑ•¸eY9fáXOFìÆºú–ŠTÿÝQú8æÄ.!Þ]K7«XΘêÖÆî‹ö7‘ÎKYn-“QÃu†tíyDªäe°DæUɆ¢¡mÚH„žŸt¿²ÿ¶›ÓšÛ讎àšßk @®cIoc!+h ÿQþ£úÝØæ·DaG°£þ0 MŒ¼rÙ|9´xä)ëÈàópç’¢Z›fÌ'ޤ&’ã,fÅWèÏ‚ZÝá^ $Â[Ŭnÿ’¦¢„^{•T-¡~ðÈ\ÐH{mÐXè§ccŸ»á“6sµ~ì¾>‘Z>¸—ðætèú 2H¼jú*‹{×јMþ1“ìa¾ò¾Ñ‹| •Žìäùܮ仢aÈ­§œÀ3KKÕÄE<Ï®&€^SŸTmâm{þG8ÖetE^ô¿ªƒw*J4ÞÝRU5S—yÃ<—<š;þ¬3ñîR¼ÂI8Ôd6%ÌßÌ'ê”Ù–H|‘µœ9wŸÀ‹ÒÀ!çÇŠúSñŽ¿Ÿ›u[, µâ<í¬Â]{NEûîÑc#™ÙÉœmv¥³Ç˜7hxOX]É7†£¢ú ǃZˆ·ì>\N'ãD˜þW­¤'jŠ øÔœ wɗ޹ÓÍõj&Ñt 3:’ߟ2 1UªzÖÞèˆ>à•ìž#µÔ#ÙÓu“Sÿ±ŽlÙî:ù+Ïr­Ñ U˜v´$úÕæ,ê=Ž‚[½¤ÏÔ øóþÌ‘ ÒÔ‡lÁ ß™›îSCÔ“O4w2²Ë¼³dco ð°¹ä]¨?ŒN¿‘: C+™_ëa5_Ã]äcÛÄ{X›<ª,g¼óÏ£ºÞ=?qB¯Ä™kŠçhL ßBc¨y¼Êk_ަ½õ¾?|M2Ëlq‰¬¡†™ÍHGäQ(§ jðàþ%©„] ÿ1‰ç[ýî03£3ž³±y–þí¬NÎâÖ:ç ô ™£¬ t{Fÿ«üô¬yN!‰‡ rúxê÷ÿ‰~÷†Ã+D¿mAç÷PçÌõP#üæ¥ã¤Eÿ«z6æz±ÊGê4²ƒaÍ_²þãókÿ”õˆŸ“ã?îjÉõ¦ÚJ‘Ì>£ÞF¿AOÆÊ?µÏ4ðçuϲ9jS[]Ýh$ÊëY°x¿Élt0Y,·G²â~æ×f’ö$¦µ¬dóÇé@˜³£ØHþq/U2Œþ}­"•Ô×gàä†[˜Êzç|0(Ìâ¹ãF r†Úø"Ô¦&4ª¸ÎðG6a×Ìœ“ñj¿Â $¢‰Âžv£Ÿ*M$åN¶˸oUÚháüÚXú|²‹6ðú»à#brZ›“‚ÿ‚]-¬ªTlýÇ}|Ôtª1W„¬' µÍ˜"»–›¿ïÃ;’|* xÒx‰OÆ5 4e(Iðî§Ød»—ïh|ÌfêÏë…ËtãõÊ(hãÀá{ãuü°¯Õ°Ø1É1 2št#²ï¥°ø·­0K¥9K áͺèÈF 8»? œÊ“~êóÀ;'â)—‘}Œ#æç ¿ DÅšeôU¼¦=ïëŸß„Ù4a3Í5Zo9–"¨b,êpöZü£YP ]9¨yÀ‚j‚Èl§þ# ê¥e|ÂmjùËößÍÿPšÌMwb€­ØÜGê(Ì‹/lño(šŽÁ¥6¤~áŠõ…|£³D,Ú†3ð¯©i/@Ä´W¬ õ¾ôÕ^Ê&`¯ŸñisUiüv,ôW{à?Jšëè¿ù˜HíÍÇXÚöø£Â¶"üã^Î$=¯‡ÖïΖéÈ ®ƒz‘MEc‡³Q§£›™ŠþW)Éb8éü§&_A)±ÿ–á Ÿ0q¤’ºB¿›‡.|ÈcÊ£ßÍËÛ0’ÎùvÎö;½maô©#ìMgÛ"àOãÀsb’…Ô±–‘)üÉÞ”é£Ü©4ߢždý¯tÍo¹Þ·TS7lüj’Ý™þãz³¿QrµÒ9áÕ£„N"¸›ÌÚî0ŸŒ¶„¢ÿÕa±]ÿ7«þƒ9]d ƒð¬UtŽFû *@¶Óqxžå°.˜-èLöUYÎè¯â€Sö%vjH¾]Ë•õA²"ïV;ÞÖœÆ>jÿ¶šR)yÇ,Æ4ÄiV)çxžGfçkJ¯[\sYæ×º£3| ‡Q]|˜¨©lÄ.Ôk÷ÿú‹“Ž„ô¦úöχ·;yàÛŸEô5¸-Æ‘äÒ•>$¨þ|££4è•BµIˆŸä?¢‚nÏ ê®€Í*7Ò¿½„¶Vî!h®Ý-~ó(W=Z8»\Lý (Ò+r˜¦Ü÷=äÙ‰à¢à?:¢±ŠEþ±œ.ÁUÔö¶…gS”|'5mxó£:ÊÁPaJ·QbR5mÞ\£:üGGj]Þ«ää2÷`–Á$'ÃËm#7ªó£Âòç¾Z´a¡¶âqê³·Ã'Ö¡njVaýîÐý¸~!¢ûVä;EPõƒ (©æÐ¹ ¬ ò‹x¾æðñ«á=.À4$F­šüê¼ú —Úÿ×ù?iÀL¬– |ëùÂ2•ŠÌ5@l u›kKíæ¹Õ„Ë®C~×ÏħŒø[õÕZO“JÔ#v2;â‡í‰ðcÉ?>À¿Ð—Ö¸¤7 µÞ$ÝâèûNÀ5ÀÃÓÊëË©*ùõ§öYJî'|-‹Õæ&:nô tÿñ\W2 úÝYZäúÇÜ ÏW yÖXDl\;¼ aŸw•{°É'Á‹2ðIåC½¤úï¶Cq0þã öh9ˆ rÕ€ìáÀ‡(óEOP‡×"^Ø$ Q•ÉyKrÁü¥"â~*[b­ýYk'Vï#ÿ5Ç‹þIez™0Sä¾Dº> ÏÖîÈÎZËQØùd\vUD-bÜqøŽƒ H—Èö÷Q 8‘ºþ(?x2DÍ€Û˜f$B <Âø##WPU°q£P€¾´çŸïÄ—Ö#Ÿ9`Ü“ÍõðV,&é5¸ÿ/y몀 Ce”äð ¥cPýù;49-ÁØþ‚_ÜÍÝ­N¾“Ëõæ_ï=G}ì~5ݨõ|kÈMg%Á¯ºÒíï& 6þëì»p›íbÍ»D~Õ™Ms3x© ï6iƒäüGbüÏ6ЯT‡&Z•°Ñ…™ìà ÏÚuS!Ø“äq°¾@o²ß dÙa«co‰(¨ÅËÔ*PÎÁAdÁ;¤@O{J9­Nè¯6Ðe/Mc3&ùG^,þFÔMÀã’¢¼8'V‡z*õ5 –Èž/_\ª2úáÄð³Í·Fys l²pî#_è ßÝÖ¬ÿ‘=×0:j‚³ØÊ¿¦7µÞi÷[»È³,ÍÝJ˜3¨fïm¶V-Í|ÌLp‰©Oé˜^ĺǾŒO]Š k›ÍF¨“!ô¶ÙE{ôW îèÚ}ήä/©¸Žm5¡wG?柟ϲ1¢¦†¥®k Áã s(ÇɃºžÈ @þA=%yèß`ÍðÀ«Í8ô_ô²fãÀ„Ìez¹r¦`Âî1ò7ªówW'rH£&2ë©ÌãòGÄa½(T#NiUŽª×=­ÖäE1Q`]›ߤ&~<3ß³ë–VtÓå”JM‡jLEB=µ’¾ßß6x\tÕK*Èxû+á?JÁ<íÇßìGgU†NŒÓÀ°vÒQ±)õƒ]a‘î˜&þ£ú«.èwQÖË“ì5—ôù¶à?øõ˜#&½ ¿}àGO‘Íõ«o¿¹¯º8(ú’”¦âRaW÷mtdÓRÐz²¸¶‹™B?׿äžcšèR0u ñr³ö–5¢Ñ79£ü¨Õ×7 ¿ú¹þW1äbÓ·tDY‰¥úÿ±YH=jœ´TŠbÆá-rî”8%<å9¬ð“ÙĽ‰UJ&ÛM’«‰òíY}¿aùzÈ7zgù!·®‰>šÓSƒ\x:ÿ†=‰åJN´ô¯þí7ˆtÞÉ,Ôg6Z»Îð±¦q}R•"ÿˆÏÕž©X€ÿ( &¶ŽÌæ9Ò*v_Ú¨ˆàiïÐf“÷'ØÊÿƒ³§þ/撚”PKñS~DOÙ÷m8† rÁû_™"³–˜ÕF£Ä6†¢†{(;ÀÊß2ö¢d¯cL¿²Ôyì¿I6žœg;¬ÿ]9LOÎ.gŠ.zg0³Thëã»Nò4ò¢){B†Õ×X£oÓã™óÁHjªXù øû"ÔäaÎçzsƒïb€£4*´ôX¡þø”°DMÙiqì[K|Ê"ôF`-wð ¹³W©þ8„Ïr’ƒuÖ jï‚— ún‘6LŽð€ï¾D#˜iå‹7zMÅG6üGa˜ÚêTC”¤:ÏÏŒMÅßY27³‹Eþ‘1ÌŸ1‰[ëÀ'/Ão<%~M >åA” ê¶Ù™N‚ÛÑ£Æ4/bï“Ó÷«2([U|±è_èæ.ݱCnq€…|ly[eT´¶¶U‚S-2ÝPÀ®Ã‚*:h¼¡[ú=5Òl‰†«äOüi,GmÔÝB­7LÄ^ÇSWÕW:„ cµ1æ0ÕŠiÞ[‰È?˜Ñ@îoƒk•gßò¨ŽØüCìñ+˜aϯM!J IK|r‘úýk ·uñŠ1èg+¼N  :Û$hd»À;éäÞÓÚD3Ÿ¨&9Ú³dê¦1DŽu]îrúïJ|þ+ÞÙ* çô •3à=ª1éŠ+Ë9Ì.ºÓ=¿ÚmépêgˆLj!åB¿[™úó\®wÏþ#øUbˆâè¹| /3~»³É?2Òéëx¯  DÍäк¦äaú+öLÐøß”/šàoÜ%°Ò UËHNgfc–¶£ ½§ԢëU3ç*2’¤Î^ôoÿjmf.zAj~¢©ÌŽGW?»Âÿ¦û)GìúÝŽQÿõüóhôO %Ò+èžúLáÉé:ê¨E÷«$Z1ú—¼¦CöÏüóÞ1ÿaw+ò0&3ÿ<¶~MäôÒMo~UVËêüF´v%ê?¼A [óÖ¡~0™1DdÒÓIå•9¨*ñ‘s´=-ôçgèß^W*Þà• k ° ”ÈH_òDÏ ùÝ~0nõƒáõ û!ô¾úÙ <N{&ñìð_Ô#ÒÅFB,iyõ°Þ1š®3v•o¿Î.þÄÂï!ÿˆ*sû*gÜ¿ZA†\f'ëÂÞ®Çv§ÿnïîâgm½ñ6Š+Á>úrÇuùôT•Èí_WŸ5ÒØ÷!pç!â‘o»ú××ô"§rE½¸;LÄ´‡wñGÓg W`“–b14”©/ðçA-fð¾_Çw¶Õ„³ËbüÇKt:“ˆóíùµ‚ØA¬ßÃx¢Ûõç3Àâ+^g\ÇÎc“¡”wþàGaº Z¢úùºz7G)P×ïq›È±)ÿ¿ ûtè&÷ãÿýŠí«gþ¿Z£ý!ÛáÉs’¯<'ƒyDþáGlþ}Tøó²D‘…̓¨m«“3 ³¯M_’u*Ÿ9Hdþ`Øüãú«ÂœàüÄØoé xˆ§ ²Q~„úAo,×¶ ¹y·¨(IN¾Ðœlàݶ¢=eàz¦{wí-gn=j† l­ÔøAäžÔŸ/…‹O…~÷ 5›™_Þ[KXéͰÑø¼œñ¯að«ð¿qWΠnꕼ«f ß…çh¦ þÜZì"Î-ô/™GMõm®b{\Å5hfb³ˆº.›¹˯ä³ð”ÍÈ2ƒÔ¢bSxò~ôÐúƒùçݘïçg¢IOk þ#;ŒõNüü,2®´æB˜šã¨éçºÖÛ".Ð7;×xظ£ró¦½Ãow¦2¯6ùËs£uŸ\a1þ#.xÓ~ä0ùañÛS'\m ¹QSô»ÉÑKUÁ·ÇCŸ5Ü, ¢Ì)ŸQUÁ'}Ûà9ú'.“AFz“Cg1všåçóø•7žük sú«/¬T˜N(¾fR+§ÙÑJ‚~÷¾ ¼“÷ uˆ+þ¶òÿÿ׎_Bô+úêè/R„ó®Ff ÿÑÿQYO§Ï6»½ÃQˆêÛl¯~’?ãøT§2o`:zò݃?¿#jˆkzq™X¯¥¯Ó*ý$ÿQF^&ÿø(mͳüd"êÏsé9ˆ1«ÈLè]&ËEÚÁÈ\¦ã"óËÉgœ`Jë`PSÓ¤5ZÈÍĸì8 ¶°‹üÈLÊë‘X±¹> ¦§ñû<¼ÇÜ“0sÔ;"°ð¯û8S6vÑŸL"âùµ9DwìÌ1ô»©À—c©‹’uÙõƒy#ÏÀ FÃ4#Y ÔTÁÓVúôµ}É‹nØ|w5Þ—ìD> õEø„ìâY‘(vû0þcybø—‚ùQ5ñ_ã@ÕâÓã+6¼N”ÁŸåj(±Uä oÈ$ž‚A]‡{˜2v‰þ‰­tΊã˜Þü>£Z‚;O¥HQðÄZp”šêjÜÐïé±éÅZ+5— g w¶6:ÖÒ<}O×›¼Ï@G^}žCíú®+W³UçÃ7ŒC=5¨[aÏîÒ/öi^˜¤ð4¸Ë%ÔæG= ^*è;_mª„¯ú¬âõ+JôSÄúÑ™&ž j6êÏ%ó¨IÿÝM(^c1¼‚ÏiN¦ÿnÝïæG½n콩QJÄiæرkTÁ¥1ïª÷`$AðÏR§vþ¢ULSJŒ‚ôoТã(Ę‹ðvÏÌ„èobÕ›q¥w¨õzÈ x¬¼YAëb‘Uì`~m/®­¿ù ùG*þMç\Oµü8zÙÓ:Ö‚P×Ù#3ááÏû»î`üÇbPá äàô#Ç諸šQévÍjKOÁô¿:…¶õ W=–y„¥`vÑLfµ4ä[ÉàÜ{È?]ëà?’¡@~Ä)y¦ŠëÜG¹VÖ£©µžúA?z¤„­ˆîLf퀩ð± `·ÿBØ´†š…­-Ó»b·ƒø¢ø–ÄŽEàÏ·u˜z[ Ô†FÁ„êÊרä ÙàT²Ða”Y­ ¤æÏ%ý98ùo<+†èSÀZº .À)Þ`~bo-é&óɬƒ—¬`uqNr¾±Þ¢¨E§øµä%·T?+¶j²=†8ì0ùGz¹àÛ‚ÿà×óŽô"žë$|uté\¿úÉmˆKb¤_¯„þjsÐüómŽ2è¤RR¾@4rÝ ¿}æMÇP}ùG#PúÔŸÇ×?‹â¸^C¦ÑëêG¨)±–Èÿ“EîÅ¿¿¢úâÊÁ’i_â³æŽ5¬" ã?|äíl¤–;ÿ(*ÿÆÁn æN¤<™rÕ@ÎÂâ…+(€-%_ëÝepeÍ—nCÇIÙäd-Vn>ýE®¡[M»“zñ¸ðèÕQèUÄÞ–2úºÎðÖK.†r÷Ë8°ú5°¬îdÏɺ6ƒLÛ]c`¿²¿ã|Rc¨>!‚»ø@›‹5ïIDvæ•ìÉOm2r£–ëZ÷’Z’= bèÅI>y×ùsM¤Ò<É-¦ pNÎjÑaö{â'>“LbŸ3±¡QÈbⱎ¡—âóÿÑEO8Ö±)^7 ~î{YU9žçW>a¨á‡ô÷ÄþÐÝl±Ø@¬]¿å… ®ázsƒïâG²À™°C‹Q`e¦d,Ê4˜žQè¯&c—_cMža»÷á]ò“'‚h×T»õXڥू¾[¨yÃÆG©vMÐ0ånÜ¥üÊ4[0÷cÝ·/ Á<ÚTk?ïTÿ±»6NùÊÎ2Q˜çr‰ü£ WW6>!û1±½tqò0ÔfLt§›¹îLÂ4^ÌÙIÅIQ´X_©0<­2s"ŸrjCn±±ö Ìt ÷¾yJ ì™Óì·P…9 ›­pç—©÷koÂÍì¡" X“»™Êôç97§ÿnóPëu™@õnò*s5_ÑÉ®gþêxÙüGc¦Ë)­Ð_ÒMe!Ó{8»1Ñ6–s(óO2³$‚{[ñUKÞíi Êç9‹Õþ'ü¹?ýwƒÑ(L®ÿ9^ÚõQÄ#1_ËI7ÀÂ̯µû'®r4£bNô»û¨?»ðm½;ð eUž’§±Mêô„Eoù;z ù+ý>î2¿¶b¨óûíç~ôµœÜ…uÿ([36aÊjƒN_z*lDYüjþãÆ~8ÔÏp#y•b‘;·d×¶Õáü7}%Œ…7Õ gÀ“œ lUÈ\Š‚ê ¿Ê¥¦ó6n#Kø€ÿ{—ZÁüày–¡nœ#ºÈ¥ÕG0 T¢Êdì¬+~䑱Q]š‹­ÿŒ]~Âjd9s¨­ê6ÃÂËhà?:ð©t8ÄÃÚýDj’Qµ…ùÈn£ÈÛzLp—ø$»ƒð2ÅÊTyVâDåw½¹Áû;çÈŠz2~p1žÑ=ýNÎÆ$îÙ4ØØÎ¸`a÷ÕC¬¶'šÎËä;WðKi¹kô_µsÁK}·^ë'{ñi9`°?“ܯóÛ‰5ÎHe]:ºåÂÔ5kÂLÇ®T&»YA‡Û–j—l.3‡9ÝÑ´$d3ÍXa;ûGP¾ôì&‹éiÞWoéåÔ©Ýè»q“Nƒ©@ª ¿z3Ü<«~#{*N‡Zq„&ÉÇÖs§káኒo¥5šSÌ^*/vzùÇ%øó¾øžf0°ªxÍmìΉ¿¢±aȡ֣®þã.~A8'‰ŸÝÆüŠáüä3‘s3wzìó óZGýÇiÔ»‘Óìä~Æ ³õW \w0>U«PTW¹ÞýDU5íªzæhD§«ùzs9qøUX”Ë D“©iM]È žËhò·ld¼ÑTjYŒAh°>£xZN1ŸRÒMÔlW¿¼9Ä{ØÕøaoZèÑÃYqýwmoGMµºCX ­:o’ï.àÏ÷è”Çíg÷+±—IÁKÑiîÛÝ þzýîRÉ„E4A}Tj®fW=z‹ùxÊ¥X¦hª)ê({ò‘Ü ¹Ê3K /0†þ»—ƒ— úÎOë&Ûc Šbo¨ܢÊ!¢Õ@ú'Rqn¦²îÑÿj?ýKÊbcû¡÷*-"ÕA­¦ž5¬Š>† ÿXƒg¸¿ðŽHÚ*Âtfú_=¿êk{“ºégª9É*ªÞ²Á§|€O>¯òÑ< 3ÿ¼?ùGý {ßܪ~;†Ù¼¨3?±šH:½ó:ÖJd/­áÕw©vÜ“ÍtWùŒâö9JS]Ú ™à¦É´ø˜ýX²ìT³èäKèßÞÏÜÆäÀdp)™­ÄàC+La®DSt­í üò"îÇ+²¨²àW\‹åƒÅQNòˆ´¨=}TxŠ©Ìc*eΣþ¼êƒÔx÷´&?5´ŠX‡x.3ÈͲš¨{ò§º;XͺEœÔ’’+ß"æ»ÞôÖØFkëÌC/ÛÄä ñéù¥œ_èLèËÕ'7‡à?Õè¿[Ž#MÑ÷·p½{¶ÿ¨AöÑ–h,ùÇZ#úªFÌ‹*ŸŒOövýT9úÆ·Ž€“´’R•h÷ßÏ)jDÜT®‘ëî§~pÙà@0Î’dÈó©F¼Î앿ȵºØú«ÑνÌOlµ6Ÿ[/àE˜í­t`aoäTò¹D2iä4×üç¾9Äü¨·®¢CPå†ë7~â›8â¸ðÑRSÝ—„úA[¿¾áßósPî‘ëNøí¥ØEÿöä ö´ÙÚ{ºhM¯uOøórúYüGØ Ýo?þ×’ò<ÏûœæY4:ó¤a´¿è)y#›É´²6LvG²þ#P<Mä}Þ”…X¤Å -&ŒÔ0+±Q×ðH%áJ‡Èذ aQñðöÖ\ïMýGo¬æP"ü­œî‹D"ɈæSheÀÚ—¿ªÇéʉþ»ùÄ`þþð97ß9øœ4`¤Þø‹g`çÈC$ú™ÆØ²Üt¡¬À÷û‹¡ÛýEúâ½NÀŸ¿&Ú©‰—(óiו‚%8ÁZþð¯ù„ ÆZ¹4Ä<ËÐë%Eµ }ãè©â‰Tÿ1ßøblP+Éšæ`¡¸ÑK|Üel÷T²{¨KZé"œ]Î`ÂX8άj49Ñ#|DC®¨øUÕ„þLwukjª*{¯Ý?n†¤‘Àõæï¾÷P‡?ŸHN“\mæžOÀŠm€? RŸ ç9ÂE”M¹Aðq·À·2ª‘Ô†ŽþÒ†J[P\þ={°û— 0¦×l;ú_­‡ýý²ëÜ‚05 õ±÷›àÏ{©5Dß÷ßý*Kp…©ö‹‚¾ ³¼ ®Û“|à ¶°+Gs¾£3Ö rŽƒøÍàR×Èwv)»:é±XêÕ^˜¬4ðöa¾¿Àô ·m3UÑÜNíyì•pv7é°R×Îg«Å†íÿLT'd­Pë Ù‰&Nsv ªÎôO|GýùN”[‹àcÜ~0É)è ÿ¼G?ø2Ö}°¦]ÜÏmø×teÌ^ßõ0’ˆ^b.Ì_kTn¹ñIô'dª»°úRCR Œm³5îã3Ïb¡§™ŸÁÚPѾFîˆÝ} ߺKç—è_’ÿñ…·€žÅDô!ëN>Tnâ u%çÈNÒÏÝ Vêó£ â?ü8ÏÕ©()«Fõä0YÊå?ŽÀ”åÙz“ó¦£;¾¯ÑÔ¼Hþ±>ÀèK3€Z³püsyÆGè“Òi§Qе;Vh¦Jƒ„úRCðí‚Ä0}¦Ì‹÷褤±€Ž/ržŸnÃlľT~ô#‡KÉ®‘ìï¨ù‘¶7ýÛÛ‚_Ùýwí>ÕYåšo þƒ_%CÔ Ç ÿUØÉË‘ÝL\üÇn-¥ÞAÏBÿÄ¢œ®ƒŽòÌéȦÕÖv€‰Fv¡ ¿§ÄJêϽ°V)õò-sEÒh³éß^_æÕ½™?èý“óÏSËSÔÆÇŽŒƒh Ré©yjÓçp ó÷G2ÿ¸"î‹Æò˜Í.v·è;‰òi!×ð’)xÁ—Ñe·Hé¯úèCÈ´:‚D¯/±«±¥'ÛΪVƒ_Ý$b¶°ãðÍ\gøG73§ø?sVzðþ•UvGnòÛNä4—Ð]am[¿[Ÿ»°«Ò1BþÜ©¯‡Ñ§=ŒöhlùjSVÃ9ìÄôXGöp¬æ-–÷Hùí‡hJÑT+@Ä6…ü# õ;ë"fó ñ“ˆ`ÈÌ߬fWÃŒÆ\æZ:êÁNðuû0uÇ›÷&/ú»8ýUx¢¯¬×Üø¢k2*ÕÏ-±»@švoUAÁVïÌ\¯àðbþÇTÔ3‰‹ÓÁW¬ Ê?Ò’t¾¯grÜ P™[`ìYÐò\ã~ÜánzàM|èß~/x© ïv1p –ÂSQߊö üj3~÷+H~zs1ÓóNS;¾M52ëà Ç_U æÎFˆº3°¶ôeŽ(ZR2ÉðµK™þQíæ r;“ùP]ÄÊt¥ÿnêÞЯ0%u“¨RyŽ•t§Æ¤÷Ej¡ë?Fh_eQ0½gF3Ö)Áþã *È ¼ ²S…ÕÙÖÚB‡ÃE(±æÅq¦Å6ûñ+/üÇ%ä®d5¥Ô$øóÕ²šëÝóWôêD*m9Wî*;š”zæQziÍ¥>>åÛÂËœcO£©?¿NÑÊ ¾5×lB¤ýUI£‚:¿º*zbëŠó&ŒÁ+y>øGôOTT” å&íÊÞÒ¿ÿô&uöíäìñ<Ñ"¢ï_Ux†êr-˜ý~¯̆i”({Z¥_;_Dþaw[WX¢aX݈ñ«Lb¬­¿Œ†WË©F’+ç0.ËžÔI\†‹<‹j/ùÇ*¼Uy£W„ókãë«`fºã?n‚ξý¹¾MF6ôWãA°Ša»÷ÁלbÕ˜Ô8œ3Vʵ!ðÐÐW@TÔÊÀLESçF}ÇGº´¥zg¬#(aÌ#ÄýQÉe­Ì¸~ÕF¯Žf]:ñÞd#˪Í=»~• Lú%¹Pãþ·þ=g;¼Ánö~,¬,Œ}þVøú«ú.9š,p*(RÞó•<Å)Xü¹°ËCéØš½Ð}õ7ÑzI˜¥; ýÜSwØ™z¢ïbMÚ9ü*Õ¯¨B{ §å‡õÿÈ$‹ìæ|æ’^3+bÛkÑÿê0úÞô|Š=¿ÖÿqL6ùŽÿH Å¦2  |ÀJjÔ…¹dç,,p>ê?Þ‹ÿNÿTÎW`eá?6¨øögð±Ér’í9éaòiŒÒ üÑF|u}zâ±Õ/ñŠ\íñÿw`YlÝÛffÏžyLìVìîîÂînTT°°»»»»[Q±EÅÀFÅîîîþ~Ãû÷!Ä<×õ÷œëa3±÷Šû¾×Zh#†ÙÇÚÌ"ö®Ôßëöóp6¹PÄ¢–ý»ì›8Â/⎭üÿÿc€-Gˆ~ÛßmBtSü»ßþÃvKYÃü¨®øUAõkmåÕÚjµ˜ºþ%W?xÓ¶’®æ QËÄÅ&ª%´ê$øóÆèw[hûÔ:9?*§ðC÷;½œS=ù|.Š©9ÑueD ôWÞ‘ö”šâ Hšå?˜4Î -Iô:ŸˆÄƒÐþ.ºè)ÿÑE›ŠR¹1™Ë "­ÉDÏϹ҄Ä^ÉäJb¥+`ú6˜Ø¬ñü¨xÊîïœHêD'>lN*ðZc?oaË.óQ€»c9fð}µI¡¬Àïoü‡:Ÿl 3ÞËŸèè%»µ ß²%àÏËá‚`!êvçÍü¨•äÏ“(Ôêä)óñ9ð”ñ@ÖúÂú¼arTînhÓ7²ºç *¨¥šÆßÑ'_ w~ÔDæGµàygæ|»óñ¹GN¼ƒŠ-ìMýùCÍ4–€ãôÅ’¬#+‰P9Dçºàûõ·U¿êA­Ër2ÜÔ0û›R#CþaÍ??D…_ ð«7x’bpª7ÈèîñL,]Ïrú·ß^*è³ÔŸÅë[ý…1uÚ¾›þôLÓH ÿQƒúòÄò5`C¬)»‰à~žÃÜÇ3zÊÕàWa»ó¼UÒ¢„hE9üC°EÖ´½´è¡îãÃhö7|­—aÍ¥*ÊU>m“Æ)"ä¬úgº~†¼Ä‘ð5ØÁÖüÁ“²²|«'‚?_ldÃoC}šÍ~Ê|[{ç‰?*†ÿX‡úX°ãnº³hj½Þ¢œ,!±¿’‘WÄàIÍ s¿jaa–H ú_e²Ÿ2ž“ÏT¿šÅjõ@‡îÉØÌÀ*Oþ\?}þ£ {¿LÁz½+]YlTwS2žºÁ»Fnøž®ôƒº‹«¹¹ œq.ŒP>j'3s7BLS:¯‚?ÏωòAy•X'~Œé2\›þ‹7 ˜µt¯JLÿ’c QÛÌOr\~·¹Yeök±Erä'”KZM"Ûnd[‰àÏ÷êmaÝsòúS?ø‘ç7”ŽðñÉÐÚ–!‡Èh¼ä7í²üG*y/†¨b=¦´Òæ‰úD+ý‰qŠê«ŒøäÐ_½E¿{ƒ:ÄföeÌ?OŽþª*Üú)º”å'€Ky'¦S•u‚¸5óÿ¤âú·ëw5:ïÿÓú¯¶3诊iu´ÌÚrŪî[Cÿ’Êj2µó£b)7ÿü ùÇÑ«’úÁàbyÔèæ*‰$‘¢ê©þ]|q±“¨þ‘¨Àn¬L­ß{QJɬÅ#ÿ¨J÷«ø…¿q !Ï[ðçו»J qϱkµŒø;š3xæ,ëâóü×ýUŸHõOì~5W´!~^æ?ýÿòØ ì)åv¬Ä%ê9Þ‹’DÿñôªŽ=|=¡?K¯Xþë„HH>“Gý˨ß½ÁÅ.P§r ¬ö9ˆ'Oaž¥ž6%”½–õ§ïêl4:]ˆž±»ï¶Öç¾KÂ¥N Ê?’{ìà ;žò‡øIÄ¢ø­rÑð•(hg^ó=—Á·zÁíÀöÖÂcä‚»q‚ 9 <î(–«“@šêë´£Ú;ð &DÃûÉRÖð¦šQGSþ#±#ò ¾¾K¶bÌœ€×‚Ž'3ýp­.Å‹Qþ¬“­±vëaöݱðÁ¯ÒÂ-\ÅjìâÚ%Œh_-åo±ÇRuO½ïoÝFš¢hí…vºÖ²µQÿQ‹)¥á.jPKu!»)Ev³@šF9]Ta§ð­¨‰y W£'I j#ÒÒ­j•‘KV¢Ÿàz¡øSoàjì…O©‡?JÍ]Oûri#îÍAÿ¸à§g³õVUåaö>Ð8‹ÿXL§ö¡xpOê÷˜Ѳ°ï=Y€rê:±Çj*sæañïPE_]J½ƒc¹$Jgú·»¼ 6ÛOÞÖ—ª”w0Æ1™¿·™ÍÁ™Š¢ºme4^EÐïŽä=ÍDƒU–Œ'“üL7¡ŽõÎ*gÔ”ä”ÏY鲬¡»S¿¯sêîÅð'{˜d8þÜÉÛ< ¿0—ùƒ}L«vµùGEü‡‹X¢¢¿r\«*àəȂÿ(.ûPc_TtÊq`¢V³Z{:W9QŸXì.›á‡R¬ц”=ˆ*\@ê8vá+¥ µGVý ¥Øk¤W!ó»`v†?º².-½ÛÚ×SQhg~mKã5]Ä ˜:õƒ èóv]ÌÖ£‚B^ÑKˆÍŽ;þ÷>9OþÛ±¢(þqÿ]}¡–¨ÉPGѳU©Àš[™?Ø ÿQ”þWš™Zºàû~Nýà$Ñ€3“µÔ55šV\©¨¢±AøU#5´~0ø'Ãÿ,žXÏÿ šƒÑ—ƒ‘¥×R*jÖ4º&"‹(+&‹]‘ì¿{V9§”—±H;É?fÛ&†“KFÿÄõ`BGÁÊrÎLjt%yþÅ„újGú_-#Cx@´;‹ô>ˆ?w‘ÎrŸ–œ¡*ù‡ 9€³¬ µDˆ?$S:‚ÑÜCõœØm.uEaßcó¯Q5~èþ–¶96|$±ø m¢ã݇X$ħÕ%Ä6íñ {Øß6<œ+OК¢º^ µG9•§è¾{ ?2I"–(a±û_Ë}·•Q™yNWÄÔ(¡q?o°±ÖÄ÷írÕ ó@ˆ¾à‚"!›oŸ¸-r7ÍÎU.5nÇ;ˆ‡ö· 'ùÿ¯ÅSŠF¦0Râõçûñmá*oƒ«,æ]G R~EwœÜ_WfcºrIúïŽâé¡Þ#L#Wáoð ­Œ É"bru¯àÂÏ‹ÇX@¶’-Æ—C´¤jØÝ½\+ö¤Gù{J6'ÿè¿©AýGðšô¼ŽåOt^ÜØc‡<æ9ÍhBþQK¤sÇ1ÔøìÛ\Ï&¼â PÍlø¥²T¦]‘¯‰E»R³vÜåõy±ÚEà»oà?lÆ™þ#®º9ÔŠÝà?š£zƒOÛF&ðBשlÜi´†9‚Å~Tþ|ùÇjò™Ôdb±Á¯Îã?:П2´ÿh.Š‘œà½•á™Ç$Â_Lýù~ûôW[ÌÜflâû\íZz^’ýy¦ ÈbÏèå2êÈTz;Ç˰3EbþÑýnAyÏßÿñƒº V`«1lèüÇ]”±+Œ¸°çÍÌ•ÜÅD¬}f—´ UCEð<ÃíÊ ÕÔñ%>ÿÙ˜÷èaµªG~‡|ãÄ– ˆmú¡”:n>”#ÍcÄ&npò5á?ê‹ý!ú'®¢_yØT7"¦Äø ú ž™ >¨=¾â4õñÔ$6€ÿÐÑ—!+I "µÐÈ£©Ð»¸4¨è&´ÿºá¥#{¯S{b ÊúxæŸ&Ó:a|"—ñ¿d_dΔ]w³»ñæ,©é„~÷.¨‡†Åx¯SƒðkÁñc -e½¥PèêjŸEþR3?jý¯€_yÍ?÷±5‡§È©R©}UND~)¾óm³FF„ŸX/îP^’.(:•I47í.õƒ§¿r›P5½¥°ûEa·ã륨?/…ÆÆì£œ˜ÿ¹+7¨ÿ¨(®€6­g-€‰NJMk.ÖYI~ìÕ) Ã2PØéb¶+Rx ãçak.Q­¶‰¬æÈzW쎊 ØGr«ø]”M¡wˆ0ÿH©´ï àþLßq ùé6(£5Ÿ#žÿ‰-m¯/ÅäÓ{jÓ"xÛŠ¶‚l 3Š2ü‡ä§šb5ËÃ+NÀ¸`eWïÃ\ÁvÌÒGŠÅįt¥žêB~eu ˈ‰r;’:ÆhD÷ãÉ­>–væÏE*ÞÛá÷¶Ò ²3œ«œ jÜL9ï<‰=·zÚu$ÿˆ¦‹wZJÚQÔ–»¾Ï:Ëð/*ÓA33ý÷÷pÌ–KÛ*¦s¯ã¨kËNþ±3A/€«Z³£|¥+ùwžXökwÐÛŠ&ÛhéÔ°Ó57’ôg/0sŒ¿üÚ±ºã(Q ÓY0³éòà?*6m&ÒN H­â{lùDQó7þ\ÇÔC3Z(¨æî1LCb÷FN¶Ïè¿Û›Ö´‘xŸo%›É p‰%>äκ©.õ ÇÑ¿¤QÅ;ì½Ù 44l÷2¼W ›Ï~¼ÿ8${à?Va“x1è׸›ü® èæ¡Öë‚ÿpo:F³ñ\Bÿ«þøÎ†Ý¾žIßáA¶שÿ( Òžœ®!¾ù9]6£–ü,º8^J^e¬²ÿØíH&öÃ!ú—41>[Ÿ¨ÿ8Ì|’ªÔU”¤ëHs.µØ™µ]Á,0¬BÆ|˜òÇz/1Õ±ÞqædDMr—óå/+Ó ^ç§zP?ÒÐô§áô¶Ýþ¯É!êóv‘ §É[Ý•Œ¦ùmS±Awœ=_øóŠÄ`-ÙUNÖÙ—£\öàk­Íx67ª7ÀñÃßùâç<áÏwÒɤ{•nÿdƒåáÏ‚õ»ì乨º^쑜d')`bÌ:¨¯¾¡8nÖ â?^q•UèŠuŸúâfV²°×ìЗb"4kwüï}B߆ýŠìJŸ?F]“P“¤D•I[4ÿ×þWõ˜@X8(ÿˆœuþõ[žÚ¼µ¢2\*ÔRèë›A]§Ø¨ÔHÂüó‹jSÕÊp"ÿORA—eò’à6EQ ÅÑË(EPáyI¥uÄx±ò·á¯N7æ×^€=ßJ¬°ëi'ÿ`ºXÌþ¼E¥¶ ~¥¿ˆ ~™úÎÌ\"z¦/äÚfF_Ÿ•d ô»©á«Ð7¤8•q#á?’¢ß­¤ßiX'ìDNv«‰¿8~U„ä†p?™÷2l½ ók#¯ިKñ8°æ~x0âŽ.û9Ö·ùÇòö¯¥ÞµòUäÏ£(…Ôt䓈‡3ÁnØÉŒ¦ +Ó¨Ï[ ¾Dã~ô•¿§øzo4K›ô£ðçQÃy׃•±ZO|V üG=ìÖ9b·FÜ™F0‚‰q¯5ÃØBŽTGzãÛ6á§š’é§#ŠÏŽÿ8kËFýàpÞßp¹ÜÔ,'¶˜GÅÆòx¸Ø3‹ŸöÖfçùûøp÷N²ùǃ0›e:BôOËI¶pMö†×ÎsªŒö¶3˜ÓV£0œràúµðr}a r£F~ÒúÊ"{˜;jv[®Çêõ«Z _V˜Ú»‹àW]°¾ôì³É?R€ˆåACvƒëýJæT3dWC÷oŸ®øÓÍÿ—”sf2É£% ¾½Û3 ¿ 0«Á΢/¯7ë¥ÂÚGC?å:ÕZφÿè/J“ñXúŒ¼øÙ¯úk¹ù£a³QM½ÿ!Ð;Í5ÞÊup?Ä^¼í°I&õ*nLíéx‚I¨´úbv ŸÉ%·§u¡ªÅ µU4:r­…Ÿ®†ÝoDŤ]AœÌJfvs6yÞtôÚ9©}I!o£ß ö;• j<êî÷ , øZÖaþ­´7UÊ /ÿN(+Ìh̯}À|¿ Ôkt4÷°£›á}+¡Ïè!V‹|ÿ±Q¹¥•æÝvãTý$Û÷Ó‡¡¯*üÁ¦TÈo WÉ94ÀåQa¥¢¾¤+¬r’iFX͘L*(*z Üã× ŸWºSÿQ„óÕ ¾²–¾‚Ž÷o¨<Μ¨Ãd5ãÍÑÔ¾2ƒÛÕ7ž‚±Å&ƒëaf–-ˆˆçñß}øó’bͯÿÅ'lð޽ª¡¼NíøÓß]FLüÇRì|Mú·oª"9Àü¨êô/ÉÉäó/ñ+ÁLÇá¢6/ýwª‰µJ(H4*s³0¡ê4ý-…päÿÉÇäÿèFÄZýÕgQYÉ­åákD^ô’£Å:õL¤–»ª–g|õ˜›#œ«ôRFhÃñ 9¸†Öh-ýÀ k°_~ÀiNÐÓK¿{,ÅUžâʬޖ蟧Þü¨ëÔn“øéY¨­ÒÒƒo æ8ì×\âî£DÉÙÑ÷<ƒ£ð•.`!–þêy2™RŽÕ2ý6ûx¹:JŒÃCgÇ®½‰ù„7<¢m©ÙØE ˆ þ£õDð²†üŽMtdMÿ’š"c˜;ŽªÆÄóµ Ê?žã?NÒÍl?ÕYøæ0~X­ø·9Ôì‘ÕÁØ.Ëo2^êîS†á?&ª_À¯vâ©ëP‰Q Ûškïe´•%Ýà÷NöÇÄ»-ahÆàñ6ã;sÒ7=z®S|oS=c˜þ%­E”JgÙ %åPš‡rµxÃÑ&£ïîlhFìóð°ítôxD­Ÿ/Ü”Ï3:Ï¡šÔôàù1• Ê&|­Øm"|È6æ×v%O˜I {STÁ^à8Œzhd›Ã™îiæ1â}gÉãøÙ䟯uý¯v)ÕthÃ’Éœ”ôhd„]Ñ<ëöú诊S{ù’f÷ü‚’j'ý¯š'Á&’mV“ƒÈVˆ\޳·Ÿü£Ï !ë¥ܯ4òً××á.[¹²S¼‘ùÌÿ8OÑš®#WÍéF#ü‡)Û³+ZQœ\‰Ý~Õ‰=R´z¥Ç~¦ç,½'˜k¸žáöÙö»Ô§ô¥ûgTÐ1¨e:ÃÅ¿uUˆ¹^ÒcþQÿqÈ–$„~÷ó£þ)~¥1WióëhñµmJaöÿ[eú—¤Pó«^ðç÷þdòÂýú]Û"PV¼¥Lô§Âš«ç”ôDÏDþqþ¼P˜î2Ž/gÁ`ÞˆA`á`TRëÙðYˆè&ˆJ¢"üØÚßl€ã‡C}rÿÑQHì܆ Üä9Ùh.ô»UÅ øÈ·p•ÉlG‹¤`bBýdøè«õE¿Û›Ý:›¹ÿñ;‘ü*—\ƒý‰"kÁ;´Äz‰DÿÝÌJò+«þ#-8ý"КÂDÝ-°þWA]o€óä•gðǸúrðõ¿2´50Ô]ñŠ»A“ÞˆÑÄú«àH·ÈÉØÓr3ˆÏ¬†«ò–<ä ý¯Âönúuß©”2jMüÇlª- ¨Da½~Øõúb9™,k Ø*å·á+æp2ï2‹wš¬ðøµ–Í6G页áw&råîŽrò\¸º×ºNþQG<Öûˆa]åAΗù‡™~q²”ðæ×>³U§Šs ײ;”ŒÆ›§6 üd%~r•siåTº'>Å—T„)¾Š7¸ n‹§¼KKû›~×['ºsE9™ÁñÁÂ¥àrE5ÜÀ­VÑÃã!ÈÕNÙŠùçðřȓ,¾¿8öoýÓ„ÙÝ/'´5©g? *Ó¸E|pF¦€C¹'¯Ã(LyÆœ»'ð1É?êããžÁbg2îËœ¡/ÊŠP+ŽUþñ±AcøópË Œ)àjýñ¾ðçqí¨×pG[Ü‚Ž+ÞAµ>k¨7IJÄŸD]QD³Pë5é°´gˆÈ‹3Å$*ºª5Ô/ôÀ{õ6’Û‘dcÍ}ÆSp­ô/Ù„®Àƒ ê-÷Ψ ¿„Ð_YõƒóˆÊ<‰"Ò©{éeê?¼°Çn<»õàN?À¯.0óo±‘î'y-ð8Ö+jÌ"Sü wS[ÅW9¯:ñ<@o/É’DPL!Äç:ÙK˧çÙÙì3ÑïFµg¤^ã yW\üÇEbzÞH5˜«Šbzÿá£økùQW4eh2#{°ñÑ,BƲè̾ÛQ\¢Æq¡™>¥™È7yþ£ï,!þ£ùûqúUýºÀ›J°ÓZèS†€ë–ÓïQÉ6Z—˜`[Ÿ*Ç-æ4ûd­‚öEfO#Šýºñ„9*ãÌTÔ’¼cQ=$–Éü?áÏOÚ‡˜_ûÎæùõW6& Ì Ïa#-7õçVü´ÈVB­¨&e‚írœ¿Ó_±MÓfˆú¼£,L³ø¨ºh•AÁ^iÍE!~C€Úü/ûï‡õ¡dzÝyÛ©ÎÈ­g þ# ‘ëbQAÔ%¾ðV#W!ÿ@%ñ«¹ ³RTZúÝàWÞÄÎ-‰{’ábe¤æ¶Õúi …vØÒÿ®#FyB%j|¢¥\rÑõ,«‰í[ˆ_òtÄ@¿ö^ØQK5zˆü#œçüGEP¢Þ°É.±ã¿ãCÚq6Ö=M…© »Bè?kÚ r‹æ¬pŸ¬è51uP€ L¡X(ûà?–¡¶z£Ä#æü‚…|,N…Ðc„^+©’]mÆšÄbOÁ+ÞÆb[õ>¬S/R“ü~#±”§³§#¼­bp¸ýwGÒ¿¤#*"ø£ºdWG°ÖåØ/_X¯/j”Gš«o÷pïyöÚ5Ar±ðüGõƒËxƒ?èm1•ÌÏäÙ¹ àN­YÝoÐdu€¡¸‡µµ&}_à >åÜ–…_9Aÿ«°úÝ­ÔŽÃW§~𠕇*>ø8úÈ|ñ¼AøÕsÃíT'ô»Þ lqdK°«u²üo€è,’†y/•Œ<¡ÆDå¾ >¦áÇ9W‘Õ¸+a‘{ÕÞÅŒ22ëÉäJb›_¼”U©r"† ù6:¨Näc›x«MÉ\Ñ_Qóâä!ÓÐÁã 1®Â[ ±ôÊX#{Ϭ”I讦-ù]“Pë5¿¢ž5^~ª]¢âeâ?Æ¡«oÄC œÒL€½>ËÕŒ3ê˜çy’GÉiÖâ‘ákZÉxzKÇ奥Sêrx”œ„ÜdZ³õ¡LÁB‡ÃhÔúK¹ÛGd1g©z™ /Òßô5Ú,rrÔd¦“?À¼ƒû'ú*ÕDdG8­—d=::²¨T‰;ÙkÍQŸGd? Ä)±= |Å]ó°ù]®2ýõÔVn&“›L4²LTpœ=e‡V‡wц}å,ýÄV½3£ÊÂyT¦Ijêý.£í*B>6½0WûM^3×Ì/£³}GòþìÜUK‡ÿ8«¸b*‚pN$‡N~•¶¼ þcS¢²Ð›«ókך.à€mŒGÌ´SQ2ÑÌË{x$,þü"û¿ŠØéx‚ÿÞ'¶Ô!úM¼±õ ªÜø'¿ßÎüÁéj­‰K[¬Xøíf[c´W ùo…¢ÿ%~õÐ6þ¼1¨F|}…x­:kiÔMÊ ­¢(J‡xøóâ¡öoDW\Uܵy‹ÿx…Õ)4½ ó?âÀp¶#ûh,fˆm‘ì¿{VyGÿ+kj«7¾â d™\¤¡ð"{¸MQþ»»HNσ°S±Ã»ÊæàW+Áq^sN–a›cÉ›ðÕ)à= r§†¨KáNnÃÜKÇo%ëk9”®XÑ›‚·²ŒœKöQŠ»n ö~ õÏl˜ÊÞí î㟪͌à)Jm)V²ÚãøÏš°¹+¶ZÎÀ¦T“k8eV•_4:pDx§Ä¾ý B_eA¥˜Ú”ß?ü*3±}L|ƒ5¿ö#Ê«!D×óÀããÞsήƒz/á*?Q 98\üjª2Kë–]”®Þñ ÈT%lþ Þˆ'õѺ0 ‹‘¯%·rÞúZðêx|Oy=¼ùµmåµ½è¯b)“ólÄߌƒe˜OõøTpú4ÄàPÎúPýñŸúŸ\_úVí£þê?ú‘ À¼‡AùL¦{š ІþªýK ›Ï²p ®FmXšÁp µáF|a4FÉó¨DÂjØT5ù§Õ?q¹fX}¦ÎÒ]7©ñPþ Ûxª±˜7Á:ƒ_­Å—½2À†.ƒ®fGåêMTU"è½T¹’ÑÔÆ$2FÔ–EŒý`aIP~ ÛÔ=òúøµf¬·¥Tã$¾® Ñ®G¨õº‹œDø‡ÉDsÃE¡þc³÷Ò —‘Ѿ×ÌAíÆ7¢ý/r!ÊÙû W{ðËþòs“¥å+Ñ˱Y(m•ùì|WÎ@>éO¦<œü#¾9Þÿ1Ý\fÞÆøFT'>¤÷ÕBËYaìs°{Ú…à?Ž(×Ô8œKEqL–à¢çÖzDVF ´.…}ÙLtú'^7vÑ»ÊêttÒdµÚަb(ê8{”ËZ9vZ« ¸)3g¶ýw]á)Êà?“y£ +À¼’ŸÆª%l÷òNXŠ8ðç•8?L á?º»XÜݽ çu•5?ê(Zw²Ê¡fMûhûb³’}#ªÞ»p?ñ¨Ph"ÿxC”â„ÿ8ÍüÁÿEÿö3¶ !øÎ×¶žD¯÷Ÿ|´ù+“˜SÞRK§mš_ëc+ ÿùµÀ¯nüáçÂÿòUÛm >¹6èý2ñ]p^uŽòL«,2‚_íU;þeÿÝbâQýwt²ØâAÂIo¢8k)ð%í@›ëŠ©è¯Âj0ÿ²å‡ÒP<½XGö² kþÜI¯F²‚=7ÿÑGAÿÄâUøK„újK­‡æ-:€ÚÌ'Y¤Ç$Nò°¢K¦µÔŸ}%÷ˆI´3“½Õͱ‡C-âù”¾ CWDbã2r>Ç…:ïþ OôJàÉéþsÿq®¦†>—I_!~8œOª‹¹²^xÄ4R—»,I¬7 \§´\NÞ´›gú‚§ðüê°8¬døÃš”|jeNïÔ»iYMc2Ib®Çú ¹lf¬!ÏòDßr[xGðÇø,í{8W6‚ü£ž¡øUKÎÏI|C-ôó}iú_=Ö¢Ð_ªñãqVÙÊý‚UÔs9Nnð²—©ÿX*ÆãÝÖ’qdÁzc!&_Î%ÃhuJй…^è(ê+kRÒ!"‘ëüöÒøLê½à¥‚>ó?ïÍ›+#oã3FÊ×ä¤>èþ£Í\œ>õc¨±êÂVL/kE¨-Ô¿õÙaûïþT ëkÃzëÁ¸~ÊCä©û@§¢À(¼¦Za ì‡iÿ@~4ÔˆG ^šÜð jã¸ÌX/ f £ß€ÿhŽWý®¸‚wx§§ ÿÕ2”´Åè_r€þW‰Ï›P>ÐhÃzPclGÛkc½ÄЉ…[¨·Ü…úó‚àW'ɯנU{"Ó?±¿1 åTvû*³8õç¨Î{ƒ~·4~n7÷ÑÍíG*&ÆÒÐk:ž`ÅÿQTí‘úâ“L1üÉÜXtVßHÿDwz¢7±ó +º‰ÿ(GÚ­÷}ÛŠ§¿Oÿ’YŽõö)‡Õ´øìÏ@Y\¯ çÒͰ×aÞ‡?óN^ÁU\4Ó1ÿã 쯙u U¬;8õ8ô8Z+ê:ÎÞå´V”L·EÿȆ5ÑÈcwÅ¿•±²ºÉ4ƒQÉžõ͸RÙ>þ$~Ýô¸`k=‰`J 4¨âØ…Š»¶MÔ!3@tV]OŒg{Rw}Ò /ÙÉ[#í;é¢8›©¶÷È?>Ñ~þÃM·*¨>ˆ@ðÛ!;Ç­ÿÿäó£‚Õ-ßÉ?Â*?"{ ?mÊ|xîúZBôWÖ*Vÿ’zj\ð«ýŠ¡œŒìBAß÷È6üª¾:ƒîCýGøóEÊsn‡x(?µ¦Ú(ÔþhñÊâV.;œzúˆøäy´ Øœº¢°(O¯‘¿ÍpÍ+ð-Äk,ðÖÁn[Õ©.zGÇÿÚlLsé ~uFä£F£‚ôý+® "›½Ä(yÑ¥XÕŽ¬oõóh ŠP¿ûM]¥G¡æ©Õá»ûq%¾Ä¾Ë‚ôWåà½ßðç£èPtT“~úᣤýÛI¦UÀ”L/ Ö‹Ìh4™Í«ÜÝBlÞWò¤pñ7±÷S`NŸê˜ÿ!ÂYqŒ2E«ÏÙÍÈskJöæ‡Æš¼òåY/ý«¦«öÁüÃâÏ÷³´ ï)eqŽ“ü­ùƒþb*jª°¹¨ßιˆw0=ÑXìrFÙ†û1õƒ¹ð ׸ç`—ù`üµÌ¿i¿W©Ä¬A6~B3†ÂôÀÚ”¢ÿU}4·[Aïo ©†h NZü5àh«rÃå)ÑZ„U§ëjžPklŸ*¨Oò4WºŸ~TƒòQjºyÄe~íc9ÌHo¬”M±æoÑÅ#_¨Š¢âº~p¼úA4Á«¾ÅFÇË~×cÃ,ø PÓËId÷¥¤¾ñN¦û2r…œxÒ„p+ûÑ·ÑÉIÔõNðG®ì¥²D$i'7xÙ‹¶üÚ1vhÈ\Nxέ\Ûrê‹ç‚ÓuC3ÿñüƒ~Rôò8Nnt‘‹–¬#7~¼TÐgkÔ®bŒ“YáÏû£¿ê‰‡+ G^ üj"¬êG2‹²!ý¯ðqÁïÑ¡°0þãd8ù‡¡&ÂxÀaQa<’ÇÀ'á’ °}I/½þp±íÑ`·=陸ŠÕ  ûŠB~r‚ˆ;-üùîPoz¸úUÔ%ÜÉ3Ұヂð+ê±­Yê‡áš’oxп}ž=•')é_rëì¦Òê…Z¯§ÈÂn°X¨ìðÞñ`^¶Ò 9häFU„Üá#dzSSXñfîÕ {ÿŒ-‹QüÊÝñcÀ,eÿº³_sp§[õÙtQùIÝ`Zô« O­Í§Ìõ;I½ÞjüG-ò,ýXî$ŒKJ2á¡b¼c½@e§«{ËNõ–™õT<—âè—{#s%=Bvqe˘¹˜ÂΚ¨¶Â¦Œ6Ïc“›rÏ%ä´R£B̯=£¬ÖªrZqÚãÊïâ˜>mUò‰ÔIÞ6,ä3>m4üÇIjŇš©ðJ>†+ßmCÍUlKˆ.ž÷É?fŠ úpêÊr2Öѱø&wzƒÞ^x¯½™¾ˆzœ:ö~æxã-¿!ºšyd“ üê›°ú—d›wüï}rý•æØ Ñ”þÿ¸»I_ÚÅjF¦“§Óæy!› ³kMê?Ö)?m×?ñ ý¯V‰œùdú<±‰¹"IÔQÊ­¨È®µÒ©­ÕbŽ«ŽÌÓj~Õ;ܼ¡¹ÞSHüGz-!ÎQ‚ú9bµ9„íøU]ñ“²ˆ–ú4œ¹™…ä.6Å0WŒ ä\Äí#¥¿jEÿ«Å¢HôR¬e E°ïÉa£­ùQé@J[pÝnÄÂyõ.úÒÊøkÔXí "îÒ° ÝÁ˜nbë¬úó/ØZw”›[ÉLzG¨¿rÒæâqz€_mçÙ]Ȇ¼°»èfQ&y1Íiþý¤K⻣úIæG…]ñëýÄUjªeȦ£6HÍi‰…?ï™y>žÌ`ˆÛG~ÏSüÇ ÔWs¹Æ{ÖôöpóÙèwGñ¸WØìóx†âxô»\K]ϵ¨ÆRøÞ0¬´óžœ§á®~÷ú« b÷ºþ7+p.Ï|ßšó>S„•í~õþ< þå¾ã¼O>²¼•ZÜßú—xáW̪B%õ˜ŠÄ—øË d3ßA¬2Rç[Ú ¾£®QÄ¥èX,évò~ôOl,Âv牢&ÆKv‡¯ßÿa3.cY¯ÒÏI„ò!].Ñ1<³=¾q•^)±¡•x7 Ó:4òGzõh¨óÒWýLþá÷äÿQ—çÇb+Œ*²<ýýðGèwØOå~µU6óÙ̼ªŸd=ÑeM|pãPë e`ØÏÂBåÆ[&—ZG¦ÑOÖÞûè.¨Òo䓃ßRƒüc ÿv ¹;”Ö(*Ÿ„¨ŒŠþj÷çNF›ï¿FAFÁ´ ¨’RKÑÖ|xdg}Mjc¯ñÓ¨¨,D̤ª™XýkÛÙ¶0¿ÖÕõ+ü¥/lPr˜¡¢L`‰bïļÁWèmŸÂXl£ÿ}vø³TbJ£·y—gÓ •brøÕ*QÝqö”@­.5U]ˆ—¤Ì€%hcœ¯šsž•+ÛL§àç`Xóé_âM·¯rt;œk1ˆHó ,\-4ÓÌ.uD1'©ÿX$ª€¯÷ÀÕgþùw*R<ñ”ïèÍòˆ:Ħðç÷̪öž°êïÉârp…}ð®ðç#A'N³·JŠõŽ;þ÷>±êσѶîD"º¦ô¿úžJ[ªTdw-°T+¨ÑÁ¯|à?þ¿zi›Ì3­-Œ¯/[Ê ¥RG(g5‘JkÍüÚ&jÙPû7¢«+F8ýU;ìL=j5Ré•”BZlJï þc&üÇ­ˆ úûóÊ5¥ l¼/˜ˆÕ å<\w>TeÄ|ò[ØæºØÿ™ÔŒááöaIGê§â)opNÆê³±~׉|S AÌÄÎMILW…J‰Vp#ÙõNŽ=v•_Ž£t#‚¹ ¿“ÅÉLüZvº™tÔWb‰ó 9Þ ‡w˸‡Øº¼>VÁS|¤za'»= Sø€½¯§ïUÛÀiíNi%–~;yü ÓÛ/|ÿ¸ƒÒ(UT”@rhŸ3½êuúz ãÊÞÜ[Ý!§ƒ5}Â;=ÇŠßÕgé3Ém^éOÅ-Ìêa|ÃkWEÀð‹˜oA®ÈÚðé–ò4Œ·Š«´Ñ_î‚9 ë?^+qÐ_5Åm# ˆƒþ*l~~joɧT<¥›àWªÓ·0 ]«P/÷ ¼-#ùI10àäÌp ¾[›Íâ?ʱžêÈZâߢ¢¿Za”§"~ùGRô»¦Ý“jQt˜_-/L¶üéê&T‘aøw‘xÅòâ%Q›%"¯X³0\{¢éõTh$7‹Ò9ö‰œj46¿²¶Ëîh¦Þ¢FÎeä“Qõàþ혢½OÙýUN¹•“6SºÃ[ùG7ª²GR­qÂÏ ú—ø£Z沱ż¥Jøä<à´½Å*Çíî¤b|ø{ì‚mÀ~3ÉmD×g©S²fU÷‹ŠxþG~¥)=èÿˆî…/)F|ÒKqU/‚/Ú€Å=ÂÞ?Âï*¥ÓfGð¶mšVwV8…UVô¡Üó*øo¬„',ítR¾D/u«r|™¾þ#lïØ_Ï1Òþ< ^1 :÷QTóYxâ üÓZ²úÒúHP—/ m÷ñ¡—ð#ñ ·Ñ_ w~íeæë’–»´¦‚å¹ÃÏJúÃvÐí⡦7·<ų¼õÍ<Çød ÂÕï³Ðvˆ© kËÑä [Ç\¢€ÉØš)`ÿãÈ!œÀ¯îœ„I¶2¹@ÞÔ 9j¬ðÑ+Éò•Ýã{wÉ àW±ÃøžêKÑŠ7ùŒæ0(ßSÝ4V‚_yʪ0Èûèõz|§Ö¸¿áN1T¦‡n¾bRž,LþÑVX¦ÎÁ0XyšzçÆpºÓr¬Q˜ZöÂÔþ þã°œbT@»<¯3¹ÔC*j².ò½hñk›Ø¥µ²J¯‰y¢§—»‰(Æ£{gô‚OÆx"uØw`ÞÑ·d(øS{üÈu]“ɤ²¢_Ë ;ÔN,s¬wHÙ‡~·8ÙŒ¿î'Ë 5·º »QYÓ܉þê¬ùÚ\DuI<{rØ‹ðäb“É3°M[ÑmOÑ+Ó_µš#v;¥Ö*ƒ 4gØeJ}¿ÞÃ8Oo‘Áf}*á xævú£ÌAo¼Ng•ÌøtÛZjT%¦K G“'[\~=‡ÿ¸HÿÝåØºø«û ¦ÝÞ#Ó82%W;³Ý Eoz³¦èwïÑÿª0ò©d+Ý)œÊ¼Çüÿ“úóëÌÿžW-è|™2ÌÎu¼†>¹o»®LUóÑÿª(ªžJ¬²–ùµ5ÔøøMÌ «püïËݳõ¥~°6L´3µÜó¨KÌ WnjM…M«„~·ŸZ⯮³¬XÀi~ΊóÀëQÑD)¨¥¦–0üyi1Sldþq”9½EÄ5ðô#섉ÄÏN2'–ÉU,ÆÞÀ}XóϧÑ©O¤æöÕ¦39µ=ZÐ9° Ó@¤ïãÕ2â?²ÉU:úrìâ7‘‡5FbþGr¥#üyýÛÀwÌ)*LçÖø¹³ø£‹XQ]úƒËÏâZóè"ì_òSˆgè¨cå:fð½Á(öÂXýKfáŽqÒ^][6“ÅÔ?N K¬¡þ<xSø¢a°?±œ`›ìMæ>›(÷5yØ5|@ >Õ× ,ôyÑGÓÃy×}”ÉZw¾Û qC2žSyÞˆFŒ7 ÿqBûÆéoná…ïÜÇ»“ñзÛ÷ûÞ;d«€Ša ×2…þ±Îœóí|ÿ*]æ[–éµÞkgqiÀÙn‚œûšÞþ<ìì˜Õj´5QÚœÀŽ÷ ÿð ƒ+FÕ„Ù?þ˜ÚƒLû«BµFG²›Rd*ã°Ðmè_â&‚{šþçZ¿(ÑÀ¯éèõòœ«ðÁsÝ#Èñú1ä 7M ]a$ƒïÎKÊu*ПáóÝ|¢;]È»î¤>µôpOµ¹£zäÑaÆ\£ÚN0w'ðöxö(w{ÀÓÌ…MIÃJïáÿ}Ð8TÑã…™?8DX §ë<•<ä ©ø½ýPÚö1¦£7Ë—’ÊŒÂüŠÓxŸ…Ìë`Ê.Þ¨5J·‹`N rRÕ[9./®R‹ü#?ª°øãä»C`nr—1ЯnÃ4¦®¢õÍaFLØjôo÷ÁÓo¿ZÊo?§w“ëù(»Õhêî±s/Hø/ð«>t8î5ƒº’M MSéZÏž²Ÿ?ß•ýÍKä—-Q+d—Ã韸1„ÿØCþQˆ3Ô’=÷åþY}õõà)Úõ¾Š/_ë1þÇ>+¾Fl¸›† È™J¤Tý®ÿqNñÔ¦‰  “žÄ~õõMFû%jÖOátMœd±/¶KûwtgÍéÏåed2/ËN¦^(á6_ˆƒXÂb‰ãŽÿ½O|mÎ!ú'Jøó°ÊÁÈ^ËOÛ)eú«ÊZXY ]ÚnëÈüóÔL@ßDýÇñÈ.ô}×mõñDH5èÝ1HøÒ7…Ú_Q˜õd)„¯¨Ô2¡ÎCD‹§Û9Í/DIêB¨3¢éMÁ¯JE”1È?¦Q?9†ÿ uöùÄYìÞVÞõ<0äÔÄ4ñõVb#ñÜ9,XvV)Þhý"Õ·‘Ö[[‹ÿ¸¢3“«{Cìí‚ólä(~d9Ø[Q½…rÄ@º_'¥/ùñ!?‘umRbò×DùKá? Ë7x·ø8W¼ÞB,i×ñ«›êJ|CCrCDÐ*þ²§°4êËÙrÈrîø"ø• Tc pŠØõGÿýU‹dE‰¹ÛÔEŽ$ÿ`";Š©Fú.¬ŠÂÉzC4u“ïj?… }µð*ÚÇ(£´Ø)G¢‚8ÌSkÊÉlÈ“‹Ž"ëŠvIKcøa£:Ê# Ëx7•xyð1 Âñ¾¶âô@F¾3–XÛšÿ±”Lrˈƒ§¢ÚUñ—°‹·°ÍÅ©¡9†VΓMÖ²«a»ƒ.RG º/‚Cn¥N£›ü†& Çèb¸à?rÒ¯ ZØ:¨°N“ËE%—»(Gà_<è¿Ûé·þ%w•ÔÄM`æñ}Ÿà_¢ã™\ŒLh¸¾­AÞ}™”Œ§ñµí°¾9©È¾€‚÷˜ÌR¥ªÛB—6ðç•@`ó.·‚½Ò©( ^-3“1Ñ}<µý²ù e7ùBwpµªð?Ó¤4>`Q­þ% Âøf"zøÔœr<ÙÔMêÌw“é_ÒÛHÀüÚÌäì¾x»…\íE^ «¹ºƒäed4½¡cKÇV*+ñ®\UVyˆ wlŒþª µ-™J5ÅîâúÛ(“fÀ«7‚»žŸ2–;Îj,æÎOÑ¿}žc½ÃJ€jõ§¼Æ>Ý/K£A`Ò «]Äoa®ÈZó;þc1>3ùÇ]s7uü³Í£ õxÚÔC‚_­mgo%ú«| ›-ˆ~Â- 8ž‡ÔôC –Ê|Ãd§§ô`lDýGLôa®dKYáG刵ì²;1L%ùL÷tìÂËJ'æ–ãŒuc¨¨7bÛO£ß=‡N·&ý›šýÐ_)öüŽêÆ;0¶Œ¦3YWJéÔ?ñ§8E.ÜPx;îøßûäýƒc(ød¡öYä¯$*¼Àb5!ÝÕÓÁ”f[ÕUͪVQw)Ñ”[‘_ÊúNªÃfŠLÄ\ Á2ÁäTÇ*1E3‘‚ UW©+ ­Œhñ¨kcIË`I\ô%Bè•òø¦Ä Ð_õ!ÿ¸Ñ"A@ÿÝâàW»ˆh±š?Lu1ýFb =7NcÁŠ£_˜uõ.+vÓ&S?8ÿ±[:Ÿy‰jïØD¬yÉ=R’‹WAe‘ ¶Îˆ„ÿÈÿaéwÓRGR˜ü#=Þä‡è„¥xEô{”çWnÍÝ]Âß ÒæEð¶_ª[á#ÜÈ~öü£ˆ£7¡CÝ….i*¸Ç:VÜCþ¡‚Ðø‘MÌ›BÄ#¡o_‡ÿHOÄ6‹ß:üG'|¦8t$¹†ëiò çöñÔb,nO°1?ô»áõ/™ÏÔ„:XñäÜe}>îå\–ÂË~ÃÌГ¢_Hw<ìh3ùÇ^øžÚäÅÈÇÂógmé™w9þc&¼®3 °w:“ÎÅXw/Ð;ºÔWxƒ°ëÉŽa–à¥ãËñÄ6×Cߪm±:T #bI.ïÇŠ–¦ø4¸·B\>c]ûü¨?HuD)º˜ô%ß©‰ŸéÞäIEs+¶:6©›ˆ·!ÊM0òOÉùÒQ£Wt[>!ïa®"ÿHh¼/J†µ4,ÀT´ï±«%Ñ $ {CÈK¦>5u/vE^2ºDqŒyÆc2Ñf)¥&ÿø†ZöŽœÀ\ä™á…âÀܯCU‡ÌŽ¡Ök#ròTN““— ÿHŽŸÝBÿñyÆ ò¡ÄöuTø%bª…|ü*zrÜáY.‘n¼w_ê!¥äsÑÝqyßmC™^€lô wy/>Œ)ˆ_ð‰Ì¨ºÆë_6JQÿÑÊEÚ^ôò#÷Ãïl,$ÿ¸¨»…@s¶+—Õx²,'êŒ~Jæãd\…j2äJ¾ÿñî‹ù[‰˜Ku™Lîìb^ ·­Á.Ï/‡’+ìõþc§rD«À™p#vÊ&³ê øä€èÓrÀJÿ]?r£1ôo¿ÿáffàÚW]ÐΫÔdá=Ñ?ñ¢Òf~v{'¼G!}úÝæ žß=c#qAwú·O±5uÇ¿]s».]áÏ[cÆÀJ^ †+B1àx”ÿß?¹is Ñï.†2XÉj_Dþ åókµžôoŸMjñ=Ô6tooDý‡ý/õ»lsµ9¢*3ºS‰œd]uóÏkŸ·Ð¾ª-Õ†uIÄzâ…¢ZPô;HD¿ÊªeÄ6çÎAú«ã‘ìŸxÿQTXõk°s±Ÿ‰etNUPïLfGµ&êô¤ç|,º½ÄãkIÿ«u Ôj.ñûDüÈm,gl²íXrüÇsô_ñ{ô8zÇþÓÂ972ê ø×äಠ“íL­ã=©<Ïÿ5²šVøªù<ÙNZÿžâ'u6µ&Ö}ˆÕÿ¥ö¿º”ñà×µa™U,þUìТñàÎKþÌ )ÕX÷¥Ô#Ä#óø,^ˆ vOôåX|w}ƒlEmÚ~Ÿ5e$W݉üîšðÔ¢„s• éúP)¹œLÞ± {^™kk[“XÔ“ã¿£‘tUä^2.ò:Ô¢¦£ ¾Ýù?Åð«É‚ ½`%É0$9ŒwZ¨»;¶î$j­þíωú­IßdF~¨ž‘t¡~ðvðRAŸÍV'‰Þ쮄pøûxNŸ¸Ÿã¼‘G²‘Q€ü#LfºƒÔÏò“íd2Øçx»ODå …§{ ¿)‰Éœš€–͇Ó}Ì3Ï€–8 Z® AóÏ›™ëÁñ5úƒt¡?ãB¬^.ª±O¢£µG–~7týÇ8õ.øÕ:ž}9¹b+Nm߯ß'Ðï¦püé×W#÷ñ‡m/ýu­™[[¯XÙÁQòrj<È å; —¿ùç»m:ýKa’¡°½¦*Z.º ˜hmsà?4­žjy¨Èÿ“N¯|…fqoh‚ø$Z*ɵ¬_V¤îb Ø§FNa|F¹©T§9{ÖDªåXº4äÄ1˜ƒ»[xƒ]U浨X[E°§Ö‹Êgw¼ÆxâÝõ GÉ54,Nn"ç8øòì’ê¨3¢ë #ô‰• `¨'DJ²jË ¼!oiµ»¥×‚õ=HÄ|¤u7¿©€^CëÁS¼¢NĦ6##ÚEý‡Î‰Z« ¢3vg.Êd ?ñ üÍú':ÿaÍ˜Š‹†z!Ý V²Sý„RMÿ@åÇ ±¸I$õŒü#«1”õv¡PlnÿöYJK­!~r—2\ƒ?ø”Õ!JóÐßi·ðûÀЛÊ-œ®ÕàuÈes¥DÇÚ\ð⓹1ص‚ô/YÀ›œ ?‹5,t] ?¤ßÆ œDÅûáTvâétæ¤øÍ¬TVÆÊo¢b£o³WX›špÏ ü*·`¤5ÈæT¡oßJ@ÆpLÐftbþ`ËßêÏ(v¼QW²/ð&iìÅožA­•=Ô#­Íèf~þü,ö>™áÏj¹ˆ²€ôûÂÎeÄî_2ýns²²;äD«du0)g”µ{ŒŠ(Š÷›Ëͬ (Ï™’ —¢3ÞÍIŽ'ÕÁ¯öQkØ þ£f¨·Ü]”¿:ŸR„:ý”ø.oª‡ÃŒ6¢Û—a]R“¸Ø¸+½¨} Àc®#ÿØJ¯ËxAæ)…àÏS2Ån8˜'^-5\Æ2ú·{s÷BÃÕ‚®Z±£çð¯°ÑÃd°ÍÀ¯vÀȧñ\´sGñÁÓ0Î+ÇÔÌœ†'xð}2&9ýt 5¹¿6æÄy<¹~p†ý3š± ð" ¨1ÙÉ®®Bn–MN#W%‚±ãÍŠüGu¢•cì¾TÜ¢¾¼"|yê$}PSÂTezæ[Á~Sí·×œiÔ$²IDϪBô…¨wuì‡J?jŠqê=Ùñô5Æû[³ýKÞ¡¿ÚJþ2ýî-ò¥ÊÌÏ„‘D¦õ÷©ØçŸ‰Z°å÷zÁÿIÿÝ3¶¢Ôfüú'ºÒéÏÑã¯oúÃÇxŠŸâ¥:iÀ¯¶*–~d3ó«ªyÔ‚ên|ÔßùK¶Mø؃’úB…žZU¨ÿPD7QLk§ÝR[¨•Cíß?\”ãˉÄu"øO¢3 ):8‰Äz %øUj K3oz…ðSï:¾û¿}r‰þ‰Á¯Ðª/Б ¤Öê0ÔR,b§?Ôǰ³,UWrÑ=RóÏGjCØ=]‰ãg‘-ß¹MämùÌr#õkš¬ nTl+e$øó|ÊüÂEøó àÀSÈ> Sgá‰>üøÕUò£dDtÙqñ3}#¬|¡nÀâ·§þü6Œ÷²åfô/)ƒMœAœ^A.ƒ8ˆ†}}=]‡þ*¼lÁz¢ŠRB-L¼¾€;ÉVÙN^5»þ^ß,wâ?Öȶò §ö)å:þy^î1êcOM ç]ORFkÀÛír&LÉU:¬Ñ4Ñ£èæK(ØQOÙ4ü–r)ï=.ž¦6³+~¿Gà?VˆQø®1 ^±Aˆ7ÆÂÏÂê/¢Éêƒúê\M~þþ:Þ €§™øt.õwÂ,9SÆj¥øûäý°ÃÑ”¢r­º«µF>¢È$0ŒZx‘AÔ4"«Xþ2šþíÍ~›ÿSÍ@md ¬êxóÒ—è"^#¨A<§=ÃQ7M¯_z[¬…Ï q—z“c2+õþ÷•U¡žáLUc½3°a ñUä=¾1lhŠâ]诒2ð-5oäx£YH-t¬ËÀ¯bt…'nŠ&:…Z¯«¨GrSQGE3°Æ4Æ¢ÿ]šœ®‚É©÷öçÚÕÌ`Ÿëশããîcó©<Áókã+“”ÝÜé yMÏ*O’çwƘh¤’›í°ð«Ìºæ3âú³0 3ῚÐï®ÅûúP=?üã,øqpÿ’@%P #ô^¦f?_ ¯K®§ZØüta|÷½Ž|+#õç‡y’•PDz÷š°b.òÛŽb¨éˆÝ¶*µb0³ìì2;¹­;ói³Á¡td~íF4S<Á>è€SRõÑIR™ƒT*ÖæìŇó. 7 ËÎ?.¢ßÝnÍ»)B•×tôG±»¡T¾A-âúFްÆ£d·w¿ûÌ5Æ0sÐs lÇ š ªrŠÓYR,³ÿ?ÞǘŽEéóõW1•£Ê"xŠNôß]­`Íõ¶ºj+ú·—WÀ±D®»í¯{¾~5M´!R.IMÁO5«V/¤ÓçÁªîjèøç×Ïýécq‰øþ«è†¥i"–D/Âü¨\TûMÕÑ»l!ÿˆ\‡àGÊ5¥„¸M²&Ô­Å‚¥"ÿÈDÿ/} ñœÕ¿„j ꟻˆðê¦Ã^agm,“²Ü‰¹‡‡¬„‰¾ÿˆ%‘»¯A3u‹÷F´ÿȉùQ”îøŒÓø ¾ËÀÿr£tIJ[ÕV}°…_ÕÃr0 Oï!S[®ÿÀ’ZÕÓc©?Ÿ ·3;ˆŽfºQúQrš[\oLð°›B䳡ï5’Q-@¼>…«rfµÔäU]x+?uØx"oæ¼êè>òï]¼ÌlNæ[´}Ã_;JªÕâ;ãÊEüìu2kög-V‹NÞUŽùÁ1A†º’5ì€yØ€ÿmXë/Žÿ¸m+§ùâßÃôŸŠOîçε¥£w{ |Ht#+^à È]"Òì¼£sì$ºŒA¿›é·ùQkÑïv¶|ЍW0(ïA·“ÍØàÏ‹¤‚¡ øU£2lE/žž èØR™ÿqþ<‡ãLþç¾U¾‰âxÈB|Ïmâç}ä·á?²QqþÎ`ŽÕtLa<ÙIÕwEüÇ-®Õš·ËÜTý•âjÅ)èw=ÈÊžÀå^†ÿÐa+nGMÉ6gûSúU5Eìa´3|ˆRÃvÛáWö£¦oL˜þ»î"?>f>2þƒ r1–~•(ð[™ëšÞŒi?ÿ1þWgÉ,ýÕ|àsº°–·Côo¡ Rö ?oâ63úÝ)àW•¨3I'ÂÆj3ºÑý¾üÇps5ÚmPÈnįÎ#×ËnÌâÝ=Ò{ˆÞŽÍwN9§¦…zÈN=*ós¬>'µ¨¯æD^ó‘\a×—‡Ù°·è¿Íèg>e/4´Ôkr éòó£¶‚_1ÅÿqŒ÷›‰Ø¤ºq‚*ñð2þc%•)çÀÖ¦R︵Y úÁï¥SW{jvÉntCÎOLSß± ï0p™h¨OÁ*A„³žþí÷Ì^ v÷é²òŒ¼f¶}ý zê°êßàTn’cf3“чìšÙ÷9½Ôÿ$ÿ¸dË¢â[%M¨}æx ~òÙöF¥æª?÷Rò²Š¯­üy6ô»;”w¶‹®ò¾ÛRSSŸœ.3‰~ªÙ‰ñ¶(_5wQNódþ`CÕªPŒü?ùÅ.Ö2ññG‰战z+¥ŠfÍê-\Á›§Šõjä®ð¨òBÉ+Îo‚AÛ̉qâ„:Ó¿d xÇ5rû:ä%ýDlê?Âvµïz[¡ßÝ&Úâ?ÆpR¬hü WiGQ™¤'£|Ž]Ô±{ƒõØzsG ÞJÖת)`z ú+œ~–º,{¬Z±èyÏsµ–"x ÑúÛÀü¨!øµlÒŸ» ÷Óä´.ú×VôÎØj䦹 ùG]£YRo~_E¼“ùÇHy˜“3Ì{‰«JÞdø˜Ý\…fœ†‹=G?Ãt¬ñ ,ѸUÿq‹zTÆB¼Z^Ы—Aú«‚èwï+»B­8\ý&ºÿÛ-v”N±èVµõWiæW¤—Ç7ÖëʼÙ)F úP–å>—2«C×¼Æ/~ÐBŸ¿®">ª´³dE°ûÉáí×Rÿ6 5Tê7P]—Šy§ðvk©¿!GÃuw&9Cv–ÞÈ)ï‰ÎŽ'(”öÊF²ú–ü¦“Žõ|õ®T–ë5fþÇYc ë]檆€Ùy‘çT…ÿ8lΆÿˆŽÎÎ ô¶{²šcžW–£˜~_X|G þãO°b ®z.±N×Hô/Y¬¿á¤ôà'‡Pï7EÜ2¬âJÐk&Ý|‡«EA¿F´†þ% BYªàG[Iª¦ÆÓ̇ÏÍ»ÍÊ-ðHVýàB4¦KA@¾ò~€_=ÄKMƒ9Í é¦½^ÄñÙ@¥¿V‘ø9¾\BŒq…Ÿ«§mOt©Ë.z,q]ûúÐlÆß¹ý®'õ£¥`Ø+8N®c1Ûe柯Óáz¦cÍ“¬ãûgà?¦p§³QQÅ‚‹ŒÿØIe^aü“¹óxXê ší·úómj70ÉâdþØðîpÎCøî’ðá·}¨ž¾ÿq»X–¦%˜‹+‘ø4ø_«ÿn Q8Ì3TÕ¨ø¿Fä£+˜‡û’29C.øóóò>•#Q£~4cßd[ÉúÁ¬ÄÛŸøÎŸØÔRؤ÷L ¾[›­ª ìFµÑˆ Œš`;Ñè–kõo/ŽæçS'ž3ÿ£•Šƒ˜k»œ,?s3N€¬6g>pèþ¥D\¢‰@ÞW%ü/34éß~F~)•ñì~ô¿ÊFOø§ôcô‚¹ðã¯âݬÆ>Àg–’?D½àË£ûzžœ+1‰3Je½;ü¹N.ÍÒtyœïq ýÕu:NÍe†å?Vá{ÇÃdà7&”—Ñ‘t¬·^Ù¯F#š²fÖ{cï³òLâ`ïÁ',aý|”W#á|¢ÙóÓ¯j|zôR~Ä5­`øËÉ™ðcBàW«•½Z=b–fœ‰çT1¥!&x†6O“VÙ\Cu;½ØúŒT£[Õ.êûiÆ#ÿ(Ê3º rìÂsðçóDivóÊ8±— ÄÏ5õú8ž¦Ž}°½3õœÉí£˜ÿÍ~Ÿ‹offŸœ’÷âW£ÿIÿöG¶ÜJðtÐo(çþéüZ ¯<‘úsw-õƒUØ­ÛlU©?ÏŒ~w·òÙvÞñ>#óÉWÛ¤ úó–0 ›ÅUæR%P§(·µò"+ ¯ª‡êê¥?Vë õçѱlVý`^¼U»v <ì¼dïz`9&ÀãyhS#xŠv̨͋Ñó!2 o=“4â{'PQq]ìU,ëæGÕ`þà:"Lä^Óã©Å¼B‡¢‰Žõü”#jLüÀ%²ï™Wÿ¬ß°ÞUç ¨íKÆœÀx¢µøËÔ¬G m¢H nÚ¬{¼øD1ÇÙ;¤œ¿ªÂŽ= zš…,Ä“ªõ ä ¨¢O¬¾›ìÀªZØ ¿ wžµÏÜMÁS”ÚFî¯-¾ãÐwу'¶;¸œ˜¼)Ve%ìȲçœÊ›0ë³ÅŽ?æñ•¼jNb°ù09ÿé_buvô"¿Y'ÒT×ýœ|æ9¾ô1õCø»ýú«àŸÁ÷=UéªÕçi%–³¸Ÿ»X.«û®Þè '1š¸­½Ç/¹¡}Ú‹ÿØVç˜Þü¨«ôß]'æá}FÊ(¬¬9ˆ-¸k¦¡G]Þì«îbö5jùÁ·žð<¬i­Ñ¬ºìpæx©ÃÅî)èЮâ&9åx#'ºäòæƒÎi¦þ£¶q „,¨kTÀ%7º€_5ÿ?«ÆgߺOø`qé¢Â}ûËÌø¢{äÑ]£Rù 9Ì0ú'N#C*B¶tVã ,ÁÓN@Óàgg³ SW,ß ½1 {î.±1nÁa'µØìª~™êÄnøµ¬–þ<†ñ‘ˆü9–3j˜ü£ þƒY½0¹`sœð™ÞÄÏÉðéísé •–~…'ñG‹Q>Â'¯Ásí„ùÂ3)$EÇå%RzÑ¿$Wu4ìqDw*%?â7bÒIj–1Æü*àkT½L%h ϰš7´˜g]ȘzŸ^EÌw¬·_9Cýyq¢§ú%b½OxÁD3Ë×R¿>•ÊËYtPLÿ€úl…ƒ¬á6qL 8•Rd ÕÑ×Tqœ½ƒÔTeÏ5åùå9ˆÍªÒŸ½>>¼” ðPô\×ÍÚô3‘ð+Y¨Nù"÷š› j¡É;£ª¨L|D'ÿûç*HìRÑŒ¸'ìGqÝ›lŽjœ“0['ñ’½ìñ)ìÓÍŽFBªø·wv4­9,ŸÁ¯>‰]ìþ|!*^~­üÿÿãm[Þü‡ ÿUXåyd¯ÁP.(SÀ™šk àÏK²[ýl­è“[T-Fÿö/ óÏÛB¢òÚàK‰ô1âŽúEµ©Ëéß^T¤ÓÚj—èõwú«râ§ï-þ×8®¸ F( 5;ñhQ’N¹³ÄžHöß=®|Vª‹“ì/,̬çOªFã2±f±4wðyõAÈÒRUr'·ÜT›¡í"/ºƒÿXH­Ôbn´ºTi%ÅÒ&äc]"Œì.M¯èØÃZ¸üGVý`âvn*9KaöWìç-;g¸û¯ø¸ú\ýj¾¯62”Uù}Õ„ÚZì{O~ûþÿSL„u_¶žh¯9=!¼`¸ýð'ã.Odš8Vùû:ÖW¢+…ÔüàW#°gÎä?|Jkî™É'r9ÛbÄ<Á\ã=°ÀT”œâ Ó‚‚Á+&ÿ¨ÄŒæ‰_¶¢{Þfw¨§(íœèõÿñÿˆ{ ð(²í{»«êÔ©jÜÝÝÝÝÝ‚Ü5¸îî®!d ¸÷à'¸C ¸|oåÿ£“Éî÷ܹÃ3¤Ò§KNmYkí½Û±æìư¨rð_EA˜S8žÜÕîã?¶‰éœMp•ÌÔ°¯'\B½ÞbêÑ=åAT«Ý±È×é•‘üä^þ*Þ-u…Ëèíù d©àWÔ䔕ðÖ»à)ú âÚ× îíDÿömhX/Ã}$ÿp¥F»«.ÿ6ZˆÎpÉ-~Ñï¦P“ ÔÓÜÆï½$HJÞ†Þƒ_áÏ;Q¿pŒ äÿ2‚üc¡¬„¶!½ñ7xJÔÝ+hXBâdÕ†ØÆ½íÈ$@WüGTcõ~õ鵃 ºløèvwã¶ì ÿaõo/A¶ÜÄÿÜQO j9­ç.2‘—ãîU@›+ðcëQ÷A¿;ÜÈe÷Á{äd’÷ã5üGuó>y#Ñ‚Ü-4ÅåmÑÎqxÑ• ÊL==œ}ùÇSöî`ª¿Ñä#³ã—K¨¼Nÿ]jôV)©ªKež¿šL—€$ðç)àЪ…Bs(×Ô¨°V7ñø‡eA"˜3LÞjOþQ~;%ýA^ãCÖÐO+wåÕé_r,¡#w¿½uš¡¿jãxövÑ¿¤ Q;9y,™˜è¤‹ñŸ6†LC¢¹O/äÇF˜¸XÀlmÊãxªfp1å@eWòŽ]xEŽþª1¹øHb„ T“Øí—©ý?OâFWàÉÔXþ#“}õ/Y˜¾œ¾5¥Í)µxÏÔ/j uƒ¢Ñ¿¤°6D» ÿay¨Èÿ—ëÞ ¾¶;O}!V¼ &(.Z2žÈú¢<ýꦋm‘ì_?¬çÀ>7aaVq ™'´¹X‰½¹ˆ6¶ ?ŸAUb™Ž(]Ñ_­ìKq´ŠÈûV0*¹ôÆJXó£>Š2ÄÔ1õ2Ž=Ñ™×VzÀ.œiˆß2ƒ_áh‚ðN¾¬Ÿ-—µãÁÃÄ>×]µq¿¹Šñ´u`:íÀrŽè£È?Fá{æ¢*^.GbõJʵDì¾ø¦(ø¹ãø‚âx„ó£)Õlø«~0ç›~½à9¾è3är¼äbpÚá rˆ³ø"+ÿ8CÿÄ^Ú×pNw¨q!¼ZÞ[ÿ±‹'¯ ^è5¾·#õçÉ„fìƒY(…’*$l%Ÿ…讵!¿.÷ÕVV['f‘EM€ïÈΰ–è`!Jk~í0Î×v ŽûÌBZ”WÀëΡÿ!€­Þ³äu˜hC„š›öPZd{±7êÉ/trÊhl0rREœÆ8CþQ–߯ !:­¹è{áÚE‰_øtjl¼Q{Põx±‡ä)ð yðE_è¿Û %Ò~üÇ[êKFÀ©O…‹( ÷ÁlB˜›*d®1ÕÕNwzŽjrtð—Ñ_µ}LˆÿXˆÿ(i¬€ANƒ«ÙëÁw÷¡ñF…oœÂÐñ1¤;ø`§õº‹ôäþì„rä ð K9˰”öÔæ2Úoá?6Àýœ þ| >d'¾5¯TX^ ¥ß¦L†ÿ(M~@Ìs/çÎà+¼´Ž²v¡1¿qž™'÷Àí–÷1“™w¨%™ –Á˜Su“n!ùÇF劚€§á ˆã™‡5ïÁÙäüj›>FRsõç‹èšø9xz‡L^Jó1þ£%÷=¯Œ_…äþ{•ÃZK¼GOî QP,éi×{‡1O†–a¹`I¼A ZàU¾Éöæc{5¹|EŽ`ÒÏ-ã§L`©+;ÝÈY®Øå`¥òaPºä1샘á˜Ý>ÏìOýàyúb=“Í̼’iÐøœ¯â&8náÿIÿ«~0„ïŒEþ‘Þi_ü<ÇßÕ¨?ŸAÿ«Öô7Ü\ÿ±ËÖXm©æ¦‡ûNåƒíúï—õÏl³µ9Ââ¨RéÅ«àùQ£™Þ’úó6ÚYtÁÖ¿½¨ØIÔôÌ÷.ìßh]wSŠk‰ÈBKвxøÈé¯n)ç”òâ‘–qï6ödRbšlà`[Aj¯ñTV)™‹þªe¤æGuÔi;@˜>!ϵùH4ßüê%üÇJ¼À#—@QEïFXH S¨Kåô2“2q}rrbЙt É j×q üê&ˆ­ •L¼Þ\2‰Ö¿­?ÿ¦zòŒ´äYÙÿøŠ¦¨>–8'¶dV±(,Á°±«hžc§êKÄœ´J57|ż`ÿ16â>óBú3.’^¨æÈªÄýÖL#Áßëx2–ó\œƒÃ_;ÔØ…³ÊÄzuðnW9²ò\«OøÞ1tÅüÿñ7œEC¹›\Ánª&'¥ñ1éOnÈ¥»lË„f¹äd¼EzÌ.%š†þg zÔµX¦èôǰºÅnÁåæl“û¬à>Å–›µ´j`ÈRÁ¯¶ª£©¬ÇÑ]ÇFºÉÜS_²™L<Ïm¬'z¼ ŽåG_òeg8ß ÔuLÀB‘GÑ_…íª©Éˆså=A¯lÆâóã27õƒOäK:‚t¥kS û+8óÁÔX,Aaœ>Å#>)­úó¯Šsÿ«áêkQLïÚØ](¡¸æÆX¸iw4];˜…‘„þ%¦½|Eoô»^äYˆð¿rþûåwÐT-Lÿ’Þ"+HÏeöY.ØžŒ`qÞTŠ÷1P!™Ãî…ÿHkêv?ã;~¥ÓfP¯Ñ÷ÿòhFAªÂ»8®à{[Ge }¹ê£÷H~µAŸ([hYífM4]«‰èïpÎ~ð áÏÝaç_€«MàLÒÓa¤>P2o²KÍ=}À=Û!3‚ ¿¥Çõ*MþñÃXIçÄeLGLJýÇ ¦Ÿœ¢>¾½y‹}éN–TLN¤þ|¾(íˆÝv)Ç´ªX‘öø·<oô©ÆðªUTš'&§éö_4a7©védõ‹¤Ò} ˆ‚&­Š„Ø’@Ž]xC™IíQ}"*ìHn}«üª=ý¯ŽóîGh#êØÇÛç2p9žþ‰ÇèË{[º›™¨ËRÉã?ŠÇÄœ%B)Ηò¿þâüGHþEéaõðï%жþ<…VO+@ý¹µÿרZªMÕBä >àWç~·€Ó¿¿µM£~°˜ƒ®¯ þ<Áxøóš"•Ö]»­öýÃü#±Ø€Þä ú«-<…Þ[)£QÑ­g&R-FÿÝ-ê#§#ˆè›Ó̯͂šk \B52_bÐôèQkˆ…àNG±«2…ùLIh‘P?o¯-×¶ˆ¶ä«°¥ Ø‘ç±×’Ø+þ#ÏOyPΊéÇP3B-àô²â†Ç½%RPgaõß-NÄý”:š ì°<¬u|çûÔ®%¿ÞXö›hAÕÑwÁ{DG‡3¬DždÕ’ÍÁNá“#œÄÇ\ßo‡ªdj„ý¯Ò*%ÔœÙjÞm(–¬neçQµ¾‘Mä^ø°*–¸j ´ÇA‡¼Yã5>1•<*óÓ«ýþà ÿ±ž.€ôUDï~ëyÉ â;ÞÂ3Ä&} :+älm¶Éê7öÜf°¾dÍ8»d3tßCüœÃ¾½m1ú_µ§ãü"ît&liPðzß8—¨¢“ÓzD2½ËÄ%Ùñ¿©ð·ëP÷5Æs†™ì ÍܦKíÃü¨åFó$¹ë$²žøÖÇôßm,ˆ¾ŽÃ‹FšH]mê?Òí,¥ÿUsã(Ý£±yxŒ°(þ`FËвV¡ëT ÷z,ëå¥÷pžV¡øósÊ-UÂßÜçè¶ÈLä”>Ž¢õç6¬}TûJó2ó?RÓUæ2?ÌcÄèU@ŽÔ+1˧¤ÃìQö€œ6ÁÞ&}-Ø¿ðç½Ð—cbTZ²£}x£¬t—¿†¹,½Ü?Hos†QMÙötyX,ßPþãøÕ&ÑH·:öä$úÛÿq’N‘çPðÖ[ëhÖµµ/7ëÙWÓïëþã‘ÿigóhè Ag9®à¿÷âõ!Ýé¾ÛúF8=îwÇô–þ»È?ÒÿjU°ÿXokÎTˆYå¨Qü³þíïlô†Ù°ÅßÅdúï~WS¨½˜?XM$Òºj¯¨?ÿ3þ<ÕhsDbÚ¬úpñB´Sêh1Ø DT&H­á3žüîƒÿý”r^É v`E—±fÁDÇÙઉeØäKD¹iø¤É̯m/žGbÅnðÛEKò¢‰Ø¸å¨Y/ù& ZJ"W£Ø¸AÄüTçH•HðçYwü‚UþŽ÷ƒ4a5_“,F™,ÌÂ{|`š7R¿—[ï¤ q²¿n :kÞâ‹bÊÎÿ X« JÓ<ÿUä:ü”/YÍ3öðj0¶nb®’,‚5ã“dá÷g 1I… Vpf´Œ½ï*܊ʽØíëðç@‡fr†À(mÂ_;JéGýÇ Îg9çs¯[ ¿Ø–wÇ–ÃôïÚüÇ~”M¥9ß³d3«`>$5‹eÂõ÷lYµb,ÞmˆÐ#°ü.L`}o¾aŠ¢ËŒ-=þÅžx½¬N›ïʧ»ÒO¥ã-ì]0µMäGt4:ƒ8eÛLý Ý¾{Zìf¨Ñ‹úÌtXY¥ÿ ~¦ÂÛÚD{§õ†Š<ä»o`„²pýÒÂÉ/išlô¡Ëmß‚BÊ„_ØeØð*ÍÍÃ\Ñ5(«×ñ{×er£ó?\C6ŸÒYñ¦ú©1ùGnyœ=0„~#Q)1ÿv ™C}ª÷ûOúšTf~Ô|GoæmécÎ4б3­ü£ {ö€^ÅÅXþc1Z¡~hoÒÁ 6¦ØŸšŒÃÆöÉGp°òäžfEøs:ýúñÃíÍ(ôO +ÈAžs•³güï½xfKªßD<¥÷Üÿê‡í*ó£Òi5ñÞŠÅ®²5eþyVþ÷¡&ùÏð«·Ì?Ÿ#ê’ëÅ'¦=ªªZqu´M4Éá?.©½T«CJäÿˆÿh¥?ÇË/âþ è;h)@›ò2ÿ¼¼X&¼~Á°Ã_ý¤rùQ‡ˆÝ6aafÙÆ“™éÊ×…—Õ «±usz;µòa­Jx+¶¿Ú,Üá=–ã?æÂ'\d¥@-’Eî¡WÞè5ýÛ]`¯‹9b ðV²~VFiOtÿ‘þ|üyi².w¢i´@ÇñvBEú ¬,þcèo®âwuüGKž•ƒT0ZùBp»ÂX‘éèóKc»òç&qxùØ æf-SâG°fBôW%ÐæŽ%ÆJŒ†½nÔ<Õwq¤ÝôU¬ø–ëú˜O<‚—êâk›~TtÕ>†sºS”vZ ~/>ùG2ƒXëú D?àb†ÂŸÇ1¨¬pEß ¿“õÊqü99ë(Ž'7dÙ ð+àÏ¿t¡?Ilé ½”Œaµì‚åCÐ Vø.V>?ç}Ÿtž«]¾ÓûkÕ°êÔ åˆâaÓáÅÞbŽÁŸ1¶ 1t¬@)øzä{dK>¯2‘øú»7’ô ÿ¿J¯jLjÃ=\BÌþD&¸ “–æ3µÔá,>¢¿zJþ‘þ¼$wÿ¿áOÖ—ˆée˜úÁÑôooÉñ?Ô+âë`×RÃVøµá?¼èÓ¾Ñ Díô‚õ:Ñ!¸˜Ýbf¤¿¿ûL¾§‹–Nwy’¨~u›[”«¥r.Û°~Ci²/þc JÖØØë³†axÃÖœƒcZ×Ú‚‡¿Œþª.üy{ÇÍP•EÊ.”ÓÁn³‘lÔ;aïŸÑw×fcÕ¿ÐÝ>DuØŽôðçßÍTJBg•›N¾ÌÜö!öÍf ûs¸qŽÞõq˜HåjÆD è-ns¹ÅRÇÿ{/nÙ²…B¬¢+)iœöEä$!s1æ3§£±– ý••l±µ²æ”ã?ö+š9váçç=¶ÍÒfˆÌDªÑõÕâ&¸XEu¨ò]k(ÒÒ¯ö²:X-öGÇ?Ý-h âÚ*úxê³*¥µ ˜)E\Q€þþë~éÁýóXœ¿^Q®*„vn¶y†¾Q‚xºŽØ ¦åOœžxx¤0EãHõ¿ê¬-Ñöƒ0= æ?f¡>òÃrÒÁ”hüë=üÇCøó>Ô •sìaçc ù.½Ò›¼â øUB¢À¥äåÉàzƒ_èÈëOÂ?X3®<9ò¢zmüo®âwu¹„½è^3˜:𫏱–n¬í©·¦Ïž`Õ×XÓíø¿!bq(<4丬W?lÔ¼ÞCÃÔp%?Ä1€èò½¾SŽÇŸì€ÐäNê¶¾“L˜ŒŸ;~7Èy¡àïÆ3µ­6õo™älî¨U Þ{Ý]·ÃQ®a>w4‘˜¸¹3œü¥p…бe€EÈŽÿð³¥ßóx²¶AàWÙ±÷;Aãè¥ÀéFaE®ÓöÆú?ÆFÓ¸Ä9û/|ãî·×2¨·Ãájµ·ú# z­ë }·À-a¹‚P\ÅÇ–Ö„ÿp§,ŸWõé$ߨ!g2M s˜ûbŸG˜—˜ý*8ÚzlÑyj5²Sññ ‹ÕˆþÂþdk 1úð¦¬émjסî(£?QüœVì¯ìýù\¿F0u±­ñ±ö»øôÚäsÌÔösàaÑëΥ㠬3üÇ ê£°ê}˜ÁÕËi½‰¢*€ÄÙñ Qɺ–£?õ€‰éŒÿØ+ðûÀh„ë›7ÐJm5ó¢åCzV5†ÿpu\Á7¶¿O½>ûëÏÀyâªÑ\µOÆæT¢+ÊBò7Ôm¤_álæÒÕÜô"‹#ßXFæõ•8&¤‰—òII¶ˆÏ¿$cè‰P5×£/Õ+:S­"ÿX‡'šædÚS1evú«êèw-UH3:tå£-Žþª’ãÙÛ¯ÜÓª“´ç™ˆGåã!Ý V¢=kL6㘷¨]/CþÑüÃOãŽ+&œÒH£hB28‹\h .ênŽ]xLzº¨ÉSß““JŸ~u‡IQÇè œ—n*®fUû$ûY³‘}ó?Ñ»%;“^št~Æ2L¢¾ë2qÏÿ¦ÉmüG¨xQ¡„­\rÜÖß¼øa» ,ÀÎ7ÖÒÒ?Ѳî»l­ÕÞTÔ ÿʱ߼ßùŸßÛVióEyôú è%õJM«URÇ*Èp1øG¬ûgý¯JÁn7/©GÍTMX^UoNý¹Õÿª°HCýÇ\òÈ!lW•kJ=q+º—¸wèf1Vz¯^‡èqqzy|Á;,÷|ÀgìéßÔ½xG8A懭´Z’ÕæpWóâ?¾‰Oâ/üD ¾[F{rå§Á1>€ºeY ®ç.&¬u·þ|†2Z«E˜P.!¼…un†Ëö<=O|FúW&BåN_ôýûÖjþ–•ü0<ÿñÐVüj wa2¼n>ò•¬µe1¼ì ògzp;¨] áÃkî'ë±TÖ½é¿ÖxϪ›|Œ9€máÛ=8Š&X®úxŒ¥Fó8sl/ß74Ž‘áÄA1åÇœÃ/x¯Íb¨%Uãâ]áÏgò{oøü´XËâF^:î>1Zƒµos2·ô—ʊ߬FEÉ5жϠ\¥ñœºzËéN[úÝ&ÄÏ/ô6ô2«!_éÀ©veeec)õvû~TIÍY}…ÑŽÁuÉ?,üê9ÃsvƒM4wZo†¨ƒs‰+’î“þýî&cLÌ #ý¯ŠÂ,¿4_Ÿ¤/oPU³‹¾‰YXoQà?EÈüó Ûxe5v­¸æÅå }:û­ 1÷H´±õÉ_¦€Ý0Ò£˜êLý`º_µ öý¹"ÀëJɇ0œsnaÛå•jrEž ß“vvˆ¿tÃëhönèkï2»ã9Ü÷rúï&‚[¸IÇÂDÆPs7Yu²šÒr­^D¬EÏÞaÅO«HT×’ÏwDïM}>t\³`=>â+æá?ÊÒå+3´ºÁ‡d1Îà?ê ÄE•…ÜêÒÏ<¯Œ„{+£`”"ú;eØP/ô¡Ó°oô”ºö†ô/¹i6¶51éœÎŒç•þ»A°®_„Å– 5±÷çÊÿý¯ôm…W«ÊÄÕ3¿;–@Ûð«DZ ­ ¶=xþÇ[#ÕƒúÁæôoʉß-àôï¯mµå¢¬^ìv»ø¬æ£cûú_uE¨|¥¶RõƒNoç›ÂbñÂsÑëD§%‘T/ ž޶‹ÈÞ¼˜#‘ë|E¹¨äB1·;jñçþX’pE©ÍóèA„Ûþ#¾è"ÂZ•pÌÖF›ò§;ö}=ùË"ø+ØÒlò,ƒ5ÅS•nØÐÒðÌY"1ÿ<2Û¼“8;>•óÀkª1Á¯?¾Éšr [ŸˆnÖv YÈXm°“øõøbi«ñDîúØÄiôYA¬¿ Vø$•Uƒd¸…OxÐGÔ|ëÒš:Ul‰0ÿˆ¦¤T«“̃ÅN‡¯Tˆž:“w¼Óÿ–£øz€ˆS’éX³{ñ\®ÈEŽ~ ¦„s”½À«à¯Óàe]@¢A‡`˜kãÇbÍÔ¿J2ÔÜâG¸_Pš\6+¹a!Ç“r¾¾ô¿Z+fã½gbÁÓjY½ðáCú“k}'3òÀúßÃÚfæøÂžâÿhx“©Ì6 «¿Z­vÃø¬XTŽÜż…Ë9ƒÝhad„ÿ(EdZǸ@ÿ’& C£È™ªÀ],d"mWyVŒ%œq,5w²1ÑýdüÑ ¬jZ²‹rFyãó£Ú›=éóýДÆcùWðL[«}z©hÆI™fè2YsÈÙÚlUôu+»¢yOsùMO_q¾¢”±F9Žý8V•°r#yÉFéB¾‹î*6®éž¤/š«Óz£¨ÿ($²7²p>èoäTB3ŒôoOl?†š5õÓg ÕØA¶t¯¼üê h` U]åÑ+äð”ÆÊn0Ò†äË%$Ó™ˆ×ëÓ³ü/39ó“NÑ¿Ýò%Á™ê$ß@ÿÄÕÜ©Ãèr·Ó=þ½>*š³MÙLý`M4 ‡õ×R#C½E—Éô+q£ºaîÉZNÿ+Õ—ºö YUùŒ pzíðpô·GãïªÿÕ.ú—4"iÆSTŽÎÁõ1F {Yò˜Aä •8žæ6îÈRz~meá³ ¬÷"£šÈÔ²ˆ@5yMï䨅‡•þtP­ÁÞuJ<æ×¾‡é‰ÿf¦x 1]ì‹™h›Ú>œŽÈÑì(r˜Õ„Œz1ù‡¨píÿ îgKŠ?Âü°™sÈmýçWïl—•áj­º–þÜÚÿÇÑ_õ¥bõ þ#rÝA~~†‰¦m5ÙBc¬á)“žð UOæGµ¥âPí¼Ú]-è´¾/¢¯•Ä92ƒ@˜ä{`øK…]¯©´ÑÊsϺзü¹g$ëÏÓÿªŒ°´ÿÇPüìÀe!HµHQÕâ‚E,ÑND¦æ¾‹¶Zóä¸4ò/V°&×v"RyCìë «b½_‹ZXpzÎ;b ˆÎ³¼2Ûìƒò lôL¸ü"ðkÁ–¾ÂÞÞÁÇ…ûmËWO”Y´¿¹ŠRÛŽéW¼ š¤aQ«óΚ<©«Ñ`ÖÂvÁxŸà™ŒBÃ~zí¯Œ°Il%ƒZ‹: o›‰ëôN<‚ÿ@HW¢¡°+ྣãRÀî`‰¼@¯ÁŸwWeÕ6Áë&ƒ¯†e8È‘Õ]ûŠ/›Œ.Hgì’ñ¢›Ñö St±¯ÊŸbŽ'7ä*^fþà61 „aú¡ÌTÀ-#¾œIü;Jöyˆ~·+ÙÁçàþ‰9ññ§áž/é©QÊziéÕ—!K¿Z¡öýÈOs2½E»KwQožÔ”ºÁ5FÆàþ»géVÕŠŠ±d4•X}¶t²¼%ºÿâ?2ªI9rrÈÝDìXêÄäB¹XËÊ?jSû|Š|A7‚äøMØû‚xGRòï•éœö2ÌüóIêÑ«rüê,JÙïz!Ð+_c4õƒÞØÒ(ôoÿbö2î2/p6¹ ˜Þ)Ô±&ÙR 0˜ ­µÓÎùKF}}‚g¢´EQñ7cþÇ>ëýÛ§‘Ó5+(£é*¢ÎT´¾¢=üy€ÚAmëô<„¼3üWe©ØècÛ+7†ü#†Þžþ‰É±‡KèßÞVl·‰!Ã_é°r ÿñôâ vØB¨œ"²- –³š5ÅÃ+¶Œ©êýDxu aWu׿€~våKA¯Ÿ?Âr½‡É Kšd¼¸Qøß¢z³ß湕Ahp~ ±HžpuÕˆO†ë>DSÅXù0{÷ûô O¥+ýw—ÄÕ6’Ç7×§°GgP+µŒw-€Åµº õÂb¬¿ÚñÛAhlDjKŪPýœÏÕP’«áïç` ³bã ´ÖüúZ¹Ÿë-›‚Ú%§xOŒè Âu‰¯7D-<°âJþñ…ìzøa?ΨøU}üðGÖÌ,‚4;XK?ŽqüÌ^ø–zL‰¬Å¹„L^9¾ý¶Th(GÇ¥Ž9+<çV½ ï)D>Ò™*?ð¹ATÿ=Ç¢äºFä~‘ÿtŒüã~ÈRÁ¯&ªnb,hDüÇW4`Ø{ð»Ÿa<²€Š£Š¸€qŠn&ÍÈ’FÓ—!Ç™GGÄ)ò’/¬ù¡ÿ3Ôøœ¥ ùèFf¨ÆE”þèw-üê±´}’ÃÓ¾”ËÀ¯ŽÈÖãü],8–JÇåӊè?oIþñUoo±DìùŒ•Æeºä0vÏÿx…=íc\¤ßÈ,2¤vØß­ðç_Á~tÙFÿ¦9÷êCýG}i¡º¹¸N±ÁÎN¨õxIÿ’èws¢ÀJcj¼‘[°¨—PÛzñ©{Ñ+¿¥gn-ùPttœn*ÅMÙ¦ç7|‡7zÊNq•I&”–©|À×Z ¿*fÞÙ™`D‡_¨ÈDÃùÄ3'é>ϼw´ï“Cõ/Ù lT“s}ï’/Ü’Qàšß’§,§ŸJwôº9˜?(èÐåì?.ëÉ䪡ɲ:º¹qß«£Ï¨K|2¿v…²‹ü£ Ö!žÑó ã»QL•£b7”W'Pv=K¬HßìïKŸÓDéꇿéƒEË&·S¡òó„/(´Ù¢V kïBþñ½Ô&òc›lo][ŸCdRí·þ£±2‘+vXßÈŠ*¶8þã ìü"”r`ÉÖ¼¾£Äˆï«éZÿß\ÅÜš7}œý0:– Ìv¢½…<ß%@Èlò‘xl"öØþiÌŒ(ÿHFþQ™ãšÊuËõaVû®ƒ= ®G‘csÞ¦GÖC®Æ"ž÷×ø˜ÖZXvÁº3Êt­ñsø”âx·íäù@þÞñÜDÍMHpW4b;a×7á™+Ÿ—"'ÈíxrCîð-[jðÒIdG È? S±ž|u ã“ÀÀ¦ 2MÈß~z7L²Õ‰ò(ñém¼a¹žú°n¥ê"ºa·Ëb¿’Á<"/=ЦHcÞGE8€ÜD¦™É ºá?NÁ$!¢7-ÑHy]ôþ%ÿˆÃ¼ŽzdՉܿ‚ùl·;ì§Bp(Àò‡¢FzaF5žÊqàAkðÄÕYï zà#²,Ø{º›†œ­Í6ÿÑž¨"HÃß–ˆ=HÓVªßË[áÏ“ØÐÏ£9ùÇbúšlÄæBk›ŸÔãlcÁÍ\3ž8·QÌò¡B<#=Qnr?lÍ=ªè­ù;Áì~гªŒô5ÿCRÿ±ÿÑT~cϱó=ð ˆï ªêNbŸkÁ§âÏÍ\l¤`v` ó}Áfƒ‡• V> ÿ±ÈqºÛ•m*=²Ám¯êw¤A<”ª›ãfZ0§}FZsÈÕBð«ö”TlX}(k}©?þj w{øÕ(QËñìV6ã?êa›üÉò»ˆýz4*Ø;£Zk‹‡»M®@ºé—EwõFi„9Ž©è4ßT:œw¼âõPQÌye¶FTõKŒC÷5¦Ûïâ)ýð ³ag¦™ýí3á£2Øûã?>¡bKm6@œËð þü»8æ›A,sœñ¿÷âœ-A(ÿdkÿóçuýèŸXY+«yóžÌrS3Âu_ùãúó{ðç‹E^žöhD vð«<ê_ô/iFÿÝáÚ^Ö ¡ýó5«~ÕE…%}„åš!4½RKûJß©ŽTVé¿™jq›Í_ù¦Ô÷AX¬ŠçMh…2Ë 2µ„7qï{¼T 2ÙØ¯žâî?Tð¿vÕ–b¹ºâ‡é«Áˆ¢‚ut¢*-€(eöë-vþ«¨¬Ãü¾bq¥Öt7ýãcÝ=‰u*êQ±;GxjÊÊ{ø<Ët"æ_κ=ËŸÇÖvb‘[ã;N[Ó–+‘”€KýØÐ øš£ä Q°üOáÏ׊ÕæÑ•¢àW?ôyxÛ œm\¸ñA¬vŸúÁ d‡;@Ä£ÁŸ¿¡ê%þmû3ý:ýKÞ‡s»€£¨ã ž‹?²òÁV0:=9ZREÄÑÀqúÃÑìá^­ߪÿ(æ‚„,ëoËK ðTüÇr«Îk ¹ïx®ÿª2–'ÇÄÊßƒËØJ]?µ~Ô¢]×O“ýä¾Ô„íеA*F pªDÆ[¢÷WX‡K舾Zõttö(~UvºžQ,i0s!êaI’Q ¡ÛC”v²ö6[2øòD¼ùÉQTXŽ“D-W‰¢ÓÂPܧ—w/ìÌSº0ï)5MuYo÷þ|¿¬A¬ü&Œ~wõçñŸ°‘Gð²¯õT2ºÉbôß·|‚þíÍéî;þü0Z¨"ü^ãú§Äo5çüœ(…ÿðçŽåålcƒ_]Aq;ƒsëg䤖=üG ûuã!}yÝÉ?¶b™{ð÷e~3Š‘ùQ!õçBi©áLë ¸- Ò3Kï꟞èQ`ôÃm·ÃÎ×CãÔ‰©L‰QÍV òe?=µ|Ñl@i|“þ!Ó”v+>ª4÷ü•ŒÏL†8‡~»è—˜ÜœKd?Ö;¶=9ªjkWm¬þ,EcÔÏåtžíµ"¤÷Ü^e;øUmþìEgÿLìÖWÃj7Å´¥ûÈ|ݺŽ#ÿ0¨òéHfRÅxΤöæ<ÕÑå Ø¿’`¸!ó£Ž2p:ÑÁ$vo~]Kˆ§;ž©ýh¯‚_µ7ûR'ðÌü?ãa0­½-x ú]«¿*^ós˜ü££ª‚Dn#ëmŒêµìN¦êúdæú+œÄ¾6[A]áA²¸ü`–±˜ÿt’Y!nÔ`¶s:Â"- €›ì³" q Ÿ»ƒé݃aÛ»Qÿ±»š€þW—ŒÒowôjùÅ~<ò ™À`¶l¨úÁïL‘ð"ón„†$šÑðuá’×Ò϶øÕJ*"®0ÿé§ÕÌŸAá7±¡ddyŒåÜ=?§ù盕­*{yÜm™ƒ{vG®d²x&{uæP]f݇Øþ“èÃ2à—3}Ö…ÇŸŒ½W»{³úþ–Žüc…²A«I&ÛŒ|;™´ãgºÐ£Þ2•è3|ËžŠÞŽÙÐ4بéDmb^ÃÏœct"§²ædçù9¢·qìÂã(A¦â?†ñ'X/ è^ÙÉØKÿ’‚Ä=Í\Ôî2+P?ØÃxv—„­¿‡úó—bêþ'Ä[¥ÿ'øÕe[%ºc'|&ÿaÓ­§4òÿŦâT5üGbmeðüÚM¶ºÌÊ£Öeö€øCþ#ª²MB9Øó´Ø¤GjR­„Ú_y¡Õ…ðwÔöªå¡"ÿ_eüGs,V7"ÚVLY ƒ˜_›KÚL”¢_öJ±RLµ†Ívÿ‘[ÜAµŽ'Ú –D£JžÏ`‘7°`ÅÉl‡Ñ¥b¤ô»ÍáÏ7À#¿A¯:›5Mò~à"OÉv7¡B¹…uü„'õ )ïØÃy%¥3Z0_øó$X¶Yø’hüá7î'Ýækyšüã0ñ}>æ×ŽüÍUL ­ESÖ,ÇWŽþŠXŒ¼«8Oþ|ôHÉpèÞÀÚQy2îpô#˜•,‚5Ó)•ÕÂàss°ãÙÉhbÀÌ !¯úFW¢qD_^T¿'®JN÷OºOuI¿-ú…›Œ¥ÿU%ý|Ñ,ŽÉBÞã+Ý8’„r=ÀŸ¯”ðÛ¸WÛ9¶Šº O,¯§v<¹!Wñž-]ôÇâ¹f3­<6k,ÂúÏÒ‹¡—íNæqqþ.]A²_å‰=ƒÏŠN·ðùZ5l…ãzê{Iäz‹ÿ°0µãh“¾ÉFø%T€"ÿ@U”m"k›bíPaÑýU;¶;OlUrü]Às6‚KYõç©é1•ÿqGâ?†›‡Ñ#ÙŒïr¸ØZ<;Ê%Ž÷ ùByž¡¯aæk†Zê ÜÂÙ‚.ô…ðjÛŒ6t ٣ͭ°wÂSÍƯڑì¿zËßo¹2R8ë¯F‹<|âupѪðç:ùÚ)ã!øÕI9ÉÈk?Lþ‘‚úó[ø6oêŸÑ½ÄKvA¿ëOÖÛ¨ÿÑÚq3~ØFQ?X„*K{–ç¢1W-.õyy@Ô.`Û›˜O™ » æcú«Fèyp_Æq—ò¡¿J‰§h#¦;ÖÛ‚þJpÏ’/œ‘ମSÏÞ¬£3UtºÕßFÛå ¿ŸlhµßeŒé̺ˆßZÍûf mš,:ž½#ÌÿhÂ5¨ÉzYåWqBÁTÙ:ÔL žxîŽõŒmŒùª'Õ ¥Ût>tÐéYUÆz~°?ð¦2 P'šš‰ùô°úç„ÔÍì ·le_ÂüÚÊö±æ#)ú«Tf=æ$‡?ÿ &ƒn_ :Ì(6ü\ð_üzÞV*^ýÍÖû?î¿ûþ%#èsØHË©m ž_»ÜæJÿÝÒôÀ:Ãüó?ëŸøÎ¶Ÿ\D"Ñô5®–Wí§¼×ª‹ èw¯Ó“1l„öÏ­´ð%†þ!ÚðÄx€ÒÇÕ›*ùµ¤(æj‘}4„?÷‰¤ÿ¸¬ÜUJ‰»Äãû‰wwaï’Ód¥FÕLÈŸÕkà•f‰Ø¢u¤æ´a~Ô Ñ ‹9þÃ$ó1ùGR¸ÃLr±žA~&OV±=‰L ;öpDg[J±êQßbƒGœ ò]Z·ÁË༠—ÀÞžbŸž*¯wý­þ*ùÇk¬rlÍ8Öżëo¬êYúø Æ] pŒ! –ÿ™Å"±5Â8Q•Ìj6~“®èàWsÈf> 0¿ú69Ьp/vV€R?†‚/ˆRØô²¯ö*œÓ¤ Ð\øÝ àÓÕˆõã8ðg,ýÛcá?ÖâãjÈüë&´m•Q|åJft<¹!Ëž´@ï·ücö/;øÕ"Ö[ˆýš ž5ƒ>M1ÁÂ`¤}ÀG²ñüŸçŠœàl²È%Z¶_jO«ÝÄx†¢XùSð \ïc Y&3• SÁ¯n @sÄ{q%ãÊú(ƒ§b¡‡£eí&ÂNQÐÕ¸(~\áÏ×³Û ?2ÓÓøê07è(Õ Ö7†=¦ñENa&Èκ$þã;|e¢Z…¬³µÙFá?ÚrÍžëua!šÀ4„•Yox¬¿JŒ½Jcï`¼–󬹄 ?±ùñȶٸèªhã´Þp‘†ÝpŽ(#×/yÐvøó9Ýh£õçùðø•[õé–»„ÈÞ ßv ïšÍ(!_‡Ò_)ÊHeþÃOU˜5'Ñ ,}®¡‡õ «™Jÿݧèy¯Ðõk~ÅÕlenE×0•ÕÒs5‹Ékú@1Áqº”-ªF5‰?|÷]*M>éx˪\¯öøä_Q x1O*¾yÐð§ÿUxë˰f ñÖ¥ä zt/MÏÞ!e‡–]¼¥¿ÊE·Ë ú>ºª—b…EØûGtÐêHnTob3=Q›%[¸Ò«¬ž†+Ó‚WYñp!*Ž;Jgê?j’5wÁÞ%Ö÷¼5Éý Ó,mž€GéHý‡¿ÙÒÞ%pû[# þ£›]vƒÛœ>sDA±ÉqÆÿÞ‹ ̯ éX¢)}ÿãùçR9«Œ¤þÃMË­íTZ°»öà?ÜÔ¼øEùÃùç/èß>^¤âzÆÖ÷Š“jzôW}È?ªŠ$ZüGGÕRGþ¿”bÈËáÞví ý§3hq±…E¦ŠlÛÕÇ‘ZîúÝò"€ˆv=¶h>˜ Ü#w½"™ä,lD#x øfô»-#ÅtÓfRù<™ŽÎ^YÑÓz“I.åI_‚Îl0|o>…ÔYìw8Ó|âQ¢‡ ð³9ZŠ_fÍd~Ô2Ý\\©Ä÷Ï`݃>=Çcd5S~üê2s½K Žíˆ~¶:¹Íò“ö(z:‰Nëu…Aõ.‘/f‚ű㻦W©ÙA?«—oqfw¼G›” ål=æ3Í`‹]¸J.•Ü(OýyÿaWSÿ‘å%×ÿ2LY/¦þ¾6ãƒÚ€_M ߸kd¢N¼1ýw¥éÿ±1¸ÿÕAò5ôG ÿÜ ÇžñUª ¹kwȯɴx…¯ÔÌt'_kc®Gãt‚Ê™…Äù‰ì à+öƒÞ™ÆHú_ÝÖ[1·²œJÿÝÂÝñìYýÛ‹òTÖíÉ'¿‰œôjÉao€x*õçÆ³:hX5꟣´ëLH.zÂŒ2*­J´k9+rQÇ.¼ L¡ÿUi¢¼.Ä{YõÊT¦œÆSF[Vœ¾SÌ&èwO™eìMLwô?€³IÎ=×X류MþqŒ<<÷ÿ„ÿ¸ÿòtF¥ba§}Ḡ¿}-¸ÿUú—$×&÷/Ùok¯VÅ4 þã½-rÝm~Le úÝrÄ\½l–«ÉAÊ­¼x«ÖÖŽÒ7,ÃøóáÍ',üâ(‹ö(ÑÉ-ð«ìøú#-¶(+<#Ýÿê¢â¯”÷ˆ—‰Ñça‘3‚_u»°…kùY,Õp‘„®ŒáŒÓO[kÃP ô™F¤5øq0þß1Ÿµ}AÉž³»ºÀ“ý¿ªì?vÀ|;™rQ€ ~}ñu§ˆX/‘;â;Ü8Òé0K­4g+àt`Áߨµu k½Aï·“Y}á©Ï¥‰§ *A.qÿñ4çÖh2ý¯–GØ¿=ŠÒX-/3“n“г p¹~\¿×º7àZêÓa`cQYqŸc¿ŠÿhEÇ­MTÿô 7ÿXÌS×…ìOÊIÄùûñŒu`ÛrÅ>ãï^iqDllIoYKzD¬A›P •„*š„Ž'7ä|oÙj»a¼Þ£;ê+î© ùGú4õ’Pš*ð½V÷+/²ÌDÅWÉ@¬þWú ò!K¿òT§‚_µ ;Ú ªÒ¿8ÛZî» ýK–ã?®£ÃÚÇ\=w5rœøÚè¯zŠ’ažÂ¯Ê‘Ÿ¨¼ÓQXgk~íú—d&ÂΔÓæø¾»›‘žó®ˆÊø&(Ò=ø›Êp²5¼¡q¤úJ4Õ7rß\È(à 2£•FQY•úŠ ðçû‰ÇÛ’oL¢B~«%¤f<ž¥†ÕvÓÓˆêNëý%ò¢+xˆß¯â÷M?Gݹ̉§ìn¤·ï¡ÿÕóàÎã±ÐÔ¢?zú°4d-_üGJ£¶üjþù[?ð«Œø—7° ç©üì ËÓ³¼§Vy'jåúDùÌ£àX³áEªãOær3Ø•¹ùTïÜZá8Ý=ÊyU%šz†Ç÷—%Ø!×ð²©Ì«k.ÁìGo»ˆšI»=žékìbz:¬þaò醨)òÒºý)Z;üÇ>åœVŽgÜü*ƒÌÂÞg¼¦RÜ&&xOãINЋwUŽó¹77è8Pþ¼ ¡]¶ÅBÔÄ3º8vá ¥  g_b„Jú.æ^ãLwAF5˜øÌ\b§£¯½Ê0ƒ)*‰PJt7cKAsAåÏ¿•[güクbK¢Ž•þW…ßýÙQDGá1*˜ÿˆ«MTê³ÊIúï–TÓßïUžýáüZ¡,Õ)ó—Pï-VÑ—1®Ú“ü£ µ„.Úê³ýÑq‡±÷è’üö½“x"š*…µx`IEbQW¾¿ÌpÿüÈ?‹+p±Xó±šøUFÝ]xïƒqÈ Ó2FèTµ‡Uu†·bsm*ü¹ ŠYØL A¹ ªO>!Ûõ$ºÝËŽz#êbKmzeÇo%ëgÅ•~Tì_ixJòË%`Yù©ÒëEõÈQüÉ)ê»cïÝù+Y@£ßê¯Þ«žøw½+±V¢1è½õBXŠćX3üÒIð!ô6öt¨Ø!ƒ–Li¢¦!·X€OÃ}°Ã§ ¥zÞÿ±þüìÊ¢úKxçþDž¾‡Ž5&6ã‘â ±T‰ÁšR©ªZüÇxо¤øÚÏôOìÆq¼€?s±&G¹ÌŠïñ¦á±ö=Ñ] ™r„+•1Z{WªƒÅpvo2"ì#àSϸ;É?‚dO#?š¤XF[yŠÊÓ°êBþ£2×>¸¡?ˆØTÇef#Çcê?šcMMû'2“žàc‹°÷¹ñv÷ÐAm—EÁ¯¾‡é_Ò•þíM9¢—zº¦Ôc·%`ÚÓ &É–7à Kû^ìk3ã8ö¾±…;‘ß3àç½ÑÙ5×㈶Nwyœ(ãò dõ/IJî3¤i0•#}Œdô‚O c¡ÙOWèëÞ?×f¡=ÙÜÎ:!üù³PøÕXØmxŽú0-ÙáÃæÑù¸ýÛû2Ƀ+½¨û¸`ģƻ¹9,§Ó³v ž$ÑÑe2ІÛt'\ìØ*»É?¢rt×ybσÄ% Hÿ“ä1^†Zgõo·ú'&Á/¿ÒÑBaç ʦ—³DnGìv„þ핉lk€H¦’±ÙýKèXU ÿ1þ<&s· †k`.áxwpoºÒ`9™Ž…_}#«.¤—EÿPÕá?ü•Ìê.ÉΪeõðçg™?xtº Ï6Ýì ì·Ñ‹õ€™ùs–ÒÌ@±(ô‘y,F¡¿ºNÞWä2ð #²;v‚†çùÎq"õâ=•³ÔÔZ[êÏ}‚û'zÛ\ÔžTú5RÁÑ?ˆÔ*?é…múݺ؃ÄÔrßP¥VTí¨ÜÔjëÕñjCÇQÿ|Ï?}5ð®ØúX’B¨£t}”’ þ¼lj6øó•â’j‹ÔŠVÿ’ â$þãÇL,r,ê?òëw—å·3jFÁdtE‰‰{0ÿ|4±ª.—³æT°›äY¨8K‰ KÅ3ÔܨèQJ}ˆcGt®)WT?ÏaŽâðü-½*Ê»{b=o`io‚cEEÏÚ k;Þoˆ6å7GøH]‹MíA.àDZEáYnFŽT \xþ£ ÿG8Ÿ )Éä)>e&ü¹Ášv¥Š›ÏoÌŸ’+8 ~=T})+þ ûzI`éHþ? —ã¡…dÈ!ç=Žùç=±â9ÀЪp/N7 }ÁçN€?ŒÿØCŒÛ$ÊüjÙ¢ Ý— BVùùj3ó£öbñïê³È8ZƒÖ¬ÃkÎÓ«±ôä\Ï€8x06Ô(?¶Ùš.äǽ‚‡™¶#l§šyêHøóªìèw‡Â¾Ï`oÔ Æ¯RSQ Xý•‹Ñ–¿£üN¦ól*¦1Pî„ÎüM‰Ïl»°…ºݸ ¾sŒ\¡>è*5z¢ zl¦7üåø•hi«àeî’û\“¹ðœaëÏGª6,™5y¸V|(±Raíw9ðÓù/©ýú«Žè§¦áçæÐ[·±¸$تTŸ©kíîò8aM¹ÁýjB†”ŽºmO¦‰L6–Ê®Fr»7Õƒ†YÀ¾Í¸'¯MLÍè¯äAÎp„,)‹áŽ™ÿa*îÊ:v~ð°Rø‚íºªdÉðÄt< ^ÃÜ‚²õ>üùPê8:Sw±”pµiÈxÒ=“~ÞZú‚ïT3‘S>‡ï¾Æ'­£§ÊdP¦@Þï ¿þcüGøóCL7œkv`þ ŠŸlÛÕŠ§¨–ø;Ôü(êÏË‚|7ÀüãIŸ-û’dFoåÊœ^Nð^ð)mèÆ›Ä\¿ßÕh {óÔXBíÕ7ÔÈå8·Nú«ÎôÏ v=š:RŸ@¿«ÙLvßH˜ªfûæŸ/²âxûu´—bVØ'×L…~÷›˜>­s劥Ž3þ÷^ܵ• Õñê-ž?“Ó¾ˆü‘D¡CÂêÏ]™_»9Øxë¯Q?x@yk;ù¥øÍ÷¶9ÚzŠ•Ãj.oTS«ÿqZ«-²kÚ{4ÁÎùóï!¶ñ¼<uˆ¹j€.z;%£¦²Ê‹ì¢Ø.üéAþšg”GÔb?<ÒBþN šw&ÉEì`~ìã ô?­#Õ¿d¶êSW0›­X¹|=Ö* ¶>­\ òŽŒæ¥('’Woð[ÿE™B´ù@$×P6þ¼ Ù‹HËm,ÝulX\¹KëMÞä®wÓFüænßS‚Mugº¢ôM,Çv̧²ñV¶HŽ7Z[«“`|ô»÷É &Š…ôª ÿÊ™JN5?yÑ.ì|¸éïâ›°<ð{}‰ôâg‹8b“U~ A{ K?åæê?Zk!rÈÊ@Ûâg2ƒ/tÎjaaÁžG%oË)nkñŒCdMåvÎ}kÕ§µ ¹WåpüÇ>[.í\ä;}&ŒGSPï½ÜÉ (ÍVÈîxËÓ佈æ?ƒÄ>>G/p´ò\Ð2-ó/ó—¨sA K‚Â<‡5 >da›ÍÐÓ¶†³˜o&ÿ(gЙ—zÍ0+)àwo’[Ä2úƒ_µý…?WÕ”äWÝñ–+é_ÍøD-Áy´Rùò!y­àÏŸ›iÐ×.m·*ù Â,<Û%+‘i>Tœùóê'ÑŒ#úW¼Ìñ¥ÁòŽ7öPÿQ¬e Ú«£D¾=aW¦íÁêà3WË8ð!»ñ¤mõça:ÿ÷…@3¯r?Zƒ˜e–ïånêç¾Ì/LGÿ’ôLi_gÊhw±'«NŸ¯wäG¯È[À£˜ ”‰ðq9QKÝ1ð$Ù©ÌMd¸#Ô.¼„’p(J|Ö EÉý‘©D™Î‘¤þcµù/7ÖîmbÕt¯j/oúÃ$d~Tk4ý“y*ï5ýoò¿m¹Bñ?l”2<ýŽÛÁ‹$Ê1ežúC­KÿÝÍJ:VÙÞJ-N““ÊÛ¥Þþ¿Û¶à“­Š©üT Öh}Ñïc…‹ÖýU]µÞgMñüþ½¹Æ©6ó£²iÕõ)úJáB¦°NV#×!ø#ý¯ªŠoX6zűƒ>‚øvá8ë‹yø$¦%Ÿ4žùÛåEx}7žo+møUwP›üY‰Eú“^R~%Ý ™PÖc‚`3~–N/àØÃaWùù}R¥ˆìV‘š<£ºœ‡ú¹$ñA°ÛoaJoagíò,þí‘g ½ÇoõWÔIؘÖXŒ}°{ÅDâ÷UT!ÜÆ®vUy¶>â?.ó;ñðx¾è–=ÑÚý<ç¯I•¼jN³ÐÔ%À?<EŒÏ}¯ï"‡è¤o¥ŽÎ&O³âðÜõàdkÈM®ˆáί]jܬ#=øUKr Ó uÙ,oÉ'ô¢G» É²:ä;wñ›ë8kB«½ËúÎÏV—.d}¸ Cñ9ðAVýù(òÀ jÉ `Ï®WÂNæ‘×ðIGQµ½"zX@þV²] ÖW•™ vè=×ð¼ÑYr†¤Ô”¡ÿU1ðµúdÞp4Éd"è‘ôçmÌüQ9Ì5üªèÄÕÑs­@ÈÎHK~‘ƒzŠ£òóËÒ]Ъÿ¸EEbÇ;“c>Föá-ÓƒbžP;­8þÜ|7@¯V ö*!¬þ£Œþ ÐIÏ‘ØöZÔÿõ¦Ï¼/¬~)˜øàMžÒŸ+³Tëà´Þê?а³nâáFË úL-3ŽS9rþä3¹QAj!¬ùµ·å|:7½ƒOZ)°â>ð½èÔî7EEßH¦Õ”x§WÚ‹ú&Dð¨aJÿ’ð¯é@yŒh½<:Pk1ß;¬.Š1þü5›ëmTvƒ_åf÷ŸÑÏËBT_|“#xÿSð+5c“I¦àEâ3@å óý|˜#ïn* q Ф”™M½P p<{ÐöÔ$²mÀý·K æi|ƒùXˆR·(ú«¬°Ž–Ð ­kL_ý‰x’FìkI‘‰®š®Ÿè¯ Fû—ƒè 9÷8¿¾ž»ÇÍÌzc´¡–}®9ľÌþÙ,̼’–¨¸²Éé[Ÿ‘þí6T‘ÄyXÍLÿþÛþWŸ~žˆíƒ­KpçÇþàENå}ÊlZ5-žöwpãkëIý`µ:Ú¶ÈYçŸ ŽÊ[ÔÀúÕ5 Óê¨ÝáW^·ñ5öïÏ÷Eôµƒ¸ žý´0ÈÄkQVo dÕjƒMç)6P~<¢7;ýü }†[‹—XâD³‡©‡+/[²›ZOvú”®®ÔŒQD}™ÐOx–èŒ=_Š÷øÜéÜ@:"•|Dåy`âïšÁ¿¦ÑÓ:ö°Ó!…ú¦€Òë¼þ#. ιìÆLd/ˆ–£‰ßÁÂÇ—¾x;+"¯¦×ÓœUü¡ú¿—RÛD@+Îj?Èc1LÆŒûv¬1¶y|Í.ô¤°wÀ—§0?êë¯Ëÿ$RNMƒ_›ŠW‹‹ÿx'‚`f¦â/×ãé<ôÅ0òŸQÝò”ÝàZNàŸ ¿jnýàb¥·æÂgÇûj…ÿØ…7ÏM®&¹~íô$ôÓƒýGK¹5½ÑË5†±Ïƒÿ¯þÜÏVA[ˆþê¹>ž#8ÚBÖ"ƒçíHgŒcÔ„tºG[[zš|ì0ÄS2D­ô/ýK6©ý…èkZÞsHº€wuB!V ޼.c ѳ=4vó]yð«ò+ÜÈQ˜\U_1ì—ùQ¦š¬µ™ßF4¦ õ¥Ú:&þ#ESSªàa÷nÉ–ül#{§Öþ ~Þ Ä?©~EÙáô¼LRM®Çf°ÒpYõ¨oL`Œ1…À¯6Pqžüª! ã.04¾äc‰ÅMã:¸ÓUÀš3~ÕCdÆ«ZS}ËpŸôÔŸïC¿Ëôxº‘/×ј¯q˜úõ¥(Ÿ~ 8[ª`µ''è±RN®»æmùGVTÏWˆÍPªô€?2†QÝÝ‹+á? ¿:3½Ðˆ {îbd½±a £‡Ìæ;L,q¬·V9«Æ#&x…Ç¿ ©=¢®²þã •‡Ûèr»Ó¼Eªõä#ýPïרdžQ®Ï¹$”×ôr<{˜ÿQŠÝÖ‘§5µü.ëë`ݳ¢º‹N иŠr÷4ǸK×`&nj*<½Œd4ïa9róL •œSÆc €^u¢TÐ'_x¯ÅŸ¥KäG:ðvÆÐ/¸]±‚Ј)ôk©`&‘ô‘Sôûâ ÏL†PŒãÔÿë/vÚ’+!Ó¥ßÛ+öYä òæ”×Ð’jK‚óöáp)ÕÂàWmaŽÿ¼rLzÌlåÀÊ’4Ó2jUUwüG/QKk¡¡ª=¤jåŸWúÿê.^`׃Ä8ö¥§~S$ÓÝÀ¯SÕD±ŽÞ72 Áòøã?Ù‹[©Í;Ï.+¦¢$üùߨ¨·p`-ñTè¿ÔPDffV+m0H]vÀZ}<¼D|ùÿ‘½hIbࢠãÕQîÖGWOäØÃjne”“ùQù°èՈ̳Ó~ý@ë?£f?‡®)ž<„½=£^\¯­µøÍÝŽ¡-ÆF6à:U{.&ÿì㾈]íÆ3É(iu Â<¦Êbý¯"¯R+%Ôœøµ1°iÑ T7pÔßõí0“ð"íÀ‡­ž»_´üjyÓ-2ÎçáœîZæº{®¹ ;'à²+ÀBQÍ}ôhLKDô럽ܕ}d=®D"%ù씎È/dÙ‡¶ÆÚ°d|Ã%ÑîncôIeaû+ûb‘;S]q t&7hÎm>ù*ç«`_úS›t-d©àW{Ð_u1Ë:ôHºƒùôåÕÐ%U1ra§K¢@-[ÑÎ(‚ù‹Š÷êä&s±MäAöcÑ0÷%u@kŽgGñIÇ“\aZRR:^… ® ç­ÚxSgzbùÀLUÄ×]£~p…ÌŒÅ:£ìvZq ú«&äËwõžtóh.?èqŒ™ NUɈVƒéöÝô¿ªi¼ RoJždÍ£Úˆÿx͵¸À;·j]œÖ["’—ùqMºÂb%³[iì'ÿ𥟣;”nñˆò}èpôEÌÏÔˆlãSwƒ ž³+-WŠ!Ž+¨(£)è¿;˨!«óaªuj6RÐÿê M[b-ð›`^®â?·’l “Ì)8ƒ#deµñ†v<×2æç¦Ö:Žoa®’‰%ÜÞø/#3ýKþ?âÞ>k¬[ß~’ìì$¸ûPܽ¸»‡âîî.ƒ»»3XñâE EŠ»‡âR¤èw¥çðT(Óò~ÿ3ïÌo¦…¶»;ÉÎZë¾ï%K¸6þØÎo7Tr©èí|ßé­¼ Ì?E¾†Éì+›P‹=/4æ¿'úÇs*ø}̦æãõµà¯vS‘tÊüŽä\ÓûŠÅÎõ<à¯^ëå#ôó#² 9]™Œ9Ì`2Ð?¶w©ø°¬éô߆ÿð3. „$0š˜WPÒã“ÅÕD'ç»wVY¥UCÿè~‹EåÊ ,~L«\³á?2Áp0OãO:ʘ¨ðM%ùÔŸ7#:‘èágSSòcƒÞt’ž­ëOˆ›žIßnHk=•’™íž‰*û9æTêXy­ä+PO’œ »UñÑ{Ra{™LÌþ±à¿øq7üU,çÉúèh¢¤sþé÷¶‘×®‹PÏSòÿa÷ð>çh¥ÖÁÒ—VÏ)þŽÈÄâÁ¿1©²Z,bs7Sèǘ S‹­þ¥d§SUS­¾vž©TykŸùñѽ¨7è„NÃWÍQÊh¶*Ý›:ñöÔ—.QÏÿúøÌG¹¤èâoÊôÚK0Ü…¤“WRŒAÜ'ä Of ó‹âÀ?¬óãK ´.Ô´á'·ð¦ì%FùÿõË”^î¥ãETY¼kú Åy†ütØ”’º©û ,z2”åòhå ¸êøM"R®>ø£ûÞH%]n-tXØÕŽ—êj,e}¼â%´¢Äø¸:xÉ:ä¥,À®f–Ëy'ìþèQƒ,ÿDºŠNS^ÿ¼LÐß$P’’5ú‘52‚æ±ÏðrãðÀcåú—,@y0äE|[4é_¶Nj ZN‰pë?VÓ7=÷+®Å5î%K§®x£]å"=È)¢›·’¥äJ¢³uø« ¸âÜ‘(Î77x£yx KÈ~Mvî7üÈ&rÃ6).­Ñ'z’áÚˆü«Wĸ ñ›ç¸£¾°b—¹þEèçasΦª#x¦­ô|Ø´«ðSþø3ØÖçèÓ ±^U`Ús¢V¸ùÈŽíÉS.NÆúÚrÌgñ0§»¬šoÔO/À„ÿ8‡}½ÂäŒïx“k¨)ùÑÖ›±Ð§;!šÒ\÷¼Þ#ì=YÄú5ei¨û¨_D%îô'rT}ÙŸBæWwêâ»ÈÚôOþÕYºB DŸN^ï~Ô™ìA–>€õ^ð֜ՅZ¯‰p弞&ªr ZÍA÷¿sÔ ú0ÝÅÚbV@»ˆo½7èIFåø%PÞRÙ,å˖بæêê|Q•™Ê"GurGJ£ZÐëÊè‹Èâ‹WŒÞáÏ*Ѭætã¥Q‚ÞSÓðE“Ð?21«,oP+1ʹÞBåŒúйì¯9Sg¥+oîPÚð]‹áÅ®Qy¾Ö*ƒ•–ê+è*á?NÑÕ"šÈ('0£t¾Î«xkí©È›‘K&†c]mÜ£Þü/ê³R#¿Ñ¼B”žèéÉèïû7jRG¬~£0½,9˜ˆ.³ô Q?x/¤}ؽrékÉß=gŽâ>ÅË5°™Ç­Q¾™é­Þà¯DÖ#òzãÙƒæŸÃõÛÂâk&V:¯øßûăú篻çh¬ü^]…óGéß>Pý¨æÑžÑi$*§k¿£%³Ï³QƒîKû…àoÄgIàg‰LD\9á_ºÑS«•: ü1ZÔ!÷$u%.¡ÎoDKvO‰{?‰©èç+t/2j)îZylÄ_ðWýà¯VªÁŠÛ?­vŽ9'i`ÃΗ¢þÀ$2+Ï. ‹MØ›·TÚ•åýšIÿöâÐ?-ô¿_+¯õÐÆ‹öøeèqžàƒïø 4Èìr‰^ÌOw˜ž CW#ôÅÑ?bÒ¿==~(;QNF86xãüX¬Ø3,Ðeø««°ùt7-¢l‰øÚz~¦CPô< þg6z/6â y­mPL—â9NcuS <„ë.fÓ«?üŠ(YÔlà…éØ³Ôøoⓨ‡ª¢Q‹<„ë[ÿE\#—ëüàjv}·Ã] oðe¢–M:*¨28p'aftþØô’š§·EEB¢ßÞ ¤Mø·]ä†G* žMŽÿxë(§“ð£À,qA}Ûx Ì좛ì ê_ ‰ ÂÜ#nÎÓæòñ¬*ãÉÑèaû'îR;‰®Ü+W8ùKäWÙ5ü7¨;þ?T…9%`Jjbí[’…u¿™-i/l{L,øqø«°Ó™SªÕ$õ9+ˆíoÈös„‡ÉËï˜_Û—ˆ÷þã+x!«±üQ“gtŠïñyQçv)^¡Þ—j<îÕ^r¥kÓ ³§-œÎ$£?ýåדé‡~¯ؽxÆHðÇnbÂxŽ( ¦%èÊuôUa"Åè¥äuÎUut¢/ú rd½Éèº,§1?j+ EnúÚždo3¸ö+äÅ-!º÷æßó2™‘O.½œ‡&Š2F9­Àip5,æä6 ~p6ÕCÑŽg¢H!÷.}wWשÐëh.—Mà¾$Fÿ {˜>Ûë-V.«Qˆ nq>È"hü'é§EF1|Ðx1/3*þc/ýw]èë{Œº—UTçmY·â4ÄB?¯Œÿèí|÷Ž)µN¼ã}¸9e*ê_п½Xp•·5AÝÈlý\P«1Žî¾-@5½Œ&ØžÔdåä§æêmœ§ð(úÇáÆzÈ–³ë7Qãïp¥öœ¨2T“,1[~ÖW³¶5ßœa<1_3– †--y‘vGºûâ*À¦¤Xí¼âï“yŽŽàîtO­•œ¡ÎYäw’N Pj¨ÇÈ´½Šÿ°kÈv:ÊÑ=QªeÉ¿zó›ý“+艟Š7& ôòk™ÈßõQb‚ìskå´¨*¿§ ÆG·¦Ô(= öf¾ð%•rZ.âꮢ‚hþ˜¬®‹ÔÅžQü”ä_Ùù¬Åx_^ƒd#5³˜¬ÏÑ_£TÁV ßµ¨‘Â%´A ­†T2¯„¯ñ"~„¿OG¼›XÒi~¤yc°¯ÏEçþÕV +m8›Drj•*È9ðj…©š¬‹u}-¤!ºÈ%b§KØÆÜzy­aO[hK¸¦Fìè$ÿ½sQwž¦¦®uØËñ·‚ð‡ º×=-D<z—…•|ø!Ç’G›tò(ú1ŠãdOjµ§¡UHðG WþK[¿&jjÁ ]ðŠK•¹Z búØðW5ÐmÏãRóJ,z?¦ºä èãa×n§ñüUYü_~þŸÄùæ¯öÌQ\Û"V!³û¯mûùܳ‰ÄÓ£`¡r «Ÿ"#v–4ªîž½ñ{B9%œü+µ#ÌBkSèabãq\Éœªoµ]Ô‡7A#%év8›×Ï4û×Vž-š•JýDÎ`sö³^ê4ø# ~äã«¿¢¢ÛéJ;Ì„äï¶&7Njؽ*yZ×ÑkjÊJØÄà˜zô‹Œgô0þ2j ŸÏ‡qÑÈ¿:B¶ìôw㩊Eã˜áxoOål”H‡‚sÛ\Mö¿}—¨ì ó5‡úAoô™ŒôC¹6ÕÈcÞáZ×ó´í\€ÇTµg’ÛBÔ~w,Ur_‹£6—â·MF‡¨IÌ=šÞ ½Ñ»™n¾¦‚æYË èp›—\Ù ðWÉhNi ßÕ{Šy·;ƒþ»ñÌx6ï!ÿofS­Öè °ó©Ùáú)¦A±8nè„ÞíùïFžX<Ðl-1YÔu¾{~ÊY”·®Xû3<8è~ËÈ1+Ï4…ß΄›·Ö =$u*`$ª6>’9VCO„7Ä;™Žö`þꀲ€þ‰Ea†‘Ò/£yS)yÊ¸ŽŸÒZn޳Nã? 2¯½²ñŸÄ,y¼fÙ^—œë'âQlj9ûå¼-ÿO>YàøêÆÞÀ1B³Èÿ’\ŠE·D…IOß@ vþ®‡£Úy**{"¿ßùÙáINtf"çÌL©K­¥Ôrª ”ûÌLµJÍ®Fù­}vA±èƒ‚0¶d(UÒQõÆJ.-þ£$ø£ƒØ'æªG#µÃ;èEÄ}âãÄö'±ÄÉÈé(¬§ãÉÙ¹Ž, s>F|ÐJˆÈ¬X~Â#DIÌíúlfLØÛþD*Oùo&Zßw8Q v ¬_ÄúG&¥=øx™ˆOW9•º””(Õ±Ö·`€oâGâ÷¥7ÃZô‚›<%ã5«½Ô7€Æ6ònˆŠZx]ó`«`ÅÓÉq £h£¥ˆ5ê`ÑôÊ/>j‰ø‚’àÍ;¨ÿs`®4ò 2©>ô¾ì?ù;Ü´­Dtç’]aГÈD˜+°Ód%Ù ‘NŒ^TKï&¯¡wò"¸ì X)‰œªeþ©þ|®ÚœìÚÜ©³ØñNøÖÁì°ø¥½‘Žü«òôO,Êü"ä_m'oÙÄúús’ã?îÏ sºã¨ÑÀOT+a¥ŽÀ_]ÀŽ=‡åèÊüÕKftã¾lh¤ _n=4ݰç‹/õÀ×”ƒ¡Vì¯Ú3e¶“ÝßÛþê“Çéè@8?øÙ>{Q®«’Ç6ÿ±vÍüãO~È¡0™{cD*² ìúÁÒ\m€nÐ'ñ0ZÇVêÏs¢¥#3)}Pÿ’éDþwððjøâ£x¯SºBÔÄS&(6sX”Z ‚ü¶Ù(wfñ¥2Ðÿ½ýKîQAóýc4õ®äónE‹·³äã‰jÀ8­r>ä¹Ê%U€•_c<”™à›ÎpUÐó; ¼£ãnÐÖ6ôž”t%;AÝxw4–Sú½1<[:¢°zb†¨áô·•ÇZ}ØÄnœºTÒ;ú'µõùð#AHI˜?5,Bo`Ó2·¢ŸcZàg*7JS;‹ÌÝÜè` ¨;û±Á3ÊbåŠða#xÆÙõ» ™‹`¿äï6åIümN³ŽX_¨ŸÃd«ÇæEzÎç!¥!"V`^ˆsX5:ÄþXð_ü¸Kì?î€?~5½!¢M%P*-Ôj|-®¶D±ñ÷lGaµŒ—¬³Ô˜œhP_Mÿv»¦ßîòD¤ÐÒ0c¡‰â§µ®Z{m­ZTMê}õÃáü¡Œ¸­OÀþÙõÉ©Mª×SâiYˆ"ªÀtÔ'ÅF52j·ÃqÿQR܃ý¶;¾nâ”.tt*’ÜDüÕ »Ü…üóWZíHõOlÂ<÷?E}pÌR,æTìŸëéã‘Yz ¿~G½þD&sGüBp S8—ôWQÀô":~¢¦\†–ž Õ»6ºü-ªÞà ’ÉÃd"]àoêèõÃTý¼ê[u;kÏw‰x냭^¥…kñÄN”ÁC©p)6~Në¼Uß)¨hÿÅ“I¤$TSƒ×á?¦á?Š&Dù×ÈÜí5X¶¤ûQÞ…$X x‹ìú.ýwÃËèšÇÔ„jX„ òoîÝ¿¤ÙÊ-‰¨59Œ®Ê©´µŠ&ðWª<€’Ò„)õ•yïƒ#¿àë=ê(Å †Áøžip+édZTÓVxʤäD¹ËÑÔ)ÄÃÜ$Ú?ú¨J:WéÍ÷—’ZŸôó…jwљߕˆ{J]ñ bóËè®ÆTüÇmê?n¢ »›ø.Xü7`º,ÆðG?Q)Ì=|¯$ÃóÕÃmÆŠkÆ®Ûý#õçy¬Ý±Q¬Ìt„ïLMá>ÐGM¾ï2f71ÿ£ ýÛCç_uWþvY͸ªÖì/¡Ñm"ŠÌ*fnÇaþ iõ$ƒm}Ïð¬‹Q'üp®«3ó»…ÚáxQ ï†(£ hKåš—£tOàçy`ðsã?\­ †Ÿ\Oýù5®Âž¶üB¦£ÿ•â|]0vë©ÁÑÿ®`!›Qÿ!ȱM ´üQÛÜ€~.˜_>–'3Ó{·“<‹§”טˆþõAïBMž©œPqVðÆ>’ñÀà@YÕàÓúQ‘`\gZïLº˜$²rÁg]ÇM3F |Ô;“\üQŸþFÁóÏ÷)—´bd¿7ƒË(߈Ãú#UáÓa“SçâCÿ’Yìv‘‡þWéŠÕ‚þ&ýÐÏm\;‘÷˜.¬ùã‚O(µ±ÔJ÷æ¾f…Éxhd´^€´v¡ŸW¥êc–¹üÃrµúÉõ‰1©íƒÿè†mœË[ù«V^,ÿ±à¿øqC#7êÇ?ÿøtÊe€úZͨ½PÇõð^訠W¿(îðWŽë?~I¤>~qla*x¢Ò<úYüGn­«:—þ‰uEf&T- &ñ÷ôóöÜã1d»õÄ>÷£¢ÝÒóU‚HªLGS±G¬R#‡¨s)*^c‰·²»½X»,2»Ì!<ˆò+Œ÷´Z"25“-µ®ÚP,¼Ê9]OìÝ ìñ•³¹ þJ•Uñ{•±?ñõà<¿º‰Q•>ÔÐíä]ɦà—ôplÏ„;ÖøuSO±²éå>ê”.¡(WÒ+hUñ¿VÿÖ¿àeá#úe ÖA—(M<¾Qö‚Ÿ¦‡º ‹Öâ(ÌÙTåë/6—O)¨æ@ÿ>XK'rjÆýzIýy;2o碨XXæwhâ×°mv6Âc0JßpñÇze¾V~+;ú¦~æ(Ï ,œ~4r™úÑÍ!‰HGôÜÔ°OÃõÏ&zÁÝp ·~ð(ù»ûÉ€x§{ÂÕ¸p5[y›™ÿË4ôVøwØÏæ0Gã¨,-º2zÆÝŒ‡ZëCoè°ÆëÕéä–ýÀ!E1ÂÄ ¥æ¦Lýé˜8“éGO:téa”‚mš âaÚ1y~£§¼þ«ŸUr€vÛ`½ˆ×ßË“(No©ü*ïÊ'Xä>Ìÿxb¦ç+Ý©6ðÂ4Á†¿bß^ÔeÒ¿*«CÙû>ªäŽÛõ5-P°›b×rc…F5rY?‚fVg㱜itbŸ]ñž[˜ôô µý3æ{­A¨õ 0‚ôÕOòo¥/úùø¯9ô/9þ(hæ¶c)6Ñk¿TÖ§‹Á}®&Q]ž10ž2VYM QÿQL3ÿш™ËÐàÇïQ¾íº¿FØÿöèþä"Œ1/P'9DVØ…Žÿþí³œ§p-ø#õ0W8#dü¼Z'òÕzÂ¥‡¤´v’mßÊÿ¸ 8ŠU/ÀÁ½ì'"'“µI4wâoå”V›,ËNÄ7É¥ÊÿçQ­òä/L¥Îþ<µæÇ`Ã’/|Óe¾²áo.48ÔÇŽ%G7'WÖÌé?Î)CÑ?2Ãôâk…õÇ ¶[`¿]pv5ÍÛ¨;»¬Vr+;ó®ê©'¹bÐ3ŒùµMÈ̤‚W<ÁjTù¯ÌÜæ°Íy^S?˜Åù'çˆÔ'±È¿ê¥ÆÖ\5E[”¿kã:jBjýN ©^ŠÔ*?¾éƒc>9ѕȠςšC+®µQ·Ñÿê/òw«kÓÁ5™kŸÄ5ò~>‹AD“ô¥ÔgçÀ$ã­î€Î]CxÓã7rþã&ó£*ŠïØÓÃ(šÇˆ@]ež{|1¾ü^ª Öv²øý¸œøØþj¹:É š‡I†bØ úl¼Ìàà”ðx#ˆÚ#î¿›L™‰>wÿ‘ 2{™—,§&ö›ƒÿ¸ß“„(±¶Ì›ø³M„ókck«ˆèËÁóâþ=umÐË¢Í.Æ6ÓÝCÿ/s"%èæ,™Ñ‹CÄ#¡/ÛÿQ†h;LÄÛ’ºú Â7(#ø Éß `µ·¬vnÈïð ïWG‹γ^‚ÿ¨ƒï)?Ux ÿa{nõ} þ[Š80C­±û»Yq¾ 1º}bøàÉÓÁû»NÿÄýbwǃœ›|(è‡@‘`‰àÕ¦Ò·*7þòµ`rªÊ«°èö¬ÄäðNw´ jp îÿ¬é¡Ž#ÙOi¼B2£7÷f8;,~iŽ~î‰/t¶©êô|xFôüð ÿF_fatÿi~íðGYžX%xšÄF ãÑYÔöDpKßé_2…nw˜ ñf&=ŠJ-ò4ºU}A©c¨¬ u뢧ÔåT¼×ûÁ†µâ”Å­2úÈbô£õ`ß-rxûÕý|;©Zw2ã ƒ­$~ 3ÿ|š(„¼Æ)©%ûPÍòUeRàbÖL£€u†J‚ô¿Úmhô4©nÞí’Ée{À51È =œÃTPÿ‘…;ûžû÷ˆ·¢!÷)}q3›c¨ŠX„îñ†ÎPŸè|5͈B×Þø3Ôjø¢‹ƒ©úÀ„Ÿ¥Îõ);Õ7TâÜ\–‚Óðÿ1Õ¼]qÓš×ÍÌt«÷"ç¬8úÇYª7 Pƒƒˆ«h47ø¶§X'‚{RviÁä툒ÊÞâŠ~ÜP­ø·žLHÎÐ.˜ÿd²ZEÅDøò[èeQÖf‰çZ¶+kx»ëCþÕш:‚Í(ò+a‹n¢µÆ‘þzZô42º,§ ÖÀ¨ì<Ãá­dÿ]e49ª;Àɉ*—as Á7ä½¶ù«çð8‰Qjsò=X³¾Ö=‚» zÀ‘7çlŸ|ç´–†ck ¾ N£(¹lùÊYì®Àïí ZcÒ/û—¤¥ÿnø¥Éà©$¬Î==Èjx ¯ÓÀ™£±ß±²ïàò^ð[6½‹b#ÚjñÂÙå*e*Y”õÂ’zF<ÄnLA|·?ß—ŽÛ·4e¡Vj=ßuuɧäÆ;ÚÊùæßÅ£ŽÚ:ƒ…^0@fá®ïÀg.G?Ÿ÷?‡<¦äx·pFGÉ‹.Dþîi2ùrÝM¥?õça;<ÎQ‡ˆÜ«ì0}ÑŒAØÜÁ°E¥Ñ,Æs»Ø(MC ã,h¤$Ù¶#éRÓˆ˜}™Ìg,'Ä Ÿô»J"ždC=7“WLC5ŽƒeŽ0¿6öü!Šò`bÞ§f*JúR?h_w1Ö{D¾ð ²Ë‹ê”…¡îa+õ-þã(§¢P͹ïÉ©ö; ú) þ˜c&$Ö0æŒ3êÁ_µkz’£€×zŽåtˆ–¡Ök'ìŠwæ–b÷ïË}è¿KØÉ #—µƒúAWz2ú/©+¬l&‹Ëƒ;· bROYA¾ƒ‚õçë‰ÑëïÁ'­´ò™™H²}¿ •ˆ•ÑÏÿdø”ä>Ì??µn ÙÕQd—øc¥r“úsúMò¶Þ”.¨÷ä ìzúÌ#x HkÕéÀ¾XìÔjô6OÓ ˸´œ‹ÿ˜bþÇrå†æÆ™³û'&Ï\Ñ—-¬࣮f6¶öøßõ`‘Ù¨!›˜ÕÉtcþùP£l§{[Ä~Š!Ná9e„6‡ŒÉ¿°¥ùê^#¿õþj=3³£¤ô7—Zë- ÿÑ™ùïë2=}31E+)õƒOà¯üE ÎWíÿJýÇG\åóɽq´R~Ï.;ÔáB]Ä õj÷¿Z4w+õçá¯*«§ÑT#“‹¼Ú5ÇaX ¼í•‰@]ÑÏ«3?Ê_kå¦m¤*ñ÷ü\ ñÆ=©@|È>‘Uϧ¤ÐÒc›‰<¢¾Ø@ýà‰à_ÿŸ½R¼•š Æ‹Øú œ ëde…;É/æé±ýv›¶úò:‰Ëÿ°Î/ Dÿ˜¾x zYf<èÕN g3ûYä+lb\lã 4ƒtúÊ<,ñ>Nc"éךî;&þü•Qóþþ4ˆæîɺUµ¾¡¬À=üªndGí°ò×9ßïÅXs:ª/–ý±£“ñ{×ñ߉­À WÅð|hð:ög©™_[†+›EþUB²2“‘Ö^ç£î!G±›5ر/äľ#ñ6¾hÙAš¼%Z…‹?V*c´~ Ÿ‚à wvp_Y|ïoüôp½¬x¢%2¶AÖÆ/ßÒ÷ ÷¸“ÁV Þ¡D8þÃî¿»‘wQLÆD¥ áÄ"ªíM­ËüGgþSfÞ Åþ w3vú°] [¡²ŒþWƒQô  D‡¿²g²¥7ÔWÙÊ(FþU ¢ÈŒØþÆF%c'þ#¹Qè•؆Ð^äó\ž*‰ÉÍiƒž²•þíoå ø?ú—Dƒ{4ð4ýÌs°×é©(±ûš†7+¾øì̯]jÅFðWÕØÑCló´û×àh ñ+±¥ßñFº5Þx"G]Ñ|†pžt‰IEàc˜›èbt¨õºã?Ê‚ÇN’[Ñ“§øL†¥_hÂ_¦d~m!,k.˜ßQ…úÓ`…–`†Ü‘d†øc¬ó°$aŠÝ&ý¾~û†÷¬ùWñ±Ç.f7z¬Ì¡ñ2=[î˜Ã±Ê7È^.Æüsèç'™õýõ™°¢ÿî!Å[MËìÏÛz^&+Ÿ Kä00VÖÉK¶Tê½×ß” mÁ×O9ªà?Fq­;ÉùOÏÕìÃcçžMg-Çf§Ä=BͰû—ØYA¾h]GásÉíZ*5xôÿ¬¹6”ÇÜ¡'“ÍèôC%*þÞ¾f59§ÄÝw¨k(‰ÿ°û§»£,‚¿(/Š.¢hØÓ­Æ'6­D<±Å9J‹ôTËåF ¹Fþ®»Ù‚Ž{ψJß1o#­±ÿQìq¼ä-ËݼQv…Z±™6Ìî¾Ó½qqLðÇB£>üÕ,jëüÎ ôÞF]æÈw‡Ó[Ε<Áæ?C?ÓÂÌÿ)J¯Üâ9ä•}‰ÿßÈ5ôßk,—ýŒ¬ÌªDfk2ë±qÉ5Ì3ä¯#mÁ|£f¼˜<-†;ÆwÇe¼,g¿–v•ÿ• †)1üÍT´‰òà7êã'š‹Œç(ô2O ªÉ ÿ—‘ ”6!¦/Qî¨ `$ÏCí‘q¹sçeTx“y°§™?5 OÉ|'ø«ÜtE>‰ÿp£WãIåöTäPÄ4ª]¢¸óÝ;MýG"•¶¼û°N.ôhÉLþîR꣚GÑÞïÍP‹*~s/jÏ<3*õç]†øhô¬JÏ©ØÉL‘|ü1SdDÿèC¤˜UkdÀã¶1Ö—`ÙìÞ*s­íô¿ªi­‚ÕŠþxÉŒÉîôoÀ9ÿ–ê±bÿýÜÓa†èõÂQSù=]úÇ=pÀƒ=Tú«qé´þYÄ‚í¥þ#…]-ÅüsCÙü­‘øìc3ù»nXÍâúñ޹†¹É¿:§ÕïÕjÚßä_%õ>D´d=qè†è‡Å¯¬/IôJJ\-%ÌŒ‹È&ŠP?8UÝÑ"A_OÿÄz" Ì>¢ähÝy‰ð ˆ¥DÌv­DQx†¡â¥V#RúÇ`­7Yîàù( cPìNÁv]˜—„ îŠÔØ}H¢éégøW[M©Œ" ß#€ Ó+!%–ú‰¨Iµ‡\Š/ªG,;öáÏ“±¶™µ¶ÜŸÚNÞ£.øñýØÓ—èµÈ2n Ë…ð:.¼[ŸXù::¬? ÄdtŸþôÿŸô·) Úòˆ›‹>–}ù /Q™1[ËøŒt_§ä_ÓOŠZp†GðÊ>Êtm¿7™\ ²¸ÉwÚUŨ·mN!«"] }Yi¶—j~õ*üÕïõ/yëXEþU5]^zIQ?©1ÕÉÊQ­³óh3ÕÔj°êï<(ÿðIMžr[z¹¶#d§º/¹^KI¨Eç \ѤpkÅ ÿ]Âã^Úõ¸GuoÑF ¯£Öe™6ïýVŸ’º CWf EþÑJ*Îh1Ч[€xá9LaY|ÎýZÊUŽ2†‚‡r0ÿ<µØ–ußxA]H1s>Ú´¹r˜ß\YÞcœwÐP&*{ј+Ãê—ä´ÎÒÛ¢wß0¦šQÌBô›ÀüÁ{TМCÿ˜NŽ«+µíÞ\í$ü|"£3•¬Ÿé.ø-"õ«œªŽà…ÛL–n&ÓÌB?ßÇüŽët,œÊ,ŒZ|\†:3Š;σ§ÿŽšÜɹÞå*ø£ ÞhþD&BÏóG'™M޲;õƒé©ÏP­ü?üÕNô<Ì"Ìm²Qk=aub›Zb·ÐþãrU+A4Ò‚_P^gô¡è5É¿ªd~5v ¬\gþGu²ÃLø+7´ô(ÆE&—%Œƒ~žTûR/ç<…Wé:•ŒÉÖDiE‰o¶Ð÷$Hc³­þ4¿PUò·µ˜Œ¬<Ö¼Êy"ôf^NÐ3,Ú±}ó oL!¹ø×y[þŸ|²ˆþ‰o+Ý@ÿ(ê\8¿á'©•#èççÕZ"¦jÛüíFø+¡Æ¢ÿîr„D¸BÈo¸åبÍ…°š™¨¦¾$«…²W+*©E´Mô¿ú=ýãvl©Ûd²Î¦k¶ˆ¯wQî« a>®kŸµbèç'ÔÈTû1YW¹«d{ÑŠ™£¤ÏÄŠ¤”™¨ó®€’µ;VNOÊo$´ ",«ò |Þ\ë¯uc_·ÙÙRþûŒ½îËô’8| /’3ô]äƒo}+ò9ÏðŸûñº£ HÇ…Æ:•årNc6PW1±Þ&ž—p õÕ°PôºZDSä÷ªÃðhmˆ|·qºýÄ~v9þãlFO– ðd—Ð?^q‚íóÅ,ånØMýïŸc¢|/ȤIï«© (ûÃàžþFpÓ§ÈnðLjûâ`5–Çf¢2¼€¿ kNVzh}`¸bã{ìžò×ñ›%‰©£ÃŌןj»4{þy'ðÇnT’UA׫Òw«³mÞ /õçkÀ/õñ²º±åf®t>wºlÂke J³=ö"ø£ õ)>Dø¿%k©Õça–œ§ŽÀ׿!ØÇ_›= æÄô3ÊRQˆJµ2è •™.~ˆÎÑøQZɦr£'2…y /)öüóúøé°÷×ñ²°‘ðWÑÈ­ ÀÚU§ãÒ=ê?îёѕ¬ÙB`(T*›Ë¾TWß‘µliO±çF'Ow¥Q¶™Ši‹úóxÖ$üÇ,£ybY𩣩Py†Å¿«÷Ö?h¡õó)¢ (æO¡,öu“?´Ð‹~’šü+Wzyd´ŽÀ¯­1š¹Ç3ˆƒìöÊœF3ùAôsÞÁdôOÜÄh†ÿ¨þ˜H¾R*ã±1’ YuY²{è¿{Ÿ¼«¡ô©ˆò0_4;¨À_¹Ê¯ôÑí\oý¯Â_}‡mþ^(…ï:3t”:’uÌŸZ Úše«óVÖa-6«À_a—Áf£ûx€΄Ð?ö+´ðWÉáEÀÔV¿¶pžB¯ þ*6¬k¢½Lº›‹;VŸ.igŒGt±¬c®²<­ïøó6ìì-5*y͘d 0í#AÍ2Ù<Ñd%±ÁyÅÿÞ'Ë)•`þê­£}PæÔòûÁëô§bôáJ1Îÿ6G ¼GVf€ÜTtåôo-à8«--”E™^ÿðWÓ2ÿü®VR¨ÌÿX«j¿é?2ŠsÄ“·EÔ_W}Ž £”rJMx©i¢¤˜"öªg"µÃ'ôO¬$žqwa‹æã1ÒIWjºˆMÄ«A48éßî."S‘ØžúÁ ¢Ê»}5ŸS{›(:ÄŸ‹œC‡·ÄÕWñ¤uÀi"ô1•1¨2^".ÙA°îI¨µøû5 í°$\Øqø«ä mÃW•$ÿ*¢ùQ—Õ%¬Ô ßqþê>²*¶¸‘í&ªJ‘KõI·U‰ºª™)(WquüG|ø¥(ñѦUø«†p@äï.,ÂèØ‹g0Ô'ñ“ð-—áÌê„;?j ó;À÷²BMî»/Ñy.bêXÔâÖÏh7µ”†7Ö¸®ÜÂÙÁõºs'Rò=9œonðF/2pS¯õÑXû¬±Önúù6Ø¥¹ÄÔv>´=¿Õ—çRÿ¶ì³ßG~õƒaýÇAu†ÈŽbÐ'p/úÂsNß1âÙxd9e3Öaó.ÙÉ‹u7jS­Ñ§]èy$ºs5zÑŽyÂø ¬\’59,ÿi”“T—žÃd7ÎÉ«0îM°YGèõ˜Ž()A4™Á†>ÄöþXÀŒÄ4W”K¡VªøZ{þ`~®°$•zñŒAÆd£8Jµ–ÏÆ i¬6x§éìð V4öùÝâ—€?è_~ê_Òÿq‹r|Ÿ¿îKŸÄ•pM³d7ßydH øûTÆo¢wäEr|׃z–ÁÆíC³hAßÊù0¾;<”zZxÃÇdgŸ‡ÆåJéë˜ýx;ñ})êºs˜ß°¬ƒ˜ÿTÀœoþÉ]ž ’²'«§&æê¢â!"Eòp_A}S æ!L.J½LðA,Tø»¬`ã õšÎ#S©.ñQWæ‰ä”ct7±M4t¾{»•óZ%BGÖËK壗>‚úÀ|àùfR&[=£ûÕ`ЇÝàÿ¦NãwÛè©Õ™XǒÈaúsÒÓy /)ƒµé"ç­5ÜEjðGëNþˆЉj¾×ºÀü0aå褵ÍÈF¾@m3ìŠv> ýã9enb…óþ{Ÿ¬uä ÁW`~TXäÙ½¤ŒQ¯á?âhË7Në.ú—$§oõƒ¢*¿WÿñÎñ˜y %‰œ²““E{NÇÄùÊ[ú—¸jÍéð›Xý½þW.â9öï¾hA¬ÜXß"DeÅOÍÓTBT¡ßéN8²È¨Çå óÏoÏo'—g==6rÉòXÄ*b=ÜØC0e&lE/›ùQ‘Á\=Éß)ÚÁ¤/ žk;Ñ÷5˜¢ôà4džgñC·Î_z%²9Ïð¯žJreøÊW$'"©)ë.Ôz_&Ò\sU«wö.^ó0Úo ½¬V%”UùyÕ‡êZô‰îØòíÜ?»ÿnm|\#lÝ.¢æJr-ñ÷^;{ñhÊè~'Ã5üG…pý‡']šâ¹RP{Ø€ï;‡ÿ( “U’žùƒ c š0QWˆý—Á×éABpçÓàž$ÿêo1 ½b,vë¼ÅT¨-xÛy¨žDË™e/²wý°Qñ v¾°=ä ß1MË¢†í0?…þíÙMêÚnã}ñ—gôJ(}È¿Ú þ¸OTúº¸jÆ r2ò´ncSSíÐFÝïÍþ,ªúš·¡-Vu9¹×QÅróÿJhôh'—“yGTã3x!7¸¦ *Í7t;V“;sG9jÅîLòj€´{t\ÇZtþ8ÄÄÙ±LÚØÇÄ£xÖþ`Üë˜b~OÖÆŽn¦R#œà@â£wZPëõ%áÌΠŸW#ãù‰þ‘®\ïQ€_á?’å_¥Ge8ƒÿñÂÛ€ã²ûßìâ~êèöîôüêè¼à„ÌÚݬg•ìŒ˜Ç ¥,‹lf¤ÂCºfLƒ­»ËÜãÌ­]h¸àíš ©eŸÄÞòpéP§z‹IÎõ6+×To°÷©îÎót§³TlkùÊxD½F4þÃüÙ…¼®Øtn¹i43ófÛý‹r6Ë2ÿ£óÝ;¦xjÕ@ºÍx¢¹åU²ŸÖñ©=ÜÂ伬¸O²Öl ?vÿ1oÒŸ‚†ø#•ì£LÏcøŠ¼N%ìüGoþ-_pÍ(CöôŸè1¨tIDþÕ|k§%­ºVWüG*ë‹‘Ó¬/–„ú·bþãªS!áùcÁñãêï;ßuGóÿ¸~0 óχ¨×ÉŽúRHÈéÚíH¢*j"êß0ÄÛù["õ‰²>šMàÄ7"™&©< œÔÑÍ»†¶N Pâ‡:¿­ÙF|B·}!ºJ{Ðÿ*ŠžJY«JðG)áB½Ö.±KÝÑ"A_£<¡þã#¸cÈrlg)r:\Èß]Sû´Ö¶§øªû#±bm­;õ•àÃâ{òQ£[ÞÁ&À7%…ñ{Õ°ŸE çþÕÂ.ÊHâì=\_:bÐahÔÉ9_ʼn4/c½^bg]å9ðÇðGq=ŸV*‚»øD]"ê…õ»²ú(¦Ã3-Àì'®À;9åkGƒ]~ÅŸõ«L»ìÔ¦°Ù=zÑ_ðW¢9uÙ_õYr¾Øž¼üñ¯éËZT³ã[ü˜þ¶»”}õk•ñZKpó›À.ÇÉ|«Î¯Éø?—U¼aÅšäÚ¿Ào.§~â9w¢¬ÞÈùæßÅä_y‰ xƒYXûìã$øc'Û 9ì“Eàìoa‘½àr*ƒp‘Œ‡Ô*&b~Ôjp Õÿ¬¹BÕË·´ÐrwÉîÕþ%Áw©C?‹7ibØÿbá_à£NþÐ ñóü(CB\Rr,šøSr° ¦¹‚a|௚ÑQpõ QèŸØžúÁ£Øû<ÔuØ]¡ðWcÄDR݉q¾‹+F^îXec³aÀŠ• þ£?ý™…é×5mý3×Þ”,„ä_} ÑÐÁöeû¯à9ލJp•ô}G å÷téà70³rM­ÞUs1ÿc}þ±Ú‘_u t×Pï(ŽÃÁ߉Ï^8¼éGT†7Ðî>›€ž¾±ÔñÊ­¬HE…ÉFõµ’(ÔùhIwƒ¾}wÄŸ0¾©R0u7¦µ'¡²¡ ø£¡¸,ö«^-ôõ×ÊQø+(~iÜvü‡¥ç³Ào9nØŠ1âúydrκk}ÑÏ`)çÃÑ{rj¿‹§$Æ2æ–_°ßD)P“®§tžá_mUS†cï:+4¤¿s|2°n£Ÿ¯'2lç8ŠÅ;‚åðFyΣÒGpýÕM쨌Ú!,ý 1ÿ±P¯‹ãElŸ¦è>é Q¿†wÚCÝý”ç)ô.3Ó¿$1m(ˆ(¥>Íè¾hWz†~îv˜S]ž îûŽž±Ÿw-葨­ÙÓÈÂþ³•¬Çî\Gb9~ÆžÃbç>–Çë~ãþ™ÔoÆ¥n¡Vh+¾Þ›»ëÆdæ"µea×r8|´í¢?xb>?“ˆ}‚¥ñ€›\‚†2Ö΂Éøóï6êË?ÞÖ÷óôøýs´ä?å_-ôF#>Es§¶œ¼›cðéÏe2v×¢±¾1ÊQû×݃õ“‚.ƒC¢À¿œ“~š?øQù†Vä®$g¡ ýËÓ‡Õ[Þ¤ISì_+šñ ýܤj£&xá †v§ôl0•7”ã¡îa%2ê°ÿìévRÚ}K°í­d]c!ú¹NG(ËdDEé ÆiMF×z1T•3DuŸÃàqÂŒá›`²Zà4?ìô3ã ³O’¿›Õ:Eµà‹n1Ûj þã«,à®ìǼ¦çzQf.öp>”hÊhe5 n]b¨* ñA¨ ˜ó´‹úŠîTµO£Ëí}*øÓoj9ó£èeΧ¯ÊXüBfc&}öQ¿;Û¹Þ<êÏŸ“I÷‚óùJ~OÐÛjSÐwºÂ6У0&ýwóçôL¥¿Kÿ’Wô—9DfH[Ø¿"`½êä÷Ws¾{'/-ïAebœ2ò(ºçT#µëûQâóÓ¿}#¸h'ù»©Ô8Š·ÛLí¹a50àÃð.%!ùXˆþ%^Êp*ÀâWõ›¤Ðßnh̓æ×f6³YãÌ¡ÖVXµÒV &ëZÖ[ðGôÿŒdŽØŒò#qjý4!&ž8/ýÿü“mW%˜»}Ž~þ{uyÁüƒç/òwKhñ©ÿ°ç­wTS]©Ô¨­^£ŸûÓàoÄgO¨ÿÈÅûž„îO.Úõ»ÒP¹Eý`2­ú¹® õ>D´¤ ˆáO2Y»Â‰tÑûñ´*(kTf¦¬È"‹à³-ôõ§ðtaT‡±Àíe°Ò•ÅRÄC´Å*`…%â*Y]‘Á=ÑÏg¡ÀâÀÿ¬ èJ¯ þ)–1)˰ïX³XzFçþÕV¿;ìG„ V¿Ö=#çÜfºYÜ@Þ‡uÉwßû¼‹]I«Á]¼©z²³¦ …Ó°kßÅpbÙÅzuÞüM²/–t xéRÃÑÅ"2èˆ.ñRŸM*þè„î° «±LaÏðy *…ë?F+mµº|=1Yõñ޾èËeÀ“Ÿ‰/—éß´hÂ…¼ÓÊhÃÑFN€ +‘Ÿß ÿ±Í‘‚úóá`¡1ø‹4è0ž¬µü7 Ó€ùI±À!°ñÛé¨×T^æ7ÞÁÇ]†QZ@ýyØú1j+ч瘥è)*ùWGõXËŽàKT½¦ä6ֵޱÍ7«#Â…? þÂ<Uµ`»Óµd!½€ˆ°3áÃ+Á@ÿ¨Œ2p€üÝ8Ôçõcýëx£*ô.¹IuÞY„Hù ÕY!Ëpú—ÔƒÞÂÜÆ’ê…©×Øgt¡ßîzËÚG ú|Ãýc¸q—ÜØô°>IŒ0—§àY^†ÑÏljj( 'Pªpµ¯ô{Òþj õ#ãèF~ü…œà”æ'òz›¡Ó'«üÕ}iiŒ<`®aÎíeP¦*ÛÁϵñöLªÉzJTøLä1å6ÛÑ{vºù=ú™<`^Ó ê ûaû·s÷&‚ó‹yÇ’ó¿Ø¹ÞFe—… o"¾÷ðWúJxÃÖÔ{Œ%ø |]-k3V>'5€—@ªÇÓÃÙvåé+´[CÌÿx¥,ÕrƒÞp> ÉMb7Šwô•Ô°çã:ׂ>Ø3­è|ˆÊT©¸Zá¯âÀ_ çýœ%7…¨¼L'žátŒKÝWÞõ·FK+€þ%[¨üîVwó-þ#¾åN%H]£Uü÷©ÉÉj:äPÞÈÁøàä|b‰óŠÿ½O¼‰BÌ‹{ã¨õËî©í)ŽòN飪ZzU­VJpZ×9*©Õ jõù»‘Ñ‚Ç{Ç"mÙR%aéï‰äZ4Mªƒ•§ZSÑ€ùëXõ÷ø«fÂîŒû(ÈB Ò—“ŸÔVÉ¢%„ù() ‰®èçË"Yÿq…þ»…ñ~ļU‰‘ýõlèç1õŠb 1î#"uwðÇú‡—'ƒ/è—ŸuÑkËD”ÖÕx£ Xb»ÓT2"ÌŒr6oÎc˜ÖhXÆú`œ„ú\Jó½dsÄÆ‚Lã”àŒµ"Ò¼÷a÷ÊMÈ[^ë¼:¦"Z‹PVåçMþ¡m@™i÷·Ïø†§~¤µKà ŠÈìû ‘µ sü5þêþÏËýMêóá?‚ŠÒò¶Äá]¡Ó$˜m&oBg}:qÿ{Þ³Ç †øè§ú Q%\þj¡2Ok r:q¾Ý!±WÛ˜Šêwh+îèO)ŒMزJr˜Ç,Q‹ŠÅœ0\áõß½èÈB¿g»ÞfÞÁÎVÝG”ý7öÁ¶s#ጢÈDêïÐ?ÊÀå\½@QÈX§Åø©ûLµø£ùCûÁñý@Sõ@MÁ«©¡»d4t1*£P †×¨Áï˜ÂD¨òó£Âúõ¨j|˜·zà¡|ßîyjx±ìäZg~mm*±wб궃ÉÉÚͳ/…¯:'?cSkãó£)„|,ÕÕÜ«}\Q…lÿ°õ2¡²GéËò§#cUã úÅŸdݶ’YQ,ânì2ñQ ºsó\QUÖçäú€M[ÊwºE _c™q‰zó\Öê3ãæ’o¼Ò¨GýàyÚØüÛTÄd7ÊKo1Ò¹½ÔÌÜO\Û§·äTfŠTúŒì¢Ÿmlç|æ×>@AòÅ̆!ê {çËŠÉ7Ëd C±x;4ß¹Þ ÅG}Ë“°û_E3Å6ýSÙÐõª,õ¹¨ÜÏNýÇF›ÿ31ÿ#€®UÍMo☡<‘Šèç…—žpJY¥ .sÏTbòîrÝ‹õ®`ŽÊt©w¡–E bCsXÄïv.ÊÅÊIþn â„ÖœAºÚÐoäÇ·*=éË”ƒù^|-±®™év5A®Áº¯&£Ó"º= _qÄ´-Èë]´ð:¢ì ÿUcpE î’݉hÜUv®Ìž…Ðl!Ñ=£•¬Åþnë»Ñ?J¢¸0ó]Ïå|s[s\pTEos6Z6šÇ'Ë þ<5×iרý;ÀÝÆ7¤SÇyüé}{ÿ¤OÓbýÔ aýKqMèÓq¤³Ë£º;ÚwSò¯6‚®¥É‹­ËüA_2ÙÒ½_ë˜FyÿQ4ÌsQT¶¥1Ïp™|„9Nv…=-)ÚöbéAäþ(–¿¼¾©DE»;ë ~œ#w¬<'蓺^¼¾ª‚¯Vc#›ó=Õá¯RƒÖ­a€¶A$5¾Õ >lSý¸ÉAœ 赓gÓ„þW]Bíp õçvVÁC°iNÂ;yK?›ìâvô†Úgf®+3EÐSþÆwÚÓcæó´w’õŒ™½…ä¾õçß•‹øÚdL¹ã©'ÂÚ•6>ûÍ„dµzÑ×€wª‡ëc®6îaë»™·ñíC¹Óã¨u< ã4Ãùp—Qÿñ’Hàï×k©Y×À_y05ªÝF¢W¤²öã}ãÑ¿ý.™R–u‰ùç[ˆ ûóô‹#â.öŠ¢Îwo£âåÆÓ8NNÊqDŸFÈâxÝêf 2ͺ¡ƒì!×x>™»Wè-ËjdT¶*5`¢‘˘–8âUˆùƒ;ÑχÁ¨Åv䛿­œ6ÝÝÆ3zM «‡ÙÀZC±ÒÖT³5µéñ]à,“Ê‘Dtë`ž_.±ÓyÅÿÞ'‹1”kÎ_w‘ùç¿—×äüQGôó®ê95ùW“;}‡#úUI 6P_‘#™\ÖàÕ>:|è'aw"t![ÊO=£ªj7xÇrBh˜?¨©ŽPç7ø'Ãÿ¬…Ðyr—‰óâ“fð´*)¾ä´ÐwJKLÿݳâ¨êþ†ý[¦ñÖŸˆe¶‹{’ÁY@¦‚c++ã|y+ ë]A¼ŠÈ%†ýÙpþÜ•þ%ýÉÏ}E$>›5£‘'Ò+[Ö6ÿ~PÄÌœW?ñ2Âk¶”qØÉ ":G=9õ<^³$JðjÝLsŒÛîµ™Ø:«žR³qâ?ýóTõ ÆnGÆÍ&pÃy1‚˜z>up7PÚÀ Ì/ùÂm%äß"Sf:þãW•>¿› ‹;’»•‚ ýúÇ8ôŽ1òo<ä0Ø&]^sÄÁ{®ÂO-àiy‹æZ@8[<«ÌÖFs¿>€Ö*¡ÁxÃG— 2RE¥`þÇ|ì^#¹«¶ŸýWEwIËŽÿØçhDýùH|Ï@üC2®füÄJï©ø x¤Ò ¶þ4ü•+ úe®ùwâ)¾i„–T »Ãejwñx!'z‰/{ø &Eá§~»%ý PqÛ¨Nvl ªÐò;Ò Ÿï'«U…¿ºU8Ìsy¢˜AÞ15õç/øw7;³õ@”„@æV`zªÃRéRú’ÍhEðy§Xs þ#¿þT =ÿ£.úy ÐîC½ YMÈžËB¼»Áh€e]Áì£`†øìU;ãØ‚gÍDª[䈇ÓÂàQ¢OïœõÚàûòºq í}9i¨%ÉŒe}jú ×¬0ÊQ¾ý£ ýF<ñ…‰ÜrUý# ½æ÷q¢òá©¡Àö»Á3­”2öÒÛ0;+ÕbÊ_ú'ÞäêGà?ž`ë/¡Å!ûúÝhƒ§¯Pv«\ëuΔb|…;8B¶ÙS£þ|Ÿ¡29þ Øæ,õñé§ø”¾Z‡ézèŽíÁ.Ë#•Þ!ø«MÌÊzw#©!‰=ÔŸ'µ*á5ÊP!ÿi^eÌÛøIè(‡ñíc@ Â*d4†“ÓeK"º ¤îÎSxX­ 1±ý‚ô‡Ô\dRÔV&8Öµ6{X¬ëæk4L˜?š?ÝðÉZNN%Õ]1›ìþçà bq8oÉÿõ_mv$ Ñ¿ý™£vÐäÀÿä·&¥B©ŸzSÍ¡%Ó¼•’œOGIºVeW©wÂKEfõ§Ž“ð åÀˆÅ±Z¯U?0Lqe­V.«õçiÔðzZüzåê(ÞÑëÀü—ч‰¨zsºªÅÀæ$&Ó³±x@ýùñ_ÿxˆ¯æ5™?Éá}%¹~qÈA)ÊÜìô±xƪü¼f¥+VtÙ ‰¼×à?ÒÓµ¥0kïÀØýKâÉ0é;@:¹õdZÙV|§NEOèã}ÜpKLA?˜Œ*|’8¸ oøj˜«`ŠØDì°§cDåW“&“+9Õ4Ø÷QtòJVIþhL^€­g.&R˜FÄ‹xó˜Â›w}=ÞÙ›^^͵o?_¨cœ2Në©{麳óîŽZV•|\ÑŽiñuDþ5å ï2—ŒýO"Ù•on𲘵M ÓpIMa©ãÉuxñuÄsðãaµ^)Í~ ¯üxø«ä;Ü/öÄíÐ5J­Ö€L²=èçîÔçäÄä•6¨¼NiºÕ5‘-UÚ`Æ¿±"ha†´ŒÎT¤ ùÉ\Ç&O<†¥Ú‡gº «“>ÉŸþíÍèâ”ÆJ†ÿN”íØòDö×ÈÀZ"mÌõRÙêIצþ¼ §÷ Ìq<£ #iyÅÕ©´ØD¥E4"àÔôßu³Œ¦à¶`MºKÝÇ“F‹ Ô†‡Zo#õuÀ·‰-Æ3õ ÿñÐO'Ç–Fak+ÝÛMª¼ŸÐÿ}¹M^°€“9ŸÛ©)ñ§g}y¹Rüå|q”Êe®´ëu’vµ{Y’ùƒ^¦›ÙÄð¦{%ªgJcñ˜« *ò~¦ùWÀÔE ôûÓq=¸šnrA}v þJ~t/ôøqøÇ6æò¯6Ò¹xüŸ‹•‘é³tÂZ#x¸©ì%yÌö¹"*:ñ‡r\ËÌ™«„?|á­‡å¬üè ™Ð¾‡ùõ©H,Ï®¾Àï§¡‡d5£×”@v%ËÃî©SÏy }©?$’Iµ$ZΠ :•ÜÅçlc¶bUðG;ø¬U–ŸYÄšBý ³AŒ[p ‘5‹¶Š¼þg¼U)Å"çü÷>YÏT†`K|ýü÷êò‚w*•ÛJMõžêªeÓVMÁõ¤{^ò¦¨/ÁÁUîÁ?óëÏ3p;Y«õ`c¢èßñKIÔ<ÊfjäÔÆà?2ÿfýyCgðG]b†ÆúúCÕS¶ª¶~]¤dþ ŸØ¦ÞûõvB|å8«"gìY~5ÈbºD$Xý£ºØOasCYð!íéß—_l ñs¿ú´±6ÿQ+½šÌ¦¿‰ÏýaòݰP.äçŲ™RPjV¼Âñ1Ô;ÞŠßð“[¨LBÎÌ"²²ÒåÖ]ß®ïÕóž¥Òè8ßáC<žUOaÿ’7êrÎf ®ì ™ROÄ2¢®©()‰;Á±Oçøðµ8d_]æ;Fˆ2¿d*+.jô’‘xŽØdeF£¶£1Þ䩾޹‡>‡Hßäz¿â9oûÛä³¾š‡[>W™ˆÿ8^[€oµó¯ê²·:ìçOZ×µìd6 ‡ušF8‹^ %( ß^þ®§£!ýwínô“dOÞò”ä7$S 6½5Hkˆ¤ zô”ŸÔ²8HîêéT¼þ'}¢öý§ž-óÔ¿ˆ é| ;ôüÝ(D/û¨føÂüä4U'Ьc\¥Z/;háOjVŠ€mþ„é+ï‹þT'…~ºO”¤øûúœµ5XÜWÒ „znåÅcò,G rX“[±§ÔŸ§3ÊòD÷Ÿ±õ7ð•8§¯”S¡VlBýGu" Gtd¼>z­§ƒ¿ò‚¿*Ä̉QäÚî6sX}ñŒžÆM¼Q*2¹ÞÁßm% i£hÃB­·ˆü«ÚøýøµNðXÏåG㙿'PxòYÿqg^E–uí[U§NÕÅݵqî.ÁànM°ÆÝÝÝw  à ÁÝÝ=‚;ÿ[™áFH&a¾çïaž.œœª:µe­µ÷öCÕšþã$ýægпÄê츀¯·r³7ä \{¨þ»olã”ÜùZôA©F&Ú]Ï…Rà£AE<¸Í.cÜ5æetNkˆð;Ó}d\üy.Â`jîÁÃÍuÜÀyðç_¨Ý|A¾eŸ¿W64|˜‘ÕÐôG!å…çXmžiH /ÿƨŒ«¡ÿ.†>³–ÃlfþyIÎZ-lIuiõdXj”±7E}UÂÌk¦â÷„øº"xá/dGý¨sofÔ¢þ£!Ï,=±X8¢‹¡üÇ ¥;ð2’}4%Ú3õ@ÃÅ~Ÿüc-ŒTTð{ìWaÒ»ÀŠÜb |³U4YáÔ¾ˆet§¸ XÌt\ñ?÷a£í«-DuÕVÿ¿î¿›D R\Ôä1µ9Áýw·Ø²Ò¿=¹Ú—þ»1¿ßº¨ïÌÿ8+Ð ôæ¾K¨öV¶á?bjµyj"5¤kWtn'˜  ŸÛÀSZ,ž‰ft5°aé½´¢ñ…O4ó§ÊKú—<#6ÝH¼» Kné¤kÔ!Ážœ ¾Í@†ÓCèè‚—Dckµ™ÿ1„é)ú° ð)Öì½v Lw`8Ĺña0²ÐCÕ]< óÎF´x<ð«šúF¡ð–Ô‘«ð™ˆò]‰”â?á?,…SUpŸe [šV%Š¿«Óá6š“{xâË_ˆX1wV~š1Hæ•ãNÂØ˜ø¦µÄ¥}¨œŽÌçP ª¥@å†ë±õ8 u&}…Ûð§7è¯ÆðT–cëSÊ£ä1ðqnúÞ¨ÉäjõsSVk]ñƒQ=V:ŠUŽgü‰;ØT+îhvc–»‚ô$‹ñãz«“Ç¥wHãˆüBîàE[m¯‡÷în-7Örmöz~à ”(¬û õn{©õKE nÍ×ÀOÝ£7×ì¿Ì¯Ý¢ö‹Èóò€ÔÜ"·¯;Ž6é¥ìIƱõé*¯ÉFbú—tEÝTLúòûk°¤@êYÃ?—×JLìNGò¡mðx†Éðf)Ðê^”°2yÍŽ 0&þ£°üþô©zc&5œÁ¯Jâ5Ù Þ±;ú(f¿2‡ùç8MÝÀ è¥gC¿[¦çYV9Ø,mßfßJl J`8štÇêk&ç­ J9 ~•\ÆówðŸû°Ïö‡òÁñãmmÿëú„Ê¥¹zþ#™¶V±Ôµ^¶òªýn-õ2ýK~ÿˆÃŒaOQx2¹¾CÜU7¨_”.Ê]­H_°KM jaίã"ù¬µ¼@9ظ<ôO¼Nÿ4¥œîÿÑPø ?52Ü>ì’Ï©ÿ¨#Na V`‹f‚eÇ(z/A(O=v£“x§¥Ñ©™ìÜÿÊþ|Ör=öøü{zÞÅúHl÷Øó;"/èiñ9ÊkN ô&cÛ!’‘¹Ô@ÿ›šûw›êÄÅäV‡£dåg‚ýkáÏ£RA?V7ð¾YøÕQÞãWœÖê(™`O½©³+·``Ÿ/·¿ÃGÍ庛+‘MíýC)¡f"»žµXdÞÁ^|ÖwÉ­üídòTÄ›{È)Îà—Ç/º‘=5×"âºÖ(óµøð0Ó.p§ñoeÁ°â uj¯?Óîi)}ì±1žàlü¼ýP‚RzÆüÇe[úÌ´² Y|* WögÅT¤5Êžµ þ¥±Øç¨'oŒÙ‡ÿØÚ¸‹Yü*|4³„þ%sÙWA¾~?‘ôk®ÓÛú†~‚yá?òšé3rÿQË8DÅ¥VÝŽÎë >ô¶è,\Â=é×J&Îjk-(h¯b R7^˜ú¼KòÕˆ9AÙU{\#@EÓ»ö¼$~æ0_;GÖÆç¿×·ª‘_mÕïS ê RôUÏIŸDw#‰,KŸÛip~ؽ¾FlzŒ¡Î±š´ÍdGðIç9ß_µ!av¸Šùƒµåeð«:dQßá?öâ­™w’ŒNYÍxæçàž_ëô¦\÷"¼åN²£3ÔüU’î¡ú—|·mU••«Õ`Í>z%º«<`.S.³½'{æì ÿì=˜ê-p̘» îcw0–Ñ vê!ìtH?ø5Ê3õžüoç)àÇŽÐñp–¹3üûS˜ô 2?üGFêÀÅ60ÃÜ.¬1ÃRrýKN„Ê?¼ñåÐü5 ÏEåÊ)}ƒQÌ^‡9Ýã¯ÕGs•v?þÜš³^ÊÈn¯dæ­Ž+Ûݺpº8Ná9*a'‰¤D_ Á.ÒëP0ÿ¢Ê4•.±©’h_€G)f„ª÷45ò¹¨ì‚~w0±á|ús|«È­h5¬-û¿ÿiýw9–ybë d s.ÿå‡<ÊMêÏ/«.ZjôWXe‡­"]só¨=è_òù7çŸÙüñUak3ÓÍé‡zEͬ¶¤oòP‘–xÝ‹lä÷ôW™ÄkÔÕ¾ b»Q2­v½¶rþ£¢~[{O§õâT4û—¼fÎbMñ€³è¸;WXæ&jh!ü±ÿOÈ=òÙ _µü":©ÚiS˜_ÛˆS½{éŽzõ6õ½™9íqå8ØŠK°,/E%²å+"(Êg“T™Úí~•œ¨r >"¨SSvy Ôé ˜†íi£ïÀò–Ò“hµ£Xñ‘º“ïè³sk(V£¥7ÇXDdK7 ö{_š€ÎëgÈ&‰‘âWƒý‡]N ÿHÚkƒÙoƒŽ÷>Gzq•KÉâá?^²š5Ï|#ÿ»ªûˆZÂr ×* ´A ˆ?¸ëMð`tü†›iÀnã¢k´3¿+ÕkÃ@Ù׳çˉ¾2?ªF„üÇ~ú_y‘H˜Ž¡x±xjÔ¦ÔÀjgÙŒ²¸¼µ…ßdF‹tÛ{&èèÛP-Ö/jŽ%ôoiù*"ìãìAð,ƒÆ˜Äó…@¶ë˜û©Õ©Rék:Ó¿d—ÙÆ>þ¯ôÔ³™HŽÄ¬a¢äMtúŸÌ¯]Çü—Ž;ýÄÖD)æ\8þ)Ê9™‹áªîTP?8G)À*ÛmÔ8tÀê¢~ÂDSÝôïŸc(ÇÁ£‰”sé[Äsú2¦P¢¿j,’ƒ_P¿£ŽrK¡¾ x 3qKº Û5X|¥ÃÐA51˜¸öNsÄÙhæçÐï–ˆ=g5q”õƒ¯ÕDô}°òþàD×Å4lØtâ2æ8‡Ç†eÖˆïñÓ^ñvöE·\7Òþ»É” ðñå2ä¬hЗ¥1üÇw} z¢\úp¸îD¼Y4»ÃÓ­á_FÁ Ÿ¡þ¡›È£çw¼¹!Ïä´Íýî ¸üÉDãY˜cµ Ög!ök3:åå0½‰ðWÀocQrƒ_{ñ³§áCNèí连á_¦v}±Û9ñ7ÞXÊÏàt‡Éf¾Ë6àWnj̦7Ûï3­£²±ÅkVê·Â´‚_=DpWüXù ÂÑ=ñfÖ»¦B„Aÿ’\†Ÿ¼B-D¦lÛìŒ7tvJnìc+ n¶3[æ#¢¸ÏÛrµ6Û@øóæÜ•' ø[ˆ±?éÉŒš :%ÑñÎ1û⋎ÓÇcñ…X8–êäÓðH§XÓ‹óýPëf½Y¢Wy‹HÂ…˜ý©~Q.C÷;ÆèG¥žŠís¢ëøª+ÒáSò˜[ùšåxÍ•¬¶‘¬¦ú«îŽíÅUV)±µrך⓺qf‹Sõ‡.EOß®ftS™ÍóðçóAˆJ™®Ô‘÷ÿkE%’?ypˆÿp¿J@ÿ€(¸»¯Qj¤AÿzŸ#¾F&s1Lˆõƒ~uÁ¸Fߪ©ðçn0’õX35|]%æ;¸8ø=ÌÌûïB^ë,§£›g¼€ÓŸEõÇ7øü>L¯½–w$×ìoiÏn$²;eðƒ±eª†r‡;Ná)eš6ÅK0ΜüëU£<ùGkð«ãäZåì­ÌñöÝÖDtû³Ó¿ç'ÿJÉ›t],ã¿Ä=ñÅjÇüç>xÙR+w?.ÀÖ(xr¹ã/~ãCjåýÛo’Xõ–þê ­:ÛÒÔ>…£÷ýµl¶o¶Sè)]ÀóÑmDh›ÕKÊHæäé´nÚ¦âþ^Ÿ•Tâ­…@S ±û¾Pœ‡ÿ¸Bþ‘_¿©}×ú¡ß}Mýîeå©RZ\Ǹƒ'lÁÈ&óÒªüÇìX#jºëwã‰èøÌ–Úxº7wæMI²…xÖ꿃hþ¬C,ò¼ðyà¼Ï‰¯aÞÙˆnhle ‘¼?ú] ‚±ì-=ÙKa–ƒ¨ O³ÛØü,ê\lxb­p+^Q€é ¢·´?»z%æ‚¢Œ¿ò!rlHÔ¼†=ŽíN~uˆ ¥¹èiÿĤJÕäë©'†'œ .÷œQ#ñ@SåažŠ+z y>ÄÇñëáHV£ùª …ï.e]ùne®6hÀÄK¶E:M<]Lá-ùL#ì›»õOWbëU°>Ì£*†Ú1-þ£”ãÍ ¹ƒ7é_²U ÇwäºrP?¸Üsy¦|ÂÂ4g½Ex°'XÈÒø2ÁókŸRÑê[3øUGò²|Õr•2Ê­{ʦ0+vPuÈ­°nÕÈ{jÉ'ºåç¹Ð_mF‡ø•9Ëx%g ¿º P€;ñÌl©\Çw>Ôz†Yo¶¨Œ7=…g,ô§ôÙ]¯påzSPÝ]ÁŒÏ<ÃGÆS9—Úo¼š:o0§#R7òÊí¢§ãÆP&)§¨ù¨ Õ=Å$ì®3:©~¬Q =Øx8ê½tȽŒŸ›A-S³¿¹‚Lk6x˜nt'Æ÷§ÿnHýà:åøU9y[÷&ÿxºœ<¯ù‡ ó? Ó¿ý+èßá E%.èĹ˜ƒþê#ö<ŸžU©©^¿M/ÙªôÍœ¢g(‹Ò£èªŠÿøÁŠÉˆÁ.)aVì¡ÆõÛ2­ vò­œØûõðåaF‚š7%ýw_ɱ†+yRê æ2]÷!Ñð«—šk˜õ¦‹:p$—‰ð«ã¿ëŸ¥q|f5þGÚR™Œ(ÿúâ©ìö"J©µÔ”ìA p\¦4ªÊ}bã‚c1«ý‘S5ù‚˜çvµ¨¬GÆt¦‹×`CàŽâ?n2©c!ZÖ0é'ñí3©gWá?,$ux¨nËÀ¯¬hê1ß{iC›rNªXåÔh¦ÂæwC­<Î;–=!Sé:ùZìQ×ñîùá?òÀT4â‰Rµûài ´—¢þ£*óéçx5pes|ÿòœÌ®MØ®.©l Þ’3ÙÙá?öÓÉm4Œå@òºÄV%Íôîhu¿§7ðmjC'Û—Ú¿À„¸‚jÝ£wd~Ô½ÝM+“‚ÿ¸ÎâÈL¡<¦ãVþÿpÖ–%Tý¹ª´ VNý7?6 v†«ºV›þ‰žÁüÇ9[k¦GµTûPÿaD•Fü³R+7µc þÍÀ7Ñ3ñºzE™®\ÒJ‹RÚížšDÍæüF¼JÈß!dzÐÂnØ:'øË¢·òVÍ~•Zdcè¿{U½òåÿáÓmå“Òÿˆ<¡6î6§ÂÒn ñ'ñ)UÑÉŒ ˜þ‰®ÚXm ùÇ#¢ÁM XO‰æGc埡°Y€¹D¤€îÔõ˜Íq†#Û`Ee\Ì!NcÐñä@mªI{Ñ]åýNÉÙmEÝÄ2¸õŒQίÕ47˜™þ igy¿ŠAx³ÉèRvò¶º¢RÚZtž¬+>öy¼R{1*Rþ#½RAMI„?™Ÿœ/dÒ¿¤ ¾)HŸKÄX-9J† Âã‹|ÀÃvé—xf•#œ?¸N™¡µänYÓ>,þüѾ¥÷þFþÑ‘øøž¦¢þ±Pùõø¾µä2áorâ;+:ÞÜ»xÅVþcÙÌT¬}ìù6žî|ðíedT€©_G¿{X<ùÑ><–W‡þ‰É~é¿»Tí#ú°›œdVÿöWħ‰É/ŒrÁùÇQò„‡²1øÕnØ€Dø¹|r\£¯üA·ðúáNwR56‘TGbw0š@¹ûz^æºA¥Es³.U ÷ÍÌÆKÖOclÆZÖ‚W8ŽNn-ú«Zúk0¡«µÙz’ 6ƒ Ò[à«ãýÓ’-ŒÇ{U6ÖÓ0=ýKÞ›cŒ×r¤ÑÞ8g¯†—¶ÅRôdþGØö%ù™ˆª*’E½Ó¯HbïQxðiô6ß+>ÅòóО 3šŠ?Þ†fù6ïµèÒ¿Ý®lP6ÀÕ#ÿ¨ ~;“³\‰^´nàW-áøÀö`þùcx%ðßP>yƒ¬ÀIc§r/ªCº™¯Pî¨ßáSž’3>”‰`Ì–ãÅzÑ¿¤•™ÌQTÚaRS"{2ª:íTz[ý-·  iŽÿ(CþQVlíïžüG6¬H ÞÔ:¨­/ê Œ¤öÜdÌÄô>YÃìøuàWƒéqæcÔ«g¤£½ Ï,¡lK¦ý;œì8…é5S¤'¿ïCŒG?E7”=L:wG3pÄÜ Ÿ²Ö¾Ñþ|²9º+›ýš‘À,C“Nö¦¢iºšû  Ù„{èü}Þe˪~ð¶­™’9Ì9‹þ62‚_ U/©õ´lšŸR™UöÚꪉÕâj/õÙoë¯>Únj{à?þB{øÎü,þ£3AšÑ¿¤›vžŠöb¿µÏ†B‘“¨¶iϪI•´ª·U6«ÉA…Þ3ÿ¼?ñÅ5z ±[ô¿*/Ty“h¦&¨ÈnÝÒï¾ué$Ðx¸ Ê>W},ýK’FËü‰ÿ˜)Z_­o·&PÝeÄ ñáÇâÊû`úE)Öü ÿ‘UN†°O$¢WÂ_XÖLXÍ Qµ7èEÈà}ÀÍ£•Ý«»a2iy¢¸‹±´%àKý°~W©€»+¦sdžQ‹µüj Ë|òÓDÿ±©Ú»€vý”‘šœèwë‚MMC¡–>⓸):u1‡Sú²ÏἯ™ä <À"»íìÕRû2ÿCD°ËÊl­?ì}r9—Ìã(»¨I†Q|ì=–ßW[‰ÿpÃÇ5äý÷ÇÍ$î{- bK[;ÞÜn·•Õv‰þ¬6\¥xÒ&ÎÞ`|î|Ðxìç7²‡0è>T”B³|48ÿ°ú7®¤ÿnøùƒÀ¯&ƒódFõ$_‘CØCeì[Gòm–UaÎìQªëÊû謕YØæôo ƒ…Õ4ô¯OÊw²ñÖðç+Yï3V51ÈOvÃn¡þ£ üÂ^t§‰ÉªàS¶ÊŠü¯Â'm‘VWûŠw˜{¨ ùÇ.bƒjp$uñù`+fR“¸žN)@PL{¼Ó`xšýØú*܉ÁþÛ³ø"ÿ1AT$ÿ°:ù×EðEÜ/ÖÛB¿á„DÓÕ¨Ïb?A?“±Öì®b.Y'Ö ª-ÿ1Øq¹A¶!Ê6êBËPuYOÞ7È ÿÇœÌtؾôX™Àü(/,üüÇh8f<Ëfº­ÂW'3ÆW²ÕÍ܇ús MÝ#TxÏäs¢õ3tulGdÿ'ùG"xîö)diì@Œ¾ ^KuÉ1Ì#îÍ"‹PQÝAlæù3»Ü•üù“V0Zý¯Ú1?jŠpEu´’xw)øýY0Tò-½KþBõ” ì%ù=9„éˆÂî)äO‰Ñ_UDõU¤”ݨœKOòYTÀ{ø»^'jN‚ÿ¨Iä<T%QJ©åð73ÉÈ1ÔŸ¯U=Gþq‰êˆòT©ŒÆº•ãߦ¢?(?‹¿Ñï¾U¾‰bT»æf?ß茸-èY’~„Gå=Ø”êtó¸e¦1>ÈöF*úÖ[ó£Þƒœ}ÄÏ—€E|n~T{æ6äߣ&å ¹O ž—j¿åFv´ 6 lñí“àS¦Í©1qE î~õ›¿Œö#=¶C_òDQ/tŠçP ¬ëµ~Gn‚ñžÇîF›ïEq›ú¼søŸ‘p xÕùÄG8G¨ù«,7‡ê_’T™¯ì‡¬! Ô¸ÀÛs\ôMIa•÷ã?ŠÑaÄ™þW3˜'uŠúA?s;ÝÃV‘Íd0Àx#Bôrlo7õƒqð§_ˆõb#ÎRîj¾Dǵ5ñ òÉôÌM~µ‡ù~nèw+›Éý[p*á? ÏPú+oj Ê“/[õ5É?Üà?²Ú3ƒ€u`þàvc&ÝK¦â?æÑ©Ê'íO/öôøf¨bâSžœ«ZA…ØÏ nW¦S?øÙekÔ›1õ‡x£çfSê¿§P÷7=ìîø×f=ªBΘj‰æè¯’È ð+`õÎã¥Ë~.øþ~’úó§ŽŸ÷œùQ¿ÇK;¾Õ–†¹à]ÔSª³–VóT,ýú![=øJj?²…7¶èUWü\ïþ×^o}\|Q/ªJOt×.¢ ÖR»«¾ùÍ>+•Evï2úÝ5Ø™Ùâ½h§œPãaCiª-.‰Ëjd}ÿ~îé_¿Ó‰H-ÿ8C¬U ã£ç•`£›‹µàNgÁ¨KSObþGšhñíáÏ¡¿zzå†õ4¨;Ö!€31”¸â!èõúnÔ&{zæ »¯ý)—2‘‡ø!RÕþM?„Üd uñL±=·É™’ã?êyºƒleТRÛ=TݱøˆÅ/pÿ`v±Ñý°ª~Df­Ñ -ÀÚ_'öOFf~Nc¨è¬\hcü]&æTÃân€ÏI½RɌړռb~í~²ƒ dLñäQ<@*XÓ nÞdç™ö#‚ס¿êo®q•ÕØÁ©Zü§ÉçÜ¿Uš·fîp@tY‚¥8g.I–˜‡è¡ãÍ Yö­2üÇl°/«WI.bX/®Úê¼e÷2¿_#9…~7/|¾m3{ÿ@ÿ«Øjø Çyø‰d‚™ÉÔà´ñiCØc-øˆÞäë`¼ÏNä­©"ܘ é¶Þ4†ÀŸ/Â=é/Š$»ªK Ïðžô_`hôO4éžõ’YBe±R×ÌÆì"òrø„0í·à?ŠsWî†ã?þRUVÛÆi«åeV¡žÞ˜_Ñþd³ÀSÙïÒqÑZåç]¶ù ‡q¦žØI?†ÿ¸GÆÑD9DÿöÂàW×T©fý­}ÀšŽç{aQÇŠÌÌÿد&Àâ¼ÔÞÐ=ù‚ø ¾þùÃÿãïW¨sÉ-Þç\ Î?öÃñ‡¨MþÑ  Ú¢‘ú4‘JŠVGÌ?µ™Úbta/ðËÑ_™äٮĭÁ®º®?âœ~wiÍŽ3Ù?Û†ãiÖˆ/"žì"çá+s‚ÿÕÆZW 1'ÂBWÇ2{’ÙÕ DqÕùÄä]°È'±ôÅ,¾\þ|©ì.‹Ó·*±ëu"«ØDŸé_Ò.Rÿ‘^š@åÆð–Äf5;u‘Qs½×7ÈͰ6ƒ@¼3a™ð–Ýd«¹¬Ýk!'4äºg+c´®Ä’èJ¹çǸ¾xˆüd€ùñ»Ç´EÔ® «Mv€Èsÿú0Ø/‰Àl¿òÂâ› ÞÃQÓ&ˆGƒîl•=å8Ù|®|ôm0ö?`@¬IßgÉ®ê1åL-‹Rƒû¯zà?†ƒõ¥‚/yI^§ïÉÎ4øó²Æ2†SðÜþè¯ZÛP³f¢Ì=ÔHïA‚ÄÚ_ø›àWùàÖ ð5é¬{ëvYfb-ò$XNcÐ÷ÇøÔë%7Þ"Ka6:6º yËMª^CîÍæ¢r*ö W.‚ßjˆ¿NgLg:**òÅäø‘ìp¼Ñ¥5ë­…ÝJ²žŒÀ&Âê¯ÆŠRÔY]Á*€K=ÓßR¾—úÁmèwÓÐݶý¯\ìûÁæQq-×jžWpeJ£’<+Z9¶G7å ‘S9Î~Ö²º‰¤N|¦™Î€OšZÀå;»?BZŸ¯#ךÌzª1ÿáÃüµŽõ¼•mêwbž{œ~»‡œk«p—©[[˜îFþ±š\&«]Òå݇§P¾Žw° Õ6%¥Ÿ^ù½ïž¿²U+È[ÞŠœ¼*“wwê¨øË OáBýùWÓ( X{Xü{°òä&Ñű½÷¶ñÊýÙßQO= •Sy#j«ÌàWVG|ðuÌ'Øè©F ½ÖW›ëÉì¦ã«“ã8‰ÞÌ?áÏ—);˜U@¾ä(Fjt//¸ª^tMìL…_´R ìÓ™öüê¹ñƒ.ˆ³áh¶é4ÄÏ•!­"V†âÏ÷ÁŸ—­MtSL^ûõéø‡"ÌûèEþh ¥úc³IFÐw“ÑŠì¨9üyu£J›²#ùÇ`<\È)<¬ צSÙÚ™¸±ºå.5ZÐÇ}#H~FòLöÉø£žFg¬~²MRÏ: Wƒì™"lýùQ¬ðO¡$8ß,ôfã(¹ÂNúµ$±{ÁŸ§!Ÿ¹h¼‡¹®Jµ¸7ëtÂ_Z9…QVž}gÅPþT<É9:Èûx·‡œ½Œäi‰a¸sÂÏC[üª‚ùŒú9Ì©j_³dm:ªÀ¬F78êúÒPØñ*…mø»<³Ø†Ãx•À(ú©´¿²æ=e¡³Ô ºÞ~¢š$6eœÊ^îp¼u¼Qð«¡ŽwÏâÏ­YÉU¹•™ÿ±ýU2ziMA—„ f2•ñ;¨i\/ñ V‡Õ6jÚ‹ÍÁ¯RQ‹kèí9?‹§p?ýÇ_"ËÏÍ¿î5 Ú?¬âÇKö7Gà?bØ {m³ªqŸ”¯¯—Ì;ïñCq•n¹ÿ'ü¹-¹ÁÏ_ol)¿‡ ýüN›-†òZqVŸ«µ*ðçVýÓN[ 5½ê¬Ž$[¡ªLB¾'òOÀ¯Þ‹ úl¢®aj§ð‹é_2S”×Fпä‡QO¤È×ûSÄ«÷§"Ñ‹(u¥°¡¿:ÿQ‰Np)Å8ø‚'jtÔ¶TE*ñÔV"6¨ÿ XÏ"²-Š¢¿ÄEpág¼[e‰$zÓ?±„8ù†ÿR”üc£¨Ë0^_ ;óžžD­À)žêɰ9Y±¬.°óï{1ýwó*+‰t— “ïnA䔜ï¼.z€þïYxˆKFE‰¥w]Ef’K«ÎN9¶õïqµq`¼Cá¼à7žÀ8“UÀ*z€åÄØx[Ÿ‚ŠIj6æ1w±¯²?ü"ÿþsN%£Úÿ1 ÿ‘ ùU¼äyLÆc.g‰æ¦a²²Š@ÁžØ~#Oßò5"ä?(>Zoªe4ÖËï RˆLä£n—3ôÓÚ~ê?Ö¡¥ª-—à=}¹Þ¼ð7‰¹ö6Ž77d£gl-5?Ñ›|o!V<}€£Ï܈5ÜDv0…«ý„-;Æ|¦‹°¹Ùß:|×Zþ»ª÷Ò¾)C– þtHm(ÆMæ¥?Ç]ÙT~À]$ƒyÃ$ÖÚ¨|jP©VÿáÊÂ}Ô¤Äߦ¶ã;¾$ž>þþã£b°ÿvzž`â|Q ò¬p(7©ÔKkf§êùù}p}z¤¯bµÆð.{À¦¦ã?òé•=ažôhÎ~g΄Õ×ÿöIÞ¾Òh/k»ÁÂþ@íóÙg¼c~Ggú·Ç#mÁsÝB…åI„òIû3Ìz áÛÊÉkdãVþñþÃþ‰]Pnµ4¾’9¡lMk?†ÿIþq,lµHâOG”|F%é)Z:î`,er7 Y[#²†ì±"üÇ<0°¦t ^·p”øû&~c¡q™yêMÌCÁÍ>f‰´§ÍuÎa~åI¥pLØø'ä v#™Í#˜£Éø[«_ûcêÙuûºiýAýàK¦/nfJUsÓš€è šI}>ýwgˆ6ÿ±UÙ¢å$‡® þ—V>÷É?ŠØÛQŸRŠü£‚yJ—ÝäJ3é†r¥Ý,ÓN ~E£1Q¡JýàñïMHÿ«ƒÊRmä\2û|¼•¸c'È´kõ§d—9ľÓþþWSÈd™‡Œäfc´ù=q¬úÁâ;Õ¤qÄ*Çüç>l·%ƶÿüy¶îÿuýGå4õaÌ?/Fý ÕÁþ¼ZB ¾ãý:øó‡DëwE¹AýG="ú\X­êU:–L¤b7ú—tж¨™~‰øþó²E¹Ç½@ÂjÃ;3¿ö ²o¦¸èµ·ð¯Å5zŽ×•@¥²øLôy”´‹\FV§J¯®¸DÞq•øVí+âÒ7ä G¾;m4õç±¢k8A»tK±Û–3þ 1‚ßo鼤n!‘¾WÜt<©ÈÖK© !ß#b€oÔ%ãŠRt ¸^:­‡§ÃB'²_2!a”øÕKu6µ+ïðaS÷aëšS\Kº þ£ ¶9)QçEò¤÷T”´¥þ£N¤õéðÙ°ô‹¨LÀ*(MD´›xMñ±D\ïs<ˆ5[c^k:ý¯šh!vB®{²LëÆ,±ôUñå¾<×âXì˜à訵½ä{å,ßF®z÷6™~,¾"¢ú?ú·û‹xñ…Ø?kNœ¬Ê\âËuð!ÃP ý@uyÿq’ìÄ ·‡Ÿ8…èaŸ>PÓéýï¦NDkP ^s/6²µ#‘K%ø^Fíæð­©Ëkß|Ð $ƒÿ8Håb ££ŒC-jpOúb)!š‘ç-ÁG¼CJÊNòia$ÎÓË¢€9”ž#‰'Ì7LdŒa+A®³ö~§3¿þ]ÙfÅê{ÑL÷ÄóW$¨K¾—Ìȼ§:²´ñ7HLxÓÞ×øA§Á.T8VÆg.ÆîîGå´ýÅW­K˜õú‘”ä$Ü…ãù‹lë¬ôB%0ÖXÈf²ŸD½ƒ.…ц-`bì&ª4ÇßxÁd€óv¿êèx´éßîAÔâ‚Â_Ð –¡6s'ÝW‚ãïClï‡]>Fþ±Ù &~…ûAêf±»Fz—]§º{¹c½uDŠïÉÜ€ÞÆ0b€p^Fϵ†z™št!»ˆ^9}«¥´§Å|3Ï™éÐ7X“-;¡()wéYÅ~ÑÍá?ÖPÇœ‘(´¬[IyG¸é«Ñ˜5‚ï(ŽÊì“92P󑙎Ȓ>]Ùð›weL{y£'™üâË$¨NëýQÌ&LaÁ»PÿqË(€ú­>*ïÍh ž€Š93ð3 …÷hJVª§QG=e8Ui8kµüÇ=qE½z‘~>Nýyñ ,õ¶h‘|.YŒúÁúðh£áæÊЛ¼,ç÷¼ÊžHW ù‡ÚtüSÊAVuÛÉ8jƒŠ\Ån]¿@ñŽºéŒú2q-Êk¶+ƒ¸&_ð«¯`³KȆcRõð'–x)¾Ïžú«ºüœY¨h…æÅНÕY03­8ÙûáÎc«p΋£J…µÏ$·ÿ? êT‰`Àñ×M”ÈtÙ'Õ‰¯œ‚=KˆwÄk·óÕÑôÃσ¥ýƒë}ÁÕǶEù?›Z–æÚûÛåø4^Ù¬uÆz'¡Ê%¾ü0wÝb‰,õÖ@ÝýUjâðqÄ ð.<÷ðõ1ÈQª8Þ\Çb6?[7øóQüìq`^NôßÝ[=G¯‚½ì'€a½Ö[aOñ_2P¶ãxààBÁ[1¿6¼þjý§à×R`Á=±¾Ÿ°;ôæòõuÀ¯š19µjÖŽFq²¤þ\wø…¾hi]dB}*è½YŸ^+6N[g4Ø+°¹OÉ?2Àç»./á?ò¢ÒQí)ŒÇXÚtÆr¤Ê Cë‰òÇËòh>„›ÕMM„Úcù‡5Å©)ŸÊEê5ŠÉªÆ2Øß”è¯â30>Ó?êÔ@+1—Ÿ¸t˜ëz®õ ³Ã!¢0ð9õ$ ð ðqë©(‚§¢0ËmßDÿÝ7Löó†Û_ ¾ŸÞÿ É6—ãG¼É?œåáê¸ào¶Åøœ† ½ºéÎz_f„즓m"ú·»ÑG±,ýw‹Ð±Êþûý»›³ÉŒÆà?T*X2’»÷ ÕÖ]¹¡Æ¢X˜ó[iõoOm 0,½skÖùÀüa_„~-õƒ÷Œ‡t?ÌGuûi"“ì²,'¡”ðÅx)ç´Âô:¨K>Sú½Ì?Ï¶ÔÆ#!š«ñtQ¼`:S—ø‘ÝV¡—I¦Re2rMqd#¢§JøÿîŽSxŠJØ…¨³ÁŸ†I}`4BÕìë,¿?W7Àîž8Ù>Ôœ £~Œþ»uàÒ£\'vÓ¿ä;§!¾psÜÁîƒ5ÿc͸ô/Y@å_MüÆðÞmM7fd”¦° ¸âhøø÷ÜË?àùº†Ò>nQî«?¸swx³lFoÆ ªprš骲–)W;¸ss©úHoO€¶é&vß•»»É?šÉ‰äŽô?„¨þW[•—Zf²Ù²Ôü:Ëþm8óks3o°#YÖsð¿^L£Ï7yF§~ü)±ÒÌmtÄÊKÙ’Ó_Eú¢°ùyúŽ2ÿ|¦(¢;’êóÔú=¼ÑNòÝ\[eö6Æc?hÿa¶°w¢îü´¹•Ý]“mÍ„DN…;U ïxG“ˆ­?ü÷´½±½sü¼·6×àÎ‡Ž¿øYéå¬cþ`Í]ÉËé:k«F×Ü2êXúï¾üÍúlÊ=í>ÑisP–“èw«àW×µÂ)x~­¡Æ s~£ÚhðÙºþcVf‡¸bÍ9M)~uýìú'FV·v튢¶à Þ%¦­B‹hÜ…8À:GÃ@áÑ¥6¦T2XÑQD4ѦÒ}³¦¡{*¼Å ²îDä ¸\S|„ÇŸ1•O6üǬÚ}lUswÅDÌžõe¥Ö È{Wÿq—¼² ÈaR™™¼m«vBKežHýÇ"4n aå¹±øšÊŽ77äÉÞµuÔV1Ä$×èÈ.t2«vdTMQ˜vE3;N¿!Üù-lTnxŸ=dpGù÷[ÜÑ6ôß ?ÿ|™:@Läô¦ÅâZùÇ«à'PNâ/êÏ=Ñ'®`Úxyc [JjÞ÷Ë¡TX´$ÿè*:„»âOÔæ¥>5þÃm›ÏÉ? SÛw™Zº"(~®›yé7R]×J*:ê¡lÚÌš=dÞ!] Ûÿj–š”øy%Þ·*ŠÜ†øxŠqFUð«1èw ø›Twÿ£`hΣB¨@&v…ükÊåZ×0;/JãaŽò4jã±ô r-Ö‡ÓAf$ЦXÓÄàk[ ÍØ`4ws?'pÕ›ƒ3¤ àWsD[ÇÃxËü¨ÄÈl‘÷&Ã/`|‡KÖÍÌ?ïƒe½MÞH#ˆé‹ÝÍäyãñ„_±ùIåMâ·]ŽõÜ•‡ªüîxÓ™’g|’úÁZ̪†-þȼ޷æ"ê÷S2ÿ\°Ë•fÖ´Þ”6òê "â5(ï”"â±ÌÞ£µä°ùeI²Îvâ@0NÏU~ ¼GÜhe”5µ¹ÚQ¤j ‚ïÍm˜†¼ð‰Í“‚9•f‚Gv¬ãv†\DûK¥Œ§ñ:Œv3ÔQ©Àtn£Zž Wú¯þ»™°}Õ°¨³ÉEÉ\R—Û4ádï„‹ ‚ÿ¨D6R¶r<8E6¹ÜíÿKIÚ^,yôW"Ú—Aɬ¦ŸKMJ¼P,ôPõõ^à n mͨ"¬Ë»‚? X/cóðsPL¼ˆ`ÅeÊ*Íþ‘}eÇŠŸÆÃæ¿O؇<Õ=ÔŸ/Çö×” ùW7Ö* s™ïZÉñæ†,{ÕÖ\Û"F“L%c)‡²þc‘ïrÐ¥‰Ø‘·t&÷¥Çˆ?–¨<ös¿‡kï£}g>sØ_«Õ®b :·„ØH,ë{²©ÃX–¡±‚ú´=`Ø'a«K£¶F%fmxˆ‰ Sm¤Ûhît¿Rlà˜®T»,$ÿäç§F•ÎÈg\–;É?ÊÐóðŠù‰õË13p Õ~Uñ»°¨SñÅôŠW˜‡¨qÀ#ýˆZ’ýÕ'VIBÿÝ©F üÇR&°Æ²?¢ GcØ•žF5öY™kXLÞã Šåg Ô:†Yo´(Ä5\#ʨÇ=äFSà?£€k¼^9SþÆ’-MâzrO'-¬A9áNç­<ÔŸ÷tÜÀ×¶‰Š;ê§ê¼ Éû:¡bËÃ4õþàWÃÉjÚÓ?q+*® ø†)0ÔùáAó\f“ËHÃÒ€û‚_…äþ³”Kê'Nÿ+žÖKÔÑoõórÜ ÿ³ŒïM(Ö€†Å²ß2ž£f.Å#ï™­ÇÕæÁä¡þÃÕÁ,€‡ÍÌ{ІŒ²²¬#Žê—Éœð½éi§ãÈR´W-ÑMÝ4ö¡­^ Ú”ŠúÁ:DƒqÁ¯âÂÕEÇ—úó‰`-A°ªÁ Þ6 ßÅ÷’ýÍ$Ùä»ÑïÚè‘RиC†S–>¼5Ì8r‘ØLTA×9göPß·òÿû/›Inðó×][»ÿºþ<‹ò@i„~7«–NÛì?Ö1ÐTË©ÃᾕH«~þì°¿+pþÄÍuˆ>‰$tܽ¤´Ç§4Eµžü)P‰æü†ýî_ÿTÅíüG¬)È{}ªR“¯jXúáâ#úÝðö¯«XsJù¦4¤ñ Ä„ü4J‘¼èw; ˜cp™9 KE¡Ekþy-:5-aº Æ2xZpη>¿H\ÿÝæ'ð­FúVq'ÊkN®Láš<…Éw¶Æ#ń͠ÌrðgâCo= Ù}YîÂ2å4Zxž6ü5©îx¢öx´Ã ýWƒ5©c­L†h´,íb²?ýŠžÿqŒl¬ºÎÈê? (¹Ô<ÔPM€AŒ‹7Kÿ’FhŸëždåôÙØ±dò8º~úþþÿ£±#¸î¿w­ž!9U.¥á±}y÷J’c‚ìtÐGrW¿ÉI²9:Ö¨J·qo Á×g#jÿð±5ÖV“]) *½È0’€ýuD¿[›îJ¦U…[­Šî´ômñ\ƒW:Žwm¥ÅQÃ+íöSÿ1™g–Ž à$×õžìòÞÈê/R §\@1æ×Ö0J›ÁÇr±O7ôW×P%è`ú×+Eà tÁ’.„¹‹—Í>•_qPRI¿0Þ7&z©:è¯æÉJì‘)·ô FuRø-aVì¥jdÉ›à?ª¡«ªÇÓK`ô‡?¯š4–hR‹?Œ;7O- WØ)/8®úùÊô»ÅÈä÷éqŒ\óéþu…ï_GÿÅ%æ7´Ák©"4Í̯Æ”ñâ̯ÍÀ³˜H,q˜‰1#Cñ[•š“îâzLø”ðBÞÆ\†8Œ/µìf%žH •>­Y»<õ!…f°Ü ™?hC ^#ÿáF%lê‡ð–•ÐÓèAF>ònTãĤÂ%–}”9È~þ£¨½-øÕe:¤EGÐÜÌNOç/b.õÕ§ðdñÿ'ý½lI•'Ž'gÃFg sÎBþ)ªOi•¥8S-ú]KzÚ–Ö»ªÚ™Ù³O`(çWLåvN´%î-€ê'£v޾˜ÛÒ6µÕ o³~°ŠPé6vBôÃZÁ‹@p–Ãj|(S³ð¯£Y?øN‰£6‚üà ÙËjâß\²\𘬑0É`@ºésDnòÝѸä¦TºMÕõè’o'ejOúˆ-ë„u|K àcp·Šúnq;ÊgST™ÏWn…'N‚íœC.”œþœ%ôùXã0ɾÀžÆ$¦ÿUÙ(V|«zÀÌô@[lyÇ¢ùàv x~RCÀ®8Kd9|‚ŠòÅ'U$sù¨l ³âH´#¢Ê Ò[£•ªGuKF²…FEú—Ì¡óÆg¤Í.¬ÐÃh€ÿhMEâ.¢ûsØýƒÜßûšÕá.ä×$ð«’ DÉÒFq¯É3v½¯‘ð­{˜?›ú¼½|ÿH”¸Aáƒ_íÇ„yI'ç…âÏŸÚæâ?ÒrŸ?Q?x à$›Ÿ©ÉPéâ ÿQ‚#éìÑÊÆ,®š0 £Xg4Z·„Æ`ê6Íítln¶òÿQ$ì¸ ã“¡úáÕòÐ_¸™éÉ,¿ML;™KÍxZ{&vܧ~Зó»8©‘!{™ÿ±]ôuä[• Z j{Z‘#—§£¯>õ™¨ºìFeã'”Ýxfælf¾»£.>I/Č̬J1&ùGl”ê;ôQŽS¸_™DìRïчXщü#ýÿ‚;y@—®Ì™fßAö!íÕÁ¯®Àñ«ôoïaf¥–]C#xJãm+–9®øŸûàfSCåÞïÉ?~ ÙiFê²Ëª7ÔôZAm{pwܽ¶üôo¯¬ÎÀ| ïïüúd;®=áF Ñ·#‰ö ¥·âÏÔ„z» t3‰æüFµvCTü+^á-\ >gøóXx€¤ÔÌ ôêí¨ þ÷‡Š þC‚+=!“Y…v5»,lÅä}˜§Ð ; ‡¼f_4VlÜ?±qì|ìÕNÂUðTø§·ø¢ ñ…˜[Q•JGOq9ÊkÎ¥lIðŸDbÙS®Âd@ßW–aœŠ5õèð²‰õ¨–Rj¥¢X1¹¶6»±Ñ¢ß'D蕸ʼ¼­+y»þ `/ç–Rl • =BÍC{ùù”œjmò•)äèq‰Ç_‰û¢5Q~€¾?”ýnM´S'`Tb“#;ÀݽLÇåˆfMþMWoôn±áã«Â~œ'«*Îîâ <@—EUMûþBNG}ÚC7Cg~Tl.üÇC9ÓÈnú},%Ï;Æÿ1y¤€-ú9î Pú+»ÉS­©ìä-*LóR?˜ &;ÚCGÂâtIÏÇþº1mcê³æ$r²éÜëìÔf ™Š{tSN©¦¬ +sD7 >/]ZJƒÏ5ÁSHz­'´¯§þÜò·Á‡–‘7XõçIÉ;7 9¬—{Dk‡ÿ8J¾ÂÁjêýz:oÖáJ£Ûj ²¦›ÏÉCÆš-àCLêäûfÕ5 Ù3ÎDƒqe+ê€û’³røOæŸ÷ùƒõW™ÐÉ.ö;pOîÆY´ÊßXmªý¸=¯ý:egãÊï$f!ô»YÈ?6ãhz}G¬pÜÁîÃ.ܤã¬^²uþ¯ýG&k®þ£¢æ¤íU²æ~[)Õ‰úÁ¹øÛtSü_B¹¯]m¸§V×»"Z€šJˆîzùÇÅüª«°éC$ÒNÅ_]…Žd!ý¯Ž(W´à­-‰òÉÖ‚<rarŽ®ä_‘ôãZ§ßÂŒE|ú·÷¢?V%ô»)‰ë;õ&²ëå8…þô/Iþ1• 3yôø¦+ê·¿èÒDö¢RY2‹þí)ìï©o¯MvsßÙü*«AÜ:—øð!lüÿ ÿ±Õ––Ù?]ýw#zWþûú=ŽòX©¬ÞUsj5µ'Š…«Ï‚?Ï©ÖTW‚|±íøOßüË¿í·yjWEKâæŠØÀ"ÚMµ€:þc†h¨-Õž‚‹etìú—oŽà/ª’1¸QIÒ„7~>KäÑÓ)ëÔôä ùD1ÿ‘S Ñ1G°€ã¯á'Ë¡˜{N¬Õühx'áƒe}Lþ‘}9úÝââ ã»"ÿPU›þ«.<ôßx£µè“îƒ,d ŠŽ!{yid¼×Ð_UÁzGÝÿŠÜŸìb;õ‘’÷x'èU<ýu˜SØi¬ô)½ëWÁlÂäÔÂǹá÷ùMe®ì“…¾»§É?ŠÂX”%ö]Ê(­yíþpÈEƒû—ÌA70T¹~‘ÿ9’P-Gþ3UXl´ZŠјûõP÷ 'ʬw#Ž:"ˆõïâÎàMÏ’ÔP¿;QY¬µ/LEþ‘6âøN^,ì[8ð‰tÅœªIc)ö§ùÇ!p°å°$·E|Ì:Ç›²ÑCôo·ð«Çúzpþ¼èˆ­*ë™°®ã?¦¢4•Ò…J‰ë ûÙàT¨Æ ?c·‡´˜jø³sPí!F¡¯H*õDþ §åŠÇ)E]K¿»þüþÃn#­É’†Ét 57à^tcœÌ‚R"|ÿÝÓJb°9W¼Æjºˆ|’çÈ»®ÑkÄÉð‘×`òQówùQTj§2<@ÃꢨÚGDîâ§õƒk¼/íÑ_µ'‡z¥—Ê[V:=Þc™ÑA‚˜Cõ=øŠAÆú´!ë%ËSwò|fϪþ@ëf=k~­Uwƨ/»{(¿Ì¤þ¼#³÷ŽQã—À,o÷€í‡ïÜÍ®V£ ó½)³ÖüóþܦtUÎòtä®5ã=èJ®Uüj2ýÛ{¹¢ØÎ*oAvÆ_5c¿Ëð#ÁÜŒ¶èˆ2óÚßñpÝæVÀGî×ãÔWè»è29ÿ3ȼ¾ÍÌm_Ž+µ=&üÇp§Ì??@ÜÔ]Z€‹£ßëÈ?Ö‚ƒTlÆu’^ÄCŒRö2ø‰‘èàžQ縇œ£!:à°\ÝéU—ŠÀÒðç™ÿ4‚å›ã8…ðƒà?ƒÃ&ÁÚ}2Êkt"ÿxÌ”g¨Œ'ÚÙSÚ¿â‘jÒ¿äU……ð,%ˆÄ¾‰õ¨ežãËŠÙŽ+þç>œ£ïz"ÇIøaëò›¼BÈNuÙåè¿[F«®bÖ“å?œA¯*ªªBo[ï/ƧÛ6_í2uÓݰuÉõ*šªÕ¦‰¯6W4¥2̇l$¥c×ÑXΖ_$¡ïëqüG Xþ:úèeS®ªiy‡2Šìb®H‚–5"•ϯkßP¾( Åb™Ä—nXœÒø»î,N“7óÁІ“qíu„á\‹JÅŠ: cùOqggп$²ü#7ó?š*¯ÄÞg…y Õ'üU_FMs)½¬7} ›lÃ%ûXÎzˆ'QL3—þícy9ä2"ó³ìÏícyüY<9@Ï&<é_²–²–©ïÖבçDÇ–»‚<‡\ï>ò¼ãGú'ŽÅ¤”y £`:çà?Æc;V:•º~U„]®ao‹¨÷¹¥{hª’ÃÿkÍcê1–ÝOÑ™©*¢QäT¥ÀžzÃx¬¤ªì º¦Kð¸Õá&’ïÔˆ²ª»Ì ÏÂ=é7Jrð¹êø#wøͰ¦S\B•”Ûþ'üïG3üy#7þÃ{ÿ õ•:‡¦äg?”iaVìŽþÊ•Óð\¯o ¿‡la£áJ§Â™ðçfðüÁ±øþø·ø„â¬fM¤ZÅó®Ïü¨°þãõçÁ¯î[´aµr)HÓTøŽžðÛÀ¯šeÑïÞ)jú¡J›Å•§úüú«üry¨úó$ÊPåú²Nð(­9 V×–BhV'¡nê‹þ· Þh ~啕_DǪæü¾lþ(­Ñßÿ†ü#„?ߢœUc²»—øoò»ø¢o¡þcÌtð/+1üÇz"}ƒìá Ù×>ô {9÷#9åõñ—uÄ9ÑÁá?<•cZIìRsüoz¹[<Öÿ6ÛKâ3ºQ5x–Œã$ è¶x·øàcP6²Ã4äÝ‹!;Ò3·[Šê~5B…_ü‹84ÛlF·’fܽ—°Ìžæxú·§eaªB®ã“²›AfJ”(/Åôù_ˆ 3ÿOú·³%WtÇÉ ¢ÿUTéBÞ¹°Ÿb(·”†êµýKnן¯²5P›ª-ÔETûÙB©„Ã~_$"G¼.\ðÈÎàMµØZvõý¯f‰?µõÚCêo~mEñüð*qþStXÞX®,Jþ£³)ó‹¿±·víy$[ û×Wà?°Ú}ôW°p9 õéPUü£?Ö‘õIú‘^%:þÃê¿ë.Z£o£_ ÛA™ºè¹‰cƒoAS†¾MÙ‰v¶‰ûŽ'vO!ʧ,À{‰o Ô}>‰ڔöú ²„ ¼‹gˆë.À¥\!&Ï­kZ­(VLªy‚[ýÛpÿ^‹E¨œF³^%2ë¾Þæ64GÎÂQ÷Ý"TœI)©¿Z Wž ¤£ h£÷À£ÏG1SKŸˆ¥NIdö‰{p=8gð„G?&êh_B.Ðñi²‘üã>:Ï5z!®î$÷©žäÞ§ŸžPì%ÿð N­°\¿úá?òød·wD~ŽÅèÝP;HÅÆs¸üñ T1å6ìë|îXpúi°=Ïñ%§å=¬,øMXþ;øû›\û M¨áõ»îê ð«* ^Øñƨé†àŬšŒF#øâôò(~UϨþj"˜KbûԿ͹AØÂ¢CVýy žk#"Ø5ð)¯ÉàG 2«ö¶|`Ñ™EýGZãý¯2ë@íêƒ_ùç»S±VEO¦. 󤫉x¦;Á+!µ—ÐïÎÄô‘Õ蟸DçùÎoÜÇÒ6 þ¼…d0ó£ÑÉÅ“9/µ°n€(…ù>÷£žL®öT.#ÿ˜^wøÕn*ÆÓ݃þ‰3ð‡9=KñZGÈÎ|e*£¼\ªþÃêÂç~°:þ¨ ™èXün8ã!试÷gšˆ?ø#ñþã*¹Âs>ÈàÖ‹e´Çœ¡ÿ\ˆÿðP¨_Éä/‘¼’ŠnòSG_½FcëÆº›ñ$+Ì ¦Áü/ÆgаÕÿ¸³ÏâÚ¾þÈ™33¸ww—B€`ÁÝÝ¥8ŵP¬8ÅÝ=¸»… îœàNpû~“ûï!Ü„>ß½·}Z^ 993sfËZkïM…ÞÎt÷ ú ؈m!ê—¡ãq´â•Xï¹Y6&™©í2`VÝafn˜mQ†-'ÿèMýÇ~*EWbõ³¡¿ª@®¬âͣÃùÐáèïÓ·Qu"È\ mA›³ªUúóÖ¨¼_ÐË©?_hÆhv?úy¤AÕ„úó(ÒWÀêÞçNù?Á¯®(™Ô`&!Pióûï¦R_ªµµ—Ì,§Ÿ êå¥ÓZ’̤÷á%2\òßwTQžÁŸŸ-ˆ= Óù©±þŽITÞêC}³è«¯… É®åõ>gøŸ*Ǫœ€¯½†<ÿáNýG!bˆœ"¯˜ÄŸ‡µ᯴K•Zñ„ìà&ˆ»Ö®°lA-ƒ‡Xe}FÔš„lÓÏ“F ¿j O×—ÁPЊš>gÚÆMòŽÌd Ñ8ˆåJ îJG y\œðšs¨ ùzúC¦ f\ S„ü£.hÕ¬¾?,F*¼HbçudÊQ#¬ÿH O‡Ïnƒõ;ŠW»-~ƒgTµž Þ•üã%k]b¿Q`¾‡ÄïêÙðoœ’ýnqìÞX0Þ d3Ä]Ñ‘·æƒ1[^SB”üêXÞ-bãÝd ¾ o¹ô°Óýœ0üªøUêÓƒ›ó âÿ &Óш#fénô/é"Ëðó6ÍÂ_ÂRV wþà-¥ýr¦‚þ^6g=oó|Þô¹øÉx‘·p¥»‚üGØŠ#°ûÞhüyâ‹Á¯¾…¹æ=Z71üª0^áÌû=ž©7«}¦ÿU&j¨=±,…‰Î[Á¢ÏÇoä…§=BŸøOŽ‹ ©c˜'íôO,ÅsËB@ÿÝ£ðËWdj3üù5´HEao/ZÙ̯ØÿxøbÜKÝÜg±6¨¢S›jÅhGÚ p{ æû3ý¯¼ÌÅæjÚç²VLê?ÞXSÍ{ô nGŽÓ‘û¸…|ÐpÛ{zýPë…Q?'ÇjI^ÿ1—þã“á?†˜ª½Ä)!ýÌÌZÊcí›Å×íB‹ìKmyQ¹,„ÿx¤ U™ÔòˆÏvº0xÒãÄ韘ÄêBUÄ`¼ÑüÇ :…L¦K|9*$f‚,N"›‰aþ†/Þgü¢öj!ó?`é/->——ÄWãStGÁ4`ŽH|kÈÕ,j£Û™­»æx–yd7ÞÜá6°4¹È5+ /ÑÞ•lbŽD|rì|2XÄ9ô¹…ÈcºÑ¥þüÇ:P6$ÿHÞŽÚ’:ð#e̺d†¬b˜Ô:®þ>2;É?þÎÔ –è¯ ¦5Í>ÿ1›š—“tYék­¤þ#ªßîfƒŸqz7Æd–°Ö$¬ÚiðŠbÒß þÝ­¨jpÝÃ}¥Å?ž•^ ¼v]KªçÑ÷ñ;”ü°yµšF‡ŸóÑ©¼/ZòÆä Gf]Ñߨ^ê&½ÑGè¾Z-f¨óÑ-«'Pãa‹ªs†è¤-¢•ÔóZr*ã ‘NLQŒçßõÀ ÍÛðçåÅG,q¶hè‹»,3Û†üc±tS,l{§C<x…¿D¨?­¯ÏÔÔ]Cµ; ;Ü¿ñŒä7¬ý=pû»"-«®‹Dÿ«ôꬖ30hÈ#7êßd]Ë ð—صNìÚLÞ ¿S¯Á]üªÍÆâ·&£Ú:õPôä½é«|•²6j©™ MçÁŽ2ÂÓœåÎö@u3Ôõÿ&õƒè‹×‡|!xŽ"׌(ø½±Ä¡œñ'qzFv'Ðm^B¹ =×Ac??‚q}Úª.Ó›ðu¦Í:ƒqúï–Ãî7“ÔÇû'ÀÚ/ÆúV0b ãÃàZÓÍ—²ÙÖ¼ÅW”cµO ?Ó±§µ‹zh†­(C–u L·ùÚg㫜Cÿñáà]=Í8AúÝ@æØú‘M¦â&2ºÑ²¾u;LCׯñâW×Cy©LT?—»j'? gE—ö„º”hô/_Ä|¦‚xßÂLiA†tIèèû”ñ(S°Z’FŒ_mQ}µø ¢O2ù©SH¦ÂŸ»ƒ"ªxK‰ÏØJÞxTo<€IêŽ"au¨mÈ’<9›åÅBÑß•ìæäåá}¬MvœIú _ê»!u‡¥ð’·™gø ÿQü*Yæ¯0ó©Ívn³1œNÔpÒhé:…ûÔúpQëì _™ÖV,ÛÌkªéǬ“ƒ¬»È^a¢Je•ˆÖ9Ó°ÚÁ$…Ñ})PaëtŽó?á?®)©Ô8®“õ”úԮ߹h¤>DW?¨Õ©?/ªWÓ/«MXe¡RQ+ªÕЦ0ÿü½Ü%%2Ë([õ뢨FV°¡´ú'-Ž6O}̤¥jè•Njñ´”?µÏdâÑÛQ‹Ó“:BË(©^Óƒ]`~m?Ûˆn—¥ï÷º œ.ãac ZžÙXäâhòbõÄ>lâ XZ‹øwŠø §‰”~·Œ¾^ŸÿÄF/ÁÆ$ä-lÎÛs;Úorž¨ú¶ˆÊOX-®FxÍÑÔ.dE+ðoÙ×*ظ\°ÞžØâõFYy™\!oWìélV|«¥‹`ÅsÚÞ·FXòTjÀ”äsY°/Þ®lrù×!|_"r†…Äö5Eúôj42¾(`^ññ ൅öï `óA*Šcð©À@lÆ5îÄd°­%T½ÔÔÕpvÙO¢÷à r>ÌÀöW½4þé#;ü¢{éQÀo~'§™J–0u[Ĭnm$2iËÝ. Qÿ±OŒpùÙêB=qH5bªG¼›øÊvk|J4¬sÖ)ÔÀÉPó>§»J?xŸ¬è¯~1ó’¥Çÿ°™ÊKìá:…kÕ^ðçåñ=`èÒƒ-w{”U¥ÀæŒÝE™ÝÍÞ€†­ *±j¦¯u“ùMéFœZN`­e¨‚nƒÎå \wð¿÷á$ùGðÙ¿ÃüsòˆôO"õ’Ú„ùµetð«2¬²Bi Öêió™?¨©ûjU[=¢_£*»"ùÜ=‡‰µY5:OaiKà?Îjq²þ£€xC»:î½äë@ÞK‘ ì2éš,^2c$<–öûMûÑ¿ÄCø€—ìÅb'),Ýyî è£66õôÝÍYT‘êß^‘HyÑÇ3"ÔÅ Ò1à¡;‘w<„‹ó€¨ú‰Hʼnþ%ÉÔŽXÑ]">èm>¹„hÆé:ëL²ØN÷¥{ü?ñTi¢ñ™Ta¼×"Š|µaS¨±¤Ît“÷b ùÇHlÎ"È6 .óðrþ¨ ²bóWrÝåEMõÌ÷7-èO²«¹´LðÛ³à+’°ŠÍÎZð«ƒ_!o›/Ëó~@áðÈxyÎ4|ôNú_}gŹê&½xœ*G¡ ;Œÿ¨UýD•Ý U×a½z€?ŒG{æÔäÉÓxâ•]onð²g•úúQ1ïó¸JZúLl#ß5\‡ÎtÿBþq º•¿K/±³¥ø©%äI-˜ÿV»ç­u@¿Û‹±‹(»1øÃV—Ät'ï˜õÛHæq•>~æJç„àlëe'XàŽ2èKX]µ­}CáÙÞH‹7: 3îG髜“ á–£ç$Új#'ñ@“µeC>tU+°¨tÅ'’ÚâPïõp-*þq~Ú“+jÍ\£„t«Zh6¢²n&J¢hø¨Ìÿ°Ìf rœJø|(×2{ZÏx¦ÿÕBá‰ÿ¸KüT†sñÑx+S¿ÐÓœ+3›ï úâ@3ª½Ê4̉LïÞ†­‰ÿX¾i3Ÿ<ä|ÑÕõ0n(“ÕpÍ…Ð4#éÄSÈd^¢”nU FžÎðe±¬èÃë—ÔÙºÈÕŽf-Ýl ;uv!8ÿ˜¥žÔ¾ð–Þæ¤F1£Â[#Ëšl=Gǵé+ÉDVƒþ¥@u‰úómÖ<òVÞÄ_á½J’+£þ£ƒË¬À6¡ß<+þÜ©ÿh^Uü##Õð1QðÆÆ£ß]ëFþPÈüsQ—œQÊÚä59ï£\§p—: \¾ ˆnW¬] ã³Y oQ•§qfë:ݽ*S~Ôja@?pÀÃÌ“„àbÙåPj½˜ªÈÕ%³]wð¿÷á‚òM VÂú+þñüóxð•à?êuõj Në%—V[s×6Ò?ñæOöß}¤£þ¼ùGjp‡Tº­'×v¨÷ô¢4‘åæX¡Þ‡ˆîX^aÈFðÄáíeB7²dà ß­KÑû,õW-ô÷û©³wljÝÎòݱsðщ¼ýyþˆr{=O˜TzEbÅÂÔ³Ìy‰¢æræŸû£üIÇ»“T¶$ ; þP$ [íìHø‰ÿ¨H§Þwâ•Å«¨GJŽ÷©æe´GsЬÜÜm3Þ*†ñEsüü¿ûç¸Æœ@,éXèvÔÌMkJ¶¼7¿%ÙÂ:®ØaU’âõæbÇ‘ÜøÁ‚éè\œ™̽ÀoÜ×à}‘)ÍÅJTAùT×!0&ü/Ì&ÿŠ'öÐï…³b?ÞºNÜý§0 ey×ñ ™a‰^¡Qú݈)¼À¯¶Â,ÔÄ¿½[ÀUß>(¼ùk˜?¸œüã3U(È>4é…ÕFýÁ¬HO<Èø½Øî]hŒÓÂLC‘П9Ýh~õ:Ì}´žb<÷#=ѽ6(m¦ã?aÌK`J1Å¡¦yýUesì%Sbï׃ü\&æÍôãÐÓýåž*@Ü[çe÷ð²¾,/Z«kò4hX4°|aeý"Aþ#,×¿šº•¡²ÏLj¡ë?zi6Y²Þ¼*¼x3®8. ™õ°ÔÓQ° {ú¦¦f\Ð«Žø¢ø·) q;`”wQes!Œ~wøUcô§¨?ï€VÍáÏçÑ+r z°”öøó[æ[k¦éfަâvžË(¾~j²Y gÅÑ_µwÝÁçL±;A^‰õ~%gn w‘Îôeâ^«4ªÖFTÛ{¡°= Ç0ÿQ†ÙQÆ áÎ|$kIˆ›¢Ô*:½½½AwRi2õüjþãj©=èwâIvÂÆ§£ÿU ùŒ¹RsÍ2ôo‡—›ÅuŸ2Ò‹­¢‹ËÌ¿ÊD”3+ŸÜ/v»Ì:øÉô¼J‰Îl)5è'©=ÿ•êDo³3yCóf³4ãš¾`3Þ‹&(#[ºüÇfu„ÞŒ`ïY2ÞJa•¥â²:WzmÙ%®®‘}Š{ØÄîIýýq0·äT$þj%âd¿ËÐÕ|2 ýú'cþG°vä±ÒìÏJ­¾¥ÿîú'æÕ7ªe±KÿQL«¢MÓ¨¹ûÉùQQá:Îb÷<¨¸-Üôçš®mRßës…'õ—´ôZŠ,Ÿë8}È FØÝU âÔbä°s—µ؈‹àLE ¸äÈuD9¯¾V³’øË—ÃÆQ]$KS#ßNœÀJû¡—ø‘éT%¾Öƒ{€†ÞMÈß¹ëKô¢õ$¦ø€ý_çN…‚U%ŽN +-Én¢  .ExÍ1ÕfXÑ•".¸Žú«¨øQ þ{þä:X“‘t%¼Ébª!^h"Xñþã=(ßo\ooôKƒðN#` bGÚÀ,„ßD.–P¾#ol¸Óר7äå…øœ›Îañ‰ðó–D·²ØY 0ªoøÓ ãAÄ“À,xƒ@A}õww4ùGùp+s&2ÿ£~ðK žà}ÎÆ•}#nlbøë¨ÿØ$ûÈ"rOj2TôÇL©°ëÍ ÞÜ)¥ýwÿDÏú;þ";ú«ÍDÙóðÓȺ‚0ÝÂ2îÀfŸB7@ÕW»ºŽ»Q“ü#¬‡[Ïü¾ØÙTÔ¯– ±¨ýÙ…;ýÙ;Ñ·}9VêÞྫã?Öe ÷ZF´{$ØFèîèŠS3Qæ´&{œO¾ð/ëÔ¦7mÓO> kZj t;&õç¥è˸‚l¡¹ŒÙJ?¥ 7ª§‚¯VQºÀý5A­ñÿ± %­-ã›aЋÒÿ}HŒbŸêgF‡Ãè‹î¿¿ˆþW{yî[yÎoÃÔŸÏîT¾"ö)òìJò¾æºôè¯*Ñÿê]G’0£*ó£:¡HhÉO^F%zj³¬œ%š»¶÷V¦žÄ?V᮵â¾w«KNŸÃQørT9¶…íYIÎu’zì…àW Ñ=m¤Jsë} «IÚ+D7óêô»ù¥§ê‘ü(¢Ò©r¤9ÂzgUE~øT=t[…É?žÁóǵŽàIªÁt{³k§÷U&;šYÔHNØܸ.Qap„ƒôo/ óþ÷AW’ÍȉÇÙÂÊQ°yÀê÷¤d“}ÍÊ~÷æ×6m]­dà_Å~ãšpãô¤ ¡8sÝÊÿø‡ VÓu²î+-Õ¸®ßýÜODtYZ;ÅüÚüðçN_Œ…ЇVN}Ý_+çj¹èô(» *¡x/ŒmN®_ÔRjSé©8…iØ‹ô}Z2-áOí3µˆ!à7ªb¡»2¿ö©(Bþ‘ê-sÁŸþNCþ†R'™^\C˱ƒ÷h:±w>üÇWÑIÓ?‹ÍˆGÔ\ér3ü†ÃôÁÞ"¦~„~×þ#âùµÕøÜUäSÉAÓé.BeýpÀ Øã:ä~¬z}û g0¢G¨¿º«ÍÄâ·ÅJ@wõJà;ÈŠÁàNǪæfÏÏÀ€ïÂ#F‘[øªÊ¢Ãë?²ª©´´ø/§KC:ìùñH4$›yml"'ªfL†«Hÿ”{q”|gŒÁaØÁüzð ¾uŽ~×é¿‹=b~œ”<ÏÏü„VÆ%ÝýÕÙ–.·uBjøó¤x˜Öáø½J9üÇhV›Âue#ÇØÊΦÁôŒ—Íá·§ÃдÂwÜ"CÈAýÇZ¼Án²²3`êCô(ZX…ñ:­…èÚ‘+Ü3“+5¿r&®¦®ø"s™® ¿ª€Mî%SËÊðÓ#ÑTõ–náô/1´÷"7oCúÉûâ“ñ]&ÿHb“·Q›þþÀJBªÔŸ/ÆÞ»£¡=ŠE…KÇØÚÊPïKMr}Û¹oÔ"`ÍM™ŒþWkÍ&ÔÎ…øžó„h7> ©ù,.?L·bn¦~p/×uGïj½¢:öþ$yciüÂ+ãÜõ› “߈ڈ]X|§/ÔezÏ0sYǸ˓y2»Áýn97Dý ¦W}©Sª‡ÿh)_bqS“=§¯|P‰DÞ¨ð+ÎŒØÖjê?êÀ4,Qýƒ*Ï(f› vjhk:Gݧ½'ÿ$ýHý 'TÞœ¿íK‘{ôOüfm±Žâ?b[/ÍWÌ Ü‹FlºÃ~tÏ,ʽ. Ö‹V®üã ºSÏBÛ”h,tº§Ï1óØ%é:Ù–ó/©,LÖ ¯öïÔ›:þâT”4ëñ̤¤šž«Ú¢ÿÕZu,srÓ#O úÛ*Êëÿu"ƒL¥jiï±àUºãUœ)ÀÌ*ôõuÞ¾(D0gÄ ø8ÿ“þWÛ”Äjpß§ÇÌÿø¹¸>ø}N]-¯eþ`!}MÐüÁôO̧ÕÔFÓíð½ò£©Á+„üµ¿h ‚áihFý=ˆÕð«ñðç³t?ÍÖ~ÎÏ5ÓE×I¢¸uX®’tuNj’Ž9åÃáÓŸDÒœEgæ)žïî â]nR…‹aÔ?wôW=‰ÿû€ EÏôÃ!/éŸ=©ÿpÔ_ˆhW_}%šïÌs• ¢¶Þ b©°‘ Å£Pïlx ¦Wû¬†ÿˆAºšSžˆù25°„³@]o§»‘× šc‡‘Šœ+¢ùµQõ¹ÄaMA»‚à?F“Zƒ<»8oë4bžäÒ‹}ûáA à?ü¸þÔŸÿèª3007hÕhr¢ô¬âøfܯ<‡×7‘Ø1¦<ˆÿˆë‡ÛEvwYd×_„s©#©lÅ×¼Å‡çæ¾{âç';úÌ¿m™¯zPo.@ [FÎÄ÷­7œª÷èwK3öûåSÿ±Ÿ«“Ôïõ—‹ ÞD®8¿oƒB‰® ì‡ÁåssmâÎAàkôÒ¿©a§a.ÓšŠqø³ŒXH|ƒÎL’mT#~•­™ù´’éEgQîžAUþ¼ŒJ)r›¡Xèñ2›1ð»ú7ªJ\ÐŒÌo!þ[ø—t`inôºº@þQ‰iÛÓ¨KgÞ¤ÿºS?XH–†??ƒ÷š'«{èÚ_¡ÎN2Áö\Á2¬µ`>þ(ôWµùþ%TÂE¥ƒø;ºƒDÃø ¯TƒõÖÀ.ìãÿ»8§Ãð+Di¾ÆÑï–BïüÀx-§;ˆ“¹R¶@{´ …Ü–/!5!Y­dãÀ¯|È|Q‘åg~Tpþa¨#ÔóäNílK:‡Õ#»M–3ÙÊŽþj®Ùj—Cð[AˆVQÞd*ùÇX<°n6à^ž0ÆŠÅ®‡<•þ%ðçWˆ6¨½÷µøí~\µáä5[ɶvÀyÇ Ò_½ƒ»Ød¦§ÿ•Åéù •©b©èíò~0oÙ@Õ[ñìS2¹ä¸1Œ® u‡ƒÈ<î0ë›yŒ­›õ…î*ýQS0KÛiÌŠ¼Õ x— ¦’­ Q¾C©·ùaÓšð¾~q¬b¶ŸUŸÙ·ŸÍdøµnV;û }ÁªŽ¿û}Ø8›†Tág’‚/¤*áˆrT1ÅuÅÿ½ÞàWÁêú'ô/IêœE~'ÉèUŸùQùõúµ «¬TòjY4OmºöðéÈ/ÅWêèw¯S­Ñ‹ÅH¬?ÒRÁŸß¢þ¼|ÁQíõOâlÕ…AÜ{FôÁ:÷ þü¶È£îÕ2bsпd–POßaØáox·jjµxb±X•ÁÀï{CKÔHl‰Jv“Ûø‡È*ÞéGÂ_"ÔŸ ¯ʣ+žÎYØúèñÔÄáBöç-zJFûBB£º*õƒ¹Õß`öæ¡×JŒUXë.Aýë°ö*"°sø |¬1œøBbE/ÁÓ~ª1g–¸èw¢ç¬4„ü£x´£Ã)•‚µ¾Î=-âs”¯jŒÿø‘Ò.‰šNKAþ3ýU&<Ú'ñX´óûLýà%¼ähü‡…XÛ{DöÛÉæ.Ò¡°<¡&øÖMV7è­ñ‡Ž¸0OÃ$;ŒƒÅ3úvò•ز²r,(×lþÍÀþÀÓ÷ Ç\¤ÉvÑôp Qg ÖØHœáô,þM¶%>(?sÿ|éß±C&"?Ùöíƒÿ¸Œ÷¢Çÿnþàvò!°wÙQ@]æº^ã[·Â¶>“=à?œþJ7è£xüª^n0w²•í“é_2H©læ¹|TZSÈ?^Z @²F [JÏàϲ­•S^ÍòŒl-AÅ@ð[òŸþ´GI©~uý×äÁÕè®?ŽÔ‡Ôðçµ´'Z>òsª£_¦Ðri©?Wx¿NFj•¿¿è¥r ÿÁq,¼4ÜtºãªSÔÃzoQO_NÿݘZü0oØßßþ¯•D4¬ñY˜í3xùiøLª¿–Žh4ºÈÀt˜÷â^”ûýj×áÏË‹WDnAKf=çÇ^=5…/XþEr’ÔÔü.ˆ¨"2×\›{[%ARüGçpüÇa¥"ùG_¼Û¸ŽôxÍXÿe uCAŸZ˾hR+€DÝÄæ¦ Ÿñbw˨“÷§{ íf˜.Á €±Ï‰Þ×ßàÜý´©2þã$u…lÀ½M¤-uvjDeîÙcªêOÃø¨2–9ÀœN&PÊ\Aÿ’Ä»1ì ¦¤+Vó¹ì/¨m…yÆâùÇÇ0õƒëQ±6â$\$¶îÉYxNýà:üÇL: gG;TÈ<†}¼­/𢕨å!°]ÛÉN2ñ°˜\¢þã 227§j¦-ÿõ4rS#ò^¡¬ò ót²'¸æƒhÎÖÒ%¥ÕÕΉÍj Ív2 ;ü+„ve¶º‹úzr'þC3£pbvÂî¦Ê¯ŒÌeÓýîaØ7;.Õ—©ÿØŒÆøqL7|RUðº\àWM\ùÇ&ÏdÄÒ;¬[2ôWŒYäXe¬?yÉ­WôcÌŸD1>u*cÈnJrò˜u@»Þ‘µ˜è¸÷†ˆb¶3?ª»ÈN^Þш*ÑÃ*M=£'Ù É\—ç¬ÛšùçϬŠv;©«ø¤dð-¬˜²ˆÀJð…çFzéö?©ÿؤ$S£ºNÖ¥qPææeˆÔo¨7Ԗ诊3ÿã¬Z‘57*eµBZ}m’öR5Ȫþ`qu7ýkb‹E"ý–U› §>H”e~­/ÝL~®ÿn>,~_ 1‰õÄ܉v÷(3®ú£æÚƒwSíô7IezðÌ¢Éúh5;áá‚Y¸ÍàW=Ñî8oe|«#ûAêbà‰žÓ¥—}Ì~ÄüÁðç7È™¢‘ÑÔ‚?Á4üêyò?Ñﮡ´5¸îá•ÒHÍê\¸B„2©ïÕ^Ú]æ¦Ôw«®¾GÉBžWëÏì'S=á !¿ †ú þ£oQïêÚéÀpFï ŠëcôUÚÛŸì3_ýUï Ià»Aƒ§‹ ðkÁ€‹/ÑïD bcÈ­„ù|þ£!Þè ünc>g(“Ìk+¶¡T¿ŠÇËMò»ˆKadú—TÕG¢þ&ƒ!¢ *ò…˜¶#J¿—Äå¿eg¿¯P÷¹ÃúG<0‡ú+Ñæ6Xó„¨j¦“+'%ê.¥[A,}‹ñ ËìN¶”ü#¦ž=‚§ýVÿèH¶° tê‘X@þ18Ú‰CkÀv/ÄßíÃvÇÇøl•g~íP»|jêîêÑÉ‹àPÖµÄçR!GYÿÑ»}–Ÿ÷ \h)¬Å&þ»!ò„›,S}õ–°2šìƒ}< ¯U†ÌË´í3>b·¾ZWÀ¯ZÁêN⊽àë³·DNâ‘váäÇ•ÊàWÝñ\CÉYâ±d3©ŸÆ}'à?j‚]³OÙ 7s Tð&ñC]ÿ.ÿØ¡µÆTFWyœ©9˜$];AÀ$3•þ¼3Šê‘4£ÿÕ ³TÜÍ#XÀ§°/™¨^)Ê[UÃbÕ$*ËžÉ=Ä'é¿›œÚ¾Ì*N͸nÇAU’žîk±zmñE{ÙíbعRFTm]¨']C{AVºš³V D®Clêÿ4 â?&a±¾2M$¦ý³p¢à½÷SŒž#±¨'ŸOg°<ðç¡;߬U¸‚<‡Š uï™?8…«„'ëCmÄòÏæËmØ`Ô§¾äÓðZûñGçèm•MN ]ïÙ[êÏ}ˆsJÈûh>@„ËÁ‘<¥î< }gŠîŠAó€?-…e)F2o9ˆnZ¶Ù†§³™a…k½™êVí&ö"§å™| Þç¨JɆÿh‰Ø ><þã þ2ú«®~vPÿƒ¨Á þœ¹ÃbUþã0‘K"FNg&Ù„ZâóhÌ2ð}c¬¤t@ÙÏþ“Œ´>šWè³¾™ªÇÔº½%ÍøÎvìp ëR»ã?xêhôÒÀW¦¶ZÙ«ð”ËèùUV¶ÕßÞI?€v{k0ûó6[ø¥Ôr(Üðºj\7²üåºâÿÞ_%aˆIâÏ•nÿ¸~0&ùGí™V‰üã˜ZÓêÌ?/KýÇ8æGYjdbñàë~©ìР–jƒ½B1Aÿ«ê 4Y™F·L÷Ñ2i™C½Áßþ§BœšžÜéÆX»ÊÆaåÕ›ZFìMT:åöfÞÓïz¨†¿Ò!ú'VySŽ ßOL“üJPÕ¼üæ$§=#vÕƒIÅþð—õ§Nÿ«Ù¢86x݀ΞYM~üôo¸HOv}H€‚GðOuÖs³ˆGæR ü*'Òiбÿq”˜^b{Š“=9|@Šñ+ð«ûäA¿aË[¿O&Êg䡯Ò2,TxÀ¯XPoïÄâÄo?Ì?2¨´¸Ø÷QhL’qµݧ›’Û¼0VH/x• ¼¯nx¡7dìt#Í ãø•ÎuG¿Ë¤E®gÏá:Ñ}Y|ƒS‡™@’—èKÉ?NÉ^àaé×soÝé„“„k˜ëÍ ¾™{”úV,þkcv( ÞЙÿ1ør&½;F‘!<5jã5Ð`¥ ¸€Gòæúñ|fëÑ¿›ÿ1G«ÿQüj7“Ú‘Eö¢ã¢;ú  tlßÀü³lw#ªóVŽ¥ÄZž†0¨˜ˆú¢m˜+Ö5”® Qù ¦'5½QC•”å& êQuÔŽk>Æþg@•† ä=̆3'²9§<ÕSÁW«(­5o´ï_, =úÝôô/™Æ$'wô¬K­Dö]+¹=ÑŒ½¯Í>=a³çáýaQ7£z×Dèüc¥¨É}:~UµÁÏÞH•ä@s)ý¾ Ú{ñ öúxX/øs?²¨Idu> kg`qÈmDG×öÞ)]Õ}dn5ÈÚZ?µ„ûNo¾gbG«’¹„мšÄàn0ƒ©Ô¸‚Vª_ÐüÁd3ÉÌ<½“਻\ë-Q'jŽÂã æùE¼§:¥&â1óÏ7Âp{Ó9ÑÄɰ32äµã#éÉxš“ÝoWî£Çê¦þãˆ:ÿ‘‰üc‘Nn>†ýÙã‘}ô!ÿxK>Ó˜5Jò{a5£þ¯„éfç3KQ½myL8§½LØý{ƒ{Õvzk‘ž£œdt#ƒUþ¼:êµGÌAÔQívµ·Úo`E€j} æ%™•Èé‹ýAÌ!ÿ`IÄü¿ü/þêMý¹á:YŸ•_Õ¢®ßýÜ6«ŸÕ®Úg­žP?ÔEë–RO«¤5×zÑ»êåOÖ¤¢âiQ›°õ1µk0æ‡èéÞRT¤¢–Y‹(r½û†ÜãnÄ» á ËÉïMU©§æsVQAÌ·„ÿw5Ä¡Wøûw'U[k îƒT¡Öc>S)`ë?ªÄþ{-çת õóÙ×E"‰Y L_YwÙÃ#bá^°ÁÄýÙ±SÅëŸMÕ™¿¾G¤6LºL#šIÔluE~3ÜÂM,‡/¶Y§ÿníVü¨Í 3j2y ^䉘È÷ÎAcãKåWkú@-¤:d3YWB>Iê*ZÿPå®Ö1üL…} "«zÅÎz“‘,KðiÈÒƒ=À÷í#»[Ž'¥g*ó?‡¼aÿ÷yS|: ‚KÖE:…ï(Lö÷ŽŸPÓX§ûÁŸo&o¨!gà‰ö‘Û9“Ó‹×r½¹ÁËÞ¥¢ŸÌ÷Ž$[ÈB Úfb—ùFøôÖ¨pjÒ¤>¶îŒoqþö ÷ã4öèqÄP=Úwý¯Æ2ã¸7̯ªª–„uð¿2ÌfIªªE–4ïËô/Ù GŸ´ÿùÇ7|UAºÿ‡í¿“|!/è\V,îy—X:)bvú_]GU”Jˆ•Ö=+Õèe˜O5ƒü£1½à½F˺œÔað«ÚkQ—3qüã y_b†Þä9¨÷›ÿáfߡޮ/•jæQ°)0§Xæ~jþvÃÄ5Bœ¢wú þÞÖÀ$÷YJ×±ØÿZÔHßèLx’üh†Iu6YÞ`îëI2 ¨Y[´t=Œ7Ì<óW‰*Îò3QYNüÇ;Gñ™Š±Fº,•¹èÒûüž\®5•ÂXv˜Àl†Ï‡8&xÞÐhõöäCþqM&o~(ù!øþu¦Â´òøö¦<ŵ“‘¼@×5ݬ7§ðWÖ̉ %ø÷ÿþÙŠþªv©DRy@|4ö’_8ùÇ`¶÷æQ2§ãð j7Òmxº•ÖŒnW¦~Ð;S¼»Ïo°ë®Q{ë}‰ûPcšÂÈÊüJöò•æª$…½ÞúÃÞnZiìŽtUô´7›'Ìôf5K'¾|)–£*Õñîÿþüˆ’A•®“pSé«þ\_ô¿ï©Bûµ“[¯®×/ªµXs;ó£ jÕ˜ÿñP} œ þÒH|ræŸß$:í€M¸ ,ý¥öTä ¢ ú«-俸v‰å” Xü!tªl€µ«bÌÏDuõ¾–4?¶H ~õB|ˆdþáǽFâúÝÄ—ó°L©¤ ©Žâ0¶ð¾£'~‚°E|q0[+£/f~mYôW³Àè—P;çO¦” 6“ø¯S7O·_|ˆðšÓ©Ý‰‹6¡SÎû¹V!#P¢ïí¨X®põÑÀ^Ê“5­¦N%žîÌùúwÿ¼ÒÆõeò&‚~!þ"êO¶|›êð‹ñS'©}Œ »‹¯êó{ý æSËh)ðŠ£AÎR€öF™lŒõ`ŒÅò¸CÀQbq½¯Xí z[/âû<ýzáöOœ¤®Ç¿šENq–»V…;_Ïì¤==Õ·éñÌ (0›Ê¹ì}^/%ûËþÛºÞÜàúPÿqX0O\¾þ#lŽ3ÿ£4ñ~klfkV­ƒ=¾‰çÌÚtÌÇéªåÃGëñ¾;;s8#ƒÙW:ø«Ø¡×pC'ˆ;ßÊAt,YMÍ‚/“ÏoÑí°º¹‘*w¬ï^¬ê7Øîèæ¹Hí-½wš`û¦Pcx›,-1Õ9Ì,Ô‡£è‚Ò®æ a{ÎÓƒö.“1F™‡ù}kk çùØfjPoÄ>×zËàÏ¿yäiNÁùNãÊ1ìâþcC~—Î*x‘DvŠ ýÕtkþ}#ç~0([i¹É(ÈüàùQûQþå ¬†™™Î]O¨?Ïlçf {O:¶ß2ñ,6R‹þ'5“ë˜5—®+1À¯*a)4Y¬¢:˜Xo×)\­ö‡?OŒúªqUZ#Lùô»ó˜ÿÑÖh<þã˜-ìlv«üþn®=7ªåŒ(‚Þ‰MDEÑñÿÉþ'ó?N0?*¶ëdÝUz¨™\¿s=€H}pSª}´(z)ü‡Ðü=J­ÖTlÿKåG¨xø‹¿RÎéw¨[hK•Âc.öF]@Ä9šj²éú~t]?×?±¦xˆU? ’³f6zÝ¢êc- oÂW=žè)ÞFZuþ¼«yƒ5 B=†Ò°}Ú?™cœª|ÔŽ¿J)ÿQ•zúùøs¬5›ŒøqmKìÄض‘XÇ{ ×á}ÝPGqÅ@áß5…i’½Asö1?ê1½7Ìå¥ûIEc"¶"/Vgž†¡2»_B_ÏÁÓ~§ÓéLl´¤é²Éê³xwÉ ä71Ép>à™Ž8=CÒ˜·¢®zõ›+†ÿÈ`ܧÎ6#ÜùT#ž­¾ò™ñž®0‘ ˜ëýôSŒ+O38=·pÕ•uÎ.—0ÒQK¦ x‚ž"ë(Éó|NFÔ€™N t&ZÐK£>õ» ÜÝLè'â€öp½¹ÁÝHxDP“bô&~ÎJ>°UfbñgÉ–X»Îx€ =°=Ø¥ã?v‘†ÿê¯ÇÔüƒ— ú4‡þ%£¨|K &ž=<"ÿ8J'ýjíVÔÒU„ÿ(A“5p‰Ðh9ûÀOJKlÚ+Ì¿Uºð6äºCÑ_ÝÿÈȯ™ÌüÔŸG¿[ÕZD=ƒjÞ¥~J@™Ž§óï±Mp=båøÚÜP+ÖѾù£~«6úá4TŸO6s¿¯¢£Gû†õµ7z±æüŒ è¯6‚œ]À—ž#þÐésò’׊z tÈ=Q <5Þ¡ßÝ VµK¶§wù>˜‹§ø‘à_Á›€ ŽÄ«n¤âo'ZÚbrOˆúA¥¥/meX£ÆÜé–œ‡ìðƒ­Xô]Jçò ØÐ¤èwû g}Eÿ’FÖ$ò t€‰ÿÈ€fk¸ØìÚÞJú·+ì,äJGOèÅ.ÊYg¬VÖ2fŒoF¶üÊ ÿñ€.+ñÝÌ$“튷®"÷ù¨?îµSݦ§À.yàŠËíb1ÙÌg§G¿Û†~3Ïâ9– `©ôªŠ ŽuK&¶›˜žœÕ<(pD™Ôù÷wª}á?â=Ò7•(G±ªØ>VKîß+Ø“O|ÿú—Øvð«Rfûžéo~‘Õ¬_ðä—ET*Zs„¸â¿WþÏÿê«ÄTƒÑåJë\ÿK} vÖ>h¥ôÌúµ §ËGiH÷öòZ[Í_}ü“õšzJ?OÜ\KsV|¥/ÊKõ˜zÿá©Å¤Ö„:¿Ý©¬â2ø‹Ÿ(MT[üÊ_4B¿›•ªg=¯hO¿(úˆ úû㪡yˆX¶uØ«¹ AáÏRíÅ»E,@<EœÄŠ‚ò ӱ̃òÄ5g­l÷Ö»ÍÜn“®ÌIàŸ‚jSj»×qüj.ê¤i KýP×>é9„ýÜΊÙȹVRÏ1VhŽÑIOðÝÙYLÿ’~dCɱ;Abžã'é ¦Ôy)6o}x¯6Q ‚n7<ír»øl¨÷º†y.6úÝ̬gaûüaÙO³òuŸdDø©€(A”zÜŠAFSÐ,ˆ~·4¼ÏüÇ6ð°&<³Ú’P+v`~T{žœ?¬Î*r4 …ÓTö•˜þY“àâÙþØ×æY9þü*ø]˜”(d;«¸ötôèj½ù¢9ÏYT%•@¦>wé¿»­íÑ^ª±¿Ð¿}ß?ÒŒEÿÄd 5ñn«Éò›äjÑÚõ0¾¢Íö&¯#pÏoqö²Ëlæ[˜„øV{jäÛPß}ÊÌÈdŒVÖpó¹Ü kÏt<áW|uBrØN!ú—0/P{Dôt‹ 𜌂†í¢Ügtþc5z›QØ.¦J#¶-˜?¿ÀTªªôo§3>)1Rn±G´t½{«©#ˆOf_ˆ§UžߌChÌÒ¡¿êŽÞö 3{п=+úÝw†V{ ýnjôW•xïZ²Ã®SxšùƒAœ‡ðD2²&°Ê ßmÊ÷¾³{Md0Å>aG·s¡ßõ4oÑ38¶•޼&‘Ó[1® Qá»R„`|\·ò?þá ¸S0~õ•ùƒÉC‹ÈoÀV/ª¨?/¦ç¦~ЩÿØ­Ô@¿ë¡uÖî¨O”C‘_НŒ©n‡ÿ¨5 öU= N˜F¬Ÿ¢ÿîÏåùÅ#,Ô^Q& 1¿žÅ@Es`M¶ë‰Eð«§ÚóHíÐKGoÕÐ ô4°À /äoXã8þc7±ð+Q™üYgáµH¬XW_¨ÏBWü˜‹ùXùhpÇÃÉÞ_ÁþI,} ½F|x&º>¾ðÙ¤RQ×R3‘’ï®,'’µ$Âû8“¼`!Ïñ›Š,wö=ÍØg­t+žÑÁ0Ôäl¯Å+žGáZKì`“eWT§KÈ—¶q/¢cÑ–ð¦W¦¯Ø…\u.ÕÅ[lT#¿ð–Pyˆ×n :qÏXòÑÂ.›a¹  {O\?‹N1QõÒJ7ÃÙå*NHü`î’¹ 7wÞx &™[}cýKLsÖ¸ïÿ^˜âd8ÏDtÞûö®77x£û™_ë':q5“È?ÊRçµkí…ÏŽ?‚-{Ægoz¦ãs64s‰ ÆpW¶õXÚÝू>-Õz‹1ìK¥[Õ>üÇ |á~ò6N 7vº]Œê1ׯ,ýK¹'”¨Tï+_°ã¨÷º…¹â/êG‘¾-#Ê¥ídÛøt[Ÿ ÿqElqz™'µß`EËÍ‘¹Èî/ùá?Êr_2jkB­ØN{Žßû_žõúQ?˜ìc²Y΋™ž—†~Ÿ©ö~*ÿBÁ{ŠÕ²ƒä}@K6ƒ FjÑ$ÔzËESâ•°‚õàÅã‚Ó-€©aúÊæÔfûÀ&_£2o™y‡þínÌÿŠþ» èÕbö˜üc§¨çºƒß”™ø,hç¡ùxˆ*£_óÁDýào°ò}¨FÜCýà.«®^£·³þä*†á?t³ê9¢¹àÞ¥ë™_ûŽÚÍ[\ïyNHXö‰æ.ëýwÁ1ì¦ÃÈB®9ó£üQ‰m¶šÓ?ñ Ï® ,qTe9áK;ºü‡/õƒ¹ˆÌòsòÝdvqÕh`忚þêú—8ÝZ–Óy\È*"…“Ö™þ£QV¼ ü£Œ¼Òû÷ïR;è9™ÃÀ-ÒÂ^ƲÁyÔái<ãœøXS¬ø(viæµ7@¿{.¨ M|ù;æ6TA¦LKÿ’™/ø_üuý¯4×I¸¯tV“º~÷sÛˆ«žW;j7´rzýêàêK”ZZ)˜îÑÚ35@¹ùS˽Tð>7äŽ&5ÃMœJÄõŠ:„ìb þ&* œé|_"ú_Õµ[ ò"ú|‡ÿ¨ÈïÀãÅÖ="xÚw´É N=a»·¡â  &Ž9³x¢£`öm@ f±ß`8*uŽË@ê‰fêùó:Ë™rœeSg,ßBÃé^2šü#@|¿„«ßÝIÿÝ#¢3ùÇ(9\ %C4àyZ‚/5Å6–ÅF]S(HuáQªuÖ¡W>€©§ßÿj–Ö_›‹±Ƥìû`Eœsüªw©7ùZ¬ŒÞT^ΣßWLô»·Í(Tê €·Þ ÿÑ…ü£ zå|â ¨éò{U= §©qIByU””Þôß­m £KdVg&}½Ð^"KrØþtvTÓ²s‚_%B à ~UHžѿěþ»cE"xÅΨ]²¿RéAŽEÝÍTºYlê%™?xÛ*ÏüÚ)°ó‡éœ•Ì„Y5†Bû@ÄQM¢âÞu+ÿãv*ªzÇõSž)íT÷PçÌõW~ȬÞVÛhç˜ÿáFý‡S?¸ýnð«?´Kêm%2µÁ?$­ ?¿ªG¶·X:^E¥ÿÕC½•H­w¥þãMˆªÇàïúñ§_ÄØ© 0+x›ö‹s¢¸zJKHÅÀZý6ÙãKñø»2üÕ®«ŸÔâ–cfï`Zøó—âqe‘(uVT@…›PBÄ@á¯åüi }*S cEg‚)­ÀâÜÄ^g#Kˆ"{aI/²âsŸNŒÄü¨Bê ØÒm"6H‡ÈM²—Û¢تssÎaocðþWâgͤ¶ð}„ýwïkóa:ÁÜ.§rö‚È÷ŽÂ’®ÇŽu!fvú'å$$N\„~ q©ß.¶˜ú«–‰«ÍôN8ýK®‘©õÁâ/„%e–<(6Ñí;0¨­x£)xÔiÆV*Fƒ;$/½ s8øÕ7¼¶Sy¿Y‚U¢¡qie¬×÷èqÌmDöuä"¥\oZPgŠF^Wä¼Ú ¥úÝ\Í(òäò>§5ù`10úúXÎÖè*¡¤º‰UNDßÈ-àW›AζâGªS?üýkÍ•Úð«ŠXÁíDØAäÛÀµWÁ´ƒ1_iÖÄT§ÿU3ø-ð©@È¢þ /PéÝͼ…ŸÕ(Ä»Íð ÐùÞ‡ÓeÊ컌GÖ. ÖÖ:óÖ¢â Å:Xû­è›fÑ¿$‡‘’êÛà«UÐï vä(窂!uÀRÇ7ûÁ W”õ˜ÿ±žúÁkÌ?ïF~3;v¬© •Ÿ@ð&ó„Š–hj½Yäò6u;õ¹‚@&l,ÄÒO4R!™uS^ë>“+ö’{M@9»Š¬È‰?öÒøÌ}91Dÿvf©` ’‰{¢šêÁç<ôOìäI•cw¦Q-e²Òø†ôÅj`Õ‘¿OuHF5{“ÃÒó=ÔüÚ³Ú+ÃCÞà”œ–O±÷ñ±Ì^ô§wúh%ÂÖ¿#zJÍË{‡;Ö!«'Æ·KtÇTä,þ‚ÿ„ÚæØX‘ DÉå<ñÒ¸A–¨®ò HίåÈ92ÑMñì~7¦ãF£kUY³ _ýßkPU2D³WJ<7N¸5™y YÍþ¥Õ$ó •¡*YG'{ ýóÚ#©D/øÆ%‡¸ËŽ”µ yþ|>¤¤ Á¼aþ`ºPç"ò?#•zY =ÔRÿqNuصJmæÖļ¡ÿUd´¬Á?MÇœÄÚ×â9]ÙÐ_å$§ ô úiºñ¦ÿ©}&AJŽÂÂÚœÂ_8ýw3ó†» U o¨1yüãÿͧ[êµ/ú+oÐφ è£duf$öN?Ö§¼•q±<è?)~ÔÉ#äòõatõªŠ×XÀû¼ÜÄI¿]ÿŒùýÂÛúŠº˜äW^sbµ79Õ>üM|ÇîQ㑊ø¤2Öx‹Q’œæ8ÞnÍ:ŸdF=4 r_ÿú|][B@S©£d —‚j†Á øcMœ¨uzc¬FJ*&¶’™ô¦òíÊ÷ËýIfð«Ì a£©LwPÀ“:ñ= ,åIô,3°y‰ðn¯ñ —yNÛ‰­ŽRõRCÛÐYn5þ£?èÞøø°çŽ®>.=êÆOôú›¹š â†r%qâvc)u·EFòÃðô»;©Ü%Fq5ÃÉYr‚_m$‹¤f„®݉’Çcá›à=.Q³ë¼|ÄîœqÑèMþñ:Ì5ÒúŠáœ´¬à]þd/p%'è(HþQÌÜ„®ÿ¶ð,ÝÜ«š;ˆÆÁýùĽHgLFzÁתMdÚ ÔjXTs7'䳞 0Cý Ý´DtDz‰G¼ÁwÅoXšòÆvâ 5PK‡šÈLa¤¸ÿñ!¢E‚þþ2õƒÈ?.Áׇ xJVZ„©¶ØÉïî-å…-…úê½þ£I!PS}š>‡>oˆv×ò¯"¯“'oK¥v 0â°d¹ñ¤^âq„לýnNø´Ä§¥AŠRsο :›‰É]žÅÞÆ†¡n‚µ2˜>Ìëûú×çÚìywp:_®î•øû;Ù¨…Í™‡eÎ$W€6ùQ½—ö<{Ñå‡ú«œj5îø}pÞŒDÄèôóDtå©èXgêŒyXh¦êáaÕòbûãüÿ¸¨nþ±D]¥3ÑŠ·Ü©Ó»óàÉÖ'ÿ`n5ókßéÑé,Õ;ºæa%™]>üURðƒæ®77øz/(E™73–ÕFñ:n hÕñˆ÷»ƒù£Œ2šã ÎSC˜Žþ»^<©ýÜ‘óøäƒ— ú4ýÕìAI,øiöðÄÉy)'ÑO°$sb+ÓãÕ¸¾þc#Œs*p¶#Äö¶9FVeÎY§0O:ýFÜñ“¿-Ä6ßȽ°À¾Øú|ô¦:A/‹"L9}b='ÿè ~5kÙˆXüýV6ÈÖ -9´i¡Vì¨=¥þc Xi0³ºälÙ±ÌóÍat£Ú„þ*¹} ËÕÎṳ̈¥¾ðçÍ@Ķ3iÖ–æ!yPî0ùÇTÑ@½Nð?&ýQ?xÐadGæ×îÄ¿%¥^o1óJ¼@Ûæâ?fPÛyߪՕÇE[×|£¬‚ÿȈ?zŠÿ¸ÅI‰)+𝙨›¨|-–¿´åGwžz!úÛ‘Ôëy£ß²ü#ƒ¼@wô-®õ–Ò)õ8ÝžÀE© |ö‘ý`S$=«Î™¹­Ù LK¬VJ;×Óe ÙÍn2å¡ôl©³WJ Ñ?qƒº\ÏK¼ãn쬺}Q~®þ£¬ÙïL î„…oÄ|ð‘[Ý­Åâ¬Ê¤Žùð/¾Óð‡í7Õoj#HÕÂ^¾{ý €0XΙDÂøwòÐå"ý¯"£¨¢÷ÓÿâJÙxÇ\%ÿÈ$.Îü¨ÏT~Xp6È?"îßWí€Ü‡^+¥,+gƒ§&¦~¿8ÈØvXï‹xhXèÚdÞKðÌ Ãt¡øþŠïi›y{Û±“3LÐN‡Øý`ïó‰Éùø²…,DìyÓ»Pþ#ýURæ‹%ãëû²«dð±Qwâ{ÞA*£±QÑQî*°×ð>Üás¨›„ËŸ/cêN3‰·xë:Xñó keag^ó'ÎüÚºe.#—¨)çÁÆïÅ8óÏ3ãeþt½¹Á×{@)L¾ÛÍÍ(Ù 62 Qg=r¤ÌØôfp ÙYMð Ë`$ÉÑ÷îâž»:EÅ2úïÞ ^*èS­jà| ݧ©9¬ÇSìKþáô/ia–¦gSUüâØ÷–f5s'v*¼ÇE,àW,kNOï°o!z[O£®‘|"‘†”Ž•‹š™ðA§aYóá?nZ÷á­ë›‰aJâ³â]$ÂojT¦þ#tþQK „[Éî[‚ʵ—Z®•t\jGýù*b£ßb×3ï tmg>,Lþ‘O²›ü¸aŠJ¡v8V4ãþœ)¬ Žôĸ@þ±~¾k©ŒO.SƒÎ´š=×|,g›…-¼à\<Üiþý‚þ mpˆþí•5ô¿J¿þ‚“vT…#üùT8Ojg¦Ñ-ò:‘¹?þc¬y×lMÇaj;‡âÝÍ~¨.“ÿot=‘iê íþãQÓ-  ‚èÃ4õäv+úf‡õNC‡®Í̯}ƒ2ö½sOé¯9ì‚…ÙÈıýb ‹ÿ˜§ÎÐS£¾ªD4V@Žšô¡bjª>JÓ¥å’Ùöü0І1àaÞf;®»¡´Y ì8®ü %e3¹™Ùoð õƒm@œ‡ ìÉÄ[ñ oôâÝø&ì ÖÃÞo?¦‹"•“æCjT¢QGÙÍÊLþ¡r²ŸŠgF2Y:DÇ–¿WþÏÿz‘ü#X]¨4øÇýK²1ÿüí“ÖHÏFÿDÇTšhQï¶Ö3c$2±xðõ¦A«{«Úš§ô†™QZZºÀû3çq ú«{Z -[¨óüá*Iÿ« ðµ=°Nͱ¯„'üGrV¯.Z‰Õäoµà>’á¯ñ¯?=¯ÆÖšˆ/¼y[AÖÃrçîh™:ˆ…œôËAþ£?µâ‰`Ð#ã?*é“™Þ`ïóôµŽÎHÞ•ü#)ïb6ªKràED‚?¯£öàdo™ˆOKÉñXêÔœ¯Ê cGA‘Ïa•Á7"g˜ÄIMª‡³öʵǫ̃ëArˆú‰p0ýɼÕѵ6 [؈½^…- uòš?èßÞBýÑU»©eµTè|‘¥çí5é¾Ðšß½4~çš‹‰`cÊ}hØt|èþ]Ïç+¢t¸õ+Õz¼†N’舎à·Ë“Å<ýêf\×wêØâàö3ÉRœúÁôLÌMFVÑÂõæ_í)¥,ñÊ ÔiÈŸ QǸ t®Œúíf õȯjãÞÁ¢ ÂÝÏUŸ!þ¼Fî5ýnØÜuŽÖYôGOPˆïù$%{Å.ꀲtÆo$¾ÝGŸC*÷èÆ»Æ%%hãqª"Ls8lÚR18Ì鎮}EˆK2Q÷Ë À%Çö¿Dÿ«&Ä÷[ÀL¢šïY±ˆ¹„nUmˆÅO€Ô¬–õñ9µ ¡Vl®)äjëyzõaÚÃ9çA6Ål†"l Àѯ/Š=ŽÎWƒÍ¬ÓûxZf6_áEs~҉ơ֛(£÷»Ãùòä^)ôÞB–5Ö\ÁõÆ*Æì§öYØšetoZ‰Gþ“Ÿz‹|î ÚÜÂrEˆþWÑÔ}êIòçºøªpá]`‘ª3ób úÝ‚ðï“AÃNÐõʆa2ýKzѽe)'‘‘e2[p-t¡߮zã?а;ôW*Ò™Õü“ª¦xŠÖ`&LÂkX¶n=d>ÓfXùL–ovîvyNB±×ÿéO»”,!æ~P*«?Ç+ï/%üG/-P+¯g×/õOÜ®TÑÊÁ ЩÏ~²þãr<ºÈ{1ØÖüú3-¾vF=¦÷]à›}µoêÏáWÅ;âæ{øgõú]yªµ$dyE>1z;[‹A_[ÈO·Õj8³kľõá+ü9eÀ!›‹eè'n£á.н,’Mìù?ø\›þ‰ À>’¬ÁÎÇ _NÞñ¼/hþî@ H‰Ý[/î†zgÃ[0—Úüjj@7¬ñô»9±ÒµÀZŽÒÔ—8ª<.¿f:£‘$BýÕsm2hRc,òIx‹ <Î,à8ó°xnr!Ý‚ý'–_Yû£'uÉ?RJ$¢þ# tTmõç¢:«ÆüE £'Qs,v'ñE`+Þxãdçeõ€p.u]ˆšƒHhèwƒ›œæ}®@„~Ÿ|¦qMߢÁ·$nvê?öá?rÀÿgä‰wp½¹ÁËnQJô!盀¿Hv¬f öa$~c<Ó}"ko?¼ ý¿À¯Î³øï„ñ—žN îAú¯5‡iíÅT¼Y~ì ýð*ÖÅÄé!ý‹Ë5!êÑîáW­àþjƒŠN&º.„æh3 ÝÁØfÐMë ýGn[“¬YÌ?ÿݪlA7†$­ÙN:wQ7­r=Ü-ª¯ö–{—SKÆ"§¼ƒwëŽÞ Y`xНÖ*þ’ÛI¨Q†éíÎ=ê œÿÔ•T5îE¿ëAä´–h&#¹Q%r›y(ý¯`1~X¢ä:à?ÂëuU]€gkJï’  9o¨i(MRTøC\ÂO±ò~ð4Ñ@/ÆÑ·®±rÞy4î/RÁ¤]‡&,)w#ëu".ÔÇsL¥@Žjñì{cÿ#‘lgÝXç½¢V˜ý¯€B÷âç¸(Þã<èUyø¬/|gªì¹ÚW°ÿv¨‚fŸí<”/ÀõšêCÃðKùá?Æ“ ¦^ÐîŸèƒZvLç2¢Ðùä$ïõæð½wÀHRímÇÃ^$ó™Jý¹êfŽÞjg1‘#JŽÆèçu‡{º 5×cùÇfÐû Ì鸃µ¯$·±'Âw"÷ùˆâ'=Ùk‹Pë½W>¢=oœXDñ»‰,|Á¯âÊ‹ÆuH¥©>x€ÿøýT~¬v)ÔKŸyïSÌ+lĵ­Îr[ÑS}!“?]ÓW'È$“xן/3S[_PþL’—étA|DþQÏ¡¬&ÿ¨ËÔœvnë--yÏ DøU¹^WõKXè½ðçKÑÔì¥óHô±‡À¯æÀM¯œþévöÊÈ +ÓEª­k³Ðiâ*ùôðG—‰7¢®Å¤">øÍ4¹Â¬oQ•úƾæ0y¼ÈÓ\ ÓCgæ´¤îöóÛ¼ëmP¼Ô/DD{ÏŒ—">ÿÈ¤Ý î¿»ÅQG­Iö1‰úÁWŽŸuµûÍ"ÁŸµ‰¸raeŠiªTÿfþ`WÑþãžšJÍý[Ç™J\‡°'RÝ‚=ÞB=iyå…š¬'±H*Ɖ«ôˆK%úãÑÝT¢¨mÅ3ªÞ¶±Ò:Ô¦©rä¤mQBtÁæµDçÓ­m4æþJÏúÆÚxm9gú-×f¬fDã†>ˆxþ!™ÈD¬á#¬ŸVõF¸çœCéƒÇØG¯½HD´“‰¹Sqýªq¬»ôœ¨dÝäªÃ6zÐÿªv8+>Á¼ ³îƒ}€ýIî2’ªà=ØÔx¸µ E§PÆÇßÃoÖÃòýŒÿˆ©4$ã ‚?OÏ1N¦Iè@fóTïå)®§Ï Ê“õ‰w¼œÅGŸ%4%Œ£ô¢þ£1|Ž­nÌïûqòá?^°^gý¾v@û€­ë ‚5—ìkƒ¾ùš>0Bt>uÝÝcŽ2ÚV1Œ»9 Ÿ“–3[Gî;WÏAÓ 2† 1Ý¥N’ƒ¤!Ùt Åà Žpú«Ð{gþÃ yÛè›Õ“,¨ŠñÚh- Sá ò^’úójðç«@)]"‚þJÌ›GŸ%F…:ã¸Ì{*¢–Ñ®®Àæî€ßºH®‹~“j’’ &7èŸøþ#¡œë[nUç¨tXd4ÆççV¸­ØC5Ø¥;¹VvU}]úïÆ@/:^öÄl„?kÝ£sÖýT+é—]ëœþ|9QH-ôWî*C…§QeÖ%º¼ôÇ~3™/Ù%X/ÉÚ†‹Jt™¿_%K™ëÈ´fâ§ÏqE ¿* ]Ëy3Le¯²F­ ö2()úòLäóŸNßRÌO_ ÿ±ÞÂßìm΀io60ÉŒ2î¡®O$s›üÃÅŸ/¥~ð+JÆÛì»ÿU ®t-¦ÌzX QÁ¥Ã ŲV‚ZŰ2½ãèÓ(:RnC‹×”¶²±A/,|E;gì¶\Y¢-­ ÷ýîmúïfƒ‹_F=b<<Ò"ôWÞ v­…é+󃳽2*Xed °ãÈ ç_˜•r–áû UiCDžôu¨Ì³ýäkÑ¥ùœ=%ŠÚÆ™–õÂÌc5eþblë:¹ÌÅÍ…Îðƒ8Hmˆ¦ð¿¢ß=èH®¼ÿ~"Ž÷Ž&ÿX¿O9þê…Z›ù'‚§P]qUÓ¨ÕÕÁê%ð7ù‡r[ó5À#ìù¹˜_×)­øU?-þã÷òÒd CÈd©6Ó7‹Ã¢ó£b€ ÅišÂ$Õ?hø—ÅíÅS%9Øvñø.4Q[È8²±„MñCÀ:â?Ú³;â‹7ÚA·¿ ûµ´áàW5‰|Gcåü@ào‘u¥¿zI8ø‘Ò\ÔÄ«Åßn6 ¬õr*ýÐî!_IÌ3?†®èÉÙ¯õðL»õ¼DùˆŽYÛ½ÇMÝÐò†³b º‹Üÿ±MH´Óo6AoB·Ëìa¬à(…'Á»kò²=¬ã{Y”¦j6xžQpúɱ GÖ¬ï>„ذ$ý¯ìºïÓÁÄÞÏ‹léú«Rš#Œ£Ü¡lÑoét k;G•|þ{JEãú í$ýKVRyQŘOœ½‰|'ž4-^¦¸óÉuè)G-Í_ŒÂëö2ì¾,ŒmXÿ™z&ŒÖpÖãÈ?ßß¿J ÿ±‹üí¬¾ˆ÷÷ÕÇiÕÇ®¥‚_M£I_ð«BXÝ»x¤¯DÑ;õ:ðç­¨ß>r ï-£9üùrÔ]©Éæ®ã“59ÙȧOAÅæ¾ P¿Ñƒ¹>wuÉ0¤4¬[B&ÁGœE \œjç f|˜õâ|o‰Qv* ºÛ—hë° rªSÜV¬­FŸó%׫†êDþ‘î‰Ãdgþ~%‘~ëùÇ0ò?e'¬~î>æ }ûmýEòÌG¸X4 äy¢³JFOp§sÆFòÉ0ù]éèì?<¬3òsÑS“xëNƒ:Âe§þ£©s9üÊ{_Õsã&Ï…=¿ö•ü‹~RE©ÊžO•Þ™`þ|°¹Ž % ׳p)“ñF±e0"Ô®ù«?ð«´xµ£àWDr© rží(ˆ]wz)úaçÁvÇ·âÈj0/*X…E'ƒódêßOx—2\2ðØØÌà͆™ŸŠ™ªr þ£½UšK,_汪¡ˆÛ‡F,*èVú'öÛ߀~÷Ouâ_BË¿¿çÿ__:R¡­ýþñÖQý÷/I¦¼¦þü¥ZQK¤Wв»9Š«yè¿;U½…Æë÷úïªÊIí$üG{˜Ö—̼@öqþcùÇ æ×ÆV#»íßïgð³¯yÅ-"ݳàí AËÄEô#wx&K¡$I/†2Ïö¾zûgìöýcàWõÅM,Ö6òÍuX‘F~pȆøÞĤe¨oËüÌÈâ­ö+ýwPO?†û¹¾˜|Øž§áO„4=*»¾*½dxº9¿ÀŸVÚ±÷bkL£¨1‡H?-¬wEr›U ®û± ˆð=ù×Tt„†V-œ«øA]²Ö#ÙCýMŒÆþöe%oúèÕƒ­XŒÿ¸D.‡ÈÊýnkQ÷§üGvð« ø0ÙéðH*^·>÷ƒ>‡'¾ ÈQMôñ>øøÌ 4o3ã Q5Ìþ»»™"Úë„?*Ï]Ø=,Kþñ”+Øžùx¾Ú'ò†ÞÄÍ3¹¢;¹¶ônä)­¨7t>¹®{ÄQ üªµ.ù›<çv½ä4kÓ`¢¶¼×K3ié45ÝYù<Èñæç7QLLÐ’ª¡;t!GµûÊço¾Kæò uÍ Ö¸bpÏØýô 8Hÿö’h”F¡ .K4>‹Ê¶É즱bD¨û¢Ðo¤|[fü¶†¼„Âû$ùGb,ún…Òæxó2õw`š©ñ6r’S˜ä&—ˆ kPy˜Pé¶b=ôÀÕôõàW ДuâŒãË‘Ôæý²³„^ðqÀ¯Öyƒ~¹Ýå ÔaQ½&‘·¹¦^ À±Bñ“D%â•«°OuAáÞë×µÄσ™?ØýÕVê£`Ÿ7à1‡“9x“i †g:ˆ7~+ŸÏX¢ÿ•TV ¿Š‡¼Šâàxg)#³ÀAlÌ|p*ãˆíпäÑyC¶3k‘<æ}ð{mð÷ôbóæ® ÓÄk,ì öÁCg÷F‘혆û‘>Œ‡ÁÅFÃÌÌ¡ãºiy˜OäÔSÛñÈ^ä¢ñÖå9ß2b½¨çô«È?’ó\$&‹GýG#P–´òѧ½þ㙜ËXƱû·bÚÕ93?ý±’JºqŸ«Å”4¶¢Tü~€©ì*"êCá?"‚_%‡)Ÿ Ó± ýUUîÄds!ùÇgXõQfMy‘ªD»IW3¾aÏôâ ‰ÁŽL)~_ðøÕÛa).tൣê?îßžCy >ñP-¦Åж)%Ù­G…Õ jQµ#ó?;~¥— ëÄ£µzBÛ‘jŠÂÐN1ðrýn ­—¶4ë÷柷¯±gDs"ÚRÌw=BþqXLvóH+Híø+ê?B×»Ž&ä«ÝôoIþqNulþ1bï (»º‰°6:–»1X¤ ïÁø“×Õ´ ô¿*†åGN५`#]õìÆ#˜•ø‘+Dë·DŽz¼8áfÂZ°²²6À[$€Ù+ ¿fwJ¿#š¶ìaÍãìøT°›µÈ¼£Æýª gEU[…}oLn½tîùG ,aubÖí<ÿÆBð«­iZØI»þ¾“+~¦´Ë£ÔVË‚E Á’ÇçZ=/l™×džíjø"ÁA6ács%6óé~•_ «3ÙºÙÔ ¾^#9ãsüE)¾V'{ùÂ+/íüù¢úJð»8Ûqä<×A jéµO®ë 8ZhÇñfŸQ÷&’NÃÎÌoìro"QÉZDZ¡»@ÙRòS2#|Ò%}‡ÞU“?Ì®ÜHþ1¬0ùÇ-øÁúÝ:ÔÖ#ïØ„â6€9׌ÚtqßÍú™9ÎÓ(ˆ"ËAè¯þ0ÿÃRž„Ö7–ÞÐ$݃³ˆöj’D¿·M¦¢)5…S8ƒºTVøá½†à?2ëqÔinwº“êA”²5I7ŸîØÜDT†OÃT”Ëá¢Roð’±÷Såi£ªX_øó³Ä gÁ0?jMÝÖ[BÿvO²H:O¡6H®ÊK.eö³áÏbñUð° ðñcèH»Tp$yÞ1jJîSyRÒ¢þü½c‰r„ŸES#”°üù9v¡.5uC‰í`Y÷™]Íe貺2Gð*ÙÛd<‰U©Õ1RÙXþÃ>\Ié­2ÌZc]0‹Z#쮼\Åw²š c ¶q¿~JD&#~¯-tmçÿÙ«`VœïvþW9Ýö…óGᾈEÿ’ê̯ÍAÿö#JiVÙAþ‘†ùƒcè}ø™i¶¿óä8Iÿݦ õÉPéÄ£â#Ž:R¹£MùàÏçÐ?Ñü­ã¬%¢½ô]ÂS_N”ºHH½ þ#*ˆòíì•Ðc‡9%õÇc¾­*­Ä'0?Ð’Y X…ŒJä5Äp÷ Gñø~GáA^—ýÇu¾§2õôCE„)p6ÿq —{ü ‹‘L×Î bÃ6/§Â=gUÙª¶‰>ɰZsá8~Uå8·¢ €ÿHÌ5lÁ£D×chöœáÿëCÑ–Â^öÁ3àìnˆñ\±¡Ä¬Ox²ÚbuVp¼§àF_í‹êFýùÏú_åUÒª%±î#ñôa\3{†Ñ_诖a“èÑH”ϸþdyúa7æ’ßy‹FaÖŸ¯QŽjÈ#ÓÈÍþÆŸWáÚ—&w‰b ÕÏk>ÌÜŒªMþ±æt%žô9u••è-óão¤¢°þj¾ÂfÈ—s&ë¹a»Ãûòä×Ã{<%bÎÏQnb퇧òÇ× Õƒýgí±øñø1ÛêÞKÒ »¢'hMøóuÌìö¥óÕ£ý}x‡ÄðÓp è^G9àVû…º/ÊWrÐøéE°AÆQ¶kpéÐòБ0«Ù ¾æN\øå½ \méßîÿ“³N¯”TKÃWŒ£ƒCd}šµÏd˜=ñ“3ñAUõÄÌ û|Â:¯Ç;,Ä×WÕž†±â e¹Ö›üCC¿[…,ð(qAA®Õ2¬^̧أ%µÑw£¢1–{=\Ezò¸XøÕVæú‰>`gPC€ƒ= Ê7ÎÈ+2Ž8ù3ÈÌl6ýbƒùp*c¹ž{ôNÚÇÆÿêzuX_XŠ£d-vý _•Aè$ËË•è{vɲ诚ÚÝLˆÿ3  ÞŽtK„ü£S¨;}G‘xݪd•3ÉSžbÃã³n1¸òËÆyúï&‡V,A|_þc!gPî| Ö~ÑMe=ººÙmÅæ`·-©*õGá´‡ KyHÆP™i²K™_û‘è^·ºPg0ŠÇ pãE©„y‹7]Î{7¡>³»ÛzsèŸXݸOXÖ胥>E‡ô…ôÎZlÔg6¸ú«§2ÐÜ€^l:“7¢˜L>·6eøU^c~ˆüã‰c±²Gu8ÀzÆI˜£, uPÂÚók'ÉÖô·õ§2Û¾z6UÚ©¸AeMOª’¤l—»°Ô¹g¦)¾"ð'_ˆ*‚´Ý7öRøÿ±K¦¤sû'8tQŒd¾d>ÓQ¼Smó({aˆböu>A/Wgþ1CÙ~•‰è`|Ô*¼ÁMYߪ‰‚ºøUlê>š`¥À‹Ü•§äXt^Ùe~z`1’ckȾ/I¾ÝÊé?v)ÓáÏ£ƒÃ6'öŒNýG-0«ò¨©}àÉ^Ò]¸7ú«Kæ$Tbõåa:g¦¢¤=óϧÂ讕WÑtÄÿWæGítx(ÏœWú•£Ù?®L¦ÜR<ñyµäÚZ¥»k³£UÕÌîxšõ;q•Ú%êK©îaþàߪ‡º‡šÂv"§6@Ûˆÿˆë¶Ã[;xÄÝÙG Ö|0E⬨Jÿvdx¯–TŒAâÛ=ŒÂ^óõçÕÅò­Ä²sˆA’…Á4ÿ»Ádüà8£G ‚•Ð~%窤 ¡~°»u¢î &öKmwü —iµ ¦èº¡ø¤Ãážs¥J¦ü~ £*ùGªˆ2ä Ëm¦”ã‹„gÊ ë6ŸúV /Û|®.À£ý…ÿ°ûؽCÀ™–[R/žÿäx¨'ØÑ“à*ŒuœwcQQq)_ܯ`n¥ªšv¢–<±û+q]t ªä“¾ 䉊·ºÙ£Äéo9έdK@Ö¢ß ]Ým¯»[Ù£µ@ð‰ÊŠê I'ˆ5*~Æ—ÁÉÓÓzÒ›(v18Ø:zı;]suª9Ÿ\×ñ$ÿ؉w|¯Àçä`NÃ4Öš‹Å_ƒuŸ‚ÕŒ’a÷/9ŠeNix£föÛGf×T R\9üÖ\¦v“x¯´D퇰„o‰-ö¼Ç’Á®Wƒ¯{“‡<0þÀ›øñdg÷A§uw˨÷5]Ãáx¯XxÇκ­;£²WNµC~ê?î“”7Sa­›RÁ¥b†zntCW8êÍäÕP»%TǹízÌl:ø[¶Š;ËHʼ»Á²!šàø¼äƒ9@ ù^à&¿QŒŠ'Ä ÝŒ%\ïÐýwÇŠªdP×ô³è¯º3Üÿ˜#»RÙLF'v¶+#.Ò¹)9½anA;o¹‡,v5/ù úŸ8oF÷v=¼VøsOòïÖØÝô¹šJt_üj´ƒLÆÆ¯š™óà’º3GêUþýÁ+ïpc²Ï›†À¯æS)|›|ÆÞýÈ?’r•£2Sá£Ó?q9“·6›—Ð_iT¸ßÉÚJW“=<{µAÿÊ‘¤G¯ÙÔé?6*»´Ä(‹òìg¤~ð~U±¡ ®ËãAÞQ˜ÞaIÌ.07¨zLLïÝŒVJôW ‚ñ«ˆz!0ê.Î]¸U™¨uñÐ ´ {b&ý›, ^…~27‰ ¾‚Ò ¶ŽZ—Í&ÖP³'üùi2¤£™„8齘JW¿HøXb“ó þï^lgþùkçÛ=p´T2ºí3çÂ}I9©4¢‰=ÿÃW±çJ,wTuª¢NPªñÓ©Øa/|›ùƒ×Ñ µ),²i7ð]áÔNC¥þbµø÷Õ“ˆÄFOt»Å°3yõ%B×ó+TI„¸KÓà?2ëñÂDI¾ÿ½ëëytf•á?ÎòY[z : Û–Âq~ ¾þ ¨E_­_éhÖPëªM€á¶°Å‹AêMžÂ¶D\ç±ÌðW9ÞËàö©Èx/„{o8†ÀéÑðЇǤZé6YÖìgY´\GuIüH‡^üGN]·~ð„ŠÎÖh‡µ·£íbJ°«&u-xwlÉ”hð¡wÉ:Ò¿½úOñ«øJ5¼/ó§ð‰“±ç—E7¢ËWôo¿AåÔT›qŒ0@¯‰‹}@ئàOwÐ?ѵC]÷aõƒÃàÅ¿á?*½Ðɉ+UÜ%†ñ§þ@[¯Å–ËÐNÕGŸµ™Ìn2ñûSòb!˜K×j žÔ«öA-=È耧ˆWTß–ûÖÞøÛÉä8¸³ÄˉȻ¶³¢7øâb}&ýÛ…:w§ÃÉEããö“ *°>>Äú6bUœ¨"t-âú²t¤ÝÀJ…™Jpolzëµ u§(ñÈkè±èqr ‹»Ÿ,Ë[C1NcKãÃÖF±>`?ËP?8“ );u5d ùGò­n+VPMìßb2ÇÂd Q_ÇÀ{Ì%ˆ'£”Õ­Ôö¢_UÙ’>+5Xo:~k ï¿™ú m¤Ûz[ƒçG]À×#³ 'š± üezàBԟ¾%¯bõ#¢égn¢FdÚ¸½ u+Ф5–ˆŽÎ›ñÕ±HÙ'/ËÞoŒ/êʹfÁ ¿ÊI5Ê@33sÅ+R§ÑŽùµ‡Q/4ý9ÛÁøê÷ìÊh<;#Å<çz“•mêkØ¿òÙ‡ÊKÐq`%â¡¿ògÓ\Îv=¨U|ë3|ÅCüð,б¥<‘ɹòûõ4â¼hèô ”­Áüy^²ÚD†NþQÈiU‡¯iFÇÇ F w—zû.L9;“ƒÙQáÏ+“­(äEâNÿ±šúÁ6ìÌaðçéøÌb¾µ&¢Ôõ’÷éõ¢À…ôa~ívP¬ fy¼DÍJºÖ›Ä88ªPˆxRÿ+ýÛO;²Qþýã¡£ô?Î?R+»èÏ}œúóÄÌÿ¨ÉîÚ⨪ÆT÷¿ºëðûþ&¿ôÕ¤Vðqsø³"ŽvQ xKÛÿqŸù¿W§’X<$Š>Hœ?K¼X\"N^¤Æä:¦éèw߈aN™øñ`ýÑ ÔWxòöb¯¦c‰ÓåQ L2a-Š]üƒþ‰iÄ m×þÃw*O­@i„…[@Ôˆ‡ëΚ—áÆ­ŸD~CxpÔã„Û3ûÃR|#šÒ“œÍãAÔ;”x&&ùGy¼Åz´,÷‰˜4c#Ìß:üAÝ¡…WE³EMFÔþ×ÌêoüG˜àŠDâ[@†RkñÇPÝd ëí\”Ñöü(Ÿ°Œï%V2 XˆoÌçã‘Ѽ·D |äüÇ5¼ÙÌàüc‡î0^âÎa¡½ðIÌÖB«cí7X¢,ÕÚrVšñ¹Ëiò£:à‰õñv¦ùùç::¤\…Éx™ Ü©dôÛŠŠ k~Ô6GEm—IŽÝó$+8Újò™éøô¯Øà>0eÁêOÑ'E­ä­¯$vX…9¤·£~0tÿÝ©j=üG1=’/ú+O;Hhô…ñØ úâEÿÄ ;å@ÙF‘ÑTê ¿ÞßHCÿ’ÐøÕså™È€Ýމ?óÃV®Ç¦d*F:yÜ8-Ò+Ó~· øÕ îLYØŠ­Øû X¬zªPóÏëªA¢»â!g¸ï ©?ïƒ^€ùçóa“ã‘3|0›K‡*[S¯Xœìb µ¼¨?ñæz'ÅŒ5xÇËè JâŸS?¸…úéé°eLkõ)Aø/*÷<æ.®¨-øØj`j;r£bªéÜ5Ïó»?Kã“ÞÈ8R/ Éc:Ve13ÕôÆ>ïE¼ËlkN—eSüÇ:T ÃÀUð«äd ÃCpÓé_r_ÏÇÛ§?7‹$Tiö— ñ=àßÐQ±|èækZQÌÇòµyŒéTiÍ5<-`iJã?r‰#¢‹ÓL¢ò(Oe.öG.cªÐe%Ë“ºõa WGÁך¢eH͹Œwëkf²jП7­ÌFþÛ¨n½qާùû oS†À€*`5xZ£ëŸecë”Y‡N“èP2477Y‡¬@³µU…ùY/àÏ#€n ¡ÿÕ|Ñ*TAº‘ÍÈ(~_ðøuý]{ÿ‰£Á?Öï&U(õ™ÿQTË­mV*aé|¥Ô„j-u¤úŒìgS!Â>Ù—Ž§ÔŸWB#’Ôºv™I"•'tªm¢ÍÒö¨CLM {÷ïf_Ù‡‡a’7ýzÑ- €2LMLŒ  1‰GׂÜÿä'ÿ²ùóÆâ-kÁ'Ñç0ÊQKQQ\†»ˆ ‡…Nÿ«×ÚŠŸ¬òÛuéß¾J”ÓŸ¶/åè>I·Ç?)hK¼ù˜Lù¹HÃQÏÃõÑ•éÕ^Á¼t´+‹àÏÓè繎Kˆ½Š²kÁ‹ø`«wðNét¡…×…Ò_ƒë‚';Ãþ¾¦_/Y8w-þ#!¾à=Î'Cå9ûnºþOó¸Jeð«¨Æ X™øx˯t‘©‹Wf–î úXât“üã=¹ÓUršÝx¦s`Ž…Ãôì«PÁŒÂkD‡O©‰7¿†ÿ(¢(Ábº‘Uîa~Ô2‡ÊDiñ3“©|+’€½Œp>¹®û°Ÿùçg°øQQlö š3åüæ|½39š½°êŸÁR.à?΢.J Þ¶…üs.ÿÝÖiß~À¯ÆÑ¿}*v65v ”ÊxÍU;"c÷³Íÿhƒ6§„¼e4‚^Á{dÀÇ\†+ǹˆžíùk!?^+D;øøÙÔt¼Ç$¢n¼ŒŒÿðg¢xBsªŽö!óŸ’Éu .uù­c|.D1ÚP×BñçÝUAl¶ ER}tÀ-Œwz¬ýY {¿KϺž³\¾§^¾>¯æøá£†‡ÜKŠ­l~¥ s; ¢5wï ëUÄ ¾Õ¯Áì&£Y̼Þ4XçRæ;&û)f4YñÍx™üÞ|áTdÅÉ!ô»Š²_ñgÿ6"¨jÆ å•:SÅ ƒÿo’é(åOs† ‹ùpuùÉ&º°Låîh²÷ÿ¬Þ5Ä4×%0ÌÜÄ-×_EFîHóKRïX„úø“ôo÷„W‰nÌÁ2¬%ºpr1þþ|»#¶âRGÞw4úÇõçðçÕÃjn­æÜ¿d5ó£ò0Ávßþ&þÌqO;MuÙ_`ßDF훚‰Ô÷¨³)­-мUó‡Ž!Ÿ¶_ñŒñú9ÑkWüÊÔs+ÓÕL0Z1ZÄ×#i®:ÊÿÞõkÊMòÈÄÈ÷Qè¬Á®Ö0è±éÑyþã¹Cê &ƒ^}Ð|]öÓW­ÑÌöüÁéX¹Ýà÷ì£ônˆE¬ϸÿÝP²ŠcnÏlXKÆTæ`µ¶±cƒ¤oÊHÂBXÂåXŠËXŒ˜†}ö9@sÞ´°«êbljrësú(üGOøç?‰ºü‰ƒ[€4/Õ£Àx_ÃNš†/gð“+~6õ$‰’W­€Úy6Z*ø{ý‰hÆõz¦/…õ(CýyM,ó ü‡Í‚œæN`ùw‰*Z„0Î{±²ÿñäl2QÀy*Ñ+ácóò˜Æý ókcG[[O„¹^‰oÏ s™„s†ÿX ¾“ì*1c"ùG<2«:ä¹°íý@FZ_Az‚ÛùÉÀr¶pop·^¡»žºþ|õçÉ?ò`åƒÀÐ>°7üYá…Ñ ¿aûæŸ?Àx2åjùB%Ô§sŒÄh§ Ó}#tÿö›ŠJ$Є^9ëáP„N‰‹™_[Œ©QƒÍÖ +¶õ>õyå5z×ç5Kr"SÉá}ð:üGÜ¥þ|5ýKÞ8¯t€ÃóçIèU[=‚ÿȦy+ÕÙ­›%ÔljUužúuÒù.¿ò"Ðq_»&šRwŽØ>/ó?¢ª“QüuµuôOŒ©J·ç!¼5RСõµX_žMñUíˆ.HK&&ãO,Mû¥¯+”Òâ=8ÓmlÞ\òœFq:{TG‰ nàS2ãõˆÔÔºöðϯƒÖ©XÕAN6¢Ç_Eº ^” à3û)1]&2°,øÑ¹¿Pÿ[™†Õ²õ»±‰™mÎ8#¿Ò0½6ëmOmEž`OÞ\… ¡U 眯«S@ÖzS~~ï!1µísó³.€°yä 2±«ÔáÆ„Ã˜Íl¦n?•Z)¤æƒÝ ’_£ƒ‡Õgåç(¯vsÔc¨rŽÁ+û4ŠÜóh°öâ ë‡Ùÿj­²PkýKkÌàŽÚøU>îG9r—Èðç÷µ-Z,ºg "Š n±%Wn”à ÈsÆ8Ÿ\×]Yâ¨@ÿ’©XåÅØ¡Ì¨¶¢‚³çwMe…‘0è_™zr–¼ë,ÏjVËc»ÂݺOuÌVð«Ð ±è¯F‘Á‡«}Á ¯áyNÜa>G.ìt#°ÜXçú°!«àb“-Þm*'Q¡<´ëØìWו ‘›H¼-®4¥?ç}†Î‰a¨OÉ\ècç3Ï;ªühÔ@¿;Ÿ¬«=ŒÆ1"òydcµu5”ÿh¬êxìº:èw;p¾P6Í¿*JôÉf2ë*ú¤Á¨»ÆQkpŸÜ¢4h“E¯®x‡<5¹áQž|ô">¿&ùÛ]ýýKÖƒU- _Kø,0Ë9¬(Î&ÀM¦ r ×iÆ7`î‹S?ØÃyÂÏ3ð‚Ÿß×;?õâžf¢Î¯/óÏû¡]ëlæ£Â/+ý"Û™ƒ¨‘h s½˜«7ü*šl‡ö7ú•éÎõ¦+GUE=?*¶UæšÕÉÜh]²â[4 È?ž“•4§®$š1_´˜úwÄoÅþ•üc›#ŸâÂm^:+YÝö…ó&„û"‘r\i£^S›ié´}J1V9í¨†jªº:ý•©üÿäx¦]&ÿèóEdÖ^ª_•Y识‰Ú‹¼gsª/ä/«¤Êºo@¯¶2…0¾ÈÑ3gʦý\“ÁÆÿØ,ª8ýÇ$&_&EÅYÿ›‰þ%Ÿ±øÙ¬¤è¸êÐq÷¢| –Ø‘ž*s˜µÕñTºv½3ÓËž bºQÕz ðÇ‘Nÿ±—þWƒQ¼Øû8=þC3ëX›ÌfTºœ¢æ^Ð5quÑÊ`Ý¿+&ÏÒ»%!•¢ýÍì(CLžk?°ùìF1ÛyÆÿ»>ôßuu ¿Jê¶/~ýHÒP?ØQ½§Çì î_rþ#ƒZVMÿÝ{ŽS¿¾¿ŸZÁ‡X—¶d‰7¨@>bµL¹…¥mJ¿Ú*ó ë8+ ýÕQV¼À}Ÿ)Î O塚åŽ!JR]Aóƒ†&ìTtµ¹ø†åø›8lK*£:ºÆb9Ï1Ž8œðH[ÜÒÖ†½„ÛwkR>¥€[±|Iåéûëð… §^à<;õ¸}N}¢ð÷œ3+ð“E X™tîIÍç Q¤Â‡ ª‹m <_1¡M ­ŸÂÕï~UW£ÚøÕQü[b$Þ±qô9ìX]˜€yïF¬FBç]äKž¢‰–ÚÖ>åìÔ—æ‘ Ê›_ûPü ïÓÕÔNÕôÖ(Žc‘yø“øÛçhéà.Jh¡»ÛÚ«mQöjÐK%2¦ç_!ò-ÊÓW†¸õuv“à?¢›÷UGö±þ#9W"9\@3ç“k¯óŸG}혘Æy,†qÎÎqÌ'«ŠýŸ%Œgûˆ–w7lÆæ½$ÝÚÀñy:ÞÑÒÿ*tÿö…ê"Ñ;[”Jý/F+Ø¡áœW!PúþÔ  ÿ8‡öö¦Ñ’úóe°É1°–/È-¢Ã}—C½:ÿÐÑzdd_ÇŸÅC¥{’ü#ä'&>â5j)@ßýÐïbÿsÑQË®?òÇ'µÆ«:BõOìBþQMßEæXŽœÈööüAÛT˜ YQ‹Þ…ïoNýyºì§:þÍ)ÒçZW·½¸MQI¼þ j«GÁ¢¿Z%ǂ͒q­Uø·Hfrk޼gŒ—Ýr—ÑÁ¤5»Èw ~5Pôú~+_Û”ãÄ¥Œwøo"ŠàWuq©ŸÛ†MÍ †SŽº£ÙÅTg~²Ï< ¼.5üG<ò–þb¢s½åJ€jâó¯°‡ß$+‚Ì æõÆüƒNW‚É¿‘Q›-¿ŠHo©@2¹ø¸­ì…žDIeá*Š o‘ßé?–+‡ð¹Øu^dâ E^: ³²Q‡Ø†³|Åd‘­ÔüyšýÉf6Àö/Gu¬[)d?´#©æ4ôlä¯Ý»ÐO™ ®›è«xs:=™Z/³!Ý,ŸÐY ªÕÙ\JýGëyWuyþ<«4&‘“Î1ܤ6:‹‘6DÅ‹óÔÿë/®8b*.$è•ã%¼ˆôg‡›úîjýKriûƒõ»«åÁ¯êâ?¾P?ø+³0\kGV®j7Ds:gdá©O¢]B<•ž¼]éß>“ùµ©T·ýëú˰_êÌžˆ¦àþ•Á¯®‹²Ê 5-O‚C±}Ó›bȰW T‚”Fâ9Öã,ñå ¢ÐŒ<ñE ò6|¯!•©=¨ NÄü¨_áÏkh‹´¹dOÉ>vè«AoˆU#ó <Å$ÆæGw Üh¦Xî9§QÆ“_mt*çù\‡ïIN×Ãt»Z–DßBfsV/Nt¿žÊ+\þãùÇgøœqxK{þÇ@†!x"»¯kmìè*üG‘u2óSø™Ì5½ö…c§•WK“ŒÅÃFÇ£½ã([s­žësñ¥ô.D°É8ºwx»’ù,Ï»³¾Jh.…‡kéMÊ:m,G• qIüÇ…Bø·(Â<õÕÚrMÊ•XQ»ûZüÇ ðº[" ­nÎ'×µš¿£ ýÆÁm¡¶-*Ïùð)ô¼Ÿ€e„ ë,Î]8dt—:β«È{úi_é¯àþ±H&ú”Åã¼Ä‡=EÁv”þ»ᣠ‘ÔGÛY4§ ú][w•†á1>9Šœn”†ÿpgŽ7ŠÁ>hÀ=\‘ÒÆwÎ0IÊ“ðù¨\DåB|øîš26]§Ê5ÅÃú%‚nGœ“Pä¶wÚRÿQ‘ýv^·Œœo”V³%**¹‹“ù CI04·Éã<Ñ Çáݶ‚ÖÕŸiõÜÖ[Íü¨ìî‚ÑÌé<þc%õç;éÍZ‚ÅK?­ò1Ž!^芧³æ¼k =«RDsç|ïØ©œÀzW5ž X»Ãî‹J¡U³°Ä ™|‘… ò0ÝÝÌIò8½FƲâ=ü‡/ù[G#)W»§Øî\oý¿é…ñDÛá?tö*}e˜éZ¬“þ#2 ±Dúñ©4­ä†ùÌÍìÔ‘ÔtV5öèE™ÎÄ­ÿ÷±Žþ‰Y±KEàŸ'3Ë:VV¨ŽB`ýÍÔ‚Œ4¿ ÔnÿQ“Ê”²"üGt²Aùû}€sÿDfÜk—’ç5›YyVu¨:'÷°Ò_ÌòµâZÙ˜wUXá¤%i>ý®7*xH@Ú¥»=ÿÜ…ûßt4ýÇý¯âR—ÝN}¬–Ó k;Ov—·£:ýKj©sÐN=þMýîmÇm?v3îÒ=‘ý•PG€_@¿»ÿOâ¶¿ßÛŸ}ÍÁ5©ïFµ¶u©x‹ÿØ­&à‰|§} ªýƒP´H¿´âæG5LÈ*‡¼BvýnCq ´íxp ÑŽü9 øÕ¯Tô´Ô†ÂŸ×@-8¿%€ßž[û‘\& 5%Pàæ ˜!Ü9аÎ5ª2K¼FX<%uedÃÉ©¯ O³[v‘cÎ~m+oVaÅÕ_ð¶B¶¹õ¬éua×Z4!´‘ëê .‹à?ìJùBÄçÇÉPjÒWïgú“*ÅÕ*ä?ó¨¥ ¢öýn#Îõ ý/’_õÆ C_ñI—±mûÉA6Á”Õ\ 뜧PÜ›Ü(9ùGе“Ä¥ð±éÒX_ÎT®¯6vÃç|֚ƈ ~•¨±«óÉu­¶ÇQŒý6•¨w ö/§„º¹>|{ê©qXã ´¤¾œõI#‘ ÿ±\Ó‹{{£yülVÀ%Ò¼@ÖDÒ9›² ,#ñkÑœbþÇú'2‰º¤xûË`:RÎ5ŠÃtuµ_‚_¥b?PyB¥¸g`ÆŽcóãÃhŸ‹IcëoÆ“©/‰!— ¶­N•ƒ/ùÇ6T|Môêj·[¨ÑXÍïWÿÑõCQÙ—ùµméé»!Ø¢þM útùŒþUÕ9ÎÆð‡™¨~Eð>ž%”ÂxhÏ*WX¯Wü­þüj'zàÃF;úï®y¡2ÂÚ‹b`±ÿ6®ò2PÁ+0Þ™Bæ2æˆNΛƒþ‰ô”¬÷šúÛ\¹ÔF^jæ¡2«§2–Á ÿq ýU?zwâë.êÏDZZiOo¹Šºi‘s½ÙÊõk<à|ƒŒ«â#GWùá–Õ–»P„Ê˧pß+™¯H÷–3²ŒyB7©„\Næ¹Y/ÄN­êô«”ÕZüGn2Ê dN7uiæµ²€úÕ$ÿØ#çQ¸3SáC¶t‚ZŽªÌ°­€& 6þã«(B”4ѹ (ýÑ_¥‚elŒ²=>ú«é°OUÀOÓ À›uf30Ž•ŽÅRòU4Iñ.CÌìüobU ‚Œ9Gˆ‰‹ÎSÿ¯¿8ÄüÁ¹·Òì7çú¹0•r^馞RK€_í îß~ÄÑZÍ¢¶Q碶}ö›þC(oè‡Ú efnø¡ÚÚ{<Æ𫞢5õWTã7û_¥–Ñ]k=¸TúfŠQX¹¬f$ÿ¤%†ÿPôwjèÒun!_=V,µ½°;4yãÝ–Q1•‹œT×{‹“ÄÒ÷ˆ}Ó£¿$2ŠÛš ƒ ¹‚ûë¦Z_m þã‹]OðŽØ{,yñ¬èòk0à}Ó£ß]åfÜ×ùÏ¿²)ƒÈ?6‚¦&ÇîÍ„ÿˆ‡ÕüOÿ«R cûˆå¶Ãì&vJª¿Ws…³â[ê£ þÃKÿ˜ü£ qR%âÚ%<ßÑ©’øŠ 剞ÿqßjO_ÊŸuH­ÔTëaß'áÕ²“Ñ(ð)ÍÉYÞ“yœM™B›Èð…÷‘ XûxÚ7q=.ˆâaÖÎU|´îTž$ªGxÏVž£‹„­n¡o£ÿ•Nv°™Eø»Iœàü£\˜õƒ§]ÑkŒÇf¬YÉž³™8c–žþ¼ˆÌ žüjXã7°ñ`@ö“ÓØlÒ]ÞyýCï…êPøêz"ì0QOaM¿‡È+·û$ðÒv7E»ÃozŽôþC€_ÕÇŒu_>Ñÿ*Ýa˜þ‰É¤&WË^&ÿH$O1ÿ¼´™-˜?OAþQŠS˱'MA›ÎÑw>Þ¿ŒžN]ï¶b'5)h˜?ûµÌsØìdKdø“#LbMn½¡þc LKOôW×ñì5@ï"Á§¯0΃ì¡*äwS?XƒÈä!üù@üÇßtÞ#‡Ñ/k”Lh­fb`Tð¡=ôcœN÷åTÎažå½?ÀŸç3F‹FÎíS9¤AµÁwT%—éM„VýÕ"jójÁ*Ï¥O¡­ºav&C: 2úÁçøcL(é†/¾J5¯ ;Þ \P=˜§u ÷ñI¤%Ë+ÂÃäVOð«b N1¬…`NàW—©ÿX@¬ìæ|=¸åzüð&æGí Ñw‘K^Ôy@ âáùõçÒ“þ»+è§’„‰¸;È8ö‚_3#°þ ªUš£A‹/mýn£þƒL–«ßOøùÇdª{FøŤJ)¶ÙŒŽ“•ä y[N¡ûûúïž°>šù,:Õ£¿ZDʸt‘LÁó(¶ƒ_}æ©JÂc~_ù¿ÿõ°#£âê;ûÒQS‰å¶Ï~ýr*W”æêuµ”–LóWгÊ^GmÕSí¢ö†ív(7~})~3ŽòR»OtÊT:5µk Vç”wèÜhs˜†žLý=ž¦’ø:䣲_\%5:ÞÉžb•0ô¸šõKg~Q‰ 6‰“w ,c½ FIòVb3Lß]¾}üT‘XÜÔ~¥þ¼–Ö‡þíˆá—açÖ]Á%¦wƒi #bù@´þŠú¬L¼t·a]ÐàWy©ÙŽD]Du˜ã” ªoÈã–’?”âù>†ä.Ï¿ñxýµš=œsŽ¤ÍÆ¾÷³:EvñZt§Cá lÎNâÇÖXÒYüt5V¨ 6?ýKjà?~¦ßM¥´VëðÄÃs¥c•ÏâèŒWb-W³¾>­K 0¶í|'uÂŽz÷ª€ö0ŒSµŸâ.`|1Y¯¸É>b û™~ekŠôSÚqí-õ×Á]–±¢—>ð.×¥¢îê<äZö¤ãø<c5ÇŒ ‘³Á¯f`çæñÿ@l÷n,žÝ *!Õ!öäÉ¥Ÿ>^‹õƒp†:SôEQ þfà1„KÄúO@¬Š¡ªJ¥Dó•dq¹ ß‘o€MUP,µbþÇÔP÷%†úEäC——åRX޳\Çcðç‰È l. ?Ö5À´À‡ É,ä…`,’É}ä(óŒÎøÕì¡ò~ªJº‘ܱ=½š’o%ÁŒ“àOvÀ Ûók_›ʇøŽô/KFs&g?ÕåÈôD¨ ‰¾¼çEîƒÍŸ¿ÅNo†©#Ñ?ÑDÝ”ßL„’h|Žÿø"×Q=4Ÿtô²‘ÕתýK„²MyzTƒÜ»»µ/\OnˆÅ4©¤˜F•œô€*IEêÏoR—ÞÏ´u\ƒ¸")d3våIøÇ¥Î›»J¹¢~f‡>$£½b$×s€vÁ2kÔü†éèMçÝÅæ!ª_É¿ñÌ—1Ìíx°?áùËp¯‹`!ê:ó•켔촊ìÔÆ´4{eM«úâÊðç'åŽl³ÇÀT¦ÛÊ=²†(Ôö…«‹D¯Š·¢{ÒU…´K™¦ åy"Úó¼æÐ#™U¸b•©ÿ8Nm‹°¶Àx[oéªØÜì O¡1Ž€"¸‰™Ê˜ ì£__¸BCxLç©ÿ×_g~Ô]ç»ÿQS‹Eýy>ö¿¯£];Ñ¿ä%3ª8ßåW^$Q>£¿*GÎÃÔòÌÿHªW^i½EGø‚çèwS…zÂþïU+‚8õ¢­–±ë;…/õçì*QL­y|R{õ/ñÿ~zS‰®V »…ÿ(Œ¾ÿuǬÅîŸ%ŽNˆŽb¸H&®ýRþQ_›ªÍBWÌ â™ÃºDÛ«ø7q[=ú« (ÐR’ü)„{ÎEzg¡þRÉg S_”ÕΪ^æ‚Û$–;‚WÚgmÏtèÔð¦Ý‘¼Æ/ö"cC´3€ûÑW/%…Šo¬AtTVò%œ{MæüLi—ŒþþUô¸dÝ_E"¢­ ºæ7ÓÿÉ@–UYÿ‹ˆ¨ÄŽ*]ŽÀyoçg ð„Y?¸†) ©‰ˆ—¬Ä1\ÀsçÄR¾àh<õ ÚNò¹`$eÁ-×peÇRýq”.ÙåôÎÈÏuÃO8škûÄ0®Îhú_h@×íO òm Æ=µ;ß»‰^¹ñŒ-ä3LŽ"™«÷¤Iè+kÔ¾øÜüý!äÿ#xð]x•õì¬DIEy^JÀŸ·wúõÁþ#%èä6â¼ùBÁd¦—ÖBf~˜æ}¹_äã3ļŠR¢ýàKˬV\Yžh0¦Q ΢1±–«~Ð_™BýyBòú¦<¯iõèf+êÏ« ‘˜Y˜8ßZGýy«}šãHàx]̤è3?ˆÝ Ê&=§£ü+üÇQò[Î+ýÊÑþ÷ßÍBÖÙýnU-+ý¯ê°»¶9ª¨9™þÑI}AŽsØù.¿ôB „Ïl„åʈÕJžˆ ÚÛô/iÿ¸ª&Q£¹íßðÖLŽê»ùGâÔòôä»)ŠƒŠ¾Ã~]Öò‹qÔ|Q¿…·Hðϯ)Ï”Râ<öx ‘þl,q£ÇØ\!‚¸faןϤ‰;~aÅNô£Ÿ~÷"=ª–óéËéL¦{ÿÑŠ(ó•‰]’ Íë q ÜsN¤Øó×<¦,ÈJ°¢{ÔŸO!–¯Àó¸ýî~c-ñxTý®š6œ©Cñ¨¾óâ¿› <…°„UAÖí®{iˆÍ>ƒ ]fºÂQЦºô¿*¤üLiQ) ˜@F•ÛÕsC0/•èþÉ®ê_†ÿ°ùƒ§¾Iþc/ý¯öRùIŸ†JM6µŠ,rJýÙFK* ;½–ÂÚ]AÅZ¿y>~#Ø›­ëj¦Eúaï,Vlj¹Mú½ßƒ= äú€f=0ºË¢Ò—îM+¨ý;Lþ‘ý®¹”£3JW0¬®FüGŸP÷å‘âÁn«Mì¼I‘Gñ{QµÆ“gà‚ó÷0Ÿ›_Éu Kz|ÀД§Ö}lÅD£A0ÿ±ÍmŪÄßzÃÞE“lϯMJÿ’90¹˜01þíÏ™\Ô¾¢‡l/¯²ZËopè³á¡™â"†¸­·Q´ÂÏž§Ê´ˆß3ý.<Ç•>ô“‚uÎ…2Ö´I›ÿy#7pGà?ü¨&9Kæ“ýnkç³IñQ®éI8ªç aW° ¨Š¿K%^rxã?É7RS——“¸¾ þc½`º™çÈ¢Æp&¦lê¯÷ 1ÿ|µr]@Ny“ˆïµÓÿÂx†J963ý¯FQÿ±‚™³ÖyV>ÃúûÁ¬G;ß—]^üª¸8¢ÿî\ô»ñÉu •ä ~°V[Ð\U¢Kýôk>æq»áÔ‚œ½Ð-§À¿¤ÀDñ­OÜD'gŠï'¼ƒþ%]ELtfÕÀ.2èåÌêV?³"ùÇ^z¡¤€Ûeí±ž2Õ¶ç{þWï¸ ̈ä6~QD62…þýîGeÅe7ßÒ?1‘Û¾ø~ŽáMAÿÄ®èw[ky´«JcVÙäHõàŸÔ>WžþæüÚôOD¹ Z’ü¥ÏÓ¨~ÊGm¢­íÕ>Ò%Áo§"ncUŽ Oì`ýˆx(ò+çÕø ŸˆÈšáëwã*±¢ûГ}!'°{ '!Ú/ͱ®‹¹ƒf(!–¾ voöôA¸øÕ)u8ìF?ÝÆ¯z’ Žãh†è͈‚½pª+ÐJùÂ|$'·Y‰.¸²¨üÓùçºRLÍMT·&81ÙŠž« õG½Ù\u}%1öâ¹n÷¿ò%CAγÆËµC]—o¥2Zëƒgˆ \«wÿQ’W*õ#˜å‹~w!v¿ºÑ¯ìÅjqàRW§¬óÉu­¶Ïêüê> $«×Xˆ}O7§eغ‘hÍ^aËü˜µtgÛÈi6û·õzuøó·®¥‚_-à %î/St FY'Vôf5IOÚÊ̯®G/óœèwÈ*ÒžQ”Œÿ|©7¸úS„™'CíîwŠIvÕFÏ‚& ¶üŸORüê€qþ#jŸ¦ ²UŒ¦|JU˜i/æ,B¿ÛHO­nw[±· }À^®s)|BŽ/ ‘ý*Y”N·ëA_âZGÑ`Õ‚¯˜ÀÄÝ‹ pyÁœ¾¡^^DíIS=’p×ï.m¹F×ðç%ðYAúuc ý|GËQœa4ziÅD³–É—Æ*¿×S™7\ð Çww.d¬eWð«c“òˆÌ­:9èû-+øÕ#:fnŽrÞȇž_w˜{>ýnW³yŒ,ï/¼{ ñƒBÄnÛé¿ëaØÓÙ·’¼½©Ò\-à#ë0?Ä"ÛŠ†ö'çz%Ê7æ~:Üæ5wèŒþt/«€­Ï%ÎüÃKñÖ²ƒ=à™ÒŒ‰b¤ÍìbA¬þˆ9W«aÐ3PExoR),c¥¢ÿndj[=é»P–osîF¿ÛS$áùj€R?–>Ïü üŠ:NЯšt’éobþà!³°5•úû-(¿o1r™ˆÎ<¹˜ä0ô»‰ÅSíWò&äËéëx›þí«ØáÆåàŒýXJ²‹xô9ê¾°ªáëw#(ÝÈØ6S)‰æçÐW% V¿$~iõçÏÈrP/’ù`¿#èAjxý¨=QÄv³ÚÁYÝDää2-` ÖÍŒ´ðç¯ÉÀÎ’<"£¨ çg.ðÙŸ\:E)«¦†¿G‹ßþ&à?úÃX¬4>íÏ‚1Šw{‡÷Ç;ﱊž œÿ±–.DÁD4‚}å>ÔÄ/ÖáhãÀ˜Ð.ÒÿjÑ|3c:ϹmëcÒ?Xkë|r]º‹þí{ o}"jÚ\àW›ØC±b3Yc",Ê ò·-`Fp#IŒ­`?ë9¾µ¬]O‹­:BíÆEôßDœžþü&¹Å;0ÃÓx“·è‘ ѿČ=-¶¿™Ì&·]%ÇNm%» û\šãìj½Ê7‘ \.5ŒF$¬úvüÇvr˜ÔöùÂ%§¢â–ùü¥.øÕDò™Šô/ñ…§š6ýî·Û“´ƒ¹:‰*ÙVWEùGÇŒÊø¥æ3; ®fu–oàWÇQ!$E¹kÁŸ/Æ¢·d"Ÿ{ýàjÑ/y 4·Qû#ýŒ±û7D2jIÉü¨DæÑ­Y¬7 üÊ—Œs"ñÇiüÑ}ú'Ò;R4sÞŒOŽ•Ê%ί9_ #€è% øÕ3,fL3+9ÍTøóÔ œš ½™ÿÑÅôcBKÖ‹)Û“œ$ÖrõÛ[Fý`lø›[ðñMȵæq––Õ€úÁH°=Ö,ó‘þcyIÞoŠb¦7/“ûw {XY㌞Bœsœþc®2_Ë ‡—‰§?‘Ñ_ÇüaUB)Õ†ÿ5ÇJªÙ‹˜cÍóXúd7ydq«®,Ú•-Š‚ªl_ˆùQÞÊ(m$ú«þøehs"³9ý€=Qéù ³ÈC—Ç9ÖvY¬®Ì?? ÃòH–¡‚(.OÒ'Pó#T$6Rþ+üÇAú'¾tÞ¹»ŽRJ·}æüQ¸/+×™~U­Eÿ’£JV9ÿ‘ÿ1•*ô玟Y•°þ丨]­Q8e'J-£YZ õšbÑ)×î¿{Oð›ókS â°£(Y¯Wî‚GM ÿ‘…("Hû…Yà¡m@ØGÆ,,¥6š½SØäÒ ßרKnDœ_WœÃFÝ@ƒ'ᑇˆ¸â“æönßmM?ÈðAXÔu`bŸ‰¤û£û¼cçÏè*‚P<‰A/†‰µáÞ›4ÊHÎÉG$Äû1f`3£ƒ5'N_L×Ã@p¡ÈDø•ñ{ðyoÔŒá¬øDKŒÕIŸÄ³×›:”ñ䃣Àñ·á?ú“®Á@Åjwüðw« Úü”ÿÈ£”Vó’UMà¨âƒ'}€uj¶1£ûÄêcA›<Œ³\|øþy"YÒQ‘;LϾœúþx þ¼š?èNN©{®_Õi ©^ëú4ƒüÈ‹ ,9øelîYû0üÇiG%í”èfØ¢ ÆJžæÉz~ú´ôÇ"öG\‹Hý ­DŸµO¿;¶Ÿ+ÚN‹†~·™‡½/JÎrƒÜâ ÜØ)2˜àA•èìÑä=5ú¨–°é+Ðù¤Ãú‚«°Q˜üX¿ÐþCƒÿ(FËŒøM~Á$¦{”Ý¿Äßð£þ<üÇ]ü‡ƒ®ð á§3½G¤Úï ù‚'ž0Hñu»ÓÝUlfûµ,8X+¢”Ât«š#ÂÈÌ`’w"ë,ý|[’錿zŠwËMÎ)åP¬½ÄÉ·´&nëížœÁUTížäÃìaþ`/òRcº_~æ¼¥ŸV 9‹n]Þxå)ÔŸŸ$;{LmGYú'6u>ôVÀ2WF;ÒžÝÚÕ@>¾Tô\+'€cD3pî´³å:ÜN¢þã%ÍI*Tš3i÷Š>_¸T€Ó˜ôã0Êàv躼+âã+[¢cŠJýú.ø»þÜ4ÌBõ!X¿{^f¢þ#¾| yÜa=ƒ8"†;ýÇFe¥–†:7þ·ÑC\ÖßËzV&º_U1ãÐój,u ûà?†¢>OŸ´ê1Ñ#µ,&'ˆ5Sk¹‰ipßOøõçmEVüd4õºivµvÔ/F›\þc€9ÍZo]¿À¹ÁTÃ$èwÿ4sá?>ŠúUaOÇŠõ¯èwPìªÿ¸åhþõ»‰À¯Úп½¢VF;Üÿj%úÝœj[u:ók¡Æú'ŽÛôCmjœ Øü£¿º[ùJ§Ú‘t6ú jáFÎîï–PÄÕ8ßñë~‘Z9¦&æÉ*@¦°\HýWû·ß¡ÿnu<~ H=0Ë'àBUÁF 8á»`Wim&C$_´î濚 '›‹.L#N^‚O²;—´'c¿¯G7Ú‚_9°'÷àÏsâõv¸=³a-U™O¾L8ˆßšÂÇ)ú:fOos ‚³dÞþ M¹ô´ZÎpV|¬n'céÎ]‚1y/fò·hx‰ö|`³ƒ}%£;O]ô7lx²°š?í¿›^É©âŒÖ%·z#žpÞ½ÉÀ¼ÖÖ·‘d2l5pdã^ô¬Î³~U@sMpóxú_õ ò==||]¼x^17žäùÇú‹ûkiäjlJ²ü-¬4‡ûô<’k•ﯶ“ì¢b\Dz §v,"ÄšœqqþÝ‘O¦Žc‘oðy¬)±|~7OûâúÏŠóÔfbùGNú_Ýäï#_-!S ×è,Hõ‚Ì®©½¬ˆþªŒ<ø ÊaUN3ªÐ¦]¨û¨D!ލ‹V|wBîÒ3áÉ Ê|’„6Ê~õÚŒ(UÙX&ËAþmï9VmÆ56TwÿÑZM‰ÿ8Æñ—a»¿|60í²§Qœùç^`;Û˜ªÔ”úÄLܸHWæÇ"cÚN~ì©ûkî΋¨¾¡qg¢Þö¶~ÇØˆzhZf'ùà XÔ#”‘©1)j„E™ _bÏf|Co«ìÆ¢ó?>:&)×á J´Å4%:ÉŒþj‘ùï¸þ¼(ýKÀSÔ7—ƒuoÛó3 ®) Ø]:ü×Bášb6AÙ®Þ§;†Ç!¯‹h \}`ãÓ[õÌ0åÓ韸ô/…Óü$¿ÒËd7ÞÞTØtæl+‘oå[DW§ÿðRæh9ÈckáÒ-Ä ý±¬he§ÿUUúØô3Ñ{2¸Øsy;¯0°„•YÇçÇ3Ú³ï˲\ú«øVìL&Éà?…0+X^thßHßIôÅ­à?vÀ£,0ÿ`>ÉùJ¶£ê>6ûü“ØGWØìÓ!:~}ßÕÿý¯G±BÌÿxGÿößã\G˜‰úóÎÔ¡þcCpÿÝ½Ž²è¯þP»Òmä£ãŠëWáUfEݨMÜ-ôΚ¢µSß(¯±´ã©?¿N7¬d¡ž°ÿ{Ñrh¤»ã©{ öéˆÿ¸.2*÷Õhd D3üÇ#ñA «ËÒ«þ­ÄR;á±õ °ËïØ™µtS/'|°7@13÷ŒÙÅeíWjî‹hýñŠ­Àü§G#㸅µNeÜ×鉽ˆ`$‡÷M _7N¬÷œË(£øÍù"";»‰1›™ƒ8¿øÍ&²†gØÙ”x‘:è•Öêó?Âëß[Û ãÝ–,á0ÿ‰˜‚ÿèFÓžƒÑÏHAþ…(졞‚ ‚ãøÍꢳâBܯ^N¥–Ú¯8‰Ê÷,œígñÏ6Ô—sn®¯q‹~µƒŒä!Þãžé2Ó_J…Yÿaóç¸úŒ!pNO‰î sæ•ñïÉZ3?ØBÕäig¿ ßžŠL63¿[/ ÿqŸþíþd ïP÷‡=Èj,;Eþ0>d.8Kzp­ƒ WgÀrââ÷á?’5þM¯”xj 8ø¤½Ô&b$GSŠ¿øO„v*@/~·ŠÝm¨OP?h÷/)Bþñ§aë¥n2-Õ’S‰F¦‡bŽØô«Ê¢¸Èa$ùÁØÃ÷£sT\r˜ó õÙ¨Z¸nš2ÝóÈY 5­È?.ÂÖìD…QOÿ¢¸×vR#³ ¶à¥mÝW'pôðµ“à»3Ñ} ½iÏPUW~~¶ö6ZÛ¼ŸäˆWx*Ïk¶BÆõ±¹6‘É!êÙmýî#c þ¨ýÞ{SûàE5öWùÀÜ„Z`¼üD_•©xé– þp*°ËÆ ÑÖ¹Ø3Ç\å<û´ÏX-8ô®øÊüüÕ*jHê’»M2Ë•ÄT2 ¢d/U£¹KYäŸøêƒô/Ùï\o,ýwrJ?¨Æ[‘”°lJ«$Õ‘À«Ò“!=¦çW*¯¿Í=ôoGÿ’è —»Ñ_m×sˆE¢Ó¬E•“ÝTŽ.1U&@æ‚ÿ˜~•ˆùç“éÿòq˜ ?xîû䙬,²&‘ SȰùUŒõ ÜßЛùƒ½ˆ‡±Gâ[%2‹ÁÔàLW£-S`͇P?¸Óìlµ§_‹>îlÁüÚôäÙ_Ä:æ<Ä^$ýWê?9r).%ÓCG¬ßFýGwôWmµjÚ9¥"»kŽ£8þ£-ü¹C}É4ßù¸è8©]A-E'sìq-N(áDf¢ßõF¿'ÜÎMîï–D¨Έvdìcôõè­R++Õ¢½™Ó îAnO„ûß»þõD¹§tÑ{àÙU°‚gþ?âÎ¬Šµ{û{fžyf¶»»»;°PìÆîîcwww'¶bvba·b7Љúý†÷râ ¾×÷?G/eSÏžxfÅ}ßk-|58šâb%qÞ;vA1úŽÌñÄ-$ ùýð¯ZhCàÏ[á×Fà6ÃÜ&cOîûƒÈ+/‘p%";Jª­bY¤GOYŒµØFáôXãå(¬©{-`·Ã<Ã*çáù¯H$¶ÂÔJE²âWuOo°r}:±ÑTή …ÅŸw€'XN¶‹¬+³~6âYšSWö»þ%±•Œj 4ŒÖúÒdë*÷Ãêpö üê6i8OByþ?wë|’êŠcôß ¯Žµ®áe¥Ö‹ëüÊÎý,ֵ̎B/ŽÁúgmÝðÀÔƒ ÙL¦0Äú¶HŠÿ˜ïxrCîÅ.úï½È×ÇfÀž¯à'ǃ ¬#NOù†×<†½óƒŸ¾‹cÛE6û]÷Ô~&°FíÌÞª@¥å=ùKù˜hÿhØÙ êú1£|©SÐñ} oº\ÿ1 ³5\u·Í¨|…A^sà?ÒÓw'º²€‘ ×iô» Ð_½1?Ê·èo“Ñ7?¹\bò DÐ-ѸÅàé 9[•YÖj+º«&¾)w/-ÑîZ£-kÎ'"‹ÿxK¦8ÌkïÉ:-¨É?HÜî¢sÞ+-l‡®¢~Õ‹Z Ôçý-õÐ,î@[#-Ö¹8=4ûVr¯it Ù*a6Öù<øšJLøŽÃûj \¢ú¢8Jººø‚ö¼.FÕÈ@¦Ë6ÂËÍ23á}+ReÑÛiúïö¿²f‡½ƽ»D­íÇz‹•åê{Îó0QD|~åOÝÿH|d[ÓÛHÈüó|ÔxÓWÇsÁ}ß2Ò˜~¼k üGUb›üâ°èäðÊ­zz2Ê”x¾Ïº/Ÿr¡ZsCY,P¯¢6¾øÕÔÅ…ðëÑðŒ†Ä:iä@¢ÁêÄ!øÕ&¥—Ö þ|1Ô¡ê©Ìöx‹: ‰kÌLŸªoŽb~-ì ,;ò£ÇtV¬IQ˜¿ïèwoˆç0DIþþÜ‹©p/Wúƒ­®’!Ì>s|+Ò)©ÿèÂü Z*íDpý ósQ?8—ùQ¨ß¡¼f~mó`þÃЛÁ˜gV/(¦è'þÖFÓ¿ýÅæåD,9…L¯¹nM§ó¾¢šrVM F‘M¤+ñ'jÔüÇ Eªýˆ9NcQë€bÜÀ¾º¡±í‡b4ØK?XÜÞDÅKmk¤WÍFߥ‘ô/iŠ3•é.xï+dEV···(Žó‚¶„w&ÞY öFzoò+Ã}Dhäü åbjQr’4Ä[$ÿxþ*®¼Hå“56‘[‹¬þ‚üc ¨üž?§Å²%V¢;vÖUêÏÓ:>sÜ€(½HL\ÞÿQK+ª]R¬îjž¶úLú[Ûð‡úÝ/¶ËÔV'¢,ÚÑþWyÕuŠCÄ”ýOÕ/Jd•oaº’ˆO‡Í bçA6‰ê÷ªÿG8‰…"ŽG{öW~óÙGEà?¾ƒ[lÇ>¬ÃÒ¹ÈÆð „/õŸ‰‹Á0OY„"ÖýfÐ_î„?\#ê⇖Á<&ÂgRD°ÝίP„H=½¶Š¥‘Þ› ʬó.ôéˆæWÃ~¤„ÿ¨‡uÝÄdêk¬—§¼2±ð:¾ó2r›¶” £3ØÕyÐ1+†Î$gVî `MV­x>øe«B½µè§\ }z¡^PJª‰›g»¥Å×Xå[ñ;ïô•ò…^ZÍ‹-ᑾ°¢¾î8þc»¨áYÇüÁ¾x ;(]cüöAî¥ßêN(vÏÒ%M%úmG\¿„;µ ü*1O®Õ1s^þã*ùÇ^ü‡ÜÙ¯0üù.2†áàE“a'ÆáS>‚E&^>DuH<´žäH»8öújMÿ¥÷¦—Ú 4¬:š…«ä@t†â ]ñ-Œ2èwÓ/-j¦†ôßÝ€uÎȑއø‹Ú :¹ü’(ê;ú—4äxVð3ºq™þ%>ô/É{➉þí/Ío̪²f¢/•E¸;õí§ùùÆ\•/JXíwKõ˜éTEø™¶è¯òc±Xmˆô7P —Õ@åscް7ŒÊe’b C¦q˜ësáK­}˜½¸QÔ„?¿ËÓP^ì…~Sn¤2c•M©ÿØ âäDÿÄE̯NL½—LkU/çðo™‡UX.=;åm›r[K5›~p”9ñn/ñ¨c]áOfã. >cö1'QcׂÜÍXr8ߎ¢%µ)åaN ÙL?¬íÕbÓ‰ak㯶ƒ\Ì#ÿ°úˆ5BÇöërÞ¶ZôOŠ8—ùÎø1 ¿ ‹´ti,¹Ö3bá=ØÚƒ°)É?¼ðkɼnè 4UýnÉ%êdÑ‹H"3š-"í·øÝš?Øüj+ÑóVôW§e]ÔXV'±”Xß{ðçßð!µP_ô w_¢©N¨š•o!ÿPŒ½¼:sà ÿq”<;œÅCÓ0Þ²~\ò®"¬g7N€_QƒÏ}ɬ®³bCê?ÚsUβ+N£,KDÞ1–ؾ>ø•'½à3à?t{ã…ìa¸ÃzTó¿ºHEÝ}ðÙØ£ÕAztíIîÃ>¯Þ¬øU=Gþ±úÁlzIþ®å(§â?.‰íùPä_1§}ÙL1TÐwÁ¯zàMòÐ7á†ÿˆ&ë…U–Þ¡ø#äýÙ™ýÁpãQUûÍh[Þï± –'ª«!öÕLÿpï¯j€Uy ~ÕÅÌ rÜú¼øF´˜û_™õÿÒñê õƒÌùŸþ¤a.ß õ¥Ú˜þ»g•Ь²ßö·ZšîW³T%ÀÒe+*ËÇ£ÿÕeøúDß±ôš¿ê¤îUîhSEsê?î«iÔdtœU„ç8GÚÃ}ß+n¢z \UOÿ±]èôtŠÒŠ/”èê(ñ}阆ñÄ4éd^lakqTFQlÆì4›°EÉôÕ¦h›©KùˆÂt£¾ v†?þÃÂñãó1;øU&,î|áé–Q¦Â"ûR'—ÿ1_OÕ U@*öÃÞÞ…r×A¢a¡©VŸ²ÿöÇÔÐp¡¿Ι !~‹…n§…_eÎÿ’ó…e|òü z[æü®þ<›ÒL­ËS9V&3ÚÜØó†¬üNïÉ_["ËÑ·ð2HÞWXª›xè»ü» *E8Yx·²N›Û‘Ч¨µî=¯EÃtPÊfú)m¿&@OZªÌ#NÜ€÷‹OÿÄDÜ›øsè¯|ð Èü8¸òhr%YÍh=7ú«–ÔJ÷F Tù V;%UŽë¸‚—é®âÇÿÓ©ÿ{ÌPG‹ùäÖ”À»ðão@‹vÀÆ[ùGA”5¥¨\ËŽÿ¨ÎÿÖ”Ýäü»ÏBAY )lw›í£¢s×:rW=˜õ\/)ÙPFj=Î3}¢4líxÚ¯ä:u kîbfpƒõo ·mID#ÃáWÕDÜGO¼_>r€2HÏnŒ¡VG,ëVüÔöOh°†eg´>çQ”"ÿH„ZxµÜÕ ÔÚ…Ù9[EkYAÞ&¯-.»<Äì¡þc!ø•v_šqÓ¾Ýð—óð›@§Q—éÍ9¼"g(.çˆÆŽmxÏv[¹.Y™k^Ö»¾2/©¦0?ª‚ÑF:3ýKœÍ Ô}L£.½©Y—Œæ0^þ,3O:K]fFØ2Çzƒ”ûj4×Gˆ™®á?Š¢b ÿaçqÁ™^á1—Ó¿ÄšÞñ%Â.ô»á6_U$FÊ'vŠòÿ±^9¢eç)+H\‡#O‰‚Úþc%ó£$ŠàItß݇ÇIÿ’CL2¼Æ}Ék¯dT!Ö‰ Öý–#ð å?(“˜ÿ[ÒL×YÏÿ1ÏìF÷0_ú_½ ;dû û×àþW­és f©ókÊ¡àWQ¥ÿ ZL.æ:ÎøŸ{qÈ–-Ôìæ¶æJ¶0û"êG’‰ºˆ>ê'µ®V‚þ‰•Xe—­¢Z”Š›ÕåírÔ—â'S+™ÿÑœh¾ Qjbí ®•Ê9ütg"˓̥JðGÇÙMĆm:O¼{ Ÿ±^\é¼6Aš6Á¼ùƒˆø€ï*±ÕþB!=O±”%·,ïÕ &«7ñr+lvvGjøÕ/櫵©ð°¢‹ÐÔîÄkø¢s¢oÜGžœX<‹etõne}rüGYe ?¹GÄÅr¹ã?bÀ€¼µÁÆV€[tâóü—§ÏÊFr¦7‘úØÚ<ÝR¬ &èˤéÔã̇9Do–°Ý˰ö‡±ö…PNy)ÖuÛ¿=›ÒTmŠÝLîŸE×ô»ÍðJÉ?|É º5+`×oˆÓ®³ ~ún8«¶ÚË0Wì?ŸlQöhCP¥f:{uXˆ]<}® Süm¢oÔvjÒ !ÜðLÝË1,ïºí†ö/ñµ5…?w[)ûsiäZ®ãÔ¨ó°#ˆmŸ¢:C´ì‹ÇJG·“{½’Α7ôè¯Ìp»q6ýw-¬¯¨Ô2µgÜKoº)¾…1/Çüú ïé©Ë«j7Ö‚Ž%ÁÓÝ¢&â;qyS2Ϳí'É?,ýnY˜§ÏØñK\Ç ÔÁef~Ô)æ×æÆÞ3ŸÉ@YÃHaÌ£2§ž”ô×:A\/rFU [;Ô’ü£upæØF¥%v-ó?Ö­%ø¢¸vÝngþàò‡:ô¿ê(˳VJ2‘õò×ðU8ÿqLßÿ²Þo¯p€è¹ÜN'CR —•+Ñ¿äüGv¦=í”AížcõßÊdFZ9"”~÷½íøU*éfX V_r¤œàB ¨rÉFlª™õA.xéöLyõE¿ÛÙ܃gV˜Æèx“{¼Á±g¶Ð¿D‘…É›|túæ—¹AÖÖ lªO{lì³Í¾ÀÜO?¬ÔûÝäì×S£²-÷òZD…w¨þ‰û”SZr˪ıÀ>èåÍŠöÌ¡ªËó™ÎŒ;éÙžTíì~ó¤™Ë¨Dÿ«bDšvY™çÑšÄ3ÂÅÇŒ B@ܘŒøF˜žöIäËÑ–5᪭§þc¦ý¶™ÓÞ þã"¨˜ ~5ÒL>ýR¬¡~Ð&³Â„ vŽSÿ?qÿ‘ʱW­ùƒIŸýÙ›'P>*=Õð.ø7VÙok¢–Q›©ÓÕʳ?ìŸY°ªUèÔÈüÚ{ªÉüóû\çŽD–t^ÿÃþWõ`,úZµÌ ë­Á¼E[åµ'2¥èÿH2Gë¿ùUÅP‰¯ÄãgáÏ—°^v*†DKzšü ŽÒmjªKÓQÿ•;ÚO›¨­â¸^ÂÆm!›‰ÆSØ—}y.¥'*ÆÇ Pho\aU#×_U&ÿ(ˆf):ÑS0˜„XÍoDùãÈ< ÀR3ÍP>‚K¹AìÍ@ÕHîv2m»nƒíªEÁôAÌ‚5…U<‰]jL>•ؼQ9¬ª?Ñ¿ü;þ#ókë‘ÍLÆ#¦´êÅ}ðÄ¡¬0Ÿxº¦Þ…\Á”çÐEKù€Üã*>Á,®}„“…7‘t9K~U;~À²®ì—xbj½©´£cm/ËÊIĉÀ¯2S¹•”{S×ñä†ÜçÓ¶&èÅGÀ¼LGYZ†wÇ.ô¥âHênz¸ÞÚz:s Û fØÎédm°/µ_4óÛ‡™Õñ{—Ðïvf.nJÙ/ðççER¢·8beÈvþÇ^]bþù7Ç»}³5Pþ¬¯­ãWéÃx^é­ÞUëÑÿêPpÿĶŽjyµ:‡þ»_þÐ$T£Ç¯ –Ÿœ%§vžLfžòMë-º3Ùú ÝCP·cøý«r N=±«Ȱ+ékèGP ü*ˆãcÍ u÷7!´¨ùoÌl&>òäb¥X¸t²BqŽzåD­Îèlj˜ÔŸG%ÿè¤ÍB¿Û$Vn7Öô:Gšÿ¡ ïNµ/@ÝEЗÑbk˜g6¢³-¡ 'Nµæ™hÒdÇ™X_ÅÏM«-†/ò¥šã;ÿ(HY4ý¡Y¶ùE] BÕ+ïø [•5aQçòde'·‡ò¥Z1–ÜOîå.**¿Ó!¤£þ£¢žBŽãž¦Ö‡±ZnG,þ²ŽºT¸R~Œ†þI¨£÷‘5xЋ¥~„ýÛW0ŧ~06ly,ÃyÑ>]Pd+ú^Í7*˜ká¾ß“mê‚Þ«&üB7ôY#ñÖƒ~Ñ_©êWjWªëNïù*7à l!WHMþq“¯Î`N÷¨ÿø&ÝÉ?f’!Õ¢}jÛ±°AUu;ÝGCÎÖfë«ÆÄZy‘/”†Å®M}J4"û…F殡slZûqâóið)SÑ_ù‘ Â:?ç=ÁŸ3-Sf½Uèw‹ÐÍâ?¦£ó»,W¢2lÌ’]˜ÿ±ÿ–.!çWr‘µíH,s ú;ž…óNid‘ãE3ÇáÙö*ïÉ–ëʼ‘•”§þãˆj¦&q,½¥vsÎ~fæ~@£4ܼ„wœ!uÇ–è}BYÓµÊ Õêw‹8â üy=ò·qÆ.ôÉnæ|#]°/³ŸÎÂ|Fõ‰:÷AÔž"Òê ZXÿQI\ Õ?qókcÀFaÏ¥•kDZùžúJ¨Ö*ƒ°= ²/5³„³à?|+°ûž ýUrƒ».jõOL*×è}»ðüùh‘–¸¬ú«4ºbf·Ï!ÓØJnU/×Ëìa÷´Ÿ6kØ»Rwî‰ÿHDa3&Ñ›<ø±HFþ‘Bìu\ÁîÅA[zå¾ãí>ÛšþÏþ#;õç=ÕÛjk-¥æ<ÿü‚­¡šýî2õÙMÇ»DåEåýwk±S“ÐõÎYÃ/©‡U  ëJØdè?˜æº“þ%s°1'Å æ<ãʦŸÐTº¢¼Ôˆ¦¤þz¬/˜?ØL¼Âžna bå‘eÐÈ6›©i8Bö ¯×ÿq8JóÏjƒµå0Üþø•Dµ&ˆoW´çça‚‚6#ƒ¸'bëNÔv/ óÌþzl6[a…úqê?ìăã°ÓÉÑ9UÇ[ìÆR<„µ‰XŽ÷™Ï1ß´ŠFh›9¢¿A¦_¿ÖLÖÙDâ;д6)XräKÖ•œÍ¢š¨õÛúôJ-µ0ö} šˆ”pÓÏéÕÎä ÌùuzfÅøò ú+|h;CO°²#¢X„ùÇå¤fÍýä4@vÌšðúW_¿ Ý‡?ßUA.älW£tÈ ›{VÉñä†\A?[ú­ âlú“·„ƒÝˆG› š¿ ]èDTXñ±ðwÁŒ¼È´¬îî–O²îþ úïÊ_öÎu|0^„ú‹‹²!­3j²ÔôÕ6ê3Õ´$—ŠÀF»SA¾šwL‰ÒxÈÏcr‘ 0]áó›jã¾6áΑ/˜™q}XV12€(]g†^B´H¯™ÿqŸ~…–˜™Êd>›ÈÇâM«è1ÕaöN[5º¦Ýdy °á8;'¦•Ï1ÚÓij:• Éè×÷ i øêš°Ÿ&ëå{ø€¡ì̲ú;­u˜õFS?˜‡Èä*ƒYèwýåNð—(zñaƒóQñwËaDë$ b Ž« Þm+¦0Ê3¿¶³ãf|²TÎý—‡‡¯n8EoJUË)&‰5*ƒ±63Ò¤2Š)7X¤‡Ì~´i?×·1þ>½w¨þ»C•+jþÖR„ߤû`X§êt¨Šf¯€þÊ™~#à.^¢”µò@°'º’™KˆLÚ£ÉF\”NœýùÇBô»™ØMˆœTÙZt—ÉÍÆä2Kè_$qÈÕm:~õA)u¥],{4zg3*°âsâ—¯"èúAo” cÅ_`Ä]Á¯Ò‘¸1±YêIú¤%‡¥iÉüó#f3{æ-ž¤öÞNuzóžõ‹XA·´/ÄB,p\ÁîÅ1ð«ÏŽ·{eëð?óç©”+J_ð«ÆZFò«~p·­±š”üc²ú’úßU•9Þ<Ì‹dÊ+킨@„o¢ºµÃdQO‰ôµàÏ_«FäÊÓ0ëew°¢GEQjÄSÓîuˆJ,ÿ±X»KUâMaFh¥Â,ü‰ŸòJiD6sûQ»ºýUQ0¢>âº]oüG4âð®tE¹¡-ûõ×ùJ+ô»3È´¾`­À÷ ®9 /0~î$à»+'œüê0Ïì/Kñ… ÊP¸/‘¾&ÊVg"Vy¹MaX†ËdÜQønâ¯þí9#YѪTáéÆqfõ×bÌÅ(P…-ÄÁmˆr—ó]<@nØC0eEczÕDü' ó?JáOå¨R࿉·¢ÖAeö!o›*«‚=øà?¾‚]‡šC}šú ¥•2…º;Ê+îhuÎëV²(c‘ôÔ}´³Ôî F­"YþR}w+¡~U|F[0ÿqÆÖþ¼=ì{,xºVþ1¾aêÛQèMƒP-_‚ñ=7Rî\ã¹ÏTþ»ïC,øÕ^µ‚JBLì%| sÿ+üvy”™åé¿›ÂxDw¨<åHzn4ÄÖ"¿…cn8u“̓Z×|ôGJǵº :´Ï²‡äIŒÛò>µt©‰ÁïQ?øý•“ÁÜý›ø®ÝXÕJÜïʺ0wº3Ú‘æ\•«T”ì$GàW3ÐÖV¡SÈJ*-130ÐlJ½ß$£üyiâðÌ ô »°æÞøjaþù¢0>æ<þ¼6gƒšZn!ŸjŒ”]hàW…¨z»D¶P¯â ÿчuê‚®äu£¨+:9® “²I9O¬^ôFÅPÆâ2ŠÕOT[Î5&ÛßÙ9h–¿z@ýà`s;kWä™R\øvbŽc½EÊU|ïvBg‚¤˜@ÿ2TÀ7ñ?Ç ßñÔ]ôXÆkã“'éMôíäe‹Áívë9ÄüPók7Ðÿ*-J=|Ò§ :œyè?ÿ!èÍÕÌlËÚyP‡Àë5Çççä4ªñ왲*UTɈ?z9v¡Ÿ2‘þ»)ÈÈ›S˜DWÍJ U•9Óí°ï ˜ÒÞ‰þ%¨1«~Ƽg|‡5s5ãËüü2ø/à±ETÐÇEùÿôb;ùGÞð†ùiÂ쳨¿Mzæ×¿j©%Ö<”b¬rÃÖ«ßU ~õÙv.êKñ“éÁ¯.•»©®1´£Ì?_…&«ƒh‡Þ5Hµ«vœ%Å¢7ÑšX4ü$ó`”çèw3‚t|ÖvÑ/ê=3Ú£òç¡òMi*‰º·ñMgOæ”Y`(z‰]x““ÄÀñá@zß?ŒÒüÁúô¿šE¦õ…ÌÈ“¨[â1Zâ?ÎãGê×ûw>Ùø”[ÑÑ–VFâ?6áoc¦R—’‘ü¶ž£Éˆ¿¹ câ qŠhú;õx £š¹ÊÁ[°Ý%Œx¹L²$™ãÈ,ÉRìÏ^áîËWåNk¡Þ„úô>W)ž©¨‘ÿq“ü##,ðCS7Tú—Ä3†ƒ,§"b'¤þ£µþVñ³bgf§UÃûÞ!²ø—ths{‘T“.Ô̧·àIó±Ù ~~]}Qs•`µ—¼û¹…{uO«f½E¢,@æ| Àòo¹êéÆPò!ü*?¼²¼´3þ#¡¹\q¹áþ®@OVDN ¥ß5ñuGáw  ß­ ~;ýV K܇úÁ2tõÿqˆ ΋®Œë 'TX}éõ˜<ñ’ •HÛô¡ØäYÊ)êóÊ= ¯¥ZZ„Ž/ͯÌ{ÚJÿ’æwrêSå®2ï¯ùÇê¯ÜAiK¡•JBýÇGþ±‘yÉy²J‘“Ç•-Doð+7´À³LôW¹©ûhKÍG>ú€@GAÝÐá?ªÛظÏèU¼¿ós÷íPfÃëÆ"ÿ¨ÛKÏzX×lˆ~÷ZƒäÔ¶´Ï²Ÿ1KÛ»™ oð« ž%ÍTD‰ ÌÿxÎ>3BM\ü¹òÿýÇ=¶Špì„«¶^X—r„é”@æG½Q«j µ}Áõç;lÕÕj]u‹úüêDÈFá•©ÜÔ>‹vô¾I‚Õz¬^Tß)=•kÚ(QR[¡y«ùÕŽ£ŽÂr¶ê0îp±uÀ1òR]ô8ù1Xuª¿LÑ—x=(Šý¯®(Njoñ„Hë0Ïób–œDŒOáÏoƒ(û`_ípÁ}ñRD¥gKSm³6N”%’™L.³ ÿ‰ºæ":¤N°éÐsÝÏ`hFD¡þ£2€(&=²›°KŽ*=jð 9Á’w -â«ãˆ­Ó誖?’«øE]7Ý…/×ïŽXö4N/Š%݈2>; /ç Âð4¤+ú«jJDÓf­{T”ùQ®(ÖrÕ“pVí8Ç@}ö^E6G|™šŠ@øýØ úæ6×¾Dp‹§+ûµÞ<Á±a‰\¹zw±÷…Èü>[¸ƒ¾„þ%1 üG9œÚ—¥x­ÄA¢P„ü‡—­Ž¶ƒŒ!þ|‘oR"DkÒI+ôN}@dF¢‡+‰U¼hiD±öô߯×Ob]¦ÓiÑÕì?‡zTí!&p<ÈY¼¤¸w_®Rleo0˜£DG@²ÞÀ65VÉVä;%°¥Ýá":ÈÜL «ŽµÙ+ áµ,ÿ±™¼"Žq–ûèƒfÊš~‘nMIée.ìŸÈ?ZRÿÑ—Î2eÑo}# â_e¸ùmÑŽt"º 7AQ6]PJc¶9JÙ%pñ í~æ}³7ýKúááü@qò£¸»F÷ÆQp/.úípõçwˆÂ›ÁPŸE1,Ó_.&ÿÓØHh?ãoœ-ÊŒÊIµ_ÖiMî±ÿüß9A4tÜãï¶ùŠe+’µuáH&:ƒ‡Æzh¥J¾+õçžô¹`6 ÿU ³%}§v’¹¿zF-KtyýnH5ÝBæÜg½ýÄzoä !ÑüÞ†ý¸k–3W¢eZŽZy“yÍ@ Ý|ßà=‹õÌKø\=+kÏ'öŠV¡üÇ:-!ê“|ÜQoê¾4f‰¤´§¡ßU::–8™ÃÀÆž2o±YÒã,Îf9åñЄçìÕ¯¢!ñLJÿð‚?o%â³C‡2Kp•~¾<šÙÙeìeÒùg³Ÿ¯¢Ÿe)X‘®FYû;îÉéff—Óy†f6<ԳɸÿÊü¨«Ì¯ ÁýŸÚº+±#±(ŽÛîE4ð+wê?jk=´Áõçóé_’Ym­®†ÿúÃþ%6êï’-T᩹-òhÕ·JCô»ÃQsž@•Oý³ãÌ/tÙ–ºì*0Ç9AÄ^‹Ê 0åÚ< Ÿ´Õ"U”çG]§Od%q‹½s„d!QwqrÒ÷¢±¸Êý'gg eÖl4CD¥bGmú+âø) ";ˆhžaÓÃUXuZÉx²s±$¡®h…˜齉‹þª2ú2;Q|¹„žOYée鯖R'ÿ’ˆ3ö¾7A)ZdõOÔº!;ÂPï†7#–µdþ 8JoPó1°Õ'©ÿHJŸ‰Íä]™ÿñ»JŸtô¿J2y&G•%»à†ô£¾oYTï‹GÊ‹¿ü€8Žm›G¨o¡þ< Ü^³>®lÖº‚J½åÜ\‰£w¢Ý-ŒÍ"óšKOÜqäûá-‚¾í%OYÌ{ޥπ ØÆ¯Ë³UÿÀ§é–Öʪ?_M48šnN[É ÆPr¯y‘~ ¾h³’Rë2 ÿ±XñÐRÀ%Þ‹.;ˆÒnÖ±Ekh¦€ãŸ³ŸúÁnT£ß¥ÿîc3›Q‚úÁRø’4pÆ=Y¥*ãîàVg°ðßøÊ|^s¨9ÿ1´î;×/Ôe±Ë±Þ8&ý¼Ô3ɳ Ž/ä7‘‘,mýkÑxjâ-èww ºr²L ¼ÍÁíÔ® Î?Æ“ÇÐKˆ‡¢šÃ¬£~Й§¬$D"¹B$“׌Ìÿ˜•„êŒd4SÉú£ß=h 2÷`õ˜ ŒÎ¨aÞaÑp¬ôôýy€GÐ_©áP?˜ZiÖF¿[Oûј _ƒùçì1í àèËûAÅò˜™© ÊBfýFÌ£ÂVà3_EI­óó=ÿ}ÜeKªûS[g%O˜}õ÷)Ê\×ê1µ”‡üÃRo·UV3Áv.¹Ã‡?įŠ)?´Q“'¦2OüDÍÐr1ÿÃKß“ÎF‡ÕQìvøóø›‰ïzcÝO '>DMÚ}QPù¬æãk…DIqLHý†Kûó÷C>¾Rü•‚ž7Ø2Øå°{u‰bÐ÷/?qëp‘@œ×ö„üÚo_5ÕúÞÕ@5‚üãQÏ"®‚°Àvì`1x…t c‰±ãÅ‚HïMåop©¥ÂÀÕG ÝVH÷zý ̦՗0Ï$9r«~02ýî u8ZKý ¨ oˆÁXá‘ Òxö»ÓGp%µ>ø&g°‹)èÎâã?.ÿæ\ÓR?˜Žãꃢ8=¶×âÏݱ«õ‘ø¡F° -ñšÇQ[¸w¡'˜ˆí˜.rii÷Žã?:‘W‚ø£^;ª¬ »Å†—¬¯ÔÃXUˆi'gkå·À-³F8¿öŽ­-ók‡‘ÍtëO_±uÄrP‘عΜ«K²²® )ñã:P±D “ôZ´_j‡æ«‹žä:èy² ßðˆŸ%Ž%o«ÿaõo_EïÜëôuJK•c*iЉQQsƒkP„ìµK¸;­ªÝ!;‘ϬÂo\%çË2–ƈi‘7Œ¤0ƒ­®ëÆ3˜æhô/É;õ„Ø~)^ÞLõ™2:ÌŠ]T;YÄJò¶Šð5ˆR’Ãv2 M¦ó† àªÙ‚z¿诮½—¡òü6hÓ`é;?¢µ ³Þ4ô»9ä¼y-ø£Çú5¹‰ü£—±B¶û_ + °ÏK¨V™FÇÂíèšF¢‹ÞÁÇ# gy¥»håØ5¯m§”óäWUðõÈ?ºá5‹’' £K}ª"šÓMË—þ%OÌ^TjxÓ‰v 9µÙ42¤¯Ä ‰ÙEȳ7Qy¥~ ¿Š^ ýUr³Q ˆ7¨Ÿ¾4îc>]¿‚>Ñÿj}ã3ÿ#)™Ô X˜-ôOô 5ÿc•rQKSQR_zm¡¸¦?FŸ›™¬m¶™ˆ9Yo舲œcœ‚æì¨Û f™ß2cÀ”_°«ì°›ž¡¦xã?& $¼)±rjºùºÙ˜]èR†ÿ2¼ü|û{{J{YV:B…{v3W؆gh#¨l ê‡Ô…ÿ8jKª^øýÿ×þW%”—Jõ1ù‡ÔÖ«¸ŽÛj’4S»à?þaÿ«²J l|3®hìçx-¶–…þ‰éé#Пz»Ã°!ÍÄvlÁ_^ôÑAa®cÿ¾`¹Þê?ž«%y†ªˆÎ¨y¥~3ŠùÇKå½Ò otÛUT(UM0Íâ<8ÓÈJ:ë=Dbá¯Íûå8~ýBC­/ê½Øá¹ìÇÔg¼*‚%5É?²¹F‡iŽÿè$&„yf]Ëf+¡ ÆŠzA ou~Š Ópëè ÞæÎš—ð7±k§AÞ>‹÷jêHV|¤NYÈßM° ÏÅ8áI 9¾<«-Ñ!Í€ë^@›­å*x›t¢R(=_Ø#L‰ÿHÿèò+lágñ]TÄßêKàúÃkºËï°Ì[tõÀ>†Exâ…ðç!bÇ©âÆyI9Œ¸Í‡+gÍ,J&ô™¸¬V øóÎXµ)d‰žDw¸6~¦¦#ò 9¾[¶Áš¯èOîÓ•£HJàåd5óõBDÓ ˆÏÛÊoz9°¬ãØäJœ÷V®Çn²²åük¨}VÂ믦ªóÅ üXqЦ3 5vŽÒ›ÜGýù6úïî3—Ç‹X~#6|?™ÿªÒE¬g¸ûbªÑ‰xê¹at¯ÃÈ¡'í9l~ øFZ3%Öë±éd7¬Ì[«iÀÿ÷Ó¿¤‚yŠ|/sþ<Ð_å¤}™Ý<®õ ;'y‡ço–c½…ôOüB$àÇ>¸$?ˆ’äo«è ÿƬnn CÕ2”k‹áÓ » –æ-ìÏbª 7‘u‡S)@¼•W\­ùÇ2v^2¢ZöЄ”W°ø™Z;ùÆeôÄ+¨iœm^£‡Ë:Ãg5®šIöäš,F¬YPî#Çüy€‡™D0„zØwXìJÿ’¶ì’‡Ô 9Ù§›‹í;í©íÕíåèªèEåéW&À 6Ó“Éеô/‘ìò¡*^~®üÿqBBjŸžØêýÏùGex>ª·Z^Ë© ž¾‹úÁºjKuþ#ÀvþN&†bgºP[Ð’ìÖ¹Z ZE¡ä^¢¶AÛ§&RÕ0ÏCd‹WÄG·#ï}GÅfr=Ym"ñÌô¿ò¤zçÍ/hÄk~â<ЏÒÇÂŽ±uQ°ÔBeÜT\ÓBƒUk;üêµ¶&â%Â|µ‘ÖG€Bê ~mùA,´”ø ©‚‰€­ˆ/³âï’ïL‹Bþ¡)³ÀÏfëàÇÓñña½-ŸÐÛ“Ùø€Œíæšî„­ÐõOj™H®â)ugØ1¸V ~YŒÃ;ûǚ´ÇYŸ:€oЇÿXK}t)QN ßËãçéÆTêª@ˆFSeÜâ ¨@k”]_õ9hcÊ賉’<#ã9ŽÅŸ~5þ£Q„þc3õƒ±_A é×ùа®ø“W–eÔhVÿövÄõ3ðôë‰î¡å²qwj;žÜŸGf³²uÑöˆÎú{X˜ö21¬(ßJ¬ôªRÜá@¬zL/ÔTž|/=ùÑVL‹YzUíÝ/šyô¿š‚ú<7Ë6П¯øGÄLŒÊBgswf)e0nÂÅtÅ îÔxžwËAöÚ2Ü}y¯|Dáé®g‡Ñ±:2îåÕ6|…³Óm#6ÿ¾˸A¥D"jس¡¾»‹¢Ëš~U mB@8ýU?5.ª¬M襊ƒ‡¹Y¤bNÔ4,yaêóFS;¸žø~´Dÿ«Òôß-ÁñMáèW¢1ÞM–wFæ'ˆ&Xî d¢èŸø\¿ ÿ±Ø‰~·øÕXò@&ç­1Þù'¿ .Xÿ±Ÿ¬eå`1Ðq3¾Û6*xNë³è_Œ†&]ï1WÜšÛº™ÉOù˜Ð‘ü©IðüÌj75þã~3ïßZ„àå3”Ëê;2Á‹ì?ô»Ùù©ž0äÏøý•tY—¾ÒÜŽæ,€þ»v¸yÔ8®G‡Ñµ™ j®âJ¨ùË”Zf|r¢Çœrµˆ†þª¬½0˜ÕT:¬<÷4wã?¶š×™4Yž&ƒ‘›šðç6YžXÓEîÕ÷2U["œQ‹´€UÉ¢5šÁÔF¿ö†É.éícÉ?6ÐM¦¬½“YÚøBíäà 5sb’×Âþüžž^¦›WðŸ{á oäx»‡¶JÆ0ûÂñ­H_dQ®*ÝÕ“àW´ JYVñ´µ½ê¨n€?ÿl;é ¡ #ó?Ήz<1ùÀ:º¢ØmBþ‘E¬}µÝÚ75áòç-À›s¥;‚P ×O‰G"9ªð"ìŒô¿:!bê÷£Øÿê*øU„½?B²V¿/]•™çÄEøÞ;Ø®BØDkþù}m[èSúÍëJÚ²×üæ40z/t5?ÀHSÃÅéI2]¿—tfœ˜é½É§´çý—ÁÄ‘mädöc<úLÕ'78J®ý¼ÂYz“ClÆ:«ø\‘¬x^]BNÕ…,aÖÒL¦ ÌEYÔ. ‰SÈMpÝ{ÀÞR “YF¶˜ýnDÙ‚uòI•rjâÊ¡xx uÏÅGQ _ûC!OpL3àââI^â?öbñ§ÀlŒA3—3Bþc¿²Zk‹Ç~¶Ö€{q‚è-$€¢¦~H{¬Æl,@ 9ìj¾+¢ÄP‰â#ª‡üc tÅ.}Q¦†¹Ó}Á¯“9^"ÃZ‡%7ÑtM£VVüÏfáF§æïÙ’~¹­ZøÒ²<þí6Íx¸©²¨NZ…Yo•¨‚BËê„æÊµzBÅz<&4ÝP ¤”ðEk‰Š^ÃHšÿÊü}6&Å:öþ%A˜}áøV¤/ò0?ªüGA-º¶8˜??€þÊüjýÛ?ÙŽEºBèÈ ÿHÜÜŠÿ½È¦=ÄQþ“Dk”5žê³?ìÓÕN|ÅÊœ ¼ƒuYOÆQýU:ðŽx"ó£é~±¡'äu€rGi.èÔpÿ±»•W–…Yî%.€ ="/ÎsÞAiAQœ>˜Ýã‚?˜û(Õ O8k;»=€úætàW ×èÃJã“"¯?Ï© åçW`'M¢Ê `­éðˆ¾XÑ/Ï·³<ëIò™šû´‘ÜíWêLüGkŽäöæÀÙ €IöG)M$¾€ú½X¡Ô »ë°÷EEëPñHÈU³^å¦þ¼Þb0Þ6j®W ”-È¢ƒÙ,õkC̬áÝüyÇ£àWS°ùKy:ÊjwÃ.ü™õç½ùþVªmöoÊó ¾¿°¾B;­€ÔÃ./Ä{nH@ãW">î×ånÙš¯tÝìŒËņ‘±æŸ—¤Î¥vd& Ü¢ÄËÞ°&d7n ÷{5QcI-¹ú1Ü’«Õ¢ת0à?^ÀäÇ=¢þ£ ]Y bç‚ hh¤'KêB&W‚ÌfXW-òÕ¿ðçAÊWj€Úaí—À_áý9šÆgT[þÌ×ÁNÞ¢¿º‹O‰flÆê•@ãà>Ô ÄÄMd&SèCì¢ÆâyØEþÁ\p2UƒùçÝ™7›Œh% €šWt W™´Tþ£4ÞaìÌVò™-<“'´ÞaÖ;!êÂÙ_¤Ž³.?÷ˆ:ïC(uûÐ¥+øÕz˜‹7ÆsúÝit 9Á™.À+ïBæÅY°¶èà8<'Å[¹çuU³ú_{Ê…ÿèÎ ‘j BSírÁ(jÅ,…Kªd67×Á£Œ†‹‹/4@‡ÚŠCŽõÒ©(u'{êþ£$*…©°骲ˆŒc¯VÓå0šý)ÓÔ˜GèÇkßüŠ9ózbìÅx‡ÿ8ªÔ2€ƒZþ#šÜ,ÈùF{ê˃Òå ûUú—dÅŸ\k¶·Ž‘Ê^ͨŒæáÏq ë;A£à1e¤6O?pë¤x“JMfúOž%ÿ(ÈÔ¨nè¯Nšµì-˜_{ýÕuzZV0ÓÉÖÔÌŪù“'Òý\ðüè…þêãýÞ2¿¶t˜}áøV¤/Ò*Ô|Së0ÿ|µ’›UÖÙJ©9Á¯«¯`+GºBèHª|ÐÞñ¶#ùB$«ÿ•§òY›Mÿ«T£ÇR£ýÑqÎ)e7®t?âåúôo¿ *+?Ô8؈2"ùGBbñG¡à·¯ï2°5ü‡«"qüK°ÿrXøöâ Ä78ÎB n=D.ñY‹JG³’œÏ Ñ«9 |ní ~6ùKlæG¥Å²ž¹ÏÇ{d1}ð‚3y×£äG§¨‰)%†Ê?¾ÙV+wˆHrƒD¶BùÜŒ«X„®'«éÁXÿ1üj7]۽黻ϸ’ÊúÁ£dF{Ñ·¥þã4ýBðò™Êð«ò:ù‡“ñ€Ì<ÑF;!=sO2ÿc>ÌÇ\¼¥“=SJtûQz#ç4/ë ÁW;îÕaNpøMÊ^-5L…÷>¡t‹(@oÃì_]”aYÈÞ2Û*õƒŒKtçŠg/h²7ÜôøàWг4À rìÂÊB­uI}Èc£ÀJoÞ´û ˜ R€»ÐÎì~$«¬zF¦”¼„©êa&eç+X “T£å?©¸Ù×ÿׯ¶Û¢+!³ îÛª+ñÂ쳨¿&pê+µúÝ#Š+«,µ•S3Ñ·j5j©?Í?êÏbU{óÌdÒ»hju¦òœp’¶]»L5úŸñçmEV9’¾æ]Ð@L¡¢¦W.ÓD”†UùKÿEþü…òNi)~`ãüÀ•wâ? K7ý£¨-N€ )²æd}ƒH…ÿØ…Ë×€|jœ¨NÔøJkÞ`2p´åD£az¦ã=F`c?cËNù¯‡£‰~f=þ` WåºÞ]ûB~öÏ µƒHþQ+ Dì9WЇëöQŒ˜ÙÕêàdÜGÍ›kO%,ô5tXߨ9(ˆf¹k¸ûò]‰IdjùõàRvcú¤«ôßMox1?* ÖÊêÂa3ÞãŸÒ°b%¼»aì&"_ Ë DT–†Y±žê§µÏ_-]+øýÂhMwÐﮥ’:Žý2ü@&N¢ªð9Gè“£Q ²XZ“µ¶k}ì·M9ڂׯÿñHÎQ½¦¢ç›…izùðo±ÖUÈJ*˜P±eÍã°÷9Î<ôo帀?lƒºüøwy›R˜N- Ìã¦ÿ±žù°®XøÊÌÕhNÿ«àYMÌäFS9Û˜F+ÐǃÌoÛíXo²rRµÑ“æ4ûé›ôÉ™˜Û™9L¹ì ͳhŸ·›À‹®Ñ©0yÜS2‘·\ѽpãƒñreaur‹ã¡øóMÊ2-!ª–ê쾿düÇ>£.ÜöJ4WEÍlL‚ÜLmb!üH4fÍ›dÔ±§6˜NK[™Yä*àqe”ÖVä'ÛmEfþC$gþàN³.•ú{˜óŒé¼mìkì^å4ú¶ß7màw‹ÀÅ2cÑ>‰ùt»»æ$&þ\ðüèÅüÚ&ú…ÍíƯ úB•Qo©.ZYí²R”ݵ–]-©VRGªïá?þ¬þ\…ÿx.Ú5ÖÄrv¦ã®³:’ùQ³Ä\ÿ«m¢,ÌõIøµ*Tm¿×ƒä=ã¶ÑÿÑßHAý`&c$aòQcÈÓVp°ðsÈnÑó0§'º8nÆGÛ8Åö:õ$­áìÚ¡ß-ËÔÛÓ̯­ÍTÜIô™:‚†õšå%ô……Ý„'ÁÙ&5꡾>®w 5pŒ²C}MU©µžßñ6ò· ¨®ÒÛ›2GD ¶ƒBl9Dæ~Bwö+º ¹;šà’òë9áîÈ?Ó9'#ÑHòBr”`*´QÝ^Œ>Œu©@fzP_26ý<óÊmöþFm{B£,‘˜ùÇW|­O¨úó-Š¥à/Ž.¾-OFB= Õˆ'éåÿÈKTЗúó™öçfû³"þCA6ÿQýUXLTü’ü#¹X긂ÿÜ‹stš é[þ™üã­L§<¡þüZQ+­y«¸¶ØJ«Ô¶ø7Ôœþ£“Š¡økþøk&PN½ö‘ŠÁõÌÿ#fã?ÎòÙŸñ4ÍD9‰N1c@Ûï<£ÿnê «9RÌ";¥·wõWçÈ?Š˜ L'ƒy„×<ÓÕ™ŒQU¦bá3>ÄÒ¤ŽÂ|ÔGᜫÑ?q¬¨ î25è^ž8øLT}à+UÑú¤1͆\)f…±-žUù¼k³ø ^בH1=þã³hR{˜XÚŸ.ùár]`-ŽSçk5"YQh ±TÈ9.Ná‹eUC‡êA~“^ŽÇ.@µé‚Nìþ£+ó?Ft`|­€R\­JUÖßz\ž¾Þôo¿@þÑÛ¿´nˆn!bNÁQb||Ü5Žð•ÛèXÒá3diò¿9ŸwO9lù M14ƒ;ÖFÔ¿J _VýÃQÄŸ>V~(…†Æœzb48Ÿ‰Žj` ë‹x»»ØÅÒØÛéÂYØBi#^Ëújú'Õ@mæÁì#½C-v&üÓ[r™BR—ʼn›óCN‡#=çÊ4ªƒ€óÿEÜ< ÍjZŽ­%+ïÓ‹ËËÔ}d„¬µ]Onbh%#YQÕÆpdU8"/,àkø£üxÈÔ,#[HжñÖù,¬Š ú$}CñiaÏ:‡âž™ª§Bà¼ýÁnP÷Ò¼iÇ䮇ÿp‚ÝÆ5½Æ³~«±ÿQ>Âþ‰Ë•ÝZ#¬·|JY"i_âA«ÃÇGŽ·.ýýÎi&þ£•USXi“> OzO`\#ðçñÞd Ì÷…{Ž *Öþ>3ÝLšÁö.Ä–Õ…w=ŠÅKEMûq<Û¾oåHS5§_r×Ùjwr5Wê§/µ»’½ "S© ¿[Åîæ{ºˆÿÈ‹·Yf~r0Ö´|ÅXÑ#Ü}y«høæTÞl£®C5¼°¯×©^w6˜©‹–5ðˆ™ˆLÁ…œd MSªäö¡ÑšŒî°ùGØÞÍÍÐ_uãÁµ¹7î/YnŒ¥'ü ÓÓLl÷'ŸÂ6ÔhKUb3<Òvú—áúäJ_ Ç,¥ª¢þã(_w²··ò„ácŒG¹5þÃýUlºžƒI™Gíä)”ųð˜ÁÄnÉhFÙStwl–¯¶ÅÊ>,³+ù‡ž|Ì3ŒöVzƒÔE;Šùç^Ì|¿CÝùxãó£˜ëÑ_Mçîü ëNÀ¶U?8’ùç﹓ˆ¡nÉÇ"×è’±ÍLJ?ô­ô«F´˜¿1¨ÿxƒ>v=þ#§éIfÝo]n®ES‡ÿð`rYêü\ÙWѨ»ˆ+ëÀrçŃw§‰:ãë`båé_¢1I}$¯‡Uèß^‘Ýõlá‡p—gBí­J'øôà×­ÀusêyM?øó®œé+c/êß®æ&ûz»Í¼­,óOÓ}~¨ÑÙLÿø*æ¢*}ŒÎ_ŠŽ+øÏ½ð¶Åe¶ÓÏ?wáÏC²‘Ÿ_ÚÇhÊ'¥¶ú,¸¢wðü¨EÔŸçR‹«3ÔøLë©ÊzÏlgµDp£±õJðIÔ®ÊUòæØÛC0*æ?&‰Œr:•6=Ù—3É?Ré%”#j|,tQê?–‰4z4M ÷ÌF|œ7À隈¿ˆG_‚˜x’7dG¿ûV¸ òÏûdÛE@{¦ˆ¿˜r<â%Â|µý„g‰bDáKˆ¤7ÂÜǾöýu‹Ct¥R"8ÞNáéÆQVÂn.Ÿ‹v»PO¥g'rGeºŒÉš_›–³vy.OíjóÚþ¶I*%ƒZ^¦5J¨„䯂ó–Äðså~Îy8+Fçýɼ®â?Žð|n¡gY-„¡ 9ÖôoŸËÏF“d àrLjösòï;W²#úÝ•Úwlg}Yþüþc¦žƒÈ/,ûÄüÇFú_@¿ÆÀb§ÁZÎΟH$ß µÙ+½2ÖÎä%%˜Æ>xË:½îˆ&1ÿ#<¾‰þ»‹Ù ™°áÞÃ[8™ zyøñöF*ëjc’cûk2pïQœíÜÇkÙM¦"{mî¾ÊL•vgt³ËðCÈ>âéÒ’³Ì տăþ»_ñ×Pá}À¤D¥6•@{;:µÇ@- p„KÌTvÓ|d<Åø£;À»v€íAdžÆf“¨íðëá»Ãs[Ý'RÉéb¯¾”ùQyÉcz€Ó] ³9ˬ„7Iƒ7„θþ£€Ñ…ŒF— xšK€û†ÔîVzÒW< Yð«8àWMÁ¯š÷©ôßG'”ÑöµÔŸ¦#c)æëúu™PÒÝÌ+—,…!ô§V^ýWò£¶D¡«@æGý™]yžuå…ÒýUøãÁõGlUÕÊju³ËÿP•N¹¢½A‚’)ÖÒž¡¸Z­<Ó†‰^X†ýä52Ìþ 9Žˆ_õ"ËœDÿ¼! 7c`œ.‹BJ²Ð†º‹è)Ö E?÷Ë  ˆWº«ÄQÛs¼Áfժ݄=á*¶ÀÖøcisaÇ'ê£RÑSW›«M5‰NaÓ­‰4g°5Yxâ‹| 1IY=?lÝáé9»(ÝÉ×ÖŠ$z°ÿ¹`T©ðMÈ“¶¡½BÄ™ƒJ?Ø‚QÊ?âh“ôêóbkúPÿ1 û;Œ3¾E%Ù8IË»,ÄjdƒU>†ÿh*j(#¾p¶¼J%µ"þ{*èU:âñoèwQ:cñçIOž! _ñ9ó[p§É’N ß-¡ÿX«xi±ñ@]²_Xò <©©‰}{¢}!Æm«»€•€&$߉ƒš§Iþãž­1õƒ£À¼'`ÍÓƒvìÀ>ŒqšÆuìûF,¼›½ D¬¨<ÅõôæîŸÁ7MÐâþͬPÝEGŽ«6œîC˜wúŽ¢ý™:ã?6ßž¦÷áEªÑ ¡ ŠÍ+GíÇPêa²<üUŸpwZ%_ˆÃ¥ã‡ tćúólôo?ÿ(ÊÌŽ£fl2…jFc «Ž4Ãä 3d3®v uI˜»© »ì~º<|xÝTvo1:Ò¯jstû;ú_µ¢Ãã8:ÞFÓ\O(Œ³(‚¡“¾®ÿîaúï!wDÖ§Á0lgbÇPòÑä™Oâl¶/0üù<>õƒKȺíE%–ÞÈ,§ˆ¾Ž]óѶR¹‰~·‘TØÀ±d~ éHeõOìbAyT™¹9¾öL¤: ~Õ×ÜÁŽ‚–+ÑõÜy½½8éXo¾rPý“åƒÇ‰‰2ñÛƒÉ?: ¢6Y×´/¥þÜnÿb¼3söÔ“›ÞØä¾ ´ÜAºJïíþc;ý³ñd•%ÆÉ,W‰Êò¨ÑËžŸuÚàáÞ‚ÿyð·#G‹J’Ùd6ýŒtö"Fmv×7jJ?‰JòD(ýÕ~e„Ö_äæéé‡ÿˆ«·2 Ø;›ÍP \¡KÉqªì‡R?— Æä_—ðq.ÔQö3á?bPÛä-ž‚ÉÅKgüϽXŽþ*„IxbkܹêyÿDô/©Fþ‘ÿ±_)Ânõ´c~mIæÆAµã}d{ =-@5*]Ô4ú—̤ïÌD¢Ñ ÚúúÆ óÎÀ ææWìÞürB­Z$+¨³t“üão²T¹Ìà~Lä©>‹EýÄ|Yö¶»ªnݪÆ5¸»ww×àîî08 îîîî ÁƒHww·`A¾§²K'I&a¿ýïÌüv§ pûVÕ­#ï{Î{:Pa¹ [+žTÇ„k •Cáñ繩¯(>7šÊáäðŸ…5á¾übò˜vè—ÔÂŽíúÈ]…ù K:©{‰FZð„àû¸œ)¢ýyš:ϵ¹ ,Ha*ùûÍõ@m“ÊØzD⓹Öõ¼éÈxbÅ Ãì±uּŮfÖ4 WãN5åX2­ñ AÁx¾ÀÇæ÷òcSöðü—ò¼ê+´ljèžûñj31†ø¢û5< .Ï kóN¶‡?_EWò1xŠÛXûÒÆ*ØéÌø¹;`eÑŒ¡D¨«…sto³Q>ˆ„0ú9A~¾áeŽ‘wÂ$azú)ØÞ¢ôxû›‰ˆïËÀQ¯ÂÕ†ÿ8Ž÷Z,›Û¥Q=žt=5:§Ìê¬Aä^†ZŒøõF#:õV}GJ³¡Ce¢ÑŒ,¢'<À&¾ùùIb#Ã?STÃÒ'.±ú/è·äNTÒ§¡3ÞÕ0ìûñ’áûð'SÉ?N‘½N‚S9O>wÈ´r‡èáx´¯¨¿:Æ•–Ê?nå©KGO·Ž¢¼å°ûEéÿëgŽ¥C¯¾`'W:ÿ‘Êè {uŽ3ïä?rʃäŒwÑ/)ÀSp7ú ÚÞŸþÃ/Æ®t3×Õ.˜Ròé ùáyÂxkK7+üG°~Ée³V …"ú:NßdñCߌþUAtG1™ä¢qœ ¬¥ÌB¿ÊflýrÓÕ(koj”ÆD“½‰béD…wýuÁká?FÀÀö§.2Ú>©à?˜˜q•T‡ñJãì'í‰É?ÚÁÿdµŸ4b™Ék2ÈvàW[Aão¿¥ŽTµÎ¯ïüoý÷®-SÆã­£’ÒéœEþ{¢*6µ—ªi•µ¦ÚÅUö0¿¶ Š+¨¿zc;ù¥ø“q”ëÔïÖÀ[W%‚ΞD]'2BtÒÖ¡æž-ÂÎç¯ë+>aÕOaI¯Pñ³EÜ@ÿJÑâ?Š‹ôb1ó^ïGÒ\W>*­ÄWlæìÖXìG~Yδæä±í±…=É?˜Š$’‰ïš—ó&ÂüUò©9¢.qìP¦zBòå¶ä/ˆì‡Â+€>¼¹©yY-ÎEølò)½Ài6‰äħårbîDøF¬½þãSbŸšØ½•puI#ôù‡Á9µú?z³Éä.Ó°Š—Ññë…þîxPâý vÉèÜ8¬O%î몄7)¬ ó? ó Ä{dÖ'U½-ñ·oñ>Xë>ÔÚ'g•wx¬X[wÐ+zïA/øsËèn‡×ýZØ Ìʾ;;ù‡å}ºêÇ´›šB]7*‘&èðE‹a‚¢ VŽ=þu¹3Ìÿ8 ~eq¦ÝÙ…„5mLýU]ªzú£µ14È\ÃÖz‚ÔeÂ˹ã‘-õ~,ùGèúÝmôe7°kÀ‡^SplGES0+5MU`€S¡¿[Þ¨fÄ:'—-ð3“äGгRè„V:³“dƒÿ(…ÿ°Ÿð_TP•ÿqœl&'5·>ÔïÞ£¾+±Ð.à(ÕZVþQVÏ€zCÈ«îŠÿèÄ}¹IþáÏw›pñëù·ýç P0·Ûï3ѵ{›`Ô£°98Ž;þãÏý é{ÍyBÉqQÄÌ—·¢þ7&œ;™Áx<ä8iæGEc>ìF<ÑlÔVv€ª Á+Ÿ`½{d™åâýƒ¶1Êpܲ`†õˆŸ†óÿ%èÅ^O•ÀHr·öhƒ\0 ¡/ßÐnÜÍé`ÎdzýÉzºÑšä1ÂIÇåŽTk¨,^jåbO„zÕxúùÔÍn%íË>«‚Uf@w¯‹#ÿØÎ¼ÙLè’VäTê³E,yÓ¨mOÇó¨Sö5žó,¶2Kj2š‘^FúKÚ2Ÿ°0þÃ…sU•¼;;á8…û•Nðºiy#Zc&ÔSP¿»Ï,f¬$7j*9Àlk÷´Ç°'µ·a2Ésºë£w6ÓÐÑ(–[oŒË?‚_yƒ_]tÜ韶¶J§sæø­?¤aþG/õžÚPKªVJ²ŠŸ­5V¿«ÚS½Jýîïñç˜5h¡exk^SÁyÄÊ[ù®õ}´ÑÚMQ,…øÈÿcul )ì¨{â“vÁ˜—MM¬®‹b¨¢<§ÿ‚a‡½º¯’ZýS|Ï¡£+ìG¤T Ëôþc2˜Fmb~7N‡‹¸¥m { §Ÿ6ÖFj‹à‘ÁA°¿»°û‰ô3a¯¾‚¿§Éù&®‰$tÁLŠDÿG e2 ÷a'{©‹åÌ‚Õü&ºèk°òÅ`qOÿŸá¸Ãµ¼ïÔ¤ÜEU› CÞüj'þã¥è‹ï±ú?¼Ññ¨Kþ±ôi9 3™ù1ê Ð?x×éú‚aÍ?χ7š ÿ‘lè ^»3Oå5üùmÞÆð x[wó“s0›¹ûÁ¯Šh‚q|Ú¥l¢þÊ1œ¸í"ŸjÁõd?øõ]Úkê¯VP#V¼l<Õ<|ÖUãÍu,f{c«ÿ°Ø±!øŠ‚¨/#S™MÿƲ‡aXøxàõp  8Ù¨[¶&Ez’/ú`CšjIÕÐ3שí@ÃjqÏásš‚_Q=üˆ~º‚Ìr£—.·q—ü#—áÎï'du¼ÝG8jô'u õ\b¨WW‰z°ø…— Eññ9Ð@9I¤ž7Õ?·Ì¸àWeÈI&Q5Pû4=‰Ô•ýPÜV F%KÛß]“\²%ˆSJìÕ<£šZ“ˆž“Ùσu3QÛ /Ò~æ ß|‚ûãÉ=ü¨5wZo™(nt•¼±YT ~Gn&3Eýn/æ,%.@d)z¾K üjua­¹—Ûá?rÖü¨–އqÍ6OñÑ™ùÁ]«K5_oÎ÷ ^!ùÆ<ÿÊÔÅf‚©EýÕOò‘Îæ,ªŸâ/ã-©Eð¢F;xöÎæ| ‡9B6{ýÝ6LÙK× tª7Ћ|úçeÍ߯|C{¤]!–’i;üoZ¹ £yb˜Ãì„ÿHÛ€|F£ÿ#™t?ÏNö1ËÌOÇÇEjæ™ÕøÿÛ°5M¨Åªg¤b~mA2šœÍìà°ÞÒq ƒ_CaqgZòóÝ™p¾9ƒ5ñfÓÑ/Ùoe/k¯“ò t-©½™LÀ‹mAö%ùÇ·Hu+;nò郗M(ÁêØ¯m ”Nç"ò_“GyŽ~É;ø„Ú‰ þã¼­ýçíÔIôŸÿ.ÿ‘ÿñX´á ´ÐWí‘ZVõU¢Š ¢!õ®Ôw!X›È챩¸Ëûâ-*ãVÐ÷ÓTUƒ\¼Yg´¯ô¿`Æaxu§ÎëŸWµ™—‰ç·Â׎)ÂúZ שŸðA¯+u@]ETq-RŠüÕ´©ÚÑ‚³=.l øýYâçr¨0¨rœeRƒû\Ä ˜,¶Eølª+3`(Ö}}uÀGãë?ÝÉ;Ð÷€“·¸…Óìo1Qû3ñ3Â,.±6<¨øÕv¢£§b¶zñà%jgº‚ã¬ÑmÄâO‚ð6w“™zûO`-w²¦äð71ÉË;Þ\ÇÖlÏÑß=%úa¦”C™ÅÒß]ˆà\Øóeø”$¬t‹¼ û”vd «Î‚ŸÙ‚~b4õmðRAŸ¶ªÃÅH,LI|ŽÖ÷5yéΗèÙVb2i}*G]wTË–2¶Ó‘”ÜËÄñ)þ.>Oô õ¤5òÜ#*èþ ¿:-+P½u„JÙôfú/£Ó÷¦@5‚_UÅ-ƒ¥²ô¯ éºêá´bwUç=ØAæX“HÀªyÍH§à£6ùË:©"àæ@ãƒe45ösÅXí9ÈhIÇ=ú»-œÖó€ÿÈ%ýx ¹WÑ`Ú'ÃÆ1N¡_j¢ltV¼efÖê¯âÓÿ1 ]˜ÖpIÛ@á2dÑÊqØ6á?bS¥ðNo@åó 4e PË:`µ¬˜2?=þ<–Q—Lãuäûë-V®«ßõüô0ù‡Ð—Ënt“ÌÒßÝo¼@ïPCïÖü*>ã1Q[©†ÿØvÜš§_€¼%)þ#8ÿ8Fýn:ÞòrÜ¿ëúD1@Æ4 Ú3€ ö#´™÷±øË˜%µ4숑d¬¸¥obT§w6Ù¥BÎw8D’—2€þ¦N‚OÚñýͲtz´¤ÿµjÏÌ¡f7»—]·g°`Š¡‹Ý½þÎè_%„ý)V’¡?ÅÛ"2ÝÊŽ›ò_úpÑ–2DÅÕ7[c%‘Ó¹ˆüפ ÿ¼úý’RÚ^¥«lfþyµ¤:F}Ц^°—ŠÌš.AókkÓéšD?&Lð« ä¯ÉóJj3µãªù›üGUq öñ ¨ FŸž´³¢¢"´ äó´kè>/#ÙÿqE±«- qD Å±«îzbYš:ˆöšÔä ßéæè*ˆëÚÎH\ªz‹©…¹N.3ŸdrÎÛ‘Ó¼™Ή»@¥àã ýö9âD„Ϧ¶2„iˆ†]­'Ç`3énz¹{uy…7È~ÕŒ“¿³÷\MÁŠI´Õúsp¹‰dpGÂêN…UÜËûßÿáuª¥ T–œänä-•«á\u&¥¾êFuîT¼GZ|Ãò.äïô• ç}ôõd4.¼YȼNâé6âåN’” ³ÿ|úWí±Éϰò5ÀM,V§(¾ÓÀ~Œ€ß}¦%3ÖÀ,Ô!ÿX• 3yCèXá°ú?®Úk·ÙÍk½>'Õ<ªÒ 7ŒÀš²kr÷X øÌ]d5ãxú ôªè—< uÍ{Õ.bì]þ¼/Ö÷çîOàõQ•°¬næ.´ n2¯õ»ÝÀìK£ŸØ›ÎŽ^ÒL¤K¨çK5ÉÄÛƒ•nÁâ¾ V:bzfPyËÃXä$h¿¾Fÿʆc c*þ£yϺÏûr:+“ìsZ±§HUžG{·š+ÕE´©jÓ¸Èô€ÿð#>oghäíèú¨J>³œÝY}'Èò.hÎÒ)‘…ê‡Sä ˆ+>P';‡Ê¨> _™´}`}ù¹x¾á(†¦SrߺšàC2á*—Š&Ž;(”Ê =¹¬‰ÿ¨IÌcé­e3£Ÿ¨ ÿärÓ”( ú%µÍÙàO-¨{ú“þóø×ärq9•CÌn›¢T_ÀŸçi}TpË„Lf*h>§²éú'[¹ÒMæE0;a¾B-x8~3“鎇nI5Eiâ­l/áÈ?¶+K´¸0ÝyÁWÓË "@ß`”¶§EAf ~òÊ(Õ™fXÞüùGs˜ù\àWyŒ²¼Í*½ÆoDc¹ ¿óë‚-þ£›p…l vCט48Ú…ÕhÓgd¥yfcûêwK€·Õ%»ùd$e:a3#ñ¥ÎÙöþ0’)þ‘ùƒ[mI•àØé›­—’ÏéœýºÆˆÿ›Q‰E®W«ªÒÖé_]´U%ÿpSÇ©˜Ï™ZÖào)¥¼Ôba±Z€i±µ;jõ?*Ü´EÚÎßö«ÄwPòƒÂê¤Ë¢/¡c°¶òYMA¯Æ-@Û*~Šgêà¯ÿ›O¾Š‹Ú[|ÁríÅ^Yµ¡%eM˜v±&;–¬‡ÈˆÿØý7ëüú­jÚRm¨IýÕB2õÝð ç‚ìÎ}püÑd¼—èþ¢æ¿4 úW ”5àöëER,zsüG¼åkP¢ð UQÑØ ë8„õû$ª™"xÚyµ‰Ø÷–x2O23({[…Žì1ìHpžåäK~`F9@|vãŠp_ÃcºZ’4ª ˆÁÛ׉üç¼Ï ÖgŠ)¶x þî_ãΑÉ-¦¶Äƒ™‘9ÂÌ?6*QDOvËD±÷4èNvþ“^¸öº/ú»1Qí- ÉéxæU`qxÓ¾ŠÒzÇ›ûëØlWÉ?nâMØŽ` 岇iè‡ÿ‰]šŒ¥{HÔhõî‘Ù‰"·a‹Ü©.ßíˆÿ®ÿך‹Õ?ÄbVȇ}ÿ)9å52Àò"ôy—¥ÿ£º èÜKüŸˆüà ëö¾>Ú¬¡ë¯>)6ößž³¶ ÿ*ùÏký"lqf×ú+‰ÿè Ÿ•ʬ* I(]é®xK=n£–.†êŒ_µWOYúWuÉZ _—:«¡F&²¯‚©Ž~uÍì‰~I+£:;,AÿÇüÇ*Ð)îóÍÙÃEá»÷‚‡5$®Ô£>Æh ßÑ)¨þ*ók/À+Ä3F1,ÂKN­¨EðÄ3Ç5²Èa¢±ãa|²-UŽÀZó£ªÈ» œÍ˜”õÐèKcùNè—\¤fà(øÓTݨ•Ó Âê•„¶Œ!´~Ú:+)"°(áí-rC~U›þAwÅêK{n«¥æQ[ª3Ðß}m Õ{½lÊð«VD–Y`½ãÓ1˜U=ª<ÔÚ_M×N¨ê_*&Ã^ç×O[€V¤n·"÷;§>MìM˜_—Ú.í‹6C|@‹6à×þÛÿÞUu¤øH¤u®c.}fYf 8~KM.ÒuÍôâ™'Ú]›Àô‹?_ä?Ázò¼À2ä|^Ás܇OOM×üŸMe8ÖÂ]¸` «‡'"¹KÂ,üfAÖÚÃ[á?ãÃi}-n«9"Xñµº ûÞdêÙÅ#1–Xv4ï¢5ÿ£)HÑt¸ºU?hMdDû‹úÝ+áÜ¿ÔJW5ß?ËôFÀ80Ù+x§ñì81ìSlãMîî*"²ôê”ÓBG÷Öì£~· ÑWw©)}–~{)®Ìâ?ܨ‰z@ÿà Ù™÷ˆ;ÜTAî„ \rqÇ›¼Ñ+¶Úi1§Ð¿˜E&&Btƒ?oDÔ=›9 e•ºà#>àW±ð/ÇôÕ<­á|?½Ú;å}ðRAŸ&Á‘MKƬw*?Ãy‘_±«ÅÈ?꘻Á¯î¡v[’,©/yWQ*¥ú ™ÛKVÆú9wwÛlJ ”ç[`û&“û]ÆÇÅú`>ùü‡+ºãéŒf|„ÿÐŒ%T64‚™^OþÑtµ€O]ëô¤« ¸ã‚x¤êøíäF7&æãï‚ ˆg¿ÿ'|Êø;8Ÿbr|BFÓÛWšþ~g·BÔå NKTæ*îëgdÔ‡óÁŠLûr꯬ùËñ˜#™D»šª„YðìÀœÖÀf§‘ÃEGǼhÛ£Õ3¸<à¤]"ß-(³ÒMÒÚŒËD«ut^‚CNŠÆm 2…h 65ÿ€?·æüÀòÝsëÍWsþ¼«ç$¸•ÔEySÝ´ýÝ d[³è³ˆkÿA6r6~Ýî{ôïôV“•¤‡^B¬-þc¡rTKÅ{UŒhÑEú‰´h g´§§¥':d:zW³ñmñC/Øm73µwæGuàìÁkˆò°|ã§ðþc¾HÄij­§ÀÞÅ¡Rm ¹ßf&m5e*ÉvôK6Ùš¹ì Ño9ˆöU*ÓOv4‹Ë^ ]«˜_û™»•Pü^…«ãöü}8fKbvZ ­õ\¿›Iy¨LRŸ«Í´<Ì´úÒN€_S+ª“Á¯ÞÙ³*ao?¿¢Ò#Þ¤%5ª©.T\ÅU‡*ϵɢñú)5ºú{}òM„IÊ âü9¼M‹è* žÃOb“(n©OÂÞJ¨Ÿ¾#Ï.¬I°{8 £°«ée~´»ˆãüÊ /ƒØº3õW÷µE¡þnX¿¬¯ÍÅXs»W®»yV†ô>ÿ ›^H='窷XédÂZ­„2 ¹þ#1½“Èbc5;Â6¬Y¸Äþ%VÃæ/€W§f‰`Å[ê*:¹ºÒ­±Ûênãɹ†QÁrž¸±Ì*7åK÷ˆÁˆzéùDýpçäAŸ ¨Ü|]£n}5ÏÀPú±þ0°Òzj¥¢“]OÙÇ»¾– d¾ê‰×a\êe—6 ûHÓŠºÑÃØÃ¼p̺| >?K»¥ý úîLäŒ^&»þà]!‰Hš;ÞÜàe}l‚üÇ7} hR:*¬VÂt. ›ÁêAlI.÷“üڵߒ’Zе zÓ`•ö3æcˆlÿZs.ýçˆPÓÂNŸ"xÅunÕKÀo4Æï62ù(7ÝÍ­nÙ†ot£ÿc0üHWYÛzþÇ'E%“üœ{+*¸÷¥¥Ó|Uólø}`ìqÀN^£¿{›ŸÅ4fÀÐÔ`ÖÈj|à ÙT/z(ÿÑK‰wû~åFLgÐËàѦPËîЇJ¯h^,Î7ÁÚ‘É?.…ÒO\JDVž¢/ŒÅdò†[r=ºY ,lŽþÁEès=7n“D7úšy _4ž»zŒõʤF|æGµw<Œ¶ådÑŽÞYyÇÜtJ~4š1…ª;5b½©V>Bð6p¬ùä#¹™Ø1ß1šõÞscswšŠyŽõæ*¾ê ô|½©ô8*£À¶=“‡èÒx ~µÎ¸B¿ä#büÃÔ‡™¨ZÞ7û¢M–þO´wøeL.3Éòò¶“Öcd.ô¯&áÃS’sÜFW~ü¹;øÕ c ˜VP±ÌF#±8Ò¼¿®<¢þj—2ž Ìd`Ä­©§Ê¡×2«RqPÿh‡‰ÚÀü(/»b/ÆüÖ†·¹œ„uÓ£ôB¬AÍï1¬_’¿ò°ØŽ:îôw椎À¢8þp¨™Ñ…ꬾVëk1´uAý`ÊäÔiè_½°]õçÿþ—¹)^‹vX†t ˜XûZ…¦{7QY[¦U£¨Ñ~kŸôcÈnè¶[:©èäva¾©Ú`Wîj’©êß…z÷ï·ôïß}Gÿà$E^Ä^VÀž€Ó¬EM÷4qتƧ¤ÅîÉÅ•HåõégY,êuO¦žr%Q¥—‚*Þçàw1x­ 9±EƒÅ毹±2תK ©àªKä—«µÑ‡0¬6?{Þ£G§~¦»^ /òC¨Z⫺ûÞôg^ä±èƒmO7‘mPû5àQ'`,rSg¹ŸPBÔ W·¸ÒQµôÛ»À&ÀžÞw¨°kÏ;óɽìFÄ…7ë9Ý'±øÈæ6ê‡yâ?Âx2'ˆ'ï~Ej¯ß¢:¶"„¿Ò¿~§/O™ >0¤ÇˆãV _1Xù®ºÂ-&•» M¿IEßçJ<꯾¢ºáNÆr,]™,hº¸G-‘7þ#•@EIñ0Rüy}ò©¹ÂšÀ:oä…5= žÄü;öØg‘›ò”x…AÂÃëšk*£ÈvTÚS²ì¸Lí¨Ú²_Ï ƒhíö ‘úøôOâ­Ñ´©­ê³q”]Ý£±Ñ–ªÊ~bû6Ô´®¥ñmÊH…Ñu8Œ¶Ô6Y{-¡4TA÷¨ ‹ƒO´jGî±3txõIXë¢h­–¤‹Äoô˶™·sz³¨¢}ãRÓM:owE¬Å]ó£Þ¶?jªž ÞÐ Ñ%]ÅÈ`£cƒ¸t¨:TKekëÁX¿ˆrÔë—ì%ÿ&ŠÂ~4¥N©fIûZ³*7ÞF1ªêú˜ýìKìÌböafUØ•óä%nÜ…¢ ÁŸÄâëŸDªXï¸âÿÝoôƒû…u¥ÝœdQî+ýÕkj-«æ¡åtùÙZÀz·U§ _h»ü[•®ü*þê]÷‡ÿ¸¥~UÖ*Oµþ¢9zQWTý7ñ«žøè¡úQáÆ;“|g:MQµL<Í"§ãƒøɉ"ß•øêj¡Êëx¢* ,¾z"Y†b©8 ÓG%@õ~"ýƒ‘á?ÚSO¶\í!êF²„pò®ALÛ{¸Ô¼?¹ˆ2RcG çâ°n¨þ#3Ãí̇¨,`9âÁÇ´‰YKç‰CêÓår¢`$Þí˜Ø)ò O2ÝÔL Ól£ x{KN•@s°>2˜œx‡h¨´äF“êˆö_Püa÷u9¾9>')!YEå0ò‡¶îš—èÂ0¶#3õH³àSféePãhûÑ‹Ÿ”ž'qá÷Fy‘<á#´€¿èïZóÏGý ¾~‚úª÷€s*'Q4|va½gð&9é·”Œ›ÏÀþ”͉º9Yg›í½³ÈÙ@ø:-á?SÝu •Î\‰ÿHo¼bþ Ä#åqúˆg8 ªÓLO£§VG:­8„z®ÆÜá;ÔbŸç» Ïè;Ý–-¦8ªý&S]‡Q¿ÛÕ(~Ռ˓ï;;ÄýýJ?qš¨€ÏºE=p#8K¿}ö¯›Á”(Æÿˆÿ çå ú%QÍã(ËLÁcîe7¨"K+‡†ðÏmôöÀ«•€,#¯áù«RãkRÇúƒ{· ½’’ä ¥±ÑƒP&ôC‹¤‹9›,jTÐ;“ø¢ÃÌŸ¯Tîà? âsèd4*K¾’ôAÿ½9ú‰‰éÏ»ãVòøæuªŒÛÓe¢›[t…JŠ%DažzM±-¾åÎôœàrÄQäJzÁ|™/˜½ÄúL(Ymt`rí r¢:è'nE %Ý~ÌŒF=²!ApE>þàþA‹?Ÿ†ºÙ8õ“+*f5û1³*Ï@Ùv€§Í²Ï³ÿ0ÓÚk€j2'Q{öS¶13ŠXµ§äA™þ‘þóK¶œŠæ8Y?lmþãþÁBè_MVck-à?Ž+eYó¶­=U·á?^¢Ñx+,sîÏ\•˜ôôµÈ j ÿ÷ :Ç}´ÚIQ"²|ÎK7ßA•á?’}o;QÈ~CþQPƒ¥ß# ] ew^ÅúÕ#%…:D¼â,îÁ>ŒÂÚ'qx/Æ‹“dG@PÒÒ0Vd/"UÕ=Èå¢ HÂlªÅìÇN¤ ïxò?•Þ:¸ËDqÔñ¤þº¯ý¤ž2+ºöy5coTKgæïþù~õ <­?èËŸäÝX½ ØØ>ÔôZ§o„ýöf§™¨j=HfҌ΅ð"…ÂJcµ&~–< yÇSºn:à#_‚HDþÿñŽä,ww¨Û.ªÛk„é?62…¡;~ðV¾ù”7™1¼›MÞ%*X¯íÕ>‘#õ£Šg2¶~ WC¿@þQSï†ÿ8~‰•ªÄ×ãÈY¢’Y¹éK©wšN×% ‹¼—lâ þÃ…ýnÅs¬Ä^nÖ€_…®½X¬…ÿ¨†½ßÑ¿Øä´ùG+𫵨oì1’£æQ6d™\r°¡oä;-Pßœê¹XõWñ“®Ô'0ˆ\¨›JfD¡·ï$ýiÈ6˜)Œ·°Ñ?ñ›9A/uÊïGÈÊ<³$ê8§ÿ@?Ñ ÿ|4ÇêO±ÉØF?þ­)KÛX)‘ý¥ù‘.µsØÿ Æa&s»Ê =.M½yOb¸”§xŠe¨¬tÆ-²ÔQì/Œ Æu¼Ñ ,ô vð˜X)V+'VˆAŽüc Ê1±"ÕõMDC;E¹Ö¨dO‚åXꯢ€„màs;ØôWôv¢¸4] 7°Þ@bÎ/¢ŒÜL7ð¯ úã?†ã?&òÞg`Ýr(ËϤ~wºñZê—Ô†í·Ÿ°G·_f¶aic·¹ ]År l™eS]e~âÕIÄÚ_ þÿ{©>ÁꦟèÿøOñ«4Ê]e±úTmIÿÇ¥&§ë´m¨ZSJþñH±…èrÌåeÂWXúW ‰ÞÁ ¾@÷˜¢‰aè'®Ó¨éÔlNç7¢5ë%ô‚ÿ°Þ™|à;~¢¦rEÍŒµÏ‚RÕ9¡ë‰µÈM4¼ ÿ1HØä 0–JØ|/NE-zJ'‰ 0§ƒüGCô²‘çÐáﯙ¶†þóR é³à3=±‡~ä–þÕGüI"ÃìðIYw²8á57#ÿȯ{ŠØDOÕ¨ŽÊ­~):ón‹yÛŸ˜÷¿ÿ݆þ”¦e`EU[HÎÝ+¿]ˆ)ð0=‰£¶RÕ„JÖùøŽËúSò«°^OŒ —ÿH ^„ˆm ±[*ü—BöÝ”µoêó@Ìs”£Ë‡º³'ÔAycŸ×Pßtý«¸aìr±²@ëߊJ?b;v`)øfçí³þ®«Þšüã êwUéúIþ± ï—„ûòM” ?•Û¶6Ú1ï=Ë–™»¾Šõ6c]'чЄ)ê\Þðç'ÑÉ…ÏÜÆIZ‹Ÿ; ¡ÿüKðRAŸf¨D/0ÇTä~dAø/êî21*7õ»­@N¢KXžnô%\w*¾åhÉmÙSÖcÒËèPW¬2¯#qIì¤*]oò¬ƒ¨z$5¼¨þIOeÒ|T8’¢”[Žìd:™\c¦\ç9M‘U8;©ÔIN+öU5NÁ6ò¶ÚXÝÎÔ-¤„™ÿQŽùQëá’Ï£çÑ ×…~/îc6îæcÖ›@_L¿®5pZoœ(Ì]ó¿ªÎU0ÍKΤ± 2uéèžEÿy ñæ÷“mÄ5½ðjcáÏwðݧéÿÈ$‰®Ž;øÉ6_ÙÁ«MìTÎnùGY0ÿ.x¡v¨Bõ6«0¿6ÊÈ®0‰°¤ÙŸõUý@¶t¨8êXorFUÉð|x»¼àÏ‚쥛$€Œa¾±‹NôÓä6á|Qƒ¿E¼ßµF_˜ÂæT©×ä^3Eo‡ÿX  6§JÈ-"« 02ƒ}ÍÁk$4ï›ÍndƒµÉâîÀ`dwKn|«"HVûÆ}3h¯ zÃL…à»P›TOJ¿ù^:ëWÏÑöú@ÿÇû6{|{){MôÛ3Ú·Ñ=ŸÕ–"(Yÿ[@åOðF&øGòó¶,!ê¯T¥»’Êé\üºÆˆÿ ⤌e~mC­„ö@©Á*—lÝèþªÎ¢ÿü³íNÄK„øy•wÚÑ´Áê~¨Cÿ`X”d(UÕVhÏU—ßÌ?j`ñGr§»y7GÇÂOVð(îaé­y᪺3ÄvB|¼¬dRGˆ÷à%îÄñ«ô«`MࢧQ5šø«7k¶ Ê?^i‘Ñlé¨mÖ¶‹Zؽ…Ä´°ûWà–3È{DÒ“°Ëßñ¯éN-«/Ç#|6•Xx‘‘øÔÊ£´Xê/¢-–ø –ªKD<åê¶Š³K³òÄ¿û'†¶„}ôÄOzƒ[}hïÒž‡ê«yD¸åVÞ‰³`oʼnØ=ˆ jÀü†7i² ÒL- £³;Ÿ_£QY× ÏôJŸ)_ƒt³äñIA®Žò‡ÀœŠ…éÙ7)K5ú<ÀãVbW/ðgës§JRÇö™Èð<úWß±µxÿçp_7“Íd`~˜ 8`XúWçlÍè? ç´Æ ;|²;UÁÓ±\sÈ>,ýöÜä°Õ§`?ÒÈuä{ˆ n? Òô¿Ô^ì'ÿ­È†t Kx œî–ë¹lJ<ïær푇²=,úV2|”?XÓOºôï„ÖOŒ§¾„ÿhK¹Žüø‡ |IR4ýéLoºRAôÝŒGÿyq8õ‰t½4ƒWðãÚ/™ 'W'8=鑪B5°ÈcMö×|-õ¶3À¯ÜÀ¯<©ßÝCWDKã+ú#µèÿ(M_…о»¸—¨T¸«ÕvZo­(Sp’,ºl‘ Ìn ýƒñgõé?_Kä,¨KZF¾4†Ê[OîèT0Ak>É5›driˆúݯAþ#;™ã#Ε?YxuXýÆj›Z‹‰èkÃdEï¶•9‡Œ¡ºYÆ‚Ÿ†þÌ©ÌÊÓù#~µW9¯>ÑÓrÏÐSƒÿ(JÕÜXFYSPD/c6ÌÇL&Î~‡»xÿ±¹½iÌ]ø†Žä…Áe+¢.ñ§ÃVæji°ó%ˆK¢U­z“ùµ³àS ƒ…Cßͧ!°4‡é‡êz{5£˜ò+x¾Ç¢ gvLÿ1–¹ùˆ¨ÚáQè÷ØmÖ Rà,O ûúwÃGe³÷YóEÝÑÊ?ºá?zâo6qª_ðVÇëþîEþ?ú½Ý¶Ì!æ5¼²5QŠõ"óåÑà?º¨—ñE´»JAN×QôK¨õÐoÿŒÿø=þü‹íµöI´1,bU:hI´¶êE%!,CWm,jXñ#¬iÕYzã5-½•kü©>b¼RY^)¨6ÃßLç-IɵjœüZø+úD8‹Òú`2&Cž“ÿˆ_8b¶{üÆ+F»\®רá³æ4=Å36—Ïö@ÖúFÛÿ±œ¤ªœ©oáúÇr/Î3G¥ž>Åñæß¹Ìÿð=ÈŽfÁä‘ÑänV!§ëŒ9COHª<éS‹Iþqîü8þã9ß·P³ÿE?q¥ZGX³Rª’¯Ü„=øAþcõfßÁrUÅV¢)}­ñ&óÉn¼½?,½jLoZ&†‡ºâ'èïfÅCfÅ'FÅ ŸÄb\“)ŒôÔF¥1;(IT»~!+Ètv[JJæøÂ²W%¢H ŽpZ±½ú™X u10µSTW}×ãÒý1ÍhEN3•úÝ„v/𫆆ú®¥ðXvc¼Á~ð³Ýøz¿Pú%óÁôs™œF£¥«Ó™£²…~{; áñ>ÞL+ ùÇjò†Ô²Y ó©”r]ˆúÝ‹¨ðyàKQuPÌuoX6ã,úW:øÕ",gæf'Kêd.„?¯޵‡«Éó‘FCúÏQ!lo¶*kÔ ¬ÇˆIöÉï(=Æ4êƒ %¶W"  ~W³/&±æGùû©»íIþq–÷oW[\î£*}¶Xåð›ÐOLI H9"¾G¼k±™àמ¿QŽùƒŸÐÓRÑBίrÓØG¤Žþómx¾žzüG%üGI"»ŽS¸Ué ž•7¡5‚v]˜…í>(•ìÁ·å¢Šá³ÝÃ~ݬHÛ ã´¹žû›²›YPöàϯ¤þêïhî¤ÿc?ú%Á•L/lÍ”ßÃ…‚ßÀ8àWÝèÿh¨e×<ƒP°óô–TëSõúÝß›_›G¹¯©Øá>d‰š^KS´‚TÿÔ¦ŠÚè ú«ñÔôNïCð>ÂþÔ[ر[¾¢Ö Õ ôK*)oÕäpÍñ«èdû¡Þû¯†úéC¥Š:‡n’‹Ø:ÄÇè‹H7x¬éAùÇMÎ@n,Ï(ø»‘â?*k[µµT Ü zßED(ˆ¸†€S|!ŽžŽ~øpïø·d8—"¼æzôÖ!~mí ÆºÂ§tÝO¡Þª,xÀi2ݳd`Þ ß„]ËÁŠIµµÔ÷#³:³ø*ÆËNfw›ˆCËR‰´Žýž¥ò*'»?ž¹¥øS ~so]ið«ŽøùA^muŒO–Øû1Xž4z_êwéò?giæZ î×Eõ0™©Ê­ïo4I|JövëZtù661Ÿ~\;Œÿ˜ Æž›»°‰û:šo½%ñþÖq¼¹Áû{hk®í¦Ÿ]%.^H÷Gj¹O9 ÄiÖh]:"Û“pø´Ô_­ÖOò¿‡dI=µDjè™'»ÕÖ¢;÷¹ãyÕgòR?Ðüwð wf€E{ä0üG)ÃÒOÌÎÓº@½èkгºÄ¦ƒC=Sý&в^av’UÃk…:4¾„½:ðèï¾Áyóë|Ë)´«˜ÙnZ¸tNPapÙ²¢‡˜îð›Ñ/É [ƒþ5S&€ B¿}8}±Ð¼êÉÓ8Vp7úýèZñ0SïP\¯ÆÙÍù{.r¡ŽÓËq Ï+£è?¯{ڂȪ >ƒIµâ)×Ð'T ÿ1Ðìa?`¿mV°[ó²NR¹÷Κ>fn*#$qáUñ˜¨ÓB±>ø\ÿ_òƒ?Oè8 _l” Ž_ýÞwGC?q¸šXk«•G¿½«l·5¤z·…ºŠÞ .ªö·Äe~”fÜLâ‡(ÈüêyꯖˆÚræŸgWoŸ¨¸ˆÿh†å&bèE•(ZvÞ„ôd +E|]D¿:£¤GÛè)–í0¾b5ö#‡´ô¯FŠCĸϬð«Ù°ò.âRØçôÓ¦Úvê¯jÃ[uB›ˆz.RSü*õ·i‰\ËÐ%”Œ®ªã ;-â…”a|ÿ>ê¯ðEXޏxŸþ¼9›±e–~bÞÿ²XÛùðÉñ´:<í„Ú<ì{<š'ô1ï8Œâ@Pýn¹–:w,i.”E¯àï»Q—ž.¦Q›S <Œ*ÅLT|y݈àW—¹êÀ˜Æ—ñäÛØñVöÕ´Ï!®ð×ÇÌ?ïÎýŽ-gã5ž‘T!‡)Ïj?`Ò¯i»´OT‰ÀªÍ$«[‹¶XZ”J5|L°ò鯵l¶{èïZóϨK‡G40t7ªÖÊáWMÀë4ò³ ${ÁšÒñçG‰?Ï‘Î`~í‡à¥‚>íP›ŠaAÏÑ„¿w§5>±øU £4ùGM´YË’´¡¿b#ø‘ ¹×ejw_Á D?qlèç‚ÿHN†•ˆø }|‡ð›¨µJhG=<;1nò;ýç%áÏgâáj2‹ï~~§3'ýçÎq;ª÷k%û/oO|#§£ŸX‘JÙtæÅ°Ÿf¾ßÔ÷ 9"k‘,…78@w gàºÖÔi‡kEqôKŽÑWT‚|M¿ZJ7¼«½ë`.žÐ?xÈHGOz*s?¹Â üònøÃðéåÑÂqoÙ+[Èq‹Ê\ïEìj3ªŠ¯Ã©è?­ ¤ “pó OØ•^l/£1} žxÁѬö“{Užƒôq¬·¤á1ÏÎÁAiÍŠK³‰ë+ ÙzÃS}ð€)è*“/£„Õ…ŠNDea:ëÑÝ5ÂñîíC7%5„•Éá/ñ¬$<¦½Júp£³’ì/}ìwÈšÚ™QyK.W^OSUøÜ"IJCþÃKùS- ó–5"/wÑcší+èYŽN’L7©ißI?N; )ðç;ènÌC•p^pKÿê–xËipWü¿ûàoK¯Gò_l]”ˆ½ÃÛ›‹¨ŒVh´jÚE¥*§ë0øÕDµ¡:D½G>¼¿æÏS+ûµÏ¢-hCvø_WzãSťйp!óè?/§º:ß0 ñÃ|ÂË~’>‹£ð¢î(¢×Sbi ÈìUu›kâÁ_0ˆ=ÄÇJ"µ¸ÉsÛAž1‹3™œ3aêÓÅ TΙŸãÐÒE¤‘陬Cþ±„ú«›Øå©x%þ£7ÙÃC}ú7ð#y˜Û””Èd…xá5×Ušâqψ˜tý•¢s.lÌ;Ñ+çK×ß32ø(ðÅôàñŸÐ¥lÁŠ?ÔiØæVøwêÞ‹1`ßà2Øœ™Ø‰Äð·¹æó°Øñ0 ¨Té®~I!¥‚Z‘ˆ}ߟš¿1Å« ^é+6›ºº@*ÃãÅ#}•^GÎ4«R´Öd»\¤Äܹ‹%¼ ¯åûQƒŠ¨øï—Ú}ø`ñU¨ß?Ž/š‰‡:MÅp2Ëóß?0ПîÈOúH²€2T[mç).×KƒÚ Årî’ßèlðÆÆŸ„ŸM ÿ9—5‡â'’Äÿ‹v§Ú™\­šž…,áHÌc¢–³ÄúßemtKUAÞkWè,k¬iLNr’;úô¬0úýB]qUÅjŸ‚M=¡Úûê‡~{ã±<‚Ê^A¬×Góµ^uÑ43•ìj<šUÓà?’éYTgD¬þ£9>ú1 Ãz,y|ºø¦PñSÞ¥pɱÉ?.’ØàÀ»Öäƒ xÈ}˜¢”E.š9íp5E‰LŽÒ±Ñ ¨GrÜq7þfsæXó~ôdÕr5ÈAu kÁЙ–ùµÁúWmë•£àMn¼Ù9ÿÄå²1wêa›é·WYHÍ\–TJaFCóÏf¾H3*ñì.¡¿¬F»E¹¬²Þirè2&Æ™™x‘’Lñ2ÍU¨Õ/¤ûò;õ]—èr3ÎÁÖÜ3éÓ±W7Ê‘Ñ0€š©ìxÚaŽSxý]K¿½1ƘËüô›/ãJWã}ò±¯Áf;ûj»§Y›>þéì{/ÙQQXÿ\r±õRpí¨œH×=ßÿW?ñ¿ îî}aë©D¤hÞNå4þ‹DýÕ¥§k›­:v¾š:åCUñï/†ùóï¶ËÚ}Ñœ7&ù^T훚B½§Ü#ÏË~µNÍ º8ß0 ñÃÔd ÐmϬ‰ÿø,r)ïÕxp÷´WÚHq^œ‰¤þî=å›ÒYÜâÝ[ 73Ÿ9³lÆ6Qì…÷>AT’;6šùµ™Ed0»ÖÌš'ÐfÂ.¯Ð­¾Û; …àcÊá¨XYþ㾈Å}X/â:ÎpˆKsú˜@iîv‹hDᱜ®à©Ï¹{õ¥X kZ…!ýðš+Èt¢ë.šU'÷wÿ\W‡‚Nµ‡ÕY…W»,fq÷Fë¹QÈûI®£^ìâ~oOË ýÝð²®²JU5=ÿ$²¢ŒüÿWPÃ6T½_¿º~5žºYhØ[*x­îþ‰ddÛ±ù-µDaìr?K‰íMŸpô=/u££˜bñœß)ŒæádHñukð~ãe:}\Cùø£Ü—ã0<Àº0^ôä§&ØêŸŽŽ½ºeÖ"Ÿif´–îó”ø…ìq>§.CuÈϹJo,ta²¨úK¹Kߢ‰Æ|ì^jâòkÔœE£*+•¹Z„‰<›Õ°9ÛøæŒòXˆúÝ϶%ÊNòäjò&»³*Rê‘i=6À-E±¿Y õÉL°ü˜ãЯªÈtª‹øø¬õžL)˜bL5ÁÊ!õoƒ7QÉaê¯ Â’´Båë:‡;Ps܈òÕ4ºíãQƒ{Á¸Dÿy£¶yºŽT¯—;õ†L( î?ŸÇÉû޽/Å;ñ¤I¡ff¸”žàW©È´:‚†=âs fÙzÓݸ×|$?29±¼Þkb Iý‰Ò¯#s…ùçSÉ?FÐo öT1ÓÿQ”)c[Ñ/¹Iurú/š-á‘:WѬßb¤d‡Å™ÿˆÿx ¬ŠòlÿHýÕ%[VE8ΪTþÇý1”Ê\ôw;jùµsAó0ÿ£ùÇ@õ.ýƒáY•_wÑù¿B9Ìü¨®ÔÀ¤õ̬٘_û@yþU)m¶æšâïáWñÄ{¢Ò‹¢:g¨ üù3‘þ#7ÖDˆ¨b(“Toª/œ·ίî*Ÿ”îÂG߉©6{†»µžë~ [x‘·²yho‘”ü#¼J¤K7ÓjÛDy*)Gù —܉M¦ HÿQT¿Iß[I¼_üýGbê¯  X|ÜÊ?2'½‡ÿXK|ÎÔ@¼^|¸†:ä9s©g¯Õw<û{ þ|^ÆÑŠpÞᘇ ›NWÄ:li%¢æù¼Çà€¢Ñ¯r˜ ¯µh¬„—u•„9ŠË7‚=%Wû‘þóÞ YŸ©y:ËN§`¥bÈSàW6lÔl²1KuåŒè&¾T™¯õä»_ÁË4cûñ…ñ ߉ò:3ÕÅ_ûžÑÛ¸ æaO* Ïÿ«(«—q¼¹Á×égk¨¦~÷•>¬?9Æ6°Ó±`“«°‡ó@•’à?vÁQ¬ã¹d$ÿXÆîz‘lÔÛi±ÔÐ=“ÑØB_|êJ7cYßs.˜ÛJÔšþOæ:œ£sp+þ£ù‡UsZŒŠ„ö¨÷Dáo ,RðÞ¬Oï”×h4­›*õLÅ\,³›à»pY¨þykJãõS±ŒåXûR¬åçë'sñ¤]ÕÉN+vkÏ]¹†…žEŽF³1þ¼ ý#[àÒÛ}é̇µÍ9CþÔq×ίSލ6x°“`;ä¶7ìj9ùF%ò—ÔèVE·ÏÂâ§Dÿêú ëͦä‡^°p¸Úšä5ÅàýçÖɋΟ ÿaÒo÷åë ~U”ð´°QÍf|>Ræe3±!éÿ(¦ü“\9ì§Þæ×û*=´ø£~D¸ÉyV¯jLüÍ~É®òuË£ì«È[ØW3?ê{LÄ}èGþ1šüuè_éè7gûGøÓ¶ ŠÝq²¥ÇÜÿC9«¬P?©½´ôàW•Ys­Úþ££z“üãâ¯Û©ÿ*ÊYí)¸K;re.µDšøU4pÈjôkûªiÔß«3NKBW°šDUàA¾ŠtÊ]5ÇEĵf?‰ë™áöFï(?”>âx)hɬkY4tš8G4|w·Æ'íŪ¹“K¤`­oT²5q¼¹Á«´•ÕΊ?ñ\c±CÀ¬ù瓱_ ¨Nšƒ¥+F¼|¾w½L ³ÈUÜExÕý vÉ?n/ôiŠÚ•\­:ug@VÁ< ¦âÛšÚ¶Fq*û‹ƒÀä!óhÅ.:ßÒáç6bSPƒ•DŸ)ú„ºbE  Â³ Þ*_ä.øåCtnG¥ç*Œ@vT8èøƒóhÆÔ"ôPÊÒÙíI}ì Yž‘Që´â`õ¹ßVâšta´Æþ$@d¹Q—œf;HQíˆ|Ýè4BqœÝ¹ÊÙÒ ŸpU•Qmèî´ÞDÑ „˪¢.?ŠN•Úc']«±Ô™ìØßS”Ñw°ßiÔÆÂcN ¸›»¹?E\ò¼h븃Ïm«•#0í8¯%‰,†‚ûUF··ýòÍÆDüÅuXs*œVÒÿÑÚlk^Ç· ‹ct#º¬ 1?jƒâ¥~ïã4—¢~éâ¦Äæ„;ZF&²Æ"ž=6ú‰çÑ>ìC®³In6m1Côp¼{Û”…Z,t ð¾ÿ`6È{ý3úìÕY'/î × Î#Õa/Á¯º›ï™?(ìŒ|äTܻϢ>W<ÿü1õWãA (ZÊ ŒdeÑó¤·%Ž}¸Ù×~ ÿÑÎN‡‰ñ”““„­›™Mv¤#k>øÕ{âÌœb›ãþï>ì±¥ ÑÿžÖé\D~'ºrJ™‡ÿh©eÔüWVÙgk¦VU»3ý%õ»~‘_Š?S¹„~{zÕŠ‚þçÓbj-Ñl#¦PÍ9˜ùƒŸƒ¾!òKæÏ©®ö%úä4 É÷L LþQH'ýsà?~F²þêŒC)>ÏoÃ^-Ånå–µ©æ%΀åß î*òˆ$!f0‡¿ÓÆè±l%/ºAEë¬Ò7béAº+½·åd°±"ó·Ô •¦kÞpœáðÖËKýU ®/Ae"ïÔœG®z¯Tƒxî0ü‡ûÛH|ŸJOªEÔÅ[M~Ðëçµ<'Æ‘s-ÕkÁ"/àýÏ-·Â³;²SsÃÔiúÏG(^álÎU©¬§>`Þ#þëú‰Ý°þ–æí}¼îz¢ÒTò à vh?ù;¾é;ŠgaùYÊj­Y }ˆÛnã¹kƒ(”e·šl¯â”ÅØ §Z“ZÉ•XÊÑpöoEÐÀraø‹67íþƒžØ€ÌðœëÈ´‘³Í‡•—PfvùÇir…¬d'«‚P±½ 6µTê½P×¼Nm)&ã2ƒ"ù‚Ö|$®8Í}{/[2Oc9ú%GÀbö£rÞÚØ#;à7+bK‡‘Y ™èìê-4Õg`¯ÍÉ:–ÀB¨ÆI,_jmãPÃu-ØÄ¼wÍ/òø••äe½8åcð yÁ›¨³VìKÿGC}g­2±@=8ƒøÆø«Ób.ÈP2ûâæøöFê¯JS!¶ït_ºŸ¸éQ¨ÈcŽh Þ´z‡Š f_ôcr+üÇx•4ôwSô þc xÛ(C.ògpÕëȹü¨ÍÍ&=DSÇ|k›©À"6–`· ¹t4¡ZüžùƒÑ™ ¸Žùºà)Êã?ššã»ð"µñH{¹s;et£™»?õógë­Q|Ôèìߟ'vAF¥ŽDð ¦1/¥þ#-ùÇS‹›Ô D3Ïàåê*8åîp3»ˆà‹aìf56›±:‰8—Á6J'íÒ—+‰~IxOÚU)­–ÄßLd&qfVù*‰þtݾÑ'ifÂr—Cßú(ß÷•ýî%ºóÕ{.Ú„Ù?8ž*ünd†œAåîþlwöV‚¿û™û§ -|½;UA‹‰¶‚_¥ KÂÓï†ÿ8b«EÿÇîþ,l[VúP6_-‡e˜¢ÞÛYÿáMrˆþW²“ |÷\¾‹¹õZbõS¨#³Hm!¦À£ãðlÆSìËËbÓ;£¸™G÷,Ʊ ú«Ã C à>ÎÁ ¨ÆbY,tHèÓ­~™ñã™°hïYåLúfŸ¸0Ô—©æÊFýÊ|ÃïÔbFÓžL´Püøw‰¬#–W]â´búÙÛcOO“yÈðNéð›qô.cxZûAxß^ô"ö¤Šê¨Za¬sb”wIfœë‰D[§õ‰àWÈôòRñõI?ªÊF¸Š}ÌŠBì\ˆÚÛ3L ŒÁLÛ´àWc¨®Ëýô¥¢¹8ú%>!ò¶AÊ:Îi9ù‚¬¥(½Suíæ ªcë£ß>»ÿÈ(L•skAˆú1ð.YÙxr™ÔF|ñY2¸“Ž'²WÙ¡F¥£òÙýAù ô(%½KÌ öªTQ¿B‰÷//È?bá?Nš¾æd|À½AÔ¯Õç\׋D/Ç»·L©eE½=ŸUy|Nÿi´±§ç¼4×¹‹:±’æUH½†ÿ®§ þ;እѮ K‘²h -V“.’(b´h¦MÒ©iÕŽ]‡¿Jðï$@Cî‹NúypŽÝä.Ê5Ùd%xŠiâ–x®¾ þãóÉO‰Nÿà"y«Ãl V! õWq¨§8Ê7\ã äÃÖO„ÿˆ'"ƒÙµ×Vj›È´¾íîÂ|%&lÌIÓàTêéÁ±jñ&–õég8¼ V‚ÿ(ÆüÚ$ 'MäRª×rR£Ñ6Ú“þó—ÄõqåiVô!Iªç¥Bñ×U©ëˆÃz“ ÖLr…ÕÈ Ka™7á?òK«_þ4¹M*:Ç/aoûˆÊÑ¿.ô“´Ì,Ïu.ÀÃÔë&~± ÈØ]ê¯nó6Î%‰ZpƒÊüÝ.þÿ>œK¥0ýÇôKúã7Òƒ·åžá®ǃ|Ħ·Ò¿kçµ·XØ^²¤\ÏZǰõ)ñEñð5onðF7ÛJ 5Š÷p>9‹Õõ¿.ewqšìâfÕµ¿; B1ÈOÜñI~¬û¿¿K‹÷—Ù•cÕ>š_[†üã5ø”!‡êw裶ôsaYKÒ[–›é|]éÎ[G†Žä&ßý™¤$óëCÏÿHÀ¼Ù¢<‡âØï¼Æ'yüj¿Ì VåAÿyI“Ø{¾¢ùÇj¸©ªÔzݤ_å(ê:õœêR§÷eˆú…wá¹^#¬x;üv&c&l§È\Ôï7“ñ½ …ªNÆ<`.˜œ tÌ𤋮¨ÇU5ETÍ<Î;Q;fÃî&ÿFåo=¸O:Ä£‚Ý3à¥\Ík`u“AÍüàû%ú(9ä>ÑÓñ0~Ø& ßž‘ß·tNræêrמ“䦋b-øšågg²æ?='ÂïÌŠw@ýØáh²âsX绎õ¶*kU)3I/}¾VÆfµ8ìb9VO*Ânâ/¡«ô£§&c¸J¾ÐLl?gaϽ*¸WIôKÆ;Þ½•ÊX-ùG&Nò#fEêò¶‘Ú^ÁœG–+ÕQíØßj±þ0?€áÕd²a}ô‡ÃŸKr£æøÂp*3§ðÒZ›~5ƒ÷Ò-øb4Æ{WÂt¸ÜæêF0¿ö¹Yÿ1ÎHn¿hÄf¢ˆ5ÿ£39ü2êw_cƒò‡@ì—þþá ùGÇÉR”FÊïÍe Þ`4åùG­½Vèßþ㤭¾ZKm£ö¡~7†r=øFâSåv‰¸y‘M/ %Ö¨šúýÄÄëÏÔ„jÇ®#±œ­,>z'Ú’a7Ñ׊‹ðçOÕäàW-Dz± òå/54a¯ëÃüÚžBÃZîrÇÆå•µáZˆÍ <—ˆ§ËÀøQQ/kÅÆè·oåJ_a±öbç5ù L'ˆN|údz_U&RÏM®sL¤pœá°V²~æ¦ô%ç8 \ˆT݈¡3¡?ù KáËÊ•Á…½éa:„8†­§çÒFpߪ“É:‚!çmÑÁ¢Ý‚øómôÔ5_Ⱦ}©MGÔwëo f…;¿6óÏë€7ÍĤ‡[ˆƒÞ’Zº‰4óé=e âôC¬x—^k2Ó ª©î‘}†…_MUVj]aS’ÓÞôêÈ@%,Û[|J}]·µ'T‰uÀšÌâ)YsʳR‰aMM V ¾‹»l9µÂÒo_LerQiJ¼Òr=5v® «¬3ïNîa)ðºì$û<Ã]üÀ¿{4›z#x© Oãè?_Q€¸ø ó ~òýƒàϳç7ÁO Q‡î¼ø¬å¬U•Ãð–K%Ô´ÒÏØãK¢“9Å!/y´¨ ‚úÝRäv³­Ø¿îdX]Œö}¨Ñþ þê0õWSa¬÷ãcÖpÕ'a½_[¸Êý!ê¯.Úú*kðµÁ¯Rpª²ÇJÆüGVªZWÂ*›1³¼'üÇ[c:&ûðÓƒñ–éNœÊ ú\'üjŠú‰÷áÉA_¯?ʘi¦°÷‚Ñ¿b¬còÖZêdcRåO–tо—º¦'‘Ñ@ª'ªáwêŠî!ð«5Ì+Ë»PŒ7VAù1PIŽUüc Ïá)Œ‡+³ àM^¡Ô?ŒÕ»ÁôB¿$çª>,bòö™ÿ±Oi…~b ìS30M?k4´ï¢Ãc7–uy -Í.̼lÖƒ¯™n¼A¹ sG˜ié?OŽpKÜ% ÏøðçGmiBÌÞ|Éü”Nç"äùûÏ?lû•ñð-´2è_Ug•¶Ì?o ŽUß+O~s~Ô›?ùÇät…¸£Ù´/jqõ ÇE[m Ó@^)9~kŸ¹ÄOâç#¢Qcu˜è¨º¦lW“qÊ1éi>õ¼1µ‡ÿþÝëÊe°Hˆÿ€+„‡¶¦:4 –®ÿèíÿ1PïKþ‘B܋Ċ婘#jíXë;t:¹ˆŸsáE~Rsš—ȵ¸}n¬ã!+Bÿ‘B€…\$$–¯þ'*Èz;`LÖüA?lrrüG7Þóõp#¹5«Oçïþ¹Mÿ‡:Á®øYøßÑ Dcõ¬`õk±(Yåt®Ø‡{›q|`¦Xnÿy%—Z xŠž˜÷d™úQÛÿX_H•Y:XJð^DôÑà¼Ïq--Å÷¢®VOÒeÖž˜>™œÍ{÷ž|°#O³(ùÛc*$žQˆíì-KË9øÎ=ÜKWk’%O?9¾ò­AùÇô±ÌÀ3æʃjêË@fƒ[ ÛÊN>w‰/2=*ùÇ<°Ÿ½Ôc~Ò·héþŸÏUÝÄTjsƒ^½ ¾Í™ðÇ›Ð_Î<¿m°¿w™ ¡”_8÷5©ø:ÆŠùñ ?õrþ£/»kv³|í»ñÁôƒÿ ‚¦[c÷¹3ý˜¾ØýÜÔïž½üÐÖ ü*!þãùß%˜«²8ÓDº\ê1|(:éoYÅ¥qÍè~µõ—¾<ïxFG™ ß?%„þÕf梢â ×èKõS2èkj£"ý)ímÐñ= 7ñŒŠe®9 }‰W©ßmAÿ ‡ž&l ÷ñˆ^Šú«¡Žwoý~&‘A0Ì8r–¸ÿ¡ÙéÚà$cºÓjê‰ã1'иƒ•ÚQ‡àÉä'K¿ý;øöш7s©ÃP:icD!Ðï:`?Äe£ lG:#¯á)üÍqfw»§=þóŽôŸ¿¢ :…ù@Ž5kÀŸÇ™õþ¼U¹þ‘þsè'jŽ“Eiöϯ5•ëÊŸê[üG>í„’—5÷ØÜP/iJúc%j¸]Žcãô!‰rEû@?W/pÛ"ýçù‚ú‡‹Úpí²šH-ïØµÓ_ ç¥Å7òàS0*ÛxJÛè÷È£œR‹aqJŠòd§7˜åZƒ;ì¥. ßÞ[ü ö^ß®Ë^‹í4ˆã;ƒ[ÂÝàÄ="b~»Vƒ9ë¯\Tw<Íz:ƒ€Žbåìy4YÝ~³[“â¤=`ÅÝØúF&Ý~NÿéWùG4Ù‡‹£¨Ë^‹áÄÀ“±ÇÀQjéÌ"Ú?•ÿUÒ<‰»˜øËü£€šü*ŠtIŠÆ»gÒ™ËÍèw1»ÌiÌsI ½È?48þ]x„ ø–ô¿ ®P ¾ÖQèw§²k1±Á mU@>ÔaOÈ—úW蟨˜~ì=Ekžh)^번½op¾¹Á«ÍWŠ£×h‡¯œ bU‚þ[A£‡ã?æà7cÕ3Ã!ÛÑòUê?rc‹Gx^~x«àWWƒ— ú4Z+$ÆáϨ_ÏÀ‡SìMÆ<ð ðçölÓæ}øºæZÙû]…ÞîÀ°fÈBÆ"Ñ3Ìs9©¾‰émŽî\–™Ì<nvØþÞ•ìä¦Ó|AEI s þ£ùÇ)¼Í*Y€<¨¢¶+ÔŠ-´@Ñ™ýÝFô³Kþň¤ßíAþ1f:ºã!ˆÎc“4•+Aª3àwì>+KÑïÇŽ:àîâGÖ‰ #Âþ»ª>l¨~|)WõD±¿§Ç渣hM@‡yqº„ÿˆÏê#È?F«Þá]—þ¼¹E_¸ÇLä&¾Áî¬E9*ÍL‘r……?ƒx…]Þš·ÿp_äÒƒºà¥W¨§àÏïq?³ðiØ¿øJ¼õ_áÌŽè;õ{غ¶äcÁ½×rI¨Ô‡‡ ¯ûU¥…îC¼ ¼g~ÑwÔþüô»cÈ ’¡º‚½;ާ´YÝõä4ž6?cÌÐãhak&§iåÅÎAyŸïj~Õ›'[?¹Ñÿjý1¼ð·¨k(ozbyíi/ðøªüôÂæI[Ú;øóîÄëð1.æ1öñ2z¨´ænøó?­ÔØó?^1ÿü>¯(ì×¼ü]( ÞS‹ƒGÛÏY«I^Ñ ¼.1‘ý³ Õ“èŸ(È?4Gì+ô»ÛÉ ÿ„ù°»mM÷1~èuC]á2‘>Ì—«ìÅjäkà?®‘9Že :*õñè?ˆÞ…Gñd=ÇÉænÀF$’«BÌÿx¦ôV·p§Å`Z à­`uLØŽÔÖPª"ZXÕmô)±(eÑ_µ¡ïZT̓ɊM³õ[P³?‘•êbígÖoé%¡ìÊmöÇ«Äó˨Ðð¤ó˺iÅr$ ãYî¾+õƒˆ]p•ù¾èvæ8óUjo=!•Y9¯™ÊóȈJ•Fa4\Q`ÝDÜ”ž(åÀ¯Þ²ý¨rìl~“¯"¦ ŽøKT@èÂ4Ò;‰¢ÄgÕèIçbV¦ÿ»e³¼Èe;ö8þ²RÓc«©ù[f+½9Ϊ Û_͇ÿ¸†Ž8õ%ÿ¸NýyðÛ©ª½ÔÜ¡ÎEðûÑ'øóÉZr½»^]¿ Ö`•]Jkº—ôÔ¦jÏÐ_íˆhPÿþA9¥ßDÕÚŸÜû¢0ô@-š¶[½®w¥ÿîjý–M³^‘ÿ•KØóÅOÑ/܃¸a™x!*©ûµ Ø×XØùIâ;üÇ×H-ç£&׺‰7Ä2û°ES9“é`(^3ÙjyÃIlFNp‹™¨wSG*ÿ¨I§Ø=¢!oòB|Ñ<ð—›DÒñà?L¬s\ÞŸ¢è†J`óÏG‚ÿpU{²c»…/Ñü* ú«›¢9–p5½œNPœڳØçµœ½âW÷´ÔVôÃ3lBðP æj¦³ÆR:àå¤SÝ ²Û+ÇfœÂ³t+Ôƒ¿ØÇ¬j)­½­&‘ ¤£:ЀïVw—Îíþ¼}°z Ï-¬ò~Þ°ÆÛÌ^¬ô üj“>ž×ð•ð`§ð"uPU¾‡S¯b¬Ò‡è—`-º‡Ûó½øyÑÈ?4¾¢¿óÍ ¾Ð½Juò~ÜÍTò¼\Ç2Tt3@œæ‘õ‚1¨¨¸~ÿ‘[nÂwøp.±“3ôä?åó´Zb2ž¼ û]¢÷pN>p wè’Éô…ÿð5 нT·€³ÛÓöîá?^Óÿª¬±CLsºß“üI Á\D©¢°:gë ¨ÕÈJmÆ bé¬Ö,zæºß§3ßâ‹Èêh¹ÎáW•Ñ4ÐF‡Z±³æBT`÷7.kО,.¨¯VšÍd)*#V²Ö rQæ#úWµ ÿ¨~uF~/ÙÅEòªä"tçÍ…"ûäG4œB‡ó›ÒÉ<μ{þy&*6ƒíÄ`JUbË¥{Q&âN·êÊ®|55Ëâ.w—?ã|®ÿú¬äV8O–†ÿ0ú½Ÿ¨*1ÞÌpüÇ!¥<ýK¨°‡…Y ~%ñÕñtUPóV Ã_ûtýU °,opÐãØ‹ góôLZØÓ=C+.‚gffJ‡?Êß'ìØÎuêÃSÓ—¢ õÑÅV¤É þ=6Ñ»?>9š9 5ßΟæõSäuvùÏ0úÝI¢0xÓ>Î!Ù5Àcæ®ÂJ_” Àn¦à?’‡<0?È^tߨɮN­É?u7]å£üÇð+/#%;rüï>oS}»«lGRüÇ$&2U°Ž3pe ó?Ê£rõ@EÖ‹g“˜;È@œ´0„öq­:üêO¹‘çuþ¼,ŒË,sTøó-ÌŸZÓ3(?š#.õ„ÑNu6›¡ßUÈ:·É²¨Ë÷óká?bÒ׺„1ÿá)^ͤŽ\ÌNfäoæ÷%VyÖüÊ øvø”&fê?ò;Ťç¥ÈAN| ªõÁåóÂ1¶1ãA4«ÃÇ*ŠR9€*Éã<ÙŒŽ½äYÀÛÚÑ¿d3Õ§¹Ì™àWÁ»vÑ":|]±åWFáÿãߟS↨Œ¢výM^!øÒLõ¦:B‹÷(n÷Oô¿ªÈôñZ=UU¼BÈOºzRÿ(ܱ.ʼnRá?²j'éŸØœúóiú^-ŽìõB~߯>7¥ãHt­õɰkÚ1ƒ(­&Ñm¼ÜDg»Tçz³ÔÝš ü‡/1Ée™žŒ+âdð¾šÖ"ó©yåÚ<Ô\ïè»`PÇQÿ±-Ewr³Šò<úÝib°óÝ›¥Ž!ÿHÿXImÔñɸg¥I7«:†tä/ëafj¢së†/Áû9º“Ø]J3· /ç}‘ózQ>PdiMŒ“ÎpÀw¬·òâã.0å=ºc·9\Š£ LÊqj‹XiP¡e ª%Y 7±p¤¦Õ97åéÃc%YÿñåuæPç,ò?æƒrKmƒ~·‘^DßÄŸŸ¦~°œ–‡ùç¯Tð¨È/ÅW~‡?)ðçÂÊÄb~mí=3mGŠÊðçG4‡–ú·®³…ø sþã<çq9ür2õ›VKŸDD¡~Ð2d$çøÐÿª gæ«4XÎyjºêS ב<¶ö¬ÄÁ·ErlÓ»#¼çlêX¾~}ž¾§/&RLMƒŽDß[ê ([á%Obe=íŸd¼ŽpŠümšñ6´¿ø•­ß€Fó(Hcb:OâðC¨Ÿ2Ánâ늗¿¹¡yFõ-?¾a0JÔXd3"±®d3Ÿðôö0ì‰B?@Ø^áŽãM—°#ÞäŒÃůæ©'ô\Õc¢QŠk8ÂWO¢SCÒÉø ûꆹXÂêOán×óvºÐ?ñÈM•Ð×eÿÉWi«ßÆÏ~0FR5V”n‰+ŒŠxÝjàý]@þ_‘uÔBuž7&÷íÖn;²‚ël¨gÐÂj/FkÄ`ÎB*<­/ë}†õ9 šƒ™®E`–ËÓ÷Oøí T£ïÅN% åjxt_éºò§þ‰þàW9ð‹9øª[h–.²çàÏs˜ÇäEºìe‚]¾ÊüÚ³ÌÒÈ?RR÷r‡ÑŸT [—X›êìÔ×^‰Ö¨*ÎmÂR+x®ñ õ-èÉè‰ú4õjçÁ\n“?tág”¢£ïZvavÿþãÞ2Ôz“É?êóã&±Ú[9Ÿ½¡`sÕ‚æG¥‡?ÿÂ=_"ŸÉ`훇.a£ýK2É¢¡ó¡|Sz‘ä@õÌõ;]Ÿª”{ø×LKYÃ|æðÜ©©x@¥ø.s$}°F 5L¶õoŸ îj¶Žb¦«{´¯AüÇã©Ì‚7ʃ°œúóäqà*ókW[Vlë:]=àªX«ŒÄDHóɲ/3ÿc˜àôêt=§©$ïPryJ$‘Í:ŽŽðäe¨P $3¸‡’Ý­ ½ªZá?þÀ47 ‰Y2Ñ`0ä%ÎSx,ˆ?¯L$5ïÍÈO½ùhê—˜G¨%YÅ<öÁŽåŽDŽtŽqäç™Ý[’êô‘VfÙ ÜÜ|ú<º¼²b“sÿ½—•XÔöýýó¾+nj2çŸþþÛÈýþCy 6Ð\`? 邿ì¦ÿn&Øö§óú[åPä–ù¿_õYÙ©ÛÝ‘š²£Gá¶ß2ñü¦zGï.\õqú!ô»¿×?1¯xˆUÙ°…(ÕC|BøCË%õÓ¿êcñ'BFLÿÓ¥îe~m}@â.*õ&ÛfASñ^´â)¶'n.¤Óï/R€DÆg– ~p¨†u™ _¼üê6v8 Vð/ÞœÔØüÔ$…­[+~DølþP‡’©¬ +—ëÈ]2áI¯§3Ñ9l|òñ|üœ±(cãê%#Xñ¢æ£Ð ?é{ûAŒ¿ÉU-CçZ«g+¤.ãCóHÌ¡Hq·_ö/I¥fÓÒ€ ŒÃžÅÃ×Jv­%>â½±†Èµ²1”$&Èu8 +hK'Àl‡³ª¦+á\åhuƒÞ§ù™ü£$¸‰ÝUãOží7j÷ÇQÄ&Ý…ÊîF²Œ\BܹˆJ¢Ìøa ÿWÓùæ?ç]Ôœ/}kŒ'~ΠDZ 4ûµ»´ ä*_âÞt'×˜Ž«\ÆC`‘Ö]õ„?ÍÿX¨Õ}ácRƒÑxàÍ< KôŽ~„¥éjQš:|æIê?*¡ßµó.W¾®V°ƒ,€mæŽðé9iP¾21Jò‰È5¨Á3Óc­zXŸ¬Øæ3&õ% ÿÈMÝË=²tõ(K –S›jÅ–ÚwÔfÛ©Ó,„l†ßN>Ý,I6°õPbÇSúi ‡áïÂü¨xÀ °3 +‹åÖû¢Ûâ‚ eɲNUUÃDÇLéî†ÿhOÿ«µø·÷æfžÔ?|V®ªÀ¯è5õ3j}VÙ­T¡þ¼š6åm€r'ÂB~A u‡þPô`G3á?îjþZí8=S °L?HÿÝ,¿u®â¨ø1Q–hµÚ‡s¢¦ªëY±ö¾ú;}"s…îjÁ}ÀB^IØÏûá?:‰;x»Ø¼9ø‘tÄ4þ¢·8ýþã1xZUâèËd}x;?ÕÃúwª‚oDÈ=½Á:Œ¶«­“QÛwÝÌ>˜ºé(ä à?Æ`íó¡lòä?v•4½º£Öpø¦d£çÉR7c©ãRy2™ÚðVÄæ³ˆÍ8>ÐÑcùŒ­ßÝÈjñ@öžp#É2²oÂÌœ+*Êšø­F9ð?Øì¹Xú6&½}ͨŽMèþ2Ciz¬‘è¯ö¢ G´°øêé£Éí¢³óÑ^§~p=8n3X±âÄ<ƒñqšv]÷fnM£¿Tnë÷P1þ¢1ýx=ÉûÁv¿'‡Õ@‡z†˜?¸ü*Šl[Å}AÚ}Ö²Áá§ã½w©™ŠçíË=³âÀðûƒ&£Wüy2õöè&ŠÊFK&Ìõsú¹ÌŒÆ ÎÇ©z޼ùG)G |PžÃ}¥+àaÒwD€³å¢$µ/ð­y>¹Ýëô^j{}¨(ŽõhK^žÁ(auLµÒ¢¿º –8šlkókc9R8ÑÑò'纻BVü‡à ¹&-¦ý¯Ìÿ¸FýG°îÈTûÿãþ‰ºzG­¯i°Uô£Aók*•µ|ôoŸ¦Ý¦Çï1çùˆÌ‡Ê6ýrKxÕÌ&?«}T÷¨ûôÖ áã™ÿ‘B o¦Ð¯W. žCu†(>’}¤ó¿iùˆ¤¾êéŸþA¼‰dÿÄj,­x‰}óÆb-‡WÈ*Ë1w,ü¹˜xÖoŒÿH!ôgø×WVN_¢/¥ðC³°F °ïv'Žtò+H–;~ä|¼Ý= þãE„þ#‡:kêEœýÃhAýaF*½¯¡cƒw*@æ±Î n9ï±kÓ =_+^Ǽƌ2VaOñ’ìX/» kR«³kïû‰:ù½Ø·ò¢­zà7û‡šFËF~ÐEr"ð¤¯â™Ñ,¾A^Ô.…ÈïÁ ?#Vw'CñÀß± /ÿ˜­nÒ'á_ƒ„U$ÿ¸Nt^Ž•?Á —4V£ãx>Òøq,^Ý v2ýÿÙPóÿ|G•&úÑ ÿá^U…v9÷;Ãh ÷Ñ®w) FUüÇi0ö`Cûyò‹ÉÖ‚ –ÓÓia‘J­¥˜À“0ÈY6ÂÜ¿:ˆm}LýC3âÊ"ôIÊrU üj=þ#vj9ð,\v& ó\N©_DÉP.íA+u,Ä>[[ºƒ)%Qª/s&^0ÖÅK ]E´MˉŸ'À§d0ŠkãC­Ø\‹B>¾SWÙŽH?9ÕãÍÚ2ùÇrz›¿f~T'ø‹¶Ô«ƒÊŒªë\ûPìiV¦æÔ µÞ øjÄ'ÞD-v·¯ûàW èµ^Ö»™Ì¤&Ëún­4¯â?¢2m¶ ç§9žk)9RB3–\¢þã&Q¬­ó¨ÎÙ/ƒio´ÂS¾ÆO<§Z ú«RÔ碲®3ªX?zœ×²VàÛú°Ó?Xõ;ïäXñÜù½ÔZ22{zÚy™oTq1^£œ5º’ÉÌþpÃâ¿$_ð1ï‚;Uãgm R x€_€ÿ˜%Æ:ýÇbu–îB T€§ÿƒI‡_ŒbÔ[æ%*a¥ ¯œa$‡ÉI•ü[|@5üJQêk™ÀeßqΈ"øÿ`þcÚ\¾ï˜±ç[ñÁô§~° ûçkî¥7‹›Õß±Ú…úÚTîä+óûËUvG¿–SýØH$SˆÃÎ;þ÷>ÜV’‡¨TÕÎjŠPç"òW¢ª¯Õvšª7щ¨ƒú—x1¿¶¨VJ„þê­¶Âê?¯¬ÁŸ¿ý°!±ž)õÓš@¿ë‡~·öö”Wû½ë¬#4ÐB_QŽ8¿µŸEqæ#¦‹Ó½üêi$çQãh]ñ>XzD 'ÐÎÕq¶Fs7Z Â°6³˜þñM÷ùÏ7ô¯MáÏg »ù@b {ž†HQ*Þ‚hrQýQ˜žUWE"ÿH¯Îàþvˆ¨D¾UˆÃ’`5_ »“ìNp߯FÐÝØ5?~R8Ÿ\<í³Ú*<úòßNò·çb9×Xk±:•±z+QKmáÚ3q½gñ í±|améß›\ͧeÂL'H»‹z»Â磱ë\̘Lœ.‰a_Ã\ÚgW‘7ø1³<Ÿø÷!~_Dý`/îç y@ 4\¶."ŒÔ[qP[üA #Ð,FÆæJïÅÃäFCÉ”:&8>¢ièKsš™»±Ñ_õµÊÊ~Բυÿ¸Œš"ú¥ÿ®“6‚+5?(Õì¡ÎÙß÷ñïBõQûP?Ø]ÏŽþ*/«¡bE­ó?ÔÀßÔ_%Q?ëÏA£åÿ‚ñP‹®ù«7ô~¢®>Jߌÿø½ü£‰ˆ%‡õ¿zBô½]\ÆÕÒó&dÇÒo¯Ä“HæÏTf))}ÐÎ×%ß8w\ Ë:þí]ø“]aWé”™é€ýnKêÏ磿z ³EÌãëdåüJÖðUÝ…°³ù±"1ÿ¼:•[Dÿ]»¢y ‘g2øóú0;A‘/×ÿ2SÜb;ú«¿´J<í›äÏðg“øú¾ä-ñccàÏ—RP‘n¢Ó‰÷·û—¡Çebñ1¢Ï/ýGNµ¹V”ìb$*“x¬öP¼æ ÷àoFɧ¬;Ìþ+8=8 ¾¶žèø6ž¹œ=œ«\Ïüó‘Tÿ¿A*ÏwÂ"ßzBLXÖØ®OÒŸ©÷žÌd_íîóÑY+O§—óÍ >Õ×”¦ÌêmDG_Ôk™Ô»8žÉîÆÑ›9L¿2ÙÇô40´›¹ëÍ<±KdÃõ(ڛू>íÑZ¡oªI¾p”œ¢*jìöÜQù~¢²¹ͯ™î¢>þcO*<¿ð%?½"5i3ÃÜñCð«¬dX9Ø÷÷0ñ‡Áñ““!gžP|8doêÏ ¿f€M) Û½ ÝØ Yš^5´Ð‰´˜ìü~ã&½h¶€<ŧ·•;½©šÑe–µÿñüªýPšQ¡r'“è/Ö›…=ÍgÄ Ó?Ñ-ˆÿð%ÿ(_xeœ¡þ|;Z­ô~C=I^ú—s½“CÍhÖrº¹XgzƒÂE3£3E#˜?®LRwñÙ‘'ìÿ Ø· ôxI;iÕ!KšLôstñõ¤No<ókëÒk ¹áp°°o|×'°ú!¸Çmêvíëâô’™QˆY¨¦{ÁšÇ£}3‡XïÑN£æ% S!Ó'¾ ºY[¿ÛŠn_%°õ-˜ÿ1Æé?–ѹ3 ï•=½úXñ#ã =¾ ãÁ‹Ò!øýÃŽ€­•&ox‰R»©ÕÏÊc¾"—+GvkOý(*ƒJ÷O<¡¤^IüGt‰Ù …z:£ó Ïÿø™>Ž5Í‘Í1½ÙjTâXYP–mˆ‰f_߇Y)$ö‡9ƒÿÆ+1ÕÎd©~s.“ó[ùç-´Z=¾]-Æù?¦F•[›ÿñN îGü=¿þU½ÿ˜†m¨@½M&ý£«úò±úb-³ö{u*Í…!Ç€„µ5n`_7à/*â?â‰giš!„qç' MøWwKý¡Žö„Š­`kžØåL²6 wwáeWØë¸30Qˆ3þZöß6Ôè QÝÇ®.a=Kž+/È;øêɸò.øÕ{‘üj©¸ƪü¼jju"Ñ÷&ñU¤$ªÝNHýy³ Z|a7oä-lèò&Ëø¬•Ž`ÅçÚ(ø‰^œl/¨þ¢ ìü(NëzÁ¦®ÂúoG{œÄ=•Ö@&wÿjÒýŸjUíO¢ºžÔÆ'ú ÏÈ0¢ š—ÌeØŒJj¹•¿á öbo/àGÄP=<­öJò‰X„oäCùžóÜUê]î€T6‘Õ½¿êŽnsOjYORrƒúN·püÇQ¥³î-ÜÈ^ÆÀb"†ÝJöW†ï¨ ®4ƒ¬£ùÇe|HT®Òîü±ÿqlÑ]O¤Ý ó(f2ÿ|+€ßÙç×doÉ`>Ê–xŒýôWò§vã õe°±ÍY½‚¼^êˆS¼ð0Ïåþ#7úδ Ha§O’_z£VMoÞ¡þ#•ôÄÏ2Í'øÕœKg2{VÕ^r†Éð‰rZ×P+öÑL2¢õpxeàØk=jDöÃÍúôqŸfí¿z Lµý›âç‚ÿx‚í ÿ9Œ'‹fB{KQÜî°HüÔøÎð—«Ìåð è|øl¨ üù'ú·¿¿ŠMÿÝAL iBÿ«MÔcÆ0“Ê!òkÊu QDAX£ò ª¤ŠÜÕ³;Ú¦œ\co« (Q¬ôk>1z¬öžÍpøsaV!òÚft Á=n¡ûs” ûðøûe&î8ªÙ¯a8èZlJ¿'`Vä#1˜ÿq˜J–TßçMìEöVƒûm$fŠžNÿ1‘ùçÙ»+øæ ¬7Ý>ÍØôOÿ!èñµüÏ‹Žúm©yÙÆ4ÛåV:ºŽt2KóF€±x°ƒÆ<ç)ô£ÊX,À@âƒä "ïÍŽ%ä@;¨çlCWš%ÖæÜdÆúúGî¡F%ÓÑûZùe_T`¶þê=8iN±5Ìü7þxB‰ªÞsþ MuS“‡:gΊðCRõ’:M3ôþÌ<¡fdêKku©¼ÅLì³®ò ²¨Ïô§b³+¬wý–ö]½ ¾×ÛˆÌ?_¯ÅÔ~O'V üªHa"VWêë¶3§ûhJV#©È(V ëô×Þ†¼€_~¾Šï)`/yûj°Ø8©Ýãq„ؽ¿F¬^”¼Äìã‘þ+& äâíõÉøêX"wP¦µœ1?lkZ"ró‘ÿ‘ÝSbê‘âI„Ϧ½:sD¸àyJÁ¤‚%¿ ~µf¥¢ôÅêià×Õ°zsÉ£çG½Ñ†ƒõD[¸øè‘èFÖ>-äjìXA,éròËTAd'‚>ÓKŒW…ÚåT[k°‡rük |Í'q‹=æ{²ôÇëu€ëv!2SñDGÁ–Ánœ£æ¯¦ž²aƒºW1åpöæù€­ß­I¶t‘Õçêgõë(‹ƒ_/ÅWî#Ñé÷Ÿžþê¬ÒŒ*ÎìÎð+{žÒFø²ñF.púVðSà_«c¯/ÇBËãÅ“ßÍ®>ÃÃMÑõŸüÇ8²AÄ>©ÀU¶Ã¿ÄßBÍõ†xÔß‚nx€0]–þˆŠ‰ê½‹(A‡”3Ú§ßÔ—‰áQ¯‰&Ø’´0ÑÏè5CKƒÿˆ&êÏ_ŠÇš¿sþÓ‡sÌš)b bÚ O¾‰õRÊÒtœ*öÂ3£v£H/º—Ä‘ñ™uÐÌ¢þã.ÑÌBò„o`"µ@™ùKíBÎPN-Uç…â<ÿºÂìêxâÔ".Hy}TIˆ“nq×KÈéKÉ ð:W^Šk_‡2:ªÑ´°GàWOáºíI±c©ŸèŒ…î*3X¯$•tËÀ6û§æó âñþX¾_©–³2¿¶"lÇô@Éñã©hΞÝ%ÿøDþÑ[ÿÌê9ŠÝ›pÙØ'þ-œÛõ¿êt?ýÐÉ^Ç“ÔàÝÌCÜj#~È2^b?Û’%Í&ò_Oþ‘•JÊ8Ü{盼ìvüÇAÑïß‘Ï8ƒ_„§ìŽuíƒ&+*ÛÓxƒsx’|ìá¼Ûb|•¯1Rÿ®†=ÝcµÊÂÖªå¢æð lD~ÕVËßÕ,NÍB ù׈nê‹f¨‘xor†TLú©þüú‰ åF†=…üdWê~• Û~Š~ÞѬ™ð¿qÉ?Š‚Í [(–õìË2ª[S¥µN¡ä\Ý% l Oô?‘Þª…ÿ ~Í´¨ŒèLÿ*³ÞcØçþpU/ÙÇXD ÓBÌNØÂ¤†ïDdÉiWÈäFünc|®tÔ³æÐw,“·úÑ1 ø•7ýKúY…èn²+èLÍdp¯ºôOœç|÷fQÿõyENßjuË—ôhIO1œç°ƒüh¾¼ë\5ñ¤=Aݼ¨”o ËÀYUŒ¦øààú_ê§¢ BŒ^þ¼Yþ£Sb€_âÏ}Ñõ¹ÞÅæek+|×k9Äj%»‘¬¤ÛÝT¹Dd¢Uç&ÿ/}ØDýùçZ/•~ÿ¸~Ð…þ»ƒ´—ZG=“~E-ÌiõQÚ‚^¹2=€ÞΟ™_•çô¸ƒ i‚aéOÐ_­!'€þÊM_¦ý¥Æõ>D´f5‘BŽF)ݘ3ä ºôT䤫Zr…/z1G¨Æ÷HúgÌZ)rª¶`a<‰¸Ò1¾G¡qÞâzaÎH_‘AdŠ”"¢õô#E¦ ÌeIÈ«ð)Qäb·“È;h•î‰\ä4Ç"Qÿ‘F…[Gœf–Åﮉ_Ú–â Ú–„¨$ˆÓ2lxÂ0,èÏ»xÿñ öÃ3’J’¾ ~‰ª×ƒÊØüù(x›ad ™à?ÎÁŒ óø¯¼fvµ0;þŠ -&\Ä8r¶k¢võ!ýÛaùû£èŠº¾šì;»guœÞ_Ýõðze.c õ,àoÕÁñϱëùA¥_ãóô9ðvEž+ú]»Æq:ïæ]ti…Â_»]鉊º%ñøD|NNê±g³Kó¨™ä=ZàSª h:†ÿ(Žé‘Ã.ò“³äIS˜?x;ÌÖÒ:[•`·’±Ô""ïÆ½”§r£.}¯N˜ÍéXk_•úÝ(U“a¡}Aub}³‚m„íßî«~I¹Ó4ØÜûx?t¨ Íð©í΂T'BåJþ1ož—¯ÚLÎ0R¿j†ÿè§}ؽ (6“a¿Ro0‹Jðæj&€ÇrÜCìn^”m`ÁOq%ðÏÁ›FƒReùÉÔ%¹ƒ³DP 7.Ê©èw»‚Í•;ž‡é “+n‚‡õ¢âÛÿ1¯ºž,vÓÈm!ú_]W«ëˆœÊ{ø;¼M˜Êû”šðØVOjƒ_d†ë2ê>F¡QêÈ”¥1(&ÂÎ| Ó£FÜÔ^‘ÌEýŽç=ƒ½_‡wnŽÿØ‚ÚÍ­‡ùžùQ_ྷ[ºÃÄâŸgzVI³¡åM¦Üž,)ÜCÿÄIb”ÓŒ`òŒ .\¼àÑ™)¢ß͈Ҷ;YÇK”]‡á?JYÈ—RA>‚iOª££™þã%ïögakº‚§ÐœT»Ád!~l†÷HIþ‘žì¯8¾ç0yê{x•ŽÃŽÏV|ú'Ç­Àcf þ#¯t#ÿX„U»Á[•TlwÞñ¿÷á¸[ ¡]W;©áÍê‰Ìõ¸ÀO¸ÁÔ$ÿ8¤ÚÓ*åµüè¯ú ¿ºõ›úÝïôOü &«æ¡ÿî{í™–TóR¯è­D}´¾N‹­E®[ÕßWÞF¸ÅË"£™/nã?NQßÈJþ1zÂû?q oèß/Ñ¿dgæ ÈEUc9<ˆÝ¿ä¥,öÁ‘îäï ‚¤¸ƒŠ¥‹ÔD—fÌsŸˆ~÷9çg>ˆÍ·"ÿˆÉ[èAÔä2é3ªÓºÔFœdV‚N­ôƒäMZŠï‰…ÿmGþAßa|ÞN#–¤g™ü¸7S·ç|ý§_×µ9Xó¾`ÐgPW]&ÿ(‰¦z/PŠ\è‚ßíÃ2æ$ê³g/ÔàÉÓ¡WΤþ©¥$ã ¾”’lý3O¡cg4‹ø<­Ñ‹ 4æÿñŽYr3øÚBìþ%Ôcôð´v[Õº;?ý ×ÕgqÖ©(ÚéOxRÆøóà#Ý@°æ`'Ë% šÿQÝèNþ±\iÍÈ6ìþú7åGj÷oMÆ0–ü£7,zlìÝz‘x£•Êþ°íÄlâ÷#äq´`kõ?÷f>Å#ÿÖ_=V:¨³a¯kÁ}äuš„~·-¨! ËßÛ¼Ï̉^y Í!Ô¬5¬qäšàS³,•S!âŠóðmQ·h±Î^ž˜üƒè?¶¹‘=W–ù·w¹ßG0)ëÀì\`¥À7ä$×ÙAþ1ÿ[JWúïŽpú‘ª§î@'•Ÿ¬ö1ÑÿgÃÇ´%©!iBä]s?µìLçÀ«)ÖüGeªý¨¯oø 5åáŠõž_ë ÿ±…ÌÞ…ìøæû¦+üG1s¹Qîr”ÕϱߑÄñŽî¾­íêNüGZP¼Â²3øeT0¾ó-*¼œwüï}¸ ü¡£QÔnÿX¿•ùQîšÅüÚ¼úå ù绘?XF+¯uÐ.ã£ÂNØùÏ÷èPoR> ̤qjú—äÑ.¨¯éÓ•ús-ö{ùG;,þH F ÕŒýX®<ª©—ÂâÔÅø·‘äÏOÒpšÐ9×'ÁVf”åÐ8M¿êŽh‰jfŒBSDk§o¡{9ü±ØøE ™>`:I@¤É©Fzâ¯$d79ˆ±×EBUUõÀß±Œäă°§‰±Àí‰éc).¢¸±gk”å:ÀDÕ넲*??“@m-öØ Ÿ±ÿ½Ao[?W­éÞ¬ÄÒƒwr>¬svüÝ%âõNÔŸw޽ž«ÚY+ˆ"™úuøóÞ òOaf:pöÝå}4=“A4LÞÖ}\#ù=¾yÅS&Þ‡ç?öSa:†¯ÐÑÕÕ!oØÇU¦ý±óyõúm™qX¡q°>'ñű`5´Õ•Ãñ~J}ŸhïŽÿ(MeË4ð°äl ˆÎéÏEÚÿq k™Ž˜t×·–ëóF+œP ;)lµÖEŒ‡Ìâå‹'÷ç>ORøƒ~P•¨ (s›Ò¼AwRd­Qt5ó™Žfj$§i%]ðCïÝCUg×ZÃ'oÅ~A ”¼&=øÕMyÏLGý‡ ¢ æ{ìuRs T)ÔRÛƒøî|gmj¨GiQñº;8PAu"fOFõà,s½W`K“ ¿ºÔ¿¤ Uä»yÖEˆîó(øÙ)NXzòq‘–Lo?ømqи¸äYKˆž™÷dó5…TLf‚oäú:D£Êew¼'´KÆ¿Z,ú;oø2U]Ä9i op®®¢0ê+ó‘úÁØVw4ÆÃ°ûÞð›Ðﺛ§¨Ñ.Ëüsx_/ðÁ&dîÛà?‚EOøj]ì±–L_G_‘XTWT£Œ š1¾‡ù[ÑPUï¢Þ/)SËדÇö&§©!×ÒUz¸èîôËÔ­z*”Ù¿+(½rÉäôoÏ ~Õ˜üÃþh3³ý¯ÌiÀß—aêQÙ~Ââü%ò‚ôsžÂój?:•ç„üÓx`Nvl±j ²¸E.3/9Á±‚êÁŽúÜÿæ&ÓìlUÑý!fP{öˆÝ*(~¯ÂιÝÿOü”t!ê?tµ{óýO–ÔÔãjwæGµÐ]™e«Ãï(]´ÎZcm˜ö”úàx 2«'QŸÒ¿½¹*¨u)æ×VÐí‹>\4Ù>«ÅÒR†z"Z³ªø+}AT&Ž.EÓ "›z‡ü#·ñ‡øC,‚ÿ¸£}‰h‘ ¿~5IÄD•qˆz® à&YÉ?ÄôWƒŒÛØÅj H£P_ÅÿQO_©{Š ¼Évÿ’EÄ]§¹ÒÄD„ ˆ[âàFY°Eë#Ñÿª‘:Œ稈Ήª#WÁ§jEžtÐÈÏ›¿ ^ý¹Ì-Ëp 3Åáç ø -ãèOŒo÷çz~UݘläÁ.ÙõYäbªÿ|`†ÿDË{š;hEýGØY௚@-«Å'KOFNóAœÅu"óM|žÇÂ0Óöo®xe¾€ÿPÂyÖ[Õõz?"À¢¶ÆUlƒÝ}·0×óËx_?¦¿Â~ÚZªÙxÏä )ñEqxëÃëå…~÷á#1þ94XÛÉ?¾Ó þýÒâßwÃ)ôãg–[à?ˆÎNÿ1ýUròåʆÝ=ô¨ˆ#71•< 9Gg+-<Ïc´\øª^Ô;®2Ë‘‡T1¯ÐÓ× ô–xø›¨„²¥·Ó\a~íQD·-oF.㜙ܱ¤jyÖÏl’EÖ&ú·'vxã…Û›>ÔŸ§Å4³JPÑG@Îÿ2Rˆõ!ð¿ôù°"ÕàÞÓ?”6ÿx~”®S‚_1-NßÄŸŸPšR^DëDÿ«Ûʵߺ£têý¸Kkb§"¡~GËÉÌóWúQý®·öü7ý\QE1öˆ’Æ:ìëNá/’ª›´ D_tS "yÉùQþjTð+»ÿî6âܹX‘”²üù4qfà$C6ÎH'WÄ¿R"…ÜŠú<}ž( þ2œxw¸Är˜TÒIª+2c)вz&ìë6ñ>Ô;r•¿?WP'9ÈTY–%ë:„ýdW× Âî_¦ÿ•ÎU®P÷ëcáH>à±›¢ÚõAMò UÌ¡ÑX—y¬à–a»'…ß±ùŠæÎ77øÏ(u/â•7Æ¢q»3=}ñ9®Ø¹†äGvo•FðçDZÉYXóçhxÝVîÌü'ÁK}Z ÿ1Ÿ ÉGV•`›ñFO©?/Gýy "èDt“*”ô þ"yÊpìn™‹þ»aõW÷Õ7ø¾¦œ‡© WÄÒ&Zâ|Ô Áã?bÓ')«r‡þ¹aã ÊbdKkQ$ åt&1Êk#Cí¡;ýKšãŸïEÈ­J£žûÆ•õ7k3©i¾µnàÈ{[êÿÜ貕»Ï‚bâ9ÿ+é¶ ÿÑ(Ôz]D)~¢j’|(s?ÇáÏ=ÍÑæ.<ä3*r€_}uò£/V|úïvA[´œ!ƒùŽm;xG‹~7&žà6ùÇmâRà|/É3ò2Ù©õç©ÿH¿laõF?ÕÜh4ëôÅ[þ…ŽAÞÝWø9×[¨žÑâˬxf’ÉbT夆±ýJšXÓÌ=TrÀ¤l±L‡A>r–úÁD°#ž<»¶àWÙÀ*k‰a!ú_ͧóÁw‘ˆ,~>±Î32˜‹U¬±ä ©¬gtÐÚG6XŽ*š·pàUñz•™1ÒάA^ý¯Ãh >;Õy O©ô­ Ø3‰ óÆÞ£ã}Oô»‹èÍÒŠ*Îåô/ÙäøÃ!ÕQŸ°Vƒ‰%@ÍœSv%\ >s-ªØì¼ã‚nÊù㢩íÔL¡Î…óŸ"üHÝAÿöÇZ3=¶¾1ˆ…¿§4Ò22ÿ£µv^ý¬D¦–.ø‡dWëWá3 €²¬¦‰ ßm$Òë=ñÕT¿uEÅ+ÔR;ðsÁN‹¢ªê«e#&Ý«_¢þûüÇàÿ>¢‹ì¡ÊX¸’<ó°ÉEéPµF€º’“#2)IÇœDâ©þ+$'äòu˜§¸‘¼èhû,ð|…ø®Ñåwð×é ¦§Éh‰”Ø€iâs„÷\V탮j­HÂûWä&»Í®MÁ/-'Ò¼ŒZè+¹GM®}œM`„]Ä´¡ kˆWA?‚ÿ¨òUu¥¬§¼Æà9@Lù[ÞÕ()Úÿrþ`ô»¹ðCˆ‡“ÑYà©ø!zâ#LÔ\É3ǰbTüÇÃ[¹¾Áø– ô\¯nýàFu›Þ<î9o]®Á f²<ï´”oðÝô£ºÝÿª¹ÄŒ µÙ8¼–7ýK²%œonðs8§´ÑϱOoŒ)² Ñ{4²–ÆøÆøÉÔº´â^mÿq´'.ÿîƒí â¸?\Eý¾BkD6Sþê0;U…oEþQýúó6ØÒÄfìt=ôWaŠ‹§2°1üÇ 1=ì“ÆÞÇÁ¥Ã¢¥‹ãE#!WS…(Ðï&iÞ—þèÅèi2Ѝ¹:¹Ò,tkò$è¯&‡Z±+õç±=þDø³ˆâÈØðÍÆøò…ØŽ“ :½è72îêIrÁ¤¼ ãzO|gbêCÏê, Á\æ9ä ƒŠŠŸÿáf’š_QÇþA-ÄyªõnÑe+‘u‚;ž!k²3[ÈçršIäôúÝÇàWh•ÊP©”Dž¡Þ¨,SSt¦2%£ûì}at¶Ù±Ï•™ò˜ü¡5”u:à/U³%ÏnªÚ`ýîvü‡ƒüã1ÆNê?ŠRñ¾†ã +.¥¯Ö:µtsR_Í£ô/™ËìØ²ÖNÑ6h› È%(¾;…˜îIæ«pšòóNIùH¼6N¢(ÏœŽñèÌž0÷0>(5‰ÏÈ?j¢Êªj^%srEWø ÿaÐ*®ržÂê8} ä`rû¬zÀLᘆx‹ù‚« àiÌ‚ÿˆER|ë=‚óÒ·•þü‡XNtùÆ0õEµ_1¨ÍøûW ú—ØÌ÷?ù•þWi´ZøéAýÛ¯ÁŸÇ‡AŸÿñ] ø­EË©oôD¼›]@`NÐ'ö"ókoÁìnúHê?CT=Ffá!"6Õšc`©–c»ì|£¸z@KÂÓº¥ß¹ˆeäÔFêÎ÷ª1´æ"Z¦µØ«e VMAà_‹."€HØ›ø< H‘S\Ð#£ˆ¨Ì<ÅËôV=¶+Šô#ƒ‰"ýšø×…ÿφ¥1`j¢o„W˜þWEÐÆ!¯ Ÿ™½Ñ]áŽ%ÜÅŸŸÂ‚äG%“1(ÿÂÌÅb¬øHLTkôWÞÔÚ½Xo1;RVêr2ÿº— ŽÔŒ­Æ^–ÝÕà77ô“)¯æÑZ⿺³ë©ñ5:WÖ ë1 ± yTÙöo#ø»tâή‡W“45·í?î£Ð+Ë÷ìá÷Jx wÜËp£*3df–t*ÊÈ ä;¦áÏÕ 4;ôuÙº¨tÒ/pwŸ™b5†èÝ’SÈ'µÁº€©ÏCýÙ‹}™ˆY€xó¬<¹¾9œÐJzFí^˜%Çпd8aF8|{Õ'üä=üÇ'ê!Jƒ’4ÅÎ÷] °Kš”œÇV~!_HCo‹IažËIê?R¡UK ~uÖM2&YU¿ò2ýéç±Ô’ÔkÔÂ+ !v(…Zl2}WŠË„Ä`‰´2¡VœKìÔ-èÉbźøG²;ùGu"}»þ\C´Îšb>B/Õž,¤,~xøÐ 鯩JoÐÝB­×C‚až". ƒ££¦b.5[2oªÑ[ÑWð-• ëQœuÂÛÀ#•-ÉvÀ-½";sCœ;ø þü ~¨µU`œéùÌÜ×fT»#ÌÁè­ºò)­ušÎ‚“aYÜè›;Œ}îDÞu?lk—…ÀŽ·ƒTà\œ'F;!S¢Ð®D«òT楦þcõÞä^èyÿb×ÃWk¨{oc퇑m–à}\Êtê¡NüÊ®Ty¯ pæèV'²áÁËPÞ¦ <Ï øµ`lséY%W'ëžôÆâW"3¾J~qVà]Ÿä<…‡©'™Kî;{W€wó<—µ¬VäÐle´Žƒðç1™—Ø„»?Dų̈̄ÐÒÉàW{ð!ÙðŽEþ+ýo‘ãÕQèŸøOóK=ª6¦ÏaSæø¨ötŽCJK- èÕdíz—jÂßùüê‹ ²›ú˜ú­*°bˆÅ¢1ñúm>‡§éüõOH$ÒË.àV¥‰rÅ>‘F½ªBËûJ o¦¡E²ûq5¡6þ×l¸±ø5£´l€b*ˆad# ÉÜ@7“ƒ_E&ÿ¨­¯#ÿ(ËÙ Ê´æã.w™,<|$7‘yØùlÄ-ÓŃPïlxw[ˆÊ«Äô§ðåå2ê€ÙØÉn¦(<'NADW“HlýK>i¹"Xq6l¨7üÇ~pÑöˆ-(/=éV•üê=>é×ûeT£rúWu°ÑÕüZ>®k1^-1ùÇ1ñPôµ‹ŠI ê¿;¦R]p •/ùÎ$"ü}\}I=¼^îjð«£0­Á¤àß“m¥OûsÑVé-ê£ö²¢\Ä®®ÇOEG©ò‰JšjÎ77xw(-é¢ßßePv¼ö:ÖóÀrÍ"®j“ê ÆtþÃôrì‡'^ÙèÎü§ÁK}Z¡õdµÊ†…\‰?ºOlyĨ>Õ‰þ%;èïº)´×É?R?Ø­De®Áx¨Ž ,Ų0Ï%#ùBF£69ädüÇ=”uѰæYã¢<–ãOT¾«¢1]]?wÅo”ÏGé_R™~¾ë¨Dô°™O`¾+qö‚Fßmx‚û'Úý¾h VL1¹±ØÌíØLÏÅcôùAßæä=ö¯fTtî§÷š.øœ|…ïº!®ÑÅù¯ø}èw?8ŸÜ3¥Û?®ÿø¢\TkkÇ´ÚzUÝ7ˆÿØ¢ÔÀÔÕÑ{ärÂùS"óáƒrE׉ûRïLÍ0õ=5M»CžWGŸËŸ-F¨÷!¢5󉤲º–œ L%a¢ß1Ûi/h|aæêûE2#•¹úóèwû á66a%V¡¼lЦ¢(d?¼@5ЙfÄS)…{#º,þ½ª¾Qߌ_»²+ŸÅI8ùô2Št's7@ÇžˆtØí™âe„÷lªîd#©Œ ¼ ÍQBðÑ&àAÈ“Îó~ä­,dŸF|½H+žÕFÀÍõGG½8ð†FÜÅ””uà×YÁ†þ³\À®)ØÔÖFuúZüŠÿÈ­&Ójào怰ÅÄ'ÐE¦)«E…_°dqòÚÄŽ‡ÁT^Â#í%ó Oº„b;e8Wé† ~1t­ê_v¨ ñ› —ÐÙØLÿÄ/Dþmd^9žUÖƒ¦¥/ñN@pü\óÏ»‘†ëÈÏ®/@1Îh6YQ;¼@,ûIôíàWiåª ÿ6þcµÑROü“~÷„Öüª ùÂiù¼T2´ÀÏV…»èbµƒ¬Û¨ÝØO]Cuð«f¨ƒ RýÖ |¨3Ï{‚;ÿü‘ªpwõ‰'Ö€ˆ½”ëÉûn€ü¤ƒ¡ÞE~FWó­Vv3ú¿§¬Tt›èyyb^Ndæ0øÕ4ævå™Úü¹‡¬O~d™kQ`õ‡‘™Å‹ê¸ 6Ö|ƒ¿kc†)@îq4oO(ƒqRoê™ 1W9_½e€qMNÇÒ·6Ï£0{I¥†­k5›ÍOr˜ébÝÀ ‡W²ç#®9Ë,—†èßþ”úÁ­¼-ÈgòËëød joÉ3¢`?ÝAþ+â/ÿ´.PYуZš®`w£¹×ÞøÖ×è¥ "óÄç»çRí‚ÿ°sçdrtˆJÐxŒß9l~Æÿ¼…¹XG=úKªoÁW7£îâ?u;YD53 iW§ÿ˜ÅädÉ›U†gÿˆ(è‹1 ‹O #|L*Øí5Ö}®¨4z^^UµàEÀýÔ3›ÁŸ?Æâ|Yåp£óú¨ÃõU¢:™lMú±Ç4Þš^Ô0Î`þùe´knÖ2ÇGFÇcr¦Vænªøkñ¤Xùdwb¢åtPù†·•ÿ•ùƒçèõ—s§¿+“Wp~+<ü-µ‘öQ«¥×ÕͯõD¿[@+Aÿ«˜šP#cKƒWû¬¼×“SóeÏàÉhtÔßjMÑì§ÓúP}†¾„^Š¿×?±<ç»?¼@IjzÐßã»x«ŒÓÒñNÄÎïÌ3Öƒ÷!ø:~þtJMªõ"ÿxFsC2[Õ߆çØMœÇÞã´ç&² 3÷ÐÏßþÓßÔeRÞjQ„Nv5Ü*«Ëàby@Ä%ùinìrâþDø*¿Hð)è_’ÿñJ¸ ‘ÜÖ7¨þ|%¶¸ïânVdæ?gÚp®¬;¹õ.ðòÛ¢?¶£ŸQˆ÷j#øt<鉵ß:–°Œ¦ ú«_ÕdSSi…y+=@¯2`õmþ¼þö©1}’+Uè YÅ‹Üè>^~ o§=þõçqùÊiÌâÝá»ûóNžGùS\,%¡%›«ô©ºb®¿* “±Žÿ&oÝ€q©·úó}¦~pÞÑOi’ÿ\°(øaEøj7˜ÙItT¬ŒFô>-¶ÔžHµ=õ&óé «?Í:ÌüÚIÄIñ8^ðçöô²“d€Wd+³0õÝèB‘‚¸¾¬Y¼5™\IüBO¼Í™žé•¡»­3‡EýK¤fÏáÏÎÂcÅož¡óyflû.bè‡ôô²’cïsÐÿj5wm÷JY‹½#3â9³„éß>^SÉ#· ÚÈÆÖ—þísé×׊ú,¨pœ#*Ÿ þÔ—*/´´y‰ïïÃþŒD{–Ù¸¬·õLFˆìA–Öüª;8©¿\Lý`øòjæøølÖê?ö°ÞPº=àª&ÈZxÝ(Û¢˜Iä1ÔùP|•vê|bõRôßÍ„ç­Ëé*mÆbÚ`\ú%N5{ “õ7óƒ?uBa|,°%õƒÇ@Ä–pÏÅaâ.Ý+ªÓ?ñLÔò…ó2¹²JþQ’~W=É®à?~Ð{Ä>$&¼üNð«2x'_|êÏíªÛ|Lîô3Õúg"άH/Ö³Æ1,~nkë¹ÒÁ7¶ã,;Ø0&\wZлbæ},Cz^>$Âù(rÉÆ(Mþ¾ácj[ð+ø?4 øOZUð èÍÒ“i¸k­.ŽÓŽ (ì¼ãÊ‹|V6º¤äÿPAÐïŠÛp†ñ"…vüý3ÿ·~Ç©ÁêUmðóêKµ§öÿQœùQ9]~ð´²ÚTíùÇïU×§Vßé&ûÙm®dÀ¬.èËDô»{ÈhÂÃĽ+µEF|þQ[W?²WXê2-.=- ˆ8°éÄ-xbÀ¯×QoÕý•Âq‚xa!ëe’Uá¢GŠ- <çÁõs?Œ¢þüºÎîFø«(“Ž|¨ÿ¸ÃZk@Õ_÷G©óœh¥qÅe¬£?üyAc²øê oéÒèw3£ˆB\ÙåHB°‹ËÂîÔ½Š®;ÛÉ–l}W%2uäu"Býî-øgðØ}°“C©tµ¹‹>F*‘)DäÛü[™·Ó½mT¥óÆÎð.Œ¿Ë®¿úÊ•,}ý¯ÞòÖô‚} nUÕdǼXñqñÖÝ@ÞtY¤ÒE8÷=]]§ ß{ÿ(.ç »œ®è ß]€þW õ Gñ3YÇÎ?$øÕæô„×÷ú«½b ™ÙØ65\†—]L5ÃT؉êXõ¨²9ÈÑI0’„25¾r;²‚hÄ“è&úOõ é_2‚+ÊâuïBty¤óý‹à?jÒ‹6:¼tæG-Æd€7? r‰˜·$<]Xþü»€ÿhAæ·+îÊ'¨EIÌûä6°(ôß½`)ær’ï\sa¼ûÇ îe4È`VêG…ÚÃYèw›9^$Ã]EÏDÌ™ ÿÑÿ1e“ê8MWóÆèwëÒsÊ‹ ¥<ˆÓKð¦þxølƃ0'§“HI ý>Î5üíkƒ+¤b+ø÷¦`7‹˜Ôô‘ζKágÆÀ„ûNí9†6í¢LjºHÑÖyjŽ1?jÈ_ ¬mNþמ5 £ßí‚:v¬J?ú_Ý¥~p+õ+¨?¯mÕµf²ÄKR7+¡^HüÜaºK‹Jþá͉:,3›å¥·Ê"üc%kÏb:õƒC©a¨ªw‘GÇÇåÝë@FSœ½.,š„˜>ŸÎ1ˆ¾Êá?^»„&_™ È?&QõQÜz N׎ڔšd4¹ºŠ¨Œ˜÷¬æfer㻜ͧ¢¶\"ÿ8¨ŽÑW  ™Â{––üã™Î±¾d)½…+Ó¥~©UϱÇa9Ò£¿š‰úˆ™ýU;«ºìÇ;¼¨Îîß.Åçþ{6*)ÕÎ÷^iö›ºXç·*–zE­§)z½Œ~U­Ìi=§ÔÕ²ÒÁ}ª¦S[q(øK#ñé…òB7ˆzWðÎÄ0’Ó÷±º—ùCàÏgé;Á¯2„z"Z²*üÇ`x¶XšJÆB¡yÔnZrlsê4ÖÀŸGÑF´Hпû¨&üGzm_òéX‘ô²*¾ab7ÇÏh šRŸ šp ÁþzéÊú} ùÇâ¥X¹¯vFÚï@¸{ÂV|%¹@ÿÄRT=ªÎèWëÅQGò• ™s‘8ð¨ñ]¤'jEö0,fkÿ8Jd½ô>¦K/Á.žÒz1ÞnøÉhÝ+°cˆ ¡ÆÉ‰ÿ˜€õ?F]ò¥£p*PžþʤE¹–‹üÊ…AlÔ&Ÿ°æÀ¼.sðIŒv²´ ij}DSµ ›–wãøU)ÝfÓÂþHþáο«\C²+ÄYÈÿa–Ó0“¼¼~€x´'øõD°¦-¨¾b£ÄøÓ\ù¼æF¥(b47ó¨Â(Âõ,†•_Ì{9ëÚŠ "6ô0o[àjrȵ¬y–|ñ§`ú«{ÁK}š¦UCñy`<ÎÁ}E×íÅ.ÍÁcdBÙßä=õÕ¨®ØJOã6tÿUŒþaùóSêm‘•X*™ßGìøYXžãòìóZ,ul˜Z7úÉ&5ïÓÓäV¯?ó#lüâüBd{¹ÃôO$Ò#ªØÏþªÜ¶¨?Ÿ ×ñ‡ÌÍdŒUÌ}цSktg'º£`wta["/V‚ðä9º‡àWyè¡ß”.Ãý@Ú£ßÝ@&ÒÍ”aKež4NÑ «Þîèw{”!k¯/šŠ™ögo¨ù§t}RK¦¾ Ö_m’òS5ž[§ÄVôHQˆ?ëˆtS %‹Á7RhqÔ‹Š·ÜT> ÎEÍ9W]Ç4Ûo¿1’ŸVÀê7‹úDÓµÑ^gÑŠP­¬)‘ÔþåÖ2¨QË?ÎQÿ1V$&¢|Af=ëYH¯E…_Ká-|@œ™¤g¸°‰bp,þSK=ú™ÒBüåf¢0;gê)âé­ðª^ï”´õÍ¡ÿ´Þui=,ë qU$¥oÓaPÚ”àWMA~™òªïGc›_¿˼‡È9—VZ­Ê „_ý€2K5 ‘>³Ú!üoAòh󬬂þê¸Ì}P)S?_0L Œ”ÿÈÊäøFš¥JŽKL0 ÿÀýàÚiËàÒPÿQ»}›ü [{å†wº(Jªõªé+/WW -ûÀ§=Æë6äÊg%ƒˆ¯wШåÔ—X©ŽÔ&ûØÁ9$ÒΉh6Û‘ÇùΓZÓ¿}(þc#š×’pä{ðÃÓà¶,ÅQ{°™÷ZЧc QÉ`iŽâ;¶“/^æ6¨¿äGŽ¥‚_íUJŠqì´ÜàW0(o± ÖNyH=vY:«öE…Y4§±Qk'¸®Jh–FÃÿÎB5Bô s_öÉÑ_5SY‡"gð“Ç™Ê—ÐØ¬Ÿ3Ò˜?` [Ã}W\cV¯"õƒ§¸O õ|ļÎÊŠP+vSdŽè(êÂdTmÁëR‚_­6jèÙ˜Ó´‰àþÔg/2>ƒ_u¢FÑ…®‘›A‡,½Ô^²ÇÛj«PëõÓ/£ŸàÞÄÿ¾'ÿØÿÛ|¨´¡ØR—} çÇÛåíIü•×yâ30M1~M ³_ÁcdªT·â·5®Š¢7Ãâ—ƒ§°¸äÆøó&(“ÁÊÁ–¤—XKæ×ža¿¯§–½-Z¤ãdÊöõæÉK•ïZ}wìŒîÞœœþWãà;êšó f4é¶>Áüyzºt!¨Œnö%»¼=9a#ýªôö¢•ýÙ.¯P’͆»þÄ|LzÝÐq¤6<üd:Œ0óƒ|èýKFs¾«™3ëÉ<ÜG棑Øö_ XÈDþ¿pÜŒxexþ{‚üiÌ|Ôæ4–’½”§I{3ÍË&Ù2ÚFÓïñó%³U/9õñ`3‹9×7xÇDb×ïÿ‹_ÏHÑå7öÏûNæø§Ž¬ö_óâ§ôJ®Mýy=µ‘z+x~íeæŸWE75ƒj’Cåæ~›R¾~Õ–µ:W4­êÏ Ü%òIuºhD¿AOúïFµ#\$ÄÛSŸNߌxÑví¶¨$»*1Áš’Ñÿjªx'4Õ1%ÄýÜC=YÄÔ/ƒ}7À*{‘+4G!5BøR?ê ~•›}"ó?D”ú'ZøÕ4üÇ["‰ep¬Ñõ+ø¡âÄpˆ™@R*ƒŽ¥ƒsÞþ£<5’«H‚çéË›˜÷=£KÈ*V¯ÂÊ»‰Tvã–P¹ þÜÊÿéÏ e6 yk¸}òbXH_-;XÆ4TJ×ô-ˆÇˆ5¡µ]äÈ꘲ÁT¥¯Ê<òŸ$¬ò]\åá‹>hÓ8ÛÂTîUÑ¿€\½æ©Üÿ°ÿñüªd„õƒ¨âš@ðƒ¼ 6úƒ&x¬\¿ì™Ùjõül|Á¿ð«Qš‚r2>þj¨ýÉuœ¹;sX6‰^xŸ¹è‘Zr‚ùó¢ YQðŽÂŠT‚y¸Â߬ØÒ}dÆ;¸†ÖD®±ªª8jpÿµæ6¥hXMö†7Lj tÂÃÕ%‚ï ãá fŽ>Šþ CMa0Zý”Ä–Ž¥ÃÔ4½»',~E¾E imâ f5b%½°¯gÑ_9¡ÞÚOD. ÈLhÜ¡¦0=Baò™Xû]1P‘baøóQôßmÃn³òWò«Éjc‰aõö˜ÞdÚ.¡á‡½ÿq–̰ Ñý/±1œ{!‚ÎÐüyüGN"ü‹ ¤ýYíª¾ÆXv†ÇĦC1å ÿQý­aºÁžÏ±ÛJ>çŽ 9³~@4°ßŒ#R}ÙR®[W­0Åh­¨š »Äì +ÐýÕ¥àþ‰Ã™ˆû5kæ×^$ïÙ—BcT cCøýø7Z0Çýš§žŽ#ìÈdqX¦¨¥ŽÀHDZ ¡cîgæ\ úïý¯ê™ûÙ÷ÝɹjÁÆWÕDg»ÿXCÿ]f±ÜõG­‰È¬4s0Kd$¸š“íU2þËÈñ~¥†²Ø3ÀÊ×5*¼EÝò\ÔBS>ξ Ýè¿;Jå íEL÷^h¦¯m:œÉvò|°2óÌÚôOüh· fÞnøUv²“ᦳ>–le+]™¾àërýOð«³RRY¶Û7è¯rØ¿³ßÐ(½ˆ)Ÿa~Ô]e€ZŠþ».â‰ÿȦ4¢þãþÃQ•å¾HÞôOìK’n:zK ”'ËGé_R—Îx»”èJ²¿:μXüAôm¯&R‰¯EIy¾¢c ¿ªw©ŒM/Á¨é¯NQÿ1„Õž`7kcWWÃTöW±³çÁ,â€au"ÿø¥úÁ’ÌãÝ, AeYs¿”{¥‚¸Å –+™VÃ- ýw£_UÂþHDª @|3±Ã®ŠÆx¦©Ø¿Ã m?±%@n]Ñö&Q-žêŸþ\Uf‘Œm:Œÿ¸†ÿÈN.’›3C¯Òi$Šo2…¼ø²±Ö¢£¼>’ È•RXè1("’­Kàr ¨þ{¡­Ϧsù¥$£¹‰W^Ì'n!Ê?‡ÿˆˆëš€j~9þš.wðPw‰ jÁe¢CDL½±6Ní¦~À6uUYÃ3võX4®c|®¦Cùâ8ÐÃÌ?ß-:ñÎÅâÁ3®#Ÿ™ • 餷ѻ‘Õ”‹:’ŒœæG¶—ã;G1CýŠ>=ôŸÍJØø*D½ÇÉ*c7ºàiZè÷õ.Fa¢ß6TÀF)傺é°> %Bq"è1d8£õx¸©aîË19€ü£*×y!*¨ïú1ÎÒ‹\! .o¸e•Î33&ý¥Šñß ¶B°ìûñ ä"ÁøUhEpæt /»¢Y˜Z}pÃðݳNº³±ô^?ÿ ÿу®W58ç­TjÃî»Ñ án˜üc¼ÈS°šûT»ËL¥íÔøÀ\|§#H úz\ÊNbBó(«LÛ?:ÂÌŽ$àWìð‚TCžOP üª°~“¬+«HÄó&ñóá?ʳR.0"«»'™WKæ\Ac½ צj¶0D7¨ÝòtEF+x”;öQOÀîs%¿ªk.KœM§–!ô0ÑmiÈ’n1—ª¼Ã%”¹’•y+ˆú!ôW‹á?4ª‰ Ñ¥ÒÝÑÍœ¢G};øót˜×螘ǼdæCuËØD&sÖû •õAÈjߊŠTö·ûãrku (Ä€R.šöÄÈÿáÄü”)tiñ弛ؼm÷˜5zù{ä\±™Ò ýîHb¢•à /ÙgIþ'ú«CR ÙÑYä‡Ôïßæ?bËwèeªýT'õ’\„ýUª­dd~íå–üLºißQy‹ê0kÂÍxª5Ž‹øª=PŽËwÕ.¢¦:\= ’"ÌöÏ«¶%ÿèFýqS,SVj?‹†ä ¸_†ø¦®Ä(ί½KÙyB#ÿ8Bž°ëé¤×$j˜*N?œ»*F$<\¤GÍ@*ÝÖÃ\ÇÂoÀ»ýÂvà‰yEl3¦!€õ‹\àWÛÅ?žs”+ÎðçxFâ;W0›$쯆ä³x²OsÌqôKäñ{±´OJž?¬øL™ šÔ ´É\ð&šÏ\tí(J\¶Îצ¯€û8‚ÕÈFÔw?Ó†úóe‘ÜŠ|r)¥ùÂR|ajXï—t‘iÄÊ/´©dYÙ©ë*D´¹Lè™Ç6ò™mÄìLªWÕŽr…ì®Ç~+ À5x/È@YŽî%(sifÊŽP>Œ%§Ù̹ºÁþÇd- V#¢þ»>R'õ?&v­?‘´Ê»êjsAÞ·á?:ѧÓ[3áé$(NlÑIî•ëZUÑÿêu˜s^ ÿ1‚z¿ìt¼²æŸáuýÈ?Þã1*0Ùµ|@.Ð&º™lÂ$µìµ&oAJS[º[•$}†?Ï ‡RŒæ%üÇipN_z]eC!{”X< ZTøóçÔ¤G3&ëw¿á¹NáçËÑäVBOTï£Øˆ¬ëë #ߟ˜œiE3©ÿ¨²cõ¿ºƒªuãáT‘{âaJëýÀÞÓ Œ¬ý§Ú>Ô=†ÿ(Deˆˆß ýµæ¯ofÊI[ã¼ÞÁPm˘ìú–ˆÿ”‘ü)®y†ë95OÁ½ø¤Ô7Š&ö+è ²ˆÈ©¾#+hî`×êàW©ÿèH½ß4æ3=F!µ’œk%þc<•{·¸ãˆj‚`ª~pgf ‡UÛ.»)&÷Ì‹çõçuô\ØæUäXÐïÆÁ[>§GzùHÓÏ8„âi$¬÷9´n`—*ã«­ü£‹=ÿ˜'OSc€Áf"ÆùÄSùN{cć?†—Ìe&$_(@6“ÒlKsŠ$›èøÿÑ„½úÄü¨ æ:Ãî?.Ê=Ôñ¢2ÑWOð‚´Ú3£4[üù2:%>@ÉUÇvÔvÎ,~µ~æ(ó? ƒÁ¯Ÿ¯¡+èW¢Îäÿ“úóÇRÎPú«.ÿ¶~7Pº!wPÒ·=ý«°»öIÕ•RJô»÷™u×¾?¢òâ‘ä«~Ùã¹-½4úÝ×Ô'^%Ïë~TI¨DÔ“5ò•«‘1L«lÎQþ㞨,WâS ‘¦{:Lnb5F¨'"²µŽÈq•>â›vŠñÎ0h> ðõéE>A\C-vþ£< Äæ¦Ñ4²Õ$©øÕJQÎã±Eë5 f¾¸ù#ÍЇ‘Å?-J {Ó¾‡#[/¯<šgç“ÌÚüªùr[löjbé}ø·¤°‹%‰ÄVhÉ´ìßþB†ÔWG¼=‹þ%ý‰º:£JÝ‚¢58Åjð+Oô¶©Àª½Ùÿ-D7y$—ÉñåxâÆP%{ªà\øŠrÌ©6;ûfæöŠÜcŸx¯zGTU#ªõ±ºh&SùNÞOÿJîCìZQüÇ7rÀÕä?AÙ;òü/­ÛÊÕM‰ÿ¸;ŽÎuŽõª£‚ëÇÑM§¶>?ÈÉ:<ÍDâßÙø“fØ»h Lw@IÜ©ìL•܌ߜÅý¾ ÿ‘0~媔s8ŽBè‚|ôêÜÓNxà‚XþvFEXպؖ¬ðÒ-èµ}V*fúâí^á—ËÁð/ ³ýðy@Ôr“}Ô×ó>‡r)kÜ¡–.=ôsS?ÈolÆ4ª‡jèȘ;¿ Œþ‰ÃC­Ø^ù.†¡GºAVºKþ]KŒ÷˜ftÇZ€–5½í ý¡&ôÁ ìÅqÂÖ‘m@X©kµB­7Läæ÷°ƒ+ê]Ù³é¿ëJ—ÂkL蕘»jñWñ!™Œ¡ÄÔÈ?fàµÜés–úÁŒú)ÑÊ~3>£ßÝCŸ¢äày‰Ó:k@Á¾P÷¡Ò•v%_ëÀä¡Ëüps]j;ƒCù’ ÅÃÅ6šà‹Ïß;jw¢´|OÖ±¨ÉSÏ@7­ÄœéŒàùµ‡ŒoÔŸkDöÏ™•Üô@»ýU=ó6y zå¶Asô»Žþ‰ ‚çGed'm$öÙ.$=€ù©ó¨Hþ‘_Ô6>1SJ|Á££ RŒ¸¶¾FÃ`ÿQ {æŒþÊ¢†?$ê—õÇš ^uØÌgl¤LzjÙ»‘ì @iÛ<úw¸ŸµF~2ØBT´iìÓKÄÆÉõÌQª°_äÿ£þRº‘ü'©3Ô¾ˆúÇ|•îã?~*}Õê»`ýÕêÏQ·1CùˆÿpôÌʚ÷¥½êk*xji°Í¥è¿W¹"¿F§ÐWÝ›žN±&TEýÓLøæXÃ&¨Ã߉*òQ%'LÅ4ìJ²§Ü…ÿ„ôßí ^‘wœÄ&lÇz棲]§*í(Ä•`ÿÑšúÁä"‡¸þíá~RAÝIÿö2׬ú"¢ý@âÖ<Äp©õÙ 3/@A…^ÁS¤ú£ÿ("' wÉÀ¯š‚W•ÿ"ë:޽+@<çÆÏ=Ée°ïÒiÕ¶¸ŠÏðÔ1ôäØ&“1ŒÂ÷ ÖÒ&Ò³é‹É¼±âɉúüø—NL®8îÿõƒLô·)*·„«žd2‘SKò»ä±@Yf11‹ÿñÿ± O² >ö’¨¢Ú"8Ê‘òjušv çBtI¯ˆ-kâG à?>sýNÁ’€PÏ~µÕfr¾÷E\î~DúÝ£Rô»Óð×s°lEÑð¬c½  æ‹¨}茷TðD`|ãI’èkAÝÉAÎR­² ÿq?Ì9oWª‰I`V9a.r^oè®rËH'§ìX†¦ íÀ…Ÿï3`“Ðwä=üÙ¢XæŒßÊO…3þ¨ Çó å,yª7“3Ò§£TR¦=0?ÂÏ×04c4 MXö“XèmðÏyµʺP+ö žµÿgÍlÎÙ9ïN6†÷ßÝj¦±=„OéK.ÓÏh…~ת?·¦;x››(ã‹Ðú«î¢ Þެh5yoorQ¸'2«s–³‘Ä6dç*ý¯né™à‘‰üc"çQ—oÒ7%‘_¿#ZÛ¯à5©‰¼–ûZ—<Ÿ6œëVÕïhÔM5Ј!"?cdÁ²:k€ï˜þt–éý‰g C)w…'à²}=o&Zþã$XÏ=>>Ý dhþ"ýKž;ɶ&€þÙl)ˆíOÒ «‘Q þ#Þå€^‡júºèwþcšâ‡t þã“ÒVm®>æ?<¨ÿhŒÿ˜ ÷ýIŠŠ-u|¢"Ÿ¥I/°Ï<\ïJª¡¦D¨.¤›÷Jæ×&V2þÕq–?±X{ˆó¯Ò%ÀÿQŒªT Kš’N¹s‰×£EØ%ÜqD¿_­Åï'P(â9š=^GcØš»>@œ#¹ÉêUøù8‘šúA¯ßoú‡¯U¨?ߊéþcÓêg;»õŒ ~úÀ@üÁC‘ÈúXôWä^xšm"–°¾EK ¢óQ´ÂÒ­§Îf13þ£Ÿ4ʸj¥?\ÅwÊxŽ~äžßW0™RXüÌt™ ^ _ðà"û÷+~¤upþáP¾„>m'*gjÕMçÅáZ X£¦D]Ïaοbùûó'ÁížÃtÂ#lGí%ªEˆ_ ‡ÿ臷UàÇ+Á¹Ÿo²zÝ#&¬«¹©[Ô/ÄÞ‰ý—â=¶‚E%Eé¨q5gÛŸ\Çñ#¼(F’óM—@µk=k¸ôj†eÙ‰Ô}ˆ–OƒõdÓቡ˜ñ"â^Èü¨°Ùõrò‰d0L*¥©†Þ›ëSN»}¯öR=ìiä…ûnÏüÚãè|’éÖê=°ÿ}õ Ú4± Ì}ù&?ctãxæã¾èDZ¯çè|žq +“ íè[óÖ¸”ñŽ<¦ŒwLà µØNK¤_VàÆcg­ñì{8²…ëʱÄÇDÞ[_Úšë×?·ì󥟃?·"òâ—Rèwû“B×®ÜD”‘Äïý©ÿ± Uœ¬a#Ø"r$ OÔYiyèßY§'9§RÝétøxÄöErGôjϵ±dYðÚD¹¿Xe#?±ºSæS™!®Ep”˜>€«ÿoÛ•ë~„x°LÈ}ô\µ©ܨÞï >‹ëzü*™vF|UA#Â_½SRÅàþ‰&~q¶&:ùGe1«êº)ˆÌ`ŒØ;O,J&"ÜmäsSÐî$+ë¤&UÂÞéð“ˆ#’£rC õn”zS:¯7gþ «Q‚.FåáJ£æÝ§mñ»d:çøôÂà Üñ/ù­°ÃäDîa@|à—½˜ÿ‘ŠŒà*ó£’ÂÜ4`·›Q×>þ¼8hÛvtrcàS’kEÂÔŽU>‹®\—G0<+õ¨Lú_-0êèé©DÌ:ú«ÇtyŽ~·7øUIÎz6ú ëÁrÆ¡'M•ô†úX¨h LP»¨¹šÂíÔ6b7ç…±¸Êäî }<ØW]Mïòàœ÷ã?rê'EûM¹'M·‘4¤öÜ´¬“Vª–kpF/˜¿€™È ›ÇÈ?f2½%ºÞ3øéAÔûüBo«‚8-ÁŸïcþùkž$K]|KOOPmØ\«læ¸èÙL®E5»Iÿ«ÝÌ×XTüêƒÖÍ@M¼byÑ.TýùTú·Çä*ÌA²E|Ó¾Qñç‚~·:¬‡ÿ1Åá“ÌÿèKv9‰5%Œåw£¸m—‚ÕUähRîj;kºØ&2‘%¶íš± lñô.°í‡aG­^Ý•BTLþ^ù?ÿÕOÊ&;ÔõàÏ#ê5•ãx%‘»+qÕvj'Õ[nÈþ_.µ‚=¯§,PÞ3ãðNT±ÿÎ=é ú\ äŠ&Âj¥SÒIëüJ]NýÇõùÇßññÅC²CWžÁUXøâ›p¢«Az«r@½¦öOE2õ­ýÓÿéÅNYVÚŠ[ +¾àÑ3Á/ ê5À¯ú‹óðþ°¸qÀSŠ„Â9Ä ‚ÈW¬­îƒ?/‡°käÊŽ|Œ_Ê£œ•xfêoóqàsþó°Ãùµ—a”ßË…U±hYè²(Èâã`£»‘”7 ÛFºÑ>¢®n7ýÇ“9¸“[ôÇ2[ýå]ÉxÒèÞ!øó©ìÁί~åDÅvW­øÕ3c9L)êçÂL!çZ‹çXc¼„InaçÊ @-%MÉ~®i‡CpîðçA Â;¸gúOÑv€:îøàWÇŒøØýwÔè½DÅ› ¿äG%H,ú_måIlǽcê½VI´}ìÏÞ*y8ø•D´“Ü<ˆ¥/0ËYµáf!tʯɇ’Sµ‘Š*üGiü:Y"¬zZ|üGMÖò듵‘ö]¸WvQ;× 'Ë·Ñe'–ùÁ¶¤nµ±“Êžíf;²›í¶f)Ûlîˆ?Y\bÓ™,,«$Dñ5O>=ÍÿD¿ë-%—í{_‘»üÛýwßI×eÅP+ªùUŸàþ‰nôO̬Sú+é_âÀ#í÷/dÙUõƒˆNó’‹ê&QÈÐ)¤¤ûBÔ¼§¿J.ž½@å05ãñYÄ”)‰xí©ú«©DxÃŽøðÎÀŸ7'ÿð„}lˆU:HÆÞ«›¸ˆM¼ïÈ@Üü#]”ð«bLZ]!Jã?–‘ÍÄú§°æÁÆÖ'ñ¡¡:1#»õ@ôWNäŹbIAbå¤#ê¾E¥ñ&lE+ýÿ Ï]’ïÑ$Tÿ¤¿º¥L„QhAôîÆt¬çb ØÅ,¾à:MP.mò![HMÔw†H±…h!GV›AvVŠÂûN…ÕOŠß0`¶Z╾ÒÿÊϘ ’uÏOP‹Ú®Æv|éôW_#¸#è_2–¬ã6ÇÕÔêOf)r¯àÖMµ'êy5©±,Åò¢ž°=óøÌëàz5˜‘~¹Riõ ˜¢ T<#x“QmÖˆ#ÈE¼]Léþ±“7VÞê_bÕŸ/%#;B^ÖBMά¥ûx"–L >‡È@O}À¯¢¡†-†®¿ö´&ØSGØt7li´øääìÙ PÖ^’ÞßgÃÄÆsû¡Ò:HÄyšÈ=;ÜÄ-Жܨ>˜ïè¹[þ|xFI°¡#ä –ÿÈ¡ÅS6‡ZѪ?ï€_=Kô³‘l@‚ÅžbR÷¯¡â-|í}ð«Wø»áTÈ—''[ "æG¶²—öMj½Å¢2YÖò¼ª|âx†ÅÔ³·6¶“oe·í‡ ¸†ãjÄ‚yp2·€˜MÀï!¹¢—4²ëCàW¯¥±äÙ¸îè´v•cYXý»øÏFøŽ!Äù7àÏW 9[f¼?oÇDª;dÄûuatåþܧõrûMvÃÀDÃÞßÖU¼xã2}®^¢—Ú.¶ åÕZ²­_Øý»¨Œ×S]Q˜ù²Þµ]#PßÒ¢¶(h÷ ä‘j|XðLì©w éô¬pÖü¨2T~Ü&OúFßÃ8t1 ¤³~KØù˜Ìð­Jþ‘¨° ymbG¶“ô¿r!ÿ˜È™ÒýJ+j·­6Ë‘¸Qõ²peÛ!ÛIòñÌË ¢ÃV3-W#&ý)>‰ Ûм"2ݼýBü^<–lò+ûºß¥röPûÂþO|¡Ó¿¤’‹î»µñÖt™íR¥ùÇ å†ü4ëoþ|“ö©ÏD,RrªR«¯¨cÄLÍ«W~„Èš¢²n1ñØB …yew½™å%7V9PM"ÆPò#\Õˆ×=)ÿ’ëŠ ìÆ)üÇ þ_ ÿ¡Ó¹ãÅ9¢ÖØðÍ#èÞž(‡ñZÖOK«{éß^…øy51÷ø[àEÎàWßaâ_e¦‚#œÁǾ‡#[/£Ü•§{z­¸z+XÞdXÍWðkð x·¢~¾¶…X, óÏ-õ?ýy§L#ï…•?ˆ5ü"Æé»b]©“¨Kö2¼Ëì}ý+9Îòv‘ÎÊ/WPŠi:U³™ÑÀ{ü„÷é w± LÍE£×·ž–Èþ?9ÌjkÁˆ.qÏêFØÿª7ç Žê.xZ%âÀ‡x†2üý…®=`~”l,#.еú~Mðç¾7ˆpþÇQ©øÕp¼ÏH5!p%V4?ûë0<;ì ýwgÑ?ñ zà<¶­(ZoÒ×üýº?Œmøõ‘Xæýü=5§/˜¨i_î©4PÞ¬†×-­Ÿài@]d\Ew›.RK˜_Û€<6–µ:õƒWéÜÒÇÜÕëVÃh‡é ìô ûznô¿úŠæãhè=w!‘q‰þWŸàÝw0c|#J³EæU0»Løoó¬Ù€î(žK]­¤PÞEeûï¤çÅÕÂ’ÔÖ&Sï­Ê^Š3C.êć0ÿ<Žêèco[/|å@yˆøæö}+ÖÞ™ûÉ·á-.Àžçã9FWÆâRïû£rðç+° ß´ùä¢ÖüÚ‹DÑyÙi_°Ç)À¯²q <‰ì{8ì*¿¿ÿ.MàÝ+Ñ„÷=‰×ɆÕl{¼ŠjZž $úQŽðv/Ÿ–âþã¸2kÞ’ÌúùõcJ%°œy‰ÄÑ éõuä%×ù›Ìû *߉àâŽÎC¿ê__“ÊñÈ?ba{ÓãÕf‚L> ÿhÊ•\ û€>-±ÐñŸàÄq-ÖÃ\gfdÓçô¡û>ý'|J¼Ç9޲ÊR‰ùs£é/>RUñ=±úÛ@¹Ü@—3“‰™xÁˆøóµRõŒè‹šNSf%ûdúŸÑxµAè;ã/“øá5Kë;ñnûÉÊö’…Rã„Ë]*õÄtñŒ5Ûï9޾ÉvÜÅDDõÍå%ê4âçøúDîà ˜§ªä!ÎøknÊ^¢Œ×XÆ>àWóáªöw¦¥“d\®æZ{äç¸zs%gòÞ˸kû*r™Z¸îðç“ɯ,þã¬uZxŸU ¸ªžð?›ÕhJØî<ÃÐ_1Ùûç§?"ü¶éŽ7z­¥nЕª²‡høý˜„×6y$kV†¯˜ CÍÄ@j Âòç§åOh"ê³/VèAèwqWN“3äÛ> "”…ÞK1lŸÉš‰èè[ŽsøF¶t‚L±ž°ˆ²#Ôî¤(dWÛñÏa!:‚Î¥À{x€þä¡2☙Žx7®m;Û0ª8¼ô¾0ò[Ð ¿ ÿ°fa¥¦Ï™ãêIÒQãÉ^(KmÇYí,øÕNc ³2F"ªáÊÂ}ß7‘õ¤'‡'}åç[–÷ n<³®hÝíË]‘ É»¨lªßÿ{»•˜*’Øøøt^bŒ ßð7¢¡L‚=Ý­ËŠ\YÎ]ºf£„à÷¢ßýæzæî–þNdáº-1R¢×íMÿE+1èÐuŠóMžåM½F/zýž!ÒÎj›ÒB Q¾ý•€ÿp†ÿ2tWpk_£:\Êtµr¦±/Ø•a:‰j.¢ã\æQ=a~TErïhzWú Y=¡]<½åÆè¯*Qu ®2´çFcÐÃìTyü"³’ÿ´Ú9³ƒ÷ÆÄó_ðÝÀ¯ê‹s|ÂMöh)4©s@¯âF‰ÿh §óRY¬æ"؉ÝèDîq„[ˆƒeÌB]^i2g²Š'"öýG¹*¤Ý¨CÒà?ˆ‰=_ kNâj­OÂ2š3Ä@^°¿…èYúWñ‘2=ì@®ÙÞaéw+àÓO_0õ HžÁQl4¢Î%Ôv÷“•[¡¯c æGÕ$·˜A–žl&!ýDÚ¼Ð&£ò¯«Í†Qµ‘-<›¹A${–WAÔÖW#ŠizÉëÔä©ÁŠÀñŸ)RcÕí÷×N«KÈ?v`;ñ¬ZÝgk1Èà¢ÁŸGÔ?q™TB=G¼"8¯•t¯OfU™óÎzÕ‚ü`(Ù`u¬¥ÆFåý2ÏcdHo8Âjúpó]éß>N§Cîb Ÿ€Mø±S>êCè9r˜Nwé]uƒ¾²•à?ÚÒ?²ÝQæQ²½írºZ\’Têý2kmáó'£1úE¤ÿ@£“£Q„È›ZˆôÔÜaþùc*µ£³ðpÕàZüˆï]õV¤¦â@ÖëŒ¾Šªâ‘û-)|-«è¿»ž˜7‹í¥ùÓœrÕýÕ92¨âü^ªÝ·bÑh&8eÈ»;‰(¼þ øøÁ ügôI°hØ9îX½ uxcà¦ûããºߟ¥æþ]sûǰõÍÍý(Ɔ¥ ÿpæw ‡ p­¼DùAÞ}„ìþ’“Õ:3?ªº™ÊÖ‘‰º?Ý(w×à3ãØÒ‚²¹RWRÍh~›3Ù§7CÍU™éÔÍìÏÞJyøURò÷p$`ßš n»}v]˜_`xÒ «ÛP3ë £ïÊÇì¬FFY4s Ðj¾1ˆ ;Ø£¹·:E'zì'ù@|4êÙV¹Ïb6ofQM0‹0?ê—™ÍÖÿqsÏI…ãH3¥>€|e=þ#y{ÉÿIÿÝ;RªˆÕK*?S†Úö›úÇ/¥órMEÿè¥Þ ÖïnJ‚_åQÖÐm=Pú»îô—%7ú—ŒÃʸ–WSªµ˜"âE§¨êvu‹_‰šµÿ}ØeÁ¯¦Òo©8ÑêÏ3j²|HÉB„˜SäCE:´HF”Îü˜üA®/XÐC°—] X¥ukîK9qš:‰à#…à Vˆj •šÉ*V?aQ”h=û{~ä*ë¿JÂþÈCÝA~æŽg"Sz!ÒØ÷ðïó ûõ­Ô—sZ$¾Š$ ö^äÙÈ[j¶¬ÓZè¾è]‹QåU^a+¾%}˜)aWc† þã%ùP?í2–þ•ƒUDã‹ûÿH~ O 3¾–¸4²³Ž&ÇW:b¡pLñÉѾ ?ò0KÀwJù7Á[^3ĸ‡°n·°’~¢–QMkk¦ÀÍÇW$¦Ê²Z8«{i^)¬5NóGGþd¤^JŸÒäA.‘Æ%#(×Aû“ë8ß…R5êÏj6lø&r¡qš‚5ªÖ!ºÞ  >#>±¸Õßñ:¾ó5ñÃô»ŽnÿZs¾ÒQL(‰÷xD]‡¥ß=Åä»G̯õªŠ) .T}‹>€|§"¶t õêýƇ«ÿx(‰É?ŠÁv§§jð8ûä0ÑvB"üëh‘r‚“ß3mÆøjÕØ –TDê<Èa½xS]ev¨ÝÝüª7¹ã%ºjžÄ;Ê ?kˆxÇÐÛc§y„ü#©ÓÛð猫0ìèèŽ~ƒ¾ËÀ”„ah†‰"œÁ~PÇò¬öŠÜh)õ$#xK#•m3u±áNñý ÃÙ<Èg.%¯;Gͤ€¯É¡ßƒì7ã‚TEv#VïKDRewsòÝäKè 2×Ïì PÐôÂN2îÑ·1ùÇK”žôÉɤ¯ :9ðòƒò$%>ÿ8Èë=¹–LÏjôWÊnëIÿÝtTÛG#²ß+]-Ò¥‘HÀp±`«½ðíÏÞHy¢“J¿¬DeÙÈ?®1ä´•#ûHç«mð)7QÝ6QL¿ßŠô¬êbÐm„ø¨<Ï£ANÜ; OËuàu+³Û†Âö>/ð÷ÌtܧÔÌ´BÑËvÖ–ÔÛÖÞ,Žwr£§V€>Õ¬€¾Æ°,XC½œp·_ÁÿÞ‹—ôJÎhßYŸ¤nr<ûwwð­•_Ì?ïDÿ’ꬲH*£TQ *‹`¾þeý¹¿tL}"&RP‰Ý_M©æ¡çî¿ð«ª«Kù»þ»Ù„LœzZ4ä™éEv]‹%ŸP’±zn‘EŒG—¤D¤ò  NÔq<~Õ›ÿ˜'¦¶°(øUPøžDè½@ ’‰B"*˜]Eò©õ¢6ÈèLlü:ž›ó°2 ðIuº¢ø«ÊŽËM|þ4 üGyùÇ:au‰k¯Ÿ£Í¢Úÿ±Ek®°_s"Ö/Mΰ™ÊÌôįN(SȬþ‰÷Àê^‰Qè¯FãÝŽ¡CªÏÓ0‡Èÿ8QgFüç°,KE{yoø‹ü“tÔŸ[ÆM ’AÃt!¦&ó"bm¬­çQ8梺{XüÓÚ#^ùâ?‚"Xq±¼VË¿gÐWÃ{¼&rá\sƒë|@[öB]¨¾‚ý¯0îf7Ñ]*u“sÊ{Dzë¤zðC`Ÿ6Ìå#ÇØ‰€jg"¨Ú`8á Íêu–.‡i@Ø7iLÖeÝÏܯGàW/K¿Z¦Ô3ÉsàqÑåb_ÀŸW¢²® ¢,øFTÄ­'ºKve •m CÚÚKäö·é‘Vƒ>1®XxÃ8 ÞyŒh»¨qS÷¡«•ÜEwú ¾Z2Öà=ʵ\çÓ=ôÆxÎâÊÜPÏõEǵú—æœzrý3R=¸šÎ'ÉŒÍØÒìàíAt ¨÷âOqþ¹ar’ðý.îÕõ§k¨õzˆÆì‡í`tQV¼ÔnÐÿê$È×uø“¸Ô”§®NØX/ƒ¹ pñ‡?õ0ATcdÔŸ‡¨?¿%5–·p¦.äÙÀ\[±» ÂL†OhF—®qXæwôµ½„bvókû™PŸ×rïÒáóéÉ?xÇ.y¶ò“Hl9öþ¢žRë F7 )lõá;RqåÂW!©ÄT¯óØþYô¸~5ƒ«Ý…x«Ó©KÛýÇPy¾*SÅ‘Sų±O”„ÿh‚þª ýwK›;åTŸ»ƒdõÁß­ÇÖ‹zGæàÂÎTô’ôÊ‹«¯/ý½e.È ƒùó)è-@XÛÁ—ïã=3¸‚"ÖÃÀüoäóQõ^ÇÇ9£¿êffÓ­ªmÄ•ñy3üOòKRÊó£~J.ÿvÿÄŸÒUæŸëðç•Uw¹.»ë¨TT©®8+s•w²&_ù}¹¢ôõ‘t˜ú©<õUé”\Z®æ£ ü5ulêbu9ý¯¤Pû÷O‹fÅÌÖ|ÀK“}ÏyOAýGZbÖ2 MK…M{ʼn">øfD—°píAÀo{÷BQNø€›<à¿ü|†È&²†Ð G~|Å©\‡~×êß¾Ë'ñ|¶&ný¡iúÐ¦×ø£'ü{EúHþ™?Ï+ÅZ,§qæy>û‘½y òšÝà/VLŸž"7~n'|r*µÎ®â e&6r8ø•'¼Çg¢{g8áuXf Ÿˆ½ÅsžŠLi™Ý92Õ@V9R Äx:üy:ž½_°4uˆòßkë‰2]ÐïÖcEOü‡ªßÆ>ßàj4Q6Bdq˜ì¡ZxaL®R]²€ûÜË¢xP¯.šþã9GÙ&`)^s¾Í‰Ø.Ÿç@žwåT½xOÎu Y@IØòCdZcÑïŽ%+ÚŽ×ôÑH@fhévýX5БðaëÏgÁŸO gÌ©?Yq‰éÅ5¯Ç1Ž%Ljoo9À…Ãx`£Q®‹øo¡ÞmNXüê‰üHü@­–tÍ¡º†çôÆž;gõËFªÕ“$3žÀXüyuüG˜ùÃØÔZœyUeY¨;=ˆùýQKEKçƒÿÐÑïN£6£“žÍXFÁÔ¶/tôXóу)P—ðp•ÉebáñV²ó h©Ði;®ž$õÕÐøžE,‚,H»­Ï£ûFkã4² Û,*#˜zfwŽü+­yÏ>O·ôW/ð®dúiÑÖ¾ÜU¬ÐJpÉf诊ÁŸw ß-Ìü¨iø®äHkÌNhX3š»øÉXã ýx³’Ñ\ÂÓ»S½Ò‹ˆÂ_[/Ø×óç(ýØ1ðÕ{zR0Àh(ú¡‹ªFIBX•~é+Ñ1/gX·•áb^IÅÝ® VÙ\´ ìþc¡3Í0+S¤lÌÛÍÂQ~ÖPÞ6Ã{|áiþ,r¢d÷W©œ 22‹#6¨®f6ƒ?ÏK¶-C?ÔSl{È>òØÆ˜Ô6/ã¼Wg3«>’Øp+»:±¦óÿ¤þüø•·ù,õ”…Úö›ðǪü„úASm£Ö`þ‡¥ßµú—TTj)sÐïþxä—âÞÑÿ*ˆjçV`Û1´R* ðÖés\d{þ#ñ_guSƒÈ?ZaëZ%¿ù䳊AÄšžb õçr„V*ü±ž–”9Bò¢²É¼=‡^WSQ…žÀÊžÂ>§îx¡HEâþíá~RSÝJW–Ê 8s±™°7ÀÊ“P‰­é£`1a¬_¡Ï*OMT,û·ÌÿÿAay,¸Ôò„àǰÓi¨>l ³½‰üã4ˆKJðÜjؾu ¸TËÏÿÓ«â,ó¼ål,þ(¼ÓdX™ƒè’ÊÁñ/º³Z)"ö§ø™aÌ? ©LÂä”`SÓÈ5²õêD[­°«Ú"ÖòÚ$VüŠE{ÎO|°ù—ð/-¶1ÂúÁÞDø÷¯øÜ¢d•׈Πàe_቙5®.¿:‚í·øó}œ÷4Î×WÄÆ¦;:×9ÎüTD=*°ÚB»5À¯Ö‚M9™‚1ÂTØsOlTJl‘;|Òm#Þã<ý„ëÝlå½ÁÊòñž[øÅÇøËSØê'zwê?N̓çzÓ­ªˆU+4§õø½‘°Éóô²L¯ÝmD’^È~"ƒÜ°Ø_±ã'°E{ÉcѯÒ##QôYó>ý‹1Œ™Ôû•…%±¼Ý ½¨z9eZ¨;=ýnwb‚ ¯‡áT$r™YÔvÛBõt!›jûŽs¾¢5ŠíèÙâKFóœ¸á<œZ,ZyÑN¸ú»¬'Þ𖾋.‘} *$ãØæ÷/ 0÷ðG™©ö ÏTëÞ5‹‘K÷]ì7ã"úÝÕà’‰¤r£Áê@åR^¦†ôejmmò©p û‰ÁO’‘Œ5ã?Š™ÞtÒÈ®t2†ÀÊÝB혂é+oT‚ȳN‚Ù^ÓÓÀðµ<ùUyp°hä*øÕqò£D¨§¼ÌµtG/a'³ìÏõkˆÞ£¨Â,¡ Õyæ²WS‰/ÚvÓÉ– ¿2|cóÏ2³<;sÏ5ssžÖÒ»ä#óÏ+¡ ù Ÿûÿ±Vëk÷Gå¶ð¥Àºâ=>ˆÄ¦m=³ÖÒ½wU$cÍI¶#6aËdÇO¯×–f~m.}qëX½œséÿ‰ÿ¸)Å Ñÿ*ýî¿[ÿñKº ÿñZ©Kþq-¸ÿîn©’Rüj†r“‡a#4ûv‰ðE€t\ #±ù™ñ¯%Õ¯0ægáÏçu²º•¾ð×§«üÕt™Sew½¥ä[Jœ8"%ýK¾ [„]2ÂÜ99¹Ò—=s¸»1ÃW-Pctg9ÚGº&3Y8á?¢âáW“¤*ÌÿpÕ-ï±»ïr’4ÈßÌóZˆü#51¶wú—¤—‡àqWgÇÖ«á?ŒÀ[áºKP X= S€çÖÄÚ®ÅÚ&3Å!üñ]Wú“±5à ·V*Œ¡~‹Z ÔNÏrE+Îë{üË\ú'> ¿LðO2Ê©”Údü󈇭úóo"Ï6Чj¾þ†³œO¬GU^ã-¶Ù®ÿ2¹Äm1R«œÅüÁÞÜ…˜àWÌÆÛTåÌ©Îâ™n§=_}‡…툒u qö.´ 1áâ?Ò§n‚ýÉuè©¶êÅÿ¢MÀ¶C¼žU§“ÌÆ ŧ$$¾@”{þ#;,ÿZîÿaÎþ¼¶_Mnþù"¥€AQ©‚çðo‰ Žæßчeà€kÓ‹6³¥Üe Èv"ö4ä ŸÐ$}'Ó©©Í³BY{Iz&)`œÀºìžå:žáˆEý‡/LfüG€y~¥õçó`hjâg®‚ê¬Ñëã9+*‹B­8DD»{ÑNWbE‹ñ–Ñï.0ú`W¡@ŠÁ¼"Ã6Ú¸Çö i¦—Fmüj7¾°¬aãP빈â(N±¿êÂæ(xÍ­Ì3ìÌtöúàW‹˜¦ôÍøFç¿@ødLëX€ÿhCý ?G™ü* DþqQªÌ‚ÔäP/ðß÷ñš¥¨ÿxFŃÊdŽÆ|êÎo2Ãõ«¦0?°%ýwo‘SMc EwâOG½Ù)™ vTâžbGÖS³rN4p+A­Šaí¢N@eÞ{ô¼ÉͽT9®'ÿ¨dÕLÆÛxŠNhÍDÝõçóÈ?â >w½Ž¡/ÞÚ{ú—T//A2ß1…ü#ýwPéS¾ŠÎƳ³1lqSr}<÷ø÷îó¥ÿîHöåd´›ñÁªßùl×È?v‚'VGË5›ÎWël7©ÿ˜Îü¬«(¼²št›1›Òw/!qàcð°øz­(M«ûý™ÿW_/S?øÁ¾X4¹½‘VÒþ ÿðÂÏÊí•JeµŒzR.ÃîÚœ”¡ÖMù³tòÞþŸ¢ÉɃVçC½šK ¢cÉsù“žZ ÌÜD]»£ëJøw‡ÿI)ñØWXÊ£ÔüÜiåëàWyµLôö/faDÿ8*gVF’øO6'²}L4ÞŠ¨¡>ýKƃžôcÍ–DIA°"CrB_u?ª€X¢)<};±ûV†T€§@Ò{àGÞ’A|yÙw{„íùGAy*~a|NFð7:w§EÑÑ“HyþãüyVPåšà ë™ëK B„<®½öWFâ:À€Ú~Á£—%N* 3=D\Òg¬â72“x¡.ÿ‘AΪ4µPe:‰$ƒ[øAÕf3®×”W¨ˆü²Ê <‡¡æJìá(ïQ³SAMÊVýëÈ&¡¿…ýK OÁkf&}8Øô~ô\ñÑ ¤‰Ûj¿ÈÿG/n†ê¿ûS$G µ/¢þ1ºüPî§HTŸW£ÿn=VÙCý`;ð«Ždߘ&õ7ÞÁŸkàØí±ÆA"¯š„ï‚|G(ú`ö(Yþ²bv¡ÁFŸow'š^G¿«Œ²§’‰'!…¨„º;€)QSty0…u”øÊι³Žø3ÞgÑGøb /k#ɘÃd¦‚0lW½ˆ®@søó½¢<pùð.öØ]Ž0üyB}.»þ ÕoD*æ+yD¿**ÏâŠíñ°«Uôøž @M`ÏWhµˆËÜXñX‘/¹Nj-±ÚáwÛS±æs4%[p%>z$ú‘'ŒÒ’ê'xþËÒih&£DJDÌy’1C˜ÙY§b¾q¹u(ú³ÀÞÚÀÃÚ¡U~~õ‰ìaˆ†ŠÏÛëAI´¸ûv–ŠÑˆbšaò<µ;6Ü@ÏU“5¬Î1Åùûž°Š¶BÝLþ±‰X¸¢nq?»-ÕýK¢á #šÿ±Cj¯cˆ9W`3ª_m&Ê^¨å»j%냯´ú·ïí©Í,W7ð@_îþCîÿ5žr/Ì­]¤´ƒ½³æŸ?¥¤V°z€ÒôgªodÇ4¿*„©!Œð½;Ù[]ý þÃ4ã?ƈµaîË;êÏÓ°¿Šr|ºÏpÃÓFO›wŸ ¢·¦m¿ ÿÕCô»I¹¨šÐË܇ÜgøU­‘²*ÔŠ ð£¸Æ×µ†\¥Áðñáϧ­ñ˨¬Èi{ÆT¾áÆ-ôÆèðX ŸyuØò1oðÂ4að«ö¢þã ècy£¤ä«PJu2\ñ?ÙàÏóQÿq™Èùõ÷èª8œ®>éªþŒúó<úµþãˆÔYžJª=þ£Hm YÕ'xò$t!\Í|öæd2ñ©nn1‚¨Å¬OG”ûø]t$„-} Bíj¿#ÇåUèwé3LÆxS×PÌaÒâ-ºî¶FaöÑØ@çâÙd3_è~xýîúåÖ7O‰Œä~×F·ÕWµìþc‰Îƒ­Âª Æ_R£¨Œÿa#ÚK†“ µÒ×¾‡#;Ò¤2ÓÉ™žóK|B™¹MKE¬‰NGóéÖT äz=¸ò=âô|ÖO!©eCY•𫞿²jZ–÷$“±f²NÅ»( üärª42mɬ׉k ­ >¯AÅúÄý‡‰¨>’%®‚Mš†·÷å#ÔšˆzúG×VË•@!Îý9þŽ\ª¾Äš ð}KÁ‰­+ñ¤°‡=òsœïf©³êß„­šÀ™ÅåÚU##t¯Š÷ÌVÁ9‡µÍ:äÍÙ2eh©6þ<,f·Xé*¦¡ßÍ ¦rOþ´ÈmÒ}*yÇIÔ£÷ gÔ°aŽôëxãSd8~ øy°-añ«O²D$Њ\w5$ïÀ¯|xNüÇnæd¤ÛÒPøàÏtñh‹_šjWfz5Z²Þ°sº–WYêNOÅt+|¹|.¸Õx:˜ÔZ“ÿñ‘9|Ôv@–‘î$kˆîÝðWˆºR‹^¡Öë!ªp‡8ǼÁhØit¿sñûàó­þ»ùé¿{Í€jŒÂbÆ£öÁ+ïãœ/Pqâ„~·¹ýf\E§sü]QÐmTIU9º®™ùƒ+©7w¡J,ô²ƒÍ1ðƒá†¡lë‰Z*¦Ñƒsù@¥×NûzÇäuЉ~÷šÃ{zBX¨ÆºžH¶ºÄó×ðGo©ý;LϯԦ;«Ö™Ña”|ð CȶZâ[€.Ô°?{“ñßé0W퓬7´ØèsÃT´€‡òA«; ›U?ø–³Ía¾„íÎŽRÌš©ø’ç罈MÎÜÕ¾ ¯2ÿcþc*Ö.-Oå{£3ŨŒôcÉ*øò6_›bkdk ~ˆrϦk¨YLg>À¯ò†P,ÛOý?þâ±”Uþiÿ”ŸRÿ»{\ùªÁƒ| ¥-öÈ[ÔˆÐL•ª“ñ5þXæð9W°÷Ex¦¿aYûhÛðÊ¿ðÝôZúJîÑNm¾ô²øD/—vö'×q îRUæ×E¬wÀÞ§„U©NõjQút­oB®ÕöÛ›—TÏ¥Åå|w³ræG½q,üj©â"†’säÆÊoÕ[éŸáÊè—¦¿Õ'bß7Q³pÎ(N4_uÓ>,_lfެm{LÌ›04Û-I_åç`˜=µôDîûÁ|Na‹ÎÀ*—$‡q§—`j¢Ü›Ì?ÉDÃ$Æþbä3'`+ð%Z\­V˜üc,ú«áÑ=vÚ\X¢èLî›Ò”Š”åô/q¢Þù1ùÇ}:Gxÿ‘ åULð¨qd±¥Q½‡Æ¯ú‹†x¬ hÌÊs¯Á¯ÆS¿ÐþÃÿqüè#sƒÍAy»‹½3Ͼ…8ä’žÃ(ÿÑÒ~¤ò>-+÷î¹– œ¸-ǘŠ>»˜Õ‡©JCé—xŒU¾TÖ e®m'&ô ¡Îf8W0œXf£8j_ï´¼Z‰Ë=ó&_ð×ÓrOS¢¨ ãQÍÜNþ²äj¼yž~-ÉÐ_ÝfþSFºæºÓ¿¤#þ·1ùG;Ñ;Dÿ«%ò"5%ôb°ŸBß@ýùgjì àÇÊß?aÚÉ‘µ¡JÅfN5ÊS^ UpC£YúwvU4‹ƒ!vá5¹›ºH”!kOŒ—j’Á¶ÝfNú_¥Êå&sEjÙ®ÛbØ’¡7îbø•³>_týnF0»ÿ ÿá/å Q?¨É}ÿíüC¦Éå½ÒEm¨ÞÖïî’Z“”$ÿ¿ ÛáÚ~{#|$SE0‰ü(8KPÿQŠ.ð÷ÔùX“êiESœþ`ùB/ûY}ÂÓîN´’z’ƒ¨¬Mù RVú»úŠêûâKùãôoŸ&âQAvÌe:ˆoÝ…Êì¶ì£Áè†Z‚‹¶Ó¦00K”"‚¦ðçî¢vxxú6°oâÖ‚D¤™¨|KRÞ76ÿšHÿGÿ‘Rž„^kŸÐè?×¾zMžUkÕüÇ+æ†Õ ½7¬ïÖÓÇò‚è3U†~7ùG-LT? dh=uèîzv£¸~Ct°ß”÷Ò(y6¶-{ßIFõª51ð,HPLs6ùÇ<‹/§Šä º=~e"þc):…ÁœÉ/veB>S6ÙCÞ¤Dƒ­ÛÇSà¯'¦b3º&®6™µ¬ ïä11áv™ÉÑ_yWÈD$ú·»ãƒe–â|»“”µ?{3™_ < Oìwz»e~Tq[-2ÀÚðPð3;ðGuð'š9×h@¶ä ÛÒü*žþ Uø7øapò¿OøúÝAT“,#JEGÝ›FWê?²ÛÑ鶤º±¸9ÃvÅ–Õv}ðP&ž3ºš*8 ú—Äf>‰©ØÌÂcþ^ù?ÿÕWJKoÜßÞKþíþíß%O¹­r_i¤Q=åì®Ýô/ÉBÿ’ ŠP¾üeÿöÒeõ˜JžO» œT‰þ%Oá?ƉÜjgõµ ÙBíßßgÙW'§¾t®(©-澯)µŸÒZ%=\Åòe"ˆç~doõóSò7¹3hØQ,jebñÍXÓpÁ.è0Úðü”#_°*ˆÓ‰ÂÂ?Ô;#þ¦¥:I!J ]@ö²èÙ‡÷§¿ú ÊdÓÏáîÀcjâŸõ»ß¥õðç{…ÞòéÑ:ù¡-_Eœ_Žª…š†/ ³°Œ@þcÿvwe8øUwXMä /Åx¬ê$Øý=Ìy­‹i)ÖÿŠæ§YÝæOaOÑ×âfÄ'*¥`þ`q²µ1 LqÈ$*Z:€n?Ö&óÄ'¥Š°2y¸'«=Á/l€]˜ÏõômÕˆîuoy:¿ðÿQÿ2Þ¼"¹—À~ôD¿;C}OýGsr‰ <ç®d)IÈeb’ûô´?¹Ž%¹0p„g‘otÁž¯ÄËŽ!Þ_Jºd=»^ ß᎕OÌt?7®è$®Êjžßj®pý;)­ÉfJ¢´±:VåùîˆB¬"9ÁP£5oèü—Ù8«×ãÙÎ'ÆSYOÄ}’,'!Ýc§„ÙÝ—äo"±Ij*ùvÁ’¸j:™PJô»‡t7º$¥‚g=gÆ¡^¯ñn*ýoð[ðóåÉ]s)3C­Ø›ùƒÃØÃ>`Càïm¬iéw­ù®æ>ð˜KÔŸ§^£;šÙ½ W©Èøìéúzž šðãøÓÿQ‚ÌÖ”t¹³?ùÇRЛ[dXšm+lÀ3&wo¥q˜‘È<‡žÉÙ›3—œ¡¬î/êÚ»ÇüÝìü°bÅñ¼Ýˆ¦R^ØÒè¨`g <*K÷û´XÖt˜×Ì…0 ˹r9Û 4ÑÁ¼v†èŸèEý‡…_íd?$Óiëô •Ù%p¯Môž\À´ÞÉæ&úa%D|›‰±/ôêæaŽÀ…s)I®Ù@4Ýíþc–<]}+‰,\¿úk5µÞÓ,fkhõ©bŽ×I&ÞDÍPï5:À&)˧Í0ê{‚yNúTzDü>á›èwGŠ Ø’¦ÄžiµÆúq冣q£{ÖRæˆl ~Ð D±:øÝWTÅÍïz=35ùG4Îé–xGÞÜ(„Çü½òþ«õƒüÊ€ÿÈj_Dý¾JÇäÁÌl‹þê˜\UNH ”ô°çc¨ÿ,ý~W¡:ì)þ£/ùÇyüÇ5:¶ûË7˜ÔQŠÎg•_ræ¿:ÎXâ%ÙÁìôj|ö4q]ä•w)NX×—êGüÇu¤Df÷B_ƒ#re˜xüìÕ§‡÷a4þ͈lÛ wî¿;˜EeâĮ̯%ýncu¹ê)j $ZAN°üã"œ@Z÷d7ö´1x:þ0 õƒ¹åAäÛE4-ñÛrŒ´Ú=ÑP›‡ÇÈÃóíJ¾p†¸x-û.+þ#ﮢ¯²{>” d/×ï“‹ÉJ³ÁáËÂV,?÷ÿHOT¾ƒãm%¦ÊÇB_0ûw Ð_¥ÅîÍUKŠú'H¼q˜„&~öµ˜6‹“÷¨…924‡èþ!È ³?‚£œ Š0’ß²ø—Úx«ª¥4ÿ)T^¶Ñ¶’Õ½£þ£˜Ørò˜ChÃÒR/3ÂþäÚMZHýà1Ô_´~d%À·±êx-?ö²6{™Qð #h†âa›q×àßÝAÐú«IÂõO\¤´³àCSài7`ƒ>¢€>ƒ­Ô§1Ãb/Q©‡‘ ~»¥Ñvº õEˆÅGÀÌÐÓh£ÃÍz/£Bd%àß÷‘Yxà'Ó‡#ã zÎÄDÑÇÁíÀŸlÆdð¦ÂX{/ò1zVrWgeS¨k8HQ¹J›Qä"¯èN¬’üjÑ„~¹[Ð_¥²§ŸVìÿ(æG¹ÃÇ;‹ÆúÿÀ/Æ­B­7Y¸°,îª,ŸøCó"ÿXf €éè‰þj/õ /‡èÏr™nœñ@®óPÐsd<u?QÅ~3îKcä]Zt|ÿErû»d¼¹ÉŽžÑçJ3 JZ„ÞêU$Gè¡;O0þ|-Êå>ø£Øü_p‰;CÔ^y_iøâëàWy©àŸŠ7ÒàÏwÑûe•ƒ©™üA}âaXþ…føŠ£(›Á^aGÖEDs»ÿ˜,O…ÿ¢'Ä*|Ìá~li!Næê¯’‹dÑÈ—êQ™X„žø™üö3¢•mAˆ]x*¸þÃLÙ…Z7E 0Ú3-*-þü*¹`iôÅôoÏKG€ÜèÏÞ£ÜËe b¹à]ežì7T3§Ó‹‰“ö+øß{qþ%ÞøÔIþ»¹~Ž#ò5¹¯òHi¢æQ/ëw÷IU•J'æDW>Ka;”:ÞÑ«'Òø 7©FÔ[U½­ü?âÎ<Š-ëÚ%§NUãîîîw×à.7¸wwwww‚;ÁIpww·àà+3tÒ!LÂüßÌÀso:!}ºäÔ–µÖÞ;žöB}JŸÊú}§&µ?ósti'îÝŒ%½Š}ÝŠÞ*µº\ËJ¬Gb¾¸/tý[hòËÏ©_èßÓ)Žm%ÑsÙ,¦½8Dœ~ ßQûßöSd&’,4×Q?øŒœË›ÊñÁôˆH„¾dpgÝl‹vî2øUPï /u5þ#7yÄjð«ÔFj4™&‡þ‰çÀÁzÑy·79WDG ë"üù6²œ2ÔFF{°ÉÎ’ŒÊÌ òcÕ!ú¡‚5 c·­7wfzjÙÇÁyD|úÁE0>]¬W\ÓeSV­Bþ™ýM>QýîHç.uÞ9»âŸÅõη*B=¨vÐnjÕôTðç±») ©Ó¨‚%ñÆDVà?ñÔ×°«Öô7Ìü¨€6Gu.$½Ëþ :ŽÐ_e¿êg\D¿k«·‚ƒÇBÕ%Rbá&–‹[ðç_CkˆŸR#hc…*o`ÝZã?îùdSú_õ[‰W‚a%Nœ@õ`´põO,Ò²º”Û¨œ9XÃwjVƒÛ•æÉßɪO±¡‡ù,8@½hWñ¹¶Œ·Oʲ‹×bWo(QùV,*jTþG÷EtA 8â ÅÕmΣq}]Í¥•…ŸÄ“ <Í®?o†]5`\ß‚iM{øŽÚ~*ЃlÕ{(‡ªß8?ê6~·/܉ zeØó P_xÁ¼Ã>õ!k°õ»¶K'Óþšþjõƒ×Aœ¾ƒñ¥É¦–±Öt£ ¬q0¬•ØÏêtß=CL_,g+knÁ'Ÿ§ ÖL=ñ/ú«Éô/WšÕ«¬ £;€¨¸ ö½Kö¢ ¹k&7ÈÖTç“Màä«P 15ë™›+BÜ—×ðÉl“¡{}&_ËcT]Úö<* 7L –†Zç˜?x‹ùÉÌQdŒO 3£<,ÿ8§ôS=áïê‘{”ç¿¶° ùÍ,渘µæ­_¨8€‚w25]áÁâ}‡“-Ä7»’Þ0–ëµT~•ã^i\”QjZºÑ/±œµþ£ÌÇdØáˆÆÄòÔ‹W‚¡>B,Ñ› ©¨o‘K´r>{È?¾‰ïè©Ç²w=Å[·yá?ÆYðã~h¡UÞû Òƒ²å#§s7[_é²$˜Sa9Ýϧã:ýw'‰ìø-¢*•~W‹­4dZóéss^kºc­ã!3Y&‘o%pì㜒¤F·#ˆ9ïƒ_Å•nbÿÏÿ‹_÷)©‚ÍÿxÍüÁ?Ó5j4uŸê¦ÝÑš1¿öR ÿ±Vi®eЪjÀž>(ÖRU½õÛb¶©(W´úݼäBôÄšŒ€ÿxõ‡}‚SŠH²'ý¯ZcïK0óþ‹È .Ñ"Q[a뤦Pò^ _…Ê.êÏÇÀX=!RnŒÅú}ÛSŒêR1ÿ)\úÝ"tÚX&Êà?&aåVŸfÝ\Ò¶m ‘™¯åØ!Ù±fGELçºî®¯r«3ñ¸'Ð_E'^Þ rQ+]-?/+“D&J¬Dt¿ž&¾ž3„r]¾áúrµfd ð@OðèÉ?ÒbEfâ?âÀ…?e­Ëx”Èò"Œr?:ÿý®j2_Š‘O!²OAþñMÜ=ɺ>P§%AY&5Ççi}IWtûH7±²&߉vz¬PŽrŠºA„õ¶ë‹às¯Á•„?·{fyôeú3¹ˆh=\űoçYÿˆ…oͬSJê>¢#yÌpª5àa¼@ùÆsý§_uÀ[æÅ\Á>{ã)SË.Á#ÍÂϧÖ$Ñ/øÕ8­–˜ÈNH„ÇñÆÃí¡šá3ýq‹Ð—Â"³¹ŸnŠÍéÀÞB&Ãޟ⓯ÓW0UüãCœñCõ½ÈÉÍÀu÷G+µ›³\G=_rr˜CàW6Zr•ú+ä&]K’ó|¦3âi4­ÅØåECðç}Ñïvƒ=ðËß0ŽÙV© ØBýy"ÇKsôÄ4ÆßáÎ0ÇüêˆÓ%")¸á@Q‰ës¯_üŠšþWsÈ­­¡ÙŽHì»ê\Ѫ`YðAæ×ö•yþÛëúŠä–a&üùòÁ<Ö1jSÆ8V;®Â±ô·š3Iä=½[Ê’ÁÆAgh€,¼Ÿy ò˸œ§þqEÉäÒÿª±šÖe_„ÿ4ÕKm¡½ÒRÿqQ-Í*Ë•êZ.­¶6XS‰íÿ´âaæ×ö n-›bB÷ÕÒjÇÔô/©§÷Ò/’„V“üû£È5ž‚ý¨rS›ú‡‘ü#J ÄLzšM%td=à÷oö/‡˜ÞEÄ@ÅH]*jàMD•­©…ëÿŒžÞ{ïNw´´(xÓs¹é“é_R“]“±’ŒøïOˆv1ŽŒùÌŽ{,⣾þ<·:ž y%z­dX­]øµÌìÈZ°Kˆåìþvÿ¨<Ìu(h$Õ …q·?jSØóm‰ñmÿñ{Ÿ]mv¬Ò<üGB¸A´wüJÊ»xûÉtþÛìj™]M¤U%Â_Bï‡øäjßÄøÁ6rfʼn•²ùžÇTsìƒUñá åÜkëj(G9@]©·"ˆÀUªÌ1^GY\OòžÈ¼¹qž®ø÷ÈZÏ5ìÊãáh ˆ8ø®IÎÈ/èèVÓñ\ýѤZp)™J"ßyà( ±°É°È'É&Np¬¤'Wtÿ}àÜèÑ™†¹^«(Æã§“`#ãÉŸ²/˜+‰M÷0s›gèŠtÉ,º©üÇZ>1.ÖòŸ€Þ63ÜêÀgü‚úÁ,œW&9öÃWná:zQ†û¤Y~zó0>¢Fo ª¡òt ô泃_%#ÿØå²b?M>Ê~- ïÒ‘óÏüóé ?P&¦þüVµ³ùžü£)¨Uâ÷C C·ðɧéÉùMoå²^Q–«´D¬V÷Ža÷o_I¶0Åq6ù=óSÿÑ‹} ¿> k?Þõ¡Ìfæ’‚Õ¾T<à?â²m\ô!V57=Nès%Áÿ·á?¢’ÍNýyokAWxè¯ú`í3™hNÀz;oîu’æG†|š|CÆ€Ìgæa•ØŽRÖ^3.usQó&wÄ¥zãëRóÈühd¢û¹û'è•[NôqÆn#Õ¾º´Õï°•L…÷Œïf ò¹Vuê\žƒ§Õâ &„Õ††ª ]ºªQcRßÊSýëÉpƒùêâ¹S­§÷€™ÉsŸ%ç+³£ãókWð7ÙG}æ®c¢T^ÇTµç Ÿ9­Ï²• HTÎÉ_<+-쌧þq‘þ‰÷ŸòΗÿ.~eûVÚ­§^R÷ä?*õµ¬ZòhÔæ…G‹ä<%@9¥¿&‚+ç¨ÂüÚ|Ú-õ5:…zÝG{ú‡óÏ#ÃŒ¤b1p˜üÆ^¡IÔZdâó„BŠ™"€ùçá«ÿ8£ÆÓ†²š«·‡½:Ww±Á•À…žƒ55ç>v»ñvˆÔK¡Oaú‡®þí¥ô…úFQ>t4f)™è)øzLcK1QlØú«T`^áèU_JÆ1WV¨%7’¤Äê7ÇÖ-åY¼‰uuàEÁý®DÕ™N/é¼÷¡ßž·Úhê1ÚsöÃ&¿½°]ù™Ø•^VþØŒkä`Ïç$øqjÐä×5³«µ’dUÃÈ?’‚öúrþF—ôŠÊÁ¯xºnñkðÀ;Dõ'`å÷¢~£X&ÔΖýÕ…z7ÎÇ |˜ãèòrt_ð9åÐ_­×oRÖUÐfìä^ð²XôB±à¬BãÏw(eÉ?Æ’M òe"›ZN”=šú›î ©iÈ%kbá퉑y½ØXF·’]ðþWñ™ÿ1H« _¿zŒš‰Zd“=ña•á.ÚÀÝÄò“Í7¢:oƒl £R…ê’Ñè³fÈBøÿÙ!îË#õøU"عò ¬ÁÎ{ ùGlr˜Ä£©¨Y{mý¯dQú·Oã róY—Ћ­†ÿÈ`”ÓÖ¹¬ØžúÁ^D@Ù½“ˆôÑk Ifv 'Ê,h&)Ž^æôW¨1)KÍý:‘Zùùd±Å #„~ûµ¿_‚+xÂ8 çѾ‘¹ÿDZž¹|Ÿ™ {šõ¦Ñmey8œÊ1®æ°©Ìòb0ÿñ4°þ#&‘ÿKö•/gïôW¹¨¿^E}|²™´–'ùǺ¡ŒdÆÒ~ò˜Ad[¦Ùÿ~‰H1(ÿØ©Î×^À$n6æ·eV#\{Gº0&€5_GÿÅåtŠœnùR™ é<õÌêÖQ°Ó\¿Ê<%é_Ò9˜ÿè¥G OUr¢Ç(r¯8o,6ã9â‡zá5öRQÌ:Kÿvw|æv˜®“d ^TþypÏÞá?T®Ñc”3й 6%..DôÕN2ŠqÑ,ïØc¥b²»‰ní¤UÇjCÿ«kôOìþ†žÁå©N¯nE—ÑÁo‚ßü Nš'\h¹ëùÿÿÝ}¥p°úÁçðÿîüÁOÊiµýwûêu]³ÑÑ9àWÙàχjŸá?ýÑÁV¼àÏû±Çk€`õÒ£ë5èõ„:ÿÄëwÐïæwyÂZ\¿Gÿ¼ÆØ™Vô1Éa|Rºi)°4ÕEJ1ž¾ ôOa-øïûU]«#T¢öÂx‹BðXä¤bXÌ ìDY2îaôß-,n„cÅšúZª"KÚÌ%æžIÆñ=QZìq29„(ìÈÕ3ø[·‘ß¹‡·°¥Î‡X>gÝ02á?ìþíëøÛ-Ë~ð«DÖvÝ[q£°nãŒÿêÏÍŽ±z]áéóC9»^ø¦µD£n Íc°ð‡Ñ說þã:•ÃÅh5Hùâºr<”ÏÅð_kyòâ“Põß_y߆'ÊNä_™³ÞƒM{ ²ÄlQöCòÊQvPGà?΂2L&ßxM&R“ü#à-ë)}þŠj6XÿuhÍ’A¥àJDáÚ’}þòg¬’EßÉÙ}‚…YŒ%Œ2WÿQœ¾–¬;ŒH#lÝQþ ´¬kxngéÆ×íÖ¥v%ÄŠóµ|bÊ!Éü¦sx±W쉣FQPz»â:T9/ð#w¨®èf?d §ùúû\ ôÞµZCQΫtÜἨ ¯ˆmi[ˆÍONÿ«f6p÷iÖWêÞ^ȪfdüGfþÚl…6º8gRD;âr Ûk¯E+ò»+héöÁGc¶ù0zÛv%XNÌ›ýnBÇó óž:˜{ðpé©®ˆÊ$Â%¨›ò¦ðpYo (bØVõ'ûùjl–³ÀþûÃT2sRžÿñžØÜ¿ÊBÿÝþàWa†^Ò©·Y€š— úÁ3J}u/q‰‰T"ÊÆd É?Á¢¸£hZ îO³›*½¹¦?µy­¬(FÂÊå‚ÿH†ÿx̬Vǃ_e#¾™lÜ”vd•ÚìE†‘ÿ±]ðR˜óéXü(Ž”èyw¢>+AOF/r…Üí&ìë"âoAo¿þ¯vÐt¼³+þ"Ê–â‚ñÃ,àÈ O1ϱ†÷ ¶$ݰüéÖU‘>ñåPw1«²›#ÈV¨àó“OsîÂ]j½£ÈEôṎL½“ŸÙݱ—ùƒ‡è ×ZIVÓбÝñÈrst±Qy’ þlx©ä<—q°B…}vnbóÏü/~=Ϭz=h'¨ÿmýnTõ¼ÚIóÓZé¹ôjÖ<¬¸kÅ´fÚüÇkåwªÎÐOÖR/èŸÉ?fwÓ7Žþ%ÕµøÚkêû_Ñž©)‚Ž:ô%\~šQD“£©D¬AÄØ•JŠ/"¶ºBK‹š¨ •~Óè‡7Ô(×e‘Ào6Ò·‡°Ø£çÈ7·`¹*“ÙD4šŠè”Nai 34 œÿ±ÿ×·ÿò“ZúJ}…(‹ EްDÕ—¸5i|9{!dÃZ¥"x¿hÎ=üË2ÿüA&u*øÜú_%çùÜλR±¿jb)6uA€w©œ$^?cl…ÉH¢‡å…ÁøsNÃȦ‘)ÆFO"*ÜA¯ñâðcø×Cä`ùyÎ’Sxˆî¿Å¯¢«iµ|† w߈Žíý(.ò—0?°qÓñx_9Ò[D~‡ñ¥ÛÁù^T×CãäFQ?Ø ¼ÐÎÛÜÉCìnÅùûžç¾ŽáE”¡˜±üåÈO6‘å¦7„HbÔ¢ûÙ¯Wo•RE÷†o£š„ȸÚéõDÙCx.§ÊÚ0³í9WwfLœí‰J¥õVÓ+8–Ï?K®“÷þc¶Vü£Œ‘Šw ÓÓ;²¶ØÖ'²9wÓ£õ¾™Á|DþáAŒÞ™«W¤k*þc¢L‡ÿÙÿêžê+2±ßRñïÏa‰Osn¤«GóŒÜZÆö°úŠâÌœD·Žâò¾ãzȤ2h;\ž—ZDòÉ~0šöè¯âÁwÏ¿JÁüŠt4¿ª3ϼ†Þ¶9NAê'6㑼Xï{ ²¨ì²^?Q^–&^ÙƒÊo Þr?<ùbæ¤bÇ~æë~!rV­gèÏÒ0­cº¶úø÷G bÙÌ¿¨ÿ¨ì¼)”nðç)ðׯ‰Íü¹›)$“yÉÙR—/"ßèJg˜èl»S! KÚÅ•í€Z*šÙœ\î$•^A|ëu&øU.êÏ—dž­L¨Êß7 ùÄüs»C×5T¼)à?v64£¿2dW|vÿöRÄ‚ýÏÞú·S¶ˆŠp ÑJ3±Þ¸oJG*k>,|8•t¿Ú Æ6”þ%SéÔ <Øjiv!vÒdEú'æ“Ãéw« õ¾d—ˆƒt:yßC¿{žþ%ëÍ«tØÅÙ6tøÐ?1•£žU*þût¿9'»Z™e{üÍrP¢¨ªâ€ó þ÷^\ÃÎðIiöo÷/ñWî¨í´ˆzS½üG ÖÜDýy­ÖþüžYAç}[Ù@ç¡’ØÃZô/ÉŒæê<•Ú­aFð:hênл~ÿ*¶Ð¸g§D=T·½Œ"¹[¨Å…y-.bˆ±èyãêÿö`ÿ²[ý¡– ›9Ohëwo‚fÖ·s±šÌÆ[[|h¼pˆÔá¯jR?¸M 2“sAÃæcï¡¿JkWËvXœwرg"5(ÖÙpÔff~í_ÆNê?ba•ö‘}ä¡{–;~nžQ ~;º–süÆXì4ðç¹÷>Ø){ùX›Œ}¯GVµ‹có£þ#k`WApøŠø¸ÙXëÓ¨ 2ÂלÅ37§¯^Гl!^FTckÅÁ—æ¿Ææ.D€ÛpÇŠÙók¿qÎÓQðÐÙüÉî¶\l-¯Šüz†PŽrù‡Ÿ€?Ëæu/R‰£{Ï'43.éõ°ÿ¶°üóP/oá|mþ#¹QŠîý®Çe7KÉGý`K¬ò0¤êøú ðDç#ÿ¨ #Ü‘»Ñk|F!ÞÅÖïnDŸu–(b3ýK‚4ðÿX{¸VDŒ!wާ»QV€…‡+ƒ½lgæ™hfÝfvà9ÐV¦Ý ý ¿Ù5„~Yœë1>Tï6  R€¯ŽÊ±Ägv¸—\F¾ì°´×­HæSY Œhjã¼p!vwÅä3ôD‘€ €EäÞáêÆ9Å‚ý˜i6ÅŒ¡ÿF:øÚ·D»Gew:ÛXâ¡.öå3—‚6~è\ް?üyYŽÊî1Üku5×\³Õ¥±­»P&PcwØ|(š ­}øûºî!Ù!Óš©å5QÏy‡É?£Ñh„"#?W®1kÆËégEÀ_,1GQgñ‚.('˜ÍçAÿÄø‰pSìwù_ƒ {‡ÂËW‚_E¦£Ënø/25=Õȵf25ª"ýK‚d©Žuèd#8£¿ºƒÚ8&5×@‘sUbGÕDS§ÿ¯ö¤þ#^y"¿ã!vóR‘Tã<ïÒápŒ~c2ƒùê™9Ú h™GáÏÝð¿'PéîbµºŽ#Ž˜Ü‘Ú0ûªã4ÞÍ$²;9H2¾W""ìã_âwºç…ý¼¸Éü¨¯ÎuߟÿY\ï|«ò üªªv_+Áü¨ójv—Í¤Ò jôJ`ÆÈŸÕŸ¿Sö“ô'ëÏ£”D÷×2¡¹:Fÿö²0£ÛÑò&pÙ¿AÇú«¤ø®ðe°KåŒþâ¹H©.Ô’I=ÑŸ’=¾¤~ð~èo ñSOê?ê‹"ø[`9s°LùÈIß°íÁÜeq„*8n¸ê?òƒÔ¯y@ð—á£\cÉÌS`3þiä=ò„ ô³JÄü°õ»™Õ&øŒ©ÔÉ%$óö¤?K|Xê&XâMèíøŽ÷âñ(Ì< «þüŽ6[Þ ¦pÌÎ-ÑÛaOå;¨¿2ðy/‰«/Š=$Æoe”F×ù»úDÌÊNÆ? æ%#Ÿ@Õ¦þ#Ìè)XàPY¯¹ _p®Àî/5 ¼m õçÁ2dçÝŒÂ{øKYBп\õB0žLŸò0nQeúëÙÖ{"«íf­( 5úát ÅlVþ†ÿèŸ[ÿ± oÔÜr8]?”\ö<¼û(°6ËÄâó‰eðïÛÈ{èY~Ñïz2ãx:(¬|‰]ƒ¹Üú¡…?oÊ¤í´æ]ô»õÍ-بïàH^DÐAa²S=’?Ëü¨\øTôc̤©Ë m‡¨ÜNOõú:j Òc]O€™¿ ä?¦ÈTxGðÓ»±úÌ C¿ëšôÔýVökixZÄűñ«ZôôÝ~•Üq“ú1dÝÍÆ(ŒSðwéúá3øë(!ø¢*¹Þ*DzdH_ãr:Õìy53󣲡k}O×̯ܳ€ÿ¨G®ÕÿvÅrz3½¼$ª:ïìYôW'ñ”nìŠÂ\¹Fä)Í‹ô-Qé·»œùçõèßžŒ¨3|òebû®ÖTò˜ž¨ã¢š-8—‹ÔŸíÂó(e"¡³ÇÔ_”&ãIŒÞù9}Pæ£ ^€Òl< ºBÿÝ㨌—2{<“µ¦Îƒ#´§èGÕÌé?f©ƒõHF,8¼ñÔ"ž&ú?kæ ±“fó2çý¡µeq Ö4­ix€ÎVô»íÐïÆ ³KQT€ñ}œ»ðxXgÑ£·ÆÚ%@ <ÃÒ̉œ[Cø±äçI§è¯UʼfDÓUŒþWø•àŠÛóÔé-þ¬BÂy¹ÿ¿^«Ú ¾È“>ɰ‚«9×”0ÐîXÐ5F%˜O#¹ô&þ_I,ýUÑ0¼ðum «Ît+ WêÚs"¡Lðú ~S“ÉrMé˜쩎ÙÐ\ƒJÀqzQñö ýg„¸/þê}rÔúœÛXüÂ]"ýׯYªêò›—åY"údTg_³ÂWÔ âp¶¢ðç;aЇËlhr„è_ÒUû.º±+ΣÛ!Û€_%B/5Õl ámµÒS?x‹î±È#º™Þ°ñiAœÃV,€Ïa|Ö]ë?–ˆô²ñ‰­1›~õþc,ÃIúÉ'p¬ÄD >e#ëÂÛ-[íÆuÝI¾ukžAžÕœ7ã¶2PÝ€ÿhÄžªNe|sPÄDä í¬o b^ð Í镎.óíè0ÿþ¢ˆµnªÚfìÏ:ŒV1hŠò”2‘û'n7nȤF?8¢ÔhÄp”aS|:_ErtCµûÕJAVø&)!óÀ]µ#n¨.wÂmµÏÞêÏ££œÍÈóù,¼|c¦uü «_“JÆðG¯ÁÀòÐÅaÙüÇüú2‡6 ]ЬFëbr Jžðiµ+¸|EÐß–h]„ÑýÕp+J³]¨Ä¦ÓK«§c½#¶#>ª,ó?^RûRͬÃü¨ÞàÀ»‰Ãb ,õ?Á¯Ž+1Õç?ODùª U“‡Ø¹Î ã…Ÿr’þxÏñîúqµ5«,QÜÐïÕ&Á¨ê½0ÞïúÏǔԷ"šÏBŸ½,zl0‚Ûê}2Ó – ßM¡Ytœ1ÅSîÏvz˜Î±+¨ÑÞÅT=5 4ãŒþüÃË ŸGZ¢>W ‹WxŠ#Ý0¢Êв§=ö|(uŒÓÀÃíåa*:»Öo/êÈÖlÂß¿ÿñUѵä :3äé“Ùû7§8ã…ò¶v9~$é…¢é6¶Ö“ d6×xŸ¨¥‡6«¸­:L·³¢·ø³ª WÏðÚˆŒ¿7ÎÀ¾ Ð?cûÛaG§€_-Çûeä ~á9 b.ƒ®ÛôW'aóß½A«òà!ãÑFƒ•O$®î‡xf´D!µƒjíø2¹\h,&ñÀ/m3ÆêI韸P«~Užˆs)M~"éœS~lz7³:üyc* ™»e)³"øUmbæ¿ðL°Ï­etòé!îË#õ=lj’ç @¹pKýÎ8ªSÐÜX?ÃjM<ý‘jîÂ&³MñGä=ŽuýP ° Êió\Vl£ÙúÝ#øßTüVg8·¸ô[Zhv!ÿX²)’ã øÕ8ªKš£àÝI7”¨ôÉ:‹Gž-“§¦OfÐÕS”¢z¼=\œøÆ9˜~Z½Ì (o¿b¡ Z¯±|gP ¸Ó1d»¬‚GnJn· Œ1õƒÒê_rO) ÿ äñ ùŸ]ÿd2ÝêªÙÖúŽöysl«ÃS$£ÊqTàüó1Dþ;©ì쀵ÿF¾ÅÁ`ùÇru€&¹§—ñõ2954™©&oÅs¸ÃM˜x’pÝs๓’žâU²†h¹[à‘ÜØ‘­™ÔÀùìõU'é:,xðÍ\rµ8gÜcâlòŒ¬p†úÁo`WIè `ŽAg<Ҋ˧U5›±ÉÌʃ7%©´ýyý΃_u&²@þ‘´àƒYÙ±Œ Qñ•½¬!LéÏüóÈŽ8Ž~t‚÷³®³{Túwe¨;󦪗郲½øÝÜŸŸóŸøz‰þ%Oœ j{5™Ë¾pþS˜/ê)ú—\c~mý``ýÇv¥4ªÛrÌ?÷§GãŸñçºz]Oú£ëD±aùmÝq QMý]WM¦%ÆOŽå Å¥oÉ;ºÆ4Á3}&óxϺƒAÜžÖÛœ¹UÏÁB¯$g,*~5”þí=ð^« ,ÔxV7,‹Z &{ëCõg0 ÍdIôÂËY«7ŸyM¼¥Î·¥óÉ º=žJcôâ½°Ê}É3ò ¶Zr£yÕ,zOxMV%ZÞ'‰Ct¿Ø}(àFØ ÊÔ=CÿXs´Æ Z2¢ï0ɇ°¬_ðÁÞàWá£Ëcjc©²˜û˜ö×€ù͸zYÁJ<à :ÉÄFOájíå¡úE¤bÇB·àCÆe¢‹µ²½vé‘H•YTºgì¶¾á?ªšš¹˜l¡ý –j‹ÿˆg”Ò\3ÔD0P;ð»¥ðÞ­á_˜cáNþ±Õò²R;îS8μ-‡‚°—ŹªËè°²‡ìì¨oÑÞe/öµ¹jçÈÊË’<1®á?†ÃìGæ˜ÿˆH~´ŽõÆÀ|/ƒ¥èMâ vv kžþ¼µófø+SÉ?`ÝX§ ™©;ñJ2¦Ný 6äFïIæa0ç© õç]¬Þèo'¡ÃZ…ú +L“j6i¼Á³²Ã¹Þ:u§¦’5îãéz-ãMñá3ð)Ué¿›ŸÿÊÛ­–ÖÿÓŸ†ÃuW±žãû‡fþMFÜÔ¥ûXu†þœ”ÄŽÁdwWƦ6à ¼ª–‡‰†Cð¿ é¤Xy%ãé”ÙÛªAÏÇŠfsrã»ìóo²Üƹ ï¨Íõž Øc‰XRá[˜6ê*¾R€„µqx2ý#!ýVŠ0ÿü>&1Q±Edç›?ÏPXìsžñïÅ[%£úÙùq_•Æÿ¶~7&ú«öÚe­¶žY¿¡Úsíî€_•×Úk˜?øE –ã<%¾z<¡Ñ|:XÏrús-:S¨^Â3 ¿ò×L-4N5èý!_èwÙ‡ç„ÏL^cX,ŠªAS Q?XBØó¤LýGÈ7…úý!Õ 7Å#Pÿ£ø‰ÑàNè¥2Õü+ÿEF 4†éç¯ôá®àúâè¯6‹ªà÷‹àÂìùQW°©QÐí*rYü;âæÛ")žn’xíò̺®óïò¨ P†,§‰ ¿½¤*7ØZ PúµXŠ+Tú%%’¶U‹±§ñu›§úWvk#É?zcý¶’1{:U£81ð¢fþãÖù1]téƒÏ!jþv~mdúïÆŸ›Ì3”/ôƒ.–mÈÙ¾ämlíxxºrÍøa׎³îrŽó¸(ªG å(‡ªóõ† gAÀñû§ùšøO\¿«úU]Å2÷#ÿ°×YÄ9D¡*à™ž‡óÉ :óJ=ýªŽÍ€5O ÷äÉÞνNV0d-¹Œ~ó0lFL®ì|¬ÇŽu-ýh!ÑÙIZg1bzà·ð<×QÀùROQÑôpJJ/¨CL…x ~•ÞœL6S\¾A9ìÎXV¨‘6ËeÅ‘äÞ]°ö—Á›ÖËøÄdäsÍÙä «™•Œúó»t¿%7˜ƒ©ÿ(ÿ¼ŽäÜü pÂd!øNô/)Nþqн1HÞ23ÿ|¾Ù‡î\½àÍ·òç­µæ}9ÒüFÎÔ?TnhWj³¨¼)*:oÆ ¥jO†­‡ÈOÒü#‡ùƒúÁ(ÖßÔ,€‘¶û·ûPáÝ…¯“è0µn¦žÚÿˆŒw¬šný¯Þ)áÁçe~bØhÀ†RÏÝyñPq}kòfz*T8JªL²Q?¨ããìþ%óé¦Ý*>F¨û“á'ä‰È)· )ïšUuðnV,«-L¶šÀ¬Žþ|·[¿Õñ *ç+SÓû4A%kÙK„ùó„/¨=À¯Š’!£—Wñ3kÒO>?=VÁò·£ÿû\Ç.G2&H†Iy…ö¬úݲôO¼ |:ÙaÛp©u~~æÿÕ× ô¿ ê¿«ªÍÕ¬.û,üŸ‘þ‰õá?*è%ôëª]—v’þí5­?Óž¾ñÝŸüy§\!ÿèJçŒüX­JúC­š«;Ôiö'²|¨üaÿ’¨Bà­Oˆ‚ ´ùÀwnˆTêH-)èX<ñM_®S÷ ×TÔJBƒ×¾ˆ¯X€Ý/Mý ŠòÈ‹û¿ [Vˆ8bœÈFÿ’ðøÌÚúR}®( iþÓó(|C0ä„r(öŒ9´àöñ¨["^†yoj˜ö©B'©-Wð®´øÕxüE "Çøcè“vóI© +ÌþWžÚpòŽDâ{™OòšŒ0/qka4; ‰pu9‹þ‰—À޲àK®b#»ŠVêÎß\Ç´jz-!øÒDX™Œ°ð‘è¬Ü„s½OÏ©O`jSáq#¢{‰ÿØÇ‘î#óGÉ_1Tÿ1„þ% 0aÆ‹“}<ƒy* ÷ã –îiÜfþ¹?¹BPù9Ä `ð=—¹Ïå‚uÎ:ЙJmòžX­ÑÄÏ•Á¨Vc%§yðm‰Cû ?rÇÂÅzK™R.ƒÙJôà EÿÄWAK¾¡5ãlí9œÉE`1WÍXpßU©ÇÞIÞŒë¾ë>V°¸±[¸Z{Ey£>é8Ã,à†WÉ?v£2ÛI¯ª¼Øöýf.&wÏG©óƒõ³ƒ_ÍÀÇe#×9£´HÉ™?èou¿ÆTÛ£ä ˆ,c‹±ÎUÑïÖwY¯“(ÒcÏ䬌gð3v“·l¥þãý³üàòQ;űܼÿ‘†ú»Ê¿6Gw–«“ËÌ.o7ç¼@»ÞˆÈõ~7zj—þ#€>%I© _†¾ØWŒ¢+³Ëþ kÉx"s„‹jXšzô\±«¢s¿²ˆ(b)øU¢pÖ‚ÿ¨âáú+wc*Ö5Ÿlžh$ÖãOì.â9ø:Ld€AOþQœóYOýùbdÐð˜»Ô($¡T Ù‡üøþè–H ‹¾S< 󜣩˜äWßDB2ïµXûà£nDJ+°^>x$ðçe±§;`!"èvοúsL›EvÑŽß®àþ,ìé¿Ý©!YÎóŸ «gëÏq%ìŠícø™¢¢‰ú;ÔΠbž¡ÑTÙÆãÎZàrmÀü^€\]Uìv­ÂL?&Ï?ƒ~˜ŠÊ³ð¹Cí_Ò‰)pýÉ;`ÆË`Å÷‚ʇÝ÷#Ãid¤JÈûÔîz2(ÓF>'>ŸÍ(6î×3ö¤ÉEôW¨EIÎI®¤»\þ£>Ñrj%ÝQ_í¯O·°Ne ›7Ÿ;RøKýÇ<­©˜ÊNKË1Ü ô½¹N…À”ÜáÏ€_2A¸©Ö¨A4> Ÿ—-ROøî2Ùëð÷åúyˆ+–IÅüj‡fRs3ý¯r[1‰xO’ÜDͤ›ö$®BtD<¿[,ËáUSjÛ\Vì­™ä‘[È €ÉÙ3û’ ÿ‘­ÐvzÓ>¶>£¿ºˆ¿kMø†è‹×0ÿüüÇQüÿkÝ•ÿ˜,*/âzTÆÝ4ÎÈEtßÁ„“¾T,,²ˆ–©¯XÛ?€j¦‚õᓯ ¿JŽ~÷¬ðpÞ”'ÔxƒjÖÃSåô±È´^R3Ô,ªÇ3÷é*=#Ï€:õ£®°'‘þ^r­>d[qÍvÜ©+ÆÚ`ÚÇíêRøìx·é†ŸL€ŽMN5þMȈ¾Ã¿K:‹$zÐÆïþýÕWmKÎz«Y› Œ¶1C=q Ëz RI›yq„^QßÊü*7,æ"Ð+Ož›]Ä!™AÌ%ñEAb°jì8Da[„êÜÃÁ(øk¡¶ÃZLeFÙ…×ÉI÷¬†XÏðügˆVRQEXÔe({/R˜ú«›Ú8åvØè}°1_³àÈ^â…ÅâŇGö'³û'¾& ªÛñ·ýwS«RË1Ÿ›;>¾%(Ês£;>3‡1”(÷<ý|èrªÀÈB¡Îÿè¯nÑmæ%üGHþü>ó?2À­¥…ÏM¬}˜ÝwÌ)õ×̼V"¦lŸµ ð¡¼f4sŸX?s7_–ûÌ ­q>åövÑ¢råW³{ “U Á®%¢²bžYÿs›•ÀñûÚ—ÕÛSýv+’Ïi¢§š#/Ó~Ð]çG-…ÀK÷€½Öå,îçÏ¡K}Oêëš?°¬ÁDtìgþù:NáGÈV\Ïsd\Éð—E[ç| ԇȾØU!öu²¸Èæ5Óž;˜cHÿÄS°(G`FSW8„j‹5xß>h«“™½`j£” ªBòQ‡kv„¾Ü˜ièf2²™ê(›:À—7F¿ëo.¤~p ý'-G2ëž¹—>V•@‡)x‚ÁÒœ3*ˆ¦¢‘óÙ›€Þö-+’pÿ£ÊÞâ½aXE©í›Š.,—u|mž¤>ŠêÈÖ0xšfV^V€ÿPȳ+Òo$±ŒÿØKý`O‘µH'ú‘<ɬªŽ5ÖWlÍ>¨”«¢¿:ïÈ¢X‘Žú_¬cp¾2*ùGGöô&㑈‚ÿ(®n{΋üôâ±’:˜âê+ÊëL.û,üóMy®–Ñbè5ôæú}æ*Ê1¥•ÖBk¢Q½Cþñ»®¡‚]ÿñRtCáRŒkšW¿†: ~5At¤^âªAû³9WÙDУ¢>χ1_¼¹Õ}ZLöf>_,’ú‡Ð%ÄO·©ßÔ¿Å+ÛûäÓÉŠ0ß-Å ìÖyt6ù±U˘?Y¬ ñÞо͡¯Ñ‰üà/Kˆa­/‡¤’±Ìˆ7?b…À‡gÕPœ{8´•ìŸÅSûPC7‘~^ ˆïvÁºÛüQò¤ÙðG‰é“É‹d4áRß´¢aÜíóš]ã]Kº Ä郆wj ~{Œ:„t½X‚ÖöYWBð«mœ÷ߢ—„¸eR5’–†'nÇ”ÔÖ]á?°Úsc.ü@£ V*2«Üá'v\ć*Q8TeÜ u¢Þž³ø_6ê"¬S1üÇ5®d=cÞCÿ@„Þ–,vr½el%¸ŠÏR¾ßz¥)õƒíX̓îµeÀ@æqD=È?†{·@Ûǫ́;}k›€êŠU°_›ÀÓíc¡'ûÅLÖªPýŠò MÐlÐK|°Üòyæ‰CYÓK•Â<Œ%«l®‚ùµÕFÏÈCîð_iÊýKîÒ¿=6¹mVô\Ÿd$óLÿ9”¯)Ðp]#ZNKò;Vtˆ|,b¬ÂîèYþ’¼U2cÞ+ÿ ÚC‰Ë‹ißÑï¶£¢;»k…ÒX«Y¬Ií¥r+èWÃñê¡rþc¶¾$>Öƒþ‰ù´MÌ?Ÿ+èžô/‰¢%rÙ¿a-™KÄ—Ó¨?¯‰}nËüs_QH=Šþª°ñ“=E4#¹®„kÅUðçMà?îbAêÀ*øñL7¥¯$®`oÎa'ròdŽcU+\ùG ÎgÖŸ€^ÙH}y„ )#øÕtOYùeâæD05‘$TgbµfweÃîÂë¡¶±‘×*âçËØÑxò<þcœrzò°ô»>ÚH®X'<Ù.x »Iq°¬äõ«±ö)å\¬µ7V>;°Á¤š1—îÈonF5š–þc¹FB¬~$"§–°£ ˜¾‚a XA |ÞC2¯;04ûð§·¨Ç-¤eÈAKO`~m{â݈CuŽÀ¯Q›ÝÅç0êê¸K{¼Ülþm=G‡ùa&YJPçº Õæ+é¿ÛÛˆŒõ€f‹:Bð«þp[½È:c‘?¢žzâr€°<¨Äæs| ð_{Yzí~ÐR¯–kÄXpÈôàûe],jW~·¸ôƒ¨DgŠ6ÖSæœìß~t,ž,¯1 fc.f¹Xb/¾VŸP^ ´NjL²q»KôZÏnúÈ]XäÔX¬;Vløó¿ÁÅæ€6•&[¸Í}Z~UŽþW®þ£·…lñw¯ 9Jw¼c4ð’-æ &ý-£ÿF:Ç'ë=hÑ%ÙÓì„ ·ɇO¾Œæö2ëÅM]Žpü‡­Tò‚]  Ò8Jgá] ÿïøš”h:ø•âXm~f.z ª5† hÆ¿Äcf1sK?QÛyï*-Õ¥ø.äøUy*ù¨ üLÏbiõÄ÷âÞaBÇaüGO8‚þ°[Y«ž: ,HBvÏÎ`ÖtóìÕ½DhOä,ANs4^(¢£½uÐŒ ÃÁ1õZdGjô¼gÈ?zã_²/ÛÂï·ä)j$zë¿;K©[¨1R“¥%ÅE#'½àëâ?Z0-§?ð5»â°31àWÚÀÌ×bö{³ ŒŠ% ò<æçX&:ýÇvµ>h¹õ»ñ©~gÎfþ`js3ùÇzԻݬŽyðç‰-¨|e½C»[‰¬+ ú~ƒ'ú XCzé.¶:¯àïÅMð« ŠÁ—Ê54­}xŽÇÁ|òrÚ{­ýÏ«ÕØ]k©?¯¯UÐf£ß øÃþ»Ï•ÕÌhéÊSW;×^«·€3¿§¯=ôíú-®f¸ìß°Ž0=øÕPð«zDÓC©¯Ó ýUb›ÌÔiŒád¸VôQ¿ªµ… Å?awð. _û^gÉéE Ü‘¸1逵=¬ÃâßËQ?¸Tå"húZ"åï "¶Ý±¹¶á|ýûù”X' ˜î“00ž:˜ß\Äù%Âê€Q.L|ÒŒg<õçשAHÈó_{º"@+ÆŠ¯µDºÝ±¾gxZ ,jnXrô–<ÿ5É&ÁŸŸáØí~ÁðÌMDiõÜoÎ:ªš\+ª<…#Ì"öƒ©]îøœÆXì×߯,†(rŸñEÖ1ŽpWã½ +„Z?è¡ÎÁ\‡=™Âw R\µ*—ùô×ðÒ#`[ûR¹0 ¦{9w= ùNt|~/ç“t žJNøó<á£Aæò‚3LÁ Ížßî8ñí¼^¼Ê;²‹+8 ¼\'Šæ´Tà«yZC1™ãÊLtPVE…Ú ÿQŠþ콘_»Ñ¬o]63šçe+ºamÄg%Aát‚ˆüžªÕ§cBÜ_õ¥HƱg€ÿЩ¼ïty±ðGÌ”¨E'Ð7ö=½±ÊÒ]q6Y?`§7pŸò•ÔÖ»¬ØOSÉO’;#jo•NϼŽæBYÍÏÀüÃÏêeÞ VobžÁf@‘#ž #a÷Otÿ±N¸*üÚ ÿG õˆZBóÕª0?êr ÿ8FýGs­¦æ©½F¿{/üKñ›†êÅŒzÛ”ÅÏ·ÖcéM´ìÚm}¾è¥ïÖ×1 =4Mçï?"#á bÙ†°Á@—nˆ(ªj T,¿ŠmˆpÖŸ¯£þ£žPˆ‚…,&oÈ,=°…u… Á-0­ä #áÏã«aúý‘F5[”›I<» ná$u°¤±äôß©Ö~‹ö¦=ះyorªMa§ÇØêBðའô†É´w\ÁßeÂT‚W˜ÎðI «ûM­'1~;ªÅw㈾Ü.ÝQ*ÓJ‰/¡þûÇžoçe46* ·ßòéÕ¿´<ä#¹£‰É?¾Š;øóV `ÃÀš#dq<Ò.,ãgú2í ÌÇÖPß[>ÔÉô3Ôµz#ð8_|[Mªzî#÷³X£•¡‹kôO\ƒåÏʳêÉùÃóÿ(‹Rî×»±C©ÄüÁ>|òpìÖ_(r¦ÃANº‚^uµ‰/ÑHL„»ß6Ÿ+â é¤ÿÇÚcÑxä>fé³»úrö5è¿ÛÞ,ÅdÒ¶ð¬iQî–eŠÔ2Tb‰Éiö⩞E—áþ…Ô_=Sï¢ßµõ\‹Ègžâeß§¨ÙH‡†kµtÙ¨ÿ8AU™]“ÉÍ”ç·öP#2þ#µQH[ä²wº¢¿jËÕ; ~µ K·kÌAfФéà÷IPûDpŒ2·ÃŸ7€ÿ¨ŒÿXDþu&Èîå§×rYoŠ(Æ'žf/”‘ƒåKð«)°ñÍÉWZšÓX+â?b:æ‚Õõ Zþ$ú«a|êò¹[`N å¶`þã¤2ÿ‘šKÏ_Xî\¾(¦Tk$úÝ)èœî€Ù]EáÔ•‰Vä#kÈcú¢–Ši6CÃwžÓÇy“'«ë´è`ŽÛ‰Õ_ÈL0!r ]¦­Ô¯O²¾Àžï…?ÿF7ÆðƒAǼðxk7b…*¢I°úóÑê8=‚ªƒ §’‡élámfu”ë‹BÌ‹ a­Ù‘ ƒ«ÁO«€ ¦7íêEV‡ÿHCÎTÿq‰y†CE)žÈfäåQÐ_uÌ…?ßh*0*£È‡ú9ŽSý‰ú æÅÀúÁTø?!» )ÜK• þÈû?éu—ùQšs'|Ušþa_)çMR¢Ñ¿¤*ýÛ+èEàÏí¸v‹RI«¦¹iCȔߡA+•€ZX~Øv£¾MÏÊ‘+ÔŸ÷™X¥ÅÑâ;:øû~÷:H,{—ÔÁÖµe>øUFBÛæˆæb¡Hb|Ö>þîÍ.?ßGòæB•ñDe±Ê—°ÈÍ Aø ʨ=øG×Ïz ±Þå¡S\Ÿ§/Åa2Ç ‘Úƒ®ÿšÖÔ<ßðG Á€c7Á×Sõ>ÌsN§v†[Fþ‘>s;¾Çî¿[—(OÃI0û\°’刚їßµ°ê?Nk=Èl”Éá™MFC†Eÿ«YDö&µä‰Ô_‚³Ñs?ÓA4V§:‹@ç—è`Sùä8‘êל ðŽÑ4°®Ñ­¤Ý{bœÒV[ KCÇyò mA×p¬º\Äõ÷%³¨ÈF5F“þÜ®ñÝÌüÚOø¸–L‰¥Ÿ˜ü꽨ÀŒ’ U~¾Ú¬Ô¢‹LoðìaXñtýËòD!‹«¸ ÜzX»Ý0 9ñ%Û¸SKÉ¡ö¢yè®ÇÒþ\èŸ_§iÅÁúìα;`LŠË'`›Þ ’èx•d» S€Š‚_U0ë ßm‰º8ÈXK,ê@øñ¡Ì¯}ÇmŠúzü¹/Z¢7†7]¡R“G à­õ…x¾¼üPððbøª£0ÊsdYvDAm¹ËÞé©©ÜÕ\çRàR ð_™Ì L ,Nÿ¬Éx¢Èô øÝÔÚõ„ç/ƒVb…üÀ¹L¡*#=„~w²°'‚‡*…ÿ½bœ§š óîÓÀáiå„»ðcÚøIð°·xÌÁÿÔ_m'ÿHk¦•û‚õ¿:Çüµ†‰ná%1Ï+pÄèª^àsÓS·žúAwôW)-{úbôNheâÙp¶̶ØÒ[ C+wd%&¾ÀdÃUÍlD?šy–W?àQðj¯¼Xí#|÷¦”Œµ  šz ~5kË­DEÁëϧªãõODh9ÈéQ‹$t(ŠÿÁ;ó“í “É,«0–ÿ 3Pòâ²Ó¿½©Ù˜<á öì6ïXfÔrîÂËè{P>™ø+5þ#­UÄ1ÿ±mrªQæÃ§? bqòfjÇšÿ&¤ L9‚'iñaBžÄœÿ“úÁ§JR5Šsg½RZ¨1ß9o@¸^DR/©uµ»ZU½¦î§Va•½J­ùÇR¦=}VþL¿ûYñ%ÿèKþQؘþWí°zH}¤¾Iß§ÅÖ‡6ý<ôœðÉ}Á¯êÀÍö¬ÿH¬öÓ"a <-’áä?6Ð?±ø†•?H<¸ëW˜üCÐ#g?1ô¸ïBÄÔ è¾› XžŸÇñë×"T*,™±ÒãÐâm¿ºÎ:©°Wï±Ç)É?ò‚pFƒÉX(‡yoâª#‰³ç‚Ç% ^^‡Æ*1U×u°„KÁ’¯âE’ñtå§^‚ÊO+ÆŠÛµ1(”›Âì Î!ZSQÒ…¨Úîßž Ôcÿz‘ÿR‚·­¨-j¨=ÉÀŸÄQ3i9Ñ0ÎÄÃÆÄùS?Ø¿ñÈE¤YÕèbÈd4ˆc7áûp=é jþ1†.½ÈST9þãþ·1¸JðÇè\‡S%t‡è±+–o+y¢mHÄ“ûÿT¹t «©ÿð&ÿðGÖ3ÓåRøø¹DÓ£d}l{Aް&™Ä Î< ±¬}ý–¢¿Ù‰'¬Çü¿š…~wñEaUñ?ÉÎ úËfN˜Öôù.l¾ [pCãÔ{_œ êÑäd1"Wk¯(ÌÞDãQ…¸b#=´ Ó,ä?RšÞòµtÉé’¡8â€f¦íΠ4¿w =ð,üG!£º¶ÖåNwÑb¥¬çº•%jÁuÏN½ß8Ó]ÿØ@ÿöotNþЇ,‡£K—üfÞ¡0õ-]Ö~·4Ñ)α/1ÏUtº+ÍÞà] Í”Ž­è’¾Ò¿d?õ Ý霻¬h<ûóþaþqO¹Áüóت4`¡¸JM¸³(•ÜõàW"œÝF~ßK=ŠLýÇß<ïMÑ·¾I©tðd}Ô…." É_Ä´ˆ(/c·ÆÒç“m™&STEtÒÆˆì†¡¿Ê(výüøñµ¼>CßÀîyƒöj½±4ç&¼J2b/]öyCqWXTkì~.Ïlh‹¾Pè9>ç+bƒjï æNŠ‚©>ø?Óðäì] ²r0Óóá?âêöœÈõÇS›Èñ0­3ŸHE1ìN:lÎ,³CŽñ9‰½Ï‚}]G¼]“þ‰ç³`5þ#)YQn4cx? ¿j ƒ1€Š³"x‘ÖðÖ»¹ÏúfÖ[jvŒŽËANÐÒí©ùÌiŒêê,qj.|ígrˆæÔLÓ¿ñôw"Н´‚,)%ý¶>ˆÚ CA«ü|µLi {añ5¸ü¹dVñ¤'Qöhô»C±cu`R`Ë®1Ùó?²¬ä~õ$ŸÛ`LÑÔ³'Ñ¿ÄÖP‹€Fµ*Q€;üG^ø‰¡ô-9Œõ:uâ—Á¯jà?šRÿ]†Ì¦=øÕ@™†&¤þÊÖï¦"®ÈÊñøð<›è¿›”îY»¨¨ˆÊ®8¢™OÉâ˜ãõWwA¯¶` q&y´=.wº/ý[ƒ–^å˜v¿Ä¿mn·< -Rd&PèŽ1æ{ð¶6æ1PœìxÎWðÉôO!†Ž‚?ï/ ÂÙÛýÛKQqrnf •~}8·šÌæ;@ýàSj 6£7LÅ÷&ª‡ÀÕÈæŽÂѤ?+ªÿ¼Ê¥­:O^K>À¿#CMR÷Æì;Ý›ú±p'Ð lÀBçç]ÐïNåʶ&ƒ‹À$•ŒõÁrÿÝê2í3Lâfêç2.û¬¢Y‰ªð÷ð(ËЯ¥Û×BÔÏQéß~Œüc9ùBëŒ!ˆ>ÖÈêò¬QU´UœüÇLu:üùú‘Mkí.¶Éf Gs² ¡¿¹‰iï[™u5€)‰›`{6ÂV‡ñncÄ„W+MÖÜ·¿s>¦I?ô»ãx~ü©pÝaÕqL³’€_F]v…ÚøÎŽ[è©K;‚×Xá~òÂðG&“Wàö¨]C¿Wå‚_]¢Ivý)wî/—}漩a¾ø®œQËkgµÊzø;:9¡ÔÖr£Àš¢}ÿ¸æ ÁÁT2ÿ£%Ö868yAý¾–‹ Z_üGEæœfÅdtœÏô¯Dó›ïRQô-·è¿; |v50S ?‹¡F¹Á鯽à?þoA#NÀsÇg“-‰‹}øÝX©(ü¼Ÿˆ(T±å×·ÿò“âèwç“!|ÃJ{âÝL¢®~ø_p˜®Ä@É¿nQ¯bÐ÷ïJ˜çI퉧YËïgÄ"-42£Õ¿‰×\@v\ Îfñú.üÇ b1˜]XÝ6k#á³=xRö`M}ñèy8ª ÔN”•P²NoóAÅ“Qpìõ¢®ú»9é¿› }€3JÃÓò•©]îx#*8°¯åqD¤þã¶cWr)ŒýzŽTµ~p’ºGBxn¦¨ÕüG~˜ù¯ämSŒíú6ý hKo0±Xúyè…#ÓUï‹(L9t3<ñ§ÅüõH¢ñÌÄsó9›aðO3ðõñB1Ñ=Áâ헊Ó;—¿Ýñ"ËÔŸ‡Ô_ÍÖ‰QÄÑÀUÉ xŸÖäJ¥ñ@m©_gv´ö‘\ašm[llð‡¿X»-þiý$19ÄP߈4øÉ ð~t&yŠªa¶>õç[ˆÅ-bß[–?ÕåLiŽÃ)Û¿žŒ¦»të–Öv»¬ØWû+¶Øà/²´ÎpF ¨>_l¶ Õ",s*Ç!úy´¢—ÖôWûY/=hà üÇh¢F¢ýÛŠ¼œÁq•êø¬{õƒÓàÏÒ7žchÎ f€{âïfƒ¾xó‰CÁ¹Vó»ùD»{ çÍØ© T ón$™üÇZ­ÉEJQ3Ó>¡=Â-<2£ÐÁª1úÝä#}Ðï>Ç ÚUè5ðýOQè/w®·NÝ ù£ ÛÎ{ÂÕ]ÇL’Ö>º–Ô´f˜ûÈ „c2ùG‡ŸyÃ|m] Ê;«u ÖÞƒÚüôDaUD¿`üÇ ôW¨LiŒ‚Í;,æÉfEGGª‹Q?èÇü¨„øVOº£L6ÝX¯(5ÅÌîF$¼aMzåå’ËÉ1à µ ú«‚àµ=ؿҘ~·!šßeàœÙ¬ÇÖD«‡ã‚ã*9N{&ë~%‹ËN¥èßðà?–1•ù‡ þãÀÏÿ‹_/(ù‚õß}Ëä–ðu¡ýõ¿)[ÔFÚm­žSß¡Vd·Pšk‰é_2^{ª>ýCý®CõÖ¯±Ãݰr^"—þA‹©]W_£“v#^¿…ÿkr^ˆ#Oðü«ˆóG¡™^s[F¥Å7’Ëõãú2ñH$gýù.ÕÔÚ‰°ãðГÀTSËÚàùýÄ#ì–18N+‘V|Ô‡ä?¶’úTen¨¹fð½»^}ºëŸÉôß]H¾`3E^Ør[u5—?ú«ŠLÅnǤmPqØä¦ð©y«É5í…Ç-‹Ò32dýà+ð«¢àr‰±hÏéõtO·Ë›FaSêâ2ã¦å‡‡ûÛü†×L cóˆèþ×6Ø`nÍÛeï´Ö>Šv6vÎÎq2©?_†îÌLªipÉÉ?SÝ‹®Xƒ¹ŽùaH¦£èòâóÏã¯ãÓg ø·9É'ÃÙøÕ{ã¦\È”¬nài5á?Vëø0ÖËÌŠ?ŠCýGüGMò…5äHiÍ‚øÂÎå>(ýÕU<eQbÛó?ÚàÅË™7QÜêV XþQôß½ç3¼cç¾Ýìm”ÀmPˆ}áný@K±Tlr®·ý•]ÿ±„ìû•Le´¢6¥ìyGIæÕÆDkxÿ)ùVdêý­{Xg7ë4‘\gôWnò´QVÔíùÇPµ£þÀîXAOvn²‰åNþ1ï‘ÎRèÎÕl&.GwkÙz@µÆr2‡æF"üG2—|rúÏ< ¶%ÿ(Èsåvñ@d¶ú8&ò;Ð…íéÀüóãLéD¿áò޽hÒšÍéÕÕÐyJn‰¨ôß-.µçÏÏü¿úzŸü#h²“ŸÒóßî•€þ»5´§Z{=¹¾UµëÒÒÿ*¥VWÅüïJP=hxŽ=±ú@G´Û„ücÈ«ßFqõL½¯· ˜µVû¬j><ë9ÄkÔ”;„=¥ÞOÌGEYuf÷@[HÿÝ)â²p„³ÿÕq5†ÖF¼ÁrmÀ# ’O Q›6\çùÞ‚ Ke”ÄÄOõ =üûcÌJýÇZüÇ|Ñf¢‰;Äpà¯ñ(Ýñv·Ó·" G:UÜsyfC[³œÚÆc¢0ØÙ…a$ò“=¥çìD¬]Yy ½itéêì(Þ/’qK‹Ɗ׵EDöÍaòíúó/¢ Qb9»/xY¬Îdro¬wf2oõ’ôß]Úñ³Ôjn­Ÿ? –âÿwðU\]×9sÎ îPÜ݃w)îÜK‹»µ¸»»;Á]Š‚» Ü‚‡ïyn„PB¿·ïS~-—”œœ™9³e­µ÷ŽÃÛ"ˆÄš‘k¢“ $VŸöq ćìnˆÙiª+…ÉLõ×w˜£ø[ïA%Ê£{;CþQ˜ë àž ¤ÿî3–yøÃBîêtâ†è0AD8š¯7xTk>‘yr£À¼\S·§Â6 Y ª4›‹xø.Þ`#>.6žy6þ~~n–U›Ù˜¡kOwLCO“|'6(€,é2ˆÌkêÏ«_uÂdBÛ ÿ±ä%½,AþÑŸŽ#ƒdQüÿâPÏ%šq‰x· ÷yýPn¿<´vÉD``Ñ¥µ_Ã"_²¯ÉçtDyOd\ú—\&WòeN¤'9¨§±5ÄŠƒŒxà~ÛÐ'ädÂTsžäOdE µ/àW[íDt˸iÿ¦"èÎpôåá|æ‘ùìÁ¢ž¿Š!¼B¬×Y¤3ÛàŠM@à^X‡ä|¼d2—ÚTL¯d~íQW__üÝfzïG8Ö~ØÙ~:¦»‚é¯niƒôqä©UA{²Â¶²³Êu4È…–ÃïWaNG:Vu¢¾Ûü©¥}_Ù¶ûÿµ‰À¦ã÷èëð åb’™Žg2Té,å"è¯Ò¢›Š‡ÿøÜ¿ä¸ºí¯ÎTd ­\ì‘\ÉüóJ¢…ÛŒÒÿ0oq’’Ãåż·ZÙuè¥ÕΣ€ȳ=Ž: Ù‘?¹! F|r6Õ”œÊŸˆ.­óè`,ÜaüGo‘ËÔí?ÝyíÖNkð«¹Ì£“RÍã,r®Ú™œ¾T±¿¦~ »Þ4 YË è¦D°Ž‘_Ÿïë+OµŒzP%ž¿Ö!X5áýÌ7Ú½ ˆþjˆy>ð®™ Õb•KÔŽ[ú•ZnŸ¶À|$ºÉǃµ-b*f,ÌÑ£Tª¾ÝHiüXžôÁÔåïTyòÌ +¤¶닌¤°óÍ{¨çè7h†OE–Ñÿ±›¸»&Z$o«˜ìFl[DœÅć|/š&’’„§£r-ó¸9 AÎ%—Y¿ì r’…7:*;Î X–’1Ùõñ1Ä;Ö ý¨MEÝCw阼Ÿ>ä"ùÀ[‹¡ oÕB—¿ d9É\b±VôïòûÉÖs®k W;”N(àN‡ðn!jý&y,oÙ|žw ×Þ\ü[2cê†QqüNZ²âšèJ®pÕê ›TÛZ†Åø€ží.… ¤Ä²Çñs[EÉ0;tÒ§á?ñÞé«sÕs6Á/&JC¤éov0£7÷;²Æ¼8ûÓ䵈"¾¾s£˜_{ŒxE§¿ÓìFZ´Ï•ñ”yø³k¢Ôüx=ª¹÷`§è–qÃ|ÇŸxÍÅfãZ¨%ç¥Å²ç„|Ï~ø×`ûè ó„zº²j3 þGª”º~UN-¡î%’Lƒ­§ã,øTyØß¡žô%ý•ÈG$žˆd.w¸òíô<ÌF‡ª-XÃX '¯˜Sô EWTúïf€ï~Leàøn/xü¢Æº+67Þ¡8̯ºdƒAç²a™7«öTcÌ¿Jæ<‡?_¡n1¡½~¸2œÏfºd½“œ°Tâ÷ëQ|ÀüB…|€uEŽÆ #ÿ¨ÁüóÍè¯î‚ ]VQøš«þ£=}|Ës/wÑ7³*ÿQÏ}ojUôµV <êuϺlÉšž¨¶˜ÓAï°‰àMm¨òŽ Ï=ù³e¨»È"ø*ݪ¼Éﺀµ}´6ÃŽ—é£ ?+™ÜN¾A½Ûe1°¾—ä•à;âƒÅvF€g9N:{3Þh-ýËÒýZî¹Dç™8ÖO”sû^Lž‰@\óïþ%Þ{Gy9¹œÇ̵Jå·µœímtæúªSÊ"Ÿ™©Æ¢y†ï ‘åŸÁªX·êµÌ:ƒl·-NO+ºsÝ)‹^k ÈOè²ÛØíœÅÎ »¸3…þÿãõJ1¡$—ÿápªîˆ”h¼‚]±ûVþënh™õ ¾å/´Vÿ8ÿH©ßÔ»oŒF̯]©»¢“CZSº_u3º3-ðÁê¯Þ¡¿º!ZɧB_ÐÖ|mä%ÿx`ö¿2/ü6ú«ô!Îï÷nTtáÈöè¯jÙV°6Š#ÂC¿š’‡IEÅVôMF˜Vêëu‘ 0;±yýx3òÆ›Ôí ~8ŠO‰„=ûƒüã•4ƒùëu¾|¥;׳ †[“#‰WbÁörŽ’‘+âè¤(c²’A”f§c‘¤×—àÎq¶]Šž™ M™éíXû¿ þ÷V9%|`~”#s‰Ç_žß¹‹ûŒ© BãxSÎ=ñcPµ™:²ZÄä+A‹fÅÇ':îVAtÔ}¹´P¿ ½‘›ÿþ1ùPDvæê‘~Çj‹J ž5+Y^€iy >\n5wù¸h`Æc— P­4"ëÔ#¶eç¹îÀ•ý¡ØÚã4ØÎ3úy”!ί ŠÿÑ‹¸fÅaŸÇ@`Ž€=¢zhb¨+~­¿iði°hÔ/¼ÄoÿH¨žÊ½Ìrc÷£ŸyôM­àU\³Yª“-ìÇ7L’uy‡Ò†ª?JýGö~ÉjLN5žëÍŒÞv©š£¿ô>Ý–ü‰vïʱª9zÛÊxÔõLgÚnéâ?bˆ!vØE”!kÛ~Ûî±å/GÁ,tV'©?TÎ"üÇ'u ¶úÞ.Ý¡äWfîDƒå¡ŠÈ½¢û´Ðë³ð”áë2£„ouäª|Âkf§,ScèÆxT¥Áη‚OÿÙÞRtn,\\øó´Ä2£‚Õ^-§ÒËÕác5o×,ßr¸_ïÈ7"Á2¸òæÌRo±œúÁÈ̯=ȧgògØÉs[DÖéªÿè!ʸýÇæD²~ƒ ÆùT$±sD(ïøÂq¤µ3¢D-âr»æÔ¼Œd>î2"…F0-sÐ̽'W~)>ðÔýçŸ}zw&¥#(F§íL² “8BjPöð«25.]ì)Ìÿx>¬±ã ^Žæ.1Š EÄùBd„--,¾Õ÷úËÏù7~©UЃ*)®1ÿwÅÄój£Œè ö«Eq\ËÓüöVB}u¼¾R›r˜\£F,"ž®ØÃbógv¡ª»5Žþ‰Ìu¡¾7¬?F4§˜ÂP<Ç­Ç'E“÷]ZS¸éؼ9MÀ€+pF“Η¾{ÍO´TY/¯Ä;:Ùía+ ßSvàO«§ì)õ×A×a¿³Ð³%$Šýõþ|Œ?PçvD{° ÆÄªWÆK4)˜KDtvèÂñŽ£¹LýlKË»ò­<î¢ö—žÃŠ" ¿Jc-aè]Ñ¿ñ SZКFD=_D麓HvJëÔÒ4ã„qÝèÔm ‚§2{^‚5j“Ç%…)­,v˜±v}ñr½@¯–“5eA?öœ8¯©ûÍ ºÞ=Z:s¢˜ƒ:l$–7&™ÚTP»YVZì\S~-§¾¯9Ú«ÃhD“1ÏãO2¹ùüZJ–ÔÍŒö•š|©ÑI µèÇEV±ŠØw° Z¬ZØ÷…tïÛÅìÀgDçuÔLjãaÁÁû‚eyÐ}sd¨+Nh¼ÙÁ¯²À?Á‹­!ÿ8Açó0Ô{Ô[:µþ†=ªáDt5‡Þ–ÙÐînÁ3Ì º)dE2ƇXñ°‘Ü€µC5Ä.˜{VjìÜ|5n¹yøcèw?Ê&ô›¿FfX,å&O}¢¤_‡u Y^Pä–…‰OÎY­ñXà¼]h˜:E=Ê5ú1–‚»8k¯RqùÚOöFp¡ø¤ø¤]tÎ%׈&S®Ïã¹VÏ­:ð×±Q¹•ÂÌA¥ÜT-F¯[™iê®ùQ=Øá8xõ^öV” MáS”jDug\æQéw·é~F,žß%NêOª±Tk9†U4§ þ¦ÿU2g16?žó4,\úT]þà Ý¸åäN𫞢ŽÛT§F|ü@e‹ 0R‘™÷UcœšÔù5¢þc-ú«eö0za ¢gä":ý‰~ >ŠØ0Ð…µŠ²]°.ÞTÂîõÀ¯;pb^ŠvMG:å©¿<¬þDÜÎÞâøÓ½¤ øUuu™šÛNK…|ùÈÄT-ÉPtTÆø¸oå¿þá™–/~õD+®ÿ˜]Ú`JÝWˆ¿ˆbš¦¯žÓºP+d”6¼ŒÆ-ýƒv!识ãÓ Í—~ÚyÁnâÃ(ì2ÓšíF 좹Ôô!£Iâ}øÞ’'̧ēËÄÏ %ÀŸˆ ÚXƒYdL¬Ïôód̯ =Ã!ì5é'õää{øUûzððÉÄj,è=¢ó¤Ø½±Lÿ8k†§#Íkc)“z›Ùöä€Èh1ùÇQ°òXœwØØŠøB¼ Éù 3Ä£ï¬{KÁ><ÐJ`—§Ó¿ý*©mðqÅÑ”×%³Ydu& >…"o²+Ð,úo]ñ‰­ñG‰Þ‰ñ ÝAÂÖ‚_¥›ždùƒ7My„iH7ʶú¥`û þQêgô"ÔŸŒSËĵƦ®¥^óÕåg^ô»u±ý«ùIgÈä|±ðI³EZ3¨C[Ðz5©nŠ?´à7<Á†¶SmÑöž¸q:â¹øexƒ\Ò5'i!>0%]ö‘tq¿¹A«íײQŹUÓìZ2,×Tª@GÐñp»ò"êÿÀ³ØŸ°¬9wvû›Å>'ã?¢}Õí¾ÑÿQ—þ'ë±å5üÇv«Õ ÍUV”IáÏ3Ã]”‘ñ&I˯d²»Añs³ÃÐõ/™_[‚\-YÊò Ø×Kô\WÔ°oÂÚ]fÄBú—<¦šâ56¾ qóMþîxl`6îô;=$£²ÎHLõÊp¿Jä<^ò¥¾vžjIEcO*Þ~rŽ¢h‡‡k¢jòß–ð)sñ+È6-m6CÖöIÀ¤NÀ^•ÍA%Nö±üj³¬¤ž`ùKÛŠy†+ÔúaÙö>¸xæ,r{É¥"R?8G4t?ŒZw} qTâ(¿Å~+µØËìØL–Ëä¤êô©ò¤KáLê?æñçÆö:°«ñü«_¹¦ñsÜëÒoOQr=%)ªÊ‚À2oFa¾‰§}¥“—¡²éºÊœ&«™ŽW‰Nüö;Xf pÙ<¢Q°úÁ~àè±ÀJs‘×¶';jný¢j:˜yîe§ ºï¸}ŽÏeQ§@±ÜœéﹸÅÕ K¡"jÊ&kÑ©áËWêKͱ¢7HnGÞrÃ’vç­é)WÔ_ô†œlovn0¿¶]K»¦q1³$#}ƒ³½õx!RÂDæù¯ä7¨?Ïì¶!;a®~¬¯Ô—{ Q‡h¶1Έ`–3éÉY³¿–˜ê/c¥ñA·¿Éª­üÓí(3†+Pàv²ÂLbN2u“Š5(kÖQhî]ÿ¾o}¾i¦–MÉ?JñƬFÁ(i3ŒÑ˜X¯>ÝL<¬äfø:2NÔ/èIñ°]?}¾æ4vFYøbížbËa÷æÑýJ –Ck_šæP©p~#Žœ@63­ûcìDtP¦¨² ö+ºÌî“ÈÄ;ókïi¿á3æ ³ZXú²¯âœ¯:ð“­_áR¨U®‚Ý[ÀЦ«ÏþßýsÃèEîŹøóhŠò’³⽟ Kð¯ô Ï-´Áo¸Q:ö¦ç ¹r:¤ÂNBµîà#÷½<ßsýÕ6Þz2š‹ø‚ÇäÛ‰‡€—ÍA1¤ðZ±4õƒ5ÉŠ¢Éœ‘sø›Äv?ƒ{D"ÿ¨"V™ñÕZ¼A¾Ïù‡7¾ 0Ìå Q=˜ò>h5o­4ùÇ|ÏDô»¥åkîW ²-O®³£l„r72öî×}$ÄSº”róÈŽ–sÕ=ÍOÔ7…üçüÇPðìDØ{ˆ}/p.`«QW”:½Fð¬é}ØÐÕ Î#>kØÿ‘×ê†ÿxIìS öj+¾@ÿùÆ:Í´ÖŸÔeyŠØü=7\ýŸÑ?72ˆXf4ÈgÀ裂`.AÿÄHFHE×@#Yò^Þ†<ü­ºà*ìÇ Õ–úóqd2‰¡oÙƒÉú«Öd5uYoÊáÙðûGYoƒÙ6ÄÉé-2“¥¹f4"{j™äcU}µ˜yêoloº Æ Þb;Lr3•’iå“КUƒýØJ.•Dy2…é÷ ôÅì…ת ’Û+9).[±©?_…JàWÕŸ|¡£}G•„ŸÅüŽù(‘šÂÈŸÇÚ/‡jÌ“Yž Ö¿äºþ—ñ†z‹· ³z Ó°“Ó¾èXNI”KUu´ ì!Îç$^e7óÏÐù&£í‰n !që± VP¾á²6î›ü¿ôÁO+ gpŸŸÿÿaaW?èÃá? â?\kÒRÀŸ×6ÖÂV|Ò|hÇç´m¦?øUê§ÐÍ(©¹‡UâW¯3Ó7Ó½ëð,|ÑÌæ¸e”«x‘È:¥-4üÁßÛÑm'?©°i†kÅåú_zaÊd uðjsØ´û¦™Í âÌ,XÚUô/I®ˆ %• ̸ ãè5žŽÅzƒŽ) \Eõb0«¹‰›Âíç¿»ÃÍZw¢Co*+"‚ãŸC½ë¢ê…Ïœbµ“o‰š=å 8‘ƒXg˜šPVàë;yÀè„'êMf}‹(þ)ùGPøœ(C—S_"P¹ÞÆ °Ò±ß%d)í¨ «Zõ²Á—b(V/¤#·z#nˆúøçÖ@éƒÿ…åIÈžh1÷û¼ûÀlO>ô0#»[…g+Ê]²°ôkx“MýU_˜ä‘ÜÕ•dGäO¯D¹0ùóyZf#ÓSþ£,Ìk~zGÞgÔ[²6å_«ß{’ naþc—k~íó™1Ô“A·&F {J*µO{|ŠÕ®É–*§ò¡ÿîv˜ógðçåÔ"|FlÞ.,°//ÕR µÞ ê?"ÐEƬ™Z nwÎ; šÎ(“¹©•©T~¾«õçóA}²ã«p6gÉ"`ƒš± ÄŠSŒX¨=’o oJ9ÎDµKíW=e5Íhtøó7ø—àW•É~ƒŸÂ]Ø ’w› ûŒ94ÄzUENüÁMžZMòñùÖ+PµÑh“wÊœø5Xj ÎÚ—z’öÔ4¬G)Õ˼‹k¡6Qå–>Áæ®×êéÛx“jI5€ 7°ûÕKtW)ìVÔ °û¢a-MÿÄÅd4³@ˆ~±ý¸³™µ]y¡4.&ˆ îqú]: Þ** ü7îÌt0º|àW&\w>ç"#Ó:驨Øî´†=%FwNCeyЪń¹Ênüª™~ÏŒ‹ÿ(Ò:Q¦ÂQùœŸù;*:ÞþLìML}Š‹oÍ4Ç\d51U_øû<÷âV"hþàj}"}™ÚátG—x\hvU'…“=Ã|zÝï£J~ºsËyÈÛ=ô/yÃRˆ>îmìÌ0§Ä^¬C>b¦bÁ*&¿~ÿ­¯œ¡þ#ªû$<Ôšê?6—)h_©ôãzTc‚‘ÉLnîûÜÓwþ£¤ÑÅb|‚?ßôWÃñ)P{…þª$JÁ ¼÷³ÌèæVziEƒé^nN2ÑÅpï:Ëi/Ͳ:½À+!¸Øí“ÌXb<oB÷ö÷"›U4œú«Yú-Ý“j’ë`™°‚/‰‘ÚZ1­¨bˆÀCt>1‰ìFˆœ Xëñµ”tÚ8ETlR±+KÜ«ø»úÖ>.'ôœˆã<\„¬ kñ§Z;Ô♈ª}†;§‹‘#’†¯@, ò–7Âæûp_c„ê¢úõŠça\i{"í«¼ÅAIxå ú“@¢ÈyDþkQKe‘ïÉžÚYD'ýé×Ë|þŠóY¿›Î$zç‰èwß‹_ɵž¡“܃Fh*:¤(¼­›ñ«ABæñßÅ`Ž^a"‹mô¾fì•«ËK!XìåxRd6¯ðÄ­¬RbƒU¹ú,• ß™ÀOÈû~I|ÂüâF‚6º[+kN Á¼§âw“‚7͵›A]ä$لʸuXø¦ð½Kˆ\ó`íD»´ŽÝís­Lÿ’ÐùÇcã–ﱋ;u—ê™XC?ð«<Ÿ§ßmcÈ=Øôhb[‘äE-ÕŽÕGÉ¢(í…:ݦñ’Ì áó—€Òì“Þœ»ýô\Kn° ê[ú¼ú0³.€z½ jU÷E`”ÿ$›$KTF6B2*ShTí Z&3ùQÐÇ$jµ«ã:õ#ÐÁ#²³—©àÈeþ âLf” &è.Ú܉ÄñÙð­B찊ȃÕþ‹›ñì°îÈcXövj9 Ï[´±µéuÂ^ "2M=úØEÄöñp[@÷RªÂr»øÕý0ŽÑÿj×WV¿¸Ù±ÿá ÖÍDÿ«5̬KgÂj Dƒlo°@/ø[ðmYïµl†ò$»\%–»×;Œþê#µÿ®é›™T=¢¾‘ø¬ ÌWÌM²(t(ŒŠZ@s28I©+ñ‡IŸKþ™:’.ðgÕäzzä1ßÝí?‘DŇzrFzÊdD{­U2zS-WËĮ̂Î`WËàúGqÍ+QJ<¢£/ÿöädÞ!¦¸´«3©¾lp “˜‰*D+]‰=¥õBcúJ ô»Þ°äçéÒ2ÀyŠžz}ð+þ‰ñí¼ª øUWõÇ蔃÷Æã¿R?xKË­§qŸ„ôßý§üG*ý¤†qÍ4æi=kNÒ’eŒÆŸçhzP?å/÷íï~¿ÿqưÖ8§5ÓŒbÖ1 äb`»¹ÛÜ…~7,NõÛ+ž0Ù °•@cÆbAŠ[Úãšh†¥oÊ,ÊÌVú0YÚ¯WŠÿH",ð¥<ï™ä-dk4»ÅbܧDç9ˆ5‡ŠŒÂ ×üÁÆVó¨¨L$8{¹”ýÝÂBÇåÝÑä Þn›÷ßÅú¢ªì„ûI}½¯ÿùJ V¸I†“ÉûqÊ+ƒ_5À3Í%žÓåüÇyð+o¾B]Y¨)¤_¯zÄèŽOlŠG{7ʤùø¼TH<W„/rT3t‹ñ¥·Xæ^oµ¾ÏxE$p†S_eãœxSCsüªyŒF›lë#õ‰è-uû¸o¥Ècû‚ÖU‚ÿhÌüÚ‚nÿñ+sP#’óæ$ÿ.]3!æ¨Üh¹ ¿*ËÌóÔ£ø ßýÿ±ïvÊ® §žDÍ ¶ë xò=qT ¼Ûl§’i®èÀ»?Ž. w„aOsL§8wj)S·QGÒιïøÛœÕè¯î€_5´â?3ƒÜÞƒ …ÉÔRýWô»÷´Á:–\×*ýãþíéôCz£‘Òtèåâe·hzF_c…aÂ/ns?Ïð|x«B¿›Ž\ó'ìÜó “¨"ÄEqßfòW„ {ÍÜyĹ—Àpˆa ò‹3ææ¿[è?ÿÐ<¾"É1 þëA¤oÀõF‘0,̬Í-BÝB4ÎÝ@áóÝk–z=¼Í!ò•¤ÄËÞØÓ¢ørXºVupés–ïQkg?©ˬû7-`8šàs÷átòìÄ­?Ã'Ow)c¨ÿ¸eæªÓa§T½¨õ û]Ô“ÃWô9ËA-WêÏ›ƒ=±šÑ#ÂÓZLœÿ»|Ni«ú€çͰvˆÚfXœ\½£Yä,ù…'qïÔ e¬Ÿù¸rqÒ|­mµw©\Ú–”ÖeápÚ_»G‹o%`æ xU&bìµøq\— §¯†ÎÏ×ã?öðSâïæÀÐì@SE_Ió‘û\Äü¨!Øû,p&L%›Â¬/oPI‰¾FíÁrJª'²Õè˰ÎYá°™ Š?VÖ§ûäPÏ%½ñ˜í¬lh–îP+7› u7Qtb8øí®zU›õýQ9lþB~bI*UöÑ]j‚¬ ²טbÅÕF.N×i”JåX§%ûËC¥ÛRöRIõ½ÿnr‰9JéªØ«9˜ÝLj,\Í}è³[ˆõ~)à….‘“÷C³Àt] nã?î2!ë5}YüÇÛ¾fŒËò“ÉõÄOï&c¸N•Wþ)Z¸Í9ú— ß)’[‚»Q›k\EO©¾êú°º\o)Víd/V»É$úÛW©–ÀzIT+´ÐåÂ`lÀr}“ñˆs¿›gSýÄ[ëbŽþÂk¦ü5ú­§sNÐÃ=¹¼É½íqüÇ+€N u¥/¶¾¶(íöÍõ;frr°œÒ!ô½ílE§wo)øT ¿gNbT|P:f€X¨´[Ú©R  ‡âlÎêK,M pˆpú»ýÇF}±9“ºÖqðŒ®èïœZçhN 2­U tëñCÝ Îq»³ÆnDÿ]?UÔnF’‘7飸 U}Nª¯*Sœ¹oå¿þá•V-˜~÷¤Vèן§eþ`z£§‘Ï,@ÿö*œ®ÕZzãg£­±Ìˆd¼ãO?òÏYíýK<ñÇIx ˜÷ŒNðç¯Íâ’ék¾5t#uˆóû½µaP䯟ó“ÎxÃàQOãÝ.‹vT#ïÈ+šv¸Vœ@KjØ…—°¼Í`YŸY½À¯â[1ÅLª‚žQç\¯²YäÍðÌ|OFÿv_,üGt±ëAaÞâ7jâ?$ƒ‰ýJ%KÒw<:wb¸ðÝÕZ¢×݈~76Ù÷)0›œœ¯²¼9s¨ŸÀÚ—Á6V‡«XŽ%MgÖùΊŒ~ä]¨|¾ŒÏ¹#ú‘ÑÔ…‹œ’‘>~ñþ9îcTòú8Ì“j#Èz¯ üß1`""g¾ûÍ ÚèR-™9LÌ@G64Ç㛇ÿMþ0;W”*Š1чµ²ÿ8ÿH¨of¾Ü #›™Ó<ñ9ÿðÖr•ðLoÑ?¿£%*ÏLd™ÿ±Þ¼j4îã÷O‹ƒæø?8'q“™PVÅ7'š‚qM<Ç\çÏÞÂÕÍ=üyø±Qúa=½°±ï×aR~¿ù ”²â‰  <±9^ĺ„ý¯¾Õ‰6øã`î Ò¥¼þ€ÏˆH4bÁšDà'±„]À»“Ë|Ì?ƒ^pª¸⠾ʗÏWµrðÒ‹„ŽehD”œ¾â(ƒ¥›oU•9B請ðóñ(Y­DfÈ.F_V ú}»Ñ q®ó þ1’Ì¡!<ð`øU/ö"ê!Öµ¥ÞüDOXñ±Xü©²†5@„D›4-õƒÑ©³Ï„ýþ@0ßRØ`ê?ËUê}cß[Øû"d5sñ¥éÒ{ žØ[–æJ2„š_»ÿÑ’¸þ­Uœ§>Êî¬êñîlüOg{6¾ãSùF€… ¡âïRvrÎÛàMKÉ2ŠR?Ø,Ä3)+<È¡Îó,Ûàq÷Ò¿ä<ëõ%;*®^Ïx2;ðUi™ ’Ø>ÇuN#7<Éý¸JUB®ÆŸÿ©ÕÕGai]ó?jQmŸ÷¢ ¬ûJ;9þc!½¤~µª"àWSìMôëKÿ«çܽ¡àu)U7Þ!Ï ÷ÃÝ­ûÀä;Zb%W•ÐÛ¢Û×Ûéh_SðGùœ-LßÊà$#yÂô÷èwcоw¯QWjô»Å‚ùKàW)É¢—Á¼(§T ç7¦66¤»²ûÀÈïÀ¿õ¡›ÉjxŠKÔøÃgÌ 7~Füò_[Ñ*ë>…àÏW/jf]³§ ëªå¼³‹R¹’)ƒçAë&Ÿ_´ËÑ¿¤9µ!'U,º›xØž ³QÀ,\½Š¢Êÿþã‘V0XÆáGýG¢çÂý¾û!ø•müj¤6Ó™Wô’¬²œSŸÃ¨KÿDÛxA7Åùg‘¶UR6"§h '³Í¿PìúéGÁ´Vš«ÌkäY~hŸûÀ¯:XSDið«IèwãY÷µ¬ÆžÚð«sh# ›iõb[æœ$„¾Æ»Òæ15¨ý¬„V¬ÏÀÏ>¥™èt‘šþí‡Âqɺ¹ŽÎK¥±{]Ñô,„ù¸I†­ä "Ìd¦ ÿqED&–Ý)ž|w‡;´†ôÄÙÎÿ ½îvÐ¦Òø“’`-ó¬(g`¿ÏM¸ú¹çµ }·~ðœÑ˜x¾'û˜ëZQ©'D1EüM5™QõLr½üJÆÚóð›È?¾…_¥Ó½õÒV933¹UòzDù©Œ0‹È?6JÞ .›LÆàʙѠˆV­h}(õƒOñ`6.‘ ”ݵTc,)ª›BmÀ2‘Ó¨Ü;™¼, ú1ºÛõÏb­]È&‚PO±(‡=DvÙ¿8’]uÀ6¹& úbO|`×s³Ëõð=»ð!{¬…ÔFõd.Ò?±/ÜNN¬ó<Ï#´{¬ªtS¬CýàzzpìC×t‰n!Uà?º`óŠÒÝv4ÿ¶å1#ÔzoõÔ5•\Áz1Ôj|ìæZ\ãL¥Èfj¢óyNÿÄB`N«ñÙÈvP§3Q–# n¬±âLð«FøýVQržÆ°y©ÔüÚd™›øyüÇ)û¾=œY¸}QLIõ‡,–Hýà|NUëO³uˆõê‹´à{çÉÇ:ámoZ÷¥Ÿ:Íw^§žä2v¾LÃzÖ'ÓŠkïúÌV4B‰¼”ÍRÅåÌ`õƒçPîYk ŸÒ¿õBœ¿¢k/Ö¹ U*C¨÷xÀ ¥ÔFôdzO¢»äd}ñî‘”k~T, –ºŸñvýO#€swŽ3’Z¹ØÀûtòÚE×Ý2öuæ×þŽ'™K5b'"]æbý×P£ò .¬#¸%÷&µ(lþyS}¿™]OÎgC ã¶*ë”c7•Pð>Æíef`ªh¢ÐͤÚvóšÈŠ‹FÆ·Ö|À ÃÃúYêü×™@³Þ«Z Ï÷›1e#´<Õ°ð™]ÓŠ¡—¿ªkuE¿{‘î—UÍ <ìïVª_¢~ð~Èì~<™BpÈ„Ô̇Yquñ+KeïJÔ»2\åc—yž¾*.-ì*XÛd eð"/È?zÂv¿%zôɰŒ[ÃQ?xFk„Jj!þC'nöáþ•'Ç­I”2Áª"oP«‘™xª:ùÇ4rhO³Öwžö%£31jk2¡{ä&";W™ºWŒ@î{X¡³àW7°÷ÍaÛ~ÓH}‹ÎQˇþíÞ`I%©9[2NâÞ&4¼Cìp¸‘‘çx–8¥WÕˆh(=üùVøóLª?Ý7l×èwßRÿ1HÑužúo<ÜjòN׌´ífÈþWeDbüÇV²æ¶²º­~ÁC…‘„ºøz~•šÂ¬öpµ?ø©{PDûÊÈ*‡Ü :º_ºƒÔ’­&ëmNX?x_lµ*ƒ(í¥¿T[TÁ}á=\3”N²ÏÔ‚a¾M3šªÄȪ=ß‘H>Æ&×7¯Á\“/dV‘Èž‚šm±S9åÉá<œ©öMfžÄa‡~T«Ì¥*$§ =w» *”BðÕÜùGwüGΜKõ7Hv":kCý` TÏea@"ñûNj1?êŠèÒì»*=\r©½¼Ñ7Áþ.Ð?1_°þ%³˜¤9J´%¢Áªþâ¹Êé¼±+¢ß‚~÷<üG#ç$þ¼øUú«œ ÷ªL½O-Ô+‘yK‰f£ÈŒÿý.ý.ô|î“uŒÌ1¬Z_÷£ý›1õGz$¸ò‚fUóåæ&¡~°3õƒ‘ŒçÚéwQÿñ v»4:‡–ùÞx‚îéºyE6¯ÒÍ]ÙÜ»þ›M¹ÿ×1ó9ñäRÔ7׈™ÇÒ‡5‚^ÃðUa¥;~žjš7œøU_ý­U|µ_<œQþƒ¹“ ç=À3Úc§º‘d7Í <î|õ!"õ~è^XC©SXƒ{„6.Œ˜Äòå 3-KÇœLD;›Ä©ï^ó­ ùÇFtªÑ\ž3÷BuTu—ÐËô9SZÁÚ‹:+=¼Ïj2oö8tõÝWüù^fŒ à9z|öe¥?ܸ§ô/ÉKev["Óòô^/EÝ5(^s7÷’åøÂw× ?BÈj?jgŒ;äÈÍñ ðåJαõçIáP3ü5ý v2ÿ<€žXD¬,|Í3âñÉxúòTŠf¤{uð§;ÌHÁi=Hô“ÿQL*&LÀb”[9Ù›kî=åÑ*@Áâ?UÙßL0¢IàkûÈ䎙C¬WYØä<ûaÃ*˦XêgÒ>åu›þ%¯X¯ý¯^0uÖ¦ê%õKðkõ¹›;±ÐÑUE¹[ôpo烙KŸnéðk÷È?ÒÉWb¯UšÉ%ÔöO뿸Ê*«ðK£éº2˜9æ7è\ÜvŸü†ü3޼löç1}a€ÞãôP©ˆ ¢s‹,Jýà5êÚs;+m_j^>¢!8ˆzyª,üªþòyŠjÔ*ÁôWm˜mx®±Ã(y ¼3ŒÅ¯¨ÖÊÑçK¢çšÃÉéîø‰Ýy‘‹”VÃí4꘥cV±Î‹²˜Õ×} ½õ9æÑÓÞŸ·ë¤ˆJ=ã-:´wF‰l¨ó¤Ö:éŠE…"õƒ{ð©è€S Ü#Pæ­ÌûX9b羕ÿú‡Zv<È—sIk¬›â—¯†ï÷7ÚK=™1ÂÈcÖ1ë Ysº–ÿQÿñ“¡ëû·ÌþÖÍÇ|~åšÌDÞ`¾câÇqý´ùýK.Â8?ÈŸo7“H/˜Ó D» à®’ZµjÔ4¶ú‰ºÌ‚ñË Ÿç¢Ô™Ñ‡ü…GêrÒB6 gû'“SèOÚb³»1á0 _ÙŽkþ„~÷$y—°G³@d®bßÀRhøô0Á]‚Î,{ÜOê[ ïÖÊ x^Le^XÛí¨=<ùîøÌ9°þœøŒ ¥ˆžçR’Àìô÷íð“¬aDø“á?æ`‹ª’ÌÅ®–ÓYE½Å´RYðëˆK[ˆººÿ76'õmz ®lï^Nr‚ˆôÀn‚ÿ8Ãûü¯L-]}ñOck7“ƒÌ%&›ôùµôÚf{¼nJ¹nè4»¹V²¥Ô(z#ˆff {´³}ñË ð™ÁË4ðç î77h£µ¤øYÈž‡a×â€7-ÇkånMÂÖDê‹è"øÿAjµ\ÝÝá;±÷EœNõûÍD?ò…Ôøœk²ž»HC ,zq:^b~ÔU t'—ò¤Z£ŒolÚpâñ‘ÔtøJÁx"²à?’QysÖ`5üò&P|G£Rï=¥rÀ´fÅÞgS1AÄJ“W"_„œ¨ùGlf­z«Ù|ûˆÎ#ð«T¨´b~m y\n<×eøä¹äÖEóëå“):s†·¨Ýz.Ñ·¼¥:&3€ÝL³ Ã%¿Ãêßf½Tt;\ ²Ø|mú]‹úóS¢±ûaìÔ*ß_oõƒ-"_Š]°3Ññ)è Õ¼©Ù[rº¤gþàŸÔ£Wµ¯“½ UµUT‰åá`úÝ?õµÆ'Nè5²¹ÕÏœ“‰ü½)àWÅÙÑ-5žLd"Œw'%o¢˜ÄŒöŸPqõ%ûlVYúó’îü£¦~ÎŒ {˜Ø(Õ)m¬N*Óüª":Gj)üÑ|;'ÝL"Pñ’ÈžJï’st¬Z:úówE\âlµtŸÂ­zos©pE9C¹³BÚyáäæJ—Ðçf“‰;:ûÇvc¼œ§JÆüÁ\ððŸD>¢Ì<Áî[ù¯x§•¦¿ºˆÿK+žmÄÔè™ùðç9Ð_•ãt-Ç”5Zñ5 üÊ'<‹¸ÿÎAí˜ù„Œ½œec&šgaÏ}™ÿ±[¬e^à}±°0 ÷·õa¥EþªTŒHµü¹¿ˆ§—#¦«ã[N\©Àr’†x#¾Zâ?_EÿDKhD%»Y©jÛ†(.5+®˜ŒÿðådăW_!’‰'áÒï¾5|¹*/ÎÖX"ÚñØ¿ã`` þ 6' ŠÖòØÙèXûyâøwwx\«/½ó3~UUnm*¿Vø{ÚWì/3ète¬Þ(,vÜïÖŸo4šÀO4·úP==&eˆ•Œ÷/ó,³Cìÿä$¬ÊE”­ªô/¹ÿ[w_;ªÇµ’ƒÓUçj†‚ù=Y«GD&“«¶ù26ÈUG°Ž=ŽàšÆüÚ,a\wE½†Ù|*&hU^ò€uxÅò¬ÀWzXGÌÂæk¬S#xéáÜÕ\Aƒ—¢%_oÐ[KÃlËy|ïª!2r§–Á~ŒAmЛØÛ r .ã2üÄvl}J~æFžÖD"ø‰ÖT3öWüùNúïvƒ?ORƒ ]YîýÏ(„jÁ!Oþì?Ѝ£ÌeÍ [áê•“µûá&ÁWü*¦†ºâXÆ#z´']Šû€7S Si©ç>‹¥þ@¿Øšp¶éPJƒ³˜ÕõmZÏÕŒ—ÅÁ€S£B¬8ÎH ßæK´’›«j‚mM@ö1O‘žÌ?êF¯û*ÝcïÈ‘ÊK=•=åÏø?ìéXy†»|Ãb½t`ð%aîQ?ØÄÇ€ý8BåáôOí¡v.ûºˆu>-ûªôöAX”¡²÷rÈðÀ¢û¡¬Ðjé­ñ5ÁD’ÄA5˜Q%Á ¥÷o†ö ,+å¤/á8»?8Y/âý³xËA¨Ã¢ªæ ‰äº`ü‡¾ÁˆÌ3; Þ˜DE·SÿD.±Ÿá‡î‚T §sâxªK"Ò¿}/»D¿Ü8öC"`vä&T…uEz·ÿ¨Çl»Äà%8uMd6±Úz¢2;yñõQ]-âÙ®£ëH6¼IêSª¡¨†— þÜUœŸþWÇAm«¸OáR:¹-K4šF#"ýJÎ3óv8üùjª«ÚC=N\§‚ÓßΨ.à;[“4³ â?Þ‰S¨ê†ñùïô¿z¨U Ö?Ñ_«ýóŸô½z¦}d0s™gõœ®¥š‡‘ݨo,íö׎»ÏGx>øi'©?OFœ±¹y„ô æZ1Ë4=×yÖ}‰UõG‘•d§Œuþ<ªœóß½æcZIøŽBðý5é’TŒ ä9ý¯–´‘‡>óçÇñ#Y»õU¿³âbøû°màŠgpòpÂËY@E¶²>àwÁ¯\}Gf#-¿™п=>vo$Þ#W*¨Ç¨7ºEþq DkÅ–{ÈëNã;æÀ~4&kð¦~0,­¶—žÇìÀÝ—ðç…@“Ö ‡¡_!¸y$2¹f-óZ×®x¹á./„¿Ìcï– 3ÿ˜§e1ÿÃðâC±¦®þíÞüô)øŒ ;-ÀƒÈtN}Ž—ÂVn†YÀ“#M1#|Uͺÿ1;åi;y~µÅ*N-a5åA\Ù.x©Ô Ø¢j6* öþxÉ>×&¾Yê¹$1^ˆ¼ðaÙˆÿ£ÛItá+“ªûØßÕÔþ…~ׇü㉌CÿöXäüò&öÙç·R2?jaˆ½Øä”¸[™ÉÊÊgV4òaj üyfQ ê ž Ž½HÿĦTVÆ¿Íç'CÓº‰Øû](ÿ‘Adá*ÏküŠ7Üj=”ë˜FÕ‡ùe¨x[N¥Þ{e9çX©“JÈ´§5ÄöõÑKmcÿ¯ÀÚvãÏ÷i õ‘x¢–ä3µQu%âNWf~Ôbz 4 ðØøýÔî£bG¸¤Žd ×x6ÝA›¢¨Žd™ÉgV¹ß´ ð±dq"2¦R© D½éR?‰zÁ¼öix•–¨ÍzRýÛy×» o1‹Œî#üyöÙ‚Œ¸$5Æ9Üþãgý"ùGÞŸÅV7²ßá?’ ßgפê|#õŒ—Ñ[Ðïq6þc ÕsÉA|Ð~ÞÁœÄ&AýK¶è£Í-¢6QÎþïmq…jÄ:´ru”ù\ÿáíÜs’9éZÔŸG…ÐÌNFRTºê–·0!‘\æ`ŒûÒÿõÏ´òÁô»Oé<ócq}ÐSéûð}ŒüèwÏ®ÿج•1Ò1ÿ|-ùÇ+-<³”‚V{¥1“0ˆˆ·¥9üc!}/—‰iæ^Ð,õƒõƒÞæ5x³)¬8 õHm*ì2ë9 :aZšL“Šo• sÊDÐŽ¾|¦_'ÿ¸¾â½lÎQ…üã®H/Vaq6Zq‰  +®›á©™üÉ<‰~·<ö`&kÍ‘>Ū‘ñWÈcâðNæ¶ö‰høÑnboðeGÁ¤U¤–q2vò*hûl¢bä·•@p†ÀåÞÂ2§ë.kº•ÈzjúΊÛî\gëÏXy®r Y{UôW#±K9ä[öü‘lþvDÄmÉ2Šrú·Tgq™pœÀJ"'ñ÷Ò²Ÿâ¾øk½çzx¤ÒðÍ@¬¶ÐUožŠO4^k4ÙMRbfo"è-`Y9™µ$Ôs‰gÜå ´ÀŸMÃ+ì»Ð_­AEô‰Î*«Ðsþ…Îg#3OÈxJƒO€ÿ8Ž–Ì՛ѓ+Oi¬ ±âø–Ö²Ý|üÌšò©õQösájè¥úRÏýšî¶º3M@/VC=†‹H„ï8ÊÝèÃÏÎaÝ UžSć5:OôÓÌp«u]N z¡¹š*³Ò¿}uwTRg-½ZÚR›·ïÑ“Äü7¬‰Ù±£Õõ„šÜ¾ÏRÂ+XÿÄjúa3"HSò~Ò@‡PP¥sªÁæ7bêà_ÔzøÚ ¨•¯mÛö øóööÏê¹áH0jò–½"ç$÷)ô¡þc¹hɃ÷R\%›yç>o¶›ªý*¶sÙñtîà…KÀ&-UÅí¸àw±É³ ž¡Ê[æÜWü÷á-Œy,÷É:£µÓS¹ÿôc»ˆ‡~7‰1üª‚é§—g•mZe#õsè|øFûÖTº°Ê=íók3r·£ó«¸¹À¸®÷Ö·Qi7œ~µ—zºÚçpó.ÌÕxáG•Ê*.މŒzã8ùˆNj¥ˆm• §ÿ‰L'k܇’«)qùF"®ªøŒ"b vv-–Ñ‚7*RˆËáše G> ŽöŒèc¿.Ï£¹EY䇞+:ºØ´ø¨(–Ƈ¿:¢K[,>ŠûT«Ñ¿‰8é¥(‡­£rCž¶þ$Š>‰¥ƒmô´â™e¿sgàD]ÙÊâÕGb8û¨Í{0—8=Úâ¥àWG@›RÁ/w%È!êë…ýHµXè¯l+þ#;<ájg/‹fÔ\·ús•oEWfá0ˆØ"2†¾pÿãéDY*Ld±8S¨±6ÀLBñ¶OR{ˆ:ªlc ¢ŠõXO7l÷ îã ~^fp@&:Öýæmt¹–Ó/æ“»ô­Š=]ƒ]‹ýTFäxÆf؇àâ9à}¼YÑ¥xbÕ¿z´ÔçO{Áh™ÝS<x\s ¶úw‹PÃ0œƒTG”R…P‰µÂcEAÙÔ‰ü£—LNý`èþí±É?¢‚kæÄo/bë9/—>ןï–ËÐïú©ÚLiJˆÞ)ªz–˜þZߨãó¼ßëGB<é¹Fv´ Ž-'Zˆ’ ý^ǨÊðï¿3I2ÿ<’3AùÊ.ÌÛõgµ\0)>¨&zÁ½¶Î™íC¬WL|´ Ê Ö«¾a±õ^Ži¡fÁð\¥ò¯(LCrg9ëõdþàvVé‡byèÚïòÙÍî`ú«SL±NÕ ‹_´ð¥˜Àt’{ä l/8ùVàW>ø"û–h\k£žÏÔëõ#_0¨¦{¬ÿÕ9}¯vFIoªì3qFòHýÒvº:.B5Ð o95pRç©Ú‹}nnÿ¡®ª;ÄnMðH Ɉ£Š "§;ÿ¨¤ß2uP†üœ±(½r¡ Nêd¥ë ÂöNIª«Ãøô¦+Ù@zåN°3ÀdVã-%ïÅžÙe5tŸ_ŽÌvüÇZ”ìóÈ/ó¢ñðÇÄwêªNÌšÊl¶=×q"x:~ì7©Šȩ̀«IDüGVøs û#¬¢ø÷œ"<Ó†¾üÌÿ­ßoq˜î“pF«øñ«œô¿ÊkŒ1Š˜ÕÑïºæ¢îÒŠ±à?æQÿñPÛþC[О“äÅúE¦ƒIus6ƒÓÉ—ˆ‰æVó’q÷ýÜnóO|*s>\57åÄr‘–üã¤Èo½6…Ø#~"ÿˆï¾·ÕqÌéM*Ž{øa/›¹rkY™žh¥Ä "›]Äç‘ÀŸ¦<3½ÿn¡ÿü¿4æú'–%ÿè ¶¶˜Uü£ â61ë[òøâÖ!ôT‰PŠíûî_j±ÄTXó}•åB¸ôlü̆X¹ÑÚü‡«oðìé'ã{œÏr£9+õ3vU7݃°üuQ%M$M&é?%R#ƺ×ÛÍü¨øÈDiñÍ©?ÏG ¿Î.R5=Wê3Ž»šÈç)Šä©šéÍÄóGè”;ƒfÆîßÌE?ß2ÌL V[QÈÝr‚Ú&“¹èÐöeƒ»™ÿ±$×U›זйK¦1mqWTs¨ÿxé`Æz~;šJ@ýG[© ̯ŒuÜæÒçƒÆù¯Ô~¿ ÒŽ\Ä5káË•þÝï©?ÏhŒ2Šš¹Í[z N—/ó£màÏMã£öcÙ•GåšØéÉRVs´!Œåô-Û†þj§yþ£Dˆóûw;sý¿éæ[˜äÉø‹ÉVR8ó™øŒÌÊKÝx4âà4ü #\+v¥þ#¹x ÷xeX7üH)Ùþ£«8ŽØ„ søzO]5·~o[üx„:×ü¨•ÄÝàåkcŸ±~ìÙ38 cÌ]MFÇœËßÝ¡¡×Æ*¯¤Î r%Þ#™õ –g6´8ìÝ>"Ø¿à¯{a¡S[QÍŒßYq›1 ¤¤-¹Ñ50 û¢'ç¿©U€¨|&•Áo± ÷áküÉjîñwZYYEóoâW´‡zT0àqx Xý§¨Ä¼¸Vký;ÒÒ_¾ ø•«†à"ÞmkwÅ: 2˜"Œ]¶Ô›™ƒÉÕ\}‹ËóvÀŸ—Ä'FaW¬Ff5óýZà?Ú~ö–]x7ï?QËé~sƒÏ-³ÙŠ8×&¯*OÌÀOnÊ+bÿK²Š$U‡ï=Œ}*!×7LÁÇMá®”7¡k&w1?ª';J…߈}~Ížb[1¼õƒ#˜‘𗏾œjLÍ^[p¤ñ(dÇÉÌ(ŒCç±è•Š Ïß°,fÆjf ÆP«äN > }–bªàEÕ <\)ô»'P´Ža½‚Ö'Ðå «Õ´ýF<*ÚüÇ\ð9?ÉT4b~H'p¡äð‘œêšl¡òÑ£±: ÿ8”dcYo¹‹I2û„X/#þ#;gà)Œr¹ßò— PŸPKñ÷as3ÙïÓšäPºÇÁ ºú‡áß(Ó¨šr½häÞÞ­¥>¸ÀÅê·"Jy&f[…P(·BÕ V Ú¦-*Œ÷0»s:¥/A¥0„ÕnóÓÓ…ÜãÝëÐïþô:è@&•ƒwöj+Ò¿·>Yàaô¿Ÿà+vQoÿœlæ%ÙÍT]O¨,júØïû`fiÝþËþ»oDÞô™~ œ²©JìxØ ºJeߤ^r ¶Dø‡jèZD;ÏÛSÍÿ z¢Æ/#½¬ŽîS¸›úÁ5¢1Y~/b?qGBU—ÜåƒÊÃ\«AöRæfs²à£’À"­AÁvH–¶³ËÁ û[°8=)ExÔžî›ò¿ôáZ¹ èî´Vã÷/I¢?ÖSƒÔ^Ô]¸Èa­®‘Óèhl"ÿ¸ýƒõ·µ;ô¿Ê éªAkncîüþU±Ç¼Dýà=|Õâ_nÓüGeê‹–GyZпäŠÈM§ï"â:~¥„ã}ù®°~Ô“ìâ¨ÎCVì†þê7,T,z¬í;Mtžä~’HŽÿê!ÖJÿó5‡z?üǰšdÄŸÀƒš£òKŒ~”ÊpûÈ X£ÃÁŸëzS+*J߈0·Á‚Òr"müÅbÎz9ðäkd!à k±{Iða)›‚ïõ ÑËŠCÝ늶p ŒJ=ò)X€‚2‚œÍ×÷àARË›`9¿YÙD=ýhð‚}Ôîéè쵂>ÞÁFü œÑ&G2›5]ÖcØöYÏ5“¸jYÃVËGÄ ÓÔ b+T ±Ø])¼ùtð«äÿ1à'FÒqs„雂—îÈ:ˈb09ôqÞx÷›´¹Ìÿ-Fà?Fƒ­dÀÍ'›Kl0•®\^èa#cÎá#ÖKN ¾Šýy³ËV'æ¾ Zêó§ÓƯè¯~f~”(AÖµotù{Å`ª]Çó Žm šµÿ”‘¿s€Ÿ}„‹£”XÂ:kZFz}Æ#ÃÊH'Ç›DÙ+È?.Òÿ*-Ç\õŠ®‚u™÷d«GXcÔ¨(>+eÕ9ÖKæh{C¬¸Ëˆƒw>À*ùÉJ¡Ë[;QõQëŠâ4¢³}²Š‚kƪ5Àì6P¾•ì>ò=o³sˆõ*ˆD \gy ñ3‡­Gr SNº ü­£Ó*¾ã˜=mØ`ú·ï„ÈL‘3d4[Q‘5”sE'÷<ÿ1^«þ¨ç_K$ Br1ý$z‡uF{ýÕF*¼éøˆ_éÍDª› {> wý踘HÞ#Üë×÷}lÎá'UÙÑZt oLeôÉí jó²8“QGfþà¼\{z¨bñ“§R“ó‹?xA/yKœ³š«ªÔ’,F!æŸ<…®«+µ «ížKCû ]þã'5”l4€ˆøˆˆ#«ÿX«o4WÓwïD*ÐæÑÌC¼H§Äáê*ÊÖÅîàÁ{>šß·‹Baö¿*¬w7ãk”œÅUº*ÖKà?ÒðTRðî˜ LKmCKZˆy#ã`3Æ£:#ˆòaÖŸÏ@¿ÛOÌÄõÁš»ºyÍ™‰fmh!4E¨$ÃïA šþaÏj>÷s“5žú+Ô}ÜdÔ¿ª‰^jßQŸ»ÓÞÚˆ7º>Tœýè¿[˜ÚÚ̯]gžâ0ÌÁEürk˜Ù-WÓ>è/A0«®Üi-ÛÉ-Ö9™«l¤n¡'Öé[¾2—õš<­$‡ré¯v“!]¢ K]êÏ;¸O˜ºk®§kâS;²Üë<—ôê&œ‘awûëH5û!0»Dù+ÔÕ”Žé—¥?'ÒUËÞ_Ÿœe‚{½¹úã!'ô.Qõ6D/?s;SϘ½î4µæc%wÏvâRÕùä³*XØ®>œ#ñHÝP§Ùƒåýt_3oyFÞ×áô¿ªk•V¹œdAµáyn£™Ò`ôcÃ"ù¡ˆÎF-fú·§PSáþxëΈè²Å— ºú·Ï"’Zɉ‡¦ý'êoÛù©ÿXËq‹<¦¢sѹdd~myË™M-L UÃNÉ9{Ahjr靖•_ü?üý‰–%bå§5Ó„8gáßJ<ýµјAÿÝâæÕÏùÇz:LÕ6shƇôOñøZDÐUyCïþ çÏÌËb6|Á^øóð±_öȼ‡Õœ Ïpßȳóqôߌü„¢Ž8G§”4á¬ì­?×mq{z¾¼èK5ô¢Ñ¬4ÂU1pžë´H¦ÿj\ ÷rQñ»8)’[©ÂŒr¿^w¤~M/`¹ÎS»ÐTY6£†çÿwðU$[·o©®êƒ;www×à î0¸Cpw÷àg€ÀàîÜÝýý;ßãD7á¾ïÝ ?ȉÕi©Þ²ÖÚ{§b—ÿED×L²9 Ì4ôOÜúó¯ÿô•Èæjú_Õ²?r•È7м‚gjA,­É4à.Px‰¡ž³ã? F.‰šàYˆ’î¢2›¦VJž%ï(ë]›ÈÙa±£›Î}úW6½Pç¶äÌ|±ø/AxR_ÅÅô—ÙåwTRï‰ü¯a'ŸáWB]ë—ú«âd¨ÑÈ?fbå3ð¬|G UþüžÕŸ™½f=THÇÈ>îÀ>ìã§óqžøÃ `è޵>Íìì’^ä‡8³üxÜ/DÖGLOó ³37oï5ÿ‘…úó;h«…à?vÀŸ/ÎÕÿ ]© ~µÊŸõÉ^o^¹‰s<ˆ­ÝÆëL|¶7‡wfu¿Ò‚]G_£#ùG-8Ø=ØÜ {=ðŒ…±èŽâê1þiUS=5˜f;›^Pñea¢ç¾äCe%ð«àý¯¢£5Å~HO=ÊyAÎgwì”1à?.S‰®} èàô˜x>#ó©2 ° ZVgRáY[ö0àÚiÚ<#lÕ^Ëâ\v1-ä2ùÇôW ˜W>&Ø`Þgª§ßÊôo¿–’œág¿šY„þÆA'”T¿Ê‹½? JêTl¿–sÔÕ$­ ÌÊˤ¿'øÌ(ôt×ñãà|œþW»¸" U 8ò€þ%'µîúªhKÁ4¤ÇÁCá ïýA1I|4úâRö^bp_"þÑd9Õé_rL¯ì~TÕ›»—EÞcݧ{ ýÕw2ÉìÔ\ªÜ[YpÈþÌ%OMÿÞgjýwר—í$èw÷ã?ê?QßÙ ÝÉÿ"#®HŒi»ýGúOØø‚0ZcåcžÝb*ª«²=šŠÁ¤ôXYŽ^`­›lDgbVmØÅìv—šËSý€z¬‡hÕòNÿö0ÞV?˜%tv2ú'–$ï[Ru<­¥ë´ë]L|`âý®²c(O;üùcq=Pé!‹=î3þϽÐá¡ó³L‰dŸ…ýHÒëçôLÆt#+õgüë?¶hÉÌFcc#ù‡úÍùƒðï`+ê`ÿÒáýc<Ó¯q߉™æs‹ññ7ó­æKâæÄ»÷°î}Å?øVÆMQÔJ& ˆ#ðç¦ Ó™Óïë±QÇÞ$æ­M„z˪A½ÁKæÕ®åþo![JÍQÏ ˜ÿ±! —Ò<)Ê`÷F­aמÅB»ä=Þ¡-¼ôkâ¥#äÙ­¹âQ¨GÈ•"ò,O]€˜´•<ëÿß .^ž•†ùµCYqüÇ=xÛÁÄ9#©,ǯ*3ü!Ï÷øþ£Ø²,x¥Eà+iDSýÜ/Î:óÏcƒÍ´’ƒ_9ókïãÏrž=äS¢¨!àB¦t̰l[x:ç’7ÌBôíÑï¶Ç‡b¥âx7§{J®Ò”mé©ÞÂüwýq½G>Ëßs‘Š“Î:רÓÿjª˜V7 ü*ÈÜÈáVò§þ¼~-/µn±€ª¢:ä´í¸Ú_ðë)è3ÒŸyâ¹Ô|oIпøÅ0ÝKÉ?0ÿüžr#ˆÞ_òwj¥˜á¾¹;èß ´õ>?™ªHÌ×H*ª$ïÁêoR_Ôð«öqû ÚÛm M¥¨Úø¤<È?f‘=ö#‹¯ Ò_5Ño™Q‰¾<Ù#õ@ÊVZÕ˜î‰~·>Þ#^m=¯âÐ÷ж—ÁKýCî1—Š¿exëwð‘÷Åòù2î(Æüj¡¨Åj½‰=oŠ*ôs¼€§ìÇ<¯‚Ô"6°{¹®»tWsתH^2a$•>è°2 »³›¼º5˜je–iuî‹ò¿ôâ%ýw˜„£Z«¿JÇ\¥Ì:ÏŠòþ’ތݵ^Kÿ¨ÿˆAÿ«‹¿uÄwµóæâæz(P Z=ÌÆiô»ûÍ5¢ õËèŸ6¶âÇ›ú˜ÒUm ì=Uâ´H«g3ΊrV|°ÍýèzsšaCî‘geÏ­Kà6•Av®ZõaÃÞÂÂûÇê¤ÄSMÅ—0ÍÿH`Î6¯p\߬¾0²cà?îðû_‰Á°ËÒÀVdµN¤¢É“ Ïìs üÑW«Aþ1‹ùçO± >`i¥°úµ±±£À¯Î`ó’bõ=Ésfâ[b›eBYq¡ñ—ƒ/Á€øbM‰ê°ÐMÈŠFƒ gž„ï8b*¶Ã‹ëQ‹þWçP ×Ï´“z ð¹ œKZÞÿSXÊbcý@n¡B ¢fá1Yþ:ð¨¼#}EÓïL½éÅïF•ãÀãN TÄÓæÄÄ’T­›Ìûhmëƒ O°¦±Î0˜Ë3äµ¨Ž tPÿ÷å æŸOÓàÏ'‚¿Ð³…AÎ(|uyþ懹~°'[Á×3ùM…ϘOÞ3î‰Á®ãZc€ð‚ÑON¼~Žoმ‘õÀ¯C;üÇ>¢ýüj 1n*ПËÄ»7PC• Cêl=eܙȈ²£(½N÷=Ä»èŸQí•ÿ0ã5qî#[Gœ LË ÿÞÏ;oƒÉæh[ƒ¬8ÁHÄù‚‚$gi…f-=‘üÕük$þÃÃe2ÃhÌG?ôW©`> Žx!(Uëµ9;ÈzùEÎà.ÏD ôë­ëàWSÈ5¦ÉÜTä­b¢ëGõ‘îè~²+sè”ËÔ5ôlGù«Ty[ôpß”¿µfú$îcY'Òñǯ¦[‘¨ÈMoÛBª›rdg7HQ´lݘõŒckO¶M %‡+¯Êg¶égŒøîÓTXäR9Á±R÷?ƒ¹ä¹°ÅÞ†®eL£’.yO7ñÄýQ´E¦fÔQD˜‡óû|«‚ƒ¼q¹ óé¼ãÌ`®ÊüèYôOL+n]¿êŠ©$ë`£Ëã?Úâ? IwbVyBñ5Lý¯šKÌc¢$éX oèø hDKψ7=°Ë9È›\ /“Â0ÿãœVMÆx‘<¦úÝlü¶†}NÆ\ú<íWu9»5+ýwó†r½ ªÎ­þœÑYr¢?XHôãÐ_æ€ \Èwb½Óȇ0,í­Ê¢õ/ï´dL+<|E®Ñ$tÎÇDKr¸óø'0‡}ÁQ"£»ï\Bd¿ˆ¬‰ 㢞¦Z]ïa¶ öä;È\ÿ+W\%¬‘-ÿÂT#ÿØÊVSä܇’¦£ÿÊCQŠ’î*øÕd1›ë>\Ö‚ÅÅ™ÕÁçâ<béÒ‚Íd¢FÍF:žsÜB|Çj>ö2ü„_m1z‰ø¤(xŽþ|`­Uì”ËàAQåtÇRåD;U‚}=,M*4_ÛÉ=®ƒ 泆Š1ÁîË{ý«žÿr×6Îs>Ó’ :„"ÿ¨ZƒÀøe¤þc¨]AÖ:€Ç›þ™ÎRÆ¡ +Î6íÃW—w)O~žÎ¶ÃA’²£Gš‡ÿø@ üQUž¦l×4NÛ¨rÜÏ={jö ²^‘EåÄêw“+­çr!“CÚÀ”@»ÿñäe…ú[ö“ù‡L«yÝ~üñaê?êaï{ºoÊQüDzÞ6¨šã­“õ&TáÍc2E£“Ÿrc÷S1Õp þcÝ :Ûw9Û±ø6 ™‰ïL ÿq\ßf˜x@G‘Iä®Ô'ë鉿Mò{‘É»É?n¨Í诺ÛéŠõÝaWrÇ.r•QqÝøU5ô»_E b•UÖtùYT°ò*ú—LÅèLÊ«ÉÔªt¦^~ uíÊ×Ρ†Zq86‡áH-»ª< Od~m °ÚÞ`õWÄM•‚Zóò¨–¨’dIuí±äÊUÂõJàOöN¼[Zú—D„ç{*öâ?ª°{ºŠõî+øŸ{ñH+¡¨ë/Rù™9Ⱦû‘¤ ?nvc”ÑÐ,cÞ×+°Ê>­€‘ÞèiÌ4ÒÂì ûRüä]-Z™ÒD\©ˆ“û˜“+útý&uþÌ5æSãÃoæI{̬ô ð&Þ½ÚÑ•Šbztã(¸Q4_l£Ò½¬)Ãtæ+Áј %`9ë  ®¢ yg!q-Ñlu,¼Ê‘^Daé_’ÿ±T^“°‚K‰Q|Y'‚¼O\_Äæý•}Y$‡z„Ô^ÁMF§C6%–ÏÞô€úA¿Ê)JñŒè»ê’+/B‡Ë,ÊŠKŒ©àAÎü¨“d çD[ùæDâ³A rŒNþq ;”Ì|)ß©Hýà¯ð«cÚ=½O¦ãƒ2Û¿Ñ®t¦ƒVâßØÖ üGLâü« XÞ XÞx½KÖ>Ñ!Äþ%uô f;¼w9…õ.ƒ%UÂ2Äë~å9\j–5¿‚_õyñâì—£­OKmïáÉDªŸ·â-—Ù‰üÃðïw• *ˆaÌŸûÑq+·‹èŸ®éä'Ó¹WÛ8ã5p¨ÍÍŒFðÚ¡³Æ$1‘kŸó79Ð |˜ˆâ]ÙY•ÅJ "ÿHÂìÀ:L‘Ú€ÅMHÕÂßXÀûTóåäþ«iÂøÆÚ¥ÿ"<Ò*¼ïZÑêz¨ ô¿Š€Ýêþ’ü¦¨2Õ$Кxg^É$™ Kç2ö¹Ó‹ o¿«•ÿVG>¦ÿÕX5OuÃÿÀ*ЋöVu,*èu“X$uïÏñÈôß‚gzmzY¯’Hƒs™ûàLkÜd]–³¨þ@-…~×pm¢û–zEב}²Ñó*ÿZûXçcqLU*¼ýîiTœÂÎüÈžxƒÿè ûc½ôÑþüÇ8âϬhÚ/Qîá* šèƒ*"‚«³íåºâŠC“ôMÔ]»UD;–*C‡ù¡DDÿP^ •HýÿÊüóSZÉ@þã¹ÖTOd_ü8ÇÐ?f¿Jfô£~0‹yÚ¦È*,’P2ÿñQ;ú~â©ö–ªˆ¢þüG«³9Ãx¥/@¿»Bl¡ÿîC*C«| ´/wš.üÇQÅekjwN_Å1®ˆ"Vb,ý.‘Ø*bÔáýÝ ŸÍÓßê™Ä[øéð܃ˆ¾«ÉpÁ¹Ä â²Ýä§YÉþB¿ûÞ KG˜æB¦*æ‚ñ˜‡šÇAàý°„±à¾/³N"×lØP ãú3÷ãot øo¼«È?†ÞGr°Sº–Âд€¿N—”s›3tªôOý¯rŠL\¥«DAÌÖ[~rz®àWåÔ&u”»úbo'ŸéEÝÌî‰e>Ì9df`iTLµÜ ,E-½/OA â“øU“}Ã^ðçUa&Òeêõã'àZ£QL¾tþcXbª)ò»E÷ê@z®ëôOüÆî¿Ž¢/¥ªÄ.­@ÿ’þöK0¦¿™?ØåÁBª mæl¢¿í¾…ü#*¸â¼Ò´ùEE·ÿh§4Ãód¥ ûì'cã• ©øô6œK×îÄp»¾#yÌc0Á?ñS¥ÐžeR‹Yñ5½>߈"²+3ì~œðFÿþ% ë ŠiyZ££·:§›_‹ì¥5ø•ŸëªÞ?í|T·ïU‘é®XÑþÊü Ž€7¤ç*yþWøó—šg ùƒgé†'È>ûqŽ¡Ì©ïÒÓŒÊD~~z5VÙ¡•6R2ÿc©‘œúó_uÕ yå ÚE3Ø}3ÐüÌV;ÓÛ8ÏôÓëæ1ÛÜNÿÝwz”ß:Îsf2P¦eX“Ø¿ÎààuOã"бDbøó„ôß ›ÿ˜ÿ‘A8õá¹û€³Ô…?AÉ^<Ó>¬˜qøH¼Ò“0õOŒen¡*²{~6s&^É™+Bwnò›àW¯É!ÎÀÄaªàÍPÏùºÖ„c™Býǰã5ìÇÜhÄKƒüöÄÆŸKÿYô~ëÆ4K‡²âr£ 5ÅÉ^N`…ïƒ$ÄbþyXéÄävÌQ2ûñ•;ìÿšTQþ©Ÿ ù–j.:‡%¤2rxJJl‚ Ôˆ\ËétôŒû<Š88ÑÞ ¬Ðj”MÓÉM¢Z."ÿQ—úó6xo'SÈÍÑýM¶–ÏôŽk6ØZk¶7 µ4ªY¾Þ¥ Ïû]q5ÌýäèBÿùµS,éÿqñŒóÁÉœm(øp*ì\`ÌÇѰnÅ»d—«XsG¸•wï~õ&`)ÿW»á?&馇Ó] ûþ p'è<ýlËR³6;ºØ° ›`ùS‚ùPQw,+“5ZŒv_^ê¯éÝÖ æi"ØËmø{Žü*&6–3mÕÑ_ݱ߰~"õ†ŸÉop•(ûLUrbïúÎ +N3ƒ¶ï#ß*nVï›úéjùËp:þéøOöõ\ÖD'vYrîù}ŽqYmfëª94Èzåé èðçQý âè.ÑÕq6µ#g¨?Çܼ\þ“ýþQ¯8ÿHÌÿ˜6Ôþü8’®*3¯¼•û Öê ¿º[t=™¼ë–iT#‰ékQ>Éö¤KaV4²CÐ_m¥þ|”ý¯Ú<,žêIþ‘ZÞT~^ßiÄDáz“Ý”SUǪxr Ûßì¬tËUÔçwÍC}Çõ•ÕαZ'&Ê?·˜Û ØŽ™†±€úó6úaS¢!L¢;ŽúJV}ÅUß¿Ëpj” ì“h°¢£â½Mw”\Ô'Vì¸jÃ;öèS§•{ne~ÔT|¬bþ‡/üÇú_½ÔuÅ}øÿâÅ:òšþýK–q;‹­"+ók¿ð'M—X+R[%Cœr÷ó’ôGz ñ>à¶Udg+¨D[޲‚X¦’ŽN¹U­Qè¯>› ~þõŸ¾òÆØé¯¿zKô±’¿ßˆ¿X)ààÓ¥frmªµ†ÁÜ×ja›GÓ?ñOòrtNùÐhÔÆ[ô· À©´Áæ½böš‘"ˆøéà´5F?,rk~ÿ ÖòpT[¥ñS°¹‰Òg`¿÷‘‹å%ž GSFäûeÿ]?­G †jyBzìîwqY4&³ylõ LH“*ÔúâáïÝoáýº£rš!ršß~>0­£^ßü{õŸËF¶°›¬-¿•—c‰)‡3_µŠ©+§Kx¼É4þNåZœ­È½ùy¹¹Zy³¿˜ŠBf Ù@2ùÅZ‹Ÿg•$iÈ_,Z¬cÄß›Q”Æ’NÇÙè æ£uhjF >6ètkb '²J0Ÿ<Ò’QG”Ç?4‚ÿX­þ²×óñ:uÐÕ¢ûÔ ?ë‰Èw—çäþŸnoE1îClüŒYÚk1•w£½ ÿ&ñèmP32+õàS ’{lÀÛõÀ$ ÿîŽ wzïxœéñ™éðXU¾´â€_VídzŽÍ íÕ};²køUuºè KJg§ÿðLüG)ËAùóR".6ìz¸–ø†ƒÖ¦²÷á¯Õå÷¨?ÏÁ„ööqu_6Vö"ý•'ÖÙ^5…îã¾€û´Áú2£þþ#•”ÄU}r[3ð8ÙFN!üC½w7´íÐ=Ý¡"°üǰ@ o#~uJ?lH¸cDéTI²®‰hžÇÓ/,õ‚:ó™âº¦_Åv¹ðê±÷ž D&S:â[Ë=°ze„rçôS¦N¤Tì‘òœ@o¯»šR/X‹®%—ÕX˜™ùÔ&þÁüÁð†+<5Š)Õ|ž¤Whá΋ƒDd%Ü»ð”¾ÈœB\3û‘“¥Žv:ªÿóÑ `5(ÕήŸë™+†«’«ú¯`náÑËÚ†ÈDž‹ôÛë ßU2ÐÄE÷¥üÿþâ±VXÿê~—{Zk=K}æþV¨/RcW³“\fAó ^ŽUÐ?1®Q—üÃ4i¿ŠJC^ø³¦SëU/ÿU¼¹Ì)Ì9È}› ›{ÍLCñ[Çém¾/r££ŒŽöÁG”Ö;oD!&E|ƒ9uÁ%ÛaZqýÛãŠ}DÈ'Á^Z`ç Éòp ùÅv2ãƒÄçÏ©f,âà?ÂÂhYæVø2x£^ÖvìåS"éJ ú/@Úz`/®ñôïG¿•ˆeW¨GøNËÁžÄ5ûB¾1«œEy9lÅ(+Ïõ.”¶¹“±~¬·†Óçò_ý™b #¿h zý¡èK_&`8FùÁÿx =NJì9{™ ýÕ¯øýüGzìy.Þ{<üÇ5áÉ5{ ð”*ÚnرXrœømü½…à‘1‰+äΖ͙ÚÖŽèLp®m¨ª~$¦nm 4‹šÝ—zb—‡S1:¦*>:èË ˜=ÝOnÀ™{k•Ìñbªƒ¾²Ý¿s6Íð:9±IudlãNô»A£ß&—‹ðÓXsW¦ŽÃàÿgÍ}Æ8Ñ•ø"’Ù,0Ë=ðpEAÀjSÿqBµ°ã9¶ÊÂLgZN䞆|ayÈ1ürNª‡‚ëw•ñ ì­;qÅLò€sÒ[´Šþ‰/Xq»ÄãÕíÓ¨:þü ¹a"0¶ƒàWÑÉæ‚‹nµ÷³¸x¾­XédèªÊÉG̯í)ɼ'/,¡‹ F™îwþ¼>*nèÛø }D‚õ/)&Rà%/±{ÛbÇ·X/åLê§©±ôß}ÎTÿq–ªñ¿å0ºÍ/à*;óÏ÷À£-B…\œü#@å« ÒgÓÖ¥j¦–ñ&¸¢¥î‚½W)UôVYì=*15ãìîÌjg÷¶×¢"ÀÙ¾Fë ã÷êß~X?o|;ü Š™ZehDÞÓ \)+úÚÜ‹Ï0)ËÈ·\èyßa÷; ßUT^õ$ûü“ü£Ž(+â¸ýGýØH”2­ÁÒOPO¦b»ê‘wÔ`bífús-e~íw:êTék¹šúÁ0Þ½‰µ^ò{7Ä5…†î]¸›þW‹Àê§Áö– G~ªJÓ},'øÕUŽYïµì®]®X®t®RvD&©ïgVqø)™’"Žòä4‡j-~oBxÀÞÿyõX« w/ðü#A(ÅýÃÁ^¤Õ/êiéßžÇ,dúRU¢iké3ÒÓX´@M¿ìçÿõ§µ¨Z ƒèä{ÍÍ1 V ôkæáen0ý ?=ãoç83²,†þ* *ó£ö‹²zC‘‰3B%ôâDê?²8üDSâ¤ÆÄÒMÅ,ì.pѯèÆú£¿z¦üÃE=¤Ÿ(‰Ý£k±ôEìLe¬âsò?ýyô4Öa[O{C=Â{ZY:¾Ì:Ùw)9ü*õ‰”†SAu¼>=Q]1ЗaD‘QÍÐÔv#®äAÈn`Ñ/‰¡ìO²ب<ò3YÄ#Ö<®ô(W¶.ó£:êG~qkoiGðiñjyÉ@¼¸³§ÈŒ˜Ïn fLeõGmN"‡;JŸy_|ÇXÖ> Ò†Øÿª¡^ÇìäD¦rOò.<™3ÿ#çĪ›YÃ|bßÿ1†+;Ø=-þã. Š©î'7à@×hÌÑb‰¥Ó½©8±öG¸êœw^γ–.™üæÿ9Â9üfB¹šXvìù|~®‡™ÊŽ}î£þc,öRã?`Ÿ ÿ:‚ÒâõÁµ‡ØK©Å~ «ÀN¯·ŠƒÏZÿq¬,šå Óf5-ñ^¤Ã£%ðïÉî+ºo™YQé_ž¨·1,¢ÂT¦fœž‰ N‡ðF'QÊ%æN¿EÝp¶hëñÈÚî XÎϾ"ÿ˜¦ªÆt¦ˆ®)o©ƒ¸!á?Ã"%g¥³¼ûxòךÔt²^^‘ž|ô$»·<ÀRë4¬þ"˜ÕdX×°ÍNýÇ%æá^—3èÜ´EÂDÙo|Ì) úÝû¢©ûð2E V­ùr%͇‚²\B,f“Dpõ}Ò\ÏÁ¯ƒgå„IHžY‡nå)8Òì"«Ûx꾦E”Ÿ¨l„|JuU_Uþc¾]…±7zàív˜ô†TƒL ÉJüú»•šÇS} þã¥H)›2#ìÇî¤vƒ¨ÊÁ:)ö©Ì®·v6ºYžCÐÈî`oqbz”᪀'Ê+UˆúÁ'ê YŒŸØ ^-dQ–n?ÞóëãM­¨ɽ.Rþ{¼tÀqÄÓ_èÌ?/Šþj¿^œ5×Ða*ÐW3?êv0àGÃðê¼öÄ|‹n¨V&±åi®0n뽘~VLBåÇgÁ÷ÿzÑ™ô¿ª .& ³UCD´ò2­Ä©Ì>`bšð°š„Ñ,F§œX8ú«wØ«&Ö*â¤6dYÅ?䟧±e¼ÈÔW̰DŒuæi¢oìÆà6/Ádª‚£<ƒ´†G÷aŸn¿Šûzýù*m6ùìLqA|m_CŽƒ®U‰“™†G|ˆö YÝD¾Rˆšû î{òõ›`Ô‰î ÏsÙI´ÓT•Ê’%ĵY±¤“ÁšŽrÖY¥3¿¶]©Kÿ2ÿ¸¯-Òó³×}Àøâ£<øÎÜ®&`u~ WeVkÏj$yOu'};ˆÓØéµ"Yˆêé]Í^[8¼EFüÇîFAŽî üÇRk*r‹¸y>i<¹×ZÎ!¶uÝ]A‹îö?ý™¯•" ]GÞ·Û–™ É-;s¦s`Pzá…|¹žGAì¯ÁÄl"CñÂg.¶ºR|f¯ŸÑMÌÍNGβ™§Ûk½•®Ëöø ÔÀ-ƒG?…«¤6“ßćÿXJåÄq8Û$x¸ñÁîËký•Ȉå‹ED|öw7}+á?2Ó#r&õdg¨3¸Çü»ÔDP£ahÒ±ÖNÞ}:úÝ&Ögºÿ>é†Ù“/ùVZ²G)›Œ£šæŸ/ ¥¯mtðöD®ð=U[tÆùÉ?f“øâEÖïÝ5{Y¯†È"«É º]ýŸ—ôO\ÿqž ëìtn´±ísp3íé|¸„Ÿéj·‘#œ'5¼ÖÑÕ}xg©"XFVJ—\"ë¬RsXAy^&ª]úÁ)ä‡é µž8,Ë{–½üjX©6hdcÊú—\Ðç±Ñï^!Æ(¬xëf…T æŸÃÿT­ëÈ1Z®èm¿Ó‡¤=¬ÈGzåwà»ðÔd%E^·ÿ¨£ï4¿€Ž$!ÿð”̃ÖUÍUœ£ýK®â'MWw;¸XDjÅ‹ÂÌ'¥þ#§rôWyω̲T ýîJ}¹oØ”?ˆm_‹^ö!×?tjŸ§ö¡Ó;J]É×-ÔWÊÕÜê3UüIí`X±ätzm Ž*;ù¦ç¥ÿÕ+îU,÷Nx¢UÑsº?sßÐ0½H£ßÒãsŒœôo?©×c•mZq:ï6çkQ©ö;¦U~üÐ3í†yURQØèÛ¢>óÏS?xÍœÅüÅàWW~³Ïã\SÉ"Tpç¥ g5§~°š^Åð­_ÌWææbg ±ÊùÇñ|œŠtè:V³ViêÓNÔ€Ö›é‡åKîàÁW§ˆDâ¶¹%à×~ù*º¹ÿQ(¿6p5Öt/8L8"ÖëØ/"áÖ“ÿdž¡û­-,Åü£ fíLÈBþQž¼f>ª÷Øú\ò:1ÿXÿÎ íno6:Yç°}#ÀÊ‘ Ž$s¨g£ Ú ½lbûG°ÝGQ·¼æZ3é³~âçš –m6•3» b­¦øÚph\náw7ñ¬Æ¤vàQìÔJ[`ƒ|¬½"Pá°t+}‚ÙˆþX¶ ÿq’õÊò· x*Ò?Q2=oµ ÀšVro2€ 8Gæ„à?Öjåà0gÁ &ÿH[>o8Áªˆ½l×›”ÞaEÈ=öb•c¢<›‰§ŸÅºÈÊ:šoõàýÛ0¿¶/çﱊډWhŠ‚›øÉ>ðç>hQ7«X° É?V`KS‚mG¿{ö øUðü#²ñR$åˆÒ0¯o˜ÕV"_ú·GQaª£bµjQ[½†¿T}§EÁ{k„8?9ùÞ;}Içzš‘š+FIï‚æ‰ù‘p+7°SùÙ³Dfòµ?ÿúO_I`®7÷ˆüÄ[ˆ’ç`΂Iù…MK+¥üÂz‡E\<ݲ0䵿àwÆÃè²9V¦$Ä©?_LvSK~â2T%rZHjæ å*ú€_¹äX´XÊS0À¯rÁ~L€™ŽDiÇßQSc°¼§9þãWwú•æ«gÑ™ÃQÑm—½DÀ>sžÝ©Ìc-cˆÂÓz+»¾~;Þá=Ë2„¨ß-¡WöçÏÓäºo!*.ˆÖà%ÖHk¿ÙÚŒ‹õú‹Þ‡ȶœÙ®ZCædíUûé¹>þ¼=°¦3¿v ¹Ä2˜‹•ìÍð‘7Pÿ7°ú¸wáB}–¹X4'—íÆzúóFôß-?ߤ¦ÚØF5ÙµŠX®¶T!~§:%žDá?¾‰à %éß\û¿RÿñE+¥¿s_éëTî²/Üß õE&G×jL5Š™ÉéUˆUÖi•ŒdFæ†Þê À@õÜ¥<‘j ¦‘ž3.ëÛé¿»R¬ÀÞ2ÀÊ~ë8÷™e#  p³•¨ï½-’éÕŒd8(×nŠVâ0êw—éõT"¼|‚Ðá.»±79Myá Kpš83:¼¡" ý¯ÂR?ÁÜh>•a2‡‘½L·cgþWxN¶Û¼â8Ó‘ O7U\ õœ¿j%É76a'8ÌfŽ…Šl‘kí…ÊïïC^¿žÏ³”ßJjÿ«ÝÆ 0ò!xÆsàýáÀ±òuÅ&ûEGVüã6±ÿyPôgTÓõµêRùö«I÷w´kznr§ÿUl´ë_Åê&;³~G°iªæ©r~M»ƒ×ØF^·‰c$cBœÌÒRolÅzÇÃñÉWjàA2rÕ,ÙÜšKÿ«/غ¡°@Èœf¢}Eä÷ZÔ§‹Màö?¯1ÿ|¼˜L¾7;”=ÒlªyÆá)'Ñ· Ì~x"ØØn_Э؜ÃRÐÆ5œûk’í'ýî £ \Qa¼å ª*“óý.¢úÚ?è¸{‚Xz?õÏéŸXGM&ÎM Bt,ç29Xê?‚÷ßÖš½Yïoô_­L»xÀ1íÃF·W&Ò¯*žzˆ¥ÏI>s Û|K„4†±9ÈÞYGþчXJ'—ZŠºì#•ƒœ‰³äÓí‰v ×ø€àO ™Sr]–†áŸDÝÉ"lª³#ÍÖAÖ+&RSÿq”³!hÜüÇ\ê?©…ôûz ²“Ç~«.0]ãŒìˆþê«ô&Oñ…ÿð¡+c¹5P½øßZ{}(¼V[´#ÕÉ¢_‘õfCcÖ›úRLô›d¤š$ üùJ&ÍE¹<Þö&7wÓUx )÷‹™î›|\?nDâ=ö1&¦þ¼!U=Ÿeû=óÄ73÷O&Œ°÷‡Dæ_SïÝ\½?‰‡Û‡¾ã,"¹Û4§ÿîGž°tÖÆZÙý{õƒBDgÔYѵ7W[ôeúCú—Ì1ך{Œôßë¿{ÕüL=ñ6ºÀbÒûÒWTÕ+1y“Šb℈be #ÿ1ýUñŽHë55acˆº«ÂD±j‚D¶ÉiG„N½„H.N˜ÿüØ"ÿâ£I=‹¨ÊG¬œìÌu"ýðæNÿÄd¼×ñ {D,þŸ†ùQ¶^‡ý4O|oÐ3m ÎOKœêøq¨.b12’TĬ$Vÿj„Öók¿ÑŽLàOk((Õ 2/Ô`uÑìŒDA“Ô| ¹Ç VÍÿXÈÎ#:ÿ2RˆI…i&ð«™à)` %ì_3®Õ'«ÞÒÄ­ÿNvVc5YÍ.â»3ÔNf 13lªÏ4{b¿¿pÍò‚xíá^V“<ÃW²þ@ø¥RìòpÎv*±] °“s©þc½–ÜvŒ•ÓÿñÛP˜=oaìk®Z^¬Ýø‡Øþüùz2”¥øºt™‘~š_»Ãh'úà32Àá{cÍ©ÇaƒÈz* ¸öPû¬Ê€õ/Áü¨…èƒSûW—L§#ýÙ†»ŸÉÿÙ:ó] ‡e`ã÷À/ÇËî”R=áˆv ¿zŽêv?QéU¾ö uu²‹Ä÷¾äOñ¸Óá‚õ/Yed¡Êè0{8^Æ©¿1±u#TuøŠÉøHäºk±:Œÿ¨CÿÝÂ\“p?«ÀÏ6re.˜‚a%áêçÔ’öFE¶Úº+W‚_µ¡º1/yÇ|;ØéÚ “Ò‹ê·àWãd+<×v,txvÈÜ×Ú¢¿º÷ñ˜üƒ©†b‚¥+ Nú›*ŠóÂîï"ÿ8ʺ­á?:¢ÃZ+Ô„MS½±Ñ:ýàüÇVý¨ ïö–,4“*ÆY™*™~L†-K†õ„ùSÒ5‘þWŠùµ;AÛªÚƒèÖ¨ÓE«xe¹×ŠÎÓœÂí?Úë̈ä9Èæ‡Ê7Xþ*TŒg@U‘Yƒ©õ¸c·´Óò/¼=–ÕeÁDK«Z ÿ1‡ü£5ØCo¢³gâ*êzdWP}Áìö£&na¯¤~0›ë1õŽy•é: ~ü.ÌŸ…͈Žz%‰L/ÂÒ­õ_¢ë[W‚̺LåNü û"ì‹f‚Hoô7²û×Ôg•©ZòNÔŸ§Cõ{õƒû´7¦‹,¯(cek*õƒ»õÖä>b‰yÔ¼c\„º…åg™q©Ò˜E½àPòÖø‹\ðç×Ñæ Óú!‘Ïj"ÊþóÚ«è"ûÁdB&–«1œŸõ§L<]D"9 N’vaU‰Í?ÿúO_ÉŠÿØÎû¿Ã¢úÜÀ&Ö¶¢¾ÄÅä}òS·ËxD¼ õÞ¬ÒÚa‰¢32Áþ·#åÀ"þŽí9½Ë@TW¿·,$£™-”'“<—òâºM£~{$+– þ|::Î$D=óÈÂŽ›d!bŸKüÔýÕ¯¦ö¾Ò–‚_9µi9*§šä²¿þê<*úp0žÃ±£ï@­N‘åÏÃ'­"8kíiBì_ROo‚ÿ¸I¶1•|æ4þ­ ž;¿ëâ~t7˜÷Aoº`û‡âýpORQ›¥^œr?¹7c¸VÅ,ÆrOGÁ¸'€}šJîÛÑÊRŽ ’<ÊY‡Í8ŒL+7ñý5xü•¨å†šÑ‡Kù¿ºh4Âêå$œ…ÌÝ 'ÙÃiøRtÉð¢69+½GjÓÝv)ÑȬzˆœî*T*T†»/wõûðñþÓ±’wPȳ¶P¹ýâC,ú¥ÎiüÇu4½ÿQ<ì9þî4¾$2gò^Ú?q<õ­¹Òo8«-às7-f-T5ñ³á’Rÿÿ±“ùçõÉBÊã?–ÐykøÞ"bºÁú_Õ†ÿ¨L~{šªÕnXÜ—ô/™ó¾úÁÔiäa–kt&Wì&ÿŠlo%—éG·ò(ŽßB5|#~u@«ª/ÃlÃQÕK¼*úáÝîQ'Ó®GT>…:ï̯=Mò'Ç\þ|˜Þ`°½O¬ =‚ ¿Ú¥/1l2Hçž–Uô”Aq_Ö‡ßñ¤"å!c¹Æâ¾ÑwºË¼Éê¾ú²×‰+Ø“ç%ŽÈ*2¹ýGCÿþ%‘Ðj̤gÛ9ôW¹U:ú·OÀÒ§ƒÿØno¥3þ.š=På…å/ÅýÎ¤Ž¡‘qfÃ=éd92õ[f®>Ý%LàO¼Ò !í6®d®< u×ÔI²˜úö8×#Wf×Kü]*ð«upò/dy»Èí;ᆕ´2›ØôcÁÿàÇ×tlåÞ«·Qófrö{‡‘ŠúÁ„ÆôW¹Ì¯þõ¾Z]#ƒÑ‹ùçú”°h‘Þñ©æg¾µ°Æ)Ⱦgš'Æý1½É?®Oôä¿uœ[ÍhþøU=¾ Äw7E<=•ñ]”C[Q˜®Þ™¬zfØ*Ú§èwõâ+ï+žËÁ¬×†ö;ö¯ž@c™ lfàåNè—¯b˜›˜ªèIþ1+7?r¿ô»èôŠGDžœ¾ã.lÑ„0àW—´ÄõcÄ3ñ½½‚:½ü(:š€-%Oz@ÄM^Àƒ:³ªÒ13+I(Wq•ÑDmÞçÿ=°ÑÕAáÇÁ¤æƒe^ÀwÏâ?ŠÉo =¨¢l­ÿꬓ±CRXqå|Î% öô*†Æx±×és®àtžñ·øÐ[Ï1­-»R•cXÇx5|*?±ýFòJ§þ#"èEgz2#Ã89Í<Ûjò¯t rfÊ,u?¹7e‘–›Ús­¨Øû–àçðr­a·Ê`¯î¦‰PPåB ëµÆ÷ÝÕb|ðIPë1fÌŸôW»Œ¿°zU­8àK[É.îbVp•ŽÈÖª0=c{¢¸M§.É⪆š >ìî ¾ã,‘yAºoÎ v_"O„„C)€½Ý‡ß@ŽæÍä%&KÈMèwïèì·c’ÄSššB=@Øþ#¼ût™Á¹*ƾ +Î2RÂÞý Ú—D¬1ê‡øôНšá?×'âšDwø¶Ìÿ¸ÎÑ¥òg÷⨄±›Í‚¬—ýnü½xÇƒÖ 9™jĦj>úÝ'0Èy©ý‹‚òôþÈÃöÁÊ÷@¯åÌãšGÿÄ"Ô˜ÔŸ;øÕ"²ÐúÄ;N/ËGb6ìÌ}æZ9óÇ¢×õ„eHEÿÃyv[Tc]©C_@·áÔêDg~TLvÀ—@½çŽ3?*xÞKîXNú_õ?_ÁüÚT¥,V—ÈD¢»–sõ¾Ù_ély•ú1Ìz‹ÿhÛÕSžµÂ“uûÚúYS€Šàþ ;ò±ªNÌtú·gY;N½d}˜?È—:ÓçpÚ«Å0ßà¿C.òŒôríÞ…{ô•æ8\ìGrä?íÊ®óT vS×ÑR{sízºNÀŸï§^%Ó€¨ltª)bǃçû Ö“WgcGV Ó´¡€ÿ¿óêøU@ÅÇ%øÐ_½oZý9úݥ̪ ~Մݵ–úÁ\Fc±áÁóõ{úÝçZ$¤² ×»©åe¾A¼Sÿb£ÌCæyºaýÿáÿÑÊÚH¼ët!¾‹èzCÃ&—Í$rƒ_åE#¶ùó¨ÿ/c7¥lM}Þ›ŸJžÎ ÷­ðw]`°SŠæº_]¬@_b^4·Rÿñ˜Û‰g?bãk€[}#Z޵ýD´~üª0ºS¿ Ïl EÜ/_k¥¨ÿŽ"ÀÁw¢“-JÖP K8‡Xî ü‡35°4~j1Ç%TýÕ%£'Œþk<‘å°ÙàhÅ­èDŽc°ªOÉIž¡+º·ò”¨›UVüñËNýú =••¬Û©ˆc)븨Ä5»Gýì]0u/xääçð(kÑÉ­çzœE•7Ä*•:t}Hî£É)ø£ãEŽ,.WÍ%û[£Qq„W[±ÆeðcˆíñœÄ× Q¿»ùç PÜÆÃ 5ÅÞK9š»0ÖuŸ çÕqr,_Ðzr…”r!×s+sÇ8ÞLdÛ+Ø_ž¶Ò‹ ô»méå¨ S8”#ožþ|£R<„=Ï Æ6‘|¦õíÐUoäß(üÇ[žºÃ"ެmupûm( çPm:ÏVÐ:$bØÍ©ÿÈ«z0³÷/º2grÔkW×]µèÌ?ŸJ틉®+ŠìG îEÇö°{ê‰Ýî3þϽø¨åÖ&iÜ¿JdŸ…ýHb ßel52Ò9â^‰UR?XÑøÓXG“×Ú¯ªÊB~‡×ä.âÉ:`·ÕA^mú'òéÔŸ?1îÿfŸ•ÓèwëSKà Ãç°oÉ?Ú'ú««è¯J›a›œ5•J¬ïæ-ìý<›ÓݼúÝ¢´Øëf5"ÚJþ‘ùç«B>¹ _MaÞf*V Vkyc“ރɔ³œü3ö8YwøÆï-®…zo¤^…N'CÄ-¡È¾7“½å¿*i±Ü%¬l.lY˜fyR?ZÿöCFsª~x ß'1š£ñÄøÀÑæ¥ÿÕtlýaPog:èõÆ¢ç/û'Zúa=qZ<<Ò7q–l ˆÝ ytiþÃ"v½ŠÞ ¾žw2.úÝMTZDÃRu`RD4âû ä$3° y˜åK¯“12%‘r#híéb#5»Ë¼®8ëUÇ®yP+=EUd>âXêý⸞¡gIubkbç9º„ðÓÇñs©,hÝ6;9¦"ûnüy3ü­¯uOk^UŒŽ kà?^Òã| þ¨»ÊLþ1­ì‚Ó‘2¶jEÛfî›qœžûx*Ég¬–™^º -ƒ:áðçá?ÚÛõ¨ÓˆÏd¥‰öôø _®=ŠúêÁºÁOIÅšî^o³¾ÉøB'kDOEU|öo2·d\¯\ö<ê×'¢¼Z ~õÆþ3u™¹OÑÕÄ íZÙŽ'0úÝüîü£!õƒq@‰3“ôËE#ËS¥¡–¤;øU<ù9ò¡Ú(κ’su#OjgVÇ`¾ÿ$»}ÌóxkUÌjâÞ…>újW«‘ ÃÓŸ±ìÂtK,®z«ËÔÖŸ Ž¤œë9ÓX4W”\/m§§–Aÿ’¸à´’ 8–UDµ‚ø=†À}yþŸ^<†1¨<­5ú·ç:ýK2+‚f7ð«Aì®5Z5òÖô¿Š‰¾ñ÷ª#S>¡+v¥5Õ`GŒìÆ:ú·eþùø—¿Ùçq½™+?Žêã[¬9ZÞ×Z\ã }FQHì[nÆþ%Cô—º)"ÊÛ(ès…En€ŽNX)Än<ÓIŽ9©5ÄšŽÿøbî ý‰C?á-"Q¸ƒ1-#«ñÉBDþœØ<>ºŸÜdñ°‘§ÅÓ ÏlH‹¯ÕzSßOÜ‘зlã·r~UÇÒ ´<±baº/c‡æcíËZqÍü¡¬8ÇhEõó%#8!Æ<å‚Ã…]ÊK¶0öûgí OóÉË‹®ú¯Tg¯´ýz:¦h¬"ëËH6óˆ.ÈuÁô¯Å9üÇHp”Dé7È@¶à=˜®;\”5"œ€s.¨×4ÿBùeÉqxÂËØñ"øÝt(pc‚Œ0™šŽz´#½9zà-—â?’q%¾£¿Úå~rV›Lÿ«ÉbÞh:þ"‹ü÷R“’Ÿ¨»Š¿}ÒƒÖ üÊÉ?fpý–ò3›PЧbpþãú«aD¨Ñ@¯ÖÁá?aoø’ÿ/Dýù*ײ¡Ž­:4/뻋ÚóshP Ñókt°ûòXVL"©4øÕÌ\OÆu­n85SzÓƒüVõˆ™L!’júÝò¾îùG$ü˜¬ûl#>9é´™ÈhJ¡Òˆ ´Ly’ŒO°AKžÚ£à/jSáèG®#»ˆz`"*«²TÝv r„EIº°Üâ~”ãzm²®ÉQè¯:fPwè_’–ú/XëÙôOŒGµÆpŪø·ðGiTüGÀü‹ô_GþÑk[]vQ,¢:þ6úÝTöÕÇ÷6A ,ñ#É–2IpøÕc2šõò-QS¼q\kŠûæúê>†E p…ÝZTe€c¨NŽ®%eí¹Ìø†Z`­½/ªÎKðÔ[õ•aG®`gª¦ QBÔrûZÔD@Yo´ü&Ò[UrW{6sÓ¢„».l³q§qÎ#UajÒÓ£iK¢fc1žƒµžId=fHü8À¹úTrßàÙ¿ÇÅW4Vñ]‰ð誼 oG×m¾bÒ#%ùÑ4:?ÿH ¡Ý=‰'+D¶™Oìú±àðã3­¼®¹wÂ9˜«W•I¿®2éè¿ûD¯ÊšÛ´ÊL®íjì  –¦ÿÞÙÑ>š6ö  ¢ütˆ8 Z`.óÌmæYãÑoί=fF—í‰ëj-W´:ŸÕ’wÐÅ"­ðFáZ2Œú«%ú=ÝC¼Gô<¡÷¯Ì|8«€XI>ršœ)%º¬AÔD¿R²¾ÁQȧΊÂìù?¨¦bpf°þ‰Ä숿¹Z™Ðä–ÿ}‚±~U {:ÊŽê:BýyêÛÐqêj®tÜóóDøÓä <õ³w#l Rà%OpïJ¡`Ûa]—Céç[K-—©è(µäþ¹:oÏF±<˜Þ„NÿÄ‘²Þx7™l*ÕD^íÜWð 1íZ<[qvE92©b»õQcfcòžèx«ÚÿPƒ½8ø“Ów’|S±ýî(¼G ù^ w¯wù犯ú¢ÍÈ©P?mAøótøšË,/›É~—ùÿýÖÏñÕbꑊb׎œ°­¼h)46yÜþ£#ü‡ JœŽßI†¥mÇüó¼xÉ) b/Ñ)×£†=ÙÑ-|hV{ƒýE®dòÓ$ËñÍIæAäпý€>ƒùQ ­Ñ éèôEÕ=,J>x…*óõ¨º20¢+5}ÍåƒþꋌÏüA– ÞkZ…‰x²ˆ° åî‹ò¿ôâ¥VH¿ã^ë<Õ ÿ.ž»š®¼¤YŠú¼ÛsÓ¿¤1ËøªøMýî;í‘¿ÿÈŽ5Œa5dþàúÃ?DµØô1wWõ8U÷‰üôb‹)de”ÿ¬XÏb·ÈÿqE$·˜BÌÍÌÆúóùú'ú·?'_x‡2¬3Ï`iÙÍ Oä}ŽÏ°¢ƒÉôq©?ßóÓqüü…”ÔCž†Ðå$Ы%ð gØáß±ÉN}{ty´›k‹™¸ç‚<³?¯¥iBoŽp<ñòÙDIéш×B 7s~D5 [ûֈʊ;?±æÁï±ñÃ&&ýŠ…-ƒ}³p%Á),ã!,d>ؤúÖŒ¯eƒ?޾пŠåšh ŠòØêƒuN‡©@þ±›ìã:yØbÞ³?G‰ôæ×V¬®1[ó“|ŠÓÿjuÀžð/È@ª¢¿ò4_à?ÊÚ QcYg:ØÖm0º‹¡ä‘I8†åxÚ[ä»@î ‡-K;87Õ%TQµ Ä,W`¯£‹@§ÌþÁîKJêÏc“¥%ÿ˜ ˾œsøU$*òö hº†&ç3UÉgˆæ_bÁúóóàC»PÉz{¼Ó7Yq ú«–þùGz¼b¢j -éŸ8 Ë—Úµ—ô–(Œ[Ów7õƒqÈ<Ð £¿ÚH qÈü3Èz­DZ¼ìEîG}²©CÖY¹ÛÙýVô»ð)è•}íÞÌÛIµÊLÙžl¡¾u5þ2¼*"w‹î+xZk§Ï®Å5¯&•ü*ÖZ6~¢óüÚ · î´üi>Ú¤qê%žÓ‹þ»ðô‹äxùd çÄH÷z[ô}ÆgGsEƘ^f7w`ÊûBû}P–¨«Ôf|‚‰Ãõ{LÇB-o5TY&ž«yJ+²©XĘ)ÝþcsP¿b9J³Ë¢•ÕÿQŠyƒÅ`ö«R‡“šAŸÁÄDm1-7£šFv{™çñªH-[¸wáJ}¾9WÔaµþ(Û.Q?Xõ[ êϪ„ºÆ‹¢) í›LQøÊ×b©Ãcœ.à›a@Æ¢n›‚:QˆøUžºN¼û{Þ79~ÛÿÁ¼qìÎW4 Ì æ[¸ÞÞ¨J‡“9Í"ÚŽA-É]QuóϸM«ËlËQpïÀå  /ƒ{DÅÆ Ù¥P,¹ß²—wµ¯ªÅì£þØóÉä %ÌÈôw úçýg’©%‚? £{.e«Už*é?UIüÇ`êò1W£8ÝLßG">^Èǽ\×4ìÏàý¯¢DDòÑTþD¿»‘}²‹*ê(t´=AÙ«ÔÜaþà=ø ]µÇÚç£úc; uÖKÁü£Aîôr#:ÑÉ~®U^®Æ ±éL8I5Eo;‹~#q\¶ë³½€ü¦“ªIž”—þŽCð[>ÜùuøÅ[fŸ ëõBU}Æ úïÖ‘~Ös²¢¡0ï™GÓåͤØê ÕyñÔ@*7Å@kX—Ýø£™ô¬*A½_7÷¼¬ÍÓ×£8›²Çnòd]W™_ûJUg~T'ìþ"ð«ÍôOEÁ!ô<‡ò ;Þý >Xáÿ/‹ îõèWpððŸÙ%‰”ŸèL7Æ~x³k¬³ ýÕ0:·Ïàêy¸>1qã‹Ä㛉Ìé}„¶|‡§DtÉä˜á9ÖL<Ë#4þcÑ“x~$ê¡[䯅ӽ™U[·++û˜|ɾ澳†ULTÖ¥´û¢í…ÿ(Fí[uÞ{$×é*OMu”^ò;u— ÉbËPs]å.âß ži¢\ˆŠëͦøÚDø°<Ãj¼y)¢»÷VrY“ÌAf bóéD¹ýYgùW øOd uBðë´2Ìÿ˜G„8A6Ârhè¯já13íˆOɉR¹$ìö~þeB-µìð>dIEͨFðÞÿŒ ¢/þ#ˆ×L𫳰xûPÀ½Â”¦FÙ +ê¿æª,Cì}.±þ0ã“ÑÛvƒƒÝéè†"·jí¨ŸÑN_‘kð“è_’G=“¾ õ§a¥Ï1…ïþ#¼CþQŽüÃáûÛÈô ˜‘ ï +n5²rÁ^%&Ÿ)F´âúj­AG•ù &©]ïí[Xç/r„jŒ~7'øÚtVßÃÿ'A”¯š=ƒ¬×JDCátÔ±,žá åGW•ŪŠÚ"3Sÿ1ÿñPb®ø;9A¥¦I¬x¸mcUU ÄìÒfè{Pý Áâ7».X}=é'U¯4€ÊHÿÄ>öTuÿÑÐ>(Ÿp—¼åWþÈ:¨ÿÕ ý‰ù U•e/¯¥Ëý8ªÎ‹2Gý¬Z`§%縅ÞÌ 7áúa•gÚ¡×ï4U@QPDqûNúÓb7åä)ÿQß¡ »êà?J3Q$ê«ót0ŽFûêÌÆ8#ŸYÚ<ª7gwÑÂÈ ¾Ó0Œ—¿9ð–v‰ùQTæà?Ò0Íúª‘¸§Ç§¯ìó ó£Âa«Öøq“ÌWD§cé±™5Û0ð«VÕ8GÝ÷m3±ØŸž&Ô^´ÿ³VOýœžHèDlÏÉj}”#ˆåSˆM DgYý£ø¬)©¸dþ ÉùqTÎÇÈô/1Y)¢»Øz 2V—§ÚĆ5?ÿªTXto(yf¯òãõy­ñÈBø’hX üV^ާ Þb±ôršLòyÂ|vk1K™Îœ¯õg—1’:—qìì+XËç¢+–¿%ÿÔ'J_‚—»ã]þc‰UÒ*.ÊýR¿›üª0 ð"îDŽ@RÑ€ÕÞ[Så7ro0hİǹ²ëÀ±–àf¡„nfF á(ëêCÍ®xqPº|dKñŠå‰ _ÃRŸ¦¿ø03"jÖ D¹“AÙæÀTyà?Þ€À…4?júݩ›ë>þ<¶Æ Ï6lr‰lNÖËø˜xþ•tÙYs#÷Ê©pœVшì—ÃÄ "Ôþ9K~pïdªžô'i†ÇØ G½\%ª¼Œ$1Œ÷flÜÞ« þcy°õâû×t$[XÅ1œ ñÛKP¡æBq5ŸÚˆSè||@qüÀŸb«aDàžòïíý+b7ÿ1×HF¶| Öé¨U‡»—F­¤—ÔdYœh<³Ï_Ðßc+|ÅhÕˆã,° ŒhxÓ®´&Æ9Â’"9ú]?rÉëlÂÌV­™Ž˜“¾‰Ëé¸þ‰È~žzŒ.+=…Ⱦ :­ œïQ*VêÉ—¢{.¢ûBvE7ôÀõQ"_3¬Xä ™?8œð%û$ýKå÷ÅOEétµºs…êI¦”Î}ª{½£ô/yE%ûKöHUU‹'b8•ôÃí¨l7’iŒg2ì*¦oÅs}Auœi" ¨vOIýùHη gS@T‰Üþ£~Ùü€.»åM™›p—mT~z‹ÌÅ”¡æ|0jàIÔvÃò¦®sóg2Ûk ¬æ}öê=Ћ~ð«}úzæR´ DmÚ%æw=µóÀ’yÁÁ[¶¥É[²|õ:=óQé“Èö “ƒ ’Èú“x¡¹Xî>ãÿÜ‹wZ=`ïßÔêÿ&¯p¤’é¤)éß^þü¤ÞŠÝµ€þí¥VÆ #žñý7ë?¼µ›æuQ‘èi…y ðýHÏ&óù”.Èþ 8Ž_55Éâtʆÿ(oÕOÄ-==éêZžBÐÇ/5ýÛÆÜͤÎþ­)AÈïÐݱÏ`9 ›[춦’¤èk­±á?ÂRžŒ~ô§Eq+º4kí‡e"ý›šä$7Šqg^æ±;ÔsÞ¦ B§:îÒ_ñù­¢ÖQï1ÔmX• X…ÈGàE¢…ê?æí-)»ƒÔœ$7º,œùL‰B?3MVD¿;«x˜kS~âìéÏ$šè·C¾ÚEm-øU5¹ž=öÙ™_Û•Ó%òïû¬»™g5±ë¾²‰Ln)?ƒNLd ±3@!½¡Ù“{Iz¡¤<€‡ðäol¿¼C|Ñ’þ‰;A[*=9jåÄvÏà…þ` ÌÏ8E+hŽ`ã7à+J¡ X2Õ™óò"NîD†pfø$Þä ö)ƒœe­$š]È5ñ¶ú›ßôOÁ–ô5úŠÁÜÇ\0[É?î‚nÂì¡ãUNâÊT'¡ÚÏva9ŸØµ/ü¹/ µ3¡}r°;ýR×ñ¹ÝÈÞ–±¿ÀgÞÄvy€_yƒéØÓ¼tí‹ "VLÅQSyÇ,Dä;ÈV˜@Ž¿Žñ“ÿˆKLpŠþÀNÿ«Zò”‰~ëkÔpæ´¢â "x»SëÌ+ïMžT‹ã[€Õ]Hös¿øÄ š!åI¸FÐËõÇn´îÈí(£:©0<·Ðï–´ï©÷ôü:#‚¼ì¥Œ.a?ÞpƒŒ¦ŠR…€_mGÚ‡¸¤ »¢¹ÞiÑ ýÕ |®mWRÃðé7ìJÔŸzÂAj4½«ÎâÛ¢,øŽj$üÇ1É}GNßS닎jŽUN…§î¨#g1½AEŽè3•3‘©ôF/`à1]®.öæGIx®žx$ºÓ•§M ýn!ÝþWIyÒỲĦLT)\…`yê_Ÿƒ",üGT*Ù À®ä»Ë¤¦“¼aú¡ÞlkµuïÂÍú\ê?P÷ð”U§âµ‡^Wùé4ìÃT°•åtòov)×P¦àÆq=¤â¾8õÙaL¿ÃºF#²I+ëþWêÏ©”q\ÒJè¡!âîÛìE<ºå6ÁŸW4¯êuÙÿ«µFêϽ8ä¿Wÿq™þ%Ÿa+2‚Û$°›˜a¸ Nä¤ð5˜.óµž-Øìp‚}Ú×tÉ"诊cï‚`œ6Õ*EetØY©FÏg5 ±Ê Ø2|:V?Ký „;¶á=š‚µ4—àTR‰ýàWGÉíƒÜ¯¢~ðöÿ!î-À«È¶­í’Uµjãî®ÁÝÝÝÝݵ¦qwwm$h Á‚‚…`Á îî'ÈÿVîa‡pïÿõá>ç’ÉÚ«ªVMcÌ9õÈh–ú!Ýî㡘«‰iÇá5Î󾟸 þŸ˜ï\àWÑQÍ.ë"¼æµJ=¬ädúïFcÞ‰eÍÇV a<¶ç5xOn´š5±Í®xC/ÁŠÓñÙDz‚Å0vw”‚tKœ‹ÈCþ1Tæ¶>+ìR0¨šðJ·ÂÞ´ ï$P÷¨ùɨfgzDßÊV|ýÀèg~…ã‹b󭱌ØîÆîc¿ëìÆüÚà ×à¥+«ôÜýØæ0Do5‰‹££q±@¬® ¿Š!í)%õ@¢Æ’Ë çžs_êÎ77xµÉÌÿ#ág5™ Šø'5ƒ}PÖ–$×ÚOË ßëØz°üÇzöº ?<›þW¡ûïz“ CéÎ};øÐuî:Ë-èwó1£nùG|ê*ÊÉFTv3Óó ç¹§g`ˆÅòPÏE× Ä)+þc 8ÒR,õ|ú—¼ÅfzÓ¿}¿¬kÙ5j×á/bÉ%d3ÅÍ/¬xœ5ñÙFRª§‚¯–ÞBZ*âwa¥‹¡/®KÆÆoÙZ$üÇŸLPJï8Çäíåò8xVkð«¦äûx ›ØLLrJïb½¼"?6ì±D3s€¹Á¸f.ë,w¢ÿ½A4^Áz/?ƒ]6{õOœ‹N¡jåý\MtYÅ|$þrnÏ*´y䑽ÌÇF2³{T%c"ù|ú··f&Õ4XêãðÇ>èÃd %¿¹ ó1‘L*/’-‚òSýÇeu·–„g@Q\VBóÚ”Ÿ«¬ÇáOLÞzOα‡~-Ïäù¼i‚¼#¹õƒ¡a&$5buDgþQƒ9¨OA,2pÖšvÖÔ”  ¥wÁçïÙOdÕ†ïŸNžàI/D_ú'º‚ŽÞÇ>œŒ)ÎSèÄtÀ2 kð§ee‡áÈEÿ° r¯U6~-ókз O8¥c>)ó^2·¼+1av³™ðvÞÁï‹× VÁêú§J•ŸÐ¬ßÛEJ»;ýwóëEõÛAúÝÔŸçf"ú>MjÏ•_M…ÿS^*÷é*XlÏž3쩟Ôî©ûÔ÷úAq[¿©gaDÊÓë.ÖAW“kÚuÍÄ‘B-ÉL·BÄ™ šþ%B¼!?ø¿†¨×ÔtB1_ÒŸªÀK2öqĽùÅ:ììY¾“¼d«¨,üôÁ¿ö˯,}»~ª¶ïXËíØàD…°;Â|J>›…ˆœž]" Öq°ØáŸ*v¿]7ð.‹Ê¹äe©Ó«Lœ¼Ü¨Ät üè,+ïRQ#f„õçîZ'Þä¾ 9>xÅ@òÌÄHÙ@ÁçbóÞc=’53zEþÑ™ùµµÔs¿¸Ö$øøžyx®,à>üª)«½Àèf~c8ZÛÏðæ>`e0±Ø%}nÉ?Âë5PG©wÆ×¤1=Aâ«ãwSòŽÚ}_<ôšúG¸îQä=È?–ãmýÕ{üÇ|盼QwúïÎnðN£JÉšNœ1¥À(xáâø ¦þ¢‡õ;Š ¾µ æc;ôc§Kõdڇू¾òÓ&‹qX‰â(h÷ÃÝ7úãekæהňôûbñÓ×E©‰èVÒz?» ‡›Y“úϹ¡žtFô» ÐäÃ]«Yò´žjk {²L¾ÄÒ4¥Ï«”wÍtðçvÅI-ªC.áÏ7ËðÌ2„ê¿ë©%Å;îàÔåc ÍFô¶+ähæ"®æ¸Lÿö5T~ØýÛ/ bÍ‹-}>#HñHïb‡ô§%+;KÖ `¯q•üc¹ÕyÖ»ƒ\ÆúÂä£uòŠÙŸêé|æxº~àJ.˜±euð¦ÁÎ;xHé¤N!2hoú“5ä5¯‹éF!é°fc;€éØóO‚_ùá—z€ºõ%¿ymÞçIyÑ¿d4ç23ú«UÎõ΂_ÅbçD%…d^Êè *ã5óÞË(wXûɹ>Êsò.Shw¡pøFd2€ûÇÿè-‘ÿ§þ»mÕ‡ºÃHËiÛjüMvT‚ùñùñb½¬dx¤µLbiÆW­©wœÖ”¯7 k+ïä;г3°§ÝÁÐlЛüÃCt&VÍ;y[<“‰ey§è&ß“U8îÓ÷&x[fª17â;ÞQÿ‘Äâ›8Ç™oIÙþ¿â?^R«“ÒyÐÿ*¸Öë‹Üßé¨ÿHE·Ä"àWOƒú—lVÊS>þ<)ï×áÈ-óŸŸ:¤\ÑÀûÃÒ´£šøJ`üþᯟÓß0ÿ<·sבYx¢Å숮¾Œ­1ꇪª ~Õ”ZôZ¨•*â?"—y-`þ`lKÕüqÇøËHþ_¬&{¸AmU1b]wQX¼‰”ÿˆAÿ«søµ¯ØâÄÉÔÂ5¿zf0¶"!¸›ÚͲÆaq<ÂkÞ¬4‚/wŸ‹ ›p¶»€¡‚Ø­'7ªd¾!WÈJ]šÏ²í­K„ó?&k½PÄN†=ðçw®ˆ9ä ù±² ˆõ  ¶]€Ï;‰W*[³ ¼§‘è«ÞÿÅy¢¸«iQÄ. *ˆ7z+|É?ªa)†Ðÿ)ZÈÆxÍýx£+h]/¡.]ƒÚz§(nfXEm¤OB–É\BŒáÍ+c4å]zÃGýGý=±údaƒƒü‡Ý5åšPà[ö;ßÜàÎVÊÒÃnWæžÿ1ë?½Ó˜„|è£Ná5}ÑØî%.MaÚÕðgÈ÷é ÀgCþñÑú‹Édj©°ºAöyö¡«wG¿»ä;éß~ʬ"ëH»b1-h` Üùø…¶°g‹B=iýwS‘íf‘ÿF—À5<w"w{²Y~“Þ²]û¢ÉÛfQ8êx¼òæó1xØ:³8kLíLˆ×hé9WPmƒ“©f^6ÒÂ~Ì•ƒÀ¿Æ0›/> Rű©1üÇ]l}A2OôC™:X›ùç}C¬—Z O»€o¾Êð1·ÂÿþÁ„Eº¿Ã d .ÛáX[3n›ÀñzÁ+Ágž¡þ£’ùâ'þÜMè<žlð«ŽÔÑ¿¤¶.:Ø1pÒýÀ¯Fyƒß³6Ó)wx‘«u…j—‘¬š í@<ûÿŒ`ÿ±úÁ8f#žà4Xž¼Ÿíš+Ý–7¾·5ÓN&áb;è‚¿R»±I¾‘Y@ÎS“ÓÍmBºÛ÷Ol >×MìRNÞ¡¹T>Ö2:É:ô/ñ@¹EæG¤÷UFØ B ÜÆü¨}èwWÁq>!v:/Rš]~â?<ÕÅúFчh©hP­zŽ$ŽR(nÑͱþl…ã9ÓÏïX¥­äø–ÕôþJ‰ÿLBöÿAlå]ʉb êŵÔOþÃ_©ü›saƒßš¨Ì?GÿÄ"ôßU4»»ÁtôWÙµ¡ÚQ-¦v_‰ ¼Ú帮€ 41‘÷ný)3Dv¨—õ#bŸî¯Õ¾ü&O3O×x/‰ÖX«?˜_û]…ú=C€^­‘-ÌÜÄÊýQ´ž§ßá¹ÝìIà üGb{"Õ4Ó ]ÙYÝf8ƒÿTAU¤Çßø{ÞxÁüéôßõ£å •ÙÅÐÞ¦q¬—›¸þtÖ>¢ñø™½ 'Èš˜§EOçb‹é5×xG\fÏÖÉÁ¿Í¤þã1˜_ë¼Ù«þ#!ýÖÿFeãEÓ¬CæK”¶îddýÀ¯,3º±Õ¹Þu‡ݬÄéw7 Ëp;¸7vÿÄN(Âvá?>Ó»ê Yˆim£I«—¼-¿a—‡ðrŒh¢ÒOóÏ[ÍÿHÉ{@u’ùJ¯iœ‘y)É?ÆÑ§å$¹ÈN°«’Tñ¿—£ÐJ­¤þ|å"7q>A#xŒw³ÙOþc³º ýU7ÞÍNäFOD4æ×ªŽôß}-G°3k’ã5ýw}É?¢J˱UVFÙÀÊ~õUøQ?˜™Œ«â…ÿ±Jâ< '•j ç9@¤¾HHþ‘þ¼^ŸþWUYåˆR„ùƒ½àÏ¿ªß”ß›_{Q¹ªkày@‹Ñ_%$¿D¤~J÷Ö¿i³Îq»‡g¶{u+×;"Ô¸hZj Ãn$^¢Ëjn—×°—>R}¦&±îÂl~BÆ>ËšCì ¢;Ž¥Í î´ŠŽ9÷"5ÿ<ª¾þ¼Vs%˜É"B_ð+Ã|ÁÿF¢‚Ÿz˜Bx…s>¥>ºØ¹dT_Pel%/ʃޣ!ös1ÓEâåJ¼•Õa“§ˆ0ÿX¢ÙÝ`¬ýÖ¸+Æâ+ïÌ€WÎLþaÏ+9 ß]È|ÇÒýnï_Îz¬ìR3â¿–q-ÙÙÁ7º¬t$B¸gL"¾OH¬Öh/½É?.ãI½°Í«±Ñ›DY=¼ZŸªj;}0w? ¼Qq¢/ÎI¢Â/¨ì‡íô2úWìÉ"ñAÔ¾¬K6ðÆþp8þc•’Aï'f“/ÌÀV¦%»ü›ÌhÙR/âê¨à@Ê.à]²Ç¬\Ãv¼Ç ²Ù;œÎaê?n3ÿc2qzZâëãä—ñ®x“kÄóɨR›ŒÅÏ$ïQ]×ÿÑ ÃZXçåd ËÁ¯æ…©?çDNâ‰BÔï%XÉ]ÛJþ|ýKQ…}èYæF“3È  0 ä4Ÿ>Þ¯‘ ÿ±‰üãO4n¶ÿðãH‡Û¥äEÑ_ ¿ú»ðuìQø{~m3r°-¨›Öà?Ž˄Ư ‰ø«<¹VàH{Ûæ|j:ËCÌÿ¸O‘þ‰/ˆÍ7ƒ‡%²|Xk,˜Ø} ÇÌD²8UÜÁóÏw0pñTrðF<‹kb¼‘F{<š¦!Ì(ˆÿða•«° ä2”¬ó-_²²ÉxBíYZØ«€Ÿª±P?“Ý=„ï.-k’É…LN¯º–;Ï¢þc ø•å̹î4‹Îé P~ áÙu&ÿˆÉüó2Ú[Ð;<yù(ó9É@™€þ%³éXR…NÈ@ÿ´JqÕoìŠ~úäsK!£‰ü̧ß³²1Ày Ð t¶èʉ²§Uœa~m5f–#¨‚oŒ6`š5ÀqÆ‘ «}w ¦z¹Ð鬘U˜“­“¡G!zKa6ûlð_ü;–ÚJ Ö®ßQê«¿§‹ Þjfâò¼Ú<­†^R¿Äœ¿*MG“=ôoù›øÕô»¯à?ʉxR›é¸• \À{Ÿ„o~¨]VãEhKƒ÷¦(žú{¬ÌzÑ{×|™ŠAú·?»l-Ú3m)‹Q7’øÕú_eFÝtŽÌ£='è:‘I†eÔk@yüÈAò}ðEÅÖHõOŒ¥ûê7QØÞ'–÷€•xGþÑžüC1AÆàÏ?c¯‹Äè“þ"¼fC­‰^w#þ&&Qïz#=Y¶Š]]Šw*H}°ˆØi˜ à3©@-[+zir£¹²“Tpò&§Ã*fä]²ðŒuN“}\&6¿ÅmÿÑì—óÏ“¨oÕ|(ÊlÿQÏÿ€Šº ˜Ó#£“ˆ× ×ý\è4;«nÃê¯A5K÷ó£üÏ×-ÔéúP˜’ ô'©È»· ¤®$ø±?1ˆ™ä£õïT?ô%~ý ÿ±Ÿ’„>Æ þ*<þc«Ò˜wx5*¸¹ðºÙ°53`f†À 7[€¿‚å/†öêDJØŠµìm3ãY>wºþZ}j‡§´Q .MÙÝU°þ*(úà?ÎÒ¤0q¾+•éä³´¬!Ý±ß ù¸ŠÛDæ-Q¯õ\rSëš”l77Ýr_`ÕvÂülÇWDC±§­^@5uØúŠÿÉ(r1ŒKIr™K|ÞXòÂF2-¤öb§–o¬¯(+ÖÇûg¥ÿÕ49ŠùVýèDÓqŠø~ú«1² YMsžö&Ц=ìñ4qÝe½yˆ–©ñ0gÈÆÚ`uwMð«úð'À(L°òaKÁ±Øí`ú_ye ÁOŸd‡—Íx²2õƒÁþc2R]‚ÿ «"ùGZ¢5F]p¦>V*اW•wJkù‚4õã^&î?HO°qàWqå0z%Kºâ®t>õª|𠧪 ¬JœñO%õÑž{K•ʘói¨×¢:^Ã8\cŠ ;G£þ|(þm´y5_A‘Ëé?þBÇ5ˆY\n¬@9VÛLÿ«ÊÖ ,}!z–ÜÁtÃ̰ΑÕÅ75&ÿˆ+—‘-?#ø"^ÁöuúÝêvˆÖœ¦á Ë÷ÄKYÞÍQüꆬJýÇ:ùÔ2„¸æD,æß¼ÑçдÆ0ïÁ+¡ÿE*3ƒá+p²&‹^ó¥<š¾]ðç&ívâü’èw[“i/ ˵gÍÚLwxé5°ª½F+nÒúr…a¤o <C±ü¥ñSá™ËÒõo1>o9V¼ú4xöÚ¢ƒú«'ýB¹¦æ‡¯˜Í;”ϾRtoðF·Áðçi™Z œÈËØI\ìC汋=nB-ULÿÎík®¶Öbe’£¥-I.°ed=<Ó;ôžÔŸ×‚ÿX‡2¶²9€'¾€{l@ħßuWj2?Ê“î.ñ9‰¸û3A}¨à@ƒS t\,lª'üƒ€¡]€÷XÚ–}îd~Thþc¯6_ÛÒÈE|í‡íz‹Ú‰úüO/:–x‚Á&ÿ¸oV¤;¡'Š×ÄàóϘ©òšü£þ#ô“ÎO¯¶ø,DîO`Ð=ðgèuõ VÂø<*¢ÍبËf]™QÎÆ#ÿ¸£<Ú¬AÌ›Só ñ¤7i¹ˆ |áϳàß±¿˜àW³åHòîDÒQ™ÏäsÞRvkJ>³ϵ Né:wúŽnw˜þ“U¸pŸ|9½íàÏ÷Pÿ±œþå æáÞ¿ÊÁ„«çLÛ8ƒþê»Ü+4ŒÈÞö¨‚¬dž‹ùQS0–çØ…¼%hásÀlðçé?þ%sèPuŒ.('©ØëMǪ~ì×0 t-.W‘löåOÕØ‡áÏãiÌ\Q Tç$äþ0ÐêŠB`Ñ7*&OXI±èËøÕæpG“â?èÝÎÕœ5âˆ|¢œÓÔW¯éqÉËòÍ1£‚ô“¥˜ÿ±œ<¨²u“ f‡Õþ¼œÏxö=Öb“•K.ä¥|LÖrIdKïçô^êV}?Uˆóíüng©ÿxd•¤öð¹,G-âpk„ãŠ#! H!ô» ³‰²Ðÿ+ª9¬úŠÝ{E`ÃÿJþ!±ô±'áþ#r*$çÃv~‹¸<§6‹úòúwµkº3¿¶¦6A;ˆµWÕóΟŒÌ”zp–îF*¢y?2Ž„ÚNfÚ^—ô úGíþoöy\¥'5‡D øÕµh,ã£òY à©õÍÐ_Õ3º„ËÒ†ÝëTõŠê±wL³7Ì@§q&]K2Ší°égÈAóaoéú'îD ¿J@=ýUQ K8L}á§­ ÓöÐüJšEñ)ñ¤ÇÅ ç“ »¯ÿùŽ—2€úó rÌë5}P¶‡§n‚ÿ˜rtŸ,"#Q]Yp·‰øÓ º3þÓŸ•Z+®pÑûy,ô+””EX1QèT©àåý°øtdÄ-æÚë0ÿÃ÷ Æd‚}v‰Mè¿Jòî½·ð›eȼƣ2ÓaÑ»â•ý°Ô·àÃwbݦðÿ½˜Œ°/]W¢" /Ž--„_O¿‘ä&øÒêÏsп}=o)s ×:(¥q•'݆»¼Ê¯(Uõ Xü”xˆ tfyÍoÔ Â¯  +ŽEzçõƃøÀѸP²žhv?Õ[7íú'5j¨ûøTë$èžEþñÿÑvh~¶™CG™Ìdý‹R—gÏ?ŸÊ8¹Yžd1(þz°ÙbA¨õô¿ŠÂõå‡#1É:–“Ÿí63ÈäðK¨»B¥€üª0ÿºO\ÓÔ±Þ7yRá›bÑ}ôǵÚ¯ÒÒñnù§‡¨E®$h ùGôLãá?öX7ˆÃ½È:’…üÁ=Ù@uâZT²§Éô¼ô¦!ÖË/’â±ìùƒuÐm\0î˜ Ñsµ'ÃÊÅü¨‘Ôe_”ïˆö™#a.lÕîÖ<‰Âø$SÜ;P/ÞÞ¹½mJEu>èp?îZ[r¿Ûb"ìþ3ò&; ¥Þ¯•uCÆ¥ÿÈdê?N¢Xlmý³ùóè¯Òâ£ÁùÇ#u–”8âÙrù ÿTÀ²L­í…þj3ùL*ÇTºV¥rXàW­ð¯¤ Ϥ÷¯¿OTÍœþ£¬º‹útä1Û˜\“KT5&“1§‡Ö|2£KpÞ蹞ˆ:Âgr¬6Ã}ìµòÉùè¯Þ•…ÿ¨Á Ô¼[Gﵦœ§QX»½â«ìD·ÄÔÝœ“ÕàõûZ½—Qïº8:À›§s,’I¬Øôà-`Ž[¸ŒŽ±ïb¾ÿJÿݯpU‰œ'áÓlúq%£zYMD¶‘OÏÂûT‹5á?ÊPÿ±ìéÕc¿óÇ_9H2{¢u*Nÿfý LÊ{æœèß~[{ù›ú«mú[ò˜¢% ÅX¸+oñRIOÿ’RFi2…'"=¶²;ïÃ?ít”@<]yx÷ºñž'ÿÆ.s ¦!³z]ìT'Pû m«ÿi¡ÿü›ÊõœGæ0çwÏ'븊þJpj?âRb­òÑñ9&êÓÉ"¤†?¼Å?À|î(bÀ&l¿ÊÿQ¿´ˆZ¬—d»Ì%~\Áç5è¥"¸æcÚ_D‚}¹g—ùO¢?MmÃ…º´á`öo9óç°¢þصâë(Ûþ²þürK-nGø`jYÈVâRa÷/y†þÀœ@üJò+T9î#¶?‚Åõ$ÿÈ¢áì²¹Ú\ï‚oKŽ·¨H¾²¾»«¼Aê‡b¯«þZŽ^hmÁƒ/# )`ÜD7Ñl1ìsgþÇ$±¼p!9‹o,Bµ4Á(«F÷ŽBT¨Ã{¬'Z·õ=«ð/{@ö“!­Ôãh¡;Ä+ˆtàW7¨Ji Žtþ%ÞÔ4DVžŽkÀuÞÐÇd¤|möƒ?ßÈZcðš—©ú;Ç*iz‹·²[é¨."hÆ™êdŸ2±ÒH'÷â?¾Ò}q%ýª*â}]è¿;œú¼åtBaÙYÙD|{LøB¨1ž‰™Îõ¼T-šYžs¿ÙÈ+K±LÀ/, Iòùð= ýK.r½è pÉjNÝË i‘ùÿIžÔÔ7.ÓŠ;ýG'ú訞 rF&¢¦‹*=¾Z‘eÕ&ÏJfù[©¬¶L"œLÏ/7YUVa8ú8r ùÇ;~Ë‹ü£…ÑÇy ÷ÑÉm©hÅ;:‹œæ 8 ‹Ð{,úƒåtxÖù±™­™—õŽ?“uǬDýÇ bÅ£¼G%È7‹ˆ_õ rÞˆÿ_¼gVKLçIxF7¬È©XÃn%¾ºMÕ©ÿ°ûïÞPíÓå¡”Õ\´†Ú*ªÅ£ÿæüóóÊê?RÃ%RŸ3P߯=¥î≾OÌÐOéèe’ƹë°{ ûÁú}¢ÁÉÔ{Ø8ymxAµ¼?±ÈG=ýKryÃUù„]é/Õ¡9Ä7Û[p]± ­Í?©[Ë-¼àhwónE7Af>‘òo´]0=µ8[È@Ð8ßÕ%·¹…­ïMþqÜæ0ú«$Æxq"Âk>©ÔS[lçWF3˜å\ØûGøáIàù%xów¡HõƒzQ˜ùQ#Xq«ÖFz èÏ v÷JÌÇò×2²Q•6 9\è:wÂlìÕâÕ@ñ:©¿RJ|RÖƒ_0½ñ_9ȇ¢Â$v"g¿K=ðSªº¦šÌoøKø¤-Ü×ÜÝå¨2é"œ]–W»é=øô¯Æ®ñþÞ_kÏ?M^è­çÔàºóf¯3©¯u]sc–óÍ ~º®J6}œpû! ÊÆ~–q5±ÿsàC Á¡ßä÷‚áØókíþW3ù¿©äI£>º©= ^*諳Zw1—ü9;ö{/‘ì7°íM<‘=ô/)LÍÂL"ߪTû5—µð °U™°Uè82Ñ,OmYèúó/êk‘ˆúÁœà†Xüðö{ÍôàW[Ì-2†uYÖ°3Uè&hÐWtÀ¹à?n²â 0übÜïèÚþ÷ÐM+Ï9DIy0®ŠÔF$dzÔdÙE˜í?âÑ¿]qÌ‘’ ¬=ÁÁªƒ ­ S™Mvá +yV·;ÿ©+lç4ÑT b‹ÍÆ7Ó 4¬|yAùÊšk¥c^ÖnìòwøO¨º‚Ù5ájO£q²ýwƒù0õ¥¼UÁ[R¥úJ 1¢ÁÎ bþyo4ƽˆò™þ ßÀNÁ»ÂƒH<Ý0žw|Ù%¨?r XêÜÜ>õˆöÙ(C޵ÿÑœ,¿‡ùÔ*kïÓA¯*ÇbЬO–J…ãKªJz¢ˆN'õ¸¾?1øUu§ÿè¬î`þ`Ïc úÝÔdƒå,G_º9Vƒ¡I…^*™H *7.q²Yé˜å±žÌa-ªüûXŸc"Yÿ'ÿ±EÊìäad3óˆ=_‹MVc‡«•”þ‰{È?.ÁÒts|t\µr;FÒ™ë;¨br]ŬæHz8§ö,ê½âb“óŠÿ½/(MÕà·ó&r„8‘ßI,Õ[ý¦NÕrèEôóAþcƒR’®#]5Ô¶Bý½úóKŠ9bbð—wB ô­Ú]u}C.ŠéÔKÜ¡›bpוÈì±?þƒ¹€"– ùÌ<PG±ùYÌãXȼxÑrê¶_<fˆ©1ùüy¼Ci‰Ýä ɵn¢ù”füG<Ònøz¸7rž–x™¹"­²? ªÚSGýϘš\`¨X ôóxÈÁä9ôÏÄò£°|#±ñ‹°õéàÏ_à©Ç‡ë?JÓ¿d1~û/*³re3à8'bÿç—'ú¶;OžÀZï4cÂÐ.­›J?‹\³±žˆúØüµŽb&-9Vw ÙÀCò7£$Ñv™‡úÁXü ÒŸjÂÒrŸ‹¿ØlŒ·f¦2ÆŠy¡ž‹ ž€|77º×)äA«á?¶€_E—¾æ6ªŽ¡}f «ü¶†ã/ó² Ý×̆Þ6u¨úÁÅð8»ßÉhæéß5ÀÄ`{;à?FÒÐZô»5_ÔŸ*Ž—ÜDÜËãÜÑ)°jUŒÓ¡êk‹´d2¶~·Vwø•'þ¨•¤w$u˨\8JÄú1öÇúÍ…ûè ªçIÆ0΢ ý‡8oà6êÏgÀbUgWµ¹ó7Ä~Ø™ã²3¶¹!¬ÊTºL”é©·Ÿžu“¹„ÓˆÇ_’»q{ðt£ß Î?¼ÕõÚNÿêsËÌà»Èûvào]èuŒY–cÙH|Ç7æ¾…ÿ¨CÕFt4Õ=á«úÁÅ¢ÿn§ÿhL¿*æ—ò&l0f›Ðt.—má¹›SçbÂʤGuû¿öŒéºY¬*ŽxÒÍÊ ç pöOˆÄäÁü¹·ú·>ddQZ´úodoÔÓÙx[@©öà-›;î9Î0Sx€ÕDÆuÌÉüEþ\#ÖŠÆû˜Ë¬õ_éß®ªåUÓyV¯‚f…‡5;í?|‘„¾‚‰Ñ_•&ò;©ÖgÍõJ*?úhîš…¾qû?ünØzCÿ+Í(N®‘tÀ¼S0ÿã´XļŒ‡¨ÙÓ9wö·Ã~g”þÞw4‘øbßúÂG¤¦[ð%êÎéó«“Q"™´fΉ"ü‰ÿnbç›ãGÚ1=s ýÁÿ÷bÁ¢`o§ã?.êa7æ;ï5æ)báuú'ºÃ1¼GT‘*Û0ÖÈFΑÓî"ŸˆCÿ]߯ù’R“ücø•JT뎨êdssñ'W°ÌI±Å@ff)}Ò‚kGÃl,èîZ=ò!DâGñŽ·ÄHÞššp( @2U/Âß] ÈE|n×;ä•~9ÿ#«ê£ÆûZ‡˜ öýîöõÀèn~„ÝþýUÜ äƒÝL.6ЧµRdw²WUu¼Þ ¯ök)H$½™h¿ ×ûÿÑÓ8„Šã=Ön&QìB,ý2ôO‰È?ž¢ØŽÿX¥ÑWà?>S_{—Oï„Ç,‚ýï€R œ¹Ÿ\ÄF~êPaº’M#‚Ÿ¯ÑRO¨…fø¯köüÁj° [¹WYÌ'œ w£"\Hg™‹êæy`åÉZ3?j%ú+,€+–wº¶ÜÌÉœêIÓANÄ!sá'†’W¸Ã-'׈+Oš›d,ë,3M¯ZßÑ\U—ïÁ\’¡®Þv¶«_’|8*Ýã~~ÂnZvø"?x¶L ]M°k´¦SðåégëA¯ðä ³èåÛ[¶g«H5åðFü×^ò™{¡øz诪_3ªó-7üÍÅèOëâ? õOÌÇ[óáf¦Ëhôo/…kͽÜÅŠ"ëã#þrno]À±³.p€Í`†/jMÍcðoé69ÿQÿ‘ÑÚ„ÿM63¾æÈ]o°µÇx¦Xô¿ÒŒàùÔ|Æw_%>K'ë¢ßŸhŽƒ…×)èBö’õb;æ3m1ýÛß¡ûK™†8¡ÑÂ_æÃ4º¬Ót û[üGc®1OÕË"kâ?f¢+Îe¥`7Ŭ½Ô~t€¥Á ÁÛøõ~V¹LÙŸ¬ÿºHo¶ùÉìbþàhò7ú'&¥¼vgÈýtiYÿ¨ç¸è¸a•¢3W}éâØ#£Ðé,³›Îo1ȼ“‘CÖ1[‰3Î;ø/~¡6þ©~ð5Q]úç,ò;IÉüÚ(Aýwü§ÿÕ:¥’–Nk¯c ¡ø%«þ'ÜU®ë¤2/ê¡Æ8Ýþ%^ê=査R?xŽðqkŸ#©, ~•”1¿ÑRì%©V¹ˆ5 ÔõÝàWµu—H­8Œ9ïŸõ³äï°0U‰—[˜c±‡EÅuìÉ>ØêGôOÿ]_ýW“\¾æ÷š—~WЋʜ… \OrÐGìÃSüGó¸ÛQüA|£G$øgJöâ*¾ã4G“w‡i  4œÿªNÁ€/"ÂÇ7ë%#¸æEZo™øŽ3ØË‡ I±FåÀ¯†¡ÈyÍ÷öb3`äÉ–Âï–æ¾zÿ|y?}VÝ©~ù©J)Å'ÀÓ<¦Ã@E§±ð¹¥XÆä°ë¶"x=žc«oGm[2ÜúêD½=P˜öd¨Ã|z=<[Zî\bÐ%º@G-4ÿa×NÚý†3Á#½Å—Î Ç,W ÓÃΕx|˜Ù6™[ˆ}nÔ±i†‘–>1î6û4à[ ñp#ÑW/&i¦Ç×BOH¼IýùR”> °i3ñ÷±2[êp€XyócáEº{T—[@ÌRQçèÃçBÙ–Ÿsºþ<*ZÁ¸X¾¬(§g’-„}³ñ«Œt$ô¢ÿî æ<µüáÚKKNÄ+”„]ØB2ÔÌ c[ ‰}®ÐR€"·,Àz˜/è05ƒy°÷S°„ߘǧÂÔ~ÁÃýÏŸ†'3Öy9Ÿoϧ¹«· qr:+8…®Ž7ùOò#ä[K©*iCÿݡΓr‰ú7Þ‡úäÞ¥ø\?±Õ¸k ÏU<”°cÈêQ'ž=Ür¥cîßt*<'4žÞaßÌþ0†ÑLÃî\o/óϰ±o8óùdZpÌkf tºØùýÔX¸‚ ͘ŽO0SiÃÑ>)V:xøQÜÁxÅ$"éOýKêª;õëLHÏÓaŽUŒ%2ƒ£ Þ,;þ#&þc% d3j&2w7¾ƒÉöt¬²O×uÎê L±ónSgèóE_"’ád¬Þ²*Rk^¥òVª\ÖYÕ­räwño#¨$)ãØ‚:,þã+XŠgð>–0ë‹]Î+þ¿P‹ÿÉ_Rü¯ç$Uªñ57-¹^GßEWxEÙ¢d¡þ¼–¶I‹F|ö{ý¯n*çôPDωŒŽº¯vCOÝçEæG]fší›ŸX›ÈÜ­™úcrâ(–³ ½ª.ˆtjMê[·ui Y˜q^—¥°k¡ï‰!®\ÆÂtÄÎu4‡ƒ%'ÿ…=+@ý^}Ð<â…îö×Ã|'¶~D¿~ö {¹›ÕžS—ÇoØZ[{~í²°£ÂAµÝ 0ªÎ0‹)×”ö`¨}©hùÆ»·—}•€ehL´?…ú‡Ô»eã­ÌIïØœÕv1>¬u%¢Ÿúr,鋘À¦*x¢E¨]ª£º]ï8ÄUg7pþK‚_•ÿe¤_Ý¢¦¢þÄ›'‘üLE _ »zäê>m9M"âü‡`b[‰Ö×ð~Î…­È©‡§éÈCýG>ù3@&²#{ÕrøËÇFlsqK/¥ÔÖMÂ̆!“’[ Œ‹«óÍ ¾îJyfø, ×L,×üL}J%²Ë`êMèhRW!,¼96m ÙÖl|ÒL¼HoýƒºBå‰6TØòS`Ó?AÁæ†î5ùGpíþÖvz¯‡ © =À\â`¡©õfýEäcÄß!¬³¢|QOC´'·Js|Íð¿Ê)O1w6ýUFæGƒQ)@ÿÄy°°Î;É—F™yÙG´Põƒ ´øœ®“°G.ð3ÍOt¸]N]|æ= %½Ò‡ÈºÉNò«e_»û²_ÙøjþG3â•Êæm¸«0$ “µ¦Ê¦<’(bç3¿ö þÃ<¬']w€5uá¾zÂ'-Ã4¢Þ¯—óaÜBºÒPðCÀ¯Rà?†Ïͳ²‹õn/£àA*¢äŠJ_ôAÖzào?jÿ WüB^#Ⱦ^‹ùÎõüÐï¾%/ú ÃP^ÃãO¦»Jo.À†Ä ur#»—´ÌUJ¥-¡bSý‚ÚUvà?rпÝ[KÁü(ïÈ.ôs·•Çú}¢ò’ÌmMc¸é‡´+ª'}Ëv‹Múýý¯ôßÚçÝ4Ëà?*aA©õ`~m µ6õƒUŒL䦷°ß5ôÈUNN¦%ŽxKU6êB…{hÔGc³sÛÂúàS¢sBÿ§ÿîÚH\s*}%ªä xŒÑDۣݼãÇ"2̂Չ[† Ÿ¯ù‘Ò|v5qvjp˜}à9e™ÚQ$:XL4´ûÙaÑ‹‚µnå_’FX~@cÆ2þh"§9dÞØM5¢òÕ0 ÅQ“¬ä.Ük+Æ>W7Õ¥Õ ¿¸êäêv5>H—;–>7ÞRk€zþÊÝךּ˜÷5)Ñí|Àòoò±`9•Ãõìå™_Û {eQƒ’ÞÖ{_„³ Ä|—qBï®+ÄæñrØùJìwîã#ÑuAØ Î'ÿX"¶aO×ó.¦ÇÖ¸òt5ÁÀZƒ‰¤67å]¿ÙÏ¿¦~p3ÙÑbôþúû0§ñš6RŒ"J ±’'qÏ÷$6dŽ@åIÏqfѤ1 <ÉåòbŸ÷PSw}UU¦¹†zÒŸÕ—p`ݨžY‰Å=ŽåøŠŸ-ðIs5üÇK*ÍöÓ…öüJ6¹„ÂvñÙáÿ ‚T&£{ÜÏW½NKÔÑQA[¶ŽLõÈÎ,üÚx"ó1ô«J^òþãõƒ­ä ÔÀ.èw?-3A¼Ö»…X¯ŒÈÍ}»G,Ð ½ólò›ÿh#ÑáëLë ú«±¬4D–µ6à‹†cï³ÞVêÏ›wêŸè¡tS'Oµä|uçJvb[ã£×µû·WÁªNEçäA#DüðK¨¿H¶ÕÚ”˜r*Þ?©y\,p^îÕW‹i6"CžcÐ/¾ >„ÉôO¬FFt_žþã>=¿é8uîZ똛 ï5Œû7½I Qó§ùƒMÔ“ÌÿHN:͘:¬œÑZf£ÿî]äYK—KÀ¯Þñþ¼TÌòŒlpHìXÑ+(ÿ(G÷ˆú× U‹È†²ÂEµ°zã?¾3åj S¥.1«¸ yH{+ÑÛ3qŒü£'ùqÇÿJþ¨üñí«ÔQ#bT\uè¿S¨÷™_»P«ŒþêÑúïæ¦âPíók¿+~¡áÿûšrW)ʃ¾¤ƒE½¢¿ÛOýà9ô»~úMØßós³õ(f=ô»°wc@‚N C-¥©`1ÃDcñþ%Õô`ó?mm†úUÍ"x™©UF ÷šnlcŒäøÓÄÌ—°ƒ¹ÈC6€_‰~•Y?ÆüÁXé…DòAÅ®à7b²¾jv‚—v˜Uà­5,îlq0Ä;Þ._)}ñ¸K‰\¨Z;žÚ©&ös.±´ 삱Þc+^DDØóë˜6‰x~÷ì!ú¡÷báªV+7Lü#Ø!ø Ë*§¹-*‚r¿Ì?>+ÏU2ì}I2…id3wÈÔZr[š–ÙÅØŒanÁ#ß$» ²»…\lõƒÁ¢ƒ¯¹ýÛ{ƒâä÷+nãMõá¡Þ!Zôiz,y€]V]œ7‚_½ÎckOÍàU~|µ‚ù3„ý¯¶ßç&ÿXNÔ>–ŒaqruzYl#ϼÅóÆ:¥áß`섳߃Y­UCãW'´ ¢7ŒL°¦­üþ)Øx<þ¡Ì g;Ÿ:‡¼Cwó*rZ¤”0voÂÓ|~mz² õ¤3jQÀ憂¡­%«¸V±çÙe^yÿqúóà9OAØZпdXRq~êñ3ž3‰¶2ÄŠ´4t59Iµ~ö×MEyH®’Ì2`õóà?ÞQ> ÇúLñxo¶ÂÏx±úN²©³øé{¡ð«r";,ÑMžY3®f­ñÈ<"7¢ü=E…äWê!Ê¡½½K_›ô,d-ç3GÃL¢¿ÊºÐWD¿Üw+ó— N>Z›»}TŒ1r1ãdýÛ»‚êLÁÜ"ß:NŸùadM“P:=ƒùéÊÓI€ÌÇÉÜ!‚c·ƒÌ¯O…„?º”lCöÝ¿ÐÏzÀ¼Ù}Ôâ°r:VSíÕñþü U…ƒ¨*‰CÖ8„§Ýƒ|¹Š(#â8ófê]ÝÁ™ËÈ©šg ²±Ö2§£¼{Szg½Ãc¬¦1 ]` &Q•·N[iÑ_¥’ˈmÚ¹›¸KÜÙÂy ÷Sÿ±E´'ÿʪ÷E «–Ãဇ¢‚¦yQk,ýwã:Ê::£êýB&—†þW˜?8uÑyô@-ˆoʈßS(ý8ùÿÇ¿ÕFjtçɺ«ÔV#§B û©¹Ôëj>í­ªžþ£kRJi´Úí›úì7û_}T>ÁQ•À"ÙýÂÏâ1Õ÷ô/ñ'¨?¯=WS9wv/a¿³]†Õ\-Ú‚Ãt þcŸˆ§–×.;ôݱ*ùâzŒH­8Vý¨VÑ@SoR1’s^——*±—øæuÎÁN܉Hùxº'WÚ:ˆ?ߊÿxƒå¬Aþ¡šï‰“˜xjclÀ0±7Â:ÔÚ ~KáÛãÁF&ò,I~[‘h&ü#ì]^ô$uÈF¶Àd¼ÑŠD°âYm<‘î®èo‹­¤Ì‚w+„_$ªÞˆ?ö#7)ÀýØm.%Z¨¿Ê£ã«/ÔBàWKÀª˜fSd+ÃZ¡‚½.e,„iø„7²£Ø5üí×ÛE/¨zx\WoTó½‰R“£‚/oà7jãA²¡¿ŠÊwÎè«©\MôXtq2y]<ðîKk:.‡=›•2`Ð^htW˜¦‡OžBŒ8ÿmÏ9ªiãÞU$÷ðÂ&'F™³ÍXD´°žÏeL ßÛËPKnÓzˆa .XªmDæ÷Yo}&ŽÁx”bZàz„!ÿhF7Þ¹f{l^Iªó¦à¡Öšµ¨-[ê¹äÔnˆ8ì½ÙÂi:æ.¦jf³™BøÈò-({Sæ?7ß3/öë”Ào¾„mñ¥IôÍ µ¹ë.- ×w†¬·8xX ââô¨}fÈ¿áßÑÏÖÁ<éK¿õѲYH}<’+6z5þè‘÷q½Oˆfñ°a·‰2šaÇw÷Í} ÷ éŸØ€ºÁ•ô¿ú(Ÿ‚æ0÷OÆ?_@¬Ð.ÉKÖ0×þ¤ß=ªŒVÇúuõk uAÌ4Š€ù`&Su*º—à?ž0/ëVzœ<ÿèd]§–} Ö>†ˆÇ‰nî Oä¬zSK€OyEÖí"kqÒ:áifZoAÕvý`Zï ê,Òпd;lwüœ·ŒÊ)ÎÏ çjJŠœ?ùêy]AQ€7bŽy¶“§è¨OýGS+%Ö}ªµ )›5ÀR¨¸¯ «^’Ú•XÒ•wò)Ïâ¶øˆiæ<…¾ÌÿðàMØŠ5)LWÑDzý¯^¹òÛË迌ùQI]¬¨öQ{ŸQ–±šÓà?ŽboêØx¥Øç¼âï NëÁvó#ýÛ#…‡Ýa*xå Ú`-›žžþWvý Ÿ’W+BþáÊü¨¯¿é?n)™U‰ûƒ÷~ý¿ÁÏ_¿:¨ïÖoPž!Äù »Ÿß¯¿âíÛ{zŠ·º¾8$Ò­ë©hD-zñAä7JD2ÿ˜¨J-‰xÆrÝè 3{Åb_bÛ¼b=öÞ×èŠ3O•Œùµ[Bn"ÜÿŠŠÿ¸B§–¯Øômœp[½ZÙø{þ~6‘y%fÊ$ ['ŽExÍ”Šø² ³ß œüLDú¢0:Ó!Aý¯ü‰`?¬ÆÞ5bD8?ê„ÖÏÌ7…=wƒÙޏ1ÿlª´‹š vì ø•ºÒ콡Qÿñ+üêýKŠâ7¿æÃž~  §554W¨ÿxI%• àXž¬w ¿±U—óì¥~0£ß­ûÑÈ1ÙƒlA<²…õèÖñÆŸæç†ê†ö1Ô³=­#8iàK¼±½¯aiv±—MÀ¯ÎP· þãݦÊJ7”C.üÌîê1þWùfSB=é¤ÌÊÆ5§^â8Úüän”¯Ñjªî¢nõaFê33‰Täl¼fº\Eß4>>=ó‡XÑCËF¤öAþáÿñ„Èž8;Ç,…ý›H-]ü‡ ÍŸ²SÀË|—MÐo-ƒQ¾~u’ºö1`càžQí26å£Ù—º8°óœëùâ?üÇNpbÙ|´‡¹‹)Y*=GΣôàj]é_Óñ]2±—êöþ2@æå™tcwƒá?’ŠÒ"ž3ÿh¨Þ âKÍ)žf0ñO3ÙÏÑþ£=sÞo 'öagé¨jŒŠâ¬Þ3?¹þü&Ý ˆ¡šÓìQ'éždâëPÉç"+c%ÀŸ¢vÄS6±¦2×Õñ„þ%àèsÒ]k+U…Qð§±ÌI°¢§ÀãªrÍåÄçÿ{_|1æŸ) Õðb½Èì'9ºÖL‹Ê‡ròD~wýw“h}©?O­½UÎFfçÏ<ÆDÃÊTÇϧ7¦éîÚyÕW=¥oû™þ@;÷ëïü¥øÂ[ÿ гˆ|c¹Fk*“©YðÙˆ-*Š‚áF¹a— >Wcˆ¬b±«w¨ìn’SlÄÞxèg";]Œ~÷Œ¾7쯇ùŽFýù Q–¨Ûxvº«s vðN~d_ ᨙÎJýy.ð«S!l@˜¥øF R‹º¼ñ"õì-A9ñ{DU2ˆ‘Ä®>XåBèIj¡hƒŠ7º‘>¨õçÌÄú݆ñþÈ›œÞVO…ŽA…„†/wœ½cÕùäyEmõWu°ß”Cj5#ö¾v~}NQÑ ô«-ø»XÌy>ÁŸìh=ÿ7–ÁK÷ÉWè=¹k¶þ*Þp^·íwF\žÇR½˜þ ¶÷O¸‡þpëÉcÐÛô6þcžóÍ ¾ƒ‹•ôúPª#“Ó—¾]¿ ¾VƒX 3WZ‰Ü ¨_vª ìjÀhø¤u`!+¸{ÂÕ=µv/x© ¯Žh}ݳ¸SÛá5²›gø|Op?𥲠$£¨‡È-÷Ó­ª*<ÚÒ‘1#˜`o,ô\3‹1U„D›% µJ©¨oÉ‚?ðýYDü‚'Cµ…üーìMwÖ3h²Þƒ¹åF7ðˆìÃëÉ‚_OʬÖr ªÛ‹^ +O#ââXÌÛ^&g™°Ñú<¡~p¡ô¦^¾¹¼…^*-þã þs´éË ¸¨· qË J[?ã*]'üÇ]ôW«eyyˆ Oy™þh|?óÏã[»ˆ>F¢¿²ë×3?ª =»8ï §ÒZLTQ†ü£-ÙÞU1Üøb>–Ý,Íj#ûâ/ªÑ™0Vz!ýwã‹×[Gé_2ßÿ˜ˆ!!دeüí\ï¤zL°ûv]\æ£Z¨%YZ+p¥êôa¼ÿüê üùG0¼gtå"¨ƒ¥¶ÇŸâzc‰Ì¢ŠÓtQèQA¬Ë’ÓÏ£Ò½‚Ñ\æv4€ŸéŒŸ<ÏÎÛ…ÿ}A-Vô.9RJéÆYµÕ0§E³4læ düÇ4üÊ6qN&cúJ~9RúË•hòZëdGt¡ÌÉþÓÓ7*H,póh<ÃØÄ„…Í6âàÿÅ¿ßÀx$tž„ÿ‡þ%†z’þ%´¬Ô^F¬(”ŒÌ¯ýS£û¾õ—]õ¿ØÊyÝžÕPìÌ…úAw픺\½OŸJ_}/lÈM5rjÛ«/ÔàW·ò¬}‰žj€ƒeWÓ1?ª*ÓÀQr #Ù·'(L,ñ«÷_1ý\k³µpy„ÙÈQlslÅôW÷õÈL´ÿ¢y0 ³±É"òy°þœL¢p¤-6yNôW:«ÎŠ„ÿ¸¯”Ä,¦Ï“Äza3óƒ_Q3‡Ç°ûKø’)\Cu¼ô%õç±]ûµnðøùí'¨°Îˆ~¼}͈ėÃL§Gɵ„lá„q‘8ý3oç@æŸ×UÅt¥FÕ`*ž+ ž'ý¨óƼ2Æð^%EùÔ Ôî01ì#þu9Òxq‘5Üü£¢Úÿq?¹$a/?_õJ ð¿@ršñzòu`Q•‰ÒƳážSÒ¹.Pü®þj±RŠùQëñ× áËcùŽç:¢Kîr^ŸA×Y¬½æ³ o?~d w¥­U{üã ýçïKÔŸÀng ûØKýº?¾È/{Úìn×›?ÈÕcæŸ×–+@ÈâácŽ @=³\‰H!´~ס݉ÉlÓƒ"­ä'7`©½ð ð>+å}¬`+ë(UØwÐO}âÙd3»ŽÿØŒÎÆyŠ£…Ä>×iYñö»8uE¸K•Ì{ýa™xךùSsÁ…;žÒÃd1ý´þ¢æâ {^”W/ðÃÍ# ,gõFN«a_ru…üã4±F|§ñÊ\@§‘ÖôÏ* ï1×*€žUuü-}àã³Y»ñj#9ŸÇPxÁŸ×£êí¼ƒgˆbgÏ5ÃØÈÞ9XËÔQŒ†ÿè%gÊøM¬òœ­YŽ·ý…_uÈðçïÁpƒsÿ½êfí;qÓKž@!©pöª2ÿ£.óyó2mö"þ':ýKÎo©<•7°ñnðèqð˜ÝèóÞ‡g÷IÏ&Š8ýG-øó*Ʋ£wY`öåé_’ üj#+Œü êgêX™Ñ_E³þgr£pú&ÎêkX5?ábÖçÿ¸à­ÌZ(ºÅ8ùÈN^ÊúŽV)º³Ô F­Ü•þíÙ¨KL ÿ±]æCUŠùƒ£‰Á|¨].÷T[DFíùã3ÿÿúû+ó?‚Ñ»T~ï3’«¯Ôdtk/Hÿöjó ÿQXËIýù-.ýÛ;ÏüAI†XkXžjâô/qU€ÃœDÍQär÷Ëô˜ðçËá©‚Þ—À¯20Ó­.¾¤0ªœøÈU$vBe hÆ¢‹f_0ä?¨ãÑÈcö“È?Ú‘t¿²û'n ¹‰pÿË¢ÿ®ÍßK‰ºí¾Õ牤íùêϱ9ÑPdÃÄb×ëÅýïlxËSÊQ?¸PüfGòØÖ¢:ìùTÞš«œø"ì¼)=$WáG3ëù"Xq‹Ö%å(؃3x‘ð™ð¹¨X p\l=þãvíŸÑÝ('ª¿ªcJŒþª8]T<ˆ_ aŸcâ?Ú ¿ºk $ïHÁÛzø7‹ä¾ðÓKá·UV+8%»Í„ø½æ<ò˲9ú«h bÙ™µU ,çÑJ3þ#™v4ÄŠÛµœìè0jƒ|ø·¢0YiÑK-”­è(?Ä%ú+Ó±FAoܯT•k^GŒ¿Ýü•¿^/ÄzuÁ¯ š'aä«’ì0Þ_-£óâ³ýhg—¿“ 3ðý©vÜÅ}œŽuöß¾£ã|Uf|tt>ŒÝL!š ‚[ßü 6œ‘üc2쾃ž¶Ñè 5ßÛÆòe îGTNP &ÿðE=ï+åD“Opk®ÎõüÈ?2€_=äý*(Ë¢iweÖcvë¥UO±›|!ªÃnŒq˜uEÞ„oXŠGNBæ3v¿'þ#šH)’;ýGgò—" þc‘Á¥Ðïu”¦K}s¼ÆA”©LØ­D'¨/Èw«HOjƒµÞ#ó~.ršuêŸè­.@ûׇèq±â Û*íˆÁüÁÞèáºÀªô·ú:î:Ê;®Ã÷GÅ »ÉúôOloYæ pÝF<¢·f©ÿ ~¥©e~ªø¸¥4ù_ûØðIèÕžþ»7ÕÚœ.%¿VLDýylú'ú;Ÿgd¾xðŸþ‰ÕÉÎ*îú]í»zX½ƒþjó?nÁd q~#Zs¹þ‚uÖˆ† ÖMáºÏŠGŠÐÞÂ;ÔEЕ¢Š8rÍ pºïzTcƒºóžp½mÍ~°é„7xèQôD.ø%":õçë#ÚÿþM»¥@ÇúFy5ˆú"˺ø¦WDáQü‚ây‹øè"3?ê¡ÒˆºŠ 0:ÑA‚בe—¢N¯'s2©Ûœ¶Œ NUá“wãëå"¸‹›´îdDÐïž©ù*Æ¢‡+Å®fPY‘ ”g!uDZÕÍÇx’îFÑ^õùÅU*{ÔÒ6ö…²õ»ßy ±ùþø/Ô×OD¤ÃŽÜäžÚóO5vˆzxUò5ÕŽz[THIÑ_¥Ã/®Áª•] @»6ÄEó{l׎ÛýK–áéプ=MíáøUJEòÕ°û«‰83ÂŒ¢rÞn¶³Þü¹Äy°¨Ód'ÉÍ­†þc= Â:zýšZèú‹ÔŸÿ…oÌ"uÖÎ@‹–¥±èMéÛ¾‡ž¾Ô¡_Dí”G®eKx Þû ö¾"ùcèü#µöœu9k¯ƒLž1 \JA…Å ªÝü˜4´ÕŠ)oÃ| ƒa.¢žý L@Ië>“fÉuæHøó5àxÝy6>øÂ‡|b=óIˆü£þã Ú]Û‡ä1¯‹®x7‹9‰™ÿ1ì¯ú+ë ߌÆu8Ö>îóv˜JŽc§éÍ(F°þj¯º_{EÜäųÊ*KN1³‘¿ÜE»J¡NÜt¬CÍÅ8úïÞaÞ¸]Q“Lq8>}° à 2‰ôNÿÑ›ü#g.'oë\ó±èBÿö†ŽŠä£¬Ö'\+é™XË ‡Óge"ÕîVA¹Š“ù‘Üûø²ÐÝy ÷«c™?ø1Î80›"•æw¬ÜLæýf7…þï}×ùaÐ+XªŒåpGÕkóÑÍÁFtÞËÄÜ¥šfqôïÝÿËo?± V2]…?VcýÞç¦×ILþ‘So¢d*•¢ìTJ£¿š¢y_*k¹³ÊÕ üªÞµ1®1ƒê$¼•Ÿ8‡þê%ó£~¯Ïã:ô»5y/«íö¢þü˜ø¤ÄÒ¾‰úðXYÄIx‘6áV„ÝôXt`1…Ý÷;ñà_X»nÄçXU±ý QkZü‡+óôÈt4‹­?¤þ¼oò ¢îÕ¬êîÓ”DQ}Áòß]_ ÿHKÜ|>„ »7E¹©tÆÏ¡Ö,ªÙ•PJ¬ý}ÑÛ5¤û1p ÞÿÒ /KÉ#êé¯<µ&øIÔßÚ~¿J‚›ﱨõVÛ+dOù„µï‚~·û/û'æ§‚'7¾=¯# ¾ö*¸Ê°Þþ0çÄôÆ_fò£°ç׈Œ¯-Ž@¼W¸èV8×]L w"J¥ã:Ý!÷2Èó2_ç›|=”Úú\1ǰ»yü rñíW-®:-WÚˆüãYQ&üÇ2Ûæºéwí%ÆT] “ÜÔ‹©œƒ"d§ÐØZ‹}xÙÃfWü†\a]àïf5*âVc¿àc.ñYð…è~³$Ô' Ö5 ¼Zú±ß ³îZpèâIw:¥?¦#JÛ¢w*HÏ‘ M¹à΢nZhæåyÇáí ¾Zj{µ<øÇ=œ’Ü0Õ` ÀÖný)ÿa秨Gt%gý(kÐ'&ï*®¶ZK«WÒÏ© Xe;úÝŠZ'ø8šö›ó?¼•ÃºŠ‡oº×ÜX ã¡h—Ô[XÚ úý2½ÜOgì¦b©¦¡·ZºTG\×”d`ÊeøðÛDnòÈ)Ï:«O©C±û‹Ä4’\@gøùGN±{sog÷‹X(²Š'‘êŸhRO JƒÎÇÊ-Æþ]$3ˆiÀLS ˆ%+…ÝKNV3+ø•?ù‡Fä+bœ&æ~üGmÃFéFÛ#_ð!"> z4ö·ýmõ?ýñÔ:ÀHæ·°Æm1©UqKÑÆgfë±õ§Ášr±öjâÜàW¿Šƒ”•j,*Sx‹fQ?hϪŠA¿Šã°<¼ÁE¸ú†;ÛT²¤5¢ˆ.ÃÙeµºnWßèæJ<ìnò•–ø¥dÆ'v7ɘþ‹gO/GaklÂd&¶{,ê…;¿Ö]©C¢%† œû`,Ð#ö× «üy¬}²¨ÒøNä £È?&†©L§}€ÿ¨ƒç¦c8•®Ø~/3LMD¿€þí—±)߬@r~VÌ^*ïáªSì3³¶'Ä=Ü¥å"öñÆJ'á§z=FgúÇ9|a‘sÇm+­Ã•ÅÜ sK9;ó·y†yEïb½º">^ÈŸgÙ üo‡ñ Ýïz:÷>7«¢Û®s‡úÁ d\Až¶Á"4ãMÏ“Ñä”MÍSb˜óîWJ“Hò“ F;|ùyñ7ÝU>Ò'×ÄLfÒb[øó$̤´í‹…ÝN¶5 O_Gs1£Áõçá?âÃñ~å–ÁÆÙuêô›lÉDÄtÂr8Ö æŠNýàøéAè¯tØiöèË™¼k¤¢I§ÿ¨‰ÿø†þªYíh·ª†«ÌãÈ k4—^Uåæ”w¡’p‘õ@ö¡ÚeU‹­ør9Ñ “ÖÈ?^ ÍèèôGéµdx.ùe&Ø‘TÖtÇæ…Lƒÿ(…oœH=úmæ–q4¥ÃÙ307¿ª ~µ¬úˆa¢Ë(eÖ¿7aÉy»ÿO_¼Uªý¤Ø½FÿÄ`5Öo.¬ÞR…6Ÿü£ýw{pºÖÑ¿½¬Ö’ùQqÉïoýÖrÞÊ4Ö•éQö^a¾Š~÷ˆz•þ%+õ{úuú—ü^ÿö)úP›é¢ÈH |ÿeñ])Lýy^ú'fg^_>£’ž9Äñ«íަÎå»þ¨Ù¢ ZgP–^D¸‰Œ¬âx¹Vù6YÎô»·ôÈt¤ ÐŽÓ¿¤Vo 6a lÃQ8¶xX°«Ø¼Xpˆe˜  qA"$ÞÏŸôO’ ;MÌp'•È?ªáÙÀz¿æêÓÁP—%WX†­uè¡€ë´Ú I“PBà|¿#¨ÿ¨ K`3Ó9ÈV‚»E1–ÛÑ^µýÅt½VV© ð4ØÕ¬Æ4üÇФÆ0óƒñEŒYT©½# »Á'ÎÃ-4Ú`£g‹ôzx9qµ¾ÞýŸ›Ù¶¦x¯"di߸wÁ”*꟨ï‰*Èfÿçó¤*“ñ¼-ÃåÏ=˜?8]Ì5âóµaŸ_“KÖ'K+Ǽï&øtæl·?ÖÓEi*P67r:›!éJÿö¨ÚÃPã¼6F,…½KDü¿ïðýôzV³ç‰gs_Œ,JþÑNV”«à?âð3k°˜ð/å˜i¶&ÔYLW—þ<%õö öœ?O:Æ¥zÝC>`þ`fê©_â[²‘“Œd‡.|½¨™•·(1Ñ×Ï[Ü£ÆBC˜Ä®yÛä ³A’*0Oi™•ýUtÇd©Óƒ¤œ¼K–k¿Êz ̃¬w-ÔüÚ"§öæÙ„kße\¿ó~Š»èP^t­÷™6W¤ÿî&2ÍvÜ×M¨ á?Z›EWçöÖb…¦ ª¨ÍihEuUÌ2PÜv…?Ic_e_f¸®`²Ò²¦‘ô¿oﶈ/LB¾˜Ü˜í\o“zRû„näÏ,—ÌÆ9‘JúIè¯RƒTQHþ± 6>Ž#:üù«]â/˘0>£¸Ó}°ù©ÿöµÕ‹º¥OÏù˜kîB“Ó†ú®x±úð<.¨¯®1SW·:X¯¸§iÁ²â3³=¾ÜiD7ŸrFŠOÄ`Áõç‡ÔúFÔz®œ¦Füë ™Ã¡8òÂôlÃûìEœÖñØñ˜*ÇžÔOú¡b«‰R¢"ókmÿq‚÷½6Fÿ•úÁXTús¨þ¨yEˆsæ|~‘X}¬¾Qݵøz#}_ÿX¢dƒÿh©­Õtí›ò{Þñ£âJÿ’Œd7E £“~TóRש×õôOܯû17Þoís¼~+3YäÁ2Q9JåANµ´vÝî}=¾ðiŒ*ÚÒÿ¹½á?.ê^àW©(éBì݆671ÊA"ô‹Xl¼i"snëÁì¯oß{í,ÝJƒ÷ÎÃZþMrKøMì#lS4-¹©[àÃEÈá­ùBIÆ™Ú ¢óþ•7÷‚1Ÿ üj&±²=z; £XÙÁxã›–'‚»è¡5E#Ûÿs6ÿ½´bLð‡^(†Þ‘#ÜŃ^€Õ8ÍÏd4 ‹¦êþð6Æ÷Lu¥ªt4çúr·kÌ“­AÌõÐo^äÍ™Cä“ìè qñ<ÂPôËtI§bÔpvYZí­·3<ùüÙD‚'ð ñleX-Š9“ž"9ôGغ?°£ãÉ%æ‚å6Ίk¢ÙYØ îU*ëSÅ8²™ÁÄÅIxϧc­‡È?jÍÇ5[Rõâ~µ_Ç\Ïšc‚2”ºF]]ÑB-飵ãÙO üÇx04…ÿû`SN2Ï5?õçÓA!ªÇ›¸’áØú«XUO¬t!£—puűéßž~).=:<‰ÛWr—¼À±>ÙÞÃUìªè.š™åW|Pò™ƒXç­`c.ägÓ;Þâð«iœÝ÷¨f™-@ŠÞ™óáÏ‹›.ð cèh~Fy(ý¯ZSÿq»˜…ë8ŒzxŽy„3î­O ±^3ñ”\ëøUM"‹CÆ%sš$«Q™L‚æd™ÞL7D²%ÈÓrg-AìÜð™}LMÖ0Š1Îí­¡‹Ò\òª N=ñoÄfã±¹…ò#f§ü'Јº4Ö*k 5Š^(¦ÎsÆp¯¿€Š%@‹×î_²O½¥}ä„^$ûŽ~÷!ž÷2«£[•¹àx¦õºbõ˜7ë…}aU¤Cz\ê!ÿ$NjÆûXŸi>éœùG]úð©D_¹‰ Q¹’˜šÈ¢¦ZÅé0Ÿ™Þ‰ËÑì~ âiªU2[Ç̾ÖGÐd·$«q@Øo@Kç)ܧîÑ—Ùçä-˜e}†Iq¡SýRØ“^ø¡xè¯NXÉñQ…äNk5]³l™äy¯©?‚žücóþ{_ÄQ«ÿ”q\Cõ¿Õ_¥VϨiáÏ+é%ðvÿÄýôß-HýÇ~æ¼ç¿~çÏWæ êfál£ëõuô¯~„?ß¡?Ðã‘Ìç7¢µGé—±—K©÷pã¹WSÐïV×.÷ßÒâœHiT wJjØu{©_ØÇ΢\-lg ð’èô#¸…•Þªé í@Xù]úʰ¿æ;¯É?¾ˆ¢(ñç‘,à Ç}Çß$f–Ôd¹Àû*(õª‹^³ªÖ„¥pÃߨó?Öí”1žŠÚœÍeFeXê3Øo»G× ,CѳE°âB­-;o8‡5}ú5ù[q¬È$ÚØåSìú$º «`\åŒD¢Ú/'½¤TÁP°¨+`*²Ãç¿@·ÐqÝèk²ÏÄ{–é”Ϭ7leì`Ö´ýGxøUíÿ¸³€¯"Ù¶~KuUÜÝÝÝ]ƒ;Ã`ƒë0 îÃà, w‡ÁƒCpw·ïߙˉ—ðÞ÷î…ß½2¤RÝ]½e­µ÷Ö{š,/îÓTâa§òò72ŒŒA…ô1«›±Nã¨ÄîJþ1Mol˜»¢9yÜWA[«•c~Ôjº1Ž Ï*oqÍ­øéåÑË6C9„'‹ÔÑva/ÕÆïjV1óƒþ9Ì’~Æ_¢xSjªÏî½§ÉU6Q'¼‡zŠ¢ÔŒ··Ò;÷üy¸õø‰°õ]ðOce ú#„Í?’Íÿ Ï3ø•Óÿj.:ÕpïA¨VÐp•Š‚—¸EÉ?†‚-–E;´ ¯šÌÌÝŽi¬õ¤w9ȈŽól³‚E6à¾K5 ĽþmX~užcO…Ké΄]úÕbM'QQ2/²‰üu¿Ù:ÔzyDRìö%bÚèþv[™ÊރʑÉ2>ÓˆÊ/«íèš^ ß@þÑžžb¿Q>(UI¹H pßÁMÚ }1<`+TÝ•P+|[o¥yGdêÏG“TÈ^NüíÏ?ŽY*#é8r ¶§?™Þ}ªã㋟ˆÑîõöë·ûVyžìûƒÌÁ™a ŒÄU¼ÚR|ïp2·Ñ¨ —‹®úç˜UÒƒŒ.>Yg_<\'"šD"¿Hãöu˜c÷N$ãÝZ UG\³¡ß­Fb9üG1§q0 ‘ùt P:EE¾y]Î!6 k9!Þ-UqŸBÝÓôD#°Ž/èqÓ.@§Ý|(V©‚¨ÄŠÛÝ\ûPïfpõƒ‰÷'÷rú'zØñˆ"‹C`çuˆp ˆïéVÜ7âÿâƒþ{&ú²V>D5úÏý¸ìè£2¢¶*kÖbþ`[N—§VÞÈIÿö#L›Õ¾«êüöO¹¤]ä¦3ž@w¹šþ»õ¡ú&-­0ïп=êOæõÌ@òŽÉðk@J“qÄÑÓóNVF7•Aø‹"ä9B½ßÞ—¦õÑýõæ"ߨ÷ÚD¾­eotN…E 6g7ÑÀ[ø†%"‡8ez}o‘_—æn”¹‰Gqç“uäýŒ 7}›§aó3Ø?q­n_E¥!–ù×Ç+Zq~þ‘ì(/ˆX"¸†÷ø³%¬^R^Å¿¥$~,Nö1Žûp×Èôƒkžo4äMžÀÉÀN_ES”˜ªÉú¨/—ƒWØx¨ `Þ·èrü¤4‹|w~ml}µžÿµ>#ñý+f¸5'†¿ŽÊ?¾,L?Ž>òyÇn|óR¼¨'9Ã|ªÅ‹šæ7vY–þ‰õð\¸–|d,³‰öË¿ÃCM³:˜p“Ðïö‹š€÷Kd¤R´¹µÒýæß¿eôß+–‚ú¡j,ÿ¨M†Qšˆ»5å2hZÐúu`.¶Þ“ØskŽÁÔe~­f‡GŒþb÷9r±û9øupGÁ¯Jâ?Ðÿ*ùG9ô»sÑ-§Ag´œŸ¼†œ©:=uÂfšYÑ Fæ~¤`£M¢òe­L®2R18‡ê=hr‰YoÑj vo:ÒöÆ•f~TØü#ú«“`°YÈxj¯Å½š¡:°£¾ðÀ©¨VKâ:«èKqD()ÿÎÿÍ êm`Ù¢c¨+.&œz‰cNNŽ.××ÚÄü~ª¹ú[¦ÇL§òíøÕ%j;«¤öx¸’ü‡SIM5—Eo÷Ãðf~mâŸöò"øUj¹Wô³Êãä¦Ýük ~=1øa˜þÌŸuð¬Wò!zÃIä2}`§Š³^0~uD¿`Ä‚ÁÑä*ô»éx»þ@=˜ŽW%é¿{Œ¹"é\‹™3‘úóm¨ŒKÙmPuEÂsuÆŸw>–‡¨&Ò»ýG.ð‡gø2 K¥?1PWú·çÀKV¦ëÕ:ÉL·Wã?º’ƒŒ£×ˆíº+»€_mF•ÿÿqLì¹èî>…‡©ÿð&Ú˜C”V þã´*‚z¡lÔ$U™}¥Ç\sEtÕ%Ç)F5æqæ×Â+Ù äJªNÓä;WÜYpßÁÿÜ›þ%Áç/µR!ªA~n‰°«ÙŒ)ôß-lž×krº–iéÈ?ú£¿Š†~×ï§–û¤9¨N0§ø(xW˜>ä0gÐïîÛÐ+Ý3CdMáYx€y_4ÿ±‚ü£œX ¢ëùŒçT(…±Î©­ªß¬rþzíèÌ¢Šë`ô©ÀjÞ½hD,çl²¹Clxï™"Ÿð5×~ýí_}%%õç—`uŸaá7`/?a9«`ßaWRËðœ{p˜º…$L¼üqþqS«….vžpaõÈ5¨DŠ:õ“±…ØuNâ©rÔÌÅÖ~2R‡²_mN›e´Æ&ôÂRž&»z.z bªŒÞcIyÌv=(È2’;DùU­4¢Úw•O´£zd~þ|ò§£ÊSq†û_Åro)@m–`?5¹dæ þã(÷b!YÅôWo¿Þùæ| ´*;OÕV¥ ×ôÔJ.ûSÓWÍü„õ J2˜H{!Ú–$Aók›-~½Üø b«9S3‘YM ê.û[å-Þ¢=2¼@…áíæàO&â—PEQ×ÔÁgCÿ:b,“A¹ãÝOŽrºq¯Óÿª/õÐ - Ï¡ÕèÕÕt"ñ xãuøÏÝÜ×rV—¯øóÌÆ]4Ü=@ñ§€ ùË)œ AZÝíL¡Ö3ÿã5·dA•P»/E,~žºùG~ú_…®ÜkdÀ¢N5#¡¼|a%T^0èØ¨ëÔŸ§oCŽt•~]õÔØçôd>WáJfßcêAïP'§ŒÈfª[»Íº*¬½úS-câGì©ZÖ³ö(u^=ý¯:Èžè|Ïq?}ÈPªÉýb¤û^Ðz꓉JþÄk×Ã[­áÏ »-ókËÐÍq*Ùõt6?DœßŽŸ2’õ7ÀÍô$ûÄ=Lîh¡ÅJ÷zGõËFRÈ·ÑÛ–V ˆ×k ³_£–ZOîÆœ@0«5ä ×A³^Ýÿˆ‡4†‡ èÈ)*ŠÏîë­Gþñ^¤!«[ÂÉ=#è&§Òº*€§u¦câßäGËAÖb¡à}CFW“ Åðy±ÔZ¢‰ÇD±'Äpï`ýî1ÝÇ\#Zð.9=>…´=˜…èþwAmÂ'yؾ®+®¬ôÄÊ„þê³½‡Ü##u%‰y“bð®Ðaÿ^Cr_ñîíYˆ‰QטÝ}Ÿ~n±ôczjæòõYe úÝÆPã ‘‚þ@?W]V»jZ`÷U੊¶§~p¿þÑ<.ö™wéeýäü¨vækìÞ *!΂"7ÇÑïf¤&ËÃj*ªP?X€þWáStMÑÏé‘Åsêc#€i7$oèE[4f”y¥‚¥r¿Ld¦~0<ˆdêYœ O/±€Qƒº@¬*‘<£~°&|©e½@ö‘–ªŽ5?|6g´è1æà?eùàË*Á3”'Ršzò#;Lwq~ŽõšYè+n4¦ccFa³áχ?U„#uæäåÇê/#ª>ŒÅ/ 5¿YPÔÓO~çàÜÐüõ¤dAžüü„d™Yé«3L|1´Í°Ó+øûyrÃìÑ™§5Oä1]ߨe)½¡9˜*ºhh¡¨ÐG‡’ ¿—\(¢aýiV4m:K$Òí䇆âãOõöÌoøÕZ!ú': ý  9‘ñڣɌ†R]×(=Ñ—ÏçA\ÃŽ$?ZÈïÙìp!Ýuý¥Cÿ:iÌ/ ïLœÊCvÖ D®" B}U˜iO3l?´SÎ4©ºðçÈ?ªá[†£fõ’5ÀÆ'…¹â´†IÜÓ m ß+`é·¬åò3ýÊɈP íÏYE~ƒ~…QÀ¯²bñŸ èÚHT^'Lÿ’}F"žÖ¢”Ô \%Ù_2üÇ õý¯ÁLgq½"nžCvS ü}þjMPuÊT}9Ñïv µÃl"5*3?üGkð: ´†Iå-èÕˆú§þü1–yˆò¦~0±½W?¢ûÝܪXªÐ/w°ûîÑ:ëãñÝäS«þ·(ÏüÚ¨vw;šý;¨N_»:ÛBÌŸýÛnLÿ’qTîí[ëOuŽTmñïù˜g8ŽÞ)ý‘‘ UÄvÞ²*iiÑ¿÷5<Ê&§ ¢}<¤<‘òLªTo°¶S©Q²ˆº~Øÿê°1Ï6lê,ßó@ "BªÌ®Á,”¯Ék|©?†W°ð ­ÈôKëþ!öòã;í­^Óz2ÿÌÄóoÅ• ÿqÖêZWˆª®ÖäÞø‚øŽ<ˆ™§Ènê߸î*zmówÐ>:®_ïÄ–ç纓¿½Ç7 1;à?|È Ênü}:ÙQZü°ƒ˜­û†ÿ˜­U¿Z޽‰]Ë€§‚Ÿìg#ž- ¶t?Y ¿•ßY`“g“!­Á~¬uXd>øj~Ô!ô»£ðgùè5².û&ªqV;([ªLÌÌ[ÈüÁÔ*€îèÕðréÙT™h|$ža+QIׯ柧1žˆÜyºßƒ"!ò ´–a-ã+O9E½$^® oûJ¾"ÞO¦Æ°Ç22·†|¦"(kFã@¨{¸ÅÈÌiÝ>ZWH?¢šFoNô[lÏB¿{Ööoú_U¢Šã:«å ›»~5–¼†uÅ _åðX‡ÀkÀ¬±NÑUe4½ªîQOr=W꣹Ʃùr˜zªfvµßž·†,ª¹<.þt•MZüÇ'ºÞ¥š$¹D{ú—ÖS5™õ›üyY½¢9\ wË™Ç[ÀJÆnã ¸*Oÿ«×Ô´ÛoÌ›I¥ŽS¹Å¬6ô/_Ÿ˜¿À¯ú‹–BÓ’hî~¡Wœ¤® þâ4HY6,·3ÿ<"öii1×°œ=Î2ßéaûïúÒw$jN,Ð,«£aÛˆ‚úÛs¨“j ãÙá¥k€MæIÅÃGù‘ëfªG^ø‘až‹2^ õª¹óä=8¤ûà}ÉÔg¬úl¦GGÓùÌþ²UÍí8·”0ÊÛáþ‰t‘ 3¿v®‘…<|+1P® ÿˆ2iŠÛÔ´¥ž;9Ý2â¸F²ÃêT8Þ@ •’œó*|üTºU¬€0øUN‘üêyc%üÇbë»­Z“oä§~p.“bƒÜO룔½”p8yÊ<Èúïþ&¯Š‰î‡²’ùƒÓ‰§þä)t&Ûóè›{;ŸÐnˆ¿ÀkÐC0.ýꇑьdÞÆ(:¢<"‹ÛˆGíAþA1ܽžõƒÉÆŸ‘+QÙÈ}å©Ô²ŸÀxÏÇt ’pèßGû.ú+ÕžßOÅǧw"C¡²RŠò"¡›ÿ(¡0·ÙpPgÐä4¡þ##õ³í”¬q‚þ\éä>œk ÜXTk´¶]j%ú«D9¾ðç5@£¿lp»>Ç\/ñ. €“ß'ž¨*®·ð3ÕCªz^0Gd•ë èU Wð«”.•ÑÞ+=ìØà’w/:,QAY?Dǯ/+ÿßÿùAû=~u›þW œÜðî!µîGG©Feê/ÕÎÓ<˜_ëôßCýÇåð.ôïö¡¿º# Á'%¤ºxý¯véÑÍm¿:NÿÝ—!¦¶‡gá¡æ x³…ô)9€uÎ/ŠÌ¡=/Š Ã®AÿĪ–‡¾Œf¸~VO‚Úý op7,æE²Çì2ØGzŽl)?ªo‘ ýnxòwÆ<¢™Â 'ó±šKˆ+÷ù>°œŽ€m±Žï±ŽÇ„ 55ó?Îk,ì'(NK2ö|D[×Dk±ìÝ>²Sà*£A[=,Ý,õƒ§íkô§"oHÎEÎ÷{jâÒa=âëuÇ¢Üð²®qOsãKÆ“•×U¿ËÜÑvèÅðÓxK2cy]̬ÿ8Ë»ýÿÑ­écÖs&RÍãO§žß—gVÑ Ë.8O¼¤^Éìnä)ŒOÙO,X–è-Š¢䃕ÌÄæÛ uhØáäNÝÀ-£¿úÝÚì~sƒOÎl­˜9M,ãÊFƒ”'g?3±ºð¶óeMbà£<ÌX»åX”àQ3ɼ–pWVq†¢¿z¼TЧÌŽ…‰‰¿ÙOôþÿµÊyà9a+–Q?˜ýUõ+AK~bAlÚ@þõ|YnuB˜çb€µ¦!sN…ó¦²c ìÛFY}¢d#ü‡¿ÊƒÿxMÆ‘O="7Ì šˆ7š~_”i»C­8‡úÁX{§þÇLõµ {µXÕ#ßJ<Ñu d´z#£xz?›€ÎÀo:U†ùQC­—U¤å»LÎÜÄg¹ušzQhu糟ÛàaEa}À ¼•ía2à õÄkžÂâ/Cáûóƒíý­¥¾”çÚ}x=ýb<Ýå/Â{Ä´›±Ë^Té9óÏ—£r­3¿c*óÏŸáWJõãiÅ”7ÄT÷Y¯o7bÂbÆãTyÉÐ7e õ–…íÕðïcÐïGý¬\™ÿq:÷#ê¾J#£p%{¨!¼Kmp5Çí?ªè§±M’3<Áš-ÿæíj¦òÒ ~"úÝLôXYOßöápí LTI ¯Q­qšZxŸØí˜0å/!ò5ú|úŠ·‚é…_9(2ê%þã¾;],;Ú\®‡vVWu»`PÿÄÏÄ %ì((߈›¼GM‰åêˆÍî+þÏ}ø¬µ 1IÜ_+ø“} ƒwEßÍüÚF1³¼y\oÃéÚ¥¥72Œ½tqþ“ýÛjÌGXÕÒts*f-6×qþ‡òÜŠ-æ ó Œ|ÊPç7xßþÔÔ|„/Ç³Þ «†ùƒEôÆ>þÞ…ØâõU~ˆåü³rWýKè°ˆ@uº‚¶´ýà´EYñ*ÓDq`†‡ÑÒ͹ø2D¾ÃÁHƃÝ%3ø p›Ø7 ú«Çh &¥ÊùúZhu¨’[(n‰ ›‰ÇKÀZÇ$Ò|‹‡ÊC<•6}÷5ö5g Úìe–ôŸùQÝñ•Ð|N„[L%¯ù§&Üé(,nñ«~íëm}å¶AÏ =þ#˜Økò²DùÏèT!d\þÿwù†*‰³TÑxã9–±úJø"æ·´Ú5Ñïv!ïˆÛ‘ÞiIV9þ7|TM3ùˆZ¿îØå¡`Q‹¬ €—èÕÌZþ ÿ1JËJþ1ýÕJ2«¼X®03£ð¹ó`PŠbC–[Î,ÁÄÌ©ÁrÖrGga?– âýÓ´° ã}Aó?ò£v[ƒ½/n1Šk©F´Ýýî5µ-R6¦aÔFµÅR<ôR~ gû¹¯‰Mÿsº#gD\â‰ÂÄÿþ°$ó9'^ôßÕÔVú·ß§£onPüËÔŸWÄæ ÿ€À#­ÄæãÎ$ Ó?q½‘ tn7§.ùÇ/ôd‰‹Úg–j* 0Ûjµƒgèµ@½c½¦Ê®+-˜åUEä¯U­Ûaæf¿Ê/ïãÏ;౦Yä\ú7µA[–6h~m.§@þgƒiűgq•@†üð—K¤ÎO="F¸OÍ bÚ©<ÇæÜõ&páty%/;;è}ÿ;ýw‹Ú©«ØLÄ?‰»ñvû¹ZS –‘äë\ýÕò‡ÿØí`¸ªolazN¶ ²§Vƒùµ“ìô®™6f]OÈ;’¹º3•깊B|ÔýAo²ö¨¢ŒÈîöÌ!z(œ¸v>˜«"Ò«©êÒ e ¨U20°n0æsaÒ±o£¡z£¶0»vú«•0‰÷ñåDDY …ÿ— Þ®O7Wˆ6d3}ñ.GE*²¿Ñôo$o³sÚý˜_{ ýngªÒK¸|Xó-ü¿E¼{ѸK¹àÏN¡ôå§ÿïþüjâÇYæþOëÏã?2’mT„??”øÐ¿$±1ˆþ‰èuä§6ê¯9¬rEÞan½À\ ~ÛV@þ±ÑÜkÞFõs<ÍæCôªž Œ{A9 Ó¹¯°þ^?nÕ¦û%±])3Q˜wöÛî¤Ô ‡?zÕ“÷xnV*çv/ò®&à«sDqØ Ž¾½–óÕÏÆ\ó)Þ©0[ÕúRTÎá:k´¨Qxÿc;ÒPý¸é‡; ÐÚàq}˜eƒÜl$û(JEeúiVUPýÝØþ³DêÐ_U´äýÇZc ˆÐ *1î€æ¼=ñ”åáPF7¦…õž Îs˜|Á™45Z)ú—|oÒKt}¥`.o^2ôW&ýÔrA®É´Öh˜ëWÖ.˜agVÕF°¼ 0¼[Dm3¬:Ö¹oEô.fGrŸxDañGÈ/kàI^ZY@Èþ0ÓšO¨¨èˆövÈÚþ—ÿqO4ù&~5U+þj!÷{ j¨ŒÔ L…ÝêCt> %SYÞ{?2·ÓØÚ£Ôú¥”«,§×Ìr8¹p-Ÿô°;\gôã°³ àÃ=y»Ÿ‚x/"ÿ8&©UF3êeß@'u„jšÔ¶$b΂_?2QVG!6"Ì“Ž ~e«å€ÿØ%ŸrÍ·¨—I£«rÝb1â„}§üùd~bY|É© ø97÷8šq!ÔŠKŒÌVKNÃ;ü¹7ò%n'Óq½%G¡$*êºb æÞ%ÿh©Î’“¥§âçþc¬ZUë™Ù"ÔzEJbàSd娜níB5ýî$ø˜ô£ÍF_×Ì¿„b ùÇrâúVìφZ©ÚøŽÎC úuþc-XO?Ϋ£löå™}–äoTôV“˜?¸—ºn?,v;Xú)ôÃ:A¶5µT,õÏ']qƒùó³ú #1€!—1¿6;¼EU¸¦N°ÅÉcnP+ùç—èYÿô3æt`òF|ºdŽÂÃu'÷üh–…Ýþ£¨~ȼ%Ò£çœd̓Ég5Ry˜¾À®BËkfoE„º¿ÜÓBä9d€@ý…ZúßuP$‘-A¾\¯·îkÎ퉙úÀà9ùG —?ý½èõU_”ÃKÿÄ—ÔŸÓß—Ù gÀµb«rvB”aÅâ¢ê(üjþWú·¿%WŒã> gèœ>Ò—kþ3 uÙIaËe~”ÐüyÌÊiL4.Òÿêv.øŸ†ãÓ5íQyqüGr«æ6ã.ÖçyãEó²ùÞx§vï:ËiÓL[¶ ‚¯I„ô‹å0ñ¨ÿ¸"˜ñ€þê-õmÃÉŒ×/èi…†EyD<Ø Ö 5~*0±ÃàV§Á†2€¨,¦~ð޹*[‹j®0/cá_c‰ö¦;™G}pgÔ´D‹šX–åLErøe±â‡×|FkJ]àÔ!qe ”ºÙ°ÕQÍA¸(w¢”Ú råLö+dÅúaÍý^c̾{;XM Äó¨A½šî%@e–ãóްÓ"26µ—US4ûnÿ«¨ú½¨Uë^{´€³À[ãø¡¼ó¹Ð²4„?_Gþõ/rTÌ ß´AÔü&~UŒúó¶àIX/ÿzìrN|Ä{,âZ&VÖ2…Ú†E®&Ãßx’'8½ Þˆ?@˜¿~,Kµ2ôOô"wYg’•|a6Vr¾h (x ¼øF|ä´JÇ@rÒËEäO‹ùíÿЌ„>=ô¯³Æ1†ûž†;µIVÝë^|©+}¯N¡ÑÙ§RbM› ¿ZH$žìî4ØÐ-ÔZ}`º–†yÒñ œ».þcVÿ±”Óç)ªhê ý¯ž0¯»,náY*(UÉÉ>Q“}SÁy‹ŒÓ¡VÜf¢rs7§­øUc"ýd`7[Èò¨þàøé\Ÿ‰Ç§á?ZRrŸ+YðƒŸ¸yFòs˜þ%ÕñyñNÖÐgxPú0™ãwµ~(—¨†ÈGm÷£ úÁî(orz&âÛ/àã.ÃâüIÿÝnîx\ë ¯â-è"o¡O$Wˆt¾‡ßˆ~5Š™Juíç¬rýî(ø~ô/9 ~Õ“ì-¥Iþ‹®¸cÝëÐOIІ?å¬6…ÿHBÿ«•²­ý¥Õvî][âý™LO¡g‹Ú¤„«}#o¨ÔD£È6ó¥uDR·ÿhªû™‘8s9xþË¥¢Š5WU¢ÿÕúr¥å:gÑ y¡‡ªû—hpKØ™6;ƶ•'ùÇs¾ëŠˆ.ZƒÝ§põSDgÞÍÄžûDüùKz.ަ7dºò× òº+'HV ˵„^Ññ,Ñ@,Õ·±¬*`­Ä÷ÿç>¼×„Pì^ÑéiC³ðï$!üGRæ×æGu8(ÿØ®åg~í`Ën#šþsèÜê?ÎÁJ4»fAuýÕ)ý­yQl6WÓ÷òOöyœb¾)™@þ±ø¹¢Ð¬Ø°5'ø ]E9ñ^¤b |QÚé.#¾Pøûäƒx~ýäxòXŸÑä y±aƒ¬¥¢‚8kn Çí3Í]dÃU±Òý‰¶ÿÆ\¤’áqô âÍH œ)[ôw8øó»Úp1³àZ-âèƒäZ•É?~g™g9Óý6‚b]?Z ’•…þí?zÚGŒ–’C‰´n‚¿<Cˆõ‹ÃvÌ&Ú+ë=Ôv±y§%àó%E]ý{yt]¿a¡VÊwdSóä~2×[¦S!ü«<þ£0þãjÄ!Ô^”ëÕRð« tº½‡2,?¼ò-Цë²;Ì…7^z(~9îíeb²ž!úïžÖÚé È+{bm;¡V8Ž'6è9Œù5aù‘Ò?7…Skf^­$Ò?Ç‘ÎÜéĪ7×ò‰Ly¼{sGô½è¯j‘­³r©´èR¼Q‡ µ?£ [ö +ÞrÕûé\—ñÃÑðQ>E#¿‡ÿ&w[š(¢þüæ¼åy8Uå>¼Ze—¨_-ò¬{ô¿÷…CIÎÿžQí˜]Ö{9ŽÉO›­0¹É‚©•AMùeƒ«ô¹æ\ñ't3q|Å ªév)üÇbæŸÄ+MqÝtEvU¦Æ=õ'U$û)üGÎydô6)9Ðï®ÿ²àðÏ·d±Ý'áüyB÷ß~n‰õºÛQÊ,ažê_2O+idÄ£x‘À¯~.ÿX§yÃÔÂú}õ¬Uæ:îzQ·s–ª¼Ëøÿª±ðì³MV⽬NþQ>ì5úÝ[úð“*L |DýGÓpæ3õ‹ôß‚Å{‰íkÍÓ^öÅ|0ýxþ‡±`¹Á*¼E|qÞ\Ž­¥5÷›ÏÙWDÐÌ5œH‰Š%§â ïvl·ÿØÿÈj­ù**ýzùMZOê¦qEŸ¬ŽÒ<'üGeÖízrËœÖ;•5œÌá7üÇÔv—Œ¶DMÃav®1Š¡œð| úC@°SÒ¯b)°?qlQ¸Ó¹<­ßE-ýî×Û úJj}^|cºÖL 9@’š¢Kºjõ–±ek"%oë |ò62ŠKøªÅ󛑾q&³ëcÌf }ùåzKžÀ‹yÀ̤A‰îlÛL V£À,/í€7½œÎ/EKë¢ûÍ ÞèT­0üùnò½ óY°\cˆ†Yùˆ÷ëeF“š ÿ±…mò üc%žs!>n=ú+‹óú×£…˜B†—Lå’ô@wÓ ]ܤŠÝKj ](bª@þV޹"ˆKVlý`lùZð«%b\˜+¶é¿ëL2(Ÿr™<`.wg1Óöâ0!vúHGøà9i°÷¿Â ÇÚ’Ñ™¾¾$7¹a< µ¢¯‘“ëÛJ”Œ¦%× &y²êFýá|,aj&à}`FûmôXíÕcÙUì"¶d[­ÆÌ¯íj½ DT¿€ôl¥b£%æŠ\KïÀ†xðàW³É?ÎÑy<€|d:•³¨êÿ‹há0÷cÌ ™†æ¾W˜_ë ÕUÞ ›‰%ωåÖC¹¿&©ìwT‰>#±ìkT|÷TwÐB·£k˜Œï„9 œa«¿{½}ä1¥£aØ`•Q¯EGëSH–À—DÅðF5"ó˜iï²¹,x•WL)Åt0C£ðnme Q¹ÜùGeý°éÇ-N 1Yf§ôV3™5ƃ~#ðüÔž¿g.n<ú«ªöL9Á®§¼Qv<áLlF[Ÿ'„ÿX©/3'Šn¼ýxË÷ŠÄ̜¤ÚÉäímæOÍu]p%¡ok2™®«(¬oʇŠ'ü€¼´(ÑBÛÿŠ~7²þKˆI°t.ûQG=÷c ó!þŽÉ¾F2³…¹E¯Áéš ÿQÄhlÜ!ÿ¸£…‡K^òŒhÚ0ÞÅÉèJ0t7ç¯~ÑÜ/¼Íçæº¹£nÁßõýOÓ̬Óœj«fÞ"¦^M}Eë¡MøðgY3|žs°~Ga~Àê=å}nD¡Ör$˜‘%nì%Ú$ŠYÓEløóßßû¿DÄ>Â܃u*]Äçä6ÏñLùÛiòÓ½Ô-D³~•ºq¸¤µ¦ŸÁPöðŽxÙkŸËzFþÑ—L¡»œK¦8ËÏ;ßÞêKÿݰøÕ3ú—ôä*Ó’Ïl :„Wÿ«FþÑÆc=Ô=̱½Eµ^µD–¤^<1‹@øóúptÍþ+ýcëåC(vþóÏã3ÿ<²1ÎÈh&7}ôjœÿ•ôoÏft0V±ŒøúÏͺ me*xì²Éï-¦õôÇæ.±{»ÏxuûòþÝŸÍÍËðð“D"Ñìä«ñ¥ð!‘é´ˆÒ«x8çGõÔOQÿñ”*…í0å@XzÈÉ 2YÄ]¬òNìàKÑ–Ÿ”S3gý»-ýë¿E"ÿxOŽ]ŽÆj:}ãÇ¿#2¼¿ââÄåÅÎZ ¶¿ª*ûzùkZøóÕð%QP>zÏ”àþUŶ/D%…Ø1Ü£4•X,e˜EÃØ©°+î4:‚„ ÄÚ%¸»ú+èõ$ºœêäL×­=(¦2“™c+%òéÃ.ò¯¿GÐ7èY¨¢X‡]-Ÿÿk^™{xà¶q1à÷õ4¹ÎJbc_XšqpVy¾Ù¿ä}°Y(<’Ç:ä?ªáÁ¢c­Ó_¼¡™Pí¢N­¥ì‚¯\Äÿ’3Gå*µ‹ÝonðFçà?æ_*[z“ ¤ñ]Õá3‹Á4•uÈH˜'E&±•y1evþ6ÿ6ÿ9îÐL— ^*èÓ!ôWƒÁ¯’cÓ<¹SOðE;È?.1O£ (ÉbæœfW:µÝ¥È?šÁ$S鉽ò•MÁYLJy.áϵE(‡ÑÐÒ3‘û¾ ¬)›:€–è¦:R¾ÒŽSñ˜ÖT²™Rôæ=„Æ•áLÆ4΄Zq³QŠÓµ—Ü23¼þ2ÝúüøÎ¢ ;+츮Ä.áòSOé£Û—UKqOV3¿v>ÊÛ“ð)¯ÃäpÂ%¥ùm+Ùˉä*ÃÛñª‘w,²>POloò™¡ª€ý7ègîê*T–Óñ·%üG÷\¯õÒWàÙZ¡æþµ›—¨o}ésÑ®OWó…àDûTN*6Æ0ä ò¥ÂΙ_;”;Gu¥RGtw¯w@4"Èꜭ%V UŽº9õçýl Î{ÕŒ]P ô±o£ŽO†Õõ+]µ>+§£å ö7ŽóšA4ñÜþÃäþ#'oëZ·¦VÕÌÕÐJ=bnòSö:ª¤ÆîÇ…Ié‚®!@ÒŸï¥qrÑMû&Xupý óIÌÍäÅ^¼AA.ÞSÿ`WŸ{¢hÅUöp¿Š‹2,6ýKÎS{ƒzQå¬ÿ…ü=—¬õ_™¤)†ûd]Ò ‡ð&î®)õ}zZcý¯ršGõÒ¬9›ú|ô/ÙcD ~ð{S…¾½øSø‡Xû´tßÈoRñQĸƒÝ~€ªé‚yŸúðUk|Y}˜y\i¼(ƒ…omU~â‰V—žtÕ™˜—73ŸU?œõP'iŠX¹;DMÈú ÆÏoEDZ7{°Ê&Ñþß ¦»ÂÕ¿ý³q€ªÈúXéaxŽ¹ÔŸŸ&& :v„!h.è>|x!”bKÜOêËu…ýó¶VMø*a“+—ÅÊááØsÒXŃð«Ì M¥ø9ÛAÚÞ9~°â£=™Ð@ЗÓ·ÿ‘^ (ud+°Xu3Èe«¤|GRÅÊ%r~·þü¶v\‡Ï':ý¶c¶u—)^r—Ñ|¾÷ÅÖÇ•{ñgÈ“v‚#Â#R˜aÕ±ÎUWÓ;šeñ\JŽàMÞÎNJ“d²>‚h­Á 5S0m{"7Fb»gZƒ9Kâ¹hŒ6.ì]Ó´Z0„UxW§ÛzAÔ3ØÑtо±hZ€ò¬³ê‚¶l#bŽ:´„Ÿ7ƒxq!±}[ó©vBâacqi1+±Ü*ˆžkWT’Ìaˆ*BÿÄÙ¶/ýKž¢Æ*©¦ñîAlü°ÏĦ3Ã<—‚Æ‘½x˜§Õ *+Aù|ÑÆ¦FõڈÅôCÚ@uò}Y^ÅPØa>°ûí CÝdüX\cg¨ŒLœÖó¨ r€KÕ‚?O¾HyÑ?qõçIñÂEe‰lCàmY™ÂþO¥_îðf“PëIÉQ΃76Áž¶¨p¤v®5ÌImæGM¿z­.‚—ÃÉ?Vs¥ðˇ¨ÿðÂæ“‰„¨ÿ8¡%ÿøDWòüG¹KL`½GàAºÝ¾|¼]o”¼n$7©ö<ûhPçÝcèw;s†2às‚óú # ÎEÎj^‘Ó2¶d.õƒ¥á?Lûw˜IÜ=Ýõ‚ü#.þãut(1(­5 Û­¢±øä¾ÞŠÌ‘ˆH4’•§¿Lv¿[Ó°ø…é_ÒÀŽboQí˜88®¦ŸmØãék¹k?ÆÛ›þ%wyëv‰ó(‚û_fÕ|ð«•œ÷:ÖQqQUp ÿ®£‡ƒF ¬=ÏuÒ•ÊUÐÕÊ®ªøU-¦– þœîÓX8Ä%d±ýëcýþUlR÷9ÿñ#‹ò½-9èDj£§QÆÌnÞê¿ëĦ\ôO\K¶ðá'ýÇô»·©Ì ÿQ„ùçÛT¼÷ÌÂÏY÷Q|‹Ó±¶>.£È£‡¥ôå92?*¾UÍoc+üËkú—8=×É?žsÍsxW?Áð;•÷KˆÖ÷aáfaíÓ˜ï¾,âÏjzU³1PÊ~VrEx§[Ú}®pœvôW>T?””x.“¹âÄô:'ê0Q=Ä2ÿú¸@+ŠfÞh"Ö<õ(}©†ì >SÖDßjcEòÃÌ¿hJ§sÿ怊çÏöôO|fÉmÆd1­Sÿ1làwg7Ú³ÝèWËa¥ƒÀ¤¤»T jì&ƒÔ$¥þÜå×6âÝZä\ýÜÅhäiAœ¨mÁ`!XC&‡ÇPë¨ÿøˆrÊ•S:¢SŸ¸†,X” W‹ð‡Îüó(aøóÕFZ¢‚ƒœ6r)ff<´,¬•jƒ^j(•pÉ韨»¶PÞù·¨xI…'=ÃsŸI–Q“©k=Cí0·ˆÁO¼ÀÙí çc’˰ô¨¨«žÐ§ª3•t×øÔxâ‘[ÂHlÀŽD3ÕBÞƒÜwp-ý¯Æ²³N’nr2“ôý¬'ò 5ÜŠù=ÐÇ–£{XzP¢vôX3¹òcøvhÊŸ±n ¾çEˆþíS™Þq<~qå/2Y+eLæ|œZEîÖ$kŠ½ÑŽBÿ«m*Lx ²šø\qS<ðyÑDDwçE©c¾/¡!œoí‘OÌ|Ö ÕØ•„œ£E|Ñs]@3%‚ò™ÔÉ_¶ÉŽÔî!¦»F„³Ì©Ý´¿\ð}ó£ZŸ5(ª•®(®j,½¹RË™ÆÞázæÊèŠéªBýG*×!U5pøs_Ðò‹pèUÐïÖ»¾,øŸüSo¥'qŸ„ZÙÝxn1Qפ4š‘ä0Àª8ó?JñŽôOŒb˜úùŸZ.@;TQ”<)höF㣾œú‹âˆyÒ|c¼øÉ:ÇÆæc⎉tòØÂsÏJÿ«¨¨Å®‹’V òÇ¢ùGp°·ÕqúQÝÉ;Þ kë5‰i%;‰sOsÆ@ï3üãH¸æHs±©@˜l"ÞÍ(Dî‚ÅÁf_Éù,?‚Ì ~¯õcÝOê{;<«5Âã΄oÿDì6:‹2Ô–Ã@sÓÚÒöxÏHûèwÄ"M4šÁôt犜þW¯ÅpT°ñ㈃ó³ÒlW]mWò±,¢ÌwŸ´ƒ_Åâç¯æjSb½>£ßm káðçŸy*ýeCPvbØv·EÕP®"‘)¾qݵô‘f{¼ŒÓé05¼íò2dG­drÕȬ`>ÀÚÃnt$®[AN˜þ»÷ˆ·»ßÜà»8W+~w. ™UðÀÙðcãXm2|ÃDÔS¹åSžLâ úó“ì1›\ÌîèíH:þ»‘Œ°º¶#E;ìvô¸›á`žà×X•ÈZSÃà¯V1ÿ<º‹Ú¶1  ±n|Ç"ò¥Òé40/ÌÇ7 ¸¬æ ¾\Õ59–ó±ˆü#ŽZ%÷¡ÚFÁj0’ÛøDjú«RèwO’ü%‹PÏÅbðÕjÚ#=§÷8øUFüGkyÅJ¬ŠMd.µÀ‡fã?Ó_ÊW]¡ßzõ@.4SÏÈ>&¢²ªi=1›†Z/H®à Õl@á¨á!ÿ˜‰þjöOñGYì«ê“=Fm‘£±üñE}Ðïî ›Ûç݈zîí§þc*Ù}KPÍxƒÄc/à‹»R“הм‘ô/ÙÏdŒ«DùýÐc'wØHmJwüÌ8Ï'š|)–¸×óÔ Gø”¨¤¤º+20¯ì¡ìlß@Ù´_]¦GÈk*Ùwr½ x`2FÓO,&,WžÝüe4ÑPrûbúQó<|dR¢½•ò­YÙš¢ º²Ñõ¥ EÀw¬á×èa"˜¸˜žî¾ÙùZåE4x•üc»ˆ/« ~Ùà~ôWsЕ¯µFqg£XWU;×#»4•õÄõÉ’|\OQï^FÓ•HÅwm «b4úÕD¬H¼{ ð•¨?ÿ¹ »/?ý÷§Ò‡Ð_]¥{ŠPç"ü«§Ôwé‰öF *·.è®~„(·‘GÚ÷Pñoÿzµâãk€A'ç÷ s‹‘š αÄ~qÓô7]敟œs5Ä|†eŸ@ž±‰è»Îãê˜ÿQ,+?ìBa«•™,\WÞŸ9Y.*H¯¢©K„úÜꌎÄäï ÖD¸äꜫV`ì…AÚVûâB}õýU]"_gæÞrp+g¾ì'¬ìE|Þ†ÜLLŽ kþã‰V|cv2.Vä–ZÁÄÜÎdC°°«<øu ,ß*¸‚»Fª\óz£5úÚ‘ ?WXCG‘«Xu!¨Ìmìûª þà 9‘º•ìÂCßêú‚ÿÎ/9Q×Î'OÈóÞ© oÌm«Ú˜âLnjF´¸Ø>WïOFOGbß ËN;k6ÓG™Á"GŸ*BÖò7~­4ž$üö(k²ÙÆŒ¬fÀVA=6¾9Ï)ò²ötaÞÓ—OžZ%zØí°2ÁÁÔCÁóš|åWò–ÜÄûUà/\’Î2Û½­Tr¨å`k‹ð_ó¬ftãÆ—…þõçú'NÂ%Ám‚ÀZKPÀ픈çOCûÓçð9øUcjìšòS×1„ÈSÖ¦~gj˜çRœü#\}aôY{©A™Ç=Z ‹¼Žþ‰{ˆÎ7ªR)Î̦nÈ:`4—ùûHð°†V¬0õþF~Néyë•—+ª$ïY‰Qï.VéÈ5ÍO|×{;ªkèXb/Á¯£ß}‚Bv6èT]ëN˜ùçÅEB²¬‹äßNÿvg~íbøL8ibïÿ0©'ù‹¿cþÇb¬rP³£ð=Geõ‡<(úºï üÇtEX¯*'b)œU>úØö³m»š¤ÙðçGè+u ܪ=Ù<:ïìËîb¨Áô/Au"º×Û­Ÿ¦~ðrÀ¿éßžDü7k´Êá*ÀýïJÿĵô\÷$ÿˆÍÜÚöpê:Ã…{1¹|ÃS"œë"'í.îS¸G_Lý¹ÓßßÑ_÷X-²ëWüÇM5樒½Äu‘üã=3€¯TiPW¶MNvTâºt¼Ù¥©?ÿ^ßR÷ø?øðYk¿zªü?í~;:õƒ©ÌDæFXyMÛ å3ŠÓQqñ™þ¤Ç~j÷4_ó%O†¾`X'Ìch¸˜ FÇïCô;¿˜&Ìöï—_bÞÂ*OÂ_삽-#6ŠZnÃé_]T&ÿÈAÇ‹ð!w¿ë'˜?Q>â4t 2¿ ÿ1‹g˜RœÀ–ƺ&Ãö,™˜”<ƒàû»³©§ƒ§Ôä2 Íd›°ùáAÀÔÄ‘ùÇ.¢ÌVOáùÃk–zEP¦i""Xk/”VéXëàÞÆò#YSôÁ™@ã—ÂÕ½þ¡ÿ8d4 ›á ¢ñ‡p(­¿@êZXià¥ûà?îÀ+¬×?®ÔéòÞ/Z^ÿžÒ.5 ºÒXè9p湉µã?P3r;xÉ™ô'äüÇeîÁ>ž”3EÊW$ü&3UýU'®'¾œÈ›¼?Vþ>_I‡ža¼ÙœùQ‹ð9eO2”Åä†I¹3oDóoÖl¦~p drС¶°Ù/y—+qݱ!à˜ãƒb#;ð¥HÎß’xqí[ñ!ƒÐÿ¸Hÿ«±œ®Œ¨›öÕ³÷uÔ£pèGxÌÞÁ¯.ËVXçEÔÄ%Ë9 Ò@þQÉê'F…yÒÉ7ôTî@õÌ~y•Ö r‡(—\hÌVÑ[ðÝi§ÛÏåMúDTsÉê2#é(¾f¤,Ä[%Œÿ8hd!§ »é‡õƒcŒF¼É½È;ðö½Ç&&Õª>žúª— F~ÜÑ5d$ÏAršâ™û.þB›¦§…ÿØJ-F6kHïeµzàtÝøîœÖHüÇ[âús|e÷õùÇêϳ³þ#—žÛl ûQ¿ûQìr¢{ìdR2’¨ d[ͨ¦†mA”;„kŸ„r=‚?g–ûÍ ¾ƒ£´f±ϸï)~5Œº/üÇTòbLYûíÔ?ì&¾ÍòïæÃ>ýèø¼TЧëF1ˆ\4ßs ¥óCjàò· ÔÏÂÚ¯FÏšS=“5Uå Œë.š¶[d+õ­Ùbx˜'m‘+§á‰UÄ]”™Ô\øÅT&¥Bo.ÖîhPýyDu{ý™ì° ×`©kä3Þ²83®¢Ññ'ä}„V,Ö'<ÿ&bìûèw—Ð}ö™Îv¡Ñõ‘Î}>T·Wƒ¯¹ÀóãÙn‘«x•4¶^|UîB·È n‚´Í:þ 푺* Sÿ±øºJO>ã ÿ‘ž‹—Fžr‰øþ&YTj<ú¸··d:ùø$rÚß¹/ëAM_Ëèb£ÂlÏ`¾Ueò¤ØûYvG*'ç£ïòGËÕ ÿ‘ZÍ"÷Š.mkŒ{=oÝÓˆÆ9¸Jl&’½LN±þ<©ñ»Ì£5ÿÄʤƒ}*Ìw¬Ã{üB^CS/Ð¥Ýfióµs#`i»‚_-$SŒ rUÕF÷›|ÿ¼ñ£Ä²³5 Xññ#ÁwÙ…?ÏEÚBþqïqt= oî8pÆ<ï­Öhó½þ1x© O§Œ¾b<¾ñþ==qÁ û‘SåFÁÕWy¨ýؘ*¾zZÔ@-D‹” é!ZßûØç6Ö ¯&—5>‹øÔ«–Š¿„ÙXÈ Ù7‡úóÅtÛ8…žs5ûYŠùµ3ñX¥énr•|føUm+·!·xÒÈÆÙ=ÃéÍCÃêd’IÁ¯þVý©×O¿ª¤ø®µðçuè0ÿ Z)²…O D3Á?þ»Î„Ÿà_ðç%à?¨Eh,—[7ØÕ”¿~ t÷è³^ˆzº7Xëó²?ó£–Ât÷†¯8M×ÃS2•ªJE÷b+´öúD"ƒnœ×¶ø-_PÎ\(jgb«R•=Žüã ùÃExš6AüÇH:·¼éö¥Zq"l•¢þc¦{½9úYÃFÍ‘¸¢–j„Í­KÖÓ€ùîuƒú—´Æ¤ÎÛÑ_í#KªBWÅí*Yã8*^FH+’ðÉÝùGm} ó£’ÀdL¶|¤âmíÈüÚ²(¥Ê£Ú=¡ö£¸êÊôó‘ô[»²’Ú 0W8­À¡‹T²‘5Ö} wéKÍåb4¡¼âŽ*éz€R`ó¼V¡Une£~0 •liŽþ*2Š®rôßa¥WÎŒ†.Ÿ¬þ_É?âè}Bt,yÂüÁŸÓź’–ޏ<5hU)ú—ÜÒï®Ô*â?ÆÁžžh?§.; ÿáTe—ç­oHµëEzÀïÖcbq.šÍ×Ìü‘å Þ™ó©½yŸ¨~!±Â}ÞäZb‡ÐèHýG7ú·[üœ†fæPoDèïþ[wæè ᛽/ù'ëõ !“•D fàþÃEÆ´Š‰e»Â¥¿ŠBÿ’çâwë=\‚·c㫃_Ýgýžà‘eJpû( 3CÂQ~_«d)ø ^¦¼ôá´V°^ 2[Ž -ˆU<ƒ½¸„­‹åσþ*Ë®y§Ñ &sÕ-Ë›Ìj|ÿÈ‹:›˜ç˜'1ç%âô@âÙL®¤oŽÍ}í€^Œ9¨8™‹$3ú 7€}vð«Æèx·Ì\ò'¶Ÿ "¸R$1£|c—åõ6fGØŽDÔ çZÎ3ü•kzl¥’Dçf]3“™ÊŠr×>ƒø?#øÕCòî77ø©.Ñ šÁ¯œùÝd2«¾<§gñz?UÀŠíýÞ ÞÆN„»Üj+9ÈNb… ¦ë+þü’ÑKŒÊ?ö2­£<1{wte J¿©ÒX©MÌ?Ï Þ€j¿‰Ü#¢»È]= ›ÝŽþ»Ã\q>bLèJá_üˆµ—­A¹Im’óUsóÚ›Ñ_½–™ÕKxø<üÌgìv5þ¯ÑMBã\¨™9­g-“Leõ–M'Âjó£FÃ+¤u½ÃòVçàÓPEèô”ôÁ͆‡ãþö µ^y‘˜Ÿy‰¬±ÞÐÛ:+}áã»âÝj©kè¤Jaû?ã?èß™ùƒcQKµå^‚îESÕåù|Å1­·> ¬§;þ£¸Ù&°˜ÔH¥þ¼‚êDæP‹ÉLÉá?æÂOÏâïsíë zQ'V©rJÌüÁ^î‡{R?i$£»EPUD£1úóžäè*ÿˆyåI]SQÇuéxõ¨®ªö@Ñ)ðéƒáIúÊÔÝþÃùç‚X*Yí!vW”ùƒÉ]ùéÛÞÿqŽÜrƒÝÆgxØful'[k[j ˆÅ=¼ÍAÜw½> ýUÝ w´"ÓÍö¨¬®w(•W(of-ε{Û+]Çð)]¿ØI¹‹û™5™LÕcþÇRÞu§›D]NdÝÿŠþ*ºÞBÏè> wþóÏÓÃÄ2†EÍLf€î¨3–jE £µ±Ïx¦ß׾Ǫºs¨/µ“ð祰~IQëìfþà+ý†þÒ¼Âü¨Ód#wu˽ëPßø¿ 2//¬¤NÐ u)±]èzVãœhÊÄŠš â…­¼fø±Žì#‰0ˆ$4Ù«pÖê ûË&ÃL&n.€þª)=‹á?–g7!¿¬È§ž‹’ D^Ø£µd5GÙá+âŠ;ÔŸG&ÆO‡ÿø_uõ¹Î?ŸohE‰`¼ø÷6ý!6ó½È?`dÙ[}P¢£XÈìü,j&ë­‘îwqüÇ}ìï0|Ûp¢¹ð͉ʧb£ÒðFzòNîæäè_È, |·þ< * àÅ&£ÕÍ„¶ê¹8)šå_°zÂÌ”µÆaÇ âü<’'«n´&²ú`‘ì›øUK}‚Ù,%2þ£¾m^ÄáU>’³ `&`óµi}¨õ›€ÿ›ƒ/Nʼ‘§âOkî7üÇZêgo+ÈJ;0÷‡ÎýÂËÄý‚eL 'œW¿ñÂ:¥’Žg›´…µ;š¦9Ì}¼`L}©.Í»p$ý!? èÓæ‰WÂÞobþ`ìr UV-ÀâfÆ>{£\:Š.¡’ÕRŒ³^Ij]cC¥g§Èb–qBvƒÖDT›™Ôt'hþùfÝ“…”RcˆG‹cû޲ßþðy™ÿ±5ÔŠÇŒ4œÝcT[f'j/Tÿ±œŽ¹½¨ˆgÏ¡ÿÕ+û-êV?ò‘_áiʃÚ-&Ÿ‹"Ú™yÈìj½Ò"JÁ0òm`Œ<áÏýÿ sRY=Äe¶ï0™i¾ÚC=b$¦= 3«Ömù”T5¤ç>Ì'´Nú╆°Èõ¾•O™SþY•WÃñoU‰ÁsÐ?qŽÝ‡ücëŸ&'›÷ ›‹çã+æ¸×óA™+8EΘGÕ&’¨„ îtQ…møóê?öدè}xþWè¿{F™ø¿à{:9¤¦ªpû ú ó³ˆÌ›0Ÿús›H¢™ªGoª àW‰°îìóvcj¡Á¯^“kF…»ÑÔ ëñ›SÅȬî>…õ•poˆGè‰Z2•×µ×®~š™)ƒíàY‡À¯l|T&úªÒ¬XüjŠ–ãøÃ6dÌYÿ+ók#è½CtB¿¤•Ð3…:î‡ðÃY`GÓ“Œ¼fñáW^Z9ªþz1?Êøéþí§´K¦‰]ÈŒ5n‚58f\Õçé×Ì£â‘y“þ%ϲÏ|OóøøNâ:,U:±SdÔã§E-«1üÇKQýîlé?·`(}ê# ]î§R¼{» Ï÷q¾%¶ÃlÀ^'$ÃYlj;jzÿð®iZ^Ó‡þ%UÁ­¢dZ ~¿{ÿ„Hî5IáÏsÒw#þcp8æœÑÚY¯Ä"ú·»dKyØJÃÕ~¿Âw@9{Ÿ8»Fæ ×Ìl?xÚ㌺(Š'b)/à?^ŠdWÈ—ÇaGœJ’ax¼“¨Îr ,é [•N”ø.ÓuM[¥gÁ Ï'.OÉ»|þ¼‘ØqPn¿êEþ¡áó.‘Å9úÝUø¸EhR˜ßŠ*ê%ÌaÜýLr >{7ÿ²2;KŽþà»jŠ*±ÌAU†sµã±óÉð×A,׺ßÜàÇ3‡ùƒcÅ+þ¡œ²Óï°xy9púâØöK‰/6ƒ_QµA÷¾³j-:Ÿ-ô ?…ÿ0é_’œ|æ {õÈK^Ã8jÅMøÞdD(ÿ2´Z·­´ðËT[æ}L`r^JéZM­&t!y@ôžÿö „mªÜH }9 ^J¤d%?üyC©m`k³ÐïvV‹éŸu ’øUL×pêAz3}u)WÚFÂ…ØNTeå^ÑÕý0N¡ßÎûÐQ>¶*8•7¢¥YIÔ±©ìºÌH »°ýî=xš?ØótøTÛB_ä\F&ÿ˜ì^ÏG¿l8ݨrFr+Û½ŒÎ÷혟^—IµG‰äñD'ÀëÞSÙùÒ™¨®«DäÄÈÆ‘;c~T4·ÿ¨«Ÿ¥þ<ïÖ2kL(R?XÕï|f•çaÆÉ8&ÖV²c¡îÒÐ_ÅÆ›$¦ßYtµ›Ópz¥1— úQ?¸Š¸Æ»Q‘îŠwUgøóBð·èŸØß.`{2?ª”ë<«G_[v•‰zÑ(r1Õ Ûx•k®*Ö}Yð?øgb½cˆùƒç™ù-¬ <JBýGªÍ‹ÃŸŸÕ+qZ½´òF^¾â…µ¿«í Ï"îsB{`JâÔ,T}U²ÎšGŒ¨Æ`ú—ܤªâõƒWBTÍ»¿éß|øÍ|ųYˆ%}†]¨ ŽÐ¿$—qCÔ³‘|ÆÔ5„åü³|?ý´žLù„ö…¤¼ýSàä2‹³ôX:‚ÍHh‚ë.!®š‹ÿÍŽ¾ü§tæfÓ™Êý‘hf3¸Mty†æ=ñW«çŸÉÅüÚ—"þca(ðe…ÕÓed:Õ(TSlãþ•DÁVŸÜæoª×^³¿Ò(Qk€ í`§ŸŒ\?Xq¦Ñ—ŒhˆÕ´ß“ÊH§V¯0vpô/1 ä,ü¾"<Ýd'úÝähÃýUA•¼g-÷° øUCú_½UMñ”Ý죰 ŸÉ?b¢¿j¬.¨w޲§×þ#¥h%2»ýGFý–¥m6üÑV¹Dä·&+üÇj¦~¤ c‰õ½˜DØ“þ‰U4ж8ÔFQ;È•ßá½ÎЧèþ{»Oá}üG"º~D{{Ä1UˆÞc<Ê®§%ýw/ ¿Êâ*O†™T± ùV;‰\‰¶ÒáÏÿÄw7ÇÝWüŸû ÿQÌ}²Îƒ_ýœ.6x§Iè_’ÂXîaî ¯VÐ?±¦ÑÝØMýÇÍ'øŸ†ãÓqíQyaîö[lþ.SšeÕúó­Xgêâ1+þÜü¨Îæìå øêÜÊÁŸŸ×ÞêgÉkжTw7´j˜Áuøÿnƒ-ÁéÞ›IxW,ÙKÜꇂ4ŸõÒÜHŒy¬96j‘ÈÎþ‰1ÁãbbQ€ëì"ÿøH<_ôé¶© úJ&ÄÁ¸EÇ⎋ÜOê{;\¯1³ˆ9ï•a9%æJôúÃA¬jƒ8“ÊyÌÂòW…j.øƒwÝÁƒ†‘-Ü„ÿý,¦ÁØÑ=—øq¨ÎCVÙg9MmÄ Ø¿ÊTfÖ/|gs—´­ú¯DÐG°g©°÷ŸÅuQ›œ…nràÂ…À¯j‘mígµóô¾ÚIþ1ˆìf¦(cjߨe!½¼Ù° XR!´ZKà?ªÑkò ˜ݾÌ*¦‹ÊŠáØÇn\ý|žz6:ï>ƒÿ€ûúê×\-ƒ9H¬‡?߈OM­€3?ª'lÑdð«ü}ŸUœht 1s|"S_®|-YÝ&r›efdãU˜·‹Ål¬A TUpÐDÒ}ð±pµTµQù0ÿ<½º)ëÃÌ¿JFþñ[þ¾72Ã*íRïEFΗ“DQR­#¾Ø×Qï3E]e _1ûœýšó’JSc± •Àráí¦£;ì†ÿÍl62ó¼.Y.*w¢0{Kÿ]¦¨ÉìhüytæÖ"_¸J?øÆô/©ß “3†õnñüž™mB=“ü" õEا †û­çÒíQku’üãʤ¢öV¡!Ô¶¢óájôýáTs7ýèõ'õƒ½Ýwp¥ÖV_7˜SÑdÿ¬fEAÖ>¡«Î€M9ŠŠë*¼|Pž~XëMÔTv&Ó³á?r?¾¹×Û£o1¢â?œ ¥2ª1ÏZ)ÐÅÌ,ßB—yº¸¶Û×ùÿGpþ·Èsšã‘SƒÇõñé‰oM'šåö…ôs¦ ⃷h!;¿>ÈÕúÁvzüÆØó>ðKÐ÷£Ï|r: O‡ˆ5ŸÅìÏQEvrŸÂ3ú6sõÛñ*%ÐÊô±»&Ði·/ºÀD¢Ÿâs&¢g¡2E*—Ë“^ôÜ·#9ÅÜó¬øÃî+þÏ}H¤wЃyãÛZõlúÏí"s]cysͯžƒüÃÏø¤¿Ò¾•~û§ìÐVšèÙ‘ ›Ïò4Ï·õíúó¤Øo~‚?fÄ u~¿½JðW+™×Ézã‘6ß'eþ`,=JPÿ’4(mo ºP„Ïü©O&þøŒõ¸ vߣìUý`®ç==dYô»ýƒúüâ¸é¼ï~2È?t+'ÊߌUº›Pœô"kuàý¾MÄ„Jí¨ì~À¯yV]Ó,a‚$Ô&Ì+ð€«žFlS7hÖu'J‚ŽÄäy­;?Ì?–5àazre§Àûu¬eZ|zA2ûÞ`$o@˜6Áì³’ãï:ã¹22Wþâw®õ¶6W¯„E]L%gzÔ¯¯¨»!ÿ#ÿhož˜úÁæòyÑa~Ïrz®ô Ï/o¾ùÆŠè_âôvüÄ|ɶõ»»ª«ûàîîîîîNpw‡Á&¸» 0¸»CÐ àî>¸ÜýûwîãD7á~ïÍùÍp€¤RÝ]½e­µ÷NJ=I6üÇ Ô­ux;ßàséƒ/¢ ÝZM·ñòª-; —„Ú,g&À6÷›°ì|-«è%×r‹àu©(œëÁ¡gå÷%‰½ßqõYèß±û‘nósàFæáßœ™'ÃÄëæn6& :-Stœ%–° Ñoe>ׄ7÷eö+=ýKòZ¹A *Q%š‰Zìöàc=T=žtpü*‰q_&§~°hÓa¬Út,õÔFŽ~×›~Œsé*u“¾±WPtECƒ”+zo·˜œ®Ï/¦q ÈÙYcäAaöù[T8ˆŠê„½íl«©Ê¿Ð•^´Ïì®Sð)娗ÿš{yuÁh|§‡ù·èd½,2–ƒÀqj=T= ÔZk‚ÕšL(ýþÿ ŽõŒÞ*Vtúïv…—nƒ6m«¾WÕèßÞßý06ƒ‚Ì"èDÆPŸ{¿Žg•^ÝaªÓ ØQ´n±ÂÃKÏÄ>w°Ú-˜ÎôÝo6* Y žßS9ݽÞdú—Ä!½Gîè¯Ð³ósûп¤ üÄÖ‹íšcŸâÿŸ¨NüD•Å|T·©y&Ca÷k©½f YO¦tû4únâØ¤¼[CÌíxªÒf{X‰è¯ÊS!þ’>ÁÛ¨x‰ŠWû»ŸÒÞOîÑÅÔ!¢B§÷à üGàúÁ Ì?_'=‰—é’>ô¿ºI½È¤rT%F¿{Œ$3“IÒ[Q]¨iÿHþ‘DÍQ>Gÿâ–ÿü*šî©Ô û‘Är.Ü!Ôá±ïºÑÚÈ.2ŠÃzVY£U52S¾’i_µ³¡®ø ÎQÿqÅ{2ЗHDx[Œ#(ž‰“ò¹¸Eýù‡@U¿ïgŸ ‰=X¾ÄpkÌDðae=ø•SÞMF"èÆþ%˜bqPì%W8ûQ÷¸­š@™TÞ%Ƨ×,mKú—&S Ëü¨{Æ*¤ã96nVõ+×à=¼.Ô|úû=&-x‡62è;Òµ×¢ÒmÑKjð(9à1ó?¦ºeÝV Áo ¢¾É'Ïd1¡Íìío”€‡ùïÞK ÷'9Q‘(}ºÐ ¬· Tk3,D6,Pgî°. ü´ÉmŽ‘Üe9¶4/;ú@Ø«•æGüÜ\ò[ù’mçg­á+êbÁGÈL!ê¯rëeD[²?M £vd=±eeþMJþ–”ücH~兟˪zà…¦»Ç ¶»L¤ðGþc––ÔßDïnMþñïÕ>336¤â-øLDà ‰è‘,ãþõÁ_¬&"Á;tí4FÊ>ÜûèØ´…ìá\Ù°ÃÝèY³bïW15¿uK¢}5üu¦KÑ?q¯u½Xë.ÙG6úÛnƒc耺ªýK‚öOÌ/ã²Ò2šF(+˜w@Õ~‡ÿX†:×IJ‰©ÿ¸[}C Am¼OÙ…ÿvÀÇ{’OµWçd÷öÖi5tG[Ü’üï§ŽR%ôNùÑË\'*olM¤ºÛ—~-;í©ðuѯ´wPIÒ‡¬æYH¥ÔU9˽Þf}§ñÅ, .¼Ü,`µG3Y Üð7û õ«©ôhg W{{ýwŸ Œ‹î*Ëœ«ÛVB"“ŽàuÝÐ <µee·ÿ(¨û‰ëØŒ¸`°ãTx˜Êæ0í‘`MQìUðü¾øŽ„v3øÙL0Šwüù.3qï“Ì êRq ‰/³M¼g @uÙY]ûÐüŽ£+'ÙKbæ¼v%qÅu²-üÛ.zÇày‡§ é›Ü‹9 *öjr•ûŠÿ¹áôö&1ù¡ß ‹üããë7é_2ÿQ‰ü£§uƒVÝ(c,5ŽÂ0~±û]m¿x(ÓÂŒ*Мâˆqœ~ägñADÏõ\AÞ‡÷ôOò.%¤bQ' ¤¢þCW©'Ì,«Á64»ŠÌaZ±š¾†þ›N×ò7Ø·VœóÎÄ©àØŽÑÆÚG!¿_#ËÉ" OÐÝþ¢Ë;Y¼ŠøÈéŸxŽÿ øÿ_Äß1°Ñ‘Èx?óo¥ªÊ¯ó¯Ï÷µŒôT[K­Àsð–ÍxŠbðÔÍáÄÊ ÐÅ#¢>ˆz¶ö/Šy6Ô)*ƒŠØ÷qØšXh ›ŸÌ=óH¬ì's5§Þ +?«cɬúϘ.©¯Òß‚“¯ÅþÀ;¼”¡Ÿ®‰Ÿtæ~¯h޲¿|kíE†TÊߤ1ÿ(ÅüóŽÜ¥ä9Á$æ‚H— Çx„¦w´YXT?Ÿ€½Ë§š²Ê<2¨XÔažåÌ Á¬€ÿ+W˜‰àuj ¼ù›XЃ{V5Q]v·„L#lïjð§3ÒBù‘ØåßÉËпÝ/Ø£¸kŒ•=ð‰Ñ_M…O¹ŒÎ—ndØþNäWÈ?èÔGt_ üj,622öyªc›Ñ ÓOINv _efü`Vê/f±-à:ןkÖvõÑòJ«ó‹>aEãZ6@ UýÕ:þíÿÑÅŒk\ ²â# ºßÔ™r±˜üãµ)è÷:ÍjÞÔ¸>"Õj±]KX½.üÇm2¨$ìo/ÿyòüÊšÇEPæ,—|Ç©8ÈÛPþc¯ùX ÇþÕKký\ùƒ±]c¬ð)Ñm/ú\±™ÓâMŽ\žèï3ÓD"¸ “}Åd#ÏO,Ú¶„úŽª*¹WZïwxÊ(Ntr EißB³|AJgñÿÑôâ0@é#së5©É*FÝxcPñ|f‹Pµ¬ÿZ±¯~X¿-6‚Ñ_åyW„çmJ4šË,'ß`eO`COÈßèŸX ÿ–Œ2¶`š!õ&Õ¤Àƒ>ã™J`¯aÖÿˆª2±<” Ͳ‡ûI½º€ß=תSÙ4–þ,¨ÄnvãôO¬‚gÅ[#Ð^SÏ𽱸)Ì[F÷°FàO“ŒšÔ÷µÇV:Ý!oÉÁ¬˜›3»š$l>þc3õçÅÁ.“7EF¿{.ð>_׿ë P4­F —ŸÕÞÉ«x6˜šNt¼+ÃüÚVØfG¹{„u‘ƒŒ5ÇÓ‹6§nE+鿉ææ;¢µ qNçÉüxhøß(z»ˆ ô/YÄ>KS 2”½yòw§Ðï6ôælný¯FJo32v3ô§`•ø®Ž°ÁÕÁ¯¾áÏ’ ß]ŒEN‡çG,;»Øæªùǧ€¥ü?Yd3³`à“ÂW8Jçíä*k°þ‡˜/[¾›ì[Ìÿ¸¨Ê¦¯ÆòÅeÕÕ`%Û¹¯5Ð,ï¿›™þ‰Y‰'ÒcqÇ‚‰"órº¿%Ãð¢ÛßêÔ®Ø×ÉÊÑ·?õ$Åaî}`ã=U8¦¤ÁøóÝð£ðû6QöNÊMÓé¿»ÔêŽÿ‚^*Žëª¤)0™#ø,.×~7U_I:Ò9âþi.y3çx+Jªj°3TŠÀl7°0é/ 9õ.cõ]Ö ºÎçJªÌ3ð=Ó™ÿQ“úÁ€y›µ¾ú<3þÃd?…Z€Âé¥zÃ,¥ðÍèwØ’ITI`À'Ù#¬¾ÔWŒAtƒXa U ½¸—Ÿ8©ãÜ›;‡þ꺰¿8óé¬ÂdÑ©YG¿Ýüd›™‹›Ä5Ͼa‡w}¡ï®b·+¨Úˆ~ÕÇÑ[óÎD—Eõ/© ~}WJ°ÒIæ<ð«jÔ¶pµ¢ßUúÔg Úe·'ßjŒšceE ¼Ò²VëÜ#Ö9Hÿ«tÓþ¾Á-ÔL•cˆ€F’Íž–1ìf®[ä,½ðè5Á Ú]O¨ ïêGÿv§*'©]‘…*ÞË„°bT!¹îû‚ÿà¯ÉõîüÇøó”AÎEØ·O¿¥'05DqLwº«mÔjYÆIê?k¿Ö]ø–vE0—‘úðXÓëâ õƒ‡¨»x+? Žzï¡naÙãpñ,gHêyÐ9œÅM}}jÑë¡ßÍk¶£~÷7ü‡-O’_;5a5ȺªÉø¦\¨º'cõr‚G¶¤R±!üÇü0lÍE=½ÄÒèØ„ A‘‰w ÂY¿‚Iï†ÍФ²Ññù«Lm¶ÿUýqùZC3e°Öòp IAŠ‘ÍdoÅÈìÏ›%X¿¹Ä 8ì{¡Vñ@¥±³ìf]†Ç‚zU„žŽR|a%xÓ<@qxþQdéeýg”¾ZOÉ.v ff?`#ªqåwÍæèv«ÔWŸýõ\g`‚Nóßt¢~/ž¶ áLÑ{ŠÖT Ä=LG³ïU…ë=O•ï*NëŠW ûAå{aç'ØEAù\6§Ý÷m¹V–þ»[Ìø¨¯Zªd\Ù´už¼™Ó¹áχÀ]¢úz=?Á™82¯ê‚¯ŠÀ|‚ k¾3z€HTÃ[®ÅF¦ç¾÷å;ªPÞÊÊEÍÁtz¼Ærxiøéª-øCU¸ùnx¨eÊölK°õŠßd |PaƒÕðSÈ ×3áü3Î «w„ùµûÀHîÂKk8ìy^ô\Wàûçt2“炬¸×(BLvn6„î) —Ûß’•ùƒºk¡õÚþÇcv— ßöög©ÚÀ©¿.ªY¯üy!üÇeT­”ö~úÓfÖ ú9¾Ç¾g³[OA\ÔoD´§“Ë8ókO²{_ú_5VÌvßÀ#Ú }!½¢º¡ ï‚ï]È)yÇüÞô³-Ëü1ô 9À\Ó̯íGýàt¢ý{hšp#X3Á£¨Çú—ìfþ „? >\ËjÄûQCº¶…‘¹Ç ™_{ÊNéºk¥?Ha¦J±–k ˜í•¨l~™Ý8ý¯L*/2sª¨à#í¬F®jÜ5:侦ÿ½7;‹‡n÷¥õ'½ªÎÛ)¬c(§&Ò¿ä#‘æ.™Tµ ù~ÁÞúZ±ÿ±‚ü² Áhv¼wvò·…`kÓ¹Ún®óè¯3Y7YÜ^ÔayÁ+‚_E!bML•LnUõ¿2ÿ<²Þ;Ð$Ø×Zùÿ¸ÿUJú'f4&3?*=ÝÕù»˜ÿÑÜX`x£¿úª]ú~»Âôë#í8ó?*“›Åø nq`@â“)DÁŠ îbýòà ñ†v!èÅ%„nrªŒ¥—6,lD?9W&âï…ØåõǵÛë'áaÞa3ßÒn:äÿ“yîyä XÚ«ØÐ§rõç5¥O˜êÏc‹‹Â r"YÌfé虜ž…ÏÙiЦ¨*;Œ¼…÷ë%»ygÜ›¦%ÓK‘Ÿ¯¦:6qàð«bÌ#¬LæN×t¬ôIrÝwx€õT„d7ï1BYñ‘1”E)õj›ññ”åðÓArRÃo.!._Í^K“ÕLâÚÓ¡ßÝÒÆø3§þƒ9¿è¥Šãe€_ݰEàÏã2]€Öå ^ãïÄv®þ8+of’c,q7„«ê£D[²µjQÆ^ôp¸Ö<•j€yEô1ài‡b÷à;¦aC“£¼·xúkÝonÀ²^ZAæŸûPÙ²È8®z6Q›ÿ*€aTåJ£Â@o:Ì%5? ϶Dj5~p ø¦? XÊÿÓð+ºõë]ç; cYû‘]ÆnÕbþà5k!,hlô»Ma„,_sˆØþ:6Ѓ9Ó‚=—’ÌÊ4ýýÙ¾âÑeÓ›ùºÅ &ØÞ5ÔS/·£[OU1øù!xÀòÊB“t Ï™ž*˜ÿ8iäÄ«#ÿȧ_—3‘UØbϰϳìtÌ?ÿF/òsÔƒ4¶^5eƒÉ gÇ¿î%þ8!œÛÿxSgWGÐÒ5äþí1?«•x£úÖô¿_A‡èÜ®³”þWígd\óÉ‹áM/óobú_í—žîÅhôUÄemÕ#8»Ê ŸOÜ O®ì†(šÆÑ7÷°•™þ%üùáLÚ¸LW°ßñ–Q­ÜËhê„æ^o‡~ ýUQÿüÕ¬üæMY f£›ýžÈ~l~"ûå àÏÏ1­¤Œ}Ž®¼Éà¤Gñ<~oM(“ËnÿQüC’‡ç¿ôR~²€ÙÛJîÊ ^ÕÖüõƒ{è_’ ý‹5Ò*Ž:, >N·|‰Ÿ˜Îü¨ÈøôvîSx˜þW³èV°‡3’Ÿm_­BhòX“PEÌ£Š¤¢=Âu ü*†«>ýÛM× ËäIçµÎÓñxWR½eVÅåÏxG÷ø?ø‚ü#€ñx©UÖC«HþÙ&’ã?ÞéyEYñ·¿ÿX®•1ª“‘ì3,ãå/ÖîÕN£ß­EŠ/ûY|1Ó:"ˆ¹¤®Bð~mNÉ$a)êDeÔ© ÌíW-+ù‡hxØæâf- CûÙ5:ÞÑ©“¤[Ãßœ†¶X%EÇ„Ehùr£¤›N,ÝŠ2ž¨¹Ü&þ<:óx¿ Ør©y ëÈ?nsÕŸYý¸QrÞŸl(þYO—A{F„´Ë'ZòóÄÙÉx?š™ˆÃƒÿï#öò¤Jo?VЙ_;|¬€ù%Týî}ãwPÛqà4Ù=T°Õ%¨!Š’Ÿ±r[VŒÎë°—dÙŸÖÜÓNèõÍJÜ­rDa£MÃÜ/›r¿n˜mÀš˜óáÏ¿ñ]D{Ô|Æ›±“ Âõ2ª^ç\yn½õQÈ æÂ’]åû*€¬ÅÁîDÁº% ŽbmÅdQ½Á¯ƒ7E†›Ôñ%!ÕŸoÔʈžrxÓd,†Ó¿d(W3+üyAll&å Ky†ö *„äjéc?·­ðg]±¦šöØè%GÃÇä!ƾŠo¸O.¹•ÜÏ=S¦uxa£¢XÏ`§kS1Ý„Ìé5š.N{Tøóà•>Å ÁkÆ_JÇs"Ï«¦3ÿ#׸Özí/GÔÓúDÿ‘o¨ÎŠR1µÓA2†609qè8ø¼7Š‚Î7#pm—ñÍ$ÖjlóðªÑÔ奠[†A¥óyú'¶³ž ÉÍÆZßPLÍ¢ž®ýÛ«Y¯²ŒÁÜÄ#5Æ3l7Ÿ©ÕtojIÿ’²Dô+Àuž3Çvõƒ¿1p!HSìý=XïW0ìu™_ÛȽ½MZð«Ï&ÿ”Sm'ÿgEUÓíšXäyÌ;¿G½Ë)ø6ÖoÖz‚}\EOò²HøXx{Ã\â^ï þÈHÂ38 *šÃjˆ½í rÖÿQTí9x˜r #{‹èzIýÇ:¯Ÿ¦£q|ð¾nˆB£AŠ$üÇ&œ7+ñâ uWv3‡Rîf÷w;5Êbx{³Ï‡3Ív$sf7Ò×Ò‹ÌÁÇÜçLÎülQàú%ÔŸä Ì=,#Ó¿ä©‹Ê”ý|_kTÁ#]»\.WL&ëÆdŠã.+¾×ÒÈ?æ¡­áÉ‘d¥þüg}KÝ7âÿàCl½q I°W´rЬ_ûq‘˜«ôNïƒþ*¯¸®—çtyS?ØÀ˜Hý‡Å|„Ÿ±ª!ÿ?m ]¡*ñ'ʾ/˜_{K† ÉÄtˆ`mB^!èŸñе¬ÇNuX*¹‰þ»yдt£_òxêLêQ?˜=Èôû~׆.N±dlñkìKp¦j<§"ªDô‡ˆì‹»E3ÏR?XOö(]]ð«Vø_Ýëäa‡@²–ã÷ÆË(ÂáÉ¥ëõ@Pº‚j%oо¯V.PÅ( ;'¬„µëO]¸ð¹æ<ðm0 æ^wä°AoøàW…Áºâ³Js¼fA¬RIlgPŒâø‚µØ¨˜üýl»ü»þgýB,åÿé–á)ÿÀŸ–ÇBÞ†_¸Hî°EÜ!:^Õ¤Þo‘oë6øUiØå¯EV1…þ»ëÀ6:þÐÿ*ú]ç9–¡ƒüS*ÕñôkÛàM<¹ÚAÌJ€GoLß«ûp?%˜RÈŽ‚ÅHÆ3ÌÂ;—ùƒ‡¿/øþªŠ»é‡ÿHä\„}+.ìjbØŽr¢†xæ_?8MKkTàO. ×OQÂmõçÕ°ÅqQµÑ·ÄH`Ö_Šò™¸Îl‡O¿ÈÓt‰Uspâü•f%yŸü#·ñœ“¹–ü#"QiÓ0ót’Ȇ]ª5§$^Ç3TrÑù jœî„kdiy&Lõƒ1à?b€X…'~ßÊì4²¡—`BgAd²Â\æaFdx·%aèß~Bë‚â`.yZDÞãó`´uÁ{+M‹|Ãþj ÏZrè›Z¶yÙ³?¿ñ€ó­ÁÄ„‘ÏI: Æ÷-~.öÞ™_{ ö¯‚Yùµ7B~¤ÚSm)ùGuµø5;0­;ÝdNFWyÍ¡ø©6¢[¾„78Jt<>hý¯n‡°br½ŽhJ~–S-ÆKîçz<¸oÉðçá©0¹,ÒR?¸ëŸ_õ#bX€oODgAÍçM÷›°ìH-—&ç‚ú-B[K½ g©"+5È`z2£uI‡šs„&¶Û±…ìc'YÅ*ñE׃½5/ÑaJ‹Ï95¿ ƒ´ŽÚº“XŰös‰qÓRíG=ÕµÉhJ ·Nµ±é¸"…øÆSrPOö°tYÍ"ÿXEþßÚ®fÒ'é4ñø9ª«üø”)äK9•‹õwÖÔ!:JMÿ¸€«Õ´=FNîÊ)®7 šªŽ E©-/<ÈLÅÒOª€ë93@Ö‚_Õ¥þã¦*ÇpÔ±^XÞ3ø±{Áú'—‰ðäNÞX«;Ã|«6?÷cwYA„–Ðÿê6‘óNò‘aèwçÐeþc Í1º@¶PÏñ“ýû·;õƒÉLsªõ éŸ8Á~K-cOúƒ4²¯£‹½ÎÖ–yª=ŒþW(»¸7ÑQdäÍŒhÎq_îD}‡EU"Ú™d¶°ªOÕÄ/t¡þ<¿½6¿=žcª}„zIeûXi\芅â™ ¡³7QX´óÉÜþ£†~T|’‰É@™«ÕK4%™XΣ>þã$6ÿ"Q¼Ú70¨ô•y£¶¡˜Z@¶÷ŒŠ„Cò §> É6ú—Ì‘}ðnx3É÷V°C‡ÿXd­F#ÐÒ^ຄÿ0]¥l>ì$üyüRr"£(äÀÑðÙ™T–i§î›ò¿ô!®Þ!PÿÄgZþÿ¸{$¦“&¥~0—H$èNv»üª¢1•ž&Âx ý ùB®“ÜF«_̤…y ýU\&|d~Ôcêµm–Ð"ç ëö¿òp¬:±mW³¸\ˆ~7š–jÄëÀ¯jš5EØ2š^úA=ªL~õ†Ìh€ùüc,p<¹Žõ"n$°’]2‹Ü ÂÒ³å±E¤•‹²ÿñk\„ìãoâò6`&±ð7d2â–r|ô ÿõ»OšS/¸uº?yÐÌËü,ë‚Ô§ËÚ´¶…°Éƃ‡Ü3b‡VÓ´#F<ÙX|ø},t$ö>·q"ÈŠ;Œœ® Ü¿tT“4£b">ó?æ½·$žŸngt½`~­—µ~î ÁÁ*á3÷©gÔ§ÌVDZ¯‚éwÓËèd(—ðü ¸ç+Í»àWX-¬uôï}IF úï¾´Z§”'Ý#á)G£S8ÁµœÁæ7¤þ< ßÈ ­‹Þ›çؘ¬¨ ™ß¢¾è¯ÆÁÔ&ßXMýÇUô«gÈk£çZŽâé¹Ñx¼e\«'üG8uD.rŸ™q诤ªÂ¹_jV·Ú¨vÁWwÄxØÞøÞƶíší_ÿñÙÚeIWMT½7¬Øä×C@,*_êÅòÉ4nÿá¡_f6j2P‚ æl¾¶þ|2–>)ÌŒ7½à‡ÚÑ@³Þ[ƒÑ‰­²ó031®µŒá)ïÏEùŒ(3€??§ÏdÎðt2ø¿$ói]ïÉ?fS?8¥õƒ×]©ÈKÓ?ñüy9*ËÚÈ‚-òd¼Ù¹U¹Ï}Åÿ܇˜ô/ °›~ðçÝÜm á?R0«¶ Oëu9­;µRFIê/ôO¿8ÿü)úݧ(œŠâÂæ6úïjÆAý­ØGWÂ3â½ñäç$ޝÉâg£$?ƒÅ*%WÈäz6ô»u¨ên 2PÆ,-¦\Ddd©o"Žn‡ï¬†¤ˆ7sª²‰¯b*•o˜æGEåzbÁ¼!CpfÚi Ç5x³×w¦þ#³*Œ~7&箯ìÄ„ô|^hð3Ñïš`Ö[aÊRR…“îI–û7v9ïAø¬øÖíš·¿™6qŽƒÌ-…‰÷$ʪh"v5Ùø2,ü¼fØš HÙeõŸÎŒÉ„˜2øž¹øŠô0QY6„#¸l¶Çä#ÿh o½ž+ß Þvlh9ùÇú·G‡œ+¯¢ƒÌhXÞåd3{ÙG!~~ Ó`_CÀ”jŠÏ(S‡¨#ש֫ÿQ•, ’w©ãä ½É?æ[/½¡ˆQš¡SØ€¥¼ŒÿºJ§”ôjßˤØ;T´—ÁL¦ U× ¢ö’ôb¼ C=®¶Ž™À¸dÅÝF6NÄ5ùø´|ä¤.ìÕØk(•ˆáÏã¡¿º _SɺÅîÒ¢f{€÷¢èf>̓¬—D7+ʾKf _ ÍKjÚÕ¾øzð3™ þdh‰uH¶âÀL‚[hèígÎU-uPvr?”ãÚdêRøókä Yéß^ ÿqß Tþcýw’œ±Ú]­¡ø»Æö Öúì(¦5ÅÖ+ð«€ùµ;ôËF4Utm‚YÄê†Wo‰kŠ,G»Æé!¹Ã)ÛåzÂd¯ØøÉ(j'ôÆ¿õæ}Œ"˯Jпý™ŒÍ©f.RIˆLZÕ]e𒃨üØjí¤~°‡ˆX¨OÉv—€÷4ÖNð+?ÖK2¶j‚†çûcþùAÎåf¢Ñè¯LÔ ñ9£áÉFÑ«›½ŠúÁŒt0Éc'³ º¶2ø‹úhj„8" §"!õƒ{¾/øþ[o±º§Ô ë×¶A¿ÇüóFNQ\œÕ«pº¶Ó¿$éŒOú;íà/-÷J; ÆX ›ð^æÆ4¢’˜Ôm\GÅ3ãñ/òçã…á.¤âüHYô»iõbhZÚ™ÕéÍüQR{Fþcþ@ x‚¥jCdwÑ©†R?˜N^Æ ìAA‘Ä©?_¦þ»©Ä1*]šs¶ñÝ^DãÈQr¬>Èf^üGtîEOÙ+È;Ò §{Ò¯}1ˆú^"óâÄùuXw4±ë[ÞïbðˆyA†æñwŸœ¡¬xÁhA&Ó›7ï¾I½\<žI0žÑàϰö[±÷á “ÑT4ãËRúÏâ ëÚ>½0ùÏ"êòÒ‘­?”'‰ºªÙtB·[Ôœ„ÕP»œZˆGØ Ç°’g–L<áRKëmD'rÄàSqˆÝÖg †wÿ±XÔ¦þc=LrÕÛ=gä{ìÀ³ùq¹Z1ú'úš©©졊ái'ÒYe02¸~&bZzƒzxÁhx¨ùø%¨¯ö²òêŸ[òƒ1HNÃV¤Æ:o¿ºÌ³\6é jÂüKðw¨ÿx[]ƒçNÿörXû^Dã‹”ƒm, ö\òÓ?1þ#U™l¾ÛJ% ÿÕµ Ñ1æn·ãPïWµÔDŠ*æ+XØüXRûõög©ÿH~õÞÀœ]ÔRÓa¾}A‚¯]n“ .¶‡û^Ò'Q?Ø%Ÿ£ |&ßZÞ¨usâÍ׃%:UíKÉ?RR“^/ 0}°ÃÌM¾D>å̧©(}Ç?öÉ™_0·õžæˆ ùµM$¥bBªÍ³3?ê–ÞˆÓå«Õ5 ‚_yS~C;ôKË}Ö‰'2|Rxª=b§ñM¿ ~uZ>¡ûº)þOÓS| nž V¹‹¨°*øUb½ ñ„̸‰,/£Ñ7 •ˆäøÙv;è–aKA®þŽü ;¼€'úÖŒfyí Ÿ€Èu/爕?[$Пgfž» Ï#P ­ÆÆ¼'¦-m>%?Gv“ä$/Šhäa½dÃPwøE뿨½2<Ù‘1s:2+ü{ œLyìýE37üuZàùp6OBõÈhB×ôåßñ•aVv—üz‘ácÐø Ç+ÝÅ'Õ4cËJúÏx¼;ÚU½^ì$«åäÝ{+¯Êš0?/À"¨j¼‹-`hæã¹ÇСÜ‘å2¶xè~}ÿXÿáô—Œo”Á< òWžü# nð÷-¢ªˆN÷¥X5§ûãŸæ(ÏÓtªiŒ¶áû¿n¥þ|<þ#±½_Qu‹ïhÍs‚ÿ4¿J…_ËA÷ܵØ< ³ºíÍzìÑÖ/Ìúï^3úÈ¡hßœïÙÉ÷_Eµ…'rŒþ¶…¬ëÖ& Å@-U™éâÀ¯Äƾ³ƒ8Ío›&g{Ò…Ð fá<”# °é¿K‡°÷4Vdk'üùYkþc)üÇ#ð&Ãêª á4Ô²¾xÐø˜ÁôW‡üë?΢Ó(FNÑ5H\ò…Yèw=˜>ÊÎì²ÀÛwçxÐ÷èO^2¯»TSŽÁžÖdþ`í ;ôáñÔá®è&Šÿ8CÿÝ™ÔvŸƒ¿†r*»-ÑÛž´|Ô|ë«5Î¥ ùÂIн£Ìÿ¨­öš?è­Ôg˜_Ìßñjm¹×÷äºsݲ¦øûaÌN©gŸ%ÿ8KþÑ…Ìk!×+do£ñ‘éÝhäv úÍúCÃ$#;NŒ‘Øúœ  †+Ô” º€B*–k2ìQL×szGreF| ýU 2©ÓþùVx™YsãWUôÃB‡MKÁzh½ñì.®ÄTÙ·¤êü*µ'@²Ú™>ÅzÁ¤?5ÅÎþ”!5³Ò¨Ræ÷)ܧ¯[äÞ¥1œÑ¢f{kšíLÊZ î5œ\ÆËuŒþW1\ÝÈJ<èßþ]Bú'Ž¡ÿî#òêbœÏÅÖ[Ò_=ùÿÐïFdþ¹Ëð4J0yúª.M[¥•†ÿð4Vt¿_ä?¶jKÅ%™“œÝ©ÙGýà]ýOúÜ‘çÅ5ê?žþbžTQ\‡Kþ“üc+v&#‘oVý ýۛЛ93jÞ à!ŽS9át<ì~¼bl憃ÿ(@þ±;>™+^ בÂÚMþq…Z½¬ôß}†š©3mGc˳£ÓÚÛ?@•à>ª`ù‡/üy{¸× s‡PZÜ2¿¨%LýþCa>Óò/tßc]ê)Ä×­ÁÚÏ‚ÿð¦îé’hääÑ-©n‚¹VUm”yV-Âúµ„Ig]gUNzAi®Ãô¿šÀüEôªêKþqo¼1J@ó?|´ÆúlücOvU†ç»L6/ª“èb#ÙE­.èu;Û׬hÌow öþó}þÜ‹ •ÞÔçÄS±Ì€þ»‹õ#诅à|ú裂Ši¿Ê Ë­»²£bØÏüÚL0ÜEÅWôÁN”ŸWŒ'ÒçL3ÑeIYÄí?êP/‰x.'Ï„T¶7wX¹¨ÍXŒr+)5$Û™d8ÒŽ¾k¡Oð=›®\øöÓ(áòŽì“ŽÂ2 ‹çNú—,—cðFý¹³3åú_­eBí<&¨üŽ–º ó?nƒ&FE¿ë²²¸èñhgÂë¹x¿cÐg5ÙU*â,Øaü?ümt”R‰Ü'ážV2òk?66uu±éÖ^Nä>z Ö\¯54²K˜ÿqOÿ[»þKËÝÔvã+ŠË¿’ù™–yÐol¢îû´| îˆh ¿6ÿ¼¬¸ˆ¯ËZ‹yvå*™] ~U ÿ[FÄÎ6 Ü÷áßmµ‰~I7ðwxWbcΙCÔb‘’ò,6b;ª¢+²™N9_„E‘ýѸ.Â!ÆUb’70'›˜ü¸N3ªA_xQ †üã‚Ö˜~%K™7•Äá~-Ÿ)9•‹°Ÿ¥x¯Îa¿€«tѪ`ú…Úñ»^MÅÛ¼†øŠ¦(.ß]•¨|Qóg,¨7û½a¦÷°K›1¨?ßõ“Ûgè›u«õõ+Âw¾”~0ûµ@ì:a“«šËÁ ¢‚Ì\!÷˜G´¾¥Ã8øóÊ"8:äü€¼z'Qn?¶´ÙÑF¼GiîÕK|Àys»@±Í´ /Uþ£‡žƒÎ/e+¸©78[K ~µÚù|Gr2µñ C°× èbQÏ» ¯ùë}™=FBÿ4¼a2þsÿ¿êZ°³sÅè+ç*SP1¸•èj8ðí®Ô£5Ã?JþqýÕmºñ¶³«†øŠä6È棿š.7[/Ÿ­MK3VÜ›LeƒuôFÏmíº Ò‘×Þ‹ú¤zé÷Æžä#"ßšýTiîc\2öÀW}ÐÈDTp‹–Ø’'µè^k3z«Áج„®ûTeO±>°^?ô»¥ðG+ÁÍæ$ƒ.‚æÂYÐûeRÎ̳ø†íæ!µ“l¦'|Gðœ)DúŽ~wW¼ˆê… CíÈ6OÃx/QѬÊ诺·7Kë¤OnÎShï²̓dÆb{üG}:J­¦;á 8äÓÔ C;°“~]'”¸£½=A¯\ä,cÝëÍÖ1À$ŸsV³Z¹@׫+ÖEªó1?êýßc»FSýÅu‘ºóì®zv †,x}OðÆNjüGM™Åí?jÑ¿]½*Áó®ºËýæl«–« w­š]ÿq%Ã$øó~èż¬÷–/ì~E»ˆõ7õyPôÓ¼›¿ꢳ^_ >”ó>ôû’Ìm7põÀCLµ¦£ÔÆTî®Ó®Ûô”i€Š«´ë õÅúª²Ú™‰bg¦¦ž7‡ê&O¸¯øŸûBïÈc\§û:¿6º¤èÌÿ(MýÇj¦ª;ýwkùñ(+a+žþbÿ’;Úañæ#õ˜éÍýâ†‘ÅØ­'ËÛôoÿ ž7ÈûÚ«-öaK‡Ê¢ "ÙÍÒò¨Œ gAY ÝTvæ2+‹°uné¬ïÀX Úx›ÀŠVèÊáϯ§#uT]sPü­ ÿMœðþc+þãj`-}k&^ÒY‚¹‰šËΡ^ók­%uÝËatL˜cæ!ÁI|“]ñk#°±X5g¸(¹ÂT¶ç¡òç÷Œîpøð7È 4¬jZâüò`£Ð|µ€ûéŽ^fp4)2þãgu° Ñ_ç{×Öef5z™Éæ D/;à'-Í5ä4‘Ꭹ¯"YD„<†ZºXâE7»ÞKÔ刦Fód޽ű׉¸ä æ!1Kdez‘œÊ r‰e\qfó<˃‰†?.7_«ÁüÚŬ6GÕD³ðüª¬’tíh zô£hýV**4¬ý ò?‰?'3¶¤½ôë`KÞ0†q×™§… _'÷Ãcû¢ð£ÿn-0—í '©±ËÍ©ô?OH}ÛtP¾Xßðsƒ=é:äÑðéñkÉhæ£Û8@¯ö<0Üó¬-ôÉHG5Äcª°1Ó¶?+•ÔðœUì¾§+b0ýî#-¬Èê?…Ymî zn°¶aïþ»‰éöj¸Xé—û›õ'5˜Ó%¢†áäRuMoÑ,È+È(diWðHa6¶™ñkð×èÇu‡õŠRñ—ýµ)á?6á¥;à?¼¹»Sð¨⾃›Ð_M5ý]ÕÃoÍ•ÍÌGê sÊ]ôOœÞ+]È>J_øaÌ÷)z‚zÍé v_µÑŒ©>É€úÁúA#"õø‰JJZ•8%“añ}éLXÜmúúfp­°5£DHêênW´ÞZIPfôCýÐS[(!=Üþ£õçŸd|Öé‰î¹ìd΀?oÇ4ÝtÔŠM.³)»z£$í,.iµ†ù>€åhüIYyÐ÷âûŸ×}ÅVéLûלּÃüÕvrò·5Va°°röüÇCÛÃÕ,—먕ï’ÀŽJNÕ¼Kì›ß]Fnû¾à?økøóqL«÷÷o¤_Ô ´ºUDg±’®Œš¶˜ùQžôT|¤üEþã„æ#4âð¤ AŨ{È ‘Cè¯ÞRÕýV¼¡£Vhÿ‚ÞÄÆâvx,€n†ï,v.7óÏ››EBúhd1«Š°e4]u_ý½xŠ÷¸‰Â³yÂì…¢¨Š”œ§ã¨eÏËztŠ/$·ˆ€¦ » ü»8â²Ppµ–šIþ±˜¸ëvç=èÕY”QˆérÃèf$*V;yg¯òýó~­üÇdicGƒÙçgg‘á&‘4ƒe¸ |–¹?‘snó¥‘;”¯-±1øî‹(œ>È!dí•ÍŒtÃù7^`/<ÿ)´IW±õ™É?rüt~mb}«Þÿ± ýnFb·WøíÆøœ{x`M5¥®7vÚþü(º«SØüx½îÌ Â.óÐ?±úùfvm·oÑóëýK>áúŸ§àÄ·ròuYY¦wûvØ{ž|a¡†±ÏÊ–k¦]Fž™µÔ»ÌcH3û 5”í¤® pütÃ<¹} ¥*n6rŸÂú&1QŽ…ÃÀ›±AF²ÇýåÄÓΕ\Šï­IÿÄ×vyz4RÝã:ÄìÞ,ô;K­6R+|‰‡AùJÊî+þç>$ þ#Ÿûd=¿ú5^:`§qÐ_ņë(&ŠˆºƒŽ†?¯DF²láÕ/ί½Œÿx%3“|aîÚbq‹øÉW§~Q|AÅHèÞuÀ~þ©-øUz"Ïb %©ÿQÕx šQLö‚U-b&³ÿ8ÁüÁ»0…O°0-ðG͉²Ð¹|+vj'ÊYÙÆéÚÆù–x%,PœXôÍ 6·°žUÁ®®ÂK;U!×É! ;ý& Êö¡^³Ð™À'ÈHXÔb`AiáÎMìÇhs oö}°¡TÄ@ ±{Þøæã¡òÛŒŠøÉDâÇÈXœü#ùG&¬ˆÓ£ï*Qø&¢ØëØì£DÇ1MMfÐïÿä1DÅäå+}X!/WûAÞDV‰=9Ž<É?ZP›·›;ºŸû°¯èm3—‰CÌ?è#D üÇö‹Ø~!¬Q)žñ{3¿šgz‰¶"ª5{—UµcÙfSâ´ÃøŠ”/Ý >F®û€^Wòïp|ú³:w=쿦¿9üù|xU‰…œÍ=†_-‚rï™þ%`)ÿO¦˜/rÒèt½J¡îq}ûÈ?þbþyNÔRsìôo?C·©œÖjr¤Œ¨Eg‚aÍ…¡'˜ìIaÖYRð´Âxîd4K`vS?˜ÌBFEÅb¬²7SøÞ¢ßMIGJl²S-?«^|3Ù{à-5rðTÃ8=åóq&"áL±&£ëètßp=†_XM.S‘ ÷°â±Po#jÍóË îDˆÿxÈôä(׉êªêª§ù‘ú>–‡u„úÁWöøó7Ö>æú}RCéd5ËÜ]‚3[kœ2¬Jj¥å^lúÝ…ø^ܵv<¿ 2…Óz ~%ìdCÎüÁcØÐ} D­©n€å¾…ï@7L~ך§MM 4ÿãúÝ(ÜÛ§œúüVÞ¦d™Mì¿í<önºqõ°_‘/œ¥‹û;Ø›IP³a‚rªpìr/þc3ýV[ÈxnÿQƒùµÈ?ÒrBçÒ·–éÉÄòºàLeí¸öM|ÅVûOûém{uï©ýXLåÆjbº“ø“қܯ”Û€OY+=Éã»r‚ýd»6Õ›Eè4émÕ%‹éh÷§¢éÊîª3ó–žÁ©Ña);%§à«<ÅY›ó™EþZ…ûvÿ}ˆ ”ÜÓŠª&üµ…-ýŒž’þ‰uE ñ—ÿÝíZk£e'½×ßÿ¢~÷:ýw?É|ظp`C›¨|¬O¤ÉØ C¦§{hÌoÐÝçǰš#ñH‰ŸË1°(Ý‚Á¦6µém[Ål#Ry#‚~Àï3?ê„ØE¶ŽúóŠè([ƒfd¿:Jþ¹•Sµënã^aêŸUœßdaÎÖ”W+°¦Ç±;×Á5÷Ò¿$'##Š¿Ë2 ¯B¡îð²–›ªŠeòƒ|N•ízô€UÀÓÊc톡Ýq© úçÈ¡×ãéèËhhï®0ð§ÞF9®p (Óiøÿk”ýåL¬ê]þlþã ±ù³õL(%º³»äãa³=øÙéŒkAVô5²“ÍìEëœ ^G¦É º?õUm­^tB‰äºN|>׺C¾Ôovÿ:õK¨{‚0R³#~²^Y <ó2¬`3²ÈæµÜf GW‹7þ»~Ö9¦ÍžTé¿» ¯'O{Þy:šÛÊêœì~¾ôß]ÌÛ5„|¦&ØÚ0™‹þWïвƦn®§5 ýÕ«(üÇL›~ºè±V¡ ¢œìî|w2PнüÑZæÄGö棬•Ÿ÷#ÙJªÚ+ñK­az:Ró§¨ÿØGí^vû3•ßÉ2ÂtáÙ¥¡Gw@þQY¿#l¢º|d ñ|‰ÌQVoü‡/µ Ù›ümµçu¨W™HÿÝýô²jddž?Ov\˜ AåïîSxLŸ!vËAdÜuÁL}äqË“jój°ÌC+fÏ þ\º"ºRÛ¯T ×°»̰ÍŠImüGežNuµ§û&ÿ/}x£ ä1ÎkÍuãýµ‘œúóÂT Ù™X™ÓµšúÁ&tàÚôM»ðKËùiëÑê‚mÊ€5/›‰Mtà!oËÑb…Xk¼ÑýÒzÍÄkìÁ&â݇ØÔs²ŒyFëa¤&ƒˆ%sÉVÔÛ…´â8}®ã6ž.þ0#È?¢\ÝN$ìÇ™*J2KF§VX®¹'.’ÅTK‰¹—À˜çQ½Àð?Áå66SÒª Œ[|,nL3 Ï϶zBë Î±ŠŒÊµ_ÏwUƒ(…_ûÃlDd¶ìiöv0žÊÃ,+Ò±?®:ÀèwòÑóIw ¼ªˆ¹Œ{5Jœ¦Ä®D@ø»=dæ—¨ÌÊd®"?ů\Ô¾‘éÔBb°Ìx°T¦tƶí4û€ŸTcžÞïà8»±Œoðòkàð´æÊ’!âW õn¢ ö*‹šs„ü¨¾²8~ø)ÙH}êLSÙwÄúï\–œŸ‘g3Åýæ\ï ÍSä6üõp¹(ø3oP¿ifT⿈=AžÚÀ}nµf`_ÊX[`+*ÁŸ7qÉDç­N¨YÇ©y2-ÑMÀÞœO©ØôéîJnµ¶å¿`ÝôVfkÚm9s'ÆÀß^D+\ÂJh-Bõ]‹z Ö\…ùî)ðŠËT¬ÇJ§¤"±.Þ_1ÃÐǪ†šv¢½ž‰|’´ »©eu„G* úÓ”ëŸCÅYAû_Á%‹<‚¢u$§BÁD{‘+øÒO%ŠË—ÎPq°Ð¾ø.tÎݳð;Y×4gŸ™Åá©’˜ëÝÛ;ÇüA/3"^©ñü®ldf¶6Rÿ•ús_j²‡Ã3Ô±¡ëšÊOiét*DÑÚT,>ÝŒÿžÖìé^o¾¾Áø‚v:©"Z±Îƒˆ¾w@ýG~{;\”åêFmÅsr®Œ¨Ä.Àª¼¿*Žÿh…Zbzb²s Žd}˜—?P‹ªYÝ`hk£Úê˪®ìð+úÝÖ|f•\c^à~tÕñ])¬è¯£6ÿG“š‰ïÜCÿ«¾({V¢±X¾ÂjàŠåêÄóxÄ]ÜNH=æ×ž·{¸ú ÊÊãJoS–y/~XÆÍr¸ü-3ºJ÷_éŸxEË®t§{~7qsöýCÿ5='4·±ÌH' 9ÓÉ6P?˜×hjŒ2tâÜó¡/è+kÄ™7ÐÑ méÄH#–aÈ5²è‡ëº÷—öÙAHtœ'À©öÅ­—qͨÃúÛ"‚ì òé‡@¶èã`ê\"Ë;D w8 Óð"ÍUo2†¬’^M Êcñyõaê£É:òn ïûÙÇ¢·Ø†§|JÄ» ßæ]îA\ø Qïôœ¸þ¦L‰×Kf–uçÐ?[í„ÖÌo™|!ïû2rŒbæ=®z*™ƒQôV:tlmƒmÎÏäîØ¡ÜÅñF?,³3'é$k|–Ë`M:b³»J¤¥ìû8H8õŽ¡%‘ZýÚO6÷Z;®ÛDä+‰š’ð¶8JÊæäwÌîêªà¾þõç‡Áî^°O¼ñr°³™2·Ž9? ŽÞ^”ãÍÜýBø¸}¼Ïõ‰œþ»ƒ¨ø:!ÒÆ´Àþ삹ñ%Ë…âËÆ+Œ ÁŒÓâˆrz©%ª–C¥¡£<c/”;¹É.¡‡>IްˆŠÎ¢ Ïk¸‚Aìò&úݺw°kÞdŒyr¹É6è¼í:ÉêwT+4·›©±øru€þW¥à?j±&sáÑ´…Y!Óƒ]0.ü¹ÓI´$þ͇*öœxy+:z-1nflèrº.PŘi»…õ2Skâ‹ý§\œÎcÁø? És<ÁÓÈß‚+1#XóéX•‡šÄ‰ö: 2“‰èþ6ýºªSÅ‘T—ŒæWÃ(;Rþ-+s׉ª¨?é|xž¼°'Y×D2†Ï*%=«bê—{_kîr~üGmr“¦ÌÝFß«B°{øu ÕÝùýñ«éÜ˦ÔË?FËÕk ÿˆÈYŒaöqon޾ ÿápXÌÖÖn&Z>0O¨Éd˜ÿq}quW$×;™« ]‘_QMò Et>¼P+´Í=ÔjƒëË9îëíÞ”ƒÓ[¨ê-ºÁ§²¬ÎÕÅ>ÀxˆnÃ;óÙó3ë©.U*E­Zv4ëÕ6×Án³Ñ)´—ùÀí?Ž€Äö’NG¸ÞDygäQ«³£ÕEe‘ÁDsÕ±ç»D¸otÁjOÿá¬Ô§”£ÿU:ûþk«€fäšõœ*^Ü—þþá£<Æ+憭ŠîÇ%¤.¢¢±Õ¨.Š‹'þúÝÙZ #£Ñјf(#¼~üÇoù7r‚þ‰e $·Ã7CÖ?«„¼`!1›ìµ õ^ìm 5F'Á­’bÁ¢«.øðª}ÎS-'0ˇê?Îj-ÁùWr=Ÿ°wsˆóóÒ5°k7k©¯x¨4XÆ2äM>Xî¶"4/<Î@LÙ•7e™•N”‹Ï%áegb™c‹Ê¶Â¥.àûº˜…eãŸâW¨’xš=ì*"©ùMöæ{®™Ý°ÎiÍ1`ןÌCx€°*;ÌùäcïyŸr ³.¨÷U¹WŸðme°[ÇÉþ+q—¾˜±±îW…õƒÞDöÕùžÀ©¿/ÃÁ)…T>@‹c±ë˜ ß‘k¹ËÉ"yýˆ½ ÀNì¤Æ­™WtМuüä¹<ï­ìµ…¸¦×¾xS?8ƒýdÁßld…g`q'AÀ¢gÊnm‹ùhUÅ.׿Zˆ—Tl/¹{b@& vÅñè}Fn°)§d.×¹Rå¥þ|±ZÌì¸vT£×@Ëê[éû•ŠÜð,Ùˆn"ÿèdÖƒêwÇ;9Ú M÷BzL>?ŸŽIÀ1àM©­¸Íð«ª+üù)U«ÜÝ»@¤œéÂ7EÙ ;œ#³¢ óul ·ÿ1ÿ1Þj«›o¥ãÈ r® ôƒNõô-<Ç0òºyx¸wT.RIÍùî—â¹VU_MæÇÏ#æ)¥–ðvÜQç©‹Ï„2j¦µ >%.ŒüF”Nã‰ÐGQß¾¥T+î°¦>^" è‡2M÷2^Òc0%•™-ox·ÃfSôÎ/ìZö4'™×d¸. 9ËI‡à«Xç}¨…KÑs 9þ~˜STÙLNt_ïFúï¦å-wæÃ|F]ÙÌnuÅÊï¡ãKò£ÕvUzî–@–„Jöèv1—‹þ%9­` OñåyÌU ÝþÃGŸLþQˆ3ÚŸ,y‡,m·uÅwo±\ÔÇ[`kÓ]£kíigµÑ)ÅäŽåDtä²~/3uŒaé¶ç¾ÉÿK.iyôˆî;sUkúû|ºŸžÓXCý`y¦;µfͅ诒“ bvùKíæ/íø²vSܤ:  O©>jÁ袩±»½\öCÅBºùDuï:, /–êŽ-ª†¯®Eþ‘ÍŒ W2r²zOŽ@›4Ä)©?®=C߯'$º?…î´ÏüÝÇÇU’·y¯œºårx½2‰¬ oÿøí?üIZ1^x¡*}²…ì(±:Ž§ËŠ1©êHÄòôÁÉ?*Ñc«\¨þãœ6eÈtp~§ßΧ0ñQylÝ8°äHØÒ„Øï2ø½MØÛ–"f(wq‚1ÚŸÿŠõ›o¾–Ó°óžà­«ˆÄq΀Ç=ão«è×»™ÅéŸxù‡kü×8ýۓ½¯#óIŵÆÇtÁJŸ¤RÌ·`²jƒ2vù>–m™Ü&ìÛIY(Ä'SŽùQµa;"©QÜ¡Óp0µ¹GEð>i>H¬y©ÿèÂ]XÏ:ë¸âŒÌá²ar¶… Òâ‹%’NGDÏÕPn:³¥«ò<³ÁÊ6 ÓÊ)"46##‘óv˜—àé{yBµ©ÜìšOc䬇 8†»¼ëGð~ðçEèÒç…µ&èP¸«ˆqc󴽈ÊáCúÐQçÇüã-8{[ÎÅR¾b—š‚ÿت²Ó~¥ÚgU…I××Kä/嬘ÖfTgA¯¶ÁM/TÁÎèw‚<éøZ<9ßèLè}LeöT,V6øîåX毨Q?ÛãÈ?<™B»öÀ ®ò.õ%+ÁsFÔ ²ÞzY¼ô¹hkîØó=S­–ÑÛpøU2—J§Ûèl·ZÏ©'ÉkŸdŠú0üôz '£ŽrˆŠÈ¼Öê+aökcmÛ‘ý-Uéß~€žÅɨ ?~·§+ÿ1޹#ù’3ÿ| \Š?@¶Çt,÷ª¯1¨düGek ØÀsJ…¬o¯²^¢+®êzJÏõˆ®4ä×ÑP'‹(KÌП'>˜«ŠO5×÷õþ¡¯±ˆ€Jð&D²ŠR[YË^i{‘/ø_-Åûæ¦#Jv{ ̇Uã½é§{ÄL„" 4ýªÖ«öæ#·ÿX£ÏMñ눥˜{ä-« Õÿ­VTüÙ;»¹ÝÓu‡ŽŠñ$WUvWd²¹¸ô/¹ Cx†,#w=‘Šó_Á¯nÒq7ºûζ.Ö˜ Ýäo7°žÓɺ ³_G!6üã›ÙY×Ðû]ü-ð«Äy¨Ù‹¢ë yéyØëª›•[8­O9´·õ¬*ÖVÕv!5¶?a¨Z‡ö;Y°³¾"9{Ï€—YL¬=Ïé£r[L-gÒ_aÔ¢MP:óÄ‹Sc1ì#-_uþc©Šˆß9¡Ë ggŒûyºuæ†Å¦Vþ| jÓü0ÓA†¾Òsd7ùÇvÕ‡.$GP0›ð|/™<²ÿÑß\)†3àŸ5Ò™wy‘“ÐÞû¢iûwC`ͧŸVLð«Œä‡èæ±<¬¸},®;~y1m%·ªÈfû{Gk¦oE ×¶ 9¾z4•˜—Õ4kqíîäóè•ÚÎk_ê‹¡?hÑZ”mÉj,ò-ªÁz¸7×S÷6ž¡ð0Õ`³§Õƒ>¤©TDæ‡û¡·]L¥ùu»=Õö—íè.§ûú=ºÃoB••?Ô–~ú#Aåµ»+Ý×; ÿQšh.1Ù3vþIV³Ê¸j؇™›"ìgL(ï ‡R=3m­‚ä"©ð"-Gqó{–Ý\JÞË} ê³DoYËÑþs¶|ÿñÑ®³‰ªËv'»ë9ê«®žöMUÞ%X;1ÊÞ³¼‘û¥£ ÙÆ[•ö¿Ò¿ý‰VJ·Ýwæ‚ÖM[¶ûá¸?¤Ð?Ñw;üGUò§û ­8ó?~3æ¦KÿµêÈÛøàž±WmÌá"…hnÜÓo‹…r“IçÐÑ7ll÷÷ííш>Á›ï¥o!ãÀÔ2ÞJ‡ÿr‚Œ`&¯¾ñ¿ýu†~˜äT½'¾œLäÛ™ÎUÎä¤ÓØÂ;þüyMºÂ'%ç=ùoWú×_¦3Å üš¥Ž€. ºë“Üý)ì~DÞúþ%Â+D0zðülá#Z[xÖ±è’yïá¬f‚ÿÈß1-Ñ%¬^bušèl"¶£)3³¤ûÙ‡¼âã7؈Î|÷!²õ{rŽ™ƒg’îv$QùkX…—pݾpý¦šJ<À+ò#Äbû`7ŽË !ò…Éúë²7C$Çr¼ì|Ö[2’5øéèw—büj±¹”+È‚òÆæmu¿¹í¯¥§‡ÄfP“eà qñ +ÑDL$c茷HÅÎÖ‹lÇzÿIvRŠßÅ»MÄ/Ý2Û‰Óúþ€¥ü?ýMþ1ƒÀ•œÇ&^†ÿÈH÷¥9ôIò ®¯Ký‡¼ùW"ÈSøO?0üÉL+ >—Å4 ždîüj±íj<÷}¿Ê —²ÿ‘ËÚ̾no€CÉGÅZ²™²Äö·ðÓ±pÌÍúÇ Oz ±S[4è&¸Ùv8¢§èw§Z ¬äè·æƒÄ¼¢'ºŸ]†Á­¨wÜãケð£Ká&2ïžæ.Ñ5ÈzÞ²,΢Œ.xÁUøe Mͬ)`lÑ]^t‚º@Þ0’‰$ýœÊ?¦N<™eàC¶•…þ%‘Í­î;xI«®/1uÕÔ¯^éÔ%WÔ^0¿Äv7üÇXòv²¤ix¤éd_#í`uý¸wñ1yz±ÌîõF“ µGìɤòåtžò3o¨¢è<ì™T|œ‡ÿxΔŽwLïðA%–lñ–Õ˜¯ï ?3G4Ê¢z—Îbþy\²üÜð@à(¥™ËJMýàt»:Ï5»ËÂæÇ§#|~*hÊ£«Nmue!J[¸£’dð}yøú"Ñ–k%'¸€Œa×g?ÌŽ§ þ2èÜ»¥ëÕñ©?C¥{V&ìÆBswž7äø•Ós:³Š(×¹¯øŸûðþ# îÚO«ûϯª¿×óB¢…xç_?¸B+h”6:+¨ÝˆñÓ®Þ!_ëYm³¸Ç=mŒ½ò0§Kd2vèÄ$ÙýÕvò#Èù y•€?$èç‰åhÄûÞÆ'‚¾†b'šL);ȸf¸Qö€¾@Çò¨ËW°?ÈgJ¨DÔiå1"ˆ‹ð¤àÁ¦È8ÒCþõý›þͯÉAZn‘D N^ILk©¬¥­DÉù5R9p—\ xØ 1dH‹úi½Á~‘Ä_òf/…¨š+D1”Z8g†G°—BØýÜÛ®"xœ|ÍÅF7á'_9ÿø '“ uêÎs)‡NrDnƒâ$‡¹Xîæ![ÿt~íMm‰×LíÍGÎíe&2ulØÿ#î, «È².\U÷Ö­z¸»»»»;4îÖ¸;4®ÁÝ]ƒ ¸w—àîîÚèÿUzxÂ$ükÍL÷šá‘†ûnݪ:²÷>ç´gå`Z);X 8¤oø¹£TÃ\‚𖹃ůòémEn¬h"¬Ba4¿›á3+‘¥=AɶÌ|$&1¿Ö F>^t!qÝH´hoðíÌíÁøZb±Q®Ç»Nš&ëX…g¸ ÑydêÇÒ‹éÞ`øzQ8¤øOî§ØþSþ±úóÅ<¹¥±ÎŽõ}„ÿØJý 3¿5ƒuŒè.•çǰÎYàÏâ}ã£íJÍßHøóÌ2¨–<üy)ì¶ÃvOa•%è̶£ßMÍ5®#Mˆvô ]h·¡—Ц•Š t_²E<†|v¯þ=Ðû2ÙˆíœÞ<<|3õ%Ñ,ú-E$‚_b¯¤ö|úØF(w;⎑˜ä›/èಋøc´é#þ ´Þ YuÔÄg=ú«Ã°)ݬÙÌCLÄtñ¬XÂéö$»n°5‡ñjTc´—Ñ{e²Ú« æF÷£wèr"‡ÊäË­àŽFÃßY`~žð uáËGÐ0 Ÿ}¨ÿa bÞnù½ b¨ŸÜÎÝ“ø£?Ýë`þà=¢§ï¼Í­Õf+yìo2óØT³[/±ÏŸa+¾Ò¥ë ]VÊR«rÏj¦8€3œÃ›M6 ÀŸ/ÐOŠhD?Y¸§¨$ö£«ho#ïÐàhÙ&½¯bØí8ðçUé«•Üjbǵ.Ù<‡)ÍG¼4Ð|寝6ë‹DY„ó/âœÝòlÊ3øyNŸfæ‘ ±s£ß½Dýà@ê €²e¢þÿšNEÓHØDn'±\ï¾âÿÞC/¡»ÜOÂ5ÇîßýÞ.²ê_™Ètب!ʈG~ýׂ_å2ºkŒFä_vÕ þ[®iÅð«&غ*æ`A$„?¿!ÆË.b®Øl<ÕÕoísØKFó Üf„|$³èíÉ?j’Gf’Ãá›S‹ˆ¡Zq J–XäwPÞÔ‡O¾¯à`%¨ÿð “G¢ûÖtý‹+KÉÁ_\ ŸÆCÅIê?Llèv¢è ù­©C¸ETÑKz<ì9Ú›RÔ6 Ñ\Ö¦Sƒ=œ&}œ|਋ÂgçÍŒ-{=k"—M|K‰ùóÕFª1ÚsU‰¶ÿæiMJUõîPìª$óz Ö´“o{ÍŠ¨¦éªÿÊkÞѶéÌ]ÊÄ3¿€ÚÙGð½ð> °Ç©x«J§ï„oy„½?„'¹ÅŸÞ"ó;ÿ£°ÞB‚Í ï¨Abï+i_\m>åŒnM…™. Š·Œ7m:ßðNÆ{™Œÿ˜¬¥‹$Þ±lÂ)»Ð41çqZ½@¯"ò~z™EˆF½` b`›ç‚nÁcžçû&ˆý?ñç¾ÆüG9ðÇ5Øç|DÒN}XFr‚šVfú_ÃÒT‚—®†þj%ÙWtqç°€ïÀϘ­,óy£1?*%Þ6ÙÇB<Ío€Ýë|k¿œŠÊUh4Ùìè^¯»¾’ü£ Î ³‰5Èì'ŸÑ;¬%õõñ¨¼g=²«QÝýˆù¹ì‹ÖmXõ (gkÂv!?B#FþQMŽt_ï,}?þ#OÝ(üÇ7iš ,øÕº¶?¤ÛîJæª{S âÅú˹Ú{Ô~LF¿{víÑ`Vòæy·ÿا{Šn²4ˆrG"ÐÍò->â9•‘³é ¼t­/üŒ¯kŸ]½µ2®tù-‡ áXÇ99 ôöQgDéïÝ—þÿ ôÊ<Æøóß«ëöß`rº—T3®UÅ_Ìót²ÛUZeª?Zg¯zDý¦ÿ ŧSÚ>ñH– ò-lvmMBÇÝ%ú11ZëÅa#ªÍ}?C±œ¶Åÿ8Þþ£?÷¼¶îa¼ÄŸ$•åhò¸"B¨VJŸ–øò&ëü cÛŸˆ«%ù‘äyðËËx”ô†ÿ¨$C£YÎ.–’iUÅ[ìÆÂ¬çWúÑQ\Ñp¦µ;Óo@UÀ„¬¿zMþ‘U†2³ÂFoÆN‚ÿÈO¦ÝÕÔm¢~ÙÏ#°UU=‘-„k>`ôQDÄy…(Þ oÉÈýHC”>Œ¨ÙÆ\$Û…ÿ€v½!º?é•ü?·µuz*®j)1Abð«d(çsV{ÐìÃëv€eø„ÿ8c¾eÅÓ 7áfÊzâ}0 æÕ‹‰JxÛ4j0YÇy´kM‰ q?"ªå¨ë»‹äÖp§RdaËØ÷Þ÷wäƒèFùórc4]Ì–óa3¼Tg¼E8µˆ|¦«À.fă´GÏvÜn2™B^¾aûžÄ)¾0§Ñ/4hïì]è¯æ ÃË‚½Ý{pל 6™ =h+ÔÉäå­£¨¥ ¸4&ºOåÇ)=ÅíÉdÚ ÷%¹¡ñ¶æ®zò¯/º…׿b•ý®·ZceyiIÕÆk²ƒœVLôW ðq`-k¸ÊÈyoÒ_Zqºáâþ_ ÊO‡"¸´zhF¡_ø+:zÚqtÒú št‡Î04çÀð>Ò+ð) ˆ솇¹S´ ´Þ$™ K•ûã6™o•Ó“«‹“Y0›o.øÕßÖjÔ­oUCжÔ5¶ÃOχz®¾‘ÙÄ4ý±Þ­ô¿Z WP€oÈéCy†™¿S@‡P“u¿šjuëe׳¿áSû‘¤â4£’|–#Ý7¹õ<˜N¦ZßšCw˜ÓæU¼/“¢îX7í £>€ž7?]õo ¾„)Ö=Ãvⲋà¾Þéú^‘ê8­/*}-“YŠÙ²›˜CrÛJ{>½å¥n°þ£2YRx8þ·ê0ªüÛ EЂ Pÿ±þ£59Ö b©ÔZvA×{û/òzÓ[Ïé6ÜÝåãzm·p…áÊèŠZ™ÇJ`_"ûõ’³AL0»|ÿ“úÁ·äŠþJØWÔÄuŸ“û„êCTý…^¸jdò›mÔe•Uôo/ct¤ÿnT#¶þ{ó?vh˘U[…ˆ«ŒÓa˘¥¯¨"©×>ÆDuÿ]‡f{½„3ÑÚWÖWoƒ¦›ÕõúÆyøøôf ÿ‘V„N9ÐR?¦'“g°á3»a]««‘ĶùänìÍ¢T¼ç«d 0Óc¡ØZ*±ŽI½•ÀŽËnÀv Þ€"FWõQ÷Üåú¯Ë(x¨ˆfó#Z-:8n¡~0 Va?Ì@qú·§G;5Ðaoá¿ã¨-Ä£ QK5 g}ÒîöT£ ¶Ùéx‚x;ÏxNð«TtÑ ¯+øÂ,ìØ1ø»Ôìw-•:µd+Ýß¾üƒÚF=ïÐVò„œ~üÇ+ÙŸ{–ô(z––hd²ç \ó6°¼`ƒiÀ¯J -˜]VÖ ˆR|{ôWuáPc­KsJ¸/;ÌÃtaûˆVª6VÈ©Êtê_R¡”I‡9Œÿè¬ým,—k°ZžØµô0 kyNƱz;bïôdZôFÅúÏ /5¶yï®ÓñóÉ?‚Ö,5fÉ ä±ˆ‰²‹؆ãf&°fp;á|_1ùã"ݦ [³`ßxûwŸÈ|LøSþ߸ ÙËLÃ1ƒ?¹˜'c!õƒ)È5ÖXʼnï[PñÒ¯~0*¨QL¬ù-¼Ÿ¨g‰ÃSà«ÿè g’î^'‰V²ó'JI…¡Ïî:+Šß¹x"{z˜zñcðßÕ¨, †×‰O¨øÛÂó°^ ´ÞpY=îVìNËó»g¥þ£%þã Ì@r0¡uèw·«vL?£úÓ ¥ ÜþuÁÂDŽäŸ\„…uúCÖU/ÍæäF eFÓ Oâf2%c¦árøs ÀŽ¿5,KS*ï?à9ãAXkQW'B³<ÐýðÍÖ×ßÌòD;CàÏ÷>0ǪTö ª)Ö'ú¿—r½ýÓ]Åí5téŠBwÆ=Vt”D¯|ÆL);Èvîë¢_A¯òâ? «QUL+–«(¬‘ýP3¿q"{Ëo^ ÿv& ‡"Öcó ÚÂØûæh>®¸óÝ~ùGNµ3oé.iiÜb²ÉBªPsuu©??ïÒ]eÈ?6«®àW]íÔô¾¾WNa=ƒk+ü?™ÿñH« zLåN÷9¹o@¨>ÄÓ¯ëYõFiÑ\¼¦«–¦mв‰ÆB#Š‘R-õÿ¢ Úú··ÄdÄšnB„3fꇄ‡œI½ÄzêÏ_ûÿáP|š'>‘+l“õ`øþ4ÛП¶’^üйðãdT3S°(ûÏKïÑwêÑeDð¥o0ñMû®ú¢'Jü¯ücüCcP e»PM$N/<Åvî_àWOãÝ âå¶ð¸ Nµ9¿^¥¯=aÝb‡¢þü6€Ìz¼|.£ò†îb/ùè׿ðç}Í ðëÀPöÂÌÂúu¥~0$ÿ1Û Š4€¿Ï¼Tâ÷%d7u±ƒÞÄå…ñSÀÿâõÒíìDÕ€ùµ¿êÔÿEÛ©GGXÈž’òwb‘5…õ>lvSÛðz©ªø­|ß¾í"wê-ûzYA+T×»‹ZüÉdxïüÙÍx¥ÊxÆÇäò^æüÇ7j¥›àEWá-=ñ€Ù@òp-{‚ñ´HôßõvjG°•ÉÙÇ<ï®ËƒìÃòç̲õE‹»‰ÿZiÞc,ÿ½9OìÓ÷yP6PîèÂÒÝo#_qr¸x cª‡• "õtùчՂE_CÞõ… î$Võ%h×~™ã'ýîWý«Œ‰ÇOçžji.ÈÝzú·'±–Óé¶ i/ð’ì®”‘úóxh†¯–ųæ«øÕµ Ë·8Ì;³•§.+ü~-§ˆt{ÝnÅ!‚_ÂļT ܵ[ë˜WÒÀ:޶9‰GàaÔ9îú"Ñ>Ðzð9Õ3üiœÝæð«yL`†,¬k5ýK.[{Èg–©V){7,N¾ÕKÝ¿J`õWñÍ‹îíÒ:è`ÁZ qô½Ñ>S'¨ËKLÝÜrüP:KåÂ^ûÀ2"ÿ˜g§'ñX˜¡¸Øû(\½fvv¯×Oßn¼%ÊK Î\ßJ ÆúÅ<© ¨j¢ú¦¼a­àWG@³RC¾þùÇ|æFRÕ ß¼ÞxNGßßù§£ˆ†Êö ˆØâTúh¦û Ùþ<3ùGX3¯ð×1ÿ»•Gѧ%¡|A$F5ÆÒ߇—ž;‘—ü£7>`,¶± vY4Tüy6±Aì“ QRnÇ/Çz9‰"Ìä3ùMnóšÌӟĬbþqHkBÿ-Oücdp˜ÍN úL•'’å~€È‚=ÍΓ¿䨾)Zo´Eòàß›<­ŸÈ–“°»ìð³á?¢«éð?ÉLҨˬØÔ¬-ËýRiwNÛ¢‡EY¶š¸<%ÙJÖkOÎvˆÌc¨_/"ÿOdO`ì}`E|°ÎñÕNôWÁ1S•ôü¢:Ü}r´ÅÉ8.g”p2’u<1„Ü+åTŠO?J¿Ê{s8ÿÑQ³™?èÍ™¯Awj¹Õh¹†a¯ûÏFIÁ[¿¹ þƒYà\óZP±ìu-þceGf›±üª¢ŸÿX.à9’sŠCôÞ›¿Óš “ž5™;[5J»2þÓ^´)en÷;ùÏ ˆu2M%_…›AËlð«8XhozôEÂŒ³à«2‰¬¤ö-'»½‚i†Jƹ¢¿ò4âñDœâNƒÇ¬ÎõEÅ^-·RPÁ½ŒN¾¶kúÓNÖ6ÕÖªNבÂxÔðñ7Qìáéñí°Ÿ,M&sŽ«Ê¼Åæ;º:Në¨ ÓÑÖ‹Ìá-•Ý#ñfí,ôYƒþª3þã* B«Škú×ûÐ[`ïÃÄhmÈ݆¾T—àŒlúvlÀuã?Èr¦ô·ÚÓmê§×“³qÝE€éH ~p¼¾„ü£:Q@+³®µßlzpXű¯€Tµî[ÇñŸÉFtW¦²Ü!WŠF_¬&hØú±Þ ¼bXøfîë~•^±1™²2›¦Y*ñ|äk“P)Ÿ¶.£'®v÷8sÛ¡¿ê…ÿhˆrê*¨]MA‡œtûCú|1uö ÖÛ`úÈûVüG[îÇW:%^`þà<×+WJæŸW±Wƒ_E€÷„¶÷%=ØŽÂä&  gýÿ„ÿxάÿúóZµÝƒ¼!ü6±~“м­F^ÑHD7:qÚ3´ÂFYô»ð_µ_¡Á/{úóó Mý8íúøê”Ôh Õ¯Šr²˜#NÒÑ׿ê1øÿ´xAä¹ ¾ü0Ö½¿f]=ýw«™)˜mìA¿ÁÌ"(æx…¿I}8ùu"ªºä›§Í¦jÁÂ>³ÿ ÂåeKýÖ£ òë;æŸ'ÙBþ‘L)™}8‹ãœàs²&G‘sŸ·èâûó0 é•ýK‚ÓJäЫ‰¦xר KU8»uÜ×ÚìîŒú^s¢h/ÂbKZQ ±{7þ<+$Srã?ziáІoE‡¼Ž]ÄW‘ð­8¥¼äYÙá曃é<»7l(¿r*7rÅûØë,±í§þWó ˜:,L<Î"*ᾑñ9õcǨÿȼ†yàÙ­ƒôO¬ÿ¨:” Û? {º”y{‰dz·µúçãRÿ…H*~ÛÑ_3]¢á+æªþô/‰GýygtM+T zðnÂöe W¸M=ö<¸ä¢æYýY Q0Ê6D*‘ð3^(-΂_­m­bP›²ÍÐVû…Ý4¨±_|I¬orÇœÏr±uÂyÃýÿé#‹ágó4ô†±ßj~R³­ÞVwðtÌ}†ÿ˜kõ¿ŠOýÇ(ðÏÔÞE1Ūÿá?5ÆéÂ7ܳ±º‡^_uCÿ‘‰:¾duÁ«Ž(;?ùÃ2»2ê°öô+¼ÓÝIM‚á÷Âû?iïÞÜd}®ñþ%‘`ÊzZóÌÆòˆé©"PoÙ˜úõ‹t˜Êïú[ñ™³;­¯h˜pe5µì 4]]3cÓwûzë§DtÞò<¼ï­(tÅ)`½µKP/³Ä~ â”Äuœ ¿jðæÙQ,禆#!Ý-•uÿá¨) rF£Í·nÿqTŸCïÎ4~üùsùGeWzWÐ6XÚ-º!Ÿq¹Âdw¥ƒ£_£ R¥’Ëþ¢ÒÚ¦Z~wë]%2I%—¸¯ø¿÷á‰Ö4@ýàú·rŸÓïí"3Ý) 3ŒÌ¢®øâ×ÿj¥–—úü,¼‘ú—Qiðßr^[ ~U˜2+QÜAüª³¾™Ûcé7xZß«ÿ¨,nyî£JguüGý†~@Ö1³í5G•*D[úÏNûê{õð(8ÎÁZ5à>Fž=˜{XCî›|ç[’ƒðL”IQñ7÷(èõÆûÅuøó«(zN`_°rGp™›ä N½XUþ<:hkx³CˆþãæÌLñbþàk³-V. ±çKðã9äEåxz½±a;©õÈOºQùR·šA†3KwÚ« ÄÚ’<&)ªthl–‚ …UNÉ^,©M½Š’²Ì(ùU¤°OÛ ¿’‰ÈªP£â V·A(;ásÛÀmR]M$ë>†ÓóÐßœZA¿\eg%=§¨ÊÞÛ^™]åÿë€QÇ£x3“¼³xGÁšM!ïrê?^aƒ{¢Y z4­³nm5|²7Ñx <È TÔ`z£ %+¡–°0 ÷NbÜ„ \{ñ¦G9ÃÝTW®§~0¨vrŽÑWÎdGÉù>°ø/9ÿ\ÍYú&EW³Ô/–¾„~·‘å̯ CN³Žµ_óý^2 STï1¢ñLæåmˆï§ç:~õ„ÞáiÉe–ª!0ÒÑá–¢b½F¼ÓÚÍþ醫^1|3ÜB)ó¸þ!ЊކŽ'=›†¦ŠºnºÐÛ®²²q{€ ý †õ•yO7TAxþËäšOé2ó{º†j1od¯@뵕ù8éÇÜ3üÇ:óššÅ¤Ž®Öhf\}¤NƒœÃÚ‹šu9ýÛ3ÛwáÏ;ãµ–5„£†¾¿ÊdÞt_ðI­‚>˜ëk §VŸ~`ÄæÕ]ö•ÓnÈLŒvìj~ôfÞvOô»ô÷`þùüÛõÌ2=ùG|sœ{½ÑúVã–YÝýÕNs¨Mϯdè±>Råþ%A?tÚ=üîÇ%3Œì,{»¯w¸î- ž¦§ßûÚ„ô…Êk,02Rÿa`ë5m£–ÉÈŒk;s£þ&~uVÛ(,ЫÖX@z/‰o†m4Ó/‹•rŽØ&n÷ô  ù¿ÛFâ ¤í²>w© Ý©þ–@„/¬F§Òoºœz"tÊåŽúQ=*ùÇylfâçíTcÏ žn"}QßíÁ£$'²Ÿ‚WÊ(þûMùý×èbµð…ßø€E:…w{ˆéˆ{O¥Fs¢úhª²ùLF ²ÖÍŽ!úsZgô dâðn¼ÇÎL¾2Öo øÕl^Zâñ¬DÖKØi·ûïÎ0Šƒ¨ÍÂÖ\">ú[Žæê*à ÷¥$;:ÉÉøO_¬FzõŽ¡©™GvÒ÷ýâªuê] K+È¥ââÉb£Kn@þ±ä*ŠŠHRþ*NávyµŸ‚7%“±“ËŸgÐk‰f ˆIA+áG|à»+qÂaxSqZS¼éiB–4‹ù‹Óÿj!‘st½sQ+¯mtr¥eâœîäš·Qÿ1žýdÇBn‡~Kþ²ÿqZõ±RS³68º¦Št—šG–ôѤÃÜÆð«•ô¿*ä-Œl<cm[1ƒî%‡¼mNPÙ°½³Õh«¤†ú#öm¾+/þc& @Vªýîá VªDðq'ɶnq¡¡ñ”㬜úÁŠê&Óéßž‡œ¦;“¼£¹vÛ]½¬ódHŽN¬0 ±–°ûïQ“í&ŠØ$ZÚa™’çá&9–Y]ÜÀ¯&Xý¬¹0a’³¢½Úg¯·vpýim_0®xæ™X} .>Οÿ¸EÁ82ïfp ¹ƒÃe4ò™ÓÔ &ƒ/ŸMIâüTÔå̓¡é®5“úsGý<œúø¥\Ñy´]Ý—;Kßa¼6ÿ€·k¶²Ö¡¿ÚN¯çâÌåhÿØ/ŸÓåËéEr%‚áO§àTâ×F×¼à^…sŸÌEôW!uDúÕÞbé×ôÌô/ÉK?Ù7~ó£úõ¿jhì1¢.}÷¯þb°?ßÿñ·l‹ÿHŽUšÉÄóˆÆ$ú–-‘SÄú·ß×?û÷~õCñ®b=H것ðå9©¨z,ËšgD9ø>wˆ±ø?kÑoÓGEòlëèÉ{ƒj7‚YÉAåõ üÆEXéx|Ãp¿þW§µ?*–‰{0Ü_ñDë±¥‰Ç+ó¤=6¿Ãp>ÆšV± ÊišÕÙ€‹¸?îצÐójú+“7o 63/Uãy°~=È?NòÄÂ2f¬Ä÷• ¶²Û½­È…FšC‰U½À›æ¡¨ˆUœJ•Xn¢©ÉØÏ3ü·0¬=ýV…ÿøU×Ȱº·Dh¼r:üD üG_¢ƒKÔ,_ ;}?y5'z{¿œ\l9ÙÒ2Ão·ô¯ÏiáÏk‚›}'j«À)íåÔÚÃqx ëòXðÂ:õOéß¾‘|nš‰v!ÐzSd 4¾w8fä¦ûͨÂ| QùàϽ°¦g˜ùÞŒ•Z pÝÁ•vÁk¡mBáɪI}æ+­¡¾u|'PÍ&xï¾2­ù@Ͱº¡nŽwv?2×a™'Y¬?é¿Õr: Qß¹ +ÚlóÏÁñÿsõ݆T•@!ûš­µfKð«ÓjŒGJ{}áwÙµèòÐŽîJi ûH}û> U;²ÎvTLÎÀ|Ee÷õΧþ<(qZsˆù·*Í„»\ViªüŽ!Æc»;3Eƒ/¿›@æ1iùàÏ_€ÄëD7—ªÚæ-wþ±]éPY™ç½íRÉ.ér¹:“i]¡Ú>¢«'ú°ç®¿íFÌ)F5MRú®¤²’Ù‡y¦/ɱäA'ÍÜ*ž ªtÀðÃ--U€N„ç´ªÿïùƒau_&2íF¿Û‰yl:º@KkÄ¡}¡ñYºïo]Åa­—¸+ c;#`ízˆçÆ%}®>[ô•uÄx±Åo¢úï,XVøÂ›{É̦ƒÖ“¯™%ÆXMg„⾨ OÊx!öüçû*éçô‹â*Vþ 6¹¿‚€múSây:>×C YB†ÆÇYb+ý¯2²ÚÖZEÆq|',îgbó豊1÷( ýš½Cô7µ‚0 ³©¯‹.Ì;™*‹<¼ñÎì¡K<£1aÕá;æsmCÄì9°æÝü˜âåðSÁ}›ÁÁÏ&)¬þæçgA¶¼°fɾʘÙeÕ_Îÿ¸§ ÃcgPGx‡’ðý©ñÍðM»M§ÓQrlE+T Yï ^~ˆÏ\Xâ‘ðçÂýîúßó0zQŸ¬-ºš‚ÿ8NÖÖRüÏ¥™ßá?^€ÕUÙÎþ¼X·øÕ[Y+Øù ´÷Æxò𰱑Ñï6'gH5,‹?É@w– Xw¢}j+Òq†+¹Ó/2@ѧùoÌïÓM£»Åy8ÕÝ à6žiœáwǨÿHn]·¼ÀØ«W£Éøp蛼±ªô›b"jôŸú—Ä6.ò6tÅ ÆNR¿7Z®â‹–¨µ¨CãÛ ©?Ø "”ýÕbðøh…÷a‡+Ñ'Hýà #2«‚¥Ž‹w*õ>À£¬¶$ ÝÑ`9_¨­¸i×·^«â0ü¾0>гS¶f“š€—©ÌSt†áÞä»ôŸz|F+¥ÁSVçyíjÖ•(ï*åt'Lít…G‘”´¾aU&í˜G˜Ø: º©îx«}诈*ÌnîÍõÑ7OÌjxÔ f#«3üGz¼ú,ì|\òƒc(®Ú¸¾ØgÀ슀>¤3üEªM “hƒÞl¹qÙ\ú÷ûš©ï xv ’•_QWÑâüaÅuUÂ4&ËŠIÞ™0û±`‘ÒÑŸ1;¸ØÕ Æû4èè5lC9øæiwþ±ýUYƒ'´'þc‚ gos]µ‹[»©ŸŽÿ¨Ï<Û£®Ûv1×Hªã¹b1í%=þã49÷AéÁ{tÖLˆŽØ¿ƒ˜ûÒÿãÂUùëVÊè¹ý¤2¶Y@îé]XeùGn#Ÿ±ÑFýpè—âOîӯг²$þ#!ÑÓJú_ÙÆtx«I² þcÆøø[ë¥{@—Ã3¬$í,oÑg£°qWþaî¯Dú—d©Buåà?.‰ƒØ¸{X˜6ØÏò<—ÅÌRò xè)~¦_OF•W†Fc,Å*%óRG²;¼<è$8Øs"ë8è ßð†—cb³‹f¶ Ñì×RQ×½üêxýZðœò~õAyŠ«w|G:åeÆÂÖOl ‚ö z¨ÝÂpÓÝøÛ×y¶Mxô‚ÔÏÄ'ö€ÖAŠÎâ?¶/]Àªd4‹ÉŠ¿Ì4iô/2øY}¼ÚR¼Í{ÙüêLÿ2Í~p¥‘Á«ì€s™Ã`Ò}5G°] éÍEüG zÑæDypÿÑKùœ+¼b¾!Šù ŽÓ T~?žoúÝ”äqoÉx6ã?kŒÁÒ‡÷Йøšüg5(ä@31¬ll±¡ªœÀÆÅ—äRÉäfq.ëñƒãÅn=è»»ÍJþQ¿³Œø¾¬ºK®²×Ì Ö˜7Àð#Øù­«t)^LÎ&Òm…ÿ¥¦I)+ycÑ+!!ñJü×Hløø7/•‰^Œ»™È”>¹¦=Ö~E…c.+2¬CbФóÔÔE´Fª8X˜ëtÇxogôâ þ b7KNÏ1&sxYiá³GQsðŽ~´OìñT8V‡ÿð%‹û„žïùÇV´c¨¯™h=™ /û~­8uG¾æcð¦q bÝTë ö4Hþ2¦ñí¥1 ý‡ ÕnÄ‚ñ‰d VaLÿËw©HD]kÛ„ÚÆ¿àn¨]è¯Âã'ÑǤêƒìÔÇϵ{à?z؃íÈø–àMŸ°÷ô‚"Ÿñt_îtý°qžîIUo³¥5›ùQ:ªªöô»ã¬ôoÏçzLý I ÇyKƒ_ØÌÛZh¸ûQñ3[§þ£{€‰“¨ÿ°A²Óþ­žÛe£þ£3þl8“CQèL&IÿÈFøÇôg¼¡ÊQƒþŽË™ò\H® ªïÜ«¯WÉOV7wh|hå ~°=ÕœÈâÖ¡ÿíîÚAÿöRÔŸ_¦{»‘…Ú‹<õKñ…Ápã«Dÿ“ùçOé˜Öý$|Ðjþ¿û·G£¯G9¸ŽR¢üy_Ö\®¥3²µyàW‘sþà)mª$gú`jPõ5â+à9äíåp:`¢áïåIIÄQ"ÏíTé,#ž ~Õ“ú«dƯÄ{ÑVÞ‘ÅBä’ÿ¹ßé[é| ÷ž›‚X5àm.m––§°SÛ°ý>d©ŒÆÌ€àææýxj~üVLcRoº>-Á­C{tˆ!An¾ò†¿¤® üyüGX³Gˆþã’–ÎÒëd8²—Š(e³á} lóhj—sã?¶_yr¦ÝˆÈ«š]EÐ>K?võã×vF>®tHëu؈¨¬“…Œ!'Vu$VÏ„Wvøó£ ÷×yúË™Edã_N~@ÿ’û2£ÚÅÈÆ}H@çëfdpÇÍžê>5)ƒÁþMþë%þÝÎYÎÁ/Ýf–IAáÏÐýØ—¦å×ËŠÖ|»¦†ó½ûØesü‡3ÿ#øÉ9ÑF¼ oòrŒmk(DÿD'ÿØŒÿ覽2&Ë-ðN³È7’bσç´zðûØ×vðGñƒá?Ò¨¬8;ºˆ*bîã¿1¿O>ôßÊ &øù|îÄENüùÇIúw¤„?o¿a~íÐp øCpÝðxt„;Ëã~'ÿY8±qÌþ|<ÌÁv㯩?OFï¨ÕTz%2¯oa.Óð¦ðä]‰°¡'P~=¡ª.g{\?hÅMF$³ ™®“¿`§¨ï†ÅJâߟy¯Q£^„ý½‰ÿÈŽŸ+Ή´Àû=ãö+.Í­7L–Â|! mJµ {?™êó®VKÓz€®5øÕüÑDÕš†{ä(íèÚ¸%À[Gñ…öï~½ùµ#‰œÚÁÇÿ¡ÊáO“c§w2§6u¬™ôjùÂÌÞ=èv{X­æð/ÀÖÆªiðçèMéæ ÷Y®_2ÞÀþ%RÝÌæ–¯Ù^Þ7ÑÀ˜çDåô Ùu‡ß ,óZú·?¤{û «¨eSTÁó°ùe[Yß}½Ý˜_ûŽjtœ¦fB™)OÝàË=ðÞè–À çÀŸ¤DÁ›NŠ)©Bc}AQyÔ¸(£~lpóÏÇ`‰Ö’qo†_hU¿Æ$ª'–N­yy{ªëõƒeÁ×ö«L.æK1GÊ´ð  ‹Ì Æ^%”Ak~¬ÿŸüõ¯ü«³îkõÐUAü¼§¸ú ½¨áí×÷îTÛÌE¿›…ús¦·É3ÿ8¬­†ÿ¨ ª‘k³\<22â?ö‰~Ô®çŒúËŸ·ðo~’O܇?_-³Â1T¦þã;sŽ2Т4¹©‹ùƒOe¦gaü³|?tBÞÕù€}¨c^¦ÁD° Zò!÷ÿIr“ŽóTµ§ ÕüÚ˜\Ï)ÎD´‡ý¼ÒlœQˆ¤:_¹TaæGE‡ ovÑìÔþ`J 'ùJ,¢ùífV¬ækóqà'•aÖ€_-†iÍ7u0Š uA°“цèf¹õžÖøŒDPÅySgâ?4?~y‚S¡íɪE˜ÿᯤ ¼Ú[mþ’8u§•oeqCüÚ9˜ÒNM –QÁ®_„ÿØ‹ïXKŒNyÊ”ÁÎÿ(¬WµaY£«iä{{È?ºáÙ’áqÃb /Ð…- ‘}câðmĉó¹7éa#pÕkƒñ]µ·Æ4y„z58¬ù ЧQ¨ß‘”Poù\4cñmbzƒ¬fÿ;ñÁ+Pgõ…/U;e ”°éຽ©?‚ÿ:ˆ­>K=wnëùÇgp¬“Xç†Ö|û÷h³v“Ó]¦ßëPô»ÝÖꟅO©‚ð@½¶ìgËð«ÌÔ’ÌV£¬t¯‚÷2è[iüÇ1ØóT MèŽ>U%"º9JuVÀ-nAÜ‚“ΊëÈö™±a6[éTkþã+3@ö¢Žev øÕAU ÕŠêOx¨£pVóƒÔŽÂ¤ÇÒîqšÉ‰¤«ã$*à&‘#Ý$ÿHi?…ÿ˜`y±Û¬TûÍgµª(‡/«èÌÛí¢ÞÈ{îííÕ:ês‰HÿÑßíAý«ŽMïKýy|k2Ø_{ª/Ûàá¦3¡¤¼Èû)žyxX8j~"ò¯mŽq¯GÝ1ú«fÜÓvfk¹L†¥Ê¥ú²¢ö|ÖBýÇyØïwvû ¬"ƒ=mcO±ðçO9Ñ£f"Ù^úÏ[œ§Ÿ.Xjä§wT Þ¦žVcúïä:÷1Ee.'7 ýîüÓ`+LRq8þxÖ3°_¼G1|Ù_D8?6è ®â!‹’ÉWÞ%£Ø•éß>oþ„Îmíö>×EôWÙ]MQeJ{W;/º®;¼Ã»åhžS ÁrÏÿ‹¿¾CëðÞý}ŸÐï¦ ôœ¹ÿSˆâÓ×¼$ú«‚¢1üyVñÖ Ñ¿¤‰1݈k¤øMýÕm½¸)«ßE'rJh̯õ¡îsùÇ ±Ë8¦‡4¹"ð†ëÒ·½õ +W4;ÊfØþ«²ˆ}x²ÓK2(ùþÌŒ'5 ]µ&*}CeÒDzŒ”Û±²'yR‚ÃÏ•1d Œ-žXNÿ«ÄÍ»Ám6°ÞVüÏgúÿDTñQ±ÐjÜ!o*C]GÿýÇMí/tM>Ryé âš‹ó{Çêž P5Ôkô1éÕ8õ X¿Öf¿ó†3Q|2Öש=4ðBiÈŠÊ`Á&c"¢½þ´Œ]¾"gV“½~é?Þi+õhØÐ•س´dZIàÏÛ!Ü1Ûã}ò˜3ˆH¿òóÓœƒ¹‰½^#/_²;˜g2¯^[TíKMTœ?ï‹g¨ŽzuUÄ_ÔŸo÷³R›°ód `f¯Ð_µûEþáôOÜe¦P;ù;Yà³WSèAÄØt'7HÝø$§ºoÕ!…Ô¼Ó/ù|Õ|qõ§þW«ñFÎÄÜôõó! ºÌ÷_5sPÞœþí§ÑïvÔH ¬ÚÖò Ne'õo9ÙÙðçi‚\qZüG,ø§~p ª¥q<S©ÿHo-Ç"gž¶³Gã?|ÈhRrÝ9aižª»XçÍÄâUÍ}úñ@+®3br^·È·²ã?jpb‰¨ÜgU¡þ| :T¸óvGê?zQ¡w‘X$¼êΊïÐ_98mQ9ÐzdüÇ#NelÆ"ð«}Ô¿MeòTnë v5܇·_ÿ’áVû:‚žàMÎ$¬ô¿£Ëkîöþc¿?OÉG«ºÝ›êýU®í®D®Œ®V uP÷ w³²O‚ì–ƒ@”_šTt†²ûþƒžkuÿgõ¹V$À4ßûÚˆºž‚YQÅDñίÿ•§žúó®FØîX¿Ùw¿–y>Yð­9AƒÎˆ"­±FŸ"Ëè¯Î1ÿ#šû~†fŸIÅ¢¦«xùƒ¼…Ýä9Ibxʪfe™vìL+ʆjÅZúeýƒ¸ŒÅúBÞ ûQJ-À f—ƒ±Ÿ‡‰Ssàñ6QU’VfÅŠŸŒ­àWŽâjHÎzþ‡ê$ë1Q…Se¬Tuó Tu±°[Bô—´DÄö«QÌ¿§ŸÔ^³¶ãoXž%æê§ïâ5ðÓò`/»xZwÿ¬<øSf'‹õszs§ÁC&å ÈDþ1d:ºòÂëíƒCŽB½ –>“œ«ß ~)íˆæ©?—Ñážë‚ -b¥W²)¾vÜæs²šÁ°¶ÚG:Ç·í‚¿Ff¾R& vJIl=ºÈ Æ—T lè™ßŸøñ‡ ~ͤr¸ ~ÕY¿v” 3ÉÅÂá³Z›+ƒÉ?<´K0k¨&YH”Œ+ÛE>3”èO²d¼÷sˆ}ÈN¦ne"^ßΚ{ðŸ™Dº÷'ýîæNãÉM@w©£\×w|ÑE²›mðQÉ?úÓ‹<38S Ô±k;¥²7M„³FýùSQ4È““Ä8 ÂÑ…«‚º€…¶A²S?8K ´âÚL¼ÓM¯Ñÿ*:+„£y¦ÞZ~•Ç|ÈÔ³€·ÅÇx/ÇpVQ¸–Íà4oÁ¯‚¶7$ÿhE%ƒ/Ú¦uvw뉪DþqŸ eØmÖÜJ†8Ù$ÿ('ã€ó½‚ÿkÃl3o*_”G“°æiÀÿgÓIð3š³¥T’ µ’ƒ_U}a§þ‰ÁȪŸû÷¸Dÿ«VDg°Üц­@‰YSèIX˜Ç9dZÉá{NP§Ò…úËáÄã‰é…?n*¹RFËlæ‰Ì×OWÐ_™ørÖRs‰¼eVí®¿èSò ^¿ õ›Ñ+g£sûköšÖ>d5&ƒkN½‹WU]  ß _ñ‰=Õà™úLåã{êÏÂ_Ý£ƒåi²¸íœ_3¸•›Ô©ÌfÎá(»,Úã„Ö',ÆßĆLÕ‘®Í?îÇQøó… !^Diûéˆ8ÕŠ‡žx,Ùq*{¡ãzáú~•%ï]•ÏU}p +Œ}Œõ¤lE>³—Ó2ÿ'üGd½¬žÚýd]×Úè1Ü¿ûq}¡û5žþNOb|4ʈ>ÔŠ;ùÇJ-%ê«ZÆZã5]á7…n™ý©íÚVñ… »XG?óýK²‡ô£ÄˆÓÅB1ŽŽŒO~k½±" <ë Vü—Ú>!¢^Üx-Ñÿ ³íC¿(;X•ÏÏ_Ò $ žŒOìX5Á'½‡ sÿdò(ɲ‡B ecá?ÚДü¼ÎŸ¤‹Aêºð&ÇûìÂbåš#©o`ï]À±^ç<¥»A2Ñ!úÛÚ0ò”iÒe¦%^<ƒÿ-f~“e‰TÆ¢…|†J£v‚AÍeŸ#è‚W$„»½Ù˜Ž‡ìÀŸ½MO gœŽ>qø"¬NXµOw–Ì$<ûÜ_ÐDÖûegË£š·Næý)·¬é»@Uç³?üymú‘wäª×aƒnq[Éß2id¡¬&³ËzQ {Ÿ,§»`ò6~1 7¼:d¦‘‹D|k'øU~r…õdHcñ‘©élÿÄŽšb¶ÌnNg·êò•Q5âl{ª #›RÍ5kÁ ¬yI Þ³š,é4{½ëøc1_ŸòãvþëדF9¼¨’Ã7ƒô½ÁæžçÚOûõ¿:HE ôW÷áJZó°¤’U_‘Ó½Óö;( ưÉkÛ Á^ q ÜðúÝäVA8”…ô¿b28qª/Þª >eRZj?,RÑÉö.2µ&à§q‰v€þeS;¨:aF&r>lÕ£ŸÈD”IW˜fq†êé›Ì ¬…ÕHEb/Ц7\Ïp›9¢f õV”WÎ4”¾x¸=èm7ƒß·A¹•›ùL۱ȟ,fóífYÉ?nà?êƒì=¤¿ÉW˜ô/ò²{{w`a§£4«Wsj‚Ú‚…ç^‹Rϯ^cžÊ.MÇCO{z¬fLȰ©Å ²ÁÚO.‡ÁôWTÕWϹ{ÉT³¿µÞ¬ ]°\Ù˜WÛŽŽ\hS9æß·ÃPC~o—_wOš–=:õœ‰Š:ÓôÇë'D6²Ù¢dñ†U–)6å-›Ù€§ñhјñ-¯3@.ÐW~ók™ÎB‡ÍzNþÁ´9"¥:àW3ÜþcºÒ‘²Þ`ÏéryÛ*çŠâ‰ÿˆÈ<Ä9pQ5é¿ûÊnçn_§I&½Å­详ûõO,À“øÂ|!þüÇkú'fsŸÌ¦¡‡N…ôã,ýM^Ä8~UB|×§k‹–Ú¨n4ÆQ­þ—ªNÿ~:¨GåŸD´Ù‰ñ}DÑÆø ¯Óå(üÓr]‘Ü»ø÷~õ¹®xvïôI?AZI¾—õ4†¯bV”ù©÷½'c„’ÿ†þ*’`³:ö½rm5 ‹˜@.#únöÇj46§¢¡©*_üj;~I,@iöóìöròްª˜ÑmÞ zØ‹Xx©·2%Oks@ˆþãŠV ^a3õô‰ðgÉ• ò¿"ø¹ð¿÷Y?)ñI¬é\ºE/•B8ÅFs˜™)DÏ7É4¾HOªqÆšÉàz£:Õɼvƒ_­!OØ‚ÿhJ6×é—eNj»ôHXdx£äøÚ$ø¾Dù éT±É°Šxp6Wˆ‹þ [ð .5EæþÎü.›^PtÁÇ&QóÈ;öâ{›ãi«€†Ý$‡ë"}Ä'bÇÒDâNVGE:™ì;™€{³&˜ü£§öÕ˜*÷cáב³$CM» •Ø ø&èÌR«?©šëƾMN4ø ‡ŸÙ†W½HÄpXlÔùoÌïÓJc¬œÏn²€ÔlT-Q¶Ž!óÍK~QÙú¢Öc£ï3Wãˆ_7ÞE|C$VÝÏ7_ÀJO”—~êÅ–œX'7w!3ÿ};:âex.ojÅþºSÁÂcÂô±O+Ó*@=Ê,ö|Šè^ÁÄÇóœÕïºÓÞ¬çæmÙ.ì÷-ú—xƒ`5d&•Ó þ Þö@êÏKÑ!ø8˜^XïËÔW¬Æžö0GéÕNDõ|‘»ÐÛføî­èOâ½âZÈJ`“wÚ3¬5ª–³ROÐÊ0Ji¬œ®núóçµVúp\gªnMj5çÈf ë.º«ÄT . }4xX>ìsoøóÁèw{1ùd-:€TÄì@¿NE2½Ýwd:ó_™…xZû™m¬Íf}jkϨdàMÅñ?›¬[v— ^g¸RÑý&]}©ðlO|Ø uñbÞ¢\²›¬í>¿¡ú#ÃÌ@´2žë,…ÿhˆÏ¨ÎÔ­ÅtùÚiet`}3òRvoæÌö§ö¼&ú Nû ¬{ Ψ]›lp¾^Ì“™ÁZ‘ån—Wè_¢¹zƒ_…õ{H÷—>.&üySû ?ÓÕ.D…Êi2–õr8ÑàX¸÷bÝÿ‹¿^DÇòÖý}wQ^­|uÿÇ>$„?Ï€Ö*›È*në-8í…Zbò„¢Æ`üG¢ßœ_ë£Md1Þö¼ 0½á?¢gô ¢¼¬/Ú‰)ÔŸûï:„ùýçbâ–j, \ßl…¿¨¾Z¦6?N¹dºÌ«ýOà!PÇÖx‹“`Ò]°ªÉå¼ Ó¤ÌTè&ÀÊç•–û™ûõ£‹ÑàW%±ÒK°ÀKy®³Ã/¬ô‰çéú¢¢è¯â€E7‡è?ök…Ð5M¥~ðó¼‰Ìóà}Ò1:ó+Nð1`†S’!ÍÇÞö9BØá£xZôx‰W`éÐ Ä;AMMGˆãäkÉU¡ÿUýþ/.ö‹¶\×`4¼‰Ý›«À°>ËæØþÓtÊÛ…7iŽñ¿q–Xˆ§[ÄŸj,ýÛƒ‹ èuDu¼mLbñbìn+ÕÀÇÞ#gÞSÄk"áŠxã¬4Ü(þ*,µ5 ‚ñ=´oÆ<¹uÁlÕËáÔ¡4b¸ø´,x5KMK9Fõàþk |à^|Ò0½;ÔBìÕý­Õ?¿ØðƒÙWò´]DæBuǤäs +½GÚÏ­bÖª» P^U9ÚέàWP/”¯DÐ)nÒ¸D á̚NJÞìæos:õçÑàæ‚‘DG“³ŽîÞKÁƒÂc¥“1í'ÛùÌõD&+óåix[–Pÿцݿ'ãÚ@m6“¤ˆäZ‰˜æ4‚y¯P_%Ú?Ê„’Ú`Cå°¾Pwòœ?}žs/ÚZ¯/þ#+YÖU³3§>ͤ®ßüÚìñ0/•yδÙ-ÔOæÅ_…¯¬E¾pŠ é"Þé“|îÞÞE­ŽŸÿhAŒVœ³‰×Š??Q‘Šº9tŠŒKGF/üÜ8–îä^×QÚvR}¨ÿØAîø›êŸxÑ¿ý ìßëBÖ*Ro˜÷”§} Ψ,õzôWOè–û½íº$³¯c¡³k@~4[3ãÊŽÒ?ß Ÿ6Yç}W¹éTšúÁt(fÙwÈg⢂‡;ÎJ#Ñïn²SPóÕzÆp“8©"ú«1¦§ÛœÔG‹®D«‰f19è ÕÔõìt•Á>ÉôxO{¤ë‰+‚ëO8zêÈ7´s ¿º[º‚8;¹úGú¡í¡ã>Ðÿà‡3tLôG‚n3 $¨ò#´_ž˜ ¹ˆ1Ÿü£ý€šótm¿ú¦ç0þ2^€Š íB~î€æ)ÎË2`™8Ÿ¿Ä3ã1õƒ#D Yÿ1Þ¸¬û?o¡Y¸„ø@uÎ.oìˆÃôÕ¥±‰»öJ|eå6©Û%üçµÇ0?*²t¦u¼$‚w"К؆Tfs¹› þËŽÿ`FftY[7÷(èŠ1˜Ô}^æ#Á1lðk2¤¦Äów`>šÀ¼Ã\'ŸHÇwŒ ÑìÓªã?–Ÿ ÞÏÅxß”ÌÊɓޥÍyvÌ);¾txϰŸìTÐÝu3è~Lì< ôe9õ3ù»-ñ˜ð %ÁðFà?§aמà\%Éóo]ä_¿¿®­ÖßÊØj_¬ëŸàb¯QîÌ âè$ž‚•%~=볆¬)-~8æã?ºi‘Åén¸ Æ<)6è<3ÿ¼LBBušÌ™8t?ù‚ß·‰ŸíÀ»Î~¯vá?f‘÷eÀÖ{ƒ€=@WqÜ̈Eoļ‹Ãèw_ZEP75DÅ»$ð™ÎaDg8×FòÈ:kZdã þ£^f"ÇÕHüÇ•_1QM#º õ¶ï“æ¶ÂXѪ¦§¶â õƒÓ™ ›ÑÜÉÔ€·ÅÓø€òó g•†õª¨Ët"ËìŠØ 6CèÄøÚ„¾©•5˜ÿq Úgz^GϵFí·dþàpY¥Ô ž‚dHÍ×jµÝ¬®0Úïá¹c0oq”½t©Õ*wØUw2»±ø¸Ä–ný©¤é?5æ±ÖXŸoJ<÷¾³œDþ6¥ÈR.ø…Ô~± Я~¨Ý—ùíáÓãÛ†¢* fo¬ÌÉîË]£Ÿ69`8Õ“þ‰^ä¦ö®7רÜ/ÿ¸~µ²ã?¶Q R ï)«&üG[êÏgpo\诪¹ÏoóÏÑì’E¥ê2yWÖ²î’q‚ç¹E¾±“ùCé‘;Ÿ|i˜õ’~îI¬J(Ç®ó¬hjS]Éýlð€¾[xÉBd3à‚°skàÏc»ÊZ;èqµÊ 惘ÿ¸ìú`W¥FQXµ˜r•Ñ®çõĤÊVvïØK¶vW¬ú±àñ×—ZÉÐï¡¿ ݾŸ·˜˜¹JEèÕ^ùƒºát7ð¦b£ŽáÁ´ŽHúÁŸÿÊ¿ùÉ.m ùG5Þö,à^"–OMÉbÑJvd^øN•ßÛgáôßuò³p¬]äé¡Ç6“áD•á$½Gdô`YÚŸ·ØO?¨§”Ïñ—±—]°ðÕU_ž¦rï•/ïxαò½¨" ÷3÷ó:?~’HŒãJ‹â16CûQ_!3ˆ¢‚µ!ºUêì^\ð«ôæ‚ýÇU­ ý½ñ7y?}Àêr™Oèú5[WF½'®Aü_ Û—.eBØ¡‡Ñ$m"ª€»dnßå0¬p P™‘ È¥ˆÐ&â]­ÔW¼ÈjËQ§ûùÇ¥ùUò„(ò¥<ñqðFIÐï¶ÀŸ"Ÿçj©ÊmFœ¾tŽXl&xð^Ö)K‹,fC¿Û‘SK¤‘¡žwV‹/Íý0<{ˆ2>`%¨¢ O8Yt_Ñt0çã?úÓ¿}"þÆ?o&Ž»Q…½EM¯@þq¬¹Öþ#œÁ)v·ž]žÁޝ¦þcak]LýÇð´œø°Íø›/œà 0”³ªýÊSCýžÎ%'ÕŸV>p§¿{ªÅ§ÀlôS½äçŸüzüG:âçD(ˆ½`ÚÇñ\Ìb¶_^k¡ò´ªaŸ+REwLÀ˜Ö ® 6ÙÒI›^&y:¯è^îô fßÔ'[и6Oöw…ùµK©z¨ BÕËç‹‚h…ÝÒzÌ„ÝFx‘Z(«k³»·àDgÈå&ˆÀÚÁ²<ùèÞ®¦Ä‹Ñ7Æâ·µÆQÁø=WJøXi_Õ•þ%OXå/¢… àW±É?¨×fuÞÔÚé“9Ò°uñÞs‰ò"P3Ó ”.üô2ðª¨ôkYÌœ¿>`d}Ѹ&†YéýYu›Þùî;²U¿f¼7«â÷Û_m'¶SäiÝñ©éTòÒÚMýàº)ô¿: šõ§ýÎSÙ8ÁfàW3ð­™`H¹Ïo~GD&ÃiFTfZ¥ˆ‚ªXOÙ¼þK+ µçùð$ééŸþ%鵜ܶ.ý ¿ªgvQÍðç·ô5ôßÍLü5ŠLþÜjéˆ'ò¥ð=T\=á?Öà冒ÅägJI»¦ÓÈð«j±ÿ¹€!úvæŸÇÊ=ÅõÀÔR½ACÿLÀžôi*ÎÀh²¡ Ž÷ z aÄ<± †ÛRóáýî"épp‡ÑU5´OaUYüGZ¼hs|ˆþãþ#:e§Î¢‘Ú‡÷ÈJ|”^n2õè÷@LcÃ0äÅÌóüIçtwSŒšØðiøÉóæRSÂðä„?Ï›Adè`G‡±Í[LeÖnk–‘=~Y?øJ;¨G4£b™ó‚ÅÍã¯dkÞÂØœkäW}ðxØù%<ÖF²±Y¬¬ÐïÖ vþ`½•h?’\ÍS¾LîÖd­Þ÷§øÌé≅mÿq’ßoâò¡?vºqÎÆ ¢ÿÕh¹Íô 0¯4ØOrß‘ä#í`;2_M4óÑ/·KÄOöÓ8Y3Çx¹¸ Åž·ÒÿjH…3©q>ýwü㘙‚¾.ýqÏ2ãô1Ý·£ß-a­ä¿ë ö;ðÊ×@ÈÆÊ"Q·0õiÁÞÒñï S™D^:l(è×TØÙèÌÏü=ÔF¡"6=ºÎâg¢1>*ÏÀ9½e g“t37“¥&‘*ÿ™jV>X÷nd2Oímd!-¬çì°",Hmîu êÏßpçÏàK—‹g•n²$J…[ÜËVxoó‘ÚÖÃêE•‡Ô‰' þ|ÓøžRñ’Š>Á»Èšp–¾ìð6êà/ò¬{½ûø¥äcÕÕ z;äVÃÀ¯ ´HCè9™œ¬f.Ýѳ҃vþczÞ–ÌK/Êøvjè8°MáÌõîõæëç ƒðOq%koÿEs…jÈ5¡ÿÉG«fÌÿ¸É¼“hö^üGYú·_³ªñdµ£âe.¾5«# ¹Ïo*}À%Z’¼ë/TeüG!º6BuÐ…Àuêg¶áCòã?2ƒØ½¡?cRæư.âýoð¬Ö1{ƒ_wççôåø‚Ôõ%jÚ ÷á?^Ø]éò˜Šœývò«x”z®~L(Îë*Lmbuz»?%~Ù"û`ÏŽ€z¯úŸø Vþ•x/È?þ¿þ# ó‚Ôz”‚ÿøî×w5õ‰ŒjFwØŠúQ÷ý ͇ÚZ±«Z¤¼0Ó€t‘ÎXEß™!²•h+VOtÍzÕÄcº?l%’Ù Ð}R)Øš»²sg…¬#OÈHÁ¢$?¯=œëL+_€_œ#;ˆµk¦âã Ècà<[È’‚_¢†¸¾üpÕdbüyiØŽUDo«ÑƒÚªÿû„¥m…uŠ¢JÂûÇ&Z§jy±Ølvû.§h°ÌTN=½hÀ9Å'¯Dö³ ÏÐåÚ#<Ý:ó!¾£–ªGW&§ÓÈjrÔtr‰Š¶z]0þcœ ý3IÈê¢ÞÅÙU¿ŠŒ†³(ÈL üG5ê?Vb÷2c›à‘6°¿ëøº…àWË_ª¶þÜ“sO‚ÇYª )gþÇüÇM:î¾Tg‰ÅX…ˆÆkÒwÖùƒ™”Ü¡üzoðšÏ?yÌ„Æ+騫ܨ\&Öá¿1çѫĩõXe•¦2¢†=»¼MUµ"à32±G_VSV¥üüG`ýÕv# ;:V-E*)_*F¡ÀÊ1¾â5Ðýîiøþ¢° 5¨©hÌ÷¾À¿nÿX œÑÿŸÑàW%a¯vš Á¯¼LNŠùµ¬fäH¯áS2ØW¬ÉTç-W#àŽ „î ë1msë¸]ó±{±[Ú`}'ß½Gy¬ø Pƒ;j¼¹‰î‹ö ó£ ¡0že÷²n‘xÒä,™bVóÆûG›í^o~ÙøÌ[QMf~m]ø„<£É?òQÿÈÚ@dÿ¶" –y—ÍUȞ̪%y²Z¬CXö§¯ÂÇè·„·U?jZ[™Õ–ÛJÆßÝKýsô6;IåàPüÛ”Ws˜ < íUJæŸß5ÃËCiX Ä{®ÛœÖ1¯íD|È6yÖ*ãºÏdÞk0è{™ÇNç:ë’ø8)Õß•‘‰¶%ñ{y«çʱ~õ/M)ƒ>ƒ?öûŸüõžV% c®7  Æú½ï%ÀëXgü!j‹‡º“í-bþyJ£°1ÑO¿{á·–Û¢-Ça+ `i šÍÄw£þÃSŒ¦ÿnw1‡ü#Šû~†fáÎâ.x¶LÂ=Ê Wq ž7þ£"u<ÏDn¹Y† ¶Jíçµ;éôÏâ<‘Ö="‰V°¿ùT}¬_^ò!X±‚Ä>¹ÌÒ”UBÅ$fþù^øóK03›‰hó Õ&æ‰%lK,ýý²´@|,³S(üG)º[­¡ÏÓsø„ °|ùˆra¥û€hdm þ< Æ(lmWQ2„Sœi8ZFƒäæä¢:¾ü*-ý¯¦`›â?Žà Vùu]™@]b)ùç/•vë4/]À!_!KpæÆ"ŸiEÖ°æ|;?ëJòL÷ Ôò¥ÑDcèŸøG°úÝlzqÑûÍ\U𫃜]Mø2dlßY㜃ÿX‚Í+«˜Ä·ÍåÎ\%/«Fo²ŸïjGM½@ À̷ÃÒÄ"¬Ï‰Ÿ‰&¾šjV@÷´ÄOÉZTíâaGõÙDáû~åe,Ó±0qYoHÌSNÏöû.ó£âl÷±_Xe¨¬hå±6í/´¹½T?*ZƒFq‰È âÓìãOnæ”æÃij–‚_•¡Ûkmª²/‚ e£ÿ•ƒ_%„¿Šx”ЇÏßEÕRÀ«vú'ömuTâëɸ.›©Cô²r‚7 §ÿÆlòJ¦çíU-ÀÙsŠßQ9Ü ßÁý[~8Ÿé&Ëà?nKÔÀ+¬3ߪ‘ôßín Qú›:ñ,ð3è¿;År"¿ùQ-PÌ&GzGM»‡ÒMÿXëºÖIŸEÞ|¦•ëd s•Úbµ¡®¯^Γ>…Ɉí·Õ¡VK{$ŒÊ>N¯®V’ɽ£ƒ¿¢z—~ÅÚú´ Œµ“çङ’Þ†>Øø%Ösææ Þb?5÷‘ìí–p%EÅ{Éj€â¬xÝTôWå`Y×}~õý"V¤,ëQMѸ¤¶ú¡ßoÿ…rËǪeŸe¢nfTËÙ¨¸7ñr‰¨ðŒˆÿøÆ“íôÔè¨F›Ýþ㸾ŒÙÉÅxža9ŽÈev.”V©Œ¼Nuü.g%úïÆs%å;Ž«"®‚ôo)D_”“Ä/ËdOÞñm`¶\ðÿ—>ßÓšˆä_i…TþÞÂëkè_2—ü£ªpŽ:c¹–ƒÊóúðçoôXº¿>/4ë^Ö¦Â*—ƒÎA佟ùQé…ú6ÑBöôË6®ê¡Á†ü¿)»8‡•ñq˜Dx„Éò}bÓù]úŠvr'S&2¹Ÿÿ¿÷ó§‰ÔIF–—°—±ïVEAZ‚©yN©k0kô/)$Å\5!ý¯ËêDð°¤p ؤ–àú¦zæ]gê´cÂ;$3§…è?|µ&fLú·ã-•ÉC·ß1 û•½”¸ÀJδ6µ™9ö'hÀ9ŸûeÌ;øž©\¯7•$£xûÚ‰Ïõ¨ 6½ÿq’] ?™‘‘:«_Uݦþã…ÌÿZÿ±þü“lK¿âËfwø…:æL,€öq“ïÚDö1‰Ì„ªwô»ÁÍ Ë®g5ñ‘à’ÿ Ú ºSŸ÷ï=Qþ!ú—,¶u–¶œ:Àjëñí)PZšØàÕÁøžÔ “Kyjììxe`§ƒ¨î躓 $eýw¯Ã Å2VGÑ›ÍÁ¿ì%Cì#¶êþÑî?'ècô’Sñh à»§Ñ=ê™Ù5@6t«]¬ŒLuj¿²’Q×ЪB‡‘rð>ÉñMý©Çî£:п$h^˜˜þ»yðÜÉÉf<`6f˜3ƒµõç«éŸXÿQ5ÑU¸–êÌD_KíB*´MÐóöS&xái}[ §{›ñNæÞ½e‡CQV9ú«qÖòhÖXô¶鯱õé9ºº×°®³C§û.üÇbr¯Yfç ÝFûËü MŽÿLdqм¥6ÒÉc„5ç‹M §°‰n!«Ôê?îÔµÁkN€QzÅTªŽt±õ¯ÿ¸†~×›ª&ëÕ'›è#%Ýå·à×"¢ßÇìøvX4Háø;Ы-ùÒ-®¼½f$h …·Ni.t?Ê[ô‹ÆW¼dpæ®VQú'Þ0÷¨æTkƾ?gKjצv<¡ŠÆ—ü#,Æ>«)`Kò9°0Qe+ÙÍ}~ô ":*•l<¡_UzzygJGeòùLy_â´-u2šìÌWO†Ê8>.ºu•·Ùé_RÀ¨:ð—è_²þ|øÚ4bœãÖAWxfwí§þã5j³êöúïfe¦m=û„ªì G¤žå3Oõ¢S±•ö?É?ÞпÄ?’ šõÿ­ÿHHþQŒþ‰eEQñ·^ƒÓöÒÊÓµª¹Ñýnä_ª:Ý·9Їýš3U©K¬‚¯È+úgõ¯b¬HgŠcÆm=¸™B–ô›æâøÕ6YÛ”„¬/ƒNÏj„Á’…‘e=ú—¤IÝOH ¿ä7=éDE¾·xE$ÑçÜ¥)ÊÕ3ĸ—ð( øÝ™ üêi¿ÜoSˆMâQ±"âÝŠ%¶a¥›ó¤¹ˆ[€ïÇSÍhoªÒ—¤}ˆþã¶ö§…ê;éLÌYE?\dÌÕñl“þ¸³³âè¶vwWuÕ9¸»»»»»îww‚{ðàîîî60 îîÁÝþ·áãŒ0sg¸ÿs¿$OÂ00uª»«·¬µöÞDù@vbŠ”‘ZD>6 XÎg“Õ”Ú¼¾XÊ Øh æ‘‹sž;êTk¤W‘—ü¦“ºC6ßÌŽÏü]&ß;Ëüól`_ûÀ€ã’ %ÁôÅ®o£Rþ wrˆX(ð+/bë}܉¿ñXQÔ™E¦c+lV¥ð=[š‹¿ OT½ò[<ñ?Ô„Ÿéôr‰¬xщDhcñÀ¯éKܚꘟ7ØËˆJ8§0 km ÖÏ¡ Õ ©@ÿwÛm@„fñûØNÍ÷ïoò ÏýÄ*si€%Ï_­%ÿH‚÷˜ÁÞðùÇÀ¿/`ßÃ3ón “"²ê+° ™õd<”µwæ¿j/•Œà,æÅÞ—¿Êˆ>k4§“§nR™áPæ¨ùXäHäM]kðÅ©ÿX‰K‚xxÙpð+|³ùÒߊ­DDçÉF“R…Q\ù`¡—À-TšŽ^êlÊrT>΄’VäIe”º¸FeŠ:Ž_m+œ aߦÊ\ …÷œ§€œËjÃÈfZ&%¤~pÕtˆ¤GQÒR§ÅϪȕÇâ¿#Ç{ ½=‹=4ºš‰Zr*šªBÌ m'Ášöb:ì@¦bLG) •ÔWwW>£%¸Ñ>üG<¡€Ї߉nð¬·Ú¼‰ÿÈBÍH»±e÷’ûì#ª<ŠTÄoÕ]¹È?Ž‘$D¹û_÷”I(µùû©Àœ ~Gm=×ûý¯âó …x‹Þ«"ÔŸ§ÒñÑìnu s¹ùÙŒÌ žh¸s£û ¾†•HúQáÎh~â¥ßí-žüã>üùœoùG,ˆ¼Æüó¸î ÚK‡¥jæO£‡ûõçÜȳ*¸£QëSX¿Ñ{‰Á6I0MÞj:£ü+ú«d±1€x¿ èSF|Ê»ÙÁDüG"ìí~üßîâb¼Ý$ác®ôÝØ·¯ÎYýÁ¯JÀöŒ)ˆeOtàÌŠ-‰Ç8GþñN—C3T‰ ò%¬J½‚ÿi€i‰½Œ)3{ÞÉï ‡¦ÿnFÎV2ìÙ@±¹øØYhckLÐña–ócï?‘¦ÔaÀ¯Òà?VÂw¿e¿aQwl5¯ú[q´õUŽäž½ÁòÌ'ãº<Æ;"ŠÕþN?)÷vúÛN ~<«® ÿQ ªùÇ3|ÒjüG›øÕjY€U®ðvuAÚBýùh=XWÃ7†×¯É2À,¦æåzà$DÑ­ð•õɤŽÓSKêîê˜ôíßþ€™¨Ó‰œªªd3Íð§ì7j}U,&Á®¤÷ä0üG!¼Ò_x¤Ú wù@‡v±Úøý…xâ—¼-s dú-±~<,t6lýL˜þþ"_0×\ËJKÆÖ•«º„5+‡a¡ûcÅ&‡ÖÆæ9ùÇ!ògT|ŸUDv Rµ†¾Ü‡e,uÿ‘Šw/:×Õ ÂòãØÚÁ ÏÉÉÏÂ,í@͵‰¬á‹=MfTYÝÌ Š 8£†ÙqØÃüáT§œåì§›C3¡QÆ:Um«ðU“ù”¼t³Á€6â?F_éßÎL]ø…*ä|ÔB¼xWò‡šøÉtê+ovZô°3ˆ®ã±æ^v7 ½Ä|âˆAðýÇYk¸œCþ¶{œ*ÂïGl‘ }TCê­}èenÓUo/Þ¤¸^HdÿÙN‰ïèÃâèw]2G€çùƒŽÿHÀ}oŠ‚w§o“3ÜøéÌüˆÎ\¿YÔs'%kHÀ5œBÍå¢>ä³Ljbê²ß38›|fþã=ça†*Æý·é6²Z¸P¾†^‚»ð"Ma>ªéúøÌÄ ¿‘= ½U­äº{˜?8[fD%ðÞ†h® ÷„2ª¹n ÿáv/@¿ûÍÀXvÛˆnóO¹ÒFàaã©w1õgPÆÒ÷}>FOð à‚¿ÁÊ´%Ëm(Ã3g|õ‡ñQÁN¯êSQÁ5 qOúï¶…a~ANÖ…Ü-ŒÞij{Æ;E¿ûÜn„Æ­£ÝC³³“0Wþ¼8óo æþæ¦~ð°ËåÎì:®?¹ÝQÖê®d¡‚_­$›"ÛúáÏçÓÇ5¸HVÞ©û*QU¦†Ð‹ÿqL üzîf¢£Vaü[*A’6EÑwíT·– Ži¤JÛ‹=þã¸9 ì´Öc8úÆyòú·Gr;ùÛýVwKçÞJG÷îd˜%ÜÙ©MIÿÄ[D…eWÐÉðlJnñû€ÿK_?7²ùéØ~‡iR!Cq~Þžižbþ •Q4 þ£§u*ó£jY•¬iÖ}¦þZýÇ£=ùGk8L¿òéEk¼¹E,’ÓÅ|±Îú$ÊþóΜ·Ë<öv]ãäKÙ”ùƒ—dC;…L&ÿ€WM'¾³¯ÔŒþWÿˆðaUÖ|d·&®ÉJýÇ=Xfç¿ð¸sá?ªù™iøZÎwµðÂ4Æoø`·âGLê5þ#2*/vBU–¹y1±¹ñí‰ÁúkF1;)øÜWù‰7y?{ÉFtž›7~ÕÎŒ\êœùN_tÌ=™\QÔŸUùy—ZEȆcýÎÀ˜D…I jeì8¢å0jÞe'6?<˜ótp’Êðç·~^æÛwöÓͰvnµelÞ½HT66få9x`o˜®Îª.iLÊyršýØæK¬;Oæ43LcæU©[tú—”‡—Ü 3YŸlËé^²Á¾%†Š§peɲÿ© M™©wMF»+ÿ1ýî ¹Š÷p ,lrX³X­5ƒÍ`p£±¯.vzÔB3A^’b)×ã?Vp7wãë–ˆÍf@îò<󧀎&GÝ´KyËpÜo/‡f2ƒŽ¹9¨|¨¦K‚¸üAÆ“fz4lÀ45›ùƒ§¸%²î€_5e½é(ß¶aÃ/‘¯EÕ1±È3©èŽáªªs]Sê7q™É–ÎÓ§|¾Š ׻ϼãïIo¥â_ömž­£¿ª ¦øVMF¿›ÿÑfÁtoÆÔÑ;UA:<¤&6,Å]ò™p?£àÏ;ù[o¨LC}‡'דqˆnð›ð5ñ^é© žˆåEÿ«?aû»€¶}ýì†gXÆ—È:ʰ}õø»¨?Œç-EþQ(¥—L@þqMÏb~Tq°¿f¨›’‚ˆ¡Ï|¼^ê.î¢èF®çB–JݦjžçNeþÇC&‰8þ£“m·‘^LìHÿáô/9ªß1YüÝPÞÓoý*j±xä!Nÿö´Ä oɦÙq¨?¯ê¹Þ‘æ5ŠhÎé_òšúÁT76c6Çvò¢zƒîNæÑ™a;Þ ¾k@ýG—­ÿÁbøpB+ØT/bâÜGÿÝÁ²,QÎ ÎéjiŸp Öñ:Í©q¬ïêâöqÇÓêËü,îø •¹©s¿ÁOì–}@¶’çÊ¥âu# ¹Á+¹ÊüÁ€Êܯ¡à?ÒZˬTÌübÖf͹Ft«þc¥õ×…àð÷çáÏumG¼u : åe­UèwûÉ™ÔḴÞÙeÉß2žßW° Wà /’3Œ”áìâLKô’¿Ûy±ôå#PöDžûàù±@¾hL\\.!<þ£/ì@}¬h1ô»'Á4îaEãñžÏ“ñdE?=Yè?ߊÌüókÔr}Æfniy‹ålF\H€‘dÑè€è9¹Ý=XÿqÚ¨ÅÉ^.]äÊ£AnòñSdI{$™‚£¯\‚½ØóÍŸ¬fïƒÕ_·ª\MäM¹ dž{˜†óêÂ2Óxήü*•º‰=­CÖÒ¼ÄÅ~6¶˜‘±Èñ©ÙIJð«\ë&ò-v!»é¿»ŠÝ@ž¸‹¯bQ=V4ÐÎ Íú¢yZR5ÿá’äÌÂÍM„÷‘ŸCŸ´Oà<Žzj-Ê除:29ÅÎ@üG#¬˜)Ï ·ZKd±„üclQmVˆ—:žûwÿ1ü*³ÚÁ5°àU?2sîOõ{¬‰Øç"dÛá$ê€ì µ“cìTítf¦.‡ñÎ?Sücº37xÓnr…?X#?‰ìÎbôW±@KSà=–Sÿ1–s<ü#®žR”Ö;3†¹°Uvð+X¸©ä1ôüG æ×^÷·âzË„[¼ÆýK…ÿ]…­{é:'g2ùÇGª/2]cþ¨2ýKZc}›ƒæ¼¿rºôü­7N¦Á«þÃYÆUlÁM‚o®{ª8ô¿š½¬OÐMðoÕŸi%¯¹Ëma¦¢èŠÍ~™Œëç]ÙŠþj ‘A=uŸJ»Îª3¨ct±#À›ª“,Ào$¢â-*›1c­þcþcÙŽ¹×˜:_ÿ1ý•…ŒHœ×DO°›Ê-öBõ\Ÿ%‡‰î «|õ1WX:ÓÒ­Éæ6ƒ_¥eûÄ¿Áü~ú—Œ6¯ 7tUb °: §*%>²]Û7¹®ÃŸ¿£.¥6þÿï’«™+ k7üyTr¼?ETMjÚ~¼&{Í™b’üx©çt­¼¡Ë¹ïÑ¿}’N b7ÙÕÞ5Ð}ÝÇË=’ü£]º ÂÈ+×}Îü"9tšçøØCçÇúÿ—¿^bV½/}Ç(lþÚ\qß½%DךÐZÂü¨ßÄ+³9§ký¯²X ¬ùt1ImúÖùþLÐ_4&Á*·+Iƒ®fýwó[[à™†Ê!b„˜mݲËkàkV±}>2cuæGi»¤ùÙÜoE†‚? ²Î_C™sAZê.lX¿od Þærèw÷¯^¶GÿW²È´²–þÞ±Àw–”ùQWde<ÅZbJoú1îÓ±±¤‘aÙ^ØÑÕoà<éáâÙC‚õ^FV¿yòŒÈº8?7^33Ñ7Ê)òúÕð׳±'#ˆ]ú€_Ç ±jaõâÞ]`o‘À¨’À3$ ž†Õ{‚Uö—9ˆ/½ÌŠÍí?Ð9žüBÌ´‰ð·srò¶$OjI·mþiòÌV E¯ðR‡È@`±ÏgœO’yõå˜ÿQÜ7w¿w+^»!±Ýi´ÄËíW¢xŽ=iNõÆF{o8Y×stlmm¯@üGã5רedÚÅZìÃ;œêD\ýk6Í΋Ež‚•J*¶µ¿zÁ¾kïÛê5Ëê+Ç“¥‚qöQµÔ­o¦ø,ãsê&Û¡ô_ö­?Ó“ë ¸Ût*yGoôZ¹G=âXýYû¸bÐ3ÒÖçð§¨U*fWÄ“-òø/ò) ë;Èë¶ 7<¢¸_1¿v!=#Wèdî~ø·3ð3ƒé7oê°òÙ©& ãzïœA0šüœÂðÊ’û=Wüßûâ-Ï“»m”ô“üÚ.Âà d²&ZÅïBZõXsŽ‘„úóFø·•"È©ØÊFcœ¸DtZ™(•{"ŠÈk­1§‰^r6üÇ:¢¸=»|ÿß/®a3w’ a~mó9Ÿ~¼ù©ôk ßœ;„ú«6æn“bNÕ#êEÛ_ #Á"þ.7`£îÕç#™ÊªÙý¼þwã÷waè¿ûTIX ¶Øþ&vð ñ¾KÕ%öG¬rŸ7¨,¸[»`ýÇq# 3óÁç"Áþí"2OA÷wø<@~XÜí`OkáþFÚ+±ýãE¹`îb«4ˆÐ(îÝ-ò¢XÌÌð&1@éû€š‡Gt’˜soû T²Õy7»Y)zÆX`¾—‘AÕŠ`ÑV²‹ç²ö|;xðE2’:Tk¼'¦:®²/êô& §6Ñ¿$°^5ÙÀ¯ZÀ¯'%3(ÇÉÁ­©v9ÏOï°ˆ¿Ä=°ë:ßøó™d 𤯤ÀËÌ Ä 4ÞYÃäV›þ¿ä©¹²õßâ˸d0ia<´Z útžZò¡ü.¿Zƒ×s4Æ'Ùíf±ñ§é[@Ãfa+²Â9“ Õ„-6Ñ{YôQ÷˜…á‹ÙAýGøóZT¼EGA4}ìßÌk)rqqè_’˜l<¾>üt ýÛ£ê¹Ôæcšzw*6¶-çÑõçIñgÈÂîÄã™y›Oý=éyÔtà]øŠ‡vîÒòhc8#Tž&Æ? K{Y•ƒ? Ã/á]þ]ß…ÖašÝ;~5@V¦þüÞ»{ØhÃèÎ0'õÙãkÖÊ2Ô‡úóÛè—S-LV½9Ÿóa”éûÜãk~zd&Ñ òÈZDMQ~õ“iìähž§'£ËÊ$øø„¨Z7t%kê‚/É£OR‘؇îÞðä7Ѭoõ¼dcÍãÖ »1A{»™^@õ×Óœ(v³ÀŸ?З\Ü‘éXhÁL_GðjÝ B;æGÍ'ÿÈ&[S/öcÁ!à ïÙS.'?Õ1ÉïË“µÔ§Þ£ U’a]ó¸Ëñ˜ë¸ê±ðÜ«©ÿÈE…ã3¬ü>bŠFhÔê0“ûÇzGÈ?†É ¡Cˆï6Ë£ôßîôCÞ†ÿ¸„J¬¡û¡{‡«œ{2õç9ܱ©~ÉKý¹Vq£ì 2q ëaÈ_›ñãÓÿÿ~}Hÿ«pž;sýU`ïjH>#:ºÖÖb+þ#´Õ˜5×À¤·êÑSñµÓ¼’E<gøÕ1ì^=Ø_&V‹"‰5ÇÜ)þfþDZÿñÒówCòÅoâ-ìãfò§CîŸÒ°››q­{² )‰.,;c°³\¿N:Ñ¥€¾ÍÜÂÏÿ«¡¿*kÿú1Žüc(±õï¨(ÐUër¶F,ƒé©B6³…èc+yÈeê’LÞKÕÇJ¦j!§ÝÏo·Ö3jÃŬº±ƒŽª)7V:/‘’?¿‚5Ï¢6³Ã1Ä.È?Ryž}à[jµC§<†¿{‘½}•cÉ?Àa8ýw‹ÂLá~ú`¯ÃªóœýJL¯iú*ùý¯ùÌXmF‡‘öÕJOþþ£Õ$‡‰¯•9“6L¼ÛYPÀu`ygñžiÔBôWaÙe³*þ#2Ù€“ý]íªƒÿ*…wÛ}EÞýÆXM|Ö <_V:¹Dä™­Äô6"!lÆš®ág¢Áï@Í5oÛõmlªqzâ öÓ]q“¤¸›ðJ'í+àWš?¸ýÕ8NE C ùÈMOàNÐq7>øÕ4SåÑïV‚]XÆŸ[¨µO¨!Ô¿…ÿ0ªŒm}•1¾q0K°¹^øíö4loz½FÂ:¥)ŸEý¹ýK¢èÍ nɨ̻‚ÿø[Åàxèß>üª'ˆÚNÅJ”N(yÑû,ÑiÀĦ¡Œý|‘þíUu]Ißà, ìóuðœ£h&ÒùÆ©ðòýg¤,® pÞ|ìdpûÑ_­†ÿè¡›0¿ö#Ìr"´W«a¥2í*-õ;¨oˆší63Ü_ªîô/ñå?Žýð PãݱžÌÝÈŸ¿*/Ýÿ‘HÓ[é—˜ìéu*uuÝ á±Ð²9øUL½_ü¤u”gsèßîx¿Xª‡ÝM¯·O¸áŒîÐx‚~~ÕÄýÕTLw!òËþ‡Gu;2ÂÖ*’Þ‚oM »û©Éí°v,tTýìg*qF|ÝÚÝÿÝÍužÜržcÜÊê?&ë<—ϪùÇ´wø©JvÔ|{<þã üù"Ô‹Yo8ˆT1WN÷2W ú{Q‘sW÷fÇ£‰òšd!Á¯¾È˜œ»vŸ`ýÇi£uyå{üGSEÇ øóÒTEôædæVíU0°à&á·°‹€:QÿwÍ0ÆZ°÷Ø­Ñ`kkmÿ“T':(Ë0 …óÁ.z±Ëëpµðµ‚TÚm4–š ¨]_ƒeN '¿Ø„lf „ƒD C@4¨mä×Éu‘ÁÃ2}®H øUV³´hŒÿHÆT <Ü÷|z)¾ºcŸ"’{.†‹Ïì²1ì…7èÝBüg2êøcóÄNâ?ÚO¬±ðçIÁ~š ¼ ­fðÿ„±øƒ ÇŸ4± ÷Ï%ÿˆÎüó­<©Í¬{ ¼\ìþ ¿ÚfuÁ×V³3¢¸:Š8ÅÝ9ˆ7Ùƒ~Õ™ J’…n´¥t^½ù ßrTçþiõµq¬ûÔµd½¹p[Éx©Ç;ÄÁ,¡Ïw Wuj¼`‘³“ÌÉO­¢ƒ_WÑɈ7š×'*‚Õ]I]ÝüGøóèðc¨¡þ„ÿ˜£gªnôO|ˆn Û5GÝß …~÷±¼í9zgàÏ'Ñ6Âë65«+#Ùçé¿®%YÉ‘ºR‘û|е+[G·@9p½õS½˜·¸ýÕczÌð¬7’þ»€Pì®ð5ä6û”ÊKÇÝÜà_×Á—²ƒ_†?/@ÿ’O OŸ©"o…¢¡wc!zz‹Ypõ=×;ƒú ”:7ìßCÛ‹ïé®K?ø‰T®D¿vÍTq<ÝFîDdµMæ ´³L&ð+‡‰‰£&‘»ìæÎwé,‹÷ør•)ÇO°Ou™Oèƒ'ZÄÓÅŸÕ‚Sðóóíeÿ$‘ô`ê?²QÑ|èÜÂYØß]T8–Õçx2q±ø—Õ¦¯ï&›'ªû[oˆL…ªà*1P;¬ø1øŠ‰°)­ð^I@`Æ3¯fµÓ ÕA'ƒ?Ÿ~U_y›yUðÉ÷üôª>`Ô6Ç㹋©ûv3rÒöD}/Ôæ²&Òf¡¾ë*sÕ;ÁÔ¤ä¸UGð¿Ïì/..ª½Ös¹NÿÄ#< ­&€_czÃ#{£²¨ÏãêN.xÜUÞžùQ¯ÉâöÁÄr½†{èŒnÎz3ðŠad?úÝI¦·Px¨¢D%oUrÛmgÕ¡Ümé€2Šú[Ô³ÏGa\ÿTŒþ\Ð'ÒµðçÐÄÜ$,Œþª1ñ î3W`×JÁ-ö²×Ðãõ°NÅ´ÁI(¹,Ö›†§DÿÝÔîèw·ª¸îD¬^]Ê?´„=ÙÇ;®ú(þ ýîgô»¾ùÇ)Øt_oòãúBö«4™‰é¿›Ito¾uû\j¤¿úÝšÁ´@ý‹þÃËÞ˜·½ lÀ&U$·Ö1§«‹œ¾Ãºb¾Ù¶þó·þ€ÿo;þØAþCtxëõƒ9d–oõçYDoDPËwCõN¼Ÿ K}Æ üHu5ˆ]–’‰1`—‹“7Ì¡ÿnéwãˆmâ ©‡à8[ùùODÝõXõ5>¤'ºŠ˜x©26?£Ý?Øüã£yÊ|©Ð?¶Ç)H¼ómGlaøóØþx•QXTjƒíŸ¸ÚjÂκs\ÄZ~‘£P1ճ驺‹Y§j"ÚÁXÒÏ w“ð›Ùe=ó~·îýKrWîÂÃfçóÓ—¥ Qþ~Þ§õXþhe¿ðNžÄcm&ÛY˺Ôj™#Pþ#•ÙHT"?IÇõ„Å?C\ÐŒ¯žpçÖÛ.9T¼ÄJ5"*^ÿØÿ“‘û™§:ÿ1Ĉ.æË½ô˜\IA 0Y\çP;Ür& …±QøÓxª8×°¿¹‘Óô‰J0,@€kÞoý.ÿFiS¯p€Ø÷§É—peá¼}ôS™éŸø»Î¢gÝÄx£JxH½ø$Zúj"¿/Ùº! ðÄ €o­%¯˜ ª8¬)´ž¢©(Þè¢òSèâ Ñÿj#œMJ"ò»(|W©ðD¨ûÍþN÷Ë"ö9†EË@Å]5§—¬³\ÇÇ' %æ}s 뺋ùAª 7l~õŒÌ᧨£¨áo=/™”þ%Wˆ¦:¡>‚.i6¸¹Fþq=Rþoþcüƒøn*6†ã?²c•jÛ]˜_[‹j•£àF)Ðï6”·éß^ DWÞ$೫.ðîýNÄðöwŒG~y‹(Ýé ”2F¦¹äÍ vã÷ÛÑÅ~ñXÖÂìÇjnÇ€ãýDg"g~­‹Êµbt@LB¶œÕn¬ÿxnÔ ¶Ÿ¿†üË÷¨ç; øÓxþçd ÑÁ¯Éi3±¤“­¬ð»»ÕVtÝáÚo;ØV°)±9C±)‚ˆîûÞa;E‰†)™“°×ï~¾~žFÃÆ/# Gb¦4´ævj–/¡ÝŠåù€Ý‹þʙŵ‹;G-–)E¼@žL<³‡hÄ{“[š‡]ìc…ÄvgÀý¶Û;™?(á‘«Ã^lg-g¶pVîcNÔ†@üÇP#”Ø ©—¡6¯->)¬ZÉjcÈ9Ú‘mD$skM{šº…(–ýÕ>ö7…(â½Tx™û¹NçË V]9ƒ|(—Ã7cŸòŽ;«ŸÂcD¡þc3±t6íd#yɪà?á?&â?Fп=æO•§1Á¯¢óÔ2ƒqmÄ/ !w˜‹Z5ž^ î”Æ·SÀ½ð~%tlÊþ:cz.Á¡K¡~ð õuQí‚™œÎ5$CÉ¬É æâ?þ4>2ÿ|W¶ T%ŒùlþéoÅe–&¦8ÍiHâ“ÿý‰þ%u\ú_õbîCØàyÌÜ€~7—öVðìàí¯9\åI÷ P-5Z&A)}‘gÙ] VQ/‡ÿm©‡ROòËš–Îæ«àSº21+¶ë"ÌT#ø³Ù qqôîñ1?õ¾é¯Bƒ½¡gBFÕüê¹Zª{’e5Å/ Ão¤Ä†î`x3X–òT뽡²f÷.œRTÔ‘ìÝž'2Á¼m½B=Iõ³;èvO‘ž¿]É?ò€¨mqNÌû»çŠì.o~‚Üf÷þ‰‘‰À @ö±ËÁ²Žçþ 5 ïP^b‚{ªˆÞ®â4صÞè=šÛDä1}\9ѧ¡¾$#?«xäË}‚Øí7;êbw÷ä'̵ԟWæ´ÏÂxÉ—:Ÿû&µ7«¨¼ÄÓhåÊ ÿñVw"„OTµ;Ý´’»îeƒÅ*AÌNmýWüÇ'£€éÛyæ ÓÐÿ·øUxæò¥²¶ZÙEKñˆY³žÆJ†YÚ”äóãFqugCë,D;akÓ7¹§ì¾ ÿñÔs>BòEb±Ÿxr3 ÆÕ‘ge ª÷’OWE9yÿ‘ØsBþ§[ÑÉôÝ´v¡¼iL¦°Ö.EÂÔ!^ƒaY‡âø ñþ@º¢ä ‘þ*Š8Æü,Ô},Ù‰ç8 ¦óªIåùliAæ×FÄv3-ÃÀîãêŽ#]ɘû'ÓŠOV?ð«2XŠud …ñÜí¹®Ôøˆ::2ëxæñU¥Ö-+Öy÷þŠÞ®6 Ë*^ìŸøóØÖ-º´cãàž¶à?î¢ß Çüj¼Ã(Pa°€ê²ñàM.j>"‘WœG/vþÆ æ¾ÓüÇßéÞl¹ì¾°F¡Ñ§M%Ò€Åï ÿĦ?¸Ð30¡=®úh£2ê¢ì0Xs˜öGø¯£äØ£…Ãpúþ3S&'k{FüÔÿ»ß¾…WësRDélr:˜å¡t?<¥z0¿ö¤*«Z L'|¯Þa§?ùÁ¯ÍÌ¿A‡{ó™õUi5uâ&5•ºø—:ýÚ€ÿ‡{ZDzêBŠ =‹ wSiؽízNeÇÞäÙÜ0ó©uŸ·4Œêo7Õ©ð®× ¼)*üû(*ÎËaOÓï0k¿ŽçÎ뚉î©+§ 7>x.÷&ýó\ïÓKØØ¥’Ä—aþ“Ú…±øƒ˜—Ò“*É”®pî¬h®RãŸÒ0?ê0ÜHXr15spñ¬8­iTKÛïüÚub‚üƒ÷` Ñç2y‡š‹\Ù1ú_-Ô¦»üþ÷y²?`Qòƒ_5¢þüˆ>µX'ê§÷%ýK|è»rM½ÒŸðká¸wÎD·t¼Ùû<ùÇeú·Oµ8ïS8Ssä ½ÓU þü e–ÓM%²û¨{SJ:u—¦ßp)ô»É?fÉþØžkvreËíž+þï}ñˆúAߌãœQ¥íÿîÓ?g¨¨ØnU¥ÿÕ3Óa›ü*ÐwX¯èê{ä—–=m ÷À§þ¼ 8½Kd°V›+Å4ÙM,K`ä}Ï[HN*yΑixFà;^Ê~f|k³,DË¢8þ#«H¢+oÉü/â–þ¸vpˆêåìS>â½ÚE&ò¥å`‡úÁÔDà?òƒ`æ§î8¬ªBrÏQ“qpNÚØÚW²p°þãŠQ•¾„é祈½×»åÆzäÇVtጽÃΆÁæÇ VŸNîÔ*XÍÙ« –j$~ã&¼„30%¾(5üçU(} 6èÈVd¨þ|Vmú•¬6F›Ÿe<µ‡ûF¼‰yäuðMÀƒÏr­CÑESë°ÌWàg`›×€Ï•¿ 3'“ÚÌ&nF¨ÉÄùûø©NXüŒàɉÞÓå&<ܽ¨äTÅØŸ¤_ÆbŽü£)¾ã9úY×°¥‚äIÞT¼„‡ö_›J =’ÎÿN‡ ߺ‘W¦ >ña„œ‹Éäõuzk÷|¬é]æŠÜdoµ™¥tQ²=ómtbªûÒw êzøóÑ eÈ—ëá?zb–³^gTféðq=Á­Ò1Áv68ÖrX–~h— SÙÞÿñ‚5íûk¹À³¹ÑôO|`—F›1œùQý©‡Š§–¡R~„†¡—> ï¹:ã?®ÀW¸àNә졾¯[pÛà?r6c ð¯ï¹Þ!æqa2K­ïÐIõ†3œ‰ýð]{`:nãÉ·íÃkÎÕŸôzïFÁò?-<Å;RÄΊÜ·~ÐÇ\C][üÇ|NýVy—i†M\¸'ÀR]ŸÍ}Í}ÉÕÜý7SDbÝtç>ÖÏ9õ[åÞñû¨?ˆÃ¼E±ë[ÉýÞhüÿÑÿÊÁ¯¼­’¢õçNwœ%F+°Э*qUežÇìï‹óÆÐoõƒE‰»³Û3ÄK:&N1'ˆšøib+ýwÿñ÷÷ƒûMjqÿ±Mf‡AŽm7—>èLY[eVêx¼E3øl"—ç„üO«547™·P_&.¯Ó±\Ü©ùÈ.wÁìÅfÜ–9èÐC&—!ш¹õTŸ>Æ{ì÷w¦w$¦¿Žþª–Ô¥ªÓ¿Ä€¥{+ëë?îiÈØæQßòÚ¦_,g¼(ïRaò®0´¯°ôIÔF|rNj=ð«€sŠ^yg+ G3<ãYþrÌ3½¨þèÚY-­8C ®ˆùÇðn•ƒT6Ü5Æ3?*HW P°Í<§~°>üI;øÛ:ôßmHϯdvÇñs°Ï[Qô&ÿ<™äfEQU˜­úq÷÷a€1凎ƛùµOP*5…«8Šÿ˜B’Nö ,n~ þ£ýK¦ËÍdg#ALbÃ쬧ke'§+ ô™çš%ÕTjœÃG-Äoüï[‰ v˜¾hÉ÷;¸˜n(£¸S1È&ð÷òù¨µ8ÆÄ¨ðL&I?Á"p½Uuq½ÿ¡Qu­ÂB¯Ã3ÿÍüÚ€ý¯â[—e4ò¸ø·Öä4cÁø¦£mJBþñaé¼Ô\§z¾óÏ—Ã!;½¶Î`›û©øà•gé.ä÷Ù.±>ËÆd «ß &â†}Qõ¤Ú9;v»cýlúA­gúÑ!ôRåàiÊÁEüF‡®³jZëÁðãü­×YÆ©xL6Ú,røÕtêÙë.`l˜˜žy½C˜»SµÕ]WøÌÆäy3AÃ^¢hÿð­bÞgô2»•TìÚœ²¦¨ë¯¨ýôow4Ïí°Çmð$¥á†ºÚéº} ßsO: Àzʯéá?¾Hßþ%]ÍÃÖ#»2ºÞv#=õþ°¸JÔk$¡¿ú9´ ÅÝ÷©F|Í߉}¶QÍnÖ½Q‡´Gé6–ø#ý}ýG_æ7Ä`…xßß+O’˜ù%Ðï¶ÿºÄœ“ü[<+¯kº~¯w£ËÂv‰¨ð?UT³ Ýçqÿ1ýÕ:ðo/Þ]ÐM÷i*ë÷èk0Rºjºj»·¸_¹j€‘Vqø¤ß\© ¹š°D9‘æ{Û”Ïàõÿ/ýd42C{NÂ𫸞ßýÚçÆ7/QQ±Ö*.š ÃjÍ*KŒ¬ WU¬9Lîˆl^û¥åv“ìãž‚ Ãï,Û`NE§°@,Û¨H|ÿKëÅ(CìC25¸{%ê/ÈéfëŸO~˜·”*Ø^ß?ð7s‰y_œ~ŒíkNt^‹÷¥¤]E^$Ê=ˆÃ÷—ÈHèºBâã,±›úÁè›ð>¯Ç.Ä^?åD|ÇzeGRÕ˜ ›Ön¬ÿ¸`$™Ý&¿ÈwÌŽ>ÇW}z%NfNí'¬v*,tVlßB´ÑƒDÀ87àMílå`?ýxSn€+DžIù¹Tp¤Ó‰ÓcÂìÅÞ/†ç ËPjþÆAöO\lLfþGr>¿žf#Š€Oò¾ÞC=Õ#~í §ú Ÿáƒï\‡eÞ‰w§æÊ "A g2™H4"ÛHBÿ’ldƒ'ðºÕAN`cOÚGè_òþ£.¹Âv6û½p(üG`ý¯†÷°ø{ðóØ…‹üéÿhÿÑö;ž¸2•8'¹êÑäH™Èì¶±M#O:n¯¤ÿîŽ7nýK¦ò3)P¬æN]åþdµt¼JÌ,¤©Ì˜È¾VAÔK°¥ŸQšmÂ+Ÿ&[Y# Y8À§¶œ¨¤W»Œ eú‹ç1¬);Õë2sâÎ JtƒÏÊGýàbüGz°ûÛt¨ ð1ýëm·[QÈ®N‚Á¦Â#•&÷uÁ,ÌÒŨÿè~õtÇ‹úcì°þ£:ÀV¨moÃæ8J‰^·_•séÍeÒoõƒ˜²5D­°o ÖíuOò® E7ÐÝŽ¥Ö¥ÕŽ·ñÃíˆîWÀ§ÄÓÿ œòö£5Ù >€˜ÚQ­U§v¦L»E¦ç}M_AæF¢â8š&ºýw'1ÿãyÏ vïEîMŰ}ŸÈhú—ܵ+ ëíFÿ«]vcy¿”œ—,èkß²¯¼° ‡ÑœÆH·›á cëÄ¿á?ž±í?ÿmð«±È?~Â÷רæôW³¬Â¢1ýwÛ°æ4£„•Ùja-‡­H`÷ý«!øj/ýKN’Ó•C‰WÖ¾,âŠÖ0ô»Ãä ‰Ö30L#è…S‰“¶Óÿ*Ö®5Ó9L»þã2õƒÉé”Ûl(w°¶ôûê=Í}æCñœý9(P[,X]5Œ­œ¼Ž•rú—$§þc« Qþ‘Œþ%·`?a‰/ã¿!–nÃ{ýÏáôßM¤~Çî%†‚ù燌ÔÌÿX$ŸÊ„ÄÞÛ8[Åá?J~ÃoŠ¡¡Ù†ZÈ=þÒÞ%2zž}à÷®U‚Ìc ãÞÍ «T?QÙ_XEI|ƒnó£ê±»²x¸·°k‡°he¨E©Mìöcƒ—Ñ•Îá]Ê{6ƒî:;é‘Ñ= Ø;‹ž(]\3Üë™?˜Ï]ϵúÁôn££ºžÛ+ð6ýxÃ߃úWê?nÀø¾w™Fèëg\_È~ …Â<Šõ—•\4ÂrئuF:+›UýU8+§y2dËüço4†Ñ?±9C1ÞÜ "‰HiÍ27R§¹Œúóåô/ L“ôGÞ`8‡èŸxµ38FoØ7*,S¡®0ì¼"›ç„½Ž··Å<->w¸é‰78©’ZÄ™(( Çñâ¿äx¨Ù2µL'#„`E7øÙuxüÛħgØÝGÎQØó¯0­ˆ,²©šöC‡Uc‡ ÿ•·‘¤k1ýèúÁ DI¥A‰rS}>û÷´Åé•°½Ô¨`¯y¤• ­+Ñó=‡àêâ“Ǧ*w&V/,v̺Š{ñl¬±]V¶3ïqûÖ1ðĆòTÓg$‰®O®…²ûõÊFèw€@ÝæOw€÷8Qùð+ßê»t!3—hÈ=J Sáô.=ÿQë=ÆÙNO܉â!µ_µˆÃÏ“kÍæ’äÅ¡Þd{ þ£“ñÒ,·ó†;ÅcqesȈFÃâ¶ÆŽ„#?êþ`¥'¨]nµ Û»—k¿BL¹C1}­Õ÷®±È1ÄNÿ«³ ?÷ðÑVµ˜Ùq ýîWSáwy`+êâ‰SÒ~öy-#cÈ<NNtfÕdÆC¦%?Z .åÌ£Cïó(Úéßžü£Ñï>²“ô¬¿‘\ —º2|+>žÚ;@ÿöù–Á3½ú—Dª Û+5‘™%Á¯:лý3l°Šã?ªR?ØœŽ.õXï ÷À‡è£³øËßÊ4tu¹JŒÑ¯½Ó~~5üj˜J­Q—žšŠø£A询P-~kß-ÙC•f¹—úGÆð¬·‘wl;ëMNÛœücŒÁz—é¿–‰º³ñ½ÀÃJ3qv*× ì·5Öy ÙBúUí&ÿˆƒfÀ·þ¼þã6Qž¡úØ-ôòãÔŸÇq­‚cØ¿ð¶Bã?öë“T™DtÁïæÂc*´Ð7©ÿhᇑêÆ¢29ôlû¶J— Ô« +ŒBev„:•0éUÁ³²ÑŸÑ`J{4ÐÅxú§õ2hJYpÌ–LPùq–O™“ÄrüÇ2,ÔXê?næ¼À×.ÔžgkMdþyJw2wuüGwrW;Wiæ–\7Þ޾Ÿs*ÿ•ùQϘøáÛ+ú‘Qù_…1~Óï&¡~дªr–I©>¯JNò™UÏþ¸]!úõüÇÐñ¦X„N iDBk8á$¹T,Ĩ_äÏ‹‰ûd‡eA´=ìîØ×ð>T(æ¦ÏHiÛ™ƒíõ}ãÕÍýæUñdI‚õÆÞ×#ÿ(mG°ÒÞ ÙQÇN§,§Ÿœ<è‹'vRéR†õöc÷Öpb¨ÆXëð-l‹þ€•±{°¸IíŽÁâWwŒŒà\“éGOwyµ‹}U‚Ñ/þ4žæ ë'P»ALÑ b‡«ßíkåÉoJÞq’ÓŸ{›kVĬcÈ?¢ªÙàEgÀ¢*GÜÿÑÁ¼ÄÅ®0Ƙpf! ±{tøø&\ã "Íuä}èßþ÷À‰é©$ïy‹ÅÝ$ ß ÙwéTfÑ|+{HL³‹sÒˆ»tŽ,nþcx£PîbhÝhbÅôø«pJ>ø¡Ìƒ•Œè¾'è©Vã ‡óû–0ðoñëõíô¨kbIcP/±‡ÏÛi/"Šø`ï'~ÒïnEµ†MåùÝï†ìWËÜKÿ«MôOl­wÔ}˨ÿøÍªIýà'ªχl™ÿü­MßêÏëÁ¤#Nz!ŠxÖTs#·Ro·ä[µ’…³Šë<”µw©e*ïÉ¿Ì0¦è8^Nb^_!0æ |ÝFæfó’xÞ6"º«Þ XÕ`ÊPîMŒy;™ª• 2ý?¾„¿ï~µ¼©ÿpº¤"÷Â+íÂ^AYô›ú Ë\EpbÎ]t»S°þã–›J‘Å\Ó{ θ,ÙK!*—ƒtÿƒ­ŽÿO· û8IÄÙýmß ²2Ù¦ZýÜI|ØTÅ ”RÐÛ0?GØ÷­'¬XÿÑ;H¦ë9õç/d,>¿6ïÞòÉÖÇ·cªFfIøà<ç°Î»ðWgÈË—Ó?10M`T3¿(c›äN?–£Xg§“C:îáG2¡}Ô:j©ŠäËy&Sȸ2 Œ‹JÖu(ÿ1•9ôãäz´o‹ˆ{3ÁgÏ #jG!7ˆ‡ní¨]jbï)ª3ÜzA¼ËAv¸€{s—Ï:hnpã3p±f‚o*Ú"ê>ØöI°¶Mè¯4Ýù£¿*¨ÏÐÿ*nm´N¿õ‰ð Ô^M–ðF¶°÷–(wÆÓgñŠZDæ3ü*ùÇ*ò4ýúÚƒ_-"Þ©·S¯‘þã²úΘo}"@ÿÝõä½¹W‚ücOò0LðtzŽä¤âºýc_PýÁ< <\f:ŸÀŠ»Ñ}Å¿mD5Àn+œ /ßúÉôxr§›}"‹¬6“~¾­A×R髸4ðËéç;žÝ¦sÝ£Š½)wvë%Ò¯ðO¤/ »È¨gv$£m¦®0?ªø•›ùQ—À©"¹ªÀ(Ó‰‚m>êšÂ”ðFTr ‚]8JþÑ6e¼Å{2.ßn´ÌkÖ »<áp»Žnúàe/Qð‘9™ˆx ýnAâýƒøËœ®ƒøIŸßåºë ¡â rÇ,²¹ôín4šùÕ’3WÂ^k¿P·¨µJBdüYG”[^Ô7.¥›LS*J²’q|7 øU}ƒhð"?WžNB=ýÌÚ‰~w,™ø&ô3È(.ë*ôs¡évÒâo¼Z_곸£á?6¨ìîè¬^‚¾ÁÖÊ^¼9÷9Y.ùoÌ?GÇ_Æü*lHXçÂ÷„÷U(2ä˜ôºÊ'šŠ¯f[VÙg½ªn-„ÿˆñ‹þc±1V  èF~ØÛ-"¾ˆoÍ6çÐ'f&õë¨(ñÅKƒÛ™óçåµHÔVÉ‚ã&}šâ[Þ²’Kß~:m°µØß?§õçwDx¸èÐäƒà?ú€ ä†9¾ðí :Ô˜ ð¸2‡Ÿž¢Aï1š8 î°œŸ½°÷ÐIµÀ+ÝÆTÂ>JUÞ¾.c;Ÿþã‚QÖÍÌðgÒé7qŽÞ“ùñg…ÙY?;»ºNŽ{šÜmç®K ¥üîu UN§/JÕ‹¼-n˜èäX7ügU‚õ¦2Âs$ᙆþ©:ù»~ðóõ=c†ù^fþ#1l|òÖpÂSà?¼í¬0¯5ÕKüÇ)bëu`bkð¡ña“³ÊŸg0«“„kÚÈõ"{«Ž•™üò4wñ„èIÓµ1 GiÕ^v=_$/,g¶â?á¨-:ç´f73$&¢‰èEŒP;"ñ Á¯Ö~ÃHÜDÚ+Á¯vqG¼qµ8dîösΗ׬©àWe@*Ö¡¹ªŽ_ÿˆ…í¯ÈüÚÛÔbG§Å ØŠ´0àÕÑúdvX õ†ÿfá?|£Ýï çbÞlzpÍLØÜ}ü;ìi2ü¹©g©yè¯lXÚ.ÌœN¿ôȬ¿ðm“æÏS Ýižõ÷^°Bqv/“¿%e‡%ÁøÞ©Áz‰.†ÿè ü”Yz÷°Îc˜'’NÚ™UL–À¿›•:ÓŽæGý)³Ñ1å<üZc°Í]øõzþ£·J¦C»W¹¸îèsDûýUwþ»›ðà ÉeÞ‘Ÿ|T}Õe?óÏP?8ž3ÖD=ådü®š€…Ò—©Kq¹êÁÑô…ÿƒÿ¸ Ï_‹ì¨=‘‹+c8•aÈ"‘ͽ’#uÅAw»^÷‚늚yžºek&•óÜ¿væ¡x‹q¦Ü:!šq­ËºËà u=EW{‹þ‰5À¯ÎÂú ¤ÛpK°«(Ä^^„ÿ€+UÍéZðcƒWÍùœ½òpç­È(ÊǺ‚{å Ýú@×Éf®!îËä)á?¨ŒÐûÝ]™t8×]Îßø2 /ìgbáÿ‹¿†17}g@Ü¿ ï¹O¿¶Ðæ3:ýwKPù+-‡?_bäÁ4‚ÿeEþÅúÕÆüGÔ2é9çÛ™?Ú ÿ1™ùç Ä.ô»Í„zÇ•…Sß¶OVÆ.÷£Éyp–¼ðåÐæ¥–Á5òˆ€5[¯VÀS!°(T-¸”/vMtYá?îÁП#²OŠ}œ'ãÓ³3$5*NýùMY [éC$¾Ü¯¶€›¿!®ý‚½øÌ¯å©X‰E ™Ìîlþqü*Æ·þ% æq~¢îDÝmì"D¹kA„¶¡DêM¤Såi@;ðšÇX™`³ûE ä;ûùd.¡¾`™OóN¬ 3¿ô­£Væ×å?è?O¥€Øæ`µ˜TÆ·"gØbWQ[©¢­G_©d‡àÍ×à–ñu,¢ñÜÖd2S‰ª \ñÔ|"AoøìzÜ÷ÌØÄW¼…GEñ$¾"üÑ>ìÝ2'§ÿ•3Cã@ þc´!™¼ „i%ˆUTlÍžBgìu3Ъ×DŽuð¿û‰æ'¢-E„½—ýMÇ[½„??en pã¶Xä8ôWiQ¨îÆ‹Ýä\¬ÆwŸU é_².Y» P^úsg~ÔS<åøß—øÕô¾Éà-ÌÁüÁÄDS9@›|@ĦpZFS›—_1Zçdž*×^~:3øØ2º·g%K9›1þ#«}„·Óï·XáÉ–÷ƒÈçÄ•Á ò…:2?1ß›ÕÕ n¦<ü¹ƒÀ õë=!ÃÙþ§p:ùþ3€çš‰«åª;°Z¹ªÜî˜ÔŸÁ³Üà'6SÿQš³^½Ïàýþ_þúÔ(f¦ñÜ™øäžßýÚçjæGE´v[¥Ew°¦?Ye«‘Í*ÿ1ß2­|¿Ø¿ä Ñ^Ü•mñÈ9ùoþÃm-eÎco¹þ|µ|óÝ쳜pªž÷£¿ºBTÙîÿ‘Ëò"îÏ cËf2´]:X,çûçüFýàØ”K`ljžÙŒÂ:óϧðF¢±Ä2Ï%ÿ(ã'¦ zŸ¬³â4ÑÇS8ãµä ïùÿ¬úQ[²‘Hh5žÈ(pqìÁÁúûFvNö4ùD†ÅF›QЍ;¨ÿìß,^ âõøäyäcÁϯn¥ÄstÅÖœÇBGÅr$Áâ‡FÓ»úçwbvè²&U0m‚Ôïn0þ4?È4ðuá)1ü#âÕWqþíµT¬ÔF>ï2ùǼÀ|ôO«¨Ì L¿›ÒÌ+ À^'RÎ<Çž·à¤dçg²ö º@ßë©L\¿ï7*1u4axúGñýŒGÌÿX7X;øÕR¼Q_”­ˆC56é7ª^ö‚±BZ\mÍÛ‰7=Éš ÿá;íîû“¾lµ—³É`va/øÐb‹cdiÇ@¬¢b³¦ºLfÈy©D÷ËØ¥&O:B}Ìm9•Cc™\Ö=j_Û‘ÏÌ…9nxÙžE´…übŒÎO'ŽztÏðA-œL‡Ò»ðqYá®+“Ž…ññøÌ þÞëC– *yç–éÊwK8˜ŽKé2ŽÊŠOXÃót—ZAÿÄ"ôo/І žëþc§h€hâo½©2%Н³àWýÑøØa§ÀtW)õe×Lús=ÐÞÔLT-°¥7ÁsŸ‚î…Ño཯H߇Œúðç ñªO¨ j­ÈhöµV§IMú_-CçÖU|hªë݉þ„S\ÿàS;‘+°»à´…ìYžWn’yÚzB÷€çÄLÍt»¥|m{©<ðÛ¨°_¥7¹â1?j?õ„©áÏ_Ñà¾Þ¥;E4§åZ¸«Xò?ý‡ÑGéûü¨¹ðúY©NI¬c¹+pÇZÀj=$ƒ™áª~u•õ{3µgjb>6ç]¾B¶Põpm¢Žðþ#’çw?¾²_#›_MEþ‘‹þ%ᬬ²Èˆf¥¤d)ݪ"9Õ4ðÕo£„ÉûÛû×Þž%l‘„ùç‹ÄD¹ÿ±Áº$Køz½ÄeÖÙŠÉ Ü¤ uÈméµ[V·?ˆ¸rè·üÃ×¾Æ÷ïÖ¦’÷•xL祘ª3UÅçÐÕÌ-£N:D ‘ÜiÝë…(ÿxií`(œþí;±‚Oˆu뢾28· Aµ®sâÞËè°Qì*Áú‡?OLõ¢A¬Ó´5;±g*2ív°HÔm8ºÄä i±¢óÉZŠà¢…1V*XˆÆDïw°W?AÍ7øC!2ò10Ùwþ ƒUeój·o»1Ð4aa¶à²pö± ².y•(|¯4ÈyüÇ:2šGäaN¾sÎ"ók¿²b3·¨Å½ræ¹'â)ÅU…ÿ8Í=\aOMÄ=,Yø=p×N­_8˜ ¯r„}#ÿ1‹ùƒ£ävøŠ• èÉñ3àf:ãsëâÕ4VY;96j9S[±•Ha wâ žî/ê?VØá)«›È› ¤=wêÖz'¾{ŸúM‡¥§Ålü’°Óåun4­øæ2Â)=‚¿-?ý4K u¹3ý|炨ÐÛ¿„è86üÇ|¡ÈX™±Ìÿ˜Epfx¡[0èÉ>Ëpöº›úÝâ6+1Á#b”B¬X ËÿEÍ–FRq©³8Ä,WG¿Ûš •Êô/9@ð݆æ5Uí8 =Äë9þ£ U —즰ô S[Aššé!*¾ŽäM¾pþ¼‡žLýdö9¿\}Ãò –ý–ôí‚qÀøÝÉÛUK½ÁVèÜâFÍú'}AjéÝÄó½á(rÂ7LE!¶ŒßqI}/4ŒÝ{ÈURÌàô\nwæ<¥ÑRÚu.z$d?kÊüôÌ?§K:ü¹vt}ÁÞï%[2˜"¸Q7„CA…ælÞšÁôßõÕR:}”l"ÆRø£K*£ŒkgfjasX£x8 {¾ÞÕÖâ$×{ëä7P ¿$ÚŠ"2öá(Ñ’¯~׋¾}ew|ÇX"P*at]úq5 ³zM²‡ª”œî‹îRäH™PÝ™¾_Q!œåÍ;&çá+Ã=EýWôWOðõ.ÏIxh5ƒ«ð<–_$4¶êã?¬oóW¹éžX ý•mEûEþ㥱ˆùƒ#xc*€À,ç¬{ÔŸÀ̃Å&Ëûë? “1ô…9-ÁûžóÛüó¾æ'ó„,nþ<²ý›¨ì¹.Íßo[™«Í›â+oÊlROâÀ:j<‘wCù1¦…ñÈQ{Ë´2½ Ê’ú]06z²K2 ‡Ón_Û‹rô9Èû{ò„ƪ´}ü#‘ç`ýÇ?Fzú7NEòÑ.S™,Ûd?;¸ú¢äGa öâSÚ“åÔ§‹Q”`®¹U|ÉÉ?î€S…†‰NŒíOž1Œ=4ÈÝiâê=  ·9ûÕìD²Uó÷Pÿ¦ooO*2õì²4Wí¶àE¹™Ò\=…¼Ê¿XmY*ÔH„È.£™iEC Nrû.±b/ûr þc¬CŒ”[¸ëóT{¢÷Ðjöáÿ÷àQdÛ×wUS§ªqwgpgpÜÝÝÝÝÝÜ-8nÁÝÝÝÝÝÂû«péá&ùß½ž™tšäô)Û²ÖÚ{Â? F”«‡¯ÿƒOŠ Š‚‰-%ZœIî´‹.bûôþ/)¯; äDâþøð)±7± »8oßùQèAƒ®ÞËUvê?Öb_™1ñN©0™¡¦Òû&°–£ŠñR¦àjf&ÃØLÿ’)Ä=Ûl-QÝè xÕªæîAEEKà—rÂÇ¿-óACôšÊ‘=æG½3’Q\Àd ã*­šPÖî± Ñ™¶?šÑh®ÃðÓmPÃVf‡WTÔ¯ÝùÜGô^î_OÔpMòÉ(pFç@[£Æo^¥þc½Jš 1>N*=ýKúØCQ‹µ#¦¾…Rª%Øâ|õ”~¿>ät'¤Ÿÿ¤VJŸE¯°¿ñºõÉS¦ÈTÌ?ßaUÇ:'ŪnÿOÅüÚeü-G=úb¸†pì´3HXr¥XœÍŠæ0÷£_ byž¤Qf-«Ž¹^>âÜ5‚ãIHÿ]k¶ÂåaŸdþ`R{‹õŠ.+Âö¦óJ.Ž82|Ê'3’, «¸·öþXr|Wž2¡™ÄºLÇ]OrÀø³]T~ÌeêÓ|ÜHŽvìL{8wྦྷ°>‰™Š•×ÜïÎ?ž¢ :';qÇ#"ñ–ó¬L®èÌÿØo½¡ûûú…õrMc"HEj_2ÿ#Ç^Ä Cýùó”œÊ>.Óà½ðëØâ>ôÿü ½®žÞ}f®ƒf‡ˆÿnKõ)Ð_¥D$_ýÕ2­ªÑܨk¬gþ Òüîƒ|ÿÖZ”µQœ¤pªÃD<‘×X£ŸóäTú_Ý¡#Jèð«?…7k­•™PtÕ4GP_×J/CÿÄšä‘èNðý•ŸÂ"È-ýëÍRÔìûayïÔÁ*4Tƒ±ÐYåclÄ1´Sá±bSeDô»ÏþÝBÿú·ˆâ´x#ë“/xb5½A£ØÑAìÞp|]Z8€Õ<íÈk™#Åž_æG2ÚÈ霫t*_sÿ}›xšù€I©Qže¿¦vü4lzˬéÄlU™ZŒ®j÷Nn÷3ùc¯é™ÿQ˜h%êØd13¸*³ÑZ屯¨ Ô|·Š‚j·¡žb X’Ïl SéªâCÐDÀïÏFð« ä0_ȸ& ì#’„í+LÇÅ`îïð!ÛìNL¸ªHÿ’Cø_¼ŽOž¥M´F€õ†Jë5OEC8¢ëà: PÚ6±þACìè¯âÑaeн˜ªŠQV|æ\u€=oKýÇIúïÞ%sØãOkr@k¨/IlÃY© ÒW0—r”éù’ÄêJ½ßò™òÔŸO&ØMýù0¢û=xš1¬æîVe4=Ý;üê1ú«oqi«-µ½aᤆ€Ñý #³_ž ýÕiŽ™Î\V\âû¼ëD]©gg¦—… ¥uÜÇ;’þWa¸×+pçÝFßÿŽÙNwí:ôF½½3¿¶ õ)™Ðï ïŠ¢;@\ë!w×aòì œóÂf·ÿ8‹?š*«“ÍL&bš'[Y\—èÌrÀzmÝfžU{ºk¥ëWW:ßsåÁWUƯ\%C?/G²³œ­•ÿþ#¬^[÷›aúNk®GvŸ'÷Ñ‹8ÔE„ÿ(ætŽðU›¯ÔŠ ŒfÆãøUèêÏOQÿñ€¼µÑ|}¦e&ÉŒƒØí9’éâ¥Þ¡Úg±k+¯ Êr\–Ðó×ðPwDÙò‡ø#D+vÕÏÐÿ/Öà 6¯*ˆU=õ79i*ºê 6ƒz<†e'c‚`…¤f2ªØ‹ÿ¨ƒÕÛ "²ûç(k_ï‡A¥ñ™L$?ýKt0¬÷²Z°ùÇ1-Vy…ü,MžÐ…f^<È Îã`ìg^õOˆ…=MÌ÷ãð}EÑ`޹—Q‘L«>?‚hÇÂZ&Á»ÅÅŠ A-õ•'òǼhx-þ(9ùGÝoPÀgý?Éhê9Z0¦„ôOlHtÏq vª'–ú3ÛFXOö;ŽkõÖœ~”V;>õç%ˆw?ó—#ÿXV…suÕŒn·P ‰°Ì•ÁqÖ`»{m§¦b8>;¨ùQ}´èw£GrÔ´Nf5‹ã‰ýïÛŽºáœf:º‹Œ"&• ì+¹ZãÉËf™óéåá­Žý.Ñ eº°”äýá6ÎÀÛ¯ãÜ;¯"¢“B=D2ôWeè¿; Äå1Jå1ÿzÖŸEÿÄ®Køó"|^l›­ÈF˜õ­¿‰Ù£Ã¦¤±ç“´dÎîr;·ë9üÇ#rÂ5t[¿Ê{Û­†D Ulk*Þ0œì(+ºw¦~_Ø0x¹@sO¨Ä@y­–Ôö-CG|„º¾T®(±²Âïg¢ ðl×{ò™ˆð0ˆrv∲æ:·ÿ¸¡/‹@rƒÖ!ÆÍh§u-†yb½°Â;>Ò®æºàJè*áêcŸTÙ\uð—)¬ˆöwžæÕøÒppÑÈ?–|Üþ+ß½ÐÚë~ìäcô»AÍz ÉV\äyFYòitàlo¦bZ££±j¿$ú•,âþ™­ÚüG T«©a[7ŠX"3õƒ+ÁV‰íø×¡ÔÇÐóÏE 8 ›:Xž”½uIÿD*—ÅÑ”~îåDàžîÍxÑU÷fþñ9Еçx¤òÄ¡¥yš ˜õåu¬ì!®æ üÇhT]eHŽÙ‡˜_›˵‰8bj§íèl>QßÄÂ;*¬œè¯ ²ˆ»²B°þã°–Œ®R+ä8Âd4y8Ú§²|¹»êä6a†€4ÍŸélý`k#ž£;/qÄ‘±ÕNÿ’Ôtꯊ£PÙVt[A`×)ÍôèwO8_~߬цëפ£§mÀ¶áÅÞIgfà:·¿Æg6Ã#…UÛÈáÎ7ÍeŸGf>Næ rþGz=…¨‚NÍV£y’wàÝûeÃD†ñ˜ŒÿøÖÓ”Ø܃ã‹ÒPÿóœ (ýUGíYàt£éé ´¯ÙƳ-Ç©c+€”B“0šÜ$«ZÅç-cÝEd ÃÅÑ_úïn3FÊY[lýL•d§#g) EÊX˜Y4-Q j 3…pxØ[ìøbíuü²TþÔ¢?Î_Aú—äB‰þÉܬÆI/3—•ÙÕÈîÏ~1ÿã)µ c8âƒd]3|çS…‡¡Šn}Y=Èš´·,3ñ~^ÃôC™s÷¼Ó!#ý³Ã=u'ǘC÷âAvô»Oð"5ìWª­« “Âr2CÆ™µÿQL!¶z+Žü\ð¿øõ•ÖÌ_%Þ7º™„, ÿu‹1™ž­U Qùµ-¸»¼´RÆFC|ŠEÿ«ƒ¿þÊ¿y縶‚ùµN­:ÐŽMâ©ÓhOß2¹Ž~Q'Á¯BÒ›Ðïâ 'ŽŸi%v³ƒ¶~]Oî'à×nFY<ÚtWɸ"`Ó’¿• ]L´;ædbëÑ2?#Ëm&cÎι€K¸¿[¯-ÐcšùØUmp¦õ°)¯‰ºššûÈ”þW“èõš•ÚãÜåku—;uœûpÇêgÈ?šáS{›m,/&ʬÂ[6·/ÛôejïV;%z§Çôl‰`_²¾’+ÅbnÇޏ7þhYUj‹öãO/pW2wûÖIÇ3–NJ挿ð°ïX_¨?ϳÏã?&‘mÅqÑgßvYOP á·þ2{«Z¦—ÛÜзá?*‚èö念òüùa´o+¬˜öBë<³»¹Ž’!U§_—fUv ×ÌMgÅsÄ®›åhìÚAâ”ÿÍü¨—Z+“`ŸiýU£ÿ<_!û…¹|ÙáÊ[ˆNâ‹îxëuZe#¥ÑßXç[?x8dËüë§Nhâ»ìFž\ûøjdDüI¬•§©?bÜ eÿÝÌâ+ ½øˆ¹šÁ|ƒ{«_$÷Ì-_Š…°a­‚¬rþuÓuõíôO|˳÷+عQx94]÷°S§àYuìãXº'&‘!©¹—b·ˆŒRÇÀ®¾âNø„=®eš $>ØÖ°x‚æEò¦„ôõm¬ÿ¸­5çóÇÅ$šÝJ¤|zëÔbéê(YÈjò„>xô®"®û©øõHwfuQé ÁûÜãÌùÈ1äÕ™¥0V¸%(û¬ÿE°« ÎSàÂý›ùçOèßžÖ™¢Áùɰé'Ò˜3x™žI‘T[fÌu£^Œ'¸Žï؃…~à°íÌôÓvúí2Ž^S”$ J¥_>8“-Ü+e¸[Þà>3ÿ|©ÈkÃNW‹AÙÖ{fY|/»àýVùùêí³1H%š j‘˜ÿoù‡,躔1>ɸf/§ÿî^Žù¬9ö=/\ùx+ª}ÔªFÿ¥Ã0õè_²Æ>3Ó®ž‚FMSˆVêuÒˆÆU½ÊÝ– EY%î ~U׬Öt\ììûqéJým«S§RH½zÈš+ñ‹é¾ágOCîB]hJu‰k7n}ýn[ÔÅ‘¬Ô#&¡þ|¨½®|¶ô¬Pf{m#?ŠŠ` "3tŸÁCX¡±Ä9]Èg:€b5¤þ<¼BoXøªÌh_Ft—þ¶sñ˜}¬NÌ©a?„ÿhÍÕCÿ’8tÀJçÏLÕáyŽÂ©¡fk&=NÒ1'þ±>ö}¦µÆNL¿ôûö3ªTnZ>N—_ÛÓê Ö‘üc%GþAü‰.ýç{Ðÿ.ÕK‰I^«hàÅ…­ˆ®’d0[Ég£3Û@ö–ÇÞÂ:ë­ØöLº>æ¡þÜD]¸î1)ˆE>óˆÛ\Ñ׋¥< Û¹"Kñnçé¿Æ5‹þ%Ìt±náåæºŽ¹¸j¢¿Ú­:3±±‹,îËEî²JT§U_Dà{ðç~ÿ“_Ÿ3«Åk}©åÑÓ¸ÏSè>÷›¶‹‰~ÓÊàW±Œ6¬²CK„zw$3mÃYôý¡Zn¿6V¼–m±s…¸[óÒišqV"öJ]®ŒG0*¡Y0¢pâã 9±%sÉ>3è·ôý²ªÙK–— Ñ75¥C´b9ê/‹;àJºjƒ¥÷¡þ| ¬XyéàÂNŸî”Øå2 !™‘¨Ä9ð«*0`§ðGLÁSS•ÿÜm ñ…Uó$¶ãO0Ÿ¶ÁúkZ*,ü"úy%Âò#Ö)kQ”ø¼¯Y“èþvê09ôpì_o³ŸN³<ÉÈ Jîôßý€5O„æ(Ú–H <‹U5X忱òÞxͤêXýžd×ß2]^ÚT= öê6~1¯é‰Gü ~Uì©:‘fM,OU<œží$Þà ¸Ø3=ÓÀS‰ zêDÖ£‰Là|)AšrSÕC>?9»MA…I%¹_Ä&ÿèH§Å`W+È ³á¯œ©LSùåÏTíó£6 :˜²’µÑl¬GÐöª# se¡ù w‘¸&L§[ѲY&W‰Ý¿àW‡èß¾Ž3•ŽücHÍ r™#¨O21*µÔó¨üú‡«"6¶~3™OGâûYj'“ýÐö[-c¼ãŒ÷Ÿƒ"ø2HþksÕƒE­ÅTä9êØRt_ºÂ§å§þ| zN§þü:èÑ }œÐw¸»¯)ñ~O¸’é`!棧 Ò²ÛBM{]:Û*×tû ókßßw§Op3õ•þ ùÌVôãͲ"à[ÊäðçLjá?Ž˜ïÔ^k5üùYöx’~Yé 5™¹°÷UGôDÇá¯Û‘mͧÞþ=õPµÅ_ýàJ­·Þ ÏÛQ="Ro þMfc¶î"VéFl1ýÚ›‚­D×5ÙjO_¬¶èwד)Nf"ü.ü˜‹˜k‰û/Ó/RÿQöo(óg0)ô¾°)õõÝmëk¡]Þ¥\ï}ç×Þ´>¢ßµáA“™1“u?š1dMÙÍ}þúê{Dî´ÂÄd”Iw¡|VLP¦øIg’×5ºEŸ¹ Àúfí±óquâYoÀNòDÆB žm?7x=ðZbe&³‰-‘`P¾£u^`¹ìÕÖ¦}ä¢ÿÕs»¼J «¦«"ºàZpëoA“OÈa ;`$M¸‡ÎÏõÿ“_˜ûyŒ›Z9=ƒû<…îs#Ñ×#µ1Õ¨*ºÃu7e•eðçŒÔ„Ä¡ZðGøþ$ZŸœpÁKàÏsÊ·¿[Äßû¶xWÄÊFeþèÊŸ÷Ì?ðaõ÷f^U‘úgÞY„àW‡µÄԉ̢>2,Vá,vÚáÏ òÄ÷¡~ð U‚j%'’݃—ëlϯÁS_ñ‰“¨KÙKýà4VÏOUJ_,@jô•Sy÷8>$…zÇ¿†il¯_òwtþ_nƒ?¿!ãÃÔ1Ó“FOªÏ9n6ßɇò3'^h çà&ÿ_M^sÎzüyP¹¦®'ù`‹|Èùó÷nål9h箈§yO÷Af Á=x€+.ä’Rÿc’SÕ·—öÖ#÷á=` Ò`kÆÂmu ëJ-^bð+§–|?ª³¡Ø•lèvrì3ÈëN™‹É?k_Ó¿}Ov1âõMðç˜nµ•,m ÛMTý³áWóZ{¨Î+cMÁ¼$Z&züøV™J– t/f¥ÿnF4\©È?ÈÐ ¼5Ç“+$´¼ÔßLô ‹žu<ýÛ—¨œôg\‡ÿH«.Ò§÷LU®Ë9ýP€ÏQÀïÀ¼Æy®¦ê=u$­\üÆ&ç½G}z‚øý©jY—9߈“.‚`-Q›¹›Z‰êÖƒÿÈN½ÃJ?F/¦Q­¦þ£*¦ØÖkМtè•ÇÙ»¬'Ô¦±/}tÅ:¯Œf½wºá+ܪÕÖ'¢@l¦îƒ3µV¨Ú¹ªgØÌL™Æü¨qÔ³ «YJÿÃVÖ(¼SjîÛsO kyƒ¥2™ÿ¸o½IàW:YäW²îzÖt:LíD–•úÈìLdßϼÀаÓ÷™’ –ÿŸòýÕÎLÖÛ ›³—ûxG黄à9(Äy¸«’‚8¤±J¹šÃÈ7Ã|§>å(ØZêgþÍz‡¿K•ØzÂÓ|¤:5‘H*º6ÿÜà6új,$Vö$ÿ˜@åqC» k3³†S¿Œ®÷¥ìf®sTV¢ÉUÙ•™Ü+õ”×ɪOËù\Ý“¦RïDà4?×ÿO~}BÆË}f^j%õÄîïB÷¹Ÿ´Sz,c©QƒÎa ':Ùë—ÁOMaD#Z(û·o…ÿ¸-»-æÅ+‡—è¯Î‹ ò‰˜A5á-ý[¨¶÷ŒÅð«šØçÑädÝ6ö5”©åâûŠ!ìU‘>õçÄe÷ÏÄô]ˆ;ÓM¢˜YL^!»eΆFt1ùGAù»NP¶Žùª,…7ZM_ÃþÎ’ÕÜA¡š…åRU©˜ŽÚ'øÕ9--U“©gqôú‡9{9a©sso6&ÿ¸aîÙƒö°øK'³e°ùG#={Ä}}™Ý™æ?¨¦òµÂ‘‚ÜÃÙ‹æÌœç~3›¬ý[¤ÒKë¯ß“…¨¨È¾6Rù‘ü£ë6#HJåYIõ”¼èe5ÈÐZ8’xðYÿG!rƒ!21¤éo!~nlu†OyÆ<õäLfšÍT?æÂæ<¶†Ÿ›Ã/,iõV7ý=+—´Fôo‚y†6¾¥jÆ4ÍèÖVø“0Ô]ÿ _1µY9ô»«èÐÕ¾¿2ÝAöâ…F-mæúø€öNu?d‹ðŸÑ|DWÝÍ:Ö\³†\κ-ì·viæ;]Ã/zËÌÞøôO¼Oo›:Ân\‘ît³ß„sÉ þøôá‹Fö\T÷£Š` S£ÿUAЫšÔ>dîEòÂx‘DàO÷àgL¦Ʋ>òŒ_C©™×l¡²úëŸx‘þWSäð«~øß5ÔTtÝB«¶Ê:G È*2›®CôçªâêE‡åôßýÓ®D_:€lO%²9ÎmÈÿEÿ«/ÌúÊç¾³^âM⹿s_€½CýGZz%ÖýÉ:²ÊJæÖ1¦QSè2lýVˆVùùC´‰â²lþ’Ÿ¾”o…K¤3¼õ/b£¼€½½hÜÕÄjŸñÄ{¬Á2YÇÑ=Ò¿ý¾Ì¥G0.Ⱥèn+Koü#pÏ¡Ÿ{ øµŽ¾S ®€œ¼'>íEœTæ˜*yyuÿ‘ y61dÞõ/‰FýÇ;xƒ˜ö4õWþßëp…g»1ï¦WÕÍëôÝÈN¿.ÁâWç´T.—að>•È4òÀ̆h@–Ñ®'9^¤¦ºÅ*§yg#µ”^x½°Ê™?T¬]O~õˆ|*ê…{Xòfä}¹8Bk}Z4°Å °j[Ía`M£ðWwéSƒŽ6ÿ1üªŸÜi 8zªå–r4½Ìp ð%ˆæw²F>ЖÉĸùÇJΟ'«nãóæ‹ÓúŠ€7 Þ¨—\J•K6z..V•±„CàÆ²PßWÆŠÏÌT/¬Të0ýKƒñäSo9ƒ^à8Çùi§þ`þщ¼2^è8Yƒ3?êŠZÃ4Ü–T§„g~Ô ð¦'ÖtôW^øäT18}ð›‚Ä=¢Cˆa5SWüõjØLý‡ÌLKuœ´…êŒÖ) }ÖGÑ¿=5SEV sŠA‡©]Düý­¾Ì’/ /p’ë6oµKE&Nãÿ˜¡_&ÿ(ÈûƒÌFðä^´]õP\%²§­FûõnDWjvùäé-‘o®z扬„…ù"JJ?½r+ð+ ¸(gвžÓ¦¦j¤Þ¬;,O²·UT`¦Å¿¥³·‚3ÍeþGð+ UÆŠtäÛ9èðùó–9¨o¿êÈ<‘<øUFúqµA»»Eõn¼Rð«•vq8©{Ìÿˆj§¦qû wà19‚{~-yz¹îç‚ÿů¯´žz÷u—i ¡ãü¶þ#»±Äh"Zˆø†£ÎؤÕ7ÊýL›5õË~?‚WµeÌøjœ‡§ô‹ˆ ûô0r£<#¼ÄeãI(q¶Ô‚þ t.¨NÖ0‚þ‚aÌ"L+y"Ë1ƒ/ˆhÖÙÝçáßm°®¾AJÿ«¨¥ZÍú€ÑÎ"Ò,-Ÿs?Å>eäÝyL,¢úÁäbJ‚ð2»ˆP‚[‰ê:Ôzø\ª<ˆ}bVMhV ÖÐJ‚t-„ÿƒí<³\–ºÑtlÏ;X‡Ø0Á9À^<Ù}‘?˜cîbE74´ÿ8V\bî?ðH‰ÁšÇà |ªzóþvê´ß²æ_faúïûÍé[ÿ…(þ(>#;þ!.õÍðb{‰Ç^€©µ†ÿø@v˜¸x=á?â«utðëmá·t8=¶¨ Š“@M¤ææç®~äòg.ÂTä_À¢*û¯æºL‡ÃIÍyTÄðƒðý´¯Æð+Ç4¡ KNYŸ›’ØûX²‡QD×áð‹xf‚_­‘˜Iý¹ŸZôÇÏ£¿š+VÄÊ‹,è*ÑËV[F<ŸÌº„M1í´ðûͬbÄä¥È»R#Ñǃ,dʽ̮K9îUÎþh-|ün|æKóoº&€="¤ƒÿm¯&ÉŒ=žûñ'\Êe’ÑÊÀÂlG5èwîx6$Ý5ôfÉèÚXE6M§’ÎÊŠ‡Hg¨Ìÿ8K‡à³Ì,o{?õ¼i÷ϳ¡¨`½ž2+™Þ9ò[gþà<ó–ÚÁz­¬6àWïÈ2™Ïm:ÀÓ‹ŸÕI5d­Wðëߨ³¸*ýô™ûÀ¯¦ƒ¬µWçÁ̪©¨ëÿ„§J—Ž©˨üKCWó­(†Y=¨¥©o'ÁoôãüÅ!W Ë_ÔeîÃ]Bý`T>-Œêdv°VšõˆþRõññÑï²¼í.ázcGp%£oÉ3T¼‘P7EmÒtm-¨\TYJúÍï†~&*™ÂdpŸT8øÆÌ`tM¨@lL•dBÔ³¨ú‹ ¿’~þ3ó“Z•™ul–üŸü£üÇj·ÿx oBå䃸§æ2ÿ<ú«–ÖfzÁï°"¸ Ów—k·ÝÃÕ„:û\T©ä¡;V8ûÏÞn9<à6¨E9Å}Äÿ½´Îþ:î>`ˆšº]D¦®.ƒ±Ñè.zˆ$†ƒ.Â45&ã?¤‘J?ªå¶ƒ_ÝÅ'·Á[7_ˆïF cú«Ýä[Ñ_} eý`ê?rmšEw£'ÆGY€~§dQ³ HÓê’Ë‹ÿ8€Æú:ý™¸‹ÿÐT3üÛsØß‰p­eå1ììNìTlâ$™V–“BpÌÅza“ÕFUQè¬'«ñÿz ~KÕÇ;V%©( KD• ókoj5ÌHÔ¹˜ä%ˆ¼‹‚)½•…°ÿ`ížaec£ŸIÀN7¯Ögv7Ja©g8ü¹ÆµˆF¾üc ÑWpûñ™{àÏoñº“vÚü¶þc²6þ#½Ú––Œ)>;kÏþ¡òWäºöÂó¤Vb$ülz[áÑ–³Ç#æòÀüùNªÙÇ€«š‡»~µöûõxÉ蟸 ,&èPQ¸«Ø¥ñöFX¥íäž2å/ó‹á°XíĮ́¯–³Ád…ÓT z1ÎV­ìðçe˜¾ÿ”ÁzÎOÄ!9K¾Îú —‘úÁ€þc¯¡ðý7ð±á» ©ƒ(nûÓ379œJ[{õƒ³éÂQÝ:O=bE‹9WdˆMQ]¡'Œ7X7¡iÇuÍ¡.ƒ8 3]aÞdþà0j[jÃ_E/•þ|ª=Ô™Èù:ç±9Uì1²õŠ»é‚<ã~VŽÅ®à|´â~m€¶¹—|+ákŠe+°ž!¡]õÕDšîôUlC½/Ô•|k×ÎV1Í‘îõ–ê{(àeßxZéÿnv—›Í*ª4úätv?ß~¾¹\¶ë­Ö•þü>k¿å MÅ µáüyªûfDY‘¾ ?ì ‘l6Y¹fÅ¡[<æGuñkjŸ²îÃó§â &¡L{®õÀÚOÿÝÂÌz†•w"ºte©hnsû;àaKÁZ<¹GçÐQw—•Žùƒ=É>àÝ®SíÑŵ×u–¿™ýH•v%‡ûÉÄÜÄ‹è=×Éñd4à?ÂÊi?7ø_üúžü#ûÌÜÒJû›fºmDaBMuüGCÑ@Äöå?Öj Ñïà½0Æ¿EŃþ”ëÚøó¦\ñ ×—…!23™Û²]æ qÍxÊùçQLõ„m* .”Ëì#—Z&ŸúTr6üB2ä®JÈïÂéŸøØ¾ –~šZ ¦S\> ÎÝ CeùG y-èƒ ðná- ðœHÊ©œ[OVO5À{Ü…ûpP­<ªûŽ‚õ‚ùµ'µêt:ñ&ÎNƒ܉+‚õ(Šmoh'ÊßÂêÛˆüÇ öèKU¿k`Sîoz‚_9±s,õE"­‰hxÛƒãw—ÍEÎ1;ïL&L¦®ãW„?¯¢ÿÎknÒæê±×ap˜Dæ&ê?¾ÉN ”^fWõÌ¡£ræ`lÆ#Ý¡.oÏÓyT­‹dvq×½¿áõ„©?K´[$Æ ö±‚™Œgi'v}!w¡Ad_[¿ Lq.W*1uü_äð ýGWÍÃQ@DÃþ4ÁörUYÍé_Ò äã«¶ùÛE÷«AÄ¥ÙÔ*|ÔRøä;ƒÈ?üØÚ;܆~דòò;³}ñ©&ØŽ´|WžüଵŽü##v¹Ý —«"D÷`Wºªçœ×ñÌŽ ¬‚Ìc`úCèÁ5wÍ—ÿøG¥³~M´R¢vòãdO™èßî {ž‘ZÛÊéeò•ÈVý˜û)wvxØH Vr<7™dMuÒ|§@—¬ (~û2ÿã#ØÐ%ô»Wè·R×Ú3uŸ„`Ð7ª‹üf¿@øÕ`Ÿå°Pñ ûÌsj¥oþÑuîgúz$±Ï1·|$™L_+øÕ4jhj“›e†b«­ºì¿Ú®ÕÐ监Éïák©Þdß‘à‹kƒ7ÅfÕyðç ¨Ñ[Dý`_º|  Wºfm#_™ ’0«$<þ#®9Â}«l×O_̲ø•Ñf[« ±]5EµG¿[“þ‰+èßžÑõŽï\诎Ò7 ,úv2§¸ø8-Â53–¬F]ÓÏGЇ/ Ùl Ø¿—*#Þ­šž®†»Ñ…]Ç%7šb·ž]Τã;‚UÖ~§žqî"ºü“H®¨¹Üí?.a×fÊ.DTcxšNÉ5ÖHêÛXÛÀ¾¶1u«Š=ĵ„­«6sNrº,´ùÈ9÷à?¶øòçoXY“Ënð¿øõ•Ö×ßü7Z]hVè¶ÑQ?XG´!ÿhÄÙöÔÊS}ÞÃØoD3Òü¶«wП²]›CþÑ ÕJžþ‡ô/)dlÖïR§yùƒ¯Œ†é¾žA¯ðÝtâ1ØË™—¸±3þã!¾ëwaÒÐ)w(ñzÅ`{ þX±2Lä+а“äµ°*ÁR€_U”wÉëw8q*‘ëX²š2òqÀMù]Lôd_Ø×wlÑYþ3`ê îwî‰&àWñÁ¯.É8ôoc6¿:®çZ$u˜Šd4±­wɲfK—ÅòíF´…sêT¾Õ3ûŠŒÁœÅîFv5ŠŸ¿F^Åj P¢¸àóP¥FÀvïáß·Ì8. p6›ê¿;êåÚL]'‚>ì›'¬ƒMù&¡¹Ýk¶ÂB«¨Ç“¿ãµ ߬üTw—·J’AÇGÇöÃ>OVkeX XÃx 9 ”kî¦Áõ˜€Z5ì{?ú—¼±JÃR_§º0ýµ¾0þ£¹ŒˆNö˜Õf"¿5?´Œõ²°ÃYÌïpüÇ@ú—xˆ „÷_ CÍËh÷E^®_3×€i"fIk—ÙS¢ö2ž“_‘-¥ÿUz¬ómúU¥°—à $]LŽYãÉ?ú±û%êŸùƒ~üÇ@ýªˆÎ3DU?yVv¦óägþy5x¿Ñ1¢ÞeÊâ¢è2ÃÏ쵆“ý ÿñ…»i‘fžÁ¢ôÔø¹Á›àW³@r½Xo>û+=ókgÒ à+ª cs\g]Q]Õ\È0Çà?V¡½¸Dþ1,–ž,àW.eÉÀ=~®ÿŸüúPk鿺GæèW ºÏªïÒK¡¿*-á?´p™VË(h´¤b$#¼î‡o†dݳÚ"qMÖ‚ HŠEþ(¢ˆ†Æý¦X'׊-â­áJœ-œ8 ¾á)ó×6‚?ÿ Â|S&k˜DD9ûÜ6„üycê?Þ‹w îï‰/[‘‡´TÓPþ”±yÞfSêÄ ˜Á°³Ëp>1Ä&ñQF¿»¸±{øä& õ‰ßˆKs1†ñ*Óë?.kYÁ¯¼Àç¾›•ÐÁåï'ÔÁÌ|7«b×ñ9›È?œN à?‚Ó 1ò‘ 0—Ðÿj+G6›|° ÈÚP¼ØÙ XEg’kvÝ „(#ùÇïº~-Òâ –ø èr/!¬õ¬˜–cîE>SÝý.yäž üGWÍ“äf3<ž±%•-N¯ïºä’ñ‰‚ÿ¢ªq ;Í ú4›_Î}´DÔ©Ëœ'6è;íp‹á!çâÓag½?ÆØ¡Æ*ËÄÁÍôø¶í,ô•jB’©ØúGà—óá!¶ ~]FFØ”4¡ßF4«» væ±9î üGk:ÚÞ£þcÖÅKýÁL©)ð©é_r†Þ„TT,Ì}w€Há¾,òüyb¸ì|0–y®UÅÑìòG¼Ñ}»øU1𫳜á›/læÊï"î.üøçÐʤÔkßånhHå…®uLwOÔ_a±§3í ÌÔð-ZÇü÷$Ì?ïK–W„#>CòÓ]ùÉ}÷iMÐïF òüúçJðÑÌèp3-¨Ë«ÀªÛè(ƒþ%+aÚÀù³ÛWñÒÍðIP$"fHb®u¯7‰úAÍ76éi6±<™µÕ¥¢£¨d¡~pœÉõµ²BµšúOT®,£&>çú;gô³©ËÊ2îó׎|ÁÆä!û6­øô›KH—Ü‚ðËP)?¡o/´p%à?R‘ v0Œõžªçð ¿•ŽkWÈßü¨'ôCÙˆ’}9÷Óif-§þÜvu¦âå9*«Gv{ë+>ý›1p0þm÷Îaë1?}\®„KŒ‰º!†Üä>âÿÞ‹/ÔêøU|¼bþ‡_7÷Ðíâæ*å6<¦Ìçg4çlïÒ3p q ü*µ~4TËmÕ–’âÜÄ;¹&|˜£î©¿çå9q•ïÞøëÚ’…Ÿ'ÀrÆ1IÀ±&ãå-:œ®Ó/Ó]/P?PMl-ÄÏ)¯/Ñ7ˆãX9KU±¹ŒF}±jUéù%Ömö= fy6[ CÿöˆxŒçà@»Qâ…#k¨/ü ´´yHRUØÜ+-¢õ˲X°þ〖+¿RJâ·êj ìBQô…Õ`zkÃ2D#öM„Ÿ«½Š½V¿ÛÄH‡§‡¹iî‚ûI”ÿ1+ñ§rÁãžä˜÷€Š]aÍ,fJYí·‘‚§6Z·Ì ê*ž< ßâÉk‰¿ÅóPÅV «qøzp«ë kk±Rk8ŠôoJQ$Êà-R(üøüQwÖJ\…üc¤h(LüGsl½ÃOÅ$ ó¸+ñ ÿÑG OoÎÝXøYD¼à?exÊydi©ê˜ÿñ”=xã;¨ZpÞ×èñíƒvêžjhU!ÿÈ­>ã?–Ñ/Åf­ù,á¶V?n¡®†‰:¡¿™›ýõÆîö#z[üª?É:„³×óû™È?VÂúd"—9¦î«v*,èè!¦ƒú¿?ɹ'.â?RRµXûðð«8VO½wíGÃÛѺ£Šã?ŽRÿ8éØRâ¹ÌÿðãœuKI/t†j˜Ñ H³M”jôßmBÞWõØž†bè´Õ×·|OªåÏ“9Õ¢‹Øß3¥YƒèŸøÂ½½Z} ™Ñ`ÐÌò`zõÀcmjSj ¿ª_>ŒN…Q`)ÖãçšYEè·Ò“reEÁ²ÅHøîõÆëçðUÉ'zšµ­åff9â>¼2ŒþüZXײ­;LÜŠÿÀ‡Ð{e÷@Gõ ´ð‰ùMTöWÿÑ\¿à‹_UÀÞû¨H¨@’RåW”|Èÿ±Ïú^7íUTqs©!gV1¬z4ëÏôQЉ?Ì*?vçç_¡çÚ";“‡;UºKä$+¿Ët³<,Ý>CöÖÞžï:Iÿ’z0éÏUcú—´¿zk}‡-9.§Ͻ¢N)Šôó˜?WþÏ5õÖþ[÷?0tŸž”ºº"ÆJô»ýDBÙn¹V«ÿ1ƸNíFTý^¨–;¡­6Ï™ÚÚÇ4äg£º± þ|«|'ƒ_…V¿Nì&IºíàWsä%ô»gQ“fþ‡àþŒC£à´H? (yÖqq¼Ã›RЏ|Yu¦š}#½‚ÍF/ͱ2ýK~‰û?¶¸)¾£…%‚wlñ¼H-üSkTiTO¨ÿ8AÝÂwpÖBÁúëøˆÌPXÞRêìG :÷Ö±îdVÄ–„!fº(JóÕÔö×QXÿûúñº‹‘„JÉX¿3Üß_ä`,t)¬j7¢Ö¬«œKºº£4ûŠjàõƒñ¯¨?oÎqÖ…?ïb—Ä/]å:æÚ‚<$#øÕÿB¿ûk•Í}f>iUõ˜îïÜ d/ôú†·Q—úF]VYþªúÝǰaõ![å_?å ~õA6Av½‡•>ððOÈ?NÈ÷â–ød¼ eý‡.n…—åÀF ãG 3õƒgd%,^9WÆ2»ŠM^,ªoÆœÆSÄR°˜ÛÌX“šæ_ò#xø쓬`.¥ª=“¼‚cŽ)Þ T®I6s ³F3–ª nó «"xJV•–)1>dŸd™`ýÇ9-¼´|ŽxÕx™\D2£ŽpGW±óÎüÁh O)ÔX_ÕgTtHÛˆý7sÿÞÂ+dR[u}ßoŽz»ÖE/ ©‹¬—? ŸX­Ù*h,"²! ïyŸ©œ¬¸™W›É%¼é=Ôy4¨LƒŒ¬¼9Ê=ì®Vró:|Ì~ó±è&tâð¶ lK°ócy6£Ã¼’½èGüëçh‘Åßò(yÔZìVf°Ã‘äY9ÒìÊ™ÆÒ ýî#°¨qÊi jQÇd2¥!â¼X;ynZ+áÁlp¾A°—ñn[ø½Sè™b¡Ê\aÀöï¦þ¼:þ#;ŸÿQ ôe¡Úÿ(è)lm8Y_òid)|þKó´±àÊ'Üd*ì"ê?VRA÷… 6ÇpŽ˜üñ»£îÛ¨w °â# žïm6ùLMüÇkæ×î° ÁGT¡ûWV»æËŸ²Z—8‹O©À;BNƒÍçn(,ôëM–QÁÌ^eô§Šo‰ù–úÁ)tî]€‚ø8ÓŸöN«þãŒêcEÇ4ä3‹™ÁŠj QäC÷EÙ†&t!×µ ÌCk”mé>‰¾%=Ñ”¥~p =šì#xÑ8TJÅÁÛ*R¡w”\s’·Âè$€_˜ë^¯ŸþÞðÁó~ ¾oe-1sI/ú—´eÆIN{05*‡¨|ãc2YüüyDòÉtŽÅ™‘ÖBüG8YE:íÇŸ%ä øU!îÜÛÊ$#OkÒÃ^Â\ŽOèuÙ.'ªZoúˆÆâ#8O}¸/âÄ…¨0¢R¯ø êBþÃC»GÇ‘køë9`ótÃ&ÿ(ÁYJ†5¬¥nbgëózÞc&V =×È“ûh2(ÖJsºx¡{ø¿¤¼~jô‘ÎT˜HTd 'z¿Ëîö¡5>BÏÜøL×Þ@×Ú ;ÝÊáø¼xd>íù÷…jŸüó—þ‰µŒ2'J*ÔR}©™À6®;¿=Fá¨Ð"{ ًì#RÈ︨^“)FáØÇÔÿ[¼dd5çqMMTSɘßÈöZ%`Ü[ÑD¹v?×¶®_µ²n« `xõñG§¨9I6ÛHT °Þ©“EÝà^èƒ÷Z`~W7èç[ \¡u¨¥öÀsO “@ýùE~¦5k®&G2Ààú«]Òp¯·úñ 2-Ô5³½ê¬ ó´¦g.S?ôWèŠ2Ýn » ñþD:—d~G=xõ]äšÃ¨~<ÎÅ"¾Ÿé>ÜEÔ|"{ O¶ÜÊêÓzÞ/Àç2Ð_dµÝ.Aï«°®hªÏÒ7.sFV[ãÀT‡À­U÷‰_ëɶîý Ð8æÉò4¿RùîÀQ\MÑïvÂDg®ˆEnôüLLÑAÆÒX©§Fƒ'²(qL:ø}?üꦾ[¬”½yúg:wýwKÂücµc âk¾ÛÎBýÇ|»¤k(õƒ­éU•I\áí7æ2Ùeøûà®Ñÿ'ý¯^£Øõ‹»Ï3ÿ#”vÙ}•"ꚑĘad£…4Zq¶×kYŒÖF[ã™ýîf÷O†äÅ m9¨N5_þ|ª™€Þ­ú=æ¤_íqð« j~¿rDê?Ú0›þ/2„åT‡?‘IõpÆ9ÙÔ¬& Pÿ‘þ‰9Ë W+¯{Áã?Â{Ä¡¾¯q`¬I-˜ãD¹×°*Q‰wgË¢T‡dÂõŠƱë‡Xµ~ã%wUžïòª:»Ã¢ß•fí`ýÇ-ñÐjtª yBO¡6¯>ûqÍ0³(ÊgRÀqô8c`[FSÉýT}´ýŒŒ¨t¨§™=Ä‘Ey[_7%RP—)Äß'Ȳ Ï¡«…™–ùµÛ‚^ŠybÝõ²ùGgŽpÏ‘Îy« ãÑœ¯Uè5Y‘Þ#<kñZçAñÒÀ$ƒXñŠ©ò¾?á3pÓŠ¬ÆéÄë‚íÖeñÿÑõÔVŽvW?>}ÄGð2ÿ1V #:Èã s+Pñ$'†]ÆÎ&bź¡ ~šX ÿqï1½ZR3†+Ó›þí3íð²1'»¨™îWë°å7áJöq4{U[4·Ûè‘$ìÒÖ]¦‹7GAUv!-–yŸ°_m££Nî@×¥ùG*ê.òcsÇS?èÌ£ŸEÿ’œÖ6t·¶ýÀ*NÿŒC°© ÙÎd‡Yx†ÿ©’qwÄ\1Ò²ÿøËÔo9¼˜0²¬ÚTÌu¤.,(nŸT½¨ã83ïþ˜Š’#ê~³—ðÓ³:‡>\†ÁS_…/p%R؈HôOÜDÅÂAp§ƒàW³­Bä T#|ûfôW1­HV_…gwŸÁ™øœí6<-ÁªÉ«2ó¾`“s³›Ñô'ŒgƒmXjÆGg>U,&S ä“ò5ž¢¸9Þ½Þæ×~IqÁÕ¶Æ0©gµûu¨lN~0,1ýÓ³>£}nóéñvžðJ ð]‘PWK°¡ÚÔ5ý\p(óã"ñ,%.y®b•¶R`Õ/¢àÕíµø£ÊÔ6VÅ$¡o|òJV%<ßGüÇ9üNbpÌ¿ÌÃîüã |Ê"9»4œçl”¼b•wiø%ÌuÙÌYËb×w]fÂÕŸ®ÞöYU¥ð0” ñíø¯]诪€ü¥"þOô»ß˜8XÈ}fžÁŸãþO’ÀDÃÔCé_Ò€UÖiyÉ?çxÆW-týwwk+™ÿÑ€ø>=ö%Î^ÆkÝdîÓ[æÞ2bIñûâ%Ka ºQþIFÐ?èçä*5ª0Ͷ¨ÙA¤ Ñ‘7…ÿ¸ à«|q¦†fD"Ì•Dš‰¥3ÿ#ºšŒ…†Š¢˜Ì¢úsS<>ð/±Hû°ª URUï¤é8ý¿óªàö1‰†#›Áç—µÊÜÏËäGõSÛØWu:`Õ$OèH”ì*^%V?ŠÔæ"Y0Ç<ÉHÿè Öñl"wld~/±²£ßõ!w¸€ÿ`Îø¸3s6?ý¯~§X  Ò3  ;––›cST›(n<‘mxU<¦&õ,xfÉ»ˆ*ÑP¥Õ~™S¥ßýª¥é‰è“í¤^f×µ˜ÿáÌ#qÉþÂem9ÊÿÑ?7 äà%8åXüé¯7øpí#ý¯Žrd{P¥&˜ÏjÉez¨\ëhª7ÈUЭáÔ:f3[K¦´ŸúšY#w™ÿqÁ §aarƒð¯†wæÂœ#›:¢[ÕUëØF^Ø…QTWÌWu@+‹²úhêß‚_’~˜À½V748£Æ¬·”ûÍ›ŠÕ˦¶¾€ÅÌA+‘sYÔ?—á£+0Oc¹a6õ‘îßÉcãûNÿ2ÿ#+Ùò,Z2®Êäñ­‹Ô;÷§£úÐh®-x‘^xŽ.Vð«¦xÔAê=z®5ê,W¬v ùµídtÎô 8«þœ¡ƒ¦„8‡þê|þG,~¶ÅTu/SÿЩëd§3âZÖ‹kű†ªÃò¦û¢¦‹«þ£õýñ Åe$³88ÐbP«êtÕú›Î‰éè¨5ŸÇÞô[[€þW£ø›+2ècFs–{½Iú~æJÀë··Ê3ÿ#ÈYV;†«“X—Á‹"ºîƒ`åÁ^¿†Y‰o1E•hçÞ‹²Ò±h?þôÖ‰ä¼Å‰ÞªÄt—oJÇõÜä+È]^Ÿ{q£ÿ}Eú£Äb—¹¬úhx¿ ^ç^M’œÈßüëôõ[&»ƒFÍå®Z!ŸXíè'?žÉ$ŠŽ“§é4ÜüêøÕXû€êãJÈü“æÌ9¼@TxJN„…½Ϊ䂟ü/~½¨µó×ñꈖ÷ÿÜ?1–cݼ¢½ˆìËŸ¯Ô²ŒÁø$†Jþã vT˜ ôTMsOFÃj¼ÕÃÊ=Ò‡y}ºß¼™œ®‚Bªö¾úݧàää=é£=Ô÷¡ßm)›±j^°œŒî;äß­ØüêHË]šQµcÏL/µUw|yûy¤$'vg5ùG:ù»HÜÿúIÅ%Ø8§§íY_þü31p¬uòæÆDúe±¬gdl>x^°ùÇ&­.?·½o|ô+{±Óaqÿˆþ*"ŒH^uˆ{5û4ËÑ‚9æ!Fm´`ƒ±5¯@“b‘ ¬&lØ ôWŸù—-d ‡Ð¶¾Âš¤š¿Ž¾Åÿáù{}W¡ÿÁïî'¯JJÉ|([€Õ¡­­Ëg‡S}8J®³% 4«‚:+óˆDAì2^Z”E ‘³_ßv–¸ÊäÛ°‰[ÌØ²•Hky£Åͧæ‚\z€Ö¥‚GŠÆü%ÿ1@‹!Êód›AÜ“ã1f`ºqþ»³˜|?Ï÷ ?®? ˜Øjž÷±d^WÍ-âÔ/ýwÒÍ÷tÅÙÁ÷×áÅnãuOseO103WOÐ7‡õœúöØÔšdoia»§1©%s:âF†‰Þ¹¡™þÁ›ªí…ØŒiTË¥¡z}Üùk,Ô4{'ÙNüÇ2ly´C_áVªð ;ôSV¼h¤BÍu“ª£Ô7–f=§«ÊN«ú«ÖtþKB¿¾{vWúï¶°jÀZTaëwzÈ•ßJ4QK °^î·lp`W¨?Ÿ ¢øB]°NYé0œÑr¹ÖÒ‰ö1}Ò—ÑY~<»½ŒOm .¸œãɼÄá\e¿©•Ç©BÆýß̬1šŠÊR3‹Q×í‰Ï­½ŸNþ‘Vùu*í¬6 <ãí¸“É £áOS2}1Ÿ¿üc.óÃSÿñ¬´5™;çÑú¥'Ç*eOgÕ.æŸ+*öÓsä´%\éÉ"æ[sg @°]=7%Ñ _ýG ð&­z1žŠOê!ZùŽVW]æÖޱºc•qM!©ÅúeÁÇ ä-Ë1Ç£¶? ÷~6t€Uá?NøË?62—¢lîÓÉò&øU$×pËw™4v–.-£\QÂÄu¥võcBq?WvúËÔ¶"Ù÷ä^I/"“Œ*ª\åïYûo½|¨5Õýfe>øÿ0ÿ<š~Žþí}ŒB¢>ü¹3ÿcó?Š“ŒíFlCÓ…ê¼µ…B'¯„Öt3Ö †hcÜÖ߉ ò.þ㳤B‡³eáUìjlt!t¼—|ñ«+ÄýõèmsDæ¢#\ÊOÄï¶Û À%Ä%½rÛ'æF¢úR(WÏb£öC8s~¶ËäO~·ˆ¿÷“ˆ§¾ó?Ân#îvp€²Ô5|áoMT9•Ñ_]€ŸÉGÜR$Xÿ±U«ÈÏ-‘·‰±†«Ýx‚ø¶¢DßMgJêv2Ý£`a£‰ò›=ƒ´Ìþ6§õ0˜kŽ#~Ì™ K†•‡«’üz.ʦoD¢‡ð+{È“¾²û¶TQ6ûí¤— Ú`]rÖNÓ9%-GšýU'®ð$“þy bLõäY]ƒÂa'8ÈyXA»õýnø ®L=¼¨„•IE¦Õöƒ7• ÷: 2w„üc¨ø†}ê†]ŒRj \F|*)?ÊQAÎêˆþj€ÜoƦޯ3•>rÄ¥àöÃã…ó“&WýÍÒÌšF}Ÿ†u^FF·Â\Œ|Á$ ;¿Ô þc9¼CN*:Ž ßEI„WËB6â̪¢ÞaÇwƒ5]Å;œ&ö¬¿ji<“™9¿Ì!…¸&ù:~2+üù$ø‹*³QTAÌV…X˜[a°¡·°ásUz*Y6뗜ÛFÔw˜•ÃïrÖŒ†½¿hUQñ¨Ó[…"é,õum°Ê ­^Ö ~ÂÇl¤nª{ø[\±öð«j299£@ïÀ¯ÿ¸ÖÚÚ¡Ò mÝeg³_PIÝ ThÝ9WÃÉ/Ö’ÑÄ¿‰ÿðÓ*nÑê ßýB'­‡&ÝKTi˜­Oø„v*3þ&þNB¾uˆ8¿ øÕ|¾‹ïŽwOÍŽcrŸgõ7p‘~ËFøš°‰5uû3‹ÕÙïjaÏ£~ä<ùÇsÔ¶ßñéG­çh“Ù+,¦Ë;½–É?¾ ß-)ް?þÔ¥þ<&ª”bÜSÕS9Âìlõ`þà5¨è"„Ë›Ž\•©;ÏÊ€º¸´U“ngÎDÑcDt1Éd“Q“ðs½çú>±BVç‰Ò:UBiuÆ·{8[Q…ØÈæºæÊ'R…]ŽR¸ š»» ^WˆR*$Q‘B­þüÌÿ¿¾ÞÓêûã?ni¥ô f½…äÓRÿÖ˜iuÅ_LÌÿ‘ƒŒdø•¶3$‹¸æ˜v@„Å"”'†’RÔ6®êaäfæ×®gŒ-ú3÷φäE)•nU“É3^ðT“Ò «ÔŸÀ,×âiõ–)ˆÅCV9ÙD_£ß‰¸K“©ºðŠž+é¹›E~Åš¾ãžÊ‡VÇ‹US†¿J,ÎÃô§Úü ¶x/ž#©ª€‰‚ +=+šu Ü>%ýjkë?Žâ?|¨‡|(cs÷o§¡xkvsÚO°m­4`ÝÉPŽì"«*,÷SôYœ`4?Í¥¢q=Lü\"ü–ä«`jó¢ÙнßIÕq&^¯ä_*Èüúït +èõ×,WkÀž¼AÜþ»EÈi:€1CùYƒ,fçà8ž7,È=³¦º$ˆOAl.5õ祱ïI‰ó™û8ž–Ô&&;Èw§EW•úà3+9ö¹<›‰Ìûð^c™çûërCµøb¤<ƒZú Ù@x"E§ÿ•3ÿ¼v1HgjÙ.£žƒu*Îgzâ=f’'=C+|æ—ù眫"ð›@|Ѝ›Ü‡Mf?¢Ø¥×3'3Þ¨NàW0ŠÏ8Žªí)ý^Õ‚®Kwê3p·ýs°/4<ËC¥´Ò‚Ñy1?ê³U¼}ÊÞ2äñš©è„èC61OÅ'?[©°â3# Xûòúß㥽á?®ãAšƒØtaU æM< ;áVÕ•.ì'°õQ¹Ÿž£¶ÝÍõ›Däáu:g³žŒÓôžó1QQËÍWðç­®(”ÓY–‹´öCff£²q6•*ûP!÷[ŽK†¿›ª¤éç?j õEð½¹§œþ»åQÍÅ@˺ ]S{T­cìt)cŸ¦b²!èÚ ôb6½Œ;ÂwE@;sÉi÷E^‡~7œ‰©W¶–òÄ3ÁŸGvUe>àQ"üÒ®§¬ö‘ÉçG©þ+H7±MÖ$Îà(úùnsú$ ‚Ëþ\°)ókHiN¬ý[–þ¤•™ÿщú‘ÅtU¾Å¼—0úµ™/R ÿtÇêj×´šQñ§ùòYˆc*«læI·ÿ¸£¯†?ïGD2€Hl¨ÜIÿv—ëok3jK¡Q.h/w½vårÅtuÆónt¥¡ò¥¢eØG@P7’Æê¤S¶œýsƒÿůÏé•ì—+_Óòé¸ÏSè¶áô¿ŠA¶QKt1}û_-£{&c(ó£b1~[•ô§Õ IÌ\ 8l(ª(n¤oá\ù\,§k¡Ä¯¢ f)£k-OL[?r—~hÏôÝäUPÚ.†›ì#R„èÈKÐÿê6l¼Äæuæ‰~lΧâ¯Ë`gO‚•d+] +ŸZÞúà¼ûÖ8-\<á`}þCú2oùjªR`8)°¬7ˆÀR1W ÖœÖ ׃¡Ê$ ¾§ñk…È@ÊaÛ©¹ƒ8ÂŽ(},Oz_fö¦ æ˜å@®FÁ?ÅþEÄbÆ ÿ gJÖÔÄSƒñy§ˆ¬3‘,!>Î#û껟ß7ËèŸøUæSç9Úijòú¼^N>[Õ"Þ¬€ZËÎNF] yn¢3R25ˆ]†Ó£‹D©Å•þã"^£ x_züÇqV|/ª‰°ÄŽMÈæ6€+.Fm™ü#žómþc„¦‰ò:G¶Ö4 Oú2¿þ¨z‘=$©kFwåì4øóZø/øçMøº§ævqPŒ=_3:Ë©D*©ÁÃvp\N •åYÕ€~³ûáX£ÑËéó[ÀV´#ÒNKuÅüÇ.ø|¿èw›Nÿ!\Ãùø°“jG˜Sk‹o­êXŒšýñŽtŠÃ¬Bw‡®‚'àÑãç9-œ\àVͰ÷±ñ#áñÙUoÏzK™ ƒ ÞÜÊž ÿqŸûÒʱa:¼˜ù>Íiûá®qÁ|`òÓ'{»=†³-µ+á®\Täôõ\ïPôûÑÉtóà?L;"Q¿ØÑݹÓÊyͽˆ‚7š  rÒŽáÃw”õÓï*ò¼¢Ä8õÁ{üÇUó˜.»ðŒ…YÚ"ߨ%\‰]]Aê¼éÃu^~¨ë¢k³SÚÕÉvsôWÅPPøóåꨜ ÎzœÂW,ò\ñ¿÷Á2ëÈ?îå~°¯”ÿNãÏkk®•WŒA¿[“ÓžIÿ«ªV;ëúÝØ!veõ_!à§ÝÆ,ªêš£JörVÄU˜9øˆúíbØi½1ƒÓt\áûÏŲײ.øxmú'ž“©Ì$Ö_²™Š%3Ëé² Šö8ž'äûïýþO5Íùæ^5ùG#üÑâšìLܾFq;›8OfÇlþþ[ƒý“ ýU4öM¯Ãfn'‰K†ôÛù7°‹Ø7h#«ÄØÛò¡æ¦d“Éøã£-†«<–®­*MUõn⺰cyÓû¨&¡ö/™f•¹j€Õ½ÃS «™ˆ¼%)üçXârI|ÿqVþ%oSc´-Í“Á^§a¬6úšÉPjæÔrmÅ£“HsvHoyòެj,šÎ;d çÁfNãK¯à›¦~°¸ð¯ ð_:œ™E¿Êÿ¶ä$.UP¸gȯP_E/\¤#ØÑRôc“ˆÿS3Ç1&Ÿžã?ÚRŒ•t#ºŽíýÄÛLE#xV7؉ ‰½ÀŽÎƒ»LäÎ'å W+.# 9 –Š}Aê? ß‡n!xÔzüÍ}|Ñüîú—|¦àfL$º¯n—†Áø5ãð7‡¯§–.Cþ»¿[Ñ@Û²Þ’³hŽòÜYv6{­^NE·…Âi.õ;™_ûv*ä3zÛ{ÔÏGÅÒm5÷~÷tï±’<æiÈ¢«&q±Mõàa»•¶íÆDΙ~Í)þªú.yœ{žÓUüÇn}™è£n ù½d,ž‡Çxµ–x…Ùô«º2ô;bEyɉà î*GÎ÷\ñ¿÷A™50W©ü ­" ¤½Å7µÐÊ)ú‹d5†1ÃÈJתªÔJ+òÎÿ8`l&š•º¨ffÒkÌe­Kôß=+‰ëbµ„?V˜VÄÒõÉ? ¢îɧºÊóè¯ÒX×a­–~ˆÌ©Š„jKÿ¹ò?ͦÍÛb‘U±yŽ0—74¥Œ¢ð|ô@WTÑ9d%–™ïqÄ5æGUäØ òrˆºÛÄä6°$óˆÀ“ñ3õ¨iÄ0àWû‰tµNƒxñÌGa,s="ð¡ª.õ~çàiw°–»RéOUC$ûΪ½·ñ.íÎ/a×55g)P©'F4¼;²Uô檋’9,!¨#«„ÈŸß2&˜1˜¼° [ž‹·%LDc|Ózªß³Ïºª~ʾöÂ{lËsÇö9õ4YF| º1#®Ù\ÔÆËf H„5]ÅOw?-÷É_–©s¢‰HÉ»_mÑbv=‹]'¤óŽ ºÜd#®èƒ~7õ `¾²F%l~Nø\(8éAøÈóX¼Qè@s‘ÃíÀwLÄkíVS…—øÝ}` —+P.dZLŽtú“­x SÌO’Øé}àWùÑ5Õ¥þ||ŠÂ>ßùñïÚ/ËÀZÀjVd?ÿ‘•ÕYŒðË{£aOçé vqç+]ú2?júÝHö4:[fB-æC5à@‹å¨þã õyÞüN†q×î&Þ­HÇÙ>Ì ïºJ=C-ð§jÔ±ýÅ™ð¤sú&üùUpÿöú'Ö’IAÂŽñ,ŒFa°]]†?_~µEmüG~:ÓΤ›ùYжüÎIžŸÆ(°VÃ(…G¿;XÐkt4ók·’«µÕû6ª¹L®ÁÆÏõ›™²ÀN¿Äˆhc—Så=„~XSÀsj£ôj…¯ŒB½ŸIφÔj’ç&Ï0ÿ¶Ü<â'ü^WÛ¡6«ÜÊ.®1 ö}½Èʽ¡ûÏô.yÇTô¿ˆû{è×êOøžuཅdYÚó¦”5ïQñ‡¸l­ºª}DvµÍ.àjáœvZ’U>†ÛŠDÆuXzg <Å|Gmúï>ç­ÞÇ%=²=þãþh%XË:"³¾` ŽsÜõŒ³ïAŸ›=L©ï%ÿðaŠíHÇ´[º²0k„*"çŒÉ2øDYQõW±ÐsÅÿÞ_£F€ŠóKä¡uD io‰á?R0¿¶ O}Mwýù#ýk[çéŸÏôÏOCZ!à×ÿbþ CeLk0€™ê²H&:¼§äqZ̳ž™aáüWüIœ¿š/³ƒY§¿z!0­ý |ÈIv‚›¬FüÊ=ðˆø»ëè` Çèƒ: ?…”èév’ƒDâOd4Y#ÀLÿþäÈ´*ã?ŽËnOOˆÇˆ¢óU5Ã;EA‹xÿžþímBÍ?ŘR¾ùç&þƒŽKäËÉÈ?¦4&Ê=Kľ‰è³_SÕµgd?« ™G'ÔCgðm_°‰qyÆcâ=&èRìq9Ó%¬h²ŠÄV%èŸø4ð%þÏŸïsͨDÐGÉ?Šâ5\ê9×]‡·  º«J0¯myÇ÷â9ðµUìpõÓä¯Á꯴Ù@”!OËDÞ–»uˆ\µ ™Õ#4Qs™X9X„#6o‡—[ŠïOÞ‘„ÎWÀ è‚äŸñ详ÈxWolKQìùtØ‹AàYí¨ÿp©màÂ/ƒEM&—(£W°¿edp>\ÇL±É\hÅ#L£ZŒî--xÏ<Ö»AíøÎ ý>ý ÓC6šô/)Gä\ ¿É\®ÿ<œÀ:+Hý`]ËEÜÓ m4ÊéD*Ô ØÝôp^ô.ykÆ^íÁ.g´ã‚Ûe—º…vø ÙTlüëqó’Çþ¹·zÑJ‰? ûŸŽ ±ü¯è˜»Õ®bÓšøÙåÚA¨ÁT8–¤ÉN¶hºýïý\âN÷ݾ[¯—ÌçrŒsÜØrº¡Œ IcP èv×*½ÏÚ“¨­ÛÿSØyÏ®jƒ`M'Ÿ‰O=þÌ?¿á9Á-ôTÚ¬Ü=ÖÜóë> ·Ò>ÍœA›. 3ì1ÌÃMKï‘UøÞv]øNÎSN¥7¹Y |rT”ÄéÔ\ÏzÌVxîAxâ¼?í,t˜z gY ÿQ F—}ÄÉ_}<« sÿ‘ïtÒîÐüïYP^Y'#UÑ<-â[V"Ͻ¥ʸ*¿]ÈÕÐY‡.ê!ûóB¿µ}ØXŸ¥¶á»*Ão‘Çúàubã·Ó*úûýÏ?§Í ðy’&¡CaJÿ«ˆô¿Zl?";êÏJu\Ç™PÒÒ5Þù¤«1¿v®ßüÚ“àˆkäpÖLäJñdHºùo?çÿÇï¦ÙÄôg'¯1¹%8­}X~r<ó‚™ÛAýGW¡­Þ<]ÓŒ¢Væ²êÏw‡eÏßÙa¬Ÿ@7óÖ÷V·E1Õò5¥Ü%÷2oé¸õ1Ä)ž%¾ûðÕºŽ­ŸN$³´cuÐ X&Ö+<–~¤Œ­ ˆÀ3{¾[Àó‡Vôß=/QØG“мƒÓÁ{+0?êkÂæD$¦$£¢ßæù®?$ÆHöæèÃ`aó°™è[¢É?> ßý‚Ek@•ilX÷²^¨þc«Ñ?ã®ÌJÃAøb°îJêntm3ô”›@Øúñ´6P-„ï³àwØÊjED?Ьê:×›™”g< ˜Çp¢jÿØ‚ uOFº†=*Iÿ’_ÍÁ/…ž{Š™„(þ(ûÉËj±©äc†.ØZN³„šˆÇ{IMÖQ~–¿® ÆO@ÿ’b"Òw¶êŸå³šÉ…{ÎV½†7È­¹úƒ+J…ÿ½…?û~• mR;TÆÛðxãðÙÁËî’\ Æt2â‹ÑÒ‡Ÿ·X; ¹ß,vÙ _þ'JF°Ê®p—°x£¹/YÉÝ È,ü²7ó£Ö©?ßc͆?Ï‡ÇØDÆPÿ0¿–þ££ý\E‹ôÙÎh¿&º¯LQŠJëDö-À·æë™2FÿÑÙr¸—Í8ù±t8ñ¹ÿ‘ØNJ‡¥0 w°PœCxŸ"àWÓá²SÁ1\¤†°# oµ’éÒoË#+59èm"âŸP• bCÒsv·]{߆JD—kóùÚÀ&TgŠà^NÑæy:s¿«>¶ÐÝaÛÿŸº2 >Ë=¹¥>v£º£çR)^ÉîŽûB¦P€ÉJÛ¨ߨ»2-ñ^¸1¬ÐNÔ—Ǿú±¼éYl¢Ñþ<#jÜ—ª lÔpUðÝð¹Åì©Ì±Lÿ’BØç‰N+úç¤þc;÷­=ëD³×à'JéÊ¿#Ù2ÓÿÑõÈDUßnŒ~÷oµ]ÿ‚2¶(òµ8?»l×ÇDÙôȶhSuˆÊ‹¼-mÉôæâ/S30¯çz3}D ²ÁàGïôa™E•·ãâ?Ö8ýÑÁýeGûkžú üÇ$úŒ4v’Û¹i?ƒÓY /[X-ðø‡àW×AÖ竼[Så=аgÎ0ôWÉ?.8Ýž.#\W3Wg³®ʶœ‰†.ç4öf‹œž†.ü¥þü1ÃßnÞåOa›Âç¹Ùžɨˎn±JP?hZîjÿF ëWúæn€?OoîóüͰ|¸klo¤{"P&tS/Db1É2­'äÞb½ØÌüA½FXÖsÄ|ÅYTmP)É?bªF<ËWÖQ¶ü,ÚRŸW^$ôâÇ*lpgçàSkeñȳÿ)ÍR¢ ø}rN?3ÙÊðÉæTuÝ„Ã=­žˆ)"\jC°ðx¿á¼ëá©ô/ÞŒÿèa¤BseÀ˜Ý4°«àχá;è*ø¦„sÕW`?:ûáësˆ='ñßV8ÔþbMþã„5VNä‰K6þü qÅøT|D±/SóüÁNnïÿøÕžƒý¾ËOZ £¼o3ŸŒ8i ûRŲ‰ :À3ÍÇN×ýñ“=˜užŽg$³LŸÙUˆ~W“í…žÉ~ÝõìÇ©ÏëNÿv¦nêß~ŠMDqŒh%-Mm|ì}ÝÛœŽ~–ð=½8N9%ìã¬W*ôRTÑU;}Þ…Ïl(üõ¬î{RW&†]Fÿ1‰þ\©{°2ñ“©‘¿Î6 ÈÐDg2ìD7;¶s–œ§1ç<žz˜ëØüÑt9»ê¹µ^èôÃD c½N¨ªËT§,¤âï3õöô…B¿›ÔéL¿¯uè¯ú3¤„“Ó>©›’m¾Ã·~äiŒ@¿»Ü¼mÅÆ7Gå6³•ê(#Ìq^Pï1…*•EN ×]G¸¾:á™·ñÿq$ɉ04/É”¼UÙŠçúÛKPï÷B*õÅêo}E˜j ý¯ÚÀµ$¹ggrícwù˜•ŠþZ/˜ÿ®éŸÛ~ ưÖ=1\2µÁã?^‚‡oÅÖ-˜@wè3öiøüÎöj:ì¢:e¿3þü¬z/爮íJ#R×e2–õ<ÏEðKJ¿S¿mð_üÝ—úøž“9OÿÄxž?ýØ6bÑá3jÝR¢­ˆìWÿ1ßÈiå³:Y{©Œ¢*'øŸ²ËN¯ö?@ÊS'?IÅë.s¿È=b­Øm]4ƒÓä¿–û«Ž8Î:Ód1ì}r5}k>ó‹y’|äpä@úÛþ&ü²×1ŒªøÉûÂÄèwaçè%DÏ%å1îþ>æ<¸àq§£¾Ê@ÓòŠ‘˜?øý—ClòxöJÎV¼×÷x*Úñk\xÿ»Òň¤††ê?Î9éß¾\>‘‰Üv甄Û/ {üõo_±wñµx†»[[w5Häån7¶ŠÐÃc$Êôç\it®0#šŸ°JÓQî¸Y‚S ¹[°âîΑ ÈôÛ‡¨”xf,3-"è‹0ÝY°÷ñÉêPM²fÿ5qYg*ÊÞS]â Ö€„ìÁŸF"/,\Áì2¥YR[K¤çbé/ó÷ëröYàiÜõ(áäñ‰X¾ª Md_Ëá  c{†bx[0þc !Ä@éÍ™OÓ-`‚ã!ª‚ÏIŠMrë”ã¢ÈŽ=žˆ7ˆš³Û±fn7¹ÒqÜ ¬Üm ”ãÉN³‡¥Xß'x]w—Io«ðô™ZÅüÁbXçfÔŸ¯ÂËirwåûA^ËÁ¯ ºâfÖ#™„5RsîãÙÇ|ž•^T;¤ýšHïÄWt]ãìú—µ•½5WþÖ]úi Õî^ã[éð+ý5›Œ.æBrµVú6üùÌŒª’°·èj“п}üq§*õ£±²­™ÛŒZÌ­äšî|á¨vÏ4.¨6x6·Òü(UŠû¶D5°{Û¹'ÎTužÐc}6VÚË)KÿöÇhβàå®Qeò æº/Uˆ]è³JßtOµa.Á·é`$"SÿQ”·á“£Ò83ÚÚËìë6ùÌYú<Žç¿Kü·☓Ø.E†ôîÑ›+·Š¬Ó˜?xüWú·¿¡âÿàŒQÑ Šóí,ýOÁ„Ì Ö$«ù‡e¹ÕáŒêV!«£uµTÔ­Šÿ ?]1¼ÅrºZ¨›»¨}"œøÃzÄü¨ur±X&P‹î?/9à÷…ô9‰ø€}Y [agT2Çôoã*ÕlETtÔ.CÉ?*„jKÿY»ýwMDû3¦:Öo%Sø2¨ò187oeVv< U×Ï2¤Iw™N¬áɃ òKp¬/°2 °ÖwÉàkðd$×Õüú—¤'kèªÿ8dô§2vúÝäèN÷cY ëç¿i¬j“Ëœ@ñ¿ƒ•¦ñ“:«Þ"4´²·ÕH½±O\ïîß>Ï/w‰‡Rr&˜ÎK5šö"g V`Þ´„l¢2î1Ÿü#7?¿9Ñ:êùžbÍ«a‡ëê{øÇNر;Ø~oÎa;lÁÄ, ¸Š·”õE&`Œà)ÛÈ‘Üóè{Û'¶§2÷)7Œoyð«CDßEÈ?æâ=²à=îê×ÔDS)ÔóÇþ¹Ÿ¾#VRr²K三¹¦2įõ °—üØóÔW(ú…{Så|JÿÃRWƒª†~àõç>ä]•DÝïÖûƒ˜þ'ôRèÁÃÖ¨s¨¹ÆR[߀zDî4-Ñ`·è?ð÷ðÃÁ—Pè²ob§˜µÝèfzçÐo‹Ê º‹L¬ QMÒy°éí™øðñŨ± Ñzô&œå˜žÁdO‹ñušøÕ"æŸÛTñ|$‹na·WåuxùŠô«jO—ö~§*½AžPóâfù£œRÔ¥wCÃÖ ÿAOd¿ü£˜çz2oÖ. s÷š›ª$5öõ¨G™ÿ¸nŸ¦j|;]s/á‰Ó÷q†“Œž‘ì·Db;AÏÑÖ“œ[,Û…âýš(ØÕáÏÛÀGE§bæ‹ÓÅéâòAÑÛÒUÖù¢ËS?X‘>`ŸíÓø ø2àaSð{ÕN?ÿ1 Ž¡¦leÞ᪗kÍ„T”ÿ“‘h<>z®šÜ=°¤·8Áæd áõà‘Üþcg•Éeƒr•ÆŒ/âmsaû °»ƒTGTÀ/ÝU/±êGE7ñFº¶~?ìùB4XÙéœøZÒã2ÿÑÞ°y¶þât¶“[¥'*Ÿ ÙƒH±%Ù† KÆÌvøèid1ÁÄö𶯆¹ÄZ'V›+]óJk¤\LÝ:‰½XÊ'øà-øˆ3àÿéÁ¯Ö£ò©‰å¬Et¿X—$ÃI–3Ííj½EF’°ÞÐ…¿ç1“:‘=ìîõ‰íìàWcíÔT,T$N½Fþá®?_F.®Å—¼tLlÝ@ú«V5œð±úTô»'ÕWS‹ìlLï…~÷Ó,öbïïéÜvaêäë¡çhè—Ôîþ»•D¿ïÞ–ª2;(Ý)¢ w°þc&EªÃBG±ï9SPKùbçÏÁ‡T§ÛüS|`;üÑ:°«ô¶a·Õ§¤ô¬·™91SürÜ[ª)ëOi³»ËvOX”¢°*³É;R³â2:Ûö¥FñwüÀ;®¼?ZåXöm|!òSž;2ɼc}€½ù Æ¨öL4¯ÇáÚÞ3°>úß•ÌÊàúL·¯HXæëôßÿqÈžóØ ›¹hç2ËÚ:"·1½A bƒ W·õS™Bå°“¹²‚§­¦Àbò™™ veÑä ‚ÿµçyí<øƒÉ1;@›’Rœ]òøC¦úÝZ<ó}ܸ€ÜGÿ’WdFËíô‘? :×Ûu„=\ƒèü2Ê•9#é‹r{³PÃDÏÄÏÿ{|fÏ»fäý_ןG£Â5õ¥èŸßoþÇJ#›UÎÊL©ØV2óÒ]Ônc õçõ‰‘óòß‘_t³z.–Ëcbþã¡ùþ‡Ö‹)®b_vÉ<ái™n¨tfB붬MÇ¿œÔŸÇÑ ~Õ?é+^‘!¸t'¢ú+ômZƒVç¬ÏbÞÈ% œÝPQ¤–…eXzÿ, M~ƒ¾GŒoK´ã £i‚nFìŸF×¢ÿn,bìÌjp¨þã¶Ñœk9=¥#9Ÿ…ý(EL^‹'½ª*ã®ÞІpÖyÊÓÐð«‰äïÑÁ¿ã©ŸÃé ›Kü+ë ã©ßÃZIQ­ÄÓ§þüZwf‘±ØŒi'¶øW|N<øóúä,ãÊPüRðfwÆ=hÐöâ—Ï¡>+MÿöÒÂñ<¡þK‡7s‰’ ~¿€)»QÉ}ä—•¹²+|>Dý`7a êîÍÕÏQýøy¯dì8>è|?üÇu]ÃŽjï¥*,<³,éÆ`<‹ð›/éW~ x•nY;d¸ õç5韘”Žœ¦*p2hâf3å±½˜4ž‹i"Ðé\+l;x¤|(°|QÛF€KO +t$¾ÓR zoyê¡0®Çù?ÓìvqøónèPá@Ýêî_¬¡WM?*ö¿U_"›k"üû ºïIy™„œÇ‡]Ç9¬îëù̯í “ˆ~-|÷kúWõÀ5µ“±ÏUðJ͹Ö{ÔÐÂîï0ÿc¾ÑÞœÆÞ“I´¤¶±¿L¦âÒ³¸7UçåP÷&ïH7}œ­5ý‹¢ß5AÆòL&²wæÔ •¶Áä_ˆž¢éÅðyÀ–£“ÁUAU‡þ»çèwX ¾á®óÙ¯Jå<*¯ÓöZjRR‚±Åµ7rï2Ȳ”ç¬oîQ@ò§|Ö)åOê7&–WG§»äë0xÕ §ºÓ”~¾å8Á÷衳2óä ¼™&¢+Ãw>'ÆêñÍÍà*-x¢¦Q×{I¾ Æü Ê­yö[xü]N#g˜ë:é™]-É0KSµÒ™sød?Tôž%­ª¢ÒÏ–^þ/Ç¿öé™1ØôïÛqþ<¦çœ~lék^ÀoUÕDZ««¬aþy «µýUòįÖ3ÿã˜ì#š…¨KÉœb0šÝ¯œóu±RÜ´žüàüÚ˜â3xÿVYÈ­øT½á’RÿqG&b® Qo×DÐÑ$ ÿ43›Qexð«8º% )Íä îayEÍEY1h¸-ùGnôWa©yÉ*vÍ”&Ê?ŠÝ<ˆNVrY}"+-nRMWwIOÜ’N ƒÿø“Ú¤å2Ê­ö¬ø31pFìêd°UwîýÄu›AræƒS#„ìü¥OµZ±‡ÎänϰèIø¾ÈÜ õñ«&W~k½/wŸŸQýU‹û—œ3¼Ì snþ<#~'z®Úøµªž. üGYý˜¯ÿµ‡ü膺€æi‘Ì(~ æÎ¤6eà%~&ÿ(EƲ/Ùw›¾L¥’]E${ Š®Üè&ÑÓ¤'qY~àt0ùGWòéò$Ââçä¼éãÐ ±n­‹RoîËÓSºï`öá‰íW¡_[Áª×¸_gÅrsn ãÛÄüóÅà°·Áåž“IŸP©¨À+cGG';Ä)ìBMСµdr/Ñ!ßÁW%_9 …ÌèŠóã?RàñsÃ5b͉<Çst;¯=ü*j®ê°·ÇÉ9 ³¾[ÌAlÿ‘ú·Ñ:9§}ÀÜýÝŠ'¬˜`Oˆ’¹£ûRoè¬>Ç.F¾ÐŸê·ÏØÂ-°´§˜pUÛÞ¯+s"mÈ¿|ÈN`çZÒïviÁ{ŽóTý©gã?N  g7…‰II?¨YD⯙ÓÑžh¾=ÊÓgØï®°] ÀÃ>°Ç!ø7žœ >æh0^»%,Þ0Ô#QÁ…:’”ƒGŸÀ<ÜbNmê?ÒªŸÝ åÀOtJÀSÙ^J¦”DgQÛ=ëõ5oÂüJÞ8Q5±P›Å 9]QÚ™€½¿H}÷;ªÿ^’Õ\dZ{¼Àz{]І2 eOvZü‡ÿ›Ò$&55¿µZö&v—ÍŽA¯ö‡°»aNVÐy·þü*ý'ÚÛUéT“ކ‡•:Šuøåb5Çã?nÑe‹¬§–ò¼­Fåmw½ÀóŒàšk‚‰5tf¸Î¸ ¹Ò0#÷†ÎGוþ\·p|aK÷ÉIx¤(\ÛW±ÀsÅÿÞÓü#@ýà]£x€?ýØ.â ßýÉšceeÄÓ­ßÝ`ä°²Zõéß›þWþý5òîUcšð•ݱUùxsïˆä¢·å²|yÇ7 /q^X!¡$Á¯žXzˆZKußßžÎK±è·âƒîég¦õŒÇ®ÔÔQ4øu æý1߈Ÿ¨)KAÿ’VX%Ú=)(øÕXt@c±f-A1³Èjf„´ša$‡¨,Å3µØù$v!1üÇm"ÃËàcOAÐKQ7 ô Oªÿ¸b4€Ù[EÇ X(G.ƒ^U!&¯Â“ÙW¿Ú 6ìà Œ'ÚéÇäîßY• »\a5Á“§:‡e×XŽT0,Àpòûg¬±ö¨J?]Í)T‘•Läàûõ|á?rP+ûY[2b÷”¬W—W©úú:ꢦÄéÏÈßܳwãAnáO ÂŸç ¶ÿn2³žÈEôœ[^lh3±Æ¼aÐWÑq¢®ˆO,Ú»tî|:Ö2&ù޾x+ÿÑ …ÅD¹½Û ò¶4ú3ˆWaòÈh°¸ùýúauÆÜÅâ £ ³ùÇf®w Þ“N+ÔŸûO»ûçšw_#ËJ Ÿ² öùXØ~Øï¿`̣ыcytMµ˜¾.à!Ü^"è{¨x½å× u%Á¯~ÝȇU]ªw¢{» †R-—Æ^¨çØi©?¯†zô¹D^æS­ãT2‘§ÜǃŒÕ±9é¿ÌÅßÝéÓV²«‹ð;™ñíx&Þã‡VÚ¹Y³ “™>“}ø8íì º4õWQÆÙœå%ò£}ú"J¡†Âž«ûŠ;È4 ~·‰%ƒÂíS×è Ü…ÊõàS/™LReÒtg´=‰,'}æW³b#*cî‚8¹gì  ß‡~!ùYê· ï´=–þT…ðc¨ÿøÉ)ãì'êNÿö~ô2‰2Öž§ò'r¥W¼31•5öôWÑõoäóTo»¶ê.w¨›:/5.%™ïtÇÞêüî²\×é™ ý­åŠÿqØv?ßýðG+ð9é_RÔs~­¨? ñ+h®Ë¾ÄLät¶¹EWŽx¢ã®‡®¬®Ÿ©ÿ8ÊüÁ\ä[¥èuþm'üy%â¹8ZÉ9ÿ䔈.²X/™Û2O.«„·õ÷âW™ÅK¬È^PÆà@ÐgeZ»,î”u^4•;ÔXüŸ ø<뱈ŒöÈFUÐH=†ì ‰¼ƒ=9¬I×EAC–’çÂp͑ŞÆlDÒ›±IûA¬Áx<Åv¾ÁξÁbTRgeDbÈ„ªG¨þãˆÑ «<‹:‡ø¼¡WÀFKâ-Škà‰A‡.“)¸‘£D;]Õ°P{¶¸ñ«pz,^ñ%vÝÝ·7 ‘t\¬X?,Ôsþ| K¶–=ßâùÿþí%Cì4p͘j¦VåˆÁZ‚ñ¹çŸ¿ÍÈY¦(wÿÙª5ˆÆ p-7´oº Q ½LfÂóîúh³˜ÈýË®—SMr‡¿ß ítf²–“xºG¨?ƒEÕGż\q'ŒùQŸä`u1ÿ1ÔøÊħ£ü¼ø´Ä°«ñ“`^ºYQò¢z`i·ÉN†gçÕkñSɸ.`ƒwˆAúï´†ÊÙœ{ 0¯}º4wb(¼NZ2‡v¶ËÞO/Áô/¹šUüª™\Lª»Òáv­^%?é…PÜŠÌýï„÷Ÿƒ?ºŠ:ì´šFýG^ìæ$Ðu =ýÕRøóˆörXŸ"¬õ5ÕŸïc.úî ·XqÙÑ P¢x b¿ëCäcP­ š¯ q}æGwÆ€–¤ÃÔ5]5k/ªÙðÓrÇz‹¦ß­WI&§*Æ7v ›ðB—´”JìJ gÉì÷ø£äLØA·ÛIøÏ¬ø%äuµA±^à¯îÑ? 0ëy„ÑýUrò›ª¹[mªaßéÓø(èt‡à‡F9±©ýó"OÂáë*éPÓOö6¶þØc&ZÍõ<*Pžÿ‰ªývÕE@±QÜù›’µtºɼ Óuús·Jì=Èâu2Ä~øÃîZr–>*ú«_<×Ûý•‹<@=f4®9:þÃ=£!/øÇ0å~ÿqyê›d_²ÙÉØ»¹ò&¨®’¬`žð¼å&g<ó?^9͘KuXOr¥£îåwòsø¯µr:è‚o|÷_éŸøž‰þZó[Fe38­¤çVü‡‘ÌËt$^BÜ3å´wŸW`úA+<ùÇÕì6– ¿jNî‘Þ?"²Ñs÷ox¦5b‹Øa)ëåØKÐÿ•W| \Ž¿¸Š=m~•Á|ožãÏe&Ù6¬t¨½ÌÿYµ=üÇs›Hù-6¹üé´:äòøÕE5Æ/šFý`q¹;èF‚|¥0ýèVTc±Îþ‡»®¶ë5ÿ¶Õz‰;Æ3“œ·W¨þã”Ñýî$[ÕUŸC×U˜¤v¾þã+þ-ƒ^‰%Ç^»¨¡Î<™iÕ†„ÿx„]ŽâÇŸ7†Ã Vÿ 9ØüçIòøDi `¢sü+È5þó…eÆl3ÅMNíWð)þ£ªêy0ç×ñsÃ`»Ÿ(/NÁ]ÇìVÆÞà*æË¢ÂÛð_:º™V_Ê¢—±Ú|F]N13™ÛC¾ó­hCÿ’h ‘+Œ ›‚_¿M¬ØÍ£ÿ*ß> 4Lø¬·h˜Î9\M°»¾Xׄp¯¨ÿ8DýÇBìPíMŽã®twoY"Ö™þÝÂÿYqŸÕ[.!óû ýî:êoÃâ…ëw÷#ü¬¯’Ä ;¡7jÛÒì²<1sr”§ˆð×ÀŸÛAø<Ô&áÜréYägô²¬XËd㘓ýÖ®z²š^ñ9=ýwQ/nÚ3t8+sƒÇþ¹wxÄŠ‡*í2 “{qò£ûz<«JëWº+öþ Öï¾Óœn ÅíbüÚ«Üöã6>ù,ºåA¢Ówë5qa®tÅŠTwõ!{¼Ý¼*9<õRêÏßÑ¿}€½ü.©ã­Éš ðHIÈ?Úê›Ò_c·‘š´Y¼yRêÃÍÔ“ Ô[½×Mÿ’Ÿ©*YŠR9þã„=ñy}áB2ã?z‚ÕÅ ÂĽˠâXó’•ØÀëv¶Ó©Úò!\[OòÜÎx:„¬sêº"¸.â? »Jæm´»Òm¤ßùÝRñd›ýKš2ÿ#1>9OÀUKFbUW-êI:3¥7>¸Ø>P§ôœ`iü“ƒ·³í¼ä_xKv“!Gó‹šäñðó‰¤Öð–.£×s·\/©lÙûÁKveþùu¦”ÌfþùÏ®Ìh—[QEã®?_#û£@y ù^„¥ÛÅ·çýÿê÷·F]´µßV{Hçäà°æoÿÿ?ýN†aæ°†YUE9Ñrw7XHýG:« ü¹iÅùaÿ±V\CÝ9 Ô¿±º ~UšúË‚¨NL¨ 7í¿_%ž½ÍF‰tÎâOùT¦1š»deð¶öE—SNd÷œƒÿ÷ýô‡¹ž}XÚ—{Ö „û ìïp”ìò »½ŒÇKÍ.£À«„ÅÇÅ'ÅWY˜b#XØõ7ö¸8ÊG¢•j¨±’hú3Ë(XÆèaàÏ÷è’;ýnLúMœ$ÎÏ©>q•îúëBXÁ  cK°'#É”Rù–.”kžkU‚íõ}LæÆÐ`5D4[—‹7Ò=ÿã ±,}d¨ºª&+„XéóÀXi¢UaWm‰ 6âç|eo|äQÕø)‘k}ìØ*òœ;¼ ñ!—Ðï."ÿ°ƒÙeR³ˆ(…,µ^J$èÃw5‚WÉLöâèuêš(+Þ‚’”BûtÖf.üO<æG}’ƒèùô®6,1Nîa½ àò™°@AN‡Âq ¥þC°/7~uÝé0°‚bäŠËñt#Øû~úï. ‚_ͲzÀl ŸÙOFQšü¥ñå/Øþ¦v:Ó®w"Ó‹|3ó?šPÿÑ%[,ò®øuz…|„‹+n=—‚=äǪncÍ1`ýèu˜ŒúñvAø:°GÉ?òئ=Ô.-Õò>ä #ÐïÆ¤þ|ÍwgxÖŠBuä1õ•+\J&p„h„½Ô·þjù‡åZÆ<¥átEÏi—·`íüè)ö·ÿ±\•4ÿã7íYˆ!. Œ'b÷Ñ;@¯ª ‚Mh?£¿H>4MãœöBúÁ§¢ûhîu+˜’›ðõ¾Ä"3ôß]f´0‡ éŠ×m¯ËéúðçqðmCý4Ï“èÖ‰úÁ¦°ò+œ®°,a²ÀÔtfÕXö1ü{6ýLú«‘¼L+ÏÖÃT+Û­ß=Œ–½.ùÇ/Ìç¸bopò1/öo'ÌôU¦%šT¡o…?Cìÿ{V%•¨ûöÔÔ2OÿQ‚'Þ²½¥fºn\W}øünÎ=æÊÎ`:ûp' xVJg5øX.úï¾Ae–f5±\T¾r´ÇÜ@¿ë×»‘÷l16ÊËþÅ¥\ì-°0Ëé\Õiê:KOø®ÔŸG²ë»†Ãtµ³¿Ø7À;Üþ£4V⊺þ_ñ/™Õâßÿê¡QÀLä9§oç¶ß£R?˜ÝêÿQþ%îîëŒô̯mŽÿˆl% Õ~õF/qE6ÌÚqCØ"ŸµÑœF½‰xý€uûû·¿´bûf˼¼ÅÕTy’9ÝÇÍù²˜Š$Ù »RX Ó•·6ïÓÿÊqù¬úíæY\HþQX^$ª?BÌš˜Xz´L+SÉOÁ_Üw_•â™ ?.p%wÝÃs"úÚüz‡ü£4êžLd#—¥ ö7†jþqÆHMýû"yÿÑFŸ'[.£žÈ¢0Èî^²Ÿñ™à¯±s÷Tס¡ê¯:X¹ðj³¸²'äFѰ9iðŽ1Èì;?†ÙMF·fØÝ¿½]\º…x§×3Mt èw:»­§£×GY•kÝC”ùž¬¾Vê:ÙÈÎÁ‹_/s9éfþs°ý¯„é™Q¬¥"ªÌÈûs Ýoy—“<¦ÔYÜ'¾mÿzÝ/½LIÿ«¨<ÁñçígV¹’¨wøU:8ŽidnÈÛéÂx·¿¸¯9aÂÑJÅåsÙÈÌ"ÓÙ¯6‰ AæÌ¢þ|ÏA|üÁzlà#²ßøÝ“º5}¯öRóœ§t#ôW[àv_¢Þo¸²³H~ò,fµnÉ\Ø—äØÈKä4ˈ3FÛg…/G—‹O å3‹x¿¬è¯æQ‹‘—jùKdCt$î÷sëwO÷.+<÷ÿQJ Xˆâ<Í·Á¯öÙe™:5ÌÝ}ܵ’ü£¾}W‹Ö%ª¯‡»Î.r×ë‹ß­W^þ“ræªë½W'éQ?’þ‰Ýu8*à&Q¹qœh&WÜ‘ª†KdQÈæPQÓ~IæpAúÏ(žFO×.œ‡»þ£%Ú‚(϶ëÉè˜"9éPuÍwÚÒ%½2lÃ@úƒ b7ç”]nL5\d®=«òŸ—½ýî[Už]QÅì?à'Ÿ¨9Lé}C•Š—Sþã)5/é²r‡ZǽÄþÃu1ÞÉÙ¤A¿›ßs½eÍ“"9|aÎaÙâ#õ«]ŽúÁƒô9OϪÍìn>µç‡©rœG ùlú'F¢ócVÜÉ“Ÿ\>>Ü73pÖÜ.6`ëVå„9­zØÐéHþ6Þö¡¾6õñç\'œú®¶Î}]ƒI¹u˜ãkÑw±Ð t1¨X2ä‚o þ‹¿?1*™i='s×(À›üØ6bЗ6¢5ʪHÿ+aUfÍàWÉè¿»ü*zˆ]-‚ÿ)'á?nÈrdìqˆV Gä´6pγåZú}ܱ¾šÁŤÁ¯åþêCë èÆ<òiØê–Ì?ol^3—3SÚG<5©?+^†ùƒ'Ä<Å{0ñJü^[Så"lQ‰ïCýGŠ0å±ÅCa‚ÀDÑÛxŸ÷à7vÓù•÷Y=ÃöæÓ/øðÔî Õ*TÿqÈȆÿÚKý‡û}÷Bë‘Eý-&’Œvç%V/*_M€É­Èê'÷ |‚ݬ˜Xª®Øškpšˆ‡éi°åý‰íóè|}˜Ýe]Œf§Ee£+}¶3Ì/2?¨Ä`ìü˜”{²Ùà6Õü¿(þ£µ~åç˜F²†87<Ö#‹Ðž'ÔñÌØøGôc™Kþq’¸ÀÝ  ç•ýrÑ_¼Mîû½ ß9J !“= Þ‰Óñ_åÛ§aÆk««ÜG¸üª@ýykv4Æ>äv…'¾ÿŒÍ?h?„=ŸEß¡ –Ý™Gµ/–€‰Â•<û«arƒMÓŸ1£]Í•WGø“ðù”}'žà«, †ÈDô¿ ÿñÉ:/"ó,z?–ï0,÷f¢è'0çõ%¶ùGX¸ªg¨ùÇ%#3hÅLô»±±ƒ‡Yi)}ßÝ36¦*fÁ±$Ћ©éoNîÛËÚÝb¹Õêî¾nïÙ‰å(À5ÿŒFs¢®Ò<Œæþ#–8¾ §ìb¥èMc¢ùNæ9êFư<î¾l8¢ÚñµÞj–ÑÝÅe³_¶™Œb?ör›, bóL~2JŠ,à÷qõVb6÷ÙÕ oKMÖ–Uÿ­ž‹©"1XÆxøóýj$ûï b}›¾’Ã9Í Érô»-åQ¼ÑXt é©ñXÆÕt&»éH—•”\{<—ÿ…5½ÉÄÆ©ñx»mTÑìR?xþ|2™nF½Ÿ“ÿÓž(/ýIŠ`ÏÛ[À¯rÚÏèæQP’G{êðXÏ%s-èŠëQ«”†k {2'¿‡œë˜ZFý9ýÌ™› ܾ ¨ø%ìqYð«eº(Ö=ªI>ãÇã)ØaþüÝŠ—­ø¬vmvLxƒÊ ~Ïôf¸ä~|Ç¢ç'TÃíƒÿx€^¬Ütýú—ͬ9GD ]1¦º‰|·ƒ«jÜ[ aÛÀïÛs"`ŸW3Íõ󣯠n‡å>ÉUÖÀÚÏÅ# û {\ WÃL£¥ÙŸ¸©%ˆSS°µîø³ðñ£P ô…˜HuwZ§;ì0›¯×¡;áyòÆÌ\ÜJŸ«dúgåÅüi>´Þ±ûÈ<­Õ©ÿèÿx¬Û€ÏpÑå¢SË%Л½wºhGr1UÖtò)ôäø£‡**³àÊxίõ~áxš˜ò£.èKĤ5©?oï\„—y ÿ±žI¸õáô/¢án›ô16QÈ%´#¢Øô&GOÆS–T5õø›Ä£[ˆ¤¶1m¦þc‹ýÕÙ3sÀo†ãmvÙÝuÔUÀÎUÓùK§sÅCçU×ÇüÚyj¿@ ûžm†Xô±þÿþ•7Fµõç'¨ÿÛ× ‹g^7]ÖôWnÿQœÓžc¤¤IYê?R1Ð ú½A¿rÈ,ž€ æÃÏwSEZæŸ_3oŠ]r¡ØGÿö‡!Z© k¹¿C¸µ¬SyWûv¯JA·ù‡²†ò7ññTõ0öß-N·W¼Â¾¦ãR}ìÖ|žŠšèw}ѱƒWØØqàWydX4Ë ÿüÊÝçÚ£/DOÕPT$Ó¨[&n–hŸ\ªZ¨þã"þÃF¿û=LM}„ªõ’ì¦;ë¡ê€Ê¸ëÝ5€£à,ú€b‡V3ÙËÊ£$õƒÙ‰>l,t¬ØxT6P²NÂcžÃƒd$æœAö“Èùxð·À¸H¯Î„øÇ³L>,ÊŽ’ài›€Þ.ÁJ¼bG[ÀŠ>SmÂ'/ãM:DN‘ˆnPùÅç`VdÖyÛGø•ÜÑcüýºdU™¹ñ9¹”rªÈnß,|šƒZ '‘ßM©È¤nã?п} ¼j\ßëWÈWø+dceÉPn«—ú$Ú¡Jö]Eìl'3ʤáÎP{+õƒL‰Å ¹ùeú9|ý+=\oþ] ¦ÌÑ u=ˆ*ê¡»m,ë)oð°a K%É Ú9ƒœXÔvo÷èA?Å©ÔYD¶÷bí‡ÀÆ/e§uµÊóÌŒ6ÏXQa‡×îþ»`?£ºó2ç#>| J«ËL¿EöðÞûŒÁ•ñqòìà¹Ñ5fÃ5Ã^|[°ñ#š+žáEäóe Uüªþ¢µó”~»ë™Œ;œ‡©g_óÑ׉ˆB.–­yº™¨ “ùž¯¦ÇÜ£ž}¹œ„erwuî#ÏÓñ~-‚ëÈ@Þ£Z„ÿØJ‡ùJèw—èìtéßTÎðÝr(QÊKÞªbÝ· þ‹¿G&SHé9wÿ]ÿnX?¶¤øpÖ+¼h(®ùùUF+UÞºåõWÇŒ⦬‹2!öÊ[Ęy~Aì—«à?1KêÂm/®¸ŠçŸ. òÞgT5ä5æŸ0¯¢ßÝ'^1ÿ#‘*ÆùQ%¨ä]#¢[%/CÖ9 ÖH)ièéÄÒ}˜ß”K ’ d2¹3 {|l]ѱ¼ÁYŽƒ_ÝÆ†•óÓ_ÝÆú¿&×-ã‘Ø_©ú¡ú9F>üÇxæ+¦ÐU‰3ùÅäåÕìfyö|D~7ùÇp"ö¦ªŠˆà¹÷Áou°•ÝìÀkþVŽÃB·„%ˆ]Ê ê2Ì=g6¾~«QžúóŸCÌ4o1ù‹ü{Þ“¸À[øÅ†d˜#á?Îcûçi|ñ[ï<þãŸn¢ß'SˆÁl.ýw³òæüDT™o´_µàMÊöõ¬íè(²ÚsQç'çZ‰­lO…âu¿ùQã?F1™¾4g&¸JLlÇBpåÜ‹¾X÷ŸÈ9ò£¿: Ö3Ô®9â<öèÖˤboýî k¢œÈ¾"ÃV,ž¹ñ« ØÄ#àAñl_ºR8N{·nbW@[ƒÊœD÷ÝÉ?¼ôl´ßùjÖ+rç0÷S8ùÝz Ïʺƴ×1·#sFºBí@]œÓÖôÄʆšö. Èü|$üÇ3ÛwwÚ‡úÁ!< ¯¸Â™<)tÓ§b|ƒý;sÝÈ3/õÓ5è\xíä3.8ô½Ì¿Zí‡V÷¾»'Í$]jÁt×SÅ3,ó«õ âdr¤7ð™ætô²gë¶T;^£–¤ë-ƒ?wOiFÍ‹ÿö©F3s'×…˜¤1œFKº&¯ÖÀÕÞÁ"Œ§>~굂äG£à:Ø ©Ç–`•á}4§öG¨ÑžýÍB¿+P9¼Ÿ5íîD‘ËTUz+Wú«Ÿc®U&¦GíGo–ÖÙÊ´ÄH° ‡ìÎôéÄù-ÒÇU|jýß”šæ9ÞØÄ`CÕ]Ü4—ÝÐÕ˜yç5ð<ç˜írÇéÍܳô8ðrÊlû3ïÍnüNž²h*»ÇÜ þ|£H,2‚{²J>§š}:žqµ}ÍŽ@VÙ‰úóctTl«>GWv•vz¢Ý‹àüEî¿þ¼$–(n/–{®øßûÁ¬næò"&oüòƒ (š&ñ\6!ÿPz,qp3úV£Æ5ýwýgØ„¼b"qKhVJIÂalÌß¼9¿RUò7èt1üÈ1|Ô)ò£ŸˆÖ Õì2š ‹Bþ‘‡xl/û+…«@fÜÔþ%Qzn"ëDDÖ§á1š Ósïƒßa«ÈÚ0˜_žVë¤V}±ê]°ˆ3Q%~ŠÈ:•~z[Q¥—¿…ÈøP»ŸZU!žsw¥qO£ºkØd­¥¾€ŸëSý޼èWïÆ°¢áÌ­·Ê„°’vúÙ¨'ò±·D\O*¬©»Ie0±Óh²ÐoÑ!#¶µùÇ6v?ž,6wþ¾«,ôZ‡Qè¿{|g5Ö4ÿŽ¿BýG7ÙTœâ$³ÃÄž¸™€uœÆâÏ]ì²#ý¯fZòõç A8r£ÙZÃIùÿm§þü(øMTzßí‚NK­[{øó¥ô†}AfqœÌâ5YÈ"˜³ îK-K³ƒÎìa‰îŠÕÁùL&ÿÈd¯¡þ<ó£ò8]iä•Y5ˆ[QbûGôÿë©_u/3½¾[ñšUv¬7Ñu|¬cO§÷FôR=ÝNd"ò“诼áãËãE*â5Û¾ù¢^…º®øã»õz“äЉ1Z“ER¯õ.·²þ#;ý¥†Ã|_#ÿè ×Ó¦ÿ~nyÝfA—ý¸?W¸Úh`®%žêª¨fœM~S]ÔgÐï êp^øJ Iô§ÿJýà[£`€ù÷2¦¿ŽîÛõ…í÷˜ôñ5gZ¹É?›yxº–Ù­üV=ê£[ CTå¿úac.S•ÚâÛÓƒÓ¯­ –—y ýÕú—,A¿{>øo á«Ä;7Šƒ¿8,'oÊ*f"ëª,­î‹8rºÞ¼¡ÎâûgéÊôi¹&$*~¢!XË,X}zä¸ôøîÑð%a°ãÐÁäP» øe-Žr¥îŒc;Ùÿ~O¦â=¾€Õ¾ .sKÆEï= ùÇ£ ot°ñM@µ™èDS„h¹—* ž| ‹¶• ZóùYýÕèP}fo+?Zâð±Ñ ;%RV0ŠÑDáoøó>ð«¿øiïÈÀóà•Bê_²Öc&‡;ÙO\PŒ¿$©ìÖ PŠû¼‰H_ÅŸRîi+9ËðXê¹2_°õƒ¶™þ­>³|ì¯w8!þö<{º(Z ÐKº…÷r!W êɹêJ0ùÇDð«FòœJBüß…è=‚^M6ÓƒëjÍ ¸:]Œà±ú|,iQr¨íxÍÕp÷ˆnV˜ÞR>ßÀ,&{vç,»tað¹؇ìdÀŸßµOѼüy{;3Š¡ DÚ™±¥Ã©w>LÿÄÄ2°.î7ë±1¶A…Å ò¤ôI?éHæ_`ºÒ%üG!¸…VØävèџ؇H¡T ¶°¥tðDWy*Â¥šdhG›4 HÑc{%lðü[*ð«}d mP6_ÑØïH=8À¬œ#ð“ÉzGèçø*º”̨RѳxUö9ÙåHòL¨’®¡žÕ-o:û$Xe_…pB®þe€Ømüy4¢:2ªþvUU–H¯¦níh&i,„óÙë”p½M‰å*F–tßtÙ¿JÊ3.ðϾÔ” h¨Æü¨¨àÉi8ÁOz/µÇyì®2Ô{tæ*u„{aôÓÑ·’3—æ9ÉŽÒ8IÁ¯˜fû‘wûói¾=2çÍ Â[· w¢*oÀ¦hWgÛ߸vg¥SÿqÊ)~uEç§ScW§*]`Žáfâ?ª 2¿ ã´ãÛÏü¿úý‰QËŒæy²®Ó¿$‰çO?ö3¢Ñ!ú£9ÝÊ$ª‹¿Mw-Å# ókkZG­„VlÓ¿ŸYXÖÝgŒ£ÿnS¢y° ´ ±E*ë~ýKã?.šþõªaY/—xî2Ÿw ¬ÜEê¤#[^Df¯D9üª\ýGó)}TžK¸û«× ¢iFOÀ…`Á6¹¯™ð ·Ã°µwÖ#2­Â`¢Ûøî30çÉÐ_Ý@s›ç®J®K©22Yo8U3Ôüc­‘BE`΢¯ ÇzЍ¾4uʼnÀ»«_ai—‚w¯a‚Ö\” T'ÚÝîa¥ÄÊü‰ý½M¤Ž\! WgÁt@%yT#î¿ÿHŽå_Æÿ)-Ë›{B¸êËF3ÌjsÛDÁ4ã{¦ÁÜĸ'ýÝå ñ·bŸ}9“ÚKæV0Ïd4æ WË£gD»ëÏ[’dæþ&‡y.ªŠðö||hnð–ùä[£ÉyΣ“ÁÔª \Iýùy…ÝúÝEØç|øÓ!̨õ×ã0Z›cÈÇ;óL5Ð t%üÇ!½Kú o;ÃODŸFþ0õƒÒwý°’ØgÉ{†à­ÎÀž3ïQ®ð\îLó„õL•àžNcRyeõÿQÏ.ìULÿʘ›ô/ùßÖŸG4/˜ÊZLýàâ¶Y§k™Q„ùQµ¬+–e™fXbqÿËÝÿñRvÄ·fÆÎèÁ8?=A2­G,´¤–Ú<ÿõâã?©íTBt&‚.(—Ëú°ýÉGþI¨?O ÿÚ,ðVkbî5™yK— ::Go!N Gí"ƒŸäÇâ&æ«ãÀ¯’˃þñSdñ˜N_áObû¶GÓ5Ènƒâ”&꣫`ñ¢‡%PuCõ[ÂL+œÿ4ý"°qÒ¯D^mQݾÀ.'×ë‰Ä ÷¥çphw»—•_Ö[s{~/³ŸVlv5QõLXõd&™°±‹¸[…åï!öß½…®?<5ØùÉ9É0Òr]åá%_]a—•Á¯^òõ}¬¹™ž_)­×Ê"Áö¿²ýêϓ¯àô½ùŽú ©àLN³Æ!QWD¶`™óÀ ÷†cq÷ß½(Z²àú_õ2ÞZý%ÁÀ‡†b{Ã㕪òwÓ`çòƒdœ&)H†0™Ì+>_Ù€ß\Oþá·ó{‚Ôœ¢q¬ÊKþr¢(ïw'âƒä0ù°ùÀÜ“;Ùà¾ÛÕl/Øé·øõSث۰í›áÎJ|g &±=•îêÍŒXçC0Kð˜ƒÈ?ÒØãôbòy*ÖEôy‡‹ ^ó4ì8QN{C úÁ“VbÞ««Êþ·‘‹¸E·—ØÙôSÝf:‚ë (~G{þ*ò~,-ÈnàmŽáƒkˆšßí°4éDvž;×nüŽ:OÿöáTŽô3\S™¤ô„¾¹óì…èz“ ¿šIüÑ…ús_z°Xv/}8@ÿÝeFYsœÒøƒ»T–ÖÖ­ˆò¦éc̵zc'ƒ/ïŸò™Žè{©iL…]*'c±Ó¡øß (¾br¿R+5ëxø÷ ·‰+*Û9‰"êRÅ8”©"ùÁ~{þÃüê3œÊ:´³¯¨)Üm÷Á£÷@¿»¯˜@Ö‘å<×Û½Ô™Š§n®Ú¦SÈÙ°*5˜Ê±•®‰›é9²Ü¹Ç  ÎN·ÿ™¬$™ñ6ð€ä Éý¿™„kæ\±Pv㹟'9S*'½«Jf‘§FÕêíÌv­w%uewµv&ê¡dIƒ2è¯À¾-%ÿøõ¢2ÿcÇ·ÿÅßo uðç?Îåþ×ùG&dFC¿û3ë>˜u9íÅè¯2Q?xØŠd%ûÁúÁ«ÆXñŠè´v¥•Ú,>’ÃL0§Š^r®ØÊüˆÖã:¥Øâ8lèZ™$§¨ª+×ÉÑfxk=¾#žŠ¼›ÅD`Ì9øÐþ»ÛÅ=?t¥ÌÂF2vwÜM¾&Êݢ垾€®Œ¹ÌÄ ~-÷WßYwÉ´jk»õF'©ˆ[ÞtëYÍ[—UTçâ=\ªY¨þã„—:ÃÑôO¼¯z€C»{_½Ä; ‹ÉÆt Ð&4m=‰¯;«á"´jŸ®Vð«¾dVð”.‹îºÛèø¦áX(åWÿq‘ü#£~L6ÿ+óÏ+†ˆ_-¢/Þ ™AÁgdáçGeÖsYÎj;˜—àÏÁØXXf0¡-x¥=Äöq`V‹ ÿ;þç˜ÞŒ&r€ö¥çzò‘ÍlÂ{UäݼGLU„/ÌCg,ß>îËpbÏ„¨åßñžW>Üxduƒ?5íMÿ·­ù ›•ëü ~–?%óë®>…«.ÀÏ\óÿˆ; ð,²lkWÕ9uª>Ü=¸Kã4Ö8;4mÜ¡wwww .Á]‚H‚CpwwûßJ_¾H‡!ÜÿÎL?ÏL¾„äÔ)Û²ÖÚ{ó$ c—‡Ì©b—Vû²žüc8Þ;{Xw{ ]Å!î@çù™¹½žZêBô•*Ãü¨ ðáTÂÜÂl’òú«¢ø,hûrâÁ–ài–“©N­©L~1vöR'Ði#þCZ‹É ~¦Vã2ÕäCT«›ÓŠE“èàWþTf§;jy³xÿ±LLÉ~5ê”{Vl×N»%óÀ›T­šäòst%pµ°7ª:T*®böØ#ë±á9šü#9hú,±Ù}Æÿ¹ïÐT:\ÅßÿÝG¿›ÔýÝןFì«Ó¿=­±ÖÈ!j‹ëúo¬²^«†r·«ác¼ÕM=¸4"ëùi ¨lNÔœ†u›xcä5–èQJ­ þc ú«wYÆý;‰ÄM°¦M² Ñ©ʲSþ¡Ç7NÈ¢æC_Ž%¾/ûÝZì¿k¥ÐÅ,}xŠßÁ&ƒ&”ÿ¸C>» <ß™5ˆî%É"4ÿ#¿ðoàõ_‚»ø²êmp±ßXõÑaC²œ·ø»äGq°5¿ë?|á?4s‘|,ã¡=ÚH¶ð ØéÔÓýÕ+0¦j.yĆfïæÝŒ*ìc8ÕþÂñLÿ[˜ÊS=ûl,è¬ÆyöÙ‡ˆ=!¸à5÷Uýa}¹ XÖ›ð$éù›¸Ü‰üÍRPîÓøÎĤRm&¦¿ζÏ|˜ªüE2o¸þ#«ž]”å¨éÔ<š?¹@;üm~ð¿ËØÖåb¸ð°VeV«ØõîM:23¾Ð'üj®–˜Øä*:²udVÉ©gœÊ½„Uï;‘µ%¹Ð%ØþD‘™ƒv¹’øÏ#+ÿ1¿vµ1GŽa79¨GØŽ­<ÇU[‰õßT?xþ\ ¿ºÁwÕàϼ+¿7 \gªCýyX¿^Éø(±÷ìÔmQ×ÉxŸâ?Ò[i`OfXÉì»VIª öq_~·^ñÿ©È¡nPÝýL Q©ˆy·„éß~Ä ß»XɱAú+f’[G¬ÚØó¾ /á@®`ØOGÑu½ØB;ó?þ$_°-o´ÐSeç¹¾9ús#*ŒG\5Ĭ~Û .UQ’)Mô[ÏáºGõøCvyÈzJ6ʺfÕà ¥ÃØuÇL&«Ã—~]°š~SÄâ nhÎ@g6þü«Œ«*ýîgR‡³’ØàšÝ|\Á¼Aü¼ »ÿÄŠoÅÅÊ;ùGnâ/] ¾®wz€í0±[‰òÆÓc騕õtfX *R£OÿÄ .W-ÛŸùç ñ—ÝaTxm–yN_Ük¿.øüú˜^eÁº£—Ú/ºí¾N?¶øÔe'5ùE qE¯Â*ÛðEŒŽÆ#†a~³* ü£œÖv3U©5Üñ/Tüí¿ª`L×o0ÿcøÕZfD¤6/xíŒâ–}•}> ø ¥sRã¬b>±™ÿ‘Ä,%rDèÌüꥈƒE‰¥Zà“+ñ½Âê'FŒƒhõ¥äÖà |óS,q^8ú«¨Ä&—Éaßa3Žš6èP-|ÉiP¬‹Ò"îObæÿ®ÿ8¥5Fe;†úóÒšþ“'A\6£ï)Á¿nwóâ,®‘xëÂ,yžücþ#+ëù ! $ÿ`v©Ã…XéÁÜ×SÁð“¨êÂÌ'ÃyŒ®áó1þË›Þÿ©Ã<‹µ An5 ä G~ %Ñ5s þ£>r¸åAuE%æD\€_i@øÕ¨wó§< ›˜¡€¸ 3?*ÐH˵¿G®–“Ž_5@ž"[ƒˆÅË£`êÍìÁDÓ[í.ÖôÆu±ÍžXåìþ&ç¿5Eá¼áÁÿ5äyKOfyŒ{¹„ëýr§3ÛÝéçxŸ:ñàWK™ÿA –ïÊÝzª!Z€GXhÝË’×Ü‹mÓFè{Ñe÷â©hŒJ£‰LL?øô_Œæ7þ|$z®êðÕ3ìf–ÎËÛ‘YÙ™ƒ{OvZÎt¯·X¿e$ªŸÙÁê‰ SǯþBÿÝüô/¹B¾Ãuißß¡š0YÄAjhR¨® „ËÕ3üy°¢º¡~TXôUª‚²ç9L}jsËRs9 ýÕJøø Ld¯CýyE{¦uÊšº–ÙÎj <ؼGô¶ïär·ÿ¸I\¼Iö"ކ–d¾<‚†ø49ÐNëw57¼ÖRæGec‚Tò‰ôoŸo×å:Æ;¼Böá­‹‰•xø_™õFkªÇq? /´zÿëúdô“ÊhL7ò‰|ðçXs‹V‡ùcÉ?l#‰¬ïvߨñáž¶C<¥'exÕØøà`×ô8r‹<#fŠÓÆ=¼š²o/XUDSLˆ$£9%)ȬzA4-Pœf”«e:úD¬ò¥ y–-cbQž=7#–˜@^ɯ‰n¢ŠÍ‚Wi-³É(rã·7äþ—TÂG|’žhv˜øjßTc¼‡MœÛû˜Aå6¯ÊT؀ײòwýÇ]­%]mÓÿ*j¦}\½ºøzàAÄÓX>§‡8UÝDN;±â¿÷œW°©ãavž“Å%cONÞR ÅþX¬Î²š}ìú¡îº@÷ªkð¾èwƒ1å¿×kg¼“ÉáÏ‹`¿÷Pe> ”o"¹B5jÃ'ÃH b3{ÿR þ|&½psÁ-Ü¥ºbˆÊ…âg«¾×ý–;+>6R8ïþ# S8¢bã˜ÕBeEÏ´ ÿq¦!®qPÿ«v(Ò†±ÃK g»‰"ª‰’¡Öû]J0ø;d4‘!c~ÔzX„ßPÓæ!ÿð¢²â-õƒQ,÷f·ì³+üùòi=#_#¯þ}¢üÿ­Ÿ¾ƒ;ñ—zN6ã©úÈ›òŠ:o µß[…¨7_AÝGzl³þc0ÓIñù3+vçÈ‘¹š‚çü³ î(3þ<Oë{žÞ:ÖLs¦ÜnJæÅ¡Fc.3šæÛe]oð—/©O¼[“Ù~ kÑú?Ég–ð¾Ä%ÿÖ+—eþ¹ª”¢¼EwU"Þö¢VS°¥«vkþò–•ÔuY}X>Û‹³]CíyUf€¼&[ÞB@‡•9„~÷>ýX·c뜼n>ýÛÏ‘ÍL§þœ)1tÙݵÀµŸþ%¹~·Ÿ{ WnTÿ±„ùƒ3xÊÎË>ÁŠ÷¥ü·à¢Áú«û̯ ÎF~ìàx=š1ü£,üG~ž®=ô/ÉIGÞFb#ËúÚ"üGk45¹°Kq¨ø“.ZwÅ æ×nûzDzKŸA&!Ôør²ÍÌ¡ß×OQÿ1A¦1kD°ÿU˜Èx£D`õ-ð OL/,s::jÖ»pœ±Ùcà?ÒE¨þÜ…~÷ ¾¢‘_ÆrÆ¥Pi"´©&ùGÕœº…4àFYÍ?¾ë?ÎiN½Ç¼ ÿÑ¥e)üN~"óUØÏ¼á{A@.£™‚5›HÿÄØ¡¬@ðõúúiªá ;×7ï »‹ÍžŽ(© É""û{d5ûÉöšàãËñ¦Edýo*%vhãÈ?èaޏYGtúïöà ® f}¦µ€8ÝAØâ«öó¦ù“…U„YevË×í„øýîϼ7EȧŠâÁv𬔠ǸÆçËf9S¤¦oSg¸é5œíRvš…9Ž_ä4º‰…Xæ>öÓP~üjUùAª‚BöŠ‚^ ‰@ýªÑÏÀæ%$ÿð‚=ŸÇª'ÀÚvPï¶vËÏhIþQÝü•^#©}¾M\á‹ï>KÇDv}}Nk³ª…XÈoq¤³x§ëß›ÎÕÂÜ—²ø¼0Vy±ß‡ØÇPÅ©LW-D|<uŸ:ööVð¯¼ô<\‘ïq {:“úó¢æ~½h¨oAç|À¯âpNÉÞƒ,mBok[-ÐEA9N ôU€ •ó ?±Tu¼Ç8b‘Š"t–YXxò@òÀþð){Ì'j/ÝàëY©?|/ξžÆig%E…ºŠìÓŽ_·`>«1jµ V}  ‰ÿèFVÖ/ÒV¾—à9zá%«3ÿ|¹½¥T}{=þ£»5<«¼ˆ3=e>Y€Š¾˜Ó ¶¦ôþ2>ã»m²¶NVgê?Ò ®ó> 0¿ö:suë3é9ý¯rÑ¿ê,KdævÅ€m/»ˆ)+†`¤Z¡¿²àK’~VWå™ÑŠçêŒlî…u‡OãÑ×Ý…?_ r5“NgeÈA ¢CäÎÔÌøð­_ŸÂ'¬·JûN?SúX¹]Ñ]c©?ß„Úl;úÝ‘ð÷ì_éœøP5¤þ£&ùG|ûÏàzüG”ŠŸéç‘hõë1ÿ¯¾¾Óš„˜X{S«ù¿æ?¢3O#õƒ%EÅpú'®Ö*5Œ!ÔèF”¬<¨M,olÝ:jórÒÿê9ýKNÊb8b<ÑoþÐ%È.¢€™’úk2Q¢ÞÖ£¿jBþñ‹œ+sQ‹œ¡þ«¥Kƒ_OUdUßÿÚ¡¶ùzȇĬ×y·Ra7¦Éd ™™S< g¼/›±œ§°ÖGùûWø7(Æ,âÃ2ô^0Uø­0õƒ¤nÆÃ*ø8ˆyK-¢ýf}0l_~N?¬é ¢ò?¾ÛÿÊÛȇï…Ïx@ÄûYNÁ;–3ÓЪ Vö ‘èiì¢/8ÓžþÂ0¾©¿Ú ÿ‘Žú0|LeŽº<ì u*9ç‡î+¸ýîÔÒí`ÊÚ€býIµ– Îc$èR^4ÆëÑÚ¤ÿÕ6øîL×F/ÞœÔitÆ·Ç‚q‰/f#Šãô«F0Âwæ ³øUsI¯fåÉ”ÙBtTñ§—~}—‹‰ã&ókOà?â£óròk—ÄÚ¤nÀü£·D?“‚kúïÐ5ê?Ò™i™?Øýüi3}êËcx’_à? Sþ˜^g¶U]·xºaÏba3bÑöë ¡âz9Ê\„Æ|0µ¿­JèÁºÁôl²6Ó ¥½Ýýî »k¸ý\Õ§I]ô»Â¾Eäuˆ7²4˜÷OÌ ›]ÿßùõ1Š«àÉ(ÎüAPÏEÄÿÉð2~¥þü¹^‰Uh¨þè ÿ×(¦D|)~ó 6ýU3"ð,ÄÉ/Eú—Ä2ÅAé˼pã•&þíCÄÛ`Q'ø6`08F1ºÍ–eÌTTjŒGaÞT”ˆÐ™WE5El"Æ}‰ík€¥_¢vò)§|H”~Œ=1ÊðQ2·Ì#ß~{Cîùlœ¯eVV[‡5Úr塪áê> Et°’rؽ/òŒi¶ýnþ᯹°Ê«°“÷á·rõŠbS«À¼vÁþ}Â.'źfÀ‚σÿ«-b|çœÛQØU_žk쟅ÎOýÑœ¤ßýÈ¿¾Âé †˜*úÌ}kþà'mÓñ›õ¹Bsás¢:ùƒûÛ ŸY˜wº´º„§;WïtQœaNãn •9ÂåÏc¢ßMˆo3ÀÃ~¿ÚÁ=ð$Û:²†»:D<‡Kh¾Ük 9Ob3@ÞíÃíß>Y3ц{›Nô&ÔÞéjž·#ú©^|œ£*—Ý lýˆoáºÉŸz°îD®À0±ñú+£ øU ¸¬edjÔyvà¶–xþžòƒ p‘ìU%ˆîçÂá|Á¶ÌXEfç%ãÊraîK#ã“ÌÇ]ÌÈñ§‘Ìâ~LF]šÙÚFýyZpbiûì;s¶ñ‰Èb÷§ø©F ,™áσûÿ9Þ#'Úk?²Ê°Ä%a.˜ÿ±Âʪ,”I[¨<‡é –wœÜâù‡Ã}`óºûša0ÅdßÔEž¯Ž¬·üÃÛêk•±šRáqÎòÉ?FÛíàw‘í3xʪ<ùÂ2Eýàý¯Vhô¡è"Zƒ‡ugÿmxö tL½lÃNG¾1~ßî{}ÛXýé•ÉNÿh©zsEöQ•çÙà~Ãfëgðn&ªƒß­ôfcIE“ªJ~‚úp:¹—v=%zkç¤ÿú}ÅËô[Ø‹ümYvNô»ÁU-ôMBRCUŠè¢*LMY0«Žä ­éùÒòƒIŸN}ãþ·”:Ùô/Ɉ†÷5+vðFfåŽBÿ× ^ÒÀô!šÌö–1íÆ®«tvø¨Ã ‰‹íᮓôhDýà1òäÌ?©Š6ë6ê9œx.6c©ˆHµÀ×cþ_}}®•Öƒyã‡tS ¯×iDŽY?©ÇÁdD$£1Ïÿ|-•QÓøË8oÄ1r}SÕþÚ'µ>ø:°ç)Qžºdb—ùµ‡Å~¹O쫌§?ˆ‡Ý4æ*ÍÀœæ­ž¢Ú oç-«bñRS?˜—Œ¼z˜w6üyâ?æ‰ÄÆWÈ*‡y‘Õ5KÉ7ÄÌ'±)iøé4™R“ÏÂ_"ÔOŸ/Åc™ݕӹc71®ª…7‰E¾Ýv%ïÂcÞ 7ø¼fßõÚ;™‚Ðaó³a•˳³Üx¹Ø/O¢ûM(‚¼É!ZÀÔ56û†ÛÙ6äö<8Ä”Ýð—ѽ–ãaTG%Ïde7sάÈ[Öä,#õçߊ¶iÝôƒ²¶ô<Ú6°OAõç“Ì&d/t»%Ê}Fÿ±_<—u-ô-iEüpîLT=ºÈÊ=ˆª–¢QÞ ÿÑÿ‘›¸ü"gùYôkcùÖ)ŒÇ¯{ Ü½-»…[ÿáEýÇpy”ë=Qõ$ç³”Ó}¤3ÖµßÅÆƒÔa:€n`(Dv<ó"²²Þ\Å©æ@qL¶V_½F79]˜ÀŒÅ‡âmö ;X€bׂÝN/ò‚Önð«r0¾%Ép"«Éªj¢š(“KÏ0g\͸/K€&ŃÇ/Îá9MmEìåTôW/è5ÞÞL¯ß"ôß]Š Þ×þ±_e4ý˜šò¾¹°Vg`@¢šã ~Ž~×ÇÊ ƒßîã_ˆžýíŽø¨¨Ž’ͼ4«¡pðµ=脺‹Ð;l$ŸPÛx—\²x—yOͲútÂÁ³¥%2ŸC?ÆéTܧ&Šî æTž$ûˆBý “!ÝÛ[ަgž¼99~kâ”®dÓçÕk SNCÿăª¬Õ UŒø 2J2_²š=øöŽ¢I¨õjËDŽâ ¸;\®³ûGwCð°gÌ;J…eE·‘¥TLþÌ‹®øÊŠdRþTÓ¿wºbþù\­§¾O9ä¨5¸SgùRÚÖ6ú&~¶rÂÊÁ:ÇEåƒÿè‰Æk&ZÞdd6íÉÍ>àß¾àÉÒšKÜwd$úÝgÔŸGRÃáÏÇ™m¸ÏmUmæ”g`ÊÆ C´2Nê÷ÄV Ö‹5ô/ù±þW/ŒKø¥2yC³öµŽ~Sß*K™¯D\9C&ƒ ÎÃþÕVês¨ƒ¿nž#Gèë{×<€®îèwPÕ'#–%Ó“ÜùW ýϿŻéT_K¸Š¿Þ c[UÁ Þaý‚(6r©Òô'ƒG­äù]ÿ±Nû(Ñ–£S5Á]“ÛÝ)úOÏ)Þ cf>8ôŒøŽ•ä Ãí rÓµŒä £©í¸~›uâÃ3ÄÀª FíYÍv¬ýaІ'x™¢dsÅõou­_© Õ×Éœ¿9»Ú=ÿ" ßMÌú‘]v‚±yÁz¾œû"мåXÜj²¬®ÿH¬'Nm|25ŸÕvóžøÉ¬\Ã}ä6çDSa[ëPm:³Ê‡ð¦÷¿:+ÏɾhæCžáߟÇã?È] Þ +™ñÝs@³zkº•ăŸˆ< ï3ŽL!¿ZÁ½î‹'ŽÕ_ìüÇüÚÍÆtéL5NH®0‰;q öÍÇLò›™þ‰+‰r³Â|”¦ûN,©Áçá¹fƒéÌ¿ › {Ò÷Î!ùÌìøD0qøØèw½À¯®Ñ?q Ý-–ªœÖVJç¿tèH‘Næµ#Œÿ8F\0•&=ýÀï&cƒö4ùGøéD®øZ ÿù©?ÉÛÔÁlGµùpÞ–Ö¡ìD]•ø÷®'yÔ=ô»Ë@šXmÑW½gÒlAæ޳çPÍ݉ÎTwrMOöyŒ yËê¢îË`ÄZôW³@n««<ÍUžz ó£"Ù¹­.ä1ó¨Ôø}ñL»ýGÑ+=;íÞ¤±W…?No®tßäyúú—TƯÌ5Y­xû‘ñ@qUüê0ú­²®·öSû³•üã)Vÿ=™Øt\ƒY/@Ýd*AM™Ç}¾%é—…<¼"‘Ï35I¦5« ¸íëÑ…þ%­U kóÐÝîµ[Ì<©³Ôº¨!´@ÐÖádÁ÷'3g¸ýÇyøsêÑ`3zð-•þVUØòºpçP ̰[Ú]]»¹˜¾Oýêbr%“Y¢ØOy‡W¡G/Œ¯ýI½?Vaç¾<ÿ_^qgŽWé¿›Û}~lálä1@«ŠªèQµÇ>­™QÞè‚þJÑmäÇúå~Ò@·«€¾dã-¾+ží˜•¾UÇÅt±Î¸ ?ú¡íeQ±Ê ¨ó^À,OÊ/Úk=ÏÀ'‘]úò Ôúî,Œ¿X‹:a¨ `ǵð·L_¢ð*æ¯2ºšÂ9»X…W9[F¤£@lA7-™lt!–úV*›ªLö!°©UàLò‡h7³‘䈀ÿh€µXΉÈm7Ïêz¢àÚ° uÌFDT¾¦ƒç$ÄîÀ£4ñ¾s·‹p†­Ì)x³}f4sXz70°qà,ÙArz‚íyÈÕh žWË\ùúÙú(ú·WR̨ãlVRçx†k¸o;üFqtõùº–ãøá=ö³îq8‡ó²ˆæVƒWL®÷%ð™T/üámüN üH*0‡;9,V‰ŒÖvò_ÔîI_°†Hæ)êòšÛÂñCµ_˜m27Î$ ü—€ËugºCà ©{œõJp²Üñ]AñâvÐ^¬Ñƒ»…ÿ½ÃCÔ:u™¨™˜„-çöMü^ÀŠ„Æs7þ£} £‚c‰*‡JNþÑ{:@͆9 Û ¡ž™þM‰&ÆP5q ÌNçg°Rk,±â1§ëú)ªûêPÿ±ÿ‘‹ÚŠXçI*6ÏéY}Z¨;}ÔHþvÝN*2æÈšñ­…̯ͤ^¨á /É\{Ñ£¶³üèÐU*Âr<Žþ,€#œÅóÔ £ß-#ãàu¯àÏ{C-2ßÐ/· ÜD3ô\‘\Þè¯öP§±”i¡•—)ÞÀÕšpäKTŒæÓvŒÎÑÚë«@q{rÌ.ä) ˆ†žPOB—+üÇ2z‡C¿[žx–Ý™‰5öX´Ð‡á?p´ÁhùQ!ÛËý¨ÌÑqɱ$}²ÛZg¥¿gt¼ªñ à·K“\²_Ó•ñ"zÙ´ôýÚ¦–ßû¼ò²©är¢ûúe§þüŒÎÓ¶Õš¯Øfæ²¹ªqÕúSÇymDLAµ…Xa:¶tÌuTáÛ°ö¹Í¡ª‚yÃí?Nçx˦ø'ÎÉlÖ³ç»ê’¹´°rqÅ„k¨=Ýuž~d ]½`Ž–ƒ_é®ñÖ$ë1Œ·l¾°8óÍ¥Écó`ÏzKË­»Ü×É}"ô!ž~L¿­75 ñ³8Äɯ×"ÕŒÞô¿Êi¤ý¦U ñ³Ú@q ư™Þ3=5åŒKzl8€ëâ8þã‘Ø>xí·ÆA2Çy2;×¼Ù›9tUáû¯ËFôâýMž¢{Yûïö¢ý{µÆúr}ŒxÄÜ6Y¸ ~u ›ZÞ#¼lΡޢ+]lr€‹}Ë’ïKcîöy2­œ0ÅK±œ›A(òªÔ–Ä€±¬LÄC•7É>ÞÊ}R~×,Ò⡊Ã|“Ô{m]K~[&aüBFbÿF`XYá”ÎÃýfWÙrwmŒddlð“DÚ1X%ùG|¬Rì…­œ ì3xÍTê3~…l‚ºšM!ñÙ‡¹¤wd*°’n¼%Ígò8ú…žØáNð5èçÔŸéLdºzµ—k€žv™,%‚{ë/—L&²àe’«Ôrí‚3/ˆ·4ÍXE:hÑEG‚¶×§ÿÕšÁÔN¤4}éß¾ˆ+¼Ê×OóPsut×i†ÿˆD,PŒè%V)1è’¥©o™õB%DNËÅ 8íXy´ÙZèFð´»¿W\Lýà"fÅÇ…sž„-¿ã´¿»=k,bÒCvbæÓt, òR›ì- 55Ð_б¾œlæ-,D­RT~¹a§—ãeœþÉ}©õSè„ÖZñèâð¾Ôh”!ÿG¥ZZº¼ß"ÿ¨ñÂ,}G¨ýŒlpBGxŠ“ñ´WÌwðç§­ IsPîþìJáÊìš‚¶¸2Ñ18 Wfuü§Ð90Çbr¨õ²Á”oÚÁUš§n™ÔZMÐF $»HìÚn'ºK?­>jýÛoÁUT£þ|%ëÝ£ Ë\uL~øz+´)ðd àeFÀ¹´%¬Ktµ™zöŽEU£?ÈpòmÓyš‘ÚVv˜ïÈ*~—ƒæ®¦{Jøêe(xSP9øšÚÄqxÒŽäSÕ;®6µEÔÏÕK¢{ õGZž€Ýª²Ìư!ÔÌ¥ëÕ]fÛσ9*OƵަ7ݾ²QÝèˬɤĂ[A¯’ |-}Üþ×úÁµ²xí@ÞÔ®r‚]‘É$µ¬âıá¢jS?#Ru&€Ôµ'«J®øtþ*ßµã-çÁã¯"ƒ-!ÿý“è-BtÆùH7÷8¡ž ÷Møî‡âð ʘld¥Å“ ùçZEc„1Ú8‹Zê•vé»+„ü…zKfªæZ'º.\b¹>VŽsW¬WÈhÂãTC®ú³ ÅT5žƒÂ&ófÍ:2P6Ðs÷`è—¤äY(%‚#ŒÐú»rú*½¡xC<îp¡ ]V>ÈŒús%(ÔP”}5©1(&7‰£¡ÿ4ÜïâÓ>=ÙA|tINMš"K('º‹Ê©vù#:©Xh]ï0³äþwïf€ïŸ@¯õ [s¦º?Ñçâ“Xé‚(ZŽ hŠ*C¦UZu2kaWÂpGÑ:hÎǃ8sµæškD#ì¦JV#ÖLE¿¨Q\+¸’ýf9²‘RÌ|ò±æbñS•³² ðiM­ó{sœr ºFÿÝZrP˜;½ÐH‹ÑÞ̃¶j S>à[7‚ Òw/õ$­¢LÃØýó4¶`u³¨çäøAÿ«aæ¼7šó"J) Ñœ»÷„9†¬¿àO–P‹]½OzWÔ]õébu‰kòÉt´¸ÇYõ¢9“éGÃBí0ªœBÎ|„·¢²*¥æ¢K:ÝœIV%¬ÇtpÊGeÞUô»[è\˜Š>ÁÝ©Êl…÷¸Ë‰fV»¤æ^ÏŸ*æÕpC¹ }9rGù‹™™ÚÆATwWÆxÃ/d ·Ôgê?*±çCvJûuþ­PG¶üÉ9—¨&æ"÷33V×Å+4®ç¸÷%­fŸ ®+].òg.Õy&áN†ÿpú垥Rþ½o§räExÓŽ¼/©L3DýyT}9Úžæà›[Í»TÇW3‡YùÚ>zXjüõ&Û©&¬Dý¹A}ccº«¤¢Ûá•F 1ᢻ¹Çí?Îé‘åüÇ4Þ ®Ô6OñKàj‰by?ØZM»ÝÁµÑ•Œ­}]y0Ŷ1üÇcK¨uä¤K±«¹æYBt¬wŸú¿ýƒKoB¿û˜ùçÿÛþWÑu_=ŠQÏ0E!ñY/ÃÓ°QËk´1¦§QÞ~Ö~¬ÿî ­‡ð—ÅÉõ<ÔW¾Â­Ñ€í¦^û–qûýœŸ± ë²¾c¶d |$óëuûÚÿñ½»[³þÅ/¢Ô' ˆõ=ì{w@»‰*zÓùé 1õ-V÷@·s‚Š£SšHüÒØ%œÖ/XÍ=x ¨+ÀÊÓcËŸ|º«}¤âñ¤ŒüÝüc±–Šn‹›ñQ¯¾w/vµ!Lôpi‡ånÂ3œ«w†] 7²yÞÍŒZDÆ@Òž ZOÌž‡©súUDUóÈ=“ƒ”TA5*™ùdI}OÈB|Þ§ÑÈ‚ jmXo3NËVØÄi¨)S«âðÁmˆô½ñ§ñg`A|©vÜFíhx:¶(¦"ãÃÓ‚%eB÷ãE]V2¤drgÍHrˆ†¦s$¶{ñò(îU\úÀDçhOÂñýÈ?šÈ“ØÓÙxÙ¨àIcyÓ[7ãªåT׈ sÃöNǃ|¦þ~lÕG-ƒ÷œ(’ûCœ§ó±·1Fve?1±‘‹à²ï°Ö$t'¨ÏˆÌ\¹st¤MV_Í* þ ™\$ú~4…ÿ½¥ÞÈ^²“Ûšþ½ðFC‘ùµ¢zf9{@GÌ2´&‘5–¾ë1`JÃzS@¿)L+#éÕÝwÉ~œ~žË`'Cnñ²‘¹õZÔ´‹»¢¸Ê¹P©ŠèpÁBŸcËÏ‚7mãw—˜D¿Pëm¾Dõ7ðÜžd¦cÌMä ó¬VWjTbÒ¿½D2Ö 9ÃJ`߇©ð„íYC=É%ô»k©¢îg·T«ªŠËN™ÍA»Ë]256½!ùGu¬êIxó¨ð ɸƒ?eH˜þŽàW±Àîòãû˜‹Ý§;A?dHê€ÎpO›Zyyû› ¿Šïú¶™ú‘(®å M©\?Ùk­Ï°–½¤-=gò¥È敦— ÝçûH[(nƒ(çEMòœú¤ò°*±èuž:øH0ègÐ?/ ~Ðýî,¦½Ei—’þí±Èáüˆ¿^È¥D2ÇÝþã²î-Nƒ«ŽâŽô4ÿ’Ó­‚\ýNôóæI©‰¸#þã ýÛûÚÛ©?/LËRh0’±œ”“y£ü.¡nßî‹òô!‰þgˆþ‰o˜_û=Dü[öÐOè1aFl‘_ØÆo\í­šÃžÏ7® C?ø­? ÷ç´þÂQ,æ†MX‰*4“ˆoÖ ic|˜FxNÎwÃ] ÌýµØ¬²(o|j ÎÓgü¼~LÖ2kɺ¨y«›Eè Ý0 ¸¿-Ù[¼¤î#¶ª û{ÍôFoÒ™£ÓXÐ7 ˜‰øénY¤m›û¯¾ýáø•‚£øÄ³µ—7³0Öª(Öú#Xr9âW‹Xj;|‡µ}á~†¿µÞM¡kš Îÿ˜wä8¹í.pÚFÄÊ“@¦»jªî‚jõ‡[èŒf-Ã_±½QÆ´Ô"íÓètS³Jvâ®Ć‚±?% ¿‰o:Ž]3@|ê "(ðÍI/[áÏ_Ë|ØŸö`j‹¨F ÍÏnê?6Ù{àÏó³É`%@†Î«ÛhˆbòtЄzvîÙÉ"M›»8…YüùBô¢]ð£±Ì AKŠ»F‚þjUgË€V¢ j® ø®M\›ÊbB¨õ„¼…¯¿Ï]« o±Û¤Ã#•âí­ž @Òµ ç Qõ8«‡êN,~üª0|ÊV𵇜ÅfuH ÷zÞø(b¹ÛÁäE…Zˆ¿˜ÌñVu XÓð›çTêýE§õ)ÌýàVíéê•kš …Ay3˜ouæ×JpÌ[<u­ªÌØm®Q9¨/Š¢x µFÇo;õƒk­+ô2>Oï./® ¼>Œ×ÓS& 1áƒ>ÄÈ%Z‹7AýÛ×kEFÆ\C#¿·°ÿ®6FÜÿkˆ*†ô àtqåmñýUp¾û­…üùsã ñ[Ù˜ë Ùp+ê8ÎÊßáVêË»òOshûïÔGÀÜ>ÆÞ§Qbõv™3Ô|,tdø™æ¬ŠF%‚?s^ˆ°QiÈ}ýü,hþyYò oÖÚBÇŽKÔbâM.Sý¶¶ZPݹ_Þp¿c_ÿ:ì×ÕZðýåÌùVÄw'àN˜±Ò‹‰ÁÛ‚å\1«?¤áY½@ôë»ók‡Y`ö;€þÂÒ)ìeZØêûØ®úð÷9ÛCXìkôéj(Ìž^ÿV…IÌ ¸+³°+fY‘w te¿‘¹³&VeÐïöGñÕõã:¢A;°P&7Þ&ß?ab`t~+>hIBv1ƒ|! ÿQ<û|zâþ,¾PÙà‰öi>~ >]ÁŸ?DU9ÿ1UK+~—þ\ï ¼‹©ˆ§¡&kOÍe/,YF3¼Ãô¡Ÿð @ÌFa?ÀB÷ÒØf‡çAr4ŒL2ð¥Aäd‚óXa .5ÏWÀÚ£cë~…?÷RÅÕG¢÷eèÏè¹¾K6–ÝÂÜéF†‹ë^~ŠÜ-ÿ,ì¢ûÌíPöY+ p«Ø}zú¡ÏK­^Âw_ 2F^¸™§=ä¿C\àL’QŸâô?¾ÌõM“Õ*{¯‘Šº_]ù©üþ‰ûðoÈ\¯’ì Âî2‹Á¡Öóðä×ñµ@ãöP_±žþíµ¬öäHšk›Æö×iHFØ•iW{¸/yÀw‚#ª8hÈæIÓ½Þº€·‡ÿÇóU›»‘\&aw+á?¾Ñ¬§ÉŸ|*Æ|‰öxäYÌÝpÁÑ´ÃÞ?aóP}ÉÙ×»Ow”~Åx®v&ÕÓÊf ¶òRMé/œÎJ—Û~TÛ_búÓ=êA¼¬cvæGÍ´æƒ6u@}<­&½$ªº÷—^ß-^ȤøÕG½‘RT'õº¬9CËDýùŸàWQÉ?ÖFt¡ ß»©5§d1ÞZ…v溸a,€§Ù,®Ë ÔŸo ~ðÉ­wÜØ ¾1þãïq&:–LÐýô‘د̲ SMóPÿ1åYA½¯Þ\ø“<Ç&5!.ï¨Ö¢ã2¥/ÅqbðD ç`ÜnFh¢ä!㜈Sëðçëy†žbO‹cŽb= •ÆReÍÃè?Ê#ò©ûN}ëägk÷éö°F¾/‰UýÈ?êÓëÓQªw1Ë€‘\ þc-xÏHzã‹ïu1nl$·ÅßÁóÆÇ Å¡~ö3µ$5Ð(à?VaÃýAt,5 UU™[_ðÍhÝõ+²¨ò‡)‰¯4ajšÀJm¡þCW¹ÉBê*§ŠÒ©h_ *v‰kO-‘ñÂÌšø{y¥ÇøŒ°OI¸îK¸…¨€ß ¸Àì'²‹Ï`Qž`C ÙuW|E÷„¬à^8øÕ-ª(!w€Õ ÿˆCfåðç=¨ù˜Cð’+)ñê»Gâ?ò©åÄ~#àÄ»‘´ÂÛm©ÑeL:ò™½j2Lì9ŽïE6µ•yLÙÐxÁ¯`¢I]kñ¿dÕ™xüìé1ÙR¶ s§[O%3jÌÔ W]ƒüÇ^êõ¿€ÏoV ˆèÏX…С|Ré˜ç7 ÿ‘•³¯Á°è!Ë“?Z?jŵFjîÿNòåTpî ñ7éøÚÊ¡Áœµ«3­¨¦kª¦8VE¸éôDááf®á‘À¼W¤gdÈÛüE¬ÀWÞæ>Ô$7j^AUÜ„ùµUUR+‰Ë »z•>é`‘{À(ÇcÖÀ:S‹ÈùÆEÇ ƒë–§QÅÜœM$+„¦ ¹Ü!#[묮 K@Å6ã?Ó'ä~Xæ…°+¬Ñ‘{£;W`tj˜ÁÓ\{Pž€l'€7ÿO«¸™V2+¨Â°<)É|é˕ܵ”è ªà%t{¼f½§KÊzŒàÎ&wìNGËŒîóMÄ|¢Ÿ~GóÓ¾JÓ¿$1øÕz&~¤»ð2&ÿŽ…Ÿˆ—›ruìê¶õ^Åâïáý‰…Žî­\ëÎ?|ôCÔE÷æÝÖÜE¾°²Â>5#ÿXDvuµn ×^*BÃ|àyáÖ»3Ѱ·µ‹§r\®2‚(!¹ «áyþ]Ÿ-ý¯ó£Îiõ㥃÷•„þ»ÏõöFrQNÕ+sµ·jF6£…ñÜHkDÓ·ÿj>íÐF‹3²$‘x\rºkâ€Ñ_OOÿ>ù@ˆ]Æ)ýiV þ•gÆ^P›éXÒ9pÝ9‰Ðèõò2¼E%y‰L§uû'æÕçê]ÅCæ3¿Æ–ÃúuVˈðRËëD爃ɫÐÐ<Áà„ýtɸ%‼¼ÃìÂFg‚k- :q¨>7QØ{ŽáG†ôÝás÷3v•¯ß¯Óc—Q©Š$Îßi>‡-,IUœõ]ûP²ŽÇCM4“„é‚÷u•à¯MŒâT¶ÀúGáôNNÄG¤£Ö±6' HØHP­“Øûj(~VàM“|ë9væZ_“%ù½fìkxÒ-Þ½–à“ͱ©Aq›ðu(ÞiP¬Kx¬Èp^äσ7äþôVË~u«µvŸQˆ|-&»¹#ßBd‰›â?fâýº“CÙäq¥7¿ã^Äý¡Ÿ–D4ûñÖS២)ÎÁõÃ^צvî 29G:>´ƒ«X‰œfž£ ¿µœZºÇÿ˜Ž¶™jövä±ÈYfƒ€=äø+ÈX÷£¿ÊcݤÇ^<»ˆåËtñêÖ:®å{ò¨9ÄÏÉ)΀}†­ld\• ¤"%þbÒ0Îrlql**–€s\•~B_ÂøDÌ‹ÿ ôþ#þC£Ò‡zv?íì"¿+Êןœ÷šOl_fö¯¢ë'W ×&k+óë1¶zDþz‡úóC°¶ÃP›Œ µ^|¢§èœåI"‹þj´ù˜ü£¥UÛú=Æ£›ìOöa,á\”V=Ø©øU î/’Ü׫-2¦{=/ÍSïdAhæ_䤉œ"ÁsObnú·¯§Òåš• Æb+ú«‘Öê,Ðã± ¶H–7W{¤ÊlÇ«½õkFBŽ÷ õ`w«œYÿQQõâz•…çXL]{|ªóÖ€:¥µ×Áö_£ÃÊk >¸/ý¹fªã`ÜIep_§Xø×Äs‰àÄÁ7 Xy]…È`£ŠH€Žá8³èmÔaÈ?ŠÐmþ³Òì ÑðÓx¾ð Üþ㤾T,‘#y¿zRÃÔD~±ê¹vSkYÅmºŸ4·›¹.¡ß-L­eªšëôÁYÐL8“žWÊD¬CñŽ©äv÷ÓüŸû[o‚ÿ8KÿÝìîûøc»HI?Û„Æ<æŸWG‚0±ÚÏFôWçŒÌƪA~ä¿@mS•óLJõz&®ûõ’ú#qýÕMæ¾Ð¯üÈrÚ3ã.kMÄ^Ý0§›À‚º¡6>-+P1Ý}yMj!²FèÌ‹èýôEâ Î{î\Y,XwÜ*̸dM{“-tâ¾6¿Šˆÿxg0ݦü=öåVý>ö:4O¥á_ó«¿èØôNÆ%§ùøÝÎÐr‚òÏ¡þã!žâËP=R„ø»ß¿F›”—ŸÆÇÚ>à)Ž,¾×¡«‡QMYg¬Ÿ/»æd¦‹¤¥*¾ (…oö'¢:…¯+ ~åL|­EåBØ^´_oÔ­¯þL:µÛ©¬ÛB=ä é B¹Ïñš¼¾*Ù ¢t'óÚÌp4Ò•ÕvôWW¿.âkL=·p®S4üCê S/þ^î"_Zc޹¨2“Og÷]ˆì ú_}‘[¨Z ±Ìÿ|l§¥äaì©3M6JË‘XÝÎäƒQ_Å@YTÎÌ>›ò™üc3ž~*ØÕ þßé_¶ÓÀvcìE§œ¤è]ç …º€Ÿ\ ÿ±þ³Ù¬W $y‚ú·ÿ„y‚—%†)é gqKùã?ʆ¹ÓíŒdÉUÈ!Ç`'ªá<#È?ûϤ"/€áç¨N^n[ãØqn¼Ç=øéÎ*g2X÷ µâ #3÷ÿüG*x†¦ø„Ëð{È?RŸwË.çŠç*ìeÍ`½¦ð繿­PŸÆw­À¡¶Hò3èµ´°$ƒÕ4ìêZ« çV„I¨ÿȈÿ8FOò¡j >íázj±–MJ*`6…àÏþ%]ÌHj4˜Y#Žš›·5!üÇÔM œ®‚Ìo½B\Ƨ¢õ§åtSLH-M'´ð$<—ãUNsŠû&÷Ó/)TMîéX³…UÄÌ*×s_'ž/Î|ÙkôÓJêòÁ¼€¥Yb™.z`Q 3 °ýPf*_8íL2›ûúE¥É[ùTm^w¤L~•…üã¦ýõƒ§¬ºtRìMÆT":Ì{¡KmG…ÿpz£&OnC ³×í?õôo`îã-íb“­"Ì#éBþ¶Áúh5¢º¾¯+ÐõÑ.Eþ1]5`JI;-ûöç-Y/7ÅÌDå‘I®qŸñîÃs4ùyÝW抖‡(ÿwôôä1˜•X”¢þÜyþ·jéÂÆã¾QÈHøƒü‡¿6ƒ©®¨kQ]vj+ŒwàW'Å!¢ú@ñŽþ»‘~hŸÇ©ÿøþí¥ÉG™må:9Vߤϕå̺² Ñz]úÑãxÿê ”ÔWèÅ0œX¨ÿxÆl>}HD”ï\Åò†yП<£G@”Rj2BV¹'«ùs-w _4ËÃØ.$¯h$»èßzŽ×héG¤“_ý‰e]ˆ=¿@fÔ\£5‰Í¢ ÷áNà«ño@着—h'«ÿH®¿ÇÞDo° üêÖ¹WÑ6ïáÑg ‰J ΃õT#ÿXŽïìEåðŸåPp¬Þ‡Nš! Ëø™(¶>ÂéŒ-šfÕìÿH§©/Oáß?˜§²_:”#3§Àï…U§Ï§ÿÕ°X 4ëÈ¢€#.#ÇðV™è™{[šÛŽ FRž 'ÿøL¥£ô}CmùCÙB¶ s_Z·d<|Pn°™I¬¹œ®7Ѷþjœ¥£nªŽ½ºƒœþð‹`\Ò°Ö8Ñ*™ÙzÐÚg}ÔHÂî˜ NlŠê¨vš¯XgåÉ_LC1TØߕӵV!øÕuúÁÂ]];ÛBæUX µž)%ܰ׺Dÿká[C˜ÍÛ í1 ÖÔö9jî—ƒQ>Cõ Óÿj¯:ŒŒa­dÊ}0n>—™Dm‰¢f bh 'Ô„8#:uy#˜Ï‘’ªö½èXXyèR¸–¿ƒgõ¥;º¯êƒVÊBqœ’+”->Wa|Wû‚ßkGþQIÎæ:¦³ß¡—šF_”*0燂fžØðç_Xû½ƒ½@¢ [AýGUY½Í×ëWD_‰~7Ïhóüy3…u …Ù&úâ^ÅÏ ÿèJ/”EÔ·$^%==‡SXd@§¨^Ž…úñ³ôvûÛôC:*Û‚Ûöç9í/7[]‘]ó¬^ìM¢ ¨ÈüÚ£Tã”w•±7© ®´Ô™”w;Öë'WƒÏ´ #Îù_Á¯âêõî+óþ<8üz½"ö5-xaôBUZ< òÞÌÿ¨CÿöOFjÃCÿ1uÀ5m¶¸*[‚ŽÓm„nFÆ8•+b7ýKüJ#¶­ÿù­ã"ÙÂ4ÙË9ÉüDµ™~M÷“ÍŸeí þ¼‰Hæ¾ÿjéÒLõ¢~ð ö𻙘ãEG~$SÚÆ3•–;ê% É4Ê(MqNèØÓsØ_ltl|Þì'¨PEãe©ÂæAì^Tt¹ÚwýÇ-—)éžrI¾1’y`‚Ìk¶§ùóEß“àbóðN=˜"÷=ÿQÅÈÏΜÿ,¸’3?Ê©ètæŸ÷!.?Ïó~ÍòF¼’R+9„þ-ÕÙzå<Æ<ÿ-@þ¡SÓR»²ý®"J®MEÙir‡u°{ðo·@k©ò7ž¦ü³–]dæ7³ªqÄGù«zØk“ûr–³$~ KxZ/ø›nœÿgÀ/ri¸ùÇ0Øø¦2x¶-!hÍ®~sª[³Â'vS—ZsTCi–_9XãfshÛVsý¦ÃöüšoL“íÙO4lý|Пw`{cñTëøs,j6¬s«$ˆKiõ‚èý(ÌÁ[ò»²Æ?üGgúï ö“„j¯ÚÃp’«¦QË>œü# ªÑ6Ô‹Ã?€©]G¾ž•>¯TéÐKŒÕw†zº/¿àÑö²¿¤àWݱø&1÷v«ú­t.©àŠå*íšh1¹ÜNáÇ{¾O]å¬K‰>¡Ö» î‘•¾æ ¦–ïún«µÕi»¦ÁL_A³<šZ—aVûÏO]Õ5óy‹Üø@Õ½Þ4zò Cõ7Ž'¥hb(ߪãÌ”0Ñ‹¨ïE½=³Ê‰ó›0ed=|² þ£+‘ž«ƒëXÚÜï~‰GëŒ$ ¨ ¢‘³Æ7ƒù³úqDöGõ1ƒÊž²¥ÝÊ5 fÇ“)ìyèó5È…ÿ(àÊJû:Õ×UɾƳãe%âÜǹÔE¥V_¥ø¯øèz3z~½Ô·µRÿëùQÑõ;Ôô4⊠B3J³ævô»yàÏ?YŒŒ?˜\Óæ ßm "‘ ”1º¼0®9}ÆÊ7øcÆãìç{ÿшú2Äã“Íú0Ì#˜#¸šºb²¬jó/œ‡}½á}ͪÏÖg‰ûðÑUpºª M¹åCÔ8>ø§ô|݆*8¦<Þa~öÖðG ˜Ê+/²Ž3(™œIí§@ÎOÇ$ç­†J/x'@Fý®ÿX¥å¥¾a³¼._óîùÚ,"_.ˆ¿EõZT¸ÀvÄSI±Ž‡ñÄÇ0» ûm##v¡yÇ)² ‡7ÉÛƒ÷:ùÇuîÍUìµ?ø•MœßÏ\ô›úÝÕZ1„•F´;~ üª'׬.ìIö[Dl;»ŒÿðáxQ@ÎÊ𽜇nŠd`UñÔ<3¾×Q¿º ¸‰îBEÅí ES!l}o¼zW”|ÇÉ4g„«¿êªi¢1úÝxÔWTÆZ~ÆS–ÀfÀ›T]ÚE¶–빈ü þÀ¾–ž,d/õƒÏÿ¡NŸf –£`Š’bëWSox“¿ßlæ¢â¡$øÕj~¦þüÓ@Z[N—•§A¾eý^OÓ *ß?øóZÆ™Žþ0Y©\ ³«3l()ÞC™q +åcÃZÓo]³Ö;;õwñGcð?“¸ßrçŸ7R’“^‡OIŒf«›ÚoÞ†?_g5Å'&²¯äJLþ1f¢8Êr²—ð|á÷½È§ã?B÷C‘ò Ú0ƒgk$G\j^P«­ž`K£`7^ e·OÒ'}&VyÌżrC2‹ƒàaWAÌV¢ßMíÞßR­6üù'sœ}²”º ·Ô.«“Í.Nùít'|^ù8sv»Z3˜ß1ÎNdÝ„)I7”½ènûªôf0^>R¿h|0«P[´šú¨fƒ<­&ó¢jÁœ·ºÙÑQˆm¡+Hú¼…ey`-%‡ËJŽýŒíö"5ºô¯ïFnúoŸ‘ÉQ²/4o©g"’¹Ò*éʸ ÜÉZôGíŽä—>ð³éM6ù)èð˜ý4=ä$~ì³\éÎ?îëëàu{ñ¦E%Ì}ÖæYu!;n¥§'ü<üÇaÐÄ\®¦ö,•Ç•žN™‰ÁØeî–N?Öä\9"4­îë9ü_}} õÁ˜Ÿ†?Ïå¾N?v ð«”F}ã'üÇ5ÝáÿÖk5_)TfC¿»ã‡–;©ù ï|sªt¦š¯Ñ_%2úèI¨x˼ðÛ̯ý±~Œwy‚Z™“éRæôåk ÜW_„5«jV—x>š}DĘŸFú(}§ˆŠ-N£ÚÀTìÄ, öÍ*nPg‰ÈSc«·ÀÊG–›#pΑÅK Ëð«wˆ¨2«:„ÏW|øU-'îaa¿æÁÂYä­Á¯V¢“Fôð¯úFÎ?øç»Pÿá‰ÿH¤ÙJH½_âºaøx‹h`6Ý9Òq’IXÉBØïÅØß±œýs¡¸øuá.c¶ìÁ}LF4>O•3ì>‘o’ÙÊöp•úäÖEÕŽ`9¸Ýîû.êÞP±áÏ³Ó ÌîC¯„÷²,¸ËP•sª/ÈÝHf}$µF ¿ŠCÜÛ ¸3h¾Èk41@œÞ‚½ ¦.yÐ,ýh¨/i±;—È$Y` ±kïa,–[Ì´‡± @ñ£¹²¸ZG¨pl6T üª|ÊCÎg%<_v10Ôz.y%×C|=ôÀKÍkêó+’ý˜¨Q—ÚYìSÖA؆•j$ú+g®ðÄÌ;¨|ͨU2²{½ÙÚŸz7v6Œ¡œXÎü-õì“ìwôžB¿‘ä…Ñ_m„?_„?éFw£xþTä¯"óÉ;³Ì}“gÑ7™èžÐæÖÏfKyŒÚË&Ôס¿ºŸÕÌNè:†zêœÅ:+º‹î2°êá?Ú²·¥øÄ¦2ƒ ¶éõtÌ~AÏî æK5ˆú¢VNTµÀ•|ñ>L¦ªj祢$]t¯Xì(ô¬Ohe¤óæ)2 .zWîvûËäûä0žáápRý¥¿•Ï×5˜I½;­’äZýíYðÙÈ@ÊÛ‹Tªû ½°nØÈ• Æä[*Ž Vœ¹Oýßþá£ÖPÿÉ}çÎiUôLîï~ìà)õ‡zZð«b¢™ø„_íÔŠ¡¼~UÈH ÿXw–ýÔxÞ•õÀ¯r—òºñYŸ¤ß;䣠úó3zp½jDöiŠKD€3e]ZøTŒöú} áB MWåïLJ¡3¯C'¡#â‹iÒ•ÕáÀþn@ù“ÅS{¬bSº1 âHÕÐl\ŽÀÖ,qQHPºXÎ}¨œž}—ÃDþ‘—,§ˆò„M‰ÉS÷PFûnþ±R+‹•_A}Ë;TMǰ¥‚ô»SñÕ±*p¿~t‚Äuècúnÿ«.FIØŽ¿ÈU.ƒMÄ&ò4Áçx Á2?åÜCr‘È:¶šƒÅmÀœ¶àΧ¡OÿýÛ¿H§+p'”I˃ð+ŸÜ ÒW¤ ÄdYù1~vœô˜Û^ô»z8w&¦î!òaEssÜœ h 9ÃBtšðg¿[̓¢¹¸O­_{:;ÌÁ¯9ý‡ßІÙZä(¡÷å|7BK-êʽ°O3È?²©çø†bì3 ÖÚÜá%W+¹Ç|¸Ùf!åÅgò¾{X.ÿ˜ÿqܘ„_¥%~]8Mn¶­ñ~êçJR p[õ3Õõ`§g f3aYöá“Á0Ê2ò÷0gÜÊx…þª ꇱ¨^¯ÁŸ?@·‘ÊÊD†0šúƒVyºæÞm)o='ïJ of€déà[ɹ*^ !ÏÚÏÈÌûpžH 9üy3µÝ|ÊüÚmÖï0òÓÀ… ¹l*Öœy³e¬¬àWU`â?®Óq9×&©j½Äòœ´£ßmDnºÖ<§6ZQ`ÍÂ_>´çÓIðv~>•#ˆÅ÷ð;ͰΛÐ7=ÅæOÅ s\ ´–zkžÿ©D8r´NQ™Øul~ú—ì·3¡ãð«t&E/˜æXçCä=“`„6À6MPô¹sŸîxôWL§C³±•†ŽE·L:£Ñÿ¤¦½ŒyO=èd²Žæ÷d ÙÒê('¡¿Ê޲ù ç{Mm™Ã}¾¹èwøI&%vo>P=‰í*Z©]E©÷ÌYîd‚È+»³]„ì(­=ÙzNwÁÿâYñˆ<®‘+?“ `b—¸ýÇyêdž¨±ÄtåA«€ë½+§Q}žŸ4Ò~•Ï•þWþª:YH_»,½±.Ã.“‹`K»â3SüWêÏ£ëõØî+s›þW9Ýß¹o@„>d@áñIoiÄUè¿ëpÑk´ìF<£ºq8H¿û-Ugø‹_`þàuY‹”’Èí¬8 ~5Ž9óKà?ÖðÝ^ýzøøŸÚ"uÐ4ôº#X±$þ£õò+eió¦H$wÊšæŸ"_„μLäaiDVµaUÇS˺œ?|ÀóyÍN&Xÿ™²´´åáoì&äï_E…Û¿Oþºkìõrl¶S=W4HYÝ<†B,ºy5üùn­ÚŽäoñk;Á¸7ñœ—FƒàL-ÿ„(¨¶¡Eý‹Lg ùK˜)r!÷õ÷çF|Ùìï V’dØYˆò3ñ†Ž•y.tO´ ÔíL@O³5Ê¡ouªÙªõÒ£ƒt½$È ÷ß¼Iï‡.ØÕÆx¢ŸÍ?ÐÚ8æör¬xâ+|­«NÉ"¸¶,x‡Jÿb¤Á«¥… H†×Ø~Ulêy”¿>Nÿv›ÒŠÈÙÁ™ÆÀ€8ók%³Nþ1T‹'j£9ˆ ~ÕŸ<í)1bfÎÖTï_ £#Óu,ÞPˆ"j/ùÇdîý.Ž6ŸzÙUÁ útÀ˜%UÄV›áÏ‹ªgd¿[Ì„ þ%‰¡/ÂÇÃÜUMÑïÿ€õÝKTþ lê$q­0ÏbMã¦ô@ ‘SM¤æÎO­Àg÷J‰ÿXiy ¿* Jt ÏÑ hþy^p©¨‡l$É>¼¨Î ¹Å«F:îj …dì¯6ò9õƒ»­VüÅ—‚.Ë•Ú5 V¡ŠUž¿,Ïc/üG ötOj®0ýãK3ùÂ^²Ü¼ÙÕ ¯*‡õ;ïÁ„ÝUö&k>]âsÒ…| š¯¦pñ×á?2ÀQ• ÝûÛ~Õ„z¨¿°·MÁ¯ú0õk“: þ–n/ƒàAúÁNç ‹àq»¶~+³Ð?Â, ‚÷ˆ—óIk³psô{F”x7ð÷õ¬`ºÞæ@«xUY{=ÒÇÁøÓýå|Åaëõƒ›`‚æ¢7×j°ÇtÔ/éÞ_1}ð Æ¿=•‘9Ç.®VÔw¶oÃm]¿ªGîá Ç5.¥7³£"ÁÜDGÃæ‡/Wä¬gåz·ÿ8MÿIJ‘Óh"´1ÒÓÎîêg7²Æpn/9ÛYöj×Ы"ôßý{~TgôW»¬}Dœ›äHlGâ;Dãwúßû9üy ÷•¹~7¿û»;rJý*õçÍéßžQx­rD«m$'#¹läbþ¹Ï-÷\óG¿[›k¼Y,§cû2ý¥˜#/ /qÞØóƒúÝäâ8QêB:¢Œ%î--ËŽú[ý©Ìo&"7 ”YLÏâWžú|ý ˆ ÊtÔ©øÕ"º!e¿²T<@°Íß™´^ýnpýí“ÿb<Tf@×z¿/EÜSöã6ÌôÏ0?©_¨[ˆ uQ^üî½¹¬y¢-ŸNŸŽxAUű3¨G…mo¨¤óüª 8SñNmÍð'‹‡ÜëzãbÔ ÷Á• ”eI¸©°t-Ù§Óój-+d×–š„}sæG}«SÍm¢žÕ,ÁñÁìx1=êŠt˜ùeÔ <…WéKþ/äŽçËÙ_áˆÔ K\ ¹¥ÿùüš Ó¢ôoJªñNžÄ’ׄ±ˆ ¢uÿ±Sô¬ÙÔ¨ÕU3©^™Dþ+‰¬a_8ùÇx­ èŒ†(!yUY0çÄùÈÒò°Bq•OÙ¥×}Э)dZÙ”Ã›Ïæšz³r業³ÃÛÆx9”Tj¶|ø×*òª¨• ýîNzq¤Å pÅzfÊ 246Àü*7STB/Xß0ynÿ€Ãš ÿqžsò5G®d° DA÷S‘®´'àW*Ð}õL ÄÓ\iLg»X?jÅ3F.ž9§ßW"5‹'%ÐŒm9õçuè&²KXÿüê$ý¯ªã‡krýnjä­œs$ºÂ±´|Žtæ×6äŠm1y2¹pšJÍlŒ9ðçÐ_Í#ךee&ÿDþÑ”jš³äR/Д•‘Á÷x•ÖE_ ó×x§.W¿¶LC¯H?üÚ++Ÿ5?4œž ùá§7Ó¿ý޵‹:ŽdQíÉ #ƒÅ@}-D7Áź!²Á­½Ç>×¶,Tü1Ð} ¶HÐ\t]ãì4Ô®E–>bïè2‰þíC¸†]É?ƒ9ÕE ÓÍ}ýŠé{©?jcsNJÀáU¶ª¸ÚP¿ÙÄQ ÀÀ[L“Ê ’}×aò¦§*ü‡¦tò¼x¼EÓÍCrµÛœe®êNòˆ5ðt5Q0FÅlÄ3Ž¡7Wdºúα—»¼ÑÕt5·«9캭]Þÿ Oà1én[†s{¡jÐOÕÿÿw1õ†z)÷•9Í4à<íÇV¥ßÒ?ë‹ —(+6é%XóVúÁÆ#©¡ô“?´Ü)m1ÝUkòGâ9ß&®ã?:ëôn—þâ¬ð5îê7~h½â¨P?ðöá ùä9Y¥o#ÃÙ!RË%²†ÙJ¤s_‡µtYt¿ËÅó±e=”õÞæ0,'ýGd6pžãDÖeZ2€\ò^„ú'¾0¤LÌÞ"óÖíÂjfT>اp §ñxIÐåC¿ôå‚|ðÝ®ÕÊÒmÑ™o¢xŸ|‰»„@îïÎÌ#Ïóœsˆ´ö 7¶ß·ª)v6 { éjýDìU™â[ø«“½_Å7ª ÚêI³ˆêÁ›Ô^õå:»á7 ’…7A9ë(S/âSöÐåw׿DdÔ_D°¹çJ=ñ3³H°gˆÅœiÇ ñ‰xãèm˜ÿ±;UIN#çJž#ˆúÅ´ñ«Ið=Äi®cV£8Ú ö85‘S}X|É+ìó(ØŒrû\ˆWÇï=ôuOøê#‰ óÂ_­!cÉÏõµãšr£‰*HU6Q*}’ S×Ýýéröó²Ÿüˆú¼M¢L(µè? ×Öža¶†£žˆ?ºçãôOLB=ö,æ×Æaþ`iæd/áïÊÓ¿d<Ø}²Ö«/S9JÓpõƒ^è²Ñ5+¹‰“rÞxLýài³<üù,_[ öÍá?ŠÀô ®öÛˆïnä §ß- ÿQ”nñÁ ’ò€Ùÿ1Y¦@5%ëx9æbÐ6¢|Ù¿Þ_¹|Ë"Æßªû,T sxòƒÀÃzÀ’–±C.Gýî"òN(± Ò%}¦õüÇ<*$RšÇð‚ÀùìÆ4# ©½jŠ~7‰,œ-ÿn&'ÂË&Ÿãͤû¾Ìì`¥³Ó=÷ŽÛÚAýàIx /j‡²Ï¼ã^úy"õ]ï^)õ'/:hézîÔe‰~²»úµÀ«Ü½ ::&¢¿JBk¼H¾õN^ILAäá×q¦xæÃî|>2—T_}‹Š%“ç)<©¾I`µbîãv²™-ðZýíÝö=0ÅÆÖYÐn^×3ôkã#¶UüÏ—àÿ¤{\µžšÉugœùµß³(Ÿ¯:üï ‰ç?ªÛ˜?ø»¾Z?E9®”ÓJ2?êók£~5* ¿Î?~¢ì?/Ž}N€]XKýy2m¹j21ÂOÿ„ÿP´ÛÿàW¾O¿Fl:œzõ`NDwQEͪÝÀ².ÑM±VÄ1ÊGrþÇoê&ðJIDÕ`98ÈV¼/"" õI»‰ÁÏ‘L1½©þ‰ñôûz2VÊ&²ÿOî…³¸„]ÞWŠƒåA¢oÓr¦ דúÊe*ÏXQ1j&¬Ö6Iåȇ*â+:1¥§(N¶”üj/yoZ=ÉwVÜ£ÕÅF÷õ¹>k½Çä™8¾ÔƒÊLÖeçyCœ.’¾:™%@Y¢¡ó»3¹ª–7ˆŠ¸–\«•pD·Æ(âÇøC¨¶³¿íx*L„G„u4‰Õ&z>X¨´pÙ ÉÖ£Õs´ËNEúec/YjVÓ‰sËÊÅxÏØo7Ã$} Á—wo ó£:‰sØç’ŽKò5Þá'|Hò Xwz°R³¬Ã¦î…ÈÇ]ÃÌ éKÿ’u_¨Ch‹ÅüG ,ä4üö9ü÷ #'|q?&ž17Y¯LøófÖ¬Èõg"²ïNÆ0MîQB©}þÙkwæªÔ]–‚Ÿˆ&¸ìØzùFa;ù[Íd¨X÷ÂH7¤ûh<^~²”kx¦)¢[C÷êÐW}Osú—\3Ëtä’]ä~#Ó›­dú îa"Æm&ò £zìØ~®ø ø•\æq>‡YõVaÖk 40øç<µà«ŒwÒþmÈ?*ѦÔæbÌ6·Ëð‡P×G­½šõΠ—™çöù¿Qèô–ò$Fq¾Pÿorösƒ3fæVøéMàÿO͆°üíÖt™K…EtWíá+ã ßQôX,ú¼œÒ–J!§c´WkaæBãq€]öÅÊgbŽßô‰íSÖmë^é¡y„â-•øsÑk ¦[ýÎkuQJTu]o}õ„®G䢎ãšl&Þ þœÙQìƒÎô\wRð'nð±¨GËtÈØæ-bÎýFN#‘VNc£Ë<Åx‰þøÞ »Ã…N¿ÄgV'§‡#…§Ð¥¦}ƾhe³+Yûð)Ðy5â>œwru1›¨¢š“mês\Wü¿û‚(N A¯(%BU£ÿØ.⫇¨¯™zIýu°þj‡’R+¢÷©–X³Õý?´ÜEe!ú]G½7¯¼PõjÚRõ-}“ßSþ„j럸\;×=Bd3f1ÎÞà™>êIQÝmrá…²e¢ÐûÖV ©3Õqúkƒa'²&ÖïùÇ%X<â ¶Ï—ìÆ@±Ô¿µÐ¿þ.P;«Ç„§ˆ!O%~{.v—³ö –˜ü½é¿‰TßåÏ×*©Ð­¢_ï{Ãí¬°“x§Ï0T~9ñµxÿ“câ3¿×­¦¡VýÕP¦ëx„ØÌJxµô¼©b™Ýˆƒ·a…N…xÛ¦ãéË9ÏûÊUÏGëGOeôôS‘²OôRüF ?ƒ.{r’±Võ QØvÖÛ̧yá›’ÉùÔF¤•xªÄÑSS%“V®'ÿØ€ÿh~e€›K»©oÓ˜ÞDÕäfüÇàGIéÿAüùrƒcCoŒÿHE…Gü¬ƒÌâ©Ægiˆb7ªü üê!Ös6þ£¤\†ÿ˜ Þ0;9I¿«ž·äú—ŒäÄÅÅÖ/çí~ˆwÝ„ßõ‘9踻 Q2j§ßÈ.ðç³ñXnÁS:ã_NHjOÃ×VÔ.‹”xý ì`>ŒEo<æ8j5~&Ÿ`~À#%!?…ÿ¨GýùxPÏT(¹N€ µ•ñÈg7ªg\öÏÙª7ÜÑxòF7üÇPò¾Æ]¹Ld¸ü(ÛÂ,d¥_†¤û{ø”d!•¸ê¾àW×øü3à@õqaÖK~7>9Š?ª9rŠq ¯6ÌìEn$¯[ë¬B(“¦R}˜ïg¡þc2ùk+Ôb>ddnæ*¹M„dÿ3”öj?rÜ1 ˆmètÐ ÕeJðþ?é)U†Î†Î¼Á Áú&O¬l=ú¯7A˶¼qŸ¶úóÎä!}ÕKÚ=²o•ªËÆfw£…XÅ;•*Š––§ù·¹Âʈ^öú«ôôùh=Ãl€ÓO&;¿M$ù]4•þ_Ì´,8TÜ…«4ŒwEð¯õÖ”¿³ÀÓf¡ÀÚʶl±+µnh°bmÁë¸ã?„Ÿû3Ïð€èK|ñ7Ox¼ð5;Ùqì¥(“?‘]MFéÝþ<)‰íñ5é<’³sÑôãDí[‰X+sF“Šð5HáŽäåAJ35£ë$øÃŸGN…ôåf’hõ¨èwª~{üª¤6Žùƒ µxêÞ/äßÙ­ŒÓOˆœdÞ6w5›È¦wÑ®¨ÉÅ;¦ÂПÿpÿ+í(õ`#˜3>‘Hwu–ºTõÇ<Ð5t9UŒnzHâolL©¨zªËô˜œí@”u±Ã[±ütÖþ(:Õ?Õ_KU»›Xü­…þõw·5?ò¢¹Kzÿ‘M–Ä{ÜC‘Uÿñ‹½Yèx…m‘ÐïNSr1v!ú« 8‰åüìrf3a-:ƒËÜ?:m$æïG]=BËzÓUµ xÊ~XßK\©;ùF^ò·ÔôœÁj×!2%§þÃáÒ5ªŠê’Ð „úz…2R}+ŠK´H™àMžS·Ù-ï:òï·øÌ%ÄzñŽ·ûx66hN1=¢YÅ ÔÔz*¼E9—ë9 _‘¼Ê@±ö/þB_¤g3—«{P«Ñ/Õ ææ&¼£½µ©}9‘þ»ÄM¬Ö “L¨³âãºÁ‡T!ÿpæ“y27ñ+±’yñ•KÁî:àe&P«øEttQ›.Æ%!Æ^Mdþ…÷ VÛB?X¦¿yߊiyàßêšµAÙJÊ—0% ÐÑúàNˆ._ÔôEUŒû–—;¿ŒË“cúÝtfo9‡Šîýä˘?¸½T<¬v\NÑi23ø¿¸ÄsÔm®·Ü¹äZ ¢‚cø·X|î¯r—vÒl ~ÕäÅÃög†Q?óúÝšæ¼° Þtþc9øã0×ĿúÆyØ€ŸÎj;ÍnØö±ðãÒ^G4¾…9åíÍ«T;&§O×߬V=Ûey‹›è¿#,Ât$ëíãÝTªñÝS¹ —VCsxÕtú£—'ú‹ŠÄ~ôãmo½DçÖ§£pO3‚Žy{þõd¥³zESeUªIÆ’)Ôffßd£#Ý_Àw Ê{3|ƒJ|ÿ†gâÍ\ÛfBúò.A3Ñ›zöqòë%BåyÕUè¯bRç5?¹Cl3*˜Ã쨔gƒ€Å¤c4S…©ÂtÇcf§KWF3?ùGøœkèO¢ós·ÅaWþq<|¿èI$Ö“˜nŒHou±Ç³ƒæ¦a6U{„Õܾcßb H}ë•,e—¥Þ%= œŠ^±„̸,ŠŽø‘ªVvÝ”ÿÐnð!•ŸOé¿ëæœEþc²ÑáÓfþ¹­gЯ¨•YåŠR‰ùçžÚm-–öRù1uòKe³þ´)µñA 6Þê/µüÚC5»rº¢ëþÚ9õuä·Æ¿|«†‰(*ã°T]Äfê•^ ç1Îëéévλ©§ŠÔ•çQã?žaOß9öK· V¡:øU 1û_W“3ú‚C4„_ßì-ü‡;:e“¬ß±š58ÿ¥P®^¦º«<ñ0“oè²y Š—;(¢57(é©’["¢ãÊÃT!’Ïã=üª+<ð¾ë?ŽH¨Uÿ^ÊZ-üXW0ÖdG1°Eˆò“ ßmBTˆÏ8O¦pdÿ.ñnTh%ÕãmŒï£I<¬°v™ŽÔ5> °‰ãPîÔÌka07ï’oÇZîÊ ‘H¨×Yµî‚(‰"@' r­â(>’µL6öè3ôÌ`­¨ŸÇµO'IHwüjuþcœRPo+.Á×/—sçÊÆ‚“ kO5¡¿!ˆ©3Pïö7³7 &JÍ`ÅÉÁùG_£‘þH éþÏÅߥþcW™‡z»Ét¿AN:®æ LGÏÃô¢U±^ÔÔ6â£>á¹æAû‚Oí#ÿ(î,öÖb¢Ãn·3ë8_Žä„ %:Ž\ÿñЉ"9Q9m ¿o.æ×.†ÕÈ [qŽÑ\Fe‹@B?–§Zy°’S|jJ°¤Æò¸ñýÕ9³ ÂD:K³/Ъž£&S<ŽÁ|4~ÇÞûÀæœ%‡®ÿUnñ_tV¦3ÿb„qÿÑÓ,a¶§;‰i;õ>ÌlÁ/¤âivUo¹tÏ©)™ˆ ö•k{žðçíyŽžpjÍø—Åaþ ƒ­5§ÿneú(N&þNÿqŠ>XÍÍQôŪÂtñm<©Ùdd[ñtõdR#¤Þl,ýÛ“Êß9¡ý©,J7öõ`½À¯JZ¸ºVzÛ6å-ÙÃ.óü¹e9óqgîà¯3Õ¦L¨‰^9Ôch{âÛ1žÊ±pxNýÇVhj=7_Á d§B#ûûÊ”^*]c›nd×GñÄ*ŸŽºüGýKÖ G{Ó„r„xAþÄd’Áp=—é>ÙË*þê’U×.dÝ“Åí_˜hÛŽº•khÖÏŠD&ù‰P^é‘©6sÝäÿÐQÕ†jZ×Éz dû·ý‡ù‡NµàG­&ýKгæ%ýÿÔè_õë?Ž+ƒè_R6ÚéßS<Ñ iSÔ@ý™øH¿+Ìÿ®]GæVœÐ¼É7ÇŸ/ÆÊ·D=t¸Û¨QEV¢ÒbÆèHâW¥èŸ8 6E€Šw¥ÚcgÑ—g˜Šèu 8ygP™¶è+*‹Oºo$¶vKóÕ-®3ªd HN¬U!€ÄÑùx'ßòöï#Ÿ¸+D‚ÿX¬Ä6®ˆâ°xIV{^f çµ×ü‡Qæ×Ÿ÷û2–tV¶§‘.ÂÉ¡7]JKEFoØgo² ƸïM4ÞÕ¿eVøÍa¬s‹_ ûâtŸN.²}¿º«tSO‰Z¼-©­`â6ÝpkÁüì¥2øbñ«ñ¢ëˆ¯ÏÏf¡ÿn¼»<j9=%^<ÑnZ2Ž5xóÂ`uŸ¸oóKz7=uØÁì6q‚˜ž…®ùs'û’É…¾Â¾^¬”Á샙ûš4n9>½YA+üÉqôp#@Ê΃ԯ¢î§œ\B®9“Ìx¿OÐïqºoj @´³ÃÇo bÏCvÖ‚fïOo–5ïÂQdzßÛДˆù°w¬>86z¿h"š†;Ý-µ@aãÅÀ l KâlîÏ(j5œúÁEtWÚMœ{]ì.Y’™è+°'±àlh¨ŒÂÝž©ú…Yñ²–“çï ¿–«Û“ :H.ÁF·Aq4d§”}‡y|íÌãð`Aj`ûZ°â ø_c–‘Pf½¢â¡“Ìì QʰÈr?õ¿˜™wÃ^OÿÝUæ´`üj$õƒ×È4åÙ¬&Cúˆ‡Ù$‰D®õ–+µÔ¨þúá©þ ¬/.›¾ žøÜ"ÁøÕô»?¡ÞCÓÍô±ºYõAÆú¡ãŠÇ^“Ãa5 å?¦Qÿ¡ƒ¶¾ÅmNÿ«ÙØÜŸPÕ~¢gÕlêÿgY)í›ð±í„Ö^ó&¬H:t·sQ®ôcw`öòˆü¡*rJ«uì£Ñj¼A³»ÝÕZ'—ôÉédèw-r™TÖe”ÅðÎüÁƒ¨È?ˆ¼£Û\þãó¨Ðƒ¢hÁ)é+RY5ìÅ\Yg©ýÔ£´J؇ìÓVA» ókkÓ?±¼Ïó¶ÌÑmý†*ï™Løy¬ÿëß1áÏ㻞\ ʇˆ´ö‘ÙFõ$ó?ÆÓ?1-z§ ñõƒEµÅ䦦|Ñ¡ôÛkJu›îÆÝ,E¶×ÇxHÿ«|Z šH\„Uð¡þãŒõëo¯ôÏß&ÕS÷1¼jqjgñõ¤‰©é­ÈÄ£jâžÈMY R+–DG¼COˆ"S—ÝQ†^wa²}´,êÏ ŠMIL½Lü Î>*h§AÚ#ì U‡p²ÁåÝ/Aöq‚•KÒ?<ªÌoxѽ]Pxÿ»;|¨x—˜nòAd c¿@®0‡Ü¨"WÝäJƒ5‘‡ÈİӦ Øß{Ú“µjÆSìý j1v¢ IMJ3¬lOb³ è5×òF\FÛ[’·Ó“|)6“óNGt™|ï:½:_‹r÷§0ˆÚcâÊÚ¬=ü*ˆ·±þã6+naÍ ä‡Èm¢Ëé"º‘V"ŸÚTÏÿ‘XNEc±íAMüˆ¸‡7ÞÒ›ü#èI÷àùQ=àÏÿ0âõâ?Eè?rèļÑxù3~öw̃“—…R’_Þ'VÈJõßbð¥wd[KPSMŎΤ²¤»þD ûÝÓþÄÔ ãØƒL°;hu^VÈnÆ4ïÑËã}L΃6UF}T‹H;–jlò\é-² 'ý_W-:‘T˜§Ñèm‚(^Du•ùµƒ©ÔûH•syXê àWùÍçü‹,`bOðWˆòâǼÂáWAZA²À#Øüâì¯=9é¹kõšàLÆÈa_·1Ýï†lfv¥ ݉:À¦<Æ;\àn&Òû„Ùa]ñ Å1"‰n €‹ §^|*×Ö›êÀ´ö :Ñž¤/ʺ¬ƒí¿ˆÏj &¶ŽêÁtéšþÄu¹ •>ê$žÄîJ[x’Rø´àý¸gå¨ÌX@^bXýt†êünSñ}Ø›eÎwªJýyvì©ÞÒ2ñyY[}3£Ñ›»–çÓL³}勨×P_}"«9ÎtܸÌíXeC™1>e¬6ƒ\FEà˜ýâp3δ+ÆÃKoEÿö5DôUàÏûÃSôÆËÜ„?›Ìýø¼£ß*Ùô¿À¯Ò ß­zé!÷«^3lzY®ÓဘÞÈßnÃÆÌÃKÍá×Zc¬®iág/øhžâOÎn|ªÊד`æQãqDf4‹š¯©QÎa3O3MªÊ¡¬™È~xÉSøóAtGÙ›óUMí£H‹S¹…=Læþ "»ˆjö‡ÿˆGw*ÔcŸ!×ÉKOÞõØ“ìÔŸ¿Çƒ¬ÉP‡{Ö†^q¿–ЩÕϋݕH_À{™ÄÏ‘— èØö,*Ï£ ð"Z)‹¨>ªùýÙq®ú­–?¯,.âÉ_p ¬Xf‡MfpªMùQI,/t]g¸â¿ajÎ⇵í6ztå2c󜚊(®ýmPj¨ƒáƒ"¶À·Vå4¿–þæ_XöŸÈ?ÖZS¨'³&Ó~ üGª»Oò¤æÑòÝezÄLÁüK=©E£¿B¤ÑÂü•jòëÆ\™¾»£5™,i™ öË~X)¬íàW·èyèTÊgÂw¸ƒ‡]DïŸMüâÚ_mêÏßσñ~*'ˆ*F%³4Ø’7:xžÕàX¬Fð1˜#’V= ÞXfF4û8Að÷ˆ.??êj}“ð$LßY1ÓÙ÷éÌ5Þ4­]t÷ÊlUµÏ£Èªb7µÈ,Ì?b•@ÅvìãZ²FAîâÇ*ì>úÿßï]mCôW×”<¡Ð¬[9zþ£õƒ¥ôÁ5%˜_[U›Ž~7•–ü«SM#þ?e®~S”“Hÿˆ#žâƒ¶¨ïàÔã‘ù]¢$0âüÊw5ý>¶tœ(‡ujo4Â$ðFwÕ…I³ï@–ûè!¤¿²Hð·‹© Ôz\NctY»zmú´Åà&ÇAÒý¨Q«Gÿö𪜈ֽ¨"ÿ( Þë5á?Z 7˜æñ ¥]+jß«`öy±‡ð WQqõÜ8U¦§Çëæ&ÚM ò·–•<àÈß±Otzkð«y²±è$4¶ž<—ÜÁWèì£FPîø_Ä5äµxœàM=ᶨ!ÿÈ †øš7;?jØ9`$oy_ç’Á-C×5¼mñRøww»ÖCÌ"§*ˆÇØÏ3¼Aþ±…k?ÿìú°UÌ*Ò¶ü¯3½Á °¼ä5¬÷9ÑH4wY«.½¹öHdÆR”E-å+¨i¹M ÛLböBÑô†*µŠLíp:Fþfšæbç”øçD÷cdLžØ\U„Ñ‹ŸŽÏ¿\Æé×\Lß§T\!²ÏÞ§„=”ɵÌVè¯êsOúÒþ”Ï.‰>3ÌËrïRÊ{dí9óÔ\KÁ–&ÃH¤³7ÒMÐÎg´y–ü#…åG–לp5*qÍTd`ËBõ¿òVjªÝÐh á)4ãß•oÑ_]ÃÖŸÌĘŽßp§¶â0~d 9>½‹åÒÖL5£é‹Gl'›„Ê?þÀÄ5©-‚ÿi N&sÀw´¿Bþ’ ´n7ü¹;:Ŷ©sŸè¨Ôs E2¿È"Ú¹®· ýÛߊØdñ“ŒOr’ ó§™Ù.ÍÔßdç̬۞þ%è÷Ø™ ´½PJde‡)Pa¼©x"ÆSC¸Ùå?vQO²CüÅÉÿ“÷ìOüG6[£÷ñ Óf? `;*ØlƒyU­áô¿*nW’ö8ˆÀ гF Óíd<±?‚·ä¿ý­÷ô𠙬õ@)¬¼ýw>5µ F£[{½6ù| îö¥¸VY믽ÖrR?øcýKŽ*ÃÀròSð¦Æ—µÜÚõ3Ñc‰L“‚ûþ¡MZúÞàáâlSKôx»™g¼E]%êá?ê‘4fþ¹S³òýÿò¨ëÐï>ÀNE‘@b›å~¬ª)nžJÈ9Ø*ö@?òýå”§Z žŽÃ”[xûÀZ¤Å/]‚WðCwΧ…@¤$8ÞùHÌ\©d‚—^ßþ„~W·¹;ˆ£«“'ô$¾-c‘`«§`¥‡P?ø=/ü×|›9$k[Æ`?/ ‚¿D¨˜D–”€èù.ê«;° ϰp“aûB®VQ®i9°U;Ø_|XìÖòŠñRÎF¿Û 6¢L°‡} o}¶Ê0ÌIÄ4B-uoèÃ5'ÖG†Y/)qp|"žåL§gr#Þ£ÖW¥âJååÔE´5_ËÉô‚: þY–{%{|ƒ‡Ù+W‡Ê?V’€6òž™V‘˜]@çJ:ÔÛØãø‹LšÍF—z R)¾•yJÎ,•®ôvIE6— ?ÒÉéÂÖþC%+¹I>YÔÌòîÀÓÁ¯<èèX‰ü%«ýˆ)³ïñI^ð Q™µ¯ž™u܈AŒŸEŽPa>u*ó?œ»ºÍG5¡Ê–f ºR-²ZÓ•&š× Y6Óu_‘ÇP/Ÿ„ªÂfX.;~A|1TÿÄ Ô¬£àÇ‚xŽUè§Ò†¼,¹ÌV3€ú‘øöQòôo¿#«0é°3ó?®™÷8ƒÇÅv0Nœó$âÇ::…> ÿþ×îj{5d2ÊEú—D. ÿòÓ3OãºFË«ÿ­ŸVËpº¼•ø¡ZL½°[õúòG¾ñ«ÊZ=ØF1‰ƒhlýèµK}Mßä§úªÑïªÏ¿ñÓ_þ•¦¿c­î¢%–„©Obµ(¦©»E;#ª|ø~=G˜7âË5þùNUõ ó€,¹Ë¶àk[ŒUàã%èà.;€*T'þ/cÌe†CB1ëk‹„ú¾A=dfx)7“øƒe’Å©évæ5S.C.¾¦à=»ÂÚ€P‹¸¾œ¥!¶ Oœ TÄþc3'¶È5ßÔÅÀ˜îÇ®Íà®ö¦ÿUìï\óp­6º>7OuTv®9 ØC;öyŸ|yÒ¼Þ]”5éFYCýZׯ›Ä*QAº²Zµ—x9æuÂ#ô¥«ltmzALåƒ_Lîá‹_J/·Ðÿê‚ëúB¾xª4Ô³‚­e”3a¶ü°å5Éjb’µœ">^¯×Ó£Ó-£1^n!¸À0|HTtÐïÈ ®Dà?*©ôFdnxÆ‘0;ÉXJGæ§Gâêgäq¨~?ñÁðKÉw¦ÀÊO!#¢»iáç>Ö‰™¨² ƒ(1SV^B° /»Cz˜îæ1ó,µÙÀZº‚ÿ<£~p)•w÷˜/r@4ä.†\©óU/Í ¾¨¾Qÿv˯=EJ3-8Ë"âÔSLÕ8iíÀÔ‚_™&sã`»_‘¯¸¡ß« ³âe­6wÄÛ°a›ç¡Mºd¸Qu}Ò¬'c˜í‰£SQ‘ÀnmÞCaü(VqüGkz&KÚïO®þ¼šðE wÔ„*Œéà:k‰Ÿ›Q‰¢’Œ¥â6p¢QæSXú8èwG’Ñ´@é{–ÆÄË,A® ^¬TûPG;þ£;ç, úÈÓr‡Ù…î„dI]¨ 4KÒ/rŒÊNê7:3ãûI/ø3t‹é%«Ó\ë UÏk áëßñ¼ª˜ÈQ÷ý¹Êt¶£Ìß©GÌÌÕúXõèþæ]²|9\»·Ü²`ô»Í\÷¯”ºAI9ucŒÕÒGd—PL5·v1×êžâ2hÝ_Ô’ld^â\&Qm¥j>‰• ýî;”éYèâ0 ùiWþq]½¤ïEí½žsštíO2¿Öè¯ÚÑ«~µ¹Ž®(éÑ_&Kú•Ê™uÔøá?f›NÿÄÕbþã¼qè·´ûjH}PÄ+„ý®¦?c£²Œ˜¹‘hõ®zXt2’Ò'÷Œ¨fŒ‰äüdà^ÃõÓè¥tÙoáC/lW"aÒcïq®ä‰nCƒyKÿZ'¨Ð{‹®¿Ó£‘¿Ä–Þ¬uš\ô 8þ ,ãâêÔä •è_òœèó¶xê:áWýõ"%½¡‰ó©r»„ ÜCÜÝ»?•“ƒë7&~LÉ›tÁ˜`”а³mèõziÉÑ 49 Â$2¦“)1Oüa.ñ£ 6tÂxÌÿêp²êèÚB:G„^‰™ðWD1®¯/>hïÐ}úÇ4âê‚ÿènü…­PäzÞ#oìÞ¿ÂìÁD4ÿü’YOmcly¸ÇY<_ø{28ÁòÒè ‘ýØ‹…dZñŸP±9 ²Çø¹Š©ÿNÿ’ÄXû¶øì§xØ_ðˆ©ð”öŸ—›úóÄßÏÈ¿æñî®@%¶7ƒz§½a/UñÑú’ Ù†_()OsçsßÎSÿQ•èu"è|¨c{ÓÍd9ŽSG¿’ÝÒé‚ùQ¿¢B» U¸Ââþæ‡%Ù½}Þ<¦%•@'4Ê|‡r*þãÌz'3¬Cv>ó±½3C+ §s®z-ÌŠgµÌ\ÑxLx¸ž<“t9†½kg’^6û2Qo+ì} øsŸ`LolÅ-¼GðÅÃÍÿp‡È î8Q >vá«?Ñ2ú_¹Ù{ÀðJêiðñ3ÌŒ––¹=¿6IæÁobþ`È$5Ìjod–ÈÊêËrèw"ÿ8`vµî’-,…@_Xþá¬xÏÜORdl8¬|j¸št"©þ8‚-ÆU[Ã%‡˜3¾uS‹xÞ°!GõUz)xä~téZÿ?ôÒlÿ¹Xl‰ÀLV¡¿ `½™²ùÂ[»*h¶R ÔãÏî<ëâD£sð‰ÈOœéQ˸«ÛŒ±Æú½…ý>j#Åž_E«¹( npw’—Åá,>€J¼0ó˜ÕkU±PååG<Ív{‡.Xš‘5”ZôŸKÁüóh\a=¬ý12\#Ò°ï èHø’ÎUù¨y¾þUÙLlŽÀ†–ÝzB¬–2/ðfuG˜'¤åÆ;^&ëE €ß>f¼’—±IóèŸØŠúÒLPýd-d­&ðàa¢a’Óì–çQyè]ìWL<@kp›hå<î\œ‹þ¿&%eþù&)]Áî¿"_š@þqœûXÿpŒîͪ(Bzœm¥âo"XߟD¿Yç§ÅyyŠþ%ïÑ_­Æ¢öcJË.çQ?¾ýn fq­£ ËdþMœòÆò}¨ÚÝ‘j€V +䣞›ú‹ÆôWh˜^H?­"ð ç˜G˜ “ T)¾a’Ö2®ñdpƒ9¯àH+¹®7·z^O„šï'òÜ‹ÒCd7~3«Ó÷6õˆŸÌÌÖr”WóчÁ‡lįûY’nóoå-YoÞɹ*G†üùP0OÈKLâ|8ØÈDq׬€Z÷/º'îB¥»Âªf•²}ñç ¨9+ ¡ÂjOݽiÆÚœ‰X‡ås‹”Zçógþ§~O¬v …XÝTªþÛú«Øê%õ‰ê©£sÝÕàþ»K”ÔZuY´ô?<ÿã€2Š^% ¸Û‰ÀHrЍzuõõËâ­þJß«½üAtQ; 4‘z·øë.(”Jѯë‚èHÅ[ET]ÍŒž‘įJ©ã™?v‹7O…Ù.É™XŠE®i¼Ó߃G^ j½*¶™Ž9n‘Ê(…~MO ŠOnòÊãátÖ~LV’ +ý³qýÕCº’œrá¯=ÿñŠuKÄkñ–šŒ[àbÍø_W¬Ü@´™ÁáËa+â‚öø¢æq×?|m¡}žV—õ‚ñ~šä®ÕYb”)“ˆI?`Aw×ñ ?Ã|ÿÅ­"²|QK÷ù#®*Ô$ ]¾ä¿ƒ!|"ÿ¨EŒ>žnD–üÃ+ÿÎc#Þó$«~Â7%ƒŸôˆ0ÿx¯”Ðcƒ¿‚©HÅ}›…_+ Âv®û>cæêéÍC(b«ÂU ‰šÆîï_ͦ#çç…ü>’þí-Ðï&¯h.Sá Wן;zY÷K ?óñ7½É‰"³1,dÅAD ³ OýÖÝA/hËE{NG ðžy<ÑSèVñDn€XÅ1ýÌKXÀ¬æó^æfp»(ø¤r ™E€4Іïß>ýU”š%ñosá5œùÃd6ªÏÈ1ä[˜P4ÇòÇ·tdþàª: ¡e}ÂŽ{Ê,Üãõê±0gçþÃ~- M[΄Í@mr›Í°Ì?Ù©íhöXó&ýPZáÊã?f’+ø£ð%Ó,  ³^Tq–xê'¸6ÞÀ˸$½Ì¹ 0›daê7bMoSó²ÌÜI•b*k#9J#~Ã#%4à÷͵Þ,¥¡:eØtÐÖÆ<¿âÔêùÉëð˜ßTxô©Ü½Bä[+­ŽÄ÷GÐ;å@cÜþ#§y‡ˆbŠLjþÇpõ‘–„§úä¡‘YÎh'¢¡1î‡Þª(ú(ê5ÜmoÔR†…zïwÌÜfnûLÈ,êOÃDqñ³kÙ©ŒA4R·ÈKÖE{ÓÔllW€Aéo=rf± ¸š†ïXM?xOj}Fà?,ú—Øh÷à9¢“)k¡ú'žT½è Û¤ùO²ûþB¥ŸÊð«Þøht?éoÕ³/ÚïøÿnÖ2ÙÇ®CuIIó†y´â ØË¹†!ùÿ‰þJ¨ÝBu¼òg~Tj×} y»"óUð OêTÍÉowƒ×\~ÕR›¥½×bпd_dqý›# 3bA› ‚ÞO7r‹Ôz f~¤o@\&H9üGdf3¹–S‚ÐïzЋ¯&Öª»Ñ†:’„êêÏûÁU§[íPú—„èB~î˯J¨ãÐÛéDòR¶_»`lô¼ÃF_!FÔÀ›g9SÕõÈð/5\¸HÍ.lñCê³ É\XU^}JþâtÔ ¤Fe¥ðþî³Y§´ÀÌ‚ª¿ªò –ÃLµ9,w{£¨FëŸD‡;𼩧ñZ ‰ú¾¼Rç;3´öÔ=ôäŒ:óH¢€ögDs–lz9;“ÄþÛˆbýé.¤QÞ„*ü궈—¿§æ$‚>Á{Rþþþ£~§ú£NÔ3üâíôMô%3Âc2JÉäõ/qSKéÙŒhÜ­¥ä¨ûQ‚U÷Óð:/°b/õ©ä{a@ËÉÉ\é08œxÜÇçbE„ó?Æ*ÉõväÙ±ÎM‰ÞƒX¯~7#v'?¸_2I†Šµ[Däü’;²/7Ûz¼Èýæú+_æGý “[¿ê ¢ýõ¨±NSñ‡ùƒ¨LŽ}DuÞ22E ¯´Mö§¾â*±s}ÔaoâôßUQÜ– ;F3 ¬s1ØÐoð¼#Ñ_í„ÿ˜cCíÕÑü„¥ÏK^á{ñ OŸÍÏ„pþ#PËŽ7ºM~——ýõîI4\~¬–Òì 3]ŶéÀ;ƒþ% ̆hX^5žä äz´¾ÓŒlúÄ0;L(ñõþ0W]PÏÎ3®Ñod ¾q'ùŒfϤâ•ûÌ•ôOÌimbWÍÑÛî“Ì'Lnn Ê'¿¬Ô%ÿø`Œm­O.áÌ=OÛaÔæGo5þÃÆ>Ÿ¡â¾7=ç£ÃŠGýGwbš,ì5):èÆt× l«úkiÈÃÞ‚cþn¦ ~0~u:þ¢u‚k˜k þüøU tÐluò6ÿ"ÏοÛÀ{Øžú¹¬iéŸøZÄ ·cÜ™Ä c™ÙÑNLþÑíïqú|Ða%;zÞäxÌ—ôk>¡Úb¼\Fÿ’]dšµÐVû %û„þj úÝÿ1C©¢`µ ä·É|Ú‰Øð ñwéå8—Îë3ḋÂX¬¶~Ãþo¡ïT<4býx6‰Ðç+*ÿ¦újÑa×ß±ïzfeà‡Æ³ý…k0‘}zåG–?6ù õâ{©– F¶ÑE:H>£F>UaÑÛu½Éèõ‘š”|äµ{ˆo¨ 2{3 w;]Ûo¡vfáV±Ê°j"ËQÐbåmJ@ý¹Fì”…ù<£àÐ\øÕõàü£/ìPâÑ?DFÒ[7̨F”|ì ýÿÆÆ66b|·~pŽV Œh xÓX‰DD\…àÏ“ò®vÅ<Ĭ†çö'.v¦K×iÌ¡~­jòž² ý.]É*r­Š€šøœÝF7vÖÊJQHx+ÙÄ~îï |\Jô»9õ[ܹ×t\Mµ`A¹}í…Ï®@¶¥ÃöÂ/¢‰m.}ªˆ­íÆ'vy;N_ûÕàÏ_.·LÉ S¹Ef1‚H59þãoÞô&hRûðnF•¾:FmßèhA§-:ýw‘ɤ~0¼öþ”6Qôàî§%«ØþuŸÏ_¦ŒúóØéè¯ršè6ÒÒôÆF¾F½4¬ÿ8 §—¢hîIwמAt¦zgÀ|æicݯŠÀ•d½f^& ]„=©OUÉH"…ÔxÓô;ì/ãݬS÷‡Yñ¦–‡½â٦¿5ãŽQ{H½óB²–áÖ9ze1|†¹ƒü£Ã¿vø7úݳd`^<õ$zØæåôg¦òÕƧ™ÜaŒA›¼Iæ1o{ ‰=δr<\²?¹LMT_ûáãŸP³±F.!¼ërPôžÄQc9_5eeY‚Xÿ† v£‰iòŠ¢¡ëþåAõ–zÞRðx›ä”˽Íþv¦YÍG¿{‘þW‡­_ád­”ÖHóJ¯ô¦nÅ0³€xû >žüïˆËø©‡uo¼]E>àWImOæGÕ¥ÿ® V7ЪmŸ°ÓÙµíÊÖJÙÿ±‰³sÝ<ÁOœó‰Œjó6f§\Wü¿û⚘dïýs¹îÓíÂ]õVjƒéßÞV¬¶d/%‘V\ë¨ùjɵ$êšZÎ_©E­`f0‡w¢ŠñF¿Í ÜiÔùÔý‘v]ýøCë­ÖF’Oi°¿5àÏ»¨ûÔèG£ŠLÉb ¤ÿȬ.Q»ê y²Vu´(Íå&|R,±ÏXŽMo\ÐÕµ¾úõHìñ†v[wÇò¾ ®Û ‚²ÆlçuXõOÄañH÷ÙãFðÝg³_¹Æh+ÑÑüÅÎøv06D^½`æÚÁ\ò*¥VXé&L!ýÿ1SsGÓÚ•Ùœ(1^(7$%‘r'xþ@8ä•°¾x¥@|L-òÒ_å?‚”ê A NœU—Õ,tµÉ?V åöØ[§ÈUä`G°P[Qâî32Y(…R›rCÝÕüºYZf¹–œh5?QŒ%€7е¾®×_GôeätàžT§Ä¢ÛÜ 1?²Êç¯V*qéu†."Seu¸§f²"z¸åúøðÛØÿ°[å*¼I.9Þc÷txè\=†¾SÍ ­aEéR°¬/˜O{2¤‚Ò„¥ŒyŠùQñ­R¨›ª£û€±)ä(‹°¼°Ñ¯Ådñg¸'ÝšþWnàØÈ¾Ø]GßüÕÑæT9ܼM‚À·bêùlhfüÇer?eT"Ô“_ôOÌÄ^£j5-q~2†£ KþL£ŠNtéKëgûoóœ,g6†›®Žíëÿ¼€?ôÁªzH<îÜCî]ù€g×”§xÓ8Îj ™Ë|ÖûÄdÝ–s àÑ—ÓÑü0{*SüØáa:‚m— Cõo÷Âtùk‡&¼™TeQýÕ³>ìöPP±±øèhœÑå¶#õ û¬–b^çJç WÞÞ8ZÆ2BPÔþôO|ï÷$¼š©ýDWÙŽ«<ÃÜÛiÔo·âÐ/dõŒžúkèw{Þa¼¹ e<ùÇb~®¨ˆ/zºžˆ‡ºH7Pƒ òÙ*U1ÀXe¶³3Óg×tϼb-É*Ž+‘Õ;ßÂJ[‘ÔÌ„Fqþã…É Ä½.ÿáÃüÁ¢ÙÄ|Þ‹{âÙ†Œm&•Ÿ`O˱÷ÃF5dþÇ òÜD y™þ6þñPG£qWv™jåÏçý?õ»IýyW÷T)¢†ä‘?ön¨¯ž¨Ë˜>Dßì“(yµ_`@î3ÿ#ᮿ½úm¥•~…l!;žº­qR—zrm>õƒAâ±þT¿©ÝR#Òt~}Í-ÚÖ 2¡ZüÃÈÇ,&¦ªëÈ?ŽéÑÅ”^½ô ®òõu:Ü{ªõõÝDÇϱ—Ù‰AÛɃD¸¨ ˆÅË~T‘þWµÅ!}ó·ú×ß=Ñžé1°½/9»À8²Ë«F&¨8kéð*G¨ö»ûqE¬׿»ÃCJòcº·‹ø/°à5MàÏûÑY"7p]lYR"'_ôWÉô;ßÙáXú²%wí<×öILý+oDkn¯üœ¼æüJ1<@{,x*‘÷«Jí·ðçqá?Na¹;éTDVäΣKÅ+îÀ0øc]î&²wæGÁ/à³gÒ7|u…³éJU]ƒ%Ê…—Œ‰ŸÂšÅéŸø&‰>°zÝ\}:Vgö`®?5Ÿ÷œY‰Àl†ÿh-ŽcMW€Ìgb?S¨lA5N t±±ï΄¯ûØøs\µÓÓw2ûì“3Þ¾7Ü}¼©MÓðÞIù‰¿Ð_ùƒ.Á&zá?Š¢s:N]ÿÑÊü †¶&Ün":ÿv ÷–Ah¿ÿ÷¤{iïÈÆ m=¶÷ ‡R|$ìnA¡ñX§+ô³¸Ä\?ø\üÇd¬n¼ÝMôÂPó50vª7ìøP+Àî¯âŸ3ázÊýƹ’)"í‰àP QÖVìŒöŸæ}Ùü0lÊ{Pö ¨¢GZ`äÓg„Y/·ð&Ò¹MþÑ…X¸§q‹ªO˜÷µÔ¼·æbí×S÷÷7YÂpøó;ä¯Ný 7xÛjþf£ß 邱™D}À%ñ&ÔC[ó|Un7»Y:º£fw"òX(‚ ãíiÎ1gR·÷LoÜGðµ”<ÁŸe®'2\½¬ TØ1ä\˜îh³á·š“¿´GÕº”ŒL;9È<ô(¨Œ/’Ý ºb-QÄžÇd®·„(+Z¹®×C]‹ŠÎ{9‹ë|¤—0üÍ‚v&úW®•|BnÙ”É"ÖMj wó\–3?*HR²Bo8±ÇœŒW¨3?oð‚zP_!FƒÁþIœç/üÌö-k"LÏ;˜²)ð¹™_kÚÕíêÖk™Ë.aõ¡÷ÍuóŒûy±ƒ7§-ïc ±ëó‚ÿÃßãâ=’»îÌ-¥T¨n&?¶¤T(=P§S?XUßì?|éÚS ý•I=È3%|†ÿíÕï*cÈó ¿2°]wõ |ÐZÕDZEtqšŽða__ó¾vˆüÃéUsŽû]D  `k΋ºpóy`§›íôÈe^ÕÎêLý%öMÈZtk¿î²UÅ3]Ð_ç ,îe¢j/æG펔~×ÔoãÿŽÒê1÷>¸…#Äø·‚£ú¨PÊó.œ†ñH G]OêkWzQ©~5_hø¡2X*-žˆ>h؆%D¡Ÿ ­í}lj =êwVœ¦µ#žoDôíLË”DHQ@eÒ pñ„?¿"°žâ¨Ô¬tu# }a®esç”QjaÃé*?mÓA¼Ñ%Q•ž2Z£­ìiLÛ <Ÿt ¾>ŸË’I?ÁŠR­«'ád—³`$·±ÞO ”ïÅMÀ“Æ6}…žÂœÿQFNàJÿ&J‹Aÿ›ýž‰€ÿ˜¢ddþ²ØCC& û8(®³hÖ+b…"h£–¾ɚĻ;“xa¿<™Wp(ÜŸÀŒÀŸæ?Ÿú×ï¶ ›øXö@ƒzÞô'‚.NÌÜ |5žøÙÍVǸåD§pÏeœ–ˆˆ·#9äT9˜¾CñÿÓé6[ÛîIßõ=èD/YóQö¶£ÿîTÿ"Ò¦ÉMìoZt;ÃÕŸGÑëà¹ÏólssÚȽƹkÕ…þYCˆÌsÞ' ÿî=Y„9ûQI”OÁ×ÖÂ¡Í smf‡EÄ;¸«œàŽø†)†E/ÆYLYK‡aÛž Út™:ïænò’¬ð4C©çëŠø0;¢˜žr@(ý®Ówglçëw²”èâ¤(Fn4À2á;NÁG{¢¿Ê`]GoDßIôâu§þ¼ ¹Y\xŒüLFc´ë‰LRïj¹ä/œÐ±F“S1_èAÇÄJLÙØÈ<ªìö¬¿›úóçÌ Lzv*üyv7V6Z‰ ¡ú—¤@õR$†Ýa$5‰ÔFm3½]šû¿¬ò¶ù^¥']sÏQG8ÂLÏt« Lòˆn¦Eyq3q_‘œ Ÿ7x›þ%‡Ålz+ŽEÁÛS ÿˆeO4瓜ÇT²20?ê¡UÒ®KþQËN‡G©Ç\ÜODM>™†Ð˜$ŠXõyÁÿáïj˜ùµW•Bj¼0ç"ò[‘œÐûê-üǵ «ìW’kU´aèwݵ8_UåDü géŸx—îT0 Óé K/ y©g驘L(â„öD ß1"âu>÷(þ£¬£Ãqa^>ê0¯äuçÅè´þ ­åX=¤®<¯:R¥?5 :d÷G7µÝp&42l"þI Zí@Ü:Ò¿¤£PÅÑÏÿߟh ~òWØ”`þ¾F òæà2OÀoÊáMJù^‡ÏÐŒâùww¸CÉ`<ë±ÌŸPÊžÃ{l ÏîNÄèi´$2 ¢¾€~w4ê¦áôß}ÿ9Õ]«„F§-ØÉœ¹!°„‰ÉìÇ©}ï„ý¸×ïYÓhÿ±õ+k^W«EyvÕšLa%1˜ƒ_õaÍî2ŽlÔ})Ó]âØ—ä^ŽºjŽH!Kó^)Šî9*ÙÁ|òÝ\ar#º¼ž3nê£u]j‹¾h9ÞÃáé ð²è 1"È?&(iõ^â6ùÇlø„è¯ærNºã‹jðNçüŽG~z³Z¾à.ã¾.åžÎ‡ó¢SÛúݽÚR1ü*9}{¸¬aÈM”œþü5 )­Bø6Ôho¥oä ìå |î#ïD‹/øžàW–¢ üÇ pŸ™ä¥ãàº3™3™?x åT^ºVÆ"W4…¹½XªU42œ¾2>}]樷Ü[ä•ÃñÜѹօàfûa¼1#v9Mðûô[Êh÷4з†?//Ÿ¡¯ŽFýß)yÉpæ×†íUXÜãYÜaW-ñ— øŠÉØv§£º;hL&3-'ÿð†ONŸ®ièr[â1ïâQÓç!Uhëèâ: åóœ†ä¤Ì›™ñ‘ݬ(t@Y _1Ÿ~¾y™ >Üêaæ§B¢ Ý¥öá<ñ'©Öñ$ç éhÙ[}¨Åüƒ457JŠõÆ'ÙÅú~5–aUÑ~‚µLÍøuó< Fqx–ùÜÁÑdO›¸Þþðù\÷¯€zþ<yøh#PžÍZfs»%yÆ+Ïõ(ÖêSPtÅã¹ä¢çp"Óìú(±ÛsX¿ ±Òå?®PÿqVŒÃ2 ä×qÍÌDÇûþÔö ÑEÜ>ä˜}Ô*Žþê‚,€§êHþñÈ< KxHl!ªèDv•RœýÊ{÷ßüö'zJvÝ™sJ~ÕrýéÇ>7-øÕGõoê›égÕò¬²OÉLýÇŒàúóø?Ø¿$@¡_%±}o‰ãRŠøàW«ÔGÔFc‚Ô9Mhç~h{g´Íħ‹ˆwáZˆ#¢<ÙÒJQ Æ·Œ@}ÝEQè}kéêêTõ/ýQ·DsÚkÕ…ŽR½áQÞÂ\$N}€þW7õßZè_÷Z{¨§ ÇŠ)·c6ñˆUUðYP¢X•¸N5|ÆK±S„­!Žhñ Jjì²Sÿ“:¸óhPë“ÿB¦=ˆ˜+!¶»|slÇq2’ßí5œÃ’=P"]"'ˆCãFÞþˆYØýAìò\ÀÏùq‚-¹ ˜YJþÕNgw”ájzµ;Êafb‘'äM*þذYø/X äþ0»Ïñî0ÕKEq=¤·EÈ5[j=Y[¹ŽÌò |DQ°Áº|”¯ÞH§£ØLQþ¾O… úÔ¼Óð1!«|þj󻉫 L{Ä$¿ª^äª^ëzž?¸Ñ&ÔO ùÂ"v½‰«ßŒÙG~¾»ÛAê?<ñÿiéб‡îþÄÓx¢±ï…è]tŠ^á9°¦ÌjÄèÕÀ¯‚µ£—Ç[ùþ‰áëÏ»i þ¯9Ðvº_’CÈT=©/OýšáçƒçÃW•1“#ÅÅgIó#h³l9ù˨Îú|­Îïϵ‚ÜoºdDÜÕB ë¬7;Êäæ@:1V´£Ú¹íAd7ÅÍF¦Z¾wÆ ò3h¦üPdЧ‡Y/¯xmd"¾ö2:“Á͆ÿØMÝa}ô\Yð[P \'šmÊITH\%—iËí‹jæ62ó$¿ê<ÿC‚G]îN÷Â#"!¶t9[ ôºsñI¬šd ÓèÕÓÜ:¸2;ý ¬)‰y¶‰:Pý¯ÊÒ¿=¡¬@V:‘úó&d ¨½li½d~Ôd´k­´ö=KG±œÖÚCføŽi勸¯9àSâãÝoE‚ng`~í+4a?ó½còn¦‰Ô³âuÛÓA«þ¢ŒÕ_´Ši ‹èKæÃ¤°œVL39,Å!ø˜X7b‹Ë\Swê'ÅÎS72óQÂÛìÊ´¨Á0ck@:wXå¬Âø•V~æì¦~0…ÕÀªc¾7ý¸ÛÛÅfNæ²ì$"2ÝöBŸÿÄתZ_Íé: ÷É?"â*#óI‰Õ‡ê#u¢–Lÿþ¼*kîVjmé¿+õ”Z쯲ª¯}‰ùQ÷@› s·ûÓÄM·µÅê}]'Î¥hšQM@Äk9ß=­ :yxû\c…ÑDx3¡çººAt5’‰žâ>jP$õ»¥Õ‰êÝ„ÛKBÌ\ެs°ÜHþ „3Ÿæv:q¸ŸhÉþíõƒdÀXK/²ÃDò(Gˆ¿Á¢ƒ½—2ƒÛdÏ·\OêkWºHÉ]^Å¿ؽS0ÊÇñ'ÁZ†S¿†Xª1ïfP—sdËôÙ/¯8\û™Ø»ñûM„¹ »æeª ~õ l|,ïSêŠk=­2~¥JvÖv;ïÑE²„GøgK½LTÑ#â䨱ôÄø‚¼“é¸sÓÉ/ ±Ã»èÖ|]zuÝ™ƒÑ |f&þãú‡8à+±†w7쾜?S„^Yø£nÞã‘Ï8Öûß ìÿ Ú†F2°úüÏÆ'-1Ö‘AM%‚§Û–þL ?)ì6EÍO¬w D>÷¼Šôè¯²š…‰¥èx˜§ä/fTÆeÁ¯â€] ƒÿ½.ã½E£pOº»ö†þíõáÏ—J_<Ò>w0ýwcR=2ÿqœ E§­½(³J‘ŒDA–—Ø9ˆ1Cf"Џ¥6 ³âm-›1lÁæêV¢†8f<¿ÚlRe'GÒ9¶üj™G%ú'îçÉÄÀ>ëð!§±êŒ¶zˆ^ʹIÄ-" [DÄ=øwã ú41°¾9Ðé1oO [äyêÏwÓq$ùÇ”¶í`fΰb23£¹B^Oe‚ÿ[Lÿ’þ(†Â©uÇËÔ"Îð@#0Çúw4š~„³‰ó3c—wÑ· ýs‹2¡éYÇtr™ëTïü)S!Od˜zS3É#pz5S~€u;X1ì’ j+àe*Ðð,õçi,_& ?¢s š°ÔdIÚEô6DH_ÀÄôo×Ðü¥á­ºïP€©"?ÁM\ ëxK¦ÑŸ^¾ ™-²Ÿ|i=¸âr´WE-Õ”ÄX7™?…ŒÛ¢kÚçë=£ÑŠ œ§Éä›Å!s2üGO³ ÉŽ¢VNm•±÷Ña%¡=ÂÚ,‹ÚEÀ몘q­ÛÔ ëˆ*ºòžœÖÿ/ú—¨ô/Éî:Y畲¡º™|¾¾ÈýžZ} ~µR‹¡×Õ¨Ž·Þ«ä‚?Ÿ¨zVæ†ä“‘Yï–²ÿQ“ü#6*Šx@ÅÇBUƒÿx¦_ÔkQµË‘YÆõoiÁr&ƒW-äUAÍTjÇ뢵áA¥ß‡àü#$sýX_TR‡¨“õhdÃAx:ØÕ±Dô­é¿kËi|¯'(O 2†âµ>6‚Ÿÿ-K?GýGCâm§ç“/üÀ5®úöÓ©‰Hz’Få‰SC‰ùµ+•&ô/™LEK ùùGIlÄ3êø§’!µÕ¸ö²+»“}÷¥þÜp=ûðûúçϵ6p À¯N“©(§òÒ=+¶Ö’Ž·aqø=ò…Ú°#áRÿ[ᬶB鯖Fku;Ø€k½ß®…eßNæñ ì©qð]¨µ¬w„*Àwô$Î,§¡¿Š¨³¨¡¦Õs`‘Ë‘ ÄÄn­Â'Cõ6ÆÅwM=±wOY~Ä™?؆ìé&5xË#ô=½–x§n4Þôá0Y¨ÊhE…ÄsžF5,Úmp»åø– 43ñ€N¿šÕÆ ýÐõƒgµb1×TTÞ#c(€úƒgËŸÓÌ Û}‚ŽEè¿ÛŒg.žþÈ”?‘»†¦÷½7k‡{.½´(X¬ZNM( ~€EÆ5†<9ØÏ lÉQ³& "_еêæKêèâp%QÌ÷ Qá?Š»Âé¯îk¹A_|ˆOò¡In)·&š£=&uôɽ ÿñ‘þWýéЕ½ñA´¶*¼‹m>#ÿ¸Éu××Ã24YÀK“s•§°Ìs¤§¡QW1þ£?»H ~•žþí¾Dû#åhøs_®´xÓQù.xÖL¹N¼vÀþ`"‹af&qº‚@¦×EUS£kû}3¥9 ÿ1&=üÅzËá&c«Ë’´£7q*ó6Ùc/ÍîZ¯³zVK ;âÔôt0[¢ñØŠ« úÚBt>ÃÊ¾Žµw³sZ;è|Ñt³¦s_sÀ EG1vÅV-QÈõDb1?îxr2ôÔñͳ"¾QÖ¬h{àÍzã{nRϾ„Ì(ýÜó¡Ž&(³QîιZϳHÊ›—ÈØàò/Ñ{¡ëXÎ;ÚÍè*ÞíHÉxñg¿õ绞W=!꿉¦ðçƒè¿‚pF¸¥}³$_†éÔû¨Ìë€Ýl—[á—£‹":lU\c0óÊøÈTô|bþyN2]®#'À•Åù* Ÿ‡˜·‘ù úŽ +"s¿óߥëñX<%'8ML~¿Yœ¾7Zú$à(¤/ã5ØIz׳xáñZE¬øïdÜ×°ÑQˆò ⓞx[ÓÙOD1v˜«.ƒÿ˜ÏUT¢É×êŸ2¿65þã¼B5üÄkTÉM©B™¦¥Êrø·Æd4Ûðmgñ£ñ ÏØóRøóØ4d—¶ZÿñÎøYNçŽ'«¬ ¢‡ŸñƦïaŠ€j.%¡WWÚÕÈß]¡®rÞ&d•Ï_ÍdþGwq ¿ü*9Wó7M[#Zžøà2w9‰…ˆ—'’Ó|DíxÕxÏ}\Çzú-lÿ¼Ð¿~?Eý¹'¾6 ùÄ9¾ö0íÂzøhÿáƒEÍAt_Òlþ3þ*?‘ýô¶/ebBa­³¢tÕ^RÿÑ»7‹Œ rž«7¶9Z«h|üÌRT*ŸE]œ¿–ÜЃLBÿþÉ´ª{Coñ†V+vÕW.ú¦´àL< c8dþJ=ßHð«²v\;Ž=’Þ*ÔŸŸGÃ7Ø»ÝåjÎóÄÊè…Y/5y9ä}VìÄZi¼–‹±ÕÉ?›qì\ívüÇ\øô¿Ú‹ÏjŠE÷ÃFÇ'¬–»DÈ<ÑÅJGêÏU²‰Ûœ 棺†yAqûì2òùt¨ªH¾µÄjf–¢¿mnºnáJã?Ãv…A ©?¤^ÓÒòm*\[š=`AWÏeaæ»ÿŒJösƒySµ—Î:d~ J>#º¬i\ñ@ô\+¥Q›þ%¹]×›þã±H6ò·Í<$¦Ã¢/€ÛÞGæñg;‘ɵaõwÓc~’™-¯Êô(f,ùƒs?œ3¸Ûå?ÎÀ8ó?œúAt}"Ýó¢¿êÈœ˜¼pñ­­̯}†ée-¿Êd5´rSWrµ‚ØÅÙnMÌ“L|-ïýÜÿÓ_G£SnH½G诒¸îÓ}VæÜR3ÿ£ú«¢¬âËü6T„<§~0íÚ·W7ÔŸІœüä¼ù7õûô@y¨Æ"y¡ŸÐ—jAêÅo/îo3èÇA7–мõ?uÅ(úï…“l‰6¯#±DS£žž&RWžúÁùz8óG`Úa—WÑ—¿r#ÿðA…÷|£È+.Fªþ\r=ùa)è/ÌE×!®w4Iï°Ø•Qì”åO~ì0š±Nœùîo)%éK¸´+gÊ‹kÞõµF13œ:•Øò*½G¼ˆ~–cõ›10öwV\¤5!Fí ËíÌ–‹‰ÿÈ’†ì£ =-îP °u ;E·qÎL禯éЯ)ÕÊF+´>퉤—’\æ w#ßèÌ›U•*ô2Äz;@G®r'ÎsT40Dâˆçpá?ÊÁ¤ËIL¾²™5KòÕcöCwH}¤.Í X`0½åKÐá|èIþñÝëFÎÐ`£¤Þ#ÌzEЮeo:C-è`îÎy˜ü£Ž9\–¿šn%¥3ºµo7ÑLKŸ•9äMÑÜÁ_}bcBͯ]Lÿ«ÑÄS“ÉÊjÈF2ýۓЯcŒu_³œþ ³Q?ÿ„ÿ˜Á×ì7ê¦]ðí3ñFûȽšÐfŠËŒ@U€ –¨=:˜5Bb QGK£ÿÕ:t]³­4öyjòžÃ[ìBu™ï­Æ$dŸðé§é»ZX”s]ojuŸͰA¢f’µ¤& U‡í¬«è¢®š—¨s¹ÃüÁ¢ðûÉÑ_©Vcz'º[¶©’ìý}/:‘»Ìuù×è¯Î‹ù`¶ƒù5B(ôK|Ö`ÝsÃÉÿa³—Ó¿¤¨ÝÙš-óÙqéè^ígþ€ØÎÛÔ÷¹¢Xv]úý‹¸è¯B<ë#¥œÝuŸ~ìÃ3 ¿Š¯Ò’ê?ëûƒû—ÐMKë¤×žiÙ5·ìwxOY©?D][’¨ÑÁ†Îk‰´}ª»8*^êôÍÌzøCÛ“t©ˆÿèLäíi4£EÑÿGÜY€WqmoföÞ3sðàîînÅ] Š»—âîîîîVÜÝ-!H®Á îÎ÷›´œIÿ÷Ü{áisNBöÙcKÞ÷]k1mWƒñýU¶ꦪ‹@èß–®­oÖ/ až)i‹·ø &•6¤Ç³0‡Át@ÔëÚˆJù9ÿ¶Ð??‹*Š´c,s¹Ìø“èwoa±®á¤Âš¨[HCú¥ï^?­j­¹ÄÙ9`–÷ã+w‚_Õ%öíóˆ®ñTRÎÂI4Ãq„ÇwV\c´‚õí†ý½IŒÅbq˜€ÂMî<5Yxé+Cìðœ±U:³¶ “¬Çœå ®FÍ{މQ¹© »K—î„Nu÷&r€ÏèwOSñð‚Ïбp!û_MÁ¼çîý•z’­x¡ñÜC`wÓóÛ3ÀHÎR]7‹üc+|…ÕNÀš™ŽnõÿÌ¡öPÝt‹7Œ|\…ó ‘%ÌåxÙÃÌÿXLßò¶0Ð3ìK î‰`ÐÇá9*YˆíK£6œÂî£ ð©Œ*ú[/¦¼—r‡û·^p¾R ÷Á–z‚× º9%µŸ‚Ù­°VÑ¿$±½Ÿ!-É`QQcS/߃‰9æbð« ¨¹F£ê®È]œíˆüÇHØ…ô/9’ý•S^›*“UÔzÇG·ÛM`dk7yC}¦/pnOý£‘ ÿñ†k_ßÊ€:úOA_ê= ÓÿêýÒ}÷”ý5÷[W¨ÿ؈—š„¢pþw!Ú‚æ2š TgŠÿ‰<ÃÔk³–Ì«ºZ%˜ÍñÈ®eß"/Ø6šúÁ30£¹6ƒmºAÂ|"¶É ?Ú ùJ·ÿð¡û9„'uñèRy…ùçè|2‹~)Ð(÷·ÿpv½´Ë¸ÆØ‹À¯Ò“Ñ”²[WˆaöÉÝ`Á5…¹˜ç>âÿÞ‹ð 1©Ýw‚wú±(üÛ&¤ÏÃèhÄÅÄ»üê°VÒ(nŒ2^Q;n„‰Š»’ó#Ú8qZ:ýÑñäòó?v1gåªX_qÆx§? ýÃøîuc+øÆ4ô»Ã@sªËòWô»Ûey•¦â’ì¤úÿ`ýGYæŸÏ¯ÀIüy%¬ßsøU4y…냫™wGèêû@„…äݤ%®ˆ¸Ü7°œ'É ²£ˆÉëø§à •˜¬´Þ÷©Ü/Ÿ¸¯TЂ¾ÞªåÄ_¬¿ÒÌBx¤2ŠŽDXЉð2Åá?`ˆ§2áC=aúã‡Ú=èz3òè¯þ$V½ÇŽÒb‰s=YðÒýˆy®â—¶cÉüX;¬é¯t J&ÓuR›£g Sñ„ (Šå Ò˜ÞoDú‚-Ô¢r …ùšœ|:Vh#,Æ+ÔÍU2…ˆÊq'Ñ ‹Ü`îÅÈúRá=怞&*Ô±õèFÖBD€íƒå[Ìî‡Áx€_ÙXñè¡àW“´L¢!ú+g¾F%zJs±Å@òv K‰ÈH_y¨N"É~´”}NçS§«ÙB3=i¼Þm¬#ÿÈG¿Ü“äYˆ6úqL¨/HOôKôô@ÕyÍlEþ±¿…nÛÐÚ>ƒÛ¯˦!ޏñZÆ fìÙ>8ù©ä½ˆ¶3¡pZÌüÁ]V ø§ðEè¿»‚«‘þü%ìõ35˜û"¦KÝâ)#Ï•7:E[rRj#±›}PÀ¢“l~ð« ®•äyéÃtÌ, 6ÕNë7á_N‘ÍV _¹¤Ó»Ø—û¶6ç|)jà=ÔOw¢ž=–¥è&›†›}Èškö‚?¿ÇÝS²û=Ú<¦0V"Òšë-¹úSÌ{h*Ê›iP£6[}a=RÒéks£ÒÃȤãT]ÔÅS±°¹Ù㟵3ȂԟçQmEÑZ±œ¾Lï%î`ÿ>;×Á™j®;±È${cÿ«Ò/äwøJt(«"èn¿{Ȇ«â?|°éûÁ1¢›ùAÕ«”UŸ± •Õni¡c^&ï|w‡{´äÔ'–÷¥™Ì&0ü]Xõj õ­À_>¢MÊÚ=ï¨"°v4èž_02â)[áɼ@Ü£q„9°ŠÈª‚³]Usü‡/9ʘŸBDιÂdºökËôøªùUWüÇ2ªoÀGÕ†C©‰ßH…Š·ˆ˜d7¨Ð*`v¡qÛ@þZ®N+RÃåËIÆñÌ%_(Aç°×ìs£š‚Šã(I'ð™ÞÃ/ÔD·•O™•!ÙÃbÒpä+Qˬãy††wý/|]蟯ëé5ˆê%§ã.œ¼Sc2®ätù…œàýK’Ø™¨Æ.€ý[b6ïÔ,d·ˆð?É.²mˆ+ÝþWI9†<ÓFP¤xó pÏQ­¾Ìÿx âRüê»K‹ÿ˜v(7\¼†«ùG 5A÷ ¶âE#7çýœ2±iÎüõ}03É?š£ˆê…åËIý` lØpö[ýU^²®0*÷ñ†>üf)1!Øzò:«ž’7¶GµQ]B <ÑêkuE³™?˜•ÜãÖºª9Œ^´>xÊ*D 'é~åa¥"+¹*3áÑZ#}¤ ÷šszRõŽJºêT V ªn.š4ôWµʮæ6=o ËÝ—3ê¼÷zV¯q_‘ú]ã-làKp̆V8UFÖ#ÿ`ŸFo;Žy†mì—Ô"®#ÿˆeo@sŸg"ªê´Ô¾§šå’j(Ëéßž™ù?þ2>÷ÚD¥[QàÏoXi\±ñ@SAØ^Яå‰]y…~(­È›"ÛIèÇÊKâ §ið4iLûºÁÛÔŸ–=x"‡ñw§\b C½0‹Î\á©›¹aÄø¹R¹’’ã 5ÛºòÐS± <‹SçtJn"ªèiÖDeð¿¨ÿx© ÐJý},ÿ?ú'¦çMKµ`AÑŒzªšÜ]›µ*FòwFxã™ZНgðÛ¯×ñ7©ìŒÅÙ®ñØð×GëïÄNù¼Ç_ôˆÁîßoWþUÆLP›‘tD©Ë ~5P_¢¯E?úPD“Èt†ŠÀ>.Á7ø»Ôz?½­8€ýøŒÅ*iA…êï*…oË‚ÿj¨ïSÿ‘€Ì—c ¾î,õÝYÁµ}°-ñÑ •b>Ó"r¤'ô›ÎñŸeýOr‚ìâJ÷1ü¹«º«bXÕCü]LŽÖl(õÑCÈ?.Y¿€çœ€ŸÉf rŽHTѽ"OñcÍl°WÇõMÁV|bäÂV ·L ~Õ|ÍŸ.²[¬ÆLÜ›Mdÿ ýKê»ú•a^â)lòK¬Ôi¦#.Ã.VYEë`ë=78wO¹Gêá¦(”téku¤Æñ>ÜB&é­tYÌÚ(ôO¬c–ƒ¯ØÎß2Eq‹Ù!ÈüóyZ5½ÈÚ4ÖkH6X5úisŸÕŒy~e@ÙVo<³rQÿ1›yèð}ì×deíÀ¯Â³×¤øaK-t_‘¡øp|ª¨õ+™C2óœÕ˜ŠÁúöpô¿ÉD.Q­ñTlˆuÄ^Èg,Çg¦æÚÇ´æ›×Uzù‹ìå>ÞwÚ6ñB&­©fšÍåkÕÓªëÊGWÇìð©õ o¸”}t3mÝ¡ÛrZ늕ÌÊdú_f¢wûbµvôë¯Ð?ñ¬œ8§kš|ieCiÕ—>i78W:S?z¸üQ3”bòàfs³m#¸šX]¬§`ÇgåT µØkfyäë‚ÿůõnzI÷™¹þê{Šœ°6[÷Ò#ã ô/ñ¨Ü^Üèi\¥÷HÊŸìß~M«.vIêÁ®É²Ê—üã!ºVŠ…Ìò1Å]ý{ÊÓàûfô} Z™h¼°l)ÇêkÉ?Êã›âÓ_çÕBêЂÿnðw¿è½õJ¢)–þ39l+ÓÁ ?‹mØ›¿Pç­%YCýÇ*ñ#±kôßMAVôœÜcwD$´0i°‡sÈ@*€æ;/½™puZN“»ÝW*øž߭ЮI”Zo¥ÊFgÁêàó‰°×s°!)`‚Ÿ`Ã|ðu‰ð«(ó»õçýŒ´§Ó?q/C,Ž6-# 8¥ã'øÂLò…³Ôk$4s6RÒ"c˜“^nÑ¿äˆLCýÇxÐ$/Vó—uèâ¸5×2’Öh5ßðn9ùÃ\xÿ5ÄÛçÔKÜ <@÷+¡g±`eÂdÄÎ'[ûžZOÕp¯Y¢‘¸…²¡uc³Øý°¨ðœÇ›r!,ˆ{÷‹ZxQýUb”ÉõA@Þ[6å¿ÄÄ 59k»8“™È@3ˆÄs‚ Î%kÀ™iKç4a„ì}z”ú?Q¿% [˜b&1áµðˆyði¬òà#ž¶´µ®3­üÔ±å@ÆcäÇá?®Ð]ghˆ+=ü* W­,Õâ#ÉArŒƒÈ5ÒR'=Îv§•À~`ûbE+R58 ¤2Ÿå a˜±È7†è¿ûÜ(Âwà?œ>·u¹zÍE`/=Ñèö ËA¿Œr®vèw[,_0Õp¬ôÚzs3g;›hl‡1©©ˆŽ²Ù©_êj.RGÍéô:üÓ¢†Ã|‹^* óÏ7PSígnµ"Ù÷© l¢´‹=ú’3¬1çw|½ݵòz3Î\®BUò”4ÜÑÞôómæ×Tl*ù†F¥ÞüHjì<ñ¯Ð·?—ôz̉‚±¨ ì]N¿`¼'û¾O¬WÞêÆëC*ú­kô©…îH¾°—iê_¨*Ùhy1)ñ´5Ó:[Ø i‘é¯rÉ´2ðxÓÑ¿= ÑhEêK7˜Gå\ÕÞJÅ?Ÿo€¤¿Ê °0Oú_Í£–ýÕ)ñIAiÏP?ˆ’R]’WÝþc·~š¾âƒ±3ˆS†ÉVBêÏ;¢?¸K~—\¦øÕgû7øþ{f2WYøŸÌ9K”é-7V$žËü?É?Âá?ò»¯Ü[-“×ýîëõü±¯xÝ4¶åD5q"@å§ýa40¶áCži!;ýûª/µŠÌL‡êÈ©¦ˆ ¯çè’’ç¿‚ŒÏD¡Ï?éçV-ðEÝẆÁ„¶d% {0šª2½mrðtOÅ~èÈÓê}ôžÂ™’w OT‹?‹X•{ì qÙu”T»ðJge/9YjÐÃ>ÚφAÔC¥SßË]û^Ë^ØÍšàBþðñ§P œ‘‚ÜÃa­ç¯Å…{9 Vž„çh™ÃBìt_µÄÁwÌbDÒ aÕÃá­ßD×ÖJ¢Q‹Z”nØûÛD«ù½,ô5/€þª+Oé[üÒm·»ÜÁÏ9ò‚\©"ú0–<®M×Mð«ãDâtx¡†ê…lŠÛOÍ@ ³¿šÍª÷É·6à;à“ö’;=QSå#4?üR«ÇSüŠóöÏä!ФRd ‰ùNNó–:'¼DØßÔ‡,"߀ÿ|Þ+Þi}(þc––DÔ•/À¯†a×¢aÏÇrM‡ÂŸwãýSüTeŽñ=ë‚ãOÄš+xÚ‡©É¬Üû;$ÓõÈ*G‘¤ŸUGø“³Øþõ°ßwñ5¨yÞ‹•BƒÉtñFT¨e—ÊMfñ'lû^ó)Œ\×e“aQwÓva¸Ï**,Ž©éfr°¥¿ÌqÖn*Çc1 Ã’ÆÖGf˜dƒ{Á,*_r‹Á,ï`6ßt½·à­ur˜® R¯É“›eL¡æ¹×›Šþ*Q 9üª1ŽêfµÚí™ïTÓZÊÑ.£ç—Îä“(s}æá7’qï¡i ö“þ‰¹7º¾M˜Ø¥L< Ö£±•ÉÕ×~ƒ×ˆŽÏ8D‘aÔœ° *î3Í墣V2+çðøÕ39 -àq·ÿ¸¥_~r9ñÒ"òûÞÒÏʃöm¨5ŸþWçè~ÿ KžP!ŸÚ••!1õƒƒÐ µ|‰HîKG(B^†ÌÝ'à?øÂÔêÝÝgÆŸþ»ÿWýUTýnŒ,b ÏS ÖôÒ2QdE1˜?ø#µzžéëÐXG‘è¯2Éâ"ª±N?#4tNñåg#ÿw‘—ÀµœW#Œvhs†ÉÌ<ó»ayËúk}‰ìJo‚.ÒDŸÓ_8˜Û÷ÿ$×'2¹Èé;{›PK7ÐÃ_'ÞÿhNž0œix* ¬HT"û5øå¤ßÕ,ï4 €¬u‡å~Äñfc’ðHq‰pÿ j~Êû=³3µô gÃPYeJý|hã{™ÿ ø:8BŽ.1‘X!|Û2Ë®6¢•ýÄ‘O$ŠÝ„'¾Á¿yƒÏO/¾„²"½¢yŠ£ñäÀ¯mÃ?–Â[z°›èô*/ÏÐ?q96/‡9ܧ;yB ¦}>“³Bíµ@û`”—þÔ0ÌÀn¥ÄÏvg`%z  MH}o •li5,÷'ÅÌ%⇥\õ±xÖEÂ2BFGÞ佈JRâ?fÁ;ݎתæ%l>}¯è¹ñ^ú&ý;ƒ9êØä65à§o›9ÐûŒ q/®0îâûZƒAîa½m“'ú+ÉZkÍiÖVk!õdkíwØã"ø¥èž™a‚÷ð¥~¢¾ï®^9ØŠ·É?&r®¢‘Y ÄF_P×M*ü¬=T¬wÀ2ƒ¯äÚ‚6ªBö"}Qãðžx³jJ/‚GŸÄ,¦àúˆVÜa™_»‘Ê‘ Ì?¿g/´K¢0ž~*"õãñèÓÕƒŠ’nä¾TŸ|᜷’Ü×x’VI/Í=Öš«PˬŠþê­|fΧ’î)µŒ3˜;õZLú·¯‚ï®eí§Ž£ç¡!VxüiRÀsr{½)ú}ã%žü9¿´5W ‘[©Ûø •m"ú• ³FÙáÏ·Ò·*#ý_Ò}¶û>¸?Üóš'³È¬îóþã¡LΓ0HÑ¿U‹Z•]ƒQ]ÕaBblòè¯2PQ’Ù^megÚlú“Å¿ Ç}ƒþ9¹A˜k¸ýÇtAžr)˜ÃJ"µ!ò˜u6¦ýKÖÓ‘lýÛ#Pÿq/Òä/« º³^VëÞz«\…†§)žÉG„œaæ>ÿÁÑõþAî,-›žÐ}ž~îcã‘!ÛÆ ô»uÄ#½0«lÓ²è_rŸn¹Ñ²ÞïŠÖLl•ÙÈlòìkBˆXÆQýŠð‘Qäk!EôŸäÏ» ˆß&²â0¢û$r å-}›ìL-:z>2€á¢âyf:AT›É>®Âw¤Ù‚ÒX½Ldà©®FOþèwÛI/±èNáSㄈ†}ÖÌyØË#ª<÷fVõ¡( þŸ‡jÂÃTÚ=•KäÎïîp‹&ѧúÁŸßÇÞ'6Ù V ÏÖì#,wEsL@ïDF…Ú™0è¦û™± ]°¾Î”Á” ¾Y‰ª#bS[€\#šwºU]D5ö™|¾ŠHýyXL×q­·.™ çÃ׌óç‚ÿh†o©ši@S ;êL<@îñ¯´SÑ!^& uJbD=ºH ¾—”®G9žl­( ÿ ò6*Udkê?æcQ ÀuÅ?wágWäcâ<=þ|˜öÄHI†Ø¾Š«x†º°F9ñ&PcE§?pºÌ$¾}ˆÚÌ™åÌÄí “ÔZ|úf:ÁZc‰,GõM,êIÆðµ¨5Ìe®CÏ”‚ºâcôÖKƒþª8øÉFâe¶8˜sº÷—r°ìâJ¯0ÞÂ4REð ­è¢> u Z©(œf0#uýKön,2Ë[–µƒª—ä7QÈŽ‚YjËüÁsÁV¼kä"#ófñ±ÓMÍ(Q}†ÏîŽå+Œþ*‘k$(N : ^¦ƒð'ø‡QYOþ:]e¡ßõXËéqӋ㘦nÀsôB[6Íáø]›¨ô¡Î¢èÒ&"òódÐõÓ*ëõˆúam+šÝÍTL¾yk^±þ ëˆ~5†îRà?ÎQ1YŠê”Et» ÆÖ¿ÁÚÐÆL¤~p‘þþé[¯ÊZi¹7΂˜Öƒß.KÃ=¬÷æ{8S{+óÏ·2Ke4uˆI©ÕüÀùö&ÿˆÏ\÷sA¿‘Ïð9ÑQ}0£ÈLjU‡È;†Sáx¶…XjªTâÙ=­”vg;= ‡¸VtÎár°é/r2vXøŸ?©ggf(?ÁsºZn²–¹Â»¦‘÷Ý"«ŒCýHg×^ºÉäsU±š%]™ìÜ;W¬WD^G垺Üç9þ'ü‡KïÀUü}(Ï´zŽÀóôõèkL}§ÝèNþQZ؆£¿:¤ýbÔ1Q?ýUÈ ÿß½¬µ+O‚²æ‹üCÅ‘~ÆG}ú+/™“¹â†x¥Þoÿ¾Òß?nÌÄŒ“%Á$&Ró1RŽÔOé‹Y»XV °ûÙ¢ÑyN}€^Aìáþ~FÃ=<‰\§·JñÝþ%q@¨ºÂ>Ÿ%#JIÆžŒßVD…-°x7A¢fáç|©ÇŠ……­ª’ÉòßØÒ¯'á™6˜Ž1•ÌcÄmõÀÏå[oCލ»ÌÃKÞ­ÇÒE½|›$¡yB&Z(Ç-ô"1{)ð«\Än³Àr²¦º¸êh+þ| øÕH¼{gŽÀ¥ -&úuG_çiº(ÈL?ü˜ÎÎNqr‹ p±Åé]~ %-¶n8¬îgUÈ\¦æsÇn‚kIÿ~w•1MvaGIP\̓¹ÀçàÚž¦¾¯<ýwù‘°Ë¿Â2o‡ãþD§,yb"ð™!óaÆf'6QyÈ>Æ€õ/?š€Â*º5™þWPÄžÝ*Éüéf!®õ{ôRïa7bs?îÐ[;‡ñÝñÒ‘ÉSœ¹óÕ3ÖÙÍoZÖP:–wÅD5OT-`ÂUeªðû)Ü"ÿ9¦þR…Eð>ÝOÅ>…ûá"øh_ü‡—¹ ¨Þ-Žu“nP9É?^Ø#é ²ÙJg?àœ´àhw ç ge°6›>R¸÷7K+¢7DÕß|¦»µYAž•é9gÝèÕ“y[¨¨pÝ'ÿ¨BuÊF*ìr0 x"žÚñ#)P@TRýU1ÿü5™›nRX+Qì¯QÌÞBo[ÑËÐåÁ6²‡—v ò…ÇtêrÙc­ƒd¡SÍhÄ 7èÑN:ˆÊߢë Å3žÇüx`!49¿R?XŠZÝØ×Qê7€¨ÇÊ'°{ƒ\µbZy;*üG8råìäÈždÞ ÝþãAÿч;j÷Ó¹ÀÊM÷ã1œ÷V^êÓÚÓ˜_›Ú%©WÙbgÒú@1KCx]á.- òyå’„Ó[éuÝg準0H5á×óõc_c辺 µUr‘Oè†Ów—–Ù¨gÌ1Ή™_rBÛ¿¯zI«!vse’býšª˜2¢ðÇÓ]#ÏË'Ï w¡õÔ {ÍÁFO¢ù¥L– f]ƒ Ýõ-úY|±?|wYú·7tŸ‡°×Ñ´Ìà}¿‹5<)’¹JµÁñ{¡hê¦"ÙNÂr /b:“ì„þÊçßúçg— "*õ-ð«} ÒÌóä·;À®‚ŸÄÅö ?cTD¸²ïãWë4?ð«#è¯>éï%·Ý ÛÑ}4•{Ùà§^°)ð^XÒdÂøÎ1w2’²®ìÄK£jv ùwrÄÓyú‚Y-;ÂOœùBSø´\ÄiÛÃ8ê—ÔŸŸ‘¹ÙU?ò­ƒ h·dM¸‰½ª.ʰbd! ÙßzpžœÇÇ(T/cUWÑ{9°6 péZ:¡ðáÌíTïÆ”@½b€É("䢆¸Jï‰Îà[«ñíÈ¿"sU4v™0ÿ±U³èu– a-ql|ó)AIŽ6ØN Þ­urMЖ¾ä'QÀ|€=/æ3—’‡¬¤ÿî’À¼Zo –-¹«2a¯†=8'Ÿšµžùµ9™‘} ¦5}A b·‘Í}â“£žzIÄž{2ð™ü{áåÔZäP…èѱÎÀé”ÓÝTø1(boP¯>ùŸUÊ õîl`z2³úÁ`Wú¾Q˜ìê"úèôä,-Í]ê*–ý˜Õ 1Î…éŸXÄ5ÝZlþN¿-Ä·.<Ñ#óº¹}à*OQog‡˜Pd"ü‡ªÛZuo4ÃjM¾‘ÚzH5DAºJ½†MžŒ.+œ}›+Ó üê ý"#Á,o1“z˜ÕZc½*ùø¢‰öì­‚|Dÿ«Gø7x¤ÅÔÎYˆC®EÔT¢®¤™]„þ‰íÑÚ&Å'$gù,+:3¿ö%ÜÓ;ç>¶Ú“#¯R-ÍXÌOïH—©iô…ÿ—¾…ú(ð!¯a¦’£ëÝ ~5•zÄÕÜ“ÙP}wŸ¿Øúv¡õ;õÊ:$³ÃʇCU{fSgÿ̨Ž]Æv¹œùç¹é6’™ùµ‘¬´ä±§°h¯ä:” ûÜþã’îO­ÛžƒáÜÝå~üG×:3 Ÿ °)#ñ±]éñíÌ&®ðô/¿$‰ÏÈ ²1ÙH$ÊѨg{£–ÝhME¡¿‘ʈõ“õ§´¦ô4N >ô K*™šgt¤~ƒüÃ&ÿxÈüÀxåGö¹ÅX‡:g*:Ý…D¸5ä,ê?ÖëÓÑÿTGíânÀúìäµÅ.pÍlHdLuåékOýàVüÇYâÖHX«²»Ü*BªrBÛ©ñŒ:†ZGÚÛüê#±gìPüÇÍuäu4ºë©m‹ƒâj>}9Gmvu¯Öÿá…ò!Ï‚OZ…ÏÇñÓ/˜{soˆ3FÉ>èŠ3aqTZ¶õIŒ>**¼ùqë,Ù¹ðU°óAÌ¢ÀúnGYÁzj¾—=d³×eŒqO†ç:cÂàQ4]s9C}¨Ý¶­èwoSE]€Jãd'Ùð³Á3òI:ZÞ1fZ´cWÐÉÝâM#'jÁ#œãxx¤dÐOa¶½,§'ü Û‹þW:þ£ùG:„\oB¡ÍÏÀøà?LCœýUdêû?0ï!œ äô€ùƒ8«CÔó¾,®2[q\%鿻ЙúÁüÚ±`NmjÇ@µGõ ¥\Ó™•üt®š/©:ýçÏ Ýÿ1HtÈ(¹ÆÊìzaO Ÿå+ª[ÛìR®íT–¦sâs¸+úàÜh­ïñ _‡±6 ˆh” «oé×ÏùO|dþ㎖õ'ãúÀ=E§ûÕ;}‰‘F´„ÿ¨ÂÝuDKoÔ âCG¿ûsݽ¼´Jâ†Ì 3ÿªËwÆ'ž€ó⎌C_'Æ==V°û7p¡¿ò2–ѹi©,ƒ¥ÙŠž{´ìKD¶UþFÇØÑ°Í5UŸäÏãÀŸ×NuÆc¬~¬~SØÔ¦Jñ O¡g1õÙ\nø¡þW׌W" õ# ½Þü¾£¯ÍÆ«ÍüW¥ì3¬Ð)ùþ‰ÇåñïóaüÇy¬ü)¶ë0èÐp›*X×~(Ÿbñ •5O!/i¯Ò‰·¡Ÿ.÷w{1A„~Ç¿z²Ÿh ¥À¯>£k*ÕÉ?|`ÖÏ’\‡“/£¢Ë&aò{´Qú'ù±ø°Ä}øÙ‡Ôtà)¨Gö’¬».±Þ^pàCd_·AônÒ…u»Œ,î¹÷øâ•öшÁùÉ‚—LÅî’/äE¿ëÄÀ«ñyÄ9s2\Ajü‡3ÿ½¯úL³„µ ¿Ú¦Å%åm𪿈xág'sîúá3š€Õ$J(ëóìh‹ù–})ú«µ¨6ƒ¬¾©™¼ >[QÎdgÊï6 4k#jÕ<ð °¨ùéß^ Fx)›@-wÅ`¡ý˜42c|‘ ðµE¨ÖØŽOšLVèÌ#h ÄRßgŶìê4ø•g(†Sã?â0 DY#̈ÿæùÇu#;9é>´鈲ÿ„¿BÆpÁê~5Ѿh¤_FuW{ë8ùL'ëpÀ§Ãן¿ÚCî•I÷p©å&•Â|¬ªÆœó ê³yö·¾1¶õdÍa¦÷3Õo'ºÞˆÌ¯]N–ÒlÏé0Ÿ‹,g£´Ü÷vú_5'ó^H|RL3#|ÞcæQdŠHs”‹Át$¶Þžº'úÝ]Äãɬ‹0ݳÌdÖ³²Yͬ­k¯2ê— òÐOxû’V"êÏŸ*TÏôßm€}ÿƒþ'©\WÀ¯žP?¸Æ:L/ã{äNëA›úÂÇotž™J¶tïþ#/ÏÁTuºïŠj ú«*è¬62ñÜåtƒ¡)†3ÁÃ’ f+ ÿá²¢±â9jÆP÷9íwûJú9±GNçYêKÆ{]·ÚºîRÿ1ÛŠ ê· ”-§k§ë‘]œg«YÞ•ÐîEï4oë*OÎEy€È¨>dby&ðáø¯½ŠG5ƒÓëðï?ï™îÓýîëwìk,úïzk_©üõ×nÇOµJTì¥"=ŠñQ «ª,ôÕ-fl¼”å‰v(ãm±Á¸Eÿv“æ)áÏuô»÷[è+ÿî c3hô0é0ýÐìÖfþ`xã„lNlÑ\¦­(2ýБÇч2ð0×î(~%–öæ ÿ„ò9ùñi¢ž×‹¨º&ŠÀ¦à» ú¦+Øø<Ûv¬þMø“ø9/ºW9óEs’¥¾!ÿ˜.7}w‡/4º-zËØüf!žt‡Ÿ‘Ø…ô_¢YB!bÍHäÉ·P½7>ÝJ(¯ ©ÇkÇ=z“¬ ˜GØ\¨:œòIüÐ,ýUŒ·øÐÜê‰ø]«Ö[¢»ÈTNÀTãH‘X%p5` áQ t"Ò¿ˆ_ÛG\¼›þ%:LMs‰ŒÆüÚ*"øKJs57;‰îÇFÇѺ‹]_)j ƒÚ쎰߳ñlÙÝ3æÆe>Š~w»OÔ’oÕ/0ÜÈÓî`sçee)nÒO mr~j3FÂÑ~%™‹Ör-9Ên>w´x¦‡ÔNúcÑ_åœoñJMŽT¿˜ýU|f–_´ÖÓ‹#§åÃüÖÖr(ûævø)5Ù7éÞ8Ä•žcXø=&g¹ï`êk®Æ(ú‰D¶è~¶sÊ*†ýÚiî{ò“ Çe½¥úâO3;×Å“l;èåýbTáŽpê%“RµÝ€;å3ŒÅfêÅ“QwÆÎ€ÿHîjj]§_W#XôrdHãñ['ñ¯'‰"ÒŠ@>ÀY·45i@g.¨ÁxÁEê>zéß>’Çxô¿JEgÛ•v[ŽxÑýAsº°Îh¯^|&Î ï»·7ÿ1Ž+1,°ºÛdR©„ÌÃ`¿ÆÛFìÔd¦{IGê§2a©³Ï_M ;Îe4=Ôt÷zK™UR™“Tm+¶J)ÓòÙh€á'†¬B©|ïûŽúA_ë:Ÿò/µŽ§ÅQ(LçxëÉŒè5¿.Oß(¢ò$ã8eÞEÅ1 @æþÆ\«Tä5i˜P º­DÍÊC’ÌŠA”äPÿ±˜.p~í-ýºØ'ç’ÌÀ6í–~̯õg²¢SÇxÍÚgW·“¸ÖºöáÓËÙ—é¿ëÁü¨.p#·á¡|ñÛ©þÕ|)+^¾îô?ÿUè­ƒäϵ?Y׸èúUæ,1b‰?‰Çp¶—k‘úÆ㳑Јý“óf¢ÎÜ*ËrçGÄfE‘’gts[<Á¯ƒ_½Ðý?ú^­5œiÔóeAPèÍôcî#7²Û)Ä¿y°ôOe'úaÖsß!ÿ¶`n}˜þ›X JòV  6¿7x{;%¨^žCÜÜœ½&=DjÉCâG*BïD2î/ø )iú‹à?ò€‘•3ÿ &ù(ßJùw‡‡´øš“ü÷þü1ùp›FDÉ#É<’â›Jò”ÇæNݦ“DØßY±‹&{èÍElCr®=9@ÕºÁU¤F¯ùù‚?YSm¬êìe9æ:. ãô¹è à's¡èGþq€+ëÏùoPt¤*õç `öò½"·¸@>°I& u~”Òs‰/ÒÀNn¤¢ñ(Seð«ˆê ä4§Å5êìºÓ¹i6™Ö '‹¥þg¹ÞåÛ î?o*}a(þ‚±GÞƒ¬­V¬˜>ñÜ}º G;T>–hf— ¼x¤‡D*/=ewrµÔà=&ÃOÎ$oÙoæ¡®ø65f É?¼Ì:ôô‚ã’fl{ìé3x¿×e*üytî­b°+Ñ_9úÝaÔn{P§0Úˆ#t%<Á\ñ#f+2,u,X‚lAo¥æŠ¥ÏvУ~gä‡óB¿›š.O-ÌÍäP‹Ž£§ï jé ¹¢¸ 1ÿ×ü£!ÜBU<üH,½ƒÆíåH*…¨{¨³ð¢þc@@ý9óÿà™|MïŒÖJjîõ»K´ z["ƒQœéNø¿âäéȰºØ7­ß¬ñÖLÔR¯é‹¾ß^ÎüÁ|¬[À®HÿÝîI"jjbâÚªÀÞASðÄŽÚ¼–ÕAÅ#fÏg¶Âc¤´`£'Úé]PÝÚ®Ìö1ú'†‡G_ÿáì >ÜÌ 0îl2ŽûüåÇE€/O.{Úô¦ö8—ÿ±ÛnÊ„ÄäÔᜠ2>lHbp0….+Ǭ¬Dìì(C’ GPõÜù‡/¼îY9Ÿ'u<ÕDcà?R¸lWo«#ªˆ»xóœv"××jTÆ-íåf&WrûWû7°­›<Ãû`]›òü´6—ˆýA/ðéu|P¡ÀZ¥×LŽkþø6bÒð‘¾ÅH+šÒÿ*7gû0ý¯ÚS™(˰uï_Šé¥u¿ÊC¯Ï’)‘âõƒ“á™îË'â™8G û#Žû°¥3e¢ÀMäãàÏ¿èGÑ“u`œÛÑÿªœû { [#ôæÂVàV°,Ïq7s ùËcq+};ÞA÷åoò´˜ÿo ýó³ðâ¥ÈÄ=ðޏ{+hX>ì{>¼Ç-ð±è¯JbYo¢§zŽŠñàww¸YK†ªiK‚uø±Â1À¶hbÇ,¤1oªÂæz,è>¡µŠò]üj±Qýnk‹K(Îbâ…2“Ç}a­6(‹ýy¿[ïMý‡4Gñl•±¾Ár¾ž„{ÚL=2úœsØzQ°Éá¸ß¨“¤‚¢Ô¤L'[„Ïq¹0áÉÍòrØèÙ–Mÿ«¹ðÕБ=äó~±–`…_»·×Ykª·bgCá þÀ§Æ‘ek} ?ã-–L¦z& YÒ»õ$KíòvF¼p ”¹ñx©ðùEÔ\÷z±õ3F"²ñ‡àËõ-:]Ë“ÄRåÑëf…OË<ÜØ.o²…‡teÜÂü¨ÛTíMµÄ8ò™Åæi0ŠœÒatÿþã¥m1@ÖKrý?¢Œ+ŸßUùQm¨Œ ^µ›ÆÅox0…ö5õ%̼º„^E}ˆƒäíZøó*ò: •L(v§söÛRñ×ܬÀq:Ø]*~¶}o$lóRüÕJìÑ:üç:úï†Dg3e?鈱WÒËÐNl~g·™ÎÊlí¥btú'¾4̪Oö–†Õ{“3¼0ƒ— q/v6žËhÄ+åaðWMã7|e*uG©‡8j_!3)j)¦l¤÷4­ô2éefã¼lÐw[ñŠ‘Á‰žUlþÝ ³ ¶ûà`'Á›b¡?ÝVÛ•ÙµÌÚƒ¸¾uÈ„[yNɳøÅÌìl½8r‡ŠƒôEØÕœKþ±ÛÁoŽEð™~‰PŶ—€ ÍG¿{¤©-üùaêó\ôOœlÞ–ÝëMЪê͈¦Á#>È îK:œúÁ\Ö*êæ!È„^` ýLÚP79–þ‰§È?ÆpvÓ=`¨™O­v_ä~úã=qÙ8«æVb"Æ´\Ó²øbtt\˺O¨>?LÞ´Ì4\§Ñ³Í²6 €ž‹÷;HßÕg uˆ¥ï†ÿÈ=MÕŒþj”•Ú•‹ŒCÀÕ|­T–ŒƒñYNÇ©Ô9ö·M+†ý®mÄï®c ç®ùçÏyý8üy?b¦%Äc×ä|«;ê…þäoG¬²`Ue˜¯ëãºÏLúæöL³²+1×§ }µœ>Ó‡9ïMè_]ÖÌ+Cöðüºþòk$¢éÀ;á­VXO뾎?÷¹‘ÐïF1©Eñ6óÔrQ?8ÑøDý`Ýë§–»«µ†SÊ žˆ(ðˆã1R¿'®É¸Ò’ºÆÏÕÉ/5Æ‚¾Ì#ÿpâÝr”œ¬¿Õÿ¢Ò¯$•âoÐau¿þБg¿ª&f`Mé Ä÷V0œ|Fþ± åŽ,…Åï$׉?pÌþÆ‘„éÁ!¢ÊBÄ·°5'±¢U©eHjæÇî×åd¹á»;ܨ݄#:Êù©ÜD;•ñD©ñ+A»KƒU<'>ÂÝÛž»µ¥²Eôï¬8ÅàSMaPÎ’¤ÅJgâ=`º[à?ðDn óV%ÌÛ|JLºH¦Õ;Ÿ?üGÚ ý­,M”:äƒþê)B=¬}3îz<µðo'ØëþæS>]Fo‚/ð.¢ž@¼—6OÎažIg–ltf1ÑÅ…#bôB¿ë²¨;¶{è[/ŽXàÕ_Ê¡âWË5Mä“§ÈÎ6 ãIG¾0†Œ¡+Þ¼)Õá/ØM ºî]Æz/‡͇ÏZCÒ<•Nª†’óÙbÌp°Q²ŠÓØôR¬×ëk”ÅÕ5ë4øxz˜î:VÚ’è/ ¿IõhgÙ'Äu™bä]U)>ÿyzèþ<¬”Ö\éë°ÈÀsn”À+&vvæŸß'Ch%3[CµlГxÕ ^ÿ•Ñï“Ê—9TGQkQ‘HgÚb®”è¯fÁ|d£ÂÛÁ¯ ÔÅOèˆâ O·@•ó‚­÷AìB»ö™,µk±ò†M™ˆòw©ƒùCAu.X{°Ö³Í£°ÂÔÏ“Õ5FÛüŸ”†uO&r¯×U«©×A­°»µ¼E5é/é» ¿ÊƒÿØÄt¦çÔøùQ3Þ„9¹{éçQXOVÍË×l°+EÕ4÷á–Fõšús_"œß¬pj…Ìa6³¦Û¦«¨½Šy¸]˜$µý•„™žƒúv#s7Z[‰<æs6|àä†Êä̵ùº`rôRïd¢8 3œ\¬†[•èßîe·Eû{ ÿñÍUv{3øØlËcÊ-•ž¹‰<ö£5MÕÓû ú]/êÏÑLð,-àŽº.[íP&C÷vž_¥È?¸‚h¥p5fþ`-¼È»èž½S æMê‹Ë1Ì×ýþ'¿&ÒgÀ€|ý„gÚ/úÏõEÿú›šžùŒ£FqÑ\<Ðï¤ÿUg½Q…i<¥ägþœÖZ0S%>öàì .‰÷tlï«¿wzòʘ2Š(bü\ýÇZc XXOéÔŸVÙé¿ÛX7Œr¼wqôŽ~·ˆû<üÛN ëƒõ,b5þ Ñ}E,Ws5ùÇ+qýîIl¬¯Ì¨¶Ër±Xðo ýó³OôOÌŒ'rúޝûÿ,¡0^i;¹Hy˜êST\øÊ+üíüMTúíòÛ´—têõ„/ñsbUl½¸ÿ`ò¬æýÝXÐ>øê‘ñàÛ%‚}gš‘ESc"ñ‹Te¤&ÃÊŽ%B]#T©/x"=ÉFáQvƒö'V±eŠ0#…{Úý þã<±{m¼ÃkùBVåÕÕ$¬¡êHüý†Â’Ì%_êçï/\ƶKî5poýªè¦ŒJ‚ÿ¨6Q~"+=dÏ‚_½`öìeªÅk“6#‚ÿ-3‹À¯Ÿ4ÃqÌÁ«+ÀsáÏ“sÕcUW¢á] v1ö<; Ã*tS+¬Ttµ8ºõ›õ‰Ï|Çgß›*Dž¼Q®ÝÓE}øª'ä·I`Tºr—GÇuÔê…âh>øU¹üj(ŽÃŸŸÁË0Ñômz€£d{ED¯`OË{±~è9¹jíÿq‹:QÔ¶L¯“®ñTb¯±îSí=ÂôÁò_0kÃKµ¥:ÞF%¶µÌÜ+ß¹Ïà¬Ð º¡L4o¡ËhnV"£¾d¤Ïá ú}u‚ïn¿µòÑoê/»ÚuöPz{â†3ÿc»™‘W9Õ÷z‹õGðY‰væª VAzC¤6Ï‚*íƒ_€§èm¿‡ýØLÞÔå$Þè4Ÿ°HL ¾‰Pß}0ÞˆJàóáx.ϱjðüDÃY«8þã5”[éŸøü*ðJ…ºßœ­ÙÊ©rø,ƒ×ûÂ|l§Þz(XËXUÌ੪n${îÌ÷[ª7F`ÔúŠ}¼°ty!3¢[«šˆɃ•mìÄx°Ìó°ð'à?ò˜çˆ×³ª/Lq¼úRôO\¥_E‰u·³Þeâ°W²~mg0žÙM~ObÄýœƒUØ!_ž§eø¦5R…оÑ"ˆÈhò™ô%„ ˜LöQ‚Þ1_8îOj¿X,á?&c›puFÂØ¨îŸó¼½%ÿ˜ª}1ŠsÎÂT„sò#ŸÉGÎ’L¤=Èùj7:ðˆ¿&GJiÎçºãNêI<ÒM¤0ö„8æåàWm‰.’c!’Ï\혈"îúØüpÁçé””ÞºiÖ§Æn-ù‡£Ó‡ŠÆ“UÍ–íBÜ‹—©ãLVV„j>i:<Ïxªå2PaÑŸžKóQÅî±=Ñw5°>šLýü­ðê&%KÚ†:2èß°~>èb`m;rMÞ™“‰w—2p Ê¡LLà.½To0œ‚æk5€ã¿@ýËiÎF!¼ñ%ˆîköt™hjŒ¹Zm6¯1Y¶ILê?&ÒÍc+u~M­WT)& {S1ºnçí¥ãï2óHùµµ2ú`₱œéBdºå{yüªÜtøòM¨cŠ®ÃàEÍÁ‹ü±Ö&ž® Wç#ÙYÎg.ÕÆ}¸õ³ÆÐÜ+äà•­ªƒ,Ž?^UÆži·“¬=r¹>ÁXŸÇ7íGw»•ü£þc6¼{6™[ÎrŸ¿MÚ1æ¤àn[Ž~7œ¢ŽY¿¹*Ь ¨¤u)uñL’,î‚Ôƒ”"ÿÈh¥†å:MŽþFî„å¸áÎ?zêÏÅ#95½jC¯¢kV?×!»1ç}6Š8~»¿¸¼]žôo¯`5 »rP“þ3_Þ‚!ÜL\!.)g¦“{ÝGüß{‘FŸDõJK÷“uÝ;õÐÓ?ñ¸Q–þ‰—jJ®hMqþã¦UßøOàÕS­¥8$3Q©ð˜úœ‡B‰óú,=#ügjùA$£ãP\÷õüå´ ä‘T?™“gi,{Ê®z,ãºü_ÒžÞ ØŠ  þmÅxôQ©î Òò‹:®íD¸º|ÅóM%üG~x­ÖòOÑëßúçg÷ŒÏ¢šê²—57ÛÃoì%?ƒõaú)ï€ÓðdÅïwx §G§+È-üdîÿíÄ&žèœnn.X@I-eÉ?"£L]Ž8k<ÿÎ}ŒúpÔ•±5—ðщ¶dè[ôTq¨Œy*g¡°ÿö âšÊ{ðƒ°kQÍ«äõ9Úüø´ŽTº¼©¬Ft» *éܲ‰ŸM¸—þPCè R©ýÄ(‡ROY¬i(ŒÉ!p®}û1:*ý¾~Œü#¹õ¾^./*5‘} ¢èæ ¸³@Làï½^4"á½û£^[A}÷LôW7ÔJ¬`!ô»³©‰X@¥òaô»Ž¢+ª§T­¼¦—ÖmöŸ o½?žB4aÿO`×ÒP%×™ýù,]ƒïDæí|®;X­®T4²¦€³e¥ÃëLb»à_Î5¤1?*‰\–xŸ¬²"õ—³•MN4“ÜÊ—)‚kÓÀ×YËíôvÜgE·oàcªá—ï±’Ž-ýÌùò…û¢ì§ ­3÷Ø0²žòdº¶¼&‹Z«à?^R‘¸ÒšEw[&Iq¼­˜ÿñ.©³€ƒ¨¥šä/x¹ÊfD»UÒO&GðÄ®ºõ§z+Žâ‡»ÃRd€‘™®ËåZ æä¿ÚDõ¸ Ö{9˜]2j},>ôè.$'¹íÍm)uÌ)x.ë«Gæ)Y@UE#М|¦yVºS †áOB÷Žëv¾,HY‰¹/wÄ8ƒ‰ï®¹ýGmpo9¸iv §×ÛƒúO³¥+•íEa—®b#nÉmD±¿àß“üOð«LÓ ÄZßh%tÝ}žÜô‡^DÑÏèÊ8o”3„_@O_O­*ý°±…2nj›~h•¯ÿè”ö»¸*³£¾”}”‡LÃLÉz|©@Ø H! R‘ø3ÆSÀ;cÙGq óʵ²‹Ãx!ûÒq¼- <ú³Šœ?täéôfz-±»ü¯‘ÛÙÎ<Âï.¢B/T}^²2ªÊ5bâlÑQ… SŽ6Üü«ö5‘Ü ,s¾{‹ûÔ— §ñs¥¿»ÃMZj}dLð°¢`JÕ±Ó:Ǽ.¡‡YÄ©xîSÙŸ{¯©:þ]i‡Q]Y¦3ÿÕé­jªù*%ÓƒŠ8S#>’qàûÇÈmžá ƒ šaúWÚdùÑ|ü×eªþ4П¨–;b)f¨­ÔK"õÙÄ·Kù¼Ýç ·L&·rý´T kËnî ÿ85,~Eû"oa^ëEIbÒ™øÑT×´YŽF·ÒërøÁ·ËÍ'ÿ($oã½¢þ OåI/T -èLמŠ‘ñ'ÉQO}ÀÚ]Ûʈ~w qH£x¯‡ìß~Ù˜o—ÿ±{üª9`a‰øëùG2ëªÙ6}-ÚÒ§Xòµ æ”[õB\éWFT`ý¸zóÌväHãÉÌæ£•*Ç3ƒ²­÷hºýn%büÞä3y`2>±Z/øøæjÓy‚uQUÍä'#7ú5Äa¥ªÝ‚}ŽI?Á-àW©\]‹Y«.}`¯âá‘|âhNà?f Ü«l=®ÍB~|­±z¼§) M~ø¸Wô£¥;5“û- l(‰½‘ø£) Œct>ÄDƨ`Ÿº·WS+®·E92ÞH®8ø9T Î@{µ‰~+ ¬Úä… á1R‚_ø¢‚td*.Ôí?*éOÈ?ðõƇ ’{­‚艇[¥É†^Ó]8&Ù ¯ËÏŽŽFx±YÖ•ÌnÁü¨ÍÖE"/éCdÓ„ü#Ãÿ$ÿˆ÷èê>3—˜þsqý×sªi1ôËúSÝËH'ÚˆÛ=·h™Pï.6žoé6VW½À‚¾Ú«UkññÑè¿[‡Ø>+Š«ÉúSê?IS¾7"ü¤~wŽ1€(uª,ö>‡*·•r€žÆ8 ›Z“nÙ°³UCLÄ º› ¯sèôÆÂјÞÀó9ébn&2¼(.ƒ×Ÿ'V¿csFþ)§‹yA1Œ×ºø òÇ37â}ŽcqÎy³þKx˜ËÒê* ”çìs°ûJ…±S‚ßàkîÐÑË„Ÿðe‡ ³ð|ËÔ”1PD&1×(EôìKìù»ýw7eÈ?º€u]¡Ê<>V:L@xó7"Ã\ M3±£ÎœŽßÐ_5ÀïÅ‘ÉÂD*Ÿ€_Åã_^ ¥^'<øUcØ¿%(¯Þ;<:ݪž“}¬å,áSÿ±çA\ åpýñBEÐ_åæ|M'k«DþáGMÜ=å’ÓDB°ð) l“ÙÎpt®Œ†FÁ?”üc‡f‹ÒøÔÄÿ}@n£„©‹}Ȇ-jÎ4 \er™àõ/@¹fƒÏ ‚K¿…ÎÏXGÜCGGø’Ùè¹ö‘«nU¹°ï©¬Üè2=a€cQëVt?yG ¬Þq³ý¥n˜iÁÛ{„¸ÒgÈ< c¨³YG¾°ÑìÆùY„?K>?ÍÚWý‘ºˆ“ [¿ÃL¤+b~:K=!`;["ÿ/*UÜ¿J îSƒLõ½‰í´vS1בü£8ú«¼®©XѺ(žÎ›uÀ×Pr}ØiâäL!ºýD•ÛUlÓ\²-ˆ“cW¯ÃL7'+ˆ ³–ÊŠKøÌÙ¨bg¢;Lnј¬ÇFé=¶Và?^¹¯qw­Þ;Šyj’¡fz¹HþÂ,¥!ÔsWG¼=ðúEúS¥W…úË}v´lç8/«ê? q2©±îõòëŸ ð*û®cõQÏÅ*ðÖ¶ÔŸAo5¾ç¹ÂNô¼Ìî û=:t­±NsÕW¢pó2/ÂGeb.Ú×wh„qbqøÎGæ#™Hµ´Š’œ„‡‰h?´&Ó kžd#ªå±VzØŸ„–ÆÉaTöã?¶õÑå×õºêý‰s·OÀ6 —‡É?t×p°¯;VEjì+ØÕ\Û\—ñéÍì‘f—nŸ‚ÿ`æ=˜ò 4ƒu`›9䪯 þ¿&A¿˜<Ô2þŸù}/ŠØ]ÔVôW;´ÒÆòˆÔç†ûÉùQ'´ßÄvtLѱu­Õ]‘œoŠ]j øCÄûîä¼à'qª1•ømŽLG컄œc2Z± 4M°i#eZ2‰¦¢”û þ»Áߥכè5É€/ÃL4Æ\¤ô_Øâwâ6l±Þ;TE¾² ,ð¾FÐwïO¢ö<"Ìñ!,qEòƒ_± û±‰ÌÓ‹/B6óŽP HЂ¾Þ¯¹¸§v0ë43.Á l·ëŒ­˜¤SYõ\¥‹nÏluÇø^¶9ͨ¢>ƒ ÕÅš_Eyµ€úóô(®ª˜¥ˆªï/m$ù…WxÃ9ȉÿˆª‡Õ‡çœ¶HÏŒE½Í^š€8E#·¬ŽÿX£ê€¿W¤ ¤(–?ÙÇ>ª ÐÅ „¾ƒ4CåÏŸi…D¬L9¼d~Î×BÎVqj{Ïá!O©ó¢›ˆA5õpÎ_òžàW‘ñê‘àV¹Wáq›‚‰Õãº8«0_€:åAƒS3ĽxßpâܾäËAhö’SíW3Aû±û$ìþ4+-3‡öã} ÑAÜ…x;­eXÏAŠrs$»Bô¿ /Z°÷h ”¦–¹T½e2Ç.˜ìdÌÿð¶¸Ò ßQßfŸ®”Tw_ÆCV³TÙý¯\rZÛ\³ØqØ}Ó S#ª¸SQ±ÐÎa_f’^WôX;èh¾‹L¡4™ÑcôMQh͆?ìqÖ–*æ!ÜcãP –&{‹!ÊœÔ[ÿ…º)ö~.ìÂm+']sWÙU­²Ö!ø_Øc[ºã³P)ŸNp?±é¿ëÁç=#§¬EÞUcÍßñèR8‰¾¾‘™»‚ùµ Xþ+ÖMk)ùLüGØvVfð¬$ ‹Y­TtPÙCôõQVƪuû†ú-á/'‚(€§k/Q(]áÏ¡(‚JlŠk?A’¸~±Ç™]&ùaqK·/ 29 /±vc-+wºø¿÷"®><ˆÿxIýà§ÿㇻðáŒ5F^ôW/8ù½ôoïclDõRfTúÇÝÒŠŠÕðç±@ Û£M@MI/úÄ\“i¤’šHõ]ä%øºSŽÔÍ“ÅÀÞg© ô/€·[ŠFf€œ+ãÃ4 ‘‘ÿýÀwiõÚz]±"ÀÂÕÄîG}ºëô£Ãô@ßÓ¤½“\ ÖþZ˜¯Rÿ‘…;ñ#‘ó^ìe~ìa>°›£<Ýå•$Æ/FÄòMÕp9=„UùvQ/Íéur:ë·ôÛ=ÎqmcBÄ? Ï”™Ø¿61P<"ÙCDüJDýΊԃ’W7ăœíȉËŽfà9xUEëXÏóXùSp·8 U"™A­ZÜÙéUm¬Ö›l­9¿ãAÖ„ÌfQõ3‡c!—x˜[sÌÃÉðîª^`—·¿=Pí¹–’ù ð’çÉ×v€©”sô²dm&hþ\ñ‡ðAÑÔ”Ø8H]_®‹¢ŽÆàÓ¬PüÇ6ð«ò2èáJ|D*ò¡>°áC‘k]åžÉ"Žâ‘xFsŸ8S $^œ¬VSÛò˜Ñw0ú«J¨ ö‚½ï [›¾›ŽJÙá»Ðk)-q} æW,‚ ø~u¶ÿ9E~ÕUŽ q]Îdl0¸šø£ \Sàˆ†R?¨cñ§P[·ThuÝ“ˆæö8~5üÊG¬t1|×ÅEKài|hT ¦¸BýGRŽ˜N†ê¾¹n‚Yíð Þ𮆮¹T_ç¥ ®(D [éuxŽ ÇX¹von˜VšúóX(§Ÿ¨¦ô9ȉö0/ ¦~t©N¾6—ùâ'˜Ë‰*‰RV7k³]ÕŽòæäùÉx*âsJªîõFê7W\Ù×ĵ¬1ÊtD3uú@ÕÖjgߢâeœý|l¦uÁödBûjüFj²ÍŒÔ¾0»Eæ’NG¿¿ÿ$Ð=E$ú0Ô"§|iÞÁJ·¢»²‘ÌaVÇ!ë™HIj½èäÛ ¢–] eB<+/ªjzüØ ©ŸåH·ÿx¨_Å,âéÍ=5Xú0ÿÎWA¼5TX<‚_ÌõÙ€O^Æño¸bÉÆ0Ù‡œ*' ÄNjù.°Úž]DÛ9à»ÏKÇ·žÂN·½)…Þ6'ùGМô˜';…¸.ç©Ì >Þ†Ïߊ™€ßž‘c\f±þ²2Ù/è߾ͬJÿöéônªÎ, ¹ÈP³L@þq/ØŠÏJX«û_boä:òÓ)Ä{#e4+“ã"ç™QAì¦X•¬„ŽŽ «3ýÛUaiÆÓ{s¦éÇÙ>'Ï‚wÁ’‘™Vç<ÉÿK/’“ qž™§JÖ_ì‹þÃ6È…¶S«/£‡oÅš»”ÜTŸ¯Ó¤x§FSýð«¿<­ä«À¯\ˆæûQk N~"}Æ^ÈÒ2¡´Dzí×êTÖihçñYA¨”ůSÔ)Ä¿k@W3`]ÚFrþGbµZõ"V´55ûÉØ×Ÿßžø/X€Xhmîá¡öªš#üw…þíÙ`Fãw%òÎF|^š{i-Ö³¥®¡&©‚JyPÔ̇0U?[ö¼ò@z RKJ={I¬V òxd7 °ÙÀ*î±ÑZJþÄê"óÚ‡¿â&­Ø ]ŠaFï ½Z€ú*»ªO|ŸÈgó™S5ò¤ž›Šæ]s·Ýë\ßllþIsƒ÷úDwZ½œæºøj¯éßÞ—s´öã¬1˜Må·b÷…ð)˜±AÝüÓÝä' Šœ4`C>Æxð°–ú5õH¨?jM¹üÀœŠ¢Zèn 76ÐWe=®9v$u´v 4ŸÑïqØP98¡50*'xÿkøêÂaú— 7´ A ¹½áÅ{Â ØøU#°¹øô¦]„.i#5/›èøµvÁ‹]1 ‰ú„-£¹ü*$’iÊüAºÍ »æ:fx§üdÜ£¯ã'ÔkèW5ŸÊ “]º¡¿jB_”\ð çxßUto¹Æ‘3rêœ÷LaüG ¾{‡8ÊV¾Ö›ãé—X„|c<ý“8N“¼ƒ³Ø`úÒƒä(™'ñÑ<ô»ÆM½]¿CôqÔ"÷Ce¢>c>j™9h”«Ã“»¢ºªB-ÉIk<½Û7ZŸñ¡éÇ›‘n¹©ÍL†ƒŠ–¢DM­ô÷òŒ3ÿئ>Ïá?þÔ§r´•»Ìž_êÏÇQúšýT ?ðYf—st±5àÏ;Ó÷ëùÇaê=Põ»+ó_™•Œ®¶#wÖüǯÅõ΋¤¨ø]Û§•¦þüµj÷Ù >\[ªjoÕwÊÁ_Ä«Ôs­ÀÚÛùG-ýžPÄE|Òvr’ÜðÑE*-"ËúMÆiMÀ]ÖÉ2<ó ‰’›Ë5êc‹ÌLôÃ2=Goaת†[«N_——üE~4mÁÀRSýgdf–’´Ò2°=ÎwÛ øŠkàmð Uôî«?¿«½%&‡§ÝÈÀ¿øê“°nŸøz ÕîÔ.f®Æ£(¨Õ|ô»è<õžLe´Qßù$ŒÿPDy<ßMTÞY©OéL†u…ÌÀÜM?ªèšª¢¾*èØ ^UÌìNÖQeÜnêïÿdf 'ÏP Z!æ#Örß"ƒ®MfAßcHSc2‹èô/™†ïOgÛet©ZMþq[ߔΖרQùjä5¾2¦óNœÿÑ€; ç½9ùej:¿%ÄçAU¥ÀêIüͤôKßgµ¹ÛÌübä=éP N)c²é!zª§¦ã½À>76[éqä~"€¦ä UÑYm¿zC'”mÔƒ¸ ç}~u ÍÙ 0À5œáÃøþ…2Õókƒà?D£¥xj_]d*æ~ K¸FÖ׺M=üQ± ðçñáW²XS­¸d4éÈ?txÅQ1æ ñpú§ê9á/gÂfŒàù¢n 5W,fwÍA«é镬BŽ]ŽçV]G3kó?²á?³Q!†»ÒOÚ5^Ñ,ä•ÿ ü*9UÜWî6Êëðf…þýyûûwÞ*{Õš'õ“éGúkîVJâ?¶iµçÔœûûŸüÃwü”lb)¸RBT:]õGB0Ó°¹úMoqX‰D^-s×ÿ°ŒóG3´ž¬5®k¶9½@æ3íj»ì«‹ñS¿ëÝDÈ„1矅ó"+HrZ±ßÿ S›oãWôgâþÃF# °Š›²—ü#Ró?^Ò¿$öÍÚt„È;÷X1}7hÇiXë¼K>zâøSAØKÚYÝ?ÿ»œœDçüÄw6•AØÂüW¬â \Ãz¼Ùøúús-u+. ÿ`¦5üp¡40|ù±Ö |jU¢ôóøâ³ä%'a5>àƒ3ñlº¨?Ùâ]e•‡Ž„çX¥-þ7(p=¢'ÛhF Ýf^³Þ,|Þ>âëËØèëh®]DxŒüc%¾ˆAÌ[Ž|ªKDÓÂ*Äh«É?Jr n`smýU0°|d/1èxØæoþ#H‹F.>–säÎŒ>œ™iX·t¬Z@þ1—¨~»Eo*£&ª®©T¬ä&[øB½ûð«ÞúÐå/‹CØÓóΠÏÂUèG_/øí¤øýX¬ Ž Žm WíahÎà?¾¢¿ú>vÔr¾^F´ µÞc±_þüÖ®ø[¤?¤^|8ÈwÀ™h޹Äåô/™ Û‹êi´‡³ïŠ8Æ' ù‡¯|æÜÞÅUmÃj‹Èo]A¹â1ÏÆdÂÉBr¶lè¯Ý?¿zŠÕo °„¨8z©aœéBÔm”$ŸÊ­Ïs®×]õÓ8æ{â½rfsý•@môB[Ùr%êˆòj%XXt‡<ë5ý¯’œcŠØ,м­øD­!9—•">¹vÎ`€Ñ‘š²²0-¬'ÔŸôùêE-Iw惭…ïOŸù¯LXëÁüù>­¢h†VÊ®tÛ£ÑFjëµ·Ú3õÝL~åßMüÇ6™{ð 5¬—ÐÀ¯êª×ظ䙵´¿´ÏZKÔ¥³Aª†àåÓʶrþc›lª·¡—{!WçÙG™úòb%±ñ{¬`UpŒÆJ‚GÔÆòå§þ"ýKúÈQ"dóÏýö-å0š›XÌ=z<¬UAâúÅpÈ­ÀŽ娛¾-ÊQ²W„Ç|U9F§¬wTD¾Â¦€ãÛÍ9HÄ8ŠêgMdì9šÏPþl™Ùr™üõBìÌ*ð«ôÙmT@¿;V<üÇ ò‘Ñðg]õLýà#üG,¼î,~{ 7ð˜ýÌé lvÿ’|ðç¹sͶ|?©u=ø¬v7ÃïsZ€ÿøàÜ^gøóžøµÜ õÈf\¤»übœ1›RÛÝ5Ør«¿HdžØ±ÑjÂ<Ûý¨²cïÀ˜d$o¨„æ:¿¾Ò¹^Yõ¶¦QÄ=@·J=š\†b) ýr‡YCÙcmˇeè§>ÒqÅÃ:ˆ¥— gf-3÷©Ç)̼ëï ~QN “¨®ù©¯¡Ð»¢ åìp( È8và'—XuÀÔX*]H£ .E]bA³U97ñ;od-ºj\tú£ÄÅo¤];6ˆiº\`&¤ûØxüÇ7³ÝK˜’å¸.Š£´5ĘIág«%yØž!IÇ|&Ht4*þW榡*o’óÌ<@¿‘Eù~Ã~ŽÆüÁÌÚy­ªè‹ÞŽåO)M´ÞT€iL5ü5uÙ¥”X â—^M%ôãâµvG-­ Oæ×&c¢iZí×ú¬ôÒ»aÙñÄ'—­ärõº™g¼uv-iãHæYÐTAšì¹à¥ñ®ÆflÍ+±|õ¹ƒ¬‚~w)ÿñV3%lˆé½°öD¸Øè¥(1ÎÂ:<΃ ¢«U›HøÊ]Ø·ô¿zÓp“Üv»nwÛ­OG ™†Ø±€±•¨¶¹šþ(Â.0K´¼tZꈿ“’(¿ì¾€•©€þê,ÍV0‹k`e^< é&–V ¯[•}·UΪoey” °„>ÄÓ\ìj²—äGm°Ô—ð›á@n“Õ¬àUgê?†½ÙøúƒòF£:•ÙE¼ÛI}Y_E4]ÏðÀgé†Ù\¢LŠ5GþÔ MƒÆSû@nàùýûr'Ð_‘ÐKo¦koBÃƤ kf%‡©ÍW³Ð奈;Q Ll#™—}¦ã §’o‡Õ_m×ÖÉaÜ%‰¯7£:ÎîÖ“ÏÉJ¥Þn*²Ò)·üù°ùèwOA_#"Ï­÷þÓõVKÌÑM'ÿX†NˢFþ1îÙ@'4•yê+©P;ÏüZo£µùL+?¥ùˆ~Œ}éEÛ_¿¡z8Ÿrûèã‰vìÿ.ˆZBÔ®=¹Sî›Ð¯¤^c"ýÁó8ÞZÍ™aä‡uïÿ(#¿–ÚôôO<ÇÝ”R´ µÞ'2òDD'Ϲ놰»kÆ)0µŽ`s¦HÃÜÖIóÂy‘£«Zò±+ä EÍ6p“_ôÒT3¾· €¨•¦ÉzOž§ý=5+¯˜RríØC0ÀUFr*bž2• Íó?Ü”‡":ÏhâÅiÆD™Ì˜d6tüVþ<&Ó?*_%C¿ëG“ÁÚlå¢ã@.³"üÇ!¢ØØø_yÐé?ªŸ…>—˜1þ£œeÙ@:Ó5£ÁžÔ¦¾ñ8ŒHEGq‹éfŽ L¨jÎd©²½ËÒ›]´@¥–KF†muž”ÿ¥‰ÔÅèb¿/æPÓS©ñý«_ûœ\=…þj«æ*ZÓkÝöÇ•ŠZ'Í]»Æ´òê¡_Zîž’YL“võ` ,HoBCÜ„w¸IO÷<2©L+Rk¹~iŸƒµæÔ-ŒdVØüGjø£t[™![P_Ð]&&vIÿ‘ýn)1ËæKTZýMMlgK4bG‰÷_”eõ+̰+ÖE☟h·Diò—˜Ä¨»@u쪼XÎéø¢æ W–‘ $o1g·\„Ç|R9#/Ê÷(’¿íÚ«M°ýA– %-i|á}6à?a¥Kë¾ê¯6i¥ð]9R»ËU,Ž0?è­N4×Äþ j„ üÜ—\ç Ö26U0‰Ôë?;jõ¢š€|á.¶·¶Ë…jvðt€3Þñª=þÃ@ºK{µð-ö »ZR²´Pã‹äºÉ1yÁ{xòô•'£Jƒ]ƾ<éŸ@­Ýò¤¡¼Gw|{ ”ihÙpüÇ6å•–G>#_Øc›Îx¢¡1ùG9° Vôî8€ẇBj=7ÞÁ¬Å†.FÇ:‹xdµ­aû'þ©M 6©¦W çàvlà%2.7ª©oç3O3ß äüÇoD¸ Ñä¦wU'ÂOŒ¢úDº{†©ýÊW³çGÍ¡Ffd? Ã[}6Ö- ¸ÿ\ºým3_ÐÑÉŸŠ¼Fæc0¸8ø÷Xæfª4j³ÇãêÉP+JÑž«`wóÏö³±Ol¬Än®¿êM/Ú¼ŽÏôOl »Ý†ù)ÙŒ Çþæþ„qÁÆ Eh-GT¹[78ïÜeÍØÝ Ã“¹ùŠiÆ ~°(üùI4E*Ç ÿÑ̬7hÝKXÌÅÆépîo Ò^mž7™Hª:¿—| 9AüGºjM¡ÿÓu³0<õHôM›àå› ë½ÄznFsG4 p˜ó6Q?iïñÏ÷ƒùjtó®ûâE_ÖšdE/`:ÖÃ^HÇ7Îã#4Oç`é¯áƒwÀm#æ+sý0‘Þ±¸š‘}~4j€’ì&ÿ(aQáÇT—üTÞÄ%Å {cŽ˜è¯2šeñpˆßÀËä>§ÿðQ?Ð?qéãd‚`æØÎ?bŠ ð‚>´…™’S”ÑÒ;wýOë|ÿYg­*ЉÕ2xI'=.øÕz5‹vŒqwârÿ#ä¯Ì ‡±u±àF߈õ³añžàjR[ñ ÿÈ[Ù‹Zå½L‹œ‘•za“ïìÇÒ7çÉz¶À¿¤~*Bþc¯–‡L¡%±øYìy6,G^$IQïæ¥¾*ˆ}®Ó½ŠW8͹xIWŸjX-Ò÷=û*§ÔTþ>åé?JKGÀnøÈèwkPQ>-!§ÙM6ïE>?­µ·ÿÕ3LS~Â&âI¾BUŽÁ…ºÃ\d87Å" íÌ$xäi\ó9ü÷™bÏäbâÏï; ù¼S¹¤·Á¯Ü@\ŒçxœVøv>h+þŒieôÊMc®7féO¢Öl•ŽŒ˜@54,žê ï×Ýè~y/Œÿ°Dw0Ó·º=×u!èÇq'wxx/²–¶Ö\"Þ莎Ó(Œ››£Ì;œÅ(¼³/{Ü/dŠ˜hê^|!fá?üñúÁ‘vë÷Ñ_M¢þ|ù–ÿQŒüÃÏZÈþÇcºâÙî³â^¼àrcˆ r^ŒÎðç]ˆ~¦ãWcŒòL¿QÙÛ@СFä4Ë™@]w}¦†¹]cõ‚p4]A“s%ȹ®É ÎõêªOµxܯ7¸ Jš¿_>Ñ7šóQź2§vÙß±êËOÖ=üÇuø?éåG¶¾˜Œk!×_fïþ¾àSÅ®ÿ¨AÖ»ÝzlÙmqMGTÏ•Ùa º‹ÔŸÓ]-Kiùk ×ïGóÿ÷9¡: Ö÷5^¢¿ /ÖûþóúüQ™KG©[Z%á*nמPjhãµeÚ%ͯôkêä ÌFÜq…Ü5»¾L$gÕ®èÎØì9ɹ#´|¡÷ÚN+@ü6SæË©©ÇÄ,V3€1üÎlÊEXÛ¬zöHöoOÍlÞ$<}ݰ¨í‰Bƒ_ý¡ÿ¦ï^Ä«ô¡ÛHAx­ñ²«zá~¤]eˆfoa‡ÿ$¡Ü|*÷ÒAl“AA½ÕטS’Õy¥Â]ŠoÞ€ÿX•L‹MO kÛ «•;·€½‚ ~BD¼…þW±üô㚈`Å}Za,}s>ð‘…{<÷^¹œa÷«ØCäï‰'Mj¬&3¡ú[h?íÀyO9¨~#Û÷÷éÅñælÌ+×F)Ö]Ÿ Žò†³ºŸtw›ÇϺҫìv>œÃ}ÆÄK’ <¥#çn"g¾Ú0[w¦'Ä ú—lÄ¢ä„ÿhªO13ô³Ô †ã? ¿Ê ®‘™Ê„øø{júoø`<Û`kZ_mƒß¾ªµ‰ë>‹Ýõ$Ç#î©WÂìðˆ6Wá)È_L¤îf/àz²´pÐÙ©óÞB?ÚXXçòfUj"JŸÀ-'µmÄ?efþ`û0×%)+ Q@w4Z½É/Æ鯀‹·ç.F§Ó…è ëˆPMüÇ|{1”\y÷Z†+WïB˜úsÑ|(%@f4ήÄÅŒƒ ,Ç©Zo¾§Ó&àÈÚ3qã&š&{¸Íå!RX¨'BíД aSlõCE&ŽÕ/¢³²û_ÝÇ}(fyRW7—lÉæâñr?òº[d3ûé˜2×h,¿:Ï`¥¢Úƒó1»¡"þ/)w üG-ë ,B7s¶Õ›Iê°¢3ñ~¦=mC£ÏHÎ^ÐÀŠäq‡åpçzªú@³ë)©h¿›z_÷§âc«*Ù!ThœG#5“|äv^uì3÷ÀÜâÌÌBͼ4tøUKçñS¾Šttë¬jàgl‘•ôZfiGGÀÃPìzš%˜l5ÎÊD÷šsP£OÈ„–4àWQ9Ï¥ÑWÖJ/§ÿh«Æ$/>Às´˜;¿«ôb~íQ«!;ó¥gqr¼PÇa®Ç7r›YFnGFøùò\«ÇøÛò"ÏRS”1ùdHÇzç¡ÿŸ¿0Õ?Õ®J”Tê§ÿð=Ÿ+ Tí¢Öˆþ»w‚û—Qj“´Úmm·úM [aõÏoã©1AÆ9"Û;,,8ùfj\&ë•”YeBü‡=a=òÿ keuS_%ÓóÌ7‚?oD<‘A»Šb©œ/3‘4U#µb<µššW4'¦÷B×SXšš.boqšœá¶êŠ,@\0M6ã"±Á/Ú'Ñû.°ƒ¬X¼!xÓZ»*|&6üÇúã<—~˜‘ð³…)7ävº_¥ƒÝÏ;˜DL>Ž˜~ö¯*þ#¾±N©1–?“¾]S"8æMš+YQ?îÑC[ü<9R>"ÈTd3;aºÏÁ ç}ËŽ?¸)’¨o²¹«Êõ“ÌÄ6²Þe|vrP¥¬Ñæu²>ÿ¡Y/ã,ì¥ò|5YJ½üùÑpV¼«Ä¥ÿî3ú±l>L.Xÿ‘Vœà ùGT¬Õ*߯b»GòŽñ@‹_â?ÂãÏw £.(_ã{&Ã'ÛÈ__²²í°.™ õ}Õ˜?±ŒˆYòžËÈ?<ÉqÊSoV)Ä$ ñs,¸:£ez ªÍÜf"²£ˆ—›™ô 4ìŠDܵ/‡í»JÒÕhÏÝtU½êJǽðÏ/à{òã/›'ôGtV÷5OÒß±…mñ ý¯–€ µáyÊYL 7´8YÏ':†Z8Âjþ\ÕÊ0Fžð‡‰žgR‹’‚¾W³étëcƦŸï*#ˆÊñ›XøFd›7à{¼é9ÂTÇæŸ/¢‹kG"’ƽ6¹D6KÆÄ§¾° ƒ±ª}±õ—`Q¢;ÂL÷¥?cüÇq˜öµt”ÜÁu5bêƒWd9üGç¹ ˜›èŽÎÑlż¨¦Ö|sŒéŠži Ã3&Lbþàj+æ =ÈBýy„ÉíiŒf´µûÉ‹Zg©oë¿•_c"ºLÆú¡ŒÑ÷áGODØEÌC«ÈJ͈`/‚–— sÈOΕ”¨¾É°§m0þ¬z|"š~^ÄWïÿds”ýj2*ôü©ºG5Iø’Þø¦£àWÑŒÙÄÓíŒ×dK±l¶:ÁÖ£ŒÑkÈÏZxÚ½ëT½:Qâql³'{,‹•·(þã¬8%æ>lP%£;~e4HzÅW2|üjâ¥e–É,F'%êƒõïÏ9«D¦(7ú©  vñAøçÁ~t"‚hþR½æ˜iÓd?ð«âÔKLÇ¢Î?JÀ‘ëh¦N¡9õ5ãPßW ýÕ:¸Š8ô˜Æño ÃIòägò¯…‹oèD·i.'ÿ˜‰O¼­O!¶ÏFŽ5Œ)EC@:ã?ž•MШ 3½=o[£.qí]¸§·W4áZÚ]3€7µô¡bã0*¦äfk&é¥w<Ú‚êe6ï‚_e#º$óÙD¤°\£…Î?N‰©dD_ùÏŸ½ÿqMX}Ã7Úÿ¼üS9¨%“Ï9;ÓÐlÅ!òíÂù‰·ëó ¤ >‘õ%*ó¼ðšÄâ\Ÿ¥üÜžf9ùh!Õ -è¦Í$ÇkÅ‘ySÇP÷G6ýWÄȇÁ¯nš.ب:t—:H.«·‹j3Ù¨7;ÿ<.³Þ‹`·ƒû˜c1ÆgÚØ8°ïQ õ§Wë"ëÝEêšOàüsà7ßÁžeÍêúx=HÝêÞù¨õãIxJ”´«w°·±–º/vW›ø>ŽãžUž~U:óI‚bÕEs¶ {¿žÇód­C­wEâC”zþzüåPýþcóÏïáîØxõg˜6ëgì7-æGõ!þhLnö˜$t™ AR{‚_Uæ9G¦Z ©ªÜ$30[·µúŒ%è¯úS!^ g¨5Ùdº.Þ©8•‰ÝØ]aüi%TÛQõá΋\†þW±@µ>CT4Ïé§³Ž W¦ž—ƒÿhkv·üéèëêÉŸª¼KÔp¤²ÆP™™•#ŽC€[zúï.wo€rT¤€ý¨‰:å­Ÿœ·==¾ú±BW¼H˜”êp ©-?ë2þè7r¹:tƒé2,23¦É `ÜANÿqˆþ%ѱ#vGµ}èyFšÙ©Ñ¾‘™2ì+HBê?Z¥e-â&VÇož0Ÿ­Þ‘ÙE=üq‹ÿÊüÁÔøÎ3óN‰¡†è° R/‚”ÅjTÍCk jүĮåÞ«×fÐë´v^ý¨„è±#³Ü úItóÇS/¬oªØ£6RÄ YL¾ E-‡sבY¯¡V’˜|ƒ,ŽÓW.;3 ö­ê!;P­q‰'=³^PÔŽÔŠµ²ZB !cØ/i×çU§úª3_çø3§Ân< ñS"±µëš·h f×°{îÁúÝ"V]…/òÀêÅ¡–­uŸÉņÈìîð™rAn$ß/¨Gq¸Zg÷ýšC|î÷ZÄx¤§"[’x”“Øû'ZŒV<¤UÆÒ·»€Îˆ½ÌŒoŠÏÚÅ™ùäí_†ÿ¸HPbÁ ¬¶€¯þ€ÕN‚i…u˜ŽH×NtäØB®`añçcU7e…¯溤ïeÞ«/ âÙd)Ñg$—1@¿Ö5™“ê‡Z¸œÃ\” »[Õ~ê?já…¯…ñ±E/²’øžbüFKc¿~‰Î†ðFqàÏç¡õ‘ŽŽf<ªûÓ¾6ùÇ.ò-øÐ“ÜK"Lÿö7àW_øx„ÿh ×/ã?Üð=ó¨QyÏ]κJž0 «¼”ž^œãVðJw¨¨yÀÄ‘YÆØð«Fô/«;¨Õ|ÿ1df·¬@ýy7úIÕƒSYj¦&/+ý¥f[]@îNYi¨?÷ÄSG=v„¼¡¼Gïç¼"UÕZF2æ\Ï‚æIý’èê¢*þ£<þ£7¼ü[Žxýw¯²g?þJÇw\µMðçîÆM½d¨ùƒÏ”}"l[c²û7†Ž>¾¬ßÑ’®%¬øè¯&P+š•–šu© ©lî5‹à?¾q×—»Úˆ’ü®Ó&.þ,÷€8,Ãê#g›E.ôÎgÒ Õ#Ë8êÒŽƒÌʈÿ˜hüî(Èœõv(»±þðç#ˆlšÃŸ_tñ¿÷"‘:í‡þWÏ5z˜;7²{ ¿Rð•D œœîŸè¥yk^êkå×òCJ Ö ÿñ3[E?'¢Š#ð*¶¾²|'²D‹ÿ¸ó–Zqlê6Y?‰úóîÌ£Œ¥ùÈúU–Úø–F‘œ_…ÙŠÅÄl¬Çu®\[,WcðáyŸÕ3⡨j¯)æü¸…Ÿ¼~®]¿c3“Ûzä$¾­:²„b LC£õQA߆ʈªÅå©òH•1èòùì„Î=ø¹tx‹DËý@±£kÙ‡%]Ãw\õÓÚ·Ÿìêû·Ojeõ[p:¨uµ+áí©®¥©ðÎŒ­·ðFÛÈoN±ïüÆaž§XÄýùÔÏßÿ8ÌçsÊ.5‘^aŒ~…ÕÒba;à)k wêAç¤âFú&>Î`Ï“,Ò›Ëáòç7éõF~Å÷г h»¬A®uýî%ºYöÂüÿ(@4ÜŸýæ¨ï“ÆÍG½fc|y@9¡e¿*H¼;ƒsîì?F±ÛþdˆÓ¡Å:…E9ªÿ±Ž;`|Ð}zÃça–ôÐzÊþðÿ¥°‘;¨ôÆOna¯Ûѳf¡þc#ÈcšÏŒ*T4l%—C?ƒNkÕyÞF ®tˆ¦þ¯…c ½Ü´~ëÐhí6p÷‚‹Ã1.ÃJ?ï±VJ[uJŒ?™3éJ§ÆG°)ãŒ.6.¢îõ\ǹç@" ãß:rï½6¶c嶃µ´Vá?â9Ê;6£¼*BýÇk2×”ø÷ðÿ{ðËõÜ¢{¨õ‰¡T0}ëìÄ9Ÿ?½›îMuÍ x‡ëô©*l]¤3ÈBø”?̯ d‹ðÊ}AÛ^1Å7WSEÛ¹^Gò¦ð€sÈ?\©LODT9çËèLUo6‘þ%·Ìt­Z‰~· )±ÐÑø g;F”TßH¦t^‘†ê5-1þïÏÁoæ<݃H/žQ •TutL“Í: M3ȹ¢8âÑ¿ý4™R4ª/Þ™­c¾Ê.b›œL=îÜ_ â#‘íV#ÿül¬– ™Š…Zö³ÔÅg¶žÀÏ<¦B%™u‘)»`W¨ž¤ÿn!ôW*Ï_ÐcwràkNÿ±Gý$äZæ™([È?Í‚ŽŒŽ™Ôôl3;1“ª´ÕÈáþ*•ƒ½ŒžŽ’Ô™4嚿湻/Osg—¥â¥”ôrñ¿÷"™:S É•¿*‰Õ>f¿¶‹tW‡þª‘hH¯Ü¢œmôWë¨þðÖ.€iÿ¥å.+ïP@æ$ÿxu?-b1S¤‰E^u¥ £E*-b-ÒoØÿ‘Q_/«aGg’´’3ÔÚQžñwò‹ìHõsýHâWqñyˆ¶6Q©Öž,öøÕ&¬—¯ØÆéKš‹Ú3¾ZUÄô·ð“×Ï´Ë¢+64>˜É1ø„"ØÐßÈbÖR;HÍ] «bùTXð~2âšÉ/ÊEyZ~“%xšk§@ž¶`¥'’+Ùù‡«ñ.XÛ°  @ˆ*éÇ"äÏŸiMáÇë’#ŸŸ(ƹKoñª8þ㫯 OºBd}ì(}§¢¨/r¤ÞÊ>5ù95Ìþ2ÿþÄå[ᕟËõ3ʯˆ©Ü9·G8»öó>-Òçpóóô/ñ“ÉÙÇ}vG7(žçÚð7õ„Xÿ×ô/ùŒí™ jë âácQ9WŠþ÷ ^Rniyå7úïεHf\ ÷ëÍ9aÏ«¹îåî©€5ž Dk»“ëìFþ1tB<ü[ýàam8±Icªé®¢·Í‹ÏlÉo¦$QÍ$ô™šOý¹ ºS*¸b#ê^òð³îx#/œL௽~Ö4üí½ùÇ>0¬±äXYË®‘œÌ¤ÓQðã¬ÆSªñ®‘QdÆ¥¥§ÇiØûFä{ÏÕ=Nûg¯˜Š{n>ÑN*¸ûéD¯ô›äñe1±YC­Ìt wu,Ɗ梋î9£&hÎòÕð3»É¤Rˆ.¡Ö‹%'¢|»ÃUíIƶM¿gÀþõf~m*ó ÜtúB½}ÚM—ß°*sø™Ç bgñxsŒ™?ÔvUJªÝÈÃç4%+Ë‹ö°?x9¬GYøîäAL¡JêØ ŽSùõ­ä4=é‡RU‚ÝÒG:/r æ×¦å»Ï@_kø îb£] kÀ „IÿˆÿpãÿApôPŒŠ.8€ n# Óð€’èwg:÷5ùG"b<»?óSãõ¥™Á^ýï(r…ÓæHüQ0°³¨Œ§›EÐô@••Ó,ÿ¸Å]ÿ@Î5íôûU¸®çAž¥íz{òDŽüø%ð¬ôOìïØÉõ«g¸ÂL%ÿØhÚS‘ý¥»¨Žï¬-O9øß{‘MOú÷÷{¨¤Q#B4¾ÿnØÏ*´bP^—úÁ(šÝ©i—’Q›¯Ñ.hžªö‹úÝSÔsu¥ .¹…8ù&Ï÷¼7eùA$Y´Î]‡ÝIx_÷Ö°\T}áÍ×3Ëžà™é´µr Jlbà‚zÑ,R+&£þ<A¦ðë×¼Ä~úÚ0Ó 4€("?¨Q \&[Gªû3æGÕ½ÇòíG•+ËY‰U½K~ã€ep¥ó†J°‘2K„;êYyY 4¿ï±wWˆM˜¨NÖp˜Ì¸}ú^±þüѼBeÝO‹ÁŠà~g‰ìÛÜÂCÌ!o/ÆÚeA b`Ww’'ýiÀºÏDáŸvP{®œS]xÿO\[é\µ{>–±³#`P@I³¯?É™Nè7ˆ®–€8ÔG¿¶;¡}…)I˜úiÀ\‚›¸²V žÜžçåÀo Ù[xcûÙQmvà§}a®ÀŒ ·ÿÕ-ø¶ÜòøÕ|Äõ&‡ÿèžî‹ï,HD|•ìd»ñüc ǽ<},žð ùvØú­¿ìÌY+ ƒ}lê{Ø‚—]Å4¨YØ@I~Pþö€Qÿ™—ÉUƒ@`nÈ¹Âæ–ˆEä: ´”•±Kýõ|XÙØ’¹L(šd}aõtx¥éDÛå™ç Ûßþc$õç'B]éx¢ÔSâð‚ aõ8ÂGðç›P«º˜Í@sÑ·žc¹L)°±×(Œ3ñ{¯‚½×qâ‘WZèúSNf­‡\µð ©&ÙGþÑÍÜad%ÿ˜—§ƒOqGåõ’§V´+¹Çà e>3>B”€-•Zê<ÛÍïäÑ%w‡ç½OÖZ_pæz;YWbcÞàO²ÎÙüŽ;þ#ìüÚ#ܽñuÈ'–¢v>C¶³´…~³±˜k½l<üy)³:1yur¹bØæ¾x¨sFn48Üë¡þ%1Ñ̆)=F ßø+úZ<„AíĪݦ˜ñ©J~H†T¯4{RŠŸžå·ûÕ8z?õJ¨SˆÞøí ð«‚x›vz7øómØ÷˜f{¦wÇsXŽ2øo*ä{˜þ¬– 5Òz±x,Ò¿iíB­§É ÁùÇc­¿Óñø:þcµ~ëè@ø§ ]/éè…Rw½hýÐ(üŽjø.øÕ#zVÍ2:üP?xI)«þNýù®cmеTÌÊe~2»R Ѥn*|ü-æŸçp̤o{z—´¢‚´ÙÞ71øUq2 ]ã<5™ªŒ<48ªœy¤`6~Ø´>XȈºÂŸ?¶<©Ö0_á+.2¥=…5Ï| ¶oº„]4¥kRJ3W9+âc•\¹ãžy¸çšš±yác61§÷ ³]öaó[ÂïÑC²›5˜j;ðçu¸»í™ ~r–(À™ŒQ%ó6‘yÏä>.™U1Ë`?âP{ØÉj`ÅuøÑ?Ñ`~Tð«(°+EÐï¾$ó‡?ï­·…A«#÷8øß{a÷o_æ¼”Ôªt~õk»øª‚?@ÿ]{þ Ýw§R”êós𝶛òkõçÇ”çLàIAþ!ðÉWEjqBmIŸ1êÏ?3 $Q„‘sèÝwÑʇåa¦×ê ä0üGtm›¢?¯ƒ-+Iý® ÇVLŒÄrú`ýZcC;xB/‹=¬|Œ¡8öê-3oêGªþ\Š7¢>5:¸òI²š¼Ø×ZX'wüG?T(L¸ÀÇE#¶LoôÐGõ÷¯Þ*7¥‡ŒV~{w «¼• k*6z«Þ|è5i}o§áO*ê—#į®ƒû=†Wh~åÇ™ÏÔœbXŠ<<¥. Û±Š'@›ò'ÈÌèÂå§pn+×á?jÏmÁ3^d¥äXÕ†¬P‹¼~•Ëõx‚5üüïz¼a<¹¢ßߺƒØÇýþ‰/ˆýŠÛÏ7>lQ@+rÌëÁüù^1Q<5Æc§ò1?ÊF†²;_Σ[¸øÕQÅ[Ë!V[DŽ6§3Ww4v¦¨ß}Ì|Ô·‹`îÓé Ö¯<‚áúvá÷7ýÕYm$µ©íÐKÝ€3ÉnËZM6s„ù´.Ô~킈o¾5jÑ¿Äöôì 5C`ç½Á¯êÈÐêXEIMþ‘‹ßœÖÀŠÂ͇K‰ ¢4¤höuuwŒêæGŽ;×:¸“´*9Þ‰0óϳê5a´2ÁÍB±ì©ß¢~ÐËüþ¼)ñmjøóèw¢0hÒÿ±®{õâöœÍŒaº5¨ÜQ¹û¯SáØÂ˜®³-ÓªxÌ­BþqÆüf 7§âíž²Þ|£‰ÑüJ!)\ú~ÕL)¤Ú“Ç£ThŒ~7™|$óÒãkœBO¦bŒ@kûÙL€*i±U›|Ä“<"©¹Ó _‘Xd,“>ÀùpHõž–’kð’#®b6cR*Y#'ýJzÂÈÔÆ¼¤v|ùÇg8ëÖ1ó-^J3íŽYÉ?žê­evæ]_p´rOáÉjHìpÞ!·ÞÃŒëÈ@¿Dw«8¹®SÒ‚Ž‘Þt ŽŸ›Åü£T>–$ÿ¸N¥Y¬£f:Ð÷õš«ñ¥J4rôz›¾Lî7óPíAŸ/fœ»àãjX±§/­‚p,µ¦ŽX(¼*¢ìò!ʺ%ïÝÍ'ÊÉ&~_ð_üœ‘ìcšóÌÜSr«E¤?ÛÜ;Åþ%µ† ÏOT[ÝwH) ~µÿq›™^´!kŸT^h½ej*Ò‚¤«¾WdÕ.êqIfQ‰H]´|Î]‡üÕÏ_uÑ ¡÷YGýùt>>ŠŽô¿Ê€‡êÏLº“t5É¡WŠdÿ«¨Ì6)(º`IŸpÿÔÁzþ~ÕŒm#å2±pjpø»rªì#–ÿ|CΟ|%ÿ(Ém€qØ–8«á=´»c\äÎx€·,úÝ/tþk++DxÌAÊNô»ñÉ‚kúúas’a ·b•[ º Ò“nøéÄöeôkšK+^ÑRsL•ØÉa¢ÌXͼx‘OØÒ¼T6^æëMd^è@}*ÛÏÐÃä Ñu°ŸIx£"ä+]ˆóWñ½à;õŒªp#vuúZ<ÈM²±‘xãÌ2V¸ùÇKQ±Yöß6æw‡ÀEÕ‡{òCó|Hß~‹ÒŒüc8<ö8ÖJHW}GºNþqXÙ§Yò)¸øtâì,\‹nÁÚâ‚p õ° ÛQÿ¦ÁºÏÿB¶¯· }ÃlÛÿ‰õ‰ózþõb“6@öâ¬U Ÿ8†ÖàGºìÆ ¿4èœv‚g*Lÿ’ÝàWÏáT6ÃÔï…ŸÎBO„‘a®K\¡rM‘©mEvØXº9_ô¶ˆnÓáÖS×}i~/©XIV)ÈŽ‘[Ô&Êy©n µ¢CÔc?‰Or€© "f9kÌÃ&-¡¿J𦬎ôôoß›þ»È Sà·n¹)LÕ“ˆßC­÷RL&ƒ¾JfÚ ù}úicݯll.! W—eÎÓdø”ÝX竨Ú½¨?¿‹?4©¡_ uçz •bj]âœy N•A¹êÑ{ú©±…>ëŸQ[3GÁ3 üª'™Èº?·¾ ˜=jm£Ö„9 xàÍô¿ÚÌ]>þ<Q T. "ΚÄ" CîÒ›¦£ Uˆè5Òž¼c-Yƒi°®Àa|6'[1ðGéÍ.èÂOñÔ¹Ýý¡âú_9ðxêçRQîonv¸£u®J\à §iDeÊaôWIÑ4úÑ)¥Ù«§ùæñ¼ôÆ“õƒÿÈ#Ï8øß{‘ ]F3ôQIN¥øöï½ò§šžiµ]™jiu¸¼”Ú@ú—‡?7~™ÿ¸‚~7˜õW™œiÖ¯47µœzHÌ&ˆ)“ˆ¦¿XÿÑR‹Z²F~ ÙÁGQRž„íŸ.[ÑÓ}ƒL;ZUÔsÞÁÿt’©¥è_ÒÛq‰˜–N6DŽÀ%¼‹PmÅŠ}¡Ò놜$Fªâ3í¦¨‰U{œ}ìÁ+'7Lìë¾êNV ýÕz8´ˆÿñPñ@c cå¯è©‰¢û𑎽þÁ½YÎâ!–#ÙQ_VÏ®ÖbFpÌûð§É›`¡½ƒø”Äø&¹Gq8ß¼Ê>¼Þ u:?’']ÙÔ¯?9}AÊIõ…,‚­Úqÿ‘†uëƒV¹Ó·"«iØ3kWñ\®Ä“.džwÕKÈ7Zxó£ža È ö·½àh†bÉ›àé`Çè$&ªŠÓØÚ¾ð¾Ãñé=ÉÒ¡V±ðW^áø}Êq-…|ˆ…_nÛ¸?ÈÓ\oÒ€ÈuO}"º5-a²ñ«ìqùá;·þÓœ­¡úõ7žìR0ÓABŽa@¼¬<5ØõRìiJó6Ñ}9s›ñ›¡ƒ.‚XÁoØýK…¹. ˜µ˜t£4,Éxþ›ï6™ê¶ÔcLÇÚMÂ̶Þà?ª˜wÑ-Çg=B/¶“ÝWáx¦ÿn îà…ø àWÃÐ_]ÔÀÃÉÎDÇAVL:ˆ—q¬ÃÔ¤Šã*Ñ;uCð+‰ÉW7• £¿º!ÆSþŒÈbï8A÷F6›Ù²ƒáßo  Ë~åË4¥óôÑ "ï *ØêóSxC‡¹Èpû!ÿè TÇ(\»k/¹yìù¿Q™‘ŒÊ¾QTW\£Šý J:þtܯ‹jõe~mVäµlϪ‰SW¼-°¡_á>ÎÀ¡•Âvu‡…?‹…Ëw]Œò6bÒVÆ‹p‡•§òþ0Os ž¿‘àT8æ#|´%ýÌw7±Ã‘X³ú-"µö­JÚ.x]Ü­™‰·+ãg jmj¤%>¢HÚAýùMtXèIs—,tFʵê‚2÷°‘–JŸaÎaA{µŒo=ìÆv£/øÞ˜ç<ÄǓ̅p­ÌIÖGã½Ñ ¶{‚‘ÔM¥§àm4hµÉ‹ß«ÛB­˜ýÕ\Ù =9Â0Þ{°W~¨~Ë7¥¡¡°c=ùBs°1bñ”Xçw¼óaÃã.&ÿðóè•pF¥7Ã:ý¶ |t [J:*´4ïQ7ÕjC½ßêI¡‹O_Æf%óþ£8ú«–d[yÐñ–Ë ¿ú å&vzOÔÒÊ\¨ï—é ½‚þ'µáχo]fúQ²›?·—Í bŸ`¤æRÿAÇ.˜Ç’r²óü R¼E*0W´ŒÔ1£;ê2O¤%}¾îšëÈDÚXÙÁ¯b[3Ì~Xû,tG. ~e×”MhCŒR?Ø ]©B„²‡Ú´uz-¹žùµùK銹‹.îx¥*ôß}†¦ºõ]5éÿ5†êäy>2´%Ÿk'O8Ïà¿÷"Šú‡:Úyf(IÕ/ÿ᛿¿JAµ`uüÇ7µ>kžUJjk´›T Ÿ§«Öö_Z÷Œâ¯õ•*¥dcÝ!Ë€X­QSÑ¿¨™ŒŽÿÈø‹øUQ-jÑ•`•‹°Õ©?¨æÖ®ËQØ”K²¹I'ÑÈyþi«IÔ\jÑíñ¥+V®“q”;3PlÁ´ûÈÆâI&7ß/û§…þçgw5QDù+ëmEÁk÷¨ªK6{’µúñÝøF"E¿DÍcÄõÏ”eàW.âšžŽ}ua¥ôð§PJu™VÈv²Þ0lxýJ„STöiÁl›cKw‚§å²³X–QD#Þè0™‚ÇÒØ CðUIÙ¿ÅâßOÂe“j῞aài‹à?:`Û÷èMYiþ£§ñ¿bמÄ[ýÉ»ö… x«Ýý¾ÄŸ ˜º*ŸÃ¼Ü#¿8¯)^”¾Pù°ðUèO‹j†àl£aoFã±¢£ºNþ^ÿ«ÍÊYð«;dgÓéÏۓܧ»IUŸŠOj ÷àMü½ƒëÃ,pî¢qäMÈâ–׆­ÿØLÿ’Ñøµ<¨m÷ƒ¡yâÛVÀmÃÂg£Kß° ë\EêüK\tv#P\¯%ÉÅLšÅaîE;ÿ°UzmQù®áw‘¥Î‚ëNl®2FÑgjùGú—¼bš_ŒF ÖÔÌ}ì¶üÏdýêjÅD¢5¶êŠ0»K`ã˜îËdŽýt}ŠNýùbüÇW+—ÃËüjT¥Ã”/Þ-)ù‘/˜ÒBãXjÚýãt•ì6•Æl㫹cÿú’iDcnírl¨OpýÇøó×pÝ-ÈjÐßÑV7§2×üÐÛm)ý¯Úƒ¬1•s>…Êj?Y‚è͉éëÀ—Ï£ïH|*½Ç<øôîTŒw°âS?8Œl+…éA67œœk†ó^qSïk @ô®cï[šèŸØ\,?óCŠY^6ÊF…ß 8ù/t…ŸM—Ç[¦ŽþÊÍÀä› îÁ¼r¯óüÝQNˆt U¸CèX Û˜Þ|O•³TŠ'¡OäoÖ#¬~ 8yÝZ@«V%&âf3&±NîÂ6(A¿8ó{ê¡çÙ÷ý2êÏ—áâ8Ü©¬w§ûîxP»ÑŽÝŽD0èy¬F.ò£Ös§ù†æõƒCˆlZä}çÿ{/’«+Qð~?SÍF§ªï_ýÚçWÊrøó[èw[‰jV9©ÔczízbW“¨;~i¹CŠþãµ}Ἧˆ2Ì\®&”odY)eôWE~iŸ´´¨Ž2w$'ìöµ vNŽcRàN™ÎÂ5’óÏ£SŸ˜Œa4rð’}0†›XÕþ|+9IСRèê¦ÊÆ"äþùÁûhqeC²–·dAÃ2€¾ÔǦδ+ŒÑ}5º ƒè+ëËtó9eÙ¾½­ç&êíC4ŸÌÎîÍ8œýËXKÍËïØð”ú-¤ëPø;œ¡EÁjUÃÊ{]eÁ[”ÂFûódÇF½…§pǃ×3;Àµn3Õ9¡šø'»ôTþ â?%ùÇòö˜Ù‰5ÊãS~©‹å?ÃY´çl­)Áš]ÞÓÂv·µ÷z …E ¼I…ånÎ×)° Eè°”— '=|@a²Ÿ%F:½‹ ÁþÚkr ‹µŽ f5¿3ÿÁtPü7ä]ñGýͳæ,ë l‹=o«åFÛ´—Õš ¿Z~µ+ÔUqý8ËOà{²âc]ñ—çЇÉfUæùEuܲ;ê™×`h¦’5”DS0•Þ-Sxÿ#Ä#éÂ̯}Fþñ-⢩QÆPý ÙÌ*j#×°ÃSÖtª#NšþV s‡±ŽNÀ®jƒ`¿Zb|ÃGO•΋rŒùƒ½É#Gam»p¬ùì;lsz£×¢e!Þ/˜‚û‚΄Qôú®|e­–É4¼µŒ:Fv}¦s½zêKí yüqî¶æ.º¨öÕWÑM묕ךf–4«X¾0>{`©ѱ=µVÓae>3gú5ê9zÒË|r…óü-Q®Š$DŽ6+8Õ¸/Ë¡¨í˜FøÆTÂÇÀo´¤b&?Ý¿*c%p”¢cMV³0º¾Ç¨kJØ+éçôÕ¨ÄÅ«‰—fñœ Ý,8ŽÅfvÓ\­ JCŽÔŸg¶v ß-d×ÓÀ¼ Êz'/Ã4 ¨.=Güï½H¨ÎVC2³ÏJœŸ²Ÿíé ù‡ ~UD4W©õ³ë+¡ßݪí¤ÿ®¡hP??Gþñ»|…÷¸/ ê E\1XmNÍu[¾¥o|-§óz†úß|ÑNcjž¾‚^ðóÆ¿r‡??'‡êËå*ü‡AFn÷ìŠø_tµŒš^4Ç1Qƒä´^ht0þãѢৼ‹§œLþ1"âå˜ tYÔ%:~K¦°– ëWƒ{i ùGOP¨ÇÁlÛKyK6‘i"ÜáUòmTÄÛŽg€w`]xÞwaaÛbž2QdQKÎC&}¯‘ÚÎM+HŽQš'Åœ*»JU×`â³£,~Ë>Ý8æÃz|hj=¯‰T?­@}ª¬U=e° ¹X{zö¢¿êU\Kgà+Xëqp½oÈ;f±_wÖœOþQUO)_„›¼Tr¢¿z«½ÿàƒ§¬Ã‡g* Ån1D¼ ‚mÊÖŠ³`#a)ñ_å pû·ŸT.j.ÒF÷&€»ëø¸±œ}»²w¬ö}lí ™™XykúaÛÖ³ë©ä5 `š†‹ÌgýoìÝPðÍjðÃ9[6¾>™ñáfZ[Í4ð ¹ÁÅ·¸¼E×Ð‡Šµ)ä?ùqç0W:…ˆŽç^Ø ;9LÎOwG½ôœ~–z³Ý¬èøŽÌd5#ŒÔd OÈ}Và“ÓsnN„™_›BôáÊ=‰+ÈûÖA¿{ŽŒá˜9nT™ËÅñ†zç¬UÖF¾Ÿ¼u4ïµÿawµL¦ÿUl9…\ùª pî aGaZ1*'ó?Fcá/0ñÏTh%þã(×¥5>ä4ý(—â?†«ä+ç lNýù@rµ¾XÛÚd|Yä]ôWçÐï~¡Úc u ã,olüu¦4õF]ìk¥³\Á™º€®¥ÆCeídzwçz%Ô@--áK<~!ó(ÕÈ+‰Òj’d¢£üJæ>†ÿ˜„?R­æe˜šT>¹ÈD_q½½õn2Ûõƒ¦ê#’rϹòT<6Þ£¦ªÉŒ¨^ô+©GÕ`¸V¬ùÿ1žÅþ#YÈøBÖX–pO ÓPc)/ÁšI&ßM®4“Q-8Œ¿]cÆBWœÅJæØåð°¢Äg´„©o”ýæ+´Š—¥•S9â‚r«óˆÿ½Éñ!õŸ™þ³îíé5õi´GZ ÑQ<¢×ˆ=¿¶‚6GÛ«íÓN« 1ÿ8§¼ÕºÀv¾—þDónBCUF}(|éŸC&~q~Tü‡J¯öì Eƒ˜ÒÝC®R“kä(z*ºÉl`<ÕEÅ0ÏløG,Õ"ªÝ½Ô¾Ö°o>ð «A:îŠíä 7ð)ïdmýN=1?ü%B}÷&ýKªaÍŸc×7’wD1N‚Ǹ³O?¼Ê;z…€úD„ÒA&Œp‡þÌÿØ+“b›}Aö¢îCç“id ÓÅ;(¥VÓMk"Þª¸î©EÔ-s­–=ÕåiÙ«{’ÉLÇ —aO¹a \`-vcÏÃ¥¼âçũ𼠒þTþüêüùMüÃ8ì|.¼vkx…ÄO>på“È¿€»Ù ëø—娩îzVùD ¯²ö¹’ެ?@O`\À]ÄŸÛ\|²ÂÔÆUjú† …º‚öØÁœÏöxªè¨UT0ŒsáäÊy-—|Kÿ’I¨Y52·ž(x‡aÿç ¿ Ðé5(ó‡ÀŽÖ‚ÒÄá_£OâwZ€æu×ÿÖÿê”6OŽä]Kà?FÉÄâ¬Í‡_H€^j2’aísŸo0ªw©—‹ÿXæMoù7þ¼€p÷­C£¶ ­æ\c$êîéðç·àçݨZw1•(Üà!{NƒOzÿXOdZ%À…0øUN:(,„»³ëêú³âNý §}æ£$›¡mMØ 6«ÀÚ÷9‹‰ðmø*Ø7îý¢Â®ùç"'ã?‰v:ñ޳Àu›+0áä–4+ø•¨ýAc•ŽPEWåjŸ'£qCá;‹úó\CqUqއ‚8µ1‹&÷Éܨ~Ga““1ï· §ÍœÔ{O·ìê”ôOLVÙŽ\&.ú«òà êók3ëw3€B.ÑËšÕÑ[¯ƒ…k…~+ ý¯¶šé·>‡>SŸ­—x“WÖ*ó¹YÎ'¾\Eí‹M/øÃDÈ/Ê{‘œ|²Ä%#¡¬¡÷43Òqý,]wãYé£f?S¸žâ{«°rQ:Ãd@#*Š£7jÈü¨}̯ÕÀ¢l=ß~5fSGfÏOÅgöcËcÕul!Lá¨jµ1š;J1i·¹Ý]42>ø6úp´gmþ+õ¹@¯8ï„wJ†Ÿ>ý!÷Jø¯^*™_û ýn7ú5eÍóJWzï¦'Ö49îáÿÙO¾ë§$sd*r† YI_ÏüÁõj+øó@ð+þ<£s×?Y"Ô·j•¨d_‡Rw3V!–l(;¨´`Ôgè÷Q‚x½‚È©%ýó‰ñÄÐWÀ\ꑳ7&Þª­ßç°¦ç±S*–ìø“àCí!ü/¤x'šûsx$¢xî±j<¡«P(õâ)Ša‚ ¢&°¢ü™26då@å>ù‡BýÇgVÚŽ}ˆJv"yÂFžìòʼnÑϼ•ãy¯ú-NǼC«Š~·5–ð2?üGBž»þ<=›Tc%(“7w½ðçGÅvUÄû)~…žŠ ½Fä;´.)¿ß‹ÜfVñÖzQT^Êh߃÷ÛÊY褗—ïµ°ÕyöñÞTÒƒé´M>D`Àëá?²°|B̯A\aIûá›z’Äѯ‘LD±r¾¾¿:§\ÐrȨxØ9Ô1Kà •^î” Nˆ@7ê½üÎPÿàÖ–”s¸<ª Îõ’ªÑD^Žà÷j]s¦~VÌ¡/|^êÅ€_-‡7:j­ÁÊ¿€ÿX†zê¹MêÙK“kYæ&ⓎLÍîë<“•7"3ÙGð°÷tŠO«¢‘§®/=k¸QKRŠÜf#šiTcö²JÃN%1íêÝ«` _e3*YCæ×6R-•;xqQ ýKR9ÒÒ¿dŒùŽ\«œU“iô'šã&óÚë51¨Ç¬‹GzÎùý.Óy`¹òȃÎ#þ÷^¤Sg¨SœgæýKBúüÚ.Þ‚_EÅ´#ðXsýÛw€^ig©*ÙôKËG]3G惋~)[Sñ“”¯“]~ ÿUG”Ò²9w™…ëhÕáÏ—Ã¥¬Çz%—Í™ð–88ÿÄ27#šh!ÊEjŨj>µ°‹ÿðÇO4Ã^u$¢o +w q;u™ª’ÔŸw "±µ{ÚÑoa€!#FÍL|^‘hd.Oã@lá,Ù7ê?¨£Œî­xÓ­468Î7xä Ä&+è5­gJSð«º`/Ar ¼Miý¨–$‚cÞ ÆOÚùÇ>áþfR#V»\JB,龯Y¯W…lT™ø§œ/*[TS/Fü¾\ŸLüì‚EïÆ9ܤ׷š¥O [Ò¯s.vƒ^pf—áU`ÚdxÊÄcJR‘@K_£ ìî4O‘]ç›h§©ÉX(^ÂN$—˜„÷† ¯þ^Î ·~p“rZK.cÒ¥u*ù‚Ê5ÁÞúãí*‚î…AJ‹õ¿ÎŠg¸"ɈÁ—°»Ñ| ×ç2[àa˜+}P›E”Ù Åîi¢b»~°31BÐùçÄÛnôo?fF%®¯ þ~˜*•O0/¶g8FDžþ|x˜ë’_ü=÷œÆP¤ä½3`È¥9‘þí‹Ñ ½"§±ýGnüÓ ò…°ëþDøCŒn¨æžªgB­˜Y ãZ¾Ô3â'£^…~wUn›©nlJ\ŸŽiEñ'ŒßY=µ¼ÜÿV,þî©:aæG½†ÿ°Y£×zbáº?ó£¶2õ(Þá!þ¨ zåÄŽ¾Tz ²q–rµ_¢èºa`¿'àÏ2ÿ£Yä ÖûŒœôoïNדþLgšHO”Øio”­™Ð_UG¿æËÜØ¬¼SgÐ°Ìø‘XÓdú癬¾Ñ⢠£ã=ý‘ ש®¤Þ£=½®*2Wý½µƒšñ·äËÍ  lá§©,ÿÄx×öõgæœ93ƒ»»»‡RÜŠ»»K)V¼8ÅÝÝÝ-@pw·à ÁíûMúç ô{î½ðÜKRÈyÏœ™Ù²ÖÚ{ƒ¹þã9üyveßÕ. ›g­$QÉõV&dÕ(N ú•¬Ak»pøótè±n ‹l7å¿Åäöô* 8mAt€ƒ±Ÿ<ø•s¹ÞüÝ<ùsÐ_m²Ò ~›ÿñ.‘Õá?R9QôF!ÿ¨­Š;‰À%7y‹½8"јõÁ›üOôWq©þïy²j©ÿµþêìhLã2þ£—p¦Ë¬ ¨??n¼4N1“nç~~ÏçP÷—ˆM¦×ÁÔP\%4þ¢O¥F/þt2½Èf$öìú{Ö£^{µBþÌ[¼ÜÌ&[Ê:Ôl—ƒLiFàYhköå¿kÅ0zY=•è nãKô\€¨¡ öªÊÕƒÜýC¬Ÿ ¬=Œ¹\ ¿ck·Œç¢*‘vxìàžˆÔ’Õf¥… 9­Á ¨daa¨„i* †ºC_mýKb€ ½ÁÞ¹¨ûxãÙÄò xk“d–}”#A´Êà?BSk/6€r¸“,NÂfa¥<¼OÍBô”€iÖÿ ^3—:ƒÿˆn6Þ7û·Ñ–êe:Ð ·þÇ|% yH3,q^öÕ®´6jóx äÈ@fàg 3ÿãkùÇÍweLT–·ðo‡±õð X7ñ¯%g‹›x®œŸÛãw64 ¬å9íä—·e‡vƒbµ`Hññq­ñ8£Ð%×Rõ`è÷àÓs‚_ÍfößC*ApŸçò÷íACWÐ/Ô7Ä’«Œ‘²k'¾žE${…Lp9ìÊüG$”ýËloËVžÿ±Žâ™›Onƒ‚èùfß hûß ‡¥×pfV¨‹ŸÅ*ýŸÿˆdA¿;ÃÂüMôO<_á Ê”¿gÁ‡[¨ÒÞ [´DN÷)¨YAðº†jŠÛåð燩?¯NÅtfæ”u†‚…•$·¹Læ¦â=WDíâÊ+„˜_ëKDåfã:õ=ð®WÕy:Ķ¥âsõ ž¢°}ݺIUÅøs˾ˆÏjKÞãKÿ®; nKÔÈĵ׊èÌÈä1'éL0EÕ“;eE¼N?êÏ[YÕÁ±Ù—™¬tžŒ¤ƒUÔÚ Æó3+wÆg´Náïûâƒ{.·.ó?¬ÈsÞËJÖ%sƒè ~Õ†~‰£˜užÆêC±Õ>~W]D—Ón ó“Žl1¼µ…ûÝI“õ—·µ{"-V»*ÏÜåòª¥-ÖºM™¼`Vуµd~ÔzòV úº×„*le§KÍE²H?Ù‚ˆP÷<…‡ôâ£Üln!?ZC—»y a qô‹ÁÄÚ]T²§q¼Á¯ò:Eí­j “–l©1üÇKrõ;ò ‘Ó 8¶A28Ï¥ÿÇ¿HB÷ÄÀYÏ´l_dâß»…·Ú,òæöGR…§uŸVîã¨!¨Ï•?ÈlÔl1 ¶"ùGWúT? ÐI›t?K/“ŠFè\@з0ê€Þ/…°wK˜©=RÒKdpm†(J{ÂþtЯ#PÿQ@ Ãþ2A~áG÷`ýüÄ~büX¿ŸÈÞ1ÿcˆøÍòu# åÉàJ[áß?¤“Ô1lèÖ‰Nü\¼é-YRºÂø”¶_î¦K`JÓFÕs¿èÅuÁ­„e¨ªGüèZÑdÒçCõkŒX…ÚØÒ£p;y‰Šâ'4ÞÑ’ â¯ÈºâYÃëžÃÂF3ü z\A¾¾Iÿ݇¨Už²›aøœLø.dpS@Ü#ÁZüÉ–a'·óç)Î`ªYDFÚœÀå.0¿ö©4ˆŒ¯ƒ$¸•’nýyBª:ãªLZ ÞÁ6 B‰Ô‹7¬:U9Vó•çÍ \müGr)ñŠ“ˆ ¼a#ÔSmÈzc]/ƒ#þŽ/¹Äß^ÃkFR39‰3äLÃÁrvâ?Bîp‘1Bvã„‹¨3ÄìY©g¯`®ÂGlFß‹Î;l+-þ£0}-6£EJ¾r&û,5µèßÞ'ijOHüã*z„mă¬TƒÉgÓ‰1œµ˜ùç«©q°§:|H%4³ùĬp§”¨ã=…±+ØŠqENâÑDFø¦xÈ‹L?—‡zºñv:hdw¦…WÄŽ}ÀņûyMö³¼>¶¢c°õžÃ§¸ú«GfoüÇZó©:NþÑ”¼Sì0Ç©±[f= ¯I|ûD€æ«)ç©[ÏUq<è‰ êÓËø&<ùÃÉê ÍÊ&ÉŽt}ŸË,ð:èw'SOò’)†¨ÓëK”þ€>ì¹É”já{ódsUF3°T}ý©‘’<ë19}M m†è†'ïK¿’2èw³ÀWÄuöÁ†hŽIíùmû®•ÌîŽò,9~Ú„Wùdv–äÏõÎמˆøXŒÚDAoÔ °å’ÌæíC½Gw®SÁ{d¥B%&Uè˜ÒQ¼æ'ë…•Ì*¥”ÚMôuG6‘~âÉ?èQ°AðúX¦eæïrµnæ>þIÿ’© VáGÎlrÂVö.êS1«ª!z;›8é*øUMú'vAå|-ðqþ¯}…üã/ÏÉ<¥~Ðÿ_~ö+¬ƒ2îµDGæ×þÌšGµ<àW;Dô—‹£- üèZR±Hæ¦bí‰a†“µEãuÀœà"h±“ˆÖFèµt«iZw£ èýYÌœDöXBÎ&–/h¬”˜‡Á4ê€Vô¿zÎ!èO†ü:ž^Y//&-<#žÉ‹¥†ÿhe^^ ÷g@:Ra¯ÞÊy²×wåï7¢XHT0÷}0 @;jc“w÷·‹¹rô½< ~ÕIº]aþù×Í®]á3Llá}žñØ{Tfع Xý7DÄ[ÙÝvüܯæ­Pç.3J³—f è'A–RaÙ+Á­<¤|üÇu®þ ×| =Ë;0À´f2zÌËœÑfè‘A´¯]õ%OHG¾R‡Ü¦ {zÉûø›jAnrwh5^þ.þy!([™V|MÙ~Y‹)ü%݉9¡’ì«‘]EâC GÍ2r€xÚÔ‡Óì‰o‚§ÎY}#è$öån@¿›Tj ¨sH ®ááurãMʢ犪:ƒõø’#œÃÇÅRkÈ=–â—Ç¢(8LýùÅKî4æ7׃ÿ¸“ÿQ럗Ù€M)B›“ÿQÊúåP®!+¾åwò‡{ªõƒCBÜiã£L SÔ€h56|(ç7 „*2µwcˆE'á?NÒ÷ŒÊs8ƒdd 6ýK¼ð õðïQ¿Ýb4ÑŠ˜å9Õû©ÈÒ˜*~uì.|DYê±K8á¨?ïŽç¨J‡?® .ØÛ'µý„g¼¶hl½sbQ…1O}ôÊ+Á¯ö£RnC-ã[Î9HòkÌ!\Fo®©ÌDº ×S—O½Hþá †·L½”vg¼ö‹^—øg4™ec´õå>Ùa Õ¨üzE°/Æû \¾ ~Õß:Göº ,lÌü 8ŸižËHýyj<à}îi=k7N¡ÚëL})¦xu·æ0oü2#8‚ ÇëTF…_pëÏ7£–Û.Б®­K=×ëèçE\øJ¼WÌ S‡þêû2}äsÐ#w(Öf’l²ßÒC²:8V1ê?RZ¥áŽòÖù˦t”xåñwÑ•Fæ‰?‚mZˆÿØÊj ÀúZÑ?,¦Ýˆœ&•s¬®¨ÓùƒÙ v_»õøa•7Ñõ9ú.´¬"CÎ0óÀð öú'FCú‚õzÂÒ7"ZX;½—O¸Ë>ºˆ²ÁžE[nÆ\宵F]<Õ|¯ÎŸWfq¬t#/ ¯¬;£-T+¡}JýÉ}sóL,ù•Ö» Óóšhô^ ·C8éø‚DOåà’gÚQ˜¤Ñ”:ûqäéw;ƒþU5èRÑ®Ag”.xË,èwsÃ`•7{zž™"ú+#ŒÝ-ð‚ÊÖ6óµM¶Õ¯‘ V¦ºâ˜Îªã86þäH[JtYg©á_A†·ßÞSæ‚(ÎÕüEtÔâ¥xBÞ)›g †ÕÒéOI”Ę@•Ä.!3q_PXÁÞi'¦çW8+u@§yFýe[žÁ—ÿÑZ!}är¢¦¿xšZËJ0;»ðŒyÈ­²Øùǹé,¿joobþy:ûøC–ÉSuD^åêD7±Šr­çŠÿ{_$ÒÓ÷óç=×2ÿëúçš7™.¿RþB¯Ášë©?_Mþñ褋î^¬– àjßÈæQX$2ÀøË‚2…L!Òñ=»þ¼ûú³§Ñˆüc¦ü…÷žª`¦s¤£~ðœì˸Cý^3³cˆ7â[«Å ÿnU¸òu(`:€æ\1©)a?+¶ó$ÑH‰íùÀ'Ìú®úó«Æ{òñ`"Û‰7‚x$WÅ@–‚t2#À¹äi‹„ªkЬê5×^ÐÒ_¦ b.¬N‘lAo;EìL0¦RDÒ©Ô·z¾<øU‚PVŸüã“kŸÀ.´°6ÆfŸ[`€ÏbS‹RCÖ)Ä}¹cÄÇòLÏYA†„Öˆ3_ÎZn}ôvêÖ3ß°ŸÃÖ»‘ó8lŸ;ÿãÝ¥æ«Ò\»?}&‚n1¼hÆv—ü#=hWµ‹êÿØÌü†àø¹{vqf¨VM*´/â#s޵•+¸L´ÓYT ¶^9 –ÇDÍ@œfš·Õ9êè Eýy|g }ioÐwßO°bÙ9ÇrªÞí%ù\y漓g<ÛëH˜5žã0ÙÌB*ãvÈè¯VQW–~WbS—çCmÄøô»ô±ÊsSߟ˜Ÿ<®²9³^]ý€‘ŽÌòö¹šµ7u0ž|³î¨¨·Ómø:øU ' óo`õß2ës5˜;Õqæd Þøó‚ϵ§"9oeâ*ˆ6”yŬdN7ðévê\&ÀX¬£d…ýŽ, yIz~¥µ¢8ÙEÖrežM…ëçõvb×^Ëù<íýy¿ʽVn'ºó ÝOLém…ïMç\q¶Û•ÐïVý@ÙÜúÁ‹ÖCÞ½ãðçUQV6ƒÿøšÊäógü§þLH÷’Áž“y¡åÿf÷íÐvðžþí±`;ÊŠæÂ0ÜX~‡–ÝX ‚õĸ©ÇÐìêÖàW ÁasÚ>"¥ÐCº¿ø ³Èò­‘çó¡†O•™ÀÁ›šqä(™Mgl‘]ÍuØÛ,< ¾“?¥wÖ«‰Y®OÃNs™ŠüÇR¬b7žtEÿ1?´Cãïo¦¬º›8z/wx»JDÐëÁ¯Ú÷^‚gvõW¯ä4c¡-xüê8Þ&…ŽˆöVy5ã‰5§ã? W—ƒ•|Þj,÷ËPçŸ{eA9ê“ ÁJ‡,ŸxcV‚iN¡^¸O0ÿýú« øÒø(£#ꩾ±Ë­Ú=žæ,9@_N*/~¬!V¿ ù‡ìÉÕ t€oáTO‘ñŒ'Ư*Ó}¿º¤ áà? ¨Cø“ØÈ¢x£tpÂÑÉëãsúŸ`|{€ï÷CS=„<)jÇ×r,»üòhÇÐ_EÅ+.ƒ1Hˆ­éÍUÄg ÆCù’ÓÔ!3ôÁî¥I®\¥ÌfòºáÀ,9N|g¥].à!Ó6^ª¥0{Ñ!4õ9‰"øº*aÍU†y̳½ ôß­OŽ×ƒ|¦)ŒS>òúô÷&ÔˆšÄ¡äG/¬Ìö-t¬ƒÀÈ.RïŒJ•&pCIð%àæk™>Z߃þ*+Ùòt³º5ŠI SQüõ·_Q‡·>~šÎ9MöщM¿‘»ötO£Øi P6eyïTå(Ïù]ÐÞ ¿ÊFýçj­’Ò¬ ÿ1ž©Q¿£3»DlžÞ‰ið!¨©Ï>Ó[†ÄJ¬trj•äŸh×õW»ðäjë1¨\ÚÊýÌ?WNs&S´ÒÛ awâ:·ÉHÚ£¿:KýGfjÒkY‡­¬vVaõɳkÉžüï}‘õn`gâZîovO mOïµ=zæM˜?Ø‚ÓöÒ~2&€`Ý3ëÑõ«ŽÜª¥s™‡l¯=µy‰‰ñVS÷ù˜Nï…ÃüÐk±ƒî¸‡QMë™ËÚ‘v¢œÆØJ&9—ê¤".†(\Î?ô_qÑ—‡-ÜÀÛ×¼ËÞ[‰+ëx#ïaSð’'0ôÅêЗÓî~¢ö<¬ÚÚO)òê°ó‹Ñw5v@³h*ë;&H Ó·Þ­]“Þ 4IQSQÇȶ“g2×/—"Š$êW›™„ñ;û.gj"´Ž(^F.®©‘ÖU2‚ÌDž5±ÓoÍاxê#oäJ<ÈfV=Çge0S‚ ¾ýÆæž_½‘é±2c±Î.î©5—äRo@ŸÚ£B|¿o'ŸçÎ Y`Ö”ÑÄý¯¬èK…P2ükQìB<ØŸà“µð›Éäö!ôî´Õœf_T^CñëáðêäT¼ñ—Ë-¥bù ÍóL«¨êŒÙ‡Ä?õæJïUvÅÖ^ëY ^›?¯/àn ^a®÷õÀèùïµ÷Òÿª'ÏÁÏdk¨ÿ¸LÔ²$€ã0™¾VÔMåÀ¯R¯åðÔb—È@R¯8­èïõžà±ÜJË}dÐ_Ý6×ÂîÆ²f¨ùàW‹ÐꜷÃQÑÞ„¾Z‹ñ€åÑG;žl¶­ùTäÝmÑ‘§Õ‡¨%þ²&1Åm*ÆöG¶ÊÁüfr^Ù…àÏŸ©07±õñJ •ìnžŸÞf-Q.ØÛ¢äRü6sƒáÏÛâ]#[7ÀþÛY×ðqQÁ^R¡¸}€úö=ÕòìCøÑVü»³TÐ_CC0Q=•\?PôFðw=¹ mØ]Uy]öŸ› ~UÐê ²À~Æt}„Uüªýw¡çš—²Ón¦jé¿Û‘úóȨIÜžÊݬ)Ô(-@¥2Th¸½+½ÄNéì¶Ø¨¬˜JìŸÕÛò¡Ì8Îp3\a™7HEg8ÝWÄäi¯Â¹*ëúÝJø~àTcÉ<î .ÈWÀ¯$õí%ìávFjîSZT䀳AE>Tå‘'ÿدû\®{Åï¶rUÐICþQ‚>ÀI˜?X’i—mvv&×ÞV}¶T·wb"Õ#Þáãò&OÖ(j6+Ê?*ÿÕÿª÷ Rÿñ@ûé›ÓGCÛVý¸ÙØfTF¿+Œv<]û™ÿ1ÏXa<3®êõU¡-ìï·01g©ŒNϪ×ÄqwE8”©úc79dtùÁH*rl9­½Q‹xw˜,Κbf ÿÈD·•-ø¦Et:LNtÙ,DGŸà?ø]<½™Þ^ÌÀ¹=’òƒÒ·GýXɼ$v—ísŠŽ‡ºÆ„ª™byà}ó+C“MˆŽ¡Zq+ñò`KK…oÁ~vƒ N¨2añÞƒI“J¹o-wNó•—ù×é±£EðY).¶o1`bÈ®­"ëJ¯F†oÁ+åKÄ]=d…üc ì)AEÆ.úÒ_e½Õ°ñëá,ÒÃDUÀú¤j1p ¯ðdÛ@ðo€˜äƒ?ŸÌ:kD¼Ó,п½à\{è!r«¡¨eŸ¢&ÑÏw)ùÇ%úï^ÅÞû²Ë´t ‹mvcùáøŸ…è¿ûÑhÍ{p”( QvmµÓ¼¤ÖQÿáMýGc"ç Îyð«1àW Àrüà?¢cŸóéÞ+rÎk·aÞ*s67Ÿ«Ä?É­êNoª»ÒÕñ¹µ/2 &d&ýP†[?ÙWì¬ÔÜDZ²€EïǼ”½ˆ ÏSxŠüÆSÚÆÓÖ*óÙù'du­Käjc©’èœw6r?Ù‡ÕTv¹Fþ¸u”(s›<Ù+®ó?™_ïáÚú¿…Ñsýëüã“¶†úóÅä-ÅkÝNÀL2–ŸÀ¯ê?ÖÝëÝ)VȈfD0ëv¦Ohl䜙Ì*#3;¶Õ³ëÏ»ÿ§?7:º8‰îÌŸ,dÙôtcjmŽ@ikcûZ}çüHz[½"Ì*xÆÔPx¡ß§%GÚ‰M¾Àú¾T)ÞmZ(VþÓ–þïï|Ð_UiOFîv9,¬žâ?¶cŽP9h)2å'R™è<0Ôk>¨Ýû(#“#äÙ©†Í‰Cþàò%QÝÅÚ oÝf¡–ùØP¡¬¸ÑÈÍ55£’Á Ä);]Ez;°Ÿµ°óg0 ¯ùÇɯœã' å3ZÝŸA«ò™w$ƒ)Ã-,žN#ÿ˜B™[õá=I“®–6äkùÇTü‡#o“£­} OêÿÑ܃+ì¹:ÙÃ%öËxÍ´üùNe4'é¶²~ð´1l´¾Y¾` ¶ë0x±™5ob+7lÅvf›¶î«:ø¥°.±È“æ€cáw>øÚ‘‚¿ñ‚>p‹èç±ìg“W§2ÛJb V³±û3™uzÛö§º¯=sÒ)#=j©Sð½É?zšôíÁîô+£1XätsÉÐ9ÕUKLåEÛõ(ŽºÓ 0›óÖ.éL‡ë¯É ½·`¡ñQ³™Öv´ÃÑvŒ ÁÜ›ðå>xï†xÜñx£SäD­xˆ(Î1:{x[ljîñmdÞTuÔ%ë9Šº×Õ_ÍPaÌÀì¯Ö‹‘VèL0Lý$Â<·Æ£‰-DN3ÿñ‰úcö2&Š0ãÙÀ¯Zƒ¦'C*Œ'©jÎö<3Cô£FrP­{äMM­+æ!ц·lõ¿ƒUu¥1…sŸž¹ÊIo~’I‰Ž=íZüpDð°›ðùƒðŸÐï&äÞ–"¾ø¤²ýŒìc÷Ë.¹Äi² ¾ÆAÜ™û’Ž™½)-wõ6Ð& ÿ•J©Ï<¨ßW™Ës?…]W¹ÂÊä$vºþ]ä®fÍÔŽ/ ã"ôØ:  ;™èõX„yðoyOöËÃD&-Q@ÔG?/ø_üÓ€=¬*£gø×üÇKm¬þXŸÚê±N¯ÄÓºNËg´5z§càW?6k-Ýñæ13 ]š©5"†ˆmÌ$ÿ¸#߉'â®ñFþGŽ)ùGBÞË,äÍè¯JêOô¹Dþ¹¨«x.™…¿³þÜáŒò¡Vœ@~P>é‹ð;ˆžˆ5°©'Xÿ.xØIÙ ö=ý¯îÇDb˜Xø•DÞ:YnR"ï%Ds%ùîû>C÷«»ô|ìê5oÓ.¢v|~íÐ*b$o:V7ç³b3ôM×y#—QÛ–œ¡¢i+”ÿ2rà'[áßN’1dÄæ$Ž@¾\ü꨹. .d¬üa°£Xœl’/j!>ß'o­N73u™œ¥;hXz˜¢úØàUœà 7;Ñx æeî —?†‡ëÁ¿@ÿ’¯å×µ·Æù[¾“sZÇ]-J„=CV¬l9MÄ$ÿ˜J$ÞO9;Ù| ŸÈލ—?ï(ðϡԟ'’`g¦RÅŸÆ‘ýýF5g ¼Ú=¼Ù_(«ïc=¯«GT¥Ïd×S9ÅÞä›sé÷¶+p©€¯6‹eÐÍTØúyÔv\ÆÚÌ#oÙ‡…Ël]°¼¨2ÈCì]‚¹K‰ÿßR/7þcl¶CýG“÷Eˆ'2Þª1ñbÐPU‰è¡Õ‰°+˜uênb‚X•„SG¤››ücÞhú½áftck°_WöÁ%Áü†-ŸgW¨ižN5_+2™<Žé”f~Ô{ÖŠþª½Ç‡ÐKw3Ô^âä=¢C°õNŠäÊ>äÙß2ó!ª°(·Ž’OÅB{Z™¹'±¦oÐõÆ…i€*¡ ØÞ)ôW­Yª¨Ø¿d#üGE²È‘<­¸ÖŠ($»YgéïÝ®JW¨•tye¥a~à»›åöoï`G£^£:g—Κ۔QÅ ÒÿÊ[?g$â‰õ#ºom=gïuQžEgêGwòÂÖ(ø…ÓôP´™ ;nZÐv5w=)JdÍZ_gËr™çz¯iÇÅ[YÌ¢ƒϪH?çøt]l„^w*ù‡½ùKÙ½í¸ö¾o5¡¯Ië1w;.YöQÞ¡ç27ü~ÏSø^÷\L¬4“÷«=X]"''³ç;ã?b“eU³:þN§‰3Ó>­ê:5Лý„Öú9OýU9…÷8 –Ò+Ä3øßø6©ÞUä9™pzá]Vß­Kc¿‘ŸþW/|’·VØèkL5ž¾z\}Ï]Î)í'±›úóXæeÙýnZÇØƒÿ¸…;š„95"{vý= 3Ú‡÷ë-ɺTOOlì€ÿèN-z3·Ùç;ë?¢é­õŒ¢›¹¦–þxXÕØi”|dðËá ÚЩµ¨Ig_9]|¢î©ñVéx‹¢f7–35Ñsб•hYÊ…ùRoqúÁ;àWÏð·®ù vOó† ôGØ»óäÇÑò$ O-ï/¼á5Õv,hO>­ª©‹°¡œâdÃí(Õš+=‚•Xk…K!,†ç<†ÍØCûož·"ó\?ïu¯6^?'ÂÓLÄ_žÀ„Áªöä$[ðßcy~Uïa•–ñ_¼ð{gxŸSuï|ƒÿ¸dðöì`…Á¯š`­«àyßÃãÂ̓_äÐ_v üy2¼mÏQó=ò¼¹Ÿw¦i»˜PÞ4“aý†ªêû)J’4¦–ŠÊµVÆ—œ'ú¿KX¯ñ •ÍÉ£›ÃÅE=ýý{ÍÇÆFù[€ÿXH\AvTÆäguŒéµù°÷[¨§+‚u®Š¾i6y‡"kJ´¶údˆ ü½Þ9ãÕPÓÁ×&àßÖ¨Ax´yøøÈÙØ’¥Và°Ö΀üc(‘nAºƒ¬…íï¨"`çtã\°;I¸û¹ ÿ†¡8ÏÄ}ªRvZcQýŽeFQæ¥qvЪóŸñäD"/óa½}j5ÏÓœá„~(zÆŠ`ã—˜¬µT¿µD¯eÑÍi!Ò/£O&ÿ˜b%µ×‘+”ànÄ»ìR…ðFÿqF+HÿÝ8œÛüå`&üYfYL#á?¡i;}׊LÿÄ­vôScà«SÁÜ´§r'z‚´0éÅÍ?=77¥þˆþ»ÅðÑsàÏ÷Pþoú§W{flD¡Ú~,ˆ?9Îlª|Ê&:§ e^Dp%eZ9Ìs~5S&áy«Âûþ€j7Ò­qiD>T¯ žÆd,ÝLâÐo¾$Uó°<0U(â`æòò^"ÿxëÉ?Rêš|$g‘ÕÍšL’G­p1õ8½…VrØ÷Jvyç5!h²èß^ΙŴ«Öeë*öâ¨ÜAtÔŽ.5äÏÿ÷¾ˆ£ÿžÿùóÞÒùòãço~ðOƒI†ïôÕF%QDœÁiu¤Æc‘ñÖ¸€ÿØ÷Cë£þcVPÉW@•^„5öé:s0’IS>2¢…Úù/øÇ4êR­6RÆÃR'5SȾ².õ;À¯:ÈN<Ÿ…`+xÎ!øÏÿ.¾1·èÅ»|…¸ü¢Ð.(§:ÁÊm ZöÆNèXØ}tË+fÿѯ~wËð!ÿh‚¦i>c+, œm|u…µÂýd #¼ÃÔ¼Ñß¡ßÝ£—Ì÷&gyÊû|Ë¿ß8¬b$ïb9õ„f?8S?¢ûŠàW¡© §€_ùÛ· ðm±ØcEûÀMcÿá±oÛ+9ŒI\_np™¶‹þ%Éf¦â/löØÍ@o3?Ý 2w4*êìÔrlFË2 ï1ß7Œk°x©±ä&úïv!ûKË¿~u€ëœÊçÍ|؈ðkà2îä·2‚ •áãÁO ðdG٠ijø–^Ÿ¥8•šd3]¨ÞþƒHe¡ŠþjyÃv´²s'N°Ã_¬ðÖTXŸüÓÏÂSg2k›wõÁV #ê““^%WK‡¬¨–›7ÕVüÐ¥žØçŸœ×tíëO={f«?ÇDàSÂXxc§™#Eð é“!3»Â¸µšv®*¿¢¿z©>¡³ÍEeÅc¢új!ó7óôÔG×v¾†~_èw“˜èË_äÝaãÿ‚…*ªW‘ M#á?–ÚñìêV:J GUv¬ô »,ÁBºDÖn*3TLt9ÌÀÞ¥Mu_##j8°ú–­ÖŠ~è-ÚRÕ†nU½¨gÏ ÿqÃNàøs޾ä6‰é«x Lñ/|ðnð«â²„ ì¸\û ¢ò¼å CÕ­Iðáï”áŒ#ƒiƒ'ËÇôÁKÌÔ©Âô§ÿn-ò¤–N†Y}qʆïX üÆã?3ÿ#,ïÐ<Þ„Uð㬗ôŽi ~5ÌÊF¯’zvç-zê&Î{§ªI–4¼nœu,}¸ôæ©ïAæÚñŸ‡ƒ?oïy² ¿ú·ó£"êûta¬2*ˆòÂ' âiú—´EuƸLÿö!Þ°þö0ìèdx t1µ¹JÄ£'ãIpÂãøû‘°ÿîÐÿ1…ÞnfXø”v²¼žÝ˜KåÞLæú¥DYÔð;ç&¦ÿÕ/¢±Â&¬j)ì|+µNùŒ˜‚]Ü'ñçM?C†3CLûç‹ øÛ{ÌÌWk(·KÕz¬~düÇfìûeöjaOópŸäm&ªï™ýµÅk‡©’SÄö¾ôh8ŽMß͇†ME¹[ D 7Ñ¡ ¢áêw¯ßšõôyíµÆ/ðæí±îÛù–¯ ä-}i‹ 9õåMØO†³–Ï:O ªebýõçñç&:¼—YÑ ŒI¸É™û6ÄKTTWùé~ âoÐem²­`Ý%Xý fY™L|­3Ãsí,+5¶ÙíŸØ™úˆ kwa^â?ú‰¨mûQW1´l0H|ð39 ÅvˆñízíþÃ1ÀBúU§›Š¹šYê%þc†þö.þ£ 5…sÈ*Ê`¹·€µQÑÉüõÃÁVŒ(ºðçéP+ÀCž ^Gß)è‹Ó}ƒdþíCQ!uÁ>¿JDŒ{†zÚÄiÀ_~bº7?óú«ÚjŒyþc&\Å0/_ÖËaŸ·Þá?â?bQEÝŠS­ ~uûß꩞ÈÀ ®7ó£à<±‰LÝ À¯ÞÒ?1"“øbÑ =¯Õ—šˆKÔœGÇ[—Α‹™ÙŸ•ÛÓ8*¾( YgŒ úÝè¯"Â/½Á>W±N ´Ÿƒ÷mMÿ«¢xñä5޳kÿ½Ô_Ô<„­̽Éöà4÷o9pñ eVkE$âІDa/©TLeæãÚzRÿ_Ö<Ý_®ŒÅ@åg °ºÂv'åî$µb(©vŸ¿–“ÁB˜Yû¿é&ºŽ¹Ü]·‡ûÙÙJè¤wzÌÍ´ ä”§û çþc4øUô»=ìRT´ß¥ð‚³+CäUNõýŸÌÿˆÍôóIž'á5ž?‚ç»Ï×÷ê^ˆ ÎPÿÑ’üÃ}ºh‰ÆzòÞÒ#ëÛ¿s™¿ÿÙ-3õçñ©ùRĨ'D4’;t‡i ùàÏ?1~0ÿèht…˜ÿÑx>‘¬/óÀöû#®‘ á+òSÿñ}õçáõ z}1ëq\ v°·Zè*®ÄòYwš¤ƒ7¸ƒ è)F}Ç5ß5^‰*`jIÕbbÃÄÓq™Ø°&äþ#†JŒåòżÀ#…ŒJ¿\þ‚vKž šÉ‹ò7üįÄ(?'¯boáÏïbÃÖr¦ãͽ°Í¾¹ó?þZe”!Ãè„×8KVä© ?—޲̵–±ÏE¸ùóü›Ät¦Œ¢¿øÆŠ´™ú3YL B~ñw¤?5ÂüŒ :z¢¶äG‰Ñ¶ã•}ùÿéÄdd6ñà++úi8æG7+`ÝðâEY--l«áŠ%§ˆÖ|мªyD?¸ƒðæEú§3ÏyÞÜÀe×iG¨ãtP³ŽDE \®;Þa6yU7˜„Dð2UÐ(ŸÁ¢lÅvùó•ä^}ðÌ]Í©âœÒí2fH—·ÏA¼>¬Æo´Áü•‰ñ°ù;°y‡‰¤/ª² %K‰ÿ#‘Ó,ù9=Mdvù"RH*,¼ä|³6ÿj33úàÃ׃…E²–3ö¬5ÍÐnû:Þ­=•Î3xjª¡œ=ÃÄöa`9uèµ*ØÎ.Æò´]âùʯÑPm¡’ú<5›TæOFñóŒ¤ 7"Ý· \±`r¢P qŠŒx˜9M ¶Þ ±Ú-²Þnø™Iæ3uÕÚƒÿ8‚E¿ƒÞ6§ýÀŠHO'º÷ÒSöØT3P¦ãè›ÞP3> wÖs31?ª « SW˜»±Œœ`Ö¹zç1 D{™ÒþmR>ãj p­õÙajüH UC… ‚_ÝÔ/ñð€wÌ™fëF@¥¯£ÚÚ:ý¯nÀ¿ÿ ÿ±À>ÿáÏÄqw züÈU<ëlêã·s½-@Í÷\¯¦Ép` %y×…•>¼uŸ*ñÛü¯<±éö N06]Œ£Âï7¢—IIº?&&ÿxETTžüc¨g`ýùiú·‡'žÛÌýg’#PätÆ¢4›I/²&àW•*ä³:Cì Ì,Äê¨h·¹,ñvvâÍ®ô?©ÿûÈ<¡âñ ž›®™úBøÕä¥ÄG½§½S«`ŒcúÇãl÷¦Àú_ÕrÐ?1ZØ(°”áé¸k+É?î ¼‘D”P-_ðé`´£š'óa™šùàÏFuŒñ¢ÜŒ²¥8QdèÕÝîša™ƒØXŒG!tS€ˆk®ÚÀSá/vòÜ'JNìzW–cÅúà›øêw;¢ž(.Ú obù¤D¢e±î>¦ÀJDy/M¿‘÷äb³¿˜júå‚»Ñ_yã?RQõ—«ÕœøWò‡-Øù*Ø”'°ê'9ÓÑ|B 3²­þ|•Q™Ö½yÞ/˜×ð«°úL‹g¥ª 2Ïàûfóß·›n¯­&ø–ìøeÛó¦ßßm»—ZSðâmð¾ÉÁ»\éOªÄ^aã&Aúâ§6§lÆ+=â«ýh’Нuöñ§ò2¼»pŒìÏ ;^œ+ÍÂ]‰JÄXS.QèÚ+0ï1‚\"o›I¶c~¥~pýwcÒ "øP[ò£`“MÙg&êA*ñ¤@œuín2 k:[´šS…YJn|'ø¥jËŒ òžƒüÄØ[ð®x=ÕèÇTi0§MÔ>¶Ò×¶…Õ˜V홥’¥VgØ€ƒ*1=,1¿6è¼Pg·:«Íá_$+œŸžÚŒ)ðÞKщ.b.“õ~¼y6rÍ(pÊQ:å$Kz¡vW"ˆæÜ;ž¶\q}rÒˆtð=}¯Íüî9Ì*úˆkÈÕ°5ðlY)2Š`åöy›.Ú[ï1½Òó–{9NÍ2Ï+‰Çè ÃSÇò#3*ÁìÀˆÎ0~~-óŸŽÀ#µo:„}ë2Ø*¢yÞs‚Ë©b'<›;ÛOÓ=ájX“õ(‘3Óuu¯ñº³–~¼íéUˆ~‚§ñG+8Ý£¨ª«Ræožõæé—éŸèrýÐïn4‹Sf"Õ›®%ÕèUrÉjÇ•n š=žóÎ?’Žli™W!ütêÐÒ3[þ%Û™ÿg­Ï\8+1lb'ë=S:.Ù¨ö³8½ã¨¦ß'ëÌd‘ÆT;¦·RЗs?Ñ«Ÿ\GŒØw™.ñG+ÉÇõ“k¬tNF§ŸU‡¹ÄìyxÇŽÎqêq*;m_5È)i¯¦ß—nâ-Ù —Ò•sCÕ^îò\ñï‹èúL½•çIx¯eÿ×þ#«IýG-Q“~¤yXs·VÀÃ)G¼Ñ_Q ò#¿niåáÏ3€ã  éX‰.ð `† J!ßæâW#ŒI`Žsdð‘îfA° ÄÌÿx$û£‹=EþQ“Ž>¥=çðO;MBýùh± û÷ØÅ'°ð‹A3jÐw'ößmjZð‚`Ø}ÄŒZèÿþî£á/Êcá…Ž±»¼¼û¿ Ó¸ƒýìJýA!âÇ·ÔMG¦z>°‡Â·Þ§™èA$ØP$"ï#\W{4NYÏíý]+_T1m p”œéùwÔŸwBéÓÿ拟HKÞ?œ‰çµ§Ê£Þaƒæ‘Ÿ žw?¾  ™–íJþà»Ü¬гЫd{±4ìƒìFv4”Bª†¦ÛSÏ$›ØƒeÞ§=Äß1ÇHM|Qy£½2â‚›åa½¢üûnøò|ìîvl?*È­â'´—ƒø{·wÉdîK ” aÉ ü¿šøÉPsFßT„êQ]Gpš´|_D$þ£¶s{tð«©`[a<§àQwò|Ÿ ~©Ú!cžìŽ*Æ¿úSœÎfXÛs*¯¥˜ý³€*µÔD÷á6sÝñÈ|öÂd?Áß$ÕÙ7ø$‹q›Pû±–'n8÷c ÝÊÓZwÕD·nVas5nª¦d ÓðFÈtž°Þ2jéš‘löt'Í@4¯ågÁ/”ñ{¯>0eõ:zÝZXÀTNL§Œ3ɺ­ Üg‡Ið¤øþ(qÎdüGpüê¤XI.xôðw³é诞¡2kµ6¡np=Š!ÃŽJ=¢ÝV Û7@ššñûÞ#…UÑš¦Â˜úÌß´úzgøiêªÙ²Ïó +#}ÐãÓ¯½¿u€êŠ(tõˆ ð™×': ºýwkƒ­å·vp’EÜÎsGÚê¯T¼ > ¢õ,·ÿÕNêD»ÀwT¶¯Z7™+’Ñ9Jõ~\Ç;#v8{4ÌM^®8ŠåâW™ÐìN¤ß¦=qˆ{Ê‹¼PˆÆºZi©í»Šêª¦m£Â:ɬxMÇž‰–ë/üG!:̧T/yNóñ6_0ïËKþ£ƒþ>e1ïäTüÇ$|e|—+·úqW—‘Ô±‡:'ÐÃUtªÚÂêÃüó£öÖxë-ú«ëä0ùpIeƒ €žKÿ]¦Z%COL¥ß¿ûP¡¯×#QïŸZ¿Çõ§©?m̤§û]×7ÿв§À¯FÈD`á° ÏDlj¯ê×É?2Ë3L³•ÆO?´ÏàWe̵2#w©—™šî†å™vµL6¢RÃ[æGÁÓ&DGÑom7ªÞBÿU,ÂÒ_ãn—á=ÞÞœúÁ ؽ{X æÿ1 §ì÷è¯.§E"ÄŸˆëöñDüŒÿ(É*Ç@…ZàL´.ÿÑÜ$§…zÍÇèß¾ þ##,rIu vȾ;h‘;û´8Le°îhø°ª)EšPV&ƒ¹¤´øJ|%ÿØJþI2“„úòúø‡üL2£د* uÔ³,õÒKÔE|]2°Æõø¹Eøýæiú…†ô™sŒßy¶š™9A¤cÏ®rÖÃó$†dm@uÙJn½Ã²fãtbtÕ…Ÿ¾ŠEúCq_> ïÌœKblo~gä jI"XKÔhzyÏ¥~pvùý¯^ãaR’D@=u8#X½Ÿ~3ØŠŽhƒµº¾8¶¼)ùÖ;už®'©o¬‚‹)¨ÿ¸­À­H«13xç*i@u„ˆ®vˆùQ'ÁÃLPÈ×f؇%æEåc]Au üê1uÅè ¥œÕÖ.º—°o’ôQÝÁÁ©¤µFªcò´çÓ’è`¢úsjÍÐ/tAuÝÍŠƒJÍ$¦Žh&ÓðÛpÖÛ½¨2¹Bש\ÔûuÛK‹-»*¥ª™ØñýŠLò4÷¾•Õ†·ÿ~x²È©Â¬óéè•ÓRݽ‹þío˜Ì¢9©É!FqvYÕXf}íRçÍŸeš ó£îi÷á?*‚9ôEgÖPÆ1ZEæôÝíÌu†¡=¢ó;XÛqüÐ,¦ãޤÛaR;‹•ÆÐõ€Ï¿%#y¢˜ÌÅ‹Êû9)@×>Iî³:9ñtFû‹^ZéÖÞÖñr4'7= «¬“„¬#1ÃGÞáËò8q`Õ@5ÿŸÌŒ¡ÿ¤â ð«¸Áž3ÏM õ‹°L83©7Ï$‘Tf•ƒZFãOc)=yïèQ~P¿»GK#æ-&«ÿ Æ+ õçô£â’L,/ˆGÆ'=Éís­Ñž\a%Ìö$ð°˜øÚø…²‹¹Q®A՛ܬ¢£Ï·.8±ÞQï,¶`—`1Cž C‹ãÌ…x“¹h€j Ñë~µì[‹ùï7Œ«ðÃÁ¯6â5vÁŸ§¤cÉ™‡xº˜àÎÙÈxMT‚›dp ;È"ž//k§åEÎ-èWFuîÈ­M¡K$y¯ä2.CìE%„?W6S‹Ðúï^2JW¶§–Îír•FâìtxâÑ :.~µ”ˆÿ0ñÜ9òœüfTYà›ú+Sߦ'%Â?­ïv›$©ži¢Ù¿Vôïê ;õ†E:‚>õ&Þôš¹¨"ÌWîµ/ýÛ°ªôøÃ<üû¾pQ¥¸·Ð<Ÿ1«ËEBXãA?òRk×5’Üä þc°©}Åì£1“|‚^wž1+tÀô4és~•ëÞy»·ˆÇŒ(&Vñ{8ˆÃXêýõ‚Ï}É­ÀŸì¥)‚wí‚OÌJwöäàWû¬µ(P‹`ËYåPPUçž§™êZk'\Àï_(í¬£Ü™Aö¸üj³F¤¿I%[IGcøÈ° wÕsò'’ v*:Öû*'æäXü*™èȹß6#’[M Wñ¿:Ã:±÷•aÒ;OѳÆŠöÁ¾DóǦKáqît_æÖvOâÉùhïн²-Þh‚ùH=„á­D>žüc.ÙÂYëÓ™N©dûñì]À›N2‘Êå?F¨«2°ƒØ¬Ðâ©vDm`°*¢ºîa¹Uבˆä;0d©BÌô¢ÏÈ:ޤ·s‚ÙµRYËí_R7hçh©ûɉ3Îòn¶³ºÓÍÂí4zÁœè¸–â?R:kPßÚÎæu„uzËô&ŸÉɽv`„šeê øÕFí”P<Á•¸ûè¥c6c6oO~ U \175“ɬ_Ô[Þ¢t湑øRzüGKúユ«ð 3ˆXzI/+ýKÚÓ7¿Ý{—PÕ^Ñ9D…JüÇs5Æ)‹ÿh@ÿ’¼Û—¥7ºùv¼9Åÿ'óÏcê=ôÀYº^\ì¹ðÜ„P¿°uoý½¾ÑH,‹WüÇA-½ÑǘÆLGºúÁþW˜n=þ<<ÝR;›D jJ.è'Åu2ÉÇâ3Tä%ø†7ÐÛͤqv3µM¨ÿX+ëÃWM"º/Žÿp}^è¿’ë¨?_‰5õc-fëšãˆF«Àñ»½Ì¯€]ÅÇŽùÈnX°ïéHs˸'òƒ¢‡S ÐSl6‹ÁÖÅ"ûÿjZ ï¥Éx#`û6Ë5¡îðù‡u—‘ÌwØ®#ìä|E'ò5t Ɍ²4xbç«ñ-Tõ‡²â>#?ûè _qoQ k¤È?*‚hDs›‡?oàG’ºïäz`$ü4h‹t&ëbFœƒ£‰@W lKï2Ô¶&¶?NÖá6tšwmYHLçóà |ç£ù‘8ø‹Tqnã]®Ž•ÞGS'Ƀ&ã?€Å§TóÐýOÃgÅâ®Ø`g_ë_²Só1¢Ë¨†ªÆð§Àü*ãk2‘ÁTÁ¶çPµà?î ÆÙÈsc!Wp¯&ð©ý‰é{Cìp‹1F¶€i+DƱ}Ó>,ü쬺€ÿ˜IoÖŸ©ËËk³ÖR£˜û¼–Z÷ÛôHIÎ5‡Ä¯ü :Oö”F5œf(Õ1K©íŽfMV3©_†ªéuÇñHº ôu‰ŠòÊ ÷F?ìN‡myZO‚šD1PUí5ߨ[ô¿ÚM¿ÜæØçØNX§¨³…¨¾1Ý‚or&ÑÐDÆŸœTKñ›SEðZÖwbo€é¶BM6ý®/*üd4"úyôpºo}¤ÛÔ²¥Œö6”q`¹oª0T;–µ£— ÔHx1ÿƒÎRxÓæoä%äSY“ªÃ¥vDò¶Ìë˜D—tö#lë`üÉêô\Þã7|Ax,ÔÑ4 ŸŸÓoѹ‡wˆ~:Y«`*½ñNí°Xb/²«¹ô/ñr;æ:ñí…Ö)f‹¼F!·úsêâYm¨Ç`Ïù½×n¹t¢’¼úÝ<Çõ¬”NüF]ªÎ#Ð=ì ’`—±ì‰ÖÏ(p àÝãZ¹Qiï†u&7c×lÿØ£?£qìù_üDÿÄxNj§º• åB^ú_Õ Ù.çŽ]À™B†9’.ŠËÉ?Y÷xOvÉ#Ôq5'žkü?éß ü*°W *w,Ï9…x%Bù6Ohò7¹Il åÌÜ¿>Wû.Á‚6€`åE‰SÝÛY,&…*B”áÐucºœêßß/N„Õwë?jb‰+À¯ƒç®N,þž7ç qÿxЗfZ¹ßÈŽçû{‚§55o`%,~xú%4¦Æà Vt#¿ ‘Ûe1&ý¯R~1 ãó!¼@¿¥ÖIüG7®4–œÞÓøÎ6ðæ•Ìî ç¸òDêÇÈäîòõvê?ˆ¯uY‰ªÂ4m"íkxïƒàC…ù3#Ì UvOÀ¢ºãåèz„WïE^x†ú¿ðZŸwøçªIÒÊ[øÜ X¶Äø¤æÔÎtê‹…E}_5”Â7°¡`}2Qÿ±ÜH|¨¹‘úÁÝK|µú¶ ÓyQ\m„»=Éz;¸#Ûè¹.­U`0—¬,غ_¬òðçͱ,IÉ?zÀ°\RIèŸØ5Ä~N­=3Yá™–ƒÊ/$ÿ8m.áˆ@íÝtüÇ+ UOa'ê’߬{IŠw¹B·•Ù*WòŽ®;A·(E;î¥,C2®rÄ65ÒèÎjã›Õ‰ääqVbÿëPÿñ@ÕG]¢üAœNç 0g‹WA—££Çl¸øóäÍȆ—_²ö¢­½ÆöF ú]?{ Ñü\*êÜ È?ޱ¢me¿Jmžñ¬7ýnWîâu eÑ(ý;²þc;z¦bø¤™è®|ðOÉk€‘´;Ñ¿ÝO3þãÙa4=ëµÒ_‚_%#§œDþ±Žy_ã¹umúŒ°–Яå%“D¦¢â nÁ‰ŠoŸožsN@Æõþ<yõç×1ÿã½t+—fÒ7õdY-‹úÁÍ(¥²Ò¿d“Ç€cëo¥ewy`»ÓZÙÕGâËòä¿K@åzøfºŸÐy“–IuÄ\²22ý±“Ý—ÒÛ1𮦸wÌ„lÎäßNF»´Ó”ˆáqÑ1yä·›*¯ÂÊ1Ìçýþ'ÿL­×•þZ&Íþ»Ï‹¥e~í.#½hƒVÊÍnéC@÷’E†ÌÅí{°œÀO¾¢å[QÛFÂÆ´3o‰pâ”þ»~ü*™ü(>â?ÂýÐ>Çâ?ršceflü ÐA2·þIß){˜;ä™îµ±(ó]+æÕ»èuy[¼Íx¢œn„L„[Ü|$\=ŽÛ÷"ØÇª‰ôͯ‹7¢Ñnxµ›ºÝ¬@WÌ\†½öÓ‰…ý+D¶û åÀ29.ÔÔúC¿ âêxËY¥=œaoóiزì(,“«œép>«¼é„ê?Ö™±2m]D”˜µ×ƒ·¿Tëxî/‚UÀ—ÔGúI†ûfÿ’ôß sËU¯“œ)¿-ˆò÷‚_½"ÿóp›O9ëqÌ|Ef·+ÙE¦ï¿rz˜ÿ/DVpFf5ŒJ62Œd)9Ép²ƒÐÁqcIƒ¿Máï-óýwg0ýýËåVâÇcJ?ðª%صèê0xS~&?úÝšX÷›œ™±×`Ió©ÉøÌ›¼c3²OZIྠ3u>Ö91»>¤:¡—z¡¢™Í¾Ð_1: ä|Jƒú«0 ËéÖƒücúÝ¥DõÞö}µ—úsw¦mZ,JdËù°ÓTZ¢£Ç¼A¯:.þc1F>w2xÏó5g`ŸPO7ŽX7Ò%DáM¨#÷ÅÃDÀ êÿNçüIÿD·CQà¯ëb#Xâs8²>XïYÌŸÆTÄŽdXñüG&>9Ô4Lc·¿Ðÿj¾ÒåϹ)VNkר@ج•Ò[Rú'HgcÎ?—<'›Ð¯äÜô¯è­¦¡ˆ=f•¢ÕZ¾oe]³[Ø)¬-ð.ônçÏ\D7ÙÍ1žÍyéŒLd%Ï9¿ºVs:ÕMAKÒ¾¼]¹¦Óa]Ña~/þ#õç`ú {Ui`|ÂÐæ,5Ɖ¥«(ýû—ö¾»::’™æÐ5ªöhNuú C:jF Ü †´ýžl©øS.ffE…?Ã3]$àíˤÿÕ&柛0ë+@ÿ2gÈÍp±–LʺD5JLr·šÎ)'†#œš(×úPõè‹ß¼e=[8,Ž@ÓöÒ?1¾>… ŸOÆ_«ðƒ}¥>ÿ¤¦EÔÒ¿}­QCÔeÞ¹;)o©ö+õçË™îþcó?.h¥Ä²…H(a'˜÷E"j|gêïÅ=™‹þ»ï¸Å?æ?z#P>ŒGiµ·)9G4]3ŽËÖè{æS•^Ãü=ÄxeÁ¿ ƒ¿­)¶_½ ©B¿»挸@îqŽ.ÑúM2œ…btðýêw~†.Ëò“Q±1{‰Q“íÂn_© '™RÆéd½kä,ÏúêRüG/MR_mbéßÃwìgmˆìcíþ;Ï‚­MÏb€æl&n‰,B‹¼ŒJXóöxs(kS°Ð•`DêóöÇR/¨õÛÁßì5Ë n©·*$«êJÌà»<¯Í×m*Š÷±—žœ_Z"±f¨ :™Õc<ø ¼’ æíŵ{‘ø°Ç«æR÷«õç/µX"=ç“[_[>d ,Ð5óÙ–è#"QY1ŠhÔ­þø‹˜9:õƒ>!êWòIøtòö~v(&WÓ‰½¹ýK¦ðn~BMÜæèÀJ8þtj.k ™Ó¼Ì*òíÁ/U[c̖ùÇZlù^þÝ<üÇAºÍƃ?ß òž 5ky¢Ì)0,aÁ7Á)?!‹n•CÜéˆ îé8Jä? °“#ÑLÄC$ÅÂϤOÒrìëRÐ}ðϰô™á\l˜ôg S¹È4/PÝt‹1E+r²gðkI¨ÿ¨¨ÖÓ‰ü0=]«¢T,,cþÇ{»˜³”jŠfÌ?¿ëÆ·¬ kºH#çš"[¿"–Ã;] ¦jŽ´Ê¼§ÂòôDKœ×z‹½/E¾•ÌùÓú“jÇ<Ìÿ˜‚f xà'üiU¼„fà|Ò)èwÛ¢¬ûƒ|¦*š´ZäÓ=é—8…úófÖkŒôUtMÕØÑ?è…ßÚND¾ÐSå…·ÈD. ßMhŸ{`=ä_»ýKª‘óUP¥÷çÿ‹Fbzm ²÷BKý¯ùpú=½±ÆÈ%ªÑ·Oë6­¨1‘üãŽqúóƒ?tUç´²b#}©¢{763ÿã#øÕ!qQf•Jêô¿Jì}mñ?öX¨atÔêG”umzð¶m²=±ÁŸW5Û}gÿÝ$zê§¡¥ô'Š.…™CF_ýÕì´[‹ð°‡úÁ¥ßÅŸ?§ÿÕ/æØäýd›QŒ¦¤ûôvž§{ OϰÔTK_y?73Ôk>¢Ý–G馇H°¶¸"hPlß\rÝ<`'é+tþ£yX5ú'† eÅ9Flx{З£Xü¤dX%`$ˆy)bf]޵ßÏ®/²Û·23v‘ìàwevX7ÙÕyÞãö¬–%T-~ÿiV#ïˆÖ]üè*'êvP<õ¬æS±È¬¨zÁR´¦ÿU#úÁÛx¢uvdç#ú«'öG˜›áÔÎ$AA—<ä–™ŽþWz­Ú+÷¼6Oˆee¢{++«“„Ú¢»ÅÜÕvs<Éj^ÚÀ ¤Z\ØÑ­œÄ!;±4~pïämÿ˜ÿaˬç-MŒ»ÍªâÄ¡þ£*=v{Ò㫇=˜ùµ‰+¿úÓÉŽ~·êwþ‡—ÜÙ 4¹´ü± mÏñü}SŸ„ÿúÏzŠ`ÏÅ÷/‡þ‰qé_R”ùƒ¶áVJ{keŒzè¯ÎÒ¿=éöo?‡~w1q´ö_ …Ëc¦×Õ¯“$–OEL‘ØÈúCûìl”C=4ÿÑÝO ºSýª?Ð7Iz&ÉD¥¹Ìî!‰ßºòzòîäçˆeó€WÍ¢Þ¶„ùJüÉ×Þ|u.)+ðP Å–o-俟1î‹\ĺ1à.s%V>žªC„²«¶ÐP©éõ N|¦œê5ÐÖËàWÉé¿›OQ \ƒ8z>Øo~j!á?ÖááÚàŸJ™a„[§óO¿FÉ`!z“ ž'ÇòWäÍ1Pr•ÁF ´³Ä@äÑ™@—3PWžúÁ«ßXð°¶J?#3_ ÚM<‘뮎G/«ž˜iÌn çàt½¸öUØGjqái:3ÿãk‰÷´GFT°³”xÉ2äAÉ?êà“^ESÛYøñþÿAþ1þ¿·9œìé½%G0ÑòË nÔ.ñå)ðœádA1‰¤ã:Ñw"ø•¦ŽÀ¯¤V»a¦‚ƒd£âg.þ  {ooΠ·g`õÂßkÏ6&Ë–xîDøƒi°Ù§ÈÇQA²«ž©¦[é^ëú öpˆ‹€AÿË»”üC˜C¾èÔO–Jv5õõl8˜‰ð¯ÍѨƒ k”ZFÝŸÛäóÏwá‘»ÄÊžÃ[D•›üÃ1Ž»ÓE}ÎøV::\vVE¿5ÜÚjMTþc’œzç*ô`z¨ŠQ!ïÇ“%Í68à™æÈšºW|Aà3ÔS±:¨°{š×™F5تo­¢gñså"pç×ìžðûÓ±¥>øärð盨—ßI2QÅŸïf~mg3]ZÎSMÒfx»ÌÇÓ,§ŽUÊšAuÞ +“}Š:¨”†¡šl%{‰:aWSS5'{nòFýž†l-ŸÙÛºbJÙ‰.ó ©¯eOMì ÿ±ÌI2¿¶Ýà?2ëÐõ™É}Â[gÉ?*ËLA&B¢þCñF”x¦ ‚7ä³Â9acZÃä'§e95Awàó°3)ÁÅŠÐ%†U€»|ýâ'9Ÿs×ã?6èýK¦ò<͇˜(7X©œTÔn6ÌKÓÞ.èt.3“¾¢ÑjFÿ«éÌñÝg=ÀãÜ”»ñm©h­$CΠñÀð‹(ú½ŸçÉ2©ûKêùî?V߬§4ÖÑ?±†Hn¸ê o-'üùãŠñFúE‡Ò^}UL”á:ïÊD Ž8IÊqLæ„ÿH ¢hŸUÜøád4‰F«Q?Ø•üc¡¬eþ%kIíë-ë(ÿioñè¿[^Ô!â=M)}îˆmDø)èqŽâŸÎRO²ýîRÕùµu—E!"ç0¼—;ñ?éˆÅëñç^´«íaƒ£¨¬¨Å¢ª,·…zÍÞÚbyF¾—©ˆÓ€ÕËI‚õÜóY€*tÂ^àWMÍ¥è™3Šô¡¬ØËHÏuºgæÖƧÁÖ¢n‚¼ý™Ðä, ë¾€õN J\–SL,‹}³ÿÕ æ×n•Ô5¼ä0ПT¦Ä¿•æ§Ë xú…sì rß¹ ï¶ /2‚Œ~L%ÄWvùF»j„­ÊANU…¼íO8¨ò\ës8ðcæeÑ[\ÇZwÆ6ÇãÍLųôTþøå}ðÒîƒ#žÝ[ýKÀÕôäŒFr7&Ð# ˜{3²òÅ2Ï…M®VÃᬠûÿYÂü@ö÷ïµ§“d#"ÔèxœQ(Aï󬬿ڌ}NÁd¾-tÎȈÍ+N•ñj¢Ç°Ø·±ÄÚËÀ»>кgˆ+¾‰Ö,ŸYŠ, 7õƒS°ÔS±–¬™Øý“(º :µê 8…™?¸ Ÿ«>CÆÔW%ã\Þ©vwèoÔ ¢¸eÆãZ;Nm6/¢¬ÝN5ÉÕÌ¢s}!\J}ø¨Ü$þí)ØÙZ¸’æ!:\ ‹÷FeE;â©kô)Fô½’üâ6}ª~¦âN{HØ ´H7áHª€¹lA/pXeƒ¢?禌ӊêõéq0Šüc«ý*OËÊÖU«þ£®UÚêAýàxi/¬þ”¶ÛíªLظ"x1š½<›UE3°÷ÃDý–aðÜæiªmíFùÔX þ6‡½ÎÊG½½tfszïìðÔŸ%óCùä 0„ìé4±DN/HþñA;+ÂÂcÔ#G}§b‚‘ä³öÐ{wÿˆ2lyÈ`&”LBÇÕž?ŠSÊzhE¶ ò”»Ý„>É­ô€äÏ×Ó¿ý(ý$ÞÑ!f_9ŠjĬh§kròIÐRgBM½ …X|ÔGÕÒyÃR™˜áñæyê§.ª–J Cöðôèð‹¤äýKÞhé@šþÝÇÅÖwé¹-F'Q‡zÜz¬²KëL÷ÄÓÆKê“Ñ¡ôŸ?åõç+À•"‚‰t¦·Ôkã.“®â ¿Ì/ÃÒÍ$‘Zå[ðõÿ0Zbýúʂܡêf9þ<¬q_v1[‘)d¹o'²à?ü»h\[S1ÛÅØ‰)3ÅíR‹ˆ£SÉ£X”Äz×d^s/ó?ƈ¹Áô«ß½3žˆFXøh¼Ã‡±¥ˆk¢Óð‚Áh¾pÇåèч¿a~TPïÍVí)ó£Þ0'ëØ —ȘņõöQ@¹ó©6Ab¯ÍGFŒPVœgT0Á (Ã7Æ%ÿ(ÏY%RÅà(³*?rtRG°»ÉsâÒ¿=³îÿÕëtëvéáÌê(8ŸË§d¿jÅÊSÌzð9Íià.s}€œfkîg?fö€ÿœ ¸´ŸöÚˆE­yQð«Bxœ6ì« ±‡ìî ú« "98Ns"ç±\¿ÛÃ$ÌÐ‰Þø+þcöĈ ~•ÿP ¿¸›ØÒÍŒÜî ¨'| OžE]Ǻ_äJsã“æPC3ˆóbŽ1Œ= øjŸ1‹(·Ùä&²…¬\s-¢ƒ²tŠB'ïuô¿ÚNýàÕ{8—lNƒSYH“ƒèc13dÿ’·†/µKËÌòìo89ÈpTÓ‹AWÂb{ç0+v±e1Ï—jŠÒL5œöRîüõçƒá’{›×ô­ÁîttÑßw )J òÇj ñî 8•äiðá»müÇ`ð«’(І²÷ëh‡{tU‚­§É™D@çÁtûƒK-2/¨Ã0 -Ð[)*º×Û¹±ÔG±ÎÇÕ4˜Œãø¬ºüï0z‹0ösÔ+yÎs‚7Á¯ZƒN`½6äååMY•Yàm`&*£×o÷³ŸÁHïB'Ö…+?ÿ¨ÂÊM8—ð|bz4{Ö;¤ß5`y“F3©|;üy»ÿGÜYÀgqmkföž=óâîîîîܵ8—"…¢¥8-VÜ!HàNpîî<¸»|ÿI/o¤IνßiùC„ìì™Ù³äyžµy\wû5þÛêúI0Þô/yƼò©¬öÜh6:®øpüŸðqgÌÂ̯ç¾ÞÚM‘«]ŽwꮊA6Ÿ Å­Ó'±¡ï3ƒi'“ìÈèáÞ£Tgþ` ºë'±²‘¹nEÄÙhJ¿mp;õƒ†éM¾=Ò_z[Ñï:¸ál²,¦“ØÉ?6áÏ[¡°+é‚¢oË~ë.ÖEy Ú‰æÊÊïc˜¿ýöÿÝßiô•Aü‡¥çÓ£ºïÓ÷­lqB‹»†¢µâáWm‰d$/Œ'¬ºê»–;¨å>èj%úõèxM<Ô—á?`¥†E‰jü®}¶6Ú_ –9°ô•¨'õ’yð7ñÝ`*RÑoð·öOLF¿ûJb4Ïî6¦ Qåô»­M•<žpÍu`iK›û¨0™!þã†ñ\T!:MˆÍ:ÇÏ&®oªË‡è° ˜À=P£ûô|@Ψtëfî…ÿ8K¿ ˜à8é@µ›Á¤xÀóîædÖÄN9 £íÌRïz_ˤq8wq¹QÑ{»ž™© yFR6‘5‡u{é_rkŸüªÖ93ÿ®ФÃêúCæÂ±‰xK¢*Eð+qöÜŸ‘*9ùÇBµåí"P¡ÝD§×TAº–L#ÒͺuÆbœJs_% ò_ÑŸÕ®ÀÈä¤ÛySrÒ«j)su³¿X¾B.?;k ò•a1΂FçrÁ*ûðoWm9oxà/ÄBÎêmS§’mZAþ±…¾¹µ’ŠFåZH‡õÌÌZ‰'šsq¬¢5~ùöù]X–+=Hÿ’¾Ì’8W]¢2nŒª(È‚Ömð«dt©ÎüÁôÖ*‚¿œÁü¨©Ìno—A96Œû’ MB&ØšÚæ¯îÍUÓŸyÁónsî~°V›Ù¯ê@ýHAüÇŸÖhû3ŠW¶p½¦+È [á&ZÏyj“ÁÖÎp¾²ÉìAæ¬ÐïyÎ"?31p0|kÒõ* ºÝÎx¶ÈTŽ?Ã;Õ°ß‚ºY0Þù©<=€µÿ(ïÂÄ=rûÌ?-cQ†€Pö‡?ÏCµàPëGý¹ºÙïT;Wú4¶µöYoÁ¯öËkäð%èÝRN.p_ñðçÃÜ'!2øUxŒjX{‹ ~•ýn-ÑV¤6~b̓Z!c Åßp ¾³þü¸]Ìm²èVT_m‹ÌùÀœÇZò lzÚïôRØzOâòqè ó3]¶ŠúÁêæf䦶pˆhå¾a]£óõ¨z=½Šhƒ]>ëͤ(s)YiSÿùœÏã`ŸdC4´#ådDò”qOT†Ù‹¡N‚­¥AVÕv`Lð¯àÏÍ2¬h UZú]š¯~'ìy}"æ· áùÎi´]~|'ª™Jzü­—à·UúÁÓ²0,«§9œ¬%•2]¹sý@e"©Zæ,㼕Ó}÷0Þó{ +ÙÝœ&gi‚ß͉-n »í§§¿ñ!^ÖÀ|æ-.$ùƒ?ÓèæyâÛEþÏßëŒÁþfªƒ‡u!Âtz\=CÑ:úóãøSàWU±ÙÍðÉàZã_N©›²ŸâŠß_Uä)þ6™ÿ4ýè_’}“§òF5ƒ ƒóÏKÂÏo¿*‚6ö*;þ]E}t^ÁVä¼ @GsÀ+;}ó˜Ï°ì[¬Dð5©ËËàzH½óH ¼„ ãŸT z‚Í¢Ûá)2°íø÷Î!²õdäI±Ð×ÌðØýÍ“jWÙž¼S¯™¤Tüê¤íö•·yÒ­‰®€±ùÓñw5˜Ý{÷¼HðîÜù©œ©ö`H äVYÍzaõ°S‘Ô¤§‡Ã”†gXÄ|ñ?™Ø”¹ ·QÌ¥É>™-ˆvþªvV¼C‡Q—œ÷);ïgî¡b£õ)µÉhrPIÒŽ+Ž rÚ™F°+5­Ä EÔ;¢­BøEN ã>…›õ×t7[ ¢1¾ïOO¡¹f£ýGÕýr´Å]Waø³º:“”sý„‡šJ®øTú<ùGk³ùGíeþ` }6L¾Ýê÷Ìÿ kþöýúû)ݹc^Ì̃žÑ™uþ|6ÈAê?b|gÿÝ­Ú£¹DFN¬\74¦ðÓïÂl"xÍgIð˜ßà{õ0Ò;¹™Fs,ÖcÑB–¦ÚqŽlÿØ-¢él*‚WXÿùÀÏ ½4ók»ƒ_ìǾçÕù6Ó©ì‹=9H<‹Hñ®/»‰9?æG—Œ}¢V(½ÚzµnözÑÈâ›Wä$ãöLjH aXËÕÖËõÔíÃlÇëƒíMf“‡7<+ÞΙ?8“=?0 ¹Ÿ}è+N5ŠÁ{´!kÛ ’´??¼· B/EŸÓXx§S×V¢EgÖúpâ4aN [£Í×/Êlê8–·øT&ªëó4‘½‡éªîò ^y.^i«å^NÅ׿5BÓ_½`b¹·H&ך h yVS01'‡ØŒÿh/ü°´½Éæ&a»ÿÀ‡d‚9Wx®}î77ðš©M1 ð«, C­±•x¶-üG_ð,§®a¢™ti¶£"³[Œ?Çóq0ªmè CbÏ“_ÈmÛ‘©lÁ‹€£é&Wo ÝÕff!]°ŠÓ¿½0Õs[Um~c ê™#‹6÷Ói‚O‡ÕÈŽøàr¼ÿr®ÊK „?Ÿ«âã+va÷oÀ÷¾S‰…^*È\fÅ6oTûÈòqßèÁý‡&Z«ÜƒÓÉ‹_p:…\SK°IsÁ¯zædp]·pmÃyà?ž’¹&e¥üöÍœª™f½oË1öªë>x¬%æYÔ\S`€à/ŸÀS°7YéuT±Þ¡sfVU¿º/LnRG¥é>‰çÉ?êßᮠÁ†×”d0ºNT!æ ^±ý;ÕMÈöÛáöÒ«ú«Ü—”ä!¹Á“˜kÜ·ó%˜ÖìsmëÕÝy êÛáÝw²Ë&LxZC6c»^ÒÍ}L»+{tf‰¹ð€à­²¬œèÞßí zÛJdÌ¿_9u9u-ÛÕ5 ê#9þ£%z³±væÙ>aºHúÌ×%Éjµ¥ÝÌSLÁ¹x!oºó6äŠ7~&QΟÌò±RQ-8O9Ç*N­’v_ú'î³[€_íQY©ñ²7’+¾…#Üü¤Ê«æÿJÿ«Ä BJŠÏZþÿØhx¢4Æ£Œ¨'>ꥸÛë´ÒÆxôW»z”¿)Ý7Ôöjv`6_`<=˜6SÓ—êgÀ´òH!SˆäFe÷ó u_LlÄÄòm@×úª˜‚‰0º¿¾Šámèš’£LmAýÕg8¢ô¢±ÌAâòè…ªb¡šÑãq>e+˜ø3øó“ä½Dà± Ÿî6ŽˆºØå¸¼Ã»ð©ˆž±=è@GžÑeA…fÓñyT Aöá>m•\E7¶Jd/yay[a‰3‚³¬‚KÈ Nr D¹Ì¯Ø¢ªfžÚn°‘‹ëìáa'CQ9e!·I¯—øÐ¤é«çS[ÁÙè–Œ~7¬Êœ#Ì<.s`f`ÅýðqññK X¡¶ú;Q¸ñ=¸Ì Þ£µd![Ð@`´¿Zÿö»L|z)ŽUgᜎq?â©)A{tÂŒNý ¶§qøH¬|?ò“xøhüæ+¡úðçwà?æàsR‚€õao“Ì”jþäVâë ì7ð™áÓ=Aÿ„YèMý`¢¿å¿}d72¼Ôh¶–½û«îÀj­GQ›eë|ðœìÖUˆîå[á{5²N§síµW½a~í §[ñVÅ[Wgà7FÓ͆ÿp0º±p©X_Ñt)ì}>TÁ‹øx‰µöËE¿a, ¶bAÝ 1FvPšÁø-æµ¼}5ˆMºoÄ£þ£Žk-ùGur›T“$@ß$,ê!ÿ‘BŸ°ëÔtkê1]sz‚ÿy™\5«u³Ö+É|޹TG\°.âC®SþÛü#9×ê8LÎð«y2°é¸ÖXoÊ ûƒ“Ò›ëmÿÑκÇÜÁô¹êlÍ£¿ãGlüêû“?cTVîÁóÎH‡Ç¬É\í~/ÀWD\²’[œ¦êÖó´ŽŠ<¬Ç${?õ#ÌÇcn!Qöpk‡Íd&ëWK³Šá jˆüÐh¦Òûz—¶KÄ+mþ\½+neEuy 'ö¤¯ã:øý©xôdqÏÉ :Ó—q6.KY599‡9õ'ü¼äöÛ¨ŒÍYó¯GçèqðçÉ]sÈÞ¾Z•ɱ*PÿqŒ~2¹]P´¤Rñ!¸Ýpë›sÒ—¾8nÃ¥~0º¾Xë>YB/®SW÷ý§ëËõdÆ>lG(Ãa×NkÕŒÉÆ&ã5õ ¾³ÿ•¯ö…Î×ôË ú_½Ò·ë_¨ÿ(&Êì"‘÷»ö™Ç(Hæ8‘þ»}ˆsÈ12þP?"» ´]Býyr³Wˆ‰aÝ„ôK/Ú%ßâÉ•C œItŸÄ Þï½DºeòÊe²µ˜Ö"A¾~Äx(j€–(µÿq”éˆÕrÖz†ÍzI<]Ž{ðŒ ˜µ“ùƒ›ebNéc°÷õx¢5ô lƒíZˆ•®Ã ®E¬/±fk‰œ ‘"œ»Ø×(A”ãÌâ;–”ε4÷Jãm,¢ü‚ìc1~Η¸ø6ñjüG–0óÍ[?!‹ñS3°ç7Ñqéø¥†ì°"YÀº;bNáñfqΰîBüq;¦jsoÜMô»t"Q¥`ˆšàãHÓc„¸< –"ŽüM¸àÆã熲û~ä ˜…ìâï(¡ÔnÒ±äg¶3èûš–Xõ|ï2£áàù±Aâû¢ueú* wP¶Í%–]ÁZ?ó÷^ºA‡œ?¸ÐøC¶ÇoeCQ»…=åŽo½8Ã8ÿ8SŠJЗ°S¤V‰Å· Gùµ{Ê´VÓýuÅq„MÜãÍ ëÑiy2ð’9‰h›\FMböJ+«}ÈþŠ¿(AE÷Låø÷¯`m7ù·Tfš¦±.Ø“Ž$:àõï£$K®þä ך'П†‰Hc5³çP;øywáRÊa¡ï‘¹Æ ˆÆ÷¨j9m.1*ØzgÄ\:¸=#_nÇ=÷6ï©Í0Û=È…bP‘·”¾—¬w‚_Aeÿ¬¢öÃÏ8ŒÍuI~u?ÚvZa½5™àZ"©î XuÁ¯ÚÁŒ¡&¯#ÙÐdö—šQÑ•×MxëÔøÊVTú§`âaQÔHµÌ‰îõ<ô³FLâGWÏ:kny.ít¶=G3€Êp>NýùrªI.Zo­Ÿð™%¹’8Ö"NSUY\Ît_ï'm‹HJ5r!Ö³­°´uèñU ¸ È„.P?†&ùˆ3O½>¸Ö|*t XUÔGâÇPý)Ï»ýÇ,ôˆ,|>1É ³žœK¥L——õ þà'/õçgÈHò9=RT2îŠ]¬ûD^çñ­PvüH——ˆ åî›òôALªº•_´œÿqþñu¦ þ£Š¨ÿpò̯Ž"ëŒqGOøõ燴KøÿñÝÉu‘S| >ñ«ð“õ™^Ä9‡ûyFäV$5RS0¦ãgüGZ9LVÒŸê+eWÓG®”iô»›?øU+¢§­yÖY«þãwµKñVnÖ¯lE ¦R ‘­„W¶vØ8Fþ1*`j…qn9ÇÆîî Rt›}¿£ïÆ;Vìî5ïÖÖÐç$§û.¶ïêØ…èVûÍ/2«Ñ§ï \ÛüG_>¯ÍüXá¬ø«‘ üª5÷ lz~,qì~¬Sa*Ït<”c…ö¡H:ÿÅðça! kµ%ú5éØ{ožÁ5jg,¼G3;d`ß½Zi½«Må®7¤ŸL Ô#e¨·€~÷7,û ÖK‡*éŒu7»³t ÉCe|S™à+ªÀ`U1'¹/·õç îú¦¢VGÓK8]J+¡¸jk²úXƒí8®ð 6“£Æ ¿: Â6€.—9ñ¬_ÉÐÕ-kÜŸXCXÄxåÀ7u«’Œe.¥koNü™—]Šœc5ʰîô—¿Ï Û^àW«ìN°Ý%¬ø×íø·r }oñQåG¹ë±7©½Zª“kÌ"3:Eß÷Y le][]†«¢«=FU¢Sãû'ú_=„‡º#7ónf¡Ûr±E¿Ôiºûd}¿zã¾ïß÷ÁcmýÛ—%Dcâ±J¬¹Žþí³é¨xþÃõó?vh;ŒøðçDó"Ÿ8I”{âl(uþ#—{×Ùg #6èýB™‰wi(õç#dê—H§»·Œ&ÙA´ŒÐŠP§›ä‹AèÛƒÒ“ UÆ 8Ë™z‹Ç;Íoè+ÖG`kKŒSäsá¤s–a>Á¬27Ëuá gúþã¹ôG¨´kámšj•Äh‘žóŽœÁj­e&ßÏ0+žäÄ`Q·Jò¥UØ##Üùc ª¶±¤ÝÉ®rö§ó¿‚(5K‘¤`§>ìó,ž4YMð¨Ï"O˜õ›µIúy™>r1þò0ñ[\öWŸü£𨆿OXê/xÐÅü– àXNOöåfMùÐxÊåúi/Œ«ò Jþ[xÉ]äjuÍÆ(nà ß$Ãl+ž€ãü®Êªqä‰C±óé¨Ãü,GÒÑàïËíÒ61á"Ó`Åû¢×ufÏwMÈŠòüÇqÎMâùä—à\s_³¿¾Ü›­Ìÿ¸bÉ5ÆÏò70µBØûeþ¨¾0}o˜i·.¯WAò‘ °xŸðPïă¼DÓýµð=ã=³3=Íòpã±k£x*ÓñEé¬jZN/ës• °«jÔŽ£b±0•ÇÑsuWùÉòÞê[‚îFüÙ 39Yäh»©¤*žL ²Õ›•ÎõÀ®çš@”òXè窞rú,Þ…­Ø¯Yj&íwS æTÜ7ïÀþ¡Ö˜ÎœÚ…`M'PXÝ¥2" Ú«ýL | Ûÿð`ª?ÚÑoäŠæB¨†“·~»…?jYõ ‡CÕ1øóÙô¿Ú)33Md8ú«VÖ`ª¼éL˜™y±SlOüÉi» Ým÷¢˜Á½ÂÉl‹þjÝ·å´ÜúIã3çþ"QDqk¿¹HÔãÄÕ¦ÿb;æŸ7‹éò¥É;æ=M´Ö%¥f>¬Â @1°’óU“®ICÜû{¯í…ï.Æ{EŸ"تô¦‡×5e.L¾XGÁÓÚ1ëêþn=Óä·à?ðœ[PC³¯c—¬â?<õ‚îD°~ÎLËzr6ýK¢2¿ö7f[E¦ÿn :?p=²‹À|\S\­ñOP'h¬vG®"ÿ(ò[Ap_ñïýwg¹ïÌ[-[˜Ñcx{z£-c~ívú—T± g:Ùz-%ý¯¦Œ«z}Wx ûþæùüBýGRüGjžx:á…§[NOÅ4ò«P¢ˆQÔ½ë`?Æ'e >¿ýnìBL9œúÁ;úï²Sý&ä¤{Äøó/Z]=ލEü¾<µ,J©Và½P•%^Þû™ß²œj¾"PÓƶøò㺨 .Yíæ¯'}‰Mõä+±?÷ÈoŠa—_É»²œî5ïÖ&È£DDåA¿r©sDäsÍTظæd4RE‰K¨ÍT¿ö%én¦ÂYÑËHRÒ7e?^"'™wqüÇKòÿ‚ <‰§v‘'ì¡çÔîÅ•úÁ/a\ìUÍSß' ¥zá?Ž“»ÅbåZØaGƒ[ ËÓ• ÿ(oÑXÞô ÜËY Cµäs#[ \ú¾Oœ”Að/ Åßʽ/Ãßé@2býãËâñèt¬ÓyæC±õÉô»˜¿¸Ê·6k»è_r‰Ÿ‚]Kȇ= ÁþOyÅ=(fÆÆ/BD< g?{ч³ÔÓyW?ûm¡ÿù{¶ÑF¶#oKN¼¾%ÏîàüÇ>õ™z‡}ôß½„ÿ¸ÂüórdÔgXÿßùMóA ÞJÙ;Äs¹ohêé<ð3“ðŽþÊtåÑüÇ(ø]ö'vWƺÅ×rsÝ÷àû÷ÃmÄæNß ¡ß}ot†ó#Ê/I^Ñ é¸ZHÿ«‰ä }ÐÅ&v] êV–ŽSwQ/%¢þã*׿Qý ¶—Nv= ¸dù3ìPÓŸð¿+͇àW ˜Íëàuþðç•íUÌìIÝ8ø/ø¬ª\µ/ލ*ñRÞ20n«Ó»Àå® ãþ ¢)/õƒcÐÄ6· þÒ*€]…Êõ'‹ôÁÚÀé—²S¥§j´púó²úãJkœª¼Ös‡èC®[ŸºŒÌtj€\\‚õb¿'ÙÏL[ œ,üùDÔÌ;ygšÉÄA°ãغ¯¸‹r³,QÓPäæôo V‡þí5`â‡ÐsÄ™Çò‚¢>¼Jo¦\%±‘]…ü,ËÁeîtçiŽy?°‚'2‚Þ™'`ã?Ø#ÙËd*QN¢NΊþŠÆ®Æö|ÕÆëÏüÁÎÖlƒ¯ÜKÜÔ‡§\YF„m qLÿןÆÖ§éVé#øÕZÿñu¿4öEDYú':þc-ýÛg€`]6n1{íwíu»vÂè uu sýw{Ó7ý¨8&ÓKCF¦IÙoØ?/_Á(DL¾ˆŽ¾y㿈β¡~^_@Ä:ðžôàW5#ÈŸëz]=«èãƒM*E]WM„ax!–a£}ˆYcbÿ° +þySßÝgõɬc¨° ¾ÄIωñײÖ¼ÒcpžbNÇq°¡™rL¸×|@Û$×Ë$Xù( r¶â}Ú1¢]¾ŠVö :©¡p ­Ìœ¢H8+N0ò£»jEžpþƒ?¢®p Y±PÉÔSРä%¾ÄægÁÃâš9e^ýCW}W›¢?¥ÉTfòžâž'"ƒk„'.ïLnþ†pø\½/üÇA²…ô2·Bí¿ë§Åäü‡ïäA´05ñEÙÉØöâS”%lïP|æBì]âšç­9[]ÀöÁV•û‘«*Šõ}ë½ËòA›SÍòmò bº óÏc±ö°%×ÔCÙT:ó‚þ÷Öxö|<‘æJìózõ+ªê±Ô²¿ãcoØÙDõçè®wBµ±î“ñdÀŠ~¦:ï6êá¤Üã·èôƒ®çÝxvçñZyð³ñ‡~Ôn²¢ßÂäÕ$®7ô ïòªŠ5•WMê ç6æ÷mÁãg Ñ¿ä6øÕWÁÛð#”y[v&3Y{Ø£îòd®Òëlµ 2¤œ)H(†ÚàoQÓ_ØòVWd ÷þº‚÷d²Užl{п‚Òú7ä Ѩÿhoͤ&ÛÏ*kûÙ÷³ÆÂx =GÖ±üj;¸jUÙé¾ÜRú#9Õ€o9u­™æ1±‡·l>ùFYtLÓèÇϵȾ`¥Òb4ú«[àW=©â/ÄYH`­æ4ÕBµ¨î—ú¡óŽÖÓ¼¡¶“ηò‚*=¡|jºåÎJýùê‡0­÷¦ÝÞÚk²š¡ÃØD®lòs§ä.·ÿXJ]¹7b&oiE¹ÄªÇôà1VX­È`‰å˜x͵Ÿ>ç~bê®?ûìa]$‚Ý~ÕŠ®ÌíTÞE•ïÈŸßGy¨ƒp?€}ð’é¤ïõ#FQG<Ókrvjy™^»È¸Eýyýû¼ã.ÍÏèÚ6lÂtìÏ,¦Q§²M‰H—ŒEÿ’Ôîó‘íyT Ò[¦ö}°™‚ü£¢þHŸIÿÝõt×)_Ð2„¢=¬U•^K%ú™»yÞ¿ç_6›«<ÃËb!ï•Ó[6#ŸÝ‘Sñ›ÂZ$È×÷1¿¶2Îé_âÌ¯Í ãQ [³wñGô,—ù>飜'Ch0ƒ¬òíÃýÚæñêpÈ4üYi! ;ÁxNge0à"èw#áùÖc!ˆÌáÜÅY†þ¡%3O7o`~² «\üê)ÙÇ,þQpù³Øè\ð…tÿo› ñ÷Fm ~ÿq™Ø}hNbƒŽüYgó糟à?ž£@[Ên}ðþäHÇñJ„¦é¸¦Ý3®IÝÒmPÄãÜÁšx°ܵê0e-ñ‰X½¸÷düÀïd yÐ_ÅÅîg…ÿð¦ÿnI."ãž\ÙY®¹%*µt|ÞOyŸŽO´¼þã-(×Tžõ:žõD×gÅ=°[Æ_=Çh&ðy¨Y"ÿˆ;¾«µ{šÿ±›Ø´:6σ.Xëù~d*ô¼ÁÎŽR/‰ž‘?‡x.WŒ2#UEøuj<|ÔeYɈ»Ç›{S?xÂ~OÏ«B° ³Ñ å ˜?xÿ‘Û5ꄃ>Ž'F'Þ„Çð;¥¹¦Þj§¹O톗™JÕÈoìJæª膪 bô›•4X†}j9­ñ\ÐõüaÿlòÑ<Å‘ŠÞ>Ì9÷B¿»(õƒ¥íÃÌÿØ6ÌŠƒ uhS3®VXêÏÈîåÚô/IA^t×lƒÿõÇeUøóÌÔ(G¾0‡¾W/Ñ <‡èfu BÏc{Ëuæßf€óÉÅ},iÎt¯—_¿fÄ À‡š5¬ÉærÑÅL¨ªÑµ$?Y‘'õƒé\[íÃv|Wdìýq¼Ügk$UüiðѨ¼g¶d~m ÷õ }¯ˆEdVœ·á©Z ÚPÞô­˜úÑÔ*-ìþ*4’uÅ·µªÁÒx °ÎmÕ¿ºÏÛ¬c7|™ômƒ“tþD»9OÎ<²²rµ•ÐõeYk;iŽv-­ëŽë]Ý5Öö¢þ£Š=}ñjë6ˆiÕd¹u9AŤï·ÿ‹§%ÿ˜á¾3ïé¼o¸?û¾mØú&=øUyøóûzeV9¢¥2&žÆã ^éûælÔ“A®²Ñ+¶1 ûlè=¦à?ŽÊä2¾üj$2Ôwí³õƒEÌùÄ Î,ìOb.<ï-}ƒlHNrX¦ç©!ÚEhÅhz =3õç[@Xúc¹.‚_Í…Á=$V?ì{ÉLö9*G‹ˆÔÜûWEiЗ8Øõíæ6¡ëœÌØÐ›XÄW°ÓE`T"›ÏåÄôßݬ•;àÚspÜþœòExàöÄ=cÀb²×B¿«“)¯&:Ž.ÿ1›üÃá§ûÀr\…ÍŒ¯+‰}JK$¾äè9X),PÀ¢2³~/Œƒ³Z믿•YÉ&bÏ÷ƒ^EF1Õ \w´¶¢rÆÅäa;¸úçìñ-üytZG”3DO¥Ó׿ü +Æo§a7IÕ~3’¬$¢XÓ©SË…­ï‚'ˆí*ÈÞ2zâü}ƒ[ÉwÈÜ£Ù`^™Á¯P?.¥?þñŒ©ÍTDó“QP93«æ½ï2çq–¼Í«Ô&…|wgåX¦ì`üûa7¯±Ú*<ønø…\tJ?I|ZžL!‡Uý®£¿Š‰5M‡øwÊ™ÿÒø¶™—¸µ&õ+øÓŸ§1…%©ÁW¦¡7õ±¢Ñ¯ï9ìIUë(Sz•‰J@?ªó¼Ð²Ö`þà‚`§û­Ñ?ý”(¿(yÅ0åL,_aí†=ˆŒ=]i—q¥sUuùPÁ^–ÿ‘jÀÔ“e|ï<5ˈI~]ƒ­÷^LÄo¿Áçwæ*6šÔ~k Öjò‹p™ñíä##©?ßÃ_ ¾û"Þê5÷`9šåÀ÷¹%Uhí8¿“Yoˆ^Qé#›Q#¹ÜþÀ½ûúóÅxßÄð —¨ìî ãfe7S=ñ'ÁÚ~UuÌñî‡\I?jÄàŽøñ–µ¶VšsÄpªKŠ€+åƒÿXi¤[ËfÐ&áÊFýà:h m/ˆLÀ0m"ÿè!SÒ¯âÛ‚ïµã™FŸÿÛÚ zQÇÊ„U? ë¡Á¡Œ±¯Øƒð$+`ùûRÍïEuüYüG9ªD·â?¢ž•KÜþc‘~Kœ“Ëͬ7‘^)»­l®/(‰ÛQ)Жy ¼òwÝ´S>AÕrÕ#Ãéim´.“û«9e?f’™vúíþ¯þN©Ï â?®ƒí‡×Ñ"¬ß¬à·uÔºUáϵti“–ØGÿ’GÆkj|ÂúÁP¿¾ë08€×ÖÑYŸ àë†ëëêSËx(îS¹Ÿg¨ „øbð«̯Í>ÝŒE…oiæán£^*WË”œ†î!:2„XÀýég­¾žO [9ŽM¢S;Óf㟿šIN2›èÞƒK¿¡ŠˆÿXoœå99Q‰ÚNÁ"T圗Æ:­fåÖæXÒ蔾Сsš ŽA¸·äƒ%Új椿C§ìäW@ÒVÃ!ÕÆÊy♊«WÆ~ " 5X´Ôáú¹F>2•žìÄ?’ ýUìôk"ðœÔ¨½d•3Øù£õç ˆìsÉTú û úá:m¼~RV7¹Gàwóq§š²2¹‚S0»‘ÞáìÁ‡œ ïzC.ò”úD"4Dì B¯å;"òSøDn\gf²¥|嶨(txÙ_@r&³§N#>8÷#](þc|[tyþc:Ün*ì};¼ÑïàEcÙUlfRìãr?õŠ5ß±žœbwäþcwÐ åã¡Æp´}­ð?Aø+’[6Ã^—¡V$+=sbÓ#/õƒT‰íÇ–ÆBG»_åÏŸfÙ-Äé~eÄá~Í {Øò™hÊnRé-¬ØÔNÌ%_LW½öôQ?9/­)F¶ðˆú<ºÿ =‚R;[½küJŒâ&—›kúýÇì…‰Îi-ú«ô.§~ð$óDò…™ JŽþÜc#r£z0¯EÉãZ‡"ÿXÎ]=qfŽtíJÊ._k§Œ·ò5:`Ê;¸¾jDIÈל>~ÏDqñ‚jŠ©¼Yžü¶nÄ ±¨£Qä"ÿ±‚þ%‘åq8£yØ­døˆAx4[hzê€Ý, Rˆ÷±oðX«Yg:'i žÿ²¸ô7ÿ1Ùø]:Ú²èÔn)ö'Z~µœža\mò«41y}¢{ªæá/¢gM®üÇ5ã“,×-N<¾–Äé;–|@Â=Of6Æv+.YòRøUDÛEQ>ù«·0 Nw…—úŠ`÷ð‘Q“»|þ«»Öfø¼àWË©Ó{ʼœtüj|šZô¢äaȵғ‡D‘ÖÜâ>…Cé™Gy *Zµ™F»Ðô¦Ë°rUÇW¬"C0à?SU‘™üã*;ý„ºé3è)è¹n‹Ž‡?ÄPßÒ­Þ( HwÉD+?XØ]»;š)&£¿ŠIÍpQ&L§ƒõÎúv±ü*ŠœFR÷óŒÈÂ¥Œâ<·ù2väw39ohmý(ó£jÓÓdùGu&*ôþiE¥WÕ³ g²êðÏ’X‘A7~Àx8s¸¿H&Ýý&‰ˆä\§Ð_)ÑÔAP˜íD˜ûáfÁ¶ÞbÕgĈ%°³o¨P/„{Í Ð_m¡kXB”0µˆÃ˱£Dp Sàõ pÊNðUXiüÇn|AæpõWMŒ¬Ðž f»K%ÎÍÿ¿gΪó†$þ$Vü2ùGj³üyXýÛWâ?öËêÖøgì¼ÃG4"._~õ t¿µjŒºŠ¯[޽c¿“üŸd²PçGÝÁâ%c(¡ö<…é¼™U¸ÖÓÜÉ3Ì”-*ž¢UÎ5Åÿõ%j°™#o¡JŠÿ˜B¿ƒ˜ò,ýKœž½ñAÞ{“] @Ï;@U…çiÇLŠÿ˜M?òç\½3-n!ß_DNà+.êÝ–þ:;ƒPŸ÷pöCÃ:bßs( wšÕ@³túînEszŸÊŠ}Ô^—¹oŽeq¡Ôê­žƒ9½f¢Y—Oú¦qO–Á_•Çw,C¼€hc쮲© h[÷£j:jßåwÕ"ÿX@6“väÕST|,ÌÓ U^Îo ÁÚ›I°¶óU{µ%ê*øó 6Sé&XiW×Lk‰jOo­§dqѱÎïñ{ðÎÓÍ*¢_°î½Š—ô' X¨fƒ†­¢z¡ÙÀ;•Ô5né 8ÁêMÿ«8ö[—ÒØûËä‘-4µ Ïî^¯&þ£"žm,ÑDc¿¬tˆˆBÿÄI¶IÝÜøó° ÉÓ}0¾¸'Ó5¶+Ì¥ûÊi¼sUÜ\à~‰=ôýFT<àU0Ìl–/9rc|Sbúª·§^p¸ÕÛþÀ”X/þ?3|÷:<‚ó‰lû‹ wŒúbô;ú¶à}í˜x% ‘ã †ó¦ÜiÖ¢ãz9úìN°3ÙÑé«õ•ë­..“k ÐͽZæôVCî¡–&Øèñ þc¾þ üj™ñJr™ˆéóíñL»@öâIþÒÀ%"ås™ä?¨žøÝÌ;Yk]#O_+·ñt룆Ìú¯äÉÐ_V5¿Ðòè¡Õj}»sÿô÷cú—D À¯šŠÛzmîö:-#ê«iÆ}ã-U%ß—]íÑ 1Q&!/¸.KSáz¥®új± %„.?&áÿi7!¿WÐ(å›$Ó`F› épZÿ±^67{˰ª¹Íö!:Â…\áÛçñÐ&§ã°¦Î\ðb° ÍÔ<ØÑGb#qÙ1bÖû23úîžrZ„ü‡¯qS”ÃZEÅoì'ʯ¿œX•ŽvÄÕ_°¢O`¢="†{Í«éuL ´FoÈv²¯íàiÔ¸qÕ…U,kiÔ1oåoÄ÷]ÌŒáöOìÄ};‰ýmK¼ëôžîÅÿR¢Ô,«j¹¾g¿»Xɱ»×AkÒÃþ¥ÔCëvèÜ=/m²~@%šŸÁŽ®Á£hdàzšÝV`Vi{õoäVæƒç¸‚¾Ï|–¯F`lúí)hÚ#ú·¿ƒ?Ï€çbÞ#>);öZÐ6.vg3(êsò ¼Y“È>z7¸à?"å¥ ÅŒ†Qv†!ÿ òÍämp^øŒáØ9¡P5iRO1 ëžxÏg^i88Ö^ñB‰TŽ6†Énh“³ªãø…ªì¨3ž«ŠZ ~•†wÿ"~~´¡Eиn!SÔœÌÀW]VOÕù£ìâI?3œ™Ä#É׃^-SãȇÀUÄE»4lg‡•ÆÞÇüÚª£õþ#V4¼…†† 'èbýÕ3£x‰SIŸD¬'9é u{µþ¼?ö¹|mð«Õª=d?ƒ¯ÇÁ:'%ÿ8®Žð\š‡x[ö‰yä}9uMÀ×6™aã}ÐFmT½™§N§Ûx®!Ö¯ô¿ÊmŸ£.§º„Ã|7qöº »ÜW\CK­WE8—§Ð‚;VM.–­Ðïöƒþ‰º‡¹ÔŸß´ÒÚq©ú«ý÷³°Ó¡,î ;•™<$«ç7»Ja}Ÿ‘Œ‰W‰íÚXûÍU¢ZºØùvðåƒè_ò õî^þ?7u'ìëô¿þÊ™`• ²¿£á’¼eþ sìx÷;›/ñ ÍòV4øsêáÛg™mžî%ÅQa¥ ß|Ij Û¡LHbU¡ËÛÐhgêÍm¹Ùxé~â™\†÷˜Í-‡~7ŸË¦þ£ªß´öH¼cS—)‹+5õçMU5&­û1‡ñ¬uþc\Å;ô#lFéí¾âÿÞIõyz nõb¹Ÿã÷í"* dZmQ—z\Gí¶G«û±üê ýK"ÒË#ð7žÑŠt›ˆMÏ‰ÜæZYÌÕ'ã§}e):ç'1¿³{Uð«țÏKÌÐúV2½~Y÷“­Í!péI©h!Î?üÿÞh5ô&b1™æql_IlgGµìý¡ØB\¶ »ã'3 ¯Età ´°×½n\mÌq°¾¾äè2rTÌé_r ‹ü‹žNòµ<‰G ‰Šÿ}Õ#Ú æŸÔ <ò†ß_Äymk®À€½÷;+Û—“ZÑ<. 8Žû¶þ£™¹ý¥â¡8`¥|XÙ‡D@{¨‘§²P=âyÉHú³¿o+à++´…º¿s›Ûv§~±#ØÊ:f.>ǃÿNÿÙä3+É>v¢ëºu>AïºWFhs€ßjŒ÷Xü¼“ÕÈY_ÕÅ7<À6¬3‹é‰Ig¢9› OÕ’Œ'+ÚüóÚ#Ÿ|ÉN¼U]ÞóódHMX3Ý¡*X'v¥ÇøíÇt«ŸGŽäƒéØ)üõÀn]ühôWƒx~Yà"¼‰ÞWËážÎÑf‚?¿N^^¡×uø8üùrøŸ;Øç¯²ÝßæGI 6užÓŸkþã–9¬)©å£þ n|åÔœ€«ï` k4Þ#øÕuÔM½ñµÍGúÄ`§û…ñ+«ù™éÉSÆ€_1ïÀø`-cQ§·ÃÎI¿ŒÊ®áø“nôßõÃúFƒ xÀŸ_³+bÚó ± .Þì±-Vw‹I¥ øUKf)­è®åva˜êgD÷cÔfZøá£Àì¯{AÎÐMùÊÀ¬u5U]@汫 x·|òôÀ·uÇç¡úNúïÆ æÜ¢®¤8Î^ê¾SÁ›wr´Ö.®¨®Šez¹Oáú_e!vzFß"ÖÐŒ¶hÅ+1?ªs>zQžÍu‹î“/ñOãèî{†û9ü*!wưæ’;þ! ñèÛ´}Ì{JÇ©ë‹ÿxEOÎ!Ìÿ¨DbXÛÖ#ôaué:òŒ.ó­­<ö@»žuÒJa•$__N&›Š÷ñŠÜèögõ»ä3K°«yï[ÈÁôOLä ïdØEX뻾ë½+;=MÛÃT.¦–aÝyÖìÅY´ ˆRReò ºoÀÿÇRcõû»O–Áü(ËýÙ÷ýÚÇÚt&2M3*ÁußÓK²Ê.­”1“X‡Œóäß§¿:@w¼Žò%}Ÿn{w_±(ýÄ::)?az4#ŒÈ>3©ÈGâ)~àmò5e扗å;²=óÂu³VýÇG­²žAt#¢õÆÆ”$¾oÃÛ\†*€ÑøÃ0ͧe"òÓI²ž˜­í16Š–ø§þc.¬JuŠÑíyx¶DáÙ‰›Ë3D¥Â}6{µùô£O†oxн;D3+€-_ˆ-Dã‡Å/ª–€5!Èlž5ÂÓ_ 2r¡®jNd¿–0àŠs‰'ÇÞe®®ç _ćDB”È|$Ÿ9ŒJ»Ü¥ÍbþG u4íW>Ö¾OäM2|.þæXâêô8»Ì^V¡ßýEDWï‹>u~e0¶#2ªÓKíÖß—[FÿÝ$ø¢X­òàW7áZóTR’tÍÚˆ7ÉEÿŽÙè¯î’á,áY͆#éC ±†ùGC,9þ‰ˆO3ãqœùµ÷¹Ò xôõê¶JM7¤íL™(a ÿÈ•egjÐöVðëë™_Û3H·¾¿ŽÃZV¬(ñø0ì¤3{v Öòöu¢uÙZa}¡ÇeüG!jôFñ|Šƒ„#Ÿé¦  žû€Î2è]¢?Öê!§-'8Ñï`€gÕPÿIXóŽØ¬L®Ë¶‡«¹uYÕ¨ÿÈEÉ>h©vÇá Õmƒ­·[LáT¼%²èFçm^ þ£µ-›À¯áÙÊÐ;q#l÷ üÊ'ø”¦0ò͹—OÑ $´Fª½ò³{{õµRz5¼Ñ$îtküe]ú_Õ&ÞnÃdÀ©i÷¢?ˆ>öŠÞ¦¨ÃQG^„XáøóÈpJ‰U)0»©îõ Ðÿ*>Okf·TC…Ø+œ˜|£¬5ˆJBXæÙ>À?í™Ò©¯0­Tìà=z¼KôT/,»¯WèÇD,N}CÀé üA-Ëtõ¦Î¼¹úÃvul~fø«V_«óÏ›ƒ æ'ÿøHÔY‡÷±=oà^·ÿX¢ßï×j"©Mü®ÉT“®ß©tYJVyÝîC'™»Ôd†ïߦÒQ¥2ƒ}O´ü8õÇärª{²/d’»ÜWüßû ó?õWŸ´LaNooO/ñ©™÷QRT‚ÿ¨ÎÝÞ¦å3ã?|ŒÓzRý`x ûþ>úUõ‹ÝŒlŽOŒVäI[Å"&Ý ™8íá~žÁ~0ŒOâŸeºÎÄsª WшX~Ÿ>AÖGÕU§Fþ˜‡…±HÀ—?kõèŸX 8ûëW_M!о#QWí Sp–þ0 ¯¶""¥/þÃtEÁ/'ö–Dq%‰¼GïôO¾.@œîáçBª:ÿ¾OOm t#î´™˜¿ “O¢ÊDúû¿o+à+G˜0¶BæÇ6ÏG æ‹J ÑX=Ö(þŸÜì„ÿpê?â_¶Ã+9]G0 ê•ZE»?õïäq3*ÈY<Ø úÕ¸ºvܼþêÖ¾Ý,Fò¾ÅdÄ¿}$+8Šÿئ6tyÙ̈ ú[~OÙ=]&¡v K£øéTXã1h‚_SÛæ‹-ÿ“½·"^X*žü­â8üGçþ܇¼¢´:o[@–¶†x<9lêJfaÔÃça~Ô>¾ÿ¥VOòy°×e§ ÖꯛùŒ\«>¿3ûùƒë‰íBõžzFoë(©®8œ<ìDºUÁb€`= ›É5¬t üðk}|°'ýÊè†Ã^"…Iôo^¡r‘ŒÜ†'òÍíϹ;¬6Y³¬F g©™>žþ% éµÑ:¯æùã×+‘\åÏ!2žyÁæG9ý¯ÚÀÌL#ÚéF-`~¦dÆ÷¡¦»&]ͽ™ÛñÀʆ~w¹Ý’8ü>Õ%¹—?€ÛÅ£{vªÛó™ ݧ0ý¯Š‚ì» ÕÈ|#<ÍÞªýK2Ú+©’ïEý‡'ýÛŸS•8otØzHÎÛÊÍ}ÖY÷¡9Zæ ^ìۂϵ=ÂE͑ß/W å<ó;jÓo·.L¦#>µÇÑ»d5¢ý­JÔò×±,hu†®ÚEd«±@z»ýÇ4æR<•žÄK8s[ä²™›tfÎ󈊯ˆšxÆu ÿÑÚ^¬²»ÊÉŒfnïq²óMòQfu²«¼òûžoWó¿û;ºŒ!î;óÊÿ4ÿxÿH _^^!Ÿ/Æš[µêàWËèß~þW!+¬þyß¾ô#ªGÔíÄ݆يz}Ý_¬’YˆqÓŠÌâÿy ßnÄB7÷§Œ‰]hf~UáÏ‚_Õdþ 'Y‰ÅüÁ–îûô'C~,Áæ NÀ÷ÑAǤ¼`WŸˆÙÄÎ 8Š"ãY@ 1'ä‡òù*c•h^r)v3ñÓÏdþ£QæUNÛsùˆ?Ýeápw¸@›G?–ÔœÒ/fròÿfx¦œ02…òø› 4K™Žø ˆV)s¯‘6œ뢿ÚÇ=« ßs?ECz"üäd¹A›€kåO2µˆ¯_’ïD´0|géµýîsr¢Áø‰0Ù°Áðï@“Å\œŒï\Éo݇ݣ•|bÜå¾=×"‰«òš™M@ ¼[GòFÜ«ãfjЧ;¢ú+ÐâëAÔûvÊŽ*j^ ÅlÐöéå+r¶XñØì£wþcvé YR$,üM¬û%ðp¥Ç Á{4fÿ›…Ë8b‡3Œ_eSp¿”pÝC±•§ðáðà;©vHJÍÁ,{ž•ÐÚ¯Š3¿v5=¨â¨tj$~dñökžôÀÏ%–ˆDMè8ÿ¢qñò˱衞²§éÌõ¤ÿî|[ +@ŘڴpñGPwR%¹~—\o+ÄÐÿ‘\¥PýÀ¸|Í[Ì?_B%_V«'Ö/3ó&ª»˜Œ‹x<}æ‹Rÿ1 =×Á=DåEp,õªX‚bÙþÕ’-Í“j5HScÖËb} OÈCUÅA{ÖxýÛÏRÓ‚zñëì~;š©éjkþ¼¶VQoÍSœˆÅoˆ/ì&ã˜ý±é½íÏVQ¼î*4I÷ð_щõ³Z׈ùkY;Xo&þã§¼¥RæŸî'’^¿eD'ްÕP3³õÐü] 4«°òéìhœÚñÑpz¢< >q¨µÔÞ [vdeá>:³T˜™_;ÂýD^R?˜œèëÞÓÃêqétëžý3xZ}«{ô/>‡IõòãGêXs­<äï8§¥áášqºýÇpyÖ™²½ÈÕ“Çü²T†hõ ókëêç°fuM/柒_ewÑ B+¾eºÍ£*®%àßàk©éÔŸ_„SŸ‡õªcNçDíþArxa_ífc—øÌE©ÍþÃÑzÖ$¶þÿ+øÕi·¤c.3Ø‚ô k½åÚ¹Ýs1ôi°£•áy3‚³ä7”£Šøìdó=µ ó‰×ïáéw[Ù9¥uù·ûÈ4ÒÁÆNGŤEßø1€??ŒßÌgêèq‹$zXkúhÓàÏÓÀl5‡‘W•6ã¡×á§«a画©ì…mÞK6Œßu™œ¢ß/Çüó¡\î-,¾¯¼ÍõœE °–»TˆüÙ¶›œ9’l"¾ÍÁÏÄfç)¸‹o¤7*¬¿/·jS>@Y5„œ%¦º€ÇéOõïDvÔB,"ú™t¸}OÔ>[> Ó•ß»]DùÛ„’1ÌlÏî“â<ÁNÖ’—z“û­ â:1ÕóÁ¯RRŸ‘ þãxýGv=¦e˜ÓWÁ­½¦ùï <ÐÕ6 ÿ8†(¦eQ;1~(žÖckš-PÕ§'Ö²BÊZñ x‡òĦ19Øé~m4ÁÇŽf àí7c S…8Åok&wg b ׺J5!z>û&ùÍ´+é¼ÜÃù‹á z÷Pׯî?67RS7‘€;@€ü©„¨J§Ûcö$km@ÿvÍêĵ¶gwþ`X)ÀžŽËÀÑf¨xš¢|žÿ(Ío- ká?þD•þ»žÌgzle¦^|5ÌÂ,ë6=>êàé‚í¥"›+GƘ.ˆ~7—~аÉJž˜ÖQô½ÌEª&UxÅmêGjØ‘èn;Ž©~‘`h¼í}h½ ŒÎ̳wqýð«^îû'ô "g­21ƵYÎ6Ç¢ hFÍe/¦²:ÀÌ÷´ ÁŸ›ôÓª`·¦›ï*«¶ÕXà„µˆDj35â\ÿ¡aé¼ÁCgcUšÉõtd¹`OLJ°&PyYÔîâ:âJ #•Ó R»&ÑŸq9ÙÉSrøcr7oIFÔÐ%ÿýnr¼Ç0÷Ñôüÿqÿ]mó£Ö¥D.q3 ÿ¸¢5¥ŸÉ^þ"« ©Pùû;ô+·˜n]fJ‡ó|%û‰ÇF}!ùÇ:Yþ#þÃé°ñÿrÑÿ!Ycjž])S¢§(Dµü9ÙÜÜÎüÁü /Í"è?üAg3Šá'|@™Š`婢n”0-¹›¼‘ˆù±¬H„?Mf“"°Á]ÆiÑÕâ’wøð§ XBa÷åø~ækôDÉŽÞȧtŽ,î5?¿ZO=KüQ,«£òOÞ|ÁJ‹©Ú Êjh]?ìlJó@¸ùÇ£6Ö¾:(Í ¡Œä ʼnƒ£Á¤'²x`DZ³ûèÏô^ž¥õdaìr6oÈlàs°çÇð7‰Éàšƒ­Õ·jeÎ!ÿxH^²üj?Ù×a|èŸfyí¢ä£–HøË§Dø{ñ·GÍä\uñçøÊY¦yÍ1­íÄô™ÕhÖn‡íˆGÊ„ØàÝ¡øUôÑÏ*¾s¨ŒŽG¾ÐÏ0 ýîp¬Ñ"ø‚°ßŽ>Ö©'‹ƒ?XŒŸëÂýøîl©K!žô£3þcÞmYPauäͽß@3,Z°ÎÎü¨DÌ‘‰ Çaë·cOMfö¤ûkáôâ‹,ȳ,ÆüØ!pNíÆüÇ[*ú†ZÇA3^¡#º‚EneÝa>Hb…XôภšT?ŬòrVŒM >‹\/.<ÄR~ï!*6V²¬¢ƒT{ôW\ïíJp¸{Ñsy¡º*«°Žî¶§ùÿs\I†j÷Ûb ìg„Ã0%Ù/«bI7È"PƒÖjš¶Øø( k:¢­œˆ‚ê 6z>çéì¨@*J¢àAzÈá>›-šnIg‡!¦§êA×XÎ5h†M¸ô½dw­¤-®‡rûΑ1œ–Q”3Õ­(èÚo(¸êP[¾‡š¿×LûEijÃù$ÿpæ'öFÿúý] CÑïÎ×¶Ä;³2ñõHÞF?î:Ú<ò*Giú†3š9™ý´P½du¥ÖsG7âAFðçý¯B²{ëŒA²'ùc)ò‰Óª­!ùjz)¾ÃB/¡æm?XÌk¢ûZT¡WP:}D&`ÿ®À(g Îutˆ{øÕø‚qêµ]d4 ˆXnS?ÅJE®Ñ>IÓ`SW±K5¹_*U¥—†å_ jqN¥1+ØŠŒf ˜×‰\K —¢VÀxŸ¥üðµnÔB¤rEq5wÍoê€é.''/ž*>þä¾f¹O ¶Þ1ы߼Kéj7uÙ÷P™µËOÁüÁ¹Ìå;j½'§Qþ„<¬Ö%4bI,¼ùAô»Õ´üÇtÎok¸’t¨k§=ΖôE²$«€ÌµÆ®B¦p‹:Ž:ì´%Jéh¢«±rs¾ûÌäÒ·‰¦ü9Y¹-ºwŠf]•yµìE̯ífGsí¦gýg;óg‚$ǯ¸¬ô\I ºËÜ7Êü²‡ûz£ê[Dl¢ÐÒÄeÏÕ5¬Ç8úï‚3š†Nà ”ís^:À£ù¿FåÔ¯â?éïÄs¢Ï#ØæË‘Vj²¿íÔÏDfŠH»1ÝÈ^¹âѹ†]He£Òdµ=ÜîïÝ%éÃÉ/CÜS[žp_ñïƒD̯ <«7™ÕXÇó}»x¦Ñßè‹ü¢–¸¡;s%Öã?Vƒ`=6럴ïó˵ÙFcêàRQMQÊ\$Ò‹±èÄ|˜U[~¦½’ÞäŠà»jÄà‰/–¹ˆÇÑk¤¿,¦_Ð}èq÷F^—µˆ;†P”ÿùÀÏžác]ÂQó&ú,‹Íï†ÞdYñ@¼Àa΀Ÿl„WZ!‰Pþ±ÄØ/úa1ã`cvó§ü@2ÙéXˆvTzß‚½Hzâ"* ¿ÃÊJú'î dØLÇ´„Q‰Gü½̺YîMôùãÍÒË\OŽò.Ü*šñF~*ýÚáuþíy@ýËÃç&.w&Hjgø»KÖTnÝ’©™Ux·‚~ä‡þꬆ½_Gþq®;&žÍéÃÔ€ø»-±\õûïÉ÷7Ó¿â56z.ïîc#´šÖûZ|qMÆÂö¾„9/B–”\,w0‡l'¢ÒÛc qýžy?žUjêøÓ˜SC­ÿ˜©m6¢ÊÈôÁž cƒgÑœ¸n¨’ÃÊÜó`Ý+àÿ·¸êÄê yÌbëI1:GÃk¡þüw2ÂÝLœ=A-|«!Ï9]Ê5Èå CÓ mZ?rO–“;­ÀC] I¢ÿÕ ñ+¨æc°Ìêx££æeuÀšOÜyøž®Mø[àL+‰æ—cŸ³V-Nã²­Kô˜ZNÿÄäîýUÐòé•Í‚°W÷̦ø«úÔŒc>ÖxzѶGå~ îû1=s¢¾Ë„¥6Ö&ÖóRñ#•aˆ~ 2¿65ó?žƒü½Cý‘Ë:aN]Éã¤ýÊîÄ|ÙŠôû2]Gìí°èÙèð¸’ÊœôÄ÷ÿ¸³ÏâÚ¾þÌ™3gæÅÝÝÝÝŠ{¡§¸+-(…ww‡ E$¸w n!¸Kpÿ~“ûç4¹ ýž{oyî% pÞ3gf¶¬µöÞ ¬209Ék^Ó¿½ŒìéÞ“* ‡ÃhÎ3wK9ñíOäXõñ?+©s9į5hnÃÜ'wk`÷e È!²¬NTi•|äɘ-÷»ù̺'Wð†®+î+»[É\šËÊÆ»ÌÚêg×C|Œ‰ eè?MwuäúçáŸJ?‡ÿèÍSÛA}/ÃkÈÃ=’ÿ‘oo€:…dfa®¢²(‘mãóÏßé~øÔãå´ýµrâì‡eGµ%²áÏO¡¿Ž.*lB{ó¶QÖðAiüÛ̲Ïj|/Bž·÷âõcÁçcŸŠÉ6ô#x ?ñ=*¬ÊæÀhöO|FÉ„Æ0°•+äÃMÁ—ú¶5/û¸ÿwÁGÎÉ® 3;Ñ_…hÐÃm'Ô·ÛÄk£?±i>êàüx":cC+°ÇeTþ þOR8·0?ÅÜÏp¨Â|¹OÛ,½ñ’µéœQKÝwÙ8ûç…gjD¬ÞˆjÇrØÅ·æ¶(»PnUá"€ ‡É@WÄ)Ú«\Dtoñ;°BÛYu~NÄ”AÛO‡ØSò•YäU%ÑsuCŲ„þ%.ÕÛœH7K{õÎÞÇüV>‰°~ðŽÛ ÿ(Ã;YÖ•¼¨:°3àL÷Ì4r‘ËZŒõϢƓ= €?OlÞC·5t˜# þf.Ý|³°ZC,ÛzQÃçv»eUꂱ€;•úó¥(No€7;Ù‡S>_w߸õ·žõÞb‚tzþVÅç@mtŒlÏÓ,xFñí0¤¯@4‚ÈÊ¡8­ÃõgÃsu‚ñ~ƒ'í/—†»Óɘ¸]û×´Œm,þ×Q—&%Ç~µÒ’ø§š¢5“W§‚V‚y@œ?[uãJˆaVtãðFgQ9À'LVÍcôß=O~‘Ó&lU,ú·ÿЇë'ðeX<2Ÿ˜° ‡¹GsÌ"᦭ӿ智c±”ÿ®zWû.&>ÜÀö`^`¬Âµ‚þ»¯ñÃá+ž’m=ó¯–ʾßõQö1Â<ÝÙô¿:'GXoѬ¥e~ílú«¬‡Y¨½ž>ÔݺÃÜÌòÆN$_زÚFÅ5C¸Ç¢ú)Qüí6xbzð«ßŒfÕÓNFÿÝ•V#êÙKƒ_†OÏH=á2¬~<êߘÌco Q“­¿ ì4b’í?÷GíÐÌô€±˜H׫Yv^4\˜Ö;”Þð¶ÓÇ·S¢p(e}Gô¶Ÿçêúš=Òßí?ö‚_½’«xSs²åR¦á:Ç£ {cÍb¥ö&\U¡«–¯*Ó²Á^‡wyÌ¿¸+w±‹ú0>)ÿ'ó?22}0$W¾ 6RÇó÷·ìßýäþ㩾‡þ» ™_›Ÿ§uƒ–üj½ Ã¬Ê×M7Y£-°ÐÜ^—µÍ5FqæÍÒ½Œ}²Ñ×¢¬(æ}øw;sþ,¶pa_ÖËb¨f–0`–l¦?Ò—Ë.L`¹,óƒm4¦~W×+ê¯D?ìÇÞçÊD\è÷ÓªÖ¡Üÿ‹Ø”´ØÄ;Ì,ègÌŒj[ü¹£¿jŽmIʳµk\˜x§öjüGWØóS Fiá0^ȱѨ?÷ÓÓí:C<æ§&Çð$_茭cr&: @³X÷'Ù â{ó–HÅ)®ŰÈ5‰µ.`±r›ãÉŠ¢Ó,ŽÝ)¬>âOv  6q/Êeä‰"Yó‚¶Hÿ +Á‘o‚Y>GîFÏDVöÅ*¾ÀÆOÁÎÞæÓfâ;wà­‚d-«Òðѽs¬'àÏÈø h7ñ–›°ä…ø=?ç•{Ÿ[¶5$µÃCUõ~¸?Ö2Ya,²=ÿ±P[Mý ®ª! A½t[ó§9ÿ1=VJrŽbðò׉‰Ùc|µìj-ÏÒd0ª×Æýq¸;=Mt%·í fèÅm‡ êÄ5¡¿„E= ÆñˆéÇèß^ÑÚl3ðÉ]aK®¨ô¬ËvktóÑ``æ˜Õ™'â‡éCt1—Úm“Ø} }W1ih3qýQÕ ›={’ƒNV·ÈGF«*h›‰9aîÊ+Ñ‹“¸…îº~kº:nžVûÀÕ–ÓSëg& eawCævŸƒOYÿÑüj-ÝPöð ÇÁYJ„›?èLߌ‹Ç¿BV4KùbWPÓØ˜|æó£æÙåà{΢Áz¥&á .ᥛVR}6VÜCýyn^…ú03#‰4j±»0z=©ÅžAÏûfàW3ÐíÆ‡W¾Æd¿îÖ¯ÄþaΑk®P5¬kœæXr¸‘î;’H?!bó´>'jIgýn.4œÚ™9T}ä¶·P¡1äéþÃve¢ÿînú_ÁµX)Ñ_­¢šò/ufq¢î¯1qR~¢ù»ù„¾!¿š‰ìô®Vð)Í©s©Ä®nQA“‰Œæ ¹[qºÃ7¿Êg5¥¯ó)ráD¬'å·ÿ˜¥¿0žK_"›¹DSå&k¬+„ê<È'¼ùàWþ®vfæGuV%ÉBf ;>j=à:Mþ1МʛÓN®v_ñï‹4tµ ©ÿx¢åŠôíjOwÀ¯’ŠeÔV4žèNuß&-=ÓkçŠÔ$ùÊþíôºß¡¸MÄ$ØÂæ8*;ë?êÞÆZ™ýU £æWÎ?ÿ¤›°¬Kd),ÉTôW}ñõÜ{&IÊ´DÖuŒŸÃ¼a‘]ïfü&6ºcÙÖ`M¿qjCDßÞqë}ÊZƒ"8§fÐ '=wÆÅÚ¯"Ð_Í îŸ¨Ð©z‚æ$ÃÏvàß Ã §Wì-îGnîÌubõûøØø“x¹‰ lSÈŽïë×CÝQçËAâ'ÙŽ¬§4ÿQüÇe0Í¥d#ëÉ?baí×1'¢&v´ü¹¶ô ùâzÕ´æ<þ£¥îNÇ2ÞÀ,‚ßC|ï ~õý• ýî~5‘>IóèµÍ~Š÷ùεjYzR?8E} w¯‹ÉaV|(~cïfN2®õÄíÇÐ_¡¾Â?ÔC̵‚—t¢âôÀN/JðHÞ0ò^p@ǹæF0ëí4I/z|ýŽÿè`g@i¶ÔŽÂ8³íËßÃjL7¬ßÈó_Åâü 4!©yP.qûéúc㶜ƹÞÜh¶§þ<Ÿë þTXŸé_–iôGñÁ…\=í¾ô/©Fþ±Š{uƒÊÝ3ò(+ŽPß«odtº}‡{Lÿ¿¿Í¨/ żвýãú÷ÚrÝ«Eã[ãs°~w-þcyðüÚä{¿j¯§4oQ“ªŒæy0§ÉFB¦VÕ÷ëé_OÆ3Šˆ‚ažß¨!’bßæ‚UöÃ*<0†ÊÊú6øó–TpnF˜ÀlitÖŠ´*zrc8Vn­9«·Ÿî³ÉJã±MçˆH¯€o>”³©@ˆNÿ’KÂ×è„eÈÉ[·ËZ{Xš|ÈX8t,Yð«×²·lå7k»¨ÿȳ|éOøF²‚ÞìÒÿQF¤œZl¾·Û‡U¹#¢š>A|SÛž<æ$™A^P ï±û&èU.lí lâþd/¶ÕÏÌI|ŸX&Ñ#ëlySóÄTƒÃߌg;ÌÌoXi/³úÈn&ß¼Äþ¯d¯;°gø´ÑtKµðêXçn?¦~~ˆø1&°Fü'u›ÿ†ú^FkÊÔbj)Ÿò8Sþ•U½í\{Zg"ߟðÍ9› x¨r¨îR›ó‡$ø¿ÏÚq‡<4$¸ ¬Á"c¡ù³úÓŽÖ.ª/üÂ!fž®tö(Ø•—ðÓèr™>%žµ eˆƒ_ÕuŸßu퀑˜¨®=ÑÙCõ›²ÖŠIï«xô7ÌHg•^ö÷dH¹è¢Ã£t´/Ñu~üycX¾íÔ›~Æ¢”>nÿ1Oi<QÞÂÓ´‘YëôOü`/ãJ‡Ð«¸Jxðç«í®þö UµÀ,{+Þ Â:F†¼?UU)¹íËÿ®MAûåcèþqÿÄëÚoDô›DA£3xpaÖ\ªekÄ.qOÜ?õåC¢õûmš¨KUM2r†vô«JmìÒ»ëË©ÿh+ ÉÌFF‘ýëè,è­Çdikli%,o%ÙPï¡•PBì†o®mÎ ×.²UµTúsQ‹Xæ(1ef,Sk"ênø¤)ÄeyªžÈ†Dâ›å/ƦÈ õóÕð-°E…ˆinR.¬_>,×Äõ Íè²ò³šS‰ÿ33Cýÿ\ÿ±^fÅÊ?ÁvÁÆ%g€=Þ€ý¬D¬ù¥Ô."ðàQMÍËQöOì-âãœ.#‡¸ÞdXĬ NÀrêSò‚Ÿ.ÄâS5ÉîkòI9¤ù7-Ò—.ÕúR?X$ý4^ö"XÓsll5s”é¨CËayÚàñœêôÕôdŒƒ/Yɾ&ÿˆˆ?¿¢­¥T5ðGñõñ_ELÛV 5l"NßÑ_MŸÅ΃5è¨ãágÒF€_×V‰Ë†¤c-Ö4 h\Ø‹aDÁC`¿uÕŠµ‰ççÀg\€åš‡ŸÉª}È zx7KÌGÛ×ÃÌzåÔ€ß'k›O޹‡’ttÓÛkŸ¤£ÅYU/r„üä5=ðVªqXçKª}v<ÂÝéDtì«FWƒýyÁ€ô2ßÑ·SRC²B 'NÏñ½v,ìu+몳ܪ<ÙÂ<ÈrøóYff±8ÌŠOEMt §y꜎_‹Ôs¿º/ó›ÞœNð•\‰]Ý©×xŒ:j¾õ¶;+Ø[røOµ?V†y _î«óûjc&ll”ÎmÔ^þÆð«MÔæSA*¶ï;ò/z(~PÇÀdöÁ¸4W:­^Àà^„Ê?Jk™õ\`¤ xj×5–gäÌÈ»ð=ýw'‚¯}ÆÜ±û“é!‚ˆ|¹\ x¡<¨œúÁœ¦·{{Eè¿û%×Mü}K©¥F}ðÖ.ôo\ÇýÓN¶À.›ª½=(p³áé¤U &,;ëÞ1ëS{R/‡:fÅsÛˆ˜à±JØÞJîhçv"ëÈO¿Ýµhv_¡ä*Ëz ì”®ò0á -G¿û7ÒæI8(o¹ý‡—~‡ücOûVbŒŸdg+ þcUB£áÏý©dŸéºéògMö•ÛU™éT“èXó–|å‚ÜHf]Š·± ßÁ}ÿÁ/²ê#ôTä3ü‡ ó\Dÿ£ßksÐï®ÙŒÆF=7«\ÒÊŠb6ý·ÁŸGÇ–†|Z ýˆPnbïÓª‡ñŒþWËõKÆ*æ¼4î‰ì"ËWí³õƒi˜ÿ‘;ó-o|Ù@Ï!.œoE)•’!•ÈpB>?ò¯žjµ¨ìÍ;¹»ZT§5ÌãD5žhYû‚5¥GûLV7ÆF¾ŒûOvŠcÆÏXa©6(lñØœˆ=‰Í{F<]äÅ"v®/G¹Ã§ÔxƒÇ}‡µË‚ÿhÂS™žœkHY0  óˆÄ§ò“Òôß ™êìÞP˜/6‰:ð5‰ì÷‘e”QªœÛäCß“’¬Á©xôdzdR;a¯ïÈÏFfM†YÂýÍYm‡þ^Ò…Ø}9Ha˜ìñÁÛ©2¾ŽÇ{¯ÔI>c9oÒM”¼ÃðWßÈW"„[u/¦éz:lªÍ>Nó&oÍ/ËÞ¾ϣΘ©äz#Ý—FÓ j÷¤3Þ 5uü©ÉiöG€_yi§E^ùÌÁÚdzèK\7š3ût)¶ÚÆg”ƶ)ƒµY(¶WáåúbƒPkb‰ð*¾¢ƒl‹©~÷(ç~ƒ¿»•Ú²‚ Lëð"ÿ¨€u®Bÿ«%DÌ‚üÃDÇQ§$î -&ÀgÕTÇø{Ô8®“©} ?{é[uŽ"ž½^ú´r”¬Ü›h‡ÎŒUÈ2…ã?t£'Þè86¿4úÝ‘€ë¿ ûU9Y¶ŒòÞÌÕ&âSÁÀÄÞmÁÖ/#ÞÂ^½ðs?ð¥%ÿ@ îÔÅ|""«õû²ñZ"&×ô ϵ~$3ö<šjìªéLå<óΜr…ÿÈÍTƒwÆKME²Ë•Úú,™]½ÇwŒ*¬­«Ç þˆ•ïhŽTŸÝ :›•¿FtÜ/Z‹iaá­³³»@,þ&y‹ †3œÐld±xhòÑ믹\n¼I™IÍýlò“ÈrR ¿ú$ÇDˆ_ ¿zn‘»8zÝ4ðÃð £É?ú€Ýñ³9ŸN()­j‚5«ú^ øRw,ߟœgiõ˜Þ[QçVÄ#'ëÃÜ•G¢ÑøQ|mfr/åÍj»ÁD®€‰ýJÌÛÕÍÕØåE­ `÷Š‹ÂxþÊßä…N¤ª1<Ìz'ŒÅ(6løázøË§èw¯ÀÉL±Žã#,êüJQ—@¶Ÿº†Ò8Ž[%È@üP´=VE¬¥ê´Ìà^¯‚–[¯†òp4Ùr½q0?£‚û·çGo5„9 kÁ‰*Pïýþ£ õšì¦8Y\+*ORYãðu½TíPó£2é›Å+³2ìÃx3—¥©QÆøá:ôÇmKVÔ ÅU9âýýøÌ˜ìð^*-?€ç{ëí oiKÍrHG™ÔÔ¡¹ðxó­ÊG;•þ% ìt®avRz^-¤ò¼1¹Ò%fH¤;ã »2:­–D gˆqÒ-;ŠÙ€?ºËsyôê,ùvc2ª„Ìžßrø¥EÛÇ•’ùµéCÙ^¥G…5Dlõ‘wÏé¿û#j²BTðÿ/ø·Ú`=dÖÙsòOáÞ„è~{MHGôöâ­¸*–êéxîkdÍb=Ý׃ŠíîBÁÏ_[ RËóô.¹,ýe=WýéwxÏXÁôÁ³ÆSQP8Nôÿ+%žƒRí–Éy瀇e#ÿ(&€Ÿì¡¢E–“Ǩ­0£1шˆ¶=,u]¬g¦ÑÕ3ïã‰0“3?ZO£œÑšÿ1Gô1€…bÚá<‘9‰Þƒ„­áKõÇiPÖØ°'a~ÊD¹C]Ç´§·ôäý¬4™®UÈüÑBÖ(¨¡.ƒ_Ic©¢Xq¹hŽÿøäôSÏ ^S‰ý¤æí/³`*<Ó.²…Wø§¼håп=M$k×Öë7e2ðŸeàs»Ñ®e¿u%ƒiÁ;:Õô潊MCTï‹·ÚŽ‡kn–Źnt½¶ñõ"ý¸±ážü«Ìd–5ð?UaƒOŒ<àW½ÉO¦ð†ýʯ˜ø7gþà÷›²ì6ÍW|/ß™y±õ•‰Þ?á;¦qWr_µ¤ÖE°¨ïÈ=V‚ÎnqœËÞÛá©}˜F¾öw¤h ÛsËÁÿ΀»Õ”£x«Žö9ù8ýÛ€\]¥ö¡ꦪp*™ñž±ÎkUajV…;Ãóâ:D2˜µdD­¸&ÉNâ ,¥"ï5~ñì9öØ÷Fô4Y~Udh³G~T‚TacaLäÄor}5‰Ú¦áq=¬Éèw'¢ßÍízŽk&Q}4¨·Ù<üÇU²3OðœßÌ’FŸìœb\é(®?ñÌ qzd¾V‡éXÛ:¢ô€úóÒàuÇÁ¯ö£~J>ÓŽ3éˆ; #ôF5VCä ÷Íè¨ýªwÃ|Ç©ü̉t&ŸžAa_ûÕšnò¾äÛìb~Tkz >CõTTŸëv¡GËv÷@†à…ôBba-µÊLi0×3˜­Ö ½Uú ŒE,]ñ&ÑÛz¢æ=ŽBlþ#Úƒ‡Ô~îÁF|+—¸ïH*æÍÆ!ž(éðŠê–nn³r¡(ìú‘¹$¬‘ð­Ð‡‚?…šmó£ÎZY¬"œ¢/O´N´z^z»óú{üÇtòÙD%«äE«"w±U޼g÷»ÝùWíÔ®¢öA¦Éw±§€_ͰîÃÀÈ ÜBÜ“òˆûÿ{_L¯íâ>™OZVÝt÷u»ø¨ ÐïèMÄSq]LÒs±Ê&-ó?Z‹a—ž{¾j¹³ÚüÇ>sôÉkœõô¾úAfž3&'ÅÓàOˆþ’©ðié:“ ÿ‘’8µ‰å㊠`ÊsÐb½’ ¤Íùw™ŸÆb9BüÆ^Ô§“À‰Œú`BþD¤g¨šß'»Ë´Æìhlp©èhT Óˆà§ðNŸ‡óøvå,Ã,üÇAll"êÏŸÉ.2lÍoD‹Ÿ£â"X£¦ødj ^®+9R/ó*ñþ/°Ã·ÉszcI{€´0Î}úwÿyˆÆx²VdU¼EÁýªœLŒäQÏù3*Ïð:,uº¶4 êÙ#Y3@Û©_–Ñ ÌÅS:ÝP’°ÖœYS|JGÓ‹D^äèš¶ðkŸDg(«c'Ð3¢ß=Ãií‡>Œ,CmJe4)¥Õ;X÷ƒFJ¸åaèX=Èð§QË‘ üJâG¼"ðÞà¥yä[ìi²ø‹ÁàÊ àybë2¨Ãä/-ˆ–Waã¡E:bnâO‡ów~6ýÀ¯Â{¸v¢¬Å3R¼g!þá-s?5l‡UVjÆ¡A= ~õ„yy%‰œÛªœéPà)Øß›²àß”v…g!üêkrªQj*Û™~Ÿ¶ˆ¼á/Ë´{ØI±Ïµà?Vc-ó`ínU=T~–—èdBßgiŒfµctÍ©ˆÎi qñ-ú'n±6ªòV3ЗäLPMáÚÈ4z0ÌWˆéÓ€9]âZ¨d^©Â±…†ЇëxµøØ#æax޵ôªòT-è¯>¤èýÛwÀ”ûQÓÅnpÂãìþ2þc€ê'ϸ·÷½Ö”ú7pç÷ÍÞ¨¹`ÿÉ¿Ðܼy*VLE×Ãd97ÉE  kÊ'Ç+AdóFþæ^/®~þ< éø3à^æUùNuØÑ%î7h¥f ÂJcÏ&ÿøŒ~·5Lnø¨÷\ï^êφÊ?L}¯‘¥Fâ’cê¡ìg®¦ãH[üQ?r…ÃÌÙ=M¯®œ¬šŽzÇèÆ&pJZõȼ·‚Ÿ+öá+Wºý‡Ó¿Dã]_A ´Ò,ß›®å̯=iå°[R?8ÕõÔ•ƒ‰ôõìvª†ë{Š®‘Öðî]r61LzꇲüOú'~ÖÆ2öËQ?EùÒÇìËO£÷û˜ø ú¯"·‘Ò8ÜÃ{—Vþ|¼Ø~7ßß2ü¿ê&m±h ÚðíwqzKå6Æë3ôÆ%ØóÇÆ#ÊÊé°ë§‰Ñ±`ÅØ-“9Ùõ·ôoï@O¬¥¨rÒše£™PÝtS44Wñþué€÷]½>m8óÃN¡¢žä‚)ë!ô°» ýŸxltb­TÁº–  L9U%"›0Ì¿›/¨‚(*#à~«F£ÿî1m)Y[rìî32šûä!ۉʻòÿÎdÜÆêŠÈñðç ÌmðçEd\Å—vyÈ/~ý?Á ©À¯ pÍà… áÆæÝÚŽ'Úö}EÊ]yܰÐÚ}ù×a_® Óýd¢Ô-X ‹ÔÜPMˆwìkÖ Æ–â?>òóYÄöóù}/¼Íf^iÂ.üÝcí™X//QgvÏá…§ÿSŒl¦ô5òZ‹yûsªÕøÏvÜ— è–ãóÉ7"ðèwOj°Ä£@ùâÏõoNWýqdZɽʢ?x ÒsT>Î<0¶vx®ræ_ÆÙ¿=Ý—Åt?R?²û\VíƒC‰Jí º©²Ðü ½Fõ…úÉÊOý`aìwZÐ’ú îÞJ˜þ†TšF<žß)fa8âöê5ŒˆàÕ@¼FÁ[Œµ¬Ùð 'ÉcåcSWþž åˆê –SÃüªJØ9¾„Fw2Ó@¢‰‚T ãŒüè¬~&;£5ÆÞ ¢ÓUÔkM?FòíÐxõþc5×>ì®ûc)gõœü» ~ëˆùNù3å¤. LËpyƒáï³vaýïhö5|rþwtê8u¨¢³¾ûç£þ£;¦^šß¨ýª­<*ÿ¢—Ç6ô»¿ÁÉ÷'Ó’vUøó1ô/ùƒúóÔvm*ÛƒìÅÀcU€I#§¹×{Æ,¡l°"&§s[ô.1ÚÂ`u¥GdjfEõdâ`×yð«®TL¹:ÊÔr›IWAàWÕKîžS“‘XÖw?Õ›µê³£dïc>QÓˆÖFZ]³©¹üÙŽ‰zk'ýKÚØEíÛÔô£blW;k©•Ù*¡¤ÚHÌT€nÿÑU7å%9ß²=J'9 þü:ßË Š˜Ä5N²Ë»¾‰qÛîB¿•è¯êÂη#+¼ ªºM®åݬÀsW†(Ü—þÿâ±6\ÿÓ}2ŽÿÐÜß}݇ßÔFƒ_ý&9ÁøÕJMP2™ô;zª¿½aÿ~õÕäÕèL5l.s‡QÈX¦OÔ×;áσŒ¢˜HþUûtÑÿ: ÏAJâÝaÔ¶dÌ)ýl‚~w…tæ×Ö2œ™WÑøOÏWû±üªÑo?Pœ_èâ=\øQé1YõÕ|ùs´êÏ׊uä¿Cxc¡šz‚\ÂZN¿—d í`} 2Õ)« øûngkÉ­2 >ç3H•Ã|¯&Ûèƒ÷Âs´$®®«ÁÅ/„og‰Ôùïk9?i* ’ µ!ðÁ$¢®êèt±c¥±P6{öY_ [öá3¨nüHµqº§tê€ga›ýAw£ç؎ذ¿9¬àx,YØ2ü¦Ó{Ì?ÁæÞRÿ±GÞÁ¿@¾¶™»š‡Óâ?Šâ¡ŠÊ‰†‹hw®ã¸;¿ã àßâs®o#ðãµ£"‘tÐ=ú}ðož°^WþMFúßð'¾ÜéüÔJ¯SwÔð»Í\Ã<²»?ñ {éŸ*FQð+|Ån’±ÌÀmT§À- ÉéÖÉõµ¨©+¡Iìa>W?É̦'ã•ÁûæÂŸ‚_ë]Õ¾@?”†t3žK³XSø}X{IätP.rûéúu:)Ì"fZþ›lfúÊj¼Ç ÉödZÕÁ¯ÞÁ¯ô²««LÔzSç¸ÿ±Ÿ^kyÛÍU•ûÜWüßûâ31áî'!P+F§ÜöéO´‘àW½DLòzfVñÓ”˜.ÆÐëºà]_µìðè2`Wqaò0Í:›áM¥ãc9þã¢ñR$üJýîMÝ6s˜À°ºÚòøoØÜÆ0Y>DïäÑ쟨éô˜ðÓ°§©Æ>EÿÄõ VÛ¨\ ޲ MD”H3d#DùůkbĦ x¶Ö‘‘æ#ê*eŽÃÞ_Ó¹ Ò ïöAbóåü(ïÍl͇zÈ4XùûØÑ«p4k©VjŸàa~K„ö¬ÈÉ?z:u1“Òm=ò9R[dùêF~µ?‘ ¬µvø8|i-Ÿ@®Ö5mÃN^A'–ܨ¸/’5wÓasƒÌ ¼´é8ñÛ'Ù Æ&ÓŹSw‰ÜiîV;ð;½`Ÿƒ”š_Va?jÖÌ•zFl?•m rdIEÈßËNßÓ…¯ÉXuɬÇê!ýd#ë>ùUyºz ±æÛ«é„•{ïk7#;‚º«¾¸¹B:vUƒ,l†(2QUðÞ¬¥Þµ¤³ÞbM:âß^ZŸá¡WèŒ@9už™'±\ØáJ&@å·‡Yñ¬ °= ¬-äì‹eÞPõ‰èƒ kÒŒèçžo"ó£ŠÐ÷=LG üäò·~(2¤³Õ•üaµ‹n5Íɲwµe%>Ü!=Üþc‰~\e1Ð*<Â/ÒÏÊCÅÌ~«êÝ»L;iawt=½jLý` •ÕÕÈKv²Õzɳ¾K.æé®€ž¥üÿd~Ô;m‰>Àý¾ëh‹þ©þê®6U©ÿ,’2ð!xɵb* ÈqQÏù•ý·h‹¨?¿.ÓüªPá[ÚØ‹Òxµ±YV¡ÉKa‰lî]G`\þö£ ý Ú]™o= ýU_üÇ }1úÝSÔK¤“lc„t(øÛ?õƒTÇ £ŒíFâËbð½x*ú˜—ŒnØü‹ä”AFRÞÏXêßEöåB±Åpæ×æáÞ†=.‡\ º»ÝƒÂ0´I±{ä$¹,Êk^Äü-臋`ã«¶Â§åÆŽŃ”…¾j6#gx*À«ô4™£ÅŠÍE.|bc¼s‚õWÅxþcƒ‡·cªÅ;v¹ÐyŠað΀äÄ1“2#ñM$—ºƒ 1ÛdYüãjžyò…çø±ÄåE™ÕÌìCÄùˆº,³/J”뜰7H”f¼`ŧè¯öȧ0¡—ñâ{ÀºÒc%Ã/eQ·Í’r,þc;6¯¤šAþᨩÒï¼'΋ÿK™¤ò~Ö<3ÞðO<Æ$üÇXÿçœAo¥OaÏ‚±e!ŸÇÊO硜x Ÿ ·Ã>b üV,>Š%o]ðÀËÉn¶ç‚??â 0(mkYMˆ˜Û`YÒ¡¬êZsOÑÿFN w_nŠ@PÑaX ¼ÇDð+jh¨dOaÍSý¬Ûô ‰CTî Vˆœ7qÕùQÆÞ„_KþQücX˜oƒÀN#‡ÉM0 ²ÿ±Ø:lùcÏ{ÀÔpIWe×||[M’'T@¦Ç+üËþ®§YÍ«0^n¬¿zÆ=k#>ßÜÃüó¥XÀ½`^ºk›]›¾´™ìw\m£¦:–µ-G-r™·°%Èz®Ë¬îýUÔòê%9í™à¯uX­ƒÜ&ë¡DM_©áte\†ÿÈJÎqÎR}ùŒ£øg~ÔOx÷œüÞ¦‘RM—J_/îã‰îqOXoÌF³+ü‡ínßdÕ; ýK`»Yu&üù%ôWìøV~¸—T\ÁsõbNGØý—†>1ÍoˆÊZš”Í»¶˜Ž‡Ðÿ®GIüȺÂôÁ~t­zH–4ÁªkC«®J‚¢¾epžìÊøèÆS9Œ§~ïXK´Ê]t¼¢zßE.ô¤³ëxb ú£,¢ÿU7|Ýp¼óüÿžçvœymUüÒ¿ýƒ¶º¼/'óŽÊš<×&Ò?ñW!Œ$ÆMÝén¸Is1}…8*^ñýÎ/­ßjE9T«Ò¼*Kã?’ûõ1ðVgQb_AõžŒ&Z ýß_º¢§C4OÑ Ín9}hüä7e:jzÚ„Ct#[ý=µÄFs3qwGlûUú'nFOôÈèµ;‹È€å¹O·ÜöƆÈ õó¿Äj¼ÑpØŠ  >tLzJ|2&í_ýw߸ŃráýNFyÍS¨ÿØ%3`Ë__Âòφµøÿá…ú§žº"°œ©ØÅ/f)£P+¶%¹¦Î0 PÔ¦* ŠŸ½ øÕS<7HØvtKDZÞEèVU=Rt5\ÛYTbhÕ)Ц7òGPO0µØªŽ9„:„ûxMO|’ùÇ 8ê«æpùVDT“t\;&ƒ_Uâ,‹ÿ ®V•»‡ØË³Ž\hÄ´6€Í”WKð£°)赜‚sMÿDrRy^g)öÇé_2œÌh we(߀¥ŸFÖñôèÞäåÇZˆFk×òÊx£‡ï}ÚWt”CñÞq°å^à†ñ%ãð“gÁ‡’ÁUø3¢Ö¹NÀûX*51y_ô¶U\³íßúïžBU–SûŽüc>i‘þ0ª£Ó»„[Þl¢êïÞ¥5Ñý:ð¦¼TšÖr°oð¯ÉÃå7EuØÚÓð3µÈ¸æªƒæq2ƒ› @/˜?`×wÙ®o]Ka>[¾¬øÕ¢ýñçÉN’1–1B¬†ó0ï2NÂà ž‚öìn3Zˆ£(¥Ú[›À§bÐ?ñòeÌ TžVr;j©¦äà ÀݬÎ07æËKQSË¡×åŒW‚"6àj›Ê½ØÔËÖ0²˜®°ùkí} W5é2µ–úÁQè¯*Ú}8Ë_Q’å¶PQÚA1C´óÅõeèw«qéáo]0ð¦U-ð£A›:ã1ò¡n:Á<©’örX–ÇôoïgiVa|o62¨ÛôC®ªöÊÔ'ïÀêõ]TwÑ5üaÙÌ&OꚺoyØ¿Òa¥>Q²‘'Ô¡.Ñé¤[þÜ䜿'séan‘³Ýù‡ùÇUüÇ\°ïãÔ6·ýw½Ñ¤²éVÞ®åºîz‚Oïe3ß ¦~Ä6XˆÏÉe¼…aØ ÿOôW´Åz÷{ƒòZ¸¿ûr?£÷»‹x>Hï(Ñ«êù†¦­×Rá?6Š ñù«ùýÚ}ÑVê(WoËúfYä&ý”q]ÖJšF ‘ñ«ö¤WB4Qæ%ºÝg–%;(Mÿv_Ù̼;W{Û3šýwc¢üJeôÃfnç9(‹HUÐó!€vÑù³üh¾”£È?ÖDãè¶ŠmFU’øj;VsqÒ[,¡Ã¤<ÄÆ Ûy ü‡†eô’‡¢¼fíŠT9þôÆúɺE&“t1ÞãèYU,LL4õ¡oK hŒÿ¸C·œpöÓˆ)Ψu(kÏ‚‰µ£ƒlm—ËU‰þ%—©pƒ–µüùöîæt»•śϜ7Ž€>ãYhB…ÌzÓK]óÿ ꎊ ÎÔŠüc 3{/© 2O©9i̹žÃ#%¦½¯Ú@ßÍ/ûk‚±>«-Ær׆¯ŸŒÿ`F•Ÿ;ÇÚA}Ê70ÔרÐG•ݾëÀÊ?“;æ¿*‹ž-‡»¥$ÿâmøJPÂúˆÞºw°ýK~ #úÁZÂdñ[öUª3Sÿ1Ý —Gýy²×Ô(ÚÞ€)Õ•!V2³>›ü£ èUoSY©ÀsÛÃÁô‡ç0 «ìFÌS/ÍzésX….ó#PRÕ¶ZÓ?qg:üÎJéåö›¨ÿ¸!çà?Öñô–ýaŒºV3w~ Іãö·ô>ëÚhßSI]#Pô®ä<5—K@Ar;ó@åî/øßü©°!üÇm-Ï?îŸøOtOï,òPþPOÉÓ°]Ë%FŠùâ–ˆ‰µÑcGçòvi—Åod `™oðIôÍúnpÂ"ò¶ñY|п®IQ{5›È|6$½¤J2ÿ|1ÃTÂÀxÚÝOð¿Ûa½¡žÙŒrfœV¥‡Ð µ‚¯‚øÙ"˜åeÔUÓqEzÈ!Ft­ýb§QšÈ2<ðlg^u a:Öé*ª¼“u¨÷3°}~òr”;\©]æzLlå rÿ«ðç A¿šãæà? )§Z~ ÀX,t?T4Qéw'‹Ê(¹~eGÀ&òòoŠ::XðÖÚ¨$NˆëÉdÐr©+`R¨ö«ª?Šäø¶kó¨â,¬fêÁ›R„œª.ùüz2£”ª,õb½P8žÄŸx›{aÏc­I5U&4B´9!K?Ð΋S2–ò¼Ç>x,ðè:¶-¿ºaV”ŒÖj´Eűõ£ˆ<ÄïÝ¿ô‰ÿ˜¡¤ÿîNßQ§ÄMõϬǺA¦‘"8ÿ8¢^¥¬Ão8ÝÛ™Õ±åK=<Ó5U ‘ý9ýÜxŒ½œÕ]³¼N9ãøV.úú›6DTûµ=•‹þ¶sð#·ÐÈ&$ÿîNû¡Ì☠öc59Í\x¢¾069Ö¸å=V&æM\º7Ãk,…ÿ(ˆ·{:´€“ý–þ‰3ìxK4@u‡ª“"Døj‹yΆçñ¸Õösû{üGS×*Ë“G<Ã|æþG{*rÊ÷d QzÆfƒÀ Á /¡ï5lM'|Ák°uŽOOîÏ"þ|Þî&óÒ–…,üÕ8¦/÷Â7†?÷e7ùz&ÙÈI,Ræ4ù3뮞uR5´jñ4ƒÿHAЕhýµo“þ6)ì²x#+’UZ 3t¯UZüÇB8Wªž/Ñ?«›õ›[ ƒéÏÙqAöþõbè-ˆ6ìý Vº<5†£ÕÓŸþ»ÖüÛ0`;[À“/ƒ’¤03×Eæ?®£õ;'«ñ¯ó&æ*ßËö¼… ÐP¥¥›¬€ &óZƒ×»‡gö¡Š¬‡Œ!~uK‹eœ–ð‡Àûü8Áüpñ ±` É»JÉF2òÙhæôÃóeBí"ʳ#ð«´ èwq]‹AV’aï'‚Ù 5µawùŒô`W+ˆÀŸ+®#W‹–5À°Å®p7Ä[´C›Ñ_¶‹ŒÆéOߤ¯,wýK®£eýdÕ-jHÄaºoÇâ3<‰ ¯â?>Ê~²_¸;}E¼FÑ Ñr~­PýÁ¯úâ?2YËÔ,ëøUZªÖ΂_Õ·®’sdAoëd /øº0×ÿ(T—Tg«—D[Ó™Á’» ëOýÇ~NLQÛxÍ®éÊåêçZÂK0©è9Ö^ñ©†uAíTû¸ß©Œ!avHD•öÊ™8ë͉3õel#òtô¿rð«sXæ@˜øþÖGVË)7 ö¦ŸUzk†Ú!Cª†¾×âëñ“@ŽªÃå´’Éúôvm®Ìü¨½ðæ™érÙ>ÒÕÚGÏônTÊwæÞ•q+Ày× Õ¿¤˜>MÄâi}Ìý,j]§þüOªKÊÚ1É?–ÀCϳ+».Û§låJlÏ¥ Ì}ðÅEðÐnçæîÜ3© Uÿ‘‘>®oe1bÇŸÐïÞ–5Ì߬p™È L:«xÀ¤x‚©…¹jÕ§ÏV5üG.« Èí&‹X ©kä&·ÿØKÿ«“r6Ïý*©Îr”•îÇ£é[9Ük$þ£†ë0± ºÆÙðu©]ĽzÇ}¸ §Ýe!žK.C:Ö‡{ÿƒß&…•™{ñþ#F˜ç"úm‘<Ãd4ò—ƒë?ÎjEê?ŽŠOôôþºüc·vGô¿Šþª°ékÜêèžÆ<™\0ÿÃþJýn:øÂæxîz[òv![1ÿÃK_‹ÿøI¶F¿›Èìg„d¨ÿîªcè•õdƯx¡m`÷%‰¾û)§ÃÒ^cÐé›r88Ï 3±U¶9ÿq“'´-öþ2u(ƒðL‰L OT–à1õZ®ù€YR"ˉmÆ“ßèï#Ú?;­ ֯ˢê:×6‘õ²â?Úa¥—R󢫬ÄÓ­ÔóÙ‡3ýWîÉ' £þãC+hïÄ~ð«Üä…ÉÕÆãÙŠÒ#ê2üÇ%ò ’øÅTV”Vsðî}@ãÁŸÇ#LÿX ˆ8°)%É7êª 1ðlCðƒ±FNK*üÎó§§ÀÑãPC³–ha;‡~Wáv¸Jt“Á*òPÿ±Np†óÈ[¼ˆ·Ó¢—ºJ,Ì¥*sMÐKìHÒ4pûõÀ©h–!ïä¿ö.ü_oîá:ârÕ¯Þ ¬)ܳ7ÚÝÍàW¾ÌÕX©ê¢¶]‚÷ˆÿñ€Œi†ÊÄõ?cN\è-Þ­ð'̬àH“赂jÄ5Ö,ù 5æ·’+›«µk/ð+ÐGü:ôqP#=_Û†–y™Í™Çç¬ûÀðEy†÷n·6þøUk;LéZB†àGþ±Æš f3©ý7ù†3«öˆ¹ë©ó›L‡¨ ü~õÖW‹|®x¨ü£ ¾V¤'["Š(oQùÉ^3©vø‹‚öB:–L&sØ ö ŸäÔlÀÚ/`.{fò”( >ÐÓ0lïÞ_"ø…÷¨bûX­”YÌÍ–‹Ü#1ø•@ýÛ•Öà;®Ø…Ñq}3RÚºHýGs¸LgjB"°ÔÌÇür?–ë'É?cQñÜדƒ¨|Íüeô“ùhµ¤±™ë”ëýQºØž*UŠ£lØõkæfêÌ–ñŽç¢ÃN¹îË‚ÿÅßã?ú»O&HKóõ»Ÿ´íÌôi*ÆQ½kn¿š~÷•Òc}%ÿ±Ÿü£/1wó¬¬f®±úE¯¯ï0¶Â¼@•9ÊÉya±”(Œÿ˜‡ÒêG¬Â[£¥ì®ûè›Ð_ §þü“Lev2Bž°ÿ6ìwŸµzúS1†LÓµòðÆôE¯ØÊÜmx›ÈÚ™ef"ÝAò'#<ªv¥}wJœ1ê™ãÀ„¶ã?6c!ü‰ugƒ³Á¶Þ#ê/AÝÛgyBΔCÝw*¢•œŸmÐüäM&ù ¶+%µ}ìi+5yEÑt^ m%þ¨ûohšQòçD%¸…ŽàsX›ìDñEñ"¯Y«8 m«Ûçph[ æŒÔ\¦ÃÍY[é%ÜM^¥“µ ª­>ÃôÅ¢c•êF½ø}õA6ÿ[ÿ’sB¡ÛéÅ ž¨T}Õž‹)äñà[/©/Èͼ‰[øªÚt—šF·Ü,Lë¸I5ÉU’;óBŸæÙ¹ÿ„×¥W'*çÙê€ye­¿5›×Ð ª¤+§«ËÃòVM­YÁš&¼‚®VøÃõÄÉixC_òcc:øÕ'vÕn|¥y6~&½ 7 7Ëîò¿:…f`•5…úÁøöu´R߃ ú£¿:Oʼnò•!uË¥´D:Ø*Z…—fCTù˜‹ ËÉ?rSi¿†ZPŸw”¨.ÊØG`YåÐÙvãZ“Y;9íÁª¼9ɽ½$ú*‘EÚ[2®<´¼f k,xUn{;*ãîXþݰܯá+Ñe·uÎç.yÌD• ô5¼iaùûz%uñxÚê+N¤:>.‹¸úP?ÒuTQ˜îBÔ&D_\n+¨ðÌoÕ'9Ç[g¡ˆô U?è­ß¦S3ëA—›~2Y¼é<ô*µU@ý]º+ ž£±JíjÆÊ«É‚xï¤7OwGª@³Ëî+þï}Q•ª¼áî“Ñôo‚;çþ“ÏO og"¬·Hm¤7ëUXó†V]x1ð´¸KÿÝ-_µè+íoàCú—ÜÆv¶6‰šô¿:BýàKã¾ß(.Їì:+ÿ*2â÷=dS•ÍëS'õÔÌhŒR§~ꑬÍþí)ôNº„+_ˆ•kFn°e`°˜cŠ–½Ä»Ñ?ùeˆVÿöCâ„QœXðöÒ. È XιØÄvø3ÌEúLõàrè¤1²K¾©Í‘Ûå;0¿Oh‰öyn@ƒÐ“'Í“J‰|ÄꯈrL"çùij÷£ÌâüÄ7Xävd0×Àªr€Ø¥æÅ êÏCëR>x¼=ä`™ÔNNö‚|häÓãGrgiût“¸ò‘û0ËÌ#Fè?bèŒSòp{ÌJà]Óñ™•àö¯ƒ_í7 _ãxFOv9™«ýt-žy ýîBb¶¿ŸÞní6zñÇø`5oÁò¯&Ro1|$…ZÌÓSüjVþ6]Wr§&ãz³?#_?è!šá?šÃǯ&ŽNÏèÁ•5 _àKêåNóž@Ñy|¤0^®Ÿhc/ëW«ÊÆ2Ô;¼ÙO"þo žÖa+Fª%ÄëÀ“4kŠØ«tÔŠKW½‹ø:p SÐã Zåzඪwú¹sÃ`ÿÏ‚¯'ÿèB¦zNmd Õ|ô´3ìvNW|êϧQ}ý-^©T l³ðF[ð^9ØFƒ0wY—“yâN˜Ïáï~W‡Ì5x£ùV5r«L–tM'÷‡çIµãf:uÝÁÖ×F­¼‡|k3^©·êj~mS­þ;ÑÏHN¥5A…e"xêô© ¤ç‹ž–P=SŠ~U#©AþQšþ»žôuMÿÄmԟס«áB÷MΨ_I¨½8gzSÿñ‡Y€®7i¨’ÜãLÖ ÿø O²Í^ —¨ß‹üã*ùÇ]xøQ ‰;’¹]úÿý§ÓÂ=oÄ[:HMõ\d¥p "ªEÇö´¬d ´m‰•àk͘Uï—Ñ*…~w+O¢Ø:ñe½múê?f‘Lí*5˜™©vOê?PÉØ’LÆå:@Eúg®s"ý[Úgì°KOyOîÉ¥¼ã%ˆ»Þ_7!ü˧ÿÿýžÿñ£ûd£œ‹ª#RdŸ÷†îª‚yçÅŒjÆ=½(kžÐêÀl⡞B÷‰ìFøó‹ÚcÑHú}ËÓSÛ}^tÑÛêOŒ (!bÈ”Fò¯œ?˜\T@;üûgÞêÔ²½¤Nè7d³ %™á,úES¿›ˆÜ*;øÕîwlà~³èF=ó³á‡…=LÄ?M‚Ç“´0&DxmaxM\5ªƒ¾$e•õ0Uxû ’¬ÂÔý¸„M|Fâ³ò;YÏ}§Â®òÝ2í43‘ø[,õyv¸…˜üOP›p¹5ÔMø‚Eh¢›b¡«0ÿ#*´²%ù‡7gÖ[sÓï0>9°Šy¨%©AÔ¼?pšÌÈÉ'Á¨D¦ßÝ©MÓ÷Ëïɵç£<ðǾÀÏ9øUGìÝs3l÷G|Ñ_Á¾ù2Ÿ;¯kÊ q7äÝ_}Ô>ˆkò*˜ÐZ4õ[ˆÂªñ{b9‰ƒ-9ÝHM,:œd$v¾+ž*µ¢©ø›AøÉZˆ!oཨ žÞÕÙu Á‹WmÁô^Pþô¿Ú€¯ŸDþуÏõ5âŠjƒmðw1BÖ"¾ˆ_0“:ÅX‰þjYA¬É!æ×f£ÿU-lì*ìâä¡)g¶ùÙH†×¾el²¿B°óùÕœn:£|e¾u…U6x»â»^(‡&‘:ùÇ%Ø–ª(~õf(•¾³Ãç¢þq'H\z¸ˆ±<{×Õ>f4Í!âH&ó­+­«*õƒ×UO,v Ñ{BüÛc®fç½ÀÌl„ØSg½Æn&Z9Ýv:>Ƽ\ÿÑÙZ ZÏ5”JìãTv÷…­Ù§»‡W¨‹o_‚µ™Œ«ŸZ 8ËÿW‰ «ß`(fRŸÚÞX¾•EñðÅÁ«ÖÐê­Uüc¸]ÝÚiÚíí’ wíYÕDÏ\Îë“ Éý3è³D6E÷2îiZ«7 õn3@ ¤^¼:«eèwc‘!m„ïÎk½ÿqÒLî–ˆ:D—5Ìi•,J—>.¢Ðö<ª˜,¬NYù±ê1©!¼na¯ÈJÚçáezá?&°ËËt(H>µŠH,z˜ûr®Ûì".vòuDN½`Ö³Òýx•‡«`RSþ “ ç¸î€·µ°» fû–;èÖyÞá³Ò‡È¨ïO\éõåÿ‹¿§Ôgë-ÝVé=Èc"÷w_· %—%VŠoŒF@°ÿ¸¢ÕÛñ§©?©oþªå^jDgį“tß\a‰Ñú|ÝB[TG¾gšmqQâ«öYBdá¾M’iˆ¥›™Šx¢’[ܔ̙ôow"áÚFÃh­h¢¿Jdt6Gbß›óž6›ƒnÔcF‰/ïÕìa , Ã0˜)‰ÑñÞ k¤ÔР­(l6’ÃL#ÿ8Cd@žD쉼(+ÊÚQî0þc¥L .ÄC¢^Jö¿+]Îâ^d&ìL_ThéÌÃ"S+NU@»»eïÁƒdÇ”!FJK¾\fá*Ïü|æØ]¨h_ÉûÌ?QÒ„½å>Ú\ý’̃§Y 2tÕTlÞ&ÃùXªŸ¹8øyÇbÞ£C !§ø[ž(q/ˆ«aú×wzlPã›Ô ìD¯°ÁÁ&¨³Žƒ_r­çÆ£0èË*å§€µá—âºsÒ;"ðóé±—C~=Å)e r¦W°ÿÈ êïLµêI†ù-Ñè_XÐ;0,‹ðl£Èzr¿éÅÁp;œ$&Éšø³ÌàM+±¾W@8’Ýs*M·7ýÛ“Q©Qþ|=ø•3p >Ùë >ÓŒi¼Fe><ÑMb~Ôms>jÕ DóѶNúþü8õw°¹©ðy:•‰‡AߪÀÙ¾Öâ³P?¶Ì`š3øä=Xü}àWçéé;Æ™XáJã*â‡?j Rrö >ùÇyØ—%üÝYfr£q˜'g§±† ê=x«c÷/›žÊŸÖýV ËrÍÁ¿êƒgóG¿û®»&öÞm³7,ÿ¦W¼pŸ`­Š>œ¼r± )üIU–ïe<¸™Î¶²»ÕøÀ.¤±/Œ±KQ‹yÓnb§Äo´PSÉÈ|8íÒê˜ Ñ®$Ô÷Š"pN?ÒDÖBæµ,£Ú¥ì{.aã¬qv bëøþ3}ð½˜)µÉþxÖ?A,çzGÊl2¤K ¦û:Z‘ºü:IþA×lú·w`Êl ;6qÁ òæä שdU³§ÚMÑáæ² À¤xa3bÚîf>Í—  ÿÕVÙ2°ˆZ“!Ö ¹ÉdVÛ©; ×3ü#…ë)JÞ?•ËU€YWK@oóv\‘[y;ñ„>1B*üŸÿ='þã'÷“ðŽþWÿ4ÿˆ§¯Ô“ˆE"¿‘†ùQNþqAûNx oqV\Ñ]_‰_=ÕÞRÁû‚ ä Üñ@ã–ˆñ¥±Ë߈c$yÜ»ŽÎ)•ˆw'b?ªq×_Å`(ëÇå·fuÙ‡:÷³²Šµuþ$½™ž‚·ÏéPÕ«²ïß vËpx Pwï”TAÓa+«13[[%üŒo‰d4,°ODüG“ D͈ù=©kxH¶SV UÙÂw´MÌ|'+ f¥oÇŽ2‚ yc“óÀx;W§‘Ï´Çò'5/D9ÿc”(Íu¶!z>Ä~rò¬æâšév¹˜ð/äð@û迈·â²g!¿6á=f`—™ßÊ›Â?‚Ë}§¥2.ÈsØ™ØÇMæül òÁ˨QnRãi$…ýB¥ÊP¦ž|b^¢µøÎ¹Fà?¶”–O°WÉ^]X®?ÉZ¦ïOAUûž,vôôêþ#¾Z‡œˆ=êéTØÙÿ–ô¿ Ëé>´{Z>Å™D_VíGQ›Ÿht«}†ÉçTúZ0á¤&#vüøõUê¤ì&{‡;CÛx…ÿÊ NOú¡Ìº Þ÷žþ[Ôâå5VTIgèÛ‚þ»Sé“—ÜÃA‡©ÒD†fÅ÷¢1ÙÌa¼V9Ø‚~ê žôUñ¥~p4ê¡ÒT°õf~íj:t %ÉE„;ë÷"KºDœ×hf½ËÆ<ð«[ œmð0LBR`x[“[¥·î£m-dï$.HFèŤ+iuÃ4ã4üñH×éWÕ+TþQK««&F™kTƒó/Îû™š Š6Lvê„U…€é.K_èy‡Ðï6móI­ð¬Ÿ8ï¼hÙÎÊîg&¡¾[¤ǼMÌ÷ äñ’1Ê\¨²¢ßªLeßïÖPûQÐ]Ñ=w˜5Á>bÝâ§š••õ>ðLî·¨ 繯7Ž¾Ìø(³À„·1w¨Mr„9@Cø“>L(¹DFT~( ýU{Vmµ²ZÕÔcâgþy3ºj¬pû£è¯ÞË%¼££ˆšÉÕLt? “?“:¡Xvw~qv%GÑËþ]Ù® t„oAß–ËÄ0ùw¨ÓÕëÿ ~•MŸ†=ürÔ:ºÛÝ—ŸFïwC÷ÕjÝ¿4ý/€?ÎΠ{Bg°­2 VÉhŽ yÂH]B•Ÿ:½ Ä©­TçU‚ÿ¨‹½Ïƒeþ f|-1ÊËAáÎ0®ÊÚ;XÏ:\e ʼѬåt’šNß‘­V2ª!Nói­PÛ +†’*¾¥¡ªŠÏÿ€z1ô!ºŒÞðçÑïVD!0ŽýÝS[áõ7ªÂÔD‹ª»ê¹ºY{è‡2Ml%êIV€_í¿ùs.IÂñ×…£‹} —¿¾bêµ2Ö%øó?èoáʹlɹЩÉAÿý;" /O¬žÔâáŸßpM3›ã }»ÑM.€¯H‚F>“Ö±ÎZKׯTÖüGBz̦RÅÎ=ß“ícbe)ô6_0‹:OÇÝ[|\nsíæ{k Uûí­Ä¨mÏZ]`fª’E³Ö`ÿ_3-0ʱœôqÞ‚õ1à5/ ¢Žý9Nýà]±–;߃ü¤£8e–t¶ÜQ*{ ûýH7űƱ)‰U­ãÔ´ Ïï~´ÁÜQ/ñ^]É"5ù\ÿ_ð‰aÂð«—J©ÿxþ  ú+‡ö·VTo¨ßSKp¶½•Bø“ÃÚ{-˜¬fó×Ó¥¯Š®OD-“…AÃ_wè=ÕnøéðçÉD4½˜fwH‰úŸ’Z+ð‹EXöùdßÙ˜ÿÑXõWOPpf¡8±kw½YÔVTSsèó¸Ú^Dã5 ”t;è¶*Îåð_,0aÌBA:/ xP;¯WÆÙõç{A‚:ÅeãNZl×~Sç Rû¼h-úýô÷£ßÝ cTÊÄѰnë@j[b‡7à %öo@ÿHŒåøËAZÒŸ¬ØÿáAÿ½&ø›èFúë…?®Êƒí`¥]صàZ!¬øƒ5¯3áxýwƒ°¼Øi&ú²tf[@)bËNÆhlÝCØx7ò°àûvÿÄ­F%ú·GT7Ù§õ…’Jw@ÎþæIöĶºÂÍüRb–wúB=¹PöyG–ð„é$džtmüþ²ÌSîj…Ä+ΣÖ:çi(þc9Çb"å‹ì²øßu£c\|ðZ|üx‘ÆA]Ó"j_Ü´i¢¡­Ðl€ßxÂ>Wâìþ„ñð¾V ªÊ®¢Å*a.£pÏíB•äGÎ×h&†G8‡×4E!fWâ¿ÂœÞà‹¥ôÆáÖ{ _âŽûH¿€^ìw£qÿq‰þ‰‡Éb1§<‡å‹e¾¿²ÕLg½ÄÚüÇEª]®s>ÆÈ™â³óð~GÅÓÕqÒσՀróPm­Â:WC/åW‘„è"~Äž̼§~èwëru’£5Î…‚7ø›üãµ²^KÇ>_’&2ÇõÍô<]Ãü¼Ötø”õðÕç˜xŸ,ÉÓœÏ Úê°ÏñnäwK¨?ÿ츭s¿ñÕÕº-­?wA®½ Oê?ÐîZõá*j2qvÞ¤õ.ÖßL9E¢[¥ÌÂè‰$Q~ôÿ°ëÏÄî§Exô?ij„ã,ýKÆQ+yˆé$É`VþrLeëj]a~T;æGá?^ñÓ7ÅÔ-¥¸{¢‰ˆ=tœ'ôÿð… ¬w3¬äW?ý‡ŸC= ~åÁüÁZzôPvÛSI{¾Y ¦ÿnÆ_œ_{Ay¥ E¹›˜±®ñAO®wS›Ó7ù¶¨!>ë1ôìZjçõŒÊÔa/gˆœDÞéò7…üc«êIı›|2¯ñ§sŽ|Ý„jmµ”>;·›ø´ZÖA¨òú£<ú ßtû”‘ᄀçBÿ(e”»4½$Ö-7qÝv"ùŽàë¹B­ÓCÖQAt*†ZÚkb¯áìøF){Äa‘í#ü¶]yÌÕ dµ*Xwú˜=F0þãyo°–ë'g±‰–+^ôþÌB|"®B°3¯ Oäsîx;gòDÛê†÷X¤58²ã{÷•ÎêQ†c˜‚fä$>û­굜(®lgÌÑæ NgÕ½(A¯‚™]¥×eLýK$+šêí™xÌ.a÷’e5 ©Ýź!´×Sš«À¯ŠËùø–žh«ãßbóit£üîÏBø¶"ô¿rE[åMèT ø”ø{÷V¼x6âïñô³º‡¯ßz…Æ‘m¶3Nê÷¿ë¿;Ecþ$XfFâõEÔ>Gõ7ß°û·¿eêÓ-ü‡{9*Ë›EñmPÇÆÄî6½z(ã1ÿ<¼ÚVQŽhqà][‚‡ÍŪm•ÃÑ)OÂ6Çaóé¿ëm¦Ϲʿ¶¡[îzP»”Tî½æ'ìþíí™?¸.Ü•¾®µçœxå—Æç,ǮŤ*þ!ùÇ'”IÇ蟘ÝQß±ÿQÚ…§ä`ñð2/Q‡s¥AY#t‹;£ŸCAøœ«6ÿFî,ŸÒ±ì~L3&úÝ*t%ÜÄ´¦‡r™×Љޭj ÎF°ÌÅ»Ã" õ,E¾¦ø?yÚá/+PÛËŒjתIeÆV2­4¡õ;¨’èa†`a{r.{‘/d%o¨Åʱ¿™õVY­}$C2FÌñÆý0ÚƒAôOtEo5“õ 8|è¦õÿ±†*Çár¦peƒkJ #ôÀØÿaW´ýó'ùGˆÈÊSÕÏð’ó` .Òñ°ªÛd±˜ÃbWÆ7A–‡çrsœdþy_k©ÌàèˆgºÈt©¬E€ð Ê¸¹Ì*‰í_ð¿ø5:Uã8ÏÌK¥øÌ¤Uo«‚n‰ùõšz|Í•5(™ð›´ẊΪ®ú¥]TRêóP,ÆbVEw´ÍÉôöôéÚKÿÝb"½x­eÑâ9:* —Ò:cùæ‰üD·‚t©ªº«‡“³ÅEå’Æè}~´jüXQ}²/ñimt²ÓxúÚÑé/<Ê#ž­dØýÔ ŠRÿ]?í’ž¬=•<Ëš;Œ®ò–Ð;×ÿ€®}•°| ÚÓ"¼ ˆìÇ ¿:ߘ” ®òøÕ^üGCî´¥d¹ô7.Ü#ù>})µD?9‹®Zvò »Ëúö'&ÿM\^dè- Å22/¼_ zà`æDKõMdÆ÷®*ª³E]¼Ú<"ÁsðÀ¯jƒ•Äz¶ùø“gõ2i–í-û߇Ϫˆÿð‹dÅ/Jtý¥¸Å'%': vœ j|ú/&&šN-ê“Ì›)€ÿè§E.{þËîûåÜ•xzêÊ‘_T¢ÞãXy%ØýÄàýõÉ8ÐY+½˜fóß%8—ãc4¦ÏÞ¨ë#,9N›KZvÿ8Ö¼ ë55fÙå>–ô¨jÎ3W (‹¾Ž;:ŒÅ~ŽîŒR1‰ðÕyô—ÒT²¿FØûíð{PlÜ0¦ Vnn‘³Íxà.Ù°ú·ñ-¿›š9´&#jã§òô7®ÿ;ui¸+}M£s÷›‹,‹‡Ü ~"¯mþª¤#­£’à ëù»¹EW’¹Û%ð¦mDE"ô/yªPñgb£çR¿Ø8'Ÿ è@ýÇGC+P²z£›š¢¸ÕÌHÿÝÍøÔæô/y‡¿JEÕ»‡S’UÊ„æ³í³ÆjmÑÐt"ÿð ºâ7s ³S¢œªŒÝÄüó)p‰èã¾èc½a‚ðˆýeœoü‡¢nÒè¯>·¤4k1Ägc¾ìK=Ei˜‰µ¦»•˜üÔ¨$uÝ'¬—fAò’'dpKè¿»^ÞEqQQdtž¿<ê”Ðiô5ÈàŽË¬bµlE{åG“g°;Kñ[á?³ë¥æTº3ÒÊLþa¢åj ÿ‘¾ëËœøÕQu~‰ˆnak:oˆ]f3Ç1T`m©Ü<`¶`§•g÷Ð4 ?Ï‚¶kÿ)ó5j…‡øž<ÓÅÈ?Â:G¸ÿßÆç¾ Ã¯â?â8ÏÓ¯}ltõ„]KÿÄŽzŒÐêŒÃÔŸŸÖjÏ´ÄZÆ_ÔïV\ôÑÔ…Ç¢æ«#þ#žÞGíCÿÄûâw0’øzFíG(IäG]L¦3Ddæ)¾oäf:GEæQ˜àuþ¼œ1„,òß ÿÝŒô{ɤ¯F´—\´$ªÅñÒ®>¸©{ãßÁò§¿Šilô%á5ÒwgµûzyîªXò +¢$êÊo¼ [ <À!Ka±‰gb’˜óÓ#ü“þWǨ6ŒOüf÷7ln•ëžjW2†kFmÐ…ðçÞx…xºËOV,¡å!SèB,þ¿›Ä&Zçh 2-èS÷ÈX‘^‹²§_Ùóh“ˆ÷ʽH÷©(§”¶ª»¨%oÛ7'k‰Ï$Ù^èè·Ð)8µ¬Ïü?ðx—ðœëÈ;nò‰vebCñH»ÉŠŸ•OÔDø‘ùœ$#Ú‹5, Î ^ º…ÇìKV“]Y'PE»ÿnAYÝX*;ƒå ¢±Äÿ…×|Â<Ô"Ë?^à? ¸"l_zŽÀ ÿ‘ ¦è¶!ÈRÃ>eÄ `åi\§pž¶¨…#›ÿÑG‰IþñɨÚÔåÚ *™È~:/Ç^ÄÄL;¯»ê_à;å®Rï±[{©EÓÒþ¢~WU êkˆ¿ \mÀ„·{Úhu;ú+ª°?ëѨ?Oá<êP¸o7Òlýÿ PËáÆj0õ2"'zã¢&8Ór¼JrchE{¸_ÿæM"ú¨´ÀœÂõ!Â|Në SlÄ–^7Æ'Væ™!ªE)ÿ8­} ÿJž±‡¸î,öýzËø"_ôÁwÀq*Ã3‡àGÛ‰q?ݳ—r <î øÕ'r{BÉ 0ÀV¬»È( ~õ®aqøPüGnô»aª—o¶øÍËfZe˜’®0 °ø©°–¹°Ö©`âëã?^bû׳g/úDùc-_ˆçz<5ä›ßÿö¥2Z=/JϹóäí縊Väj»ð¹`yÝÀ¯îrV©_çóžr†/ ‡÷Ñ"ë½™PÍÌ8?êYNÂü&È„26pLô»Ÿôiz°áÇÅ„¿›ñ?‹œÃ¯š_>?U =`dsDAôÀçD{òñ<™š1;BFþ÷ÃÞ¥¤D&}qî^°‹ L(þª ù‡1ðEâ‹'"'±®›h¤{„ýÚ_§bbˆ$ öGA–»ÊÛ0ðë°Ëa¿ïñý" ö¯a56‰½ážÙÈ–¢œ©†L^X†poíÄn6ZAýt^8–œÄÎ÷ÈéŽrÌÉôõÊýºvY­6Þ¡ÏÊYlCrìpú¿¥@ZËóKï3r8ö%(™Ò˜EŒí¶×{¦tWw¡¿ºaL'£9®ö†§¦&GXu~-0éÑ2¿² ëùN0OÓ;új‘1ò‰è(€%‚‰·ë#Ë‚(˜e|Pº¢3ùÇB&RU”#¸*Ãá?)ûº»°¯ÓÐûU÷ñž(K3_Å{O$ÓZK{4rœ‚T}“œä¬¦¡‡Ç ¸Ÿh_fQ«øL «vþgÍ ôßmÉñ$`½uø°K\O¼ì 8‹äÄÒgáÏ šWÈ?šâåêìƃ‡èNwßé+þøNi·ÿ¡Ûshù©õ`:Ã`‡ ¿ŠeºÉ9 B>ôß]cðY ™Ñ4›óiO»ºÃÓdnî.] Ÿ/\Õª‘3ï]+ÂjÓ8‡Aä>ä Ïå$ìsNG4Gqú·o–•è”HNÍ”nž±#›jºýÄP2<Á{ÏDýEwg釦Ÿõ‚ÀëK¢8u§ârI¯(ë=¹L T»Þðû—ÙÅLêÅîq}Å•ü#çúwÆ*Y‡úºÌÈBwôJÔ=œ§SK6üÇkõƒí™öšd?ëM§£ËC¼qf¦É¸;/®¦®Ð>¸ŠnFq³%j/c‚ìF¾eíüenÇ~f¾?gÕéðç/LWp'üjjæU쪇¨ðv¾"ü‡ÆsИÄO6 /3YÁ«¢'ŽMÇ–¦tq·ûʰvYµ™DëJÿáëªb¼!®8ýÇyìÚ¾Ðücá&1ÞüÝq%Ø4ÓÔ®´5Òæ˜ïx‹Ê¸‹5Ef‹Làlž2-<Ûò>ì-µÌ#ö;wüß{‘üª“Ó*½áÊÙ–ÿ?ùO½Fÿ’éZ&½(Ó92°ŠŸRŒéçÇ´wè¯Òý"~õLɨÏñÈ?‚E-´M§´žêJõ¢î%ª1ÿCÓãü´r:üZk‰ ÇŠÒÔ{µDyôgéÕ›™Rsà³\Œ zÄžÙáWøú.>“Úêsáy7’5´¡Oz¤Uè¸d÷Ô»„yŧÄE¿[JÃ`¿þö÷_À¤Å¾¥Á¶{Á54—»á?V`C¯7¾ÄNTC•zWRç¸ä§×f³rUøð³ÙˆÂ‹Â¤4!ÞvÁ²{A7Á<‚YË>7ò§vÆíG½F¾g­)ž²ØÔ]8”ØDÑ%P.Æq)K|öެfƒqkïJæÐ5ú=¡úèë/GøzE§^ÕÀÏgÃÐÃþ¼ ¼ÀIãwì]{øó¾D°~ n;ðÊÏÉ v£h,¨?°’ý6&S Ÿ‹»XÔSdRGÙ_q*ÚÓ úM£ž_ÌÐãà Œà8×ñÌàoFßþWÛðZß/7WI¬7Oab–ØØ ç Ï^äÒbŸBëêE¹ŒF,>çÐq$,{z5Þùn:ÁR­·¨‡Ž"1õ[Ñ“^ÅcnÕ_¥¦’ì6PXù‰ë«š8ÊZ ãùA‘Á\@{ZRô‰p¥×j*}”{…È–á“ìþ%öü(Œ÷dø{fk´õ p[óˆYfrÔ/C,]ºõç—µ:œ_"לDíä9üÇybg;LJþ‰qÓÌݲu€a»3àež²û“xçÝFÝláGý&ÜÌsî× Dí ááMZâÝ3ˆiàù¨_ Û°…j•è–?LE=ÐÊ3ð37ðÊåDñÑyQ*)uÕIh¦áÅઢG¯ŽÿXDÎV…z?›Îe5´îå—'ÿxƒ¡1VºÁŸ'¢þ£„üb×E8×êÍ…}¾Àç§0›0£¦Œœ"§Ò51 óö™CÙ­79×m+)ú«5 ‹Ì4oQG2•êù‘ð’#ðsW¤¡:V7yFíùçG9ºF:V´žÚ9è§0çK¬¾|¯ ú°a¼îûŸý•ÊÙ¼{œqFx;ýG }Åw‰)ÜîDUnb«ÙÚ±‡Lh<]îÀ,±ê8æ:>âå:Xe,G-«ÝŒwšˆHÞ’tE!È?Ž9wüß{‘TÝùMgµ/t.ûOýGnõ>ùÇ ­ª^_Oª®½­” {ÉÍB¥‡ÿû=*…õíôÝ`õp·úmú`*ÆšÀ¤¦{6çõü÷+ýó¯­µ^Ø—á¢OÍ*0‘ÖÌ9Úª¾ŒµÂ–>µ1^ß!èG«ºÐG¥†¾„xüÑxmpúáT@W‡£±§‡]#ª¿#Rr] ×(Íÿ¸¯}Ô³b{]äbï‹FO¢Šl`^0È•ˆÂ“Ëœ(6,ã(QÂîáÝv%@¼¦ë‹Žý-$}É`q@jO+UÂ.Þ4Rãí®3ý_º£½ÿÑBÿú~3ò‹°3ÝŒ[ø³¤Ä:ÙCñ«ªv]]G6á3¯ƒg^ª^ã,¾ã.ÿͤÿnØÔ±òJ3ug~"hk=bŠ"ºÛ#æë¹™Vù“Nr¡oºIÇápÿÌâú›ë4G&1OÃÍ•’ïE˜".þ#1ð÷éÌaLØxa¸Àk¿¥Rp süÆ¡ðD½vÇÊ k½ˆùƒ;9÷`ΦÊlæÂULtž¿ÒêDüG~â‹nÆ9_¼1Pñ7 þ¤±õÕò>ò•Ì d=wú¹÷…õ¿CÿöÜø5»#öGQýÕ§ÿ¸Dÿijb2O‘ÏÂbñ·i9úàk›ù]6«³Ó¶ŽåŽOLÙíey_¿ 2w™ vçØBTQR~¦þìÀ·ø¿ô:“ºöüJ¥{çyúµCH©z£¿Z…þªýìþ%7©œªíÔÞjRsù®B÷߯þBÉ®¯‰ADŠ*Æ>=@ëÏüókt¬(,žéqè_bg8QÿÓ‚x+¹1FdÇÎ6òˆz¢„zL}F¿èJ‡­Ïb€Þ&J+ÆGïœQŸy7!dŒ"ý™†6æ´[¶]|¢»(«‡õþñ‘zk·ôlÜ*q´÷W]¹6¯¡×7˜>UeÑï."ŸOÿ«ÓŸê ¨Í<ÉgÖ¡À*ã?šQ>‘37}F²ŠBÄw`gšQžþÜ‹ZñL¨’ÎR¥×væ0½°r™;dkÖùŒþº×Ï4–:ï™êFíŠóìXšˆÄãfKêý2ӯă~‘ié²~¹)À³R¹w†O¹Bþ1‚n`óå j2ʈ1Î+â ~DWŒÆäµƒä>QQ.181Á°=¾çýT9þ„ß¿N½ã,ò‡žVff%Ãh¬Õ¬¼ ¸Ó1§ÿðFtBŒ¹°ûRoOÍäŽx¶`T:Xk²cõœº£(Ê5¥ðNk7þCÃRh<=ýÀ¤]d‚ÿÉüóê_j[ç™yþêgÎËáENõ’ªÃ—Á¼`FŸ¢(e´•ð篘•D=áçÿýÛJA}#v8Ö?šý¬Öù¸wuOôWufj¹GýïWúç_{iM¨ÉÚÞ°2=Û›ƒ·½…`Y.ä9õêQZÑ…‰¿Ùõ>ØL/p*d Ý@Ç‹19i?>e3Vj6‘âM1ŠùQé_ò@{¤äN”Ò›X~—ÑJn§šqyÃAìÏ9ìiz²ñëâ01ШŸáEåJ­kø`òó W«À[›±ò\Ð÷RÄŽ¹Á>ˆÞ|'‹qý§õ´¼ðö$½ë|Í„KnÊÊGLKn$jò†aO«Q˜øþžó‡õƒ•ñêQQ®†¾ k>ÁJ_1Þë›ôLÌ‚Žå›ŒF¬hϯMÉóv8ÿ±AI§w(YfĦFp ˜Ý8ΡHKj‰æÂø ¬e>1ó+´[ñr¹þ}ð^èE"öÚÆôš¡œw›?™-ˇuæJTbúT+oÓÓVL…úʨÄò“ä# h@]Äfyµè Wz±ö$”?/€YHÅß"üùdbû´Xø™ô†òƒéddz´Bu5|. Üô² àÏ™] Í ·¢ŸVŒl;êó4DÙ °üWa&öÃD§ãëV+>zÓ1ÞÜÄüóéèŒsÓ?q&ê°ü݇·.ÿH/†ú{'wÙ>¹ž¼¥©9½Àmà,0ü[©£›ƒ_yGÑêNd>>œ_»ÿî$Öõ¿œÒü# þôxbWé* ÑPsUÀçöd¦ë ò¬DåA䮨„AÛ¬Øø¦ì$ˆsS’û\Çyϸ¨»µ·°3/QÀ%0óà?ÆÉ·tù:FÜþðñît®ÚŒúÙ¶÷ Í ØæÛæ*´ y¨ÝËç{ðèaõû•Twº‘Å"ß]nŒïõ:2zµzÌýèŽö×ßü“ÒÅjMa|*Ï;ñª:ª¤ø ]ÈÚ€„ñç—UoôWð³¹§¾ˆOÌ?/gÍ«;jWÏêÌüÁuŽÔhzsZî2z½Ô7®1ãpç¿›ˆŽâ¬¨ßtlqnýÿüE*u>õ _?æ½R@å|÷õ»QûšT½¡ZÚ)-ƒÞ^¿ªVe•+ô¿:©mÔ„k0jËüë§Þ¬qáCý™Yî§'Õ‡©³ÔûðyD áг’ÑüÊ‚­µÄÍà)ºƒj×AÅUJ=£>R0*±ø“õÖQZ1%ósèc±nûñEÙAwºÉ X'Cø‚éŸÏŸ‡6#@Ì ôYQ8Äsš‚ëAžqÛ¶Ç耚+¶z¾£$lÀò¦hDÎDý(àW>Ê=øóËðįò(ºaß ìØ |[NPìËtÀ˜K×ç?Y½üGÊŸì¹¾VÿP7”÷‡ÿèI¬Öµ±ruôˆžøŽ#ÆFT´×ˆ×ýÅ;ÝTŸþ`×Ê\õ´( ³d耑{Þ+}ˆž­Ÿ±ð»‰›Ÿ„"QÛð)7ÈwVãe*Š{ÚÅHVŒÿñ ÅTzyϱŸcO¶¢G"Uz!†EÓœ`â«áÆsÔí±–©ˆE’€\ÄLWÒèMÅM€¥Ä±.<é3ÁþÆâs7³èh€ËÐ%â==<.±Ó¤Ô$®áiïßïaìÔý¾Sþ­ý8#Éᦒ_ ›æE½7ÔÈÆ^ k-HÉ'pÅ9Dä¨dOý"\—ýðç‘O6êã§sC8?k`8rÑaj²ùˆÎ¹tù¦;Ò)Ù‡®%Ó©FÌ s} ûÜYÖ娓h«Â­ø„xjšón÷dÏG>]ÍAë +N7×Rÿ‘«ü +]û¿–®éñð| ©•ŒFÞÌáÛþ%ÑÕmš„¯ÿ@ÝQs õ{¹×r’o”'#š‹.89üÇqø”¤Ì³]dí5‹P±q—,f2þcÜ׺^„e„¥Õñè¯2 üèMžµY,4ŸWfj|W¦ß¡å>™Èò7øøŽdI-™C›ÑÌLþ±‹ûð“(Eפ=Îü׺¶ãb,wûBü˱Ϭ„ì½ÞÑ© øW~Ç!‡áHæ(e’7éöµØEWý—X‰ÇbŠ ô/ˆ!"S)Fòàüÿú­œê"µ•óÊ}äÊÅu¾ûµJ¡Þb¢ß^­€Þ~r%Yå ’Y;€q!>‹õ]„öïW¿¢Ò=¨‚sáioŒ66ƒ¾EõR¯S?Øñõ?œÃ¯_^£—þ#'œ÷~£˜@½ëZÕ®m .$Áˆ–Ex"Âÿ~Ø»Ôô{É«O;>ŠŸ;´cƒìè}ý4öÿ wÕ~Q´è£GDÅÃV {uF Ö‹aá Ã+Ÿ'§é&¯ƒÂìÆ&_¦7xý\±ŠðíDøÜak„½š¤<¦Z×[c’#\a]O´`ÝñF+PîÚqpqéNÍ}G>«žñP‹ñ“«ÝA+RÒ.à xZv\+­lF\[Õà<Þ^¢ÿ² ±ÏѨ ;œp¯(CÕƒ¢&ª­%ØÝCÔXÞ=Àæ·Ñ¥¢€œ€æs6ˆ÷E¡¬ù‘ýŸ'ÊvŸ´«áÖùçM<5¶®Ð³Ïžr’žlj9 +ñ˜?yÚeqZ¯hî‚I.­·§ŒŒÇÜ#ÿØŒëûåæ*¹ôv¡þc=z]¿šf×û¿U½E¸®èÿ´{w™¨}çsö£#Þ]ô»¹ËÅøn &üÇt2µ;ø™•Ôy] ª¯ ±ô}üG5l)³.œ@´¥™±V ñפƄÕðÝef‘ýu£^…½_%G£Î›ò“Á¤îÚ¼ÇÔ¢èXi/¡T¾¹‘}—àMÇd+ÙŠ$†?üv×g´º\ËãD-ùÀÌæËc†E,¿©!éE›Úq“©à•Ñ[•Gä ¾è`7ñoû`9–å#ô/IÂyOÂ=pÃhC´È8 wÒ½©Šéæw—jˆÊôOœF·ª£°,þæ9 ]\ º;^G‘¦šÃå´oô»½éâ:ýà8øø>`RMÑþF½\˜í?ðJn_9«­uÞjEÝ`òšf4ªhZêŽ5˜ÝG±Ó¹ÝÌêvÍÇ|Nßa”§ oÙWnk$9Ò«¸ÃŸy“úÄmætj13 4S\B8šød=V' ¥)¯Î¦þ<#èåc¶-þ6¦˜¹é-rßêCÇöLÌ%iŒ÷`Z‰ãØ_;ÔË­˜PÇLËU>BewÑñù†ÿ¸Bÿ,Ñ:rèŽÆ$qËLM=ãn0´zWζZZ1É>:R£ÈD+ªäûÒïk±ù”÷)ùGGòÚ82©8êÜñïEZú'örÞY•jlç»_; K½ÌüAO­ŒÞN¡ÓeÏ)iéݾ Eo<ºüZý`’þ<™‘µLWªšSëûÔÇÌŒoTYéŸXX“¿tœÕµ™D©cEQâÊ“FW¦fV£¿êl4aÒS:¸Ž‹ðDüh÷q˜ZAŸ{~ä±¶d8¬ÂêÏopœ'ֽ˄‡¥þ‰‡´Çzvò—|DoÞØÌY° ™ÈÖ¡{j‹ñ‹mO^½¾EdG¸JyzuN$ÂrUåIoÊëÀzîÁfW‚+eš:lÍU1›è¾ñú§þ£!8‡Mâú@2~œÅ´ ÜåÐ}"ž:„õ?ÛíŠU­}þ¬ÇVÔ4áð…2LÝ#Ë[ð<Ý8®¸( ìþ‰ô…Ç´1<À¯¾à9vá[¼©« Ás=¥ÿîÇHû·'¤‹¾ó?2Ë`†ˆÝŠÂÅÃÿda* ÖèùÌÍ û…à{úÃR 6¢Ã|$`m%ÿ1UI¯÷&ƒÌ5­V£Êän#©øÛŽ~‰?/ŽçõžŸ“~Tu,š‹ýJmÉcý’úWø­*Kè¿;<~6Øuò¬ d€ûÁsŠÁVø‚åÂ:ׄÿX.ëi'÷é€~게n”ø®ÿÕ$jí£s?dçx¦€ùLŸJ>‹?‘كǩÊi!ÛiÉTÃåè¯2Qÿq2X6#tÑ&„{^‚à'­¤æJºÃð6n‘l7g`Í{`™;žZñȪñ? CŠÇÏùÃÏß!ÜnTÒ›†[ÏEœä\=0î£f߀þê„þŒc*]Pÿ‘®+³ÀÙNšOˆÛüÅ>"˜>d¸éÿ'øU"º®wp^¹ÛJ1õ×x…0 ‘P=©¦¡þ£¢Þv"#kž â:º;¨'ŒþËøU6}™H¿pŒ\£É"ÕS=Žb³šHNGïä?\vdö+WmOUƒ<õ׌ÂLçÈrç%šáï×ñ9 ÷ Âÿ~Ø»Ìô᪨ âŒ1ŠèÙ®?_‹…:©¯‡o½‚Ý7Ѥ~nb`”æÞÐŽê¹±T)ˆàoqG´Ãv¥Å:-ÄÒý†%d&Ì0œÆ±Úy¥ÂŽ'ü«¾ÊKž6¿V\ÞAًݬ f×/ÔJ_0êƒçˆ|çú'Z?Y± V?Ùgå2ç-HXò†øÜ¯…éùù(|þc¸ÊÐþë"0Týk¾¦~ð†hÎþfs\§ÉfŠv`N« {þEjž‚x »‹Ë:Ö "÷:‚·’Ñ®‡ßdè»$Lˆ ”Òž$bûœD!à( g2þ# ˜Æâëåp×}xn €Æøÿ˜I½jUqžý% å)ÙÙè›;»“=¨rBRz«/‡¡ ¦‹álb…e`£9¯!ú“ïªcÿ@ÕÙæóñëÉ/üÑBÌ!>çÙ×úDuÄYÃ,LÍEs4]™A¥ºÁ_¼‘)Þbj„s8Oû@5m}ò£­ hwÈ?¨J@ÿ± •N ™>؇nÍé6²V<ó?‚éa²@6"oqhnáV<®UÂóÙú«bÔ”Ï&|ÆÃSæ:.ŽÀúåuÄ¢~p¸y€i»óÌ7h ,¢ñð7÷Ù‹§QG«³/ÇK=¬/€ê›öð$k æð2¶¶Ù—št\Ø{oxê¬×.Ù®ÿ¨Ã®ÏÁ/ãã¦1ï) õ¬ 2à$ð°nÜÕÅ;‘ýn{+˜n÷ ˜Ï´Çª€*éÛÀœ²àZÇÀÖÑ/÷.üGM™Ã‹Ýtú_}âùzóŸÌlJv—šµGP¯‘†:ó•h© :®Ã^„ÐÿÊ ¼è„‚Wy€gƒ?ZO¾¹FTýföguŒþ‰NzMxÞe~1Ú8ČުàWUéY¯1=ʤ-zàôð+…¨~É C•Í,G]üq"ŽÇ¨È¯ŠÝNÿqý®‘Ô&b[/c…˜n¦¢°³Næ C{PÞq‰ŠÂòT%.‘¯©þè¸Û´c­ ð«?Œê(0 ÿOêÓ¿=,îT²«™ÂÝg‘<¸?øVøóÚdø>z‚Ðé²›Á¯þb‚Tô¼ ¿ëPúƒeþõí³JR}'(L~bejô+Úê5ö¡ß-'"®žî§“ó¯ßVÌÓ7Z¸bI¼È`;ßO%na ³„¥®Gä,ïðõ]Fµ#þc'vè*5ÍõùÚ‹ÜÂØ®Ï%¾9¥õùÀá‡ÃÌýúKÿæ«7ó£ÒbOí:¸]ÆßTù#ÿ˜„=HǨpóÀ4ŠÝø¼ˆ]õ¾_v¸âGÇ—°ŽW U·Yaè:àa=‰¥sƒ´¥EKtCtÂt7ü:E¥’VL»ûôÁcF‡‡Î '•|½ 1îb¦ÝìyƒQFbSP%dŽœ÷÷‡úe zU´¢Ö` ÍE²øëð0Õ­¨ž2ÊB ½©»¸²µ…ìèÖI~ÊU$Ôý#YQ¨o¨‰¸Aþ±N›1 ;ØÀcòú·×Ñ3R}0ÿ1‰Ücˆ1Œ^7EV-Iþ1O) 7>ðÓë`vÒrvgàìô/Ù;¶ îÇ,ßÿ ß]K¬8Ÿ5‰ý¸;ï}7`,ókÛ™¤‘‡Y¡)GÔšßÈ~ƒþ%6~õä­)üÇJ&W@Áaw{PQ÷ÿÑZŒðŽÓbE´ÆË¬Ãêz“øs¾TÓ„}Ÿf&`ºFêÌöò¯ÕèÜ´€j4XûOà÷Ãdyζ#‚þê²Ö˜èç,™T!eãå#€Ê¾#Xò·r úžbŽDô¿bRý C€ A§öå?û„\eQ#Úk‘»¥%†¸âv=èÞZ¹ÜÁìÎ~ž’+ä&ÿXm¥ŸÖ2¼Ý5Xßð T´q”säÑoêk‚ÌÆ çþêJO îg‡y$è½™U×yâï,Vm,þ«†YϼŽ/nFebS¢…Ìøüøë\Æç=M]§©|÷1„Ý¿ý$q YŸü# øÕ:êJ28vƒ>=oZŠºë$òK8³i‰%ÀNQï~õ»óŠU{ÃÃÆ¿ Z°Ps0c±ùFCvù>þÊ[‡æ7S͆–/èšfe4sÂ^àÉ~'Ô\pú3ê&òQüËL<ý ñÖŒæ˜H®6•3èaæ²µfŽ èS98RªŽàWó©®±{U‰-\Ƕøº¬"¢Ðyþ_$R×|ã?(Õ'ÿá§Å…ß¶´iZ½•žB³½Ð%ÞÃ]SÀ³R¨‡~iÝGðnðÙyæ£mz§M„·>£ß@¿k‰ƒGr\ǰÓ-É6F¿óÌ^%¿±+èúã©úïê?òÜÅF6Ä[Þ¯µÇJ'å©F”žK¾5ZÃ'¬†¾Bþñ˜þ‰Ÿ”W‘ß{¨tPwÜÇ’6%oIC>ÐLf“QoTȘŽÞ>ˆÌcüùqø–g¬ÖøF»ÉН,¦]±±ŸfÏ^)A¼ÿD„`yÈJ蟘n` ÌÊ4Žº/þ8SC_‹í°íß/÷'ójas£·ª rñŒØ gÈ â¡ ØÍ,®tj¬Ý_0 ôq¿ZîÖ e4ó$ž}7ÿ£—Ö…Þ8Pú«±ùñÆàWôŽazm9ê,Ћ¼qx1"êÝ0ö¯¹Z«àS1žÞè(¦8­Õ?Ç:ý•ÿÈÀñì$§~:žÈ=yõƒ¾Ô¬²Îõ35rŽÌìAÅîÛG\ì,¥¶5ÜŠçµ:àWÞ†ÎÏ­'«:I'ŽEpÔ»ð]É?R_•wŒÀ*W‚qð#ÿH‚5}‚ﺆ ô2~ÜÖïÑqä#^­# ¶EÆvøiÌ?Gó”Ðe~úß,äàj™™7~“~¾I©ÜE.÷Ž=äΙ‰ÿØÃõ^#ªˆvÎóW‹þ‰·áÏ[=œsÄ<ã´™ ÛhU¢÷É'tfì¸úg”Rfap± b¨?ÿÄó<íUV㬸ìôÕmú~²˜íð .¬’™*ôDTu—æ9ÕåÖ?ƒ×s•Gù¬[â’ó‡ýw+£¨?o$}á›±Ó´ÔEv k9 Çcó‹QÐÜç¬îÇ_IŠñÂÜÕî„;¦ÞÄP¿hÁÔÆ#>Ló7/R¥ÁubêsF=ÑþÜ^LEä2¼¨Ýi=9ùN D7'Óï0ìN¬­TT{“ÍLa½ÆøÔºTNFÇçv¦Iyê?|èÏUE×G¬t|ÞuêÈ+›û©Ô˜Ä9EFUMæ7Âjw¥:K{Ï•|K ËLÉ„ñaè|Çcå3YÃà¨Ç0íý2ˆÓ3ªÚm6ý>SÇgsí‰ôv~ç‹"¿ô7ІÒêd:w&ÃÌ56RÿqÁôVOM¾Q„틹‘ÎŒîÔ‚¼g½Qð!¾V ²’¦=äÖþ%ñªúÀ¯·Ì~ìÚ ò»ÿîV,Þvæn&ÿ˜Î^½©g,Fÿ«íá¨EUâLüG~úO ïãSžŽâ¡.àWeF±ûë‚ÿůÉéŸØ×ygÝVÒ«)œï~í0R©~j2mœ–V¯Ç þcj\è½OhŒHü‡;ý¯ኂ¡W‚Ë~ £UX¤ œå½1´"ÜÀ|R×QA­#›˜„~¢ õ²nh³ë ÚÑŒ|( öÞƒè= Ô Ð§ƒ2Ž™…>…§‰TKп¤¼Ù Œ¨!üOB¬UWÔ±WägîȈWz–BNYx6 ú)9“3Ô<ÉÅŸMEÅ柯bþÇ:Y…êŠ 2Èlütò>àW‹ÂÝÝ絪 ÷¸ŽÙÙÓ<°Ó N›Ì©hÆ¡eM½ÊCÿÄ ²±9˜¡çd)¹Ä5Á¶æ®f„n š¸€W½‡ßo îD&sÎ'‚Е/å»Ðþ%Gá½WšC¥ýK‚åHØó®ÔcjàMv¿Ç½"àë-§”C¿; ß$ø”¦üT1ºIÇÇç6 õ¹½ÉÜ`Êa¥—2Oj°yúsW´vÍ©LuÀ¯ÎcÛ¨ú†êþYWˆ8u;\@sü‡/±QG¢w±r0™\<+ÍdÑû°78¿ÏÈ «aJÌðwÎeºOTG˜FFpžüãºh…?ßBýyRú—¬¿º†ÚŸr^éëž3:Ó¿änø…Bß½bþàC@V°þ| x\!0¦Oâ¾ìÝ,;éÙáFû/³ÎMj\B)qš]|¿Üdê;‰ÛXø¥ð°¹ñŒCñÝAª¶aÝãïÿFnòöú*\w:âÍD‹ƒ±Hó ]ÕNEXr¼6V4E±¡ão<ˆ´ýˆÜŒt{Šê?¨eȉš©¶Yþ£9•˜ùänDä/Ñža1Ý? ¤þ<Y[¼Œ?º¥]ä½#ˆ¢“’c39†Îg} WR?ƒŽðéÈ5Xà÷õá^£VÿöÏj5ùîa:ye ›&ï ¿ú‹ùQ³Y½—u­h4GEÇ Àvà(øÔhàWÑ͛ԀœçŠ—0-çƒ~žH'¨eç|õy§ÍøÆeø¸÷TCäeb…¯5‘ztꦭ/ø˜²-¹Ìg|\ôW>"¬ks{T<3‰§fáÅ;ÂÔ¥^ÂKÚ‘Ù°}`ó£4‹‡ÖéyMM¬¬?¹H”]a»’b÷Ëç0&;·›\¦½$ï~BÊg‘­Þ5›•Q\•±¦âåÖXI‡é’{¦aÕ ™hkΊShw׿aô•¿éß^Ií…Ž'£QЏ¤§Ü(–É¥fGqú©L"*ðbŸ¯É>þ ¾1s'Z=¨?Æ•ª€ÞýqÉG|Åeìô¾øób€1‡¿•Œi"àËС½5uðO™k_ÓªMÿ’øŽ«ìs¤4˜Ú¾‘¼i»ù‘Ø5Hx`Ñr£f)ø?š?8Kmá¼³>*iþãþ‰™Ð_}Vç0ÿ¼"èR6Ö|JÿÄcš—„~7Ûw GçåôE 5¿¾þÜî‘TÊx£?ÕÆ ¿z¦„Éz¦ÇÔ]B²H5ÒoÓzƒ-eññËŒ–¢6󣮪~ø¦éb-xdêÏ:ÏC¤Küë›qÕÅjK}u‡±¦õ M’t­2„Xhì€%I~ZK:Íñ’·Ð¿þ톤Wľ™Ø¬MvV€ÿH‡­Ù~Õˆ*ò'è¯$U0w¨ûÓ#¼¤\D-ž'„:ºÓXœíàþ]ájþ‚)(DDWÛ÷†lù:Ö»šò“jµ°ôȯnà)3Áä‚IÆ3ÊK¶à?ë åT ²i_=åç×^SfŸ— ~Iþ±{®;ý†¨Gô=Ðø ûùÎÜ®ÿðÇ=$G¹uY‹ŒQI£Vc Ü,êfüí:ñ-6`»Œ-?*_b­ÆD¸.›´{p7Œ" Hà@€Ó-"—Imî¼"£IJÿ’ãàc]áÏ'âóÃÔ?AÝÔUÖÀæÐÿÊ_«ŽÚã,Wò7<¤;×$Dn#ò¿õCßd9îQµÖ•0mÁQÎÁ %`¯©÷û›s3•ùµÃ¡Jþ‘‚;÷´Ñ 6åÝ´Ž1Ö®ÌfZ½¬âÖ øAxŠæ{ó¾²)ýK. h»‹Çl/Wˆ0Œ²œÒIÌ‘Íàn¨#2ÿ#DÄ ³^è¬'w[Ëzµà/ú‘wl0ÁƒgçÈÛÁð›äœyˆP^ˆ°Ù I©*°¸[íšÐØæ$£±8a¼—ùÀ›ÊÓïª7}³9n¡^;ŠÚŠ7 ¡kú¸Ðüc:úâ! ³cÐ_ípî·†: ü*.ØCWxž½d­fFP¥÷ôUW˜ÓñÌBÕyrG"ÖohMcvTR+½Y”.#'¹ócâÇÐã;ýÇEüÇI1‰How±›XkÆaâïsœO¿?Ì*ëØ šèp”¿zcãYÖ»· ÏöG±ì<õç.ÿ“þ%IU·oú'¡¼6ç)Â#ñ“·1Õ{ÔNÃT¿ÊÇ*W•tO\¨=ÖžÓÿêàO~?ü?¢¿²ùbÆ®tÈvè³Ô#êêü‹‹8"¶.Q¿[SÂõ'Š3`~m_QúóS¢6½ý=ˆoâQÿÑ4J;OB½e~}-ÖÍî¥Y†·ÙoÃG_Æýy ûP0a‚žkõ¢Ô¿ä˜öDÏ–šÔ~'Ö³3ùrZc9ØûY*ân‚’•Å*¾ ~p°˜ÿÓ#\¨\cÒíi°ò7p—ˆî÷Q=Òhîù‰ É•àL=‰ñ›AÚÏ®öŸZ|O ˜[xŽTXÁ’0 i±ÊE¨’xÌïçû±kĤdI¯õèêê?”þèw‹“ ¯³»i=ä8Z°ÂïÄËŒY0 ïÁe6sÌ'9¿7ÁI|éµY»þæ}g¨Yô[â!ºµ#x£àRÅÉ-ÎZJ¢ýÂb¸žÛÜHd Ê5À3ë¾ä]z$ùÇtêj‹‹œ©ÄÅñ9ŽYøÃ?ˆ‚Wâ+ñ¶ñïa×OaÕâã?–rþ mOåhàwúÝeZ[üG9ÎÔy¬}8ƒN°£ñ&vÏo4§/©# @-U™ÎMå@ÆÓóÉÍÈVÎK£…áJÛõƒ×±$ ‡^l+‘ʸ…Xèwç·¡Ây­u†kLEÅÔWtË0ÃXü!ËrŽG𗸮½8Wçço,?ãŒô0·’­|‘#­“–â¸KWÚfXÑ"Dü·ð2 @¹‚øYO¼Ä"£Lþ#>V4)ùÂmúïΆ:!·aƒ«³7ƒùQ3aŽQÙ=È<(Çšoá}Ʋç.xËä ï¹îK¾éŸX™)ÚýðÑÃáãÛË~²õ³0á?ºÐo}–¾úØ“VËön¾¬Þ­vC¸š’p:éñÎ{&ºD{øŒgÊ0‡SM` ¢¯T0óGÒiw¯•ɱÍÔUøô-°éÏÍXÖ>øø¬d@ï:s¯ |3;ÚUí£?£7FYžÿér©¨&—ÉÑŽ "Mè$Ÿåk”UÅzƒFb–Y—>Åð™éÌàj6ÿñP4$ó¾äôG™_{Xüɼ‚#\*Y.ÔxLGß½†]¯¢þü­uÀ±„*•zôoB.×t+Ð ‚Ë{,¶à?òÊä2“8éÜñïEИ°\9þüóøá.ª¿¨.Ð’é}É?lÿ±›þW‡µáZ4ê?\±þã°[Ÿ ÛÚÆÝou£N“"#-koé8KjíÐÝüIÿ’ا¼b"óŒ§SÿÑ KÓG| .EýUu6•ÏËyö|@uraéFÊý(R}ôm\ýs`N§áSBàχék¢pŒÇµ»z&¸çä¶{l~ ¾.3–s ž£ ÿ]â3”J[A5Âs ‘->X¹C¦â‹­yGÿ«{ðÞðíñuC©Éoª ·Ñ=y‘U<ùiýG-v¼wýø¤ :™øk9¬ÒD=kBmüN0£x_!Ä+tV‘ÿ QÚ«ÇEEléì.^œî Éá<@¹É2Æ:zß#‚Ý@>s‚Äç#ZT"Õïê\j]ð’ÇÉ×ö’»eå‰6ðs±ä#‘h¬g[žfÏ­À;7!É—fÝ$‰ÄÌ„?/¸ö¹–Œ_1Ä©'šÝeXuþ"1»¾›q“&•áfb?Ú ê;«?þ®»Â­µ- ùmX!{KKbËxÔêÅ¢«?ùGt«>õÕñ&ËaÞƒ”M"Ê_€ÿPáä†~ç?4g……Øñr:Wc4þC1™¶¢é¨ÐNòíø×Dîqðî÷ñu·À`~#Šˆ§í ·â ­6w„]ŸsÓ7e{ºÄ:ga²ŸÑw?³• & wħ¿º„7Š=÷C#v ½ÜèáiI‚&6yŸúÉrÞh“Êk¢¾#?ÓY>ƒuÙÅ´X9L&ôª2Y‡·¼ºà-:§Óßô/©¥Rg£‚èO¶\oTíºßèj½3+±ª'“²2XÕ©’Ÿ‰ßm¢ÿÕï¦==~›7;ª Sóœ7¡¥.ÕÞƒ_½"_Ln.66Š{F/úïzaí‡Ó¿w•yçÑï¾¶’Óo}!¬ÞjÝÃŒ#ŸY„o]Dï¹öÎóW ýÕ'bÛß¹§ày„+˜\}z«ï_ bÞìQ&ImE5u•|f.½´^3éþ½™ÄÌE ÿ-Žá£(M¦~Êé?6Pÿ±üʃ d ûGôWÕ¨•i‹÷Xhö•×àÏ÷ÒÓr„5YZWòiäŠ÷yJÞâ?lþ#>üùÿ‚ÿˆƒUÓ_(¥U‡ó<9/@”^Hú—„¨+µœzG=D­Ì*ë¨?ßHE¡BýGau[”VùúCÁ£ç‘±?§D1cþAkOÝ÷iý˜È êÏ3übÿ’bZ_ðž\õšX†ìô/©¤ŽWo‚Q'ea bƒô®QÚyfúM&Ò‡‘;îã¹,€îO݇)[‰ËÎbÃ6ƒ»ù2Õ°o”òóÚ=8SR¬Þ!Ã,ç&c5Úf_`Emu‘ÛKG­ˆ¬ê׳öu˜rˆìÃV¾SºIä¹›Úÿ'vÍKFR„êàcb"¥ó?~V-š_ËB¤[gå"yFLò¬‚pRñ¹Ay>ƒâl ð`í«`xǘ͢¨aðÂŽË~õþc— Z©x‡dðÙÍÈàöòÛÑe^êø»RÛ|ë´ f÷f!5ˆ£û„_(ô]<êÏߊ›ÔxqL‹A°êÀà¿¡: 4°Oé@†&Ãù¬g舵4Ñ ¨¬˜<ÿ1Cɦ7ç`Æ7bÙ’#ÍÀô!j] ƒŒ,9܈ÙÈm|° þc^°1ŸéjœÀìŠp„ƒµÁ¢hvð¦IàS¸–KÉ•¶ÀH¤„í>n}6a—K0ÿcóºÎâçæ“§2š|×iy¼ö^ÄÂ{€ÿ˜€ÁÑ vü þi¶©Ð0>5wáZÊ›ÏCýGL"ûs¬ÖQ6à÷G˜uD«€%;G­L~zôêØÏR-r“ʺƒDÀq…™ÿ±CæÃB_!ZxE?ª@òSr?wS{= õ¶·n$fâê=B±ïæIŸö)fc³ŒN Ç« å3=œõìþ%`WEPðƒÉY2]z}ã?ªS?8’̨7õUÈ)*‰O"zÕ¶Ô¤Á:`m ÿh@Ç‘…Vqð«ÃV &üÙüù`rOê›Ê/"ÌÞ-IHNÎ̜ٲÖÚ{g2³ƒ²U…Y‰&©,¶ü³þøaþù]G76–d9vu;lÑUÙôç=g1Ñ­/9È,ë:[Îü„׌Ž:ŽJ?ôR½”­Ôß>Œçõò z‡É?’ñ{Gãïƒ,3[ÂGtE1µO'Ý=Tqx\Û–FÀ:_ èÿu_Öpwͳ×â½¾^óÔ‡ÛN©í0ÛMÌj¯zLg®ÌLÌ› û=žnó·Y¯9Ùêþc•zoqL¸»6—f ê0TtÃ@œ*“…¦ëPJøæD÷ ͦè¯Yùà¾o ’-fì°•‡ ›Qt EËeçET4¹Øu¹oÛô2hØP™Ô¬.#‹˜äRÝèמŒŽŽë™ÿÕ¹×Zƒ~*•5™êÄ ä‡“M»ã4jhæo­£ë…»þ£ü‡=á³þh·ª/†Jø&ÔŸ7¥~*ôòµû_=³¡³-G_÷4ôaÏn&%Ý’úWý¹Û¬g~íQÑON…??*W‰žfLú9ÎÅwì0=© MOåà :¬¤qV±†Ñ¿ÜÄšÖúïÞ]±™“Uü7Ö2ÿÃfƒÝwæ‰#‘VG ×c öAêÏã3ï<¹QÉxª¥à´î¤þ|) ¬'ºÔ ü"ÿaëw'ˆot.8MµÿvæGµÑzÑçØüê™ñM÷‹ú«¬z'øóž –¿ƒæäã -OýÇ âßpéoÉ?Fþ¤ÿHBǰ4Ƭª=‹2+ϰ§bj9Í\¬þQlØZ¬÷=ÔR?Ç\Ðw£ßm&‰y/OKœÁÂÙ“QÏ¿Þ&^Î@ÜïÏ}hûú«Áð‡èW*©<ÈÉŠ%Èbq¶Û†ó¾ C¼ÿ1¯ü&¿é¯ƒ=ÅàŸ&Õ‹óíÁºü¨vŠÍLOÞ‰x§]²_cãwp'ö¡HºApC¼4d¨õ/蟸^”"Ö‡OÜÇü‘§Âž_»þ# øÕ,”‰‰íÚÉ+ÌÿØGþqL–¤þã}ðmñy<žÂñ„¨w+whèP&°ÃÈð&Q~ÔÆF;3“Z€Éì¾Î]|ÿ±´ëÇå&9Ò0ÿãVfþ"*™•]t°‘*Ô·ßñqiATüÔt4§×Èp–áãÆákâ Ÿ4wµÚ_kчhÿF¦â W\¥¶׿Y%¿:Jþq‹9R{Tøµøïd7£øsööèñƒÿ˜¤¿¿jÉ SA›¶ªiœ”q°»ŸÁצһ}? ítë Ö¸’ޜҞZ½ÆÜäžÖgƒõ¿:ÀsH dj&ùÇyÄéˆÙ Æ}ý¥âQïœÔ9Â\È„Ä!ððy±}ÓðFëÙŸO¦b°ús‡0éú⇲©)ùÇQ¹DmAû»Ùá9lr6:KÍ@5žúÏæk|Vx¦C0èûñ‚½ÕVá®[.ç(«F—Ò ¤³¼ê¦ê¢\Ö¸g½é“ÕdÂÖ'¿z‚•ÎÉî.’ä†ã·;§|†AÊÃý~!æ»òã€ü#—zˆJ2‘Ù‡Š¢{2.sžàÕ†š›Íñ–tnd–ús+¼ÂRf‹‡Çø[A}Ñ< ]þ·Œö§q—ü£!¾`ê+ÖÊ è¯ŠZß­>xIf8âI†ÐÁý6õˆ=ðzg©zŒl% È?N€˜ä¢š¼æÊ?Îikè«Ñ‘S?k²HÌ_AÿÄðdáÑ”²Æ97Àž£ åú·×$ÓœF ò‚wå…ØÅ.ªÁwÁ5®ðÿðª 7ÿñ‘þ%ÿ«~7z¦øú4ú—47Âé¹Û»¨ÿØ‚ÿx¯‡§Züת[n2n VÝ®»Î(oàÿ0gå0úÝïF4# Šà_¹-¹ô¾Ø·¾è7Ø*9ðÌÜÔú¢¿ê ZRçWÎÿIþ<:}OŠs°î°ú)A|é:RþÑXJáCT·K¨ÿ¨oLþ‰-žƒÿÈ—„À—7³µÚ ~5 <æ"öÐRüÉmq’Œ&è  çø,îqÏLüGM¬qeü‡3-CŸ—ȼ4¶ï&1ÓMüèÇ0ùóŒÄ©hj°Àþ(Áâqú3c£cÝæÀB} ¯Ù@†ä…6ø&Öò+ÏÆªÿ¸í¬m]Õ{îS bߘœþ†d³éÉ•Jå“ãÁ ƒ’Ù]\î¬øáE¢µ~©_ áR_;¾R?x…ØË nb¾ÜÊÿsp­/ñwÉ?ªS¾ [ÛØÞæñƒOˆøÕ(òhˆŠ“/TE¿ó–ü¯.õ¡ÉÈ?J“oÌ!»É‚E^‡üž¯î"#™Žr²µÍtåZðÞÙô®`£•¨´ÜD?A›ßhDþ‘ÿð…CæVjÒ™—éRÉÜ/6àØ—`íþ JþþCÿÄ…ô¿ú*ZÈ$XðÉøYÜ¥AX·œæ:xï/LÌ‹Jö"û«ÃüðI©ívÀ7 `ætÆÐ—y_®ë5ð> fiño“ÁUΠB½`ã‚äÇÇZ¥vö4=È?¦™÷±É©ÉÌÞƒF‚?÷”5ƒñÅSr­¯d¦¹c^r§Ú@ÝaW2@ƒyàƒÈ|Ñ9õ0—Ò¿DZÏÉQʃVG-| ž˜Ú,¹žq G.mñÔTPÄ!d[­À±‹Q—WÇŠlÇìB¿Và!u ™é¿kϵçÖÁ³FÄä"›,ǹÖûàðпñd¿’Ϧ2'Ë*â¶,E½å,ós¹ˆnõëÐïžaªÈP¶óf«#3O’ðD¢ÁË_F£Y5ÐD¯BÚC'fiŠ~⦚LÖ:Ñ,Žþêô}©ë{@æÑüÊöGSÈF6RŸ¥XJžÊ¬ý[Ñš÷ù¦ËÐö'Å ¹˜åMó2ôW£™BÒ‚éд¶Ú8—9c8ïsûäGÑ5ßò†èò!˜kOYŽêœ"â×:œ»nÏÿ¯¾96jm]'ëóÏÓº>ûµ…íúØz=Q‚~ívß}Ž toß«¿ÒM=Ê/ò~̃›M]xD43E°Í~ôÍüóXþ·FT#2ˆØ¯ì/³>0+ð›ñð¨1ô»ÉÖ`ï{’ÅLŤ$2/öùÇòïoº»j+ä­vÐëã?Z³ÎC”M)Y©\QZß²x£¨¯<ˆF7r‚oED] »OÿÄ×¢ß9åÒnø·¢ ‚7šÏ´èwçƒu? Û†ÿðãÊ#ðÙgÙD\ׯ‡°¹øâ;‡˜Ú.~ª4~$>Y›=I¾œèk¤37R½Qˆëí‰÷èKæ¤óÑ£ý¸Üpøóú‚.¹tGÿžó%ž¡?—ؼØÍr‰|äË©€¸Á³Zƒ¿Úf6–Ì'…ðÿaþàú'6áÉ%ã¿­*«k($æÃ®¡æ/þã,•™ÌD÷Uà?ŠAy5xü¶ÂK‹.ÁžôT] ;þh/V÷˜š@t1þ\§þ|¶»•›(ÿµ!5±|sÉ ¢eµÿ~6øU/™JÚÑ÷¾^–«;@”Q—+Þª.R±Œh¿(ýc31í.3üùj&\M$‹iÿX÷ï¿p ž®P°l=‚¸ö”ó?v…ôR'èðW‡ì(<ñøH«0xÝ4©«ÕDú—Øu˜ ©ë¿Íþ>ÁyQÓÅ×C)ƒÿËjÔ:p2–ª>â¦HÂŒ¬6hž‹Ð‘ö!õ)•©ÿxJýy%úñ^…?¯‡ßh~ŸZùBèâÊU®õó£,2ÜçøúxfK¢Ç—ò»ª‰•MEüvs¶•…ùƒô-å÷ ÿ¸…†j¬rÙ‘P_MÅkúgºú¯Ðýç¥9ò“E<°’Û¢( ûûzm'ó?΋Œd~uëû'þ¡÷ƒÿ˜/rS à)k0çÑîPÍV]Ž¥þ#&¸GwÃpþÓÞ¢i}´ß£ÔÿÀÆTÅN÷U>à:÷ŒiØ”‹œß^~cñ?-ôwL?@þÑ„øó ùÇôGÀaÖÙ_·~çZ˜ â#\Ðp´wH‹¯wÜ¥úü0œ‘©Š‚º×$šú mXÞ!»_Ô&¼Û(l@#ù*ÌùµÝô†dɉ˜®c±RÉfâÿ é^’…÷ô3'x y7 ª‹à=‘¨Û‹§¹-Aоt,fâ|cò 0 ûAþˆ®ìÂü*QòLÕ‹áCf²ä*VûS@‹3ºÐ…>s¢bøê^,))u"ëaѳÁ1_¢óÅlz{#8Îò¤…Øî¼ë饢Âð±ÂË­¤{+ô»UÑ“¶ƒÿ {÷n(übôWÑÔ:”9‰Í·€Ù„ ±ßõÝr"ÜÍD¦›]û¡;èT½‰hÆÉ qÿñ„;·ë¿«ž~öWùÊçLœ]oRóMþqDÇpft!3(cÎg£âAmáC8•k\I5ÃuÚ;´°¢±ÈœïÒ•k;ù‡§:JþÑ þä«zI-]˜åTu/VKéÖu›«ø¯qûìO†2èŽë¡äs”ÓFàyqZ€†õ£÷[có1?1‘jõˆžXúúØûiVa4^WÈåìÊ’äŠ Pæyérk½{àWÊ;rÊæ@zÛiýôÈF ãf@wÃÇè¯6èÞàWŸ©<þKË}t”4Á(yõÅã ÞXódþù!QH<6,#Žžä—ö¹@ïÐÿ*'˜åHð墴öF{$Ê0dŽHÆ3ìm»ñµ…Z[c'U{È`« 3쮼aÄ¢‰éà2ǰ[D üÞX‘ØXÚ"¾~^?ŽÿèŠÞä"¸À)æŸÁΕ^œµ†ÒKéL\ÿI¼­"ÿ¸Dÿ«+tÀŠAß“‚Dú-X3öó pYÞ»wÓRxëÉØŽ¢òºVµÏHøkèwšaŽc§;ÃÅ$A¿[”è,7ïÃz¬ýqò…\p@­QϾ4²h¡å4Oó4CV„׆GÛÄj_ÀxêÊC|-Žj ÿÑ^½—9ÁÕ_ÇsD¦jâ¹âYýV ûõ÷‡ µâD_±ÐžxpºÊx6 /çPÛ˜ÿ1—þWÓÈh²Át¡kf7z¼ˆð®†P¾ùµÝÄ9²™UôÛ5Áùf‘qŒg3Á#pÏJÃpûaͶÂU¼áª7°Ò\¬!R‰ëÚ•¿·õÎÔ«`s‰ð7¾ª øU_´™¹‰Þ#™)Í`øÒÊn^ST%ƒ²âý/öÔEë°û"ªÕþZp²þL|ðÓÛQoRÓ¹OcÈ?ƒÍÀ"?2“ÁÞž„ÿ(a s8§¦ Í\áÿ©êqž’ën•¾½âiòdP1à±à#/ÊGXöMxÜ—j4µqñ à?6³^?Ó˜ Ìéëy¢ÁØ~´þ<¹xFvu‹ÎhcÈ?öÈãêÌB~s&‘ä@Ù:‚þíóÈ–®Á§,WµÉinóÛà•;©^ôWõM´aäx£É;àeºP?˜—¬¥à,Ì+¿ˆEÎK ÝŸ¼ø¨}ÜËŠ €-ÉXb0G*+j6¿@lÀ øsîï ud³7ÕäþÒGÕ£þ<2m+ŠÝ¬Îc`v—æ×Ž þ#®5†Þéyö‘Ì~ÊCöyÅ—½)¥51žP^î«Z* RkŸØÙ˜õê2?ÊŸÜò;½Èº£çÊ|ªÖàŠQÇ%5³©¯°{Ý8õµÀÜøÕqmý{Y'šÚ$³ŸÔtÁ_„§éŒþjŒó-3!+Y«Ô ´%ÔYöTLMncÅxäËò?Ñï*mLÀ¬ò¿Né;G-¹ë>ýõµŸýí†öYÌ´Ú2Ì?OÆ*WIé¾»…ü#²žòùó'ެ†­cúB-\yǸ¦W¤Óü!c·È€ÿø £ÿ—ö9Xÿ“xaŠ`Nu}Ñþ»[@ã«0ox:Ñzt9å'ë?i‹´’ÆüÇN,f-,LSL56¦cs.a±#¡qÀïªlLû‰›çÃüóÄ`?‘Èm=±Å=ù3§bX@}ØàĪ \rø!br˜×¼Ñq’hí p€âäâMï†ÿH‚õ¿ÃÞ €_Ýf¿+agpªã?>†±ÃúzE®´È®?O†ÿÈÆzá¨GÎÍù ´‚üc3ØÎÝÇâ³CsG’A¿ïèGDZJx…þ¼'^ðEcj6v ùL©ªÈqªŒÍ%<ËBT ï¹ö‹ðuÄ~ýeÐ…>K§e¡â búåd{`ŽJà?âQ­QFa×Ò°ˆ¦;©Jä}Éw€¾})ØëëüÇ G^£§¸‰´»Ä‰ÕÇÏņ¨ª$JªË¶6•wõ¾`'i,*­~0_—~8ÝkõÚ(j a·ƒ8Uàšíœäx‹ž#WLjÞrÒÿª0ˆŒ™â ”U+@ÛÐÅ!ËÿÐw€þP|ç´¦£ûî-,ô4NÇ(´R_°Ä«Ì˜ôÜÈŽÿ¸GŽPDh*Ú¡¶å&›KfWN&fþAà›¸_/x–¡ {šL¦w)«Mfnà?öƒÀ˜tÀ¢Ê€óÑ׆OYNÿ¯+x›+œÍÁØÂ äù9]¯Ù=®äQê?&¡ ÉŸ³³üÖp¢ùTsäêÏÐK« ÈY´»WÈxú¨qÂýŒ›8P?•üã%Õ$3TCqKd£6eó 2ã2¶¾¨Õœ~éS­B°Ì§©Ó+oîæYÿI†tŠŒ*¦ /ÝÜã[Ç"ý=6öùGs(Ý?•#_ˆƒŽÉîXÂ|&z~]F¿;ËœdÝDÏ6<&ë%¿:L,XR¸ï_k­'/ ‘Ïh¹Q-^rI@ÿö{ÔÞFàK÷°Åt½z /3ÿ±ˆúó¨ÌÿHK”à‹è*}Ä Wþá«­`~m[ÎÔp2»9ÂÃL‡ÿXföAvÝìL¥}k§|TtjÜ×*Ý™‰»9œþ‰ÀŽ?ˆµÄžôPñĹÀø_ú8¶6*Pý‡¿#“'È9ûùmÄ×>R?8[ÿªw5¾iYYÅÇS_¥/Ð-CP?¸ûç—â;ï8j{àÏS¢ê.¯Ó¿½“®æ2§+’ÐÄ}=~˜Ê¡ ¿®®Nÿ'"¼r ¼)€•ÒºPÍÖXæ¥ý‰ÈŒÿpÏñ ú³A?KEßÞÂÆRÞ”Ó䡉¸F¨íØ‘×Æ&ÎÆr’7"#ϵ#lmÐ ñ³›ú[㓨 &rDd쾞JŸ&jIÞ³æ„9}‹þj„¸æ³åxA´¶HhXß X¥ Ø÷ðàæ^Øì` Fê « Æþô”‰ ·ê%ÄÍ9JéöüÁô/yDÅARü¤m…?õWļà̯ã>x¢ >‡OxÊü¨ØZhk¾v´¢â¦©ºCöñ;? n«'•/›ði|¤²ë?NÃ+ù‡Ý–ïà–œª¹8bÿ]¥¥B¿û«µœÈ‹Ÿ+ 7Ž<)W˜^44bíÇŽN#Gh޵ŒÏ“É?M~5½_KôW©±’­É†ž ÏmŠß‰M/M62žŸŽŠÿ˜Ãpün=XåbìÇ9J¾4NÿÀôÕK‹>؉xƒd0Éñ,Wг*!û­¬V.ºCåÅZ¤Šã¡’ãZ­Ü£þ£F n}=—>ú}_›±þc< QKêQ"áwƒ;a&Etˆü¨˜ÕRôq)‰_ó‹TI:¨ÅÓ9;—ôJìýQKq¾{ŒÑU5¼½+,Lð«Dè¯9{Ñ8;}˜Ž¢–Š :t ŒíŠ:ɵ·1ÜUcöS£dÈD–õDÆ7¬$ÿð‚w¯bö'g{ 3“†fÝ ÆÛóuÁí†Ý´ÅÒ¨vü :X¿[ÑQU[Î:‹ß“½5‡¨‰Þ¨ùG>д]Övú'6¦þc±UƒŠôÓÔ‘W‡ëjƒ~O3¯0s‰¥‡ë@¿uŒÖïrî¿á=d)¥V]ôR±èoHÎÅüÁStO|Hÿ’ÍæBê?bâGn‚öNÂÍR§Á(ò ww£?´–ÆS*Uät¹ÿ±K®¡ÿn²¶z̾5ðCáë­&¬oãW¥©–OÕLÁ®¡…{ "_xºüÇ ô»;@rד¡ÖäÓpwÃÌ´£d+óÔÛ3?ʃ ù8ÎÖºQfàÚ’™¼‘"$¾ÊøŸð‰ñ]'ë¡#¯Ïõ™ëüÔ9µ§šŸ6 oÑÔx©d•㎸ú*B>éß™ª¾÷§Vùû›t­)¾" ýŒî‰Úð·õ¦ÚmøUz¡‹7Ô¼ûû[êÏŽúb¸Šá¢–~­l&Ú3?j¼vRT”ÕèKh€Ì¥CÊÏ,•¾'ÍÑ_}ÂÆu"y!€_5’Å)bÑ‹0÷Elì@Ñï§ø'º¿eM8uˆhþ,lÊv³=êMªK>ðV'ª¾-N1'ñH˜;\Âü¨Ob9-oÁ:.€á{¡÷¨D¦Ûü>5¾)Z‹G¦ÓPÆ5ª?/¤—ÁÔåÞ]Å7&&“I…NÖ©š•g‚ ØÂÊ[±Ý±­Y7¦H }í6¢À~ÿñÏÕŒ+ŒOJO2›èScå:©úqÖãE½A®îK|“uè_r/„ãhùŒhàWéñÞáɦ¶Âm”ÄÓ^ g¹Äü¨±F$Ðû^ØåÄð¯žëŽ‚ÿ„~w¸¸Š7Ú„Ö("W6 k=Ÿ1{$Ô0VŽvu:(Ž?:ªøå•ð8sY÷£±Z >)¬þ›hG†—’{ÝÂüÈf¡}[OÍFbªý¶¡«©ažfºFørä;Ùa5† ½®b‚_×_uÄhܵô(Àö€LâÞŒ@OEÓ3=qoZº.í¿*„ט‚í+ŒZÌ e¸j†ÇÌ,ÿ¸¨ÇóäÀc.Æ'œ¢ ÇV³ùGO¸äOÖEøåzäF©ø¾¥Jrfœ Cz@~ØË¨ä,–¯eZô8¿³ÕjêÏ÷Ò¤¢Ù½ÁkˆËa&nü ›ß“úóÛÔˆ¢Þï+^ä*º¨ð«ß¿kKñÜ=À ;±ÿÞ” ÈZ:Z神gz¡ˆ-d5ošHgÛÆÔFg§[9“cé.v–L)‘Š 7¸ÎŒ¤ûwpÛ¨j(ùÇ@¢Ç8ì±ó íùƒ«P\•qÞãzŸ3åj/üÇMfqͳËÈwô‡Ùn³ªp[‡VZwø˜Ä$“ä&µNxSÿ‡ŽíW¨|kf£’ýõçu郕¥6ùG3‘ÅLJWýíØˆW¢0 ȵ.ÿ±þ‰ÛÁ¯¶¢Çð’â°™Þ¹“\­4Ã̆Tº$uzRŸþ%óðÆ©øÊt´É‹eœÀò\[Âÿd~­E]`ÿ‘õžž\{DÿݱzT£ ýKìù'ñ`Ï'’‘ÄÐãýbÿöŽúôJL2q—Øüœá¯¤ÿ®'øUfá "9v˜›\Ç'àƒAúìÁ ‘Ÿ·xüGæŸOÑà?ºÐ—P`û«¨ úóîÏ’¢8hb€ÙÞŽ®ŽÝï…Åo,?[ˆ®S|¤û{ªÅ[ëÝ?êGÐïÆ 7Šnu„7º=~$‘áòÿñ»Rü-ªª¾âxw6¤%=OÈöw¶[hö“7lg¶I-¹ÝY&]ªÁs_ÃùmŸùªëa¬X@ÏÅ^jã‡îqZベ'å™|‘5Á=2ªï¬â ¾Î€`~î‰8"tüJ׆£X¨¯NaÍkñ3Ña›±öFYÅLfæÈ×Å·\àÚÉß¾ ûO<[Ÿi÷!1ò)™â }srµ‘§w]–¢Â'¿Kd´/¡œ8(×®‰b ^ÙÑVêýèãØ^ Èp9Ùþü!x-~t?þê+xž?™„4ܳéÜKÇ@õšŒ!Žò‚߃ϱóhð4_Ùk1ƈBØÑrOåO2§Ûh˜¶£ƒu¯ò÷G“˜_;PìGß´»•Ï8ìÏž¹5u”T»ððö¤ŒñàG/ÈpæóûvÃÍ%zlѶþ½ÐÿýÙþ£Y¥“\aì³ÍD-aµXËäGÐ_Õ3«f.*8*+…Í[5†‹ðS™ì¥DSÝŸü£ §9€­ßž$™_»tý5 sàÏç¡—zEþŽ Dâ?‰•çÎdVÿqN¯ ~En µœæ•pãÑÂvÄGþ‰é+Ñytgys ÍzyÔA50 ßâKýË,]_£e““Q<"×ògWÉ¢v£ßÝIßÞŠä3÷Ô:Ëçc²R_¢æªù4SÕ@çvuÚªJš1ð«ëVv4Öf‚¬µ'þiÑ{‹x»3(]a³¿y”î„yÑ_ëDþá…èCWÆD˜78å-à?ޏÖûÀüÚàa_ˆ£˜Egb:IWøí˜Ì¯]G?øäN_0»·d5 éÕìl|{Z|—aÅ_*Pn»#Ó_ÿT ÿî)ð«êø‰Lg§âÅÌìlÉ®ªYûÌXTÇ_±öÐeÄߊAŸ‘–¨Ä"£¿R¦ÝÆ›xã³8 ΋e.ÿ1W[]ëã¶•äøóHÎp0ï-™ ²Ð¬Œö໵ÏÙÓ*„ÿ8«¶QÙÞ ?wÆ|A®þFl$nIýG¶ÿ¤þüŠc¡æÎD¿Ó¹ì­,žOï©Ç4’2-wÛ—üc>@÷Ô¿Òþתë¥VÍ ^a×oR3<ËØ®Ôê0'x¢8ml4Â…ôâ®çù÷sý§?§éˆÅ׋¬Ä„=eNø6tëz"ŠËÔ‚<—è6T¡Új…àÝ °qvLZëÚ€K]eblá¬b¹_8á»1ÿc_h‹úú=}ÕH5‰Ï‘OØ<DækÝ«Spƒþí“Ä»0¯y‰cƒðáßp •Ýg.Œw'ÖÙþ*­ò‘q•=¤% }YÃÈÆŠôzÄØ °÷>¬ áGÒÇ(”R¡8ËoXɾ·³íùñK—èk&–¶·H¨m ¬IvjÄóFW—ewÞÏ{LãkH\?_9;›‰Ì01W³;„ücó’à?€WÅ&ð“ƒ@í£Ò^ ž•—ùVã@ÙžcCÏ©×pö6W5…¬¦ÜÊW#®îîÞôףͦ…S+AV¹Žl ö¹ {(ûlšqˆ¥§Ð·0õƒÑ˜ÿ1‡]FÇ>÷æ7AÿuJTû?®'šª‚÷ŸBuàr"üp,ïZ5¼å+sî6[÷ñ]éôêI\è* Ù*yYÜ`ýÛOé ðh[PSä…mïct_ÕbÞ63cÕ0”Miéß^Ä9ÐÜA‡ù:àMðp‹é­xŒ,é¾ÓiÔ zrÄ<ùcøº0c‰Ë—€{µ6 Qáq ü*.Ò,ª}Õ ¦µ§5;S3ÙŒµÎóßužûÜ@ýë;jSÈ»€êÅôáÊ#ã?²ÁÁg ^ã3ý¹òXeˆï‡2·v„¹ÑÊnÅ2O+ dæ‰YÈ" w½ÀÇDЇ§D9“dB³úÈôÊAE¸7«tg½a MãéÉøœùåËèfrn#]ñÂex"áÍ^Ü› TMw]o­œñœ±úØ'½á?Òã'ZÒGfý_‚` G¿]ñP<ÝØÿtfXî·ÄNN¬Å)±Ùå?vi‡é‡R6uoÒNÑÑŒK?Ç}¦=×å(ûÌn•pgBI=gQ:d>E0˜Lni¿ßNpŠ~¨4>£¿ÚȪü[~w ÕŠºîÌ#Gi-œë³_ÛC:Í‹úÁšè¯²ŸbÐkô/Y¦ï¦~0ŠžZ[öKË rÄS"÷ç‰è&3 a¬×vhŸŒK¢‚ø„þêå/æI=ôµ B½A-û2ÎÙEDú¶|IaZ‹Ñ3·\aØœØÿD§~°§± ~׎I#qMaIÌxK¸‰·ò0UÎÏEgÑÔpϰ }ݳú #ÚÓèäÉÞü;&:?_'Á¯Ê漕)A¯üð CÅÙ0wxÁ¡òï&»~ˆ–h?öÔœ¨)™Í<Ù7û5ùÍ|ìhìmn¹¡ïÌþ›xz!r ?°øg¹ÞøØÔGÌkÄ0WÄjÀ¯|ƒéå³È`Ò ]'á9ýK ¸>ûµ ÄD}õBëA·«*†N¶`ë¯$ýÛ×éþzLô»>¿´ÜKG90Ápت{¢•üBÇ«ÑôG9ÀÄ (â8h–NG”_Y°£>Ž·y(ùÌ@Þü:b®H¬íÒìÚöfô%d£r´Ñç§V̈~7ƒ±ÏubÊò¼1ƒy£:Ê'†Ýé<Õ<‰r_ƒŠ5ú)ýÕ9}:¢ÚØ$?,çVðczÊ%ïç7TEE• þ㓸@†4Qœ s‡S¨?ÿBE½ Þ*Iæ]«žu¼¸êÄšt-¿úLÝÅ^,ŸÓ°ÂX±"<ë ð«–ØšK(në‘5Ä…ó©DwÒʼ[@e.á?R•V•G©ŠŠ¡¹•˜AŸ¦u¢ÿ•ݸ/ŒþlýCÑéIþN%B Ù ;zœíÀ['¯Y…—¶ç†TÑEËl¼…»üŽGàgù©’è ì¾Ã©±cSÄB#3–y2ÜôF,eþE€j Õ4A÷e6Í‘Ñè‹’&3ö"Ù€¸ûLÿQ‹ôVnjVãAü°â ðX}É?Ûðßmú·¯ ¶d½¦¨GTbâ?¶ã‘üøîy°»QLe ˜þ åé5Ø… °üEðIáÈjb-·`‘ªŠNÁžK)ý¤0¸WáÑÏ㿉ð#QWÅ3çÓw=)Õy©‰KÏÁÞ”0¿ÃúÄÄ>Ä{Ü¡‚"ÑIü`üÇA½yøaÈü襖rÇ|™ÿ±Øì§Òû¬œ·Á_&ÀdÕ:Aþñ^ö&SØbϯâ,2êÙa%ñnß74…jD:š«õÔÔ Ð_ݱúC_Y˜‡¢x(µŽOð¥9?ÀâÖÕôb “›ãjDÿÄ5ø0=¹ÿíз¤¥7p#úïÖ270¯ãˆX3ê½'£»jŠ!¥•?Z“Œå kffÖUjéî¨ÿÌ1]¿ò÷”g˜Àì!ëŠÈà\ÝÁ¿¢[=á.X%á?v0O$'Qÿn¼Ô7º¢œ„-Jmc_uTŽcƃ[ÑÐIkrƒš|ÊùUrSs×rZ~ä ÏÁþ†Q5î`¦íð§etíŠA†”‚{x„üãhÈ ÌS®ü㬶ÁX…t="6Èbƒ™‘~\^ô/>eîÄkþfÅrž¦Ÿ~TjLÖP™—Lg¬¹×üNøY¬ä9¦?O,ÜŒO°ÃøÿðÓXÚô@óŸ8ÊhÑ‚œ‹ŸÿÕ‰áÏïh+teÔ¤iaV9ç0t/}ªî0RéiQ¿{ÝQœ™ÀÑá?®Ç=5¤ÑC{«-1SÉóÿ)ÌÉ«AwÞZB¥`OБb¦HŸrÿQY4 cT ú'vø©+¯¤Íbþù6N °°ŒXø± B¿3ÅÔC·#hKÇùdôøM w… » üÙsÝ—:ê²T½]¹ñ‘­ÀH£³ÒD2ˆZ 1ÉTð¦Gâ,}/„¹Ã)øæ½ZÀû`qöƒÞÖ—säð—,ÄÑ9Õ"vØ ïÔKª™éÀ»K¢gÄÊ4%·>E·ø3Þí%˜]jÐßrÞ7“ìDYÄdu°F%"k!u±×Ô´¦Ú •^³ñGý±øÃ©ÎpâÓK’é=šÃsŠFÞµ&­w¦ó?Îh‹ƒ-Ù_o/Z“G¾æª&p§Þp·w°Â"Tµé¨>Æü&æA¦»f¢I^ð‡ˆìµ¹Å^u›jƒ^ÁžtýÐê“/LƒŸƒÿ:'™l‚µŽ¶i±[ñàÏ}øù|t-™H={:ü‡7ꯦœŸÂò­6;ÈŠ»ô\dÊÐd'›™¢|¥uˆ«ÌJüÔ$ê+¢‘?µº°·DàP'vØôj# ÍNž]£~õêâ?rb¡¯Ð…f*'lÞhúÝ~ TϬ®ô/9eŽ³Ú™£ÔŸt"y ûQÔÎ ½À*z~µUÛ„{êX#T øÓ¶xÕ.0%U™ï–ž»“É«™èw¸é-ÈFX¥ø»™û”¦¿\ÉîO ;[’níÊWÇdøó,<ÅY2µ™B¶U.³ºµ}T/Tb§™õ –ûLà s9õçÌîÔ¨¤Àw< +<‚ÿ¨HÕEk޾¦“ä.õ͸#¯šùe@Õj²C…ø>Z¸A bY­æ n«­ä¨™Qá?vr×?‰Š¼)]þc«¶‡YM`g¦ƒ_D–ÍNÎ1ÖV³'½´fQuŸÅJéôvF£#òoÖ@uÕÊMwßžhåìwå‘XKž\ÿ‘ê?©?Ï€5tOFѨÛHä\{-þáÓ¬ðçá`Ë#¥ïZNV9刦Ϡ#ïS=*þcß?üìõÁÑÄØŒLŒF'›\eøèEµÚÃú+Æ9ý“¦~iŸƒõ™X€?±ì‰DsŠzÌ?ï¢yÑO1±Åuøæ!Fð˜ïÇ]Ù_É¥ÍÓêãA–Ž Jªˆ¥kËÛ\ŠŽ¯c`²6ò_b“+ðçm~ ¿:MÿvƒH5ººIö±[j÷ʘ7w„ê’ ÄM¹ÁyüàÏ»‰[a^óÇi®åÛY «Py)hKbø :{¨ œºÎDýµe$#,´2†žœZóïMì:J¬~lÖ.F]wfðîÕØãS\uL,l%øŒF,Ím ‚ÞÁoð¢}D>â¹¾øV»HT‘Œ£ŒCL|R3îÁy¼ÇjvwƒLÂÎÁ*Š{!ö/ÉBgbü¢þ#2¸€7×Z™\ë:»[DÅPãüg˜¸s»ƒ{By·~%h`Ð}ÙŸ-q¤3þGéç±ýŽ=‰u&ë Cµ3À<#1ìúþë¬rrºb›µ]·1Ò-ì/¬óPu^ÞQýñ…@½¦ß¶§a8šKP4µ$OãÕtÈžuüªµQ;ÈY,(¾‚¿‚/êGF±”ücõ …ÌZ0îWÉŒRƒÇêíVèDòœkh‚Ùƒ‡ó&Kª§f ×C©Š>…L«8dr“E ¶´ ó`«/ì@)Ϫ‚ÅïnU6k37’ÍÜÇ?õÚA®èø±»þã õ÷áÌ߇Æ4GȢ⹘Œ¦V¾¶¸šŸü£ÓÈJŸ§¢ÿno×}ú³A?ËÌÄÆêÆÞ”Äõ¥±ò­”'"µ°;™ybaÀÒûŠ>¢ÛOÕøêûÈ?rÓîeÚŠiõ¶ã¤Ì‡mN¦2‚ô܇¨ÿ¸æg8Ñç{»ðç)ì‡í¨Œ„•Ž7ŸD­7;{ÈTFh½Fþ¾æ·ZôU5ÀrÎ`Ô9’ Ù]CÊÀŸ—ËðLÀÝœDå•ÀcŠhÚ¥¿8ØŸ–6H›$*’µ€±Ø £ÈË¢wp—¬VA6Fñ¼q\ÒM®þó鿇8?*µÏHÄw¥¤[I,ö±6*’?\þ^y”(&–¹õq;‰Ðá³¢à9ó„Bê5Á üÊGf%Â.Me‹ ¬ÇóÄæ…Ô5o!ý|ð¯M×mÛ(‘Ræ95¥–;;›/•âåD}Dr’ÑØu‚ÿtàÏ QÿÑ‘úƒ¸¤1È;ÙËß‚š/_¬ÔÞJ‘‹¸ =õƒ‹ÿ`(ßÕO‚ü%çôŒX#ôIé±rK©m(K”™ýÌW*ä÷‹ âJ˜;ÜäøHþ±DÂpßÃ:¯†7®ˆ%*ó€Bœ‚ö ÿè7h.cQÃX1‰ž‡|à®ï™"É„w 'P ¼Ybe7E¯¤ªähÛM¤µ»Iýàyøó#¬W‰Üòð¾]x¶ ª„@¬ü4l-¬ùf<Ã9ho¨ï| ‡T‘˜\Ëo¤åÉJ}y\ò6[Í×U©°îoÎF8°©ø‚MXùöØïxxáD _BÈ?ìùS`SrÀ À¯ær÷{ã—s/xªõñTPÏnà³Øèy×Âütqè#´û×c®‰ÿhÿˆ µ…HûÜ÷NÀà?è1N }vàókK‚UQŸ`êW«.ð~ê•H,{.åõ3Ô…þK¶€ i»Jž¾CGªyÌÊÀ4‘èTÓÄ.—6Ms 4#ºØû0þcUa˜ŸÌÁú'Ó3£CÛÍÕn‚%º"ý™ 8 ¾â™êdG¿{˜Â6(¹r0¿öZ '+ùÃß1à Ûëß^Z|ÁWÚõƒ½©SŸ-«Ýtª*^uCù¡Ê`@¿»½ØæGùó\j‘Ïœ`‡÷¹âZ̯u×ÔuÔÖ€¬UƒMiŒª;ó¥3˜Þf]TÊ•`å·ã?‚_m!Êïa¶E›‰Yò{X¥ù˜Š€(*¼t+ªß8Æ“¤äm˜% üG[qW:¨&¹‹?L?ßTÚÃ{\´J2ÿc>Ý´¢Ã: '7@}$~8ÊLÙìð«ÆZ3ã~5JzÐ?q¹ãݯ[ÅòÇ—qZŠ–÷©%à? ¾-e¦¤þÜâ)oåÌ0ßåú.Wþ±B[ilØÝTÎÈf±6eõƒP ,$k+‚žk‹s¦•E_×i×Þ£‡óØöb §»1Müÿ¿JDýyY×Y}ÁäÈ®ÏB1x¡|9-øU|}ŠžÞ(n˜º½ÊYGæÐß_%Ôö„òs!96̸!rБâ«(!ïÓ?± |÷!c—È-ÞvE{¼_ÚçzÝÌd–} Z©àWµÚSj% Šf"<1鄟îuˆù1'a&npÊqu!¢®²›•í*ˆ‡ n÷èvØÆø™kþ Ÿ`kâÏS`0©%ÝÎû~ .äu_ω›J‡<„?oKŸ¾ï–û«gáÉö¢xü *zHg%çµ1ý8Šdð¤)Ô$X·.dËeÀ¯ÂB+ á?Γ´€W𦺻 ¶:!HXMbæ¼°[ˆ˜vb“ãàõPY•¹*nKàÞ—ýÑG/u4­±@'XqÞÍž—{ˆl¢–¸¢~·VÞÈ!¯aËg£Döf%ÁûÒ ½Å—¼6&±Qµß_È6„Ø3:ýc÷½Bð£é÷<ÿ‘›úŽDïßÉ€ªÈ± U ±îºêÍIŒ›°Ÿc‹vqå8KS‰!.ÞÚÁ —ê°ë?:¤`VÇ:ՀʈÆì0ÙK|3óµQ8QUæIuEq**ä4Û±WÇð"ODx1<Ø“nÿ‹ˆ7+ëã¿¡œŒÑpÝwØÏªÓnÑÿª›µ‡õ«˜º9<<ƒz³ð‰;PÎ*>8ÈŠËôœøToøóø·EàW¯™ì´Äüü£«µ -Ò{ªû€\åGñÅ–Ç#¿ÄÌYîËîðrÿ“Z$%ã¹36ƒm”ûÕZ”Q5à?ª[诲cû›Xë¨HiI÷–üÆjœ x x¥zꄸíZ¬®£¶\²1¨ßïtNé'òÑwý8üÇ+± tXŸNÆQ½òx«*×ÝàW•è‚ß@ƒ? ÖS9ñçߨÿxÊ“} fÎŒ+çŠ~tÑ’˜þ%»ÌMVEç ºŽ\‡GÙO—à×L+ŸJn˜ DÑ0‡èw‹ÊÛ¡¿¼I?Ó²r±\®¢ˆk2:XnjË[—ÌxµÔüF~“€>ZÙñ'YéèÃŒ‚ÿðâ®kè©¿‹õ.ÿ± ÿ1^”&ŸE´—Yž3sN¢ÿî@sstÀÊçsîs^¥ŠpB8g¦ŸLeNÕ;Þ¼¯b ïdÐÏØâ„ëþ{ÄÖÆi%\'á­£ÄÿŒ_e§{b}8þã7#l…ÃqÒŸþ%‹ðôL?LˆþçkTÚHò, ÈÀ fÕÒÖjëŒm"•8k|¦¢=‚k×ÿ¼Ò_»UßC¤;E”ä½_@u@g‘ ÝÙ=ø*̆y‡,¢ mÕòÌ Yd!ï°{ÙTh‰5©EÉZñìö–HÇùh'ºÛC[$Ð×_ÑW'vŽ£Nsï`½­2y’u‰ú»×R(?z²w¼æŽpRÐÁ_¼Ä\Åâ”ÄN—Ã/”™‰I™µ„~÷ùÇq¬[,ÃÆŠ¹õòàH`zü©D1ÀéLª#ÃôÖ¤š$<¹ÌJö¼‹z >奈(²i¯]]éübûm¬W ;N/É‚<ÙifUPN€þBα‡(í0þÊ7yÍ,Œí!òy˜™Š]%„ÿH¿9ÀõäÇøðsûèÑ=ÀH„¦³#¶y 9gOкdðHiÙí£üÇbê?¦‰CähKø‰4Øó•`výÉ?&’Ç{ãmS¡‡~ôÿ¹Û±Ni"~æ-õƒ{ƒ\¨ÃÑD¯…þª Þíñ}Cð«>äH)ÉF*Ð?ñ=œü±…ÇT:ú'.CyŸå »â ÞóU¤Cƒ=—ÚúuØÀº¬·wHMF_`GÛ1±—cÌTôßMK}ÿQþc"64 µÓÏùŽª,õ1©ƒñÇô,ìþ§­8W<ËÿŠXæHô{ý@½ß•.Ù n! L·?¾ë$þc²ü3Xÿ’‚xɇ²?Ì:øs:”4;Ñaå&õÉÐ不ìJªÜ?P£1EýŽÞìî)yRCu@¸5í}µqd‘v7æ^¨x»¢ºb^¥ï•™jøcD÷˜ÿჩ>þd }n€7µâYIÓ‡³UE—^®'òÿq–gfk"b˜à¥pp>ªþ#ùÇE¢< uÑ›eD Â6Ÿ™ ®Ë¾{ähòw¿¯FZ ê5¾ó-•ë˜_{Bn4ÎBt}©gù X‡ÇØLÇk0ÝsÌô/ɃGŠa&_ß ¿ªH&¼Êå?–Òw-(Ë$ø-ptGL§sùÇЫéÔ2´:×95gg5k¿z€Z¹þ〩qÎu2õ²wJŠÓ®+þ÷>ˆd£ù®³úБ›IÿÛoϦizb}œúó$ºÍŸ{:âÀŸ/„É 'Ó~M]öÁуZâØ­ÈÜ´…6‡>•Gá?>·è_¢ýÒ>GêW±Z D1lÂ\ðÌ9ô/i¯=ÀëW ÒþªãO­˜GÛ«0ü‰Fï£ÿ.@þÑD¦¡L ûº€ˆ®'' &¸dW1Иÿ·òº~þ#1Vï:ŒÇNô»û¨d°g¸¾¡âyt#E@ ÞŠ;tEtèa-8ÿ àmñIÇjÕ'ðçç‰À RóçMDŒâVLDOÕO¦3¢‡qÍ•ôß°Ñ•¸wשLj†ÿˆÿpÂ~–ÁŽ¢–rͰ¤ÕYP©x÷4¡ÖŸq Ónˆ*j/û©ÈÏ$”çE3vè!ka{²ÊXûOdu{ñ£§ùmŸˆf¿Ð¿äEˆú«ÄZN#ß‘AmSóáÎWái$ÆËiìE‚F¿ê‹ðÄv÷!çɌߌÁ÷} ÁŒvÄ3¦£¿JBe÷šÃ]*ÌOEªF,??œ6 Ú_FJB*F÷åŒà'¿›47Úþ×úü£U.Iñ>ª>?34ÀËî&òMÏ\Ò=Ìò®Žµ$þc Ïwx©3ä7Á_ &ä×’—ÖoRqÐ(cY€Ùnw?`?)ð>T Ò*¾õ‡õl«øÕ\âÑ4`/¯éM8RÕã<¥×ƒê¯êÙÉÈȨ¦vQUÿ\Þ&Ym6á÷÷g¾ßG¬©pŽ7רb耎Áv Xv[|HaÝFÝ|€}ÅÉá’«ãèzÁãxHµ†ùy%;¬wÂêb¥!C *4–þ=øÕd²ºäQw©þx¸„ÿh Ïm‡? z¨‘tnIJ%]SºKåÁ¢À"g¿ò¦Æ¢¼ÙÊÇfÎø&êÏ‹3©–΂÷?*Ì pÐx} »«ÿ:8-õ«t¡­ƒçZˆjÉGÍÅÃöÆC$gîÅŸÔ>¡þ£uoU×|ƒ¥On§™`ØÇ¨*ä™õ‰Ažô1=ñÃeºä_EþñBÍ3›Ãa³mÿñëw üjž*ÏüA{V4Vºâv8ëX²õÊAÖË&¾¢N>ÍëÎ÷-F×êAex<øSüG?üÇ{&!5=Ô¢ûgT8ÖÅ«nÇ»ìgkª.ªììh«ÍbgõaZ¢ëW}S2«€,åÑñ`þG~¦ÙîCïT”ú¿Vf+ Ê®ZøÊ×dg™áúÒ]‘A›¥_çé½!WŽmCµ¾×,O~œþ†[`Ê0?Ê—ë-Â\¦ ÖK3™×<ð¼ý,ò­>¢l þWíè¿{‡s¶>o¨Z#âÀ¥€ñÞkÕ°.RêI÷ûÕÔ¢Ÿ¦Óatq³a÷ãZqÍd×^¼AoD-"™üÇjc#ц­¿šK •ˆ=¬Efoúܧób7k”s=ÓS;YÓ”p¦£ÿU”Ywy·ä}Éš#©Dÿ‘ÿ<¿ö±#»–1ȹÕìýð±˜Çd_Ùõá©dF ýwçÑ÷‹žþÃ]ÏóÆðgt_ä'¢tòŸ2nêm´[äô@#ê0Þ£ž áÇBýÒ2Ý8?ј¸«èR$ê^’…Ä3:´ÍúÉú´ÚUöv’üú}rcç:«ÃàWJØÉGØí¬ÔMØŠ*†û ‡º1G8ã.ÑL&¼…Þç ¬ŠMNB¬º›w1QJðë× lDq>ÌkÞìˆ-#¡áx"¤úCÝñ˜‹umNŒß_ƪlÁö-7j‹Ío(áÙú¿÷[VgÊž¦z€ÿp’‡$’9ArjÅ’î±Ý'ò•#øGBP—š~÷³£ÇJ¿™[€_;‡ê¤-þâ75ð_"Î÷ W‡ð£»±Ïà@>Ðíî‚îîô÷¾ŽÄZ#"~&ד‚Øí(X]a,å0™½2 Õ7qÀ¯†©²ÔôÄô„ÿxLž¹öǽÊß r¤4¦¤„¨†âÊÄ+UÅÂ:ÑÇV#šE$“¼e:õ¼Ýf°‹%¼¹ýù÷.õçÁ+}ëUà?òSݸ‚ø¾žòc­ud0˜h—,f'±t>4¢y©Ñ¶ãgt TOø…MÊŸh78~UþÞ8žêîu`\ x*“ññÍ]L„‹êËúué´4_%RqÉ=nñýðdÚ`ú«ƒz2Ò}Xé, as‰ô_‘1̃?×ÌvT2|³ÞàCú’T6‡ã‡J`¡ÆÒå(œ÷,]W£R³XJ|”™ñ’÷ä°©òœÚÀüÕôÛý®ÎY}Ar®S·1Ä«¦“| ª±"È>²+¨Úb…ÝúÝzŽêÚxî\SõT¶çê,*ËÇê¼ÙŒ«¬‡7[ ?S„¹®¾Ö<«$óÐ÷áM¢¢hɵ:è¸RírV¹íïGëøè˜ªû’ß}Fg.Ì×hKâ›èvéw˜ßZÁÏ{À/ø‘œAe¼Ž]>cÖú˜Ÿø#ÜLþ1Ž2s\×;@«eÜ‘âZ9LE™U«´SCõ\Ž*I_ó®õ›ß ÿ‘ù†‘©RIÍJlfät{o¿…àÏ»üÇ|òê7….%¶ºcærvëki¤e¥¦Î³Î˜Î×Vk¥ŠàL ÿ3„ùçO±ŸÄ6Ô…¶â#ƒ8éºâïƒðàWnÝÑSüG>×}úµ]d¥þ<¦Þ[g´5’êEXåˆ#‘Þÿñ]OFÿÄ£¿´Ü GãGÜTÞÁO\Šaîp¥#>ùÇFñ@h g±«é[Þˆ¼¸7šÛÄXÖlðçE+ü^'™À0ÃX1«^ þÃFb®€M$KÌ‚µŽÉ»_ÿñ’(|=öºÒûx™7Ìf‰©…Ômݾt]ˆÿ(GüÚ/»&þUSvoÇF k±<}yÃ9ÏžÐD,°]×þÂØ¥m¶dKê?ÃjEÄ{x`+¯Â³¯£Bû‘oT´—ÞÖø»èw«âå €_¥)@Dî­nÒíu@°çRŠþ»ÀúbQ­ X„Âb,Ö2~wSX™yT—úó¥ª úÝù¨Î2b›ÏÁ-ôU…¹/R_dÅ=z&v¯0WÔ ¦úªšÞ{ÞZlyo¬¦æLõ;üÇ õÒ ò¯K0 ·ðƒ‚ÕŸ—1¨ú¾H”Ñÿá%W“ÍL0ý¹ ®Y½Pʇgaþ ÿñþ|,÷¤%¹‡?ýŸs/‹»®;XŸùãÁ%Ûñšã{û‰ò:þ »ßìo5ìG3P"æRÑá|?~ "|wgÕ›\æ8=¿ƒhºgï|£þÜG&'ÿXþ;Yhf5‹~{Ü‹üe.õƒ×è~xÙJÁüóYø€¨ôUôá¥ÿÕ®·=ŽÜø_'­ØÈGQ Nq2ìL<ÔÙ@œŽYí¨ã0?*‚^˜5÷0?j4L¢±ôìš·ë|ų̈ÑIïøFþÌðÓûß/'L'^áÈ?bºvý3ëMÇ4d&y:¬æ$ð«‘èLÉh@Ȓý åL£ÙO­˜ÿ1ÌØ:ÏŸ{Õä©ùÇvj6¼ˆJ¶å^‡ÿ¨óSøÕ'úï¾g_‘xû¶¢…mŒOȺ…M¬|>Þ‹úß0w¸ý®.=éöþ€®RvïEb.r.OiÏŒ€_-%o†}n.ã/¸yeô"t”ªGTô[m‘»å è_R]•Rè©·BÎ![XAݾþõç1µ¡¬é¤þãº(Êû؇La&\…?1z[Ъ øÕhØé÷Ø´]dÇA¤ü@¶¾ÈßÅåùó¤Z#*Qx\ð©„øí#0ÅáÈoâsÉhb<óÏב/4MéûÐHä!™á>üßéÈC‰ýä{áv²ð¦Ûópû‚É,gùŽ¥(†õ?½"4+y߇‘Uô„ÿØöƒº°«žO ¨Ù&ÕH]æûÖ‘cø¨ØLÂ>‰fè%ݯ©f}ll ,ebtP݈ïï(Sæû¡bMý{¯Âµ­g½‹jW>Þ„ÙÍj8ÚÝG ìˬK¬ßÞ4Èr ÒÍ{°á£U9¼u}^³ã©ge÷›Ð_&ã™Aþq•ɲÌ‘àMƒÈ?ÞÄÜTˆøï’!EAÝô–jòÃäR‹e;£aõjŠpàF¯À[ÿñó”¾Ê›º‘¢dÔm,hëÙ‰®„ç˜Öž>]“@›Z£gû‚õ™lÄW¸£ŽŽúÚ2pµŽøí~pëƒáÂѯ£ýÛòçfòRÔzoÁŽv§îEüGJó(Ø`²»<½ *™tcÇ–6üÊžî!•©£mùD¯¯ÙÔ &`¢Õ@rÁÂô++‹3»*‡ª.>¹[vk>\ˆÃé„ňC/EªÞ©?OC_œœÅç°°7Ä}—ÿXOÿ’ÝTÒ® JYH„æg&t–Â×v†?Ÿo¦Ó×-kÓÛ*ë¬g=¿*ÄlÃvæeó%ïÈKôWd%Þì ÿ ~GˆÿxGæ˜,ȹøñM í+©Ñïjd‘ŒÁôo/Ä*Û˜¾Pa¤gþÇþÐ~0įß%ÿ8Ú” ¶³½ü€âj™ö\Û¦•^D_àÏCê‰âR_œ¡ŸÀ–vi¹ÛKQ€OIàÏý9™QE.qƒºFÛŸºòÚ*­µqtåvµ V~¸:†WŠ$nÂørªöã?n‹^¢÷Où÷úMãºbÛ¶ÄFÿÞ ?tû™—8<#üÇGqZl&ÿ{þàG4R+È?¾¡Êx®æAŒR™}õ‘ù‰«÷€4-b½6Ü…Ra©jë˜ÁÑšèý¾-2Ñvìo\ô8%49Øø ØÒøj ¥‡(O#hwBy _Ýàϳ«ëð°¦PªµÃël³K¥ªËUXŒgä6‚es*¶:)‹‹sú­VŒ¢Õ0TqÆWÔëo㧪p¿â“%%R7à?&¹à?æ³OòÂ>0 Ñ™ªS©n…à?z;r ©àÉNßÛ«©…ø£žÄûËØUê½SÉ(غՠLŸù Ùÿ*ò²®°—wŒÍ?ÌìHÿ«î¨bÃVx‚Áܳ[O |„Ž%iÑèxYŸÌR`$%˜¾ ko‚¶ï‚QÞJLþ•¹0ØY,¨£&ˆFŽS0*kÑ Lʆ¯èFrˆ µþÖð«Zäãñ™°ÍþT¶…Yª 3énüž™G©üÿˆ; ¸ª¶ím¯˜k®µí.,Äîîcww»±»=vww`w b& (Ø…Ýß³9×Mˆ¼ßÿÞ«¿sØaî¹jÄû¾cŒÁøiƒ<ÒÆâµq Ny³9™ü£5ùÇ+ºpÜ£šîž¬û˜ ‰:²íü½FÖ9Aof‡ E º@Þ%Öèf¸ßا<'˜Ûñ%ÿèfå§+zC¦3=“ƒ™d~V¼^õûóã¿.ôl Ñ_µÄl V¦>C{Ù“ü£ ñ•~Z®àW•PF­·ÖRaQdšÕ>Ä—ZÌ:¦??‚î0yZY:”~7©:U³óˆA\1ÅÌ޽_–€Ó?Gÿ«ä\;¬?l§AÃ.Q•¸×ÜÒvšJü=ܓ㩾Ÿ‚*`Œ¨JQÝRíÊÄÐäÁþÃUæ£ä]3/µ}«©ô{Nÿ« œ»ÍdHçè9üé¸õX:‘¤äªø£¿º$Ê9=rø½ªºÒvÆüGG4%á?î0g±'ýšÑïµí³ùÐS¦+ú«ªSÆâ—>˜N –¢7YscÉ?:н‘îÐΟ'1– ”FÄŒˆîw’Ld—ké’STzƒ•®†çnCüZ1 ýw kíaö{Ð%ЮßMï‚%}ƒâ¶&ñ^*"͵œ/âv»Ö+H¼Ôªágaü8 o•ª·ÈÍ®ºñì­çÚ>ÆÆöÄògf¥qÆQÏõ±mxçÇÔ‚x1?ê¾øc‰P_3«%t=ÙõiÉýÏ¢v. ÇqÆè8YË ½èÉ"¼õ>dCø·g\ÿœPËüëå ð«õè¯2ƒY§N’qT†5‰ElÞÝÁj¸ëê B›±Ohó<<üB¸ó^ø¿7ú†Ÿê?šjuñu`Ýñ9µ‰}á aÏc“x›‡˜8›Ÿ¸¾*¥õ¨cßÓ-CñàŽEn$aÕRŠR[» ©øÕ:l8u‚xu7¼GIs'A¾P“ƒŠçkøáp"+°åÈ?nÃx÷–­ÀÑJi³ÂÜ;çµl`rǨ‚Í Ÿòÿ]8N˜sé`Û[zëüØjeBÝ5•™â¥Á^fâ[r÷8öÉzÓ0ëUƒ`>#^mþäýÕV³,Brúyü…B*þ£»ÝjÆ……þª \Ï r© ÔÞ"¤GK¥–º‚¸©+™j{r“Ñpå³(]/únb~mq«£õˆºÄúÔ¥Ÿ¦0.¹\{â×øß¼tÃ1Bñç6u¶ö»â#Wì£,gœÝ¥/ýKž¡×]B‡ô½äûP_f—»xݲÁŸ{ÓÌ¡ÿKwâ¹=hlz8Ž·‰ÚY·O’©Âs5A6&":fV$ÿ¸IÍG4¼Ï &Œ£ÿî ²¤d]³ñnI¬D™ÏK?üG0}ÿq„ùçD{ž¤ÆL¦?¼ žjoó(lQc&î²™¶ÇT‚l—~øâÑtxi~æéð¤ƒàL™Qøý|[ÿÇ¿S®†tBû¤dP#StþjKYÕ›jšàùQ%õjÎöS%¯¶FÛ¥iÑáÏCô¿Z!ô÷cÐ#y½ˆ2Aïêk§À¯Ò'¦ ¸­K=¡–Òq=CÿÞ¯^×ÖS³6S c˜Ñ†Zéð3uYÝK&6j‰™á®tWæFçÞM ¿¿‹¾-Xþ)LŸ*Î2ƒ‰~þXåfÖ9,ò03>Q<ˆ Oý Ö¢ qHúpøU VŒì2Zµ¼p:Cåã.Ã1üÅ]: º[ó?ÞÃ.ï¦^cþ£&9ØBùœý_@µÁh®×³Ã4 k{Ê¢ƒ]§elF͵ôÅ“ìâ³”*R™=ßFeÊdØþ·L1é€_¾ÈŠ·ñs#åþPÓW+)íÕ5d‘ÃÙUsÎÉXÑÓˆK¼]»O¿\_²6ð =¬2`[aë¡5…ñ13±Í² ¡rJ[bêü†‘‹ÔBÝýî7T£ÑîÖ¡þ#„ÿ8¢º+·Aää%à›èв•jœ¯hÕª¡åš@ý¹‹-¾-·µIžÇwºR;tÐ|Mä–§e ‘OF“…þ'õƒ’ù­gæý£;Þý°!Qûšûþ]ÏüÁô/ÉÎ*OèµDë™OK¢†Ì‹Êzo”Fô„IŒ²æ•¨ ÿñE›£Æ`Rø9‘Žþ‰R·i¿·Ï¹Ú:žæàWyî[ˆ‰ÂE½ ‰Òô¿*…÷ÐŒQ¬Ì£Vé÷¨28‡5­‚³×ö4îéöúsoÖ?% ‘¸ŠRúê(êíºnáÇr_¹Ã€”‘>Øèع' ¬/‰§‹Ó±é‘¸JŸ•M‘^›ÕJôº‡„ÄÒ ªüä*:ѾÊŽTxùÀÇoDõ×;Ûü*2i”Ö–ŠŠNh«.cb£"ráobžêÂDË6ÖrÃþ¯5òËcDã…!’ª!Hv¸Ã§c~"´†ç±¥ÍɵbðO-ñš•‰]Áˆƒ?ã1è0BvôDÏ>Ͷ>þãy¸…ìo“¡¢|'±7vd¯?/‰Æ>S  «!æéÕÈ?ÖcùÖ‘{LdçI ªOØm¬òeðËÅ^0ª…TŒd$ÿXj”kˆƒmkÈy»‹ .†¥ÛD¼üÊH(·‚VoÇ~ ·ù¬Ÿúi:ÁPô»ƒÀâá¶Ü#çÚOþq„>Ù‚¿õ†ê:oYþc 9’ '¿ŽŒî8U„þ#l¶ (%µÛÜ£Mð\³°÷˜†x͉º´ê­ÁèM¯1«núݓ̇ÕAÄ2£¿z/¸O ]ƒ,4“¶:̽ã®ħžE…^Dl:ÿ.}|wcß?ÈØÒ¶à%#ừÀá>ÅÖGÇš> ÞßGìp ½f˜õÚŠè f7¹GFã?G蟸˜Ù²ÇÀü.R¯‡¸¼#Õy÷eo*➀Ö­»LFs†šñ~r](üª…RIÝ‚R¹¯|kt?jjÉ$ðwÌåØ w´ö¼õ¬–ÔØÝįTÇ´#þˆƒÇ* ÿ‘ÆXá¸g’ÀŸqÍÞ£ðC5Œpp6æ<‡?_Gÿ’MÌ?÷ff–]uÊ\ž^ÄãYÍÕš.=‰;ËŠü¯ƒZŤä~oP³#6AfòËLvŠe%#¯9²x°eØœè§U†þWiÍŒVb3 :ŒƒøÛ òþtaú±Á£ê ¸·N<ó3xšÖ‰CflÛ6´©`a똚ÒÎWkðp ¨?÷•ÒV‹º—Þxg¬W3ör–¦­ÄÿÄ$aš^Hÿv»~7²Žz?Ž:üWòM0o0š>ˆyç帻+_ÔÝÚ:í%øUªßÌ?îпý nKÜÉH+¾2?í«ê©_ãJ~¥ÿUê5á÷ò~®¶›¨~ VË/†rÖ“íDIý„üe‡‘n23½yü*õƒèvX¼9 ß4üã½ÌÀîÃ÷‚n ~å„"ÙÇFêÀíó?fÛ'â·'2]â4І[7É?ú0?jxF´§7É?&H{Ž—J›æÞÙ§åÃû›,Å×9Ü„?§æOÞ‘½±ÌqmÐ ¢*¯‰9̼Ã9ÉHæóœX7¸F‡~zÝ0ë5oÐgMõ!ãñd®ë1s¶YžúÃ÷tï2tÇŒ_õƒ]¸ RY‘î—Qt]Ãæ—çBÍÿ¨G×MÄ?݈:Êî²U¾ïåW³-ú«\°ò»ÈÒYÍÑOõÀoìc~ …BöLû,æ×ú‘çÃg†è¯â«“È?R’ãMÃĦ‰„ÙŸHÜìô§:Šþ*%øÕŸÂLýÛJ/ÊX诎°Ê<ô\‹yº§Rÿ1Ùq¼˜ßpŒº6ùéùZ·ÉN L±˜JÒ’üã9ÚìKLÃ툾8§5ÆlÇ»hfv¶œD ç±öO°k¯Cåø5äkXoÑß³Õˆ+Po6o‘ƒô´²ÂŸ_À§·³ÜP³å@wLOdó+Vâ5ªÏÎ`ÞÎ²Š¸îyûo¼µÔþjsÇ™¹®dW—ÙcjõúAFÿÝæº Î?¼ ï±üʤþüxÈFáÕ¥ú«ÌFVlRCzƒ|ÓÖ“Ý¡§Iaò÷ôOLáØu–Sâ?*3·6˜öNæ€ôšº‹þWõé¯4‘®¬qzë(­˜‰)Þ}àÊ¥üysM|\?¢¾AÔ†|åúŒÿ˜¯äÖçÃT„ï®~¥É… ‡c±ê#9RH¯ú |Áil-,ø•;±Â(rάb»ÒíõïÎÑŠTÃjí ¯¨ˆÿ꓎l€:dzql§gS ó’¬CEõ|jTìÑûAl}5éé‰0!Üu©Mÿv»~7/ú'/jøæ“§M„›Nœˆöê< Ñ®Öþµ1ÕyÓÑãä¡÷Æ#|ÈRiW?ÓÖ„Yñþ£/‘B°› „©)ôOœgN…AèK/(i{ÿ1v¾:uÐçÑ4§DÉü’Ý…ËÙd ÇT¯¨Ä9Ë®:ÈùXÉCr-ùGAêG,ó>üG¸‹aXÓ²+6ÅpüÇU*èoð_ ¹7”z¨*Ð¥\ÅîxêÞ ‡Ri‘½joª\¢—òF–ûüÌšDÿ«5ðªUÀÜ/]AÅbš'àjâʼF÷M¬=Byð|(¹YÄ¡-ç¹ö=õç»è¸›„þ‰~ø£<Övt½oÍ„°×‡É:çN—Gé»ZBLtœ¿¦jî<ÉÝ6YC±Ò¸ff`þùi0µ7¨ËöZ_À¬z Î ÞV ÖÂïý•àÎ`ŸmyåÈ?¼ðkÅ@üÇâ •Ì4m[È€¦3ãü›™Ÿ•jÚSãlë`­’‡¬,è¼zóçö{ùOS)ª;s‡BCž’ÿô+3ECüÇ%›šÉqž~ï³3á?,úï&Ñ]õ”ZQVñVÞc¨ö–º¼jˆ"*ë¾V\õÓÄñ…‰RGP›SŸ¤Þ¦~ð˜HMýà+-ÚoÎÿX¬]À¾ÍYÚ ³ÐWŒ_•etÓ¨&k°Ð±ÔnQœÿaçÏ»à?bð„™Œjð<Ïâc}56ú"6ÇÞ18:X™k”ô»ŸÈ?L˜Öò4¶ó(h¤°¡ûaK€rÿ!+’{Î_ ÂüÁ¥J<¢ð-øC6 âj€g‹ Zt [Wå †2o4€³P‹úÁ‘\Œ6ZMMÁÁnãÑ’Áà&€OyFÆPÿôŒ{~%{^Á.oòY¯˜î•T øÅšO•¡ª |îù@]ò"'ò îx¸å¨¹ò¢2Kœ~‰LÉ> ê2‘±39Í7ø€³¤´jÝ_²ÏSÌHVa×0Å‹ØX⫉~zZbÇ~àl ‚õǽù¼—t–ÙFëç V’èÓÄIŽc;vÈ Ï¸€ÕÆ’Œ‘•`'÷`-2ã;ÜÈ ^’¬ÆxpNÇ’‡d>?ÕЪÁˆ–Åx’1täH‚òÅE±ZÝÕ bÔ¸`÷ר/eÎ!Gúbd„ûÉ÷e!£X(µèß{­¥Ý‚ ´Ï`w `wÜsàSñáPFPï@2ޏ~¬~µ#HSÿ–üÃM6á>ʤ­ ó\_ÒJ‚êù¡¿*MÎ3óÄüÁõä_èß~ÈJ`¶h¶ù cå¨?¿^™¿$ëWz¡Ñ1\ÿÄ?Ågr·'ÜU½ñ3gðæ\°¹%Ì{ –SÞºkŽUX)Gš*<ÿlîÎöxB-–Íì)=ÄUÇEéD¥åx¶Nt‘iOÒ ;ðTz™ýˆî+“Õø‚¯•ÃVŸg2S>ô¼`WòÀÜtÂÿ:‘4Àƒ¸SëÅ¿zD„ci|“•É?Û£R«ß‘‰í¥ßHÛAæGbéÝðìoÐàŽÇ¹q¥7×íM¦F,DÕDue~ml¢ƒ xËæ¢Ükµe£ëýŸå%æéJÛlöw•þW½é“²ÈJIµb"3xï2ÖÇôç>#.8ü‡umy–ƒŒÔ¦~0 ó0yj0ÓkãsŸ”³ªØvØžƒbu¶–Ó ?Œ¼+è#ì³~xÂ[þŸè¯à?BêÏo*ÿmü*ýKúí~ÐQÿQ„»õ¼ò^Ý  ÒÞhiÑïþ^ÿĻʟúUòBpž- ý)ýÛ÷ÑËCèh|=šRoä¸QþáÅ8mž.•;ˆ|+€YÙ;GÚëÏë¢å}šbJùóÜÔöÕÏ¡œëQ^¹“Üÿ¸£/&ÆÝ‹­>C~úVôÍôMÿ°£ÿôX»„¬ Jtž(ú¦QõPJ*“ÖN—â}™oô\ÜÄÏy…±?Výu€’MÆ6ñA(TîÞ%?:ˆê¨6Ã<Ý`±‚«¨»˜ÍgÕ2¾j1#Y±‘V=tƒ‚&¥à^M‡1d ìr.P—mðàždKEÉÁ¢lO/ä/õWB©>E±?é¼4ìY{3P¿*<«%°e6š†Ër±ü ¼ÓDò8ø¬¶éXÏr°àè7@¯3*ý®‚ßÙë(¦†ãÏK‹ïà†'9ûƒYm'ûÀïÑ¿W3¿’å%wØa­G¿;¥ñC~¦½.¡@~‹W ~RuÚ‘ù瓉§zsý›€b5GùQ^c’ø]jff¡°ÝDþÑÂz`­À¬4‘g„KêAw'ó÷fFé*ÿÈ¢öÖ®©åÔçÒ¬K·EÞg.l þcüûz:z¡9{D—•Ô<€¡YBΕ<,&÷Ð)zè!èv}ê¿î ¶m¨1FÖàŽV°ð±Y¡½{ýÙaÃÔÀ@+1c‚+&¦»¥½þC‘¸î‰\t^ðsø]ê:´BÍAtGƒ)Ó;ÂüF'ø%f=f|ä„Û©c5·yØÛ'¼ð"Ë–Ep#î¡äÚßÅAîÒfÄ 9Åï1ÌánØó-½ÅÔÉŒOàÏ‹…¹Ï¢¾lVõó?†kNàWZ0ÿá©$Ö¦3ðüG5ŒÊš÷©?¿ŠUÏ “ÐȸEÿ«–ðÓõ‰äŸt›ž*RËöS¦kû‰BW‰¬DÉ#ñm„³ÚT=O¦PIÔ£b‰m¢tä…ÕÝôO< šsåue,K3Ty­É?¦r%×Ã5¤Jñ¹@ýyT4ËOÐï*Ä2Ñå ìðtêvfyèÈAü‡?¼_að¦»â¬˜"öGºÃ Š3˜èúy=3jƒºÔQ}%cç‡O»È½ø£…àL®|RMCÓ¿…=M?½k Õ„Ço…-½ŒUO Šï‚Š×õ¨ÌjŸÀžÖsÚw}‰ê¡ø¬ÇRoý´ÊßßPÕ¿ÔS¢‚¼…Ÿ-õÁ“Ԛ뱫P¦"Šê‡ÿ؃'Ø&vÞþ,ý5já?‚"X1•šMw&J.·“qáwÊ“­Jôjßñ–·õÊzlð«‘Øæ)øôNüMEÝKãP„ùÇ%‡>Iœ£Ú‡b«ö|ùÇTT@ˆ½ïTÁ/Ý"¶Þ‰ÿp&çYE>ÑïÿŬ‘§?U75Ó\EWîŽdÔ`lÓ?çgò{«ÀslĨWÁìK0?ª4‘–ÃøZ¨E“É^"ÿHFÎ5&Ü•®ì?c7bßÂaÝ1F¡°Š¾2›Üãó‡×/`¾†nÎDqœ¦å1N¦Êæè’iaVܤ•âZÅG;“¡ÌÆ'<•£akûQ±>™É®ñmwÁKú˜£e Oþà•xT²ð¦«äpãÃñçÙD,ô©7ˆ5ÚÃb­1¶Ó'qݪÆá^3¯;‹u’šûqxŠÑæ óO9¼¥ØÕ]½òº8ï¸ÆM¨"Š~•õêÁ´5¤Þî™|ˆþê)õçó˜µÊ*C}Þsk:“5€ge¶œñÅÝeŽù,þ#¾Œi,s¬÷Q™©àɃ°÷–™Fõ¥<Œøõâ舲–Èþ˜ØMêÏסƺ‚?J ËoÏaéT‰ÿë8UÕVôƈGüÕɘ.ELYÃ*e{ALÐ Uݬÿ4&#v‡?Š…Î¶0Ö>-èb39Ðaîý ð¸wâšÃx¨»ô 0î`ßCùW/³¸­“HzÁÝâ7G¡ó±½±\˜_;L~µr£ÈjMµ7¨¹L¢­¨ÔÒË â÷Çéùÿz‘B]ªÚ¹î¿ÿÜ¿Êèx÷ã»QûZ„ú,ÚXæÔdÞ ½ÿî)Å<Ë“Œ$½–ã7õW3þΉ,(Xb`çâ‹Úu sWÀd}Ðcéâ7õ» 4w®örQ¿=^SúüÕQ_ˆ’h+ê¢óŠÇŒõ¨ÕŸÿAà~ú-Øä‹èw+aãºñD5c[Œ½9'±ç×Q×ÒÃwõŽèLú2?ÊŽ¥& >:“YÎnãÉ?΂U3¡—*E_'Ìê%¼#½6ë•øÜSÌ:ý@Np»¿N -öxQ~)r;~uUtÿ¨jP»Ñ–B}¯¢Öž(§+ Èut¼©À±’“Ùõ¶Íy²“ ß]ˆor7²™×cŸ~ù×õƒsaœìâ~äE+°õO‰ â'`±Ë³°ÕŸÁŸÎb™á¯ìý¯ÞmÅ=-ÛÙZ&5·ž CF”¶Îüü&ާèÚ[zNÑWN¡g½ŸÿXÈ®G uÀÛ ß=aD‹ ÿX ¸Àa^âìÏg/±– Ê S6ôSvþc49L>¬Ýj÷^q­Üà:—¢éú‹'þ­~Fݲ±àWõµ¦àW•É“1Ô‘÷¹ûÖãÁÉ f°ëô£­P*¸Ç }~T|˜’‘è§®H‹™ïÓÂ]éÊàW_ÈhÒ“aœBµ†h"Us#õÏYÑÅšjùÃ…÷7-ô»±à?>ã ^Ãf·Fi—E[fųäùß>aW÷pÞÏOäX°œIø&W"iÃv™ }ÍÒ•:hY’ýMÛòŃÜâš÷ ‡_e¡^5± Ä«5'C €?_CþјÚz8D…èL;ÿA®ƒ&õ<ÚÜxÕSœÑkô\ïÿ’tWÚ¨sд)ìËÖ¼'Žù$(6öx¸éS] àuµéòqÝ­…Ò«3X£ižC%¢I›±ÐqErÑ÷Î °g³:*š¢œ—¢T¸Ô¡¿awj9m×a/®¡ZÃ4Âo°ÝÁÃ2¢8K†ÿõ‚ÿȪÿ•+õÃwD ¢•îè”;І™ÀV™Q°÷¾ðùÏɺ050.ûíF7˜¢fb+¾™†îOÒ1 ù[‡ÿ8©.¿êÁ<›èi¿XEÿöäjmÌOT§ôçXÛØ¶’¦³•µðát ®Eÿ’›æ[|Glb€AF®Nýÿ ~•H VrÜYo•üjÇ;Ljҋ?è_’˜yçõ¦z\-«\V²i³4í›–\˨ºGi•?C¥Ÿ…ƒýG#—ø€þð–z]÷-ñÜÉø„Ô¿µÏuÚAò±¢JÎÍF+ø—Ê4úïVgYgáÌupÓFiÅ4ª¿:B¿Že Ä&Õæ9úº£‘[,ÇB\Á;‰¢ÆE1T4Ñ£Ò³å5õçÄÞX†â ?l©öþ4VûÕãwy*K¡Ò{Aÿöàì?Îϯ¾.Wr:'"Âöç_1¸p‹ÑÌÉ ¹`0ŸU•úAÉŠ­5æmRÝÒþã*þ£(QZ¬D °¦ºX©Õ O»È%Òã«ZÂUY"Ó/'…½Vf«¯EMž¡ìk+Ù *gòùs†…?jjЉÆÔõì9ÍÎlÇßBœÑBlKÈq§‚ÿ°#iΠ%)ÁÐvÈCR°Ëx쪙8¨g2·ÁÈç„?ïÅ“9‚HäHMÆÑüÚÉJFêÏ}ð¹GéUž¤a:ùÔ(®ò,Ø‹ø¼y°4oÐcïxZãã6ã“ÇàCb‹£jøÙ õµÚ¢¹UJ<†;XÍt7Gð@AlìúÝ“ÖWð‰t)gnÂ:¿$/´÷o÷'É`”ùÉüIÿ]Ùd4¥ˆÛç¢ß;^†bvæ™™™¨ô ØV?3!(Q*üGló!?1Av媕 ×?ÑK+ÌÑÇeµáÜ˱ø»Ñ¿—ƒ‰ÅzÑ'ÖŸXúz诮sNà;£›AØ^1NÔK†¹s s¿9ÑYàYÑ|ü÷*y¦»!ú­XÔg¸¡DºÅœ±æ+9 O Ñ ×ã ÀÃÝfÕöòL¨ü£­ÒN]‚_…ÞÕ•lp¨H`¨Ìlü“ž/£©JôbÒ_Xe{]{/¦,Ñ_ŠþW^àWön¿žd6_á3×:n•ØêDí±‘–s<Ž9†£#쵌9€ùXNÔgŒ¿ª„~÷ zvë ìEVtXÍ3œÁ±TëL€— *еŽãí„ÿø&’qV'KåñÔØl–¢·Èz^%²bÒû¥.½LšZ*HÓæŸ±ª’!¦1SË· ŽCà?úã=wøêQxÝÜO‹A .ÁŸ?G° ß1Fj «ê6w&´—´ÕCa—Ì–“9»#©-üDžÿ1À(b ×ÿ$ÿH¬Çùqª_*…S×ôã7”[ïU¼*•Þëž“5ýSs×öj†îÄü¨Í!?…W”úQkL"½4"¡¾[M¡yê7DeñD¦½úÍ:•ÅÚe,È4‘‡x‘o1½à|òÚÆ$ÑÈ.‹±XÑ1ÿÓ]Ô‹ðA ¯È7+íö¡¶ª-=í³ÀíÚ¢‡ôëùB‡Æ®Qê_òþ㲨Éý}Ù«I|‰ä}x`á¿’/T"ƒx&Îàón8®Ô¯v¸C‰^wü‡* ò¤×#£qÆÊ]¯/MUÀ£¤\N=âXÃæAÓßýj¡}¿¥Ö ;ޔʵkàXÑðl¹@°®ã‹€iÄ…OYgxpg%‚¥Ú85¢lÁ¾Ü'êϰWöúÚøˆ8üü^‚/Fx1Ø×y2’kd_ñ¯†ðçu™O§–ÖMüG:¹õõa~§, º ç-–œaüÅ|·Ì0ÓC@!6“Œä¹M nçŒÝ¨þc¬’J_"ü©Î_‡]+€ÒrˆÕÖBKr”íÑ>]@wº”KÀÌõ}|â îÍ.èw7©‡þu¾~|¯åãɲ²ÃlFÑõ?cïÓâcœUæ ë!•ƒ7™_[€.+ÅñI™Él†aËà?\ÄôpWºŽv ƶ þh7¬óC0¹ †}~m Я10ÒÇÁ:\­ ¸Œ¼æ;*Draýâ™O˜_;Ï\ÅH§- ³â­1…LO—8bw˜†@éfnƒ?¿-[¡ÕAÛï`ï/1ÿ£‹y‹.†.ø—(¾øtò®zHÔi?æBC¹ æ8K€¨_IuÊ2Ö»ÂüÁdt•êLu·@•ú™õâj£GÐÍ;Ô4“{Ä£§NiMÿÝEœù^œ•N`z•ñœIÌGf}ð«:LTr§V¼œ¹/“bÛÑ…ÒUutWÍé6” '÷D&#„{Œ¦×ag¾ 5Od¶«/¹*½èS•>R«ÍÍVmúï·n%¡›{ p¬yàaðG9©È?EÜ™=”"®)ýŸRÍY Å:™]ì1Ð?1/3뽿3ÏÁÌoÂÃÝ„?Ÿ~uØ*ÅtÈDf"ž—óäò/3=ÅU‡ÿد.Ñ÷ˆ.ä° 7Å~³Ÿm#µ23©ñXËÔ÷*VÛú_Ùg¬{ÑM,8YóüÇiüÇ.î¬ÒtDÈJà8•ÿñɘ¢ÔÑqg=Pòª¦ãÝï}xVæ×¾…/ÏAÿv¬¿:¡|UÀ¨…ÿHÿ›ó£Þ¡ß}ˆZ& ±÷hz¦Ðg©RóÓÊ.ÓÍä­úþ·¶·DÛL|L×]žû£T—¯7üG}rÓ‘ôbÎblˆ"žK=Oÿæûð/À$*¶wíhOÇð¹h9ýÁ<>£òÒÀÈ:ëQÑ \ÕÞèöúÁ¸¬·tå3ûë@¬z Z…(¼´lc}‹þW3ÄãH¯Íú_}sé(üìø2m+<ðxìñ âçL|'?Ñù x‡«Dþï5%’ëiö”š<+~àu’ìûçðŽÑŒ¡<ÙÂ>žÉýä]©¥7>†ªñYñýŕѨU½'jÉ“äÉRÁgw%rÇ'ÃKN&þ~‡ÿð ›`ÇRú£á­$¼´¬˜–úÄF"¬ÖVòž=äG5È@\ȇÞg6ôæ9ˆüc&ZÎij𲜠mÉ"À¯fÐÿj¡8Mvæl+¿U›g=:xKùÞ™N–ç`Ó烱¥”öúóý @ƒˆbŠ‹?ñ#µ b8þ# œû 2Á‡üœ;hÖ<†“¹§Fïñ£Ø§ÂælòC&™êGD~ÛWí§ùõ4aâÇ“€rå§è“Äùº…½<‰nÊÀKúyj÷Z1p=üGló°¡ÙàWŒ<áúï^вÓñܺ,-g_6nÉE¦›ÙÑÕò²bÓ-#öwºz˜·ƒsÍå¬x‹š[äØcÂñçØxø?8ÁÑtQ_`\¥_Õ*r«Ò…ú¾i0WaÆÃFσ?®X•š’óxÓï29€þ»!ªï¶J u)J¸~ò5½†Ã(F<ó©Ùë\ÍœO½ß,s7øî…ðçµÍØ•’Øû®Gx‹RøâÂFÈD–xêRÍ>GçÊýØf à Õw6êÏíõ«‚µÔÅm§±òöÊî]æ,¦¤òe0~• ÿáe ÅE?Ç“ÒýåkªqªâGÈQâ¼±ýUº†µ·$<ÏL”WSÁìüÀÕ†™Í¨v,º˜ÜÌB>uÆì (È£PüùruþÃõîTlÝqÍÌi[Æ$«®èô²P3™ÿqØö=p]ú·_·R£¿jÅ¿}cµï“<²"ê‹Â3‚§ä?ý­Ï̪áï)EÔ”Žóô{ŸCÕµ¸Ú ô»ƒÑï–b•è¯öÁŸ[zô»áòÿ¼ú#¥·þXd@õ™8.ƒÈ¡ÛAßäl"†xMEûÛ^ Ü¿NÐ|Àª§€ˆMãÉë-ÜÄ¥úTüi¸Ò)÷uó¢8?ª¬ê§6Ò°yϱ/T6Ññ'‡ìKÿ+,ßbý'ðþ¯DC1B¹‡Ãm'ÔÛ»Ú3=HùWøŽØÍî°†mð§`XJó£ªÆzÛÀ¯¾EzmF)ˆSgá?î£ ? ‚²N`$ëΤ«8V¾þã±èÉ^ëPþ9ÔN"zYIKÃùjLôíÅiAÒ³a£ÏbwÊÀzï×9à„²¤*³7¿2QýW}@¿+“Ô«¢˜¼†-®Ìï¥Å+vÃ#y`3 «œxÃ9ð3ìu0îØ"û ¼ââ/ê³é(©ˆ³€>çgk9ÑXð;sŒlb¤žìº;þe™Q/rÅ<Ô+&À¿¤ŽÀŒRœõE‹:È(Fc‚€l€}êMUNЧç UM°þ~ âÙ£3àlö=œ¶ÑÍV5ü¤û®èw{a·sâ=ŽÈŠàC#ɸ2=(Ìÿ çøwª#.aDzb¡*»Ù´¡?ˆLbä3Â]éòÚ}¸ÿ6ðñ[ðÞàW>ÆbûTXŒf^Þ#4§}­«ø:¬¿œ )ʦ۰Sd=|t¡pþ㌖ï·}B.òžÉxê+r ÚØÉð㽈ìß=½Ÿ/ 3‡ö wN<°»;ð3@EW€ö– ³Ã¢BI¼EüäJµÊ8F5û³"Õ'Þ2ˆyG…A†VPÓ0úsݺ\ÿÑ Ïõ+üÇ=è¸ýj+õÕ)äã®øí¿¸'¢n‰Ë\¦?Ñï6M;Dt_þ<+]DësþœÍ=œ½¿˜èE.[F4N9Öêòøøpzæ˜5Á—ËÁ;åñ( O>Š|¦>Õö‡±úÙ™¾dÑ^?èGæ:Šn—KPOÌõéÕLmÃÄ…ä<óA²3G¾Ê¬CýùVzúê–¯ù…NŠãÙÛ'úªŒ3‹Ðí1“™ÏzÏÓbÏìøD^ð„ëŽücvm3ÝÒܰMèÞÄ‘EÖJŽô.Ì–ÍêD'ý3LJjkm-•ç,ïlDû؈<+#Œ.Ä_ÅÇÿ÷^¤R{…Òï¾PJªñÂÜQßI^º'FÓ–‘ôÒ“ivýîe%:èÕ4í#ÝÖ ÿ”áÿóÊïz„ˆt %ñ̉Eb}+ø•½~0“xOÿÝXZüßÚç|mVpˆØ º7M¥–û®²…þ»¦èwï{ýyû(­˜G=ˆþÂ>!«T-R7:^ŒfÕA°/>å4Oú}ÑHü¥ùQ>Ú¢™ä1Þä¢gÁr¹Ç¶+™ÒšJ-½&V {é)çÉ?Ö‹{+Èmu2¤èØÎýàïű§á›ÝPhÕ„/(kH=²«]@Kµ¨ˆn×ÞëœpRê(¼è8’?¸OÔzlµŠh)é¸MŸ¹'zŠ_ê¯4ôW‡ENöÐ]͇µD¿ÛOa/éLv”\â ‘Õ ¾Îƒµ) ®h©Ä2ƒ_%'눇µÊș߃¯¬LýÇjf&b7èI±~ýØçJŽ}ç gñ“pC÷ó½·XÉ¢/û¨¯XB^••J†åXÿÁx¶qDʾT¹´ÅGÍš 7’s¸„ïµÃ–5é‡~ê_Ò[«Å}[Ým?¯*o’©¬CYÇHM-šÎ‰GáB ™³ä`¡±øäR¬¾YÆF/2.Ü•nÿˆC˜˜ÕvR£²†»oøURsºÛ$Tw›D¼»@pJÀ1L #Nï8J®âJþšÎ¨© ³âMòÜ#:•7Ëøù›ÆÖ™Šþê¥ì€-}Gý…ØF&\õ7À„â“îá ÇÏ3é•ìWQ|ãèNp¿¦|áÿp£þ|&>ì$ý6œÉZY=ÌðôW©pì ^mÿJVÓ^ž!9fG"»¹øµAxêVd3™ïöUî€?i6¡×ú·×·š0±£?:¤¡ÌŠFÿ«m¬Ù‡~U{Øë2®R…”IÝ¡Ý1Òl3L³ê’¸ø¬f–7u‡ÃàO6YmaÏPïF¿ûˆ\gˆ¹ƒŠÉ…°7“äQêqK‹¾ŽãDoðhܽ5ÈÃVÉÉb“±Þ,k«…ê *³Cb‚û¥§æ£=üJ,2®h|ÍdfÃÄÅúKô»õ;ä_þypÿÚþ¼µ1%ÇhìàT±J|‡Í}I'š¼ôâõÃS¹E1ÿ¨¢žQÛêpÐØäIĨX›Áð绉YÀŽÃÒ>aÚì }g¸]Dôö:ý¯^ÔÅ$ôÁ÷€«ÍË]±$«*|Û²vû¢X"ºˆ‘^›åÊ¡«ñˆ÷à´Ïá?¶ÂZ”&VîoT'2;E ¼ŠÝµå,4†? ­L©åiol4ÃÖœ@_Õ6%)¹R)™›ç4ÚÙ-õv|ÕØëSÌŠ£žŽè0ù^4µ·º^”gЭÙç¤ ÿèDw€cÌ Ó¼ŽãÜv·Ÿ¿Xu3þÔ^ÿQÿ«¸jzüÇIp?ªß± '¸…ØÝU|ÙE#¯'†™žó»ƒSl5’b3b+£U%—Ô©tE_· tΉÈ˜xgÖÎuNlB%äú·{†[²)þ£'GI…%+T Ò²'(_¼C,øm_l aU#VÎeÖ`—͉î+WÅøÊ§ôXÏTׂPü´#ÿ˜ÊÏm„ó¹Iþñüg}×]¨Œˆ‰fÔ.£ù 6û)øÐE9ø£˜Qù¡·xÿ1žÜô‹‘ƒÏìK¾õ”þ%»ÌÚð÷ÝP&}`úêòãä á(J;÷Gk{ŒŸ’ÃM×ë„Y¯²0Pã]ä~mâ7Á؃Bv1ó]ñ`Ï©L®Ó ë|~_Z÷ñÕñ–{˜¨rŽ ‘Vä·Û«¯´R·çt† ëÏNÞ-ž1°~pýàdÓESIbð=Äø]ðG@tJs.[³ª`ÇÔ¢Ê\¡æÎø0»ê ¾Í—šB/ð«zjªßÆÂ-¸á?&ð”%yŽŠh~íð«Q⸑kÿu–±å4î—Žè¯VÀ§gDoÕ DÅ´ T%…ÜÄ}´ûáʧú£ßõ uÎì/«hD3<ѽæÁvõå“óR]Rþü 3Xßã9|ebô•hT-¢Ó9 m@»¾0ÿ|E¸+]Y»$Ttß…dD[È©è~@·Y's·œIýù}üÇ,ë þ£ªù™*•„hÈîQëwÿQ–Î`y´ùaV<¡e nÝþ = û8g耛C©ñèÌŸQE=œ|¡ùÇ]< ‚—yJÆà W²˜úÚaÖË+^QñçÇ]Ò‰ÕÜè+H%lw/ºö: v8MÑ9жçæU|CuYot ïK9X^Õÿª˜úð¦¶ø¬î²±ü‹Z ‹H¼Ó™ÊQ•}ú”ÌŠ=j-µÚ¢¿=D]üG32¤WòGžVF7Bqª:úÁøøðù耠pÊB]`-Xž¤Ô‡7·YÉ?üÁë²ZkQó~¥Be.¼Rz8•þb~àWEBáW5ÔŽÁúÝŠäaKä ñÂØi¦£6c+üÉ}ó1ùŒ' zGò¸ðçP—“…‰†vþü36ã/ò_&r Gþ±QÝ®‚‘\A>³“Î݇LÍæFýà<2¸)ô/Éh•µí´Ý´ ÙÚXGå3êÏ YSÉaíÓD>ŠäÀå`ÏŠüOô»IÔIjÇpŸùQ.Žwá‰HÞ¦V«‰¨4ôRôO,À*þÔ.aþÇC柧øÍúó/J+TIN`E=ã~‰øé¢ê«¿:Eÿ’Ç¿Y'o¯?oÂÊ\h¶g£+â2¹WÇæ¥.ÔŸ?‹õ>Äÿt¨ÕíÄóx~Ob=J`åzÉëT4$ÛÉ@/‚ô™ÓŠùQÑœÝ×nèo©8LBï…ílõˉµ÷&*‹ˆ7Ñ©|;GGÆÈý‡›òŠj§0åW°`Û龨˜u&“å@¿›[xG´#Nol|Ó"óÎÚøž6œ;;/‘€W9@‹âc•«ð78ÊZüÇz²4Yäïñ!LhØó¨s¯íåmìrU,¾Q˜:JK&YÈX&‡¢s:Ffdïþõ,ä$øT{ú_= »Pð»,j>=![*¸ˆŒä0GàsJQÇó›xªÃùzNxWª9¶ðöùçɉ֢“Ó|‹¿š¯dc~í~#5úØÚèwbÁšÔÀæ›ø“æèö·ÁuåC]; úÉp&ÿØŠ×ÌÝÔĸ ~>Rh¤Uñ¶ÏPèØç{|àó·ó{{PÕ& vØÓzfV1Ï’ä¥Ê‘YOÄǰ€[øûH”Õ-ãïCo¦ÝaïñXÏCîDÃ0u•‹é†"61«Å¿º ¯PýÕ ¼Q6:ø1MdùG5#c8þã¸Vœœl?g+? åaääP:.õ„›ïÅdؘ¶@ø…™¬^þ<Pà‰ÈhŽ€ç¬%[¯ÆN$ŸÉÏ‚ŒûDä›ÉáÕÆá?þ‹]¡"úÝ‘Two}Í óþ£1,Å!²Oº2Ž‘'ÄÇ5vUšÂÄ~m íåLâ±Oè¹êXOèŸØîh5 ÖzðÝc­Jä¬hÙö“LÅ_nG1CÆ 5ÿ#–ºF;GÌΪ›¥ÐöÖ¦ Wú%:cßwÂw@ÝtÚºÿqÁ‡gOÌNÃÂÏ ÃJ¼3A£ÇÛVmBþ‘˜ÈNÞdGs$µ)¶ŒäCÕÁOƒ€ù“!µ$ŸÉÅ,X+¹éwû@’GúгÿáÁüÁÍ¢ Þc,Hñ1‘År©ZN¥ý:|5+Ðÿj‡í••ÉÖÒÚ‚þª0èÝ„`ýî.CpL­Èk?1…T`:Nåü…¡vUí½ªþþóN)¡fq¼ûñݨ}M­~S£iÃ4ÉüA5Øø*ßT7mýK’á?¢RKòI_àÏï“ä†?oaHñ‚þo÷Ô㺷ÈÅäÇÇôOŒÈ¦„ü~øW35o¬Á$ú—t%ÞCðZéþ½NËà?’ˣܿý üÙ~òŽ»øZ°µ£ˆWû1ÅQð€"þ«¢ö¾¯è£ï ¿Þ_£+=爣½°‡PÆÃÙç|ænòãù.Í]òEÜ‹E,-‚Â|k£ò5ò*ПÃߣ:ÏŽmø,£uÎÞ|w-üGWžôîF&=¢Î ¡Ä©> `Yᜑ Kìb$!Æ/&µQúbÑø‚Ôx¿Êt¥¾¯§þeý५ºCä–gùä*Äïq‰Âš‚_ÆâgD13 ­æ'VÛÍwŽ“yáG>Á¯"òrÉÔ¢zjP®è×ÔK^ÆHŒ‚ZHú"ƒ&Å27'çÚÆç $qÁ_Åæ|$Ž¿r¦‡öI¼ÑLªdR`ïíþcÙà`tÊöI¡MÐ(ÁF¯ *N¸´¡'w@üÇ5¤Úùï³×œþ%CYAEUµ„=|€mØÄ ˆ|ã£î{/ŒÿHg–†c®Çó/¨lBv³Y®…CU;ÿ½^êíó%èÕbV±óCaâÁïŽ ¢SRëüyI3&+&¥žý>ÜÂ30˜š°ME´áažëCèwGãuŸr?,'0î°Î³=>²=ÓWm¶;Ø¿NT_WÄÜ C’D÷7°öä5rÇ~º]!ò§†ˆÆY;iÜ‚Å!w»@ÕÆ’- ”/¤l²a…x‘œo¾2Ãm”Ãx‚†íÇF÷ÛC¡÷Õ”FêZb”ØÛÁä&ÝÀ!RÂ%׿ÊcN&ß8É ¾þÌ œƒn×þ<7Õœ½±x«íàD_‰Ö;6®®'Ñ̽%¾KfÚ»ÃåE÷V›zl诎šsÑﺓÍ<¦Jå(,ÿsfÎÎ%Ÿ)I¦›_¦©J(E\3&ÜGS\Ž{`£l&nÛÍ?lEÁ­êÞoåÚ*¶ÅTã¼c¾áx³(\H-ú·[Ô¾'"ê„ °²CøóÔ®µØÝlb’ b…™Ô¶ÇÚ„ÿõBeõÌlc²m²Å±ÙàèQZÛ»¬0×ÐÏüÈ]ÿN,Ã#•‚ÛÉ-9Žø¿÷â‰ÒC étWIþoׯE×ú@m«½ÐjêT{ýàAå™ÚJËÊ ôXZ¥Ÿ:ýó1¾Qjá“Ëa¹œÐÕôÕïi}ÕëÔíÌ›ôÕú$í¶zñŸ÷¯{´èÝ·à/jC·Å[²d{‡F]ˆAâ”(Eü*§z„ë} · ûQ•è¹/]7zÒ#x+ÑÅs¢§â¹8*rŠYúõp»ˆèísmL ö|ùèNðhÖ€GãÙnˆU|†† 6kbûVFê?Ö(Éé+µŽ,/ÑŽîÁ¢bÅ ¼Ñz£1Vå(ˆ7Sظ[·cU×éÉÃXŸ÷—\cú#ñÒ@VðÁM ©‹íªˆ÷(„µ_Ê:gŒ™`n mÅ9=®‘µ·¯¨ §cŒEe^=™•ðÏÅhvá‰ÕN%‹KÑÆrޱד¬ìƒzG/ÁÀ{õ'DE]“¼êOq>~ö Eg;aD“{â¢-ýKæRã\Jú€ L%¶sb±9‚äø¦Êm ˆxˆ"ø‹xÚú0Qg'9I”üò mâØRäqËÀă[N5®éãÕaáN]3-L}»`± $F;G–¶‘ªŒò 1j.4§ÇdQ39([!î »ÛœH|¥œgŸîºÄÓüPüŒàئÂW,•SÙÙTЕ·è‡3{ð 3@2b]¶1Qä%]RR€`]¿º/[ÉDðC¡T–ö­ºiN¨œ·bïsÁ²–÷[² ù8$þc Ì온ÀîjúÉšœ“ò¬ëEÎàÎO¡ç ³Ã3¢ 9äMž† ä+À¯ÜÑmÕ3ék#¡ Kní!_Ö‹=ò•`З‚^y’ñ ’µEH'Ï^J Õ äÐ^ÿZ ½[kôð’ÙˆÍÈ 2š;8wËé?žx¤Õýîdê ³Ói«>5I~äo6þ PÝ Rª´=ðd @n“šÙ`ƒb¡rn†ÊL¿  J²­íàYÅù„É0ýÍék2“ ®3á@¹5FQÍq¼3éüüN¦÷þf¦“ÄBùÜßÖ̪­ånf¥Ïúm2ÔŸW‡Å¨Ä÷kÓ{å1XCa0 x ™zGGþ1W]¦OG:‹r‚XqŠ™¤ÊÄn7¾{?«¶´­fÂn[GXøÑ0?™ÓîcÞç®+Æ’G>Fç¿0JÝZÃݦÿßo-õO5³ãÌܦÿ•êx÷{‹QÝ`¿‹bä RL^¢nû—ä`~Ô~ýHÕb‰bT¸5!zìFÍð!ìêMìµ½·Á~‘ ¶ á¯Ïåg­[0ÿÞìæ=v¦qõsbÍ.èý¢ßO‡Îû>=I–Eê?n(6ð}“ü¿¤l]ð§ErðÖíÏOè?É´ý ¢#ɇèw…™Ç2Q:âî¡ #WÀ9袈õ¯nÑ]*1À´Ãwɲá÷…Ö3ÌŠ´$ÆpÎÚ5ÆGÑ8=4Êè¯RÁ7µ†ã=–¢šr5/ËŒf_ò?aøyÀ°ì$K®îι/r‘-ä*.4|á?&óçÏäzfudµ|ÌR 9ÇÀ¯ü`øçé5Äør~6Qaó'zȆ+iÔËä)¹†ÚëéçÔ«ú«tt…ZI¥EMzÝžaþyK3ú«“¦³¹œý5C¶+}ÏPŽ2IÕqÚzðá$Ü­©Ì¤†b$§æ¤2]|mð绨)iûH6s ÿØ>Àìaµ1çƒ*vÄÿ6áÚ·ÝEȼÅÁôßý 'SfÐ]¶É™©XÖVy†Í­ÅÌ6mP¯Í +|Uk'ªµVqf·‘—x¢·i>#xžg:üÇ|u!³ÊcðçO¸G™™4h.¢³.s®†[®¶=¶—¨ŒÇQ?Ø’o|Ö|ÆuxCÖ‡ü2waTÐòçøÿêk,ô»!ŒùKæ×þž.6dNÌó3™wž þ<)õŠâ¥$Ôfk½´3Ú5ÇoÚûhôñ‰Tó`Y‚ô¯ÚvõmyÞ]}¿~]{©FV¹²3û«›Ú&¬òîÄv`NõE7qKñQ%LCBá$6ŠÓ¢EõWeÕ×êc]Asµ ÓŒ'æOt"•@Ü}¹ú¾X±—ð6«DI±BJŽôZÛ _eè$± }Ü(>ÐëH¦Ð ëø«˜È_øˆÎ‘úS-D´¹œZ³xÄÑk¸Çc¥‡Œm3êåŸ3ÒÈ)TvÇ©c´ý)Î {Ö¥‘ÖŒ|"÷öKÙüˆB¬.ÌÆZÔWî(´j1ÅïŠã vT¨¾Ä9U©»BæÓ@7 Ð󫙃•Ô6¤wÉ*4²u˜q¸•®!.äMaLr¾MŽþ­ØâXOQgQ?˜ tÐÈk>ЊU7‘$£_û)ê×ËÙ¾P-~ýÕ3ÔX7°ÙíÍÉÄÑ«²·\kÌ@;ßÔqþÆ«St•øÿœL î°ÑìhkˆžË•~%ÇÁ×ÞX»èšhØ*ÒÅj,Jã¼øçdS¬Ïrmú®»;üÇzú·£ÖméI4ŽÇÍFÌ¿=J§/²®ŒdoóàÏcÚŠÚºÓ¡fÌ|ú®\0oq÷ëyºË`^G©Z ä¤üß¼z£´Tó;ÎÌs%ó¿_93#ÖM;©5&ÿ°óçk•×jW­•vK+¢9©¨±~ãÏ1eV5/ñs"t"Oô¤úø•è¤=õ-úÍ[(&ýõlÓnƒ\ÌÙ@9úCÄÐÂüª>æ¯K±U(Ô4vœ‡_¯£Ð[ጺOŽæê"ž¨ ÿ¯„­fß>7ïOå;‘†Jµ`9Q©è¹¡Í¦{³ €;ØÍ¬ÔXùÍ W†l†ñgí×èq¯ˆ§bb¤þc¸R~p#z€wF V,êD¦½™h¹9Š’íh€á?:À°tÅŽÉ1—ÔZÌ"òÝÅÑ}-±ú9ØY+žþâXÒ¥Øx/pôè cõy*R‹´ê›_œ>UCÿödØâbd1ÛYç¶B ¿ÑÈŒþ()XÀZ,ÆNPÀx£e|¢'ö¼ƒx£E‹`—ÙÕ^z>[ÈõèvaOÿï+Œ·äP¯¡º 24ˆž!žB´‡Þ±9ù#À¯*þc=(Çpš`¾DSÁåzç•wÁèS‘·Ûý–Jš-\©™ÜQc9¯¯ôÕêÄpÇ\_«.܈|˜ðK|Ý„ãN†–öÝ™ž¹O±Y.VYf­ÖBµ ~ä5üîHöj¯.÷ã AKþµ°vƶþl8 ÈÎûsô»YÍ8æP9 Œä>Þ Öi¢ù*àc³ñx‰àÎïÀ¡÷¥²Ÿ}h“ÜÃIÚ1’½gOGaMGôÑšc¦§ÈPzy܇>Körú=v" ©NvшÝ{ßoÄnM×ígŽh‚;¾n%Ç»Çð’»éÞÔÃ@…ÇkÓfOÂLÏ5§Èôz´Ìass²™3TTp8'˜çöãöT2ª»™Öë8Ÿ+8ª_ªØ©IdÕ0—£oòÀ†¶ZF×Â\ ÏÓ<|O‘%äze3BøVK¡yrŸÄ!t2ÿ@7žˆ©Š ™rRÿ±Ë¼ÂdX'æûÁ,ܧÉ%”ÂõÀ¯  =ˆgŽ•ë"jˆšŽýõC?ó†g¼wè^é*î{Ì–¶x !ÖYüœe;Lö1‚ŽÔž›Q;£ö2ÑK}#Îj ~µ'ÅÇá?¨sõD|s¹›–“<`þàb2Œþ¦^bhâ2Û}[IöØ‹aSJª[sè"v‡ëð^,!:*J$—ü¢ßKÚ‚Ž3s‡ù±ï~\Ϩ}­Þ¥ÃˆóëÒ¿Ý®î;Oýàæxk_U—_NŠxõ›JO=P4Â&äá9~ÊÄ]j6m-þãš¾I÷Ôü’¥x½ú%l §¨ ×ÛÒ˜#Üé÷¹AUá/r‹ôTƒÜíÂ=¯£Ð!ì›zMbãKæØkUÛÙüÊ›çñvå;ù‡'Ÿê·~µH¨ï¿ÔN£ÌÀ½ëˆõ|E R†;ã!¶§5ÿO*k?|‡ã¿*úDê?î*yÈÖÓèÜÿ›¸Ç«q¯6`¯kÁ’ã³ÓJ Óqˆš÷ñs}ôò‘\íÞZ 2Þøð›DÜIñ½.xÍd² èu!49»ÁqNáCb÷´CûLÿCýUeŽ®.VùzØ¢p éá#ì}&–P*M‚[ØBb÷I‡øÏBeñ6ÂþWy˜šP–]‘cAî Ôê_]ŒW‰äS£ 8Jýù|2šÌà-“ˆÜ£Íz(‘]‹ ÿè¯Xz€p'kë…f+)ŒÇò³Y`a½Qp¥dÅÑp>`‚&çÎç_§3`ÓöëƒÕÅ¡®¨ýåR­”°+þ2`Ñ÷ài£¡» ‡»WV@Cô«®z~̯MOG>ùG®°þåežó;½ ö9Ö‹£ÎA•µ¹}´rͲÉCÔ¼ ÓÕ|ó¾ þ£ vá»G«ÖÕ&éûE ¾Hw'ÿøU”ñÇDÓ¯pßl±›ƒŒNb–PÖ¨D~t·ÎÔæ=õZQ:ò*ô©÷×íseí\XSp§Zr%J©ô›w‘Õ%vv?ª®%º_Ä› óÝ'ÚrýÑÌ'0˜}¬ð<¨hÌ]8±F`æ‰e5Œwìð„(©ÿ8¥èx‡È‚8ú89vUâÜéãÐL¥ ƒÏ‡íI†8·ÔHOÉ1·ÐêµÆSž$r·óN`ŠÑ°±¨F4äc)<…ݸÃ=\oô,¿Ä¯©ËÔ Ï/A^é£ðAô#:b”]ÏóÚO¾ÂíD›°ïá‹ëA°ÿˆ¨#|Õ þü?3Ÿæ¿ßŽóUä/‘¼…ÿX­'¡²{Và4¶~*$]Rá¥Dà?†)©õ‚ÞŠr(ÈO*üÇrƒŽò¼ïÏcï²?Õ"igÐè1kæ`,{XN„Ñjë˜ô‰Ét¢@ªò*[~DßáÔ'âÙQTƒ_ùƒ¿•Cq_æJ¿NnûÜl¸Ï#ð«ÉÌÒÈbkøÐ Ø…]°ËgÉqúšwØatYôí Þ&€ž™}ÃÕÍÁ›®²«Edp+Œ¹ýP%s5#~ 0E`¥ËPÿá#¢> âÊá-±âfù„s<\\wœÁáJ9u?ùUqüÀ`ü_“é¯z2Y6ùÇNæÖµÑWjÑõ%‹k€¯9‡ºYr7½Ûë% ÿîy|ÆÇÜf. ¦=šMЗ%²V“×øZ5èöåÏÌaÝ4ݬÛäsÍ5°`3ÀÿÚ¢ÆAþi T[ê_˜'‚XÇîòwÕf7[[0¿6ðå)Ñ_ ƒIC¾V¢Joê@Ò˜ ¬§pßødÁòŒîvøwuþ£$ÙÇ PV?aXu@ªQ?¸ÑþÕ‘éê'l‡¬j¶ötóâÈ“07ÑǼÉõ{'6ÝÕ£:'¶ðtñïÅ;¥‰šÈqg}VjOüw>_g¾¬Ði/µ úYµ8kÞ¡þ|þÃG³è6ò{ÓMªÐ8ÇVýA4¾K?¯ugºÈB})ºé•º—vN ÑkDe·ôm\Q«Y þ¼›x¥¸£ßMDý`Fq’úî¶zGÇyø§Ë«_Ô3úgž<_2Ç?‰àªóôÿAOFr›Ó°ËKuŒŽk½ôè×+úkîúE´ýoAš|ˆž³ÊKØT?âéXÄëØê:<ÿŸÄr¦º‘úwJ"#9}¾â’äÅÃÃg·˜±&ØA"â¹x”ÁøƒRF9=M$Ç\N«MLÙ –â>¹µ3,;×ãÇ\žõ?³êf΃6ûŒ½Ê„Ú΢¿TVTVª"®ü‹]åçj¤f~TîþXÅW\•¡`-7ðEñ(§`‚üøä[F=±-BýUkÕS¯ˆ_¼7“ÿñö£˜Ø1ã31ž‹Ø¢yè€78˜Äçe"Zsá ö‰ÀŒQòƒ—nƒ_BÆâLÇÝ-¬6ÕH€MÊ vs ¤3'Z¢‘XG.` øÚ*Îâ_dLJõÉê’px¨V@,&ÓuÂãl$CÕÁt®‚ú€å{؈-,í/if1§‘áèd £@tóó'©-ëîº|W½™]Ò4‡ø~ú+/"ý—(°6Ê hw˜‰¨É>‡¯*f¾&ºGþq tÈŸýW¯Œ¯…ôÿ³ou”öFt#¿{G<á§òÎx/‡ÀX$fjÈX*áQ±vz üyútU#ClAõÇ1üáiüG·ÿGÜYÀgqu[æÌ™3óàîÁÝÝ­¸»-®ÅÝ)×âÁÝ Á]‚»»w·ï?éåIH“&¼÷»}Ë’@rræÌÌ–µÖÞ;HýÇ&Y‡N1—‰5æ+OÔ§à9¡MîŠfí0;õ•È?æÁÒßÁ+õcµv°=GÑ;úOyÓ}‚-´Žú^vVRÝ¥š¤—ªH”…®½í©®HÈTª]XçìvSôWCÈáêÁŸß?÷Æ´±[F¦ô‚;0/Âнij}>­ô.LGŸ,G•Áÿ±ú¼kpò{áÏ/0Mä©ᥢósöY§yG>à?úšyð™ºÜé>Áï—Þ"ÐÄÁ‡Z6=^'7¬{I¤?Ö#Ñ­$‚Qþ»%Ye³öÏ߀ ‰éÇ»+¬ ùÝM­½qKÖ#cωE¾ÃĨàcŒõð盌½âFˆV*øóFÜ NÝJι &´0z«GZ;ý&*£Ì%7¯ÿit Ó•¿Úh\„·}̳PûÞ ´¼8Ø.âf?ððÏT^ÆL5ÂÒ‘æšXrØd={ÛCÞq”«>O\ýÛäÌ׫A¥„DëzCv Õ\×R`'×Èçò)zÝ“ðÔõÙOW,üª¦"ÁlæF£GíÆúÕ1b„rÍùD>,r;÷§dGÑÈCbsGšM°‰¹ý+z—¢æ\úr‘¯B/3ë!u¶ÔõÉúE‡l­,¨äT² gþGKXޏhf˜ö‡­pxx§âNá>˃þ‚õÉôþF1Îéï]züˆx\53ŸóN‘dàô ´û¿ƒâ- Ã÷Äˤ_KÌ)G†ÿè¡Å2vá?¢a3êàA¢á7„u·°r‰ƒðYZØÔ©¨¤¾áI–ã“V’Å£>Aèä±k,ÒIO®3lÀZ"÷/|ýI*Ø·“q$—XLì[ þ£•o“áG"ÃÌ+9D[_ª0¢Ý¿–â¤L‹ÿpa§©°ûG˜õ ÿ±•J‹˜p¾ÉˆK×ã?*2¿v Sõdè#üA^îØGýÇŽZcDbìÎA¢üLx£ÎdlŸéL5׊N5ß`øóG°ìÖB•þ6jÛˆ yÇØß#bùf¹ üùô»ùð÷Ì‘¨–ð•j5µÓ¬^àa¾ÌâKc¿jOÿÄžÖ{ëREÞ› àkÞÔ´T“áWݵ*ø ~~fKøó‚èw£b—GÀn§¢þc7yðIÇÀ¯òY™¨Ùé­Ýðû½P8삯BnäQõ‰b/5;qÈ‹<¬÷ò¨D-NÝ— jCà»Ù]wð§ÉNÀ)kó“í— cs„ieeq÷›2ýÕùM–Ñ=«JÉ­æÿþ‰Wá?¦¡N^h‡sQOÞ‘ =Vê:=˜vèÌ×ÁþSõÔÐ4å^dÒ#¹ÆÑd÷»¨<¾I5‰ƒ„u„K‰VÕ”ú-®ð`lµì j5•“yÐݳòæY`Þ³QV&RÉeXº%yLÿןÚðú«÷Z±ÿ˜?¯ßÓá?<Œüø¿ôWáÅh¬#âúݺ" ±õ¡†ŸlMµ_E¢¸7Æ=1E'¶Óãî±ÕðÅ„„²¿^",þxP¥XèÆà™}ˆw|ôwÒƒICmäEøóVFc÷üým!ò»ðÀ˜†à?b‚|ÁN—%ÿØ€Št2ŒArÔ_dOãÂ?-ô?ÿö€þ%—ÑÖÄPë°0Û‰àN‚]$óxÂÕ¿#ï.‡ÿˆ‚Ø-K‡ê?^h‘¨«X m:]€7€þU ÿÕ2›e01Ô>ü‡'éN§ù–fQ#K(×\_4 hÍ“ý”<Áƒ?+>4[ð^§¦jÚ™âêt<ôPgð1÷åg£™îÂUÔ¼õÛ2•ÝE°hžÌáxÅn‹ :RËÓˆsÿzGð ÷M…Ç«Ïüà´vôFmÎû!W—‰3»–X˜•÷ƒÜ fâØ|ã+õ$]áÖñ³úâ1Ó­àÝ&ÿª¥26Ëy -ÍÛ ÿј736=%ìÅ!rͼD·s‰í?q¯ærÝ3`å§à—îõ€iE]üúïöÆç$QÚ.eÁÆV¿Êc·–£ßÍÿQŒúó±pßЭâú·£ ºÇ÷{û"ÄEÖºÔ§ŒoÚÄ“fO¼C:‚LµâbASÁQo"ú®iép¿ÉÑj¿Dt›8¿0ñB&Ñã‡G Eæwn«(ÅPüGtЫyè¯"2çi3ù‡S¥×œ®„ŨA8ŒOI%ßur…ýàøËÍÎAÆáÏób¯ãÕFó”]Tó¨ŸnHýzBë,½F2 7ÀÔ¼Ì|mùqÊeT=¼Ç%V¼ÉË+­ÖVßO0½õ…nwç™ú¾tô9kÝÅ\¤§ïq¼Ü5kZèîôeœHæJ¯~o8žüÃatÿú¯ý‹nQ¥›Xg£úÕ÷"«¾+/=¯ÆÒákû{Œ ¸3*¬\ v“¨D/JïàÇp{oä lCqjpç»óeúLcOæbŒ©ôر@ªú¢w®ƒ&;½¸úÙ=\G]1\Žžë¤ {ž‚úÁ Ömóïо¯ïI¹ãûÿÅ?£èƒÕŸ?¢þ#4ENH›K«ŸÓs‰…ôo¯a¤NýÓí£¾šúó«ÌÿHÿ“üÇ;m"U#lC <¶-#Ûè¿»†úót;)žè¶û~†´£À_¼ä©ß++`GúšõåJyT›Èütf=Ùšjí×rˆÑ1L+Ò·>ŽŸQêÜ bèH÷+ˆFu³¢¤«5vlhJ,cE9Ö¸x !}lÆ$%ÛpêöÀ…µÛ†U½wñ÷¨1\,_Y?TÿqBsð]/ù…w¤lyøüðàOÛÀ[òmƒGô9š2ÔÆl ÛÒ¶þúûF¢žrOöcÖH€Ç,Œæù”Ùö3–t5øÕ.¼H&§ß¸êð²¼þ1„%ßi^L|Lʪ¢¿š‰»Gÿľ|LôBEÌxâGþæü„«p?'û«<#³b ²Ñ: pTÔÁò\ªG¬QÜã÷%=ýK¾‚ô´Å^oöóg@2£VÉÎw|ÆôƒÿØ,Qu04Å™5ŽÕþ€•êŒvUWg'K7ûô–}MÇ{¬t˜•OF§¿å-3ÌáóS8x”~1‰kr:heaæìYf°JüÇô»I­¡ØH‰úÕüî Ñ꛹/¶¸ÆÙŒªž~°{ÕRVë‹~7‰µŒºq Ëš‡9CAìª05jx):Åû‘-t%o&?vd+b‘=ï'FÉ*×E½6%|Å «.z[Ç<¹ Š3¾¿|wYМ?Іí{F×<ˆÚd(,rQu‹œqê0”èt(j9VØýÕfz>]ÿ& òºe½%‹«¶¸…k9F†Ò\ ”ô¤¢7w±8ÔdUBõ£òÅÅÔÛÎvLzNŽ'ÿØoW «ù'j ’yRËo_Õ&Û|€ÿMÉ Ô?1±>_3Sqgš)- ¿ùÑ|Šæà‰]Õîƒ?Zfgs=€ÿ¸ ÞtÌšg²šâ9w“Obža4"dµ@üÇïzWúð)ªV—š^ª°l®f[Í`¼ÕÕ%bƒt®§v{º^Åq¥§û˜ü°èïÔ´'‰Å¶b×"šëÜþc.õÈ3ñF“Pôõ''Ï ÎÞjµ´¢Á§´À+yº.»2ºbºŠÛë”g™Ln¯u‰§^ÇfLMŽÿ±%˜·äÿú¯^h#ôòˆþ‰¡!â!í(º~SÏ'º‰XÆoFÿùQ«´úTÑCÜèß § i…ÀJë^Çß^ 7ãJËØ¢?ÓG^2œÜj'’?ß Öt£,†½Fw‹3r£V þ#;ýÛ› ŽI-]Û ïlàý|œƒ:ûcÆÄ@PÚY4 ãëpâÕ£d9±a‡?²ê4ãdÀ·…ø‘mxéŸb£k= úO—%x×cx¢'tù8i&VõÈh¾‘/?–CõË´ô L[a÷Âñ>g¥yÔtëõá}4À]Š •c@¥z˜ C­?Ï%ŠcÇûùÞ@[–†ç;3‘Ó¿½x÷ë‹ARVÀÚÜ…eÄÝI«Ÿ áZ?ÐñøŒL¥’s8øUjPêNà?¾h+áÌö¼¯·ÈNáC‚K½F\Hµ¿ ®ÿnB½†Q ø™Ì*yˆÓ¾:Lú%ÞÒ ’M AeEj9¶â?&…8üyRâö_‚Á¯Úh_ÄJ"€8tƒ*¶,*ßU…'%Qw^âÙ]ø‹Dô^pª‚è~‚¹Ü““™b&’Sô “^šŠr4±O\4ª»ˆŒ9Ñ0”ítlOI_Š ôf­bm'º/ŽJ¬º?ÿ±ÿ¹~ƒN.¨þJˆË2™¸Oô!jŸvÑWE§Ê Õ× ç~²ÒVxk¥JFõ…ê·o0Õyñ×±„×Owa¡ô þŒçm/ùÇMó#ýÛçXA€ºcK_£qÒ] ,_šŽÖ<\<×eüŸ‘Âa³e ÉSÃÞÁ‹/òg÷׫Yä3í­>xÏt.ŽþªÓ6ö£ß}>ü³ gó–_ãvÈD3­€îL¾¯Îó;ŒŸÜH¦Éu&‰Kø/|ïr]µí[ÔX”‡£gZ¢•ƒ`I°¶Œd¿˜ëÝOa$}ŒØI‡ƒü£¨µD ³—Š ¢¤ƒ ÃË­Gïô‘|ëXÑYÔ]‡¬^ôÕZö§Š<`vgšOV÷ùõ׫Pñû]y›7ÕÃÇü`5q%"™Žî±:¿‘ôüŠïJb÷gžÈïv zÜ@£`qv¿ÃÖ ¦;êöóõièw €|O3ªÞ[Öd×ú—tµ> àõ¦’½Žë¼ËrÕs•¡Cæ:ò8vôW÷±=@n‡òæT©ÿ+ók%ý¯Woµ\>s߀0}T¿¤§^0‡QÁÈ/´ðª–D ¢â‘NdùÉþ%_µyÆ3t £ˆT»›Qè´\ Óó#b£V¡nÊž]=E½UÛNµ^Ý—·†AÎЄÿˆDþ‘®{#q;*d³Ï]ÖBæ×FD””h ³AjÀŒÉŠm¾ˆ¡ÿ _éå%ÂÃWíësæ¶yz§Rñ\œ—®0Óá®B¿ÛŽúÁâÄôÝÀ¯ÃÈŸ ó*¤û Y—©)7A9ÇR¡B3üÇH´QÕ[u ˜Ù¾‚Åÿ;5 ·`eªâ-}É}6Âó7¢Çîm÷ öÕê>ä 5QUÌ#«i‹½uQµ^œª2=º.0ϰ ¬õÌ@/O—Ú h¡SX{àS<ñpëЕGQ õOŒ®ÏçÌäÜÓ•f^ë<}ÄÚ©dt¾HÆ6Îg# ¯3 ä59g¬ÙÌÿÈLž³~o¸‘;Ìn"S_«?B¿; ¯æLO .ß 4á(ú‘È*ºÙŠØú2«yóë þãÞø½YŠüãNàûŸ ‚_ÕÀk¼ãÊRãoÎcï+£ƒ;à Î7È9äS±Q…yÿü­?¨Ý™7Ô7ÿ1IËdlÁDÃ_„ñä0åø> [\ëÿ‘‹þ㈮?G®€çZÿ1Šû}Û˜ö·éÌí™_;Ž &¬Æ<øOœÑ!”ÓàKi‰¥wÑ;£}m ¢<AŽôÞLF´ÛnïÞê"^¸g§;&õQÙQt˜uÔñýÉ Ã(r˜Éôû{‰ÿ¨ÿqyåOÙcL²'ì÷1¾¡<üPŒ ó?&‰´äŸ[@ròÀ¶V±Ð½èß^žl /HÌr”¢(¥ Pÿq ÿa‘¥œÇ×ìU¯ˆêÑïn’NÔ\÷˜YÞ][*rî ¿Zjö§›D#Õ_oj<Áf%õQ±äió°Uœþ‰{˜uŒ~ígÑ µk1ƒË¦Nãwêø³€.>WoÈ•é…Bmñìþ*wþ±Q]+È6ž,×O>e~m”¿ý™Õl«Ž]†ùç™b[Ñ~¯–Ò½Dà?ÎYçxG¢™+y;‹“!›rƒûŠÿ½"è½õôîgõ™–Æ¿rã?ùù©ô+t™"²Ñ¿$ó¢4íš–FLƒÅ~—zôŸëWAÿƒªºFD\`|©øho½œþ‰wŒÆkñü'ý‡i¬ÅÚ{ó$.Æ¢vƒ3ÿ¦mEM¬ j¬³rœ0a쟮?/]¾ná?èxÍkŒ•ˉ…Ê&6“»¿îÛé~HÖ“€h!¯èGÿÝ3ÔD%®;v—è®4¶æþ£>lz8UŸ,õµüD—•r¡úZf¸öy|µA_4¨åðgձў WáQƤWëaÔ»cq+˜eŒÐ¼pkøçd*áy`§Ç¯(Mü˜¶b1Ïïa쉄?ï>tBpÝFœë¯ïÔïIòŸr¬ÑìVkËÞò¶Ä2»-<$ÏÙŠ·lç$ùÇóWy[< æø*é=ŒràVoÀ8S°·KxÉê<+gÉYÖ‘±N¢ÿÕõ¬\sw÷i‘™Aˆâ?„¼!÷¿(ã–q‰ìõ¾ÇüêQay¬èa¬ 17ˆ«#ð¼…#{ʪÿx«E &ÙXùÃS€°EÃîœ'º)¦q ÿ±3좲YÌÈÊÝn!J€ÓuÁS:™AžïtDÕ©‰¨K“†Wóx†÷€%Àvtµ»nÔÑUkÚúBú—¤R‹Ð%UÆÅÃÓvàé¿`þ‚Å.C=uWt_ÖÛ„çpfÁûâMËÈ ÁÎÿ(ªÆÜà”¦¢ßõe•V kð:P¹¤"ø†m{áÃþósS¯˜ Ôiw°þ#¡±D®„ÿpºz`—â½ÇšŠ˜¶4lÂ&|^utk5¶ö3Y×*|ýXlp{æNÒƒö®/òËždñÉÖЫãÌ ýU9:&^…xi!º/†åGä.ñÓÀšæâANÊçF— gOeêi;Îyþc÷ðœ9˜úÁøt”š„–è=Ü30ÿc3ýªL«/.êÝ«àMuÁ¯R™‚ÔŸÏQx"–);huæ}x”1V›þè›ÎÁŸïÀºú/ýf]ÅD…Þ—ãnÄǬjùa‡KeIò¶« ­Óñ‚§é_2“Ú·Zì„ÉOàLYìÓV¦m,Q­àÏ}9Õ⨠vã;¦€ÙÕW¿Ë'î7¢›6T¿BEQm²¶°íä0ª¯à?Y¬Áø•ÌäkÄþúS!ïÍüŽóp>ÛÉ5’s-…ý ¾¹Ù½^}¸„ÿpº/$²|P?•@Æ9燙•†î%{±ú™XɇB»!º„ü¨µŸ“lï.*ǹ¯wøÕê?ŠssÕY#’zmµu¥d~z úï>¦žD-´d~cJ¦xt½{®*ó[¢ó…3½*[Áhð«èä6UVâ~Ì"—îhÚvqW=:Ÿ fFí:”[½Ð_­q}e~mK&7ŽáÚÓ0×ð€u ÅÂbŒç}üBÄ´Ï}Åÿމ蟠L³áÒãºÏéçv‘@ÿBýù‘ÜèdäNÿžÝš-–‹~âžÈ(rê;j¹wZs4Ö¥ ßÃâJ"¦[åGãŠ!©pÿ9þã²X Z=4Õ~éM¿è) )ùÌd2»\޳̦+Ï®_Óç§°Rψ¡+`áê‚<µ6³É5àöÇ@´.ƒ°^cþyç0ÕŸ?¾Æ;p•/ØÌ“DÏϰӹ±5Gˆû+±z4U‡(ãš<çô˜ÕìÕ"Ñd ÝAŸŠe…f°åxÒ&™µˆª×+¯½kL®TÓ,b„vŠ%DMöÔ |’L#!R"r­·T¼æ *·¨²s¼Ç|3Vº •yWPt…ä5£1𭌠Ú׌}M *~-»ññzêÏS©Œhm:«—ØEgÅ­ø¥Ãd!÷Í ”šH^ø;¨S ôW_á?öG\—MybO»óõúc†¬jÎá]F‡{VW]”¿5Á¨>ÁŸÔ±§º¼©ÿøB'ÞCê.SrDZîë2Ï@xr éf®-ñÅDÕkª8ÿø¿˜î» „ýwk3?ª §}K‹(VPr‹úóúv÷ý Ëi°8y:Fü}tç)oxmø ‡¡.ŸºŸáà÷¦iŸÉ?¢˜>°%ϱÊ;9ÁJT4%§¡¨øe•æ-Yì6»Ñ¨ý ~Åö¢2¾¬žÒél˜?™Œœë¾¨(þ#¶{ÿ>µÌr2ÅYä†EtW»tò2<èF3/ˆR2j"Àkïf§–jÓžáØÝ.Þ³õìy*ž)6óï³¹Âd¨Nþ!Aµó°‹DûåøèøÕ~³} ”5•è1'|Ò ~Ú`ªç/‘oÎfvÏß—óÒrÇå-Ó+Yõ«BU Ÿ›l'õ»É䲃ßx2Ùê-™æb2™¾¬ü õçsôµÏ_kO€?ïÅS‘•|b1ˆØc2•äÇUu++så¼à‚ú ô/“äôéƒMÀÏ?#ßPQòãSˆcä”Lüâ+&“Í$CÂ*6kÌ ~ÐÏJEUÙôQ•¬Ïä1‘Á}®ñÙ1ìoc¼j<1䇗‹ÈX²ýÜ·4j:ÙÀMóƒá NTÌõ¿zÄt¾CTAì ÒîWüœ“»vÁl¿z€Þ®Rþ|½ÌHþq,²7ˆÙeó´šïß¿d¦J âÒHüÕÕÐRæŸ_‡Eïèï?¶²¿…øªI þí­µ>úið܆dmXµ‰œl¾TwèŸxŠ3›Bî6 ¥íoðßðÉ?"ÛñÈljƒ_]á´c“]”ІoÚ6q†Îñú1­Ë2–é«6QãqÞ}S6Öà §¹Éªƒ°éû¨5ùÕZÎ>ÿV{Õ\}€ÞØö3µÇ+@ëÊÈêó?ª z®dåùÇXÔp\ ì9ÌŸmFí`Û°"ñÜ\@ss]i s‡Ûøè+Œ?ecžõÙÞz§{dìÔØøx®½(Œ“ã?–Ь0uò­ø—ëĈç”xèrÿßàÏ•>-þAË ÇwŸS0/í?üU^ú_U„?OCý %Ò°Êk-½˜ò\$±Òd º V:G'8êÄä¡áW)D¼ZO,á+²åXþè˜. $*Ì/vl5Ö~8ú!8ñ‡Ôæ±²Sè«ôØ™íøÅäḷ­`vÁg¦Wù©<‰Rvþdg{²Í)·‰àæ¨TÐkùøª¨j8™Ï\lZ~ï´0Âñ( o#3!Úc§†ã£ús ä;I°úGƒÉ?fk5è¢O¿Iø…|ð/Y±9ñ@P¥R ê£a~Šbé«5œF8«…µÒê†~·¶ô-õ_©÷[N¿Ü†àMéQ8ŒÂ·¬;»Ê³™Ú(ÿóʴh€ ÷èBnq¾æ3ѵ¶š«Hh•{Àœ²† g·/¬wXå|ÝiØ¡yôdì¨ZÐûû­™¾„“oƒWmNÚ$PÒ³8^²"¨Ø)úÁçÅñÅ^—¦/ï;èÐjä‡s-Çî? Ïý¾œ¦ésÄm®ó Ï\Rk”t™jU„ñHM‡–M̯}zµ ½Yrº†lµ70K¾5¾=wã¾¶ÙQÄTäÉ»LÏŠÒÜÑeèž”JFøh¬Ð…«ÊaL LÔœ\æ0ººöv#×h×+;®+1Ζ³ryò3–ˆh4â×?Èš?›R® ¸âí£X`Òõƒ¯´BzÆž‹°o¤„.D1O¤3FIýñ«#Z\±"¨GO¨{‡})¾RêÓéq‰ª‰è¹ÅeÑ[§ûeĆ͊?³àZ±ÒKfÁgúZ©¡\¾Žj®°ôÀÚKóXë+Ál5ñæ]åÎ"üM€ð›°M~à+PS=•Ãda#¸¸9访ŠÆW™–H×Qtí4+©}Dø‰éßcgOas*“íž–‡äty!Ôk^­¥Ãß.Áƒ°¶GñpˉušÀʯ0k“î!¿™K® oÕÍHF¤PV,'åtf'N¶ƒ8>39s2°‚¼äñÈíç™»QŒ9úÝFLfújd 1ÿ0õIúGY€øµ1Ø'ïÐ+Ù‚½m§‚&#x?ñÞK"X:E~wä0÷g“8ôÐø<]ì2ù÷·_AfáÍ÷ý ß“ˆ:HsBée8šœ s`)€ögäç%ÂÛE ¦~p –ÙdÛÈÎÆ½: ìZ<Û039V³1Õ;ñA WÀÏ>‡e¹€ëì Ú˜î›õ •¢ÃEméÌ?O…žjí%ü‡ÎRó—ëÛ„û=[QNÀé_’Œ(¼™ÃAõ˜‰fAñ«⑌©ŀß÷Ćã~LCÛ”ÿ1Ê2Éf¢‚sì„=i ÿ1r*§òBÝGçÔ¤êÑRàC\&RïDýœŠõZ©c¦MeÞk/àÏ½í¨‰"¸ £¼ªG…÷Ir…(¨«¯å zbf ‚öö—±ù‰—ñHa±¶Â¬À2· ‹ÔGµ‹e´÷ƒ‹5„9Ÿ@µ¼­ d Õm~º/g>Hp\µÒúÓÀÇ<5›_eÄR¿QÛ­Öä­¬mÌ œ"V› ©"8SG®ÂŽ ÒVŸ^À¿;uNáÌYîˤo£{"аIfËOž’añ[Áwd%?JÇ«ht'ô†ICÿ«Éö:«~iOøpª%;Âñugþy ÷ùõæÉ{ ïÈÄ«T|yÛ¼lusF³Ûœ:ÎèÌýÈÁ„ÝŽðݯ­ôÏm`g…‰fE£žùZæA|…‡yÁí?V2¿v¦, 5‘¨îÞQé.&ÖN¯‘Ètj¹¨™6é&è^UÓú£‘Œ^5ᬻTüýþb¨ùY_úʳD~îéN9 >m´BO¾Ìj¤Î©!ØÒ¨®›¶æræ•ç‡bU¸³åh³öã‘Nó]¹Ði¾)e6NíÏì²È9(œfÓ¼)ùÆõm~âéîôÏ GUÜ#VíËŠ½ð-7èsƒdV úóVÌhs:!WàiXKUGTŘZØÉ~m¤«Öê?233j¿=šúÁÊèƒ/Ò!ùÊ×T9b†”æ²€íé ÄüóTs‘¬G䠱ѽ£¿a<æø­e=Ûµ…œæ4 ¶ËÖhr¹Þv;ú—T@÷–z piú· ü£ô†Ô6»àÓ¶R=“\¶Q»­ª® øŒèàlÖ¹R >%.üÇtÆ•ð䊼/ô£Ž =µyÞí?Öêã¨Khwß{V¦¶«ÐéjW¶Ÿi½}éõÕµÔåk»àèý”Ê.i¯¶NY÷xK¢€òNE¿XH’{®ø_ûè›ÖF¯ì~PÃýÙÏm"2üy4²hÆ<#•ý Q£X*<Å[‘ =ïÏùçÌzB®Öj&6䆨¡¥ÏØ6vÑ©?®'RÈ;>#®a—¼$*"Ë‘rùG5êÏ+Ñ˽A¢á?‚j&ƒ_­0þc˜ñ|á1üé/¦â­¿Ž2¦ tf Ýä§\!o²©Y­o7]õš8‡ÿˆ‡Mr²ýd3ûУÅ/½!Þ| VR¦à…<ÍžÍPõW#ð á±_J¸Ë²¡}X×*¬6Ƭ Þ´™ücÕˆ=À¾k›qzU}ßeUÑ̽18Øy|c20óBä„Á/èßS/b%/Þö£° 7PWÇÖï|ÿæ FÔ‡êŸñ{AKò=±`‰ª£¯B)–U4‡¢}Œ}÷Ã:Föq—\â3õƒ‹Ep}•ÞüÊéO¼€·q/WX›ÊÆø[]¢«@K#œµ5U>°ž–dPÃÀ똞‹ÌŒÿh§¥F¿»}Ót²€$ê O]e|DtâÏB°Ñ»`¡2£gZMìÿûãÅ»>½L{˜ùr±4R˜Èü¨ÑxòÄ|Çvð«ûXë5x£M* 3XóÚD¥»¨Ìm-Â|%˜Žtˆü«,.ƒö‚Ž,üxFkµÌbÅûài8/E¯Ä)TZX° 9éÓz–Ý•£¦Ð‹þ)˜÷3XÕåé4ÄÜÞko‘ vŠü#ûɉ=a~Ô|«k÷CId¸ÞÓE¶ª¦RèHoâ£s27˜¯qlû±YܰÎm'Óƒ4$"ž‹5ѼIþ1_у ¼—t - ^7ÐETßŽŠ ?¦Rè¤/ÀOoÇ+eÆ`@­mæGmÅS¶åù™ÊÉÔì÷¤2ï´šên§Ö‚ºÄÖüG8&ÄÃÞÿ?õ#¶I¦r™ÓÜOß'ÍKœ#C~Å›_ÀúÈ{ôÌŒGýDz¢^ô‘ZcGríÁ'Á'm…MßNÍE ë úf‰XcÕ³¬ K»Ïo„^ÎxIǼ,Ä@;©¼l²jU­£žÝ‡~ðÞ »`£žÙQé_²,)¯•ùµŸÉ©.€Y‘Eá-|ÝþÛxt*9Ö"âQGÝñŪäåLž¢ÇîM´Äõ˜5ÉuÃŽL¿•Åj.SªJá÷öX™ñ¼{.ïOr²´]î+þ÷>ˆ¨ÿ¦qŸŒF-HÊ€Ï~j…ôTˆ{S?ØÍHæï?.iŠÙçkñ©DÆŸœÿŸœÎÆî5)÷4cÈ·¢¤þ\?dì•©ä3ãпz&x²á?sm ž´¯ŒHFÿŒ~Xýä ØææŒ0Ö”B'°Å0¸cŸÐoÖƒçûج±Yýî2îh_ØétÄüµe#L5/èÞžYê6Ïãó ¤:pó§Á¯jadeíd0gå +TÿqOK@¶²ˆXÕ$ÿ?Ì Öw|ÖÆéò¬ø›Ò(S%8Ôq¬[#j(w»·è„oIx—Œ%q|Rt[›@œJÀSDš·r”Èú±øô»åõ$âÇHê«uÁ{¼Ö£¶7Úˆ&\ãFÞ«HDɽ±ÜŽm36þ(–è`6¹YØ–€KRÿá UŸ@ =ð8Çñ•…Ñ[ÄÆ1S ÇþD\Ý_°„«D.‘l97žæ}0üÇH-¯±P®„?J<à0õT7ú¥÷ÍÒÔR®.êÛåXчìw^o.¨XWlsD9íoèìløîd0±áðWªJ(o$ÿ)LýùAzö}µ’X‡‰ƒóYƒðÄà¥fó$Í¥¶ã£|ÿ·\8ƒ¸÷_ªO,î.5 flõçš5W-´>S]—\Üáê‹YOükÁàÈ—œÞ-ˆÁR‰+‹´œŠ/ªx`^݉]¾¨1Ô4 'ècïÃ^¤¤>¾-«Õ ÛœUÓ,ô>ð ×@ ™¶6NÆ'‡¼36Šüí˜yE͵Q>Žæ. Ö‚Dö^èG¨nÖ%ë~ý¾îõP‰õ¢Kf@<ØD«§/@#Þ”,p¬* C]ÎÌ ÿá C%骵ÿV†®ŸÑ8²:ƒ¾ 'ŒS?8 „qˆWDõ‚þvßÿ3uñþÃA3Xgå™»¼)õÇáÏ=è_²=pqæpM&—+D^³†ÈcgØB-fžNQ0Ýz¤ÞÇxH‡ ¼X’C*’-o[E\Ý™?XËÚnxŸ v:×v× Xš_˜6ÿçb~ínëÏ@l²Ú™èú\ê©TCþýúÿ/ÿL¤·Óë»mÈ3ǤîÏ~îçƒÿÈI½Gõƒ§¸‚˜ðû¾¨ÃN€_y›yŒê?¬7T&â¤Ïñ¼_e¢3µ&Z ¬–Ôž¥ózv*ófÓ-¤;úeÇtÅ/´G›vyTµTä ÷SÓüjqA3,î,ب„¼­‡tÅ} Ú7Ñ:ÈäÁÒ(°ÎÛƒí¢Vw&4=¢.݇ÓÎy8ó?„ÒÍÿ!õµâLVxN-·uQ.•O©#Œÿ^…ÀZzéGq=¿rúa³FÚé–[^)+ý•ê _8Öµ¬ûzþã:Š–dÄQÛ”‡¼Æüó.? „î¢%¨_ˆ¾ØvE„_I—ølV6û ùŸnîgÖGxs–Ûì×'Sd#˜ÄÉ`QÇäú_5±·X•¨CÙÖ„ý-r]¡Ÿo5:,‚µIß;ˆÿ¸EÊ âëÊè#üWú'~Ð~ Ա侖ì'ëºÝ7]K­Ò=èv•ÜhndN¶·Eû¢Ãà?Rˆä?Ù79þ#ØFcÔ>#¨Í¿J³@ÿ“?ä-ã–xù“uŽñš¹¼ê((ÓPØí$z-ý*1D},½Ó¿}F˜õ»†8j\&R}DLY ü½èF³²‰M9…O¹ËrOÖ”u ߀ã ñ£âñ7ÄÀvž!²{Œ‡ËÜ„’¨Qx&˜Ì(gOÈ©2r¨þc§ŸÔc‰ÔñCUÉ–Kc5˜Mæ,æHøó²ØÓÔ&œÀ;Ç0â¹ßŠà7XPÔ%jÿ¸Šw‹ÇñÝâ]³$ÝK<`2pª»ÍõøýøÒõèwS†Ø¿=†îŽÌj9QnîBD2µ†ðç«ññÀ¯~+º§[9‡¿ºéÏ¡'‘;Dp½oòé¿ÅÈ;"‹{`›/7¿Ú&³Ì´Ä>:£ƒÈ Ò£ßÍÈ ? &ÿ¢?_F|?Ì*%h+9µá¬>;òUÁÌH¼<>­= ¯ø½aÜíŽæ#c¨>?ÈñõueGêö"ÃÎ囦Àb³b;.³£Øe©YÈm²æÃNk䆸s!üÉ÷ r_’Ñ?ñ«li~Cå¼>ÛÑýî{ü'Üùm4§ìåä5é@;ü*-õçwX­=øUNô»?ÖlÉÀÞœ©ÉÁƪëægüÇèw-Û“ðç—àÏQ9˜Õm¬}xØ…£ð'À¯öš¹ƒø.ž›»wÛAηԼ¤Öл©™U†õî_eažE7ª-ŽÓ¥ñ&ëõFÛtŸÅî· ÄŸ·'ÿXn[‡þj“@Î*ãõ£Q Ñ ¬˜µÿ1ä©)õƒ˜ÞÀ:ÍÕ'@)V¯ô+.€^á³\è¾#ô¥â¥Y€ѺϻFDDGÜ[vxŽ–¯ÌuÄé"óϲ­gÚluk?œô|Ô-x_&“sß‘ß@NË/xo|\ Ù\­³Ê¸²Ûóà?Y9è›XΣ øÕ7k*ùÌ|»6Ú±ððÝŸˆ¼fã!À5Íynÿ± ­é Þ„¥Øô¼çí¢®Bt>©Hmý$”޵ة·k&ý|KØŠ~ð©{ìƒÚᔃÕÂÁL5[[Eû¯Ìÿx¢µÓK¸O扖'P7E÷ Óä…ÅDú·7ŠÐïJÓ|´‡ú*ÑK<"/ñЮ;¤Ÿ6ÁxNHXÊŒô°ˆ¡÷‡1ÝI„ûÖxHEâë0íêûMAÁ·Öœ-Kb Vñ<‘¹õpè¯ò2w¶½4“ÓÏ,¨æåû÷þøg1ýyÐIòþ#¨KËñœ·"ªhEœ¼E·«”Eˆ :ÉNaê¿ûLâiŒ€?: ×½Åì“„7{'•ƒY/«ªFüø„ ÇÝ2o¨þcŠ–‘Üxõ,_¨J½[ jó HE˜ùD(ó«Á7?$ÿ8†ý(ª~·„púïvG™Œ_‹`Sº€NŽBÇCý‰:8-Üù"´³7`ÙgóTÎB5Ñ…SÒóoõåEe9„~*ñÁÐWˆ}á¹[‹wÚb×òÇÜ£Ûåèn[Œ*ã1D ß`Z¦ðçj:È>–QþÖ¿=¼xÈ3Bo °žåh ÆãÕûƒ®|ßý vužô öy>«Oþ1Ý¿þü-\ÊN 8ÙÞ7´oqŽHEþ±Ÿ(#=?s ¸á7êHfYÙð:“Á¯¾Ù¯ˆŸ½˜ª‘É€ «$:ƒÐŸÃÚÃÝ)¤þ¼›ÌNžv“çu‘j§–›;Ô¦ÖVE®ç-yB6&3 †ç>¯š J}+S?sdYÒ,5IÜãÖZ}¶¶9üÇDUEÕä}Jd½¿òóïuœ\!+¨Î9‡ÊTŠo§¶=/xSEÕ‡úó+િ¨ÄæN÷åFbþÇ&2AƒÈ%•uOF+L7®Wè­F£9[a'q¿º~u‚þ‰»™_ÛÖÚJä1ó¨Ö›sd6™Ó}~]ôfèwßÈ|ø£*ƒ4ÕK«¤ë3ëE%†]¡—Iû,ÍXò50]¶n}âvxȃ¨mÓÓí?Ö3 m,ÝhâÑñ Õ7aãÀ¼×¶¶P{3ü% õƒûñçÝ©"YD7±(tw?e]Å[GàýžÊ›[%•a‰V݇òÿéƒØèw3¹Oæ³VAÿ« ÔÞ1Ñïîû©Ë WUu x;‹s>IåIQVßNO÷%àWçÏâËOîÓWìâ ^,«‹ì0ÇË^2ŽÞÿ‘}OSy•Š ~îsø§­ÖÓ_ê»kèCî}6FÛþ£¢YG®€û¸Rb]”Íe÷0ͯkøwA¼"bׂ} B.Êr+ÝÚ U ÿa’3ìCõgµ\4Æ•m±j«È†p_â“Å¥ ¿NýÇéð㉵ӃöÏçž©jR÷T_r.cV-<ùÈ”ã9™®æSc¸þgkîËüAOò¬ Xç%(ƒ^òÕô/ÆVÖ gî4?o¬Äĸ٭Rä¹à[’“ù´ÂÛlR~ð‚Ü—´ðçq@cbÅçÁBL&öôD¡„i²d' ýKömU‡?÷$RÈIìü„ؾ5ú½ft1ü‡7Š(xÔSTr¤'?êHdÑ}wŠU¡½<žÚ'°§¬•ÌKlž 5´é8é WRÂг:—î)«á±nKxªnjŸI_&s´²ZÀŸEqš‰Á“ªé?À¯ÎZ/àRjƒ¬ÁÃAsÖ‰úÁ—îl¥5ÒWÀ155ú“ç,3¶5U#-Ð_¥¤óì>{ëuµoP?˜’UëàÏ“S‹Y»ý•ý¥÷º+:Z>Ó|Ä+*^uµÈÌam“Wdi•–œí8zÝnÌ+ßl›ô¿šj— þc ž®Ý]BÎñ+g³ýU™Ù}~ýé|pS^#—]mQ.ùØ|HÆ>¥£½ nËÿá¾öÊÁ°>ÕaºÊ؟ѺÔ5⦲6oô·ÿØŽd>e:OéòƒV]WúÝW´.SR›û:ÒµÄõÎV®töÕ>¤0Íaë(y¶‹Xiš™x!âÅz=‹ûd¾Qÿ‘Àý™û††éƒ”úCæÎ1ÆFnáô/9 EëÅtñTÄ¡[Õñ0­òý‹<ðßQO=ɌΠÓ,ú&úÄxÉòˆñœŽ¾¡Y¾ï+ýõçM±Ès z«^ܧ²þ£?Ó¸Ó™¿ÈÆD$¶9ûoš—WøþY)øóÍÆ ÔQÏÐd¶$‚k*TÓ¬.7‘ÙÜdõO¬úRÖ’MŒàpûïë|ÿó­¸Aÿ’‚ÄŸN¿[º>Ø©?;û„¸¿ {oä{üGêPýÇ­8Í2bÕ×Äo°ÔË`¼%ªßr;‘ŒØ5~À›È¿D¨ýw{‹F\gâì»äDIÁ2ÂÆ¸ðM9à)-üÇFØé¨@—ƒ_9cKêFO¥¯A±î¹ ¹Ê ´#_dgjì—™E‰n™c±#÷y'¶âŽàKÏð“ÏR?xZ\þ~Xþ,O…i)r”oäý¹ØÅiΩ( ¬»(¶R :Çpúx´!C1 _«’ÆäZ0ù‡§–Õð•ÛÀ¯†£¦M…l2þuþ£è w:¿™üjÂKJŽW`Æ“ôälüŒaz@´û×Ðÿªþ#!a-ùÇ ¢—ÃÄ—T:Gw…ÆósÐ÷©¼¨±œŒç3øå,ú@ÍCôB^0ªÕþZ/-õƒQÉDãá?|©ÚžÍ•£~ð õŒc˜åGÿÄ|L§[­ŠS]1 <#Ìõ%Ø€æªùGDÑó‡»âð-Èïžá ú¼/ ó:ÆYìDõÅ–Þž¥:o%ó?zп¤0Øçüç¼§¸;9È3Ý ô»¥èBß= fc}瀆5$z­öÑg$ñôHÔ²}é¯r ןž‘àSÎà½N`£+Ê€³ÖT÷!žj‰ÅÌuT Ò·­;Lìø"¶¾c<5Ul?üR~zœÏbzÖ7®¼:+ú±Ã¬dˆGe@G™gÚNñÿñŠ?¡uA*κš ýn<äTzDwݲ'Qž”m>=¬r¡<Ãs¢CpôW3èŸXRVs_oW}ˆq•бÌ<¹}À¯¾š§­–®Ø0(=ñã­´®Åðç}à»#¡ȃÿˆe±ŸÂ› "ͱæ.üaJsÛìÒç“”%¢šÒø@Þ·²Â”£úRcêÖhØž*®ùè©#»ŠØÌŸ‡Yi/¿ÜºÈýû*½©:ü…Œø…±9ð ù—>vüG@þ¡Á…$rŸÓÏmÁC ²ÃŸç#ÿHâÏ\Ô¢‹Mb£ø "S¾ó§–K§ôŠs®È[ßÝ|cìg"îF}1bùЈmdÉ~jŸOÅvbÅq b“° ½d7æ¬NÒ‚e†ÿ0à,f…Ѥbþùfã"8ÉC¬p}ìÕåÌùË~5œüã7Pv§^c€¬¦þ‰oÐ_]–ÙÀ¿/ƒGûPñ‘Xe"ª_†ïhÊt‘3ˆEöqXŽ—B½æƒÚgú\lÅÛ< Úy1ys¢ÏZÄø3ÍJÔQ§neÞh 1z!S†Ú?±«( FÔ¤î)ÆÆGÄA‰$À¯cSÞ°Ëu0+‰žÃÕ/” !ÎL¬ÏÕ_Ê<(}k¡)›IU‹“a6$ÎGþQÝ?r½•¥ß~ã2œøf~{\ æÙ©J„áÌÅr:£;ª«»¬Z†»Pn-£ºwøÕ`ÞþäÁúû‘Ü%ߤsm0þc¾V”Üv%g?4%žq<ï²'~q•nÏá6‹˜9ÁògÓ/ö->}5XÃbr¾°ìŒÙú¦ ;œ$šËvŽBuÓŸ¬ðÈVbý#è£b™ÌE‹Zÿ‘å©X AÔ< ¬-ìÆc¦pů∠&åÌ”ì`7:âùDúó°nÜÄ´D×Á¯ºÙkÐ×–¥Ûú”v9¨};C¾ÃœXP=-ˆÿX-Rs/}Èo³y".þLâ«>Éüê ÖôSø|U:N¥†™½°ÿÞàCç‰FRå~xgËÜ(¾ýî@ÎoúÝÖ@ê?~§^ò•=ÅÐ~ôSMàÏû¡û©~píñ¾j& €ßT9ÀšÕÓzéká?ê1t “ª';™h‘é8ò̪J®Åöz/Rÿ±\«õƒµðýOÈÀ^4 ü5ó?>Â^= gŒhÏM/•—^#ç™›Þÿ1Ÿ+½†&ø"¬ümøî{Ìì7•oþpY^6w_o#½õWÐ_­€ Ö0*s1Ò#4Cï“uöòtVÀ–â=šB…cSlttóŒ)Wøþs²ˆäø²Vx²Ûì%ùVò›ˆÄä)ø8|%¾iÈ®7uy3åF#Kˆú«HúL}‡¬Š> ~Í›«²©Ÿ)g.7 Ã÷6 ry€ºÎ,#Ÿ9B.¶—ˆlýw‰àr× z=#h¤S©Qû¾’l5·™ÿ‘«|e¬¡~p£¿Ntq{+~fb¼pJX‹ƒÁøqZ!ô»'ˆL¨¢D°’S*ÌýcÞ‚èn0S.ªñVâCPÙ9›{= T«.OÀ}cÑߪ›z‰^²µ?æ5Ÿ ¤‘ôoXŽBÄúq`êÉ|d2Úiä³3ÌViW Û‹Ó›ƒžÊÇååZj¿á#E?”þ¨Æ£ì}"™·o^¯$¼ý-ÃП‡°ægm€¾F–eWýÀÕ“ÃßÂ2T ޝÇZ)ÍÑT/<"[Å{¾‰“܃Ve³)åAœöÂÖIÈR⨥ÔË8Ý& ïGàÔÍä‡}ÊIMÀxl÷4ð»ZÄvÙ¨üMÀu§ FÕ_Klô&ÿH†…¬ÿñ]UðèÈ|^OãžÔ ŸÖ$bðä‹ÁÄÆs%á^^>ëÙÒM4Cm[¾{q{I8“N\WF,¦Eÿ]o¦Üݦ?ÅUüG”§Áb¨>ä ƒÁs>Qm0-õ¯ÃüM<‘áÀà\ä Ó¨q˜ºçÉ~RYÓ™?h¢ûùÒÁ” ÕÐ’ÖhòØTP{À†º‚ÞÅxv.ˆ`‘—ð¶ÉÁÍ:©ÍXèAØâaÔŸ7¢;õÎÉ\+­k0üÓ­3DôQñ3ÈÆÎñœ^7£áÏKÊϬôœ§d ?q¸¹WùXóèM5€õ.딣³`O4¼É–Yñ%ѹ£¢ÆaåW©ÞÌýþ_øõø!< ùªŒò£Ì…Þ¨3 9Ý€íEhJ‚?§3ÈXð¬ÓÖ/0ó-ñƒ¯ü3®†*š ß½¢]~äYWy ÒS¾[^1?¨zô?I„B`5Gt×AÿúÁ´Ôž/Àê¢.äÏø\껪%èþkÊFªõƒod,0‡ÍôÐ'™}c¥aþàòÛTüÍAyu†ÞòøÕ«¼z1îNË"K¸Ã¾~@á¿_ï }qPvÇs8qîËSÔ̤“oúY®£—Jjæ‰üéz`§¢Gü]u€l®¹½‚^3_yÖqØL³1±\>yáû‚ÿâŸôÓÑøx?ý¯ $;¡Þ5èñaüÓŠiõ•zr£71Øið«lX×vê8Ûsc&ñÈ5žª% $1Í¥²˜1õŸúŸ{Aþ‘ˆüÅŠh¢699OæxëÆ`CiT.Øó³Ìê"ƒVü}ùÖÚ-©Ñá­¼g'¯ƒ%Žç³—§³:¸Ì~4@ÂS4"÷Îf® ¶2/ðª E^,}3P¦kÄú«™š.ŠŠŽÄyŸPîRÕO$¬¬$øÕzã…ö6ð>6éu°TfTgY¥)Œ~üGcr‡©äEUiP…!ê1ÕŸÜ¡“þøÕp2Æ$\em|= ¬*&úÊBìa¾< Í}O\Mv021Ùo +À³´Çe¥¶7&ï[¤`üGož·!r-Þhqg ð¤I SýAg¡ ¥^’Ýä"ºH´ì/3žkèȳ”­õ}úïEØ—ðꮵϚã‹]®¦ÿnEòkd¡KÈ{JoúåãœÇÛ寇;×È/õ,Ò²Æ:R‚_u!ÿ8‡z+)ó?0Cå»mGUzf*sšvÿÄûdÊÞtzÒûÏ£qý•7J;ûhƒF~™þc }6_€J6µÖÇÇ;úiű®Ã̲&£d[ÿ¸É³èË3h+ó‹ýOô»ÑÔcª«W´_ý^_Û΢¤WŸë¯*ëÌõÑÊq¶÷*9a?Ž€_ÅÖÒÿÐáÁõ›á½º¢¤Ô½„JXãa" ÕNv¡(@5Û]bÄJàBQÇ.ÑÃÆ|a×øûóT°ÀEõ¡ ÙW‰KcU™ãŒÿx¨wŽÅ3Ž øóI"K„ð«ëÚ=p˜ L½áîêF,˜”\v"±\pœOØù(X¾ÝbÀQé;¯§²é(úÝG ";AM6ÃZ´‡G˜KÿöRp,Ià¼ýÈ?æ€çì×¾ü¸D¨¯dÑÒõ7ÁþžÁ—Ù½pϾ‚N >naj)ÝÝwÀ¬/ÛõÈ?åÏ-:¯¹Àr&âËýð’6¸0ëÃÂ'ž$Ÿ“Õ-ã !ûØ çüJÜ Zx}`R©Iõtdôóæ)*‹mKAÜj‰šº0·ƒä4£°Ý]9þd0Ô%s6Cbð'‹•jz;±•zˆEz°†ÁXÿ!Áþ£ ¶ÓO‘Û:‡ "Ȱ§K&ëêŒÇªdÜÔýT¿0Kцã?Š‘¿ì#*. ïâkéA”@ËÍU¨ú™™Éâ2%h:ê-øÊ¼òx,þg:²õswÖ‚ˆÂ›‘=Îaó‘;°Ô“ìÞ äGˆèwS±•éB[éßÎŒq²…”`/çx÷VàWóHšW¨ohµ8ºã°G©Y¡'v-€u.‚_==‰˜-‡¿ÕÆÑÓÜ%Ûaý‰PP[á vvd5f˜üÃM|àβ{Üô†ÅÙ`¬U› òÕ›óuüª“ùæÓuü º¬ l­8ÖÖxŽýäœô”ÃÄçl¨´QÇS7K6a ¥6¿¶(ît›Š¯fð¦Ãä1­ôÌGlAýù:*Tçí'SY#t6¥€ŒÂr“1Žþ»ãç¯õWE Íqd5©ÅùÈÌËüÚiÖPú'Þ1ŸS™²ˆúóh?¼ÓH<@¦¢›@A¬Ã«]$ –†ËìWW€Ë÷$™ÌÓõLD£R0&õçuÌô 뇸¾c®ã;^)¦uÿáÉD‘Á`[&ç;ñÐr”•n2§¸è<ƒÿ½¹˜ªáÂm^Ò?1ó<ýÞ.ÜÔjní˜VO_¡—Òj²ÊI%…v€ ZLÍí7û'¾P*ƒ_¥3¢R-LžxŒ~·¯zžúój"(¨W öPßagmhÐ$xêæÄ´Ý‰å³ª'˜ÿÑ„:¿ÞÜ xdÏyõ"ýÿgRÛfOT¯OœÜ–¨¾#±ÍÆ*žÈ¢XQ7t“DF=lU@xû} %YÀJR‚‹\å÷íl&=~d-ïК#“ÌlD3=*j‰ÐþðVó!ÿ¸)΢1±¨œ»½_~Õb©ÑŒçê¶Q@®¢O;P'7ãö3¬éŸµ›jU8ÂØûgdZq@a²ÁÎ$#6+ΓPÃgîe·ÑÜÔaÝ#z”Ÿö¿z«LT7‹âìj~áþ•3þæ­=:,bÿïÄÄö¶ûœ‹“àóÓ ‡Xª]úg;!>ÆWËèÉÑZeÁKæ$“? _Ï{‹øÈH"féià§‹N"{ꄵÌnÛ‡ª&?ù$Gú†÷ n0„h¤3Ê—S?øÓðçí¨ûŽMþ1V–ãIïÄqæÁ¢§#®ô&ÿ8KDz”é~©à¨…OÊ.Õe•Ÿü ʈ~aîʼnZ1AVXÍÏ¥æå9ý¯R›i͵r,ùÇ þy0ÿÃON4¿Ó§ÀªÔé]$ÅùþªN µâC­"Öïw‰ùÑ@8©/L ¼E¿*ÃA4þF9»£[/8ܰñö$Þdç‰Aïƒú®ËQ_èÁúÝ3ÆY Æà ý7Ò9k½LÈüÁ•TZÂ’ƒOñ&ÿ/Þïs¬ýyN§eˆùµ á?Vsǯ÷C¥]$5â¡eíÁü¨è¯¢Ž•Ôz_¤¢2»û zWÅÜ Îè #tKö"²‰nÌunî†rE "â àÉÏdÞûájƒ¦}¿G.¸À2^tO<«rÅœGgý Ôm\âªmAMÐ _½ÿáB'«}¨MÜuóŒ2–ˆ!ÍnŽrä/Õð@¨¾C†ÔÖâ‘ÂúÂ70“RCVí)ÏÊy‘˜HìŽ3ÿ8O¯=b ^~ñ^€8Bþ1˜þ»MÑ ¬£;}a&áz:fZɘ*õMzÒ½¥¸µí±Rlžã(c2à?›’ã< ÿ¡…ÔÍjçõIqûͺ ×¶’S—S;©µÕÇèe´Ü¬yGI¦ÝÖnhÑõ¸Z’߬?¢¶FOY N61OhNñA¨>S?R“Þžy³¹ôìšKíÚÃÏ_MЦã?f‹Z0¡è¤èÇœX«EÁB…Y¨€Æu•6æ µxèˆûëë`ŒÏGW¡^£)ˆ~ujTVë3?[_Š8x¶H¢»0Øðײ¿zN‹"Rb—ÓÃKÚÚÕ.àW9Á›ytGZA–7òÇä¿öpg•â ³B’ƒt'£ù lÏÍö…•îVA7x¹ëd¬sTÃK{þógVL¦‰xSá'SâÝ"c#rQfÇåK±òÛ±»vý÷N±IO¥†×-×^ì2]ýNþq—8k(|E"´î½áVÀ’æÂÊí$òÿK¿Ûü } o–¡ -¼Žð)ÔšzLÔÓqÉþÜÈŽ¶¡ÞMË1ÝÄR\3J‹º˜ø2xš‰°ôý¹ÒÙðêÅaëÂáÏ—)åôþâñä0"ãäî ‘CXk!XK8·¯9çì!/iAÿöÔ¦ª/À˜bGÝÍpúsÌ\&†rGM=.îš-­5øÄ°-¬VrÇBÇë%KnÓ?±?¼ÿ:üè8°è0¥K¹+L™!DÇÈ¿ï™ÿÆÿy`\÷êC%Ç¿­ßM@ܨ­ªé3ô²Áý¯>*Ù´šŸVVO«EýÍùƒ±Õºz:…l0£Â"ŠÞUM¢=¢RbZì²zN2šß9?Úžô"?Lë9c>Óe55–vGÔƒ™~ŒWÉklÖÿˆÐŠÕÃjsÝ¿ñUkp§–r/v$²ð¡¸Š'Ø+ªi¨qϬ»îáŸïõ–UÄ Óp ÆnN±îÃNÛõ~ÏP÷|¥6»”?QS>1ð—;<¤\DµYDO©J¤ßË”èÏNm0§ÛFYlÅ=²å]ØÚÕ¿ä?êÃì%ÿh„ñGÚÏ膕(‡}ÊËŽm”É¿™]—¤¿ñ.=éOë?)KÔô»—°gÝñ:éÈzc—W¥¨ÕúƒÎIµXñže5ç1€èj.Ï”sµ½áœ¾|j#øó@CÈed;ñ ¹àÑ ’Cn5Љ½zú—ŒD7´ÿÑ›'ÓýÃñK•¢úqvh"v(®| :UŸ“œJñÔogŸåˆû§£éŒÄç³ðrsø~u²]¬SÃ*%ŽkD¢‹Ôè}½`TÓEÁ ÿáÍÄÚ„ÔŸO„óMjn£~0;õÁ5²Á­T…ÝX‰ÿH,ÂÖ²¶Ð^ÁŸWÇOo#£ÙIMÂI´?A21³fÑï02•n-¾¥2øÕ <^Aê/-5‡Éicd×\(µ}2k¥ð~àçhVaÍ/Ra1µÐ ì};Ô§Qð–£µiO(FýGnVÜJ5â:2·D7IõR¡îÅ6"&gú.Wm8'»ŒûrÕ$MÍeÔÞÄ––¢B~ Vy¡OýÇÙ/=€léï~ ä®hˆúÁ’Ì”XËs0‹?ýlò¼L-l†u¯Bã:æƒC6­Œðç;àš“Ó)¸ ¹ã;:Ä4Áß^Î{æ±rX3a‚¸fI̧b(þ#7õ–;PÏåÌ-µ¢:ÎZkÑc¥µŽÂ¦6+SùrüÊî_Ò^.áY®âÙÈüÚ‡Bß\klqðœ~t\Ïbm"çx â4´Ìî)™Œ;]»Ú[…èn¼IÀè,6vƒº?§ÿðeþàz1€o”1†góÝ|»‘ UeF­~.¿UÀ±ÉÀüÒTøì«Cw“¥æEj€’Íÿý b»ßyÄÿ½ÙÑﺘ¡·J65E¨û"â;IÀüJÚ­•¾UoÚ¤(7”ôä´ôzLæÙFd†ëÝ"«í‚«" ‘LDÛôU«£^?÷mèà^„¿6Ãñ?#É?Ú£ß-FLég4}Dõ<ó£ e=!*‚cïÖC?a?[;#}Tšê«aFo –hBa;y’ouwc$v8Qx9jÀ§‹¬º‹ÃûÙj ¹õG=¹QjP{_r£¶ AI¹3Ça¥ãTÆ$y¹'š„È¡¶ž²GœEt4B© oj—*~új xÂ/‚_„Sj…WHdlמül¡ÿûz --ž¦&öþ*ÚÌää ‰àüñ Q_ùc—bï=©Í>LßJ¬võg9Í+¥§JüÇìùV{EÔU[œŽx¹¨Ñ\VfEÛ#y`Ù]ÍâÚkàWgÂÙeð«Æ¼…­™> ÿR¿ÑÀ¿ž’Ñ$eúÊ+l¿­Yž„Æ«1 ~ýÈÁ4ö?.ç®ÑˆF*0´àWö¼À:Ü1 äP²o°ªo¦d ÷¹þ½h¨ç¯¹¸O®Àu!+Òñã.óÊçÁŸƒÝ8ÅüóâÔÌGm{˜úó«àj=±Î½ÐB_Â_ûÂÔ 1?ª”RM³?ü£?(’&biÑ_ÙÓ™ªÓw·5×JE÷×Lv-ƒÂõU‘ÈÃJâ?¾¡¿ªFæ`«ù†²]{‰§¼MÐÜÉüt0GC©°¯ OÞŽþ%¯a@VÒ³*üÇ ¶ZV[”gÙðAÔVzЯ¢bˆ‰ý¨ÿx‚š!OëBøó¸ò:C ÖèKEÉ+ó.™à:¸™„Žkæ"Ð1o+?:qÍØò=ß‹þ%É©ÀºàôûЕ.ƒ¹Ç†ó|E5ÎÑM«,LòÊëfC¼Åk«c£•Žëôä! )¾ÑT¸jÉÀc'Ó›%¾L&þõƒ9Ô…jGçð’üãßÕï&dþG~í V[¤—Ưî)ñÉ>´§t;L÷›úÝjýúÝôäõÐ6­¦ãZõ˜¾›n#*õyƒßÁy‹üòÅB­Vp‘(íò1Z3ۨúFõ°ög`E„1Nwáxÿj¹¤ª/øçLã ØøØ’ò䕌„ØÂáDfÍ@õ«‚í1t×=üóojß°ƒMQ ÝÂvz5°Ä™° ãà‘ƒ¤—帧.ŠÃ¢øu‡ùçÊiqYœÉÐgÇéjbRC¸X¾1¬êìÅ:ænŒÂÎF1Öi?ßXðw:h%9_­@ïïÁUÇäxS±»WÔI$Bãó¿´vìÍQ˜Ÿ°™Tzñ÷Êõ°(É]? {>´é+AYØùLþ½po柿Ð,á﹤tÚ¦èüöRæÜ5S¡=…:¬ùÇ@®tv¨7Ôƒ´–Cìc×F†ZñùÇœ5ß5 ~ùçKøû'¿5ŽŠ·ØŽÇØ¿Êø¶òÌò¿JÊÞßðθFG 5Œÿh$"üûÄ;£à¦'É?¦3Á{=º¾ÁM磳í8«üÇ|òÇäY¥©öyJ†ä£ÒQá?šÀŸÏEy0P¾1†‘“š"²;™É?ÊÀïƒíN‡~÷üGªã©Ü  ¥7Gº…ÃyòÇç ÒWäšrBû†~I¬ßüHþƒ%¡gŠ„ÿèŠ/HF³=oJz—Œ¥‡n-˜þKà¿‹©øiO%Ðrÿ Îó×þ<41 JÙèwÇàÏëÑóª ]èEÆtÝ-d /á¸R¸Ìjh¾&ÛŒA—õ»Ü5öü(ÓØéô'ƒûúõäÎÎz ýn‡YPC4V^æ(<å5:˜L‡¯Éd)d7™=6‡^eŸèÑÊØL”åFþ‘ôÒ7 jT³öÿñïêwã¨BËA½`)Ýþ¼XÈ¢X´n'=2±ønèd=©y«Œ) õƒ‹°ÎŸ‰¦¹Ï'"OO„aa®tsí!šˆføÅä0Gà?žÓÐJ p›Õèt|é/¸Âº†mk¾ÇFA÷ͼ âÔGŽ&vH­y†Zñ²Vxþ#ë Á§?Á²¯¦¿È}æ×´¾¡ŽÍàhB]êŸðSô:£;úq,þS|W¦0óëŠïÄþ¨§'‚8M2.Ë­æ³³9Dé-õâ¥-_,ó"2áLòx+» ˜ [|E¾oá¿j¬4T§ã?:¢¿ò¶DT£*GØ=lvдmÖøªäƒ©?ïnÞÀ7•3·ËêxÂOäHÉfÃÓy÷ u¯&ˆÐßp?%2?0‡Í’1̦Ö}+ ý¯VPñ™èþºu¯tÄË2}ÓX©õd‹¨/šFìæêЕþí:÷n^¢½2½H.¯šyé \ß“™J/,~M¦– ž¶»ÿ‘‚ í‘ÉØŸ‚,'.Žjwúƒê*}Ý ì;ª+ÝWßšåè´»…Ìt º]-øŽúó¨ºÊZg˜ÿQߊk-E·lÏÌÌ?ÇhE¾Y@ìvñïEnuNˆúÁwJ15j¨û,â;ɬ~PójþZ}&þ#?«ÜQÜ´ 휖X­¥QWF|)~2®ÚK¿Nvì øÕ9üÅõ¬þ”¾¶YE:2œßã?¶hž à³D9ìŸ1Ínõ&ݘªP[º¯’~ü¡ÆŸm7™z†ú¡T<\6F`?¢ãڳij‰Åبpó Q[5FäÑ#rÌç´Oðƒ¥a:nƒ0:c_sÂ~¬‡ai}iMÕ%QXLûåµ¹¤ƒ?÷†QyL¦q^Å {ß ?&%¶¼¶ˆº‹1¼WRcƒå+6ÑŠ±§6ÄEðnø£TðdÌYƒýÇ!ž‡ýXüLì$Jøê¹UW%XèsE£žÀ¯ºák<Áøž£zσ·È _ÿQ ;{x1XÙ]ÞÏ+.é=Vk¯ë¦6ÔcãÕ>‘¥¤Åå<åGâ‹&•Ù¸dB°È-°ãAñ:½ÈMÞ‹¼ Háõß] ~5V—[ 뀟‡/)Nž”Ц ü‚÷Í ?|–ld3(ÍKžõ1Xå¡ÜS ˜µö‡î «´fp; ñ›ˆî3É;ÄsÈÚva¹R˜§Árî`|e Øø—ïXòE`5جÈ0*aùÆÚX×:Øèèm}ˆ‰ŸR„Xÿ!@Ëc—^ãÝJ™:QT‰ÿq6b¿—J ˆÑ R½tÁäg«É®_äÓÝ…vLðg¢ÝoXQ»C×p¸äpB«e »óáò¡ssèúvÂRx–cžqQ®!o©‰?ú oQ]ŠÞU½¬•ø6dAÕjã?îâAÖƒˆu–Bôoo«ôÿHÀ÷¿sù^ ¡07ðË/R;ãaî¥R/#¬òcê+’åøÂZdA ݈«£Ñw¤,×<@lsÞ|ו=šý4ÜgßÉÍ á%^Ïd=ê£ÁÈl%Œÿ±zôÔž ‡¨Ž®×ž¹¸X~¥š~"õ¥Cä]Ôú}!¸s7ƒ_¥†ÿð¥cUüFU2¤tÌþøLï°ø§°Ö|æ×f´,ó#×8;i?ý)R;œþã´:üjß™IÔx þ¼‘cõçõè~²Åm•ù˜ç8 ¦XÇò—ËaY¤µ¿÷ˆë;1˨$úuñïEJu±êºW?)å~s.“k§ÉÕ8Z.ð«Rúz½¡V»tšþ»þÚ:-%þ#çoÖë¶ôï÷È ^R«ëSyòî®T2üÇ1øúøàµ§Ã"—Åë%Þó«mñ}›ÿè¢!Æö%žŽE4½ ÚƒHÿ k'¤b|œÍž_îpºrT<© ÂZÝÁ­§ªÏº ñ‰åq£4öïNpý`Qã¦ý+fÖìÞè­Á¯‚ %ƒ1ÎÂ=ûu~j¬âWžHIYDßó-èá‹kLùú“£NªŽPWÀŸoë F‡L­ ½Š½Œ Ô¤CßÔŒüã4ï·ˆ—9K`+Tq@ gÅljA=ÙFL¹‚5ƒ®UçcT28MzE]˜Ãé=’QÎÂ[ ‚qI n—3‹Zû‡?³”Üú0±ûlw«Êžä‰ÇèÀUžšþг˜ .}Þe‡üÀµb¦y±=³ók«a'ìºkE£Yêì}9¸ÛæUЯØp½>ôü»Å,½=2(Ö_ .$¬o§&"–Qõ‡L³üG$òŒ¬0ÅÒØ¡¨—¤9OÎ1ã2³" ùÇ æ½Ö2ãòµøäš&u gSˆiÒiî¡®ô ­4ÑŽ]IŸŸ3„mî†E†LD¿¾<Ž^æüÇdliqb˜ú¯<Ç3òê¥C­×T|E åœ@0ÉØ'Wâ?úàÈ1ÀrŠÐïk½5ÝA}ÊW2¤®d Íñ¯ñ‡7ð°;„KµWúó¹pb½`'…dCÇ/Ñï6·)fŽ@¿»ÖJD,þ‰þí%‰ðý©+,F.×”Ú˜ØÔm´’ÜO†«£åSe“v“«÷6­€ù¼º%ç­®u½îpzÌG-àMÍýy4]›ÍuÖ>³õç¶þj%çp°ä.ÄØÅÿþÓ þü5YÁ`WÐ÷‹‘ªâP¨ù &žI“°ô{¨%|d™àcKÑKåæ Å4£¡¿AÞ½•hP5;ýÇnu³g:á?F+_·ÌÎŽÎdUàö/›9ñjÙË{­øŽêt8›K?øVTÓì5 IDN5š˜3‡,"ÂëòóÏžÿS3ÐÓ®¡óÌ| {|çg¿÷ž¹àÊi×µú*½ ÓÊåž’ýÕ5- ú+7uÿo-G®+<È Y„ŸVD=®Þ¤I_QŽÊîÆôSü×kyÒA­ˆ¯ž¢(üù)Ô¤%™â€¨µ5‚ýÛÝèÓ2XßN,ñQü¤!O_%ö¸›²œ$PÔ‘+*ë™™uC°ÝUƒc“ ð'©¾ÊBLMŸg£%ÿ>€ÊD1nˆ#ðç[~yÌוâ!“B¾ Â|«5›·+9‚»Q+åo¢Ü¢õÄ@W´d¿XÑMËÎ^àÉngËCɬ’ñ:hw X‚õø]Äa)å.®Õrqâ_ôßý¢¸«¨ÿ8‚jGîýU+£ q|Iì]!޼<Ø/ŒŠ7‘Õ5˜UDíÑÄ¥pýGv5¯ž•üC—^ìÉ‹ß(½ÎŠŸ3år#¦ª¿½ª f0†wë€ÿˆG¾“”ç÷q8üÇRú'λð¹3ÐÆáÈÆSÁSLÁv¾ÀS¤ÂÒž³_Îg–\ÊY±û'6‚ÿøHÿ«°Ïîl­¥øƒóƒ¨}Çu› h-Ùˆ.UîÄÒq±QñÀÅç€}æ zÂÜ/"¾Oˆ–or˜ëÒþC’&„íÞOV1 ÿ: öü-ï0,òEp÷6T'O–ňñ‡bí³’Ü¡¾¢üGs£týîM­Gw•tVüÂxrBº¾ƒÖ»Ãqt½ ~õž~‡^ô›ïbž#?Œ~õ×ù€ë]K·'ü¸þÔïÉÕ±h#¨+_oœ£«Êdú·»ƒ‡]b–RZ+ÈœfµáXÿÀ&Þ$«(¿áGGøe¨Ú2Еc6Wº« ÐÕ Ç !ËÍÂS›Â|dÖ£{Zz¢DéͪEþÑeÓFú)ÞÃ'ïî Ü© wæÃýÛ*ûµô)¯‰2˜ïÅ1‘OÖ4;“¤·þ âŽÖ“cÞ¿°eõ¦u´%ÉÂÙ”fgò-¢˜èâ<Þ~ê0ýH€^d-ùQTñÆ8nvd ƒVK:´a…oðç=è‡õ JW²#Íz+¿á­¯ç±A\·;ýÇ)uþãâ‹aÆŸ¨Ë¯ÑÁw¬5ž^‘·Pe3‹Xm^ðQè/ï ~UEW_2“W<‡Iù­™àW†Ì,޹.ÇíUòWfûN© þ^_)×Fã¡¿ªJ¾Ñ\_Šþª6gû±’Vû„¢7¾nj1Ôƒ®À«tjy||Nò‚Ïb4ÜÐu-ºÙ˺¯èNz*Ü«8¯g–S|µ‘ð…£EqlÓIê«3ð¼úåîVî§(@顯Ÿ­š9½ýôX©kD M@KšËÃľ ÄBðËS¼Ë=VMHÍj鯂´¯z\X€XD¹—ÑoÚdÂrÚŠÈ?rÁŸÇ¥þü ªœ_OH P.¬'CþHŽà RT;Ý™8~™Q•ø:†®¿„ HhÌþe˜Jà䇰¤-áK\uFy/¸7ãgøäïÆ:ž¡üËŽÿÈO_c?=óOëÏcÐ?ñ¤HˆWë‡Ý D”¼ª4Þ¨1}ðKÃ-ìÃ,Ä{¼#ÊŠ× Ô…«Ë‹~×ÎO®áêÀæ1˜sAF¤ÊeX`/ý¶0–t<8R?vž€^jéy~‡ã?Ö*5ôµb;çlÙ@:<­;±Ápø†)p37x®Óày‚h,Ä~>ÅçÍÁsö$3+C³Q ;éþOøóÖôÌJ>ãÁŠWÑC¬À†-fž_vjÖ†Y»ÌØåtfs©,A¥\|Þ©$Þk‚Œ"–éj­ÝŸD}üÇ$`›ñ™×Œ9°»1Xcüùæd··îÍW15¢þvÖ¬—ª-'£=.¡M õ¼økÕˆtΚæ†3éB.ýUÎ$–4šJ8Õñ V 5¬tM³/6936y-õç¶~÷•}/éuC­W+šœ'â1Su˰» r'}³š™ã˜—u-RP¡ÃVws:]~ã׺ƒþþê µ'ûy]W¸X³*ôI[Œÿè…÷ ²Î‡ê%) t tºuà?öYó¬Ä°o˜±‘;ºÎºFw©ä3s¨~Ü ~ÕL‚á:àÛÊ=íÏ=lmló´¸%ªÂ•¿ŠG[_{í_MýGZ®ÊD:uÕ¢Óün:Û/C¡Pƒü-þ¼›óx[Sÿqož—»` Õ¹åCô»9P™¦ëúó"ø•§5Få63UFXµñr­—\ãxxXoºcoA8ßé?Ž©[Àê»b=†µ<ÏÌ”ŽjLø(î±™Yï™K©QqC¡Ý .©ýÛ—˜DX©9¦ùtÀ þøŸèw¨KÕÎÎ3óE©Dç‰ÿ­nðuµZk}‰Þ+8;8¤$Ðîh¾L´Í¦eQ·þÖjŸ”áô¿Ê†¦ÿ³˜Býà5V\ªúéۉ³á?êþÒò…~»Ú|â­) bai–‰é">}¿>‘yŒƒD,ãÍòçEàaêžàJ¯¸è×oôYIÿv/ž+{ÈN‘=×tTÆÑ,?Ñ^èi°½±@ƒ‰ç?ò¯ ¶f8[_¢êÜDæ‘©Y]-zPgú¨~ül³r“ÜcY¢SŸñÞ¸>Zh™f%x"Žð”¯¢~p Z¯lðç~\"ÔWhàNZò÷9wkZV‹E=‰b×»Â2?'÷XŽÿð2³r)ÃC¬×Ó«á¡Mö¢–:Cõ%È1lÛ¼ŸÕ>¡Qª JU˜j’FwÐ¦ÇÆa<ÛSŽj§¹’WÉ= 3;lbLÙÂ, _‘Ξ3h.§ÒÅ›üc?ú«¨±ƒõ6 L›(£˜Ýɦ‰j!üGSj›ï  kýÔW–y峄£,ú·Ö(‰2ñšÝ~x‘tžÅ«š\¡Äf ùíÎb°hÉ·œþã ºU¿[6 >_µÝÌ ¾ƒ³wýƒ™Ú*çXDÿ’[äkäzªÜÛ3}–ùä8w¢;þâ3¼*©pœÿ§_Ц.R]½¢ 5׿ݿ$¸Nqm™VDï¦ ƯN¢ß=©­°tªÅÃ*äÿõa¼U²ëSé´´¡¼ñE¿ 6ÿ±•î»Az 1[áñ?ÍÑï6%ÿÈÊïm Âg$V÷Ò¿¤ŽÑ›ŽŒ,ªgû_åVQ¾{z¯Q—²£ V²$™9?BýK.k'õ(ØçHÄÇ@­Ê‘Í”Æ&5>ã?nrØUq§È’ê‰9¿<æ…Ê#|ÇðÕ· g‰gÀ".ÜB–[DÒõV΢B¾) }øó+Ѻ£7è‹-½Ê‘º±Rnò$Xº¤h>ÉÍD?ûx&bËTÒ¡«hUþdÍxtÌß-rÇâíñ’YѰôà·ÖÐ)8™¬h,ÁVÜ'“ðæ‰°U¸G‰ÿ碋öÒî„s¡S¡¿r°«Ôà}Åñ‡ñUðn0"Vb©Îè#ˆ_§q•:‘ËdE¿›¿õ%ÿ±€þ%‹Å^ìóZìOnù uRŽÖ¤"¯±·O6yöóV ²ü ¿9 fªÚ„”⺶ÃJ5­((fòo2Š’ìè"‚ì 6љսÍÏ3«ÍKS> Ôâ=¦rVË[ðçMÅ‚0ç°ýÛ5îÝ8ÄØÃ‰Ú¡ð€=O„÷™j:ˆtcñá Z™Ñ8îT\›÷ø»£œžì´°Z{¨•£3Á5î±l0>ãáÅž‘Çì$z,G’$u˜ŽŽðµ¨¸¸ Údóû÷É>¶s¶ùÀ)C^”ÜÂîùò4üÂ_Æ ú·{ƒ5ÍÁÜ`2{)ê%÷[KÌ™r‰©Ò…|]²ºÓë$ùÞ-þ ÞWAµÌˆ7¸GŽÕeQúŽÜ%ÿÌå˜ož§ò¯:€pLµrÁPß…Ilƒ· ;³™÷¯!£®‰•%Úyôw8âL¦a,îÌ?ïÔÀ’TØ/A›ÆqÆZ‚î6 ³kW2e¤5uíçA§SMÙYz2— ¿pU×Gù o^‰»s1Ó-YŽ ¿ L©Ïü¨#ôsüJÊ9ôßMMÇ–môÕoG‡äÔðßÈÜg£~ŒD sÂé?¶¡ß=6{ š5x—íf=Çz­Îø÷f#«˜Õ’ü#™ã• ëåyTg=8ž¦"ÂlÇïÔ€?/bâIÈ+óŸ}B]©6pÞ ßÑï&t~ö{ïœP=­ff~T9½´žœzAEy®”Ð^Ñ¿äëø·–ËÄŒa» up KåE\fLU5TEl*ó²O‰ø’Ó¨t£o{4t8c™ÏCÄPªëhô|E°¥suW†ú¯ÖM©ždrÑ>p÷\ï‚ÄIMy¢Úғчxä0^j¼p3AÿĈè¯nSž †71hÓqìf+lr ¬û)ð«^0Õ·@HTjŽv 7Ñî—׿¦òNè†ÙµEä}•OzÒvä.[KýGAi÷ƒ?BÍdò0ÝX¤ÅýÅŠí´X™Þø¡×ø´Ì¶µD§8”…A!}ð™·ð )ån¾¾€§"ƒúî'§ï¸²M}$ªÀ%ÏÅšî$ÿWY¯&>³ ¾hXr2¦ýœÅ5ø…Ëü“" Cl ·J%‡š_’Ÿ=G; kTŒë¸—¯4Z0C<-ʦ¾TB,-ë‰Íq§ß:Žÿ˜¡¤ÖŠ `øóÑC¤ÁŒgoíá/&Â$†‘od§Òm ª'¼«'v`0kvà¸Çü(zÿ÷ÁOÕz‹^ø3>c>–è:ùÇ rÉ­ØüRÔÂyÁ´¢)‚ÎÛ¾>ƒÂ ¿‘Ôx¬Os]Fi0¶­ñ– È–È9dƒ«åGøg»ÿÕ Á&(Q øRSš}¥$?¼‡÷Ø‚`: Z1Í¥?µwÈ"OZKN'Dï ‘êPýts€-“ Ä3c¿YÜÑ‚,¦œõžf¯:еä]gÓÿp˜•C1uPÑÄ[§©–ð­ÿðyô»[Ewîö?ñpWÄSøth¯HŸ‚GôndUt+ãÕ‘‡8p,ùÖÞ`n« üóBì*ÓpQ~vDï‡2˃ã¿J2‹H7ók_üx JF5’™,%-þ¡ 8ÚvÔyaŠ.ƒ+ž3z wú'΂£-UžýOÛºNÿDz´?.7AqÓÇ‹#\…•X³Œ°&Óñ ¨¯[œD–Í X“µ(á¨â?fçEŒoú5ì¤âüZ Qÿ ¾y6þá>;˜;EOrs?]õÍBæ6ê+ÐãÞ.ž{™™ÄW&6*‰•a®K[íQk ì½ Ì0¹ËèßãA<ä ØÙÓð3én±„Î*Q¿à>çmeoPõüš«ÊË>úKZ)|³/ñp62”Ä—鼸‘ÊõcÔlµtú·§¥¢JfÃWØ\×Xòžõ|ÿ<ñB>Ý¥G²×K~‡+{Tm÷ÂN¹fº¾9”ã¹joº’u,Ç:Á¼6TS–ÂÞ_ÇŸN”w`~Ö‹[ö2Á*)õÔåÔà „ñ Ò«öR£“Ç4I­è§å‰¦µü÷,&kÔ4¯À”1·ã)‡ÂœBÇ[ˆ»ié?Ë)·•…šÝç߇§T7“ ÿh"ÐMë,|âø>øMä4§©« ûsÅ,jM4_qÌc˜ïØ—xË‹ü£†óŠ4P›é"WwÏTIAeæÂwl†—xj&¦ö#…ÃŒé•ÙÓµ•ñG3 øÕ;lÏìC,¼„KµG]IÿÄæX‰DŸ7Å3²£•µÊl¶x›y%p}øó@VmBy‰,¤ }ç7›Ÿñ¢,ºx‚%ýŸèwã©óU—²à½òïãWqÕ/àWÛ´tz_¦sØýKn+QµSÚ-PK¢Åú¡Cóò†ûâó6¢KŠ×[‘^ÇÏQ¯¡Ïñ ‘T‘‚úó2Îëîa¾ØHL9f¢Ï~u1Cä¤ÉQÑÚÒÞ„µš®»üh˜_õiæGUÖ‡€ì3&c¹^‚8­¹|§wC-t˸ –öróE¨~ðŽö˜i4UÁ¯â?¼à’wãM¶p7r7Feq]ÝÄú_óBê?Åatª¯°…÷Ya5uͰ¨“¹×“ÿÄ•+Ñï6į6£kup?|RH+Ä^:€¼ß@ –O’ mk5ã2KiÏô!"÷cݶŠsz¶Ÿæ1éß~F”’Ǹã[{ÈÞ‹¶àWK¨&I)S¢ß-*m•ðâºèqâ?qÅJíåûRðÙ¨› —ØÁ‘œ%_«KÝL\ð«ûÆTº3½FµŠÙƒçÍHTÕ½+ka~†#IF½†n>‡[(›¢óÈ©…®h?«çŽØFöœôj$™êc9]±Ý“j•݉_Фƒÿ®iö#‹È‰‡›ŠþÊÌé8w~B=4~\It¨Ÿô2ƒÌ‡`MeÈó®Òq:ãÓå4ñØy)•Õ0û­ÈFç‘õ¤Ni>UzN¶6Ž~‰s˜4›Žfó?™—©‡ÈdúÐiqÙÎQÙæ"­áî\ï¾â¡áÌÀ§%4Ñ» ºæ:ð i¬QÄñ=Á›â‹ׯ&»9ÎÖhÄr“ÏHsxÀ*‘!Äü¨ôæ;' P‚ÆLùV"S€€e†A©ÊìÛ«f7&§ì±š êŠ ?߇]vƒÅp3£Õú³‡ãDWèTýÏ÷2ÿÜ[t$¾ÀŸÛ¸bwÌDV×\ÎiŠWëãXê¸cÅb*È2™ÒÑ ÿ9}kò$ø•7W·4ìTñ{ Á?ïþÿïcRø>N„ÿHëüì÷VN¯êZum·VIïª îNu‚ùç[´5ô0ѵäjx3€~þŸ”zú.‘†å¨X˜·ú9*تÛuªuú—äÔJüÖ>§kã±!óDnpìF'Ñ@´gŽÇmê =˜˜ÿ1W¡©ûÁ?çÃ(À¢ì‰A†ëCÖQ™\f ˜ýŸÆeaÏÁ!Rêa´.h¯ôX 8öŒ¢<Ñ å!Tkàî‘1=婬Fäì/΋ZàÏ*ûÐ_©`F ’tÄj%Æ~žÂkVÆÞ3léØÊa&Ñ>׬_s pòä/ȳn¹7%ÊDÔš]l6âÃ5x¼]x» ¼™ù =ËOû—¨ê`êÏcÚöÀ¯mB™ý R^µ¼2’Ì@W…güknϸLþ±uIR±,Ü)‰yÕâzð½Oðì(ð Ua@2à>°bÑV‚elD}ܼ•=A1>þ# žéU8þc-ùÇŸâÑøHì_ù ¦¿t§Ö}:Ö¢(øÍhp[¿»„ig·ëƾjØ]#©?o¬ŠðÁ:ÙécR>[5sc&Ré\˜X9ÝÜg·|!Ûò²žÿ¾(%Ɔ¹.5´G⥨‚÷ŸÍÏ ©ºi¸³–bΕžô¼mƳfà?ÈNð+˜ž%ÕùÚ»”A ]ѾK+Kèƒz0ë—ç …Î [ÍÙÁýKÖb« ÷þø¶ºø ¬}°«W w—åiÎuæÜ‡|zËŠÏ D~䃳ÑïÎ0|岬!T7jô§êÉdØ›`vCàWvâí>Ù¬8üø#jÏ×Ñ!k¤œ%^;—«§4¿ŠŒ?UØY3™RD5ò_u#ºo„*x+ú«È0*AðòÌf }Hòš»ùI4·Y7‰”ÆçzW”Ú}8»XçTæ+¸Ï¼²vý3z)j^¦ ^ÂÙ»Œ¥^†—{ ¶Õ…Þayðæv ÑNpÙŒ!ð«fj5ú':ÐïRéŠ~7ªtX9è­¾šÈxŸÙ¬¼-ï]ЬAæ_|u"üG*3¹üÈó¼-LY”#{þc·:^_#:‘™Ø ÈeôW}³èUôÊ´’â•2Ó׿ä [«äò‘¡Ì5ÜdÆ”gÀMöa…êÐo p´óÐÿã/²2EÉ•µ¤º/ZÄ7YuhPë6ÐGÃNØÖý ýÛ/iwéIË¡FÄ–ºÞ-/=Ȳp†Z2[c'+lƒ??$Z0?ªžï7ùócäÍÐ]åâ|o¢Ž0 ùÇô»ùíbüG c‘ú sí%ô«ìê}u¢¾ƒˆûùpoòìÖØ—ÚF± q ÿñNÔf½þâ½Ìî¹{±l÷'²=<ÑÞXéعgøº°¶ àÏý™ižUÌ õ̆Þ×ߟÅT/Â-'£úFUê ü[#¼Ï<¼ÅF£6e7L…‡ñR u2Zä_¬8T«†ïiK~e+£ °³ ”ï§á2Qó÷ôj6gtøÕ ¨ƒb‡^ò§óÏ¿)Ô+"ùGk¢ñyøØ§Ì_)¿ˆ„ujJå@5¸‘x¼…ä:·yÖNcáRŠ áªÄꩵô”XQæâÁl#ï¨ÄÇ8x’W¨uóˆýú3lg=t±Ó±Ýap’‘ȼ˜ÿöã™;¨4DEçJ4›õм³1Ö‰K|_Ý3s!Šä3©æx‹o^k³”kÝ‘#QÄáê?€_u çIGG*»¿Õm° o<ÐQ™—úsæŸT:ç„È€ÿ˜C)Œ²䫸¢‡VK)Êpí6·Û±Þ2~f ÇtÅð":Ž?–™©þf2º.ÝÀÆ7Á§Ì[,N'Ļ츩Èu+®¹ºÜÙGþc¾V€õ,…y¹g$c†ÈZs³;üù'ØgV'TMa¨€D§€½?‡¹ÝÌ« uçTÑ@Go³ú}@`Ê 2†.°ÅÌ“Öp*õ^‘s fý5L*QÌ‘øÌä&çáã}d]YMÜu^”zÊ$êKç}3Çxó$]¿<Çy]¥…7Y-†šIÄž¢¢*ÀÏŸ¢³<;Ü ;Á<–`ý®;{*T7ÝØÿdô»ŸE6ô]F8ü¹‡’½¸;Y‰ÝÊŽ˜…?оuf0îGvUKëN„ÿš¯ŽÆú®oèÎÎ-«akhÄp»ªï±[‰’ˆãÊNåF!úSí0çä5O2Ïî_R ü:)jŸðó'Ð_™"¬þêí5˜d#Ö›‰ÿðGƒíGý¹Ž~÷5T¼Q,bÞsü~MÓaNF“të ûËQdµ4Wülß7/´rœ÷Û\I7üÂTyÑx,÷€8mÄ?t šî9Þ#ˆ)§éŸ¸ ?W=ð|D®€7« ã?šªËk\™² ?ð«“ð{ä'ú·cZì0»ƒ0ñ£©v ·¨ÏÑž—OÉ¥®“wM÷·ss¥¿ºŽxjñú"®`GQÉȇ‚i3¨ÚSѽ—H¿0Õ.—é—ÞÈe^gpS<_ øo¨Îš’9$4\µWÉÔÃÚî“gÜÉñL”ð™›2ƒ®è¹Á¯<¹iÛè_rNå"Þ$“T†â?òáåfŽf+½ç\üÑu þ ä¢.÷ÒTyGWe3¦¤TÅ7bþ`òŽ×Ö~øógèŠgâ?ŽXuð43!~5;Ãüóoâ˜ÓìT·é{ÅŸ îä ­©foO·]&Sz‚(އ-m-vÌ¡ ÖPëó?jó>§é¡IÞ‚ÿ]¿2“p±óTþÇ_ÄQ'„à?)eÿmýUjúï–׎ku™ÿQUkŽ¥»¥8´d$Iô ¨¥~¿ú¬ô&§Ë Ɖ3^Udбþnúî7¢;3ùÇïé¯k;°sãá©O–,F³¨œQŸ‹–t¹)Š£ÝÙ¡ÿ²/GtõØ‚ëØ¹šÄÉÑ×´eÎê<”/ȆÁs^‚¾( õ°¨xx—óž~°0¬ohÌzvw;¸9 «~"‹èïp_Ü!ó:úKÿ±“úAÝ8‚ëzݧx{~ÔHŽz$óÓ³vYÐ…'Øí‹øÌ_ó%ÁÉϱJ[ؘÇFvðšD`s§Àr2¢lzA¾´åÓ êîNÓ%å P¨ËtE’¡7Š:Q=!rȳähmÕÔ‹mКÍçÙ.JÿD;ÒN¦´‰|æ*u™ŸxÇóÔlÑ\µÉ®³ªõÔäéåüÇqlC9˜²ŒxJ“ÚñFbªËlÏ\ :Ø ßž¼,=þI„ã?¼”̺§Ø‹Õšþ‘Šüc(lüL²Pµ¸äm…Œ< Aã±ÞOñ“aÏmr_PÑøbÙýÛÇhuÄ¢‹h >Ëaä“§¬2òc-ËšÉà>'¢ò)Ä\¿äf>¦\ÙÌTr`§öD¯Äæ`¹^¯xíü u„þQ$ãjì g.)>÷Ì´fÊZ ©ÿ¸Jý{ëŒõ'ûKDæ±WõÍøÄhâÞÚh/zîßüs/Ÿa®Ñ~žÈùø™äðWÍ4ŽU`^mØÛ6ÎVôÀ[;é©ßÇ: ÏàÝ1×ð8zàKäðëøî0E¥þ'þC ¿êä¼Wß)9Õ$ÎÏþ9¾ˆ}L¤Æ€ÿ8­åÕ×Ñÿª>«ø)ßÔ»(²b“¤T¯»ð#¥-5ž…±±ˆÅ[£ß­¢>VÿÒÏÒýÊM¤!ÿHñ[û®m$Þš!*ãå£Êùb“ø¨ìR}Áßd%=®ÏˆÐŠ¥Õ»jgüGòá¥ÄðéQ ž!ºŒ$æƒy"çÂÕ#æ_(:êaUáÉGZ2,>(Ùíø÷!¬–›|”¤´ª¬ óë'®Š±âÖ/w8Gy æM ¡ƒü {ï‰ÅoŠÖÃhcqµØ.ÔÀý°³À_êwKiõ@9º€M½SK ’•ˆŒPO-+K°c<Ý:Œœœ¶är±Dõg3©tî5‘šXw(Œ.JbCÁ‡åõ+€…-G/ˆÄýö4ªu ó/à?>âC2‰ÝZxç1£S7ל·0GÁ­Sñ—Á¸;qʨ-ºé&líHìã$¾Ó ÿ™¿™“•Ó…ã?f))èu?¸þ7ê€ ðñ ŽX†5Š+÷pÓ›/ÁyÂ4 F}W½ž© X¡^ siëâ?Ú³‹zõSø‡@2·epO{dj3%}ÒíþíEÉRR 2S6–ÑÁ‡<À*7Ð*µ‘A, s¥›já´ðUø†ãpØëÈ£gb-S˜kd?pŽ›fdÐ÷çø Þ¦k¿1‰ó¡ëÃU+ª…Îhj•Éžnp®ŠÈ}¼óã“Ü àC`§ÇKêó†³RWsYƒÝÓvµ“»áÐ_ríšé.ÔÛ>ôRâ1úæ»ä=Á¯PÏɳt<F7‘¯ò$uâyAØ&0gv…üËŒJã$rÍVè‹oÁ÷Üã òOg°¶ÒUõäãL¯Eуø.;Lr[tVe͉ø£ð)Õah&0™©;z¬óœËM\'&¦S+ß…Ü&­ñ—s½çÊÍ+qŸ;-µùùídO暎2äÞpQÉà<égR^a$]â{27ðwŽÍŸ÷ã\ï'ÿ°-Úßš2ÛÎýn]žÒ9LG,Àüó:Ž|dmÉ|©g7à*èO=â`:M#s³²ÀŸG‡gÚfìEá"Œ=Nÿ± üj/lÙd0Ö™øªÃfG òÖx—(·rZe;GèòØÚò‘Þð)ͨ“?b*2qwö`°ÃúâÆ?ü/~ÌHÿDWÿ+*þþíùç©é¿Ûþ¼“¾Oïì?(1´ûÚz柧¥ûïù ¥>¾œhT®R7¡ê]àŽÑÓ¤½È…6³˜–Çy=#rºúkÇÉ ¦‹ Ä©ßéÙ>Uø+ ÕÛ0݇=5ðSשPŒÈJYÕ÷j}?qüSxÞâX°>Òî褀WLÂê¢b¥&½9 ·#&oƒ˜iT—Ô%åjê°û5 ÿøWñÏNKi ¨€ï òþþ#9F8ê bñXÅ/ܽ;°ø ùü6z—ø¦§Vƒþùå0?+sÕÇ¢ QåT|Í*²™/¢1Ǻ,°¸ÌoLGõžnf¯·ðQ_8úëF2ánÿ«djøOä»ÈöØTcŠO^%ä5ªzúé)È?úEãø;áÛÓP÷’íPšpüÇ %-øø¶´)ØÏw¼Cø¨àE•ñÞøòàF ñ7¹ƒìüÃïwâŒÄó~ÐïvÓ¢¿jÅ﯇Ó(-ßÒCd­‘ü§0•{aUo™åáhsÓîx×ñí³ˆò7ã²éÀ¯ºiÏEBÎZRö·–,`-Áz­§2}eó hF<¦Þ½ëGÿ+º4‚KIó1z€ü”­6/Ô½¯5—œò-øëZùÙ#“ûð[É1SK™~}†ÃÏ»Óë¶96 àkÀYQtƒ'‡¼¼å„޽=ÍUL7Ä)ägLr… è¹£@Êÿ1˜z¥Üa~&/EÄЭÔuŽø¸Ó"ášDÓD騮"Ó R¸ŒÜ¤½ˆLßÃX诫:jâà E9@q|­‘VØý tN¥©¥iIvh™7ðK0XÆ!çö¾2Íë$¸°Ä7ÓRà&K£‹Õð`‰ý©ü[ ÿq…]î4§â¥jÓ¿äU9^è«G¡9Ùæáª·ï 7{„¸*9ôHYEÈ#‹Ât½ob=ÄÍãÌùà?`C†3µdùGvæ×F—‘ÉÝ–ã?¾‰wbŸÓìU7Ñ—©˜h_î?qÀts,¦Ãî¦×Feæb«c5õ U‰»äüÇcÔY[ÍÏÄJö<ÍÙF¼{ ¶›óü_¤¦~ÐÅßTªüÛùGRæ‰7Ðviµô…zsÍV÷]T íùÇW-½–÷7û—‘ø£¶­„‡]j/´ê=úÄ좋GFøìtDùÓ2R[ß¹T#f<‹6j<õJsÑ*UdÎÓ0¸°LÆY=t‡‡Ÿ­^^}­6Ñr%¢¬HÄÕAžÃ|Ò{¢ÇÙç}$è ßB?û³EB|ýƒöZg%޶ˆ·–Ãwìc7yuüã~ªCΣ¿€N4Ä/†ûr´"oÌÿx#¾±ÒWô¥+°ø-±ªC¨šŠB,Uvà®è *ØÀx«É_¬X‰8Õ—(»5+|'÷艽· žP%AH^Ã6,?Ÿc‡ö¿²DBÕ¥ä½ÅoÊõº(ŠýugGG9J¦¹`ó=Q——™°äØ/ó1'ýÛÃëÒ•A¯'Á“¥ƒÏ)JTw‘\°ìÌ ôW~L«£Ç£úm™Òxºvõ…³íB‘q‚Ÿ½/û³QôË™&¼Ñ%o”½Á#?áÕªrUcSoQ뾆+x½Þà.Y‰O­;ìysc¸QüÊ¥öù{í:Z;ш¬2øÌJò‹{ØðåLIÙBÇÝ4äË@ÚÝÀ…1ùhXÎWìø<ô»k¥b2óæ‡N5uµ—">g?.;ð!£YÆqŽƒÿÈh®†?M×ð8Öë"ÙÉ0ê—’Íä$ÿB4TvÇÇ• “œÓJ€è£?}2¬Qàs ÝKŽ˜öŒZæt›? ‡ÉH˜ø6T\Ü ö«È=v`ñŸëÕÑ+„ºsR ƒž[`õÇ’1Ì4ÖËTÙ÷0÷âORÿQŒé¢µÎÈ´Ä üÚH®uGô\§ðÇ/È…È?ê)T»Iù†iê-™m›Èˆ <þ¼1¬òUºÛ´Ò¢Ÿr·ÒÁŸ_×JkF77¾û‡Ud.Ã¥×ù¨¬ÑΓœÆï¥0ýDh-+˜…ðá9Á0¼¢÷ý<æ3å·|LVkFÿÝ'Üô·Í󸚊—ÿh¤ö`þG,0ï}䀟tEZVQGzô[s!9®ƒe¥pLbæÉ7<ÑôÀã­*fzøs:¢§äë'Pb?®ùçûÕµúUÑ–Œv>$³±Ñ¬~uü* ®º¨†;6;";ÞpÌ+©Æ,~·Â<…?º„¦p3LÜ"œbÿü* ú]þNÉôoóLŒÒÚjK´*ú,½ºV‹»Ë_‰¢ #¯¡§ÓRÿÐaîÇg8äWnâ?ΉÌp¢’X¯³`û«{ÔCà„-ÐÞÖÖsÐÏ=äÏÿêu'Í‹ˆ×D̘v–ðï”%DÃué9>Yä#&=¡»GhŜԟwÓ÷ðäÙ³`J¶÷† øƒ‰Eý‰›—ˆ¦`3²K×=üóýÝ×.êq¹k’c³±öÀ˜ƒlÃJ·"#h» ˜º.&Š‹¿Üáå–ˆd×Ä+<Å5ìôJlê"ùyF øXú¬ÖO×ÜxñKÿ‘F+‹ÿhƒ¾‡­Î‚’ÖâúÝŒ<_ª\Nîq®9ÌJ#:Û> ÿp)1CuLÕ]Ý/r‚•Œá½÷Áÿ†ÿÈÉYüÊÞRƒˆüï‘yíbÏçx· LqG´°Ý¥ìu¨±õäFIÀ§sÛ¬d0žˆ¯¨Ò‹Žýtë7O7“wD®ˆÎÈ9¯ùÃñc”¬úøØ0U9²o<Í%È%?Ó°î äF"Ãôü‹ji»×¡'×y1_kFeLN±õýnAð«X˜·Æ0¥vÄì}Á·sÂgKøÝô|Hç«ëè€JÁ4¢:/ 9iOÄßd<ýäðäþ4S:«‹ð§ã9kë‰SZðÔä·þ ^¼?üùk7=is…±ò‘ËÙq~12›æ¨„ùŽÞðÕÉáöÿ³œ¨lÔ. «g6o‹=¢]ó‚Ñ5²æ™À¯âÂ.ÌGu– üj6»$«ž“¯‘qÌþðç›éß^ÍùìUSûRÿ‘–xå/c†ü ¿5bZ…Éñ“áÏO™ªãhXor¸¯xÐ!ô¨ •ÆLË­pçœ'Åþc½ºW?-:‚'þ‰y!þ2³9vQÔ¥óQ³þ§’cŠã þ²’å)oÓµe %›ÍØÒ˰‘߀⬦ˆÛê<)ÿ^ÄQw©}gæý¯~5âgoœœúÁÊÚV­«¾YŸÜ¿ý˜—úóCè¯ò0}6"¶Ôµ¶¿Ò…ùµI¨.{/ݘùQ­èwx‚ùMÈ?ZèE~³{ymÏû0Q’8ô9Ç¡¨³Ô[Xú©büu>ã¹¶gk7!_E&j¬¯ÄJˆ•'Jþ«7Üb‘€/ÊTxÿä:-õˆL´Ðb€lç§¢û3Ñ›§Qûšë¾Õ’z’,²Š®KðçîÂÇy¥Bî(äëöŠÌ^€x,žÕßb7ëÑ×¢îuSf²È`(±Û=°£-¨?×±b--ÇÔr.&!xMþ>GŸÍTT°°uDTÓ°âs‰×× þÃ¥¤ ¹3E‰¬ÎTwŠZò#g«ipþñÿQŸ™Žˆ1“aOþ{Bþ±™'â8Öuè»–ó)~þÑø¬R6mD¨Ÿhå¸[OâÓÁè ‘WŒ9n¯kä[9ëÕák¹9ê¡«fŽ5¯‘ÅDã~üìÿGÜ[ÀeÑmïß{öÌm+vwwwwwwwwwwvwwa¶b Š ØÝý~‡çç}âÏÿ=çœçã6{ö̬¸®k­å#â×3Rçôî–ÆÄ'¸o}ñ–«£àT{ͦdG7äy,`næ×N§«Ôiªå?‘Ï´åT›à‹¨˜F½ü¬ óÏ;1ÿ|­a×5>2&Sw2šÚˆhäF8³Næ8ôVkaª«ZžLâkg6ï ˜J†V»:\ƒÜ¦š³r†«^9¼zHó=­`nF»î šd%¨URx޾æ$+²cœÊy¦î¦K×'³œ5ü* w#:ÓFjújŠZÎëmDüè£.ÏpVù^?/Ë[­EÈÚÊ[Ñ­DÌ¥jE5IsôϨÿ(bÏEç÷%5c“¼Á‡ö©ÃNüê8ýÛ/‚vŽã¿øÄVY¬œŽ²T26‚ÿ8OvÕÑzjÍ ¢]uÔ±"šQ.±¦£c6aUÖm ¢·W!áô†ü—>O¯nc*õÏ_ö]ɧ&uþí翆ícõ•ÚB;€ÿX¦— ì.ò^)€ÿ8¯ =¾ó/ëÏ#ªõmÔ %fæOC7µê#õ,üG}‘^TÔ«jåÿjŸÝµÞ`0vþQ‡÷x Eý ¯~UM´´ŒÍ¿ô¬ ýºã¨ûáϦxz¦€¯1ša•;‰Ådîÿ^T¢‹a¯?Š>T©„…óñ×>êéÑŠÆ@âIDS ›œ _7ÇŽÒ=ð¡Ï©(ß-Òþ2Uè×®S|©ÿ8Iÿ«×𽧈§wׄõ SššÚÛÒ?¿šW°O‹ú‡S¬£å‰© 6u{žˆh;%ŒÔ;VI‡•Õä6x‚ƒ¨Ÿî‡·¿¥§Q]“ä‚ïOS—Ó¿¤ñûüÐ)8¢ð0óñ”øH™䣕|}_Åžw‘lç«£Ñ_]ÔB²ÓöºÔØà~öUî&S8)€I€G±Èë Ðÿ*><À0ê Æá£€ý¤¦6+«†6¿v¦’U ÖÁ/¬’=ˆÝ%¨W!~&üE+vç…ÒŽ9Äêwð%ŸÈ™&r÷ígªºU\øeþyc­¥°û—„§bÐ\í1kÍA;}T)ÝWÐ颒yŠêˆšô„Ê€¿ §\d?Üof± Ä}é«=¶Ú >V|{ÚD>Ø ´?œ¹Äê 3™Tª®‚®µ¢:o™a2Цk(Ž;É)èri“‚­è‡þÊÎ?^¢ÿXcpÖxDgªeæF®±5µ é(h8ì)JÍÌ>°ê9Èhæâ 6à¿Xæ Ñÿ*1Ï[V¹ÿhÊî–£æZHµød¼Ãe*àrP—Ý“n‚þr{}F_ýjt&9#¡™:Ê85~ÕQ]’Ø_~ û« Ħbº W¤›ü1ü[¼°¬­™ÅµmW)sŒü ù Ä®8»U çÃ÷E9­ùã'Ï‚I~—ѸsÍdazؾ¢_{?æß.©[Nº'ý·2¿vÙ˜›ܹoìt1úÝÜAêË ¿ Jk@ìT‹úÁØd¥AÀJQï÷•Ù’¬Ópé¯áe–ÃÓ7‚å×­øfa*¼¼@g/Àw¾fRÎÏ ž&ÿ8M÷ŠÑ<÷yð.QOÿà'Ó`+]‡“àÉG8vPÓY×v^9WÇÍT(á?&£ß$KˆC?ü/~̨nP]žUW‹ÿÛøU|ôQåà?Òÿª²–‡§õ³R–þíÞÔÆÒÜ~‰ÐþõEF£ÇÔ&ú'Æ@£“=ü!ÁÕ7º»è€þª†^O«ì}ø×«)Ê­\À4ô]øo,ÏC65®ö]¤5Ú€ˆe¥a›Þ'L+FÇuÑÇQÿ»ÛYX¼‚<ʳ”EŒçùÜ£>Üí½#bëÿ´-¾Nb=v(1àu¬pâå2<ãkQç·Eóttæ ÓÏOá?Æþq‡OÀ¯îá?âÃwGÐ9MäüÚàåᙲð;²âŸ‚Í/¤þ|Ïç×6??oÛˆÝ\Û7Ä%!3о^ ÿ±‡k¶ë£ÊãœÅ>êÏ+©®NÁ/ÿƒ²™Œ/ïñМUðöüÁð6_™ü£±|EƵ?| Û¶‡ïOtT Ù]Ê^7šZ7ðdÉÁ*áË/òûó²Ãgä·È?<ôh ïCQƯ´ÇÖ'¥î>çº:”úÁ½Ja½¿8Èjv7ªØäó‰ úúް ÷øùÊò=øÍuòÄðDØÓнØ8\ã£~V½üR•áZ=b“ªt%9€UËÄŽ†ÙÏÖ-¢Yžz ñx ð«lô¿Z†ü^3†ÈÙ볈,–‡¸ÓsµoÄ$•Éׯ‡ñõŽn&5Êaä7©!lBu€lˆnއíÎ. z8mCM6œ“É¢ÿU€V•ý{€Žæ@!ÐCÂQÙ·ƒ* fy=Ú«ؿ֨ÚÁسÀãÃ&ŸçÏöºÜp Ñ·° öòYQ7T#còÞ¨•é^çIÿÄ4T¨ ¢ëß%ºlùš/ð •À¯.°ß œPCÙVè˜7pßf¡ö†¯J Ÿ™†áP}µwÜÉk¼_¥ ʉ)Ó¥ê)úÚ1Ìòêæút~e7õƒw¨·ë3°·×d°îô¨ÈDW]mBǺ$!Ó/¨Æ¯«>R®Á}x 3Š@†pÖ|<ú« ;ŒÔø€¨¬ÅtÀJ£óýcÿÄIZ|X3ö÷–ŠŒLàXáøÿ¤Äf5`{£ã9W)¬Auš,e™8Bý øÍñW¶©¾â!ï]ò€4øÅd-»¨fÏ.Û;Ñ}ä Vâ—oɞɚbDavqhüG\µ„n’¤ÏNŽtš•r‘xƒ>£›Ì=vo5ØÐ(ò˜nx,»_J´Æ÷Bñ[”bú@qÖÈF|ßÚk|XUð©$XàQø 'øÐ†°³ûÁ¯^ $˜Ï:óÀ…ÚÛYbë/ú«5Z°Ñ2°Z[@h2HoòØÄëX®Ìæ9ø×ø‘»² +QBçþO”%É,¶É˜Æ=¸ZJQækOá?š`£àáÖpý‘2Õ#ÇäP¦Dx¢oíj=!ãèf~†9ˆNvøoµ™§s(*"ZÓ`wå“–þ<ÿ– ]nWy™úóð÷˜xa×~ĦÞ]~'k›øÿÔÂ{íÅßlDÓƒë‹_ïs<¯=ÈfÖ%½P¨ê»,c›—á’ q½Ý¨Zð§ÚÑÛ¼CÅ{2£Kd “Q“u@=äRÖR©;yN&Ÿ´"JÉŠHA¼]ŸÛî赋J¿*Liêc5€¸ÌlÃ|xášôòý(â?Ðø‰£Î—ã£rJûÄôæž}”¶º=*êvøŸpè`âË —:MÍF:ºÊŒ!›Ñ¸rŸ@Ïjן/a"\® ý¯êƒ?Øj¸b<ídfá&½ÍjŽv¬P‰ÚõÄ|/Puþ,kŽÙ”¾ŒùñÑÌh( o·]BÝòUÌqú³Ì?¿$úóÔÓ‰¤ÚÓL‰þê0XÝ:ê§ÂS¾²VáQnS÷á-}è^2ÓÚîö¬7YílÄã‰þwÚÎãùú¤ ºEã|²žÐÕ4šóo·ðEÕrÐk·®¾RoX?xùµ¾T¤ÇÐãj™T¿ZÎSIÄ<ÑøhE}ÑšÆ9éßþ…ùµoèßž"p~mñ¿Úg]­6UCDnb±-dGÑ ¨_yLJŠþD¥ñmaį¢3ç$±>‘xÜ—ˆ¡,ö®5¨Ðúï2M†l¡*Qx2:eõ]a¸f_-õ'Mx_ž“ìܤR€(¿Hst™Äè*+­‚ÔÀþná^Ê1"£ãB£®1øh[Ôkv×õS°·ÍÁev˜nG!V ÝTú_…ûÃ)¶ÔjÀ(TŇ?²¹"ò4à@ϱ„шš#_-£®z¿m 8ÛBqU7Ûÿê3uÅWDnlóò­‹äÞßá?ì.¦9‰2+»ˆHŸãV`»wñõ]DcŒÈÂ#Ôùnj\¦0<"c¸J~qüªXXD²¤„d ýÄx=½9›œ[.ijµ#WHɳ”5þc¡’›ù»ØØæÁàMºì³ßUÜTt¦©°d9Ùåe¼Á>r¤Ç¼µ³Ù][8—2F\ñðüjú«ðçrZU/<ï,ì)"Ú ÄÌ ˜”]˜š…¬ XK¨?×P`§ÕZ4ÂnFkœ­P”Ú;öÞ´½Ô!tt7ánïàAfËñæ{pŽgàø'øZEê?FRÿq—ï ÿ±Âˆ¥Í v§Ÿà?æã¥ïë,Âßœ0¨aâìRø¾ öÑà€c:ÚÀŸ1Gâlìe2ëí@p‡§òEà„8×S˜_Ð VzÂ’M†½ö0NÊEôªjŸrMÚuâ…É?&€Í‘˜êm׈WånßÁÃõÓs—-‚Ìl T‚?ƒñ3– ]ËA•V4´¬eðÀÄvSßXÌ*ˆÞ¶ž•†yRG¨óÎlÚøÕ˜¡ÃüD9™ÝØàÜœCݧyQóiëwSšþhö—ÈÊ`jª#!óGŸ? ßÈDð°Ôðé3ÐÆf`Ò®­¿š‰Bº;ø•­¿jæ<¿2Ìÿx€&¬$1P ùC¿&›eèµþÇ«[‰òà&Ùà;ôW£ðš¬¬ýÛ“%øàíô[þãœz˜ü£+8ÔHÖ˜FRú»Ñ¥we2½† 9V8¼©R©j;àG[³çŸ?ÄìcÈ /Ÿ9È.ç¥ÿÇ?ÉLWt×T»×JÁ{~Tê²K0-ªš¾O/­uä´o+É™ý±N³ôÔüÝüÚç̃ۊO ÆQ‰y:‘ôêNõ<ùGqpœ\z%ú¹ÿÍáÔÐ:¡EÆ;؉7¿©$’«^ )Õ©è§¶…±{rØìéyîwyøÌÄZs”|#{Ó¿Ý¤Þ ‡£øS]ºè^ç”R;ùÿçEvw üªD°&"w‹Jw]ÔÇéÓ> ¸aüÌU:¦~ðQ½=¿ÖÛÜ /Ó­×MðºKd=‚ô/)þjW:œL§ß熾ÞÍüŒ%½AOÚÞôO\c^×ÖJ‚þö¸Sz*Uêâá ò†–èØ¾‰•Î;òIÙ¡=ÇóÞåˆaê(f2È‚èb¯“ÅôÀL#™ÿqMײ‘UfUæ‚ø’.b÷ñÕ[Èý[8¯·½]Ÿð†Õ…Cœ,s “^‘9áQ—à*¯ÀxßFs5†®#ŸÙíò‡jæw3¦™\ô¾ü˜x$Š]NÿqCÝI­ÂÞø!°#Þâ4ó§Y‡x2n1k+LJ æ×Þ¡ž‡ÿ(IEÉ(îÕkrt4Ö¨û¤C¿;Þy2ššûßÖ_%G¿[üª¤¾—üÃ>í«Jjí> ÈwÍdZ`X¸dç-W¾(¹ô£Äñ©ÀnZÉ©,ÊôìsôO¬ž_oJE‰ë»ÿüYOð+&|_"¦E,êhÊ´Ù¥¢Qõ²0Ö&UO©Õõdþ¬UkUÿÑ’.ÞKÈÎñ®ˆúäMƒDÑ0áWgµ8¢$ñqbpoüO¹ßH² Ú†¨)µ,Œ¥}Žÿhô‹ªó×뾨øˆÌÿHŒ+…¥ëŠ‹ƒµ>ÀÇÚà2ž¼GkáÏíúóìÆ1íwXÓÏ•û·Ýfw­ÀKÞ²¯öx¤|– ‰@¢ðü®H#os—ÅS=öoù/Ê|:VV‘×AÕ:ã¿R©ß `ÙL\YÝ¥¾N&±¿aW‘{a§Nâ?vk!«+ìÝ%¤ÿ•ƒì,+ÈYY|Ûòœìí&‘+½Å Ý@›4XbÿZœDZú·Û=Sã…â?æ+åá?Nr]ë±YÉAÞûƒ‡ ÄØõ„‘¹º:ø_òƒ-Äß þcû€éodûéß>F«)êâwS,Q¹hOÙºDÅGVâʵhsòšdnæŸO‘ùaŠ“‘;4ÇÜ$ßL,‚O{²ù»G"*,j2¬»Òî9[Ÿ€Ž##Ðï^¡þ|´uÿÖ¯1¶"“rßâæ¢—èNÿö)ÁÞ—GZQ¬ßu0ÒìxÌQØ5o9Í܇ ö-ó?ÎYq¬$ŽÎ0ç•àÏÑ“Ñì#£ñ¤#ü'4ñèñó±?&ñ¯—ðÞÓduƒƒLÃ]ov¥‚3*z©¾ÔŸ?#OnŽ•©+ôCñU…úŽûô/ÙIÆÓU6_Ë•PZ©Óy¢:ñ›†²ZLbýpæc&¹>7À\fRS:f59-©êßðÀLóߘ;ŸÜ¦5yÜSáÊýß*g´Wœ¯Ý›Îa¾sE˜£˜ØãÂV³»9¥Ô&fž£+Êú—ìCÛÛš%vÿ’¨füÇ:bÖ¾Îë­¢§_ô† ñ–±…"¯šÉ‘ñ?}`ÌÏÀÏœ§fcõ%ïð㘾˜v*š™ æ(ôã<Þ±Ùé?N¨ûõsb8ñˆÝ碸hfuL""hlFe2–í?Þ[«ª#€üh’\Á®ËYcémòƒ<ð›XF¼U ÿ‘Pwžàï“,h*›;Oæ£RTý»¾R®:Ô'jº]Õ×Çëù4»»Á'%þã¶æÐMô».=ëg~ÿ™®æ¥ÿU"òw¢* —wZ-õ©ú@¿ÿÈ “ü]ýàl­àQ.àœy5‘^¤ù‹jD'±ß‰‰úPç9ü~_Š¿3Jwñç)×dÚDcP¡Æ¼ó³‰ì^µ"qzÞÒ³+,×üD‹„W`¤Ç†Ü‚KèL¬š“7t*N+ã ùG%2ˆÇ‚Y%Af0ÿn‡·•Ë✸ÉÉ}5Šâázs%äÊ=X¯QéYxÄEhÌÇÁNg5–jÑÿpÍË´æØ„æØûd ¹X/5ÿ½ƒ'ˆ ªÿ‰·a%þx¸¼Ý?}·¸¡çQ?üfs*…Qµó|üÐð«HämÅY!-õOUŒÞx<_üÑd¸™[xΦŠ{ Tþ#§ZLƒ}.$™Eöq.«ÙÑ1<ûnlú ý uqýÀžú‘yöaçöäÄ\ìøJ(üÇ ôW=Å%8r&Àò6~ÆÚW¡ŠAÔ]]~ÃÒ–ã<Ï€hl’ï9Ûx½•ÄcñKÑÅ.õnˆkžFýyÎ='þclBÎ5†ü#-{OÏöcôp  òã õãùÉ rƒldDÛ-Ò5™…†¸/s´/°ÈM9½ ü‡ð 7ànoÁN¯’£¨¤›1ôa¾Z‚Ê…ÁTŠÚýÛ}P¿«Cýàˆ`+>תp·éï•3E^†Yj.`5ê'P"…C•ΑÇô ÿzgøÄΛñW{é¯ò•ì8qˆþ‰%à?Êsà3#øÍ§Œðç#¸¶%TdøÑ97?õ’‹˜*~Šþ‰ñkƒÈRºà‹¼`T®ã)êˆ×ÎlÿÁ¤¾GdzE“±D#óÏ+Ñ3¬!q÷ò£(xïÂ$WƒaÞ ã]ÍÜ„îk.ݶ.Ê<„kvô[å–ö$òú›Ü+&ˆÕìªõ–JþæLð¦j*îßo$ÿ8f¦×:Ë<ÞåœFj5·cslDåŸÿÕÃ<±y¶=¥¯þÊH¶T þ½ò¥Ðïž…¡éhIÇ}´ÏM¨RÉ £ÃŒBâEÔ± ÿñ6Hÿ«+êÝ[ŒÀÍà©Aý`&Ç\vQƒ8ã4ªƒêø äZIÅ-: €Œ•`Ÿk̯ÄWz8•Iwé™RCþs¿ÿÉ™ÕEªëd>¢j‰ç<§¿û½ÑGUЮh ô‰z­,«„S hŸéˆeè´xj~faX8†š^ßHýU1㎾ Æ_õ!Ï«ÿQ@¯®åú«}ÎÕZ‚‚¯…±#s˜N—^äQc€ Ô¡§Éø¹˜ÆP½[˜VLDýà@}2Î lrC&•†/,†ÿÚr8Ó_ä£kWwf¶¯ ÕzÓ?±U)©°gx"+P^€Lf:ow,uY”§ÄL*3¯þ´ rF\¤º%'Ѝ\<­Cðq™ðiöTìà0WÈK¦Âôñ‘ÆŠ?ÖNÐlÛ\Lè9YG.²«Ôd! Þ#hØSö»æaþÄ®ÿ^ÏTœÔêßlò¥²NUÀª®`uíiJéé_Òîb½Q½i.²ðB`xvGßE¨SmozšÝ‡¿ºÊŠI˜?è†J çU _nϬʚ—É]Vs7Fé÷°@¶ÏŠÿëþ)^¸¶ïL(þc½’Zï"nó&. ŠMH¾1 ¯Ô‡JÁÙ²,qã*#׸ìˆ :¼ú ìÀnr¡ä6áÅ–_j&—jíDe¾–k¿<åA 'Ok«—ànO3cÈþÜ“¿ìTk”A™““Õaÿ‘|×焸ÓKµ¯BâÅs]Â+,Ca1LúS?±žHÿ36Ù¤OŸ>¨Šù <*¢,Jçfšƒ¹ã si½ƒ­øP«Êîo£É JÓ ÿöš9"+Ìqt°ÿÑÝ‘Ô1W˜,â0ÙGLö÷ŠüëüÏf#uˆúÁÔâôubΜùAãœÜ ÿQ¼JP±Ð…úgàDÓMôºäJOèØX…s¾K}Ê0½j²rÿQB骎ÆsÇoO@’”ùµé`ÊÁäÁÞïE¿›ÿáGÅdô·áš3ã?šPGÍYIôWÛÅrç3ãÿppOOñæ¿¥³»ýK"ÑWäóÉÛ¡2‚k ÿ¬•«Ý—îI˜u,Æü¨>Xáfò—u¨¬¶£7Ÿ¤£æDž‰ˆ"¿¼MÆP€¦ S‰˜^ cG¸hFãÝzXµÀ¯èÜÈ]±ŸÍ Â_¼“œù‡—ºA?!lMb/rä}â%ý¯Ы¸93¢PËØØŠÅü¨}Ô#–¶¶ÉE¨ÎJZ ÍAæÐm7¯D6O C„%ZuÊÿOŸä‡?wÕŸSªþÛþ#šú^­¬=ÔšêîzÀúÁJò‹Z<=Ý7ÿÕŽ#]ž¡Z#3ª™ÚøVú2ª{À¯Ž£ß-)êСñïò‘Zo¢Áu¢4÷|ÑGTé¨ÿx‡åž)¦ßä1Üèߧ^W[ès°ìW@*”âɬƶŠüøvâ¼(CeÃ`ø-a¸æ+Z4¢âÎĦ~ 6›é2²‹Ëì oáK¬[Ìè:9EN1<˜ mñÊ=¢=€­LòÁNÏäóöXùyF9'O#L÷K1Ä'¥±ñùG;­5»êŒý}§ÌÌ3ž„\íj–l CŸAV’1,Û9|ˆþí9U|‡÷”Õ0Ne‰u×°Î6°Éo¢;Þh1V;™¬A˜ê(ÆŽîÕ åWØn$ÛBÍ?¨ÉôðÄÏyQ•f稚á.—GÇQýŽÖ_ÊÑ BÌg¥÷HS¬e$TÕÈì^†â?VÀ·µWŒB¨›ÚrmŸ8·2xõ8Ø·ª¨™l¶(-¼ÃRœÛ\¿;÷ÞîaÒ›wÞËÔûÁ/U™¨µÇ”æœNà‘J’SŽÁçØýK’ÓóÐÃ\‚¶35uyÙ@±&â?'`÷éÝIŽ“ EpHüj¶&P7@ƒmOò"§ð¥þœZulû@ó Š®XXS?lq+ó9‡c$ë¸ì/Ç£)O¦uöì¼Ð*¢ÛyH}Nx—ñø„÷øµäB1Ía°É–#®cþ£.–ê8§œ”ßëG¶pA¾µ}¿üýË(üŒXÇëTÓÖ‘ Oy ÛYÓœ ¢ôˆÎU9¸ÞEt+ÜHýùüÇ@®¹3üù¼’7ˆS]ñÂy‚e”.ð±Ù•”}È|’/GÁ§‡VFs2Á·Xi©ªø 2Tļlî³Þ™)ñ ±÷ᘇR}R¸ôž/•³š‚ºoÌE|S¬ûèÓ Ö<}JVŸ½ZËÜòÖ¼Ñ3sg¯ã?Ö‘!Õ#ÿ¸, á?Ÿ¿Ṁå,¿éŸŒ‚VIGtWàÏ_¡­»I†4‰U£ÑÇïAí¹i%2“¿ù›@¨ìYÄ®þ»ÏðÞbQÕv¨;ÌRø“f˜"_üf=úËÛüù{|ævæGÕ¦ÒdD ~÷:ZÕ¼MÕéã2ÿ<£êI÷Ÿ·îýK9ÿöó_Ãö1‚ú\mBÿöÆúv½V…U))µëÚ-–žTË †¥Ûõ›î+…È?¢Oª°ÔÉD2½!™Òaý>ý¯2Šjz“¿Ì?*hc±Y£DÔ ÇéÇ8VDQ׫wE[¸±õ¢¨Íý†q~mJê»ë °§·°%ˆÊÛÊà Ìá…ݽæÏÀ]²œd`e õm® úígàÏmþ#ü‡/OC[¢¸¬h=`A€aU“¥ðFÈ?èÚõÇ{ÓIùÎd´§"2Kò€j·$+Žˆç¤ÛUS‰áIãðvÓ_Wݸ¡9þ°b­˜D/ð¹‹ØšŒàliðG_ÑÈFŠ wðô®Á’&%ælBþñYó[þü‹2U} JšŒá{/cï?â?Šc…Óðv§¥Š¶>ˆÛaT23‰c=Á¯vãibæ²-®cL£Zz<¼dzXž"üÔ²¶Rèw½àqo2Í«‰›b£)£ùJ#pË<؈à\ÙBá?Æ(‰É?N±Ú~ÙÛ+ù©ÚÜÕXt¥ªOv´oR˜xy#öÝlmd*üH]®$­ØöKÿ«QÚrÛR0›ñ È-©^mÛ«›ÚáÖKbæ2]*棎u÷ÛWÁ±2ªþŸ¦þCÛ°U­»à f“¡MA †{µÛè•4ÓºŒ¯jcšô4II þ5“BäL¢’ÌZpíÅY­OÄ}îd<ÒyÂð¢³:ó¶ù©qtòˆLÿÝ<ŽØûº0Ì×ð¨á@î‘?]!ι‰ÿÎD6CíÅS2šóZf,“³É :ÒÕð‘|mM _Õó&Ñýv€ÿh~Õ<ì ëç\ùháêÚ\^©©Î¢ÆfQõ´TEYã uyë;ÞvyÑZ‚ÿ(‡[`¥2ï?g¦ü!üÇ4ÔÇ~²==«Š©^„?Í5ΡÑG\óAÑÈf¬^0úýèŸøƒŽÃ3°úIˆëgáCb¼ ³ËFômÃäQlD=a#òÿü¯¸:‚ùƒQÈwWâ-_ëeB«¸ãy’LáÙU7v¶ oþ™JöÁtNìcEezIt35¶§<§ûÉ€^‹}Îüc¿zŒZ…v º#±ÄN3ÌÎvzBF´Š£Êv³ú8ö:>Ó?1—µA~a2îAö9Û|Æ;daov*xü¿S(ý¼šÿ·iÔcª ý¦äú·ç:À—êà-†ë[õfݰ”WJ~fŸû£¿ŠMýùßáW¦ZRßCÞšŒnámÀÀ=™¨~SõEÓÛ ÿÑR¯¦ÕvÞϰœÀ@­1(Çx¥öäÃDuê?Þ©OEnf¢Ï"¾Ébì #ÿýU{}vê:Èc!ÞÁr𵤢Öu/6ÿSŠ"ãDâ0)²ïiIE)ì|:ìê%˜è*r9üÇð«cô¥”§Ê2&®dÆÊÌÙÙE6£À0g2&aWÓÊ F+üÆ |Û}ró°6;àÖi¡u¦Nª2W†þ™9}»Çã0Ä<`r×y«¶Ò·5ùÇ\0ñ,r$LgKj9Ò@D÷‚/þºÁåôOì,®‚ñm„ÿH-¿àŠ~1V¡žºÅŽŠTq€_íwˆó/ÓéCßœœ'š8©†ä.—j£±zô>fV¹ü¹ß;—}ŒEêÀüã:õƒG±OEðyù}YÑùÖÅšî’ 3ßG†xºGiŸ¹§}Pi-…c?nù5ÈÙ“(Õ„½¯e×gT3¡9ŽÆu3yœy‡Ýåö‘Asá/öÕûƒ_Mæ”#£?ØNÅÆUãß§ ¯U˜Ì·šÙ|7¬ìŽRø“Tzâ?â™=£;Ø9ùš»¢é…ƒí0©°ç²Ý6ìþWáAvÈmðîMÍtT¿ŠMCeÅ4ª5Qÿqþ£§ÚYÞƒÁÙ×PÒ¿¤¢ÒK³?k;ŸZ ¦Î5¦%&ÏDÿ+/²…"V øîvôß]mα^0ÿc^zíï’Åf’§‚XÓïÊmÍçÞæ¿KñF4”À¯Ž1m¶>ýPlüj19Í!ê w0™e›}ì Ø¸¥xÓ–œõVòÊ_þã!šÍrXîA2‰(žÐ‘ ýUzúè'F}5ži"©¡ñFƒÖö'³|£š)É2ýɨ½ð—ƒÔ\Q÷¢Í;?ŽŒ÷‘8k~…3?c–[;ŒZ ¾•Ö1Ôq„ùé¬wrµÔ*Êœ’]àWô[±BÙ¥7ý“<~}¬ÿãÿ’4¿ŸóIp0ý<™óo÷ËcS^E;ˆÿX¨·× ±Êe%/óÏýá?¢i1þ2ÿøA=ð Þö¤X„fô&ôfŃê}úïŽæ^¶ÅCïßö§½¶ÖjbûF`©{ƒ\DQõ„úˆ's·X(Êa[|ôÉaºò8ôq¬¯ÂNÁÒ5‡n€Þ½3='¦q÷`ˆZÄü é_ràOÛâë§µgz~ö–gë)8{Ml|Þ@ëôˆÕ°y©Ù»'D‘ ß-|P9'¼ÄlÍ#VôÁ.Áâ·e—‚XioÞ£ ôñh„5Kh¬úãüÚÒð7X¥˜ÿ]¸¿ŠŠ·ˆ…/Ê“º+zˆ]§ Œ°Ïˆ;èwþfs_•UÌ?ÏVâNFt†}Ù±AЯBX‰¢†=¿ö>§ºˆ5¯óÛ|`^¶1 c›Zg¸Àœå„+ WåjÊ8u.™ŸÝ?q •¥Eiê“1øÑ§d¤éK}cP¡³DâMÍYô3ñ£.}+µ†ãÀì^À¦0+J,s>…/?ÍžSyݸiÞG•‡»Ðü*®Õ‰]ŽÇ[Î$¦¿ÈTõ£è¯îÓ‹r,:®âܹf'ô&‹x÷º:¯·4ý'¼àÏ‹7MC]^¾3óÁMìÅ«=7“Ñë% HGúïú³Ûæd6¥@¡RšIQ©û“­_@Ýr;ˆ~÷Œº\¥ïüdv@ÿvñýUGs Ý!‡á•29Æ9–RORÞz$GGòœÍø»¢7oÈ#üZô “ÎKÿ’E]©º˜5¡¦Tã:Ïéï~ybõ™ZQ»ÿ±€þWeXå!ú]Y´Zì¿Ôï µ´¾“8ÞÆÈ«_õT W’çU…?ϯôPaßáP­QØtüG¬SÑFd¢^þ­¨É³1M¤§zYñ«xê5ôßs .aŒí}Þé“XèTb´1ž÷§?ÏFrÃàweÖ7…aƒGµØðaïoof^Ô6j V;AÙ;cSÈb†E7/r¦¬ê¯Ë„?¿#.prßÀbn Z†Ÿhj³Ä¨‹M±ûÂNÓ‘n<ÆÙ?êw§heAššcïŸs¥)At‘·<#އР7ëŸåORòúÆq^Ï­¾ýu[ÿòAYŽbº˜|òÞ dÊÆ&[a¥ÝñÙda&×ÕÂ6aÇs°Ž÷±nÛØ¥›Ø¤ù†²b5þ#&×äAÞe®°“òS ÈHJŠ>ºg0ñõ(ò“.08Y`û¨:ùu¹½J:½8N5Ä|ƒÄ0注äéê±–4–< nW ÿ± >ã9YÏbÏyøN\AbqHõ ±ä.æ×Ú½é bq7¡ÏõÁóÎ72ÂÇ¢f| Ujþ̯½LBIòì询b­êâÊÔL†D*çßG&žÈÇ×SÕa×öÿ±ÌmèwýéU›>·`ßë˜o¨èH!“‹?q›*í.óÉ´¶ÁÞë‡ZqÐ’<_ÉðYcñÛoä2jñ–Ó?±LpTǦò ÿ(ˆþê$ N\°7?:˜Ü”ÜoEÞÿ:«ðâÜ/ðü†7mì•;`º«š É·Àd%G˜Aÿ««Ô^ÅL#ºoV÷‚õ€ã¯„?¯¬´Qçñ„D¯4˜l0ñzdó¾YÙ:Ož1Ÿyêk­|TúS™WŽþ¹Ö~36š“»<Ó6‚ö\¬Ô>2—TúïÎ »µM¼£J=zÝ7fo'ñs¹ñÓÇ`Ñ«1¡øùL.k5Xã'îß1Ÿ·¥°Dgó?©ÿ(¡n 2¿VW󫉃=g?¯ñÏ£3¼<¾¢‹>G/¢Ue•¯àWo¨(Œ K-í_êw#©9ôt«ŠößÞˆ îà?Tí1¸cOîei&¬çý«}NÕšcÙ—‰âäCèY’[¤U“kDm0ûàWIŒùaœ^õVÛ꣩Ü=l ‘þhô“gàÑó‰yXO,­·(BÜ ýÕö?›rL‹'*âÓÈ+XâcF-PÒ*è¸6òt ‚eIJd™žÏDTñg…ñ;eX×ueoŒ’0 ˆz‹#Xk'õƒÑÁ€£ÁŸ¿ ¦f ÕkÿX¾T«_Ô•øÀ÷dç^ÄÆ… vãýúA•÷^/}wëùTó7wærPý,R帓®Å"k`Šiˆƒ Q±×ÿQÿ±˽Œs8Ǫ#±àßõµZhE2©éôˆä‰É×J‘7lµEB¬vTXìпɅ(°€_5çzÁÔßYð]CñG•œð°÷sñ±ä'´¹Yñß6^žld!yR ¢ùid ¾TÝ­æ^ÏÃ{ôFÝAìùE¿{Zk Û] Ìk;V-¶ÄÚÃꤦ†"6=×w¢ÊÜo¦ÂD‘™Öôþk~fßÝxûË,šÚ[a‰—&Z˱K=ô*œI}¢éÃäò(V[ú'¿zFï®;íÂ'ÛüyN­s°»òMk†õóFÍލû{Hÿ’æZù•ÚìpµèÕÏQ êYŠOâµ_"ßå8ˆ‚>Ü)…XØ5ξ?ñÿZãÜKeFô»?äYli&ôWÃQ;ma·'ÈZÊ"ØùÓò Ý-²¡Ìd~mE¥¿:†\m6^u¦,-ˆ8Fvêë›’³e¥£Ô:ü[L4H>([ó 9ÞŠ~×a®%œ‹Ï<ÁýÊ îBÃÃD Þ¹ :ÉŒ`t¯™#Õ‰ùéÑ©ˆŸG^ägͳ»D}…'Õ$GÌôè¯nÁÜO§¦¡œHG¢¼A:PBŒ$īᠲ¢Ú;k¦rÔµ®Zeéåƒ>Ìá8 ·ïMÄa°óíõWš‡wæ6‘Ç%q ÍÝé?îRÿqSŒâMÍ3â)®˜%뛳VxjRjP>ÈáI~”ƒùQKðš½é5Ý|NÌŽŸ˜„¯½Âü!×½3ÿÙÏsá?\½4µð¿_eCUU{DÿÄ z ­OW€’‡Ùµ×´ˆú5–[êºVS-€Ö*š™¯p½±…¤ßÎ1ò&Wˆ|̪­• öüº~2ôÏúiÕɉBDú;à&Úˆœª†¦¾¡±6+‡ÏXÆúA7õŠZDoûgw'l–ÓRz…fä ˜‡k‚¾"7CD"=,š³èw“€ŽXðçöÖjr7|ïAž¦{àÝ@c2béÏ¢‰óKTúëµWæ‹Ã\Q,°0»ãh¢šxØ® ðñ¥©*;‹"u9 @]2åwbËûï¶Ó⢩‰ïõÁ7¦Â¢Æ6b‘7ç#–J nsÛAs¾—gB ½†ù¯~ÝV࿼U&0ÿ<#öwÙÀ>Øø(Øõt¬Ÿt¤:xwUÎàh`šß6ƒ,… }¯v6”ÓÒEæ³xŠ΃HЃ˜¸8ÌxLæ.äËuIô; œ­v·>0¸] bPPüÇv¥¸ÞBìçtú`qÝÀlüjg8ôI‘ÇñYa{'a»á›W‚¥%®/J®øH?üËüZ­+üGUXà ð¹Q%]nø™ÄX`ÿ±”d?¯Ná?ò›‹°Îoð„ÈúÚ5Ôð}!û·oÔN«*Ì,X¢ùàWwÀN>ÀŸ,„·x k«—Òu ýî'ð+“»ã}^ Ï0Ž('£æª³SèUñ¤×ÈRݨ‘é"OwQF-6—ÊDz)J"Áü¨Ôô/¡+:5^œHLôP§ðÛ@-ÏÑṂޔôâ:ð1F+¢ÿ Æ)ØøÑäãÈ0Γd¢vü8Õzå8¸šYY–纊w¦G7Å ýK + ¨ÌȽûBŽUýnLx‹ fvú_•§"ï$ý“PE§:šY ¨ƒXi}3#ã?*“k½ƒM©NeÒm¤w)óÏŸpöy²b›I˜åékŒ1ó/¤fÂÉ$æ²€ˆ-¬ÜA7Þ[ü¦v`‹Ù¸÷/É —SÿQ:v\R_´t"1E):*l£ãa)ú—Ôcöí]óµå Ÿ2‚ús:©A(ÅŠQá)©ÿOD·‚^D×…j¬vúSê!ú_ ½èÇÛÀt[ª;ѯ¸:u=I¬ìø‹pwúܧ s õç­¹Ó“ÁÝÞðœ‡GCìùýî‘ 7ä¿ôyVuþ2C-¥ÿù·¿û˜D£UÑÞj=ô àWCXå‚_{ÇüC­¦UÃ2ËÕõï*QõÍÂÎ>Þ‰ÎÆS=£.Ô>äy7¹“Es}l`…¢ëûÿôY ­ oÑ4ùfXþÖb(­ÞR »'Ö ìwBüÇŸÑ!û·„W7«Qô<à+»ˆÊë`å›È-Üû×úHâe¢’Ý"÷•Yëa¯¶j¯ôìØ!»¿Û lL)ÞÂŒXävØÁ¶ä g°Ë˜\á!zˆàDhׯ ¬7ö¢5V‰9³#Åq=Šã7kÆP'¨óÐÞ?!f†^Ø ñû|´Q©š…­‡%Û‰ç8É»áŽÿèjìÒ/j—]r~–œùµ÷Å2„[ðã{Œmœa9òÿã`NÇa£ê3?jŸØÄÈ›ºðµ[ Ö“©q.âüd§’Lo-bÅçáAÂÉ÷è ã!’í×Ý9M§ˆBXÏÉtkzb<äÞ3 ™X¡9O æ>p®ôÏ'Sµ&¢öþ«±û\ȼ'Ño ìåsTSóð‹ÌZæFêÝRa³³Ê·dvßøaüþˆ0ò!ŸEw-"üMÎ}×´ }‰Ø÷d1ŒôST¬þæËŸZ“ú¨v‡rž‰©ô»ÛßNv%VÈ©×~ÒjQøD&BåÜýÝ¡2|µ9™ýMb~m8‡—ÕÓQITQÌÞ‹E4~ìë>þª“>ËA/9Ø„¯½ÈWj ôÝB/³Mær°¥9`T/­) .ÇÍð vàç`CõQù6b‡»@nË1rŒpå˜Õ•Æêhê¡ìùçCPæ¥àiý!}̲Ö]<’W­dþy6ê7ª[ÕÉå<È2ÁÜ4'{û‚Þm{ŒjìqnÏ_9¨Ý%>;LL&Íwh0“Àxw¢CdLòATˆß§#ÊLüIp¡ùLö’ô奎“³ýÊ.7£â),lDþŸÿUW»2ÿ#úEÅN%Î2Ó½”£K P?˜ˆ9†•ÐsÕ ‹Õ z¿Ì£{ljÙÁ »9Ê îoÂå?¡+½%úbMº¢<&b£ +B®R ’fiVšhÍqt¦_KZú'¶acwËnDò\Fã)`4ä)¯þ?Á¯¢«GյΓ1Õ²jçß~žWØ>&A5†YµƒõzÍîéë©Ô^R?øVshiÔƒa[æÿ¾ËWI«÷¦Ëq<´¦뺂ÿ(CÿÄmtßÍ)éµ ù½|­(ÆTð {\%¦s4cÞ®Ÿ¨…O™ˆ–âó\\~ô_­—‰ñ‰ô,Tx`›}×’ëx³#‹*Æ8lD3c¿ÅaL)õ3ÿj¡ÿûÚYí0«µã=~‰•]8ÞƒÜæ#â1òløk°5ÃÐÿjb÷†|C÷¤ê¸>YÃ0¼Ð\2›Tü‹‘,`·µ$¸ÛåµLì©^1€+NÆ>ðç羽¼Glýhj>d%YØ v½A¢ÏLÂ߬ùM9¦®YÀJ&iÃò†ã´ÊßæâÍú!jƒ<¼Á¯Lå4÷qºãñ[Eˆ«Cö€é Bö tuUˆ3Œ¦»q¾ã »§FO•éèúÁŸ{Á¯ô¢NÀÓ|h.c:Ä)ÙÈ|NÏ»ÿÕ'ð¶¹h«ÜùÍYBÔz#²+{ s6ÛÃȽÆ=Ù M§ŒN4 ®ö4šÔÁæEYž·÷ðG)Ð^a=&]ײÛá ÝîÌy‚¬wß9ýî.˜í.fkçРb~í :KÝA×{ÓüÖT‹¬ãœüTøsw¦ç½t¾+c”žê4ÔçƒäSz W”ù‰Ö#à#ÓÃ.$€‘¾ #ýŠñoV«(Ùvþý9™VSþX0,cÁœtÃeo«÷µƒðw{‰¥’à?†Âx¿”ÅÀƒªZÍ™î^ÁÚAMÅDëŠÞ|3гZuÌä1KP¸Õ—cÐï–.ýAlu´EFkrïå2ª¸dÜ0c:b¢îŒ~w=ý7 Áêo=dšH;ó Ó¤zã2›%àsT¼Øú YÆgþqM½¥«`õ±MËð.mÌÔk­Y™ºÐðtú*bpŒ§~ð9õòÉæÜáω@Ìd3 y;x þOú'VPw3Uôç­‹Hþ‘Úù·Ÿÿ¶q™ Þ¬j¨¾^¯ˆ_}V*jRGÿ+CKõ—ýÝÔ”ú"aba¾‰ìÆ Ý¥éU!¶î#Ê ¿š¤¹úa†e´Ä»³X«-oa/QXTQsi:â>fÙV%ª^¥‡Ä B_WÂããí» ìÎ=ÿHŸ ˆéXÂC؉£ð))Éð® ¡¯eÿënÍ TmzTG«`i·`«ìùQo±ûwÁŠŠq·¨*¤èïÖûŠÿ8ºZd"&–n yFr"”˼;µÀ |ˆç÷ÂJ?îÌþÝJÿüûx-×Ùoöˆ5Òc£ÂòeíXY{ZÇ"V^AÍÞªÓçà Sµß¬ùQÙ£’aݧ`ÑN¡¶†.Gæ½iuó²øÐýÜŸA|õ"ÿÞ‹·ô»¾[ e“9À¯‰âÊ}øXôâä2YÀdb Ó£¿z€f×/ßæ?³ñ\o¬áŠÿ¸ªÄ$ÿðD/5‰ê7<ÆT²–°®ké«”€Š†d†g@ŽNÈÇä³ðÇ38{Æ CÜú¥ç×*æGµgÿiùy›Ã¿Ã²Læ(9C2úR ¾Ì .¤P7ŒßÖIŒäúûóûS èrÅtÿ\º—æÆéƒ\ cà.·¹ÔVD0·’ܰkòLw+]k¢ŽD¥Zn2‰sp*á…´Áwæ Ÿâ/3Ënø†¯\JÉeºf œ_ûÞJãXh^ 5¯ÈôÄ뻡¬•?È“„è_^lÀÝÆ«uÅco5NÈ-ôoFýGdæ É]ú_†ùè–󬮦@ç’ÍüvN¨IÿQýaô/YÄïW:0÷ÓYŒšcE°â£ºíÍdÛàbÇÐ_­bÅUøã}d6Õé_rÈùÌJýàfÅ¡§ñ‹ °ké¹²^àÝ@Ǧ°èø¨܉=ÔjŸÀ·|ì&zÆÕk¿þ—ž_´ú¨"ªpŽâÅÊ¡YêÈÕ$Åßc™KõóRzþy¢#-Šå+Mþfö™;eT#®˜â jÏPõuÃÙ=…wã?®£7x‰Úv1sgoaoš“­pÜÍ—0Ïi@‘4ìþìó"î}žüÇ­%û¿Ã•äã »‚„øá? ·z,kÃ/¼gzTjôWîðçñ*9dÖà·{ðœúFþÜ $1˜¦/ŒENyÔð”[™ÕŒŸÿ*?à?òÐÿê„5’¿/&“ˆb ®ïG=ÉY¼æuP½Nâ½óa©£”VÇqVC@{–ãRߥ‚ß©N·0»Y×mRAh8Ó·}±yþ#‘y®;Œvi®Ù;ï•Ú-â³Í§bó ýw üÇ'òÂTæ·T*ôöÈd+ñáæ;ðŸ#~åGÕm²ùMÜ1ÃÜN:ZzÑ@sä…ÑoŠ~CG¦ÇÓ?q!ÕˆëèyÛÇTÍÒè÷~È.äž[E¢ ýKrâ?¢·;G§“ŸôCR±2;² *ÎIÅyBø±ðñ}ño'A'[X­òxøx¦ÝoTsÚ-6ÐÁÄÕ¿}‰º >¾ qSÔ)†ñÖ|‡ºl‘™Œ**ÙFWò£ ŽCøôÔÖPy>ýž5Þìf¾#jŠB–>ƨμòÂ×õrü×>K‹¼Ñù¬êjÖ[õJñQ›Ñmw‚¾C¨6_Áü(mù‡† àºì“Êwm >>9USí ?=†þ@É­.Ñ÷Óýª µÅmÿ¿J¤•$\@$SýU 8V°¹GÉ.£†(GpRwáx®}üúYušPï@ÿ¨#X¹:ä£yådðÏz[¼€ïê›äü®:aª?Ÿ©ùé¶å '½‰¦Wƒ˜ìBÓj[·°vGb†NÏØ¢¯°½ò¿þ_7e8MÿD7:{$Ã#uÁ^FG%{û™Tc'Üá*`+cͲ›ÿ¨¿j£%&S©Ë>Øê´\g"rÂ;pT穱“¯î¿J — WZ#üèßnýf—šÚS="R`eæ‚ áÌc²¿ÒœXN31ÈÊ`›l¦f,~ø$oG/¾þ ÿq'”‹v¨ªnkĵ­Až¶ ÿQ‡É)'©›9Æ?7ð«éðåx2°0.Ù¨{‰ÍÉF%ÿؤÄÒ󓤦æx<™Û]¬kE®6Œtqr­Á`~ѰíåA²º¯¼µKð{}ùžRLHÜ­ººÇþ³ÕÑðç¥ñÛ ¨<$Ká?s⩱Ho‰È“+ì‡ó=CŽPÛ\LŒ­“/,D=†õ£©©\8ÿ|<>l>Vè:OÖ•z¾÷0}©8Jþ±5Òf™Ëôç ác€m"ÿ˜ÅýI«Í vW|´&Ø«ä)ñ ƒQ ß‘½Áî—²v}l–t¼´j;l<«õ7óƒÔ~L'ÿ8v«2Ï-èMy©/Æo_àì«Â-5VH:Ù‚þÁ_úY-±ö‡ÐÙ^%KËô“W²#j©ÞœÅE¸ûCä|MÄ;çryéÞ“3î-SPseƒmN ’S€Ê¾âØûµð/ÌèXÕ9ô¿ê‡?¹D¯Úà uóÉ?®ñ±þÃÅŸ?Wök/¸Òí¼n¦Oñ%lto²„Xô)éM‡Ü,þô¼nðÒ£¬%XíÙÔ‹Á³†7ûs5ËÈ?\ý.Ó¿$@HžªnDc9E,Î>õƒ“©JyI™It9·r UWs xVз,f"êŸÁìm¥?„7F^ð!u‹~Q 剛DmÊ%1ÕÊS¾”ŠÃùäjCÈŠÞXóá?vƒ¯ùÓ¿}(E¦›sÌÏÜ¿˜¬7€e’åÄ•Ÿ þ?æW¨SOBô»7—ɵUâAµ|ù0}úÝʬyU)®hOøï½]=äúÖ0|QMÀ¬óhD}áÐõ?ÒO÷Qoë ˆÂs‹îz/­“s×aXNi¡¥!ž\'2ƒàw4Ú3r¬A åèiawq7Á#]ç¿ZÑŒ­¦Þ”¨ü0ñG#žóÖTÑÕ6ª‹DÕ»ˆ­ýéÒÿEwÕ0ý~E/í“^ûd—Ÿá§‹ÃÇš@t8’H¿õ_ÄmíÕÿxÍï”ebXWabäèD•AÂ*‚žq)2v ¼g#5®M±)÷Å8íw\÷ÏýŽÑÊð]‰žýX#/õ9A°>ÚEѰ;T­Ål¤Žyü´;üGñßN°TéÕyL$‡K^Äõ@ù [ÜÆ5'—µA>Jñ~mæïSAØÏr– `4±=ÔúÁìjt]gqä!lóºáÖÀäáÔ^‚|Ecôlk ”˜ìÃlyï@ìïSô´#À¶Ãµ…??Fe\tsWPÚ7o,`w” £²!æŸ×:°ÿ ¨3 `u{k~&™mî%'h~ƒþ‰E#ÍÝüëHX¸œãnü‡={ý1í|ð円'÷…?ÏGÄ~N^Á42GS?øŒ´9éW¿Ùš ;±Öô3ßqÆ5Éz®ÁôçDÛË Aú'ÖRZ«ƒ 7­ïÆlÎ&!j¬ô‡,Œÿ)Ê4ÝõàaoP ¼¶š3výock7ÊÖœÌgrÄ6h¶® ~¥©^ÚGÃàm`€é)š d Nð +ŽÂF7¢ÛHY|Ñ>úî1§Ã-C¿ûæc>R#ðÏÕôë^à¼Þ j't iy~Wƒ!~Ó¿¯ÌÌŽxäM™ÿqÒ\ÁäßàmǬ³(%òtæšó˜vϸ¯0œçÅ]agþ㸺V÷}¹»ùÏOxš¨?ß@­äc3>ºƒÔ0Q=Ç­ýô Þ,wQ'Ú?·ÌÔPޤ`½áT-½bbAhSr~¾Çÿ©ùá?\vó;ýÛS9Ïéï~g,üG°ªqôO¦ÙÑÉS¥²–JwèBWÐ‰îø«åbÑÝh“H…žMðæ5¦ž@£†‡^*‹þøFµÏZI°öu¼Ó«ˆÅ·‚ebþ‡ÍJL,¾G‰9‡¾áoÊiüGkü†?r%òâZà%½úb ϧ‘©ìÊ1_D Sý §–‡¬h–ê3œñéƒX|t±:Èë'rÓªx·Gø˜aàÏ "ü‡âØ{$XÛ[Äï¸ØÂ[Ä)ý‰s£ßÝE”Óö­˜úGþcÖ¿Ñëû åan,fTÎëhsÙYmVÑžUW^Îu3}‘ÂÿæÎ¼SvÓ1&| 0†+Í@fÔ‘¬a±Q†7¾»1ƒXó&Íؤ›ø¿ƒXé:ÔÒmÕ¤U#S¬Øµb¬q…=dÃeÀ/¥aê#NéhÉ”HíñBm¸†TàvÙÐ;†¦¿ÚCÿÄÆÂö®‹±[I¥/ß_–?ɱÀMQͬáoµÁ¢‘øÃ-äLç‘ÔeíD¨¥Bvx\FþQÿg3æËÀj.ßÏ7Rk§7£“íC<»œ’ÈÙÎ?4TK ±X‹`,2Òozsˆ3ôÑ>“;õg½5xƒôD<ízÃjÏñ§AÊU:ö½"žïf~J„ÏJBÙe²3¸7£Fˆþ%?´†äy7Ér‚õÃß–k`¼?Áס?¡ê0Q½Ì ²{Á¤Rƒ3=Í[‹¯£ŠHgF;Ñš]Cå4N¶…aó;™Ìт̥ ºÝžVi¦Šïµºšô§ОPR…sÔ^ã÷× ’”$Rì»6ŒHj ÜPA¼~qð«Ž0Û5a¤—Á4ÄEÕ…™ãY™2r„®·©@Êšr‚_ñÝð…«ß^8õš,Œó…´g!$§Ö¥#YBZòŒåt¨zÁD¿UôIŠÅïO¥J9üÇ Ô€óñG¥Aö¡¿è¼#ÅÔ±ú7,Iy˜Ô2¾Ø+#Y•©èÊÕ…”'ýwUÇjk.¬·y1l÷`¦³$5㡟Hfí z¥Ò¯õ§}¹­ÞÐß‹ ¼]±C>¢€•ÛÑ­ºˆaÔ 6±Ò;&2p3ýåÊUtáÉœDwÓ”gàm·É"o/ô?á?r©Ûˆ ^É%Ÿú'EçÏï ùQÒ¿¤þ£§~Yíx*á?îkÑô÷ôE —ìZóŽMŸ~•íÑdºQ4ÐóªÛ™óø•ü£ºh‡ ^OëúÉÐ?Ë¡U†š/Š3<ƒGß"ÂSïèMÖEjg,öq=¤æ%ô•¾+;©|î@>ì…/²ítOòöôèjÃßÏc§ã’ãd$Êm  }‰`ÿº…þ»¹±óiÐàùb›HO,á 2(r8QfI”I à?‹¶¿ Á üËe¹ÊG*P>‚ ùÁœï$Fi…Úv›Ñ‹­¬‚›cg‹_ý®VãçÊý´âDôv—@_ð´,ä3YÁ^ªEÀÊÞÂÆ/%›˜ÎiØýo§ŠüüïôWB«ÞÇ<Æ? å'‹ƒËµG·ÄFdAc<ÿ›&Ä|l܇’ø°upXŹÖ}óàŒ6Ô„ƒèÍ.ûcå;ð;Sò«@˜ƒ,óŸ®VL½¾¸Éé¸ 'ï¹Òºø‡Èؤ¶DÜgPp•F»:r+¹þî^ ònç/ók‡kMñA¬N•£“L#rËxXÿçä À¯î ¼:Ný_ süÇgîöB0±Ôüå0’‰MÎwòŸ î×Þˆ(è;sãVÂÌ"Ö~ïÓ…îW§¨ÿØc4ÅLç ’ö2ŸGV³Ÿ;T)„þê+ïÃpÈxä=ö”øÃð“ð×Ùosâño¨}Æ9*Àí—¢Òù"•ñáÁÂüøN?¬ õÁý Îuž’þxôÙÆ y4¬—yŸs ¼)/\òUìèq9™¨ú8])*óÞÓ‰e!äIršøè¼)••ŠêXN~*üÇîF8ñEd¦ƒT}òŒfOpº]Tj”…_èIe÷(ókg³•gðæqÐïG¡–Äpõžû¬ìÕ «?ßÈ`þíDl|ëøôÖh¼c'&-®c¦ˆ5%[Ð_4óQþ5Ã*ΰ%þ÷ ¬««þ²¤ÚWÿ’Q'w©Œ'~€†et$C\ŒŠÁ4Ô±ŸÅÃ5¤ó8Õ‰ÉKꙺ•ÚLBVøšhl/=üÞßü¼àݪ'||üù(âÈ#b—™žùQó¨,]GÖÕµî]k¡c¼ÝQ–ùQ»è3P}ï7užÄè¼)ƒŒºÒúØÏÿ‹óÐEpóYý¦”Pã;ÿöwÛ¿Ôj3/j°þBŸ¨Žº¡DÓ¢ëþZdæ–úËþ»^Š¥¯C-“ìfŽQ^TÑ£Q鸇¹_EÑŒúºµÏ”Z,Âd0éÁÄIC¨‘ˆN¿Çëôÿ(>‹Ä'õaZ1ýw£ë¨¸¾AZÒxo4æÉœƒÎ´?‘ÀQ8‘Øë¼Ä,5u0á!-²(¿“Øä±x]¢»ôÔa!ÿèFŽÓPVäÏ‹a˜?8I™Ò÷«ÈÎOÇ…îCž+ý–¡!6å4xØ1räNÄÿyuÚŸªE+kT4‘¹5Ã{<&‚€Š)^2™¸ µ…wh9–46gPÊX,nÁŸÿ.ÿx¦tSw‹4òøÔÖÈÍÙwãÏ„©ÉÌ_›ýÝÁŒÂÖ ¬W´ûd}Ñ=´‡¡œ£C}¨ùóîæ“÷É l ­w#žD‘t±Iõ‡XþœBk¾Þ’,?+µDQÉ¢„â?æ(qôŠâ<^|ñk"ߞăˆVcélî5 Š UàW;ðq^\÷4t/}À¯J£ÆX§ººÿ³Õ±ôOlÀSëHu·ö!5¾äèSÍ‘ôr*`ž_/`."ïÒÈ“–ã?°ä2=üÇâÏâMeýŒhìÁ®AYÿè þŒ® øûó¼@<ì}yøó ¨^Óí-ô“°›ÍCøûZM<àYžÞè•:¯=•3¨‹ß‡EïF‡ÃÍQ ýîbYÜœHýáÏïã½.á[oiõrÁvhˆC<Áç‰wú {Fþq’,« õëÞò•9™÷~ÊZl#Í÷ºj‚\½Å[Ž‚‘_%Lj7Î{\UÉ«v¿"Ÿqµ¥ºÿQýU6ª"öYT$~Á/Õ㼦7J:£Ô]‹@Ì`üQã°s=¡n×Îp¥xRc˜7ÄdÝtmºf¦þ¼‡ÙžJÂþL÷£J~“é›­öø&Ë0gªhœ¯(¤v·<ü‡Z-¸Ï)ò»M^įZu¬pèÌÆ³Þ¦<=D¿Û Uõ`«¬ù•¬3=T^‰¬ƒÉ|"®:ýÇAõŒnÏÿÁ37>ö¼É¼(k'ý v›ß̤œ]<ú'nß/nm”{Xy.Õ!KM7Þ–Ø<‰#`£ÁýÃì<žÿ§Oò©›T—nUUK‘)ü{ ÆV_©õá:Zê›õæZKVña~m8*7"’dûKþü…IŸ G•™ ôFF8ñ‘Hy#uþ§©¢£vC_ü—ú«ZÄÑíU¢$èúq£‡¨ ~¥k^ð_ÄwQ™(Ø=Œõ*yPv½&P• tç°OÉ…­ˆô"Î(ê`iÇ‹ìzXÙ(3õÔX¢HÄ ‡±òeˆó‘ÉL!ƒÍ΃I@äü”¼käïÍEô»GÉU #g&ï„uŽArÎXfÔ„S=C{ˆÊì3½±‡¹Âÿún÷תò„¶‰¹ŽÕÈÂgˆñ_·~ÆÜ3ÖãCOY'á©Àœ6/=šô7kÚ'wAd%JÎ3ÿƒsËÅ)¦’_ÈšÉà<Û9ƒÁDUždHv墽3ýBÙdVÕ¡;P d»¯‹5]µ®ˆòÀ;v¡¥nw[¯OÍÖˆÀüÃVz}I_d€zýò¿mJ"½‰ð'²q;NìEÙMê,…ê–²Fªÿ¦Á|‡uÙBƹoÚˆ“ICÿ]ÿ+Ñê€!¶&O;_( .×O›|ê%=š˜ý,ô™Ð •1w‘„‡ç·+M¤2Š!ÎpúݘøÀ\|ÇBTU³ñçK°çáû'Pûqÿ1× o®“ÍDæ,Xñ¼h»îuõÇŒ0iÁµß÷´fT»^5ÍÚÕŽ3|-7ã?öËWr0ú&ÍñÌÊçèAmJk*ô.ñ]©P|Âî¥Öa#[ˆúÿ°8÷'Æ|Í<ã´< §ß T)ö}0=d¯š@íûȃÌRzÁiEnøo5‡k-ÛÑ_•Qº«ýaz¦ ž SXF:6€nJ¿ur…ïf~fÆŽ¤+áX:œ?&—³ùóEÔó_‡Íi ߉Ɵ1?êúOž´(æE1D$7´ù“òÔyÌɺO¿‘)ÔŒ§%ÿE5{!*þnÿĽxÉöõÝR]Ýww÷@pww`pw÷ÁÝÝÝÝ]‚K \ƒ'8 ®Á¿_g.'B2 ÿï½wfž{“À¤Nuu÷–µÖÞ›lx.¾¾¶œ†®0¯èï¼#¥Õ‘è¥ÒõM5ºËÏz$ôWé¬Ñªý¼é§òÏ6äÚƒ% míÌ/f3#Ïâ;žìãt¿0Œ#Nÿ±\å‰hG´Ò“§î¬8dq,·6Ãõ|f’U&½gwLqœcªp k¬ÜC­côWsÌh¼-Ɉly}3ªü+ók «Að+C-&ûâùåÇÄóíµOÚXýº¾0ÀÀdÐßj©ô¨Ø©ˆpÉ‹>¦žk•ÈC?ëTNÔÓ©“Ô«º?Ó:šˆAúp­«ó~þVØß¥×b•fRÙ·ÍÎ,»g‰ê£ú‘yØõÔ=°=7ôeZ1žºWÍ©w&ʽO®QÜ¡3Q}_zõçyºˆÕ‹§*D_ÆÆzD4Ë'4»b_lË[¢·µXùKXÖ ì6¦ÈŸYŽ â6,Ñ;ÜÎP¶Ò½ýìž=õ-m8Šýî´ Æ=‡ZÌÕz`osë´ð²Í*Z%ªí âð.<߉`c‚.˜Dö`»§Õ-#²Þ Ÿ8ýUlUc—‘Ôõ䥈šNaÑ΢ˆpR3ñ‰@m:Úûá×&‘\IÚOV×Úð¥bhõƒ)Ôší?²âªÃíäÌ«Âf"Fç*©1µíRûþDŠ]°–…¹îÌì6´ücó?Zˆ[œÎ0¤ ò=ïr v÷ÁX /ë‹'gF Lï|ºm¼\‡ßÜÄNkÁ/é9 [| p²‘õÒwzÄÎ¥–î&žÃƒz·œhžª€ %¡SJY˜³è%2°bðgy“¦ó\õƒÙFu_® š ÿÕ\$[€]DÇzÙòg÷˜5H×…¹G¬9€xa‹Q]û+ØŠµÒdb·x2Âï'º+g‚—ܤþ£%õƒéFÛÍñ§¹~(c¨“w¡CÆqzYm‚ÑȦréŃ­÷CwCkvÿ1Þ`¯±J¦š½ ³§ò:ñri˜f‚“%ôASôœ¬£1È”Ý_~':W®/œ\„)¨sa±fðü.”ye)QÞûY‡ùç]Íñæv:¥Ç@ëô ¾º”y×¼ˆ.«™SU~C3o‘ “ÙÀÚ]?eú+âÆ…†Fýà{1Vg8üG6k Sè{“m-ó¤+Ê ú_1óà?Þ¡,XÃý±õ»¯© ô¿%Ñï¾C!_•§ ¹ü¨“½î3‘sä@üzûºxàäGgÐ÷dJI&¼{R3-ž÷LÝV´"?ßJ]ÛC1”h©³Ál6úïjÌœÏÎ&{5„‰ßŠþj!ýwsYÃäF¦¾OÀï­2?óF&ŸLg"úÝ#ÿȬžT—:Ÿ õUBçOΡo¾+Þ̼§õÕWë}ºSݦ»¦ŸÑ¾hÏQòYYî¡C ¢€9|#Gx«G¿ZŽŸö͉êð4ø­}Õ ë.e‰ÏÑ¿¤‹È¡þPψ6¨¥ÞSQ”ÙX¬‡Ô܇¾Oƒ<ÈUoD¦qˆˆ²šÛZhúŸôº /ç±}_Dô»È?"2p7ùG-ø÷tX©;Xã\Ô—ˆÁ™lÃyT?žqV£hî5oWÖPþUä9)?1˜è$qòylqClÀU"ê Dà­±錥ôÕý*þiíOPŽnXI/2.Wx„¬ø#…|ù­‘Õ‡ÝÊî·n÷/)…æìó?’†±¦…òù¦È†Ny.Yà ¬¾=Ñ»<+¸Òq*9±œ+ˆîN®}ÙÉ)büÎTP\ÐφªßÍªšº‰ªÆ…,«>n1@uÞ¿³üÙ%ãQO¿mjŠÿ‹•ïÀ}É@˜(ä>/BÉ?Ö€_Õ£E¢Þ!Xß—` É Ó6ÄWîÃ%ŸELÿÃbüñZ¼`K¼R^±ê—ž‘è?/kä‚?Ø.u“ÌÇ;m„3þA§Û>Ô«§+=j«¢†Ž‡í/B4¾X–¡^6“üûN,%ÿ nlt ×I²½`'Ÿ@€VRÑm×Þ'îMmLÿ«Éøã´h»N‚è´ã~C5$Ø]y µåÜ&ë-Žb gx?`þ ›|#›Ó!ãèN Çj<\=*..‘ÆÁoÇ¿mÇÇ_¦þ£F°õ¾ê»Á÷.ÃŒõ&ÿØi,GgµÑ¬‡wó§ÿUw"øó+x´©h‘¼ÑHÕÀ/?AÝ5À$ÙEr\Õ•vêPÿnÏèÍ)sÀZFâúêÛW£îáì‚B-„áXÿñ–üÃ¾Š»Øãø £ø¥yèwWÿ|„•;ÊIí xîfž×òoçH¹êoÿ1ÑìF'­A(xϱæs-«EA=ûœ n5ýP:Ò+Æ—ùç6¢ò÷?¥È?üÀ¯ŠóÖF–¾º‡|g–w¤@_[Ep0ú0Ý; Dxƒ¨ÿhÿØŠ³‘îßé—›'Býá?rÂG“ÏAĦc!è"Žuï 9î!–Lb(t5¸~ew5þçF*óÅ9Xñˆ·’ȃXÀÙä¸=ñLãPÉf'‡7Á3˜gÀÓšÿ^_«¢Ô?é…JÉ“–¬á9o÷K<Þkp¶¹d\3°¨«ñ™cÄ)òÄ8aìÒ`ÖÌ~‘[:‹HÚ‹,+&²±½ ø†ÿ(Šm:Œ• ´™÷¢!5%7ôáÖÆ¥«Ññœƒ ^ Ñ[X¯ø•—‘O\J”×ï€ô´Â 4C]Ý/³ããëüCñ[À¯ÊŠ3Ü…XÓdò)WZ‰÷9¬qW¬ñ6ê&3c?'…ßàÎlÄ á﫱øâì/3ßÛj½ÑzýÉi{À™—ãš[­¸b}_‘ÌBÕ¿ž™—ÈFª3s£&*~+#\Äj™ˆéí!{±­ÓTx§.`s£ÉèØ£5ö]5WÑŸ ù:=s‡l ÿ1]¦F7 £~Z6µ–g ‚6*Ø]y¦µ2Æ‚ú© ]#d8·{ðç›ÍcØôFàM‘¾Ì¯]…UîE‡AO²£èðöWÈTu^0âêÕƒ­çnp`×y2ÓK€®šr®=¬¶Ÿ|‰þ*5Ì 47Ê5诞á=ê`ç‘Mµ žeµ%;PVR©“ÈëÇ‘áÏ„ËGm]4ê?*“gäd&Õ,´N¬¯9&XÙ@†N¡íJÁ'µÆûZ £¹‡éƒø»Êyí|åqÞind’Îdé‹‚Ú*½ádW@šz€Åö/F ¼Ÿùƒó¨?/ ò×l-WÃI”“×›Ÿù—ÀFªrG›È—z©[&^·.ú«5fyVÞŒJÊŽ«1Ÿ3Â*€ÏÌnæ•:8ÝâD‚Nÿ±Y=©_ÄÛú«·éËÎNÁéx˜e- ®§>üÇ5ð«¸Ö*ªiZ ëª!2Ñ`r,Îh Qd7qñŸMÃåoó¨‡@~.ýCÉ­fsþôóO#ö5•ˆ½˜÷1JßÍtÛÒcþ‡¢?¡&Ý›ÈgEd½«JTæ1(`%>(墋8Ô»vV_ê'9ûâb¨ÞCëõ[û4´bD¡ é¿Û€Øq0óó¨T_ñ1é"Ø‚b«¾ B+jÌaϨÅšng¥¢¼KõÀ¯F‰ElÔn<À\ØëH<%éô ¸Ô›Ú+½ ON ,ò)lf5ÞåÒXå F6Ž“K'*9 Ë_!³ιeÛêLÖ²Ì(‰½+µ YÍar°ø¤Ç¼½±á_É?BËÌ3«w´[Âîïrþò—È rnÙÈ–òÊOø>ôß]U\6ÀÆwBœ‰^5)8o¡øUàWÄî Ц¤`4P¯ÄX· ø“é\]-:¢o%>¿ÍÞ6ƒ] !^¨‚oÊ)Îü‚ÙuÓFˆJtT‰_°þµÎt¸~õ¸æú_­&¾|޽k þ‘Ò’5§sîé{²¢¾2:wÁ¾c*¬órø2\ÇÙê5ØšQø¼™Ö:%~3¼ÅrÙKî&7«£ v§oiµ°W§ð—È©šé߀G9úóY¶Ââ½ÍÉåè‡6l8lÿYŒ÷sí¶ÿü‚—ÈÈ}ú >Ð=a¼=É–{SkxÐXNw%µÐX%º¯‚=¼eõ7§Â‹˜Ö*Äë`ç?¢FèWÚ-g /çrU”?Ô1°w“ˆ&Æ¢‚ªK¶œÛ¼g·>šàä÷£µ¬r5*&P×.ȼΛ­¿ò³œ"sóë½R<µdÈ{È”Ms'hÙœùÏOGܬ®7ŒÅ.ªÚ—0ïi¬C?ɸgQ98 _ç%Z3×ëŸW¼¬ÕãwÛƒ½%êÎF¾$2O*ЖoøËÅx¢eøU&æªÆÏ‡…_ù+wÔäF1¬;s?Á™òR)Ó »É¨JÌ:›SYúóç£øÓóx­õd ÙáÏj¡UÖ&£â¡_ò+£Y˜ŠýB0ƒÄk=*Ñóx_[Õ“¼#ØrF¼ÓÆPüÇAÅÐkã²Â_¼Ã‡ÙúÝ, N°ˆWˆ6[/o€ÏðæD¦â3—à ‚Nƒÿ0Cœã"æGÕà©HfÛF,Û¤àWûáRb퇀og3ŸÒK±"Ö¾ ù‡ V¯">d¼,oäî!Ö»®i þc"øÕyN´AˆzÛhdË£9ã—仳Qœy‘Ì£¯c ªGêÐËÃÍhBG °°0Ö6žœé&9Á}[bê|‚>9iÄ!2†StÙlByÒ¸JŸ’EDß>x±«T¼UD{;”®èß™Kø.¼ÝèŠß„õöááO°ßAæ´£ÿî8|íhîÂ0üG%ÑÉÈôøÕ8j/`écX™ÁsŠÃL«ìô’™ å@)jg>³¿Ö –ƒt”D~`®g8_©’'7‘*|ù]ÖXMô–îÁTñC¬zˆî‘*u„SÌxó9ÜñÊr¤á!*R#úóz©-à»]xrG½”oäu3³— ßÍdÏxbrí^|É#r®ù̯båÃËÙøULù¼â$ýK,ãžÓR–Hi*ØÇðäH2ÿ]·Š"xψÐîË&et|¥$bô ð–éñE~Ä výÇC"ÎUät]ᑱ¥ZX\÷ϵÇiUá=Ú`'_Áš»°Ï¼d ð±°zÏÃY /”½9× =e˜¨”Åd|ňš T¹°çƒø­ÍÆøÁ†;}·?À*Íâ4Q,¯)j\Õ‡Ú?1‰úU; ~•ÛÜsßH&SŠãoSt¹Tlד¢ÉY Úþ¦/÷ª¼Olöšþj§I¯!®‚0-'6Ο=Ä©ª†=x”ŠòÚàFh“–‚Ø¿å®ìÆ.Å~4£Ê/–©ß~ؾŽÖj‹R [©ˆ×Çâ?|Xm«@qw¿øU:ÓPUð«?©PÌêTîw½,ŠÞ0$~u„ü#.ydT´áT6âÍgÀ¤Ä!ãèB÷«¦>)!L÷_fs&«Ùú+»;ö™l¶®XÿfoñVüÊ›g¬×7Œ¸â™\oÁÞ?“UéûnKé ÌWLY«ž÷8Zä XûOè¶ëó0ìõÒ‰#pûÞxµ¾2ŸX曦â¸Ew&Ÿp¯"™näÓÉ?ÖØÛ øç±rLóešÎ žż~uYž4§Ñ£%?õƒ3©å|Æ´òùô'LIÕ÷|£dôOüŠÞš×VÎeby… É*«}ô°[U9ÁZèwÓq2?üÇ*P§äH™¬{‘ª{Ö{r· Ô…$†¥Éa%Öy~µƒéu~ÂÇé?ÎPÿqK ƒè€uªo\3#;Š€ UFàmf¢Òåµ’ŠÄ·äL‡åIæáÎ%ÿ8bÚÓpcò¾Láý‰Ìà#ÿÈC4=Ãi7_Q?ÉùÓÏóØ×/ÊEµ$¾¢‹>OÏ ¿úÿW÷Ò®k·Ôêáˆ-óŸÿê‰â‚Å€û} |QO¥—¥>ñ!}“›‹´¢üGÃßÚg^-öc(Àû¾ÐhGƒTjKÍOôÇßߢI$£ŸÞ'B+ÆaþG½!hÎf|EüHCt] S Ä&_k>ž**¼J*}e®Ù]{¬W KÈʳå×P“¨¢#Qý®} ‡GøÁøÁkÔÎú¹/EI‚~÷ðÇﺓ)¸sʼnÞJ`ÛÒO"J3=SèD>×Ïœæ<1¼…g(ùÇ>ú'¶WøÝ…ð1ñq]©yéN]ý Dø(jt°ŸûQ Ýà®,gÙÜÿ®|vrúïª!®yõ°q¨—˜‰ø2ŽüþjÜ–Un$fö’i±+ód-üS ¢ÝÚ0¿keU´|»C¬wU‹‚ ÏÖïnaÛ&ï7ð{¹—#Ô<3°«eš—Qc½#?q% ˆmÞÇßu"?›bü© ¶âîë°˜Xû‘r üÇŸrÕË[/ªpCkpXc wq•±?±®Û›.*~èmKÔŸƒ¥˜ƒÉaŽ$V舞ëˆÝ<⨀. > ýÇPùј„oÍ?‰<ãO2ƒ:ð;X/:M$G[æ×ž7/ ß-ïñ'¹GT¸š¡d±ƒôßõ¿zOÜd×äF3U£• Z^â;ÊØÅLÇêJþ1Œ|Ä“úó To\†uèJ®Â`ŸPWΆ7c:ƒóz «“©\uáYF²¤‚ÎfZGnüDsøsêÅc2¿¶ õÞÔÎÌ«c¾13›Y‰k^óTï³Aæ™iôŸÜÔ³à*ÝÈ{Á¨\f:Dz€þšWYë«™$qøÕ]üÛéÎÔ¬õèwWä™Á† ÙŒB–véç‚ÿï™ÔÕê çÉø)ÙþÏõQToµ,þ£™¾H/PᥤÐ,ý"5 Þä©…¼ðûÊ'­ (ab°–ŠÆÝE¯¢VïÑw¦<@EêÏk:wø[a—N‹Ö´Me_N¼3dÒ«©µÛ «ú­WÖÎÓÇGhŘøÛ¤àWûQrÏ!.úè½#1é¬éy*AÒ3 ¼˜؃'ìÕîëµ±nìÆƒwº:¬X+,òPf[åŸCö£çÔc·úA4 a­·-@¿ûI#FN‹}Þš€U/ó7 ¸AWÞƒt.±ë¿ÓÓÃÕ_ÔÖtBåŽâ,7øU>t[§ô»ÉPâÚ3Pã£ÒÉ-`MÛÅm=¹š6Œsü¬lWŸñî>a?A­òcÇ‚ø.@…KV‡.!}½Ü&.`Ûv¡x­Hþájþ‘EµPsÀ&ƒ™À·!“©Ê„«cØü•L¸Ÿ¨¿‡yè‹ÝëJþÔ›Œ'-hh¢‡¡ø]è¯:á?²ÙµläV¾¬ÕŠ]&@eϯ½ÄÓÓ4c Üw >[¹?³ù·?1c1^ý↴×:ŠÊ¬‘îä‹É_î¢ [ú´ûüEn¤{¸!. *ÿÑår2Ÿx«Ã²6÷†8Ú¿ppZùÈ?VcÉçÀ]Lg­LôŽïØÇü¨n–Ž7iNÿ«ù䇅™´~ÿv<,Øj£[ˆykÏ´`¦wA9ó§ôÃߤcîvÔKþèwçÓ××ruL`õvôpò†ÿÈCîô ßuNÚ}vÊèu‚íÐ!Ná?.Mõá“—Û˜ÿq¶Â /öekEjÿ^ƒÉLfÖë0²qTÙô@|•üè ùϺ þ£²Òþ#%¹Ž¯±ž$«Hi”¦¯!Lò³¯¹•H?1Œ|9T®Ù©ÿ; ~UåY üGJó<þ~ªt Ò?ñ©²]»CuÊž§fL染Iͼ`tmè•Ø%ï;j7cïs »êêÔʆ¸¯,½gb™Íå "Ž*b¨óz«ªé’̸ÏT?&·Ç“þÌ?O„*j¢•Þb5ÌÇZ{š°uþãúÝÌ<Él&‡³c§]b,“ñó-ê1ý•°gŸ÷!ó¾-Nš nÖz÷~3dC%à?Ö8.Òÿ*©5F^%—kŠîØüã:ÊL;ÿhEüÕô_é_’ˆš®UΓù¬ä sz\ˆä—Ÿ*÷à?®jíôez½€îTW”š`úhý&œêÑ_~ãŸþà‚r‡î :"_¬qBQ\/GÝ÷ytn©¬ÿñ{õçÙ4WâÉù¢,oüYð«9ÂP³i>¢ê$T& óˆ‡;ÏáŸv¦«3Õ|ú0âq{¦xSlI3˜†‰Æ½ Qéq¬©?YM6li}Å?-ôŸ¿Û®yé± ia ï±b}øà¶DÓ“Áæò) ä_DÖïÈÅ:Š?ÂÝá:e8‹¥©@dé"/ ÊŸ†R|}]ð(ù௉aøªbø°´R?7Þ[+KÄÔ…Hü>¾ÌƯ\ÁO©Axba7ã?ò¿Ìò(•Ø›Ðï& ³Ž­¿òÕñKA†<ð‘‰ÐíüãO#–ËNnW+  ¼&“˜>Ëtìçv‚|M¢¾´dI®©.ʵ¥ø£ò`kˆù×µÅý ЦÄ|éäè*– n2+_5#È2ÿùv ýršÀ”¢ÂÁV¿¾‡ó©ÉîbÃJ´'ð©ªÐËÊ?ÿ%€÷Yˆÿƒ  ÓÊ„X²‹Vþ£7ŒÇEP•êä–¸š4d·àÌ7PÿqýÕ)¬k8j;~Ì ûÛÿt^61’þR?hן§Ã¾¸âö±Æ\®x \Šfοò2ì£~𠬉ÿ˜ÇI—ɰÓk9ƒ“Æ2£uþÜWëÄî}ÐÍ%ãZ€&à¹\ ‹r|­µØzŸºÌ?߆>l4:ã:<;§ØùJøŸ¨Dò¥CàWŸõëðöüóAd>sñGÉfZ“ |•¾Ö jèR§1ÊÜ"7˜ïaU6qª=@؃R=ç»ÙAø?”Öê,¢€Ù ™Sä_2­ˆjä þ¼>¶tÚƒtÉBF“ÀÑÂ*ËâEoÆJæ NïýÀ.‘M©Œ@íü9e›vÏøÄS;܈e¦2ºˆ2ä=ȯšÁŸ×¿2 ðI·©i_ÈüÛDýƒLͬLþ×ì~Aäèvqu˜‰8ªøeoYPè2¶•‰ùQ'ðGÙÁé‚]-G3Ïqi%#­V[óq‚+'çÏÛ²™ê³'â©3ÿØÿ°#ºÑÜßIÆ!±ØÌä Ÿ<üÇ~¯&¬Êk øUBG>kÝ`*Ñ~s{£`)bŽÅfÄ”½DhSrB<–ÿÏÌ­îTOæƒâfôÞG›ÔãÕÒ¢ß]ªÿ€_=¿Rìêaø\j`?šðV²ÿþ1ýÛûˆ0ÇOESbûtô¿:OÿcQOäBÛ?Ak®- ú9Åð±é•ðò×è‡ò—È[ã):âÁ³ƒe4&ês#´bêPrë]QÄ'†nC$^Knî~Ñ›p÷Ï?ÇG¹R«XBÄ`ƒî%ø÷ç5½²1˜H÷˜Ø ãOXȲd2#¨?wÊ#k9û‘‹µŠ~µJ&‹dDGþØô{h:¶ðÛ]ðÓX9¹Mf´Ÿ~b*•19ÜúÁ>Z!l¥=Aã1hy>p¬ x‘‡`kÏÙŸ·±|k X› ùGQj&¯éÔBaœã7eê#J³«µ°;gð_ ±Ðåðp©x³\Œ¶ØPoüܲ±+¬½‡÷½Øåeí^ð# ø)ªÓ Í$§º­·ó«¢ø‘¼ÄåßÈ [Šnú#˜ïú\ó`¿ÕZ>\F9~!®¹뵋Î%'©Î.^ëOCç¿Ö°Çd æŸo q†g5…lm¤Q™Ï¿F°§xš|Êjka(.Ã|ßfÒ¶I¾Pc.'Y‚ÛÎ?wO3:†˜õZëÈÓz›¨¼~kù‡ó?VcïïÓ¿}¹æÈCþqEV!â¿ÌÌç~ÂÚ_B…ºÅ¨«× ¾CòøÙgtå*ŽÇ¦Ï“š˜¶fË—y¸…Àr–[žðÓé¶òžuZpwÞ“{,–—ÉæÉ?** ÔÉFzð¼;Ä÷ed*‘ÛHÿ¨Býyc4][ñÂJOÿõ™ C»Q+]BEåAF³C¦1Ÿ vë/¥±ÉùÌœfþù#vwœç*ýKvŠ¤ÔæM$ÇÊ…ÿKÇÄxÌ•¨°R’=,`®‰þêu,{è/Ó ù=¿§;dW»éEþ}E+C¸ÈùVIG4¼d:Àg]zÅôßnÖuë*Û1ø•ðçÍ42.ÏÁ ¢Ø±Ì ê?Üõ{t„èMv?Žë¨YÈ1ŸJÆ2hnØÝ¹¨ÿX䘧RÌ:&½¨šlGýÇ!36þ#Vh.HÙU„e9á¿ôMbòÀ¹­”j¢àÏE„?÷•rSm¢#ÿ˜«w èß~KIÇìÚËÚ%Í—®Z‡"¼’ý^U^jˆ£cÃvV3îÒÃ73¼ÃEÝ+šHtÑ·…Г„·x-;Vtþî¥Ë#ˆœjí"ù‡?^ªXÎ}D„®ÜR§Ãt!šÙƒÝlF…rm"”¿ŒÛ P“°^ËÀì{ò¿åÌ:Þ¶øû5Ú>½ ¾-8Ìq~;xu%c+¾'3½¥®rÿ\Ð+X´w‡Ã˜ÿá)Tbí÷d4±€Xgò¬QŒä(úV›:”þ#¼ú‰y®€u\'«êˆ·ƒÝyŤIT½ ºoÌ»‘•—ž0LTª¨Ø,†fÏÿ¸ŒŸU/Oæˆú¹Xäq¥±G°Ì}ØoZO¢þ»L°ô åS¡bø ~•WžÃ«y‚ÑØþ#{äõÍE9ý,¶³5™}oxõ!¨óâ7mþü{(øÕ¾€üÃto#þ##£öaYÜ<Ô<_é¯UžØ6í&ùÓ¼ÜJ|§=½)Õ¨kU#Äi¯5G«Ñ‚{p Ä©)¿ÓƒëÊIõŸ/ýKƹÛõÄòÔn@‰ð•8a+øÕ<ª «Ò¿ä×úsÿ1š{¸„ËSÎßFäþœªŒÉ¨tŽR>ÕŠŠSˆú™èŠÈLæC>Ïî;Òè¿òÁÌ%ßM2µ„ˆýºaOæXJýÇMÙŽZÍñš©Û3Ù[C&lÜ€O k9×Ä(¢~ð~¥à "‹¾ä}ñY­ TžÈ×L/a7ɬ¥Ë–yÑLÙ…Ý‘·á*<øn8ï¼ÇÅÀ¯¦“ùMç莶9Ö6-P=bû t09E¯õϰIë¬ÂÔò_²Þõ¤Š%xà90Ë62—±Ù¹Þe7ù‡Ù3tó“!èW+KP?X;<ÿ*óGå'G×´€©¹­V ŒÅð͉̎hŽ‚™ªT³Rÿñ&µ)‘ÿDº«iR|©Ö÷ÑÏ÷2ZÛúÖMúw¢ž}¶Uet³”Œïu£3Þ"j–¿;óÍêvôW}ˆõºÃýÝÛÌdŽÍÖv³,•ŽGŠeåt,tœoKhÍçñR½©[9l¦•ÀM®U4#Jê';¯ø÷MvõñôÏÏû¤¤R3:úù§ûjRÉÞR;‹þjøUEV9‰ÿð¡¢ðœöüêTÄ–ùÏuYùF‹üì½hh\Gì¢N&ÿØ.:ˆøLfꦅoKƒ~`|Í…7x™¨ 6²Ó¨+º‘D¿j"þ¤:²1^ï¡+7Ô¡jV½lÀ "åúT;/’_°4†¨Cns«’¾ —±RdŽÐüóóÚ^={‹/_E/¯ÒèxeÏRÿD|û¤¨:ÄKºtµákS~QhøC{"ÑY2˜Õd3ËÈ–ÖÐ%'—<ó½ Þ/½±\ûôBù¾šVŒªØŸV3;~.ˆßeTa‘¨A»2 f~j™•x¹½ðçY¬ úª¬UwˆD©K@ŽÏá?bã! bƒýá? ¹æ7ÚŒ•޶ç3ÿ±Y{ÊÎR«~ÚSñÿá 6tž<ÈæÏ3ã?¾±«ê¢£þ„N¬ 0ó•ÈFñw¾">þn(þc üycq‚|a9FA8Ž~°*Ýðl›az¿b)%ø~,ùÉ¢ì x½µøîD¹ÄÊ_üGc­º(?KJt½¥ª7ÿåüÇ"r†¯0ÕPŠ&0íþ»9ÌÔ_Ä&çYJ2–!üùÙÏâ>Íâ]è‡Û‚½}&W“‚ÿxއ˜NuÁ °ŽîVl󌬀ÿ˜+žžþ&¾¡?|×ð«Àúû0¯k5ñ¨§ðµÅñŠK@¤|Ñïî1¯Ã4Dj00³cùC]j¨½Q¥&?z 7í.}Éï¾juƒí𥾋œÏ>½yÆFøõf;ø5Ñ"ç;æ Ø†eèwoc›gPsßmÖeئƒ¨y›ˆgÎ{\þ|4žwöq ÿ]g‘þí&]g¿™ àäÃ.è :y3¬¬ôˆ¿i=ÃÖ$ïØF?1OÖí! KœëÝWnhöOO®7²yŽz²²=Õ$ïÁ™&á{¢5KâMWøY¨ ï˜¬žfd³gk˜5äfð«zbªózK¨]u7oA ™N:ÄY™•^a ]»¡»]Ìœ¬ïÌjÃ<ªƒœÝ*«-Ýàï¶«d‰ÞVQ}¶RÜwúuàò÷Ð(à=‹C&¬êàinô¿:kÆ ÓÊGuâÇS6‰ÿxLEÈ$”ÐãÌ$ä™xòë£,_ÃÄ‚ëÎ+þß}“ Va±ód"«Yÿøkj}²®úÌÿÔx(ù¨'|©ÝÕî¨qÕ“¿uQ·¡w§fÎžçØ€Ùâ1ô\êlÕ[?ÇÙgb¶u»ßìUD+ÌÝÙB.Óç¨Uˆ™Ôxàçv?ÀäŽ Œú`ç9üÓV£©Ë¨lÂr’ˆ²1ùG-êè0³¡"üÇ%О¸|R*ž’šÿá¦ÝÒˑٹíE˜„RäYi,øÐV/,«°Ú#üGEQ9Ü®Q戓âu’ŸŒ,XºîøŽìÄŸOÀÚÚƒŠ_#ŠÞD?Ñîø¤Æx-Z8+¶ÖªqEM¸7°è®d2® ~g±÷±` ìùçKØëDú­¿ÞËTç²Ì ýübaÜyå-ìî`¢Á°ÝÝ©ù[JKV4€¹<ã}˜ o} $}+Þ¥(uýžZhoF52ü¹É5¿òâ·rbãÑê‘ -0Jˆ‘ú}üG3T̨êíI’ýUZ<´O(þc³’Vï".ƒ_- ~‡Æh ^ç/bê9ø÷ø‹܉#üt_`ÏíMf7ûÖ åý5ä9VÔª {þ`¢ö“ävÿ«±ü´™þí?älýY3X½N]€Ýß]Å·/å“–àòÁ¸‡8ÃÚWPÉÑÜÓ%pÎgåž¿Á`Cþd-íѰž3_D‡_(:4 ïÁ´0Óσ ªí Ú?ûî\×ZsnÂä$ãéM\ñD®¤§Ò^Öì€5µ­ÒŽQè¥JÒ!ý&Y@ <ÇCò†}<í;äzp- ¿~‰gà2w­7ÿe/c'ø•¶ùˆ”æ'ð¦šô/yÃtØqäWM»bs²Ns×Ó]7œMqæŒãJÇÉÇhÌêÉV°ÍÌfêûz³æús%Ë ž†aˆ“‹yy#˜'¸X ÐÐ…Îõ>ôo*=¸c_¥ÃP¦Ôìç§¿zgk=æ[ÓIkÿMâû-Ta>4ËÑWEo»†¦.zÅ“L= ¬²®~¥`7Ú‡5GÖ]ÆeB‡@5‚\á,õŒŸQØŽ¢Jü »[G½_mîN&3 oÌ ÞÅ­ ç—„î| ÝÕ£úѫі§ÄW0‹¢ÛAM?31uìc¸Óég¹—êÄ) iA°†š[éŸx˜í"­N…?Ï‚ÿį°ë¬!ž\çmç›XêMµvCë ~ÕYkÄ*÷•âÔƒxkµ§h:ÝÃùýà}]ùªuBs”ÚøŒgöÖ#ã?Ñ?ñ,sã‰fzW-bjÛŸ«–‡ÿhN¿b :Wè_2BPsj—¨^IK#ˆ_Å¢b?Þ²ö´5HNSù’ü#kOÆîmÅ*þA^¹\¤Õ×ÿüøøº_;£Ûs™²ÈGèšac<‰(fèr,rLòÄd ÏQ4÷Þ¬£‰'u3®xž” =ÀØ2’=ÂJ·@å㉎q%x'lJRc…=œÛkÅÁjšá_Å$ãô2¡&¾F¬ùšý½fÕàW3É?æb¿7‰ãôeM̺֚<.ìísð8ÇQ8E#+¨Îõ”«Ljt á!HÑÞ$Û;/£®¼¤ñP?ª~7ý}…|ÎY¼ÛòâpÅÐ}å>T-õ»(SË‘…Ù]!&qžÙñù»«Î77ð¶l¦_g=qœø~)9Fdþµ½ÎdT¤Ó°/ÉhUAަSAøß¼•ó³;u5E!–ÿ!B\sk­Z¿&è¼°¸UAvšñ´$Cyû€üc55kÌRp¾»2 €Ýr%_'À]dÃÜ ±Þv-:ÌSO#7a7û2°§Áä!ïØï@°«KT ¬´úÝ¢ÔlLÁ«2íŽõ'¢’µ;R¶Ò&[ÑO«Eþqt´ >q¤ô2Ë!æHê5îÊ6X¿ôôhè¨Ã_þã;KMu¥Ôù{“þ—þí¸º»ø¡h‡‡{ɱöÂì@³öë\ »ê…é8ýKîP[1fª(Ò%Ù•Š’Þr°¸à¼”®êlÞ‡áœû4ìw)žç¸hj3ÿ¼;þã<¦RÀTKGW:£÷5ÝéEŸk­Cþ‹Œ©+Œ•Kþ\SwjÉŸ÷óŒD5?Љ´¸,uϪŠ"¬ ¼üKÔWè’ ýU{Øø”ôOŒbV%[üÄçO¦â´ˆ8å<¿|jý³ÈÅ;»˜w*®(%?™ùÙY£ àÛìo$5„#Ñïƒÿ˜M¶P—î]Ù̼xÞo<ß›é¿{OÄp>…nê)t¥íyW{àA£¿Ê2·Í,€6Ù€-od=µæ8<Á“YWè_RÓêL'ÊEftX«4ÜÃ.ìÂß%<œ'ø¿û&3ªØùΓ‘`áU„µ7•úóÚðç=õùz—ÿq—þ%ÞÚMf ?¢Éïñçg•ÚpüÄhf ¡ÁùA§ÌéÚƒÿH)êê-Óäײ¡ÀÜ Šƒdl± í¢]-©~+Jì.`ýGBôÎqõJD¼›±žu±Ìåå6P1K4 9Jñ”,#µŠ©"TÿqD»¢»‡Ç!ÚºŠµO"Où·¿ýÆÿß&/©@Ì]0àº"xÍVhwb2U§kX ø ›-ïÀŠ6:v…ê[%êa¤b·÷É?è™kŒ·I­<™KS¸"|p|)Xï)3Tt:6ù‘},¶.3L8 üÌåZ«³~0µªÛEvX™eä§`R±^Y®2ö3.oAIù æc總ðþ‹¼Ì:*ÿ‘MEýÇ-~÷Q›'÷âO¼\ vùmW-QE?Nsê?ìîó°Þà?¢‚w¾¹'詤b~íy¼7½Yá9?²{qèÚdL»øíؽUò>×¿Š¬k)Þ´6511Å5†óú{Í.àWňPS“}¬Á‹=å¹› &³S^'ç˜h6£–ΕºnÅLk®iŒ}ïÒ‹ü'ž[±Þ:¸ž¨äP.Ø´x¡Ä/#ñ`Lú„iÝ~F–Óš†÷ÈÁçìÀtKyZi­x‹¼r"¢ SY Ù™ƒœ ¯¿ÿÑ~á~1GcÆåÌŽ°è…à÷w©Lä<®c‰3é%‚­'Ű¾Ó {Cùä¡ð[±MÍÁàu÷¬yXæ£æfÔMö”‘«ððÐr퇡ڎÿ-n9oFEæ×ÚúÝáxê±²¼,*b2·ü%;î3mk,< õ)ô:ô£²»­9˜¾Œ>° ;YsˆØNΰ̤þ㮲ýîKž¬ÙÆwŽ©uÉÒðÌûaŽ0ûâIFÃ^œ$²_K7^3 þ– nRô»Ðì*ª+© ©ÿÈÈS7Ù¨ÆtöºR0 1U—…­h¬yþèVÞ›kŒÒn5ùÇE3¿™Mþà}Þ„x)ÕÀüÇôWÞ¢ïDG²Ù/â°™Ü1ÓÚDþ1k «zZÓ}ч³.ÊÓôã­dÍ@™7) O>ݱñKþýU^øÎ'á‡Røÿ¬ßêCµ…öM¡ÕÛL¼®ä¡ÿîuÍK{¢&VõtÎå¾¹¯¼ þ<2ýT_ˆºÆeÝÐ#©ÝéSy$2 õƒÃCÔÓþÃRUGËÀ»¾–¨¡¸zYщX>®ö„8\¡/ƒÎk±>Æyÿ´Z &6&Ð+ç%rnbøRý¹;ýMÖ ÖžOUuy´–SDþÕÓÒ?±:.»CúBPvò¡Ù(o?ƒÜ†W¯ÏlÏÿ¨/J†»Ã5Êhô»_É?¾¢½…ZƒÝF\¸þ#µ¼º³˜g{MdÌТ†³b7­Šq Ö£áÍ^ra1s¼„õñdz}Û@þ1_7&c-óÏ R+úùÙZs"'¶t)¶k/ž#.û+ KúJ'¸îp_áVÆñ)ž…K©??’>Œ(rJý§¦tLãùHj'2hªöÈZÆDëTPn•ß©2¹Ouzg3øUXØNFîÉxqÆy‚ÿ»o²©gÀó~ž©æS38úù§ûj¨ïÕÁÚk­7üyY­6«ÜUòk¯4mvC•¿ÉŸßQ|A^’|‰Œ1úWí£ò§º™R™Dtøó!ôìáí±ºÿqBäDG¹ÐH+š0˯!õƒ-á¼D$ãŠè§ŽÐ•ÇV7â?Ê`Uí±íÀrrP=Øœ>7ɬ߸>ÓèNÏLjõ/9¢g%Ú/¯åŽÀ*ïæÉ„íù/º ƒ^ȈN¯ªGxÎðk^<•ÞâýK*2?Ê ¿íÃóòd>!몎•²;®.cmClýNlÒ’…sÍãµ’0ð=È@nƒZdDzgå™}Hvó€ w?¢©UäXu(™ÉB1_o&ÿ_½§Þ±à¦[oJÌÓk”oôZtÂæ½ ï˜ÇŸzbÝzóYt“C¿ËlË_þÉ©*úEñ„É žâ ~Ò®×û¥@4®{¤h¢ïÆÚÕ‡?ï 8„³s¯-îÔ|相èeðÒâùÂâW{NÜ b‚ñtúZšûZÖ¨@¤<‡øö1Ã6ž¢)d5µÁÌrÓÿ*wˆs쮕æY«ƒ u7¸T}8“VäT™ˆoS>ÌÌa4³Pë¦ÑMqª,+?€àõÀò6‘e,#²¸b½×šAáA ®dk¸Î¬uªÃa°ç@HÒö¡ÌfúƒÀ¥#—y"ÝdlóF®¿ƒ|þ‡¥×䄯áKâ=Úi\§cú‰\—•ˆë/Z­Øôo¿"+šõA2¢mX ×òù=¿>±<–‰)棾G^:‚Üg¹±N.Ã2—1gâ#Ρ7­«pÐzL>3jù/ðRõÈó.â ëá¡›ËAú'–Sú«£P ÄSÏ&ïé(Ññå¨ /eV7=ág^› à¿»á1¯ÁÚoãìæàQ—ñ{Íåدõ´rNó"ÂØC¤óLzÑ_ôUðƒéÑ’ÒšŠÏ,g°ª ¹ÓßvšI݆ånŽüƒlËìq$ú«Jâ󎤧ÿÕ'”7y> KS4“M¨Ob­av­ÃºEç{|G=ë,ýVºÓÿêU”×,¯ö’¸Éýî7áçäϧSþŒ(¹hx}"µKæªáÇ¡5[hƲŠX @Â;vÔ§\”wQ_M¨£,Fþá\ž¬ô*òÀÆÏõû»¢` ™Ùú_%vžÓï}öGú_µÔt½ ý¯jh­XåšRúÁSèwŸ¢ þ½ùQ·”[Za‚+=Býí®'Ñ µ•ꥻÑI9+õ‡>!â;LªEâœ7‰”X˜YàW-DÕ¡=áÆÜDR&QŒŒ ÿÐàa>kéà×ñVª šÐüª3ùÈyâÛí"…á IÄôWÛ¨?/º»j+ÔsâGjÂ(Œå]œƒ•Ä£ñˆœïó W÷ÞlV†’D%*ö¾ ³Öb,Ö~]žÓŸǔëÀ¯&=Ç4æj±ÃY±“VŠ÷®5~ÒæF]‰¢ ðÿŸðm‰Õ¿‚€,ÀÌÄf/‚Ÿž'6êyÕìa¬™þ|»H*±ÜëùBRPèƒËJË3œÇGðš]ÙíaSE¦éä=·EÉŠ ±Â+«”w¬¼‡uj%úÝÜàP.àWÑyV=ÁO» ñØé?¦ªwAb;¥õቹ(N›ŸùiðËMÛ#€éŸâØa¦_ä ¹ö|øÕ<3üf "™àW&*µ;?7ø?üšžéõçÁ¯þ¯ùÇSåªZ‘ùç}õzíu”—’†~¼çÉIn3¿Öí·®ê„rJ«(ÞRò\”¢†,%ó?Ò§ò"þ£0“ýFj­÷3" ¿T ¬òZPËfا:bœÈ¯&Ô¼Á¯¼Ä)‘™*©äÏu°*õ¤X¬¥x¢Šd…ä^ð˜Ozw¬Þ ¾ÛÄ„š¸ÆTQDß­Ð.êô.Gt–gk é%¼Ò þ#WÁ:¨²<ó}ñJü)Ê…{Í‹•ñâ(þ£&Ñ` <Ñ_ Cɰwa{ÛˆùÞÖV<½1FKΊµX‹ÎØÉ›ø ì¬”‡üã#þã½jý¹úåØÒ…èyí>¿s…»žF-Æšou—H *±y ï—ýÕà·kRÍ^͘…~õ3ïÃ2l½;þ™‰íà—ÇÁ¯µ_õÕŠÛ &çÙß!®Óž–Ûžœy„˜¦û‹Ž‹êkTÁÒ`ß7©ÿ˜J¸ÊÏïvÓ/'¯¸ŽïõINŒ=ŠÕFsZ¨"É‹ß-‹­ð€­>Èï’uMã9̹”†íÞ«Æ qÍ´ª¢0Þ;=Z©yäU^ø£åpÂë‰h5PötxÍ.,d#üÇGðË>`míñ6®ôRÛb=E×ðÛóáÚìŽ$tG'œN=øWö3Šþ»[¨écE5¢·mN¿ÊŽÚÖŽ¡<Ê)·Ó‚wçù€ÿ˜Á=ˆÛÝ %ÔMÃð6ó*÷ÊÑ/÷.hI Ç,˜ó6tˆ:Gõ‡Ýÿj9Ò2öºÈÈ«ŸÿqG_Ì3áÍ3ò7~å&à?ÚÀÇ|—û¬–ØÀ[Ôm¬‡ëÙ‚ÿø~U“ë½JöTœ¬“$¼Þ ¥£RGíEGµ9XÛ°OéDê6ü¨üˆZ·=ÊÃQ¸Zq#¬ÌhÆ^0ÍÖf‘š‘!½¦š¾-*±hF vå‹â¡½Ai¶Ÿóû!¿ŠÔ¢§Ö‘ù€yÑëÎdþÇ5lòpæG¥ÁŸL¦³L4²Ã¯ôa±«=ëÊ©¼/.AæfR;ëßD1TCÑ0dAµ÷Òüvå?‘Ž™˜žr„k¾H%É(¦ ϶RšîtË,@-’¨÷NQ -pþ¹umñÃy»–¢î؆b통Šé[+Ì’äH1é_2ɱ—ü£¨µD¥ËÖ|«;Ê®¸dµ‰ˆ¾Æ2™AÊ6ÿJÿDêÂÁc~Þ:ýÕÿ5ÿx§xÁ¼Ò:é£ôÒZ;Ö<­äÐú.4½WÐïþ~C¹LýÇKü‡šýÙz\ý«ÒWݧo ûH/Jéûµß«ÿH~\“Ì 8ˆuWQþü–hJ7šÃtÙŠj´×ƒ3Œ?Ï$äWÁ½d𱫓Q0ò¡“êOàDÕÇáW®‚¸E7&‹Üú–¿ÊÏë4w°„y MÏx¶&â5ö¢„ÅŠŠ¼²bTá/‰XjŠ5¿¡¬¶OéDýG\tHÉ?¶ɯÂOôg5ð4¶Â2¶œÅjññÙáæƒÑ_í#.j‹o»€Âª : üñ'tÑØñÞÉõD²ö¬’øÆ4±L/Ä €P6ÆE§ƒÀi‘€wh.~¿‹jº'¨ÓF<Ñ[¾N‹‰ÿÅ®ç,’1FcNôE-´Ì<“úF{-nÂçÜÁ¸söAÙJ±ÏddYÄtýŒtk0ƒ†°Kƒ‰Ò²ÃŸGÁÅìSt½ˆ8 ~5 G>a=ð5 ‰÷{7.B V }Ï$¬èúð“ñJåáƒ$ú«3”šÒš(ãMóŠYØzBõ`=**F“ͤ´²9Z£ß݆~×ÛŒÇN›rw.¡hE'Åç"°v7†ºU»Ff´ƒxàLO/ÒÚdGU@­ á'þ2ó6µ§G°‡…¨:•{ßè¼¢¢¿šÂVEN"cM¤~0…:Ž~U9‰ÑZe!1JÞ0]ÑF ¥‹dý0Ó¹d2üÇa4¸=èŸèjåÁÃç0ËҥƇ'uÑë áéÌ?N¨>àW¨pñHÕ3â!›Rž“®4 ¨l¬‹Ry†ã®u dm²Ü§›M•ÉR3>w-1qá:Û}£§_hYzÐ{ôßø>¹êNÞŸ+[¼û)œ?ýüÓˆ}õWN«©õè«ÏÖkøµJnfGÓNÃÄýMþÓžËñßø_z~Eƒ“‘9Áã˜?˜n4d=mx{Ô°5Õ 7‘‰X”) àWíÔ×ê1Q§ioúc1&‚õ_•‰tîKŠ=ž6TžÈ7µœ:a¢âLd=“i9`å§‹¬š_»–úó Xø˜d ×x§ãËcDæ°y¯ùÞðÂpËÐTýùQë”Áä AÞý±ï×À‡ÀåÿδÖ(I-„;(ÃzÖ7bÿñé²n!ä96Ör‘Uu$k»€²© +壚ñ{{GÆt Û¿Š•&¡b^Lž³F,Ñ‹†É(êu†ÈŽ*lÑû9ÚƒÛâ甪·öRx‚“Ÿ%¶?ÃYÅd#7Òƒ;\M¿„/hšÒ–|®¾ *6É Ÿ ÅìVüµ|â5 ó‰™j­i‡Ï‰&Ò‰ld(ª²d“Á£ X ^6,ªHTúïj!ÞšjZP—ÞÜO¬yI”­x2ò`}¯£ße…ùÍK´ÿž ó±‘ßÈ|zƒcuÆšÇ`ÅøÕƒÿ1ÅH?ëÎ*6ö4‰êó{x¤þxC`X3©t—•@îçÒ)xÓÐ8ó¾ ?· ?9.`=wy«=7VYåÉ%'ã·°ˆçtµ‘B¯l½ 䆼WÚ7ÄX!÷Ÿ÷À_3qÕ5Ú Þ7"GÅln,šƒV°Ð­©ó¨hVE-ÕVú’^š:t¸•¶0*¥8Ç;< cøôhì~.˜X¤¿çîþÁ[Z榆¼mæv”³Æ3Ðb†È1¾Û×ý ]GúÄ´ºÀŸç43 ²óÆ÷î ™9ôÒé?ö¨·À¯þâiéÏÝ…‡×1šþW¹¸æ$ðúuaú';f£iˆbÍ•©ðš³­út%³WËÄ{ÔÍF•Lh*“Ÿ{þo}Íþ*Ù‹¢–ø… Œè'K¢ËÚÚcêçéUºQ²j´ƒÚ5í!õU|VDV<É\¥ZôOŒD̘ҘEÿ’Jfêü§¡¾J,Zè+²ˆ¬ô÷MÄ GÐ%Õ„9ÎGýy+õêkå#PUöMŒŽ`þyñÑôt Uó°"5ÈŠ3É…X°„¢!é ,Í T^ñŒ"‹¾3Ü¥yÀÆ!ÞºMü6”èù(¬ì bWâô›àW¥XÌG|HýG3ç3Ö›À¯ösjõñGÑÉ6:“¤&¢÷ÁÞÕ€ÿ¸‚îvg:k–ÑØªÉpV •¢·A¿{n'?×Y„üÃnæ)Üòy¢Ÿeð@³Á¯Ö“óìaŠc!Õ5Œ5£«Ü®<õÙÑ9¬z ®²>>(7Õˆ¦Ñ[f÷ß@\¿›óÏçÒ©ÄOV!yô»´ðGde:œ_Åd¡óÕEò¯õøÖõÔæö,šb1ñÄ5òP{bàfcŸÜû[ÃÜÂvÍÀ ½¦ü¹»·{‚O®Å.Á€LåD›=ßt¾+••îê0ÔÓø¤I²ýÛ‰YèÏRúNÿ’–ævêߘ9©¹èd•ÀŸ°ŽÑ}*·5ô» fWAþ;œë½Röá?>ñü.1♑Œ†¢2™[[úI¥´&ÀP”£?a3z¶œaªÈ t½÷Ì8V7r¤šxjÝlÿ±Îäóz3RþŠ=Uâþÿ%s ]ZVjG*X™òT¥<‚ÛÒÇɹÜáõÇ’ö±*Ñ?±°™KF#NpC͵üê‹ÓlQ=ô§¢;ÙG{âœKâ„iÀŸÌ@_1l-ú+Ó1˱‘œ0-ók¯Ö€·™cJnWâ­¾F10ÕzâšóŠÿwßäSO Šùùy~J5“󧟱¯~ôO,ƒþª~˜þ‰ýY夒Lû¡§ýók¯:òš;»þ‰è¸fGž²Æ6òÕtÅ="ßÉëäù±«¾ÖVôXóQDl+•_ƒî D¡0Œî§JY¥²ÚŸ§¸á ÈìÔŸG¦þ£-Uu¨)YI§)_z&r ´ P‡}šº’¬¦Œ<ºüH70;ÝXì\ï5=JýÈŒ<ÈAÈ<Ìÿ‹.›™-•þ‰3Á¿ Zωòû’'d„µo] ¶dœݬÊÝÒÍöh.R5Ø¥#µ:Xÿ‰'ÚËŠ~÷¢éÿ±ŒšÁ`i]­XŽõôÖ:¸%]‘»Y娙Ìe–¿zÅ.Žž¾Nÿ±™¾~oÅÞ…ŽÄTnâúÝ!ÖN2–ÝÔ¼ÄgÊnJú_„¥ImM_ð¾ðçÌtÒ—^§ŒÁFEò~AÐÎKÿ¯Süê Ó†Hµ@ØÝ'ÂÙËGÅG­«©zo}ƒ^Gëà?òiñ˜_ûH»Š¦ó÷ü‡ó?:R—ë^ÎØ¥'Óß(¨[õ­¢²p¥þ|‚Ö˹ëp6ð×ñÐ?Ö¡AQlÂ6ÃUôB¿kj‡E##6ýX«¡©ÐŠ&þ#ª^…8w'Ö¾*¶´jJþÀ<„ (¾þíñCå©Ù)oq:ëÁ×qBÌ?«Ïx&ž‚_¹’Ao§Oâ~´Rûˆô¯[½˜×qÙŒD=É|T·Maãš;ÃÕŸ¥ZòÔ<ÈüW¥ üGltŸÈ±jÊr"‘šþWõ­OàAÕ¨c_CþáJÍÅ0+gþ’^b›`Í—£H;EnÓLF vå¼²T{ ³ÚžÎ9…ÜÿyBŽÐ ïX´®Õ'QO-aÈiôWmLÓ,ɵF6ÛÈùÔå³ç—^í«¿¹¨ZC|PZ\̨ôoŸÏÌèô/9GýÇBüÑeòÔ³·²™gà?r£bûˆÿ8,&’\púñê5ý‘hZúùóIñšü£ýK’2¬>­½õšÏ&úÝ Ì¯íF²KýÂÌlEutÃ,2wÓÿª„yˆ«Xx^¥úÝ@ìøŒrZ{If´øî9ùÇf‘“3+@—ÜÆôAo‹Þö.üù:~%G×4ŽN]Y™kšÕØÙWV¦”3ˆÿH£2ÛÍCâ–btWAíejŽØäcéà{ÍÜI¦°…œË›gP/e{N5GeüÇžl71PÜdRçÏ»±Z½£?ý‰F†€`©ÿÌ|˜:æ-úïÚ¹Û+k©ã>=ýwŸ2‹k<¼ÏJ3:ñ[bü¸+w  ý\ù¿ÿ5»z9HþñùQ©Ã±(aíÉ_¹«¶Ò>jKô=úˆÿáþÿ÷ðU\Ûû÷ÈÞ3spwŠCpw‡àZÜ‚»((œ`I€àÜ)î÷àîîð~'÷rBBÒ„ûïýµŸ–À>{öÌ,yžg­Eÿ]]BÞëtõÝÑ_ ÷û'• nÞ™W¢½A3×®¼z[?ÿQ•Ù@£Ãà¹á.òÃ7cá?Üè¿[ŒˆqÓézS‹÷D½(z¯¼u%ÚÈ(ú8 0õJÄ»°"µ°s Œ¼Ù)EbñCd öŽÓ¹ÒCfü°•0_â_ñFSÀÆ¢Ô9T³ŸS_þþX΂HmØs^åU-"½7«”5øt Bq°‚Wð¾DÎC±¯›à³'‰ë¶Â ÄNgó"íŸØŸúCä/ÍxÿîÂËt"ŠOC¤ÅG*²…µøÛ‡d1–‚‡m§þ#G„ýÛ¿*'Õ§¢$ØÐP¯Kè¯RÃ4Àòç¯Ï/‡1³â[°]þƒÓ= nÖ™Ž)‡Á¯n‡93û·ÉÔÇô„r¥ñ»ý¨âôëjÌNÈ `ƒÄPý\Â_èN»Àt¤§š=)în8þc#|[9ñ{°‹VÐøÌ™5ÆÅÆâÿAÝþI4auÀÿ—¢ýJì¿oÏì‰qE›“0Ìi¢5¿ÄÝ|†µwÃÓö"* VD¿±T¯-Áæ]c^EüGê¿Òã?jŸ¬0*¢¿:f½{Ú7ÁLdеðþä÷ä(ÐÝjfA ïh+G=ºKMáÞT‡ ¸BþÑÕ8„ÿfþy€Öý\A ‘”¿“qX>¤3Õt¦~?1Š£½ úRÆ1¦» ú«3(ȲQ=xdh=׿‹þ%%Cíðª>“˜â*‹Vøšùr%ùÇ:°¦#èüá\éµùƒyØÒ×d†-ÈŒãÀt1Fý >­ÌüÁþx^o2Õ~¬V OœÓ|æ÷ÏKO_æF)0ò/Q¹ÖÆK]‡—/mnãŠWà?ì+¤ró™¹Gýà=;ìó}#†\$šÀ©Þ1ëÉ,±W; ÕÔ^üÓrªÙŸQõ=EWqê4¿À -d&`^1Çy½Y™þ^¸µØú«d¢ˆqÃÌå¨@ý`N:¢ä²¶°¿Ýä6÷èæ;œúV>óúÝd™ˆoöˆiâüó£6¡¿úÄéÎ32ƒHq«yÎZH­Lyú|Åÿ Ó×LÇXP«zV qØêCn3–îÆ ŒSØ­­'ûL`RÃ9F¿êf7OÁÛéBfb<õÕpüÇJåŽVV\ÄÂÏEOKó‘ÆP®t 63-9NCY‰¾S ñ'OÈÄlÝÀt2Ö(Jˆ“ªÃi]þµÓ–Z)TÜ­A×.·7!&h• ì lÒD&¤z ¼ "ÚÏŽÿ¨FÝ}ròžZÄÜ«áÏdkÿµÞ j%SðT"ÆÞÄ>Öƒ'£Ê+´X˜;»úsÍ9ÍüÁç\wA|±‚šj<(‘÷¿]üê„Ö”<ï:º‡òdiƒ`¾ï0Þw@Ä\Aì¯Áþ&rìÀÞwÁbãÎ&Ú†þj&YÁZú'V uÅ7ô±ä2—È™;ÚJ-9‹þíSQKmÀî)ÎŒÀmÔÓÅ Þ/na9Yò§Ä÷ÈF‹3Î[\þc0ÙÌ$"ƒ.pBåÁâáuÊS[QM×N´Rº•–zmO›ûÐÝæ1×S;ã‡ÏÜÉ=ob$“Kœë%A¿ûÜö(OÁS#6h”›Ñœ¬C0pÕ‘A®&£8h™ä#3©2‰NÿD[¿»„ü£-j²Ý"¿Øê¼ÞLêHüG)bÇpŸéEKC±~s°63™# u.éç{ÿq–¾\-™&5ꉯj–$*ypPLå éß~R½ÿOÎÛš\ç¨ù˜êõåè¯æ²“dE©Ñ_mŪj­64G{+–c,1H2X50ï>¼ÙÒèõƒÁyéÿõ/r©GQU~ÿì:“ówß¿µ_?“Ô¡ÞãO}±î<]v¿RýÕ}zðÞbþà¯õo¿¦|¢~ð6Öý¸žJO®ö§Îf'S”\Ð_ѺüÒ>3hq°õ DAþ¿ t¼»¨ÿqþã-¥*‚#ÎÓ=¢´¢CõVãêÅñë°YõAwʃFw†?o‹²+ÑX|_ú—„ÌÐŒø hwõød g‚cñ]dã±Ù/ðJWe<£jàûœE…(Ìÿ8 Ì†? –ó Nû,ÍLž±¡Á+W%ÆÝÇ{¹„3í5K+}µ¸‘\ó$­·'×y¦0áÑC¿ zÓ¨?¨ÖX8ä\ôØŠÉý¹ŽÿØÃ¼Ë"P– Â|çtZ’v Si©ÿè7€2¸ø•ˆËCîŠ]ÁâËšÝ`í3¡Í «ƒDõR î_üÇ~؃¼ÑJ*p6Sóþ‰m­™fztM‰Ìbædwv®Bä%Ø¥=I¾Ÿ«÷Çòµ)…OÊ(ŸÒYÆ üùççæ°[¯.‚ð¾ä©›DuÍñ:ˆå»ÂÎì@ÙÅ(|Ënö”Òžü>‹ÔI¦Ç„=Ç!°wµÀ +Ûö[Àsgó<[°™‚žá­Ñgf0oe¹šóÁàbÇçòI¾øƒÂÌ"Ûæ ßR?˜™§Â•ŸoC³;ÚñY 5q¨›ë„¥ÞJEð«KFcÔM“P²•ÁOÝd÷]xžþ’ÍÃøEoÅ=8ŽÖ "×Ôæ"©$@–Þ¥PÿÂÖrt7/ÒU±7(TÎyØÛ>_Á{¥ã>ÿxŠŸõEäW@ÕÜÈ?v¡ß¥_;l÷U²­mô¿Ê ¾«ìO_Å TÈ»ã×þäg‡ñ˜‡À÷ú‹÷¾Ê`µˆè ã£lÇ$Å ¢´kéšS?×6\÷GøïwV«Š¹Ì\ ®•Ñ<Ê)o†]:HWÞˆ'Cj¯2¨g´¨á÷‘\å'ûÄã´9 ýn øŽúàb©©k¡Pÿ1L):ué³hå7|ë"“L?Tt>Q&èfpµêhîh&1˜ü#¹ãwºrõ£CÕ{ò!w¦Qµd*ÕßhŸWÁ²Tàš‹š¥É1ñ>®+éÒ?q¨zô'™qož²è¯nâÙÆƒo~23P=X&eúÝXŽhÖ2ã ße ·Ki0‡…|½ÌæWÙðÿ¤~03}N…< ÔŸ§ ùÝH¤_ ê?jÀwôÕwë̓­û¥¬fé7´ÇÚKøó_›?x =¾»ÄñÏé1ò^¯ ®î©¾dn‹üG?ô»Í~iŸ¹µÔDº³ÁÂܨï 61K#žöV¸Ã%Ÿµñû‹tÏ(­˜€úÁDzÞ½ý<í¨‹¨M„×_ 1Lã8þãþ(ŸUYÉ¡#>¾í þcºÚ ¸0îÓpÊ«áycb%‚ˆ€K‚r^gb@]:æ oÍÊFq¯[‹ž+Ø[í‚•{ÉU·G•s„¸n×Ü û—‰ùç¿ErÍóµ:XäAœÚ2l<«™áM€ %a5 ¶îš1Îa½ çÒ.s„lu¯ú^d ƨþBûS¥ÚŸd!k‰Ÿ²Íå*lÙS|èXð–Ýä'Û`°³Ê‹øðòTøÇèwíy†íÁ¯6ÃÎ4Äßœ€IŠi4óõ”h9ÇQWaÏxê-=8Å›".ÌýÇpüÇNÅÒ«ˆ D¦^ÄìɉÇòé½dflõ8Ø™£\]Mlÿ"¸‡[Äís¹S>ü¿™YAlKXÿá®5õЃB¿» ä2êrÐ1{¢],jÖ†a©òa]“€È,ç$¿r‚s©›žæþ{¸õ Ñ_M fP–²æ""/ªÛb˜‡^L?_AïÃI– {ìNç¿ùp_eàÏ/-t#çœ-Ûk£BÝé÷Zsü´=Ç¥\v<î3c%YŒ=ݪÈ_Ó *±£—ÍT€CÝâS5]#SØ –·ýnh•v,áK¾k{Önä>[äÃMqKó*°»Ø;{~Ôº£[ø¨Wðç]QK¡K 7 7ÌX(:çÞŠ«:‘¾fÓŒû¨¹j‰EM©Rµ^?1ÜìC¾1‡þ»ÅÀsÚYMP?#æ/‹r w‡ù´ðUcâr¹s½âê-Lk7÷þ¡Ë?Å0£!lѪRüðåÝñDý¬#0>1°øË,ÍJ®ešö¬ù˜fOc!ÁyÅ,çùeRÇê:sCžªvFÇHmvd´VÓ©¤xÓßôÓÚO-ú1*ÙÇ¡æ}dãŠx¸œD]°÷ëDg0'ú÷ Wƒô— ³ˆEþ”+À¯‚˜Ø8‰ìÍ—ùQƒ­üôÒïD—ÇâÖ㚕ޣPGÇ2N `*gÕVÌÿ¤OÓ+i9íkJU-1þã¶vNM¢îú~\Qúõ†rOk†4á'ŠÉÛz^p‘j|&Ú¶¡Ž®™>ôë?ÒÓ·<üGqj•—ÉÔŸWKkrƯXæbR—££ˆ_Yô»Ï¢’;á'£Þ“õ`}‡Èb,¸Ì1âñû¢xØ4ð«eQ¸ÖãZ2Q‡•2RÿqÌ¿8¨Óp ‚ ã·Î!Ìròð>¡9Ëð¿©lCh‚€Å‚Ÿ¸ÊJ3ÐY-ÆNìCS€Œ7>øÕÑSHÀüÚ°ºÓ°kÎѺçÁü¯Rá1Ï” û™‚w!7Vo;þc9HNøór¹Øƒ®3›óM ½š®©*Ÿø;ð•5ðl#ÈV‘{¥7FÊ-F9XùmXÉ^ìö ™B-öxX?®ÿÈ Jý¡x·8F~t|­èqqxù2àðƒÄU=ž¹ &9ƒÑ‹Èa$þ85~3 9Cxó£Î(šNløîqp±ð}yRFbס¹*ΛZE6í]‡þ_º„ûìÍi ä*bŠ5?ùÑT¿þŽzºþÇ¿Èjë‰ Ž¢ÞM`®dæ„§™ýÕofEð«â\w2"ñÂX¾ÙFE:j s†_áÏó`·©Ue È®ËtïM BÔ ›ìIýy[ôWOŒŽ`Z^hïJ“ìÇ2·'w,{hcB­hëwI»k£+ƒúäG7Aœ¶™ÒÔMWô¶×¨î–ŽyXúaØÀ›x¸ìø£¬·ÊxË•”ÒˇZï¶>®è*ÑTK2†Sr«­fþù} +p ¥¨Ø˜¦>+o©Pftà¿xÂv0òM wñÔù°ÌRšª¨¢A?¡É+mÔçýÈþªŠõ.¿'aÇR˜®MègrÃ|k½"ºß@¯UØûu0Þ-è߾ع^zu¹öIšÔŸO•׌ pjmPÜNa~HQê?<87J’9t¬W­-t×2¬èØç÷œÌ"ã)¨˜=±2ƒ˜à¼^M¨¥A ‚g··f>¸/곓L¥3ã9ìþiøqàW~V<ºÏç2ËqˆŠˆqâ:oÊ÷ À|Ø€~¨yŽ‹Ò̳ªÍóáJn•Ÿ”ÿ¶Ô± WÉÚËü¨^tÖ‚oIDT“]îà)m@†\ëÿ¤þ<ýCz%|A•ÕyN߯/j¿>S¶«´‡ÚXÝ“þ‰Xå´RF‹«ß¢â Þ¯Q[æßê€rŠþ%oAbîñ^×+`—–ªŸô+TA”½Á¯†ýÒ>c¢¬BñÜD [Èõ• êxŽ9àMˆùï+ ° f»ÁÕì—%Ãô/¹®¯àI=FVä†Ü$W öùºf|2΂Õ„ÿ8¦h«±šJÀ¯pÜ­ø÷1š³ŽtëmL÷¸´RQí~5 <¬/ùGcÑZÁO ~°9JÖYž– £ÉŒÕÏa> ~0–•þ¼%ê¶·èz Cˆ-Cb·ûÊFí5¸­­t} ~õP¸Yáx‚¬òä#¨ÿ8‰âl&yÂk Ö#êÏûã…Kr·_²¿%r õƒÛw$6ý¿ª·„ñnlÄ+7fGJX™†V&ë”YÍŠëXLþq–úA7êIÃîŸgÚd¬ü|ï&±AˆùµÛÕ»º O9€Ó¶ø·æú¯ebá~sí̆ŽuŽ»Ìga­7îg]ÄoÎ5“{à0σNþN¯í~?tŒtåý‹|TlpžŒ®æ‹pzCd[ùHýG+üG}ŒÞ@ëŚוòÔÜÐQÿ‘D ÑWD¶’ýóóèw›Š§âƒx \ä~=+þc†úþ£½ø»éƒ‚?!*+ýëÏ$Ðb ÏY.r¢ƒ™LýùQ]Í­Ý Ð;l9à@¼ôÐ~Dk'À¤¢ÉfìÞB8´s¨‡üÈ;_ëð{ÈD¢òú$ç½àV‘L3Ê Pÿ‚m„,œ\} Ý·ð\öè\g)üG)y•ÓKé&zé_Éza÷ÜÈ?†q_2 ¼RñôáõOÜ^S‡}êÇ߉kÜdgí°7É`$Üy;/}´­÷ ®?Åø‚ˆ ‡gr‘fcGsÍýQ–a_Ya ¼ðx»úÏþ‰1ékÔ– ƒbXWÉ\ìuüü™í?ºcÍÓʬd4!Wjõ ÿ‘§£ Þh:–| ¶ÿ/ð+Õô‚ñØI¬¿’þR¾¢ìôd0¤²Tcͦ†Ý_¦¦æjEUwãé ÑÉ}ÆðgîÉÓÆx8Ù+DÜ5¨†¸F<^ÃÑŠ~ZÍðv'a„2­m‚÷öÁ×ùÓ¿$g¨õžÂD7Î’Û] wHocJ«vüÍoÆAø”‚`9»-7»dßPØ6Ç2ûsõðcŒîâœó‚ëÐלt:Lý0òžr¢­LΦ*àWLÔÊDúÉÈ>ÃØ5‡`Cb’4%/ûÊ‘ÛD—!ÚyCݬ}á9!ò—ÒäÉ9 V3!­Eݬž¢ÿÕPž¶Ž`ºÙdò¡T2V¡·JÔ[Xižcš†äÖãùÇp«9³¥âGxƒ“)7éÿ’ä'ÿ8á<»~0,’ë¼­‘|ñL¹ª6§ÿÕý0ó£ìXþ<ýÛ£3ÿã‰vFMÿ‹ý)g´VÔŸ+T÷•’—uW=›:E=ÌÄ êtÏo®OþEþ#¦–\a*d7XŠšb®pU3Ñÿ¢ÌÂ1”2qäD=¤CÁ?^ª:Vý¢e&âÝŒí¬ ÂTœücŒ|¬O%ÞÏWçÈm5°²*Qê¿»V{›ò‘ê3b‰qXˆ¬êÓ`Q¹t[]ž9\Ì Ÿ÷;ã‡+>ä’|!Z°j¨^ÎF‰Îa¥ƒ‰£ ‡/ý¨`SrRÿÚ ü¼º»VES¼®­:ÊͳZ;ƒçõ-U±ˆm}Yy.¨ØJÖ[.néY#įªÇÔ+¢€ñ™¿1_YSÆæ´j઱*r®aOH<Ä÷†“•ÀÐ áÏ39èç) Ô×Ú%ñ ýKï×)Á;]ˆ3Ìߎ~˜s hT£8ØP°LÌqø"Æ“Ëý¼Ü!ææ§©†˜M][BrÁöØ|,1mÖØIþÑ–Úor‹œ…7¾}^¾.>+ýwE˜;3Ck,*ã3rÂvO¤®ü"؇շRƒ*†.ÌÊE´—¾H+øùWðyf>u…)#¢‰ü×^? ÿÈÍg–àç½Ð•Î#W‰u‹nî1˜Ž÷ø›úÁdØÿž(‡&ƒ–É8LîÔÝXÁ'wÕ&…Úá{­OÀ58ï<ðLr¢2{ã7áÏk¢E:Gwó¬ŽÁèwÝÀŒ®áá²RÇrÏ>d¼»Í¿2…ùèmPήXüUÒMÒ"®ó;¼~•ÿ±ÒÚ†Už+üö¼6ÿ}àt³b7Ããþ£´RIµç¨0îÊÖð$É©ÕÓé$Ø|©==QY+Ð_•Ât±Ú£µvsŠ›Áõ~7`T&é~¨Œ¥®Ô¢ûçÐÍì2³ˆsßþ¤ó¢þ¤—¥tt¡cîEüÉ:ú7s¢®Nh#×ûÈù­&Þª$BTFÑïÆB{Õ·¡£Q ÖìŠÇQ}T%ø7ðû/ÁšºÂƒœA»ö7ݪFÑaÆÕ,‚ÿxƒÒc-üÇñÙ‰_Vï£²Ú Ÿ¾Jø™¯ÁÒ¶QÓ2ÝÔ¬ôDy`Íp´¡&¤ó£.‚.®¥þ£ùÇMÞÅ3D:n`Õ£~P@ÿü|ÿ·¾“]õWO:Ÿ,“ù‘1ªíä3õM´øúT}—> ¸»ÈMô»)õÚ{ížšê—ñ«ûZ ËùX9‹h¥7¥RE¥"ć Ñú²`Ñ^~þþg5öjžboÞ|±D¤S‹k¦¶XÓ0ÑMzè7ìç5þõOÊdòêÄãÀnš€2µ$c˜*¥Xˆ»„µµÀ{RQ¥T5Jõg4…Àlz\æ}öË „½X‡õLB”ù„7¼ ÈËC_6Eœw*¢Ý­P¶ˆ“ô–.G>óïslµ ÞéƒÍ³\$[ZK7”AìµóÏ#ë6ஹq^Ãñ OñeexKÀ 'ûͰã©]<õKÉbc¥ ‘™¢sÈÁ.?(ÇÕ{¢<¾b+Ùúe°<û¿ƒêׯ挕wä£ù´ÃD²[øª‚¼§?Óî„s¹B}Œ_â-ê0•ø ÷ñ*þ<±±JœÔÓÓ}iüGklürÃì\wbø —áøUèýò‰K a›À‡Ê±. O}8ÅMð!uñí•àJŸ/¿» ~5—“C–صí"5ìǶZ7ò&ðs&½É¹êãsJ’|cfàT´¶s©?i¤% ñWTQ$¬$˜þâF/ƒsaÎðfñ‘ï1Îñ“Œfó8cµz{ñIñÌÛÆhøó©XûÊpó7Ù{0Ë•ò0zÅGZ0ÒÜÉrø·1Æ9ê?¶Ñ%>M âçktÏD¿‘Wø9¨ºrãgÁWŒ¤ŠÐFó*ÏýxSn賉XŽƒ_ å“O€E…‘éÎÆ¥n–Õ¢?áJ´a+͘Ök8—vdzŒ#dw¬:÷‡ùç]•6ª‡Lƒî‘k”7*‰Á²=E`¢™6ØÏÜA¥ž öËÑÃêÖö³©ã…+{Ñ \5úœd!ý.Ò«Gµ0€‡¹g73tC)¯àOWšðçS˜›òµíR&fÅ£b|Õˆ·©„I_áºÕôÌNXï¼ÞßT_=1Q'øÝ~2W†C ¹ÊN %W"ÇUºT¥“–·Ù •— øU³'÷”s;ÕËoÀ¯Ž«×è‡2”·ì/º)µ–¹áOÒ2ɪ:ýôKÁ„$A¶Ô1Þ„þ»©™-r™jÌ)fa²ÆX(vÆQN·âÿý•CóýIøŒ~7šówß¿µ_ï*ª¦õ¥[É m¥Z•UŽ)qµÚ m†6Ÿªö_ëå¯,ÔR ’–ôÜÒU®×§ïí}³¸£{1"öû/í³£v–<eTkbó+úd° v|¯;\ò{lór‘Lo¥c©åÐïþEî:„¡'ùG;c7öé˜Þ(X5´œ8·<9È$‘EŸ…£Û£U×Ëà?>a“¦ò YØÃVø‘•R%ã~NÑË‹‘Q˜uT™ÄtøXå»tÀ^N= ÿ1ÏtYö¿òXK÷'Ÿ˜A^ÖrGrÍkµzä͹Îc0&ùÈ j±æ™Ž ½!ÉÖàE}ñ¦ž°Ìÿh¢Ö‹hMu ú+͘CÜ>„÷¨,oK?bü}Dé[¹Ê9ààO`ëí¾èñ0Cà?,z >§÷òÏÿ$U«ÃbžÃŽ®E)u‚¿c+ò[i¹ÀßNúc"ØØå)øoîPR[y7<ÿ±]9«§ø»­±æà‹ì~“ð'mðºÉÁ26k^!ÿØb|$ÒÞOô>닳N¿Ž¾0ô›hùQõõ‘®øŸÅô'yÊ5_…ÿØ€ÿÑÌfoæa”'Sˆk&&Kª:%ŸTæ·¿ñFÄ ìç­Ý¦«À(ôa~ H+h§6²ÖôPÞô€Г:ç ù¯° ™PLíÏiš™[ íÕh#9ç° ØSb–³ÌÄlö…¯¨M§ÃÖbú{,"S(Í̦°ØEÉåÆc£ÿâtÊwZÏP;L'æó¼^&NYÍŸ™.™I|›‹÷•}¯äßõìÓƒë>KÔßTmÁ.cSiôLÄ6Öá5†qN¥¨~êÉÞ¨ámþ¼=oØ>P꿈í‘}EÉûú;-,»`ïÎE­ ‹y»°˜à8Y+C3ò¿œÆé.öéwá?šâMÁÊO—C9‡ç¢ßÈÄpýGæŠ%HÎݬH^uƒûÛ¦,=(K{¦ï•6惲ÆD9·ÿ1 £–Ü ßü‰5lÆ4ªšxÀ0æëXñÏÊIº£øQƒ‹èv(Z¤ h|˜ÉP‰5¤3kF,_1¬êŸ†& Þ¥Pÿ,Öžã?¼e|Â:v1ƒŒëorô¾KÑéxRkÖÖJmž#ëxÅÏs0¿ö¹Lc>»7þ£Ú«?×l{e³aÁ:ðÌ=2<͉f{"îLH=FßýΨ`ö¢I}tÒ£±Ï`€®Â‹0ÕRYÄr2åÜF#æ©í3æÀð¶1½axæQ‹Ýºlž¢§Ó+Ôbg¨?÷áT›r–“¹voG ýô{X[o|Â(øýñf\t .øFøÇÌúµ »P×ü›XTu{;Oæ½’á'%IT—þ xÒ}¤f2k6Pµ»«mRâk«´ñÚlm#ùÇŨ.ü电àÑ÷Ð_™ô­öÒ‹êé[¸C?.’‹õ`b¥´šÎ]GeἚBmòIQÓUš(èJ«)´ý¢7ü”‘wDY}@”VŒ¯VWó齉›g‚^ô#RíB:ž·UWÀ…¢ód=g«­oŽÂÖ¶¡8HËߎ¦fkJ°Ž¦D¶‡aüð÷±Þ%˜oMŽÝ"Ýáfe¢˜ îç ¿}¹a³qÅ'à£[Cž%¢ž‡U½Ï#ïkE#Yq†V¿Ñ;YîÁ #³©7o×7'É™KÖ´™ç_¥'>£×VëD°æ-e øU\²¢Áø¯Õ aÑ` ÇÀÁ—S«.=‰Ÿ­ÏÄÖAß4–sL*ßèO5=œ“ªñô¨ÂäTm`Kþâþ6%c¹#r‹NŽ[ô¼ÿ]É’ÆàñF“q%Gý^ `ŠñÏ·e#ó’ ‰õðå]±‘‚Ѓ=.”©AY’ÃØ=úKÁ¬¤þü9þã,»ËŸéƧ®ÕïüT3YG«-:Ây¤%_YŠ%¼Ë­„?Ÿ&`–GQOçŠÚÖÅLó[K™‚J¿ÒhˆÜ$2®˜æŠg2k¹Š´Ü : °¸S˜àƒB7ÌøÕh"Üñð´gLæ3>±vï,•'½PuÇäÒBß•›ZWÐ7»^­¥Íé0Ùi„ùl‚}‚þbm7¿Ð¾;YMIü›;È^#bòCà…©tŸP;TQ2XÆ#PÎyø…Eruæ àÏ}ɰfÃw¤+H =ë_£PR¥1“µ„ŸñA+µÝ„‹øä¼)žJ7µ5ÊØþFœ ƒÓ–ø®†ù‘¾ ¬àþÃÉXèB•7ógX)Ð_y¡"›‹ºm,§=ÂH)Cøøê3í'gÏÊÌo‘sÐi Óùä-˜u>¾âìÇtò™W¨‹ínŒsÕOÍB}gó©('Î8¯7·:GB%jqîÇ)#­’&ð›ó9L„³@ CÒw sUP‰6ˆ¥9üy³”c,Lus“™®£ÕÞñÄ‘Â!É?.à?,¼]|}Rc;9 oŽèbR±Çy‚ÿ»/âÑUj¼ód¾()ÕxÎßýÚ.^)>êkÕ]3ô8úiµ>«œRbj«µ±Úpm«çû_W–hÙ@òãòÎG—ÝôLÜLÿÝ}¦NÿªþEüʬ¼¬<-ÊIwÁÖ/njYm3þã©xJdwQQEtõð™¬zìǬi{pú0Ò£¨‘/MÌz›Ÿ#ØÞ{S?2-¢Õeóðìü†Np>Lg|ã±øtžõÄàoX±2] ºúN#½7”ÁÂüª )»§H{bÖìØ×@øÎ ØÇd&c3jaDù¹åk­X$+ÎÓŠ“¸¡f »ð8žØ"z¾`WSûyØØ¥XÆ[ì7'Zè½zµJk~VV«É?6὆°jažþ\ùyê"N’×xaÞà¥fó^NaÍQT÷g–ªx¡Å gÅÔjð«kœÐNÞºíœXòºì$ƒñ Üný&v¤#YÒp>m:Wœ ü*ÃôpüÇßÊU­‚8º× ÿá0ñ8î䃿›wã÷õyW›DZÿ;ðšiAjüøéRÞø†t>öÓÔœ†ô¿ª‡ßÍF» ‹ú_s\æÃV‘/G—¹ån hSRûv\w<•=Óu8±s,¢‰üד3L»@W³Ñð)«ñ‹É†î›ëðÛ똸¤ü"–*­yŽŒøÄB`•'À‡:`ùGàñój¡k‡njñÐg‰ˆ«!¹“±CåeŽFÁÔ”úé ÔDÏÑ©x¹6x¤J0èãÈç*“1œ!†þ¬uObˆ•pxµ™x?yˆúÁ…Ônd?Ëàã+‹cß;ºu5³™sÀÍú¢…žˆwÆ–üþ|®ÒýUr<ùk¹6¼ž³ U#ƒ°ÇMQ`M¦þÃ…Ü!ºÃTgæý½ ;ÈJüÆ"º‹ ûUã£t¾r©ÕûÚ}êfmÖ*WÎ%A";Áð䳎0¥½•瓘x–uvÑÿê \Wê2«çùàøQ³ä¼Þ¢êt]‡s%†œ~µE¾2ë8:R±_\-<Ï6No¨Ø{2Ã> muÍhÖT}v |ob›žôˆ8êÌ?6ªúyáA6˜'>»¼M6³î½ ê­†x¡ÆVmÇfÇú ¤BtÝËÀžyš©y›³¿¶Du•úå_ë0è<žÿ§/ º‚ÌtžÌ{ºš†ëEå#^(^êCµ·ö}0~þc‘ÖO›¥m *ñdTqþ™ ÊÍ….Çqà?âɺz ½9u*3õâó Ÿk5µ Î];ÿÒ?|Qƒ^{EQÁæç}/W1E4R³jKEg8ºð¡HʦۚãÈÿѹ¶ÔúpüÇl‚m™›žDø‡ôºð§±ù)Á¯ž‰QLàÑF¼îz­“^„X6¡ê‘l!1x ¬²7Üùþ;½.†—ŒŠ’ÈýÇfÅmY\´¯±ñ'`.ènK–täµ>ùq,¢¯TA¯–c¿ïk¥"¹f?­&1S]¬¯ÍÂæá ]Ñ ¨Dõ)Q_}e—+๡[ÌU_a~TcµvkÆ%ƒ|"â¿zom&WH67ˆ•FÁV,ÀÍxɶÏáÉþf⫊Ò{ (Ü)»µ(ô1¬ÖZüÇ þFEÔ´µÈ“²÷墌‹¼ÿMˆÃǃ·ŒÆ‡d`*} 2)¿püÇ.ôâ¥Y-ˆWY¬y œÑ@¼˜*u«kjŒé±û·ûsÕ_©‰™Í½š©Kw¶“?iÎZj•D{ê‰m¾bV÷hª%,ÜMüÇ0“õTÞ‡‡0ªòóÄ诪a3ÿD{ú^akÿõäôA«—sÉKMÂ0®sê Sø_»ö¬£»•’.`-Ý—‰ž»c›Çp.9ÃD ÷49<Ì,ƒ~¶¼ÓUú_Í2{ÃÔÇ¢šZqôi*MÄÿÿY€\a:ç0Ű'N<Ó¦„ºËéñ_Éýt¼Lmc–â…âÀ,¼g‡~d2Þ HËÉgN‰›z3µikJuóÏMTc±ÎÛðŠñ@™ÊÂÎ6âÕGcí_ã?óÓp?ÔÁd vTÕ߇³ÅtjAòÝRÁžÙýwçrjMQðžÂÜ£Btª~ {Ò‰þ‰ÃØý,N8-wÅö‹Ãñ{è÷\‡Õã?jÁtžÆçŽÄä³iM]F£<,ÍeУã°#ÒØÍ}žÇ£ñ§GÂñ]´Z<[MÈìyåt>Á¡xQŠIÍß´RSÑ÷?A•ÚÜÂÏMö9Ý^ …TÄò0g製…ù´ldóùoÎêyjÂmÝít˜ß¾TÓÝF“„±ûå^d·­à-ìNô™µ<¡V|¬õæ^ÚóÏ+³§vį·@–曃¼ô3ïLïñãô0Ùn&‚Å`Þk*ƒ6l Ù °»1òŠaK-¶¯\ÃÍäÏΓ;˜5¿;ÑÈLß«ḭ̂xȯTAŒÿHˆÏìŠo;‚…®k "Ò+8ïñ`òNx£zð)ÞäFõÀ—™ŸÍ1ð•ñI½aÞëwÇY“ñn½¨M,ΊÐ^3…—1ˆ¾5¦úI» º¶$ÖÅÌ$Gˆ˜FÑ‚ û|Xé…æ@æÌ%ç:M¥Þ.êÒw™ié˜{ p!Ùfnà Œ¢øþ£ ºB¿' Ïý”âåV³0Z®ô:ŒM]ã9*/ï¡6^k=§²s2ÌJEj&£›ªñ…çz¨ô¤áÚþc‹zSCyÞ™D FòÙÌêXˆ ,'gåÀ5µ Ÿ·R8ÚZ§ŒÝL!ÌoF7„¬=9Œkm4Óïé3zÌy‚ÿ»/LÕ»üýó>)9@š¾ÿî×~}¥ÌWߪS©Œ¥RmuÔ:%‰¶^¨MF•þûïQVi99åÄ ÿ_˜¤ñF˪¶Q—2?ê¾¾þ£t¤–/ôîëi:Huï`{pËú0QN«ÍQÆ^†o>*\ô?£tåÑиèÞÄÜ6¦Þ¼¤Þ¸8Ñ}Mh“©¤Œ&–„¹/ãÐzd"ÿ'£™Â‰.êt›µ»3®¤b¬BSê?®£—zKc÷o$³èCN3ˆ;–Y+jŇÚPžŠ øTDöÆR?¦þÜËìÃÔÛæèš.Ã2m™>˜¥‡*J.Q‹L®³™ KŠ×0»ÀW á«XéôìŽý7èû…;å‡ÂxøãHð«SÎõ®(ñõKpV7x7óÀÌm˜rÒƒ~RuáË}á〰MÆ‹|As¼d±œÕ†>Œ%¸Þýàv6^Vwž_nuýªJ£M—S 7ñIƵº9’QŸ1ÿq—‰çÈ=ºÐÕ×JÂþ¢é{fÄ%CÈ{‹÷èH¿oÐ[=£Š1à¡xâˆoæpÇzÝ—@O=Á* RWÃáËü¨Ïø¤=Æ~ôW-Ñ_ÑÓ8€­¹ÁÓß›˜&½™˜õ}åÿþ¯Ô‘ê$çÉ|SrÿÇõƒyÌu&°>ã/ìé§É?vkžÚ|íýÛ­â5e—Ö„JÑdäÏDE2ŽŠêlæŸû OtÝõëûã?ªÊ½¢ þ#¶¾úÝ:Ú)²ÆWtùÍ!Oˆ‚ú ç9üÓ¹ µ‹ZI÷!?˜‡þƒûWÿQMp{¬ÿìX<²ÐÇb¸(¦Ïþ§…þý³š»^ŸH6 ï¥Ý“/66¾ïö4šK@÷Ïb…ŠÀHÙ7 ýÛï)kÄRòÚX†x¢NXaV]Kžû;ùÇò…èwGaû2ÈÚ­sø§.i}ØAcÖ¹lñíùuÉŒÒañ’‡ÛyÂ<ˆ f‘‹<ÿú«ÐLmÈê1ÕÓjV²¢5|ú0‹ÂœTgòù½ÒL­+ú«6à8§ðFSð);ñ"Ñ'¾`ÙËEœ_eRÛèÑñj1ÁýÚæÌä”Z’\cµ£²µ8¡?kqçšÝñMsÉ&R3¿6-wlj8ùÇaå!s¯‘o 7ù@VéÁg°V¢ó8x¡?d-¢ýL;z‚•ÜË5¯â XˆÏº­oWÃêÜ´ò¢:™T<Æ^¢ö›¬v‚>‘»¨ïN@¶0ÿQëŸþ|!wJ€-.#û‹Í*ÂÌ“°üÇDí¹ó48üµØ´iÆ4üÇ.*Ÿ±¾/µƒ°Ê½àÏïù˜)5JÄb¨{÷à?ëq¶Lzäýq_¼×¦ÈñàMIÀ‘.cÃßÊT†{˜öñÎØÁTPgrL'—iÍü‡Á<ŠÚfÔæÝ…ç»¢ µ^q”ô>ÏÁ|Ìbð+s­ÙÈ܆‡ÜÏz…­O¦Ã1.ë“ðtÑØa;*»¯ƒíõÃj„~7¤ÿÕ$e¨:þ®QõXîG”“}a|Ð´Ž #úT˜jÚÛÒŽNVGô·c¨ ÉÿÑï ƾhU®r^n,5Ž~Gp<[á?\¤—HD–•…*ïÖÖQÔÉmÑÛú‚±=æ?–ÓÓ¤8g‘Ǭc‡¹Ù¨ñ‹‹ýÎë-¯î¢k^t)Þpvnâƒô7kÒ¿d#û*j7?ÀÄ{à‘nQ×H|ø‹2è¯,SÑŒ N}–)LPÏïܯ>c~­'ÞhÈõI¡Ñùx1ü¹Ýó«x{Щþ´ã÷$ŸµÆ8Dí}«1 »¿Dùœ'º;þCë¿/ø?ü5ùGþZÉ®&pžÓ¯mã‹2G Ûñî»Uûi=¥8´íàWSà?2¨G~i¹+Êføó»øçÔ VÐßS)íCÝÎ|üöZrÁ£¾dmMa?Œê®ð$øUEÕUóÔÿQåîÂLìzÏ(]¹¡vRêöì ñüÛ …T%à uA¯ŠO Àæ§Â›±%"Ëe·²ýnRœXdaæÃ¾wG;Š/¡+êb¦øXðETïÒ\#¹æ£š;±}žl[»îBWìèùG P…œi=ú©eäKØå qEo!~õMÙ¯f€ßY¦æŽ.‡ë®s«xôÉË­‚û¢¥ZA}ˆ‘Unù–Ø!Û¹ã9È?ÒÀIÞ¢v¬á ßKy•“¿l/ê±Æmñr‚U^£à¥Þò<¤²3d•ï_­Wé×y¿8Âøkìã˜bü¶gLóY,Ê®:Z¹µ\ùN²¸þìpùOSŸ›i5DN­"Þã$XÍG®é Ôzj¸a<芴‰ú'FVøóà7:ˆÓz,êØ’Ô¼Ìs_¼µ ¬É·Ãk¬Å[”KQrPÑîEþ±” é_òÜÈm~•!_xÌ'%÷ñæyL¥ µâ'm0ÞèOIÅ]Ûò=úÝæX|RCºÑÞ$&áè@=am:¦a“ËaçW‡mÁÃôÓÊ!Ð{ØóÔç“«L‘gŒýd3-a%²Óo¤ý?˜Gèù%™7~oª(Ò~ð¦™d ."èû­Pæ’xòŒ5C•ºTÏMT“ƒ˜ èNžÑ’  XgAïÝ7ð4ƒé§8:‹¢ø†øx¦Yìh㕘á\/ŽúJ³«¡Îàñ š)äz‘ÊÅ>Ly*I”¿˜üã ê«UÔƒ|0ÏÑåñ:½}k›§È7¢çÊ…ÿxI׋Œ0õ:Ù»+Oèr¼[Jj% :òX‹È²á-ŽÃlÇî@³¼œÝͰ ¡èúŠ #O÷ &Uß~À¯V1?êžÎýøƒØì¨He¹:|@ÖŠ£ KMÖQÓJà8Jý`nüåu㈕k(ýÛpE ˆåúË6àŸ¯¢¤ötÊÿO_$¡+z®’‡‹PÏYÔ?æ®2K¡MÒb1«üd°~÷¸’V;¡ÑjûÕÔêå¨/ÅŸôWŽÃ¼$’ŽŽZ¨¹U/u½î%”ý±èðµj¿ïZ@KBþqR”GIT~(Óµ¢.ù‡Š%»~wh”®<†ÚPm«O«Zˆÿ¨O]Ûé†OªŒ(ï!¿©#…œ!êó¾ü?üê¯u¿ò=^ŠïGž} ¼Á¶ú-^åÑu!…H|±hé÷(»Ä|‘ÍVlžÿ<ó¨{èƒUÝÏŸÑØ-3`óÑõüéþ0QéÏÛ<© §ê³y™¼XŽ póoà™SYõû¹|a6¿_.x[<ÖDÈŸ«ê~5#êÚ `Hð÷*ˤðîd"%ÉëËÈqØQLw*^j/üÈò‰BÌ¡«á\wfµ¢Nw,¼ìQ¼å!ü¡+W[^ «qZý1àW“°ŽYŒþ|Š'Wœ;1¿n ÇlUî’1\Å Y‰ÁÉᪧË\ÄÇíQ ¨T±—¿ZJþñ‘ë߯U¯ ÷ZÊzºðûijN Ø”¶`[ÅÀN`ußqr¥=ÿã1òóOk+ú«§F"çÅh¤t¸uXÔ1ø hiB8ÉÝ“ÅÚK¢‚é }ÛÀøWc¡é®‰Ö6¿µ”þí‹Ì;(}ÒÑä5í¹½¹A°>»Á†•ô9´ÐŽ/´Q$Ô=‰)žâÉÉ|AÃ|äc=,O[s5ÙÖ^êÙË[èSµ¶g J±Ø\sx+Ô.…q} ™ÿ1úw)øÌ§ð#º¢¤LþáASoæMœƒ.‚ºÃ“.b#Më&½m•Û\´ sÀgŸˆÆ£Ó)í±L̳?_23Ó?Ä@E]@ :® Ãú3l¼'xÖ*öX©NoˆÏ,KFx¼p:=0êŠ.åYT?ý {*·tí¥Üg6v¤@sU%q<Ñ{+Àê+eúá§5“X1L+@žìøLá÷·m }™žŠIx·^<Çų.ùÇ.3++о¤õ;õ—™JE_2ãÞ£˜5 4 šÀôtÉë,»!»þÐqøûÊÿý_ ¼‡§óIø ¤aÒÓö©¯©ÿ0´?´˜:3?‚ëÏýÑ_­!ÿ˜ªí%ÿø5üj²FKE•ftÿ”²…þ…ü£¯:O_Œ~w‰S/ý‹ýsk ^"@TÁ[·’Wõq¢šNÛ#Ú‘ß¼G•u†'¤ÿŸN .ÜNa}v0"2Žøþ¸ÆŠGzbàK¨‘²ÃZ‹™rµçŸú÷ÏŽhMõÒØ!‡±‹4<û zöý6ê¥<ŽN)/ÙG~êž"ï9¼Y9Ç''Ç}Dí³te!¦¶Dš§eüÇêz×Á;Œái­'_Eª‚Þ¡µ‡÷í Êt‘ ¦V°>þ׀ȅeŽi, ߆ßÓˆˆËq–·ôVâWAÊ5=þk3«ô未â?Ú“Â_ýŠ­ûÊãµ·ùyä%åG]ÓÃÓ”'¥ ç«x‚9 ¦|¬É/^/—„e”ðÕOã?Zi¿Øÿ<îPT1øõïpü‡ŸrZ«*Ë”ä ¸º+ÜÁ䃰s©u‰kPÛ…¥õBñ¤À†øû{ÈÄâ0}GCßêr°)åÈ{l½Ô1*;Þrâ{ÈFVƒ_ÅmêG£Twg0³£qmHg‹4(©:‚·Í4JÉúŠ0ëMÐΊ|øé4ðñ·ñ>ä½S©D¼^´üc!ó]›XEÉ?2˜7a}Krn€_õfí‰Ôì䣴»¡uÁ¼ÄéÕC5û„Î'ÌÙì®üù1<ˆâ¸H§Ã*àWŸ¹‚R W>6J5ŒúÁ«a_ù'}#OÜ r›³÷“kŒôßmʵ¥!ïN?Ù7ôÁºƒ¿†~7üG3²žÓ¬ÖŸY×H+B0ÊiJgøóײ§ñR®Â§ö…¥lc䱬Zø$ë/+>ÜEüGwú™L³ZYð]ÈžÂÒÀøPÿ×yCb«†@ Ö?ŸÄœãÞÔÎ4w¬r<£&§«uÛØAýG;Ë›–éA*’ƒ+é{Á{²ÏyÅÿ»/bPR?¨©ÉÔ¤ažÜ¨îÅî ¬*­.ô‹jyVÙ¥¤Ð–Sÿ1ÿ‘S á³¢²âye»–IÜoÈÅ[O§ òïê}ªø¤¯ca9­ã/í3 ù?“Xá4ݩׄ§Fþ kT$6ôAK¿D`q}N‹Äà.‘ëw·(KÅ ôÈ È\òŸôÂn•DKô„ü£!ˆÖ>*ª7’Ñ À’ß´Ê‘œâ­½ Oö1<™ –:ä3^(%ˆ=—ožn ¨Û\ê^‚¨Šêaÿ•Y3q‰x·á=¨ÂEAŸ€_k¡"-Mþ‘›~² ‰íO%NÅ{lડqaN´®…³ËT¨âóö|EjÂ~øI»;ð28ïsr X¬Ÿ…{m f÷~hrÍÄø’ðê×1ÿ¼¨8;Óü# ü¬ÅØëRøäô욌õ@{”\$:×°‘ý-fÕæt>»¦†V7)JMð«êTæÀcf…·Äª{duЧ­Tmø¢!ÚMÄKz¹§§rº!ÜjâðF e#Œ¼Ôn sÅãèµãÂS‘@4›¸eÚØ«à;³Ð^ͧII«þ#yƒŸ—'Ÿ¹Þ¸HÖtPõZ¹P+^Óz’9’íVÿµ!.¾o '–÷ÂbÖÁžå_Ýáç¨Do©Øæ’x¶ådˆž¨¬Ü¥¦‡t­°f!€8]£Ñÿ»@n0¦ãÓÚá?n>ôJ/h™oàNƒÉ–Ò˜›ñ2ÝвÍÁüAÅxŠø™JoÕ Ž©©qKúñÓa¢²lk¾4;€Zµ¤úd2‘¨Z3S?Ø‘9àƒ`C²À´¸áKáçÉ?ÜŒ ‚w¤¢ßé5´g“Lo¦!ÿL‡r­ùAYüE üÇq4R£è2õÉôgJûº†4¤ç×ïä3ûàϦ’±”·ç—þü+5)9xNWÕªfú'®ãÜÁÈää¶Òwä2óv'²Û&T“è–I½_LãñÆ1ù¯þc¹zR¿!þDCÓ‰÷ö¥0³9Ð>U[j]²Z“;æG=Få€Mr‡÷ÉÉÛ—ûÓ‰þq÷¤‹øµ ?˜ ÿ‡/¨+ÕuΓQU5¶ów¿¶ìe®šEóÕÒé9õ `²šþ»»P_ÍÑv±î¯]Ý1å(ñà ‘‚ótÈf`¥©I\©Ï_õz:ü¶ø¥}–ÒÈË 2Êüz_J/Ûèw›ñ½;ÔžÁÚ{DiÅ”j{øa<;vLÛN®*lf/ùLÏÎ÷ã?bóéBU2JýÛOiÃõªø¢¸ðÊ«øUã9/ÕŸ!ñDÝ"ú/ ³ð…šÀ)hŽ#»'»•¿™Ž™ÿ[³û<‹ì¥>`Ó±vBôW±ÈHã—‚ÂD¥?¯¾ÿqïØXõ4+¹ãÛʲvb8„ð˱ô;È»>ó9ÙÑ©œÐÛFÈÄaVÀWŸÏŒç]žk>Æ<76)£ì[ñ/µÛmW•ØŸ•\2§MÿúóÆ”j^=N0â~†»°Ûꊟ«ÊÈD\ÖJÌ×¢hjIþÑ—Ÿ{r²ÙÑbäŸ;ÂÉ?¶â?J‰üÝX»V` ‘ L…nÏ{ÿoR {燵ýR³ |q5ôÈF¾ê×ÔBaîL[­¹n+|ÙznäUý‚ë\VbÕ5øó.t^ÊJ¦Dg>Ö^%΋uî–”CÆì7ŒYïéˆ.RÀ/ìGš†çô5L˜íÕXäE g©‹°{—¤¡[î<2¦lðë±û9ðì-eá0®kí9‘½ä uAÄÜŒÇòú«‘ætð«2ÔeŸ¥þÃÅ1€+…鈅·'3ÎÀ7Ìä^§òtZ¨~Ö×ò Üf½ Äícåvc1hXKsW;[Z ýîEk ØÚüG*s&^º?'3˨Á‰7` lÈŒ—©äíÈ?ê¨qéÊl[fýÑÿª7ùAøŽáÖ ²™êð3¬1ü~¸“ ÿÑŽ³¸Äùµ'xþƒ~76“Æ.J“M®0ŠGò Y‰úóiä3¹ÐÖ^E‰µüJ:vÓ™¬?ySEºG7ã€÷^&r›'† Ù ™µ„¾~—E/òÁäÏOÅ-Óÿ³­óDrÁ#(¹2:Ž8‚¬ØŽjtbô£Kp,x/3“ñ7št{úíi_é×ÃyKþÛߊEWô9Γù¨dûù¡nSãkKè~•N¿¬6cÍ=JNô»^(°ürÿÝsÊe­>ùGLôµÑe+]Ò¼‰:MŸ% q@OùËþ£› VbªmzÁu÷=ÔÚJÑ…J¿èËŸˆzzç9üÓ©ÿ¦vUËëÉ’½±myëƒ0·”×ôºDt—Á5bñ¿Kè_²öŸú÷ÏÎiSÁ¯Æð|¯ šže 'þãþè }KP©ô‰Ê2šHwxJñÛE<üÇ pœ­Dæ‹ÁH{˃ì³qõ"êµ°)¿å´È:úÑj`ZIÁeÅ‚UDÛõ’ü#1ù<Þ "ñÅüÞ†&·¢»Z:‚]Jú'ªÁü¹;HÓZYPê¼1]@ªÃzT“}Ⱦ`e½ÈrÖñi³ø“ßÑ_™á¬˜\­­¿¿²»¾¶ÂørNðÜG¹Â@™—Ívçô–x¹¾DucX33ýÛãà?–†ã?6)´æâxUÔ´&÷À®?÷„KéÁ¿.X²¢ø{þÇa° gþc&H\# _úÉ4C¿ëFÞ“ >c=–è ú×éÂ’eëH´¬YÑźÐÿj&LU,ÐÀÉØÒöä©©?Qûüë1i~7'>Í i%qö$yOÎ6Tð«õÔl$ÖÀ¾Ö¥R<5‘óT2Í¢ä)›@ßJ’´Ã0]'µ®xÇ}ä ÕƒýÛkùœúIæH*Y¶¢õýK®š¿ÁL·Ä”0ˆ’È=jß_äª?i!VÃÞa^±…xåy®¼Á(yÜXW«ñAúcYo™ë麞{™ ;„êÞøâ¿Ð,w!ÿrÏÿý>(JwÅ]Ä}m§ö ÿ(/ Â[¼‡32¨ÄëD¾1oTœ.éôY?¹BV²/´ Íòlö8Ü`ŽŸs½ åvž÷j?w ©iÉmâ›|m4A#ÏZMÿ¬6Ö fjŒ¦n¡ñaþy*«þ£8çxüs.ÑeEqÖù ÖTgÑï°ÏÓ*ö×P$0v›å°íÓ¬êäà?¾PØž®Z—Ð5¸3™*·™Ô2Ì÷øüCÄ!ã˜Äðú‡úóMê%}‡Wîr}Z|2s:¦‚¬e嬞3½±ž|‹ã4}QY÷›tùÍEõ§™Ã8Vç"ïPGã5ÏLÈ;/ý¿þEB¦2-vžÌ[%ãÜ¿]¨ÛÕdô+I¥ ©ÍônV hG´ÅÚZm'YͯáW‡¨çj†r7ºÕIJŸ[/@\»Aß(ÒÁ<%Óë‡éçÙAuÖR/ìű„¨I*~WÓÿª6ì9Z˜ð¥¨]ßqý{ðí3É”Fð<Я',ÿÑŸþW]Øfr[ij²×6à úžLTºÎÌgÞ6ò˜¹ÌYhmãa¡§â톂èd$ÿ‹_MÐ…]?˜ä 6•ø|6±ý]ÁÞà£Í ðç™éRܼLÜœžõƒ¾ô6J£¿ê ‹†Ñ_½Õºôùƒ‘V‡¡éΉ=F5‡úA‹9†í¨Í>IµÄõ Q¸ÞË)Næ±³Ö5ýUh¶°(øUnN&2¿á%Ï~ØÎL OI¿õVô 4oQxÇÉ,W͜½dÜåší¾(m”â†ó÷T©ÈdmOäx²Šú¢©ÌM?—~ ùá?0íéYR,Ç0ø1Tü½Ã/­Àïo$ÿðæþ 3¾çz©_–6~µFæ2M¹[$£Ê²!úÚâ¨àF™­©ÔÁ¿è±r/7Ö¡"“¯ à//Ø×M\Tý‡þí5UoêÏ òD0¹€Ý9¨À©äÈH”Ö `à?’8öп}+þc&ýkYåÍÖ7ãXë]´ cE}ñNÜpâW›áÏO‹ÉØ“¾Ä¸'E4+›c&úŠTxàöàW¬ªŽeŽ—ôcll3ÆÃÑ´úÒ7‘Sp޲LQn±ÛyÅÿ»/\`?üœVé#ýwÿóúÁujdwWáZ‡pÍ3©ß«í R²ª¬AE÷:bf¿¹ƒýÏçŸMÄxUߣsŽ­¨?¯Ž¬(˜Êì#“ôðà%ˆgïñ±*­é-•Á|KuD*§íŽ¿Y‰œ«Ò}c(úݸ0ò¡/yþ#±kNøó=ØÉIð[«`R‚X݇üÃþ%tÏʦ5y*6¾oX®¤óCgš×47VÛëVžŒj ñP>D5Ù\'_þüœ@:Ç ó±QýÕ9bû\àW³Q¿ú þÃ7ÔcsvŠq“hgŽQŽ'ì”aÏlÄlÅxDô-‰Êo˜ªc5Uƒ±Ñ‰àYšâNâ[+¡¶­Ký t®ç® Sûƒ³¶Æ-gõÅ úï> ’·çGµ¢OËK{rqüAgôÉ(œ,+^¸ „‡x¹ú\¿)Cô:ï”Øú ‚—P!V2ŠõÔæ'ËZ‡WÛDßÌÚ„âÖƒüã>J„t ÎG}ÅqîŠ7g™çÕdâÜçþªÃ<Á›çæÉßbü&¾ÈÏf}GVh¶‡Üã3k÷ þSº£,§"½^å)9¬j\ Ž-*S“°Úé?và?.â?l]{ž;ͪ³ãO——=p>P TB¿ûž~-%˜ÿá+_˜þ»Ô=ÉãhPšŸè_r:ô#ó?ù]ZušÒ+á+õƒÿiÿ«0))è·WϯŸW{qÚËÐï‡Q_¡íƒ_üµêúcÔ×ᶯ_5±ª¤QWéÐ_]Ñ“èm´†Îû•ƒª…þª4™k:bÕÊò¡î!:©ßÔ=Ô®èqèÜT]¥“‘eÑû‚c.Án5ľÿÄXUy×ÅOüO\[1±»»°»;ÇîîNìN;01PÄî@ìn1°»ý~‡ù¼„8Â|Ï÷¾3Ïû:ã¹§î^{¯µöÞánPÔ&Ô³ÐÇŠDüoŠJè›ßŸãe¸Z…á#9÷Jê”Ä®2d¾ó‰ÒËÉúQK¤Æò‚­euþx†¾’ Û1ÓX^3¸˜•àÚúæƒrû‰¨mÒëk©f¬¹¼¹´-ÊŸæ·¯WŠP4&ÊŸ¢þ(¥ãîÕåN¥ƒÏ‰ƒÓfŸ°ŽóœB5±Yø€ms–6y›ü@ÄDÿhZla@B²|kWTmp­¶FÜÚ>ƒX¿ ­s$ˆ Ð멪Ÿ"¹}©™¢or•Ïék¬JŽ¡N« òÞƒG ²vªw胂.݃øiÍÊM~|Âq·!ü8 ½?ü@ï¦dî?¨¹fñ]ñ #ú'Ó‹3gàÜÑy´‚`ÞJîcîl1m‡zá—ù‰Ø_Ûšþnjij¨÷@L_­(Ñþ1ÖÝ©?Fá¼zŽ7™±žOŒCäBÒ’Z /óK¼#ÜC7æ—Ä'¶¤GÓYÊ §òZ‹ÿêa= óŒ³L OCE“Vl.lX.ÎÔêÏ£»p¿‹+9Âñ¥ÒŽœå2Yy^®©ÌS >‰œv õQô+lÀ‹i[`¼Ó 0\§J(ˆ>3ž düÕDð#4žZG‰ŽÚwz¡‹ Á6åd-x´v¨|ÌMö¹Gÿðgªï8ª„¾ ×0¸Á œeÎ0ó¯HÃä–Ô}¸kûÁ&hÕ5¨Zºš?àÒZÁ_¤RÈa&³u¤³{u×£E¥ ÷ú M8>E»hg^HŽª¥ûù“çä6’i{D ÿtfÞz%°¢-×»õ|úù-¸µÌ&t2ËÞ\³+x_ˆZᄄ†Q,.{¨OEntÀqš5÷›6ÉhdËcö£Ï%^°Ç8±1 ë=€³QŠ3Í÷Ά8ðqÔ­CEYâÚ6;~ìe/ÅYa±¥Ý¨?n‹ïÆ3&ew1e~9õKvÛ~ÛúK˜Wõ x¼²sÝÓŒ|° Nð˜Ý´:ð£?Ôè1<öÛóú!­¼„¿"†œG6í¿úù»Qû§Át¼”x­˜Uu*d„¯THÙ©ŒfÿÇz9Q4ç_]”®+%Å=¾ï7Ù5Ÿù% ð…nÄ¿{ùW²Z]ùó,ó°çÝH‰I4òÉ “kÕ>¢™ìUŸ¬~‘ø,ü˜‘~"CØ?öç8rgÙYíBt™M†Z‰ÈUUC;¯v#£;N̸ÖÜ#b°(¥þóãÊHµ"]J݃|v,™¼…ãy7Ÿ‘Sj›ÈÁ3¡¼í¢°ð„´€ëIãÿŠoÌfI+ùÓ}‰±ÞZ-¾«'à{<Ðè,üH¦P,ŸÜ?ýµXiLÕß–ÆÚ€›Œ(]‚ª@ÅÏún†mAüÛõàÇ+"t˜j-ö£D~D“J÷¶ˆÃY¦ ð¡šq$²†×© wWA[E³2ÿ±üÞ̓¼ª0^„Sèç‘áGf¹¢š týÒ´§¾š ºµåû„çé.üõ9ñ2µÑ -ƒ˜§$ÖvÄ{;ýx"u¡¹]<®$²ýƒ;Á"Â'dþn!ôóSü÷¸w¹aü;ƒA癟_šh½žˆÂ¬Î~œØÎ?‰æ®úËyÀv¨)ÈUœPLÆ <à öpÖ†Š$° pÐU˜•ŒýQy™laÍoÏŠƒ·±ny–#Ö•£Ô=À£Éè3ôàÇjôÎÈ ¥a$“ÿúã}"ÿ& 5ÏItözü´’l"ƒ’5Ü=¼¯Ô$’ù£”mÚƒo_ôAĤQÔ5™{„ „ºí<[\Kÿ/~ ùäJzîÍí’âîx¦8@ÿÇcÞƒ¡T¹Û´½èçÓÐ*\ÐS6P/¤G| z6@eªÖ|½*G:Î|•,Üá²:öHûñKóå¿Ð»[èÁÚTXM/ô÷fxÍz‚ ÇØÿqýƒçØÚÔž•ÊpuÞÜ¿ñtÔ ³‘¾¦ìÊüD'¾—“˜US<Ô¶em Qàk ð·¤ñ ýuᯎâ”Jo{ 8» XP‰Üœyˆj»ìøÁ·‚ù»}Pðº‘3%ÀÍǶ ÿn2¸µ¸`[fœW¾¶è3Õ͸l_,âßíaÄEßL¯]'v4ÔŸjÔPÆîç·÷ÿÿŸ èêö°?9Ÿmlû¯¢÷éˆ)”5àGJõ\~xK á³FÑrBÎÍý§%?%§8Oò@\yÔ÷LÚÈ'P£žï ÿ£u4ý»Å•Ó"-þ«”ĤØLLm)–â› p>Ño÷͹ªê¥+OË|À´jIx—9¨Ê•ˆù©ˆPµ‰s-Áo"÷%·«b<óK¢2‘·2MMÊ7’Í;Ä̉Ú{ÞòÚ(̃ˆ„à‡/¼}\Ì÷Å0Ñþgè/5KÑ?Ê0Û(¾¾‚jÈ•÷ÜÒJ·K'×ÏP•,CKiHnQ;§”ùÃç(Yàeÿ"/: •…ó*†ÆðÒ›·Ô›9¶'^ã™ Üvªòö!³Ï"{w~H^²—øŠãy o%Þ'âüFr•Õp"g^^7éHà‚s`g‘Ý^·Ô7JÊHÎ2ýÔUZD[2Ë©ð A¡ëhÌ—µôb :8káÇØÅ‰|NzüÅ6*²‰‘Ô¤GJ>±‹¬·©ž“lÎÚ‘dm-´ø«ö å ²ŽüÔËq+}‡éßI]7éHº¾6â•VJ:ˆZK४£Ç庋«ƒ˜0µ” }P>n£…ÄÁ¿[ÜLJ,MOTª'ÑŒ0Óúþ¾“³y“sN ¹¦ Ò4”ØYt˜ŸÆ5‡íç½™Á[“)‚è(¹Å”Ô`ÒNøœJôŒºª•äáîáS¥5ÙAP({ký þ+«p$þ«z–NË<óçDRP® Zr ¸µ iøµÓxž(SÂï«z¯Ç#dŸ½]`%GkmŒ§#| Z@F¼\¾lÛxK¶¶ÉVp0jRê£VÌ/ù¦†ö-?sÛ  ¡ši.h:ý‘ƒà¯’ÕÐy0g½¤)ÛzRŒa—£n–¤Ó½3n`ª™rÜñ"T3{)ýPއÔõ;5›ñ•­q˜ªR=¡²¹Ð‡x:“ ;¢¢ß'Î{›«ŒtÌ¿Ú‹Ž³‚'^D_Jõ_OøÚ¯·²<œy¹iˆ$³˜d¤U¢‰å˜—"#Oè»8¤6}ñïž þ8%|D,zó ¨£tåIÉ5ÙUHáNöY“<´n úÏ­]ãÇ@•Çì+¸LPÞ(Í¿:¦´Qs1¿Q#xå^PÃT¢Ÿd¶vƒú=¹<øñCÄѺ‹?±MVÏæ1W¤FëyŠŽ¼ŽºÈª?F‘§&ûMþ‘K߈þaõ…$e~Iľ…ˆÏf¶R—I'*+ E&ίq:&è—é‰ï¸z/i#g=OK rnWk೎x”¿ýNbÒˆ¥{Ãûõ³ÃNu'çB¿€¿*ȬŠîdœþdõ@å-ü»bó6ó¯žDrÀl¸¨3¢Ê¼¢öh 74“þ¦à¢åÈ Ò¨#ÔsÄÚVä=ùŒITLENÌwÔ%ü8,}¥ÿ㆖Œ?Q+»Ä=Î.¦õÁìK÷a¢õrñ'Ôp»¸æI<¯Ñ`–«z^.ášk(U©?zk™‰ï3Qt_rU{᯶ãßr ‚Ö?@ê$ô|W@?Ï?TNg<Ü}ì0jíß—¾VyBî3?ñºËçƒ ßàÞc2¥i…>Öe ]M™ŸhMÔº¢‘ýã:Ò‘nŒÉ¼M "ÔŸ”œÿ>-³Ý)H3©a\.ú½)}Χ`_bÙvõZ¡ª4Á¼}º&(rŒk¹¤ wÅ9Äiêk~û8¸UÌo_Ž3ª»1zh1»\ó³ 㛹Í8¢Ï5Ž3¿dGìƒZ1oZOþDÜ0ý¥Iò8¼ï×2ü».tÒÔ4¾Á3Å0ks¥ýͶÌÈ­@WDöIÍbþÈ|Æ«@$oj®å¨ñƒt²Nû;sW2Õ»°­Ö´x†Â›–\ïÂŒ«èîpv%èOiþq†ÍQçÙÏ´Ö(ËžK?Ÿß:›>S;„â}Ê~½%äåª5¬÷¡˜^ZŒÕ/³±¼uÆ(ú¿2åQ¿£yë]‰žÒÔ¬i¼5â‚ë¹…b6GôD! _rBÞÇü’¸;ðÍü(23éª!½–l5î]ãÌ/ƒnQ©=\ácü ­Áœ{âŠýxO¥XàG"ý,™P2ÃÐü„«ì2Ì!P?P5|Á=çlø+?îá$ü»õåÚ~QJ\°?‘ÚÄ¡Ï!þ«ùš‡^W|Ööñ;Ps”7“‚ÌToÍég?“‚Rœé+†‡úã:ÊŸ›è#žÿ<ÁÍ̃¿A$šË÷´J'û}éÿ8 ¿9ßx‡ë¹+›kçØ–š¦­‰‰t­Ä&û˜f¤ƒeÍÆ7»;žGx.B¯øç‘ÿÿÿ™P^†¿R™¿ûoû?¾KëÐÏ·Â_¥‡¶zöIiéý˜Ë ¬ÃÌ¿Š^ýqYb7*“õGb­™ªª™äìœ$b‰Kª£ÚJéhžQ¹KÝhä‡†Þ Î9µ¯)ÊbцtïPF‚è¥#:ʵätj/êƒÅÄ%f1ÂJ¸ Ü¨5ÉFÏ€iÈ„ƒ…ûk£Ò¾WGý1˜Lp=Ç\@f‚2Gn=“î kDÖœ¼U*øQïgxB%Ö¢¿Tໜ@·úÏW€g½ˆýû‰Òqàá™ÈDÿGmüÑ1%ߎè®0åÜ»3NYÈöªÜXBròXúSê«{p#ùTò±í¨‚-BfŸEöLtjÝñ®iXHý‘¦% ›‡æÌy•¦ÿ¼Ía¾G.Ô žàGA4ùûê#%”Ë=n"¦Xª|{¾ƒ5Ոͳ©úê¢û\FÐ*ŠAê6bI:{¢RÌAœ˜2›+_ ~ì–^(Ñ€ô¶ziý¨=T²úÏûSÄÔ_S­DûžA¿ž ¿ulŸÊÐTÚ¡¾bogè™Y?TʉRTÖþÚ ÄÇ ÐèoÊ|zæ™ÊÚÇ\cäAíNe¤DK.‹ã+#™}5°jœSK'öD8ÞdÅÚ¥†Û ¼ØE_ÇdžÁBœ\'aŸÜÈš§áOêÁ¨—øwÁÍôï1çÚÅÂ,¢`„þÁ!øq—leýáמR¸}á¯Zïo¡ÖƱm5lF£(U>lñ¹-wà¨y+ÂþÚ,b;•ó}Pm*÷oÀÑfõ9 ävRôBøe:Ï0Å}*<á ýãªÔ\5ôaê¶ø¯zòöZów×ç……3}Ï WªŽÚ°iCQªÙŒaÚ0Ç|ýz·é’÷À+°uÉšÈ8X"îØÈ]IU­MY—©¹“OÄp8Ô»z3öcZÕ\6QÁ{; =þ;>Û`JJ³‰qˆëpaÚYü»gDé0Mä‘ê˜ 'Þ€ez ñ…ýƒ¥lµÙOR‡X6Óefk†Õr¦GÖCõ‹óì«L¾ÓC›Ê6\æ;Úñc¯ì¯ž]9ZkzÓžŠW!õÇüÝSØ_ëK§KÛ6ÛEüŨ?ÖáEÈfºÂ»%ÖOÓÃuŠïxeý9=§ÿ ÿnJúÏçÛßUkÿG\û¯ì J?|“¶‘—)‰Ô,ø¯p)ƒ²÷Õåó­£¢%‡~Ðé Às<'O¨;±ƒ.-ú¹;û?LzÔb¨¢¹°-øQ…<¢é™bR9ÊüU ÙIu!~¬#l¤Ý×*Á&´ p(ñæ¿QTfSѬ(âÇae¦š•XÏþôŽQ•_óES¸‚4¤Rø /:F”üã³Ù+Mž¨Ä•éÑ(A–\dräš÷Ñ?X…Yp§´Ìß µ‰öÏþ« J><²a@.S‡ä×ò‚¿ßˆÑiÈì?Áðx‚/ûP±ò}:ó)%×üÍYš0œ×ĸ¦1àÇ^P–Íö Ñ˜µ=àúdòô×tÐ,ãê-O×$|©´@õK¤ø‘]ή&ÕâÀKX]ö³@›–ø¨àg8£%sÕ=LvmvÑb—SzºW6G¸‡Ó”@ü»ÃÀ³å ÂJ²¸»õØL‰ €)ZEåp}Ùî*'Û™<ˆöùa‡Ž¡Æ×Ô]á3*ÕÂñÒ7ãõm9ý0ž¥{Ú&®5ÓY× ½û&ÝÙNàÇK½6õG [}3wÂÔ_T&‡;^NîÝgÞVö¼S¿MÕŽê^œU{êJtä 7ӛόÛ8c™‰ÌþÓ˜Ný1‚ i=Ñ~¼þ—_Û¿ü=¤Áò &ô£j”¤j,g|a“¸læG/ ¾=0ê›ÉmÍ¡ðYËèKÏnl RYÏtüõ ÎXýS˜h(ÅT¯£yœ€oŒ‰þqZÀÚ¡ŸïFã>ÌüÝ6æJ&¢ bžâ¸µuèç Íz(K…Áê»è÷s`'œÃ쯭.ÏÆ¿›]Ñw¢š¨ Ó§a«†O· M0>ãwæ<ÆÛÐS–^èUŒ`ܸ*Où ßëÉ¢)wÃà‡zL ájËœÔs"û£ºâwNel7VÓGRĬDÿy0uM1󜾙îó¢ôŸO7lú-kw­;ŽÁlÿ•ù%)Q?Bû?^HÙþµþ¡â㊫,P’Ð~šY‡’´QJ ~¬PÖ¡d—÷Ûߨüp‰yÚÕÙ,>0‘Öœù‰9èaß .ôÆQ«)¿‹R‘½ŽbÂaþÕ²é›êÑÿî!td7T€þÁš6D~Ir¢¶Ê«N&Òo„{iIžß«#ûGó{wQs3aß B4T×ÿî a~ÿˆ2Yµt…pê«`¸Ó t¦ò˜ ’¬eÖU° 4ž±xÚQ9Üw6ÌAì?®—Ã_%$ª}Fé°:#vPgÌ#ž¥K/Œi5}5è6šïRAíÌûÏÝ•ªäöíq \$þå#‹.AŽÞ‘ƒïygéŧ-£þ8-N«UCfŸÙO(Ì*Nñ@a͉J߃ÿÊÑ?|ˆø»È­—G^“¡¹ ,mÁ4ž'–‰úã£ò1ÌQ~þè$— Á˜àG3Ü\¨/›Q‰\Ö2ëû™æ°E¥#Ž|9õG/"bÐ?âù‹"Áo<:uDøÑ)?`qMÅ`WÚÀÔ=$S`Ê<Ùí ý=¹¬/ŸhùÎÆòøE¢´Wjˆ:Ü· pHÖ¬ò»Ü¹ôyyëÁ ˆ;Óû6Åas1%ÏÞ*ñ~%ÕÒ(ú'2hf˜m_¯«5Ø&ôŠMúó‰6i™æåÍä÷ÕøÁ6£`ö•B?ûQ}<§8ÆB*­~Dg ‘Æ“7hâóÏ+ug~Éð£3wÚ–«üUCã%x1à•ú£ŸÏD©¨Äù a2º7÷ò¥‘Ù°¶¸ûèïÑ@êÓÿñX²ïœôI¹ÏñÎ’ñ9Ið?%Ã÷VÿÕh:4Æáç²ÎpˆùŸ”*M9tú“(>V·h^Ôœ Q1Œ£¡”¼D},rð¾¹Â!6ÁÚ9æ—dç(³Í\ÔYÇéטAϤ?þµ¹†µUªîcÙˆEý†7qÓPâi^vü8,¤ÿcúÇ@ò½Û⾑϶ØP›ÀÜ_äyæ&oV˜²ÙVõûÝAÂüþ1eºZ€è–‚¸ºJÉ÷³ •ˆ+šÂJ¾ÁBOgþnwû“ s€p?®—V£Üǧ‚ù„vë ÃfõY,Q/À‰à(Ú…n=þÊ9 ó¯Ö(UÈè»ò÷uþ™Ÿó, +ó‰ù%Ș¿pvR)xÂûx²]dþUëßÖo¥Ãòq‘\ß ZàÏY[ûRwáÚ/kÝÈÓ_‘é[›Ó~gbÊÿõþØLWMˆÚ‘“þÁ÷ôHHÒA)«â§ø(Ç”ëpO¡~º¨\ÝEöQW†³‰GÜ,¡y°ñ¼ƒÜƒþó­"Ÿ¸CVGé`?먯¢’†¼y›(Šÿj2ûyÆŠŽôx‹^äâð_=-ÕÑQ:b+µÈ¤ü5Gôõ]Ü¥@í9:Êl˜¯ïèçCèý8‰wýUéø~ ZlÎ:îÎlj±YÚeR¸+~§úƒgÑÏgSmÍÖöÁª­Å¿ëma_mfän‚µÿ€Ûø<^Ö9àFoðx®)7°$…1`Í/iËü¶Nd y'Q]kB,€nÜ ¤\C´w¤Gþ:ÿXôïÔ6¥ù¤†ÜÝ`j³ö(+šŠ‰äÊi”žc¼­™çÂW¤g†™¬|ÏY¦ ¯ [#îÉ?¤0'üÕy”¡U8&*èË©«ó OûõÖ”§Óÿ‘Vy¾¶šýƒÑÏsØ1g·"HÖåhµH}ôŠÆf¦/§¯ó;4ß™yiaïÑÏç ;~ì–·¨7ÑÏÝÐÉÍÄS#§m*L.žG<\fÍÍ\ôî1m¥ØP¼Õ?îow#YŽG¬Ídm›žND¯C; ¡) ÿ‰‚~>×~g~Héÿõü]•:ÆQ¡¤Pó}²ôƒè~Ê"Å[ñ—SÈ¡ó0£pZÒöGÄöÇDÑô”@·ž­z Y¨Njûhîl¨|;ö1u Ùê;tø!°m›D{bÞur‰`ð#jóãË]™¼Ô‰HºJ¦5ñ®>Ý CÀ ¼OgPâ»m…¨%üØNýaMæ¶âêªkÆA òüe(¤®°Ü¯ÉøÓ2ØdnŽÅ þó_>Òöׯ%Ž>€ÇÙF´´p¢_H]T™*÷:8µcYîãÜìÿ(û‡#ŽRŠ¢Çtƒ ¢§%Gª‚ž/£*¤äh*Jé:âýfÎs%ñù$óÛÛÊ5~sLS>Lÿ¹AU4Ž;çGýÏd~bâní,ÌÓ2H…s¶6Ë»rÌÉ ¾ƒ¦‹7Jdów3È)U…{õ õ¥5UÖЦÈ{…šá&ø±@=…ÞÛ—³ûfU™©2?‹ÚúHðÃ[º§”ûÑuzÁ&9r„‘ î2xºaôë9BíГ®Âàì ‹4Ðk–ó÷|mŸxB}-ŠpÍÍè?/òç¢>ØND}gwŸò.¶&…sï…þ‘—hêˆ b)¿Ïɧ«ú¢ÙÄC?ßáxã©?Rr÷³¿­-ºnàÇBbó]j‚ lÙ^ÕÚ,Á”¥üÆmX¶‚à{•OþÉ~:­‚b9"Cÿº¯Ôå.Ÿ£’,C•Ò[ÿ@ý±ˆx5gRæ^7oãß=I¤wf â ½&G\…ï«#xz,þ¬„ª¦ÖQ_ªd% ÐKæ_Uâ­8AÿùJfK­eþî&Ô…Šì˜ÝÁ5¿á¿Zgmö ©?ª £XûjDAág?¿òòõV~¸i õ¢†¾šýQuÑ?êÒ!Ÿ–n’÷(òm™uŸÉÈ®L¯/Îv ½; ¿¶ÙF—Ãøw·ÊGà¯zð¾÷§{ðºHff°Í¢0ówš{PË›àß}Š®ùN_Ï<÷Ú\÷XüWñê\…­¨Ë‘mÿ•ú#óK–ÚïŒÁžŽö_…¾mQùéýçiQËÓ«yÕ—rK޲M*¢œQ<`°èkžÿÊŸùWÄñ%dH7ôóTxì½ÕÅ"±¸~ÔQzFë< ) ,Ðf&SÕ‡c|Ž~>X~M7}Õt¹§dÂM—(îJ.”sªƒÈ<É£k¹ªÀt„§¯J<9 «“ˆÿ¢‚º: 7nø‘›?¥Qn%®' /Cn8 ÆÈEò¿ÊBVòE ê·úgÃ_}¹Ñer‚‰Ó©p’åW#+=GF¼J«û1‡v<ÂTÖ_Ow±âŒ‚R•ûúy6å–šK,>1U‚‹Ú “·i¿þªÕ?ôlÄ¿k휚 ®¡^ˆËìUÉ-®GiæŽ(…aõ} ?<©lFóù)Åcû œ ~´àj£?Ó&ñ<ªÁ`çÂÉÚü¨a4CGIÅQ|Bÿà2c®§<ôk´á !¨g>‹Ðiñå/Ê2ƒc ~#%‹Þk‰˜à…ßv çXÆi¯›WèÂô¥ë/EˆÿÊÅçÕ(ÕøêˆËGÿ` HAþ3“p ¸ Íƕ֪*®î2sý»¹š^t?ôóñ°muà…›þÁ¯p cµÙ¢7̼g˜úã¬zJXA{‘'Ôè—èµ÷Ægáμö&ÌOÔmL2¹À6Ç"f>öN6’êVGÖM²ƒ:7¦þ7ê÷Uhýñúãßú¯ÞKkP¤g(IÕìêc8Iò@ÿØÈüö¥Ô¹äèuGž•v*Řœøèþ %A¨ée™¹3S… Ž$©Z9šóÓÓ¿[˜ÉÝ©èpÖ^¨Å<ù†¼XÔÔÖ2ÿJÆ9TW åñì¯r$?$—»ÈñÔÊÄw7žw-œ¡ÌyæúU-F|ˆ¬õ%~à§b"ýƒ{"ùóË[™Ï4«ÿÜDšJlº 3Š¿ŸS;\$z—&2>Ã1>: ûOK}ÅzÞí’Ú#˜0o¢ó⺠Ñú oY!˜'â÷g¸ùÑx7žFpuF<7Iš¤¤GË.Ç{}¤LMÄ, ïû 6À¤›DÒW€Ö.¥ ^ê=àGõp‘%ô˜Š¼VöïˆõýÉÆ}¹®däNøóeõ{¨SðÓ«ÓÃpŽ äYl£éÿ( u—š";õÑ4œ¶És&kAÊ¢pÇ“ªìùN{œyÓ4?})üU{Ã<¹}%<¶çèÖxŒþ±Wðª…úaŽ™N¬½ž]„ö ô–úËäLÜ‹ÇÚ@0;ß§,Dö.ø¬ºâ×Do÷£ùxsüW>àÉfEíÐÛRoÞá ýÅQ¿‹öŒ÷<þ«óÔ) •üá&sL²#°XÈü«JLâ…ûö!=òûè–_c¤B??rÍ£Ö«Î;~‹ýƒ{í×[™ýQ7‰&åù^áh?f¡xwƒZÀ,ÕgoÔRþn¶ý£?½%ÙqÇ)Ô_©ŽG3ëb ßæ=vüX-POŠÞàGÞ˜[âHë‹vâÄüĺ¸ŒÛÀaùÚ.˜)mùM –²]&½p5¤Ô/ 9^! µÕ_òÎܰ_ñî‡Øòœ0û£t9-ÐÿݧëòFöGmQLµ²zœ¯’´K*ÎüöÊBe7úGôü»—¥“JYê‡â½šÙðàÄ•åMê ñL=2ÿ*zúGeæ_§A9ÍŒ>•]Û¯v#äØì¯íŠ*í%‰}¸m§EéÊc3›>™Z‡|r œH9bg~}úÀyÕrM$>Å7ýóÛ ©³¢p++ ÕrdÇÇâIäI‰U.°8÷‰¤7áP Ò…D/e‘÷g¸]š/<`üª¢›ÄEQi~äåhÇñ%5À1u †!=5mɃi»”œ8â2¥2üR=²—‰Ñé8RU*ä;±É˜“¡šoCE\;0y({„ów7¿$–¼B¾Šw3\ÆgΚäF|ˆú¡S×½Q"Û_›ÿÕ+q’X~ÜXÊç[zC\ÏV_|.Ñ]=ÿʪ?¬=Nq©$ÑîŠ<³Y‘àÇ é g/SXÓ˜,¿î8¾é éߥÔÙ³.òÁf,D}x볎oûx0¡!w×[ ¦o*ü£Æ4”ÊÔ=ɉgÓÁs Ø6ê¬ulåH‚«³Ì}&Ôï$ôŸÏ‚#ùF¥3€š¡±\ "òW~Ê üW£À£¥zèÖþÁe¸U/Á»ƒVVßÝÌžޔT5c‰º¹ñ-×›Ó2 ”˯”w†kónMe?áJÎï½ö‚úc¶1I‡þÑ õã2Y´'ZŠ3[Ï£ÆÓ§‚eyFÇÁÕ+Jøn© b9çˆ>ÜÄÞ¥mÕ“!·0¦ãˆZmvB?¿ƒ2íoüÀ-v-yÓìúÌ]ÜL¸wÃ<ØÀIº¬…òpòªµéý*.‹ÆñC”ÖëS­]?–p–Í™QØ=稑|ŒƒæN>«µ±ý|êÙ`0‘k°¿ö«¨H&µïLÁ„,£Š­&êy#*¤Ô¨µBúý˜«ï‚J¯ÌßšÓä˜SE[‚;~l‘ï©÷àUçSrÒOðÒx‚[ûk—Ié¯g?üÁ7gó‰îŠûª!ó¯fá¿Ú¿{ ¶>ÈmþWæ_%gËÞö7ëõGè3ûÒJ|¼VÉÔjÌ/±¶sl”é'\Œþq î)*¹xè’6+ùÑ?n 4IZcõ‡’VN C·øª>Vó¨£é¿Ê¯\ab¦¯HFÔJÇÆ¸†Ìßý!¯ÈF'ˆ÷â€èªŽ·ß‡Ðóøõ§”Ì'O¢–åi¯"_(EÉ~4ÒÞ¨õˆa~0F.ða—Ù^G=øëÿåwŽ*žj:ÞœXøP=ˆZqõ‹d6cˆÔw‰¡×P¯«’ñ¿£¿»°XÁþk¯4}0¸ö®c7¹‰§V€L~±ß…ót¬Åeþ¿ï¤ÝùãüÄeJF"}Xþ‹ÄÌ쨨È!ˆÌ ø±–Ü|;jýZª…{â(úùïœÕ1åóèVt™Êõm¡þ×y÷;sÕÍñÆ´¿êÄœ#¶ƒ{ÒþÊš_#’ëN…þñNœ?ŽÂ_ys¿JsõÐpÓêO؆0E] #ÔgJ>e§Ä .¡¥¯ˆ?vK÷•4ÂØ•ø>Í…oú<î– ‰ ¥Œ¯ë,ìÈÎÑÀq·–ø; ý¿†¶‰}ÍE"œa[¥’(Ëy¥&-&Šß gßBõ° ý#1«,óÛ³Öþs'ð£&µ\1âiI¢ó(=ƒ–ä—úc¹r]$ó“`3ˆøSÀIW¼MPfÐ>Ñ8Ƥ\èÝ…‰ù‹¹ê"œ­Ê Š;UcÅr´„þõ\©Ç38À“Ì ËgõÇŸÕ§‚‰÷yÉx÷±?ê³¹Ö¾{w©\ó¡~x -t!ÎÒ$5âü’u¼ÁAœ•Õñ~@;O5ßl,Ð%üW]è™~ÎþsO¦J­£ÿCCÀ¬þèIc¨öP9d†ýüÆHãä&ZaîǺcè…;uÃKx¡'F£}ö]Ø3[ÌLhÁŒ‡ôŸ¿£§ÆÂO®y£ÞF,‘öÔ~±±äÄêI¾W§x“Œõ|ßýõfFmâ|:R\Èñ7sÄ!ôû½0N¡¸YÌÎÆ.Ô¨yx›™y‰¯°^ÿUüWÏD!¾cS´E Ûm6>U²%§ƒ¤'úùðèˆÔ” ø'©?ºríŒ{h>–‹/€·j¶è+¾†Ñ?öÉ×ÔÛà‡Ï·Ø|Æ0ms˜¬’€š²ÊLr3½m‘íý*™Ì3úXP¯>´Yï,þö|'›r—¾¨¡Žû¥ÿ¿ÿ_^‰‚þócþ+Ýþ«Ÿ¿µ¾–VÈ阿›^-AÿGW޲†þCÊXe—rTÎ$ïÚaþ÷¿:(íf~Éü»÷™ŽëLý‘–ÉÀë¨?¾«OØ_Û,šóÛK`ÍCÿyžzaj…q¢·,ð_ Ño&+6‹òþºLÎÂÓ^ÃQ™_˜ ¯“vUL< $ÏÜ'Šà:^!ŠªK¢pÍþÊxذ DšĤÑÌY8€~2™·âØô÷v¤blñuÐzŠª|6G$o6¯'ƒWSÈìöy/%Iô?B–R‚7. ®,™Üy÷aÿýW›•&è ©¯n§3óçœÉ»4&DÅ N8À…­›<á}6Ðr‘i¹õØùe”öÉoD<ª¢±Ü%*ÁØDó^Ô#­ˆIl*!vª|Ãær7ÖƒÄîÔ9èÕy­¼ä€èajl®ë Ytm#gVô¨†žXˆ*楺X½B®>R/~´=úS“Cô‰Tÿ؉ßϪ?âÂøT¦þ8 9„(Kß ?ï|\l%ð yë—ôûô¼[óÛçQ#Ž¡öÙ­^ÿ¥þèÁ4”†ô]”D]X >œ§v8¨Õ‚±¹æ1ƒ™3@ŽÛL;Ì‚—µ"Hœ›ª¡"ç;QÏLý±%Â=ô¥ÐÜ-v¸ñ÷(ôLb|ÆñG ˆ‚¾ÌÔJƾŽräâ3PºÊðIÇ@.6°sÍi#ôÊjª§ÓdåYQ5zé·´÷dÑ+é÷s`²Tðcýy£Èš» çq;S;í¤:› ºk7"èçšðç­Ò^hC˜Ô»MóF?_Áþ¨xÄ–ïJS;œ&kþÌ´•kàÇ|º4r/çášš¥÷Ð3†ñïº1ÿª?w®‡þü¨~Ôƒ¿zOõÍèDÿGWê™+ìŸÕÈù{ãÇr1îáHÖþó-àÇ\ý«8egRÓï{ä „]NgœÄŸ—û>ž~¼æf£9ñÞšß¾”'™’2ÛôF[iLýaáÇ1´©ñÔ Ãèåå5Ì/ÉC&ÅÆ=­x®5êÙš¢Ÿ÷4ó M\9æ1¿ä*SFvÛÐÓëÐýhï¿.ЦÓÍž˜÷úç •/áçɤˆ‘8UòkGŒ$¶¹àGê gêRL¾ò¶CïInžFÿ¨Ž b†slTº$Ú%ØÞ:T™¹Ä­ŸüþS¡þuR¼—R“åÿ»ÿÊü+KÿH¡V?†Ì/Ù.%eþîb0$€Ù¹ÑÛnrF: ¤Æ{õ Q´ÞªMmÂn«YôŸ'a‚{2öŸÿ.JE~öI©ÿ ÙS“Û—a¿Bw1G–ÝD;#€Ìî^”ýWþ¢,jGžö*rÔ¸ èKñz¾Tkï-ÿÕ-áLf½œ©Q©?¶)£Õ\Ä¢dúIbæ2ø«§¸¦ò}6Ý%’µ bZ ö&wþã³9 Í›‰4‰„Y9bOÎ'Ñ)ά 9érà]0WcA…¢L1Š˜7G¼{‹”d8l€I;a$÷¯†–„ŽˆŒt¼Å?6€«ÑZvƒÌÅU|ÖÖìšÈþz(‘o€^àÃprßâœGGŽèÅü·7üÎ&fw|"K_K~{Æm ˜Rý\¨‘ir)e›úEÕRé;À™j¿àGU|gù‰ÆåØu–ÞºIÜ…qð7tmQY“j1Åÿ׳Û(]TŠs´˜dÄÖž”ÛT‚ýy*`Zú}ãèåõ@é[úêm+W½•ÿªÓ 墮¹&ÙÏ_<¹´ô´-#Š?çŽûáSÞÃ4‘µ‘‹¬”nñÌàGuÔ¤|Ô)ݨ~Ütgôó‹Ž·Œú¹þŒ´`â0d¦å΃ýú‚¦?šNï‘l^mh:1Ù¶<êôŽV/ÒØ·ª<£Z%¼+î¹Òvî.Õ[)Ž7V¿®=Ó] O¶&%0 Á¸øó÷7¶+9QF0ÊTj§(3x‡\µWʦpgøDÝEGÊ3Îj2Èà£íÔý`Õú‘ŧe"áô†;z€×þ”Ìz5×:µÛµ{¨”]8Ù7Lš!·ÔâðI˜QßOo-²ÑÿaàÚMŒ®Ý‰>ÉÌI/n¯§°¿Ö ljϼª û=üÌ ø“ µ{ö‡,ó¦ð½²vé¤1rj£Å-P ÿÕÿÕtè0“´ÜCð#wp½…]Ë0{ à S¯Ñ1:‘,‹Ç<¥ÉT ™˜‚ï@…ç ~ìÀ¿[7Wf¢Z}ðççÓ›’,¸±ø5[Ì™‡tÔêY\H4Ú†î2L{ͼçïNgê>¼iÙaTì|âó­ýƒûõ8œ–áßÝÌ|î÷º3S×âv£<Ñf ŽW¦þØáx•{¢O-ÿ]âš;¾î9ìfúŒ?x8{NçZœ={î¾Á_ñ{UÑTTã„>N̺9#ôŸWZsî÷y’¥ÀÄ6à¥ÂYù;™é[ž¸|‹i‚ºmYsS:ßí áØŽÓvª~—çóàÓ :EWÁ@5fú|2#oÑêäÙô>WìõÇvyüÕÐh¨U? Ã,³ì™À~fË[]%¥mûlÙ'\ßü¤{R8š 8²#‘"ßžnZܹÄûÿç~ø"Í’GÙïŒ*Çú×üÕ[ɕ޼1Ì¿J¤¾ Ùÿ±ýcóÛWÀ_%•Eë¢.J¾JÔXt^ÇÓVÃXµG·Þ@ý‘†Î›ôjK¥µý¬£rà\Ê{ü”gùv‡qO*fàßM¡øñ·:+*ÁŒ÷‰¢þ‘~&:?$jŽ)Ž£þ®#c~®–&¢ ›7s«^ ×x²o¶=îb‰Í)àU­½2sDcTÝÐùí~!ø1ˆ·­ôqqÈ(Fÿàœ ×éu™ [5Üæa3léüx¥ïËДNL7#ƒ Ã݃dÓ“‹èMø°ßžÿÓþ«Ð7áóÛÙŸcôü]òÀ5^IÎvŽÇ!Æ.)r€íçîÌOLÍýQ×Ð?ò±yÐ@Iˆ¡uQã«åjò æ_%"³LmÿnyE&'U@Nô.dT"e•èDg…Ãs ý<|Gíï®>)»‹¨3ðí.%{î3TKŸË[ñD-N~x”¢(l þª´êùÝјR¬ôWóRoÄ!®‡·ú€Ó©x4•úc ¬Q@HýAÒªMîyñõ’­)õÉ-³R ¢JÊ»vž­!^N~׳ë;”Q»«”úÃÓ^£T†ëoÉßV‚ë,ÚÒ­DŽžŒL|×»œû›—“þ¼ÓðWõsÌW’·|S¨T*ƒˆ»{8Z|ê£î(3ՈǕµ)!:îq0t$Ÿ¹L­GðþÈø«r&ÕzO£¥).ƒÙ¯œôMòà«Z&1\Ý÷Ô„Ê~8Oi&ùøµ¸Äñ‘àÇvôâ´– ¢!×v‰g9¾ˆîãüºNדD”㨠±ùÌ%ä‹k¹Ž6Ú3õÙ/ýƒ ¨fþâ›m1V{É־Z"ðU¢%ôR†7+üU}Üa®Zâ<‹þ‘ê—úÃÿ®5½2'úù1‹EÔƒ+QRnðótúÓ^›ýwè?~Fë â“ûQ,?œ#ä[•– ài²òæ0`ˆÔᯖËtìM+öG…™É„Çê¨O¹‚"ð\›Á1<«Qø¯f…{Ê?Tœ}OÐì\@¤iÚ6} [²¢"ÄÆÛæŽq‰¬ù€>Æ8Ádò-q( ø0ŒN$B{DgHmåÄûμ_ p3ÔÙµê!ýƒ±¨7â·B5SÅLŒ~Þ„ø?Ûê&dÿG]ðã-Ý$yfmù@^¶—w*¡Óÿ‘ä-ÌŒúnæv´W!ò»sÌÛhßþt³_2˜0e\ç“Á–†Þ-Šˆsöë-Fz)r¢ÍñÀ”>ÔNEm©9Êt6sØÀÞûøoûR…„e‡[ª´a3ã1ys®ñ½ž!:ÒÿqÁ^xËWñäß ${Ïþbð_׌Zì‘©SVº€Ÿ£¨ÒÁ¯e創Œ?Î0ÿª¥xN¼ïGä}+9Äqƒ¿êFT«Ÿ£†iB%±–œ>Œ÷ƒ§´vŸÌå³/«²’7“Õ”O­ŠþaÍ/¹Å38 ~la~I2x‰Žh«pOeCÿXJ‹‹UDÌ™°6é@¿-Ž·“ú#3O­lSüÕP”ê5°5WÀˆ…d¹KP¥ûУöYÏKÿÇžMEÝ z@·X‚KÚIiŠÖÏØ}œüÿ!úù:ª˜‰ Z "Ö " ik…ÿª™1ÿUkÎχkï†+ê1ò–2"Üñ £<×PáyŠÍøÄcúIXµº†zþfx¢"¨ Ûp ©tÔ]åÿ·R¥ŒAKZËgÏäèð/«¨?f£ßÕ#*.‡ßª-ZiÓ ©Wß–ð_ÓˆÓÁLûúÌdÂá`Þbæ'Ö4ÖÑ÷±SM‡#¬ b“ý‰G¦ñ^K¨?¢'»‘Œù5YØ5Ú|ËYí£g8Ãfð7¨57Œ|fE:KÒ?t–¶»¶†‰ëGí×[L>­J¼íåÈr¼ô&BÑñ+01¬››ã}NNü¯N=³™'³ž*§ÓõcßA×ëä%óÄ..{íø±CƉ>o‘µâ–ðëz3û¤0ÚLvSØÚÐɹöÎ4lÍçúa³&x¹ w›¥è¤†1ì U‡÷)¶Ø¯ø?÷ƒ.ÏS8°½6•ý>Eï,¾I«e¬0Ñ?. 1[û£’âÇš¦¬R®PD¯;ò,þÝÜâ"SŸ^³?ª þ«øèçÓÔÉâ‡z„i¼¥¢é¿ª¨Hd¸û…3±°^©ðW6e«è…òñ^¤£ó­¡:(JWž€Ú*·ÚŸø>—ØW‹ì»Ù`_öG•&VŸ¾RåHLy-©î‹Â-ôU¦ªe©?¾§-Q0ïXm²dÞŒYüïªLàG |ã]þx†ç¥©bõ~*‚TÄâ69'ÕÆyfU´„qº¯¼ÆÎŠßµÛ¬?¶(uCø«6 Ù!ؤ‰0D•À8 Æ> l“5{wß# T*„WîŒÚú·ýƒ‰qŠ¿è÷.DVk®clÞýn0Yµõ»àú"õK8O+n>Z‹#ýƒÏ”Èæ'&`ŠŒ~¤€ñꂚ2k®Ë»£¨5ƒÕäò]PF¡¸pIĦfÜ ~—n2oíÚÉ@tØúYžèpžpZê>ÔmQæ‹Ñ/½ ù®© ó ÔõE0JqNÜþEóéA7bEp«"ê‡Yû#r˳üjŠFîØ”øÞx‹ºœŽÈW-D?_ŠÛÖšßžX‹ùKý1UyÈ[:¯Ÿ7ŠÊr*Þ@̓J殨)pá+‰|=Ìœ(*™èÎs‡¿ÊM'ÇQrü {K-ƒÒ.Ü»¨twÏÑjsE]©?Ø:ÅL¥¥øm뢟¤oÍÁ¶Ûˆ‰_¶,Ygòðèð3Ÿ _GÐ?âˆuä÷8Þlž¢»æ£ï¥þhËüÄÌ ·üWßÙëzýc(½i _îÉHôx/X¢!èCÙÃÌß(õ“[óFuç¬\ùävø;qñ4}5*£tL¥WãÎVæ·áx ÉÇ«{8¢§.‡0cƒõ—a¶¹êòg垇«àý=%»tâÀª5æ Kð–åt” gÞ¡ ¯d ÿ«nþe\«ìN…T“«9ÃÆòÐ)³ÅññXѤo~fѬt¶•ÇÕÜÌb¦CûHaÛGGÉc0s [³æp´o̰êë¼1Ëé?%VØñÃWÞ¯^ÖF…|#N‹fqÛtfe™+PŒù%Ì¥±yÚî£GÕ5©?r3;ÒØ~œ"£;Goék¯ÕÿÆþŒòú6~†9ƒ9p‘yíþûúç'i-ûÏWáß-¯¾­þóR1唲ÿÕapiß?ýá_þÝué’ÒB܃oâ{3Æ*5=ˆ>êJ2{jüWÑÓ?+ÉÑW½EIf¶ 'móÛ5å è §ñV”b¢G?u ý>ür:a~Éú#Ÿ:ØáGLªO_7L+ö·ƒÑØA\‰K‹C_{©(í¯½Lÿ‡3™¥A}½T!«(а€±ü¸Èyg?Òh£0¿ý€´IøQQY3ª ÂTYÓARÁ?Õ!+õGõÀ‡4‘ ?vðû÷(MéPjB=ó”ëµøTÈËS‘•[}Ø›BüWpù8ás<«Va?|˜ÛæG“ýƒ6œ¾^döý9£\ l/âù6ÀÃpPÓɃ©·\Q+Žp¾‹Ð¬Ó£Ÿ¿Tî…9ÊÏ“ÉåTwÍ çWUø« ÌóªÁ½: çtz°zXÜ—ïÝxÓà’RО’Úf$ø±EúÎþs¨Cýˆfª~öÊÚ_Œ.…º(§ÀÍÒ(‹ˆÞ÷ÀÏM0w‹Á÷ñ à õ2¾÷Ÿçõ÷?Ç*õ…5õ¥ ¿/Šî=Ðh/n`_f0Æ!Ïœ”J!9]„ a›¾òÉ ˆUSÁ†¼Ì¿Úáx+”;" ¹k!ª”í°hñ ¬kz¾2üÏü«žf""}qþ7“ŽÇRúC*†þøn½©5 Gø¾¼VúqO®e”£þèô>ówçÓ˜‰ÒøÓ›20oý Js_êªø%ÖÂ`µ?nó¶ÞŽ0¿½€Øÿê6ÕŸqw™vJß Cßo@LcÇËe>5>ÃÚûÑer•.ÕÂôuÔ! yJŽâý¶“úÈ£yOºó6,¿óÂÜ5Á;e»5þ«±T"P½óƒµ8çåt]ä7|øÜtTú8StUó°ï ûk¿¢/ÞC©+af£½§0-þÝÄá~àî)4î)ðWOÀ¼L¶,aÖ7ÁØ-Dÿ¨L5å+Ê„ñ_•–ת2—ªÜ‡…z!é>FI[&s-UL.zQFÀüyâÚ½‚>t³|q±Í¯¨joÈÂæáßíHO‚¿?ÈW˜§åBEÛŽoÚ1ñÍÈHµ±›ùí·À¶ÉxºªP¼æx™ÌìÿÈLÈzulúqr¢|‡:rä8ÿÿ•Îô«É¡ï*øñoû?±0>ûksª™ÈÇrÌíRnø+wvJ#öG»(]F|D&ýŠ™wõUMÍJâNÕS$ûÔTªs„|Êþ²ü懺ðWÅqnâ U¡þÀ,ÂØÊ>ðã¢8ƒÿêŽø+Šøa“ûÊ5Õ±h§îdñ͉~åô©äùÏÕ†Ôõ—áD¿ˆò8}\Ñ?ýælÂþöYÅM-O$J¯c9‚¿ÀJ—?f `,F©>þ(¦6R”}RaæçƒÒ:±I$ ;zƒ÷g7:ÈtŽ~°lÞðWÙô °;ëÈÀ†ÀÝçˆÂþAê#èÒÍP?öcè2J£Ì8 (Ç%ë±zÏ×r/bè›Ðòî‰Sjuæ\†9¡0?& ×H…¿Ú>ô¥šq&ÛêDÎ則ôOgßü—œéD¢òQþž†o 5üÕ=%0ÌQ~þ˜Š)úßÄ xºÓàÃNî} žmEª7ýø1J½BÛÿUSžÎtŽš‘Z6!Ÿí ~l’>3ïÀšÖ›8dÍIuáç‚¶CùïœUcðן ÷°Ägú„ðkˉ̭µ[ì¯Íáš{1¿¤8w-7|Êfê‹sÔ€A 5x€““óö3}à'Î3m$»cWÿÁÓšDLgâ¤å­þ¾^7%WÄ0ôe ÆR} ^ÙUhÝÁ“‰!óK‚Ù¼F¬5‰+3D àŽÝMô-¡/3Ó*VGVè_¯•¼aÑ?JÀˆu"¶ëËÑÏ'1¯ªùý5bj [œWÕ‰°wC8¡µDû®œ¡…• ᎗…NNSÍÛkí¯¯¦þð0ÚQ ÄÀ5ÍywŒSl=º£O6®à°6‰Àšq5í™ÈÒüå(IcäñðW=õwx*Úè…p.×fÿ`op¢šŠ+z/P½5f†t@ÿXJ×wv*æh÷èðìNÅøBì·_l|ú}ƒx+.ò}Jo$a¬‚NÒŽ®"Žâjàî9üWÓ™9üØØGÿà6º.JWõr ÜÔWm£('Nد·Š¼Y—¤ x¾˜ýOµ}F [°^Ì:Lr4”Ÿ0uÄ dŸŒo,?êM<â½L:‚ý`£Ûñcoˆþ1šÈ1˜lä˜xc¤µ­Àk‡z0sÈVÃÔ6/Û)3«-½©‡¨š’3w®á@Ö•œ,³ú‡„a·ýŠÿs?ă¿o¿36Ø+Gû¯¢wßCæ'º+Žj6ðÃêÎØ(¤÷|9þ«ÃrùR´wQºŸðRÈp"6­;èÒÃlS=À³8¼Ê(¢už5k¦ùôFäÏ™ßÞSŽ…ÿª+ž¬§" O­½:,JGLÆ~ïê$*+ûü vÇ™ w€¤¶B9È·2~ˆþá*ª©žQ¸æ3Š‹š\;6¼ÎZ"–7RoüšóÀ“œïßüÕÞÃÙÁ¤…èçd¾ÁÄÂíD·¹p@ýáNvò–eÔ¯Ðg²4²ªå¬Ú¹?ê[”òàF+Þë àˆ5·"ÝŸa“u2û·|#W  oÅå²€Åj³ß⇣|P~-¬>û¡ÄóÜ¥8°?CÈ «ÿ¦Ó¦^p½+ù_þ^„¶]ûHÿù»H.5•\G¾êÔmM©ffÁ«5I‚q<Ð ŠÖêUòÇ6t© C˳IÉ.ËØ|×D‚;ñïVþ°{}P~àW›Ç6[ˆß‹ûö,+B¿ÛöG}¦¶ÛÎ} 6á³/¨wÙ?øê]Cx³ÌÔkA¤à䪙}ú3vFm5Ú“_¡ÿ#%Sºçó‰:~Û™àÌ0òûLZÆ0ÝÎ_ú\ð#1çT˜{ (6ŸÀÌùWëÁÄêwlÚ¶é3¡yÏ¥:,@v¿ !¯>‹Ú+m„}ϯ•^œûEž[±Öè39Î\fqÅ@‡D.~þÝŠtØÝ£&+„R¿˜Ø<WŸ«v-Bÿ ƒØÏ|ƒêy4Ž¥Y!ýKÁ5è)‡ñ%Uc6ÈFz¾êÃÀÔ9=À‡@fK¶Díî ~¼²?ã!ÒTy0ϵ7¬¦3HÜÄøÄÞÁox’ú¡w FÿÈÏþs•é8d­ùí>àÇ–ÿ!î,à²Êº¶bïsÎmwwÝÝØc÷ØíØ-v·b‹-¶(ŠÝb`¡ˆÝÝßÿ0¯718Âó~ϼò›n`ßûÔŠëºÖZÆ8ê\±ob¯s½J<ÝÖ_]âÉcÆ¡?D4[Ó@ªR\…ùÔ]ú£¹@ýÇ”lžd ¹­ºÌªAý`€Q–ú}æŸowZ‡‚ô×`S'Âð2Zˆ«Tü%aþàf8Ø(•—£ öÅ\¢_ËLvû‡•uulð¦dhcð_ééwÌé?<ñ7Äž¤±<¯WÅe3-õû¸?昩`áKXY›–æ(ÿ±þ#1ù¾4!}&ºÀÌE5¢‹ËÎ#þ÷¾ˆJõ`°~×¢ûnçyŠÜ.¢ª+È?Fã?Rëׂ0Œ½JAú—Ì£§ÉqºjE®~ðýˆÐ<ˆ×(¥?Šªú#-«Z”úó9Bg©&,¯ýLåþ®Kkqéã± þ´ðŠÞWtR?«gDsy•W”Yô:òøô.¨÷D}µ¯Qü±œ1Tì’Þâ(÷€$B•kN}~ø› õêqmœî‚epË%õ¬<Ñç°¬ýyå6þªíŸÈ?Tºúöa»ô…Z(è› Ìÿð€5²uH1 "ò™àJÝØ¥*ÙÜqiÁ¾‹D÷YäíW+.Ñ*€[5ăìÆÎ'ÇbÂO¼e—Qáç_“;¬&[Ž4 à+ö“ü¬²S¨ÛÔ'"‘±,§PYxüîœÃmdpwY×v6ª±SNÅ¿¬«BF‘ŠY-š<"øˆ³ ‚‹ÿ°ŒÃx °¦²ØòrÄciŒ@YHtÕý±xýà?Ú‚XŽ$JË ¾ö‰ˆ!¼þí•WÌ+ËaËj€_ù Áƒ%oÓsï”¶z=Œê ü‡=ëË«5šlö¸~‡º©àÙ_u׋ªœµBÔúm"¿°uÿGé¹ü*ý¯ºÓ)•ù‚^î©ÍéFi"S[YU«:4ÈW«ýµîL펰ûïf'·ð$ÿ˜S=üê1÷,ºnL£>»=ú«çôo@É•þã>»mÿ놅I¥«dìßh­ðöüó‚쩇a稸&€_•£›ÇØ€xŽmÔ’”3ºŒÚ6+øÚ|ò¹Þ îSäÕ0ý ±ïYÑì÷:z{QÕØ—N*)Ì-ðÀ†¼˜6~Ò˜~7©¹”³ÚÓ8€GªˆÏì Fì?ÚÑ?Ñî¾Ð¯6 MEMQJ–§É@òŒ‚Ô{x€‡½"ÿŽQV|ñBú £r¾¡1™ïëñÖ} MnýëÄñÿ§Ê[í^ÿX.S›±QÖS‰a´ÆCÖ £Êú·ïÄ#uÇ8¨ú>@Ma«£y ÅÀTã ûb¯\ˆùYÔÙú‘”»s„\jÔ/ðmÕèÇØ°JW®‡ÖQŽØŸœk1ݺš1?ê-•ž&ùúe"§‘¢vm•ÓlV}è5‚ˆq(wðcqÃLïØÀ¹ÊÃô"èwóYKþ\‘JÖ3ã(¹\7kSéMc/ªþG-B+¦PÛÂÇÕ±ãp¡ªØA£?8ÌU½:¾cÏêð£Ûè¯JêÁŸü>m”žä•@+±†qŒL©;ØØ "û[0É%e*îÒ¿ý×ý¯N+˜ÿüêžL@§ø´¼ìÕD¦8þã48Ù:4Ët›‚§9§…Å]ÂîsžVQ rœÏù@jbI¿R]¢ÐÃ$:ØúV2›Å ZÓ©&_+Vë­ƒ´a×±¿«¡ÿÕWx»•l|R˜ïÞp( ±Ieä@¬Ý70y¬ýZ0±®°Äô»1¹2Q1œèü{„ìhl{IüD ð¾4 •Å,}ýþÚQ»1ï>3‘®–QÁ˜ç„“œU^‚—@sÐØ¨I†q’}M ÎÎJ<=tŸ^¤g‘q”¬ë+èÛRZÉ0 Q9úl5ôw$›©Î¾²aÓã쩼›ÉFö¿$ÄN—³¦¢¼:‹ÿˆ–SÛ’€\!3Úá6F™J³ž'ók³añ™FC2 ÄôŠôD…jW¤Ì@¿»À¼@E\ZôW‰aUæâ¨Ó„­iH—ý•àw´Ð]>i ‰ ¶Â2”k‡Oê+öÒ5ÖÎ?î¡EÊ„W‡'´k 'R?¸<Ô£‹ñðù.ÝøfxŽM¨¥–Pã8¸¼(\ò;˜£+UЉÍá b=Àíž_õŒÖF!œë b®D øWاª0IÉá:ƒZ•çcùÌS³8]¡ÁLOzH¯sO<Ò:øŠ¹ø¸ÁÌÿ¸à¼ õƒÛ©¦ò&*QÍïôº‹o4¥³'i¸ÃÑ€b‘# gxbîfÞìM3)uŠÄ“@ó£¿8+j†È+a‡`9*sÏw¤»J<ÃÛtqÔcÊb*ûXc™¿5hžºüÇ"Ön`~Bs+…{jýß‹ñNÿ±^}Bÿ’ž\QàÍï…Ÿù .þ Y€¬²?}dòX5‹Ñ±îÓÿ*=gs²ÙÍ̉’¡ Ïe}êRГ)rÖyzþW_ÄU'…èß.Ñ8×ñDná¿ê?Ü©̨ûª¸6*é4_m¢¶JÛÌüóà~üY÷´²Bˈþ걸H­M^ð«TjfêÇÑÿê¨ùç¿®…ù>YèôÌiBú¥æ&ÿè F©ÉµýÜ;ÅdòOúïŽpÞÁ!ÿ2ìש˜M¯ŒÊt:V¾÷dic<‘æ#½=¶zvj6½ ®‰9LT_öÃù~ŸÖKÏ]Ôºƒ²Äá®( Ò=L¾ÀFù³b5˜Š·d¼ýDè@á,†Ï(Ö‚”7BM™N»->)kÂ.7¤œ?¨ÖjbÉóÉZ¹_óH­^¬1ºX?lz!¼ZEòv'á;8Qö¼ +äNþ±˜Ÿž>zç íDx{‹¦îP7á?ìúóað1Eˆž:’M@rÛ`‡Qyq@®ëÙ̺¨Ä4Ñ:èáÖŸ'Róé—…ˆûÞ þc(g­>ÜÌØÓp¡°–»še[9 ßžE^'—í"ç†ã?¼ˆÈK‰møÜjXóom/¼ØhøïÁF'ìúÔjUÈ?¶ žýÆ{î"z˜Êo´ãõ=ðçÅœÇzä¥ñºiÀ@&`‰ãÃOÊRô¹†jjýw'‚\Ý3Ò‹/GÛdëÙ€5µÂÄ”qÿÆŸ{hÉ?æÒ%m&¼ó4c:úÝFj·#ðs¨\èOûÞÈ„fj.üGA2%lp~·ƒ,¤Õ µÃZ;"áSAùÇ ì÷=yŸÊŒ…äB1Q&µ@CäK½óð«²T‘ÂiPÕAm^]Îè92¯ÏÚœPëI±™ˆâwFgиòlÊ zUMc+© +L‘ ö~FÔË1x½!¸ÕIÚZ?:`•bâG0±eº›x¦_dþy“0xî¯Oþ1,G6¢†‚ðÄB5üy+¢Ý >æÏã_'ÐËcá§E7‚?.G7Ô6ò€þåwÀ~ø”ûžÿ±O¬Û•¬±ÑÕÚšPÍ ŠÉÚÀ†ìùu©oü†ÿ#lUÛ?ÿÛ¥Øó3cQðÄxãá<ðÙ,3öÉÊzô»½Aß ¢¿ú™VêÇ»LÕò“T†ç¹ bcw‚¯ˆÏüÈ.Uø{¸uØ+±îTsìà?BWüXIQTu—zH¨ÆA²­þx#;ÿh¤ß¥ò‹wðÀv¾Ã»,âØ=Éë†óÇ&W|¯iáwæG}BMp6âÙ ½Õ‡?OAÝ@>1S?CÄÜ•hx^j,+5Ørl²ýQáøÊkøsÛÊ´ [ÐxÎ{€nO'ÿèMÏ“jÊÊX§Í`.áXâ妰f;T_›ˆ—Âúá–Z+QÝl**äf`#oò”oAå…Í4AvÐK0øU|"ü…p 8SjË¢á'U±-Ì{1 /÷\&lÚ$tesˆõ—Ñ ÅŽcÕ£LOú·0?€}¥cj|Þ^2•ê|ÞÀ> ‡É4¿kíÁ"÷¡{(.ÕÜx$¯ýÍæã«Qœ‰G;˜bݱÿQŒŽ!WÙW^z«¸Âд%†žNþZ­¨ oX±wܳ½Xq§\ÅT«Qd.›ñ“èåQšØÞ Nø%Õ*'ÈFá‰ú‘Ë cÝ!¬)E°îsŠ2Im¯º·¡àf Å8™Œ®øU™ÊRÔqÁ¯â¦óÆû¤dÖO‘w%óežEK4kÃQT¤Kúpôfû©p†Š÷ºy„.~fT®Îâˆ9dœñxº’_‘B诞ÑI­OmgØ™‚ÆcüG\Ñïö šÄ¤[Õ|> Õ\+%]æã™q`¹}¹gF‹âAˆùµ«ÕSä3=¸Ÿz“ÝW—Ç™5Ø:”¤£@+Šc½ã4z劖iÞukgM'·K¥ÈÀó×–üãžL,œGüï}a¨óÔàHâ»’ä?{÷ïÊL,ò<-óϨ•Xe½’þ%˜`»ùƒ‘CçN+›5:•ÐýêóeÓêwè¿[T] ÷ou?¦¡·Œdþ‘Dó£Šõ8þ#>ûˆÞD c·[Äïôoß„Ÿòe"Ø7&üp\½ö`,¼lyž¥ôF+,þ1üGOlM„ÎÊ™ôßÈüóýÔŸ&>þ>¾–ˆF!/Á=Ñ—Hz2µ'ö?9ˆÓ 1,õ^J±•juy“ücÈÍlpÿa<9»± ¹cséîØ™L'™<®•úÅÕž~µt®1™­Ð€NªõoØglpžµä «ˆë^aíc¡s\LýÇϘ©÷Š7Ú%»›ÈZò…døÆÎac;J¶ Tk¼ ›€wYÜ–kõ‚9 _´§áÜ’™ÔÔøolÖXÇ5\¬ø ºxÜdÆS™ ý®ñrKlrGp­±ø¬èÌÿœ‘>áø#Ô–ç±§µð 1vW<Ò,™·5Öø,=Ã*0ÿc&5/@ëöⱆ‚ã4ó$ÿÈæ“Å-c•E\‘\Á6ÆñÞ¹Þm%­nÏ´kvÞÓ™7 ¾é*5vÿöt‡¬‡Æ©)Ú©ÍÖ9jZ#èßÞt|õF¢¤Qr½h(®:7þã‹(H5ËÝ@Ì6ΘuÉ?¦YÍñkØÏkf4£rc#ž}Im8ýÕâ8X5æGÅ%†ý±ÁðçÅ@,IW&»E“_Í×ÔËøS_zŽÚÆŽ`b.Ži䇭xÖc•*Ó,Wé@UÓoÙUF& RäJ?Þý÷ÙTÇ©gæ;SACßg_ý£²†ùµÓµXz.êí¸v…’™Üc6øÕN°§È¡s~ÊBüÇAЫ{Ô3dÐÏÑÉ@7×’úÁCtêÉùƒY´+dûD|,al´R5©?®Yõ£E2»'¦ÞÎyþé¨cÓ+/•^lc4¹FìÝo¨aÊ7¼¶žúó©0*9å%ð«¬úêZè~vJë¢ÛókÃÆü§bßýðFƒ°ϰR7ÀÊ¢›}OO’ÂFÿùß~e,õƒ¶]~ 6±6f.þg<Þä(QâèÌðôqÿ2Øë¿ì¿;O«“ý–ù>(GPþQ ¥Í[™Ë »‹àF,‡;üÇiø®AØex»üHÿăðçû‰|íùƒÅQô òmƒ‰ RÏ0˜<üÝpVÜÊ à7ëï´`n5xÝ´ð/ij䫰啨e%yRTヾ^?û9üz ~}8±bjE£pÍÆ…ã?+·è¿{ŸÛ–³3ˆ¯É9*»;.z(¸ÊÆkòÓÆs“\q︊•ÛÉ­úôéÁ;³¿jËü¨Òü,l÷

    ° *¾ÓÊÉéh†“ÏMF³Ü//EðŒ°IJµW¢›ñ^ÎDÏPZ4•LÕêJÿÄÆLco"tþ\¥çT;X–¡pÖ)MoüÍzØ¥ \Á–Æ­ùÇ%™îGdàO¬þc°¨b|6JÀ—÷ÀC6K„ÿèÏ÷÷ÌóØû#x÷øö2¯<Òøóâ–óŠTPÝé•pšó"‚~þf9GR¦ޤBãˆÕküo{2‡µ(«wbï[0]8‰i%Ø}q–3ÿ<‰ tú½êuüGOžRW®”.·ÓMk£È|ã8ôÚŒWjLþñˆ~Œ1à?æàÝ3“L2©ON0Êä!:ÖÛWäßù÷E™ª+¹U5ýì?ìùÑ4æRÝw,HùVɤùÞ/Óö¡ßÜü¨ÓÊb-»¸I%ÜkÔD=Á¯2]Ôw‰¤èwé•#Yž]CÅ…>¨±h?ðåY¢šPû†×Ïdñ<ü¤¶ÞÒy‡üÓ¹×é ™Iï ¶´š¡ þ¿¡±‰H$'Ò ›¿+[C ¦åŽÿqVë¯WÁsd4Ã4ÌÆâ܇™I^ªžÄtg°‰9‰K’Èá"4Þ.}•µôOLƒ?‹åøcðÏÉ¿vãåV‚ÜÍŃ<ѪÅÜǡZ#QÿQõÕAlîÞ÷Tƒ@×*wf±®DßÿÁ¨H•Ø ¢ûÏp#v-öò•LÔ‚«Eÿ:t_í­ÈAU¶9J½ý _ɨÈA >›n…­ÁÙ5V}NÞ•‹èùƒq˜ß¬7ýw+†Ú¡¥·D~†{¬û þñÚX‡Zè,3© øÞKÇN:­Û õKÖ©JÿÝíØú)üîD  µž)VÂPÓ‹Ú–¸Ø×ØJFÔ>&;ŒBwf轃™~JçÝ¡L|Jˆº© hØ-¼kkØŠV¨O?8¯ñ¥;úÝtüü‰\ÄõhÉ“ÛÂüïñµî\tXcPJå±ÞáG†3‹ë0¶¶«iûÍ o«ðq“É?‚û]‚øšÇ@²Ëª( ‹ÿ‹ùQB¬.tž™ÏJf5¼^?ŽôŸ>S&« ÝÚu½ñØï¬¹Gɦ]¢ƒÉNòtê¾úã¿ý슲RË*®“ç½ òú½žSDýùAMêQôZ-ç®ÿöÇá¼à~\‰.%‰QÓkd%±|Vm—èÈú 8É Ñ ‚ýKâslÉõ)0›ˆî«c~GM9\îÐÛðDÚ,At˜µØd!õõEáì$ìKÞš«^ lî&]ÆG4ìS%î²1<ˉ¦íj‚`Cš\ú_eŒ8Н©ƒ¿(NTß–X1-6ú4™sW*jσ诠~p&¨Qi¹M Ûw<ìî|´ŠXòZÜ×çØI~,j|æ]pIþ¡á5¶%m‚U™ÊOý¸6uÔ¦?¹2_•ƒj )ƒr 7¢ñ2U;°*Y;Íç½X§7ä9›ðv©iäŠYåÐÊàØ4xñÕúwñ…íQ|Ú²ÿì³øUV¢±Â_Ð$g8Þt4±]V®µí±„ã?|è·VAà?úcÅ¿“­Ùó?&sœmù>]´êÉÆÆ)Тã`l/¨†YÁ•^ÃÙíŒþj'º“àÙ_ÑjŠê<Ù5aÜw`{_€¯­C}»™5âR;Ü/HuÛÈŒÉƒŠ oß„…íw‘Qþ¦¿òÒÐÿj"–b9V| œø´£oðçÓè5þ¼¢{ Îb:¨Tqú·ûá¹ “t—eÃTú|Ö:ñùº¹€ñ ?ºdÌ3'’(›šPq û<“µŠ’Ü ¢/ÉqlålеŠ+ó9ÎÈjÆ‘5Ågiš…Ñ×Ö…+†ÿØeÍCµþü¨9†šÊä9à`+È6s Ðí5‹W8üùWØÔ\õF¼‹#7*®Îx¸—T & þÜÖoYÜG7˜Fæ pÊØÜWåø´ðºþÃ[½€¤OdðÐ'â³™Õ1ÛºmfæšNÅW–¶ò;vS?ø‚Ês{~T>ÿ‰<1Ñ`Zî÷Þ «ï©³ý¿è_’ýUW癉 ŽûŸêw£«kèh;_CfÀüA[)t“þ%§Á¯6ß'$þV¹Fýàuþ¤ˆîÏ Ó™êA}®0ÄôWõÂèC?½ÿ®‹¦r½Ïi”„µ½¢çÃÕ‘ZwæM4^©å&‘]­ÿû½"Ôfjs}ö}<¶£>ö3-èFIy[ïN>{Œ§ò³(ãö§H¤ÏùÙ"!^ß«¹éMˆ¹£Ã,¿úR :4`!¬Ã6üGÖ þ¼ˆÈî¼R!õeBu½é“áÙ>bû|°ûcà{”uá’O£ïšGÜ?ƒ½~ZXÝi¨Åøæ”Vœ¼9Hþ 2¢¬àWv•ÅS"ðwx¼§ýFìÿv=›ìÄ þ¼£Úä'»|¤\P ¬ÌâhWloa²‹>Üý>TV¬$w˜DÌü†3è¿[‰ÿƒÒËA]ÿ³pû'º¨èé𒪱™`ö¾<òÁhœÉb»rdOF„þª;~#v 9XWpüÇ~å¹ÖD<”)à_Ëà?.“Qæ,¥Ei€¯¼€ÿúóMðÕ·ˆý÷àáv’C-à꜠þ£`˜cn¥U¡ê­—¬CƲ7ÈŒ`g¹@D.SaáC÷qt.yеOgŸþÛå‰vÛâ?zy±¡§3)LS{€~ÐMÖC|’Œh"™©=ÿÜäF•ó,ôI½¬læ-±—¬’¿ðv½ŒÅrîÒtZùP;4õñÜk'¹è]‰~+¿#Ñ…u"§©½?Jw¨¸wªÊB‡‡Ï‡§Ú;3«ÞWÞß§G8+§dTü[{c©¤ë°9جűýFýy3j^1p'þm6ýw£á?:±ÒM°³† vŒXâ‰óÖëÿ1œãë`|¤⣆p‘è õ'®"xÊñð)ÍüðÉ‚_­7çYx'wüÆ*ã1ÿUàxˆ Îõn(Yôo2±¿·Le&—SñŸŒ>ðÛñ¬%œ¹NÖ¬QV sÔ÷³Ú93>ú«‹x^7ÎMz£ }W ‹5ÎóWE=IåQN¸O7¦eµ1ŒfyG0«úV8}_ú·¯»Át‘ ¦z¬âæø/¨›ޤ»);ýÇ õ†þHŒ)èÍÝtEhVZÇ,ë4üù P»ÇdƒÙ˜u˜~–,Åt8 Òr&¸Û7¢BJÁÔO½‘ÏôàŠç¡ÿ׿HÈüÁéÎ3ó^)L•Åö¦¯•yLÔ˜£E×Ó“ÏWg•Õô/ñÓÆh{™•1’øÕ5ôW©Å¹ &ú’`Òƒ¦¨iÕMôO|©ŸÄC5ÓÚFjŸåá‹ËË¢±}:¹Oï"þT£¿jÊõ:M-ÐIª5GhŘØÇ zg¼‡[Ðõö‘aÇçz{ìâa¬Óf¨š£²0§ÒWë©À[|!¾w‡yF–]…•ð<ÚýPì$©ÀâÑ?Ñ>«ÿüo·â&æeWƒÑÎmìu™@ƒžØºÝز´Ä`ÉáÏߣœ ž³ù—ýkõ@iêaÉϳ“ôx‰2øÊ+xWñ†ø{5¹Ó<üÇ4Øð½àWÕª¿ú¢l§b|8“ 9Tc£ijÉÞÌæÇ3Õ¶";ØGµ~rÍD미V>\+w|à,ÁÔ·ÿ­Ik­ùî ´Ä{á<â\ñˆÑ:£Bc³ž¦Sÿq“þ‰Yˆœ+_Èšƒ˜¸gÀls¥7k/ÐïNGµ ^c;Ë=4NßñN^(e·2ãéürbóŽ‘ ¥¨l¼ “Ì÷Â$B×J&ÑlEKð¿—ÚP®Ø1ì})ª0FrÞï£QLu#k©Œ}ÞÏLŒït¼kT¦âmbqê ×6¡š’S¤¿6<ÔzT¬oØÓG:BU4–ÉÆFs ß7’xÁMgGu¶áúžÿ‘ÞXEýùp¼BféóËüc©V˜ß¬Še>‡ÿÈÄJ¶þù.Ñá7i5¯Æ*î 1 7üÇ ¢þò?Í?Lô»"ªakmûâ%K¡¨mËã'sŒcFù/º»» þ|,ŒŠD¿+õàØ4øÔåSsè‰9ÊXe ÎÒ(üZSê?±<ÇÁ”~×a[ÓÉ£ñ÷D2䨪£ñ~ëÂñÛÐï€ÿÈ‚í±ûµŸÂÞÀÇf…hŽB'®ØþEXì[øø£àW³±G“ñáûÂf†éþY…¬­(ö!p¹r‘-pžTHǃí®‚kš þÃÖ9`,Ü g#á?¢¯0OáíaÐü¨x0_p•© Es±õg°™¨È› ò2–é¦ï˜H%‰ú3Rÿñ\¥3öo k†0õ/5»‡åòÈòÄØý±kàÏ'›cè¿[K½“næy]ÑsU¦cÈU2ÃBDö¸BcŒ3Ä$7Ãôo7ÀþÞpî¿Q_Ö`z¦±6¥õˆÌª%º/JõSVó!Õòé_2šXa$ºfqv'e%¯œ—¶9ýw{‘/ô2ËADEQ¾´1_ƒùiè­:ò¹£ªÖ¦ä°ø×Qt-a¥ ðÞäHè_Ì·SbäãºyÈôf»‹ºBÈ`üÊ3È $—íHwŒ›"ÀLLþråô":qÝCœÆáãXž:ƒE—}˜ŸÖHsú«ÓÄDO¸ŽUaìLqÀyÿ½/°çsgFã'r~¹]¨ôñMFÿÝßôâô²£UäéµRÛE }‘ZîŒrTËIÿ]óiÊ*Ì0uàÙ6Ò7{j½K˜~p¿Z<-\yaôW¥©?nÊÄêNô/‰¢-¨){€g¹/šè«hO‡þ* ìãt,ó0¬Ç!YÝÍ5¼­7Ƨœä.ˆ .©r®¤¯úÕ¶øùqò’ ^ñŒ-XÎYØÃsØèi<£ùÿ-ôWÅЈj`=cEh "¼Å=˜5ÿQ ŸÚ8HuÞ|üÇØS`ñi‰3‰`¥‚¿Ú ž·IËù‹«=J+¥oÎq^àH³À#”'îzCÜ“)ᯰ¢Ëð ë`ë—Ï ~°ŽúÇOÖ|®l£cLbŽs þч£ŠÃÓdϪ€r§–z;îÍš»8'U©0¼N¶ù0œCÍÀüÁd¬’šü£+Ì8ÎS]bƒÓœÉ+Lðë®ï'²í ÿ1Îk(+^8G°>ÿ±N¹¡Æƃ¯­N4ȵíÈùÏ ~õ;½"wƒÎÙø•9ˆ=ÿÞy♚篟Ss‡9æÖôßíÈû¦CZG|}¬€ÿØÿ®Ñ¿½>üy¦?eD—3Jƒ0/6ÞV ·ÔCX«¿Ý›þ»ùÉySƒrmÄê–wèT(a8ÖQé½ UÓmz¢dCß”ä~YWiãìox••D¨™Âðçï´¶Ü©§AÿÊÀé´‡1ºcô‚…GGÍZkª?.ÁŸ/u)‹6ø*GPöÃÓhÊ9ÝÍQh!º®²Å¸â¹ÛKòÐ`fÞrYÑHf3d½Ì)·°¶AÃîD%6+?va +wå/’„à?ê)ƒÈ?⢾ ~Õ–ZÐbä©?ÿÄÌ­ªôáÔ?Ñt ¤ÏÈ$s&yC!Tl­±÷WY±ùRlqÞ3~ŠÔŸrß_$ËmÆ—ÍÄ]úV5r¿šb¶Å[Ž£Nϯtšþí¶¶·9ž™ÉQì0¯Ñ QF[ÉBª‡®¡Öp!šZi4C¹¼ÛÌæ¨ ‹ÒÈŠ‰Úv4“IΡ»½``:îú'VeþGbÓî8z…ûj¨&>„èßî£îÒo¢ä™Ì}ß%_øóãðyɆ¢Â¾§gÈjÇIòÂÖc ªãüÖ@În,ߘȞhØÏôIV 8ý¿þETê?–:ï}»‰Ãù]äÞü øUTm½–’üãZþjýKaDŽh#ÍœPà?®Òoâ h~{W9‰ñvèÞ" ùGòº‘ÚgZíÏߑğ¡÷£/޶Mô!¿yÉ|‡øÐŠ’Ÿ}æ$ÔûÑz‚½T¦ú <AâäîðØœç‚ m9OÔÒ—ül‘¯ûjÃõBèƒ òkO,½]UZÛ9ß1“èâ*5Ls 9,þÛþ‰‹ÉU\PÔf ÒïDN“Ûi÷C¯D,u æ ›2›ŸCnÑÂÖM‡ØXЗ µRÄÍ-‰µ.g¤f_¥±ê·Ø¥ƒa¬ÀŽÚ“à£ã•Òr.ýô?Í?>(ÔÛ"¬ÌP2Œä?qˆÐ=ƒ¸Ù‘þ=0•żæÉŽ'‚›å†ÿ0ôðê?Òª Úâ:Y–/WÁ›”­ÏSJð+)FëGá ÚÓd YÎòŽÔèRñünÇì¤I1qT&…;hþ÷gÎƒØ¼èÒò£œAÝ1®#}âý–Ý­Å×5–¨w «ßí¤5ÕÈþJ±Ýõa:”Àöß‚apGkëi¦ z< (Ö|Å5:(&eþùKæ?ý P…õvòÑ“ž&ʹF¿›€sg÷wº^FjŸáC•dWªú¢€_õ ®î…yœkYÎ)¼Ò<üB?:tmÀÃ…óI%ž977Pé«N òäLm•*BäWÊünö†ƒ/Èšý©õ»Ïd¾ ŽVŽ})¹Mqú—4Æ¿½æìÔÃÇ=‡œë½Q¢èwáÏ/‚Œ¦7È–âž”Dögaf›£™w² ›?üê1üÇzfJeA¿ë‡bÀµC1ºÛíECÌÿ¨ Î£ò(yø(¹Â¨ .È5f}G!zîÚº°˜T¥ÄqxÀ¥¤“Ö\¼[w+•éá;ÙÞ1î¿É¢Ô«6¬½VnG;êÇ æbš ®+çãwþKÍ5Ô'»¹ãî3Ïk"ùÛ¹ùvÿ«iL;ÙO¿ª\ôã¸bõ`ocèÔõœ ª+ÝÄ#Õmjl¤1o¶­ÒU ¯5š3ݛՊˆFø×ø—Ô2d¢x”XMáÏ›[MAˆó]s.~ ê±ÝœÅÌ žÆw^ù¨Ý"C>‰ÏOi^#E*to½ñ‘…˜8_¾Šù+ÐKÝ5÷ÀWì„ÿ¨An˜™úý(Ùú¡ß­ V;·º:þã7ð×áԼƦÿU ýÛ·¼éó• ë°åJÿª¦àckPJl'—ËÉô’¤&ž¢™r‚(·Óé?üàãýÅ⦠­ª¼F7ß̾‹z+-¾­ŽõÜò£"$¦#‘¥ÁÇ7ÁtÛŠOä” 6¬;Oc¬3fçÿÓ¯Ä!ÿ˜í<3Ñ©ÿ0ßEî-^0?*5µ‚ùõzú› üÃS) °Ñ+üÇoêÎH-wFñÕJà?Lzn'’ô¸z&0°-úb‘Y¼× èí´_÷òù†4|c¿(Ç5jNíg7᪾Twˆ¶ä¦÷QF>f~Ô€yTµ1•kÑJ-ÇöÕÃcA!Þþ¼+xùQ,J4*ã>‰ùâw="œÏim¡î2‘˜¨m%ñ¬0Îb¯'b©o±Þ%>JbùÞÁž~¹ÃÕÊ"±¯[“'95ž¨ ˜Zlç~ü\5j6ÎböcGí ½‚äau§!Ï™ýõ2­ö½|ÊEüHAVÊÇÇ;vIÇðŠ5AùÇF™•hæDŸÑë]û°ëØßkêiõ‘ÈmìÇ[Ž¢wFn*;b—’œ‡aDüý¦f ön'?ŸÏk9ÁßháùLä'1v¡¶yùTS<‰?¹Ð=æ×¶ÕÀÎög—Ýx*‡òŽ™¨êL„/ oþÇå–Oœ'wL̪‘ÆæƒOmì¢:²$Ú)O¼Á[®Œ]ó²ZNå£ή }Ľ´¨ðZÀxÁ>7¿‚wáܯCqkßÌZjæÆ:§¡ÿ®‡‘Ñb!¬s1Þ‹û¿1ÌzË©ŒI¶VmêI4N£è_²$Ìß°#z/*@зFß”…ªÄa(Žó_à’»éÈ]©?!=Ðìþ^Ç9WɺrÞ_Ãl£F‚)E\~ÕúŒ õSóÊ Ê: 'žÿ±ˆsÓ -ÀôW¡»ÅiäÑñ³w@!+ƒ_yPM²€YO+ðb»­átJÈ$¾3&xÓ~{fퟠMK8æAÄ ©…î<â–ʵ5«u1žÁ¡× C fw²¢YùÈ?ºSSwÛÌ`)äm±Ð+­¨LˆËuZi<嘫’Ã)ò°ó‚V,ý *Écä“1ÍDv1ÉŠÚ3§¼(âTê÷2¥i"*,•ŽëÇ©¼ÈjõÅAíp÷ŸÆô¶â!ô»…™~G¤'×(ûpáÆ1³ó·Z5Ùaa˜ݱ“œë0HØIs.\H"øó4fVãj©¥ôωJþ±Ïé?v¨Kô£ô/q#Æh*/ 3G¶ÛLKœ¡ã× ÑéËÓq ¾¿ŒõѰ¹š6ÖÔmñȨb£ì ÿ¡éþOêÏ2?ÊÝyå¾+v•žóÄGê CÝ©¢ßn.½¨þ!H¿»^ùþ%tàõ£ÿîéH­v›þ%̤'¼†)­¿ R–ê æŸëtŽÉ¨××úDjŸUµ«¢2ó)rbµj‚‰4¡smµhMçÕè­˜Dí­ÆÖ›â=–•WÅÈIý¹í“J`]÷ðŒ¿±À°&‰ôúšóam¤žø8 ÏåbüH\îójX›ÁÜkó°Úû`‘Ó²æg1JüºBþˆÒŽþ‰±ø›ÛT"zq‡ÏÁnŽá.;H-[fã8öv Êݾ`©å%-lÝ[Ø /ÓŠâ#Ú€Òø²BQ¬o1¼ßQw)(c¿ã[ÖcGçƒèL„ÏØ*6Ó?ñg]‚-õ¼z þü G;ˆØ=/œ‚=Y„þZF ÙÃ@øï¼ÏrØ‘m`½A¸ ªó¾„;¿6›Ÿ®sWÈ×¼y‚¼±†Å‚z󟆛 D£;__ Þ‘ø±;gsç3õçÉ8–áä‡ñ.b§ŒCôZ…làþÕ+œ‡Ø¼5Üö+|gm"ÿUàGï8ö½dŠcÈzà?è_þÖ?±ú«Üø¿TØ e`5×9¦ed0ÛáP,ØîŠ 'qˆq 3¥9›ÀAÕ•½6áÿ1dJq&̽¸ü*=ï––È}-5"îìa&½¥®¢îZÀÔŠàWe¬ôT$æÃšLÕBzºƒlÄ2ƒOá¥+j•C­øM«Î;Æ•¤>à‰¼dtmYÆLCþ¨Pã;Nš_™õøUêèܱËuðÈ×AÏi¡«|¤pcG63Ôo¸OzÓÿj=ýK–‘ay’/”¤—ùIêüî“é_’Î˵îF}ãtVl†Æ*ˆéÜ_ÅUý“+Ñþ|J€&¢ƒŒ‹©*®,¨‰'YCá?ò[1}Ñ_í'—ûDü6®Ó2ã^®žäqˆþ%ä–ÈŽì\YšÅt:V•íóÆ«-ÆF—µÀø´!OøDoG[¿›ÛªfÞâ>˜‹÷/ÇÓ½Æâ˜sÕô«rA8šl+ú«fG vÕôê:ì»þÔÆºÃJ+Q-O Ëüm3§™½Écâ¹µh3߈Nÿ±\å¾°ëšÛQÉô›ÜˆÿØÎ¬”|(K³³÷f#Çtæ×ž·b1ar$SOš‚d½<ûÈr “‰$ ¡` ûÿ÷¾7¨Êëí<3ß”¤ÿ1~õQYˆ¢©¯öMsè§è·«(>ô¿Ú­-ƒx1×0rìÎ=ÅCK!üᶯџª’~ˆù¥U?}¨0…7ˆxÝ_vŽ }Î2i7QqìÙ)ê®ˆŠ¢šN² ئ·0è›Î¡ÿ&üï4´þõ–Xæ¡pñ¥É ‹°¯õÁX±Spjû°éq“Vw ‰P¯úпÄk)°ënd/öŒŽZ|öâ•EèSOã¤ûФè/wè«,óDþæøÕ6âqpªADågé¬]\?£1oäÎëñàÏ ýbÅZCâæ&6æGŒŸ•'¦,lH,‚øD¶cê¬õüÆmüQBTl«à?êüdÍ›tؼ)0ïi:¶×\.>Þv²JDæÊ‚[Û¥–ã9–ñ\ àý¤|©Ón†:c}“„)’]½õkÉoODP‡‡`Fe9qNLÇqؽIø•aäá&£ò”N Ç,?¯‡7JUËš%X°?û̈ÿè‰ äL2%ët+)Ùïl³x™r· †î¥(´?DM®BNzðM€à˜vƒtî¡Ï‚Uq9Éf¾GÉGþQ Ÿô¶´4þn‘ö?-ùëh=´/dÉc¨ ®3þü’\ÿxÆj9HÑ|öŽVÜ þ%IAÄ€_½Ãž6¥6q Þ3ƒº÷Íkm±Êޤ,RWÎûÆjªÆ’ô&_¸ƒ5ÍÀüÚoF{êÏ/Á"Æs.#“êU_Iý`°Õ°w˜Sà $3et1;hì²+»ÍÌ9»Püêº5Än%•äÑÌÉø¬>Xû)|že´1J…¨~k¬TS§Ëdè³ná‰Á—«M¤I øw7ôa̺ԧtÇÎû† až›ñ V¥>'Ž ž½s‘ÞÊ:ŒÐ îùfvº‹=@ÇÛž¿oÉ–ñôƒßOõà8ògôo?€ò©ë>%ƒ[@†T†s½HTçœwuu±naçKqÏî6 Š@yÏlŠìƒ5—ÊðËìÏb~`{º˜œBçÇÜö†Tæ4íÊà;ÄÓˆWSIÕyPë¯Ä â(z#ÀÎ2+¡¶: ~ƒkÑœ|£½c«ã|Jë”q’NÁ­­èÎlåa ´,#˜,Þè'"Òmﯻéÿßÿ3“}¬pž™çôOüOõ»ººžŽèëµàWà˜©=SòkOð §´#àbÁxdDvV9­U/Äw4¼EäfŠt O×[ý,“ìcˆ‚z÷0zö_­™OS@°Wò 6ÓI—f¨ß {Þ×%Qœþèmô¾ÎóðO«ÅáØRë=‰Á6bá~Éh£Ðþ»ãˆÐ}¸š÷EI"üy¢š>ùŸúŸŸùjkt»“ÎoÆr…Xœëh‘f‚])Xú@y •®Î/Ñ ÿªÛˆ¢VöÐO8÷ög°˜=D÷ëˆQ&b•ÏÉ&DTÇeiâÑb¶1…\ªýÊ#­Ð†È“dÕ ñŒ{‚üGÔeѬàW¿áEãçvâYTcyÎ^rÂjùŸœÇçÔŸ›Äàa’ãu2£TëÞ/›gÀ’·‰ÞÁ¦ Ãr¯Ç«ô¹“L‡}«…7?*.ó£¾Ã„ÚuÅÕ¹#Ég*áC®bcß2?j«Ù•œ«.»Ó’”Òà\lw>¹Á—g Gqƒ®^ƒj IgQÂÐ)•ü£qp V,+»×/ã?[!ìI,; ,¢Wç,ý†9æ…ZoÑo–ÌgC­}K ç<æbŠ00ÉÒܹ ›ñ6. ‰UÈØÂVTŠxjŒ wˆŽþª9ïO¼ßmâ¾F²Q8þã€r™ús»KRm:×~'ëÁÞɬDÓÕ±=/Á*;àOë×ä<»¹>KÈi¡ءߥ¿[è-þ©µÕð»%A¼Â>eÇùn mbXÚ¶øæÐ R6ì}nò”¼äí’Loßf½3ÚPÉápmËð cŒñ(ó6¡ß½eì5æƒ_ ž֡ÇÒz*êæ ®OÔM«ArÒë9þœa'Mê]`w.à/«Â¦Œ…ixil Úm»khMÁ¶¾´^YSÌFJ§Øav´Ë`DŒGË]íÏP;|§!ó»ÂýjsN‡äqüÄJøsÛŸ »Të }ªF±ß%ÌrýNmGmÎì9¼%õyœá”!æuôä ëNôÄs²™(œjÉFxA¨®J’,§Ö/1½G’8ZÑgdùÍjí–€ý­Ã»/戚ÇÅJçy¥$Õ%çãÑYR3šì'úœM€ßvAk5ŸJ’ó Xôm¿ºD—G,·Uf)¹Þ>r™ºò¨È'‚YâRêJð«xä³ýå2#¿0Œ"VUG]r¶ÖVt<›ʵM`v¯©!÷6/3$¿ˆ*-hÅêÏÇ2G ˜?÷§É31 Ì¡%Hl,éoÖs,¦÷IAô»•é¬RÜjîØã¸iôغhlB ]Ýò`ó;±«Ê5‹²RCÁ¹ÝyzþW_èô/ V6kt/‰꾈øâo•TtÔèéÐ_•e•mAõƒnÚVmùýш/Åožcþ`vð«û||%˜]I­EÿÝØ…ýzR½W$ë?ââ?JÈà K¨@+%z‘øˆöòüGjªLêDP¿—Úþc86¾æ&8Ò —‡õ|ÄÀ~Ä8gð_ÄBQ1Býw7Sÿ‘?ö fš#î¶t÷Ú4p!ìu&*6¢Èþ¢Ê/¯Í:æÎöö³0Aû§ã?FÕo¡Ê; v,•q‰­Áw_ÖÂÖ½…½H]´$Xúf`¬>(£R±«â|<«°Ê/À™èÞQ©¿~ÔÑyáoín'.xÍŠ(HãኊÁºþ£=õƒöŒòqFX)wäúÛ¿­Ô[`¡š‘KòÁ\ƒi豺 ëÑŒ»Ü7ùÑ^¹á?ã?|Ù¥=².>nýKl¼6ä¿Êx£|ð á?Æ€KÝb½Ýðç«P„~5–1ÃÂöt§µˆÅób)“â4j1E•ÅÎ0ë¹i×è¿;‚îÉn`>3ˆž ¿ú„G[jLu™B‡×–ð´Ô{NÞö Þª*¹ñÜ—™´Ð¬Ô-­>ñî1êýŠ“Uüi\“—™ÿ1ÛeãA/Zò æbÂDgpz{~íIò’¯¼ËSáF×®àèççò„ÖG·yé7ØÑùX9 þ£vº'Xé\þ;7ÉŒž+¾ ~]óâ­ …L¢sÛå/3…ª?»Ò˜˜œúÁ3 ük˜¥> ;‹¼£øÅ1Ó ãj`¡cñscS]@rî`+ P‡¼¶Ž•–ãõ‚“ÝBUÒ0H;ÞñšêFu§(µ’s¯ƒOŒîgÊEÄš¬ûwüÇI2£!ä:ë9Ã5ù !^iÃYΞ_kòôèÆNôj>œûrxó ð± ð ½¶îKdÛÜ¥>c™B*ÔòOé¤püÇnú_£.¨JEФ³¼{72¡,XÍ?ŒÏøÈâhgýñ^øý®‚ uãwšÉýú½¿õOì^ Ö('Õ+P$Ýç87¢`XzJ‡§®n-Ä>œÝIÿQˆú¯\°ÞUñwS „>¬þjüí?ò“L£‚†zùÇa²‘æ!,ÿ!úÒ¾ËHŒ¿6>/J¯½09±eš0ÏËK­þï(9j5NÿqþüªèMþÑ™üã¸8jw¬d~T^pÉLp)]­޵ŽCV,G|멱 …pJºßÌ0cGÀ Ⱦkr=Õ}gðßû">¬ÂB癉†ÿOówT‡¥„-O­—Ó5­!kn ÿî*ÒÏjGÁÅ"×åõµà>^0A*©\¨;ôdju«¾Tä¤3wZôW?›rþ¹+®Ip /8ôž ÑfLS?ªÞ¢ \@ (ƒJ¸>ÝyÂ_ã¯WíþWéôväëÈEkÑó§šáF ]´ÁÞ_×x#j“Wn!£‰HG3m^ ‹™‘¼cüY"PÍrä!s°“YýšŒ‚ø¤¸r¨hüË.gþÇ<°Ù²ÄÈ…ŒÃX°¥ N£Ét½e °ÜsX´-øWâçbòFXTão>HK‹¥,J$V¸4ßI*iíjÚ‡Äýžd6›eLзjÔÒ\Öÿê½ü·…x!*LÛ&´“ÛÈ>úãw‹I‹«A ¯¬@ü[ýn#âü# a®ð5Þ<íðŒ !ôàØ4xÝèt!{).q Ÿ2vf6Uñ¬„f4ŽÇîƒ6Qt$*öuúoÕW? >Ÿg¹œ"ÀÌè8Hý`>º©¤aÕlôS\çØ‹~·ýwà¥R Dp3cG‰‰nãuz‚þöÒ¿=:úÝ©Î;AgÎlbçwÎ ¡/¢¨[ÕDš7úÝRú}°&E9 ”¥þü4ýÛÃÊ׃Fd¹Ê:@|'s}C¥ÎD&FUP»«º/0ᢷÖ~Ö%#üÕ›i ‰êwp'ºa³¢‹ÞÔŸgÓ‰!R§§ñ}÷öO4Õ~t^šÍÜÎXZ²¦ÆºÒ¿äªyÉZÍÞæÐ#$Šikš]QKmŸƒæ aýê*íÔY(†äLð«ß@{Ðw ó³›]èi>4¬*Vz0úݱÔ¼1Ëšvß+/ôÐð;t0“·Êuå›ö™¼þ™t3™, 0e±üNu査S~ÿ1Ÿù‘~#ó¨ ©BÆ€g]N‡®¼dS«Ð_-w^‘Ô¾ ›EpÁUø“Tü¹82“u  ‚äóØ%úÛöðñç°ò;áD\PÅÆÆS²¾é¢•xÊ|ôQ‰@ÄLPÁ?ˆ26‰Çf)¼ÅUrª3 _ÍÁ«9V:­Ëxaoc#5йéŸ8ÁLLT“Ü»è úÝõ?ü?§P燨ÿøò¿¨?7ÔÍø/-Ÿ^ÿa£K^J!æxkû´=x¥ÈåÊ :@¼DoûäÆUO­U»0'x¯È ‚•Cÿ3’üGGpüâhãJb;ÈÏz_üGíU;±©1¨‰iAý•Æ>Jà+æà-‚¿<’å‰ðÚÑE¯'öþqiP­býK<"p%whóÉ?¦ñ$ïæ{À࢑ÂvNçYœÃÝqL?;ë}íD>ç=ü³…÷(îb#z•šðçÙ“ ´öü©XÕC²6ùÇ1^ÝD7_:/ÀìøeýÇ&­Qj è¤rr„e9̇ ³çÄ®â,x±ïXDi©©?¿ª7ú)®ªÞêW‘œ»~2gÎ >;6º%XU^k#G¹¾Æ¯LÆn¯g¿vmwviˆoÚóp7¾ZZN¼› <¥:Ç7|¦çê"þãYË,=t½=~®ëŒ'ïÈ„ÿˆÏóžþj5ʵPsj2gç#ñITc;_á1JÀÒ%ÿ8‹BµD.Ƴ.bí7úuâ®Ð[LýykîŠÆ~>Zq%zY”!Ç$"ŸI¯uwò{°9°¥…a\Š65C9µÔ(+3ÿm~­7õç‰ÙSa¼Ì%rŽþÜi«À¯ÎÙÌ'o˜IWÂÉ–$£Éó»6¾”•²ÝÁ_ìyŽ©ÃÌÿÐôð‡°ªµX¯¶õ}´f™½°ÀÝ‚l߫ޣ7 ãšf_¼Rcjäw£>nƒê1Ø­W¨#N-ŽI“ûᣴ+:¦€_ÂWAoe¢hêBÿö@ó‘Õ#žÌTÖ¯xÁ.äÏÉi†Àª42 „À¯ìþ»ãÈfúO𽌼౭L/IÝÁ«Æ¢´­žÓžüÕã~dV7—â‰|Œ˜àXíøË¸ÒÓyA®(1õAºxÛ$‡¿þ,ŸƒÐöÂÔƒ?÷A½;~A§C׈ˆwÂæ5s…Öråýõ¾Xý«r7Lw{tu›Eûñç5O=/ìjJc/öh1ë&™Ò|X€wXë÷ü¿ØÉ[}#Jÿr‡”询 CzÅJÇÙßZ0RWØôòœê%bà­d[® ñÙ™õ«úAw­$V¦.~è"ŸsáwÊðÜ|‘é°ËÑ`í¶à;¶b󣣪ÊNŸ‡ëzÙŸâWŠê©žÈ¦3í!ÿpÙ\G lrWüG ãVv¸ÀJž´Eø&/êÑÂůâÒ9 Uö99oMYÍö¿cåO²—‡2Ÿ¤Ÿ¿v…Iî‰ÿ³ç¦FÍ¥áÂ5gÔŸûrÎÆÇFAéÇ1FÕë¦7P—Ù½HÜÑ ½—_ÉÅ–“®äŠ·Â\[ ý¤¸jõE öŸŸèÞdåhØ4Ú+ÀÀ’- £ókQì{&zé*ä ÇAÛÆóudáf½ùø˜x´ÄØû±ºÓÉtgÓ¿ä>1òü‡m•§ã?^)Áˆ çÌCuz ÈVc/¢Õ µâ}­ ÖoLN#Xv7òÒ—Æ"ò¢Ù ^u°YO¬§L`þýÒG™7È ŠQ'r7ÅðÇó¼Ò&„ZO›@õ®MMÅÿn•Ðï.5ÛÁ—Ç7_U»ÚHµž€é÷§ÊÑŸ:,o¿=–=Äüs¿êN°Õ@C©ÿÈ-ŠËŠô¿êGžaw“Ÿƒÿxhf³¾Ñu½+ø“7³q›™[ˆ<8æÝ䃌„28^  ·Ùž¯Sà™Ìo¢ƒ(HoɱÖ#ªR<áSÚ’yL¢vã 3O±ú)ô»-͇TÆl"wÌKtx_¸Poüã VGQ¹šžøg–\ç;&ãXE™Ê±…|&=·[vÿÃÚàM{Qj¯ÂŸ¤2ŸswÎY¢¢Ù¢úÝSNÿ±þü€ÿhÍS°W2›8ÖÐë>÷ÉG2tØKÿ’§ W·eVAKPÿ±ÜLKÄ|øU,:À\û±ÁñsBüÇ|ç™1èÃù]ä¶ñYñ¢ÿî­¸^‹þ%výÇzúïž§ú|·v\MIþüõõÐîJl]&9BO¦—¢ïíòßÄ3:üvÔšEjŸ ´ôØÔâ(–k"ù‡+ùGBí(WM% ®ßQ¡ã0ß»¦>»¹<¡6,Ecžô(ë6—ùåkÝÒ?…s+&SséɈè2‘»T›kT“ÝÁ·]–¥„›~ýLw4gݹ£ñé÷¾ÿ±V¹Gþa« á?ìú½ø‹qð ±ê±ë Ý¥±ý Qäܤj{ ™âb…5üÞ[ô†au-µ†¢ Ö  ‡;às/rœÇñ&°\Ѱ÷]˜­‘;šŒZlÃ…ã.ja·ПV CD»ú"í ØêQ6€ ­1Æ’—ºÓ…ãþdVÊÖ_ýAŸ¥«0*ñR©È;¾ÁÕt"Ù„×φéú õ#+¹€Ö "^q°qM¾£q©¹ïV î÷2Ý¡2¿ö³QÏÀŠ Èh¶â¹z“]ã zÆ´1¸Šï¤]8Kž€ÿXfv2Wƒ§m*MÆp›Hç+ú—ø•6¬ô Ô˜w/cd_œ×¸ùÇ(ú¤ý‰¾o$ç¤8¨suó“ÙÿQÂì CÑ Q„ú¿¾Öà8Ë­Øèm7°¢;5/ÛPtM4bJoçzp[ÏXï(Iz³08pLŽ¥üG ‹ŠøóÍt¬Hýà+£ ø’¬{‘«â bYýÞøÉλ:¿:å_âÑáh¨‹­òˆ™ÏQšþ‰méL‹îíïè~_þ»gÁð¼¨/l~CU›.#—Á&‹¼ôoæÏ÷Ð÷®CdÛ”âœY¶Ü×tA ƒþ‰eðNžŽ#L©nù[¬¬¬=ƒ³›š¸Ð¥Z&¨\pñ¿÷Åge ú÷Ó©Ó0ßýx5bŸê*ê÷á? èïÕš¬²W)¡]†Qß­íPãªû#¶Ìÿü–¯rV«+Þã?ìîT#P\`Í‹ún‘]|×sê-ÂôOøÕâù´äDõ»D=,àPÔ9™%žHócx+°àBvpÿöFj>}Tn3€>…×d=Þ‚ wåÞ¸ ®‘«ÍFs}ů¶ÅÏïà?ŠðD*ØÁÿGÜY€g‘lݺ»«Z>îî>xpwÜ îîîƒ÷ Á݃»C!¸»ûÀ};çç á&9ÿ=çÎ<3H¥ºº{ËZkïmw9LO|W {7-Ë"ª6nGÕV‰þ‰k”ðçÑÉX^cYwb•í¹€C`öëv•ê •Õ\í¢üôúöë?|𛱃¥ñŒG°¡“ñ:%ÐÌÆ!cŽe|dÇk9‰TÆmÀO‚_Uþmýù+ejÂHÛµâݰ½ˆž:’ØüùMÞœD·ïàRsŽ;éí·ÿQ„º~!B¸ÕM ž{•h÷Oö1ž¼¨>äv°ÿˆ'G‰ë0´]à¾[q 6~••D"þÞÞpüÇÅÅå%2„‰Ø¡¼•-á2í~éý¨TøötœÜ%Ð¥óXIϼš\q+þ£“~—þ»aõ»­´¶Ô4Bq‚Zƒ j}¹·Y±ü׌˜¼û½@N¢ãf13˜S°Ÿ±°ó'°•Sé9Rƒú°ú]oí>þc ùÑ&fͧ¦åœN•(ËüÇFªÉ‰šãàOÒR-î [Q”êô‹`Iv7ªžz±0õ¶Oµ>`¦G‰Z bqÛ›‚_Í7WàÝj3WÜFÛS9¶€7U6ÛÂÃ×!Ÿ9‚Õ’3=ÏSðQse'ÀXx–/¨Âjßo3æ°«¡0ï©©ûè€ |Àü(s¿±’žPþÜ ¿ñ&§úæä!=–Ò¿} ápãO3ú'–Ò›1‰o0ó?ÊÓMÞËê„7jFý‡m™Çá «:þ£è jnãš{Ï~êß~^QÅð«,t3^ÿqÅ(~Uþ|×»ÿ1Š*ÂWô\YÁL©ºÌ¹Î]ñ掻ôƒ²ÌOýÛK¨éü\”gmˆ¾‹éº{õƒfG ªØ‡X:Ösr‘Æôp¿J¤°epQó=>S£âËÝ©þ.Ï;óÃêô»3‰š:'ûÉ3ðçG,?fò¦¶¥=µêRþ̺ 6vɘ€Æ«¼Õ Ï”Š,9Ïû`½7 ó´2¤ãWÈ[òŸþ,±:›ü–˜à¸ÿ¾ÿØ©æÐViyDMñ$¸‡÷AåOòµÚVíyMÔüÇ)ìjmòIÿöôØöïXºÊê±ýÕG‘Wt‹âüóZZ6bÓƒ<‰± èŸøÝ‚ÉhNÿAK¡ëDWç9ü8ð>&PÛ«µÅR¬æÎ`þã.¼ÂD’àWÈO§£‰h D£÷§˜Þa¾ç¯yŠ?ñ±ñëÁ­RÁQãã`ý8³=1¹–V§Z£K$æ×îTÈù2)¾ò=Ñî*,ðJ8è1ØþÔŸgçÎŽýÖ±Í[À›6iÍÿبÕÃJÖ"O`B6b*¾­$YQ40žDÆ V]O&±COWÊÉYÞ ~ËŸW©±Q8íÄŒ„±(H§É>ØßÍLP¹J1 ›ò€Sõd¿›@¤&cÃ3 ‹âV˜3³¿L¦æ™@’Ò¢2«þ?øU+vw)H?'‰+pÑm©hJÿüG^zeJÞßðøåÊgúà?FƒÕ¸¨~äî°EˆU2Ì,`YøT¥ÿàå–¡uØÊ^ëпýó5Co±ŽÖAVÆ”†38ˆo¸HVµ‰ìÁUm XÕ¡Äâɰþi@)<Èuâ;±ãcù •À¯Ö…Yo‹öœ t\Û2<ØòÇú"¸Š‡Ø¸¡æJ¢è×(Z?bï’˜·˜ƒ‘ƒßù™ßíÆÇeœdJ-4wöAëˆ5=§»P›rÆù–þŒ>ŒLÀ¯hFíÂ!М ŽIæ ô»½ÀÙþ$÷Ï©ÚHî¤MµCÒGžÏèwk²»]†/ÝPzã'â »ê ÿqÉTÓÌÕ¨¼Žá9=ù}8ÏÙd6SX;·¼ê<À>ÔÎ@Ñ7Âx ÿÑŸ…Iô:téÞ¥Õ<…;t™ruŒÄÌ£Cá+f©ìá¾-Bѵÿ1ØpèóëÝcþÇô\çx®Ò˜PÿÁô3#?óe»RÿÑ&eÌÅpìý+”>p ‚û·DÍàϽY ÿQå§úÁ\ô/1y2kòþO1ÉOún*6² ÓH¯õoæyÎn-µ„·Á¯¼ÍñTOæcþ9%Ëäµ¶&¬üK~’«þã¼î}9†?éÀ›¿K1s9¶ÀD3Pƒé!m­VŽÝŽèÍr¢¿úÀYV²š+ÆÁ#&çí ²ÏPåçÿ÷>‰¯nùi~­BÛ8¡ž‹ÈïÄýUNØòb课ãW¾Jí(üÇVòôê¹È/Åß<£<…ÿø"ð«hzjÚ+ªÅÕ b¹ßW ¢¨¿ª¬%Bé³$uHÂcÑÿS»$›ÓS/PÖ¢f¼©©+O§6EùãýXƒ¯‡Ç¨†ÿhIŸØ® NÇA Â1?‘ké¿;3×|M›JýÇp«Ýúr"ï$Æ  ™d¥Wñ"w‰Ã«ó¬~Ç‹ö•¡{¨†·ø>e-ž+>ç –ÍàNö\Œd«ô²ÁüyVt^±AÞûJ­,™Bc®ï hyRxWÖTu»Ùß#ûØ®ï :à¾é*ªÄ*Á÷>¼½)ê)øóxø»oÔ6"úøò¡ `åðYéÕÝÜxÂN§Á¬‡µŸ‰ýÍ©¿‰ÃÍ?Ò1?*%èa28˜šx0»b]TRþXžkL`ê/Žc´Éa¾'Þcþã6x]ÝÝ*EUå5VëOÄkàzáióñ'Y»HÏx,ôMrÅ­x½%\ù$ÞùÛèwÃúá ZK¸¶&xëcðâÕŒGø££°ßk©ÔÀµ{ÂÒDã“kHIt¢]ŸàèÞÃ(¡g”Â<‹µ·Dý¨ö[E°ö¼O…™XIÝÆF˜ïsôõˆC½F6ü‡;xF1ãž¡-¶y×^Z Óû_t  $*¯‹ßêCNñ˜\s_j0·:oòNò¼WGxæ3šI`A£ƒüÙóªÓ‡°6z=n=ëßàÛ䊈4“ñ´…?׌\2jÖy<ÿ«OâªKUOçÉØýÛS8¿ŠÚšºÿ±ýUê©ìnm•òÔnå¿ø¨ÍÿR.‚ ¿“Í~,´QQ–¾J{ñ‰É?²ˆ¶ZÇ(í³¬æB¾¹—úóÆüûH %žˆ®–n°©od 8H­˜\í¤æ=a»Vð>×ÂÒýIí\+ô»CˆËÎâTXßr"üGdu7´‰Áü¹ ÎàË¿1x?KçÏÃBÌFÝ}¼(¶nûѱòÏw¸I™/'ËÄÄáwõDämñsÙØç¬uX‹“ä9kõ/’)hìò ^ùÿ~—§j…°ïn0 ç±9°ìEÉìÚA4ì!û݆gZݘEÞuV°±ú»]Fc~í Û;‰7o7ÜFBö×™*[•Їâ?îáGñïJ¼óxp©ä±Ãÿ‘…)ÿ ¸klcw;ÉòPËWþ<8J.9ZìÅt†¥i®5_Ÿæ#~Á+ÿ±ƒ­ÕÀ`Rƒ!5&š;‹÷èÁOeÃÊõ¦÷…jäÆ\BítÄx6hw^‚¿ŸLq…úóJaαepýy ò…ƒÁñMNn;u’»‰h˜;é¹´„˜ù6Õ1ˆÅ]‰LóWNÄšÓcÊ3aÖ[EÿÄØÄ%á;.ÀÌB·1[oW¤Ì kÓTX…¾ôÉxLEû âïäàM¶:¶ÚàU\KÅ0z“ëZ"”KàMv×óÖÆüÇdlñ|P¯ªè¥®Â$ruÉ ãpNº8Ì=Ûc(§;W7ð…ÿzùÐ{ümT¤£Ì2º/@këk¤3—‚<•³®“‡\5£ƒÙ«®"ÿb7o3Và'üª ýw‡èðV(½¦€œÕGåRÖ|ÈüÁOLì ÃÝ“N¼9é2˜Ž(§ñ›ïÍʬX\/Ý€µ£ýTŽ]ÅÄ@·±Jo>¡ë4TÔsÑä#ÿ˜eºañ»’Á¯0Ïä(sïqóÑ_åB¿»üãœóŽdQÇп$'ªñ‘hòò Ʋ²R˸ •rBº¡Ö[ò·Æ`€ÍådM,…ùƒñà»aú ßí.ï¢"ýñæ-QOÒׯoEKþý"›ñ©ÜIýÇTTgg¨ÿÈàX#ÿÉŒoìº5þ£ƒ™–·9þ£ žOt|;ûcÁÿâÇäê *@~üBìü¿›|bþGæGå] `F¸¢Sê0{p9„Yõü_©7©‹È'ƒèuoñ”J…òäyóQ_]G¿Û,ŠüGuòÿ\úNâÏbØ­«ÔŸQóige{4½g¥Îÿ ŠÐE·ÍXè‹Rˆnp‹ñ%ñùðèø”©ð¸è² $g°Ì©úÚ$Q¤êqþBìÑ;°˜jX»aø/¾»“¸9!YÒut#…œwêw»;Šþj!ŒNEò–¤ÆRXOø pàGP9eÄ7¥3fÍôÂ:GÓ×E¨¿Ú¨U&ÊnM&°‹îŠw´»L ccSð~¯å_[Éú‘'‘ýú·ÿ®Jþ­rB}%£‘_ýGÛ†½ßíHo•ºÄ†Õ`^ÝŒ×ä3xÇlýYwV|Dµè[- œËM  Ää+ZÎnt0ÿQ–<);‹)çŠSØ»îØþüù(°jfáʸàeƒÃñè_R޾ñ°¥õá?Îàgzsþűnm@êN a¨ÏìÀÕXÑçDÚ[ð™sðY­ùþNž÷°wf˜VA–áêòa/F_eÏ-ÝBË&¬¿NÍAkŠœ[LOÜÿê;¬ÍîOelŸÝ¿}G˜;}E{)3²F9<ØFú—Ì ;] VuvÞ+5Ùg•Ú÷MxÌøtÚhØýÛ[SC}ˆù⛩¯ã`£8ù±õcŒª¨ ‚°Ã/ÂÌßI'·¢Ý½ÅݘÄ5ìÀŒ'Bî‚o¤Z’¾æ®ô¹É<×@x‘mf,³i|üPú[öÃÊ(ƒœ÷¸õç 8«®Æ{j‚ª ew='Uë5a= šuÐ>wd’H!+¾£3ÊØkætêþ™ ÈòÓ!À¬­²ñT†è¯ž*±ÅG=>8çZ=µyHª×sœçt"ýÛ¿IÝùÚõçWy#'ñ%äYÕ¬¯dXûÍüyyPI¶àMDç¼Oæ8¸óÍtgôãw¤ÂŽ ½¬á5ŸV&ÓÏËÌëض/øÕ¡Dš©2r%ã ÒôEvfß±ôóaº²þºÝ5ZaüFk×ðk™áJâ+ãP;˜€7?¶±ŽÜîáþäÂ|•‚î’¿Ù¥¥Qƒdò¬)xÇÃ`M±æ=ñÍŒàŠ;È]Šæâ=½°Ï-Ph}Àè"ÙaFµ4]çlêjþ¦ý^&‰DÑkÑéq™øq(6¹>êo2ž”ÁýÛ; ƒYåÇg'•Ô«^„Ç€e‹Vnw=™L¼?7‘^n"õ œüÇò®5à Ó¸ï%ôõâ¢V×C«*˱ŸŒxœáDÆvÿÄSÌ99Dÿ÷ؼûYÁ'îƒ_e¿Êa|гâ?Ê÷1Lú#„ퟸ[3É#Ýуm…XbúVßLoçd7ØÉä‰åëa¥1u³2fÑ¿½ÙÕ{ðè˸ú"Zè 횉7: “S‚,ÅÍxªß2¦ïÎÙ)ZjŸµÌ®Ïƒ£éEþq/\¯46¥…qOx=Ì<Ã$ø·TɼÔç‚ÆmÖ7Á“{ƒ5-3ä­‰™¯™›PÛšTÊPA9µm΢7¸X|6O~Ü e¸2PŠçíd¼"ÿ¨d´•îènšmè¿Û„ ¤üùuX …™±Íè,5—¾&LK3tgçà@Úƒ}–ûœë™ ¯ñl‡Éy]Ì£r–ž]¬7xU¦x•¢^Ò Ë?ïuzs-&'IN]b :®x¸,Ædp‹¦ò•ó©.D¥ï².¨é"ºEDƒïh•vTCÜéç‰Èö1[¤úâÙL'±»ÍGg÷ÑM”é6Ï©·D…ï gþqH½ ~5‚(¯5j¡Ùz:eÀ‹å¦ko.ª×“ÝìrœAÅ›Ðún #Ë)lõåŽç¹ýƒ3o¯Wåþe•Q³°Îãù_}’ ö<„«sQÓAñß[О?˜T» õà[³Ênøó«ðçGµ ̯~Éw9èŒû™¸û‹lDNS›¸?Hl¦÷±J?¬.Qœ_›…ZsWüG:P˪øaàWyñÝõ“ä³ñQžÖŽ$Ü*±¨=š‹í+@Lc÷ûé¦û‰5<Ÿ§°ûË@ªoQ?XN„px¿?ÓsÚ,¼Ñ Ô¶ˆãçò‘J?¾^K<· „ú¼&ò ^>Â{sEÙ.—©Öà§S+°û ñ>ó`J¯Â²¡ñÁ-ƒ~•B_¢•Œ`Å£Z3~¶!1Î5ïg*N æ3†µ¶~÷£LËõÍÅOîÄ;¤Çoö„Wî¥Ø¬Ÿ·þŒM›„eÛ 7݉Ì+¾¾—nË·ÂY0±šI<’w@«ìúãœ{yаj\ge#ñ'S*?¡î™KÞ•Spç~¥¥³eRXñeáøýÔä‘Á|‡hÒuîhWr–ŠÄ ó±$Ÿá z_ðg©JxÉþ–ó=Øiú_î÷öó&ûS?X… ¦,Ö~ç~o³ ›xýUBx†ÖÖXê-Ó•þ%+ðëßôœhƒ cI{£ßý"Bbº­zUS`ðÃç¯c?“¨‰ ‚cˆÇ ª£Æhz!õjh"§)È÷ÆÓi¹‚ñ½T PüCœv1-g¨»’\ Òg’/H#7ªW7ã‚îoL4×iD§²¢.½7ü­; 9yñé’RœuÖò7˃:=«¼£ µ^éE¾üÌu Œü t­ae:€§¥2 !*LßRì³+z©KæG® þá*MYd÷k`‘=X-ùÇ)5lüZGô»©¶ñ%[¨ˆþª8[~Ô¶AtfÑ+w(}ª^ ßM~•Çx‡Úz8«>þÃ}yXýîSíƒÌg-zåç1 î ×ñ½ïøøfDû…¬XÄáɨd$ÅÞ?´kIÀïýˆF*k®¡îtуÂîÑ\‘ÕšÂ\< 2c‰yÿ‘ùvÇP³ÞAcœf¡'½ ð÷ÐN 1îò”~ÒBOËùGl†‘yÂóú7øÑAr£™ tˆâ£êÅdð7TbOÇ*/2RU2ŸÕ‡óM•ÞdN<ñOüGÅþãò±§úN¤ºìHßõøÇof%ÔÄð÷¨RÑá¬SG7‡ž!)Étšswìy(Xñ– ±7ï”ô⪊ãúRÝ4ƒäI9œ\«OC<¤;ÕæSéø5ʲ'\&ÿð5]­*xÒÒxêCðçãÉ[ëÉ£Îó‹­®‚w²9óp#§,eèV}G^k'× Y/¦§!G:Ât*?®z°•ŸùŠìCåìFëcÐZèÒ<Ëô/y-‡ðÔ·]ϪŸ5“àŽ \¤¶¥#Ý›£¿ºM~ô=ÃPXÿÊÖ(zíç2®ƒ§«PV†T¼üXù?ÿ1è•·ódTp¦$ί¢öÛ?â?ÒQ^–úÁÇÁ=,¶(¥Ñïú`í!ÿð‹Òrg”íZz2ð1õú"ìDuô»«©ÿx%ò‰IQÌ?Òá? è§ñ­@?Š!r¦šM;$PÿñŠZ ç°Ýí"uåñÕ*j:ñÑÂJ¢…ÆØ‘ÜÆ¢UÑxC_ÍZỽ迻2× ý-Ê‘ÇÇfyaŸ]ŒKXÂÑx¤ûx¨ þ_SÏâƒþ‰6*øÿ甲@úÈ4XÌ×zZÐ¥®Ä;9‰’ð±)A6B<åÁ>™”©åŽ`Å…ZE27XóøÆüØaúÐÂv¨ ¹ñŒx¼ÍØîúS¸þøú)¹Ž,Îî}Þ?O•£ê}i×qÍ¿ÚÁJéáAúƒÐ•1®€ýÚ\)½LyË;b›7ðg•éÛrþãN8Ë%T …èËÄK6ä§úðîµÄóžäºý‰Öˆ+Æx¬á¸ÿÆÄL@.âŽÿت<#ÿ¸ŒÿèF '¶ÇGƒÐ[÷žÓJ ÿqÛ}”=> ±û'z³Z9*ÁΨEÃ\s3­‘,‘¼iùr™Ã°ÞD´ŸŒq(|zâ9îÐo#©9®û ÚÞžÄâÃŒ´ôGQûüëÒƒ´Oh?Æ¡/ž?IMÛ]}5õAØËþ`½±£u¬äx¤ d5Ó˜-\ˆÞ[¸þB°Ãõ’a&…%ý±WçˆÊ‹“÷´#ÿøŒM]Å^b0½µ†µ•nNÉCM…$}ÀîÿÀƒÌ¥ÓH-¬:]©ôïÚ„PWüTlÅ«¾G™73üê Ó°Úñè[Õ5Ò*©{›Ÿéuän$þcXàPÐÂáxœ´2¤F´Ÿ2Nm¤æ#ú¦áXÆTz':€ ¢ò¡&HW«3Þ¨„%å­îØÿÅÖ°/òŽ (º6 ÑùD†Ì;½¨d7àýü‰Tr˜éôNè¯N¨Òk­5+°Ò\øóÉd\ÇÀ›fâ5Û¡˜ºw´Ê8Ì•O îh%¯;¯7§ê->É?À1xðnL¥58ê¢ÙLg‘øÖ*Ðwˆ½¿ÚÁüA¼ Q ÍøX+zñŽÇ/¥ú)ã çuù}+µºLõpžŒEø¿ËŸ¿Q–«PÿQY”¤IÖÜ¢ÔÐnÐ=q³æ‹>>jøU€rˆ~¨Ñè¢Ñ-¶ó?j2cúžX+ ã?þ¢XžWK€9 Ëbó›èª(GÃöß–ƒˆ+ <Ê5øÈ1*öü‚b–s#q},|E°›.ÌÉk•¹EçØ =_äRXHܵ§ÚQD ú];¦MˆÿhJ|>îÜDàÏiúï&&ïŽ8ÿ8¬l þ<7üÇG=± h‘ÒXx”«z=Pì[x»=ä2ÓØkj}K„ùÇjí/²ªf\çltf¼f1ð«ïXít¨Ÿã[–pë°³KP‰]•[D'õwçøPñS_Ë\ø¯áøÛmäUv={g~¾‰HŽ3‹7ÿHÔx<Ç>ÿ©d: ôçâ£v-œsL¡f:è^,®²6–Œ†ø­*ùGgbëÃV¢mšd¼W½§u µÃèr/oê…p8=ôÆSbîÞÔ™ç€? ær‹`ÖQKWÐ\•öC0¶bqC¢Ÿú_5W†¨ðÝAõ¼97Iœafeê`bê2F˜À­^›MÑ_U·ú‘ålÆ4B)\‹³xfÙ/üê'4瘒\Ü'>;ˆ¿Okº2a#)ØÞ<ËÅÑUñDô»¾Dùȹî7-´âÁ‹44ïâYçp·KžÔd4’AÎëÍ®.ïe)4%Ãt£«=5s;úpf5­äsaæw²â]ë³Þ/€ký~· ©“]?"g!û“<³F^;Nþ.²ù5û_êÏS‘ç ôc3`&‚vøë-±S·Q¤n£[¤yC*}–:‚kÞ •Kj†ºGdŸ™8¾ vÿ»ž^:þc~h+'‘ΘGžsš©±Í[þùµodbNk,'wýU"Ы^d"Õ‡ðË ‰ƒoæÏçðÓ·ã™ÊÒæ…x£=¹@çg.jrøó‡à~~äñåyÈ“jà)íºªÒ[\%ÿèÐ’ïNÃ~çÓa†ÆÒYƹˆó“ÍÊ=­˜¼ŠÔÎÀOÔ7IÏ ßžç;?íF¼¼ýnú«Cäs¸òixÖâ2u·Î¥‚?é§•%‰*jbïW±âUò“äëààUú·w°fÁU¼ :;9È}aîre”Uµ`¦eô8¿ô¿òC•†Œ¡(ëí€QV4&þ=5 #èa>ýU%Ë•yå9Yu¨})êLöc‹6"˜)L§Uô BÕZ×$Ý…Ú‡Íæq¼[%øŠ Ô>ÒáƒRªèØm®’üÞ…xø‘Ä ‹ôÃZÿPWüI ÉB ¤5Ô2é[ŒûæzãÞ0Rš«Áuª£±ÝIOŽxøº×ü1˜Õ ´hKÐt#c1åCç¶Q_e –òøÐ£ ™WGê=<ˆ»[_Í!ÎשÁŽïèk ‚ó?Im{ºÀ4";4Ìõx.Æ[¹Ï¹ž?õƒ÷yf÷Å0cPÿŸ»08¸ÈYüOýàþ‰ Ñ_½4ïQM’ 4«5/•ðnwÁצRw\û'ýnAuÈ©+¸À žÙìò~‡Ž‡EésÕÿ‡|Cuìd;ð={L?jAz¢Ãµû_éà”côQ¬féOþcŸzX\“ƒ¹»í‰d?£ß-îXÆö²ÌµÏD.ãjsÌs<@\Èzil¦ê¥žiŠ™ƒ§*?Ï{Oøaü!ýœWüßûÄ"ûÉDß(ñ™äٽ婪_Ÿ/sŠÈä\‡˜?˜*8ï8Ú«‰§±wÈmNù K;”©±˜¤4JŽŠp‡Jw¹š\ÅžÿQä¢1ùǬȻí†ÎÇ_/Æw]°}¾ð±úÍZq®³)øÕ Ö¬TÓzˆŠ+ê«ç ¶k=Œò²`}ÓÑã·ó£¢©gT´Íüþ¶ÚŠ•Ò’tÃS”5ÎÉ£rù5ž`(Þj¾;ƒŒ1…þP<×Bz#…Ü¡4jº]±ûsùqW áiëS§æ½êƒ'óûhÊÖ»´Œ«ñÞö ~,d•ŸRni¥Y-ØGKêëÄ=@Ó‘4 º3Œ’T©ÄlµûŠ/Xß®`§Mõ›èw „¹34»k“W¶ Þ¹¡ñìɱÍQ\,rMæG¥6b]“cùÊÃØ$k°+§‡‰é9|(Ìz‹µ;èÁ ¬æ±g‚_­®ôiX+}Ƭh%5Ÿ¢èzEÝt^üÇsªMºƒYnäé,ª…Ö^¼Ö:àûNÂFU€5èŒÿxbį­Çë{Ùo¤ëë6ó£9Çoaíóâßl¦} §;“É1}Cíð3þã;ÏÈG}:¿qž~ĸâÔÛ¼I†5.¹¬õ‘9¶ÛЋ-¦;×ܾ„mþCû©ÿUú'6#3ê€ÿ˜Áý¨ ¾ÜÉLF'¨h–ýGÀ|¡ÇHJú·wÇYÆWµÌ-ø¸uÔL®Âgv6¯Ž(/µ#xÊmܱ¸f½¹LOU|ëta›ùù?­Ít¿G¿ÃëLöäÿ˜~å°C!cuÇ¥~âÏk¨è7R”¹üyyE¿Âü(f‰Ð'21| <¯üÇyËoyœ.aÿ]ÌXðrwyNg0=âµ¼àôû™ÿa#!SÉ»¢þßG7øCpïEAú¶â+]­ OÇCüSz+ÀXB…b#ª‡¦£ß½Î;tD¥–AÔ$þx˜ÿ‹óS=b•¾£ß깈üVôOב›êŒ‹ÁüÇMôW¯µƒš·¶œü#jÝYtõ>õçïQÖÆ¤ÛFñX+¥ŽVßÒÿª¼|«ƒfwhŒü?µ¤èsnÈ*à-y? ƒ_uFÓ;›˜›þ7e"çȬg¨]Õbvy yF°ðRÆ ªêÞ“ø ØÓ›Â¸ËDbN$<¡­nüdp¥åÄÜ©áAl=Ö<]«A)žñ磿c"= Ûeé×åS¨^r7zâ"¸ :“aOfó\Ó;¡á÷ÇBzáÝfó½GrR„úÝ‹Z”`uyê/€U•à /+ñ Œ(.QºÝ¿Ýž?¸tå:Ǩ kÿæ+§ÕÄàs6?ø=ýûâ?|Àuö³£E`)wÉKˆÐ@±ì.'ÕÉ”î¢Ý¯2*‡ê&§óßP‡L¿jLÞu[w |.n‰Ëäxg[`?'ó›bs—mÅppüÇAôW-å-T´­°ÐÑ ™þ4œxú&YQüï Ø‡#ìñ%Ó›{´’¬¢8ʉãjž0×Üýn3Ö¨:´t ÛÒ¹Á¸k1„}!nÂV$§r¡8Y¸‘ØÔF~Ø›¶ö_÷ø†f÷›¢×Ÿ9¦6 ÿ±…Ù°—É<ÑâÌDÇZ è£>„™}`a ==Z²ö)®½„ºÂ1Ž˜Âj'°ÒuaôûÃTÇ .|õƒÑéÞÑî÷²Ã1À|dt&Ò½&UÏçClßË «ˆþPêŠÓÉœŠ?>dõß ©& ¤b£³±R€¸ô°ŠÀ}ßc*Ónc ½h“˜sñÑ¢ÙUcX5áOö¾2ýn*£ñI_Ìÿ[‘ÉýmºP_!Ñëv¿êK%D+¿£"}ršèÆ[þ£9gó•Sl˼!C´+™þ™·é0÷뙑ƒ‰B®Tµ´c²_skŽÙ—ùQ‹Q_G1p‹=—Þ(Ý­dN¥@O‘e÷ÔÃX„è¯*©›„ŽI¸¨QºJo#ȬìÈMÆæzu˼‚zÍ—^&ôð5_Ѳ)áÐmÖðXÀ9-Ï^§ÿ¸¥>?ŸÉ»ßÜû†tïD|&SGÍU“ŸOèXï¸ ßÏZmò;²³ï9ftã9Â)Ñûÿ€¸:.þ#}üë‹Å¿[ä§ï_Ò¦‰ÒXÏx<ß^DHY°ñuÉG¦‚¬e½D×yÀq1¿6¬Êç§eþçS»þ|>HG ]3lþÞÿAÿâ`ö»Vå\›¯þ^.A×›ùQaëÞ®¸D+‹¥o Ö{m3)¥ÁhM¬rþ}Fžà‹¥ß#°œ\á¢Ü.šÑß%ì*ÿúúšŸË„\çxÞ<»®>)¹wG̛֯ÐMŸ‰Æç>L†=Åw ÃDò‰tÔe¾Ö‡³`ªpI<×.<ö)®±Þ£ù_㬞\ÎÀZ:È?Zc+Á"=&ÿEÿì_—Û¦\†o äg‡kKø€Žìm>x0Öõ!lLR½þcÕÏygO°ËeèiG€VÇ~ñ½µJ²o6èV¨ˆZ®È®&x$àìR¯ÉùiÑ_¹ŠNXüÅD㹕Œ¥ öwE?ž[ ãÏÖÃûÀ›zÃŽl—EÝßêwãª~êiÞ¶-pˆ#É3òè ‰ŒÛ¿TSèŠò³2±­¶¾?籕 áøýèßþô—})JZTýßäìÌ>ê÷€•ï*EgRVÉ'牓ؑÎèĺâχr×Sè¯éÒM_Žÿؤ<„±8ÊÏvE%Œ£ÜÑ6d@¹@é›ƒÔæ§K‚ׯzÁõÁ_N!„ÙOµFá0w¦5Ýà+Ãeàï{Â\$9{1ÌF¢•jiy£¼z‡uOvQã¿i>þ£úÝ"ú-¿ÚƒÖ<3§o+€Á1ØÕ¥ËÉîgÍÄ!{hGýÇ'Áü”ÁøÕ~ò[/ÑB/¦â?Z'ð«³øj`H­Œ+ºEûVs- Bi«pW-ñ¦¢"ó?aåKÙÏm²õ»£t!F†ºb]®'b¹ÜUÅ®‡Ú výî"ð«Âô>܈>5/¼ˆjzPÕßth<×Ü^.¾üä¼ÇÝÑ_õ&Oío¼ÔÝ9F2¥Þa}ŸþÄ'D7õÆ,@?ðÍ=p¥™TÕ üêzYÎç•<â\ï½ÍÂÌØsË’˜ya&cÃ܂߮ƖñôkÙÃ? {¯Y7¨c¶Ê2™«,žÚþhYAËŸ:"fþù}2ˆJ<§žFG:º5³Ð[}ºµ4¨£á™®‘5†?D=‰U ü*® •Ä5N}¦ÌCÿ+§ÿ8¦nWd_ÞŠv¼þòÝà}Écrṿ™ó­\Ô“¬sàŽTb½ý[JYkP·e"«Í@¼Ô—ü]¥Jf·óŠÿ{Ÿ$gúÇç“ ýnçWQÛÅeùÇ6­4øÕeµ«\PjW舵ü#­282ë~RNÁgÞ£ƒûgκ¡¸¯TÝÔÇÂ[f€?ÏFý`ÔüG/Íß8~·öø³(*=U7ÞÉîä7–ì´¬*"·b,z{Uƒ¹Û«Á¯ê€X2Æ`U¿ Obñ@lŠFnû%“ ÷H\jýwë“YÛšžd 1±‡ °¯SƒõW×Q5„'øF V%õƒO/ô»™Ñ˜}›ðâj݉Q&‘ò”¥6në9@µ\Èoæ¡â¦*ù×íÔªû–ØšíT’Œ%Ö¯·ò |!6öb ×¼›͘ÿ±=¿úë7OÐCô»&×·6Œ«-ˆ~·/ÑÓ&òËàJ“‰…ïÀLç½\Éw'Ò½Wâ›öè×)éÔB":o9k¤ïægJáçâÏãÍdÿ¸EÛœ­=w|–>Õ½)ðÃñ”/ô¿zŒwmcª¡e°û—ÌÕóÿ‰?9ƛژücÈ=”Fvß–D}Øã&òüa®¹›Öž¼¹#žq7V¨šº±œ’Ý‘Ïÿ±‚èy,Ú¦û ;‰Í¿œÆPÐYDζ}ve¾òÚ0ëi*Þ{ ±Êvò…†;÷w!þ#{9=× ØïVVJð«ôhn§ÀNÕƒÉØHFW¸Àµg ƒT&ãðö¬øZXÝv\ŸÁ*s±Â‰él[‰øÙßJìXƒ‡s…zŒ7*D&5ß“{4O®µµC¹C¿þ?ú«¶0G ?ê{2ÿ<%õ}¬ô®ÚG·Â¦Œ`KÝA™&¡ežÄiwç¿Ø?ͯm ~åAåÎoZnô ÿU+½‡™˜¬ã#=¡Ú¡°ÒTþ»‘UZÌ-Ì/aΡ ã*Jø+üÍ]º+¶?Û5öw^°ÿHŒ-]Šßøì?*€$ 5RèŠÜf½<¿yØQ.ð«# bLÕ—¢•ºÊ×ý±RÙ?X ÿñ¾ú.v>9Í+ê±ùy zë5Ãtø¬uáLöq˧´ƒÿb,!¦]Œ_Õ†=¿d9Ðs51GÁŸWìÃoÕÃ\";| …îVýZ¬£Þõ>–;¿sõƒçÀ¯†ÀjÇ¥?U[bèÇæzå·\¡Úo2©.œç²†v\¿”ºóŠÛ¡¿êÿ`<§§'£¨Aq&)¢ÿnkô`ƒèVuÉ,c•rŒ°êRûâÅÔB(…ݨ=J†X—ŸyöS7ú_éÿšýÚÈIÞÜèÊÏ?G§ìEýyIrÖøôa»¨÷';ü“kþuX~s݈~Ư « ©×(’;œh¬µœg\0Ë8òƒ‚õ€á ^÷ØZ ~•ÔXŸè¯T+š>ç1É"ÔÀß~š¾ùï%u…d1ôgò½™Ì1˜ÙéôפWË2üE{Ç2‡êØ ÿqÙ˜M/˜ °g^fz#fô ÑX5ò?ULFÆ"þ¿ù;ÑáÏç:þûõ篩ÿÈ VUJ”øŸúÁEJsüÇ2êÏÓUË/J>‹ÿÈOþñÄÒ+adzÝ^2ž|+rˆéZ'ç®#³pnÍBow†wº6ìÂ3Ñ–þ%´@Ù…zGT¸_‘%…[¤VL >S@ ÃÆmÀ®ÖÁŽüaŒeÍbñÝ¿„~Xª)tYY‰­=шX_»çÒf2l¨¢&–Ëžý±²t-|ügÙ1úÝSÁýÛ à>ëÑ…uƒWÎÎX¼†¨:ýy¼éŸ8ëç¢{ié"¸æ¥ZC®°úÌDr‚œìçH7/­ñ;¿”(|ßñÚLý`+µÇoÖ|§\TßK{*â"·¬–Ñ–õÿįÑ}Lü~c2XW°mÎËNÏ2¿6¼þW1è¿ûZ^£ÑV®ò(ö¹ 8MIbê”ø{b©¸EîàFÿ;7¨‰Ü—äè'âqÏ…ã?ö)´2¨Ó×—§{íÑ`eñ4‹¡dO%˜fOã0Í[¼”ÍŸ/åÝ­’}øÿÑj’â¬QœTv]Çl;ô¨·3p,˜ÉzU}#ÚEµ_û¢T¥&¢Ÿ‘J.}œá ík: à5d3<«XéøÕ2‡1 E Ð_}Eõ%1LÅ?(nëÛÛ9«V.ÔŠBôÅ‹_"‹üÿÖÿ[¼f úÝõÖº¾0ŸµYû,J%˜wüÈP¥åô¿ ]ÿñA¬å™¸EV4„óó†Ûß—0ÿ‘ˆ¹ºíÑ™wéÚtØXƒULhڱ ã<¾'^ôþ–ó]é¢ôUG“/LæùCYAÖ×›‰Å¿›M‚ñ«îàL•èÏU“ÈþöÚ¢òe~cÕ5 ÉCè±"7;× PR‹Çp×Áÿbšøët™ìfÝb_ÓÌšÔK.m†ÿðž7{ÕlEz¶Ä7påôòº¼è<¿¼ê"a‘‡W&û\@ÿÝèF«ýׂ‚eAY|ôoë½±VÒyÓJòÑ}>…ƒèè1±Ü\éFMô9'~u‘¹x¯¥ZŒ¾<§Ñôm¦ƒþ»§ÌBüTMöF¿D‡‡ãüG&üÇ[jù—S÷ÒÜ´'òfD³Ðþü3Ç"£ötÊÿ£OâÑÿj²ód¾))ÿmýîwe.ùÇBú—T"ÿ°9ÔÕJnz_ÍÕfi»Ñ_…ÔƒFfëç•…ZBù@>Ç|bÞ¹ÿˆ£î3å?â&õçàÎ]Gf½ÚIâ·ÃàÁ±ˆÞr¯šýn+æž#ó“Å`~#³RBø)Ê“k.®÷™£§5†‚d݆™ŒÿhHw)‹* !2O¤ú·ŸÕF±šøÕ.ø=O"ûÃø1Ø»ç YwÈi²Â¦¼DËÜMF|͇•ÎàWyáe^ó®%º ÿች;~•œB3fc•»cÁcë~ÎÿðÖ2Àp4ÂÊ_ù$¤ïÍgbÍ·DˆävÿÝud'}aU|å,Ñ>¸wfx'i ß½(~àc¹ÊJx6›—XEþq–·ÀµÔ×àºA»—Ã,r“”øâëÌ~ùÎrÉÕdâ®<¥+¬g× áÔÚ°¦=GõªžS.›©lNýGwøÁø§Œd™‚û6(ÿqZ D¯á¯ç‡1iŒNÿ0ñÁ0,lúNÔœ¯(o\¢#Èìç v¹–?ú–Gß.®¨eÃ<;@_]y*òcϼ¨ï8…§Ü@62“B¾PË• öÂ…¹Bôèú@2®¢l@r]ÿ%ÿ¸ÍüÁdÅà 6Á:Oƒ›ƒ‡8…æhZαXª&V6ô¶ èA2šü£<Ñýð«<ð}tW-tW}ÑHøgU„ˆý/ãºþ€ùƒsÍåì¨Õâ«Añ]àÏc€ µËÉ 6 F¢z‚KìãE˜ú«·bÑmv5’«† ËîŸh÷oObz€å䥗ùbtH×¾—Î-žXûTBŽ&ÿéÃªŽŸê?zà?Ú CìmØÞ¨‰Ñþ#j®Æ0ÛÕÌ6ÔŸ¡š¤8öôOú¬ƒyÊ.}È—Ákx-8ëò²ó™¹¤DçxZw`»5³*Oÿ;½-Ý&ƒ¬üLdĽ8NåÆ$ë 3›ö™Cè<•ÃjfWš+>G—žåÔ4¯w¸”êA¾P‰¨ª7šŠQ²>5õ¨EÙH¦ÀO¢ãMëØ†Õ¿ǵ—z’dG—¸Û©Ékïð$.¤zà#* <¨¤=µ ^é¬\N¦Ö‰Î*Õ8« V&ª:f9[÷Y=ê³VÌÈ‹â./¬!3w°BÕÈÔ\eÔ‚¿ý÷1>ýÛ78OÆA÷éü*j+UV©©µSø>âÚ™UV*µãÚ>øíªkû·_QVjiÈ nóŸ¢w`~mi*÷ˆ¹23ó£ò‰AQôyñ‰©#µµV¥™.Ôˆy0)µ­äG媒Óÿj@¤®<µ‘o´Làí ±™Y‰¥Ó¶dþÇT<Êy,ö¼ÔS9NæK#q„ûµåð磉ÍÏÇ:ÁÜ‹!XØ|} Œ¡(ùÇf¡4•W¨\WÉ2- ÊkâðØýàWÓá{ýÈGŠW§‚ÿx[7ÿá¥e‹àš×kùÁ§j`݃ÈròôW§Gˆ­šµ«¡ž€áù’5mÐ ¸zOÅtüÍš¯©¼*ðÔâwç¼6à?îsLùxrw¼/+·åíx./2ûåA8瘈úÁ ‰‚^´Üôîk5vç¦p_/"W‰ØîþÔÉÿÅ÷íþ%™ô RÇ„׿ä¼rƒ~ÏO8ÞD¼±Œ›ØþøðTôOL7[?Ø“ÊÌ\mc¯wÈ }ˆ¦£Ë¯ïþ<ß¡·ø7õ%ˆ%2á=&ƒý\›XOEÎ,ÖˆG_¼šÖú—|$[HHý`²<ØÒ‚œ@#‹ž”è&ôzÚG™‰¬4ý®ãÝaæÒ+÷6ÕS±%c©T«oå¦K_f0¬hï\±¥+ÉB r>3õòaú·Çy2në:øÖh¤GúIüÐftµ •ޕ隀¾u üySs˜yå^vê?gH§ÁUßhmCí0¶tG{õ•xwtK³õ5tƒŸfv4§ÓÅ“zñS‚ÓÈœà eÐGv¿Ê­ÉÔ¤ß"²»Ïü¨ßÙ½ÐO‡~÷®V뱃ç§ïRnòõn¨p€éï's8ÒðNz2¿Ö+ô†ûÕyúïV$"w!7XGÔŒÉî²2 -Ë2ÞÇÃDÏ©PÜ~¥ëA•¯ù¼2“þ»iÁÓ^³Ò~ôW ‰œ'ƒï\¢Ka ž8WvûFÎ{I¯ÏÖD°â­ ¶¼)–ð&ž¬0ˆo¼ÛìN4zð~aÇ›±¤{ÈH¦ÂÑl’3D½ßÖŸRNªw¥=_qÄ®FLŽîI$_Lf€¾’òÜ,¬ý<}'ÑX&Ô ÇÑïÞçä¢Óÿê±|„…>Ëî¶“-”†ÙªKž”‹8¯´Ü~ånL#çj32Šõ“Ð_^¥=<üj»ò„üã.|Ç0,¸Å~Ú׋ îE ÀEÐ97lÿÃÏxìK·q§§ò é[Ћ” sŽ}´Æ²,ÞÅ iŒîEâmÁìE ¸î Wx‘ìñlÕtl~GPÿ¢ô2:f½@øó %ˆÙ¡ôÌu.€ÿx {1ýÕLøóŠVzÖÌJÿ«Ñ(%ʯÉ,jbÿN’VÑj„Z1±Àöj&æwz’s]Ö/c¨ÿXн/…^ÊjÇüGI"ôXä‚ä=3A±à¸;qDhü*†\JUå#Ë"D¢£é6ÜH~ѽÌòŽVÔ ¶²â´F¶õøCæmx‘´æcSšñ‚+nÇ1°œ Ý¿Ý_|‘ýA™;£s¼$™.t+9fÖ€=ñ€;*l•qÌwœF_œÑzhŒ%ë*Ãüó¹fJãþã±]U¸ÈârŸóŠÿ{Ÿ¤U'R÷÷ã÷iô¿²œ_ýønä>¾Ç¤§[I~ð«ójKVÙCþñˆŽX[´ä!zºÈ¬wúsWy—<ï†|%Kˆ´¢sQï‹Ì]y"R¢¿ª¥}æÕÛ+ÿ@5Q’™¨“¤‡Ú‚šôfújêíba¢sSdvf0_/ލų³ S–œ#+igú—¸ƒäìÂfì§ü 9R"±à ô»•Y%>¸ÀB"^ã ;ŒõúJŽpž*ÅŠ0¿å3æG…íÒ÷ëò—”YÒ›x­ŠÚ4ð˜µðoé±;[é¸ÑÐHOœÚ˜¤•ÃÉå™h¨eàš}´jú&¬rsìÕtÄcÈ>ÊߨZöXÆcÖµ»_­ƒQMŸ²år¦h¢†ŽLCöh_¹­ž"*L~1{¾ƒúÙíD_> -¯‰ìgà=½9Ëvüù#éGÿÄðzÄTˈ'Òîvu€ûà‡g+ÎUW Î?^’anwÉ>Z£ßm¯>ŽüÃ…,3ŽW„ƒ_íQ^kmˆ$S™4!šó›èÂå„/j|…¥Ì¨÷G;å ñ_ºÔmo|?ô»ÅÁ_ð«6LS¯Å›]LÞ ýîy2­]x§ÕD¾_°ø°¥®XÓ¸ÁóÓS?˜Ï•$©QX'C0ß-:yälÝf+¶Â%ÿXDµ\ ùÈt*üÜáχYê5ìAøöRp#öo.„ÿÅüÚÐõƒ1ÅP2¶ÓhôJ’Ø5çÈ?f˜P‡cvÅnŽžô×*Iñ3XÑü`w³ñF]É:ê1Dè*Ÿ$r.ØÕ}*J&5ˆØWæ ¡×ábæ,$¶/ Ætþ#€.È»:á?Úá?º³òp|]æŸôW•®ª;x^_Âa\Km”Ð…A€*3I©:HUojÅM¢ðhfk¢.žˆ7‰AG-ž"r®‘ä}ŒûrƒóÁÛ¢Ä÷ˆ¦NòL}6¢3«z´QÆCŽUEX9´p+-OkŒuÛ¿4l…™™úÁ@¿5Ôú§1†ûsÎ7%óϿˊÄC¸9ä`#•UÈÑ ¾úÝ4Ôx±vsë5€kÌ3ÖpÅ“¦ƒz?ݸKþ1EVG}çÌ?öÓ—é¶Âڈ鱤›—cªµŽúó‡`k­©*ùÇòuœäz…uÜ —Š’1fžª8(v:ÂÒ=Õ È¨MxuÏÿê“lêtþý±„®¦Cõ㫨}üN'­tÌ‹*'jÙÑÎe¥:ýWÀ Ïó‹ÒrÏ•K OƒÙ+²‚PÈ?P§¹X&“ïÈF:D1ÿ(ˆ~·¹FAlIaæŸW¤B«³vGÖç{x•ý2{$û·'¡6²”¨Š%]ÄL¡âã’XˆÕ;ŒÝÙƒÒë óÓEªâum.þýû."ñ)|<+? ›ˆÝ/Kàsù,‰ùçß”¥ÒýUWì{:c <ÈæÔNÇ*ŸÖÐKÐVMƒ£›·òIöÕ2Gp·×k ÈTꃠßÂdàc)òרŠü†«ÁvÔ‡}»ž <>r ,Òï<ûGô»ÏÉ?Nqv“ùÉ,ºUí‰÷A劮a 8øS¨Åx•M|„6ö©<%^i7ÃyvÈ…íúü«-YË`ºËWà_Û\ГÉe"(¸~0‘Ñ|k"\ëœWüßû$>ý¯f9OƤz0‰ó«¨íBS}èH¸E+!j 5¸Ûçn¥šv–ücóksD‘??Gÿö|d/Áý£é½ÐàT£ÿî-±Dæ¥~°èEýnJæG—¢þ#?¬—øro¹þWWek”Mvg¬ÛԘ؜MÄÿdÄ7¦qš w<KŒb켉M<ƒ)V앜EÿÄE/§ÜÑFŠÂD%vÝÇAÞi[gØÛ9 á«?@÷d÷/y+“ê½eÄ ±KôoßH¥rUîÄXåÎÄÈY±t{±°ÍáTðv먶‹…ΤϰþÃK«îÒ~ç ™rF"òXõ— ª¡^iyãåÖêUÉÑÉomè/þe¿UΪ·e*âÀq ?‡ÉfÒq½íY¡.ö« XrK2šXÉ^ [ûˆš`µ¯Ò{ùe8 f& | ãߨ‰m¶ùéBÄ%ˆËã³JU¹Rœ¿î…É ÿ1•|.)‘g4Nve8þc›òYË#/à?F?'✆ó^ºãÍÇ`Ñc¢¿MKy jð3ÙÀšËXµJšÝ¿Ì?¯Jÿ’üœZ6TK3Éh®“Ÿ­‡M_JV`€Ù×¥þ<>6*Èý|bû/xšÉFSøþ±F~=®<æ Ok¯XoøÕ ö0›f3Õ Qòc ZÎÙtþ«me6?ÙÉjÆ)Tb†¶¼4üÇ0ô»¡ó…Z7ÎÙîV ܬ%þò‘1üj!|wA¬éIªëâ:V“)”1»‚唃;[‡©exà?æ‚_M µÃ—b-9ée͉FeŸuÔy, rd ùÐ"zÑ–±Þ™° `ŠÔd[æ,xøÒÉ<“Ýðu©äGç=QmæÉÃxNÿ«‘Xh“ùçOé*ò•nŵ¨M—©Jì¯<“ø°ûÁ¯Úá opÏKã‘>ÈõÎõN+ª"OõMd– þXy¢_o¬´þ8¿&±Žzï.mTðÿþÏAæGmÁ4„¡Èˆÿh‡•Èv\§&ìçUØš¥ MLhÙ¦*à×µ·j õ5ì§Ñåy<Ѳ¢ð¤¯ag¢ó~¯Çw,á,¾‰g¤¿Ô~ÑEý3M½§¾”Ùˆš¦a™ýà+²â=ºá1³¯ZØŠ¦ÆK¤©œ‚}’èÚÉÏ_ !Nÿº1%©*P=Þ#NÝ?³ÿQ{]ÿ‘6¡Jâóp©Ý©“ïÀŸÈ{[€:âT`cáÍÜ£<§¢¿ž ¼¤9o£=¿vûLºÒ>ý^³zS»þïþc3û_ßå‰ß{H¿ž°üGM­"Ym2ŽÕØÝ’Øç¾D®¨¥ÎÀzσëö¢£Þ{¸ôœØÒ"ÔTÇÏÔ3º°ç*ôo_æN_C¿››x%/ˆÊvXxòÁi`Cþð!Ó¨Ôódr^ + úÝœæ|^~ç+Ðûz|<Ž'®fÞ!Ú²÷0È2¨–㿯Ðe]ÐãSÑÔÚû›À± ½Tiº ž'3´û—xSß8Ò¸ƒÿø¦þã³XCöqUÅ`2šQº/uÓ™âaä5·¡“Ía½¥’n¬ôR˜šÔä%öüËäfvµFô»o÷¸*ùÇDpÎQ<_ù[éb”ß¼IÎ&¬tjŸE?_ë/¦ŒgkŽÃ7¥£V² ýñ_0U?UcoV¾jt…ü~.<|U½¿¼£_5raß«Ódó?f“ÑŒ ãzμ'”Oè«õ Öj>j‰¼dS;å_2ÀyG²«S…ÂÖ‹ïctç©aÆ#ÿð%o‹n]f>â{¬aø'î̺*Çû¥6c’eÞ .Y€¶ÿ¼äÌ?ö0?ê…ÅÒœHè\lÆuÜàgKðÓ¶V ¤U ýî=ôW¹¬kÆ#Øó¢¨/ÜͤxÄÌ0¤=Qu?ÔÿÑ_¥ ûXì<UM®º8¿rÞÐH}òÿ‘™^WDyñ(¸‡ÅÎàùQ›èß¾™ü#jý¯®(ûxŸ?/JâùŽ"síJª/ÅJúïÞ¹D“(âW嘿Sl±zŸ– ãîrZ^»$[Ât'ÁN]…#Y?˜X3Ž ʲ äј«Œ±œû~XØ ñ9°øïø Å"•<ÒÆˆ‚Ø¢`$vOר׿ 8óÑŠ/%;=ÿ‘ÍaüGï ]Ñ"'ãŸèEÍ 6ÓøéÉÄóg‰RìŽÏ9 ”WSÙëúv-G+žÑšã7šÀþ^%Æ·çÍ–G¿{ ¾üùÍcØ™­ìz-ÞÏtëž\ ‹Ôê7k~W®ªñ±Ègð“ÉÔ Ó·%âòÑ Ì@§Ö¸Øú^P¡ñxÒü­*üFK*"¤7RÈ£˜Œ.däc*à“÷_ÀOÇ›D%–Ø¿òçÀ2z ßí„™ŽÉ :5ç±>œüÃüª&lJøŽF†]ÉЛ{êcуJÇR–æ8¾à²ñïyŒ“û´C¼ß™Y ]ÕùUëÀ3p–Nf¨iìJNõ˜Ì€Y~FLjSz ¾Ú ?½Žü£<ùG Z¤üx%Øæ¶¢þÃÇù¨ì@u‡hç1Yó=ÕDFEë @–ÓO‹.&ÖDú>%ÿØ[sˆŠ:ä%9çã° Sõ­0Þ'×[L"bñVÖÅŸ3Kž×7Sñ—úó®T8¾ ?r¡[UwüÑiô»;ðvÉèùeÁŸ¿$k ÊÛ5L ÓV÷‰Kr(Ïh2ï¤úQ3‡czçJ( ª“Ubºá ‡æØm%µnˬ䨡{¢ŠKE|˜ŸÝ ôŽ ! óÒÿãŸ$W½~¯¾)ùÈ@þ½_ª©›©ÿا•õéßÞU¶)É?vÒk#U%!ó$#³þSå.ÀW™ˆì ­Þ†ú&h¸>ˆåÁý«ŠqQÌ?Zii¸ß×ðsàEwpšZN½+ÝFb¯¿Â±D¬Žµwžm€Ý?q*1o/îøYP‰%X›cb^à¼B*p”¸ti. fDâRßi«EbÁ`$¾¬jÛ¦?‰—Çá¯ÄŽ K®»À%÷9#¼7w•rXWCØ÷Øt7P˜Tð GÀÙ:ÃÏ^f·k9S{jGV}u„õç´†\ç_ä1xʬ¬”>åubßuµ&`9Ù‚WŸ|hh ¶þÍ. õŽš€ì`?ðd°º\UÎÞžÿq¬jõƒ¯‰ëG/{ó]OÔ¸)Ñ9šâL8瘚.d&þÚŰ瓜ãg²TgK`Üg‚ßqX¾#úý:äƒÓxo“ÃÆ§Ä_m ׸ˆFò!þ¢#q¬‹q—ÙÚçÜàIy;ý©,©kœ%V¿lÜ„ÿ8‚‡›ËýÆþ/Š‹Áýz~Þäd­¶,Ï Åð8ž`4gÉ{×`—‘}ÄÅÞ»G§Sn "ç™d _õìü½J0¿ýÜàW>aÎ0H‹ÅÉÛz°¥DØžÆPîÁò3 ùéò:ƒj½¿¨x€¢+€!=¥^ƒÒÔƒŸ>ˆ'Φ_u"ÑšïžÂ×2ý Kÿ1 ÿ1|á/ªéN1w"‹c<ž£8Uþ°ð™`êãmúq6“õËZÿP;Ì+7€a>æéÂï'ÏXÊ2Ó¨@Ew{làó33{w1{q7*ãAô/iÏyŽ4ªò_òCÎã««´S}9¿yú‚@ÒwZ¯‹þª=ý©jà“fþâÞ,ŽlûúîªsêTuÜÝÝÝÝÝ]'îîBÜ]‰“„¸+ĸ÷wwÏ÷+îMC¸äó~sÿ“'CÓ„Ó§lËZkïMlÿ˜.]¥•à‘ÇšãñMIÍíøýUt7^È×øE®õ|?ôF4®Á$#©YÌh-càų k„ n†?>‘¼ÏA®ö/ØS7rPÅ_œûçžx ŒwIyÅu¼9˜ÿáä~­Æó¿ýÕc£™Ø™Žú!VJ0¶£d6+¨'q:7QÏ~„NŠÙ©rTè¥>ÂÎõ1<älêX™¯üïÿöß?“î`¹vÿ«ƒðyévu’üã5*³ž°ò+œ¯Øo1‹e òBb¸:kÿëCëêoÐÜã™n 6ôMô‘[µÂúÙ›¢ˆsoÈÊLXÿõ¯ÿÛ׸Z]*º»n»hˆª&¯rÇ:\­ñ÷ÈKRP/ñ‰)€9BU?èGÿ«|ü–¤h%ÞMÇÆW&ËF¬²„¿×Ù]vú_…£oSÈ=[üîr^·2ö%£ò…™F^06Á—.9™Pl¤R+ñnsø¬Æa=UÇ|J/ÂÚó?ncÙ3`¥ópt/ñŸØéSüÐv¬è¾s§¿íe¹/ü§]:µGÚެ{;:®¿kÏŠª¢ŽÁØŒ‚y°FâºÙ¬9’g4Z‡úƒ`.H-+]ƒŽkïÅK^Æ’—aâþš¢+Fjê?vÀÐöÀ~6Å›ÎáçÙÉ?p¥‚ë¿ëGÿ«â¬–Šh¸š­›<çݰ×é°çn KŸñâe°&ë©!|BöåCî1=¨]›x[œÒJ9}¨?ÏÁ~²à1<°‘7¸¢t¬Ç_µ'ºâ?Ÿ¿òïŸ8üê9Þ~(ìB;ðšÌrð²Þ æGŇ»É>u!H×$ªKgÂuŸ£×(z@Í‚ùíeEgöG"çñÔã“6ƒLeTÞ{6½îo+FADàÄJzñ©—{èw§+E1K€æl£kl§;®UÈf2GÙþ£Ç2žþíã[/²œK¼óþ£/þwœ±‘¬h³ =Èg–À.T c®5šühóÏ#›“°ò=á“Få·g)å}×5në¢1läð)˜fWÕ®û¹ÍSÔ*üGs½F¢0K)‚³u~ãM&Ñ⑼ÑÚ­„ƒ_ª¨>É­®õ.9"‰SìÌÔ4 üù&©«Êøˆ§–ÍBU¥îÒ“Ž¶#Ð_Ý'ÿ˜J–”Ô*IÿöJä¯>œI:Éòªëx+ký„Ž÷hȲTµ”Ù@…3LÅ@+ {ÙJî¶Ìj@Ènô\¾ÌM,.ÍÈD @ÖËèȸüÇQÍ%ažÔÖÜù—ð¦ÓîÐ’€œ+3«–a’ðRçSú‘¥µn¨Åd‚¹'îfRüGN"›6¨À>‘§ßtñÿîE¦Ÿô/ OEl×y Û.>:Ž_]Õ+‰–Ì´1 æ^¢‚ÐGßË|¶°åw—˜ÇðÚ72¹Ñ™þWÕµBÔù“¹©ÿkÒÿ„’¿ë^z ðöÝ2xCê?ÜèPWV?)™ßA•IQ—¢k¨Ž<#ýŠž þ›‰ðÿø¶ÌšðŇhX²tÁ-*F¿™ßÞ½«{ˆòÄ‚ ðÞÄÝqˆêË¢ìègÜÀŠÞ%ÒÍ5 “ü#_ˆ;¼äX&íúÅÊè’Òø¶ÁÆ% Ž>TŽ8÷4¸ò"а©XÔøÆJ=¤Œf“^J¿f˜1ÑÎPv“›þ³N¸Àwø”%äHÞ`NQÕ2üæ9ø¦¬?wh—´w2;õ°h©K‰ÏqöI«Š½nlŒá‰µû'NÅn¯áSGòŒ&€]øª×¿ÄƯJ_t™ø®B”aU9ó·Àd®±¨?¿¨€ßÄBÕ€óÛ½À} ;>?˜üÃ׿â5Q ýÕYöåÆ>Ëÿ¶gwv§ìêà-K°(·°É&€1ö%7;&öÃïývQcõÚÄ*LŽ„¯˜€¾ê*Ÿ¿ öb3‘oLx†îÖ 3>–>ùÇtl|tþÍ$ügg¬,ô¢šÓhoôÄP„'¿CÿÄê 1÷`¼Ç\ìëpú—|¡_Ⱥ‚$VåÔ+>d$>f0øÕVV뇟 8CÈ?î ÃŸ2›±¯¨Êl‰g¸Á*Ž/§2êß^‰ùQnd~Ô{ª'¡,Šid ê°µõŬHýùHð«ÏÔh|£Wzgò‘™Øìøæz˜”Lñ@ÜQ½—K\ä ã±~“|ù¨1…þ%…Œ‘ò¹ñFÕƒái U~ðËé軘þ¶¨÷km ƒK-޹Wî JÿqPÒ›Ùu¼%µ¡èwK×u3æâ?^³Ì¨pùžø ÌhkO¡äõ&oxFÿÄ͵³kýÈ6ÃÃÜKô-è©€_yk·ð#ˆÀêWyÉfú'dÊïS*—ÁôHæ²¾Ò¿åƒÚŒ~7¢Õ”óh+Ócqz-Éš â:ôüE*ú_yºÎÌwºšþ]ÿai{˜_kû¶â© º‘ùçaDöèÞpßûÂt,§·ô†¨¯¢¢2Mÿ]h*ò¼]2‹ü* ˆžAž‡¯¢Ç·ßOMWkþ|}a(óégüó÷² ÌzÃPâW©é ™PÔÃnn!¯‰UȬ¦Â3œÓ°Õ§A ÂÁ0?ÇÔÓBÚ?ª/™‰#©Ãø¤¹ÄÓÇ©°p/¿gxaµOÁ8$'ÿˆbô•vWãÿþß-Ç,yÿQ“ì …Ú圯= µÓn£,Xø-7 ÿ‡þí!­¸]/GþÑŸkÏÀH…ÿ¨DÝø<ÈW*LüÐ!mà¯7(’ë—Çéßþ'þ<ªvB{$“p×O%ÖòÁDã ö4–‚©mcòñ…LÉ›ó:„l"½f"‹çÁtbæŸ?“W„à3ÍÀ¯Æ‚—ù»†áüÇhüÇD²‰$ðõðHÈžžá?Ü‚­??âx§×`µ$Ä× P–åìÁy+FmDpëk ¨UÀй<âÈ·'ÌäÜöã®Úƒ~·P+ÓS¯/Ër®2cß=P/Ùý|7Rc¾ÿ̤5È{v”R©é¿;ßï ê;[bYÓÂl²Þ)üGrî {þà2±hF3áüÕ ã`&b_'SE÷ ¾á*k¤&®¿†Å¯޵ß•5n‰Î`¤û¹Û*ámúá!ŸÒ‡Ñ½|Se­fÌ¿@Õs'âútðwÈÒÃÚ{`í)?®ž)ü¶CK®I¹ ‡>n€qXíSkBŸÄ8æNì}vôDÛ­ÁXÑqøÃ ×Óî¿?ÈØ4`¹ä ×5nMÿÄQþÈ>’“öSEˆú² `jOžŸj”^诞Qåø˜úfoôWwÍ æRVôÄŒåú5E€wø ­»EÄãÃ3ÇLd´—Ôs*7ë ÊØ…ä/-é¼ÞŸŒëõ‰©?¿BÔ_—³˜“êӓ䓌£ÔÞwoI­—G„ÖŒë±H•7 ÃJì¬È|Ý| Kué›xˆXõÉgÖRÿ±¿”Û|AΞ,á×bÝà@ýw÷Ã|Ô²âfž4Ál£>h®éÄ Õ ÓãBç4ë%ÙÍEüGº4°gƒ`)â㑺Rk©¼2¸)k®“ú½H¤Í„_iZb-¡ë<…í#ø•Ý¿¤˜h(>ù×mqd£}­¾šþ%ñ´°U·søÂ@¾F¹÷‘è£ùG9øýô/Iå_ÿÑOo¦}V¢V°¸±Ko¨k|èÇ\P? [£ÜýÈ“³¤¢öOGŸû˜HÔÇþ®ã^¨L䛆­ú«©Ø_,ÿwYžÊ†±ÔŸ¯øÓ"Þ¿¨/¹l¯ƒYM²ëÏë׎¥KsÜX±<¶+H_Tåh™¿|èE=dL,×K<Åö5…¼ ?»Ü‰ýËŠí΢ÖV^dóêzÖÎân=¾§.J»%;Ö·09ó[ð* u̼Ç2†u°-T°Pî…ÎÚ®ý î¿(ÚÍOšêG7?‘‡ˆº?ÁBv¶ O×Lã-ùÖž¤e¬;/þ»ŸõÁ,—D‹…jþ2Þâ0k"®ËÇy+E1JNÞØQ7z!¶„éÃg¦_s⯂›~?^ˆÕ’ ¶j_ì‹ÿH‹…kLýÇMz‚M]BýÅSŽ;ÑÃ>³¹â^úï rÌnàWE8¦lô¬†ô<Ÿ»Ÿ:¯eÄÜ?Ô20“ihQo«4æWxéôàv™°|Eдº©Ü°7Û‚¬wBÿBT0œ«7|Á]õµ#e²ù þc4üys+5µI@^¦P?ÈÜAôH ‰¢—“í ŸÕr~Or×åÃ'¶SWP$—™J¾PœÞçé–Ó¹ª·"æó&,R<×,˜œaäÆw}ìo;Œ†ÿxÖ×TYåyØ~w1øÕö¸ t(±ýk/Ìù ”b¯ñBu©9 ÂXš¯™éB#üå«ÇSöSýù|XÜæmø‘|iðªxŒÖ:òÖ‡™ W™úÁæä‡9;¹8‹_åR×=smÝ}2­ãd¡‘Ìœèw_ Õ(G…}AkõMÀ›ú’\$¿ÙÛïCý`IzF–ÂSïǧÏ6nJú¸Ž7—ÖÿQ–ì¸7šó¦è¯æ˜úÝÙdYñ™1;—Lá ~d;+-fêû+Ç쿜ç¡ô/© ®rÕ…_íÑv¢$*Ø’˜e…¼`æ†ÿ8Ìü(w3ùG+’s1É}ºàßR›àè#[­ˆ’s%s46þB1˜ÿÿDýn@þñÑD‹è:O® ª_kµìLû($Š‹[þý·Ñ?ñ8çè›ÁÅø±Ð,wÞáCýù2Çœëj"¼(MþqBÌ”‘˜‘LŒ ò<„´f6ðã¢à+©ñ5Œ¢½\®å…ÿhÏLˆg dwQK…Î#Åcþy*üÇ(ÔØéÃ`ã‰.‹hrNƒíGÅ2jd©Dh*zžèEzîª/0ÜÞø‘(Ø×*DË#AV£g¹‚&5Þ#:y÷Ÿ"û€£?ê˜*WÂΕ‡9IÌ¤ÆØõ4øì¬þ<<*ïzàWvê9B¸Úz1vÑ |k“ Ëžìê)<©“Éñ[ð!{ÉNÆù竨ÿø]é°·ŽãÚ¸Ëóìg$Þ(šäŽXöFyu¬gˆÆ}¬¬Í®OëÉ3˸÷õ&`׫ø¨àÞÈsØ›ß߉­/Â刓€Ðg ÿ؇½ë‚ÿè@Íϰ†ld…‘Ã_mFãYU^ÄuB-õ“¨®/¾mŒEWÞ‰íI@‡õÓDþ°jÏðêËÙ¹=?ªˆq\¦§¦kcþ/ª‘ÍdåNËǘ .uXu/ç~5}xxêÚDÎñ°þ1© @ãŠ/Nƒ·Ë‹v¸‡Jl„ûùǹãâ½3â;Ö ÔN7M½#Ú‚ÝßH4zÚ¬FýÇ*o€»$ÆÜå³ë±¦QDþ ÏËG½wð ´öLöÖð©C…ÿø¨  CÝL5áœÞT”þ‰·°Év5Ä(¬}w޲!E@Õ˜}À?ÄzbŠ—df}TUê¡vª tØh 6 þ¼=B¾2'p ªØ©èws3ŽôG.üDa•BÞuÀêŽÚH2#{îc_2²ò²ªQ€iêuÉ?™å˜ÞNU¥¨Çn‹ÿ`Ú}Ý“š‹ñó›¨HœNÎÕ@½ Ôv§CЇ\Ù‹ÜWQÌìF;9scûÈòÔŽfþ¹]BÚ>ÓÞÓf­—C)Vß¿¿9“¸£‘¼áºÂéµ!D.eÐïþEþQýU8ö’pUØó;f{2…sԼ췑l£²$ùGDøŠ<㣕²½Œc\qù½dòîÆFï¯/c®HØú·_¥ÿUl˜kt7Ü-£ŠïtO¬Í#o¸(|D41Dï¦}–ÐËdhâ‘d%¦mE?Íšú60-úE]• éɺü#.õÕ–°;ޝ,b¬$†ëM$rK´"^=*ãùö]ÙRf=xþ|Oê ENîÄ»`"Ó‰Ž×Â!ÿXû±˜{*øÚÙM¶ ñ˜o8Úq<‰ˆ|ÏÃP̆?…ÕŸFÜsÚ(p‚ºBP¡aØhËØWþóÎìŸxéùÉ1js|Çð”vÿ’2óKêâß¡ûÎ{›ØårÖïBUâúïöø£ÿH ]e~ÔO°¦áç:,orüR<=1¢œÑÜú=–y{æÒœŸß§EDñ%˜Mf`~í]yeÔ&¼·Ù%vÙ’Ü &YL:ɯ¦Ž®ý'Ú“åLå2å%>¿v0þã’ãŽ^^úIAAj*‡ºÎ B•–˜» >è6 Tu¬g·z ~åÃ1`Õþ yóÅ…ÿÐ_U¦cjîª5±‘¥ð´ƒ92»ÿî%̵̡n>q똿úŠ×kƒ>®zŒï"hý ¯®ñI³ñ@‹Ahæ¨9°Õ3Ð_íO›DŸ w—*ÌI}~u‡='Á&ŸÏ©EíÉýTJ/ñÛ•þ¬wå<ïêVÀJ6Ÿ;¥ZRS`÷/ÉN…Úøä'0ÉßUY&þ=ÆÃ‡§°™Š>`0ŒÄ¢ÿoëý³P„=ÃRkµ1„nð£á?ú‘L×É€¶i8SDzu†ÿÆ•iǹì…~¸9Þ)Ž ˜1ÙÎ1LA^ÙT=1<ðWåx#+üNiüD~ð´ènš °÷Í­NÌ=鄚75%•ð—G@  Äò Ô¿ý Ã‡‰§¶C}U¶rj£ºEÉA&ûM¦Æ±:™C 4­[hŽçP™cÏñáˆ'Óý2–šA]l[iê¿n´Ú4!¸sÛ3AîSŸÌØø7ÂÄö€gÌAžžü¥&µ#ÅÑEÄA%PO>ÕécÝa~Ôcú'fÃô f¨Ï—(³‘ Oâ ÔAì×Êÿü×ÚmžëN0È¢¹¾ Û§¡b6æÕæUyžìHy¯£¢ÿüÁYú ô)¡™Åð‰W˜•ÊV)À\G[kÏ?O¢=“e,ùRd§û_aÚgný-úÇ£v%ö8.ä­$3ÑÛ¾r´'w— røü?¿J¨•9)HïÎ=T¦76wX=0¤gðëPnÒ£Mæž^Æõ“gú8QÏcÀs®„?‹ Rduì‚'¨ÑUê-R bÖÑïþ©3ˆk1Ç]ôW±\h° ^Øà™FjÖºâRœä*6l>èÚ>ë‡Ü¤çᘗëÕÁ§Úq|ñ©ø½²³Bo«úŸ·ƒ Éæ?RÉ¿C.b WÇ?¬éÔnj/ej|Øü×!*ºSâuºñ\÷D‰8ÒXŽnæ-Vv?õ2öPY‘Š¿óD Ðõ*––.ö$[G½|¨ ;«ˆHÿQn°µn¨*ð„M§ÁÄÆ/Œ Æu¼Ç<57' ºH4Ø5Cbî>h€gQ6WϱÈçÔ=Ÿµœ i^®ýÛüGýy+½ªŒö°kPK•Âæºqœ••YA$zßAA£aSÓ¹i©÷FØþÒ ÷U.ôË‚œÃ›º7I>´ž}*š ‡èw£›‰á'‚…Ã*heÀ>צ«ïhÈÅ©-ôÆ:âÜ0r¹ÒBôÇœ!ßÊëü–ú5:àå¨`Ìœ(‚EÝs»”õ†Òÿê~£8žp9•ý•=“æMú݈r)ÜÇcpM{ÞïôW;ðjÌU¨l\';úÝí¬÷L-2¯Â%Ïâ3;s.ú±¿žüÍ(_ps Ò¦ñáFlŠfYÿñ Ìï9=KPßÝv ¬ýnCüæLô¬L»zh!ü¹'{¦¾ê_òÌ‘D0ûÍÑ3Ü‚O ÊÊð2<Ý8Æòüw©žŒGN~e‘‘ÍÆl¥^µ¼¼Žÿè@þ¬Ü ìoµ=cÑË–w(BLýýÔ)|ç{¸ o<ð&Ðl: ‰Ýÿ_ÕÓ_µ!_Xä_?x…#=€ÝÚMWÃØ([KAFB™„ÈÙf|¿Ã´O‡yéODž þ|i{‘Z23þ¬0|¹ùÅlÔyËA¿Â™GÕ08àv0µÉÈ?"P¡žŽ(9Šp#uà¦/pn2é¿÷.b {¿ž‰|¦œÔ5:®¯`5§™{¿üê±µ…é$AJ®£EÊ‹öx6wP;õ?v_ïñÛï==#c~iô@뻓Þòóé¾Ñ\(*ºâV¬xÓ¼…žõïÛZÖéœçþ°7£9öÎì2ž¼ìº´ƒ#4ð²÷Æ0¸™¶Ò ýÕCzG„5*eºÁïߥJ%óë¢QÚ#`pkáÝoÂÌWÃ+iF@ÿ«ލâúÆÓã?>Ñ7[¨æG]×{ˆ2dÑáwñdÆ;iÀêS±Øk‰W¶bµSƒ5ý„ÿ¹BåŽcüGF¢b û¾äf>|…;Võ,*ñäÏ Ùí9ËØªg ájïÓëb+Ûó¬Ü‚YÈŒ¬Ûðö# ¬ò3,èF<ÈVìÆ\&´ï—óDÿÙ/Á]¥ÝÖtü×mŽv$jà"¨Gºƒ§þãG~Ûôo2¬‡™=x–RÌeñ»|Ìrµ¨æ_Q/sˆçØkX?W/— œ¹ Yê+"úÁDfÝÁµ†¡PHÂUÑyJ§ã?¶á?²Èûx£®ð°Qýùö\Õ´Ø£¡ø#M7ÚQÿ±LíÅ~¾fÏÛa–6ããê;‚©,ƒz0yQvþ½;ˆü#Љ-F~"x?ð+wÔC]a>R?æ·(HüTC0ü¡ðò?ú_ÝÐïLĬ&«ZˆÂé¡1ôëþ¤+¾-xFFfl[ôCyÈJYÈy®âíÊðjW-ù_õžÜç¹ÛÊÂϸq_ÜPÓÈ6©¯*u«¬è›:±Ç*T‘_ª€÷E¶ÒücŠñ"Hýîc1Dí6ƒÀí3Ö+o¸ã&Ì« ?Ñ’N··™Ä×9¼Œf`,ª„~¨h{å÷a‘ÕLuô׈ø´hòzª²“‘’Zìfä è_Ò‰i°¬ßˆÌkSó¸ÝmF2§úôv9ÍÑÔÇ#=ÄÇ¿¢â)ÐÖÃìÛ0Ó äTa“ð…¬ýsa§zÖB¦ñ š$9~é¡Í¼à3ª¥øºò•ëIɨ zódŸ[UmùÚˆÿQ½Unú|Õ¢öã=x› —Úº¶‘Ï)å¯ßê1wuoªk0ñô¹Ë\§þã§Á=ÚŠÈé¾\L5ûê?ÊÑ#1%Ú«ætð¿ú‰~×I5fuX–Ѩ2âõ“Q9Û™ûꛑ_^ æ)ù§ß2™_ëá:3þ#¾ë»°}ö+ú_¥À[äEÅU4JÇ!GIý6ùÇxêÏc‡qþÇyÇ.ú'Úók-0Œªè¯òÑSë‰Ø(ãÊsx¨*Aú1„´×‚úwYŠùç…ˆQ9‘þ» ™)åF§Üëx•E M¡Ë?Rieèœ1®Üž?Ø}Ta5‚ÀG Ç–^ç]Iì'ÇÉ$b~HÛâç/ôá¢1xMDâ£yxxäe@[¦ƒ²Ï8&“ô$¶ÑI†ö4ܯ XïlÛNµÛXâ½0øn:6~Ö¶ÿâ'uVŸõ€Y¤'4*†¯òu»Ø>§4W£ KèÀ¥£ýµÁ-ôo'ÁU¹kQOpÂ|GFtÚ¬ *Ý:L¥}øSè‹ÓYoÔÎf k.×<%™e"Ìæô¿ºgd”~-ø?üê¿ èD éÞÞužÂ¶OŽEZJz•dåÑ_ÙÓj¶; ë[ð(“áÏ£„qþà9ð« x×ò«ŒhTš¨MºCÂÿqZdÂX?XKÿ)Ë¡£ÈÃOw\áFýGVý ìILúMÒõµTƒPy*|cj1™¨{1Gìj-Ô”ƒÀ¯:cõΫ°£•°{ãd:±&§ð±>BÔÃZ&Àl!ÞòûCˆ5ŸÏ\ϯÿaòw¸ü³ð1wËåòúX†d4‰õËbw®³³fDOŒ4jÕ$+ˆÓ‡ôæG]×ëk7ãIùL씩 ÇüŽ $"ÈÐK€-xL»ÿÕB~zK®C¿ûû¤¢€½E×^h‰ÔH‰Å_ û1v#©Aî ²Þ1ú&Á×ÖEº„Nu‘Å<ð´K(Lݱûýˆt ÒEð³JWZBÕ`Y”T>ø£‚j/÷iÙ x¯͹Ãn•g…vøïëjµ«`gJãÅn9^°¾ÕÍ®ðüM±ñ>`q­Èènâ¿èC~ÛaD9…»ÂFölÅÔvcŽZ VÕ\§RБ°%ýK>˜‡ÀÃî Ë:‰f`+ùGü±7Þ¹/úÝtøónè¯ú±3;ÿ˜ÊÞjÐå4“é@ÝôNÀÎ?:£Ä*mEwv·êÑ%~†Ç*k.G°–‰(óðÖu™ÿ±Ãu§œAu]ÊË53¿¶(dCú—Td¢®;\Ôò‘ñ}ÓÛœr”ת`^d)ü»ì¨Î3ñé”ëx³hc@Nÿânëf¬fÒåãSÁ´¦¯Ê[ðµ/øß¶Ô#^á¬ÕÊúØ4ã%\â.G[sЯ že®ê[9Ÿ´äŽ;#·šñ9>øõÌtKîVÕ9Ëù„ù©-_ú—”£L£3ŠÝM" 1SÓx¦’b~­üϯM ”üpÄD%û÷>ÕҿÿUuò»Ra#·~„éžø8ZغC^vÐs“D6^y—¦{¸™]b‰L"‰ØèwÃÖ¿¤¾®cE®’ƒt¹/úáeÕ·ËÞøHĹO˜q²ºÉ>3ÉɃ2›ýØŽõk ß›C¹aýöÀ‰Ìäj®¤ç_ ê5ÜéåŠSy]+ëŒäðÊÛx¦#¨“Ô]÷Æ.½$½CþQ¸?6ñï’ÚÖáxì˜ÍüäüÎO°{ö7{lØÓ9ØÛŒ¬ÿáäÝE G{B¬ÿ¸¡×â7›bîqïçÂOV@õ‚ÕP£ö|s xÖp¼Ÿô¦{Ë?ÜA†vGË~v¬Ëîßžþ¼#þc·Q йÐXnsgXÉ»sA•ñ“Ø!8ÿOËEÿ«èäT§¹¢¾ ZtL½"ÊÞÆŸ¥äJcÉQ>Š7Z® ÇÜnZÙW=ò•3pÅWÈS²úfrEìXÆšærŽùƒ‰ÍäÏ‚ ÷Íøì¹ªŒ‘™èæ÷[ç ók2àQ+Òcö yÀT¸»·Ô}^ÙƤ øó#ùdzäàM’º=þá÷i ½ïo+:Er\»~° ¼ÈŠŸš/ã…þ* úÝ](P39GÒ¥, È]V)€ŸÙNŒ?+hÏÿöÛz1äbbŠ{œ™n|²—áEýÇPµãäó‰˜óÑ×ü>óÓÚ¯ÀÚx¡jã¯GƯIýy@þQÃÑü*,øs£ÙI?ÙÈÈÉ|“f–F½GUæögFðœr̯ÝjŽ¡›{PÀ¦äŸÈ’:{Ý 4¿öŒã‰~væ01Æ3Ø¥ÄFgj]Ú¢/kV·Þbìy7ª“/ÌC%þü Ǽ>¾8Ù³|äG×ñ¦Ñ“”&FköÐB.T©ø+KÏÄÑ0Üo©“ôæì5%ƒ[ >]o6êÙqÐ…àZ¬–ˤA¾_WØ]Ð Ùƒ(¯&ù.ùÍ|û¾’Iï—èùÕJÄ$ÎT„üä8Oªd!èÛÒÿá‹å1­H@î@gð×Êÿü×TÚ„@ü‡ƒî»–ë<…íÓMí0óÏêeD}ú‘Ú5dg™_ë£o"'Y­% cÿ’‡èaÉ—òüy$£!=ôÜèrL¬”É™ÿ‘…ùƒ!k‘ï’ž«|Aå*Õ£þ£¼Cÿö]ä‡ñRLô¦ÛÈŸì^àuŽâZ­XWqœ¥weN5 »ILĆ^ÃòGÇÆþs`Tfüþ«Á~§ÄNQÎ8>¶}ÙÂW°‘RXÓ^Dè¸ë™/Â]¥Á€4’iC¼6ßgè_Þ(ûž^í&J²ûκc»¶ '$Î/¢V¢æ²­~tc¹ž(„ïéMÁ¾’#¿&ƒI ~•‘ D ½ŠL¬»XÑMÆ2Ç6«’ù~èSö{¥AÀAGD•Ž §°ºñ…ɃڱÃuXÙKœ·±Ä¸ß9Ÿc8î(—§à]óœIq;`׫4Z¢¶ðDÚ^dDvO”<Åðö´§b±ðÅò·cŸ5¹âãÈQâSEãä‚›uÔ—žO@Æ‚¿¼çÓ{]Ž'²‡u}‹ú92±ÿ~þã.Ù–Þc>çp!á^q] šÇ âî- Q Ÿ³ Dì0>üùÇZæk$»n)=v99\²'öî‡QÏÐŽnO“Ue#¶\äºl×£/ö@i³^½dÅ)ðQKñDw`ŒgQi1ÖšÕî£ÙîŠòêÖ=«1H¼×Ç€1G•çè$DÒ#^/ìÚuhÖë©Ŷì kQá#zu{k%ôKäWè…Ùî·®hª+hÝ´"°…‰yÛ¢%J主b»ðFCtäé$S È1T$v ÅÖ‹ã¢ù@ d0ÑÕîˆ X¼ 0ÉŸÈhJ£Œý"cuäÏ×{àx#×2u«$Ûìt•jŒíˆ•·í|Clí5#“ZKýà|c+õ=Bįné­ˆ*›c%ÃdÄÊ'Ãî?3«xpv÷XÅž µUÕbp»ór¯(Ä|ßà·©4?­Ùš­ƒ™›’ ¿¹Úz°ŠØ×yT.kœËÕ X;à1¶ò„¦5žR;›¬M+(¢°\à3µ°÷cñô»“‰Mþá`É;lñLb¾.d%6C•œýEáú &ÿ8èˆ-êÉw°#`l#¢·rC 3˜ŒahºÍ—+ò«¨qoóÝ{ü½‡a#˜S‰B7Qᅳ¨7!j.ÿñÅê–Uí íôV5ýAŽÚ•3ð)åÕ2êÏëÉý®óQ›! ¢ºZÜų”©•aÕrFBU‡Ü ývß0 Äî!vÛ<Ï•öcj‡f½'ÞúÌÝÙÓF6ËxãòÇè k÷o·ýG&]bþÇdk*g~U.³¨‰ÏüÁ‹tÁªfS~ärµÐ_­0¥ÚOVü“,h,_Q¹ÜuÄÿ»±µeš›ëÌ„£ûÕßů"j»é_²Y/(ÒŠþú«ËŽŽøÝÌ$\DUbØØô“ø‹üã%ìÄ™_¼k¬ é-ãÉÏ¢ŒhÆüc¶ž ”ê¬ÆX™›¢¬ÜªµÕÈ!Ô¤„9'Óˆ =(‚¿ é´vZ'± DÝ쥉qÛ¹?rAx‚äÛqô ”ÿ÷eo] ~‰ßÞ /¶‹ü¦­ _…Lj«ÎO÷" ?O®ôš,¤(±¯gË-c¸®ÔoKúæ‡ã(õ–qùoF*µ”R3V¿“x¿š²;CåU³Œrš1>]Sô,!¬øFdœã([À ån êT œ[À+~a‡kY{%þ#Š ôÄiDÕ?òç´ðd)Ôq޲?¸_ü‡Ï“ǼŸNÄ| ¯[>â ÛâŽr@ÑgÎÁñç´²"²aòälÄ{‚Q©ÞU×TÞt¸.˜è 6’PýÅs9Œ,?&±‚“ëÓ=ÿáFÞ^¾4r£ jˆþê"þ¦5ûÈL-sõ‚Ý–õð¥âaõ.h%qˆèÝ, Ô;er;ë­Éjë Èì)€'PÉì¦Ê~už%Ûé¿;Eçc椿Ê&”ë×7]Õ£úÑ;ÈzOu“\lˆQF÷1YÌd|÷Rê?ž=ŒÅ&ÿ(kEûÈJGÆÑ\ªä;‰îóa79ôß¹³ØÂwO‚BÖ#£©¨žï©#Ylî¤ÿ{~ûã°É‰œCX¯‰Ù…ùé}³k_Y åM0Ò‹Þ¿íÐÄU\nsÝÅ£3µéĽÈ?lmï$9Ó(l>¡ÏH8ú··‚?‚ÿ(†*©üùV&vD¤sýسÝÌì]ÀŠeÔ9Õµ^T-¶øÆ]±‚»7è¸n7cX}È?J]^]¾solmµˆÓÖ‚¸s*,Gâ?Ò;ãZ3ahâÐçk.¾h3üÇ9*—Ã,‡?d}%û°xþº“™í€¿6xCû >‘l·)±â9ùÔ¼g³¦0ÿã.YÖR+•U×yÉù•þíá­j=¶ [Õ©»Dä”Ö©9ç<>`hª•}æÿ__R=8Õufœä ¿Úƒÿða~mIæŸÛ• çuõí0 «É?âha«®¿KÌP›,ï#};¾Êžâ›>U+¬½FUÿQ ÿñû<ƒÎGKòÿltþOÅ3]Ü/[Ó9§~^öCm{_Ö¥þ£N(ùôØÇ¢;X“7k2z䑉ø‰©°Ò×°ŠýœB—ùE!m‹Ÿkb­¨„·ˆ vËã>߇Mls„Äfj À"¿"r® üê®ã0øU[¹DF³ o9ÿ1œ,æ XJ&ìbVµŽcîoìÀz¯Õº®}ð[½ª×&ÏêÊ:Wˆ-sa÷KyE‚ïM3ýŒs°Kº8–:|”-;8‹Ò!$ÐÞh‰ÉŽb—ûañó iGf°Í¨¤î`¯—©~áý¹ +žXÛÞx§QjÁâW)¨?/ßÁmŸò⌂çÈGž”¸5&“د`ía÷Z¢@èÿ¯þ“#nþÇV‡Sü%S8œˆX©[ WÙG&ôP]8Z[ÓPм}Øÿ7 ü+À¯ÜÉé¦`¶00hÿ’:zKi÷O̯ÁhÔÆnôdE°öOTb0“¶Äâ P7å¥~p.±qtò(O<×0¼H9#»\亜×#à?Æþí¢ƒÊrüÇ]òµ8ð[¨?÷¤sÕq¸ÖØä±ùƒá?êªg|Z}üÈbBAê5Þë¸'ÈÕÊò7TOŒÏ0Û[Ì-x·rè›nc]ã8G€7uaRª”ݹq1hÒ(®ú#¥úÛ?ƒèÞ&¿ƒÅ÷1P±‘Þ†>*#ýmÿq ¤>sJÜÔÄ´àÏe޹)+V z! ¿ê@ú'Næ*Æô„Íè-ë3·ãŠ)Á$ñnØçÞðçeÐOU€ho.öŸ_;—U6¨‡œíªx»7r±ë†þìø¨ûò$mÅÛG6ËÀ‚–QuñàÏÀš<Ð>צãa{Ô·w˜{4Ìàsš˜·™<莯. ÿá!+Iéª?OþJ'BkÀS1Fu’éÕQ³³:,JEð«ÖN˜­p+~øíænp²Ô¦@[m×Ü„£›#W£ŒèŠbN¡+}I$;œ{¤èêAó-;šhÖ¡6>S­ŠX…èß¾y"Y­GêÙV\«CB‹¼ †uá?ÞE¤—ëˆÿw/3?jŠëNÏô¨¸®ï¶‹hÚ1-£~Jo*Ú K¯É*§Á®êûô-äû´œøUkžö¯Ò†1—2æþE‘7É$¿Sá^3Œþ£³^«¾ýÕ,IÙ…'´´þXNÇÚ”Á›jŠÐU$æ#ÿ()èðC„Üœ(ä šÊ9Äчx‚V¡–šG®P¤ÝSæCCqÌ?õ½¢&Þ(œ:ÂïO&‚;O2uî¢ÆzΊùa?^ËF}™4ÄkóÞqýU°:÷ÿZrÛ¶Ä(vý‡/Zú ê<5“ª%39A¢Vè!©µßé±–ÍyR^°¯¬X°ä¬¼% 5Î7±ýk‰Å—b‡6r/¿’E½?âW1µ§Z1pþódê#àuRÀÀ "Š;`ÔWïð^h: =S8úMd=sxBSùóç½YNhx-Ÿ¸/¡+õE±‡§¯"W£OhzõÊ('s`™ÇÁŸ×%;G´€®2Q‰áƒãÏ8"À‰=0 ‚Ï´ÂøÁsvàªæs#yÃqÛó*6¢Áz…²aƒ?ÊfÏjhø¢7,äÊôÑËJ°P%ˆÚW`£‚Lì»;Š)“•úPù,èv˜ßLJ-vr%‰v7â?§âªYèîp¤ö«Gz\vÐ¥ÚV¢ì­(6.‚½G¯:ÍÜrwT¨>è¦PӞμ‹åƒÿøÎ§õ$ßÇ.³é÷Kt'Ò9J½dð£®êžñ‘޹ËMæµRÝ™î»7­OÖr3 TjéÊpž÷`Ÿ›¢{BDà:åjrå{x±(ÉھꞢ›y^Ub_'«4õç‡ÀìLs!ù‡ÃœÄµ‚/^Avg×Oû\Ëõ£û# gþlÊ™2›ù†¾„_èéÑ Eì0ÿù–³6¨:â?ª0r“ùlwWÖ¼DýùQó€ÅàåÀÆÍ¡Ïb~ò–µ²Œüä:Þ¤Ú@ú­×æîìk\Ríå^ã©™ÝiXÑ™Eæ8ûaów‘Û\¡ÊnŽþ¸•?`švr•û}5³­?ÒGã×/2?ÊžîIþ1Ù#mot˜ÉVvm}|R&«¤s½ó!þ¨0ý¯X&:¬®äIÉ?2’õµ…ÿÔŸ¯ûµàÿðk ð«…®3£SýÁõ]ض¡´k̺¢7ÅÍóç-t?ý†¾‹ú¸aœõ”™a}Á®¾ãA²ÓDj±Vk«%•wÑNÇ“Ek½t˜ö9M¯@伃µl[+¸R«®ûÉ© 8áyÇ4‰ÐuDɦuÖª‹m g@8jóÿüêöé¾X€%½¼Ç@åG¸‡âF¥ŸW}bø(°Ñëð¦:ŒXd,æit'ºƒß‹È.%üGȳY^9ŽËƒ2±¸ä‰ß‚ÿ† ÞN•êa´,©à®søóžì5¡1]OÂYüHþqö£%^ä:x"^§$¯£DWWÈnÖ7í`ÕÅä97°ÚÿÈŸGÓÞjeÈ.ÂoŒ`?Yè˜ÕŸœaøÕYÞ™ÏkÏ;æ¶ìk|xF[§"ŽsÃk…Å»»Ýíá8ós5òa¥“ƒø'–»„ªþ£,õ8nü‰Ê”—8\©#®'7`ÙŽ8¢1“Š`¯:á/Îòïãkr²F+õ”§4‘Ñ.|1úîc%ù{Í\¥žÔøiÙƒœÇáL?«AdX ªm‰ŽÍ¬fg»à,â™c~T8ºÑ¦¡~p!œÄBï±™FTÛH/Yï’‹ ƒôE´W {ZD¯‘÷ìi•zý`j«YßéÈÕ•üy¼ËA<ÕÑÜ“EƒðçñDKÎòI¢ü àW­É^ÂÃ/2Wâß*Ùóaù‹ùƒ¯Ð_Ù^ 2ÑÈþesôÌï¹B‘‚dëi%Se¸¾0±£<Œýu„¾¨RU"pwfè=4obõ|Ô<óUžø¾ÔR®äl{€_ =ptÓ’“N)ì Vš.I¨àî _›yå“Ñ9=¦þ<µ³>“ýÖS?˜é+Q@Q0B;•Ș㺸·Á2tÎð^â±dæk9^>àߵÔ¿šnÖDm;NÍ«±|ÍØè¼£*žƒ‡Ë­[0 ÕuE²‚_‡#Æ«Êó¿IÝWÌÒMÌü¨>x2_ú—Ü¥±&:Õ$x»y–f&´tð¦wD7­È?jHAϯ ^¦þã–´;ÞÕÄ$5Ž™Yœ¬I̺&Ùl#¿s‡ó#>)œµNÝÁ¿•_óFÏuLåÖ¢‹}ÿÈ¿ü~Íú[ÿöðZV¬¿÷ñQgæÔï3ÿ£®Øï_sÔàûåú\}ž/Œþã­ã°íîWðÕ9DLêšÿÒ~ˆÝ2‚|!ò‰Aa¬ÜŠ~Þî\œ¤ÜÕ8æÏÓoË>ÌD§'“ SˆÐ!b©µ!(Ga‡Öa·Ðoïnåën1'ò6'<‘økÙNÆ •þꃾL4ÃVJuç|ùè.þÉXj›¥}ÀŠÅa ¾±Ë†¡À¯’kóå^™’{û«È©v53Lï¼Q}êN:lMd"È1Æ9RÏÂÕN*šÚÌ ‘Öu2­„x´ì J¾¬þ•®bçówßuÁË-’3¨¬ý‡5óiÉÈãòd5øÅØp¸Ý°ý)yF»ž<«y<ÈÊ¢±x¾çr'ÜWpúÝRZ qMF„)¶ýÇQlkQ2–ì-žZo¤‘w…6ª)œ¥=О šý]t¾«ëzrîô;àWä øü– ÞŒhp:¬ÄH00?éb¡¾]MTü‰(rû´yþ)`׉m‚Nfé¯W–ùÜ M^ ?¾0Z‡ˆ©7 æ O¶…hêº#ƒåL?wÐq݃8|^Ÿn™bYsøBOŠoÄ É0æóÕt®Çð´“äãQ:Í‚“oeýD›å ÿèj——ùƒ‹A¦Js¾ëYôßc4b »?fDÿ_ûdܥޤ›9Mpi?±Ñ¦3?zà| X{üñ«Í|neø¡§œ›—Aú¡ä"{zõ,> ÷Ý6ú_ù ÝòRYÀ¯ƒÁ|Á_kÒvUÂ_œ×ƒøˆøç÷Ìk è¾ÑݱP[ *ÜÿÑ—\¢·ìÆü+ÌL¹Ž–¸.{1´tgDú˜O1GS§—–Œ¦2u•~d\-`‘îË€Ù —iÅ"» äÉÏUIîþ.°û}Ñ[Å¥~°)ù‡=aw(×[s›9Šê¼ghÎ|P6{’=¾åI)a4 Ôÿ*Ÿ¶P„ç9ï…f£–ê/{Q+™ÙÙV&•ž5¡¾€Æö9æZŽþ¼ÕüŒ'Žî_ͦÃÕ{3Pÿ+/p?” £@sË€|aâVrµrÌÚ* ZU }‘s9ò­Ø–ÅË;‡š«É?N_­†+Ä5N%çÜÎÿ³WñµÕÚD×½GKŽ‚÷ï}x m§V‘yç¨?¿G„ÃqÛÑW¿L“ÉúBð«3aZö ùG3rW°ç7˜ÄôP¯ .’L.™à?Š–AøÀÃóWÆ8M¥yP˜h²–<® ×< ›Ñc7É""t}Óh=´¦¢?OßJ,\WâåœÊË,l#\p]ªèr‰÷–፶ÅÏ51[üÅj‘‰&fƒì|F+Úœ•‡bñ÷ûoBמZ’ª€ Qî.ïÔ6¢1ˆO$ó´ûÖÖb™ýGu¬Êy,Æbt³¶õ¸/—éª÷Ÿëùê-A–j¾Ø»IÈ北}M¥¡lzMü½™œi+¾nžá@ =^µùî 8ÚMŸŸ†‡Hÿ1”ˆk/Qði›ãF¹sO0‘Ÿ.3¼ýÙŒ‡òú«€ÞH;̯ét»DµÇ2"‚øó|¬Q ¤Nÿ†—gÅPö¶DâÙÿtØ”œE“Ï+ŒÿØã¿=Ä“uÁ‚Û× 7>sŠ‘†·½úJ>Ô íìUlüi¼‰Ýów5hú4²Š Æ òí üG>æGÅÅåƒ1±û²ŸÇö¯ »ñ¢{{t¬JIøÑ(æ ÖŸŸF,s)¬y ËH ×9‡ ‰x‹Àñä 6pYʺ̦ûvz€ôçèËT¿šV\ôX¨|â?ÿÃö3•È6â33É?¢ˆaœµ“àŽeð‰ Èž¨Æ0ž(“²7­ƒS~‚Jô•ÚÀr “çÍåèËÃGÜæª}Ð[ý¶Ã‹Â ïáÇ]ÑŒf.³I¼˜°ZÙì¡*Òß°;võ.y‚ý¹<ˆªà;š«þœË±ø¹~Ô%e ä?f8<5î“ê¹1„·¬(-ùU»êo6Ûü’úóW°Ìm™ëNmbxT-¨À¼¿ßåáiéíºUÞÓ?ñ ¤7QÚW•™¾ ½Tv期´2²£Áfeê³ÁrûÂÊŸ É¸–ÔÜA‹·á$&–‘Q\üÇ{Çl‘‰;m4Hø<5@VVg̸pù=ØAo‘uÖD&ö·ŽXÞÔLàûtðçQLçå>ñÒ1º}Ç—ýµÁ“ÚñMæz4&º½ wš‘èŸ5ú d]k˜ÿÎÙ×¹Ñ_,è§•–¾7Ù]R˜­ì Ü]Œ†êók·ÿZðø5Óç¸î„XôHÿ»þCh'™{I/‹uáßÃû¸£6ìù.ÝC÷Ò¢jûÃtT~Žs<Ÿà¶_ɈF[jFi%´·b§Ìÿ¨*f‡±ÿÕPú—æÊeÁ6·‚]í /jUt_ÙLã?y.+‰ž®óðß¶š’þ€IDkr…Ä´u³( §c•ŽQÿá퟼E.èv˜S„FQ÷‚ùçE°E1Ô~¬ñ,0ŽhZÇÛ<†¹OÔŸ{V¥•ü3°ßÔúeWÃÆ…S PýLËš‰—;³™TÙçRŸÙØû(ô¿JÂ1ß¿ºלøížhèUY"͈ ®±Èf¡¾]ˆ'ýBFÿ19ÃÊ?âk´¨ÂNâ?슔Œ(Rm•Ó>8‘3dJ+ˆ–m¥ìLlílìs/:–¿‘7ÄýQÀº^%Õò‹›ò.;YKœþ£^³,¼@"ŠzÔ÷Þ¦² ;–´-Úxÿüè*¼eÇ`û—œu|&ß=ËÙïD4îcëÉ¿œ@>2‹™’ÉñyÆT#¯‚øŽ-²õЃðsQ*,'µ‚AÎã òü\8(Ð$»gK¼,sz±™±á+Z‚_%'ºO c1›þ»ïйaKkà Ä0,¹'Èz~züß\«±j“”=?ʃj‡ÇT4N¥Ê`”¢¨s6ñGÉ™à‹nÀ¥äÃ6ïÀ bïc‹Fœ“ÓàyX¯¦zdÑeå#Uv=8öYXؤp] È·ŽrÅ«ó;OÕ¾¦7Í}4ç>D&öüóa² g®‹%œáÏS£·7 ½Ôsò](¨^1%÷™›]žŒ^•Ǩøàº"ÙµžB•6'zœDÿ«ËÆf3™³4U$ùÑJ}7YðMMéwx‹’K™.b˜÷à|£¸J\²E6%ßèŸxN“M¸›±ÃÍòžù ÿ³È,Kþ‘­rj2OçúW³N+OTƵÐ/7“uäÂâ´0jÀDø?é¿›–êÁÀýwsýíùQµZjúµ—Uè'gG'§­˜‡¾Rß@þ?Œó9îÐOâ ½oãE2 Au_Ií›ð’Jj²¨è¡‡®Ûú¯›²¯;|ÿQs~Ct–§µúUÙÉX'O3oéý¯BǤGK)z}Ø1irŽRªWÞKL‘܇¾ëõß—åX™] þõñÿåë#}¢(ÁoF!F…]M¨ža m5Æc<Ôq¢ÿ¬pü@ñšÉ4®{øO ÞrÌ¡bR¸ž¬¸†<Æ4m(ñ¹Sfb«CF°¢¯r”1 7ROŠÇôJüfU"­ Ær¸ྥPÚHõ˜¿wxϯ·µð(Öó’ã@;üaM' ‹ØFRu϶»^eÁôæîŸD”¾–¬fùÇ+>mVƒ54‚oyDÁôŸ`7ƒVŒþ%¾äkȱaëKãçÊ£j¯Ž`÷гX &¨&²ö0â¾xèÃL,~“`òðçMåM#*Іêʤ~þøDV¢ã6ŠîPä]¶×›ü‚i‹Ëñ™£¸ZóþhôW…‚sG½"Xi-rS{þG^r®è¯rîxÓ¿dªYÃêK§Ããð½ßÐ5%Sïñ«=±Òõøü†.WYï6õç9àdò`ÅGâ?&Y¬W¯Á²_-‚ãÞÄ|ðŸt÷uš7Ùs\<ÇmôC¹Tjµ™ëŸÏ_Ñp¿ënìþl[)PŸ¦ EèIÛÃÊoo:€†(¼³±ùPå øàr`MíLª#ñÍ4#"}úV³çz`¡ƒkv!£ñ4¶¨5 KµY/}¹<6ÏZÉdÆ£4¾/Õ’O=NΔã.¦²RŸw´A•ÿò4¬“H=U:r¬"ä09è4܇Ù~¯Q hÎâLä b4.¸yFüG £,([î@¿\‡þ¿H„ú*@ë!™?ÎužÂöáþ#/Z«ÒTg\ó÷»Ñïî¥ûî4òØÚù0-wÊqH/ ïP=ø€$FM­¸¶O ϸ BÖ/H<Òâô‡2•}‰‰ââ3k¶ž¼ªÕ×WË"¨±7Ð%å²ÌÊþ‰yµFZ Q•k=†¬£"5¼j†…:Kþ1o’+|¦¯L*f‡´-~þLŸF6ÜŸº…õDÞ°ÍÞXèXìø[…”æ×ÁŠuCÑ¿ä‰c0êÀXx [tüñÄZçßbäEWt‹áþªU«Bì_²F/ˆ%¯Nú!üefðµüpvwÙåkžÈ¨¯Öà=ÖpÜÃÐÚ®£è"ÖôwPíŒv]*âá‘üë#øóXXþ.ünzÐéý-ÏSÖ‰åNR¼ì¡ÿñŒŸuäkI¬øÆ{ðLþk§éߌ'ŒAW˜gw|Øxu ûæ©F1ÿ£7Ñ~+-U QàÏÇPuo+‡gªâd‰KÈí2‰·LÑî‹; þ­!>ñ²ê Ö]½ÅÆ{쿚O¥FrjöŽá…r¢eE6Ó’\j¢‘P´ýí*G• ñhOQýuÆs¡Âb u‡uÍ&àuóé.•…þ%‹Q;½F-¶‹Î_Íà?š“Ëu@{V…ì.U üª$ók‡á‰êU÷&Ÿhϓԫ >(ó£Q[qnõo¨oa£–ßiE Ó©Œwß@Çl¬xV.q]Ü=Žçú1rF»ŽRšUèQU¦ƒå.òwvÙˆÙçµÑŸ¶®2/pï xù;àW¨ôOªÆ‚Q Tž”ùµ/@Âëq}GÑ81•—Ñœ9©š)ÄN4ÔOÁÂj39p7Wf UÒJEwd§ô9Ë*ù—Ë»ð+wí ‘PSî¶øÃòùÇpz¿'¥O“\«ˆUÐéî<ÆüÁäÖFµÊÊÉ<®&èÒª£hºwÔ"SË(ãrú?þ"¶¶ë×ÇD¡ÇÔßů”¶U+®ïÔë“œÅÆ:«=ø~µ>ŽÚ¿¸aìßþÐqØð/˜ù‘N<Ñ£j·WÄ@‡ÎÇåDÇ0âWíõ¨Øá2ygdã¨N?´"úÙ~ûÛÁ¯¶Éò¡¬L€Ž8¥hèoáèG¤l©ŽpÜ äHr…X”£²]4‡Ë”bÔ¯û_¾úé+Ev|‘Õ[€ERàÕ•°û£á¼çõ{aÿã0ÁFÐ÷­´ëJýiÁ äë¹·Ë‚$DÇSt%JN vOT˜Xꈷ» û= N~¥ž*„çà?‚ËvÁ›¡~ÙL1ЪxÍ7àçØßRþþ!"G>]tùcþ¡k§´#2¶:`ØÝ €«Åä ì ^C­#“ëLÛê>Æò$yÂɷ䊽”o„¬þ*™þ»{ðbv\¿*nT1ºfÄW»á þc0ñ­©Ê€kÙ>)ÌÔÙ<ØúÁÍŽz)ˆ¤ ç•®Îqγ9ÙlÊŽÊãϧŸGJggòœ`9¾ pùà*ܨ¬°»³Ï„?·;Üü÷Z¬ÂsŸÂƒ ¡æd1³IÖRYÑÊl‰?›G/üôP(œÀrà=š(üG*þ¦WÉåe½µÁܽõÈŠ†Á¸L–âÔ§ê#-VGú;ç;ÍYç2J*iYæ<²˜Y¬8”£ §.b“wпä>wÕ-uNŽ6Š˜¹PHíA;€L£ Z²øë¬º€ºôAàWÕÐ,çáLoã™ âY_~s¯ÔÜÅw®FK*ºÌŒ²ø† ¯–&&8–'Šà¢èm§Ã(UƒI70»â'îÓ~†S)²o]þcšvY<–ˆDë hkda²Éøñä\ÕÀÖ [ «[é_ÙrWº³9Nr»TðéX±%*ñÔ†­ÃGÀµûy•ý•]ë÷¯ÿ"¢CLâúî×»¡ûZufb}–U俲k¹_;ÊQ?¸F¿¨Ÿbª^þ‹ªµãQïjTR$3‹Oúò$M^’Ñ_+†X9ýû‡Ö{“,G¿; ËRŽ–´AúÙVa¨VL£ Ê¡ß'øïšqƆˆ#øýþ¼ÀM£ˆP/T8[¸ΠÕx þµT11:ø%~{7­.’ ë .˱ÕɈ§Óðu¼Ó­°§y‰}Ÿ£"h.Cªw8ö9îr<>ØÉ»ØÑyØÓñäA‹–ÏýÀj§Rv‡ù f‘Œ#!âWmô6ÄÍŹ³ïÀÆXûTèœ ,]ªiÏq6òóhžæáõöÑm=íh‘~î3ÇíLªfÂW”ã¸,êZçÏ…ÿXÆ1Fåóo2†?ñwÓ8«]Œ¨2œ8õk‰@_ëhUDjþõ+|QTp+ñG™ð•·ˆ\÷àÍç‹ðͱÍ]`©:r×à´=© ´Ì¿_Îp4¦§æføŠAYT2ŽÑì²;>w4ÌäoE£õnsAØ5ú»ÛݯÜÙ]P¸Q"‚+Ƚ“Go'Ëãù“Áö' ¸N¦å¦õmvzÉ.ÇTB#š”ÂTè‹ÁœT,Ö$ð©d lAëËë©†Š†?sEZDÿ’÷ôÎxG5âJ”N™\‘ ~õþ¤´ù »޼â)þ®WÊŽEi£~Ûáe½,;òd•rø4wü‡ƒØ{‡ÉŒUsõ %0ÂÎvT—#ÒÝDåP$üÌò§•äR>þ·õ*Éð0M·¸ÿ‡áæ;Alæƒ5Âÿ$¢wS 2†‰ôƒ²°‹wášàe:«;°Cmà¨+«jò–ë¢t4Ó|‚ Qx¶:Q›^ÏpÒï©+®<ðå‡èREðO8‹ú0Ûè›[Þ\Í5Z ¢w”³ØZ6zÏ­p\Ñ_QO{Žã±Ë1èzX·¨õëÿÙŒ':NÖpk²ÕL—à˜¼Uõp8$:¢iå–vEÛ¿þë®U~(CKqWy«Ø2‘ºcÆtV£gI*ËÁ›dm7擼A·Î'š™ãÙKÄ´Øò²êòWµµâœ“_ÒMÏXe棳ðæ¯QÜ Ë“Â¹Õ¹×JÇrFí¤3JæîÎ3ß“?–ˈÚ«oÌ ¨àÿµÓþ«©-ÑÚ»ÎL -Ëßî_RA{Ný`æd˜‘ápÜtt×WÁ~\ÑÁª ÓÁ|åy!LÊÓðÉKÄM}”Vÿqýî-:¤äÓ ¸vš…÷飰Y«d!xï¶Fr9Q.c~Ôm¼~Ô9±ùUBÙ?±zµ¡âº£­X˜D]Å”mé>‰ùø à;od&ô»ýdA12[‹!Fˆhk>£¦œ‡UºúÿwÐUdY.¹u«ÜÝÝwwwwhÜiÜ]ww $XpÁ‚î.A‚ó•^„d’Ì¿f¦Y3„@î»u«êÈÞûœÃÊ`½W’3 S>ÎóŽLìµh)ÂÇ]•Ëø«TîûK/$Ûª†Õï‹Eµg5Ç‘WŒ4x»Çb(ŸÙØ¢…W‘ØI«®ÖŒ_¾ØtV"Óÿ*{wÆOÙª>‰Q´…«ØÏ}ý²]+V†œ¤µ¼õÁq¼ÉqFsõ°RÍñÐI…¢j;´¢ZROÁû]öµòç+îWLÆŸM(ÖпdØS69’S膗‰ÿõ“èó@(þc±Ò^Ÿ/ŽiQý$Àh(œªqF¶þÊæ²Ë–d—©?I5úWr®Åð6öôÚªÆ<=áoçXDëET’á êSLÞÂy¢žò‚O(d¾Æ–êV1ó8ÕzvçØBØû¨ÅÊAo”–ñçoý¯ê¢ÿppj Àø§¡#^„=·ð”š9wð–s b3­+Äßmèv8ü*ÙÉrŸð?Œ—Aª¼ì3|¦æ^zÂaÕ `ä_&ùÂ5bÚ4t¼l•Ásô6×HúMÁ¤Ã«®…ûŸµßÅioÓÆ»ËõE4¢ë»<¯ƒAÏ–S ºfº›™EÖgšÅbúB]@…ÊXÞ6ß™voÛfT»3&¼È <ð êÙËÉéäÕyD Êè/µ1xS "ÅþÔ,¥U¥ŸùZö«d1îæ:–ÜÿëLÿÉ×ôpÃ,® ÌÅ-l¦D_pƒx‰,:èNÿq^Ý®ßYma"ã&Õˆ½ðµac:’m5²ª8F9n‘•”³öIÅÑvd"§û™¸í«ðäÉî@ýG.¹Ýy<ÿ¯/RP?¨[µÈÃÃcTÃú¸LêøóZN=3ýÛ+ñt=„??Iÿ«#Ú9¦â ëCý¾Šu{®‚f_ú'ö ÿÕ!‘^<Ò3â?ª{~C]$È7j݉÷ˆx†ÌZN‡ÓZÚKüÇ8ð«ÜhYKFÿh¨ŽT›é»ñC6Ã[“ˆ¡¨œ CùR_ELæ&üùÑUÄÐûÙAX_fÓ]õD`%š<0ÃH*mÄj¼÷YêØÂâ a·ð ÅÅû°q~¿ršþW/E:t}i°é•‰jb`çñdÖ"Bô„]n¼#Ù¿‹±2ÜùQÓµæÄ”-±øwxZ]°Ã™ÉF¢ jL„}…ßI^âzÌ$ç,S7ʆé?ž’Pk>7”o/ö\CnE¦U\­Š1“ÈõXØH~meÇ üGañQ;â¼¾À/JÑ?Q!ŸúA.U¬Á•%¹‹¥ð12áÉ>`‹÷ `“†Àþ_ÉñLkBñnJ½·¸Œ…oL&Ÿâš%d'ÖoÏÉ$óJ‰—wó¿ÏÜ£ÜýÙd_9‘eº‹–"ÄÓØXk#jp"Ù`tçãNwâ#é§ä'‹P;<¤#ƒyIf'rÞ ¾¥Á0¬€ž‰5Ïl43C¬×_sGVÀ¿mÃÇl%‡ô7–ËÄô/Ù+W2]b­™ üý>ÙMSªÚ¡¿Ê$Mº¥O”iåxžª÷AT2ö>ÑZ²£Øýl¨šè++ö>…¹Þ„òßWÔÏ´AX0¦~]ÏÌ.aÖð4äÁÛõè[áχ‚OŸ#y#Àü<ÒÃïß^Z½+®ã?ÒÀq§–K±›£Ñ­îç9EýBy;5Ï1OuJL —ÿx¬Ù*Nx²·`U ±ü©ˆö_Ò…$7Ê”+Øy7vêIàNätY¬Ó¨aqò~Êcµ6úáKØòFð&p¹¶Ø_w|€'þÌ:„GÔUÌÄlÍ[ÞÐ]ÉsmW(çX[íÍÔè·XÀ© “°iE<ø—dGŒ»zášÊ.ûð¼&ÿ˜ft Åx)åõEŸœ­3Ñ«Å>fò¦ÏAŸ9Š9%‘cGlÅ zŒ\oxð5ndpÓñ uŒz -fˆggú«VxÉ’Tˆ¯Ã#yãiÂó\ÀfÖs™fŸvº4õv€‘üÜf˜{Ô´™ô²#ÄzÓ´¨äkõYá {XŽ¦ê½±n:ÜöZÐõ5fJªê®ÀP4g"îü]yjÛáIJÂF´4ü™óôýµàWð¶MéK++SÒÉÖ‹úóÌDà­¬é޲xŽ¿¨ØØÂî’ƒ\]§"q¶üˆ‡Ÿ"ÿ¨)žÃD]5>cà5è—#ÂèæÚQ[·”üÃ×\Û½K^á¹I–÷'ùÅe®¥± Œ.ë‹Ë*ÓÕ ´2-OÓ.‘ZúßzðoABssSÈì¢)UÉ©™@V‡j¿tÍÅü­Û m Ùm3‰¥˜_Ñ7Ÿäô§¨Œ^ãôÏÕõúI1¤ )þM1ȪŽRw“¢n“¢:V;ΣßMOÿÄd!í­1Ô=Sø!ìîÓå‰äžê¡½%Aïùâël ùƒœO–Jì˜Ðù§È}^qõ© ÿ‘]¯£ è¡÷Xi‚ÿXG úQæ×®‹ÔrþJuøs ÓûP$30ƒn"}C,ô¼ ºÐG„« þqWµ>Ø–¥(£¦ñfbºÓaµ“vY 2Ú0/¼ ^¿xˆŽ¢Á>ðOµ˜—2ž7Gì¸éÐûEÄÊ×õsĶ×ÈIŸ_}DÙñ©uw=){Š-Ïã5ÜxmU…]Sq…7ü‘unØøóJ"z¸÷æ¢òIÄDÇ¢gDySKmg7;ȚɟD÷¹ñ*þb¨S c“^F³R«.³:.[ÿÊ ¯©‚èdc?É*®ðßÛÁÙ<àꯉzæßj!~ÝGe—Zo{¯Ý •ëjŠ¿Ý@¬y\x¬Šmòb·ó±Ì'X{6<šH¤ŸþµDßsÑ…ì«x—?Fæ ž,7¸_zt 1ðç_˜Ê•˜èw8ïÿ`ÞÙ±¼ei‰¢²ßÕ¡øÙÈœ@w:~yÀ.<%²o„Òö5 ÿ8Vl,;?çr5”Îêz½tæ. å_ÖÁ¤[JŸÝ At§-ÆŒ;ôy,»ïG7Å¢ävoIþÆG¢ªv®ç¡œÕž¡Ì>A”ÀÌ Q̯“õ9°óÀ¯öZ±;é€u}ðsÿߺö+`€ÓQH—•3°øÙD *½Ú\H_× Ü_n¢¦ô4S8Z¡ºªF•d]êUǪ>>1åÊïäKs—ºÎ(àqGP-,¤6ì~mð¢ºG¿ zðÌ⽿&.š)Q»Ñ+r}ÍöÑ à#ýKÖ1E*§õY^²ÚQ¥ø—9×|ò\¬èÁýÖ‚tûµòþ÷ ê|úþúœhj®;ÿˆ­>R]4w­óÏ/©ötÀÇJæÖîi>ªT#§°èŽ7ÿ¾6ž1CȼåþjRâðä" XÓT-ü^¿®Êþý¦Öë² O1«Ÿ ž£è¯^p×&/QލºXçGÕ¦ßýdý"<¯ÏOM¢ó¢ Ñ ±X^ØoÞÊW°ôï©pÏ¢ º…0¾N®oÔcÇÄ”g‰ðí "î¶&}í~µo†%‹ÁÈÿ€ Ê$â9ïT‹)Ï™uuy,ì}*¹•L¦*>x –bJƒw?5ùŸ8ƒ?Ñé¿›,œ·jÍ`xaÁ£'À(Øéè0)Yá.ͯÃÃí? |™ùƒ…ÃÔ_=U¼Ô$ :® `°÷‚ì»ûÛ~»ƒ÷jäR[À&Oà12cï'c[ò¢n*~µŠZÄÛ{±õ;X¿ÓÛ]C¬7Ts¡Š´*ùÌð0O9ÝÆ(º ó“6ÞÒ'#­=•Ožƒo°½Fr§DðÔóñIcÁá,mv°5½>÷à]»DÔ¾R¾!Úˆ-Êüé¨Q‹9:² ß=‰ÿ˜C“Dì8ö~-;|Ž?bn q$÷9ÙŒ;ÙÙ=ôWÓéŸ8þD'Dz.€•>%Oâé.ãZƒ¼'§™Çuבeƒð”>ê1êhínþ]Èx ŠÊÔ¾5{у1ùìtFú ~²Zâ?†ÓW륙 f¾LŠw*Í9~½œ7dµrÿSA×ÝLE—¶3ÔíwÀ®—¶†’ .Ei;üÊÓRÀŸ6ZGÑP5@[Š“¹~5„ç&‡¬Wî¨Ò_ò$U ê[ï•ZöôŽì jõ-/ÓßÜMÿÄ]T´¿°,k;ýFV€_E·Òš?‰²NcíWˆ™â…XæôwÕÝúyñ9~âÇ{â¬9ß1À:ÃqVZV-âXéØ_ÆÚÿ(HßÇQ(ïi>[Èà;3K!ºØé¼âÿÞ9ÔÕðÒ¿>OÐÇ'³óO¿¾±ß˪Ô¤ÚV­²^J÷˜õŽùQ´;šJëø‘ôYÕ¿Àlr“þ‚¾+ÔT¢óqA½†V Rûü¨ _Ù"ja7«Rëß‚Ùs57k±8*jònÖÔuÌÿêŠëíÖ_á7ì9OM°ÓE±6íäâ&‘ø)8ßC¢,ººÞL¤šø¯úçß%Óèi‰¾°¥Øèû ;l+GL=üÊÐ'êÞÞˆ,"üÚœ÷ÊG®ç°p!Ì!×±Rsª×÷¸°*¾ØÛ©XÒåÄ.ÒØnþ±IkHÎÝôå-–=U‚ê_„ÝÌ‹¢óÔždx»ë‰ÿøˆÕn&ÿñR¹®`W»ñ¹V ]dSа(nOð½9`.·@Ãqõ^ø+s‘ôܸIwó<°ÓyÁjÉcð—A Ú¢ßÝb½Ú0òpX‡ù…ƒi˜ˆÖÖÚj³yUkqüÇEð–’tôR â>¶neŠõ÷jpE°ŸV…9@&U ûmÏŒÍÍø­à9UÀðÿp´ƒ®DÇ)¸Ô¨¯ü`gÖ‘,†9 ®ß­"híG}Ïp#£˜i‘ÇéÕÒü[Ž5ýé/•ˆ^ëQ;fVÆ;ó>,SCªTî ˆv'›*!‹é_RŽúã<§“ñªðç­A‹˜ß¨;NžqÓ܉ÿȃŠÕŽº,“ßW`§ à…ë“›%Dw[‚_š¨}œþÊ…ýÏXT³€1U0 ÇLc95à¡_2OÄ¿ÕY|*@¦2¿6ø—ÌNø™ˆù•¶š7Õß´wª¢îëCý¾®öÕW3ó"65Ê% /=¦¾[­&¤—IV* ê´°T¢¡.§“„ugÞ*GÔÌØÐ-œ[vƒëª‹í_K•…'Ùá ªÓnp³Éâ½°;y7f…¨ÿ8üü©¨ZZON~–þ(‡ù™üJâ‡m¿¦/Ñ_¡¿ìŠmëw;÷Ŧ·i<2±K¡ø¥äãÄ+2„d )åSüG)¼f𬰉e°£“pÈñ‰Éá‚>ÏÄkM1NèÚoþ£œ6…\7ŸQ†Ø“îrÅ;Œ”xŸfU0˜™Ô2TÂ:W#r^à?*€_uϹ'Q“’ÿhª%¿+Ò½‹Øù$1À=ôj~ò˜Òfó+5ÝàÜX#ŸyëV°ø.ø™°Ê“¹ÛŸÔ¹ÁžgZs²Ò[FBY¿0dåýÛ=Ì&t”_I%Dqä^u9±÷Ñ_m¡2':•,?¸þ]ò™}¾!ò™RBãyðåÉfHÿ1Õì`Ž“­ÍŸØûìÔbo°†“-­D1ûRN"[è.¿¹£ám%›‹Î{\Fé¤ÚsFË;àWÉf"‰QÝô¥ûGêún›W@ŠÊPkñŠúózô_'Þ§FÞÞ|#ùǼG+™Àå\orN{OÏf&~¨ÅÜÇðÙ˜hõšü#¥ã=nïZšµ½ÔE&Ž2OSÕ8— ím4Žü£µóüª¨íá?âùT¦Ïp‘DÞ¢b£*þþʚt¿ú‰ÿ¨bEw<‚?_mí·*0Ç<ºG~Ãj´Y >‹MNÿqZÝ6õÿpNÖGx³ÚHú_5Æ7®1£:úX9à?6 ñªd]b~m>+ú]WóïÐ#±Þ½ú«èÿ“úó$êzµŸód¢R?~Œë¼1Á¾(¦~gþù>òúúË€w•.Úi¬ÚCº¢„C[ Øb¨3ô5"5±stìçFzèíPG©ñìÊM‘–^¹u´LÎ]ûÁ0þp[[H¾éALè >RLüEþQ‹úÁæ ‘¾¢=oz«ö¿ê‡r¥þ„hÒ ›TÛY5LOô»{ñ&à*¿ åþNýŒJ» úíÜúÝû|ŸzÞí ñxâúÉpñíÐçÇÏx‰úꥨùç Û·ýÕKð+7òzøØèF5ð€K ;ëà&ãO¢áÎÿ«U ¿(‹ß8O´*±ü õð†éy»÷ã1W‚Ë\"ZÜMžôˆn‡9~«Åþuµ/•Cj|¼šìGmV5ÑCµ[ZA”~Ì®5±Þ-º¤Øê«m0IötñþFJ]ßøk‰ ¿§W+èéQd"¿Èm^ ÞT”*Äsà(˘é4V÷Å’µc–yK¼h[îM4ð5“û>ÿ1Oé ~u›X`ùFx˜ñðÌ4$š. ›®ÈâüÝ,ó^y•nîë8Ñuìt"+e^ZHüªž6DT3’ú`wKó3½É“à ‘qøåªTxÉ¢fXþ²L)©‰r¨«Ÿ–àÙbEˆ§»³öE¼#O.H´~Leþܶ¿OÁ³v™–µzìÍ–=YªÝÑgÐ9;uű Œï¨>‚ú«Ä,^œ_9üÇ“dz‘¹+ÿ*žuô0QS¸ž&ÃÞ§Bo>Z-7ã¼6:ØzÕÅ{ýs<ÿkÑ«7ÎS>ê…Ú²“©:æ3Ÿ!A=ÉY£ç(¤šÊ^h l…ØvîR#TPº«ÛQA —oŒŽd!ÍD4æ–ß§bã-zÝæAr…ÄTek޾t„N¾dÑj%ÜWÀëÈÄAüÇJåŠö†¬ô÷ ªYÆX$²qneé2RŽ:¼K(œ®Rå=Œ«ŽI?÷ÕDþÙ¬Nhã’ ß½™†ÅÏ¿úSíNçg£“qL6?ŒMð¥àà[¢P>lަ_Õ6ºa½¶žáݘËÿÃLaJP `­Û…7|æ§ÿ¸ŠçøÕhâ•mD7^f~Çz÷ö€ÍßDýGv«®c’ã z® Öz ¥p3úïÎ6Ú~\ì%:lÇ^bIÐü_ú:7ý¯u«ñÀþ]üª¼ú„ùQnZ1ú—ÜÐt]QR=xTó×>ªi#Y?˜J]¥/ñQüÄ$ºœ«{R¯TUý®éDt‘K¯nç¦àxO[‡rÃlÀ’d¥Åµ¨všt8õõÁÍ«G0ÿ¨I%Ö%øsO´ºMÈ`mÎu*xL\È^|·9Óa+ ˜ê&ŠD(ÿ( oÕ¿ §ýN5Þ¬ÒUþ—,t2èt'ô1‰á?|ñ›wDYQ(Ø;ü ÿñ§GŠFσ0G~ìk=9A t;vïŒ%Øp¢ÄÎLÍP±3ZÖpV®ÕægÊ€±>%ÆwÁ|ÙñA©yK_gˆÀ×ãIÏÁÕEí'®ëÕÕ°8y?嬚¯¶‰Ušòs‰ØA{v¸’ìåêßÊðÈWÉfã?ÀlعÍ(°FK?Ê¥–VËë97è—Ÿá¾–æWf7ð;â•ïbÛ`÷zÁ¢t#?˜MÕÁPüÇ"¥·>]ÜÂ.…?OHJâ fºc‹óc1ç³F!¬ÿd*¦_aÛ–ã;×ð9#YÙUOª% qŽuµð¥ñÙ—ìšpéV>ßH~UÜÌ~5 ¬=¿¹kÝÈœ ÆžÂÿqÐfHŒÞbYˆõ&hoбW5Ê’…qž ×0”ìãþd=ŠØ#ètX'°Å©?Ÿ…¶!“Ìý@ã*ã_ÇBÛlůZe¢“ýäo5©i\ƒn¯n&s¢è xíÐg«¾£ª¦fks3Þ(6Ÿô‹ê&à?>kc‚­—_ЦËxµÅ¨–fÑ÷ÝÇ»ã:ÑjõçGÈF›nôå}@f8ŠÝŸóÆò·çœ÷¸¦2@ÝÅÉ#ÓAþTUÔ0ãs»1?©¿{ÃUD È?º[M&cHÌ„¿mT²oGQðŠjÍbòkþ‰{•KÚ[8»c¼IÌ‹b°³ªáÌûhKF´…zI_k6ú«ËÖ7&Ào¢~07þÓi ®<Þp³((F9¯·œú'ü‡àùd¬–Oõ¸² LEú㎥kÕ¦—Ï¡f°(Ö9|¨•‰%ñð†ù݉7öá4ÙGJc›Óœ£~ð*oÂtž¹•`žGÍVäÓ馳—cÔ6r,£~0‡#š5U¾¢KJvºo.7ïƒõÞ[Á>:ÂGºéã<ÊÿøÉÕCAæ5ÄRóÓAñßûЂê59³¢ªëÍõØzE¹ ¾œêóÚSP±‘ZVªÃôU"+ ð‚~’úìjT´¼9ñ™Ñï†oKƒ~àm+wfþc–¹%Ž©EÈ?ú3@#SqÑC¡+ïF'ˆ©úkªû.c“:ƒ#Ô…?o‚þú:Øæb}=é71B´‹Ðü²ú<=%YK bÀíüÂJ¡Œš p“ »Æ"Š®—Tua!CWzF‘DKLn|³™{!8‘Ý;|ü¹*÷ ogšëÔ8n7H«;^}À3b'k™Š:Ìh`ÃÅÁìïðÌ»bë·‚@yaaŸÃ:äPÃòIþè¯b²«ä•ÉLò –d^k@e€Ùu’¥À¯v‚ÜM‚³¿‡Ï[Lä\U$Ó}/ÐùUòøôÅ-¿Yf%^¤»{Œ2é=Õçë÷©ukHåt_ÖîÆÄD%ñ[×Bñ«”Fúrq ?“X[àisÕCáuæ€ðصեÙå5ù«ò6>k.ç¹–«ŸÁpÿ%ijS‰ùµö<Ý"Xû]Øð3DTèãM>Àp¢§ ´ŠÀŸ—Ñ_‹ZCáä!Û’Y\ÕñbFˆõ:PþGi _VœŒÿIµœ_=`Ãê{ 7¦&}:Œ6²+dcÙþ€ºÞyt|ñžûÚL—ëÂ~‘§/t>l6¢bnʦ¼ðñ•°ôµ™Â}o¤S÷ÿ±oºß¸©ßamñ…¼ï,9È4 «ŒÃ䣨i'K˜:ú«T0 K©‰{Èä&ݺNÈÖ²«|€?]CÎÕÿáëÜ^Me¤zýUwò±¨¹Z‰òFZt¶í,´k'©?wy*~Õ fzƒyž®…åȔዢsÍyÈ#œëíQNjÐ<çž&7ÓQÑ‚ú-àßó‚SyÓŸË:´”þí¯Á×ÃÆ§À>³œŽÿ¨.§Ã›fÜçלú‡Ä¶µÉàöÉr"¹|hfq4 oIeø÷Rðèþü¯¡õözº’Ý‚é²,ÝÔòÿZô¿úûîêôwÑïúŠþÄJC¸#^bYÀñ7™L#ú'Ž2Oе=Ÿc‰cõç5a¸®Z•¬LGw3?Ù݇auÚ0Ù'Ž8é¼âÿÞÉÔ\Å?>Qcþà¿ë?j1(£¶L«ÂüÁïjNû*øÕ:º»è±4=’ü¹ =’w-b@A`.믴íhºž;³ˆ'òë5µ?œ÷3"§õA[Z Þ¾žè6Cÿ«‚ôOœ@7Voò…ÒF&WDd¥®(Ö&ê`.Às4»©‚ÿh@ÿ_"º`%?Ð_iFOÑJÄ`Ã^9§¾üªÉI¬à#HPz0MøÚDº·È¿.ÐEò‰!£ÜßWÝ¡¸Àß{ ÖúŒeÝF^4‘*‹Áp«Œò;èP}Ö7àö‘Û ¿¬ÙýJâßp½Ò¢˜w±$(s\¢êÑœ§gQ‚Šº2ô#y¢ Wÿïû²¿óDqWãiåv²™x4¿h×H¬‚%¸Îg´çyÂ4²<Ïß'µE|=´7£ˆZLO¾— ~#3{pGV˜,æ&šƒ Æ%øT¨µÿëÔÅhAåý ÿ±€þ%Ä*Ë—ÀÂDÃk ›@µÌxÐÇÔב÷B-t4+œ´=÷d,©êŽZœ×Ü\ë)ŠÃ锄í^ÍiÝf{ÑX=†‘­@7‹•Td¥T óØî?ø¼"dMá®Ë*øÕ!ÖëÂüL“ÎA•ÈI²”uù‡Õ~+È?S»Qúlý°“¹‚Üò§| _QƒóYhÜ á?ÞÂkõçxÇU"xd|Bi»¼é;þ㼕ӡ ßíi .¤5ú«h ÖaïWÃ)?Æ?¿ÖûyØ÷¶:•8_ÈÈÏýá-V‡äsŒÙ̬D¤ÿ‰Þ„ÉñS¬YæN¾mÓŸ² þá&¾k"'ÔMöwìeþ«§ SÏñœŒä3ûÒÛ¤™\ló}rÓ¹÷0ý¯¦ÁTA?5Úª‚uežRF0¶pûzæR )‚àW”3ÚbûiMgæ1æÃŸ'å¼ÞSÕ8Ï;–ë]EÏõ‹ÔŸï6Ýá0’ðýChî–âMë鴯 ¢›óŽ”SëéwÉ?ûœ”UÄ;c»™žúA{þ¹;ùQwêgS£ñ¾HåDü‡Jþ¡àWµèÐ~eP`þqÿq^ôdwý‰IN‰f,GofÏ7¤û ôĹ­šŽ9Ž'Ô»de~íyº®T±zÁŒ<íx-v 1i+3ËXâÐ?Ïï¿ù[ntáõ'£Ãü»øUjõšEÛ¦åÓ‹2-`MuŠvJ{«}¢þ<ºØŸ "×—Wmƒÿˆ{þ‰:åúUm·:\ÍFeCI‘HÒ»DÒ(zotC®pš}‰»rÀ¢ìWÛkvýZoªy*ƒ›×‹ þªŽº„|ó<1·7þ£wü¹ [㧈ìn‡Érž£ßM®÷ˆÀ¥&ÓÏ¡¿ê¾ð$±÷2ú‘¯ ÿXGd{ ¯ò 7ýªîÁòÇÏÃ]ï³ò•§ÓƯžYáeêCëøµ½Øù*X• àó‰ûç öx+þÆû†ü€iZ3Pµ2dUw±çI±–qÑ8}ÃÚå9/ÞŒÚ=ì#¶êÅÃì€óB¹¬Æ3ÒÈC°E ÈZ¢âi›d€e¸ÐLÌÕÕ<‡ÉäV³÷AFñ]Ûr[ü¹¸ZSgÎ ºþøžóœX%ª83aÁüÀkzê>úìR üK˜Œž¼ëŸÅ1‘Uç†â?Ü•Îô˱ñ«± ).`1“Xo6õ3‰@/ríÕˆÔíy݇å}´hÓˆémŽjW=[«¹8ß¡lµø•­ ¨£½‹v_³“³¿‹}΋-œI”›íTNüÇ 8œ7xàõð¾ˆÇK ÄâëMÔ”€L¼õqgÈV ÅZïàϷзÊËÌD—)O>­ ò”Ú%ˆÅ/’/e¥^´7õ냭øA«Í³qE©íá×¹€7­3«`—S —Ž~™_KWBºXíBÑœ_t>e6Ú‚5ÆÛúÝRâ¾èjÁÁä+3ò?×<¬þc =h¡³mŠ"î8ê;œq#<Ã9²³œi%Ù ˆõ+£ŒU½8«1¨†sú]Eú®ß¡VaxãmTÔit0ñCÃ[È|ˆ: Ñý¤Ùt>„-u‘¯Ä$ç3³\¹«}'.[ núC¦çÿ[JjË'ôñíAuË@2‡e`O—À¯Üaù·Q->€š—tä÷A/‡SD… -s¢ ýÿQ]FmYJDAVßуž»}¸ÊŒtCYgÍ‚ ù`¤Þ±lE"ó;žòN^$v´Æ>gþqOÝJýùž©æD»D+­CÂÄ4£6RƒïfUvlu\ÃijÜeløÉVmT ¯y3¿â?úQš)who‰óþC_ØýÛ»:Ÿ¬(j5µóO‘ûÈ’êk5 ÝÚ«ëmð Xåª2H[À·ÚbÒƒ‘Z.¶ÚS߈ UoÏ`,¿š/ûùQ)ÅGæÔÐòGjŸ÷µ™à+kD.¼GC#»è+¨¥´}¢øH_Q,¾™þW„Vì>T?KîèÅJͰÌù±Ó-¨sÛC”¾v–çý­ˆþj@®9·¾IOÂ»ì‡ Ü :Un¡³‡ÝüÏç#¼HaüÇiº.táUk(ÊyÅŸ/¶ÿ¸c¤„©®ƒ’¬u?WÿqÒHE½ÄOtg«àϯÿÖ·)ä†gi àñm­ç9lº‰Ÿ‹Ž‡Œ _W”ç&«»±Ï°*sùWŸÅm½\WÈUþñçØêV59þf|xU˜Â˜dFÍÀü6Â|ØKâtVƒÿX…XOD6Äh!TýX( SKè‚«e¹:LÆVýUn¾ó„µë‹õ‡ôOlrß,ìO0³”`±áf…â?Ö+5ðg¨NY@“xÜîÞ8¼˜F'‹i~ûy¿Ôt¯%³›Æ•Œ4Vë´]«kMÄDe@”æÃúÂe¹_=¤s_Y¸`WjÞ Ò?±Ub[ÐJ™ìÓFÊl}Saz²…ì_Ò\{ONY¥+| š`ôc±õÏðûРÇ,²¼ñ?-ÍwòoØŠüd:P4ÀNÅ vW^iU8ywâ“z|â4ü›NÿDwüG|ÛUz_ùÁ”FaÜc3œ {ó%[Ø(Ïr¾OCðç¥ÄSj€.:ŽBG»ËØ„W~·¥,ˆ~w.ý÷‘,7ýå}ø j­˜õ%òª‹×“±Û51@³ÏjkÉ?2Pë—QD¡I ­t¤öiê±W[DAîQY|F!qU]­=L¬³àY¾`í›FhÅæê6u9ùÇNlrlæ>Ú%X°øâÖõ ¶ÿ"ì˜h„nhhŽ0—®€wõGÓsÌÊ“ÞËÐ_Í'ö=¯³À…²Àû^gE*!ÃÝa\õ1ó£¶c'? tr…¡™Iýåßø5øð«› ü`’íù°ïÅŠßtC!7죵%²¯Å³ý†§563Quj0æ2ÔWG½º’•÷‚¸qÄvú—„´¥¿Ö|ª_ôÈuøpÏÿë‹êX57Ž^E@X—þ#.ly½£îÐ?ñµÒ]Û ‚å‡ÿˆ«º‡õƒ¡~?:@ßcøŠtø×Úau€^¹ÉE2ôWm"Ù¿äƒ6 Ž|Ú×c òŠ&â„:A»/Z ©ôËKE]½m°7"ÔmñÍ6êßô/9êâ…i®SD£†á¯ûÀ€ídží„ï»#zÑ¿dLX‹ù~6Ý[OÉ•Ü`.¬ö+ìfyž‰™¼Ý- ä «ñ ÿqŠ(z¸;üªÄb‚ÙFê“>à)`Ÿ‰¼ã“)-÷¯ qÖÈÆw¿‰!X¾bæos+‚l,àË“Ú`2Xy_ö<é+Ù•|yN‘û`8«ñ §°â[@Ýöˆmz®0ÐoÊ µ8þ)|x3¼N4°É¦Xý5ð){xg“>ÅôaÅ-àWýÁ]ÂUY¡N6ÈŽ ßOè2œëáÎõ•åì³hEÅ?Æ+»€¶Oâï»pŽñÅ)¹+.¬ïŠÿØ®tÓ'ŠGdýQü;°\£ÙÙTú¿Ú]íé•àg^ àÝ/Ÿá£¶ã?Æâ•ºò¬Öõßø±ÚdrÛRøŸ=X¡<Ø®.DũبeÖ KÆ@úAe7?Ã.7¦þ#+xSr…âØç­² œOÈþ»[´¨œV!0È-02®r:™°ÀÙ`¤×˜w蟘†®¬W±È±Ñ£dü†‚>x0ë.àZÀH‚=;©õêx´Ð‹Åð1ýˆŒÊð2#@×&Z'­ÌŽpè•ÍWL%ìF†”…ggÌËX²¯üÜaæ)}Vj‹gxÕ+œÌ|ô#³øÙ`,#e+ú&.d†·ÈP¼Ý!êïà1špÒ·É¥Âè””Ämçrõ•‰êiêzÀçŒÑè§óQ?¨ÃšôeòwU8½t´MATþ {Z‹*Wúº˜óð˜ë¥?úƒÒüz'–9×»¦è:¡>|ü½®EfTf“™WÛš>»ðW™&5þÜýw£¤s wQm;Å@>ê÷÷‰"b¼ózëRþJ¤ßìoxÈ<<5ÌÊŽ¡Ôœ·¦ËpüÈTr!–ḊÝMW¬ÚL|ñƒÉ´;Ü·E¿{L~®3ÿx¯ž…?E&Û–÷t#õç͓ȂZÀºï2Pë ýîZ¦&·6Ë{tþ*Î$®åæE°ÞÏàWôwãm|­t^ñï‹äô¿êë<™èt/‰íüSävQ‚úÁôÚ1­œ>@ÀÉû*èå£}¥~0¶¹êHAýàV¤ÅÀv©"!3Þº«)ð&å™åRDo©EާñЖ`Kçž'nìGþ{j}0á诎‰?±Ø}õ>ºòNx܉ú!2uo2ØvÀ&"üúCÞ+_ñ¢6¬‘ðçGà‹èGõ<9ñà÷v|Â3e'?8H/¡6¨ßã÷ÞÑ·å6ýwÃÇï+ñA»¼èwòZê­ì¯5<ù(òš D†©å]º8í ’ŽÝOhìü-n¹áeZcâÊfXßÄÏÑa¾p†‰‰˜ PÙý·šÜæ,„WÏMÏ@r•þY=ªf6Êá+슾=ÔÈø‰6øà•DÕ7À‚¶ÒÇû-g8ÝÕaòÙøÐîý2õá,˜S­Œ æ 8ùLÎË/TŽß£a¥“Ê×F:¡‰4æ±€Ø&ùG+üh ´õßÄ6ãd(þÃ]iEþq™ŸD,§a#§±^¢s»ÿU^,\VXJ_¸‚G¬N/sö6Ÿ×…Û&ô†C\s7m4QDøo, ­KîŽçÊà U¨?¿ ÇðÉQod3³´¹€\.1³+8ÖJüÓ®ÄÒëÂÄÂCRýI°›öĘG…`*óvÿ&ºÓ tpò—ÑK½JBÜ,È&’×LÆnú¡“ zˆQüÇQ¸Ò(”ÿ†áùFFoªðr˜ý˜D•ÆÝ‘Ê1… ©Ì.òhØú#¬¼]>&;¦¯¯*|aÅ.£ b¶Ø8EO¨íô/Y(똷­ùô¿º~uÙüIý jÝâNצþã Þ²3˜[#YY|qn¯ù‡+qÆTÅ3e'j éšF†5˜3kÓ³×r…S®HýF«ˆÓiêB*ƒ_Õ‡úƺ!ž)£±À¹ÞUå›v‹7Ƀ'+ƒùN,CÉGã²Rÿq¿¦8Và}¯Q—÷€úwärÓi%6žõ«1SZÔíœç×^íÏääTÄŒ½èSW|4ÐÒÑÿj/]¹>2ïÜ dl]r?SϾ—NýטÒ׿ Þí+D2[ÅdbâyNÿñ@=†~·3ÏSÞ§’T“´t,gva/æŒ4/á%ïXSxIê%ýä5”]™,ìf>'÷ðk‰²úÀÅýŸôßͨ.è5òÃj:å:>R_üÁtëdäôüÌ?¯Æ*qÕQš¯öF{®yªÑTïH®ÖKwE¥  š)j<Ñ-jÚ_ªõ…nÔ‰E>ê#§¿z®u þ\ ‚¼Œq¨(+©k´„œýßDöbyêFèÊKãq—èϰSWÀ.zðÖ–{Ñ£F/@¸¯`O~Šúøîø¼¾¸æúN=)‘Li×0œAYŽïŠ}}DϤÄ0›ù¨½"|„%ž†»^tõŽXÅ””TޤDiõ' EÞ›õDÌ­é%è ² vf¨Ô~Ñç·¸9äІؾ(oÊY®.z£¤hÕbcérà üÄÏ­ÀâÑÚJ´íÅüÚ,jX,ò@Ío¤!SéC^±3ŠŠwkjW$l‘±†˜ôûú›=ïAíµ_ÜŠùQµm!·ÅŸóÑE"*Ÿün??«­Eµ–ÝÎÿÉŽæ±éx×\†ýL#{sOÚá¡ÑU&*~av(þc3óÊæÒ&®ìÁuéØûA }ÈÖ†`Ým•R£µ}«Pœ^é_Í>qךpºsð?CìpüyY"Ô<è•:‘Cã7£´ØG„\ÎôH5j%aÑGßkøØúù¨—ŠÑ?qZˆgq©ö4·Ì$ò™Ùr0‘ì\Øâ¨æ¹þ|*ùGk7»Ëƒ~·7þ/µÓ;dG:#"ßûÄ{t‹?¹¯ÝˆQ4Оi0ÇŒ„°ç›Ì!¨~G‚äq|@ßÚ+ZÔìjºS} ÿææ4I¾€; ýl½Òâ1™óy1²9ÊU¹¹Ú²æ+¸…lÖ ê4Úìa·çAêìúÁ Tž´ÁJ”QÄ5çöª)sÕ=ÚPÐè™ È›±.µÄPq—þ%oÄ@ænÁ«$2ÚGÐ4a^Ê`ýòyּǵåjîü;ý(Ùç <‰/õNáÏ‹èô°NMQ’é«èÃÑ¥îq"ñåx Wð˜µXÑĬ?X1?*=qQÔ w*¬õ<•[°ç—àoaåa7Û`SéGöÛ“wèþi!xX?¬¶Iþ‘$œ§i•°Ñ%ðC—`9~À»Ç%ŠÉ»ÏV¹`׃†ïƒÿØŠ—9 ~•?ÌþW†ºWDø»a5ªe¹€Þv v3Š‚äÂôc^ð)y#vñ©³ùÛ¦Faê¡=;9PQjä. %yÈÜÖqN¥ð ‡áxv7õ“º?Ö¸+Ö¤+ŸÖ•÷VgqÀ¤æ…ê?*ë‹«`~½ÉüТŽÇë 0òc]+â'PÕW´~àVwwjœ­ä¡æd‰nþÖ¿½­Ö™ü#;?¿ V^ÆZ/‡?(3щõ:³,|Àž<™ö—Áœ†dóçCð#L6—9ÐNq_Rÿ¡ñ@4– d,üùxr¡+ðó;éÁ±‡ùQk­Xø2 CƒÙq&Ð6/þí²'wèJþ#‘nO^YÖ—•j{pÍŸ²XNe™•zˆ“Vnú·×uÔ7·ƒ°õ4=ð*þÃ5Á"štÞ îáJqv©¼yc,à™é"]ñiÑ_Õ6ŸÒ]* öp¥Õ=ð&ªŸÕצ3ÉN§'¬w{™YÜp>ÒEé¿»ön(~{×Ú "/ÐËÒ7'~Äîâj7¾ÓYª,:Ö•äµþ©ß}KŽ”$K3f:×;È´¬+<'ÛˆG2˜Ùˆ4zÛW¿ÊȬóËàWŸÑ®£ûKªI6Ó)¸´ÕÍÜ&d÷/)!g8å]Êk¨M¨Œ¾ÙÅ8 k IOúŒŽ6h€Ë_5€=’Tkô¦?ÊEføÎ&/,keæûwÞmïüê.Èʧÿx П€LàyšŠúþ¼Y‘|Èœm²iP™˜‰ùƒ·éߞܺ+ÏÐÙ7%ìúS‘ûQÌoFUý•DÁæ¼ôÿø©?·{åþã¿„èwÓ9ÿôë»û=õçi´5Zz=XSVù© Õ.ÁˆœÒN“DÎ;–SkéSAžñì|3õÌ«£æâÏE…!²S^$RûŒ£7‚ãX+Jƒ9Ôƒ“Í~µTSÀ]ÅuQ 1¢óÏË0pŠ~4b3Võ/ÞãB(bëé…þã2Å_Tåi*>kã"ptqô-zfl¦ 븖73ùAVìòr°°!T¬ú缡ÿÕuá"á^s<õõôwèQ¥£"šƒIÆ0ÿAçhlþm£ èÂO1 _uO¬úmîQÈ ¯Ðê‚OÕÅ¿Ý$'ˆÉÓŸŽºº÷Äé™±)WÈ·×`¹-<.Vé•ÂT`¼P.¨.ØÐøðöÍYy-'x”“\„¥öåÓF‘Õ‡Ÿ…þ©½TÝ3ä¶øs柿gèÀ1ÿv‚,¨0u y`p_Ëè¦ï¯?ÁÚ·…èþª'¾8¦qU$ã íŠÿØ«Ó'cSQ•›èý=»¨Â])Ž+ˆŸ|vdwY þ€üc-Ÿ7‹ˆq¨èrú—„¬Ìi£µ£þ£9ü¹+lvByÌm-ÕãÇPÜæ¡/Þ ú«Æ2}˜.žƒ,©8HìhE˜ñ²=#ƒWç)Ê*í«HÈóVJ.Á†ÏS¡ÃJ€ÂjÝÏÁ¯’æ\ j~5 {R”jqÔd9ähðÇ{ê¼`ÏN½!¹÷ã'^Ñî2ùÐÈ„­Úov€“ßb¥ÿULGjG#ó¨ìN‡íhY3\yƒM•oQ Ñ‚34åÅ=”o×8™)x¯yÆCù˜ Ý}©'éa~cÖFjzT-ÂZŸ’שоcßžÌÞ·;†©¤LÄ”WfÒ¿$¸Ÿ1“úÄFqtVMÁ¯RâGŽ’ÏÄ€«ŽFþQ‘úq{~mzª0›p%Q ¤`¯WDà»çIþáà9ð"oŠb¦§M*‹lÆ ÈH*÷§Á\,¥8H¿Ã³ÔÞ¥;8^ _ŠÊnTl”Kœç—’ùq·`Òò= ‘uÅ®µùÇ1|ÆyêÇ¡ÞAò„•Ö™gØm'vŸ½”?Y|¢˜ðó£>ª;Ðïö'ZiG´LD‡/Íüºä—ÍüV«±£úÝÏè̼ä;ª?ZZs©»HÜöAäɪʛýNw å-ùO+A°ùç?•”a²Ÿáí$+ókÓjsÁ¯Zèï|’—ÒßñP»ž0’ü‡ ‡ùD‹vÔUÅ8¯ß€?/CÿÄðõÕ"©ßÝ£Íe>ú«‹ 9máÌYùƒ½áÆÎR»“Æè§÷r>!ÿêZ«}àfá)®w ¦¨‰EüÓø@O“qt¤G\cWŸ5Bõƒ™Ñï&Ê&€›Ø`,€=b5ïô«—Œþ e©›¾É­ú˜?¸O¡¢ˆŠÈŸÂì}=¬!û™¯¿”ÔæXÊJªÆÄTð¬Xt1ŠÎ5Ðð³¸ÒÛx‰8 0µ2ªLI\«amŽ‚i×àl‡±Ò–á­ 3ƒý¤¸©þ"úÝ.ÄöîÌúŠ~¡Ö¨Ø]s˜×šò&5”³ñJ»°FëáA†Ð_…–d ~ð£8†®6|øWa*ãã‘<ÅÝÓ·é_°==à|’ƒõà3SÐY?)çz,ÿ±U©Ì¼2»~pJ@¯Ž‹Dõ¹—YP—WñÆUÁÿÎÀì•‹þjk+.™›ž&Ä9ÖÑú¢Ê( ~µ ™‰ëêHÆ—<$+ÇYf)½Ã¢‹ ˜?X¤&™ÇŸ¨‡€Ý C¬7KsÐï¾U";átÖÊ1Äú3e<øƒô¿zžU벃Ԥ»RõBG ìôrÆ‘øº‡êþà+êå¹_y¾JÃÛ÷’‡ŒDLÿ8kvdSéä‘%­`>:š‹Ì#¨ ˜Ù+©‡E ³+~•WœÆç^ãmXDÝßxãˆ|I÷¦QfOæG}J–s‡n…ë˜n2ÅbÖ¾'ù“/1þ êîˆÇΗ®¶ò—º¬o¤übŒ$ÿèJïÐÂTBL£ê£*ó½É´¢aE39†YEaé[.V.˜úÆ£(xKf“KÆ7&;×[Ë´“‡ÄÞxÌôfnc„ÈÊ”ÞbôÏêÈüËô•?ͼ§t­7À®6ÓYf ™Ò5òYð)õy‹ ú ì__í£jD¾àIþ¡Ð7Ÿ#ýK&Òñê ý_î“! ·ÞZ·È?à?zšÉñp¯P»=àg¼ÐÆ Rÿñ ÿñ˜Nv-êb°µfØf-æ‡5jÌ$õÆðç÷©oŒk-•Ï­¢(‚Œ}ç©§Z˜7°QBBšJÑyÿ¡/Ò2Í¢‰óÉú¬dù·ýGõ¡šJ[¯•¤ÿîã€ùQ~ôo?ÿá¯=W]"é?’3]n)¹GTªÊ§ô—Ô¶VSÒÅ£†¢´^.’üÇüG)ê?êGSi&†à?ª1ÿ|Ý,>‹¾0ÃmôÞÎsøW‡]‹ùµãô{¼+W°ªƒOF3ô»]Œ7úø—àDéÁJc´H¯ûW ýóïb3ÿ#‘‡)Ïäl€—?„\޽…wŠÏ,¼rxÑäb5#PÿñPy‰F픈ÆÛ\˜'¿!¿ìnZ÷@ÅšÃ^7áí¾’ì$ú?nýà|­ 9w9üÛk¥x 0 ˆÆcÏÿ8…Õ^…µ>BV± /óXÕ+„Ù÷£âMþ‘‘úóNx‹ÝpÝ"¸ qù}ö9,å,~n<ìÂA²/Wòô¿2B핃úÉ¿Š+g£Ú=Ë¿,Êη»ÃбÄeý>Qnuìh[²˜øâ4Æ ”¿Ôþü²ó]©¨tQÝÉIíþ»ƒð¾³6L?æO=5[¡h½H¶ù;úÝ?ér¿’Ì\Å}šÉDøk0&Ùec¼s=7漄§ôä}Jn…ýL&¿Ë¡ÔSdµfrÕ³ÑÛn±¸ŒO?b®¢ ¤þãùÇ ôE9ëÕT-ú†ðþÔV ‹Þ/ë üG*ª2.€_½6óbç[X›¬¾ð3Þäaû»2ÅÃaêòhw;<ÄW‘É8æÄ¯žªûÐsõ%ÿ°gÄÛÍ è¯Ö¢~^Œ7ºªë¦5„Á9˜1rC¾&ó*ÎtÛ•æGžõWb#9p%"”¤"r¢œÇóÿú"3ymyç³ãÿQÿ‘G½Iÿö%Za=¾~]­ÈšqÔAÚIØí"õ¡Í {ëÙÔúú$j<ßÐ' >ófú_m¿ºB%ès=¯^V³?!âÿ¹è=À‰¦Ø¦¶FNð«[Ìÿx+þmÒ¬bu½Q„V,Lýùý!V~ÏãlIa9 L'µX Þqä)%hÖWÑC|Õ†D`ƒL·Ð `)ƒ¯ýω}/Æ.7¡¦ïÍûý\ÿ>îH(BNIý}ù$êY±G\9ÙWZüG¬\ú4Ùq=¨0‘tIù7žc!¸Óm±V © ¹âV­:¹@5®ô5'Qt&ªA¾SÝõõƒW@ƒV±çÓàWÞpá÷Ä^½^˜ý¿)/ÕØ†Ú׿± &%Ñ{'2‚âò4–x0ÊÏkäE‹ð^d_öL!䟴Ðú'TÛRl[ÀahV<•è¿J’¹]€1ššá'ýK&À}›²ì0¼A2*^r­uÅœR Ñ?Ñ+n«ÔÞ±ÆLv9Â`z!ùÇK¼^ª–ƒy`ë-üÇÊ€ú1ä>›ôÄZÔÏÎhÍžÚ]ýî>ø…ÌœÔxòÊü @ÏáÌŸ£}b¦5oÒÝ#™9 „Là;7ËFx‡é²üyÈþ%ô/ÑÈŠÂàï 2{N@ýÇw&:¤Òû.Upň _Ãx†] Û]‰üã,5ùYgøóéÁv¨ê¸§yꪳBð«t C[ÍéÔ,Ãu$u$ ÿî ú¿*w¶¼i+ùÂk2ÆSZpµ{VqŸ{—°µjìt¶aˆúU:¸¶ nî…ÿkÏú‰È5s²æäPü‡R ¾Í«Õ ¶â3j¡`’sñæ=@€^À¾6¤VìxÐYêç>`‰Ö‚®M€]ªaìÒËü¦ƒî^€s+‡}œË®“ì0ÊÀø‘sø¢ò¼C/§«T[¤3ÿ Y„H¼"6z¡,Œ~wEˆ§{‡&Á¯:`)6ãf<23­õ{r§Ÿï.úfôf®ß1ô·Oñyþ#:5Ô3àWKù«Áõ¶–Þ•¨iº‡ÚpØÁ×R€oJ‹o»KÇŒ¨Ž<Ž^æ^Æ#¨C,††Ìï´|ï5¾óœÖ9Ø3rvxºTØž¡0Õ^ò5µxLúšŠc<ï:¼Ê4¢ú¦‹õßѽ™ÍÌ?«HýÇuç=n¦LVW’«-’ß »Ï{32¹¬¦n Êʬ¬tDOKWÁïÌkªˆfìùG:<_=NFaÇy¨¦¹Då ÿaÂÚ1JR3 ÝñóÈ fkøèºÔ\gýq¨°¾qŽK¨M¬C©c2 ÙÛu|[°èÜA<úôVú†]jLμM–§f^GmN­?*sô™ÿ —>Àzj=bíêý†›Q¬¦A\r•'ñ,\\c‹Ó¼SÝàSF¢˜iÎså%ö›UËPrýIדh­²Òw ãë%±NÉè¯ÚX˨Êy…½ø.vƒu—¦&ÉOßí<ÁÿÞyÑ_uw> .x,Î?En™_›XÛ¯åÕ+éçÔ ö*êhæG]bþùIUSCÓ`†ý Åðñk@«¨c€ ž¦ÐæQw‘Yœ§ózLæ4ÒòFjŸš>ŠüÃC”&¾Cþ‘UœdwÏDW´y~T¡GôЊUÔ¥Ì&¹úÊt8ï,±ì.r¤aøÚœPޝ]´þC#¾ÎJ´]X ¾:Ì N¦¿‡?£Hvç=oÏ5è(ã €9Í Åx(eõ!pÀQ冷} *P?”T¯vš»Ð”é€3ˆþ™ÍÅ,…éÅ•ì#ÿÐC<;õºDÍðûAÑóƒ€ „ñÉ_”ºÁ‹ð篘c{Qæ6S£À-%¿Ò îöc™Ìe´‚–üãÒ×P«ä/zP½³Ÿ³Mé]˜þãJ§{Øþ¬ 0ÇA³êP?8X%îi¬}Nf… 3Þ©ë‚íÐ¿êŒ‡Žƒí^AÜþÀÈc3 æTú,ÉãønUu”AÅÚÍü›^PEaäׂß-çîq†Gµàlaô~ß@ÀŸ÷BawEªt/ïkŽýé5‘žã·¨³hãs”I´ðá7n€. §+#sáÏk)Õ­dn3å{8§aLodä&k ÖˆüÅ‹úó¤XÑ·ô/)@/˜Øýæ|±•ttñ‘ðuEàì¶ã诞!Ú³ÌFg1‡ÙŒm¬ØŽ^tt<ß}‚ê!è¯~à?Ðõ0#ýAÀ¢ÌÄä]˜@ÿÝ5Îó+Žrü™HJšçûl ß} XóÜÕ7æg&F¹Á˜Ô΢Ó@¦\%³baïßµ„?ÿ{²Æé?>3ÏÔWŒã©mÿQœ¢›ÖLúÝ·'—yC×ÈIVÇ8‡/ë%a~ízG6¦’¾y {¡ðþý…ÿøn|Ô#7¡/”WêßøÖ 1åœ'›Ø1rv9ð#³«Oéßî¦åDu2 ÿˆ©ŽÐöjO©!<ƒ>>´°ÀŸùU!Ô™kP¹ ìU,c"þc,ùGvð«‚â…^L/¨•tî:äφöçZC0¦¢16¡‹QP¤ÏÕ•àWmåô&lϧ”ÖëGhÅ’êZâ»Öï÷{ù¢Ð,ø¡p"íáRªÂ$÷Ï´ˆä±õ+z²–äøÍÄúé¨ÿȇ}_Œ‡L|xèË€ü#¾PÂÝaôW»aÏ3ñ“ñåìó4X‹¿Q3¿ÿ‰ÕÉ#Wâ?6ƒ˜]Kµð&ªƒSð“õ¨„øŠZ'5g—4ÈAnŸ™çkX’Íœ„xÖ^¾ÿXl&ÿË'}W>«)@„6³ZK®/1'U3ÜÀžÎò½~Äá7Xm:÷Èüj'ñ}ð«;ÚÚPni9µ’nÁBE£¢2>Î^ý*uógzBñËÝK:þ£#'‹ýýÁßu ÅœÁLvÏÉaT êœúªg£—¨ m‰——ƒ@½ÂRN&ó²grÍ£Ú€ÿYuÛ‹þí‰#êbsg¨Ü"Òð;¤{–̪¿X{&ú_„ÿØ€Re-x€VØÓå2 õç‹BÜéZLtõ¨´<@…Ãü×”²1éÊ·‹Š¼Gpßi¨ŠØ‹½kŒÿÍUÅ–^ º/~ß‘ùQú!û0u½-ùÕ9*ÿË‘ÑØøURÖpƒ‹qAtÉúÃñ oJ2¤.Ô°¹â£>Éz ¥?VÎG«l‡YŲ²çœÌ²/ã0š¤ct>Y€þJ¿Êm]3çY½Mù$ê*^º'Ë4t2‘Åp0……—óÿ© CUÿâ k‰Â‰˜ ò_ÖM´Ä·À«–Ã4¢KzuødÌ-ÿ~eÏ?_ŽG݃·¶ä~ØûÁ]y¨}Ççï k^#¾ÒàQì~è)é_rÆã+zã?üaW¶ïÇfÒ.³Yð•×Á“è·êî¼ÞjjKøîèqz 9¥7”YåµèÓ^lëHÇú—|Ás§NÑËÊMUºa¾C~…<Ø4:“áîô¯èŸxWŒá™ê…§Ïj\0K:º[ëè¿» –ü«~³Æ9¦YñÀÛ>Ègð!%许мi¸aÖ§ä€Yùú?É?RÁ´pžÌ%‰šÏù'ç ÐE©?OC½G½üy]Vy¬üEÿvo:`Ý‹ôüÁäˆ3ð¿òP¡uK[¥6Wßê>"©ø@…b¥Hæ÷µD§[EUrï~Ì´k+¨Ý´k¢ókOˆà‘­õÀ<ì_]pSæèÒoÏÛó™vNä8“HÄW?ÄŸOê}ú?âÞ>‹k ÷ž™½G^Ü¡ÐwwHq îŵXqwwww÷ N·'XàînßrnßI“œûÞï‡$$;{öÌ,yžg­ÅoÑà@Ó‹à ¯è"¼E~žÄO @+a@ÎàCR’t%ÞoŒž>…Q•Þ3*_ÊÉÔ‘Þ›Ì??Ê÷+V4?‘~;¬D"tB~ØÍÚX©+ÃË÷&&€ªv|ìg¼z>bá‹Ô#î0Þƒ .ãwŒÂ7÷Çwm‡ÿX¤ý%Ýôìð)[¨ Ɇf  ¹e.øs*רïA”›ô©ˆY›š½büò£:ìÊ:# ýÛ‡¹Ó›á?,väÆ¿¯† C3šZÄd4›˜»žžã­§¬ß˜Ž&ñíXQ¸äµ oc8É êìP+¦vg/j„ªâ·úþúwæˆ1{SŸ2ŠN%ɮ޶d0]AJ¼É6M®ä{\eœáç6j¡³õÒ · ,¼?ˆ<6uDZ½à?z£ßKeöEjî§Ã|øÒUö¾Ñ¨ç8 "ÖŽ«id1?ª¸ÒY=ÎÉÍ)ëjt0òŸ[ä#93|.ú¦…LP*Š•nl¹Ñõq'uÞiÍU vó@ôö“Åf0Ìýƒ_} Ó:Ìýt!ÿ`®Ý' ýn úHÝ'C8bm±`ç¿ ÞLÕF'úòž£f¼" ¯¯¤ê,x~TµR‚Š6ÓO®’ÜÞŒã(ò'ã¾Ý“[Z1äg©*lm:Ðï~%‡¿Äs¾‡. CøGên’>ž·lÞe¹™Ù1 ÿ1‚¾4ÇÌVt™/Šþê]SZÆø”ÖàW³È?Ö÷n ÿhMv˜âÿ‰þ*­ºœ¾„[7“Ø1›ó³¿¿µ¿s¨¯áÏ/iÕEq'¨þßúA?ò!Õ˜jôйøêŸè¯²¡¾²ÀEÅ=íˆÚ\u¡sŒ÷²¨§E¯ÏãM õ=øU]lô½¡lOÿöÖäè½@þQ€ùQ£tåuè÷ÒPø’«+Ô”U@×Qƒî]õ'â2‘ó="ˆ²)³¶G3¿v@Ž.¸"á‡,bÞÕØ˜†Æì ïbwðä¢T>?½zÃüó°QîÏËïR,ò _ìä,ÒzVZ‡ÿðaòBy•Ô8»„j—™|å7Ý_‹¬"q6ˆœ¥:ÌÞ#|Pj¬p"¬õt@éôËdsþ¾¬zo§ë—…k„üGb4¤1P…íeµö`· PØýç š½DµEÎ}bªI(wO‘ï¬Ç¥“´ðz߸¨åÑï2] >¾^g ÙQfe‡IâšÉRc›ËQOe1Úƒ]µå,… srÂþáøMŠ›è!ï“oL"°Qè§Q±V[Ç’•fÊô#øã}Æ5üÇòQd-ùžƒÌúæVLњȪè貵χÛðÆcî°çœ üqƒ?Kþñ+LEUTþˉtß‘ƒyR÷výîŠ0Ïâ-.ÏUIT­ëQ$í5`‰2›Ã2·0ÿã&vYÞÖôL]ÌpÉ ¿ÓÖ"ÍáéœÎsõD]jEKT=Æ•”Ä#ô‡xr•ŸŒKþqm¬æÈHýÇQ£§9•<© wÛ‡ë_Ž÷:by@ëj½¢èw?’3Ú]¹âÝ.'AÃ&¢ßrÅ,‚ï~Ž%xU /ð Á°^MÍÀÇ5bŠF°þªšÒ[=ˆ§œb¼Ôgá¿ËËDz]ó-ú««¦ýK(LròÁ æ…až'­Å#3;®žuæf¦‡Zøç÷^ñV³¢A:ŽªŒˆO•ÎpK@yÈ6Á•Þ-ÃÞ|Q/ïŃÌÕ3I!6‡³`fµoÝ'”_Káõ÷‚øý½þˆ"+lu1ôW)ÌEØîÔF/˜Œ¶¼ÉQNfÃoÝÇ,Tê“àsg ‡ø<Ž«nG¶6ŽŠÂGôѨ¨÷¯ßÅÌ£çz\8éÙd2ã8úM!µ°oMoòJè Š€ÑÌÀ?\„mØFEÎm:Ž€ó]MÍÛoðÅÑ_-!ÿø/µ ”è z?*6…9ÃõZR¼s¼ïb8ç}Xè‹újã jàÃtLô3÷€,³¼è(UÓ|EÞ•¿}×r¸•Ä©/@Cb Qëw V .¿q‚qA×±÷~æJ²–a–øÕ+øÔ¦?Þn†¹oO@N°ßv}»6,Ôz…¥­[ Ö˜ ç´D?b\#oM÷fö>?³ŸV[‚­yRÿñ ¯P ÿq|i¿¿Sün8·Wüʃš†deù®j0n¥ˆÅG£¿jC®uEl1«óŸJ[µ‰ð_¥)«†'Ldž lHξܹž¨½&>ó#OfºÙ¹¢˜B~þcŸ¹€I>t< dJû!:Ë\'ÿh r—Fê%üùLž˜Ê2¸_ËŸtîü&³ƒŠ¶E'ÐD~ÐϘ5è8rÂjDTà†š«™µ.=™ã.÷e-ÜJuô»IÌÏÄDð+äbü‡‡¿z¢ú_ „ÁkË»´M®6]é律¸ #,ÏQk_)ËüÁ;ÆFøxWtÇ“Ðs #ÄZð”Æ¨ÔÒÛyÅÿÞyÈ?F;Ÿöã¿í•Wý &ÕÀt/‚fª?¥þã:ó?Þj'™_ž3âëü†f…”X˜h¦Nˆôâ }Ó3ƒ:f¢ÿnfÑ,RåPèµh]±Y ðãx›ªË-èñÆÓSh jÎc²<–§¹Q…þùàÏ*r^õÄ)Ð%bÊvúc,¾Ý?ñð#λVòNæ&Vì#Ý¢Ô7Ø&2š|ů­Æ–V#>ψuÝAÖ}ÝØy®$¥eD–9xw‡•‡TøÈXì+…± K½ÜfkoÖûi±¬¹Á^^“-ÏC»±4Rüj­æJÞQlê‘ûoè²Ã1|Ô³°–k? ?g³Ý±°eõÅàWy#ä? Õþ#'XN âvo²™dôºÐ+ÃôwÐçbàé&°×=°ËðÏ-ˆá|Îr© ÄSiÏš‡‡=ˆ§)H’ÜëqJoa™¨EH~U‹Õ»áe|ADç“…:q~à©”}ä• ¾¼4ò.Wjç¹Aó› jl”¿ÂVc»™ÕÇÞþSÝØ†llý¯b8ß¡ÿ,ÙV"]9·ÒpºÓAvc7¶áëèÞ BtŽ::3ð¿bù2cQ‡],g>õ>ÊÐÕâŠ2SK‚VÓM/…*i;:£1Xë¨PÔ[ÛlÌ 5Ï ÄSÝŽ¾×€¡zMÆÐ?ˆÿÿj‡?´Ä>—xFŠ‚_õç¹x`ÌoŸJ~4ôåwGlGAGKv˜Í싞‰3YÆî§ò»¯“ÓúiíB­—WÞ"vºÈ3;‰.Nt•_Moá‘TH~'ÿ(Bî0ÛZÿ±œÝ¢hŒ²í ;lƒß¬Çáï¼nÊXuî º%Œ'Si&cëy°¥Òó¥ FöQ]Q–â)“•ÊbG70 ¸Uüuñï¹GùÀãÞÉÉÎõ+/µà‡ÀÒ™YõV2~ᦞ§!#ÚiÎ!ÿØÆé]c¾ºÙÍeêÏÙe ÿ8Íù A©XXöp^ïŸÔ¦½•éÁ ¨%7þ’/õ¥frGSTÅ¥ðIðn—Èeþ‚ßK•ÆAË•ØC:t%"+¼†¶U}_ëôÔ=ð)ÉH†â?K3‰c›¢Þšhv@Û1ñËzIÏa/c;Sr[“`F^€Õ¾‘+Yñ/®9‰Üã¼âïƒTLCç<ƒþía#©¨î¥ ú]ú—Ľ Nå6ók©ù¢]RãE¿RÔ2bÝJyÆW›bŽÚMMŒrÁIdZÑ$šõƒ£µØ—2YÈx=·œ"ý©Ny/'èät™mgSsÿÊk¨#Ð/ÅÖÁÂÔç´’½˜Ñ~kz wŠÌA‡©²L”ú_%{„ Vô1oßR¬`~ÃÌ`Hhϧj<Ãú½“þTuÔ’‘÷&;¢bþàQÞ¸Kº ‘yòƒ¸ a[±xuá@/ šÉÜØ¾Dù*þßœ÷>ü«¢•€‘) ß} üå7¬p*¾ûÔ5~!?ºG†`¯¼úì üËy¹ü*_k~Wލ2™±ïÑÿ˜œè©->x1úÝ `ɉü/a—§ð&­Ât#ë)¡qÂí —ZÍ#^HOò¬za¾{.~-/ÞíŽþÏbÊãâö¤\êPN¡kéèw0[Ãñ+•¢¢~JXÛlØÊkœOSþËdÏÏld£~æ(ûFîH r¸Ù =ˆÊé+ÅW5¬¡V[ÚÓ㳇¡hÏ!¬#÷ÚAG¥DTktE¿›Öð))Au’9ÚZ鵊üäR±.Þ÷>õwð°8úçz«É?Ž‘3àŽ½°†1ÿãGY?ê(;[«ðL/y«ß’ô×íÉÏ å©pÞ’ÿõ— 0WÆî•ûŸÿÅ%ÿøoùó ªm‘Ojˆœð翳ffušv›î%·µ‹d5ÑëŸXuÍ2jtžðßw9Elo]¢ o^KtÓj9wý÷îÿéïÛZ=ìè^”QÈtËɘ̯ݭ%×X@µvlim܇øŸVú$yžð€çug¥–àE‰èËè9äAÔH>znøëL0Þ ås­ß?-ôþ-%ñ1ˆËÝñJYAJñÍ òŠqнKÒO^–"òþíYÕSLÙ»ˆíú¦äŽÝÅ_Eüùm"ØDâc‰ò=åÈ(ÔTǃUÀÎÛõ©È“rí¿5JUECÊ>±vfv_‚úÌÅ¢¹š9‚;ó\y«Æ¤ÓÉ~ÛæøXTm¶$3Ø Kpš¯MFKzÛ?»lw7ž£QLÏ/ßh{Ã9ÇÒjQ“(<úÔ*x›Õàg¥ùþ[ôj™ËüÁâ&øCs¼ÜŸø—¿x×8Dvürpòo¥œX)ßâì*”÷¨› NbgCˆàßð{rêµQ×.à¿ÛhÑ<‰ÁçëCÙu}†Èò“~·¹ÖO¶Â•!ÿð0Ò‚[´…­. ºò˜ÚµsfkýÛ¯Á_d3DZ;ð! ɿ쉉éôJ?Íô£ÿnVž·Â°³ø3M?§­¹J>àAOÚùtèëNwVðXóad ®Æ'¸ä¾üîDÊoB  öaÆÍÉïö€–àwv6ëŠ9´½-ñ˜^ñ‹ã;ý=êSÍ]/°ŸÚ’³dg=È¿fë{´6¡îryŸ{ß= ?sP¿Ê®z1A¯&þãµØ¿ LMµÞc—ùÀ À'·`oWágZóý…øò¬óWPFª»©ø_`¼…sênŒ“u¨N¹d–YJDŽ´‡ŠŠfQæwÔ²JÙ¯²’‡Ì¡îc>ÙÝ:<æ[˜Îàüc§ò^û„~wÞþ­‘_ß-]¨ªoMýzNê°¯í°Ý½Aí>ÁWl¶ö›1­aÔ¼¤ Ê £¥> ÿ±Ôy½©™ÿño^ž(ˆžŸr†qÐÌB/­ÔÄûÒ `"ó:Žá?n1ïdj¶&èwýÌ8¦=ÕòOü1×ÔúR§ÿøBÿvæµs?Ú“n“ßé¦UƒúA7îë.úg²ò9º9¼­gVzkŸq–*ô:ÖPŇÄ0¶~·QÏæ­sžà¿÷ABõ ýdÿþ}ñÔ¢ÿ5ÿ‘S}ª–c^mcQO¼U«±æe ¶[»‰ë¶š<šüùKôø©¹~‰VÚýîUúE'P5¢ðô¡­#*kõ»þ{÷ÿô÷­*‘â*ìGOÕ¦b šC»HEVo¹¥ÌgÙ/ŠõçÔžh‹×á?v¶Ð½‰Q§`ñ õ‡g(¯Ÿ–ÅÀ†f¢ß Ö€D¼·„bµÈLtú‰Ü¶4¹±;=»†'ãÜBTä=5¯áFWŠl0?§öŒ¼þýÛÏbgÛc?Ûb?ínå¿0_÷7lßúpü‡§’O4—çA}Áëð0ðþñæÃAà?á=ËÃ]ûážÅ»˜äP«¹öQœGKð«x?éØª£¿ÊßÊë<¬æ¹ª'ï¹YAV8Û&Ö 3ƒyÄHc– {IüG.2ª°ãËŒXT¨„VK)ÊBô»?dNj-}—SÓö\A…y Ÿ/g¢Æz31ôM¼‹«yþ<9YÔºoÌÃ6ƒ¸3?jZ¨»âU9Ûí(쎾­Ñ/<4a­šSA1žhO­šŽ: WE¨•ØÃw%ÄSÝÆÎ4îØO“Zm’Tn :î˜f[¬{“g¬$Fn„Þ7Ö8"ýDömÉd¶›::ã~xÞ¨c½ñu›ð¹¤æÜ_]¥‹:ƒ“B¦×“ÕþÀÀ‹£˜2é—¸Šˆ t0ÏG”ßÜ*ˆ_YNw”òØû:0CŠy•¿ËBßá|)×5_|þq°‡„fZ}tE›V‹ü£;øÕ"æemDû<€®-·Q6̤‡bfòkxà±d‹ˆ×2sh¡såèíz_æ"6k¢/¦s×cÝߌï(6ˆùS7áó·±âHËáØ1 ”,;µ0Í„d™×°?¾Dx/äF§ÿ¸¦nWЀöÃ2­ÕϠߎt‘ob~7/2u±•ÁÑÖq $†åiœ²êQ;ÙÞGåýSxûèσ–%ƒ ï-qÂÿèƒê¶þ#øUdŠœˆ6’Y½¢ºRÿÑJÔ"Ÿ·³ƒSJwêÑɵ«Ø~ψ~0ܯÿPJ‹n øŸéú“š7ô.ÏkÕ!÷Ê2±lÆüZÛCEý µ¶Ä§ëeìBwüGùBuÓnÊÁú&yN2}ƒù£´b9æý6^<ÛÈ^þIJ4&á9ž‹­X“‹XÄoø£ d¹£Tž¤Åî·›ÝÕTDY`óðù,è_ P§AØ¿Pý¡èµeìHwè«\£ûSô»ŸôÔX¹¦X¹ ¤>x¦êØEºiÝ¿”³@ããêû"íµPk‚ßøƒZ:ráéOÿx‰µ»|Ç;mEß «r¶øžÜ.*ªy#ØåG%@Uaeì:®p¿‘´á-Ü+ì…÷‰Jô!^yxýn®{ Ñ}-îURq(œIÍ,>Ëgà}3xOè3ÁØêÁøc÷RMµK<€QhsÑŸÜ£> Ø€ þnM8þc³’W´¯°Z³‰cubì¾d #ÁŸ&°†ƒZ—b°4¶=>o|Ô c×½šß9‚·~ŸHñ“ÿ¨¦µ$Š¨Â™_"*®BþaÏ‘GÇ‹ÿÈH\Ù ,?µÒi©YFÆób5ÊÓ-ØÀôz½Ñî.Ýî_âÂŽªá¶“Ñ,'#µ|§=›Ù®[ðs¬kT7–ÄòõÇÚ—@éu…¨Bt³Bÿ¬†ž×a{öÙ^ü~%T¯CÐ'¿FǵÙNÕáHºAåq¼†Co«›]±Í®ð©™Êv‡Üq™ZíWzƒ]ÝçùïDnq\_fø˜kÌ.¬ç†~wï 8ÑR*÷Q¡ý„í/<õ[ò±aä5£üò™ó·SÚã?òƒ”=Óà?šË±ðÞwáÏ™‰áOýÇ2ð«,Ös4X•ðF~tsoÀŒ’:(\¸æ Fe#aýÕQåøÕ¼åhý«!AY7PsÙ‹®‰EáÉ’!<¢¢}¼u–éžt™?—4?”_þ™gr2¼i¡!ÍÿÈÉ»Õo™M65R W+ ~XÞzjÖD½×áEþñ…|i5¿g2O›)ÍTðh7Àá?¾ÈNÿñPÝG=É`ÞÒ®xûòÞèOk%•AS™Áõ…lã™ÕÉ1‡õ ¢¿:JöÕÊZbN0?’Ñ>—ëx'ËÒ/óéç<Áïƒ ¨šF9ß÷Dj52F5¢½¥VŸ«©à;ʈfâ¼Zƒ5Ÿ)CÐóÑ^€_Éhößµ˜N:ÿ¡€Õƒß‹‡Údæ69ä™[Æ@ÛU«èÜuD; ùõ}è¯Ê€Â^µÕË?å-µ»ˆ×Ÿ&Öˆ½yùj?”?»‰“Ï{ÖHM„RS÷ǰ9'Py þ3áU²Eiþ` qA” QÀpÜÁý+ôL|>–ßÐÿqŠ}¿’Ï™õ‡üò’Âýø£r–úó+2 ?Y«Üþ#|¢ߒØÅ3t›_Ev´ÿáÐ×i¥"9ÅCZ#¤2œÙUþÎÄæÁbþz¡ÇØøyxÑÕÄ£9a'K¡ë:Cý`–Ö|«œVó|ùvÁO$§¶§5>r šâ}œdw˜ÏÛx“dGñËËx›š€ *"¼Þ7ÉÕ\⬌ ¿±e„¾$©({;ËIžÐ¥Ü'ÞÂÀ6!OjDä`sÝ&üyZжÅáøUôßí"?ã?Fð3ŸÉ°†ñ¤L'™®þ¯—^¯Zh&ù‡Ýsk.Þ`1ûœŒgò¦ÿnŽ0×ÜMk VZŒÜt?ö¾8;jÍÈ#¡¡ß=Èüó³ðÜ·Œ fns"¶þ%¾Å üj;ÿŸƒücY˜õ.j1ÁqëéñGñ4 Áéú¿EQ¼´ÿ1ÁºHeH-lþ4ü].˜Œ³ä*%È϶èÕÕ¡VŒ/šqº;Á¯* tDétÅÔ6s´{êbb×vDÕœ.ºvMw”þ°õÓ[Ø-O-¸êØ~“I/vôˆ§¤þÃ;ˆÿX‡ç¡zƒ HÓé¹qÝíRÖó¢’ã%¾£'È}®¥-ˆS£hˆúóâJ;uŽž _ýE·³”Ú¨íž÷M‚f¦l§#¡U%¨´û_9,wØùßÌMðç‹ ƒúA7vû-Äü=Êí 8çü‡03PEÚÍAGð¯ôI<‡’w—5ƒÚ ?¼Ò敟¦Cð˜ŸÌÄñíÃèiXXŽtž_!øó2og-îA9¹Úxm¦sÔ³²b/© Cµß ë=õŽËðƒ¬RÔL&0í*¢;ÄD‡¨€ÿÒû÷ |GÝÅüÁÎD"É ÝÁ¯T˜òÍèwåi­Rô¿ºß“üêÌür*1'šOÉ+?Ë¥¼K¹ˆ?âÈðª¤þþÿ«¿óÑ×`ˆódâñî§t~½ß™ˆþ»Ù´ Z9QIø¨¶uÿ¤ôюÈܤÿÕw%zÝY2«ùÄT©cã^“ë ¾Zµ¥šBnãN&‘%é½þ»ÇµØ–²^ž.ßôó÷‡y)ÛêóðM`*F±ÿnu"õÛ¸w~ 0Õ‰£Ó€F—Ò;¾9ÃWžÊêd èÛÔ% Gø õƒ®ÄÜñ{Äu+èÔ7ŸgñÂξÂäGÍu‹ R–|ézÉÕ (µ>£˜ÿVnw”Ÿž¦{àçjÀœ‡ÃÃÕ2-6`³–.’»ȹ'jº¶ÿÁ› OýŽŠ¿˜p´ØÑ…Dâû@Å6A2°U„ùÇ…9Ø…ýp/}ȇ2áÙ:ðzRn÷2ÿñäj4 È.²¯e ÂÕà?žháM6H§VF¿ûX×9ýúàÊKðÕñ$7ÈŽéß„"?ƒì¤‡kmÞÊŽx[U›?%ÿqXIOÿ«¯zP¤êØ­;œ}=ð«"ø ®TS˜FIXÊ»`-ØÚox!»ÏÊ B$p눞KÕÛȸQÒïæ¥{q¢Ýßðö~§" ¬ôhð¢^ ±Üðש ˆt‡qÕ{AøUvQùÁ¡›Eÿβ#¨Ê"‘qÎ#ÓÈã«tPˆÈªøo·Åþ¶ƒ=­'!7øþ<1519óEX•d ð' PàC{D¡ç|Sª¹ñ¶¹Ú¾øäLw鄊e Ìô.ö¹€Èñj.úâ®°ò\öŸ€þ%á=;)èõI~!3˜…fú0±tAâýld.ö¾ž‘Õ=ÙМ¡ Wl +~sQ8þÃ'H¿ûž7±–\£ 69JÏNܬ.Ž‘Û}›üà Ûw®ÛƒÿFpméÕøIMæÎ´ÕºÉòø¼dc±¾þä?kÀé.SŸ‘Ì~]22™—ˆÎ™³©”ð;°å›ùS•þíìw*hþ¹Ý?Ñ“ìÃLå ÚŸØôC@u®!%ªÖSÆsæ¼ÅƧw‰Íú‹@srÞ—é“ò‰ÎHþѼ16ß7ýì9ý;Š©(   ÛŒmþbs”oêlŽ„E¯Ä lÇnÀËÝÆï¬Ñ‚U7öº.ر‡x+zGP¸ºqL­-õˆcÍÏhcÓ’;¬¡â]¸ægæS˜ézF7°½ýüö}|œZÞrn¯•ÒK]JF;OU,*¿ì¯§ ®o…=n׳¥l°§XŽêàWþæ6xï:èwks¿?S㘗Ÿ¹¢âaå»ö‘œùü4·dÙþƒn(dEÃÐ>¥âo6{:E´¯ã—&›yÉüÁòk¤ëý¢Þ"ÿ¸‰Ì âZÕI°Þˉæ¯P— û\Œü#6¶y¨ØüHëÏýð»8±¶h®ŽƒòuÀ »âë\¨‰‹’1Äm š[˜aÞ¦@¹_Tð z¤¼Qsá?¼ÉŠ:aïc’]Úýw7€Ê\$™KO¤{x£‘(›Žƒ¿­ƒ]éªg¿ O•S-‚ æ1xß@"A›Ê‡ÿp…çOh¥{×ÜJœ›ÊhGÄ0ÛÝ@&~ÛˆpüÇ.æô’(Í‹˜èYìUàOæÀŸÇÁ£äÒ{ì$¸ÿ؈Ÿó$ç™J^qTdø)ÿh£u—%ñÈ(ìŠv_bÕðœ—@•J’Øúþ$ôñ¨aÖÀä'¿©@¦Òo³Õ¨IÿÄ ažE?Maÿ°[àP6«©ôf$0UÓ‡º??Xå\°7@´þ¢Fo4ü˜8¾e ¶t3§ýAjÅä¢í¹ZIVHÞ§ÓQé¹F¿ú«,Ž”ŽTŽ6 l£a1¶ÙÁ+÷€æ¬àÏc®û€;#µÿÿCJu‹:Óy2?”|tªúï~K*òlô»ª)º‹›A>é‚ÒY»ÊI>bªáÙ€ˆ“¥fcdR4žïe%æ¦'ÕÎê¯à†åá²ÊÂD9‡^{‰Ö»,Š¥&^•“™?Ø^»-§¡—{){`yÚE9ÿ®v׈è‚6ƒ¯-ÉÛ<„y0'y>ñçµ@fè’ Ú†ÞD¸ŸeB)T›™tÔC$4Àóùs‹÷>±qôè½¼ƒ^U>w…_¼OÿÄd+)°q®ÆR8¾Õœá"Í}à/ É?Êü€‘ÜÀ×ׄQñ‡\é?_Ñz P® –c³.xß”TéÅaÎIf› a;ÝÇîÏÀŸß–çEÚ íöÏ+)Êå‡Z¬ö<~±½~PODÅHs¸¢¹z|çj´,õáb‘Ç’OÜd‡“y§RËÂ#œå~U Ñÿ*}:rÀ¦•æO lXJ&Ai\Ð’IF £+oú0ìw† þWÁ~^n=õä2„Däv½G_òh³P÷AOÞ û¹ä9^Ýžº¸˜<©?î4õƒ.aÞš–ZOüG)ð¯‹Aó-|¸æ|vžMe±öS™e‘ û^Ý,‹ÿ°û—ä¢ÓIs¬ßqò62t¶ (LŠÄÛÖDƒ½ãcLÄON…«p1Ñ£›²çŸÂ\%ÿxAÆ“;“:‹)`g ©×¸£. µC‡h êwJÇ÷­7zpb1P"4= ‰~w3üyRS¸±¢ èÂ~Œ )yÂøóÝœÆ6:ß×Cا©Éc WWоu&»AýàQTf=Mw£ óçÐÇé±ùКe·ÿøL2¿Ð´ÉŒèúáÜò¾ó¦T¤û <÷2½ŽF £¥\Nwà[DöïÑ´.1aíÓ€ åtÔ‡YàW.(d×ѽÀzŸ¨o8ôàùQû”oÚ+pÎó< ÌDú 9ϘdþNÕG*Ç¡¸:MÇõÁäo‚ªÑ=¨-Ž !~ú#9ñ,*6JÈÎóË­Ž&:D»«óf£ˆLϬÅŽ|¬ÑýÕøÏÔ̧¿ÖU¦<ÕBÕ›šŠŸ”f\ãOõPOЯ¹Nÿ¨ž§ž}<–©;Oñ.9›š–Ô4CõšzF:`9&;SO’ÊšMÿ«ÊLšBWý·Ü¿rOV-Ѐ„ÒÇy‚ÿÞ©Ô]!øó8ôÉí<§èí"êÌœt+i ºE³gù]¡~p/åµö’üþx´–{©¤fþ B^ðE!ˆ-ö_݇™ä’A֣ɟOÑ*Oî’…ÀÖ3+°¯ü¨VÖö z؇6¶6ˆÑÑ#JW^Q V³`ö;×Ñ̇¦«~ILÃÞ\ç™2ðTšñ"XƒñÅÇž‚™6à³wÀÔWã1ö ¿²mèqÖz×P–Lá±|Àüóø‘îð¶²A"úÞ?ØJÄ:þd4öuQJlãš®ëñGƒÉb¡âŒÿجe'w錶é§ ÖÉŒ•–Ì6LE±+-ÖóÇ+¿ª€~÷¨¨¡C¨·Tåï ²–¾øÊ_É@ìIRk‰ÒÏ‚Ž"n|ÄØ5%^°.»Éès¯>iÁµÁç˜JÍ žÉçdÓù.»‹\v–•]Æ2.Áœ@ÿ{Ev£2¥3º—ø(«Scóë?wW’‰öòyT?£ Ù•=»«.ñ@8Ô¶ÄÞ‰ 7lw z¡cø¸Wð‹È˜¦ð]tô†9ÃÜ™ZU:ìU Ûó!¾nÂŽâo2tÊ?Êá‘Ú÷õ@2íØwfyz¢4Ž2Ž¨Ú£  &Â]…‡›Å™>"ß|fþ‡­>|A.~•»ØXb«±š¾YÝÍ1ÌC¼ß[€þ‰Ö6<‡JªGp­Øeüù`üGT°OÛk¯ôQûS9ÓÛø¢·DUÕN®Æ7+Ñ_½.µû^ð)á¾ßSq_ot˜úúæ2NÙÝHÆÄÄÆè‘èkëRîkgðù»A‡¿2ä¦4èÚ>þ'eðkÌÔۯƶ$] çRµ‘’L)€“[‹º®±ŽÓ5DG€âjGñEVàüÆè½Œ¤r½P²¸Ãé?gö”e9¢’2ñvUáV~ƒWq1Ó•Øöa‡ÜŒÂÞÛé?Óÿꮆwk R\—þí:Lù2æøàÏî3ÿ<£·c¿åBøÇFRG®{!Àb§‰Sع5ovVyÓyÅÿÞYT5XÉ€8*s¨ç,ê;ɯÞPójþZ1D\V«²Êmô»ëèˆõY»«ZÑÔ_}WšÁg~Gõ–üc¢x¯W몷Ånú·ç’Yá?¢‡³ ÕQ‡·Ž»Þ‘ =ÕáWÕêøžÄz—¤ª¢f¢S”®¼zçÆbø…?w»:HP:"”†ú-áM,},þ®,G_åv°üQ©L#®â?úÓß!§A{…ÿHÏÇóY-P£K`2výùé&#¿7§•ãä*2ZÊ‚äEygÒ°ÚN|HECGaÕ·àݦÀ?¤Ð}µÈºyjð=­XçzÿèÃñÜp!ŽR ?_Ä:Y=ƒáN…ÄSyV4𠺪\Q=#oÑL"­ãðÁŸesr¬Éx¶K¼7=Ñ â ì¾è;a@V“•uÑkÊX"¼ÊÚTj\Pè×zrøáºèÞÁÇ$*¼¢uR¿ vˆ@øó~Øf»Ûï_ø)ä ¬üÉpòJVÑJžE <F· ñv .¿?Qp2Žxñúøwò'Ø¢¥x½±ø"›Y9DÿݰüG­…,EV›±{vŸ{¹lò59À¯†‚ç8@sJ˜ùÍéx,»ßú"r…%° •˜W´<̳x^ÄåôÒü»ÝCk ñÁ ¢íx N‹Í;ô/Édu´î¾Fwó!õ&þCÅ“LbíYøë§øîï².Êó&lÕß“÷låš}õ§ÔŸû˜óÈ?ú£GÊOÿÝ Ž&Ü„Ùmlz¢…­äR“Q| ßãûêH…üU*οà;1·®+Ϙ1y¦*=Ow 6c ,n }œÓ|PO‹‡p,¥uÞ(àHNÒ þ<osâØq¨Äӷí’rÂÿèƒdê,µ«ódâ‚]§v~½_Y\ýJÿÝ-ZvÑ_œSmtô¢2†yèþZlñJMMÿ‘ Œh=Þã#he^}›ð×¾ªeÕÂC&•ÉdQ5ÒÎM¡w]›Kl:ƒü£Q\yY_¾V{ie5=†ì&³`£û‰ÐqèŸþìO:×ÇÁo‘ÑÔ%†ËN„ÒU¿..\„_> s£Ë$[Š…Á?áGåÑ_Å'‚¾"1¸» ú+û>ßPHÿ*ÿ b¦ƒÌ,‰ÜgÞWRÐgž÷(¶p-5Ô[ˆ»‡ðlÒOÿUpËÈz'‚iiXÈ<Òx£;ð13Ñûì g¿úJ]]˜é ¬º†·Èžì½ÿqM>~â’ÿ¾tS½¨fÕÓ’Åÿ…jé0,Ì› ÿá…gÛ ò;œwõØÈ Îa¹î‹¥ï»â&“ï¿—ñ÷/TqúËw¨”§SIr„}¸q‡3ö^…UzId½^z$Þ½=:/þ+«¯ Ǹ+ è_r ÙbМÏtKIöÐÐr|ÐWŸjp¹t/¹7òœa.þý?~ÁC¤ú©ôíOÙ-E¢kO*¿b­w³Ú'˜ÛÚ°©Óè^Šè¾ˆÌl}RØÚ…h¥èûadÐGÉéaÞÂéÚWÔˆ¿ã¶¢ƒZŒ2â.½=âá}¼É?˜N¯ïy–7ú«ð罨4ÈN¥É%´±%ᇦ귨qxJbQ‘ÓÝžRŠõz¿>g_åÌòêÏ}©Z˃Ҷ…ÙÿQ˜gg)«/'?zÏSêž>äzMð½2“›èw½ ?}›qÄ\JåúJúg=®¦¥ L2ÜÌRóùG70¦–ìo1ž+jAõ[°¶°š²\]ÇÓ:žº›‰dÛe}åaÔ4 "_‡Ú¶½níúúTl쥮°¿ÉžÀõƒ«ÉߤëÁš=å‹È›t€{ÿшMœ_ÞØÚàùÇlr®5TŠoÅâ_³>Ó¿d (ÙÖds<Š=ÿÃüï$¨ù,çõŽV;ˆøjÜýcÔüœڱŽQ̬CSÛé±þ«ãì¼Ýs¡Žû Úû´¢™~‰Cº¾Õé?žª‡Å%Ù»Ô¥åSYÂñ»ã<Ïø°I*I9&ÐÑ=üy¦ô´r¡„^c°Ú9Ÿ,¨)ùk,y:ä ù—>ÎL_ƒ`ÏúEÉa÷¢È6dן»Pk^AÌ׃ê?ž*½´ô/qažTÂhί£Ûe6ýüyKæ=ÅnÚµ*ÕèÍe%z4ÿ©cö?ïï¦æCmÙ|Yû²XŸ*£\¯}‘㙵°€ç³’>Eôv>!ÿ´Vc*yÛ‹TÛÁ¾×)÷‚âç9ÉelÎY =J6cÿi¡ÿóoåÅ+ñQxãÓQ•›Ðñm$þ¾ÌW“å7oº@–T]F®9{£¤×oÊÒAæ’ÀXLŒÔ“*½Eä2ûôNð´WèÕ¹y8‘¢oÖ"CÄ.kõïèF{q½¾Ôk CmpÞÑ|Æ;r/þø‘Õ`Iýe€ÈþeW©­A`΢3hú÷evbôíXÙ#x¨õؽ@¼”;9hÈ"Na>¾>»¯ws ª¸®K6w ~°í¹ÃéñêiAº‹ÈÌ2úÕíèDGò5Á~ǧ¿| òž³áøú—L“÷±Ï“¹Ÿ Œ» 5ù¯šÐ^äEyŒ¶ú8z›_$ÂýÌ=šƒzw5^ÙV` > Û5n„ÖFÖâÚÜÐk‡=8Ì ï0Ñý_ø³p Š•ƒ˜´#ó?V²þ 2ýð›Àœ*Ó?1ô´'EÙò959TYläRxÈÎ2&˜üßTµëô/™ÂÓÔLôdò‡ÃÓÚM‡’T†6$»JïF?€7L–°fÙôM?á.a7쭡ߢ¯)W{ p6WWN¦5]Ëɶr†›Q˽»"o‹oJŠîÌM%P€E}Åß‘Å&zjNv0- óçyÈ×guø¢DX'Y¡t(»->O¤–We*£|Nj0¶™xr`<'ð›ûéTRGþÝ; Îև̤+q_2Þ¶Äx+©ÿ¼Ü*üÇ ù€\rÖÌa|Ãç”&oË‹míŽ%émŒ§ß­]í}Ÿ(û3~m"ʶ‰xæL7{¯*a®¹ÖD¢ö~>{x£Cä–/¨ÏŽÍ›K¯¾” M±ˆ«Èåžóyò};áÏÿÒ[…¨vþÏ^i ÈûZÀçûàgö£ˆƒ€ö7D ;š(wœoqêÏ èzEÔþ O¨Ã{ÄÏÄë¿¡’±WÌ!Z“C=$j)NNÑ“»÷ÀXF·¾'ôk/ R’ÃqUk/ó=øÕtºŽäå9\v¶/ò¿î¥…öGùä3¸ø»°VãÀ¥Îq/½ØÓ´ªæyk'6PÃF/4qôOünt‚åîv ­Ø÷<ò£ó¦ÔTæ©W©ü˜ÎUÌà·Æ¸Ò¿¤þ£5òë™®1þA 2ŽX¤+¨è ¹ŒnðK­ãT_Þã^4¡KWcÇ\ú—$t4¢BÔ›Ù'C™»»Ì|γþFîã ÿïþúÿ‰þ* 3áú9Ÿ}µ_EÎÛÁyÔÇjFm¥VM4±‚Ô}?”¶Ôƒa‰—èw£×¿ä³Ò–þ‰iy×?Êièÿ½ñ PdÕ”idEQ>šúÝeÚ¬È$Y(ä È·åjõŒæB±“ñí‹bþQ‘Œ­¶¸5=MÄÛ$çÌÜrý­¸ðŒx?øÌ79.QÉ?bÒÿ* Ö% ù­6¦HF1²…½DüáVÞb¯o‚_ùµDÔY*ø–ìWFyð«ì…†èVµ'ì÷"ÃܼáUaûméÿ±O‹á¼÷Ák„ühºVº07üä-büT°)9Q¼e•¼Ä<‰—<±ö›¨ ôÄZ^‘¾Â5Bô±â¥¦BWs„w¨ ~".H{r¬`j—É^–R‡pþcùØÞ§ùôJ–âDÈ-ýŸÓ©YÄy… m4–uד þ#%1Ù-ö´FjT‰Í™ýÍhî3”;•B?Êó³õÙÏËMT*Ñ/ç(8ÕP"N\p þ°j†IàéïØÛR™ äáFL>›ˆwéÁ÷Öw‰?c.KäE9ð#ÉÔ.òû’"CÐá?¶¡@M.”ÅLƒÿ(B-f6lj~¸’5FQÆ›ÃÜ—ÝZæ¸T[†E]Mÿö»ØÖoTû¹cÌ@ò¸ ø^x—<è¯æ±^rã)Z©)àX}ˆ»ß¡:yÕoµZd3WÈ?Š1>G©œ‡Žk²á ·Š7|p ú¦,æú)ö0wàáL2³­ðñ[ÇÜ™ aøøx2€'îüÇ ÔÀ;ôÝø­àWó¨'¹BþáF/ÚVTMK©Ý»G¤PÕÕiø žx‘îÔŸk ›ÃŸïÓ ±÷û<³#ñõ¬¬V Ÿ[™úÁô—êG­÷ôSMÌyTŒ2ãŸ7û™æNôÝTú*çåž…ÿxÀ•ž@•R̬¤‘&~¡óf3QG±ÇœÇJgèžxVe7øÕm¬ý_æaÞ–‰`€®ÆâŽz28Ê.Ký° hWŒŸ3º¡î0Ó:º¢Z+JÇ’ÚÖGújD çâ¸E·ÇAXûßɹtS r»G¾U΃Ï\çÌ?¨ü.íîyAa·É]¦ þc# ù:¼Ûs®2õƒ›˜EÏ.ãýx™@ˆ²ëøÕg¹‹·ä0ÕØÿOêÏ2ÿ£›óÉŠƒú*l%­ó6DòAQ/¡-ÕJŠúèQ𲦡¶£úÜ 7™ÿ^Šˆ—Ôà†ƒo<¿jMm^Lq }W")è‡ôN¸0ÿ¼¤sׯü/´zòBÄNûõÆr-þc¬öÕÃTìm^XáºQœÿQŠzKW±•zîíä° À‰cMz‚¸¯$Šx/ó`;É‚bFð"üè›¶D$ÀŠ>áiX¡¯Ä6ÄÞMÃR_5Ò°Ñ®ô«ò“§dWY8ÒkÞ¦ì¤;‚ŸŒË“ä¶9q·ÄÒbåz ¤G‰ˆ·ê@ì¦ã™ïiI#Y±«Vš+uc+úYS½`¡™Ž¥ÿ‚Fé_‹ïpçL“‹Øõ êÝ"ì`à`†ê]™˜|¡¶Ë oôŠŽ5È/mL˅̨"8Êa¼Çb¼Þq¸•¶¼¥).„sz)¹ å9lù<Ç÷"ð L_$;pCÜ*îcíËcGÃRuå b ‹IÌèŽÿð¢ÿÕHy5Wg¿ßa8¦‚ivÁâO&‚ÿÆÞFœ€ÓÝ‚oÑéX³´º3ßSH_/âü„¦vÑÚËšèèRcqà?üPÂm#ÖXEÇ«ô s­ïÔž5’9O¿zÉo„&z˜‰ª÷ø©ârøØ\C&läPüÇ(”y#PXGµ‹ìMÏ¿!X—¥Fjj6ìþ%É™]±—ï-kÔÃ{Þ “Øþ£#QŠN´¾ˆšÉ“øÉpÕè µ%’=0££;™G)·Cx¡˜TúÇ¿­0nÇOÓ†‡zrr…K¼ä=X™v¼>ÆfôWm̦Fú_ͦZü83³ÜɈ|¨äÐÌ–Ü™®è¯ö“ß­!ÌbþGqe¸º^žz(ÙQcîZ&ôWe­¦mùÐ?Ñ“Jù¬oÖ$«= ;üGRs%ͼßI®¸‘S_â|f<•Ëø/<ÇCõTff¦WÖßQ]£Îü>¯‚=õ·®[1Ñ_í„©)d5§ò>3W|änªîGýG0º]Ym.~€­Wô2JÉ[ú2†¼ôo·»bÞ6}\ć8/@ÿæ[5­(,ó˜ãq":ôW÷ä,§ÿ¸¢n7dÞÒNÄKëäi3¿c ø™ÜÛp¥õð·¬$ôغn|%ûËšºõ?~Oú n©ˆ^û£¯ÊÖyÿ£ÒRW4Õù$ÄWKü×üG>õ»š^Ûÿ1œ|ÞÖïÞTZj‡µfØ>Vc«Ñë.¬¢qò`ZÔ')A8ŽŠ·Úµ½—sw• ʦªZ9箣r4›µáX—™ÒV­Ñ›È©r·ZO{+é³äJYm}OÑ7J+Öcþ` ± kzˆ'¨ þ£‚±ÍÐW± æ2‘õ+f˼£Cc%1> [Ë&¶‹$D–ãYÌ*ý#¶036•©gà<hI)pž‡hªzÊÈ{FžT.2Oñ§öDl#ÖÙÖ÷$Ú_C—DÆ!"Ød½ãÀœêw´ÈÐÊÑZEžùòÜ›­‹ÿˆƒþ€zÉ3{üj.<7³Ì½œo õåÕˆ4ÁiÔMêCù™JK˜]h_ðÖ4§*J¦T]‹3دäÏ.òÄù¨úé¿K-\ýU.¦x]{6%ìh?ö<çÀû>LNÿ«ËøxƒñÜ“–è&\ðo¾i[8þc½RCt•{ÉÆaÅ¿ó¦ â?²bÿËÃxd3ºð–žÆ›l1^£VžÌîFâcZƒî‰µ/aîôŸÌÿ(¢ö |ÁHr »ºÒž¬Š¾‰~LIýb%ÿHCä< Ý`%hI)¼Ã"ƒz¤ŸøõZ òjìc&øÐl~¿Ý¿ä)õL³5Ÿ¢"JJr/~¾ýw§ÀडZã,t)üÇ`øó`–ÓÞj,Që·–ì­¿qœqJÿaÌ„‹n€ÿñ OÞ^þ|«QÁÂ>3Âæ{%,ÿYb†•ZËPoKQü‡BuÑc}øß:Ý×ð…?ïe¶CæpÌ€¯8ÁÜÀᨚfÁ(f}¾« œ½1¯ÜÌ(./;O°1õçK`Ôó4ŒDå[œ^·yÍðÐ_§Öf"ðŠø.äËஃ·éÙI>`ü‰?̬Ïw®wZ¹§]çŽÚ½,æ;&+”0ýKî  ›Dî6”ɵ{©Øx ~u{Oÿ«'üG6Îù«NA “WwWm‚mz€F¦ÎA㱸«SËãh€¸<õçn¬õŽôžèÃn³»°5 LÕŠk~áÉ<È{}BާÑ §ÿx¬nçàÏû ò˜ KÈü¨…Ö ³‡7ÝZZ3é}4ó?⃑ݠþ£ӀטÃÌ;܇WhӒƬXv^úÿüƒtô5VR|Q~}ˆl+ETEËHý¹ú]Mûƒ§Ëÿq‘îWšx­&S7E¶@¨ÿ¡4ó©ò(U"·—èw§©=èõM–¥»¸hMüjŸ6ÇC×}¸‡]ä\‚ŠÚ9 +–K)æ‡z#Bm'Ä'åð¸9„J<âÁ†°† x_úéwÄ^búóDä¯e#lãÙFÌ ñs}øI;ƒÿhsr c÷OÜA¥Ûlìòyp0»nÖ*Ó@QÒöÊÿü?åÕƒç¨y„µZ ÖÔüƒØb7T6Çõjü÷Lp/j¥{?ÕM‡]}¨V $©vòïŸÞ'ÈnêiÈe¾pÙ³=K);²¾~GÞÅ"ÔïÆG+nçîÄYMñ9º/ÔÑK‚딀ñNO}·üù Þ¡y`e—ÈDl–!/ùǃ°Ûâs©æ~òÈÝ‘ðå èžX’LÄ—Üa;ˆçlñ Ô»Zoü<ó9õe¨{¾‡’Úü„MN 'èçÕƒk‘Zp•°½Õ$¢4‘ÅV˜¬ÊDøÉ?ÞÓ“v—Ù‹üc:s8 G^GbÑ_í :>™ÇYЫðt+© VýÛë%•ËÈûx+zâ6ê7Œý(„Úšý®æ+ô»9©ê^Ä £&î5£Øâ<òL´¾éqŒ_•QFà? àwŸêCÈOÊ¢Ø(ЙΆùAtŽ‘/d° Á'´êÚÓÙ™_›“ù&œ^<ó#•íãìzp¼züã)Ú§³àWÙÍ_ôžàW—"¨®2Zcáå—Ð k 3©¬$Ö¦á^AsÛÕôgþÇ,N¸¥± OEì/QÿaÂŽUã­ßòvKßj¦t$¥ÿn:&žå:uÇQª6ÞX*þiHVmð«XæWÞñ;Ä2{doz^,rúûê øóv¬6˜§j¥  Ê\kZ³{ÔêWÇ+UtÌ££¯ ÿqÐxÁÛ¦ÖTÛ‰…_ÊÍøzDsñeô&ôÙwíÿþ¹è ²Ôù¬ æŸçw~½ÕSÄ£_b.ôWZPwÎsн¯.i1Ä]êJÂã@#þ †Z^,EE{ÕP¿&¤˜ N€gz,—ñdú—ü­}îÖF‚ä씥ÀÆÑ{ŽœLýÇÙ›i2±bYÐïŽÒŠå9±Âä¯Aoj`™äÍx2OS2 ›?—ÚºtŠ$kŠÕ_ ó_ÞiîB²R<ã6uQÜ,ûÜ Î»ùG#/ÞèUä­Šþçÿ¹+Û™‘rÿq&~ øJcTSƒ@‹Ü©“axc!7¡'™@Äîªß´~p„VOSÙ=ÐŽ8DO¶á ¤8ðàw°¡¶Þö08Ï^¬Û]øóBf°)Ô5êE™È؉7ªÅÏ%$ÿèÌO-Ñ‹°ÓœT.ÿeÜÄsL½ÛÌInƳtוºîm|õY©?¿,/ão£sÚB~UžLÍÎD^ãÏòÐIþ"sO#•Ñ;oÏéHŒçˆMfçŽÿð¤þ£·¼„_`ØóÏoð.×À뤅È .“Öè òwNw©ñ i-žÞVNÚþã2ùÇëà}ÔA«N¯Æ|ÔpnU)Ò¹ Öº0Ý­Ò‘쥫…EW‹£øâær¸€x0 s¨ÕØN>‘…š¤¹aîôNí‘TSXñ5ø/c8÷`1øÏE"dzCí4 ¢õ%;r3?“¤æ¹Il¾Àæ×0ÁÌ> %Úü¦UáêV ”…%±ýÇüгx-•™O¬ÚŽvxŽŠTœ†¡ù®ïÀšîÁ¿=å|7i¡«¥’ÈmàW—°ÒÃð +ô£tÓò4;™ÃŒ¾¦á˜IµßfôM6§ké8ò„¼¨&š„û\Á®§(Ppõ[øu(Fã©'r?ŠÃZå„uï@w’ÔWì²XyðH™ˆÒËŸ/€ñ.†Þ¶3¾5¾©&Zšó?Î*Úpaoühvó7ÞþÏtkIß]:Á;ÌyIÅË,ë.uˆ;Ð_y™UèË{‡Ê¡E̯ >ú…~G­œw¤þCã™cb&Ži‰È?’G“?Mô%ò«LÔƒj°÷ÚBµ¯ú–¹-9d"™_´´r!ôémÐúÍoÁSËi%'ÉÅÔŸßÇ럑פ]ÞQ„Õ܇^áïϪñ&æG`Ê×2¹-ë:rÈkƒš¿3äÈñAµ~ct þþ¡øû£¶_$ÄÊ'äí[ ô ü* Ñôl8ïAº=‡ÔË4P6wÞ©ˆôP¶‚^]Ãó~eÙŒjôOâüÞìuøKJãîäÓáÓ3PEœ/’{‚“ŸÃÚ×Û‹‚©!sc»âac¿ãSìþík±ùiaUªRÿñPdÐHu•z[&aWñg-xŒÆÊu¸VWãÜw7ð«óTeNç+[`Ð=ñL#õ¤øá\n:4H»Ç4<šï’+ït~î5{ra¾Â]ò:p62ðÈ[*¼p2v^ýà*%øÕ1ŠAàçHÌ@¬u_=ño%"îDtÑsö/ Zà^-ÂÃÏã\í ä8ýK‚«þ³Õ’ZsYl+ öq.yÕ9r®õ EÛñYÌýpÀñ¬’°Ó)‚æÔå7¦ÃÖ—!»ñ3réíBTüg½=Z Ðæ }‹‰×׃É]@¿«båN›ÀðOÒÿê€åƒÖë,è4²®ÜÔ¦?mªdô'ù †VÇn<ë¹’†7çä«?§ÿîõŠÓ“øw î•ÍÝFyæ×ž Š_goøÍ{ñŸ;™<Ö=Ô“óYì#ã½Ç£ÁfÒÿj/õƒ}Ì1F3üÆ|¢Ó=× ºÄ¿"CêŽ]„Öö2µƒçQbÕ Á´¡ÿî<å0¸¿1|Wm.¶õ¹PÄxuõƒéßž˜ÉLÍ5×hís ùG}˜‚/¶©©J?‚ÊÚkâßp*°==İ(­XŠË’bZ“SdFµÉꇱ"—Ä:,ÊUþ3x²ÑÿªQ”êc‹CÂÁ5Æ6Nóô¬A#~œ¸ÕÆ×/3kTT"ƒxEþÑ5 øÕ>Å—[2 SJ,uclN ò¢]ÄòeéŸx\`ˆ–Ý¿=î§E¦¡•ã)-ÏNžÀ*¤„1~%³ð.þ—"Ps-#¯YíÎol';&o‰ò U/ð«ŒÄî]È@lÿñ^Ö%ZDft.+mé|aϯµ9o<ñòÉô x¥…ÇŸgRó2µíÌýxêÝì¢$9L6Tqïè¯QWÎOÁzÀLÁûµC…‘|-%×}5œüÃ[É)êÉ«TaL'ˆÅ•‚óé€?YŠ=ÔÀÿ›Â]â_×oèµ?Ÿ;µœ¬³'¼Æyæ|ó²4¦~Ðîæ˜‰ÓÀ¥®k,€5:I~Pÿ1‹™GÕÍÛFfòÕFUð‡$ØúßáéôŠrZ˜gq»M_ ”jk© Ü`LàIf¼D‡z†I¯°3¹a•ïà[JcDZZli ùNcr•6º¡-µ¢.ªólxe”„Ÿ úøÉ@§kv‡ß_zïâ°éåO=ÈpøóœxÙF ¹Â>¬útý‘¬Ú´/=†Üu U›¾Kß ~5…É…]Œ?Íôk*«°ý^êªÞd48Ïc`mžt®j(¯:O°.þcú«~Æ 4máÏÓÀ[\5[ÒO*3™Ö ôÀ9èÿ üª»s§—qIÓÿ±mÛ%jÛqô©Îõn(—àÏ?ÀŸOdhÜQ£ýsPHýG Çnz<^æóÃàW§ÌüÔwŸ r[NÆUžçë“ü-Ļ窧_U>žªÁè>Šý¨™Ú‘›©V…QgÆ_|ƒ?L¢[£QJ §»c +‘VáGD´~ëÏçß¼¡žOäPòˆþàÏ¥?óÏgÑ?±>XÝzüG!ê×;ÖZ¦£µú7ÔóPÜ]‰¿‡ÿ¢w7¾Ð¿5z ¥¿ûÿÝß¿—Œr>Yµ´ZÈùYôV.¢Þ£~p«VZ´qµÚ¬òEizuMûª}¤¾Ê;ZËÅ¢:l-j}AôÜD?+k³ñtoQüg—±ð5ø–hüoƒ6¶ÂS–á)ZM}Ö_r¼Z“üÅ5‘}3ë"tG†ˆ¯¨NA¿w}“ÿxË;½žÞ‰µp ×°)?Èr~зI”üÇ[m®ˆ‹ÇyID¹–È.†±.`öð$ÖIAƒRð‚]‘CG´»íÊéþ*1«åGyØ‹o{û‚ÃæŸ§öv _ :ô‹ åäÿ?âÎ.‹.}ÿÏÌ9ækwwwwww×k+vwww bw7bX˜Ø](Šèÿ;ìú‚»ÿß®ïgW@8œ™9sÇu]÷}÷T등U ϺEŒŸ”H^ÃJ{cµ“0¿öVÔšÃwÏ Ò:/}Eq%Sk~µÅÄŸëNÞ±ž•¾É¶ø¦…° –æ¬/ö]r*ĉ½Y{ ž|@ ¯I&%“°¡Q‹I÷ãܬ¶ ÔÏBŒ˜ÉÆO׿²t¬mQÆwÃ[YsÖÓñ¶ÙñN§ÂñÛÈ?úK/-Ö/þâ6WjMèË‚ÿ¨„bµÞ…(ï>é^Ý—Š˜õxkbuwNçiú—èa®¹šÚ †µ÷|;V¨¬~Ÿõ“¥í@_[ ѰöÂàWÙ¨™Ž1°÷sÐïΛÊÁ„öÐÕÌòT?ÃýWÁ-eÅh‚n¼'#8¢Ÿa"Óbfó Ý@ÊÁŸCµœ[zoSýYíS”Ú:;þjy¼£´}:2Šº—¦P‡¸Åè„^÷ÈN*ûcøó.¨š*À‚Ã3ø¾gx®=úkNémµO¨+Ž'ܵÚ žâí8:Ý5àW“èlÚçSþÌð0ÛôM°ýŸÈ?ªã^¡ˆžŽi¤7 ÁŸ·´ â?¦Ñ)fþ¯ŽLª¿êF“Šz?K• V ]G*ãO¶P7žÛØJֱРO¼q[ÝЖ[—ôç6üÇ=®ô2Xc#ú«gÌÉ}Ï`Î ÒÂùâ‘–Áè¨faeƒÿ8Ã5£ &FÄ‘Zvr\oyú·¿“‰A^[kçé¼òX[kd´3›Ë~Ü8Ižôi õퟑ(%š™%èÙÓ°æGÆ>ì='LJð»˜'ÒôªoýyüjóÏ«Ò), “ãífkð«³ø"¦«~•p)”ó×DÂäjtt Ñk¿Æ0ÿº;ÿÙßIÑT†ˆ»™ÑÛÙïÁ﨩ÕUj ñ7ó<-uÔ=üÇõ¬ ~Óø3þ㇭ýK$ˆûgÙB»$ÞS¯Ôÿñ\æ”qe^1D-áxž‘íÌú÷ ê8lÖRYK³K«ÊÌóÅJJõ!YãjâõZX >"ô„¶ˆV­Œâ¹…8IþqŒ˜¶5oL}ð«! à›ÁCoa'd5,ôÙ+JŠºØÌ¯Í‰­’ ½®XÁjúIðª‰XÕ{àöN Íùá+ÞÐÇe¦é5¯·]¢RÄ[ÚðnAªá7’×\¯¯€Jãë'žšÈ×3kÔ,‘¬ØRmKD_…Öâ?sVÓb‡¿à/~²ãKð}[ƒüGbTU¥¨}!Š19ü{÷Õæ®\‘Y@ºZr½Öüï²%׸ ”è8èÒ½~`õ„·fŠÌÊ?ÐL¨^á,XRI-ÞKKq;‡íÁžçÁe„÷ dퟨ8ÎÁ£¶'¦wÆûµÃvdÄÄ˹ŽÿXFÿö…ò¬–Åkfx"_°Ã&ä ñ°!­È8„ÞœÒ u«fÓ¡½qáß{ó]WE¢ßôW…ÕöœÛbZnü þãù*`Eo@°.ƒ‘§3Ë¢5Íhä1–à?$YÏb˜û-Ä÷)艚í¶ÙÖÀŸ§£Ú¤,ɾk>Ïc(Ýa€Ù,Ã:ÆÒ\eþ‡;Ý}­î¶qP©(y]Á_úpßsjCÞÄçj ¬Õ ¼o>*ZFÁ;ù3©c3þã%•Ùç¨} 4»Ù+GõBL1߆7pñ×asÎà%iWÕà©AÖºNø@Þ…gdE–~× üj&èÿDôfïá PUá[}•ðWã Ú«ºä^¬8†ž0ƒtgùر½¶ÖŠ ObˆþÿÑUïÿ‘ž¢:•áU¨{ºIV3Tã5¶ÉÊhŽâñfëÔrÉ/êýp.7,Ôsy&,žp«æyXókÇ—³Ä"ÿ®t–Åïë‡ýNÌü(ƒÕ„ã?¶Øò‰¡ø¨›rƒõ?†Û¨OB @”š^‡ÌÍdÈŒ-6ø•+ùÄ`ö×A»N¼VU_í.³sG˜ëËŠeÁç¬>ÃùÀMŠ9èì±”š·â`ìyŒRÆR4´ŸøM«°€@“Rk›µ] ”N<Ë T[a9&ðUësvÏjÉa‰g“øhÀ¯¨Y£?×b§©ìqì…ì£É`Ê0Eð$ÌŒ’ìþé ñí³\a­ûM¸ÁP¿D5Íýr`õ—S9Ò•úÃ>ù/ར®ÝlP3ßOo‰2×—ücë¶ÄÇ™¾VKÏ¿?¢švŒ^EêØý¯FcêSSáw­m2êÏß¡lªBv'µ˜Á¯ò¼ãÀTÒ«èÑ´±ŽË=m» ~ 4w¨–ÁȯU–·µ3:Z[êÑ~²yËÜjNÄê;™‡aSn ¿H“Ïÿm,¸gÎÚùfÊ0xØ´à›Ñ)·”ðtFt{!ê?ê0UÒFw®f&?úFþ±eW9®9•ñvè4qÉé"ãi‹ùÇ}ô»ï¤5ál$Öi¶\mäµï'“iƒNϪûfmûTûi3ýwéïø-­Í ø«_Å3¹+Qƒx!Îÿ„ÿH *ÕFWòE¨¾t<Ž>È~¥©KÔLäNjuNë[uê¯Ñ¿]USÿ!ÿñÝVIL–~ô|*+iâ:‘ž(ïÅ)øO¢¤¨û‡õËÔÄâ.°^½Á¡+Ér‰C½);ikä>Y?5HwH‹àƒ¾Ü¾(³Øƒ;®Sv9æ/æçÝ ‚xÊë¿¡ªˆ £¨Î*ZŸg¬´«dõßÍr³ü£¨VB½(6û1ÈÙ/” o—lå <âw*³Q‹±® ‡ʾ¶‚ß§×éÒd)²¶c±ý"ÕU­Œ%o†ÜÇiÇŽ “7êÉb`£î³ßEømınÜ‹kô¿*þ[/ó_ûô·­P®K'òŽhw£*ûGþ1fúëGAóÝÕ£ ÜØMæ gDÏT—þ‰«Á÷š°÷wéß¾›þ%7Œ¬¦3βðìß“M­Dw“\ZŠ ü) t§r5-ØC_í²>QnA•Î^ŸÑ–çKž±b_ôW¦Ù þcœÙ܈iÆ5sr|‰èNS׿‡¾ã×z×”ä3ý°L¬:X¹ÀÈdßG%J/¸'Ø“ÒfSû,ûGørýšY–ŽZýÉÃüy~¯ðÝÁ¯Òè™åŸEè¿~ûöwZ4•“w&øUdŒjD¿/‡bª‰˜÷QTÌÙÕ6¬yÃV^õTªªBÁÞˆ~0ܯǢþ|+Qtb0òpCéÄúÌߦO>S\©ìniäzÙêhÐì}d afGS£½ ¶æªìE7šT ç¢G¼«ã>„þÙПUR– ÝBß],L+tXÐ®Ž¥ Ò^<ÓE¢Òwd9:6 ‡ˆ £¥‹ƒÂ$²´ª¯6Ó´ÑÏYý ½9 ¥X e,ªÐ1dè}ýã³6oé/ÝèõüÊ ^e+z°®ìk3é’éçñ*ñ(Óø¼°GŒäšÛ«åðcVŸáwðúñ±DVÞc§ ð‹á¸WY•Õ—¹O¤&+*É"Xó½íˆ³ŽÐ›}í„ÿxI¦Ö’5Šê_ðLÃàJ?â§V©ŸàîžámÚMý‡*^„s©)”ätH{ÝÝÅýÚÆõ”‡7Š‹msÒÏ Ø&|ˆGû‚ãŒaíŽp Ì¡›ÚRTX¿/·þ|š<÷žAÄ,q<||wòªÑ°úqÈI¬Ù×Q?íÇ·$ѧ‚CŒiëý}$ªŸÂ,ÙB­"‘ük7§¾~š¬Ç¹£™*IW3 ÚÓ{ÌB¯f̱·cÇÀ¸‘eÓÚÉuaîáõ­´:¾Zx½AÀ¯.Á-ûÀ‘ï#oøÀT×ìôÉð*k>¼)þw,« 8›“º9ÔŠï‰ æ’éF3£›–~]»IÿöíÆP8‰‰ôßmfOmŸJýGq¼ÀY8i'|Ó3Ö?Ç9=¤Ý£ž7ä%Ç# ê÷”‰|mˆRöãÕVSÿ± oy nºý†Ñý"õ ÆkvØJï…uþÄõ¸ñÜûȯŽåzп}Ml@ñ'„v¾ŠÒQ¼"­N¾pRŸ#=´nFú—Ìb.Ç9jþ†Ry¾…ª?z Œ :±³Y)‰qŒ@°no2ÿÃtOR´õÿáIýà 9µxÞ¬Ur—‘‚Šý½ð—a÷+Ÿ'¢ÉCªÐk˜›ô‹f^2ŽÔ~ ¾ò—ûˆ‹kãÝÓüOòôJßðÙB3ÇCôƒ‚t¿ŠOý`Y1‡ùç]Xå®­ þd‡ Bíq¤+„ü†÷¶*ÌŠò“*˜CÍE¼$£ª<^ò‹ˆ)3Š–jä½ B®ç¢ö€?ŸF&<4¸€Ä„·\ª7¾)ŽlB.šSë)‚û¸„üɰ7EqSÌ&¢÷áYÖ¯$ˆ~Gøóõ¶‰ÆuƒLŒ×ëAÿÄÙa8œÏS‹"ÖåÜûZ¬Û]"ðhÚtâÛ#A^å…Å Kf^v•µ"}6GÈ?ü@°üåUlß:,gs*6í¯£zM))úfìvg¬YnT49#Y±?:=DZ °çûñtäÒRàÕRaO’`I¬J]Aþã(Õžèw‹F˜Ä"p—qÈTšreëñd3|Ó ­¼î×Ü%ô-4AK‰ëwqõ‹ÀœÆÑïì³z*œû–^I~µ‹lc|‘Ø_>üTìÖßþù=¡æèwÇ€4t?ÒPÞÇçyí Ç,„?oïD¼nUcÜñª’º)Öý-ìu ø)Ø»{d….øÎ¬‰ªv.Îoþ£¹ÚXæÁCÇ„­‹VÕ›LÕªsñdF.z´Î¦2¬8º¦ÔFA4Neô¯ gSà"¦ÃŸÇ >)4Úd³­Ç(¬‘½ëZââÚuî— ’÷¢ÓÔ<’øÉN°¨*àWÃP7dÄ:»Ã×TЛƒÃý¤ö&äM4„5{y §!«µ?|@fpÀ(®èsá§¥ý“YÉ^ånE¦¤B¡žïW¿‘Ül“Ç‚»æY릖ôãÇ{Üqê¡/×Ù…~·›QfÍ?Ï ³¼žiçõ¥è¯ƒ1UÅÊßåjÿ¦ª¿ú«àùµÎ¶ÊrRônLhEýGIôRû™ä÷Á(o|€l!ªÖëô3ok}Mš+Xs>5÷ç`|œõÌš«ãrŸ£^;MUÐ9Þ|k~­b°€i¸g©?ŸÎ…NU›à?.ÁW4¶á¥b£»=…Ϝڡ6Wã%³†À¯+CÄ}²Áæd ½ôìr3ÝsÚ[ÃÔ¢’± }µ’ÚÏ1 ý=|ÍD>h&ášòƼ"›ÿ¶”)óþã±r‹I=xJÃxÏöÊ´(­Ê¡Ð­K÷ÅÆ[f|1ØgÏ4 C¿7ÌOêÚç¹¢7ÒâÏ» ×Ž)ÿý¯‘tuœ,SÉño÷OÌÿ‘Hݧ ÅÅb·Ðw½zþã95;Ï3*ÄCã0ߪ»VµÉtoï­4‚ÿ8,cI) ¡ßý3?·Yí ^³„Lc,~$³ßPò«÷P^%“drlYý(ö¿ªO| 1—,æ¼raÞAÎYÇ=òk%oú¦=åS£p©qé¿›{ú ¸»t™È<À4ÎZr’ÍX®ôë<ÂüÚÈ{F¶]–—™"ÐÂÄÙ©AޤkcðIËР˜fÏý ûÂК{¤óû’œbwÙ×I:ævÁd!–‹âòŸ²üj-QS\} ýCöÉóÌÿˆ¿RwåžL à eÍüÄŸ/ij1­MmììN¸ŸàVÇñ"ù΄ðáù"Ô*<…˜pÙd YÙ­\(º\"^`¹[êñÉj£ „¯?‹gŸ®ÿØe+'zÀÆ'§wR ØlOÞåÒ` L§‚•ø†Þ,Ý×}¨(ñÀ~úñŒÖá•[q…µâËoõƒMÈ?˜þA_°å¬˜Ÿù7¹eâíFVbÞÄãÅŒ£ø\X¾,dsq`±c±Àð5gعÐGg+ú+…ë°4¥ÝAºÀ6ô¢Vü+ÛÙHÿÝUL§[E¿ªw0ÑaŸ`ï'¡Bm͹|¡l µâ{ÕÒîGP–¸#üÌ=ð«F- ¥Ä÷¹À¯ŠÚ€ •‡aØBý‹J~t’»±\¿€îçz–;Ôa¢4Ýšq<4îü¹‹1ŽnëͨŒaŸD½ø˜ä…ÆNýµtïɸ*“ƒ\¤Ø0ò&zÝüG[ e øÕâ“¶°áå@™ üDg¦ÃÚQuÝ2gÂx䢯b(Ò{cµ™ÚŒn¬B¥0“Œì>kWÃ×î³ÝTœt2nÉr þÐH×’ÜðçWTû¹˜]°û }¥VÐå1€î„Gt2[šrdS^Ì?®·Ï§Œ#ÿHI6Ø œ¯è¢{Áä2WÓiÄ‹Y^“©÷»D/Åh$Æ3 ½»© ¯ÖÏTÛ#Û+Ýa@–;üÇ å(þh8Y¢õLüäUÔÀ‰P×1®§ŒxÊâöô/‰Iÿ«Õúú'ޤ>~©áÅ;òR®" n¡ÿÐbÊàŽ-!ŸÌÿíljáÏ9NB"¥´’ÁñÙŸýf«{IØŽº¢šøÆ¬@›M0áÏM½ËL©T%þ:WT©-fà=îÐ÷É-«ÚWé­Ä†ëNƒ©JþÑüöyM­Bâ£Ò“³rÔ îRZ3Sº€V˜¸>~¼­îP𯮼]œæˆeıVw’ØwæÌÀŸä‘›°úó©W™‚^䚬FÝô”µÐ?ÿ-…8%’ÐÇÔo‚)Íæ ÜŠ…Óp‚ó~œ"ú‹ò ~3}¤×lWNái>gà}žCŒT ;=h~õ ‰°Ó&þã½´úïž“Û#í¿»\m„µhúóï–á u |$.jà®w9wàÓww’'Õm‰Ö.üËþbû¢¼•™±÷ƒÁý¨´‡¥iJn³‰þWî0ý#ˆƒ}±ÿsðJ.ø—ÉèÆÚ0 ê©z&œKÐEF…íPàÇ˰Çíèw j©ñsïøéUâµxL¤Þ6ÜšvØž\!6ó­Ràgz‡“xÚ ¢¿ºL^5+Œj^s6QüB,5™¾U~µôèù‡…4öá¿ÎD#{Å_ê÷0;ìHþ‘Œ|(%{p¦ã>Ïr#Ò¼ôüFЦ.ôüËLŒ›„)„SÁ5ö9 Ë; VYÂù„Õ^U¿HI–›üj,=£VÃT†?ðƒ“q¥‡ÓyòqæI,r#Øé†x÷b°×ÈVrP9_]ê”POå/Q‡»²‹+ÉAÎÓCg޼1. ž ëZòsôß­H4ÿ7^`=ùG¤c|ït0|4jÇPëIPœ7D;7à?ÚëgÁ¯ŽÓ{¶>xØßÆ=°¡œTå-•¾ªïÃâ"§kHæq$(;[ÓP.„þªŽm®²µÛ8ô»Áá:JW꽌*Äó…ŒcÔŽBÁZ•qQ³)Ý|ÇQgñ¿[ƒìèk–†¿:+—;žÈÛGõ ìÌ9žçwÝÙ?ûô°æw˜ÿÑÍòdúÁO…ãw§úo«1×\ ÞÿQy Ï9FÛ*ó…èNé'>‚d4µž§«²­ž[•rs¸w'üÐfêv30I}U Í”øXÆjƒÝÉîÊç2–6Îá?¾)—áÏGh£ð Èh¯ 쩨?¯†–ëw­“ÙÊ>Æ~½€aúégÍ^ä9ÃyV¾DYÏålEAžÉ‡ÿÉü¨TÊú9ýºÕÑ•bJd¿¾7ìß…é_RžyƒEOa¨–~÷­¯z\õU¿ªo‰IÝÃþÀ¿ü܉óˆ¢ýÈA’ ùQ¯TVIMÝq™XÅTqìú_.ôÏœ¤Ž¤ŠÁ•ÙÇ ±måDyŒiíþd=Ñ5U±j$Äè(­Øˆ:øîb5¹Ñ8Óî±Ë뉓ã‘Áo峺èË3ã†É2bn¶–M…89‰õKd ËQAîÖ2à‰6£…œ@q÷•Œâó£ÊDºÃ£¶Ÿp%eLl|RÝêTØDm Vu—V…7â±þ"¢–x'XЈlý¯ÏP-æ£ ÷ì¶:)Wü]ªÕ=1ñÙ» Äm)ql|ý$ñÿ}ê?J¡ÿõÓ¡ÿvR®)2'Qj?ü‡ÅâûËvtxܬÕ¿j«m£ªì)9¹Õ™p'×muIÿݘÂ;ôBAŸ¥U²ž!ŸšŠÿðÀ¦åÁN¦äçRbýÈ“â+önÊ¡¾xÑÖxhþ<+3å·?ÛmEÅyQË@ÌY3H™<Žüc6±Ázúü½)î…7‰AÏ­xžpèÌ€`ÞMØùQUéßž—è"%rÍO³† æ>xPª5ÐèÐ3Öb»  ôRøâìt¶ªÅú`÷~Ë?Nªzµ†ðçÖD¾uú\¬õt=½‘” d1==Îá?–_=Ä^Õû}ä‡ÉðÂûÕ¢ÉdÍ?LÿöX¢5z4ÞÙñ1È?Þë ±ré¨Ò|(¹ý=Ü;£·­ƒ¸L–bãJž’},c<¨y©¡{éü…ÿÀ§=KiÉ)ÛCW•íT.аͥ`¦™ mT«¦nX]N†ÀÇ{MíF_PMs\ímC”]œ±Q¨*ú_õåLEžÐœª ü¹'Ö9ŸYžü£5üùúïÞ·êBÈbvÃwŸåiUÐU-¸w©·ÍGõãJñ¼lF.Î ¬£ùÚÌä–hÒÝv3ëÙÌSè¯ÀöO§ÓJ ½gÜ¿ÉÔÅ’c§º Ò‡È¥8þ·¹Ö^¯%‘S¥¶o¯Y•rV˜øÄxßžL5ô#£ÛGa4‰Øh /+x¡Þ ”ÁüÇå¢À æ½h„ž'“ë›ËAÿVÀr,Du•”ùƒkðé ­ ÷dJiÌ%Æã¬æ ¢ÖîÄ%þZRùg ¥ß^ë ”MJpgI“:¿Èñˆ~Mqå©’¶£²((>*–~W(]é¿ûA}KÿöXʾˆ~0ܯgF5Ÿøô³tu?&ު딣J:;å—*ùG#ÕÊp¢þç©ÚërT¿ê¥u‘äFæèX•ɨ•êP‰ÐR„®¨hí’øAâ2yÁb…0¿ÅÀn‘?î$°8o_Y¾+ƒe¼(áWªð¥a;Lý8X}‰ä³áB—AH¾ÀŠ…My"ïr†#ǯLÅüÊD.mÍ.âîÅ a“Pæ»iÕñ(gÁ\¨G\¯³i>jdÙ¦‡Ú¿Q“u¾$&.@Æ`bŸrby|‰úWã‰6`g=yŸÞÓÿªk„øÕ7ò¼üþ}ä}¸{ØAs2›ƒàÑ/¹Ö=øWø¹•xÏ›ø«£Dù.Z3é§÷Ö ~*Y•ܨ`ÞM·Ú†ç­ÄÊ¢=¦6å@bJÅØŠŠ¯âwtÄó¥â)çÆGoÇ\³åàŒ’Á™” ðD›Y‰È.36dZ¦DT!v§¶î€ÏÁB¬©'‹ñ“Á_Q.ÜÆ6j+P{Rª¶Ãk\%“Ú¢'[a:ÎŒ&##ú«‚ÔŸÏ·l=z-<Àâç’Z“ßò7ÕOÆÅë–Àw¸’¥, Ö Cn]ã tžÛé»Ô¼®ßd¢ú r¨h(ÆœŒ+ ]5À_jkÊìP;4E#²R¦w3i.þã¾öRŸã½K âr„Ùç: ]É?ªýù9Á×v“ϸà½îóTî«-C­÷NláÄÝ!Þ™.µZÛEUÊR*æÒë ÔØþ…ð'àÕßÒ×q8^f¾x?• ë¨{©&Ï9m}ÛŒ üj1ú«AøóÎTÛešÅçKŸÄ=Æ&–¡Vï*úÛrèy7À:Ä3–£¿ZƒžëвDúm9ݱÞuú_ùi:ùÇ-µQ^«&/¡›ª ~U˜þ%çéß~›ú t­7©úžÎÔÙTtêòæ©§?~Q}‚¶]f”Áìhz°õ áå9Åçôò‚¶šþ‰™Á¬:\Á3½ 7ÏüZÕšˆz >õƒ_½Fæ¬Ý€ý0˜—ýkƒþÊfNòxb¥ÎÄRåú_­¤É`îÔtÙŠÙÅ>ß~ –¦œé¦¿‚=¯IßÇ9䛈gáS?ˆ¿ü/þVY.ôëj°çéŸýújÔþ.~•¶£žh*ž)5Xå§­ƒúD}Ãô'Š“r"jËüó»RÑcƒŒ¦E'Feºœø nA7›”:ºÒMD=µêíó¤ê }L–Â:Íbe[¹†þ»²l·7ÿoj#¢8°8Läßâ 'áþÙw°’þûMîÁêŸ'ý,ëU”)Å¢(\sBqBäÂzª¬² ŒÃÒ_Õ!ò]ÅÛ8‚Œ÷&˜þw2^?xþÈs®xÊ}yš B'¸:´:ÄÝÍÑ–Í€•?ªÕ WÅrÝU`lëÐnh¨hFr·¨­ƒð«VdVÞ0çcƒ­‰Àbë7`‘—Ã@E{+ýV>õ#œ •·J|ôR»ñà݈ßà?ÚònbåËÄs«±)WÀt]P6]äîzà›Öò¶û©Ç¹ù™?xSúbçå©f/JÀOÙ@lììä#–»3–¯'v¼‘Bü[1ü¨[8þÃÍ–E ¦†:#Ñx!²«7øð a<ÚÃÙñBÍõçäǰŸ’Ì5ìsOh¨¦ÈøêÏ0;ì®VçÜÖÒÊP·„ˆø¶a#ï¹7zÖ°©‹‰MSÝ—E5ðÏÜ—•0¿;@ rÓ}eS˜çrMðXuy¦k±÷ ð (ŒÉf>aƒçÒÛã=7ZÓ÷õâÏðšÑñþ¬5þ`5*NêôP+:‰Ä>GàÈ Ñå¥üÌ} ÓŠ&ÀÈ Ini&³W16Q¿Ñ‡Þ„YxÚëñ~óÙ¥çüL˜üßÄ÷Zó£Þ`ñ»£ßCýù.&°ŽO;OgÁÒôÙ~5!h~í'žKk<Ç#ØønøÃ zuyÁqÛÛæ)LÏ»N6Ó n$+º©L•Õé²ßð¦V¼"+‚ e¥GÔbfq%56°â滓?æÖŸÈ`íãcÛ%õ zû–¥5Ò ¾|¡=Ò3‘45gÓe¥Â68þK¬³ 5¯ÜvÔ±âü¼‚K…ÿH+ƒÕ™9•ô¿JA]Õñ 0;¤U·¶• ¢5òR“úÁAL:½(;‚ÌŒˆ"~U•úóÊb+ê+O,f7êÜÊ Õ^ˆàDWÐì|‘õy×çÃòsx_|\qT$â]Ž®ŸÇ¬CÇ»5Øbm)HL/XR©W„)xÌ”öaQÈ?ŽÚîÁ”xñéð-`Ðcb?nbïJÃZœÆZ§n-¿¥°ö"Ò.ÆëðÇAþêÐïüygº³äÃJÄã±éÞì>šs\Δ^.ò»¨®äŠàÉ$SN)~2YQoÎüj5l¬WŒw&–"1‘k òû“0ý³@±î€Š­!7) ~w–ÜéCæ³%Ù!î\úæ"K À÷–SÅ=,m#,ßô^–§O·ÒØÌ áøcàW}¥lÀTyÍ—è¼*O5¸zstkõB¨ÄÀŸ¯§ÿ•'þc³y‘úÄ*ä½á?²2£õþ®®Þ‹;M ];üª;ÑŽ+› ‡}]»Cg‘†3ùÇLs'܇ݞÓ^—ê’âä§é颰·[°/ëÀƒ|†žE“™è)(üSôWÍõåØÕthêbôÒ¢ šŒµ÷¡²{ˆÚ(ã£á*U—äÞx(k6¤Š"˜ãÊþjžrŒ~o4T/K¬Ÿƒ+l NU~WçÉ?òšÉ©ÒsfþÇXüÒur¹­¬9S·Ñ³¥Œk¢Ms¼r‡è_ò”3{˜s—ÝȦ哂'Y Õn2æÞàY|57¢žºˆOw Rs¥`>ìSNã44ͨÕ<~·¯ãTסþã›´f:÷¡Ž½œÜ@ÿ]?jÙ]àôßeÐÁ æ $ÿxfL3¦¢ë-H‡€DFtý;QÑXX¸CăÁó£¬þ»ävמ3¿Ln bß­AÔ[.¨ž›ÐÉw‚Ý…õ*˜wôëøÎ”Ì·šd¼áÔ?‘[ØE-4åÿ¢ÿUN¦!MsÜ©”ø·ë?r¢ßM¬žR«ŠéB¨uXóZPýÇiU§ÿ®©„§¡q<âß>xg«Cý`t캿l¤-1EOp¶×ôOÌ#cË¢—Zαëß~8œ/ìQûƒ`ì‘5°ÑûµÒUnQjPÓÛR[k1 ]£8ÿ£¼²ä}+¸Õ=âKÐ*tMˆVïŠýd çèy¡SÇ¡F±z”üGlqU8lÛ±›±|ïðp:§l*ÈUwØ„zq²™ w“Cô烾äCýÇMyJÚY'–ºÈÎ.€ž”†>Dý‡U«‹±ù%µË‘újS¾³¾÷×f²#•8ÿz«ïXQX‡yäît›8AnrO~d~TDþ#ŽrZyƒþŠþÇìk7œÓ ôWÉaRã×r0_¼qÔn²¥…<£‡øù]0!Å¥]÷f ¾î¼øy Å5û|ï*˜”ŒdHPéËâ9‘W˜ßnøùμíéàgcE«ÿ8ÂüónÒ þc:(Òwíþ¦&˜SZlH+°¹¸zAê/ïà?VP£"õMä]ð –BL‘þŠæ4öWqÖJp·÷ÀAäc…†dS9ð>éX2.À[x‹î¶åŒ…ð#?ù·¥èÏv€ßç¢þc]˜õ ñ=•ž<K <•Œ5#ó~-ØýÕüGÞRêmä)í3Þíä0]™?xÏ8rw+ãó ,÷ê5ŠÍú¬º¢Ô÷~QÿñN96ÿÑ…“»V®7Êõoï†&ÛŽ&¸®YÂ>Ö~~_yÑïî2ÿ2KR?˸Oþ ]ÈËÁÉÅ’î¿6ø_ü; ókƒ# ‹ÿÈä¸O¶ÒŠÎüÚƒj±ZhAìÄe[+ºïz’ø)±ÿÐ|· â?b¢=ªÍüó/êLòTg!ÿ("ºþaÿÝ…ê4¢ðÍ` ‡°w ä¹\É©Z]/ŸW…yÊ„‘¨\q:Ñ5ëQ*ÞÄvTG(‡î­=Û‰èÎ`wžÉ DêÃAÙVFaÁäÌ?Ï»SŠí\Å[x„ߊmïae߃sgÁ|‚¥ùƒOÑ<ûây?i¹ˆ’›CÇ k`.V“üc/Xé>NÝ|bû\tQL-1Zmƒ-o”œåª:Â$…£¶ã‹bau–°òö^߯uPúÓ%ÂÎÊ-ÅG¤:c ïÞibƒ¯ÜÿÆØâœXŠø`MA@â3ÖbÙâ–å@Ì­ßÐJ2ñÄ)µ¾ ̃}ä)f„‹yÅüNÿÝ» G]éÙÒ/Õ,09onFòÛáøUàWÎÔ%ÿ¨Á•Ýç T"^MKß^·úÊ–çþ=Ár»ß8ÿ¯@IƒzÏôV¼S‚§¯þc‡¨ÿ(®–±œüã,¶a!¾=(øÕ lÞO:_ÑéàÏKR?ìD¶T{ïNþQU. s¯ª*ÜNÔs XošÒgô{ñÃ1_İ£ŽÍGò]ì®$ZÖ!°Ýéa×oÂw·ÁÖüÂôoT›cwÎÂÄ'v„û„RjùBo'ŠY'¿QŸôkƒ¾Ê N²…_ æônÁØQ[í4ZqN1ݪ žc¤}±YžúWúôX¹ñÄ+È?­emNý`€ø3…Ò¯ßþŸýkØÃqg$½'"StFôûJ“ä£~°‘ ~eeÏl-©?÷P ñ’þ%'#úÁp¿nWÚ0ÿÃÄZ}ƒóvOèÝ]ù*Îщ?!ø•³ZɱëpóÅ5êp,énYï’CÍÇØþg²5sf·ËŠ`=E0Žæ‡C}Z•7±¹pg¿@þÑT§ü:hÄ)¶x)ÖûAÿÄQê¿_°p6¸ãMDó÷‰Ìsa½&à‹êÄžD§Rûºl'­ªÌýçüÇ=zÄמS­æ¦Tnwìëb8n“¯$…Ýü)§a£Sà?’F²âTµ>ž¦.~ã.Õ‚‰ñ˜`@·ðÅ› Á^ò¸–Rg²ºvYÞ•”Œ¬M¹©¼“ õØÝNøñ”Ú'ô»%á¡Óc¯“¢mD|¶K[À]8Œ÷\E Æ<êÏ?ªÏ¹è‚JJñVz£¥OþaÍWÌ ^”˜'ð€kû!ÆÃL¤ûÄ?üG[<ô_Ä‘ ðvîáø¶ü𞨠˜øóQ\Ï8tKÙ•Ð_“K”!ZžJ´~ ¤ßÔm2w·#'À‡ú°ý+¨=ñUEÁ×€eóiÏuf…ÿ(Ör +¥`ûÎë)aÓçÃñkÔ€,–/%ÿH­µú-ÿ8ª*°E-9k³ðpKÑ_=ÅR?¥¾í*JYIÏæ|ó!ÙQ~ã È ÿñë<5’…±…Õ_½Vk²÷SÔíÃoõæé=×ÇS…ØNÿ‹Ùì(FýéšÑÓØO‡®.†;÷äIö³Þ2°®=ÚµC¨§ì'<4…è9*5g};q¹ “{Åô&Æ3s ýÛïÑÉc3צZøá±Êá—=È·úâ«2#ê¦ã7¥þc9•ÿ“ÉÈûàe:Ð92)9[3øt¨ºNa ãA^ÓªÕñ3éÞýUSvçO>–C/«3Ö±Þ]›§zSÓÈŠiy¼dwO´õz)ì|"ê?<Á¯n²â üG"j?Ör/S“—\F™6™ÇÍ9_wàσ߽’J+ê5Róô{kì|ýwïRå· •òEØÕø#OjT>áŸf³;³5“ÑŒúG²Æiti8 B0Öá?+ˆ‹Éñûsî×ÉåT\º0E· ŒW‚ÚåMew7u{Mó°~Ì«¡9Ô˜n|àÌ…}éÍÉüLÇ…?›Ðç¸=ÿÑ)¨Kî8 ј~žÍñÙŸ-\JñWŠ¡ßm$&ˆAÖý–­…z’‰„:xVteÿ-Mi/ÖR‡À¤àÚFá©öPª)ÔŸ§–ñd%Ñçõ»sð©Î„ÿŸ&ÒLî¦ÉkI&W“/$Ò&ˆ`ï_mµ¥²\©„¯¸HþÑ q“¾ÿá'v&*¹,+¡ßí)kŠùÿj¡þ[L±]$‡OþÂz{±˜%ô5x³‘œ³KØ‹xÔÜ…Ëò.u*õ"}6[é_â" H‚ÕW¾.ÖØª??B,Ÿœa?þh˜àXll^í±š=’G©­Àäs¥×ÙOBþŽK=ÊC¬v4,Š«oÂ"ï$²>Äïº+ßÑ7¢5íÊæ×f%+ê‹ÿ8H6(;ÁMg§‡ñ}Ð_ã·-ä¿£ÜõpâKèµÿQ o²sn%>ók¯’!Œƒ½:‹ÏIObç瞢±z&æ‰ËÄÊ­ÑïàMoŒÏr [o†ã?¶Ú*0¿ö8Ül,®@OÜÑþ|>è5¨X)­8ˆÐ|øŒg¨,}Ãp®¢OîõN~ažtQµ¹nATuëÈ‚òèžìÁ…lä®,j©ñà9©ŒKô¿*l,Bã£0§}1ÈÙ<|Tl­y´ä oQ£a+°Ÿ™(Ä–Qz›üã3øÕ&:þ R¹ ¾U^y"Jí`4ÇÉ—ÊèíÁ›B¨d¬ßX™å8ý9zOýžöZ7]~$ÓÀÒ¿$½½¨P!êÜõ$ V³á»]Á¯¬úsú …¼äxò"þ{²ò`SµƒtåZ@çÞ6LÈzOŸõÌôkñ0ÇR+¹ÿ¯—Ç3xãAFÓ#¸üypýGyú_¤ªj$ÑÄ`v7€~‰ù©bÌÿHK5Ê9,uv4¬O©ÃNmÌF¿ëdƆYiþAþQ̉ iŽíyÙΩ¾ uàxÉŒžšÕg qOƒWõ!Ž_’µŽ¿½-ŸvÆÓeƼgo‹µô/ ®w)…þ2@æáDµÓÖè3eL}ª‘Üž€þù MOò¤)(ƒ÷ÃÜ¡ÿUÔ]ƒè”éi8N L^ÚxìÃ1i£'Ó¯ >UÎ ±/Þ‹ÚJyËHhA'ùjd»Œú°2¨?¿ƒ¿Ëe.Ó“ÃúBÉ6†üý“Ÿ©Ì‰û?éßž˜úÁŽ“ðÝ–óß®¬ª(É?ZŠI"A:ê¼íoôX^è¯T5™rð×íŠÒßvú'n%ÔÑ\ÖÐNRÿ1I)ªØ¸óeeYÿñ«ê,¸©-2üÕvj ÆËèÅȦZ_¹JÖ¡ölbùóªô+®)‚[…“­€í¬@5Àªv‚†ŸâLDÅüYYk@"¾è¬ÌJV’˜èÍ+X[š‰Øv&Q~ÞH_ìâGùd¬´ªjþõŸý¶7T\Díë_[7[EÜêŒ=^ ŸµS“øË Xý¬Ì?OÉŠý°3§Èaš€—çª:àCâÂÍ' ûÁצ°c¢M²šÓð‰d ó?òG°ftú'ž#ÿØ +S¦Ç &»6­Ã¼Ô’ÑE´18Ö1ð+ ]»G¦¸ Þ¦”ü©º‡sÑÈ?‚_¥=ÌÁ÷Ññ‚ Æ¿´ó0ýûQ3Œ7°=½ˆ"ûñ-Ã4;†wîm8þc1ýKÈ˰ØSø Á³ bÕveì®Õ{¸žý±¾´åøÕr|ÜH0±ø˜wôO|f‡e˜_[Ž¥AS:~›'< 뉮¸)É?fÓ©µ6*ú݉`$ÈM–¼lMNOþ15Ì=ô ÿˆÃSÈGEÇlXìðCuƒZÁML„ý>’®Uçð˜¥Q…OÉ-=‡½¯MåÊjôW®¡V|¥Ö{;FþQŸÕ‡¼TÐodÑaóÅãÛo™UíeñE¨<Žw{§mƬ&[ñ"fzÆø‹ãTå]ç´v ê8¸ VfÌûPjÁ-¢_Ë6¦æ­kþHÿ’.ä“©§qŸÚ~Õ3ÿQÏÖVYAF;Uq²”Ž2¿–œﵨ/~É<„†µùB{3;5˨ÛH~õ7ÈÞ7”UåÙA‚õƒ×lÇÕ Ägîä”™Œ¼ôOLFmLsú÷VeGÃÑ2<2×³Ç øÙtô¤Ãã X¤BdFñËx£³ÊŽûWüÊ$oîKŒqZ¯Iç7æG•âþ;›·oèÍö ‡t—¢ YR)ø©Ôðç_` ™\/çÓ!â€Ã<¡~ð•ìÕDÊMn$ÿX…Ö =U#÷Éfþ¦ÙDû!0ÅŒæR=R&Ò~¤ñ‘Sé+-죶€þjw˜3øßø4hÌ ÇÉ@ýyd½#ÚUyå§Rš~W•èõ‰Y~Õöã‚úB}ÆüÚ?Cç¢)íÐ㿦nÎWÆÖzˆêz¢Ü'èþM]Ôà|2¢…üúau ÈÒ6™›¸~3%ÈKJuõ©ì‚Ö~¡LÏsè(æ8îCÈŸ ûq3êP:à+<±ÉÍÈ΀¾LÄ" 9/âN |½È[ÙEfÁ3˜Ã®üyN±T¤ÀÂ}æÝsáM¿‹=N—›‰%‚ÿ8BŽóš..Wd÷(ðçÇlžòв8šutÓÁ(šÓݼ?Öx­V”„r˜îŸr$–_ÓÞªøäùg™Z[^ +lVå¬þ©P8 ЫDå ðŸÖü¨øªŠÚ~æ×¶Ž0ÿH©\Q>ËäÍÙ×&2Žo²7YË6Pp:z UÔorWW  ÞCŒ;.i,úÝâl8{,£ÄE¿ëI>5 /î S’ ¥Eqò¼…•äjq´©)ØQînSø‡ÌàØ À¤¶‡ã?Ãt—Gx–cˆ;%ö~ ×lñ®(p~À}ŒÓªÁ',…Ïx€ÿXOf4ÈÏ™+y+òüÖ?±ýÛsbc²â?FáΓ«Ì»¿š8,µÎ ŒC|–Þ˜é³f)¿rß,Òó£ÂžÅ‹jLîW"Íü·TŸÀiE®ð½Ö&º»>€ÿ˜b'¿)ŒrhHe"¼Ý ršªäã´—JhþQ~Sf£×ñ;ú—TQþ$3ú«¢§Z(Ëzá%jOì𠙈ˆq<>c ¼‚~÷¡ì§U݈JÓ2¿v\”V¬c”],Ášžâ •sªF¾Þ•.Þ'Ñܺ¡J]Ìz_aXJŠ¡7îgqÄY‘…P üÂvì ?qwJbÕ¹ Fðt—õ#ï:ÿ‘.Ò· zð>÷%9Â60Õ¶Xé‘ìÕU« °âíà¹ÎXétÚI5^$+NTk€”4 ú¾AÔ™Odâ/4]k} [¿F`?|ÁVyMd‹M¤œTnÊTø¯ø]wòª@üwM2¡ŠT"B¹Ó˜÷à×¾FÞÒvõããtòS¸ý“+éÅ)b¿Ô#ǃ­âÿ³¡\»Luüeº*/·‰•[£ßíÇîÑI€m€»YîüóMÌì.¯ÁõÀb}ÃÚôãévEYuz5õ—–ýôÄÖë0ÄK8Ixç+iî"îoýKšR?X^&'Öq õlçøÞÍTƒ\Óó‘w Ò_•4ÞÁ¦06ƒoI¦©L€ó^‡Â).ºÃj÷©6X°¶Z|Ãd¼Â$âQàiA\éß~…š·ƒf<Ô«å‡ÄôñÁ¯±×}ø¦Îx®çœÚÇï³ZŸÌé4øZIðµn0 õ)Æn£¿ž þcµßÍ’ö9Æcú¯÷6ö)ÄR]²Œìç,÷øl˜þ%IäbŠgœ’ŽDìWá?ö¦´7Fê-/Ôvç€á_JÿÇü–÷ÆX¦Òä —èVßœ«³Þ5DþQÆÖ^qᜎã4ÔáîW—µ÷ôómOgÜô«:H¿ªtpÝÞä ÀµV€C•5VPQ2ŽüãÌJA=qˆùQÞ¶Óªš3ÄÂȆÿ¨¢·2ºÓ7:ØT轆ûžŠj õç;Ps½¥Kü4gcAë’¸¡×üÛqÿª(ÎLNn„ÿ¢­ÕKËì- ½Eöã%=øðPÙÛ ú_Å¢â¥yÍ,B'ö8àW8f_Tä÷ä[9Æá?)—˜GÕó4’\|'ýÛ_á}Vma&0×¾¢ùÁœˆ"ë©Ù†ë|úTº›Ì7îÂ!¾”9٥Ș¿üOøólôÅYê¸36%y„ÕÃ!O_xç ÿU~õ•Z‘ú_ÅB تÞêFõ»úþí–|²U¤ŸÝsòŒË ß]ê¼¥éä!ñdÆbûâEë±RZ파Î=>Nþ±ü£4‘dnP“fº?vp W=œn+ëôN¨™¨ç¦ß­'îzPì˜úZv8ÿÞ’ª“c"Þoõç=ÕŽ2 ûÊE=à * ÜÈT–k™ÉRá1ýž`Ží ½˜Q N „þ<‹5û¬Ñ_'¬þJ ©­ÎZ[1RŸFF¹ï¡P‘· ”c==Ç'š k _ò®@°²AØYnü'z[âÄ71š°Ø_wª"r±Z;ý¨æCeßzc€ž˜Î´kÌ4Aý¯êß—6œ£¨Ã>is¸þ) qÞøø}ª5á'øO yÿá¾ßõÓamÒWô×[÷Q å wð1'Së2ŸX<SÏáÉÝéM6ÕR/!ï;«më¦,"'L¦WŸúFð“ú)£.5ìYÈ‘6³¿DfªôZ€_'_’¦i,Fç0¼É ü±†þSÏ‹xm;¤¿:Ï3ð'["j>LSßNW•®T©L¹ZI.s’:’UT¿l¤oáx«¶“¾.OYu}ÓòÉ®Žë­ÉlíÄ0_}xþ}`gê;\ö‚–7#ô…ùJ/¬~ÌÿxÊ4•X)ø)»‘˜Èã&Ïâžœ-ýå‡ÿ`.žI æïNóEãìÎ:£ñœ®f-Ñ$²³ƒU±ð«SAþc4ºå·ø×øía䵚î¥i§Ž›üÿéƒìÊÞ'ë/ú·çpܧ?û™•W诮¨M™¼ðS±ºãÞ¶µSw‚h=Qï) þ?A?Ô~ 6aŽ ¸íçê`t¡·Ä^º—¤ù©´*L¢þg”Zdi&qy7m)qySlWaé ÿQR½×/F]w2,YS*Ü#»FëßkÃUã°X±}•x Ó©ŸöZìŸsÇŸ'ã²^{™^8GaÁtÂKd§Ž9¶î n3xp3QôTò\ ['jÍ@—æór¬%#¯Í9`ó‘·QD–©8ùcãc‡Ïå—¤ö%xúeÚ-Ùû§h‡ÔX‘\óxµ–¼&û³òÿøøµ”ì'ýnt4Cȷ׃…sØ ± ÿ‘]‰(§ °=UeQÐIœy ¿R¸Âš\aIýhÑb,Àîàöz µ€  -³‹©Á³Hƒoh\% UW°¨+áSÜX³O#ûìë;UH MÃÁ„z³N/žUR툌GáÆpüÇV[^ÑLú¢v ›dn¤V¤3 ø“3þãØ]7ýõGô‡ >‡Á¯–àõ™=­”°þ£ùG:|N"|ØPô¹×ðF+xÏÏë_èrŠYîô¿:º)œr²¹„ my‰ wé)Ðw„åÏЫ ]/UÙKà–éKA؆c-aÌ×á?Va•— ¿ò¢Þû#þC3û;= ß5ŽÓô Õ`ð½³ÙÔZ<Ó3ø‚ >=¹¦—dGŒÔŸ%c Þ†¿=8öâldb7ɾ˜HDq(ÌüÁOb3 õg²Þ!xê?Ná%ÛcÈ_^’Å_®eZ,+¦)ŒpBCQ&ÿXÃTE>pl¯ž­™2þ|,Tw*xZeä0(ÀŒÄ}pÓ Ñ"ùce+1ÿi-üyNc%Ïm*Þù Õçåõg!ú_í¥þÃ깑§õ—:šnúsx‰ô@GýÇ(¦ŸÏ@c|†uv3ð=Ø'·áÁf1᪲>Åw:ÙÎqÿÊÓû“,~ÕIc¾Œ¼¨Ç2cØ‹2õ·4ü‡:Â@Öjø–êÄ™Ôå´„åaÄóµf°ßaÜÜ¿ý­rP<Ât⯦[ÐÌkOaº [ØIGËqôK,Hýù&~G>s·îA7ÊEð4³Œ÷  OåBòÈRú{NüVÇüï}‰éµÃw&9Øõ¿[žKñUªQíQC4Rµ–ç¶aê õ>Ö-%ÚÖêJU1ÝÞ]yG¾‘ëÄYøºÊ_Dáy¥•ÕjŽ]GånǤ7Yn4¶u´ö²ª<«´U?É6Ú$9SVÄB·¢ÿ(Š^­†X f³œè³6A–®«Å•;À4ÎòŽo„9}-{Ñ·iX¶–A¸‹d ¸È6lŒ žŸ‹?›?„ªhDLŸaϯÈÜQð/lwA¯Þà‚–¬åDvÄòYý¤jUÈ?.â§æÃàõ!k¸/¨é#¹‹ËÔ°¬É¯;¥Ä÷ P»èDË)@u|ñËøŸû܉í¾$ÝEE¥xkÊ7å“ÌDž5•|à8µñño5ÁüêÿöÔ¶ƒ¿Â6Máß/ÀþLÁj­¥”ßÕàÚ€àšQI'¨uñ^Ƶz熯ÎD”™køX|þDûàÏ;Ã;ÿÍJñ@²ƒ;n ÇxØÒ‹ŽòøÕXg• ÆêÚ; üjŒÈ_<“r0ÃÏàqÕqQ ¬BáГ´+ùÇïýwë©Ìãt¤¤Cà8ØKë½Üyúƒi„J4Ñx>£–±"µÜt¼kaââ?B`ÊA—üYµÃÿ÷#*ß û±Z_†z4Þã=ñöb0“Fz³ýOëm©ÿKÿ’Rz,zZµ‰Ã¸Û~ĉÁ÷Îf Të±÷ DµÉf&âß^ëÁ‚Fƒ¨uG=Ýþ–®m@ØšÀŽË•ßÃ#OÇ;lÔÎ…©ÿx!¶’=¢ßç`|àí¬îNíB7c¨˜/sžòP;¾Áìn¬mûaøá“›êƒƒ~¼a-½^ˆúª¶^Ê*²å¾DÃÈOÆËêZ:|dY&“—³z£ˆfÖ†¿¨næ€!ØãˆN @U<^.vû:„ÿ¸`óRŸð>ì'úÉlTACM½þm¼Ú`øó±ä3ƒñInðékÉ?¼ŒàZXg:ú„²útdÇý+£ŒÜ–•ÓîÔ;Éúe#ª¨Ìÿ¸DÊÓ>¥ ý¹î2íjjÛx¿¤FtX®kä‚÷Q¸øÉéŽüã•rNÀ—òtûã¶Ë”LŠú›,ÈÕÖQ#½ZêÚ;ؽ¨RIf®×š­˜ˆ;¯þ˜í…\Ê;^æÉ&ÝB>àÿÒǹéæ4Áqg’}DfQ"ÚXV壒¾¼¥èN>o!->¶Žê7<È;õ ýÛÿL¿K)/¦Koüwþ‚ø©Žd¦a,” ¨å©~õgý—¨Î –kdqìèBúÓ ¡IõìfïM¦dZ‡(Ö”R&)]ÅN<Åìj[ª«f´¦ÿîa"fo¬ßsÎ{4êÚÓFÉ$b~T%,UBý)>i¶é žnΠ쨊N6ŸæâäKÿöÈ5ïmWèQüU¦$ ÏÞ™|+-–Î \¨!Õu"êø€…X}©¹«©Ï>üçºKm¯ß¯ø ÿ‹þ ´‹š•¨ü#ïä¼Þ1v {S^E"œÿ¡(Ÿ'°Z«GX_žC&"AkþÒò»øõíX€d]sÁ¯.j·±RVE*êσ{ëï2ƒ’Õã{òÕä»àwòå‚ 1AÃ>ŠXò'‘í *§ûóž÷ÅóÅE­buzߎÿ8j+$z³ZAâëjè ˜Ã :Ù‹þ%cðjŸÑSëIüí†}DV±Œ½­Å¿ã­÷aþ`Øþ»íÔî²,U'U©qXDž5³— G2ÓHC·ªX©ŒÔ¨å7J”ÓßÒÛd;<À1|^úC‡å?oÛY«E~²O3—Ìt Õk4µS •$°Ôà?ZÓd:ÝrËÐKðµ²>šÓù!Lý‡!ºò,Ïr%EX­œøk‹ÍôÉÊü-ÔÜ`ê]^Ãüa’qš¯e­·gµ^»¦¶ur>ŠdP€±X©yèW±}ÍzGã1|o>¸€½Lí^‰·ó‡?Ÿ/Ýë|•gtÖ Äü¨è¯æíLÃôa)`Û¢n}¬);3\}ñÙÝ ú–B¿Û€š\sel¾B¿{üêònžaL£–]h?õÔ÷Å¢"e»1fz%=µŽá•Ö‘\Çf¿ÊŠ'¼÷Oÿ‘Evr\o%e(þ#/ïDoüÇ@yý•bo†ÿ©Á„«4èºF ÁcÕðÃr÷0û“<4’÷ð2þãŽ\NÿÝAÿñ\¹ß—§Ô‡·r±t5ÒÚwškð¾ áM\™$òÆœdßEÅâæ ý ^¯:㉆/gý®\E¬Y‚øÃ_ü/æ×fã\WæÇ#*â¸OÁïjT>JKþ‘CuÇT¦Þ<«ÄV†Ó»ý'œú…:“¨,âøžÜpÔ£©²yKåC\m›¸Âü´½JnjÚɤ²˜¨«þYŸ`wµ¦Õ¥U–ãMf~TyP™§’5z£¥ë„-m$‚ïƒcá|›þ»íÄ*l¦å5Q—”‡÷¥8ùÇØ€‹Ø“û²>*%gùMÎχýR q^T}I®³‘8š‰Ù`9sÈn|@Xmúk"t¼(˜”Œ鳡ǭ\ Ÿ?GßKNÜ^{.Þã0odlpüL:¹XüvpØ jdŠ®ƒðF;Àz;c®€85Ň”Àg:¸Þ†MØ’#pë9õã°»÷äQQ%Âúó·¶ŠŽiïPo~N‰~pÌë´´pêÝ´1Ø2/lšUÛ}µM›Æ• üÊ#ìMãó|ä@œRá?š’ul¦^£¤–ÿó%}ùE|éi .4˜;hM¥½u˜þýûrž¶øè¯ž‚0MEªã#†Là.ŽÆº½ÇZW×ݯÆÚ€…¬aw»È½Vs×Ð_} ³d;µ6ºŽT߀ñÎÉõ ãä]ÉEÿ’»Äø×Œø†'Ýxs“ä£2 ,\rgN«éUN® ó¤£ …»Õ>ù0ß7]_…†a \ÅC|Úrbs#7ˆ‰/¥ Õ‚z·2ìÈ9¬o}Èb,5¸~ÁÚª&œñ7ÑX”"C®ûhÿ¸³€¯"ÉÞöí®ê꾸KÜf°ÁÝÝÝÝÝÝ%¸;ÁÝBp÷ `!hp×ïéìÎ dÂ&ì~ÿÝá73 ºÝÕÕGÞ÷=çDů†ßÎo; c›ÀÍÙÊô¡þ£-*Þ²D {@Çæ£Fe½«þá ïŠì{ñÔÀ·©MÆaåK= Ú-Õüj=n—Ï¡·ü:ª+¾’Õ5Å3_¢~p:œ|•X†ôXnì¡…U gß„,e”t3 ‚ϰ®Q-³Ú<Ž8¬²=ÿ¼(Ù<ì~As¸Ù*¦«ì€·ˆ¥ô¿ò õ†ýëoo92ÓèQ÷e™Ò˜‹þª5³­¾‰½(!¾Šâ¢jp‡ß½Æ÷:¿ ýKò€?®4*S?xDËCý sŒÈ?R ÑA„Dßÿdè¯K0ÿ<»˜Fä½V¹#\@qê?úQ0ÿá}rb³ce*ÿñUŸ'òé~$â^a,1* ÕÉJ4>$*§>]/‰X†G`þànÇZyÕZRl|fð«æÄòñ¸çëX¯jè{.`Ñ6“õ.æêc3?*¹ëÙ‡¾Ï|?T¯ÌUÕ$’¾Â 9«°ÑAø· näI+±¤;@‘v‚Ö\‘~¢<3Ã^+švýUJþæ@î÷,|{Blt9'ñOñŒ¦ßUücáózžWKê?6²Æ5¶z<êÒs ^s‰n3O²®ñ§EÉ?æcC ¨¸¦?jàŠÔŠL7¢èë~x*õ¦\ùj„òQ8€œð…>œ ŠTÓEv¾uoc.d~G_P¬ŠØd/%LOò£Ä"WBÕ>;‰0sêzÀX¬Bu–g9ˆú‘Ç(ÃìÚÛô$Jý Dg¼Î~µŠ¯`üR±Ñå;þ£¼£‰6Þ°'ϲÚpú—¤6r2S¶:«ÜèŽQîÆ Œ”ÎÎVæ,´L"ü=øý¨Ç^ñ¼²+ÓXâz"ÞŽƒú*©öbº™-˜ÔÌ-¶õ%ÓXú€t¥þ|öþŒ]ìlëøUOÖ±;ƒ½dÕ¥ô­Hþ#UˆÚæD¢M8ñ[˜nuÜxb^C¶fâ•æÛÉl–X=à?n`åWÐu½=úê fjPßËäÞv-°Ÿ\ëÊ?n“<§ÿU3N»'3¶G“¬dVcSx˜‡fuº&–¥â9ÖKjTÏ©|)ÿXn>ÀÝ‘›ˆ*JâiÍÿÉüÁ„Ìÿ©,Šõø4äùèWRCô¦þ¼§ÕËQôꆠ_AÓùkÓM^;Rá?>u_—åPHꢧMû„Å(%5*»ûüâü(úic6‚IÏå’#å-‰~]%àÆŠQ?¼a®ãê‹2ô{I…ÿ8 ÖdÏUDpóŒ‘X‘Y`W׉Iãa¯â ¶"¤‡[¨E¾ûö‹¾Od!¾£®“Ó¬1ꃾüA\k÷Ojû…“D0 ÏåX~mç&Ç>|îjü,*¶‚ü¯ÇnŽ!—Ùþ£LÏ1k)þ#ùCS« õè;è%Ö-[)|½›ù °œr~Wÿq’ùQW‰óÎ’ÍjæPìèt!kM•F2¢þäOÈhãW[ÍAÖ³~å%üÇü[m”…§ear¿ÅÁ¯¿a•úStVãdku‹ßž:ÁÎx2“:ÅàW™W~üjÝð»Qå˜ÞŒN\r‘xî>ók××G»!Á4Å Œ¤†ê¾…jƒÌ£ÿ‚në8ê5gç+º3‹u@†e)»>Í|ª =ˆÆê1'”ç\;øßû"9ókCúÎÆ§~0óç"âWâFwÕLº¯ÞúgpuøqGð+ý~‹ùƒ¿†Î½r$¡Ÿ]d:ì=eŒE"ÓóioèS˜X Œèõ‹øÕ ½>(Æf™.y/5ãÉ?rëø?Øx5£+*"w[˜y)ÅBêÛìÁJ¨E<ÃݼAÓx«×U7çß¹²dóU"ç& (É6~ºHP~®rÒn†ÿ‘ÓPðñ¯å™6Ü+Ü@ýànª“r€|åW‡@…–ÑÛkæ¦|#Òi6÷Ö?NÍ_{vpŒ{ë›’^§¬Ô$â§°'T¸õ­|²çGÍ$IˆŽíXË%Ò ô»àYm¼o~¡$ ùDz…Ìr¡@Ù\ÅQˆÛÛáÓ£òæfæZ?„á?Ö‚_u“oy–›ñ9_è;ÖŸ¬«“Í”cÝœèëÉ&ˆö'ûû`‹–sßË`ħc›¿À÷…æ?édM®«Ó¢÷‹œ•Å仂ýÇjÖ® ß½Â´ñ\ ÷ùa’r‡7&9«Šþ6¿öžn⟛µÉ><é¢2Š+Zó C¥é§¸¿RÅ\GZ£â¡h.KBt×zGéߺ¶\@šƒ©(zgÜVe¨ÒHiõE#;dh õç‡áCV˜KéœÀhÑ¿}ú„Öj.qÇï²µkÿŠjÃD4bªF¼ Lw‘ÝäX%™ÚX” ÉÜÔž;^ä"¯èq6üj›Uü°0üùNýLz],ïÊ?¼é¿û@¶Æ &ëž)‡›I©6÷bn×|4Ð[ðöü([ÕUßòd~m=:¢ÌáOžÕ<‘+ÉZìþinr³ëŽÿ{_d¤ûr×ÎH-ÏPÿqÿqüj:ú+{~Ô!æ8Äuýõêõ»o©ž o¦ƒÒ×2¦ 7Ñßöt™–ÈÞS?ÿ~;¢#ªŽ¶!=#}Pé_²M+®ûÉô¶y/ÛRÓÐ)‚ókK£ß$F }Û'´žëAT›ƒ‘öƒ£Xþ \¦ Ñám¹‡:)ü¹ézöa_Þ<âÔýÄ÷MA¶oÁ¤t¦ê0=_;ɘ¿q·›A¯v±¶IF~ê?|DV­èOÖ|MþñL&&ÿè â ×ý/Œ¿(@Å@yc(ÀöÊs±Ê›Èv– §’ü«VïM7í«~I~E·äÉÓÛ‹-ÿ“_q¹¯7ä ¦\ ü@Ð[À æM·Ñ»3 V?ìü#ž¨ VÿÐF='è„ÿ`$§:¢qp îá ÙȾSÜí4P¶™\aoã±xª½ µ}é• ä1rXÒ>bËå`mA¬Rk·¤ŸGtôWéƒû—…?σe®‰9D¼ÐR†ÄtÿXø£çUüÊ }þÇùQ„Ý¿ºGçªØLÙ8…÷ËŒZª0yÎ ´M͸ÿ•ÆgíGüJ lëÿQÿÑG0®«1v-ŠL•ô/ynÕg~Ô&üÑê?ò¡)8‰^j*Þ ä-—©Çúþ–ýéÈ`áý!ø…ÝôÊÚͤÙö`s•ðý©Œð1ïPÿ1YÍ¡ÿÕò˜TçùwèÚ¾W\Þu-—ÛQO Î:ƒL¯ÿíÁSKƒÆ¬êذ4[A‡R`U g?+ùÇbúŽ”5½Èæ«äðÇoå`×z‡Gõ NÅNÚ{•ÝÈFœŒç¾dE#Ì£ð2Gð˜ý©?w×ÓËÌŒbê¬Õ òÖÔÚ¢j –ë~ók#…â¼Ú Ò•B¾2¶›Ò™‹U†¡¸: ×¹‘§ñž‘CÀÃúà?Λ1̘øÆ(ã²\MýÕ#òop°¶–o•^óÍ$ÎYÖ~zg½B·Uzø"ÎÙΣèÍ2[ÝÔ ¦^5$“›`â?nËmØŠ2àŸ±ä!×ÿ÷¾H®m§žú¯Ï“Ôè¥t}÷×ïFìÿ©´@-ú«Nb<ó<ë±ÊIGýúÝHâUíaÅ?_ù#ýì$¶ø¦,Â>Šè~uŸþíe©ÿ(-Fé?CÙÃ^³‘Îü椆SXCO×ò°–\¿(ûR á'[b[Š¡ºóÜÚ-‘èBóžw-ÔIY@ôû·ÄrÖö†s}+ËÓÇo¾,.„}1?üîcý„ÈÅ»ƒÚ¹mD³eÕ^,ñTÖñcÕûÄúÂüÞ#ëùµK%õÕd ïÀ”NÁàz€S Ç1¯–üã 8Ù*NÝ(X‡ßŒczxi”^”Ÿ¬Gä{‹Øò7ò¬$Ø1w…ÌÈË´;¿˸Ô툼!ò1ù‡t}óÖá\nO½B•‡Š¸îäsÈ?@S†óði“¸û#Ä×àn] CJVÿöôÚ+ê?_ }?ƒ¥÷$º/J¼Ÿ&ý!/²\%.-4G³ÜjOwKB™Š7ôAùÇzêóËKX­åØ5ëè êÕýí,ò‘ ¬u!2{^÷F¬¤goO œL ?¬ìÃßê?êèMÐ0Ôb_N`++€€Õ/I ÛHα„ã7ÌÌÄõÉÍ|æ$4¶¬Õ^l¹í?ÒµåÙ‚Ãq]—ä‘ðþP@­W#és3Ž|à_Ï¡{â.fm±nâ]J“LVI±ø1Р.'§Lþ™RŸ÷ÃSùª×!ásÔw¡—ú~µ…Ù­–ÎR¦=·›y]eÂïÆ¬ÆC]ÿÐT›‘‘¿â´>0Z¨nœ…ÝêÌD?ò™ìôOœiå¤÷º'8εþÜ2Gr]ÃÀßüðHgPl ’/]ç¤ ýKF°WÈoÛ⿻ɯ2;O#fÖ$_ØE¥^4H·˜ÌTÙìßðÁ¬À;7KLŸ©ZøÌFÞqÆqM÷ã}دm7RÉ«ÆUUÝ ´âÒ‘«/öþ ½sçñßXÌþвáO«?å±yðÔßè 0‡Ž‡©¿Ã¯Jiƒ…l²q‰§/·kÉ?š“gäµ^Âî¬G ¼nßt)L%kA—”tfºÊ\ãü]–óAåCê?îRþ h{â¼t¯ègFw†áèMà)ÔÅ%af¦àQ’Ø=Õ)Ыòèw'šßðr)^¬,ó?œò°kÿ{_äжj\'+= ÿÝú¸š/ý#½½¨.„n¯KïˆDïÜ}Ú:küÊ?éé15š¼õ=xc›Ð_õÒ¼´"Ôv„A¯(Öþbÿöz>:eœ–±3céK^ÕÖè1±Ûþt/iIoˆ¢™kþÕ•ÚŠçæbòJ~®7çòµÛ™FÚÕ±;_dA¢ôúòŽ>è_-ôÏ?{§ß…ð±±Æ{Áa ª0v‹pèR]1ú@Žtl(j¸Wø»¶Žéʶ42úÃà6î°'Ñ6*¡e ÄÞN…wØ OsJNÔ3†³ânt ©}ë³sÄ«Vøì„·¸âUüZ€wøÐ(cwŠ?­?ëÐu…]8އÀÏ%Å"6%ƒ[ V€}níÇ4–ë]÷\M.×ÔH‰Ží@ûø§–‰lôz®9°('°Î@°Š±koÁkÒÈð³¨ÝH¨:ƒ2v)‹ ˜œ«wþãŠ#Žè"Ÿác§‚¦¼+·ýÇбExµ'ä#¹VXÿµ -O¨eÞNcw X޾+>jŽPûØü*;–OÝ)BþÑŒ}Ê‹¾ö½Jeî3›[GñPc%2g£‘r ÚL¬»Šü†›\j½4":ì±ÁúÝm\ãHl¿]ˆÇXnúš'à|[`[~#Ì]—£ûIСjT·6âë!U^öfÆ=8»W9uä£Áõƒ¯Õd]ÕUjð¡ßÑ+}3Èu›è«ÿý.ýýëzìd |ƒ­ÍÌF¬“|æ)¬~tXæ«x¹XѨ™8Jg©"ËOýÇêÏoò¶ÄöÃâ§ #àppä©Xí[ÜóTâtPÁ)üù~-a/;ñéß~ãï戤iÂ?˜ÿØ–p¿P’!3vUcóÈQâÖ³ùG7ž|sVJ×¥ð3÷Âð»–¨(‚E΃Ŷ{ɴ箇¢¦žƒ¥3@2Ò?ÌŸ?½ÎµFR¹óÍä'Ýð—é%Cíce½u2%YoK!,jsP9*rT=wWa¥¨9Ã:£Ê1§¡ýLç”mø‘íøƒ”Ì4›j½—z48ºÆpXËÉ6+wlõØ@~b<Ó‰ö‚Ç̃?߯ š±È‰È+¢Á^xà 'ñ£é!(µ½™ÏÉ?ÚL$Æ>.PM¸Õ—^ô—ïš5žSwæt£ò<ˆÑ!!*s¸ÿép÷>DAzÍ®ð*§ÿ-9£¯Ñöa³±‚þ‰óéÀÑýï#zA¢þc==È?>ÀMaÅð—ðGðqÍeHO-ú·OÀsQ¾øËªjB74ÊÀ¯¢™#È7–RIW>ÙºóÕø“ØôOÜÈ*KÑœ]æŽ ¨(Æx×™ñe~”úÆ-ä©s ŒuŽªúÚ (£&Óáð ÈSWúùF!®ß~ ¥ØKtùãQHWÇÿ¡v·¯ë~3i]…äÌõâ™nR äcš©è-ršÆ30í­·pè=Xÿ.ØßhªÅë=%4“ñ”Û\’Á¯æºø»Úøah9»ÂJΓ¨}Ée6“÷í¢²§WUÂÙFå1ªå9ê™Ítò&»ÿÕIðýÄtX9²ÜïºãÿÞ‰µýßÕ:µ¬ÿ¶ÿˆ¡=b~”§ÞZôQ‚Õáýé}uâ­%úÅúDHÝA–é&›Ü˜,žêƒÀÕ#Ñ…6·tÂL×Ñ뻞gDv«…ž¸VfÁ.Ì3 ÊnÒS«¢¿”Ý w¹‚Hñ©lAþ<•Ö_Ë zc vQûVÝð‚ñžG,rSL`åÝTao“‰È+»Ê˜bx.홾˜ü£øì#"T»GÒqðü~ä7‚£þýØù—ô$9/«G ÿîÇJò ôW¯À^ìù磱÷3àí<мl…Þ¨7Öù£Ü¦ÇgGèÅPÃVâ×1ün\ò™ôä3oX›T‚HtW¼ÿS­;Ú)·ˆêÚÏ*si7´+2:‡]n‹¯L.×Ìi ØÿuüÈ "È«ìç$®y¼Êhì~#ùGXúÝÌZ4qÄ)ìÊ:˜ˆ<á?áÏßr¯oÄ:qŸÈ¿qs7Viçs·SdS;Âð{àÏ+‘Íä§v»>wö€¿ß¿›†ü£±zO†U˜ýóÆ›œ%‡ûÆîm ;êλ[Æ8)"éÎPûX€ùç鸧?±ïK±g—°ýóøî"XæÊµ´v™¦éuÎb.$?ÑðÓˆòG€¹¹¡¿šj=K$cíÊY›O4MÕ-ð>I}ÆéKt5·¨ ¾ÎŸ•5ƒÔX°Å?¨ÿ8JDž_ ä“?j?®øFovðõç™ù™Þêá­FPר‹ü¨/õyçm«*úÝ1ÌŸígî£úÃâ“®ðé³ÉwBÕž@Zo0f üùz ׃À´'ú 7]îûµ5ýîó“ùos)vt ;ÔV ùNÕÌÑ–þí¥Aáìþ%CTOê?âS'žŸþ‰éÀ«NZ^Ää)¬ ÎÞV"˜Ÿõð Í­°G[ð™t F9Û©ÿ¸@÷°û¨*Žð–F2çÑqÛ߈\çWÚMw¯ÞTü-€¥8c}Å›L†yˆÿ€ xø`5Ýf…ï:êgÒÚò4ª÷W36ã?b¨õf*gFæQõgÂî æ“D¡þ¯£%—`€ÒU±c3yíø{Ì}*×»üÇ3í¦ø,ÛëµÂ#,–‡LáÜÁüÁ~è"kv·j8'QÏy‡®õÕuê`Zпd‚éT›`ôV‘ÙfSäÒ3Öæÿ÷_I¯­Ò¹Îª=ÿ#™ë»_û¬”X‡ÜºüyqÅሦM wÉ5f¢Ñ^9~­~0ƒO´ 3ð¡â|¿ì"¶ÁÈÏÒÒS—C*YW,Ò›ÿÒu®Ô#ñþöEŒRô#¸~õ^–Äßo"+ñ“¥D“­˜^¯Õý@˜ƒÙSÇ:Æ"µœHn³UÑAÉ„Wð+="úÝgú&QoYÙ†ÅÚï: ì߇ϸmþ(Ë ñ³ÎR!O*‰6ë¿úŸ¹–¨{«ÍÁªî¹Š‹ÿˆ¯ÆµØ»<å$=C8÷¼S¯Áß­Îɾµ¥Æg]ûJ4÷ ÌêˆÝJ˜€ÍXŽyìïr9‰],þ“5bÞÊèÜß|Ãjð˜8ð*eñYÔ.|Àl:·^#/]^Ο÷†sHièÒ7Ìþ%Á¯ÊËÜåâ@O®¤ õEAž4"F‹IV6rÄó³¨&ƒÂL«£ùaEC4#Ç=€"¬> deÒfùM¡?pò§3 VFþÚ(Emÿ‘”<åµ~ÃÈ“çŸçûa½Âæ?.€æö@?{ݸ nÒ“ ¶B54ïS?˜©°3¬Æ BÍÏôœï[ÑC]àêà1‹€_y»qÇbm2ž|ˆzCÛZôv§îžõ Yƒ:ìó,,éït]/j5à¾ç8ýiÎÃKo†óÙJ7±¸j»\êZï¥Cˆ'ðEˉL¾©ŠœÔ¨0ÏÏbÞà)ógT¨Ì²NQ=¾ ÿñžð]èý’Œ+»¬2¨Vt¼I#÷ºî7ùGlºØõƒ3U3pëûÌXl~õ'KáÝ$øS+úïúÒƒ¸5s!k ŒNdšê-˜ÅPúS\§ÿU~G¿Cÿ’ÞœÌÎDcKä0朥¾3?½ßŒæl†R ³s:ý†+[1a“ZíÉNš™o`àžÊ©üT µß¸¦Jѵ ÿG_$¤ª;·‰­ý¡¥píÓ¯}dTížV•n‰DMâ±J¬âÍüóëú>jB.Ó¿ý×ü‡¿ãƒ^—.è@¬>Éä Ñïˆ50Y:ýK:ê!¬MD®³\ÇŸÔ‘&&âµçGu•~Z%ôWÐË­ «âEæG ‹ÐÿIý ­^Y]mÞ~‰èy*¶æ©ÿX‡Í;,cR#ÔOf³"piïõEðçƒádÏÉO#?„ê V{•³v Ä4ÙÌA¹O¶’éýÂÍŽIò(¸_:ð¦ø¦¬˜‹|˜±±æüÇ|äîX¿WÒ3\þ¼¼ÑRb­Ê†mÙS“gcŸá>»~毆«Øˆ/YÂgî‘EÕŸâWQ5í¨Œ„-AtÄÊd½²d¹Àwr éµúOÇ}¯ç¾ûÀ9d¡/Ü+=¤6 dCi_ôÍr?J°=x·=xà` Ù±aŸ¹Ößå"øó±ø´ôooÊ~vàêOkµW„á?Î:LÑŠn¾ñaËÿQÞ™xp¢ Īu—ÑTø#»ÿìY06M­†GN~Xmó9ᦇf¦éQ ÕEß´ ‹[L'ÿØ~µü+ª¹þW;@®|±Ö©Ð<åC1œ Ö"ÜólÏh"·„zÒïôXÔýw„ßÊ]-%&~ÿq‹Õv©)¨tŒ²$Œ|aT»C°}Iè½±{_þ|¦‘:”~÷‘Þ™}>åÉM•u{0©‡è¸¡z¥:ÒßU8ƒèáÞÇ<¨Jš­©sÌ¥¾KÑLàn¼‰’„šßvSà³ÉÌæTñ#—ÜJ-wWsÖk:«”³¼é›»´J@§ÙÿÑÿqÎgYb#yÝõhˢ߇'«nÓs¬¹ê.›S ýn>wy˜j¿¨èw_ÁS7¥Þ›nÁL?Nþ±€Œì"ùb•À˜ãZï¢ã‚~Žç Þþ=Õ5dU4 -Ñ閭ÿX c~”]í¬ÌôšƒÊø"ók'š3Þ÷ :±9D„¾›HŸOë'tÎÜhð°y*§ô¥þÜr–fj|QêýΛ¬wÔ’´³>Á÷O0‡Ãþô¥J>¥ù'§ûïãô»å6Wþq•þ»÷e3"œ®¼I;äd2¶yôßíDàz³(wšÖÙ˹úÁªÖAu_÷Ž¿¶ù–È빜GK==UõG\wüßû" ú«­` ø´¡NnD¯% êþ2ºŸÞJ4¤IIVÙÉüÚ‹0ê{õ£ø°0ˆŸ¯}…¡%嬋0 e˜UNs¢s›&cË'¢hF=úÏúïRƒ÷/ñq""Ô¦`"õå)­¡~åÕ´X&ÊÞšÌ?ŠSÿ!Ecb™Ièkª`óÓðµ4N‰!°Â‡À9<à¯e[tCÝþ~!ûèb®ÈÇ©zÁ _ɚшÅs±RkdwòÄàoäI2±Šè_rÖ±_“mÓSl—­'`÷¿ÚJÖM]†‘_Öžà…ÜnÿÄUzkî°)ì]˜[Wœ_°_Ñîâ/÷à_¶bÍÆQŸ·_®%5;vëŸdÚ;íªŒ¥N’+ŒƒçÎ~ÕýÕ&zwů„y„ïÌ//üRžUã+±Ã•0–K§EAwýZG¿Ÿ+ xQx©èi ’v=˜ÿ(¤ò®÷$WHAýG|“{þãz¿ºÔ¦ƒq/‡5¿ÇiŠ˜ëÖ Ì›<£ ñþ lèS¼ç&ø©ø¦d§D\=^¨{n¥×‘i9Yà+Fà?쾚먒٠g…É®yéE¬>ŒðHô«à@ûcËÛQ»ñB–ÿ-ùÇ­g'ÿ(ÌÓ,?Ç>üc:Öò2ŠàEd;Í(ô/yG¼\äe(Þ#?Ÿ´è¾(øÝH査ÿp…ÑE îî¼U)8’¶(õ|TgléLz2¶¤ãßm뢕Ù9æ£)=0™ÔaÑ½Õ ÐÅSz…Ö{ ¦à·¡¬K7¯Ó\ÛRz—·?/`ú[½Á\Ιo¨©¦?$õQÍ:XûŽä3Ûððkøü ò”ë×r´Ð¦ò$†uÀŸ7•ÑÛ^3 £ÎdŽ2÷bA_ ±Mëìbå@/»Ò2¬(¬\½í72003%a®õŽÀÜ¥zig@7M£¿ì¦Î™­˜ëfõàY `H#jI.Ã~Ï0çÀÆâùž“Í@qVM 5–ɬß)ª п„Ã0_5Œ¾*¾l­ÒS¯Ÿˆ*É"(v¯RAòžzÄÞäG7@Ûá=KÃOýfæD³xüêº< ~5ßå?>jâ¬Æyk®›È8^ÍZLýùzF¶£_IIòsp*±¬åê0\ÍPævÇlÇì ÎIJþEþÚ„%×öüG_¤dþù"×IˆFxxŠÎŸ}\BøóŠúI½üÇ7ÍúÁót/9Gÿ«¨yåŸ[§(O·+;×{&û‰{àUúÝÅd’Ñd-±âýGS=-l¦'JŽî¨Q É6Ô–ÑýeW8õµ²<ö¾èïÚ‡u¥¹èWü»hM¤°.˜W¶õ»îغ»Âëœ8w¿ÌÃ\°I2©9ÃÿbEá!Š}ㄯÁ®¦%žÎ•‰Í·5¼Çø.2yª=Ñ0üÞ–Þðç'©ÛÏ…Í3Ð , Ü€7ëTBçb[È•(ŒíþŒNc¯^¶¹MïO¦P;yW:¬jb|úÝÈDöþä À¯ví¬‡¸!7‰*?UðŤâ{™ë2–û³½¤ü¯^³j°}=ÿq—wb$ïØ<q{t :Y=×C¸Õ}L­EgšØEîç0Ïa??U-W1ràæéäQñîb€J¯ì¾B#±õñ©¶JCÕÆÊ0üÇ1ÇG½š¼lµŸß'Ö·sÀÌØë‘XÏO¬ÜŠj ªÕCÁglàéŒ!íhÜ¡^6r¨³ÓˆþW鸮ôê{Eìscî¸2?}…Ól»Ç-=c/1 $Ÿ¹þÉH̵–ƒ™«èwCÞÉܱ†ÿHŽ÷Î@ŒÝ¬Âúü5LaÕÌÝä >TþEÂÜÄ»U#ºŸþ¶ô"´‚êÞôÔ5dïÜmsv÷8{•| dθ­&²lñïjÍÀúbŸ[QUÑÔŸŠl£Ýk LÇ›ŸÛj~Â[1Š£wðƒÀûŽ{Õj®©»¹ŽúõÇÌâ+AW§ÖÓƒi%_̯ÜkSð«[x¿±øÔžL¿êº¼šÌÿ˜düÁ^<ÀôÇ7p¥©?lKE÷yú—Ä¿ŠÃÌØì NËÆ5÷’÷¬„óyLRD)c‚k½Ë¨Ÿïp.vß»™5è­ùÉx¥Òâ/*ÀÈ,€á>Fî6ü)€'3Å:Ž~·¾ùdo& ·Šj9AF¹ØµÅÑ_ÙúÝf {¹ºyÆÕö¿ê~eQGòžjö9–›ÓØ 3ß›\,­ùùú¸H.¾LZûëïh—Ä[Ùw¬¹É¨¹6Yûð=ðµ-y®)œC÷™c˜Ûê§.RÞÞ¦‡ù‰(ëƒÜ‚+¦^ ä¯)”þúôÿìÿéµÅZ×ÎÄåÝÿµº¼OO†~7ú«f¢´x„ØáÚÝŸþ‰Wôs̯ýµ»‹Ët¹Öt9¢Ç+j5oê}èÓ•Lî•Á¯ÚŠ…ôsùì𿚯ÿIv$‘}5™O^ÑæÀ4‚S ­èyX'‚ý¯2j#µzb0Ö`¶¯3WZ5&-²\¢µŸâ5±Ä!Óû‡aŽ÷úQÑ–S‰ÜÀFm² š*@Æ0š?•¸þ‘¯Ìô4dxÓfŽÚ^y†(»–!+µe¥?P4]ÁÔÀ–úaçS‰½4ø&ýËn鹦šäW·ù™,XËtøa „ÙIEÀ,Ó<Ñiªç7áY.Ë­¢ÕOû—¼wDÑ“+k@>”þ£ 8²=ÁñˆÖ:,ÀüÇžÑ6ÃÏÔ‹·4‘| ‡Õ™¡U8^òÓ b‚}äjvÿÝBì—Sí2þñä,P/Ôœ]±Ý“ðTÉɸ~gížaúH䯹’ôO¼ÎÎ5Fÿ–…| -üù7v µºM¼|¬çŸ²›¼k™R'Ë´›£Ò ü*QEð¥YDÆ'øzœðy|PБ–T$A_›þŸøÕg¸‘%XÞYàSIÁ¯¶†:݉±X‰Ø£*0â Q&M#BýàKÁîd^à8îÌÿ¸OGø÷ Lñð°Ï³ðIóÁlc‡ª÷svFvýnªô±ï·ÔªÐõ½.ÕØÂyÆJçL?_žˆÿ»˜’{¿ÏÊîê%QÃPý‹ùØÆGdE½èxøÁð"ÏØDÿ]Oô¿7©¥³s‡uè|ðR_á?ƒŽa;D>ãAÆ’Mžw½+ݵѰŠãÔ3£'³u'ÔBcV=S[4ÆÛ¨Ln+ºÐ#UZLשxæz¦½tèò¢ 5ººôÿ踩¿æ™íƒUŒiò~ ƒž)uÑÖ¡Oâ sý‡ÀReõÌñ5Z-ñ%À.½Áû0×&• ѯ%ÖšÓÖ^m Õt¥ÿUkø÷d0Ñà.f @`ÅpçjÇðÕ2‰ÌfT78ûôô{#ç¸üÇíó[ð”Úñ.L—{¨¸\‹gëJtN7`j:9QÿÛzAýG3ê—ÁÌ¿Ä^|“Ë8ý ˆgÞüOú'æd.À×Y ÿ‘ÇõëFè‹Øðçùô;ô/™B?났âCýà=&J1]‹ú‹þ#Àñ™ ¬×üz,K… ® °vÅMVæ”=‚+#taÁ©»ž¬z™Á$âÒr†¼[sEö€©xˆï‚þªG„îüæfCÁlÖâ?Ú`W ¨¹è8‹‰¬íƒÕû$KÓå|ùGˆ†ðçWúQß(*‘†ë°µLyÕ0ÉØÃçœ÷Ïð"ø,ß;òðµÕ7Ûäê.óaã³ c툊ŒE¾JQ–Œä*<â:T3ÉŸâEæ çžOë-¸§jÜé}4Hé8«yÑMÝ%»‰•xÄõ®$û˜IUâ>¢_ySÔü)~K»­0¶g±ºî ÑùÈ?ºƒÿ¸:3ŸX/ˆßÏŸ-[ÎW Ð%Ä—ÃØ¾DZR±W¾äÝÙG–r Yô*=Y’kÑAJÜÆ2Vy@ë¹SKŽZ>#>~oþc7ç­º|¿ ~þ‰;³«ÃˆWá#òQM‘^¥0×ïÃ\é_ůÅ Á ¿Ÿ´X¡ö±>èk éœTÜM¢ÆÂ›ÕViì@ÃtmRsøœæAÔ¶åè9U‚n0™°õµÐ7­ä“ªümþÇ7=ûnwÊÛŽ‚v½nGÁÙÌ:¶{S««z]ù÷/™Åg »Iê¦úD7£ŒoÚð®0*øÕè`_[¿Õ¸ÂGuCW<‚«Ë@5özfƒÿðUÒ¿ä,Z¤xT¾øp ¹—]†W°Â2䱉©Xè[œ’©ìßc½Úz߈ÚÈlæF<›Í ì ¸­fãé¾ûÁø£¼Ä>¾«ÿ]ÿöªôOì¦?PÁÌQ e #OS˜‰B¨’ºÁï§Äƒ¼Ç)»¿Í ¤ÌFÅ•Ò|FRKÅý®ûeÇ^ýÕ)v¿:eŽ3¾ ?ãŠ*ÊŒw'}З¢exö4üã- Ðþ›ŒL))õƒËÐ Tgÿ£ß Ù¿,ôO4à¶êݬRîr±Å|w~•€IOßN¬¼Ÿz—èÅèO5MWX‘ f ÎÕMìÃmô»'å—ÿ¸ªÝAÒÆÃ±³³å`3Žs=Û¡gØÆ4úHT:ަ#ÖSÖ_ ÿу_f=ó5ïÊ-òVÄ„¾†þ?™ÿñ;ýç¸NVüG×w!§#"_EÕjÙá?ꊾâe0~uÍÑLŒ÷¸­ŸÖÒüâüÚ Ç;&ð|CoùVf0†Ñ?±1ó?ž‰²ˆü þ|L¨þ;á]aG=;±é>YŒ¨q¼‘…ZîíZSÝæ‘?H¾a­ÄÝy­'“ï†ÀtØ}_Û`õ3¡¿jŠ g6Ѹ/Ö9'ËÉ9È!ýn±UTUù„ݳµLŸ9ç¹y·û’3Œ3tÞÛRðïáhêH·p¯ðƒc3ý¯Þ“ñ?Àöy’c·÷…*ÉžåÆ»ï†·{/çãÿ4c—ž+œÏémÈ*q²oÁÄäÀ‚%‚A¿f¼4¾ ·ñ%ûXS±Ëxår€<þ3ý•¦in :—ñƒù¹,Ô´#XNÔ|¨‘ã-c ¹Ø8,ÛÞ´A`,)åk=¤·wÈsN¨éb§|Çýìe¿w°wÅñ#hj;ÎÖŠ{ÄòíA^zñç}ðT™‰Òp­aéwO0Q©¢¼Mõæ0Õk~ŽßfÝ“€×4‡ùb¤Eûtti¿ $ÃÙA¹üj9ÁsÎû× þª¾^_U ÅîJ‚`vðØ‰·ã‚[­4ÛX{Q^]‚Ç-JýG ðÀäÔñUZ Ã[I†ô„øÇ†ˆLõf;êã÷ƒ#-Qó`h†“xSÁ½ÿq›×ߺ »_ä~2¹g^Ø‘Xçʨ;FV¨þ‰ºè‡G=GV7ŸxC 4ç˜î\_w¢çÈÎ/äÌ#ªulðI¹ö;|²»ºÉÏ ¥ßõ«Ø£Îìp2†cÆvüdz*zÝÚæ'ì])üǪ*öªù°ÓŸ`hjaÝ!é†Õ‘ùQ¾®,‹ÿ˜bdƒ}xA¾Õn½&ý¯Ø3oøóiðç ­„0*ÊÙÄÊK—ßíÌ}úÓÜú¹[ŧ§Xmr›Ï2;>å8¥¿àÚ<ñöïQö¾yÈËÕg`Îùq:¶û¨Ø(³aÓ¯™ñ™_«™EÀ.?á '¢»È*»ºÞ”<ðçQˆ šrz窯┡[_™‡¸ŸþTOéÓ5ÇŠäô&¹e¡ãÅÝ74/Sÿ‘ ý•]|[ŽCÁ;Öå?kWÅcÙŒ³Þ“éœI7ÆMä§=Ñeëä¹Q*÷t.¥>>§5JݧÊd2swÛ›x‡ŸÈµÆPPÍW†úŸð¹¨?_ëÚ]ËÀ/׃ü¥/œô/ɉZ·† >k6º´×QŠþ%gñ gµÔ¿ØÿÊßñD¯ ²¤¡]eŸˆI\›€:/™_& ÿ•»^ý—®³®žƒ·ù4ý‡ÃD’ƒ¤·VB?Jײw =Q5Œ ÿȨuÔ”höèÂÑÁŒ!ËKböä45 ë%0†ËäêŸø’ü£<üGtõÛ¹Xâ(Ìr/l…?yÃCò…BFblý;8›ðŸcŽ< s›F"J®Ü­[0Z´Û(…õ2¬÷²^w¼ßoø4áìâ~ýOì^5îô.wš“ëJK­å¼Ü°µ»ÁÏî hª-è².Ë3ÔüìÉÄÖžjL±Pǹ¯ø³œd@Ñ_ÍáJ÷Áªô†«¼¦2„7bo={PƒZl!ކq“ó­ Õs°âS𯓉ޯ“Œ§žý˜i€á¿ÆÆ—ÇÌ„­ø&ü ž¡\ÉH#²¢’±7SŠz¼ ÇxtÿCº†â¶“ø©¦T’|d†^igÔ°u©ó'sƒç¾FF7 f§qæoõçãÐt3÷Â~ï0–Q¿ ¸á(lÅiabñ+Dõ aûß›1Ì`u}é_² ­ñfžRiàzÆMµ´ðƒñÔðeEò†fð¥’(š6ƒ5ņÿˆìlCýà#æ|€EÚ…êj“ŠdÞ'ÿ¨­>ÈÅ®õ.8ŽÀ<&¶n¼VõƒÐP»£gª 0›^2ûÉ[ÞÌ™Æï/7³Qþ‘§1µu-µ u¦› ‰.ã3?*:1‰]!4QœόØäkY­=Lz²è¼…Š©ÚxŽ'êGÿ’æV3:ög6sñ”ý‰ oÁ•\þÃO»Ë$4jÙ‰rf%L2S£Ö]ÄôßfRv®™Ö üÇ ôbƒÕKøÖ•/QÓC¹’ëȇgŠ$ÃzK\›ðôE&m5Ö_‹[hd3»¾ûëw#öÿ˜š7ó?‚ô6bÂ?矿ºÎDÛ[úqV=±eþù·®94QÌæ=3@’Mh¸T\sC§°þ<®,+‡ŠÂ[¼¶žžw5Á°ÕB¶F¿[—þ{à|¿ÈzàM5Eô¯V+¦õ£6¥vjùGlUBÕ?â)Fãžsr¥ÈgÆÈ̪?ÿªï¹&©ìn Ky`ýûà‘öÜ îwV|ˆŠ ið«§Žeò }‹óaES™×r㞑لU=ƒí[oW[Æf=[8OÛKg¾7«4!çð&ÿèwÌF¤ùšŸÀîÏáš7G;Õ¼ÞIyýU韬Y{Fÿö”ê$àLvª(¾¨kÏ¢*ŽêF:'!î?Âå3`õÚ£Žý""„[ y2±ÑïDq›“»lÚ5?Û˜}ÀžÎ‚QLû‰Ã›£Y®OÖ—µ"¡|‰~ÖüÚŽ×zqyƒX`¼jì?ìΓcÔØâzÁ|ºeÔTwÉ)»þ>c_®µ­qQÜþ~Õþ%iÀæþ ºž¬J‚ÙõåÙƒMN$ºÔ¬cmÇæÝd^E s…6Î…'…5ÏläýN-ú;Ž$€öçNAЦô©1­í%4aóÉ?ö™Ñ`l?WW4ƒðnd ùn˜ÍÉ“êzÊ`¯hŠŽ`®7A⊃‡µQ>Æ]5˜Þè£T&³hÎ"êbΑè»Z™ÉBŠ‘Â[¹Ã œ†:¨×ùá)ßóÀ®ž‚æöT Õ9cƒÚ„þª·ÙIÕ¤þ|$LÅEtRWȈ6Ÿ¿Åc5A—öœžŒ£Y±ƒ*÷]ý`mô»ƒƒ• FC¸ýúDyÙéÒŒŸÏ@O¨uÔ_¿1õ£‰'øÕ&UíE…°QÅâJÁÍ?““]GÅæÏ‰m³Ï€Ùˆî)T¼Æ7j¡ßCçܬu–u<Ì™xöìè°tìý2üGKòõ³ô/iéºßßµq¨š£{ªaŒWõd:u@uú·&Ë*Ü=l½ÜŸ1I}ÙH;¦T¤Nô0ßóàÉäÞÑQ.ÿqúÁç²+§¸=ïÅb¹¥Z:9V"×ò4ýèõÉ朇&®€å£.[¨Ç¼ÉŸÙÊõWr)±Q°äØr›ëŽÿ{_¤$û˜æÚ™àWÿ®ÿˆ^_Ñ] 1‚³ƒSŽ.ú}ôðIµ½¿tS>àWµ¥îHuÆ"ñVïBCnGÛ˜HV#õ®«ŽÈÂ¥õLè}vɬ¼Çã™ïÖýUuý™ÛÄùTFgÑ=B+fÑ:i EKœkð5‰¹ò`‘›b%¿c÷üþM.”iDDøs~·™K<òOâîÚp­…@ßÇó>ÕJ¢r2ê•0"ÀŸ{;<á?¢a›c á´ßuäBö´3¨þT·á›·Ñkö/²±=ÜþW{ô¦D9õÈ@n‚ó¢ÂàN_ÉŠb©oÆbꩼ—^x¥ 0#~àWEµ ?ÙÇ÷Ž7Ú™]Ýä-ÈõüÁ•µÃÆ.¡³ÊU®t:–ú6Qâb´½Ø¶¼O%ðŸÂįZ qZÞ=ÜÍ›w \ >ÈöÑ”¯‘[îA G}a.ju&‹Gç줬º-Œüã zñòö~4§­…ëŠoë‡ÿ𠚢^£¢®‹g'œ´]¡¸…šÉY¬ÕâÃüh¡î¹™Þþ¼:ÈÂ8ˆüDäm81EÉžÒÿj6UeÛÍ(æ ºUU1íù¶ù䥪ˆÛ•†þí B­—H$&êF´ 3S OÏ´V li Ó‰6Ðs£›õþ£“y—?IO”(ôG™Nü>ÔÒCú7Ùï‹ÈMO€¨åçï àÌù«™X«½ô/i'z‰uÍîìóÑŠlé (àWã0ùÎr>ÝŸÓäÿ7ÿ1•SHLÑÄ礱ÿ±’ŸœÁü¨— kÅÐ6]¡fr³ÚBþñIµæ^©D!6 Ö»j'ï¸^ã*àWcx®ê!ù–þ#.õwñPô5÷ÑQÊ`Å8ΦVf>c§õ \Ëž(²ŸÚþÛ €õÁ¯Bf·wÐïsVóîG2'×ÄyêÆóRc_fb¥ÙelGæÍž£rpÕ„Þf&ê»?ñ¶l!¤Ãºïße+×ɬ %l„ÿèhìVcåä%µX+5üGÁŸ‡Æ¯jèõéõ\%Øc,Å#Æ·Ù}êÑ&`*D[úãE2Ÿ2¿¶(ùG~<}ɰ€3ˆy«åå’P{MD%+íÀ3\Éοºb ÅCXèºÁ².ÇÒô±Þ‡P©MûŽdža½"èÓ¦‰ô©?¬ø¼r(Šˆdüù4²À¯&`¯’Ó”Ç>Er^·*ŸPíÌæiüG"<×=|álžú~ÃG¯øÃzçÄtrRüî²™;Ô‚®³qGo•Å<ÞRÓºcÆtN6W2¿öúݾðÒ]Yï_¡ê¥|ázÆíè_2´u>«XÝpðøÔ4þס#º'ƒ©ˆÊ3;[Yéàü×ÚÙˆ¹ ¿±jÅ»d6uÕo†‡k½GoÝÖœÀß[fU:GB P…@%k.Õ-õ-?k×èMýù úÝÞ5ê€oÏγGõ(sRà?Bð¿ð‰ˆ|†çìP¹äÃÇ|‡*ê9Ǽã&¡Ïc¿¡YîH>35ðA®0ªÅ«ä¿7@Ï}å<—ÿ¤®MqÞÚâ?öÂŽôÇí§^f"œÏgêá»1iq.Ïã.ܼ=°ÜÊpº‹Ô9=ƒÿè Ëí×*$\Ûó}‘HÛò]ÿDEõ`øm؇úÁRô¿jLýG’`ÿqßÑ–þ‰§Q`ÒÔ/âW¾]´‡Ù~Rˆþ»Ù¨o­E¡½¬LHgô º]¡ñêé¹A,wÊ|ÄõÑ_­’çµ¶úCéõYV¦ÇT³öO,ÉüÁô¢/¨Í:ÎP¬|!µKs\ÌÁ&ûƒ‹GEá…8"— Œ&6Š2\U²þÍpÉʼnžK‘LÀ3!ÿxL\ÄÉîßžÚÖá8îØ¶#&9‚ ‡ºKìÏ0…ë:hÔR©±ÏùÉ?žËÕ úÑÝzÖpvq7þc\aV¸ß /Qì*:Œo,éfüÓvò®X°*¹yÏ‹ÜÚYC¶@Q! ‹|»kWÖç  G°^ {Þ\~ˆ­'ŸyÝlÏ7™_ÒÛ"dµhtØ#Yo7YÀav0#; þG´BIl˜‹Ðï¦R=ÈŸÜÉQ2Ók99š©caøŽ·zU¼Q¶`¾CÀ'w™Žž»%?õ׉¿O©à4ljC&rvgøçÂÐCë¯*3ÿ#=ùiV¬îd8j›?_Éw«á?’wµØ@EÙ1ødp¿ÃÐ'u²g^¬ÇöÕû›þ*†Hï4‚èb]0â3‰øý>m4ù‡—™Šµç0üÁœFÓµ% øÕ9°¡Šj$™RL}ÊOú‘Þ‹]>FÿÄòøžê˜¤ÆÅ,!?ªH¿õhÎÏLÝŽý¯¿t-6èÐM<Ólà^Ã[/õÃz—…GpþqÛh_äe,Vû©¬èÏá†~w‚U‘ücœ°7~%È| ~U®ç¾:NÈ,~GÒ£¿ óçÉÙ·[F'r£<µæ ꟚYóýÛ‹XiàèëKÍãzú椦 ™L4fžqS\GÅËqR·§ŸÁÒ:Í–T¤2Í@¥#ÇJoMKe…]ïçMUâls:ùGJ« øU2Â ð«¡Æ9‰âÆu¿¿kƒDf|y{²òÝj¨d ]tVÕaP,æØ>eä0öаœ)‰í™#˜Ÿþ‰o‰ã<‚ùËßéwÏÿh‰B¼1é6ÙÇ|Fmʳµ.ñè†Üý®IÿöêX[WªÓ§›ŒT/æd§Qïau~­Ã‡k{þ£/Òhû¾Ã¯Q=ø‡kŸ~mát§¨„^w€è)³k§ð¯ÉHlþ#¥ökÕ‘oôJTi>Çä4–‹ßDK­ók¯ËÚøÚàWÍé:«ë±ÀtöRW7ˆ÷¸4èÒ!­þc8ÌÇsY^‚ýDï­X†úó˜på[ð5±Lðþ‹±`çÅlØU·N¤Hf™%BüÇ7}šøƒè;ªº=ø,¸ÇD;£Á꽡þüã‘|Dæe„{…gë¨ÚO¦ðJ‹5ÄÇÓ°ú3ÈåfPwɶƒ°Ù ¶›1BÏΊëôŽ jÕùåG=cFP ðäþèÂ^S-`,cv`íã¨Íd&žðçµ-KÈ)Н½®ôÎ0.‚e¿UÁº¥R—AªÆÿßàÓfƒ×o$Z\Èþ–$ºw„ÙÙ'ùÇ ,~juÛ쉿ý/WOò”{Í/7Ó¿dèyÕ—L¢7±bì@³°ôWÛÁ¯ªƒ†e•¯q6³>w V¢ ïý[ô‡_é@üŽryð[íÔ%øwüÚ8‰.ôG{jýîìÞTÅŒÕÏC4² ´i>+ú‹œ ¥Ü;ú0 ‘O ýwk·ì¢OÉD‹™gHDz&+Ýcºß æJ½0c™áeÆ‘‹]$ÿ8FTå;ýnYG+ð« db7ðÙ é0UÇøZˆRØ÷ÊÁó£–¡i-dýæ`@£´ËŠcå1W©jøÒt¯¯ŸÃXë:xžÌ|+vŒ·áhð‘OéfAúÙ–§ÊÛ-õi*^z9}Æ*3ÝŒË|¦ÏTÆ,á/Ï^_“…¾C³10±AgxµåL¾:b<2¿ZÉèŸ5üã˜YƒþW;Éh£+jïnÆóÉh&K¸Á©I8'—»òËÚCñýU |ÒV4¢ý韸Ÿþ‰ÝÈ?ÞÓÍ×ͪíìÄ£ ZÞ¤4g]&/.§~ðñ‘`;ÎÕsüÇÿ‚?O¢mÖæ¹N–óÏÿ]ýn$íœV®£h„ž±0k^†ÿx®ßÔw¡ßM®ýZw–W޽ KîÑ÷#xÕ7½ýw#Ó[6ƒtÈ*b€1¶â¯CTO ~qL¡¹B2¸è‹ZêÏcóNñ»dËößͪ5¦r­11ô4NPÞ¥Lè¯êþb|ë1Þqp·²Œ$úþõñÿâÿ÷õé¢$Óî~½’ÓSéï¶z—÷þ.8Åïè†îR‡_\&u=©Ÿ-èã)—¯•f½xØôÎàó)¸ÒÓœµ¢D‘G±® ‰Z†ËÞ’ãô”ᬸH/ÆUTÿ9Ú‘ >7¬÷C²®Çø+ð‹Á¯ÖÁÖ£ñ¡ÏÃjÑT«ò“5ch_À¯(o<Ä@l|Q2‚Øü-Äšt\ÇÅŽy±È=vÀåÇæG–oõ³aÜn^æzÑ¿$¶ZÁßÜËOåÀ–çãšÞpEQèq™h¹Ê¡&\}ÅŸ”!gIÖ•$j×^vn¨ñ›Þ퇧Etâw¯á÷ó4åúnÓ¿ÝÃ\ƺ¨‘n w7O¡¿ježgretØ€°ã±Û™|œÿ‡õ.ˆ œU?®ª+ÜÆc^m·ÙÜœ¥Òš§Ñ6åËñµú Xö€?f¶"[ˆ?¶;¬ìË*ñÝôîvŽÞÚ ðÜÑ|R5V›"k7ܤ~ÐýÕ s?±}LT­Ñ ­| a^̉M‚ÿ¨D%{tº·4Esæ'Cúïž É5b/²Å§ªoj˜œ¡Le£B¼Óžú£ß½¿2†n&WP‚YÊþy—<©/6"‹\íºßŒÚá†ÿèƒG_¢È©F³&ä/ù@À¨¯æ±bOÛ¨éƒ.«'õƒ)ÌÄê¬ÕX¸ÌA°º!øÕkíõçˆWêý,–íÉ?N’a M{gž@%ÓÙ͹>>žuQùRõ²Ýq óQS\ÅÉrƒ“Òþ'úÝÚšïú—ÄÔ’üÛþÄÿ¨[ÞL´¯µrìö~øÛtOܧÑk¿†ÎùR3ú'HÌm ú•¼¥Þ<žöX̦®X“EÄÐPïCæ‡ß*«ÉÌäñyãÛ2¿¶¼¬¿j¦µ ~î,=}[¸NÈ?ê›ô̯}©g!Þ]ª†ü „´‰qUt ¦? sHFç¹ö’ÑĨP?Ö·çõñ"qø;8àÅx¥ødÿðBÀ‹¦ó†{ÁS|B/~E6ˆÀüóãŽ:rÊÑB Ñ8‰.ø‰Tä1'È ßžâ-_ÄÕu"úü"W…[>[OcÌÇ.W!óö$Âï –Ÿk d}M½ÁãÍÃy ŸÛ*§Š?åÏ£k/µmò:à¹X{/ð«ä(ÖªkŠôOÌo¸ƒÿ?Ä2äÍœC|ßÝr4ò'z·²ƒ©µçº±ŸØK_V›À •©9ið«’rØC¤Þ•Þ#]°X35üŒÉªÓÂð÷ôœò4žlš­Ø\GwX•©|?ƒ5’ÃOæ&ÿðÇþ¯WvŸ§5ø·Qø¤:x¬ô" C–¨p*2x ÁVž‡CZ ÿqZ]eB¬;½8fыܾ73š§|ø„ølp/U$òãu¡Ö3D,üã*Ø=ø{jÏ`$Õ Oðgs@¯.`iZqÌ«ðÕ·°¼v½ø5*ÆûÐ×»O©‡èOí=üª×cŸ÷PZÿÖ ¼ÎOõC1µ”ŠöÚV[z7²’;§U$>ƒ8 ¾sLI_P÷ÝÆ¹Pówn‹Ñ`š·gÆpUV]ÇÌ¥þ£#Ú€´æú—¡þ|93{_«LegöÁÚÂdÅ)ª»*ð~UÃÑI‹'«nÂ÷tTA â›gÌ2ô“*ª³|- È—àɰG™Ë*e®§£ÖööÙ^ôW+\Ge/ø•7|Úqžç=¼sY®Ç˜§°¾û ÙB÷`ýÕpð«f9N GW%2³çä26ã껉éµdƒvýÌPø}Ðõ Æ"»µ NF³^Ámùky±ROú_M îŸXÐ,J\r Üó¾œ G¹Ñ•\¢.áµlŠ÷èmŠdl¢b¦7õƒ5Áæ¡ÿÍD%{[2š|æZæGMóG¬öþ£™‘\!© «Jʵ ÿG_dD½»ÑuVíþWá):v!J»¤Ó¯ÂtA`MÇGe²­ôt÷"ÿ8ô³ ó÷9Îã?®Ê;ôÀúŒ¿ˆ,êii¨ó)•ŒÊd¦#¿X^DƒöÿL„-éÂËnÔŸ·×ÉFÌñ€/¸„¦«­k¼¤þf&­3‘oAðydœ%±úÉAHÞb±¾§m'dbr2J„üÇ}¹(HTò˜èm–ÞîzhóÔ=Á‹ÜÁÃüˆ÷cÁÒøÈªàÏ9ºÊ 2 Q±]?¸ +8–þWcÐÞ¤J/%vâ-öþ‘ËŸ¼’ËôðÔvSõò¼u¥9£ç‰Ò‚þe‡£~õúHåÅlÿr…x—ð>ëåRQè§üGBô»'È?îpM£‰èKÂëtaí dF[ù„…¼÷÷ÈܱËãÑ"4Å_E5Ñ?ñb$«fˆµò$*å À‡`§KÀQ—å«”xÉGb§8öÔ“ž_õÀŽú“Ó¤‡ø&{ãÃðçáÏKÉ˨»òë3ê¯îøÊ¼™³Al"©ý`w À[ìùƒ>DÙ—ƒs¨D#µ˜öŽøèÇK¬Ný`&ÎBzÁõƒ àŠòaí/à30hŒªýÆó’PÔ`)³Á ŒR:úÀÐøUñ§b(ŒÞÁ]ÍGg¶ †ü5s“È?¶0¶uþW•™j8–l!K°uŒfç†úô®ð³ÞîÉ ÿ‘‡ŠŽÖÊÏ8­Рăœ¦ »7ŒÒ8[š›¨nïÿPø·y(xG±öE|»gp‡í{~(ÀP?Ƴv¹?NÿÝXæð)ÍSô2·û·_¥[ú µL&–ÙŸÚ ïw„úÁEèî*È®ÅlýÕDNëNC-|Kmlkf:yTbæV1øn2­È`9Iœ%ñ˜§Ìùôßo® o<@Íäü3õ›Rÿq[òŒˆgç䶪cxÙr3#ú¨Bt ‹½ß…úªöù™ÝÁÞ:Þu\YjGýA3§“1äþn"K>m0Þ¼gªO´‰ôQÌW t àµ%¼·­´Ýg_£s?¹ÛRÖnO‡»þã=^akò6‡ôO¼©½/e-Î{ ¢©Í2©õÀÊc¦WKU¡Í˜vÍÙŸ‰ê>Ô;Úó?ìùQýÈa?a{‚äJ~.-™M4V—Qצþ}‘ýî×ÉR°ác$a_ŠÜÿê!ùǘöO<èhB>² d7]áÍœq\æ}¾ ûáC zw‘\4Â=¥þ#³Œ#‹ŠCzIJ…¿®5§n÷ôD“ßÛU@Ž–·´Æz ìÂÓ¼Êü@ÙXôuíÃ_?Öÿ³¢ß}¨gæ,ÅzÔ#žÏª–øŠ‘d—±S@¾éù(³‰‰a-ê÷ÎêK„]×­ClÆ*åÁúUã7¤܉8ý¥ô—Í"PÿqÞÑR”qøGÃVêv'.OÃàgœ1êçÞá_F?ß•dߤG¸øÕxð«µä•ƒóÿlØœbä6ÑP"ÆC¬°û^ìÄ&õÕäIr™¨\;ê&ƒ¿MŒÿð” ‰*IŸ%“IÏÿÛãʱŽCÕ@=â‚¿›Ellצ'¢Û%B´9!ë&Ñ„X†Å_Ôï8ÏVþ(þ㹑KÞO±LãÁ†z’LÉKI–¨Ñ# ÿqÎñH/$o“/ô@?d÷/iÍ{9frñqò‘üF3ôBé?Dîuާ? Ò‡ç}‹ùç¡ßš:z-b•NFb<†;u'þ‘a°ïþ**SŠ Zké%{[%ŸKßÝOxû)*#Ñý(Ÿîó¡ñ«8ðç¹ð‘¹ñ`ƒÀ§¦qî²Ò[<ÆPj¨W¢oOýÇsüÇ4ñaüŸÀ÷Û=Dz£IBñç& ôÁD'Qø{Cð\7±¬sAœN锇ïö!&Oä¬H5^{&Ýù¢‚ކ§ºæ4™gµƒúA;B ùÇ_L} 3VopоþT¥ô¥o1Óþ#³V/ü*’¥™ãÈRzááŽá»¶ÁXTünþy}G=m1…»ò¥_K+,t;úÞE'åo6¶s$ËïQ•l!«9yÉ~tYeÍÕðKñÍç9E-•f,u]Ü1Ç!ý"ûewª½ŽŽ.ƒÌ©š“­Ý¡Êls Å5:t­æ¿ÑP²ž˜‰éëžØ,„þê Xw†ÿaGs ßÇùèL´Òvæ«qËt8‡ ™*L_ǼÖ"òíXýOÌ|_Ä]o§ÿÕZ3»™ þã o¸LæE9Ü•œî¿[ [Ò °^Ž2ƒ@è¶2ÿþ4ÇXñ:õ­ð*¬ýêÓçãI{š÷‰ÁnËEX¡?Qª™2dâ»ëÖÿϿȆ÷˜ë: ±˜?˜Úõݯ}¸¦¥¢ÛWï!† ‡^U.8:ëJן‚_eÖÖÿÒr'ðeèœø@^è)RÑ¿¤ú«Ë²²LN?÷¹¿Ø?ñO=h»'úÿ¾X§ŒÒ]ÕêSÿÑ `ƒ,–Ó(‚ùGæmEU`Žgb—ª“‘棚«±O,äwNƒè‘¥ÉB‡Êd¢Wîù ó?j‘ÄXÁ …ykŠcõm„{Ö PÖä /we3ÜgsŠúÁ%ð@¯¢ÂtÂe"Þ÷î6Æ>]âjð>ôGéõU.ÒÛ(2_¯ª¸*–9”ô§ ä Þé3ÜÀG¢ýí n˰C;ùœtÍŒ]†uãNí–öPæÁOÎ'’>Kæ‘ ¯Qΰñw_ã8oþKV ÷ã r7Œ~쩱ΟõÞz!ëÆEÜ,Áɽ`“•f­¼à‰1Ô-£±ôïð}É?Úàñìl"%½ báV…á?¶Ðÿ*Ÿ|ˆÿ˜ c޼ b\pÿ’®XcK¥7ºQ °…ì bÙ5Üõ8,pOvÆWÛ„\™ýUQ½µ,ŒÊ æã¢rdb<§'þ'5 ¬É`ö¯©ƒNNMv<^b¢Ý¼Dã“U"æc® µ^‘f¤Q›ü£˜Úx®aµ÷áWfRé½T¨·åÀŸdE;¾"—zOµIlóR2º$úèVü¦÷“žåÔå θN3pjŸ#ê­ÊC,ˆ5Íäìm>QàíN¡ÕŽƒ÷ÁT·y:—B)/.‹‰xU?NÉ(ø‡äÁ^ê“o$Ç´‚©ö%™CmüX3ÝÖ»¢•èÂÕÛ1Ãtw•å×–rÔÔ†)àZnQ?¸m¯2Ò’_5€™(MWsêç€êDsÖ°Ê ]>gW£›óÈ?æ*'œREV~%¹ÖÛí8Hýù+ÎqãÑÓGñÐHjÖ¢Kn&t°ó‚ç½¢Æñ*èÓsF*úƒ8Í Tjú‚Š%ûÏ+;ºö/9õçe=¼QCj8—J?ãŽéæ¬gT$ͰƱò8Ÿ¯Üó¤ÿWÜYÀWqmküÌÌž=sâÒ"¥¸; .Eƒ+)nÁ[‚wnw÷ Á!'A‹I€@Aüý'÷q‡p“ôýÞííï6!4ûÌìÙ³äûÖúópw¢¿ÿ‘›:ð3<‹ðç×Az?]à%ôwŸˆÞœ¤äHË…—‘‘nó«t_.¥2¢½éb¦µ³¯ÇßÕ5é‰!ŸÙÌu4B`ý^Šéd×Åe„žê™?˜ÿ]kn§G/6DãÓ];M«SªPÕ_ûý«†ÓÏÖú«;äG¨Ö÷wþ͘þ|΂Q˜xLvm‘Z˜!60#5üùxê_aVmæÀXuwt{€_Yþ#XôÒ#àXÜ8!ݵ.ŽÓ}úYA¥’AkML·,Ì ÿQPŽ¿:¨M!>€? “ÐOôøôKÿáëSu¶Ö”¨$a#¿ý3ìceì~7«B“ÿÛdIx'¥¡pFÙ¿^öœmÅ…Y!”Úþå As°›^Tìo§S"8Å<Ês±†AêËÕB±ÜórµìFCPšøF«º HΊçð OÈM–³Ò&­U [WÅ^­ú7õ5%þ< VaùÀö.ñ{%®§0ü@ìasðµíx»ìÄy>« 9…`þyLgÇPÕÃQ‡a"Ž`JáÛÊâL¹•ÚMðëÖ ÷–—·ø¤ï©|ÉÀ'oŠÁl±…ƒ—¾Õ a3Ú2ð.µSÝÀä~€CmK·KJªàšQ¿º„xÿ(¶ûHpŒÎ{:§},¯¶á³ÜõŠtˆÏ'†>‚g›Aœ¸$  ³À3'EEqjT^˜>¾`S«e¼ß§õ héÈÖFÒˆÿf'ˆé>ê ž¢æ» ‹|¤ü5•Cwø´Rp ètÎ/ z!,©\k uÒ+¾P»päj¿à1'Ê}ú>z²ÑB—d5ð‘WÌÿ¨hïbBq0õ»Yéh?ˆÿËÝøc·N;Í?÷&û~f¡å)úè‹ä |Z´½2›y@Œ>¬n5Š#O©hNõˆìl(ÿoŽ z´Ffq[=ê¯ÒS9ÿ1UþAÕ\ãõ»6Ó…™"[ÐO´âüÂö?™Ç7ò/¼C–#CJŽÇkŒ¿Ö?Óo?IÿG0Þm3QD˜,D½µ Úı÷ ðŒ¾èE³ à ²µ›^~wC3\yö·ðm(a‹‚bœcÿ (ã´TDŒƒˆWÓÿ±EO_”Â<Ç*¯˜ô1¦{+ŒJ(XV[c-,Mwøó¢F!PEâ¶0ø»ŸáW”@ü‘;ñJWΕMïad²ï%Ãè‹ÏL„//Æ$áq(j]Çkö”èÿp§îx¼a' ›9ùY`VRŠ_›ƒÿ÷Ÿd¿šàØ™¤Ì-ìøSü>\*éè¾¢öÕRbu!úÛº©Ï¨È:«žF»*~Óy/PsWžÊÚGâ¬H©Ôi¿)%•Þêú"³h¡W[Æë: «i©;µ,kÞûÒàWg”†êc1dè±h@z\ûÏ]ð‰´pˆ³ñyg ÊÅœ¦KÚlÞSª*95è %2kSâ°…ÏÕyZ+ì°UúfÙ©FØÐá0~cXï!–'9ú%D<"I¬÷ìc[,¶ROVŸì #`µ2a_o£YT,ÇŸŠÒµL'™¡oeÕùNU˜__îlÕšÕ€è ØmN®ª¬Ä+ò·üÝb¦Åøª5ø_qI«öMý«ÄÊk%Pä£Zå=‰µOÅ;X‡X¾8ýzEõ¹ôI\ÇyÙÄ#l‚vÕ_iB‹I¿]W"ÔË" ë‹o8ÎoUÀËUÀƒÍ*/&k·°ž­èyiKfòÿM&v1%µh1é—²«µÄ½ ÖÔ÷üÖµ+zzønpÇ6™®ô:{–çt“kÞŽ%˜IÖ4åìH%…Ó“)£6/힟£µŠ<ÀI™©ÿÿ~ … øåL¤óÇÞeŦf"ÿ*€çhÀú«¤‹ÞLDs’ÿ~&™alóáϬW@¬?˜^3ØÌ™ôï¡Ól!óýèH¼LÖ•.Å}š‡ý³°Êtêà/¯PsgOÎr¬þÁñr…~l±…އzTø<Ô%ÿð£þ¶Ÿá~•ŽLç­Ëñÿ‡èü²KôšfáWÁd¥mØ¿múr4=vÑ[¿ŽŽ¾k CÕ‰§½á|΀’=§6Ö^¡7Ów}a_¶ƒ˜ÀQû<Å\Å4õ£Fôw?ðͱ0'xÝÙŽü#H¹ náW=8½kDWêw}ñb½É?Î×érLj`?ÈUfGן.ÅzTv†ÿØŠõÚÀud!ÞI#¼wüßû&5ýƒÑøU¥ÐÿÞ§ å<™®«Ãð™¢ì’Ÿm€ú“ ê>p±øáWþ¶«(`Ûà%‚EV}¦–XkFn$©Èj‚~I[ÍSm¯ë,®¦€G8Š&êP¬|mñ'ý¿£¿KÕý]ÈBº3¹".wžÿ‘LëŽåÜÍónJ—_Q¹tâšæ&~Ë’”Œ2)uxY´qXð‘ºLk‰-J„]ÝÉ×êØÃêX®~¼óy'I«ÿüšìE‚X¯ð¬m–ØEçZC‰\x¢á ,™ðF7á*cSü±®ëÑ4^NüŸBÿW¬üùBüÇ,˜n7ð¤‹ô@ô Ê€O³tKMtû°ˆsœEWêcÏ¢sY÷WiW>(w…+öÇš›q>8 ;_‡Œ¾õ‡ùôap¹—؃Áävg`üD}ZúưïmOT_a‚ùa¯¶²JAö­<~ò)~¸”˜¦Çò·Å4Á÷&S@÷eÉax¹¯—ÛË–âÔ†Õ¥^j¼Î5r fÄ©AlZÈÇøß< ¨Ç…Ÿç©läW“{ƾ#ÿ0î¹ÚŽsÛÉX7ÉªË ÿb—–Ñ ¬Tu:ìÆ^ô¯ ^Ôíjø˜íä ôgËü(4­wZ¯xTþ1 >ùv|»ô wðÀŸí£fu ÝÍ{Ñ/h> ;*fÜÀ2'£–-#}z°Kùä ªç+¾V­ÌÉV”o„< ~5*ÊDÈú(1¾cFj1{'ÃWVGƒÜ‡'“¶â#÷?ŸgµC÷uâ?öá?Þ“•_uÄÃ.–>`þi(´Ü¥¸4]ÝWÌùTIíÀ|o bW§H׺‘™v²þg쯋­2šˆd!§µ!þ{0¬U&ê“›ÁLXýƒ{È?RPëô$§¤¥L×E úð›°wÅÈmêã?Ð/u<ä‹¶ÓêÎìYlþ3*×ìDoeúÏk™ãxÍÍ-ð Ì-À*÷£Ò¸·IŒäïdM9–ˆ£ éØ?eÕ ­xòõ¸ÏIàW‡Ð¿*EþÑ™JâMôÉ?¤½ŸŒ_kGÕÙ(´ýŒâFqz¦n‘ÿž$¶<Çùüt¡Ô4cÝL=O_#5ÓjÏq§ç©vÃSVµ÷³_Ig’³™Mà?ÖQ ¢üHl#oIŒÿH'v~Zð¿ø5+õWÑø•AßF^Ç>Åï2R(G©¿ ¤þj˜–V­Ì*»lMÕ 2’ ̯µ+ûãµÜú?Ê¡žøˆºÕ<úM×ê²ÆC»+‹¤¢ž¶>žùG 5%–ϦܼÅU ”’įîDá6ÞípæŸ÷ŒÓçVšÑùÜ™'½ëט÷8«œC& 1Ôå05§•Á†æ å‡{!ÿ¨€NJ¶¾T½€< ¦Ó‡è7˜³L•S ,½‡ë$2Æz…GmóÅÎ(þC­Ú‡e]îáEõÔ>z—ó`?׿ë±³R_­æˆeÅùje®Éªk Ðÿ¢’k0^¸0öó5•š/ñJËõUXÒ•ø’]`MgÄaüü·”É„rO ?‚¡yýoþ‘V‡},‚¥(†å©+ýˆë­ÞÉõXìä!Ôh‰H5¦þóôTÁmïÁ„À‰“gUÅk–ë‡ò^¥@û,loc¸‹Nxù¬™Üî'8„˜ô¯Î’Oák—€ž'ÆÇuá}‰Å=| û°zujo  {ïyŽ}åèºøNMé´©ßÍÇu•£Cn;Œò~r¸p5ÛàO"åh£6ó岂eט¿·_ŽrÔJv÷"+N¢þê”a§~ô:ÙŽ ‚S©8.p N¥A~õ““~bjíW²Ûc\Q5|Úb|põWÛ¨bz*›bï_ÃôµW6._ „“.B½“{A÷–Èg`™{Ô/UúoR}øÓú€ªâžt“,»`;“Pû a½:pß·Íæ¬7צÿc{2LÒ_±ÿÚýÝ@Ç»RþóqzIz5#©y[!ûSO˜ùQ–ÿ¨‚¿Ømn¢ÿ£,üG3³øÕB¢~WcwºZf7Âx^Õ¥¡Ïs¬wŒü#”'¶‡3ò¦ÅïvÃÿ¤C§½ óʨ–š¿ð†þAwê¯ò x¨UØÇP´¢éÿ˜âx"••AZbÄAÄsáÏ÷éI™Røb(0†¢'?•~Ô‡ùà{GQm<–u{I]Ʋÿ â°˜åð!صW¢'®7lç.1Í(`ßÂUŒ¦Æ*’ìhú»£ìÛñé9Ìò#ŽíÑ c¼ã9¼«ù½¼àWödþGNôw£ó„°7ÿ·]T~†+¨yá?¬¾æ3¶è_£_r\ùh‹~uÑv<á%ªOE }úíu%hV«(ý«­êïŽçé8(ÿᛲj2p ½"79Jb´8Âü¨»Â“è<)ç ,-š!û Ù²*­Ck†ÝÜÅŸ‡R£³€gxA›…廉5Moj×çÑÿ­áöíoª›µüæ÷ÄÞÞQü‡å?ÆáAˆå`ÉZºÿü*i¬÷|Ò6[l&^«LwFVРAX¹tXŠìjep’§ä `{vbóè Õœ±¬8U­…ÝkD¤uz°‚ ÈÅñf Éáð c³4*e½Òú1qþÊbúŸÂù—(*±‚ê?P¥ï@ʲ~Âo{Ñgw ÏÑ¿”¿_NeI9æ¼S£±ñèu“*/Ôe"ßsœëó•tÃå¯ßâ^Ë‹¡šÕÑ ¯ þÚ•ùV¹Øék1äGmÏU½_AÅè{î°kTÎòV¬vì"9`9ª…ÆãžÖ%öÖªu˜F†Ò åº_õŸ·¡›=Yi|ÎZjh½AëæsŸ+°˜VþÑ.jþ‡?ók‹RUP¾Ã,ãþ§ ä¿r®ßͦ¥ÀôAiò0W°DþI=Q_økõEøôhg£函¿Cmzê¾[DýÕR<ôê—ŠðáêïìòmøŸÁ̆s?wål2†up]éÆ~Ë?…ìÃÁ›ê`wÓ9”í®Çø·iÄ §á?¾ì½¨  $é/ÿGõõô™{3i ÒfŸJÄ$W?j‹×€ê‡óßÔ£V 4o"ýƒ½e“Ïô+ت)¨&ÀÔûÁ9-cþGÝ•>Á_©¯-¿Ø~õýºÝÓlˆâˆS›Ê+è(YŽ·z2ö«L v•¶#j$è«/Ï#TzéÁÚsü›]â…™?¸þãœ÷ú?¤9ÙèÁ•ÚÌn†ÀÞÏB¦½¤ªþ¼ãT—Q¨ça­.œÏ¹r¨Ø«ïS+AÍs]Vx bJ.bƒ¶Í¤þªcvÃê¿ÅûˆêþcŽÃ„*744„'‚>ùÇúwÃÅ̃ٚDgû[s }#YMIsªTí-‰Ñ]FÌ&Ö‚çbç“‹˜¦<;6áÿé›,Êb&Ø~ZÜ#r®Düôw±}M \RÊ0í¼ú»‰£¦“¶µW‘}œT÷2¿6¾ú%7© HÿyšwC´TÌÕΣ|Ðv£_’ùƒ'ÔÖŽ«Žíʬ¿/ª&?ÁüØèÂt€@måŽ SAºÐ{ÆÑdQÚ*‘jW¼ÐÚ¨tSÏ)qšö“L$ÊA¹öá£XýÝKê\­*QIN×.lLyÞ¾ŠD¾ÝˆUPƒõÆ:Zë ôÖqè?ßo)¶³c•¨ÆÏÓÑKœ‘“yÎóßøUððgD-[©¿Z«þÕÕ«¨Ë'ÿÏ‹ÿ(¿¯³ú;2¿°ÆkXi:];aG®Š£ôéXµ1ý/ó?E&ð)xF_°¦ \_u‰ÜXŠ<Ô²Ô$—ðæïºá›¯À/uÁ«¤Šv:†å’*Áêzñîý ùãa®¤.O¸0yV05Ï ˜¯pŠÎ‹öXÒføùáú0æŸ?eg¦’…~½Ü^æ!胬¢gÄšÙ‡÷²3Þ{ èJ0ë§Ëñ<ñü ð«W0›ñ ñ1½ÑÃHü•þUMæŸâsËaïWp_‡Yk'e%ˆ¿EÂFô‡%5ÎãKrƒA‡|Çbݹü;—ÞElqÚà tç³Á~lb•)x¸±p'©›º~Ì~úW'¨¿: Ë–õ ê»&‘Ó,ÀçqâÏ#8Á“‰v¿ë™Ã>ÔoÈñôÌdÍŽÔï¾1Ï›5èÿXO>ÓE­ðG™Æ·üê!ìÔI§üã 6Ìö™YêrÿÒá'V2#oLùpû{FBû8c”\€'0ñ+ ØçÛ pÓ¹æÖòWqÊñPªÛÜöj.O¶)þ¥ õŒ…ŒÇÌÿx†æ}+:²WPy[ÌÂ×̼àEë¨ßu…¹©ÅÕeÄî·ážéKëF÷&јõ/QcÖt*‘ÓÓÞØìË„§>XþÉô>¤÷oýç;äÒhÈ>>#7šCÅEÁÏ*ª³)R¿Ûtµ*<Ïp±[ßm‚Û>Ngß3žÅ¿ÌÇ(tyš‰ìt«Ìgþ¬;WYÔ( ‹DT$VD÷Ÿ‡2W•颜–Nà¶‹á?ž›»Ð/ig„àÉÜÙ»¢ö‰àW—ñšå%æ4§ïq„‘Pn#£ÞÎo¥‚?ü¨Å/BwlÏÿ雕 XŸ–H{þwõwuå2úíשߧ٣𫃶?Ô·x”óô¦Râ§îuÃv ˆÚ¨àW#˜ÿÑÉÚ!Q^hè'Ž'ÿñ‹jŸïS˜È, ~å¯ÔR¯ ”FBšjÄ«qëÿ(¬ôT>ªm±™«@8Z€«Sí>ø!{mïÄ9â„_=T/kMàV“ðo ¯F|kUjö&ÂÅ©ÿˆ/ÈÎùŠ™%ÎU¢Ÿž[ô×öñ‡NÉjºJz”¨Æò±ôÛ©%-Fý`~ï‰XHæü*¿ãÙG¯ñùwóÕšÜg}˜é›Äøù¹¢Ò°/ð‚ž…@VßDư‘hqW}ý«:̉ü|…èï+ÁJ¸È64 rÿ‘žwðgþT€ŸÕÔ'`g““[3ý6b‹Vâ~E‰ä­m[¢WËÄüÁCàWE`y~'"ž×­;ÄÕ¤CtŠvˆ^Šúì‚…2vûÉLýUf>yO þãí!úíð±s±XïˆV{Ãn€XNGx$lM:¸õÛÄóLjõîð¤,ÔnùÇH˜Kó+üªý™ð(²`ï+ÐãØ ÿQ‚Xû>c2Ië©ß½$SPeáW¸ àwñ…õVb±ÓæÔ2ro(AÊ#x r4Ñ(Ô™‚Äx1[é–fõWW™?èO}o ü‡>o'>ß[{øVí@TÁ]á»VPuI¿Œã:c˜R+ì`˜ék6±"ÿh~uŠü# ¼K(ÿí y ß¿×I?ñüG8'6Æ»¸é¹oÔËXÈüÚ§ C¹è??mö4öɵøäp>é•|L5Âð½î²ægú%el•ñœÖ‘xêz`H-©z°ð«ÆdµèðÛÆ¤Þ”àE¯Í–f5jÆŽ ßÞÉØÊî­Ã[éøÆ2¥>ÔqTŽÙ6©Aðw–~É]¼Átq_¯lt ¾ö:·à?.Q¼ƒ;N†.Ȳœ üü;£<ժќùƒ¢„ðr<‘ŠJW‘º§ÄSÄ´Z"È=Ω¥cÚõOO3±ý•ÚËøùp2D#+UàOÁnoÁx‹‰Žü#üê-6Èêl¶º“ƒWµ'ÿh‹~É1Ôé…I`Ÿ@¾åbîaüÝ4ºC:wð6÷Ä¿ð;y8“†ˆCàØžÿÓ7™©¿šëؙ̠WŠßÂÉÐO,£Þ£þª‹ö¬Éf»‡ÿø¨ž£ÿüõ»ñ»»@æùÔŽRO¼+ë´0õgÅMÑЪrIDCôKZÄë:«¨iahPÕ7ÞU4g•hšt͵ašÅQ?ñ'¥³’P³º"fòä:qf''®¯ŸÑ¦IŸ'y-Ê€_ )ãä?î2?ª>yGZy^r5³`Ža£q–nç„Ma{ –WI¼‹õ‘¼±ÇEYbñÔĠǰoV>4‘Ú[?bálÒŠ×s…3‰ŸŠ1jîXvñÚ˜«jÈÙ~ÎX„»+EŒÁ?ï@q®bçw‰o¤dþÙWìÑê+å¾±&‰„ú^äU›‹åµ&Öþ€ sãzÊ€‰´Ð§¥ ŒJ¦Ð— â º+8\ªá¾32p¯ÐˆŒ`§Ï°f®Ó »ž\RW„~âmØøŽü¼'8SJì@^ò1øãà¥eÄ[âûõà÷I¸‹_î£[ó£úc÷ám둬‡ÿÀCm×—qß^œ¥‘ÔïfPu§{î­þ,rb êaÑW!íÓ\…ÿðÁâGek´hÓ2×/3u9ó,®Ì~½“ˆïËê¿‹mNë1)ê׆Ç«˜Íþ £â1X `?¡;Ú4á£+‘-ŒâŠK€=À·¹çŸÔèþ7k3íš;§õ*¬[mVMíÆIx”å°*µaã@`Þ0ÿ|ë5ƒÙ—–Ï÷€²¼ÏÛæ¤ßDõúsÎ ®êyˆüÃN¿|J]ã5ˆý/f8:UÛ êw¹ÂZ lÏèÈœƒÓ^VçϸýçcØ«‘ðN%ÈRúŠÖôkXüÇvk$ë¬@í6ö´“Y‹É°»á½Ë;Ù½µð×ð#Õe¸ˆ®}ô³P X·UV.‹ÒýÅ|-º {*ô¯–ƒ7Â~xR±lPÕ0šú«WØýì Ói©onQá3ý«Ê-%gÎòî²€¨*]è–q¡~«“tìŒf?EÕn˜ùµù™ä6 x>9<ÌE¾É;}WŒB•)šÿxGÿùsîѪà] »ØHgïƒÖd®b þ¬6jú£éÿ6›š3d$™Òs3Uq¯9…Ä2®$7ë[;vð¿÷ÍOøM޳*©“Š£ùê‘TB¯½6‘yž†aéï>¦ûãšz‘ú”ƒ1ÿÚ7~êK?p3ôwSé–ÿ‘@ûUɤ¼Ö6ˆŸél®í'ÿQJMG¤ëMþ1 +3øUõ»wP-Û„MØ…NqįÊ)Í•—j{Nã1¼FKp¡`3[èÞÚ’¨¨º¦~˜Œé…*Òi}¾qwŸÿø¹ºE³z,tjã+½ŸJ¦aØÎÛQ¼Åz”í È]ìþÃ×6ZøŠäT¾Õ]¥76°½ž Ow•w¾¶ô,gm)½$>Ø]Ÿ+ÿ±WmÄoÖäM¹’V˜Ü$ŽDýî+2ûä2V%×ÝJ\eˆ“ZÅoê'¦¥~× ®&ädóüÀ ÞÕ+äcÈvƒ­ÌâªF\•J;òù†ýï÷Ry§î‰À*üÙ«ý¬X‚˜° žÇÀÂ'AÿÊØµ;üGp† Ô÷f¤W4;ßùÄà?.qÞ*Š×Ô_- 0ˆ|{€8u%+°êyUyš»nÛ°Äþ*^@õ–â›­t›P¾òÕß8kð7øœÕ0(kðÀ 8)§¥N߇§ÑŠò'üGqþ=íÄ—zA˜ñ&T«n—Eð_²6[E"Þ|ؿ†Œf°Õ]Š÷ƒO™Ž¥^Nþái†qu5 XÞdTÜØÒQ°Éˉ’;é—$Å mÍ@ž2 ÉêôB¿} Pcêmmö;àW#P“*Vfgýà[æ‚éÜ"9Õ!ýX.hƒè_zCžÛ‘O|¨o??‰VÕJÙÿ1 æ¾ñë¼\KàçÆÁRx!ç³÷£1Õð³ùµÍéôÔËÂ^½Ðs&z ØAô ¬^VyÞi‰õÓÛÛ›ùÁí¶¢Æ[ÂØCöº™zè‡ìvKÉÌ4ÇÅݳ]P_áÛŽ²á2'zeP~鉯pI:Éäa>fR¿{”þøêSè_õ¿*ÃÓxÏ? ^/¯˜ï°’镉Qþc4oýB™VìÔmÌæÈgž0ë£0‚bnZ»Õÿñ„þó6Æ@¦ÚV¥D-Ë=oQ+ƒÕÔ€¡¾ŽÕÈBW”:„÷x¹G0ôw¢Ð«…œúWø£´ú\ô¯Ê'~uYQ?øh{ Ü©_š‰¸Þ• ÛïS•L©ýƒ5xNaµ'c™s÷Åa­ïjª~•Ry£î€±È%OðÞà U¥ƒ·4»–šhÌ.VkpÝèœnC0žUÁ|˜xæå1øoð+UõÓ»u¦§+÷”t5\¾(4&Þ_Bü ÏéGÕ²¥13œⲦ|Å4 ÿœ>@2«}0À%A{â‡ó‚_Cudú‰K™HçO/H>òòD¦©AKŠ’L•PŒÆþ½—yµlDã°§+aT&Êñ`‡SˆŽ#áôGÃ~¬3^ uoU&*º·úý’©>®Á)˜¬+NúíŠÖ ~éª[. >åð«q(®¯¥bµ.|E¸yßìiÿ™ ®hÒž$CJ!ëôÀ#]¡’ÉG-ûÅSÔ€_Ýålþ‹/Ú*{àÏGU¤ý°ö—˜ÄÚÇ”·F÷Y•k dw4‘DãÐ4·¹+ýA…=‰O,ý«^¢1xÓeò;t”L56q}ª™‘(¿œÙ•”­Ì‰íj, “Z‰÷{ÄÊ­ä1Ó±Þ1ü‡€aòoGM³—H(÷QguÇLoŽ$ô€ùATÌ|BÇÅ$&{ýH]o"£O.R6çí@5ÉÃq¿y•aÚ¼Ÿ½y˪ î¸’^—¿Ð¾Ú'ódr§™Ù¾ l-©=îö1xwTW Eù«Ä/ô \e^ħ |¤„iD;¸ÀÞØ“•" ¹_a|íïàW·Œ£ÌykzÙPU”ùµ'P ži>2¦< †°ˆ±°| ÷OôdS6+s;“D)ËôO÷¿¯ÐOl‚^{o­3úí†dë¨ÅdRâWüÀJ<ø”>Í@jxiÏÔVô¤ ó¦¦ø‘Yå œêÏc»Ö:ªNõé!‘Ž÷¸™^GT7/Uÿ>Cƒx§«o,Y" ¿*…œ~ÕŒˆ"­œOœFþ±Ta$ŸR”ºˆþâmà7ÖøüÇoÔµZC¬• º˜»X‰±¯'\Ê"Ø•§ØÍœ"£xñù/Æøý›õWYÐ/QeXNO}4÷½’Øë ý Eñ `CD/løÑ+Vüj­Z Σ)oÊ5bnK¿½8Ê{bMf®ï"ÿXÎß„sï)áþ¼˜?Øà'(¡¢ª×E y‘ë7*Ì•ý е+{Ï4;ò,ª“¼JK>Õ¤0¡“ö¿]y¥úˆëtÀ­'"ðaÅÒ°%•È[’“”Eÿ*„l¡ÚRÍø¹;XTbtTÓ`KGÇà?NÙÞ«ÕÄ+²€±à ‰ÁÑúx ‡×™MÐO¬˜Ëø[{«fa€ë8ñ1 ˜übSpºç–j[øóÎzqøŠ±X¶£äˆ©}è™ËLï° ú% °Î9Œª†'½âoé"šËóñÀªææ|Fcÿ~ÌU´ìTªMÛƒG›þ¥Ûä¬pú«}DÑ6¦)½ÁÃyð³Qò#ïÈUzÈzø¦“9ñçI´.xÇ‹úwø®!`DþúSæGù»Q°­}~Daz{/2¤‰`0¾ zÙð}quCÈ?èלê¯h“Ø•GüÓ‚l⪾„ú«5äYé¹ÁtØ’T¶dêêYyË0Ì÷°ç͹×H|Gî¦ùG´zlUÛh¥ŸžOz[¯#ÛJO1VO†,oÞeþùPæŸ*Kžy‡Àn¿À:¯–U@â’ã3+À\ ï‡/ZÖ¼šý<¯ùýƒSy’ °Ò¹˜¾”Š«íLd ?ý‘‰MóMo#ýƒ¨Š³ôw‹“ë]¥?ëÈ)ªŒÒrb9òLçÊütð‚1¯ V$-ÅÝHó4ýì/¹®ñL§j@•Øòt¼17ÁYω>ÔEë—¨ê3í;lIÎÜrä!ô®b ûPtiÅAÆrÚûØWƒ‘52—Ê î~Õ½½Á¯6QÕïÅof%’{©­uÜñT_­uœýDôŸÿ]þ#Òv–þ窧6EKeÝým­Õ<Èõ²¢*ñCçÚŽRõ&Jÿª ¾‡ùµ«”ÚŠ6Óž\²æ¯ÆMmäÓNJõØ÷qj*{ÑÏÐEÌAÊõ¾è óAgz˜ÖÕ±Ÿ~+¦¯e˜ÿqQ-Lþ±Ì¥ñ®«Ü€¥¹­ÍÃ’^à¿+Šc÷æˆ|qÒ¿º ÿQƒSeU?nb«‡®ØÂDl´Å<"ozG'ÌKô¯ÒÅz…ÛÀ¯ŽÓ¹V~â'¹•ˆf.ø×2²wXflÅ=VÜLá¿ôL™§f‹eÅ‘j5þËfDöç`zò‚ÖÔ"ÿPé°KÍT¾—àLKõXF •¥¬Ô',ÖZ|s~Ô+›ªIñëAòýá+~"3¨Æ Uå+²¹½D®/¨ŸƒÝÝDN3ö#èÐk5&ÿ¡)þê"qMw‘‡ñ’¾ì¼¿qˆ¼+\GýX¼„Q˜„5iÅ'MÆÇ¤Ã¤dõ-1øƒ¶Ëjfò &½Qÿ8}袾؋¾UV¥2õ±ÿEyœæ4ÑûþéN¬%ùÊTT›€»6çlÇUc½Vœ—J°é/P¤Oþ±ÆHH¯Bn"ê9`pïùdꆂ&¹2ð°ÓsÉ«ý€î±Õ±{;YÒ/N½sr#1hÕ4¬Þ ã)vÿ;ãÊ€¡ä]IAïß›üÉýï`¿ ©³¿XñqA{b‚tÒŠóÛ±‡—ð‡™ž!±Ó݈í1u{9¹Œlÿ²”Œø¾ýheyÈ'Ä"·œôçViÝ8¯×ÉŠºÃfÜ×gÉe`þè%®l\ :öO”=®šûég߇ÒÊwFø˜V¬G”ßW‚U;^¶N¶ZŠ;yøHõWUÍäö^Ôíž"BOi怹©‡‡KŒÇk?Jª¯v¬÷Ñv_½A|æÍ»ÿDN±Î /uÍïíÅÌÅÜ]-*§<¹Æ#\£—1ÛA`aÓá?êˆíŽýË­,Ô r6bïȑ‡Y‹¦½«T…å9Áœ’Ôöý¬héùNgê¢ *]ŒJä3Ïõ{0—Å\ÔP9òJ¸¦rmyëêKE6øüêæüÇN£¸Z~³¥}+ž34Ê3f[s ÓǼŒT0*ï^o¢!å?R¿›†éçÑ“-SÐ=øwý‡ªœTÊ£ŸØCkþn=vû<ó£BÔKêÕOI®ÄTƒéxÄ_}s•šíÂäd)ôZm¼Ò„úݵ¢(ùG5ð«¸e Ÿ.¡á?¼E"ÑYzE1U„*£ÕË¢'Oó¨ÖôKÚ;Nȧߊék¥‘r«:K_…MhLe'=fäž»4b`ÎÔ >%˜#mœüÇyæVÄžÚÀ6±jVy,ÇÒûóÇFÝc(Ä) ¡ó¥fô¯ŽÛQ¿›¼) |iY̬þ Þø]ÔåãÍçºïâ7‡²æ¼Xûw«¿ÕÃü²dé·»Á#éT’(z?ÆÚo¡»y×:žø~³ØÀüÁFßØÇ¬è_=™° ^d?ä Ù­fxŽZøÎẖ'û?†OYBŽÒ ýÝwêÕ„¡„¨ Å-*¤Nâ?Žpy¸k7î43ÝÜÅ+ÍšV>mô¦Ä‰ÓùJî8!;»,ÿqžy3µñea›â-®YtÆBd‡ý¶°–첕©áXï³2ˆg²ÏË•¶&†ÒR|å?ÜÕú¢º$þc8ÊL{9!T¨ñÛÁh^Må˜ÍD¡ëô+4bÊn^ù†Já¾Äº£±ªÙô_?›6ñï[wÑÒrÃÈ?6“ÏxÊaœŒ•ø;½ácÐôa>xôwïËÆKlnJ0·{ØSOìôLNU§÷Å®Y|þmªdË’­´Æ]•3@œ®Â©TÍyÌ4Ö2ö:\a:.Ná=4îýÿí4y†(y‹“~Éyú3R]å?NèËè3_CÿÇa:Â/ÓÛ] ìÉ›h?D4>p…]ɹ<ÈåöS­° üÌõ3ý’F¶šJ¢²ið(布ž¢ó?,þã:5IƒÁ¯á?\à¿‹˜Õɽ–SìfÌ"oÜAöt†š»_¥¢/qœ™Ûõ"Ïl#oÃ3Øp?íh]gêw³2ÿ|øUŒÏªxoÓM2ýĦ+¥àf‚ÈÇPq[᳊†bàWy8G=-k/gŠIú*|£‡ù”.{G±—ÎÁÓ¨Œ$·_´<;ólûá r?¡šÌjÑßžÿ‘@ ÕLâæ¬€FF#˜kñóšŽê×°’Ù§Øg‚_•1·á?&áwPüš¸€9'¼'9“)Dü"tÇöüŸ¾É®¬BÁäÓ†âú·ûÏ-ýv¦ÕvÖ&ÁŸ×gÍÛ¶ŽèïUýÐOL£ìýô!qúzÚvŒ÷ù¸#.ƒ9ý©åÒ†(îÊwâŒ(%~`VÇI§ø'¶EK¨‘¢ ~€È|û]ÿqG¡Þ#² a²_eþý{õs¡¿{S-€ýXN=y NDC¹„'?S[ˆ]¼Bþq›.÷7ÌÊ¢õí²ø{î5‹ß5ÀpÖc«]‰%jÝô!gF=K ]’އô&w<©o-|‰þƒDÙ•ñGIåAò…9ØÔd>èïº‚Ã¼Ç ÛAˆRëcõ»TknECP¦ûxÊüx‰âàWš £Ú&%ÖÞš}¾ˆ:r1ù‡7ó«S¿ä½ížrK|O­ÏR<íz3ÁWâM¬Í½B¿½1±íQžÏhöÖÒámCwgö!FýÝ N^⪞{ê¿3•jã“üÁôÃ` Cµ·ÄÓñ™=°ò^<¡ô Ï ð ëbð'Ñ{¶øº¢»‚&]ƸƒEæ#{˜„÷È&9…pÕ>h˜Ü¤6áøÕ`8ö–äOW5SMïôd1}¹0Ÿ›Äkue»£*-ÐZÁf&Å"·F/­,³¡¼1û1ý?Sè±èB”‰«ßì´Þ/Z2:ô{ë5¸§AÔhM#/ºò’ë™Ïü¨­¨‚tF¿$X6&‡ û‘üê ìÌg/äV§~±¢®õ¿òÃ?–ÄgõÃ'Ü@Gk|¶FÌ; þã,pòÖôD\™ñ ë±ôƒà^žòüv«_ª =E„êåoX³ r+1·¥¿X }ÜþÄÓáÆ>s"×¶Ó0Ñ鲿’ô£¢ëØÙ>2‡Bâ‘ãH×°ý¦ ƒ+ò$oJFÖZô¦þê.ŒÅC¢ø¾àC“ÍïáT{]³ýÞÞ¦Ýt¥ó± *©ŒÛXüÎò£ëX/À¶K½Ï{º ®ê©t‡¯ÊÇδgþTQ¹fž0ß}À¯|áá×3EåùG##™Qœ:…»ä2ƒ87•ÅxÇþåTj–N7:³Ö <¿RbþyYê·š¢à{,lw{|ð-ž´'Þ˜yê¯Êeß = ÿqELwäÊ-)µWýÉf}Á€‘påë‰2€JÖ3+ÑÉÙǾFª 9ŽþsËŸcþ  î˜ÏéÏJÆýá©¿Ê{¾À±3ɨ¿Êçø“ãÄíe?õW·Õöè_…*–ºÁ [ê¯üÔ‹êa%I<ýÇ 8¯øø4úoZôóƒ_íEDfò#ñœ•E•0¿'éeïƒ t㨿rW#Ä(—ø‰ªt&׎cýUV¥£òX­Ì;´€Ø¹%Q#_÷ƒ¯XFþQ…¾ž¡ðçq©¿ SWiÕ°òéÉ 6Q)S’·¯g©ÜÇ ÞÈ×d9vx²gÔ¿õIì·uÛà_šQ•NZ½EsÉ?F‚·ÒÃVœ¥Šªþcñ}ZüGXžöTÕëÓ”7ï¦em°˜±Ña`Ýï±x–%YLDµ ‹ºŒþî-b›V>ªv"¦ •è_ˆ$ò.wiõŸ—#Ÿé 2¶ÖaÌÊ&YG†‚RÃN®aÍáøƒ\L‡M Å¤¿+©‚Û,ö뉥ïÝ)¥Šfê[Œv¨ÝèÑÙÜuô1ï2ܹá+W?²±{-ãÔÉ-êæÔgû÷;æ÷ßG%œ¬sB.r•+„\-äJ!×°¯ì upymvpa2-2.6.4/mvpa2/data/cosmo/nbrhood_tiny.mat000066400000000000000000000005611323370031300213750ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Tue Jun 17 18:45:31 2014 IMTxœãc```d``Ò@ d‚+ŸJsq^jfzFR~Q1T0 ô³aÑψd.ÅH¤>&}@ÌÄécFÑÇÌÀÈÄL–}L@¡l¿@xœãc``¨b6 æb&`…òᘉ!-$Ζc„ªÉ†ªçb$sذ˜Ã¥Àö°0°031ÃádExœãc``hb6 æb&`…òᘑ!,Ζc„ªÉKÌM©çb $sX°˜Ã¥A@ÊÏ/-)(-a`Núpymvpa2-2.6.4/mvpa2/data/eep.bin000066400000000000000000000026311323370031300163170ustar00rootroot00000000000000;32 4 2 -0.0020000001 0.0020000001 ;source cnt: data/raw/ga_14/ga_14.cnt ;trigger file: utest.trg ;rejection file: utest.rej ;condition: test ;condition trigger(s): S__5 ;trial window: -2..4 ms ;baseline window: -2..0 ms ;rejection window: -2..4 ms ;trials: 2 (0 of 2 rejected) ;channels: Fp1 Fp2 F7 F3 Fz F4 F8 FT9 FC5 FC1 FC2 FC6 FT10 TP9 T7 C3 Cz C4 T8 TP10 CP5 P7 P3 Pz P4 P8 CP6 O1 O2 CP1 CP2 EOG ;EOH; pf@pfÀ ™™¿ 3³¿€™¹?€™¹¿€Ìì¿ÀÌ<À433@433ÀffæÀffÆÀÈ̬@È̬Àœ™AÁÐÌÁÈ̤@È̤ÀDÁ ÁÐ̬@Ð̬À˜™)Á˜™!Á@3³¿@3³?A 3sÀ ™)@ ™)À03'Á03ÁÍÌ”@ÍÌ”ÀgfBÁÁØ@ØÀdfjÁ4Á¸@¸À43WÁœ™%Áhf¶@hf¶À43+Á43Á03c@03cÀ˜™ñÀœ™Á03‹@03‹ÀÈÌXÁ˜™%Á63‹@63‹ÀÿÿCÁÿÿÁÍÌÔ@ÍÌÔÀgfrÁš™ÁhfÞ@hfÞÀœ™uÁœ™Á03Ë@03ËÀ`fbÁ03Á@À8ÁÐÌ Áhf¦@hf¦Àš™Áhf.ÁÌÌÔ@ÌÌÔÀ33ÁDÁ43Ó@43ÓÀÎÌ|ÁÊÌ$ÁÍÌAÍÌÁ–ÁgfBÁ`fA`fÁhf˜Á ™EÁœ™ Aœ™ Áš™•ÁÐÌDÁš™ Aš™ ÁÍ̦Á23gÁhfö@hföÀ33ƒÁÎÌ4Áš™Aš™Á´Áš™IÁÌÌLAÌÌLÁÌÌôÁÌÌtÁAÁ„ÁhfFÁdfAdfÁþÿ…Áüÿ;Á€fæ>€fæ¾€fæ>pfVÀ43“À43“@43[A433A03À03@ð@Ahf†Àhf†@df>Adf>A@À@@ffFAÌÌAÌÌÀÌÌ@33û@ÌÌä@pfVÀpfV@œ™%AÌÌAhfVÀhfV@ff*A33A`fFÀ`fF@(A˜™!Aœ™Àœ™@ÏÌA533Agf¦¿gf¦?ÍÌAgf.AÀ@™™Aÿÿ A`fVÀ`fV@ÐÌä@hfA03CÀ03C@˜™ AAš™IÀš™I@43AAà¿à?Ahf2AÀ¿À?AÌÌ,Apf¦¿pf¦?ffAþÿA€™™¾€™™>ð@Ì̼@ ™9À ™9@œ™)A0AÐÌ\ÀÐÌ\@dfA”™%A˜™IÀ˜™I@33'AÍÌ A@3À@3@A™-A˜™Y¿˜™Y?,Ahf2A€™¿€™?˜™!A˜™ AÐ̬¿Ð̬?ÌÌAff A À @hf&AÐÌ4A43Ahf&A@33À@33@hfAA™¹¿™¹?ÊÌ0A23?A`fæ¾`fæ>è@gfApymvpa2-2.6.4/mvpa2/data/example4d.nii.gz000066400000000000000000012444561323370031300200750ustar00rootroot00000000000000‹ì¼TW²î« I w\ƒîÜÝ-¸www·àîîîîî òþkMdî\y·ÏÜ—Õ¿ÃéÓ½»Ù_ÕW_UmY«²Ê?1Zf.]¥ºDõ¿Á%¼ÿÝu3ÿät?{„å÷Û¼¼–ãÿþ,Éó§ß"QDBKÎayëËWºHº”é$n›´)Ófˆ[¬`Ý2S¤‰[ºAÓzëÄ­ÛÀýÓ¬e“­þ™=ÿGÃá(9}ËÈBI~Ü\5äìGVÞÏ]øÆgÛ’¼¼½…··¼H™/Þɸ×y>mäôw9„\µÉmS¿`Ôí:ÎÊ®ÏCçüuû¿M“¥ù¯îÞã¿< HIù^òJ2I%Y%ƒ|èú‰%¤u1É")ù)À³T’{üïY%·|'™¥´Œã¿$þ‘J I]^Í,EÀ]G²IMò¿ÈÙ@XDŠKAÉ$äÞm KdŒO É%¯¶‘aØ'®|#çxÌ”¡>&þ7Œ¤š¾òAâk(=-iô!Ø›Ê]y*?b‘¯$†l—-ú‰åÕVOÊe™Ã£¾äâݺ<þµG xÝVæKB­¯ßiA¯÷彤×ÈšDïÉBÉç§kKëi‘ì¥îÕ :„-Ó°U.#¤‹t’ÊñŸÕ¥0žÜ(Áõ{«Ût¾&Ô(úA‚ét§Í4‘6Ñ#ZÆ"ZKh™lµ­·©º^ûiymª“àK'%Ó¤‘” 4”ÿðHAüŽ”2F·ÑC:AÔÚï^Ò©ZK—j%ͤË5¡¥³{ú³F·³šÃªY khC-§}e—áBRâ%´~®|Áö¯3¾–|ÒCÎÈ$9!át–ž…Û£µ7ˆi[]¤™l¢VÑÚ]‡ilÛ­×õ°>ÕHÕÞh0bá˜îÐ;:Gkh.­ _jÔ „¤4¬rÔ—„0vƒòQ²êD¼½T§hgm ó÷ M†¿‹i=ž¿Õkú™Ð-úQ#Zh»¦÷ô€žÔÙ:P«Ã™ÜúF:“?z`Ó…Qˆ —Ž=>(‹PùºÔÝÄÀ¬?éZ©ã´§ÖØRSëp= îpà™~nñ-JxÆÒMèeCm­%õ˜ì’ÖÄS™@ƒû'Æw05;™üÜO‹×gèE}‰OWëeݨ¯ô½ÎuͨßàÛvÒAvk Øp\WhpßÂFOØþ¬¾Ðwت•¶Ðæú©ÎŽèiP1é?kÈb¸F>Ó–(Ü=½¯ÇàÀv½¢g`Âf]À¯uP·dÚ‡8@c¡G°Ò¶øÄ.ñþ!ÝÅ㑞Ò1䎮dŽid‚ŠDVÆ@Cü‡#µ^ié&«%³ÆÒ…zÎ"Ï­å±BWÁ†™èÚ22à ‹dµ1ñ>^#êê(XÿLcXi‹‹^ƒ/÷ÑÆZU›ÈV¿uµ@Cü#³D#ë7’[òù­W×àùc°ã¾a«—T€_PûÌöŸX‰%zkRjÝT‹«‰—íXèmHníMÏX…Î1èØX ‘4”ñR—|µ}žŽî {ѧà/ƒŠí£º_‹¶ŸçÝ# ½ˆïŸë]ñ ÏÏàë=Ô­"1’ÐY*êgpc™î'2VÉ ²e"x%Ð`ÿnD’øhó÷èS2Ðô„¿ûÁÖŠŠg-ªÖLcêé„ÊŸ  :Êï-ø~¿/²Ý[}ŒÏémýÀgž5ËЀS(C0‹A_ÍÎcdzVvJ=-¬¤œ¤¥Î:£½$“”èþ<ºúÆ`ÿ‡áçõ(ÙvØ>‚¿¢°çOP¾å¨Àe0ná>˜p pvX€ÿwÁ†›¨Ã9ê…sTóé’Û·ä‚[ÔÎ%`PZKc1µ¿ÔB «öŸGkye€|,Ä÷[:¼¨÷|jºíÄw›@í߆¨žª%ü¬ƒ«°Ë6âzÛ„'÷ÂWõ5õá*¤«twÈo4¤íçZ’Þø*ññÍÒCr-üÍó%d Þ?#9tÞÝ‚ÎM@ÁfãÛÃx|)lAýžWûÓ÷¯Bû÷ð…^ÇãS`þf_%Þù%Þ9N/x»l„GîxÀ" nÑm&]Ò}¢¥œÒjÚ\ÊKÉh࿎DÒ]úË )îÝ‚ÙÓ°Â!”{vk#Rãtù#у½`^ºÝ [ÉÖ{@¾l°Ó+ưo9Ïù¦nšXò­ƒø»ÖJn/°ÉS-d-l¯4# ” 4ð_Gv‰Gm>•~¯#8ãÓ#pu ÏãñýÔ‚ä¶l ç›Ž?÷úŽp+¼_ÁÏ2¬1Ï×J«ðúºž'ÔËùTF½MYR"a‰dGµm|>±•´º@2ðNP9WÐNÆÒ—T”…t§èê·¢q³ÁtïÔAT¸ŸãCÇ€9x}Þ]ÁózÚy µq,²ÏGýS~_g›©ä»/´ ÖIo‡5•í"–†±}rBÝŽïk’ ƒÂÈ@E¶KÖ’‘fÊ ™ƒçâÕ‡xqvè‡Ç‡i}r`'TÐÅþ2>f ÀãÁ9ôƒÐ€å^/^ÿ›áE(ðŸÒÐöõpj¡•þx@Íb‘m€†ÔNd€š†Îˆ'¥5ÿq4pë†÷®ÁÓ“X`LèEôžÂÇu|8ƒèŸOݳ6dùMþXÏF²ÛcêÁýØë9ö c 4­6Öp–Ä>¢Ùºàxv¸jjq¬¯ªÖ nhðŒ·NCÓ µÀV×ñýE²Cgâ#Ŷ´6Ä^R ÷Gû'‰£¢É$uùz‰?÷QŸ–qjö‰9­_¤?€nj¿SËÂÿÅÄ|_Ø=¼óÑ€šðb2ª8 žŒ†ó‹àÌ!˜Q˜Ê¹ŽF·Xìz°‚Þés;H¦hcã¬¬Ž’Ú²™žª»D4|IH[JËç`œ§Yô#õÿ Iw;”ˆØ‰øñ'ž%ŽÑü>u‡¦ò{&z0”×§ª‹ñÝÔ ±Á#¢à’ºÊ×u°×V­i]È¿Èu¹,½´˜Ž—.†/©ä[”o˜¼—lXà"y¾:p„lµ‡º§+µJ'ºØ¡ÄA/mËß#ðù\wvƒˆçÖUÅ+Øb8×c›øü6ºÔfÓ1<Ö_x§…†°Qð¿)ṽªvÁ~µ´w áÓ‹eEòÈ]ÉËþìòG«ºÀæ“dò­ìu"¿¥ÖEÿçé·ÄÃj´nxFa…=äúet¿¯ñù(<<•Þh:§W°ÀQ¶rÁ#ú¢™°& Y` ›Šu[¡!{ua8'Fr“‰*ÊA‰@Œ7„égñf3P\£¢í‘7# †à׎xn±=¬§Ù¶ž>ûÇ‚x;¯®ÕV^mM%p‹îÀû Q…„t£´2–¸…­\Åø©v GÄ¿’ºÒDŠQ§>¢÷-Èn%†ËÃùåøw€–ÖRhYSâ!V¨ ú ü=\khð> *î1}±Z_^‹BÔÓŽ>’Ú  ½ñõ^ýÌâÙm¢g–ØF.X¤ÉÑü’>ÀèÛH.™(#¥©ÜAbhnÍ߇ãÁZÔ4K!üÜOñÊ×Z hR½,¿Ð'—$ºs_§É ñ@¶î/éOñ‰¹¼Þ“ßÈ×È 'Ñ£¨Ç)¶Ì¢t‡¦òŽPüýñü~Y%]å„{E:ÒT{-Àß %hijfðu0¹nh§Ïã`•‘Ôà ‰ûƒ¨A/-‚&ñÎX,8ÖO£Bp¹q¯t!JfÛˆ¦î`_Ц~§±ô€—LÆ?¼–·X ªÆÔâð¾ .£%´6¸ÇÂÝÅhõ`ØÆ³ä³\02b™Üþxp7b&§¶ãY%ôq:}Ólþ‹.lëa4a$š7 {ô„½PÔ||KÝ/õÁ; øWHIŽ›’¯%'—å''VÈ ¢¥d³#^ч€ÞǺ‹5báŦX§¸ÓP•Ôül›;´€?c@Ú •[N50nÜ…7Mˆ¥¾X¯hÄö¹øö0º–º3½Ä (þ½pð+¢¼œ¬¨ßÃrÄwN4/3Z÷¾tµïjßN Gì®`ËÆ0½>y°°fÕTš€Ï·Ã6í`I2ÃPøÒ‹8¤È·ø=ü-‰Aßu¬MOÉN*àhÅD È—` …÷?ÕgRŠ=ûFÓ{5·ëoFúã>Ó‰åÞ ¿M…X¤õ© âÕ¹l׊o@ÔŒE9•Úq$ŸÝKžÛ„zÌåøž°¤6(¢ï$˜ž îˆPü/©®J#ö¯-šT/V×”°3?}» îË›ˆâ™`ûÄÖëS)D&,Å»}ˆøJÄÁì3 ·ç;ÚåZ¢”C@»½ßÀÏ&" ÑÕÕè‹Õj£ŸÙ40‹$ (þˆšLfË âr2¾Žori\X]¬¾•X اÁàÝxò}£/$>î–áýM¼?hŽ&tÕØè@_¼¼ˆ×¦ÀŸ+hþ4ê¨þX¦1í¶`Õ¥T“‹x6^Ô$Êœä¯å¨bþ§<>ðJjÈI:Þú¨vÔ»;Y ±]–¿ª£Ye°Ì ¼8›(ÞŒïNPí9>o"Óׯ¿7ô•†³UäËBd‚æDÈt¶ßzàã5>wN¡jÁwu%ªšÃ“6Øe&š8—ÿÉ]1ÈqUzQÿ5eÿ:ãëa°¼'qÿ=öp]_ö°5ìuQpÍ_r„: ÕÜýÊrØi_ÌÑuت \ëEϰ {MF×øgóüÑÑ¼ßøtôçÕæ£Œ½´¤Ô(þƒÔþC¤Ìí@è†gá9WÛwÆWu`A[P,Aû‚}'6x­ŸZJj+íµU6ÉöY’`w-¦9…ísˆîmä½-T~WÉ ÃÉíQ»`¯‰5‡Àšáx+ߨXóËOÅ/rXÚÿmÁ: %ŸH|öÁÕø»6LèˆÏêÂÜéàZ þvW#[V+Î#´• Ö6˜ï¼rðÞÁØQ>¹† y55ÃETá˜Þƒû}ø®Êú-þoN.&LñÙEG”ZÓHüêî˜ÿwã–´£ê©Êöìù*ü? /UÇóˆ€Áìó`^›ÇÏ’ûŽë[m+aô4¹Ëk_Y+lQ°ž±ê6×Üù®àü‰(o‚Û€¿1–l†ÿÝ£èãY¬sMHÉÀ‚÷#“l•! w•ûHöyÈ{jØöÎdßÀûapeÍ£•ÑŒïô8–K§-d¦D!–ëy$i-ƒíD/¡€›ù¶éèÉ0O@9NÁª¾þÈñ<2@,ø6 ç€GJù/wÁG=Pï¾þ÷<_ù¯ñǰ®ón,²bK2vLby¼ä"o–ÒYZÉ. £%49 ‹}ÐXÝÜU!ì&ÿ1äú±äߥQ ¡ÿ:âÑ5¥>oNŒö$ò»âõ ÄÂ~ºƒ=»>é`5{GÖzfç“ÞRZ–ÉfògeÉ-UéåfÒM—’è|6ŸÞ“´xùvpgÒö /é„z`_4‚Àû!tE aÿyÔ“nòVÖJjlЉʦñ¿ƒ ° +¦»$†”ŒÌÊYH‹¯ Ù:TíVKêÇVÒ\JF+‘ùü3*áq¼6[&!ãˆú :”ó!š0•¸ßÆéUihØcå[(%èÈÚ“ñ«á­â Åþ£R›K§2/~eqmâHY!M%&ÕÁUI¤u·„ÒcÒÄ׉‚áʲÛKj¨·r Õ r¶Òc¿¥z쎜ƒUG5‘f—l†ý#d¤TÃ#©ÔB·ÂSû‰ÜÚàI5°ux¬á­î¤fØCÖ*HÆxEæ<ŸŸËn9$+eŽ,‘óR ¤,™]'&!bNøcA7QÐ&ÄÿÍB\‘dAê  6’ ‡ÿ/Pß .@ÿ?·žhÞ\4kYì’F±¶t‡ÁP‰j: |ìzKH_£%¿¤#Ÿµ§§:©ñ-†m¥nŒlé¨>·¨v‡z§+v¼ªÑì1šؾ÷oÇ-I)™e›”@ñwé nùÀúP©š…±þÄÄb 1±ýRP÷ÖÔˆZk$' ŠÀëzMKyñÙ¤©,œ-¥_ld=l¦µ²7¼rž­ŽjhÔo¥d gþþzt”Tä´Ãò~ß*¹pvŠ|¸Ï$—ŸFˇ“Å×’Ñg7qQPÃê'Þ´¢kø å!*²HÓØG²f*;jƒ¬—•°O,½…µmØRm…î—hd 56HùRˆ;ïÅÞë ðÞ§F;‰¸«þñlÊð#öè+"Áˆttt7©ŠÂ„°LJVÏ„Í.û+%Ãý·ú5È+Z8DÀ¦?£7Í øoFí+1$- ’½Ïe©‰àDÄðrôp¸wéÏØdZ6J&¦'K–‡±5سÑ7÷õ•s=˜²æoÀn‘‰œgü›5Lo{É ù-'ÁH¢mq ÿÝ8Î^Å—äÔvUäˆ|â;µ¥t,}AÕ<$³_'?4"æàëð ÏCÂþÒú,èJ¾ì¥ü9¿Ol¶®àùF2^‹þkØ®/:ù@J@ƒýÍQÄ$ª¢ó$]Qg¼ÕÔ ÝANØL›Œ‡ëÂ÷œDB3l_óÂwž¬0›‡RÜ¢[Ëf¯É%×tÙã)LæŽÿ×’È´±%ðç½k´—¨¨@aÔ¹ ¬’xäë^pº;~ÛJNœ…?gkCr_mØŸ»´]n¸ß“×Jj&j§¶ôŠ+é~ï’Û=€žz3j0SMëS7Ç’,’žz;(ŽŸÈJñäkòxvªš¨ð¾•úü¼€xÞN×:ß×Fõª üÍaÀhÆlø‹Ñã—§JCöc©ã¨hâÿ°.!§Î¢‹JO•Ø€– 4Ôßu3Þ‰Oe–AêÊmjÆxv>š‡z ó¯t†ýîz  h\=þšOuØ„š¹ìÖ›ú?ÐØö æŒ ö]©œyögŸ ö7Æ{êwÇÎ\2WNHN¶²,Ÿåíå|;ÝË Ó+ƒx|HŒ ÷g€ªÍ@9mŸ¡Oõ]°«¢waÃçzCãé)¸Z#}€úüýHG|ž¦ÊC5ŸLŸHA­…ÿÛ¢mGˆç­dýæxþ0膵‰ƒVxv¬·ÉOþ ù‘° UÀ$òß)ª…Ÿ©tkØcb篴GªÃ˜±xJ ÁþÆH«ŸéI!ûe3ÑWóûóÞîì×u˜ü^ÿèNF‹¢yµ±Í`po&º'ð{<¨‚4Á"3üñïCÏ>¥4*žytcô ¯-&»v4Øß égçËz ‰jŸ¡K™ gwÁä+T=oÉisÑñ“° 1*WÒŸëíâäŹüÛÔKù·§gÃx¶sJÒÂ[C+okЗXê y!´þ$Õdzã¿è7Ô²Ÿé~ËBí—×Ü»ìõ2wr EõÊøã¡£@VŸ§Gb%w–ß]»üÞk¼Ò'zGݵ%-‚å°6–”9lÀ†¥u’´ røgJrú’’ˆší‘&¤c9Hÿ’ÅÊØ7–„êíýÀ1´¬³Ö Ž;P·ÑÛ© ·ûëCgÑÛåqHßk~«cõm,¾¯f 쥦0±ÅÖÍŠYf ˆ³lA¿HtÝM]ºEvh6ûÖBÃÝXV„*&Œe¢ƒÙä¯}]¥·‰ wü\}§áÍÝ ¼_f·ˆ‘¡XÁï¿MøŽ^ÁÝCxW Z*ËÌ7Måq‚œ˜@gêoŽŸÉ­ÑæšÜvSµg¢¯)M䣗fîÜp-¯ãÑHƒ]Âß<@éßP!v!"–ÀˆSØi¸?¼F;ÑEµ§ÿ+j•l€µà“G¥ ¡þΈ£•d€œÇ‹·èjnÊi­m ˆ†Kp{©¶Dùiz¸gä³Ïí ìr‰HWÔá9‘½•Ÿ†œàµ¥à_" É­½–±uVš˜š«Áuz aþîÈþÊ’RCEégRÑý>’¯ñûY²àYª¾ ºIŽßªõ­®ýB§¼V3Z¢å55R'j„µXï¤ÆµsÚÒ¦è°(«‘²Úèo{$¬þšçß#¤ ù\ª€ET€èÔÓJ%JÝ“znÚVÒúY!; ã¿C!BØ>¾?Ý€ÿ7èv#ú£G!í3ô3ƒ=ú‹„¶Þ²SWXe‹®  ñßíe¬,çßøÚ¯Ö§Z{Mn»ª]Í:®oô hj£,MõsdÖÐVüÉMaE[H5¸¾”ážYD"æ¹DÖܶY»Þ?1FÈPé!kä3‹ …e©<£ÎbYm*>”'É„1l‘­©ØMÒ(ûœWé–Ô2ºBæË&MÄgÆSßÐ$zB¶èò@Cû'Ç.Y)­d³ü(™ä–ÄAéèûÞúÑÙÒ,Dp6ªÚøÔ5 lÕod8_;;Mdž´•Ñ’PFIt¿¨Õ§zÏkä°l 4°zŒ’I2j Ÿä§géªaìuз֕È_#%«6Ò÷²V/dÍâRFªc­l’Sñ; ¯$Ó2ØýŠj8¾6’.Ò7аþƒ£°|#!逳h›i+Éktµ¬•ä†ìÅB3¥ƒ|-ÙùIKלH’K\É!¥%³¤”² í­-³Ž“ú:SÆüË¡w#·t#òSûÜ'+Þ–Õx¶œ – ü½‘ÿ'“ÄRK¶Éd}(i¨¬ZÊÿÁ½þïU¥ˆÌm^”xÈ%ñÁ÷ûèÿ4R •¥«„£ÛKò?²Ÿÿ/ÇHI ³¿#¦£ßi‚À];Œ?ÆãñÇøcü1þŒ?F`FlI*¨óÓ-æþ‹ÙÑÿ‰è|3Ñ‘jÒ“.¡!vˆIçÔ®mú¯Dt>‰éï‹ýÅ\Ö ù;½PIzäô·?É"wÔGVÈiéð;ÛÿûÆ×t³™Á™Šgèf³‚n‹_ ƒÄ“<ò½,•;òЇè3¹'õ+mþøÞñÿ†¼YÀš„¾7½´— tþ9e–¼{5I+é䌌Ó:Z«k>ýAëêA-¢¡µ­¿Î%(Îóøùx”‘Š2Û¹Ô¡’A7KY-%½Ž–XdÜÕöJ?µlÍÜy¢ýØ¢€ñ+‚¤ÀÿºG?RIQùAšƒúž¾Ð¸¶Bwh"M¬g@ßJÓé^"¾¼µÔVÄBY›`xV× Z"»êgúŒ%q$jœíôßIP:7cmd}«Ÿ˜»"|¶ÞUwÏÓ­¨‡4’ÆÖ<àuó}‡·ÚâÛtûÞÚYW»`åm²|C„ä4èä¿ÆÌç9òø+ ?Åßmðú3~ën=©Mu¯îá¯Å:­ o!툟7ŽE±$VÜ~Ñ0–ÅŠZuÛ¨õѲœÉ*¹þÝ#†Ai¤“¸DýzI -t$ˆoàóAºL§ùk=öëy¢a‹^–RzÛ<ÖúA¿´ÒXൊ}i7ô„V±^VÖž`¿v(¦»¦0hÏüýGq8[[ºJx<8X·øy^/ëB¢t¦žs0{×Ûhp¢ÂÅ~t»?Þk>ž‡°ä€/-½åS¡aÈ0½OÝé_2¼UHÆËEIª ñ¾»ºá'¢~'¨êvݧst‘Ñ¥°à‰”Eý?µ„&hÿÏÉ2ð,’Ýñ×KÞÖ'Xà°vçï¹Ú5º3ÿÛÈ U¤“ܒ嚟<îÖr8È¿‹@½ L—Às[è&ݨSù»¸Þ”,Üâ˜Ù?ãÉU<ÿ†ˆˆh·ô¢Þä±ö|Ð$¶[«J t hü¨þ~iBwÁëÛ`ü<}ë ? Þ0ž-ÕÞÚ%X§#°D *þeÄ׿æ<Û>ê}…V:^¬Õææ ¸ ®h#MKFhˆÿpä ¶É©ëÙçñþ°©ÚA»ÂøËþ^Ή: Ôã©pfýw$›ÔÕc œ ùÔQ}úƒÕÒ‰Šü{Ç3g:½¥ÇèrI¹@ƒüÝ«L-_N{ù+ÝGÁèA~F€Qü=üKõ€¿³eÏöòJ&í(­å¡ ‚÷‹ðòsl?¡ õ£Þ¡j(ˆ †·§DÂa*‡L6]oH%)h ¿3â }méÝš³·{axø>&ïô3;v×ÉØc5ífHÞ®“`Æn@EÐv÷ЖðþŽ~n‡È}—¨™ž¢œáÂäÄ›ØF¬§}nsu–ô!½‘Y¾¤ê¹(7ñæ:ôm0ˆ¡Ûne›½àîêçôÚ¡}°Êl80™|èæ:>¤¿ üá­+|8ާ¯ó‹`°Öyª¡äÆ>#'F¶ol´-×ÇÒ=ˆÝû÷§ŸüœOBiXŽò Ç£}м£py<ì¿Èï!øñ%^/ɳY¼·+¦30êÔÁ‡Ñ¸dË5TG‘íêñ§»cÀ€}d€[ô ŸXà9~k¤£B+ í$5Í5tn’¶%ê·ƒ})Ï›éVê¼ Øa£¿nú·Sõ×@ÿÞÏuþäóQÂuø=©Ýã¯(ÆE˜r^œÕDÏòkzýZKê 3ó÷¿ w×ÇbB?w=_Æž»ùÖ£Û `þdP÷Ñ:ä÷…DÁ8¢ÁÍññ5<ŒöÀ’dº_àÈ~b&ùÁ­‚sÛ×—Ùê –JoImŒÖâɨú©~ ]j"”/,Þ|‹Ro"ï·£ÃÙD¶ëò¾ÖùTka‘ êÖú9à+¼Ãp¢*ð\À×·¨OÜËÔ?Áì1¶ù‚¨ØÂïh–8©çàÆx­''è³öŸGøŸ€n§©_Ççþ? ëû£mQ¹qèû°¾£"Þ„ßoÂñ#Ä¿«ööcãºÿ öج!¨÷]×`TÁ¿hXTð4Záô1•'R¢[J*‚o´’¶ Bk!}/¾–TzÓüܾn¾J7£ë0ü½”¿ÇÂèóÚZÉiòÁ¬4 œåZøü˜¬p€¨ÙAot–Œw”ªá‰&¶+Øñ1Û¯RפFú•ˆJUÆk þÏo ܯ،2@Náñ~Dø8t{~žãïý:‰EÜŒ¿g°CAÞwѾˆ÷.Âòñ<–c£¾¾¹JdÜ#ûíÖæàtqŸÜªÙ8sNò< èî ûÒ Y&T!Ÿý2(Œ(T¤½©ËÂÛ0ÀÍdzÔ¯p³Åß ¿& ÷wÄÔBÜL€;ýê^ÛáÉ4¸áî?àïø¸Æ«OyÝÝ:‚øØÊÃyþke¡Kž=YF*(–Šn0q ¡3RJ(uüÌß•P³~®ÎGp|>tëù ô³6ÌÕŠ¨Á?ÓùHâa-Ï;éP?³å^å3î^ˆCèÃp2fQ=,‰°Å:u÷½ÓRtF‹±Tf«B5ô³&–2ŸýÔô’œ.›ü(+$†c_Oãi·š››»lŸ×x¿·éwª ?àçÃÚ€=f‚生ëj¹?&¶•gO±ß ìôRæIL²ÁÏT@È ©} /4–µ°’Âÿ<û§ù©zWÈ)™Dl”zÕ>wßùy+W°Ï©‡†sž¶Ñx6–¨_†FLÄˉŽ-ðeL¹F68+¶j½$aP w}ü(ÀXÿ¹­`kw_`Sëeu€Œ ×Nhøx¾ ›ÏF³jýE2‚?¥=¿»Òý j¶‘¨Ÿâ9hA_­Î¿?ñsMXˆmVð|±ðd1°k Ð0àïḞ¢š˜F.ˆl üÝïó‰ŒýZÀâ“ >È:©K·Ø#"ÑРøpà­ôö3“ºÙþ>'SŸÉ6ø?_ëƒy4\"ÌÑì _îgµZÒ®ÚÏ7#ûÙöûu!NjNÝ%©5>ðNØÒŠÞ …¦šˆ…~¢*|KVÒc×ÖT'ŽÄös=vøs¡÷ôfì†_Å¡¿¿û¿ožÍÃ…àúPn«Ðùù(‚«vQ'lñsŽ×ÌYPÿÍÆ"ùÎkÇ^©Ã .D!w ›Ùa[©)©Š?Þσ ëïçg2t« ¬!NÝJF#Ñþ:Äü@žÍõsZæ ^å3ÀUpw™°@Yp6Õ <Ò¬ŽËãaé*ô®ÏÜœŽS±Å<ì#–Õ|<Ý {¹û}û#â;`ÌZß'=—¼».„.jîó³Ì7©‡·c¹'d†ƒ0*¯úìhI|ßZšÈd‰NÅÒ®÷ôÛÍi>ÎÏç]ÞßÛ;;tõó™n£»-D$,Ã>‰5?¹a¯.À›+Ér[x¨_ '=\éÆÖGàÍ ì5šØXNx öÈÃ(H½Jþ/Pü‰þÒ™üïj¿¥Ô<-ðk/¸5ÜŒ˜«ý¼aþ:ì°G[ò¬€U —o„­&âãUüëævs7Ôr°{‚Ÿÿ¨¿ßý'¾e<ùbÊ9ˆúè²äb¿‚zÝK Ø#!ÅÑþ9²@‚ù™þ»³—KA_ůç{“°t\¨¤U`îl4Àùr´¥GÏ*²Ý@pÏÄ“•±ZyìŽm‡À„7hƒ[í±¿/tzÙ×”Í^U§òW=HÍU= ø áû[òLâá¹êZ[?'~»Ãê:d±øÉ©º›°,Ü]Iô¯¥&ê¤alœŸï|¤¿'ºèSóþ6ͧÕPø^~Žï#ꎋmöÇ~vøy4šúãjnmÁv~-­ÌzHx=à¢2C>Óoõ{ö©)•nMØÚ OVѼ2¼{`ïDâ %ˆÛ£týùÏŠìͤ¹Qr஀íÆÐÿ¸.gø™â砀׈]ÎŽóù2Zկߓ Úÿ©“ÐëTžŠÿGY#ù@œ‡ý™ß[лY,ª¢`-ýß%TóüZCýú&§@0‹5%BÊh-I_”Œøè€g¿²^èäÔ`¤_'h¯¯õnb‡~| 8ßÂkìHØÒ›¿•á0 c‘ì’ÎÄün¿êa°º¹/Ý#'ç§“õ6øYÐg¡ú“Üy`‚¯Ý¼'546u\PµA/+â÷ï°š›á×­½¸‚j¸£Ã£´56jëg ©ï,M`ûPº8À³`“¥â®iè Çù.j¢Ë¥Ù·<Ø  XV«Î`ƒ™þ8î^p»µ±ëb w죵6fûr(ÿ|lÔPc±ý2âR¶x!v= ¯ž {Õ±n?¶o ;&²õbX—AH»€â¿%…¥Š?žÑÔÕÀRÏ;þ᧦cw6Ì­Xô_&wÃZKA¿ ά‚ÛÉì.Ë7aoï$¹}¼¿Ìë;ðýJºÿ~ý‡&ü­±j+_;wåÿº.íŠÿýgIð×fß«€¸QYý«ö¢ä³Îøýœ÷ûÔíùà£_ï§ iÛk¢ nfÿ±p}¯öñY|{’Ç)ª@WûB–€¹ƒÏP‚îü¸¹ƒ~ ßv6€'Ôßn5“jx¯ šV%ω‘ñÊûÕ-Ü +ýùŽp~%Þ>O¾ˆeZ ‡/t‘e²:0ßÍ8›ÇëÇýú©'øÔ4õW´ÂûØ®™ºÕÅg¡K‰¯µI@ñÿLÿ• ö¶‡—=ð^3°;¯–Âß³%ü 7n•¯K :¦ÁíÈâØmô»>(.ÑÝG4·¦O[MÅgŽ/nþÔå _‰üˆÎ!ºFÁüVÞﮪÄûn~Í“0¦y@ñŸ¥{+ãˆÅvÄìØÜ >WÛ…x|O Ôñµþi æÅžý/£u!-¾Å³êVÖbÛ"¯Çü 9'ôªç¢`-þÍëíPË>àwóEíÁÖK`ÃiªŠ'ßë÷Åý Aeïæ§vëÞŽäw#T <¸ûUŽJÃóI¨ÚZ˜?Ó_ëwÿN·;öÔÚ{c1ƒ³*¶û}à½zÜ ëÝñÃDD¸U´Àï{ЉUüO¡m½À }ð™ 7Èdi·†‹;Ãݞج¥YñüP8ÚÙÏçŽr/„×›PôÏì©ÞÐIV×ÂZ Û@ž¥•l¥% vÝ Û´òŒŸûo-–:ïÏ7 JêB^pó¦MÁ†•‰yÔQëÑÅfZEÆÿuzà1¨Ñ ?ƒYm¼Tšê®>rg®~‚éóáê:þŠfY-ŒÅ´hVÆfèVé/eéœ/QÃͪöZ[Ú=P$ Ž`­µT„îZ·ú×r›Ê7Ý€C)°È`M£ ´‘;þð™ *Ès™ Ûúyÿð¬:û¼›vçùf{ο‚#?jŒ]È×¾Oì µåDÕ\zBbãõ¸6ÃJÁëkþª¿7`^îÏžÎÒ-Xï¥_ag5µ¤;#–…í'‰%k Á3æIy Ó%û×Ï4‚¯nuŽèþA¿Þ󰾓ЊÐÔEc¨÷‡Ð9<”—ìÿ>(Û¤ _Hu°¬î we@h{À³#hݬéo$‹¾ÖdÎvòE‚Ìý_I#êÀË2˜˜ŠŸ‡ÃàäÁ;°s—쑲+=’ÅêÎ]>¥v)'¥Šd—ô¯mdŠT–|Gr*±T{‹ÀꮘpçƒWú™sïhbП$ÜĦëàÅ(©d®í„'¾–ÖpÙ­Z1Œ½ûQ/Âܸt¸ƒ¥ªÌ—ªtñO4“%²lÖ‰Ìø˜ÎÉ´ýséÀ'ÝÌ'¤4ÚŸÁR™;:Bãé#Y­nn¬_¨*>%"îóËP€ÇäÀ¦îÊÁ@ÿuìH’= ­·‰i~%Ç#há:ÚdšÝŠkùíYý9Ëõ°MÉjÁ4œ“ƒR t‹%'Õôxy½ô&+¹Zï!1¾½:AuûnŽúRãU&Ƨ²N+  ©ëR'õF7 Èܶ‚4³¥´¯,yà•S|‹lkôʨ=%–Œ 4ì¿ç%¿D•êÒYÛa¢`•ÊN¸ɆR\"«­ðWyÌÅ ˆ‰f(c6Í­_Àü’t‰…ÐûAô³õÈ—ã°b0»F¦kj¥Í­€0؆ØI§p-ìN}UN¢Éæ@ƒþ‹ñFFH<ÙI+X\KMuûœÈmåì¼?¯9“¾å,Ú5œ½ïà×È,çݺq5ÐI·¶Ý$¢`°Ÿº,qWED¡BŽÿ3¡ˆ!ƒýhwQ’çhK zž4=ÐÿfÜ¢,@ˆ‹Ê•A©Oi6+j«ýÚ½n}ë)0âìŸËÝLUñy,Ðί˜[™î¶3Þoíþïòë^^ÔgÔz·5 s,«j廓®ÑÍhЉþ?ˆ:’* Y¹5¶¨ƒæ­ów»-¢ûéG|»ó‚îÊö±Úœêµ¯¦GìàùÐûŒe»Ä[ïý×úËmåq5 ŽFµäæt5>ø-ùvC ÿÝ8D ”f6¢£ ©™ýqÊ’0~Ý€;ë¿ügðùŸŽŽt¡Kî+æiâ~ èL$¸ó„k°Ò;m©˜\%¸.Å¥n•l¬v³AæÊ¿¿!5‹¤“TÔ²%Unϧ  ¦ád€µT‡óaxE¸_ìmüªðîhfc?çõ|¿òm”p ÝÒ;ý¨Ÿó ±Á~âa¡¿jè-}CI$I ö7Fh­KŸCJˆj^0¹#!n>÷qþ|¥;ç†n¶'è‹ÑàÝèÝ`|߃gsø·)vi‹­Vú£¥ñ¨„_ñ‰háeXá®&‹©c¥¹6 Áþƈ¨5©ã›Ël) ÷ÝÑŸD¾Ëú+aþ=Nþsw}4£ömç¯ùCŒ"îƒ}¶_ñ¤ vHß{Æ_ û…Ý5[ü‘ÐSÔ;õ{} ÇâÐQµñ…&Ð:RQ&K_¿‚¹»ÿÁåú¡þz¿-`[FOÓõo;êÑÏA&¢{kxuŸp×JU#»õÒíøÛÝ+wG]°¸uoÞò=ë±\Zz…{†ûw#<ýLMºÚT@;‰ÕíڞȟòKþ ÐRpwåõ~ø¸¶v÷Dd_ÖÐqÁ完:ÔÀNëàËc°»ûaW£ùÇȧáÅ1l2Ž] 4Ü¿ñõg©#ûe¦~@ÕûÁßd¼gô{¯ù9N.œFTô{¯ŒðêAXáVBlO#34'¶%.€5K4"µO*:欖ÄÎÀ¢ü¬¢;úD J„€õúÛ‘TOK_úõo©ÝÙ»Æm^ N'óZ£Ùý†÷%&j‘íZ‚u\XDÐÓß+°ߺÜ_Ö Á ýÝòɬ–5¶©ô~/¨Žù³ÙlŒ¡g4Þ¿Yõýxke‰-*6¸Ã¾N÷÷û† nšíüí®xªD”÷ôG·c…õ Œµæy06XÌ'®Sõ=Ò7Ô<ñí« îiZ˜ÔNjuÛ¡MɯÆû·#,ñÿ-9ฦ·÷ú¥=£r{è5?‚}m‘ÌÝÿ´À_ýÒ‡èŸÎg0ã ?§ñëeßWt±-žÿ™J?Ý+eé±Á—äÁšôBÙ-5uC-‹Úïߎu…ý*"?‚+Œ]õg:CÀ„t®éé‰v‚“¿Îk Yž^Bn?J–[äïƒYŠÞí‡ûÓùügpèg,’Äí;Kîf6Ú²Ùm oi´¤ÄrøkKrí/M¨‚>Á×WÔÌÝÑUšÞå ~"Ú)2ßòØ8?Æ+ÿ=‰F´eT=±Ä!¿2L2Æ]}ª¡, q“˜¾§Ž5§ÿÉaƒ¬v=¤«‚dõëÎ^’ž2@‚±ÿ±­ˆÃwñÜgDn\<7Óßá|Ó_äÎë^óuý²c\ÈkEl«_íþ>¶‹ÍBúû]²€º< Gç××®é*à zôö­ “<ú:Xÿ%°âü¤ÇÿðñvVÄÁ¸LmWÅ2‚ÉÍ|ÞÀ¶h ûÄšÑ ºõßWûûâZ¾áG›fÕ¬­å‚É-•n¡þ ºc„,™Ò]ò¢ç7aq «€'‹ZxrØ3jž]èÝ{,áz¼–~D÷ç¿?µÌDK2sWFæ…1ûÈë´¸Õ¶õÖÉnu­‘²FÆâ?[ä')e‘–E¯£·9í¼fÀs…¨ æ×:¨(Y-“å‡#m¬®ió­5$Û+HsÀ‡„èfa”ïƒ% –ÑÞi"ëÁ–StV€¯wù÷Çé(½%µ6°cVØRSµ¿Õ—°ý{@V|eïí­µ‡ÏéÐŰVÖö¢ë•@}Õ_ñ÷ýLG”Ï/¶á6Övb‚hßN¶X$Öûþ÷F-rÁF‰Jÿú¾¿ÔbîçF úÚ.›ú0{ÕnªùyäÅ—’Îö¹¸«™:òÙ¹tÐݨügõ#lºuC Xm)€¾ü+Œ†øi”¼pë[k«o®&N…Ö½çñ‚˜¨¦ßé+¹ 祂FÐVR˜ž¶–”!{–ÊRT¾’dÒ_ÂP ¶I|º$=@M­(Å ì?0ªH~™!C¤>ÕKDë“çX¶`©‚…´SrZ ‘AZJºÒͦ”¨’WòI"I%Ù%‰¤…AäªÐr6’:`-ò%)hHÿá‘›z°*¹þ™²5v†ئ¡4¯·„RA IiÉ%ßñ<øóHzI Šñj1^?%ù¨’ úë]éh0ÿ©ñ-~ü”þ.¹¢ëY('¤ËK 0&ÿ«»÷"óW ,“Tbç•Ùf×7ZÓ–h.ùІܰ ð3üügGZ¸žŸ'–WRAWê] f§µ£n“E’NûÁ…”ÒK+[kj¿è÷–ØJZ kmºFÑ9ÒV*È÷0$°3œüçG "<¹d‘Ë’Òb[Qp~nîìÇJýT—jÍ&m§uµHÖÜBY<«mý,ºÕ±´–Ïöé}y/“¤Qðm™çðí×~.ðcr[sãW7‡ÉÝ¡‡ô¢ÎÖÂÚ^?×ÂÁr[43ûÔ®é×vS+Ø÷–ÝJX}»Ïk;t„Ö—" Ï$g¼ýýQGbÃþj0ÿ„´8–ÁÜÐGô±~C×êiU+m}u¼ÍÕ0¶K7óøÔâûódï4‰u´¡ÖK”¶QšK2IU~ŠÔ?=Ü1®r¨ýSI¤—õ¡žááæ¸9¥+xvL÷êK´î¤®ÑOðþU½¥[°H+f©ü• ì£^ÓÎ¶ÂæÚVJSéPòdÝ ?÷ù¿øp¿³,“©zÇÏ~ïÎú¾ÖÕº^Ïé6ÝÉ¿?ëc½Í+'4¹%´`ÜG4¦}gá, 8€}Z[:«j…¬1,ˆjµ€”ú—X*3Ù-”—Ïô¸çMÝ£ãðù+˜¿{œÑ ~ð¡0aù.¼}fÏ4:¨¯¨»72Zy•HI‰^&²»ð'©µ´Y–RÓJ‰@ƒûwG.êùÜrDê"½ OÁq/»;ûöûëß·Â…ƒ~Nü¹úލÊvÁíŒØ€uΡ¯¨Ô’Zp‹`)-/ªxïmm>5SP>÷ïFN*žÂRT§`úNX~þσëó@¿I€{´öÔÔ<î>©krBîb£'ºüpS#À…*ææyÌdnåô#:høEç󬶭hˆÿ`¤“$à_,WØß‹ºX'QÑŽãg2¼¦çu–ŸÕÌÍy¸<8Æ]Ó‡GÝŒÓÐÀ#Xᦺëa% ‡ÿÃW°â2tôûÑÊheºÃ z.(ºW€¼WÊßï{Žl?\n.¸­~ŽûéØc=Hv ÛýÕÜ/õŽ”wWW Ó/é#Þ9¡ñðüEý¨îÚ©;¿Îþ)µÁQ+¬-È,Aqä$çÇôk]Ýÿ5¿ÄDªú~îÓcø·/UŸ»ßþs;Gôï‘êFÛ A÷Þi([ ^Q\&;Æ'7ÄeÛ×°'2ub/,AwYOÿ~¤¡ŸË(C¤ /økUGëOÔº£ÁvÏ'âÝL°}ye›ýD{qmëÏúy~‘ŽèòÆKb{`E"ªÀèßy¶Èln…  6X_Ð?µ‘ïg—Æ2K;îºUæóè^wË6HM¸V³Ð%‰ÒŒÚ7ÐpÿnD£ËÍ,CÈikQ¹=T>'uª?¥îçD^‚öOÐ E´Eïws']ahÛBÆs×ÿ_‡)[¨¯h82ÀA×Ü^KhY-2š v€OÕ×v䘠5¢Ñã’DæfóÞNÝãæîáïëÏçúu€âóIx¤×U ¿ä×}¹M6ÛIÌ/Ðaäwl+ö‰¿bt r.¡#üê׺øj1Rê©Z(.N ÉJ^¿å5ü,¿àó‰~η><ß nû™Ýœ>KýÚîΈ+µtÖŠj }ñdi+¥Œ?:= Ù-Q£þÍ…àØåg»YÇkð÷8°ÌÏdæf´¯Ž`—ñ~ ¸E~•„=xþ˜Ÿ!uy¢lµŸ`@w>‚®ç\:ÎvÇüŠXe,¿…±ZJÏËJ”'#p^žK^<ù'öoä± ~?à§'Ýß 4a5àT¬âÖ¾@=àÖö9ê-~F·&ÐVòåb^ݨ©u¸Aÿöúû}§ñûsb_m·ÿîg~NäÍ~î÷pzR†tŒï`_\™$G$‹_ßw0UÉhxÞŸ¯Æ_ÃüÚûÀàt~Þ=®é~~×güÝŸÛ¨™òÎRl¶Q£ê.†§wÂ}—#Vc¥û~ýÔCl}v #ÃŒ"® ê3éPü•©üÓÊd¹Lþ¯g““zj=bÜÝÓÚ å;êW1º¶¹™Ý*/5ôµôfëÝ YF…Û|ˉ7ë»[5r©ÜÃþ)w'¬›3Ø­|0–wàsXà°?‚p™øê«{:ÂøŸ…¼% PÿøeŒ_ã¡Ê5Ðk½[»jׂõ Z·”:è ìö«ßÜÀ£n¥œë¼ÞŽxp¬ˆ¨ý¥0lè¥ÙÈ• PüðæT²7z±ïyê~Tµ÷ØvŒ®”¯ˆê_^–Éc)ågåuó{»¹^Üj'ùQü±dï¥0â$ž[ægðØëæ”þüvk]KC*7óG,ØH·Á¥%|‹›d 6‰h!ÍÍјÒÜ@Ì.P<ÅÞƒtê¸5 ÖIl©-§%š–åQ‡*ÏÍù0Я÷RŠŒ8ä³üª¿ÓðÕ l3V_—¢ÔºÛÙ¦,OnùÄp¶é©åu 4Áë ÐË Dÿzÿ«ú†oéÇßõÈ›yíÊx™šhµÔN Pé ¡4‡æ„í#ðö=d5ûû¹o$¼ߺŠx"1ß?DáÚª—Ÿÿ¤/¾mJFFµäÚ\–˜Ù0Àéº@Wxü¯ù»¯V…OÃØr™_?s3œh®1tF@‚ä—©’Msk<ÏCû]Ÿë|5\ËPõº#àn­S·êåx~Fª›+>LXÆTFU±Jm¶š‹ .b³‰âÖ¸<ˆ¾)Þ6 fsшඒhªãg>ž¯:ó¼‡Âå±f Wƒ­%û¤9ÊïÎhNõ`ü½oÓ<ä¹&ìïÞ_׬îç‚ú [Ü‘¬(^oT"Ûç!U¥:p«£VÒºÒÝŸ ;âï”Þáçè­l3Ub3lÙC‡zôM°GmÀ+ˆ^¤½ÜwVs4þmÈ^U¦~ïV5 Ó«€w\M·‚Ì7ƒŠÀÍtâÖÃËBŽEýæj9¶ª…¿›ðÙ~<Ë¥±ÈŽýºÀÛ}¶ßªOøæ»p«6l_†ÏÀ§élïfO@d½ (þQrXN¢míéq úµ,ª€ºî沩®ëàólöz:yð¶è÷[Ñ”ÖïÁœ­ Ú ¼6m‹ß·ù³(®.ºÏgvbßJd·’ò1_Kve«Ú¨m=PüîšÕù°½|¬JìwAÍêø˜.ÜlÀ3ñôN¿–ý%?‡íC¿òA3x2ØÏt˜O—BAZú¹c»ÐémõçÃÞèýº_|j7Èç‘ ¨Å4¢i"|‡7ÿ]é-kÐ¥†Df{ò^<ßÈÏhVW À„Îøi¦ŸÍø> ß„{ýùàñš '¯_Ó¤#؇ßEÑÆöpä$H·Á˜£d{·Fä"øU‹ou+iÍ篙üÝmø•RfÿZê¯Úìcm<ú#8Z²gÝáqð!&ªÂñºèá=l°‹î­¡ŸÙþ{>‘[k‚`¿6¶c(yUM #ÚÙ­ø~=ÿÞÿY˜SŒõñ~ 80b…·à+th@ñï¡Nƒ÷:÷í‰øfXÀÍoX„%‰…Jø¸<šçŽåfÙìY"’ÝÃFã¨uŸJI´}?‘_ˆ¿Ü ƒÁÝÞ¯¶×÷Kø´›O¾ïÖ?‡~¸•wc{~u¥Àö¿û%µdC¥&‚zh› ýaPÌà§*viÆ3W͸#\ì ¬¾„Â7@¿Ã¿Ѷ¶(@}>7p%QpÊŸtëFô&*Šøxj÷çú£Æ›ü<`•èC`ïˆ?!ue0™¿7€ÆiÀ0,h& >ÓGi˜¾Äwtgвè6H³kz k[ÝJI6ÜRضéBýÛÉ_w¿ž l +¸9Bû™³\õ°ÿo"*¦S£˜Å7výG§áýLÏÅÙÙþèïd|;ߌâg û9‹7“Ïo¢‚®oÙÉïXVÔŸÛa‹l·å²x»–Þ’úÊÎúUNÛ3|Í0ÏŸ3tÝÿ}>±§ÅNñ½W¥IÀçx"åÄ4$Uíb<´Å¯Yί^ü cÙû-è™ZDû¬üì_ý4Ž%·N6Á¦Zu?ÛMR†ÌÖ÷ä¾#~æÈ~]Ìãèb/¸3ß5xL%·wúFIÙ`ü"-¤)Yp=ð.Ð/c¿÷ÇoîŠ[ýÖUÀÛÀ³öÂËüª Ke®d•ØØ #! õmm41—î‘ò𦜿Zv%1³Ó¯ü ^ƒ;kyåбËvÓ®’1À«Ÿýiœ ä‘‘òPÎci`ÿíÞ¤;¤ û9ïí&û§Öy ‹©gËZO¢É4«Ü‘dÔo¯e¼FÐ4èC>=!‘àQMmØiؾH:‰Õ"™‹§wDÄgv’ßKô¹4—HÒ=Ðà¯$}pK‰‰§Ï¡Ë£ØËKð5œž“cò*¶ÌÏgÙ’,ÊB¡|—ˆõ:F†KOý‚XY#U$"¼.l1í¾¾ßI¾ÁK|‚Ea‘ðö…†Ð„6ýا±-“½Äæ±d@ Á3BhQÉ)™¥0jµžàæ¯|‹ŠçÓyR}ê¯ 8M D´[Äîm½ ‹;jt%Ÿhj:è.RC¡‡4²…·C¨»¢ooaüQ,ºŠï owQ‘»ÄÙ^Ôó„ž‘ì1ÐÐý§5ˆ€/Á¿O¯#nçÑÁ¿ï$j—Xâ>ˆžâÕlqusk›öÒ¬—Êot” Ô}Ðö-¸âçl}«mæo4V%KÔ¯m‡†£^zLeÕXÒ‘óß¡t†D–dRÂ_ÛwYC f éx> aî:ÐÇÒÜõ,.º#úwɆ}¨wωÂþh@MرZ'Ûe°¸¶­îðx†ÎD;kKûÖWnuuwMum.߉èôë†ä¤ÒŸ_WÇÛeT=÷ˆÓ1Dì+Ð_¤>¸È«{øÝÅß°…é|si*ÄRÉ5ýÉÏ{ý3ì–¸k 2Y:û>4¶*Øå²_å V,£åÉ}+ ý×JGáÿkèýÐï&R7úU‹Ohh{Iô»+‚Nùc@CÑÇèyUê…˜šBëÑ/þ ÍÉ›+è…úc¡õÄø~"ßõ Ñ-†•²;Ô‰Q„ÁncÕ»ð!‡Æ’ĆýçñQöIB)D7ãîbqg±Üµ\ï@¼„8šˆT½cy¸.¦x»Q#”ãï­ð¡µ°O¡Zæ×¼ÛDÌ>·çX3.1Z/UùîGøÿ"Ùôµä’À®|ö×#”r3ò_Y‹d{ðyY‹l‰uw³Ÿé}:¶…ZjAºŸbôKn&Ø<Øh~ßÃ6®â›ˆ~Ñ—äüØ1ƒÕ¶È '‰Hþá"–À†¢}Aeõ7¾ÑåD@e)K~ºç€ºœ£ÚBü$Ê·Ì_õ¿€ßý´¾¯§ùÕ7uó#»uÝû¹ ÝüÈ üŠÁ«ˆÿþª ¨ ¯eÏ4Õ£nø<†5Ù$•¼ 4è¿'Ñ£,(ò3ù/õ+~/ò¿ûó9]QøÕdÃÉÄ~-‰Ï;ò¬1»îwÛÖ!Xd臱í,·ÜŸñú‚Èφö%D ŸóûÐÎHRO⩹‘Âji‰+ßJiº¡(]?|jZ°ÚÏ{<Œç›ˆÞ‰h÷÷h^o4àm WVáýC÷”Î͹•ÜÞ>¢ƒ›ˆýZÜÒÛ'öE­o›´¬NÂÖ¿òç¯G *ñ$¶”’Ï@Ö]kãGús!n­Nw½çnM¥£/ÃÏJ†¸/>FDÌ$œ'î›ñÚ@,°õŒGü»5Ï¡‚k©ŸÝÊ`3ô‰ôDi3Ȫ@þ›KgS%—nTsóÈO­ý‘·*ô0jµþZ¿ýd¹öÚÀù›M¬÷Åß[áù tn7öYsûke·P1¦´Ðv–XšL,\ÃîZ¢¹T 3Ñ™Bòub¿HBÝL?žŠ~!uLEÍŒ÷Ç îCЀ½ü,ÐYþ.wŒ³,¯¯ šºÃþÁ‹è¿;FÖ›c»åøÚ]íÑ_#çjæ[Xe¹›ÒRRÿ/ЈÿzÄÓeï÷c¯§ãËï´ û¾8J=w ´CaÂ0<^Ÿw&b7Cúð_$ó_„å'°Àh¿f†»æÓÝçòÿñìwWFÎ ~AØBjJÞ †?¥. #y)kô*\ž[àþ¬ÅX~€çQýö°¿¡÷ý6nÌ]+¾Æß½ %ìJFHd¬¥{ Öpæz>wíÈy϶EO‘û3IÆ †?žV‘²Ôã›ê£v>Œ‚ŸýUáשƒûßm´¹¯üQêcÔÿw½v}iרçÝÕ1цžþº ›TFG°Wh:ú³<.ø*±)p&ìp×>äÀe¬½…µõX*•P1[Mí‚í‚þDekmf±ðxV«dÁl­¿zyþªØ]ǰ€øîç¯Ù¾àæÖ{éïúZ¿Ý*a£È•+©ûÞøYƒÓXJKfùýÕžiyžÙ ÒƲŒApÜtÚ„>8™]Õ¤ø,*ëH-°[­1¸7%fú«$âÁMø>¼­ƒ#¿À‹;ÄŠ»_l’6ñwKlæÕÔö5½_Yúþ¨p'”µ¢ncym¡·2;Ðpÿn<^RLbj~+M•z’…¿×€ðF·0vì=ˆl؇W¦Ç×PÛ§ÃMîû¼þJñ9xßU?·a~vüœÆÊYN>ûJóÙ«fí`À0‹fƒƒàêW“å’”‘Í2P«*Aõ.é "ýÜ}©Q8w]X/ðm¡áõTyÙ‰é—DHp[ƒú»UÞ‡¢€îʯú úWÙ2šYjÐgl«}cßi™h¸¿1.I;,ÐRjNKeiñl0ªvw´*!}àIô®'؆‚ß]}ÉÏïFCå¢1èôW¡ôÕÝ{‡~ø¹Æ·¾Ö’¾ßñ)Àc¶.–R5ÐPgLÁÒGæÈemŽ$ z;¡ál¼ÆµÍêîãÿ‘ßË÷âïpÄuL8^ÌzÛJzæ t÷ˆ1WІWðæƒæµÄ|J˃ö±,VE JÎ@ÃüÝ1A&É’‡ÈÝÁïîd¼Kÿ6‡Hp÷Cm æoÂû÷ü{”*éº*W®dY}û…œüÙÆza½–®C"Xxbum„Ö’Wræ?£¤=¢Ú¿å²8öÐßëõ3¾½D“€h®DL<'·¥´¦®š±S&ÁvÛË Çƒ3÷4|bWa~4â> ±ñØ; 0)Ϥ]WÕ A‚»»;$ ž A<·`àwwwwg°àîî\Ïý¾Ù³öïžÝë?{NOþ‹·¯azº¿n¾²§žú¤*=`=¬ª¿Û$t¯jÒMrë › v•17­ÕMóKÌal‘]¶ƒÖ ÙOȳ׎Ú# t؃ú_imýX£ê *ˆJT:ym¾¿ë·1RÀÚ)ûÖ2†bßÿË*~¦å@»šÈsøÇ0×kÚÝŸëžl}Añü°š«Ô¿WÀ¸Ÿt…œ|ÒA¾’Ï$Ìá¯L°è6ˆ@ôç´6F%á'¿…þU„ú¼¾4À~” Z™(ކ’bùøAwl 9<¢ÕÓôº“íŠÈDÙ,Ó©çjÊ×’IÚÊçò(rO®Ke-‹—Ä0w$ „~†nâZ´{¥ÅŽ9Ùã,’“ÌÕÊÛ»dQƒ2jbwô®T–`ì™GJ¢¥" zNùÄ÷ÿÏ/‹¤¢&Ô"î>qû(h"Œ¿7µufIjæÿ;«œäB ù$5üÿ;Øë«T1è‘ ç|¨Se°¤”ló½ÄS#[쟜º‘PMnRáí$V°ÊºRFKù?`´ô<òÉVéleûaðùàò‰uƒôEÎøzN| Hëï$‰ƒ¿d৺ü@Ý‘:¶ôN:Ë·¡nÞí¿»Ò#Í@y‰FËJɧ‘uqázá§$üdþÓv ù+[ç%"Š ¼RW¦Â$Âkhšóüß[e¤1¬µ†”–~ز2Ö®"UÑÁ?^9y?“Ÿ’ð~½_ï×ûõ~½_ï×ûõ~ýOZîêíìÔ¨w¾÷5ÿfê ðÞÖÞµÿ«,ÕŽ“öwr.÷AÕSvÿùª/Y¥*1ü«ÜTw'’Ô‡šÐîê9]£Áþº·¯ì¨^Öž6ÒRZd´SÏšY‹hEl†´Â–ÐŽH?'ôÕÿ°ä÷˜龯®±ˆëCºX/èI0ÀÝ[ÏÓ‚öX_iË æEÅ÷¿Âúo5:žRÃj£‹5&öB»ë÷x@64úÇX¥±X~ùTB¤¥¦´ðøô=å§ìÖëü{VÝ™ï˺Pizä½§¿é6²@qk:$ðÝðãYKë*Ô¶ïí”ÅÐRR‰Høc AIÉ-™$‰ÎSwÕGˆîÔ«ÇÖ ãe~ñï¯ëù•À>²þ®‡}`aA‹f1íz‰…ìõ­žÕ1 Û9M¨íÉŸZ´c}«Í…L×xw$s]î7è¸Md;Œý]_ÀÍøôLÝ6h:Û¥{ð±Ó`dPÀõ»¾­±AÀ¢ ›ÞÂÊX ­G.ihñþÅêZ'&¯o‘uÄz{‰ÄÛ`6kõ°»‡ [ÃÆV£“{ü‰|wÑK~M]WÁû#XKnä³ßô ì ªŸ!}ù«ZÀ±ªHNpª¯lÖ°äówiÜu=îúÆ=øû dŸ¤®×ó#^q½b; !àa8Ûïy˳×ê00µÝ#"Ô\Gü¨ÄESÛ¤…à¡úâýÅe,ÔÌ6¹ï«»d ®ÄVê ½DÖsW>Äﻡ‹hVR‰ØR=ŠìOõÛE‡ý¤á'‘¿f ‘°M]Ð26ÑVh1ù$Ôžÿ‘z&•ÍHý̶¨Úx¬;S'#“ë[÷ ¿-òïÀçû“ÎhsÝ¥‰ˆêéØ?yð>RžÐå Eø€ë%zR…ß@3Ç5•APЦ]-è?\%à{ áûÝÀ²sÈçzuÌðÝÀCü} ®³}w~ŸW7ÓÄõóß FÓ¤ªÖš¿ ¬ÆRZßû, C>H"&ä•Î6†k-haÿÁÊìÏh ‹ŸÙ¦ƒrK‘w;ÿ>Õî‚Kð…~þš÷‘:ÝìBÚ´:SJê2}Œ…§ùl‹gÛYòälÿ|HaϨÞÀ$[ðo |&E Åý»••j¾ Œ§&ùþ>Q»š¨u½ßg¢‰%øô~øfßÉo€ï…BF˜¦ç¥5òn#ÿŸB^‡'ÑW\øà#$?À›‘Ï(‡ÿg'®Õ/´v(º÷ï÷•I>’$âØËüû^È÷,§£‘v¡ï‚°Þw½þ‘g«ü5þKô%ÚÙ7z…· «ëyŠ ˜‡øst]#‘²“ÄâãáÑeµ>l8m Eþ«•ëç–äšÅ~%“_TwŸê!$ìÆÃõiMMe×Ñõõ›‡gÌ ÎÃòÂ[X<=™Åæ“·þtÿ??%-ùóÛ½à—à+áì©~D•ø™#œºk+BÏñ±Dh ‡ÌÅw÷v‚â÷y,GΟt,ò ÔúX}‡ÎÇ:âÕõÐǵŸ»O´"ˆ‘„Ûè³Â!ÐòVOÿÛ¡C`¯@Š\ðÜÔL±AÆÝD@ ÉGZP Yy´Ä¡Qí„ÿoÞ.Û·ÃÓã±m|¬íè¤=ò×êúð6˜m¥Á¿ãcå TGÑÂ}2@!ª@×O÷Ƥ&.?Œ : /côŒÎ¡Æ*ˆ¿*a‡êò ržÃËØ»ÒóüÏÝÓÕ¼óö€€«@†_ý5ЙtÞ°hªU‰71â59¢%ò¾ã‘™*à>ay ”´„Äÿs¼b³ºëëoà%Ÿ’9†Ì&Y°~.q}½£ÚuØù‚ÆÇS;‘ Ýr¬<‹-Æ!á‡`B¿oú¾Q®#À#²{d8ÿEðâ¦f„ûì@ƒ[`ÊŽÿœÒòx@j_î!#~L|fm¤frùÓJO™€ï~Œ÷?á·c¹÷`s´µ6CæQê0!„¨…ôA0¿±Xp—¿ãÁMþ¹âg¥¹ªx ºÙê턬ñ]`^ñW^2`i3| õ@KeÅÈɬi(8.TDbQ—5ƒ·Ÿ÷×ôÇÑW€m|üwÔ& ~Wí ê¹~ÿ4¢>•¡H·Åß%=Cóê9ÐÂõ;ÙOt$€ÏcÛmDÀV*£öIg/4'Òç³_,1y ¥¥ V³¹ðí@¯|øþnùØ"‚OÙß§xû|wŒûÎÔ)¾Ë§»öŠÎFª_ŸÉ bá:ÒÀâz Q}–¿–á‘5’ŸžuOßÀ¢¢×–Ü.¨«Yck…秦®.lì¢|ppç´ÃP/€Z¿aÅuHäîüÞξ»®¯ËÀþÞú3¾°D;©qô±,õwƒlfj~6‚òoAºû bB"&¼í#ƒ¸>wî^¨'  ›Ž±K !;+oýù™I¤Å"ö¨`**þã24‡ o·ýü§yØñ&Ïšâ ©nºá3‘Ýõ6+ç‚/Ü$œå± kOÀö7ˆ™üåz?%´½~nÚD4xÝÜW×3h‰Ö&¦µ®öAÐ\› kXŽôµ<ð/ >›A¿×_é*öï Ë co¢]°s_XþT<ÀݳŸèNü¯ðÝ×áýãÐÌ"?éá°÷ù™h%ª]'g¸¾W“ý§RØ—Ë6ýŬ†U¶i6&|DتÙ5°PRJÙ+á5žÖAÞñxÁ²ÚJP`µïü<Œ8p–ûNžîŽ×1zKz“Ó‚ÑÀtົ߮þ>jÃùðýÄѶ™íÙsr+®nàb[]ûΪ‚†‡øÖû0ãRÖ3€ÒDôv’YEj5j›æØwŒ€%ÈÓÂOºZë{ùŸóSÖ€…/ÄÍÂuý 7"ÅZ~îàýûØfúšèïÞ…ôq¨ æûûÿ? £,aë·|Ë],5? 0 ñ>øÑ1`òç†ûT’åò¹&Õr Ú/A¾0œ4xÈFäïï‚mã'Óo)Z‚1¬žï yžÏ­ñ]¡¹9èh¿ÊÝS•˜¬x/KGä}0ùÛùù‘}/—ÆØ¾uNy­ˆ:óJEêœCØõŽÄ\¿ÿè£ ¬ð7|w±=AkÀ}\m´mŒðçD¦ƒ1©ÂÙ²ä ð£7ÒŸYJ$í"WƒK] Özi ëÙùHA-åû“º¾ï­´.r„ù´Yo¾¿ ŸþA¿cgyÞ߀ªÀl1Ï'âÛWý\àë°$÷ù¥DÅt,¼ =$ñ÷E*8ï¦~ãï]í{ƒ¸ãDoð„øÒx Ö"ùŸ®ZÙûú¢×õÁv~ú—]Á~סv ¯öCCˆ†a`à Þ¹ÌßÝ}÷wÈ?©ðIWÿÇÞ£ù”; ÎæsMµÕþhr1˜xØ'Þé«I´À#!G$ŽÜ“9øp¤œÁcZÉÞ¶Ã#Íc}§ÞÙüëz¼woD£ñwìßýÇõ¹i‹5¯ãÙóÐÐhì{Ý÷¿> âBÚ0¶ˆB Mðs•ŸûŒ¹?™­¿Ü&ÿÝ•ùìýþ|?±#Ä÷¨]kù>0ó°ê*42ýu÷Ãïⵎì}^îï„vGƒfc] ø=ØMŒ¿ï"›ë’qM5Çà“Ø~ѱÝW ldψ¨fBN¢ßñ÷SÍv Ír¼¸¯wös/Oøù‘wº™:üŒ§‚{³Ðš›†=„Xç™Âv>éŽîáܱÀÝ|þ:ŸíŠfÆøþ×! Çfxñ]P4œM–¼“?¦–“ ⦜Žõ•Ü8ŸÓgó÷^¢Üu·ŸŠO/±î k¶9LKõS˜A¢¿%Y£)Úø…í*óS ¿‰n£±¸;xQÝÙ?wþðškC:@^pçȶxMN#cÐá=#VK¶Êì6™û‚ë}‘e®÷÷úòÍÀwOúðÛyî][±Í`Ðo¬×ÁH¶*o n¢“›QœxZöðGD/`çU¼×„ûsˆOàC‰•9ü/«Üÿ»…Ì‘äf7±ÃíÍR°¿Èç:[5@–ìñF$póŽgit° ébõ °Åª<φÌMy}š@Té.rÇÊÔ6¢77ÿ¥=ß¹xï…Ö&ú©¹í ‘1ûr –b’{ºYÇñKw”–ïq×ÿ¯ î¸'§´:G3-õ'<åK-4‡-Ä+‡áß ÑÄjM¡iñëk0ÆKD{O¾½'[w@sÐÒ1}ÁÏ|Þ3s}CÛ dž”–„Ún3 _E¦w“#ã`ä*‡Œ­°’ë¶”ØÏËë«ÈoàË•@´x‹ëùUA?]ûÁ\Hw-Î%“,G' ð•™|÷F}è§»¾@ø¶³ÄÇh ìµÂK%Db]ìNÅznæítžµ@Î)xÁwZ½8~0 è©)©W`ËNšoè€ÖNàѽئL¾ ¯Œ!6bãMøÀ*>QÇ¢ƒ3þœ ˆÆBøÊi™€Ê¿[ê“jàÕn‚×6}Å~/‡õõö ‡ñ» §G¯y ×bU-€§ÔÔšžÈ~¥)©åg™ÃåñNj¶pÝÎCÈóÝÑV"d6ß¼”9á"¹¹á/<¢öåSíÿP¦Hll9 ·û^Ljö)þ¼Þl2ßx"½-Z˜H ìS× à[½,神.Iq$tývPå·P ¾×ìºG†’ùö°µ›%õÈйá»Þï†õŸð]äÖñ¿\$ŠVI‰€Ê[ÊÙ)zü>ˆü ø™†/lÁ¦óý9ÀYð½~Èx»½FŽá|æ­”b›}üÛN¢“ärYÖJ?ü$ú®üLä8‹7á³ëx<ÑðÛÂË4£í—±¿'þ²t‘ΠÀ×þ Ç^öq=±à&8·ñ7ú¸®ëil:úZ?—bĵYwûÎÙi ¶töî'¡ìEƒ;üÄŸ‘0>7w™ ßqDts4„Ê?ˆÚ8-‚û´ °üªŸQü(©|ÿ*W,gŸ¯à¥°ä òâR$š¥5ñääšEûËDI¤ê;Ù¬•ì˜ µ¶ÑZX ;LÌ‹¹3ãk@€¹|×(Ϫwè‡ö \á ±µ„šç$lr7ÛÎÖd’I¦X~‘ï¨@ËK~öúžzœ†ÜÓõû9­œeß'"Qa ¯±´$<ÎuE»¢Aþ¨îj@‹cûý¼àûl‚¶šúg‹Á‘µh †­Ac稚ݙ¤ÛÄÀSMgóõërÿ¿¬9ßw£æÏúO!âÝÙ¾0¶Wb ã(rà ä=6Öa¿0ö+G²ÄÄñY2ç~©*™-·}c¥í1Ðý¸. ûøÄ.ï ×ü™£ èé ßv›GwE¨5ûóZxVˆ¤“ì²QÜì3w®¯;Ùk<\¥—ËiÐü¹k£¿ªá†>#«ŸÃòýŒ‡''æÛÓ®ßU\‹fw°o}˜Ñz_ûÝôGºB@…]ÔEa̼¢ÉÌ;| aÿÐpÈE)*Ù`‚SÙ»ýìù|â`‰¦·Kú~Æßç+xpÊÛêÈóßüŒ§Dyk"dŸ¸N™K51ðÐO|HtOÜÆö ¨ƒ’]¿4µó~.V8[¢™`G¤²üháÅM@©+Õ¨\Ö‡Xl¶¹©ií#,y ÂÛv4³ËOÇ诇!úÝÜEz †* œ¾Ã;n±›žÞݳ‚ÝT@oàG l1T߸ò§ëhÃªŽ¹¹ݯð:Â]ï®Î>î<Ö4pQãÛ æïí‹ ï®yž‡•G‘Ͷ`Žpjd„Kò ™3†~Êö+}eç:†.AÜ4aw¿DZ{‚=†!­¡î]績°s‘?§” ´è~ÅÑRIfÈyßëï°ïò}ÍO³ÆßÛô%¸x’ˆwÓzÁY'푾!Uím˜À"o&ù~©ï8o8àûG° VØÒ››ƒ1oKd/ÐÂN_ÿMAç -º_Q‰óò’AN éÇ óHP º­€µžÇ–w°Öuý\н~ïz6þ,Ò.~:T{0ÏõvgÏ‚yý?¾—ÁRZY«.î&o|‹7¸ºç߸N·Á¹;ûï/+Œ¶’Ü0¡GXý%–>GLœÂNnÚ—;¯{Ÿv]Áû¢ƒAä·Jø;+°ëö¯t†ã-fË`|ÿ1ø—²‘#“XàÛÌ&ò“YLž§³µ:F*Zì?¯ÈD@1.“=^‡µ}~¦óU¢|†ºk¦ãÏgð~ؼÖýšè;jÿ¯4ž~ChCtçõilë®ê5Ç¢["+ŠGíÕõöM9„M`Qù~Ö¤Ò,ÐbÿÕ £ÙaÁU@¬Ó~ÖÕ-ðþ™F†©·Å—ï Áb,ß™Z¶¿¡Ú:4‰ïÿê;Ä»#ä]Ñ×âd´¿~ôŒ¾õ½T+Zv;jÛø6µOøÞ~àK>-"ó-ô_­KRORJ_iUú©gÁø´›ï>TxàÏl÷Cêv~rm#ßÝM}(‡íàCýÜØIð§|ÒévG®À‡çk\+I,Œi µLq˜¶“âÔÞ¡gÅÑñ’UÒH'‰¥5üŒÚæÈ»½ŸEÆšŒ$ú{ò»µÖE¿Ÿzâ2âi´ãŽq Ç7–ø¹ñÉ›½0 Ëp¥DVŠ((`àñ­„}o/`>5¨¹-õ_V2ª÷$Ôâe$"¶Ð"äöêÚØûÂPänC\OÒ_ÐJK$wLJk¡wÄx%~²œÇì¿l0} åµeþë LB¥pÜ_p•Ÿ“°æÆT¡i%Ò·Ô¥¿ÒÞúÌÏ»úÁOziE Ô$›÷AÑE ^uù®qî®pOž\F¦tØßù§ù«&ãkáÃu,ú‹/ ‡Cmâ{[‘o?‘mùo–ês)@5þVV‘¹Ý¹O7É`hÐý¾„TûðŠŸÐÍ ~»+ºù«¢Ž"ÿV2àØî~=›ƒ2ö3 ðs!&úžÉËüt$µ|p kR$Ôu~"…¤±4Æ;7kYdìR¯ô×÷¸+]ò»;¸ÖæÓƒ,8/wWƒïóâûÜQ®Éþ¨ñH8ž›‚ä& \†7¸NÒ;É/ýÝ„/´•×r¡„ûýeí‡ç$Š"e9¢ûGlæŽd,ö׳ïó÷C¸ùG-±þHÄ ¶½Â'Α)×#á9ÇPPÂMBÖì9œÊñ§õ<ÏdÉ- 5b +GöÛhÿn}¨Eå°f²‹Xk4X¶»mô½Ïßa¹ ~nëtÓXˆ, Ï/òó{cã ê®øvG ¦àñ Á¾»Ô¹é,£E°7x»º°²U#~E.X¦äB þ»eš[z#éCªÇÑa7×Õþ>~}YÜ À™Ävgrß28ÏYjŸ#HõVÆîã#nRø^ôrxä[¾'Ñ^ös‹×h kcg`Å£ÑI%9hÿnÝ‘R2†½û=w3ïvÃ×bÍIàû^s“ ÝÌ›®ð€ø}‘±ó]Я#ñUðÍu†ÞÌcþÓrØÇD@x*ૼ/Ô¬œ²ª~!×-ðß­Ãàß kÓð€ÂæîúªnF­»’Ó­XèìŒÿÇ¢™·šßKsúÞ°ì$Q?ƒªg‰ŸkYÒ•´‚°ý " ”5bËBVÜ:Y}k¢C-îY+©I/­[ÍmŰÝ38ËTè[ôC;M7L‚ó<ö÷5&´©XõF´·êî÷rW@ŸBîY`¡›uCsÙ·ö¹¹Î­l ²¯°¦¶ÛÎÛCù1Ðâþ—õ#õhm)¡¬û›Ìî ãdÞv]'Î`Ûi`£›`݃o‰¨îkZaûÉ/Â.ù¹æ}‰Cþ8ÐVòB«LÕÞòÀz{[w»hÔX7Ié@‹ûV/< ‹$×òÈâ±×7½Ì#ýÕmkaø“ˆ‡5ÈøÊy†"YËk‘ј»FÄóÛ vœò÷Ì»3!74žñ‰5±v¶Ÿ:à‘UѾhzv …ý«!>CZË $ÛGÞNi¯°éUT°ï•H¿Ü›ˆÜ Wþ‚_ÏàQƒ˜Q¢a[Œ52éÂØt殊BÌBþš¶Øšê@i+ßZÔ²ªˆ›L¥°¿í~æc!Ëlî\Õây(èÎà<Ä×7ý-@‰ÄæîoIޝdBWnîÁ2ÝccˆûvÍÒ¼6Ôv‚uð”Þòi¨î‚]HªË¢YÉU®ëy̶޳IãR½¦117Ù¬Š»‚ÁfYì ŠAçl#Ò妺}¡}mEZ:¾õ×@dµZ6ŦÃ(:Ú%¹BÉÔÛ¶òÀ„›èÐêc{©¹­,.,HØòƒ_›­-Ÿ"C\³~&A=ƒf ˈ™Íp£çÚÄŽÚaPÑàLùžÞ êlJ³À1BÏ]¯ÿl•¦ vgù¶‚ÁVšÈMn5£µ·Ùö«m°›VÙ7ã{©>Ór6C³kFÝ"-aQ¹õk40Ñ!mLb¬­¶9hñÖ å¶ÿ}%’rR‹ýW‰Ò—·zä®,Ö_b=l*8¾DÛ¢ ´ŠFÑ>RGòIMùJšêm$ pB×ïýñ‚ÚþÊ þÙ$iBÉŸµ²È\"µ®4ñžÐYæÙ:›kï°M¬ù• ÖóÈ _ÓTN—¤•ïdD%ÿ—AæÆ6ÆîØu› fµÆ:¿oˆü”UšUJ2‚Ç$6yk¬õ²qAQ‚îØË4ßÎjR.¿ÈY$ý°þPž/–³²¤×²šLÃt®ÛZÛ©µ¶d–LˆîG½¾•’-Œ•ÓzÝâí ZáúØJr]!])¥–T“¾ü¸I¤©”S²&}P–É>­oÇu°>‘ÊèñKIhqþ[+¥ïè_[ ÃçÂS½&ýsXa=ŒÅ“À’J:¢?¯dC¾ ÁÏ2ˆ¨ù&5Az€‡ý¤±Äû÷@t+‡””v2ÉHeÍ¥·ˆüBR˜x/F|*ù%¶ï÷Ÿ („§g´h#·ïØ«ÿ“« ÒÖ–ñXôo뢠ä?[ŸHb¶ì•ï×ûõ~½_ï×ûõ~½_ÿù• î›vXö÷½Ì“¶šBs‰›ù~ÇïlóŸ\Y$Œ. òæ…»¾]Åy-“T’þÙDÉ¥SÜ3ÔDEµï¤×vÿ'VX|^? îs˜m*ÞFÒŠºÆÍóû@‡êmá{ÿ]ÖLÓFë-¤±˜ò—ÞùÿëWŠH{©Ž• Sç.Äëój'Y “ý”·^ÚÊ:Z°%°$–ÇRÙ:kkoÕ¬¤N“‚TÄe$pÝþ+6.%Ùu¸ÃÒ®ÏY6½®=%,'ΧIeQ-†åµ¯-µ ÖÔ²Û÷VÌviL]M}˜÷Øýý÷õ¥Ÿc·B\wˆ4X5± ¶vJ¿²ÍºTÜÝW´ºÕ³J6ÖÊ#ñ-½£q-™å·ŠÖÕ¾µR¶8($ípóß]E@¹¸²YÆè½Goõ³Å~ÓÂÍ>×UzA–ÛínfXA¼ÿ†ÆÄ’Ù;ÍÆß±­ª֜څJù— š€ì®7ÎdÊ„g¿ÖTvR“ZJ¼;¹—Í­Ÿ¶¶8–ÈJâ÷1,¢=ÑÔ°­»&ä¿£e®ÓRHîÎlª­Bþ2Øùf´Ö¼zËwÑúЪ!1ë¾±CšJËñïvøï¬Zâú”çòw»º{9V"Ï uýà]ÛÇþ:¯0öBOéz½¤ûùÉcÑm­>Ôüè᡺‰Çw´<™p±ñ-^ð±‰F@ÅCåyÿ¿]•%%Ѻ@îàÃîý“0÷ï+¬¾™"õôòLŸë½~j'|„ Xþïoy½ÓœÖǪƒ„¹m ºh¥!ð‡¢ï_¬%Œ>?Ùý´ŽÕæî„r ƒð¾;æyuGõ'éßúP>ÈŽéKht¿ƒ—ÑyÄ·HŽŸ gB0ä¤VÓVäÓÐ=©=¸/­ˆG°å;ß­d¯Ö#þ®ñð Èy4؉/lÕ:É_ xÈ+"#5þ•,˜ÁÄÜù‚Ï:ÃohlͪsaK¬ŸœÜçú~-DÚè¾gépþ:¤®3âodý-øüqþ> ÜÇÖhr;ªWx?¸Jä¶–Ï¢À6êÍ ʇJ[±É†=-æ?YU%75NÌ.—‹V,}o_Àc+²Ýò½†ùÉ'ÕÝÛoO«W%&ñ^ľ€½c‹}dÿä˾Þi¼ 3±p]/\a=,£$»†¾U¦^†ú&¯¤²«X¿ÝŸú!­Ô=<»Š>\·`'P8 á_×17™6—>ú„šï6¸ M=×Hö?¥»ýïaÌÍ‹X‰7Ó¬Ö­Ý–š¡ ¸IÞ¥åK-ˆ×G¶¥:ˆÇT8ÏVPÿh¿ûо:ÙÿE54ƒ¬PLI}Pÿ^±‹»»ž¯úyÏÔM¿XÚ…G¼ BÖ;§Ùc=ïgk…®U…*ÿKɬem5Ò.ÔeÚM§ ë/: õwóîçñpwC/„…P”ÑÚ2@SÃôŸñ97è ¼!3¸áîš a;whNbãßòÞÁRijq û>üíÊòÕûxo²Ùn¬=SÇx¢ÉtnæEÖ¦óÁ¾ : xdȯeÐUrðs¼à.qà&'ıtæîs;Ã÷œÕ´Ôé`Á±}­Ézj©&±CÑ|t7«2‹tßÝÄ 7Çâ¦ïx>Ýß×´FÝ•|a‰îÚD؉_lѧZEûk||º<>}ÿŽ`7A‚S|ò´Æ#”£&XA(GÈK*h9,§et3¢ô+ôèÎÇYY¤œ?zµº®œ‹<ŸÛ óèïü¾MåwœXpýÁVø+"¢¥ÉðC+Í­7 p‚&ÄâÛ+²ƒ»#"!–>vD±,VŠŒð9<(/<èk«"–r„,@]RDÂâµ®kã5løÈç7׿³/¬ö,ÑE—ûF ÐÇ]J|DZå~æA {ª_¡¹øÔCǼüjé±¶ãGŽ¢jþøŽ+)Ú¼ßÍüççÐÿÿ­|x&iåû•oÓ 8k´?õ¸x­‰÷ Ú°<œFN7÷«Yð2¾±æ·Ncó|†:¾{KÇ¡Á4ÝWúÈ’#u~«iuÉŠ±,•°Ÿ@Æuä›À{@""175ßcÐÙ]ÃÆÂRùyW1©ÿºb÷mú3¹`Ÿ¿ëe*[-#*jò\m±° û»®þÑ©•6’ý®'Áx@¼|¡»‹Þ>€ÅÀîÙ`Âf‘ý1‚l¨‘N’Z|‰ ö—’’›Ç¶ÓT4a©rV@ÁvX|‡¿`ÿ:É]GãÄÅo „ëûáz#º£Çy|lé´%lo/yb%Þô)¸ÿ™ï„p=E°õÀt\OØxùmK.<ƒœÃ÷§à)'É€KùÔeøÍSu3]‡XÖÑkcÑ´ ~`ýÈ‹úH‰Eì`…}&üÙ.ÿ¾"ÒU»û¤¨ŸÏT¦ öû€hwj’æcë9þ~·”háïk4&p—ˆXïkSd}³gx«’ÏWød/ß%uÐþýØwÿˆn­88™ÕúØdª¡@#àGOÞÉ]ýÿe®7Uxpk&’mÑ× Àßè$r÷ÇêëÑÈB­‹Në1Ïðgã‡ÑFìÜ_ùûg"ÿtÏÒ™ëù‡ 膟˜B%讞¡…$q@¥Ïò‘5Hêðú6uýÞ§øþU `nâQGßÅý¸º ÐHKXß üÁu°sÛEOüÐÁ< Ï÷ÜÓYøþ?9í L Vß…ŽÒZKkK 4Ñ–Ø ëhÝõSþÿ@®|h`„#>“[x"3œìû=Oà1Ê÷¼u÷¹ÎFš½üLÅóûêwèc^qÖßÑ}¤<çÿ#Y2{ã§CžC3ÛÐÛs꡽DÆošù«Y/«H.ll㬶ý =’T>—<Ø~¯ç× Þ˜Í`¼·¿6¦ƒ ñÓn¶`ÛµDô0¸Vä[ç{£lå¶xÌã[æ‘›;x möwD»YBð(w å<òÆ+’X%K¬¡µ  ôî<ý™sŸŽµRé´ÑÎxûPíŽ×¥µüq¾d5wlºYn–i#ðá Þ° ¯¾ä;y»£À{°ÿEFåŸÙÞbï=þ.É5°ÅÅZŸO¯3f’Þ’sc{ªGxÑ«Þ ×vW~EÂþXø'òWKdŸà{ÜtÓ"ðý±~ÞkVv3/×cç~hä'^;è'b.%'F‡ÿC^×?Œïô²m'¢Édv m%†Zá7kˆ€§Zöךü?z .\£¦v˜ü¿}’ÃcVÃsiSös2Gê~ìqE$è§[ƒÍ{£× ÃÝÙ:›|øZ3ZjxLBj¾BX±uP{ \\§ïslá:‡à%½øæž¼$¬ƒüƒ°~?PXÀI ÜLÜá’WâÁW—jeü½#1ìºw9ö2“¬÷…ïóÝmüâûáÌEªa<_M””êfv> #rȪÎÝ)¹Æß5¾ïX'Ho[ù¶çøÿp¾o^˜Ø’š;rüøØöh€É¿Ó“BÂqðùY~¦ùvÏ|6#Á$­êû¿ãÙû½TÇxÞP{Ï»´0ì¾!Q²é~%zkây$Ͷ3À‹7D»;*rF¸nGxÒß?ü(¼`>rÆOU¯Q4pÇ€Øÿiøör40«­Âs°—«Ér?€ƒn¶åYl¼˜ÊfrÎaÛiT Ë@‹Mèj1:Ø7ž¿ðGû¶ù¾Ž^‚ßAÊUh¸ œcÚJ~uˆ™ÚÜ$”õú&€wC%ÿµÑx¶ÊO1»ìûr ]À \C"ù úÙJn\ƒWlE’ü^ÅûÁÄûl\Êî#Ý ­òOÓføÃ;réu?÷7ª‰ÍõUíK%¹Ë»#„+`Ìç©Ìâ‘+'°î‰#95Ÿ Öنͷ µøî1bþ<²tÃ˜ëØ»XŸÝñ×½®Î bz‘Ÿ“3÷‡ûþ&‘`R›ýÙ’W ˆC¼ÕÄD[xÄ þ‡–Â^ùJé^áέÓü¬ŸHVi/c}$n³Vaëì÷y?ÖͰéÅßGØóÍžï^Ò(6ŠhH<×ô ‚ñ’ξúЯßñ ÿé ¦8îë&OÇKZ’=Æã[aa†îLQ$?çÏ–íÖb='ZšúïGßËbòm&r‡ø£@둲rÖõw{ä:Ç»ã5–~ëûÿÄû›ikãÐò¬ ÈžGwÐö1"j`@åŸý·Ê ©û§97WaðûÉñ­ÈsyÖù;#c#tÓDkÂ{úøw•Q-͉¬kÈ“éð…`ôä:ÿþÂ︚ØGDþn§ˆ‘oˆ×)芣õèz7ßXWHå€ÊïŽç‘[}ƒT›ðË#ìïxäYáþ4ö+–‚‡ u©Ì–âü›Vd 7!É] ÒÔ÷ÌŠ?”% &‚“ت3èÙ]kû~™ ¨úº2ûѱcЮwÄýY–púÓï«’4¢ hNö«Ä~Ž#Úw±÷óðÿ/À³Èø“ÇÀ¥ìõ M¥}^pS.ÛãÍSÉ[Øz£FÓ[’ƒOöEâV ÆT¦Wµ Å²v†jþŒf±6@z×ù8Q³䮜˜Bþ[£ -~¥‰Ùf=qµ•W¡ÃÄR¾€_!ÿ@’ÉäãÔ4PÍñˆ Žñ¾fû —K¿-VwçÁ>ðGw×ãÉ9l¨¥ºd)-†ÝÆ¢Óˆi§›1äWO¸.€Çø¦ 6_Ïì'þŒóæ)ßýF?ÖOä‡Ëï:~¤”Ò>ëg?4bO±d*>êd_†µ‡“Áëâ¿mA´ŽüuŠú.±=¡‚ÿÒ¾…õÆâˆ€†H=ä;åŽC«ˆú>*Çî¢[A™ë0A×ôn€§ü¾ê€½©·ÀXGƒ÷õ±úhö.‹w Ëöþ:Ñ?͸ ‰;ÉW©í?±Ï­®Å¦µ-6š˜çkʧ£Ç |ƒ;‚>ŸXxê'ÂU¦nú 9Lü¸³¤gx}W¨¸7 '0_:úkWVùcß'ÐÂiøÙÄé äè‡Ì{á/+Éù{Àˆ'à^ ‹b¹ì+jþotÅ·¼T³»ðüu¾NèbŒöG:öÀøÆâ1wá¾GÐÇ1lÙrÚUpbV¨þ¿U†²§—@·í uXëG† Gœ»Jý(yÁu÷\ç{?=P7é"<Ö K× ¦MãXËC&HnkÉjOÈîëÐÁ:$ܪ÷4"8yX³ñ‰cä„õ|ûq}GV˜«­¤n …g“r\Üó½xþ1ïø=r}B…w‹××£ƒµHµ}¼ôïÝ<ø\¶M¯Ê"ÍdU¨t³Y:‹`îê/7óíÛç÷ij}¨äæ¦<âÓîÊ’Õü´Ô:Ý/Ó*rH\o³ÖXw¡¿ßc3,-ª%¦N‹Mv[àqÌÀ¢ñ‘AÄÁlíž0)^ÊrÐò7d¾çÏt¸ ÷gñüíÄúK´“|¬gS‰÷<Ľ»&b>pWPO„†•>üWÛ£A6o{ÉýQl.Òº˜pnÇÁëÆ€‚aB#ý¹ÐãX7“ÕÑgr _íg~l#ó½ÐŒææ¬ÃÚ¬¨UµT Ã&(xíãÛ:J: §ÕÕÒJ2k{ÛŽûýÑåÚÒ†hR?ëÁu0dîzØ1 ãpœ_2˜ˆ˜§ßj ùa¢Ÿ´„ß„ÎNz¾ ¯OF¾ñ\Wù6üv×HE³×øPêP"¿ë~ÜHjÉ)ïuïBfùÍ ~Œ•_óús‘¹Þïfž!CL!è!Ø#þ8r)È·Xï }â'­Äû3”ÜY•œ°€ˆh :È«…eT ÿÓ*¨$±á½î,å÷ vI ²DûxÊaôÑ=8ßwGD`ý!d4cÅ=õg,¿¾· ÞüûUa-‹]ÆÓ¿´ÚÖŽXR3“v5nVø;ih±ÿ¼è/RL>Ð4Öl2²ysWE·Í~î›ãu \ìŽ÷'Æ\­ÓëOÃGÔZúÉî(ç¼`Qs~œš*⊦‚7…Y¯ÐrZÕ~1¡^:ªEBÕuðK$Ÿü(}á6wa{CÁ®ú(xV-Än¢–m©íÀü´ÇÁ š›g}¨i‚FzøÎÉ+ÑÈP"à òç&ïw'|jÙm§³óšÔÖÚ.«oµ€ô ´Ð½4³”!7Éȵ^‚d{à)ûˆ€õ ž;KÖ[kûé&-‰‡Æøëwî²üm˜qKÏÿÝŒçQ¾çûFò]+b×5‘u´rxÔ÷V™XÈhµ¨:#ÿ“@ËüW+¥þ(餑´%†GúkÜFñù ‡ õ't2«v€ß»éàñön¼çÎåAO;ÑGg>Ñÿßɧ “ÈÿÏ55¹/©='F^€Èÿ|6ÏÆZ[­&-ô_­Ø:CÈb‚/OõçF#ClêúÙþâ§;Œây;$ï‚­[¡Kþª@w¦p ’wóÇ̦nþG°ŸŽ±Þ_ÿ?ÂO€ÎžSNi=üa!ù&F(šÿF‡R‹» ?ŒåúcšuÁùÈÞW&"3žµðç|:°ÕNðï:þïfeŽ)öRºã¦¿`}7㟜§½ø¬;êUžÈF^ýÀé©-ÉB‘ü…´¾d—Κ™ͳïÏÙ4Äþý|-ߨÏÇŠä½<¶×zT¶§ü,§£ê®òÃgúùæ#ÑÎ*pã>,à*ÕóX¾/ lòkdKU^°RZJüP$5ý\ªÃ€ŠÚ#Pmtѯùw˜¿–åqï®ýæÕîÈ?i{à'!øÀ-pn±°ÙÝ‘¯9þÞ˜•z™ºçß7 ^×:À"ؘuV[#Íá–ú/+·Ö“ÒI³Ø;öv^»˜ˆîJXé ýê;;÷ƒùuëf “i~Jš™› ÄWŽnjâþíëï;…nî«» îpm|Ž¢ãùmªMÑ’<É6,+ñåûH‘Â’Yz cîZ×¹dýDùv2@0°¸à®å{Ä+‡-+UýjÅçp~£">vFxxæìxÿE´y–HxÆ"#¦¶^6:teêßV²SšS•ƶÂX*àY$8ʾO÷Ç„†áù“@Åñhä‘¿Â!qüP?47ã/VÍ^‚÷Éü]B)-¶Ýð:z<Ö¸ÄCYkKmøV—|îë߯6ÒI†c×`”›eñ„*¾ =EúYþÜà$Ð`X6Ë_'Ù6ÑøÞ/f­m½Í±¯‚ži_hqÿÁ*'©e.90йë_ÒØ}wËy¬<•š¨=øÿ’×—`ße`YZ댇¸*·„å±ÏðêüÈËÜdã{þHÐf4`=Ÿ*ïob=­“ €÷“fúüŸ(éå ©C ßÓýÄø=¬N®¹cŸ©±b¢|£¿Fô¿£ù™žµ1ÄzKg-‘2¢­×hþÞïãèaèq[kÚ@[`{A>7û抔‚û…Ε™}‹ †ß¯Ïù³›IÍͰˆeû5Õ¶’VÓ*‚ ›AùTd ×ïc½M ºKHÆHn l9RÈãaÉîzßlÕÕ%BJ³ýÊPÝÿ¿¤ì“ºä´¾X>?X.ë"ıvÖéKÁb+ÀÃáñ?Øäìo›w§-·ýx€‚ m«}м%Á‚X¿¤ÍÄ÷?¥î­À»»C]æûÛ•SH|;:û]þú5oì ‘®”UA•©á_ê÷èè]·AíƒNÛE;k/ì„eçqÒnañ¡ö3Ÿ¯kíù†N|î›dÅñŠÀ]íýï®/¤’”%rsYsdȇݺ ÃpsS†÷M¬™À#‚ÝUÜAƒ*5'ÓŃÝ<ÔvÇ*IÐWvÏ6‚‘uÈÍð‰c¶Á2[ ý]‘sS ß’”d¼"V=¿Ö7µAH\œXøÂªó|–ýš¨(N®ìγ²°£TÁÓ5¦u'Ë×°OÐUq40ÚÛ´P‰ê'D‡Z¸k¥‘iòŒúÄ]ý;ÂR‘×:‚ß]dR4·É¶Ùæbï—ÚÏ¡“ÄA'áÅÕáÊ«¨ó8 Ï™c‹í~S—©ôhÁþíÕN†Ë]?vw|[¸ §A³‚b Åç·Û|$›c‡±î6p¢E¡:N£5µ,õÿ‡à\ûɶ€ÑÃL Zeá¬V.‹$i(ª÷þõjDœ‘52KÒhIË”+(ePo*‚îvÍŠ=Áª-uuÓBé#óäWÙ(?Qí}2tÐèö!“7è9ú«.u¥„T•Å迱‚ñƒ&ÒnüœòZÊkS{‹÷G±« DI$…ZÉ _t]NÓIJž&õñ•r’GRÁ!¾ü~:Äÿ´U[:!9,þ·+š(=z¿Þ¯÷ëýz¿Þ¯÷ëÿçJ /,ï++E%Ù]=TΘ9u7ûO¬d0œ´‡ßñ¤±T‚ïÖEúOdœ—“ÒSúIKýØŽÃÿh-]û+$½Óÿ¡•žŸþ›\²JE))?ÁóÈ^m';5—µ öD«[*»£Å-ÕþMÍ U¤ ü÷¯ƒ”ðþðû ÔWñò¥Ò]®øj¯¦¬³ÂÖÅFZ-Ëf9-‘ ¶†h ¾e±Ú?ÉF ôG^°~J||¯NׯѶë}¡õ4§Ü”®RJë[e‹i4DcZr¤.m5,»%¶ÜV-LDJhîxûZŸááe«,ÐSÚ )bßÔVûf°`©¬Ó¤˜¹ù°9¬ þQok4‹æ'æÆf›¢6ÍÆ®ëuèétøï¯2T±…e‰„ó÷mÓezZŸê!Íli-©ÕÓÚºK†Û!‡6*±;Ï·ÁßßšÕÜ}1¬3þðH÷Sç ÿX«Žä’ÒT»£õŽnÇã_i:»…GÅ žk›¢4¯V³pÖiÝô‡dh`…ïß>@µÆ"Ú>iõ;þÓÙóPéWð0Žúî^¯uŽÞÐÈVÛi[¥ô¤$ó‹`{×ã1·½ñÝ~\g‡ä¦D‡øIKëjyl™âó€ßéûﮯ‘> y®6²¼Ógxõ;M†4‡‰qw-øX{Ë¿1ô¤>ÒÈÜËj§}—Ø lýNÃZ\«`U­7±±ÕÚÙV/ wûüë•䫺ŸÒ‘ó&1}A3šë!Ø5œíÖ}úD[iu0á!šq½Ð£ÛmݤWô%±â®v¹­q­ºïù™|,bù5¹6á{3Z¸¹2Kz)&]$¬®‚ÑÝâ›u­>Ö·nª3¾p‡(ߦ{t¹}ee}oè(ö9x·Iñê=ßIî"[ÝÔ¶6ÿÿ‚<øXGé)I©5~·ó¿^YÁý¯e™4Õ¥øÿaü}•ïòwI£úy7ÑÁL"=¾1Es€ó‰}üs¼³K#^ÂòwD{¨Ïý,€öíÔ6ÄË= —ÝrJ>ÏôžËH¼Ü]ÛzVb×é³£:Ì÷F !žâ•*Zä?Jdp[´ŽÉÔE‡È·ô2Ú¹ˆ6Ò[X$>£ËÑA° .ùF˜ÕZÁ6€)àÖ¡iU‘´`óIi«{ç3þ&ÝÈcº¿ÏïYý‚¿“}¸pÞwø>Éó‡Ú[«Êä¾'¼¬ŽÅ#ö_Ážð‰ÅàÁÞ½ŠVŽ ßZS»"å%?uqhªŒ³’—úI|?.Lf‘—u-ÒOПøw%\×Ý0!xÃnßÍñâ—ZG¿“¯´3ì7 >à:^B7©,Upl;ï»*Ò½èà ¨‘ÜrÂ>Õ–üyù -ËÍæÊIä—a_¯èD°ýˆïÒ°/ŸÞï&ºO‘Ù÷ƒ‘{ƒºþ]CÈvUô3m§nÚ…Ë|nB„ënv i“S)Ýö×Ãõ91£Ÿ Ï~¶³:ÃÏÙIh±ÿ¼2H¤¼vö½Ö“É\×O×y1Ÿê/œ¹»Ü†ø·¯üDˆ8l3[ÝÝÞ—‰÷Ž»'æ2~áf%¹.ò!ü•Š9§?"’Šj 7¼±y³ <3ðÝßÝõ¤ˆDÖ(þ^¦¡øéepëÖÜúO§o‘ßW"õ|Þ?Š­2ºû!o ójòá!~®‘ç‰öé°‚]TÊÙ‡þîÁ—šœÉË[ XPi¸@3ë }@œ¡¢øDÒPŸG=ÑOìxM®ÏÌÞßð]7ø~{©lÝü›‰X{™`‡¯õßÁ #“é]Ÿ»¹xùï=?\øØÄXÐ!ßóº„} ®oýlšu³|ö=UQEm ±BpW°”7²K¿E‚;~}êïa>¢ƒëþpÝw@poÎ’ãvóÎp"È\oࣰŸ¤ äã@‹·Èäg&:N˜˜wÓºÀƒ~°`¸pXÀ;ýƺkÇPPå 󕔨,]"G¹#ÈwQ{ÿ/ƒf®ïeˆö'âC@ˆ¾&xîï|ÝMÔ»ÊèªÖ„ïÝýƒìùò*ß´ƒÚ0!µÐM2c «Šï—±Úè¦(Yp$ÑÐÜ ôJG.n%nbá3*×g¾ÿãKuŠna¿±þŽÞ žß½&¸É73‘k:èݾ?Fl¢=†5Ó–ÄÍ>¼à±Í÷ŒÎ†µ_ø;eÝ”„Ô0 \V„G^ë–ëÇÀœRCòc³â t ²TØË;âvƒïR;žF\g„k¼2 ÄŸGLüàïz<ƒ¼%ã½Áη´'øð Ô|ãï¡ÚN€óE2W»’AFwüÄ'OND|jé,_€ûß»+¾Ic,ïCÅšÞRÃÞ\Ë)HÚoŸ‰äc‰úS`ý$ßá»<îõ½!Õ¤vgÖã5Н›=ð=cÏúÙ9y_m+ïº!!÷—ÔA¹­ÑĸN í#Ûä”åßÀ5—¿Ýœ“ľ»¦w¤Çþ9Xô;Ï+ó|vÁ£÷óÎBt´…p:8€Ìo|ϬgxÀ<ÈÅë„¶ÙwÎwQ‘ž³øþkcð€>;’šÿŒÂòI°HÐj;ñ>N'k'­ »m‚Ç»Jî2QÝBòú·ä‰ÝZÏßû?#Þ »Øv D´+ÈúHÃÚ)ßOh1±²½MÄ#^’U/þÒ zÿe]Oˆ€ÊŸ‹ÇXáÚ>ÇÏßóë°ò °¾´6Ö®D¿Ã±ùì/$_&ð{œ¿2ÄwÀ¿¢®«ícâe3Õƒ›t cŽ1Ç0ç!í@ÆK>®=Ø*¼}Ú Z9 .#UOa1$ÜäÙÍX<ÛumìG•ÛI³k[ž­Çª!ØWl,Ö\ž òµÇºsfÀŸŽ’,E'ÝÐÎ ¯C5w4¾à&ãœÁkj+© _ú~èÁÛ°  ¢U8»(ܧ¤TcŸvb÷ÈuÛ»?‰×÷¥j þ­ñ“N¶Â;¦ñXƒõÏ#¥;>Áæ!Í5ô¶ Ä܇£—Ãhç ²’øxëï’oEÌ„±b  kHP•|3 4²mR1`òW…ý´’qìçXðé"6;ˆ|ûØóHà@mNý70ÿô)õÁ,êæ:f‚õ~F]” ¹ªó—›z8Ž­×ù,p“­ÊóF0”Ê醱‹èæ¹–³¾6ÚFØ,já,©. ý6Ër¸Üxðýc‹ s;ŽGoÄO!õgøô|ø0°’™ŒüíøÝÕwsÓMï _s³_ùû=âÃ#>仢›ë¥œÄ†io¾ÿ®f´˜T€ »Ècî®Á\æfd½¦þ Ô ÄÇîë‰à×`ü1üÿùÛM÷ AâòZÙA?×ÁM¥cððŸ±ð@|}Ûág3ð7´4 ”¸Œ¥ÝñðXH*¶ Òî`Ëa?1'ÕOAr€ë uESØ}À+…fS”B²D°ë¶ŠXíe»þn+A€Ž ž;¢óÔvý߯ƒòÓÈuÉ 7Xv®ƒ­eûóú%ú{IÍÕ2Àûb ç8,?î4¯ÚÏ·à{žùxnR^Røp?í0ùwQû$ÔÏñÞdh×ër¸¿ ûölÏu8ï†e]g‡HìsÃ||Ühÿþ ÚŒúÃw€rO`CSý™²+d‡¸æ:Hÿ>G5„wÞ@þž`73:=Ñî“ÿ€Ä‘òT+Ág ƒö£ˆ×Ès éÝ4§Ÿ‘ϧú®#´[ôg߯ñ»+X6•­' › Ü>ßûŸ%ž‚}wˆ…|ö;­ˆMDw®óq,;GdÜÁGÜ13Ã[§ÞwLRHe¢¹µ(ض ti ß&|»ò¶Bn7·7v‹ùFÃðÚHØÒûÀx$éï{BMEæúXò] wÔ×( Ûh¶þX9­É©}2€øÕJÆïØ0€øíXŒXC4»s–®'ë9¼t3¶Ú„Ÿ÷‚ÿTeßGzi†Ã4¢Ä¢ ñéúäÇA¼ëz{þȳ¶~VLA͆/l%{ê .ÃᇭaÑîlª›¬ùˆkQmzŽ jgÇ(½HcI/ód*øî&uÍ'ò7á­Ã©{š`Ó¥ì{ dï†gàñ•t,2f@ÖþZ‚÷êxëVßuÂ? ¯þ|¦ßÑRŸH:ü£·6╾¾òäwäö¥°> Æeý6 òwÏÈ?5ðÙmDý5ßée-¶îó9ÅþÎbï«#aktÑV<Écj4­Mnȯ94!zª¨ùˆ‹ |&¬ÆP‡øµ‰û)>v\ÏÜ`âaß7Üw½ïÏ­½Ðêøþ#•*ÿ$‰--$Œïtp” µÕ÷ok„ÕÆ )~zECPñö½þîDúDÈÛZóíø] O(©Ÿ“å3ëé@¬ãÕøÃ tÒŒªàšæ€Oá»¶Á"î¨cKg5º}k=\ÿ‡ÿU䄌¹w’³ ß(|w–¿î¥1¯ºI ÑÌhp}"Q>»¿‘’Dy{¬<’j` Pi›hN¦ktØÔwÑs½’ƒ‰+‰ýxÀEgqì<ÑõFEÓ> òÒŸù'Ÿ“­Ýìçw¾ÛoÐÜMAF\Ì'²Ý‘ÿ`uóŠúcBÅ4s þ±<~ tŸ‰ ÿiâ+ç©êކ-+æ¡æfdd¶£àèß ç©ž÷Ñh:ÉPù] XTÚI6,2žì—Êv³ÿÁ`a8Ïê¯À}†¿gÑË|Pr”…Úxz-^½ á­"LÖõÀ¬§)‰N<ëˆ,‡ïìôǦÂëjlÍןà»Ä-×¹ºÑsîvšHRXþ†ÔÅ¥û¼½[‹”m}‡ÿ`ìvP¼¥¦Ýàc£(_Ÿß`†™àô©ì1V¯§åÈßè·úœÒ­B{ñ˜˜6^Ëú{g×€žÃø¾¥ÈîúJÑ/‰¿À®Ž’ÆM&BWâ·ñõA쟛çùˆ}¼â/ä騭 Ï× O]$¬B>Ç ZzKhAö+¾\ U‚¤¶Hf‰Á“üÑgl;€~iš€Ÿ;-ÑðÁTȸ“Xˆ¤Ë±v, &›o`¿gïÓ±Ùxöz>2€-—%ó÷¥–Éd,EÐ$*Ý3DF˜A" '(8t ö/öƒïðžDxÉ¢Þ!Èlp#y µV°ô"ϤˆºT{®om»ßïóéígÆž@ÒÓ~¦\â›®kZ? Û+¸&¸3ªûCÅuá³%µ´ñ3Wùž¯óüÜóËÄè9xê-¤YCf˜–$ã¹ã;ëU­rdñü ¿œ~¢¹›e¹^s í¸+‡ù RWÈ#‰|ü"¶žï¸ˆWÍæ:gô—’žµ[IG?áèñ: [½fßæ#gB‹bOÙ×­àÖz,¶ éÃÙ|ù ñü }BŽü”J6¬¿?ä?ú÷¿ÜXζ@9×ùñ1š«n®»þQž­õUö­hÑýzþ„ïcµ¹`ày˜Þ}MmwÈÕ£y¾͸٧õ•^b¿{bYµ«0¹Øf–žxÅO;ŒÅ_+ñž·hÊyÁ:pï*ßó\«X$›Àëùm3™ÿ->q­ÔÖÐàý"ÏñÂŒXí1rÁB‘ì:ØTÇrÛ%lÿú‚¹*î-Ö\é;^»{=ŒhŽÈVMj{±l ‹t³1îé9PÎûËN½ïºÅ=¡ÚÝMäOV×Y+®•¶H:¦¥Üô“*>´p`ô98[›'ƒµ^Â÷Ý190ÀM á]l¸žßsñ’©dɹ2AØ›ñÜ_AòXÝ™€=lsMÅX,KfIù<9ˆWlDC7à}CÍa‡¤œ”Àž;Õõ*ݧYQ«m‹ñùDìéiô±çó}_çÉ>JæÂF"ñ?÷ïþâz¥®ôÓ­öùë"Žàåq@¾ô–Ö_ñ`vml!–ÚÀ°ƒ©ãK£@ þ§EëËq5ÙLöï(¬¾ ~ð+˜pï?­ÂØ!Â@mv»(ïM¦tÇ<åÇM¹=Æowž×ÍF^…—¬õSnbY|+„í›)3)ÜYîvÚw¬éå` ÿÓz"¥¤Œ8+·õs]Ú×ÄÂ^?Ëå<]êíà1†ì¾ø¢]aK‘ö>yó.®¸ô_Û[†Ÿ,& ¢€÷±©SX[KMÍŸšœYÑ–[W˜ßk]$_J¤PÒ*¶¶¡ˆ¹NÎûͯZíçZ»s½û|GO×óGmÎï°ÔsÃÕÕš¯\÷³øé³ÉÿÛÑÖP¢ãïU”#&Yð¾T¼®%mU-ŽHÉJäϧ§©jJa?ñØåf=-`ßû³¼ø3Â#‘¸ èïft¢êâë{7Ñú„?nꦞ C{`½ø]ÚW8Ú=!Šâ÷Ž}fƒ©š Û™)ÅC‰üéõ78ày#u°ø:d9ÊžžP7÷ÅáÖ ¦òýÞOHwÇsݘSègQ²—-Æá®v<öõ¥Rt×C¾Õèä:‡üIì6úœD½\ÕúÙ+i¥dR ÅþóʯOås©/'$ˆÊÎÇèèÏbý~”f:ŒÇ᪠k8vn©?ã nVúyïß×z ¯ô¥ š†ãîŒ×vðá-¾Ö²XY+E6H€/$²°,²7Ðbÿy×»ÒPZÊj¼T7nZ±›{´«ŽÂ—{ûû†býa~ú«›çì®ë>î¯xÌm;À‹!<†ú¹@®^l‹w¬A{ÛðŒ»Ä~P°²•1wí¢a”fÛûÏ+·¾‘Ü2Hòhl侃 ÷Q¹lÔAÔ=ƒñô©þúŸHÝWk¿[£íêîðY?ŒƒM]…7I^/ âázÇæs×<³ŠE”‚˜Ô²Y]òA 왟¿YÈQËF¢?³Ý÷G(ûy„ëÖ¹'3á3=ÐF/´Ñ™x˜H–å+ÂXæràZÓ]38ÛÏI~ü™\èfGºûÆ:y©‚Ü}a5àBîÊàbr9ÐRÿõÒ<’l}B›³ão÷öH܇g3´µŸ~Ò ûûãÓ@ÄWäø8äò ª›¨ü>‰ß¯C[ƒx˜ì»&¯ôçU/‚¥¨"ÙòÿWTÊõÅB ú»uGrÉ­eË`:}mpÝGñ{ uÀ4p¯Úè€?ô#²Ý¤‹C°Â¨æº=_§ž{K\‡­W²¥;WÚ›ŸY À5ÁE¢é.,ñˆ²ÉöaЪæ¿DÓ4RM›™Có=DÿMpÛ]Ç}vµo|ÞÍÀÈcñàæû®ÂçÃYtjKD@bÛéï›Ú޾Ü}‚ÁÚ í¹9·ý¬Ï‹|ã2A~ê¡–I¿´È·ÊË.q à^=µâYBXð|n=„øïF.Q!D³óäþ<+DnW2Ú9MË¿àç¤M jÜìãÙ à5}ªéA7-õP;»lyB‘ïÿ¾ZH^i†=‚£”£¢X*XZXÛ„üSh þ¼=Œå_µO¬º‰lo5#¨Vt‹Ï#¬åókü5£nÂõ,r€;Ç­VÝÆÛBÛf»íg‹T(ÀSïÿѪ$_Èò{þ5ÚÌ2#¿»~kæfÀÌõW€/ 7àÑ™ÑÏGÈM°äöŽœ?8†l‡žów~9 ¬âµ'Í*YGÛ`1ƒjÝÕ26ÐâþƒURÜD¾7rÄW-îx°»–é ºnçî¾.7Ýà58ö+Ü (žÜ:c÷jT‹ßÂîúY+ð" Zq3S_÷î¡Ô§ÑÇÿbï-À­¼’4ܪڸOpww n‚{p„4îîNp×àînAÁÝÝ=È}×êž¹Ýs{fzä¹ûdž¬óŽí½Ùe_}õÿkU%fŠY+Šn[JO™laÿÁrç ¾”m2Ο\xæÏÿ\®шƒB BU Ç»à#:v/ný­5³‘HÕ¿œÐ‡ÈxœŽdóرÖË~® œLˆžÂk¶Û6¥d”Ÿe2¿E·Xîù*"žÝ |‹ÿü: M“É ŸmODo´n [$²{jË¿MÈÏÝáxߣ¹óhÒí­L ÿs³b¾³=Ò"Øbþ+¥Ô§ÊD}VŠh¾®·©W¿ðþý¹Õ÷çøcÇš„j&Œ®‡mµº @W;jå¬-^=$ÃÕ°YøFh;Ìk¤ã·¯4¶•´Þ¶.DÜóø÷W*©.‘ÈvJ^û\Kdßò¾³Û| (•ñ]0 Ö—Žx`Óì˜þL×Ú k„Gä¶BA¿ãÿŸ­ìRDzȯ‡wœnWÐÊZ=޵3ƒâ- VýË·¸¶ÝBvvªÙl»e§Ìíné6vG Ÿöá1™Àh^#»íœúôÿÏ&™È†õ¥ 6+‰µÃcùõ¶ Áç“ɉ‰üŠÄDE‹Høù[â%×l™E5;mˆó ù¿„KdàU~&">³0¶9ØÂýS+¿” <–½pàÒÖI‡ÃÚ×k-% VÍŽ/µeàýX{`ƒY‘ô;‹ƒ®rû™·•í'[bÛ°úÛk y(ö­6 ¶`ÿôú\rKGùšü÷•Åä Ì ì œ#ÚóÁ`› ‹Ö×Ú‹°À(«¸N.ü Çì1R¯²¨ò“Æ2!ÿP´2Q·[¨ÿÒú^jËIY (jmEà»PO•Wmª­Áæ <±c ÜixOM-€>*[ut³ZØ<3=<{·yþ\&Ä1þÿ|õò‹ ‘–nóDk¨ˆ˜Mv;M-PZE÷Haé-_ø+?n¶Ù§¶‘š <°”ö:2UöHMø”Þ­òROŠ"a##Meü'n¯…ô¤t’ª D!ù¼,(½ä¹$€ëÐrX®JRí쟙MЇ˜»\ÿýÕY2HRxk;¼¡‹t—ºð„Ä’\²R5•”š’V×”œÑŠ¿Ô’xLnô;ù:Øoým5¿’b䯢xEi´ñ9òÿËÊ„äò½ ©ÂRM*ó›?ןëÏõçúsý¹þ\ÿ×VJÉÈKîÏ h)É´†Î‘撇ܟ\2ûíý¯®ü’ Y]OèpÞ&pœÏ}Ï´«’IKjͬÓ5ŠuÑ:ª`$.ú¿± y†ßMÎË5*ÂnÈvþ×ë×é~õnge`£ºë‰-¯µÑ/aÁYƒ~ºã¾jHøýª¸òzKOhͮ祺hK5TÕJÛFŽÚXw+`Uì[þmbÓíΧò©FðG^¤³´‘²Wßë]kïµ¥±qÚ^Ë]jþwZ©cZ9kfõíKËâç_¦¶Æ®'‚¶2Aìoð?]ßHO¹"õu?±ýJ/ê=Ý­™­£Ó¢úÝL´šÞn©ØÍj¬ºIŒšPý¿ÐìÖKCkvôr:=þó+'1>T>ÓÙúD#Úy<+Òß×¼¶_ËÚn£nûôGkJÌ»;~W4¿=Ñðö=Zˆey¬§%5±tš(lqþ‹«28ß]ÞÉpßýí¥žÕãºÐwHI…Œ¹lžŽñ«YX|ý >ŠY<ïÇ4·U¶VVÆ"â ñ-ƒŸy[ƒŠ¹P°Eú/¬Èá©åœ¬ÕP–þªw4`ððØÕõãùl›†¶”ö©B @‚;êNö—´ªd‚‚×"3Ÿóü<KË¢!õ®ß¿]_È×ÒP~•cڹ›Úvâÿ¹>ðç¢ÞèQüa´Æ·_´‡&ÿ qB«‡×?× ø@"äOb¡ìwþZž¿5µŽW!¯ëñ?Z™¥ª¬—ÜÏwî€d›5¬=ÔX÷¡?!Íæh]¯]õºFÆË³`ûDÀïhæïŒ{Õß#Íg¥È _ØjCô{)ù¸&ô¥²XÒøPïô¦¾ÖH~Îwƒw}võ’Oãb-‘ó¶ã{ÇþåŒAð{xQ1òB ²C}ý*„w¿w«~ÚVJ,fý­~bou•º½ðïÔ`¸á{¤$¶œ–Ö® ‹pxHbä½nà÷¯}×ø‹~fH4|¿hXÆ¢Àzi-§¥Bp÷{·jƒ|d…DÔò:Ùw2¾BÖ[¯ëð×íí¡.Öq:×ïqýîFh&Ðï®>ÖH¾³É5ß7ø…~ÄO^‚ ©ÐR!¿C&¹r€ÿÌã¿·òJ)™%áõ)ò÷Òåz)O íì MC?Ã.ú=íÇðóÅDÅbäºF)CGˆ’–pQ?óoݾg·›(¼­Ò³ÒI¾ ¡™À]¿î$©4¥¶Õ :‹Ažýø»;ÉtQÝ„£H¼]÷é)¿ê¼ݽp×Ù0†÷]^h‹FÎÜ f /–á£:¨iéí¡<—áÔP!áÜã߯"’H’Êa‰§åt–=ƒŸŸÑ¤¶DÇë¤|åû¹=üót>ˆà:?‡œ!'F±zÈw܃üàoüާËZÔQ 4´V˜Ç<óÝCf’_‹HÚ` üoVOeù\“ê¼=,ç'-Ó¸ý[@Ä!:ÌÕAèÄõ7¸¬ÝÈal—ºyÇÐÉz¼&©=£ZÚÅÏ ìk~ªÎ¿Cõ©‚œÒí2€8Klÿneãý¤†ïç×X Ø9cÛ±µ»Ë9ë;<;†ÝøŽ§n*Æ^pþwí©eUÿ#ßõÛˆïªfµ¨Ù<*¡:Ö M¤×†’"T„i‘?¥L–³•¸}w»DÄÏDâ¡Ô·#ÈtKüd¯]d»‹øÅNPq¸YÛQì6¿{ÏÏ[%#Ú;È##ƒpi©€_ÁÝÌ8ö9²·»3l¬e·AþzA0{ÿþ¿ò§sÑﺷà¹F~^Ž„£Éôm°ýî0a¿þ ðüe¾ ¦;ëÞ¯/kQÍíkÎBõ“R£âë›ñŒ¨–ïWs3t\ŸãxC~+h߸n‡ÖÎÊ£‘µxÀFk©­ƒ-¾¤"úëÊKMk ¨ßã™ëΰ/ÿI¿!¢û!¿ë‹¶‚L¿–€ZK˽Œ_D¶<–RS §Å æ3ð.!OTÛî™Ã-^a= * ŸhHFÖ³äÂßÉI‚,J¸èy¢É©Rób©Œ|žÀ¾nÞm+"`>½ÉCÛfð`Ù¡R€÷]ó} N!ýb~±fÀÚ«ýéÿêNϸ“áA[É”»ñ‹#ÄÇ-MMEœ’ÿ£%m(úÏTùsJy9òÝö»§žÍÉ»[‹kCmž¢š´«É?á£g¹à1:¬¨ˆÁç;j=ì¾ËO€Nì‡A›@Ñ“þÜô2u“¡Þðøúdÿ*ü™,µM´púc;`’BŸø¾6o±Þ2ön0ßùSÐoì&ã¹n ¨qÁæQÌ®Ÿó¢³Ôvdx…fòÚØÍ- ‚&;©-¿‰ëÑ ¾êºüG°æº8}ÀÏïkc"ÿgM“?¡nÆé>¸áR°¢),¹Š¹ÉfnRÖýÂr[+sÕÒG¬ÿ ÎËk<öýtâ=#<^JîOоÖðó}LÔžˆÁ«¦¡"®E ²ÈÔÅ×Á€ÂTB©ìeç‚/†ùß“wÈó’~¢Õ;>Ÿ Å[bvŒ?Çï&­Æ‹Wá ®3ŒYi~ÿˆ7˜È¹@Vè>,4¹ƒe¯øÉHAÇü4¹N)ï4%1_ž˜É‰^)ð¹ô6B¿ šü›É¹¤“ŸÚè:¶S7Áöïÿ¸ïáÔ‹Ȱ˜¸wÝO\§÷Zú9HÂŽ‘Õz¡»ã˜›zy_+óï ¢¾ñÐ o.^~@þ¤š—|°_H¡™5Òv„/5ñ1?ÝsåU¼Òz8Â|uWBÝ5×_wˆ¹Œ<ã8òtù2¨ “ø’Cû»=“ýD“6Dó4o³bæºv_æçeh£/Þ1™†à•ð‚Xúk|ÆÍöû4Å;šSévä/ݺÑpŒW:@®‚>bšË„‰–NDÂ_UmוR%¨÷‚ÏK " ˜½në*¼ÁȱÖW¶ížê®…lò=ÍF!oSøPl_ „tnúã þÞÃw K¯µÁÇAhç+ý’W;Êkî× °ü~¼žÛ-ðÇD7aè:šÝ£gñ¾`ž¿+éäS‰ˆ/nõïVãÍËðËSš“|uw¹Í_í;ægÞÐÜH_kg%z#…™»ïÿïø–ß¤Ž¬¬uøk$æùÿ=äžV4EŸ‰4w_ù6|ÐÍü %‚(½[9%™Ü‹d€'¼£­þîîKä=¤±m/ìÎyøv,v{ÓHšCK¢žÈ±È÷x¬IUÖÆ€MÑIþžJj)0ÒMFºÄ+¹Ý0O¨ž¢Kwå`±…š*13è=`+IJ™'|ÿß}d¶•Hz¼K@T»þ«ùé0Hæ:š·ÔœšK #¥ëô}Ê©Œ ²ª0y×!­-Y ËBOíþÏÞçg‹}bn/Ys“ÂOø®y¿£Ó'xÁðà®’\zÉHßÛúHý«Ÿö•ÏÒh"߯uÁq3ÎÖÂi[k9"¿±]RGúZ95Ý'æîîB_nPY¼£2ìh˜²êè¶v{a?±Oí68ò rŸRw$`g4ø½0¦K/#x_®ßïi¼Øÿû5Ç'“×_¿ïB~ϬÅñúº¸âûX¿ÁK#ÑxOu~_‘è¯Å¿k}ÿT×9ÕíNt$þkϬ+àÞSêÅä–[ƒ{íß­mRHöÊ"|Ö>é÷xºyÕÑ­'¾zð#¿ Ìõÿ e°¿+®Ëøyä?¬sáÁ^Ñ´›‘óX¨+>p޾|~âÑí 6<ŒVÖó»ýDój4q‘\÷58þ©UÃ'µ!Vü+hm&‘ñúYŒ…÷’I®’ù^QCÄ#Ö“Y«a™l?½ôᮓZJþ`‹ÏÚ å0>9¸Ü_ç|ì'˜Fƒ± ¶¢AÈ¿[Ïb·{0„ÉÉâ"û¤ùŠj66Ò¥§¶ßH”áë±ð°Äíû¨©Ét‡‰•$Vî?@úLj°`Ï>úË:.ÄY÷¼¿GñÝîƒSˆÓ€í³Æc÷=d´ëTºS@‰×üÞMðÉ€m#¡3×éö¥º.áñ×ùþ&¯Ÿ%Ã`§4 ¥í">"ãY®Gzð®|þíÚ. Ò¿G¦;`Öï ö¯D®‹ÔƒÈä®üÍC÷xÏçau®ë÷+?á~ e®[ØJØQ${ÆßGù©ïçð‚í¾¹k‚+üN¨«XRßAÎ+ÜëØu#r!J>1Ïøûdüþšéï¦&ÀþyðõÏì#Þàî–¦ÂR\—RÁݯD:[ŠIz*× T9½ÀºF°y7«c^qÁ÷L8‹ŽD¢0vØ^N ·\­axD 2üNßñ:`Küä÷Ãü{œgIJ"ö9ÒDz`kd8Oj¥©Ô€ç¤m°E÷+¶®•LòVZ‘)ài»‰ü”䪥~~ÕxÜN2ßD?×o>òX€©r{ãéuª #Êâ%;‘ø‘² Ùï‚&Ïð¤—Õê[vsÀSù»@N am°æ—QÁݯ”zOÊÉOÒ©³{Üφ½îaÁp?wöÉÝÍ^â»:»nñAþCÔ;“°äaê„•òq>CÝl“x<óšÚGœ»^XàFéÈq@‹™,ž¿G¿ ¾ Ú¹N¶ ù~ UMo2âþ€.z¡•= ýy­6Àõy~&J|d9òO;ï¡Ç´`~8Ëh®cô[Mìï}e¦fº*!§ba°¸„äQ÷N%ûmôW¼—aõÙø}?ßÏ~¤Ÿ‹9»wƒ¿Mùo¬Lîßô»(fûGO$;t n’;r"ë#ÍoMÉ—Ñp)0 öO¯‚-ö¿®×2NÊÀƒbš«pŽ÷nâhßõ~òŒÔöÚ9áý]>× ÚíjlnÏDT»†7y ƒ1DÂ8´° lSp=«e±˜ÈŸŽA¶s•ò_x„‚ùèò ^Ýž"»»WìŸi[ìS¼?¤Lú˪-KÄMåKnNòÌdëXd>W©/ð'Afò1•¯‹‰‹ý°™ÃßSÀèbÛ²âçÄÁ)Rv¡Ÿ3]Îã™{ýu ÐVŸ/@LJF|­«ƒ-îÿgå’BF‹’¿ŸPŸíÅŽ[a}ñm¯¯þ'æ‘ïæ·«°d.XM|ûÇ-b5¼,z¸B­p üܧ®Ø“Ú®†I܇ ²<êòÀ*˯{‚-î?X®‡c#ÉïwêÞÓ¤ðüØÈ´-,ög?î!÷N¤Û‹VêÁé2QÏÅ…ÓUÏÜ~ÿÐDC:<ý´¿êÈkj0%¼?¼g“ͲµvÊ~ׯ24ØÂþƒ•C Hei!¿j8Zsó¯wêIö-%þÚÞ#—»ÍzÂfh?rû×¾7zQ$&Ä ²=ï®lƒÁ·ï3¹UñûCØ[jµ­XW)%Ù$¥TS‡þ1@¿ìvŸ?®©ˆY7Ç.¿¹ª>ªå¤²«¢U´®¯dÛÁƒüCÈýŸ›»†æö9x´c’Ÿ‚t":(,n7¤¦T¶¨ÿΪ"±%¯|;š‘XmdéÛVRgÂΙí{¿w{7?Çþ÷àB-¬ ¶ë¶Îïo< ¹ØII>(I¼7I¯ku[¤ûmuN´ÐXBrìrààwðÁ/u Ò7!šÑ>Až­.þÂßñªhcí„åÓfÛn ꡇE6^WÄOìd&Þ¿¶Ñ|÷»– ̵³6ÀŸˆ(ô;¾ÿñÊ,¹Éýå”n g=¿£ÓÓl(> vŒ?£w©ìºÙòø8Ûlì$úôƒ]@?y--8?ÆZo«L†ÈDõ7ÌšY>˧ B|' Œ’/¸. í'ªºûXßðå‘Ö–ì•Ö\¯‡ Ã ,o¶×r$0ÿ¨cÕÌÍùx¢Ÿç+mƒMók’%*á Cð^!^z·ŠK2©./¥UKQëW³yäùDõW6 Ûg²öHxÝJžXÎÀIP 9YÀu½ªcnNL<¬¿Ä3‰ƒvÚòZSý!Ø¢ý“+£Ä•²[K#k¤‚­DÃm;ºØe[Éú‹l®Ý¶'vÈŽ‘ë%Ps9¾Ü(*ˆ1 <‰Ö¶Úâྮ”ÁëŸ^%%;™ ¤Ö°—V4 ðÖV é[`ìšU„ŒE+-z`¡]µîöQ¿áç”Ô6Gì©]âqûí ÜBÍðš0úÇêXAŠÉRéêöíX´ÀÚ@öPÛ‡ñù~DzE[F<'Äï“ÂØ ü{^0¼W¨e¥m9þ±ÓzŠæYnƒ [ ÿÆÊJUÔ–ÚpµìÓ#v4P?pÃBòŽ‚÷íÐG2|l8r#ûŽXø.P °ÒæãóÉün—ešO¿¢j,­ƒ-Êse¯ËJEi%㥜.ñsÁ«nfZ c…5§.’º²KFh2êš“ C|£ÑšÔRC¥œª#Œï½rIzÉOD|ºÈJ¹#Çe‹,”ÒYÊK4°P’èZé-«d‚•©2ôì ›*!!cÆûÿ|¥¢>L/9%å‘"ÔŠ•¥!²á÷p”•f|#éxTirglò'ýü¹þ\®?ןëÏõçúgVNIá§¹•^ró]'»ü’DzÈ{¹FÞ¯(Ea™ÿà}ÏÿíÊL¥œ§´ŸŽ˜ ÓK2é.´ü¾³ÞÖC:B[i4 «ÍÑQÙ?pßó¿_9át5¥ÔÖ®ZEhy!•dx)©©m'ÛX[G%”Ú^¨ëvÜÜâÚqùMªÁþÿˆÏÿ~U€Ã·¦<*kUì‹cYu>M¦Ëío•lº}ã;€w§ÌÌG3ªßwúƒ>¡ðãàïpÿŸ,×½~ˆL“ ²[·h]‹g -?ŸûEõ¸nàjŸ[;j¾%ÖÙšX«n)­¼²xZU¡¿Ïƒ-Ä{e$Ö÷Ijø+šÇ®h5dkEl€Í×j’ZF[6êüK›¶jÖ]¤±6VÆNèU] Õ´.XPoùãMCÉ,i¨óHi=®-¯Å´ô–ÎiL‹êw³^[RÉöjX«aõ”ïØÒ£¡n–Ì2X?« ¬ÖAÚK üá°0—d˜R_š#UT‹l·ô¡Æ±zK/èÏú©=×£:_sZ$Ëe¹ý®+úT« ñ·ÖتÚW–HdF|”ÒR.èç¼þ++…ïÏÚTzijK‹MoëyÝ¡×t¿>Öäö»†²TȬö@3XKj‘¶˜ÝÐß5˜¨¨kUð’\xBt e)´Üˆ”‘lxÿy™+%, Þ~Ig“ÙÝiÆzYcá ®GD%l¿S‹€÷®ûIv²^ ¾»¢±-´•#+œÇ_ /Ü.™ÏÐ@]ù2Ø‚ý“+%¼&¹˜ÎÀçOé1pß»_ÛôºïôýX…ïÄ´ÄÆcý ±:«Ã¿yüïšÒ’[ 2åý ´,>ÊZ6ýñ1#ƒ¤•¬x<í¢®«±ëp=CgúÀsüN¦Ø{œžÖWhá&2w¿77x—Ï¿¨gˆ’°v_ßj‹O |e9ɇM­¸6üÈŸÎÖZšÉ$]©{¥áìßѲMOø/Ëõ¤ÆÿÃõt’¦! XVò~—GŸU7!ä#º{­9, +f±‰“îzš× Ùw«bÿ.`uIMj×ô¹&°p ÀV0“nFú‹ºD×ûsô |p¼ й3/`‘È{b‡u-{äµÑbX +*`§ô‘L†‡Ü«áÙ¥‘Ô#çUÕgHž äÎ~òý°—ñù+ßÍ æëk=Ç£\7è³äþDÄ{br`T¤ÝNÎлÄÁSu'ÜÙ¸¼ b5[¥[¤/µC` úWrpo´Ì—`ØB¿oÉuvw}¬û-›ÐÀ$¡t5ñ4ØÎ_ÝI¹J<ÒíýŠ@VÜ~ÜÙÿ[ßÏkAÀÖÄGy|¤Žî£*ª"Î=þýú’¸O"-àûîä?ãà)ö¹gÁuö¡×ÿ}-ÙÀuñX¢KùØâ;B»~ßî쬛˜qQwóý ¿Cô=ü¡²ÿd?Zm< MÕœz‘ŠªZˆêþîV©(ýåsMnâUoì> ûÏÓ~~úŘP?üÿ¾qÑìn×çbðbzI ŠäÀó¿¡h€–À ¿³×šVš„¨ùˆÉ%=Ø—Ukh_$œÈùKu.‘°û/ÒáÚTèô3,Ó‰XúÛ .Ýà„—üéàŸ}ç§Aºí-廃 ƒ;÷›Û~°áöµ5²­¶ØzÚ +¢é%^°…þוErH*‰ qû7ì¿ÉŸÑw=ßg`Ë-:Òwê§µðüá|·šÇ¸>°@ùo¤"|§¼ÐõÍÁs7 ÿ´7‡ï¯ù^*±ÀÁ/‘~ ³yÖΖ‘ ¹ïïß®ÌøMCµþ€œþÞ NÐþØw>þîN>´Õš¾¯G톖ÎéFìý”°ÚÈŽú³bëÐÏ\ßïÃíÿœ…ü'‰‘‡ðˆZßÖØF›€÷×±…vÓêh·`‹ýו ¾SI.Ê`dJc®×ùs¤Xˆ ;"Ãü¾#~ßXËi+dÿV›é`²þ[ÿå´ƒœ•ä‰!èì„ïwåXÿ+fóÑáePÒuýKö¶Ù6 œgøn Ž”øÁݯ"T<™¥0>üÄ csó«æb÷6Äs}m‚ÇÕÎ|´×ïµ9òw&;ÌЗ0€N Ai>oC`<ã±¹Ûíý Ÿ_OƸ†frà ³[Qëk“m0Yp ³Žv' ˜\Kg-E¾›GÄ0wšq¤öDêAXÿkäv“z¢‹oõm‰•‡áëÉ1½¥oOñ•õÄÌ\¼ ‰ïlyÜJý”…PÑïˆl‡üÙÉ­ìÕÀ)™"&A%‘R–ŠïŒýhµä‡´]±f;,Þ ©¶úq]ÐÅÏ Û¾»Ì¨ÿ_À”³Øß#e˜9ùãÂS9Ì$+< ¼× ^RûÌòS-F±z6‚lpÖzh—` /núIò~/*™kT|aí9ѽ€ˆŸÎ5Ñ:ù _Kñ„šÄˆëæºâ_Â#bSï¿ÂØoøÊ1rç`xÁ%Íe©©BÙf²§ëŸ½ u[ï o@ûü}€Í… Ö¤AÏy¤€ ·có#òå_×ýwNÕF ß04ãvÏÖÖ|ÌB+s‰þåü\Ïßâ;æ¼F_}É€ûˆŒó|}‹Ì/¨}Ž'æóŒÝøÆB´êæÄÞ$"Þj^«‰ä¶®°®à^K þ=•(ö”J?²ì‘F²{HíÎ|V!Ö§ú~?#Á Üþ¯Gñ‚Ÿ‰gÄf| )µmE¹Wøsp)Ì,>¨ßXŽõösS¶Â*·ÑüI€è|ö·\Z,È3¢ã":°ü7j·CØq¼ _ˆìõÈö“°ÿVßßb°ß ÿÂ40™æúéo…°ã|ÃõõX黾»*™-X'Ì…;¸st y…#ÈŸÉ*øi0m&^×8¨u@zêh’yÚçˆÖ È>œû Œ«¡ßÁs»ùIoëñúÎÔ]4f OtÆÛŸà3¿oë4ŠÕhÔvÏyÄdÜG ÜÇ/®Û@…¼òt4±Ÿ#XUkl :­eƒ(½øýj@?×óëïo©¯aÆa±øyuâ1¿Vwáï£ñøEؾ´†ÒÐZIÝ”ãf謼Ÿn¶^/HGøðddÜIíï·!óD·½¨–öÝţÄâXuòà ¸ÐÖÿÞµ€Ï¤$ܸ DªUx¸«N]¿~× p“×ñu9`þÐéûùSà‚µ¤f°RV„œö™cº-ÑÌz…ØÙ­¡ˆû=þüûc_î×ÄÉ}~Ö2X:KHÇ3»Q'ÐÖAôÿÔè>•¼XÞM,‰h;‘vïv=|ß…ÿºù5³©iobÙUDÈ"¤µV¶4pšFVJÛóušªgîÜ\tä|óuýä—ûkgÛ4 x˜©Û„r𛜌lØHóñÞX=ÉÉG#‹ëû¼ÂŸñ‹@à:€»NHAÀIÔ9I,¡UwwãRíã1kÉrõì$6m‹ÏTÄ£¯€Œîähr Oîá;‰Çò{𭃚]ÕAWÉü+­L°•5 w4Ñ´ p°V'¸oNYL;…o¿Ð”p3×íå ök÷&«u'vŸ‘á¯À`\ÌÍ ¹»62—ß¹Ù¿w°¸ë‰’š<¸Có,EòX~ÞÝXÑepä8Ó²yî›ÞÊ{nV}þ×›üÿ±‚&ÿPä//£±ª›ØñÊwê› ó ZïB• Üp¢›ï‚y tî»ÝÖÓkR~“Àn ÷šéöã-#М»tÂ_5SxÔN¼g)? þoR ösƒÝ=1×m¨~êA¼7>Ø3ÿÁð²X|§ïô4éÇ‚úS‰üÑZ é[’õw“½\?ø‘Èÿ½®•ØpE7~5BoâåÒ´'/œðùÿ0˜?­þæOÀÎåu£YVøpj,_Úš›±”ÎZP$·kR;hòÏ}÷wfë辯hïëÿ±xÊ·XµvîŒ\‘!`îjaw4òþß]öôîÝ™uÈùÁw <ï; Žç/‹ül…C|½Ž&óõNà|i'ÍA¦Ýø±‹ßa¼÷£Èîîç´ÄvWÀ­ ÂdÍ‹­újSm¢E‘¾7ÒwÇÎn?À#"{Y h_- 3ÛiB°á<è*Üw5Z eî>ñ"^wÏr3ÆVƒ¹]µ¹Ä¢ü»©~ˆëRó¿uvœÉ»» _+ ƒûˆ.Ncµ½Dr!M­UÉ}m¨+ãéßcë­êNýÞC?“ˆŒ†püÄP<$•Æ#7ª›ÿŒ(:\ñ i7•àd ctû&§èÈ ^?+ÉÀßS ôvßÁ°q~(½£ŸQF­ÏÀ·Fæ“Ë~Æ»º¸?–üÍßûÝÃs{ò›ªþza;Çc3¶á}%–Zÿ ßö÷Änƒ€Ÿ˜»n|^Qz‘ûx_v©Ê_¥\Šýðn7a©eÒ”÷~Òß×» "¶BúèšV«`ß^zÇ‚žï/ˆçíxÏP¤w]Ârk@“j²âN¬}ƒ¿g€YäG—'ÉË}-• û_%&ŠkÇ Ê/®ï›÷î"˜ë[t‰§ó[e"ïÿ ßp(/¯i?…ŸÐÛÎQ·Ôõs OÅì&æ.);#}4¼? Ÿ|ל‹<&&¬7í%Ÿ<³΃}ï4uÐ -ôëßU©ÓðÞÝ”ëÙd§{HÕ ~2™Ìæ®b½'.õ“\Òid4Nó€Ý}k×Ç{Q.äɹ`{/ØQbHì»;éîÐ+ È—ÝöMIí¹öwt|—z!§ Ñàßìé¦@ùcüÕ¿•øë2¼=•IذÚQbü¶œêÅEú°øvr­Nª¹I¿á©Ï!Û*¸Q0ò3}+xÌ$òýI"Èõ…¹ªm®ºÞŸnBj4‹o®“ö^üð‹¤˜´&‡P7íÆÍ§™ítà&º+ý§‰‚mhf0Ì(Ž†Ñ¨DBV?/©E1·8,õü3Xrv¡¢‘ÈC‰Ží<Ï]5zInÉDŒ¶Èð‰ëpŸÂ~/ùý>ȳÝ:.åå{üÜax\{A?Ýý\w8œ-ƒ ¹øË‰ÅdÁOˆì ÜlÍh,•LL"9Cs©ñõNӒ̸ëïU£Ûlp 7õ6¦õ@£ëÔÍÀŽj#µB8s]ÊJf2rXLl1|ϰMUÞ«a³÷0µ3dùÝ0ÚŸù˜HžÏ·ÉmYF2˜»úÓÖÚçÖ’ØH®±‰“ƒd†Í~¢ÚE^!:Q…Ì[´€]&šNñ:9à>Á÷Wœ’MxåGÞÓRßõù1øôž»üÖõ7ßì'®7Áj¾¡ºÿlÏfîšFrtÇ&RÏN¥6ªBÍ4Û÷ý^ç'é…Fòò×"Z?øÏ*n¼O*i•±(´‘>dõ1øwJìô— Nzwø²»N¨Ç@üÛÈ߆·Š¿Á_7%µ<—0 @hsS6×ôd´ÖXHææZìáûõT?¡··ý±âðÀux\F„Zþ5¿uÓNWûiJËÁÐg¼N +l™,%’Ç'Ý=‚˜v×L­ùåa°…gÅÐR—wRÒFYN2{¯ÁOÏbq7Ñbuÿ<ßÝ|6üð Ò?ÅîOü|p·n™qƒ îÁ¿]Ý'šØj[ ?&!¹"¿Ÿ}Î÷ £%q?–’ò#Ÿœ( ZÝ¥>y F» …;ýÞŽ:äë 8G=“^ KîÀÇX8Qf¸Ó"!¡•ƃܜ³>kÞ§’~ŽVÓZQžÎï‘Ïn•|—¤.väÉä©åK¼`-ñzÀßù¹£1<pûŸO sðü0£Þ { ¸Ae_Ï¿^O]ßOGß d-ñðá<ã2¯QŽ ™ ÉÃãñÍ­¸å –×ò ™­€ ¶è~E„‡—— R‚ªÞí|eg±²ÛßýÌw2ÝL/ó“;€úîdkhØü×ú½v"ÛuÕ‚zVóµ7¾_Ⱦ‡M§Zz çMlñ¤¼ê]8oe+Ãß ¯Å-'ä`°EÿëRm(íd ÀíWŒf‹ü~‡›dë·d47çg1±ßƒÊ ±°ê¶@3`ýV°üðÿêºGúƒšíµ0¾’—XNþªYìž«qøEýëö ´Á#\çÜ,hðƒ¶•P!ÀûÝŠ®$¬ñBÙJ|×ͽvûÛßç@<7Ñe þ?Xî—k¡Í‰‡ Â0¥·eƒ,åë8ªâbzDÛQéw¥fLm_ãëq±yIü?¹e¶ö6ئX7ë@\Eö „ùU3HcIjöÓž;ƒøÓýÞ壠ø)°} ÈWwåj:žß䟾ßçÑ¢ÅÑÑ t2Ÿ¼Ñ-^/À cóðžÔ`_hâàsôáÎÇ–$Jæj_‰Bä#_À'ﳉè.xö÷è`!:øOžˆ6FáÝ#‰ê¥ü<’Ǹ‰¹®pT›¯Ñ‰îðä³Ñ ÄÁ`ž·]ìÀ›2zOOãç l÷•ßO±ð®2ÐÏ­_¥¥ ˆþ÷Xä›Lü'Ìâ'·ÓÁMv×·ÝÄŸ@ÂÖØ~?œ÷­æ³Š˜‚tkx\??ÿ` wõâ1ô×âÛMxÄ?!*à;‹GÅ/Nk¹`‹ý¯«ŽÔ’2œ˜uñ¿ÇwñvÓ "¥ÓÁP,ßhï£õ´-Y`˜ŸŒÕŸ¾c*›[M®p½ÏGñØöÈ? ÄÜ…>’ .úûŠûµ4Òç±Îp€ÙØÿ§`‹ý7k´Ô–UrKóù õŸZ"jÚ×dÀ×Hº_áwŒ÷÷Çf’ ïÁdËÂäò‘]øGêúÂ^Åæø}㉄Ñ~vèQçç,™à…γŸm>Ϩ*l8!$úÝj,9$»ÔÁZ¿hRj•¬øm {AUs”hv»ã~ö1?¦»PWâûùàp)`4n²Ñ%X^l2ú'vŒJašK6p×–ø“ ð¨ KU¤?`]­™–NR&Éï:Üd’œÚǾóÏçô£†#ƒ»»ú ±êBâ÷ÿLõ§[à%9Éãîêßku­‹óœ’æØÒDPt6¸­¹9˜§õ >°ù/¡¥6ΖimilÿÍÊ)dšÜÖ­ÄfFêà˜pÜw¼÷uH<‹Õø¶Ûõ=KîÇ¢nG£Ëì1|·Û8vW?á9‡ýuÄÉTÊGý‰€»Ô¿‰y¥{ ß÷ÖÝF5EícЧ>ÿ£UTŠKY™ o-b°mZÛI¾_v§Ù¶{‰vÁìÜ\›È–J¦²½Çû³Ú[žw”¿ñ“2ñGÁÿGšŒpaRY-kþ#V ò y«UP%.Ua¹9ý´¢È»ÔOüØC<Ü€n öù+_ŸPÃ\Eºv\˃ÙÈsîÄQ²Èq2ÒÍþþŸ×~°F–Û¦ñõ£7"?Ø¢þÕCŠHa)&µ4EFwÕò²쀳|‰ÄëÑÄ+q¬.1_¤¼¦½AŒ”pÜDÁyXÎq1ƒ¯¦“Ykxðß!c°=±¼ZGê[Ôg}!q¤¦ЉVÃR#ÏWH´ÂÏ{¤ññ]ßöáõßÚßÓ¹õn6Û¡@Í÷TIA…Ë~^øVžõˆ´&ßÝEòˆ–v6N~ ¶˜ÿÁúB²Ê¢¬‹M°Ž°´{°öÓúŸÛJ\_Ó¾Dt=°/]´ÓX¾,þ@µtÑÏŽv¹þ¸¾Ô´ ]rbAòd} (d}­Ÿ gßÿv%“´2 ¸¬Ÿ2X$°p,|(UE~wž? ©¸MƦŒM=ר^¢£ý<ë,Ø·‹Ü‘Jw²†é»}¿i,E`™¶~ZAr[Äÿd•$;u”WÒξ#§gCº´ÈÒŒom–LL4°c0Ÿapáåö›í@KÀ:×!(´=+Ÿjtëm»l8~”]E³Ëd“AÝí÷Ï®R’œŠ ¹Ö¥j_o[@ƒ\D[[‰LsùMðq"ý„ß]²÷v‡ª~>ÔlgmøÎå‚öxNw²^rd[S‹¬®+àc¥‘èhàš–Ùé9ìw¸át0ü3$Üa‡`3g¬Cà¤Ý²_í<>°|‹Â7#+4µþäúªhe·eü)D›KȘwýϬ,°¡L"Z˺VNX»¥m˜ÌÛ„GO/Ú »jÛí9^ð=Ýì±-D_‰±ù6þ: ð«õ°UxD_©l¡þK«9ò”Fúʺ’zê6îÚVÛ ªÁ¯«ðýz$,Øl¡Ÿ¡£ëèâºÅEæ¡Ø¼Ý´~2xÅý#öAÿ/+w%¿æ±16¡ŽJB¢ò*nZ™@ê@¤@Ø@ä›o7ì‘% ܰ8šüµm b`;\÷=|°›&БÁ忹²’ «·äŒÄÏâzبHFKèKíHvku³@×ÀŽ@õÀ[KƒVŽšIì„|dzsó*ìUQI$ùZZI*ÝB埘>¹ž”ÂúR–ÂæGH"­®M¨~&è4*¥âUãèÉÆßŠûÍÿ/­¶¾wWr¸Ñ™ 3¤±|%¤>l!2~# ý €N²Ž:ê{ê¨"péÿkëïÏ©òÔWûíü¹þ\®?ןëÏõÿË*#àr™%'ß'¥:HDîwSSsùR£¥ž¤’ÚdÆf|–ö›ý_]9¤„t—áÒ>ÜPzQÆFî42[îHní¥=ô‚~Ô•Ú[3èGù] ‘–Á~ÓÿK+‰|ެ? ioýY›ë%Ùà§¢Õ•iòZ?±¯ý™ÞöVË~ ,jql·¾€¯“øÁ}%rø{[lÚT?h$ËaŸZzýAÞHv-­­‘vŒeµXö£·VЊXy‹n»´ÁfÉ+ ƒ-Àÿh%Àúmd²„Õ›Í*YJ;«Y¬‚¾—=’Bè ‹jÙ±ÿëa#­¯õ¶Ö6ÌzZz»®Kô;mI´¤ ¶ÿí•FŠI!I«‘>¬¡½õ÷y§ÚïÚ€¿þlݰ÷3}¨ƒ­"ºJTA =ìKKcoô–Û72æôˆùG[ùÁòâ’ ŸŽ=ã`ý/l½†¶?»sOQÑÁA4Ë"ûþÖQì¹ –}ci-›ÅÃKÂY"á ¤ChÏç´ÒÂb JvùL;‚ø3üé—£ºG¯é_æ\Ü×dÈžÓâÛ Íe%-¦õ½ BÙZ}E¼Sw"ä°°oý^§hè'§~¢úýþG+³$— 0ܺ—|Âïc¹ç÷Á_×߈w~Ãõ‰{ÁoBó}h ‹Ï—#ógë;MŠT²Âü%Ù!Ž%ECÏáPÁ?íôŸ¯DØ?£T“³Ò_7€ìGô’^Ö“ºßw>t; ÃØkhîì£;’œKo©A‰üd†Òæ&D´—*|~гú߈a©l£’¤ ¶xÿéJ R¥’õ2R/"Gb¢ÛõxwûFë$]ˆrØsm«î~ïkt’ÝR`i·¯- Q?ïÜžÑh ãâå¤>Ãw ó˜;ïSPJ[Àÿp•Àö©¤,ѸÄmj¤N°ÍÏ…xë»}\GK…lœM²Ê¶T-‚‘0-\7»l—:Èê[m.ØõF×â«üŽÎÍx¼ÛsBÓØ!ráj=‡§GçâÛ+°¡™µÖè\u§½n‚@Ã"ÖÑÏPŸ¬m%œ¸B°ý‡«”¤öÔ:14·¹ó¡ü™àþJ¢c_7añÃÄÀ9ðp½†Â¾×ÐGbbà(1rŒ™ÆîêâO‡?ÔLhæ;«n5¬Ÿµµ–MËKy)"­‚-ì?Xy¥ õZK†ûÌs½ÃyþoÔi:¸XG<ì'#N„ ¹.yáˆü3üöˆÝ"Ú6ß÷j’??”‘j¨­ ²ð¡Ú¶ÊjZM]4 ÿve÷JÉT¹(Éí²ßÅ⤻?ÂîË´›ŽÇ öƒîTà.ßéþØöðRÏø¹ù×ÍÚFœô fâjYgP±“•… £6ÏÏŸim‰ÂveEþR^gés<÷5±|__‡,Ût)uLíGöÛ CüþÆi:Ÿ¿^æ1…±¬ÓC(øß5ßùô#Ò;MM#ã[)" +10ÔæSº{Á/l‹u”Ê!j.\.Ù×jK°ßu:Û‹FZóýT$ÙŽ§láo4 ò6ž‚q%õ‘Œã·ã=gÚ„w¸îX÷øtg7"ÿ]üþèðQ]7¨¯­*™ –¦ n¬„`ð·ªäþ#Xz†?¹Û9j#mC4Їßüæñ® 1Ð×_ '|­µ´¹®¦î—2Zβkq´3Ÿ…¿Ï¥þ îwÃ÷?ßÇã7òýQpñƒŸŠÙÄZÚçV\»<ˆý]øŒò½´Ã_§c97¥c;8Ë·ÔÚ $ØEôŽÉÝ<¨ü;A3k|¬[‹j朖“)zÉZ ó?ïyo!¾´d¼Éof{káD¯5àg!š¹3QÅñÿ|nê wÚaƒ4ÂöóTì5¬ç¶~ žEÎ¥:ëv \Àð›Ù¾ûEw¾þ áð‰‘Ôö»4‹ŒV×7ý ì1 yä ڸ⫟õÈï"ÿ¯ëÎW0w <‡}i|`ºv”$A”¿´”“ëòïï,9k 2|¤jws‹_÷ï‚Ý?ê÷TEnš‹›í²F{^ƒäY,¦ÍÑî2GËPÛ> ËÇ¡úw×ÿ?jL«b¯x†›õTÝuÔ, ~9+aÉÑALkhѨ³úØOA¼˜MªK©ëûRð“{óù’¬ö–œ~…÷Þ‚ˆo+]±á%üù8šé…Ÿ‡³Ü<+ (ñšª1#>íξKs噩ü/ûŽYx½¸–ÛÒP–ÅæU¬®°¯¬¾í²Ã–#ˆó_€~ŸËý fúTÎf¡A¤–Ø\×Ú—Dípo¼ïÔºY×ÇwSí~@#É‘+³¿»—ßhaž›˜WId@„s  ›üº9àÏŠóý´r“ñ¿D;u‘¾‡u¶·– XûMþRJºHgPù¥&77Û÷,ïø¹ïXz?á'¾ $Òo޳aÁˆé_ñƒd¼ÞÔ4åôy¿œÝ×fxK,ô!¾ÀØÏrãApe¹Ðõúts¡ý±øˆhÙ-¬ÅµÉzQ‚× ñ?ZªbÑÓHý3ìn9ê ?·=ÌOyû´àÏó/ æ“ÖÿßR^Õ† ÄI)#e°;ëG|EdüÂ+¸)1SÉ3x•!|w€G»y@)ˆý\V†øOBöOÖ;ëÈ ö@%¨Áöàé®ßãDª½ñH꺙ùúð1 ÞßP› ‰ë‚>Øw}ŸàÐNðrž‘¦2MÎëPÐÜuŠ;Iž_í§õÆ zÀæ“Y$"^€4)-HX€J8Z­ƒˆÿ+x÷ƒÄ]Ç=¬‹=OYå§"÷Xü~?o#ã…·£( ¶â;×%þ$Œf¨^R·J$|牺ª×u¸ÝŒ§ 3¸IˆmñŸy7ûn®¯ìfáuð“2꺤>õ]’fû«„£xÌhßÑwʸ£n2Ê\<á–ºiØÑüyÒ3øE]7i9¨wòá½næÉBÞï2,?{§Î߆M7ãùýÈm3‘¢ž<Ÿè‡OwæëPüd†¯íó¼9<{)?OÅònF†ÃÉ>haqiÝ®¡åøÄYÂMš V¾×øäÌÓêöNoå”-òynlöÞýѪÄùz|ø:Hf ÿ[âyƒŸKŸˆi>Í‚GÌUwMõ Lç¹ï®V³‘ö zHNˆüõì'mlñ¥h8wH¾ÃÇ øIA»Bþ¾àwº‰h+ý°G#« ð€7p¦YšÖQÓ$ßÂÛªðäóÄZXCþ¸ŽNúÉ‚q`Aµˆ‚1VˆÇmñS“ZðZÁïƒ5þ]¶³ KEö¸Û¾°4VÖ>ò>/“·öcëU~vQmMøWÿîHdoÑ<~ŸsncÚÏZŠz6‰¦ƒ GÈ#WÔM|ˆBåŸÈnU9uO"æ¹Ì ê죿¬U’LRÍ;ÈK+ÉX‚%/࣡ÉÙa¨VOð—ÍÈzÐÇÀOl§‚Ô¦¶ö—–Ê¿†M³\¶˜IJ”Eg+xµƒ é ]5”EÄï]G(·[<¬}fSaþ±Õ(ö:-Yå¡D€±ÔÙßø™'WÈúîZöodëÃÄÁNP|?>°“ˆhÄ£:“)®ëh;ny`¿®ëñXà\rgS-B“®þü<¢Æ“2¡¥…šÚ²ûñ‡È¶M hÕ Ö~ÿ²ÒÈ`¢ 4üe¹lñîºw¿à½ß÷ u¹`+ZX…Dcax“¨ï~%²kÚM|?ØÞÅFÔO£«•xFW*ƒCüþ:¼Óû”×,HþßÏ¿™`‹‘íìâ Qß þj&ed"ÇMã}EÆ;_‘ Âá§É·õ¾Ÿù{T]5Øö{ßv3œrÛ·ø¼»šYËÚ[sóq ­oa÷xô4r[¿ÂGÜÝÎHžƒŠÂàï@·/è« Þûù—µDãÿÙ¿¤¹)•f¯‘ñ¡Ÿí» /xEœäwü´…ÿŸõ]Â_khlùØÏ‚ƒÖjòÓ ¤ÚƒÔ#´Ñwò[~+Ct¼>#Ä #€„¡ñ˜ì² ØÂ‹ëþ›^fH'|öS[B¥ëö~ÞCÚ§¾{»›‡tÄßÙþU›S·»é ÀÆ¢d‰ƒø{7˜N7¸€CL%Ë¿á‘ð×ì<5Ofò&^ ¯ E¦Œ‡üáÍÝcZ¢¹å\°…gÝ’²òÿŸ†¼°[({OlŽ„û]Ç‚'±¡Ûé1 FÜt'޽õxÔx¿C Ÿ ÑZb¤_ïïºk#KÕÍ8ú –³ÙŠÁv¢€|5ÐYŸÝ ‘sZZ„€¨¡µ§äÒfDq}Ðî‘Þ¦ƒðsû.áá üõšá~oìü :y/—­Ö†~>ì·ê¦§‚Ñ×ÁÊn~´»"xˆqºHj¥a ðögêºæå´¯m²ÅµRÖSÛKŽ ÿ'ºxŒ˜~Á;ŽhnÂÅ|$xì;}º­Û|½××q¤,cÕ`s´xÐŒœ×D[¡‰î<*›5²¢–T\ fœäÙgˆŸç¼îwp¿ðöͦ´dT>ñ-¯…Aþ0ÿ"®ž 2žr‚Jæ$‘Î\Þ{êg÷]/cÈ|K©aÆZ;kF. ¥­‰óþÿ{ofÕ•´mWÕÁ%ACpwîNðà„@AB€àÜ‚C°Ü=¸{ãîîîî.ß½Væý_Ÿo23ÿuz¾+ë\MwŸ³OsÊžzjェàÝð¡dþè§™5²¦øM?t¨°âxêX_ÞžxÏ/ ÖÅA—§N" _ó=7xPÒË\‰ ä¹ ï,‡5¦»¢iÕ°ÓKt1‰xß‹]‰&&cÑžDtYûŽXž lM6p÷ —£Öï6ÓÑÔ…‡u²?ÔsêöE¹‰°yb+À£„ß'ÕØê‘9³X}YlÁÿ².aÿ»R×.èkrÛ'ä±#HÐÆßõ< Þ?ôïÚ/Ò¬à×Xän«uà‹?"y*MÎkc9ú"¡µF'B2˜;‹”šjçS¿{ÖSˆnô·f _}p².^PL¶[ð¿¬Còì”°vœµf³éáÃíýÌÛþ P7²Z_rúš¿x¼;¿½Jã[ ͈l©y~â1 ¸Ý!xÌ%ýˆhúoAºsÁn×Ð{p¦¸õ¿öù·ÕþsOZ«Q¨bVï®sý6ì=«Ñqh£'?5åzcç®<¿ÖßËYØzñjnä<gEŽìÅë}ýSnzæ-Ч?§¼•jð!¹ä,ã‚V@þÐÓ!äKéF%ðÊ#‚T7ñÙ{ð|7Óåþý ¯ý>þD÷²Ú Íi+ñ’ÚÔÉGA‡5`@/?'ÇÍ߆ìÃêGù¾MD!±VðŸï,L`•n ¶Øÿaõ“&ÒC›X>¼5’ïèû1L-:Uûl½Ø3½ÙD‚»ö9ÛGÙ ™»ú°íZ ¼tÝÿï#m?âc¤þ†üs¨(VëülÙäÈ=ôkJÕ4ÿß'áBöÿ¾êIu©+ÓÕ1ÀðȔ۞`a·h:Qà¦àñ³Ÿ´ˆxÎMþ*ä»`w¶`Ü#Ø]lêw%ÌÝ/ì&&­ôTÜÝ@çaM•ìg[kl¦ „”ò6ØBÿ§•L2Ê P­¿Õ2Ùߥìl¿Þ? F;¹~Á²ã±¾»Š•Øïù,„ü%©”£Âl SéC;£Éœã8jLÂÍKzªé­¥uÁö;l«i ¯þêz€ç”tRVÆé`sëùkÀ³ÉTxóÑÃb$šàïƒ_ëg¹ï†%>õ ûÀfkʑ㓙»¾,C]6­h™¨+Ò¢©zü” ÖÛŸ/ ‚-î[Å$+°YjP™¸îÕ;‘ØÍñC$ðwMð{"\/„ë`™»¿ÿ>ß‹X'Qy¤,ngÈnæÇj°ó þsUÓà÷ÓÑMXÀp²!`Ö…o„¾• 4zpܸðó[~ÚÃ2<ÀÍó[Nõûböxf[Þ¾òó?Rý9Aµ’–Ævû+Ånø¿î úIa³-\`£å'CVÿÃ_…ªÿ¾’I6)%gäX}ÛŸïÛçç|À£§©›ëw4s}JaÙšÔ±nuþK7ÄvÎvtô@sPë»;Þ3Ù,»a‹É}Õ‰ÿeÚ[j[Ôÿe}*ieªü %ýŒÎðËkfrb"ÛKFÛ„ìð;Jj¦vïdC‰ÿx– oxã§ÝœÖ0äº}×÷Äh2 9?^à6¼¸¿°nÒ4Øbþ••˜:(¯VµÀ«Ê–Ä6‘ÛkàßWán‘m²ŸÖ7ê2ùfKð€)°üVTui¬ òÞô]àÓñþ¯á±È£n?Ý»h¬;šúÂ*†Rïÿ}•™–Ëi-޵júyí¥¤=ƒ·'…ç1·S&5ÜdûÖ¾GÂ5àù÷T5 lQÍûiünßdÔ{Ÿñ6ËJ"ꄊ_}•¡.?,}4¿e&c5¶öTlEðî‚Tm“@y·×»°uãQ×ÌN’ÙgØKä­ÊïQàNà ‘~hWÎÏûüÕÚØ‹8¦ß†‚+>Ëj)ƒåqÞÇæàÕ,6Uqiä\ Þ%Â/²x{o²ØÌ!ûy¾ótKÊqŸø˜èj£-BàŽoT²ãòE°Åú›Wb×éX³ƒkݱ^ 2â·Ø{-³vÖD, óss]÷a׈AÄI {â§²Ž<Ü´”ª6ÜrÜ´„ÖxÃ0©l¡þÀª)E¤²Ò,vìjˆ×¶v äù?'¾ÝYìÒèC-e`¼½·p¢äh¥ƒŸúÑO ±¯Õ»lUb&)l¡þЪ#üN¾tw±Ø={~Å|8 .¶Ä›§ÚX4ÒÛ,. ®ùÔ4¥ÐÈ—DË1{h+ÐÌ ‹8X˜ŽODÑÅ>èßÉÙ"ý¥"xgÍWm‚ÝÄîðµß"nY@ñ@’@Ô0•)ÇA„Iv/ù"pÅÎÙsàþ¨95©~lQþÎUKÚÈ·ÒKFH,8í5dJhhø<¿/HxduÕDEùêŠÝ¯Zt´1ÉÆéd©"Y$¥ó¿Æ*cm${Áƒ½úDØ Ûj½üõÍíÒD~’Kò1µBzk _“5gkAd¯& ¤¢4 ö‡ÿ'­¦²HVÊv9$‰ô¤œ’Èú±ñ 5crzZ)$ßË0#wd¨T—83ÔÏ9úãkÆÅ¦ßIwéˆF¾• ü;¸þ\®?ןëÏõçúÿw¥ðýþóú®=ÙäIOÖOËoå`H¥›ô‘Vü;EHý`ÔòJͤn6b2mÉóÉD•xHÎJYí¦´¾VÒ>ú©Æ×eÒE~EýÝþÑ•V’!ï|)¡µ‹Ö‚Ûžæ<>•ûúNÍêI=«³Ý>/‹bôˆÞ”Rfø¯8õí?¯D’J8µ|¤ôC?º©uÕÕpß0:KšXBk`_Xykm™¨ÿ{[ ØX­£íõ:«ø/VõÿוV2çI¤’F²­°ÝÒ‹ZÄÎàëå©Ô×q–ÓjØWb¹l„õ¶¼üÖ… hŸ¿‡ú%ò× âþötUÆ‚©©~›ifKm嬀ԴÉêÙm­Å$‘Õ²ÛÂØ¼ ¥µµÊ–ßÖ[]´‘ܲ£NÚUJщÎ×ÿu奶)#_Jg­m÷5›•´ø¶Z_cÙFèbŒžúö‘ÝôûÄv]ÙëôÛƒã*ðzS«ní,Ž ÒÑúgÞþ÷•ùGËDY&á톦$¶‹Ú =Æå¶ÏÌí÷™äû†Dçç3ºÈwÅpý’Ë[\0â++ "Ô#N‚M¥t¨¼âù¿­t ^b²Ýÿ¸îÕ¾CL‹h»ÀûˆögÏôŠÆ!.¢™ëstNÏkTûÐòñüs¿ƒÛëó%1pRi‘Pq§ûߺ2Ár²Så'Õ™úFÇû{¹ÞëGÄÿ$u÷¹ÑœDýBÍOÆ+iáì©f²ËzJ_¢©ß÷ü¤B«57‘pßõÿÑâAísõGV:0?»4ƒÒ]×ê3ç|w¨wZ…hߣY|Wðê:ƒÇ·Ä–ÈÜTœ6ľ»§ßõ?zJ¦Lkßû^?}ÁݶT{úWIÉ#®œ—õºJê~¢ü‰®×»z¹éeMëïh=ì»ÝœÃî©@„\ÄAÐÐíêÞª¯üþö,øKNøAbžÏf}§—Ð=û\ÈvÉ|'è"àØmüy¹ßüF\{‰„¾Ó2ÚQ=¡‘í’Æå\W£»ú1±Ï\Ü·<-¿*¾QÍF£âdÂÐ=»uM*ùVXûë=ÕmÄÿJ]‡õCt‰UÜÜ|û÷zGÃÚoZÌûÀã)—ù½¹!¢­à]‘ýpö¶ÈfÚb+nÏȨ¹Cñ„¼øg^ât¹ö´ôxï{¬ýÉöéA½ ƒõ´Þæ·÷ú¥Ö€ÁÐD8p!VŽÇ§!Ö{£‹ºx¹¢®ï·Ë– aI-,LàºÞû À§Cç*[M'K¥RäÁÿSìÈþt8 ÙSßaìk4’\¿…§»ÙÉÉŽ7á±`@m­mÒ¥º‘gÄêÃÚYp¼p¯%µ ÔQ¹¤n°EýVf<¿œ“\Ø1öܧñàø ÜQݤãxD&ŸŸ^`õ[Hï: ß$ ¢ûÛ5=ìà¸V‡óFþi¼r_ GõÑ@W ±Ghu4“ Aß÷þ_Wv,ŸP¾2Ú«‡»® é>ì{ ëOЉ~×Ëå­î†ûEFCáÍuG™ ˆgÖ]ýî6>·=àå½ë}"0 ½Õ–Ûc{e‡ì•ÔiCWT奕îò“Ÿo’ùŸÀi×øÎ•«´ö óÇæ¹»Xõ*Ya•.ƒ®'×Ñy~¯\.¢¼?¢ ¸±ÝÏ y[,JE”ÜJÙ›l›mšýbqW­±ü½ßÿ¾R“óŠHýYSáÜ…ÃlǶ{u¡ÎÂ~ÑȰ‰êvDÎ…ìE+ëÔÍúIMÝ÷û|¨hÖŠj§?ÏÄ6w·ûLŽÙ'¼©)ðÿ±¶ÍfÙTð¡³% œÑš’¬ +©¤‚Tio‘19,>:–Œfç±øzè:Å÷„é¦óõ€Ÿ²•œx˜×]ŸË€B#W©?´Å0¿8D†Ú~ÈÃí|D^,…÷϶­ÄA[ÛeCá‹+¨0BËlÄä r*i®é¬ŒÍ¥Ž)޹‘æœîÀ¯[û[ùÞ‹N@Sùy6zq½®Îë7°£Èä‚X°€y:ùs’“ÃùVã)ëðŠ£—`÷þþ}¡*©&G`½µµì&ÿH¿ehFNø^sOp{×RDþµÈø)ùþ¡Ü÷rGŠSÆ¢æ; K˜ Cx‰?mЊZ‡cÝÞ }dÆù`æmÍ4‚ÆÑ©¡â¼ ›Ê6TIU$<ˆ·žÐÞÚ‹|?šxï¬]ùí,•¯ÛÁÖS¿'bÇçÐÂ⢠´ˆtÑè0á¬Ô WtùàcKknÎ âhßC5Ãï'~ü±ðÚ°ëÖš9èýÿSIzØè/²K\õžŠOvë÷õÓfcý¶è" Û ßÙ¾ŸD‚ˆ0½ÙD÷¹¾þcxü}rÿ+u`‚yŸG“çøÎPKyþ<)1’™ÿ%›5DWý$GåÏH½7EÊ‚÷Ag'ËfßËÒõ³­Mµ>Ÿ<µU€Ìð]}]Ýû¬¾Z›I6Øþ÷Zæ[ £ÙN¿[v è&ï)ƒ/ñ·¦ ÷iâ!–±rT‹O¨R[1´ÐÉ>Ò`ß›UjÈ1yƒ÷l^F¶§|¹~°“@¼ïˆ ·ß!¾9+.DŽM ýAýB¿”“:“\ÿ©¥ LÅÎàŒûù nÀï³â˜û;S`” ýì“|æ:ÿ ·©#S VáÙ`_Jó/E¥îrú?­ÊÕ>f§ˆÚ%ÄAkŽå¾´d¶h îM!š¯j]ì¯ö=¯ °Ž Ý;9áû‚lò{Ä"_ ,|ô_CM”ü¦i¼…¹nÑ®Îu½¾ ê²ÄÄÿéf»>½ë|·ª7èàqp›þ¤_Sĵ~Gà˜àp¼b:¬¾4Ìg þÜJÃé‡èd¡¼ÄëcÀ!^òw.«ëŠ” tó¸Ù“ƒñü\Ìxæ&a”‚·êlèT`ÿ Ù­b?ûÎ_§|ϲ%êl‚%'k{´àæ5°Dæ&?…®¢¡QºD®ù>‡‡eŒl–¬ Âàß3â¦æµ&v’#ûó7ÍܽËêú¤‚W'Å3\_œ¹è#FP{À}%Menæ:…µÈqùöQñ¸™Ný°új]n²£›èúû-ÑVº\VJT={Gþÿßp¬ð ï}©é­¸%¶]=\ˆln.bzˇO±VÔ Z;¢­M´UòeåO%½¥4ŸôŸ8qÿÙNb«;ð§…a¾Ûëp¸]z{Al<ô»GójK['?K$m ‚æ—ç2…熃–7ÐÛU—˜?„G¸îÚñ­´¥ñªÃ}[ÂýËYMaKl@`‹|4éËÃzªI5Ðý!ñš Ç0wÞ2&y¨n'OWáǨbgÁÜÎÏm ZsdÉ »[,mðýCrF‡Ûøõnüߟ .½ ô_Hµp¯È‰¯çâ*ö€ýW"ÿ·´…öFMþr2LVƒbim9ê5>xM½” cCˆý¦ä€N ÁzxÐ"$wóŸÖ‘'Fƒæ1­£–”0†Ô¶qñx’›Œz†<àö~»9ZW怛ñ¬3,Œ7%ôgWçègA<Ø@¾&âv±º‰gÁ§û|ÆcêÎïo·Æû‡jG-£ a ÁˆHÑ‘ °oï@(íßÝ9í0uò t4ÛïŸsîKÜ'š rÎÃ7úžˆwð¬ÇÎŽ1å‚xM¨#)®Ÿ×#2öT¼u‡ßçìÎù´õÌÝgïB®kÆÏµÁ|×ý~(~½“#SÛ=/}AÀð@×+Ëõ; A‘vÒ»é‹É!~º€›øz¾å3D°> °ŸÿkÊXY†ìn¦½ëßÞRۀ쑽7¯À_#ECªØ.0žž`¼ëñ±ÑÏ{ß„œý‹ïÝ<üÞC·@+´9¼Îííè'ì£Æ9̳ù$6léC»Ž_ïDΩdË)D@$þ™XxõŸQÜÆ³¦ •ؾ°}úU·¹Ô„¹‚:³½ô“þÈêönÑ |>7ãb V<­EˆövÔË3\»áÓñ‰nÔă‰îUäö=:MSj=ßõl¸·yúùón~ˆ›|LS‚Š ÌÍÓ½³ÚÏsà·É7'ð®1Z<¨WBúÀÝVb·CzÆÏûuóÝô×ÝÀñ½çÏõ®ð“úaùnDB_^_Ž¿lÆnøwðzwÅk;¹Áq…¾Cv/c¹?Ž¥ÄÛcšã‘ì*Ï9T9ÃÿèέžÓ“A½+ #øÐ÷hßHmûŸž„åËݯÍ!ÚV>é~ßM íÐÀ¯ÞÆËý=/IÍáøqß÷£q2V;`ùIdÌüÍß%8‘¹I™çyæ>ye“*•v» ê\Ò\Ì;cºIf9Ìçš·YŠDnÂÝ=°ÏÍ5vÝ€.¢‘Èîæ™µBªþxÁ`^á§\¸ áW}ŸÛíü>‰Ì8 ÔÆ_ŒL…ùœÖ·H™Ã–ñĵ¡xýCü* URR‹ßÎbk5xüG¤ Ñ×Y³kErQ,*œìð—£Èpïm£ÉáB'±áQdí¨ùñÝ Æ£… èÄñû÷Ô‹îˆñ~JˆãKÃAÉf|wý/]¦{Cõ“Ê¡€íôýÔB¨{“#YY{~ ¢ü=@ßÄ ÜØÂõ+KGͲYOúFçôºº«@;ù­¢ÇÇ;’#ê“%ûàÿ+}gø0Ty³|¬"Gºƒt&GW÷Üä—Hö k‡¡(A¤ÜÆ/Ü"Ñ,+¾ÖT{µüL)"—å¢ÇóÈ1ßÏæ ¶=A27ÿý<±=\o¬õsXÑ0²{KÿÖÐMxj©ÒdÃç ú{…2[rô1Íè÷Á_’Ju™¤ñ×½öÅO ‘ü&Yêž=ßw€O£4™¦ó“¢V!ý ´uU¿¢® ¦ ó(1Nk!ýGúzpS…®ð—b“õóÙoüå§ ø;Eã€6CÁõ¥òß%Þ…z.€}^û¹¾çÈmÏù~)VxÖûµæÀÞHpÎͺ öFCnÄ3t4Ñç‡ÔÃYáHG|¯ Ûh(‚¹\z€¼±ÞwSý,¸DdÔ’$ØâS}f‘zËÏ~‡÷“³ Z^kȧßç¯W-ÃÏ]È…ÚH3kB|ÀM„Ü„n:óê]¼%¦ïoÛT,¬Q57•Ò&¼éØwF]×ãæî‰x¤ém¾²VÞXž½*Ÿ[|©TÒòú-Èß^³W“©ò`ÑXv Ø ëßî§oÂïóh"às¼Á@õæð…ÌþðîÄs#=¯ç×ÝPð Ç,“YFøÎÇø{vôT.|ýb9mN(¼$—€v•…Ô:m|Ï6×ïþ5•úcØÊ#<`¹÷„Ø6N¬¥µ¹2•5±•Xr®F´/­¶µ±=ÄCe4ÙÞÏQv/¢8~äúîRwæ7>ºuÜçÑ–ÙºJ¾`‹/Á 8:KÎú(dnæÁnßãûÙÍÍoÙC&;è'Xoß?#ŽG!ajke?âÅnvr1‹gelÞÓߘæ3èzÔÉîÎü~ ~ªßø« wˆŒWT†álJ(¸þý‘&•-ò+ÍÝݱoŸGn;‹Ý¢Û{8{DÛâïóØTõ;n¼…WÚÖáÅGÑRu?ËöўđküÕÎKd¿ È æwù¿67Sè2\8-^ÆuöÛï+“V¥œ©nÇÒRtp„›Î'OÄ'_BT¸k®’½/,Cö Á²§ðúÖßú™›õ=r¥$nŽ€†ûýÝç=o<„KÚ=oÉÀ?W ‡³Óä“hï ñÛPÐ#¿6šƒÒ l£×ÀD¼³:¦~.3 pWu— u ³º=`‘¨¾µ ÈÿÍý@,ç4×/óª¯ù¦5oñw%¡¬U± X;qõB?°—>¦Þƒ÷u¬ŸÿeÓI,¥ÝMÛO× )»ñÏ×€S×ýõŒå¾f??ï®ï~˜ÙkY[Cd¸ŽÆßøa‘ñ™ûdþ­¾ûí~Ð4€^ “®£Ïgè26XÑ£¶GŽ[|qóªÈ mLŽžD]—ÌÛ)¦ÍƆA#wíÅþ®Þ]áÏ\G'ׇÑ>¥‚mK.èÍkï´¶åG÷y𛽠õš×õ½ÍKÞ ä·¢VŠˆ(â{dµ²Ür ØÂ³"i]y&¥üN–;ø~ˆfE²*Øõ1Qz’̵ ùGÁpÀô.ùù}u@´—OSé<ij´ó%ÕsD*\×;t¦nCSùNç©ÀWW¿%š'+Ûg°W]æ3Áž•H§K ~Ç…™¼ŸÜYÏXo%Yÿ5ÁfrÚ ²û<\±a=kiY­°fÔÖÄÄWðºð‚—Ú“ç‘á·6ã?aÈ|¯xG¬íÎ,^†W|l)¨ÓÚ¦k ¹láYIt2<,.ò? :÷úþ£À/õó?ñ™·RëÕvdÅÒ0½æÄ}CûYS¢#×¾~ƒõËóýëjø:ML¸¹yÈsñÁ…ÜHüŒ\ .h)ß%®‡¶ä¡ r,Ùd‘Ö±àת¾¾pþ|â}xþ:l9 ôëKÍHõÑçh9*ᯑ¼ ¬¹*ð-Õá­ê¯pGµ`às*Ÿâ×Nz$}ƒ6˜»[ÚÍ×úÈX%)iBü"«©>@:7·f”»§•(p{›¦QÑôçë7F³',  8_ÌÆ"w'­ƒ•Döް¾VÚ€#kã'µ­#±=ìÿVœÌËG´Ç"û—‚< <Räqל%¸³ÿ}탇_”d|ºdöþè*äqsMz`_wÇ‹ë‚?PóX²D7Xž»Ö½TÑäÈßQËê÷¼£*þR?Ÿ§î\g^¿Kâ ÌBÖt÷×.ÑOáC™­¿L ¶àYs¤±äÑ|ÖLÖ–è^íÏøÍÔ!ÈÙûOáÜu¿ÎdÂi^î6žç.%Ÿ×'DÁWæùÎïîh×ù|9±pIÝÞèk©7𜛠v€¼˜ŠJg¿Êþ` þ—å:˜=•3Ô¹Ñíµc²§É~·ù¾¸PgÃúEên~7@{_œ$ëç´iàzâ{»Ÿ=˜<1Ž#æû=`çvmÈ‚GA§îÚR&rHiël±ÿ¿•YFb‹ZþzÇlÖ!pÄ>䳎~ò|hZ©à5¤†¦‡½$öç©bàÿ+‘Ä]ýž„G/Ä·Ç€‡`pnïçm2¼›Z6[ŒŠ ^ó\OûÙÀnGÈmGÖ«A¦O‰fP!µåvÅFÙ ù\BÏô“ßW2I!Ë·²J¿Á›kR£¸Í°ÿ¼×uñ>Œfë)±@7#$’7F¾/xTA¾‘ÿ:Ø·ÉwI8â°ï‰ö¯8fÌéWꀊ–IóõžŸÿm¥“LÔA ©ÖÀÎáÁ‚{~Ÿ[DüÛyÃpo.Òmý úŸuí[û É¿¶úH˜ÕÂ!ÿ=äÞ…vù]ÃeAº%ÖXŸz7+Ü9šõg}ÿ§•VJKq¹"çülÇ<X…§g¦ªÍ "l๭H秊A—Ý›RÍ6¢j ëmû¨WÉ–ÔMB9 <ÖaöÔ6ý.> ÙLt»6ˆw<þõ•ÿŸ%©Ï>ÑV“½öÂmj"}njڕ؇Ÿá$üÞÆšk7tº-¶ ÖÏ÷….o·Á†ËZæŸÍÜ츣êî÷¿nÑÀ½ÎøÂòËÀ`‹ùWÖ(é.¿ß±¬„DaðôOÌÓ]‚m/"Õ)?Õð›fƒ,f`±ÇëÚjxÍÇ0œ¾÷usþBtÛA$D$J¶Ø3›Î£¿½’~Áò¯¬ÞRS>Ćo´¸ESÛDwy$™ë'¹ŸåßKþ vRtò%’³à¯âä·6Èÿ˜×:ÙB˜A2~ø›)û©ýb騋[Äÿëj*‰á¸¯4‰%'®‡ƒòi‰ëà@¢þ†¿ŸÙ‰Éó%aò‰AþíZŸÿ•ˆ¸¬á¬“ ¶ãÄÄ6? Pù‡óœ±ÚŒùWXé©áRø¾ ©xóâÇ)ª~íö?…Á¦J~øÔ~³µÔÃÙ,Ä®Ùkkmng<ÀO'í¼¿Çÿ ¢a¢IW$ôÛþßV.ªÜ›êºY¤„ 4Óðåï±ãä²â–‹gj‘Ù7[ô@#ík—l>Z o…‰›rÄþ˜ä{ŽöÿÇl”†ŽÝÎÛÚ+?PÍŸÑuøôüx… Á£¯[{µþÞ¶¯ì'Ûi+ì™>•®TFùþ¥º¿ÿÛJ*ŸÈï¡,òw­&7³y¾Ïé‡ÝŽé‰b%íñTok g‘,¬=ÕšÜºÙ¾ã …´µQ` ó‡W9¤·¤Õ¹:OÓaå¤h`®VµXvJê( k©-޽Ôº\¸ä{]º}Íw´Áj£Ÿeš]#ñ` ô‡Vb¤Ï(Ä´¶Ý«°x8¾®é$½£Ï5à¯ö†Eþ˜Øý޾Ó줞 ìÖSšØÂ[·k8[¯5µR¨ï|þWA/5Øw\2ëPüÙ톸§‚uï}ìgúVaûCšÞrwY,Œe´¨¶ì· ý<Ñú”#¾³–hàªöÐÒ@‚¹Ï÷¬‚0dð»]ÒW/ëq|:ºÝÐðd½ì–ÐÖê}}…lá,-Vlà1,3‘žÝÎèA¬šÇ}©y­ª5°¾ÄÍ]©Ñ5}(Øíó·¬’à~RØÎ ¬îº{»{WÝ]ÝûñíóDzl~w÷È'¶KxBä®lÕ¬¥A}ÇŒÓèáïq–Âòû+HÐÑZ f¯—¿må °–2ò³Ì×”v#áõ®—íumŸnÁú7±ú=´ávHÍàˆL–—,䇼u£àA"sûZ’fZo˜Á%ÍE„î‰PÕÈÔ©¥‰ÜÒÏ|‚K:SgëNrÀp}»š=$ö]‡è#`_L«ë»^Þ%$·2_9¤NÛ82®µö÷†t· ¶ÄÖà éd‚Ðëå°|^‰'g´'¶Ëm/ˆý¾ø!]®cAÀ±ò®wÇ'¶U“Â‰Ïøy/±ÐDbÛ«Kˆ7!ñßÇ:à {ØkaÇùyšæ“úTM¡s—ÆÔs©µŠ¹k^űï>=©næIˆNF®\V D²AH–Ÿ’šbåw0‚Z™Ÿ¢À¯ÃNøø¬QÁ…†xþ÷0æÞ0¢ãbåµ$ÿO°»^þO« |¯›,“4dù8 ö#Mm›ëorRÓ>è ö?BŽÛå+¡Wåvtd÷\gÓÒÍ\o¼MºV¯á7ïôã;â¿(Yß~°5öÐ~³¶ø@]ÉlqÿËÊN•› û›æ#ŽÝýK Á¼›Ä÷Po4õí Íi÷ñêhÄøKê€(`€±ý}@Ù,+ïît¿Hüß >$w¾€9ÆÇ›òÂ…¿·ùØÿŒÅ dÔæ’%¨}/þûÊ ö7ÿÒPélƒÝ]ÁÊ‹°õfb³~ ×pȾO7jDs»ããánößEŽx¨9¨ßã ‰v§:ž¼›Êà$šºE¬d惃‰†ðUVSªcCÏJE•›CÞH}]¯_dIì&Ÿ{ƒ¿ûuŸö×_u•ßѳ-œÅ+žÃv÷“Àc“¢ƒî®·M,]ÒwDZGÕðœ,q ®pt˜d“m |h«M5 ÜÓq’MŠ[쿬ܒ†GN™ Žï糦€±D"¶"Ç|,ï:úìófø=ÐÛ`=ÛÀ¸'Hx‘L op}Êáùïµ*º‹v÷¾&ìôóናê[´b;lrVMj®Š§„ñ¥„Z ©Oñ©Ý½«îŸwX÷’¶Ó ÿyßùqþ±›è^îû,å§=ÄÊ#°~“".>RZD¢à6¾2 ¼ oØ¢W© r‘O¢XYðp¸uBg_Ã4ª[t¦²¸,–¤d·Ó¾ëq?ý Æî$»AÐRÛbw¿ëMª cp»=ÈäÛ‰ý;éb<#œM#]Õ›ÓJ =©}wâ³xÏ!|æ'òÁ:²B>8A5j…l©Ý‚gU ¶ðâßU; µïÈ5“<ÿ?ÉV`õÕÚ\›è4*š5 BÑïzƒç_æßûºAÂà-w9>Œ•°ää:7 égA4¸¾q×x_E-‹7hf«¯¨hì'“@*r@iX_mÙ‡§GÁöú.ý—ùm†ö»–:k7l¼k'ò}r—„;y> ­e&žãv5&7ÓPï¸>¢ƒl¹b´¯†j"à8l©(YÇ÷Y­iìí ú¿¸Ý?¥åŠD¶Èå¦Þ¬ðˆ} Iûãµýa>n÷Ö ²àuª½ˆ¶Cǃ}®'È ýR“Û5+5@p —}‚º»F÷[]›«}ÑÞñ¿0¢Xd†ÊÄGTô”ÖÒY+êáxÁLBæ««BŽÛÇÖ×ý¼·ñüîz^o߯àùëȃÐRd$=N””Öýò\îH<ç‰ïgÔÜ3èfÛˆ†Ñ:T|@Ù~¼âU7+°°…çÑÌ6i M" ‚,Fп˜DÔ¸xt\*¾£~Ÿÿ"P`e`ÿXúk{ öe¤â=Œ|·ÐÆ ü$¬æÀ+Zéx^T;ë÷Kï†7º»}‚€7ù[a@÷ˆŽ¾ûõç°ävdÂô  û·iÐÏŽçÊÉI ¢Ç°-ä·ÍÈëº@¬Gš50¿nøo *Ù“|w³ÐánþÃb-Dèåg‚íÆ_6ø.šS9¢*øÿ«5¥Žp;ǹIÀüõ¬HÿQÑÎÚÂ/šóS{tùÓJYi+gÄU³GÈd{üw×ÇüZئM±àAøK+`ÛÁÆ¥øÄðp Z¨­S¬hà==’Ü”w󟪻3|&ï]Ò2rCTË2ºž_…ÀÀ^Ö”hnßÚ×ö­{Jx|¬¯ä§èH±WÓPÓd£â{ˆOöÑ?”üý-Þ\ÚÏsJl,ÇÎë5<ÏBÀ„<ÄÁ{ò_xüg>š¨n‰ïoð‹Ièð‘ºù—®Dqß'§·5ÁJáýål£Æ•ØA”ÞÅþiÂßô½sÅ,9*¿ ©=ñâÜẌf£´Ø‰¯Ô„yõl• RI]•‰ê<ï*‹Ÿ—ÿvà'k©SÁ ¢cïâà•¬–m²JžIUt±šaƒßÿs[k[-dÛ†üSÐJZ¸o^¤/i ÉŒ5‘¾œå#ö…½úA”?½‘šÖ> ’½Ç; ·sS/“ QðߥàYwü=ªeæÓDZÙH´šü¸Tëédi ùJ¬'¤1 ÷'"a3±²‡L?’Hw¢b7 ÕÐiDþbNô˜ö[Mt´þv¶H÷ ÊŸ@zÊXK8s¹-:x^½ä“Ÿ#ËÝ%ÇýDÖËÀçkcàáÄê¬{ä_GæúýB̧?ûΘóü9þDÉN4ÑUË;!e hçº"+v‚£ÑÄhâf¹s Ñ2ÅgÎÝDX ´Pľ ;º™8xZP¯W ÿ/–ù~âãMoÏaiÈmSº“Ö$÷wĆõµ<òGúqÈçz œÂ®±­ž.“ƒpü£Ú¬Lß9ŽÆ!±cIÃàP›Éûý_G556´-nõ3Q\'€‹*Ì«b%¨}§J7ßñs'9lŸ^0ëi#{Y4Ó¯ø­vw{ÿå¹9h럽¼¸>IÈën¸ë<ÑÏŒ\¶ú{IßWï=ˆ£¼o)ÌÚõM®nßS ô·Aõ…¤‘EÒˆˆ½ÇçZ‹½Çñ]µ=¬þtr¨½µ 1Ð K÷Šs‘nZq>~Üû…|ï²Þvò¨ët1½MÔQèiº>§êuó/Þ¡•Ÿ‘>Ϲ²?«|g ä« Êÿ¥Ä”ñR’žÜö›6÷Ò÷Ãzñô‡~Êá38ß42ŠO> OžâùßlÉ. µûZÐná ›ðõY¼o¯ÏÄ[~Eƒ'aˆ%¨Œ&S[=öó3çák8òyÄÍZiTþSQâÈ1©¶#ÓOögº~ÃñS0§‚—ø¤c‰‡Nþõƾÿùhä_„ÏœÐä°¹— ~DÛÃo“ðžèj’ï< Üûºk7úG,æ1ŸÿaŒŸ,ë:Œ­ ê!Å%©L“ŽØr/>ÝSkù»]–cc7óûxá0­?òNò\‡ï>ÄÁBâøˆïÜ¿ä¯ oEwýñòöèo1¶w::szƒ?&ººÑõR›Hý4ÏÚ®‘É´ù‚º3.7öï+uáó;ˆÉý~û^d™Â§»¢¿én÷=B@nDv m‡”3ðòýøÌ~ó;ñ–µ>:Úù.@ó|ÇŒpæÎ|`þ‰-¦õóÎòÊ>rÃ#þê{2a8eB &ÿ͆üÃäµì¿Ü=LnBÏ ?­ÄM*¸â`#VÛ‚”ý@€nüÛ$ŸF,F7 }ƒïvºš÷÷E3ãðš™Øx£Ÿ uÐ÷?ÿ€\7/xƒ~÷ñL2ûˆê/ ^‘Ð~ êÕà’’U6Jðy-øõÞ×ê.ϹK⟯üõxÀ2ªýdw7m„ïï²ÎÏus=¦ù‰§ÓÀÎ>ÄÈtô4ÚÆ{’ÿ’Ú3u÷ä æsYö²æ ¯¬•‚:ÿâ+êßIBmþ«fÕ2Ä_¯›ÖE°ó`ö]dX†gÏ$úkáÙý‰‚NxÁD?Ñr-2¾ÃG梻uÓG¿÷r ÖõsÏvªëû„ï‰ýžØ(vSäáï„SÕ¦‚ îÐ^Rü÷\D?‚ãÔÓØ0”Ó™ø’Oþ’XØFÔ®A#µô32Àd¤ë¢nâz?+øñ2|¶Ôs]â–?›"Ûtß;o1tÀß+TÞš[|ë¾^õÝ¥ÉnRJЯ䂿¯—Nø~T*¼¦ú-¹ÐÍö‰åïf:ý7#ý|¤Ë¦)±ïP|<¿oFöUHíªåChl0š@m0ýTÔ É:ì~ØOºÊçO‚ôu¬”Ÿ‰øšš(,µÏ,ÍôI‰‚xµë]ÖVù{wžƒYóµ¼í‚åÞð½æ!×C xpÑÖ ßA|¿,r¬%LA#c9v"ã~ßA.q7½}ns©®cYr«kÅ-µ=ö³ôšë'A·Z©+½´¹i#Œæ¢ÖAÒöd¨õx­›ZtŸŸÜdÐM [vÍâYítÐn2?$Ë¿#ÇïÁÚÑÜj?ý&©f1Ü=3§ñ¤û0Ë8ö•¹ëE©©0óá®ÏêF"g°& ²ôî Ðç’‡ú¶„Ÿò= üjŒlYìè¼\ ‘ÍH6… 0O+#Y~2€ë~¿šÈc‹àp»À´˜¿ˆãh:}'ßñóÞq€œÿù#PU?ÒB–Ùb“ ÃS'¿3%^‚9ûê÷ÕP>%þæ³dÔÜGcjKuwô¯@Î'|úkäì¾Øð¿´&§îNŒ\ÐVÖºûùnÊûY¢ #ü'«#–úù™gyí!±”˜Ü÷ŸrWG]ß”ÜV“Zùë¢ÁßÝAjJM½*ãav»©t‹|J¶vyº9ð|þ‘¾ùBÈXåÈ ôx}/rxk¯i@€CšÖj8CY^=†OìÅ?ž¨»o6Ýö”ö\³S •Cù¹‡•êì£ß×dà¡V%ßjÛZ» è'ˆß×þ:Ÿ»Ò»žßVqÄ r[ym[¿j"EOx]mgél¤m!;ÔÓú<bnÆCî¤-™Ÿ~öóÚÏØxƒ¶Ô"“mÞJí`‹/·¨*“ûÜõ«uXíŒå<¸ÓÜýk7üľ¾‡åìßNk‚ƒyîh?Z3+dm©5´ ÜopÀÁègºÚï¿A‰ÍM¾~F¼§D{Ñæyuû'ÂÂ;=û Ü'ƒì—ß§^ŸT7©ÐÍvÙå'5¾óÿ÷ÕÍq40ÿ® ¶öÝ᫃êŬ†U·ýÖ V·ˆYçï쉧ìFg.÷7³+è4¾­†M¦!Fö‘UR˜ëœwG§„‚}!á e;<çr]ÓsÔKàøÇü]k±ñÓkhÃMDÞA^ü îÿy‹'çÄò#‘?š °!æºç¾Dƒ§É]Ð×Yß-,Ñþ!¯e!C|dOÕÝ-…ßÝ¼È :Pš[|‰ªMe› $ÚÝÌ×ð>GÖÑØo3¾;kh»±ëªš–°^7ù0ñ{O[[ow¿‘PÉÆ‚ß;¾x:ßsèmüÕ|– ßx ú»¾Y‘ù?h5?91£5 ARê,òß]d#ñüdäñ.0݉°¶Ô@‰±|4s¾1Ÿæ3ZX?Áû­Ž!›¹^ßµŠu€Ûºi7Iìò'Ú]¿°jÔ¸yБë…wÍ$0wgí[u3ÇZlñÅõ:j*QAè‡ZiÞ¡kñÛ¸¶.×–x‚-£òB Þ›ê-œŸ^Üßw÷·$ûÕ"Ëï§¶qýÿù;ÜÝ€éí9/–9 V6-ê’sÈ [ jà¯{ÒBêiSKš]D~w~ò)ˆÕœ¿³¹Lö[?jË+¯|/Û˜ÖôïJ^ë¥cø­‚c~ÖÞõ¶D©k¦sì-Ší§?±ÐÒÞWð9¬¡¶·_Ñu"tü•NëÊS©`gÁå£äæ9¾¶Ûä¯rG&Kàý£ˆ{~îÍÖ ”µŸ@ú~¼6A ƒ x~qÆN©»—ê,º¤¹‚ñàQ‹ÑÈ:ô>ô ºêOf)"·ƒ-<+',l’” õBàØBçrÿ¾‹G„P¹³Â‡© {zu±`Ræ¯ôàñUó0MgS½\í Œø y.>Qu–ìŸîw=¸¿½‘ÈHO TÖØP[xV€<”^ÖkAb;/Zp³ÏzƒnVË?Ç{,ö_­ßY+m­ñèV~îAl?DËÀ;kwÍm¿ðZSÞ9kßÄÿ ñ÷Nƒ‚±@‡8dÿ½pÉã _<+o#´¶$ ýÿWI @=×–ÁîŸø+ü¯øœ[À¼Ú›zoœ¿ïe)œ§Qþd¨Oõþ±'rW‡u@ƒ4¶°ŸÍÍr³!˃(9©ú¢‘1Ü4½•ÄÖBòGQ?ÿ ¬¶¶àYs$dñçù¦Pÿ%Vgûlß ™:á¿[2ÕñC?)·%’×@/ß“ç;-{ Ÿã8.œ}ÿ/Fþ£~¦žÙï$˜²î4_º¢1`¿5, 3ƒ-ø_VK©"Ï$§U%²Sƒ^Ó±Òê_7 }¬Ÿ~0‹è­Gj4ñ6Ä–‘ã“Yv}-‘Ì]ûêìÏ~öƒáô÷<_Áƒú¹ÈÛýô°Iü­Ùþšh$¿g~¨@?·JJ9 ©ðÖ¢d€™þúõYj 7Áë,¿ÿæÏ¹»¢Û!Ã`dŸ·¹I~/fy>3VÞJ”t"Kô×~ÏÄ6^ßÅ÷3~¦¨‹|×I{1Qt„©h_Z+2O°%ÿ}%—J2QÞ{V{„Oê8Ï*œÛÈÿÚ_×™‹Ló׆G‚+ýý÷ýdß–„ÚÏݹŸé…úqÜ&ßû2 „¹»Âܹ€wäÃç~btRrÄ^ml±ÿÃÊ.å øý„ŒžÌ”ƒ8HÆ'Èc*Q;ow}íÁ¶«à¾™È`eýW{A†×»`ÇA‰Á±S(wws§Å²ãküäÈsÚÄ&Ré†ñ7´ž0£•ÖÆŽYÍ@ m Î|ýç•] Jb¢à–¸Y%‰ýÜ*·“e’:O.ŒŒ±m-Q}]?ôÓAâaûØv Y -|¦º÷íF°¼ø;üD°AQNt]<²– °M[†ÊnÙýîç1¢–ÈO©O“ÍE>Œãï}mo_X_áîõù«$¿WÇÚMaö™l¼o øV–º‰ í\€å³Ù ës ¿_6V7TìzúŸV{ÉÇWjÛ/­¦ ·^çé© ZاÔÇw@økzL£€áno{xltTh)€ïçÈ»ÄK\«ÅëyÈ{÷´9v‚gŒ§nümõÓÒ,Ø‚þ/«±|'i%)ÈÖ‰«Ùklzo¬?‹w•H8ONwSÃX>´SÇ*Y;»¡iíFÅCš ¼Z•Wª€y‰‰¡Äü;këÈyÓñŠþ¡jîÏ]Í%©lººGó’ÑŽë)-i«È ií­F Šq÷¶ÞõÝßS€iC©v Qíµ·•:Ì–›ãnÞy+d­ÌÏÕ‰ˆÏ¨tGØt¸…ãhfml!ÿÊÊG^ª'¥’ß­”” ߆خ ljå-ú ÿws}Ÿkj±/1RØî¡ƒ[:š(HláÀÈ·Úņ#·›ýXÏïa-mŒm² 6S?Ô!Áñÿº¾–]TƒÈßµÀwwǾ«`3û™/‰Ì푺 ¨h?€x-`4çð‹>ºHhF<òWçÙ~¯áÏ(4°ï,/ o£¤·4¶xÓJ®Ãýä‚|òþ–éÝŒšðÂÖ6gäÇ¡Xu+œ¯hY™ÜÖì~Šo¥l³mãµÆHÞÄzY›Œ>ÊiÏ`‹õ7¯¸pý 0Þ¶ö‰jÚ¯HŸT̆_¶Q _y›„L§ÐBQ»f›QÓñ÷N¼^ ´èÉñm?¶ï,·—øM«` õ‡VÍ “OCÜ–#ƒU&²g‚åí"1?Dh€ôóìˆÝ±SzÙŠš¡Ÿ¼v•gË“ëIƒŸæƒ5íslþà*+sä…¬$¤ÀúK,Là±²e¶Ëb.Ù0ûÍnZø@ ðeà#b;S`7^ÃÙOmÛžwÜ·v(#L ;¡G$c(˜tþÇW )'ã© ¢i3ëxa¯ñ÷)V+pËNX¼@–À«8Xhë#-z kà¹Ý²ƒ¼ºÔÛ'oì¬,ôZÎôýÑU\* ƒÚ²H êgHûŸnˆ¨˜Gd¤´s,0ÜÎj>·WZÔÖJ ~«Z*§l!þáUPJKXÁ§úY {àH`iàÃ0k·S,[ { ²fÐÄVïÈ6qwô§´ÉÚYßÈ)*äÛ`øÒúfÔKKªº\~öûo–I“hijÙZ’Ów( Ó¤?šÊz´ µUÎß¿æIjþm "Œ—5òøÐ”ØÈ)¶/ÐD=¤ÿsý¹þ\®?ןëÿ­U’,Ÿ‘ŒçVI%ù$¿d•ª|åæÙâ0¥D’B‚ÝÓ⟿òJÉB¾oÏ)&=d°”’ʾW!ò~C2ÿ0é&ua|9¤†|Îñù‚º¯çŸ»j`á|ÈÌ_ã¥;å ß7UÉëëIij®'ðcÝ¢Qt<Cz´“-¤öGÿ‡WeiÇ+'3ä;d‹l-­•Ðý’H³ÉošÆb[:jüºö£õµíÖÊڇÖOÛJy¼á_¹û½[E±p?|û„$×UzW¯éSMa¥-œÐˆ‚ô–ÁòXm[kÓüµ°6“ºð½µ¯í¼ÔDo5øúW]Iñò~0ýù鯩˜»K6‚ŲZ6_’Ú]ôµÏì'ëŒÂX «bù¬‘­²ÚcÖQûJWªƒÁäïZɈà*2SNJ$mM”§°ôöÌ÷Gx¡ùì>~XB#ŸÚ§–ÍjšÛéžÒÊZ~ôñ›Í³YVÏnj$m"Ÿ…Êë}}eð]!ûÉ5I¨ítÞD¶ìæzº^vÑ­”Ò ZÃ2í¯ô™¾×Kú!G¤°ˆDÂ^ëou¬¤5°{úìüT²[ ?¸Rcÿš’F«ë`]ªwô¡Æ0·ƒ÷¾†è=Ä7‘ÿKn©ð‹çúš×? ³ƒ ùl1úÉ`ÀÅØÖL Ò[ ?°rÀqòó‰ˆÛÕ|QkÀÎèYï¯yÓ·jö”¯#šŠ¨ÏŠ¿»]­÷ÀÇô–Ùé-|%‰Å O|m%ì¨VÒ¹ ihèuø·-çùÅà5ßi$NeáÉì't½~„\Àê7ü^ÆZvHaÑ,ŠŸyÙn#ysÓÞâ—y­›uçÕ—ú³N‘êüÝnËÊ*‰a°­%¥º;¢ó#³ØZ¡³õ¶º½ çôïúXwò{9ü¼”ï塿úŸ VvèQøÐk}£iÉßû^Oùm®Tõ熒ƒUyáøŸHA}DDšÅµk:]§×‘Îu¾Ù‚6éUuz‰híKdå,Q˜8‰å¯ãoÔM…hcýl«-²W¶NëJÅP·>Ãó3À÷Ùá,ùë5>íú9ÌÓ¹È}›_–òÓcMlô€ŽBò¼à\A‹d`ý³h/z©nímƒ]²Ó6Å>·ÞÚ@¾¥F ­+’†¯ÜÕ~VÙ €i÷u¾þ¦‹t›Ñ™øþu;eœç_"ã}c µ·f#+fÆöŸøIwÐË =ï$CâAäÁ~xˆÛï°ÃBìÖ¤: ­•QV©ãùQGbûDà^s{ Ý\Ÿ“ ß^½§áˆw¯ãUý¶S€ˆOiŠÇÑÎö›À†m“˜g+XZ2AYâ ¡ ·öž(ÈL^ mw¹U ß ³Ä1Ü„dòÈ|%áë 6_¦Su¿®V×à à rß%;|ì»Z²»;üjBð¢‘òFã®ëC>ÏËÃ…ªÙð‚ÔNu¥A¨ó"Tòù©õÉkjœÇþ~Öç乨¶ ëÿŠÌ#t‰îýÂÛGHêvGÆEþXÿ#X »6 _…mµÖ7aÿWšš÷§#R¡ŸH–m¬F®oV>Il‘ÿÓ*HΫǧJ‚ oj¤Þ¨®ÿY?`¢ŽÑŠèc‘ûv-DÇâ1ÉQíhWêÏínÏ,Å;Ïá±` Å}§Ï¸< ¡…R6×îÚ!‹¦_†‚ÞÇÿ¾²‘ùŠÈnrþV­êwèŸ!ƒŸò»^·ùþGÍt¿¯jd4t4È…´nŸo.¼þ°nט¼32áûü¸Î'ñí­¯ž¡Õ"`Ä ;B.Ü ä’´üŸ¡c¥ó³Ë&$¸ƒÏ'Â’nïöEpn/²Ó5Úƒ Áöa× @Tò0ذ= @ XÞ{^w“0Š‰Í‰”˼/‚…ÿÞñ—.œ1¨”ZÛßý>ƒíBËyÂŒTºù¤ ÖŠYOn°? ÕÎu<{þ¤ u,ùnŸ®ò³ÏŽÀ ^rLt8_$-q]Ú:é-‹´7µ;|é¾ïÿ~ôˆHr{Ë¢6ÕF“줖4TÁ_©a¥)ä’Äñ_úΖ[‰ò Øù1HøœØï¤}àÏ‘,ü.G¸{@]Ÿ„[ðü2ü þ{­íæwŸà*¢@ðÿ“DÐv¼áœª=™p¬°¶ÞžÂ´Bƒ¤‘’TÚ“ÑΓ¹ßñ™#ú½Ü‡|ßö-Ä}_ʧ߬]ð€±¾Ë÷c,;=,ÑØØ9~î¾Ò†1wx»þ-ßûžbK©¢[SŽøÒRf· vBI’` /®PbòñA¼ÿ 2]×8øpsÝÀ‚úÇt4¶ŸÇWâÙ^4Žè¿Ê+]|É®E`E¥¨|ݼ¬S:…Ìb­ì€ÎBg·ÕõØ­I‘¹ÒŸÃöya ]É 9CÅtÔ|RI¦ˆëÒu†3M—I@&{Iæ Á{§À|—Â÷:÷‘ñôýØ÷ˆ¶ä;¥e˜„Aûßóyÿh­aKlÑ´½=^À2óWóYKä®àÏ e³ŒºPâ[x"?5õÞmòÝõû=–áûï‘íºîÁƒ·j¢`"|n‡þ¨õÉlœV"¶£íó´€4‘©nñžóÔI=Ðâ[K¦;¥+È7A”»ÔÕ¬6oÉßY ëfm­±þ*éƒ~… ;ï¤vu»Çc±Þ_Ý(×Ëy­ïãºQ ‘óÏðÛ ô3Í÷|Í¿[ª=e­ÜÀ;N«t”6…?Œ¶… üiÏïúq®B,Fä€ }J=ô“õ…)ÞÒÒA¯‡3HY"I`­Qm«ïW¿ÏÞEìþ†õ‚ýt$é j%µ_t ² ý\$®ãÀt&kuÄ{oC8v—·m¶Ù&À‰›O«›’•‰Z PÏîû!µ´¡xͰ ×I¨{vËT2TXÙEPû9í ¿òŸÄÖÍô"¸?ž[)Ü¿-xÁ þÝ©¥a‰í5†¯Œç¨ëŽÓ¾²£ÚÂÿùÝõBNBm\Éï‚`ãðý"V>Ü ØöwÅrr@òâ§QüÞo׳æÑ‹L¸…šo¶¶A®¸äíõú‘¶ÂÓ]oÛËøÈ3ýL¯ÊX%}¥ÒYà‰­ŸæÒ4ð<·[h˜‹gõµQ!%"êÛ4jÂo¨‰[k½ N‚Kÿç–eR’|†ì]˜¾ÊÏu-йévàûõðbágkv´QÓ6ƒÃu0¯€Nn²Q®I7$oïND@CM±ö5|j>:toËXNs“£Ë#}êàÖ0æzøÄríÔ)X9¾˜¬‘É䳈ة®¹©nÑàç®÷åøÎ,°n0±u5mi0`~¼sàÅ•5!l¿1R‡ïcyæ±r“ ÇÜY™p¿ù{õÉø®þIEä¿ "Ò¢‹Ôðà&Ö*¨çÃRP÷ô,XÊÏÈ>»y‡aýgÕÍsÛMöï‚VáщÌõìÞ‹´®ÃemÁóÓ´'9`8ßC{“Ûúº1/Uîk2çz?å!µ@zjŸ´~Gˆ›Ž\˜ ù£í¶ãÒ0ˆò§–Êð—1à^ sg·ëkÛõÿXDßÉ¿+ÈhÝÀ±È|ú*d¯w~V--£Ë‘x±±<˜Å³Ÿk5pPÀøÁd·D¶v<鯀©ÏA×?«Äæù[ŸÃª[ »ÔëÃÙ¤šL–)|¶Œd?7÷16Þú„ÜæÎø!Æë7صyn¾}[ s=ê8ÈÜãúâù{áÑ8²ÒžÓð0ÝŒ°§£<»É“E÷€$îªëúèfgç¥f4‹jñí…Ô ¢ü…‰þŸÅõ3sÓÝÝ9ïG~ÎÝH„‡w€ïõÒ®|o©_õË‘ÅU?ñyxŒŽ ÛbÝ#åÕÝåÿÔ÷Ì^‹|à‚ëÑÏüh°‰¿x„ÙM¬\öݳÜô\w-¦}®µ‚(E< ?ò_&ãE%;Ãfƒ‰y×Å{¨¶ÃÒcÈa}ø©¡ïr»ͬÐòú™ÀíxN¾ÆÊ)…öù.°«a÷ð¥DÆr"h‡NõÓãn •ë¾#æj¤ýšÈF< ê~¸º’ú¯Ÿì9ü-.5ÛB,ïzw-‚ý´&ÓmÀsGâé bÚ†”®æ=ì}ÿHhÏ%…~ê;ÛnõýßÎðž`Â<ôõЬòЍq¯—µš…gÀuÝ̬#ÄÎFt4•L8¿”‘IiÀ‰v¢±ú‘}†ô)ðýͼ;¾5·¨Z7ˆòç’¤ÒI>ÃÞ®k™ëÿ~ÄÏ6ï+—{¾ÿ—ûê„5Gz\C|,÷]]®i›noÅß_c¥SØu,1ÐßÏÅpÙ`"ž°ÐÏ5tû!Kø(YLä, u÷ g éAØoXßåÝÍ|‰n@ÒyDÇSt}ÞÏÐMŒw„Õ A”?¿$—úrUV~㱿›lzžÌí$t¹à ‘}mC¢á¾³gKþNl ð·*|›Ž€ý¬Üge°üÈÛÓ>G_ߨ.­g?#W?²ákrçZ<Åu¿Œ`?hü+ì&QävUÆ%ú+ƒ¬«U ¶ðÿXš/hˆ”)ì2ŽÆö{x÷áñ‡@­ópùùhd:¸Ë5´ö`w=|?¾Í!׳ùø@0í ßß¶ˆ$ƒn&NžÁã÷wá“ørûˆ7Rg¹¹ASx¥ØÁ–ܯ°ÚÙe&ò/båöú¼ D$vѥߓûÇè0tpPK[«`Õ°{×óÆ;ßhK¼ïEÃЊëyøX]=`0„þpÉòèá2Ïø º™0¿k«Bôĵ`ï}ùÇ: saaáýisþZÇ|ìšïòøþ|Œzg õÝ:¼¸•KUü÷*ìÿ+$ê†WS t‡÷€×ôÄ+jñ:ãÁ„Kšä‹dåàü׉ˆ©0‹U0 #DVR´t'¨“_ÿ¼&J9£iÀÿøü)ÿ¹þ2ê¾%`þ<äÍ¿?’ýFÀú*€Ûý,h7 ?úê£ µÌð;_¢ƒ3DÑV*êÈyË良FL-Bƒ‡Ñê&?[¢…µÓŽÁü5š*ì²"rÓúy#ýüYÈÜ&ô½—¬ŸìºÂwAè?û ë;ßÏOø^é'ÛÓªð_7ÛÁUÿnzö0_¬ñ{ã'÷©·û,x9?}D”%!Ó:ö;Cö[ð?Vé Cd3–Od+}å²ZÝÞÕ•ØÑ} ´/Ÿ€NÖPÝ:ɧ¢•ÝòW?‚Ø‹ë7¸ìV"`ß÷™žÜÞºáýoô,¥´pƒm~êá ²äB¼}¯ºk¼½Ô]óšD•äú!¿×î–Þÿ5÷)UGÈY%$›”•%*Üüùù >| ™Ý~ŸUÈ’[?ÅÂÓ|?ü'Z {¨fÜDã“ZVœ„:!Üù Z˜’¸¹iUÉ{îlä$ß½$šÝGü”Êùíô¯ÿ~¥%Ö’ÕÒ—,p{®ÆªnþÑ;j8·wÛM±ÚO=xÔ3˜¬ð¼ÉTF7õsszËj™ÐHDj åêv;ÖÊ6 _ÏiÝ‰Ç 6úúçˆÕ·­Ò=Øÿ§UQJI9+ ȃ®¿y2ª¡DæÎ½ðY7±þíØN$r|"~z«£l7–ïk'­t } e £ ‘§ÝrÓàsÉ2­B>¿®Ù¨ô’ðoFlÿ9¼>Zدn×^rX)â!—´ExÀvX“›ü‘[‡·è¢:ÿ¸©‰m¨-§ÚgKm]°‡!ºÌg’BBé Ödq'›“Y%lÿ½5°Vœß¯Ù9®%W×ÒÂ.Y]ð½žõo1ynvëE†ŒÒ§§Ö½d£ñ€¶DëýÄÇÿnÕ–j’OR¡åg³ËšJµ#ÖÌŸ_‰éçÝÄF²Ì<>ÊÆ"aZl[“¸¯ŽÌ426/v¢Âqjq¿»F6ÉwÛÜ@5;ôÏ»ÿÙjCl)Fž/€do‰õ ö ²uÿjZ[û‹žÑè"Ž ó‚á.*3n¯ÔkŸz€'ÑC)úá+u ìÏ»ÿùê&d¨”!ÓåÚb=—¹§Ç]‰„ÞÜ Óõá¾w0Å ÚÁ‚oóñˆ0 @1¸Q8ë@¥¶åZ| l.HÒK‡xëÿÛ)qá§µ‘… ź‰Èí°óØ¿ÞSwýº?¼6¯v³«6ÄV‘ø½'™>—¥°‰vÖÜÕ²wdÀHuÖY{õ¤Ç¿¶¾“Z_KèïºÆ_ÓqÓob`Ë¡Xzù.-™…Ì,ºÁºŸØ9òC/ìËÆàïiùm¸Í¶ É82ÐÞûæß¯µrXVÉK ‡ÝÝÙ¯eX»Üm;vºˆ‚îâå´‰%|‡üq‰‰-v´Ì3¨ãiXAæ¨AEYLW[ yU ÚË6IŠõ·+¦wͺ'ö·@7Ó»§ ²6vÚNØ>+Šü;ì2Y¾ÑÀò‡ªáºÁéé%!‘ñý³UC¾–/e¹Äs;Ÿ^`ë—ð™–ààrd»Àò€ÿy7í¥ ¬H`1º:n‡íË€ÒèL0ïCœ}ðo«§|*m©‹RÂoKÊ„ ªuà‰Å”L„ ì ä•Ö"…za%l‘e , <°%d2vXÃêÇÒ#Øü%«²—¯ä¦dµ^,¡R†ªê“@e»iJޝ¡{䡼•T>Ù©€úk,mŸ©Lÿ__¥´D‘‰‰ÝrN+˜;Õ~Q£‘%¯ÉRi.Y$£Ô”9ÒYúí_»Î°Á~Ëùˆt¥$‰¬äö•´–V2J`ãjRTòS×´•*0è¬R0Øoôïõ÷ú{ý½þ^¯¿te—\RèíÙ-(…áE)%³¤‘R 1Äw9ý×W.ò~aÉŒy$µ4¥>îÉ=Å¥"ì8'•RjdO"É`y^eI":;ýU«„”Eö:2XÂjM­­d½t½h¥¢\’*šT¿Ð5ºL'k ýRRq«'EðˆÁ~ãÁ*ê§Z—$½nÑ’T¹å¨hr½‡í‡ËÍaÓ¨wØ.Ûc›y´»¶ÖãDAi)#åCôÕî¾ò빩c:`ñìzNóZ4 oÙí®VÒšRIŽê\knµ¬“­´Vßö[üÀ{glÄ ð×®TÛ H{¹!iµŠ~ªk5}…¤§ºl=å´Œ´*¶ÅNY oÍÐÃû•ê÷ª… T 4´¨ú9õ@átZ >©Ô•gòö ºoã{4µ¥°“šÂ>µåò‰þbÉ­‚-°YþDC^›n£,'5r»l÷,ƒ-Ñy’Ij}€>DÏì®Ök;]áÏ€§@²8Û\ë6ØÊhKmeÅ,#:øÈhfkͽ•¬”õ¶³DB_+D´ŒÑÖÔ‡y?8H…ôåetEú(VÙ_jN˃•O¨ëñÖŽj }¤I- Zq}’C»+žö“•¶ÏìûÎÆY;+Ïo]´:žôa]Ë@ßüÞ Ñ-ºŸö›Û.j4«l¯õ¬¾Ãþêæáê82B:«k¹ð‹P¾§U[kh)AÈtè µu°ï­ˆõÑ©òñóه뉗ëwÚÚïΌǴ…ºOïëqbáv«]l0™.“½Wwö¡¤…#+¸óÃÝñ·÷÷µÆ ®£îi.Á<éÿ?_¥@ýA­rMK[ $‰deíŒÎA~w*ÄuÅ=Ed°ÝðžL–Å [uäO‚®îëMhIñް×îhû‚œÐXxª¿Â‰BÆŽßÿ~•‘FD~IÉ!üîÕ²æºÂÔ‹:Kgëj¿§Ïõ8é»7¼Ö~zO ‚ “Õõ¶zíÏÌ<×pvÁŸœˆ‰öšX°À}n˜Âz§!{NSpªÌùZÔbYbnQÀ»-~ïúFò¿;ã: G±Hæöó÷ÐrMÖ»ü›ÇÎ"ù9=ϳÞúÙ‰þâÖÕ:[TrâZ"_À(CêÊ âg•ñ²Q›`÷”0×uòŸð½·òïUîߦ‡‘1-ÖþÚXs#›ëop_Ç}÷´Èö¹e7ƒ ñˆ‚ßm >²\j„XÈ$ù$‘ÓdH•ø eì Ö<ƒÜ{‘;²Ýý²[s'AÊ!uÍ#¼¿¸¹PEì:²o×ýúJ3âµÉl4Ya‚I`/¼8ºý § þ¹¯ÿ¼Jùîª}»Ì{O1|મ×ëH´‚OÿÇôˆîÐïô¶ Y_AÇ‹DCt"%…±TXú8¹”Œõ“‡ŠQ!Œ„²¡0Å DTVi!iƒ-îXÅÉÏÅeª¼‘ìÈñŠwïºà>DæU|¹Ýcõ^¿—wH›«÷nG§ëØIÃéñÐV5$^ÍãÔuøP{èûÔ¶Ævœ¬lÃm“´þÚ ÄÍCrsOòÿÕÈkWÔíÙ~‡çï!öë0À g—ð„½ú­6„_Óg`ý*‚[<šÂÜ.¹êDŒë™|“ç=EñÈ{áÉ¿%ßÀ¦Ø/öÀæÛ$ê¤ÁùO«ˆD¦^_+§d;ò¬%z]÷×b³îÔ_È€ýÉÿáÍuñ[ܡ̕¿‹õ‚~UÉ‘/¸/—¹ž)cø›GÄÈCô HSÎ L…ÆP-ε±VI3੃-ö+=È÷1¹y8ØõŠh~êÏn½ð[®Áh&â÷u÷ÕϦ!:Þ}ßx«qüŽŸ¢HZÿÿÈ~Ò•<ÓÅ=ÙÁÆX Ê!xQ"2Â\¿W¦œ#»÷ó¿­ÌðÝÒRQS¯¹Îÿ®k½ëôÙ”÷>ê·8pÞÿQØ ÙNâ"öOŒeŸÂ†ªâߥyä'æN¢gêºÈžò§fŸðý¹~ Øc¿ÚM»MU”*èÝÜJˆ¦}rWÃ"A*ã¯ðÞëDñ[¼üïëÔÇŸV4“Œxß Æ¯õ‚)3˜;ç™’z7ý V GúÇ䋳d‰ëäÎ~.Ö%øÂxëesÀ€ÑvÎŽÀ…BHMΧÖר [(¤Ì»NN¼†·{~âÇ&è{þ¸.vÁ¶×þ4€;Ûë&åtê©í𦄠TB;“|¨U<ëßÆŽƒDZR¿r›Y`¬x  Pw8ø+‘$–b2w=é²R¿eA–„þŒÃ5ÞûNû_ƒ',ölðšJjWýŒäV^§ó7[´ ùÒuuê­ËÑÌsžý˜x…åݬ´÷ÔIÍ©“àù#àýñ°ºúeˆ¸*FòË3É‹í¶áßûµ¼ÕCú‡¾ÀjdüÅ÷»Ù³]Š×¿÷3PcØapà¡Æ·;’AkØ>ÍÂ_&±¡²J!n±‰ŠÆV ݼ&ŽZkAý$¨ÝïÝJ†ÿ/½vQ¯„¦ž G}ö†ìuÙïïrÝí¾×apÞ’T;qñrÅo;£“Qº¬ï¥/e³¼“µú#YoT³÷Co-÷ÑÚäÜÌ«n8 ÆÛ vPÍ|cEÈðMÍ])ØÃë^%Þ¯‚-øü*¦Ÿèþ‡A6dLÔ0¹`¾™ð×¥x{-sgÓoÂØ =ê'=­Áú!ßH.¯¥ç»›³ÐOEèí'C­ðµq í¡é°üLrÿFë„·_òïWÀöò7›œËÜÔ¬ÞäX³šAe‰ÿòT6«»¾¿«ß¿ŸûÞÿ“‘p$ì×ù¶ëhææ:µ/,3Y ?÷Læ«· ÚÃŽÚku< (ü~œ¶vž°› ù”Wp´Æƒ"¿ «h8¬¹sáW5ÙvqP¯‡–ƒ‘½’WÝt§ÔT~°Ù|»¿~‹W÷âw¤öéá{âw$šó࿉ÿùXv ºqŒg?h9 ¥·l~Þïpbþ ,ÂÍ‹=†N_"÷´3]-!f¶pïa^á6˜"¨ýï«á}£åºŒý²¥úÎߒdžðÞ÷‚Šn²I;¾ç;ŒÑ/µfÖWòÎxFss™¬86ݤ¤zLM¾{¹>›¸@Ê0 î½",„#9mÜ ‹¾A3ôSå¯.å„̦ίh®ã©ëü<›®Ÿnò§ƒó³ðüAÜ×ןé]ª•µ"·äH—ÙÜ$ì/yö;˜Ž›ŒvÆOƼ <è{H»N€¡ý¤Ì8~>¬››äxáu?!85¾4,ˆò·•xR<ÛB\ƶ€MÏ7·al+^}ŒØ†‡ [@þ“EMGôÖ$[NÓªZFöŽ£©ƒ<'”¹ÒcøË7dÿçxÀ<^ý1™#·?!Ï÷à ÈîgFÏ ¢ü#¤½œãÝž'V÷Âóçã¡Î‚næë2Àb¬¼«¯sLŸžv~ ®éNU´P³“ëëj9B•»]ÇÓåØx5qî¼ÅÕDüÀ_y­ßÁ¼FÖÐBá nÒbk V¾×qA”Šl”¬¶‹Ïð=¿Né[ìêæ¸_ô}?\¿ºÞ®#Ìj¸ßohç*½Ö°Ç™’ÒŸ‰¼ ‹ºMe´i§‚•'°yZPþŒÿÄô¸ï÷PÛÁ¡Ý©ÂÌ`m d3´]åï+³%]çîÄöûÔÍq|Á¿Ûðß¾{ù1üõ- ðsàzã÷³<÷ßN†æÝŸ•Ÿ%9µî ßÑÿ$ú™Ã³Wÿ»ˆ„¢øz6,õ=4ÒþW„{ßúôÓ‚º7¦‹|)Wô>•œût÷ ¹Ê}ÖµX4«±X‹Eå6«‹d]‘m¬p_ëàï½l¬Î‘Üæ²†»60ÁOA[ 3u ¯´^ÅÜÜÛô䥑ËÌù' %»<—qþJ]+a'`rüU¯›Zβžß\wó‹`øß Ì1‚oÈs@Ìê:Í#jªSÍDî)èÈ}CFy€~ÖûOÈÜ'ˆŽ€ß?$ÈaÇ­€U±UZ=¨ýZKzØon2×;n§°yt› 3y„JP\ç·"¿ûLw2ÖwÓ \÷÷°÷ $¿ƒôÝW¢ ×'|;¼q>÷-ÅúѪû4/,¿O ÆB‘_âYuâ?³­Ñ`N¿²Uä_Æ»=Ç»^´)`d›°¡€Òî*ðïHîzàì#¦§ÿc|ïÿ¥Èîºï×üÄÌqävS‘ ›Ÿxô'ðÃ]é:Á#OɨO© ªÀ‹Ë€…îúO4íf´>Üë]¤¼4–uØ{µÿŒÿ4þžÎܧ§þêþnþ]6øy^ÓñÉ|w½ð×øÙ†-t™„Ã6ƒ ;ðé>s,7®øOŽS¤·Mh¯Ñà )á Ádð7¸« “ó ÀaÞ÷Iu;Ø¢Z»éç^=Qwf­Ÿ°Òcâ_»ÐSð‡TüsåŽÄ%ëßû¹óy伺l·“¸z®qÉô‰}ÿãwŸÚà­F# $€|nÃƒÞ $äÅ~®³¥¿«ëìÓŠ÷þ¬æ5~¼›\æ®ü%ê§úyh®ëçh˜ÑM«ÑÀýæ<§ úîwI¸©®û÷u¤ß÷Gµœ¾;r8ï-2FxªÄ¨xAr8@U vÔäÀ–øý¬ËÜ'Þo5ŒØíe¹®nâãzÜé`6™oè7nô-ÙÔª‘é®PÅæ¶ÁxH_?+{)Ï>Á+Þ9/RK¸Ê71 («=…#¦µ‚ÄAb"ÁÍÓL+ù‚,i'Í‘åïyr}ß¹ÄïQÈÙ»Àn7ël½ïg~žô™¶Õ/‘Ùítܬ#ñ铚ÍÖÙ1òúüÞM œ‚¯äù7ñ‚cpŸDØÿKP/9šÜ‡GÅù  ³Ï5£”ªôéµ²”’ë²7€èn‚áKrá-ñ(žÊf=•Þ*<ù¹ýkm¯­ðþàyZ+k¤©-AúÊÄõ!ß!~ 8¸]ò]ô3Ym«†âš›rJ]¿07÷1³å·6š)¨ÓEbjkI++å„ÏjãÈêë@Á“~z•«ÛÜ>¸£~nÙ tÐù¿ó³Á"XIIý_¹SXh{MÖ¸Ë_Ï">úQî„ì1ÞÃ*r’GoÁ6ú™ÊN£áøŠeá—•%¸=PCébI"OÅueu3Üω¾÷ù 2Ûñ/˜Ü€ù·@þeXö„« @ïÊVënÂÆÀ·ßAÀŰœñ¾V>ËßÜäÂá!ÅaU®‹üð?–ÏC m¥lˆÖ©A•²"þ+úõG¾«Ÿ}7’ìà Q½ºÏ+—·RÑ×#ÃÀª¯@·4H^tÅ–ÝÑDX{†Í &áƒ@Ë…þ H2˜~¸OäwÓ±ó3®RUûÅzj¹TùEâkc©ìû¶Ç·ÓØoï|LïWl œØyP|6:iƒÿoð\o“%ÊÚwHß i>Ež¾ e8¢à¾±í&–ܬ€§ÜbZ:äé?A¿G¥&÷¹Ž*+ìL§¹•D”“’ºÄÕeÎÚQøù~à:6_U× îq=N;À}÷ Ï-¼8ª¹ý|-m4|vzd5`õÎ=Ô7èn<<`•Ÿwz™WØ’œCïü-æ¶rxÎÔÐ#"µNò…†•Å&+¹“,ýµ<,ÀÞ!Ïüb ^½‹êå¹:öÁšÁâÛ×:Ú*…ö#p”#“ïÏbûÙøÊIÿ™òcßýx6x‘ëÇÂ#"?Ûƒ-<+¢”rŽj/ àXO"ÚM5‹ÕÄÔ.‚Ý+Éùƒ‰mE;n2|=ûÚê¡öÖÓÆ`ý¯ì ü¡.œæ ~“çˇ@ÿüøƒÛ%¶}œãÕÒÀÿ뢷è¡kˆ˜°W^Á†ë ª%(˜=ÌÃׇáÅ;á‚Ïàòátc©mÖúù9ðùD}W¢¿”=Ñ&Tu¬»Õ±ö½9$ùÄÜD®&\ôD—Á‰¶Á$vø|0Ê–ZsûØ> ¶ðâz¿R@ËÙsªÔ›¼ÇAÚY»Áo‡ãÁWÞ±Á¹xô4â9XÞßok­à?—ÐHkž3„,mÐ_cë‡_l"rÜѸ`êMõ{ ¾ã¦$ v}%—ÙX t°…÷ë¾t—€æ%Ó]†½»£´0‰Ý^÷ÝØrˆ¶’ú'¾^Í>ËÏòÛ÷páöøF?ß÷ù±:hDT܇!A[á‰Ï¨ƒGó7ó‰ºI`îZÀ;‹&+[t¿†ÊpÙ(2ÝßéÙa}{¸Žãù#aó«ðüq°‚µ°šÒø|ªD7 ²7õN'$›¦õÉ´?(™Œ8hGöX¨Güç\¯a {ѧ›*Ö’Z*ß$¶ÀhHéŽ4 „!n#×<¥w ’ñý¼Ý¤¿Q^ó‘÷*h6ï„—|JL„´â·Æè« ¾Ó“Š'–-ÖÕðèMhl³Ÿ€>ZÝLµ{pä es¢'"ZÊ©!¥p_ªðäØä”ŸqºLÝçYW©àÝLÀI0¢ÙØÏÍv‚Ìñ…îHÿ¿ÞÑÒ!bÛÈomˆ™ŸÐÍžá&&rVúÙ³ðŒÅ0£¾fr…ë7D&[ð?V©$Ýañ˽•C³Ð@$¤úLpؽŒsû{ ç4âb‰¿&x] [$ÌžGOnö§»F2Ñ×ÊWÕ‚»ˆ–¶ŸîZ˜ÛùP ô‹ê»+g—±Áü•BZËZÉd±gÔ÷™OŽtY± “Ëᯇ‚Ol°u d°1!jòÇŸW3©,ŸÈIýÁÜçÀõ©ÑR`ÿ‡T1®ù§ÄÄoØþŒ%å·ÔÜúÂÆÚkj¢4`üP2ÜUrÇ!´T ÔÏo·4 È7žç5àóÛNmf>þ÷k’Ä‘ó’/ïÊ;îJf¿KMSO(Jž+g®ž9 ®¥¬îׯö»¨ ëbw7#ÂŒwWº^k'éW<Ð2ÞöÃm ¢s·çÿdU•4R]âêÛFµ‘zµ•ï_T(„<ý¹ÎðýÂÔ0ßÚ›g5xDÉô„ßõ}T¼ß›Ì_ßÒÁ(¿²Ÿ,mà“ÀT)'Ÿ[ÀºÊIY©+ãõ€µ·Œä½0¸^Ô­åø½66wÓë³ÛÏÜFÚKøÙÚà÷Qì^ãf<»™Á/´ºÙ×ý¿h¶®Zx­þtÆË+I¤“DÕf¶Úšr«Â?ÒŒÈÒß’Û AQ⽫²tYè¥ ~rQ£“2š›xø2²>VÉGûO@ʼR;÷¾ø÷«a9"_YÙÀGñÄuB2Yj8Q¼Ý]FãŠðø·<&°ášäø¯ÑÕH°??e1×ÿå+²_k ßJ”`‹õ/¬bðÓrU>·+6IZO¢¹™å³¶–’¼˜<諹 üˆgÄ$ "Gt+úXM³þñJs"ê«Ë¬Eƒ-Ò¿´>êHtÙ!wõSØëN[lá0#Á»:`âJ½‡mAßÁmê‚íìW[`Óðºè¦:Yc­y ª}ê7 ¶@ÿòúâžž‡%§]²¤_ÉqKáooð‡©¦·0úé¶VËÚY°  ,*ùì´Í¶ƒÈw’;kw¾üC\•Èe¤•¬”Áƒü¦vÄÚ2öáÛm+®X å¶WVo˜‹½3ÆÙr›J¼Ð :W’ó*ò*áYqé »åš¬ÔMv{Ÿ³laY»ààiëXma×ì±½ ¤°§°æcRK’‚ùÿ7,ׯ&‘;­¯¿Qóo·‰J¯Oɬ?Õ@6‹hCz¢ßÀö–Ú;-¦+áÒ}‚ý¶ÿÂÕH*JY%õ©xZ#qoÍ¡Ut´Ü“ôºS²j=½)C¤»ô– ²T>—1Ûù¯^­%œ.„²~T@"KF¹ “A·&²Dà!™$±”pÁ~›¯¿×ßëïõ÷ú{ýÅ+%LèÿíYQPòû¬—n_bH2Ébºzýµ+>\¶$’§.¬*_SÑå–üT–¯¢H_ÈW¸U¤´äB#!¡¯×_·ò {,¤mD%× î3\ŽH?™$åK¤o#Myä¨Þ“jh¥’|Š_d¢v,ì7þ—¬xpº”ø|_©¢Ý5–%±âvQj(-(饃vµÚS§ZKfqm Þ‡g’lRW>þ@;¿ÿy%…í¦—ÂXtŸôÑT½ŸØ [¥™ô¶_/ôˆuµrvÃÚØz‹¨Xká,‚NÅú剈RÁàÿh%Ç’i¥Œ|!aô[=§1-ƒU²jÇÎéZlœ\“Ùj (kŸáߘ«ŽoÛï6ÄÆjCÝ.ŸIv°ñøêûW?= QþXzªØsh…ìwnYl‹hÛ¤¹¼Õ¬Œýà÷xT·zö½õã‘ú6ÁzÛl]«Qµ)žó!Êé“£ƒrrQNkQ$Ll¥­˜=ö}ÐBáóŵŸÄFæjVÐj¤`3¬.ú˜kãm°U°„h+±6!#|Ïÿ¼ÒõɈáßd«&EòÌäËd×ô˜^ÖÚ Å# ,Zqç*Øp?5­åµö…•$&ªµ48ìs~ÿÚÊEܦ—ÚŸT-o-«¹-Ç|?—GzDÂC4¼à±4h'œ…µ˜xÂëŒìɬ¡ý„.jÛ"<ä‰T$K~830rÃrŠK*™"eðî”VÅ #Ù2Ýã{€»,·õ¹¶³€ÝÐT`A{¦ }ÿû§Ú}”Ä¢Xküâcke㈌/uü!U°û­,p¹Oñ×íò«–Ǧ‘ñæ¢È¶ <[¢×4 V-ŒÔIìžF¶öBß’á÷õ4z©†4´¤ d,ôQÅ~±í¶ÅvëÏR3ȧÝþ'+'’—&¯7×VÄj ¥ëaÇ’Ûö‘ÞÖ”à@ âü…ÆÀ;¢Z-kn©ý©Á{þt[#«Ì3^é{mî³±.xÐTžý™|‘°QŸO~‘¾šÉ«º^>·õ©Æ±ÜöROúޏI-½Ÿø›—G¾häþ¤öFY,~ ¯È×$!Z[hó핽$NiorHþ,¤L/£tÓ;Í®ê.ÿYþaxOX cOôŠžÀÂîSþ‹ºAÏhr»‹DGæ|æºÂf@ ‘‰‚¾b<¬>»ßòñj9+yætR‘°<ÕlaÉ ‘"“…·ëH¹ù¢ÃºQ·èoz¹·óuG÷á4¾?/c`a,¿#æ#ÛÁsèGÚrM- ߯‚œ¹mx1D:ÈWÁõ¿XUÀý‚púl– Û½ô]ý/ê =ˆ´® ÂBü᢮×üîNñßôg¥Ýà|ߎÁÝn·”Øÿ qšñ‘ïVÝšàï´µÃ1¸òAÍwdDú,2UÞKJÞmÞ^#íd]á÷´ìÆêWýY “Ø=%¨Ñ#~(2dß31&œ° š»ˆžŽsÿ=V8æT¦û]4Ó¨ÏP#dÒ!.¦„íµ”î²X¿½£À÷_áíü´.Çó'ù~槸ï9hÿF'ï'°¾äûÂdƒâö)µQhbâšîU×ëhÙ"Ÿõ´)ðá<<ÚÑÚÛ#[c3µ̲x°EþÓÊ-±É|_ÀQöjµYÔÇ©¬…41\ £$†õ$³²ÃyRãËY‘)¬§0øÆ÷½[ Ýê^‚ Äž®£ÝkôÉ܉¾¤Üšáý5À…ŸxÎN²Å#b(•9ŒÌFÔµ²0ˆŠÔÇ{í’åœÔ‚Aïýüåæ–æ”Ïe>ŸŸ{“ o€ë/ðïX|"ò¸ÞÆsA¿×0£°vžü—ÜKM´ïò3°Þib¼Œmå™{ð‘ FDô†Z œß=™ƒìPÝFQ©¥ËZòmHÀ7…!£œ÷£û“?a2ùˆk×›ñ¹Ÿ^0ìƒü®óÝ9Xëá’Žç¸)@çˆõˆä?w.ÔEÂOþ¬Èž¹ËŸÿ|«iy^Ap |I]´I߃¶ÉCħä©$™o†V$ZoôçUðýtV 9cÚ~Pnº?óÖR‡#WXdŠæ;æ"CÄ-^â—y$¦%´íhi·Îô]žÎ’ý^á/÷4, 6¯žƒzð$ à+[Âk´¥¾ ×É3âý'%2öy‰·ŽÑüxï½¥®#ø}°ü–ïæÖB{ù¶§ôv½žÇ&Ó'Ãßwªc·¸ÿ Yñg¤oÇ_¥µÍhòýî"#m2ô‘ÓöÛn<à û‘XÈ«¿Rk»ÿ½›~RB¾Â‡câ½ña2ݰ÷d¹O–ߎ&¢wýši¤‹‰€ßÈn×AËZÀèWÚÄVpï5´4ÿY¯ÙÌí:Ž'„…I¥ÆûóGRZ" <¨ÚÐÜyûˆöN*JŒ KŸ•Ì×D\Õú@[Á^¢ð¾zûi/qˆç=d¹¥ú(° ù6huÐ}ùðµ®ë PÕöH*þ¥—¯:¬ˆo‹@ùX ÂB¢â#$nOXnØØr‚€_‘%>%3ÄGw%ƒÞÿ¾Öß$é©ó•mªÅ±Û>oÌÎðsüa¬Ö —_Ôoµ¯þ€Ol¥&^¥ñ,¯Ôôý/÷êäCŒ4¶s6‘{vQ;]S‡õ_añjdVð¤àz¸bC²lOI½ÜUŒº'Ÿf€£Ä„ÍÄÀ[]ˆ¸¼Cw8¾íÃÊÝ|gØ16‰¸=¥_"ãøL: >ZË7rYûê("¿ŽöÓU6Ó†‚çñœ¼‚ ®ç}gß÷(šÎúÔ®itmô‰Y¨Æ¿W×£4Ù:¹*)– ƒì÷†ì¶yÇ`ÿ"¶(o¿£Éýt¤ÖÜšY›ãùS@¾^ú™×àÜ ¢h+¬éð„<ÜâÕú ‘)­Lá n–ÖAÿl ‹$•Ñྠs>â3.ï4 {xO,´p•ˆ_è§_•6×í2‘ý’C#mµ,ºp'åÝ| 6<ï4UC.ª½‰v,² ½Rõ§7âIóø~ˆš©1žô–øI®9ƒúyy"É#¤.Œõ>V‰èùÊmrÜ }Aì^Å£ÃûÑžZY³ Õû¸‡Ìýt Z˜Å3F!ÕTr^c¬[Ê~Ýž"zÜù¯%ØÚõÓ|’„·ãzP×ú>So´|(19±òg ¢üY%—L—bä·•XcùÜÕïËô{dj šÏÃ&é7X?5è™ÏæËdsaD½e,òÿŒDø¹5ÂHKdákáëàþ÷AÊ›>[†ƒOºî2ËÐÉ9"-:þ4C‹uR9ì?D¡Cw>˜þ\× mbÞõ¿˜Ã»Áo µ)ä 6ܹ®3ž~zÁ ~æ/ë\[Šü{¸%·ÕÈ|؇¬îDäYðÐu¾Ïí-÷'äçРäxjïà­RT6Èøå`8Í9â`)² ŷ׃íÛ}çï9ÚÙ£û8xÏP¶=§õÀzsà7C`|®S²ûËÆø~[o‡mV>éûG_W7ù%_î3#79BaÍîڢ붓”úáIP;@–&ÿ<’~T,ü\ßÈÙ†|·»¹ W7ý¬ÏÚœA G7Ê ÙªµA¹°æê„l0šTvߨ€DÝm°?éw YM\ìõõ‚ë @'÷`NëÐH!b?(›oê¯Áìÿ[ü¿&³}¿¾ÇDì nî÷Ýßf½Ç°ðBß÷`9p ¶.¯µ?–wS²vj ûƆÙC~«ôùÈáø-¬­ñ]c·û ¯©¬²Â+Ý|äP`ì[P`¯ý†™ŽÊá› Ê_BÒK4ß—)>ö9¨}@¹øíj|v»^ñ}mna·9àÜôpÙëçà¾çYñêŠØ|%Þ^Y.ó.‚tû@Ì^‹nRà¾"‚õa9©€ÛXoXÔ5ô=ÓQA”¿•””yøyxøÏ&|ü„Ÿñí¦sÜ@SÀ·¾ê²ÀxßÕb—Ï sÀ 7íË}©Õ|§¯ÇèëñbvÈÏq=Tú€ëx•›: ›}í¯”e¤Vv#JP1ÿÄkÁ=¥¡<Âfsy¿Ã‘îÑyÄ÷Àt×ð‡P\ÐõÀ}d˜§Žo¡&øT‹¢™¯Èü½ˆ[Üÿ9ú©`ëñú‰dýĽ«£ÝÙи¾~e*À×Ô?U}ØüÖÅžaƒlA“¿«|+áìªïp¸ éc™ë÷–n¾©ð]ðØðvy¾Gþáü;›XØî¹¾XO *ä/—¨ëp“lÆww=ò#WQÍ}6t”¿ƒ¯Ïàµßò¶JØ>?<9¡~"ÁëÖUj‰ûs)_1¨Ù‘ï¯#‰Û»3XïNÅ#®—ùYGƒ¹MF'3±ö<<æ^G3/›¹ÍÇ+–ùÙhóÕÍ€]‡FÛë[Ñ"ØLMeÃ1.RcµµÚàdß[¶¤³` É'a­Ïàcî“½Ôæ&?òÝ{7‚_CA„P¶œèÿ F4 <쌓ð‚9Ú=Ô˲X^ß'‰„=ØÝuÝCä¸>À[Ñ^t¬]ÊrãýÙm*‘±J³“cZJj€2VNOõ„TCê¯-² ÷šË>¶é°¾ø³›{šÄÜôÏû0¢EXµ·¯û¾ç·øw°æ÷3Áóh;q3ï⻑ÚU«ÑÓVòær ï?E‹bÈ÷I¨“ø‘aØñmЉÚp[Pû 4–$2Xª"‡Y^0é„Öþ¿ÂÐ÷òËÉNáë¿àóÓ‰}7éG~r`êà ϑçBëP9H$,æ5f ûtnÐáïJxAjêÅôÔÿ/Ðf:ËÌO¹áHyÑH|ØO|kTû×£Ú)49Ùï6í~Þ ‰_ðï>¾}„{¢qíGä¿N<–×qÕôy¤_Ìß'ùÒÂ|“À…ÝŒ‰MX?¼EòW™‡ÂýJYþÊ’Q>Ã*ýyßýܲ0ÍæÀn"sj c×yÏðþÃèä{m¥ñ‡išÐšÍnŠCð-@-S/êÃã|¹+;ÕâG#ÛrË*"é¼$’ýã“óï5§Ô ªô¿KSI*͈ùq¾G¥›ð¼Áw¬u1ílü?výïwˆ£µ#þ>Üׄ_[y+Æ­ýÒO†ONŒß7ýj€f¬;ºp¿>!³ÝÁöÀ¿ýxÀj´°Ù¡Ã­DFûä_ã'`u· Áž5].K*ø…Ô¢½ùJƒw/Æúí´6ð5?Mûfƒ|îêphx|y«eÈ}e‰{× ½ñÑcA+tÐÐ2Úd"ÀÕƒ‹ÑÄR¾/!š¶RA\ÕÈèm¨å†a^ÑJV+ØÂ‹»~T*IR-Î?"JWãñSaº¨;k#2Ù·°ÚŸ¹o!>x¯Hk wß 6 "ËŲ>~v^X¬_<ØX6cW,à/÷ÁÞQÿÄ#£¤û‡Øªß`ï}ùÇšA {UøKn§÷qþ6®Ma³íñ„ïÐÉ,м þ;ÔÊáù'ñð¾ â×`þ;Pb0Z3rû\«š»Bê&»k`Ó}ït7÷: 5@l ´NB®IH¿”x®¯YŽ7t÷uà"]°¤Ö§Všâw!jF) yÆzu»_æú]gà¾[øëš”-mýÍ ÀŠ'Ò3Ø‚ÿ±šÊ'ò’Ju'Ö}A_ž —Ä«YøëŸ3ü®€…þJ¨û|`­¾1’aá„Ô÷ëÑS™†^¾ƒ7¹«ûý5 Ø<=5âfuSÒzØ0ò3ûÁš…€é?ÿXe¥‘”%o_„­>Æ^Ia'qÀö½dÀ·þÊÈ,|`ºŸ6Í®¡H|\Ÿh-|?øýø‹»><]Í 8ãOMõ½Ôo•kƒûæç†ò“c–€~%dÌÿp;€[ËH‰oñy‡¹Í½ÛDö;¾û¦ò3 ~¦³à´¿úŒæºÛ¾åV’J®hpGÝœ\7%}1’ÏCð’- þmäÍf®cB2C Ëe‰©3JÚL« Æ¶Øÿk%–ŒRPʑݷ¨ëÖŸ’Jî1°O¿Àz«±ý<"`Ž¿Â9/ˆ‹Ÿ [dd GDß@ÒØüüÚ³f÷éÀ|¤ß‚‡5°ü°ëšÜòÁêòüvÀfJß`‹ý§•D2Èé¡ÁK3RÍfâ«>y`Z˜‡äëÉŠ«ýûùü®X5µ•âë®fŦïÁLA ù¨òú}ktQâNË4ïÂ–ŠØ—xA_-¼ãñZòe°…þÓJ/%À€ïÄíMqËãÿ÷©ÚNyw{V"ÛCì9‹ø_Ht?Ò¨X2µ%âw`yxôq™7ò7;<>º©ž7Ôëç§C´)ö ìq¢¶ ¶ÈÿaåœRJâh=˜;ózÏò³ ì[I¬g±Û䆤vÈ×1Ôé&ŒE!ª§#eU¹Š¼%ð‚[ü¾ ëÏ c^ RˆC¬t°1T{ݼüÅíšÅ¶z::Øÿ§UT È )È»»J¥úÈöYæ·sš›‡nt ‹À¿OÁn’åjQËÒÚÄö0tÔîÿÌO>ÜŒž–bû: }>o¼mµÅö?x‹¬”ö!²x©#c©K’ãÿnßj$²Ü~McnfiM,—ÛvÁqùk™Çð€¹þö.R~õó¢Ÿ$dú~Ò×~¿‹¤9õB_b¾&Ò¿±IU7D[°wýþ׫7y଼ÇÂÛ5®/d×µ®U¢>~‡M¯Õoé_ ›¯äQõ»ëÛé` UAÎ…àÅV}¬Žég³‰ÖÇF¡¥ÞnO¸ít$ïU ¶ ÿÍj-5a‚Ë´,ï66k‚ÿºœ¨ì3Ánû—a´ ¶ÎÌsrZ=b{¶E ÔÁÊõ@¶ÃXþŽWš²›ýD ,ã~µ ¶N{†è~¸í$“<•6ZßZÚH¿Cç°¶ïˆÛ¬Ä¶;Óá*÷ëÚÂOz¨«klc±oGž™iÏú«Þ[ùŠmÀü¼hi·“pžÚ0ÖPº[IJºJ©-‘ÈÐ_X˜`xòÁXL$Îh®ûÁ}÷éfëmªuÓ¿%³}IHbgý¿ƒþ|lzûÔ›—jC½·ßÂ:X—qÞf’ZÊËPÙB”ÇÇKÙûš[IØÎª£Ð°{ f™²wháSŸÝ“ïÑÎCtp–Ê  Z j‚;ÐÕ¦H‚`‹ö?\U$ª¤ß¤©g°µ°~?0 .Xxƒ¼° ››kÛÐÛM»îûüTóóÝïS5º)÷o4 hLh*õqniZ/£`‡M±~I´¨ÄSíJ+©?R –2ZGë")Ùõ±|ƒ´Çe­î‘‡ZÂwŒ¬ ¥"œ°¤ÔAþbAßÝÿ¾rKäI„:J9ݦ®ÊŸh4”^—Yr =,ц–Æï€ÜMuÜÊNë Ïdì¸ ¸ða¯$H‘kv’™šÙ"[rKD•»‡ú¶®Öè¶ÙFX+cÍí;ûÖ¦[o«b›´¼¶ÑRŽ*0$÷ûý߯ z4ê›F2BÎh{£íæ³ZöØõÂDþ™þýæ–ÖšX›aË­‡µàë;»§Ýõ3=)µðïÚŸ[Y±\¾×•¬Týƒ©òÅÔî¨ëö{DÛZvÝ"nßw‹f¡ÐIÛ`ËÐBaûÒ YÐàurBêÄÜ’>ØÂüË+£äó3Ë™ªµ­²³pH}@ëy}¤n®·Û5ÄŠ[>+g·ô¹Aæf6Ú¾¶šVžŸ[)«d±m+ö/Œ&?¤•Fr!{iY&ÕüUÝVËïÔùÇw}|¯Wùi¯ºÉÎy-–4ÿÃX2k`¥­ª çÚbk¤:>ðáh Ö¯„ýKÈ"aÙ­(²%°»º ümù-¹¾ø í*xPÎïw½@ïÕyžQœc¿€›,£‘ú°¦ãZh6p¯°ô’²X«ƒöaA·kšÓܯ‡zOŸjJ+k1¬– …6rú®Ë­ûÜë½~–Ak™ÐCnÓì®}fçdÌ(¤ìøûïWAlŸGK!-`ƒ@÷ØÈÕi]ËmŸóÛ)¢ ”¥GâèxEKç{å¥3w²#¯EÇÂ#mcÐò…&´ ¼B/;`íKª•¥CÝùño«šß VV"ëÍlÏü)î›àëø_<»ì»¢e±ê`Ýib!™%´WªöÌÏ=pÍB“!YòÂ3M…üM¬³µöÈzÚeé.åCô§!E‘?ŽdÍ]ÿ»ÝºŠ/wŠù92å7‡û—øý 7×÷7–½ô]Œîè3}¨é@…ÜDÁb š•°T`Bb »Õ³>ä…§¶Å kP5Øgžÿ»UŒW[ÞKjÞ{6Ðm=²žÔƒúÞ຀oÐsäþ»zJ·ú )ìºÒLo@t#îÍî«ë Ïx *d™;š*nÚ(ý&„V¥ÈPùÚ ¥É÷ÙÉqçõöýMâÝûu±pˆp°mÀï/ ) €|i@dƒ00¿ƒ~‚Û){;£•vÎvÙX­B`m˜ ÉKH?ù]J[ ì¾ïZ·[_@Úßõ0ßï"¿;+»ƒzx­ûÐÍKu'}"ÿ£ÑPg<êkû 9ÒêÚ;2L<)l‘ÿ´2Kbp¯¼ü$ϱêz ‡ÝRXTb8’Dî½ Þ<ìƒûÏë[}¥{|·§pD},P€}l7?‡U &‚†b¹@Ã&<ÒÌ‘ŽÜÙ&ÙV¼(޾[è?­TøI¥¿L•~og"s=Í##FXÝ}ýÿŸƒÍ³Y<;œà-qáº9&F¶š™ÆZS˜bA<ä0¯ŽT‰‹{tg¦ªÀ~±ùvÝÂÒXÙÓýßá~l¸éÇ’N¿¤jK|Ç!šÉaQìwu½Çò=½=רhæ:‘Èžj p.9öŠ>ÒÃ;ñÛNðrºŠƒÌ‰ñŸOà µÈ(±l‡-µ6“Ê`|0¤ìO/&C'%‡¦ÖZÞnè tæëúV”" ×EÈßÙ3 SZ¾nòø9McGÁÿüð` %ñþ¾ÇÁV¼ã%ØhTa>ݨ‹¾Ç?¾ÛSìÑ‚:?„\É@ì§—_¤3ˆUNsh~Xþ[dMüÇ37ßâ¸@#côs]çùË ¶¥C?‰ažQ’ç*•@|[çÏ9»É)}¿ØÒ0Á |õµoàGém²E ¶1Ö_K"&@¸ôÅ%ï·–µÁ.ôÆÃîYÍu…v§ZÎë÷:E«;ç¹ÎÛÕñüWdHw=(Ò»êçw KE¼ÐÏHxäϺ‡óŒaIɨÙ`Ìñ”­D° ˆ­ÔT`NðW²ñ,iC&{mc#Y ¢ØY1,ò»ÎÈ{©û÷ê,m¯]u:2'ïO‘wSÄ·Š– ݼŸÓ~ç÷B<â5Lù¸>†!¾Ò˜hÇ+®.Dþ«mn–X]⪾T< ­d’F:B]‡¾B¼ÏCÄA}ð/LæX¶Íwr8ûí =µ³.Á?6åGa?mþ^™ˆyNÄOá™t œ€î'g†!*Òàî4Q7쟿ڥñAÆàÂc©ôHOæ‹ ›5 2”Çî®Þ©®_{sçÎaùÙ¾“Ù!ýIÛêd4õ“ï²PÀÊjC-d®ÃéZªýu˜F;¯ëXÐF1(žw÷;ÒL‚ëœ&¦Ëñþ{ëDÁ4] û9 þO“PT{gáúÓÑÓ\ÍL®8އ‹í@cn&æ2a$^çqÃ÷‡u;hCÃwƒ©ƒ,Ii.Ç% ÖwÕ\h8OF,ï¦3¸sñí"vüQ»^w6 瘶á÷Úy\'”|2D’Û ?ùc9øxXÛó¼û~NÞQßåèwâÄås𪋾ˆë3ð{‰ƒ_¥“2òXˈUj‘«Üð¬~Âå5êú£Ø8ïÿ‚~Mü"“ÍÃþ£´‘Õ-èb¨l”…xº;éÿ#QP~8ÛjÂšïƒ ¡ÈŸWÔu ß7lò=…®óý!šnEü5èU@RXHYÞÕ+|õy?4QàÐÜð†ÓØý7ÝŒ·ÏD’/‘¾%Y<=è¯ã°÷ÏZK kUüÞñïˆFSãlµåhï*ŸÕh#Y/,º K¼LV¹ÎÿunPÑ"éÔAÁ\ÙÉü=d½ïS,æz•,À‹7óÞÓÕ ÿ8lìúN£îýĺ©¿’ÅÎr#ˆ)|õDò¥ÔFcxÎhÍb«m¿-&ú1ÎÎYÀ¿rÖþW¿Jˆö"’3ÜÙØ\èùg¸W03@nùTÊ ìrB]Ÿª[Ôü‹À÷A|õÁËÇûÎÃùw,¨ÝŒ¼^Ê÷ïˆhÓïûn˜+t"Ya’?¼n¿ˆ›ëqwZß`é\X¾,š«‰d÷]SJû³±ÁÛf–˜8ˆò'“ºrGvc§ °µ'z—ìîz-ç¶ûo#þaç!è⦶ô3œ\æ®g[±ødíÅ×܆’ŠÃjwØ0;gKÌõüwçÿÞÁ££QI‡A·®Ÿd6ÕMW«AU =ŒÕOƒº["¹T•%ø¿c/GðþÍÈîzןñý ÝI§@Ái¾çá6rb+›Ž¿´ŸÉåáì0Q0Ø@ìÔ‚ß̲áÔ¸‡À‰+0ÉSð(571ï¥Ï®ßùžyˆLâ&æ9-Ü×çR4ˆò–²îD¾x 5KûRãžâ=^҃ྻ p}Œ#Æâ{É…ŸY;¾ãH2øN<ü ÑpÀwB™ê§Úá³êzZ–ÃRù¨ð& _&$ºçmîzŸý¯ù‰Á¨€jaéú‚ìZ–üQ <¸Èk¸nŸi£ ÊßNâHj¹ØoTø»|åw žbéy ÞldÏ×52Ö2Ã*QÏÄ‚ó&áoy–z\àPàZ¹ïç;m"Û¯æ¹wÉ—½£ïš’–{Ðw‘ýØ{ p«®$ï{UÜ—‹»»[€àîîAB @p 4¸×àÁÝ‚† Á58ÁïW«{fzzú·{º¿÷ÜÌ“už{¹÷œ}.§ì_ÿÚ{¯ªÛ0œ°…UèMÐŠÍ >z8â´&vºÊ>þË’EÆê W;ˆWEËÀÿÆc£øfµ©Ù¨ìïø3—õ&ù?2踺gRÌE[ñƒ-xF$‹¼9`zk%¹n’SÔˆûý„ì5dÍxÁSþê¯2l\ ™ðë…6VjéªáMð‰ë`Ë W>ˆ°sò¿¯£m¦ùŸ~+± Ù^Q¿<Åšý%:Vœ,½Èñãȃƅg c‘}¨lrµy× ¬<ÉOȶ~ñëÀÊU¾Ì¤†•Gë ’3ë+™u9bY¤l° , êõЂ®³Û‡%lšï=é 2M‡Ïw•ðÚ bWð–xôé9ÎW`ât0…8˜€t›dŽÛîfðú¾ëûa¢e Ñaýþ† …;øS€ü—•Gr@ØQ~ØCذuEi+ØíŠQþ"øÞ0·JšcͶÚM›Ñ·ƒcS¤%¶/ Bõg€~ ¦øx?à#A†©è`£ìtç\âägä^ççãlô½±§ðÓñ Ñ“ ÖX Æûê*:\!Vd}1ã’9Òé ÞÑÈUpÇÝ`I#»GÕcÕ¾Õý|wH|N«ÂÇcU›4–ds@—âãGå¸Ûå¶¹VÈ> ,–…<¦£¡IøÉq<',¶®©ñÑc&ꀇü}¤ó×Mr’/S謠Nœâº |úüºŒ,5 ‰¬÷{L;+6ÉÖvsG·ƒ|ßÉ·àÀhä†oàÕ’QœŒtÏÝ|ã2Ï‘«9Ò*È-D…¨õ¾Ž£KÄzæƒ5¿–&D™MÖM‡&ÞI NB_OXëF#ó6d_†ǰÑeì W³I¨‹ˆéðøa þDä ÒYŸ·ép‚^ÒZ²£;‹þÙis¦ÐÇA±~‡¹`ºó¥6uSFÀ(òâükŒà%^TÚ% ¢ü{øßÛ¹O|—Ò0|Ö¹`Ú¢ù9ÚøFû»~"Òg!Û·2¹æùØÆ÷Çx@),©uþ°ÄKo0 ÝÌF;'A€(êüùß7‚ísóvÍø¦õÓ_Ñïhiäþÿð¿_Ü÷Të?KTªú)xð&ßõ×:ÿ_ö3¼¶áý‹x~¢‚‘d‚%È·ŸL‘Z:cÍûdÆRf8„ø°kEÖå|‹ï•“\#û{CÞv¯Ô[P!/9`”?×¼(ÈÒ[HàúºèÔ"V±ÍóyÍfs=ç³ÛËsøÀ j¡½iûe3£ƒ•~Øf4]wt"6Iñ ßX—Øíöãã?ó¹¿#÷o¤^ÿäK ?‰÷yŠ\‹ùì ý ÁxÈmoSâ¹;,&£fׯú5¸nw‡|‰vÖúpûñ¢ƒ0ýØH_€(ø}ØYëgóUì*â^Éôûã[º®ŸhˆŸx5žû=òÞ;ûo÷tÚT,;ºÂOú‰&áÉ´¶¦æí¨u´"µ]~pþ!–æsÿ|¼%ï:AöˆªÖò –·³(Küë|VâÁ+¹Ön7À¥w+©E7ó°ûRrüh"x£ïbvŠÏÌçõ±¾>¶®ÆÓ‰ëhX ØóÜh 5YÒ&œî#¾E[«xÿeùSçÿ§ä›¡`sæÞ¢ÏxÇ rÃM)äØ+¬úw3A¦„jsàžƒêgˆ‚ñØjžï_þ˜|µY–ïý±áIêƒsH”®XÈ×q%¨„›"ÿ´·ÊljA´ùWVE½%^‚kà×%àÁy|épðŸdÁšnZPåŸèîƒÿSøŒï‰ÉTséUAª±d±oûuVNôóf!×øÑu‰©_ÀkkâÿuÁ€Føÿ(=è"¯Ï@3}Ïë{b“µø©8·¥$(Û ìûF+ÀŠrê3ièŽUþ†.*ôƇëç…—F×°Ô¿ÖíúKa’ŸÂs sЇÍv9ˆ‡„Q› 7 É›kKý\+ƒævUä–ØŒÛ‡`Ät°€÷ì÷oø‰9Gˆ†ÄH ÌÒ%ÚS»KSw!¨ò[ÿÿ"®†Û)ŸêsÀ:X-CÎÑ ]o¸Ý0,> 9l2Χ Û~&Fð,±¿³×°«~†:PÑì“”¾b8†·Xh³ŽwyÛ[Ýl°|¸ Ã̤ t¢.uõƒ,½­Þn”›,™Èu‘ôò¯áSÎÉ»JOiÏ—U=ƒðåîÈdÓlãÃáßÃgm†A¾>&ÿµ ´Õñ×Káÿ“ñ™ü•eèa*Þ°Ú×PȪ¯ˆ‘pÔƒ¥uN¨èºÙõr 4ƒŸTø \þEì.–1þÊVi‡/'š§âÿ#yõ5\9«–Áç›ÚÌ­ ö‚ÏÕÇjù»/ó~Ä¢Èþ–o„$éɱ{f-¯CAƒú Ymy`?H±ÙŸ-˜I^Ü€V~D{9ÉYÐV7ßk|°…wƸ’®¼ô™>«ؾäÓµû]†ƒ„#‘b,QÑ_®ÇWùªƒ”{ýŒŒGäÅÙp¦ô0º:­ü@ÄŸMlðyoÑêá 0‰”ÔX†‚eù©¢6 ¶ð¬òn$,|æ6¼÷Ÿt7¾j_ºIrÀWò5r[ôèà®ôÖ¢<^bá~~NÊ0¬;”cìÜÀI *­[8ö„¿Gf‹Ÿd\ð8yÁE=HïÁ hèØ']ÝurG\~Xœ¥‹ >]óS{û;ºFƒ\óñå¾XÑîý\‰gt!.ZaùIxÀ~³¹Os8ê$|ï?ûÇ:ßoÂvóµÆÏU~åw†”ÀÏbè$Ý*¡¥GNc×Õ=$wG…—=†ÝçÓ_’DÄö>2ÙXÐ{¹¯ïûßñŠäD«Š+Kið|87€×Œ#mã•%ÄûnbàZ¼Ïã:ûEâcQÑqãpjúÿ—t¥Ýä5›`tÌóÕÇðØ—ð½ün¶Y­÷u?¸ÿB¾O@'à€¿IlnóÜW 9<æòû`vì4JÄ_÷·™ÎïH«•àÍût¦6òì¯ÿXi]+×ZVñÉêê|¯SêúXD©M~ž‡Ü›<‡±éž‹ˆèEø²] |.‘AÁd›8×Ç 44ímÃú—ÑAA¤ÎÇ£°FóäÇÿ7ëz®Y,ØbÿûŠçšb‹œð˜dº‹eæ§ôð¸»ðÁ…Èdç~¬«û~[Et_Õ¾¢ ˆ¦Uá1/@½<»É{øùÇëÀÏ}þ^Ÿ7ä‹N:N‹Qíûšñï ]­=tÿÞ¯[I]bI!Ý!•)#Þz 8ŠOõ÷¸ÌCòÍät›µŽ ¬Ì¢Ia=cð…z\loä3´3 ßßÞý„ýoI>¿p ˆì§½Æ&G~¢74•®t¥‚-ö_¬”.‹áHd¿Au{¼-WýDã©Ä¿Ýå2ÑOt\Kn{†\EÐSb"y |>:Þ`=££Â}lâÏj?ÿp°¸¶FæÌ:¼Ïº<“ÊÚFßbý¯]ö` ý+¿Ëäê¸ .íÂkíü¿M~]æçyÌðß÷¡›¾­\Í>$cÚý¼…ðéÈ|/¤qÕf>.AK?ú ¡»¨»ét +^?ì¿U’é]©¡›CÁä³ÿ¼òÚ»aÒùíLÎD¤¶®æ‹@½YDÀ~dIÁg_@}¿Ž#vbã‹DI ]Ç‘±qJ¿÷á çz‡øÉ®€í”ð:P÷ë4­Aô7ùÌOˆ›Þ.]°þ/«#y±åa|xYlž¿ÄßÝgW„‹!cx]J^·ç+‰ðSäʰo 5_=±Ú•£hÀöKÅö¢‡—ÒMïëyjå¼z ¯Hxíº‡ÂŽ¨õð¡îµ4†Á†è-þb Ìw$ö¡¥È]ÖËy§Ÿk3‘×l€òlDý\r×mXN?Ó~óò§ó÷a@6]íWu¥:N^éMJ;!×så\7ÉO¶ÎELßB†óȹÁúé´%YñÏñ]à÷øùÖÅu±D“OÐJdO *,ോTÉæ‘àÉÕîªh¢Çô’f dˆ´úU¿½*¹|nˆkLjÝ.¢PçÑÃS­%DŠJÚ•êÍê8ë‚¶ø¡F§º)q‘³…vGgyÔ®ŠÅÃîQë_#+¶Ó~dÊ¢:LÇ‚@\ù$T!ÿ^à‚g\ ½MWß.G•–Y?Ð’ä­ÚHw¿· ¨u´ °R„,'Ô :B@øß¤¸±u +£{µp`>æ}K©0CãûïWj—Þ}ênº¾°» Ú‰'é`Øì—ÈÜT¿#ÊË»4J`9¾^LŸP1åÔìzȆÇtÕZ<ðLßÈ÷q°…ù­4°Ô"®š[ãÖHì;@'ëz¼z±Þ¡†ý N³^÷œ _K?’ ä·º¸3ZÚ‚Ö6è*½àîñùgVF—ËÕ„ýæHR*ÜN:SÏæñ/t¥ŸpF×ÿßhC*½¬T‰‰–øÅirÆ0˜qíßßÿõŠE$tvõ¨ñæË)Œ¯oÑôËT´ýÑÇQü|!(Ù¹K£9b¼©™<·³JÁþøÿ’•ÎÍqe¥˜ô–ÕðüºHcjò¶ã Ëà@íÉ Ýðúá!p”×Ê×ÍÅte‚ýÁÿe+Ä}åú¹í.‰|!}¨sƪ…©&Àp*áüHßÚÏ;éDõ|´/æŠû#ÿË×Gn¢›ë"HI$ t@ ŠÎqÇÝ tòJšP}…Ý÷RA% ¥õí?¿Z¹oÈÈ —R’J×Ìõt]©š^€Åµ»ô gó~Þ?ÖëõÇúcý±þß®TT ÿû3_:WÈåùwf×vŸƒßËÃs » ü”Ñe ê~®ÿÿVÛeFú.·Këz»C®Ž[슺ª.Ÿ+íêQ#ep)]9WŠG ~óÿç+¾Kä’¸¬HüÚUe†srÓ­ÂÖ»1.¬²PZË{·>ÜÈõuµ]4õ¿ae®Uáô Ý7H†Ê}É­“e«»ã~áµhã&ì?–~­y´¨FÕEr×íq{‰ŽRhì÷¾R`÷\ÄwiwÙ¥Ðßä¸|¨}'Yd·»êêIG-­Ÿk1ýÒw¸œ 5ô5:Š(ñ©þ?¡bÊlþ©•‘¸ÏÞ}í¸*ZSŸJͧUô‰ì‘ïí¾Iß/(³Ÿòú¥nÓåÔ€¹5¦Ž”o¥?¨*þÝžJKÕŸ ´s5ä®4Eê|š_Ëha½ ©ô®kã&jU- ‰´¾öÓÚL»ê4P <—²M>‘Ö`D¶PÞõúo¯ääô,.ž‹+÷$º†hüÞz¤ÔäúP’èRVÆjMâï›Î­¹4Ž–ÕÁÚZ§ •ÚÆOÀí†Ò’~oÜ ‡ËN>OêêËm¢uñîlúX‹j)äO«9ÐÇ~©§…4±ZŸïg’Roƒ ½´…ŽÐUÄÃ!]¯ßh#$•]]—þw‰A¼üx~uwßE‚úÏ«o婜åß\DÀÇ:ÐÏèè»_~à÷y&Ö›b³0ÛëPí¤³õ2Ñ0IêÉåEBG¿ÏÿÛJM¼&wÝP^Â#ßi|;¿ÖBʲd¸«A#h Í î‘ÛÒ†œ×P?õ ñjXâ>•vÓ>xK5²Á~~Z¯Oõ‘Tw-a‹¡ŸÙôªŒ.ëèICµî—å¤dÁÊ15/øÅw7ÏOÌ„ÌÅöVÓŒè#!^‘ <–üÚA‹sD%]@4Ò3Z W‹¹n.Y¨gIùŒ9]·O¬ƒÿ$02 Z~ f¦!g¤‡1)¸ $Œ8+õ]—P<ÿ ¸÷ÏaÎzdð]Z­smJ=‡ •@¿=Ä‚õt{'Ë%6¯ÙžÉí’cKàï•´ ¸{—&ó'KØ|„›ríõ…LÔd½R(lAÿæ*N†JˆŒÓ"ãûw¤(VÏDV·.7åˆlñ=rO‚Š7$"Ò[‡û­Œ&šðHfÕW~6åƒDàdR0£*¥.Ì0Và¨&Üüä–:Áöo¬¬T³¹>®(ñûHŽâÙq±æ‰«×‘Éîx;MþKC…óˆ×Røÿ!ÄG]ü$(—ƒh) Cþ ±÷$¼0ƒ¦5ê.GF\ /5‹|îj[Øÿ²ÒÁÑ2À÷fK3NÔþ©@¢¿þYzëðNªß¿Wd¯Äð ƒý•µ±6Ð ZY/ãx÷ ©‹ýKò|s²è ¤_£“ÑBYm · mµq>WŸœÌe‚íĹÄý+ä|)—ÐÅY±IJ¬–ÅÕHf½¯mæS~Îpÿ;ð¯ï:.ˆ8d†"àÀ]¦ãÈ éÑ[&]¬ôí(]1p 4­T®²ûÞÂwûùϦ DGž7Èó³ü$‹Äú×”Çãsòjtµûí®°<“ÇïhšË«Åõ(˜xÕï«§£Õîwÿ EÓ½’ß HøN·¸¯`Y¡gEù¦»Ý.Ù>H^ ­ p<—x¡ û½õ@-ê–¹H`X† ‰TDw€<÷Ð÷=.ó‘kL•i2ù³¨u·ßÎ+Ù‰ÿ,Ú“üÖYo»©v~Äqá±X1+PÖÏILBÈLD|£É ‡CÅ ˜d®•Ùiù«„×ã‘÷î"YJòÛ¿ìØ |)}e Œ›€µöŽ7´«Š7Øì„ò1t‹‡‚¿J@ßK2þ^bª8v¯‰’’C‡°½uª6ÚÁÏOˆÿ!ÅðÒ,zÏO­ƒíK‚e‘ÈÙWÉüÖÿî¢ï 1LCÑÅZq§$§t-w‹ÀˆV‰íÛ%ÖÂ:èþJ¾Œˆì}A¿.Ô¹ø{%ÐCµ [ŸhyÉlñá} \t×SìN¦D€Âv­wí=2Zz?ëò,r['¬Ÿ}˜~è`¿¯ç÷»äÛ®˜_ùÁw|X Q‘yù£ï{W­“Ò}tq…ÈHOîL¢?‰œ¬õ¤R°Åw9\l˜Xuy$Ñá1¹¨jbñ‰c½Ó0Þ·dòK2›oÅÂuÀ ¾¿Ïd¾Àú!ºÒu u¡u¾›NLŒ!+î!„Oº+‡Ñ×1üç')M¦´s‚È)=@˪ÁßevÕÜa ÏÎgNAβýù?ùg ±éqä”â°¹i°ýIò Ï|ãû!ß“InŠ‹§}<ø°Bš’é ®{ÿèM|ä½|ˆVßÂ> þûá5Á×TøL‹ _-Mêʹ°õ«øöϲÓw;¾é;¾MB¦²Ÿç¾#ïÇg[‘µæé éAô’¥2Ö:üº«îùa&~ÒV ê&êÿ"7üôDT v•¤‚¶Ô/À‰:è'&²?æÿ<ã öDФ.½›I®Ú‡W¯–A2 «Î‘îÄø@¼y®Œá»u€Y«éEvøšlV'#ë`ž!•¤ ~²L´}ã ô²îáÞ;$’¾–¢HŸX3Âí¬ù^ô3𨝥@šÒ²J0˜ýïmßg.7O»DzâÓ&éWÈ? ‹Îó=MwŠuƒšé{~õƒÉо):q´uÅ…Ž&ß=@Ãfº—w3–Þ‚ï_ ’z¦WÔïˆ)C}˜G»ÃˆcãÿÅáo¤‡ËÔ 0É]ê¾9ø»íÚDÃazùô—ð‰›üd•ï?×g·´&s5$s÷аÙØÜ¦ÁôÅsFðŽöäõY:Ewbßµ¼ïò‡GSá;eà?¥µØ·SWùÙGmÐEc­(­‚º.3Þ_Í­æ³îÆæßËfrúU¸ë#?.<è!üå>°KO@#a.¨g›j7²£õsH„Lá=Ý`·½u˜×Ý#áN…A¹{ü­Gþ¼™í!L…ã½6kâ=ž´ êÞˆ®Üצß8µîæ‡`í—%µ¬Â? ÿçÓä¿™àáBt,W˜çbC|÷ërð@úâß ½ðñ1¼ë:ÏÙ©øäÿx à 2K*äOÔ¢^Ç¿ÍA‚ò µgðVA×Ä=vi}3ÃOtJ¢EÈÎñ±zt½ì%‹¯ö=P­ïu;ɯU‘©§Ž Ê›Éõ¦l¾›Žër²Ý^yEö³YGm<§ß%ÿ‘ïüdü¯!hÝg…8šN‚¹¶¼ËäV¹}xèlü3ˆýœ¨6/ø ¯ŸŒ¯”tä)2ñ1”x' ¨äÒÁi«Ãu‘¥<ѯA:‘g*[VCü =«›¨õV+ŒÞ áó!øÍx`#ø¶r•ÕƒýÆ'Þ/ø¾léàºÀòõû]~º¸ ™Ô&½žç—ã k8:BýŠdm}çÇNZE[£‘²H¶M^å¯Ýñ=„/ÜN‹-ŠE´¼“ù>š¬å÷×¶".F“‚M¨À×M{©x³PÓ:d²½ÍÄÎñ¾Å÷WÁ‡2ñ™m¶•M~Zå§Xïî6ÞþÙ9¾‘Uëj`™ÂÎþZ÷£•ò¨bgЬۥUWx,h€–r 7;³°JºJ=òoð:´tYÜ}ª”|ãèi°’u~D§ƒ»G„±M”¤ºÚ2Œg¤ï…´Š|ùBÊû<˜ T+¨µ‰äÔûñýÔ†ûýù’Cøyíª ázuÚzd4'Nòë¯zËwSO(ç\]¼>`ùð½Xð³xÈZÔ[ϵ®­¿òØÀW >ç2<`Žg6g&ϯ;N[‚¹ 9!õ¾uKÝC~¦¡'›+ç€ Û|‘ÜT—ÅÁÃD°Ÿ¹àÀWpéÛr%¨½Røî·ãá‡ä – ëçwGÓx°uhµÝ»ñeëk4âÏUÏ*¤·°»Éiõ€d$–æøóü•h` Ðcàö*pÐú´]¡b&Û‘â8ß_›àxÃñê©~’M[‚…ããýÕð¼óˆg³ye.\a6¹ŒU"¶Â%ÈWxîŠï¨~t ‹WѤÌ>X ÁÞn=òn‘Èo9~•ÿ~?©ïšDA3×ðãÉ @üd0Îwƒ:ÁQ[°®ÍJK ×û_Ÿå§¡Ÿáhc¥ïò†ˆ‹¥Ãòˆ­ÑÏqþzX‘õLI(‚(ÿjWÔ-w¿Àÿzäž/_ƒ×Åø«M´I‰õNb¯MDvdåÏ Ìæ•‰hc1rï¶åyÕ" ºZê'Yg¨k IC?!Œ®!Æ^ñšÍÀ,Aæ,6¾ âôëõwc%6Öˆs»…lë±›1×°ÚŸˆ¿Š¿ÎÅ7F£™¯‘Òúà ã·.øHt8 EÍ·ÀýäÞ»Fòè†gX½¼ÚwÑJ¡‘5õòäŸ!÷ŠÍŠªÈ³-u³¬tÁäG©[º.Äü`ÛDk™Ÿmq\ºò91p W ïd^7 \ƒ—Ø ”jÒZ’ãßõˆ‘†äñá Á¼ã[¼e…XGù›h ¬Ïæ^ö}Ïãû 5«A«·¤„¾vŸQz縰~ªÓ@tE­ÿù ìÿ}€>Vƒ võo&–_È1À°°H ù«J ªØºI“'~–Òz dâ{e®FÖ-6¾·ÿ¬¾ì)’i^bá{ã˜Ìúù¯.£{B„#2ÏÈmêü ÔcßÙ0;9úØp oþß*=`+Èg%&L®$u`f4PŽÊ?•V ¯‚‰SA†­`à:x¥Í=LT-åµMhæ©T†/ƒ;¾–.˜èg«·Kã2xævω[÷ë#|âsDï;ôðÐO6ŠÜÖíÕ²—uùê¢}¨PÕ¦×ú¾ëë4<ú&ùí `#:X6ÞD“Ç‘{ÞpÏ÷Ö=Œnl6¼M›&E‚~7ÜLøWF?ç÷5ù~5l11l¬fûïGa8‹ðÕa zo|غ¾'ŽãQ)¥ò©Ÿë€/ÔÓw~ÞÅErÇräç3 Í^ ZXoüxÄAPðºï.Ô($µ\× Ë˜üSOòéyrÓ5âÞ: ßBÎ Ò˜ˆ¿Úä›IØ~±±Œ¬ø&sQìn¿*TöÆb­¬E¼X¯7›ž¹ L#bvúóçßûY¹G¤0ÚJÎñ65>1ö‘únbå¿àª»bXô¤ä¥6@­ò|;ˆä=ÀüOä3~ ˆ`s_"Ý=Ž|î÷ýÿ뢃¼ÔÿU‘?>ï©;ÁÁõ;-lôãÇð^›‰ñž*89¯´ï‘ž,pÕÕrKƒ,ÿS÷¥»âbP«/#ÛµÆË#ªœô]åc©Ï÷1DÀ"ù9ž »‹|Ö©ÛPÕ¶FŽ.Ú”ŸêSÿGV›³Ùw‚µ<9ˆ˜ùD…î¶€£O%¹¿¡ÎÖº^G¸Oá Á]·ü.Ž|æ&øûrò@8²Õ6¼¶úh,í¸ïz܇ÌxÜ è3±3YmÔæ˜Öá?%ªó½¨Ÿét½Ÿ³ÄB$nfû>ð3yfñ“• ¸£ÑQ®F¥·ÕÏr_H<²˜F#³Ï½¦ñ°yOý¤ƒt$óÆ¢c°å!ª½Wذ©VFí@¾jjç6>¥’)OF+ à½+ÐÞ¿¨]I ØD›0‚ßÖ€žQôCj‘¡bþÁWܽ–ìÔýwÉMv§ÛAßóצý Ç~#ü~C?›~vF>FòVdðúàY3½‹4±Ñ@íN°^ë°ºu=çïÙêy]9ŸågˆØ|-Ô”ñaÀã‚-º_Ë©ÀaÞÁSK?£«v³Œ7Š¼ß Ì¬Ûw9Žê5ÆÞÑô­?Q§SÜ–LdÄÖ:m†ñSC¶ùN¨Ö þÙ`НVxE âÿ¡ausí`C±i U²òìý-‘ºOØŒüƒüµÀ©~Îå—ò%Çe‡Ñm÷5P[$Œ­ƒ¥?õ…ù¤C3iu2’A'xعó=T?ûùÒ·å-øñF’ú™A¡c7H5׆PB i2?½b',}³{~­÷?Íq&~<?ˆÇÿ‘(¶ íÑÓ¸@o¢û pþ¬kWý—â)§ˆ€ŸáB6=sé’¿ÄÎd"Wæ k^б$hMw[Šûi×/ä 9þr]÷g4Ï"÷䙉ôÅþ‹@‚ÑxÈPm:öí#mø>Ù£Üdü{6¼o2·sH'@”C|½…=%kÞñw$&c–#g¦—ÐqÿŸó{¶§’ìÊWD*š¨`A||£ŸS5Ÿ8žå埲Í#³ âßüôΘ‰,™RŸrÌäž[ÜáçGœÃþ—ÑãS—p±?Ï‡Ž îGÓŒ°§¥Cú[ð?¯ ®¼ËçgU5‡ÅåלZ?=âo'›Oåæùs{ üô[ãt#üÄ xÊ2~8Øó2v|˜¿s`=–ßÏ+6ÿ:1¹> ¹îcp£ò§F9È“t¨ëlÁÿ¼¢¸Ò®—« sù´°£ýÙûÿS*8;«gW¾–c[;³¹û>Ãö¶ûÍî~M¤/~‰Ÿ{:ÿ_á+¿­ÄÎuü½,Yr y!R·õ²9¿Õ ú•†žÞ`©] —Ö-žÀ`£êüö(8v+.õ3]¤6´{Þ–ùÉp$.U_"⸚ï ü7„»¦¾åös¤¡ßU"£Š&Õþ:EGÀª¿Á4¾ÔΓ25ØbÿÅ*èʺq®Þiçû.Ê^?átø>‹.÷³\w ×:˜ðø_Bµù¥4OŠìLg*ºë>Jìì×1꤃’‰oJj˜Á]K,F–©SjXâú[è¿XÉ\1WÒå¡ §«±ä4¸š]íîQm1Ò?£ê «'ˆƒÍ¢Äsdâ$'X¶ŽœŸÅßßðÄÏùZMlØ>»Ôüä6õB'_+Ö±šMD¿pIƒ-ôZùñ€oÜ}ɯkA½%øýVtð¥Ÿäµ$l¢¿‚ ‡=ºÛ}ѱüµœ—à€ÝÏîd“ׂ~6ëæ…œ&3&€ç¦&ëY­Ü‡ªoœvãÑßµ ¶Àµl·w{×WJkjø¥h`1ˆ6ØŸ÷<Î?´ØùV=‚~Žø3[‰ô=Ö·{#«jL¤ßã'%®C;/Á’ìxÅ6´”´¯©/9f¥.ƒÖ)àâ[àÿ²jº\fB®‰â¥dü¥ØÓîƒ8-ɱdr="»yí5™?%:0•“M¶½‚oìàkèWóhIþÎ%¼%Œ&AæÆøÊ]«KÈýõ\%ü;ŸÿzUwe\·;5V»_Õ®ìFn›kr,é'ÙÜ&3œ§Ö)„©ñê¾Ïy.·”Ý7±‹¸9 Æ'å¯T’4 eM®¨¢ûôŽâpÎиZ»lAn.Œ¬œ»Æå~ÂrùI¯·Å®–åT«‚+¢‡ôMàKéá´õÑÚìHùHÛùñ¥¤B_Á:èT}`÷Ï…ÚÞ˜áÕÝ×Qçb9›{ëÇЇ ] ßûÛ;ˆ‹íËáû-ýž§úÈŸ ”¢~<ó·+üˆ•~¦ZxßZ®ãõg=¢_HúPÜ| ð¡‹&ÖåØv9–¡&Šˆ-ëã½íÁíjSÈsIØ®p›hds}ÀíRé b? E©ðl&ŒÝ–Ž¬ß ÜÛ¤{‰ýÒ:8ègüÿ»õ‰k†”¤š fM@rc5µÉÙŸP±|N]ôèn»|l·sP ±/z ÔhŽõÂ;âÂr𣓿Ä{"l¿ŠØï®»ñ¼šOB۾׿^6›£Qð˜L0F{ã×üîþÁú56€D 4@x"µt$Ï@WˆøæÄû}¿K$>Qò‘ÑBûi=´s ÉêÇìšLBçÎ÷¿^!.¾+ê®»ž2OÏ ßXßÕÆîX+KÌ×à{¬6&XÖ».$ÿO„ß &ß¿ýRet‡Ÿ [˜£iÝË䬫lÁþî•×U£Û¸Ï¤ƒ^·ôCþò`xcmK;ŠŸbè-)‡wO!»' ³WG6â¹!·öÒyTyët¢ö Úù4°[Úº$ÁêZ%\#ºø®Û½mscí©]ð…vØ´#löCrÂPÝö»|éïqøUê-™°UСÆ¸À2~ íjfýý#+±KàRº\Ršz.X°Iß« l!ßwòW;²ëzPý+ݾ‡ D&'¤Ã,2Ú£™ËÚ50_K¿PÇöÿÞ• dvCÜ ²ø7È¿TÕÇz.ÓŸ_£É˜¤±ÿ©Œ_´ù‘åðˆ “ý2Æë!•õýLÂáïa´8þR[ÓhYݯëðƒ'úLçJjן ÍWÿm%'×W kw¶|þ2¾#ÂI‚ôå5*Ò¿Õ€æò÷u‚í´G¾ÚVûhiíëg@§äw›“̘Æócȉ¯4b`¡¤OÒ†ºÎ×¹2Âò¹ê®½d¯ÇcÑ/ç…äÀžécß˾ޗs`¢u ,•Éx4á¸Ï‘?9zøJG¢»Ç¼vÖ¡0ƒ¾zOSIwW$Þùõo«ž¿Þù‘k%á3Ö»´rÕWR€O®å6ÑðT¢Ãváô‘Ñ•cšÃÿñ• ¬(£ßâ9éˆÿäÄH~*©=´– ƒÁÞñû^Õñü n›Ë ªòWt+Âe #“Ý_vÊI£¥xFø½,Ùn›ØŽ¡ÔxzwX`)Pñ7|e"?'ágëþ”…Wºñú bÂ&gU– ¡t|"³˜«åfË`>ûGzQÒ’ïrƒé/ÀÁûò Ö~ŒNbâQ4#ÇØ®wá'ÛýÖ ‹‡µÉß~E~N¡müºvCqäsØtõ` û_V>"³›_·»Û#‚ù)ðÛòøø}¹(—Åzá=”wX·8˜B3iP9hXƒj | ‡®õS3"£…È ¥õý(†ÿ#Š:‚Öïr1¸!Bž¿ÿ¼òÀv:»ÒTRë|º8>›Œ¡wȃ·åš'³½÷wƃéÇE7!Äw6"á•ÄÁÚõµý®¸wò‚JÉü ´ÎÒ5è1.±4(jBnȦK] ÷u°þ«•Ü‹ E‘¸ŠÏ{Öµ(6Ÿ;-–<)Öy¹\‘ðøºõòJIÌÛý™‰èŠj}>Ó —r à+y)Oà@a‰ ²ŽCâ¢dŠ­¼¾TÄ'*jdéæ§€„ž•vú¹«.é@¾TXÕîVÏÆOq#DÃë99#sñ¸üKŒWDàˆ¤ün½­nKz"ûcbá)92úˆ„.Fé*01^ "Ôƒ]“ºò…¤³ò*Ô°áñýžðº´ T°û˜dåŠg%rcëuÙá»;¥÷={Lþ¾h¤ºÉÄ3Yȇ‘}góÒð£Xÿ þߊœ—îô!ÈИG*¢Õò#ŒòŒ$„W %L òtS]<¸{,l˜ÔŸá8Dy±^G8oJ0k»\™¾³ù{Ø`$ìOOH äç¸üÙ[=Åvû½“ü­'è´:,Bv˜£ É'Ku*9ác -ù_CÃÊá¢bÿ‰`^잎ÈNÜB¾DrF>{*Ý/{äß´ûÆÀC¬S‚åˆddù‚ ~fÞõ 6p^N/åµ|ÀkñÑL4µ;À§Âо‚)åÔXDÉ'TŠM$]¨¸Z^¨àГӡ²{íû¼‡`MücDê}$^'Gx~|.Ší=/7ŦÀÕ;c}ëq›qçU­‡F4ɦMuòwñ5Bt2KK­F}øµŽ%ç¥w•ÝH—¿Ý‹—ß&6’Ï’ðIcPáF޻ȿ ‰×û=ÐCð„cþðgøÌ-8aeP½Çß!Ρ¯—x€M͉«6%«`I5Žˆ RdÇûQ1lÔNü8©À¿l®0Þz9OÉf˜ý#)Iî®^û¹æ;ÃÀvù½¿Kyç“3:G„Gšó~§ä&8âoDÈuy„V~áõ˜È\ߨN.LBîL¶Œ£ªÂ__¦§¥f°ÅwI\¶*CÕš„j®Œ¡bÙ6Lá•xr<¹ßßù®@£d ˆ¿HRë$£ßÕ³xß^¬ëøOÑd0±9ÚM ïˆæjÆ@ pO‘ ËJò î/ìʹ—.öZ –e@¦}øl0;!ì'8~—|þ#èo=]¶Jj—zxðäLU¼•Çl¸`Y‰}{è7:¦û«ŸqW ù6A/»F®£›…y‡<C‚‡´°~Ô{fòý"â©[0ž¾%ã=Â’ê"ØúÇæ“ .Ø:,íF)© û£…Nd°ÔG)ÉŠ“¨m€ý@Ç2z–:LêU‡¶…M¶ç«¶~Flª‘ß®ªdóÌ*Øf¿eƒéïÂÖl‚Sð;<ÓOÁíâòyoóÛbl]„ì¢6ñ¬˜ÖC3’ëÚP×|ED ×/Éêñu©ï /ø.¿1ýµðþNXen©ûˆ†Z<œ)¹%˜³`mÆùl~ –ööó‘|&âÃ…7"iLäŸ@ ÆdFû9 —¨ ²kY¬ogý»¡‹¦:Þgø>`/µNÊ|W¨søËtQÌ,HpŽŸˆAT%ð½Ö ëTI%ƒ(ˆ+á~“ôT91¨d‡Pã¼¹^€÷ÇñäàØH©ÏÛùo©ØGƒ6ߺæ3,ßyêúê4þ¥ÔCèmš:A0°}óÖ¼”¿¢R°~-±~dŽêÁ¸® Ü'?^œXÇIÍG¼¿ô]z­ófýdÜ@~Ÿ,-‰ý ÝK±ÁŸk;?ßÛ8Ý 'Ö=KÖ¿í§Ã­'›^¥ʪ鉄 ZS+‰ü¬Ì&üdû/êÝ!9ÁÿRøôù’ˆGÄFÑs¾cU|ð:>|7™~ƒïîó•L‚Îá· EI¼ÿK|>¬¶/¨WI£ªuzÝ÷ç*yyá lÊÎ>ä/¥ÁcÊâQv.¬31—8Í|† A“¿ýóýßúÞ§y‰Ê‹Ø;“¾’ÈXó1‘¯àÿr¸^_ŽšIÝg]1¶s|!mLüGúì±ô9t",ЦC,óý’"ÃSàùÖ112HXÉéwø}u²D|.­¾w¥‚èc\E÷Â-*|¶%äìü\Û×È}‘¨†÷³g û\ìºÂw6ƒÆ®ÁìÊ y$ì8H¦·x}2Ú±þ†»|7ùˆº•÷×Q»nr”¸¡þûÓˆ7èÆ;Õ´®T â4ìYdß±n;Xw Ÿ¾,w}ãÃØî:x V¬÷ÈŸ˜*ãý—uB¶gÑúÄÇk2Ù§È_R­ós_ì>-Ù,ÄäÌmOò¿åoÙÔÌ£üýCaµA ›£·ô[ NÚÌb~ú[4oÄZ2Ë ŸY¬;NJ°±ž³øì?Û-›€`ç®,ÒG¢Èšªà)²žÇçúZg¢ï޽ˆ#ì|ð}¸QO$K«ó<ÆE’(=›(°~é[eÑlR˜ìŸÔw4VµJ"ûyPoüûyuþÃtð/3¾þ ÕÏIßÙåv›‚åÁ\Rënü<p¥ô—~X¸?µÎpÏ„o‚ýáµ4<,n66 =ù+ð“yhq…?{߈åß‚!çñ‰°›¨G#è5±»sƒ:ÿcŽkçòŠáÑJ´p¹ásNëu—èý$¿†Ç/õÿ–#a/$Ý»¯¬›ÈaÍ@¿º¾›ý2ÉG6Û|sAˆuxÔ"|äŒØôè˜äT{ô“µl¦FYÏŠ#„¿¢ôÎMu_¸Úî:^i×,"é3ß ~¢Ÿ}y…ܵÙ:6ls'Së® ÃêW°ÂȰ½Š xðÏÎjÌ!sÜ$ãïGfÈ,|d7l)¬Ú4¡ăõÏ;$†ˆ{»Š˜[KH‹ Ê?Þµt \diu>„û%&co‡å ‡_ Ý&*.ƒ†?×gú)@vHFm¶ƒ[ßóâÔ•aþUÈ·ÐÎj$O¾\†ÔËÑ…õÂÛBnµþ€»ˆë ÓæÐV÷K£ N¿û“Ò»ÛxÀAÐú ;×wz†Ý×’ÉyT·øž®ÍF6ëð}SžÊnøo3r{eXc9ª™:0¼—þœ™uI<ŠíWñ×&l²D8R,'̹¥®ÖÆÔ~Áã~Zß»Æ.¼ï<ö™Æ}ã½tŸz¢Ïw#}ĹØsºØ-¯ðpëóÞ‚®ˆýín÷Fþί‹ Å-þÊQ%`3¿‘÷õ>¼w‘$' ¦![äëõ_,êÆœ¡àúÏaà¡+ç¯Û¯Ç?¯‚ûÉù[Éu_"ûé€?˜å­ýY¹NM?ë7Â2Rñ}®SCæ§ Þ J–؈õWóŽ!¾'èôVš:)1Ñ_ŸÉ cH«']ðåèÚ»Ýκ˜ÜÏÉÒ·áŸb7 è.]g<™ïw|EÿY>Çí@-<§)¾Ð™æøé·À^¿—蟂¾ã}æ9 üÄÇÚÔ_PÿØü Ažþbë²ëéú¸dÞ7_c¥ðàuµžoç‘aŒ¶ ß§ñó2à~±+;7¤‰ïwß\j= ÇOeü]^yušï=ä˜ þ/äcˆ£Ù¾ƒòY´k^_„#¿÷÷Æôâä»ÿXŸ¹¢n¾ŸÐVSá—Q4.ÖyJŒ@ú!x€u]á»Z÷ú×0ÿ/àûÕ¨é»bÍ;RÑ÷v-Cm'dLën="í^ë™ý¶?BTüä5-}EÅ´ÚùãPÑ¥/õg:¸hxÚð{q< ¼€Ý¿FæŽÈ?KÚ,èZ0 úÄo+°/’¤„÷1%U;#ÒTL¥+8f+™Ã& n€ îÃò?ù©‚!äŠX°„,ðÞ<Ô¿Í]³` Ïú–Ô€ ðЏ^/¿úÞç3}ߊÌßà³ÑÂì:_j€Ñ¿“·û6?Ýà¬x Fíï[?ý¸î°©ü»é¯û)sÉÔ®‰ýF]T7Ø¢ûÕÈ5qÑ¥ yì¾D'»~ßÏ€ü ûöýÎ×úë¡cå꽪Ô3ËÐLoé 3ŽªýÐÂPî4õC\ðc ˜wØß ô#üéq`ó/ñ×á_6YËá4tô )B®v£µ³¿NM× ·aÀ ²Ù=¬><íçÉ&ù¹Hûð‰X¹ ¹}9¿óSÆójüþ(é^s@®ÛHµ/˜Ž¥§#ít* ›…Ù}\ÜH‘›|ðÏñK‘צ_mC›øvßpþnþrE6¼^«¢¨uH* ƒ-úŸWb× \à3íÍg­  4?là.Èf3 ­£ûrVËäŸØý/ yf;ñÑ›¸Žª?áã<Ï]‚l=÷ù;G¬ÌG,=’lä‡Äh!ÆÖJú*ØbÿûÊ຺n'ˆœ—O^ ÿžù+ó‘fè·Ï6¼ŽL¤œ&Šíš–Õ=ËðüacSowú¾Á›@>»—âš|¬a5ð¹vÔh¸9cYøBp+ÿ¿\‰\>WÒø|ǰÛJâ{-»v³yììǾVøšp#G<$¢ÃÁ3’í*jf¸Òb4tã¯ðú übø9£´™ï1È#©{Gê^ݦïôp¨™~aWÁò¸â‡î­íü­ÝͶü¶©×Óùí(òYto §EÔŸaÊQuQŸÆ÷ɽGT‡çÝõ¦×Ý/xÌÏO¹áÏýç¥BÌ æ=¤ömª´C ‘L¶Ø±>ÆŠ».Äêu±ÝÝçüüÞe~ž­MÄ»"vMÀîÿ[†VRÁÑÀ0Ë v.3©?—•ÙOø~Œå·qÜyâÇrýMÉêçÊ<†ÿ=‰ûBxÀ Jî~þ·•×¥pÜqÉH!ûÙœoˆuëgR’`cÑ7¾¦[ƒ$ù@ÈŠÔvÆ03ïHsˆý?ЭþÜáC0>5:²ù7v¥(Úý q¨þë34¦” eýP‹¸´®œûùÍšÆTßI4 ¨Ý÷oû¿¢ó|<½î‘ÝfÜ?‚ée¡Nz\멇m¬¨Í|ÚÜÆ/ ò6)ô1GÚy2Û-l}QGéA© wÁås9\©‰­2`ÏŠ¾¯{t²àvbü¶ƒÁØ®× àþ6?Ûå1–ÍL5û3±bWòÞ‰ÝE³žì`S h#êâüú¡^…í§'ê[ù꿾.Ñ_\‹P¸®>ÐÇÅ¢’OŠ­Šùóš)ñíë’„OK½[‹X?$v¦ÌîèHl¹xu¾®Xz…•=bw’Ù„¼æT¸µ|gxó§´d¼  Íø˜Š;ô­\®–‹év¹‚:”ØMç¶)ev"/nSŒjâÁǰ¿Ýù- îå2qÔipaºØãw‹ý©;x¯³AZM~6ÖÑWè$'±:÷Wu¥ÑÂ7J‡Ã£RÄ#lR½uõÍOu_J-£'…!¶§ .¯Ö¶*µ2µ{ÇmZØFSÞ‘Ç÷Â(µ¦²ú,øLiêÀIéÔ+>ÿýêêÊS œDþzX'é5¢b3x?Qçk¤¤¥’j벸Ð1á÷_±Ò‚`U\÷žð¹|Ø ¹¿Áì>Òbó-í¾n%*j:Ê*®íþkWlРxxؾz[×RÔ‘g.@ü“1ÒXêƒ|£a CÅÎöýÊᲂ=Ý·‹¬?NnÈ×ÒE¦"N(w¨[ËbW"”3üveÆ ¸¯]m©-OÜH42Ç’nÛìöÇúcý±þX¬?ÖëÿÉ*érÁJ¸J¿ó*ïï[)¨R¹â®¨{àšºþÔõMüìøb.»«ì:¸r.¯+õ¿”ÿÅs…]*ºÖ®™ëêRÈj7XÏ}â>wä¦î&òS!÷1õr–Pvu÷Ÿ]™\b*šbØ}(Œ÷[×Ïuw[Ý4ÒÑ}çÚÉzyíÒHKi!×\-bÁ&<—þ÷¾ÿ·U+Û™°R®·+ Ã$¯ÔtRMl¥öùIŠË{'ßK,íèwFõ–hÇv–…W¹ÿ±UÁu!΋#Iq7È}&Q}çÃ>òRÞ¹!n²‹/k5¥VÓLZR3êõã‘d–"Ò›w%b2[ˆb5Àæ#‰ë-.‰ü*Í5‘6Ó&ZIéQ‰ Ü:9©µ¡Öý øè:ÎwÊ­£—¤Žtp9‰œ‚¿Û©0%]E7…ª¾­¨^”Ïu¶¦Ö<ú¡~¡íµ˜.‘îîC]¢_j=-¨Õ5•&àõaºF'j]®£õ ¨ð>ðûÄø yu0î#9,õSS=£‘5­¶ÐÜZX[àíŸù°Qy®ZÈ¥9µŸF ÒuèAù7©qÕÐÀï-'ftéAð¾îœ.Ñ5¡NÖ°zOÚ"ktü;‹Æ×ÍX>¯Ð4D#h ¤Ï­±5€ÌÕË:B;ëXM ´ÂOʸü Áïe¥·sµkÝ/®µ¼“ÄHX•¨·»VKk,=,NÃë×Z–XHͳ)UýŽþŒúL®K|e„NG]u› ü¨s¤±4H:îøÿïWr0+‡«ïö¹‰²@^I$«Iµ©~„m³'d¤# Êi+ýUlçKaM‡´BÖ¿4yù3âõ+¯÷ô¤Ìõßó¹Ðs×çß^9‘?5¬v§ë Èjõ3µnøåoˆ…},É4«fÖGòHŸÉKƒmù‚÷wÔ!`ßp-Ï»6jÞ¹Ki ½[n¢„æY(E]¬_ÓE•IrHæê]¯ÍñêlØñ#¼ü.  8¶¿%)°.ßéxäóß<“ 쨋шÝ!•T[“+>×hñ™1½$ÂBKß㿵ÒSË䆽“'rSú#ug0ÿ®Xwójú\NˇD€Ý U›Øï¤ç$£öÕú0€O@»æHŸ ™-¶ÛÕæÁ4Å/zè4þÒÏúPÈÂPŒ]m"ˆ»"µ¥Î$öKbÃ’úTßùõ…\Ãî_ú™7Åñö>¼ò ºIFäçÆÒ-41ROg «˜ä…8¾ãI+r‚ÒEzB·èiî[п¹ â›õÜ0wÊ–Ÿe€õú@æ"Ä´ƒÍ½„åöýÓiM­7\0l¸49?¿ßn’Ãàß¡›hjÀÇ`ÿ®`Ã&…·ŒÕ¥ a ilQÿæJ ömv¥¤­4•/¥>yo'žÛ™l×ëi¹+Äæ^D ïÅ…í¤Ó:ÈÿJêú;Ûs‘!Ëi|¾‘Îû¬û±õÅ) OXˆO4òXÐK3h/9@ÕÚV¹)‹‹Eý‚Uílo{5l\i_ÃþÊOþ¾îDÄz"-…nj8Mbþ‘¤áí®ð'ò‘Žäßw’Y¿Õnº-Ô"ú¿Dönðâ‘z^:IõPwu4l·˜[(6Í*2ØõZŠÃv2éÇä÷’úRnÉ ¢â…X—tp½JX3!ç+¾”µ1UÁ!Ž(Àsæ%Càß‚þ ˆc U‰…ùè">‚†¦ªÈzà'wÙÉë5|¯²äpëYÂ÷Ô x8=+ËàvѰxBꀼ¢šH‚n>ò÷‚½”8xKRÝ&Öã4Rœ8‰ì7ï/Œ}¤SÁ¾Ú\l)ÅCQE„GNGZPËvÅê€mW%2(Ÿ—,ž [Ç×ã²YÎø½ ‰@¶Òà]<òAB}/刖p~wDLÐà<>òBb£¥ŽºÛWÆ[RªÍ°>©|gиÚ]F€¶ ƒ-øŸW,ªZ.à¥ÊG´&ƶ™ÔzÄ!ÏÕß"“·VÊF¹"ñôr&ƒÝ’íØ<ï¨ê%À^‚ï%ü0ÏW UÕî íIôƒ^ÆR=„«°BÇŠçJ¸§®¾¦Gò#Ò Ùc€ç±Éz¿‚øQ`:ç|G'ÛxBŽcÁ'äÛ/c 12ðï;¿çGñ„÷x@2< -¯Øä ÚH?C§àÝõ0HØOW’Sž†’»AÓÃxóºóà]2l}Q’ãߣ‘;">¿AN!ï 9*[øw¬å™rÑwƒÃ)†×Ç#¢m"Jbƺ<Ý'sÞGI¨û yÍ{¤¿‹<‰#£öÆØ¤ÐPq—HV°¸½û.ßL£×ñãœ`€Ï9/ç[á­»ðý²X&ûþ28w“ÜÿßÔ¬†ÇØì“[<®ÉI9+µo¦£zÔPE@ÍËè'2Ïf$"rêr"ÁŸÞSÃ=v©&é­Ò²yyòWf~»†4|gð‡rIÆPÿ3ÜC.|‰^²ûywé8.?y"€ÇÜD3—üÎ÷0~TrBQ¯ÉÑI2ßÿ¤õa<`«ô ¶ø.¹¯¡,é±ñ |úYκ´Ãk@f¿&W‰êŲ›îÇú3e†LáߣHz ÇÃó?Tó‡çð£sM"Q1]ð}Rl2‚vïy5,ˆPË÷½o®ÓÉ©'ðàßÀ%sMÝrI­[l¥,‘¥xøfâ>*xðžB²ã¼b],΃fý¡øÁbPÐv¶Ù¡œ°¾÷²ýíF!`‚ÅÁOøºõþÂ1‰aL‘¾¯žgIO0#[à3 þN˜„®Œëã’µ¾—m°ßÃÄè=¢~=6Þ‚<{üßÓkÓ`> '¬‘ 2IºðêE$"C`~N÷ËtŽ>nÞ“ÿ&o KLAî. Jø_/îêN]¡W¤Kdù“¹"®‰[ϧÞÊg}ëñÉö~]ì‡Ýnä·}À?Iaþñèn2Lz ï ÞÉ.—TWá1Öãæ0zúEb€%§‰Žhzï¯çû†x*rW%ÔDÈ‚]õ0ºOdùc¹ n)Üg?y>6œÔmùÈS†áøÜYß kßÕV>ûŽÓ H>À÷ø!ïÝk÷ŒxØ,ùº)¶çÑ ¬ÏÁ]þB¸A ¨ÚÂ|V¢‰Z_ƒ8§Ý Ð'¸+%•X/>õi¸Œø¹Íñàn©ˆè¨DÄY r[ßÎÕ b<]¬©g é "Àz¢þ$¤2G¦‘¿À«“¨ñ {Èî4àçaÆ…E& j€†PÚ®¡/È Ye·Kdù³¸–T}™á.vî>5Ÿ*"è12-çgñuœŒp•ì5ŒA wÀ#è42á¥~?]¬ë¸¹H¥ð D÷=ô_;ëA„Ûb{¢xB)ÍÍ+ëä…‹'уÚÿ>uOggÝn~"C½›V‘OEDŸ«îNKI^9å{£•–~šÇPrwlÌßÊ(ô2÷awIñ|Gü§‡±Ý“pØÑúWŸv–ÛWË$Ö·]?_ë(rã\¼~2:˜(s%·NÙ'ãßßP+CŸ)õiFmŠÀLÐàŠXOùî’>e4ÓÉ'*(AåÏ„ý_¹»ØVðû¸|Ö°j]=„zo71lSON»9d…ýü< Øÿí zwÓ¯8r/1¿ˆL—†Û­ BcÈ‘?A$»TÕüÍì0¤jÔƒeÑ^y]6ËÀGÊX #_µÿwb¸uj–ÒXw“½l¯õp8ãû—Xÿö š×÷¸ºB\*óÈ6Ëï3òy¬yAöÄÔw_ðhº ÕíZ{/—tú ÞÞoÊïË©·áË·%UBj á˜öü…·`h4 æ,Ф®$Ü7Jŧʗ6ÉòѰÐwo§1µ6έxæOý<­ÏÙgú9\ ?gÒFÄCSlo&ê6½}wÔF“«j _r`5B:¢¾„õ¼öç ÚV"ËCÌþÇE]·’Šÿ¨ÔßÇ|-1õ9öŸ‡ýŸPî“áTÄát›ïah;Ü+ãÇõ´QPHEFOÝø¥~«#ÐIµ>_V!Þ€ÿ„ÿl*z"@Ñ@ªÞ&èo.G'þWÈâ îŒËâ*ºOáêÛÄf^G⇾k‹ÍÀ±NÀÛùŒ÷á±ÖÛ:O!RŠhem¨½}×ï¡~‡ø„ÿ½·€—òJÖ½WÕÆƒwwwww‚îN€' $hpwww÷àÁ]‚køþµfÎwçÌ3GæœÓ;sYýcwïÞÝM—=õÔû¾«Šß³`þKá óÈ+Äêèˆä¹¬dÿ(~FêMâ("8SžQH{Ha0a² d´.…Ë#á±ß!ñI¾á.?¹/, n& Ä‘Ïæ!ûn+‰‚´°Ø2دïÿ™.7mL"¢gá-ãñ›oÑÛF"e7ìé5u Â~.£Çä k"­˜¦ÓºKàg]óî«ü;\²Ý$)‰…{ YG;çñ‘Œ}ŽÌu¸ŸHC¦€‡¤Åšãóu‰2ha0Þÿ¹¿¼¦—¶DÈzß÷m!|â8ïMBNNy„Ozͧ^";Þ% kié7±›Këº8«p kN]J–¿Bü«ŸyuŠïxBl"Ðmøÿ4ßý~<Ù~&U}JìßÃOý.å;4Ígé-9ï~ÀîW@¾ Ô‡‘A’Ô Ä|ê?zdSä~Å£>‡C'%*ºÀ1Ú° êL²¯õ?R;lþœ\~™Šßzýâkøw¾{§Mƒ›ê;¼ ïS»4Bþ–ÚÖw>¨GeS] ”ËnZšC¦´>/ÈŸ|‘ô®8Çg¾õ® ›k’‘<²JšLz离\î¹;‡ŒùÆ;ĘÛF0l ¿‡ÿœÇöðh,v°,‚±ŒG¶»Xµ†öõóO*øHhI†¯¥¡$ Ñn³æÉ^ß9ýž£TÇý|õø×:þ~œOßÚ¤C›H«Ê?ºþ` p•ÁÔôí©ä&øžµ{òØì–#hg!<,?‡ƒ€gaw¹ÀþšHÞ6ØV‡’ Ço8ëyesGáí Ħ€]õÇBg!ó#äÿmÄÐß½7l“øL”€Ú¿“«åúã‹g¤¶Z ÊÛ¬›ç¶Žü÷ÿµï?Ûé‰LÇ;.ÁË÷ÕÀ¿¶`@5¬ØÜŸi3Úñî9èÊf ܳý<ï.¡dÂC÷¡;ÆùŽï<ßOûÙŠ6ñ­wã Óü1?›ü±¯6TBÌ·BúJd³‚°;ÚF§‹M[C´ÄÆëýÄœ5 ÌqDì ˆ–ô™~”8:_)½sÃ]KÐï|ÓƒDöxËI4p I{#ïbl·Ü's¹YÐÕHÿɪÖ¸¢6ÑðYëô•<,‚F¡Rê Nð3lnˆuÎ_B¼¯GÑÁ‹d—¢ð!›ÜNTþ®îWÔÕÀ:]øæ ñøgòÔ÷?(mü<›µøý@î×y\ØCü~@WÙ©³i" $]q»”XˆˆdN¯'Cx¥õŠïÌ;²j‘t”µ‰Ùt…n¿–.Ð] ÇÁ‡ºk`Q3µóqÕÎóM»K'/»õÄ_í­ã¯Í‚Œ¨ðƒšÑ÷€øJ‹à`ƒ 5qt4µÉ;ý9{Ïx>ë:¬1 ‘F_sèZ=  ‚ºJÈêÏÖ\ü˜ ï­j³—“áá÷7‰Ùòµô g€úóðéö ú¬8X€ý_ù€6Ëû[òŸÍöË 6ñsÏäÓ¶¢­EÒË÷Î=%v•@ªŸ‚pëYÌŽ#\z[=Ü(—v©Çƒ}§A)ëci}ðç¢ ëûng~§I ìwâ9¾þ5Œ¯5÷õ°}wò˜ß­Nýs=õå}'ðùUhÓtw”ßRã'6Gç*¨WN˜þ?àGÿmµrå`m18üz/ñ`l6åíwxîY0 ·ç<óÐBk²ä`нŒg¯!Qß«wAúŠÜºsZš9ëˆÿx‚MÍ|$vÞ3³ ^¶”¨z"¨5^K1W$гº»¯ÜB¬òBb¯ûâó/¤ÚQ¯iXs<¾$+ù%.Ù²Þß…º¿>Ö·ÙßU±f?ërÙýkÐo‘rŒè_ƒí_WQ©úRÀºÖ=÷†Ì¡.,úÂôuU\]‰DFJ¤i‘'–JŠ'Xï ŽÁ—§cU¤žŒ!Ö¿EV›™ð½ìÕßK~*‚–è¤.áõÖòÖ?D¾L¥áñ‘TÍ©á~õñ˜‰üÛ­©4™+háYß»<îWy z«[v›Ü`S,úò³`³OìÖyãé¥á1;ˆæ~dˆ»¾óñj˜^r2Bzý…Wï„Oáß!^•n ;'…)ý ÓµŸ¶Çß2‹«Á;¹’î®Ë¨÷¨uø 8ëÀ®ƒžÿM“Ad0ë÷½ÈsÚ‰X5:ÚÂãoÝÎ_#ûðº1èç¾° ?Ùà~ì÷lÀGÉI®N ”–ÈJþe¦zx"-º_vb‰+¦ÈR6·~#2Üã߯xöQLw˜ÏDp|©Ÿ4V3LìÇ?CÆaDyùXæ{%ÛÒ9ÈÄ=ÛåÏ Û,Õj³à¢Àì¼zhÓ9 ;f » D@~mªJ„W;kÿx žòÝG!å8Íf²Út?ÙjYݦ‚¬â¯ý$^¾OXFŽœéûdö›ÝxÚ ^ž¡Í_`Ö+ò#QQ+˜ÈŸÞ¥BþhºË|F½›H…8U2ÔCd˜åÏq­Gþ%hbªŒ€!LàÙˆøcøuwIK6»‰Ìó<Û_ËÏ­žKìBþƒpÀSD…]!–O£ëcþrÝWÙõ9¸_ý<‚ÇÿRQ3Öÿ}ô]À+ÿ¿\E‰Ün H=k½ÆnŸ!Ñ5´vqmsL.#Ï*ŸÝÞŠÕyÅ«#SÍF‡ÑØÙ½Øà@Xô¢ÿÒÛù“;ž¬ã3ùÞïÉÿÙô“ÌŸ|ø¯Wvn#]Wl»ä:Ø”žDûZ˜@b¤{F&ß¶Ù5~1Õ®k‹¡6/ Ùï‰T@.Ûtž8Yá3~*2^|}ëyàªÊ†ú=¾ßCQ#4s--ð_­ôÔ" Ü"7ÙöcÙgHº /¸€üAÈ—¬uÍl'Bl blÍ‚-ê |ûÒ–‡5Ùå¥p… ¼?¤VÑ8d½Ò Â¯ÈBKèP]Áí‚FüÁÌú¶ªÀ‚fºŽ"d«°Xî,gž¾”Tc®I©Öøªæ8™ý92æÓˆþª©Èxþc|f™Ÿcü' Ub"ÅW^ÞûR"Âx›ƒüSÀ€ZäÛà·òò­Š¹ 丄Z[Æòy-”ÚT°*~šE¢ÜÎð“ÎP×'ÂÂňùXú›¿ZtžGɵ°žþ˜Hq²^¿«"3ñÒX;ê2­ïÍhaÿæêH-0ß ÆÃ‹À‚bÁRBñÍ#€ð6©ZÈ qõ4Þ|ÀOÈŠ¨aÐK=*9»jî¨Ïz«üQƒ-hÇöC5á/µµ^P f÷{oÈW®¸khQÿæúÒµ‚ Mq=¤~ÚÜïük«É¬…A»t`ÜòÀ©ŠÕíÚŸ¨þÜ_^üѲœlq~°ƒ¬Ÿ†Zj$òVÖ1:ij^é1ƒ*éFrMðÝ]Ûet…Üwnœ”­scñ¯²¦çëQýÜB›Šž{Ùø“V#ÎïÂwæbý äúýÔMUÁùÆÚÖ_/ÚÏwÁÞ«×5RÐh©Žü=-æßY…]62áp×OìºõH?^œO®¤6·,ù=#~ß ”|÷¯é§cüJ¶<SÚìóCl­¯åy}c´ÓÿX¡«t9‘°\†¢á@Oüýû«ßÏêáP`yD¼<7\°ÐW%?‘nç¸êkd«Às{Á5ã¿ø£;`|Ǥ¨`óRéLêž²`à2G¥¸È¥G¼ÿþêA&ˆëö»’Åï~Kª¸H~k®ßÀöàùU5v'&:áßiðÏõ9ùâ¯W¼ • -i$¯& úZ7bÍú:‡X.òõÓ†òMñŠÉX9ž"/tã™8 Ýt¼¾`P– ®ä€¢úÖ•üu¿ùË•ÞÕu5]<©îÓKz‚Û6¤´.(ý‘z>¶Í ·¦×©J颥:èŒGT#343ß÷Áá<Çm¥ &rC\|*ÁNxõGEVlF&ìG Ñóš‰L0Zc’)†ë~Ý ï¯îëÀ‡®"9ä+,Îrý×Wv— ìJ꺻c.<üæˆ^ÖÇH?ÿÕeG­êƒf£ÜGéNÕ”ÒÇ…„õ’VRVúÈ6?ñ"e ¿èÿØÊHD'pùÜEòé.]O\Œp—\4¹êŽ»>.] ¿àÿÊJîú‚‹S]©€6 S1NC ŸÖ§õi}ZŸÖ§õiý¿²òRßr_ WUX~zj<®¼·œ+„.þyWR¶—ÅÅ…åîwÛÜ*j¼ä®¦Kë¸:®#(‰'ä„!º«ÃÿÊßMá2¹x® ÷é\7wÙ ¢häÂûw»Ì—Úg¶kéJðרcÿÞJçr廇;êî¸ ®;¿uÄæÉ]H‰"AR×w½j+µä©ïJ£ƒLø@¾?hçó¿\vÜ6‹Kƒgg¥ÆY)qôªÆÑ"2ÒUpm÷Œ^¶:D˪ÓÓò-,—ÎàB"¡Œ+ð?öU ›ÛÜ®®K)#ufÓ9ZPÛè<¹èzºò«×¾+ŽjLÍ¢su±Ú~‡®ŠûDHý‡Ö@f¤¯îÖ»†r]šè(‚# ñú>‘&î jÊãÂÚÓŸ/©­õ€&J4FŸJy)F~Èñ‡Õ€Ù>‰çæK6,¿LoKýY?×Ìh º†–›ò\à»Ú£©VÖœZE{¨ÝÑÙ9(NP ìêƒ<4,CV·þÚuÌšC› gýJKh# ¡v½_W½+Q´»fÐè~'P9­ë¯“ 3u¿vá·%Z<è+]ìÊsËŒúþû+h—ÏïçŠI,M®¥°o]åsk:Ý/Ïä‘Tá™Ôèã¾äÇ;Rk~°!¾Ð l@þÚÚO'k¶ |zôZ¦´XÿÁ•ÏÏèæ»¼òRZcÏìZFkj; ­ï$¾~CîÉ )­ñ‚ øF3íîõä‘C­tœŸœOê:¢b˜ÓϤªû’XjhÑþ+˜mŒ.””×åxy/¢:µ~ƒ´aõ¹Ü—Hv[ÞI|tò@*‚Mu¥¾#/VÓxZHǃ“Í´–¦Äzù¨°½Ñ3ý‘á”®–ëhÿîÊé3}_²ê¢º· ë¶áþ–¿î/³Ú.vëÛ@¾ÐYä¾ øû8Ð!2ÛÌë­eÐØdË–Ú„8G¾èO¥ðE Eü;+Ì-Öï&ÍÈãã±bSp>$ÒZ×¾ìzFbh.r@.ò øNÎYõò·ñÑŸëgÔѺ¼ˆjÇúvÕ×wèæ'½¤ŸétSðØõñ·V¤ïGUK’ E+ýRëáÝv ëçØ¶z8'‘Èñe°¼]˘èO¬üÞ¿â c*ðÿs2Å4µ.€)ȇU±ýÝ¡[`ïõ )1^ð} ý›+³gì½] ©'K%1Ü‚ˆ®¢è©€t ×€¥-"ÊâÃ5©¿*¦Y?§ŸY£3s´’¦D AÆnº˜X­[uÍ@UpÉชƒûÝ ×CÖø_Ö ¥,–­‡·?‘Xÿ²œ—¸DÂ`-OŒå{åÝÛ€Ž•ÉüɈ‰„ú­Ÿz*¡®÷ûQ:ÎPÏ_=±ŠwT’à8-+¾_ún·¼¡Æ±>÷¥Èfk$´·ë˜Þ]9#Á¿œjÝ ¢‘ƒ 5ñ“œÈü¥Ú~á’¬[Ã;”WuCúx~Ÿ Ë §ÍøÀYŸ¾óë¿^ ü±Œ/Ég_Ù‘ô½DÃîñt¶8ü•<ë ©H]\ÿä‹ 2Ô%΋ iñö÷p¢’‡œ×ÛGäS~$â§À†ârK†‡üˆ/ÌÅk I/X)JD­ßE’:ÄöDs) ¯×$,XV”ûBHsU.Êa1«ú}ÄŠ€ŸÁ‹ pŸ‚èØ+W%8™ }%ûÎà ê‘/ƒxUs0 18¸Šì±J:¢ïàñ±F wÍUåká­MÑ@°îš„á£àßqõ®ïùZ*ƒ§|WØ“r ŽÛN®Qý¿‘”xGÏ÷¡èä2 ìy„Oºjê£z .!Øô¿Oâ"ÃúæJm¼ú‰Æ«cú.À!õÞoþàwÃæ§MA›*Û}¿ëw’ §Ÿ‘ mvØF}åËR ô# .À¿ &WfsÉ\ Wœˆ=)YÈ÷‰÷ßåd-­¶·í‘ÿ¹ï‰uÜÊ£Ó² ~p‘G ‘/1“— ßò)¯ä7ê¦Þ3b)¾Ô¼ þX< 'z¨ŽWtÓÝúT– .i …wfýäÔ»ä3ª»ÚÔøïä:èO×Kòx<=ê÷ïìÆ ã{ÐÀNÙ‚GXo«o°v*ÞÓ)ãïÈ—¶Êæ`ÄðWF‡Æ/ ûù(¶S0Zé§Cu¶N×{º2XÌÂJOæ«â¶’ï’“» b§rª?ˆl^ vç'd‡n%6Ëjoo‰í ICHˆ\ñÁ@ñâ¯hê½ß#Oyæ5wvPK{ëϰÃñ:ny]¿—®ÞÙ=\Xp+<™½0:Èï9„'òÓ /#Í{9àe¾(kñü]üÜÊ¿£<ŠA¬¿•’ ß-yÁ-ë[ŸËóHü_ˆ²~¨ÉˆƒÔ€½ùÄDøEE¼¢/±Ó$ÐÂ;ëžÌõ–¨ú Q+økrýSǺ;°™GXù=vß(«ð?í‡Ü Kd:Y>ÿÎw…÷ڎϳ~ð{pðW?$ØÔÏ R~ B®©/A.š6(Œ¾ÿOÝ%v?øéNÖ¡(ß5=±,èc;²n•ãÄùFY†lÖÕyµïp°„ûÐéB’+“`ã· Ã1|â>^𛄇/<ö2|©+ÿ3•À.°?NÐLxÐi­(Y~¦,9<´Ûè'¶X×çNh"&¬Å&íCÞ•¾“Çvj"ëò²?ØEþß(C}_Ì¢º]I²Ù>^smCwyå <â%þË÷ó:Õ©%³“)Á1[“ ÏHý€MD%’BòbÁ¬ ÙTyŠß—äÄA(¸ÐïrÄ÷qX‹t{ùͺšÞáçb€GL"Ò›H"Pp«Ì÷»÷aÿßÈ ÿ=Y L(>(hsp2€¹É…eÀ™¢>þëë2×(àò'u×Éû7¤蔚èlÏ7ÍI$X¾KÞ²‰&ÖÏ`5ÞžóÊï% ¤—ü"u%%f¢©Sha Òïå¹çb½Ôc£Õ\|n|µ=Äy”¨k¨3tsÀdÄþ¶·'œg'é±zhâ9‚Z­g=ÐÞƒéÖè°B2’»Zñ7È\™(ýÑM=©rü@Ì-¢¡»° ‡í´ÝqIà~Máûå°{qíè;ÅÖ§N®ß¡çèAáÁQ(}"—Ã5wÑðô·~ò‡uðûˆÝžö‰Ñˆõñˆê§áíÁºãñ“>xÈvô³øI†È×Ò]ô÷ý_Šë8]„~6ù:á.\ø z-ŸnBe5É·âñt)@­F5\]³t/lBªÐöî*Þj]R•™üÄR·l˜Í±¸ªî'ãÍ#AŠ`ñ¬°ž(“½›Làq4¿'`¤Žá}wñþˆh`Z OÔ§F³¶~ ºZ&vN ™æ LÐ*=Ã¥u3Üy2ý±~†qAòü|[½BÜ?Û»ý í\ä÷©HÓ [~›¯ªge–ÇÀÙ`â¤~ô‚é† <ä=Éu/Ö¯DDE"›ÄRS–Â÷“óØzíuCº´\ ;ÇJ¿”ØpµÐÔ=Æ^ã¥Öçá£Äå›ÚT˜äºCDüaɬÍà0ƒõ[­ƒT[¸­!?ÆGn›rÓLë¦Öóã¡X‡»ìHŸvìÀѰ a_)tؘJs§„I{Pú?õÿ_ 6ÕÚf”„%ú#Ù!`¦»Èñ7Èèo`1æ·@øe`|ØL-¤m š}ƒGÛ¼”Ô÷?ᇠá¶61é ïÉÎß?C{ùiG³ûiˆUø™úŸzètOdWÐMá·€JI@ÿçDxd´c—ï€ñ+þ†×G„çÌGþTuð€o¾-òÖC›a{!º ÑdÝöfù½ w=†Böþ(Šu€k©5yCß9ØzA––Ý+‘Ñ•tÕe98×”¸ ¿IeGú~ »ð‚#|–õÚíõ±›ÏXƒ†ÃÈn£•ƒ2Æý@ù›º©®Lõß5õÞ)(#`í¨è¬««Í@œãû™ZÌÎØÿ¾|ŽüÖû¡+^ß.ô%Zh‚Úè)FT÷%Ÿ.öçwà ‹|'ü|â$*¹ô=^‘zÛÁ³g¸f7Ò pB­@òQ­íÂj›°÷xjûAè`º°À‹ÑÂ|îÇû£`o¥ v74À³™všŸûÚhe#>Þ Y­çÙ<}3’/÷“!—àõIà}±ÁÙÈÔ„vvDµ‡rú“s•@Àìn4yn#yù²ãô§ý´Ÿ^ÒXZIW?án R¬ÜŸÓ.J<¾¬Ÿ}Ñ¹í ˆ/ÑB{˜þQ48 „Û‡7s?ýŠõ]Ã2j2j²âfIoð8ûÆVn¢/‡ûœ*o–µë».“£Ï·“¥“´—&Ò?˜ã»_®Àfù¹†Ý­‹2ÿ׿¾ (X,ЂÇ6'p,¾r¹ }M&f–ƒu±‰1›%”‰¼‘LXGiªÁå®Z@åwn°·ûMR€Gauˆ—X7áµ?ƒcC½·üˆ gûž¾}ý¿­T{EÀÿ 俯ÑAnª¾¶ a}ü¡£Ž”ŽH¼„(™Fµ4Û[ÏÛäšQãÁ°"âÿ6y¤NÑâAW\ÛKïÜ*Wþ9UjÀJÂkHØÚJ¤]é;@ÿЇ¡… øñâ¹;òl“8R‰ ñ_ù‹Q5Õ†ÿÖÆêSM—4¼~è· Låõo%šæ@z›†žÙøë¤—é|íêòZ|V3ß •*úQÊ‚°ý)²ÜKü<‚¾&ûMƆ |g·þd€ârÁE†ñwÔ^dþÚDücªšØ¿.ñ?‰ø~΃'í÷ø÷+•eZ´T¼‹¯ÙðùƼ/$¯Þ,5ƒE¸6®Œ›"%4ßÊæÜ>Æbáñ;g÷î»?^!ã¸$ýd‡›%ã`>m@€š ùeP1<¸Që·é× Ä~?o-Ü1ùÚK‡¥þ/«ãÈíµ¥d Ý :ÀsÂÔߊÍ?{áye€ ? ò¬&ê× 7’JTɤ_õïØNnéç^?AŒ • ‚˜M†?Ás‹`8yA“=øÒ y„_I9^‘SÈ×zX*¸\žÕÞwÏ]}'Ñ‘:V*¢¡a²»ü4vG[¯oë?ŽhÈÂk¢éza€ôëmÚÕ(ª…UøM>¡{ñû;<{Ý”´š‡[hÝã'BoB£!ˆ´êÒR#h òOàW;¬0ØÅã[&§"Ë£vÃ~l7×÷{_æ»ÞÏõ³?WaÓSÜ6ƒpÖù¿;lw"(1†Ì0ÔÏDßÞm3®ž·ˆ%›¢e?ó¢ÓÚÄLk"åw¥+ˆÙR" ³oÿeutÙ\gs_ãÀàbõþœ—u¯_„Ï@kÉ³ÐÆîw uW8Ñnyæb¸g=KÁÈ9¼Ë¢ÿö·.É[ùÄ'Ô–é‘=5ÂjýAWiŒ “Z^‚Ç®2.¯+ý¯á¥çýäW«Òï «õu_‚\VÕŒ„ÍžHT\FúEÒI­ÂõxýÇûÏ}çð„ãÜo†læUÁƒT‰©·jrù*ТÿyÅwéÜ2É©±`)vÎ2Yí3}êç^Å“×"Ù"ßû.zXçÏ{ âÑm^;O:€ωìÙøŠÍ|Û…ÅO‰ñÉžC\@ú#r•G±4œ^%JQ)”Óu0à±Ò¸Ú.‡ü„¦FÞ”pùtTíáÐ@8ðl5è¾ÏžâYðF$?†<+ÁƒPzL6¿ÞÏEøIlöÙy4pÉ÷¡…ËXÿš<À“ìJáš‹ü‹¬Y/ç‚‹ýíÚßî”–§ŽM?¶Jç"Þ»ÇÛ5¬Ðfl Æ—ûη¯áÉ6Å2™0H—¡›­þ*¡µþÚéCdÌCþèÙ ^ýˆGU©z.ŠõQ.»rµÁ§ÿyj2@WŒÚ<-ò¼ÆÃçû*v6µóÜ3ÐÃv?Ór¾Ÿbçö÷Áå#‘/žâÕïñþ×øŠõûÞŽ~¶øëƒ.ã%§‘§Ÿ¤[ÍNÖÅZ\ iüke0A?[‰]WØ•¯t—§Y†ì#¨Ð¦ëãež>×Ï>A,Ešøük"Ú8“ÍL ]Cè] ûYÌ+¬Kþ-"á²ï º›ŸAØüþwÖj°á\Á¨ÿ}b—ØçúkV|ú=v[»†OO&¦íÈÝ\¢~™ˆ_oáï©íúF»º5¼> '¼¿ÂÁ¦^­Aú£r¸Ìý5^\¼I6G.§7ô®VýÁRùžËdüÍÁOƒv6íw1°ÊOp¹ˆÿÛUOËðïeü&dˆÈä‹]°ÿ~ªG´Cûé¿[|Æ;è§?Øõ iÁ”ÌDW2^S7à}:÷þ¯Wz—øÙU¦N K¿ögûmÚë$ìyÅÏq8á'»¬ß¡‘ˆx|xªÚd Æl?åÇ®ý§÷ÀÈC^SëÅ®² éµ%•O-<"ÿúë#½êZZä¿Z‰]ÛéNW _þ@îºä±nø•Žz(ž^óGÿíß2œ]™é3R!3Dâq~»ò÷¯:ìç>eVëׄط#†ý´¯îÖ¥’6ØíÍêjÀGJº–R[Å‚Ñ|„µØŸ ’‘Ê®°ÞñsPV!ßN|û$%R€ÿíõX˜¬–<˜/VïÆ_"Á¢*…5;÷“t»ÐÃøþS)OÅü:äå!dwÝÝRìžïm;`écb=¢vÕæªºÅŸ=ì§z­——DõS¹/ý´$ÑÂ#ÇfÐa1•Ч ’WפäÈ.DUS}Ä:=¥÷ùŸbZØ¿¹¾p)ˆƒ_ÝS©DžŽýê€q7Àz;oŸˆêh«g4§á3‰D…M5ˆè³aý…x±k#xŽSCj'åç8ÆÔºÿßÖ^Ú;XN?øÓÊGEÞÅ•—&TkÕñëþÿ¦W™˜ÈFòÒ¥Ž‰ÊïÏá¿Uý^×XÔ Ï‰‹=ä9›™)­íý^¹MØ}(ÚXªË@¾ÂR$Øíýú?«¦Ë+/ëê‰M5.‡}£ëɬõ‘?7xguÍalüœ¬C&‹åÏf÷,ö‚G=ßÍ2¤Ák²ò×ï´ž°š¿¯v—jÔ›-æßY%`ÃÈNS%»ÞÂó‘ *!eqnIõ<È·ˆH<·CâBj3°¾$ÚÙ›yví\”gTQ©z+¶Ï¥£©wæë·p…~|~É@‹øï¬<.º+æ¹åT°iüµJ¶¯¹´ßÛ|ÿ>ÄâyëtÞk'Àö‘@Çsä‡#p¾Sþª‘ è«6ñ>ƒ÷çJt—ș튣]oÿÖ*áÁ;w7ÝZi -34hfx^€h¸ß?u«âë%¼$ùŠ‘ûÍ3V/å1Œ7¨hã‡é@àWª»å2Z >5Ïß[å`ƒYÝQ÷Ñ­‡»åÕ ~÷wi풹'éýµ/á4xÐO;€¿ÃúŠp€pÈrÚSè(ì_VïSI$“ Áâhßl¥tñ]7OÞÃHOòÿçT7…ýñûê~:Ð~Ë¢=$«^GuÕŽ§"ß5âÑïbÝÀ¿Ñz:Ûï÷]#=¤˜«h¡þS+ u¥ûàF»¦rQÏkNòwm…¬³}V¥¯üñ=²$lÖÇé쨬EmÚsc¢¦ŠÎ¢~l,ã\©`1ëú?»&¸ñnžLÔEz‰üu7[— ñëÜ’êaYägAÿ@Ȩc¸ÕóWx¶!^àÃòÁ•uàÞsEZ»°øïyò^|ôРɇ`ážzLÏÂl;Áè÷êB²[¿Ë÷ þˆ´Âïë 9B Ýù`þ¿½2ÁÓ»®£›ãîºfxÀbýFSV¯!uv=NéêÚRp‚#º…GMñŒÞäÊmn¸kà+þ;–õlùÂåð=ÿòÈ ­”0¨RÔýš(è3~>‚çì#6ÂqÓ’ûÉC^]Lúϳ’â ±\×v›;¨sÐ ¤Þ3>-ýAú‹Ø°ë€¾”›®©‹Œ§\ý×WäKý’M†ésª¢ïu»¼s·¨‹ŽÀ³‘å»ò0üJ®P ¿êÿÐÊíjP!ª[?¾çÞëLiåËvwÜ5¡®TÑ?ð´“ÿØJ"|ëªÀ>HW$³kæ» Áð¨ÎÿÌŠç’¸n¢›çr’j%Ó|'ç§õi}ZŸÖ§õi}ZŸÖÿÎÊåRÄ2ü?2÷ɺÅ$u‘`¶ªÃ{³Så–qaÁ¥xœÒ¥r‰ü ÿ§V%8n ¤Í‡Å3»în¯ûÂEAâ®,+Ê¿rT>‰aÄ©¹ýs­’Ô6¥ýQñ˜H[o膻ü.9¿v)¥¿|)‘d³k‡|épKðÎ6ÿ=+ ’ĤêÍçw©ÎpÝe®L¦òíêªò\6ZòI|âwyoª²ÞusE\ pÁöU¤ Îþ‘•Nã²`UçBÈm¨_h]½&sý$ëÝkÛ¬C}¨Fº’¿î–sn-úÉêòÚßá]±a$XâòKO)©õµ­vÐJZ[ßITiï~q•5³Ñ®ÚTãjK]¨ó5\PÈ Îh¨›Lwq\[W-w<þû«è–žŸ7Ýq ¥c4)–·‰¾m±re-¤ƒ]y§í´•VÓ^ÜWÕœÚS×ëc]ª?ð¯œæ–ðx·ÈcÅ@ö þ¯~o@?Ó=¯~…d5,šŽÐ!²_®jžë¢ùWY³k3ŽŽºk?­t‹Ž–ø²ÂUþƒ©F†K†ßær‰¤ŽÒ²:À&:ë+ùÜŸó!1¶–Z ‡Í£éa¢?™fÓ:ºX?òšÉxŦ½uŽ“=p„àvÅ׿½ê`û¸`w1Njèmêµ'²+êky& Á:Õó’+[?GëzqKGj(dª³ñû ZŸÈ©ßë4M¢ç¤•Ä’!ÈŸþ1'«(¶Jvgq›]R=„G×ROë— ^(ÍHü§ÐÇFûji-‰§k蠙褎¦×䀺¼#¡ÆA¥5Š&Ò«²XÞ’-›üf¡ärõ‰ûžn©+$±uvë"áï±hk½#iˆ…´Ø×®‰L¡ßK)äDtØ«Šâmu~__Ó ûÛ寻Úñúhz ­6Ä«‚ó*×ùÂ-wƒ$2öþ<ËE^{)±üµ›…õ¶DÇþ•´&¾Øwðk®‚šéOd€,ü%ÚÙ¤«µ:ð#qð“Ðsü[@,\Ñ¤ÒˆØ ¾W¿¥Ï%w-Ý/RL¿F–¬øvE䌨Ŵ#2ÇÒëò\rà ÙÐF-ä «¥Èw u"²‡ã·ðù6à …ýýb£7öÿTŒÔHÁš S>Ä7 *o$/ÒVĬ³se͇m' Õõw¹$‰øÛ`Ý믂Ɋ~Æ sý£ÐÁDpb|,¹@_Ëås÷å |8Ÿ–€ãVA– @>§ùýn°(d¿Z<YŸI -ƒÿ·@ÒÄ÷or…ØøŸ_ƒf’“êúÙðÉß‚ŠßÁ†Eù$e;ý[+µ‹úU“~ø¾íÐkŒLåùiÝ’ëS±½-ÏÄöz[·‹×rQ®‰ðšÄè )Y®ŽŸ`WÉ â]iÑOe¢d·Cðƒ:Žl1N8˜˜é¿ ^ua¢?½›ãÁ㓽³r+Oô×Ç’mð»Þùµñݯ¾ð]~ŽH&XAMàõ©è-)•›ðþ00¡*øÁ5½ _΀/4å“W=ôguäÐÁlÿG.¸þM©Cd—å—ób¨u±Í}XØÎ)loòÇÁÚï¬ µ@P/7Y®:ùÁž%ñÐV µ}ŽŠæóËÉ#q©:é 4P Ï8OnIU\ºÿ;˜^rWש ³##ןù“ÂÜîʱއO|÷wëƒþXÂÏ\ Atÿo ”À+‚ÀÀ„ ¤u´‚ùñ„T ©Í“HI&hkÈL4„ z+•`YÁ¥"H㪸‰nª4åßÉ-±Žö£ñ„„Øõƒ\–üS|þŽX'Øó²mÄDâ’DIZß1<­Ÿ’’»'AoñÀƒb=/c‚)à„éð“6Tùý„¼š>¨šdpa-øŸW2ðè» Éñh»žç:σ‰m‹éG¬þ¶Ä{B¼”=dº{0Ä|è('þÒTïŽÎªcsÛ¦DÏ;üDù¼ÔëûÿQ¢â!%¬aqò%¹e›ÎÑÃp¡ZGZZxg=`K¹0XÓb{‚D#f­û÷¤;ˆÏ_FÞ»²[výnòÜ.¬9Åw<Ï{Š‚$·žGfëðøP¬ßå]lÿ”W‡Á"ñyu´+x:,`»à¿/Ç‘7hË`0ÿ!¡ç}Yĺ³/—”Ò›¥§óQëÙNöÓÈ|MìÇúǹßË£ù²ˆxN¦ÕËHœ\ çÐÇIy†§[oÃßñëü>98GO`õ…p CTãõdÓ•R*Ðâãý9]C÷P Âú£é@äªGf‹‡]/bû#¾wÅ1þ­ñ]MîâùÖÑnþ2QñFóž‚—yÝ^a]D#ý"*ø­H^éAœDœ§n‹G Ônx”ïÏk‰§ÕˆúUXÐz½‘HjQ^áÕýd‡%Èÿ‹ŸG3ÐÁ?Û# ­{ªÍ>0 Ø {xËs½%b‘bòèƒï_ Hè£/¶™?SØ^E¡â¨uq¹@&¨L–²~µÑü®Ïå²NÖâ —Éx«ÑÃNž±n'Éñ3d¶Ø¬€=<»mÝâ]¡ôÑþÇ‚Cæñ±žF™ 66A¿ÒÎäš/àÀRÂûïË;*™…Ôf«e,òç âQí-‚Ï¿–ȵùÖù~ž'ñ€m² û¯ïH ©Š_Lä¯sA†Ãóߣ©›ð¿ßÅú~Ù4±\È]Ž8(¢¥ýDÌT u©&’Š‚•ïâbÁRraï°×|?ãðwɯ¾Ë{Èm×À½èãiA报ê‡9ØÏ¨ [‹ßLCOÏy_B=Ç3¶ì-L:/Ùô[j¤mTŵ‚¶B ©ŒûZï[~OP˜ìŸã¢ã©ï`ô5°Ï¬{A¢Ã|cé òÞ5Ýö÷íôûÛbëD0l¡Š®! tÃê_#ÿ:¼Áfâħ›‚¿Ÿ^!}dßë1Û×Ô=HG¿d‡I‡!# äq:ÍÐ`)]&7ôLÌ–õÌ,sŸö“‘}<úˆÖÙÄÐ}=žÞ™*n!¹yòý^GÈHß!ê‘üŒv¶c×þóùEð?Uâ2bX?/79¿ÅE—Ÿ¡Ûîø@=)iŠ9üuË‹ÈZù±ÒC¾÷±9Ž×ÈõÖéâ4¿Ý' nûNëàÝa¯vn/‡à÷ÅÜæÊLÙ„üt Ùí0ÙÓæ?ñýpNzqÖïŠ|%Éi¨sƒ®¥Õö˜¿”Àî…NÌ­¨«ƒ´Æbl¦[jµ˜dõ²P&áóÆjŸKxÝ‹„Û༙Á­6:„Ÿu2^¿ÑwxýIÒPÓLFþàÈ>"hhh“cÖ€“;ñ¥;ä’/ˆwë˜NÔN—€9çý5[é]:7Õõõsâ€\/¤$ß*¦^B²Ýrßwû€ýU·bçE Þ{éÀ·ïHoG¸;ò?–AÚ_géT¼ã®˜ü‡ÑÕV8â3˜ÀVÞy¨íÏ E{sÑß"â‘+Ðc¡9±þCw;[Õ“ØŒD¼’až¿Üõùù÷ˆ†ùXr–¤DöÖÄnäÅ«?ðÎ8Tv½y®ÖÏ Ãy-ñ²ÞÀ_béäßDì÷=‚{ø:ÈŽš&€]è¾Ðü®Œ{îl:EVìöÁÏ©[¿[Í­ÓXY –ÇÁûú.¾#á…­ñÿoÉå]a±ßÚ`ùþ<€M7ƒo+yï ßçÚªeEîÁC¬7žõ¿O¯|'Ÿ“aߣ›,ZUº¸¯&]âoŸ»‹ÔÉôªÏóg‰ç}Øj¦Lö}›ãçÀw³ýBù^WÙ¿Ïwƒ57ÐöX¾þ<Šê¶˜Ú¬ÄãäÊc²Å#è!¼h8±›rÄwEÝÇsÇñ«‚IÒ9€}àj+õú>‡ ^xÄ^Šü‹á8k=ë™àû>ÍFŠ‘|ûb~¿¯ÍÁ© “)ŒìˆAW4bS0¾Ð_ýÑo]pl&Öf;Ûðž=ü\Ãm?¸æ;häÔØòeχ•wõÜc—‚ú}1õ̬Ç÷» ®CöáDÄß~,¯Kå'ƒ×j÷5Ñ·ܾCþ6:OØ„¼°¯u‚žÇ»ÇâISð™èźçÜ‚S<ò½­KÈx"0pë b/…ØQß¹H~ijü2JJlÝŸ{ëyÛG~öÜ— ÍrIäÏŒ7Å×[Âb žÄBOŽüµðÿq>ã]D+yõ<‚ü«|áÙÜNâ÷¨‹mzb:Ý/}z>¼˜àÞº§`øJ8Ë[ìršï:IzË÷Hÿtoù9œ|° -@нp& x}tÐ «×„Éô¦žëDL‚߯ÑmøÌ><Àú mÀk~À{æ¡Í5»&Q¨íçƒ}ÖÓÙ|ÁÐ{*ѱKBþ[ÒPçc»®`X-ª¹g`ÇuXÞW: þ7šLZ©­ÿåf¤^“<&A[ƒøìbÓ KÀJÁ~“ií`pDr@*¬þÿ|‚ö ål_ïÚUG‘Æú_Oá~¤Ô…ѯóWCöÓŠ†Jw Çxñéå¯tɪ?òê£ Àf¢>š°þY6%;œgÊQeÔÈ]+¸˜ŸÕÐeq1°û!òqb*c/ëágoAÄËØn/ùp•Ïþ‹¤ ¹»~ÿ=‘ü„[DtñèxYb‘‘Ù[!ÿN¼~ÝKLEÔìÄHZ?Ið²dä-ɵužT èì»YÍ\uwÇåÐ(`’â6ç;1•Ý#<÷ŒŸ½ÁóŸä±<2n¦)t#1ÙÇá-‹Ñ—õ W,ûÄÜÓßå'#†Áê©‘<£?ö[Ö÷- ?S?|¯M¤¡ËháYU] ×ÝEä[ÆÃ>·ñךK_×·|lßCSÄæ® ³oƒ½Þá&‹Ö#غ¯ðb #ì,Ðh°î¸ïŸ¾ßŸ,ƒôé5¾¦ƒïçÀÒky­£K´»nî×_®ìà_ gKmöqt-®I`·©ˆnñÌïÈrˆÌ7ùg—ykà‚÷·ø9£|¥° ”\‹6=Go ¨Kj|+ù>.‘PÀ_3ÿ¯LúŸ·sI]N7—º.)¹9¯ÆÂ û¹7ð…øöa?ùg¶Ÿð; Éçc÷IpMÒŽt„L?ÔwÇ·éð«ñˆud¾+hï,ÙT4Ñ’Û×Àj‘?žM[Ó?l\4—ÄU‘òd¤xÁyP?.8ø?­gÁƒ»~Â|ßû|ªX‡çq°À¡xËjBoî 1?Å÷þ´óä{ИõÁ»Ç+ó)7%šÆ@ÙÔ®"o¨?étbàn°é“0QJéu|þŒ÷x§wÀ‹ˆ›Ôéç|¶i6smzùc"Ï¥Ô@:ë=t\M4ØyÒS^þ ßO ÷ùͺF_—ðßt:ÉuXçþëݵtÉe$ÕxBtûò£ŸWx†Œ‚*užG¹ÅXvƒ?¢{Ö_ ²„Zè$ú ¥K|Õ4íìö@MÞ_ù”PøzAÐ44ÕÞ ¢!4Ì÷¶¼”dJÓ›a1Ün¸ë‚÷§€Ô&C[»M-R­›§Õ~'Àµõ` :Ëó¯å3}%vÍWTôeó~læór"Äf?n÷“ïö¡ƒLZ[‡#ÞC‘.Se–&'TÓÏ´D°È~¶âÀÃò»\ÔrÅ©k“¨çŽâ¯á §ÖÅ~VÿS 0…(˜WD§VégEÜDü[^ÆB'ÐÎzâÃXï)XÀyb!9<ñ=I‰^_À­'t² +¿ÿ³R»x®”›*•ÕÎõYõ²Ö_Ïb޾ܛÎý|jéÜæsÛŒüÙýŒlëpžEmþQ ´pn°ŒwoÅ “Nùë…®‚!7A–ôÚÈ+j ƒª¦\ë@‹ý+>,赫?{Ê÷ŸŽ—ÛœÄô\~g=÷?øù¯3ý‘°ƒxs:ȃ÷gôg Âaã˜pâ•~Rêj øÿlêÉI"é$ïÈGv-­]t‘]¬:d¥u%]OWŽÜô$ŸŽMÑføÉgóü¤¹žñ à ÖÃõæùI¾v}‹uþ¿Kå ~Ž*ÚŽ“Úü´½>ÞAþÛü¼ š¾I3t¼Ž‘/‚ÕàY\l;%_ÁÖÎa݇¾—ïìognöáËËý<7›ÿ´íÌáì|Á[ «¿ñêDþœá#?Ææ¯ÇÆãCÆ„º'ŽÚÄÏÏ}6ì«ôƒû&Ð"ÿÕJìÚ¸²n,è ßú1ß:.ß{yð2~ðÓagâÙÓÑà ØßH±³ü©>+xF÷œªéWl¿×Ï~Þ(Ö þòdžõ”%âkQõuÓ¡ºŸùÞ5´Àÿ×Êéê»Õî±dW›ÙsÄ ¥VçÄį“âåûñ)Ø×Îl-ÁÖÁ²ÃÓSÓCÒÔèáȱoY‹¾ÎPž'+ÆÖ®Hý-µ±uÞOŒíñ]#‚Û*î*ƒI±%¯F„õžävÑOÏ/NDV¼íÐJ,»ËcÀz¼$-ˆ–¿žZØk^’ýw?6ûú„Ÿ’šWäóæi{í¬-´£¾w©‚i/ÜòþÖP:­/@®MHzCr‚ )‰[›r´œ¸é캆í°ã”È–ÜO| ȦxÇ9Qµ+žmÖs(?í°̧“öö3â÷J…`Ûÿ½†«àj¹ÆÎfÄ€áìç/ÂñJjꋆ¥`ú1ðÍ&ØÃÔjWAÖ×ÓkQt° ½ü.UÑÇ—°^EoåÑd=ÍS ]¬Ë´ˆ4Æ} ¿&²º ® VK@Í~4³#õëµþÿ3¹ñ°Ÿjvš¨Î‰ŽÒÀ_Àæ3cßljŒÏ®}nH•ŸØ_ó™OÛ¢µx: ÉGëuNÛDŸJ#íC|ÔÒ,d„±pü¯ÑÕxO;Pó•¼p™eq ÅøV*ÃÂnŽkçn¹üÈ¿KRÉä€áLÓ‰:_{‘'ÛRá T»¦c=õMWÄó©Üƒ-P4U·IB¥TiäÚr«ÐÿȲÖ²¯+-d„?³ÝSÇkgí¢Õõš´peÝB¢´þ¤­µ¦ÖÒszUhî³±¬qãÁ‰êä¿´ò¸4ÎºÓ ts%·~¦É4VÕÚ×÷óŽ­µ üæ6¡‰¾¾Gj7ßߢƒîÑEºSñ[<$d1ZÊhaþ“«"–OCá–¸§²X["ó8à¯qäJŠu;j9Ý$­´²–EßëpÍ¡yt¾Ó1:G'ks<%´v“ò“û?*h¡þ«¾ŸÚå'ö'Ëäh«ßèLü>‰^”{’O ñ¨4v®ë;$÷Ðú}dÐâºO'i}mB$TCgiõŽ ‘ ¥M‹ îW~üËÊ¿–w‡\#É(Uñ뼚ËöÒFÃ:öhv$n˳£5 z¡¿!iwbÞæ£ØüƒxD^"ažnñÝ€ãè<æûœ)ÃËKþþèvHAä*¦1ñ÷ߥò×Ò÷BK†âõ‰5²¶“ï5aÐ m¡ù‰÷ÄàÃD}ˆ§Ó"º¬Ò$A.h§.ÔSòì¡@0?3P嵞Ñ>VËy­TJ»ò—ωöl¼ãªîFu}“Îâ=g@ÄÅ â=iç¯/ ŽÝÏÿ´’ùÙ] àxñÁó&Èž‰[dͨ_imd(©!õ´T#ÿDzk¸õ<»H—˜yï{žV&êGé\пŠnÐóz“ω¥÷ô•ÞGƒí¤Ò—]?½²Áñ㣃~î…ôÖ‘$ªÞ@&ë ˜“X_ÿ[’̦':é—ø…õ„ËLfˆâ»‡¯§¶üˆî%ü¦Ûô Ù£¶~!_Ûë`ÌóSÂçwK{ýŽï:ÆD§å‰DÏúàÛ$ÞÈ ×¥!˜—.¸ _è 3ÈCÝwh34VüÛ¦‡~¢ ð³€f–ÜÁ`×÷ßZɸev½¥™¼.–ˆ›àñWa½$¶N£%<9íY!¶ž‘BÄûS1|p‰¦ÔR:Ë÷ÅOŠéà…#ðûû|ÎHü@ƒ¶ÂCêX<-øeÂô~Ä.W ™›býòÚ‰œßÿ¶n–wÅv/G$úíú¯çÄùQ°8Ü/)Ü(ÖþIã’&m¹OG,äýVêY½ ŽnÕºŽOGtä–*.V Åý¿VZ)¯Û+Ýý5My´·ö'ƒ—âöAl/Ük,Z7K2¤-¯áñöäÁ!xCNXo|Øq< õA03aà ü¿˜°A72i{ 4J·SQ¯s¥6ÿ »âz#S²YµÎ®Å‰ôò«\—7DÀy¼ÛÁyJ(•ÝëÂjpÿ¹ÚÞéðÂD¾Çá[IË_óÅ𓌰ˆ˜hd¥¦ j¬)\Ã`ÑûûO+qŸÅÍs™À½  ÜòY?!ˆw]>p{*/¨ü_qÿV.Jdd24§¹á|ÉŒ©ßÞQOˆÁã·¼òD÷{Ÿi4ýü˜ft€¬X-¨ŒdsáÚùô/W.WÙµwwd0ž aÓDN~‹‡‚ÔúHùÁ†xh"2(wÿÏ=Ð3ó÷ÐüþAîK}á–žFôgWßÅ ´à^ñ]|¿UìSI€­§II|!¿Ž1Y"€÷Ê_#âõψ…tøwzîgâ$¾ïXÖA91Öí¯†Ä;¢ñoð›(äË*xV2Á:ꃺWŠ›=@©w:×uý<ƒÇØm=^ÿŽ[€ YïŠó“ ¬?à9ËÏ$úQR!Y:*ƒ¸ðüY#ûä Þ`aÏË9¿›ïWráQ žG£¢)AeœŒ ‹Ÿ§D'Ÿñ3&ÿH¶ü Þ$ðƒ¨¼²yq$ñÕ t&GŒ†#Ï×*dÜÀ¯äî+WÛEÒ#2U&â³U>=ò½ur{ßÛáyB~áßE<Àv€ü '~Šu« kb[‘26š‰¬Qø ¼ÆoÂã©AÇ>p æä•q æ<ݯ'¨‹‹jp@€T.®«é"HK<¿\7•ïëXxŽDu{Cî ñe¼³ìâ‘õu=Wlò].¡©ãÄ{nµ!1ýÔ—ˆøB8øÑKð"¬ uµãId·]­ñý×TÈWmž`08’Â%u#œu¦JƒÜå`>©‰é˜øôgzÂïß¾Š¿— ²Ù/û]ñGe¥œòþÕ¶ú‘v’߉Ù<ôÌ{ŸàûïAþÏÑΤ¿Ü­;u;Ö_ ~Ão%¤Q Å'úóº Õ6)ÛÉ¢¶—/¶ß©Ü!Ûý~¿CȼSöòûy´°ÕwùP=%!‰”DÈ{„x?|†ÇG‚%Ù¼,ë ò9¾l¨ ¦ÖÓÕúX÷À*P/W»k€OÁŠns9Ét“%;\¥"L5‰^"â+zHBÅsÄw>·žXÛýžÎÝ<²ó]¡ˆõ·Ô€UÔú|?ÄSNS'=•ÏÔú&_…ÿ¼Äâ ¡ÄxT^„T´ÕÔOÁ¸g*ðq`þ«af¹ÅÅ6ʼnÚ5XïŽ ÷=¡·Ê~Y"sÀ<ëx»Ÿ‘mxÀBbâ­äënŠM¼:.}_ÛËøÀpâ6¾ò+~P Ü«²4Cˆ±r¾ûu+=EÅØ@ÃÉ•>Ü·˜‹ÎwËÎ·É ÷Í¥·°`9P`7±¬:koÅ Ÿõ5:@øÕw‰œ$kÉ u°Ô”ºˆ×ÌñýN¬Äß=ú‰ÏéÁ¼æè¶Yµ²—ç¾9ÿKðoŽ.EþÄ”?‰+䯹õRß-EÜ;rú&øOþ—#çvä߉íMêÈZ[Ï í$~û?ï!-ñòn¼b¿]ñ^–8¹ïõd4<ø˜^”þl{çíXò~šr²diøWàV:¸Ïr׋çÆóëõí¿!—°õt¾û|™Íýbßûmq°‹×Ö…6ñÜ÷ϳ½¥#î{àïï‡ý*‘²Èω¹„.Ãøî/ÅŽ¦YU˜¨«-y¦H@ ·en«Œù³’¹#©1ý7HqÔ÷rší;‚Nó½w‘õR#~ Ï©;°å ßÕw¯šÊý^ù”¬¿Wž@'ëùÝ:…$.Ž!÷˜Ó}±ÝÒð…rDC]+%(½±Ÿä®¹"±D Øû±ÚÅâþˆ·ÞÏX|š4ÔÛ„ß—Òï}¯Ï³~æÃßíe*ÿ¬ÔªÇS2ÎOŠ8Êë—úÎ)ÖùüqÝŸ3ˆK$ä"öÛé´¸2ÀçCl&wQ÷=1„îŒõíø–³·NvSe4ÿc5“rrÍ&# ‡ÏM+Fùù£ä´0ž×“äüí¨ !wœöúiQ»È—»ñ†+ü•ý~ê:ö¿VÂ1OºjÅ¿”°Ÿºn-5]˜_c0)‘¯ô7cÝ Ò¯¾äç<ÍöÝ/aÿœ°–¾ÔnáøãñïåàÀù†¿f„Û¯æSÆ€ÿ'ÀË5àÁJ^±Öw:#vÔÜöÇÐ:–û:Zo˜Ð.`)É=œÍ¼yCÞ~îŸ$·ÏÁëÆ{j¿ñìN2ÿbÐpÒ$Áú­A€o¨âéCþ÷ÒÊOÔŽC%p^:éÏbg¹Jƒÿ³%µî§~=ã­ô4F¹Ó?ºL½ÙÛ÷ÿî=²¸«én»ØpØ1«§~Âá:Pp€Ïßá6 d2˜&ŒÆW†âÃ#ñõšjþ·ã)Ñ]}äoN^ޤ[ñþ#~Rà??`"ö_K<ƒiœ!‚È!•àÛ«ìýÎÕsµa°Øj<ÿr__düÜ3ù‡¡—)D¾uÿ^Š -‘&·Ÿv3…Ÿ1t¸¸ ¼ëƒ ¥àö{‰“õÈ¿°©gò¾~"Pdr_ÞuO¢ðh”þ(µnÿÆTÀå]b £¿“YŠßä__dŸNüöÅÿ‡Árçy-tÀ :Áÿúê`Øûn4µÚóäé>?VÒë 4·ÒK¼Ô›îõfŒjµE=¬^š¼—M“âC݃ŵ0¹]uw×e„XÍcó-Lúéò ïKÖ鯃ýWJ?do FœÄîƒÐÀ8â{¯ˆŽ.óŽ&Ⱥ”Ø_Ì¿¹|Î2t±ÉwÕ<+v}”])öNÓ¹Ï-<«¬KÊ¿ëĦÍåyA¬ÿˆ÷>;¿qLØ'æåV㌒d¿‚šW¯#Íé‚dÝÈ‘ûx͸èã{Þ·å§áßR±‰+ÑÃt>g?²Œmƒ4¦ò©¥e%psŸþrå@úe®~”¤p›úyžzÌL-N/aÁÙÈ7iW‚þ¯‘f!¾0/1™{ÿì½Ü•å²þ?3‹înxé~éîîniéVTLR”’îîîn‘FºKZ@©ÿ÷¾Ýûœ½ÏÙûìrÿÖrÿ¹×ç]¬æ™™k®™yb†¨éö¸=bÛá!¼:ßw@\J$=áó‰¥ a8QÀÍ×~›±2$‘†FGœtÔ€5å&™ydËin¾ùEiË41½ççWoÃv_£—¹>ž¹èö­Ÿ 4˜ i Z˜Ž6¾ôña½Ÿxt-€í7«ëüOºNv½Ÿ÷ûs©ªR9 %óolÑýJ!Ù$£¬ ‚¹3Žécò’qp42”ÈæŽáoD6—ýŒö“>]t×x?í¯£‰ÞhÄu‰ž ëm…G·’¤&Lìç½¹£ƒÉÌíOLÅ+‘?œìq?µW(¬ÔÀ¹dVs{½ïi1Û¥ÍAª;ëÉù=‚%§ùÚpµº©Ÿ®+â2þ†U¿×&Øô >±„¬ÆÃ×ùyÛ`ÂÓd %Õu@Ëj,-_n©-›¥Âú‡Ì™ a’A®J\»Åv6ÆžÁIÉÏöá»wõ‚ºŠnvçú½á“Áÿ·<{ˆ¤‹@Èmî‡ó™Õ¾Ê9œöÞÂÉó_ñÇ»ñ}ŒÕ»‘ùtóÓÅû†Œü餴|!°uK`7ÐÂ=bõ.ð=yÜL°ÜÜD¼ø°›ïå¦@,Á÷¾øæØLæÔŸ8•Ï9{`‘S¼žÑuÇ€cZ}+o¨ù¾¶äÎY´UýüueÇïI ‹eßë øó{l¿›†¶™Øö©]禠,õ}6ø£;7ðˆèþœä6-ü: užG¿›ð¼—ƒ 9¶eB~WëŸ%z&ÿÕ­‡µÑ¢!s\ß•²õ¯Áî3äw»«=Î#É8¿wªßÓ»Ÿ8E|¸Šg\׌HŸœö[áŽ&±-ðâz?ùq“Ï#[i?ë·†•1 Ü™Qõðÿ~6I[Jê` þ_+—4’­z /…Æ#‡¾ÏQ¯oGúÉ~þÍ^›Žý7‚ï˜vÅOIvYR˜ã±{åŽßC¼î_Çýõ‚æ¤"Úí;àž¥º,OÞ[¡å ‘é/¿®‚ò¾TÖ¥öHËZsä_ï÷a^B®Ùxù4¤Ÿâ{ÏóÓÐV€þL–lì×0ðýÂÏ÷ø¸B–y¦Ü'â½gM¬¹…«®KXG8 -ü7*D¢ß¯+? ð¶d…ǿձäwzÜ÷†4Ó±çtrüH7Ù&Ãûn‚]˜ï~ï²ÂÈîò¹ÙĆ%þ˜Ç23K ýÝ94)AÃçvÌX³: <¿¤•L䯳•'5låfž|âÝ>A×÷w2­âo¥Ÿ9ÉOvsçt&-׉tiAƒÛ{6œw¿òsS××KÞuÉo2Ùsä‹>fZ ­)Ƀ-ôŸ¬¬þÊœhÚÁê`­»ê&âºó¿Öø ÞûXâ³ȽÐïû‚ûÕ|* ÞœÌò£…[ØwŸ0œç:ƒÁ©°-ëe-ZèÌg[„Ü5¡9©‚ÊÈ—ZÃ\ãÈ`Ú]÷ñØŽwÑܞѹH¾€ø7ÝO‚=H„Kg,…Ý!²ýà{ÞÏEzWí®‚;Ï?Ÿk€‘ŽÜ¯±µ$n÷ïÕbà-´VZ)L` ö'òÿ'0Ù}ê¿ldA·ñá‹þx°Û³=X N '5…¥ÝªÆ‡Hë¦û.Aö­`çžÖÆÎ{ñ‘JþŒª¦þÑbö‘½o‘µ¤ä ¶Àÿkå zM^§b½I^‰m®€ýw cqþÝèáÌó`-H8´KÔMŒ‹ b¢ßRØC)7£ŸsÄ…ØÜeÑ"àû-ˆ.À'Éãék ·ûè)=Œ?—¬¢Èïls´£„RäÿÓUCš“Eé×´œå³kxx1?ë·„%´£0¡Û“áê;Ëùýy®Y‘<î,^»çoÂï³û«?Êð‘úÀM•zôÏ´·ì¦~ʲ[пººIePP Î D²ع‹UBþRäw£}•ÿŒ˜‚Z!:pçÉç÷fS45q`-xo•-Ž)¯F7OÉ”bÀú¥m¸5³ÚĽ¶Áòÿ\¯P ÷“`ÞÆj,=ÿ6&&¦æñ(\ç(™MjGê;wÍ,›OŽ˜×ŠÚAjß4öŽÕûéÐ_$Þs{SóŽý·HM)lÿÆ*RɉDÎRË×°oÉ×Ãí'O‰Œ‘`…dÝÁEI²à&ÖÞÜ’\Ôz×ÁÆ í Ó} nŠÂõ­­-¶Ãpà›xPÛ Îºÿ{—ëøPVÞ”:Ôï¹¾“ ¶vÈÿ„¸˜^«¦§‚øÈÝ—¿áÖ-ÐŒ,览“çàÃ>ö!¼Ñ‚lÿªý=6ÊöëQi2ÿÿ½²bÿÜÒTÞÔ¸H°ôýù°v&xà=äÜO–^üÀYÜÀ3ËKÆü:Øp×|Ä ßs³/ðÙ66HhßèrIæ{ý>–;/®5áÛ``øwW7¥'‹/B{›o“ Ÿ†×+ÚÛ‚´îÌ׿Hi 󧳜|çu"^ûJ_Óý°jáßônå’pr´nrAFûû>X» Þ\.+Cä‹;ô!ª &·ËGLa ÁÆ+Ô÷ÍÐÈ+øÆ ¢~›¡“àÔì!t½ßß»ÊJ-bÁ«ÄÃÚøÁ`ü 69QïS,œV<‰g7µž°¼ø ¯¤¹ëcWØ)›nºÃIl¾T"èçyÿs+8(+dq¾¶ËÞEý?;1±+ÞŸ€û©ä ÑÄ4Þm‡Ÿ<·Öƒh¯8 îC7ßùÛ«’”’0é)uÕMƒé ŸoµeøxKd3ì¿Ö†ñ<¯¸NÄë¦ïòjc[­µ‚E¿÷~háä,5%½Ü1T³5üYŒ›üUÏÃì'¤ÝÖØxx°&L¸É:é&¢æºV¢êR'ì¶’XúH&íL|_j13ì+üü˜E lÇÊÛJì€Ú6¡›ñ®?Hwiâ™î?ºÒKUd Sô5%pÄÆÚ5ÛK®wÌn;Þñ±õÒö²¹ÛþYþO—ã‚ä’(xÏFºÂ,æ ¼¡}´µíÖ=ÒÌ¡FÈÏxúçWe0IÖIOHìOhÇõSIh›AGTí%1¤.ï¦ öFþ[WaPQÁ‡£ðˆ§Øúgi"E%T¡ÙÛå·^9³ˆT'«I. ©h+!yÂ`oÔËõr½\/×Ëõr½\/×Ëõrý?Xy©x~ïûxþùU^rqË/9%¥„{cþ­+«GÒÜHš‰úÏɉ¨UyV†š¸Š”ôû9£…ÿÌ•ÁŸ%&ɨû*ȇÒWêË©Eå×GÆÉrˆôÑ%³¤÷{Œ+I)(µ%4ÎpÿWWF?ÙÉ5EbhzMªûå0?EÚƒÿ"ú¦.Ôã:A£“ÈÒ•W[#{Ii.­BôL¿e”’ )zI?ÙŽÅÑÉö¶]× ÒP>Uä˜vó}ÚB›§±´ŸÌ‘µÒM:ÉûÒA^ ¶ÿÒÊ(I$-(~I¿“Wô²·zö¹M´KšE_•7e–~h_Xcëê»GËtœîÔ¦úL6ÈFiú» XŽË ¾‚êëÒ„ç´·¬°¥ô}kXm;.¯Ë6{ÍÆ£í3«cØP›g¯Û+VÕk PÒNJÿ.} 6 –dzÛ:9¢l„ ´•ÖÔX*‹gÍ-· °›zEöÛH=Ì:Û$Ëkl‰íµ1ö.Ï[Ø-«÷å-ôXJš[ h¥‡ÉóK5¹!Mµ½Åì³NÖÔçA¦Zßšø£“l£6·6ÜfZuǺÛ:Û |À§?å•h¶4ò1£æïf&n2™t`;žÖŠö1òUA¾ÁÖÊw{Èe…,ƒ5ÂÚãm&°om¶³´– ÿ¸fßã @Å<›l}mZÚ¡ƒ¥*\øû˜žÙ³ÈH) µ4rĪíØ­“Å·¨VÂ\ß»®–Ù&X=bß¡—r–D¤Æ?ÖX„À'Vüo´“xLGÛŽæŽê1âÁÛà ´W ²¹äyoHeݦi±¢;)ò5µ±ÖÎ÷º+m—‰x#ÌuÚ¬m¹oÆk®Óq64ñ‰­°Õæ®"øh1Ù~ÔaV Ð׊j!r‚úÁñÿX‰‰é…àüÔÒDZQ¼¼º1wS›f[­¡¹¾·l­VCÚ|"¯íÖŽ6¹ßÕþ]¤?`ßXE¼âcÛa¥x< P)0ÔÌ!G,F<ÕUéÝ>”Nä8#CR{ ßÅFÎá¶(÷H#€{´ÒÇÇò-l/º`£ñôèc± ±göÐf€˜îDÄOLle̶eÄ: g¶˜e僟Ýt³‡RŸb]ˆqEñw±ÓÉŠ#K=°ìúýþ¤ð~µQÈÔÕ_13Y[ÿw‰ï’½†T±E ¡‡Í% ð]:Zj­ƒü¡y|0¼—O&KZûŠÛ[Öä—‚ÉâÚ àïcó'zS ƒ‹¾+~2¡mÚÅjÿÀ ‘±7ZËh1Íu9[I Ø`¬èØaqÅ%ì_?†ÞÊFŽRÚ%;Ökî9ï}Ëßeâï| .6Îi®«ae?Ýá‚ ’¾†Gt&,ˆäÙˆ ã­'Q07؈céðü±üÍá×vÙ‹¸„.ºÚzØ5Ô®þpç»eógzEþZز%ߨÂw‰Í@|>²þb à¬ïàòL/hRráºv\]ü4–´T… ߣÊjá Ç]õØŸ)C>üÄžÛ1{•\ y ”å’àv½ûß+‡$—Üäºç5:^ü*’Ö"‚¶<>Š]Õ‡Äül°Á÷x@ž»k:ZúN>5ÀE#,žØ±Þ_ qç{7†#²€Œt0áòÂn0ÂGøIá@6í$ñƒ-òŸ­¬lOCÙ¨=ˆíI¡ [îúŠÝ†ñb˜›~ðwžè9ýQŸhb"^ôôîD¾üð}NrÀü›‚,1;¼ñ UPVslQ †HŒW-%#geaIøZ0ûÞýùÊJ÷Š<“QXªøía_ã³°fSª½'>‹ æSRùD2×'ÃñÔ YÛƒ„Äpc˜ÀqFÔ?x‚;z’§ r–7xu$8ÇnY¯@‡@s-2Ó\ÜÂÄ¾âø®›êÖÛ~§¾……ß"î™ïcízZ;=D §‰á–í¸3à+áÿeÑFzHfÉÑ@LÞ{•ד€ýbh ?þ1ÈOƒIcû-w`?z%õBæúߜ䥵[“¬& ²¥Äÿ» ßcmȶ lþf¸¬®7èý ïÏE½Ó,©‚ŸŒW—¼'1•ñMã™n^‚rŸÀ÷…ÏL° 8nkùÛL%ÝÕÚh³9/4;y_WyE[c­0P~QÕÎëUXÏï^¼G°‹Ä½õ^Ö[ºCÓ£Ÿ" ã׉Ű­ëêߨ_Ù|GãñÚ ¸"b¢À#ù-¼7OÍBúu~Îl¾¿& ßMƒvÜÔƒ(ö³FCþR|ª ŸO ÊòÙÏÉ—“/´Ó·BâˆAb©+e4ñn6Þ›•8•ôçñ§t¥ïä{NOêw¾«ç1´p×~ ×õê€øGnpÐéóã/‰øv~'%Hº…Ï$C•‰ÃÉ~«¦6Ôûm‹e LÑÙ /ØËe½Ed¦…£ªñÜöæÀ³ë"×5|ÝÉ}X·cûmH︡ûÁÆVôð„Ü?¹Q¼½ øOZÒ€Š0 ƒ ¢ò{q‘y™àûœr mÂöÛì"Ù6æ?¸§µe v+BF“Ð{mBЛÒîêQäÞ {‘wnÖ5H|O¸ê{»mà•-TÉÑÀII;¤±Àû]uÓOžk6‹á»è%@úÌøR7ò„†äÀg© ·ÙnüuÂy‹ª]ƒ-¾d”š²Crà¥e°â ,ü\;Ë=A>×õÿ0°-lÇð‰¼zÌË?OÝ,T—óœDW—ô6ubäw³‚žé#x"-ï&OÿEÈ?—,¡¼:–k-ÑVA¯“ûhwb_ ¶6-‘NÁu鉅 /êBßÏÂuöÙ†>Îécü~?ÚpÝ6 e^x¯òÒˆ !.Qð!z¸†擑Т˜"â.£Lí»ÿ·µ VVHgéƒ> -­“ZÞ/‚\å×Êwgi»´>¼Tçúî¥nþÅaäÿž›ëo²“úç±.?Q/ ¼w›øèº{?EæŸñƒûàá8zpóbŸÀ„×ø„›¦“ ,Lµ=dƒ]`ÁzAî‚Q€[SùÉÞ×YXúGMFŒ*CÖ… îðW|oñýܯúÎ>.¬Ô© < Œ—®È [\ôÓAò™Xðæc4q LìõÏkÀï;H³¤€š]<o î>á´ðgé¬y´ Ös3KNë.ä;‡õ • ºI—qÛ¥ËAÀr仿ya÷núÅbí¢•íœïìIïªë|–¿#KÐ×&~ë&¯þ¬àŽ9DFqRݾÙh-¸ýÏÝ5‰[¤´¡ªïþÉ`®ÓÃv,¼Iö'èú)÷K}O‡u`ø’/â™ë ßÚ£¹h6–ç È.ñþÏèè4:ØÊ§—Àœ[|?è3DΧ<ºÂ;÷t·ï„ØÛ~Ôàö@ÊIìÛ#s´.Q?’÷³þ~ñÖ:‡—OÖñ:RßÕn:†Ç³u:ò|Gõw¯p½p‡€ŠõMžO„#7 £ó‘Ûü{ OÙ"Üä”­|g‡.BD¥r(FŽØù Ú§lþ¯(sÅíá½CMó#Ü•‹Z6.ìwÜw{˜¡ƒõ+€|sÅõ2Þ¢µì²-“AÉH JFñl¶þøz’¿àe¾Îôqó€›çÔÕÕ`Lw%åhÛ­'‚Ü'ü×KNƒÙ,ä(Y‰xUýµ¬×°ÛjäûFiýÀ÷¿]D#aˆUd±«xÇõ@ 2fê×: =ÍDc‡ÑÌ~=¾âZžÁŸŽúÎ"…ɇò’+‚e—Û8dù3‘û¶Ã*õül¶hö¾Þæû7º~_SðýOÐÁ8ßÓv 2Ø,WÂÜÄ ×Êõs½ '{>Xï§cíð="vø¨¹Üg ›üL¼Ô€YA× Mf/Ô0ÉDùSPùwÇÈñ©s/â©kÀìl䚨nºë×GGóÚÏå£5¹õ··ˆÞém2˜Ÿç;[©ÃùÎXoEGë¸ÿuÀ^¾ç& l†=·ñÛ¬y“þm4ñ½Mt{ɃzÅLjðÿ†,µ]¿V7Ág6t“}†`ÍÈþ¾~ ºû` Àû)íA5ó:X®½ÐÒ*Þ›…/|á1²™ƒ®Öyìƒ1&r[Äoïö³p®“1º¹¹9É«7ß×¼’>ˆò»£>Ãe‡F¶Øg ÷åÉüÛGßùŸ"áP$seç —/´‘}I÷1™áHìîzû÷ó‚§ø.Ø»á‰Ý¾jtó?fÞ#ÐÌD0°ù—‚†­~.T<Ø¿¾ÑLAž™^>“Y ò Qy8Ñì}¤~œ¦ÛÝô‚ýÞGR‡õøx'ÍúÝѾ¥¾+ü$l?­ õ“.¶âk‘t>Ÿuݱ\–0•Ût2£ä>5:õòc"¬;¶<Æ’ÿwZ"é ¥´)òïÅJCÑÛÚ9 `0vÄ}Gì: _w}Ÿ¦ég°ØPÐßÑ6Àn¶Átþý†ï}Ë·Nƒ ‰|Îuž…ÏÏÃo¦û ÕNE«KmQÜÏ‘OOÜÓ6ýü°‚ÒPHsSÝÜ” ׳ð„Ÿy²ÈwÿÿL¸é';}üOæUs3¢[›ëg?’÷û¡H¿Y=õŒ·ÓO¿qlº€×7âaé­†Ÿ/Zös²…lóu vä2R]6ˆÛ«yœm>F.û‚ƒø?f’ñ ó>'ú}…t£¸ äßž¼ '°IÈãº!ºÜ×å‰C‘t­Ÿ˜»͸‘kýÜ'×Q~<<1 lcGÈ ¢áÜ6ÊöIWilñýqïóò®=§²ÙBÜr3€¾Â†ØþÍÈëf˜¹¹ 3`„ÑÈóˆ(¾ 6˜åk 7ÐÉXäŸÈ'×!Ý*¤ë翸úo›ïìr$7)í‚f²02ÌÛ°Aþ¿àæ>\U‰íå.Û´¹ú‘ÍE†[l¥›û¾¹†úÙ3=âçáÅKx>ˆ¨è^ïÄÍuütýÑ]Ï×ÍȼÆç .÷_è;;<¬æñQ­oTöýòÂ­Ö ‰c€u%­t‘ä«ÿ]ßçô• ÈgÅÐIð}ýq5”:²IÜo)숟úsA#Z|sgúíòûyÆcÛÙÈ·-ÌÃÎû¹ØKÑ×]^‹H-ü˜˜æ÷ý:%ý0®kd-rþr伃Èxzò?´à™›ý¹RS[ìÿZu%”'®`›4».•&ðÕR¤pû*΃ëÑ~ŽËþÖq›MŽ07ÙׯHœˆE-8ˆw7û®¸ëýþŸ}ä-±5BÚ4Èý SOëoß’÷œ²Bv.$Ž}ÿºŠH¢À8¤r×0‘TT}n/Î*l¹»þ*ù7÷«@þMr !h暦²ØÈÿý,Âo¢šCËRŸù¹}ß©¬XwG„Ý„GšÌ’•°ùR8ØbÿÉJ—ÑÛ¶Çn"ñ°Û.ÃäëɆzaÿ¹>‡›Ž¸ 0GÈ–ól>~ÑOˆ9„îÎ’1žöG Vðy7×uÊ®õ­ ŒWßÊâùW4?¶¯N0_‚ì÷¿W©F¸ÈÚ»le2{€„ðû‰àzˆ¯Çòèkàú¯ÂûK"ïugÇeòçÉE&^ÞÔ+heñb®ï‘¾ 0«CLiJDqgR½ÐND€ôäeCêÈ4DÀÌÒØ¦Ùðú“V&;ß £OðÕÏ$]–ùã3=Æ£[t†}Ë3ù³SòŠ« ¾¥fšèó¤epcL8°>ßø‘;7ššA¦Ù2¤ºA&“LR\&bÕ¼ö ±:§mcû§ùýW3á|·ÿ6²]E¢ETßðú lÿŽLM÷j 0îf&G?cõ-t¶Ä÷_ɧàíÍ`¿Ê–ŠH˜ÊšÛÏvKZJ­` ýg«º¼*×¥-Q:,u ]¿owp%2O§®‰•Ï€ìmäD³‘syÎuç9%$[tgŠÎ÷ûù‰Ønß¸Û ú½Þ+)È­Jú3„RÛ«è)IHuÿw+Ÿ”# z®MˆY'±÷ d»Dt?ægw'–E·‹Ôƒkà…)Dºsþl—˜ Ã_¦û\y¼Ÿ•·˜÷®ù8¸OÃw¾’5µ7ÜyÁJ³/þ¸ÜõÝ ä|˜œÝÍ¿y„tîH˜›g{&»KFpéÖÀkÈ~kFˆ÷ÿäç=/$NL'+ŒåÁ„YaÒ“äˆ iü5qølqû^†àùïîŠÇÊTÂñ‰|ˆU)ÙzÃ[/yßÅŠÇ©†ËS¹³N€é ÔÇ`µhÔ‰Ça…‰ÄÊY~_ÏL˜?">QÆ8®é@ÿ]¢DMkMþÓÆòj¥í—ð¾•w¤¸§J- §¥F²0?½i#Lp{Ÿ#^ª,#}KÓ+ÝD{·ÏØÍ»Ÿ Z&ƒŽ£š’¼¯*uÄíiïûë¦jØQ[ÉkR2Ø¢þ•U\JË>Y¢©ÏÓ°Õg‘#=¹KÀ¶à§¨Ýù;Èû ¯O[æD²TÄô$0àØq=¬—)ݹÿî,úŸµƒ-#®¶Àúµø•½ÒA>¶˜uµ„_•Ë’ÏÚÁÕwa¹T0W',½ÝOvsû÷wã ¨–óúÉÕ5øpÕó)¸qïå$Ã+Œ§÷Â_îñ¬§Ÿv?ÚÆéZ²ëPôýÿ^¥©„ºKíbsÈ[bb߯¬!2^…á.wú©¶÷µ y|ubZ;ø,–…s+ J‘ù'‚9ˆòm¢Ÿ}÷TK[+LY;Ê›R3Ø"þ•“zx5Õ@>û’mnbˆØ‰p[5yñ9¼û{òžVÅJÃÍñ’}ÄŠNhÉÍ´>'V&SÈa݈xåa€˜Äˆ\hâº>¤Î®lñþŽ•[RsÛ!íC?¹È]åðd»ë ´›Ѥ ¿3ò r>%&¦†/²-«ëùß ôg ×-Bä/lûm‚ý¢eu´4¢Êý•šl¸Š”D¸ìØ9žŸŒ·.ŒO¸ówž‘ fA/l¼­§¶‰ 2’×ɚ¢"óhjÜÄdÒÝl¤M·!v@ûhc|«a°Eû;WùizyOòêp]“lÀÈóÜ•oåÌÿ*„¥ŸýêØëö€Ûõeìc»flXàd`«Î–¥õd¥ÚÇû¯®¢ò©\’ݲ[ר^“Àad?½/ÙV¼} 97 Ö<Ò”,/´öný6«Œ –} öîÚwv„Êî¼ÞÂã*ã󪱩Âÿ¼þ/¯RLê¹3&È YªÀB۪儭±o´’ž„é³þÇvüã*.%‰ç§¤—¾J¦ÙÅ,§6Cö¼ÿ?Þ­´à µ”ÒQV€õ-È™|1¸grþ¿]9ÉŒKg2Û´RƒL94®e~¹^®—ëåz¹^®—ëåz¹^®—ëß»2Q ¦ ‘^Nÿî•PK\‰)Iÿð|5Pb? ×CðûùüûV>‰'‰$õ)(¯ÉÒ^?”’B*IêþÌ`ÀU…ey7´qÿ3+‡„ù©Øµe„¼#Ýä )'Ï¥§–!r\ŽòïVÞ­Æûe¥ˆÔ”Šâz›Ô öfÿ+èN'Ù¥h%ód„?·­¾–Õò²ô×s_×ÓÚZ—ËEùFÞ•|ÚÍI¬--ƒ½ùÿÒªì÷eô@ ä5Ý£4™}d1mŒ´ )%¾Í´VÖÚØ‡öTçëI©­áºW>GÅ~ÇsPkJy]C:ÉtY&‘ݵáÖÞÊYj{¨Å¬„Ò~¼÷Ž®´˜ÅÖÃÞ±¢à ¡ÝÒXVÜNiZ!á‹Ð¹ÎáY™‘½(žÜI®ÊVW¿‡ró[¡r¥Ïß¿Rúã^c$¦ÕúÈ÷ ’õ±W°o!»~Y}í k§Óí-fáÖßOØf?Úq›b+m¡-°ÖvB“èXôØBšHh\íö÷­Ì’Œ¨¶Ršj ûʆX5Ð=éÊÛsMcû4¯ï:É&hÆ@ŽÀdtPןåÿ±Ý³S|c­³ hbª¥±ÒMÖ'.ü^ŽŠdöQ~¥|¬fµ­#ì–Ý:Ûd®dQðíªàü˜µ´ƒðÝj°ÑŸè„?Tà6ͮ۞¯¶x̾ûñ!Ö—,¿‹£ÕˆÚq°þé­ñí]$vç÷ÕÛk¬-÷±ñ'`¡±EÅ#*ÙjíÎÛ*[j­¬&º˜ ò«Úx»dÑ©í–m ô¶óÒƒ8êÈ.yÉÝŠI_Y¡ðòÖ–Ó®ir«¦áÿé}—×ÁV…×ë ºEÏâÃmŽÍ³Z0á tqÈzYoÛD\\Ë}â@¹@¬Àx "º å³`òJ6x¯6Y]B;bûÀrGX-%À³ÛÀhîlÆçšÄW ¶´ÏÌu…Šgt°7É *Ú}|b·Ã:Ùëèl¬íç{¬\ÀË´/HB}Ÿÿç*OŽS@ÚÉb=n‹°ä[Øñ¤ÈkÉÁ~7Ëo÷õg-‹§»çåàƒi– ”Ô³Ó¶O¯kßÙF?§½•´Òðæ {jI»ìŒµ|ûi-Ñ‚-æ_Ya¨²ÒVúiìçú:7²÷ì}ä/å}ýtÆ£ò¼âú›·ÁÓ‡[.¼ ͇ë«Y3ð¾/ÉgEàâ â"¬qŒO å“Ùy1­ “9Ø¢þÅå&øå“Qº9ÇÚ«àû+X­-ØŽkf]¬ë™Z6$t½Þ[xà©V†Š`uwžó*>Õ“hÑÌ&“ÕÑÑäGý‰±Ùø0°@óQM„^}XùÛÈL™NT¯hYà¸OAü <¿Å°ˆ¼R©Þ´5òý¨îJƨöu@Sä‹a9,:Ïfa÷z|¶«m`‰|hç3‹ÈxlW¬B Ià'ª†´Á÷¬Ì0~i(wô+pÜÒ\–6þ:m×åùg‹Ý3’ó6µÛz]¯Â74Þ0Ôâó‰w‘=ž%ãó#©ŠùÎèËm;Yp;ß }ªIàña üxÒžh2Â`÷=ýó•VâQï\‘9øû«6ÞKu#Àü‰¸¤¿¨ðØ]¿ Ü×;z‘H‹øF¬oHN\T$#¬ŒÎJòúh4°O)þGƒ‹°é øa·e¶•°`º`‹üg+ Öï(`ð¾°Z}ä©Ã…!{dXÛ@y¶ÛÌ]ÉÙÎë)0à®þhŽFÊ€ZÈ_fHc¨ŽªÛç¶„ò9Ú¨kG§uñ¦ X·šÄW¡²ÒJ 2“ : Öµ+ ÿG`¹=¾ÿD]÷Þ¸X?)~ÎY}¬ñ`‰R~æSnïÁz¯#§›wáfcM$j€6²ðKUÐB"å›kWABšÀK¬µ¤DÈœ& $•¤û%,Vm‹»óÙšcË`?Ö¸—õ¡F¶Ôúݱj¤ c%V”†có—ÖÀ{5ˆ-øK†§ý/#çØC‹8jßøÉ‚¡°òI8¾?MÞ£-á°8È ;~Žuã¿ ¯ëè|E/Á{?h"+€¬nöG'tPÔÏwq¬ŸÍ=Ñ|£(±ïubèD²à†üZY¢Ávrã=dGì¦#O©Ÿ„D÷wío6i)?ëp|5œ­MÓßÅÎ57¿¢Èr]7Ï~ß×yMž²áõ4'™azçá9ÀÊCuWº¦æq=ü½¯¿& £†M £ÑÁdÕÐÅp2æê6[š¹÷߯+!H&n‚ÙhKˆ4Ã^EÉpöèQßËÕõ3>¦Ût±.âÙ9µSj< ¦=Ö¤Xý¢:­}r"Ú=M>²sˈäù`Ã(DƬþZºZö6^2ͦÛQÛÆãgR¿ öJ.‰¨{’ij× T°³ðýÖX§¢=÷}\wañt¿nÕµº¸†7DCú0"£›p”ÿȃ„®ox*ÐRÀ’€Žb¾—l s|™’Oº½#É>¡.^h¸¿k?iöÿ:޼•Œ¼?ªôÕdloØ¿yWbv»¬ÛÁ½›|°Lwøëÿ7è=bár¿û Saåø|«12)^Ç÷6p^Ò‚Ÿ¤ )’Ÿ ”žØe³áÀÛ¶’ìâ3þRu+ÜÌ¿¹RæúQ¿S7í.Š=Ó'H¾›¥¾_ª tò/á•Ûê®wUïSuòã‚ì0ø 5Èwsò,"zˆN´p׉=âÕGè¬ ð6|Ø ÍÖ%cê3l±Rü«ÁÁÂsôm;­gu#ÿB£ÃöBäo7°þnÛt3~°KÏ`÷»ÜŽ«»Îë(ÏR‘ ¤ù9Ñßuum#‚…DÜŸ÷:r½âë-Þ‰ ¢€˜Ö0Ì›d‚uˆšsµ•Ä ²üÐÀc­‚Åš€ý¬x¥š›ôsOŽnst£ï†¾Ïw´>νëí³›ûÜnPû]/ávTÜÃþ»Ffô¹Ý'¯òšëÍ]ןÐB5[`§‰‚îºÂ¯áÄ*A¿<Ÿ¤‘”p~ë n?Ózú¡NÕÞÚ‚XÏ÷y_î»Z@žÝžÆŽŸ€–|pa˜¿:ð¼â®^ë‰íŸ‘rœôc;žµ‡ç—ALrA&4Ï®“~aŸ}XVj1õ5«ëbâz¼MAÚ3¾“å.ƒ–ú>ž«x/òBšüÍFÒ«ÔÀÕÍsâ.)Nk {Šf®áMg×] ï:Cl&rlã•#|ÂMЭIvÔ,tÖÆA–?‡tVÄOzÊ›¥¢¾yÌÖîG [tšïå3F'ûÜÌ'Ív4qB'ù«áX[í¦5ù"qâ8ïþnq»ê{ßmÃ{Ö™ ÿ(‘3³ß·‡Ü¡ &¡ñA–ÿÙ)©÷ ’§<ñ a©ÈTü;‰vë±òá{¾­@棼vÔÇ…-¼¶ ´¶¨‰ûyDH‡ð% ÿvw±ÐOMÙêµõlxZÃÈ™[‘ ¼EÎ܆*á5§yƒ,y$ÕˆSñí¾YÞwªbÚ^$؆ý]—ÿ)``!–t¯¸þŽÛá„):]¿&F×çRÔzúþ–[ÿ4ÜwÅ3Äv¾±½m ûýܤÂö1±¯F;§µ}¡‡ƒÜÿ^¤Ž,"÷ý^ Qõæð“­ÃÀÿ¶xž®3õ[ßÕl²,A¢ýðÁQÐñ-¸èFJjc$î„V¦€’]xÎ}ì‚wöó¹¥hê;Xà¤:¯Ê‚åûÀkí$uã\Ë©ã‚~L,•,ò´:Ô²Ž»Ý<£‡~^Ã;]Ç!ç}WøNÖG½/Æÿ¿Ò/ñ7c ñb¡ï µŽ÷îâëûÐÄNø` Û¡±~"e$ÐUÚJ’4‚ýöS Õ`Ï…#ì Žcàÿ—át#cÁ6é,¢Á@ÏŸëá>Sçá ý,›ÔæÐ>B?çïc|c·)¼¿ÕsÂyäÞês¦u¾oÜZxäz¹Î;?Žñ ©ìS+o'È/‚}E|.I'µà=ÇíûÀnTôÁN!ýW:Dè'ú‘öÓ±<_Ƚëwý¾rÒ3Ãh탎vñÚßå{ x˜Èw”˜ÌgNËa̵¾gâ"ßCÕõŒ:CFÿÙís{MYþâ’Zr×Ý|ŽUlõføj.XžÏm™ŽÒÏú×ù³}Ÿßa`9¡íòòçU×p…Ÿþ3Ç÷I:†ü׉ôn„ëõ¼Œo¹ÎÚëðƒ3üún®/TEìÿºåÖNA–?·Ýrlº½š'@ô,|};v܃,#ðñad„=ÁÀX` œ¿žê`­ï8 õF¾õ¾ó¿cǵX×uÙþ·òï|´2 É/UG!ú¥ÍõI¼¡ÙȹŠÙ—AïFøL’“Ëa+×aK7Ù01[x{ Ãò½‘z Z™é»ÀÎåœý]/èÉhcß™ JÜýßõò{$_&Ý”>^Ò¸d>nßx2¬üÄ׸<ÊOÆ]7è]SI9yƒ x?[ê| OP Nãß]È7Ù&û΋ÀûXýŒ>G¾yD×ÚM‡¬=x†ïyìz¾¯GO|î·ÖØŠ^SøÙÏl·MdþÕì…¶DÁ?–\2Q|Ae¿Ûc{7ÂÒ#‘æ;l;V{ynŸî÷~¹LxïoñÑp¯ð“_ë{¼¾œÛ*ž-ó½]¿ûÕ¼â:®&þG€ó“[a2ÿpÿ—Ô‰­DtÀNëÈ— >ýHÎ>E» ãSjšûX}¤ïéïº ».î=/.á3k‘qž0žw?&&Œ V,ôÝý7óŽ›þ1ÕÛ};²¯ðSӦÖ.w<«|tÃû{Úç!q~h8 –)üˆTnN—ëz<ôô½Ý “aø›ƒ´È3À4ßq4š©ÉgfóéU~ZÚd<Ž~\`‡“Þæò 7dÜ¿†¼0‚‰å²{Z=èÕ¿[ÑÀzÉ ]ÖXäý«aûIlé¶t76÷‡. ³‘tÒ¸™G3ÀÁ4¸ax™”½ý|ƒõ°ƒ›wµ›¯G#«øÌ?I﯌Ǜ¦ ×%6’Û/ŠüÁ÷×× ­¼-ý‰Èn~™ëàvQ“Ú_'R-Àþßx¦_ƒ\¶ã: /Çúóñû±àÂe ³|w79ËÕ¼;}´_ZŠ?œÖ‚ø}»äyÁõ”¼®ÙaÿÚ<Ø¢ûîÏ`EÙ $˜¥ñ,ºmÇRs±Z[D8,Ï@â)Ø{¡Ïù‰+ôU˜Qì ²Î÷{EÜó‹¾ÿù¿×ØMSüY‹X>êŠÃèã8h¸¢e¨âi÷`‹þ‡•QÊH+-fnöÅruÓ<ú‰÷‘¨VƒýÑñN«½í×ù™Gß =Ñœïä±+Èú5ÖÄ{nÞÝš?LŒÝê§ Í ®é»å¹ÉnžtA«n»‚¾ïë+“”—´ü/aÛ2›O·¢äkˆ›üô£E°û8ÌÕÀŽÝ¦!¿ëv×:9òÛ1°àzž®öùþN¬¾ Ü¢2v}Ó6‚‹ûšÓ2Ú#¼å5PG*Î×Bæx\80³– «Ëfñ­•½ ;ß!ƒ;ÈßXã'úøæbØRl: ]÷÷5ØòuøIŽÜžò;ïë5´ó•Î ä5Ø>žå´˜0¿;>Ø_x%däw½ÞÎHm;ö컹üv†Ÿu2ÕÏ6ì‹æñR¬¿ÊÏvq{û£#STüÚqÛBt4Ϙì÷ôîÃâîø@f²ÜTÔ‰üy@qù\|Ëä§_´±‘A¯üþ{M¤ (#°~Sj²~ò÷J$úœ˜?”wˆïç=ŒOõSŸ`ý…šÎw½¬lGÀ¸›xV_xïßæ'ÿ¹I©¬¸µ ×)Äç2“ñtµú<¯g£yývuBläû¿GÓÇø@m{J¶žÒÜ>ž^xùÇè`€Ÿ‡8™ú)XÉ–·#­;bv <ĶÉp~*,ìæå®ã}7ùÖe>çÐi%«Kn•À²Øû6ĶÛnûѶ診."©45rÌ»#6ßQ®Æ›{i_Ÿß~ ë»HïØ¾Ÿgx‡Øp¯˜ê÷úIJ“êæEßó\œXý§û=FÛÐÀ=¢]]˜o³6¶ŠØ¿:(ë¬ýBª#\:r \â:Ú=G’ílýçØþd˜íó߯ý>®9¾ÿ¹‹ƒ‡Õu¼wçÆ¤„ÏâÂj±ÍuE=ã÷‚Nö¹ð"Ìx•º÷Ê#4nyüÑátV@ [ä?[¨ƒsHG}ÏÒÃgB&4;¯À#Îû¶n¾™›Š°ÞÏ@šúOj$q\áŽs?ÒäDÌ'~OÈ Ÿ .BgnŸñJ䮈\&—êd%`ÀÒ6IO„X/ÈTܪËAd aªlv@‚áŸ@vDsSmÜÑž(–ØÎ¢‰Í `1H¿®—ý™q§áº$–mlõ“±á÷ñ‰)>#\ÎoÔ„ÿ"rh%É”Š[Uý6dbßWÉK”ÇFX4¢–›ãx( ˜Œ|Ó‰ô75¢]àÑBdšïgýž$—ɧ"jÆ!ÎÏ3 Èû9h«ÐÆfŸñ»÷ojß0³5³rZ5Î|ùóUÍw©üRË[2켬§& f´‹`Øu¼ªã[èÀMø§‡ÔÍ»psÞŸbûŒdÌ»±»«çë3t² <#nÏ÷¥~Õ /Èf`ƒÁ!yU`)É''¤=³"[Íb{47•Ûý3¹L$û™Êý$6Èóœ|*%žŸŒûçxÂ:¤@”X¡nÿùa|'- ¹Ï5sgŽa‹ìòÊzö®æ'Þ†Þj/…‰É£ˆV­-+,uK—ò5Ûnü ¡å&w»Ã£`àg¤ËóÂö`ÁS`°¯·‰kXý…ºþÇ—Ð˲…ÌnííÝ¥ª˜-BæÌÏ?_5¤‰´‘÷5Ÿ•%RÝռĂ}Ä÷CêÎIzŸsÿ=ÜF+ —çå/;2}Ò'ûY!nnâ4tC‹’åýLœ„å: gÁ3Ú!sjSǾ°‡h`¾¾%3å•Ë|þçj"¹¥´T–nº‹åBŽö !Ý&V†í3ù YÛ¨ù:"aßò0`AX ¡¹³ÖRU%j„Y)íVÁ_ÔÌÎPg¿{¼ÿïUW’€‚dÒO›ÛXkŒ— w;‹•ë"INì|Þ)iˆ^^h²»äX¿—•ŠŠ¨\UZÙ+‚ŸÕyiѱœïë~Ÿ ßùj¡—Bø€Û|Æ(Mì¬nÞ¶Ö×V'ZèBßå÷³\Ïë0ù@Ì–Á]î:˜ÄÈ÷€ª¯>>ñþ| ¤WDþ`$¶®î¯ :OÜþÙ{FuU{h#éŒ6ëý.f?üéÊà3¡:Á&áëYñåœàº=~=Û:RÉ'°Þà{·Ý±éøüë¦æö‹tE;mŸ}cM`Í8Ú\ºó;e$Øgúüã+UZsP@[âă×ì]{ÓzY²£ÄVÆ;?ÙddÎGmëÎmhßM#ß¿DžPT»#yú` òO¯ÌdC¥$¹ì–ñš¿®î`óâäöIñíþ6ÿ ¾+kîü_wÝLòžWÐÅ7šF{ü®|þ/­4RÐ÷xj'aþ<ÞœvÛîÃl%‰xä4~:Л–œèŸ^øÄ6Ûb›¤e±ìNdºÁ>¿ó·X)%'uÁP¹BDLnß[ŒÀ~<¼-Ò¾°‘Ô8#ð†BxÂb»jqGõé ÍÈ£BmÏ¿²ÀÞ%¶¢Î­øÙãók‘·D <°|HèoÏ©^ó™%mHÛÿ-Wqò×|U6Ëu}ÓNÛQ³ÀCì= h ãMÄþëô5>“VBkïîo·ÊJr£p©®¥ñƒãd½™µ#UÁ[eí¼ô¡¹oã·Z)¸U”ªRJ7óÙ3©.3ô¡›J†NíøŸ¿Â±rwêƒ}rF¦J&É«éÔ1d–»ªýß·2Q#—“.2]Þü²MÞ"Î…Òñ¬—ëåz¹^®—ëåz¹^®—ëåz¹^®—ë·_E¨ù3K’ëé÷Û¯d’IËJuIþ‡WT›K6)(%% ¯e–ÚAݾïJ,©$Ò»=â¤5¯„ë\y—W[IiˆJHEW‘B<*ìÍý WvÉ-9Àw]I/Ådfß'ó°õz™.ۤ얘úª ”¹2Y^AÅ$Ÿ.Âç¹üý+5˜ÏàÏs×J•Êúª&¶4vS?‘/e¬Œ–´zN×h]®5®“ŽROÈ/áh+4:¼ý³+3X»UGþVXû5½¥e,ƒ•´Øö•e×6ò–D‘5n`¼õµ7yõªÖÓZÚP/I‰ŠÎrðÍ`w8ùçVaPŸ]ÂÀr*é ]­}l¬½náVÉ>@Ö·¬£¥Ó"òT\wì3¶ÜZZsëgíÛdyl¾ÆÐ’üB©/å‚-Ì?±2³åñøR²_zi%Ûl7íªõ¶ÂVÛòÛ{ÖÊZM›.½¬Y`³ºÎ°=m˜m³k¶ÇÖØv›klŽ’œÝ_c_/ØýC+›ŸþUzK­k3m¾±õ–1ðµåÆÊ÷t” °¯‘1®žµbÊ–ÝꂉWí]¶“ö‘MµöÈJÒXkéë§âæ ¡ë]þÖÊŠß×ÅvÊ(o{­›µ¶^àz–³¸VÔ>µgèdŒià…¾æ›Û:ëoÃÑIÛNf‚„Håö,äÒ/Á@'4ô÷1»<‘¾ì}Oꇠ¼+2—³×l¤­°L°_¤ûÖzXû}ÜÐ…üû™M°¨!ÖÖÞ¶Ý6w× 8ãxE k¯5‰ˆMÈ B…I&"w˜DÓÖHù¶-h‘»…ýb!q*xpªÕ²jvŒˆwO/z^|C´¶%¶ÑÎñ¨·°L_ì8Q%1°Jû¡ÑF!?+›Ä“âÄ»_¤„Mæö™½cm¹  õ]!Saÿ™hÃu-f¥- ¸ïf‰¨Ë'÷X¼À^;fƒ|ïø·àˆ£vÐbšjY%íé;ì‡îJ‡üé%¾L•b–ËØ pü¦ÇÖõðr×ÃÚõ“ÖF¡J–Ì ï 'æ„Ê‚ˆ£Ø»?ü÷*Újo슥 Ä|oO,Eà’Õ×´ü~¶`‹ùWW1‰ O-•+:þÒÎÚ$‡·».¯o‚ìöpA&K€Ü¹x-­ïçZç‡ÁÍì°±/¬¸ÙbC¬*ì±ÚØ4¾»™x0×úUjá_¡¸Š‚üò2X¹O!ÿl›‚úY}»£)Az%x¿¿¥ƒ êYKŽÔí`„|X:¶ïÆ_o[gCK'@Ä|ëÎ;­ð•ah ~1:°AÇËW!yNë‚‘›(}[ smü{VmŠœIí™f±hÈòž}h%Lyþ€<¸%1¡œ÷%h¸¥E, ýŒÇöó¬Ò_¶;¶ÐÞ…JÚ2[It8dííõDþ§ÐZ±}¾ÛVžHäÀçøm9¬ÖŽ ·ÑË]çÀžk2¼º3šq×=ÝÕ²x}k,^ w´§f ùÎÖÔ»+ÈG‘g|ˆ&×ýx¶Õ’šÚOò*6´Î“p=`rÈ)ie·ðéID´ŽØ3žý¬?iz[jÀ2#mR%ßOš9«Áï[eð]¤¤çýjü›ËJáÓí9¿5M´àßHX(Ød@ë$eÉCie¡¶M.Èw:ããgÙúW@r8:p]P#ãï±-&y»2øYi"$e¶/ogÅ©zŠ’ N΂õfÛç0EmXà˜¤Þ4D ±ö¶v ËU’*?6I‹$͉ê×°TE¬ZÁóç®ñLi)|gÐ(H/ö :¹¢Q-:(mƒÉuÞ O(‡ü¥Èšð+Ëmùr#}À}~µ'õC¬@Ú@êÀÐÀ>û@*…Ðù"%ÉÐÛËiÙ€Ìoâ˃a°ñåžÈô:ŒïúG"ò›E°¨°_U+6\ÕSvëŽe?ÆÎ±`€–XAÔD\ü LEþ†àáb²Ài`Ÿ‰©…á€ØÁܯŠH_]&ÈMýy“ØY<>’”Õ…y%.Ö¿ âoûë?æúÿ׃ù^CÒ‰X<"|YÑr‚ްC& õµÐ ªá¹±Ï!$#9Q |»–ïc÷1¾Þ–¨ VRùné°qr|g ^RÏdæS É OÙuj…`ä=E¾üY`i¾ˆ4“¤X§!¸ŽÍ¶¿ ‹]Fêïõ°îÐ;Øü¸>& ÜEþ+êº8&8­ñᵚæzU$ÿ+Îc%SÎÃù7%~R$äáQ<ò oɆ—¡‘õd”‘W·Ô®!pp"ìŸ\ÞÑNä8íðωjÙþ‹¾Õ!ßÍòz8âà)öHöóL‚û³š&,ì®styøï¦ïÉ‘9’%Ca¼™û|~>QÐM?œ'H`9C JK6^Sòc§Øv_c"EEðzGçû«Þ/è/xÁq¤w×»©W‚$ÓUÈu2‚öèDÀì<Žm{ÑPD¾ŸÄOL¼á{©>)ÏÔõ×ͦÜÄÀ®¾÷oøq´Qk[|¢pEÙ'®‡{!Ð{@gûΧK`¼³º œõ}ÍÏã?‘õ_Gþûú¯]ָȔ›ïU% ÖÅçOŠôàÀxí±â rîrçØüvLôZ‹[]?¥+H(¦¯ýÚ˜”RMh ¶¯þËŽûþ\ìX¡+Õõ„;©îÕsàÿ†Ÿ}q^ÜÊãô æ¯ö"7xŽgD󗨢››tÔ\!Sºëçü¢áäÂ3ð‚DÎÈÀöh£˜TVÖh[rڸĽØö=þ‰ïä?[gù¦[þ,Òÿ:è>Gð„3º‘ǯ þD-tÅÏ9xàçCÄÀ¢ÿ'`æ*ß9÷©Âå©FS]DE0ÇV¹~ÿu$5X+‘$•žZ‹Å†óöëB°¿Zgòï:4à:z¯F‚kz¸­/ø¾ßñ ×Õ(#^àº' عȽ€ÿ˜v<Âî7u;ß} N¿Qˆ-åÈߢK~ÙÄš}Ÿh!i-/´¼íÔHö˜íŒƒ¥Nê*¬îz]­Ä vÃ…û}Ç“±ê >纃?Eùfr¢›»ò÷6>±‡O°~t‹c/§¹}Ç{7ý¼˜xÀ¤n{v%jŽ´™Aß'ÞZæJc?ÕÌùm¸ŸóõÌwÃw×2»Nc@Ä2ppÀKsN;ijEèë±fÇÿ‡ib[Œ—EWK=GDF#Ñ`“s|öŸE\Ð’°^YkKF8ö{ßÏÙë`¥iå¯-‹©û\×÷XØÌùýNŒü)l#RNÑi:‚ûѾ·íQd9*œMç Ý }Ýzèe)kq ÖßÒŸã |§Ëk¾ßµZ?/.ŸÍ´¥dÆÇ,A ƒµÑìùe¤Çò±Àä êÝŒä%ßêZ-hkà9×ÍÌu-Ÿ¯ÀÿVìûƒŸ 亙φÝ:Z])õÍõš‰¤? û5Ð~ ìÿ®©›–”æk‡ý •±úê¡ää \=˜+·T–äkîWû’ì-™mÓjDÂKXÙu„^ä¹pOwSqÖð·]ìDƃÈ6xòkW¤‹fëø…D‰ëx¾Ë™ù 2+aÎsèâ0ž›l9½5ÿmÑAið0ØnJ« ËŸHÊË4‰N¿é;Õ½Àj«©}\÷WC®U:Ýwöq}þ7 ³ëð¼-lå/]ÕxDèDÌc¾OÐvŸ=ð3®á?»ùÖ}Í«\á»Ûð‡;Tqñ±Jà¿³í žÙ¤žÜ#»ˆÝcÙvX¯V×Õè’¹ž¸óõ[0°DÌ@þ­H¼…H0?Oiýuˆ¹&7‚îaoÇÑ×NpsÎ+ɯ)16¢ìÞ‰FíP¬5—êÁŸ t³/°Û.¶ù*[ïf—­Fn—ý}å;@/ô}Íñ7?XC¬ûf»D||›zï¾² ¸™_®sìdLçýô‡­üë2ŸôV€¬ ±•ñs«ø£%‰­zM&5¤Û{ OÝ‚m"$ÃJ«u8þíúŸ~‹Ì›|÷èg’ºY“ðu7 "µÝ¢"ÞÚwáó'ý7=é0Ï]Fx†h€*ñsn™¨„× Ÿ–T›}좄BìÔDÀ’Xì!Vn®ÓY|Ðz ùÇêýDƒýM^æu×ÇòïzbúN æël׎Ú.„ì3ðýµ~á~VÞa~k«&² °B?Smˆ¯¥Ý“||c‹´ ¶èXÅ¥¤L&ؤXÊ>‡ÛN²õ3Ùæ%h`.ºp}?wû~ŽÙ3Ñ‘ëiÛÏ®‰×¬à•«èå(Ñu覥íù*óÔ%÷IHmé¦"\¡^ìKÅ9)dÎÊ-™¨CÝÞʵH}¹ Q¥„¿'òMäÏu5ƒföaÁÃ`{3ò%±>›}‰ŒùmrÍóµá n×ýäC× ÜM̼L5™ ”'`ÉçnMÐÄAŸ}öÇåÎoþL¢ óa2šh¶H.”Ì®ò¿ÝÌÉXx-²»=bsýd›U ù¼žÏ–ƒ‘¯ð—ñìEæ-~Ÿ±ëvÁwKOBþ¿Ê:‚—•±¦ö‘–¶ØÿµJH!©-)½—–±¶ì<²ÿBF|Ã÷?^àk …°›j¶žKhçÁúr›AVÖæÁ—_È.êmnö•Ë…]®{‰Œ"6ñ¿ÜŸ]%Âú½­K̾ýã*+Ťª¤ö–©f[l9•IM²µ˜Ôk®³Å4tà: ÏñõœËža÷Øè+€¦j’ÇnÒ~_Áб‰(xÈ÷½BÞŸÃâïcùã`Bw4¬¢}`‹B"÷ùu½-i$‰,Иئ/6zDe«£øîÏó}Wë±^Küä£ÅyªéÉ”R‘)æ°Ý¼þ‚ÛV?ùè xÀw­Š×įÜL7'· f1ëÂÿ)„® ˜"E¤¦Ä‚¿k‚R·×ÊÕ­ ˆ}_p¿»º©°SAÀ ?çm*ž‹ª'9øxߥµCð|l¤Ü‰ŽÜÜÃÓ~Â.Í :^ÃîÕ¨yX9Ðß’ÿa¬ùQHõM Y‰Ãt5ïøî òž¾ä¾ß`õ9¾—õ ø~¹›0 œŸ×È ¥:qì"õÿmMc'ñˆÝþ˜Á¿wÌÍ 8N.PÞRéö ÞyŽ>ÖÛ1ªÅ%Ò ¤Î‚K$iÉ"€èg v+l>)×cí~ªã?Ín±Ÿ3 O%¾]$cÎG$$sLM}¤/ô±˜¿é|r²?†¸¿Šís%WÚu;eÙ¬ZL>ÿÓ• ä’Å’ù˜›à·\_ÂSØY?ÅòQì>1}X˜Be°Ž?ÊkÑ©bsónÙýÞç/®?ð3|ÀM¿;€NkߨrÚ û–ìÿº½CÖZ+¿Ÿ‚sR`+×Ï7VM£œv“h¿š\7ò=ôàb¢Á8Pð=p}בÕ N‘­¥’tgʹ£(ÛÑ› µÏÈ@Ì/nŸY}¢kq«߆ÖÊ+ÙÀ@Uý» Þ³€hµ0r 7ëÑÕ¹ÑÑGÛž]&°Â×;nšM|ø½žŸîþŸ÷«ðBbøþªËd.F·tD½&6îÓ¢h‹`‹ûV6òñR ‹§²sš“¬&2ìöpݽ¯ÀøÙy¶&˜ìs\7Ë;r§"ª=Æ?’'-CsŽÂü,¹Ã d#¾´®ldì=[m-àˆÐòý?®\RQÞ“DV¬Þ@Š|Tëíus=nñRê›pº›ìðHsaßëxy!ËbnþÉN¤_Äýu²b¼òD#IwðíDÓ8Ľ>6•ßJkhûùÇ•Ÿ<8½ôÐd-•ÀtVä7[¥·¨ âãAÆOXy)à¤Váà¿ôþœØ=T½Û}øƒf&ËËŠöbñÇ} ¹ŠŠ2¿9æëe È6Bs¹ë[;ÈMuçó—°é0^4Û¬n¯pl_ ùã`uWéoײ–Þ¿HnߎȉÄ×ñ’ÍdüYy–Á ÀrÕ‰&Ȫ"¡©ˆVÆ[‡@ËrÜÿß+/x(GµyÛ,8 ží'Ͻ¢©ý5¥,ºxŒô—´°eÂίp_ŠØžÎÒØ¢ÄZ"B9tu—š·ª½ kQ8?ŒÏÔµãÖÆªKow¶]ˆ®ö`3\ID›d]±º;òHýnQëºó“¡ƒÕ¼’‘¼ç…¶@nbzT²ß_g Õxøþ^pQÛZ‘÷&ƒñóZ-FÍ7ÖVËt º÷¯ÁR/—mò —ÅÿáãÙ--±ðQ¬ <–ÊNƒˆÂà9 ñDÃa†X¶ÛOú]ã¹ócŽÃ—¨ò PÿþŒ·úk‚bj_IlÿÆz…̼„d+rYó‚ëÈüÕ¶wÁ‚;;ª×âq ¤Ë‹>*ã—@þ6˜~£Ÿvœ ¼8‚œ8+ÙÀ`«8gYµ|ô;¸ ôU²áœÔÄoÂq5ÈZêÛ@œÞîkìß{ºã[gýL—4¾»:^sG v‘:ùÑ:è¥>ˆ/FÎ0ß>$V ЂÒQº[¸¿k…ƒÒòr@’Y;r¶dwî VA–¬ðØ#¢ß¸> ¾_ƆÀ”® ºáàöìÖ{^sÝ­¯ 1½È"Šk}éû;êŸE²KY™# ´8oíÏZ( £g±ÂvKù.ãç%ñŽíkäwç ¯E'îñZ"Fn¯°M·ñÖÌrXc] «ûL‡t•Ç$˜/g¹,ïõÞ…Øvšœ¯ –?¤î,†~Ôt=xß¾|ÿ9¾_ÍÞ§Òéi;l& zDïH©Róþþ¾•‚Šh¯<ÐÖ`¼„µµ†ÄðÔøüÈ×L(9ýjšQ°@G²žù‘».ðK¼¿/•nk먕õœZ9D¯yü[«˜—þ²OÝyþ…±y9ªøJHÿœž i_ýl™uÂ*ÁMxµ&¨pWR\Ö+²D¦‚û2!<ñèÿ^9¸•^2IËçÁ€ïØÇ¶Çà %ɺbåÛÖ4PÚ®„=Õº0CWrÇÚSí\˜ßw?è,’‘xÐJÒè =¥1°îHûÉF3"±»òªí´*ÜžjL4TÅ&ÛýIFQKVÙJçY9àÁrhá¹.‘‰h[-<ð™ îJ·Ïì°öÂßK“ ×Àûç‚‹XÚ@²I>¼ç?ge—ÆÒYŠh%[ŠœçÈ ¦Â}%ÀÃf¿_çCr(¾öDrK­ß­Çÿõ•†Öˆ n¡|ŒµƒvÃâ>4ܶ96ŒøÊâiZÉìMý7­l’Gºê‘2LÛ Ëh˜hËôkËFtìn?ê4I'…ƒ½™ÿÆ•Í×F`·ÞÚÐNÚi² ¶²Fgëu­¢oéÿ“|þ/¯d°z1™$õ¸ “ƒò†¼íš@‡Q7ÿl¶ÿ+1ìÖ˜Øþÿ±÷ðV]IÚwU]H @pw  A‚ îîîîîîÎÅÝÝÝÝ= !¼ÿµºg¾ž$ÝÓ=3÷cß¹Ùç°«ê©§ªöÙ»ª˜Tãߌ2ATúªñýz¿Þ¯÷ëýz¿Þ¯÷ëýz¿þß^Å¥ëŸ@î›@ ’‡”sšÿ7V I._PºŽv)‘¾ ÚÈ!YBع]ÿýõ…äõ=½+I÷¿éëƒJ0ßWR©]ETP*K~i&ƒ¤Fàvöxå’ôò-u}I'å$Ò6’Õ²I {zPŸMÚHGùmàÝ‹¼7C† ‘BÞñÿ‘•ùºÊ#‰¡ô±¤Ó+²S:ËUy%}|'øh²Evê[-¬14²^2VFHm)Œ6Ký@ïþs¥Ã³;È\I¡?hi-¡Cõ¥„ÑšT¿Ðg²ûw“)ÚÌúZ4 ekõ„ŽÓFšHïÁ£¤šêb®qù×Wu<ú;™/?I-¬su­¦Ö([Ãøë :i|­¢K5‡Å±׊ØR›aØjˆ~‹¾¦è#˜`0xh®qýWWF)-C¥ŽŒ–ÛÒJèhí¢ßh[­ª·t†ÖÒUZV³èrMâ¯}z¢aí”~kÍì «aã-Ÿ¥°‡º@ãèk‰®Ÿèº}ÎËïW6ÉŽåb»SNçè5=¤½±kNý^»êjicµ²6Ô&:]£Û!=ÆíŽ~lŸ›š;oö´TwET+´TVãj/ü¨äŸf&ì7ĸjrfÛ!O%³Žò×úLÖþÚS;h°C‰íŒ׊ \ìšF0w~øýÄ>¶ó`á L°UÓZ ?èÊwv 1W;ýãõ·"Xÿ¼÷L†èVï{^ÖYhbHÍ¿ÍuL Þ¯ç4ªÝÆj8˾ÓÓz’í6ëmTÑm²N:ÉH¢hÈ_Èv*Ë=9&G%¥Ž„÷.ëÏH´ûîÖGúËN×ïð…$š_;I ¹£_˜;ãkµÒÛzQ7éM¶;©áí%º ­ÑVŽ.‚¼ð32Ú¯ežì“K’¾[£Î²g|ÿ›;à`½¿~q§6†ÿ³j6íM†0D“ÛßjƒÞãï#tq@·ÃŽÏx4 vÖä:LÆK¾?dÏ‚ˆ O”²U2ÂÛóõEöNþŠ–ù°À‘VptíÆ~÷%s½PÂÝ3Ð@eü`´ŽË[üU`Ëýµ ÏÀ½cÈŸÕu¼sçÅ&ö÷àâ“ \ ;ˆ”;`ÐÈZ[ÊJOI)e¨CÞŠ&ŸJBiIÖ[+ÎðѬ Zø\?—»RÙ·¡“å¾ÏÉF½Bl¸ì»;=ÄOÎ"émÞ;D|Œ`ßÂ)-ª%°˜öDµ™®Á³ºP1Ç ]_»aÿBä=5%û>H— åy2ÜáÄ»è!²^“Ž ÞùĤwç¹®ó}à6êkü`œwCßpÿ‰×fÀ'A„ù®/ŸÙUâBl=GFQmÆÇ2HHºª¥¤–¤°óò¾ÆD¹‘:‘Û9p»9ùkýã’í^"ÂÍó¾ï®tÝ=oz‹»¾ AÃa}«Wu/øXëûßL!.²Êæúé4×’|obKûJCx Ðßþ¿ÕVšã•“ä•|ªÁø­ÀÀ*$r݃¬¿Ö£îiG| Á ‚Éò¦ûkCW…¨v™wê]Î?¾Ä«jmÑOsý²JÛO`à,¸(ct«\‡ C VÅî-儤ƒ¿o÷ÃÞƒ±èÈëºþ ÑT2ÃáµÉ¾Öi¤^€¼‡ÐÃPììûƒ^‚åNóùCXû°¿fº;Üç®–Šl‘l™Ám´RÜŽé×Ú€\0zˆ¹:qi˜—¼àø*{< À³÷í¦‘½~F†ÓׇƒŒCþ àH؇-΂óжŽO€^‚wuÐd}özktÝ,×Äi¡$|Ë'µrÖÄÖ âáq!c•’XðÑTðߟŸ‹Ô®—Ù|,? Ö z[Èvp°üïÆ»wòw[ûNOcð…Üo¢ƒkè`|x”êè,Z-$ÑÑDßSv»Î„ŠÙV 1×´&ê}!d|†wƺáô…0áAtáŽuå…ÿJ"w?8lïϦºL¾×žÇÓ኱¾ÏëÐÊvòw¸Y o¤(^ŸØjF;оÆE'·O,«#¨B¦ Ä''_!ÁRœ ÍØß3do õ1ÖÝŒ¯wï³ÈýÊÁà°·ë|ê|z,uÀ¢Ä>1 ‹ïfÛÜ.ø¾û4”.–dÇe°|‹f»‰+´þÉÆê:Š: $ÔB±¤4Þ?‡ wˆ ’Dìáì7ü¾…Á†`áÙHÓ“Š–ï ¼‹¯$&Ž&;X…>.`ëd7®sÒ´àfaÙ\¯•ô#Kn¡©‡bÀS4‘‰]ÒŠÅFè[|¿?q'ð++{Ñü.š¶&˜!9¨áÛrý >Ÿ‚ŒC°ú!X¡ì7 ©WqwWúöDËAÊrìÞ\ÏEcgá‚-d‰ó5‚f£f\Ž>ÂÚKôט‘ÌOÎìe?j8í&@[®@ /îŒÎò­¬‘Áxùj´Ã2G]7ØpýZ^›‰ÿ»ÉéWàóÓÈ Ç"áhrãúþù"ÁBßÿÅqÇ1БhÙH?µ+0ßA8qYtwV¼ö²qVU;Qe®—2Q"Z|8¸2õHq í»|$×ÐÔ¸»5º…µ1H6©Ç#Ã"HÔî ÓMõ}-–€A }Þ±”W†ûîPŽ/v‚„vþÈÉK|aìø„<`#L±SÚp{L5qRîKW-¦KÉ:½2úsz»Ëc¸Úuìë€íz€á°¶‹8Þ][À®·Ñn˜¿)ºÎmrŸ@âÚi»ún'£ùŒë|·™m\ ç0< 6›Ÿ…¶`$o ò[£…FÈX”w& “ `}2û?®˜>âïP02­ŒE;ý¨÷’ëm&¸¾àáÍU щÁX}•U;Ÿ9Ì=€Ha¤/!{$²–å°w+Ù¿5XíÒ4ÀʵÀ@,ÜJsçZ¼2 ¤4×âè©’tÅ3¶á+KÉò¶ê÷hé8^? Ĭ¡z>i*ûÔFñ|²ÏÑ7Ty->55é*ßÉyyNþ_;o@†"øý¼|$^_­ÔûK@{"Âd­‚T%»]ª÷µ ù^m²¹N‰“Ù²>–?§uÐ^GøÐuÔSKMÜœõïÍÐDúÚŸ-Ø5„ø7DzïÈ3‰Juž®î 6„»#Y1¬Ùö¢ãˆï5‰‹ùȆàƒ’`~!r_G΄<žK,E_“ÐÈŸã;’'¹_~EòYhv >²†|2¯…ysxþCâp°¬“nä÷¡¾’¦ÓÒÈÖ«·bïë›õÅ#vøÜ÷¸,ŸV$#ü—ñªûE¬8ÛñÜø ú[ ï¯ðµÓ4âE[t°8Ì»½¼Æjó ñ¨ IZ‰Pù§³÷å'Y+Q¨ò c÷šGKQï7ÂË{€Ü5  =hØDíõ2ê`ËÆØ°2 aÛ¬0äe˜¡#ù˜b÷e>?ÚÇ¿ý,É諚¬Ž³jÝ&ßKÁOÚ Ó‚Ù—ä}1±]!P]X °¥±þ,xj?:˜Š¼°x3bùÍ®ýñí¦°B^Mе ›õùÔf$¬Fô˜†ææúc…½ø†óäÇMøÄ`î@Qc0•-'Ô¹Ò ïû4 òǑأÂHS»ÇBòDe°ê\¬v’H6«õä>v9]=ìÛ‹;¬¤%gª„ÇtƒÕÇhu;#k0È™í»¿æµè 3z©ÇÑV }E´“ 0°þž†\$œF!g¿ ™ÁBqÍÁßüXj±ïxêòÀ±¾ÿm/Ø+¦Å#]@ÃX^™Þ«¢³:øJ-p²=ŒÀCg¸èwTב9MEæJè³%·>£(«‘õ9DíØ^@oä3¹(¥Ø·ÆšvÿÛdû_é›bÑÙÄû!¾ÏñDŸ ÿDìJLÔ‡8Ð ¨jÊ£ ×û²;h†¤µAù²À© Çýt’O÷À·*!};|`^’QSé‡ú£|!q*ÿgG¦Ê ,6”ýÊ]vš“½-ÂþöÁÞóAíré`Ð|CßÜxF3¤Yè»BvFz§·6Üb"[?Þ›Ìö}Æ‘ûøN´Ó-Õ šžêø Íðo!Ÿh&w†öÚ„}§²oÙ±M1ö¶1®ñz5(ß®§Àã—ˆvçc#±â[tœLAg]¬ Ÿ-®GòŽhr™ÏŸ6ñ|50‚¬°*ÈÌÿ1DläÓé5¥fplX`ƒÔ!ÊÏóݾ¿½YñÇ…¥±édbž›}²/ÞEM3(¸KKÙPä©<Áú‚mîKVÍ ÚõNù>ù3AÆjß%÷˜ï?m¶Å¿ZÀŒÝñ ×=°>Ì™;ÀWˆÿ,µ`áÆìÝ0ìÚ*áùŰk=Ÿ÷ÖòX^‰l§Ž[à;AŽ!·?ÄëåÀþ§öT"gIp ]Ý€3gcï|×"ç$>¹Ô¸_F»!;4пšÃwn& pØ«ä¾ë±K¬ã:ž†©ÚÀÎÅ® ±ªX>Š•]ww÷{Èò¸5þȧVÀÜLÈ>Ô3¿‚üoü¿Ý¨cÝþÈÿ*xb÷ÁäOåÈ•Ü1DÇþ=ÁÃR<¤V °ü‡e²t–¾¦ëˆ©º±‡°S-´â’wÄúÕÐÁx²Á¾þhÈ!0’KVT~‘#ÒTšƒÉÆxö·?ÎQ(é+ÿòüm:?~Œ‘ì ëh¬°= ºt=(^¨WA•ƒòÛZ|h>ÕÍâÄy⦉̈́ù*âI¸wM³àÿE¾¯ª«SÁ±4°ò?’FR +çZ-Gþ‰ÈëÎÜk NÛ“ÇL'6÷“mž“Í»Ù^g@÷v‰bt½µ±fA³ƒ^Ø}­fÕm2’¹îùý‰‹ˆ•ÉܱÀv|g\ÅýZ°ÒÏDÛ­ó¥l`…÷+§ì–îäÀnÚ‡Ë^Ç#y öv*Hmáó¼Ôïw@m'$¨¤å¤¯”AþëRA‡Èy!«@ùz‰¯ ,›mÖ;~þÇ*$u=t—𭈜«=ŽÁ[à™Zh$“¶ øô3·ÆI~IG¬ïˆ' …¡à´§Ÿ¸ ¼.€ùNòúÇpÜlbCT2—A’OÊc»¢2MÚËI®ó$:¼1Ù’X|‹b÷ô©Š¹³cVbe×븎åwŸûá’ÙðåÓs~| b`[b3ÏßbûvXÉMB\æPçý,ƒd‰F´+<»‡ÌE¥‰ä‘Í2IPŦŎy6OZJ<¸¤ ž“/ðœmê&Jç[:‘UôÙâOÛöÀ³Ÿè–@‹ý﫳ôÑTÂÉàªÂuÈO:úI.…uȾ) `ó²&–^·J)$ÐÙ;©!]e<úh(Uxe†Ä??ŸnÒg#É‹fPMÇÕ¤0œ¸Øšz²U¶´Øÿ¾ãèÅÂáíy`«öèà0û8 F?– ÃgwàþxpüÏ2J–H MŽŽœ'3¯¼“3`¹ŠÜPÄ¿ˆD†«ðI2pP¨N¯J$¼µ7Ï÷Žò¹Â?ö÷·+«d„?ïE…Ö‡,x²ŸñäŽïÞDˉŒO¡ƒç›äs-ÎCSnCs÷È¡6Ët F3å[4Õ&c¹mºU¶töÐÏ}m„‹¹9‹T~!©#Xo%“ÂÑçýy^3Éa¦h\[³Gº–¼·³Þ%ò7֤ػ v ®‘ úLÂñt>‘G²ÈrêsÙÂÚ2b@v«o=-Ÿ%´#Ä‚^xÔIfOà‰ÀO¾þÛõD’H Ù%ʼnSÛ}_ã`ŸÐÜY0™,® ƒ€„Fàú®tƒjj4X" ¼öPª33éij¹oe¿¼‘#´ÏçÕ­›Í¶ö‘}nlj…'õC;¡ ÑuŒ@‹ü›ÕJRÓÎËc-l§ÐÂ@bÖ|uØKä­·á„éÄðuøÇ"ajÄD±{ÖlOÎøJ^ʘa“¦µgúXÓÙcëeS,}`9,½&{22„Ýh»H þÍZ…üQ%‘œÑgê&õüS=Ö«þ¨ýzä^í§9N"’m$:®×˜Ä‡Ôäõw¤ üP×zQÏEÕëD¾¥ú³ÿ-(¦µ6× 1<^PHa—õc»D4É í-ðoV(íêg Ì‘OÁF¸+¦Å³d*£É×z!ñu}åÏò™Ìóüš‹—%»ÿLã9¨eº£©æÔŒÓà‹·pÈD¬=ÆÂþY-µíÓ¬Œ¥vºÞh·öKvI ƒå¤&=@LëJ´Þò;¯[€w¹Ý#BtÆîE°u#Þk‰"cû¯aÀâhd,ñÂ]'ÁÞòx!lºÎKo‘ÐÀ.>;B‡‘/§ ¡W6@þÏ%±<½,ǵ‘¦ »añMäokÉm¦PÓ´$GÌûÕ¥>ÌJ œL]›Êÿ¶Õ¹¨áì+{€/Þ’f·¾ÚC+Ksâ~,éhQÿpµ—ø’œ¼>·ä•Õ’R"ùÔn›¿d m‡üß‘åë}y­(±°:p\X„l§yó]ìÓÒ¢xöØOÎtE~”fò¥Ä%Jæ–­õ×l¤/©¸g“edò-°Oí ®—ù9~°t=ýž,ù{$nìñ^Mëûã¿…áÀªþŸ Ä w–ìgä9l¿¯ Ü=·ž—È´b±[õV<]+ñð€ìD§:òXʃê¡Ä:wEë1}¨×¨]ÝD ¡d~eñöV0À4|¡¶uÇ>KbÿÚl±Ô¿¡~„õåÓ£ý9b›‰1u ö.éÈ7BÞ …}b“—æ Ãß+EàéÆHÕ˜ç&ݯ",¤~ëOû%|WŸÛxðàÎÊ–½y^’(ГíÎè¯ä9×ñƒP¶ ß¹~îÀ‰ôØŠ"à–@KûÛ•Q#é>ÐYTîRË_²dxu°ô@=-/ {s,y]QÇ7 ßùŠ*q$·aÔ ³ý£žøKmð²üŸ_ùÊÛYPs…l 'ÛÕÆs†Ã¯“-쬬úš(»¬‘ÕpY8°ÜÄNEî‡ÜÌFû³^z€^°¼°/ößÂÝ/ÿ«ÑNeäkJÆè®–늢XDû…zðò?As§ðƒ%R,Dœ÷øÛŸÊwžl—0v›,ý€ŸðãfxÞ×Ô}oðë‘d„ÁhÁýÎÓd¸³¨«kfâîÈŸ;c`*ž>›gÍÐGL gíìòiweÄN?2HgS)Ï qøW"Ú £‡¬ #û{Šß>…Ç^iNòÖèÔ°bðôèa¾à¦ƒ5…ÿ6b7á%mµá«ô9ÈwóÏheòèüT™ù¶¯¨®P[Öb:Zº„8ù'IfÝ+ã%5Xÿ•úå; ‰,‹}Mæ–Ö’RÏÜ$n#Ë­Ì­•ÎÃúÝŒŸÝþÌà£äƒ‹xý}Ïm°5´²•Š'ùßBëc¥Ðm‹¡ë%gˆ“_$¶n—6,›5ƒåñ±,9Y\"4‘‡H¾ÎÏ‚^GlsWö/õoõjÚûXôU›øÞŸHèf@œÅg"[0™Ó-2¡R–Á²#ûr›a»5¶ÅÖåõ×s¹NU6]žh»€¯ÆË«€û¯°¡Ú 2Ÿjþz¨MäÄýõs°T¼ ²=ׄ`f¨¬óÑÏê†qäF]PGÕµ öÕ¶AV›ï<'-êßY‘´:±ÿ0{íæÚŸ•ZÏZ#¡»º}Q¯<¶ŽcEAÄNjä¨dwç©>+÷à©Ä©xÄ40vXBù ME³ºZÎöð¹p6Aß’e†Ô•A«HMI§±ˆÙ/¥L5_oIRò¼Säw5»–€ß"ÓJ­jõˆm`õôÖˆmô9ÑV¶_"ªü¶6ù3j2-B.9ü²£1œóû÷× ä_"+e—Ì‘XzY‡¸£BlÃÊ·¬u´’¶‡¨^{F²mØ{…Æ77íþþñœ D†rÚsi®—%‚õ’ݺ֪XJ é¡êKÙ,%†¶°ææ!Ý÷×sŽ„».ðï]Ýe­¥#ª¹3>›êx@e»‹§—°F<Šg3áA÷ûf)wõ,‘Ïî“S¦± Z/Ðâýk0Ð]6JD‹¢¥ež<'¾å#ŽEâáZ›Šn±a-ÍÍÛª ‰yÌ!þŠ¼â½¦ZEwÊâH›ˆžÊ£›Ïõ€ÒíŸ\k©~›’ ¤8-ŸÛ‡vXgË»볓w’lØÜMÈËi;|'ˆ¼pãi@ü\Ã},ud?ùÊÚX9«£¯õgýH·È¼êϲs›%µ¤Œ¸3AÚê§vËÒ´²½d äK8ñW9.It›\Úòµ—FR@òR=Æ÷ÝàJIQ-cღhV²¢Ïµ¶ô‘ë_\E¨†?"×ͬ]mªM%ÿë« ä¬ ‘›r@ÇÛKÉÄ-³d“ÔTvñ$—Ÿ}SªƒqÚÈ2‘íÖÓñ`bT Åù/¬o¨ÕvR­7!ÇûH¯ãy­#ÿûç­Å—,’JÒJY>9]ŸI~´ÕE†ý/îõÿäª%ùdŠd@‚š`¼€ÂÆ…þÓÙÐS9éMU9ëÿ‰. HŠÜÔÚ< ;ðWí¼_ï×ûõ~½_ï×ûõ~½_ïW`V"I/%¨ ªHyªÅÿ÷¦Þý£•žZ(•¤‘Òò½´¤Âë¿¥jˆü}ï¿·H‰ÍßsÖêçCsË+e² ’õ²L¦ƒ„urDÿIºýþ3+­¤ âKŠD©}çº,ÔÄG$7xO‹Vªcù½ò£¼”Çò±†WÓøšN;H´õç_)Àwn/{AjÿÒP’K i/áµ ÔDÆôH>Fóé<­«¥µ¶VÐËZLCkmБ9DöyüW–›çñ=ÌvDöËsÙ(¥õß­œN’OÆIX‹f-¦´DöÐ_÷3IËèh4–ÀwULh!þË+”ƒÑ:É×ú‹ºYÏîʶ‚:E Õ´êôÐ^ ZûÖÂZYc좵´ÚöEÔ‘`#Hö'e‚°zGY(9õ†¶­¾³‡;§‡¾ÓÖ:[ƒ4‡¶òöD_kLìÿ’¿C­zhg§­®u“\xL.|$ùŸ¬û½[Y$¿L”èšG;èFýQ7ëVPÝÎí•^Ò`Pñ¡] ÷õ#‹eÙ,§‰½ñçÎV°K:F?×ñ²Of#ò£‡?ÏJÇ7’U’@è=®g”.×uþ,˜C<£ûô¦|É£ˆöùß©;Ó#‹…²ÈÙwk1pPÓ>°ÚMˆFÿ,“ JI© Ó`öš:«ŸÕMzO× {°ÎѺWŸúníô#«ìýÔN¡¥ +nQàÀ§þÜÇLvQ÷ÃØA«Eñ…ÔìŸZiØÓò²HBiÍ¢õ˜Þо‹ÁAî{à÷Ѿ£ñ*lÿNÊh‹a)à?×8¢e°8ØÿÚxíϺ¡;µ­? r˜Tþ +ùLGùYNiK"únÇ‘k˜ƒä»¹ßõ=¾ŽêttRG·‰ø+ÚÂØï»B}#ÞÖXèà üpåßà¢5ÙSÉ@ øŸ,דñŒL„׆c³“pÝ<ؾ/è?ÏãYº»»¾V+xe"[4…ÙV£ØIß4š½Ó[H½_Ý,ù búz€¶kgMJDhÿá**­¥ ¸«W§é6¬ÞIqs}_fû^€°ò˜p1ÿ®ÖÇÔ~½`ݶSW¢¡ýÄŠÐvŒX˜ ù ^û>Ñ AÉ3}-u©ÊZÈ¿³’çVÄóËáïk}_Ã¥:Ü÷ÀëÛ¯DâMzJùÎ6Áõ(ͪ¥™<“>dsôzûÐfùk›ûŽW_YJ<Ã!u”-²à#´¤” ´ gŃûFÈ éNïzÚöñ'`ñíH¼D»‚ú…àÂâXp(~qJÁyµ‘ò6lÞŽóYwµß°ð¡…³Ï`¿§DÈ­½}j{uƒô‘a:äχô÷e4» /C}§è Ÿ—s™¿Nz’ïAa,ù_g°rœÜBn¡&¸©3`ÃpDwÐ/(1ÃÖj­"ë¢$’“È^?a¿ç"kGßö"w×ñò>Ófú¾á®bßî-ýËž‡Ÿé.=Ltü ¡%±sh. <'ø ¦ B´·TÇÓÉ®BÚÊN…_@H1L„sÌêÂ×Ç`Á X»;’ÜÂÁðû0Á.½ŠvŽèKxí·«xÍAßù}¾E+@Æ.¯#W>@Dp×€'£ˆª»$Ð]_~¿’Á~Á2œzî%6J,¯‹•wÀ+ˆct 6ÔÄB×ùy5lp[ß&3Ü€Ü ®Êß÷o¾~†’`íó !¢&:ƒrZ2é»çÖ24DÍŠô‰ä’DÃsŸõݵÿͨôÜ™ýÃt¬ö¿ßè iä»ý¹þþçÐÒ r£™Úf„ìî÷'D¿#àä®&€ù¡“hv }¹YÅ-~rNÓÙxm/7‘?c Åþ÷•ì'‘ÔZ\Ÿ'º-Eš¾KKGl=<\†ÕÂjì½<¯d+7âG‘+”=G¿ã1ÑɃޒ÷¸«Ý§á Ñ-,ùžˆNèf§u! „”+ÀSsK)y´-ètWn,WÇ^.Ï ÛÓ‰³ñí~úF\G³ñ¾Sð^0ÿ3ÑqØpÞð”ÏÜÿ÷ÐGw²Ô0á&þ½L uÇOzS#>­Ãj-N62ÎŒ‰óJ/¹Š-“Ç âîÎà^Æ¿ÓÀú4<`šïYZ.جK¸„Û—¢›5¾»ëI/ùYéOÁOÀÆMd¥É GÓ“`Ä趈jåð…'×_eVt©#-eˆt‚å¦!‘Ëûîùë:vø/s±à0ô0Ôõãyu³ïв“ígrßâ»\ï'ì#ó1b4Xr‘´|ðš\°‚E²iðIdrâ²ðâdÎíýù—• îï(­¸—Jä<û}Ï¢»à{/¼}+Oä•]Ü«û«€g íâÀ"¼dz¨=É’œõ¯‘9ÜÜ@öJšLÃ([ÐÎ=ðÿ«~?,á3éí;ûÄÞ¨››[<ÀÝÝrgs}‰÷7—…Q¿ôQ|<ˆ}ŠŒ‹AöZ|b:Œ·L ëg¼s_Œ\+ðŠÅèhÛº~`Û¼G<€!_‘9\“YMœÑOá»h ‚7·4еÆÔêáýIÜýЭò5‘ÿµ¬K%=Œåæ7ÎÃb§Aï^|¡›ïÜzÛuÐvh`>²/Ým|>¼Ÿ(8‰ÛE”gSÐCbå=™M,øÞ¿Ìg3û/%ŽìäkXt1‡ Òzáÿý•Q Kɬ5…š¦ÇzÉì6¶=¦j×|Ï»†~È lܘ¸ˆW¶àý£A…›“±ÑwM ³“ëºÞÙÃ5HŸSE¹ÙXÏüÕß1½Æ"ÿ8Ø3 ÕÂUòÌ`jí†þÅ4ªD“¸î|Fü¸ñ¯öþIß`ÍÕÈèlÝN¿÷½]ß²©Z†[„Ýçðw«Ÿ1‘:p¬¸Õ÷Íž…*éV©Î×ðxD,û’“|i>’ëo½O8ª©!Réºùgâþgæ¦)lMõ:·¨xŪ€à¤N€ '_’‡n—\Ä·nH² ›ιk^´6>±¯â#iý–Œð6] ¶w#õ1_á¹£$ýo$-ô|„´‹Øâ LqHM0Í?Ú®ŸØ þ‡ýþhb­àP¹ˆþ å™)Q´˜VÑVH¹Šû ¤Y„U¹o‚ÿøY7®«eRôäd=¥¥´šgˆ¼:Û׺ÛÑZi½.‡AûV?u.þ4…¼`¢¯þgÍÜ\Ý,è @%$…´‘Æ2Wkqj¾¦ÜÛâãý¸ äQ%»0?à›ý1ïüú!<ŒdI© CÙ[$›DF4]l#Òáu`×Mò 6Ÿãgèä½åðÉOxØ!*ǃ諞}y*ÿ×D¿±2HNJ)²–™øuKtÐÉw7î ê‡òÚdlèføîàÝÔ1%•6×¾Žö´©AŸ™ëæ®vH¬üŽÌ©/^±Mï!A+cýñ”Qh¢•à+аžH2KóèN?i;+ŸT”%²Z>¤fiç»×ÏÇÇKpo¬]°ý.ì5 ëÖÒzø¬»Æ}-ö¿£…¿4ˆŠo¯Bî*|:?¯Äaëñl历¸Jè1Vwø€guá{–€¢1^³ƒ5³î ìÑà路œ—w’Ê÷t¨AL.rËâÙeµ²#Ã.ìÿ’ÎAŠ­ÄÆdô—ÀC¶˜];¡«Ì~2Î/RFt&ó¹«d»çð€—°`G¶nˆÔ®zþ‡1 -ƒ“Nò}@å/%“å#bQdh„—6gë!{ -Šëý„«!X´/{ß•ü×u@¾¦©ÌMüø†Ï%Ö’š—­[ð ˆÍýÂÉþ˜Á*ªàëxÀ[<§ß^…ÐVhͳ6dNyô&ÚïPùý/ðõbìõ4ö¿)ûWo.‹E;]7ëÍMꙇñÙo ›‹ÀsitT _É–aë ÔN-ñ q0Ãu=QáíçÑÂßC§ŸoÅg»‘UŒf›ÒàeL€' M“½Ò;ŸõGrZj}ìT_¨‹\Íýì?×É{“?.0fŸ£qìŽ óÐ(­¨q‘"—ï[“ý‘¶%27„÷Ê`ù&øBi/W]_×¹,~'èw“œŽÓºyIÚÁõ¬®57×ÄUÁãø»Ï=<ÌÖÎ[;Žé<|¥:é‚~ówÄ?úŽ™š\;Tþk’QrÀFí°NGö©±ïðY}TEµÐÂhü×MõzJÜ»@sù£Ù)ähA̘¥®ÊŸZâýÅu <°=÷³ƒŠè !z…ÞZðÜÝ‚õO‚•²Ø°g¤˜<•‰X¦+l6Úg3å¨ñÜ­"Z( fî³dt·5¹E±ûú\¯ùßy£ØÑ>1×2;þ=¾»èû^­Á[ŽU¦êðÍåx7?ßìò§SøÆ|¶O~˜Æ†h¹€Êÿ@ºIüº^¹‚èæêý°J ýš››ÿ]ÛŽAÞmØlïéPÐÏFÚM[oÃl‹¶½–ÕÎñÉ û•ŒçÒß Ë?OeÜ´;•çÝhø˜¯|×é;´óL–@÷ÃØ-‘Øßá¾—Ñ@ߣýkÍÔgý|†þ0¿›ú¸›nĦaì9˜eL-·uË}aÄö³µTvéÏ#åAj£|ß\®5Ì×Í÷šDÔ»˸ßWæãçð¹odx€å*yd2Ÿê»¸¹ ¨X­H5ÿÌÿÒµ¼ÎÂö'4’e³´–‡µ±ºUP»6—MÒUzÉ*á­Z×Ü,ôGès x™”ãùÛ dÐ øÉHÞé®±øöšHcãû±äy€å©„ŒÀ⮬‡¸G=°Ot›âgnÀ¦¯©f¦hT<™ X"cÕZÄÄSè`.þóP~À¶û´Œ•µxÁ-xÿ5Ÿ\ƒüí°û X³”mexí¸ÈFíÐWÒKî@ Ïš+I䦌”°Äd7ãà¤;ú;€P7 {*œÕ\}¤ô‘b°üb¢Ölé‹ß¤$ë"Õ%–Ï’;¢³Iýít/ÿ†·ññuhïWp×6àc'È£>·_ðލZ\RZô¿®dRAŠR»N·“ÉhÜï[kÐEf §'d—‘mrInËJÍnùí5ˆ./5¥‘”yÒPâé,Y*_K5É?´‚×"}[4éŽø-Ó‡šÛ‚ɘ®£‹yþŒÊ•0ê8pW,ЂÿuµõÇA{ÊÇ`v.lÕï²— ·»^Çî}¥Š¦ƒÝYlKoí¨xOÉE‰­í¤®Ô’ÄZ‡,2•d9$Ng_Ûaê½_É fP~s³³CÛE°4‡ûC|ª¤–-ø_×I¤Ïˆ”qáv×Õ®r¼À†á¬L—”ÊÏu‚s,Ý„ëˆéõõ;}+ä¾,“V[÷ȲY‚¨š>´¦VÄÜüÓ«ú!ÛüJ¾ü)9bDKŒFç7ê'¶DÛHrboÈXá4±””éÒ ÏÝíÏlÍß[ü{†pN!çqS€Ü/œm‰‰ß“Í•Òàýµü$é@Ia=H-yg›4%øEh_ ²BzYÒêX›ŽôÅí:ßzR£òúOþ|ðYü¯+‘–L2MÆÃW·à¦PĪÛzHSØcjšƒØÝMòÛFôÚã'A'ªe ¦Ç¾Ù4YÀ¸"’ž”Ü ûˆfÁWÖh+lÛg0}lÛc‘ÐÀ¯Ø?Èî¡¿¾’ÿ)+ªöCþÊòF½ŸS¯÷öݾãÀÙ‘‰{.¸)@ûð„yTÄ[¨acj˜"%±<›Æ€ëº× ô3×k< CŒf)ȉbã ‰ÑÃM$j.ÿ½HV=@bË¢@‹ý7ë ä‡*Ê`-`‡üܲwÔ}ÑÙ÷)ú{ïâµsøîbƒë‹úƒ¦×\äII4-Ùbz±—º êm‘~ º.÷õkk”±ÉvÀNš;+<¥ä{[Q÷W"óÙh¡ÿféH¢`)i¯å©hòZj¿KkY_ûÐŽùîž3AÿA¸±+b9lïº!~K•ØÈO lH¬å§$ôî·ã`ìÿ½?ÿ7‹õ·Am?þôFï »b’2œùð×c)‡´ÅÚåì-8ÍeÙÍÍë秿σÔÜyïm‘ 4UQ5l^,)%^žGnRp´°ŠÏ\$Æ_$œÂ‹b£ÃXß.ó<”Õ±-ºo«h³>Öaäù% Q邸jÐUèëøw>6mÉßýÄíÓØÙõÍ‹´yµxhéçƒMÇöýÑíid¹¿èpÆ.ßýÿ•ïìú G%3Hm£4ŸÄãøwë0)©ä ›"Qà¨Ô+ áó1ķɺ ‹ž‚†Q!–ÁÒ¨“ÜÐñèÀ]'5$¸cb=ˆ×ü5ÛcÿK¡ûU4ž…"ú×·ÚG®“-¥ ´°°"b—4ìY%y%™µ„BúéÈ=‘ø6î[@ä[â§ÿVp}¼‰bCx¯¼×GSðéø~G±…(›Gµ;þ7ã“xý6ô²GCi#Ÿ6DžQk!}Aù6t³j«#gl?>›ªkù{€¸ß†wª`ý‰¼Ó”×ÝÑî…à~Û5öG€‡²í&j¾D‡hÌ]=ãzj»YhÑtŽ”e…-ì¬ðÚd6‘uâêó¦HS„$êoÑ d5'u3ѯ7ÌïæEN€¦ñŠ;êÙ ÏŸÃVSüñ“èãŸø¿¿w®ó×I\×°xýD³Êç2?ÐÂþn…¥"m åe¢ŒAª%þÌÆ¾ ÛÕrÎr®§éP$í&¾DÎå~ZæBoíq `9‘¡ÌÐoY‹¶î’E < žàßv—ïXÉöY%¯Ü´¸¿[‘5»ŸäñwG³OÕÚø³½º¢7Ë{þ¼‰Zf¨Ÿ¼<8ý8¬åçÜ=£ CÕóô»³ßñKˆ!Ou%µó¥@‹û»•VŸRÑ“Åàvþ|¼'[{Æsw¼â¥ïü?žzÀå=ÕÈs·úó[ú¡…Ù ÀU ð˜ÞøÈLuWƵdV€ ø+ò_w^ì ?Q1«EÒ\b!®ÿyb½&cÉÿËaµ¨¶¯ÝÏ›=AQàñGð\?²rïãÐHØ~'¿ÉúûkƒºúYàóØúµ¦±ÖÒ¦X {E=}‚ r1UÑ*%•BœüôŽ´–âÖÝÒ™»Já28æßKÎèí~Íœ†ýÝ™ 5aùyh`̶ÜOJXŒ.&Á–î¸á.âýc}ûE³$–ÕjÛ|[^KÎh1j fÔ‰–÷·+’þDT ‡¯'Ãg’­¸Zý,9ÿG–‘*î|ï®y›ç§¢Nƒù^jxâÛÇöO¸m—km­ëgåÞÄ÷Ó[Kc=r¿Òæ–×RZ!«¥¥a›@ËûÛµ™œ¯2ü×¹>2wí–Ú9MdÏ5Lj;\»ðõ5Hî¦tñ;ñ껺v?Rîã1î¬àÛúžÿ¼™Þ [1äN t¤ ú–Ú?eÓ¯å£'}`€4¡íÖü€Úí¡Åw?Å1í9îZä<ë+‚Ô„7‰pç5’ÀVøóÀ{룟h%–EáSÙù[jž(VÂFÚ râ [àsÿÞ:"§¨ÿɹ¥ñÁii+j¹±`XP™Lfžº3zoù_C\/„kX:½&6ƱnDÂr¶o æÕæfd«íKy­§}„·j6ÛX­/ßZÔ¿³Jsé Ý¥¤6µ Û§X¾œÅµœØï5hwg»!;ºJVóvÍbM¨k£[U[Ës7ßt¨¯V/_€Œ ྿ͳò°jAªéÄ–OÏ…ÐÙoY#d.à@É—»˜—Ϊ#{u˜<‘pUÌ[ßûÃ]ëVpg¶‡±¾Ô¶¹Á‰ÃL5¬þpg •¶Îv Ù?µ¼ÖÜòØ ].s-â?\Á²@†H Ö¯­Œ¹Yßðü"Ø1m"{¨lÇs+nm¬µ­¶1VßnlµxþNsZZë`™,ž•"ö… J”ì$c‹96S'†¸¹¿]¥-÷/µ™íáéáÿûØ<’}Žý“Ù3{jw¬!ÖÌl±ÌÐÑQ›€Ý“˜‹{ôWꈌdˆ ¬…-´a6Ö¶YMÞdGì¤Ï|Cþª.ue‡Ä ë{ë;¸|EÿN“[%l;l²µçõÜ6ŠXßJÃÍõ"szIFûTöK é$dªÜ–ÆÄ‘%`d˜²¾6ÿ¯FuÕ#ÐÂýS«¾|ÜÆ–£µ>9L 8 %Œ*èà Šgµ5›~ Çä¤dÕPZO¾’äŽ?ð¹bR•ú>™$‘ò1²¿æ“ù`ÐjZ½þyVÉW xzTl>ÖZ± ŒAït›—†È[Œ¿-¸e•Œ‡š¾˜Ä¤²ýKׯ*²]ÎIqp˜}d«aÎS>Ó÷¿²²I9©Ae÷“ö³µvÖ¾±›S ’'·”ÔRƒ{A)…žRbïRÂw½O$_Ji^+H-YÿHFÎßK/Á)Æ•]vKx¬WsPõ.‘3d™Á{î¹%Íßl™Š[l^K&‰ÑD ùË'§ù_ B:ëÿýU‘Œp(ÒÖB¦Âpc¤Ì•ÿQ_¿˜à %Z˜%¿þ¯íçÿÍ[Òá×9Áuq0ŸX’K®@ïÒûõ~½_ï×ûõ~½_ï×û•‘|0#u`9$G¤-9oFjƒÿ¬ÄäÄY¨¾–¾2EnÈwšI[ 9²W:…ÞNÿ3+•$äžY£J&‰O; É k*‚NòN6Èk M8ËMAÔ¨ú%¯‡´wÿµ¹ geiAmû•´£ Ê/ûø›„:0ÖÞ,e4¶6Ô<:U»êN§1´:õ_FtÏóùWV,ìK¾”&²\HŒZä/”RTjKoiíû¯+õG½ X}›«t´”/¨¿¤Vü³® ’‚{l‰,?Jß -”×ÖꦣfÔñ’™÷»iE‹oåíµ–µ¸–×’ØgÙæƒ€¹Ò ŒDþ?ë´Àtà=…ä…Íb[+l±-¬…¶§h"”®Ñ>šK‚l±µ·­­Å±èV›cZGK…öê3ùP'ƒ‘ŒxI‘@‹ò/¯HžUÒàéÛåŽA¾u©®Õ­þJØaZY{hD-”ÃÜUlQì±&´ûÚÒÊZ&+ií´…³íîªO8 £äû“qaI º‹bÿçòNSX {«mÓÇzÝ_µ_¯l}t¸mÐ_ÔuõÛ¢¡-–U³Ï- ÿ6±á6ÔÒÛ—6@óû3 sIÙ@ õO¯"x}iøí‘¤ÓûÜܯ'°þ]¢‡õÔ»ú‘]Ñe\œÒ{ºA÷è;-dYìgd‘ì»§l£³­ˆ¦ÕNè²^ýÕû÷+¥äaoÉ(½¥Çõœ—øGýçuݤ'u—ÞÑ·he¶^Ô$–ÙÆ{ëqAþ'°à¶§M-+¼XÔX%‹há´¨” ±¯ÿvå!®•ªb¾Óå;½¾g`ñÇê®épgvoõýÏF£w ëGÈü@£ÚOh'¶%ñì®>ÔÄü›Àn믚ԺÛ4‹§i¤J …ûOWØ*ì—ø:éê݇ÜuOgü4wýîßg*˜8íÏ cwTm9Åöa‘þ­f/Ýy#_ØE>ùLGƒ…9R‘ú d¯ô“L¯¤®F–MÜnƒõÍØ{(¸ÿÑuä:}´=ú9ª¯õšœ–`ÿ1ÈpýÀ£Ú/úBßÀÑ,7òb'ÉŽ¡‘…¶_¿…UC2’HRrürÝwyXʧø9îºÍ—à} ÿ®ó×Ã/Ö#ÈuCK]ÙC¸èà:ý<Ðpv¯Éfq3rþzïkšŸL!»–!íʇ[éÉÕrÂÒ¥ü™®ïëÎÛ6äí¥ýÀú2$9…ÝWÃ…îŒÇgú˜ØÖGñ·ëÿÿÈ÷Š#žÅæñ, ðm>P³*¶Å i#ihAÿp¹Ð å{ê™Çd8‡ÈsêP²zÛ×h0^Ð$¬''&Ö½†NPû‡Ò.°Ä[4ðìOw5­S±ÄäűÈÂÅ%Clg»-‚n ‘3±’“£¥—ÒÀ÷m?E ë‚‘qœ?ߟ«ãÔ]î´pŒ"çq½ Ã;@ù]ØÑõxuçL¤°0BB²À›°¨;ûÿ ‹jÙȉºéO! ëéoW|x?§Ô×—ó4qí7w÷päwñnž°< ÃvêYÞ‰œw|Œ8æ|~€†·Gä›aMwîë²¢}Ôƒqð…ì6˜Ïå´Ë`b;ÕaÓ@‹û»•P>%îuÙkt9Öt=kG"÷<|»²]?ô¡Xxµ¿.`ò½ëg4²ý®ÿß-u×Ý 1í!zšê;‡\¾$+üÐ;ìÕú~NÈZŸIIÙ"qmïw³Ë÷9šŒõ—Á‘ã*Ì7œÁ;#´<ì vãݬP¶S]…0 ûÞ÷×û›…·[>VîÕ +DÝ2P;E;mt–ÿ5=ä¬DĽÄdû½óYÎV쬡‚ss?NcÇ®¼³«ïC'‹ù»ÝÏB¹ˆg$´ç¼w ??‚Ä‚ù^Á ®ü2>{ˆ(‘Æêâ#ˆ5¥mÒ©2Pû3d¬”¾ezpÿ˜úåRÝB¢u  Ÿv@ #±ì¼ Fp½€–û«‚ñöv{_ÃÞÈøÞø®g{‰x÷Ðà¾c¯˜…¶|dCÏÐOJkÆè+ ¦"ŒhÁýJ‹í#Ë8)çåx…ÕNÃØ·‘dþÞ•ûtm\wÀNx€ë¼»Þ¥6r}\ö"çYl.æºÁnæîêE°h8ráËdÄ+`€ZÔ„g@B)«A­ÐM?ÖÎ!äØXrØ?#w¿Gžr ïf¯ wºè­uỞøÆ:Mª'¤¬p…Ç[Ø~¡ï„»Ë÷Âÿ«G#êÍÔ&|ú%Ñò†¦Fþ£<N¾Óâ·@@-KcÑè­rItxBrÛ;h¿’¹¯À¦o¨jö’á:/¯ËÍ] çrÞ4†ï‡³ÕOtWâÕõ æŸ8„ÖÖ «‰ÇÉR›ëýu“wjƒ ×ÿ!¼?¾€•µ•šE¿r‘÷”’¸ú‰ö÷ÇwûóûoaãEØÒ]õÚ‹ÖÔŽ`ö¨ï{³XMt['ÁŒnØyôð#8x V†‚Œýš›ÈÿˆÈ±”-¯¡<ÔÆá|6ÐŲÚ÷ *êHõ@‹/ÅñÿÒTeÉÊM5™JÞçú@\‡ãÇ€ëmÚV«iUmÇë3µ V›âç¿íD7³@Ç&_œÆo.p;¡E42¿Õ\ á¾±Ùg–ÙÔ’YtRƒÇel6ŒÒ9ÌÃsÓ}ãK&I@\?§MC³ÐÄî7‘o—"c©¥Í`‚ÚP+ˆèiÛ¹šß]ù½Ox÷¹ºé|$˜ `©ïûy]Gþh×ö)•æßZ¶Ð2Ú[­%=%A€c`$¬ÿ¥Ô”þ /`WÂü·@²«då÷âù­}ß¹øEC˜l²o O\Àv›ÐŰﺆ7¡§M’×_~™í#YìþŒHù˜Ïý¤9Èk‘ D·Sd)È9{%tòþdRD’j¹¿ª÷¦àµÝD³A¾ãK;t0‹¸?“ØÝOÀ›ÌÝax&þ~k»y`§Ù²—ö–òü7? m_Y,²Cwl`3ßÊÒZgËb9‰ “¨+xJLÉL&:Orã™~†Ábä8ëYl"ú rs§ðhRnÒrÚÂÏ>š?º«àv"×q2¦äÛÙª¶”ÅÉæRôLà¦Büˆw¸ÊðS5Ki1m¤–Ò«²$Àǃâƒ]ÓüXr¨ßŠîJî}xòqßÑÅÕº›t´ŸÝÌëý´,wÊ[s›Ÿ†3 ]mÆ÷ƒAüh¼¿¾ ×ç£Ïx}T{ƒ¹¾ù7©Ü•ð#4¯†Õó2ZÙÿ°4™ol™)W%3h¦ÛcA×íÙãZ¨C¨.!åFl7‹ñ:h>ô3ÁO>9Ãß`Û]z[Ÿ$VFÓUÒ=m†û‚ý¼“ `«÷/ùÂx¾½—ïŸñˆ* xå¯ÿfýG$…~µ]îÖܺÂU£ý´£ƒ¾òQ<û™ˆ+`áƒdDnNÂ2MdÍ`ÃùhÅÍ8݃þ–È]9Äg–¡¿­èÆõN^àûèm7ÉÜÕ’îhò "Ê)@ù{H<ª°™r‹è×x6©]'çÚä:ô;ä݉Lë‘t92Áääc†?D´}>_ºª«ë’3C“i'ÉŽ'uÒT¾ËïMr€mh¦'ÚÎ÷\ÃOÞéTaÈ•ûé²€òÿ0">Y#¥r;¥zÃpC5'ZXD$˜Í³óÈ6ÛOØ‹fŽËJ|£Ÿw+Ôõ/ˆŒƒüŒÀúº]NË,?‚X²É%E{­ÑHW|â<8z O¸«c§Â˱ÿ§“…|&mä”ÄðýÌj’å¹ý®{;ÍÜ‹ýô:7dÒF¦ðá©E’_T¿ùØÞ±E>( à¼y°è,ðr]_Ã/@Aw>ÝÌÿNxˆHxÉçV+ô[Ý)}$FÀäw•ùY‹ÿgaQ7ùÈóîŠý{ðïi¸ÎõítGB*pïƒå>ÕzHØ@!uü¼Øé 2âYJm%;ÐÉd,¾•Ožó“0•zwþT|¹^ÀÓü,Ý5äHÍ5¡Î hKFÀýÜYìóh*þÞxóTð\V+#÷"0ïæþŒÀ—ÇŠ-°_T¼½«ïtÕ•¼°r ‚)j’ æÑn2•ç[à·_ÐÝ2_78¼­Es-}ˆQp¤ë²ÛQ £“âS?  üud§4GºeøòH$‹]\âÉú5•Lg^s3¶ù‰vŽÉ]xWR!}¤¯€ ù4Léº -$3h)íü¤<7ð*òß&öõ'뛇¼Í@Q7tÕž Kýõy|/€Ò‹´ûrÆ÷ñEtS/aW7Óî,Zéwàó'Áïd¯ÃH—»ÍöìÝ6µàÉ|¶1+ª‰õ…Áˆ‡ðt÷[Éqýßx ºÜ|7 g=øšæ;èðG×nTþrŒh=ÞûÁ÷~¯ì{8Ôåù÷HS…ý>W§–›‚U—øîµýxw¬©…ÀHiMŽäÝ1È4„ öqÒýNæ8îG°u‚׫S_¬Å—Žã]ŽcPIí¶SÚÉ:²•ÚØÝM?ìFÖSŸnAž_\÷FžSpÙCßÑç"ü6XÄ{Áõß ±7šúÆ÷B›ÍçÏ‘µ¦~rõóC$¾Ç¿ÑÉ~®ÐH00–™ƒ©º- ò_‘Î2Ýw{â»úôÇ6M‘¿ –ð]»'`Ã=Ĭ‹xB;$ws »±÷ 5;ˆ¯\?¼þX·*–m‹µáKÛù̽ï9u]Å¿ãÛݤÉ0ÿtþ¯>Ø¿/ê€Ê,9¤>Ö¯‰¤­±aw¤³ÌTt‡ªøégü$ l9,ÌEðž £„ׯx– ,7‡1ö—nêÁ5?y?¨š«dA·½øì2ÿ[Ú$ŸÏm»ë¦Pù'Çõ¸uôÝÎZyVúŽËÃU4Ò­ÁóÏij÷KD¯0v™-¦j|=,É. »œÔ=åùü@ržH|Â×z'ÑD%ÐU’ïpõFu\»‰»›†ç~Eœ­í¼CRIRßÅ®Ȭ„OÖDua<1®7Èþ–gƒ±³ë`vO?77å÷È®C¼–ÁÄù DÂðÆn?øµHüßBÊþd–Ðf-ô9O:†wlEj×{»Ÿ)Øù?礪t'âÁ·wÑ䲓¾5ö;Îþu…ë;¹]?§Åþ¨`4~o,‹e§ÑK)ko)ÉðÿOÀ\ÄûÕOŠqÓoÆ£Ñ&øŒ;cf;^´†œh':˜ATÂ} ùO`ç?Ь–ðäQØsÈïÅ~Í&¦¹É-3üij®°ÖlX~öÄ>?'|jᬚ͠’mGl¶¥·ï‘¹.•acýПñ´ì¯&g샷OD³ãù†…xѶYÃÙýÄܼ¡{ÒP¾°ü7¤´|¬‘¨ÜL¶`ò“å ÖuŽÅbù`»»ífÏÚGæ&£¹™­5E·$VÛYM{Ëk©´ ú›ê»íà6¬á›ŽàƒáƒyäOÁ`蚦±ŸõgI-qåp€åi%­e‚L7×p±¯Zû 6‘ýïœ]ÙÛ]øòRŸ»]£víÌ‘µò¤%æ}FÌöã‹ÉM¤–t=7€ôMþø›¬}–üaß´›šp*•¦”ï-<ëª|.…ÈÞÊ öx üÔ‹íЧÒÒW>w°ý ¯‰Ð<¨%­¥Ñxš\Bi,]+¤‰†×°è'»î¡6Xôà'°´›ÿ|F÷‘?îÄîRM½…^’ ¼!÷ŽDõøõ¦—–‡=»„õ†#É[HÏËq‰âqŸöq­ƒ†µç×n|¦Ãe¶ôBî=ºYÊ‹!³Û'vØw?;‹Ôï÷>?£F²D†èÑ•xq@?vý•åK‰.Ã-ü·õRžøk=: ãYäþ ézÏ‚D§‘㠎‹[áúžØþ*Ñàͧ‰4&¥z!UÉ\ßó_ÐÚ30?ƒï cb)\ÿCø¯“¶ äÍnJú¸°„V%ó\hÑÿºÂë(‰E&ÐIµÝ\27¡)²mõ½“Ñ:D\ sïÁŸ+#u(rþÊd¶éÉ‘Ý\´`Ýý^ŒÇ?ÇÜuŸYU»B]4[k|‹Cæs„ÚH³j’O>ÿÛõ«ìÅå¤ÞßÖ"Íöó5ª›^4–œý-²u& EèÛ#Uàñz­®?I9rÜDÎ:hnœ±ÒŸ ×kDß9ò8)ª…ìs{^îàoˆ9!!öýÛ "Ä“wò+å°˜¶{·O­·?Ÿë0¼ØÛOòóÜÜoWa¾\Ô5nbRl¦¬›kÒÑOêYóøù_*C~Øùù¯=Ñ/ëWà`8ñfR …þ›•I—ÊJiöû"H^ê'¸Å³¿Ìû[ë'8·õnùÉ·Í}ÅÜ:~15L{?ÂMÿ›þÇ¢ƒ-~ÒÛu&hs+MÆÏØq*±§T©å yh¡ÿÃ:ïÏ~(¤,>L®>’H=Ìo„÷»ß&ƒöSD€Æ`þ+dnEÍÛÌÍ­Îvîˆ/Îähî‹üQ³EhãºÆ°´VÈÁ’’õÏD‹u5ŽT’Ä!ªj - f¥{+m©ÛÁôîú÷ëïxO"+ZOt†ßWÕ–à %(èèg¾OðÕ¢c‡¦H?ß÷‚uèß‹¥Oàù,›%‡ûÂX;ÛD…0]ÒxîíïWB#±á€bpÁ@äè€Å;áïã©T¦`ûmþü…£<ªêñïú¡ÀâÁÈ^‡Ç áþéþsc}¥ô&yBµ3ÜùZºC¸ù1·È)Ë‚þuø7+º.¦Ê Ý%{™_vÇ„Úsë Ÿû«@ó¨3ï<)˜põýòÅñpÛ>n3AÍh™ƒäiAû ´1.¹N$=èÏ#È©³¤ õVÊ…~‘hT1I%“„CŠ5xhìßiú!û¼~)¸^Éó.ð޷𛊲|lö3í®"ó8£1uÁXßþ–?ê,>´ÃçÏÏaÊydËô -!•%E“?œÎ$ÒMúk›ÄUÞõpê§ÞEÎÙ`ÙMHlÈ}²oÀžÓÀÄapïŽà•áD@7Iò¸¯ ~Q³{èhÏÕ¦£‹xÖÚk5r¢!LþØ:S2Ë5YLç®n‹=ÁZKñdwc¯ @'ÑLUؽ€~ÜÑÅXÿ$z Æ'Ü9Ò ý™ï¸jÈUÀKü•ƒ+ð‚ ºS JÉÂäO¬¥ŸLÄn¯ð€9ÈçΊg‘‘ãûI/ÑFk Ð_ +ÏE¢kXý÷- ~YÃqøÞ15žww¨»º˜eçoMsç Þ$‡ŒE&ÐA«KgI@®h‰ÿãJ å¤¾¶²d÷ÿ:é舆EòhÄÙýЏÞÿ¯Æ]5t]Ýñ¢l»ÖŸ ä®ësŒÐ‰d€—ÉÿsX!²¿Öö¡¹3d£X+iîWâõDÙŽ!LþôÚTšhGKbѩ٪Z("õ<|~!–{§iììJü¿¿º)‘{‘Û]¼VÝîîlЋ¾öqçIl#‘û¿¥ÞOMXØ¢ÙyMf™,«e¶ÐÜRË @‹û»•D[É=‰gnVQe‹ÝÝï3‘ÿ UQhûQ_ø+€&ús™–âÓ l?1á-ùÝY?çÉýºÝ‘˜9Ù³ ¼?3y_6ªˆ'dCxäî+­¼5•¹÷wë™ô–¯$Ž–·Ræ¢ùx{ž¯f/#id!¾¹k[ X^{Gœ‹c ò¿!»senãí¯ÈR!svûÈ ÀElŒD'Eµÿ[È[¥£T x©ýĆ4Äê¨×öi[ îJwe€Ënƒû£ä6áÅðØ·}‚D2wFäôm¼ö9`"ìÝ™o{‰”37ø°´ W=üñ/ÃÈgËYmlß[JXëëljØõXûÖ_If?ן×ʢ‘±­¸5³mvÄÏ ™ˆõ'é½vÂÂ$¡-Õg‹t|W›o¹­™O†@‹ùw×(™ õ¥ˆD†ë^’Á¸+®“µ¨]ös>\&ûŽ÷.ï _41žÆr‚–ÆØø,rÇ´–D¼¼–˜[r+ ÞÝŒøNVÇ&Ø·Z^ „«žþx”vܲÃU,²öIÐf,;ÄNÀdyÁÁxp 6@×È9É.uñí¼’XvÊqI… ²YäQñ‚ôÖ 9/ù¨°Cþ*$%¨Ð›KY²´ïµªŸ8À,èŠÂÛ#X£»±fv™# à:R‹è™JšJø}8)ß{ãûÏ451¯$ž-ТýÓ+rd–<üÍeõÈ\ ÙP»mï,qPÆ :`á”’Á’‰÷sKó¥¤fû$¾#â\) ñ4³öÓ|pÃD[BÆ,É%)øó¬2ðt"ö8- ø}nu‚ò]…Å&ããK±qZùyëSË–E_…/«Äñ×tµ—šTÒMÜ9!ÄÑÖºR†³M Ïtù×Wr¼9³œ¡°}K[gɨèÎil]K®œFJ“/§ãß¼øuZ4ïNÉ-“Ôð‡çÔÔs¹…Ñ:RûOÔÿë?®”ìy÷ÿÃÞ[€I}-ëÞ«jàÜÝ]„ AƒK$$¸[pwww‚»»»»»»ܾ_­½ï>ûì³íÜ{îדû°ú™a¦»§é²·Þú÷ZUî-Ìx Ì(‹ÉBäNçJcï˜xýÿú ;™ÿ 9%ñžcÑÐÐMq±%¤ìèûÿŸXÅ]c­7\,ⲸšèàuõËŽÄE/iÿ}ŸÖ§õi}ZŸÖ§õi}ZŸÖÿí•Ø÷Çþ .ÜÜ5pû]69àPVs½ýÖþ/¬*.7ÕNr—ùÏ¿gGÖø°ü|Ô¾#ÜYwÊu”†Ò”ŠñªûÈs¿¡øcYUS„ ¶;5Yj€ȶÆåGú¸®”«ã¸*’LÂ#ý[yæ–¸ÉVšPæùöýþ¯ëK«sÝstP“ªnõÏ~*Üïñ….´ª:-.+e¢”Õ†ZQïI%ÙO˜Þ ¶WúÿÝ•'¥þ) e¬„@ÒÎRVJ¹ù®ñŸÙ}/¿èßñï8Í¥™µŸî“gRKº#×â/ñòÇ[å|wˆrn¼ûÑŸ ? …µ‹^—²ÝÅ’LRÇÅ—Lº]JSìžWãiY ©5ª–ТºDÞ¹¸R ßÏ;þÙ*ì aù¢nªë._êI¤éô¶“1’]Ë×ÖïÒeÔ¯õ‘tߥˆ¦RërA j ýAù^è}d€—?~ …ùo¯š.«+á¾swÝ)¤o%§fUëdgý,Ë,Ù O¤«ü¤Çä…LÖ)CC«h]mô_hi¯ù5&Ó7®³Ë^þ±f@´q9]j>¹Ü—H’CêY$çå²¼–2$È¡så+})÷$›ÆÑ‹Ä$äϧÏåsÍ­ßkc-^béSb§y2× JºJdúòä¸:’PßÉ{d>ŒôüÞõë Ýky‰ý·øÝÝ/ä)Z:)o¤œ¶ÃBjD¦±µ©vÖ–Zd8¬1¥,¹0~ðGX™]ã62G`߃²Wn¡ëëq_ö£ëºÊŸë;(öçY¹+¯ÐM$­ ź=ßÑŸµº6»éwúJÒJs4o Eû7V^××øÅ ‰ìïå#~“TïKrµþ?¯DÁûô+?;*ø®AdýïÜ\·[’è "üš?¿7¹Ëj<à™o·ßçg;'‚å´».óü ¡r[GRÁ‚Ìþ¶?ò¾s¿(¦£u«³Z̰º`ß@7oç\§ÊtY*³ý¹·çÒÚïøžGæ_#½É/¥†•Ý|ôa';lúÁ™"6&¦ž“øÅ)î»H¾Ø)qm~RÐ|‰àÿÿh•¤fOUÛGRéA,½ ›N÷çÁ7‘ó6#Á€ýá§ðôˆð¡ÍE¹Â0À øzj}æ;'¾!+¤Ò b§nûi)ô®¤Õ+Ò\'ê(I,¿ZØ¿³âù%\!ùV­oÓRßÿz„ïq÷Bìôã(üØ:Ä-’¡¾7Ähbâ‚d”u®”,£â9%‰“Óþü¤jÝÏßBú—<–Q VVQ-µZíùõ÷Ö·þÓùCî{bö8‘¿›ïÛd˜Ì¤®ýÍŸ‰Ÿ'l Ö.ã¹gžÆ×ïS„× dëvc]P÷ã)= >ð'ÿïáéôño5B6]#ùˆ™à¶ ( Y/…ûR?Ó‡È`˜uUæƒó3a¯[‰üÁ|í;ØßX€,CK/¹g¯„ÓÈäÉCøºu‹ÚMdä%Û%€ ZŸÔh#›Ú©Ðä0‚lDÍOÒœ)h‘ÿj}…õ ¸¤’U“«/ûsÀ6ñj t; 1]*‘Ñž méˆäãñ‚eØ<õÞ ì˜êÇNŽž'^¶ã%O%¬&¡*8öîð—ÖG0Èë$/¯ÞKD2ºŒÁèúX2*Ýän1DÞ:Šôvbg ÐØ ß©EÄïH>ôä‘×mÄzORÃz÷ó7÷‰ú=òˆkÝ„ü¯á‡$ÕsnI©OJ ù}ç6QZXïdžj6Yì øûPÛNn´&îÏð~ÛSí%¶à»%›4Fª |EÀû0šHwã÷ýt°ûOm*È:˜Ó}bbï#ìø z…fÈ·²€#[°˜„RÆWÑÀãÏ’¥mÇß!¢_`ÿë¥ößLÔD®µàù`7Éúäù—Àòš¾7ÂS í^ËÏ‘ðý{øÇ>pb=Ùð3-€ü!ñ|ëöB²ƒ1'‰¨fTI-<~˜ƒ[v÷~Îú IæûŒ±u•Ô'â§€ôóxÇ˹wQ…{ì¬Ë.p3œà‚Ä!ºÃêuôqLrƒöÖ?f'Þ¿éÉwš\³“ÿøþ¯Ñ¨Khí+i\¼@‹ëÉBvw#ñû„~ÂårüMbØúÕÔ‘æD¼íé߉í®J=ùàÂâýó€ïþ”¸0Æ d¼mÜ? Ü\CŽ˜EYL ½áyáFexåZ„ M¬dä–Rû—À…\?²Ö-ßË4†Ÿty Ü Û÷DþöhÀ:Ï×cýçn˜?a]qm.”o¼;ºî¢6Š,i¸o¯!/¬!¢>P¤U €Ùtšx ZÆ!F è<òn WQPh«‹ÿF!jŸˆuoXˆ·ß ïÏA#áù-d¢<&Œß$”{î ïpµ°N 6 㲟ò´…¬I¢Âø¶óJoù~ÿ æÝ•D0€ZÚXjøQRCo¹*.Q€åχÿÛìÆK’Êw'Ø‹± [Èã³@ÿÅò‹?×o}AOã å±[€ÏŸDÖ¿ŸóÔ÷|¹A¥d‹ªÛшÝHýÎ#ïð‚SRHÑvZV§"û<8r ©à]b \MwÎ;»òœÈ|‰üóáükñÜ…ò+ž=–¿ßçøk€ç¤št‹É [`ñër´•çYg]S ‚‰Ôff.æKÄPï#9á4¯Y]3á÷m¨ÓI ä —írŃ÷ØäîdØq(öÄwü_ëgyUƒ©íûæqßP$¹–Žß·!¿}Ãã3ÀŠ?Í€yëÏÄF€LC «ð%¼fj-©át™Ÿ RœŸçhµ9YQu3µÀ÷•?¡«ë6¹PMê‚í½¸Í&»­D¢õ Ûdt1ÏOòYÎï7<¿#·È»ù÷(gg‚û¡‰-¾þ 쿊h_ä'à\@_ù×Î]G§ÛÉ0e´þ "XGÙKLj”‹~*Êvê¢ë~*Ú)rÀ <Â*CË+‡$&Ù?;Õ`D=L¼ô ˜üy\JªÞ.Yë;ùAjHK©-]ÉáÃ}Èž¾ÏùV¼û<|f!>°^I*d²³üóÑ òy<ÁzÝÚä»éX6…V1{ µ‡øÿ<È8älÙè_c+ScƒȦá%pÚPõFqQ$¿”‘Fäù_á{ÐCü ‚TFW‘Ìì9“¯H³ T+‹BªêVl<‡ìpÝŸ·Nùóü¼ ËáÏìo1baæÂ—óøTß;ì<5…uÔ›%i±~àÎÄ r±\=W‚ú¦"ÑßEšâñMÐE~.€ümñÿ£~X3´c=0·ñî+/ÁÁ™èé1Ò‡G6º ˜·ïžç?!x zã»ÝC³ð¬üõDbè0Qp^hù3®ô&j­tÑÜ×M~ô=íúÞT<¿-ÞÛ/hÎ÷…XÉ&¼t"&Føyh[ü< µ¾GþHßü.ÏØ¬Îó76'c+²>;9´Úà$±2 }mGÆ­žøIK'y•¢ò98Pë ìë±[c±ÞÞã°ðl~ãá»ÍÐ@cd髜ü»„Ûòœ.dÃÝx´Í9I5sYøùÖ ¡7ùãv?ë§iÅR«ÞóºýÐÀþb5öB\#;\!wàgÃ/À¿»nUîdÞ·Eù6?Áïï®9^ѹ'ðÛTdšJ>´þï{A¼¡ }k~¶‰˜Ö!ºô×C‡ƒ!“‰…­Èøšù¬ñ³AÚxLê;fœõן‚©uXàäÏên¹¼¯­H·›Ú¿ÝXq¼¦ öŸˆµ&ø@óøy4’ïೈ—á<ž²=´æ‘úüfýŸl>ò]þ€ïüm|ròO!¦&àa†›x}›)ûÖ_?šîÒLþ°RÌ­vs@æ9¼§¥~ÆÏ&j˜¾³‹õ>^Äû\ºæÞæ2I6ñhuЬ®5±%ÕQ¤nÉsK€—ÐæbÏz¯Ê þ½æ{L%OXäQù<á¾éðˆ‰¾kÄèÚßvõmv›°Ü¬ÖŸ(*avÛ‘´¶”Äf ‘ᨶ‹þ"yå~`s!øî?ÍÀ¡X½¤ïúúy¡4Õoâi ¶½#g<&\"oLA7ê)v]†öÓaãIK¥¥wp¿¹nÙ~0Ž÷i×·»IM,ÚU~‚´#†—áý'[áÑÈLïíû?µ&CÖA'?’;;;Ñá I ë©§Îûî™Oðþ~†Ê0t³„×iå§Šì ö#éE¢a¹ ¨üÃ\—Ë/@ÂKøö:ßÙx,L ­ïq—Íl¯vûþ—…ò’÷{ˇe°vitQ_âÁ'£¿ú~.R þêœØüã+È׎¬a=¡zñw§ýœ¨§žœ’Pj}qÇ~mMuE\zj?›ó>ƪ5ˆX €wÄšáÙVX'³<~&ò@îË"E¨˜j£‡<³!±Ñ ·Fk àRÛåÞ=]ÌçÞ6 ÂH<`qAœß)õùOàS3¤y@åßiì‹÷?ÞO;j ų!ÇRì6|«Äc…±¢†î*¹¸g °µDB;mÁ‡Ä}_¤«C ]“{&K ¬þÌw\†Fsû^y;ÉÿsÁÁ«býÿ>×~Zì´8ögk¿ûÑÅç}Ÿñl’óK¼Üfû†ŸÚôήظ2ïw‚ÊV±ü8lšBÒáå 4³&Öè%2÷÷!+Æ•P<¾ é碕&ÔUuxU|ýæû^XÇáGV-MÔîÿ¿Ís_Jtßçýïé¼ßã6+^ð}LÇ"{k?c‹U4mÐ@8É(7]I|6|”¿îÀ}%Ñc:¹ìú‘çvsoOÏ ª€x+@ý he‰ÜCÓ›|?ùh#µl èü7çîPýnvG\H¼Ý®jîâßD«íÚ©‚'¬G²1ÈÜY.âëAzVF’3€úÏ‘áäЛàÿ|Bå˜[æòûë€WÑÞP4Дl1ùëã]ö Šõ„I¯AÔ¿k$†îp“]ô€ÊïàÍÉ‚¹])l´¶·–èï r?¯Oy&0Ù§‰ôóTÿ‰\fðN´ƒ6Ò9-hž&Ò×~šMÂÚá3ÞCž;‘Ûpþ5Fù5¯ýˆWڋΡô°$×É.‹«`ù#Ii×Õv‰yÏvÅö"˜6ÁOnï{ÞLç÷‰|ý$@¸ì䫿.¶ˆò.Gƒe¶çq2–ÌR|×;Œ\Á—º²Äý i¦áa3w=ÃÄ+ ÂëWû‰‡Sy…mS“/ [&õ'å1ºŽ¦Ó¤P°è 0ÞEtÝs7¾v›õÃrÆÔ¹dÄqrâFâÜ:¹.Á»ßãé/`oñ4µm 9çú»·’MËjQ½JÄw%öø}¢kÐÃ5 ­/¯#: ߈>.JD­#?‹^8]j°Õ®‹…l¾íÞõ*™é.¹î°¶å~Èeòõ€?@ ¯%‹5û à1¿RÑÚ5Îh~ävØÁ žs==Áã·ð—mxêÔ>]y ôXxEbJ¹O?þÓºí2q›é?Ù@}j½Ýæ!ÏVÉêÍ€ìð3mŽr[àgb¿Áºƒü'yþ×=«&ÑK<×úÂÓÛã' Ç…å–A¥ô%¿¿z&$„tåÜà@ ï¬ïWCWœ*`7RÝ÷ìz÷ ‰ªݯ ÕePà ï·„Ì=ÚϽ¿L\Œï±ý·ÄÅ“LòÚ}$ºˆí´éŸ‹xî>lü;Z ¯íÐhy½ï¯D/Ö7°šœp-‚ÉNÈ·`p~÷ V½Œ¤—ÑÃRÞcD}âVøÈ·=*N÷×·á½;¨ÿ‹’®¸_\yp°01‹¨Yé'å,òŸ˜löýÏ’ë ¼à)™qŸDól¢]:Ͻ°å4,x¶;‚ç?%’§òþ—Ï4³ÿÔ÷ ¿^q©&á×ÝÀ7»<ë×€ÝÜ“ªþ“.Û1€øYå'n$ÞWãÿá4•æ€ÜÂâgùËÔ=kýÕï¥2ßå &]CKh8@JwVEOú=žtñmŒøšçyÓˆ ›Ú n4‘ï]¨ÛòûØ}]|¢¼kK&³îàʼn…àãžs†:تÜDË"ÏoÂpªÝ¢hµî©ëÑkt¯Ñ©~sê:éç*Z쿬/e—Ë麹¡pÓ8ªpSû<×fÿÎ%#,Ǫkø}’ôÆÎíýŒèöTÃà„±|ÝÜ®<Ûï}Y…—4Dw;ñø¤0ýxšMÏ“õZë)^å$ž•ÄÔ®×ýh±ÿj½q\z*º7¼o›}d½Ûï’ ¶âãë¸o+𰉝M¼jãíõ©’F‘÷Öù öiÐD<`°OOâE7‰¢ŒZZ€-Òåøƒhi^{4:ý î·%ÐBÿÕºâj¸Øn¸ë™çOç¶@Žøkûïý•ü!¼ïžTÿòŒ*h¡ÿŽ—ò0½‘~2È$Ÿî§§uæ“%ö’5ž"olýNifýFcè1©¡õtˆtqÝå@ ýW+%>‡|Kü¬Ã½xûlÜÛïÙäwÍìBc¹ òó¥×P=’LðÁ+.·›h‘ÿfÝ‘~t@ÿ%äµÖH¾Ï÷º]ÁûÞI68€6F »ÔØÚcríÁž È“}±²ËÛôƒUøÂ]êÝÓ àFÏm†P ØÅ]i¥©|WZà¿Y'àã±ü®µá~çC;äØ'öÙà! éw8Lßš C>Œ‡ïó;\f€û½A„T6ÊÎ}ÝáÑ‹|¿ƒ.,–£Ÿ%h#Ì?œ¾“/A¼Ó<ú‚{>H´ñ#þ!ÐÿÍ:þ=pNbñ¢ZÆ¢z_^ŒÕw!ç6Ð`*è6¼‚fÓ·à_M†?çB~ûì0¼®•)pÛ ¹-–äU¢ø³`µ’¦…æÕVZEIç@‹û_ÖZ—ݵtä–VÀnå5;^zÌ_ ˜)v.æMó³»wí'Äáõs‰‘ßaù6ë#‘~»™›]'š×É®•áþÔi#í¡%u3Ò¯Õýz=XÍ~ûÓjí*¹b®²ÔÖžÔè)õ®ÜÅ·zNsÕïn^†&ÆùOs>×5xIÍ\éµ:¾%ÇÑÅF2 U[‰ÿÅ|¿%ßéÏúèJëè@í£TƒªÊª`Ù ¸+é:¹xRœIÍ]o’å-þ×cóÍøþDä·óÏ$œÚ¾»¿Î ^Æâ÷-þÊØ>0ñšßég§ÆOID £Yˆ§®z\«ê=-!½©üçZØ¿³jãÿ¹\+×Îr„KªvlöœîOñ×½V“Ùvðo ˧“´³.Ó©ú=1ó½ õ{=OJr­HLlðó®vH,ͼýg+Õùxdiìú¹ w,¸ÉÃ]Æö;ñ‰ÎrÚ5uuñ•›.±­OëÓú´>­OëÓúk僥…ïåƒáÖu+\ù\JºÊ® )5õÞÿK+£‹C-ŸZ »Ãu°~›}Ö.lý»Ì¾ÛÇ dÏ/õüü¯~ÓÿC+3’äDæÌ&2¯rå©ùZ c~÷Èõ’»ÒQÎÈ:9,15¾N”g$õýžâŽÇÿlÅvy]gWÔ}…Ÿ—psð€üÒˆ—¸:h¤ƒtð³M£s˪‰õ¸¶ÔÈúVJÈlþΦA÷Ž¿ÿ|%ÆÏ¿v9¤¯4‘arO.IV9.}¨h'QOr‘t¶FÕHš\‹éךZËꯚ¯ou»D“Y®šû£"Á·DxZ7{×—zUj'ݨG¥Œ.—…®£Ìtûä{m£å´¯–Яô…|¦5•æÔŠÚG«sß©MüÇœ‚aSþùi厈îòçV_Ê É¬!5«,”ón¶Þ”vØ?¢¦Ñ‚ú»ØÞŽhúDRi>M¤µô¢$–ÞDMðéôøï®–ø}0n¯DФ[_"Óe‰J”'Ñ~wD$]õKnE43ψªïå+ÿ©ùJ ­¹4Hkè\¾·”|DÁkD=p;«îJN‚GÐtúXæÈmIêwóÇj1IŒnžóœ¯õ£\æ¾Äý3¿+$®fÑﵚöԉ襬 $™ã±Š“ßò!Wù('}gÅþÖÍá…ü.e¹\•"ØýR¾&:²àûª¯$µÖ÷óî ÿ BC0Ñ&ƒD Ú%_J~^ñq°¢ç.é‰õ‡²C¦Ë&ìþÈ÷kÙ%›å–ÞJŽÁ×&¹"§¸¥×ðº…{rBëòÄ-ùdì¦%ÁÁ¦WŸºRDý!ÐÂýËõ39/#ùý læ=¾~Pæûî6÷ñ„eþìòA™'ëAD;ÃùTŠƒyûø÷ÙÙ¸ß}× ëù–U»jU-¬et´ÖÓV²L îŸtÇóaÿ•î¼L“ÜúiÖÊlY û%V¶Î5çüîÇcØx7y±¾†ñýbcém¼ã…$!éM‹±“^!AÆôxE^žSS~…K” ´ˆÿtÕ÷WòKºœXÿ ƒÈÞäûaï–Óþ„ðP™$Ûå±a=.wKCMAfp†p ¤°ýáCo%—:P¢Š~aó¹熄”ì™ׯÔm‰\WÉŸ¼)Ѱà™åû:?†á¿Cþ%H~[È5|â–tç™iÉó×ùýƒŸ‡Ü_œ—L±Q^“ré7üö£VâCÊ»Àv|øÇ«€Ÿg¾Ýu’dÚ䛃¯Ÿ!ú—"Ç{P}¼\”‰È»Ûïz|ƒ'„Ð òÌ…UÛÛø V~žNà9ßâïÇñíü}:ØA½Ãk&ÔðÂr$XVEõyW%Ý<¾’êi¤ïHüOçkßÅ~,xT¦øF¶'ô(°LžHiêF’ nã1õ¬ïþF €‰g}w¸]bç©.ÊJyÎ_¤ÖÁð¡û®l0¬ bSá•qÅ$/Èý‰cߥܬçý=$ÜŠý‡Ê öÙN§axÆ9ž]ÙUÅ÷mFÀu¢b‹Ÿx@?ƒ/ÝAêù~úED¿—rñ2HïËe²@p»6P†ZÜ%•²j=ÖaÇ®2œ$3ü¶Ø“íx´õ2<àOxÞ$#|òÒÒ ‚%B¡mhá¾ü{‹N–;_h&âÿ=±ðÞô;\(º+ì"Zäÿ´RÃöK»Û£½‚Çn‘™Ò ;O¦ò@Üæ¾%Ü;Qâÿãxdò,‘ ò#ÏŒ º¿ÎÀæòÌÄø\l~ ûÛD”ï4™FÖ 0†äÂîR/MC*êgtÕýyõ›¾wÝü~ ¾Þ‹oÕ–SÝì»Ý^bÃ:ò¥~ŽVšj ,=•ªï3rÀ3Ÿƒ4%–¾‚ö^ƒzùáùñ‘$Z ]Ô‚)•uEÑ@ð¨ˆòã‹¥Üï.ŠZë[p¿£qfg_€ Ce„?çuž{öKgî© yþ~$¿"•`È‘õ¦ïÿÿ MŒÏô;%SbùœÔBõg´P\sSS†䀬ÁbB.Ïø€`Öµö1ÒĦ®ûBCb§®d€Äüy? g–[ç¶FÜ=Å–’ù6R ^'"¨uPŸMlœA‡Š>möO|-DPö“]£Ás Mˆ¥eÔ™íþl+‘ǾÚî1¸ÿ’Øþ‚ uOÉ‘`ð­A°­Ò<î§ΕÏtÈø³ïf¼Ùgо—cT=_\ þûùøˆŠö–㉈‘Ï4’VöÒ‡BCVU„Õù°Æ´Á`7d—Ê•p¯]ÙH€GDj«f‚\×¥>Ôß Þ[G¯‰þË:¥Ý@÷ñþÜ^à v}à‘Ÿv‘кcQ!?¼%¢ÁÎve쇡"jÁoÙu@0èÿ‘øoíâñ÷ÄΫÜ÷½«W‹M»< ~!ãÛé¿Ò\àŸ—ˆ€]¾æYïç=Î#–yîß©wúN©5‰‡ÓȾY—ýwðÅwzƒ…‚Ä!t¾ô@S›ÑDý.FQë ÏOèJ.h§­u‘ p=œÃÏzÜNT÷Öíz øm] fËòß\Ø]wl¹¸‰N¬‹}KɃěýi-hⱟö°Þ4y?רàÛx^c­ï—}«gÐк›¿MhÝÇëB£=µ¿äðµñ\î[·Ú½ùÀ`£|'Écc¤?lgœïX<®?ËwñµÎ€6£—Ô@úeÈvo8(!‰þk¾+Ð|þ ¥ ôšïúŒ(XBxWâ¨]=y"Iµƒ6ÔAp2Ú\GèOÚT[ ÆGþoxg'°Ó>²Õg ÿXâ¶_ ÐBoßnV^‹lòÓ–H6$³ÏwÈ Û|÷§Èþmm’(zŒû­:Þåû'ÌæñÓhò´œ ÒÀcR¥$–ÐEÚ@{PúÒðÞ±nQ;„žDeÛÜ5Пùo/•átãÌXý^$[Šõ­ãñR)C<›»ƒ¬q(Ø‚t§©.ÃwK>2þQ¥`'Þ³„¯:øÍ"`.5°hBì_$,A&P \&ä¾[nžÝ´k„Õí¼û´Ð‡¯ìün5þ^Þ¹ñœÜNòÈzà°ïñh^0‚ØYAæ9[à„¡á5{Ñç(br°ÿ ¸×ÛûÒfrÄùY‹j#-§ƒ5ºÖs+I›€Éß ÃO+êÄ;n@µo.NòópiMmßì_ÕSصq’M—ï¤-·©àÖ,vÎ3\~Àúa7› ²Û÷]F’”l_·úŽ·x™­n7ß›ï6+ç¨$ѼdR«ù+)gùÉ®ŽÇ¥8ONÜÇ=Éôt§an#þóÞ¦H$´Ó½ÉçñúåüV t‘n¾¡ßaü …ïåp ûÀg¦`ï‹DHICþœ„äC‰†øÉMb¡0yo/¨¿ŠW’LæµÏ’[­7Ä9¾ž“WÂKàúï¡ ÏŠ Ö—-Þ=Ú_¯; GæR—*w«ïºC¶¡~"äÞ> 0„ÛŠfl*Ü$l;„gÚÄ£¾{Ð;0õ9¾ôyÇH_ô8ÉOÉXè;Ì%Å®¡¤RÀä¿Dõ×V²™·PÇìý]ÃKWb«ƒ @-"ÙØívßÿîO'@mÀ!´4†X°óÏ aMãÑJ-2ÿH©î¯ü3xä‘þ!õz5ù· Ã£~FÖN:^É„oeh;àÞµ3 ’G·“µöa‹õhÀlzÐ×»}wwc†G‘ÙN¶Ú¤›«0¥“Dõøéç{¥Ú“m¾Gð:,þÚ÷½"áô¹1 ¾¿ÐwD²)A¨ÞùóÁ{Å>3{ˆ.rúÝdY‰ÿnn"ï⎟\²Æ[zŸŸs¿X¯Ã×Mô±†œ°Ùwuù26 /NÅÒƒñú޾ÛQ<`¢gKkñú[Ò”ì·AlªØMr‹uÓ…Æáï}GÅØþ4:zËs¾è§!vÞÕz¾Ø„æ HnVù†m¤ž”DÖÅxìN¾ßò}pU*ú¹'«ð†–Xµ±ïÒŸ~ESåg)Œ¶FKQ÷T‡PzçªÂ€Ã€Í›‘þ8Þ¿‹Ÿã{š˜| `úc±ß6±iðKåºÛçvJUî‰F*ÊþšÀ@˜âä‰ üd¿5Ä?JHqÉí»€ïàyÃ@‡ Ø;¤&Öâš<–`òòéó€Ê?ÐÅÖñso~óS¾Öû®í}õÓÉ݈„Exw×εŪÅ}„Lò•$ ¾—ôRŠx˜(Yñ˜QÈþ‘Èúì ‚t•rÈ_-Œ!\"‚D­J¶«e637°Pç’V»£®!ïnˆflmj¯uzt¤Ö¯M‰‚æRÇõwí‘ðg©>*K^¤ÚM•JŠù.aµxþXSZI$툠jè± Ï™D&µî˜ÆÎ;ÛÐß*¼£¾¼t•*¿#Øç~…À§ÂXؘËed±¹vÓá¾K‘©5?mñ3ï¸é®ò'ã¹e`6/Ä®‡4𳳲ɷØz±‘À_ûéA†l…gtóŸD¡Ú¿Sø æééÖüúÏ®©ËìZ!uPl,ïôxµ„÷ž LX‡döI°M?›V¾°½½D@ùàz“¦sŸMÅÞ aå)¹t$ì®,•”u]cD±Ú#Âç°£ÓpŒ‹ å^m!^ð€ $Ð×ÿZº ø@|2×Zxýplzšwxù+SÙ­€„cÈéGÈæ·@¿Rxs4Qi¶ùÏ>và-ÜcWF4/z"g}½8í5CK½ä…ûÒOC¾ {°«Ì7Ð÷ªŽ†ï? pwx÷‹ñáyÄÿ\Þï¼z¡¿Ê5ƒHªwò}_ÊI¿ª56¶®w!tæÖS<7©DäÞþDýYbܺ?Î÷14‡7VŽ»e~†ÒXpèºàÜ\ßÙû úè…îvøIˆû%Ž~bFÄV“%ŽðŠG¸ÿ¡„‘<.°ó/{æâb…î°g$÷ñ~ëåû¯]…ýâãüܯêxrd±IÇkÈæ 9«ŽÑ’Ag4)>ý˜ç,'n£±¾{Üy`h²ÎÓ™h‰¯ü4¹[èè)·7Uòºö–ßÁ?“ƒCã‰ÈËxô l=•wøšw7ÝOšëëÖd³`_4a3-î¿áô©”ЮZCßÀœ:!áóü¸}~ÏØX4pÆ?¯‰ ¯Éy»}Gµ·~ ­`Ñ»ª‹ç:¸–Öï[÷ƒÓþ$ž¿ã5æ’KGóݦ@¾æ&z]Òá!Çy]àà"âz­,ößréÝ!·À_÷±kõcÀæÖ|®ðügxìt°™l:ˆM¶/Jj%Ó¹ ^)qš^“è3þþ.Ø~{Á!Ž¢«¨ú™†×¸YOúÏX7`}Û¸…ÿ£A E÷ë )ïÎ;›oXÓ¿¿þzÿ8±]¬»¨Qoù^˜SðíU{ÐwÁkGì¶ÍÂ:s_5pa·Ÿo{dfùéAãÉòVéªÆÊjUxRn½L\}ÏkDE Y¥8Ü;x¬dÒÏÅpoÝüx9\õ[ìµÅÏó½D&XBt6ÛZ°/Yp èBŽœæû"[‡d›<=,à úùs!WÅÎC¾“úƒV׿šGkKtks·‘ÀÏ}þvÅ–ñ®°s’T-Ó=“Ø`ùLrT4~3RµýÙ®¯ ]?ÿyØ ¸^ô1?KUÔ™(H\Lõú¡—MÄ~"¦»Åº¾'Іäû]’C*j{}‹ß—ünP Åþ«µÙeq¨è?€ØÖå~!Þ#Ç¿’õþ3Ûé3—Ê  °€ï=ð„ñXÜjÀC AGOÐÁ®ûެïc\Mh†TÓ2ºG²ë*¡ÙºDHóŸh¡ÿj…Ûÿ;Tæz³…|nÛ¤æqÜÆÃj¡›D»]õý |ø KZd4ƒù÷Áòã¨p~ãñdÈ7 |Zâ>­ö×Êà`E-’i˜`+Éå4õÿO#=¨«¹ö¼û¡~Jãhô°ÌϨµ¹7Cüü³.x|[doÄ÷hÅ:žÆúSýU¿iÄÅ8â{žŸ‘òñòŠˆ²3‚NïÂ"¨] È©S´¯6–ÒîM …þ«SÀ‚g¹IØ|˜¿ö1Ø[¹3Ù®/1 ,†‡Û´ãÆÈÞŒ o±aŸh­FOý‘Ÿ=“çöð3@¦ðó"âaÚ»‡$£F~N$ÕÕVºÀUpé‚‘ýS€€ß¹×.!¨? Éæøë—m¤!ž\Çãÿ*? &^ÞÐOîëc8w ÌœæóàFbÄ® Ž ~&¡•õ¾Vì‹>-ë§J*EˆÿŸŒü‰ƒ‘ü¹¤1µXGøÜ$݃<¶ÿ§1Òñ6¶ù§ÖÛ¼–®_4çë/‚1ÝF‹yl9zZ鯈ŽôÐ_—áÓyü3N8?ù¥fÖ5®Ž‹Œä/-Å`@—¤ 5úBÿyUS©ˆ÷OÆKá@­¼}mþÕH©Ï¿6 fÖ]Fö»íwœ1/€†ãü¼‹¥ðŸbg>×%øÀjÄŸ´†Ò[b½Ö»–.F0’?»TsM©ÒÁúçâÁÓñ_;³©vSó×sø©=y|%(·‹ûî"ÿ81ž¥há8Ø9ˆÛvÎyri4ªd›{L~—ÌÚU£ o@À)n(ÿg ¥þBJÁGVøùo$†&¤b ÒùøÂb¿+þÞnó ÿ‡ŠöyA<@¤j;ÞQï—ðjûÆú˜9‰ÄÏ%ö·]¢6 ÉÎÆFú´èa”ëh‘ÿÓÚﺸ£®:²(Õj _9/wü¾·Yþ³±¡H5‹¯¾ÄÄ[8â+¼;ÖýBÃÁƒô%Ñþ o9ãçAÏAþ$HûÈãÃ;*‹Û—Ó.DÀKYé·ëçﯮ®·Æ;Ë F=Å`Íœ ÁtòØtâ}ˆ¯y‡ ý‰ªƒê¶„„ᆥ¶MŠ·Äâ§H}Ÿ™é'¾’lÜ{ƒØ¡ùa>E´®þB,„ÿ¯´¸ÿeÕpe\X)€¥c"wQ* ¯4¢’­~êGé#˜ƒmmJfz §ðý’X­'„í€ ƒ¤výà–Ÿ‰d{#OH$tyŸèˆ¬u ÒÏghì ð:7Ðâþ—UÝ•pñ€l¼Ïß‘æ.ÒLGÞu~ÄXØÀx~Z&ÑHxX]mFv áQ½)>`“N¢àñå°¿’¶ƒl¸•êwä¯Yà¾t—.×Ao¤§hqÿÎ*ê’¸9î8ùù²¿¾ù;ˆ¿8í¯Šw ¶‚bëül˗𹎚i“ã)‰@Œ"j“í¢ëA¿'ð<9bòÛyéR Li€×wщpàþdš]öï¬Ü.+ëjÁP>S;Ç;Çòó:—P''Ÿ‡×mhà”Gþ‚àä¬6$µ6AÊHÈM#è²ã"a-øþ<݆ý+à'W\1÷c Eý+µ++]îwf÷s›êG, VœDkaãZúvÞ&—$–D®ºIÃlc’’ò›íúΧ4·¾“Pú‚×é¥Cˆ‘Z_óiU;,f>ÿ£õ­;ájJtdJ£_`ùšM{€Ý‰õW­‰ yµ:R¼Ó‹is îOÔõZOëb=® ©ôRrïfÍ¥•°ö䯩?êB퉎ꡱ˜ºË«Þÿheuƒ]Õ$A]‚ëU} á‚N!wj=£7ùÛaÚçU!îÐ^ÚXé´÷P‚ÓUŸ¿¿ÊP þ(3$rw‡¯5é~БäÄê:mÔíBúÙ/³ô„VZT1¨žÆ+ÁÒèk­=¨>±A»¡ÚR'é]C„ •êï_®ô.ûèH$×ÒáDrjrÝ 8LQb!›~Ï÷qZ¼»’ÛJKh~éä'ÝÍ ×ÒdÄ<Ú¦³äLlT"†êêzYháþ­•­po]|* S2ÇgµjX¯­öÆ««÷£ÉäSÁþCR[§!gœ KÔü¿Â”vJNðn$¶_¡+u¾†ZÌß^„WÕ‘_$¸\ïþ׫ ¥—ûB"À—¨ -h<°@—bÓ™ ^lÿɤÉbJ) O‡Ĥ¾9¨!ƒâ„˜´¼ðƒts}Ü P%ÐRýwV÷;çæ¹‰.›äÕ„AYƒ2ÍéYÍt>W^&»un™kçÆºn©kJhi/¡É˜´pÐôÒÐ}ïJ¹ŸƒåÄ£µ~s­© z ‹Zîyñ{2'½M,8½Š~Úº .¼±4ܹƒ;îbJiQ¹@e_OÊJo·ÚÕt]&j½¢å{ýäRr+ƒ ƒÝT·Åe’ð2Ýr =;ru_»X. rNÀbíœh­“«Ë3ŠÀ)ƒ÷´Ÿw5FÎ﨑ªR!ô¡NŠé’¹\àd*ßé?¬¡˜kîZÁsÀ¢“¹ÂX½Ì?™ðG]5mFž+ïÿÍý1ð€àÞÛìÓú´>­OëÓú´>­ÿó•P¾— ˜ÐýêšS†õØ\¨¯þ “îþÝ•YS»8.­K»­ó­ÄOß¹5놺™n€$Ò½RM"JMÙè À úMÿ­ÜX:‹Ë«ÍÀ÷ Xú€³ø `ƒ‡$•`µOw­«MUM¯çåž”—<3/µÁ}Ù|‹üT2?»žîkæº)îšänºÊn¡-®mu€–Bîô[‡kC£14›®“¦î<$[ ø?Zi©c’¹—îwY-ý$ž®”ß%ª6‘L.² v?Ê/ú½ÆÓçrP¬«UÍ¡µø7±fךšI§¹vøÀ«÷ù¬œTwéÜ^·î¢Ñ4Šÿ|« ?¥Òß@»….—&ÕºšUséUß#Û:%á¾V³è-{‰‚o‚E—»ÿî*…ìÝjRmà!Y,§ÄéI¢95²V“ærÚuÓã2X3ëw]­Ø9.$¥FÕë’L;j~ ©'ÑbÞ?–Åf…]m7ÛŸ– ":-^VßInlœHçJc;ªN[  $M¢÷üy—]…ˆ°©ðÍ´‘&ÇcθndÈ?Òjõ]%¹.Wä¨<—øú…ÚDûÏðÿíC×Ë`¹áâj2¤O¥5…¦ô}Àð!yî+±{£j;í¡ßè^+í°ýC¬ ®¼K㊺Èþ\Û æ%' Nù¾îÏe ‘]ÇH¹/賂$ïóNñìKr^BèCôQšœØI+è¢kd.:ýcDA:lÕÄõp$¼¾”7rRnÁmìÌæ{<Àz\ß#"ìŒß y(õ™ïëw‡`S>G—ä±d Õ~Ç_M.q¥L1ðý.ÿÕJça©.ÑMoÉSßç톄ÒK²EÖË]Yã»ä¬µù²ŽßckKd7Þÿ œ“køIC¨­Éñõ£ü&G]ù%ö½þÛe}‰ËÃk»ËR,zÉíÔ×T9ú…æf} f¡‘WòAæJ6Ɇ§¿ÂGâ›ü½14ˆ a§#Á’k%"¨½¬Äoι¤ÁüšhV|´:ìî•›F¾;ïÏ¿­ò'È9y''|_<ësT.`ûŸ¥,È`gb£Áû®“ÿîIbî A>tM+k­O&èÀï¹å;—"ç‚Ú.>‘?ÀÅ–P2 ‰O‚w!Ôú œ–Ãr‡؇Í#ù-üý$øWycr¯#;>“'häQSˆ ø‚\pAÒ“óó[ä/„ï„’tè¸J ý»«<5]^wù»’ÝN ç{¿ d~}ï_*#‰ñ°œ ý+ÙŒ´Ýù9‘î ?FàvÞŸM®¹á¿ñ÷=袔–ÁÊÑškE2âj<¬>µcp[¹±K3wÕ¥“‚²{Ÿ•½`ßußl(I÷È1ý£•ŒÈÌ辑YXÿ%R\"îøsßljõ—¾#Â4¢(òÏ@òžxÂMXpo7J^'ïÑÁC¿WXàþªï¹ï0¿ß!‚"k(½MNÌ¡¿Â–»’.u0cCÁåDî¾ë$/]Ú™–å~ïó,2×bßü ‘½˜<°Ÿ¸@ì_‚ë^—.RÉÙéø«ò% 2ø‚ÄÒ/Áþ }ÌÏûÄöÞáñkDQ&­§uô®ûÉ}ë «¹h9¨Óû }>¸ŒÍü8‚§[׺aÒ l€ùÙyíu2Éw¢™Õ¾ÿñ i(Õ]i§éðø DÌ5PïŒ$…'Ãæ×á 65Á²‚~NMíTO¿—:D[€w~ù•‡¼œÚå•2à׿ÿͦ^æ';ѵ¬Ë÷{"~:?;|ͬ’jRAºaÝ×ø€Í²^ÖÿãY0!Þ`}@.!}hrÀGɬ´1È8ÆõÆúûbàV"r–ûA!w¤°Ý߉^»æ1Ä÷Ä{/ŸÃfà/{'Üø˜ÌóÝ ­oÄEj„ë €õ}€ô‘ôs|â=žsŠ "£æý ÁÊjLòA3)'áÂÁãÊH—Ös%1ïuw†xµ®¯—¦ö¿é'¾Íô§z¶ƒýÖ{±ï‘i5¿u29Œ/ó›íÿž€ôû%¬7®ÚÉÑ8p!›WP P+·×ÂäÉZÚZº9)ƒE | örõ%Š|Ç߈|Ïxÿâ¯ju%ØU#hf:Ø œÁªG‰ÙøÉYØþc,üÈ÷¹9CŽX‹†¢Ã‰“iµþ@ñ±x)-GÝ\EGépm€.Š’•æ n®@ ãËóyëNðÞ­OÃV¬ÿš:oZ¸€ý'‹íè>€.¬{Ín³°ÿAPñ1Ï¿†Ýo¢·èjç^žÉPã>Ñn=¿ßü&r#K2_3í¥¿øY¯¤º–fÁ LBÅWÓ •4T*6Ûn%¥v~ý6߉#‘áýZXá,dê¦Íõ}Îóüpëjÿ…ÖES·‘ÿ#~ ŸÙBEÓÄRO_“ùò«eÀÏAÁš:V;ê¯h>Ð+36èèlvG ãç]À¯åŽÏ“áxýYÍ&YlÄó»urZBØœˆ‹°Üúô‘–È{x@Îß #Ü/é4>å¹+@†þ\ÑךÙO‚é ƒ© ó¼üÖfS"ý70ÔÊšKcq{É{ßN–ÛNÁæçñ¡\òçó}!y_õzy:X§ó—ÄÂdÍïñük~ÔRtZÞ'÷Ṳ̂Çþ”T8""+Ù°$:È®9]ÜË_ܵuµ±Tä Âãj ¼`8>« òóNúS`Æ{&Jgßûµ>ÀÛ ÷]oí¾oô3<"$Ñ}ï·n’‡É÷$œîçµnûY?Q|O.(ÇWíà]CñAà±î°»å®ãË;|çúõÄz_i*í‘¶‘og€H ßÑ­>`œŸsËw…ß‹^n‚oÕó>r ÜO «KªCðö\0º šWécþD8Œg”DQÐÓT²æ-)BĬƒUÿfëT¯màÆÉ%_ÀäþmqËñäE ·Mo{L,œÀ†÷±Ú< ²?FÚmHµÉ;€¥1ÏHï~æ'Ý&7Òh[˜ÞA< ?ÚyÅ#¡àyke¤dÔÙøÿ"(…Z÷ÿÄ<’}åG{1ÑØ{|0Pk‚M`Ã2sýiý“0º»àô …w7Ù¾Èõ9ïÙºüìÁƒ-3ÌÂÓëÈ—Ô6vÊwµïtºŠÌV‘`<꬯ÿìt`D˜ïz~šŠG€«1‘?+•pzrMXôpÎýV^ðS±ßŒý"ûi`¢¿ÎsKÝã=oæ¾R›h°O|ΠGäúÔk‘¹˜wÁO‚X ©tïm'˃o—Á‹g’†Ϙ VZOÑDÕrþæÚµ¹bçä=ù3¼~¥¤{Àäßãr¸(`Øsä²I'Ö»¡ >åç^ÏÁ×áñ¿{d›á¯,#7ó'ÁûøÉ—‰Š“<Òo9.Mðò­2ŠÜ° )o‰®G mòoE»‘ñˆ×hçö9ÿë[¸Ãm \°“TàKÝS©(?H:øžÍ::äÖ¿÷9™¾5œg6Þ<†÷Þ{7†Ítå÷Ûü<ÉgòìÅ<=¾3¼lˆ•mÂÅ@?+p ÕR¾C‹&¿Müˆß¼Åòau¯R«h­Î8íâ¹]É#åÈîÖ•u7¶»‹}v¡‹žÄ¹uôÝå;~uCâždÄ»î¬móa†ú`ùêæg⎓¤’¯yŽÎñX‰-áy¬=ÏoƒO%÷µOdªƒÇøJ°/Œ3®²¤M_˜G$†ÃmÎÑi?»Ãæ6õ’Ž _Q¤èë¥ïîûyG–üR–ûú£ ëֈǚI'®uÊ&_¡àá0~‹ “ÜôS[ZH<ë…X—ˆhàdh݇>"i6m®g(½sõ@Àþn0q» ›XÇž­~ŠYzvlh­Íâ=ˆ“®øE~If¢‡R<ÚÙª ‡v~BeþmÁ_ÏÂó_¸$øAkÄc61Àº‹=óW×*io=XØÓÀé?ó¹ÂÈo]/oƒÐ7Áéþøì0_ÇÌÚòþßlŠÅxäJ†e«pË!Å%5øVErñý¼â3 ‡œ6)ïW?ñÈ:iUAV Ž@3ýäë)øDÊju¸ð´w@æâÀ€_»þšæ~xî"¤7k'LǺ€«üdëñÖ,L‰ªp¢£ ù¡””–" hK‰†ÍE~ãIKü\¥aDÇZ^)½î$kô›¤ò„ Y¯‘9kj·_Ûç’ã}/ûC`ô^¼~&ñ<÷¸›Çk;ù™(£aò3|ÿ§lòÆåÁªmy*ý†× Ãm#™ÐMGüg(÷5CöýhlñÞÐëÇÒØ õÁÌk· pÿû.·+즸|òR¬fCöê‚V“"¡ŸcûîØr9¨ðÖæ—“ :aùRÉwwXf"åþ*¹®1Ï‹ö˜AÅIüIG©-† Û)ùô[/6Q9“ lýo×ÿ¾uM°ç1,|\"ê*êüÞh"†ÞG#Ïav“}g'›l¼°Oª€Öçú˜¯”Tm6R Iö„Kwý6óìãÈ»û‡ÖÚ°‹²úÌw…·žhëAÛuÈßVb“»ZúêM‰ëå »U‚MýœªQpüwDÄT40ß÷@=Éû_Š]x¾T„x%™at_Qí%%#|_ÔÂó§=ÛÉ'ÇÈQÐOùšÜ·ÕsÆežg?Ä&Kž€Ï°¼)\YìeŸ]ÜáýöÅÊ@ƒ ¢øìjÿ¹‡õ?î÷µ¾Èµ‰÷jXú%lÿ[ßÏ,¶ZŸ_rJ^)(ê$>†ú×à ë±õt?qÑ_(¯‰j4m¥E´uì3•ï[rEwž9-ÚçàÁþMØù-;µ}‘s‘"ÿËçzl-©~ýÿ¤Kí@!?³oºïþoUnT*ŸûE«¹Ï®Š õP{°/;^ž‰÷þA²k-]¤½‘ÿ²u¸—x‹Œ8ìMä¥Ê^/Á#úK8"åÙb:˜6>§n(žþà\h)‚ ªð>gàñâ@âý®äQëõeÝ~Æú™Ÿ}Áø5 Sxoqt0²ÃççhM¡Wë½KE¨‰‡Øì—…DÀ ´j~¿Žœ¹T¾cÛu”µÄÅm¿/æ£+hñ]Xiå’¸~¾WÓBdìõ÷ñþâélx|8ÙO} ¦Ùt¸màà`b%±Ô|ZNWh~í¡Y5•n B:ÂmZÆZ^c—Ÿ»ü{åwMd'>àI«@–‡°‰+²Å´øÎ8`2× [Y'ß•¼ßáò=,§J5”£«‘¨/9a?v»ET_Ùciq'…¦%äÐtZL“ó|›úaŸ¯ÆSnˆèF´Q‚u©ø ›“z Ì'¿\æêðé'¶N¸/]'d·^_Óý¬çß±Þ ¾"³" ƒõ>^ì'œ_ƒÇmF¾ÐIoH< `Ÿþ…^=6ïážÏòvõÚ‡§áyv½ôªß)¿FìZO\} ÷ùê^A?¡Õz†ªV”Ÿ-º_¨ÁRÁXoóÞöøÏp®È}Ð*«^õs~Nâóù²yèOðð­ÄÁ? ÑiG´ñÈ-¥¢=€nBiX÷ÄÓÈ~¾Û9^Ó:ªÆ×“ün;%ûKlb&’–Ð/¤T E÷ë âº8ÛÅVòNvû.øÔ:þF¶§A»Ù¾»ý´³LØé; .»R–»Éȼˆlùܾe; #éb¿MÄD'‰4ÕDdXÒi?9<2ê¨`³ò5@!¿Ó/Ê!²^~­ k._¨]¼ä»ÛN†Ãàvá “ùm1q.</?EÜLG»ð£=|í@ÎûøA\MMžÏ:†#ú_ó?l‡!Ô ¨#Ñ]à&?ÿç$šìöztÚ B§ÖúÞÏr: ‡»ƒ$¡°Ý8Nkd ©ËáA½¨ƒ«}ÏÏ}èÃæ nåùKÑŠ}Ö—ÏO†&“kmòC*OVô0šèŸ ü'-øŸ×GW8„üVùåÒZ¶ºO¿c»„dÇñ‚ 0£ÆünØônÇ=÷ˆèxùð`…¿zrÁ‚ºÙŸzJžLŒ÷7Ãÿ¯I"tQ^7jWòAD]ë*»÷üÏ+št  –½É.!ÅA¿¯á–ZO<¬E+'‰üvÒ …Ó™ðž~âÃnžcuƒMO]à'€íGƒùé6h”8žÞñ;(ÃS%\G»µØrʵpE‚IG¬ürÓåvµ\Ø}u¬¼¤¶ýÏAz ~!ïð„©ðÙNhà,Á®…¶£ž»µ}²»ðÛ3Þw~>è'„ìBþHjW?#/¾‡O_@'¤öÓnZH‡º î»`"yãÒºNáöKý¬ç“~òÍ+âþ=¶Ûá;ÁŽ¥²ïŠu—PßX¿ÿ±¾ï÷a±¹ç6÷¤ROà¯vúýAÛü'aáEÖ6-±°¬È¬•µ¿nÓÂZÐýh±ÿ²²É+8@}wýs™¥>Ð)/û=OGà~½±vC*ÖØÜvÀôà6y6ÃÞW`÷‹±¾M9_†&fJNd5Ú°³ïAÔ|Ø<“†'&bk8Qzw<Ðbÿeå—뮞kçV»™äÁ>Øw$ÒŸ‡ÁÍÁ–­±fo*‚I~úûx?~8Èpˆ¬÷šèÈ÷YÉ_L'êmæÙ|¥7·Y¬‡öz"$´?9]¦˜H¯øNàC%…»h±ÿ²r‰Hf7Åå•äî÷ä1Ûÿ·‰wÙ—,ß ylþÙP/ySP -–Þ„]Ï#ã-xí¼dV"òŸ áÙýì¿õ¾“ögäœKã‘2huôPÌ ´ØY$¶dr“Ü.XLvxÿ:µ¿ÒÚ—M¿[ì'šuàÖ…/«÷Š]<ë(¶Ï?hÓoûYYÍü~"›¨|Y¾DæBZ„ü…ÌZ@ßÀŠºËû¯Ög’Ëe¡V¹ ¶)ˆc°`'dèLƇ´¶¦­Ÿðc'Æ Ö€nO$¦FƒÝG墑7§ñæÿ6k ¸±ÄODÚH.¼.oÑ×Kðt¨Ž€[î“îu …þ«uÛ}íÎHòÕ9dçw:OñûV쳌)H5Üë¾u!»-äþµDˆ]ÅŠ—¹|Ïɶëi=9/èGáNWxÕeDËarB>]¨qƒöKw/ÐBÿÕŠ.)]qé¨öíN¿Wñs"ö.•ì*n†—»+¶ÈÍ:àïÆÿí3³§TH‘ñ Y`Ÿïœ½í ç9ÃÉãð’Ã~?ès¾ß "itˆfàÖ±¼;èì„ïsÞ¥õ€¯¦§v‚k³ÄfMô¬>×ö2]D$¡æáo¬>EœÇ„çNõÓ’¦â¶/à$•À#ɨ?k%P ‹æ† _Ð\Á„ùüÇj ,_? ©ÂªýJ·ûë¢]©}ìêÿäZKNÏÄcqÕ&æ¦Õ\Z…ìžl³=T6;o š±)ßóüÙ©›Ä}= Kt·îÒÎ.(—^ ´¸ÿeUvß¹f.8nsjZb«œÈ³_N ¶ÏöÓá–û30ÑÕ®”Ô„ZB¿ÅOœ~=¯ñH<4f½lžö(?Cý: þw„÷Å*ôP~vÓ-îßYEÝ7n¤{ã¬Ö{D~·S`üU€mxw\¤>'< _ÃfâhS*¹ªZ‹z±¢öä·ãb§ÜÎbñàÀJn ýUàÛhõÈ—UK¡±&®½›haÿÎÊäâ¸n½þm…ûÛçW@ø°õoÈqù4$Ø·ëðøÜúµv×zøþ$|  õ½íi+¦{=ßM©9ø‹ƒhàOûÀïR)ì§²F”¼®l Eý+µËæ»­`ú+ÉK9‚ôÖÏ9£ÖÖbX9•¦àçKÈëgÔâÚA×sä';}9ò“3âk|½•6¡ò¹ƒÝ‰ Ãp`ÅgèëH°îŸÔý쾂їƒ§½ k?¢y¼ôßèOÄð×ZŠð±$Ö² Ä7Ú[7aSë@¿ã{&¬^› wßÇQçD IÐÑöúЮº$˜w†Kè*¸00<»Zn ›C®!¼÷|Äxn0Àºœ„Ö¤d³:Jïêp8ÀJ½®{üÔ„F>ÇU×£Z©ßó3i²·ä¯ è·üÁ{¥'>»¸“î£ÔÅËoŠÞkˆÆË Ò {8¸o(8ÀV}­ëƒŽÕÔÅúB¯ú~Gñ¾h+vÐqýQSûÙùy…Ýz6ÜæýוۥBåჹñé乺º–(ô©¨àá›eÔ@ËèçAI‚þ?öÞìª+É÷®ªCð ÁÝÝ5¸;<„àA‚†àîÁÝ=Hpw×àîîÜ-Àý­Õ=Ós¿Û·§§gžï¼¹Oöyxå¼çvÙ¿þµ÷ZU­›¿™=·å¼6—U³6øÌ4K8çÉm)‰ Uäÿ¨ Ê£ÿA)Áã.Hø‰ß±PÌÙ|²w/kŠ,9‘>=Wšj!··6(P<Ø]EÇ?Ò'%m&±…(NTÌäo¬²6¶`ÿôá:u‘Úð™ªöÞræ~ œ±X37Ö‡7wB'“íVhåWlµÐA³Àj[ * ¶øûœ@†À~ÛÉ+ ØÝl¡þKG©$We5\.»°ÕÚ¡^Êžá×Ë,z `àí¶ý¶ŸøBsÀ¾%RØvà#¥7±ðÊná;g`BÓa‚¥CãÿÏöòX¶I_i+¼¨—-bà»À7˜Å üej"úT6ø=4%üš—è ‘-×´dÇhÔ8ä™,Ç$šÆùJïŽrR_òûÊ`Z˜+ÍàÅ´„^—îRÁß5)))AÌÐdð¥|JOÉ-I£]¤9’, 9sžÿÕ£•Ô"+¦BâÖÒO:àõaËÉ%5(Q)«K6,ý7•züô-Ñ“OŠHm~ûåh€¿ÃšYñ‡R‘YëþÛ‘‘g³K¸]2%¥š4 Á}®þ<þ<þ<þ<þ<þ<þ<þÕ#¥d Ç—‚åç纒H«ëtRnù ®”4ا÷?zd’¸’G IqùNÜI¢K8Ov9+)´˜¾“Ô:CŸk'­¯#µŽ—D0¥ÔÁ>éÿ¡#“äÀÂä•Ì6dO!G®'Ï~Îá·ÖÓ:R¯Ò–Ý[Nk¤…`Å_H–`Ÿüû¨›­*Sä¨|­Ït¶ÑTzo&}¤«æµò¶ÁºQï7·––Õ\—§lVßfØZÅ«ªâ%䣊tF†õr@?ê%w£Ö¢mä=UÞKýÖ"X3ìï&Ô²&VŠÊ·›5@­ì±Æ×Ú’÷?T ´ãG¼ü¬TÓΞé1ìÿ›fµnºW3iýQ"}aspÜ ŸòÖØòYL«‹>¢¢©Ï­³¾5ꆀ.gÿõ#ØÞ_âê$¿ü¾Þк_Ÿh!Û¦…m½FSÑ‘ö«~oí¬¨¹=}Ï4³¹Yïõ-}Ês-²…µ´šUŠýá& ”!n;ÈsùÉw<­GtŸnÔ‡Ͼ¤il²ŽÕÙZÞ «—¶oÌííx¨¡ì„æ² DÂh ‘¥² ¼þG­E¿Óß?t”\ û~™¥4ƒ½ò{>^€}W5<þ}LÐbæzAÆAÊìDn¤¾ïït—±âV­ÄF¡Àà –Å¢hI>±P°Åú'JRŸ˜=+»´²¸ñ®ã½ën½^×Ol? Á.“ ÂÙb9ˆúzx}X;¯ïÐX}Ë^¼ÖÔè¡6xðƒÅמøTð:ÝüWŽtRAK.gu,ùžãÿÏý*žH6Asêm©·5&Ò—µ«šÍ’ã)à¶^ÔkxÎgä‚JVݾ¶îÖÙÚh4ÌnWÿÜá&xCþTHÃ!±ëÿsOOèM=§o±ýQ m°îK¯5ú¨íÈÿ׈·Ëñ.Qð€Wç±AÖÂúXe+éW½•ÓïCø½Ow–ŠÄÿ>I¬›‘Ö­à}¢[A¿CH}ƒßoà ûð¬Øý$‘ñ)þñE'JùÎ9·É“Oñ×õ¯þßÙÀŽýµ.9³D¿*ø•d•…2U>ÑR:ÎwAwk7¶êrÝ­§ÐÈ}] ³tßÙ|YwéT`X»ˆµßûÞw®3þAä ÜC[±A‚² `rtpÄu„D»!w"Tꛕò»Ü“ˆÚƒ³½ ¢ïÑ%¾;–[ã·—ßf óU¿–ÿrNÂׯóºÛ cT°ÒõϺOŒn®ÏC +Fþ«Œôn2Tx›£Ç¥«4 bÇ«tä”ôœ],M®Í|ƒ_ðàû°ž…¾{éy½Ë×ý¾Þ6|ý ÏŸæáº_žÔ7à_x»N^ùR“®£-%F¾FþŠ<2rÙXsù.æÂ’LËcI©åt²^Áÿ÷ƒnët&~îVz_ôÀfêDN$F+n&È9PÏíÿvû]W/Çù=%º8fžiMëÔFò‚ ä+íªáu˜T“!nŠ»¿C­§añéøò}ä_N~_ª£ñt—ý&öGûsu¨®ä§­ÈÛY[8ÛBô»éG›a‰®Ü[råA m,ü°ø÷^ Ÿ×ýTŽeBX&ȃïg‘Ÿ¥ ¼þ¤_H8ÿ-´6½l@knŸè=òÆabá z‰GXÑZûÙqíl <ñ†6“´Aïüð·#5z6™!ªùÁñID¸›òr‰æ{_­[ˆïËÚ“Ç:¿¢}9À­í¡%òž%RÞ~§É—É®?ön²Æ¿Û7.,¨©õ²Ö L¨HUrúÿ§¥:+"Qu„ĵ3ºLû"ía"`>ñàÀ4Ýî{?» Üíò{‡&èwšŒg®xÃ%u+¡ŸPGõû]ïâIWx¥‘ãÛ÷6ѦÊÙp X‹ w~ù·#=ÞŸN¾—Ò6Æï÷>ŒgïAâþX¸§ßÙ4ì—»õ|Ãý<¨×øö´tß®kòmÐhðÅDKzêB·+îÖŽ6R"÷hëIMɆØHS)ƒ-º?ÒK)Xé)+¿bÛ#xì2ü{Þ?Äw½ï;ÞÎÇÞ‡±¸Û:•Ü· Ü  ܯnýw¯ÅaA+x?>ÒÇ1×)!‚_)Zˆºù›gËm”•°Z6Ý2i-" øY0 ¶O-£äè÷oî;×Ï&Ï÷¡¾Œ÷/ý¶ã ñóã ÿXü¹±ñ ä»KîÛEHŠ­W‘"X0. ~àº]fBùì;ûŠªøGðÿlŸ[*ë+Ú(LÄK"ÈÅ%áûaì9¼ßïy§½a£uà¦!íÄ÷ÛãýÛɽ}/Ëæ<“‹8vu~êÄDúAÞÁv€„i°¹ërx˜8ÈÇoá-¹¯µÕ´Xä€Rd‚y~E]ë°"ÎÝÅøB\ÇÒ¤dñ(öožæÓúüëç3ž›ÖÚ÷Dž¢½ˆ‰5¼æ ´’öw‹'ÅÛsQÝÝÀÿw 0`_j0p3ˆÊ.øêéSª€Œ¾óë|Tƒ,Ѓj!=¬+¸GV˜ï|äGíž…Z.%ø´“ˆŸ†üý|ßÇmÈÛ—Šg£ï‚<Ì׺û¾±ÇÁ7!“-ÔÔz í$÷ŸÓçxA|ÛÆç¸ý0«þºò9¯HÆ¢ª®f@…6D_ ÊŸ6~VVÅw¨×^jvjµç¾ûÿ(m¥ÐÁ)m „±ÕpŸàD]ðŽÅhä#¼PM-•ý¦‘í;­ãg¥žFJÇ"!åe^¹/r»bû=pï¨~sÃ2À…Þw‚{§°° —Xé9Œå~}Žût$VnÂuÀâ´®6D çÆ1Þ¾ †¬îzØxìú?_§mÑÈu~rÓ?úÞ¾áȇ È‹MÑÜ|á2Üàk"ñ?…|ÔZ æs?ßJÞ› ÷]cÙaê¤õä€ú¸‘–ü öNd?‹o„3×AÎMK«>w¡¹+h&48S˜,8ÑÚ[+äIpyˆÿs¾ûËû×|U7Áïßž¡eÈí|•ß…hŸ„_¬EnšÉ¯Þ?–ñŽd6¶·ÜüˆüG@9·Ûéº>ÇWø=õÞ>e¯¾ªoñ—°‚8Ô­¼Í´ÌÉñþä}×±ª¾=Û_»ûˆ__à|¿Ñ¯‘sºY¹Ï'æG€ nŽë•w÷¸¢n?Àuä?é{ÅìÇænÇgü"¾¹]Òãùì³¼#[Š×'gë‘!;Û0}DùÓÈçROJø.§sðïç0õ ÚKhgA¾Bxþ\¤wPÇQ¹¾°C©{fåé¨éÖÀÚy­j_“5¦aq7-ϱžÇ¾{Ê9üÂõQ™‰ÇD #–ÁæYá…,?ø_¦‚سŠ|+ƒe$>>º- ,î:_ßã×ǰÚq-GÖŸ¦G}‡ëÓhÉ] h‰4uà€µÀýÏ~%v͈$µl”ï›áz¢Ç/æ¡©Shà)z}ª…ÉÅ-Ž~C ¼£—$”LRë´áŒ¡…î¾»Ó XNL[†?¨µ½æáÏ?ÛM¯2_ûi ͤy‘q Ù/Žf×d¾;R{42ÀWÍ®SÐ >qÈ?œØï;¨µ'\Oé øÚoàÌdH0¯–8’Yz ßLü»2Ôõÿx]Óæú.XýA…xú|£Þ^ÜWìsÝÃ+ñÛ8°¡qÑ³ŽŸ~Æo梻$0¿ÉTÊë@‰Füµ;Ÿ3œø_Kž\"Õ‚:á¬Ä‚5ô•ý"¤™D¤»Êv;ü¬‚T×¹x–Ï㓈šHÕA[iz-í=eqݦëzƒ;O£ áÀÐb[¢d½¿:vYSX[Þ™~´œ¿·5çšg}w‰CØ¿Nå¿'ŸQ=–ëÄùQl¹¯F6تiáô×ÕÝÁq«.ᯭ5§æÇ¿«iQ-@¼tæŸÚ‹o§ÐYS-«…ùë·`^u]Ôö’í·ƒ÷±á×ç´xu‰/3eï]{¦: kïâ,3#ÏußÅø$Ñïf]ÌÁ«+k-¯_!ÿ 0"<¦™­ƒÇ\'kö «"ynÍ>,ñw‡aùߨ{añœvÏ:Åç¹y¡ÐÞ%íôÕ@ý$Y  ht¬[ä']ïѬ–DÃè>_½/á¹õÈט¸®¢%ñ‚šøúPª$Å÷kØwöïäï]µ>µQ%ù¤½Äÿi>3¬ÅôóÏcàû‘ùHë{fÒtA–^dš¤—Q2oý„Ûï¯`}ÊÙM‚Ÿ®V›ñW 9ëW#Ï!º+€ÀD7Ñ÷¾ÞÄÊîÚàÞú5A‡ò¼rµ¯wñyKJ$ýÆÂOVó¾•~^l<Ë­Ÿ[|Ù*…e‡ïü7É[Ìõý¼Íùå²hã¿£³Ï3»é:R¿ ö K²åy£ÿÌ¢bW‡t…4Âü«@´¸jÔMD Pïî$6ææýÝD/®'Ö2ÃÑ _ýuÇM8ðmù ¤ê‚ü;9+סÝu{áû¼Ï!R÷óûô0É÷½­íãûŠfñëš¾´êdŠÇ2êGÉNn, #ÜFíçøô]0/<è—ŽšÏõO …¶øyê.׌‘|Á_"hw9Jþ;â{;»Þö+ü|‚;¾û}(Ûåg٬’«ˆémHõاѩá+Xhu-³*6Ïp“ÀÖÃ¥ÖøyZ7‰»šÒbƒáìkj¾é¼ï…Ÿ€åî·’äÁ_Ü”=rÄ_Ù™êg}Ÿ†±F77Åö è}ÕÛ¨Ÿf~ËO÷Fm‘-5öLd-91M¼Ç²n}ˆØR?Mã¼_庡Dz³ }<ߨ?| 21„Œ=d˜ìÇ#ïÁdÏù{Z'‰Ú;þ:ÿYPzÖÊ¿íÉß½…ï/æ“>’IkÚ7è¨ úq}b¯ŽõülñXüÕ9䆸IW·}'ç_ø>ù¶â«1àh—‰è) ºëc÷3¯¸é¯’î¥.˜IŒÿ^CT?áë]0¾uÓßeßÝÕŸ[~BÄdüæ ¿íB—»‘?‡å#RƒýneÄ?!ÇMI;+?[tÄÔµnø¿KS™ëcz—ïj;A»cDÀfs‘Õ­ šI»»[ü•­ÁÈ“LgHðrޝŽóžípÆ->Ï?B¡»×@0ïþóNþ Õ2"Ø¢û#5–(%“d´&¶tv“J=¾%¶«Äª›}į渌/¸5A3ñòè–ÌöùUPmÑX<= =ˆ€¾Þ ¶Ķ»ˆ•W°Ü æ>í+PòžÆ!OÄæ·T–ÑY:í*‡ƒ-ú_ôZ^úH2*¥ÏˆÜÅàøÐí-žü„ŒökÎ$Bæƒó,¡-ð³‘[¢ƒ²Ï9C|L%SƵâ`h?"àš@R³€…Aþ‚ë§çk6‹ë3Â3í/CHW¤:Q¾“,X6`î:øf¿v×­|<ï§"n Ž·ó›»œÊŠ’÷‡ûù°½Èš}4µ¶öwzÆðÎZ +÷å½O4uÿqØë{l!è!%:‰`u+ß+Iî"$.)¤*qéVûÄëÇî»´‡Ÿú¸$<Êó}ý<Çϱ\ ò—»*>ŸL1Qóë ÝNð°±R‡Øé‹vö r‚z¹‘>6hâîxä„)Æ6·v%Ц’2„ÈŸ\‡I|©ÂÙŸ·^«ë}üŒˆwý{£Úe?ÍÙÍÀêGŒ?ÒNdðhc4 Øhý»¿…ïL'x¼[Gl¬õ{…Ó ÐÈìúg°LV,¬k?Z'» ú…ù‹ëÉ …<*vŠknÔ$¾A¶vû>]7ëq¾æs+%ºƒmÐ…³y;AÅ»æ´Ë¯œéM5ÙGÁ Ü}õ{šÂ>‚Š™ÀÌ8æöC…&ÆR‚wdY°Åþ÷#«Ž”ò’—j/ŠÂ§×ûùuËýD“‘ê®Þväkt0R›÷m\×LVx Ö[–LXÀ:ZB]l±ÿý0'$Òœ#Ó€Mö½Þ[!§[=Zãíy¦.ß ‰…ê® GÆ»€‘noÄj†å~J¶»S4ů›^€^kìÎ2óï¼f¦ Nn½íûLCŽý'Éb)!ðÖuøît¬©¶âÓ§?\õ[4ð=’×õ÷¼úÃ÷ÃÂûÃÚ_Öö¿õûÀ~Ã'&FóžI~ø\"ä¬_W±Ó¯¨¹®m°e ÿ!gþƒ» VERÁw†ÁÜvÀf?Pÿ¼†¿®ãçò¬ãëm‘j¾?Æ¿–º8Öcn®åc"<?¹¹éC}ü¹%–¢§+~EåAbbï©nÏlýX(ñBú¹cˆÔ”r¿…ÞÿbaßdñS ß |¢&FçWÝ^“Ó£Ù"Àš_éÇÈ™Û<˜Ž~òë~÷áUá©.¦ÜÏšxÀ&ËBÆ‚ä©'«äžF :ã#yrõ'ÄkD˜Ÿ›ù6Í×ý#È{SñŠ_©t!é]Mb&¥®sW·cÚY¿3Èí˜ïçÁL‡ºuÏoù×!´¬U&d ·†æû·£œ”–¨Z™ºïhÂ÷¯ßCö:G,Çóçëjwd…__ÔJàÃo‰ŒV(K$\òÕð)$ž‚Ý· ÿ"êå•`Ãe¸O_rþWÖÝjÙ6+¡;ƒ-îß9²I%iF5¼Þ‚½åÁ¯Ýü‹}XõVt+$¶ðÛy‚›]ŸÌ*xk–²bö—« .Ë?Fwî*ú^ç`#Ø—”lËêÁùVÚ>;ç6 !•ßÿ~ä”üRQšÈVýÆïÙuóOW!Ë:8_Vâ!“¹K©l¢Z{[¬@ótö%œ°ÜÔö’ìúÏe›Èïö‡ïÃó³ÂùêðÞ~6Æ–Z k"Á[ñóެR\2JjØ »Âáú^Ä ¢ÝŒ¿ ÔïîÊ@^žß€Œ,—eÖ‚ú-Þß ¿NjKˆøÄMä|H‰äúßÂx.‘'ÀÇXUËwä¶+R9Äö(/±¤¨¼‘Gp–’DjjÙ%dðÜ^âXò4•á~-ƒ9¬µµ˜}o=íyo†¾ðÓâKñó;Mƒ¾ª`ézpž³ZÎVèj›ÇgäÆWêÉ÷ÁóÅ¥4 VÑ6Ä~K}w‹ŽôÍÝɾ ³všÜ÷Í&—} ZÚÙ2….\_äX`ýçhÆeºê°ýÂöT'Ú`å`LCxO°¬’YrÉ`9®›‘ï¼%:H°È†ƒ‡ÏAþ}Tòô3j¸Ã<»ÈvØC;‡u'XB<\#ƒT°ìÖÖúÛf4ð5vOBôG#…-»6eBö‘Y’€…O%­ÍÏkbº ù«%¨—Üï÷{H¥Ô ,¿`Ç‘1o fàg"âïõw¿ç¯š-°íü[n•,^0ÐÂú“¦þ!ú •ÜR¨aîêMw°o Í´¢6šø­aC‰„ T0sÐ@ÔÀSË8n“ÑO10¯Ü>5Çí×YS›Å÷äÉ}66PÄÚëÀ`‹öO‰$†ô“mZ?wÓMºÛkð`… ³Ý6Ž<¾œœ6ÕÚGû$°çrÀ¯%u@þP–¦ƒÃáI›l1žóL÷Êä`‹õO¥$ žZ‚H¾ay±lJàžà·Ùèâ–• „ ·AöÆ¢–Ùe´ôT›â9­—°wDÆtÛi¡£'¨õ3ýcõÁ«N-—ä¾=°I Mà¬E „ 4°iv¸„Ì…M­Œßí»–ÇëÈXL ÍÐuÁè_8RH#i‰×n‘õzÜ~ |¸dÈèØCì8Š.bYꜯA÷ÛÖ 90/¨fî¾èIømDýXQ7[”ñÈ"¥¬T“.ò³”Öá0œÞV"°/0ÄZôy4¶.ÀSI*¥µT6S`÷càÎk4²“ox÷÷¼ÿ}d—´ü«$ß!ks¢â¼œmøE;ôRžlQUæI]/}e “=2A¦À Zñêrü>ÿ3G&4J’Kl¸AFɇ]+Kcä«é×ï–§nJ#ñ$¯)Œ¦jIC ù“~þ<þ<þ<þ<þ<þ<þ<þ™#Y¾ì_Wí&‚” Û'ó“CJ½ã) Ù¤Ì9döxüW’RZêI]©rKI'™á@éàyÉ´³¶ÖŸôµÖ±Ú^ÓjVíçgfý¿ÂüJHüOÒZk3M£Õå¬o:Ò«º©¾cl˜¢ÊÍh7µ¸u£>.dçåŒgË!c…ãç¨)y¥Uàmßç0Ž…±Êºû>“²A»ZMÛ`ͬ‰}IåßÈ XZûÖšÛ'Ö^#éx˜pú` ðß:rQã ÅÖwäŽnÒÆ~%wUËn‡åÖãz{[1ëk‰¨øWXk«ayù—ŸGjK¢ùu„ÔâÁâ_>RP×l‘ôÚTok{­U‘ëž–µv¶@kò×)ø|r{ªOô{+må­½•²tö½•´ÃzE÷k;ªÿvT‡¹‰ ?Ú‘RRSÙŽ”Jz]ÛXfü>9¶Ý¥ñ€èTùåÔµCú»Ö¶ÏüNÁ§Zßr ‡!–Ër[O«eqm9˜1L þA:ŸÿíH+ %®´îúFÙ¿+&²÷ëâVh oWt‚¦6Câ¼à]B;£oAÃø`@u«F4dE 9,¬‰UÒ¯ÀÏÔíô?;RPÇg ~©™-‘|MøŽ×‡±r6â "2çG²«šÉSÛ§øGQ»®÷4‰ý€Ô™Ñ€»îŸ\ˆëviù?Ð ŒÜø~&¹&Û¤:8ÞÎél£Óün¸ã~E¬[å]‚\p@K!í}<¤ }cíŽßÁâÿ®›Z*Kb¦BGy´¶|lÁþÉ#£ý72_ŸéUÝ­Ût¸Nòk¶ë1dﻥ<Öxæ:\»Nw…¬°E³"xüm´ó»&Ãö‰,™=Ä?ÜÔ{wÿø *_†€ýNÿÙQ¬Î" $ƒлX;Ž]Ò©:R7ê 2 ë}óRcÙD¿²í:œØ8'^^ ŸOG>¸¨çÀŒg ¡™¹-5° 䆬¾¶øà` K#b¢ß¥øQCaÓ}Ø ¾˜ïwÅÅòë½Îë,|?—}ÚU&+¤ Þë!^÷‰½Òðé‚ÅøZ̺ëAiBz¾þߎ*D~¼¿ÞýToi <Ùõ°[Åã$;€/,ѹxÂsß×v˜¦²pàc\{áûüf0µ¼b»ïö -…Ç7 £BöDºLjIÅ` ù=²“ñªJsmäqÁ´÷~¯Ú¿£o‰.Õ-ºÚ÷ÅŸ£;ñüh`;qð¹ã[ätóqÄ6èb4t/P´ÇwÿOfu¬.¬éuâ—TQ!ñH-É¥·Ì’ξ·÷MIæ e®¯¹[︘KL¸þˆÃ‘p»ß ¸™¨¸¥×´$^rЯ 0äŸÇk÷éMj™°{A+k­¬©Õ¶SZC/QUú®ïÿó(GeŸL:J+™ç}}^ò;}îãýS}ˆ5xÀR]Žü}t„Ž#/ÌíoøÞF—|wü¥hî6:™È'¬äÝá°{ª£‘¾>rwÆ'haý +Ä®wÿpl·Ÿä¥¾Ý¡Ë°ø4äxoÇó'#ã&Ác±ßõ“õû{wûi®«çV$výA–ðî‰èe1󫆵l俉6Ü:áý¹Éˆ¨½zœz2aˆâá{é©è j/"{%¶œ©£u/^|Ô÷…Z§ aò}O¬ ؾ/¶~¤g©q:ã®'æ!bÄ­zžî÷ NGS³` Ñ‘¿ –od©‹ÛÛb+G¼ÑlÔÕ!é~xIǥњ޲nŸËX³ë/ûæáõÝô{þҎ蟌6æ€ ¯ùiÒ;?íá€ï|5ÝÌÆ~æ3öè´”ÄÊX=_Õ°}¶ÄzÙL+¯ÉCÄÞç¿i%Ö«à9§±ÿvb}™æâ×®¸ëóÖò="Û5po6Ò½ÒêRšLWÍWH«ðžÄÀß'yï~@tœ ¤¾´®¶Ñ&Û¶Œ:y`PûýïG?Ñ|ò=Ô¨€Ã­'ÓÂ’Sa²öÐþÈß^+ðµ2º.¨ÇÕuGê«ù$2ðžwÝ3:â3gÉûOˆœñ`ÆMòŸúFKÛ$[iC­>™p¡Ý¶Ú3ØbÿõÈ,‰¥¾Ü‡rià1õþ=Õ÷qšŒßw$Æ]gjø¾[ß’8 ¶ßëêdy(n¿ØDüÿ vÂú÷Ôíy o¿57ñÿwêfÄå%–ؘâXf³­›öbçËÿx–øà_i¬ÿ¾‘šý9Ï­õoL<4Ö&HÕë·ÁÚ­ø½;Èð ¶~ŒmÇã-ˆKDÍ/øÃñZŒçÛÄ3Ga™ì­f¤jaSl°•¶>䃶vAJ¢ ö>ýÛ‘Nb‘õÉWÚ–¨ÛÿzÒïwèå{žµ×zÚÜïæùQ[k]mЦ‚’ ð–%šžïºúCŽ'÷SbùΖ®Wèb?;±_Þ²€ÿÕl„•ÀºÚ£ÏÅU„Á? ¿_§,×|ÿןk°öæk#⺿ïǶ£ùù Ðo5QÑTLÄ ßO‡…‚{'ñ‹Ed‹3êVº=sáçÈŽ¬^ ~üŽ\‰Z¨XÐÙ.Y_ ;ÀSÂûê#S":. å•þeÏ2<à[P|(rþ"¸Î^=ȇA†Ñø{xŸëdz^ßû©®_¬›tNÓR F³øÂÏ ¶ ½«à`{ Ÿ|K|ô´Ÿñ‚Aš"ès¢óaùÞ’ÂÜ>ÅXTòï4–› ÆÏÓòÄû84p]L×èc¾ßÓ2Œˆ_ "Šm%×¹ÞYÎc–!ûB´qJ_ú+eQÍ­ÿÿË ×ïñšus‘BÛ'VTv8ÜÜkî>Ö qU~t‹an¾a\¬4Öw<¨¾Oõ;Ý×"YGžq]bF€ôë‘¶ÙÝ¡å-*¥SZ\\Ftü†ŒIAÿÅ\ÏàÕàcs>ay>zùM#X+bŸ‚?Yý*È÷ˆâ <øQzoÇ¿ùÈ2×÷ü ®ÓÓÏ6[éûœ óƒ«|gÈ xóGMN…{昄ܰØÏÃ3²hfäO .ì‡~üŽ " nk˜`x@N²`kG5¼#3ñ—@²øþ§ÑÌÍò˜… 'é³Á¾Ò Þxt±Nã¦uÛ~ÒähÏ3‰h·§u=©/¥(‘àº^¸ºOÁäàÃM´äz†/Eóü<¨ÈÖÜzØ~`ßS7÷>q&XèÒ˜ìå®f/ðUÜ òvâv”VÇwæ™Mð½Å0œnÞ‹ hl £¹ÈéÉ`2Oˆ’…ú¹­ÖÛÒ/š Ú„o<ç’˜ë¼OZÂgDS1-3~_—JèˆÍ²ªÖùƒ7'Žä–ì2KÜžÿճܮŸË|¿ï«à.~ð,ävW@;b¿Øz,¨–8ˆ`E­©U´dÈ9‹ª6¾=ý˜ãó6úÉÉ÷@·#ò,>ñ©E‡dAþøä̲T„SyoÕ î†J'ňþ—²›¿ÒÑÜŒ;×·z+Þ{\k#é8¬y¯^ŽýÏSOö³!» …¸ǺXwûF;Áç®råñ÷„°ˆ7x¿›”åêçdˆ…šFè:ÞÀö™ìs+ 6äg›iž ®h‚õsICÎ25ù|ö7 Ëù?çÄîÂú¿DÞsšÍb"ŸëŽpM\Pµ9>{õÒHVOˆb¨âÁr\Çß“àƒ‰œ¼/#RWGö~6«²ÖÆSvдxa°ŽŽUòÈÉu1r}CƒgOÑÃk?ë½?^Þô{Ìn·›ü¹ –ã&@\DödHúVÓåá¶wü5ßßxuB ‡m3ðY=Õe€›ÄJ,ü>#> M4³^d€Êü¯a5Uçö‘RJæyîþÄw÷r½N‚r³ð÷è¤:Ù`4ˆ¾Vs˜¿ŒEþ>0Ác2‘<–м¿Q]w»ìà`ªŸ€‰½ö³rÂðêݼû2¸ÆÁˆÊX"ËoîÊêe}3i}I4ùÇH<˜ÿxbÿ!çº ^3‹ °ÌŸD†sµoUr^Oü÷$œ×]×q“ÏêÏðåJȾ€gWƒ ®¯gFë£oÅÕÅÐᯠÄE¼f¿z”ÉgÏ4+xYŽJ UPZr@ xàí Î?˜ûì.ϱýN˜ëü½oßÉÏ$ë÷Áò?Rõ÷ò ¾Ñ2<÷3Þë»éÆ­¨[j%-j„ÏÕ,H{ióº>àÞrß¾#ßÏj>K¯.bMˆýøK<¾§‚'] âuÐyR@Fˆëúàæ›¼¢Ê9‹\ç‡q0 ×ã¹r») c¾4Þ1LüÖÏœ2¸NM¨gÁ’ÆóÛ:?v ~]—ÚÁõ@ïG¥8æ³ßÏdçñ ä¡6 ôlK%¸_[J¶ ÉAŠËd¸ÿ߯ë ÐÝór½\ÛàÙÃÉ_?#{déí¹Àß˾ß;óÕõ„éO¾pli•Ÿ!´ÖO6ù/êOæŒ÷|ËßÁ§§¡Õàý xôD°5"œù91·J3õ*Pi(OýÞeH3 v½nÖŸ»¿qÒO>­º!íø½ûé'ýÃMFšÂ£Œ]ç}s|”¸¹(? á| p£•~ÇswÕuÁç¾öuF>烿³žÛBYÜ ®ŒH)mÅÅü$â´¯—a¶‰\¿a§Ÿ¨qÏ!ët¤ïBO%Þ{ƒ°ñ~ZîU5×)oˆ±;»k&}øœþ°¡á~~ š›õ€Œ0A]G¹ýè"ü'/HX¶™— ¼£|'Íñý9Ä­ë_ßFÖŽ{QÝ<3³ÝÄÄr?íÍuF_ŽEÛa½æÄwcÐq Ö­ÓYç;þtóX0ŒçGòÛ0§t<È?ýœ_×¢ŸÈló¦p­dÐÏ¥Hå*]åKì³ß\€Åbýqœí)β¡¿‹ÿöàN/“ð‘¾|E|üÀ÷úN›[T[€m»ðL{¼¾-8ÐÎ÷ÁÙ~¸.âa]ñøÇèu™IT9n¼ TÖä às¤½ÔS7©2œÅ¾Ó;q“èN]sÜÚ„üKµ–òýkEê‚ÞÈ: ŸÙÃû®ú­ÈŒ´02 M|­@º#ÄÇmMdðŒd0ÅcüÇ@‚3x×{tð€ú²QP¯o– rZ6añ[Äíbl™ð"L#8Œë[{Æs«•Ô$Z”ØX«hAxq;l½]¹Ž·ðŠfÈRHó€Cù)ž~”Ñ~ÂÁê¾7Èû™Ÿ+¶.¸ŸŠO­õÝM×AÅÿÛ oAùËü¥Dì ¼ëíyRãã¿¡ÍÕ°§‘sGÔ„Tý?ÂÜDék¨òØ‹ÍÛ'M‘¼?^K£Ù“Õu½½ç{Å>ÖZøÒs¼a›>öÓãÜ,¤èw@¥wݯc¹½îøûu¬>ì:D†úû/ïc½{ü~™˜­«ŸiLM¥ù±ü(¤œˆ~vÁ˜\ð‹¾GÜ t×ýdÕÇ’A3òiñªw~DtjŸcÄR8› Û¼Æ3®Ëu“vªü"yá_E±ñz?¥Þ­ò» ^ïÐYÒ‡Ÿaÿsha"QK£ãÑÁïý]€õÈ‘/~CžX‰¬ AŒþH_SjN²‡ÓÏc4ë&%~M lÒ0àËèÙM›Ê Þ¨e‚¾>¼"5`*< 6tú)wâ ûéSŸ¡ò¼›1UScý¸Äu.Q/ÓI,ƒJæ³™ßçAËh M R¤ÑhÑ¡ã%ÓKC&ýHô=½¯¢™\TÿQƒ,½Ë€Å%7òR—§c•Än˜yjx7ÎÝ×Üâ˜6«Ÿh-€¦bWŧëYdÛJ}»‰sƒqÕøžÎ_íܯð7Ä[¦É-|/ƒü— dCÌ×L`xQêø‚~ºE˧±ÑÌïò^šÂÖènïçn i|3ò]y*àáxÓøFbÞÛMKKÑ`‹/Wå+Ðú©†‡Ç¸ÏîŒ[û„Zðþë®aÁ–cÑÁ,|£¿f"º3Œ-¿E³Ú @[c•¬9Y/ÞÑÀ÷þr×Ì]¯ Å^ƒ¿Ùì‘u \"SÓÚ!bXY9'Û@ºw0›øÁ#0û´Æðs ÜU¯ â ‚nîûÏÚ´„,b•á¾yýžŸá–ÊF™ßøžÈ'xÕFâÇu”hU‰Çøü{r¥ósØrÆL^Y=ˆ×þþv””n2ö7ÿNc7`¦‡ÑÁ' ßÅ÷¸_ýõÙ/ƒƒ|…ÿ\¼: è—ÃbYRßÝó:ÜÎM:~Öù{@¯4½5GÞ}ZÙÜz17õ(^sÏgÔœ!boPÉ"°>©K…>œ»K^?ýïÃú–Ã\OaÑp¡sÈ5ßO¯:Äo‘ÍÍL} ®#Ö)u3 v ´Ãö‡}ïðÛÄ’X|ªÜüÄSLßO­ª¿2|—wÞ‚)$‘AÁžãº¤“{^Ý\Êxä¨X|?ºþæ—|ø-xÆ~âc-ò2²ý}0ü¡_#9>»‘¯‡TÍYw/±ϹÍßoPU&³[&¿"âSˉ§¤%&vò®,šM‚9ýùߎ0ZRÈy)e?[hwÏD¢kXqþzÄ#öTÏfùÙ¯ðë»`e x8¾1’šg;Ò~äùP¶?ºÅk×óþÛ°œ¼°ßÈäI Ñø9‹ßEwKIÉz€FÕ>ÒFÉ;üÓ­sÞ¦E¨n ¾EwEl>?Çl¬öìzI ?$Q ׯ¨{f£M° 3HíVÀï%VÜúŸä’:ÖÂîù©Èi±.²À'Çöj(ýŽÌléEâÁÃúJËù¹ý nSzìszå¾?ݯø^@ìîçý=Öl¼no'0|q W¬?D«aý…:IïÊYYD®Ãïå°uÛ m`ÿ‰¬šŸÿ‘É #qFª„–6ÊV[{ëJµ°Hs‡ù?€ª€ÅÓ@ñ~ð÷öH7 üÚ‡Ïò}œ¦#òÏ +Æ7w 3òÎ S<âgõl1¯Š^zéïøþx4sŸHϦ~Ð pŠ·¼6½•²V°æ2ÖÙh?‰Bä(µ¥•L'JWÂ_»úN¶Õͳ_âgÏF+½ñéA¾ÇÿpôÓ‰xØŠi³4<\9‚¹Ùž}ýdàþ¼~ ï\ú§+BnMíZu“u †è¯?[ì?IoXph{ƒDn °[ó²ù–"ë ?ñÙ]ÛïŒ|=ÐÃh~^Šg¸ë#m¬l์é#Æk¦ª»§x¾ãv Þò=¡7QMG…ýd {T¥ 9]á¾…‰U!œã2ׯäý3pœó°8·ß¯»Ÿ Õ´¨ßx­ý:¾g~Šs~›~n·aIgÑØäw÷F&ó¾° |Ê+þ­6“J™›QÈVZl±ÿÃ1N¾–òKºÝ­±-½%§º;âWñ-€ õ+¢‡€kÍ@‰_ˆðÄd‡iýÇ»ÔIg‰øU°¥è`^2(ø•gÏÃ*Ž£›7:ÏvÙаx¸8Dõÿo"¹$£4¤ÞÙé'ÿæÆkS ‹œý4ðoõQW%$²W‚ËP%ÅÇš‰áò—à q,3ï9€ÌƒÜe‘ÅH¿ÂÏÕ;‡?M—±Evì«nˆ·Š!H~·ë=›ÖAVÁ¾°/‰çCÈ€³:FèööÍâë4<à$ÜÉ¿÷Ä~fjÿÈö¯ÿÉ Âç7·öqúšã+ÃHïææÝÀþçýì·ø0€á6QëHë` üÿ9ܾïQ"vÑfS±9ÜŽhnBïV$_L4ÏCæù`á<žÙ+¾@¶ÈŽ÷LJ×%²TvÞOŒØï¯Îç5‡ý Ð;š>ÞÜ‚æ°ãñ¼£ˆÝ ‘1óIùJÖ’­ û] Iìw¿Þmhæzù/÷×7!Ù=ðï‘¿R–\þ‘ÙOx¹ÄßÜ$Ù|=í+ç»È_îç:!|eßâ'cɇ_I³` ûwŽRR¾”aRUpž‰Ì­ˆ[¢Mó÷F.PûlÂóW"ã5òÄ;|ãŽf‚ËŸÖª¾ÛG"ó´_ñ¶ ɯ’AN¢™4ðáööñ1ÓZÃJZ§ ®øýGG.)-yȃÕ5§E1çÍ¡ìñ> ÌÛ .}·ÁbÜ]ŸÄ&_Ë&·ë:SRã)yÀí =‡ŽnâGÉí£¦Fúf¶¤h`½í²åÒZAxÿŽj.[çÂOÒð¨¬õõüKõâ!h¶OÓÁØwxs ëÏ«6k32úSþæ¦ÞÆ÷/à/—´"ö.:¶·zvÏÞ q* Ò4Øbþƒ£¸¤‡ ÉGÙbkk®×IÛ‡§„·…³õøõ5í æç_v»jç‰û¯© ?×ù›Cù#TÂo࣬!ٱپ‰… ä vêb=Cx'œ¤’V†Ji¸_É@Z˜M^ëk¡‘´*ÞœŠ|Õ^ku›f¥©ûh$‹kݱm€œ¹ÇßG?B¶»O6øÜf AD~qÐ!y`…¶vZ ¨ëþ™£œÂGßK;ªö—ZØ:àùÙí{¢¸½³º ùýÞÎÿƒ¨ ÖÙiÛOM'ÆÜdØßaÆ·ÈI­—mµ‘ÈŸ”Mwl«6A»~ÿïGI!5%£~Îí±MÈœ ®ûƒ-³ÁØtµµÁ«'Û]û€??"²oØʳ)ÐTëhÈ´¹9Ïhdyˆ®h'’Öç“ÿGI$õäž–Áúãënzm_˜[KP¾+Ò°íWk8mÏáô‡ìß ÎÔÌ( Þ ‚E~móí¤°Uö“ŤÔFpÌ?ÊQH.ð€Á#0·WzÎZ5Û†LÛAƒQ<öQÇݱuöÖ.á]­“]³¹6œ(mm³}ÈØcCl^0(ˆë¼ÿ•£–d’üREÎÄN†­wD´›ir_¨bë±l¤@±À°=Eà8ÏßÇnY‚À=›„vzÙ ë(ÊÏã5¤£Þß;PÌ–ó’ ¦?&P7Ô‰@¹@ô@œ@ž@À +Hˆø`ŸañUöÒžYÚÀy ¨hèÂ×#6üÜHÍGG[”ñ(,9¥"uA 9%ŸË1OUC½ l Ôµ Èß—|¸_¶km 8(ƒ$ Ä#âÛyù^¾!–BR§å¨!I$2_ÛK:]¯‰E-—]H}!ëa̽$¥VШ{SÎ×rÇ8É"e%dÌ8ÿïíá¹É‹}e‰LiÒ\ªË˜|Q²¨Ô‘ÚüÜLzÊ é$;Ä ö)ÿ-‘º¨@À÷µÁ>??????ÿ_Ž2p¹l’ÕïXKJÞwÿ?'ûg¦V(&ݤ¾d”ªò•t„õ”öÉþ`4eº4”ô0Ú¾ORÁRËh9 ɵ³6ÖCúT'ë÷šX?ÊV7ú.Ø'ý?tÄÃÞ)©¯Š›i_QwÈfxÐì£ïîWÓzZ7«d™í¦^Õ¶ÚWÊQ†ì™·ÿÈŠÂË?±(þ>wE¼Ûí‰Ëo…¬‚EÒ3ÒÅh$;®GôwcwÑBKûë׳f6Ü’˜ÛïÚM»H«Øïö?;òH=i!5%¾,v»;‚{4&r~j¡Ì­‹Jâ{†…áëZýÕ÷5ª‰ísÚ·ö˜˜Íäæ½Cµ-92k°ú/ ðíÆd¹¢>ê?êCÝ­;ï_“šÛÓú\]gü½h ˜,6ÞÆŽjrk`u-¥Æö9-´e±ŸÌøk[ýmþQŽ4äø¼RB"j+†ŸÇ¿Ïë*½¢/±yh0µ©eùVjVb"Ý@©,’­Ç3>CîÏÑÆ.͇d-âàYõ˰×çŸ;rísáócõyȾ^·è9øÍ6½¡ô¾FÄ¢qì>°C£˜ë XÌ Z";¥'ô¦ K–²oð„ìd‡Èî.Š^‡;þP0“Ä•Âò¥\“Þº]_ø,'ô$ÿ\o¿Éú Äû aíþðPoá IÉ new|¡ ¾pRCaÿÏ쑟‰òœ ‹>6j]©òÀÁ„X)¥l’>zŠ3…7ñûvêT«£ÐIRûÝïçÿÄ>±ÍšÑ÷ôJ7ˆšEäoÑëÝ£â3täöÏä&_³Zš¨ I]¯ÿÏ£,?%ŒgžÆ×Rƒq°âbßniÄBT‹i«ÕI÷ÍT&>5·²ñ*ïÙe_Ù%°â ùð|ñ XyC Ú4›„wÌ“ê°Éàõ;ûÏŽìTx™áí]t09¬ ¶Œnï‰x×Éx­ÓÙºønwU“‘cƒx®¿ih¿¾ùñàî_Ó•¼þ©ï™õ\_i.ð°½µ¾6‰L˜WЇP(ëQ¯Œ„ÖÏ@·˜Ø4-8ïÖ9¹ËuŽ®öý`ÜÚ®³ ÂâÜ­î‹Hôg°Û¼â Ï$¶çàæ8^å,ŸÖÊYCØ`MëcãÐAb (Ð*ØÂþ#7Lµ$Ñ?د=ÞŸ×ÄØú-²lÔéê&‚ÜÖKÄÀ"òÀVéû^]ó\à²nÐ ßc´qŒØ¦3ô2ù2!‘ß ÞÜ(oð©’:Mq“áòK6)O…B²ú,v]÷“ßÔ¯€ùé:è2€ÛºÀ”nÏ×CXÏ=~:EÔ_àïaÌeŒC:oˆgɬ–ï‹êX;›bÝm 9Œ¶ƒc…¬5€%xü"®kÕ{¼û>‹×áÓ;ðøeÚWÛiì¾Hûµ€ãu2»yX%¨ vù5anïøK°à†_÷¼U!$³j0Á„ÖÑS'·³ÔHwlºµ¦¶(l‘ÿÑTÊ$‘ÔÍ<º„ç>&¿÷çcí­Øº£vñ?Vê$¸UògAÁS°/íQð›ß5û¸†õwóÛ(tçv‹=Ð4ÖÕÆÛÏÔÇÐC[;c+4MZ ‘Æ›XNË~ÎÕÍð‰ö}Ð;äü)XrµßÕÑ L›ë½Á͘‰ý§Ã‚6ª¯üšÐÙøÿm7«xçN^3Ùw½‹—d§2îa+l>PÇ&[+›O¦ )Sñ>§ÒŸGÖûMóZÍ¡#à7ñô‹øùAmí;öö¸7˜Î³+°ýFÝþµ‘|È8Ÿßƒ>ŽáýJÀüþ‹nFöç†ô#¾¿(LfíK.覹BÌÕ±Ì`QB²ù¬_Ùk}"y)².GŠñ¾ÛÉ0¢£už? =LÀÞ—ÈÇA‹\rYB‘û—!óG]ƒµá%n݃Ë ý¾úäVìA”¶6Æ&ØTÇ"i3À:´±¸N÷nwÜ"­kFs¹"ó}£©|—_`À‡½dƒ‘ Àô³‡‡[~Yݬ¼Ú `N믩$I¥ÏIîöÏ¢¢ùŒý]£Øn°¯çÜBÛj'|}€ßÝÚ~;¤_B~_îà\ªÛGøz<{"7äWÍÏëݾñMx’ëþzšß¶€ ®î<Þ³ÏÏù­\Ò¬ÖØJÙ`b¯PPåO+Y啸Lï9ëß±þy¬ïÖü¯"ïw÷»™¶âÝ|_—aÚWº)×µ*ÉÍ2x¨©m¼î—žèl=ºÙé÷<ÀÖ®—ÌEJÎÜ 3¾Ç«kY xâ žOi™Éƒˆ€àÞø ’@#ÙKPkªÏm¿àíÃx¬×ïÈ„xîˆ?€HžƒÕ—¢›d·©š…ßë“ï"i}&}ùë:>e(zt¸ŒõžFY ›ŠE-™Ï>‚µ x˜ÜšØ-+±ƒ*T0¸&¸·‡(ÕGƒmݵþ>W›cíDöKòX_XмÀÍB˜÷ï‚ÌÅm!ñqW¾  Ȥʼnðáþ:ÑPá.Z{À;]ŸÇ<»&|–<ñ ¶˜ßo*F䬔¯‚(}2‰/¥6qõÜ|S8ßø@{?û§6ßÛaãÍh¡;þ=›rh¿uÍ*úzÇjë`¿Óq¯Ÿ 7—O8¥¯¼Ì³°ÿ4p6ü©¹Nð¥,ö/b],·m ê~€d¿¥Òˆ(]@ÿÎsÉïäÜëg¾ ZûO‰äó¾ËíØ\+äo¯axÍ6$Ù¤d,üþ"²¿$î7òŠ' å\Þq¤p^Ün)w54ŒÅùËúÝ‚%,’µ·ŸµAP× æ‘Ô= ¨óoª›btX]‡6ñ÷wáôG<";íó̶ œ<£µàË¥Éòsµ·,Ó*ä³+šÈž£½šÖœ‹Û5¢~ˆñTãX4¸_ÞQ™¿”¶ˆVÓÜs“l¢´šô¤”ôzÓ\Í¿=¦@‚·êúýoÂ÷Ûá÷ µØåÌEr˜Ëdñï€BGQüœ– †{ÛǼRA†ÁÂåÐÈn^¿Ž¨OhéÑ` x_"¿¦¥²¦|ßhg-s¯Ô ú«È6¼÷¥¿VUœØLhQýŸ÷Øn~þ#¹ ’oË·ú½¿ #A€1šÎ޹씦·L¾VBl{æ ŸIˆüWÞMÇçý¦y,¨W_©hݬ§=±(LÚ+hòw’2Ò¼ïçyë *ø·>oÝ@â™Úë÷óû½7ƒ’'í™–ÑBÚ—*¾¶’~ ÿ]ß8Œ½ ~á;æº.²Ç|öÛ‚/¹NPÏ5:IοtÿpS„Çèá îì(åd´´ ûÁç—û °›sžÇϧàçmÉtaDÓ‘p,`1±»V†Ýu´øv”îª4Õvòª+~è>j‡y~bªë™Ò®|É€Ï'Ar7µ¸Ÿ”(y¢?èÈ Ö€ã¥±ô’#Dì~]g ¹m<ÿ†’ëÛy.0ØÉ÷4o vçûòûh¸ÑþP[“jÓ ö@Ü#u¥›Ü"GOCê™~ªÙb¬ÛŽ\¿ÖsH8Ï«Nõ7_„/Œô•áft6hþU&¿mOƒ® ì/|Z/>¡3 Ÿxƒ÷o —®æób’ý™댹‡ÿçKbdFPù.™+òÎt¡z7ï®?y‚Õ¾Åno‘hñ80„Wuº#»ë1Ýw ^ЧŒÃò®ÐDü~´¿OÚŽ Þ`ÿg0~w}è4šp3àÚC/¨ãÛ1-Ôbye¥œÄzGýdŸáÈ4Ï ^â|]§æ×üu:1<ØÏ=m…Ü•`7}½ïopÐ_óÝê-FÓx]ô9–Oq]3O`ñØdÕ»øÿ¼cïéÅÿöŠŠËu€¨9ƒÚ9£lwMë&µ©ëõ°–Øî‡Eo`µÒvŸï¡ÌMÄÙúsþ}ˆëÞ¾WæÞåjœ™Hó¬ÛHTôò÷Ú¡›Ùd€“Ø{ÜÈõHvóB]w¼ýU¶ã=Ëxý þ¯Ÿƒ8ÿÆÝõš!+ÕÕän’ãm$ÚŒÝõk³ªÈÿ»­"#.ÞÕÀþþ>È8âa_&ê]'Ã3øùlì;Ïï…绉¹.ïF£ïyijôdÎôhøþrœ˜ k ÌuX;¢WƒÚ´+ÕgFðk-ñøxŒU—p^wˆþˆð9×}ú˜é{ÞŽõSºà ½ý„ïä"¾÷Ó$ŸAÄŒäo£a5±ï%~†O goüžðPö]ºù±É}©É‰ì¼fÖ`Ö¿?Ã>FËx"]á@nráô¿Þ¹þybÁå\ç–]øj^L>kw·…vÆs§àÇà´¡ÍM‚ B6ó\Ñõ «¥‰øûzôó˜ÏŽda©/j4l¾—XûMËÃ…B[x`A*ÀàÛ$³ ”ûxò^Îö.õòw÷waáÃøÅ,x)ÇjI}/©ô+|ßeÂx÷0žß­É첟†9ÙO„qì ŸÐxš…hÙî#Ä­ƒKOý´Ÿ×¾òà¸S2;§ŸÙP]DéENH©Eý¾ _vs>Ç‚ýîÎÕnΰ°Ÿþ±Ãÿ6¾_Ãk MOü¼'þ¿ùÝìSw­s;Ò;ÍŒƒóe…ÕeFˈª;þŽHlkóÝàçÅÆ6w‡ð…¦¦FžªËƒ>ÿ5#5€›ç<Tï‚í&!ËS,:_#››l \œªÄÿy$É`Ó‘s¥ï‰Á÷¼}ä{Æ®ò3„ jh4•‹øqú¹’ºº§„ùº®aI,ÚÞרÔ§5Ùï_ŽòØ™ŸßÓ™úÙ/áˆèêVtư‹¾«ó:|;!µ~(<àsªâU~Êû6øÌw`Ä9Þïf/ÕJš\ÃÂj?'OîñÝ/ª»¯TŽW}aõ‘¼&‘Ñ 'Pÿ DcÉ"nrõ.¼ÒÝÕ»íïë— «m%ú¯úLà®ç-Яýü×ß½0'^!£»âãzáÜîžØø@²ÃNüåìÕ¯þ¬ŽMÝÞ˜ðšÂõ5ÆŸvÂóN£Ã'|v€Š7ƒ}aÅì+rÁR­ Ù‰§ˆ:;¬ ß(É%+žàŒç’¦v ~Éâ™ë„~”¸ØàïýÌÇïãƒY<ûéf›©â³ }C›æ¯Ö÷ój9>i1¯?Š>ßEßîþÊMkùÔÔü†Ä×Î’/ØâËqÉ#×%2¨Þ ÖòÒs¿cž ‡7÷u—ßutß" ¦m ÃíJdL´%V O`Cl¾å‚áLä3ò“Îã3‰¥û°ŸO,ü/“…±äü"D~r|!¼mÔ²Ú,èw?Ý‘DúËb`gý¯½L¼È¹G2·¶ñq¼þz…¿þÊ·GÊ¥þ®×W¶{„:©…u¶×çwŸÆï‡ÿ]Gª•Xþ(?»{`Gó^RÜêÙD‹7—„ß8m½ðó¯[h7¢§ùí:ù!³¹½#‘‰¨,¾#ZXûÄͽÔwúuˆè´DbˆµÛ°d8/*çxÊGmCltxd8 —w•ï9<ã<çþA "Å(44 –T…ȾÎsÇ©Á£žðþÅ^~×#´hÕO‰ƒõSò/;~ðL³ÈÜ` Ïñ8Búƒÿ‰m.î1¾æçvô]þ.ú;A[ÈmÈ‚wyÆada2Ù>ý™<Ù@VWs}ÕvRîãq‰ .ÄG`ó°Å•_<´ßOMÌ&g‚-<Ç}ðS)NårŠšÅí_yÛ™„$gõÚp€ÇëTø½›iâîò|B&{È«»Qõu'&~""RcÑÍüõ%ïvkFá1i¬™M·¼æ&+Çç=¹á}-œ!¯]Ò*!¢v(í*i´^ÚÆûÎO¬Ió }„† ðëÿÇ ýbâú,ÒÇ´Êpž­øCm õtzpû"z`ëøþò©[ |—j'ôw<éGýÚšã7µ`A‘­œýDþK䫳¤µ\—Þcï÷Èw{¯ÀÖ® òmj– T<AþeDz4«`U‘¾!,¦±¿RhA^<"üËIb³á‹‡@@wýÐu„;©Éy‘ðù7šëw47 + mÑ{°¥I¨‡¥š Äê»9ç“ xt¼ô’ßã'7缟n÷òµöÖÈêà'mˆõ{#/¸Ã­C}4SÄßëØaý$x­Y-ºEÁ'Ž«ë”›Š(Èln•ÑWþþot(éB€üÉô¾“ƒÒ’ ŸÉ\­Z™s¾  цÀÓ/Í“`ôñêzäº _E­LÌ×@ú¶Tzøiµ_ ­dí¬´]æµ'a;nÎW sS"!w*¾—òþ‘œÿ¥‚—ù)È/òVrK[qû¶jr~¥á*ïÑÅPà×ø/×Y~²í`ªã¢~Ÿû$¤ïŠÅí h}ø ›…= þ»[Gƒ×µ3 (‰•'ÎOñ=1z(æïy¥Çïkðü9MiUea°ÿëñÿ¿#Íñ[wß;=YꜟñÚ‹m?¹øCðñùÈ’‡:ÇÝ i…>º¡¡šž8˜^¶çù–°æ¡HÚï‰é'%µP~MËGì´³ÆV×÷ŒoEe°ÿëq@ÚÈvùèw}œó!«ëä>;Ž ›»»?Á}ûøëdðùïÁ¼µÔ‰-‹æ‚×¼ Fz ¯ñø‚Ûáî¨Ý‚=»þ÷O‰#7Od3ùäœ_-_Ժ΢ÁûßÞ2K.JCû”óÝ„-×r¶‡|'gw=pºƒLí{ ‰>X,»¨†%gê²|t;IœŒö÷½úúJb;Ñr‰ŠAa?®söbã5¿½D÷µ(P6ØbÿûQEFKY™J®Žn®Î‰`¨^®øUŽËÈ}ËüÕ±‰H×Í϶„mŸÂÏh:[Ésˆ×!z=Úrzù‰a«þ{om嵤íVÕÂ=ÁÝÝÝIpKp·‚—àK°à.ÁÝÝÝÝÝÝ pŸ9súÞÓýwësÇÚùGæ{³—²ÊÞzëû¾YåÏ’î‡nñ;…¢€…­øÑÜÂfêö`‹ýW«Ô“!ÚŠ,u nçŽçÄ»Ìø£œ[t!òOöǽ»únБ<’}D=€!‡Û»#=בy°Ÿ±ˆw-Á#Vð{= ÒåýÚ6” ¨#¨·ò<ØBÿÕª&ŸKM™¡Mí"ìþ-v½‹ÅNóýç"Áý™xžì¯}Àcg4/œ.7ZŠ š}ŽT×ð†èT‡©˜f‚™óxÇ:°Ä!ÊUü( Ye¢-²;6ÏFÚQ/iåu°…þO+d•U †ò›V~Á£W Érüvݨs4zXë¯ HLN‹ýkù«¦ÞR纹N§ýÓ©‹Ü°—ð7óâò·„]mûm¥E ŒÓÑ!®/b~I,¹eŽÎÂó‹ð¯âÃ.ï¹ã¸ °æl?¹æø¾ök‘ïWÍG†bßÃjÚúš`#·ÅDˆ»êßí Ë[NžT!ã¥ÅWÚ“&J³`‹û¬¢’\²Ë>)Çwüfo‰üŸxý!ºTY).‹äža•Áí{ú­¹éoAûÔðãLøù3‹ÔSð€ê°¥…DG}jâr6«»küžk2ª·ç;£ßéTƆÙV>¯\ T ¡Ö ¶ˆw“ÅT?ÀjóáÁ5¨xkÂuRQ˵°ðùwx@YdêbÝB¢‚=ŶÕ@÷pö†Ü‘ÑšÀsWØ4Þ]ÊOPhcç,aà¤6 áÓþc¹NÆ·µš °ù0¶r0ÝìÞ«‘;—Eý¶³õvÜNXäÀ9äîBÆhMn ø ½U°NÖÆ÷œH‰ç™O){DñGY饥TÒ\|÷v6Ú¾²O}¿#Ü#eQŸñ«ãõ»í¡}èGÅ\Å^’CzA†D¼¦œ ´,½¼¯§M…ñ– ¶PÿĪ+y¤ŠÉ®Ù=«‡Ï€µ_Gú¼D@s8_-ËéýÍ^ã°ô Ð/=±Ò‰»{oX`5…m‹×Œ!ªßÁß_ͤ°4/ÉwÇì±ýÞÅ ä \ÂÿÛZ[fcñ‹öÞ¢"šæØôR $œgçytƒí V"6æóx 9G;þñÕTæÉ.,µí|Hà1\æ‘Ý´øÄq xnÕeioŸ’.Û."þŽÝµV_xÕ E܌ךJ›[”qÕ”Îh¡§LlÔñû-t Vàë@ý@µ@Æ@¤@í@ÚÀk§[¬N 4÷Êcõç–Œg—ÚZ]/•à”‰Bì¼§t}.Õ¥ž f «²øw Ø#=O”ŒÓÌpþÂÖR›ƒþ{´².’Úò‰Ô¶Áþòÿ¦ÕJæR‘ëSwË)‰¤«d¿Œ¦fÊÀ-:êŒÆÊC™ŠF’KØÔßäßµÆsûon(ý¥ƒ|#m¤ªÔ ö—úsý¹þ\®?ןëÿç•6WBŠú«ÖÒInIÍ_Y$,¯,±¯Œƒ%u’ù0€VÁþªÿæ•É‹Hò}¤îŠ¼Ù‘;T”;ò«”ÐZD»i3®u4‘n—‰pƒà_ÛúïZ)$‰T–…’]7ê$m¡áU¤úpWµ…¶K~"î< e…-”ÒÏôl“ú’×OŠøc¯ÌË“TÚY?µhÖØH½.›$…®¡2Œå{¾7§&.fµŸµDÓµº6ÖPš®RzÜýk+>ž_âIku»6ŠÙ¯ú\sØ-­©›å¥tÖéVÐjZEª¾"6ܺY^«bÝ-¯pSiE*§‚Áâ_^ðà DûšÇ’Xi+nç4¥ý¦m]—(Í(É­Œ¥µÆÚ7–ÞzYyËiK¬qÄ²ðŽŸ´+ÕPó·ÊJ#ªº¦Ò_kbÏLö¹EµÝúPïh+iKô†Ô²èævŽô}°^i^+€jól¢¢¼}mql¨ŽÁŠ[˜zÅ#³%—]wmKJsg½ÜÕñ4qð^7éÆ¿ñÌíqÛŒ›§°r#JY%ë`í,¿]pW‡Imräg¥%îSH99 å|O‹¡Èævú†³}Dõm}­Ôé¿®q,¹ï~ÅÏ…ŽËßî É#¼¥hÇÚ€÷µƒ ¡=Ÿÿûå¸M^i&Éu„>Ñ‘:yßç Ûy½¨çõWýE‹Xd[¤Å->,˜ÔêQ?ÁM~ì¹íz¨n‚ï$ÓÊR-Øbýƒ+…$“ä0¸›2Pw é l>ÉÜÕ¿è.Me©‘é©F¶×°(HÕ YUïƒîÇ_žƒ1,ƒµ°ÆVÙ~´/-`‹u-;Ø¢ý«¤¤”Tð½»²V×!ù1ü>²­Ð~GÏl Že´Wºo .fà^ŸÒ˜ã§ˆ—Oà‘°¿ÃC÷xXËŠ/L’œ!ÓIz¬”ܰ„dû06Î÷@×®;Ð|}ÎG êÝuðqí(ø—ÌÒÙgØû½F±Ì¾ïç& àç^<òWŒ6&;²íú9ù$ä\õ÷ß­œh ‘ŸŒ–ë½Ñ㺟_º­ä÷]pà•ïææú{F„éå´ˆàß°ðž ˆ_ÐbÚ|ÀÍ?ÈǧT±F6ÝfÚ|D´ Y%ä"a¸^q4°T;ZJr—›kðËo"®¯i'Åç%¬\G«jßïl¹ 4þˆÜÆSÆ:ÚG¶JgêozËÇÿ³ ¡Äü)`v — ±gÂrû v;¥›}KKÀí©º+[Öƒìcµ?2eBþPV]Ok s;÷ÃÒ[|pñ&7w]P[l¾Ig-/xÎí÷psP¾µa6Ç®X<;D•Yj[Ôÿfe¦ZûV.IAKí1ý"ÞžŒïþ)÷QáŽÓˆóÓ>:ìÿpŸøgáí 1’ÈܞφàÝ1äŸOœ¼ÖVß¾€ |ÿ7¶ƒv丌–ˆ¸Y0…A¾LÔó¹±Yx¿Så&rï'Ž/‘¦jW¢ßˆo#¿e2åï_t2~m<¢: X}Ì×xß0´wÆ#¾£>¬…üîlù »`iCI !ë*° Ô(Ye²tž@t5×¹h™®AÚú-ö߃üwÑÊ¥ßãëzÞ»[ˆ‰£D{s“Yh[G¦‡NÞi6r_Øðcûl‘õ¶Ool¨” Qצóg°r€[Óõ-qÍvâçGa~ãøw„vñœ¦kmÝŠäK°írâC=¥©]Lën¿×¯‰ÍAOéÁ­ºšW»ŽŠ§È ‰zº±eÔÈ}­«Å <ÒºüŸ!åQ*10)kI‡ÇÇÇÚ ¬»T§è,í®?ø)¸,Ø"®ó½ÃÃx>pÿ8‘|±Í%‡…±ýhišºÞÐñ¨*ÖÜã£á8œð3ÛÏ vï‹ÿXÙÜñêÜ |¿y`{ +Ñ}“ºn»~§=ø}Y¿ÇãW"Óx}êûÁŽê—xKd{盥}5:ŸñŠxå{®@gÐRkf}ÀÁ"°Â–¶”¬8HÛ‡6˜–¬ŸB ibþuì^8üF]…l©ê·“÷F ãfoý{Ø|>¾?…8p{£VëpI‡…¯Á .‘ðî’ð7è¸1žjà=:¨c­®}L >ÔÆr¿‹ ¶è~‰+È!"ù•Ÿs·w»WÖ"ç â¿ ?wô؇GÏ’Õoa×ëÈ<[;jvy(‰†A e^`§& r.iF»ŒÎf‚¡·aP™-,éŸóPcÃܕГƒØùõ¯Wn¥¤2œ¶·xŸä£~þ¾îÝ#‡MÄî×Èî»y>1 ¿½&•šâ:fgáý®wúB²„ë—Ãbù]dmù´+ßÜn™Ãhî²6°ù A+  ׂæ$5•Ãâ¦ØÅN»|Àž:O_¨t”NÀžO‘i°öC¿{ÉJl›ß†ëM¤O¤¸&µ8ÔÀ®ƒî´–ºH«k]|æ<¹sŸ² \jQ—´”:9DÏDÅ3HêI¾ß }I…7«·õó¾Új7˜Ìc¢x3ž=…<¸EÝÞÃÄúi$ƒ7lÓæZLÆâ÷‰`Â1aˆ?ðX,êÂSèmšÚŽFÖúXpû¦²3> ’ØwšD’YúÔ’”zošœ–ä½Ô|·sx¬ëOâúصýghv«§_Ô£ýþÿ·Äôbl|O^Û¿ð3BNÀÝîè·ÄÆ0^“ŒºÇÍŠœÉ+·ó®ƒ„ë’×wŒIhF–ít˜âº¬Ö"0¾çDé>¾ÿ°nÒ¶ÔÖà@:«aqÍíwÜEUs 9ÜL°oñùV6T+Á|j#eT*Âèhqrƒj¨ÌÀõXê{ÿG°(VÖªÚ-u»A#[f¤hiµfåÏ*åäš„÷œßÍ-»‚t÷q9ž; ìoФŽmGüLG䇠á·ÚJàGö«~n©®oîQ?ùgš˜K~®±òß7é ˜v”&Ǧ‚ ·@ÔDV¼ öu‘)¤º”$s%N'c™ëXÊñ·sØz Ñ_-Ä· ÄöBâ¿•ç@ƒñÿJÚNbXk+eãà5W5žs 8‡ŽFƒwQ©{ÓpÏU¤~L@…ÐÄJPQGôµuXVÓ ²àdDÿ8†?ŽD^×ùÐus{HLŸÖCرŸ6ÂêÑñÛôجh4þ<‰¯¤3dˆ´mšZ£’)¦ËK|ÇíszÖ¹cÀu© ½íH~}d%æ?ⱨH=!d°Aí•í_‘óxèxöY"u¿÷!ÉN8à40 )þRdts`Îâý{üŒ˜ý’ÞFi.ÝŠOHt6 v¸ÏÿB–%Ç!î§Q|ð½Å˜ÛIäúeF#¹}ô @ì ö«- e+üü>¾›€ enʯ›Üíºýo…ô÷½£XEð<’<Ç?^]ôºÌ“KòŒºq’¼Ä‡ÆëGÐÂu MMXž:h=>4E°ÄpßVŒˆ¯b¥±{ê 2¶ÚæÚz©Dù“J)¶¹ãØéÈën¦ë]rômê¹ûÄÁl,ÞÉ¢Q·¾&+f&Ò–X»gðÂà­v²Dø¬vÈ÷÷¯ßoágÝá6ÛOp]¾¾!zã®&ê §wS.j¤$¦¾£æ½ç§mÂwVøIÙ]© ‡ ;F¬|JýG»ö‘!³YenŸ›ëš[,¨3Ñ[È2L?„í\§ßMÈ×Ûwó¿¤eáôáññ¥ÄÅßÙ{:šhï»Þ¬õç8/óxTjüSàÅ6Þ³Ö÷@ŽÆ¦û9ZÓ±vâÇõFM·÷5d,j-wÝdOÛm³uBP¥w+°2È| œ÷]°—ƒ‡×‘ðÑ}“¬¸IfSÙ&ш[Ûøy?SxÕ|^É’Ù^l¾¿ÞÊíg-Îë²ü…#U×/"4uŸšë~›É\]˜Ãûó­—v¶ø’Q*ÊdÌæ‚ïöéf6º9°óðÛç0·¾£ÏB?ŸÆÇÒbY7ùw&¶>€ÿÇ·l%²&Û-@k_hhM¨ü| Uà¢ë{zSËØbüå%¾õÖwØŽGÍYÈâjðÏ$’â²ÂÏ(x‹Ô»NÕŽú™@§ð‚àÂl2Z§Éô½d‡ßïíßÂ~P7å:œý‚>"}k*¢øš›Ç]¨ø¾«¦#ò n"ŽYwÐÿ:ðXoû~_Y¥ ðŽŸN=¯ÞÅw.7o‚í.ú®øËüô#7Á¨Ž¦ÖTƒ]@ÁuÈ_ÞOwy§®¯Õmøþw<]3kM[}ïäß`91,-ÙU©ûÛ²ÀÏzrïVP}ý¾šI*©®_RᮃßM&ÒXËjðì;øÀQjøþذãGÙñ7Û£§F²€¹.†Ùí-üî;$<€~rhM þ_OÃtN¢¿èäÖGüÎb9¬¬}E–½ ˜e¥l–|lñeª$‘p:\Öâ£}ñƒv¿}‚U_c·PvÎ÷ßËmˆÖAcjI-Ú¹ys,¿-ѰV‘hnj[ôk¢¿¯Yà{]ÞõóΞú©¯ð„„TÉ-=ÚlnDNëöˆß£þŒ­säò­&3üT›0ÕPd+wÍï <ã9`'=AëÂ\ÀDÈžŸXn«îZ‘ÚݖõÍÈ“³}ï¬ý|Êuß-±Ÿz»m4 ^ûɪÏÉ5‘lF膓PcË>Eä/‘Îc»©X÷¸뇃·ì@3{‘h+Zhc›á¯ mµ­†M±³àE}b;¢Ý‡?,£FœÌ§l%ZN“Gi*ÃÖWÐF XHFM4"à_-%õe®Ÿó´ _¯ÍfòÝ#‚ê«Á¯û~þÁ.^1ïîä'bœ!ž[ÃÃÈ‘§õ;ü:9ìþ~³n°ÝWúûñEò¼öS¼ÞÕÁ/xÍ6˜eh´uIÛ„€Î…©¿ÒKkXJ(Û”ë°áC*>džnk ˜;7²Î÷³ïïkÛ'<÷í4´ ÖË¢Ú1íŠd9©hîøœá®úqõæóŽ7ZÖªYøžëx¯ kî Á{|⎎ óéF2ÀHY¬+áÙ}gì}}„µ›|çWÈ4OX§Ûå§þ}d.§±Ê Ÿ;®ÝØY3¼æR¹W/ò½ó6ú«ƒß"mïŠçÔõ"*úvl;ÁŸõN Ê:â4«M%s% ;áÛMÅë#RµÝÂVGñêéÔó«Ð‰›pŽçkZ9{G•[ˆ\8T«iùì82ÞÀKÜ1µ‹d‰«èÀM|ØNÍ—O¨HÆ,Š¿¤¶6–ä þЍßÉ3ÉI'3—¯WQ£|lÈa v@wFÇU= <—uÓq"ý#MhëiBÎ_¡|‡óc è=^½—ß±`nêï ¸Ä.˜t¼¤&y¿4?am¿f’‹ÁžY§ÂCÞª«ËŽy´ ïè¯Üä'ìDî¸è¸\4x{Ck޶2i&_ W$.ÊjbûkOL|‚¬³xïUrDjä|®yàzü‘{¼?¡×Jxªßâò4ØÂ³ëLùB"Úc$ˆlnf‘Ú@ðPí|™OÑÃ`½û´"V÷ç®Gû‘í»“š€Ÿã½¬›u´!v ¤<ÉíþŸTHNåë0€?=B/- Œ¹§¶ óRé`8àr­n‡ˆÞç|ÏþÈû)ìg?,vÑí:àÿë9¬Mà<•a~“´’üÅ´VÖÚHËà'åáÄ•AÂ>Äÿ]ò|vxÁ+¿Kì¶MµìêÅÒd¯¬„®–!@~‘•d€¨Xú;kLh„ßãtÂw¼þžŒ0ÇOuL5Tƒï]ÍÆkm?󢫶ÒJøEm‹&†ÁŽVÁ…¾†å!þCÁö]Ï· ,œ·žÿ.pŽOÉa쾬 ¶àYW¨oIZ,õDÝžæÓ`ÀF$ïéÏŽ€õ΢æ…„Å­ ýì'>4à™:ùSðx'*(7'üKü¥4¬q™2 qž 4x o©ðù7þˆù-Æ3ÙìÇý_ ¥•äô“ßrߟ›Ëvnâß $íÁÏ4t0Ê÷¿wW· Â׿Ò6 âj}‰'ÄÁ¦GÉx :ëPÞ·ŠŸ=~ÿÇ9òÇz$v=³Wñ™.¿œ§Òª2N–SÁü/ëk-/¨€“£wòÝÏúÊý÷é§îÌí ¤Cþïˆ|ÑBWfp¹0—@®ôðÙõ~>‚»Vdž³„çÝœ¬=ü>„ôÛЃ;ƶÀŸQLl…‰®Áûÿ]éeL¤ 9Éu°¾Cäº=}¡ì%8°Éwèbäž‚Ÿ·"&†R!=õs÷ÇGãZ4ËÅ+JP3L×fÜsÙâ<1Šaùb/úpÓÑÝ$´Ãè4 ø×äw×¾²Ÿlœl ¶ÐµJ€ʃ\Ÿ‚Qu­\8ŸRçö-Á®s±þ2á0ý‰xÞKNiÅÀÂväº5Úœ/D°‹È<ÕwMßMtäöÝôñç{¿ÅêÅÌ}ñý7°ËZr0ØBÿ§U諵à/%ÉZOý$˜ð¾~'×8$ŸBp³0ÜÄ ÄHVìŸÑâ‚dîZÎFÈZœˆqóræånÆoqâ##•ï Mc#øÜÖ>pÞ²[OÉ#;‚-òZ%­T“ªä?·»ÙÙ7,Þ¿ÓÅ^†¬†MÖŸAðÃàÚsôs[?&Nâ’ËSRÕÔ%2bíKþ|ÑêÄê®òþ’¨J…ßÏ!·œµ…ö‹Í²%RE*[àÿ²bHj‰+õd)Þü+<·*ö M²ˆ¤Ñì Ï‰gˆè¨ð¸löÏ.cu²G´‡ä¼ ø‡«‚Rÿµž6”z¡¤³.T̹Àý”š/ÄIïV*I*å`èÐ_ÏIáÂû°¥ÛÉ’ÎbÀ7ë{@úhp7½6’õƒ6C[™ñu×ýû.–?èÏŒîé×°¶Ä:››}ÜéK¢Ç^ÄZH\餒T—Ëâæ´_ ÂO#ËþME5œ¬F¦-xÿý›×3wÕËWüõ­9Vü½µÆÿŸ€™›`ÍñwÆg„ݳ=ÖÉkùl‘›%Bö=ýŸ«”´–¹2 ÜúØî"ï6?³½ÞžÛ6‚û›ýu+g¨ sá×Ýáô÷tŽ-£šïý+Qû<ñ3/Y-ÞÊîÀwŸko»h±¬…Dï ¹kœô”Ñx|dd9Ež €l Èònzû6ba/ŒÖÍLkåðçå z¤Àr›Ì߸׀êÎÕÍM¨ƒ[“Ecû™ïµ’mµË6Áfâ%¯¤°…ü«‹|&o‰€0¾b¢I¥=þÉ–#õk¬{ü»Int]@šÛ ‹g«%*ÁÒ€ /´mà]aùùÈ~nx1ëeiÝl‘ój¿lU•pÜ—ÈžŸDÅŸËnÀâ2ùI/Ïü~Æ;úš.9÷+ó;/vþÚúâßî˜yX~ ·'^ñÈ êcjÚáÒ)#Ù>¸ßÞ#Y;ãí Ò÷€8áç:ç·•vÀæiÛm×ávmílïÂû®ðH'¢¨Z›a¡±¤n°Åú‡W*ÿ;x@Gò^ ¤ÎGþ.7 ´„p™ü ]N¢b¸²O]õ'û%pÜÖ“#"òʰ’6ÉÆÛv»Ë+[‘ÏÚ :õæ¿_[¤3UÜI]€OO"6Ã]ÎqkÁm#Z)DF[BnÿÎ^[‹¨臜á}¦O3ªk?âÿkl~`X`,h˜~l‘þÉ5IîË2I šå@žž6)wØ ´1ûŸÙT{i/ì’í·#V?°„ˆÏa]m)?Sl/~R ̈*T(×?­cÐ÷9þ+«”4—!òAvè#Mèpó/ÖÙÐý‚e ¤ä äD ä ä 5)5°4¸‡N®Ûcn±ÑOˆœ:L„ˆ}¾ÿÊ*È7/)ÛeŽ$Ö­ØúgKèÈèhHØG\ ´ öþÁUxüA­À;òáq=MMK*q‡Ï¿gå‘hÒXÞK)=l°{…@‰@¤Ÿ»Ý¡ãd¼œ•¡zH¿‡7 Z¯)ÉóõÄM• ÉÓžþ™UNúÊ|ɪ³ô7j×®¯þ"±µµ“’‰ÊÁí¥™$‡d„T–x’#DÖxÿ»Õ]¦J{¤ì#³e´ ’fHš9ëñ\C~—ÂÚeƒý%ÿ\®?ןëÏõçú7¯<®?žñÛÒIqÉǽòäÿÒRFúË`©Ã¿`Œiþ^ÿ™•HR"}é‚”™ÈÿÕÄßÊ)¹-÷$§fVÕ'2 ~PA²H^4ôËJ"ŸP ¬”ʺLWig)»¥§L‘/$¡>¦6:¡ßèUKfbë´¶Þ—’ÝwwJì¯þ¿^9±eJ‰-ßÉ` ˜Ùmm—õ™ì—$šBZ Ëkií[Kg)í{ûÉê[q‹e×5½æ÷½„ó[€ÿÕªŠ É‰øò‹Æ°»Ø:³%¶¯-µåÕòFÚÛ§–ÀÊÙtkcÝøÂOQ«L%ü³-ÕÄB™Ûíõï¯L°ú/Á¹e²B?²Rö^/+’[k«e©4¯ÜÕŠHïvEE­·,–ÐØÛm íž^ëúk¼ÄL•ó@fkd‹âû5,¦î‹F”'´+:W¢[i{À#÷ôf±¨æ®k~©74®õ·ÕÖÝÚ[YË®_I-tøG[iðûŒ2œ w–þ¬‰‘Îõ8^¢›ýŒ—4‚ Uw^,†E3×û¨¾À;Ü.øÃúDk[V<¡¡å²Ÿ5¡Ö0È#1%¡Ô–ߤÒlÃûÃ[s×ïÐ3þ:NÅÖÂ-*~2¼ÖØv@ÏéE^íúÞ†#ÚÚW°µZQ+Ëéøg),¹¤¦œ «FÚ=¾ ~t0>,1í®á …Ì!¯ën]ݲ¡Ä~è>ݳ½Åêßú]®ã{8l‰¸7«ˆç‡ ß&ÿÖ½¾rt´ØÎÁƒêXW[fGù)¬Åñ±`öüøŸV~r^Gª¼ðvZ£ɯ5>ëºÂ„õ ƒáÄDÞ º›ûñ‘6<rŽL—ÞÜõBŸZô޼° ë_À_>%r’úRU!;Ú {ÌOK-&u$U°Åý/+“¤õsž_J:¼XíH~®ñýLVPû¸ù®Cð3͸ïQ!‰Å6×=0¯Åµ;©Ý¾ïõÄÎeÐ"5yÑí©GM²½vÓ">ÖæpË¥œ|£¶RYÂaû“ Ú n3˜ïz¬×ïu6Q¾·½(ùð,Þíú8¬E77?žò›Çäß`Ãz~žœÏý4¤Ôæze.²áT±ë­¸” {?ÿ¿•Z’ÁúJ=]ªuñë¤äø§¾›Õl=ỬÕN#û!ßÅî¹¾Cyd“º½-¡,‡ß9“ ,ƒîvùþ÷xÅqôw] Ùms¨œ·Ø§ °ù~§d®¤Ç¯i<ªà¤TCñ!6>x n@x¯›‚ñ¥’QQ4´aö¶ jïãÿXYá½Çå51íöîºéenÊÍ!üv4òÿ ½t‘ä;O‡µyxºÚf²ã|<#¾”× ò <à:\(‹§Nnn¬¤-ÔQHïzãíßiâ#ÌÉ)Oj]¨[xx;³ÑÞ2ƒhÝ€œ ýÜškäÿ¹ AOßñàñ_çèpu=ùþ´¨®’»rFzƒýø„ƒü\+âZoÛo¹m:ýÁwXÃï7þ(¢XFeb`µ¦ÔT=Èòçù‹JdMBE¥®9H®ï¯“ÁóYê42D¿Ã~5ì)VËn7A€Y`âC|z‚š&ÇKúòš÷ÚŽøÜèú'”°ÜÊ‚¦®ožëùz =E/¹¬º©Ž—Ô¤"ŠkMƒ>7¿Ÿÿ²K¢Ÿ.û»ý;ó‘|ªï»A[ùé7ʼnܳÄÄÏí ¸HΛ e‰—^pûãDÎ#ß;bÚ;¡5©÷'é7|Ç”¾–›‡QŽ×~eݨ‰ròSǪ™i° §¥æm#{e;µÊ^ìt I~ÅßÏû>;ôkíM–+NÞ*o»Nw.î]7«mäÅ©V2ðˆJi¡º¹W©fã!™Á·íÖ

    _ý½_lCÞ.ú¹¾9AÑì0ï?MÌQ×Ù¸8ø˜Ì1—È ¯Œè;Þ¶ þéÉÿP‘ÿçc< šu j¨Ä~J¼ý7°ù8 £SÅ»™ïñäÅä¯.Ø0’¥€×Ö±Û0#×Õ÷ºY«Çd…ì“©bú…þ¨ÑÊQ¢çŠþ¢®¿o$ª€yd€Øßõ>Ìmù­%Ñÿ…• àÑÅSéDùS‚¿ÍÉÚñùËþìÅ x}8Kà'z¹‰®öBd(ìg€,%öç“ÍÇkg _È—`G=MÝ8Lû)[} ØpüÒvLwr[ö…áóÝüç[éˆá @;ëΫÙ:iDùË@¹NuöAÓÉïˆú7êú`\€ãÞàg Ïu~8©ÉÉ]j3uŠºþ`Ï`>Måú+ÿ ïå¶Ôבd€æ C(ìZÏq»]ÿÏ´–‹çGö8ÏÏ;ìD,h –v ¢ü%d²ÄòØü‘¹y¾o@7Í4‘}bfKöHÌïö3°fSå= öÃÃÚÈJY"½ÉßHyž¹‹´nZ¬;û[_"S,WW¸8)ŸéÎ>µ¾Œ›½:¨;bZÂþ{ñ½Ý܇”`Þ[báUëÌ|Y‡ïõ-ˆo¯ó½1ܾÆA~Âdm |¬Ãe˜Ìõ²ÜGKËxÅknŽ=.ä¶mÍó“¯ÖàU—àXi-¯Õ²úhýcþ׋xPðVjß㲃ZÎËÌD† PÕì ‹ÍÃòUñýÎÄ{m-Œ¸®St:õàPôs”ˆ©©Ë‰žï`>ì(üÿLo®?fæbd,¹r/Ztõïp´5 ™ƒgð*·Ã̈„·ÐA”ÿs‰'3¤ûß}‡Ö“Ï'Éõa7=}÷ïMüÝ@ú½ÿ£ˆîqèf40{Mýî:ã%]Õwûº²nÚÕOèo¶ï€õˆˆYäß=Ûw ]À£Wõsrdalé4˜ýÿKò÷àÙ¾õ6/á÷ðù>°ú à luh¢µ@ïñ‚ü$‡¥ü¸ëž®Èy™¥E`7»Ñß#ÝBŒŒÇò®cÈp¸À]²©;Fö«Ÿ6v<íMÆc^“#3Ã5þ ÿ)ƒ7~Dµ6_îJ´ÄÆ“ùžÏ}¸×xÃPê€~ÞûcÃ] Ûi":9n)Œ¹~|Ÿ×Ãήà2¼`$šêá;=ç´m¼ÇMŸV— åżê6<á<Ó<¨g…Ë#ÿ-äl'°üJ¸žëóã&½¬BÂÅÔu÷‘a<ÒtÀFQ ¯Gû)°O‰îÐdr·#2Œíæó y÷(ß v$šp¥B“óÏW}w¡YÈþ=Ï®BGn¯ðº ^TFRËøïej»a:ùÇ ƒëtp™w²_‚Ï ~zpë„oôÅ‹7¢·¿;Ã^µ…ÛL¼ãGß%¢­Ÿ‰pÒ÷Æ CÖb®#ªë3gÇà+ûÑnT+¨Õ‚(n‰ {© ¹yµ[j£ïô8ƒûBFŒh/ÑÌl,¹ 'ruô“ñfñîh »æÁu„\í¸jÉÅý"ôÊNâ'aÍMƒŠFtAúù°f7o`—ï/™ŸŠ(UP'àå‘2‘8Ö­Cö3Ää/|»©þ¾ë}üwsP6ã³cˆéÞÚ¿˜…$ÐÑY¤8N¼»î +±¼›:éÇ‘Âz¶êoþz±06Xã™ë-wˆ¸‰Jm‘ÙBq‹kc‚z6¸õÿ Ø«˜›\¨Ô7‘Á´#xòKÍ +x º­%£/E-m8²ÿˆFòè4³ vœïo (9ŽWM" z×C'ô-Ùñ”V²{Ã"øéé§4“¥M»ù!?ê’5ˆòWÿ¶KB-gC5³>“QäëÇ ü\"FòW|.±æ€mô[¬?ØÏCvÝ"÷.^wÝÏvšÏŒ%GôCßi3d¶>âû£zˆ‰¯¿¢ÊNïÉeîRYø•h¼ J/ÔžÙe„WÕZï̈4{ÐÃ/d¾wdmø³›Ð@nðÞþèàBl¼û¿$SÎçï ý–‚ßÀù˜ëýÄàǰ€†Ö ¸¨¸LÖ8¯µm¼›CÜUB&É&驨óXw¾ùo û~*œHÙ÷3Yå-§fÇf‚lãó€—íš¿Ä1ü‰hn 11Ë©•ynñ± žx—š*ƒe±2ö•ï˜}ËÏ‹ ìÒ‚’,Èò甯Èÿ½õÈçf€ã[;?]Á·>Š|׸¿ÝO®¢aµ6u“æóè,üÚõ=ý@„lE?®÷¿ë“Õ[S);Á—#_ƒ ñ­•óǃ[Rýd‚-¿æk©)ƒ~@ni*#´4f#ø9¶†·°®ëÞ|8uýŸg»GÓik.–Þ@¬o GôÇ—/¢“+þX¹›󵦿¶˯„¸ùïÀÔ2¶üû„Ú:3¾ΰ›È«Á?œKjI)ê»"ÈxKöÒ¯1%u /#Á&l;Ý_ÿSN“jFp&Ò­×'žïŸå]‘ì þ¾ÖßÙ?H¼~ò_õ^Ñ~ÓTæ® JMÅû¹oÀŠf¢­Lìÿ}Õ“L²[FómRcÝØ¦Ͼ47Ñá±{Ñ÷ûróà7PåÁ~„ÿ-'.šÂkj››~4—ªÙÕŽíµ Y$¸C]¦;Ã'Ü@þèä»ðh! ñŸÖ’cÿªd–ÖWƒYûÿ¾ZÂË’ù–ÂköQý”&W¹+·\çÿôvÇ×®‡ý ¿mxBs<¥6Ò©ú[¤i¯ŸXi›Z\'ƒ4ÐÏ´’?pVÏù³åÆkk+ NDµ|T|…-«•€i ´Ï5ø¦Ákuâ1œE¢Ny«1m=œæ:÷CóÍOøÉß[°îâüG²v;ÍFÈO6ÏáÎóh={Óm‚'´ÁwªhMbcp=äÝÕR ,·¥ï“ñy¿¢§|z$¸_qû •ƒ-¾Ü‘ðÿHT)®kûiìó8oxøuSá–¡ÇeV‚ëõ¨ÞÚÁbÚ%<¸»}ním§uÃÊ'ˆƒY È·¾Gâ0Ô]?™¬û]­#»Æ&ÿ¯!k„¶„èâ‰v êìãßW(Í-»ÄÍix¤÷ˆòÉä·ËÈÿ1|õ#¾ùe¤]íYÍÕÚ,<†®îÃk_X ›l½-‘9®°”׺3¦§ˆƒÞû¿ÂÓ_h"$O ò»ëãŸjB‹Ïßt²³öû}} -”àÙYÏv\ܺct®Ë]:b6:|e·¿Þç0èð%ºy‚/(x^ÌŸå,iᬙUG"7ÑÅɽŒ8XEnØ öG ÞÃ`í”TÀ)¨%7âI‘¹÷øº_‡úÎÁ–¿«¬’Ä}l:¬å´È ÙHd>^ÅçÍöú©ž?i}XÞ $;@†x¤_Ûlëè¯}íbí`6tÓQ¯÷õàòB~Ðþc¢ë•À5Ï–]_}ÇZ3élñ%®.•ÅøÀ&ƒôÉ`3ý4‘ï~¾+G‚é?óG¶¦ðØæÛUô¡‘¨ýýð¤RÖÊjòÎC0½Sø÷HP` <¬yø¹Éß×`•±à€©ÌM„Km}¬«Œ ¶ø¬C0Àˆ–Í®Qº\GÀ€×dµ Ù7ÄÄîm&êÇÛoñ†Ðv•W5ö]à?±DH °­8]½!o¬õ» nQùLJCçÂÿoó™n^2=j<àeF«,óƒ-<ë4”¯þ2Ãâ6nñ×öÇ·à¼;æ:þ/…ó~‡ß¿ÀÆ'ÉõÉþÁ>W §³òîx§uE²´vÐ_¹Ì_ñS¶;ôkÇñ£'h©$Œ©:¿çØB´õ©œ ¶ð¬¤ZVJ¬ßÜÔ’¹X{¿¿òÍMkvÓ Ö€z`½KñõOá±]m–ü̺iO¥ÜÏš<÷3Ùp¤}cIÈ„ÓÈ›÷4'Ñ¿w¤£ÞuG„öùY‘¸ÿ­ #ÿe“›Áž•M+ËHÉëÓoçN÷+ð{ÙãúÐÛt4è7vྶ&à^ë§-¸u†7Òî:B3Ù\ëd߃†×u<ïyLmîªù, ãCuǘv C7_"=xñP«Èë` Ï «½$±¬Ðâäû4æ²óe<=9+,ßÞM¬¯™ ÎÓFdûÒÔ° àî½áÁ•©w§h5êžž^ýá¹,¢¹ à%‘ŸÚÜL=ã³òwˆŠådÅÄì¨eäC°…÷k£Ä’~|û8DkQ*–-xo s»XÜ1ÿ~DÄRÐïg´P ¿¯aϱwOС1™Þí ¨¡¨å;èPp½öCÝÿ±\ævÄ4w4Å]¾ V&XÏòé×Áü/k­$‘ä,×ë½66rø=Q;aa7ñv8Ñ< ÃcÏ@À}Ôyî|Xgä_ 'Ê ´FnnÎ$¸m <{. ñ„ŸýÊÞûž™Îò“ü•ç}ïÈšN§[ð¿¬þð°’ 6[Úìþ>™Çû™–±ïL< :è……$»7&/ºëž—ÃÒëk‰J\é§"t£jvS7Âþ\ÅàÎ$IÝ\Ñeäqx’›« ð¦Ü¶àY%åG9*YðÖR0•ÅØnqäwsÜyë…èd)uîõÅ3Ö#7ü„ w>0ln+~â¦Eüè€ýŸñ{ÇNùÝPkù{/ÍC 5-šnh=%~ˆ˜þA” 2YÌ\Í÷¿½ pÇïèCë?m¢?¾Ý<T4´Ÿk.ï&šóV^¨}x~:Z{|è_ªê›øüuÞ‘™ú÷Œºžè`ƒ-ö_­RV.ëgT‘ÌíòÊF}–fÿ19`¶¿.x%5Ñ"þc9(ŠgKòS ¼"c¼€Ý¸ü¹Eç`}wdë8äûØ—–×ë ±õPiL–ì¢úÿ畜Ò¦–ǰÚb–Üïÿy ÚägOǶËüµ_3`w·à|q­0ZjA…xPk€ø®~8²§Û'9 -\Â;’s?òV!¯>#w4…!õƒ-³>Z_[è¿Zé$™L“™ZË:[]/ÿCxïI?Áb“?3îæÃ/õçýöèQ}‚§%‹çF®Zù?…åç£ÆU[†ôîˆA|ð$§ÕAúâè5 ¼i"Q_æûm–ÎÒ#ØBÿ§•Z2SFÕºÈÞê®ÔnnZ÷F<ÞÕC¡©í¦ùã'Á77ÅîS«Œ?ƳK W^¤uGûŽ §sê&iÕ·éæ8pndïç]?ziµ_j©lÿËÊ-%$…ä î§‚£ `¾QñêDòMí¯ßû†B'F$ǧ]‡Æ¶I [k4QÝšá5í0î”GûÄy_< ¡ ±Ý6ÆžÙ=‹X«_…Èn%¤´“ û_ÁÊ)À«Œ {\°03œ·:°ÏïlMNÞ+jÕ5“µ§fLdcm„M¥¶- *n£ò‹„ïœ&'·h ¬ð°MòžoV_‚yÅ×ßZ­Àæ3·¯¨mûP˽÷û{ ƒ\å-ÛYd» ‘ñ÷æÄu5p½ Ú)än¦Saêš»ä€Oy¦%ºsGšØh>¯©§fn^ÐîÒ,Ø‚þ«ŽÔ¥J rµö]ïÃPÄÄwÇYA2áebÞMIw×o„EêêV‘ÜÖƒ 'µƒÕ÷!«G4×ýKäÿÂ’¢±ûàdc[kGmŸ9ì©]‚-æßXm$9L°)’f#–­sSÕö€¿÷û\¯R?…˼Ò$Äõ ²…˘Mðù¾¶¤{‹Å£òL+«mb…@…<~øRe‹@¿CšM[[È¿± I;¢à•|¡¿ÁÒ“á¿"k53·å3òÙSüÿ·_ý~ï¬+ø~—ZöŒN‚Ù¸™A1ÐG{F¼d"“äû¾ýÛz[l‹5ž ¶ˆwÕ”m’ž¬žŒ(Eô$’£âͱ-ÈÆÜ]¨m]'ô>èçuÖ½ÖŽÊw/œéÖà u ¢&õ`][bóAĹè¶^°Åû‡VRª¿ˆH[ÌVa¿ÔxB¤¨ ×/ŒogÂbÙH«}ÒÇÚψïØ??9³´´í¶ÏojÈüyˆü%Ö@;[¬xŦæs³Ë:؆g:8ŸIÓ#Çä.×›=d?#Wls B`ºè ÖU·°Üvÿ¨cm­7šH‚æ½ý#+>H5Š:g59}™?æ3 —ÉÇØl¼¾>ln¯ÆîÇô‚U |í§"\!Ç·ì<ßÝbºR¦“û+[7ÝlþÉUZÖ‹êN©£i@ï9öÞÃa¶á×Àæw,Z | Z ::ÊØ‹½7Û&x^[ô4’gOÙÉ@‚PeÉ÷¨®‚¥Ã?¿ŠK™.3%¶³Á—öûζŠÛvë¦ \·Ê¶;0(pÔ"RnÚmÛg'ÐØS‹è˜`we9Ò‡”#}ÿì*,ÕÑAeY*9`ùUðéN¨7ña™}hêx`  Ô t£ÖOkãy¹IsAÿ/,N—J!zÞÏ?¶òIAi(¿Hm­è8؈jIàZ`Ž ” Tך^?VÕ=RÄOb3µµšŽ”ìä»ÿ[úÿ7’^2LÈ÷+A3›¨O®‰5¶ÆC2J)é¯%"ßúÞ¯õÿ/ì„¿FÒJDé"3dª,“Åò9Ö­ J4‚56§v(Å#UCDOƒ?ןëÏõçúsý¹þ«4.Û_¦Ye÷ÝŠÃ K:ÉË­’‘Ô/è×´ÿûW~ßþsò|ydí§­&5%3Ì'Ÿt’AÒUVËh˜O-˜P¸bE)Â;þ3«vÍB%JûOgå $‹’CšI½¨ËuˆÆ°Öžhj]‰rH ä/ ɃýÕÿ×ë3ù.[M6HGßÿ߬«•´¢z[âk>Y¦YÍ]ßÔ Þ߉Jµý` ,=@WÞY)lþW+´‘e‘\‘”:A/èCn鬠…±*ÚœÂ2q«NÝ?ÃjXbK`“m‹=¤îa­B´” ÁýnÿÞJ‹ÿDý¾\2êêžHv_Ÿù³_•mµ¶ÆÚÕŠÛ÷VŸo,§ ¾PÚRãK¬Và’ýHýÛŽ)lAþ¥•|«$³ä”ÄÕ¾ësj¿Ëßí|ÎmWõÙŠü/´ :(`uxö¤ŸøO˜Ëm„5³ßôò"Ï÷ýí•^ÒHB#÷%‰¶Õ¹úDSâé·õŽ®Ñsh!µѳêöô$÷žú~À-·Å³çú…Á#jØgVÍÎéÇZ‡,ñG;þ•„,^[²jy€ÄõžþŠÄîèApà˜ïsM³X2ìÙÜNîØö‘¥±äh#·ÍÆ'bš»â!µÒp…?Fï÷ßW â>½Û#ó|ÛWX÷V‡Œ®ÇST{Ç£al«&² –ß>÷Wо'.² õ+ô’ØŸ+) N·óZS×À“þ8È„ µí5 þœ«?Bú9Ù\“úHݵOnOóI4Õbp«†Ä÷ÑÍ|å¥ßõM3“Gø.Á³u;¼(s°û‡Vv^i"ÉÁ¼”øp" m;ˆµèà•º=¡üõŒOu%òæ·TVÎâ÷°ý ߨõ åû§;’F[U['*láþÎÊ)eÀªâRP cÅÈV™bÙ)ýIèd¿‰u/ª» b»ŸºÞ×”üŸ‘È@ü¿W×1ö¼Ÿ‰wW²Þ6ÕvOˆ–†ð¨`÷ûûÛ«*õK*ßFuWÿ|j×ôˆï®þ\Áï¥Hî®<¤»üõ|Ѭ:Ï÷"·O6,ºz¥wu·^%CijÖ0ƒvÌ®Û][F„ü¤Íå댥‘äÂóÅ[y²Wd¤Y¬ ±½›l2Ç÷w M¬¿óÞ ¯o€fòÙ­ò§ R^"ù­Ø+Mþ Áþ=ðÿ6Év£ƒsZÈlAÿ‡•›-*½u^Ÿ‰"Ú¿ƒõ1½”Lp¬w]ß“ýNkB;£ÀÅ4°Þ§ZöÕ~Åï/èf"àzH ,ë¯þ*iü´ô-v Þ˜Uª„ÈÙ¸å¨ñzÉT 秀ׄç»''ß%æ7"Õ9p핟q´Ž(ˆˆE„¸=Íî¡b–ËÞjX‹dÃð73à>¥¨PMVçun.Ø[`e´šÔ q|¨ù>³´–3òBß`ÇÛØû7@Æ?ˆÌ#ñø)¾ðUÜs°ñ9>Ñ¢€û‘üÕ°îJÿTVÄ6j}ô³í<÷û½øë²û=ŸÛb›i¢e@DÁù?­佯¨×ã·O@ö³¾»ÉNßµÆu³Y‹¹Íï~ôA >ƒã„²>>ò™›óV³ƒEü$73(¦åsðڌĂ»Zn¡·3ˆl‘ÿjå’Oÿ´DÞŠ¦æ¸í[âøqXÇ‚è_ë8´qV·áaì¢ß Ã\Ïç›`À§v™œïú»¿áwu½ûa¢%Üá2¿_ò“ž<é—ðsX³ø‰ !c¥’dRLZÊkIk®_é]ßñùšç=#ù݇Ÿ—Xõ°Ÿë  ÝY°ð –þ¯îHœA/[V{¬uК›„Ž ’ÁÏ »ÎýhöZ¿²EðŸ@‹Kè<[°ÿËÊ%ŠJ'ìËnÒ3doų Y®!w®£Éjûü¸ÛÈýß‹›ÛÕ˜Ú ¢ƒfDI!¼ÿ±†-¼â=7Õͺ…Ö–s»É§Ö²96Ýjâ÷µ"ˆ“'Ø¢‹»ö;•¤”³i~Á¶g‘Óí\q@Þò3ÖïyY€D—¼ çã·È‚±‘õ&zªEð1Þ}CsÛ|ÄMÉÅ_›Á ×Mõ¸ŸºÒ_5ß“L8ÓÆ[g[eª¹BÄlÈ4,n׿FÖ šGÂîÏ=‹?€.\Ô¡DûQýÉ—ÀˆŽ~Õ­ä…åú)VÏ#J‡OWÆÏ?¶Y|Ju{È;)>6‚™çñ®FxI ŠÆrØe<`,ÿsðWn4ÐLj{@vK‹€DŸÀû§ƒ€SÉçsâk/•÷¹ßí¸êÑàGÉ 9ÐF.dJGuxNgðü*?×?{.>sé·j\ËfYàÈ×mß'ÐvT4DT9¨tgHr»ïïCÚäª×T9Ï}/÷ý¾×Ó&¢½ ø—º÷î®þ_‰Ei^ ÑÐVt~"bû™Ú(ßh#‰Šµ:¶tÇwéûþ4·þVÑê ¬O·†àfÝ•–´]Bâ…H»˜ßÁ÷ñv×ת‹ßréiC~G¶¥ÚÏÕÇ«»Ò#Ñîú†ÜáÝ_ŽÓl§ßß»m<ùßiFP²ÕõWC¶Å7:X ûF'Á7‚=/;y¨µt£–sG,Rå­÷Ì'”¹®/Gu‹×I~ÓÑD_pW:))'d*°øej»ÛþøÎv¾ù䜌üãÑMªùšT2®ÿ»ëÿ¿çVkmtÐKc¡·ä8·701辞sn¸ÿ¿A¦t³ò÷%ñþ DFþJCd³SA¯Ýdï«R”ïoØ0>ØÿÞ—ÌnÄî´%ò§·ò¶J“òwL›ƒ_Ð=d´Ïô…Œ•ñ2FÚPõÕ^0…6þŸ”cË@ÐóÔ@A¾ø~DÿW%ª€%dËÖxTgý2¨çsûc½»¤8ùÝÝ«ë¼Yc<6²Ÿk1Gà'ئÕÈhN}u" Ó<ºXZÉ<‰€Oü¨Í´¤ˆj‹Ôe·g¾›À˜8ûÒܤجX¼4UÓ×ðŸ¾ö­»N\Ûõ¨hnåd‹LÉ…‚Å}ƒÜÉ 11úÖ÷\‚lCñâŒhÀÍó+bµ7:Çí§%51Ðûí´#õ OÜåÕã±þ Ï–\×û1&¸—Ÿj Œ9¼¥´Bh£”5±ÞA=7Ÿÿ}¢ä'–ӓͳ1‘þ™ÏÚÑÀ÷£ þ`äÚˆûŽå‡‘zQÑNë‚ösÐÍBâ*|¤—Öƒ)žÁ“ŠÚV>mZŠ=ç³\?ù¬ø~:ôâfÅìÕüd‰®vÈ®J0÷Ã$‘ê²@\·×äëXvš\u„_‰ç> §cÁžÈ8“ —{e…#wBÎ.nöq0RÇ 3Áù¯ÉüU±þC˜`7ëg©@A·øpœOºLÍ”Èkµ©¬rÁêðyìbP¯Í*•e¡LóòÂåba›èØÿƒÇÿÝX÷'¼¿›6BÞi`þ3ØñeìÝk»¹àu¸ßW ÂëGxÅ÷ȸO]Í›Ònò³È·A×þ<¯zî{¢½EG%Èψ¸x&Ìp©{gJ_½BÕÿÖ÷*{ÃÛŒU‡ønç-©þF‘áÛ€nÃ}×Ë] ÿ@]£q5^S’|8YrkE°òÏÑSèò |`Ú[ GØéÙó¢â4±± ^}Ïz*œàÿ e•´^å¯ Ù@€îØÑMxOé9ßhò[O"ùGmA”/ÀÞ?bñ:¾ß«Ûÿ=WórÕnA¬ø±M¡z¨hn*¸ë¾Õ×…¯ùŒiDˆ›“0 Néθc‡'y…›žw[?ò}p£HDùkúɇ5°Ê}¬Ývûþo‹Ñ‚ë€Ñ“¿· Í$ß×x–œ‹g¬§J\é­xJËh& §™µ°¹ ;ÑÀ|l½9'û.¡¯ÀpvÞMpLè¡*¬ï:L:HPšzø­sþK²=ü÷"ßÕõsþ‘X]„\nnåtø¬ëñ¾m ô½-§ }‡à…Dòuª¡ìòFcøéOgˆ÷ý°(×zÈ?wo¡^¾Ú»É«øÔ0ö&ƒë&c~f]à‚í´EåÿBRJ{©¤îî°~6^p?=å{ý!—ÏòGüúh+ß»öÉ¿ àÿû6)š+J†Ì ×uÇF7S1ç÷,üe€G•ødühdü#øÿ^Ør%2 ;w°ƒû©µ´0Z+ˆòg•„2P*ó]Þ!Õ1ÿí×cO×Ãâ"Qü[ß&6¾CšŸÐHduóVøî6q¨fRXìÔÎyŸÙ„~¦q[BÖøÔOé F¶ÜXÞMV[‰¦Ràó—ðŸ#ä“ZV]ƒ9 :ñ?FË)<`:¶?Ém–\àûŽÑˆÄî1ìïz¹:°¾Ÿk1߇ »4¬èkß7}£Ÿð9vÔ]ñúY¼fÏD Ä‚7Ä0×%~ñRSžé/—Hˆ¦Áä¿i$'Õÿ9YÍ·YJ†:¨n’å ßñe;¿£š§7â3»Òuã÷0¡/òÁ¦b ¨zOãÏgáLý`ÀCr*¯xŠ_&ÓÅçJP ÷õó€oùyÉ×À‚˜¾#pÓ ÎANý›QÁü Û‹Mw`ÿxøH$û ŽK^;,ñ\7b™¯~1¿çóšXr¯t‘¿8gGQõMâOy×5ü<†ÅµÖ}º+d~E§n?­ÛC}ÎÜ0¨ÇóJFY‰d;ñÚ¨Äü%þ\GgçÙ®·ÿZbc>r» C°ÿL™å;<Å_6áëcÈ ®Kô0rå2ž=ï÷‰Ÿ„ ýʧÄÿ—G—-'UÄçdw½ÀOz%ÈGÀkÁ·Êm馟Ãò;øùÍÇøÎóñÛJD§ë€´é6€Š«õ[j¼>d¶yhj0­LGªxÀmt³—û¿¢… èuSË ?¶`Lj­ÜvTjYþ‚D`{)FŒš…¡jk¥¥ñá­Xó|ø*0ÝŸÇY€L©´6¿'“]'»Q¾ÓÛ\-†ÇG´F<î&^Íæßªèd?ºÙÎ-<蟟jh¢¦·`_*‹„?Dö½"JÙwR>Èò'¿–Šdª“ ·›îQG¿ Ü™]w~ï vžŸY Îg%úá÷n†Ñ´ÒÉ Ú@m­ È‘|ÿ¯ó¼ã,:Šˆ§—@òg>ž…ýº~ZÑÐDf­(ÁœþäÖOò9õO4Û‡—ÃÈÜ0w¦ÿ=þûŒX½ë‘~?¹}'~ÑB[bï¹xJW?¿²»•²ÎšÇB£­Ð¶éA–œé;_Æ ÞkÄ/„ÿG_Ooû«¿ª›vKŠJ÷ Ë¿RKjn³Ïjn^Ívìü¦êθë<Žb{7õr:ÑÝ®; Ïw¡¿Å‡{[Y›Ž?§RŽˆ·£§jþÈÇÞw™Ç$áLÉý)`V+ˆ°{¾îqWÍEÑ*27ÈòŸ‡½“û|ßMÈ6ÕçIð)Åwûq;Vàà5£É÷ð’šÉ6ÛbnßXwMd¥í÷YQÇÐ]*Õ0ÿÕh)8Ÿ¶04lb uÖe²`N>·–‘¦A–^@þ‚Ô¿oðþMàÝu׺Å\ûKþZ¿høí|¼*ø6ÜO½ùïÈnmm¬µ´þVÿÿaï, ­º–5]Uîîî.ÁÝ] 4„ $@—àîîîîîNp×þæLÞ{·o¿ÛWú¾±Ozdîq8ûlc—ýõ×ZkVƒ±sLrÛ+Þµ„p³dܤ·ŒÄH?O9ÜÂ#¸ óÏb]É»a?Áï‘\{ÊA‰lÇ4¬½Õ Ô)™ÉTuÉñ;@Äè°”·ØrÖìNpÒߢ”HÕÞ¾ñ­Ú!s_?ÝãÑ~žg¿'Rvzû'ÄûÝ5Ñï}5èÞ{Ü_=R˜i{ƒZûþ¶òé4é!UøîY±`(tØ6i~øŒ›]v…zð=h°¾3t¸£wÑI,šËº`ýv6ÄZƒÉhÑSaôõœœätœT7E8#uÌxO4dD¿A‹t䃒Ö7ØÂ³Ré2)&A¤læ®j*ç»ÇÒãõ­­¦5·H¶B'‚+ymGëîŸùÆ àÓWíL1>µËÏ] ЏÙW47¯2„Œ}â´‡,’"Øí߯ ØušHNêûŠÝ§0܉7ÿÌs;´Œ5ÅKJÛ§–Ê~Ñ~Ú‚l¸ÄOÝ ŽN>æ¹gàÿj¬È!kc0ଯÇ’6#NЯÏú•[{e¶ô’ðØú1»Â§žOårJzºï>ÖãºÿµÏÍu»½ ÏsÓžêû‰Ç-´+¬p€ÆµÎÖùŸ{x^ ÀŠ¢¯4p™°ãÉ|ú´xŒýœ¨ªlÑ_㤖ì xï{\nDš¡ºÆÏ³ÇÏx_û¦&šk çÀzá)Õù½…{M¨¾¢2è…ÆšÙ·Xû8Ä)bÈõQv3”.ò3ü$µ xÆIxBsxóÁü÷5B²ÈAêÔ”Xë&öï§cüÞž:؟Ϙ 3t×rÀÖ“ÑI'n xM7äé«y±ô`mFuÜ”Øæ»Já¸?ÓéæÈïôÕðPà(5Qh¬»:”Î ¶à¿¯æRV²QD' ^Åòü¬î9H5˜\0…¿æs›‹ì? ›YTøŽ »ú(’E¤Þ)dç°·Ÿý…º‹pSä¶sÏ9ŸnbÁû³ ­ºM–õÁü÷•N:È 9@ußÜNg³E ¸;Ÿ}iÿŸŽü+ðùÄ»úÉM… OÆÏųñÈ›Ç~?ö5Móóö–¢rïý™q÷È~2bQk@=\VP5DL¿q+¡4”Br û?£>‹—þŠlÍ]ðožƒ=WPÍ$7Ìñ×r'†:ébÛKü&)ȹÍωAT ñ¯wgRbPã|CpsÏ ×Cè šUâsk ¾ ¶Ø±JS®Ñp»ÄH”„¯cyÉ{×á±ë ,¾Ž,0ڟߊõ>‡¿º«¸Ž‘ϲÛ~øÝHÐa9Ìgè·ZÝõ ÙðópÄd…HdÒ~¦B4²_»/“‚-ô_,·ä¥ìÓQÈß„ž 6ÿBoðÏRý/Õß2ã||`µ?Û› nÔ;¾ðubn;ÀkÜ1¢]éÜ Yw•|Z뀮ÊÃu¾‡)FÄgºÂŸ>ô]À?‘öÁú/Ö‡’QJRÅÇ®î<€Ûµq‡Jfçûá6ñì1RMðûïiØ‘»ª»‚ŸÕÀî/Ñü‚¡m¯:‰'ÄÀËïQT¤Ò[cð©ö¶Ç꣉oÉ}}$˜×=ýŸ+£¤–22Oº_îê÷gØÙÍð½H gw×o^뎩›ñð+•]^3޹¤-©‘šRf6W?Ÿ‡ž#h%[Ä£…‘½»}fýìÿV²s°Äµ’¦ü¶*IaI.×%‘ŸÓû!~bâ×e6³|TG%ˆá•z ö–¨¾ _rûƒÃûþþ ²ZU䯮&jܱ ëÚ˶áû}‘¿£M±{6Ë¢nk •ï_¯jRCÒÊd9®n·b1~^Û “‰jåˆâ°–ŽØpG¹Üìwí–»žuŒ¯àu»År`á=x‰›ý‘Žjøµ²íÔDÝl‡•¤t t¶!òI°Eýës)nÖòYJPã'†é;Äjk­@í2Ht\üÈÏÉ‹g÷§ Šk{mÞà®kšÀ;·âý•¬8bNô“Jw‘M¶y¶À–Ù{ôÿ·ÕP²JTmНN°a–î’ĪŒœ•±r{‡ü»5¿Õõ»XªÙ4üþ»è¯íw{[Âáý4 úJeíÈû±@É6Û®ÚT;m m‰ÖÑ}QëKmì“QKÙA O»Ä·oˆ¬]ˆëÈ ÂjcÛí' ¿K‚]ë/¥ñˆGTP÷ÕõC&¸yZŸ’ýÛD;i‹õì¸ ¶ˆgµ§h&aà3y-µŸÜ=é?"‚ ÂvZ€oÉ刌Ä`c Û§_‚¬ÁÂTͯô‰f9ƒÅAû*øF5‚ýgê)!Eƒ-àß]=¥­ –2°ÕÜ|û66é>·_È_ŸY$«o ¶õòœ.•Öv¶Ø¾³¹ „›l[ÚíÌëÛD­€ŸÜÒ/m:¯ìÏÎláþÁ5DbPé„Ù¼²ÞØ=1ru$~Y)|!9>ž«´FVH»ØC°b@&Š|ˆ´Óì,ž’ÖžÛV Øaí`<ÁÞëö¯®’Z?Ò20@7ÛºXÖÌâÀ£µÄC Kió¹WÀ ûœåçU_¢©±xH Ëm#à}'4+81€WçÑ?Ší[«äœ,•òN[ÃW;"mûÄØncຠìk»ïæk ‹†µ£c{×᣻¹kIÛ…}ßøcÜýlYàüá#[nɬ“]Ý·Á~²Mv ýô'Z¡ÀÛ@ ˜cu?õ ¶8ÿª._I+Y"I5¥ 4 <°¤ ,‡ÂkNØ·%˜`DÞÀ={oC›¯@ÃsxÃQkȨó¨­BÂ.ÿuµ‡u’u’RãÛÇ¡¡Z^Z¬@¹ÀØ@„À@¶PY-v¨0r¶Úr~ ,EKÁ2TF¡´f›òö¯®*TÇÍä–d%š¯Zß@ÆPBU U7P×îØ+øN]Ý!Ïå¥ô¥2ÌkúNãh'*Ü:Áþâÿ¶5UòKx).•å”\Ñ:ÔýÏa:Qµ¿^ÒRrû½Tc±÷wÄz+Ð#$ßú÷¬aÒOæƒ Ý‰Œ2FvK]©*e¤Ïtâ¾ÛQR<Ø_ôÏõçúsý¹þ\®ëJ#¨bÿãšÝÂ’—¿SHÏÉý,’V²Q㇔¾fÿ¾•©]çRRPRI *£®RŒÇ*‡2Àïãó\ZI.`%¹eÿÿ óý­‚ÜJÈÇTƒ÷¥ –×Ër¹Wy{Ÿ•JšT‹è­ã5¢6àѼ° bh%$t÷ú]®GY)ì:H²èj?¹ªõ¶W’DÂû&É|-l“m„mµ½ü¬ öo®•u'+/Eñ„?^çó¿\©±p© ×]'ÙôµMz kµì´–ÔOÑÊQj­õÞTkgÛE˸mó¬™fB?M$dôøú×V1IH$7—«X»†ÖÕåšÂÚ[5Kg¹,¶}%{eºØjç­­ò“íûÙfÛÉßYñ’ÏÐAy*§?âúÛe÷ÇÂûi7­×t·žÓ8ÁÎkl+k¤²Nã¯Z¶Æ¦˜ë|^ÜfØ`Ëb5­’¦2NgStš¤£:úãùü•\Ïê½”ŽºHÏ"}"Ëf1,©¹+›BÙ$«¥õk+h,•ï–“ÙZØPb ˆõ²=xÁ0+jѬ?qR‰üÒÏ{üõŠôÅe†|©›5 ¨—Öâùþ5ɈýsÜRØ­®AÄ(–éÝtŒo­¶ @#Ÿ =l ¿ ÛGÖ^K¡ÇÒëó[)%®Ïa«ÔI÷F“Z&;Ëý¢ö@oè3ìÊò[m£ðòª–í¼Ò\Ö¬Ÿ¤³|xAëÆ-¯õÔÑRî¤ø~Fi#‘´%²g'¶ã[DsW0?ö{z÷é¯úZÛÚPýŒì÷Fãú«Ü£Û[}¤e­©•±pö ¯If­mƒ}mÑÖ\ù$è½Þþ±•W²ÊG’O6Ëy-š¹>¿eÁ¼ þŠþËz8¦W5£­Õ*h'9ú©g¤!3ÞÕ;šÌRÛcßçã–f! SLl2(Ò} ›”–8ÈžQjcëˆ zL» ÞÝgëÀ]ݯ®ûñ#MŒ”íô¦fð»ò`ÿçhå’†ã=n§ÛcôVÒ¾¾%3v%c~#õÈ!y5"ãU–q2 yRƒöqùÙ©[°üjÝ¡ë¸]Fâ Þ‚ƒñ­¾Ôè6€Èp³Îid¼å$¨xÍïñ+n¥ðŠ`B+tÒ)Ÿ‡àëòÀVsÉ@™§‘;¯½Ðxºëátü÷ÎEûô9’=â±Óz-Õ¶ZT“ƒy‰ÈÐÆ3"à¸ÞâU1É…),*±ï®íi÷À‚6\ì=ïkåÀú±¥ŒFµß8•©¹ýŸ‘ç’ïð]ý]7üü–©{tø’ÜÕ.h! ÇÔ÷Nê&ìÿÒ_+^‚ŒPÈÆX›eáÛaJmŒ?RòV¢¿•Ô—Ìæ¼Ùy¯lnÖƒówó)"ÿïh:’ŸÐöÞOÄrW>¹ý}™ññ̰À} ÀAžÏWJcÍ­ÕÁo?ˆæÂ ßh*ªädÁ÷¯V>øn9ù^>ТÈõ ¼öÝ_öëÝKž?¡Cñƒ£è!,£·a@QÀ´{ð£ÖúFK ½›‚’Âvã+›ñ€LxÈKu?Õì°¡uÒä?dÝBÀ¾ï¿^nÞS^<³9<÷šºˆ÷ñüºAÝì›Ù _Wu“¶èêjzÅïíð.©¹y(qÈöµÍáÆ6ßö&yàW°ñ>RÒNi<ë.³%v‰êp–d rçÿ}•$ë•–¥²SvÀã]ß"× ô=RÆ—Wâ½u<òÞÄû]W³[dÁÛêvÇÞÓ‚T~·ÀÄ0p ¢°Ÿu…Ÿ’ã¦a„±<ÔŠ‡È,1(¹ÀVØXmu4:Øbÿ¾RÃw+Âöûò­ßa3w—ÂeÜ „çz^g ƒnT¿õ‰žAî³ø€›êt]™,š‰ÝЉºX›èzpPl!`®ãIøPd{¢ Á¹Wh­$3?ž>K§ýLjÐ~?á-"å|è(þÐ>´ßÛkb¦:l0e°Eùé%…¬7Ù&¿ïU‘È\ÿþËdòpÄ÷¿²#–wXv[“øÞ÷‡aðôñhÍUHnö[^ð~1x±ˆ pG碅ÇÜs=ž7ûÀ€ñxÀâšíµýÒ,DIH­›QÒ«Û¡‡ÚÍYÞõ¨{Ï·v]Úvèp<`¢gôo‰ÃÆ·ùí^óRøëý®á¨uÃÙx¿Kh#’$3¾à)‡}·»fäÂU!ð½Õ¥*ꥵ@௄pžRÒïwÍgý¨]Ýõî‘`?nÖÕ*ë;½×ù¾—g¼#“¹ù8®kfmìšÍöâ9où„CàÄ"¿“ê9°&üHÝ -w=tSëdŸÙ9ûÁÆÙ8a­+i‚-¼¸iwY奤Á–;©ëi#xk ²ÿKPl9Ìoº›^¦Ý¡Xµï#U ä¿M-”Ð"iu­I4g7×í` š£mlŸv /8.€®ÿMQ¢8Ï|ˆüîšÊå2Ö‘.ÈÒç’LRDÎb¿MÈš¼;rY"ßeû›È?Äßäo«üì·GšÜKß/lûä¬42×ìWžŸ¨A‚+xyu¿/ü°º).7$AæVÖÈ`mñ|–B‡J¼/¸ËÃj)¥‰ú Äi\{è±j'Õí °ËÍ‚qû@÷ã¹l¾ï¹Ë_÷=LŽÂmÊJÉj¯ü.áïñ ú’. ö{ö”‘Xª‚¼nä1nGñ üe£Î‘ÄAŸRPÊÊS©d‘ú$Ë¢‘ÃßyžsûïûGý¥á°ì°~Ü…¼EúGÚW?'‹n ¿ÓI®´¶kp ð¦éh),•Dq0ã4Ú¸ j\Gf¢¹_õ–D–A–?Ìç#ýxm®+c2@8òÙ5b÷&öß ï‡ê“·&àÁã‰÷ÑDùzñ¦ÐÁÒ[òp¯·Ùèãk늇?ëãÚDüÈM-^V¢J4«È'TÀ7\]ÑY«hí ÏA‹÷]G­ºƒ|ŽzF±ÿuUÝßÁr³ö„Ïl×h&½ß9 ŒŸ‰W¸Žç#4¢¦Ô˜àä(íCÞë¯-”fÖûhÑu<¢ŽE»$Ñ@‹3ê¼+hÍrð÷y=*MáÁ\ñ@àÉê¦>Ŷ„T½ju`1‘`áù÷žÞY«3ƒï‰ô¥òiÁí²b/ýZKáŸêø~þꎽ³¹¼Õ/À›VÀcÁn ¹päÓ÷àJ)jâ·¼¦ ¨°›J0˜ò§Xx`n²ü2Me…a8‘ýô›7¾ÔM"}#Vþ(bUávÓ‰ˆ¶•džs KˆåÉÈ9^ÛÂ÷ª —†¼¤µ¤zØH„,ä3ž¢Ý_ñ&×a UP9x’PcöµŸÉƒ:ÿàC´ŸGb!Ç}­n®Ûç9é²À)Æ£kùùŠœÖÖSÆŸýpÚ9Î÷о×Ùî/ÃC*`ÿ âtjÛ¬…]óGMÖÃ%÷ªãÄ‹ù¤ÍÄÓcòc9ªÆBÖÃûC]ØwðV^j°tb~–Ѿï-"ÿ"h~©†ϳ¹uÓNÈï:=ƃ½Ô¦ÂݯÃðˆñü;pïÖh­ƒ„l° ƒÛBþãä¿sx’ë„6EGâ/Ëtïþå:ì'£Ê|C&]"ÁìQü+#[¥RF°Ìj¬>›÷çÄ»{cë–È6R¿Ä7RQÑ?ÑOMl²ƒï'§ýˆuÃ[Nj ö“þ 0ãƒäÔGpÀƒ~’Î^»Úåg¬-A¯5‰óáÊT ƒå´L€ó¥#öú^žnâYO|ÀMê…º¨›ù±Þw7mª¹5»^‘KrQIXOøÌDx2tã:›¹¾™›ÑÊZ¼~~‡ç»þ_‹ñ×5÷¹ß%ù†ÿ«Gå/%IeLÕ¨VØKÖŸ‡ã§_œõó¯†Ûc‘»1pŸh¤…4 ð‰ëûE5@ÂwޛØ›vÁžGðwwìl#¯Ìj„'ÿ?@GÑÌ~âì†&‡ª¢üÕ$’Tư’á×nºÕ¾]ÛçýÁ×í0 ×Ût›ß×¾$(…Ý ôŽhÓµšæÓXÜU ‡xÎÍJ?OÔìñ–¿Î»ç¡‹Ëh+'øÊ☛¬¶‘ÊܬÉ9A”¿“Ô×›â0ß}ž9„¾Ju7Iž€nk¨Ý±Ž¥`Àç<;{Q×érÑœÀ j6].›Ér›ðŽÃÈ<•˜^‡vš¡¿çH}ŸØGMA_1¬èðÙÝtp7i$œDùGÉJIik@#‡Ðóøþ÷ÔíY½SŸ‚ônšå&u=qÆbÑud;wÄÇ¡Ù12ÿí'd¾D5÷àý»ÐÚ‘Qlš®“!Çܬœ-èå0ϯû ¯­ ANøN\{íÏ ¾BC7ð™N°£<ä wÑlXP¯ê,íä2ö½ê/ã:{»0ƒªwÅ¢j Ml;†÷#^ð­ŸâzÙ¸9×µ…}KTÌVû™1ÇÑÐ\rÇRbd1Z‰†’Xvsý._û|‰ãûùäädœ~Aíø©d•ï°÷m0ÀõkràØŠÃ¬cZ¿øœZC ¬AÃÉŠ®ÿýHn®ÃÕ2-oMõ¶ìs/órPršï‘9“÷?Sçû·@ÿ”`Þ.-Í£9ðz‡‘ì–fƒwÖHÌÝ"õ$¡ÅWݤ‚KH\¯`sw&²Æä‚w`ù"XÌ6ßú{ê<×ÿvѱ†wE¶2p£¹ªdˆf<7F4œG¦Â'nñu„›’s”W¹3§IÉyÇð¸‚ÔA)©J0çŸ| ÿð½wbûîñ*:š?L‚õõ]ÓV¡±“øÔô§ÔMYì4ÏþJÞ¸ê]£ªü9m¯÷p©ûŸ@~rs_Vb­d0–uØò2, ¶½ð!×ûþ•ËÜu@šä§Ü¸‘/¿ÖG³}ߟÉÈ=‰÷ºãÿ¿"éa>å>rSã[%KmµÐCeªß/á=ñ-–%²¡A–¿•”“¦²Ž ·ˆXßÞÓtviÂÀéãPé=À¦Ë}¼«O+†ûN_»xt§6е®à}ÿw×)è>ÚL ¼ ûG#a%Çÿ¿´QR$ÈòçÂòPfúnÝB¦wå*œþ?zŸŠh›íY Y¢ÞM‡§ ÀžkB}+ÕÈŠ—aǧðƒÍxÈ"tuŸO;†ô;¼ü™°µë&úšª*¼à1|ö/eI• ËŸ\J#u}kÝ5çÁòðËùH T²ÿz¤pÑî<ÄU‚óðócÚ [Zþ¾„Œ¥mZúŠèŸÁókС답íE'îßñÙY©vî ]×')3(›Ðs‚ìàopWi&M‘ᩯô\¯§pÈ}ÆOÁžå{à.Fž=X|ÿ¶ÇînJs}±~°(Äqª˜VÂÜ”œ¯ñ…ïˆc`ÿy"æ<ò&"ç·°*ä”Ýèä¹f±ü `6{„Ϥ òñï|ZAŠËÙ‹û#~—ñÑ7Äó2â!Ð ·žíG'3‘®›6&2Y9Ëm­r×¶ÞÖÚ>£ò?I|´Ñ~pÃ]~.ÐI¼) È_Šº7UàN¢êØüφ~¿ÒÂÒ8¨òÇÔf’MVÉqü{ø6´;‚Ý–ècØýc ç;¯ /ûy¯_Àþ~&>ÒJÖÃêbÕêÄs&*º`š›Ž×ü×Ð×?#-?Ñ呂oI€®‰°0ܪZO­'=ƒ*ÿ;™)©å­Ü@&w¶·?Ùm~°‚øÍ#oˆ wÄÃMpó]ëx.¼„,Œ³O¨cv”ï5ñÊe䇨}ûà \Cƒ)`V1¨€Ž]®[R"+NM¤n"’Ö‰A•+È%ý5o™í5Lo¤ŸÎ]ܬÞçXnþ°H;k 탟$›]Ö¨V 4Áò®CþSÍ`¿ú¾ø[ˆþ/µ“?f²ÏÈ„Ÿö“?ð¹±-ïklÝù™h-µ¡ªü"‰´…T†ë¿ÓTæÎõ.T7 Äõú½O•–vØŸæwG®ÕÔs—5¢…û‘¿¿ñûr‚g¹°pÀ_õp- XAP¼=†¿*ò ŸêæCF#ï¥úØ;v…$Ò~rN2˜û–ý±êx|Û£DúJpÁ‹÷ïŠWÖWêf—ÅÅ;X+ë tZàÍn^¢;k~Ã÷vGº_{‘ßÕ'ø¬°Äˆ;ô+GìŒóRét™--üŒÊË ^?D‹bA×é5¬¹ÙËüÙ.w”ôÌ퉺³„ŸX[kˆôìž ²Á0ÛG~ŠÔvߟ…ãW×MÆ[„?e'c¤ â#xûÔ¶[xV,=&yä’–‡‘ÄŃ“‘Ïßåª!ÿ%¾¿»Úõøçz!¯Ç¢¡a³×µñ[‡®u±qd‚èb…·³¼ÃÛHîCä?‡A¸Š`±ºãëE‰ÿúö5PZt6=ØÂ³N€I¥·Î'*?±˜–ûÌ Ò¿Gæmxô+"ú¹nðÓ½Öñ×K¬X ;Ö³žÖ’8~­ŸÂ>17ÇuºugQ–‘K7¢½H0ÊkèÁu]á+#wÝdaëj ÑX]«láY?ÀþëK!­N­Ÿ ßBäö¿»‘Çæò}Ÿ€bý50?Âê’Ykj øî­ÉbÇÉý”ðcZ‘HhjÏsÛ`J;ˆ( Ê?Kv­nõGžƒYáJs¬Ÿ›žláý:'ä…䵫d¶‰Ú颒éã;€oÅÀkç!ã²zëEÆodyì þÐA›à)“´úrÇ÷+㵈‚k<¶GOûùÞ/a?ãýnbî5°5ø_Ó†ØFâ,dì…™!ƒd‰„·¶€S£°é(X\{n£ý$Ð¥~ºãxb (ñ yâ&õäùèi²ïýÞ†¿Ú¢§Ìö-˜àæÇº³&wü4Í]|ʼ*"|"&y#/\1¶·}Z;Ø¢ÿ¾¾“áÙ"Qõ»ó4KAúþŠŽþØØu;ŸÁ÷Ÿ…7tV7¿ÙÅGn]‘øj˜z0þÆÜÿ’œ9˜ Ûfã5;‰€-~¿À*>a3ï~Ž÷ä%nêaÿ—ÚÅòk»` þûúQ*IBêÓ‹XÜÙ{«?¼>C&w³£ƒèe4‘ð3zèýgbÙ˜–ùc’áæé7èË7vÜi\ú:XÇïixƒÛ=r<(beÉð¡º6YF[ðßW)-ßjZpû|]-4œçX¿»_äû/Û§{9~À&"ãJžY­75µEõ^›hŸîF¡ƒIÜÎñ¬;’|ÆwÄ=è§ŠG!kú+ RXlÁ_ ¥•,•ô ,K‰oîÇ¢/á‚¡Ì]Ë{ÙN7nÄ\dJfnßïꙓ¾ûÿEü{ÒOB?òоb¼…Å[íW4¸Aòa*øRP`¢– 1» ’ú^óà+²’Ûçëv´Þ#z+ÂÞÜì’ÕÈ/ÇÊ›`€'‘-Y ]ÉODÚÎ/å•SÁÅøýNxòYKNlJ¦L‡ì1©ãñ»y¢ŒeÖàV¾ÿûr×µÑawýŒæ•d¶¦Ô»;r\f7Ë“üÔߢ¶„˜x‡ÇAžT·ð‚¤ÝܵÿSÑÂ2xÿ<ÈåºÞTJu¨‘²â™áÙn§`[+cƒ-ô_¬’E¡YdÁMøx]mEÆ KUw kîÖ7àúr¢`¶?˜ Ø I;¨›ðJÝÞï,`@bü`/º›ç÷ >ÒÒVïhesí'òf;ôäŽ|–†ý–¶–Ò&ØBÿÅÊJ ”“r^'Àráùy½_oCâzÜ ?š†fÜuW4£-ÕÛA#Ç¡©fk »í¯n>ågî!‡\ÕR`ý0B˜¾MµÑD~K°µ­Õ°.Ú)ÄõFÌ ŸÉÒûÓf`ÔI"úҜӜ掆^ô¨¿ Û®ÂêÙL=/M5.˜áö¹ÅÝ^à3Çý¹ï}ܲóL!ꄯ@ÁÖÖû=¿ç%¤m°ÅýoV.*Áqä´dØz;Ù*´ŸÙùXkYuòÖk$r@.ps5QUۮ勞/Et'!þ3â×¥m³Ï÷×°dìý%öÿ  µµ¶Ô.ZÛÀ#ͬÁ¼æço¯žRL®Ka{FLG#G×A¢êæ77¡ÒOCÿz}/±å<Õðcý †ÚörÇõ½Åú®¿AN{ ³9£eñæ\>‹7Û–cãzT~U@L%úÏ’! éR»‰m±½§Û í+5‚-âßYõÈ„u$«¾²V”l-¸Ê> ˜}œ×0ä‰<’Ϻ“Ù/‚ìåÐDôóXÝ4 `d$0¾–wsîcXg´/Ð30:£^°ü»«²””Z2FwõngkC2øp–² ÙGä‡ @*ø_ÿ´ÅŒ² `Lwè‹Ö÷򪯯Iìe­«}j'-Ö ûÿþÊ%Q¤›¤ÒºÞÎ}g«‡š =4ÑSÃcÞÁ«Ú×d³8Ù¾C~|;Æ£)à©Èym?ü¦Q0Öæ'´¶©þz5€ õ—[ÒÒ*B†Ã~b‚Ù­$‘^Žè¦xçÕûX•ÀÑ ~l8a-,Ý_p{ü á‰í~aŸÙÖ¶ßUb[¬bå–šxë icç°aë‹­`ÕüD³›âîÎhv%ã½¶ DÂçÔxIm(Ø­t$&å±¶vXóâZéORB [¤jÕ‘² AR¹$w‰ƒ¶ÝVÙB»L®Ÿ |¦$Â×"m[<¼9Lá3[ióá8ÝÉ‚IAÄζ‰üÙ(Ý‚úŸ[ zÕ£*øPr’‹ØmKXK4Ï·'d¿1>pÙFñ÷|ÍgÇx¦ (0| 2î´mv¶ÓÞ2Y7ý–Ú2Ø»<ÿµU(--d-¬8-œ(²m±´]düõäý®V4PÄù&þ´)vØJR†Ú24Ó‚ÌWQ‘Œ!¸ßÏ?²*Ê×xÁçÒ]ÎÈ}™©[m·µ3øÃ¬@×À²@²@&»f}›ÍðŒgö<Ð4àÎñ¿Ò«ò±$aSÞþÕõ…¤Æ‡“ÉmÙKÜjÓ•Ý*/õï{- hn±àw¨yWÂkêA4Ræ»þ;Vc©†-'Â+iKÍo£´€6×QòN²èNI¡…ô$œ¡ôã5+ð—`ïkþŸYõäÌ•x²F:K‰%)å®ü‚oT“ip†¤D{F3T°¿æŸëÏõçúsý¹þ\ÿæ• ”õ?ÿ*Ì-Y0±ÿ7$‘¼’/ˆßîn%•,R„[ )$õ¥4—’ò Òç—ÔÊ)ù«8ÕBY*½è(¤tvû÷¬üØ<®”’šX¾…ì‘IrT~–)ðÛO‘»—t•FF#j8mÁ+ªðº%<è×õû¿[É%²d€Û–Ðï43•~»+É4‚–’tÒCÚŸZ§Ÿ<’ቖÁžhDs;ÙcÛN©./õËeý¬€E´†xFûÖâ[3›d©·èÚLŠþ缘?ÒJæ¥à›“KrD ›ëYŸêj]©¯‘»¬’hÖØŠZ:»«qísënã­¹µ–ØhËf®ÇIVuSµÿxù ?¨—_ ÊC9£i%ƒïóŸÙ\'ä+z@SØ6}$‰¬‘¥´Ò¦vŸÈŽçµü–ÏJÚ'èå+GLÔÒ DÐk&Pz²xrù\Âj.«ˆôU¬ˆÒ[¾òkßë/¾Õ—:«çÇ3b[n9l¤u°Úäš6}¸ÉÏ™iQiò‡9÷álï&פ‘ÙR9²Y ,šÎÖéa]ƒõc õ¨6´0vIS"y »©I-²‰…Eö aû€w³2ü=ÖÚ[g]-µþ ¹ ¿gqe·,V·[õ¾f³R`Þb¢]ÿJ[Z Çí¼†²AÄ0ÛGò»…ïi ²aU ELDä¹l¦í!/¬Ñ‰è4øû=þÞªH¤V•µò•VBŠŠXÕu<…„çu«n$öÕ˜–” ÚB#sD‹iMññLvUóœëwVÇjñü }£ÑÉÍìGâç[³“t j·«¿¿*Àô2Ë"ªù/,ˆßNëM½¯a-«¹ž@Qí¹†Ççû®ŠÜÕðþ  È¾ÛïdYð7#ú3p8pÏ®Áïé×øVH¾þ¡¸dƒµ¯wÁ¸ÇÄûZ¿sç ò?æv\wn_óYÝæ¯n<^^ëuÍé¯HNÆ‹nWÔí OœLDú[Ø>Ÿ–?°­LBj”†ëå”ZÌw)r½À– §ëbvX÷ëAÝ­ç±î%=FÔ.€}õ+î;¿Õ„d„¾Ïåô÷Rà }YÈ‘çù”<×¶Œ–öðÉ·JÂóKáŸÅ`sÑ‘)<þAgú¾-¾pÊëẖ"2¬P]/W2b,|=7:¸Ï+®ûoÕE@+KôÇ-›Ú*»moÑEŽxHzlŸ\&JTxLt¿ Ìà:n׬~Dq;ªW‘ê4øÑvë{ª7çãc0 #ì(šµ°ŽàÞ pò·®A/á È‚µ}×óîààp;h{-‹¶ qó’IBi>Ïâ›_ЇHçöÁ×Íøþi?b2¾¯v˜¿¯â¿îº×6˜,áf¥²OÉùáìYr’»I(nöOH?¨j5¬¿õá8qÑUçCú"Ò œâ›?å ¿˜³ái¬ŒØÿY]l¿A#ˆ…cꮉÈkŠ’ÊÁxBÃük¢3×ûdXùŒOJCvh 2¾ÐDh©:5Âf…íuE¡T%• Ä~;ív»«àÓåžâì%wÈO¾ùÑï|}îçßÌCwAˆ‡äºÁ‚BV9ëX46œl± œx«­2Ø÷ÛUÿÕ¬µRukióȆY¬µ4 jçÏ¿\I©rSIRxœ«\RÅ2`MÇy²óóPWáÑóµ/>àº\‡²w°<×%ÓÍ äãµ¹ì+«ï9¡“@…¾;pRê%—3¡Vä‰pãŸl½í¶‚kš_¢[p¿2Såg–Od&ã†ãgâæú½§Êq{õ§£©Ú]ç€ë¯4ö¼ HnIÀ=·Ï?‹¹Y(¥üÞn×=ó4,aŠÎëž’%kS!ä&«dÁ†Úð„¤h¶:ù6$ìÌì§Ú^”tp:·_s~PŒÙçy©cðçáÚOgõ·±ùo;˜ÝÕÑð$š cÔíòˆg#u»®ÇK. 0DÏ{u¬Èi&ÑŸØ:[¨@.Ûª¦$]ˆ˜€‘R’H™§‚aO±ñ ü:9²dÅòqm>Ò…xó m¬ß{nŸOG\äáù7hã©°“`žÛßs\ûûÞiŽý$O<%“<á5nwHAË û¹@ôײùàf]|.$ `6¤¿"QðJ‡uã´Ñ{\ð½£Ø]¬xï_«]´›öÒ‰zÃ÷q~Hd$µ;àá2²Cj»ì¹›0Uƒ«4¾íC'¡‘3~fxDSÙ>[N¶µ^øÇÿü Y`ý<§I†½›ëñrXŸãÁwt/·å~È$m¡Íµ½®Æ;Û®Ÿárª¤êÚJÛÙFq?úùO™,=yÎëªÁŒD~Et•Ð)KíTÁÀÔ"i® _'’ÿÿXäÓ”oý^XGmä{›¥‡íÜô==ö‚ÿwÉüÅá=u%˜wÚOA«aû%’ÖÆÖÉÍõsÓØfA,¸é8‚íK[;"? ? ˆ™šX¿ZHbﵪfXA–¿´–Å’ JW³üdóóXq#ßÞu÷9ÿ &LÔ¶HpÑ÷îâwÁÜCÞVQÊIZ0à¬Ôi Ä^wÜ~ñ‘³Ê#clëj ùìZX¿ žßÆÒÀ¿;hÌ Ï„¬Ì-;ÌÍñyßIV½£’w|n'ÞëúõóûŸÙHëm[´-ñ=ŒºÀM¹Ú¤}¥“ñ†÷?k3«Ûì;ëk1íŒÎà±ì–º]o`9ð76-y°&ÿÛiiô ˜VòËêw×›ð–?ráú5¹«¹/ûY'{ˆòÁ ÿHòÛT­Ç£­±usíª=5›Ô<úòÏ&2:jm-©ñ4­MIŽâE¿‚€O5€F#âU÷|OùSð¢6V†˜ÙKä{þAzx vîûä{g†Ë'¿¿V×Çú$ÒOãæj²ºæ·ºê¾;z-¾DƒýŒ$×ó#Üa–µ«èo_òÝÜÐèh1Ùb?µ@]ûÏ׸šZRQú”dàzÒô¾…Ï»ãWï<¿w}ïnõSüü×ù³Š6‡Ë÷Ðö ÄCmˆüýuœÎäÇMNfhMÖOä/ì2˜wœì¿Ù/ù9ÔõA8­+ÐÀ }¡%‰‡°T]5GP¥‘œ2\rú]­3Áõ”|«[ÈóÞÜ<[ ó«u)^îº7%°nd1×+„¶ó¨0—×.×oÐBsÞÓ»¶°Éèhòï€O\à™Çè2™à%’‹mC+§Ô_ˆLDj¸jT¾}%*•ìð›•Dü 2ü0pn¯ÿ,?«å[ícÀç°˜ì @vXò)m .~WèìwÅŸÇ¿'Øb˜Ýn»Dž[Ìûˆü‹p‰ßfëÜ!D¡RÝå™Ðèñ± êy‘† ßjé¿í¯GñÓKØ~0ÿ#‘¼ÿ?†mç ck´±Äïâûžæ±öøÉßl¡. \À¦MìG2ÝXÛŽ^ç§=ƒrÇbQÿ?¤vº¨ùû|ÑõÖr#ÛK)Dù+Ë—xÿYøÎu2öO~ÞÅv?ïõ¨°Ðdö¹:D“é.y Ûµ<õ‘ë˜SÎ3×× ¹ B3ía›ð­àßnP%9vN@­ðT9Åç)ïHÊ&çÝ9¬—6¢ü¥@Ÿ²ïÝîx¹.×˰û[ô1ƒï»ÏÏXÄýŸ~=¾PA³§ÀsµSZ 67 kß%3Åë3ùšñ=·ÆÛ~Úe ¯¤"㻳DoÁ‚}d§ÔÑì¬óXp É(±ai)ø&áàzß‚YçñçÄì^î „÷¹®nët~áúølö]ŒBaýõþ MõÓˆš˜¬¹“xŸOÜl=gòüT|ÞiÉM…Ÿ×²eÔÕàLÛ¨”aÑÀ P·‚~4éEZJ!é¤EÈÏnªçi¾ãM0̹廜Ž×ã`ƒë}> èëF\…l´Úz¤×e­<Âö‡`÷çÀ‹å ÆÞç:þ¹8±Íͨh®óå24ÅõXwý›P ¤Wå£ Êß ö¹[–aÙC0“\Ôé‹ü¤ª§Xt&¶=øñ}d_DFª»þ÷ãùw ~Y /&×Éó»yÅRªD×3i¯Y‡þ6‚ïüÜ¯Ì —ÔØüŒvÂînþÃBâc¢ï"½/¹êÏ–$‚ëg òˈßÇ&ë¹YŠÙ¹wU׿Áœá& &—›² Ÿ¿€T_‘玷cÙJª}7çÕ]ù±ûoÃÆnþ‡ãc±ò(_VÔýr)Oàó;xî´?"0<8ÆýõdÆ‹x@ du}ÿß nB˜«~[[Y*…!A? žQbH^u=Žgóý]×Ë]þ˜ß ìwÁ·:ž/%s#Ž¡ ú…Û^ájã£ÚUSÁ€ãÚ×Ú-MôóðV©ÓÉ5Ï#ÝÙĈ0Ÿ<0ÀƒðȽ¼çù¥4hÒúÊÇA–?›$úxê$jwd{Øt‰ÈÞ¢­´—¯fpb-:áçáçµÏ¨åÜ4S7/"±e·I¼þ!QàúE7î*©upà8öF³‚s‰ð‚#`Ãb¢+U`"` Ö’?Ùk²öGCʼnòép…àWb9ò'µFÖ•l÷½¶Å#zx÷^u3ÁcÃûàë/@ÅQxÎQ‹‚î"[-ä~8¿Ê×nO‹ºÎŸ®Cíl,¼ÿFî{ŒíãÁ Ïð÷FdY¨ƒ©ëÜí5aOêØŠ¾—›Ó@eâÙMC݉ý@þXÉ'º zñR€wü,$ÇŠ_ø¾êiÉ.Õ‚|%Ø)))å(¾ºÛ_Ù¸‡/äž;wëæÖ>ÂnsÑÀ0ƒoAÇvâÍ\ãh ºïzëfšº™ k‰€þd‡Óþ8Áø’cí_õ´ïŠ™_‰ŠÁï¼d—¬Ò?¨òïuYjñ½cÃP#Ûe?Ç«;7ØL®vÓkÝôyÄ| l{DtW碪Éam­<¾²dƒÏ¹ p±Ñ˜ƒì啱Á½rþ\Ò\ra~ü¥zkd…¬±­Ñ¢²:¨òO•‹RANHB‹`¹©ÔváÿÉ}.‹dŽ¿¿ÁFãûßik?ûï ¨øBóZsØÌgÈ_ÌX=0<·Ûþ¨çP>å{bÉõKÏöGãÓwã9/ÀÊú° †Ö×~²6DkãÁ]Ñ´ Ð1us<Ï`5‡`߀S#ˆú›äÇ÷øiÇ_Ãy÷ÁëÜ,ã8Øû*ØNö%ÿÖ²^TûÀ̸vw­ò\h ùï%:t³”ÏÁ6¢›«*þ¸G3ð¢¥] ýï#ëײH\uÿuñëºNã»Oå6L¼Cþ ßíLT¼@‚7ÈtFKñý¿±.xAy<¹+ÖÌI~K®»I2ãü ° êf,[¶‚[yç{Ní&˜‹÷^Ï‚-¾›}L“ÁÜÍ[þèüuØïb¸3‘П¸wÓcÏ/ÁÆ(þÜðiÍò5²¯‘¼ƒïøÝ=Œ´"v¼øÀÎúIiû‰&ðš©hâ¯~ú‰á/4·¥ó;&29]møYÁú[õÀ~~[…¤–јTi©ù¹¨©ÈÏ.ûîÃ^æÁFcÿ­ààL×_³‚8_Œ¤1±åuðÒí~T2ÿuxc ã Q>“W¸«‰ê½çwÆçÝâ:`¿›y\›J¡ºÛ*]ƒ-ö_¬„’C&K;uózÜÙÉ”äfT.+¨YÆ"»Ëàs°ý/Øw=5aj^á®v¸¡9}l§3ÏiV;,"×mæ÷<å¡6±nÖ´+hŸ%`5íÏ¢öÀ%“Âò‰t“'ê:]×ñ×l?òóìÝ\ÄeÄpt|þ2¹lºßÿtCãáÑéÑ‚Ûû\ ¿~¿HepÞãd_úåö Ô êõ¡JøÎÛtô‘ÙjH˜ýô—+PJbh#˪?€ Þ nÝäý?ÒDdĸH¹ù×ünÿw‹ŽgäïZT4gx´8sßCvW LE_IÀ¼»Ú–j†µAþd¾ëÃjèÏÁøÿX%ñ•ò!žïÎþ¾õW@ºs\74#Ò?ÖøTo×üî–H–ç¯jeÐmÖv}ޱ~ ªÚWÄýVuׯ¬¢ÊùÈïŸ/ÛÝo+í¡ °Çpß5Ò]‚yÕÓßZõ¤¹ תTèáÁw–ÂÏ*^T7é²ñ}ÓO vÓ]½š/±=†÷L#dEC9lÚY‚–îêkmOì÷¢æ+eËì…Eü¥iƒzÍÛß^}åCªá§ vT»å¯¯LtÀ·ZUØÙ2ä>Ž÷¿$¯?õ]ÍÜÌÎSßдàfb{¶º=P¯ÐG42’xÿ ßog}í¶m TÕÎ!¶'jªÁz2Y«ÁQã™ã)ÕAÁÂö¤%Ë]ñSpÏùÁþ DJl;ÐæX¤@M^Ûÿßç_@ܸÉ7ŸÂ"ÙXï<¼`¼w«¶{ÿku•4rUºkK¾}?¢·¼ÅþýˆÛ”T¼±ü4T7ÿÂõAwG=KSõ±áhª(Ñ!väß O:®I©ƒX^0s¬­¶#6ÎóT›‡¨©/ÿÝúVò #ÀßbÝæ`u^ûÞz[a|8+øþ¬pé:’ÉÚ·6&߆z.¥¥²]¼ë*Ñ¿If=ñýY|FK;çMœô“²ÁïXÍ%”‘²Q+yù™Êu€Ã>††ÁÊ/¨úcaùùv̞ۤÄ27áÔí;‹âØ×¶Ÿ¯ "αø¯lRˆØí÷¬†›šà´tF’’øyb¼=öuS"ÂzÝ­§ŽÜ6ÒØEûÄêÂÂÛ}¶èhFX Ôø‘÷5¶+hç,‘_:Ø‚ýëšÄ!CO–e2O×Ù82ëëô¾œ 9 ±(„÷“ÑÛáéaŒa©#[~mа z{l;í‚M ã¯ýƒu€/LÔ…£÷•Ì&TÔ«Ól)·¡–Y²¹ðÿ|H8ŸØvÇÁ£Ãsz‚əͬ¸Ïw‹l‡eÔ³ìZ•ë¶êI°  ^PöÞÕZÛ p<µ»›è°Ô/ˆgæÞ,îEöW‚·B­ÑQþ®ÂsïȪù¤H°…ù—–»2·¼D–©²þ;©ÇöÚl»gï° Ü;Aþ[íÛÁñúQç}J¬ '~£ÙYl·úu¾úëU d’xÒSÎJc;ŽÜ/m‹"›%œ·}0úºp€ü{ 4§Âéj߀¨ÛÛEªœ`ïoûw¬¼Q*Hz*ƒv>·¹óæYÜ@¡@rýÔvƒ+©&ÀòÓ[õ M®«ä2ïæYñ¤ªÄÖ“Tya‚]ÀÚ–&ð@GHjKg=ÈùÈ/$šª¾‘=2ˆz2$œßù÷­Jò%õqm¥‡t,7·îT²Ûe¯Œ×ØTö4©t‘Š2@¾òU}ÿS«¶4‘²OI@‹Ibɶe—ôòJ†i»/Cm;Ø_óÏõçúsý¹þ\®ÿá•IŠ“KK>É,yÈ…¼NÇÿøÊîk™âdøzþ¯ÎRŠÜ_ÙsóLyþÊN›‚Êùÿ·ÉRùéñ% üæ’ÌEúŸ`„i¤šÌ¥2P>‘úOH‡O’ÿÇúþ‘•ÉÓ#U.é-9µŠ®ÖI:Q²é=i'ŸÊIY¨sÅí¦Ïµ«.–Ê’XCÚâü iü4‹8’V:H1Ý«%l”͵SF¯Ë4¹()uºV¶ÖÞÚØ‹øÊ¶kK$dÒøÃ׿± Ö¬-4­]ö{öã»î÷º?Nݳ×ÚÇV†ª¿ƒ ¶Yè¡ÍÐìú©î!6 I†`‹ð/¯,|û$xó'ÒW6éWHî:Úe§Ò»O¼OŸaÙì#kké­)ÒSù[?îuÁ®ê7ZGwI-b!c°ù—–›ù‘ T”ôÈ<‚úþ¹¾W×ñ^Ô.–[·È÷ÖÚZY kŸZKÛŽü¬¦}f-¹‰]ÑJËJ± w¹úçWr²y>É/³ýáÒVÍ¢ÚaÝ¥—tŸ¾Ð;šÒ–Sñ² VÊJÚM5Ú6Æš[eif},?¿£ÚF$Ðû\ýs+ògÄ¿WJemM¬U±Gº^gjX…´ë¤«‡ÕËiì†ïöÕêYk„äMl%·Vö=~0]š ÍyÎû¿[9ðüš»×ë"ü>;2$ÄÆîjÎÐVÜŠÚ‡È\×vhdþúØ>ÿ#ڽǭ–ÿÿ/ŽÞ&‚mm‹%±­ÒTJ„ðÞïÿ±2cýò–IZËR[xKŒç'Ãê1ÑÁm¬œÅÊ[<¬üBhAËA>x¤)À€XÎÌúÛVÕ\ßçnVXd7­ºàs‚%!}e—„’XZKQ-j½¬v~HlßÓjh¢¬ïîìz%¦°}š‰ÃXF´’ÉUµœh*4ßÚº’^jÞSØjoÐIX­LÆ Ùs@ÊÃóҀס‘2¯]Òg¾»ë}ug·òšëq‹ÇRk1ì•>ÖÔ–Ù\ŸÜGúÄïïÏâ{FçÔ0E üÞ½¶ÑÞ¹s pæ"Aßñù[y±O2É¢`¿€íÖuzž\çz{FÓàý÷u?¹ð4²G@ÎG<~O3û>¿¡°{d0!§%²8|J'|¡:nm™eÖÌðzl8'L·¬Ü–äàyVÌNòÝz]®§õ‰žàÞ}êw6ïÀâ—4¡]ä_×'8›%ÅúƒÈ“±í.¯w;|cšÛýžœllÝáEï¬zà¶uÔî䕸ŠbyÇxÂñËàÉ® Ê]r½Ûû{Y݃x‚ëb¶Ÿèºß ø«¯ÂZ*+lEìkÞç®?„7ˆE€ÿÄäÑndÈavÝŽØHKøY›±ãÍßZyü䋾ò\ŠÂಂgÎÞ[õ°îáç1–wûwÎèf½Á3»|Ü{ø}LÏ ‚•á} ÑÅä¿ïw\Ñœä†h⢰!ÖÓ¾µÛvK¿‘‚ÔS!k¹ë?[óï š?ò3ß;«›ðýƒz]ÜÔ€ÝÆ'Öaõ›¬üz§ñˆí¾Öiˆ´q°³ë—ÆöèJ¤| JŒ#ÐÁ)òe>rä ßñð=L(/¾1¿(j¹È‰ßÚÏþØõÄCw¼-Øþr¥‘܆Éq;µ¶j"KÉ-‚Å…ÇD Ú[Aœ î¥Ó/#½“Û]_ÉBÌç¡>×)E$%JN‚|á…ãÐKJ«Ä…È ãl2œð²EÄ´b!èj(wÔ2—Ô—tZ[Ûcç {I°¬$¨æ®è¹¦s‘h4»‰n®WÔ5¢$ì§(™ð¸«‚ºá5;}wèÃoOÊkjp«lÉàE;l>0™ß;ì\ØûúÛr³Î’J\Y'qô¹TÕrp¼ˆtdö H•ÝŽë°p„ö@¦øDDF¤¹ éíŒ&‡»ax41RV†ÿÎ3_è+²¥›–ÙïoLt¸èoL§r* ³Bˆ¤AödD~kü;‡~¨¥ÍMµ¹ ®_kx{¢nÆÁp¡ãµ™.#ß»½?™ÑLF{OœÜ€÷f…åF&&ò¢9 ã ªÄC¾|¬åÁ»¢ÄBwâ¿(X1Ú,°\ÐAëk†Ðýý·èå%"ˆ^ÇšjIu=ýÓ#ã4±°ì9ž™¥‹Ñ@W|`™Ýun}Å«Î#¿›SÉcÅ=ßó=Ö?Ev<OJ‡ŒoQðŒÚ`a&'ÑI¶øžÕˆê¤dýÛ¾’ÉO€¹‰?ÏDƃXt¾6 ¿#A'ÑJ+¤µ0¾ÇÖèB¤ï«ayüpž\¬ï¯oí9µã75;±••G:inIdù‹R‘Ö‘·Èß"â©®[qüÛõ,vÌUɱö>,œuÕïÉ®ÑUXQ›(O¤¡9®èo•ÑŸôš¥ 2t3£B!T~¢Ã§úHº£nq<þŸ¶E=”—–rFŠ“×sáïoÉ㉱|vîVN [?£cá?kÉ#‰àÝ0„ït öAÖ+ä·¬ÒGØd®StžÂæ]lªŸ›pŽ(ˆN>Ô-pªûü}ùÏñžd¥žŽbÁß›]*ÉCÉlO±nbòXnsûœòÃccún‡±b/üÿ¶º]ÿý‰‹åÈﺡüÀ£ýõGY-óÔõCÁãʽÖ%ð·ÿç0¹1`®‹˜ë‰²^y–ϹŠÞòÌÇÖL§ý ÁÔäþXåßÈõªtGvݱ¼Õû¢ü†ï‰=“œÐSÛ†Âv~ÒÞú³:›×ЂZ˯BöÞ`c¡ó¬9µO?< ?œ°'zpÝ"\ŸƒÑú­¦²…vÌæ˜ëï±ÙwƒÎENÉg`@%ÐC&¿wÀÍ‘½¯yàL£$fP0•T”³2Ÿ<¬)Íõ{\‰$‘oˆõ~> ¬¡ƒù«RD¶bÖØˆh3µ²/õæ‚ñ…¨xÍDøý<[NDþ;ÄOvêÿJÖ’JÂíªŒÊÁŸh\âësK¬Iƒze|"i$e}¿ç»—°e?8ΰÌu=[ÇÙ Ót^Ðdñ¬TE½¬*6‚V"{Wô4 *ô³©ow—‘ÿ„ÞÃëO"©ëvËï•Íì÷—»9y¤˜MÒ¶°Ï`Ê_MæÉr}€ä·t/>?ßtý½^'ZÖõbZ+˜ûÇö ÿºŽ~n*Øhg9L¯uµñöµ±­Ö–8y€÷+X Û)š Ëïæú©î&׆ãýÙAÛÛê&o9ôÿJÂ[<òó=|¸¾¾V{Î÷ÿw]Õvàç?~A;´±}“é{ݤ!k¤¦êMé§ÿ ±_l3è· =‚îÜNÁ0–Ä"‘Wž¡»7T‘ÀÕú5œ¨¢5²ZøR;­DùóHIY)ÏñóHÈ2ž(_ 2» ½ÏÏ ¯Š¾× <Ö¬V„¼íjýÚøo:›kƒø»'¸ÿ±ÿ=\7"µß9Ÿí]ÏÌ÷H^tSS¡ç¯ý”­§üIˆ‡Ê6:¨ýÿëIFY%Ñáh¹m'8¿¤6oï.~%Œò°”›2ºúî6hñNÓbAwœô3¸B4GîAH¾ÁwÙDl¼Ôd`CIìQÓYÏ÷/ó7ñŽe¾_âcß+ï8yó"ìçÖ?·ÖQärdÑj ¥ë>V&hòWÀÿÇð-÷S³'3×ñ4·Äf·a‚§É`oÀ„GxÅA"(>1|Øé'@,DºIh"òïÕ,~Þ1<ßÍvÝŸÖ¡‰§ðáKdÍOl*Zˆ`ûÐro­BV£Z¬äýa(x°³H Y‚ÍÚÔu©Û½}æzG>tsMºãÏðûAhâxà"40}MÆúèq©Å»à/¿ ïvn›ð˜Y:¬XN¼Ü¢Ž¬à¯‘( o*C…•Þ&Á{û™ñ±¬”. êü§üÒ^\ß’‡|ûÚ”˜ž¦Í´ ¼þ;¤JŒÏ.ă]ÿÇѾêsÝ“'W×"ç<Ðsž¿‰ãî˜Èjt3ÏO uÝÿ> G$é#‚¬Ó˜Ñʾ‚/4Â'¶µtapü¯:‘ûß©9¸tÂÏ1l}³‘©Ü¯¥¾³½ë?kÿ¢Ã®Ðƒ²[JúnÉnRüfÏ×ø~a«¹çŽ€Æµ¤äÉÔÁàÉÈœQ@>w~49'³Íã;oÕ“ÒTÿ}5ŒÌ¿sÝÎÏý¯À¿Dÿ;b๺¾˜®óÑhrÀxt1ù&ñsPÏÊÙ#MÑÄ pažï”¿ˆ(ƽ}|V\x}¤Žà;€?!»&1×)z.ìçì.êõäªäÂÓ ØzrÚ?åü!·;܆S¼#*ÂÚùcµ¯ï;…Ûj0ÞuùN¬¯e ¼–¼úÍöp=#7ð÷Qð/ᵯž*Àb÷&xÃ=}¦E-z©Ô+B–Pÿmþ ýNÐ{«ïèöT~‹'l%O´SøÃ,|y1LÈu?}ÇóÜ/È:ìF>Ë‚·¬9]Ÿ°Õ¼z$Ï-õçÃÛc*àœ6¼ŸéòÞ— ê6bá±wÐq%IºÎˆ2Ûmf”™dɶÌÌÌÌÌÐfv›™™™™™™™™™™á}™½û–æÍîÌξªÞÓYG²Tª*ß ?þ¸7oDFêÅ RĤñ¢ük¨¾Z˜ª0”ín²ïD¬úÉuí?A¶ûâúßÛy ¶§ÐoZØ@ì/ÅÇ_ kä?µSÐæÉX´g;þMâ1‹Wì…+~{—|bËŸ:8•ÀeÞgókbxV*õ7ù¿11M2sÒÌ&3_ÂÓ—PéÚ¹n8ÊóHsF°Çqß•èÁÖùvBXì»´¯‰ÿ×Àǯâe¤0: :ôG‹x×)êÈËȉh·s´¯á ¨„_Hj¨™ÔÿщþB^•Þö¿OlƘHäç‡äý¹ØnVïÎç_qþ¶\Eœ ÿÍ#7ŽuYð€´’úî8oÇgt‘›lÚi´¾%íDØøí~²µï-x\_0¬±Vrj ¤šCD¿Äcv;v8N¸žß4uÞJá£äAcCµ‘SUÓƒ ¤ž9åUù›˜`X5H kr‡Ü"ÊGÁk:©»¨ï_= d\‚ÿïw;`?I,NýÒG;­Í÷]á¦^£š¶ç ¦¸IyG`øôéèâ„„‡ïÚî1¿êhÇûšJc/ËoL( 2eÌ6i ûy‡­­µçÓݤñDîHwæk4åç#®+bªú„ÚÜﯭðýv acØÜ1±gö>Ù©àÄË^¿‰Ÿw¸~ú `F‡ùì Äw Dwãt‘OôBkO0L²“§ý·8Þ®zï'ÍñùA|Í‚óÌsýïmO`{&;ˆ_l«M±¼õƒ|DCTøíÏ~4¶Ôu|ŸÏ,w×Fm_\ÛMÔvÖ³{fÔXdê{[xÖvÓ×D¤J ­!Ôîù¸âfùÍÃúvîoOâ`,ÖœG…3Ьm!:¨Wxi¤C?ë—_«Ù1ˆ;3n½ã9ÛÀÁ¹àá¾¶9–I(ü¿’ÛñAê^o‹Îaö˜æ!ÕXX2Ùmê’øDÂ,<¸t…Óu‡ÏutíPä·WnsÁ|²‘ûJ‚b™ÉgiøÊ©e‰ê&øC1}ެ«á‚çùZ‡ço$ßYË€ ¦‚ˆ˜á讃Îõ¶ð¬zf¡©lòK?MI6ÿ†÷ÞÁs§áõðøßÈÝܹ yDÁX<ºRVÐʰžàjçÀ.õÆâç$V­ŒÊé¼ÿ:òîÀ¶õûÐÅEt‰La3bDÞˆ¦êz[xc' 4•L)H\†Ô§0Á­xï)ü¶+ž?Dzû#s.²OP)dÑ:ðŒím?=õãmU›w£­³D€í|Ü;áöJY¯†›°ð‹¢ñ¼-¼[åá`‡Lv,„çÇ™î’ÇÂ|¦`ÙnD 䟅÷w³«î#­û; ¡anßÔ ~²ÓagãgðöuÕãN^{€<¸L8'ï$™ö7šk8÷x—ûþ˪o:š—òÃuÿNÿNƾï*ô}®ëû$×õ|¦ —> Úpé‚OLrÓà–Kv)êzCÏçù…h`1’¯; ÷ <Ñî{6OÂ$®“¿K4" <>4XC‹/ ¿]¶ÓÛ<2“\¥ò³»v,?Lìž@²n¦ŸÚ‹O#*æºÙ&ªÏ¤šˆD¿ž0‹L·ÛÏäû7Qðx’‡J*¦Ú^ºöúw C€^×õÚœÚË7VZó«i+ A¤ºK;£'6Ú¸ƒõläïÇl'ìÉn*ÐJ±ÎóNk7#m‘Ûÿc=`¯Ú…ÇÛ)Çà¿vß›ÝOÜϤunÔóTÅÞ»êóïWdSÛt7yˆÌ˜Tq¡9J;¡Ûοæö=ot³=w»¸ÞŽoK0ý*‘A°’øÊSª¼õ®²è®.!jìÞ™Çî.¢ä¹±x@²fwí|­£¤š·Åþ¿Ëßíÿ.@ °EjãŸ)À÷n¯er ÝÕ.ÛÏú–_Å#8¾Cm¿çJ:œL‚Ö¢¸Êv+ZXO•´•¯ÃdÆ‚êä‹uUÌ? 絛·`‹ë½zÞÿ߯”&ÈL5u$%Ç÷œLu›ï lï÷ .s]7óqn:ÖbWÇ'r“Ü’ÏöÙÂÃ2¸8xäæÿÚ}À¿RD›©½—n¦»Üê47üá‡.“&>Õ%$· 45Íd>ŠäO©âîºëÝÓ°¨ÿ·,3ž«±óìÌK«É¨{ƒ4è–]ÄÕ nR‚=û·„wïÀ‹ìnHÛ{Qï¯Ü=såõ„éäm‘ÿݲ=KÚš‘ÒX·¿Áú™à˜=²-l%…€!Ú뜻ÝnØX÷’|?In vÄÆ #»åþ¶fÞ讈…Eò]:]Kö>é R‹Ïæƒwƒ6%ŒG²ÂcíQdº¡`ß2ÇæÏ‚dùðùº X XþÛÙèÉt•Ô%«·Ôäš?¸†öºê^pü ¾óVÏP%§q³Á2{bJ“ÎÛâþ‡UÖ˜¡æ»Ô#cÇú§)fÈf ±~8j¶Œ YZjüÃØv8`c<’æ÷Š‹=§ ÿÏHuxR¸½Ï§]/ì·äʰ`ÿ äY©ÓDºFÓ{<žrò4ùá_¯”®«cE³Ú,‚'ƒ/Öu:CWê=íp"{¯ë?P«ûv2DJ^•]ã€ÝAü!Ô<¤¾ôG]iMSÊð®Ù)qÈæ°ý5˜\\Ïd›…ß?ÀÊkð‹ Èìô-õWmÄ«®’ï'iWêÜ?Þ䇻¢"A;®èj*ã|Dó6 ðDöÜÃúÃŽ£‰E œÍ€E]ŒôÖM `7 .}°Îû{Vr³Ê’BÒtK\¦‘=U=¹=ëô¶Äò=`G=a935¤g/^0Jö›!&±ÏNºúÛWÓÕ 4›Lti)Ã%ºvóT V'Xrâ~²Øiè#ð‹z€ŒpY¾À!ƒLoò?|•0#Í\GBKÙªã<•uŽÙaf›ÈpânZÙÎÉÂî#ð_œn÷XuL/³ÏD‘'&®Ä”úø÷¯¦ƒinžÂrkéNé½»9þ\®?ןëÏõçúÿ½2Àxryû þÇWfS”¯<ÿô[ãO}”ê¶Ïe7TÌÙ}º¿ç߿♸&•)d sBÓÍ\û,1™¨óš2TˆÙÐD\“Ûäãßb¦‘ñ…½Mÿ¸“0™É ÿ#Ť”Ì1!ä½ÙެeÍ0SAÊ`Ù%$šl4ëM[ÓÝ4Ä#þ¸sïþõJdâ˜ü&†‰m^›é2VN•æ±¹ˆ·O“"ò\ªkBí«ù´”Ó™rËl1§L}|Áú›ý÷V|“»ç6Í]ã¯wä¤DÔòMrÊsÉ4–VZ@Ûhn¾*k'®uõ“Ì–âGØ‚Z ­·øo­dÔ½qL=ÇÔ²úAjVÃÊGd)Z)«94™ÛÕÓN;èI]ÊOÅ4"5ñHi/a¥¦):úy[Œ¿sÅçÈÓ™àfŒ©-÷¥‰¾’HWZséI¯ïMK3Ñu¼LÆsu‹Ö×Ah ‹æWÕ/òLv‚‰‘ŒÈùŸéLN“Ò$¥Òý"14‰¦ÓŸâá{‰ý³êF©"CµˆÆÁÞ¡ÐBJž¯¨“µŽŽ%Šê¯Z^;ê„ü>Ðçîo[iˆÜô&…i*µ¡V»ýõ®Ü–ÐZP4H3èf©¢ö¾Îðjç¿Û'qµòЙÚHwëjíÎ{çHS‹¬éÍû<ÿ¶ߤÆcS‘×ß»w-³6ù²ãÓ_å®$á÷Üh¡/H÷Y j<Í£Qñ$èá‰jm®µ¥ŽÔ£:O‡è'ù@”ÙP~Dl¤b"‹~¾™ñåÔZXó‚¶«QfCêòNš~õ‘þ‹C+ÑôïiŠnÒ‚#u?mÓWR[˜ÊdRß?šˆ¸Om˜žæš4@Ê‹r›jFàæyØÎ¨!ðú0š©žHK¤µ{<2€Iˆ‘ïòI’kW­FÑYڀع¢é=eµˆéËçúú ˆdÔ1EÍ`sTê¨Ñ3rJNÈUr~#b %Ï<¢‚s%±p çñwL2“ k¸IaÀÿvè$6ÐdˆÌÏ-õ³þ¢M?Qqo‹øWV Jaf›;2ÏÏåº~” øtU˜ÍiÁÈm·ä¡$Óby½«;–&B ~Ú8 ï&c´ÓšÄKB2£½ó9:Zê¡ÏsilZû0#ÊuÒÁçC»ž ¡‘ Ðu·ºîBúÈÿÿÝCFŒ‚E_‘ã“hb!VîÌk£ò¾²Ú HÁoFoðŽø°Ã):US{ÎKYSÝGÙ@FÁ-hª›t¶öƒáSYt½ƒ ”.øZo‹üoVrSÕÌ2ò–жþ ‰lײ¤Hù\.ËQ™+A½BnªK,ÿI B†uSì>ð: †”›èØÌ§$EÚN:Êu‰ëBÄ€I”NדÙ3[Ïg¾´6*ìt Ö-G$6>[ôJBT'â+ ‘¼NŽË*Ù!)‰ódû„ÄE\¬(Í+^Kž/°ýo“'¢Â{FóŠÊ°Ãžøý¢£±4–Ü Ä7i(“|fl60? ˆJ®›ÙcþDu/ –&Í»®^“‰ÿÔh$6  ÿúãï$ ¯ ÐpxD~Þ‘Žˆù@¬Ø¾èÙáCåȆƒ©ƒÞVIzsSí¯Û¥”$ö‘z “C¾S¦9~{S* E¬ÿ^lÿ¢®kQj]&»d‹t$ÛÛŽPQÝý¯Qˆý¨®»{rý!nPVôqº KŒ ¶›`KmÆkóÀ‰Zã _dŽÞÐExŠè ãweÄþ‰Ly ‰À·õ²\²º¹_ˆ{?çÿ¡t­œ‘2Q†9 \xEž»‡ã {r}Œ¦~á6oœBoö.iåUaa‡¶·d;¸Q-b<úê2YT>Q 4yÍtÓEÊPÅ¥ÖûRƒ\ïÇQÛnåÓ²¹6ËäŸÉ_ã`ë®×cZLìBlÛ^n×ð’³ ¥íî–ìA‹ßÑV&-­Åáùñˆ4xK!4QŸ:`šy[x–þæ¦tåØ"Ùƒi¯$#™Ì¸î÷§Év{ß)}¤‡Œ’é®KØ>0.8q?‡ç«£«Pjû„Ì“¥hê.`™ï+| ÑSŠZ©8ì!ÿc ¼èW]©õ}àÐ Å$1Í$'Ç–F߸G¯‰ò|䲤øï+ž±ÝßoÂ×H/é'Sy\–µ0‚ÏøBV´¤û‘÷09Gìý!áÑÇs|á¦Äpù±5Þñ™Ã2âÒüÖ•ú¢(œ¨’x?¦1~æÓ„ 72ÏÍñ¸(÷Éàq@ïxÄþ< ^}…úg¹ô”Ñ2^¦`ëÏh&µ>0YÈ€Ïä;Ú9$+e¾ÄswEÒCò‚g#ƒ Qˆ’7nŠZ2¢ ¶î“üT3´ª”ñ¶øp¾ä¦±©gLVϤ‘4¼»OÏvo;} ’/Åþ‡`õå@øÍÈßG¦ GAúøºÁl1¥tƒëxº•¿%"ë'×ËÄÆ)"ÁrħDÐxÅ^>©ŸÐÉí£N‚G<”Þߤ7¥ÍMÃU3 ^ ®vZö`M›Oáï–ÿÔ‚ß΄Ï–¶®Ü øÀ9gÆ›÷àâ2б3¯o 7XIäØûŸ®IX}ŠÞ¢’Âáû9ÑnLäÎEü+šˆ¤õ½^؉õÉØOd=Þ² zp‰WðÛ&|þLB¾cR˜\^ÔŽ me¨ü†ü³A÷晹èî´]zJI=ˆ„ßÅž9²]¿à5…àEŨ¥›êùU«“Qýɘ‘ô’¼2Þö€ "`hµŸ^ ¾Mt]^‡ }?ä[ä:׌á™9’ùSk_2yxµòàõ£`²¿¹þ€#A¿Ã’JŸéi¸Þ{lú ®æÆ§R9k'T;E`¬¶‚ÿòKiÙbÒ™ø^•?½ó—£àúYŒ@¢Þ|-ÛÛc#Q½ì³Z%aృ`2]¨ç"i_‹WL W¹{E;Áêé~ªüÝ0ÿuxÑC2‰Àýž¢ƒ¦nXª¡1pÁxZÕ]7ú$`žÑ½(}Lþÿüf•Í4dÇ’Ïoò°Ÿ;|B&[N ì–6ðøFdîžÔ¯àÃe0ï ¶uՌБzi·»÷Ûé1±Èø%ݼŸÒÄE/Ý¥‹Ýœ°FøR=-'M¼:=™ñ7e‘ÿ‘ëù³Ž¸ ¼Lö Až O^KAÝ~ÝØÞxï¥9ÈÕùêâA°â•®ð*º~: Ïž‡ükðïc0ˆ—dÇpàjHwÝ$œ;3š«gBø@}tÑDëzu—@Jju& ¼'–n®ÁX‚ƒÿi4´Ú|˜+=—Õ Û ì½ŸÎzçÒØ¯'7ü*¯Å^óY@tØ»CÆ«íø}Ý1Ä(jû‰u{‚‘ÒÂý‹òŸÈG>ù$]¼: 3Ÿ)ož“ý’‘õlÏÎK0”Tt¶›õ„¸Øþ±ì'Vð˜êê÷rð¸førp.ª;ÃW‹·@înd‡ùjû¿Ûî¡/ÈŸ`]‘W5³2¹Þõ©‚‘Š“‹7÷‰×Çÿ7˜cdª# Ü5ä}…”gá,·°ßz,¸ZÈòýÇî^øe`š½&%HP•«¢Ûù©-Œ¶ìàWþjgæØ;¿ÃÁ">ò‰õµhŸE«iüݱÓ㫃ƒ‘ð²l^å€Í¨~bÀl¸žþþpÝw YX,xƒ/àÙwñˆbïkŸÃ]ãæB¤!›•Çúµ»\ÎvÁ³ÓÝ ‘ßvñN{þãñ‹OÛÍï15˶þÉÿ³LÊÂkQ}”)ø¿¿×äoi’š Ôyxkl½CЄXˆº¾ñvðŠM®§¯íob;"( ¦Мš6!.†47÷ ³Wp¥£ø½'üÕC Ù™/ሂxxA!tÖÏϨe` Ãÿ~©3"õZ²^ù1hþ üNE f?L\GtL#ËÙÎæ¶ä2D1*¹¦pýÄøv!l¹ò–›‹½9‚ŽàIÀÊÕüõÝÙÔ¬n nýH Ø^9©ä¡©âÅ;#³cÿÈg«ò\xÀ"9Éq‡rW¹Wñ•”Jf!âº> å±·=PwJtâ?ïKäÎù#®ðîüu¦›—¹<¹'шøk`Atdûæ¥!¯Ô€%¥¦NZE¥ýÔôšôö¬w““ȾϑÓcá£O±Ú~9ˆ%ãsìï+X,á†c¤/šXç:[®àQþ¢$F¦=h倛ŽrïXB¤Ì r€?ˆþ¬ Ýeü©QŸ[ ã/IÑZntQ—y5ÿ×6•LT¸mZ]ªYl·×tìÄ_Û~“$$†_QåíÃþÓÜ”¥Øwò¯uÝÝ€e‘`B'ùýõï6ø í•h»^î=߉‘› ´¸ÇoYˆ®HÔ‚7Èv"P <î“Wí? ĤB ïpÌöìÝ5$?K|¯†ùA’—<³öc÷´­Az;ín#ßg¸>CÀ÷«HcóÂ:¢blp1Zk8Šo”ÕÈ®·®)ô€šè*_Lj’ˆDC,Í«1Å›–™Âæ®ÙÆÛ3[‘b"6>èÎm<àˆ Çø˜(¶=†ÃóÇ"Ù,™K~?çºÛÓþRW~AÖiØz%Ï/@ sÄúÃ^ »×øj'?|˧¾¡Á“¼¶0Œ()Þ_¼yWüZS\CÒÇèàVD$?{þþ=ÇŸ‘c<'ÇñòÅ®.æòß~ õ¯ûµIÞ˜)f%z[BL@7ölÉtp¿‰©vŽpC>%®~G_ à6r‚¶)‰‹”*’Ñ‹òïÿz˜Áäó ßa×å|8v NIG€ãw±–í_jeïþ¯"¾‡£¥NDÆO¬x oYj–›kæ³iDŽXÎ_÷¸)°kùœpéšÍíI ²œwSSýÀƒl®kòYéÕ{Ù¬¦µiOîZ…„v¦ÁJ$XÇqžÅêbóûÈ·…èèAŒá5S‘Ëž(ARÛžBq´¦Ü3S‰™D‡–º¬"ÒÏ‚ÿaðýÈäÀWTOàHAÙS`À j‰·¦«¥7戩kê™Ìbg×öÕBêzl¾ ©_a»'Ä…Ís‹ˆåu®ûs_þºV¾È/šEÚH-‰C<‡Õz òø~ÍüƗ킸ÁÍQˆJÍ ìÆ‡¶:䋆ßw]ÂÊ,ªoï®ÆÔÀ¡A÷ŸØé"È?Dú «=om÷¸æ&~@–e®Ãi;,¼Œ×†ÐPðºº:@Óƒn9áÁù´¢ØùQÑPo4S2{uú‘]síükpù&²nq|l§ÓYXÙN)XÀÑŸ[ŒÂ®£±èmä°³Ábº9Nլݵuo=¬ù‚¨9‹.W“CF» 0÷ÐÈz÷¸Šß§‡ ¥ÕßgÀÃ/ÊH ÓÎËòŸ5A¦¶°= o#Ý<ÿ³ë×=í´°¿€VæcÇb¯^#Ö»he§ƒÚYílàÈø”W\rÓ¡Fáév6ø´1œw_ ,GTI£Q-Fuû†SûOö²üLC“¿/Y‘à“»êI¯:«/ ИßzÇÿ6ßOÝî‹áÜ“rüÔ =سúï@†õèð Ü`‚«;ýõDwø?ŠóÚ:Ôš´¾PHŸ™Š0ï®PÒÃ<7É9öm zmp9 ÕÜMP  hWIZ¢‡þnêW[2À¢Ûv5ŒÜA¿È“‹*¸9¾P]¯£»ŸÄöf¼g¡{Ï0òf§å®>úˆ—Å¢Z­Ct“5¿š3^–ÿ XÊ Àfía·«ÄÎ+¿)v^g$®ÁWs¤X{ƒ÷Üüò×ør}­EÔÇöþà`7¾ÚÀ¡ÎQ |$f%gà“áL=`CvZô2×Mq7Y"Úk­mµ‡O샜hJš±›*6+ö€°€è€çÿÞ㺛촄(¢#Ó u9l_[ûjyxb-< 8ØŸÞçðºìu¸¹ 8ÄqãQxƒí<É]c‹À»bkOŸè‘± 4”&§î·g¹n‚TGÜœ§®È;Xÿ£e0?”rHßIÛíµ*¸a¯ò—Âÿ{Æ Ûw=>pþs”¨²Ó0·¸ia ~:ÙGÝÊN’ö¶ènm$/“J0¹<|¥§.=&ÝðÙ>ë8ÇfÚ“ –8Ûå•$:Œ¬× O3X…LÑÌ)¹.ˆ€ž: lè‚—ït3Pm`;Et2ï g¸+j$¡†ÐT:ÌÛ¢»õ›id’ËrXŽ=º‡» B޵Ȱ#îë&¿ØÉŸ³Ñ‰ÝÇáO¶ÜÁ«zHk|:¸AGÝÑ òh йHj'g_vó4w!ùMòÊq>ï; ;2™?aFõþî»JÃÁ;›œdòh°Ú XlyîˆØù§'ÉåCf ñ°ÆMGŽKÞᮓö@æÞ®³}w°¡(߃¸±W Ö»kç¶‚zÂ×¼Àî>ÌkÃjØqMÚœßè • ´¬y)y©Í߈ÝyŽóˆc?íæ[ä^êfÀ &V¸9`/˜E[Ã.:ÌœJÌvsOf€~WÑã}7;뻄§ò½JmkªTÄš¬ˆî3À3šBT¯ᦶ‡o bó“ØÝöœÐ+×xRÛÉðSÈë@‡¡Ø|ž¼—xššº(õÀ!PoÚÙÀß—âóy¼‘gb÷HgÒj¯± }|xRFPr%ò÷ó¶àÿ´’‡Ó‘Ù>Kcjvª{½æ&ˆ·O°3¿ìÜÓ¹hÂNµZ:Øé>ët÷Aòðáåî ©í ¼šÇw-ñ¹>¹1’W$WTÖð`Gv¤¯«³ÈþÞ­ýÿeÅ$:›ÜºXRc›ØDg8jÞ÷`×{¢y!ö\ïØü7Ãg XþÎM¶þ&É©þìUîmî̇:ÕyÀ^¬‹8úE³¹»áá[d¼x~¸ß-SIo‹ýW“ˤ0¤(Ì×N¨·ó¯-ŽÙ3µ¶œ?ÛKrϽh€—Ä_râÛûäœÜÅÞSÑÂv7õÅNÏ>õKk\òâ*EÅ_Žøú,9ù}˜ç´Ìñ¶ØÿjÙXƒM-¢ÿV·gö»*¸¿‹é®—¹í{= ]ì¨ä°Ìij½Ãë>“RŸH8wWÄ^¿9 n^üyÍ øQG¬KàMAnVÞ@mâYfZ{[èµ™<ä´’ƒX^F4/¦‚±¬oˆ?¸âòÂ+Çk¶Ë±ûÿ£˱õ(1 îÝÅáíLpÛû¸›åÇŸòi;¤o¯ ³×W=åWÙýþÏ+³Ék†˜7’Y×cáån”=6ÎM»/¢qàψkÛÓý"Ùá•Ä%›×ÐzKüÝ>ŸzÚÍÈ;N¾ÿžÚsA`‹vo|Aão:^'“[ë SÇÛÿ»•Ñä6uM)‚oŸvüæ“áG» f©ûÞ#mr2ãN¤ß*ܦҋ‡\™t%ÑQ=¼Åß7’ö"ÿk±W½>5ç$)¸W…|’OWèVЯ·Æ“²&±·þ«¦ÉdšTçvbç¼x‰›s³zíxfÏã&×HtÄÁÿc‘-ÊaÿGbï½ flÅûð÷(àC*„Ûü&ü­¯Öã{7]¨Ë´$È_Åëçýþã*kJ˜Úf1•PEb4²ntSÛn“é¾PÁÜË+cÃøÿ5w|JäÏC6¯F~O‹ì×ÄÊ^¼?3ÈØ@ËhD=…—Ø©ç=ùÔ` x&H¯ŸõýË«® ÄJ¡…©h¿ƒ×Å Yp¬þWÑzÛ?;Ϧ¬.3cJ|:œ!¿–Å'v“õ¢«&Ù•J)¬»?¢‚v@K¶þUð°-ÙÆW&_ýÛUÕ”2ÕÌqÓTç€uoˆ ¾Š߯Œœ‰©ZìDÔ¸îú}mŽý3ºÝœéñ‡ÌDù.b?Ì ”f€é>7"¡™5|â=¢‡µ.Ö÷ÝNÐȃQL8YR'ÄŸsãÕ!°eUwßBK I†ßª¿p£;ÉÔîlòÓ,øÀ3þÆíøÌ × A´$ÄîÍt£.Ð=Ä~Víæ£w?ÿ¾j›z0¡‚f¤,%Sƒ¯Æ%ÊKaÙæ:•ší3Ìðº›ì˜Áíy+€øëWjÅZZßÕv7‘=¿—ÍÍ LDÌlÆòƒtÒ§Ó@ñõ. õ©ò› 敉†ú€l‰°sFøkg¾‡æ·DJÇ*ëh¤±ú1‰OEÓÐMG¸ Þ¥@_íÜÑrhènãU¹<©5¶Tô¶xÿ¥•ÑÄ ®˜Þ²Xâ³½a.M°sr¢ 2-«ñô,¸¸vѳº‚,?ßø,gñŒ$¼b+ïiä¦@LÖ ž6žrÙ”ö¶`ÿå•›(Èg™–R‡Zm–lML×Ã㛣`4‘ô¾ä'ÇÍ'·%Göj<ž‚|Ü$({·÷0<šv"÷·ôº><õä/­L0ÔøÄ³©àëU´;ž0ÕMi¤åaûYt8YCW“1sºþ@uy.­»¸-Ù.'´g±ªÇ_ÛS_ÿñ–í“ܤ‘Ò ~JòùNàù –wt÷°!ãmÖýütLד ~ÀùKq AÛc^׿žåºPúúÄœã¿g%ÄÒš1f¿ŸnGÞûÙÆséêëô¹¦ò¬%>rës)ƒ´$Ún`mAý0†ÐRýÛÿÌ®¤}q“Zè%ˆ—€|Lc{Þé=d®ÓÜ3ûg&>†‚z à:­ø[,¿ÂÄô‰k\ÿ½Î2×D“ìrLÒQLÒƒðø×äµÍzN?éK0¾½»XVgªA+Ë*3ÌáèÿŽÕ;Ž1Ì yG•;м˜Ë“Äœ؀¼@ÀÜT¼g`˱t¨Ü&{¤òi¦÷·¯Â& UëS_¾šÇòNx:y>R'&’·’ à¼0‰ÜÅOÆ™>ÓÝṊšVH6Ôô6±¥)ù0HûI89d*H;Ð¥¦ä£ÕÝ?jU6ÙÌ“JbId¹cBIs³Ø”þ2I>›b>x^çÏõçúsý¹þ\®?×?v˜R°$<ò˜J&ëÿÒÞÿ¿¯”&£IgjšjÔƒ•Ì[ê‘<— /’gãQŒ:¿š)hªûðî¿w%F¦@ÓÔ¬4‡MdYlÈ3 »W2}aÅѤª4’õf¹éEPöŸÝG¯ñü}+¡‰çjà$ÒC Ë8ya¶ ‡FMXYh®H §vŸ×5Y+~Ò”@þÄÿ+ü 9Vö7é©~ûÊiÙ…„—¥»6«ÍVóÐÔ×/Ò]Kk2M¨-4;5QTí))äœégÊ¢ƒ”Þ>üÿÖÊd‚À´Œ¦¤o†Ë} ¡a©t“éw%[¨ôŽJ«eµ &Õq®èošSC©½_Äžùʃ‚¼-Äß½Rbõ“Ó´47Í0I¬5¹ÖÖ,Úù¿ÊO“ÌäÓzê¯éu žÐ® µÔžmŠ/ü¢Ÿ‰‡Û¼?ÿt"\¼ÞÛEu›Fß‹•<¶fEÖùX¼ˆî’'¦’6ИÉËiMvfiíè:¼UÓ¼f³›ñÇ›h2˜BÔú-ÍS±×òªk'¾l?—Èç’ {—×Ìd·zS>Jªëõ}NÆkkp?9È_FÛ!ÿù …É„Õ\”ìÔµ:Lßè{$IMC4ëë3‘’šø&|§¥´'ÓeÅî!ô¶Xï.E¦×ԃǗÓzBöÈoÚ ÍÔÀèXž‹¤qÀ‰Mè"@ëët0p”Ð`ž:V2À -®øîJízÁ–5-°x~ä©‹u3èGb ˆ¯X7Q`ôždÕâX{šØ;@‚µñ€vš,ªCtï Âþãð„¾|¢ïT<·¤»)o¼y¿ÿ__ ¨e¥õÄ<{,IÁýš?Ï<zt «—$¦¾Æ#ñ‰üÛJ»Ê“ý j"¢¥_“ˆHïú^ØÙ!U´'ñÑÐGû°ü5M-“Â4é8âIx¾íVZ‘¨-±‰æ7²CžKF-É3o$ ¸¨ëÄ^óO…ôíÐF òß[)©S‰þxd?˜bzwU°¥ÎÑUøËSÉ#¶6òÅUü”‹œ7LK€7ï‘ú{7ø`Þk9ê:CÕ^H›ÀáBJ½*7%¿¾“¸Z‰Œ×ßWÞÓŒ¼ ¦ u! Ò'Ðd(½ˆ—¼'¾|oLQª÷êf¦)cÎá߯䤠ƒâ`™ícûÞ¤º †Ü5 ’ê7‰ªEÀý‡È_R{€õ¹9,Áîé¦"d$K¶ÑÆ<ZOË\ý¨ç¤­ÊŸ›èï`vKI‰B%›†ÛoN¦Áõ†ØÞ0ÏäøIæÏˆ\Yù*¦Ñ‰ï ¸ÐS‰J´ÂÊ•`ƒŠÇ<“ph¨ ú›® ÑMâbZjÄkRélø`o üïV µŽJ.dªæîèOìöõÙ€!°Øsl¿Wî!¿" ño»zˆû¨nN^$. V¾’Hüé‹ÁƒFyñ•íînú²|^>}@vÍëSýÿãÃN뙚n¶}×Å¿"Re! ÄSÛíÛÞÍ1_îÊ0! :Š®×ñ„©ÈýCLl"õ¨ìGæ§²Û%Å“!"îÊ y'[±ÿ=w·÷R™D.¸†f‚QäÔó¼¾>˜˜–˜¸-›ä4’GB?¶OJ/65DQ >•_xKŽ)Æ¿Íô¸6‘êÞÞÄ2‰‰€¤`ÖÍvï…Ô–åTrýÿßÈK×Ñâym» ‘ɲLV#ÿ6âã3)µ¼à>Ýn&Ä4õÍÝ9iÀɈ°âR A62Å7 §ŒÂöåµ*¹ñ¬xo\Wñu”ˆøîKl=<çH3" P-4üç,Ïž¦Öß#°þ8˜ÌD´ð–‡Ÿ.@KÑMX9qÄLF¸A$DD;ßÁ‹®sŠí†Ù O(®½ÑÀ=#Þîþþ»üþf€„q=oÊBwŸïbÀÞÅ ÿ¾áºœ;ã`‰tEþ2^F»½î鵡—jžEL  Fj+³É¶“N(b(8¨Q…ܘæÓ.uYæ€y´²þ&y¼-¾«wGšbûoÁ–ó‘m<8¤› êíGª5Äý!½·RzK_ƒ¤–ü¢/Íi]íÝñó°}_IJÄÄkâGáõ÷Þªön™âd [O¼–RúB’+iT)`âyYþx&¯™k6“Ó§ãß;°Î~¤ŠüÃÄÞË»Ÿ¸ž û‹››=ì:ÁöÁÆX4'Í7ä>Æ×>™B”Ì£ÞûÂ_ßaT¶ÓK3C,£¨/Ê&'T‘®^ߟô»eÎÈY»½ãîû·Ý‡cO[÷ÄŽ€Çà:í‘ÂÆot(‰ƒ‰dŒè’ Ü‚6Æ‚ye]/¸× ãað/ <*¶“ˆ ø+Ò·s3ñ¾KV7E!›6–^ß×Ä6?L=‰„7î^Û£ìRÙl®ÔrÛ\¿ÏR^‡\CtœÞ' lG—YÒEz¹ÞÀ3ù^ÿ§‹Õv½¸Dæü.6“dæQÒ]5«§s¥¢–ÖÁxÅ]òIyb☘^•?ƒIkúJh=†÷ït^{ð™þ„ßkJbà>° T Ô~ÚK»Â\êámW£¡®;†0Ì[ st‰#»Û»à^òÌk)¨vªHI]«ƒô.x¸N zÚÁrÀ*ÉM°×Ï‹Òg'ú‡šàöÌ þ<{OG¢(ZÅà·Ü’‰,°Ÿœ?|ÖIÛhSp ~Bm7Ÿ‘`Ű06¾1XgÁrWÀð6G¶÷ "I¤*94™ëúÕHOh*O$Ï^?TóJ¯ö¿Ïc š&©®rÝšm¯ÂCòï´³cçq¨çÏ’»×¹p¤Ç_‘š¨3òwã— Á‡ Dtp®7ÿŽVÛ=á5q”B]OIHF|GõôozEmU49IN¨êÅî߆º/¿ùn¾"ÇzXû[üü#–ôÎòáÎöçæÈÏ ÛýbÑ $ëAÜF[RßÙ~fEt8²7¥¾ˆU‹Áklmˆ¯¬Õ¨‹k5òU’wÖåï¶wvxêäŒ:R–zõŠˆ½ë=+|uºbÏ6öž']ˆïÛ»¾m´÷Èþ‚í„È@þ–šØÖœ”üT%u|¡Šå2%Íò–í_ñ„ãÍ/=ù9Ç~ Lü*£ÄÞïûÙÀã™´@þÜ?/>Ÿ‰gÚiçvʤÐ-d ïÝ/R›ì“™¦#ñuP.+õÚìÔ²ó¹R}rç~§ÉYŠÿOàµãaúߥ$L¾Ì¡ˆV@­ÞV“!–ƒ“+¨„w’í45Û5ãºýÄgÁëí”܉hÀNLŽƒüŸMy/î’nŠ›PÔm`ã‹]GêÄdlÛëæ(Ð æÎ€Ìÿ§XsÜ$kßÇÈS ´“@Æ×ñr¬ë·Ýõ~¶3#ãë^< „þ$§ û‚ùåÜLÁo(¥•¥¦)æ5ù—’Ç™Cd¾Û ó]¹½ïñ} ’ÿ$/„U;ãþ+ö´ý­ÆÊ$ä³òÄÓ‚í©p’ÏùÑß~bdŒëý¶œWlç{Ý¿þú\b¨‡šáŸúo²£òÿ¤ {Öò*þŸ"N0óA«KÓA±­æpÌàƒïð;Ãï.8°¹§À~F!ß4„ÎJiðï7 ‹Ot3^vÀ›ºnqv—äztZ_¡’š”G$"!üâ0ÿÓ/ð†\àKT°±€W{0ÉÍtä? æŸuß—Pù¯D7±–Ýù2”ßÊdþ]Œüã‰êIÔÆÛ°ä3ñƒ%#bFhP#‘Ääoˆ-p?߇í6Rí•§ŽÉ‡Œ[°{jòÙQ>e:¯[‰Þ–àEÁÀ„0Ÿ—n2²= ÖM+à¦!ªn&^”Þ˜U¦…©`s¼ß`­ö¬í5äžÆ±ïÃ?#R އÁ.ÆŸçßs‘ì >\[H6äM¶ó­Á€jê xþêžÍhh"¾²ÔMRµ½µmß´Õ|æ%2ŒÞÖMΩEÄ{³ìšjêš&¦ëá›DÔÇÈ9šš}­Ü&kÝÅž¸.X+ÜÑ…b'Û¥Ó²ò@*ÂéZPõÙî­©|‹#Ñ}¼å¨Ë“ñ—ò•O;Í¿Ëɡω²ÓØß^+jNÕo©ëõýá#M2óÊØ³Ü?ñòÓõ4~`ÏymÉ7àó“\¸IøÉG<ü>qîÓü+@m×TƒÚ.Üù91>Ó]/ZÅ{§òYKyïrHRNÜ?Å¿üɘMu©6”ÊÆÛ] §q*™ÕvêÇÁ±$ûåØÇJ‡ù}ÜÌ—a° }È~[¦Bò*î¬fzj£fT59ù„'òÈM’[B¬sg çòÞ¾|ÂF¸€|/.AHLraYÍ Þï‹qÄ47ÏÝÃ$ºŽ8}жkÕjÌ‘÷õ{Ãvfá #ñŠ+ ÂjÄlp¾öZ¿OŽ·ÕŒ0Àî_ÖI" ?Ùr#´„w á·EÄÍw)èv§!Z*»½%iõ¼©émñÍ}ÓÚ¬4¶K—¨E¶Ïÿ4½ðCFë-]]F[á&<’Wò^P Û·ùÚhI0³3ú¨BN·¡nS©”Wâókñ™>`á tw ˜žX“в£ ÀS²·×5ÓŠ£°]m¿®âQÛ¯Ø>®Ãý¤»ëjºÂ±ß °‚Ô‹•©åê»ù¥‰úNxh˜@'#ÿ]¬? ù÷‘Sñ ãAŽ À)b#Ú9õt9cö1½->«­Éb¶ÀrìUËè0ò8<¢è{âw¬ÃƒŽXÐö¿ŸID G'¯%VGÞüZ Ò›bg@¤²m_\®Ú ýA×z-Ø·Á1¡³üv“È Îëšè0]¤Ýµ¤ièmáY#L€É-™À¦ŒúÒ]X‹¥g¹O}öŸCϳUˆˆdºÊnŽmb´e'þÝ VÌ«¹Ý°ˆº”*`«ë}~™ 0 >p&tω öEÀËâƒiÉ5|¢ì`SÑTEþ÷Øf#Gi« àß2ا›ÅváÓ»¥6Ù<¬½ 8þ™†’3ŒÚy?—©v  •ò†ºù€›su‹Û©pùëy^†õS¾ˆ-kg€Wò¶ènýj*™àRØõ>…??ÄcO¹ÐOݵÐhb¦Ø p¾“hσ»éσx.ºö—žÒK?5£CÙ²ÀÓà…í–yÔõ¾¿Ë϶wÞU7]3*~ÓÛ¢»•ßT7kM¸\Züò V¿LÝÊùî '†'¹ ÐÃݵŽÛH3R~“Vä†ÄÅ1j¢nnÆËlwõÞ²„ºwr :Ž“_¢ÉKð©Í|ÂU²k0nøÆ>h2@ÓU+ùO°à#ê]›¹NîcÃqààdZä8àbd´WÇòót1P â)›Á½ DÈ "ßÎÃ^õ÷£Ç{È~IÞIN-C |]MB3÷% ù¿žøÆÝ0Lv“Øô“3‚üa±LH°à9xì#7Ïm!ÜÏòØ!àâfÐ},yq'òe¡‚I'¹¨cOº3ƒ;‘zÖ·]P7#ùcø°÷mGÐüäÇÔ¯A‚¨ eTØýôûJiê™§ò6Ó ϦUÝ=o@ƒëDïtäYÂmuóK"×DvÖÁ&¤ëÏWx=CÔŒwÓ!W¸ÉöZ²¤y<µû?ìuð|n@R/|YDE¼-÷?¯ôDÀf³£KÅ1*V²{9ïPÝw½À “igÏÙs»[$ uŒÝƒ,˜V-JØ*a’›¼ÅÍ:Yâ¦?åòW¡ød{åØ^;®~çá}î÷Ï+>d¢R•Àº‹@µ½Hl¯ÞÅŽS{•›1™×v®CDl˜Œlgw Û)˜›Ýäk;)Ïêg7>p‰WÙ½ Q´õSªëd­Ûu§¾£Rô{üL&“Ûx¤/¨· LÛŠ¬¶n?@äOuç¼7QB3›ñ‚Kb»ü†ÃSöó*;Û18¼é-Q ß¹{Øäú`ÛNÉv„½o8'œ!'~ÿI¨”×jsOñé?¿/{ON1ÓN é$ûÉqoÇæûö ÿ:—âñÛðô#’Ìõú¡G¨o©éâ¹½¢öšIXÄF7Ùjä Ñó‰ýÀÇûò½Ep0ËÇîÌj’™ñ殤&ĆÙއϽÁó× ç%9ÏPì°™ì]ÀMòË î­— w…;)RÆÔpzÐMy×õG+Où飨.á¯aÁQù·µãr >±÷ù_Vnx@%3ÛÆÁíÞío°ú—`Ù|8ˆy®‚ÿ'ÜñÇË×wØz‡Øî§Qô#Q²Òí”è&©§U{]åµu9ÏîhŒ×½RÏ‹×|þ_+3y "Ä#)˜ewl…ÂöÂiïH»Æ¥º{’Ìôÿ„·äs;§loà×`ßFW÷Ûs 9\oìLšçCÂ}:Sñ– B¬¥«õ2u¯ïõÈËeòšqÆÞ‘ oÏÊÑ&Õ„Øýò?•Txn!*·“øñïÓ«SáïyôH ÄøF–œï®~nÇþ/$¿6×fnG~âã+(PÙuLoÁ»Jß`þÿv¥7UM$sÀäÅRq9ÊØHCáÛvÖAR­MüžÁþÁÀòôx³Ý1cg[%†+u“¡¹+Cöº½/¶³ë0 àÓ"hYUÏ-(ù}Ðûí* d2á¨psÄáÝ5»Ì A."">Zhˆ½oR¿$#‡5Dš’úV’jiìM_È4c÷=‡•ƒï†ñäÅg:R16…ïüªWÔßsMúú¤õ_mí$(óÊøQ¯„‚fFÎ_±a27±ºñü˜¼î<öÊOEdl£ù°Úˆ¬v¿ðyI´Yx_[ô”^ëŽß/Ðý<N zuâõ__5Á€b&²)"•ÕÎ=°÷7UÅ–±‘®¥vá·w°šDZd": €è ½y=¬°× ÞHA´6œWÓúšÚg¹žFö©*ÚLºùèÝ¿ÿ¼Ê…Í`“€è ³ÿÇOˆ¬­‘¢—¦ÐWòD>“ÑSáÿ5t¶^tSJ«½ ð¶;Ï÷Zê }4’Íd úè½I,4•U>ß '§)Î1&1ÏÌ'©‹„ñ±Zy­‰ù76HþfÞM¿*R®rñSP;ÕkîÚÁsi˯üé'êËoa=õ„œúô¿°+5\ ±élÒÁØæ¸;ê8P.50;y×Oìîïm&’¼&-^ G!zh+<£!ø—ëGú úP^›ÞìoXþ&e³y-ÆHå6Víâd†Úp»·5QßO'ó™t)9"2ò7%?H 0oÕä\Ý€ô—t>4-¼ºÏùïY ñ‚Ôf’ùi¯_àƒt¨öÖäóŠäÁHZT_MML7ä‡ lo€ÂÔ8ï5¾g-ÿ.ÔrÒ‚ˆúã­ <™þ&PÖýt—ÞÇwóµFëÁå²i8ñhYD®K¤ÏáxKÈŒÕÁ‚G²Jc{ÆyÎã-E¥ŒOÝëý·¬x®ÿÿF3 N×O?i1OUÏ+¥ÈmuÈñ[ÑB€ž"×å·h¦ƒ›1[N£§Ód„Ǧ¤rý¿eÅ¡2®kf™80¿¯ÒUïë4bá¸>]_iÏ[=ƒÿ÷Ñ‘ºVQ7Ä ÓñÚqòÒ´6ùþôÿ/NdüL=3À“ÖÒ]WèOpm™~%*æèI=¨[´«NB3?e•–«f4¯Îh~õö¡ÿÃVêòp£žfˆ©&!=Û5Ðó”/NEØšˆ(¦iàm` Ie”ŠÆ|ãêÖ?r…Ç¢yMsÁœ‘‘úRO€{MÉë Ž‘…ÒH*R5íM¯ß×ø?³²Q%G6½Ít³YòêD9-×MK…ê?žü4Jl̆={sGßÿüJorà=M1)(·Ì8Â2SBv™µæˆ·íÏõçúsý¹þ\®?×ÿ—•¦›Ù¢ÎùcWyÿµ•Øõµ/»ýljÀkSÝ¥…í–0yø½_ùøû³ßõ¶’S§3åáÿ L “Rî˜ ¦•©ÏÏmLh¹gF˜0ÿ ¦_þ^½«ó¿’˜@×>2Î5cÐASsÖìÅÚ#ÌTÓD¶ÀþóH3é&L5*¿ÒTŠéÿç¼þ㪀ÏÝ%ÍSY&H©/Y¤>Þ‚:àªÑé²Z¢iY'{¥¯ì1Mcü »ÏŸíÿÏV6$©”™©þ‡šIéGé/%¼ô2;LÙ qµ²ærÓ@OÊy*÷$HË[*$Ûã1Õ J!Ådj¼&©Ü”¦šBjm¬5õÜæù-rJ k£Ç5½~•ð:GÓê+)ÅW=^ØëiÔY€EÈkÓAúZLJ ]†ŒÉ5ºöÓZAK#“Ìíc/«Ù´€ÆÐšUÇë.í¢yí0õ¨ŠXàïmAþ®åg û M9$é‘)©†ÔJECkmƒÄ¥´µÄÔŽšY3h8d¯è&`æÑn6ê"Ý¢u¿æ‘|îŠZAo‹ó7.²]ÓÕ\5“%´Æ×¹úLI#M­¢w%;~pNûj´Y£ºnðy]_¿ˆSë5í¯Ýt”†ð¤ót’žðƒ ??JJöÊæ­2ÈmßÅîî²ýßsjF,œ@wJHý$=À¼ð<— ëGí=àÏä¥Dw³À'ñVžsº@F‚%á¾²ã÷¯-?@^/c®»“ûÄ âãk ä ‰um/ìs’H¿I­­o¥21‘“ÈEÈ¡@Š¢ZU¯ho­…𚦠Â+½*ËÁ’Bà¡7»½üWV&8nb²÷ÓKº»žµ 4˜&Fú¼nGHh|á¹$Å2èc™.Õ5‰¶Äó§h]^“†lØDÇ!s4–N7ð\2Ý©¯ÑÕ"ª†©jÊz[Ä¿²ì¼ŸÔàU8"—d†NÔµxþKÉ #ðö¯òX"ù¶×El·ßeÌïFèdÝ®+5HÉ-A¿dû[3ì_Ç]=þ¡Ó5·$6E½Úïé?[)ÈøL?s”8Þ#±bU²ÛÉAL—×wð›ØÄ€Ýgw8õÐÓ a'­E Ø.8µ4ž&Äöñ®ÔøIL7 Âîú^Ž®ipÏ™åûJ›Ê ÞóBŽ#Ëo¢øL,úI¢Û¶ëÿ}"¿¼»C.h‘pJ2HÞ^øÈ©3µ¸†!þchv^ÓBÁÎà7u³‘Žfˆ·ý‹ËÞRÕŒ÷ŽÊJi+e2RVÛÅî¸BÏZn‹T¹‘«#2×#Þ߃~<“}”v;ÀKèp002y"¨©vÕùº^{¡‡™DÓAñ“ÎÞõ/®È¿Ùä’ZR[~“Š ün2x}ìø^žÉElX¾I (?^QQc!l ‚»—7òWB´0°œ¡ï.­+t*ÑRÍu è©¶cêAÓÜÛÂþ‡åO}›ÉÄ °òHV;–&z‹jAþ3x+G©{"÷ ‰íâ|†…“ ‰àARøAzrÂ)@=`YRJ¡  »›ŽÑFÔFÛƒ„G¤ƒ”ó;ÿíŠO¥RÂ,;ÉéƒÄ'æs"WF¤/‡·ÇómÞ $Ç× ºÞ?ÁÀF{WexÐ;)I¬¤ÕÃb'DƲ ó>ÌÃv<²÷†ÖѶÄÂ"ã+ÿ—/í 3IerK<,žïÍ@¦çöý…BÞRÔ¼7e«”ÐMùŒF^Hp7ã3Q`ïöK'ä$ 4‚÷Çzéq‰ü‡È)}„ `ý@cküh`Ýmª½h:M>H4,½KŽàõï主£ÓîñßèzC¼–(ÏŠÄ£ÎËÚ'âõo`JßøËGÞ=Ú;J€þ°zMÁc¤ë¸}j<Ÿ8C𒨝hÒ8¿îŒ¯>Ïpº2 tB}‚̶èÙ+w|#ùqãÙËîÈæd†Òä/‚>És÷ê¼ò®ür„À£r‘ÿã!öî)Û[/‹c‹9ôˆ&“–Þ Ä¥2?gb©í@Ž×v¸Iæ§å8£sÔ7ˆ‚T¯ð€•²”šo‘ØnÑï@?‹û!±ó+4f{Å#ž‹ítF>Iž³wz§vUó!¼ÈÞYÕ†ê¨üâ$hÙÎÛâƒÂ1L]Ó]’s„GÄîn€”ÉôUÉ…¹áü±åRþv— xéç¸9–žÇÓ#¸é—×À‰ûrt8ƒBÝ÷È߈¥ï ÂW01,Œ(>>RYÇhsX@k½bz*f,“ÈÔ73%…n“ù2ÇBYFÜŸÝl§V;÷ê89äzœqwÆÎwB»žŽáøžE¿`Ùèg—ëû†Šá~cgaÙsCÉá™ðøJð©Êð‡M²ª Œ§žz»û‘ÁúùM[³V~"÷jŽÿ 5þ]yŠ-ãõ¶‹Å!¤^÷?Æ_"ai›ÖJñ‰ÄЮÒ_J;ÇÄöÏ?·< ¾çó.Ht5<üÀªn"dp²´•´nÂ^K-“ÀËòÇ6ÙLY3ÑÝ»Zí öw<½îú7mñ÷áÑ+ÈŸ¨ýí]O?\/Ø^2SF#åC³Ê„ÕI²^–ðu‘WÂë_¡Ã/d€g „f÷ŽO!}i´Q ¨¯WM!üÏ»+><|±ù¢Û‰m!°U7ÓöŽëàûÞ%;ñÿír[r“µfë\þ¶H†ðÜPž‹!Í3‹öà3o%F’üEì;+3{—t½r[ë"] êN$¬—DVlÿEï®D¦Œi#þøuJŽ7Ñ6‘,𠕸ØÒv†\Cä‡Ð0˜亞2KæÊ`±óâJò{ü<˜Ñëy.§y¼!^‚Áê’õSÃbcùߨ€;Sás¢iQ¹ìu`àýqà÷±]ÍþnsM,~MÃÆse"Ñÿ¿¶wô¿‘QÚÛÿX%3dÐKºð}°LÅKêëF=Œ‡?vlÁÎMÊC5ñ‹Þ /ÜC—EàÖ!@¾nÆÖI$©$„IêEéSÁýê›9Ô.§År¶`î·h~Úu®.¬$;‘|ÙÝù~‘ ©>ùk .±Î1§SdŒëqUZ·é(ü{¡›¤ôù+èdprœ —–ÒZjÉoü™ÿÇÎPkL¥h{+U¼·2?sÐ\¹`£DË¦Õ X8*™ë 7ç‰ë= à,b¤Ù»'±<=-Ççm§ÇÉü›RÇ‚r£t±zûGÐCHrѬÀ/l«¹d·êDqS|¼.¨W€ ÁúÔwÕÐÚX²ÚjˆóÈûL²À †RGå¡,Oæ/ëfÀœejƒ¡KÀ”è2Ü«Sàââ}ÅðÔÒ@ K&}!Üôž¹ ¿Án™´8ÿß?€‡ÌƒØ~—]øjÈ÷”jÏ~V¥¶ëMÜûoÅ{>R'FÖ2 Dˆª¶ÿoÜø#Ö÷Ó€±åÐà$~>.âÍ€©L13Œ? Ž…R#yt<ÿðšø /¬ 'J£–ïáë´”Õzؾ—þÊ£ ïh¤}ñˆ¾ÔxݰöfõÀ™×‹ê8ôU&‘™ 8—ë亀‡æg"€ñä“WïÉ úm‹Ee€«×lØGÄú¼â¾$%/,à»â ³¨ýúó|YÍüí¾&rG‡ËŒÆóûcû¾øuHwÖ`Ÿð.å‡Üö{X˜t×%;•es]É;[ƒ†›d¶Wσ¥‚ý¶§b;$AHz’Ÿ^rô¶R{!–Ãí“NX2œ®vÝŸ¦ðuLr¸‰ï-´%þÒ ®T¨o?7 /Óµ’Xã%ÿê¼$dÀ°S>ðY!Ü5¡ÄxΩLlLñêýÐYá_i8ÖoÒiïñ¸rß&zm7›DÚTº‹íÛe» –~ŽÇÁþÞžÝï«vªÍHì?Tk€ý']ï“®TBá'ùܧ®‹Zxª¤¯’éíµ¢òpÂbz^Z÷Mu/N®eüÍQ“ÿž)9‘ù5GÜM¬¹)ÖZ#@-Ûíhl¿›ŒâûD~³Ó>[ï±zmŸíì&Cå×LÒ´ØF~³]ð¸¾êyÕV„àïÄNǵqõ.™,¥¤9 Ô[k’IgZ“ßI~M§›Áø[;êî ¿}Ç–÷@²ÙXø?d Ïkkb÷ @A¼¹#XÐO§“AN™±ä’;°EÛ.Œ^…?' Î‡¾À'Bþ‡hø‡Øiáä­iá5ùgãÿÛÌ ²| 2ÿ'Ét'8öåüû–£~$G@ƒUp¼‰ð¸e À¸R*˜vX½#\³ž×/äû "è"ŸLïËU±çÇ×ñìfÐæ¸ÿ)1<òWñžõíü‹ì&€Jw.}¥3Œ| q>–jæ!ÖŠ "\@+cá¸3ÐB<àŒ›wUõÿ°wàV^Iº^U‡wwwwww‡$A‚…'@€àw îppàîNЂݷV¦ï™›™îžî{÷¦Ö~Îále—}õÕÿ¯¿Š\׌Üß’,0^‡RÕ–ˬOÖT`!’®ò3$îãA—Áë‰d’GòÌúˆ×sš‹„ÿnuuµ\?xÎe„­þèyºïx\‘çøìI°lõÝPb¸~X¿·îM¸òs0Fͻ𖟩çãý3ýë—ü3ˆy}ÎB//$-ìç=½ë"9 ý]ßÊ?ìIK÷Å‚ã³As}Ç×-üX_;›}ö ^a~BAïÇO'Àzèà@>Ð=7;÷Ž£±y¼g%Ÿ±’(_Ë¿ËüÏn±©W)ÔΤ£rCeKgH—JïÜ0×ÎUq¿"÷ÿ<,~ÝFüEu:[ÎÀfúÉžóùw>kÇtFJ|¤oI ´ÂJÁÀ뺒Ñ/vþâsvá+ ˆ™àþjp`?·øDI|¤<ñL³µ|Pù{¹ž®¸+ ö»’¡!áJü˜ôÀ ì|O_ß;Ÿ~½Çóƒ’A"Sùd¦Ö©å§º?†Ù=!¾/¡¹È» ë[ïïYøþ~‰ä¬\ã})àÌÓt7ô‰,%»ÆÁ€¿vW°['<2ßn3–E´ó“^¿n¾¯çx¤í§·ü.ÍȈ|GÓª0ßÒpùêdÀ–jçîà3³a kÀx;.öŸ6 °O. qÁÓÇX>ò' i*¾pª«ãú»8dÿ£èÀòÕ(l~ô›å?Á—?C–XŠtÀ·ƒiÝä27ÃöPõ—CŸcÍÆhä(^‚Íç{þ³ ßï‡-#®lzR°/¿Zïÿ讑~æ;ýâÕ[FjöóàÕ<¬vJ’Áýïâ­g‰t뀾Ìó¡ R‘ q_ˆOÞê‰Ì½É5@ÿ©ªƒU‰ì3Tý#ˆûýDýNt6ËÏÕ¼(AˆÛè夤áuv>ä˜pI-<«‹+ëŽQãã¿ç'ŸE׃Dúû`õA$ù)£ƒÒ„&*Âwl?O|¾^ÐÁi„FšÀœÛá1‹Ùz¡-BŸ?í.‹QÏ ï]É'<’‚Ô·¥BPìHl‚‹]›"ûyÝQù7)kxxÊñ©ÿ“jz2D9ô4RÇê'ü?‰ƒb?|wÀ3—‹¿§Ö±zšŸû½ÇÏðÚˆl}ˆyDò |`&øe¬÷óšîDrOÐñ)c>?ÌwŽ¿†Ç/–b}cÐ{ý é|j³¥ŸSõf׌p…ìZ‰Ê7O E÷«¶Ëâ–º‚ú‹ÅñÓ®/ãÑç@ÿ`-’B²ÅX6^ðr‚gÅúþÏÁÆ#ðƒ ½iÉ&ÿ-ówÿ§ø”½hl3ø¸Žd'¬Ãl¸rpì„/é²¹\®üÕ§O0Tls‡Jý*?‰ïQăM€^Ž|ãÈçŸÃoûÃm–ú /åð™õ ãt3«ÛkW÷?"ù>ßz/¹õ*ža3…‹uŒF ÐBjZt¿lxI[w`•§dÀ¤d©ØüõëDÚqD(ñl3 '"÷fb¦Ø$ÔLÚW²IrÆzä·ÙK¦ÜCæß‚ƒ ÛàKg%+øXÏ¿ŽV¬sn:ªÆ7<î÷Wl×ѽ‘Ëä¾jø@Zß­öL5rŽ$÷MŲ6÷pª?¼™ßvc1þ\?“#Cwúã"CylƒØ>ãülæv ýFÓÆ—üËŽåc„3€¡A1ýÅVVWÁ…Ƚ/Mü$#Û¿p ëÍÄ»{"—Í=³IxÓñ…åDøVX’í{±næk%&U¼ÅÂjdµ£;›üH;_hG€÷±Ñ«õQ­JæH¢Eµ ºÈ¦ÁÓ+ŸKá ¸ôZ‘Ú<±¾Äëú)C‘¾7>°/ÞŽ4ãy,éßø‰6YÀ±ìè,•ÞCê[àF}ƒÜvì×úá_F ·<†F¥î©HÞ¨}ô+¦¶Ãò©Ïõp‰]r—ßµ•O±d¬oYk:™m8H7Ò×/ûÀµ­x÷0Ðõ‡­öÓ?ðý#Q£­&â¯Pó¤R;K¾ÍOt<S|-ˆ•dÄT°Æ[b{Zr ÝM?%þ0y4½f‚O8µ#_7ð™ª0ŒÅÚI×P+5qûù¯l¾«Ç g}&ø‚ˆÿûžÉ^Kfòw¿¯e%?{å®$¡~ÉI¤„òìc4TÅ[ÿ"±ùÏ£¡ úžŸóâÔŽ¤?’|ú…®ÐEz_ßû‚¯lEWØ­r½§4ß9,`%b“Sh~?bžq˜ø>ªý öÙ5~Yü|[›~°ÙÏ·3)©´þQƒš8¿ßEohÎm¯nâêZØ?Y¹l:öŸ/ñüÜ‚xXt~S¢ke;²f%ºw€„ßcÏsèÁæå'·ÛŽÿk`Ãç=·!Û%¾6FúBÚZ‹óixoR°¯‡®Ô ðþàìð©+âæ»Ñ xyøYl<ü}*·—Ø2+¶%ÉЂMx´½aÁ»DZG[ ¿e€Ãž®Å{©†KkO¼¨ •ns>­*‘ðE›5©z›ZÔ?]õ]Oòà7®¯ØÅ–Xï™4"dÆr"c*4ré“úDDêúTÈXŸç^bó¥žõœ£î;ˆôɵ®ßQ¾3_?ó6k”–ºÍÕ â+ ã™™\g7^ÊêgZûU‚¯¶ fëƒfYÕö$>ªùñV×áï¸jG:–’v‹íýz"õÀúÎpÞÙú©×ÚKëe2I»Z.güþÚ*å2ƒ#ÁAU·Nãw<¿:÷m>Ú!¼ŒvGö°ðžjd†÷È¿úiÇ–;w‘ë[¢Û÷<”˜ï©ót‰®GË¥¿kä0Šã\Y÷«[H+…äÕðõ  W!}H–‹'ˆ…TõtøVUëq`¾¶?~ƒŸyw˜j·.UdyxÞ,b¾ þ³D¿Õî2,›%ÐþÕõ1ß1µÛìFJ!ßÕ! (W4|%Í´­gy÷¥¡–ôׯwÖnà{]ž½íw¼”L<›”:ç#´3V¿DSµ•þj{Ÿ]ö 8Þý×Wøp{Q.’źë`$X„Œtœ?†_‰Ú­œŸbõä¿ZY]#ØJ2X@U=¨7ô¢Ö-ÚÇ#§Ð¥TuéñŠñz‰Ú±9~ ¼·/YÏæ‚ý–— ^0œçøŸ-ëü–Ìq)e¬h•¾ÁÛÛÀélÄ0Ý¥`ctöÏGF8©k‰õzð„‹ò»« +zì*½EþleséÉŠ)\_wØ…·k?õ±>×H½È’7$^ÈDt1ëß!ÏÙùÝ1²ÍýàvÚQµ@ýÊJèê!IiÛMv?HmR/d.Z8H¼£×©j¾GòÞú Zˆ­‹äC<¾4ÕÄ¿ÖÊé;Xõv3]xÍrFÛO7Êy¦aB*ÃÊçDÃé ‡Læýë­\p£\E7Ƚ ÇùSÊQhWùDÊI7YOU%h®ìÿç¯.¥ŸtÒE“êª;‘u´ûÉÅkî¸û,ëü¿XÉ\'WÁ-rOaI©]U7ÄMtƒý¥Þ­wëÝz·Þ­wëÝúÿ¶ŠÁ†ÞÞúö[ù¨‹ò¹ÂÈ_Ö×;E©—ÿuW&ÃÅ£LÞïÖ¹…®Õpy\#Ø`sW æ_œG´§Áÿ›U;§„ý'¦Jâ ÂxO¸áT„]ÜHwJ?¦¨„º¯]]Wž×¦ECÿ:+ ž]’š6¯ëè¶»Sn®ëëªñSÞ%u\"yáÊo²[ÚI5y鯻êxAr—Æe ho‡Îʄٱzi—Û}éæKýQÃhiù_¯‚õ³êé¨=µ¶>•£rK~‘oäÐ 3QQ½½Ý~POŽƒå äSýN èR-¯­t²ìví]&9¢yu‘ŽÐñjï2êD]©'eºœu ÑAU G …øV> +¯rMd—Ñ):M+kB­¡mµ^–VîšÔ i¡µ¦Ð8šJ j;= ÉB„ŒÓ»’MŠºêoñ,”tÄwf7Ú-”H>OÏŠu=-£ñ5­–ÖêMžÈ¯ú•VÑtZ_k Íó_j˜óº‘ß!!ªýÀŒ,oáQÐZÄ{&ü¿ûXòúi½´2VÔ¦úF"hþ½ Ñ´+þN›ù³å55šøL§ê!ý‚×nЊ!%ô[| :x;Îýý±ò¹\0™–d¸Ò ¿®á{[/› Z\÷‰õ ¨¢õ¼^^J6]¨Yµ¨ÓWb½!†h¨¶×ZÚE§kÜ z|ð Qð¶p£Ìdø,nƒ« š·Õ¡šÒ÷BþLãaù°šL/Émy&´^PCóiwí¡³´›–ÔRÉGƒ†ÕzH.ðýþ’é3°2þÔ Ð¢ý +=¶ÏçÚ¸W®ºÎÑþ:Ü{õÇĵuDº%űìoþ:îæú\ê#e{]«÷õ*|\¡cµµ~dÓ`Bt‘A§È ׿XÏg÷ï¿,›_•ÙUrÀ¼Óxpý©’"CwâàºX‡ÜŒD|\M 6ÇÞ#u2ï>Ö&*òï2"#Þ’Žw&BmÈ­t“Ôq½Afñ¿Yý¬–„®­|@®ÿ kZ——Ⱦw[$?+‰üÙmÛ‚Ýíº¯“䆞ø~>²Bͤct‘_càå@»6~¼à>Äšñ\ät®Œq<÷¾ÄÕ Ä{m¿s-¾>X´ŒÆÖsœ¯¡Ñù© ,†Ì]È4;ÚIa=myß<¿“>²^3C÷évÝ«¯ô1QšºþôOWf¸j!7ÂÅ“Ž2YR"G¬W)~•ߥ¼çšœ–èàÿ'H]‡ü6_¸-MðZD{&4à4¢ö†!VÃ÷ÓòÊfxþ(]Ã#kuß)²K6¹Àwýü³UÚŸ§¿I¾Ÿ)Ëe»\”SRIª ÙC ¯ïëE¹$ ñ‰aZ OÏ@dÛu¼µ¡vÄÿíêæ—ä‡®ðáš„Èo.|£óá `ƒ¸¿©$¹-꟬ôT+ÅÝP·E‰`ñÈøHVÁtrc×XzŒL~%2*ÀrÙ>7ÑÐÙ{‚@¼ðäʶàaQ¿st0Ѓh¤88R þÊ+ŸÈ*0&Øfd§‡ëÅs|>+®ïiX0®´ªÎ•÷‰€7è䬜'Ò"GFéç[„’òzÛšVïËxQQ¢Æð1¯›L™‡¤DOYÁÂäÒ%ZVsƒà—Á³’Rç¤s¥£¿²»1…%×GĪÙa¹Eö¾—ƒÏþ€ì÷ Ìß:<—EÎÑS.¬A®À—Êô5ˆù¡^÷?Fö‡dͦ:mÍ úè2éÈh¡ÿ÷Ê袒õºÚžû1ßµñ{“ø.åÑCNìk}¶KL¤³9»d3?—`¾Ñ@ƒ6 d^wVÎI Ð"2‘HûÁÿ?%¬Ï‰õ½Ý-—¥¿ßOWAÏ»ÂÔÕîýú—•ŠŒŸÍM”~§~I<7"h_PèõsJ¬G&îAº;DÃO2Kæ û+q~âSa0 91¯¾Éó™È áGUà§›\ {þee‹Ê¸ïAìèÚ ›%æ»^'ÏEAùAþ£ÈsZ¶þÖñÞ:Ûí”daÓ°^Ij$L®E6ñb3ÂnP?Ä—£×ü{—¨ùd,ƒØnÑÙ:ªêgb¬s …wÎÕ¿û]ÊûéÈÏaù 8:5Þ5PïW¼ þëÛ.÷…²=ìæ'*yâïûIîK},vÝð ~Ÿá¾jXßMäµX¬Èxþ‡¾¯pdÏž €o$jÁ¤.ë#!z”{#¶—+ ÙþQ¸?4wd5’[?ƒPY/+©¡§'xµeƼøýK²Û1tt=(\àŒÁ²›±þ^<{!µá ¤!}A¯xîCI.éÔ:ÇþGyÍbá5YòÜ! Ù$ž?P,Pæ—_«’c“-íʱ®f€åO?ƒü'¤«vï–Q¿¥ §%Vë]­Ÿu.=‚Ô'±g6Pn’Ì“‘ÔÈ_"qy) ’-2—×üŒ—ìGgÑáS05Ÿ” LÍìg!¥#KäPë…ÑY'áÓu5¾Ø•‡ì÷Œ¾a^¬cýš“ú)8Ñ©øvcÁÈj½ Îãç«©îR…×2ŸH‰œ5¤1~? F¸\Ö‰ÍA1l!žKFäîÿ)ƒÏòÇÃ[S=Õ†+¥Ö´£Fi.-a_[ñ©B¿pÔ°ú \ÿ}8¼ƒÁYï— |ç‹Dy|} ¬Ç÷³Ã[¦êâ{¥ï2 ÿïƒf†ËYŒo ×x÷V<á8&ä·Þð%u(Þo½DÃëIêÂ6èa$ؘ+ 3âӸ쮛;Â;ò_$ΦíÈÓÆj2èä°ûd†«Äób{‰$#F>UÛùFÇÊ*#ÓÑA/*¢`þä Ú[É»ðò¨Η°>™ßÉ·Ü:éx2FA^7FëôhX*äãÎ!¡]Ë]™£i|>?!?àñ5‚ïŠs•˜IÎkIïMoz/ó=ü磅EðåAÜ>ëG©ñ¿ßᆻÑI%üʦťÕ\TÎeÈ™ÀôxÖiŽ èÞ¡8®´+‰¥~Dzi=‚Þ#oýˆ¯¯Çºñ|·š8°»°›S2g¬Ûks<àK0ì*¯ÚŽüëÞìþY.”¿~óÓ¡bªõ@xBEœˆß/$.ÈW«à»&6Õõò›'Ý(½u>)åæá÷™õ ùÍŽëÄ„Ï8ý[C&´# ¿€Ž6×p™„Dm´2Uügpù¶ž×†àÝ}x¤ƒŽ%.ö"ÝQb%TÂjnر ¿dÓ¨TÖv¶0ƒVÄ ÊÂ~¿ÒËh f@Ï §ÿg’³Oøîl)°X\–ï6ßÿ(UËcäÿ•¬f4 ;Ïô×uÛüƒ® øPí¯ÈãCÀõ¯Á…‘ ß÷ å"ßAç>Z³¾¢Ñý\Á$0Œd¼¯ QÖûÛ, uZûòºÀ,ð¯Îp»Ò/·.Ý/üu¬{|—ì#Š¥ «Çñòù¾î±ëú?¢âïõÛíMü5°ƒ°æ41’w¤ø `Ýß6Á˜cSQØlÌd„ØÄ~" ^Ô€xH«\ÙÊ_ô9åö“ýšµ·¢‹Uøúmm…ï\ë]§æ›íû@m‡Û¤ÅÚ­ýÌ‹ÆH^G[!·aߢ ?˜¾ þàûŸýBÅoýÿ`ûjÒ±©šåàÁSЊabnéÀn½±ÿ%÷3ü&.9>Š?Ã{—ï=6sÌÿ<`Á9±Ùp_SûÌÁ¶o¤%Љ<ÙŒ˜oJ¼÷F=@ÄVºÃw}ÚŒôû°¼/~ úGÖsèô ^Ë÷¿©¬¥á¾/¥$Ÿ3\ú¹ÀõIüovGÀ¾|dþ„ÈON–O‘ôüæ¨Ø͇øñr$ŸJ®›ˆW‡ñ×>—C«h» >#ƒh }ýÇp¦­xÌy´ú;>t M šNÃ$žˆIzˆŽ­ºÈªÕu|À>h_¹¼n‹Û‚Tª)Áè+°÷qðºÓ¾Ê_Íïõ~Þ&¼ç;ª€ÈäôbZ‚:ÆfZwñÓpZ‚]Ñ„M² ¹íG —ˆ,ë uÄÏÖÛÊÿc¸ºž8cä£&XÐià%\¤¶ —ûA½í~Ƨå9›õ0Ïw1=LD›<“‘a?©÷:Áꡃä‚Dþ§H?ö·E:øúsø¤epÆc …;ïÝãûÏÅìL€è5öSÉ((I÷™+Nο ¾Ýó+ûÎßc|·ûm0€»Øî[rßXžÛÈ«Î!jЯÖ®´ÀëÃûlþÅ ßr Þ>Ÿ™ÅÏt.Ÿc“c­sÜVt²û‡ƒ ü,VG wƒ(k÷µ«Dv¬>J%3DòýÉx¼%ß&ßlåÞ\é‰l÷ÐVVämDÞû-ÔѰ¾Ï‰„ú#ï}(Ÿk±¾Mô)ßG«ð¥ÝäNë’ÿ´I§Öa*£Îp¼Ý7ŽÆJ{Aãg|ó¾²]€$6Õm·¯ñ‰õ|ÿÅH?–ˆ¾Ìß»RÁöBîüÕÚkd(þ¿I>Âûwóê pȾoªuij~xñ¨ÿ3ÂCÀÎ4°­7h´T@å¯çú¹\n$uJ(<'&lç.N ÿ7Ô'ݤ#Üx¿iežïxÖçƒö~ÏW$o |ŽÌïvÔ6GåK2Åf4°ÏwK›OΘ†ýûy(Y´ (Œx“ä5ïø @Q7ÜåvqñéTxá©S.À„¯!é4êúÏ¥“t•þDò ßíu$Ù|«Ïu6<¶µïü]†ÐÞ÷¿oŽ.ê Ç™¼ÎŽ-ƒ­G'Ê?9ý"Œ ¬Ÿÿ•JOñI›È"óÞ i:èí¬Î½%ÖÍú¦D£JŸ„¼C@Âø~g LÆžƒñëô”+6÷ZÃxz.Ûï¯l3½tz›J\@6`>ùã úMD]q ˜þS_Çé*-rÆõ °ôÎm²º©RNÏ‚Ê °Þ׳ñÝ“|ï™àÞXlõ2­ÙÖÂmÒJ^Ý–Œß ¯¯†­~1l_“ǦKq¤Ÿ‚Ô–G‘í¬ÿ«M”Ê ±¨­O^Js¾.Õ®ý÷—ÕÂ%uS¤èWlÞ‡ôûàn6çÃ΄Fšå`Ø\n£ð€ÜrÌ…ÀxÛ‘€S©ß('²)ïCõ dFúåäûèp#x×äÃæé5™£ xÙ@#žI¥ ØßÉUt ¤ZtµŸ7a½IðÓ§d…» Í¾ØFlö¬à;÷ çºbïÂHt™,¡Ô¥°~m""ž¶ðßz`nB{ à?—¤òf¤Þ)€íkQ÷ö5Æ()ƒbg|/»†‹ªÌQ݀ݼ¤NÏdÈ׈ãmH¸´ÁOƒˆnWæ–_ÃQÕX~H³¦”ÛvÂÂSyõyòÝV¼ÿßbà Ñtèq衪–ÕIÒÍUtÁ°ì#*ð'ÎfÆÒ÷5>1jûØÎ`¿0¸Ã²4œ òM÷p–HAµŠ.”¿‡ÃÆ€óüt¬T;v¾ÜúÆÿ1ïl=þ“\óRó½¯Ûà×—Ð×k0ð‰Ô¤†L¬íƒbGxjÀ.Ü$?ù55ÞlLu¹¯¾#öÇ"ÿBßÿúr O˜Kn°s@#yî!¨Ð‹1ž ¹Ƴ—|wé/ËE^ ®—G‹ú>j6-è9\cª®Ö‘º†ø†ë&;€Bá€1±ý¾ñ&/ÅþÝs›ƒÝbkëý>(XígÁö“±yw4p†{#ÐθÞ.ôµ÷ÚYÃóüàS¶àa5)2›~«s|©F 9¥%GþÿÏ*áò¹*î¹ØQ:›mt þwÝïï¹å9Ü|dZé}1’÷³!læñ$°}ÿ6Çâ?Â÷Œ!ÿ€ß¬A{Ûý9Ó‹¾wî ó ØyÅç’M+À¾sI°ôOổTãQ5—Úl¯ˆ¾Ï¡ÉGed5{(²¦Xä6 uzƒ?ÄÚù‰©¡~nÄJðÒ˜ï÷ž_@¶_ê(r,LD~=‰fkÀsèΠ鄘ÖÕwd„ZêÇ ij›…y[läH}.3VdÝŸ×ý¸mä±ðzy^"ë,b` ¯ÙæÏÛŸƒ¾öyâã*Ÿ”I³h ^¾PC‡ð¸×\y‰‰î(Hý‘ZvS=åc«C~Žç|} Ò/Ʋkøw·Ÿ›T#aÅüdõð`Ù|tsÔóÝuèÀº¥Äú{ðóRªçÞOmÒf^P6x:@gq…])WšªÌæRÙ•¬ëázÃ=¦öǽ÷óØ þZïyàC,¾B"'ýYÓ>ÿ[OÜëèÉfåî$Nú)àçAÛ7Xͮԅj=%³!ýJ žý¿Ñ]J—Ó‘æz˜ì´×Ïï ²ãf’Õæú xKˆî‘üžåçÞ#“_À¯­OrX¿ &Ò¿ôŒhQ²—˜±®ñ6U+ Œ¶t"ïm€#V×2ZAÚZìÿ½âºŒ0±î ˜JL¢ó¸Ïù#‰æùH¾™–“ó—øiH¦‡ÃòB¢àù‰áÈáˆè°Ú—~ŸWtØÏ ,n³/O‚œW±üE¼ãŠ?›zTbP+×ÑúX§9Á³ÒR¥pßÊ·äéWDûy,8 Œ'ÚmßÃA,ù¯kàÛ«ä…ÄÑšLw¡‰¢Ø> hžw mAú½àÀ^<å”<%ÿÛ¡¬~E"jÁ5ÖE3 sïÿóJê’¸ºn¬«Nuò’oüTÎaçiD²Í¾8MMô ÒØÎǹükò?÷sÒãaùð:¬;âw¾…3ñïý̼khò†ï ZÖ_ši,uó=­ç\àw¾ýǕև§©Í?ø™è^ì=ÿ´ŸÚ™PO{‹nÏw£“7äÉtÈŸÄ<ŠÌÖ:¡?¯¿ëoñSƒÃó²ùÉé—Ä}Gí£ÝôG].\pÌ~ú?«ö/ì Áè¨xA½†Uwá Y¨Øò½Vby;+ºù‚'…A¶ÒAïëm)@ÞLƒ>lÐv¢Å®J©åý¾4ZËoÒúOÁ+*Ã8ƒ¯CF!WÒ¡•~¦…ùMŠ=–$ÚFë„vø³;ýLܵøu|ý‰š®¿†1¼DÏ||›û‹LZ‚LWŸ°Ý^Õá;=ÑÁݦ¯ù_’ZØ?] ýuÏçÜK©K¾—&ºmv‡í\Lª·°íÏŠƒ©d §öð€𛊳Ñï «•ð|;"bñFqŽüj/½….¾r5-è¹J]]qù„®E4[­o»‚ܹ±å~Ïê¶‘÷cãݧ+¡Åa͉@ÿ«ò³N÷ÿýu¸”cZZÌÿf•‡ ÖvÝ"ɃEí\ß{ÈoS{ŠÃZ¯ú³—;`:ÝðäHjSóÒj3uþ:Ÿ  ¾ÍÅ8K¶ÌN]PQCõ3´3‡¿–è'ºCû=ãó×WI—ÀUrwÝ:2zNòvEb¹  4Ö¼â§Ù…Ï4%º£h'¢=…ÿ§ á¿c|¿òN»’ð˜Žó…$¹ jnÄóƒáˆç¿Ê¸Th`°ûÙm•fù"€eÅ´ ˆOü›-¬-xd“,Àæ[fW›Ž +zŠv®àÿ6{ Ž&ïÕƒ:^xÏUŠãÝ}U@Ýe<ωõ+cÉšÔ,UA„ˆjgísÁe:!yâ}4>^†,±Nl»|•<Nü¶ŸDÆ« ‚®’ÜRly[Vf—&Y~wedºïo‡x.2á6Á}xK‡‚7È€íÀ†×hÅÎÇ…9$BSÝÈxsð€Hº[JW.ÐBý]+ u‰{äú¹šò#2VCšd²N¾H¸LdìzѸ ~nÓ¿ãª]ûÛ­Dƒ+Ô告𞕠ÂÇ2…Ȇk½þÞ5ÕMrÃd¬nÕŸÈß§ÑÀdï¯õžïÿʪ'e‰Îƒåô&æå±ÉøHØÎþjϘUêȺ·¶xTü {ízûkŸbÍÝü.×°ú•žôýAúèFêÙdù„Tö“õ{$ÿ¦7^7h9ê²Ê*«·w¥s6©.­ëáfºŸ\+,=4/‹•/é\8Òa=·™ Ú—AGu­¿Êaú¹![Ü7 HðçûŸ®ðÚTˆÝWBöhëÌ!ƒõ¤Ý¬iC`ópÜßÇyN,¤×ߤ¿ÜqC©%‚éÇ?ºÒűð„!’[ˆt £røD&ëR=F €|¤ äg×À…{˧>üù*᲻䮴Ë)ƒõ1ܘ“¹ ó=! ´„ä”—øJÄÛÁtþþe󡺻(n«[!ÏÜ-ÍÝùÁqŸÊh÷1µmÙ·íÿÖ•ŽÜÞÕtù©ƒšú~F]+7ÆUs ýÕþ?­„à@*÷­[L~H‹Ü¹àËo焟wëÝz·Þ­wëÝz·Þ­¿wåt‰\&j£äþ"ÿŸV\¿[ìi»¹¢.=ÕNNWŒj¯²ï˜œ8ÈæÚÿóVuXnêŸì.¬·•ÛáÚ¹ÌÈ]Æ5ä¯ÚÜòRùdFiƒðìî?¶Js+Çχ}ëcm›‹9ÀÕ¥¨ïöº 2Y>“¤r=äBC)ñ<øÉ¿ÂÊF­“šº?'UN7Ç –M²\ιÆx{sü?‘䓺TßÈSùQjÈ^ªã h˺ÿg":’Z€pe÷‚²ø‰í"#õ#­­õõÌrm¨€‡¹è:FŽéM£ õC]®ut§üäN¸/‰‘¬è'oÐuúü{Vn|9««êÖ¸\ò…Ø™ ÚYkj}!‘¤›»åÚh^ýÇZizm¡ u‰¾;dˆ>”V²ÌÅv\-âäí\å\°¬(R^‘ßdšÆ×†ÚÛÏ8®¯4—qU$NHíŽÕ{ãU4~®kõ"zŒOT×’’Oè×ùü½«1\ëŸq)‘µ¼¶ÓšÃ_óŸ_+jtí¯_Xo8d®¤]‘¿ ògÅÆñcWŽÖeºOKY v¼]GCKáùÉùÎ…]Rɭô´~gÕ;’H³éMy! °n=M¬¹5ϼ¯{¥†fиDÆz}„¾úk_Þ÷¹×yRX’“Z¨¿yÕõ“Áér»0RI÷ûóY½tšZ/ØûYShT½^:ûEüÜÛë:VCüÕót•ö$*£ƒ¶HŸCɧ’BãI¹ƒªç﵊ù©NEAýÕ.ƒnÕò [[bÿCß-¥6Ç꿈C'µœ¶ÖÙ)dœ*¯LÁß˵ž‘JcpÏöy§Õ 2OÞA[¡ƒ,ﯬ¬®ž+àú¹®ŒÄÓú ±þJ®J¤ÿXŸJt-†·% "kýL êv탷×Ê!ítÑ–h¨¢~ýNÚÑÏÂHª¯üôàÀõúø[VNø}-·Äõ‘˜ ]G͈…ScóÄÈÑ©¯HT,[«×!ö[êEi¨‰B>ï*jaMÇëëë& ¦æÔQ:]G 3º‹Øé«74—´"—ïþŸ¬ø~b÷©;&E°\2,]äK®¯‰õVÄtD½.?Ivü<¾ÐtžÐP·j4äÌ„^ÞÇç3ëH=H&(¤ctNäÞgèÎz‡ 颿"¹ åi`«9ø¹IÔ¤%ðèOA±4 \&9ÈnÓ=NËÉÖµó€û‰ñø¾³i °Ázݤѡ à¾+n¨Næuyù1/ؤ3Ñà~xcpÎHN2»n—„Åòñý®½6È—K­‡S"ôPTJ8ݺ„—õûâÊirܼ¡©Z…Äú(=‚Ör“óÌ&]¬àÃu7xÐ_§Ký YÓóŠúÙt6ÖÏŠÊãCt#µÁ °Ïú]æÁRjFp\ûø—•Ý%"ö»F|×føyp¿4Y«,Ñû ÷íÊè_e—<–BÈ‘R÷È IKÆ/NœÔñ{¥ãû+G*Zñh4n%ñýsú fâ“êƒÖûÿ ˜dXià¢QÏJã«ênH-økcìVƒìþ5Þ=ò]dy¸'‡ä‘Øì³[²”š?7–øÞçÖëôÄ kðW$îg%+.Çâiù„2èe Èø!Yr+‘ÑÚu "&D®ïâŠÍ5IŒõ>×~|Ç„dÀrWü·«a­ÇµýD×UDB 0ø—^mXa¼"=RG-¤ä¯ˆøFl$ÏÍg¤&Šª¢ÍOáÅ5ñ¥þ1$ªVv…‚âêo[6—ë[7ôÊŠß÷Vœ@ˆ\‘°¶uíz_/¡…_ˆû“r _P¢ˆŸ“Eó‘û­³cjßëÖvÆÇ'bÞà#1È™8 ¿›åy}1ô›'¤ž¤tÑ-ø¿­´ðÒcî€$å[VÒ3rùr!Íûð¹¼ ÿyFÞ³é7Ö#åWâàœ\–hh«9°^(ͨ€¶: H•ˆ±îßyÑHl2h:0"·íë‡d„%:¦,Т;ë™ÔõrY‘lÖQûîkñû¤TúU`2oä"²Ü÷»ÚOðŠ;rŒGΈõy.‰¿Ä!Î+jÖ'±Zž|.¯ÑŽõ}L‹'üBæxl¼+y& ÈÚ|JEÕ2(vÊ$ë¸ÅÒ”Œ¾‰¬n»Š}ŸJj"9ÕþoԼǑú2¾Ú_Ïýƒ×Á xá}‰€–Â#k$^AÿèûYíjÈðd†¼ïþS›Œ:XCU]1$Z@{¿ýe%¦*u'±-|»?\íìxŽ(øQns»…Í®ËfÙÈ#'d¥œýWñÜ1â 'Y/þï¸)׉x‡¼°¿)xÍ;ù:±Yt*Ÿ_6±•y/¾5&ôI …gŤê‰M/a§©ømjÛ$hb3V¾Áí4ž{XvÊb¢þŒ,’ ²&ð= úMÒÃ;.ûÙ·7‘9ï¬È6## ø`¡l&bip y ;ɛݤG …ÇúÑà}%$.ùl¡$–Ø-¿VÕl~™ósLöûž6g$T¶s³+\ŸŠõM¿†¼±Ô®ú9Åýx÷ ê‡ç ÿ+þ O<´ÖÕº@géqøÐj¢ï©Ç¢£Âº+ÀÝÏl%CúÖή×ÉÒwÆÒ•ÁôØÄò5$·Þd²mÆâ?ùk\¶È2™O X—Œh-<˜þü`?òß%:b€ ÷ð…})vM°õ 2íá51‡Èß Ãú ¦ù…~.lWÂåÀâ1Àð÷tògáÛÆÆ¦6á vµžÛüµmÏÐÀE¢|6þ?›W¾–¼~VX¢à*Z:‹®¬Ï©¡â±90$¢¯›l²ÄS4SšY…¬`3æñH6ü/°+…Kéöó­£Q™¥Ñ2)šb©bÈSì ÷Øz%¿—ûÉ?ÖÓiŸ¬ 6#qx],S$¥ÞÅ/öóèY˜Ãä¼Ã+C¼³þÛ€\ü›Œßù4'×Dþ!äÍbŸ”ÖUÆûo‹­+›ŒÂ†9ÑDl¸\’ð{ƒ¿êõ¸Ÿ xLl²ÉN"à+Y-y_=©L¤ *Vû>)6ûã7PÓðð}´XÑ_ R ¹kh{ì_©Æící­+4Ô ò ÜÊâ ºa.)À÷ê¢au&6LÍýT ´Ëv÷×|]2¹¾„é¤Ô2NfÈ2â‡ò¬`÷Æ£¥'Ô‡±u‹XüÿkJƒ¬à«¾Å D 8ó‡TXÕÈ~CA„¹è#m@' ¤rEÝ$g3ÎÞ`ëÀªóøõYIHÆŽ žùî€t¯}7ßE’$_„,|/„q²BúJo°ákß+*!ÎPô¸ ÛGòGM³“ÿ˜8‹0®Ÿ ]Dwûðÿ.6%2 u`*¿¯œq§6íë%œö¡ÁÞ|>;Ç7}>Åÿ”½ðºÖàøLl¸Æ÷Zà;ãÍñïË8ý–×PÏ’ à5“ K=q‹O‰‰n“ú.ñÕ2f; ‰žÝ)Ÿ vkù†…À%«Y¬£ÇOø¹õëÜJþ{ˆOŸàÞzï{nv䳋ŽàÕÇ@†Å M@Ø#lM—ëZ©î€†›ÑŸÕR6?å6ñ`Su,2Pd£®Dd¼–ÀöŠOTr­ñí0|»ÄxT;&þ€ïy¹NlƱkÿWâç0$doAöîŽÖ¢ë´J†KL¦ë‰èušY÷7‡‘ÛfÅm󀇩°w]ä/¤ùÁÂκ L¼Eü²D—Ó-¡ò·n6Óó…Ø9œ(zÙ·ÉU¬wœ,hõÌFd]Gœ?Ûê—°—äõDÅAYï@ä/¢®o\Kôõðœ°zi•ŸÚLëhBªÿq ˆuO¡\¹€ ÍBö»í~FÖ¨ð¸8¾öû…ï=ï{—l·¶s\¬³Ï2¤_‡­SÃæºk?½fǹ’ÁpºãèmñÆM;@Ý|Î5r8ý±,ɉæz£¹6ÚŒ(I­6=îd@;ÀftÜc þ’‘è·¹§@²ÉØî&¸fo6ŠÍ|ßåûoñÅÏ~èM=×-t„ÉÕÕþXýS⢯îñmF€]%o=£~„¾$’ñ™1‘:Š¿9„0¿Ö‘Ï]›€É_ôÝî¬Çy4Pï„·ö¾ë1¢vö;ÏýÛÜŸ‹c°þh° ’wÁú`Í¡ü´Ev«š»¡!Z&¼ÜÛå™ÃN~¬r²êá ï wÔ÷<ÌÿtCòèG:Púpoć°ÿeîXÿÐ&¶=õ•íz²Ûõ²œé;8¯ô] gp?7²¶DæÚ ¯¯ç{?Û=c9­AõýÄÉ>ån–6ú¹[xt+÷¿'vã ×ä=2b.< Öܵr—]2ü?TŒïŸõS^æá3á´£¸M—‘ò|‹íÇó¨õÂM Žëé1Ìf™ôÄö]ðþ>:›Ø^ã3çn>iî&¡9ë#· Ý7¼ 7| ‘©^ÊWíRÝ}î¢I:XÚ&|ÒzÖ®ÃöS‘øsäï#ýáù½|ÿç9޾ůãÂáz`wÛ÷ÔA«µ:諃ñç\:¯ßå§Áí“ï`F£x×<ß?s2âÜ(¼/":Ï Vt·Jºî‘{"QÈd6åê!ß{…·¹Mè(]¥¥tC³ùö6rßÿy¬3o{œz"Ní8o˜‚>"ËùûÑ×ß'u¸9ý盚ÌÈ©ç$ ¢Šû €òsýÝTgœo-VqzÅÊ ù É{Hgøý\4bø?ž³ôêˆôðøfä¼xÂ@ª¼V0Úš:T;"cźÝî#ëmÄþ£}µù¸räNæwÈ%ÒïÚÞ5r³]Y õÎ6ÀR/Cñ€O¨ê;I[ì'XXÿç)þèHYò]Olß ´¦’‰¡•ÁÿÏáD©rëHø¯MJ[¢Î@î9¾ÿÿe=O P“š¿(ÑRz³¨4uå,,PÔ&"oR³ß—÷©û×á÷SÀ›üÑ ù§ò× ü`$z¹$u¼§5°V|á'"DDŸ¡•1z¯±y1ÖCô$¼gxðÿJ­ð/A_¥y¥uCM¥u‚`'L›ýíbR×ýL|Cv; Þ-Æf[ÈÑWÀëñDïl$²<^Y`¹ÎÚ ÜG]`Ý7ƒqw¥)üÏv7|…¦Öón;nfýÐ"À‰ããë)`˜¿K%|¿¢?"UËôØ×_V—ÛE8zHrÁÈ_á·;±ÜÐÚv4=ðý\g‚ {‘¿””ó{ÚhµãKÉlãݬò€íœñ~žˆuÔO³»ÐË>Êæ¥^ÈÚ|4}@“RÊ(²vª²Øü{ i~"‚C‘>¼îÂþËý9ßeD€u8?+7|v¯#ŽêɲÁ4|b ö?‡„ŠÍuZ†ˆÏGeuT¼¦¢©õRŽ "¤šà \×Ë}LMž¼®‹§&Rëù|‰ÞÇ¿ |d/AöžÛý:>AîǰFëNg.òØb^µôßÇÏI”«ˆßõðÜ'2Yà') úeâªõ ŽË¥†‰ä„×T 3'P›zm=ì^âvoˆ6 Xì;BO"“!~—×àÄEIê§?\ó»îÁ{Bñu;–b=‘N¡;$ä’Äd‚×’I ø&í‚ýmÙ5Ë ÝL©­7À²Ãþèe±éïÖû™Ÿä8—xŸí'aÍÇÖ!žÏ_ðs-ÒÂqq}™E—¡§©¼~ÏüäÏ ó8bÅëS5~ûÏ ƒ¾ë> ´Øÿn¥rÝ-WMëWÁlvâã ÉpSÑÅr¼~µŸñc@gòˆE€ùOJ&‹ÍïøD`ûH ¦;ü íõÇ;®¢ÅKäƒè"¢ß-YMè ²l… º&0¥+ë>s%©èÚ¤—EðÚ!Ø{"¶_ásÿBäéÏw®ðg;O€Öû?5ÖÿE2ðo2Þ»ÞË?Ýÿ\&‡@º‹äÀGþüßsbª¯®Lþ*M\Ì@ ýïV:—Þ•q9å#Ðiì²ïaÿ#˜Œ,¶Ó-ÔÿmPÖû£av>ç:ˆˆÏ<„'Ø4~VÄRÞ· šD.¸†ôêµô>¯‹ H¯Ý´Ÿ>wƒ-òZi\{WÇí¡>} ·üÙº H´¸²ÙÁþÈÍ„Xä+â=°„úH Âè£ûIçñõ¼?Æ}–l±?Åïø‰á5ˆýÊð¿NØ~¹¿?7ØVNi©{)ù‰ä“ømœm²ÚŽÎTDø1<÷[Y‰ÇøÊߪà|Ès€,™Û>Eþõä>;þwÚOºJeÝY‡iª_PÑvºÁe ¢ÝïYå\-y6© ¦Ån£;_•¶žï’û¿óxp|Ÿ‰Œ?K"C:¡óÉŠÉü•rë°ý!n?ã7¶2§Z'ìN:W»Ã}Ûh/}ß ôÔË?_5¸Õw­¤ Û&¸YUYÊøÙ}qˆ† ðàõhà7;›wOlß{fl[ÌïéHHµ`;¥b«qƒç`HDýPkÁ*âè 쯉Þ'¨·ƒsÕÅ.U] ÷@†ð_‹ã8D]TC?€Ç è¾ÜÛç‘ï•ç€iÔ¦[vDùÉ…Oüìƒ'R&U‹G^Kz-¯·¤µ?_ØQ—ë­&5]å@ ú_®अÝlW¼²Ìv ·ëÖ`»ûžÝ×":âaóXà_L¤¶#;Èé·ð};³WÓ_7QÅ׺u^²J¿ÓÅzÇÖñùÁÜ ¹œ+H.ØéÀVŠÛá­ùÀ¯æzÕçöþ¼†,©•@¼T ©±ÿ3p0>UŽùFYª[ÛO\¯ùRUoKc$Äk·»¬ßñø×VF—ßEuI¥<¾ÛÙcý¶7ö<ÎvF„l$÷µ- ÀÇ×òØHIJd&KžÁ?b!ílÞÛ_dG’ºib}.NЏ0íà^M]\¾e!÷‹›„íËáÃ%¨aOƒy7ˆõ0dGÛÇðHšj3‰§'T‹‘/ÐÔ=y†^bQ7ŤÊï©VÖRÛw˜)‘4û}¾çoYÅ\"¾gd7ÑM€Ùe"†Ó!å5xž]áû+üæ`må§@7Äò=5„Hýˆ˜o‰Ÿg&Z‚x­ÑKZPdžˆ”æsƒñÊ×?[)Ð@WÊ…'Ú/H 2w-"ú9Øöž|ìžÓA›hT]JŒg¡f~-5ü®ˆž~H<ß+¤†æÆs²Ë!7ÐUùÞž•ˆÅ·Î+¹¥Ùë#m¯95¥&R›ñjõïí &Ö•à\!t“ „õ›‘-í,_3jÝ’è§¡lw»É­Á÷¶ º .¬Ü•R~–Eê÷NÄ|~ê‚H?”Ñ  Û—Ø9ÏíÐáh©~P‰w|Dì4’Ç.²ϱ¾¿o¥wmÝJ÷Ô„×TÖYØwþ“µ«zæê ²â3ùIm?LÐ`¯é‹·Œ¡æé…W„×H’O–ZŒ`viÉ3]'wÝÖqºM×¢…‚Z\§éD] ƒ¥8øØœ«ŒÇ¯@?ƒÕŽñ9xÑQ¹êZ„x•t™ÝpW?8 ±ùdï ÓñüÇ:Jîé]}%Û±y‹'ÌÑÔ 1å”tSÞþ‘• ¬w]Í’&äuü!°¾ºìÓ[ºFVà À½è69Ý¥ë¥ gwÿ¹+£«äD–Ë-²K7Ám£KKªž¡0ž©úB K6Êkê¼Õ]ßþ»• /ˆ 7lªwà5Sà¡“Èò‰Œ¥z4Ä,úVOüøk«L&5âbùÎ’mpúõšSê»Mø{WÏe²ÞÿüU fTäwßykpõaŒ9þåº~þm+³ûÀ•}«¸í»õn½[ïÖ»õn½[ïÖ»õ?_vD?¹ŸŠö¯¿ »t°ü|.Ë¿Í8XI¥S€z°4•@>žMO=(ö4ÿóW.*ßò®+„Äe]IWÛusŸº¬T|Ü.ê6 ‡â<“Çwù×Z \*—›ª/kí.»›îœÛèÆºŽn„kê&ºrN–Éj©!ë]â 8¾PÍÕu5¼ÆÞö•Z75}[ìý“›$7ä¹<–ÁRKwFúÈï4ª¦ö×v/”#Ø?ûÄõÄcšø^Òo÷Êï{V7v¿¹LÒR~¡ÚP{êHÍ+ߺ;"ïÙ=M¡Í4LHØ:G~ue„ä–æøK'׌˜y;WIW”ê>“ëç*Éd%W$£öÐiع£6Ñ“ÒÔÕtË´ŸöÑ®ünçÏžÕú\ªj §%e³™Á|¾ÿ¿^@òÔ.™ëá&J!ßÛ3ƒÖÓœ:H;`ë„Ú]‹ÈonŸ6оú™ïZ[«hgݬSù¬Õ5¢¶“B²$xÛ¢ "–žŒVÊÍsd–¶!º­·M:dMªÉ|_³òº[>æ™2ú¡~©Ã4—æÖÙzB‡è7:I›ëp},]ä}æ|«Ž‰–uÀ¯2®œë/§užvAßâõv•ÜÉ¡…‘¿ Vn¨ÝðƒžÈ¼ÁŸ­¡»Ð@G¿ë©1~’MOË )%U\Cpäm9PÀŸý=îI&)HlÝ "_=¥§ÄzxõC¶2X9£¦%îãõ½‘=ú˜­#|ßÌ\DÅ|Ý®ŸòÎ÷u¼ôwÀ“àƒ¼ÜŠa÷n—×ÕúYÅÑ'ò‘ïu VëÙ#µ¤¦A+­xü7â½ ž_U ƒÙúO±`ó´^‘,äŽglGx;}¨Kün¸ºE§cýCºÆŸ½$­àCµƒ¢ç韯”® ¸—ÉqïiQm¡uÉë9}ç÷ŠX}5¾RúÑqu!VÿhO,DÒÏõ>¬è•Tâ9þ^Z@wê)"#;Üè¢jˆ†4ÕŽø@fØŽOÿõÊ>%…éõu¿H­¶ö:lï–Ø5‹}±f¦%3øÞ›\Pä««Õˆ‹²ä¾Äêx}O|f›~JjS€íí¼ð~_ÓÉè¦ œ¨VVHæùÉÜ7n1ݬ>‹ªüÕalÚ˜~[„¸B$¤ÓŸ¤‘¶Ä¾ƒ‘s0´ï úYOÛ i½âvéy}c¢kñ…/ðŠ"b3ó‚qåÀ7s»ARÛW×G2[Ö‡÷œ—‹rMûI¶ï5…Þ”`úarCýMZ#u™¦"Z&éxØ`C|#±2œ¼¯?!õ >×õ~JÎhþŸàcÄ\PkJÜÒW‡é¶çVB_É!< —VýJT}O—ú°ßˆ`¾Í‚±«ù²£³X Þtíïûå§&RÊ`÷ÕØÿL(”XÇ'N sIc)Ðâþ_+#6)èNHW<›–"¾‡¢‡òH(zC.I8Pî¥l#ú“#w|´Ò”øè'®†—$A+)ñ€¡D~GÍá»"gðý^$2*àýóxu^xóøÂ7(ÈΕfq ]wÖ}á»ùt½ Áß2«uñ¾"×å™<”7ò žð »çG#Ô:À7BíàEõÀ¾øä¿2D€]GüžFÖ§’DË!uIj¡jè,1üà]¤™Cêi|x@ð°Á\¾Êâbãï-`òóÈgùàøÑ‘ßzbüq­£õu~ê¯è½&qññL†ç³aÓ¶àZ<ì‹h¨'ŒÊ_ä²ü&iÀÉ¢<–׆õÕÁn½¬UB IaÑÅ ´àÿ¶²Ã{Ú»SÔ26Ý¥(Y­+^<t³¬Ä:†Q»Þ+6~ÿ?HO\ ÁÚ‰þ´ž'”ƒ#æù„øAZ{à¯úŠAÈÀ§ÞBsO¤šý$ …Œuõ‚Fþ¤®º»ä*Rž‘tøõ#yªÕEQÔ:ZÇÅ‚a‘ÐÀ¯’L!•"~L¤÷öõ]+c]>_“'ccq›Âû¢à¥` £t˜Ð ?øAòÍL¼4®¨ë* ðã Xó!¶Úâ½–lDz)*Þâ|/Ü7b~pû§@9yeRß5±ïk…üù¡±a…‘Õ¼Äzà'Õüm¹â+XB³ß;wKI† ð€¬`|7«‚åEE‰üõ²Þ_ÿüRî‚}aà}÷ùë²ïwN²“á ¨ÅwvnU@¶ª~ÊGj´•D­÷ù3>ïš|Ÿ|›Ï+Âg—€V&NºQ9\!W4 ë~%ÿ*¹úò‰œäûÆ­‹km©Ûd£ì•ãØü9²œð×½\€ ]“ŸÀ¿ ¾OD!¿ë5;Ñ\™ üKíu AgÅ®}ŒG„˜í[ƒ*@Ø1°¤M:EëEHäj‚E±t³ •¯®šÏï`y6ãàG¤½Ç£Gd÷®cû›ü{FtÖÏÉzWg‚$ôr ÷ÄüÝO@±ÈˆvÜæà÷£‘û°×h!Õ´V@{ÿý±ÒPõ5sÞÓˆ:f·¤ÅVõ¨Z‹’ÛNáïW‘ør•]r¿ã¡¶ëlÁÂÞ_ÌÅå6Jnrw~¸¬uhK‹IŠ_Gêã²›ã¯cä„£ Ä6Y ¨n'O&ç]Éõˆ¿ÎÛ&`¼"×…àÖñà7ÒŸ&kîä“BÁÉpèÕ:ʤ†/MxH3rLY˜Ã rEQ—6 ò—p›] ¤ÊB4vÝ&¯_á»ÏåÖãåSdÒÏ’¹Øv+ÞÐôN®{eœ,’!È3Pºácx…ÍÄ9å;½[Æ<ÎûçÊž;)$õC ê€óÄÄ}ê©ÒøA=mÂf (Hí ¹yØ2ÖHEÎŽ“yBåv—ï¿—xž‡œ}g§ÙàßJd™ FôÄš ‰‡)hfŠô“%`Å:^¿ÚׯÖûÖÞ»Ü÷>¶Ù1{¼V.¡×KøJª¤< BQ~æI‰JoÓÒ¹vn¸äP›ÛÖ#ÿS?·é ,$Âç#û4™€Vr³ð5¨¡u Â*™Ž'pû–gg#kŽÄßßÉb·®é[ýã‡$91ß'«¢-µ/ˆ¸1À×Å%w™\Yj?Å¢µðG%$ñ×}/Cž©Èm[Oúî·+±ì×°½ÁÚ.žŒ9Ó÷¼šî{cÎÁ?’Áq·KWÐÿ²ÙO XGæØàû E§Bª ~¨Ku³.VÔà ;a¤uÙ\S·OIeÖ^ ‘ÉÓÀc÷ Õpùɬ+ô+$X‹wŸÄ¯‹Âå?¡–m‹ÇŒÀú«}Ç䱨>~1OKê8ÂÙæû¥ÌAGßñ;”|hóÚ‚|Û@Ù¾svMjçií†`G¼¿D~;ÆgóºÎúî]ËøÖ3A¶®|÷Ëò3ÞlQ­/èJXâ08b'8̧šL­ÈQ`9s ~­«Èéóx$Ô³¦¥ ÃtïG+ÀÁû°…©TÖ3ÿ<¡ 9`œ>uŸPþÄß<·‹ØÜj¯BÞ‘`ùd*ÃÈoöý'ßÖ} ¾<tø/ïwíH$Dõ×Bo&ÛWC²þ°ûŽº ß?@&8EXæXìg#­DÇA¿LÄV%x@rÍE,ôÑh•ÿM÷;¸½ þf½Ÿ;Ji.ŸH¤­Ÿ|)=|~³~ð”îDÀH|½«É®€l{ÐApq:h«;ü,¬}°b¯¯6ú 0ÝÍ‚3oÅþ¯ÄæÅEYÙlѯõäð1Rî´»,ùÕfüìòµÝA,Ý[Ú~-¤ƒ´‘îHoýŸÇÊ:ßéó|M¦˜ä'8FV« ¿AÞØøòp0 (™c ²56ûž©“|žXÏkîñ*›R„Z(^Oõ tGˆšäÿù’•šç1ÌÏrÜo`þj¤']øý100 Vò»<(ø 5Íxmª=ˆþµøM2À鬣uÕMG^·­X¸ådÆq~:Ø?ä¾$¢îì3þ"™õ¾ËPéñ_ÁeÅ.ßóÝŽÂTßH?ñu6X`óÆò3ùgÃÐD9òØbmޝÛć{~2^|ü™ŒF?‰íˆüMþA(5Ÿ,9i“3ìˆÉ´üZÚ Áç’X ÿÀ®Ò®±»çî€lÛÐ@ˆÞôÇxVþ]dX0P¾Ã¾õylºèÇìƒÁÀººÙw¹›"ƒÉ-‰ˆVäF«ŒvÈa_5[dë gÚ\O|å¤m–÷©+kÞ¡¾kຸ(ºÛ>ÅN“ˆfã´=‘½rõëg¾Ìs‚Õ ÁpICýÞÏg»8j:±>ß`J)‰‰âä´]TM6õešÙÈ{£‰‰xÏv<+;¡Z‘pxÐ\©ð.ˆPsIu¾£fµXÿ’oû5RÍ¿ °x7䙯ßÖé»qð1ÜmÒg  Uyž7 Ô+J ™Uç ¹h`l&væâù6eÈÒ ÎSžZ0U@í°ò¸jî–KE&ÿo¼„ˆïÕçÈbú’ !~‡ãÁãa?-±ç P¾†>áæ£¥Ái ¯\‹“%[RûV‚cÛy¥ .I …w¶×Ѧ`Ù|û0TÿŽøŽÇ>Ç[“Å^ú)XÖÙx 2Žæñ‚ZAÏ#Ù|c)ì #ž=–˜ ÎÁêÍyí?ûcQ±ËOó5ðl¸Ã iLô4%VÓjAÒ¶€«ãÖ¹äòø°’XÜæœÇQÍ%Òkø²›ç»½ÛÜ®3È9ËZ´ N¦fúÒ[–߈ŸŸ§8F–KB–Ÿ‚ß‘‰øÄÃÏAÍOþÜ${A³ºTĀͶý…êæ±d‡ 6ôsŸU_Êm4s¾¯ –cÝé¾ÿ÷"ä&6óøäþšXÙæ§ä¬ÁlJú¿k,;ho{âí,hmMOÅ—KSƒ}%|ï°aAsuLb—É=pVË&òSJ&ìfs/mïß±ù…SAú…~òï2ßy˜wï8‹Ï«^÷ÇJCmðçŽûs! 5 R#bv„÷¥âi¥ŸhoÍÒö šÝÐ)]a7Ì!6Ãi½%õ‘<òÓf"×mä_å§,E>›ùi±> YÏëÿW{goeµ­ý1Æ¢nØt³éîîn”AÁDAEEéîîîîîF:$¿ÿœzn|÷œûyÎõܵ<sýöfåfzÆ3Þw¾cœ¢š;2ü=1 ®·Øã»¡»ëâ[RKNÄÁÊ¡ƒ~äý£TÎ)µEœýüu¥…¿%U-¦¹³#‰çŽ0×{0áÈs‡L6<_€ƒëxíy‡×âÚcßåt*è8ƒÈ˜ömømrì~øŽÛ+´Ë‚üî¼ùu T#´Ð"’.Ø‚ÿ¶2IÉ%õ±JjóùH6<'jãÙI´0†_†^Ü,¯ùHæÎò^ó;C2Ïîø ;zðVë¸ðŒßŽùº3§ª½Ö…è/Åû„HˆD…ÎúÚ\mÔÉÏÿy%•:²AO¥ÓìC,´ßG _Ös‰ìiؾ?Ï}‡ü›=3¸Ïï=H ÿ>ÚLJ9fðމÞ[ÖÁžÎhkoûñý”D|XO¸ÕÚX! ¥þï…¤³TÐ)Ä}UøYbÛíw;œE×ëz ^=ù¿!ò]änàv@¯ KF·G>¿C’A~â½?¡µÅü»üLÚ!­¯©ÅòY;{û±BªcL^4ð¡„S“ŸÆ«£Û3ŸÃ—“íúû©ëˆ¯øqî|·›eévýz.|X0´s²UÛ.骦éxÆ c&˜9¯8A9dˆm™É,•­ž¦þíIUUF[àÿk¥’b’CøøCøÏs¿Ÿ+›¥¶ƒ~*–Û´‚7 c&vwuÎLr^ ƒ á3ÎSV‚z®ú}¨%Éž»ù;ù,½ß%ø&¬¯Œ}Aމ£µƒzÖÿ¯¯LÒEÚIsÏjã˜YPÚñ;7]¼ÊÏ\üÛÀºm [*„,䂈ø@Î\ìú ‡ù$3·ƒ°¢M´OaÀõá~î6Y¿¦Áö¯®ÖGfÉ,Ь5Ýî²›LïöĹy@nª¯›þµš¨>MœÄåÕŒæv…ç>„뉭ƒïóÝŒ·ü Ý9¿‡ès›kðÿþÖÒfiÇ ÎûþïW©íö#aÙ»~ªÃ1d)`oÁZÜUûüQ€ þ<ÉSÍ “‰FÞKOfK…Fà7‰‹Í~ßt"˜^‹LÕ{ÐÏÓ«ê- ®ë(irØ÷ï«ØLê!ß(Ï\wkQøJAs<þ¢Ÿ=C7ŠíçwæÂêE3ž¿ÂÕM¸\‹í““íbÀ‰îø‰/¯ð®˜°äâ6ë7Ö&Ò"ØBþ·«™¤A’]›Z«KH^UåÊòûàNß ýU‘Íñ‘êüNjóÈw™ÑÓ!²@6>Y‰ûI,*Ü ±ÕõZX›„Çlò!ÅûþÚ* U%¹ü,(€Uíkì'B®…ÁG„/ƒç±÷À…0»T »àü¹°ôeP"vîl_"³Ã…àþdÛçù4üùC}¹þ6%Éeám‰Üw¬x˜.Ž*®‚U!;΄#7á•Oìj¹F&øþs²œc ×ÀŒvö.uþDý§¶ÆÛÛ¬gñ­àÏ»ý=+L¢Ò•<ØØæàáÙˆã4øBa¿—=…méù»ØL{5pßÊãÍÍŒt¼!5zª‚ß”ô;¿s‚‚Ót>üºxÈûþ_VvÉ&Õ¨ˆ>Í¿´‘V ?vWú•õ“|€ n>®».úkÛBfËAˆ æUóýß+Pf²×­)ºzdü@€¬Å¤~°Åú;V6tVÚÈIùT3Á«Á[;ãÏÍýUE©“¢ÿŸÛxh5ax‘ÈxUýÑ5ÀêDÿ`lÿ®³¥:‘˜úótø÷U@*È(¬VQk#{?\5?Áµhžœxhh‡}×ïO`÷à»Íñl<¿ÄnÛj›‡žê+³¤ T‘Y§ïÊ%館 ¥2®I促ÞBn†_Fr_[[ Çmm3ˆq!JFú뻲Û{Œ†ŠÁ ¢ÚY)‚W;ÿþURòJ²A Á›dµÏÀó%x@8Þû{¯$?¶ â›á ¹­‹~l_a÷uú¦ÖÓáØ=w°Eø®,TÆUÉWd4¼°èVä"ú{Û]¼¼³­°Ÿlþ±ŽÛCwÃöºëf‰­éðü•ÕŠ ùs ×w¨úæXÌÀ$ öí$û ËRát ¼kÉ© éiùÜhì/ý‡®”ò:µËùFßµ[5pÀzaÿ30œ‡¶Uçãoaý޲¹;…Ìlã?v†}"×å±~e÷¬Oàý@6Ë©iM´‡6³ºÚ6774Îlþ3V ©/X,½õ;›êí‡ÓǶ™dŠ(ÚSbQCgÁc;ä ×Áä¹%¤‘DÔúò‹çF+Åý™¤ÿVr¬œ/ÏGµœœ{eüUÔ/×Ëõr½\/×Ëõr½\/×Ëõ¯¿rHšœæþ¿µÊú ‘Y$u@ò`™ê —¬T¹y$Òº¾"µ•$¥®%u¤’âõ„ÿ²:È,Éü”‹dÔºäSù€Ú÷÷*Ëw2_¶È´ò ÚÉI5XAªKü¢yЯnúcVª\·G¼ªŒ—dšIãèiƒç¯’vX¿¤~¦st§ŽÑWµ®D’ŽÒ™WëáõÐ@Ã`ùÿáJAd§”rò¶|‚•OÈýÖ:Ù^Ý‹Ç-ý¤¢\Ò–Ç:Ø[csõ¹ô’Ù²@Þ—NÒýü¹åÏ!ang°¼#}å 4гšÍÊÙëkg5L;bçÅÚÇz[=û |eûíK[®ßêFm¨÷ä‘ñFôøúÇ–›rYDJ fòHºêAMmï[>‹aís«nMm·4‘ÖØZûÄ[Mki_ØDkÁ«µíšÖ×sÒZJã=¾UI²ƒeå[Y-'µ½ µa¶;¿f -‚•·”DÁU½/kýY±/ìM[`y­•Í" FYûÐÞ°‹ZJo eÐA¨v½þë+ YÎõ*7m¬M,f`­µÁ³G ¡ënÖÐjX~ì?ÇNj]}ec¬®U¶$Ö­·áÖú#õ,–mÕZ‡lP þYŽŠgâ–‚ —Rk.<û;ìËÞïãâÕY,·¥°Îó 5~1ŸGngo^´tƶÚG覭M³±|v:ñ°S¿!Ž:ýI| „d„ÅL‘ºA+ù‰-=’|‹TO4–•±õšŸHOb?Ù =l­‚µtVÐ2Y3gÏí3ËnMl­² hm©}m—õØ¿˜M¶~JÙv\Ç*ÙCx÷cani¥¨ôCнž×Ì~V×ëv­ÑžhTûEW‚‰),ªõvi¤ž 'è„ü?XG{bWÁ„êDÈ`›€–ásl…Y+D. «~þóÊâà÷cifÛ¼·§³œØû¹ž×§šÓºƒr—õQqA[bù: _è¤%±õhtP×^·åèÁõFx–ä&`$F~Boì"ù±‰¥ÕÆ~J\(®p0?§Œ“|߯ýîÏd¹àÜEò@ižIëçA”âÙfö (PÞ»_(;Xƒ§7ë>´,–ß÷üML#\ôC£±᪦š1$çd!.óÀÖòÕÚb©ÌØ0­%å–©Ÿ"e{${ ·µ¢ßõ@Ý$”ÆöH]ÏÈ„6mµ$Û}d…-›ïû =ްIpƒê`Á9{%p—Üð¡m¦*vדÿºòQç´õoÀ\ Y¢·±÷þxDýÏX½+ÖŽé÷¼gÎngïÏ¿Ñð’øHî&á°ä–>hÄß(+ÔÀÛ…M¶lê–>äfÀ$ûsPá]„ϱZüTD’pýø0>³gúBÃñ‡HpÞG`àuuû¿Yj¬^Í¿û™fFÞ†äû¼h#uBY<'ŒØÈLv8os‰·‡p‡• äÖw%n°EþO+ ß§©¬Ó†H¾ÓÂïàLcÑáúÁÿ°Þ‡ÁwG¼©4)yÎ!|s^éJ´¤'æs[b‹‚.2ñ©ì¼þT(Ã;kYþæLÛ‰‡Ô ¤ Œ—Ü!´8§Ä¦N7€ç·Âb͉Y7Õ¡†™šÛÅÝ^ÅbYDtÅ÷´n;hd‡4:ì83˜Ñ«»~×Yà Å|7°|¦þ_? çonB·íó@Û@ÍBW@…¡ª’yŸisìT™ ö=™Üuõ÷W¶EGîdXó9ü÷&øUå}å}WÛºdÀª–‘Ÿp¤Ï‚ß!Cóþ4,BôOû€¦«,}`=i˜T&êBcåýèW~šÍ«Dt*d.á§¿ÜÖÊÈpž¬wŸ¿­îº°#úìˈdeìc$kåùßç|*b!u\‹ >Ö0Àõ¿O6÷Û2ÛîºìP/|.Zi¹23œ§…T×w)³‰Ò;z@k\êšL ™c?‡õ4Rï'ú/ó;ú)mµá¿Å}í¦gÊåüŒ¤èà™º¾×Ñü®è<Ó›LØ&té7 ñ§Ùè=V*¬ŸZë°´Êøj)¾ÿ ||=²¾Ð³ä¾ÇzR«ëôwUoé°?ì·6ù£‹üȘSN Ö½F>Œb¾ÀSò‚ Å|Gõœààë0…A6ÅæY[í0RK}Ù!£±ß0$ ý±m bá¢.Åïo"õE4°]7û¾Ø'ÑÉ==§×®¼Åös¯Jƒ‡îÚöÇš ”tY3'¾/XÙ]˜Šx”½ôÕˆ©ÏaÅK-y`‚. ]’iýÔ·ñš»$RzÖ_ Ž Û?¥û¸Ð-Ô»ýռΎè݈6nhQßÏ6;Ÿ+CÅ›ŠÚ(1¹Âu„Ï <-¢mð¬`Àûö)ÿÎÁû7€•¬·û¯[à}Õe‰& NvˆYwõ^;£;‘xƒnR7Áuu¡Æƒ+xf-—OT Bpó^î‚ ðŒü×°¼›/xÃ3…uàßÏülýf€÷-¦¶ ¶øT=åe‹¤!G—@ê¨vô»©Îsocw'õ´°O÷âÿôXx„û›u ¾°–<èzœä£Bp½Îi‰_=Ž€Wõ‰FÆ ^qU"•ÐFj¡©ðá*ü_©Úb}KâYþD0±ÙÚÉܵ]®OKRò|Hæ;÷׹ȿ\gPóoÃþ×ðèú œ#V‘ò ]B»C|<3S5‘ÑœËÀJǯQ3'à/—à'-³3Ìú˜Vi4—>è»&Ý•^56tikÀú>ýj"Õi*{µ™¾ó½›ø±œ88‰?lÕuÜ»S8‡6òÇ»_<×ëž!Ç@þ‹È~NO ±xÏôð3zpÓ3!ûT;ÌOj‚ÚÜ`E©y›Ë0¤ûD§ÓnrUUê¸üØé.Þ}Egêí;šî Ï!ÍY4²ZaûÄä¼8xŽ;ö{G]ÿ DHD4wiO‚®óõ=ƒAFƒ_D#_ü¢UÉÈý-²¶ ªü %›¼!M4·æÇ{ó=ÏbY×£÷’Ÿö¶IÇêdäŸë§žlö×ù»+€g#ÛEðºö$ ^Õ…èi/Ÿv½ÓÎûIs|ÏÛ-þŠÙ S2W±m ¦0ÆŽip¯MMþ["t yû]â8%H~™g‘ùWòÛuoí«Ý|W³eH´O>,é b ±Öå~ÐyhÀõ¿q3P.â ûu Zí{€îÂNòŒ›-pÒw¼HܼC}qIƒ»_ ·“]²FËáÃqa¾7ˆÙ‡Øo,o¯ŽÖ¡ú•~ªù~Îþ³ˆ|57ÛÁuBêM$ôÖHôúX…^œü§ð‚‹¼oÒO÷] —sï0²Aò‡`d^‚»š*·õÑ$A•ßÍx_(n:ßMMCdÆÁGÝ1/×h“NÔqÈ?@¿÷}çøn÷ëµ¥ýŒŒáµsÔg¼eÄÉr?Ae!?Û¸ïꈸÖгäðÁþ¶—˜Þƒz`˜ä—Þ²æ2Ÿo:Î÷ïÛˆ”ýy„ï{û ÷†â ®³Í"¢ý„¶³ýu®Û´Q²È{ËP46¿q‚ÈŸæ½~9vñú4>ã&D¬åïoæÕgêfl¦Äߪù.ˆ9‚|]t.ëÉê³>ÇâŸcK'u'~æþ· ྽ë^?Ýw€k@ýþþ»•è˜î-ü±ï|: 4<ígû÷ºÞÏ|ï¸:œø˜@”¬ñ<ꀯ*ãQ5V!o¦òqÀ$ò½,À3¯Â`¿AÖŽÚYßÓîú.¾ÿ¹~ÿ÷‚Ló]Àfáí5»³!ÖÓ¡ÉûóŠËsñô±¾ëùb~Ö¡ 7EeŠ›c`L\˜q"Là©Æ'ûÿh©à?ÁÍ€‰ä-É£mí6ùK É]ì'¯õFîö£Ÿe3Ûÿ|shý¨bÖòÎÉ^úi¾Ã³óó³xÐ<^€ý·ø~`3y‡«’‘óËX9r_p6àw²UR/¨Ò»cŸ5e§Ô2ÇÕ§û[üŒÃDðdôÑW?Cþ1ȽÚ÷·íå;wÃûëÚ*Þ1=}Éoç!c±ÿðo ï—¾ÍC\EÌàùÃjƒºª¹5âö>µ–;F˜ÍÞ zØrR t×OøÛ ë‹ ºL–ÿ› ƒá~ã{Ý¹ŽŽK±ãhüÚU/ŸZ1Õ]ÇÛ!è¤?VþŽw>‚ýöòó€Öú©7«Ðšëˆ¶ÀwS<>^Q7³\c¼¹FÐÏ…”–ÒAöñí`g7çñ65Œ›÷:ÛöǺ?øé |Vü Šc¿n0…)¾ä~÷]Î'“ÿnÂ~>ŋ棯™øÿ¢‚トGî³Ðà­f-¬–zô»UGË,-asñÛøÀ&o³O±ãäú î맸ß!K\+EôºèvÝÍ'ûiãñÿ%¾"ÜÆç—xÌÆæküÜ—]?À]hù8uÅnþFaûÖQ{¶¶ø’O*Êeù¢Ø¾ï:l>ìs“Ûܧ)~ØxßÇ»¾øç±á\$²¿K¦‹„s}Ïó½ ÿ!òÂXÑtÏCr7;`¢ÇÕëZÀ2øý`>÷4“¤ ¶ð⎤ÃŽºª¶q<)Îú ·~«'#Ãè`¤¯ÑŸQ A;í´ þÒ÷ÌñÝw¢¥…DÀ¢­ïš<ŒgàS¨ÿ*Yq+kÈ€¬­Ö úÑ?·*H*i'ga$«°w{l¿@_ø£[[5™z¢Ÿ‚6ÂOã½`:¶t(ßçúÂ~Fƒc}wû™èb1°mÌñ½ÿgzïÙ‰_mKŸh¸Ÿ{—ÈòX¾8úëVv),¹ÅMm}HÕÖÌ~¦)±QTS»:ÉføŽ×nÎ<Ï‚†z4?íqá[ïK|wLwÄØõ_áçþ¹ã&ýýg¡Ù¹šÉInɬ¥}¨¡ÒÃx•µÌûúD|k9ȸÀã»cˆ[×Mx?NĸÉh_£)^ú#~ÊÑa8EQøþë ^ìÝÒ:Pÿ7„]6hÒ`‹ýo«±„Ki¹§µm…¦×ÙRËw7ÞŒÿ>$Âû‚vSñw`+²¡º½ˆÔav__³ÒvWš›€ºV0íìôõí"" Vnf5ýÌËwøé‚&Ûvx5„®,N˜IæÀÊëÏò¼‚,òÇ{6ýÆ&“¿fûùˆ®8ü}ï¸ïïév„M&2ÜôܾþÝè«üuèé¶æ²D»›€ˆnÙ°þTb`VH]“XjIY}`;¨{VÃGÔ͵ÞNT÷ëú¬÷£ŸñºŠX8¤‘l’?3t6èv^¡¾sýž¯+ü»çðÛÍ¿‰––·œV=¤ÃWrƒÍ¨×Sw‡ÎJtŸìŽõâÙ%¸ª›]7„Ч7Yk„Ÿÿ4”{ ½_ÜÕÒØ}z2Þt bÜ÷†{–4ާ¡ÉÓh§8¨ÿ¶µÁ Ôîhk01 Y¦Rçþý畜MÊÚOlÞÒ¼d« ~zëWH¾ÉyÜsG{—øY·ñÉ#ðò"ä·vHpç~WøY‡CÁLwî`µîEó[›nÝ©zo_Âyÿ$Û¯ÍBj|bä/+£ñÎôÖ„\•IFë³=«só;÷Á‰ƒên¦ÙX´1Ó{û}M=jßo·Ÿ‘3ýèg¦»3×àÕù¬“u¶Ê~ÂRZ«k—í>Gh] SBZÉ5i¯FÆOo`uwMç6nîèÅdäp ®rßÍBšÁm6:q¬)2¨–Ëûö|´¯—Ÿ—ý“Ÿ–³“,èΊg Ãûó±àYñBn|vðøuyª @ê3Øx:¾{šèÞç'Ù àÞª³•øÃ$tp€Xwy0²%Æó#åNdŸ þÀgFóùË ã6rái8`5k‡ô5ýY¿z®eƒ-î_Y餮L—'ê®Z ØxÛMl~ÚŸ ž¤Õ1؃H¶«>BO‘,•ld;D^˜ŽÕݤÔ±¼›¦›š¼ïf' Û¾²¯Á‡$0¢ƒú%|#ôVi©âv‚lÙàgamϨ/Ý?óãfþÄËÏù¹&n’ëm=¯a¾ókDž]N~ã’LñG¿£çŠ˜Û+•ÅRYå$î;Ø{Ë jmØF(®ÈII9<7;9» öKigawéñýM0ºS0}7f5X˜ÑÂì<Q)e3·wb²O&Qãá¹êVËßÑ­/¨“¬¿ÛVñþ參 ¶¨cÆ ¶Ê mJ%°,øo<ËJôþ–oÒ³xü9¢a%‘í^|n¯p*xM:3[‡ÿ»ãœÉÐM0Ï]AôB[Ùm¨*¥™|l1ÿæj#åM¹)¹­X}‡(Nh­A­_@7wËa Û÷÷Ð÷ÿ/Næ/o1|u—ƒ,pÏ_ÌŽ¤¿îŽ®j.Cv°‰¶Õ†Ù0] ߇xìZRHºËwúuJAäÊk_‚Û‰±ð*d¿MFßAtU]ÏÓV <ßC¬ç/ò÷à%i,·%õ×Ï Cþ[¾Ot-ûÌ:‚ûµäíï‚M*È )¯¬?Qð:^ü6xÇvÀúŸ€|‡‰n7¡<œ'ÕlvÛ ¼…–²˜‹ü¼ ÝU~7¶ŠÈ¿ÈllÇô>øª‘ÿ—»4³l³w‘¥~žË±ÉónWëSÐ :y ïx…ÊöQŸ”,mn×PJtÒÚ Y´S„ª?7UÕ"¨¸Ž“R!o}·HV©.¹$! ' Ò' v‚êî8N^7áßc |3}’-²ö–d¤rÚ‹–â[CòÜDä¯ƒç ²ùøþIíªM¤`Ч]ÿÞ•ÀïŒë"y´R´4ÇòS _¢¾8‘].üLã×Ýí±E üĽÎäƒ]~zjKk‹ç|l#a}_Á}"kP/[Ðg=ÿ=+\ÒÃRÖHGmh'ÒÝÊâãÁönÔ2n·k&¤þÊ6Ù2ûÂïêºE^ˆOÎ+NæojŸÛbä´ž‡ë·—ƺþ÷i%%^]NÉ ýÎ#OäǽwÁº¸~¢åd‰Uà\-|> ¶TÊJ¢‘>èª#™Á]3G;JIÉô}ÎÿØ*ˆßV ^Ï›cÏ#6ËöÛ·d…, Bw›a[l(r–7wF¯½ !î€éïBúÂøÃ\L> ý™'{å—Ø’DzHO¸O.ë«€´ð{8ZØN˜Ý@ëé‘¡­Õ'2Üþ¾1d‚×lª>ƒQswÛ³Ò¿éåi¿?OìkSasía½mm¦­ôWö3œˆèm[Á†üOûù¾/ÁÞßðǬœTk%‡ÔnÚÑ"žÚ•÷¤\ú_©vvùDöÉAY¯3ì ýî¯Aú×7ˆöFDþÛÈãï4'Ø×5üsVU<®ô•6Ú×ÖÙUêÙ-6Þ®èYP/~ ,9A5–tÆ[BíèÖµòK^l[Nrûé?)sl“®•ã¶ÖÆi]½"EaŽÿÿ·WrbR9*i-*Þ&µ€Öí2 {Â`½ÿ…• ;—–Ò@Þ’)R@VÃÓ#{(ìæùßZ¹¥’4Eþêx|Uü!,Ø_èåz¹^®—ëåz¹^®—ëåz¹^®ÿ…•Â)ÿóçû=+uN"Iüo×,N–<“œú'õ_Ú?Ý1þ¿geEÒØÔø¤¦ä—¶ÒMZéR]t’™[¿‡¨¿³ûËþá+U\lÜH¾’6ò¦ô•Ê¢ÚGË»²Y6q›-i¤>òW‘"RLŠJÝ?Ñù¾ÿneå–‹V&Æ[ËH颣u‚ÖÔ²X:Ê~騯Y'Û£‡´†N—íò½|(¥œ¸+›†Àõ]ÿ“UV²€nEðïHü “š:V/k<ëilˆ¼%ŸH,‰m­Žå³úö‘]Ô)º^jhF] _ú8 ~‡«t—Ò|ÿÂROFÉTy$“µ‡µ´r–Â"Y +f‰þÀ€--°ÌÞµÎVÐêY» fl»Æ×¡Rí…NŸË¿g¥ÇÞù$—4—³2\cÚ bºZ¸•ÅÖ=ìun#´–̱¦6ÉÙöƒU¶±ÖÕ–áƒìM»¥u4% 2þ ' $â{—!–cèqm`}­·õ²6ÖÊâY)î5Aí£½¡ßÙ'¼–ÄúX^4³ØnÚ6›`£í›g5m¹ÆÐ G5±N°Eú;–;÷]YH Ø×6É:Ø[o•,²e´Ë>³ù6ÎFj²@À{ÛêZn¼þ“À.ûñ·3ÃGl¢½ÐMÒD²“ÊI¡`‹õ;—ËôyÈgê/ZËÞ²j–ßšcÕ1V€Ø/m…°ïkaÑÆ:ì%ÐÀ0+N,L³‹¼³¬­ä•GvɪX#n9´ÑT%Ø‚ýŽUV*I2¸Ì»ò±ÆÆêõ,¥EÃî™l‘u±ZÓjØ=â¡ Àu¾þQ[ò{ª-E;5yw}¼b–5 N"¼À»l›ïØa²EvØRh/—ëÝÔöî2E+ßÍ-§]Ó8–‹ ÿ©]_óÔö1H—=Ôµ~ºP÷ñ¾A6_¯Fá;ˆþζÏ~²ÕÄAÂ@¡@ôÀZp =w~ÿe%Û'…·½-ì”íF–ÖVÒâ#s",?Ò*Ø]½£qí+îå³¶àà#ØÀPßÿ¶  ˜=ÿVÚiò@k{dž’¶‚ƒ‡­B J`¢öÒ…p>¬…üù@ê¹zoïmÍðð°v*‹…o×Åúô¼†c]w%cypn–¥'ãµÀ××’ë€ýûk‡†Jñú=‹ÈØf'ì¸Ý¶ËúQªg €y¾ö˲ÀtêbÕÏðúôàÜÇ~ÂAZs×3µ¬¾‹Õx,\€WrâéÛyµ½Íå^oKN.hƒzû[ìŒu#>>³°@tk.UCt>z)êØLò9|®–«CìÄ ÞÀ¾ ‰€ŽdøFVOcýñ‡¬¼«QñDË ™ð”"ÄÅ2òÀ‡ E3<ÿ-^“ìù:¯M¶W èøQ øIr¡¶ŠÁu_—Ñ2ü®†tƒìS?Í¥&¹ÌíðÎ…ô5‘éœ>S×'; òX»ñZuÞHˆ‡ŒåQ#¼¤5a'9¹²,¼ky×í¬•Ä \•® @h­ì0ÝTîwt8q[Œ/ˆï—²ìVÛˆú¨Hœ¨e÷õ"˜÷Xïkd¸þ÷H^ ÿŽôqÁ‡ï©ŠøÒ£ñüAøHarât{/šM.xœÐz’7úžüÇ•Bâ—×`ó®£y,–΢ƒüÑ‘Ê]éÑž«ëß_ét,pMÝ^èvÈ]lŸÍd°€¿æ%-©Oþ_Ï­(ÙÌðè}î÷!7,Ác&ãi¡µK$!þßAÂñجŸ5†Ï½ç‹ï{µÝÑšÐ^% D†ÍFççœžÄ ¢bÿ†‡÷V†ù½rÔâYï2ÿZp¢,·w`ŒõуÛ¹Ýfƒ5.:ÇÊÂA¤âRI'áëµáð5Aôž6… ŸÞ~ÑŸõ©†ááB zxô›ôeàMAŠöp£¶~âYeK æäÞÄ+0#-þPÆòðú q0Yp‘pÞâéëR>d®‚J*±$¤­ ZT{ K¾‡_Ãã¼ææ^Dä·yMDÆ#ž©›Q’÷4À[ªÂ‚æÙ—`}>- b Á‡Šóù·ÑB\rÉD¤>7CF|lým\8~°÷+¬´ÕNg«¾§ >“ò»*™«)±Žü‘í¼ÑÛzC#ÙSMœEA¶N |äÍ×mFü§Á{i:tÖ”ìß…BmHTT¦:Ø úíâßçh`•aWí †ÂJÿW—:$ËÓÍŒL7±u00¿¹îÿWý•¼{u—Þ÷²¡›B d¯¨šÏ•ð׋ÝÕÇþŠÀTü…Žèà=²Aú(Á;rówÚÛŽƒY°ÒX[xV<8ï×â˜ÊH²Y;¢¿¼Ÿdp@wê!nçô nõÏ—rÏ]Ñ_›§'RîjJËf'a@9@ÜàÿmM…¤"îsû>'È îº‰Ôüä§šü/X lÂGnJI‰lá©ô“qðêÆ ssrutPŸ½½wêl¿O7é6¦3ñ„«ú (>Q´KE|\×ìXùm<=©©ïl—ŽçÄ DCö4ÄÊPnîèØD²âi<à6Ù#s°€Ô’J¢KwüöoC´Ð‚\Ý€o}NêZ]‰ü‹ù™­?ér¿ëp÷\]ç’Ș )3¢ƒ»è/\81ëdž1&%"{ÇZû³ì¼³™DÁwøÚçäˆ!Ð!©T’ R ä>I^{ÖGáö oßå§,Ó-:OW#ýßÁø®ï þ”‰L‘†›<ÈŒ·\F7‘±uD?'êgu}„Í\×€×À€Êdƒ^T¯£‹¢TCímÐVÁ_H9¦ïÙqXÝPï5øEðésD¼ël²Í÷?ßÜõ½>ÎûyÿUHHŽ ·KêfDÅÄæ?kÀ\—ô;ü­;긣ú‰*ñøÉF†é|CDühÓaÁøYËc˦ tq?±'`®gQN¬7ßw«;}ïë â|à¸ïhœÇ®9…múxÂí9\ñyòžr‚w^Å+Îñš›p íÕŽbù.æ&hæ°êAG€¬’R’#y}²x2­íµ—ŽÓwõrýC¬îúoD–ó  ë zLØËýXù‚æ‡+¶éa=…\€™ÂKö ¡ó¾öi4åzîE{·4<ðøwÓ¦Qtú<Ðlî¨4xŸ‹¨¿ìûœÍBÂXë&?Ã÷uŸ¥‹È‹È®·ùì¹AרëäœY_PÞ×k>"®¡•Ëx}$;Æ;Ï"ûmtu˜¿w‘ßNƒ7ð„lT#¨ æYë #@né.O‘#;L>‡ÏÔqÉh7f;ÖCüÏÑ‘¾÷«ëã~ØË¾I† ­‰µÒ¦ZÀÇû:¼c½g‰w°óYßýã¿—z]AöhTÈUÀœ`ääš‘`E°'U’R›|^¨næE‹@µ»–ï;OÇssýïVû®Æ«°º› 0—W¿å¹«ÚÙ¢éS)kóñô…¾ïëâÓ^‚ü® Þ:>± ßß‚žºƒ}‚ïi°«ÀFrUªÁwÙ-Mêû²e%{Ç0w•ûnî»Nôýýðx+pÀ÷õM¬LæSq4¾æ³>H>í¸ž)n†Æ9þu=ðCŽAí1/iM·,M¾lãçë ÓuA?#ÐT–JE;A( _ÍEþJK\Ÿûí*÷I¾·ÿTb:؉ö£ƒxÀp ƒ±mQ}Ü—gæá!»Á¼ ¡ëæ:¸npûýÜ7¨¤} ê…ýÞ°F0Í|:,è“@‹ÿ_ÃÿkÂà£û>e±a?ÇÀò]ÄüTðo10û»‰'®·ûmä[€^>õ]o;££¥Úg~íï~ùeΛˆõø¿ë÷{KcÛ rjv|¾¹ÿuì¿ÛÚH­dù“ITHóñÃWú‘|&ØŠß÷×Q¾÷Ï0â{àÌÃÇw“ߢÛf42N{k_ô°Œéïuµ Ÿ¿NÆÛ‹_¬E«ÑÞB?eyáqq]󯛉ö>qpœø6þ»ó1­°öE¾ïnÏþRÀÝOãõ_h?äúLû€ÿ#|§ïõ+¤>Lß 2Lá=_¢‡e~NÂ8?!`9žãæÃìÀë· ƒ™p×y):Yê+(7#æ²La0ðckªÁÞ!”ZrH1øŠ›î·Œo¿´šŠÕfÑ«ìS~0öÿ‘Ûý¬Wµ¹x½ë…;“º`¾ïœ=ßw}_Àç ãNp`+÷–øªy‚g\M±V]WÙüþøPymdùèþ·É5½{q“;ûNÿ|ߪóú=Öÿû»ƒ÷kä_ Þ-'~ÐoÐEo2Á~Ðq•ïx» Owùa ¨ï&Lõ½ÓÜ䨈¾RxC¾‡—=&âªãƒ~mx<)%_J\¢òèµ).`™Á×»ë<¼¿ïk5 _ŒFþè¶{DW3ÐÉBn®/à"?;c‹ïú½AÝ~°­ž=.‚!ƤBr³_\ŒÔÃ1< zÓj½ ^,Ð]Áç—€c®ÇÍA,t/p3ïzxÿ–WÜüоóßaÐÜÍ;ÁmŸØN,|ÆÏ4ßóz:œw¬óÇÌæ{ü»à{¢ ±A¶Ö–Ù2_4P ~/ ’K*Êwd5WçG¢5`á§Dü.$vžGbóÑ’ì?Üw¿_ÖGýý¨ ¼cªü±HÖŽ×G˜èçlóÕÑ"<ò®á÷Lï9KùK ü„°…è ¢=¡| %%zç—,²JÒÁÉk;ì;8.ÆN7É_¼w;OŸJ|Ãï{,œÈÏ(ØÏXmDëÈ 3}vÛF×zïp12ßw½a7ã?øl¹qÇXR’ûCá —Nò¥æ6‡U£ùÞW4‹Ý&Ü‘¬Ù° ¯ùÞ®£å7¾÷¹;"4¹Æàù?/›|çÇé~FžÃý¾ê[¸)sÈ"@ýWà” ùä)}„^SiT òìÿ¬l’P J ­AVÛ#X\[‹DÓÈë m²Ÿ 4KÏäµ1Äõäs“à†#ï­OÜ"g,'>Ö£»Õ|ÊïqU’ë·}]Q7':‹]ôÂ^ ¥´_S[¼º¸]ÅËGa{—¢Í>6zô_C´\æ=¨­£ ð‹L Í >úÿºÒHM‰©1l ½«ñÀæùØKˆ#ÞÖó|Oçyø„;¼È#¹Ë ³aòõÈœym7væÙÓj?Ùu s“ðîð³=ÍB¨­/ðžSÔ‡M-²}$Á®ýþ²âH=I¢mŸ¦‡£Ö£6Ík×ùžGÁ¿ÓùþhßÑv‘Ÿ„´ÌO¸›ç;Œ¨e±l>ïë…”Ëý´äÝþ(Ñ~<)ª¹ â¸wK£Zf3Þ›’øúØŽh» s¿¿¬ºRVNIP:º%µ}'Çid87çãKäÿÚO¿å§_,BÆ-T0§Uì2•"®£Úx¤wóßæyÖw ÙW¢L–Í’ñj,‹ó˽ø° pî½ný‚^ùýûúÉOÞ¥¹°ý‡–+ŇGRû óó¯\vŸèûÚNFÂQX}ØÏ¢€ëm‘3ÔÞ³ol üÿYuLHuà “†²RNâÁà¾;a¿}çÿO©oÝñ¯ù~ÎÓÏ}Gù·Ôu\És?`k7/4…-òÇø‡óÞù~†¢›¼ ¹¥ùÈvÁ7óª£Õ·Fö¦~R׈¥dÔ1­&vOl›±÷Ÿ÷GáóýÑ„ó…ñè`¶ugH®kl,êvÅö;Fâ[r[I¶½ÔÏû<@$µ˜øt"²Z4bÆMu{ï™äQp:x9ÉO?Ý ‘ÉüeA””0l×K³¨Õ=!v]TznEå ü:¹ÞÅûÀ¾Ä‚»Öi±Ç¼µøqÛâ®ï¢r“~Ý9ðW|·ô=êp=:Ÿr’ÏS×w¶6ƒŽÑÓ üê4áf UÓi!·4)öÏ(%¨ÍÝ|gõð?·rh¿O8â]"Ö#áDFë·ä–HHl¯Ù1"cŸÛMÕpÆOK˜áç ]&¦ä/V·qVÿªe¥´TÈí/Aœ\jQdIfËÉf ìœø¾ïÎvF4wvó2mÇŽãÕ‘a½4 –O»ÙèçÀþ„ÔŠÎáj'ñ„³ÄŠø ø&y 'Ú2’׃e•œ²Gšò-3áÉÉáûaÛ¼Ötö ¼õ1Ìo ÈvhΊÜÑ,¹ßœ¼àr6˜ÛâØQb'ŒØqS ¥tÖÅ–Z[ßY¾›oBo5•2Ô“´ì,HuNOh!só|·Ã!oâ]äŸÂïdøt¿¬ ¨~ ðSƒ–éC´´ÿÈÄ«Ћúi¯©¬ƒÝµë`æB©B{_ÿãj$¥‰|A ä7gï< ánäÝߟG†dæÁb>?y-7zÉ ¯uÓ^Çÿùq3î7¡…\V8å÷MßÕHÜ`©#ôáýÿuµ”Bò¹ŒÅ»[ÃT YlÌU/?Ãl6ãÅ‘ÐËY"âþNÖwÓÝüwlc4ìp4~°Äïš{¬ÙA»èìk þç/Î"¢®Ê—!ý¿®á¾Óç|yªmýu®K‘Ã1–¬`Ú ";òžéÎPÏ—$òó#}{¤[ŽôÓüt˜%~6VB«ó/Š¿/° Öïïj«µþÊW€¹—µ%»((à&œD’jð–JðוÜ…<÷œüwF3RÍ$± àEøožw;>ÖÃ÷ö𾂠}{jŸäæ²{fÃÐ_&mƒ~Æÿ¿_M%3øÔ@Zêtê·¿µ#žÉÜ>ž’X3UïJÐ ò?%ÓÇ·ªÄw¿kb¯?ïuA ãçÉÐMCjÝ€¿¤5•å%©!=Cfæßß^•%‡¼.1¥»¾A¥Z9ª‚p.ãW³rxÅE¿ ø¬º+⌺¾²;ö÷ÔÝ߯.vùåÈøE‘=?zÌM…¼˜¿ìi׿oå<|׺’þ[Û*cÝËäþJäÅ\Ô<—ÕÍ|[ö°QÜJZ^žÏeqɘîo™['°"¿õ¶¡ö…ýˆÎºköŸe……Àé|:›ªÍ­;¦¥‘ð!þÝ #á_ÛWEÎX»´¿úý‘±ƒ*01R½Ôñ{ÛZ>×VWKxÐ÷ºü=+¹¤•øÒKbØëƒ/Gåc`á¨Ö \ÉïàéEñ¥ ]>â»!pDÏi6ë‹V–Ù|ØN<;M%YCÚH)*¾7ƒ-Ôß¹’KJ)&=t•K}"º,‘ЄlÐÕf"alø_Woßçxy[Oµ™½Ëí˜ ;.kÒqz†Ê1¹â_å¤BèL-³[.ÈtP.£¦Q7 Àÿ7ð3ÂgKÉ{2Z:6ó;sÈÑ~¹^®—ëåz¹^®—ëåz¹^®—ëåz¹þØ•Q’K~B³«ã¹’Ijªý\Ráß®Ûy Õ%-pyIÁ¿yƒÞÍ⟹Â$±Ä‘â’ i³I ž)¨s¥›d‘¦RJšK1)-5¤!:(Åý%Mdõ“ ³I]þÍ'£äUÝ-ˤžl×ïÿuY'÷åMé'?Êh5’*RBÒ¡ƒ…é¯$žU2I|€Ð&šÐ²Øí,ýe8'Ñ3ºZ+èBª)u«4“"’Còó‰4!q}×?¾ÒÕ©$»T$æÛË&é®Wµˆ¥² ÕX˜v‘Ž`Bw}%0Ô¾´w,®ÝB´¥ž•$*±’ L­¾¿wBò,’’Jky(õf-,­UµŽÖÍ>¶ö–M JB ³švÆ&YikŠVÊZ›oÙl”F×Òä„”R&¤vºÿÞ•™ož<Ë+§å­hÛì¤íµžþ gûÌÞö]°GJ?«XªoX5ë`#m§°}6Û@[k+õ'b&*ZÈ⻾þï•ëW—Üò‘ÔÐæH3ÊÙz‹a¹­Ž]Ô>ÖÏ&pS=kÙùˆ‰Bö‰}`Çí²¶®6Æ®Ù3+(d­åC° «t°…úÝ+ èíf=Ÿ”1ú£­³·¬†}ˆíg[K`ùì[»`ñð}S"a´5²…ö¹÷÷öØ9^™dÀz»‚/äԱ䌆 hú?IN,OÄ7ÁoïŠëïü¹½g¯Xv{×Û¬ŸÒR[_ûΚY~ð ˆ×)ÖǾ±Éï¨ @þm#Û–Ù>ÐZä–ŠóÁùˆú|àv4}Û†bõ&VÀbZ"knðëhd¾„ö#’W³Ê¶CGk»d#ÀŸ‰æØ}>ö_ŒW ³T‡vÔhˆØ©Ãñªú!^4?ù¬ŠT–èšÛ&âã=±;¬\ Mô³zDyuA¨íI#‰üŽòDb>'Î›ÂæòoFP.XË"Ãîk{µìg½¥´1Pl,m ÐÖcM`a†ß‚yÈoÙèqžÔ•w¬²Äc¶Õµì.™0iˆ]ÿ–¾—QÎÉ›°·OñáqH–ÝâÛ}ì¯s¾¯Ñ@ Ë úÝW³Hü[†˜€TÇOª‚îïºÈžÎÊãóS`@×áDï 7Ì1ð§õöÔZÛ{h;´Ž%—„Ôzƒô0® ¾;?n ®Å·çúD_èM ȃXˆì»ÁoÖ¨H: I«ÀR ;æ)³óÙñÔ ÁÄšxICâaø0 m "zhc2Mè¬ÒF^.%ÉðÞ&HqÁfò­G€ß5ÈiîºýW=ËwÇ}ì¯uw]ðáyg[²]Iü£ü¨<¸7ßï‹íßã~C^iAµ´DÈHè†/tƒ_§¶Øÿ¶œ76§Î[Lü~`¯"‘Ãýáܯ –»n˜q,:HðHÕ^øýíá®w/ˆßi»-]x_É ;®lól–} KœòÍÄ?cûûfWgáBŸñéDšÌ 3ÅñÅRd}µ±|×dvMSaÉpü P†è†ÅŸêißýüŽFÃÊÐM{^wL &âs1©†¢ùÏ Âöó×"ÿ0£ù?r`>ÏŽ´EäÊüv.˜(º¿»•ÉÏ-ý€Øoï§uÝ]¿Ò(dwµKzFOù+Á÷ñÜy-lO4q?”wsž2ûnÞõü¤˜Ç3ÈŒŸ ³à-,U$ :á1=É‹¿ ö¢£Ë°ÐÈaÜÒITbö‘f'‡m©ê®ëYݯ'ô‚ï\{HïºJGÏaÿôvX3¢£Zø@E¤Íïù˜<F,$âV’ìäW;‹¦v¡¯-hò´æÆûKÀÁ{~öÜ×ÎúóèÁ\µeÜ'žŸØ£æ¦›ìÅêÑAvù“‰‚Á:VG"Ûh?Ñá”ïç¿I‡"›À~Þ×}’Û–ã®÷Áj#–vaÎã3Ljþè! Ö.Á-ÜFÛbû ^#ÐʾÐR#Èò7”¾’šÈL>÷¶·ý<Ÿ)Ä}vÛÊ÷^Ãm¨.ÔIȶª`•ïf¾×g‚ÁÍB:[*ÚZ¼}6Þ±{«¹>X§}­° é ¶Û .\¤x¢%­9Y`·]9·ËûAŸ–zªyà%ïÀI†ÁeÂl¥Ö†å^ã\ïâ)¾ëëv4±¹]Wè›úÏ Õ>ËîÉieG°÷2ßùSÍõ·¼Âí&¾² y )­5õ[ž'¥RÌ`¹À¾ À/òzå'Ù¤©6÷•kT¹¨¹î/›5©¹.þÁø¹:Šßë=#ZIü»St-þð!±ŸEËj {ú»Ž§Çyí4òŸõ•Ó>¢ç÷¶Â>Ãò’-Âý|Ð`Àç¶Ü’jû Ë_JöËC¾çbµ¬•ÂþQì!¨µ)–êdE6˜ÅÍÍ3pøpÖgÇeHÚ] kW¼à)Þ±}ñ=±Ü„ÈC äŽßú¡ïçç*¸šLYÍZÂÿÒ“:Xªà`ËSJÈ<‰i§|_Ò0˜ËzbÝõîwqüŠ-DcðöH·ÀO€Yï»[:žœŒŒ“wÞ£.ÚÀ§vòÜÏž+ÅûïòÜ!4wK³x~¸Úwu¯À˜²VÉêØ–è› |ÙÜNl[#’ý¢®"p“*öü–§"³ÓÂJðïºX…yó]NÅx†g§"ÝZPï*q áò¯EO¿À¬ XD2Ìþ(ÄŠY¨”@©lñ%–$–6XÚM-ÛW»~vwøŽ[|7Ó ÄødŽä®#êp˜ÀB¼z3º„{ÉŽ­¨ynú?Gyìæ^á÷nr߬¿…¿—–:! >‘j¸<8ÒúÀK‡Àբɤ¬äÁb×ùÞKùí*œäÔ53ñüñÚW¿ÖqȾÜw¿tý½`ÕUüŒCÒA°ÃèÔ:Éa / ökåxÅwÂÝü÷ˆ«ºö¬'ìx 洞>·“pÏà¯TRAjó-Ÿc­;xhbß×ÒuòœŽô±ÿ,¿ž(ø =,Åþ›xe³v!#¸‰!nÊŸÙ*$Ýæ»ÝíçõØý×>Ð;ð”ehïªV²Á6ËöZ?¢&œ¹”U‰³ éá€éý„ë[ZÓ\ŲŸ§Ÿj?2ü |`žï\>´Â3‚-<:¢É;xoAssW{®s‚×ö¢—9 è¤v½ÓÜ„ˆeèv/ˆX†1ÓFÙûÑÆk°¹Ï¯+œ øŽ$§jKe™l™Ÿp0 ëvÇó‡ƒ|#Û±½ hÁM8pó=–ûéH{ÑÀB}ŸOÆ´mȼ›»9x›½W¡‹ÍDÁs|ê1Þ1ÛwÒ;HOìaéƒ>ûåוQÒHiŒmž’6 Çßó"vŸìûÚðÓŸ¦ù°Ùç#ÛJ^»†TMµ èöŒø™@Öw3þNzu€ÜñÓð¼~vöMt9 í¸IÊYa‰Ûñ»ÐX¹¥²ü(Q±ÒAß³ôè&í‚ûM@Þðû‘È?ÇOÁ]Æm¥ï{‹÷å3êøì>Ú3½3T=®â;:º£i‘,7œ§ñž-mV7c"†õD}$TzàæG5䱺™7nÂ¥ëXœ›ëú4œX˜ †Mòm7ù)?KAÿiðÿƒTµ@À‚æº@Ïô¯¸9¢.ž ñ~wÄ ù¿ù>¼ò„ºÝdM©˜{†Ì¾P·GµUP"Ð/>Üd¡¾j±ÌuoŒÃk]oÓá:_X‡Ý„—¥~*â/ e)Xýj^‰»¹'§‰¢­zÎOS:Îm…>&?~ö¿·vܧ1ñ‘†N7°B°ª’K°–ÿ|„ È[óü ÐéXÜM¸pžVÛb'ˆñ3döžVË&áÃ}¦˜íç{Âú[øüm¬íÎÅ„÷¼G œ—hˆ`ÑFÇ O>û÷UD²ÃCÝQ7÷y –úxM_} LœmÝ<7l‘ïî½–Zæ¢Æ³Wa³®X¸¹ÉKýñ2‡ ÀùÃè)öΫ~Â½Ôø}ËçwPýçIèÈßÊïôž—ÆFò0{<Æöîxç|2ßhŸ&ãÉ®¯÷¼?2|'’¥@¯ØMLÍ4Zá…Ÿ|â¦}%léK‘òùîÈa¼7³•ƒù°v mÚê†7AJK‰Œ´5¬?1—8ž‚Ì_àÕS~&ö‚ä3|W÷ÙDÅ+–IF5³MSØ!ß9®m$RvÀÎøÚg»ï~ßžZ¿–5¡â->ÚÚû¶ÈÆé{ìɧÿq¥ôSéçØðž~‹ÔßÃÿ:Áãý‹ð퉠Ÿ«„ÝD£ðŠ“`dZßÍù´&±[šÊÎ’×Vñú:´·Ÿ÷þèçd\×bÖ ‹âvCj[a§ì²ÎCß¡Áþ~]©©‚ŠÈsIŠgšmÀ›Ç Á\ßu4u ~½g¾Ë¸¿ÉÆbÛ³ª~ÚwôœzFø×9sçÏ–¡‡Yü¬ Gº8HŠå Ù)]gì0^S>„¼ß-ÇsÊ8äwG¯ù#™'ÁmµXm:6w³>î`ÏŇû9hý§(ÄuDËEΈn»xï*„ÐCXçì 3€oXÛcßÙvÃz¢ñÐZY$…””ýT¦n¿Ë1°ÏÍ®O W¿ê§Ýó¢Â × 3É…“°òfž{ÍnñiÈéñí Ÿ|qM%¦"ˆ*žÄN£ÄÈþ:Ð$X"Öó~ÿyeÀ¤Šö÷ó_«ÛÉáQ [âñï9<hï¸ítDx.1ðÉܾ¸ä¹H¶ù÷j4Þ ¦w‡êà~r‚ßiÉ‘eÑÀ,ë`o[”Êýÿ¾RÁƒ¯H1òuR"5µŸÙ®cë-àßm˜¡;¯=Ç<‹? Ê%Åç]§Û{Ôy;` Óñö¨dºpñ¢Ÿ¡½”H:¤q­5y “­´ò6WƒÌ믭lÔ#]% ˜–Ø.Ùù-)špS\„‘ñîcÏúØ—–p˜ù#/Ûñ’©þYrò\*sÓÎùiYSñ˜´äÀnÔýïƒå5Øç|ÿú —’Yºj=xZes³ÊóÚ]¾û9u3>ÜüšLÔy{Á´ÙÄG1XÝ#dLƒ–bÙNq Öwǃ\Gü  a$ðb?x° F|•J©²M¶sdÁ%ü©—}Õ&¼)§´ˆ…¥¹~çqm | ²ëSƒó÷ˆæ±ä‡L0ùìvXOpguîÁ Ök|?-ö/ÚU&^ŽêmŸ9žh›dm±-kHîÿu…Ý— ÚD›§nRë^î?5µpJâÜíb¹I8‰=“#c$u3-’·Ô7Œ‚Ü ñ›¸T­ÐZ"¾:¯fÿNÚ»VM> ]Okµò1°J"áíÈ/ÈònÀm¸ñ=´Pž¸ˆDµ{U3“'#øÞØÉÑÒkhf¾¯‘n`íÛ~o\)k †$%ò3 »Û!8Ä6ʤîÿþ¡–úØgÒçÀÚ»ô.ü>-˜~ |po/Œ¦È‚Õ`Ûh¶ÜsÃid‡¾ê¦5Aü¬DÌCt±ÅgþȰþŒÁñÿ±šKª¡,rHaoÇoÓR»·BÆËðØºævJ¹sÁ¯!]q¼¿>ÒNz¶ëήí. )çÿ}áî¸×7V9pÒ2“÷ÚK•` øÿ\Í$(ð¡tÒòV…¯íš`Éû‡;â‡áƒîÈÇ;øH9^OnÀ¾ñxÅ*äßÇû\ïÿºöþn ©öãÛך¿üV°…û]+v^M¶H|ì^Èmú¹k>² M {änù‹pëiMyö ,wÙ~»?ò}M £VdüOˆüÏð’ZKúKhïþ=+ä’b2Of©;K[…èOé˜ < ]Û P#£=×î eðý¨Ÿz9- ö³ã/á6ݾ'^2X+]$MChÞßï[…Áªƒ’ÚÚZir|VëMÂÊä¹îö¡mC7nîÝ}ùD*‡XÅû{VfI&Gå‰6B¢bä±:0øÄ`ÚGÈÖ Ö‘Šf€³~xÈÛ°E7Ý3 ºè~¾D[u­­–׃X>oÈ_ùû×W)#_É.uWw¥ÃÚ5ÑD-$ëa]ðïXdïm¹-F/}¬Q:°*¿_á]‡ôŠ,‘‰ROª‡Ô±ž¿ge Š“ Æk>¾\¿•õ¯'û±)‰‡!ø€C¹ÒöX«bý·m$^ÿž šÊ‰ô¡ÊößJ#ù¢™$ô3ác“×¾µGX½¹c›ÃÉí“l²×677Ú] 9Í6ê,Ý¥òç_©%蕆üuUîk[o½ˆù²Öû÷ÀÏ?²àá}­AXÌó¯ÁtÒJŽ éÿ²2“[H^m`ë´Ž]ÇÇçØ`+¸`³lÚxŸfq_Øs¢¦NÐ÷uÿñ+·Šò¾Ì¶ÌvÔN[ôÀû–<‡å#ZMòÿ]Yñ‚·¤” ¡øÁL+¨c;u–å&´ƒõZú×]iAÃÒ tÖ·ì¤l.Ët®Û ¥fìçúg/‡ldªdÓ32TNÈ›…j ±ö—äì/÷¿²â‘J9˜›YTÆÊ ™ Ù¨^®—ëåz¹^®—ëåz¹^®þú?GSÂ`pymvpa2-2.6.4/mvpa2/data/fslev3.txt000066400000000000000000000000241323370031300170110ustar00rootroot000000000000006 9 1 21 9 1 35 9 1 pymvpa2-2.6.4/mvpa2/data/glm.mat000066400000000000000000002115121323370031300163360ustar00rootroot00000000000000/NumWaves 6 /NumPoints 850 /PPheights 4.768891e-02 2.866777e-02 4.764881e-02 2.866767e-02 4.764880e-02 2.866777e-02 /Matrix 2.562171e-03 -1.721225e-04 -8.872181e-03 -2.923608e-04 -1.776259e-02 -1.727261e-05 2.377229e-03 -1.788187e-04 -9.176419e-03 -2.728257e-04 -1.774790e-02 1.400818e-03 2.178788e-03 -1.900224e-04 -9.441924e-03 -2.436636e-04 -1.489706e-02 1.172284e-02 1.971325e-03 -1.977632e-04 -9.688133e-03 -2.314902e-04 5.755679e-03 1.479416e-02 1.757284e-03 -2.036958e-04 -9.929564e-03 -2.266792e-04 1.470575e-02 1.088244e-02 1.537833e-03 -2.087608e-04 -1.016642e-02 -2.201175e-04 2.751623e-02 4.776432e-03 1.313536e-03 -2.123761e-04 -1.039499e-02 1.203611e-03 2.422735e-02 -8.689240e-03 1.086725e-03 -2.091418e-04 -7.784640e-03 1.152322e-02 1.011340e-02 -1.339682e-02 8.687668e-04 -2.056701e-04 1.262891e-02 1.314107e-02 -2.560964e-03 -1.023120e-02 6.487744e-04 -2.115689e-04 1.849760e-02 3.151186e-04 -1.031704e-02 -5.839726e-03 4.188923e-04 -2.212083e-04 1.326575e-02 2.899325e-03 -1.419214e-02 -2.807380e-03 1.794894e-04 -2.293916e-04 2.429705e-02 5.311016e-03 -1.587538e-02 -1.196692e-03 -6.689668e-05 -2.347673e-04 2.390082e-02 -5.877818e-03 -1.652557e-02 -4.517382e-04 -3.171924e-04 -2.351230e-04 1.255401e-02 -1.121339e-02 -1.671753e-02 1.285103e-03 -5.644334e-04 -2.347578e-04 1.474043e-03 -9.065560e-03 -1.389364e-02 1.172699e-02 -8.141406e-04 -2.390537e-04 -5.589393e-03 -5.363340e-03 6.792246e-03 1.342277e-02 -1.070116e-03 -2.449715e-04 -9.272751e-03 -2.694655e-03 1.296422e-02 6.174622e-04 -1.331806e-03 -2.498087e-04 -1.100290e-02 -1.231899e-03 8.026499e-03 3.184420e-03 -1.597606e-03 -2.532193e-04 -1.176267e-02 -5.253269e-04 1.934277e-02 5.604940e-03 -1.866270e-03 -2.556168e-04 -1.208051e-02 -2.254440e-04 1.922230e-02 -5.593469e-03 -2.137019e-03 -2.573692e-04 -1.224087e-02 1.305589e-03 8.141999e-03 -1.095625e-02 -2.409342e-03 -2.586667e-04 -9.496827e-03 1.167539e-02 -2.680736e-03 -8.835244e-03 -2.682843e-03 -2.595894e-04 1.108546e-02 1.330832e-02 -9.496270e-03 -5.153447e-03 -2.957169e-03 -2.601622e-04 1.711819e-02 -9.355751e-04 -1.294108e-02 -1.086217e-03 -3.231972e-03 -2.603893e-04 9.219386e-03 -8.662990e-03 -1.161492e-02 1.067455e-02 -3.506910e-03 -2.602686e-04 -2.114829e-04 -7.861194e-03 8.459010e-03 1.300679e-02 -3.781630e-03 -2.597940e-04 -6.517151e-03 -4.802104e-03 1.440747e-02 4.669441e-04 -4.055775e-03 -2.589600e-04 -9.836834e-03 -2.405872e-03 9.389192e-03 3.137649e-03 -4.328985e-03 -2.577613e-04 -1.135372e-02 3.575334e-04 2.068961e-02 5.608902e-03 -4.600890e-03 -2.561951e-04 -9.148274e-03 1.131144e-02 2.059008e-02 -5.572845e-03 -4.871122e-03 -2.542577e-04 1.124510e-02 1.319117e-02 9.527222e-03 -1.093891e-02 -5.139308e-03 -2.519438e-04 1.723262e-02 4.649490e-04 -1.281175e-03 -8.820785e-03 -5.405066e-03 -2.492524e-04 1.218020e-02 3.095896e-03 -8.085073e-03 -5.141599e-03 -5.668022e-03 -2.462825e-04 2.342400e-02 5.520547e-03 -1.152079e-02 -2.490803e-03 -5.927991e-03 1.170126e-03 2.323336e-02 -5.675401e-03 -1.301588e-02 -1.044868e-03 -3.358278e-03 1.148084e-02 1.208505e-02 -1.101830e-02 -1.355658e-02 -3.535603e-04 1.700466e-02 1.309377e-02 1.196245e-03 -8.878074e-03 -1.366791e-02 1.347423e-03 2.281190e-02 -1.154631e-03 -5.683680e-03 -5.183732e-03 -1.080642e-02 1.176569e-02 1.468137e-02 -8.888869e-03 -9.191437e-03 -2.523512e-03 9.912758e-03 1.345671e-02 5.015479e-03 -8.092161e-03 -1.075481e-02 -1.071492e-03 1.611275e-02 -7.689194e-04 -1.527183e-03 -5.036661e-03 -1.136026e-02 1.038071e-03 8.367628e-03 -8.521278e-03 -5.085828e-03 -2.643236e-03 -8.705184e-03 1.163629e-02 -9.208137e-04 -7.744680e-03 -6.843680e-03 -1.295961e-03 1.188874e-02 1.476420e-02 -7.093213e-03 -4.704843e-03 -7.708784e-03 -6.513394e-04 2.082249e-02 1.087462e-02 -1.028901e-02 -2.324608e-03 -8.177889e-03 1.036599e-03 3.364716e-02 4.764338e-03 -1.169422e-02 -9.890979e-04 -5.667384e-03 1.145685e-02 3.037457e-02 -8.694060e-03 -1.221603e-02 -3.540199e-04 1.470545e-02 1.312601e-02 1.627881e-02 -1.337882e-02 -1.234999e-02 -8.824738e-05 2.056596e-02 -1.099023e-03 3.621077e-03 -1.019657e-02 -1.233998e-02 1.430510e-03 1.249209e-02 -8.831693e-03 -4.124236e-03 -5.803779e-03 -9.436445e-03 1.179441e-02 2.882629e-03 -8.034951e-03 -8.004970e-03 -2.777335e-03 1.129526e-02 1.344989e-02 -3.603263e-03 -4.979686e-03 -9.701698e-03 -1.168668e-03 1.746617e-02 6.175978e-04 -7.105918e-03 -2.586062e-03 -1.036698e-02 -4.244148e-04 1.252032e-02 3.177260e-03 -8.806571e-03 -1.236799e-03 -1.057594e-02 -1.040688e-04 2.382095e-02 5.588856e-03 -9.611677e-03 -5.894512e-04 -1.060076e-02 2.096615e-05 2.367454e-02 -5.618911e-03 -1.001810e-02 1.100991e-03 -1.055968e-02 7.257775e-05 1.255994e-02 -1.098899e-02 -7.442551e-03 1.152452e-02 -1.048123e-02 8.823914e-05 1.696747e-03 -8.873888e-03 1.299956e-02 1.319690e-02 -1.040874e-02 8.308086e-05 -5.164823e-03 -5.197792e-03 1.893159e-02 -1.026794e-03 -1.034053e-02 7.972613e-05 -8.661397e-03 -2.550342e-03 1.092973e-02 -7.344080e-03 -1.027467e-02 7.721788e-05 -1.022072e-02 -1.107869e-03 4.222593e-03 3.763008e-03 -1.021140e-02 7.281163e-05 -1.082907e-02 -4.199992e-04 1.843106e-02 8.430558e-03 -1.015429e-02 6.736478e-05 -1.101137e-02 -1.362514e-04 2.106717e-02 -3.426017e-03 -1.010185e-02 1.477494e-03 -1.105184e-02 -3.340187e-05 1.156400e-02 -9.816516e-03 -7.224417e-03 1.178244e-02 -1.102835e-02 1.666440e-05 1.413662e-03 -8.381856e-03 1.344111e-02 1.338458e-02 -1.096874e-02 3.281450e-05 -5.226014e-03 -3.646378e-03 1.954573e-02 -8.717162e-04 -1.091308e-02 2.893944e-05 -5.909201e-03 9.160633e-03 1.170544e-02 -8.611943e-03 -1.086134e-02 2.510463e-05 1.306475e-02 1.217117e-02 2.320912e-03 -7.822255e-03 -1.081346e-02 2.132303e-05 1.841352e-02 -1.415036e-03 -3.950407e-03 -4.776801e-03 -1.076938e-02 1.431517e-03 1.021813e-02 -8.878554e-03 -7.250985e-03 -2.394799e-03 -7.901198e-03 1.174012e-02 6.351659e-04 -7.973994e-03 -8.761961e-03 -1.057258e-03 1.275406e-02 1.337469e-02 -5.756598e-03 -4.866539e-03 -9.389132e-03 -4.213184e-04 1.884795e-02 -8.719991e-04 -9.128323e-03 -1.042578e-03 -9.628926e-03 -1.559452e-04 1.099702e-02 -8.624558e-03 -7.874097e-03 1.061128e-02 -9.725616e-03 -5.183123e-05 1.602303e-03 -7.849134e-03 1.206261e-02 1.286503e-02 -9.757289e-03 -7.371460e-07 -4.678029e-03 -4.810920e-03 1.783577e-02 -1.115978e-03 -9.751827e-03 1.639011e-05 -7.983119e-03 -2.430707e-03 9.813774e-03 -8.747415e-03 -9.749238e-03 1.426513e-03 -9.496078e-03 -1.095063e-03 3.194597e-04 -7.900250e-03 -6.923529e-03 1.172889e-02 -1.012670e-02 -4.607328e-04 -6.013652e-03 -4.826994e-03 1.368694e-02 1.332911e-02 -1.036967e-02 1.218848e-03 -9.365085e-03 -2.436409e-03 1.973596e-02 -9.262151e-04 -7.640621e-03 1.163773e-02 -1.091895e-02 -1.092891e-03 1.184249e-02 -8.663561e-03 1.294843e-02 1.332991e-02 -1.158424e-02 -4.529236e-04 2.408061e-03 -7.870326e-03 1.901856e-02 -8.957175e-04 -1.185855e-02 1.229757e-03 -3.909408e-03 -4.819591e-03 1.114359e-02 -8.648833e-03 -9.158635e-03 1.164552e-02 -7.249371e-03 -2.431643e-03 1.724053e-03 -7.873809e-03 1.140012e-02 1.330983e-02 -8.794649e-03 -1.088736e-03 -4.581066e-03 -3.421173e-03 1.744045e-02 -9.239525e-04 -9.450512e-03 -4.486574e-04 -5.082080e-03 9.272661e-03 9.535111e-03 -8.666012e-03 -9.716359e-03 -1.813060e-04 1.400152e-02 1.224927e-02 8.678737e-05 -7.876277e-03 -9.837815e-03 -7.454870e-05 1.941360e-02 -1.356625e-03 -6.244501e-03 -3.413121e-03 -9.890282e-03 -2.191757e-05 1.127404e-02 -8.838241e-03 -6.770145e-03 9.282153e-03 -9.906533e-03 -5.395281e-06 1.739998e-03 -7.952520e-03 1.228881e-02 1.223259e-02 -9.925974e-03 -7.167052e-06 -4.608073e-03 -4.856433e-03 1.767498e-02 -1.382234e-03 -9.945790e-03 -6.808214e-06 -7.936598e-03 -2.450571e-03 9.507375e-03 -8.855412e-03 -9.964535e-03 1.408413e-03 -9.465948e-03 -1.108289e-03 -5.749778e-05 -7.959948e-03 -7.153930e-03 1.171771e-02 -1.010669e-02 -4.696125e-04 -6.439663e-03 -4.859053e-03 1.344904e-02 1.473831e-02 -1.035734e-02 -2.003287e-04 -9.806406e-03 -2.454405e-03 2.232369e-02 1.079477e-02 -1.045899e-02 -9.121991e-05 -1.138121e-02 -1.116129e-03 3.504943e-02 4.665002e-03 -1.049121e-02 -3.644334e-05 -1.207230e-02 -4.807075e-04 3.167865e-02 -8.792144e-03 -1.048324e-02 -1.602480e-05 -1.237665e-02 -2.159048e-04 1.748636e-02 -1.205968e-02 -1.047464e-02 -1.483402e-05 -1.253832e-02 -1.120681e-04 7.564765e-03 1.433789e-03 -1.046431e-02 -1.264410e-05 -1.263509e-02 -6.102344e-05 2.034841e-02 7.431190e-03 -1.045135e-02 1.404424e-03 -1.269472e-02 -4.384951e-05 2.243580e-02 -3.797084e-03 -7.606904e-03 1.172191e-02 -1.275718e-02 -4.658366e-05 1.276521e-02 -9.923875e-03 1.303505e-02 1.336565e-02 -1.282231e-02 -4.913822e-05 2.588292e-03 -8.382477e-03 1.912358e-02 5.396895e-04 -1.288992e-02 -5.147694e-05 -4.010785e-03 -5.006625e-03 1.410081e-02 3.104848e-03 -1.295977e-02 -5.356822e-05 -7.443321e-03 -1.074829e-03 2.533021e-02 5.523464e-03 -1.303160e-02 -5.538046e-05 -6.182613e-03 1.063240e-02 2.512107e-02 -5.677966e-03 -1.310511e-02 -5.688023e-05 1.380071e-02 1.289969e-02 1.394805e-02 -1.104333e-02 -1.317998e-02 -5.803875e-05 1.961817e-02 -1.084195e-03 3.031682e-03 -8.921797e-03 -1.325586e-02 1.355080e-03 1.164016e-02 -8.712679e-03 -3.875331e-03 -5.237482e-03 -1.050454e-02 1.166314e-02 2.191805e-03 -7.865354e-03 -7.408552e-03 -2.581202e-03 1.003729e-02 1.468782e-02 -4.102026e-03 -4.796878e-03 -8.995578e-03 -1.129875e-03 1.884975e-02 1.074694e-02 -7.420415e-03 -2.410009e-03 -9.622808e-03 -4.332631e-04 3.151488e-02 4.619436e-03 -8.944188e-03 -1.068080e-03 -9.815292e-03 -1.406681e-04 2.807959e-02 -8.842842e-03 -9.580408e-03 -4.285824e-04 -9.856927e-03 1.386427e-03 1.381819e-02 -1.353432e-02 -9.825893e-03 -1.598342e-04 -6.995132e-03 1.175901e-02 9.917749e-04 -1.035643e-02 -9.924889e-03 -5.232795e-05 1.370237e-02 1.342095e-02 -6.921213e-03 -5.962985e-03 -9.955471e-03 2.318062e-06 1.984454e-02 -8.198201e-04 -1.096527e-02 -2.932621e-03 -9.945208e-03 2.440381e-05 1.204760e-02 -7.152748e-03 -1.281985e-02 -1.318735e-03 -9.931607e-03 2.656904e-05 5.540300e-03 3.939116e-03 -1.363721e-02 8.452210e-04 -9.916999e-03 2.776235e-05 1.994077e-02 8.619214e-03 -1.116434e-02 1.148053e-02 -9.900996e-03 2.775301e-05 2.276339e-02 -3.238222e-03 9.290335e-03 1.322473e-02 -9.886389e-03 2.553255e-05 1.344305e-02 -9.646135e-03 1.526334e-02 4.484043e-04 -9.874810e-03 2.249933e-05 3.469441e-03 -8.228604e-03 1.016879e-02 3.043205e-03 -9.866256e-03 1.835998e-05 -2.994869e-03 -4.916772e-03 2.132848e-02 6.863051e-03 -9.862946e-03 1.429618e-05 -6.331224e-03 -2.421611e-03 2.388002e-02 5.974708e-03 -9.862517e-03 1.115040e-05 -7.798198e-03 -1.023537e-03 3.326448e-02 2.239933e-03 -9.865498e-03 9.089641e-06 -8.335321e-03 1.049811e-03 2.835185e-02 -9.872274e-03 -9.869194e-03 9.119164e-06 -5.654470e-03 1.163105e-02 1.350908e-02 -1.391562e-02 -9.872120e-03 8.283993e-06 1.496525e-02 1.337714e-02 5.012548e-04 -1.046169e-02 -9.877489e-03 1.420505e-03 2.109493e-02 -8.132074e-04 -7.441126e-03 -5.957906e-03 -7.055978e-03 1.172816e-02 1.332107e-02 -8.544582e-03 -1.144593e-02 -2.870689e-03 1.355709e-02 1.333406e-02 4.004345e-03 -7.767989e-03 -1.321618e-02 -1.231897e-03 1.961326e-02 -9.184809e-04 -2.196744e-03 -4.728391e-03 -1.394442e-02 -4.779801e-04 1.172797e-02 -7.243045e-03 -5.421237e-03 -2.346835e-03 -1.420724e-02 -1.484075e-04 5.126266e-03 3.855374e-03 -6.852435e-03 -1.009236e-03 -1.427649e-02 -1.226178e-05 1.943048e-02 8.508917e-03 -7.398721e-03 -3.735261e-04 -1.426706e-02 5.131598e-05 2.215174e-02 -3.357731e-03 -7.557350e-03 -1.082403e-04 -1.420915e-02 1.492596e-03 1.272568e-02 -9.752266e-03 -7.572731e-03 -4.109058e-06 -1.131713e-02 1.180730e-02 2.647403e-03 -8.316971e-03 -7.523065e-03 4.665330e-05 9.371855e-03 1.483827e-02 -3.919242e-03 -4.995024e-03 -7.437026e-03 6.129364e-05 1.833767e-02 1.090264e-02 -7.360906e-03 -2.500341e-03 -7.358261e-03 5.500916e-05 3.116055e-02 4.783637e-03 -8.942003e-03 3.052303e-04 -7.284955e-03 5.062850e-05 2.789571e-02 -8.667515e-03 -6.774278e-03 1.126711e-02 -7.215106e-03 4.730613e-05 1.381441e-02 -1.335199e-02 1.357080e-02 1.313828e-02 -7.148592e-03 4.394567e-05 1.172547e-03 -8.756733e-03 1.950342e-02 -1.007825e-03 -7.085603e-03 4.154621e-05 -3.725493e-03 5.947538e-03 1.156286e-02 -8.690452e-03 -7.024021e-03 3.864964e-05 1.303838e-02 1.059056e-02 2.121428e-03 -7.878932e-03 -6.966955e-03 3.291796e-05 1.743600e-02 -2.044845e-03 -4.206561e-03 -4.830712e-03 -6.916956e-03 2.578544e-05 8.931579e-03 -7.616443e-03 -7.558576e-03 -2.443716e-03 -6.874259e-03 1.881469e-05 2.181124e-03 3.812338e-03 -9.116290e-03 -1.104122e-03 -6.838292e-03 1.238312e-05 1.653040e-02 8.603380e-03 -9.790845e-03 9.456510e-04 -6.808534e-03 6.354811e-06 1.937026e-02 -3.206076e-03 -7.249761e-03 1.152040e-02 -6.784686e-03 5.502360e-07 1.010225e-02 -9.583813e-03 1.322800e-02 1.323389e-02 -6.766588e-03 -5.133549e-06 1.813157e-04 -8.152148e-03 1.921877e-02 -9.637861e-04 -6.754145e-03 -1.051192e-05 -6.229054e-03 -4.831321e-03 1.130783e-02 -8.682147e-03 -6.746830e-03 1.399453e-03 -9.512007e-03 -2.333895e-03 1.853100e-03 -7.891911e-03 -3.914473e-03 1.170604e-02 -1.092941e-02 -9.363654e-04 -4.487853e-03 -4.844072e-03 1.670007e-02 1.333562e-02 -1.141812e-02 -2.762016e-04 -7.853936e-03 -2.459038e-03 2.274823e-02 -9.149684e-04 -1.151547e-02 1.408123e-03 -9.428553e-03 -1.122314e-03 1.484889e-02 -8.669697e-03 -8.635582e-03 1.182546e-02 -1.012294e-02 -4.891132e-04 5.404207e-03 -7.895501e-03 1.210339e-02 1.348902e-02 -1.043192e-02 -2.244798e-04 -9.268910e-04 -4.856761e-03 1.832229e-02 -7.451770e-04 -1.059738e-02 1.294244e-03 -4.280784e-03 -2.475963e-03 1.059644e-02 -8.488760e-03 -7.869100e-03 1.165373e-02 -5.843235e-03 -1.141263e-03 1.323740e-03 -7.702554e-03 1.268744e-02 1.327599e-02 -6.524442e-03 -5.093478e-04 -4.835021e-03 -4.654017e-03 1.868303e-02 -9.802733e-04 -6.821631e-03 -2.487784e-04 -8.014176e-03 -2.266391e-03 1.073370e-02 -8.720460e-03 -6.981075e-03 -1.486036e-04 -9.399507e-03 -9.277302e-04 1.240104e-03 -7.930527e-03 -7.077579e-03 -9.819369e-05 -9.902136e-03 -2.937531e-04 -5.139889e-03 -4.883116e-03 -7.136001e-03 -7.977128e-05 -1.001980e-02 -3.072036e-05 -8.545743e-03 -2.499002e-03 -7.195537e-03 -8.093066e-05 -9.996433e-03 7.146789e-05 -1.016129e-02 -1.161949e-03 -7.256152e-03 -8.233838e-05 -9.909708e-03 1.208944e-04 -1.089483e-02 -5.266370e-04 -7.318377e-03 -8.556642e-05 -9.787436e-03 1.363109e-04 -1.124056e-02 -2.618267e-04 -7.385317e-03 -8.917196e-05 -9.669808e-03 1.315619e-04 -1.144486e-02 -1.604298e-04 -7.454612e-03 -9.030266e-05 -9.556968e-03 1.266671e-04 -1.158802e-02 1.299487e-03 -7.523668e-03 -8.977765e-05 -9.449065e-03 1.216349e-04 -8.872653e-03 1.162078e-02 -7.591767e-03 -8.917162e-05 -9.346226e-03 1.164925e-04 1.162978e-02 1.322238e-02 -7.659468e-03 -9.027629e-05 -9.248549e-03 1.112686e-04 1.757108e-02 -1.034526e-03 -7.729635e-03 -9.059892e-05 -9.156102e-03 1.059913e-04 9.566301e-03 -8.775782e-03 -7.797833e-03 1.323498e-03 -9.068927e-03 1.006950e-04 1.621491e-05 -7.986503e-03 -5.039662e-03 1.163468e-02 -8.987022e-03 9.541236e-05 -6.420600e-03 -4.939026e-03 1.550870e-02 1.468851e-02 -8.910365e-03 8.992258e-05 -9.882872e-03 -2.553743e-03 2.433134e-02 1.076086e-02 -8.839397e-03 8.264536e-05 -1.155296e-02 -1.213150e-03 3.700586e-02 4.651158e-03 -8.777253e-03 7.491712e-05 -1.233590e-02 -5.751924e-04 3.358245e-02 -8.813145e-03 -8.721705e-03 6.951815e-05 -1.273094e-02 1.103847e-03 1.933555e-02 -1.352047e-02 -8.670328e-03 6.582655e-05 -1.015624e-02 1.151460e-02 6.527447e-03 -1.035742e-02 -8.622134e-03 6.389514e-05 1.027307e-02 1.316862e-02 -1.366438e-03 -5.975037e-03 -8.574592e-03 1.475920e-03 1.617848e-02 -1.068825e-03 -5.393172e-03 -2.952118e-03 -5.702320e-03 1.178150e-02 8.139453e-03 -8.806816e-03 -7.232754e-03 -1.342955e-03 1.495802e-02 1.480171e-02 -1.440037e-03 -8.012439e-03 -8.037294e-03 -5.961398e-04 2.388257e-02 1.085073e-02 -7.900937e-03 -4.959841e-03 -8.381554e-03 -2.719380e-04 3.664607e-02 4.713625e-03 -1.138240e-02 -2.570059e-03 -8.536967e-03 -1.408650e-04 3.330373e-02 -8.752219e-03 -1.306759e-02 -1.226816e-03 -8.618754e-03 -8.259378e-05 1.913362e-02 -1.344469e-02 -1.386444e-02 -5.862992e-04 -8.657453e-03 1.353151e-03 6.398218e-03 -1.027042e-02 -1.426948e-02 -3.160720e-04 -5.867669e-03 1.166617e-02 -1.430664e-03 -5.884322e-03 -1.452632e-02 -2.063944e-04 1.471381e-02 1.330690e-02 -5.398355e-03 -2.860704e-03 -1.471230e-02 -1.490811e-04 2.074177e-02 4.807502e-04 -7.182278e-03 -1.250902e-03 -1.485471e-02 -1.252283e-04 1.565829e-02 3.044583e-03 -7.931387e-03 -5.047105e-04 -1.499314e-02 1.293017e-03 2.682460e-02 5.459236e-03 -8.223356e-03 -1.844428e-04 -1.229922e-02 1.160558e-02 2.654695e-02 -5.745102e-03 -8.332098e-03 -5.883484e-05 8.190471e-03 1.462989e-02 1.530517e-02 -1.111086e-02 -8.372914e-03 -5.785247e-06 1.695573e-02 1.069051e-02 4.319634e-03 -8.990959e-03 -8.375579e-03 1.131926e-05 2.957639e-02 4.565340e-03 -2.659244e-03 -5.309969e-03 -8.382188e-03 7.342541e-06 2.610529e-02 -7.473105e-03 -6.268131e-03 -2.657494e-03 -8.392811e-03 3.610984e-06 1.464522e-02 -1.843251e-03 -7.934471e-03 -1.208554e-03 -8.406888e-03 1.413037e-03 2.242112e-02 2.951734e-03 -8.641976e-03 -5.143444e-04 -5.598668e-03 1.171720e-02 2.055964e-02 -6.899705e-03 -8.918409e-03 -2.268980e-04 1.499719e-02 1.332442e-02 8.630597e-03 -1.159875e-02 -9.050440e-03 -1.216915e-04 2.103166e-02 -9.290913e-04 -2.642196e-03 -7.770835e-03 -9.116183e-03 -6.913470e-05 1.312396e-02 -8.667533e-03 -6.927917e-03 6.340429e-03 -9.142962e-03 -5.003662e-05 3.677013e-03 -7.875022e-03 1.001706e-02 1.207518e-02 -9.170452e-03 -5.067856e-05 -2.651086e-03 -4.824314e-03 1.721965e-02 9.608386e-03 -9.198457e-03 -5.145853e-05 -6.000245e-03 -2.436315e-03 2.923902e-02 4.181558e-03 -9.227449e-03 -5.410922e-05 -7.554266e-03 -1.094972e-03 2.560128e-02 -8.979454e-03 -9.260694e-03 -5.762568e-05 -8.221630e-03 -4.564528e-04 1.129459e-02 -1.354868e-02 -9.296648e-03 1.353038e-03 -8.498996e-03 -1.870748e-04 -1.497473e-03 -1.030320e-02 -6.508492e-03 1.166275e-02 -8.627763e-03 -7.850247e-05 -9.327390e-03 -4.466324e-03 1.406913e-02 1.330049e-02 -8.688058e-03 -2.396369e-05 -1.045438e-02 8.878719e-03 2.008950e-02 -9.422289e-04 -8.707782e-03 1.407479e-03 8.404539e-03 1.210405e-02 1.216902e-02 -8.691290e-03 -5.905203e-03 1.171067e-02 1.374914e-02 -1.391045e-03 2.707921e-03 -7.913088e-03 1.468306e-02 1.331756e-02 5.623785e-03 -8.793361e-03 -3.636270e-03 -4.872890e-03 2.071123e-02 -9.351686e-04 -3.845262e-03 -6.449045e-03 -7.003632e-03 -2.492892e-03 1.279750e-02 -8.672832e-03 -7.292485e-03 6.972463e-03 -8.580747e-03 -1.157315e-03 3.345795e-03 -7.880463e-03 1.007766e-02 1.099448e-02 -9.273639e-03 -5.213598e-04 -2.988618e-03 -4.832232e-03 1.469374e-02 -4.939239e-04 -9.577388e-03 -2.559262e-04 -6.347492e-03 -2.447260e-03 9.092197e-03 2.725033e-03 -9.738774e-03 -1.517293e-04 -7.913887e-03 3.068883e-04 2.013998e-02 5.400879e-03 -9.833790e-03 -9.836023e-05 -5.765363e-03 1.125145e-02 1.990238e-02 -5.684622e-03 -9.888238e-03 -7.775432e-05 1.455860e-02 1.312479e-02 8.778891e-03 -1.096822e-02 -9.941928e-03 -7.722391e-05 2.046545e-02 -1.023600e-03 -2.038247e-03 -8.802486e-03 -9.995203e-03 -7.700878e-05 1.249603e-02 -8.710793e-03 -8.842256e-03 -5.105018e-03 -1.004835e-02 1.336931e-03 3.023925e-03 -7.903360e-03 -1.227201e-02 -2.442735e-03 -7.273633e-03 1.164942e-02 -3.336061e-03 -4.858099e-03 -1.375525e-02 -9.882683e-04 1.329236e-02 1.328947e-02 -6.721295e-03 -2.472980e-03 -1.427771e-02 1.124431e-03 1.930395e-02 -9.518687e-04 -8.312985e-03 -1.132959e-03 -1.153614e-02 1.172628e-02 1.137462e-02 -8.703324e-03 -9.019090e-03 -4.956917e-04 9.148148e-03 1.344420e-02 1.899974e-03 -7.928439e-03 -9.336650e-03 -2.282253e-04 1.534849e-02 -7.490550e-04 -4.459669e-03 -4.888180e-03 -9.508004e-03 1.289897e-03 7.653146e-03 -8.460264e-03 -7.840429e-03 -2.503903e-03 -6.789418e-03 1.164642e-02 -1.577467e-03 -7.661375e-03 -9.424410e-03 -1.162809e-03 1.375383e-02 1.327192e-02 -7.685267e-03 -4.603652e-03 -1.011965e-02 8.905910e-04 1.973521e-02 -9.829305e-04 -1.080721e-02 -2.209486e-03 -7.595371e-03 1.147217e-02 1.177218e-02 -8.724519e-03 -1.213014e-02 -8.667671e-04 1.286723e-02 1.321880e-02 2.265814e-03 -7.936144e-03 -1.256811e-02 -2.292016e-04 1.884177e-02 -9.686443e-04 -4.125919e-03 -4.889367e-03 -1.261640e-02 1.453690e-03 1.091692e-02 -8.695923e-03 -7.542396e-03 -2.504780e-03 -9.688637e-03 1.187068e-02 1.453556e-03 -7.915317e-03 -9.166913e-03 -1.166418e-03 1.110030e-02 1.353030e-02 -4.890192e-03 -3.458085e-03 -9.907597e-03 -5.308085e-04 1.737037e-02 -7.031265e-04 -5.425751e-03 9.239379e-03 -1.026132e-02 -2.657178e-04 9.699396e-03 -8.438851e-03 1.362656e-02 1.221893e-02 -1.047203e-02 -1.614983e-04 4.895076e-04 -6.231387e-03 1.901004e-02 -1.384488e-03 -1.061743e-02 -1.099880e-04 -2.776750e-03 7.126510e-03 1.084420e-02 -8.863969e-03 -1.072520e-02 -9.227221e-05 1.472553e-02 1.112040e-02 1.285883e-03 -6.562745e-03 -1.083524e-02 -9.439573e-05 1.946647e-02 -1.788192e-03 -2.257414e-03 6.844804e-03 -1.094732e-02 -9.628211e-05 1.115682e-02 -8.883951e-03 1.500682e-02 1.229921e-02 -1.106119e-02 -9.790814e-05 1.697023e-03 -7.823414e-03 2.233605e-02 9.706996e-03 -1.117659e-02 -9.925061e-05 -4.502035e-03 -4.668141e-03 3.440044e-02 4.233978e-03 -1.129321e-02 -1.005359e-04 -7.658167e-03 -2.228903e-03 3.075827e-02 -8.958928e-03 -1.141124e-02 1.310554e-03 -8.982250e-03 -8.701440e-04 1.644450e-02 -1.355487e-02 -8.705755e-03 1.161574e-02 -9.422331e-03 -2.343640e-04 3.640541e-03 -1.033520e-02 1.178813e-02 1.322369e-02 -9.475342e-03 3.063550e-05 -4.206968e-03 -5.932471e-03 1.772128e-02 -1.029084e-03 -9.385483e-03 1.344160e-04 -8.188973e-03 -2.912270e-03 9.713014e-03 -8.766613e-03 -9.230834e-03 1.599212e-03 -9.987710e-03 -1.306872e-03 1.665142e-04 -7.972914e-03 -6.211212e-03 1.192516e-02 -1.075514e-02 -5.633521e-04 -6.259827e-03 -4.920695e-03 1.459868e-02 1.352815e-02 -1.106522e-02 -2.419769e-04 -9.705575e-03 -2.530609e-03 2.084736e-02 -7.295545e-04 -1.118925e-02 -1.148886e-04 -1.135372e-02 2.287077e-04 1.314878e-02 -8.472249e-03 -1.124489e-02 -6.045204e-05 -9.281780e-03 1.118018e-02 3.903534e-03 -7.684518e-03 -1.125993e-02 -3.992345e-05 1.097422e-02 1.306253e-02 -2.229845e-03 -4.638713e-03 -1.127449e-02 -3.949404e-05 1.682246e-02 -1.078790e-03 -5.390279e-03 -2.255581e-03 -1.128863e-02 -3.938714e-05 8.799177e-03 -7.348174e-03 -6.760899e-03 -9.191010e-04 -1.130294e-02 -4.121291e-05 2.104053e-03 3.772779e-03 -7.249894e-03 -2.857326e-04 -1.132071e-02 -4.343021e-05 1.631883e-02 8.435374e-03 -7.354319e-03 -2.320420e-05 -1.133942e-02 -4.214218e-05 1.895705e-02 -3.424817e-03 -7.318373e-03 7.815033e-05 -1.135458e-02 -4.136148e-05 9.452964e-03 -9.817666e-03 -7.220050e-03 1.264924e-04 -1.137169e-02 1.370267e-03 -6.999660e-04 -8.382804e-03 -7.087310e-03 1.407244e-04 -8.563553e-03 1.168061e-02 -7.340153e-03 -5.059658e-03 -6.960375e-03 1.350205e-04 1.203410e-02 1.331764e-02 -1.085060e-02 -2.559332e-03 -6.838903e-03 1.308227e-04 1.807301e-02 -9.267242e-04 -1.249215e-02 2.560733e-04 -6.720229e-03 1.268150e-04 1.016924e-02 -8.678752e-03 -1.037273e-02 1.122947e-02 -6.606640e-03 1.218868e-04 7.207136e-04 -7.903247e-03 9.933740e-03 1.311449e-02 -6.497697e-03 1.158094e-04 -5.612183e-03 -4.862697e-03 1.583483e-02 3.904564e-04 -6.396142e-03 1.077968e-04 -8.966300e-03 -2.478837e-03 1.069663e-02 3.019080e-03 -6.303112e-03 1.008734e-04 -1.052442e-02 -1.138719e-03 2.185202e-02 6.859428e-03 -6.215301e-03 9.480488e-05 -1.119503e-02 -5.008016e-04 2.440091e-02 5.974782e-03 -6.134309e-03 8.720950e-05 -1.147591e-02 -2.351059e-04 3.378847e-02 2.244195e-03 -6.061599e-03 1.493011e-03 -1.161453e-02 -1.308895e-04 2.888157e-02 -9.867007e-03 -3.168925e-03 1.179327e-02 -1.168669e-02 -7.725695e-05 1.404391e-02 -1.391140e-02 1.750752e-02 1.339144e-02 -1.171790e-02 -5.617108e-05 1.039707e-03 -1.045865e-02 2.361946e-02 -8.680329e-04 -1.174781e-02 1.358835e-03 -6.899902e-03 -5.954221e-03 1.578373e-02 -8.609369e-03 -8.948946e-03 1.167184e-02 -1.089980e-02 -2.867522e-03 6.404313e-03 -7.819892e-03 1.164126e-02 1.472436e-02 -1.266831e-02 -1.233365e-03 1.371357e-04 -4.774716e-03 2.050189e-02 1.079373e-02 -1.340090e-02 -4.836047e-04 -3.158881e-03 -2.393457e-03 3.321221e-02 4.683189e-03 -1.367031e-02 -1.551887e-04 -4.667196e-03 -1.060127e-03 2.982503e-02 -8.779245e-03 -1.374623e-02 1.393379e-03 -5.298224e-03 -4.292627e-04 1.561761e-02 -1.348518e-02 -1.091855e-02 1.176343e-02 -5.545512e-03 -1.646069e-04 2.848419e-03 -1.032571e-02 9.747260e-03 1.340122e-02 -5.647503e-03 -5.912117e-05 -5.013210e-03 -5.949094e-03 1.586238e-02 -8.418563e-04 -5.683932e-03 -8.626776e-06 -9.012647e-03 -1.516057e-03 8.045537e-03 -8.572624e-03 -5.684975e-03 6.617457e-06 -7.999793e-03 1.040152e-02 -1.305364e-03 -7.776252e-03 -5.690917e-03 2.299648e-06 1.183378e-02 1.278243e-02 -7.534824e-03 -4.722827e-03 -5.700601e-03 3.122212e-07 1.756678e-02 2.750644e-04 -1.078245e-02 -2.331729e-03 -5.710529e-03 -9.691286e-07 1.237357e-02 2.966390e-03 -1.223158e-02 -9.883416e-04 -5.722787e-03 -3.983075e-06 2.350013e-02 5.438408e-03 -1.279326e-02 1.065803e-03 -5.738756e-03 -6.152584e-06 2.322756e-02 -5.742769e-03 -1.013442e-02 1.164630e-02 -5.755372e-03 -7.610901e-06 1.199234e-02 -1.110884e-02 1.046641e-02 1.337063e-02 -5.774276e-03 -1.056109e-05 1.011243e-03 -8.993069e-03 1.658574e-02 -8.199825e-04 -5.796812e-03 -1.387551e-05 -5.969336e-03 -5.317036e-03 8.808853e-03 -7.121388e-03 -5.822370e-03 -1.629838e-05 -9.583696e-03 -2.667207e-03 2.320908e-03 3.977976e-03 -5.849781e-03 -1.765129e-05 -1.125702e-02 -1.220594e-03 1.673903e-02 8.637167e-03 -5.878075e-03 -1.818508e-05 -1.197464e-02 -5.269178e-04 1.957773e-02 -3.225467e-03 -5.906584e-03 -1.815181e-05 -1.225910e-02 1.176164e-03 1.027221e-02 -9.622072e-03 -5.934843e-03 -1.748421e-05 -9.569953e-03 1.159380e-02 3.123733e-04 -8.192203e-03 -5.962049e-03 -1.514431e-05 1.097520e-02 1.328305e-02 -6.139122e-03 -3.458966e-03 -5.985659e-03 -1.434285e-05 1.699967e-02 -9.428672e-04 -6.636189e-03 9.346404e-03 -6.011288e-03 -1.629490e-05 9.080308e-03 -8.694585e-03 1.252277e-02 1.235447e-02 -6.038830e-03 -1.695902e-05 -3.820096e-04 -7.919962e-03 1.805282e-02 -1.235350e-03 -6.065818e-03 -1.574847e-05 -6.732230e-03 -4.883096e-03 1.003532e-02 -8.703809e-03 -6.090968e-03 1.400205e-03 -1.010746e-02 -2.501930e-03 6.238485e-04 -7.806334e-03 -3.286076e-03 1.171019e-02 -1.168826e-02 -1.161937e-03 -5.604101e-03 -4.704799e-03 1.731185e-02 1.331754e-02 -1.238018e-02 -5.254266e-04 -8.816073e-03 -2.299647e-03 2.335428e-02 -9.330575e-04 -1.268650e-02 -2.624623e-04 -1.023556e-02 -9.622977e-04 1.545772e-02 -7.253067e-03 -1.285186e-02 -1.596120e-04 -1.077365e-02 -3.283756e-04 8.851379e-03 3.852694e-03 -1.295213e-02 -1.080737e-04 -1.092560e-02 -6.474724e-05 2.315901e-02 8.513488e-03 -1.301419e-02 -8.967430e-05 -1.093652e-02 3.851815e-05 2.589013e-02 -1.935174e-03 -1.307753e-02 -8.991504e-05 -1.088195e-02 9.090243e-05 1.930346e-02 1.978487e-03 -1.313995e-02 -9.201302e-05 -1.078806e-02 1.099984e-04 2.985460e-02 5.017264e-03 -1.320735e-02 -9.713444e-05 -1.069524e-02 1.084555e-04 2.935719e-02 -5.912815e-03 -1.327987e-02 1.312752e-03 -1.060439e-02 1.060686e-04 1.804761e-02 -1.115027e-02 -1.052735e-02 1.162295e-02 -1.051630e-02 1.030119e-04 7.062750e-03 -8.961144e-03 1.001475e-02 1.467531e-02 -1.043151e-02 9.949416e-05 1.192421e-04 -5.253349e-03 1.882879e-02 1.074513e-02 -1.035040e-02 9.565434e-05 -3.457729e-03 -2.598668e-03 3.149200e-02 4.634063e-03 -1.027325e-02 1.505478e-03 -5.095843e-03 -1.150432e-03 2.805730e-02 -8.831495e-03 -7.372448e-03 1.180965e-02 -5.778159e-03 -4.556066e-04 1.379661e-02 -1.354236e-02 1.331471e-02 1.482959e-02 -6.027379e-03 -1.644797e-04 9.701665e-04 -1.038381e-02 2.226725e-02 1.088177e-02 -6.127718e-03 -5.486369e-05 -6.946476e-03 -6.005420e-03 3.506391e-02 4.747793e-03 -6.157817e-03 1.109194e-06 -1.099949e-02 -2.985642e-03 3.175584e-02 -8.720403e-03 -6.146243e-03 2.246196e-05 -1.286805e-02 -1.378924e-03 1.761421e-02 -1.341794e-02 -6.133624e-03 2.353856e-05 -1.370370e-02 -6.340374e-04 4.902963e-03 -1.024528e-02 -6.119883e-03 2.563014e-05 -1.408074e-02 -3.115752e-04 -2.900637e-03 -5.858887e-03 -6.103065e-03 2.562873e-05 -1.427067e-02 -1.834702e-04 -6.843583e-03 -2.837403e-03 -6.089308e-03 2.237265e-05 -1.439109e-02 -1.278448e-04 -8.606478e-03 -1.233208e-03 -6.078987e-03 1.993966e-05 -1.446952e-02 -1.058077e-04 -9.342044e-03 -4.934533e-04 -6.070085e-03 1.894659e-05 -1.454571e-02 -1.034863e-04 -9.625852e-03 -1.779069e-04 -6.061741e-03 1.838108e-05 -1.461933e-02 1.313079e-03 -9.730488e-03 -5.770365e-05 -6.053961e-03 1.767408e-05 -1.186223e-02 1.162831e-02 -9.773949e-03 -1.005218e-05 -6.047021e-03 1.643320e-05 8.688812e-03 1.326975e-02 -9.783307e-03 5.534327e-06 -6.041715e-03 1.306213e-05 1.468557e-02 4.440539e-04 -9.795600e-03 1.376703e-06 -6.041512e-03 8.914606e-06 9.572629e-03 3.011032e-03 -9.813281e-03 -5.064842e-06 -6.044501e-03 6.782604e-06 2.071410e-02 6.845958e-03 -9.838467e-03 -1.253521e-05 -6.048565e-03 5.571111e-06 2.324758e-02 5.961030e-03 -9.871103e-03 -1.957410e-05 -6.053981e-03 2.340563e-06 3.261386e-02 2.239718e-03 -9.910386e-03 -2.585485e-05 -6.064512e-03 -1.981453e-06 2.768504e-02 -8.464699e-03 -9.955605e-03 -3.153878e-05 -6.078584e-03 -4.556906e-06 1.565285e-02 -2.217939e-03 -1.000628e-02 -3.660275e-05 -6.094282e-03 -6.350310e-06 2.324284e-02 2.853386e-03 -1.006166e-02 -3.978875e-05 -6.111958e-03 -1.020200e-05 2.133734e-02 -6.898084e-03 -1.011874e-02 1.371211e-03 -6.135379e-03 -1.513387e-05 9.428393e-03 -1.156723e-02 -7.352149e-03 1.167449e-02 -6.162945e-03 -1.828788e-05 -1.790359e-03 -9.155705e-03 1.319892e-02 1.327865e-02 -6.192704e-03 -2.037174e-05 -8.852670e-03 -3.949663e-03 1.918562e-02 -9.787828e-04 -6.224471e-03 -2.261142e-05 -9.644492e-03 9.073968e-03 1.122525e-02 -8.721305e-03 -6.258745e-03 -2.533888e-05 9.342125e-03 1.218510e-02 1.722340e-03 -7.933193e-03 -6.296004e-03 1.385681e-03 1.473266e-02 -1.359426e-03 -4.667260e-03 -4.890069e-03 -3.508280e-03 1.169187e-02 6.618884e-03 -8.813840e-03 -8.087585e-03 -2.510138e-03 1.706993e-02 1.329530e-02 -2.882355e-03 -7.921159e-03 -9.719282e-03 -1.173425e-03 2.308733e-02 -9.617642e-04 -9.190791e-03 -4.818301e-03 -1.046712e-02 8.767583e-04 1.515809e-02 -8.703582e-03 -1.247305e-02 -2.406116e-03 -7.998878e-03 1.145169e-02 5.683064e-03 -7.914735e-03 -1.395022e-02 -1.059360e-03 1.240457e-02 1.316788e-02 -6.789915e-04 -3.453663e-03 -1.453586e-02 -4.156178e-04 1.831689e-02 -1.030569e-03 -1.238929e-03 9.238772e-03 -1.472431e-02 -1.411116e-04 1.032683e-02 -8.750139e-03 1.778326e-02 1.218210e-02 -1.476055e-02 1.383831e-03 7.954251e-04 -7.959356e-03 2.313107e-02 -1.435444e-03 -1.189904e-02 1.175324e-02 -5.618535e-03 -4.908181e-03 1.492412e-02 -8.907193e-03 8.797525e-03 1.341714e-02 -9.051269e-03 -2.518763e-03 5.319325e-03 -8.009816e-03 1.494333e-02 5.953639e-04 -1.068836e-02 -1.177690e-03 -1.103531e-03 -4.909453e-03 9.983421e-03 3.166461e-03 -1.143989e-02 -5.402234e-04 -4.514719e-03 -2.506477e-03 2.128184e-02 5.592573e-03 -1.180248e-02 -2.726818e-04 -6.135406e-03 -1.167966e-03 2.115041e-02 -5.600356e-03 -1.201913e-02 1.248531e-03 -6.871371e-03 -5.310661e-04 1.006325e-02 -1.095997e-02 -9.339418e-03 1.161040e-02 -7.219073e-03 -2.647809e-04 -7.640958e-04 -8.835359e-03 1.116920e-02 1.324042e-02 -7.422853e-03 -1.598196e-04 -7.579278e-03 -5.149570e-03 1.712072e-02 -1.008601e-03 -7.560860e-03 -1.079504e-04 -1.102072e-02 -1.080141e-03 9.134714e-03 -8.741888e-03 -7.661054e-03 -9.012658e-05 -9.689809e-03 1.068208e-02 -3.849247e-04 -7.946743e-03 -7.763524e-03 -9.229655e-05 1.039040e-02 1.301614e-02 -6.786102e-03 -3.482310e-03 -7.868172e-03 -9.434517e-05 1.634721e-02 -9.346505e-04 -7.380545e-03 9.215765e-03 -7.974855e-03 -9.623573e-05 8.513319e-03 -8.572260e-03 1.161409e-02 1.217301e-02 -8.083402e-03 -9.794691e-05 -7.886217e-04 -7.736638e-03 1.694504e-02 -1.992143e-05 -8.193628e-03 -9.946066e-05 -6.931717e-03 -4.672997e-03 1.155685e-02 2.819688e-03 -8.305325e-03 -1.007594e-04 -1.009346e-02 -2.285377e-03 2.256393e-02 5.328695e-03 -8.418272e-03 1.312081e-03 -1.145467e-02 -9.391923e-04 2.220008e-02 -5.815926e-03 -5.704413e-03 1.161896e-02 -1.192118e-02 -2.967633e-04 1.091770e-02 -1.114167e-02 1.479940e-02 1.322340e-02 -1.199655e-02 1.385729e-03 -1.041067e-04 -9.001591e-03 2.074489e-02 -1.030126e-03 -9.097919e-03 1.180611e-02 -7.112646e-03 -5.305835e-03 1.274825e-02 -8.768828e-03 1.166138e-02 1.350069e-02 -1.074696e-02 -2.645419e-03 3.207454e-03 -7.977455e-03 1.790552e-02 -7.198542e-04 -1.243676e-02 -1.193459e-03 -3.217021e-03 -4.925703e-03 1.021061e-02 -7.053143e-03 -1.316812e-02 -4.968627e-04 -6.661434e-03 -2.533639e-03 3.804356e-03 4.037382e-03 -1.346514e-02 1.209709e-03 -8.305602e-03 -1.188179e-03 1.830396e-02 8.715362e-03 -1.078354e-02 1.163026e-02 -9.060918e-03 -5.501664e-04 2.122318e-02 -3.144461e-03 9.762085e-03 1.471418e-02 -9.429898e-03 -2.843542e-04 1.199700e-02 -9.553236e-03 1.862331e-02 1.079663e-02 -9.654000e-03 -1.753056e-04 2.118074e-03 -8.136250e-03 3.133891e-02 4.671912e-03 -9.805131e-03 -1.168666e-04 -4.253366e-03 -3.413673e-03 2.795800e-02 -8.785365e-03 -9.912522e-03 -9.414048e-05 -4.673748e-03 9.387463e-03 1.375711e-02 -1.346936e-02 -1.001832e-02 -9.271463e-05 1.455797e-02 1.241720e-02 1.000062e-03 -1.028434e-02 -1.012298e-02 -9.162329e-05 2.015663e-02 -1.170536e-03 -6.838096e-03 -5.887188e-03 -1.022671e-02 1.322074e-03 1.220110e-02 -8.654686e-03 -1.080534e-02 -2.855525e-03 -7.504084e-03 1.162990e-02 2.848192e-03 -7.770666e-03 -1.258245e-02 -1.241193e-03 1.301085e-02 1.465197e-02 -3.319633e-03 -4.677214e-03 -1.332206e-02 -4.910183e-04 2.180038e-02 1.071181e-02 -6.472674e-03 -2.279017e-03 -1.359924e-02 -1.645810e-04 3.444473e-02 4.585509e-03 -7.837477e-03 -9.468029e-04 -1.368613e-02 -3.311017e-05 3.099568e-02 -8.870416e-03 -8.323220e-03 -3.165723e-04 -1.370042e-02 1.440760e-03 1.672436e-02 -1.355295e-02 -8.426541e-03 -5.601994e-05 -1.083957e-02 1.177527e-02 3.894416e-03 -1.036615e-02 -8.390963e-03 4.412136e-05 9.816797e-03 1.480465e-02 -4.017535e-03 -5.968884e-03 -8.294075e-03 9.160538e-05 1.874825e-02 1.086539e-02 -8.061721e-03 -2.938076e-03 -8.163732e-03 1.050535e-04 3.153121e-02 4.738519e-03 -9.916543e-03 -1.322822e-03 -8.040223e-03 9.821900e-05 2.821626e-02 -8.721030e-03 -1.073228e-02 8.430616e-04 -7.923809e-03 9.111039e-05 1.407823e-02 -1.340884e-02 -8.256237e-03 1.147711e-02 -7.814761e-03 8.373066e-05 1.379542e-03 -1.022819e-02 1.219886e-02 1.321238e-02 -7.713336e-03 7.609973e-05 -6.404467e-03 -4.420999e-03 1.816814e-02 -9.814662e-04 -7.619763e-03 6.824652e-05 -7.493237e-03 8.915890e-03 1.024217e-02 -8.691841e-03 -7.534241e-03 5.995566e-05 1.139591e-02 1.213794e-02 7.819029e-04 -7.892149e-03 -7.457430e-03 4.965223e-05 1.676206e-02 -1.365847e-03 -5.555180e-03 -4.835400e-03 -7.392676e-03 3.890492e-05 8.646717e-03 -8.780601e-03 -8.908972e-03 -1.028202e-03 -7.337496e-03 3.188658e-05 -8.212885e-04 -7.860830e-03 -7.635379e-03 1.062567e-02 -7.286895e-03 2.621833e-05 -7.102523e-03 -4.757511e-03 1.231998e-02 1.287347e-02 -7.243157e-03 1.831067e-05 -1.036749e-02 -2.351008e-03 1.811131e-02 -1.107730e-03 -7.208463e-03 1.048151e-05 -1.183759e-02 -1.008718e-03 1.011069e-02 -7.319960e-03 -7.180457e-03 2.986300e-06 -1.241883e-02 -3.682748e-04 3.468693e-03 3.838734e-03 -7.160812e-03 -4.803587e-06 -1.260838e-02 -1.004214e-04 1.777809e-02 8.518052e-03 -7.148428e-03 -1.317046e-05 -1.265401e-02 5.381563e-06 2.051060e-02 -3.343955e-03 -7.145542e-03 -2.304728e-05 -1.263198e-02 6.010348e-05 1.109902e-02 -8.322985e-03 -7.152917e-03 -3.150926e-05 -1.256816e-02 8.191725e-05 3.863026e-03 3.416811e-03 -7.166941e-03 -3.883196e-05 -1.250246e-02 8.352077e-05 1.792301e-02 8.339894e-03 -7.188931e-03 -4.740947e-05 -1.243540e-02 1.498762e-03 2.054878e-02 -3.417184e-03 -7.220064e-03 -5.622519e-05 -9.539179e-03 1.180976e-02 1.109752e-02 -9.756533e-03 -7.259620e-03 -6.406363e-05 1.115154e-02 1.342264e-02 1.034105e-03 -8.303009e-03 -7.306346e-03 -7.052228e-05 1.728540e-02 -8.289287e-04 -5.521268e-03 -4.983429e-03 -7.358722e-03 -7.445370e-05 9.476491e-03 -7.155117e-03 -8.952791e-03 -2.488571e-03 -7.413201e-03 -7.763572e-05 2.953489e-03 3.943479e-03 -1.052225e-02 -1.093678e-03 -7.471826e-03 -8.270566e-05 1.733803e-02 8.603281e-03 -1.116573e-02 -4.346984e-04 -7.536321e-03 -8.841462e-05 2.014289e-02 -3.260446e-03 -1.141795e-02 -1.668494e-04 -7.606229e-03 -9.355054e-05 1.080159e-02 -9.657448e-03 -1.152601e-02 -6.285528e-05 -7.680849e-03 1.314512e-03 8.070760e-04 -8.226962e-03 -1.157036e-02 -1.321820e-05 -4.934474e-03 1.162108e-02 -5.678983e-03 -4.906916e-03 -1.157919e-02 2.466443e-06 1.559827e-02 1.325463e-02 -9.037122e-03 -2.410144e-03 -1.159218e-02 -1.283309e-06 2.156858e-02 4.221441e-04 -1.053156e-02 -1.016726e-03 -1.160853e-02 -3.182989e-06 1.642380e-02 2.984759e-03 -1.110372e-02 -3.617359e-04 -1.162534e-02 -5.216524e-06 2.753016e-02 5.402778e-03 -1.128851e-02 -9.481801e-05 -1.164577e-02 -1.160059e-05 2.719806e-02 -5.796161e-03 -1.132694e-02 1.314168e-05 -1.167537e-02 1.394167e-03 1.590724e-02 -1.115931e-02 -1.129583e-02 6.875786e-05 -8.884298e-03 1.169596e-02 4.872593e-03 -9.040628e-03 -1.122301e-02 9.029523e-05 1.169279e-02 1.329517e-02 -2.157676e-03 -5.360262e-03 -1.114879e-02 9.160015e-05 1.770510e-02 -9.636657e-04 -5.816812e-03 -2.707444e-03 -1.107332e-02 1.506701e-03 9.771182e-03 -8.703990e-03 -7.533751e-03 -1.260702e-03 -8.168848e-03 1.181652e-02 2.940471e-04 -7.913021e-03 -8.295794e-03 -5.686559e-04 1.252794e-02 1.343000e-02 -6.068447e-03 -4.866284e-03 -8.627040e-03 -2.796765e-04 1.867123e-02 -8.183674e-04 -9.459165e-03 -2.483337e-03 -8.810428e-03 -1.704340e-04 1.087480e-02 -7.142627e-03 -1.105953e-02 -1.145047e-03 -8.922803e-03 -1.128921e-04 4.365104e-03 3.956160e-03 -1.177544e-02 -5.084167e-04 -8.990871e-03 -8.709980e-05 1.876252e-02 8.613936e-03 -1.210333e-02 -2.423167e-04 -9.051519e-03 -8.090896e-05 2.157663e-02 -3.252029e-03 -1.228741e-02 -1.373691e-04 -9.107077e-03 1.337027e-03 1.224373e-02 -9.647582e-03 -1.240561e-02 -8.529014e-05 -6.331736e-03 1.165237e-02 2.261378e-03 -6.802410e-03 -1.248566e-02 -6.700301e-05 1.423756e-02 1.329411e-02 -1.386904e-03 6.822421e-03 -1.256738e-02 -6.868529e-05 2.025314e-02 -9.447112e-04 1.587832e-02 1.092838e-02 -1.265089e-02 -7.181806e-05 1.233215e-02 -7.275009e-03 2.045185e-02 -1.925629e-03 -1.273896e-02 -7.482023e-05 5.703775e-03 3.821232e-03 1.201168e-02 -9.007752e-03 -1.282857e-02 -7.353840e-05 1.998920e-02 8.506179e-03 2.416124e-03 -7.952498e-03 -1.291418e-02 1.343528e-03 2.270069e-02 -3.348086e-03 -3.919041e-03 -4.797770e-03 -1.016975e-02 1.165242e-02 1.327189e-02 -9.750538e-03 -7.208774e-03 -2.358197e-03 1.036547e-02 1.325757e-02 3.198298e-03 -8.326717e-03 -8.666677e-03 -9.994147e-04 1.634298e-02 -9.947767e-04 -3.361682e-03 -3.598926e-03 -9.239683e-03 -3.635315e-04 8.380132e-03 -8.729778e-03 -3.965905e-03 9.207242e-03 -9.426148e-03 -9.792628e-05 -1.121198e-03 -6.519930e-03 1.508772e-02 1.224452e-02 -9.468050e-03 8.719379e-06 -4.674885e-03 6.840174e-03 2.051799e-02 -1.334530e-03 -9.441249e-03 6.471026e-05 1.254005e-02 1.083439e-02 1.240211e-02 -8.811817e-03 -9.371154e-03 1.500274e-03 1.699390e-02 -2.075282e-03 2.894868e-03 -7.923095e-03 -6.473185e-03 1.180860e-02 8.394421e-03 -9.170413e-03 -3.423582e-03 -4.824213e-03 1.421523e-02 1.341720e-02 -1.351531e-03 -6.689457e-03 -6.719778e-03 -2.416669e-03 2.034225e-02 -8.389834e-04 -4.999905e-03 6.783152e-03 -8.216210e-03 -1.071106e-03 1.252183e-02 -8.585232e-03 1.219531e-02 1.225109e-02 -8.818134e-03 -4.270515e-04 3.151859e-03 -7.801625e-03 1.950189e-02 9.673780e-03 -9.025192e-03 -1.556347e-04 -3.106726e-03 -4.756707e-03 3.155059e-02 4.187067e-03 -9.083847e-03 -4.634006e-05 -6.390445e-03 -2.372266e-03 2.789711e-02 -8.996503e-03 -9.072193e-03 1.423967e-03 -7.882032e-03 -1.034015e-03 1.357461e-02 -1.356679e-02 -6.190257e-03 1.175726e-02 -8.490104e-03 -3.990873e-04 7.646628e-04 -8.909750e-03 1.448192e-02 1.339607e-02 -8.712185e-03 -1.352899e-04 -4.257957e-03 5.815065e-03 2.059801e-02 -8.442511e-04 -8.792789e-03 -3.288553e-05 1.237616e-02 1.044844e-02 1.277670e-02 -8.589321e-03 -8.810108e-03 1.658570e-05 1.663874e-02 -7.780438e-04 3.419093e-03 -7.806716e-03 -8.791780e-03 3.319990e-05 1.082461e-02 2.543612e-03 -2.817341e-03 -4.762067e-03 -8.775860e-03 2.797899e-05 2.172406e-02 5.270058e-03 -6.072536e-03 -2.376120e-03 -8.767964e-03 2.117901e-05 2.137490e-02 -5.798865e-03 -7.530232e-03 -1.034404e-03 -8.765640e-03 1.533429e-05 1.013612e-02 -9.673855e-03 -8.098930e-03 -3.946039e-04 -8.769432e-03 8.568389e-06 2.024522e-03 2.792619e-03 -8.275831e-03 -1.251237e-04 -8.780641e-03 1.187147e-06 1.570969e-02 8.091667e-03 -8.305197e-03 -1.663764e-05 -8.799203e-03 -5.888376e-06 1.821136e-02 -3.499267e-03 -8.265063e-03 3.890465e-05 -8.824574e-03 -1.224576e-05 8.717440e-03 -9.784889e-03 -8.183429e-03 1.474279e-03 -8.855864e-03 -1.665777e-05 -1.362659e-03 -8.298189e-03 -5.272719e-03 1.178780e-02 -8.890077e-03 -2.084357e-05 -7.894363e-03 -4.957064e-03 1.542983e-02 1.342706e-02 -8.929759e-03 -2.739988e-05 -1.129946e-02 -2.460582e-03 2.157554e-02 -8.151554e-04 -8.977107e-03 1.378858e-03 -1.284197e-02 -1.064162e-03 1.378075e-02 -8.563459e-03 -6.204301e-03 1.168004e-02 -1.345594e-02 -4.016396e-04 4.446238e-03 -7.784253e-03 1.435231e-02 1.328402e-02 -1.367409e-02 -1.291933e-04 -1.770524e-03 -4.744344e-03 2.034486e-02 -9.733241e-04 -1.374340e-02 -2.084163e-05 -5.012144e-03 -2.363473e-03 1.239023e-02 -7.303717e-03 -1.374493e-02 3.278477e-05 -6.460350e-03 -1.026163e-03 5.717425e-03 3.790617e-03 -1.370699e-02 5.355831e-05 -7.024306e-03 -3.897606e-04 1.994763e-02 8.445716e-03 -1.366693e-02 5.436171e-05 -7.198521e-03 -1.213148e-04 2.259319e-02 -3.422996e-03 -1.362734e-02 1.466345e-03 -7.225220e-03 -1.280258e-05 1.308749e-02 -9.825040e-03 -1.076327e-02 1.176917e-02 -7.182354e-03 4.253152e-05 2.923507e-03 -8.399723e-03 9.885151e-03 1.337043e-02 -7.098475e-03 6.302559e-05 -3.737390e-03 -5.086261e-03 1.597464e-02 -8.836870e-04 -7.014797e-03 6.110622e-05 -7.278267e-03 -2.595407e-03 8.121580e-03 -8.622347e-03 -6.934932e-03 5.832550e-05 -8.959487e-03 -1.201713e-03 -1.274956e-03 -7.831853e-03 -6.856984e-03 5.731091e-05 -9.713940e-03 -5.443962e-04 -7.557455e-03 -4.783927e-03 -6.779312e-03 5.563878e-05 -1.008096e-02 -2.798158e-04 -1.086511e-02 -2.398806e-03 -6.704872e-03 5.329600e-05 -1.030646e-02 -1.767478e-04 -1.238103e-02 -1.060546e-03 -6.632042e-03 5.264158e-05 -1.046748e-02 -1.241778e-04 -1.301384e-02 -4.271841e-04 -6.559063e-03 5.287013e-05 -1.058793e-02 -1.044346e-04 -1.326375e-02 -1.651353e-04 -6.485930e-03 1.466686e-03 -1.070953e-02 -1.062493e-04 -1.337274e-02 -6.197787e-05 -3.585473e-03 1.177795e-02 -1.083368e-02 -1.084619e-04 -1.341645e-02 -1.041564e-05 1.710409e-02 1.482683e-02 -1.095977e-02 -1.099699e-04 -1.342236e-02 7.129103e-06 2.605881e-02 1.089335e-02 -1.108702e-02 1.301793e-03 -1.343099e-02 4.225366e-06 3.886260e-02 4.781742e-03 -8.389653e-03 1.160858e-02 -1.344272e-02 1.018810e-06 3.556718e-02 -8.684505e-03 1.209823e-02 1.322046e-02 -1.345778e-02 1.411594e-03 2.144540e-02 -1.339386e-02 1.803109e-02 -1.027800e-03 -1.064838e-02 1.171596e-02 8.760948e-03 -1.023378e-02 1.002586e-02 -8.764660e-03 9.948429e-03 1.331773e-02 9.860074e-04 -5.857248e-03 4.804127e-04 -7.971993e-03 1.598420e-02 4.757727e-04 -2.929039e-03 -2.841609e-03 -5.944956e-03 -4.918430e-03 1.090379e-02 3.045780e-03 -4.664471e-03 -1.239898e-03 -9.386966e-03 -2.525326e-03 2.207394e-02 5.443663e-03 -5.372446e-03 -5.019966e-04 -1.102810e-02 -1.178026e-03 2.180168e-02 -5.761036e-03 -5.630587e-03 -1.872607e-04 -1.177645e-02 -5.332435e-04 1.056213e-02 -9.699272e-03 -5.708548e-03 -6.528715e-05 -1.212845e-02 -2.573267e-04 2.400938e-03 2.740484e-03 -5.722577e-03 -1.679606e-05 -1.232517e-02 -1.420778e-04 1.603185e-02 8.033065e-03 -5.703527e-03 -3.249794e-06 -1.244679e-02 -8.178260e-05 1.847093e-02 -3.565236e-03 -5.690504e-03 -1.006305e-05 -1.252298e-02 1.357671e-03 8.907948e-03 -9.854329e-03 -5.685107e-03 -1.668752e-05 -9.765735e-03 1.167209e-02 -1.241758e-03 -8.368593e-03 -5.685344e-03 -2.156662e-05 1.078849e-02 1.328910e-02 -7.844530e-03 -5.029552e-03 -5.689705e-03 -2.586606e-05 1.679154e-02 4.584504e-04 -1.132348e-02 -2.534189e-03 -5.698532e-03 -3.057671e-05 1.168791e-02 3.033909e-03 -1.293938e-02 -1.138077e-03 -5.712296e-03 -3.454633e-05 2.283896e-02 5.441732e-03 -1.362790e-02 9.352548e-04 -5.729033e-03 -3.913747e-05 2.255736e-02 -5.749536e-03 -1.109790e-02 1.151171e-02 -5.751944e-03 -4.663996e-05 1.132571e-02 -9.674662e-03 9.369292e-03 1.322291e-02 -5.783638e-03 -5.537980e-05 3.187426e-03 2.776168e-03 1.534439e-02 -9.769583e-04 -5.823961e-03 -6.241944e-05 1.685277e-02 8.083024e-03 7.418480e-03 -8.691860e-03 -5.869650e-03 -6.893411e-05 1.933603e-02 -2.092698e-03 -2.045013e-03 -7.894586e-03 -5.922907e-03 -7.757147e-05 1.265135e-02 1.931437e-03 -8.386874e-03 -4.837742e-03 -5.985759e-03 -8.721077e-05 2.317905e-02 6.448293e-03 -1.174371e-02 -2.443873e-03 -6.058162e-03 -9.647973e-05 2.553413e-02 5.853112e-03 -1.330156e-02 -1.099199e-03 -6.139399e-03 -1.051241e-04 3.487281e-02 2.229385e-03 -1.397078e-02 9.553021e-04 -6.228921e-03 -1.135536e-04 2.998579e-02 -9.826016e-03 -1.142036e-02 1.153363e-02 -6.326829e-03 -1.222050e-04 1.521087e-02 -1.384768e-02 9.069910e-03 1.466439e-02 -6.433447e-03 -1.309397e-04 2.272048e-03 -1.039275e-02 1.790456e-02 1.077699e-02 -6.548600e-03 -1.393605e-04 -5.600443e-03 -5.886833e-03 3.062983e-02 4.666811e-03 -6.671818e-03 -1.473265e-04 -9.531939e-03 -2.797592e-03 2.725824e-02 -8.789660e-03 -6.802644e-03 -1.548910e-04 -1.122820e-02 2.540502e-04 1.306683e-02 -1.346992e-02 -6.940716e-03 -1.621331e-04 -9.057387e-03 1.131155e-02 3.189716e-04 -1.028033e-02 -7.085736e-03 -1.690928e-04 1.136260e-02 1.324541e-02 -7.507386e-03 -5.879267e-03 -7.237423e-03 -1.757714e-04 1.741285e-02 -8.756194e-04 -1.146180e-02 -2.844961e-03 -7.395481e-03 -1.821485e-04 9.594242e-03 -8.555505e-03 -1.322393e-02 -1.229118e-03 -7.559590e-03 1.225465e-03 2.802324e-04 -7.739602e-03 -1.394862e-02 -4.794047e-04 -4.902076e-03 1.153014e-02 -5.911911e-03 -4.686062e-03 -1.421213e-02 1.260213e-03 1.553757e-02 1.316212e-02 -9.122392e-03 -2.295540e-03 -1.145787e-02 1.169971e-02 2.141608e-02 -1.084584e-03 -1.053533e-02 -9.523164e-04 9.160668e-03 1.336615e-02 1.334996e-02 -8.837938e-03 -1.106018e-02 -3.145173e-04 1.527068e-02 -8.586897e-04 3.738718e-03 -8.064116e-03 -1.119782e-02 1.365323e-03 7.446310e-03 -8.589085e-03 -2.759548e-03 -5.027221e-03 -8.363062e-03 1.177998e-02 -1.913143e-03 -7.788560e-03 -6.283340e-03 -2.647647e-03 1.233024e-02 1.344265e-02 -8.146846e-03 -4.729980e-03 -8.015049e-03 -1.311079e-03 1.850220e-02 -7.917655e-04 -1.139605e-02 -9.222554e-04 -8.862065e-03 -6.754056e-04 1.073021e-02 -8.532405e-03 -1.001791e-02 1.073204e-02 -9.320647e-03 -4.091624e-04 1.416432e-03 -7.742758e-03 1.004300e-02 1.298269e-02 -9.634212e-03 -3.033423e-04 -4.781598e-03 -4.695438e-03 1.594470e-02 4.192568e-04 -9.880495e-03 -2.515374e-04 -8.004294e-03 -2.311334e-03 1.088528e-02 3.102908e-03 -1.008993e-02 -2.335881e-04 -9.435966e-03 -9.743883e-04 2.214867e-02 5.560281e-03 -1.029988e-02 -2.326372e-04 -9.985592e-03 -3.409733e-04 2.201650e-02 -4.202489e-03 -1.050697e-02 -2.283784e-04 -1.015075e-02 -7.874185e-05 1.375420e-02 7.624499e-04 -1.070796e-02 -2.253191e-04 -1.017601e-02 2.202612e-05 2.354274e-02 4.508580e-03 -1.090851e-02 -2.250681e-04 -1.013964e-02 6.975994e-05 2.278356e-02 -6.048652e-03 -1.110858e-02 1.190405e-03 -1.006941e-02 8.452641e-05 1.145679e-02 -1.112328e-02 -8.477770e-03 1.150626e-02 -1.000347e-02 7.714353e-05 5.357991e-04 -8.875549e-03 1.194835e-02 1.456302e-02 -9.947970e-03 6.652078e-05 -6.307631e-03 -5.126375e-03 2.064973e-02 1.063732e-02 -9.903246e-03 5.699542e-05 -9.737861e-03 -2.445137e-03 3.320617e-02 4.531941e-03 -9.866768e-03 5.060075e-05 -1.122262e-02 -9.920094e-04 2.967039e-02 -8.926785e-03 -9.834813e-03 4.481366e-05 -1.174824e-02 1.118781e-03 1.531681e-02 -1.363028e-02 -9.809891e-03 3.660342e-05 -9.012003e-03 1.171855e-02 2.404203e-03 -1.046422e-02 -9.794341e-03 2.717584e-05 1.166495e-02 1.343580e-02 -5.590109e-03 -4.662821e-03 -9.788265e-03 1.806576e-05 1.785863e-02 -7.583583e-04 -6.883105e-03 8.678842e-03 -9.790933e-03 9.674380e-06 1.015413e-02 -8.474776e-03 1.180863e-02 1.193279e-02 -9.801641e-03 1.896251e-06 9.064250e-04 -7.682969e-03 1.698423e-02 -1.432368e-04 -9.819871e-03 -5.425236e-06 -5.224716e-03 -4.631339e-03 1.151303e-02 2.750154e-03 -9.845232e-03 -1.238053e-05 -8.375962e-03 -2.241019e-03 2.248692e-02 5.302332e-03 -9.877387e-03 -1.899488e-05 -9.729959e-03 5.166062e-04 2.209700e-02 -5.838786e-03 -9.915996e-03 -2.525626e-05 -7.367456e-03 1.146447e-02 1.078948e-02 -1.117841e-02 -9.960696e-03 -3.113499e-05 1.317690e-02 1.333835e-02 -2.559141e-04 -9.051760e-03 -1.001109e-02 -3.660044e-05 1.930995e-02 -8.075407e-04 -7.286923e-03 -3.948550e-03 -1.006675e-02 -4.162479e-05 1.156932e-02 -8.492189e-03 -8.111111e-03 9.026367e-03 -1.012722e-02 1.367732e-03 2.324484e-03 -7.681410e-03 1.080945e-02 1.212212e-02 -7.364200e-03 1.167214e-02 -3.804837e-03 -4.631165e-03 1.613699e-02 -1.420990e-03 1.318572e-02 1.327910e-02 -6.955980e-03 -2.242842e-03 7.960124e-03 -8.876054e-03 1.917446e-02 -9.755495e-04 -8.312150e-03 -9.015412e-04 -1.605265e-03 -7.984278e-03 1.121851e-02 -7.303579e-03 -8.782196e-03 -2.637553e-04 -7.978475e-03 -4.882008e-03 4.546623e-03 3.793156e-03 -8.863315e-03 4.051431e-06 -1.132592e-02 -2.471254e-03 1.878032e-02 8.451180e-03 -8.797838e-03 1.085528e-04 -1.287059e-02 -1.124140e-03 2.143265e-02 -3.413942e-03 -8.669881e-03 1.568012e-04 -1.352057e-02 9.352260e-04 1.193762e-02 -9.811835e-03 -8.507765e-03 1.715864e-04 -1.094513e-02 1.152263e-02 1.788714e-03 -8.381942e-03 -8.350059e-03 1.672484e-04 9.574285e-03 1.327480e-02 -4.852345e-03 -5.063585e-03 -8.196443e-03 1.630868e-04 1.561093e-02 5.064054e-04 -8.368348e-03 -2.567819e-03 -8.046890e-03 1.592027e-04 1.058086e-02 3.096054e-03 -1.001989e-02 -1.170626e-03 -7.900877e-03 1.569699e-04 2.180738e-02 6.932885e-03 -1.074246e-02 -5.097196e-04 -7.755627e-03 1.547701e-04 2.442737e-02 6.048921e-03 -1.107260e-02 1.174913e-03 -7.613853e-03 1.500316e-04 3.388045e-02 2.326261e-03 -8.426089e-03 1.159378e-02 -7.477922e-03 1.440256e-04 2.903525e-02 -9.794175e-03 1.208302e-02 1.326390e-02 -7.348010e-03 1.382170e-04 1.425764e-02 -1.386000e-02 1.808153e-02 4.525227e-04 -7.223552e-03 1.329238e-04 1.311850e-03 -1.042691e-02 1.297133e-02 3.026470e-03 -7.104088e-03 1.279788e-04 -6.572358e-03 -5.938106e-03 2.411480e-02 5.433213e-03 -6.989388e-03 1.231766e-04 -1.052396e-02 -2.863085e-03 2.382448e-02 -5.762742e-03 -6.879401e-03 1.532521e-03 -1.224982e-02 -1.235994e-03 1.257587e-02 -1.110968e-02 -3.945890e-03 1.183721e-02 -1.294361e-02 -4.910113e-04 1.585233e-03 -8.973106e-03 1.677673e-02 1.343893e-02 -1.317805e-02 -1.670972e-04 -5.396541e-03 -3.864529e-03 2.293666e-02 -8.217298e-04 -1.322352e-02 -3.737007e-05 -6.174030e-03 9.106870e-03 1.514479e-02 -8.567758e-03 -1.319841e-02 1.881345e-05 1.278655e-02 1.217157e-02 5.804028e-03 -7.780991e-03 -1.313157e-02 4.011065e-05 1.814934e-02 -1.380656e-03 -4.246663e-04 -4.734658e-03 -1.306400e-02 4.058121e-05 1.000854e-02 -8.825828e-03 -3.679673e-03 -2.350856e-03 -1.299636e-02 1.454405e-03 4.763177e-04 -7.922757e-03 -5.144374e-03 -1.013974e-03 -1.010128e-02 1.176615e-02 -5.863812e-03 -4.812673e-03 -5.727240e-03 -3.801886e-04 1.058377e-02 1.340345e-02 -9.179501e-03 -2.401080e-03 -5.925017e-03 1.298192e-03 1.670996e-02 -8.408753e-04 -1.069835e-02 -1.056718e-03 -3.151342e-03 1.170947e-02 8.893473e-03 -8.591413e-03 -1.132618e-02 -4.125596e-04 1.747652e-02 1.336425e-02 -4.649848e-04 -7.814289e-03 -1.155707e-02 -1.371702e-04 2.358263e-02 -8.743487e-04 -6.707545e-03 -4.774674e-03 -1.163426e-02 1.391428e-03 1.574007e-02 -8.620632e-03 -9.973648e-03 -2.393342e-03 -8.807996e-03 1.176161e-02 6.344910e-03 -7.837666e-03 -1.144668e-02 -1.055939e-03 1.185680e-02 1.340108e-02 5.785795e-05 -4.794068e-03 -1.203488e-02 -4.202253e-04 1.797385e-02 -8.416809e-04 -3.257075e-03 -2.411431e-03 -1.223525e-02 -1.546386e-04 1.015664e-02 -8.574521e-03 -4.782531e-03 -1.076795e-03 -1.229185e-02 1.364052e-03 8.035276e-04 -7.778858e-03 -5.429884e-03 -4.458613e-04 -9.454718e-03 1.172855e-02 -5.427727e-03 -4.724901e-03 -5.694190e-03 -1.836396e-04 1.121171e-02 1.338665e-02 -8.676497e-03 -2.334572e-03 -5.817392e-03 -8.102363e-05 1.732159e-02 -8.565379e-04 -1.012896e-02 4.230746e-04 -5.876604e-03 -2.974966e-05 9.488801e-03 -8.608066e-03 -7.863266e-03 1.137463e-02 -5.897324e-03 -1.282652e-05 1.120962e-04 -7.832767e-03 1.258868e-02 1.325853e-02 -5.922712e-03 -1.872098e-05 -6.150386e-03 -4.794349e-03 1.863390e-02 5.315258e-04 -5.955249e-03 -2.591114e-05 -9.437090e-03 -2.413274e-03 1.363531e-02 3.159198e-03 -5.995053e-03 -3.279576e-05 -1.093051e-02 -1.075374e-03 2.493301e-02 5.586440e-03 -6.041404e-03 -3.897732e-05 -1.153828e-02 -4.386400e-04 2.479538e-02 -5.611463e-03 -6.093622e-03 -4.461732e-05 -1.175695e-02 -1.716654e-04 1.369719e-02 -1.096048e-02 -6.151311e-03 -5.014253e-05 -1.183031e-02 1.348692e-03 2.855178e-03 -8.826571e-03 -6.214644e-03 -5.591025e-05 -9.008114e-03 1.171487e-02 -3.981421e-03 -5.138967e-03 -6.283938e-03 -6.149631e-05 1.164495e-02 1.337325e-02 -7.452149e-03 -2.484808e-03 -6.358520e-03 -6.509922e-05 1.774048e-02 -8.695282e-04 -8.982420e-03 -1.035932e-03 -6.435103e-03 -6.812965e-05 9.895182e-03 -7.204120e-03 -9.556273e-03 -3.417306e-04 -6.515831e-03 -7.318853e-05 3.338026e-03 3.887738e-03 -9.698471e-03 -5.251606e-05 -6.602621e-03 -7.929924e-05 1.769022e-02 8.568378e-03 -9.693976e-03 5.483248e-05 -6.695666e-03 -8.528261e-05 2.046417e-02 -3.290239e-03 -9.621475e-03 1.522476e-03 -6.794526e-03 -9.084087e-05 1.109331e-02 -9.698190e-03 -6.681651e-03 1.185008e-02 -6.898798e-03 -9.732792e-05 1.071057e-03 -8.278058e-03 1.404775e-02 1.345921e-02 -7.010748e-03 -1.035080e-04 -5.438476e-03 -4.964848e-03 2.021771e-02 -7.942522e-04 -7.127504e-03 -1.068356e-04 -8.820623e-03 -2.471217e-03 1.244373e-02 -8.537314e-03 -7.246238e-03 -1.083549e-04 -1.033578e-02 3.388460e-04 3.123109e-03 -7.751403e-03 -7.366165e-03 -1.095052e-04 -8.094619e-03 1.130978e-02 -3.084389e-03 -4.705186e-03 -7.487333e-03 -1.105043e-04 1.232738e-02 1.321615e-02 -6.316140e-03 -2.320386e-03 -7.609392e-03 -1.099277e-04 1.833834e-02 -9.186641e-04 -7.755892e-03 -9.840372e-04 -7.729542e-03 1.304719e-03 1.047808e-02 -8.610925e-03 -8.315772e-03 -3.517908e-04 -5.022440e-03 1.161092e-02 1.121045e-03 -7.807154e-03 -8.491352e-03 -8.861291e-05 1.547281e-02 1.321354e-02 -5.112003e-03 -4.762152e-03 -8.524976e-03 1.440380e-05 2.140789e-02 -1.041196e-03 -8.365928e-03 -2.378088e-03 -8.494543e-03 6.417054e-05 1.340024e-02 -8.778580e-03 -9.824008e-03 3.769966e-04 -8.428616e-03 7.924651e-05 3.851676e-03 -7.984858e-03 -7.564699e-03 1.133005e-02 -8.367993e-03 7.367378e-05 -2.579115e-03 -4.932710e-03 1.287857e-02 1.323907e-02 -8.313177e-03 6.767432e-05 -6.030519e-03 -2.541488e-03 1.891295e-02 -8.956488e-04 -8.264521e-03 6.137952e-05 -7.682694e-03 2.173087e-04 1.107409e-02 -8.589443e-03 -8.222267e-03 5.487422e-05 -5.618337e-03 1.116444e-02 1.737370e-03 -7.786741e-03 -8.186597e-03 4.821156e-05 1.462603e-02 1.303541e-02 -4.476458e-03 -3.324560e-03 -8.157648e-03 4.165047e-05 2.045479e-02 -1.112604e-03 -4.875756e-03 9.377801e-03 -8.135084e-03 1.450510e-03 1.240960e-02 -8.794007e-03 1.431598e-02 1.235899e-02 -5.288403e-03 1.175391e-02 2.866629e-03 -7.977039e-03 1.983872e-02 -1.246282e-03 1.534260e-02 1.335690e-02 -3.555217e-03 -4.922025e-03 1.180829e-02 -8.728218e-03 2.140709e-02 -9.029173e-04 -6.995278e-03 -1.116142e-03 2.384044e-03 -7.840779e-03 1.352193e-02 -8.648102e-03 -5.809174e-03 1.053669e-02 -3.851696e-03 -4.743760e-03 4.091532e-03 -7.862607e-03 1.405775e-02 1.419742e-02 -7.068796e-03 -2.339369e-03 -2.228044e-03 -4.820520e-03 2.258735e-02 1.052142e-02 -8.488991e-03 -9.969825e-04 -5.577894e-03 -2.441335e-03 3.511173e-02 4.497622e-03 -9.018332e-03 -3.538536e-04 -7.141022e-03 -1.107776e-03 3.160762e-02 -8.904429e-03 -9.151156e-03 -8.149943e-05 -7.824650e-03 -4.761365e-04 1.732402e-02 -1.356502e-02 -9.135509e-03 2.514076e-05 -8.124891e-03 -2.143935e-04 4.482883e-03 -1.037821e-02 -9.055086e-03 7.818099e-05 -8.285206e-03 -1.131267e-04 -3.441343e-03 -5.980826e-03 -8.933528e-03 9.952302e-05 -8.383006e-03 -6.431598e-05 -7.496500e-03 -2.949730e-03 -8.810677e-03 1.012022e-04 -8.445754e-03 -4.889670e-05 -9.363032e-03 -1.336236e-03 -8.686018e-03 9.993441e-05 -8.512752e-03 -5.156808e-05 -1.019327e-02 -5.869040e-04 -8.565965e-03 9.538836e-05 -8.580882e-03 -5.381724e-05 -1.056206e-02 -2.614523e-04 -8.450651e-03 1.505779e-03 -8.652417e-03 -5.790479e-05 -1.074180e-02 -1.329014e-04 -5.510058e-03 1.181603e-02 -8.728763e-03 -6.112669e-05 -1.085369e-02 -7.784336e-05 1.521957e-02 1.486615e-02 -8.806785e-03 -6.353879e-05 -1.092344e-02 -5.458168e-05 2.421684e-02 1.093106e-02 -8.888000e-03 -6.730226e-05 -1.098888e-02 -4.982871e-05 3.705735e-02 4.814741e-03 -8.973596e-03 -7.126657e-05 -1.104920e-02 1.370404e-03 3.379500e-02 -8.653455e-03 -9.062789e-03 -7.415789e-05 -8.274244e-03 1.168379e-02 1.970598e-02 -1.336421e-02 -9.154219e-03 -7.555566e-05 1.229528e-02 1.328978e-02 7.051742e-03 -1.020580e-02 -9.246260e-03 -7.431948e-05 1.830504e-02 -9.641399e-04 -6.938634e-04 -5.829509e-03 -9.335270e-03 1.341666e-03 1.037339e-02 -8.699263e-03 -4.579234e-03 -2.813853e-03 -6.595392e-03 1.165014e-02 9.041101e-04 -7.902155e-03 -6.285359e-03 -1.212822e-03 1.393412e-02 1.325825e-02 -5.443832e-03 -4.846998e-03 -6.965081e-03 -4.745786e-04 1.990199e-02 4.186970e-04 -8.809838e-03 -2.454982e-03 -7.193291e-03 -1.581134e-04 1.475582e-02 2.989746e-03 -1.037748e-02 -1.109951e-03 -7.239603e-03 -3.679545e-05 2.586283e-02 5.394851e-03 -1.105516e-02 -4.679358e-04 -7.225079e-03 8.801468e-06 2.553325e-02 -5.804566e-03 -1.133953e-02 -1.951581e-04 -7.180228e-03 1.891022e-05 1.424124e-02 -1.115381e-02 -1.147197e-02 1.330467e-03 -7.145581e-03 8.914288e-06 3.206681e-03 -9.016998e-03 -8.705231e-03 1.169450e-02 -7.120795e-03 -7.828112e-07 -3.818029e-03 -5.322690e-03 1.189345e-02 1.332040e-02 -7.105594e-03 -1.032238e-05 -7.467998e-03 -2.659209e-03 1.793485e-02 -9.333002e-04 -7.099919e-03 -1.988428e-05 -9.167839e-03 -1.202959e-03 1.003283e-02 -7.256618e-03 -7.103853e-03 -2.981860e-05 -9.906282e-03 -5.048250e-04 3.418823e-03 3.846836e-03 -7.118039e-03 -4.176675e-05 -1.021028e-02 -2.122932e-04 1.771638e-02 8.506803e-03 -7.145840e-03 -5.418453e-05 -1.036383e-02 1.313647e-03 2.043816e-02 -3.354075e-03 -7.184802e-03 -6.290168e-05 -7.616037e-03 1.168192e-02 1.101698e-02 -9.745658e-03 -7.229956e-03 -7.029419e-05 1.296852e-02 1.331713e-02 9.451518e-04 -8.310314e-03 -7.283608e-03 -8.016698e-05 1.899854e-02 -9.294651e-04 -5.616512e-03 -4.988267e-03 -7.348395e-03 -9.156575e-05 1.109338e-02 -7.245634e-03 -9.051525e-03 -2.490321e-03 -7.424709e-03 -1.028937e-04 4.486530e-03 3.862362e-03 -1.062111e-02 -1.092044e-03 -7.511990e-03 -1.136313e-04 1.879357e-02 8.528218e-03 -1.126131e-02 -4.308512e-04 -7.609596e-03 -1.237986e-04 2.152664e-02 -3.327651e-03 -1.150921e-02 -1.604686e-04 -7.717007e-03 -1.335028e-04 1.212351e-02 -9.715718e-03 -1.160892e-02 1.362500e-03 -7.833795e-03 -1.428031e-04 2.075047e-03 -8.278739e-03 -8.811004e-03 1.172448e-02 -7.959562e-03 -1.517076e-04 -4.459891e-03 -3.541258e-03 1.181636e-02 1.334920e-02 -8.093894e-03 -1.599635e-04 -5.037134e-03 9.267702e-03 1.788658e-02 -9.022138e-04 -8.235890e-03 -1.661476e-04 1.404551e-02 1.228001e-02 1.001785e-02 -8.637798e-03 -8.382293e-03 -1.717639e-04 1.950383e-02 -1.306153e-03 6.081819e-04 -7.843663e-03 -8.535213e-03 -1.792737e-04 1.141729e-02 -8.770591e-03 -5.682714e-03 -3.376237e-03 -8.696314e-03 -1.871012e-04 1.942091e-03 -7.868163e-03 -6.164509e-03 9.322970e-03 -8.864551e-03 -1.923470e-04 -4.345033e-03 -4.760960e-03 1.294247e-02 1.227249e-02 -9.035789e-03 -1.961967e-04 -7.609430e-03 -2.348024e-03 1.838091e-02 7.430043e-05 -9.211365e-03 -2.012958e-04 -9.072555e-03 -1.000206e-03 1.309755e-02 2.915121e-03 -9.392433e-03 -2.067731e-04 -9.642156e-03 -3.540358e-04 2.421176e-02 5.422233e-03 -9.578583e-03 -2.128717e-04 -9.813266e-03 1.334610e-03 2.395495e-02 -5.724075e-03 -9.771457e-03 -2.180075e-04 -7.005673e-03 1.175327e-02 1.277627e-02 -1.105105e-02 -9.967473e-03 -2.196080e-04 1.366215e-02 1.341743e-02 1.853113e-03 -8.914569e-03 -1.016314e-02 -2.185296e-04 1.980991e-02 -8.151273e-04 -5.064731e-03 -5.223598e-03 -1.035658e-02 -2.151246e-04 1.201615e-02 -7.138882e-03 -8.613614e-03 -2.566379e-03 -1.054503e-02 -2.130280e-04 5.511926e-03 3.963063e-03 -1.022096e-02 -1.117003e-03 -1.073389e-02 -2.134063e-04 1.991833e-02 8.624976e-03 -1.087287e-02 -4.234177e-04 -1.092269e-02 1.201840e-03 2.274619e-02 -3.239868e-03 -1.109377e-02 -1.330205e-04 -8.280662e-03 1.151783e-02 1.342453e-02 -9.639704e-03 -1.116513e-02 -2.374242e-05 1.215695e-02 1.457477e-02 3.447377e-03 -8.210991e-03 -1.116755e-02 3.012476e-05 2.086989e-02 1.064766e-02 -3.022581e-03 -4.893743e-03 -1.113118e-02 4.878832e-05 3.343497e-02 4.540772e-03 -6.368952e-03 -2.400503e-03 -1.109623e-02 4.767277e-05 2.990773e-02 -7.501264e-03 -7.854348e-03 -1.009205e-03 -1.106206e-02 4.715696e-05 1.839615e-02 -1.886279e-03 -8.418975e-03 -3.561402e-04 -1.102810e-02 4.707201e-05 2.612308e-02 2.922430e-03 -8.598566e-03 -9.226089e-05 -1.099406e-02 1.461342e-03 2.421268e-02 -6.932386e-03 -8.635537e-03 1.135469e-05 -8.131523e-03 1.177110e-02 1.223399e-02 -1.165270e-02 -8.607918e-03 6.157765e-05 1.252520e-02 1.337823e-02 9.081441e-04 -9.259788e-03 -8.544428e-03 7.694490e-05 1.862491e-02 -8.750761e-04 -6.260912e-03 -4.050900e-03 -8.486038e-03 7.171461e-05 1.078179e-02 -8.613123e-03 -7.153910e-03 8.978136e-03 -8.432975e-03 6.749354e-05 1.396711e-03 -7.820752e-03 1.173698e-02 1.209376e-02 -8.382996e-03 6.286823e-05 -4.872078e-03 -4.771935e-03 1.703553e-02 -3.338836e-05 -8.339155e-03 5.542835e-05 -8.166476e-03 -2.385882e-03 1.166097e-02 2.827895e-03 -8.304031e-03 4.654650e-05 -9.666814e-03 3.712099e-04 2.269338e-02 5.362469e-03 -8.277934e-03 3.775292e-05 -7.448692e-03 1.131894e-02 2.236479e-02 -5.774124e-03 -8.260382e-03 2.941907e-05 1.294890e-02 1.319169e-02 1.112470e-02 -1.110865e-02 -8.250942e-03 2.141817e-05 1.893513e-02 -9.557051e-04 1.506832e-04 -7.565312e-03 -8.249387e-03 1.358064e-05 1.104458e-02 -8.641211e-03 -3.979655e-03 6.437011e-03 -8.255621e-03 5.814266e-06 1.651043e-03 -7.828832e-03 1.305965e-02 1.073489e-02 -8.269602e-03 -1.903320e-06 -4.625170e-03 -4.777187e-03 1.748924e-02 -2.054314e-03 -8.291280e-03 -9.553506e-06 -7.922375e-03 -2.387925e-03 8.940840e-03 -7.689975e-03 -8.320574e-03 -1.735052e-05 -9.423721e-03 -1.045372e-03 2.117081e-03 3.696928e-03 -8.357862e-03 -2.686353e-05 -1.003748e-02 -4.059739e-04 1.635683e-02 8.493254e-03 -8.406203e-03 -3.698991e-05 -1.026072e-02 1.276543e-03 1.909578e-02 -3.302273e-03 -8.463772e-03 -4.654367e-05 -7.509693e-03 1.169179e-02 9.738721e-03 -9.682199e-03 -8.531254e-03 -5.504312e-05 1.310062e-02 1.335146e-02 -2.625046e-04 -6.841870e-03 -8.605860e-03 -6.103900e-05 1.919384e-02 -8.808305e-04 -3.917883e-03 6.786706e-03 -8.685376e-03 -6.601740e-05 1.134633e-02 -8.616751e-03 1.334573e-02 1.091989e-02 -8.769985e-03 -7.283370e-05 1.959010e-03 -7.822324e-03 1.792042e-02 -1.924586e-03 -8.863183e-03 -8.040657e-05 -4.310057e-03 -3.356351e-03 9.485463e-03 -9.012143e-03 -8.962991e-03 -8.578800e-05 -4.772387e-03 9.340228e-03 -9.722323e-05 -7.963244e-03 -9.067008e-03 -8.962502e-05 1.435119e-02 1.228690e-02 -6.414238e-03 -4.812853e-03 -9.174550e-03 -9.311644e-05 1.980342e-02 -1.327705e-03 -9.682862e-03 -2.373572e-03 -9.285612e-03 1.317550e-03 1.170383e-02 -8.796701e-03 -1.111444e-02 -1.012397e-03 -6.571885e-03 1.162450e-02 2.209087e-03 -7.897962e-03 -1.165771e-02 -3.734277e-04 1.393251e-02 1.323386e-02 -4.103558e-03 -4.794792e-03 -1.181021e-02 -1.051856e-04 1.987672e-02 -1.020483e-03 -7.398963e-03 -2.386244e-03 -1.181667e-02 1.579324e-06 1.187583e-02 -7.347325e-03 -8.898167e-03 -1.043112e-03 -1.175562e-02 5.489093e-05 5.161774e-03 3.751174e-03 -9.508970e-03 -4.030698e-04 -1.165559e-02 7.361671e-05 1.935403e-02 8.408918e-03 -9.728767e-03 -1.342152e-04 -1.155730e-02 7.165900e-05 2.196360e-02 -3.457531e-03 -9.802105e-03 -2.659235e-05 -1.146139e-02 6.910054e-05 1.242446e-02 -9.858257e-03 -9.806737e-03 1.442774e-03 -1.136843e-02 6.557367e-05 2.227105e-03 -8.430840e-03 -6.941348e-03 1.177169e-02 -1.127976e-02 6.142004e-05 -4.463052e-03 -5.112992e-03 1.371503e-02 1.337575e-02 -1.119529e-02 1.470977e-03 -8.028548e-03 -2.617565e-03 1.981144e-02 -8.792419e-04 -8.287689e-03 1.177838e-02 -9.729896e-03 -1.220678e-03 1.196460e-02 -8.616063e-03 1.240548e-02 1.341123e-02 -1.050259e-02 -5.601152e-04 2.578673e-03 -7.822031e-03 1.853526e-02 -8.376891e-04 -1.088326e-02 1.124326e-03 -3.690516e-03 -4.772495e-03 1.071772e-02 -8.592936e-03 -8.287292e-03 1.154427e-02 -6.984325e-03 -2.386951e-03 1.353443e-03 -7.820627e-03 1.217342e-02 1.321381e-02 -8.486077e-03 -1.047853e-03 -4.899794e-03 -4.785919e-03 1.812020e-02 3.993019e-04 -9.103357e-03 -4.112985e-04 -8.181511e-03 -2.409570e-03 1.295531e-02 2.971366e-03 -9.332685e-03 -1.451721e-04 -9.675151e-03 -1.077206e-03 2.404325e-02 5.377576e-03 -9.417966e-03 -4.002317e-05 -1.028900e-02 -4.465680e-04 2.369714e-02 -5.818698e-03 -9.437091e-03 1.215827e-05 -1.052007e-02 -1.860774e-04 1.239234e-02 -1.116614e-02 -9.418030e-03 1.444099e-03 -1.061246e-02 -8.639538e-05 1.344863e-03 -9.030541e-03 -6.573252e-03 1.174980e-02 -1.064397e-02 -3.944387e-05 -5.695078e-03 -5.338645e-03 1.406037e-02 1.335411e-02 -1.064238e-02 -2.632894e-05 -9.362804e-03 -2.678460e-03 2.013665e-02 5.141451e-04 -1.064767e-02 -3.313223e-05 -1.108448e-02 -1.223424e-03 1.509708e-02 3.081821e-03 -1.065968e-02 -3.976073e-05 -1.184312e-02 -5.237006e-04 2.630312e-02 5.475858e-03 -1.067820e-02 -4.617315e-05 -1.216578e-02 1.183225e-03 2.606405e-02 -5.730318e-03 -1.070300e-02 -5.232999e-05 -9.510755e-03 1.160271e-02 1.485748e-02 -1.108241e-02 -1.073378e-02 -5.819359e-05 1.100707e-02 1.327178e-02 3.901803e-03 -8.949211e-03 -1.077023e-02 -6.372811e-05 1.701202e-02 -9.543703e-04 -3.050531e-03 -5.261386e-03 -1.081201e-02 -6.889988e-05 9.080979e-03 -8.687475e-03 -6.638266e-03 -2.609326e-03 -1.085872e-02 1.340233e-03 -3.848353e-04 -7.890463e-03 -8.290459e-03 -1.164780e-03 -8.082134e-03 1.164812e-02 -6.727276e-03 -4.834921e-03 -8.990936e-03 -4.760049e-04 1.248110e-02 1.328233e-02 -1.008564e-02 -1.027456e-03 -9.266354e-03 -1.936227e-04 1.848288e-02 -9.643416e-04 -8.815082e-03 1.062953e-02 -9.402373e-03 -9.297378e-05 1.054014e-02 -8.716503e-03 1.114124e-02 1.288562e-02 -9.476644e-03 -4.477530e-05 1.054296e-03 -6.526382e-03 1.693545e-02 -1.092918e-03 -9.516348e-03 -3.000486e-05 -2.488259e-03 6.825257e-03 8.938013e-03 -8.720605e-03 -9.561123e-03 -3.494770e-05 1.473662e-02 1.084516e-02 -5.277449e-04 -6.455992e-03 -9.610762e-03 -3.975886e-05 1.919767e-02 -2.059556e-03 -4.001383e-03 6.927997e-03 -9.665214e-03 -4.455012e-05 1.060374e-02 -9.171151e-03 1.329885e-02 1.093027e-02 -9.724496e-03 -4.936851e-05 8.596604e-04 -6.709445e-03 1.783967e-02 -1.976272e-03 -9.788650e-03 -5.422191e-05 -2.790379e-03 6.753073e-03 9.329426e-03 -9.072684e-03 -9.857711e-03 -5.909913e-05 1.439825e-02 1.083037e-02 -3.274593e-04 -6.595506e-03 -9.931696e-03 -6.398433e-05 1.886667e-02 -2.051632e-03 -3.888882e-03 6.873887e-03 -1.001061e-02 -6.885889e-05 1.028191e-02 -9.161780e-03 1.339098e-02 1.093035e-02 -1.009443e-02 -7.370231e-05 5.480743e-04 -8.112877e-03 1.795240e-02 -1.955370e-03 -1.018312e-02 -7.849321e-05 -5.918411e-03 -4.961028e-03 9.463425e-03 -9.051427e-03 -1.027663e-02 -8.312359e-05 -9.334957e-03 -1.106275e-03 -1.721380e-04 -7.988338e-03 -1.037468e-02 -8.715306e-05 -8.084754e-03 1.056963e-02 -6.540458e-03 -4.827920e-03 -1.047635e-02 -9.130346e-05 1.184788e-02 1.285084e-02 -9.858839e-03 -2.382650e-03 -1.058282e-02 -9.629359e-05 1.761860e-02 -1.118299e-03 -1.133852e-02 -1.017725e-03 -1.069459e-02 1.312608e-03 9.600826e-03 -8.753178e-03 -1.192790e-02 -3.757777e-04 -7.983381e-03 1.161583e-02 1.186485e-04 -7.912596e-03 -1.212403e-02 -1.045491e-04 1.251430e-02 1.321689e-02 -6.198032e-03 -4.843255e-03 -1.217106e-02 5.595102e-06 1.845036e-02 3.742614e-04 -9.528248e-03 -2.451641e-03 -1.214693e-02 6.280957e-05 1.326937e-02 2.942092e-03 -1.105470e-02 -1.103365e-03 -1.207952e-02 8.599600e-05 2.433535e-02 6.751265e-03 -1.168516e-02 -4.559954e-04 -1.200897e-02 8.910409e-05 2.678498e-02 5.853678e-03 -1.191554e-02 -1.776815e-04 -1.193531e-02 9.220662e-05 3.605849e-02 2.107487e-03 -1.198889e-02 1.354522e-03 -1.185851e-02 9.532594e-05 3.102603e-02 -1.001211e-02 -9.154710e-03 1.173190e-02 -1.177856e-02 9.848441e-05 1.605477e-02 -1.406005e-02 1.152075e-02 1.481501e-02 -1.169541e-02 1.017090e-04 2.909822e-03 -1.061096e-02 2.047767e-02 1.089657e-02 -1.160896e-02 1.518935e-03 -5.177840e-03 -6.111736e-03 3.329742e-02 4.799375e-03 -8.691307e-03 1.183083e-02 -9.333306e-03 -3.031129e-03 3.003301e-02 -8.652500e-03 1.202060e-02 1.485885e-02 -1.126436e-02 -1.401656e-03 1.595586e-02 -1.334824e-02 2.100617e-02 1.091971e-02 -1.216303e-02 -6.563403e-04 3.329562e-03 -1.017169e-02 3.384495e-02 4.795504e-03 -1.260445e-02 -3.371674e-04 -4.367943e-03 -4.360182e-03 3.058948e-02 -8.660434e-03 -1.286525e-02 -2.137277e-04 -5.355037e-03 8.990126e-03 1.651452e-02 -1.193105e-02 -1.306009e-02 -1.591848e-04 1.365015e-02 1.224870e-02 6.709742e-03 1.560945e-03 -1.321202e-02 -1.354273e-04 1.914024e-02 -1.237900e-03 1.961315e-02 7.567585e-03 -1.335951e-02 1.282967e-03 1.116069e-02 -8.648633e-03 2.182905e-02 -3.652253e-03 -1.067482e-02 1.159420e-02 1.846095e-03 -7.722566e-03 1.229405e-02 -9.775880e-03 9.803143e-03 1.319686e-02 -4.261736e-03 -4.605979e-03 2.257235e-03 -8.232971e-03 1.571586e-02 -1.060309e-03 -7.330321e-03 -2.182013e-03 -4.197705e-03 -4.854600e-03 7.686040e-03 -7.379797e-03 -8.583769e-03 -8.225008e-04 -7.481482e-03 -2.333855e-03 9.508785e-04 3.730257e-03 -8.930694e-03 -1.648622e-04 -8.896814e-03 -9.398884e-04 1.513369e-02 8.396018e-03 -8.868136e-03 1.227236e-04 -9.393470e-03 -2.845718e-04 1.774579e-02 -3.460232e-03 -8.640021e-03 2.497272e-04 -9.498454e-03 -8.525584e-06 8.218998e-03 -9.847865e-03 -8.323935e-03 3.242719e-04 -9.443078e-03 1.131936e-04 -1.954743e-03 -8.408776e-03 -7.947395e-03 3.652411e-04 -9.304592e-03 1.714332e-04 -8.614636e-03 -5.082897e-03 -7.550162e-03 3.865422e-04 -9.132657e-03 1.908393e-04 -1.214401e-02 -2.580862e-03 -7.131855e-03 4.082540e-04 -8.955261e-03 1.935190e-04 -1.380374e-02 -1.645126e-03 -6.692078e-03 4.194510e-04 pymvpa2-2.6.4/mvpa2/data/haxby2001/000077500000000000000000000000001323370031300164705ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/model_key.txt000066400000000000000000000000421323370031300211750ustar00rootroot00000000000000model001 visual object categories pymvpa2-2.6.4/mvpa2/data/haxby2001/models/000077500000000000000000000000001323370031300177535ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/models/model001/000077500000000000000000000000001323370031300212745ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/models/model001/condition_key.txt000066400000000000000000000002671323370031300247000ustar00rootroot00000000000000task001 cond001 house task001 cond002 scrambledpix task001 cond003 cat task001 cond004 shoe task001 cond005 bottle task001 cond006 scissors task001 cond007 chair task001 cond008 face pymvpa2-2.6.4/mvpa2/data/haxby2001/models/model001/task_contrasts.txt000066400000000000000000000000661323370031300251010ustar00rootroot00000000000000task001 face_v_house -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 pymvpa2-2.6.4/mvpa2/data/haxby2001/scan_key.txt000066400000000000000000000000071323370031300210220ustar00rootroot00000000000000TR 2.5 pymvpa2-2.6.4/mvpa2/data/haxby2001/study_key.txt000066400000000000000000000000321323370031300212440ustar00rootroot00000000000000Visual object recognition pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/000077500000000000000000000000001323370031300175025ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/000077500000000000000000000000001323370031300202225ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run001/000077500000000000000000000000001323370031300225125ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run001/bold_1slice.nii.gz000066400000000000000000003204201323370031300260130ustar00rootroot00000000000000‹Ľ˜G»­ýVw=ÒÜÝÝÝapw‡àî ‡www‡Á‚{‚»sÖÌ>{ ?g7 ï<]U]µîµÚ¦¦ñ}ÅÖÎg}É}‘}Æ×¿}¼Y_ø ÿ÷ÞÔ¨Q‘ü>_›ÿû;~þ?·¸>“ïÿ~Êw?‘_H{+R¡d–´é¿¦]ÿÿ¶÷ýø¯6´-èëvkàŸÑÍÿý¹ ¿ÚûøñÿúÌG÷ÉÖ*U†ÿÙÆ~å¶ÄÁ, þ*¼)oªÕþç–Ö,2?9wÂîb§‰ ‹*1L#'ª“¿GÇû¦jÍîÛŠS^ªnß9œ}ÎP“؆³EÜbîT¥ojg;™jQLK(.µmì1³ÍLŨ›Ía;Ù&¶¹sç«*=5GMSš÷ÒdªNûh?%墔›&ÙøêÕ¥vT“ŠÚêÖ³—¿¢^·Ÿ;Õ®£ó4ƒÆP=Cű‘cq^ì#_¡:ôÄ6§QtßÎûbŸo˜ô·ÝnKS$.Ì}ÈŸ²RúnS"ÎÎkÑ>ÿíNi E¢RnÖ/T¬ïΡCTŸ>L£))M§6t…ð6žÊ]¹(ï¡K´.ÒcºAi¥¶LÚÏÔ¼àkêTCÿFR**J¿“RFN;(ÿɱè- åj†wS86¼„áXÍ¥]tÁÖtŸ„Pí„™ã&¥ud¸µB¿nQ}ªBCÑ¿7¨Õζwx7·äF|ŠvÓ&ú•JP,ïB4ËýgµŒ¦ƒ»ÌþL„ïhÏi9Ï¥&hccžÁ]x0'—BøÓ-~Âë¸gáût‚þ¤S”“-§rߘ·ŸÔkåL¶]©+çƒ|Œk¡_‹é>5åÂâ'MäºdÓ(S.òRT¶âß“`'y'–|¼Ïæ¶Ÿö8«sÕV¡–T•׳'Ëù á­\A ˆÊki­Mõ¥žÕ]AšKÆù¸Fõ§”\žJRv3飣2ÃqÑ¿•š; …e8‡“ïeäa²[çjï¬Fö²Én ÅdªÅå]œTÙÅçi+…rÿú¨ÞXò]‡˜~|›·Éï2CÚð]±Þrͤ…5·\XŽH&}Àkøþ·ð)%ÉÑŸø6Zp½x¦°Óó57ÇU1ÿïÓ(þEÎJ ¯É$ºÑBZ@;éS-©û%æÐªz‰‡ñH~ȱe—âÌÅnn›¿瞣äüsã,—¤Ö|…ɽ¯Ut­¤ÐÕºMèsÍäÅÑÉë£%—>"—«ðjŽÍ3(¹]b·o‰yà¦Â\kƒ5[ŠãSlŒÙ©³µ»>EݪÞSí£;õŽ$дÚUÇñM-È¢ZMÊB)±/ÏÂwf¶»Òf§ŸhåÂ*›*Ù¼ºNþ-¥“½™ZÝ+ç]תÞOúÚQ—JY‰©I¸ ¥ Ò®cE¾r…¼ìþ£ÛŸý€ŽÉm ÿK~D3kÍt‡Ý<î:§º *‘M1ç©ñœHN?cÌáoªV sçÚ¦T‰’Q^»Ïiî,v&›öº[ÈÍæŽwÂ9÷¾©^W;ú’˜úÑ4èæ:û½=kþtÃRvªjýÀò¶‚sæ«*]77Lû˜ÖÐ8°b'm§4ì‡v޵ói/tºu FTÂÖ°Ö~ ‘Ò»CÝ™öº µœ¥{ŽÕ¹¢qbÎÀ›)P9òQhÓŠ/›{&;ø±ÕV¥XX}(蟆ÐQ¬ŸT¼ÚšÛƒþ ©ü(ù…ŠmÀŒÜp:‰6$§ÕÁÓTš3›rI^Ý߈~ßC6Ð5Jc—šDŸ©yË×Ë)JÑJ„u2žÞX?ò …çøFr]ŽÌ§¡i¡x5˜7„Óºi‹»!ã%3Ëõ£-t—:R ðëÔµ& ÄŸž¢×Ïá>îñ®Í•ùt~öWþ¡e£q!ð#¥i„£0œ"pcnÁé8>ÏGÕT‘?~ä´Rê~ü˜Ëu8jžWÏ€¯)ªûÒ<û¤^{g¶m‹q.†íæ6 ÌDºI59½‚N?€†¦Ö rÇK.9†Š‘¸9FaG•´<Ý&±æ“1,æÜ¶õéGPcˆ³‡òCƒKJ(ºÕÖÚLïîa+ %¦L?òG'8£´ã,˜)ÍŽ*þáÜ·i9hÞœ©=‹!åd²¤äÁ²Y'jbï2ô5’<ãJ’[vp~ÎÆÛ9hµ}¿@Æ}ñQ½Á6Çã8ºÝÁÙlØ÷l™(c¤>_‘pÞ:M£¡ª¿¢>YÃKx¯‰*+9ŽM\/¢)錦  8q1ðã.ÍäåtÑhšN’ër-£åõG íÕÖCR\siM݉ã2–ïsx‹•ó‚"Ø÷–=¿á^¦´üœ˜Wrf´ð/"ƒô*˜¶TÒi€þ©{ÐÛ|^R})¯ÁâlNO’pu^'±„RÙ>öPpûV™Ën*L é}Çl&ž(µ·NÑFzUÆk½¤÷´­®Ô‹¨“ tËuˆ ¡°“«P:ðÃåcÁ³ð‘™àα™©'Žo Pi«”ðFèrÙ~äÐvÞ-~ìÕZ^'´ï–>“õ_"h n/ìGçY¯ü¯ðc˜±%ø+kJ›/)Êç66ËMGÜüî~§•‰*±L"ÇsÔ ïô5j~Sµº¦™;Ò6¦j”šüìv§£ó‹3ŠÿÔ-á&sG:ñœûßT¯»µNí¡›aè[ÇÆpÖ¸×l>ªi³Ú†¶‘mæÜøªJÍ}SÙ^¦e4ër3œ-œòÇD;Šò.¢5@Õï-Û_Q/Š;ÚobMN€Jï¦WH1óH9§JÄâPï0h÷ôÎîúâ±¹nãsÛmM¸úÌü3Ô2=2é!#*Χ{ô:ß>™BQ·È*¶rÇÑqä1X+)F¯Ôؾl7àô¼’ž #l@ ¹HëÁ‘Èv†‰ô™š—}í?èn´(¼VXPäW:Ï¿š£¡þThw þ-wxõ¯¦‚WÇl÷MÕþDþȌѿAmáóŸÒ#Ô­Š”v*‘€ž¸¿Ø3Pîp£ûу%¿RØcAä±!ð#Ÿi…ü1–ÞÀÉÕ…š&{Ólª ]ú…{sLIÃcø*¿:Ö„?ríǨ¦†Æ%q›—ŸÔë팴-‘D‹ó^hdcVþ„,lj?zÉI¤±4³æß$AÅ$`ÌvžÅQ$/²‰lüOưˆsÑ–G½ìP´Ç|”/Qnô®€dA­¾ÚQ_èi]Ã>i,‰d:²gQäžà^K(fn*bæTq´ssd>´ù|® gå·\GæK<î+;¡Ð‰¼Óð÷ÑÁ RB¡Z*ž:}';ájÖ‘ã>û8ÏØ”ð;/àŸ:pÎÁ7x®,–™ÒŒoË]¤É¡„ƶTú–bGòŒŽ+áeDz™ƒëÅ7þÎ̱ŒÈþ|Þd,·‘ãÒV=M! u•VThõ}(3´VóÃ¥…ŸŒãJ&àè%âpö½Þ¤6ÃÝÐìg˜[¸µÇ¸ aúüØ-éõ˜^ÐËzù(†>ÚS[ å¼ È8n 9)O†üÅnßVsÎÒÞ'Ç ,ôÚ¶¢}RÕk§³e•dÔŒZÒ›¬Ù¼êÞ)­èõÕ{rdždA ù‘3úÝJ•ø‘û5g;þ§·í¾·¾ÍÁ_½ö2ÿ%?^ûVšÎS'“{¼ˆ*jB;oÌcñõwæÜ7Uó7Ü¡¶Õ£œTÜÞqº8?9sÌb÷¼›ÓMèöpâ:ö›ÚéoÙ¾·M¢Ø´Õ¶²9Ñîi›zÙ<¶œ­bë;¯¾ªÒóضÇáÝ&@Õ7àW4Ìɬ´ØN†òß‚"þH©•­~äøŠ6Š;Ó]lG# /…ÆmCÆÞ mw1o“ñ@oÕ‹¹:Ž”Þ}±ÞUó3À–‡²óX¤ÛH]= Ò‰8ïÀ^nCùZ£Ú\ŠGÕÜ:_¨XÖíO'‚¨{šzá;æÑoX…y b“¹´ù ½@m¤èø1ÚCíá35­éå¤'Q*¬¾!Þà'ðÄ…“ÎJÒxnÄÑøúìð&¬¦ÁH6Çè òGè*î4[Ý"àÂKÔkt¹¯.RÚ}hb c‡Ù]PØv\ÏåBHžÅðksüHg »3ì8øÉÖÜJ˜ž÷¡î4ªÎãù'T‰ ¥Á‘KPÙ¥èw&¤Ž[8ò‡ájP1÷ºq>ia+§¿íN}‘NÀ‹·B~E¬Î9¥†4ƒO­éµ¨çî’MnqWÎ j­«"HQÞi߸±>©WØÙi "×úñ6~€~ݦL¼‰ KyÅ1u°¶Ñ¿Á3üš[ƒH˸çÎsiΩ1ã;šUèl´uámÛ ~¥e•ʲYrre™£5²wEßjð£¢ä—sHq©y=Z­á½XC>÷ÍGõfÙä˜ ¯?šñøÓ^'d†ôãcòVwƒÅÕzK‚øW=c"Gw²ˆ•iL¶Qp½8¦ Ó—ü‘}\‚/cþÍáÞrJºjl+4Ê­©´¶þ¥5ô¸d@åRz,ǧÀ÷Y쇙Û¾÷—iÍ(wòšëOs-*ÙM~Ðêþ¤ÕÃzPwi8/…—CÉíªÍ%ªFâÐ8&ËAÖ9Tü¸ܾCæ¼›‚ŠB›öÃ?$¦çÔ7èüÕ­®gäG£óõ"RÌR½/‘µ²á|^­?ɤÛÜŽ.Ÿ¥…Á³ð¼™ä޲yàé:bMô¤•R ¤˜$«%…&Ô›ºG£¬·JSz=‘oNh @VŒªù¸ øQ9~åEþ¸ò²ûnÛ}O‘Aþ{sMySö_òCÌ~3Љá¦ww;=Ldx6Lë„u\§«ñÌoªVÂÔqGØÔ ž×Ïžuú8ý™&À½àAF9iGßT¯¢wJ: «i¾­n;îe[JŸÓ¶±µmu篯ª´ÃÜ6þö”k|ù^$¤àGAšdçÁ瞃ʤ¦ÔDŠdÓ|ÅX†q—»ØQøÞÈÛàžO`}†ÂLËÁ§(&Vk=2˜Y“)Ýýb½s&>2ðf›—Ã¥ çï8èÑM¯ë%ÝÊ÷¹†$”ÅIÞÈû9µ´ã´”Ê›ÅUìëì³h´¯ â* ¢J1Y$a¸lÑ­Á»„D“Bîsnñ—½œùc‡‘P²þføñð£zóÀ¼àÇðc<ÒÊ_¼Õ&IcÞ)®·\3k½«3%¾ì”úˆGš †,DbYÊ©ìû$œÑTp† «%„âçãst•þàV²O:k$'át²*û—%õ äÓløê* Dš¹ƒÿgG[Ù ÁmËg&¸Çáyîa¦íã:T“ŸñX¥÷´,ø‘Z3(¤òâë;¹¦´–dÒˆGz!ø1‘òÛ vOpûv˜+ÈþT3>9'¢èÔ¥?l%ðc©{ÓúQC[ȶ°åmÓ¯$Ò1sùã2íX$š½P×pÏihŠ}þ¡3öT{ccE#º³ÝY6Ðßÿ´¹!Ó.jÜý~ÌS¡&XëßÑ­/Ö;kÂC—÷ØÂX+±y 43#ø1 Ÿ sw)ôø’Sðcæ]e·â*V?6Q­ ë ¿+1¿ïSV^Áƒ¹-tb=]¤£`ÀPe9úŸÏ.ýìù«›¾–NZºD]±Jò¡1‘†Òö üñÄ^¡ß Ý¡øú½ý>î³U]¡â~³ÀÍ*\×ZÑ#Ôm ަ£¿?RÙ‰ö Ô¢FñÚ· ªV[IjHBàGÓÀkñì‡4 d%ŽäT:׃»sAðc,?eÞ¾;þõ6Žôvô:’H÷üÑÇõê9cl'Pßx7?Æã×â,RJ¾—3ЕPÈ—øgÉ-§ S ¸=(ºŽCK)ÞjcØPŸÔË✴E0¯Šà3"ƒ\¡Àëe„?ÂÀ1 :uÙ¤¥äÆûqÞÞe“^\Ž·‚ùøÚ٠猭N³Þ:`”üÀpR^ÖÈmj%ët»Æ÷®êK͆üQS ÈNÐ(3OåèAÀ߬¤îÛê-± P…ø>xô+>{•×ÈD“æQo«&@fx­ËÑÞCR@}H³øôe Ç”p2‹³ØüÁõ¢˜:ÎoT w¹8ßÄH?vKO07Æt𣠶€þW×’[ãk݃<<ýY ŽeçöýõÖÌfœ{ùã5<Õ.‰Ê›¸“ôÕÛàÎz‰¤ûuÆÎzé¼4êè5­¬ý$¹†ç7Ô­,Äká`GÛÁíÛlþv“P¬ËS”ù#&7Ǭ?i5Ý)“4@¢¯Ít†ÞAJ¨¤4‚7èHù ŸŒÇÍ1ëÀ'm ž…÷ÀÑ8º¿ÁMÅÂ*;"%¼_t£¬Cz‰ j¬ÒÒ^ïÇßž—]šBWJqI¤¹ÖviŠŠd[–ïü¯ðc«/’ÙüU(Sô__?möšÖN7‰{Âù-èúÇ _<¤ÈNBçgCæÛ®î2åÝ!¶5‡ƒ.f¯:}‘@Æ›³î·ª[Î ~|zÆàÿ{Ëk‡Qäv4Çh¶-gŸ™©î3[œº‚ÍlSÛÑyþU•Ì=SÛÞAR˜ÅÚ ]Î1'Úpá‘JÚBÏZb±lÔ¯hchwœ;ÁŽÆwΡ‰´ŽÙvøkúj^½¶pë‹(=ÿb½?MtŠD¶¥å"<¹(æ×Xƒñ8#Fkÿ†kîDëé 4¼ýùQÉý T¨êþù©3VM~¬û…på•x5hr$è®1Ë—¡ÝuíBó¹^_óµr À…Ç ÐŠFÀ äãÍ\ÅÐëÛô(²ùhèù˜.Ør!æUf©ëÔ”ltÿWG¸‘ôšX‰ÒÛ…ö<Ÿàv\šïbŸÛh §äTŸÝ?’™Rîb; ã= ß“‡Óñ0s,´æWp²-çE.ø‘r9ˆ~â·Øßi0+(]É}b>;õœá¶7ÜJ)>½o /û;Ú–ZRMJ|haYyΣáúO#{¤á.H ›8½4çË6æ?œGç¨-‡ÕPœwrX9‡Q*È[‘?"ÉŽ®µòÇn}Œ„ÐS2Êl.Çeù ¿ãü2œóÁCT2£?ª8ιbk!M ÷ÁçÀç'”¦rRü¸ìÓmšÓs<ãµ”Ðò“Tóh]Þ…4U®#Ï­¡ØîÇ×ãûÛlPíwAJ6 {ÈÇä˜,—|Rbz;4¼¾ãm—àGnU9Ï0 „»Œ‘M#¹ØüHhò:©0ççï¸hu”ñ/ò7CLM#¡txQFêUm§g¤˜–Ó¶z‰çñ=¾ìãš\‚“Û÷÷{f0Ü”—™_Ò~.O•ù÷“ êzÝÀ£‡t=Æî¦¦ñòh }¢u–dÐäü„~Â1)Ž,ìoGÚ­Áí[n.¹ñàûëÀíeâøô–fŠñFë0í‚4Ôñ:TŸ!ÎTÒ”Z-݈P NŒÌÈ<'x>1#Ü6+fh¬Ýv´IÊxõ’lù#…·X z¼¿5–÷3ˆôyë Ô–W’‘¢$T–ÂÁgU?.…¼ìþ£Û2¤„÷¤~ëËk2ÿK~¼Ã¸¶wÞ:IÜ‹ÎØ sù½ç%äm—¹`üíc:GK  !ñ¹&ô°«C·é5MÃ,èBÝlUÝ&ýŠŠ1Ýñp¾¿C7Ò<ÌÈ'¨<‰ ;N)øª)ˆ@™èÕë]?Âó×3.ÀS¨0´:”0ðL½?þ>Ô:ðþÝM _&êá6übþ˜²5D‹®£J:0®#]¡bP±iüÿypõ åCéä>ûÇõJÎ@Û‘úC«îá»zÂoNqÊp©!Ud»¤ÓØZE^ò) u®Ë‰z€E¥+_² l†OêåpvÙ¢hQ#>ΉAœ'”£VL!°þ€üñROéC%?H*YÏ •$© o_ ǯµYõIþ8d+#1Þ5}‘›ryN&íeTâ&²UwiBäÇ«-a¥¡d•“Üiàg»c<úŸKbã‚w0w[aœJ ]”Y’’”Þ-¬þHH[ÀŸ]’D£¢Ê"(þ!¾~d?rY¿î¿Êàô‡rcÔrÁMm…³h%—e´FÓBM×i(uy}¨]ô¢”ÂWÕô:¯äyàG&YËu8=´7ƒÛVÔ qwRNä‰×´™+a%\ãeš†÷jêVÔ;‚ÜÑÐ^F/‡†ÕçÍ~Fcã(÷CŸËñAªdûÛcœ¿:à¦E’mйŸ‘É{¾¸^?]fœìÈ!õ‘bz '½FÎ,ƒ”4›÷k_Yt›”»bE`‡gÏÂûf˜;ÖúÃû D2¯Kˤ­÷ȶ^Þ€–[t¬Föj{4µ7©õ™fÐ]Rí®Í¿R*Ìê´óâ­{%äe÷ÝVønùöeM>“é_ò#²Ùhz:ê¦t÷;­ƒøñÐÇyms¾&ì7^?Ìý‘°›"Ÿu¶Ï¹N€³Ï¼u=[ÛÍìr’|#?üìxúŠ9s?7­†Ÿ¸jú¹.U?ÊØ¶¡íð•wt7§LQû ¼­»uÍÉ©2õ±³ ±O1 zR3úÁV·qþqMH[8wš;ß{ câ!gO‚«NÁ9á½ò¤BÛwSvr/U»jâRh:akP,¸äÈY)ÿYJ•á_ÒsÚEý°&7SjâVýB 뺿#yt7þF:JfN «”‰a.T±oÃê9@Ç‘#‡Ü ²v‰ö™šÆ4sŠÂ…÷¦„ð`c‚îâDË(ïãüèÿ4(utè±"yMÆ(Ü ÎØ¢®BÅf­ë‡Ô“˜?nãH´ÄñøõÃç¥íj{‰wÃù×ã Þ.¥öÚ˜ZлøËäv×Ú”ùãgð# ï‚ט ÅË­¸’R f(yÆÀß&ÃQù{¼…$–œûºÍ§O#5r†Ùηj|›}Ò–#òƒ"œBêaíU+ ÚÉunŽý5ƒš.ãœÒŒ¯"Äû¤^)ã€]Ÿ)nñUJmË"IÄ  êÕEš#¬ÙóA›”?¸f|5³ú£ŠCpg (B ës6Ž+õe±äâÖ²š•Ê»¬o´ªxÒRüå×öb1å8ߠ也Ki㡆\mâf擼F6Ëlù‘oJ o‹Ó|¨·WÒËjI­¡d3òë^б),yÑÞlöý};ÑLV§)òBQŽúŸ¥}4œ»Ëé«É5ŸÄ‚N×Öºø}A[ê ɨµ•žGv› Æ–àGJÎüAþÈi:»+(?‚9Æ%°^pg¤‚æï”„È1‡õœ¾ÕL^Z}#×Qu´DÒˆ¾a Æq å·ì¾àö4§Ü4T$hõûsXzD#$Œ÷£ÎÀ¯sèÝr$ö†#Õ¼“ÈZä\ÉKt,CºMÂ푺´+‚gá ó{Ðù«¡ðá˜WKio,ÈvHªj\=®ó5£×À»­E½îêè+M¬’_¢hIM©©&y˜Ý ø¦ûmOØýÏlg} ̾à¯ÈT4¹þ%?"™Mf†óÎÉè8LÒ ëçþNtç;'‚ÓÒ„7ß–®Ò™ŸÜÁ¶U¤<ÔÅÞqÖ8i&ŽÍl¿w«ºƒtNHç4>¿µ²“àºó@“N@E¶Ú©v¥™ëƇÒO·íl[[ÓöÿJ~Ü0»Ì÷–yV_[(ÓÊÅå Ml¼õcšA#¨Õ·mZû5çØüÜ>îb» ¸nü(ðO_[žÏC%îÀ‘|GÓÁ½¼tü‹õŽ›ôÚ¶M(6¾ fy>äÛÙt‘Òc-î=|¼ 3>’”:º¥¿P±&VÞ9ôs<(1 üFQÞΓƒ¼ýðó¿Î_=ÂH¸\ÄÎ3Ù>Só6Tµ8ñ3ÈU zÇc$²‹…r¦¥›4‹[²€C>üw'ŽÔ8ð˜øž­âý»›Ì<7Æ;.‚/¿‚VÕ¯hOàó±íLûœr› : ‡6‰J`u6c8?b›bî6;yï0''ä­PÿET½lD’@ÒñŽ*$+ø{èã3º†äù7ø’“³Ÿ>"]Ûb{#iUå›ÈmQo&Ʊ<§—ÚRÊ௙4‡\çþPûÓèwîˆQØÅ¹¥&ï±ñþñüG禭N6åÜO®ò-(×. ~Üáw2@Ö'zY/s$$ e Wú>âÐþјũ°9ñQűÎC[|üއò nÀY ¼ µ‡È6hV6/@ïkaai*%ÁŒšg?9«Ä¾‡¹úÔ9ùñó$61øñ7]F§³ßáe¨6WšðyÉê-ÓlPùçºAâ¿z°ã¹ü¨,5e—úà\o(ËL%‚®§‡û¿~ô“Ò_3ª¿”ÑMZY+A—ïk=/­À’6z©g:3²×Q. ¦±ë‚Ûæg:ºGÁ£§døOÎFK—êy½u›dBÎZ©7ôæó2êAêÒ’V=¤ŸÎ|-8M)‘?–}pÿî}7?Æ´ÖD~k=%ѽª:Fê#I VãBªq‘2ó#Ìä­:Vúa6'àÈ …92¿?‹úÒŒsgÙl4 ³7'fè~iâý®»å´ÔÓ$¨¶@óx5=ëÕñZ‚oe¼8hu: ­I¹{Ðóƒ>8“üÂÝò²ûnúbš÷¹GM9óirþÚÍ1;ÍXçSØ=æô2÷¾õå;"8¡žæ­ïÛžÌnêÝ¿[‰ÊЯö¥³ÁYäô11m:û£[Á]~Dÿ¦vÖ´ÃéGJ W{’ÊÓ;Û®7\ŽnžmjûØv€sñ«*4;Lsû Ú²œzPàÓ±¹¹ø1Èn„yMSàÓÛS#ÛÞ&¶Ÿ>ÒVÀânµË魥ߡ¦ŒUxÿn¸à3àÇEªGÏìÚ¹ò5÷_¥Eþ8g›R|ÎÏnsÂçODfH‹´° ëû5m >´ôKEÝÝ2_¨ØÍe. v\¦_ÖÂ#=Áü߆ü1Ú¼ý߉,öšr ™Ånþ¬yãkà”E¦è‰$•ŸæQ,ôh,m£7´Sam¯DVËïðõ+: m›I{ Òç­Ÿû4„j›Í27+ª…åQHÐÃT< ͯÈ"Ù%ö òGS¨É1:ƒqGEƒÜZ º?¢˜ î:»†’ñ`nÍ¥8-ïENšIùÐËöÜ êšúäÊ#^Á95øqƒîÝ#˹w̧׻9£msð£èNú£_óèU?ÊK9Ù'55‘”W<Nò(ô;>tü2:—äçõÈŸ^Ïç<µuÁñ|ŽKËS¾M~| üH ½–n:VoêN=Â1¥½Ä‘µ\– ó=~ÅeågÎ>oþü¨â玭„Yàñ$¤”.œ†ƒ;¤÷‘ãºUÓzG « $’tr„«©û9%jßÀü?FØ”ÈΣQµm’Û îi9#M5–>Ô•šËkêE?êU‰êÅÕýR œÊÈß!A E篾Maÿg¶;púïÏ,Å5UÿõõsÇì3³®¿{Úùͤ4zQÜIå¤qÔélÂ}ãóçÙM·?fx¨ý`ûÜÙãLpF˜h6ýÙ­î®uò81¾©l;ªß;s¿8­´KíI3ÕÍYlÚ ùãçîWU:fŽ˜úàÇšK(ðé¦D\G±³] GúN}0òGu[ËF´ï¾¢^Fw¤» Êu™`*ôù-”p œJ"ø¯Óî¹E£h#¥£k_ìó“sê zt0úZœ˜§œËñŸÐãGPìîhý JF}Ý/½­¦‘; JÙùç$´>-­¡ÐÁÀwg,àŸ¡ËAº Èxüctˆ2ÙM&Ýgj^÷5wJ %ÃГÒ`dLòGO÷@ñwcUߥEÐQ”Ùá— R?|n”ÿˆÍâýWKÌp·rOLž@­ðÿ‹£†ø¿ãšÚ޶¯x3òGe>Œ^ï›Ë#qÕ£út9~„3™Ü%vòÇp¨FÆÀ§­Qo.;Zs~„0‡_²Ê4xû,ð²Ðã‰|ìç¾úÇý»õœ‘¶’V}¾ОÃó:ô<ðùó¢RZŽJ9«©å9ÿ*Ù‚Î)wÅ(lçRŒgY×~útS ä…êHD  â™åOÉœøta ¼Ãö¹ Ó~úL—!D”>`Ê<®Ê…ø1òG ËÑóJæÐG‡9À£ÅÐÈ_Ù“ª C©/ë¥÷’µº\#{ëõ<òÇßÜXªÊ䤼“SH"9Ç×1^:÷>ª÷‹MæÞÃÜ­ÃS¹òÇ&Ù#ëd$?•pÞjõ×,Á;%¯9@rix9~Läõ r I.‹9¿Í\/’Iã Bò+ÎÑ8%ÁÜšÉ?Ë;ùY#i#ä†}pôu4Z¯›®Oòè Ýt÷ó-.(7¹F³¨ܶ ¦‡{ˆ²Â™$ž¼8f§x4ê<ÕZzDòè+½¨g ö¹¼¬ú@Äk¥=$¢ÞÀì—åùTüxÿî ]檛…ªRGô6/¿´w¨Ÿ¼ÐbÈcõ…ÔRŸwKoé@=­‘U´-Žô^¥Cd”".·Ãì/ˆÑÜû?F»laÌøÞ”sy“äò~ÑàoM¦™¼ãZÁkì}çåö†êe‰í‰n”Ä_³s3ŠO)<­¦lìÅ—Ýt;æKaÞ¿·#š©h üK~„1kÌ"'Ž[ß=ït5 P宯ˆã!\1Ì+ßÉoª–Å´u{ÙÔˆ QKûÔ pF9£Ll›ÊvrKº‹Äßxý£œí@¡3Ðv»Ðî1cÝhðó‘=z#ƒôüJ~œ'ØgпÅH/'aÓry*BCíø‘‡øÛ H:µlc›ò«òG~·Ÿ»Ùå<­¤i´žö(t+:Ü\¾=Û…1 ƒÔ˜Î}±Ï[L^zeÏÙ.üŠYîOñÐÖû”*µ›ãOë¨+¼Î,$“fnã/Tlí®¡§PÝÙ`ãï”>èüÕ-ª­›¥­È[AÌŒé• z\¦ÀóWÅ?Só–¯·S *:˜’P.ä”í8Mʇ8°ÊÊìñ}d»ÇÈ'ÁžãßjV¹©±ÇhÈÝ‘~žÁ·€?°üy)ºd |sk0é,˜yžæPð£fAH篓ùc*¥äQ`Næ {ß~Ã÷ÄàÑÈ0£8 ”u1‡BþXÎÍpd^b÷ÁbœŠs»ç̧ÏUq~Å1èKuù"¿E+"€°Ê“Áo×–Óâ¯Á¿x„$• Üù¤_€ºå—’<×¾pÏ~R¯„ó nªÔù4ç“‹|d;ÀÕ$¾øä ”µ·²7OÏ"'µT² y!?ß`‹}? Se³ï££2Þ1ð.†z×°ŸÅÕ¾ÈIé©»Ûþ‹×ϧ 4ÄþσaiÑÆ_Q£4ÏçqP¼¼ ¿©ä\⬧„v£â~›Ù}Bµíf¡ëG×),ÿ~ÜÁ'Û cè ò`\äkȸ?5O£åµà*ã×¥øÞdt!A¦äÞÜÎ7#È8üHθá$’üˆ õœäB+/ÒYìµ ¡¨{˼þ¤^çGÛ £V T/]8 Ï?*pLÉ/uä TКN¢"-ä‘+ Tt´ôE"©À?Ûwÿ ffç’­A?QY¨xn @JË‹?†[y.ãô½«K5D—n’Dvqc.Í7ùòÌÎF©½ÙôÉõó먷9˜ß «ãhRSI î"ºR£{÷ô¶•§\OÊÈŒb䈒ié$xÉ%ÓËýÝ&§>ð™À%âçÒ ²­ðÓÜÞD­ëÕñÒã×xýK*x…t¯”Õ8Ü™"¹FÆq¬Ì/ÜS!/»ÿèvÁ—ؼî$¢)ó¯Ÿ ~Œq’»ÕݓΓÐÞћǹoR:wM[óÒ÷mϦ4•ÝŽÐüš u{ÖYáLtú˜P6¾íæú»[¾ùúGN¸Áv+p …¡iöwûÔ·Ôù£™d+ØŸœ¯9Ûäó­ÇJ¬ŽÌø¶ÃÞ´•ÂÙ——… qžt(ÐÌkg³ÙÞ»ñžº#Ü5væâ}÷Æo}­|wG*€výŽ4í|‡Ð:Ž >Íç&ì"¸ÐmHó?`toÐy[à ‰ÃsÌ7Z–GS— g›#mÞ¿k¹E¶Cì%äšjPÿ[ ÞI0®rO¥ÏðÃ5Üùv¼Àþ#•· Ì‡Š ºå„R÷?â¹Ü#èIës È*Îñ8.øñ©÷(ã °@é’|ßÕ\\lÚuŠH=y(…5¹úÉ5ž\à† ÿáTÈ?Yc?ÍÂþÎ ¬†Î ÐnŽ'÷‘Ðr¡w5‘¬³5èúM.»ÁdüL;N^pr)êÓàÿ¿àû¡Z9hüBîÉaø.Xàò.jQ‡½n°ÝÞÕ¿Ð qK`¼c!ñýÆEòo‡ïxE¡ùgäIö*Ÿ€î5äËô7Z9…JS2j‚=‡ôü¹˜dîrP<>÷ º7!ï¡8ÙàÏÛq >ÿøþÝ àG-dŽç8Öûñ;=¿¡üîŸæÓ„TÁéi{¢Bà[ÔopWøÎ9È€ßs) ïxBòiBM"'¹Ôþ0Ü}T®Â»x²J!k/ºŸ¾]:ŸsÒ6F&+Ï+¹F†§æMH"ñEäoi¢¡€ãô/Vi+‰Á2ÐÐC HzéÁ¹)?uøäþÝ…Î [Ž6Ã;÷BûZ€ˆï¸Žl“ªw&=EòÒ—Õ)àDu"9m ãûK²˜Äî¶*U¡œÔÔ¾t6#ì0Ýtö·œ»ÌñwS;CÙVT N¼t8/Mµ l|g±›5Ö6Áì¨o'8ᾪâ³9h%´r!õ ðÏ)¸-\@üÝC$Pæ˜qmø¯zÿUhw¶»ÊN„C^—¿ºj¼2ߣÈ|ó46u…Þ‡§Ð_äÇ6sdž£k¹; Ω’QJ¨ê!èMðèÖÐtŒÂ $uù"?ŠºÏH6¦ñtŠŸ©¥”îq:øQ…÷a?ûh'Öø¾ ÷w%°+>˾²NbºŒOe |#… !<ÞÌ ‘´Ö§Çâô{X‡ý´ºŸ`šÍåF ¡â\3ßMþ„æàÇ3ôë'ðc2ˆ¹¾”Ýe_óYd…’||ÛÞ^ÿ(÷w1~x&©»ØŽ]ŸÌÍÉÀþ´ˆJ —£¡±$?OfWîò® y¼:‚„â;àÇ)óé³[ß;½m7 ¼ ¼*Þ ýš„Œö=¿¶Ô”Ã’VUý%œt’”r£Íe@ùÐÿRàÇm7Ì'=.à\BþèN¥ø0RžHiy——òŽKk¢w¡Zqå-·–´2½ÎÁ{Á®ÄÒ™ý1ÒCÌœ*ŽqŽØzAùc ØXƒSs8i({$W—PÔðÞI½¤å6hU\pàs.sÙŸìçK˜¥1>yþãžú H݆g"œàe²B&KCÞ+a¼ƒðÑ™5´wM^ñzɤïxüÇPä?9¹¤\ž¿îšÞ¤v~¦²àÀ3*tÏÇxî$Gd0Ô3/øqi«âx4@Êjy-«+‘aÇðQN&ǹ4¾³’}ÿV¦ê¦—¥Coé7§¬ Öj¤™Ë`ÐJɯç0voõ…öŠkxP©»¶•°šßR ÞÎ%x•¶míûŸŸrÄìwÓ"Ó5#(Èié5“(àÇT­§¥œ×ÕHƒ“ÐÎŒúHºáHáþ:X¦ÐwÈ¡)¥?yÿÏ›¦³ÛÓÀ,îG¡H뤶PvH<-¢Gµ/’V%ï¦õ¦ê}‰è…ÕÃò”ÃkZäÔT”-hÊoÜÓ!/»ÿèvÐ÷áOæo*üëëço};ͯNt¤ƒCÎè ÷—ÜñEqb;OÌ Sׄ5G¿©Z:“Ïíc+Q]ÊAu‘?ö8ۜ晛ÔVp³»Cœ|NHÏ|~SÛþ432È$JEËìZÛ™ä2´y¢-kâw»¯<µÄì3IlàÙ) Å&üJ­©ý`Ï=ÝÄèG À6¹ýÜ“nž;ÆaÃ!Ï{v ã^…n2ÇáêX¡x+5¤ï¨WÐûé‹üXn^ÛxàGz3\ËŽ¼5„ö •¥°ÏOKÁ·n BJjõÅóWYÜîPÉ@~ìBŠI‡Þ„R熜Ê?ÛÁƒÃ è!hÑ||*·j>wgÜE_'´| eA¥‘Çãw|g$ÞÊáé"-AÅÄ|«ü9r]ìu ª.²Ý’á3Û-ˆ=¿»â;®a®4¤àqwª~Üâ#Pæ¦pÅg1®‹°ÒR€èDü0&†»Àºg³²Fr>¶M€~õÆßôá2Rúþš_ñÔÌÄOÁÓ [àϼ(ä1Ÿ>;TÛéôþ«¼Pù£hCTž€q« Aþ¸×J+Ê î õ¼Œ”ø¤ÜRÇ/fØÓî§Ï“¤q® Sv¥Ò ÷ÛÀwðR`I ³O{!{œÖ-z:ð^/I%3¸0§…#?ºp¬¡ÑŸ•œc¶!íÆ¨µg*rv%ßÃñ&æj²^/jo¥ž@ r]ñ—ÀŸ£’Œ§1Qeÿ‘×ýø Çá6=Ï $²†<ãsŠWÈj™$­xyÐûKòiõ¼Ãò/…ãNBÚü-Ì,d;×üàŽå&3 I+ 2È´q·”Òù#+45@;kKm ¯µ—\àG½Â;‘hÎqX´µ$ÒÔ¾÷«•L_÷,ç—˜û×¹ Fî·‘fúTKé6)ˆ:¯@^&/¿¾”—ú rW.µ|›jñz¸¸)TÄö°#‚Û·Üœu3#ÇV£K˜ɱIX¯¿NF«.Ks‰ýúD›èfÐ(œúuù„‘äpXnJ~ XZ.< ï" °ù¨/~Å zþÜIc¬‡Ë«7u©&ñ*{[4·7XïÊcM¥û¤†$ÓT<–"RYòáx´çIn@ÈËî?º òFÄà‘‰Šüñ5šÒöÐwÒ,rºuÜ+Γ*ˆeœ¼NZ'‚S׈9ÿMÕ²›jîP[5åµç}Îxç˦´Ý¶îN§“þ›Ú™Ñv†Å¢ªð½‘h±]došmîwÔˆ&Ù¶—­g‡åù«Cf·)ih"Ô¥Tu7%åÚð¶=íF ¢&µBª‰e?u‘!¶Ìçn·£é4´yLÐÏÓÛŽfZxÛ×ðõßÓ[xÙÀŸ×ñå÷'n0)‰èž­_žž^f¦xèófp)ïGÒ Ç‹Pq*8ù£ù*¶u eðép<µÖЯHÙyVëöç]ð>ë!.Ñ1ðo8¥¶óMÞÏÔ¼æëä€ ‚ž@o³ NÀF |‹7²Û*®Ç̧ ³wüÝdìoª-ë~zu:p[e6»eh+h3c~—®À4G¿žrMÊg—Ø—¼†[Ã[Þi@Ë©0%ÂÚ-âÏtLw–NÑ‘?:qNNdz±š'SÆ ÷_5â,9èüú_¼ i""’á1ôz3ÅD^wwùcogèËvð£ÇæQ·œj\\ÎHz(A)ù“»I(rIϵx!˜|ÊÒÛÿÇÏr(ê¼…Þ÷DþXÎw¡øgѲ+\Z^þLíª]t….Óul¤©$–œ|#oáØR•ǹ·Ùùñõn玭F+1Ïzñnø€âœš4[PU™§+õ–NÑOBKÉ|P e<èöˆg l§Tî±ê­²e9¿¢ëÔ’§`ßGyŸL—Y’·Jdo«fѬÐÕbe%Tñ!¯ä‘Ü#ºƒCK™Âi>¸V˜Æär¦µiáŸòð 8‹iÜSŽJ;ýN#ËÙ ŸßV;ê=ã òC:äk¼Ü:†þ®åŒœ‹s~pÿn%3Ñ=‡Ìü–ÓaNO­ÇJw½ m_(5ðnÛKÅ+ì%׫BÞšUÿD_ÚÁ-”àq”Ù®²Ã‚Û·Òüí& (ý%¬„4ȾÝѶÏÕfºCã+4¢WWë5‰ …´–ä§ú£” X™«PuJÅßó–àYÈÎ wœMUÚ ¹퓚ÞP]&ÛѶ(H‚Ó‘<ª{‹5£×Q_Kl/1öRPüT¸=²GCŠ.öçhöƒW}?¸þA¦Ê¿~ÿÕwf—™îÄu³¹»œ.A÷à<÷euÞ!}¼AÕ·¾ßT-2Ýp$öŠѤv‚3Óéà41‘í;·²[Ý]ìun~¹È[Û‡êPlj-|d[Ûö¸™çê÷·ßÛ~¶±màÜúr_àBf˜Úö ”o0îÖ`rÎIyh°= -»„YðHC죲ýš'ÚK»½Ýv<ò |çZ²¼“zéDÀ*¼€²†JSh¨é: K_þùQóM6Rº`ë"+gç¡Aïß@cá¾ãa=¡#ÐÙÉÔ3üèà6øBÅzî:•2βÆoTõåàÉX­m RóàÿWQàÓ+‡±õTÌö4Ÿ{ë×e_}§02J%IÉ(+M£ðügøž=O³¡¡¯ÐsågàGwªMs Tëma÷qÕ™¹nàÔQ$ËÀkäÍà¦@.@¡ì¯6–¬z—Þy•-ÈF(1þ¤ÈQ!ðCMMw™ |n³h‘¿6c5OCOB:hÁ9%*ï/¾Áó‘ “!ÓÅX¦4üˆn;;̧÷Nw~·}ÁµüдÃpï‰8ð g8¥T–’rQÙf»ïˆüqjbÀ¹Í¼ úœ”´gÝŸÔKá¼±51r™yßoR&¤6hïcNª?hýS—ë¾Å%¶Ìä"È1Sù,‡—ÚœãÜÒœùè¨ pîÙA?§¬_’q\)*ûäu–]…¬°P¯hAqÀ£œ²— qVä¯À·ýnâc8*IÝÕ›kKƒ0Ïúµ·Hvm—‰²@âó(Þ ­‘ôŽ.’·|\Rë_ Ðtþ‘g"¤Älc¶ïßQ“Üäu6 /$Æ<ÈÏ×Ps7‘½ÒG#j‰ª{Ô_Kkeý[«ê!)­Å´†žç< =I(›9%øï³]ƒÛVߌwïQN~7¶kµ,è6Túé]-•΢'u—^€ÏÏç%ÔKò)¢±”Ò¿é*u@Ž* –ųï~ÊóòG-¸•kT˜ã¢jw±Þ/:X«éj)¤Áó×Ú\gê-qÁ¸’ZŸûkgéD‰8:—†§kÂmùàý%ÃÜßmF½('µ§mRÑûM—ËZ‰ˆQ‹å-Ò^ï¤æôÚé= 㽓“r‡3jîJoà¢Ãq¥ã7îû÷Pý¿Ûúâ›÷×êÞøþ=?žø6š N7»Íétå†/ƒã8Æy„TÇù¦j±Muw øQ XÈžvv8=¢&ºMn;ýüsÿo|þ#ƒ²§§nPé7ö7»Ðž4½Ü¸PÒ%¶¥`[ÙvŽ~UÅsæ¬ifÏÒ,(p7:uMÎ-á)&Øô"èùQH Mlë÷UÏfv‡ºëà|¯£e“ƒžº0¯…ü½|/VàÛ O¡ý»0츠gGCÚ–ûú:é ÷ã(5²Ç 0$h{âòÉ ü±”›s¤ ÷·¿Å8ôAöào×þâÞÌŠãK¾ÝUGî$ÁÝÝÝÝ .ÁÝ]‚·‚Cp‚w îÜÝ‚Ëÿ½÷Û†òìî¯ç!d†¹§K_é®:e‹š §Ãú¯½ÎLSåñqOpZh¾´nDŒ‚9Z›n™ßí èôö\ÿrvå)±3Øü%…ÌR; ìÕŒsNØ>ú²/ÿŒš†“˜ÜŸó rs(ÜÛhÉýtª6G2뜠k' º?Ã3ö¦¬ÐºGÁ? x1ð¨ '”¥¼\,ªšI.ÇÊ îÈßp+ÞlþNŠs {ÿ#ÿ‘Ú}ÿÑþc+4öQxx?Îð„¿ou¿KÏ2KSI ^uØÌw¹€´ œ?Ø,ŒqïÙ q÷¨7Ø;§å¸Ò\¶ˆrsÙ®+4Š·ZOhKyÃ-¤ R©Àó«èUöáÞë¨Hü‰¿Ùò“}|ƒjùwAÉýçWÌÿ»åÞn«ßé~x.‚(¢Wö³ø'þ^ª˜d–%\å½õWI’îxj€(çã£hå1ÜFnñ³hfÉ®{´šfÓTàVº]ü'4ÖUh»Ñè¸àº¤œóÙaoËVËécΠ†æg´™ËÒ`ÞÅ르>‡kÛ()Á“[õo=§E¼lzSnkeí'±õ(fÊÏpœµx%´síÈ·å›ïœ0 ©4fÿnàv *Æ¿H.¯´Îï>—X`óÊÞ8ôGdðQ0HG>¦C¥ÅF+–V”àòü.ÿÕ+§§þèG½à%ÚS­éõFÉöJ ‡ž˜®e½öy齡zPBzQẲK>Êí(p~ÌÈ üø?rþà5_\çÝξðN…O¾ýüÜu×·Ñ™àf4%Ìi·k`ýî}_7ºÚ}êÔqçËNÿÿ¯äN 3ÃþD­èjb÷º‡Ý1n;ç[›Åö0ÍlðÇ×íÿ¨i'cöņê]FÉi‚=bW;L$j };в5ìÐ/Ìß~ËYæ´¶hôvG:äLÇ 0š:ØMÀ”‡smûSmÛÞ–ø(‹QpW!ÓÛL³«‹if¦…¾ë Mþ ÆØ1 áVx¦à-”ö ž_-sŠQ(:aë€?Šð$* Õ%½74é àÅ+ vC¨ñ%@ñŸL­ÏD¬þ¸NmÉvÚ¯p,³¡õÿ¡ÔТ£y(4ó\º ¾5pêÆ!x”rvš“÷1ûZÀ\Å I@Ei'ú! ¸vj|„#Á#,„á«\¾›½íÁ¤/è -lþ’ÎBS-púÊ0êA‘ø9~¿:êõÂÿžš¾·S­-Ú.ÎÿÔο§¿"¸Œàª@Þpr8ÝŸ›I¾“cüXšj3=¬èqŽ(-$®Lkæ¿Üâðù1mœÇÎx÷š-–X¿[˜›LšÉ‰È=ä8>’· ŒTF.qmø>-þ/–ð²üñ% ’¿Äï?R°?‡Eéùo’%2N:òuIèmÕäš@É[’o—z‹WóÜyJ˜\âÈ<Îhß­^ÉâdpgcýOõ ñjè’qÜEîK/e8ƒ’zCÁ#”Që5×uàÔÚMgNÄ=Æáe)'F亮Þ–­‘ó“ù|kYø g¥Æð>Ã%5ø±™®‚Ó8‚¶{ µ˜—XËCpqK”ñ ½¡N|–sñ(JeÇÛvï=¿:o2S¨0þåÄÐxí$œWNGëJðG.]„ȵ?M ½'M4¥æç‹:IšÂG¥EYÊ¿—7œÛǬ·9hK"pÈ©îÍÐSèÆšQSÁ½µñZy¡¼ÞH=‚Ö| gâ¡’swÌõ@xo6öëvhÿÏ\7}™Þ;» ŠSý“»¿>w©³ÃYê&2EÍÁÿzÿqÞ—üÖýÇ©ë„q¾.;d§ŽécëS}¨ÆæðÜ–îoÎuóþXîp¿$7ú»+™m öï?_Ý=Â.´Gœ6æ•mJm0HðÇ—ù#Χ°=C+1û:@•oƒ+­ …×â pjM„moÛÙ´ïåôùô• ü1üñˆ6Ð4¸‚þórè±ü»@· Hð¶; þï}6ÞL'…¦¶!+µÆy ^JU¶–NÓÚˆq:ަ¢Ì¿˜VŸ‰XÂüdï@þÓFñÿ®_ÌâQ<‚Kð|øŽ=àãàŽc`¦Òö/'ç'ߟ÷t“ =à‰Ê É)5<ÍN¸ïUµŸÂu9ß ä/ù 5îOgé)­³¹Mp̾ۙhòÓ.´Ð4ú.ä| oþdrø¡Ôv¸= ¬¯þ58Ž~¯AéèGªG§ƒá—¾lfžI¯Ñ-—·a>/¢’à“ÚÜ™CHø|Ϋ6þý1øò&!;GáÌæ°s)H¼bnOÛ í\OÁµt€'š´)ÇI¤ˆd“’Ø’HÎs[É-g¸>ÇàÖ¼›—°•ú<Àž3A3Äuýk"ZP^Á¡à?ÎQ^¨è¼BnóSé®cô¶NÓ{(a[I*³€÷x;P<©´åàénÎÞz¥•{Ö‡{{M?ñ= YBÔ°®Ì“ð»uƒ†ôvé-)G¸©ä‘=ì»1èüw½H›)ƒùp,v²™á?. UÊòLöŸ’8_6É"iÌ'$º7GÓifMí­E¤Õ’AìÆÄ Á­©À ¹ð{ë“;)Ý1”…ó2ƒµ!æ$®ÈŸ^kHe sU­ U ñ[ë2)þ¨««y$–Íœü^ÈNy[¶†N3ã?©åa§§<¼˜‡IxަºFòê]¼¿¢i½zIîhm Iõ!t|ôÇÊa{Û¾oË·þ#[ ûix°Ðdå©fBûOÒ‹’F÷y7èÄŒ¨¤&ÔŸyö’v¯ÊñÉÂðU ߎÂ7N7Œ½˜À¦v”þ~TõFèJÙ nË Q½%ÚÔkæ%ô²zõ¤„ð"Á¤–8ÎÛ@‰…Çøþ]ûŸXõØ—Ùyç{¢‚?þíþsuö9¹)M ³ÇíïdB”G¾®ëFTp^ù¾.;ä·N[xº6ÔXSÝ.w÷¹mÜúNxþ£¨Ùè¦pƒÛð髤íUŸzBA;4Ô®·ûœÆ&.5>u¶#lyÛù Ï?¿ì¬tÚØ'4XÕ•þv&¦ÈJ]í. ÔišéGåmC[È~É3¶’fYhgAåûOTGéøo õKЉùs…Bòx¤ðð)ñ<¿Ú옺akP(. çƒ2QXàØ&ŠŽx»àCü§ÿ´üFiøg÷ŸW1#ð‰æÀÒ£¨q<0ÜðGfÌüI<Ì¿æå^LþsÕ/Ð 0H;ç“ÔNúº»9QŽ`ŽÄ4lž ~p/Ñ2Ž÷2[p8¾ ÷lÒ­» sóž-mîm§³ØÔÂï=£>(Ý=°P}ôp¯Àú«tôÂô¶w)? ŒÇàŽŽ¢”õq¿FT‡Ã}Ìb;‚¾ánøÊ »~¦áðãáa:³+¹ù7~ ¼[ÌÕ ´ß ÆÇ ûòpDo¶¿—Ãú¿zÕío;Á=çÒ¾oüñªÁ_”¨z©©ñ4•œæ†’N.p‰?Çà"K1nk¯› §='rïØê઼ˆ{„ïQ~8›<ÀÞûPø´¥ÞÔz´ÂÏæÂQäåýPÛqáRAƒup>Ì—;Ô½k ¡MBso¾ ”cI(^‡;ÊIݨ±àîkEx£F’J¶B…§D„·9‰ñ9Ÿ¢™æC±i8t`‡Þ¼ˆ âÞ+d&¾Êò5ùÞ[®É4­~ï­‘µ¼Q²èKôÌGsƒJlY͹ì»Õ+ÉœôîŸðùØå,Ð/žÞ‘°^q­ ÿq ¾oâ´Paim3Ûçmù¦9—Á•¡EÎQbþÜJ¬WLÕNú„ÕͺVgê½ ±Á-ÔÓú¼K“~p·À¹á€òóиýÌ|›ØÔ¾C/‘ÜÞ80Û_’H‹io¥võúx©½œà]Å»#W$2üS\nE/m ŠŽyRþ#èü¿¸¡·n¿ý.‘SÍùºuMï®g¾Î<7³)ÿÑ1ðì’/‡Ëî÷®ã–sô+ó'&sš˜i¶°3=å²+ÁMÝ:޵QlWÓÂüÿî«ÊYÑö¤âÀÒ^@èô“]b÷;#L$ θ±¶ŽýÙ ºf2øë¢³Êie€'fž€þMñ¹ tþH»Úþ28àhçV`¥¼öKNÄ-È¿;ŸÝNªM¡ìpëÃè€ÿÄ^~b·cnWgÚ¿¤»´:¬5õí¶¹Lpyð:ÓL!¸ŠGˆ×íuªQM´¾8Qö½>ãp4 Ù¿#óohí’¿S‘v»þ*æðtò¸-7ÃìNÇ1›gÿûÂôãWð#> t¬Ç™ù.¼‡?/|¨îˆà Ï »ÝàmÊïçsÜþc:êÙ„“I5©,¬¢Q5‰\…º÷翪ªÏ[Àá$7°gLP,Hî>±õ ªñ:Ž ‡02’ò_}/ùŽôÖŸõžÎÒcüŒïÿâð{ø)'‡H uÓÇùp¿ß¯à p¥†;ò5à}0WK Ökê)uzÞAèóRr“H  ~1x®y~gSà<®"æÃ\³l`£ÿ©^C”0Ÿä¥²þ£*Ÿ“0PÐÉ5›ÿI¾œà PþFö#Z_h6Èhà§Œ6î{þ£¬;ž²qN_e0–›Ém¡¢eÑrÿh}-ÿA^]6ÊÝ?Þm  n„gùžsÚ©oËVÃbÃÜG,4ç¥| ¾à8¢l“’øû°>ÒƒßK©·$¡×HKƒ]®@‰tã³\*,`{¼-ßç¤ÉŒ1Ö4,‡DOԀǪ®K´ž—„ÚÌ»üqXCêSi«ßkeøqÒ.W¦ÒàØê<ÿí( åv7³lb蕦t37‚÷Úè<´_I­©E½ ÚÉ«åeô’{õ‚ÄõŒÞ–’VüqÕ¥oý+\ØÚÿDþÝ;¾8λ•Lß8Uÿuþög¾Î7¹)lö¹íÿÎkr2º!Ý×ΧÈW?¿Êâ”1¿ÛÎ@®"À¤Ñîz·¶ÛÁ‰hcØn¦–™êfwƒ;SèÓWsx™fÐÏý€›D½í&{À™bQ:l;Øá¶®íô…ù÷8Ójö9ºt.í¤ôy¨—= §}‹Æã«75·ímEtqpW>Ó߬±3è |Á/Ààh3ø#GçÒ˜þók«“¯ŸC'?[çUN.zmÚfà‰ìÜ„ P:ú8¶‘’ÖÑvø›¹ÔL5 ÌÜá³ù;›©ÀÉÊ@󓈒J§;fMN(¸Ñ<ê~¸ Ú .*…û•£†ÁæO|æ+†^Káùg yIN‚¶ ¶L|­Å€ûÑyûWËîáÖPÅwÐ_77!º9âl ¯˜;£· Tô¾ÊÝ9Ï€Sòçß­ uä‰ä‡6õgÞmþ¸À€”õ€ã»8ŠdåŽöêGþ#¦ûÂVƒw*Ï;8’ÜáÓ‡·sqä"‡ÑÞ:þcŽ^`ÑSBÏ—ú®ß%—Nœž SçѽÒË}`ËÒpu/¾¶ÉžT‘¥"ÜAÎ@?»Þf=­ä2;§ìàRà„¹,E¶àÞ‡(º¹dýn¼@îý[Ô8žuö¿?Ÿ$uùžDô&k Í­a½²üQNcÈö€_øƒ/pJpàr~iÞíÿHâÄt§S¸¼~Ž3ítBFê3i!õÜV)­¤ì Ò-’F3ë|]Îky,Ü·2ŸÃ 5cÚ‘oËVÇéoü™Êüù.Or0Ü)^%õŒÔÝð/§õŸ¦ñ¾×»’Ýk¨u¤¨»h½P˜'P;Ä|/Éy“%°ð8ååÐ’K$¦×Zgh;= vÌŠ’m—l×È(qI¥ù— “q ÊA Ð;ÇÞŽÂÐîx3Ýæ†– …S‡¶ÈF¯¿®–õ’]“hY¯¥vöªxE¼Ø¨ïqÜé[½'‰%±7$‹¾õ0‹³cƒ®Ùû¿¸îû¾sÞÍÎPN'é¿äãs&»yM)sÏ8⼯¨›ÐMÿQË1Î寊–Æ)búÁ±W¥ÌTÑp¸UÜŽkÚÞ¦®Ùéu¿nX%x™F”¿ˆ¾ÖÏ·çœQ&:µ¢Y¶¥fkØQ_èh¶; âö2°e5‡öÞeSÚ¶ƒÝˆ‘~ö °¯©mmS|ÑûóôfŒÙkýy·Ó—“Ë›Ûb-  Á{¨Ä4`szºÿÙx:‰H霭 $Į̀<å…k” L9@Çè!Z #ýI³(5üGÏÏDld¦€/ª`l_I×Õ‘1°û|TéRÔy=-£ @èM@ý8vú'ì]_e7+¢µ…'Ê ” 28ÿe ð;7ÁÜ÷ë¾—h ÿÛŒét”6ÚÔ&¸'‹‹?L6´¾á_áüï8ünu)P¬‰ígï@Ñ7 œ_{3}*#ÿ®áÒŸØžÙ,±“(÷ãä礼zÐb* ”kÊ#8¢ÄFák."f€Ç9Gv—Òp$Nnv}tºf·;Kg*%þˆ[²Ã+^U8‹ä“ä !²¦{ÜEÒʸ¤h\¥Ã$9¸¹=dN‰—ǽþèJåÀ~ÿáçð-œOBÊuVí¢=õ¬ö×sìJG‰-sÁyYx_á˜Òžý»&»:>蕟¯Æ™ro`x1ø­ðR]6H ®"ÛtŠ÷—nÕÆòˆÛJepf ŽÏ“Áž"‹Ñ2ë(Ž9ðA¼É6Úì"ݦÖÜí÷€·‚¦IW>*ÿ‘MSÃÓOvHn}ÃËx>ä™à™¸ü‘˾[“͉çÎ¢Šœ›Ãq6ÞŽ9õ 7 œ_kµˆäнZKËk}¢ï?ÊëD]É‹¡hNr8›ô™ËÙ!oËVßioNRi~‘u’sÂÙ¬æ•ÒAß Î\)­·õøã”&ð²™#ÃI4’äz€Âq ¾ÿ'Õ }[¾5ÎQ“mÚµÍÇ/,Fž×T§¡–J,­ þ8§=t74‚O{Oºóí-}( Çå®À´6P(+ÞŽÂëNó›M ý+FhZ#½áˆ´^hG0ù(­éóØËçÔ“Ç‹¥§%ÄÖØÜšÂP> ÃVjÆ¡íöà§ÝÿêuÍñ=ïÊ)þ¯Ÿ_½ôírþt“™ŠfµÛ"à?žúÊ»/×½ïÔtØùºÕÉ æfl`ýU.*`ç¹ÛܶngøH¶…)jVºIÝàrZ|úªg»S;à_w¸ƒ— [í2çW“šêÑZ[϶ ì87¸,¯_§%NGëñï4OÁ€ÌÀ¥Þö°ñ ¡¾¸KeÛÓf±W?ÎWÔô€òóÍ„÷x $@–§NÁo¡Zp¿Có%§‹_à?JQHºbkaôÇø*þˆŽq¹ zµo¢kŠWC£±hžŸ]¿ÛÖÌJV¡1t˜&P\ÔùºGxI VÄ:B«i)Ðû(îqš²až}ŠÙoúº¸%é>æIøµ˜+Ùh4âúø ?´{h4xd>GOÀ ÁÛõ#]„ÿÈìú«Î_¦íƧÆ(yáG.àõÄÀêôÂt°¡d= Á=Ïâ_òS|pH=: „sJ™Ív }ù6œ[ZàýHšCùáGjãO"ÉÎüZ}ת= ëP}÷¨Trt³ç£ì ܶ=x-?Á§šðw< ¬XÓK18„³RD“i<8‘p çÐŽþìF•$ÜÁ^úhýUf÷¹-HM¨ îÿ ªøôôv.$Ïø(üÇÏÚ þãW= èþXþÈÍÇ~éá?’R ªá|8vú»m^ð>ñp~Ε8G—š²FƒÑNêïíÒKZ^îr)×õœÂ,1ä ï„bøÖ|xžÈ›ží\`¸Šl|“×!ÚBiÀ/%¸(³¦Ñ¸ÞZ¹ÅK}ÎëíW8º{œT’ƒ?Úwï3“:QÝih¹ŒP™x+˜z$\Ñi§¯¤6>}@ëëZSCx}u ˜¸NÖÕüíg9läxà’vÐÛ²5sz™ó”™ïC•m+–[$mõ˜–ÓR_oé ½®W4¿]oJb¯¢V•¼êÏß-ø#O£„¶›ý¶|G3&;f|k”,#[Œ‚žΫ£¿+ŽI:Í¡>o'úä&•Ò„ÚŽ¯é8iN!ÑŠõ1ê{øßE¾—ÿji Q?`G|ôÕF©åý®óÑ~éÁºµ¹VôJxѽLp%—%¶ZIdI©ÿApÕqh%A¡üGÞœðÅxïì‚pN™ÿê¶oŸ3ÎMaJšËî´À²;¾8n¸ÛN ç›VÈÿ÷WX'™ékkR ´OKûÀ=äpg8'MBÛÔ0“Ý4_™7üG7 V `|k÷Ûngȸʶ³ímI;Ö}ýE‘¶8{œö°e9ÜÌa:I™¸ ý@ƒá!®©¦à§­ùÓÚOíÄ~ÿJj&šev,>»zw9ý­<XãÏŸ{Ú|/Ê=°O"Åùlþ’•Î÷Põ'Ðrñ œ&IsÑwÓÓ£r h9ÅåðGãi þe˜ò™–7CÀiz4%ÄŸQp"©yÔè8®Ê+ÀHC'À~&)b§þ7ùÛë»)àTzÂSf ÞðQ¯upJK8øs·ç(üùO ܉2ÿLÖÙâ&z0W9«L´U$ž‰ú¼BûµÆ× 0ÉÿIQ¶ƒ=•Û‘‹ðU°Ç!ZÝ—›jâ¿÷ƒá×¾”f®Lßq/îÈßî?%Þþà ðE7Ž#eøO í?<n!3?F=Ž!nZøf÷GûÏ+º-m7êDÙy??áƒçƒqJr:©%õä¢dÑšJžp_É/§ðïßÃòr%¥¹Ýa‚æÂKçlIñ[Ñä2ûó‘oãìòHýLzè=¯s•%”´Æûy3àÛœAºpr(n·~¡«»Í–¤Ù¯CQ¾¦ð¡Ík%×”=@èÐÞ~àk[”°’䆦oÂ)øß·öò´f s$ˆÿˆÏ©àüük”ûõýOˆv€?Fñ)ñï%É$ í½”›¼ÂÊ6°Ì(^Àž¤‡'ÙÈ…m†·ñr;qÝÑT+à?^Ð|n(7äw ©$—^ÓöZTËÂ#ý¦ë¤¸éWÝ þ˜Âg8µs–àFvÎÛ²•qÚšSp’— ÆqujLJùÚ,‚WI§JC=È¿{UyU÷ßx%µ¢ÄаèYÿùƒUx²íð·å`äå‚S¸¹t›Á67Tg MeéoiáÕGÍÖI&¥ßz¿js¯ŠÁËèÐãhÍhp! ä{ËCHP ÿû ,6è3Ïÿ‹ëúº‹á4 d>ü7×3ß~gº›Þ ì!»èKêÆs_;OœzN(çðWE‹ãä2?ÙàóQ û·{ËåNq.™Lö'SÆŒu³~åùƒÙl3¸ÿäÀ®)”€ÆÙƒöºó»‰ƒ[k»ã«ªô…ëw×:;œBöÍ‚ûï º•¾å èõVv9ðäTúàY3¸šŒïéüé+¥ùÝ,·£ÁC»¡‘ç ÿ¦ôœ¾nݤ¼ü!@플ÜÏòÇ<'üì[þ#ûæ§Ø4œÖP|ø™#7Ýë¨ø`"tPwÓï³ûÏÇÓS*et$%¸§øÄŸ‹vô^]^6ÙˆŸB©÷€ÿ²Û‰Î§²Fžó5q3áþcá?J!N|ÊX¿†7pÚØ?‘/B%>…kôàÌ&èé°ÿ_?,5…q_ÓЋ¯1—Ûáï‰ø?W£Dv½Í‹±øã ¤¹TŒõæ[pϯ^ø²™µv1°|ð'¼Ú°lFîÎÍÀ¹¤ ÐîÐz.\R&~¶ŽûëÊq¢¢ùÑrç´¿–ÑzAëV)¯%Pó¼‘Ç E‹rp1îòÔqZ™ PWý»³¸<53;#Ó4šWMgI } ßxÏÐ~e½"zN¢¶‘´ú ذ ÜcMžCqm³÷ò—,qö™$`ÐN>þ†¢ó$IéuÖ ÚFW‰§%õ¹ÞÆÿoÑïôtƒÿèÏ;tŽô„Rúž¡ ¥bæQï­ßa†Ù4ŽêR̵#ÒÝ뎚͗ÈZE_ét-ìUòÈKàMÖðáÁrÙ%³†ã>ôÊV€>|Ž’>3k‚Ÿvÿ«W8'½ó.KS\§6¾ÿw‘.ù.8cÝ\¦¼yæN dѺâ+œáºn9Ç:_·:9º“Êô·…1ÛSPm{ü1Æýùe’ÚæG³Ü-ç~j—sðWT´3PJº/"°«íUg¼‰ˆ10­fÿøÂ7òkÍN»(¸˜šCyoƒ²÷ïRil—Â#<CµÁϲMm:ûÝDLaæ›Õvðhðr1ðpPõüG ¾GÑ ƒË’m²>Õ÷ùCS4z`«§Sò¯PÛ…Àš#i=ø(…>TžNÕÁ¥þõ³ýÍØÏ”°¡L—0®ý8?Œ3õ¾L ø7àê`®Æ›áá×Âwl ¥ÀÛÐý‹RŸ|~ÕÐM 4­U€†NAïI»P¢üФñ\–Ãï‚ ÖQ3Ô» 8z†Ío‚ÛG3üŸ$ÿj*TÆc¨ûºÔŽ! P¬1¥´“íUèù&ˆ¹̼å+CIpß$´1þ`'’™ÿšó´T^ ÿó;Pº~R¸ô-æ»ð»5îO×B;|®Ë`N”]º¡ÛÑv„ƒÉ»Èm eçÒø˜RPÊÉ9IªF£Ë9öï¿fÌ%y p7!øcïG+–K¹7á?ÚPnžÆ/x û÷àìåŒò”oq(m D]§½Õˆ‘%¦Ìb?ú.ãÝUjrbJL}ãAž_ݶµh…àVÀð*œÞ¢¦,’\TVè^}¡KÁ ÝäCy7saNÏùŠß°ÿàjúÖþ Þ2›þã ݤr<ÞçÏ—92EÚóhóÕšWkHo¯œà¹PÕ1d%~«/þìD–uœß¾;w(“Ü]ªÀ'†ÿ¸O£¸‘l—–PòE$”îÓZWKéí¼Î©Ùt¨»c†ƒ³É_Ü̾{^^ÇigÎPEðÁ#Íéá?Nñ5é8ytƒÔ§zQ_ƒ?’xõ¬|ï5ЬèŸè|ÚòQ´äl*n‡Ûw™ª—9ÛM^*Yî_/ã‚Ó'K,¯k Éz §™Ð~§µ\Ü·úXªhNmÇ+à?z`N'¼?„qþŽ?\w€k3`Ž·D´Òt]j{=uØ7>{Dëki/¯ÆKá Ô’ÑûN·H4ɨ‘¹zÖ:Ð+”4œýºúþg®pN6çÊÅqšýë÷®sÖ™íf0?˜‡p …¿ÞÌé–v“¹QÝÎ?¾³_-ž“Ûtd„[(o×¹7Üýƒ mÓÂtë¹_·O>"bU¢¤Tªö[êl×ÚýÎDœ²Úv°}á?º_’íЯðW9Iì:húyÔü±JßÒÍì¨ûÀ°öÔ™šB±¤µá¿ b:3Úl·£èTüd ÜC(ñ>$•+ñ \•,FÖæ ò·w^Ùp䃊yBYø7*ޒņsØ@±áëO |¯ÁQíá'üç3¿|¦„M:¿2y$MÐb €÷Yô˜ò¸^×Ì^z=%®$»¤Q—RK0RužIm?Ûþmùæ9»ï?jcœû !æH*¯„Ô©ð/Qà†Ž Œ#ôoM­Ï¤°ÆÖ¦<üÑ¿…Q9Šg5ûí(|ît1ClẔÚî/iïõÑE²5® gô7ýѫ練Éë æÈå…Öòš“ªp]zjý§¢ùù#ÑdÿyT'¿óíÛ–ùüñoϺã;åìs‹ÂÜø³À÷Õs‹¸¹ÜÈîŽ~åûóhNy3Ø–†BEeí÷…ÛÛmçÄ´ íHÓÇ:ÏÿÎgÚ`+äwú…Ù¹Ÿô§|ÝœˆæßÇ^ŸÉEEÑ›ÉL~jÏÑ:èàHðà@¶‚‹Ê‚‹§Ñ(›Õ—‡r¾3ÙÔÀ§_ƒ×:­Û€K”cq7b;ÅÞç¹Ü ZøP`•õdpiLÜ3{°çG©“Äl¶€¯»à+'çYˆº„ á»¶p ,Êÿ°{× \£c¨ÉQJÈ(œY嬯Ûßv×ÍÈù ׿0< }ZŠãJàñÉ ç%‡Üâ&’H¶€;mù–Çáæv§Ù$^Q÷1úôgøEìß}w™’ò..%"—ø‰t†FýèuŠŸrðÒˆÀùçû1œTæè•îC[ cë%õÖ$•ŠàW‘?tµ^Ó.ºR3ÉC®)EÀ"eà?¦¢þ÷yoÅ(oæyžcƒ?ÎQ5ðG Ôù¸¬’QR÷È7þܱ^oéD9Ã+ÀáÀcÀÇcøÇ‚‡šÏQí»÷™‰ŒîªÏþŒ#¹à¿_Ó$n-g¤«†Ñòh¹uÀý²Z ¿´€¦ŸÌä?àˆWpp]|NÇ¥ìŸoËö£ÓÝ„«Üƒ;ZÌ1©îºYFè%­¨%›ºÞQðå Mî%×+rI iNÉ¡þ,žõà?Êóh*7Ûâ=ÿqÖ¦ÌÀ“¿Üolxø˜Þ]®‹õ¦$C»õÖ›Ú þ( ø¤ƒ&Ô¾¼@‡I+Œ.‡kÀÅ'€ƒýýí(Œê7mBèŸ:só¬´ô~ÖM²—DOéh-âÕñ.ku¯¬î“‚^ ”ò<§×Üš^ÙŠÕO¨?4ƒŸvÿ«W'³ó.sY §É'Ÿ^îzãÛáps˜Ææ•»Ý)èøó­æqó»iÜðnM'äWæO íd5=lNÊMI¨š½ëÞq‡¹œ&«ýÕô2—Ü®n¶¯*ç]SÜžsXd–]b·§q©-…ûfëÙ%_øFe¥³×I¯1šfãéâÁ”¢éö/(ç 4 ³¼-õ¶lî÷Þ ~úJaf™¿ìäÀ¾ðù´ øáˆÿi>;X]˜G²ÕeæÄ­(÷:à„àåOí :ïkà&…™gQ<›sp4⺼ŽcA¹Î ¬s½M×ÀIK©5üâ@pÝ[ØÄ &âl§¿© †ÇÀ§øßfw@ÌÄżJl‡Û3ÀÙz\Žfîâ?ÿã{Êï³$þxê eæÛßëYûpEhéMh¡5”õìŒ/–°`Ìóp “QëDü’6¢-6PL~MiÌš²»•u;Ùö(>Å—¹#\ÅL¨ßŠü X#—쓜úXòÉèêärˆ+s(x€•ˆ}Ú½º]o‚n“|j½“zN£y9½ô¾\ÕNZD2i4~t›C7å³ì»•îë“&•†S¸Dû% 8‹Æ÷èXí gdÜÌo@ýººU_ÊS)®mµ/Ö±ð9$7ÃlbŽÈýß{~ÕÙŒ²1i,ú÷¾íE$zˆ¹ºZæHLðOMoœ[io•¦ôÚèk‰áåÐ5’L’hdøìû6?J—dï?²Ð8éw™¢:uÿµÿ`g—³ÕMkZÝ7² \÷UwÓ»EÝpn'ÄWžÿÂùÁüdýû*rQ#û¹ãöp‡9ß“gš¶æŠ[ÍÍúUåtàþkP<¨ç¥@­•v»½í 5ñÀ'l7ø všû%§•û|œ%N6» q¦B¡î2Ç倈Cìvò¯=ØÝÙ–·Éí—0RÓÍlðÇ:pÄ6èü³ÀãPP„Õ mcòijH1àHþ€úÿüùµÃœ(îÚ:ô-gç!Tþ#5Fæ àM>‡ù}—P/”r*~>Þ þL ™it™ê?îÑ(J’€_¨Å3ñ5i!4ÝZ´…ÿ]òRZLyíòOŽ ¾Ænº¿ü1•2Á 0ÀVNƒøë¸5ã&øé5ª?uæï¡y¶ˆ n­ÝTg04ÁVúŽA‹?‚³ªΙ ŒHÈc)·k_SüOÑýÏÃÎÃK”€)‹ÿÎ6bl3Ŏç»s{NÏyx78{¥ç~(Õx \Lþo‚ f‚“’ø³¶£Î×àBs"³ÁY$^)w°m‡q xÞÃÔ„ÊÏ-9e74ø3) 7àRÉUîÄßpM ßL¾\Ùî1çƒÄËàÞ´þS¿RÁÿ\GÌÔŽWsQ‰%/ùüäÚª“õ;ÒFÒËl8žr`Ï“œA~愘CÃ×Û¶wÏÙZP,÷©;_%ã(Ò@VH"ÄüSgBo‚Ÿ©!V:K99…±˜/°ÿ%¤ìá ðšl~¸ŸÝ&C«1|YuàxZð ٠ˤ/‘Þ¸…8ÀÕ‹’PHõŸb8‡ûò@Ô$™¸2ƒ}ïñGB'¹;‰Êp~vÁI›è0õåÎò\zk%¢‡µ¡VÕJzø¿Rz‰ ÚAŽ$ëQ—‚œÇ¾Sã5œºÆ¿Óó:FÖ\Œ´øÝÞ2H£zut­Öû*Þ+¸‘^JðÇ3í¥=$«:èãNð5yý`ëÚÞoË7ÓÙf2`ÆWĘ#~nïö¶G Ô#RL»¢õÔŸÁJ_É ©ªÕà?–èPD‘À­9©0Çßå߽ȿ›‚ÚaÇö{niæÍÕ­h©úF’{ã´¤WÏ»¯½ŽzGÂyEQëì¨w”Œ0¢K“‡Þ~Ý ¥ÿ™ë*Üâ»g­Æ©ô¯ý‡u–: ÜȦ’9ìŽìÿ¸èËïÆƒû¸âTuä£ ÿýÊ)mZÛFàÒÔÞ†0jæ¸ã°ÀùßL³¾&¸5Ÿ¾âÚ&èŸÔ@Î%Pcûí{Ðic’À+\{Œ±Õì¯_øþüˆ³Ò©`+§¶KqCªI½ì`è+`ÎHêGulk›Õ~ɎĦÙ`g@Ë,G좰|‡&P8h܆ж)ù FU$¨õ”‘B}–?&9Yá+î€?rpöŸ8›‹Ñ°\®$½‚9´l4÷*F#>»~·€ñïQö?ïzÈß¾Ÿü‡ÊóžÁÓQ•t?[N'§gPÆ¢vÙ'ùㄯ¾›™nÓ`Êþ˜H ) üÇ. $Ìþ\Âm8Êøúl´û/ˆ}ÖÚ&¸'‹3‰¦0fpž@=0oR5ÌÌQø¿èÜŽÊÚqö ôwk ߺ^Ÿùž‰ÊPm: ¼òÅ6 ì|ŠþèöˆÏÛ¨/-£„<|±’I6^÷pg#f&~†F]ük„Ò˜½NP¼¯âö³=Á5x?ð¾5ê5žã»„R x|[2ÎһͿ€E.sø†ð‡8²Tv>òQ.îœîëßßR,AN£•2ËHj”è(°°•ž× úú{ $¥ˆ–hú”sÈ@ŽO9©GüW?»wlZM! È/pINÁ ¤¾l—\YæÃÉXo¿nÔÎ(aC)!~å?3,¢Ä—óà®×|¸q„-À)¸Ç¨)X°xv±¬—ÕÒ‡/Jho›æÒdêz·ðé-’_=¹äÏ‹1t ê¯ÿx·k(…“ÞG?piþX ýÒ‡7&kL/±õ²6×ZVïÂ#í‘ÔZA›èh ¨IÙÏdçÚvÁÛ²UÇL?Cù¡ÆîÒï—ªðFî!]4œ×T7ÃÕ\CÄëzP³x%•õž¶ƒOJþ~;ÄUù'Êf{Ùï½ÿXoÒ@™ÕÀœÌwmx­^%]ò·\–ºGúßFù÷Lju¨-xžN“Ÿ(ÆfmèÁœç½ÇCÌl›½Û±6m—¾Þ0]!G%¤&ÒWðu½Z^d¯¤×C/K$/\S,ÿ)ÀÔ‘ÛºT®¹:«ýº çÿ3× _^çÝÛÉðNÃOfOýÜ¥Î6gƒ›Ò45Ü?ïä¯ûš¹yÜÜn·î£òÿýÂ)g:ÚJPÏ•i¦ýÞD5ÛÜÙNBÛÆ®0-Í-·´[è«Êê­3øc 0®$í³wìbg IEÃé™bÙ¦v‘û%«m}¾sÎr§¸½‹¹7›z¿a4´‚B/þ8 ôZôÈ¿›Å~IŽÇJð{í¨Ó À¸MPã÷ÁAa9 —ç7à3Ԙƒ«ÎRVzùÙxÓœb–^¢¶9/Gë•¥l@þË”cì:Pþ%ùϧZ@ó¨(ýnz}&bsuªMcè>“•6Ò }&þÇr/®ÿqa7jþ”ŽøÏ(±?y‚å)_g·0w 4AAðGFÄC{1ú×pJpÅjÌ×oà‘»iœŽuÕ^›%Øõ»‹œ_L6Ôç;žM}€ƒw0óÚ±¼¡Ü–JÙ?ìsøÆhEžª“4 ó= ~§ÝöýGT³ÛΣøð¸gá¸ÿ ø‹ˆ1œÃHBÞ u\äVÐׯý™Ñ÷e83W6;?ÊÎSÁme†Û-À§øw嘼˜üÚ<Šä—2rH²h8M!Ox ”¤Ÿ_Âr]ÿš%-ùù'{Ì-…ù›“ÿÉPþ@þ«|¼‹HyÀwä7àéIí¯ÏÀO-$žÌ‡3ÌÏWø6§•!œc sþƒ6ãúϨ\Eá"]) ìÿ±MJpUY¯Kô5Øc–¶¶·Ã„ƒJþ%Qd?_¤}ˬý0žÍ̱ù]¤y"”Ë1^+»äéÎ;ÅõþÒÒZx]ò"I£¯àyÖ Þ,´M^xœùœò½\ÕñœÔîxµ2üí¿ c· ·“×2XCiJI¼¿UKépÝ–,r m7OpjYÿY‚;ÙÉoËV×ilQ.¾‡Ñ2“S%8³Zò#¹ŽÎ’¦ºWo¨Ï»©¹½ÊúRNbX)'àÞàÁºüøãg;ê½ýçMn*…9¿•Bò›˜×Õ«èz¤Ê}©‰’]Eë=Ñp™]5Nåýú‹ ¡¨èç–Pt)ÙÇsގ—N_ó»MmÛˆâãÏiã Ôru-ï±F›y ¼¨^o¨ž‘b^r=*ßÊ+¹OÍèµ­ T»E÷ê£wfÿ—:eÞ;¿6’S#àþÍõØ·ÏÙäæ1­Lh³8°‹ä¼¯†[üüñÆ÷uù¯Ø)kúٚЋi‚ i¾7KÜ}NxÛÜ®7=Ì·ÒWòG¨­Ÿ(-”êvèî öœÝ×Ná9Øc¾mh·|áú«£Î<'‡½X}3ô”`ø*ÖŸ)Êå¥äß%ÍñEç×–5ƒÌA»êô”ÿ´= á5xƒ{ô-PÌÿý5!…N¿.MøYÿ±Ô‰G!è¾­\•‡£\e)=í$%àrÀæ«p‹¨5ͤiT€V™qŸ)a'³˜P]x'4ƒÒQ@cfêŒáIü#ïA¼v;ÀéìšO®¿:ãkìG=¦Rq0È|¸|ô‰x!§÷Ÿt¯öfå0û0êyZc‹Ë3>ð(.OÅÌ{ tîˆÞ@Ï(¿ýÕžàEÜ (t…ü'ØÎ—f‡j¬MŽý8šë„6ëíx(Ä¡@Â`…ýð\ó(7”wmþ Î#ÿÉFNA77„D9Ï-spz®ÿq2H¼ÚnsÛ N«(ŸFö-"Ë¥8–d†ž?.¹T4•üÃ-á î#bnɇám`°Ýe‚îe-ãž° QÃp©Ábþ=œ¹"üÀU>/-µ¥Сú’cH+I" ÁyExð4šôç\`ê·¹7»»— \WÂéá7pXPÃò—”áº2ØwC×ê m)ϸµ“`À P ÷Ào[ù48?¢ÙòA¼ßmNx”ºÁ—úw9N–Í2GÚ[è-®¹¡ñoÈ9ž#)4,˜ÓŸw*ÿÃé$0?›Íô6^r'™;~¡Ð6-ïÃØíÀMå†ŒÔØšºûx£½ÖЛ:*=«æÓÞz+pzü^N‰X8+·z/Tc§ª¹epcu>¤b蓹Òþ£ƒN äß½­!¼šÕ˦÷ä ¸¸üGdøvp°•y9øãýü»+œUÆ?v+ÑM Í ìsÚ'ѽÒà¡YºUK>°Ñyx£+ð<÷½ãu:@fã·£rwà},¾K“ßòÇ]g°™kAýô…ö«E»e•7W7È8µ¡ZÄ› C½Ž^/˜í’dõRê膟;A 'ÃÌ«Éoþ#ç¾ðevì{üÑò_çO éìw¶¸™M%sßã$tüëý‹¹©ÝÈî §¼Ã9üÿþ çÔ7£íP‹i¸=äzfœ;Ó‰ckØi¦9îfq¿î9[zÛ˜˜°ŽrÐXø™ÎH“œºÐ;ÌNµõìÌ/Ì_rÖYèüh_Á}¬Ç§÷‘órE*Dmíj°É àÔ }0Rvûì â•7¿˜cv>tü ë|ògVš‚8Ñàßoƒ?S+òh<ælAzóÙ:¯u R$zcÿÔãàÊbú| %†&ÝKg€¸KðýdÜ+ýf†~&b[³ˆÜ u:‡OÓÁ¸·]£ùw m-^C×iÚôZbø/¯çdÿDÌ—¾nn1|ÚŸI¤,þ‰O…àMÓ¿û›ÀœÄo¼› A­†+Ûhó{þÇgŠÉÞ Ç£à*ï M©=8Ž9·§¶¿}Û¬yœ.Ðipr ¨»rhcÁî?OØ…™»s_. VXECá3åšñŽ)…y%üÇ-žÇ €P.ü$ú¾ 'æTfÏGëw›¸]çG•V½áŸYyz¶"§‡š/,;¤üG,ðÀ`I+gp‡P\‡ñR~ ßÐÀ^1AwKUrŸØ&Ô ör9 vKŒÎ¯q˜/Éíÿ1VÂ'5“IJ‘+ÀAùO³M-9®‰s-Èú«×Ð[àý†ñsŒŒX`†²L2ÂlÓ úXxNËYn¾»vË}ï“Ðr Žx …0³?ˆ7ÃfàÐ;ç© "¦ç]¼J¶È0iÿa½?5¥Õ¸Þ?r’7@Û‡“<ñ¦ð.!‘e1§±Þ{~Ç]D¬ˆVÎÃË0¶q3èúþúXšHiàr+m¨M4¢÷+ø£´ÑnzœWßv‚?vƒû3r ;æmÙê:õÌC8·çàYœ}r¥¨®ÀAJYðÚ#ø­šÃ+¬.°¿V•ïôÆB”¯:Ï4zïü¨ýÎø"Ðu'0úöYËIT/§.Õé(al§÷t8î²fÆ÷%4¤öæ>ÚSÖR"Œï6”’Šc<Œ}?ú› 6ýLÕ)ýH‡¤—7G·À¿åƒ.Hä­ÓŽ^]/‘Ò«§{¤‚C÷¢¿Ó0ì÷ùð™3Ô€}ÿ‘ýç/}Ù—o¿‹ïTø×ùKB8nbSÃ¥ú›­e—áþó-ÎZ'¿=ü[…ù¼Ê6%7‚Êo🟳 ʾ/5³õm:ë "æ2cÍFx—KÀá?Ä>¾´&Ž $¹Eùµ¤ÈÔÜTœ|ÖÌvâ –÷lyD(ͨX'xn ¥*ÂH»’·œˆ^†f˜>Ÿ)a3¸×(pþù"JC‹Q’#TÊÑ¿½o@¼eˆåÏ‘¾ wÉj—ú>¸Ëÿü*0wB`íx°y6Äý º|fõúª94ß¼†+éü>„]n š0ÁD\àŒ0¥ w#ð\ÔÆÇW© ôùzI ¹5ŶìuÞïP­xqæRܯU¡§ÁðÇsŸgæÙ‰Pˆƒyâ”`ÆÞp[¸·"¾àÜÐÕ®Üà¿à’2ð?`c¨sNôSi³Ý ú¾¢´ÛÞvB;áSü›7‡krD)+¥ä TÓ(šÑZK.8ˆ®À“ʼˆNÊA;¯ÿ(Ijw·­…Z’×rl¹Â×qç\^Ⱦ&ý Ç÷ê8uÅ‘îW–£gü™ãïqVéı€X]‚ä¿äž±UÑ£!¸'_†G‹oåÏßžx¾D—«ãÍÒƒZ ~¡¾ä&·*ãð7ñ ôN\s:Èûsÿþ?BW„7ÍÄ[yüÇÊ›E½5ZPók,o¿læåKU.òxh)ðfÅ%,ø.·}·êû{'¥;x_=ÿ)Šè½æÜþ£¿ÆÔF’¸ÜJkjc íõÒep3qµ³ã<“p ð[apqûÎÖsª›Tmür<Ê'9Ø|AûèF) ö¸®õ‰fòòï¯i­'!Õ¿FªZ°)¯¤âÀ‡FoË·ÊÙibB塃ôµ7èOðG®À)T/Q»ÕzWWé/*^DýGŠéqÀ½µ›Ì£0ß-1îÃðYêúÞþž¦‡÷ü#Z)Z þ˜¥ÛÁ¿µ’Fñæi/o€—Ï«êÕÕ’ÅK­›Àè‘4tÒ3[œâQX®Ädÿç׆p2:¡Þ¶Ld§Ö¿Þ?è8{œ5n*SÓ\wÿäß= ×ßÍè>w*;â|ÝþÁ—¾ªf8üGø³žö…ûÊâöq’Úv¢ii.¹%¿rÿG$[Û¿› ¿•’Ò2{þ£šñç3¹÷á~µÞ}õE‘N:S"ö&-ÄìH™’AS”¤:vAàíôTúÈ×ø•Ù‡{A¯š¦±ÙmÒàï÷ç­Äñ0nÁE\¥Æp£€W©¾àýùL'}Kl5|²2”y^(î„øô6ø ÄÂÙÌÆHý N''Í6?¦„µÌBhüªð ·À ¡È‡€éJð,ðÇ8þ*ý-¥íøÙ´ìNèþUŸ|~uÍ×Èͧ0 ¾£"å“9Àù@ãõÿu~ÔMÄÜG?×€mvØB&¸<ø+_La´Yþœæ¶Ýþc2unAqì ketóhÅ#þ(G)¨!4^pù_úâ›5v^àü¨®œz|; €SK þhýù"gã…VNÎJ˯è!Øã eÓä0 §£u;ÙÞÐùiO¸Çåµ`¶ZœªÄÒ´ò†ûHr`A+þ8u—0K.®kwôþ<ûþ£´óJÎ!‡àÒR‚ÊKR¹É7d ôø^ª8ª GÄÍ`ââ|šqn®N½ƒäßíØ8­×¬P˜“€¹šÊVÉÌÍe•®FO‹”S5—âð8Ý9ÿÊV¢É¾ŒQÞLû Þh›þÃþM5¸¨4|…WÿfÈ>+áÀ4#”ýFèæM’Y¿CÜy< ä:W’§Ð‰í»]hñDîlªÏ¥Øâ®»1§pC9'ƒ4ºÖ—½Ý5õGýGÒÕRF“k'=Í«y"æT²‚ム›Ùw;rš9uÌM*Ï÷1 Fó·ÔŒÇððŽÏë¦å}¨7õ™²—ü¡à‘ZÚÿQÚƒýóóÊÿ1ú=þ8h2û×…b¤Þ§ý6O—Ä^]£×ô™dÕ]ú^dŽº^½'ñ ÖïNÆèh›ìpµ÷è]þݧÎ@³Ì~ •׌¢ƒC¶ËpÆ^¸ÔAšFSz‡à?ºy)¼ÊÞú·tõ2è>pn<0\kºkËRbŒïZÑ~Ý‚ÿ™‹lÎ;ÝÑ©öÞn¯»žø:ÛÜ|¦¶yìþîøw>ñÕt«º±]×­â<õ}Ýê²èóÁP\¥¨¶ý3°w4¸ë¬¯µ[”€‹A,¦ `ÝqøôkÚ þØOË Ó=Ô÷ få:hížðŠ—h³Íìùóq&= ð< -îÃŒlI^àùUV;Ð>.5ærppgàæ sS}Œ§³Áð‡u’˜vz`ýnOðGÞ ¦\B™¸-ú¡{üñ<2—«m_¢?¡§²+ã›}Nг »Ím(–@ÒÜ—£AÅ>†{ˆ(ùǧ€‚ŽæÛÜMÒS[CëÖâ£à†0’…ÛØ¿Í ñrïëRm*ÎÛ9¹œåÔü‘N’Èy¾"á?vêB½è"1à?êr:>gKzr**MôJ÷­Ž‘ðÿˆ; ¨+ŽtkÝU¯4îîwwwîîî`à4@Ðàîîîîîîîù÷9w-ôãYÿÜiÖd&Ì9uª««÷³ww óÔ°'à0øæ:ÉŽ¼±Ñ7òTÇ"•@¸Z¨ñ1´@>øû7 Èÿ|kÆ~RÞx—“,·¨6ȉ7óBÙ%Sd6o”gPÓ|šEOë6°r9”/Š<áUhɱ|ˉ'+9ÞGóS;AݩԔ #1$çÝð¹‰<•~O› å®êýEÖkàÇ䈄ÚH}kÏF6L„ü‘‘“p »ö}ÝZ!lE^{†¤»ˆ#ãšìã’U#xm¡ÒYý«·ók6/òÇ5­ªí$¶>§¸¸c®rQ^N|뽯ßg³É†,[•îÂ;n±i¬÷Òéf$š7O€p‘?nÁ#œ’lCÇòN!SPôï¶ÈÐRãß÷Â'Î`ó·MA‘ŸÓàZí.Þ$£íÒ\£ªzK´…×ÇKå5ñZ¡¾U¼ìzQ"I\®+…§b”î°*_0ÿñ»ÿ¤w>¼$$…»~"9»-n!SÅÜpç;9QÊ¡€¢n7…Ò-åýÁñ»¡œÂf-ý+AÃís×3“Ü>NPèü<ä‹nN÷ÇÖéJ ·Õüø*˜•æÚ;v‘ÓÌD¤® øT;Ö¶±‹Ý°ßUâfg¾SÒÞ§éH ½¡œG‡›REªa}sé‚¡· ¦aÔö¶ù¾ký’¦«9kçøÇ/-†ƒ÷­D>‚p(ßôÏsм ÒÊK‘¾ÉÉNväW¶&%Æý7•ÊÃ'%FÚ8M‘¡ƒ'Áßè®Ðð9Ðð¹¦Ë7jXß,B}ZÂ×ßòÏœ=¦tþü1‚«óAä‰Õ´Å¯ÐÁ‚ØváWß<hæÁFà.)CS)Ø6ÌyI 9 è³>=’—¸^ô¥(u³ÍiÛGe’3ÞäÕ"ðH€Ö»H­‘Xþ W…›Q ÛÍ^â­~~\Á9ŸFÍëúïÎ*ô4~<ˆköÚ± y£#çöÐ(ZEY¹¨Ö‹ƒHjž\ƒêUàDìÛ#ñ2~5 ÇætfW ó;ÙßÑãr!U<æv“}ofJpt).yä¸ÔÔHšYswI WpBsö­üŒ3pW»á‹ñWéÝ;Ö÷~'¯à„àÇ9ðã4—rù£›öÖЭCÚú÷cj‚s8È—8t?²Q3çÂ'mØÉ}Š>2ìˆúÕãTUËZÉÏUe.ÒW:Cgj^yÅMQßÓhÇô< ôðíÉu½(ÀÌû¤¼I6zìS:D yûÞòï’52Zò ëmÖÌšz?<š' 4®ÜÀyŒƒ y¹%¬,å˜6þûò2;‘ÝTý7(~u®l/îæöÒàGA½¬½´%òÇí¨Ç¥ˆ¦Òfº“ׂF{9©¬Åµû‰[Û¹ïëÖÀ©aÖR2¾ ‚/áhà ÜWiH¯þƒò\Ïó\ü)èÕoj1m%‰44Χ?@ŸKùmÓòÇg‡IéŸ~‘bðQ{‹VHd¯(yAƒiA]¦ëNd¢ûJƒhVÔz¯Ó¿d:…ƒè@))-úäŒ÷½ð¥3Ì ±É©µ¡$¸cJ äy y+ ž7Góyޝ0òÇ]ÉëU5“J  ztXx™z|Ëü7æF@þˆó¾eâ;Uþõû'ç£nQäwîVÿþçgpåus¹áÝ:àÇ¥«·9L7[ —ŽÆXkÈ s'9l+Ù…ÐÛçnå|~õÖ”…¾$ƒ^­…ϵ×íM§‘aêAÏì$ßêv£í»J\‹;1»Ýý›„{ ÌHž§êÍídò­5= ¸ÒH ›ñ»ÖßÍk¦š=vtx;4} <íe”ŒC ¿_ð?)m~ô…ΦøŽùƒsœÐð$oàU#ã.þ © úë:Nñ¹"ïÑ júùÞBLøæúW­ÍÔ§×óé”Úÿ^û¨êÎ}¹îî»´‰–û÷AÙÊ$³K¯%˵ݬøýeä{.9…²àÅ^ÂYAÎé\ŸÃ°ïíÇ?þõKzã·ÒB›Á¶ü@ä øÝˆÈ=Y.o¾Þ ËÁ¸ %¶¿Û+¼‘re¾¶½‚_­Ei©m`ϯž³Wá'îÎã9TÜ·RË"J„³lÀ9”åypËçxø‘ d¿&]¥”PþÌf÷ïÏk"øæ䇒¾¢@…|ëaDô­œ*'üoU É=î © ÎõQç¢P¿EЫ´ÜÈ.þbþ`I÷2eO¸èÙœO®óaøƒþýÏóEù~|«N×ëü–‚ó¸%e¶$âì2_çCûFàO>±Rõ= †¦?³o­õÓèõÿ¸“?)o‹…Ä| ×£.¯ç¬|‚WÉ~™#¿ „?J"ÖýNJb*§@éhËkœWHq›à}yÑœ îh8êLàG^ò>òGY.]4„º_»jí¡{Áø÷TZH_ñRÀ»‘Í£ÅÀ»a4sª˜¸ÐK&sBšÆÇ˜uœ}~ÿó«è^lïÆóRzÕôׯš[B(qTô… àÇLÊl‹~´~â)g©IïSÉè²My™ö:è<\…3Òß?Øóºëz «¯$x4€Çk_™ g’;RfPg/ ýhýößL/›„†À§½´9©„Žñšé@Y&©õ±”òV!Õ÷h.¯«¾¤^AÝ,!%¢FæîôΣäèÝeø†Ùøm÷=â:¹?Zÿ*‰Óø_ßuœ“În·€©eØÌu2ùŸ_Õss»Ùݨn Ç~±ÃÎÿ~„qjš®¶(z~*êgOºÁMmw°ÃÖ¶ÓLOóÄmôƒóϓےpÝ‘¨üóO4Ø´Û)&=4bŸngÚNv‡˜J}yìu¶8y5zCåÛán¦\žrQc»nøMgúÚÚº6­ýž7*UÍlsԎ·©`-=€Ž#….5æGp,«¨:YêeºýÍÎpbQTºm‹Ãí¦å!ÈEEàiú¡Ì8P‰ãp*·èo´BêýaF~£Ä_Ì8|£Èp‰f l?nPQþÞq|ë~ºI+¡ó‡iš¿="ØÑNñ¯æÚnNxב`Z%|:+²÷h”øš6rxhÒRnÊ Ì×ñg%ʪKMA¦Ñ6A ã¯Æ:sLœ—ò$äþ—àPêC3ý+¿Ô§è¶»½…jÈÅÙ÷¦{/Í¥|Ù¿sîž@Ç_Å4ìTŠÉ-|»BmA›Ï |<ê>º ™ë9ßâÁœ³ÃÛ‘˜öƒÒo)–Y÷ÅèßøÝßÀ³â|†¯àJÏÇy6äØPã”rM~Öû’ÚßNâÈQh”å"¼ ç8ÇàêvÙã¯ê¸5Fy¹ ‘Áe'’dR𦀄’‹|_Újs¸Þßõ1rR[ÿþƒ¥qkàÉ£ ² æÎ§û•÷wŸÛú þS ,|R*A±îQY£Sõ¶ŽÖžÚz_^rË P81÷ã“H Óy7¾÷ÆøIy[mLNkw„|»5&äí¼X¶Ë)Ì[À%šF3êE¨sJÿ®FŽð_øÓ™·qbdœ‰ÚF}_^B'¬»‘J€Bð@§üó?JÉùM_Jd µÖFZU¯"‰³h>=‹«3ˆ7p$™Ïñ‘~µÞ×­†Óڜŕ|å[[Ž“¡÷näÑ2BÙË®«¤–Fð¢xâ=×^½-Ï´–„r¿‚3©€kRžGSZ[Å~˜)µÂYk|I¶Ü7›ÿ}˜z¼ï…Wœ¦‡‰»²%…?Ê`$ih¿¨šBã ÉõŠz^ o˜n“Ÿ¼Œz¹0ŒþßôØæ¦8àXqð㿱ÿyR'×G;~ÄršýëùOž8Ý⦈ a¦8yüù£±þ¹ºùãüØìÈpN1ÓüÈ@Ѩ¤]íF2¹ÜN$›Íþmú™gn{÷{ööûpÄ„¢VW‡–F¢>öºÝàL2qáéfÛ_ìPÛŒúžÑR>÷±ÀI`×BùÀ#Ï¥õ›ËB;ÚmÐÀÃ4î¾;µ²Õ¿sýÝ’f‚ÙgÇÂC'Ÿë_w$á0àÇ#zC©¹ÔZŽn~³¼ÎN4 E/lMzKYy<~qJJ ׄ‡’†ê=…rסàGðã[ë_Õ0ÃA´šHmHÜH2ÛhÝ£Ìü俹î­·´ì8ƒv†ÝNwÊ}¥Ì»Ü„8Ï!ðÃWrú×O2Cg½Ö“hàG5Î 7¾›=iÄ â6~·“{öÂu ¯øç»xRZæÊUÊ$sužnÓÞ:T«#'Ôñö"s%å®þ½xgÂ3ì§ŸÍÿXm3€0¯ÀjÈ)ø,•àG!^ Æ›§i5²ÞÓ•r¹$½Æ’<…{r\ù¨ò‚—s¬æŸgvB¸Ë©ç?²ðV\Ûþàìé7ŸFb뤭JÚPO ,ßÊ(uÒpo°:’¬CúÈÊíì¼÷ukä´4רÿ9æNOUø ?>ºäY#¥Õ"}¸ÞMMáßÿÜxÅ4¨”Ø÷¤.+—ܶ¶mÞ×o—sÜdE’­~Äã{6 Ï^c©uô°d×Rþ7éCõÎú–TÔÓ2Œ[éLÑq[â›ù1ýöÑø«aÈ1&ÚBíòÑEäv:AæI¾(\‹ÎÚ‚ôîͲ¼Ïl ü¶ûñRNÞøÑÖù±}™>¯Î8ݦ…yî®rÊ:¾¥ª¸ ÝlnL7·ã~1C÷‡“Ët²9(”ÒÚ.ö0oEvÈÆ§>Ž£ý*Q übvÚ?^",±CÀmßhÝìœ×R?Ô4#ÿ¢´„n¾¡žüBkp~‡wW*òG|xñÏóG·‰íR¦Å¹åfÌì[Y¥4‡”’Z¶Hb½ -<Ï•%8òG-hUaÞ“øÇæ"èãW?+¯°{ÒÖFÛgáé Æ$Éô|€³Ë;>Ä×¥ºVÔ‰ÚV¯òn(‰À2\”B'#I-N jÎuî}6~÷OÓ¬þ¤¼ÈÉø5£êÜ©áÏ–E2Tšò¹º¥×˜ú\Ê&'94¬@ÿévíá¤r…§qFûaÜg<'¼;†*sNVdšè-¸˜”V ¥Åî·ÔÊš ú\]çHjM¤Mu+¦p0ÙzåçþŸ¼ÿ¨kŽÀ ¸ì)ž‘JúžìImÝ­Et9x¤ÞC}‰Òzùõ®\C[¶Ÿ4{\mS†çQiÛñ£ùç[œm&òGºˆþòÒ†äÞÉ+~ÌÔ=L·"íÖ1(3»^’BJGóh+c($îDepw?ûhþÇ §ùņÂ]Úš¢¢‡ž—V^7.³ñ݈(­ŸÖôÚ{‘½<Þ8ð#²—¥†–çòšÑ [ˆR¡…ŠñQóߘ?Á)ôÑópN}'ã¿äÇý€È…Mi¨ûvÿû¹Ýbn:7¬[Ç òƒï?^D7Íüï?2Pc{Ã}‡ÄÑÏ9` Ûɦ£¹î¶tKþP=ϘâT™âƒó)͵O-¹uL0\±Gv´n«ÙCn`»Ü}y,væ;áì,(êxøËåPä¤Üÿ˜rª2*ÚŸ Ää6ïw”è{~µÂö‚ƒßO¾në8TЋjÌ÷)ŸFÙ¡¦Ë(¥ü&?:ÏmBze+ÐkŠÏ³ÀÌœ™CgcùWòØO.2C Ôq8úÝÈÏTàË#»éE¾‘±Ã ûC‘¼—ƒ¿O(÷å P€š¼б*¿šV =†Qv»É)ú•2oÔp£! øÖo÷íÖ™‰`¾ý–qLÿþç¾yvgýcŒ7¡m›ÒXpd¶-b÷§ÓËFê Ês¨ZíΩ M$âXÜŸ Ú>v?üh5øú t­»m‘î®@ ïÏß¼v—Ûad7ZBÿ’òvÿZ›9¹jÕ…ƒHT$Èó¹6”ò®õVø…Ÿ@†Ìfûó?Š»5mkð/3vŠA çÓKxàÈ dDÕóRPns}‰#wæBsÁ†ã`S1;Ѽþ¬¼tî [ÔOã_wœE"ÞŒ²T.ñ5i 7ÞWçëK𣆤’• R1žÍg8Š´à”ŒÆ9{?iÃîYÛ)Ï·_֮ȩù9¾9OÞQrùK§èxúqú³<ãŠR )§g‚Þ_æ·¼о‹™EŸ”7üHϾ[JÃ[äEêZ J“¶<^ë"M©1t½.‘×àJtM.;ýûu òA~Ææ²F]Ät¢»ƒ©.Îà%åGÛE]¹„—¶_ËH]ª ´ ´ÿÎú”¤ÐZZ}kõÿÉù%Z0#â?퇀›9ÕÌN÷!=£œžàôB·ig3¢ÿÖ¡p„>-¼¿ÀÚ%ÒHgó4³WÊ{®½zM2yEt·D—ˆj ;ÏlaJJwг.›SØÿ?G\§ðG3# üÛùOn;ÛÜb¦©yë®ñÏ8Pß­ãp£¸E`?øüêm@qÓÕÖÀUÊL¿ÛnÓÔýÝ mØÝf¤qLG÷k.7ð#œ­IMeº¡7¦¢iöŽÝè 1áàYïÙEv†­cwçûEÎ6'­ÝJs öÝàl/§RÔÍn¦=À‹à:ûSÛݦ±Ÿ«@`GA3Äœ±K@Œ#(srÃ5d†S©—ÏÀUGí£äôò›5ìçD¦HàG+øÓ\<J]¼ì&EçªPÒ;ôŠæ"ÍŒ‚Ú§¡ñß\?±¼™e®FSñÍ)ð±¾ùçwq/öçàG!Þõ_ {”Ž€}Ó(†]èäþjþ¨ì¦‚’ÄTlȯ5þøZ<< …s¾GoPâÈq“àñgØ _¬å;þvº›œøÕ0<Jÿßo~ŒÁˆÊ­)žíoŸCOêÂ[ß “¨ßbüfNœIå@ùq'À1³p"ó`nË™9ïugS.°£ 7…ºFä±Pç“<ž+À‹?¡+àÜ;¸Ú¤œÂlûbüU>äÎ¸Ž¹‘nrŽrApAúÈ,Û$ ”& ÒC+‰!'@9ËuS–Aÿ²s»Ù|¾ÛAQ÷†mŽóLגּ)-;t?³„”[|Cšk¨}}¯¹)´eJËr=BþèÃ)ŽsÎ~Æç¶®Ü;êú•ã”ødEY)É8‡ Ó?t;´µ¯æ©!E?jprð(@‚!Aœ¤íôè³ñWËl:pû%]£ªH©ø"Ÿ•M2üX)ït²fÔœº\—‚Gó¡ØÑäO†Þãg Ã#^ÊúÑþƒQ䨸zá8z€³7¥—*jdt‰–ÕRH ;µ”4·Õzz‡×ó_¼’ÕÞë÷Vó¨ïÔ6‡Ñgƒ–K9 îŒ+( <éQÿûÕÔ ,OEhÑ7Ÿ_Õ0³è*j0šn +ÄÃwû£¦ÙáÅ}#xËðº 5™MgQû­ Hb»à«ó§Ž›÷Ü@¸‚28Ç4¸“úÑ^zAÓÙ·³áLn~œBZxNKÁ‚®ðÿ¾õs ¤Ä Îhƒ¬OQyXó”ë…;p:TÚ·ÆiZÿø+ßûüлc8‡é VVjˆsÙèú»aÌjÿþƒC 9\ö \T<†ë#ƒ„¼Žoñ þg”ÿA {†ß.ÃY9ÙóÅø«:nkÿŠkøØÓ™Ãó p·G=’É~¸Ô0ZP^ñ/OnÂ礞»¼úŸ«ÛyæúgåUsoÙpx§’í|ž’ñn."¡ Igm¥Su¦žâ¸ ˆ´[ƒrG?âIg°9+5vŽ|Ò†ƒÝ—¶1mAÞêÇ·Á¸þ•³fKF.&³t¸žGþµ#—Žr/pmÔ”e®Ð>:çÎø¤¼™6>§áÛÈ-@…Üpø'å€ ’æ¼Yo–ÔLº ü+s%µÆ–· Ñ0¤X?ð j?ŒÛIï„q§SN̾ùý;Ñzr¹'=ô.êW7èoÚŽ#‡œ–Ÿµtû ïùWpÙωpMÚ~´›k+§¢9@™àËÞ€?áÎ8Ä¥»÷2é~©«á½¨{Á¼¼à‡"‰ÔÔNI“pLd» ñLÊe+´~Ég#œKAäÙó–OÚ³4E‚xÕ‘¯jêjùU×ê”ÝmÈúBâkRíÉ u¤üÖ~…k˜ÙqëGùã–ó»éa“Á4¡è¸+wJ-ožn]òN^IBo¾&öêz[µ”÷«h|¯ (Sbjpn‚{=7òÇ)ªÄ'ÿ+ãw#;™?J!œzÎíë÷ápëη©m<ø1ß3Œ£iÜ|n*7¸[Æ pNüPiŽ“Ýt²UàŸ³QoûÒeSÝæœ5?Û¹¦ƒ¹íÖýÁùç¡m ú…A¯|ã™FÚ ö®ÓÔ<±}À)v”mjw¹ ¾«ÄµÎQ'»Ý?:Ðnð#1—¦òTßΦýÐýÙpý¨ˆô“ lß£Ï f¬ÙbGA3Ð|ÚI~y:<¹Å]}~ø|NDho¯_2Ô B ‘jK‚<%y•£b8ë? Ò‘¹"ŸFO{Hó¨>œýTÊG“̤oÔ°¬ñÍ<¯ jœ£‰È[ýóóÃcþɃ¸òÇmÿÞçáÇwùö[²û‘h/Ës¹EAÈaèó@°\ ¹oD‡p|œý*8ý0|Iç:Úµ+>· ÞsšÍc[ÿ/gœ)ެŸ—·9ø^ú¥>‡ËkAlC{‘w@™óñÐíùÞ#eÀïV¦«ð#˜Þ¬±AÙÑ< é#ïÅ9/¤ ÐþÈZÏAŒ‘ÐÏsPÇPÊ× ÜezK996Û3Ÿ•WÝ­…ü1÷õm%ƒ^7E9˜$”rþö’d—ëÜZ’ËeîȾÑÕ7x%¿öÖ·s¾X±¥ {i¼åc2ÊY(ufð,¥Ä’;ü@ši-§½õ¿ã†M–p;mê›Júr8ˆŸ=¿jà^µmh-êÔ‹/³o®El©& $>g’ñ:Ú·H‡©onx1É*WÂrûÓBXä#è‹oÝOç.±ñ Úq7Tæžh“˼VvÊðc½·X³h*=¡%Ì?ÂÉspx,OGÞÊ#¾=¹BÛÔïËKæ„pGƒiX@­ýt˜s]¹ÅŒ¼õRj}ð²¸ÓnzHŠjü @&€I ~¤àtÜÙn_·:N³•ò Þ†7pJdÆåÜ[Ú q”Ö9’SCyI¼·zISyeýóÏKj‰£82œÄ¤ÑùÔÀ–·-ß×Ýÿüª>ùÖú¼h_R_‰íÕÕ¾Ì!5‘¶/œ×K÷i"u5˜ÆÔ €[ÁÍëFqË:!pÿÚR˜f6/”&; ±j\SÈ~”C¶÷=¿jåÖù¡z¾€W­‹¤×*—æÚs6˜[Ǽµ]‘çØé¶®=å~ÏÛnßøÝ#N|»ü˜N¬‚®þÄ5Qf+;e¿Áßö¡N4ÈÖ´ ¾kün 3Úì¶ãq'ï¦9´ ú~Ž& §Gðï?>¸)òGWZNÉ¿cþùç‘ELÍÀ<<üÈ…ì ýLÈåýcéo‚>~ Yf6ŠæË#—ïÔÁ§¯€—)AˆÐ÷4þ½«‡ñϼÿ¶u;‰\· %‰]ûÕçW÷ʹÉ@£1ä 7›òÉùÈfy\ávú›!ßßB ¼F»¶ÇÝ4eޱ™Mø@Jæt5ÑNÉyJy‡úµ£4ƒÛ‚cMìA^ÃÕ9/´öÚt Ú"5’WMºèú%dæÙ hµüûöÃØÌ5›’Â#7ãöü„Cð¾à¿[×°ožÎcäx\Þlúbu·ân]Û, *=9ÏÃYUÃÿŽ'éá,3ê#É!·¹ŽÄ…~67ëÁ³oä`rS;üû¬¼<î^¤ñžàÙnPãßCþØÏyåPç´°þ­¿êmv¥Ž¤yHrPÞäœÎc’³ã“6ìèÞF"ßÇö­(ìI-Y+9® ÕzXëhm"/¹””á†3Q^YÅû?ÈÌÿ¤¼6<¨ñW·-øQœó&Ù-#¥1ÏFþX§5³Òsò”'J (®ÌD‚ ºf‘K<…úˆ‰î_ on&ô°PÇ?¸œ<–núVBËY«´©–ÕZ]wIVM­9‘?–⺭âDrˆ};ßt±üj]§–YIiùo4#g¤ü”{È8õ¼lºR ªñâ"œÐlpözQ+hG‰¢q8*·â{hÉiTÝÖ±mß×o©³ÚĦðu× ¾ùƒ4½×ù¯©Ž—Êh¹·úB»êJ â¥ÐÚŸWk/™O¡8Ä}çñ:jü¾^r:˜_m¨F{$üŒ´WlºQ6Їüb½šÜ+æÓ8^C82RÓ!)+Ñ”¹3Ý·¹(=zwä»ßvÿÑ#’ÂßÉ©ò¯ß< 8î¬v³€Ž9ä_ƒõb@v·´›ß ëVFþø±·;âš¶¢4ÕŠ±¦¼;ÄÙaêÙ­¦§¹çvtkþP=/šÂ¸Þiý3þŠÐ{ݪ[Ô<@þxcç!4µÜ$ßUâäØv-Ts6ç&(g|®~´µƒi#òÇ\‚ µl,û=kÁÄ·è(z=¥3øï{PÄRü zæÛ?*œõvô“lß±~Ém›‰‚Aàß& cç÷ÍóÀ·ãâ^<žö€àÿýDÈC‹ÍŠoÔ°‚•loté(7ÁhÿúW@gûƒp'À½íhSß3m CZ»þ«ë'sj¹¹A£qô³oW0*쟾ž^ÐÎRLðß½ "=ñ¿?ÿ…fÁéN´YMÄ@Jì猅'xCñü+å²Õ/ ¬oÚÜž2Úv3øÑÌ¿~ÉYÿè1ß³¼ÚT Î;w•^÷ô¯•Éj(Î6 wE: DæÉü/Á+—] ßD[^£Lœ’™ Îç{/TrËÛ_h0•Ä7CHÔi¼ju¶p޾ùYôøñˆ›Šo5ö¶àGU°i òG)naG™çŸ•Wüh…óLÂë9¡œeãàåƒÎK[mÍo %õ%©¬‰ ¡¼«œDszJGÓ?Û¿¶§{ùc¹Ü‡ïãŒók®-Ë$g– pÐû ‚j{yÂùýó{r~Î7‘?6£¥7QÏF^L÷ïþ×®wBëà…r\FI'ž$¯PVnÍ«·à›¯òhd¯xrƒ§ICÁ\ Ó8b?¬ÚœÚ ïŽ ßÈ9áŒ| œîÈ5ÀžTÃË3Ù¨uµ’ÖÖsÚFwK:- yôZcoåÈ™9×¶F@×sÊ›U”—ï£'¯â<”œOs鬮WYWKv}¬!½ï®¦ôJ*éu-ª $²Æó{£~MqGW³yl‡÷õ;ïÌ6é¨Õ¢[ÏÛ{4BB¡¬Y ø*É£“4À áõ/#ëSI¢Ñt(O?–áÓa¸/ú½&•ùhýÝž¦%òÇïð?Ñà÷Kg¯¯NÅÕx#8co6èTÄ»®éJÎ"TÔM’G‚«áßéhdn$´h|È\ ü¶ûaœŸ?y^û_¯_àœt6¸¹L=#ðcùPÊ…€bn7‰Ì-åûb„Êÿ~¼ÈbZÛÜþý»{Øëî;·Œ;Ì9aŠØYæ7óÔmàù¡z>5e¨%ýD¿ÒRèð{ÌÞsÊšÐЯçv&þÔ´ÛÜïYm= `µsÐIfwÒBèi/¨ß^ßÎLèMÍìøÜÛ(qøÑ‰&ñGï¿~d1šv&\·/,§9uHÊ•áçBÂí5¤Ð4 "Eþ&?Æ9Á(.¹øNt.Èc¨•ôÏÜB1¸öÏמ†–Œ“•˜©ß¨a)ÓšÐ%ܦ‰ Ñb¨êMÊÌq÷÷âÒPÙ³þ÷6—Q¿ ¨2»ÂùÚÊì”s“ã““À´R4i «±ç´˜ÓÒNƒwû÷¢ÚJšf£ì9àG`+Ëôsfš4ä[¡xtúê× î`’ÿ¨V”ùã/ä\Žïà>¿ÍkNПʺÿ`H'ˆÙdÿöó£/´7 o§?‘ÔRùߟÿÇùã%ø1ÿî›)w†.R\~.hÖ|±þUu·±m¶*'îHwÏKqž?s8¤ƒ4rNR«Ñ¼ò†ÛIT9ÇÙãŠÐû}ü˜³pK;á‹õÛ+¸çl-´HZdßžq ¶s1 ‚,rAZj#]¢Ý4@Þrc‰~üÂ…ù ô>žôç¸nƒ]Ÿ´a ÷šm†÷„Æ"öÇÚ²@ÒqFˆäqQ—ê8m,×¹‚d“+`j žÒ„]þý?™%Ÿ”7ÙÆUŸ¡MšÃ[¤æ‹¼\Ë0iÃKå™Î?rë =/gy°¤Ñò>tKÊC^Æ©>Ú¿6µó“û'æLȹáPnSnæöÕPšº^j-­£—´‹žÄZD‹«#[ q,Ù†zæ¾öÂûº5tÊ™åpèpvrr´áNn&Mô–×YRF_k8ï¹o·¯´¾”[ZFHα¸Σ&¯¥²Ð‡ãw9+MZÊ‹Tþšó9{‘þ’„àÇBm¦ó$3¸k<ã ÷Ï| ZFÑá<[{Šoµã0܆²Sj>Iõß÷ NkÓÃ&¢ßüïFòÓNéãý©‹d›„ÐdHE4¯WÛs½¬^'=&)½ züH¤Ïá'nÙŒèÕGà5·üWÆï&uÊ|Ä8NSçûVúòxðÈÙæV5mM³Íÿ c7øQÌÍâFƒÖ¿ ø|E†ÿýpœÌÈ…àTóPû bê¸#œS¦„]o›ûnó|ÿÌ–¦¦È†]h RÈX{ÕÞuš¥ntÇ.´‹ls»Âú]%ÎvÖ9qívd„ñЭuä[I»:rRM;|Ú7‹þCØÆ6¥û%¦7³Ìi;}{/ض ùctÓ"mW?Bð(i|éê;ö?'ŠM†êRLx· ðÜepÖýpÇÇõ¯D{ùc™Þ£OÅ'˜Ñߨai3 ŠïË+÷ñŸ\´çüåàÁ< ~¯$ûVÀØ‹V¸Œ’·!S¤°‹¿ÊÇUÝøøÜT0­6M¡lT\Zˆs]Ì™ð÷ãášÃðU$1øD¾+>³ŸÆÛŒ&°}û:o4Wl^çÆÈm¨'Îë…áŽÈì9^˵AÑ øÔ!°­®|5*K·áGpç©»ÄN¤°àÅÎ ÚMý‘ÔÒr;0¨=?búô˜Oò®·î"']¤Èñ9´ôóÞÝÒ­b;£‡Š‘‘ç¡¥*qhI(éä¤$×[’Q^CÇ"ÊœwXäÓ¼‚ïqv®l'~±~b÷$òB_¨àzN,;ùyŠ“BÁÓ Ã÷r®|Ò†ÝÝG¶2®Û+÷¹:UD©*K%g•‰:Fëtí«uä6òAA9%M~Þæ ²šàj»fú'å͵‰AÕûhéþèùù¯–2Gjó ê-Ó\šUèid-ß ¾§!Ó Ãç €%s¨Ö/‰åx.úçE«ã[H¸­¹Žœ‘Þêjÿú%MýûÒŽºKr"ÙäÒ[àGdš8²5Ç í‡DØÜ©c¶P~ µ?Âù‘XÏðoÒ^ ·Œ—"J^ÓôÈO宿Ðv’BÃÂËtä‡\‹gQÛÌ6x_¿ÓÎSά½£8<Ö¤½’«‰”Õ\'I*å_ ¾;øMïøùö'ÏÒßÄ÷l5(¼M>J7{ß 8ýÍP›jÒ›b¢×_“íÞ]4(NCzƒµšWÒ»©q½6ºNâ{éu›dö¯_2^Ú<Ð…”…7šÏÇÿ_‰œ|þ½:þçHæ4p¾oÒ—‡ë¼tN¸ÕL}Älñ¯uü¨ææpú¥ëüØêôÁœæ[† ãžïaïºÑM5w˜óÄÔ°kÍHcMG·ÊÕ3ªÍ†+“Ÿ?2Òßö†=äô3±|oƒí:;ßöµçÜèßUârg…“ÎAâÜçŸYQõ¬k×âß^Ñ(Üå]‘?šÛx6Äw”XÐL7gí(äß: kéôx<øšëûŸ_í¡ŽàÇŸ´ƒÓÛo–7Ò‰Hq鉭¼‘…ÁçBnDÛ) Wdß÷HNMð ƒ(-úfþè`¦ÁSÖÅçïá{©Ðzý®»ÒÇ~~ܤõÈMgPëÕ8÷ÈvSõ+e> (ëf‡ £RH4ÓÉ·‡Bpç)Íá(t€VpKϯÑ÷ñ;­ÑŽ}h µ…M`#«û:#LJÔ*Ï@¾ŠEõÍÿ˜…tƒ;c-ìž…»¿_‘n#ÓBþ(Òtÿ¨³ÄN…« .fæ4¼×w îË~Üœ»ñ3cøq–ÿÂuIɾ½oP2ŽÂÍÜ/ÞÔBþ般æ{îJGèÆ zFÅ8²ÄEþ8-¹õ¢¤”ÇÜPBËExÜ×T¤™Â7ðÛuíß_ð£¦{y¦eç`Ð>Žó>Ê©$¸\âgàG †¨“:Yæ!wå„Vž@þèÊÉÐÎsŸ´a?÷¶m‚+öšþ@ª(Ë A†r2CÒq6ÿø«}:üè~“Üþõw³€œ?–@ûvÓËÏæ̱QÀÛÈ¡5@Ü ðíód»L“μDÞè4(|z(´Õ§ªú¾Þtz›®6!ÜOJFyè²Ôõzê"Ù*Ü›…dTλ­ ¼‘àQb¯¸î”bM!¯\EþHKÇ(/Ïû¯<¿Šâdu>Œ; ëTs~l_ØÇ?¯œîÏÈáÌNÿøÝcÜ2nrWÝ"ÎË€Ïïˆÿý𜌦͇ü‘ˆºØ£®5•Ü!ÎSØN2½Ìc·“[ý‡êI¶µ£Ÿ¨1ýá»›ì9ûÌij 8§íP;Ö¶¶¿“KN »Ž&BS‡Î­‚³/Ujigø÷[íwß…úÙš6Öw¿JmÆ™Íö/º]„üq‹öÐpò¼ªÄ–ƒC¡[Rê eŒN!¾ùüj˜óÊÆ §¶>ÎÊ#±FŸì úDçR|=íRS(s_üýÄÏFÑ|y3¿Ðy´Ú`pr¥áF@#ÒBcòP®Ã[àÃ×"'좹4åF²³¿úþœ†nTÔ¤?R@I|>¨Ûƒ¶â\g²oÔ8ÿ:ƒ¾]a/Ãù7¢†Ô ª?Äf4%ÑÎx“ ÎÿüêRLð|:9p­í(îøc<5¬ݸŠsXÇ­‘.úü*¨™e‡#Íôà.ì{+¾ ôXHñ‘FZú÷è Ê‘Bîð<¨}"&ÿ,º=ð²/)¯™ç|¾÷B#·¹í‚VKÎÛ9@Ú¢N+‘0ËppI#9å(\êMÉ‚äQ_b€58œöfÉû¡~õí°/ö,áž±­©'Tp5;²“/¡lâLòJ}CÚjM Wþš­”¡æ£ïd㥼ƒÃIsNJIi¤sò“6ìâ>DžÙ²våK\3¢–…d’Dæ$2 Ùc\tm&9¯@=«ƒky¿æeì[̧͘ó?VÚ´øÄ¤ÈFܳóEž.«¤‡4/në*Í®ét­>Â¹Ž’xR|óhzÃß_âDr-Ê~Ø5&‰“ÐI•@ç”™ùŸû[Îm½ÕÚŠïtä<}£G’àÆ~I¡g%‰<àjVÎÁÿÎÅky\t ®f‡|±ÿ`-÷¼ýi9Zý*Hs )kg•W`Ú©¨ÅàÉ›(‰Aþˆ)‹A„ìpøkÙHMNß4ñ3~ôp¯Ácl&—;€ eø'!—,‡SÈèò*¤í´•<áêR )'EðC\+ßû® Ÿ=ù\hcsj¤¨;T|ÍÀÇxø1TJñHy ã5›ÆÑõz^nñX‰«Qd%2G/°zçË‘?«˜Ì íÎG9™Xý«ïûøñ³GÊz&áåŠlU/ é2­~ÒšO/ðø™¹àÇN’õúhünK§ ø‘Wê­á\ÐÚÍÜYj dÑQ ¹ñ¢x÷Á¤^)uô‘Ѫ\CÃË´æ›ÜÆÏ¶óûúms6šÔTþæ2eãö ë_¿½»N’ˆànhðcœM_IM©ƒx²6–¿)”ÿýG%J€´ü!Üpš›6%ý §ùc¯ôöúér™+1ÐjïtˆVðÊx/5ž7^Il¯•ÌZßAgnÙœ¸›zÏ%$w*ùÇJýÏñ“óë¿~ÿà\?J›Ræ»Ö?y\X[7ÉÍóÃû×:NV09eBþ¨mo¸M÷/ǵMí 3„êäVü¡z^5Ù©ô£|wLaŸØN_“*ºÍ޶3mc{Èý¾•ë—9óœèv rÌL8…´¸>¼m»êü*Ú~x mo|×ú»YÍ_æ¦ ¼ÕÏÇè óèŠ%{ŽÄ»ŒjR(d§•Ž~³¼îŽàÓJõ@ž¸üò[EäŒ þýÏë@›OФ…ú¨áÐ`¼Yú˘!¨Ycèø ü'9´z"ݧLðŽƒx”õÿùÕ(ÑR¨å¯Îu¾62îR@E7rÖdßlKšFÆBÛ^ÌQqoûžÚGFFºB­@6/ƒÜ4›zÛl®_Ò×n|»Ny<Ÿóznë± üˆÏ“¨€`ïórîg¾æÒ´Î.*ˆ•™6ž¸ì<ð  ˆßÏQ¸™ýûÙöa’ <“óQp³'à7Èc;i á…0S Ÿ•WÔml;ûÇ_m·–áš–çx’üØ'ñõªä€¯¯ äøž "{ ὜ŠËÙÁæóùˆ?»ç¬oÕ™ ðÙwxÚ=È”W¬¼ä§ÐÂ’Ðû&êŠoþ`2YÆùVêÝ =­ÌñѦ|Æî]ÛWN¯A¥Ó€EdºDä2JÿÔyàQwý<ªí_ÿª$J7œ½oýÄC¸Þ!>ËSmdÿ®Z©¨¤Y"ke”ÔæÈ5·&×åºG.ð4É¥a ¢¥{ãs äÿÉñmæ÷åÅub»‹AÞüÚooe~®([¤Ԙ䌬ÒÎZìØ£ u£äFŠÈ­ç‹#ÈzôûÔàLJõ’ê;•Í^òíYox7g¯ZÆm¤®ÞƒfH6ýGƒÁÝßÔô^I}#4´>ª&EþhËgуfR ÛÅþúÑø«C&åÃ}~™²pP$ðÖÒk k´ƒN@ºê¯¯Ôõþ@>*ŠÄUTÓjOž¦Cd(úê |Ë÷lù&Õûèýykðã'ê€>~d÷êè|¤Ô¸FêP-àUñîjo²“˜HI§ÀHúêuËf@:‹\ºé‹gžÿG2$…ó…c:õœäÿúùÕCç¤[ÜÔ6®Yí/óòG37ŸÊ-î¼ùA~8iLs›•ÒQxjj¯»‘Mw–óÒ´ðóƒM÷kOÙ?Nšxð¼qpíQ$ðãœ=ë´31¡8ì;þâÊw®¿»ÀYïD†Þ@þè‚;éRq}h];êüšþ¢îÔƒ†Ûú6†ý"¥1cÌE;•®Ñ&(ûJ(áašNªãAW¶C•£ /¬¾½~ÉÎ3ôÄÔJ˜ŒÿÆ9¥\¨Ñjò­ç{ ª÷¿R ¹kø1ѬúF‰åLºŽü1lüßX‡Äp*ö÷‡’–ãýÐæ­PùµpþA­ v‰íåÀßþƒQ¡¹ÃUÇ9æAò¼£‰j¼Š“/‚0WЮA™_æ:Øt&h %ŽwFš<(My.u£ÈGèOZLÏ) röO{…Wúç\3¯€ÌQÿ|”ŠVÂÇqÌz$H-êr!dÚh%çÎH°•°þñW×á¿Ë@¡žã÷|sGcC RšñÎòÏÊ+å6³=Pû P ãÜŽƒòB\Yßþç©$«\–XzErË ®#!äWf‹R—ÃAoâØ\ÅþùÅþQ¥ÚQ{ ßã}på‰ðùœDîñe(k d†úȯ¹¨Ä—…Èùx >û‚«rFôûéΖOÚðð¨.Ú<€û‚  ¸/¸”Ì‘ðœN~×¾àÇ í‚üñ—”’rµK‹V؉ß^Èëáš"š…Ÿ”·Øfù êÕž‡£_ã²ù£‘þ÷ÉÀSH2Ã%¥F—=ÈЋVppÙÄ#9®ý0‹9¡“×]NÅPsQ”è{'_TöHk}ž]‘½Ú^›j-d¤fÈY@¦4zž§!ÏLÅuZkW„Û|´ÿG[§¡ÙNIù½¥µœŽÒúfÊ/zK3éɯo5¨‚¤õêë[‰àUÖŸ%‚&äÐþõÛË"ÍÖ?š¾¯ßngŸICYwŸPie·Ðm ë•ÆùuÔ™’N»é”ØKïjN$¦RZNçÁhËa õ]8Áæ¨Ç3*÷¾žuššv6(ý†þžnqµ<õzè*Ù.òPtoŠæ÷jz×45òÇ êÓÃ’QÂé ôûË6?DŽÁ‹ÍPúÿs$†ÒØÿ#¶Óâ_¯ßþ0à’süh`ž¹»üóÏ·duKºiüë_…þÁ÷粃¹ýs”kÙ“n0ÓØ]èœ3…ýë_Ýu¹ß³¶í‡ã )LU¡Ã• Xh¨½kO;µ à ܱ£ìdÛÜÿî÷ëv>\ôh\ñ%t„Rq]*Aì\Çkþ·êÂ5×¶qí÷ŒEHe¦š£vt};4x=ÔÙ7¶ë>…åòüùc'Ô> úê" ùûGýî!‚"kE‡ÊM‚¢ç‡§éOP^Q>…²ß ôúp:#))6Ó¾Qæ?Ô·Îê*þ“ɨ?kW—Lé®ZËidºÚH`–úXu)¹6õjëÚ`ý(ÑûÚQ›yõ¼^F¯—n“d^%½Yô¥þ®?ªÒMDÞjÞflù¿»âücÿn§Ñ\?ê)xô”[Ê´6j69ß Ê†@E÷;7ƒË-ç¸ÉEÀßCƒ–†ÿxæ†3UÜžÎÓÄî6?›§nëÜ¿ûØ”¾|I­¡X3Ò<{Ñžp›$p L³ì"[×nw„)â g±SÄnÖÿLý€Ëw( ×.µ´›¡îïC©Âß ´mFÊo†šCv Pùw`Ü:h”£4º0ÔÏ þ^ÌÓþs6ŠKúAþèéD{¼¶5(g” fíø‘ŽB¯~Ç7é ]§•`•Ñ`ƒ¼4Õ,ø@ ó˜‘tйž‚HKñ_~¶èÎü p¢£ÛP±Ëh°h¢&³óœ«ÌâûhtJ ¿V`æ£qp]¯i'þ/ã›ï€©nÕt‡‡Ú„¨ƒá?B{ÿ1ÓùczŒ>çIEÿÜzü{}Êixe´=ìM^õƒÏ‚“¯ÓBÌ¥ŒàÕ2´;þx þ˜ ¨+Äè.ÀØvÅ]D€Â}סq+CÛ?€+;‚6”Inæ8›CīﶵmÑï…ƒY¨Úr ^AwÑo¤ ä“³’KJ.yÄ-$®œF ×àÝÐö¹ —·?¾§% »—lKè’À¾¼ƒï÷q9‰&ø´t% sk}Å_Hð“Ÿ÷«Ü× Ž+í8)xZˆü‰ÝÝW¶1ð)uã\š r&i);%%g‘_kŸNÒ^Ú^îq©æï3FŸôs}&‹€}¿QüõçäA«®Ò÷<”ÓÁsm”C²LZð’JÛ†¶þßíÛìì6iȩ́Sð——ìA"Õ½Zà‹‘º\.K7=§®7Kƒêjz]À[t üDáØá†T®õ5ú{ÞpÚ˜6.µ ÚP8Åé°ÔðªëJÙ/ɵxm…V÷j{¯4µ7[wJ<ï;´²¦äÖp܇®Øâ”3+oü¯øTà·;¢8-Tÿ!Üìwö»åL3Ñ ¾SÙ(àÖp¿r£¹œOÞË0÷?_—IL+[cTŠ&Û¸&µäþêœ1³ÀÝÜ«²úuÆ¥¤ŽP3eh¹}cï€?âëcÓ6»Î6µ{ܰœ\êüî$°¤Ó±ž÷BÁeæö˜Õ€>çè%Ðy8~ýÿ‘†…‹³™Éæ”þTün2|±Qx ŠÃѱZ[R6&ÔOʽ7CªÁ½ìÓàtšÕ;«UÁìeò6é%Éê5G?6ò³ÀÀܴŨ2ÖK*Þð_ٕ٩éä}gÿUu'loÞ¿Œã?¿*oZšpæ¸ãï®Ý ÕÔÄÍ þhè|ê|ÜÛk¬¦šÍ\þ†fÛÔ&‰ì.p™¦ö‚™`"›níjç.“¨™‡ÚB‰G»íSûÈ©`>…SHL;ìÛÚ^ãû5Î&'²] ü›$ôOðfäÁÀ¥:ö' ¨åÝÀÚi†mb£Ù°¼KÊcæÁÌÆ8¼üøwº÷ EN}rœh¿*2ÅùcsÝFƒ_iSgcŽW¤œ`Ÿ³”kó3ðG€À‰Íû e!TäûW:ÓxÞš¦À%,-§pJey´ã8¿¾´ÏðÝI´| Ø Ý¬]Úõ ÐÔý‚.÷_Õ¦µPei0Ü‹ÃÓ¹$Pb)·ûÕ£nÀyô Îè‡5ÔÛæ0¡e–ít…&8ç¾ QótÆÏÌ%æä<™:Úáö0¥>Tì=:QŸ…¹T0˜ÏåT¨þã¼;,È;€s»m@Ÿ/5ã¦<’?•˜<Ÿ_ïquÎÌÏE{èþ>W6Ëß«ÿQØ­dëÓÊÉÇ ÚûBËn çÔˆY2H&ù]RèYø'Ü@Êq(û7TNe!Ÿ…v®mGš»!âs÷Øf˜o¹y.ǘ9€‚Uí>€Æ­¨?ið‡H3I [á]ýN—8¾tæÔðÝKœÝÿèÃ^îø™#ô  æ¿Êâg:‘½Ò“Hgèèu:Q‡hy̽¤:|RðÑ °Â'Á³ï(Šùg>ß6=§âÇôüÇ`Î…»>"Od£ÌæŸåø£ ”ô>}‚Hû%‹¦”ç¸þ@ü›œG.óXŽi˼ÃÙÝ¡”ŸKògh×~̇æÜND‡i\Í(·d«þ }ýÚQÚ_÷IaÄ.þXÅcx#î÷0gàrÜɾ­ ßÔ©hÖƒ?A•MãäPV¿qcé|o®ó¤ˆÞÚ³wKsyõÔèm§+$¢æõƒƒëÂÓ©»í`ßækÝîì5ñ0{ëbö¥çsö/.ñ½&ºÅß÷,¯áhÎh4o‚ú• ƒÛ³€?šk'ÙÙâ+j“À·'ÿn}3ØFª,Ié€${¤7*˜¿=3œUDoŒÖòZz/5›7YOJB¯ ¼kN‰¦qx<]…ÿø Ê$ o~oÏ÷ÿÅ•ÈùöÑœfÿqþ+vÎ?*šöð9iK ‚ÛÀ-îFt¿qÈù¸ìô·ùL;û55Bη LbÓÇãl{×,6lÚäù{¦5¦ 4.QM:d•Ž:µLL ^üßZÛÉ^uã†)âng‡“ÚnŸ Ý{ ®(üGmjj 6ñ6hû 4Ú°©mX"7“ÌA(_–M£°ÂïÅ„*u9%ŸòÇ8èö”1 þÃ% ¼Vè·™Tj5€s-hæC˜kË Ô'Ñh*Jó̺´°˜ùÜã¿-y4ÏM~u¬”*|"¤<ïno f‘Üÿ1…2Àù—˜—]Ü„ˆ6‹ÊC3Í¢TÈÿ;¸rg{®æ–Ð|§éO¬óuÔ›ºƒ±6ÐH[Ä%âx§·ùŸ Ïců;Õü1ŸÉ§¯$?¼C]‰ ÅÜ”÷î¿[9¿ô­oBæó-é^´Ý0ß2ðr. Å~Îç ø#þ¤Ôæo÷ëײ´‘Är(ˆ÷;À‰¥;g‡ªçúGs¯"ÞFðî@ð[]ßqÉ9%ßs ¤Þ©st¸•›ÜGjÊ3ôIxÎÓàÑ ü'~îs³òñØRè•gtê€asòq>,÷d±Œä_劮ÐRZU¯êrpåb)¤i…dâÍ‚¾Ï<ÿﯞÁÉåÎ¥ÒpEÌ™p•Úp[1pD‰4…<€ÿ¬íµ¥Þ‡ì– @é¼z‡×€å÷sr9Êé¸4÷'I+§¡9¾} ߯iÀpÛx·ÌVõšéZ)¥ç”¼§ˆ–Ú+¥ŸMšèa‰©i8*VàexéTË6´ÿnß>øÂP¡ °Þóó3…GÃ1´Ô­è·`ž9úHŸèÏúXsè#p@z]ÄÛt¨Ì„ÿð¸Æ ÌïêÏÂ[N3Ô~÷Ñ€²@áäÖÆ^;ýMÎIx8®ŒÞmèUönk&¯£þ)±ášI+°ðc¬+¶48ç¥ãÝæã*ôýï\1’ïä¿ ç4w–ÅüýëuàŒsÌýÖ´3Ÿš#Áw¨àâkºYÀß;‘?òùÕ“@*ó£-Gå¨0ø#¹Ief¹Ëœ›¦¿=o~1ÓÎýú£ÚyÖ¡þXG?A›Ñ•î:_›×ð IhŸÝh[Ú?Ø¿}¥³ÞÉþX”ïF€¦¹ô~=¨×³ÁjÜãÁ?Ùf6ƒÍ†ˆYÍd³ÇNðs+@Ýï€6¹M+(ÇžJŽÁÇ© %jï¤l”àƒüÑÝyÜUâ`=Ϥz˜çÙiœQ „_‰ï6¾¥ óú†–˜mhaN3Œ® ¿bÏ¥ü´’üz yªÓ¡kó^ îqí÷3P1»é_Ÿ_= ´t“u§€?j€? ƒužÑ\hä“´kõs´ñ út3ÖFç`uùá¶Z¨ùvº›â`¼N‚<Û‹f÷ïΠ.ö{‚wƒ?Jðø3`Íp\Õ¨J¨Ï¯Èyâ.²¿Ð—ðm8g‚œ6Jǹ5”wlÉÉ+ùÔ?¥’‰-ÿE§ÀJ¹ùK®ÿòüyE·©íÖ/Á‡ùQp_Ùz´¬G’ì’Füw¢ ÂëKZ`tgŽˆ–žDì¿€ÓmíDó,D¼òîAÛ ,ž……C8Â÷)-oçJKnð_RIë•¿ÿà/d;î|3%±ó{®ÍÇi€Ð7¨\Er>V=•5ð‹å’.ÂçÖ zG>“å@ÔTâÉtø”áüœ+âþÇs6[øïx œî8*‰^þ£·s÷{n%ŒöDÓâˆzÎh$P~¿öö3 jmÍ£/à=:ƒá³È x–Ü<Ü^ý»mõzfFòtÉ*ö«7mâ~2Scy>ÿdÚ'÷"ƒA²{-ô ½ -145°¾7ßÂ|KÕm;Ûæïö­s~7Ùàf›Ç_0ó{KðÇ ø¡‚Ÿ{¨7@/j.u5ŸfÒm¼R»È<ІyÓXAðÕßÉŸØÎŒ±É©µ£\P¢Ë¤†7PWÊqà_ y;5¯WÝÛ­)|Oƒoj¡7¤‘$ÑϹ Öø>M ùÐ{9Óþ/®3ç‚ùKÖ`õq+¹ñÜZÎï9üÿùº(`›„Jžiš”fŠ»Öyc~°Ì2ÕŒøèüí¹¨¥¥ž˜h·µtÒ©câÒdhÒ¿ì.ÛÅ^p3…)âg“Ò®¡E4~+”}znGu¨œ”zŽ?<›h»Ù¤6,q‹˜Ñæ’ó;­‡²{Ù°Xó97àWpÝç¨=üÇ Ú ÿñùù£¿óÜF£XðmI8?/Ä\õÏ6ŽC̸à»pܯ½1¸o4<À¼Ö?¯h&âgº«žo¢"´††Bí„JŸ%^þã|Óª {ì€ÏÉ`7ÀцëA µ›ëWÕ­V|‹Õ2–¢E³¡ OÐFè½È|*˜ÿj+üGGšN«i‚-jþÄÑÎ0S Ñb€-üœŽ— ßú¹ŸS&žBõíl{ þÃß¿{ãrüQ \¿BË_ò8pü1>¦3üF†`þÝ`ÚTÜ…Ûç"Hj(ÿ›ð ¹þÞŠ†ÚÎÌ1¹¼™ê„ÜûRÌ­}?ŽŠðïðmñ©ô’jÂ$cì“tz[òÊKèê¤rÞ#:—ÚOGüÜÐ{/wI÷øceåÁO·¨ïáBØ~Ašè÷p õõ>&àIÖq=0ÂZ>ÏѤ'¼],ÚàüóM×H÷±mŒ9õœó ®ÌI9¥ô“Rš³K_ õFí¤?huq¥»T•ËÜ ¼öøø…ï‘Ð/ÑÌìï?üý»WÁ©5à*üªïçå™Ì”ÞãÕ<ÜšÞ,åîïøFNy³³â=¥eœ˜¿ƒ;ËýÄ+«$·Fô’{q¼(^!¯:¾á޶Ñö@çP½1vx.uÀj~{þ|›sÌd¥úT4¿²÷i °×Y7i]"åÀ¼Çƒüq ¬ùRrhi]Ì+´£, ü)wþ<¢cTâú-M/øvÔŠr`U¬’¯½IºEŽÉK¹ Ù½©šßûÞ[£¥¼!zD¾@ä§`õ¬‹ [¶TñÊÃûþ+ï?R‚1ÞžäŽãÔuÂv ûýËqn8·ÝoÌ Ç\ÆÜÈç6uK¹_ºõó^†ëÿùº ]ÞÞ¬TòbÙ$4ÝÎ5ÓÏ^4sMtÓ÷#ëG7™ hsB3ü…‘_g_Ú}Naó ýt=`7A_Ü£ÿXãlvRÛ¥4Ãl‡OOZÀüI^ ÜEcmc?LùKr˜‰æ8”/9·!Þàõ ÌôÈÜœïQl¨çö¼·•bSÔòÇç©DŸ7âÂûϤÖô=ædòÏ›5å?ÑÂ'p7€áàÿ×›Ýha!ó3VIGšŠû\Eù€úÃU/zò$ÇÕù`ó.ðÞ´}ð;…Ýý¯ï?ººñðùyð•À`%©,4þz`Ø4·(ÀQÑ gñ «±š:ÒH|j„Íob†q˜ÓÓ¦#•—ÃÑ<·£hCºu}gGÛ3Pàù¾Žx—ñ7u)=x+ôüW·Á³ìtúî£%gm£i-z­пŸwu‹Oñ|þžÏ€3OR U3í½óç…݆¶'ø£ Pþ&üGdÄŒ@xI%ée3Pë‘f[ÄkÃQÐÎÝ<•ƒõ+Û!æiˆxÜ=Àû1ø¾_ùKÙÍ—»¸´Ä+|ZZk-§]õ!üAcI k¹=F ¢…“fœþuUÿÑÙ=iâþQ?>Ç_sZ0Moxƒ²à‘žÐõÛ ñ‚?>—ºàkÜþ£`?OÈ1h§ˆfë?â·y9%_Ãêª]Qšð¹%Sd0Ï‘+ºT k)Ý¡‡$œ,†â/×y æPWø­\²‹û‚?rÿ/§“ËD¥8'+çåíˆÙ‰›!Úêi>y.‡µ›ö@·ÀƒŽ~§E”e9â-åxrœðWÿÈßÞË)g¶€?žÒ]ðGfÊÉëá?Fidï{ðG5ÞsàEò {õTõœ6×þ#2¸ã!XsÕµµì[½ú›³Ã¤¢âÀ‘“ˆuÛ.¦vÉk‚>k¯¿K´mŠFóFƒ‰²èkɃ{ŸË‹t¬L¥(ð4}¡Þ,o¢\ÏÂÛNÓ߆£fø›âøý³Tñ~ì‚×z,½±p ½šÛûQoI<¯‘þ%ßJ~Fá?*s€¯2‡°ÿ;W§ì;õªc‚MþÓü‰/Gœ“n)ÓÑD4‡‚žf7f}=7¯û¼BDçø‡C¼s]ä6ml6*EhŠ}ìúï?–8ÏMW{ÒL5Lï|ÿqÉ| ÿ;p«“½f:_›(þŽzÚbWÛÎö¦–jÀg®“ÉúÙf—P_ Þ™©Uüôš „@ãmu›>LüQÔŒ2§ìrø-¥Ít ëeøƒ‚ϯ€?Z€9zY’Q¤0<¿²¤ôX‹‹ðªAU(+ý •èu–ŽC/‹Ž@+sÑ|³ú-,e~‚þk ž½ÿ‘=X?ê!eÀŠŸÊã¹J°¢È6¸’ƒhßJ8¼ v fTè±:ºéÐc?Q9ªŽ,…Œ¢½p^ƒ8)Z¶~&‡¹dë€o¥ÛÝ–5B}ÿ1ÂäÇgã.‡Ò3(ßá¥p©¹øþÃÏ—{#ñ,ô[ à{NI'Û±úoËÿ[ÿ<¼†ÓŒ Ÿ´ƒî¦âªv¸9"^z÷ð~(Pp%8áߦd¼“‹Jx˜«ÒN@“÷Öð7µäKY‰±.ŽO^Ç÷5áxày!ÞŸ·v¯[ÿL´3_wÅáÏá4ÖH1Î"c€ ‚ƒô[ø…¶Àª{ð™À£§øφ#Ø@QCø©ö+NÂOÀÓ5€âà£ÊùUúðly¬óµ8ÈvÝ>š(É4¹Üâ!`Õ~ø\FY ÿñúƒ™à?F¹eæ~þ¬‡ö\_nÈ8 ¯qä‘l…¤}¯!ôx\0Ó7jeåyàÖ“ü†²pkûv[Kç[ã+k`Ëå LáihU_`|9]€‘¸©¯T¼h^v¯Z½ W3B¢k6þ#wÝüÑÅvø»}»œƒP£%Á—Éã›öµ–„^5ðGwø ÚYçéð#§5‘^”´`·¥¼^{ȯ¤|«5}Ƈ¨Ô;ϯšš¶ö IKŠOßÑïÒ›¨3å„DÐ’ÜûYx5á?Rx-õ¸$Ë’êG#Á\²…0¯o`žB †¾ìþ½R85·™@¢9œ°¡èû×ýÀ5ç²ûµil¢™ƒŽÿ4se ˆÛÒÍíÆðku8ç®ÎŠ˜v6?Ø##³7Üx¦‡;ÌybÚƒæWæ—ûo§œC¿ߟ§‡F] Ý=þc“SÁþCíFøÓsa¬uÄYéä°ƒùÛýúƒ')!W…KªlGE Ï£Ñ@Èp4ùm¸0D,o›v½†–ÞˆxÏÈSðÏp@•甈`¾Å§àxã’óAþèìE¡×¶Ivþš»$¥Åœ=§ý êÝÆ6ã¢4ÉlÃûóÔls þ#<×8ºB¹x Þ«U}Œ°Švñ7Òøο=Y|h㦥 ¸»RÐLë€äÅ¡ñý'v³81þ½”ëóçü¨ü'\I3üšÒÏ–õüÇd§Ÿ)E;±" Ö1Ös7¸ŒO8·›·²§€õƒÏ¯Î“Ú¯:œþwþþúPøã^à¥;ÏúúÁ÷eíúõ£qMîÈ"±y!ŸÞÍá&œ‚ø¤“)èv.aæ:ëBÄ+áÖ‚ÿEÅx_‚r÷Ï>¤š¬’þcGðùU)yÂõ$‘œÇ7ÆájÀñ_ù°·žm.…ˆWÄý cÚ̽€cËo|š û¹ÈƒùwïHm¦³t¨^…^n$Éd°¹0¯à³ðMm8e¡åξôa÷®­ηðgá?’sé$$+øc¸ÿXØ] Énþ¸Í½9O0Ûák^ÎÁ §0óþovРvÊóÀu‘ó2C:òy¥Ë‚ç?VéZ‰(K$ü‡‘ñÜŸ€‘2Ë~̦ôï|é.£Bƒ{øçFºIM¸¼”_4 ©å•€Ch­u'Xó¨Ó²ZFð\cÀm‰eÇæ‚üƒ}‹¦à?öCg\¡{4½QŒ7ó2^“xyt»Ò7ú‰ÇÞ—^n¯²FÖóèËf@çDü wÁØ5Ã*ª}ù6ßÅçˆÉŽ9Ü3àݵg©½Dõêó'n–¼hÙåuÑýšA]Í©•t>ÏÓe,4ái¸êšô)ÚRôüíÍá?¾À*ó3¥~Ck¥¸7Y'É^¸ ’È¢YÁkÁíõœdñªëy© Ù5À]è-HIà½Sý—òïÆ…Z|{’"²Óô?Î_ò*pÕ9 ÿÑÞ„3Ÿ_í kât]·°ó"ðq»nò˜^6´srcŸºÙLOwœóÐüd·›ñ&`ºú5q?âºh²RWJLm¡•«Ý q ÖÇ£õv!ôÅU7lÎk…³ÌÉg÷g€Ñ9¬éºÐµ ì  è šL¨'ÚÜÒ¦µayè׉!?HJ¸ˆ»@ûˆx‘‹È!8‡¬ömÞ‹4Nw¸¶8ø(ï†GÃíä´Œº§–û²þ£'üÑ.m£‡­ˆÕð²|4ŸSÉœÔß+öNýŽN-³ LôÐv.LùZ5S?óªêJÉ©Ÿz±¼è^¯´×B_Ëií¯Å$–&f/˜ÿª+O¡š¶·møÎþÝ&P¤ p;9ßµ§©§Dôjàþºêig´Jcz=õæPÖh`¹¾9KßÃäDÌ^²P~”òÜG®èÏà8:[ïù™U$¾f•“ð­ÐÓ9øsǶow¯dsq‹®Q}°ejàîhÙ)£¤7ÿ$GtŠæÓ̺XÉÒIbjdðH_ðLW>Åñe ø9Æ;ù381ÝñT‚³¡WŠÂáÞ¢Þ\]¶Hg}.™$ { ï[À#íÔ¶ºQÒj 8ð?ðOY6r4ŽÍìÛüMœ’f åƒSôÜ×”œãÒH/ MSüJµ^2Ï󮥛é#y£µ´Œ„Ó¤œŒ› ojð̦žöíSÙ›Î~Sî¸tIVNMÖK"xpÍt¥dOÆõ^è`‘¢P áÁo?ódm)“1f/ཻÁ¿§|ÏÂ3@¢Ž6VY;(œú4žc€n–ƒâh8x£_´’WÀ;§É½IºSòxåàB JB=G½é”MI ‰yúeÿnVðÇ[½˜Àéî$þùãYàŽsØ-mZšðæ÷àä ns·€'˜¿ýãÞÜ d3µlZJEᨉ=ëf0µÝõÎ}ÓÖ.5ãͦ·[ã£Úy^Ãçp‰h€ Ð^§Š‰‚ÿÛc²ólc{?Œõ£&Áxv 0ÙÏÛ· ê(×…G(m'к̯9˜ÆÛFöKÚ¾ÓW&3Íœ†ò=ô«°ZN©Ÿÿ뛞«SD8†ñôÚ~¸þyç¦ þheœŒS-Üuú`õ[(µl÷È]—zÒpJG³Âðþ|8§)pü~¶ î-3§ §à\U|yþcx8%°è0F{/…Çe4Óœe!â•s«Øž4šü]´·1/ïæ/$£¤”ÝOK!¹ÇU$¢œ‚ÆõÀXkx0¯æ¨œ×6/EY÷œíŠxYx<ßàõìŸçÙÊi€ïòi¬eÁMõs)"1Å߉›ó.à}UNJ1h^ˆüW=ÁÍh ú­90õNÂO9ŸÌ”pü¥ Ó¡Ðö]´±v”Û\ Xu}™[ƒ Ÿò,ÞŠñNd–þ#Þ4›˜ÓoÂcõçT¼—Çñ'JC!—u9”~Ràë%9ÌݡУÉ>`}On; 'sÀ¯imÞwüG"w,øcŸ?ÿЊƒÒRIc˲:¿;´ýZm «$¶Æ†Â¿¯5ža+›Ðƒ‘¸¿}{‚¿›óY‹ž{ t‚sQžÈuä{ðGi!™õ…FÞŸøþãÚÚêþK¨„Ú`à¶ÜÊÚnï¼??íì1) nZa^•åH´š‰xeu‰v„Ÿ‰ v‹èE‚ƒ¸Œø÷¤Œ–Ò ü‹¶—åX“wÉß•—„Rwò—´0íÁ©å„™,õÁ+døãÜÒqZßûÚ;¯Ù¼ŸuµÄö*èEÉ‹>†ã>l‹`N¯‡Žû_9þ•ÓìçÕ œVNXöœ†vÝ Üv.¸ßšö&Ž9äøÙl6ª¹íÝÂÁü‰ä|\vÈk\¦‹ÍOÙ)5ä²ÃäuÇ:¯ÀÓ;ÌÉ p[|T;·›lÐä©0êàh&Ù{v¯SÝÄ ¸4ßnÚ<#,s:qíL ßdøùP¡_r}(êv,­ŠýAl;›ÈFCÄÒ¸Ÿ+v$Çn°Çº‡ˆSè>= :|êú7jH_B™l¡ÏéÑãÕt>¥èà›ú›3òª Ÿ^i7´W%`ó.(õéÀåQpIÙišYÿˆÙÍx¬_?ÿî°[n¬•iX…i¡ëû €?Îën#T+Šmç9uÿ%æ@]7•…/šƒ>Ë<r&§Y´„krx(³3pK«ðõàè'R{›ÕH(§ƒ? £W"òì \Â]õ@læ„<‘ÊØÚö0/„W(¬ }m¬Hiñéh(üñ(p×]`Aït‚ïË}Œ=¢p+nÈCù? 1|ü1‡ë›‰ÿ Õ¸—ȬœZ<äþÝJn};=’(1#ñ<Œheày"Ieþ¥î…¹Á•$šü…_;›wr.`û˜k!â• òÇO@Áið@[ø fÝïœC^¢M—¤90ªÔîc~̵ÁH+àr‚‹.siÆ))9-rþ™©¦Ÿûþc;üGx…bü%¿A´©ü1X‡ÃøÝî¦Íyî‚ÙÔ—² nòO)% ‘¹yL0¢Ÿ—ü[ÈùpSdø£<— :A kz§i´$Öør <<L³“à à ï<¿Êèäq'R~ÎÏ~nÒ5˜õ¹ªœ•ªN.ÈZÜk °årüÞ'—J3è^O¼ˆ=9ô·³oëv†R´Lôu+I l_ûö¼Àuç<Ðäkê -V‚=8çJòBsë"¬úôƒW×ûA/ê7úL ëe™Ëµ›Œ¥Ï1n¡s²óy*ò÷,|æ´6ým,üyc(«ð¼ºUöi¿Ô•:Iëx¥¼ëÕ‰?MäåÖs’DRè HÇmʬ.:÷¿òþ¼0£Â;üÑóÓ wÝ ¼rn¹ÕM/“Í\ž?ß ?Ämàfp‹:Owºåb ­élóQ>èÅÑö™›Ü4vg8Í0{Õ¬6IL·ýGµsÉ\Ï,ÞB…© øc?ø#% ƒ ÿÍî´Ý-›°í<[âlw¢?ûÑFàjRn%]ÊŽ’¾ÂŸ¦_h¦mocÙ°ÔrÌj~6§ìl ×q¨øUˆ·üqjµ»pâ§ÊÑáT×P|ŠðÁ÷mç–È£”*xþ£&JÏ€Çþ*óúø:›ÚÐTp\AZüÁ÷yÌ`8Œö`]ÿw!°ÄøxÜþ£ûÕá® GÁ3ý.íL1ìêõ·UܘhÉl8ª†àÚÒ‰´Ø?˜ÓBÓ΄[ˆ‡û=…h[àò›Ñ f›+Ôúç=œf&;Øç3ös:2î­xd-üH<ŒÇ·¶º=uëŸ??ˆçöÍ0—*C­ õüÇ9wFá îÍíØßK´}´¨Ó|Ò„ïókú•ïÁLÇÿåå7t(z Xô0s !â•qkï§Phö+àÚH¼Ê *÷‘Z–COI>¹ ¢¯à)ü¸«œíõžÿ¨âÞM¥dÀɨ²ý̸ˆ„“|\ªè÷@™júˆYªÏt­åcœ@Zs*JJ+œ*…‘îÛ†þÂ,ëÇÀ1ø—Ù’…“H?ýXßèÜZžñwàCÐ ùàÂβÊzhçµ”ÚLÿG¼ŸmRðö}̯z<^åO’­ˆ×–ÇÉ ¥%ñk»ž‘Ç<Š?‘\ãÑÜ ¼|Ž3Éj´6‰}›ý¡× eŸ’ŸṠëT—«Ë1é þˆ!·å°NÓ¾ÚZçŽIVͪµô ÿ¿ç?¢¢­1ᦿ³ÿj0VúÊ íÿ˜~㪳ÉÜKJé)ÿÔ¥Ð+ ûçÝд^[ýLUúKZÍÌ À˜gpçƒÀí[•}ÊùüÑZcµãhÐTá2êýA—£}môS/œ7]ÏjE½!Éá~å•ÚUæÀù\…ÿJQùÎ;çï€?ºÛÌAÿQªiŠd‡{Y §•LóhožÖõ*x¯4U0«b ¯ø£œ¤Ò;à}ÐØeÑxµ ¹‡ãÿâÊã4pÞ:³8No'lU”Þ¿ž<÷’[×´0ñÍáàó«Í&n?÷7­[Þyø¸ýW7ÙLOô_¯zª}ìæ4ýܵNÀޱ/Íz“ÐLp;}T;/›œÔ•ÒcÌWÑ·Ôɾ²“1j)¡ÃcÑn{Ä·Ö„-sýrg¥“Ìú9g7ÒÈ`‹ÔÜ®3· p7˜UqMƒãgCË;ò*kÆÃÌ ?‡ˆké5íÞŸ¤'à‡ÃñNjI1 d÷S$úðó«æŽÀ}X ~j.ͳ¨)Twbš?Îjj¯ªŠÖ2ÚB’h Ì£`à^<Œêªýݾ#Î^“¾Áº4`ªSÀ‚òð9t“.Ð¥rJªiB”Õ;ð9ñu/ÕÎâïî»EÍqÑS_½óüªžéacP/ Gv¬Š©’Ó¬«ä ÚØLÕûI‡yõ¼/¼è^°J /§^”\`¸—Ô—ÙÜЈË(:Ïü¯øbNç후hp#ÿiý{›Î%·ŽédRš“ÁçW+à?:¹ÅÝ$nqǾ—áá¾Î2˜N6CúžvÓ›^îtç¦ùÑ>6sLb3ÌmûQíô+†µ’ÖΕ¤Áö–Ýæ4Ÿ¡¾¢]ö¸a?1ÙÃq3ωoWÓ4ZBý0—)·ƒ–Îg[¥ý*ÀÍKmOû©M†ˆEÌdsÍNóÜ–®$ÿÉú\¬™{Tš7.ЯÅ„·ÝMÑèÎã tY¡¨ÐÚQ°öVâßµ)/æå2èô¢| ± üGs TŽ–~ðüG3 Ñ,˜÷wŒÅR êqÄ® ”h †Ú û;zá ý^hþXÿ¯û¯î:ÂEÏÕS_Žq(±…Ð ŽŽ›Ê5±fw;þ¤Mð2m±ÒÆR3›5Ôü»#œ&7î'*îò§`ÖûNXO«ÈÖoD9m{8Q^Á?õrÌÜn¶<~ÿêûóËî;ü¬cí€iÐŽñÐ ð¸2_€œÁ—‹3€ô_ñ3ôÂ~0k ŽÊU̘÷ÎVr+ÚNàÚ\Àµ7ÜŸcñ . |O/ieøãœd›ü­D–“ܸ ï䩼—ss5Ûù½çWß»Çmû`þ«¥]¶ò?c7OÎÁø;nûkað‡‘òˆ¸™;a´·ðEþBº1cÓ†ï?F€?zcÌÞýGNÌϹ¬L“4œQzêOºB;kWm ÁåäX5ÐþO~><½+Äó«6-XõÝ¢Ê<Î÷|Æjé/]ùGÙ¥¤™tŸ>¿Š¡Ù…‚ç‚ý Ê\®ÏñmÆ¿ã%t’À”âüüŠÊÀí\§ö\Y.K[}#ÅEt£ÎÔžÚN¯i]‡žL¢•õÚå×ÿH n¸öïø>Ne³#ù­ÛÈ%À™ËyŽøùä+ë6ðÇ+è%ði¯ê-ÿG3"ŠŸÿªÿ½Ù;=ovÆ9iÒQx|¿þG8ÚFmå!üÇ\õëËž—¦úP¯ë }®ßêMɦŸ‚?Àð² ³ëup—`LøöôïÔÿh`úZ—Ú@וÁz"ù¼áºF~‡S —ÕO›xe½8^D¯½.“ø^=ß™A#r':asÀͤØ<É|Ü¥ÿ+¿Óþç ñNNØPôýë xô¬[Í 6q̵ÿ¯þ`y·«[Ô ÿñ,pìÃ!Þ¹N2™6=e¥Œô« o2™6î¯Î5ôó-³Â$5ýÝÕÎm&!´x:ª¹ÿ5µÏíY§¤‰C?PJÚowؾ6Š ÛÉ—_Mà54/˜‹v]„Fí…q/o»Iý·½i:m°ld–³üEÌ\sÖ΢çÀ¸m`·g@Ï¥øï7ô=3 ÌoCуï?¾¤p|~Õȹg£ƒoÚã‹ñ2j|êÿí¥üu°rœ_¿¶eå¤MæÈZ˜ÕøµCúÐ8º .| ÌŽ ÄûÈú5Ÿ$ß5Í¢}ø›™èáÄvϿּè¬?¸3¾­,øc$­£G4ü±”f@5GçÀå]hggDN?S{›Ù„–˜ÓÇ”VàX¤¿þèLýàb>åøðƒilMøe\¿áóð3—i=Æ>/Æ>/…?Nº ídR(íÁÀÊ”|j.%~4„‹9±ŠïðaxšZ~µppÇüþ #TÕLïùU~ðGO´«0~â"úùwðÐkN%)e$Ð ø÷C®¬ Øšc¢/ýúÛà—JÙ.ïñG÷°õwQ§d”ƒ| ̵“K?Î󩤮_«#ᥔĕ࿞úEþ\:rbúœÖ:ÿ¬ô2(x~p;=¦n|ü‘–?‘ 2CRs 鯣t|ðüymyÀ•€Ùû¸x¸ …—Ú DŸOÑÌÂÄûɦc?Ãíq*t.È»x²ì€ÿèÉcå”þ¬Eô+=¡ûdOðŸ ÉcÌŸn<ˆOp®àÓ¶$öíêKåÄsWËÁ„H; ¨ó÷rZºëçZJÈá`ý¨Ž@úîºXâjbøˆËpn}ÐÑà"£ûÛ·(‡:ÕÌ^¬Ò›Xc+8Õá%üPò¿|£ë%º^$O¼+šÒ«¡We7þt0\NNÊ]Áoþùó¶•mòwûŽ9Ç_Ù®9_N¶à£Ž’Æ+¨càÛþWÒEÉ;£ËÔx¥ô/|Õ•¸e ø£ŵ›†ÿóI µ›Læï®†O—žl\ gãóÇZ ¤þ’ÿ@Ä ˆÖŠªROðGg›Ï|JÄáNO¬â?°&Ðdx˜ó4÷9h“™GÀT³Ûµ-€£—ôÂï´Ä\*KùÿåùÕw…^êÌ­8;øc7ÔÁ2ÿÙ$×ÁÝ>àÏÀ~ý)PË~-"ßÙqøÃ¨\ÂÌxïü‡_°'ZTHz‚'Zô-ßå”’JvËWz_²É® 1åRðùV ^Áó‚ïÏKÚ>ïíß- ¿àïËÈÿCA $çíÀÞW@¸½ÒX+jh|#O¹ªÄ‡ÿèä]Èç8Jpÿn*Úbÿî@÷EpÿÕkOT–“°'Õdª¤…?£#u¡6Ò^ÚUNquÉ‹öã\h帔íÐ k)^ˆóómŽÃÀÔßÁEeÁ§ÆÈf"#y¨œ >¿J gôŒœÀŸÇÖ<òŸÊx7’ÜžSÛ¬ï PRw&C”›”›·ãêr9¹%ÍTµŒ< ÖÆÚTÿÒ¾ÐãI4<Úz¬5ŒÇq@v³ƒ´±üݶÎ7Æß%ù3m&g ”øæ%Ðö‡ô;)_ªõ¿njZðÇ9¯y´¡$Ó ƒ›ƒý[ó'v~§þù.çˆÉiµ˜Œ_Ùß©’X/ƒ.ÂìîíîוðUõDÓ€þÜ5ίr6Œ³‹2þ= ÙmgúÛ(˜Ÿu¡¨ÚÒ,ÉëÓƒr÷W“yµ×ÞKçÅöÚètÉæeÕ“’SêUÿ©„Í&[Ox–ù¸ Kÿ;WI§·SñïžÉäts–Åüýëeà…cM-3ÎD*ùgÖ»½À Ýï—MíL <¸¢¤|4Ùžwó˜òî/Žk»Û?̯&«íú¨v^2~д˱øc©SÆÄÃXF Ölgc™°ÝùoÎB'½] ¤Z ¦Ø‹Îõ¨4Õ¶½¡çîBô†ªÅÓ†¶ï4äUÏÌ4çí\º º ˆuh÷+œ¶åš`¿šm-ŠC-ÐîOèÙãuq"Q$0HÌÕ¢<‚ÙÒÏE„ž_GOiôÿ´=­þ ÿ(oæÂy´ƒÿ¸‹á2&᎓pc T+àÎNhðí4Îi>M£ÖÕn|ç<ê?¯[înŒ`•©JTL”—J€)·ùqTú‘ÆCÙGî?J§±"šSMêfèbs„š¿ä§‡Éh‘yýN;J¨?œ_NÄe(©-ÿ±Xÿ5üÇÕàŽà*`ÒÜøÖÐò_] çlðkBÄ« þh¼Ï ̽ ¼ Ï~f•ï€oI$™¬•œzYË®(ŸCÝ7;U7-ã}øæ<¶ß{õ£ª¸çlcè•\¸§X²‹¯"ò>Î./€pû¤¡V†ÿ(§ H.0Òzhû¼ˆÏrDiÅ10ïg;ÿ¬8Òu© Ünm»Ž™‘Š_r1%Ñà?F€?æh+¤uä:"r!P~'?B/¬Å,âüÇ$› ý~¬ÚŒ'qqøŠŸÁ#à?&É9¦9´žÓS²•ûI M ž›È? êUÎ#K DâØ·Ùç’81ÜÅT þˆ2‚ÇOCIUkÒDË>Õ£~Ë€ÕµŸ.•øQËë98·aü3ÇAß<#ÿüàÛzœbf7þTÆT°i^ø©’CWkaý<òLÞ ½®ñ½ïôžÐ\šW¢hjpjsô`;øª¶£}[oh¯³Ûø™8Áõfç?íNê%ž['hO=*Ÿ€;ÔÛÿÁ^a }b §x¸ö•%h×#ðG¸Öu”óïYøÒiaFبPi¨$Vú/RÙ¨›å¨|¦Ñ5Š·Xx¼”^F¯3Ú›ÑË­ç%¹$Õ‡ðÛ»l¬ðmÐ1?þWÞŸ—qF8owÂfsZ;©ÿCþð×}åÖ2£Ms&˜Ã{] ‰ÛÇ­ãÆvË9¯>òüà™@UÓ}“ *y‘}ê¦3¥ÝÎðô³Á6Ü!ÕÎ}&©_¿·Ð·´Ø Y1ü‘ŽØýv¸MbÂvþ|±3ÇI¼ tøÅçªTŠZ€?ÖÒu¨ëv@Å9`º¨6,µT*›_ÌE;?yó`90i'0úp¾"¿&å?¡Öcb­o„ÿøðùóŽð†¢}c@΄®Nñ„{àdòòÜý# P(õ~Ð:Çͱ´°”MÙüáWµÊÎŒÈÉM¸?PÏ"ví‹ß~f¬ÞÓþGz¬W¶n:‚úÜ„€ÿ¦¸E³9+Øgp,ÍQ´v)üG¸¤q4Òæ •?:LQô~8ž6¼|ÿ1Ÿ÷ë ¢ø¶øc1ÜÇ7ÐËþ¬õ~e7*Š»­~Ô¥ÀEw¥ý z¼ #/Çã5èµ5ð¹tíN8£5| a9þ?û㲓 3SœÙ!âtE„ÆOõá^à™"ð8z€ü‰Y”8£¨ g‡ÿÎå¯ÿÑœkÛ›`ÉO¶¸õÉNÜk3üñž_­ôkôfr–b¤fpx/ƒÑa¾àMOUHï¥øˆöMà4”§óJ›ZHIYjÓËy%ïå‰Äw+Ë´6—T´Ïm2NÂUù×ä ÔÞ´üêýùQ*´|r4þËœ£ªö1Ö´ç¸}c÷ƒ‘¶Ë> ã6g`Ë‹v:7“.vÜípD?JNûyZ§±þÅDÅü­ŽQ‹zÛ4î09`/ûăÿØ)Ü&n272üÇ&›Ú--7­²1ä!ZpÅä†O÷N= чƒ^vÿ§Wnõ‹úr2?¹êÿ¯ý‡R¯•Ö?ëÁ:±¾ã¾ÂWÏéïÔuR8e”þÎ÷ç×|åô0“‰òSvšc9…á?ºªgz¤y¬÷êôßí?®ëèí¤Ô€#æ8’6©´:„¶?hö˜Á&N¬ˆ{ÕV•Ýìòyµ”¶ëâqu*JÍL?8ˆÛXã}ðß&Ó΄7AÕÍ |•Ñ ô 3Úè”ü>)øû9VÐ'ú«µ5üDoàsô`ðGõÉ…†g þXþ(C©€Ã§0wóñQø¥§pNÍqß}¨íÑ×¾ÑÂBz°·;|À}Ú@YÈË•þ»—±…ƒüÿqöã»^÷éÔ"™Ãöó}}=óutbÒiüôÏhßvðGQx‘ÀþÙXÕðs@æPà¸?éWðhWªáÏÀÛ× 2ÿÕ/ª·.‡þŽÊ«ÐºÇø× ê æUPðC(¢)jíkse ý9D\ÖÌHeÁ ¿™÷®³ÝÌ¡˜Ü¸–™SãΆÓRʯڀ?v²åù@Å}<—kA™~BžÆg&æðœYÏV+Å+èÔ5ƒUx70÷–{EÕø§„ÙaSÉ›ÄÞ:GÄß-À/eà'æòÎÂùÍ`}ùoñn˜nhQ´"!çôô^ÎmÃØó¼×6”2^jÊ3Ä/~Z¯“×ð1¶ðq(­Tùצf¯Ã½áJqfû“aãqZ; ú~±4…§)k/s |ÿ>;wÃùìZÞC À_û/{*~mQèœòXðÇÛŸ§Ûs2J?!ðú0ZÖÙ¦Œö6OáÁÜÏrAë=·Laâ}Ž—^…pPEÌ×”™aôZsi{üQJB“’Ò_j£»O£K|©$ÇáÝó"øs¬ÀÆ“œÿè¬rêCàô„szðÇJ^ ßrPÊÈbAÉ31îA þxlJEÜ·#É8æÂïð C°¶»™/ù.N¨=:´T}úŽâ­9Mõì{‰%d V2Ùþ¸& å#îúºM.oí8î-}ì|xã×Ô‘:S2ÞMy>Ï—ªªjÂR; T1ªHl:w¡lÀ,ñjß&s·Êpøün%w€¬³ ÜÔr Ú#£Ü†^;b R)xyâÙúAÐËîÿô*ªz©/; ’¨f*Ç¿ä¾'*¤®§§êXzŸÊïçêN}çG'¾ó£zïû¾Ýe×|UuoðGfxïf£OtZ«?ô`sDoÐÉà?º§ÿÈïC«f¤ºæ‰Ù¢béÐ4† ­7ëM^¯~Ô^µ þc9øc õ§•ÀMÍÅ„MÍ üû)Öx;èÎÙ¦¾‰n‚³ºˆžÿ1ø|ì±*u;b?!æjü…ÄLkB€·sˆèñ7ã5V½;6¦Ø\‚§S*G Á;È¢ì¢=À¼ùÐ8}à)ÒÓF}þskoç°—¿ä2ÔjV¸†1ð )€xý¸0ï0À.à÷ZZNà¼úƒ5þ!æ_;':Pw)\zš—œsw<ŠãÑPš­÷8îœÿü`süL ŒV7“5ÈüíU]Œ†7‚{ž“— ¨¼Õ ðy> ç÷K¸"Wñgd¼†ˆÕ)9z#Ó?äoìÌ÷ŸÂéÀÝÐSÉxzm ¥ÃW5¸.ø#4û{{ºÊqrf-ùK”œÃpv=W- ¯´ÓÐôG_eÅoÞ„WûgÃÛÔægœØÆµkmJ(ÝöOøxö$ð“àyöS÷p,ÎaºÁ×à?ÆS&žÌáí^þݜφû¶Í$¯ô_xÈ÷ÇÖnä@{½óçM9$E†ÿØùUqÞšÎtú¤;?÷çß}Ël_û‰ÂÚ_dŒl&7“ ö»½ Θ;ñ³‹xf~t=>Ðþ« à[Ð%x‚÷¦çÙ¥ˆ×‘;Ç­*¿Ù#’Q²Z–Ä;óyðÇ$ªjš/»Œ¨:Õõ¿?‡ÿÄ|mn}nE´j=½’œ‘ýòÜöH¼QN 1e(çvvØæ¡ÿý¹wº(ûçYøNÕדM$ø†ði„ÍçNåö¬--Ùjîniá¶tßI·.âepóʯP Iå"]2ÅÀcÇ):OÓϰþ'®¢ªj€?Z© ÿ’?^û^«wN#=\gÖ·ü{8—ø~r:9¥œhNYõÔ÷}î겯¤îc2PJLÝÍ%'š.à´ROÀ)‡õ 8œaN§ïjçøøÑ(2ͼ3ÇUBˆóÂ,6+ÍFïüùµCeÞÏ„ <]çeF§Ôxq,Ðü1ŒÖ˜z&‚ γÀRz¡~bBAG¬õtˆêí–u}Èbý4 ÁÌšGŸÌëoÆkª~:$~èp/byø¡À:~ä8mÃ猣J@æ^è‡ßÜ¿›ECtÆ^¢eÐ\[i(-4y?ÿ¾¤“@æµ4ý0üQ‰Âšµ~ïÔõÊ×Õ‰àÏòUž*€k‹SaðÒøeœ÷<X zó¢ªO¥áõGR“N•Gl°ê¦‚ ˆÊë€Ó¡ßFøß—¼» D;ª™3¼ ¸W/ íázJSZxžƒ¬?øØ÷§³ª€¸/œUQNħàgSNÆÍx ¼A(^ÆWøŸ“ó3ÄܵL’M/ú›ÿ(ãT3]pw^–Ü_ÁQxx· ¿Âyþ#‘œµ¹ÁÕm4 ^-þH…x/„¿IÆÙL—¿Ìçœ1m/OƒSØÿ‘ (˜\ñ;²ÍåGé„?/ù¶l7r.À3á?^#v(xì¥êÄW}8Îy¿ìåŽù…os!ŽŒ–å·ã­á$¶§ô‚ÿ¨'õ¥¸ kKÙüp 9×A¼?À_«ÁÅõ²¯â­0ùÑò{àŠ<Ÿ½—Úùv¨­É£ìmY %ž@æÉfë³½mdÉ —0Χð9-Ø®Ç P¿6…Šæ,ƒWóªteå˜a­¹ª=dëÁİïí:it®.‹€ÿ{mT‰'åå(ú¥/OåPö0ø#O2_*ÈOV•ô>ÊÈ¼Ü œ‘ê€gfÛVr Žm¾ -—å¹<•ëÛ­"Ïì ©*ymÉ OÖþ£=¡š¦q€ü%×Õy¨Ñ@’Gp±°FÛYí6’²Å~"Ø÷½´—’A””ïà±2ÓzµÍžÃË÷€‹ÜGYì¿ê¬'˜è4˜šQv ÔpÆxYi/ØŠð/IÜÒÚ­íž•Bnsð[,·„–ô6œüA½é€É 5¸žâ‚?¿ƒûO\¥Tßç½R¨N*Ë¿ä0J9!tMðG8½ß~pôf§ž“Èɧžçþ«»¾æðY)5Å¡ÆæŒ“I—cÄ2cÌ1½UgÕ³œßÕÎs:ú9 •¥©~Gã£eª¬N†xeæ™=¦Ÿ‰ÌçW;Õb•ÆÌ¤±´ÚC‰Ò¯ Dìi–@©?ñŸ›LsMg“ÀõÜ>ðUUÓ¯Ì|zÞØî?Arÿœ^S ÿû}T“Â`Öí æö7ãµP^õðÔˆBcÅÏ¡`Ì,4 ˜žË³w®Û‡ï6£ ¯,þæþ«Bz†¯O×Á¨3ÐÂÔ@ú¡Ð£uø4{'-BË—¿[QL³îó'¾òõwâa¦¡·ê`Îk›BGé-âøøú·âpˆè½Ù Ÿ_ w1…z™ AÖ?ªzêjh›Ã«À=÷é70â /KåâÞüýˆÀєү_壂”Žöyþü“³ÅLƒëóª}¤g.‡jÊmy,ß—¯àËÐüs¹2ÇãW­ øLfFÑÓÕ”@ñ*9mM_B¹y áž`Ÿ…`¶Ÿýim»ªô°ÍgïrmÝžǹÀÜ#<Ä;ÁÀ%L·¿íŬàÜ7=ÑÏÀ ·ÐŠ_);oà­%zݶ“Ì@©FòÀÛ‹kCÚÙ`Ü<›×ò¸§èpš‹Õ?í<Ÿ9ˆ¾ïŧáTãò;Îþø@qlw`ßd©&µ¥¨?p!{.® Æ|7?@Ô]ëwÎô¯âm5yã°jžÿ±þc™cëp{J†K‰ \]í¯§ž\2ØãÀûŽÜ|lמ‰àýGRg|Œ—»=;Ÿ÷7æJàܦòÒ&³Ø`>àŽ™RN6Ùx’HJÈ.ÞÈ­y‡³ûùÔø$ó¥‚Ê(õ“¾Iyüç?æÃ›G³õ劔’9Àá{býù¯b¸åä…½„ïfñÞÊÃq6€ßlÄ3à?ºš/(ùPÔÚÿ‰öÅ ‹TÕ¾ÃoM–n²Ñ–“Uð!/¥‹œ‡“yc“ ¥#x´µ)¿€ké WušŠ¨_[þ#æo¬‰4Òf,·ç¬#—lIw…”s«ºç%¯ÛRn€OrË9<õèuØ‚cY‚Õ=þ¿òþ£úE}©{W5þ×ùw?ú^ªº© wpF•ñ¿?¯ãtw~râ8•Ôß©ïŠvÅWZwĦ˜@û[N]×_°§9£WëœzêwòÇ2̃ªKÓÐdóÑü©rê@ÆpÛÌ`OÿSÝjxlx‘ÿ ÇNòöûä¥áf0þ:´z[àÿ ÓÌÄ7ÁÉEYTOÐWÍ0òv™îƒî¾…>†Î“Æš}Mo³1z¡)>)½ÿf¼Îê£q)~'$gç©àŠ”ór#”R¨ÖMþJ®uνÀ+¿ùþ<£‚võëðž)"Oëߢ¤\ŸÃTñg·Û…ïn»ô÷2Í›êY~}½öµw,øbF¡&üJ)ð‡×gi<§¤é´ØÃ:¾Nç€÷ÛÑ‹?Rm¯Ú'üG¨ Ÿ_uÔ5ÑûÑgÓè.8Çã9ИI¹å15ÌV l%.ÉÕÎÒ xž”§Ôt4þ¸ÿ±ÔLow€ŽMÏ)Á¿ÀU¥åÀ¹Á| Ì6Nb3GÌ„ü®l9ØX€iõ<µ&P¼‚NcÓÿßö _‚¾Åë¡õ+AåǶ©ìFàÓY›ÕþÅm ^yVœƒ×ót `ÎoFé;âåwN™®… ¼H¿ ý‘ÓÛ|þ£¥d•ºð ïø9€'™ˆiyïÔã˜P‡Ô꿽?ï¥âã_øáäøÉ ¶ýHaüÕ §›+KeÞæÏ]D/f‚ZØÿ1·£_¢:¾Üä€ÿxù_èœü1Þ΃×(Žì‹ö%–Q²Í¾Å×a%3îy"·àv¸“Dv?^€µ’AÅtfÂE¯äæ#t•š7تòÜþ`¯À´:ׇÿ¨,§à>Ú r•sWÎoá÷ÂÀM4_*8vTÅõaJÌf™ þȇ>ìg+Énøƒ‘6”Ü—WòP~—8ni0Ô9)$Þ)ÅàÖèãÚ<”Z›¦ž_PgÀ¹1CobÑjhŸâ·FKCYhÊ@™&!ÜrUR!žÀÎàÎÒÃΣ(|—šƒ?’ð†çÏŸ€ßº›PPu-©”âh›Å#Kì¸Ôø÷bÉæ–ƒÿÈêÖŸ$p Ê×&–'þýWéàâcµÖ;ƒ^vÿ§WÕJ}É –LµQÁSá¿õTùt}ø¯þ Wÿc¥¯™SÅ)ïˆó£zòùwoù~ÖCM^¨ÅXÔÂlu²ëÜNeáöêYàáß™¿äŠNÔ O• hcÑ0‚6©<:2u£;f®9lF˜è:xOîÖ«*·™GÃhk9tm2öª´§,‡"mOM ‡A±¤ ÖþÝÊzº~‰ßõêGí¡ePÊ'ª¿aeW†þrx8ÀÂÕl¢§&8ùÛ#C¡ïCÁLR¢D4sÜ᜼ˆw߿϶‡7Ú}úÁnth? ¼³ è» üûŒÒ@™õÅÊ*ƒÖÝë­¢­pcÃà?â˜Íþ±òRœ˜è¯Yp‚UÀ9ùo"œÑKšÉqên!Úx=±«©Õ§¹ô‹I¦?l¼¥‚»^ƒ†AÛß¡vþóïÁn(™)dnë ÿ ï”ü^ÄKÏÌD;ƒà·¾'Î 3‘ÜG;.Ɖy7Z4 w:¸9šŸyïå­<cðmÄÜ ´ŒQ/VKÅ«îÔ0ý¡1òÃs'É¡*ó{N ý+Ôã5›ÆÞã6н‰û¶\š×ñ^Æ9…™®OŠWÔ9gº€Çãòrx€#襸¼š³Ú|“/Ø’FÚHg¹ ®*f½³ÞŠ?Aë_›|´R}í4G8LKÜÁêćù'ðöS.lÙûÉŽ•AÐöÅ¥¤—)áÿQ‰ÓA-láÛð_[¡wÃéA_Å;d~„^y•Q¥úiŠ]jûÛü<Ê^‘é’V‚“6Ú§ÜÞÆ‘ìð\c¸;ÍVŽk—¢â÷s¼´êg'•‚ãyá÷OÀ•íZ[h;±¥ž´“²izÒzyÒqÏýЮ]Î/é5;>·­‹ª¨ÿ¤äü~a=üB¯²–m#ÇÀi3mfy!呼‘$n5y¶+!él$±`¡6|ŽËò\*oªš/»ÒÏ«ý:5å‹þú¢³YI½à?òË8´k·m ýe5M[9ƒ»~a½ì#y†t´S(&ŸÇ¬êF9x#åþ< Ÿ©º‹IÍ×¹,°›ÜE²Æžµåmâ‘,n%÷°¤vaÖqóáSÒÛäu¢í&æõ Áíuàÿ‰«ˆª«¾TbJ©šÿëý»¤È £[ëAà]*¢Ìñ5rê€A";åÕK_àŠœÿûuË×@2ùÁ)¨¾Yå¤ÔQœÖŠà®êÍ:›ôïÏïé¬ÔˆâùO>D§ÆÐN¨/ç̳ ü1ÉD fþ«¥j—*bù¦UgÓaŠÍ¹¡•¯JÓcpJ Þ,ÓÃd7AåÝ|•þ ïò†®Ð~¬L0y,ÖŒÂʲó* „nI7¿¯µJJáHІŒœ—¡]ÁCé Eà⼋6g€ãFzµPéÄ7ëVÓóèð~:=K¥•4L—®¾7ÿŒ~ L· ^b;\ÀJDMh¶ý#„Wml@˜É`–ˆV-˜ß{L ÁÃhiL¾¶žA¬V«^´f˜ÜúmѺª‘º*7{5ÙCà÷z#Ætô[BîK1Mfs :³pùדœãqH=]­ï'§¶ñNíC?ónÏQy Ʋ<¿^¦·'z—l{™ë‚Mnùùå'D÷ΟGãLf¼¾(^ç²éŽx‰ ¯ï£xÐî9à?.ñ9ø¼ÒLÈï,0v”s6àø)&Û‹_šä´4Pþ«áàö˜ OiŸçB‰­-k§Ø÷Ö6/”&R:\ÛR¶´½ïÏ)Ùš°¶‡xF'†òU¼u&üÇS0jK8‹Ìð4[í;ÚàžöüG:‰/³áÄ´)$ƒý“GÃùÔåcp=sÁòqÌ—g”9Ô'µ ›™áïchc[®i¯ÚVòÁ†¶Þîpµd¥ü,G ÷³»_¢7†€1]žx5÷åmÀ/ª´ÞG±ØË´…“S:^Þ®ÖÈ&ómaðG|÷‘<—änS )—Ñ“•mLùœÚ}S“ÇS ÓÒÔûܾ{jŸNLù¨]¤TüÑ,§Æö/´b®ÿ}|ji/áݨ@ýKà§¿ÀyeO“Nv<ýÀ^–èŽT7SÅõëö&]S¸šÒ4Ös§¡e­÷—Þ,µÝêîN‰êÖ$ì° m:yŽ5|Èä猃ÿ¦7½ìþO¯¼ªk€ý»‰U‹]ÐQÔ§Ž¡cë[ª¢¬† kç”u:•á?¾ïtË_AÝÉ䢌”ƘN2Üi£ÞëÁæŠ^ª³èIßùüjŸþ‘Z“Wke.b.3BwT*¾ ü]g ¦ÿX¨R˜@ú¥þw '€1? »›‘t j¼?Ðy8­¤Öó«bz¾þËÌ!Ëýþã>ðz<ÖŒËMXÃC¼ ƒ˜^þ’ðßÜ¿ÛN… ðm¡ŒJòª ÿ‘¸zšÂqE¾Œ>A»‰†`œ FýÚÀÞþŒò›('ÕË’‘[ò ü÷Tú1°Þ"üíqÓJoNúß}u½÷õuRáîæQ9þ«²”wº«zçòcUóhãððjè´V4Þb€)dþ«ª·®@7)ïC¯þG|þ\zLŸAÁ'öÙ—èpmX+•¡jô$þxä»ä¬2KÀFýñ'7gE¿¥”»r+^ äžÌ§ÙÛÓåÕÿø„ˆgðYI8 çÔËÿæ?*8µL¬ë¼|™ò@8–EôŽªñŸÙƵ2mV{üÓž:‡Ó]æUÞ™r.gzë âtŽ˜VàçLàÄö4_Á'ïà´6Œý ÓBõÖdžµmx»‰{q¨ì‹Ñöá¨XC«Ô–¯ú°·óØôð¿?ï ~+À‰øû“ccq(ón2^KGid ìQʾñפmûîZ‹‘N®§}o¾IËéý'ýËð`üë0/³GìÛ„‡Øý²šKÖÉYÎv°qá?BØ™<L}÷ðÿž_}ÉÕY}PÓÑseù5¥àÓ@é¶ÜÙ¾²á4âÛ3v§—YEÚÊ6i.ÇôÁl‚åg oŽplŒIó%_ëPõ£Þ‹9k 1Öp6Jɇ¸¾­(Âil¶éå‰ÄrȰHMñ?Ip\ NÂÝà;»€/[˜ÚæKVžSj³N ]Ö Ú©û0G;Ûû’A&ʹbƒ-­+p¥ ¼¿–Õ Êê U=Ï40 MPÏí_ ô8ýÆ,_\€ŠŸOwè°Õ«UÐ7tp30BÄ–`Ôì©ÒRŠF ¡²Š±wÒ¢$%^¢°\™Ã-ýNÓðÿNE; ÐîoæßýYÏšw ¯>É.Ê?0xŸˆ7ˆÛ‚?vM6@ÛŸ»¬ÇO%3käÃùúzâkå”–O§úT ‘ æÕoèÆT4“ö …ùw`ÐyôD+ðæôïh“O« "P}uyx—hÀ³ñôŒ^ù3CxyÄ’s*d ™¿x 7…ÿ¸ˆˆwi ýDY¨üGPùÛ_ûÞ:«Í Šì®’‹3 ß¡É¸'׃œáP¼š¯@/ϤcHpŸ™ª;Þ¤&ŠWÎid†Òhª·ðŒûq^6Te¶)À^Õ¼?¡!orǺ[¡//ðøœ|\ËÌüÛó«ÎUÓ£VÌÿÆà"Ÿò«èLÀã;|ʶR–rø^ÕF´ÛÐêü¸{/É/›òÒâ@ïχ;ót;fÝ(~gƒÅÖ²Ól"Îb½ê°«d¸t’&öç²yì]0`^ éVð6;Áù)ô×úm–ÉŠ^y N­ÆËá}ð¸¬!¶O²dŒäÊo•}vüHt‰± =Ýø\ÜnFÿ¦7_j¼¤R/Õ&*ÎEø>Ær°±5ÿlØrl{Þ”þjYkávÚœ’±½çW}y!dz{Øò[šj¾d”ª²êë`Þ[pÎS9!ýŸ×üqG É2›G^Jl÷\—˜n~yŠÖÖ”ŸlIÃqÑ®þú?›®¦ìçöS›tÌ£†ÐTš_™¿¨£áæ†ÿh-»­#C%ŠëºSä îúýdÉ,ðÇT»«ùuÇŸ¼ƒòØ¿ÛF3¡˜ZPxüù¶ŒÛS6àŽygcºs¥±›×Un·†l²}ÝŸä›ÏÆp?í0… ‰'óˆÿJþ’ªC€÷IU#¼SØ¿Þûž©N==]§Öúëlò5u9uœXNõïÞuÚ—]w0Y P³Ñbú€.ì S/õLóH¯ÐEt¯ï<~V§¦N”c¾ ˆºÑD¢ý*‹ŽE(>í7—Ì8Y¯òÉVµS5á<–@×o‚òŽ ¼ªJµÍÚu?óc"­6]LÜ`Õÿ¨ÿñÚ,>{»V×CGŸÁ|xƒUÓˆŸ’áp –ê‚S~ÆùÁ*"Å£(Þ3/ÎÁ ©&ÕjŽê Ü;‡ó-¯lC?Òý­]EýùKZÐàþVÌí5p¿a-¶tæm‡³Ùw² ø¼ŠzPB³ÿóï¾õ5vRƒÉfáŽjÁ³ÅèN¶¿¥±\œVÒ&¬×8hã%¿ÿh‚Ÿòv 1Iƒ¬_ÛEõÐEq7ñxt¹‚öí»šžËÂc©¤)jÎòZ®Ç%ÀÐæUè‹TžJÓË øãžï™³Á,ô•â(ø­)Ðui¸xrŸcìäÛü+Ï…SH-{ä.%åÄÜT/ùÛùRN93rð%`ú/ˆñ ØúŠcÛö„Me™è\_„þwx µÚ½…©oŠWÂ9jºxù½y3{ӽ̿;9µuÿǤ‡&Ï/Q­†_ˆd·p{ö*çïÂ1Àû»?ïçüiÚ`îj0à ̌Ôìýæ4“£ØþÒGfH_i"ì.m Ú[<üá c·òJWuÿ¯âÍ1É9)?§_©üGQðǻŎ´Íx€=*K$°t3ÐùWîj£I2ûnn¿¢Ha»,ŸÕÄø/›ò9KáòòqoQ].o/ØnòÁƶwì é ÷Ñ|ÔUVØì`L`έðó8.üG<0ÈBóå àh•GïÄH½…òYÏé)˜µºýYKnðGv¹&ýüÊþ¡=‰Øå¬O¢OZòu8Øþj– >·ïOµ^g¥âÐu!êMs‰6[ÇÍ!ˤÚQf¼ÆÝj·ºÜÇHg“¹<žf>…àWÔó:  PÿÃÛÕË$>µ¦+N“íywŽìÇ:òÆþèî––ne0R:pÒa›ÙÍ…¿óÚäòªòªI G=4\ï zÙýŸ^yTGõ…Y3©*xYÿ~± án¨{jWP¹e­¯£ÓÊ)âDqʨ§¾ï;~º¼ŸÉ¯–F˜#NZŒÉŒ6Ç·uw§Çwµó¥Î }š~c e…­ªé´Ôþã¨9þˆ¨cÓlSÅÌi¨ø…4N~?Åá"е¥ÌL?:Ǩ΅þif˜wÁˆ×TÏÔoÍ Ë1°ÇZžÛ)ˆCÜŒ_Bî‚Z¹µ‡Âѯßla/•<ãÂg%ÇŠŸ‹9^ þc<½@Ï‚ÿxŒ­ çÛ—òÓ|½ÿÛëµtŽÐ8 ü6àïvòò™D¦öáZø„Ýà?ŽéçS/Šef˜O__!Ts§üšwª±&˜·tñ$ÚÈC9ús·wV|ù›¿’o}j‰žœBÝLNí "â05_7†›ŠÉ[1ŠèjK]û=Ååj”Ñd4Ï „«ùëîÃ]oÇgAoä¡ûAÖ¯}á\4(<㜜³@÷E+RóPø6 ÐZ¾Çy×B½{\À(À¿3ê{ÿÑÄiafAG”ä«ÐìM„ó *ñkNbÓÚ6«œµ)í}®c£Ù?ÌŸ¨2Ÿ#\åLœÛ ׳UWq^™èìÀÉÄÀÈs” Ó8èªm(ùdT“güH ¡âí|š£Û^‰RÓØ@þc˜Ã@«Ãô’Fò. ìÿÀ¥ì†SÚ2JKgi ÿñ;W±??FÀÏtFû|vüÞúèýãN“1.Á“µæiàÀ3<×±ýl#o¯Ê0x„Lð wí)îlãJðÒB¸NptyìRnÂÍËϱ²©j4z>ö*þž€·ìÀµí3Ûž-Œ}hÏô–6²BzÈb›R²{¹LxØh'„÷úc5άü¯“ʮς5Þz98#<ã6îþ¸Æ]hKGb»/å¦$uKÉ+ûPHûƒDà$Ü‚ÇØÏ†éaŠ~¾ß÷j‡þ‘ÊB‹> ¼bNQ{ûQÒÈ,é ‹ìKû‹pp'Ë=)&/lj´o-¯’övPþ-µÆŸÜ_½?¿§ZÀDƒªëšŸ¦ÙüîD™kÛÈâJbw•ôsKº‘Ü„îHÙfÓÁéܱ0ƒ.ãçÏ™äT‘ÆRX¤?CýO\Uçþ#‹jö¯ß¼ó=W/ZzNò?ï?Vøê€?j; œªêÍw?¿Ê®»št˜ù©€Å7ì:øã®îb®ê:§î÷ï?êTX/ñJK©0u7–N«|:2 „cÜl¶™A&\0÷_mW‡TJ³a?ôîvfÛ:Ð mW}â:øÃ«û°Þ´4‘‚Uÿ£¼^­ïš‰ä½Ú NºE;hÝ&Ôýü}àBo§ˆÁÈ¿ÛS …ÂÏ7¥„\žÃ9”¦¤4ÕÒ¸øãüÍ|ðA? $Ý©/£…ÅôLÿΦ1Àgxnð[pE*(³Àæþúƒ Ó×€]æ‚“b›ªÂ?Ä ­ê:IÐCóà‰ª‘ ‚?Æ"âKƹáÛVCë)¾JÇñ ËÀ 0bs¨—ɬ#±Ÿ¢¢×”=4…ž‚![â®Ð;JÁµ(É ÿ± ŒT•ÏÒE°ò<ú^¶•¡ÛAžÿ¸áì6+°Gò0ÿ óЫ)1°½>ôñ öN©<ãS¼’«À¼À8%ä\D/V»Å«ïÔ1}ÀÒ%ø+ ´sd{î(ïxùw·ÛšÀ¨®R\Þƒ«Ê[oR#ÎÃk žcØÞ†¢ÒrõµRî¼6-h/TKG`dEŽÌd+ÃD‡»¼ŸÞ˜wüQÀþlÎþ8—²̺†¢é¯ýÿ“ŠSÁ¥*piq/Óí~;ÉVá öð>‡d€_xˆ; ÿ‘ɾBÄQðe·8³]Áu8¾ @žT3òyù/Üï~¸¼àG~ÿϾ°ÛÀouÀnk¤Ÿ¬Æ&•Nr |4 £þHø#0ãËÓœ>ª°>'éCûæq* ÷&Þl+ÉR+˜#¼{AŽJ*·6øã¸”“F¸ gÙ}Ó‚§QSÓØ|É2û»:¢óA16ÃHÎÏÍ-êÿ‘Y&ÊXYkÏÙæ’Èý÷üHJxY2%‚là~ˆ¹ºëO¬ŸŽp-3œÿx¡Zë&¦¿^s¨œÉ¶¨;IvÚÝ6›ÔË ”nU7œ«Ý&²ÀÆr‹ÈG›Æ¦•?ñógLN0Ù Éóÿ+ùó«~ΦUmþõûW¾×êøc¬ŽTòÞ©ì‚ ëäÔqb:åÔóïô}µuO“Š7 7Çt:¬ÓR½ÔƒÍ=½VçÑC¡ßÕÎë:5Ð(1¼ãlÊLµMHÚ§rj/3í3³Õl2ãMò`çß]¯²šuˆ³²,’üQŠ˜!´hÚן}¥éd™0Ázÿ1[ß7c enÃýϤ›Xƒ èp°93‡à#à‡zUCÒ§oÆ«­ÂÒ'+ñ*ú ó1#TùQ̰òìÕ\ý˜\¸=ýpø›ïÏKéÙДM\ÁôF±üç½÷‡Ï;;¸•¼éF Ì Õäß´pҳ样jùO¡çA´=З±ª‡Óz¬×üÁ÷¶úßô'M¸AD쥺ë2Ðô±yøúø£­¿NIHÎÅ•)¬Élnk+ùߟ_ÆJ_Îòr]¡»A¾?ìl2K) ƒ¤çÔ¼îa¸h0×åzP¬!x?ú÷ÞŸ'äþ*»/á~q½<ˆü%uÍÜ]A¸ŠçàH¼Úÿþü%ð9±Ý`Y¼ü‰åmL{½éÀžñg¬JÍ?™Y:ðnÅ"ÎðÑxÊœŒbóIŒïÎn#Ú+|ü‘EºHAðÇ ®ˆKá?rÁ\æH¶‡‚ãÞª¾Î´ÜÃyjºƒ_ ïrÏÖ–¶Óm&¸›áÀ¾ùÀä^RßþÅål^{›{¡O:óýÁÝÐI™í¿jÒq:ööž×ṜNe¡=`ǃ½FÛ=ÒG²AŸß’pl2IþXåÏŸøW´k1“ÒÈ•F)g.‡+zþØ…5ÕkÙ›¶½¼¶…í{XúKYi"G¤£L·Ù»±\áeàýe¸ß©§ÀŒÇŸÛ6BÐ7(#ߥç´N7'ÏæÅ¶ \¾¯´™E€ÌÏäº$2?‡[ª-¥ÀïY9>·GVç±Ð†Í—,³×Õ]”~„ÿxþ°ÐÝ-»éezìš}m×K8÷ŒL—×R*!µ„‘u<Lµ sÓ;Þúk pþãg=ÆxgѪC¡U¡©¶»TÙøÝbâ¸ëdÛÀMä†wk ½åÝÔhe*Jî@1íF–Æ:‰Á³þ+õ£Jª>ªQþèø¯Ï(õ^½sZê!:¾Þ® "ÊR_g§ƒS‰íçMßí–¯¢gJR `~o³Õ)ªc:-T83Àüª—èĺ×wžÿx©3`|W—QzªcbÐUüÑؼÐl7#L$¼Ê½À%Ì!€UÔ—V‘rUÍ0ðÇC¨ÖŽÀ‰¦®‰À“ÿóÕZ¯ÔÏÍr(èÛ@â)PÔ Å?ÐG¬ÄǤùОýuK˜¾å¼úµ)IQtýÒào¿‘W¥÷8¹ÀÒÃ@ï·4‚jâ¿ÐâõÕoD¬«×@»7õׯ]IÙi Ú«øÞŽûBÛ—ã@QïLÈ.0Ëd´2’Yñû¯B«¶N.0Ù ðPü´WÛ~*­ æ(è³Màæþóç‹Á?c},¦~&Kϯú¨©ºÚ—·býIcsÉCêIGLn°Îx0S?¸Íâ*¢ª/•`S¨ÿ:ÿî=_8ç™ÓFW¹e¯3Ì©â„sʨßyþ㺯<89?ÿî/漓^Çuºú÷_ÝÐ+t~øAßÕ·:ð%°ý”C;°ýUYÿHC(6‡Í7˜ü±EmS)Í ÕjxÑts *DÍÌ<üû!"ö‡¬Ä Öþ«z³¾ äúˆß=J«èþž<$¨ŸÇ«ÕÛ¿Ûø‰è›Ï¯š©D`¸ÏxþÓ}5¨6åW£Ðþl‡»è1”x}‡6f§=úú7ùcз†ÿùÕàþ`ôM Å<8Z‚÷áÿ]ÿ±›6û÷tÅ7{þñüyLÕÜÉ /0ÎÃË9] 2-zO}8!8n=t~ ã ÿn®V~??†™ úMцª‰ºz+´œwîïu§OãfäF”Úd7Þ9‰À½_áënóª '*âîÁŽºç1s)2üÆ WRÞ þ˜Oi€œ ¸>?³­âû¼—gá«”üŽ®Ã|¤ @™z†Z(^-§µñêYã³Àôî–7â§Ëó+øv%øã7Í>äà““èMÆgþÉ›ÁSñ¸†™ »õºÎ=Ó}Ÿ™×²·cë"|×QÎiCÚ|ÎÖ…þxÎ!m!Õ®ãNœˆz•ÃÚ®˜4OújTú;?Çv’ÁOÞã’à¶®l£"ú0é!KàAêKc0Õ¶n<8¡ ŸbmW£gfѺÏWñö™Lœÿ¢ÓT†Ç«œæUö˜nƒ?.ƒ² ]wr7›üáØyðy}ù粫¸*Ç ÀéÔeµ*û«çô;ÜNÜÊ^¶­ÆùýùwGI;i$»¥•Œ±ÀLµåoòçOL`7³‚‡i¾œ†¨2éëT­û‚?JÝÖØðÅd™M)ï%–kÜ+þã‰=(E¤˜%iÁ‡øÈ jbÚÈ_ò üQœ*P]Ì€hüÌ\¦^ö½‡gû®!ž´•¤îm™*o¥¼\²i%²Ìã¡2Ñn§|›zÀ$á¹ôcÿÑH÷1©0Í) ßh[Å,í>›[~ µ“®nU7ø£½¬µéÝ8òŠÍ/ϨýfJP9¬ÎH<ò¿ÂEUËõ£’«fÿzÿÕŸrX÷Ñ}u }BF”Ù¾–NK§¤Þ©¯Þù?!þ߯@®i¦V¼—¿ä¸“Kgu&Àô7Ûô\wùÎóƒ/uah^¯~ÔjÊAmÀËT þ# m1»ÌYç´†W}l§ÊcÎÐ\`ýPàÜi(àšÃf,øã ÖxoàèJ(–t&¨ºy¯æz‘¾äòñM¬çY`‘Èú8Ø>üÿíߌ¹uˆâãùU{•„âoÚ¯—äå˜ãe()æ×1(”ª|ðšþ' [w¬€]ßäÚz&V]KÜé]ZZÞ¹ÇÕº¼ üÇv|ufÒ6D^Lý)­ÙüïÏèÞNUðÇL0Gu¸™’” .äîõN„¸»ýç?N‘N`”ZúŸ_­¤¾&~D´1j’nîI†JoоNàî™ôЫ.6Íuàq=hþ?ÀûÕÇÈ—ÆH½ ’?Þ9ÍtŠÈÃxxÑË: wœ{ƒº‰CóJþ‹/A]ÿÌ)ø%îã¨÷Ì‹é *°»nà4‚ÿE¥ýgøz°Ë›Áq^ýó„6£Ýh“Ë9›Ì>çêp!'¹ å·¼”/ƒ›ŠšAó¥Çf-/çÈv?819ïƒÿ {/ÛÊRJúKyÀÖ–±Æ®Ö{ùOãg{Á$¦)ö_ô"¯MCá sTvm5;ÎFç¤þúKe°—ÁÝÞᶸý“Çp~è™M,ˆ½—–PHýuþÒ& gƒÿ¸D­À5ø/µGí0;€§Ú«2VòJÙ*›Á|ýmB‰g}v*x¦;ßæl@üZ-¤WÔjÊù ŸrCOܤz\Ç>°}å™-`_á§Â}´‘ø{»M,饤œá%<œçùŸí…ƘÌ6_2Ê Rô9JËáð×p^púRÞ 7sA2É,›UÞI4÷¾œõ×ÿxbŸK=øˆ¢ø£/ ò¦©Éûù~Ÿªƒº2Ül;´,[øñn6¸gª´ öwÛ\’»—e´|Ĉ<¿I Ëx¸ô„á·þ]º±ái¾ä/y£ÚÁ$‚Flê_«à?FÈr{L[FI7äVvã¸ÑÜŽ²ËætS‡E¶Yä1füAó#Vó àÄ@8‡Î⪠:8žS5WÁËbþ÷ë©/´cu=JçÔ—UNÿûó>N_§²“ÀùY=ð®ý¿_W| õP“|œ t¯“Oçv¦©Xf¢9 ½^TpzW;ßêÜÔ^£10¡2Õ R u^L!iŸ9ÿ‘"˜û¯v¨=*“ÙKÓh;¾ÄÌlU[ÑLÆÿ Üzxƒéb2›OÁˆW~ê¹YHŸ0OùýÇqpÓu¨‚.=<·­¿øÍ6À¦à>#s>(§Æ˜]éi ø#<ü‡÷þü¸Ý:ð]à•—|³þ`+=wØwz¨áå¿F«*÷‡³/,ñr2Π-Þž30]4³öë†P-<äU(†¬–—„¿8 Íi½ý`¤È|ÄÏHÞþ+ŒZÞÖ¤×Aõc5J@»¼¬ñxÞˆ¸>+w r&—¹­^“+òpü3ÚˆŸw•îÁV½qNš™–ÛñÎɉàÝ~¡…”~¤)<£µ@»}<¬…?Ð9ò¼WLhä ðëGuvZ˜áè«Üü+¿ô×ÿXû,åÏßžÄÜ‚ó¸Å5íÐøUù„ŸÏkÃ\ ¯¾óÒx,ž™Wp${ÏÃ_îçÜöŸàÓ¶–”–žRIžñ.nÃX¯’|Z¸¯uø¼z÷=RíýjTÆ;^NœíàßAüJ#<˜­¶eCr\;AÉré*¥©}Ä%m9{Hšœ´?;“×Ð2zèüÕA“ Ÿx£é?Ï×5϶=üï?.È0É*©€÷×íoÜ =•GW?ðÇø±yˆÅÈçxéÔµ=—Ž!Ÿû·@?]¶=å¾MeïÙ2˜ÚMú÷;±$BKÏól…¶±]U“Œ§š/#ÒSeÑÁ·èwÚÁ9¼êM|ÂövóÉ4›^îÂ/¼‚;Jâ“›ö1¸8ø#!§Ãì¹Ä¡Â™ú¦XþØ­ËÁC÷ÆšÈÈÍ5b£ºd³´‡k`ô^n÷7™(Úý-ÎŽ;_Ê3e˜]¹ù 뮉‡yÂϳ𹪭;™8˜½ 5Ͳ•Ü¡2Ï^°q%Š$r—ÉDøÄn(·;üR·€¼´ñÁK÷ád¼ó祡:cðÐÿÊþ«"ªµêõ¹gòªn*ù¿äç¾PÎ3§üGN}ÚŸÃ{­¯3Þ©àÄwŠ©'¾ïÛü»¯”žb²QfÌý~æW§¤.àÌT‰Ìó›Þ­Óé™Nçïjç=£‡ªJÐpõט œÿÚl2ÇÌ"Qç´†Ï7_mRñÍFðÄàÃ:èç$\¸TÎLJ?¶óööšÎ@° ts૊^§™ÉÐ27ÁëèíÇï?Æÿ6ƒÝÚœ,æÖ A·¾ÙÂ**Ø& 8‡¸8φ֩þ˜HÞîŸbÀæC˜ó‹©& ¤n”ŽÖèc߈ØXÏ _¡‰ÆŸ×R(ÖIhgJx£nà·ò¼•ž£Í‹à?foKSh³P•û‡˜¬j;è(bÕs,£üPSÂOi.ÇSüÊ• Ó¯à'Žb”C‹•§‘4ØäòýG5E·¹7Zq™:¢Sáã¢óh°yVóox¹NOéWbÜÓ€=2ÐÅ ø#¤z ÿ1.­3¤4Ç3cfÆ5á‘üظŒo@WOD+Só]°üa´“ù¥ÒóÔü@ñj:µý963Åï ·4Ϥwp#!lJøŽs6ÜáŠ6¬=ßõœrñ!(ò5ñ²ðOKUsn™¾`ñ¤< m9Êg)>ïå”p§à?šŸ[@«>åœÅƶk¹6Xt-¯çGh}l*E›?oé¼0Ý0^QwD¨èíàrv¼ýH)ìé,“¤µT“ÀùüðW¹2ú±ôýCðçfÚJ‰ô×þ«I †y¬oeQ>j–Ýk‡Û6<Ξ‘ÉRTË9nwsWÚS<~Á«•Á.á–œ:ÀùÁbê‘ÚJ%áb`Îzû¹s{ܶ—§6›5²MúJ+¸£UÒQfécK}ٱ!»\ü”f¨ÿÑ[eÖ»)'ÜÌŸ´Ž#Q ôôÛE.J.™7tK¸·å†ÄqëÈov”•œ`ÈÞãæø,ª`ºÈßþP­×)°®ZAñÅçÉæ0m³ Ü*2 ­ÚmC‚Õâ»çe±¼‘*òÖ¦Ì2üÑØ¿÷/jOm©*ælÉϳð¶j [›$ø~(«¤4Å^p—Êj¨Œ¤ÐáÜ‘2É­÷á¸^}änFyn³Ø\ò†º‚?Ra-M§pÜ[Ö0ÿ‰«¨j«¾8Ñ4j  ÞSœ¿_÷}qœ—NgÝè~KB”…¾ºÎp§Œ“ØÉ«Þ|wþ«z”ÉH)&5Çá?b9£Ô{=œÖkt=Û™ü]í¼Š¯_}Ÿº˜°´MUÂ÷‘¡f½ÿýGpë×nSÑÌšLóiPé0” ÷þ£ž™.ñrò·B®35MjÔ¾ÓÀW)½\_7ƒè/ºFò20zÈu‹^ƒ?žStÞ .ødZyÏ èé7ãÕW.…£¦YÎÍs©U¤œÀÕõô– Ö>üïÌý¡ÐAhÛ7ëÒ=2^¾÷«@ü"hŸW0Pi(tyIÞí¯Ã7ÉÏ|ù1ͼ|~Ū™ L6š~„ðüGNƒ¯ïÐ$fôæ68šH|þæ xªœS;ø$oÿnPï‘z¨Ñº,€oóÎq~Ä¿º‚ÓçÐJÆ“)¡InŽñ&Å]¿UÃgõþü™ïšsÌÌ‚këíž—ÓðjŒÂ òv­Öæ®ü”ÿ ið»yÐ1Fæ:Pô \â+J£Ç«â•uŠ˜~P'ùyßäÖð‘kÈ£¿ç„6)!"ø#¾½Í%¬¶¿¿gCk§¡áMÇ¿í¥)î\7íáðhâ5|Îç §°áïög)( ¥²¼â‹œÖF³s¸<À >Æú) í ä?º:ÏLOÌ´Ô•pNÂ>c‰}J ìp(èiRª¾¦ÝÇem%{Q²¢vó}^Í0—Rzÿqü‘o¢Gª ÇR¢Uí:;ƶåvö¦Œƒ-'d—]Ï øSÂsyõk»òAŽþðÎ~Éß^P=W;©üÇï¬OK®aoÛFòÀ²ØõÐùu¥–ì“N²À_ãµ–œ‚ÿÈ 9œÝþ°<×|Éæ1JÔ'à:žACíä옽;ù¨-'{$½¬±qÀŽûANJLøGö"ú²¢äT܆¯q-¨°2¦]€ý»ÏÔ! œÜ37) ÖEO^f– ”6œ¬§à¤±rSJÊ%›QYË‹¤¯E¡ø<ÙŽÞ˜_ÇlüÇçWŽªá„DKfQ9´jü@vø }`ÎqÁÑÄä tœ´wP ü1ƒÚƒ?(ˆˆÔ]ÈÛÕÌKѺ'`ß®þÊÁÄ™¹+E5ùÍ9ÞÆu¸(4ßEpÜZÜu:ŒSú Ï|ô=tŽÂ„âŽÀÉähÇ õjJοpC´ëß ñPË»S9Xã&Z~ãôòëqjY x?;µÌhŒÔ@çcð0!ÙÛaWŠ5”c,»ªt¯Í u_ÁƱ^þ[/;ò&èç5œ€sšNÛ¿[Ô9mz£ÏÀ`±M|™BóapÅk¾ÂÇm É ^]ó=ÎïÍñ×ZÊÀ{u8$%ÄlßñUrî™®àéà‹œ¼ýˆ«Û6ǰãeª,šÒDªÚ‹œÓ–´çá ²åwÁßläuàú$ºçWñv›tˆr³¡&Fÿœç±v`»rwû«Œ–bx½ÆËìhIL{ÇÃÁv㜠n©1§4q>ÇK¥>ª¥T ,þ .ä(ø£6×¶×mÑ@ö;v­Œ·•S`‘•–$¢”—ý¼„[ð$ôïIÁqy’9ÿ¹m#U1}Jà=„ÇýÉ«xÌ[maøü²ÂF•Ðnx÷1¾Šç–—wpKEá"IIŽŠq»Èõx µ|Éßþ›º¤ RjƒÕž–ãcf ³1Ý<`ÉIrÝj9 ö¸$ÓŸÅåš-$IeO•žvÔÉ}ÿùàtòïÖÐ}L\|¿å¢â4Óæqǃk÷Ú‚Fv#Ri·Ñ-þ˜kû9„¤’!ש/0EáÒ·Qlžø_9ÿñ“¡¾¼IH¡ú¨4ÿúýy4ðG3=L§Ô7üg—ùê;}œŸŒNÙï>?xÕWB6¹)¥¤¾æ€“K§c|ÐCÍu½WgÔÓ¾³þù-(†Æ”x: ´’ykfþÿøXÂŒ7QuÎ`ú*øc&-Äø-ÚEåæà¤Šàð S0æÐfÓ þ#8û¯j‚ŸšñPз­«ÈÇg€°é95aÃïé2x/<4ËI CãüG zm"Ã1ÄÅú[Juñ'y5h_cÃ!^Œï-OÊK«ôÁoD,­Gáë‚_ùwì‚ÖÿA™ †N/Âû°†öåÑb JsrÍÖëáÚâ’IªÁÜT¶a€Ò¹¯€ øÄÍá?ÒÒjuø«Q™è|00_Úv¾(;¶ŒgCr|ÛYÈdD++eжêàßüy`Zñ!¾ VÚµ?Ðó«& 'åßÐÓuxÇAÛ–ÙMv°mÃ]í,Ù$®¬” v%÷·‰%©¿þGoîÏ.à¯Û|ÉÑ[½S[©æïSÊ Åî=¿*kØúPòYì-»A†I;°åR©"‹Ð“>©(Ëy+Í:ŽeOÁë à?:«"ú$eä'p[«9 fïZ^üý}¶Î†–°n$÷¥ÜORþãWÉÞŒ%ñ8±Ÿ?šñ8èÍæK–ÀßÕQ]”Ê€?ž }¥¦V¹Éežl„¯…pßMîIN>Ű2——K;ƒâƒ?:ú÷¶ìÿÿñÞ©zŒ‰‚xý¨,þ̵YÜN²Öz霽‚~«å¶€C*æ¶—õ6¡ëånΆ1¿‚5¼ÓüM4"rßÿÊûóŸU/5 óý×ùKnû^©§N7=èþ‡ÿøJ_g¢SÉIâ”QZ}_ý¨K¾Lz„?7qvZ`^8etg”z«'Ÿ9†O˜ätø®v^„bhCÉ€p;©:u1‘h®Ê«cYsÐsÕÌ7‘‚Yÿ|¥:¨›uÀ–uàtj¢°©”é » D‹h£inšèÁˆXþãµñê®z'Ïw@Ö½Á×^þÝPìÍ’ÔöRLr¿¹·¹ M‘ýùcra^ÿ­þ˜E ÓKuNƒG f@³—¤CúÚ7ZXVÏ¢?€Ë³é>ýŸջÆ÷ÌZ_ ‚(¨¤twwww·t—¤”tK "RÒÝÝÒHwJ)À}g?÷—ƒÏsïû8çÛkÖ¬yï»gÖZ›ƒÏ_„Óç8‚;À‰ÿ eÞ†Š;áfâûRÚõÿ ?j¸©ÁA&x#ô\M¸­ ÒmêÇПþªMÂûQñ8Þ«3ZÞ ªÛüÐP*6tz›"hK\^…|õη#®¿QPôœ<„òÚ"àÇah^ ¾|VjòLvœ§|ô<~< œv×"Dã!܃Óq\Þˆlºˆr¢Mí o‡ e3áÑOób®\)ð4Zy¾/—7Óœùo¶Î­bûãèòÉßçÎ ùã3® =Ï"àÌéaI†¤P 9 û»CþŽÜ°‹SqIÛ×üýF½rî%Ûé*Þÿ#äs”œOqfùH.ñI) ßF+émäúGV@›sðlÞ*tfbÐæ7æŸ÷uŸ üFá¸2E5(¾'-ež¤á”Òz?MëúŸ‰¡mÕ¤¶ÜãaèÕ¼‘-joƒSˆc^÷os¬¿æË)ŒáòpYAÚÅr@Ë)7À£bSgë6ÙÊ-$‡•<™{ñP¾Â¥À”Êœ4DþHåÜpæQ .ÌÏÉ_}ÿ22R+y*}5‚–”²RÇi­¡ËqÌKR!+úñ Ž…ÄÏh¬½þ²m}œ|fù»áÞ¡Íœžb#– züñIþ©—zïÏÿh á‘j!+ÄÕ8àá7h_s ÛÙ~õ²}—µ¦Uƒ»ù‡òñ»’¾’‡ú%ˆ± üˆ¯'ô4Øñƒ²WAIÀÓ¡kþücÐÊ¿ò¾ä²fâ[óÏë¸5íw4Ñ×?¾")/Gò«Ês ‰/K$1œe¹µO,Á¨phçEhà)ÎÅÕìÀ·>¿ªÌã)¯ç˜ò+ï£d| ‹•³|XÊjaí õG”z"ÐønÁùƒç8‚´áØ”˜–½qÿ|¸ûÐúŸL>¥Áà›¿ß{di" $#Ç–ÞàÇ0Ш%|8I[),Çy,4¾¯C~ò÷>œH±Þ¸ÿ±ÐfåŒÁùçM,Òñ ^/×dœÌFÞ¸ƒjy5–nÐ rÊ3¸~âhôsGov´¶§ ±VCLç òGqÎ‚Ä g÷7[ËçÃ>¿:(bÚ,p¨h½è–5¥‚û×ζ÷Í.“ÂŒý@~œ4ù¨;¥‚/ƒnµ¶‘h¼“ÎÄÕü8eGÛˆaÜÿ|­³ÕÉcç ÎfhðJ\1‘Á?ô‚ÒÞEþðŸÛÙ`ûØ$6R*Ö1?š¿ìXä‚‹`Ò"ŒÉ½àÇS|]>Êß_»EÔŽ†ýk›8 è…}a›RZ®À+¨Æcðì®ÿ“œ­ ÓTjˆã~l1ÇÞS1™<Ð:ÿ7­¡<ÁgήÀ¥·àQܺº dZG Qw -FJÊh7½óþùã@7/x;‡*AÇýuÈòBW òPމcÞÅÍÀ?È_/w®6 Ö|êfs7ÔûçÝM-º…„0GCpä}‘Ôf#|C%l {•·r+xë8G—ƒûGåŹ/JB]÷Š»ÁÎ…C_œ‹3àÈÆâ¸’Áƒ¶æz|ü˜ÂWAƒYÜÊàóàücð%×4#œoÔ+å6FþèO%yßóc…îq*I «%4 üÅÍ%¹£^P1>ÃËøÈUѶ{kýÝ‚îeäÛ¡pþåÛù4Z¶™sKD9È;¥®–ÔúþÅá¾5Ðú2¼ié#éÎÉà<æ;«_ëî ÷ºn¢/_æ|àGTi#ó%9'‘ou$ÝZSK*Í Àùþ㫱íb_¹¢3ŽïFëPûàóW¯ÓKâ#Ì×­È©õ¾îÑpÞ@½®–O5µÎã™ÚN&`tÂ52©u%%|9 ¯9L?é£5e—öH$e²GJè~!o½Öðš‚pÁéb¼üzZ2J>= eØn+â:žwØë?²ÿ`=gþûŸ¯;íþõóWç3÷…;jXÒ< ÎI\¨áNs«‚ ÕpÈ}Ôf„-·˜›–Ú'n Sùã‘Yi?±'M.³ÖûAíÍß¶#øÚüóæNSüH‚¤Ð½¶—úçŸ3x U±eí ð£çYŽÂyúüÈ€óT”î…ÂGÜ5v:EâÉ<„‹³¿*ãpœ‡Á»¼…ø1ß¡µp£ÀÕWDæxˆšç@Öx“™ßz~·Ž›ß¡!PÁkÁùçx Z– ,‰+ÑäI‹üQF<ùZb_ñçÈWy2E^®o;›soÔ«é^³=i$eämH§Ðï x'g’Çpð{à¥Kê×ú•>cGÊ‚‹ |uÀ øº7ÇBîÚà¼þ¤ö®A¯E¿ eJáýÒZÆ#D“ÎðÎS Ï•´–„“*øï Ï€éÎ+‘Vó¯±Ì°×ê­·þzƒ×¡Ð Ðé¡»äž “È×t€–ÕœàÇZÔë/É5ƒÄ‘ñ܉ᗑµH"IC¬ßÍyê,BÏååÇH g0>ÚqKy&Ý@ЬrC–èpí®Ít™6€>'™*ëEmdǨÁùç‰xº}µ‚ñÈàýÔ8g7iÇÇ•v ­ŠŒP~ÞÓϽ”p÷¡Ï ô#ýýØ©$G†sð×/ù…ZÙ!¶ÎËöÝwŽ˜*H ýqæçþvýU¯¢‹t©ž”Ü ÇxèuÓ+Z^C‹êLž¦-e<Å@Jî nÇ•÷å(|æ41Ãl"äí¶ÁÕê&Ê^oš.•+ò•n“« oR¯¶÷»ðÚ!oEó*Á{T—zµvØbô\gxîù™^Úiï¼ZI*ø‘ü_çuïºýL“Éœ î!47PÎã@þ¨ìóaÏïþÈeÆY?%&¡‰ö·Œiè.rž™Eö¦9l²šixÿüÉ5JO­ û¥¨‰E?8Ll¨}ºd ®¶;?+œíNj»j¹œúÀEÿ7ÞZœÓúsünƒHh ­´lj–Qjšeæ–õw°8 \AÏèWú¿ß£üˆ"òY8ñO D{(^òGk'Ü&a$¦å’¼Ö¦ÌPÕ#äÂAþœ±0êƒp])m Ãú%ó¡Ñíƒ+Ü.¥ìÈ Ãðu,8æo¹>®pÿnÅf¸þ}8öP¤üvþ;?¿Šà´v ƒ·?Á1ÕAÏù÷¶~€Çÿ›¾ç ÅlnÎ_@¡O×â=ÒwHdÍlÁP÷¯mçŒ6åè ÅåmH ÊGh¾ßŸ‡™†; ä²GáI[s6õI0П‘˜ ɧ(Ýuÿóîf;›"ð èZJä=8Ò¹”N¾9çç‡üÍ„šáiPÛôøê:˜tâs4n`&8ÓߨWíe{û÷Cá°ï‹‘á8\J)‰d$Ѓ’n¼ ÒÈQþÜ,-æ?“Ë­ì ·òGUðÃOEyIpþù JÉ¿#|$çù¢”ÕâÚÿ=`EþøLæ!BR¹Ê‘¤3ÇÆ5´ÞYôÚYiçÈŸÿ.¸·{U^i.K$~¢½öîåÝRKˆ¿ªI59Îߣ}My7?âE¼)òÏ_M·ñ¡ÚçA¤ª<‚3ƒƒ›ä¼Œ½úÊM«ÁPküȤùÀ8ÿþy?Ð5¿øDN`㼬—Ìyâ,?r°EÏÀÙkËMä¬t×'’BŽÉjðíðc)w@bhn­ —ÀÕ \tù?aáëï~\7 ´Û~7zîw“Žú·æÕùòD{©<Ç»©i?¡•­µ2R䩞`k=þ‰êÙoBÌÿ¸çì1y©<µ„“JËì*j/w–hS$¬’z ­c¯‹^Ò<úH>ݦñRí$K‹nÁcù«΢”/Gái§£écýµ1ÚPA¸½)’À¯Ûå¼MÎåÏ5Ÿ·Yóx=t·Dö é^)-õ&m·ÍJ%É¿·Öë?rÿ¼ºÓ×yµ²d|§Ç¿þüêQ ºûÈ­c˜Ìæbðþùœ@%w„[ÒÍáVrøùq6PÀt±Ù)Tn©ýËÍjrº“f’½dštfÊ>¿{ÓäÄùN@=h?Õ¢Ñ6"})WB:mÛŸí§¦P˜*ntV;ií6dÆEЇítŠqŒ¦2¶?í?æR/0d­mb¿´6 +™Éæ±u9†l´iý M„.>†“»KŸ@¡Sd¤ˆíô½ïi[ÿSˆÄÈMá˳ó|xøZ” ¾u/„6ÿJwÀŽFðýƒ1R—™ƒï©ØÐü ÿ÷ £‹¥™pÔã@ŒØp·ý¸®îƒäÏ®ø…¶"MFg°›ßùüîó@+7Æ_ ·~¦òàxPø-æÄè³ÕÜ„£ â~´Ö_'ÞŸu2“Ûì¡Î?o†üQ‡îûóèÀG dgê€sbqÝÏÃÙ(fóo`\F> " Åè‰Tð#yèj¨ûþé®?"ó8‰Çk0V–Pv¸ÚúÜŠïð3ZÉ·?frùàýóèzy !òÇÔ·øQÜml{€ŽE@…G<J8œ,ÍO9¦D­ÈÇ¥ <4Ù { ýxï=`W5Ûã­ù%Ý#¶=È› ®üб7qj±Ðö£RO«h m¨O‘"ÊŠÊ ´¸*Oåýüô/6ÅAÚÞòÚYàÞ±þú‰iá’iti"3ÁØò­ÔÅZ[kj}‰)MQñÒf)äMÿùݹHˆ“)Ñë·Ï±±9ÿ‰>©Î£8)à]rZÆJOîüñ½æ×tú£î¨2ÇžK>‘© õès^YÊÕ9~ˆû Ç]K•0ºn¢ÿcü5âŽr]ºÀËÇÁŸ‹´4¾¾ÎÕVºO¾Ðdh«ÿLó(°5²ì=^ÐÏöÕçÃf7ÎÔcºKË9Îñ^ž$½ óeuºÄÔèžç=MR‚¢‡´ˆv–/57’eW>Ì yUµ½ì«Tý§³×ƒ m'U€ÿž ¸^e]¨st5òÐv©Ÿyƒ‘CŠês$™ìºûio™§yÔîGÑy;Åy9 o; ÍXþ¦+UF™/¼t–œRºQN ÷²x¼ËÇûJOH¯ª^–,È9·‚ù#?®õYäq¿ÿ?*9]WO2Årº9)ÿ%?îט>àGzs#˜?æ!üè–r“¹eÏ9ùAÕŽ²™¶4‚ç]`o¸…MuwˆCv½nÖ›Tf¾;úƒÚyÍd%ögü£¿ÛYGèœÈã( ±»mÃdSÅõÎ'õ×ë˜Þ]Î © œw_¸ûp„n,°ímr-L÷Ï—š§v$ùOêú»âþ /ï?ú¿ÚòÇ8ñÈpö¿RÌ0¬ÕʉE‘?ºR2¸º…Ôª™×û¯PŠÂ¼*ÿ™«Žû;*ü±ÿ=ë˜Ytº<Ùô~\ùuxþæ¸ú[r>þ•|&ýî­B´§¤vƒSçù£«›G9™¨1HT}?üxLã8:òÇNøt ®Wq€VâLUC¢˜A]lVó,”j_;ãLA\ÁÉy}pÖà^ê„+srVJîC•m){ƒýçX‹¢Ïàû÷ÿ¨ôŽõÛ®¹ûítú’û@Q rÖàüóÙ”âω(†—ñeäƒ\“ð}ÔôwUOÂ1¸²™íL~£^m·•ˆ³Pˆ÷ñ øØ<^¿2Gä’®2µ^âpãM$¾á¶ÁõóÞŠüQÚö3{Þªw z?<øüîg²‘ÏPbTÎ-žœã R¼µvÒgüœ+HDY‚6â9H(á¥Nñi‰³øù/l;$ÇûÔGU‰cóÇ÷’ù£üým¬õ´œ0èQ^Îð0ÔkÊ둟fò¸…/MÛ×êͰÑAË8»õùG8—ƒ¼EÈÒƒ;ÉU'['éVd£aþª²âÊ$î†~9™d5Z›)„×Jît¾6mL8¦!T\Ú!Ù¼Iê÷_ ðñ°ÎÐL^Eï’öšêoÏ«¥÷%‡DÑãô-mµ9©0§œ`Ó/×°]ßšñRÂ=dýÕÀRó:høP6ïâ, Ð>&u´òG+}ÄVÊÈ—²Ü,Žj»ÙÈWüúyƒ³þµ>â޳͑? ÷FV¨ ¯ý”kÊ4IµÓþ:YÛèWZ,ª.5ä÷‚ûhÅ;ø:´wÆi†7ö?Ÿep2>lÚ„'q õfÙ)ƒ¤;—Óú“Ќț$¶´“šL‚CPu§“™ÜšÓ†¸Vb;×aèäàG6>‚sÛš«ËIi­?§Åß7ª“6וZ*Osj ýlëÇ£Áù­`â±öÄ˶õw*#dÝnÒlN‰sv‚{ƒ7 ì“‘4âxq¼»ú\Sx ô…¬Ñ2ÚPÒk6ÿÎoGúìO lw[íeûn d…ÎWÙRð;…æÊ dŸÁðÝÒSƒ$Öû|Ê®%2êýœ?8ܸ‰”Ü Ùq;zðêu™6®ŠÎ¨ZŽFÊfoˆ.’cb@Ü(ÞR´°¶·UsxƒôŒÄöJé^É%õ1Æý!›•ÒbÔGäÿ‘ûù–!Öo–ü[~8NÀ½ë6GþÈhÎù1#PÃîVqS»%{]Tmo øá?}•Œ&ÛÛn^“Çè<?Θ½&%øÑõƒÚ¹ü¨ŠüÑzUƒÚ[¡N&ÂÕï±Ûí%ŒûŸÏq¶9‰ílšŽ«ymA>篩$U³Ãh=Äßu…Ú®¶Mm2–K›¹æ!~ö!ÒÇ6xóÁû Oé95‡ª„‡ÿj~ø{UG£{ï­WÛù„¢ÐÔN:9ÏCæªJéh´ÎçÇnðãoè|u÷P8¨5æÊ{*æ4Á³4D[¼° ?w íïÞÞÞ¿·°Éÿ¼ÿºÜŸ«h×:ßQ3¢S×ýÞõ¡)¾»0ÜÁØàóW9§u\?æƒhã¤ÿί©Íêüó.Î`S ø\òä Gîï5=—Œ»Ò·6³½À  åÁK Êrªþ•CžÝ ?ή»Ûìøâ¬ÐÂ=Á»/Ù‘FêÁ‡Æ•§4 ù£þÕá?@Âpµ‘¸¢ï,|£^E·ø1˜òA/¢·,oĨÂ8ªD–MP­cÈ®´‘¨rùÃ@ïÏâ½·#=•µ͉7êUu/Ú.èçŒ<‘YÃÇ‘|¶s1ržOK-¥µ‰^?Jû÷çq xokZògðKU¯õáwîÛPxÿÃøÞ˜ü4ú'ù„Y:ê·:<*£e$‚T’:xþàp#°ë6/Dæ|ûó«…6)gàpµ‘²À·¯½2RZòy ã5´tÜy$qJÍ-áå'¼sgÞü1ý?ÄþQœ;Î\$¿Tü'åÀx¸B_sKäŽAúl¼!»‘ú€S´¡?@3¡¶‘EàÇàÇ þ d‚}åW'8yÍ>JÃ×A¢õœä]ÃÁ‡šAW Fórz.ü}Z¯1øñ«–×|’Eó#Å´ãm8÷¨–íe˼lßcg‡)ƒ«§1FU*G[¨„ó²ët´i™ÔÐ% G¯òG^´86ؾ€§êHñï®]‚'êF^‚÷?õ>w™~6®Ù6¨Z–fJ!o¶úëO^Aþ£c‘?ªy3‚+)nFþ(ƒ£. ~\—ÛnKSŒzƒüñŸØÿ¼˜ÓËé"ôr¶‹ëÛ¯gÎ_nC3ؤ3çƒó?¦jº3ܯÜÌnä7gÔþï¯ â¦MzD¡éöº›Ý¤p9çÌ8{Ð,7IÍôÜÿcƒ‰‹óÊõ UAþˆH»ÀÄ4)¸þîz;ÚF7¥ÂTq±³ÎqíHš‚«¨Í£õPêzàGYÛNü4£ £-¶žMâžà»_•Ì"ó'ê=€›ÝŠLsêéÏ|F ÁüêE„g™K‘è}jÔwnXÛ&ŽSóouø“ É‘8Tg;ý U,Ýý^öÞü‘Ë EÂjNßCƒRnd—Ah_j®÷Ø+±¿ÖÈvizr U¢øv}píšÐ^ÕݘPÝy x5¢HpÿÁßpUãhþ3¸V×'ÐËq¶JSk¤¤¯l©PùÑØigò‚1 gÃÑ{ƒw&§’ÃI¹ U°ìa^Í 8|çqdš…xÏäTcà÷P÷¯½än¶ÓÁë¾ cnŽÇ[жið—}?ÚòßÁ½O¯ðïð¸þúíOPq;êF⿨”ó?ʹ%môrÞ ÏÞ›™Ð * –Ä„‡^)quµä†.W“Od?ÒBdÎÁË¡K?*Øvoñ£”{ùö;8× Ðð àvbÞÈ™Eå*ÿ&Õ5›V×Òú¾?µ|. ‘är"ì?šsúŒ–¼±ÿyO×Àçì¦ûÔž/ G&B2ª,S$èÔ,š¨½µŽ¶•œW Éô@^¨é|¾Á?!ûL§¸oÜ?_i“q¦àJ1¥x$Žå8ÿ"»e¬4ârXÇhhõ|½Öö–„šN. —{r$šx2 ç=«Mâ.ìcg-•A•ÛT„÷cäÕåºrV¾Fþˆ„ªþýónH[óµ>”4¶&ÔÔzçº/Úö±lf$›a¯¼lÛ §°ÙŠ$s×Ö.s²‰¿ów£Ò,:_D?ö’#Ð^E}.´˜“˜š•£"qãúP'Ûþz:ó–³Çd@‚n‹–Eáö uò*élý©¡ ®Ð€×ë§jAqLPdwÑ2 îÄŸ?ؽ¾€"½…œúæç£Æ|)úERy#u•ù#2ÈQÀ+êÒ"Þ8ümT¯°î‘ü’U¯!oo±¹ =‹é u1B¿ìþO_œ¶!òGL§Ù¿¾ÿñ"pÙ¹éÖ1=M*s#xÿ|\Óp·’›Á­Žüñaë_ ¤6-lzh_TfoºIÁ!Î%3Ðþfæ™XfŒ;àƒÚù“ñ÷N ù2Q[ KNçì»Ê.²ƒÀ°}~5ÇÙèxv(è1 Z:ùãc®ãψ³ß"9\Ä9­O}i£­k?¶ayº xxÁ~Owi¼øbú‹v!ü gØ*õ)º1xPï> ûGÕv.ÚÈÁýÏ*7›¾¢Úèá´ÊX,˜?®ÑÏp9=¨e¦…ï]ÿ*©H¿S઻³)[pÏÿó«Vü-~•€ŽíCÌÀßO9KQ4»ëëï> Ôr-øœi‚ã)CYQw˜;3àë%P½¨| Êü;êu¢bàÖ@äœæ³P*v?²€4Ÿò:¤£@’o‚Ÿ>ƒ'ìM¥m»êTºw:øD×2u<ð#W¨ë—<sçØÈ=àc szÞ„#­ Ýì?}—ÆÁ-¯åÉ\tyHgƒëï ß¡2fÖ[ü(íV²_C)’óJ¾ŠšŸóBºG•øø‘V6ʺMÒËa.* ‘?ZÂÿ…»ÍK9±}Íõ7êepÏØvÈhqÁ˜ ¼é'x“L`Щõ÷ <Ç·¸¤|,³ƒû×NÀ{?CD…ÿØë,}­{¸×1^7`´5ã]`ì—|—3Êù ¦öÐqPè*ZäÈ#Eä7F?6@ëîóÞŠ”Ƽ~ÿñ›’3óyœÝJÈ>éy/ÿ,Ëe¸Tå&²EiM &-•ƒàIÍ ‡ÀàêvN,3ÑÆÜöÕº{Iœˆî<*ŽzÏ(%8~Œªr%¨ie},Oy¹¬D:ꢵtˆ¹Xb!¤Ñ§¼ž»òx&äx—ÛWO@sJ›ÝàÇU$™9œä]À_K5=¤)uHþ§Fñê)å×ë²] ky‰¡91› oš÷?âþùç€É gÖWBþã¿ø{OÖÆÐ÷àÈ]ç}Š©ô.h™Ugp?í!+)_ÃO CF^NQBÜÿhmºÛOqÍvŽÔ§Q’«kä„ô*x1E‹zµ¼àÛ·:E>òŠêNxÌúw¹‘X6Ñua^͘üÿ{u:9½C<9×Í Û*Po¿^ž;»­L?“ÖÜ jȲ@mw ÛÀMéÖtþ ú j‡YL7›™¾¤h4È^q3šTn?ç‚ék÷™¹&£™æöú v.@þhïYƒæø«öYþpŠ›ÏáYŸÛ¥vµýÎ~Æûç œMND;šõòã$(X,®Du0ÆzB Ïc tÀ¯…ÈŸÙOÂP±°™lÎÚÁÈÛðósƒü˜BAüˆ˜·Ak•êbÄ1ý†Ï¯®YK„Qè!ÿ/…Kª×=^Y¹8j-‡ŠÍ¤Êy]Ð?›ã縉Ù|ƒ¼ÑŸÆáÚ›‹Ä²4ø$VJ°£—úûƒŸ•}ÜIk\sz¥ô9¹,BkÙø/ë%t"¸‹©F—ïT#¶âŠÁû×ÁÆõ¨×KûhK]«ÍtžÄÑøšT_ð*QYʼn‘b‡xþª«“Ù줜ücxçDÍu Z½ ò¬‡¾ßÔ¨Þ?ú‡Æñêê-9¢4»DÒ4¨ÒÇÑ„ÇÀoö±¥_¶ï€³Ïäé†k55ø±•*ËU°l¼6й’Jûê}äMÔ‡ZUI<ðh"÷Ѧ2ŠbòEêˆò%¯¢p!òGWøâ¸Ô U.w´ÄóèDÙ.Oå¶äö&k5¯ºwKóz t‹Dô è ©&)õ<ÜÕ›Wó$áNÿ‘ýÏK9½œ¶!øÑì_~u7pÃyá1£L&sßñW«\hìvsë»ÉÜΣÀ‡}~õk ij“Cñ£ÓwöºÛ$r;§LGûüzn3ÌíÿAíœ~4£ø8?ƒázGÚ+öŽ“ÅDƒŠ~J‹ÁÁ6ɦŠËœÃ©ŽƒwîKci%Eæ²”—úØÞIAËROZc[ϦCÅ"f†¹hÇÑehÜ6$“H1“@“'T‘C "Õ~ŠÜ4“Â…aý«RÎY{ßFo\8Ð…Ôã<3ô+}Ĺ ¤[ÈaÿùYÐl´ø½ó?™Î8BÿNðy´-;\ü øÁ𢃸!Wä]PŒð£+Ðæ¡É‘ìn§Ê;jþU½dw ßê¿ «s6ÒmZÀÙi"-BÅph£¿ßì"œ­²8êïÀåL&´uð{8L´ ôé>¡öPü™d8)O t6õ×d­ÉeØŸáxG^’P ä“¡ðãVàœ»ÐN ÇÔ¼(Æ)x-¨8¢skxïI Àeä³àÇ4®ë êúüxN…ÌgÅõŠºuì7Ȩéy5€Ï6¼g´ŸBþˆ)+äð#¾\âêMü»üŸr>¸ûÉ<›“pÛÒÜy£^~w¿íè?-*\Fþ8 †¯ãò'åµRCS TPE))ŸÊ2p3'Ï‚:?ðwÛÅÈÙï¬x­;¸ÚÎ8“räïÈ>‘ù9gïäŠn«#ñ«¤{\ùã$BjüZÂwàÝ×Ð,Šgƽþ<°Mnߦ›TÇr6^Ãe‘Œ,ÜŽ~44RÈYÙʃ%‘fÃ1BÎk vÅñÜŒcØ\/ë¥sR¸?RT¹KùyœAc´m?ÿ©üÅ+d9¸Q´¿?]R€uõ,Ïãa<†ÃƒFh8ÊÞ{Ù¶öNY³†Ò²ÿŒÅ|NCIx·’šzTûQRëu}¬—u¯Z¯*ò´µ ¼øüWã…ü5 º¶½­û²}‡œý&ÜHG¸þ´¬ÿ½Á¢:W;€g“nëÞ$½¨y!åÌçïµ›L >ßΟÏÅÓ(Iˆùç­ÌH #þkx¦–Ô_Rzƒu3ŽXÕ Ö7ÚÑkâ=ÑŒ^w†üQM_Hpê®Åí6®ð9ðt#Í¡_vÿ§¯âNg§ÞËžIë´wÿK~< Üvž¸5ÀDæJpÙš@S·[ÅíVw\çÈûK„xí d7_۔ȑ¨“Ýç¦6QÝ.ÎYd’cfªÉfƹÃ>¨“LT¨[LäÃþD²tÍIg>2zÈ sìPÏd cþXä|iFþXˆó·~ú .Cy¨ƒíO}žÀŸ7í?¿3L÷Ïs™ñæŠJ7p5¯ƒ_ƒÒÁï×à{×ÏWÈ`_A¹ÃQ¸÷ò£®s7xÿ£}Œü?N¿e„‹?HŸq)hóº…ê50Š{€y[ß;ÿ<‰JG©;¨xŽÖR>šŸ>/×þ±)Wç8âH ËѾûQíòwÞ??¨é†ƒÎOE›ÊÑÈùåʯ߾•Ê÷àGB›äe½ÔÎGîÊÍyø(ò+Î].!ÇÀµ']΃G‘¶šë"0n¡DÑ ÚN¯ð"îÆ£ÙÏ!ê<àµõ³™­”‰ï㜭æôø¿Ñ¼C*èY­¨ƒ$?þ|®ô7Mà•Ó+rI¢‹ÍÂQÑ®­8ûý©±ma_ÝÕ;åì00z›Â-æâGö25“p^]âï»%‡¤èñ@'ƒKÙôŒ?ÛE×ðXí*³p5ßuÚÕl ñüÕ9§Šl_—ràÚ˜(å½eºAöJ4[4o‚öòÊy{1½:[b{ÕQµŒ¤?zÐàGyZ€q;ؼš1ùÿ÷Êë|ãÔ ÁžÿzýÄ'è×ûnYÓÃÄ0;ƒÏp®€ßlâ–?ª:O‘(>äu·óUÝL0Ú™tÉc-†“XռбYÿ¢‡´ ª‡@?ó^~Tv>§»6<¼LT.È‹0KS" ­ @QÖÀÙŸ¢ Ô Y¡¥ïÝ0µ n ¿ Fä!û£F¸Ö¡pgPñÚ§¾…VÃm÷§˜vÏ;óÇõ@7að“¤ÚTô-FA£8òÑœÈÿ´ˆK°Ç{À§]x¯oð]íý=ºl.ã…R±¿Sׯ»Spýöh_sF?¢ßs7ºcRÙ}Ág¥j!9AzZ'?ÒÓPøq?pÝ]ܰ%Ô<'çÕÔg7 ”³6äÅü(w ~y1*¦ãŸÁ™9Šì‰›ŸßÚÿ£‚Ûytø±šÛ‡££•ÀGœXÉùR·KêàêèŸËaäˆÐçÝÐæåPòGnlC­)Ï£t!Ö/ifüOÔ"qg§Š4RÊx t«ìD¶Ê¦1½¹:Ükàeô¢y•u•¤÷²éeÉ, õ6üÒn›Œ Ñp\Ý=ÍÔú/¸o´; õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run001/bold_25mm.nii.gz000066400000000000000000003010001323370031300254040ustar00rootroot00000000000000‹¤½wxUÕó.>³öÙkÒ{BzBB½„„ÐBï„*½7‘Þ{AªRA:ˆ 6{Eì{Ç‚XèRô÷Î$ŸûýÝ?îóÜç¹ä!9gŸ½W™5ó®wfÍZ§ÓÿÅ¿I Kåñ3“Xþ÷ŠÐ¿ ^!:Þôþ§ÿï÷nŽ{š”½)ÿª­U·ùÕkþß´ëÿíßÿôã¿mšÕŒè§×Kÿíî”ëòOú$ÿäóÿþ“kÿÿ÷¥ÿÆU©¥£i9M¡é´€b(•Ѝ) OÁT…’ù6•P$…Ðú„*ñOFAt™:ÒAÊç(¼{žà"¾ƒ£!ßfÔ–kÑÜD•é=ŠçúŠrFÒIjÏQJ0Õ£a´ºàîpKßÓêF (gêBOáuÊÉ4?ò}v®I0õÍ£&÷?DY<ÊtåT¼>ÏoÒót‚#ðÄ-zÍ„rkây¶æeq(^Oዦ»÷;ÚŠ:ï¡0~ ¥çP'èH_Œ¿™¨kÍ ¯¨=åÓÝtž¦ò«”NÔ˜ÏúWÍJ® ), ½|-°˜ZÐ#èá9Ž0G9÷{<„ú‘å TH}h m¥½”Bu!±”Ê ©6êZDë)’×¢¯u Õ6Ô’iA•ðY!Õ§\È£%$už—ði¼öùHà¦mbŸµPWªÆõ][wÝ,£îÔÅþÂÌÓ½ûQ>q ŒÑÝÔ­oH÷bôRUj…:.Ñ5€ú«@æOÓ|êM Ð󿔆Ï+Ó³Ôˆšàú¿*KÝåí½v–_ŸÖЛéÖÙ…6ÀQf‹ýÓ­p»üü0ßtÄ>ãf¸vü ýf(pÙ»f£Ki3Çó$ÊF‰™´’©Nã¨-zY-¯Ÿ‡ ‘tȵ­¦Îö*zƒ&S1F~­¿ÛfÚ7ý1´“zºïíçÎw«)˜/º]Î}çÎRïrcÜ;×­æ<DZ3Ü1ûפ|ÄV¶§©'úÛ—ŽrK´&ýéY.F»ŠÐϱø==Ì…N5¤£´ 툖.!k«Û ®D5è‹qùî.7írEnûׂ.¾nÏ»7ÊÍ¢vt»fk9ç5¥Æ´\à7S‚Ò3¡Á;(P ã8eÏD}ѯT~¢ªÛÅСvÔ š É ¦A°‹0XÕbZn¾ „NÆÒPšåš»6б…Qþ“;ð*ŽjŠP,3–’QwÔÍ­JÓèWÜ‹OÚÁ"ß^D≠¨#ú ŽÆß$ÜðJÖ;åŽ0<•Žw¡ZN&Z[×ãpWÊÏÀ•PÜ™'ä'?9ø¤î ÁÓñxªåHë’QV ~Êã$î Æ«r¸#ï#Èáu$~Rðl>‹Âqx.XŸÍ>Fá¾P”™…wQ~(ê͵Ü‚ÒSñ«¯ãГxÜ/¶†kÒƒ0¼^´ºv^7„v6¤àzuàÃHFZ=ØR…¿BK‚é"ôãªÅ"£‡é0WàΆ§S®‹™£<î© |Ë^ FÝEßPgn…ëa°¶´W¤¿é[úuÅ•áÕtXÛÓ‚rͧ< ½¢ñ&ÉT^E¡¿{¡Ç½Í ŽC]gùz¾d‘Y9>fÊqS#òJãÉ^ðJz9•/™!Þ%•ôÔP_ƒôª§æÀ¦úáo24m>ùmÏ„ÞýBù-ȯ:ñoþi³ˆ«–Ñ£ìü%@˜CÔŽ­ 3Âròé 4·'…r:0g0bZX˜Ð²ÌæyлŠ@Ém@ýMJØnÜ_¯jBÅ»*‚Œô.]åéü/0ì=¸e[Ù'ì۰ƺ\äz¹f1žëfÿäh¾wîbn¦xU›mB÷Ñl C] ¡àÕßÐî;Qþ0ŒÐÜÕ†ž@*á§"½Š±lMoÓ ´$#Ü9P5ÇϧÍ4ÔÖp«ìj{ƒ*˜Mö ·Èmõ/+î ÚmŸuS]W¾H¿˜@à”wÙ4P\ ¼šˆR‹1ÖûéQüûl9vÂïBèKWÔÑذ†ÖB&‹é8­´q¿Ñ&Û=þpŒÊp÷£ýÖyî^Šá?Ý÷·ûÀ£?i¿›üœí¶óAž ¼šç^µïr-ãWmû;¸+þ¿ÄL}hñŒfÌ»-Qo.j© <­ ôè…÷/biŽÑI¦ûÉØlàU Üû0²ÈuqÓ¡ñå]k·Ýݲ µWì%7Àt³]?z䪺ۦRÞF!K¦J¯ œÙƒQ¯ˆR*£æ´Z”›½ùØ,XT8ÝŸÅ@ÿ Qû ŒEìkm2ߺB³#QÛ”_¢X3†¦ø‡Ý¡?(Åñ³h}ô< 2 )Ø%3 Xm%ÂçÒ€ S2JN$±ŠE¬Lk UûçP„¼J„õGªåWŸ%ëÝ©«Ê(?W¯2pWîIC)ixŒw‚š9ú7¿±âñÚâ8ÚW?á(?5‡£Ê).'âðÇxH& õ„àµô¦.E)†ÇB’éx* 5¤B£ñ[0*wçàž`Ü¥OGàU¤ö!UÛV3³ôCx&³EC [IC½u¨2ŸƒU„ãžqt–2ù;¼¡Ÿ1&oSMp˜Pz€žaÃÝ€W1x²5øÈt­­2´³ 7QìšÝíÍMqwyØÎ0:‹ Ãϸþ3´\ð!Fu*ð*ïÚS5óæî0´n$øUU³Åz  îk†³Hú¿M_EâzmÐÜX´-—‡{ìå²´y_¿º¤óÂ! G*Œ»ã E3 ?½¡Oñ°¼Õ˜ù>FƯ~';†‘ªGüÿƒY \jD;Ì?VáÕôð*‡›mœ=ºŠRzA·kûÒn|žüéYVæY@´dÔ´‰Rø~ô­ê+•åCêBë¡–*qSÌ“—€Wç ¿Ò“K¶¹}Þ¾òês]×Ù‘wZ<ľÅWh†·O€ý#ÁÚARÅâ<”Rc2Úü,wÊ^1 ÖÔ£Û suZv5w¤!õΰ†xê³“í¿–>ÔVq íJ[ŽÍû±[évú7y3¯ ZkŸp“]KÔ~Éüåñn!-7¯ÆA¿›£G05ÉýœUÑφÎÇhIÚX´Z‚6Í£×1OBËÖùël¸}Ô‰ v?ÃÝJð«_Üwݽ~u–uS€WsÝ~‚'ØývŽûоÍÕèa~Xw=èvñ2w3…Ðý¨YðªåW2ÔV~%xÕ„^†Ð üª"ðêO¿’ME)•iê¬çÚ¹i]œkfwÃöG‹Ùs®›¼*¡Ÿ½›¶²»bŠÑŸ‡É œ6íУº˜›öPç‚_å æŽèYcå4Óñ™Ï]¡yÑŠâ] c!xWÚ1}€>/¢‡Íþ$þÂpàUM× ZŽ;¦ù¯(¿Š@‹ˆÉýI(s"ìY°®2ÀÙÐá(´n"æ­;”}¤âÎ$ÕòEŠ$< »‹Ç3)Ê¢"€ƒ_ÄÆcPfªbA$Ư!P$‹ÂMRp=O z¤àÎ0X¬´!x¡5_JÁç¡@#)9w;\Ïĵ êß:ÅÐ4Ômñ:£5D™“}ƒWRR¨>—¡¿¯¤Öe‰áŠ“‚ž!Úîx´)Fqø1xËaW‚Ôía?£)‚v°L¤ü‰°Îê|JkþÚò,,ZxÑ:züª fæƒ_Õ€Ö ›ËgIàbÜ]W¾/i§¼®)d¾%¨y/®÷ñx·ú>\ EùU5ó:ÖÖ 2&x%Xô(<«)f< ¦á/àƒüÄÂYÃùsÄÍiQàtCÁ¯2Y°n_1%Þe‘»1¿GóGèKÝmî¢3´°í¥èÛǵd\=AÓág¦@k¯N˜¸­YM÷sª¿ö±‹Š9`ÒÌ¢göǵrÐÜÖ°‡ðnv ”|XÒ>`Ô4XL&8Î&Èa$Ú²í(X Ž•OÂÛŠðº¸uœ.òh>[?OÿØ–ö(øU/ªÃõ\_â-„U ·ßñ_4Á[]cŸ}Jk û°ZÜeþ½ 介žFF?ÂvÄH‚u@oŽÀÿ쫆OH°sìD¿!­¤Q¶‚[f—¯bÌN»Í=évû·x?´Ø>îfº.|üêŠ÷—ç{ Ðöhðj ¬²%ts'ì¹:ƹ'úPu6@{^F¥!«£¥«¯÷ ŸcÑãdZã?`ì’ÉLC÷£ã!µtÛO¶)\òØë¢\ž \ªGÑ®±{Èým…¥½fÏ`ŽXäî¿: ~UÏ]2E(åa*°#J© ©îƒÎeÁŠ+A‹zb®­¯˜3mø½OK0½ Ú%üª üà~@$ñ“æÓNs)ÐwG¢ý#Q~gõÙÆQÿ½@hp”zü Â$î0T±+½¼JRnÖ ò¼‰º£•m…irOšòŸhÅCA¨,\ UOEUœ"N4ú×qÊsšàu¦>KV%¶“HPÏ-Nq#¥Ì¯ŒÇ'ñj™A¸ £ ÁÝqZg„"\¤>¤ØUA9By¼‹*ÔQävSõ¦ë)ŠWÂB‚¯’m…Ï%àj¤Þ§ø¥}ÙI¯€#åÞû™ 饢†j`Hó…p¹Сª|V÷$lâ-X´`ÝVú€™±ô¥€pf‰qåÒ§ð¿ᎠÌõ_Rn¨=)‚ÀH•ú€ßÓP£àÛŒõh ÄšŠ©®y‰h,kÉ2ÕÌN#|ì0¤áf$F¬<æÏh ¼B÷(¾ÏܦöFžÍ属õ²Yôdß4½¼?”)?ŒÚ²ø}”X 5NÀ¼ß\2Zµvöþ¦¢å?ÓLð«, W¿çfÖ£-†5¯å«»¡;©Ç)^AΩ÷ÂL› Ž1¹‹¶£ÄZz_eøƒÕ0ö3èa¼:Þ³|WèYUÔ]vÕòªŒÿM!Ëx,¦2>¸`[ÀÿyåÕå×ÓÝ„?ØžúØ÷WS½•qüj8úÓ=hok®ÕDÉ“1»_/€šG)¿ |ÚƒÖe£Ö, HK´â9ØT{ØAð*ÎŽµSýF@Ÿ1àWËì|ëØ™}ö1÷žÛæxäÞ ]ö97õ^]27½àWEÅíð£yЩz±òÍ&wU~ղɇ—Û Ú\½\A«`¹+éÅ«DÚä/³‘v—?3å(wÖ~é²Ü Hé¦[ín¸ÏÝyº@ëÁq–ÙIî~ xµÕ.¿úÌh¿~õÆP<úǹ7¼Ó4”Þ·mÉGýcð{:Z• |nD/¡m- áY@Í¿ýL[‰k+^%º\àÕ\àZüêðªd÷žýà t³Ý|Ì?yÿØF)ï¢ðÀ_¦;zY²?@ðÓÑ¿î¸oô¥"ôs&>ý NÑÓ Ÿ†*_‡1¢~Íb:dNúâžX”3ÉUq]ÕGwúß:ãj<Æò–ÆÃÕ/+„Ô²ðdà$ú„:ãuiüêNxKÃÑêò˜—¾ª B­ÑÀ«BŒ÷´0÷T1Ÿrõt‡gj™ÝF8ánŒÖ$àU&®ÿÁ_¡ÍçÔ-ÏóÇMMÊÌàIyÔœÊÿ˜þÞŸŠë0åò¨©fÎYyaòY°¼hßû¨½ú}=ùDýÁB~xu/xTpϹìß§¼©9G›D³—Å"ÿ‹¼ÊA)Á e$Ãb{ƒgU¿ÊEù³i¸ÖR|ÚuvBÙ¨?OjÀSyqsXö5žÂ¿£Wioà¼mk_²ïÀ"kq¡ëáΚ»a›í÷|š¦€_Õ¤a ƒ`%mÁ¯ŠÀgCòù@†)˜}¯âÞþ(w$d9 3s{`BkŒºÌ®¯ãU{àÕÇx2£ßüj¦á×Gakî±Á ~µß½è¶ÃÜÁ ƒv½f¸¶ð7§= \4€{›h ÇñTô±%ÆìQXp©×Sܘ]DoB&iŠÍKÀ`û¡5o`Fª…zï÷WÙL{ÀFOÓ÷+üÁ4·šbùWw³A¹ŸÉò6ð«åv²[É/ð(û8<Ã÷í¸ mám†ý 2l4xœ‡˜f¨¿=ì·*Æ©jËC-u`ã¥j)?}k1ÎÅH_ò“l.Wj>äB]]x~SñY¨ëàö¹?í0ŒÜ;ö;×þïÝÙo¼¿m-àU>f³ÝŠžwT¼‰Þ†¢-9ÐòžQ‰_I´x2j¼ˆ–ˆ¥5Ðu—îjkõQû à‹DqÒnó1ø•Ä1ú ÷Ù®ÚÚší PæÖZðê¢ô0””ŽwcaÅѸ¿jˆãt¼ƒ&M§D]AùL„F±S•_E(*ˆï—ŽOCA3Ç¢5z.mѨPEÖ,mgÆ.IÙøwÉ¿ S¿¬Û„ï §IT R$ÉA¿ËÁîR”•ר{„²¥x°«`Å«hå{ò:]£r‘Ê\$"QQñ6õKä*Tãöé¨+^cb‚™Šê{&Qœ¾{ò܌іžöÀL‚­ÊæÁÿ„ü%º?Œ>§$¾¦xøÆèç²õÁûé-àÕ4×x{c0ö¹¸¿´ç+ð±eX÷ æÚß"pڽБÉ2XΛÐdAý¹@ƒYðD*Í©¼y•ûé C'ó=癬lŽ6cX¸éü m¤÷8w•ç­ÆrK#œ­"ßåÝ2),+ 3ø†éæ]Ô8äXM Ù¡w ÐË~x•Þ¨í“HÒx ñÀ«8Ø!áŸ2‹0ׇl–Á\Îò(Õä4ã™ùÜúxZÖœ¯Šò«á°‹wè¡øƒ³ ƒlðÿµT×+:–àî–§alMáp¸£¤v”|3 sA%”ø`àšíb_±KÑʆðº_Í@èý ûÿ~µõðÖaÐ×¶@ES´±9¼™ðoéøÕ@Ÿ^¥iÀ«;Á¯:C*c´ÅlÔ†^@oÛ ‡ Ô9p²_mmÓÝ.»Á2‡šÃvµ»~u“÷ð Aìkà½0öWMHÀN©m3üÁž‰r[AŠ;16¹èÿ(7#Y-~½ÍTÇxÏ„|îì0 ³b2­ò÷Ú4û†ß ã=È}k¿vAnFñ/øa9AÝ9 ò¼Þkg¸ûÀ¯î²»Á¯Þ±‡áyoç·lºý}oŠ:žæn¦ Pª3°± ô©X×_G¥¦¡ÞvCzsj#ŒI06ÜÖ´i\÷¼êâ]¡ㆡÅQðs·m;åWg]G·ØuÈýæÝ°-ÜeÓuí¡[ÞyÓ£UóÁƒ˜9sÀLr¡E½A1¶1èeÌ^=Oêbt[«ïàðéh°«‘j¥³i¿9è¦>κË5s4Ú=æøGƒñlæžkLU]«JûIj×1èábp†Dem1fpwµã]c WûŠ/ãWâÊšž`NhYü*Ny‘¬ª ªWÐwñ(¿ŽâU$~§ctÒµ$‰e¥èÊ} JHEO#•åÄjÜ[8]zm9ŠD‘ø¼tÍPx”Ô!¨WN#aâ•FiT^®ÖÔž‡èjg"ì#R}Þ4¼OÁu鯬E óW~•¡«}QÊ4sËVgAâk1¸ò1Ú£ Û$\¯[Œ†L¢ñô4ºN•ø7EÊ˘G_¦ú,>ï~zŠkñŸµ ¬¹s©¬!æÒ°³–ºÚ9èÖ†;*Žåc´C»Dæá¾ŠQ‹ÃÓ +£ÀPÄ nKÙÀ«ÁŠ3wš¦’Ùb„+>Ši†€_EÐ_ð7з,3I4¿kðJäœÈƒ½4øƒ‚“Óøªi ¼þ¼Ú”„ö')¿šýBw•xûtÁVhØ8ú÷6$Wš¯¾3K¹1^¯§\ÕŸëßMM¸²±f%CâH“Ñ·Ì×õ!µÁÀăí~ÃS ál ã ûC°œf!.¦ÊÔ“hŸúqâ±ÜæÅ|~…X×ξoÃês#×Ë]3«ï]í|‘Özkðä¿ôèn‰Zí*èzíÕTø²>ض:üj ÚÔü¢2J³¶xò(üÁŽx—A}™v¥]àÁ“i«¹Ãv5œdžµGÝ»n‡ÿ;ïå·ƒ^‚?8üêýeþñBçáI©÷q*GÉۛ͡Á8ê MÕÇmȺ\_ô¿3®¯€ú¢ï¢¥•a!+ýíÀ«×üáà£ÜoöggÜÏ!A»Üm·ÝÝ„dw¹n‹]äÖñ3<Þî´ËÀ¯>ÂÈïåW¯º¡–:ÄÝM1,LÖ]³À4ë£ç¹Csp’ÚÇæÀŠ7 Ù’ÿ‘¶õ¬DÊsé#ëê¹;á6¥0Wßíu¾y½m¯ƒ_ÍqËPâžu Ü “…{¶Òï¬iƒù¾&4xüÁJºj6-Y-Œ˜…1P|B’•š^ª{Í kƒi Æu–ÑVóŸ@oÊ §M®¿ë;‹Sã? ?QðJV€ l™Ó“ºC¡©¥^—nk¬'X8 OÍPˆÓXU„Æ ’t®Ô“•¡¤)J‚u'+DâUzuòL*J’8«d>Zej´[xS>« ¾R¢–®Ø%¾^b™?­~T9õ¡„ÅUÐx—ĵâ4~UN±+MWõ‚¯Ä:ÂÓbt¤Ò5>–£ÞiEu§)Ã‹Ó †Í®U܆•®H‰9ïnÈ|^%CÚÓ0 ÆsÁÂݸwÒþO&«ð)EÙßñù~ªÍ‚“»èsäm &Q,H[—­ Žv5âvêÝŠ¿y#%}Ëy^ãÁ4ã9³ŠÄÕ[’d8 P¹ 5CM®ÙfdÜ÷S7£Yð÷pe=½Îo,ÇÂlo“x€—ìe)~Îà˦л¥sÐVhS%´_xqÔ|ìº%$ ñö)ðJ‹1NÓé4Íãסõ¨_ð¿¿*À'Ëh§_µS(æšæ:ßËâi\C‹¯„E ÚnžeÁfîÀLž ~•‡Q˜þVÄë m€W}à­U†Ô·o¤ù ’õ61ñ2¸Àz*à»ö]ûžð?àUÌï ñT7û,ðj±·Ï ×áðK0ZÁp§ûê£ÔIðPoB¾}0rã åIhUS°çÀlÔõ¼ú¤¯Èêú˜¼J¶W-€æ#le÷¸Ýn\ÁÝo~ ”h©m‡'Ú^ùÀíï ô~Jœê_ÌÜ55IÖ~†@“Â5 ¡3i&”d”} ~J¨æ~%j*Yu½‚F–„w%á3É–ˆ,óï*¨Ÿ•ŠòÊÖcPf® ’IR•=Eáw®&+Æé«˜²l†¨²ü® 娅G ŒòÊBÁ'ã”Ek$>Ï&¨…—ÇßlŒL¬bx¬ÆÓ4Ú•‰cu2´l}°¯¢3õñ)Ó”åDL…AcðSŒ„e¥â®Ú`½A7¥œIôæ”3ŠE§1bÇáû‰'OåQ­9rMàNÑòóÀÇ2Ëâí£1ët’ Ç+‚6í‡w ­ž ðYê§,sz2Z/RoI7ù î¡ëCMàÕÃFÊÙK¡ÜÅôfaˆçù8<¼Õ'µ|ɸÙfñ0/º ¯&óYSìÒ9e3£ i´ƒ&ÎF/ûóѻåøäcÔžL¹Nùe X ñeÿü¾˜£WÑN.ñÇ@+7SKnanñZ®½½´L‡ö+Ý-‹‡­vW¼šM‡4Ö@*[à³uÄõnšùÔ÷T…âu}hõ›0›Àý WGøÕöàN7sƒÜ³ò.±§Ápy«¡k†Û€Å.BY­!ó‡Àޱ:£~‡¦÷3kŠÏŸ£‰Ö?WD}ê{÷3’|†Z¸Ö;m—Ùù~-HRò¯ž´ÚëeöÚ-À«mþI~˜¿ Úa_q3\sÔþ£¹êNÁlÿh/ðêNè‰ð«Géqhß@ B}ô©·1}†–äA“ªèlØEãWÓ!“ ´ØßjSí{þHhBo÷£ýÍÀ¯â8.h«3AkÜÏô=޳ÅÎwëù O·OãÕ‡ö+®HóQ›mÏkîYGÅ«–Ó¾P.Ý‹šáïHHC¼ñjšö¤®}ÜG±¶Žê寢E#ÜŒE”kåv»¿­p çíO’•åfaV;ᕇÏÈ^êÚE¸b:hls0æö0x•2܉Q…1ÌÂÈÏ€Å\Ãsáš…¯(¦ëìc ÷±j§ i»ù$ÐOÙÃ0ÚãZ»ÖsK#üíà]²–-ù¢O¡ý¡ñ©ûÉVO«:Pš9UãëmñÄ)*ñ&j|¬_òr·“‡òÜ+„5׃NJt?¾M*7×øÛTú–Ú‘ˆ?.™{kL2ãû ¼“aŠÜ£¡éó¡"ë6ä›W€W"«þ¦º© ¼’ØÞ.x{ÝW‚³çø¼˜?Xbq>m‚¹ØÈ:c÷^.‹=“Oš&ÞOº~ºˆÑ>W,F¥3zØ ¶›=h mž‹öI6ôl:~õ4¤XŸ*óÿ'szÐ’Y̵Wã¡§ÍùNdvpŒ³Ç#Á`ÊCsÛAb£€û»PN ”½ \nšF&€6åÍ(¥l¬4®2ªI ·÷VƒD^&Ïlå_”±=qí1øƒÝ¨5øU_wÅ,Çë"àÕ9Z¼Ê§«(í.h~{Hª-Z7%ÂN¦ÂŸý:,>ç8`Èl´ªöÚ#-á+°ð@ï4ê§xµÈÎöëQî²î€Ý`oPºÙa¸—ÝÿüÁsA÷Ú/ÜlׂoÐ ó§¸j>¥0OMA%»ëX\UñZ!¹jèe>KÐ1õÕ»Z„ÖÝ]¶>EÓým6þíKá¾±¿‚_­ÂØþíÖ¸¿ÜSîf‚à>›À¯¶óžhŸ±÷¸ì8‡Öñð«ó(»1ðààU3Ø´D]3€WÅ@“JÀ“èVMØCk´ô9Íowk) x•ÔË¡÷\(ðjp©üªµ{Ü·Ãñä«öŒëé&¹ùùÏžçê8ëU¼wÐ ½®èQÔýfòšÐá”Ý0 5—r*Þÿ¥ñÞ8´®>¤ÜEçèzÐù¾eëPKi¿ù>Ð_}´q´Åut-Ô׺“Æ_õR,¨F7À…³OÒQÎh謬ýU‚Ý…p¢úDmÁ .hþ|˜f]&k‰ÁŠ8ij×3W†ª\+U¹N¸ú…ê¥Åkô½P×ÃÕßJ…SÕÆ3ñ.M‘0Jñ1U9Q˜>¯±z§ù\¹è¡Õ<„-½¼r¡(eUåÔÛKPì’<ÌDÍ S¶%+—²ú¦¹¦¸#IãE¥` š#«Zaê'Fin†DÌ€9ÓaU4‡¶ ¬i6ä+« 51ç•ã¶ÚǹÀ–(¾¤1½3ð*ž¦|=Fr>ðJrÉQ]0ªÚß,0× .Ö §/5ÓAî)€¥=+<^ó*ì¿ÚÊ?áý5z-pÓ¶´/Ùc’YÂÍ]/wÚܽï`/òÚ¼’Õî–ÀÎùºÚ×^è”R(5-º¥9¬µ!ÛÃx?zý¸® ¿llM/€)·îÇQÿ@°~U · á>`¯P¼yÚ^v¯~â]üLÐ{ÌMÔ|ÑwÍ9ÏΙFБm´žø^ô°tû0ô ƒ$ß2_ýÝúÚ7@‰,ÕÓîøÿл†øÝþF[Ѿï‡ÿÜӳ߸rî~Šá+nƒ»âÞp'a‰»À¯¶Û9n ?Î#í³v‘{Í~ʹ¨õ ›gC/›BÎÇùÓÚ}ÊÏ4A½¹èwþK¼]ö+’÷fƒ_…Út› ~•Ioº8—o{ÚæJÀ¯®ÚžÜÇö”ëçf¹ÉŠW¾«éÊy{|ˆë¦D3æ¢ÝüÁôUbv÷¨ÍK|£zÝ^yGCŒA{Œ‰ K= S`aæE?lΪŸ8˜6);¨O5†–øW÷®‹YçŒs)·©‰Q¬¤ì©ìò‚2¥”<³l?Í׊+‹EE)ŽDêŠ\¤r3‰¹gªý¦kîe˜úw±¥,Cc4š¢í™z¿ä<$(ê„*rUпвˆ{˜¶YÖ“•?ùʨ2`¯å$¨¬Ü)J=5ÉoQ|NVN=§LÈ%RùI"Æ)Y¹\¨®a Z Ö¥*^Ej½±Štáe~h¢fÁKé-ðU`=²²ÐsäHH<ÈH&+¨ˆÌ‹F˜¦†ÌÍUØNyÜÁôgÉÑÿ_£À«Ò5Á%àW­Œøò‘<ÅûÑdhnØ ð«bï’î_؉>5ãÓ@èúÌ‘ýÐÑÄe¨WòE Ò~#Y—²à:o.×òÞC»¹¾?-ß ìùÚ³‡eEî_pÃQ-ØÇ È6p©T<ÛCñê̶9˜Y·[®A}-t¾mì© ä¨2Š ñãà“+ù,øé?ôLÀ¸ªö)û9ZY—[ºîîW3,¥]v;Ë›§£ÒR[¨1‰®†Ê~œqô=—JÔ[üÁÕs; |;è€Ä(^^¶ÃH¿§ù¢˜›‰v²à¡¬6Çí³kì_” ¼Úî6=æÿÌûxUÐ|ûüÁVðF¿3&ð¯wÂb„6ÑZŒ¯¬÷IìæaŒ\r¨Ê´®É*Â`­pÇ&ȼ/êø­Ïiž·Í¶¯ú½i?õu'í—οªÈ×ÜzwÖu¿cÅÜaç¯ãQÀ«Åî˜ý±•Ÿ°™öô¬ÊÿŒ‡˜Ði‰_I=Ç«¹£6¼|az513< ´ÇýyG0êÍãêû+.¾ÞP7- Æ«ýîšíŽ»^·Ü`ð«9˜¹O¬å|Or{7Òmï’i)ÊzÝ6xU Á<ÔÜsvÚð$Ô™ÇíÔ¶†BÚÂh  éM‚®Î¦=æ[]Œ†Î¬tiŠW1Ã{ý‡ÝÔ[Ë£Û˜eª«?’ˆrf㊠Mmèl ® ™a‘EÜOsâÔÓ S{I*óùB5.žô¿"Ö)𣫹)šÃ©q¥XÝ‹PÊž$^•U¹ÏÒüö¸²6$ªç©ëƒqÕ—÷àH]ÃmÆMq§ø¹•À©ò¸H[7xД[*®æ£ü`k‚{£é5Øê`ÝÓ(+Þ3áWgk¾ñ2÷Ôµñ&È$˜]&\÷ÔTàž¦Kù§ù]ø ÇXæ•J¼üªÄH_’y¼÷·‘üö0ð«_LïosîÁ|Ô’lêêÜÔ õ5Á(4·_·±ÆhÏ€_= ‹+‚?xÝÿÝ,aÙ)<ÖñÕÀ|<±úòš‰3‡YFœÁ/ú_Uœ;–öÂneé æW• ”lXènJâ­è«ä3HKr¾ Ð ÉoÏ„¶ˆeÿÍ÷AÒõ(À‡ÿÚöö°ý¨×€›¹vî3%V³ ù-ôV¢·Á,†c®m§û×Bâ…ËÎ@„“t–ÛH9³ÂBÜUž€µ¦ËÞuzS3L_¼Ó¨™J%òv®ççc†csÁg6ÙÛmÚGÜón»ÿ;¸Íú -`[3\ øß‡&üê;Ó5™ódÍgýƒOj ¢¾l´®jÚÜÌSßw3¸Ê¿¯^Î\58ÒqXÙ`÷»ýÌY·†Rù&øÕY÷©»@±¼ßMv;íL·þàû¼á>°Ÿ—ůRìϺ§©'}Ä€WYÉ;PÿJÈCøÕ°ÀY®ÌFuÁ¯¶¡C ÷û)ÊÖ¶ÕPJ=:î¢d·ÍÆ8„¸¦¨ù–íƒ9☽äºO·ŒNyθ[FâëÈÓx{zÛœ¹4+¢ ÚÐü[rü#WM06mÔr%Ó¾+> ÓõAÉ—­qà´×œ Õ̧~´ÄUt- CÙ³xÕKcCu S/@v1e¾ÛµrÁ«•ÆIeù¢Ë1oõÖ¸N¢bîôP~•B¥'di *MדÿGŠÖÈ º›FP †fhƪ¸! (UW5>&9T¥û#”ÓdhÖE@cß••S…h?IÑÁWPøV)¿Š)ÛSNQ¬ž"¦ä3Ȫdºâd¢fˆ&+×JÂë4eK!ÊËuÕ1¢l• ZÛ¶ b0þÇàî|H4“k~UænÜEëšßíøK"Ù£ö(µÓ=zÐþ@²¾5öU\k â¤œpz"9cà‰ÔàV+kë:ˆ‘’UÖÀ´O 2.s Q¯â“d<Ñœþ`gF©7>Ã\â·ù!# t?eðxøƒ‰¿úü«r¼Û”`š^Fú ¼ 0^Ö4ù+ÓÍ;£ã» Ö{‹þƒ2[«†Ãâ†ÂÊ“à-Aû>¦åIOÓT~ mhJuøÿ¨y~_8ü&~xÕxÔ‹_19ðVÛC‡øÅ0ü–Õá°’ @ЊжèU'^¡kp€]‘üØUcÝ?ÓºW¢û“;¢î<´¡-½AÎl‡¯]ÏvGàÛòe ¹­ﮚ»aýíEþ“æ{«1â×ñYàUG6J&l}Œ[;XÅot 5´†.Œ‚L «-]ÌrµAÝÏÒº¦—D]W3í0¿$9ÑÖuëìzk8Ô²_¸Ýwñ,øƒ‡Ü8øƒ¿Óoð/z¿Ãl ÚÈUxôº)àÌ4rz@Íìé ˪ ߯^·vÎW¼X ~7ï¢i¦¿ ~Ù›¾`jw÷ýع¥”À^ÐZg‚þp§1/íw«À÷毎¯ŽÂ3Vwœ•Jt4p Hãöå1²P[õg‚ ¼q”vL‚ýÝ ‹’•„6g¦s=3g¤©c²5ÿªœÄHx¢éª±²_ùð+Îȸ—çÕæ*õC¹­—îÕV?qÿhjyߪ?¸óQ.ŸBÿ@ÇFa”úk¾h ̺ãÀk¦?'òQÕ˜>æ¿gÖ±œÔ²œæóh>ðšÃ·¸ŠYÌ’›~AYay®Š×ÐËUð+ãþžhY:ß%jUcÙÙÖ žƒd¤ËþÅÊ<$J[þà6þz}“þ²%öû1Jnà ]ÇÞThöxC×è>oêŠåNhËR”Õ8»uTÃO3Èó”îÁn²ÇÑó`ÍCt§_ ô¡"tî5 \gÌ _àÉJzï@¬]dÇú²‡òN[ä^¶+à&™'ì7:h·ÿoáýAOfºvÀ«ëæ{ï–÷'ðªP` ÇòXŒ³œŸ´xUøÑC׺é©DOë©DMq} t¢ä8f%ñœùÛl˜}Å^6Òýdvl†Zêü ¯ÝeøÅÛÝB·Å®vk17Œ·Ø•îH "mã·lð«ÞÀènt„G™v°éŽ˜û2€º²§´WNp‘3Sê¡¥/Ìð~%Ýð«Ùš˜ƒj¯*¸ð9gâÞXÍgð\/”òª ê >)gb\ð|×Ì]6rŽÖºî]^%¡=0ÜÀf(¿ê ~ÞG½w G­tm¾Ú×TÏy ÓÓ,ú¢EQ¿zÞ”óûªÅ÷^õ^‰ÿ5Vøoú¨ÿU£ø4$D±¡\¢†âIU°¼ÕŒÃ˜®ÆìÛO}™ÒŒÒÌñel&RqI¨4ç3Iãô቗“òÇäܬ¦êFk¼=V3$G+CýÇhƒ%h–C¬¶3FßIy¾âH²Æ¯B5Ç3V³Ïƒ4î§'ÎHÜ)KWƒ§ò ©È²ý5rÞO–âREõY“Ô_NÖ=8±º«'VÛª<'Z19JÛs/ôu d!+‹u ¹»õô³PYyçDn¡÷L;©Å·•—þVq³”úƒÇ¹¯fAÚ†t³Á ]—L§Á]êë~°£¦\¨ý“Ý0û =‚îwÒßÐó¾ºV8 œgæ~‰_µ†4–ïPùN6sLšyÄȸ<´èkz€_ÅÒUøm«‰0ÔXõÞ£b#øy•:zõ¼4õg²õÚ{§ÔçÞ%»÷ù?½Ö°qhg’ØT1Ðè.pGÙÉ7•NÐ,~ãŸó{ÿ³œ›@WVÐt.ïOÄù5æ|“h^`ÉZ¹‰g{ƒÝU‡ôǧ"Åjx¶;z˜Ã‹ wák€ì+€T`ò߹ê“(K+hbž”|2ÃW­‰÷®ÙvðîG‰Å\àz»³fžcOᎩÞ|àaÆdX‹œþ×3ÿ8Ø\1xÕc…<ã¾Ga5Õ4wã(ºjûω/Ü!c§ÙÑ~{Ý?ØÐ¶óì×”föÛ§ÜWn·ÿïà'ƒ–Ø-nüÁóàWAœ†?Ø3˽ÐÉš?–§ñ«jýÑh]5”^²| ÎA/«ÃwœQ¾sÓX Æè-÷°Ùö¨ßÏ ‚?ø‘‹^Åóuxe6è’» ¼Ú­ç3Ìukø^-soÚý@šƒü¹Í^•€cv ×ø.àUgH¼»žÇWŒk•5J6õÊX4noB+ -(~hçAú¯¸D×ÈvcqO¼îzþÕ@zÏÞt=ÏÓ¡§§=r €Wu0F[W—M úW 'Ál‘ì‘*…Hȼ)|ÞjYõ(Wã•b¥uÀ5{AÃQ͹ÀpEŽA@容ò•)´Ø1ÐIQ¡6Ðð°z˜bÅÕ0£—úƒÕ1]Væ"ñ«¾ô-Ð2AsÚc4J¥6^zÆ^˜æI%jC¸ZvNÙ¿8õ«©Ï&åKbª²3Á¨ ÊTB•ý$+{ŠT„ŠÕh{tÙ ẛ9B£äåÀ£B4Zž¬l©ôz¼z}AÊàbA$?!ã©¥Ê:½¬AFjT«Ūo¬Y¬é𻩙¤qêE—þOÖ¿˜-ÁšÐøU Ø0±÷Z˜ó‚àJùÓé]°›KÊ—NAÒÇà+J/ã¿`å"¥zð‹àgIl?3Dൺ}LáAɺ¤ÄǦ¤Ì‰ô;æéA*—Yí©°sY—lCx–ñ¦‰æ3È:ãÃäqWÓDsDÏòkÐÏ/YÖD‚9Ç{—ºÁÏ[Ôß«î%²ì­žÈ>ðê´Êëf×¶|Fcˆ=Л&ÐÍvX+Ù‹B_BÓÓpõ |HÉg¨Eü£ÿ)üÁŠèÑêËÑþLèÜzªËw˜ŠæU®«Ù‹qí4ƪ1´{<ìa³F;ÒnàÕRõ&Ójðjh—¬$õ'ÈÄ35tÿ`!´¦¾î¹ÎkÁ_šA÷ÎÚNö1{í+æê®³ûÁÌDÆÙ÷øšàÝ ){ð&`œšã§j¤ç=HŽÃI`FWÜù2d:ý<¤9ªÂ¹%¿]âíßêŽÂ ðcìXð«:ð-†Ø|·èu‰‚Í6û‚{É-÷OòzÞ´Ñ>»n…±ÿÜ\÷làsSOWJ—s2Ï€UµÅü¸¨˜L Ée+&·€–Èž½ÖhÛ* ¾ÈîE´Pö~,÷ï³Ñö% xè0÷›}ߟ-TŽÿNPÐI÷+fÄ}ð„ïV¼z¯¦»WàÊùWÇl’ýNsCºÒ+àWm„)B¾™˜¿ZhfÇHr,^e£=Å@µ$çYdâ¯gËÛ:À«ªôøU%×ËÉÙå\k·Ãým;¡”7ì) ×d·£uÁ3ðÏê~œ dWMgëAÐÄ]”8@/ŒD>ꊀf÷‡]´Q”ý¥ÍÑF‰½Ô§…˜³ÇRéžÙgÌÏÒýh#h1ð°µæŒ£{üzŽ_Ê=OO¡]â_¤ëù 9ªû NSÓzu¶VzvK¨F«£ÕûŠP “hVšFƒ²ÊNŠÖÌøˆ²2«©)1«f¸#CÛ“®,,UùR²F¾=Ãõ¤† e¹qeg¼H¼½CÊ«¯Wºç:LÙVŒF÷£ÔOŒÖ˜~¬îª‘(»D«§¾_H™?_–Ï ;«+êŽâÒüöæ”FæR”9F¡çó0Ör^_‚ž×·#~q5ªÈÌm´üéô ¥ÂÞ¹E?§z,­x„>^ÍÑý8 q‡œ¶!ñ«Jô%Á›p<¾àWâÝÖÆü®H½Cud€úßs0>³aQ²°%ìw!w×8ÀSËDšÇ”_í¢nmÚêÙ˧+ëè =Ç&†+zR]Cü‡†z9^%–üÒñ|Ë´÷ÎhvÊ0ñü-ä( ~¼î€•¹¸)ðj˜uHi*ØÉL~Ac¹À«7Í4heS̉C9Ÿ ^Žv—‰3[¸2´ç:$× “Ý”S-6ÈYW°ÕîðÁRøŒHž¢X ÞŒ^·ÖÏ {Ýô”¨:Ã4‚Ô^Eoîá‹Ðœ›´9pÆ6·û`‘=ÁåêÂ’¾43e÷ðê-ðî…匟јaZ@R­i# Ë©›œ;ÿ[wVãõ3ðÅ^ãJ–îÁÿ¨Úxõ5jªŒÑï²Sí0?’ìmë»v¦½HåÍCö1·Þ=äÉy5üÁçÁušóŸô ð*xËÈ8;i5Gð=s8 Zðtn аäØòh£ûqr4ß ü²^Hï@ÂU¡{ ý{mº}Á*L[ñ*Ìm‚'ÿ³›êþqGÜÁ{Ü·ÒÎtëÔ|ÊÎpïÛo¸=ÄÏ€›ýŠ>Éi-/ñpžLà•¬E.Å5‰·„Œ¦`Òô”ë£ô žÿš‰ýåÛBÝï¼Ý…¸š®ƒ›¦ñöb÷°»m»Aæ¯Û_]ÁJÔð¥ž/zÕ¤BÒ‰çÁå’t=åa*ÔËÇ¬Ó #º×òt}0 sAõ ŠðYkÍmNÅ«Q[^@/™3Þz¶A/å²\c=íxÝç¿@¥ç0\¡'5~¦üj¤FÇdK/Ì‘iŠJÝvç`AÑeyš1ú?B½¼h½¡ëtñ)Ž×óE£42"UãVº0 º“©ÑñR%—圧k¾A”r³Xˇ–ñ«Ø²uF_™VŠ"Tˆæ Å)› *;1+ªl?NœúR!ŠQy˜?ôÌxͰO¥ÿž^ZzD°f0”ž‡©½ùï^ae©ôÜÔýt,oÉiÌm1~ki€be xE×ô|Ñèÿ{Ç×õL˜“£áJë6pÒ|ÑHúÔ¡QeyïP:7Öx×(ð—®ÜZy¦¬v<‹•œ1á3/ËEè©û­1Ç<¥-êD7y ÷R¼c*˜ õCÀ‘B¸‰éÎ2—ýÎïiγŒ]"zǨ½æhù<Ú«äå³°Ññ|Õ´ó¾U‰= mÌh¾oWÔTŒY²½žu?Zôä(û)Îi~{¬äGñ)ÿ ³”+ê97£¸ÀŸY ™ ¾÷ËJy€õ®¡¯­`›cðé6H]ònvS6O‡Õdàêj<ó jl¯úÛ]ñªt²™Îr²?ñ5ºÂkøgXþ-z0ð—meŸ±_ÉÙë\ àgàUWðŸ¯ùWøƒÅwÜS½v‰†5§›ªû¦åÄÉ_PB?\—SôŸ¿®ù’’+Y ý~[3â_„×+{\“hp Òο*εîE»Êž!k¶Û'Ý;n‡šãw‚¶OæºF|xuÒs/L#èÈZÅ–GÁB›¡¬ÇÔ¾º5äüôÆèUw:®¹ü²V¹ ÚuFë= w}Ô»Îßlí«þhð²‰îŒýÂE¹å@€Ën†»ív»Ëð‡ö»En›åvðažbØùî3àUeÚÂo¯NÁ†Û@Bos_ÓR¾CÏüZ¡g^HgMŒY.®—+žK¾Z%=ÿ*Õ6`Ùûý”Kp5àmË>°(×ÒÔøU_zÑ^^-q уž¿ºf$‹l7äɾË|0ßmг<=v ê–ü«Òx{]°ívjß1&m  â›ë~Õ±j³‹è}sA÷Ý$a¤îÇk£LgmõwEh”ç/ȳªú€2Ž×5þXôj!EqŠúròxû1Š‘º6¥¼'Aý¦Ò=ƒ eù ⯥)†”æ“ÊIαe1¡"=Ó/J÷ f(Ãï-[¹YŒr›Í쌣ÒÓß“•ó¿ŠVŒ VLˆÑ°Pe[±Šqš÷Uv¦C°ÆÛåd¹pÍ.Û!®mOÓ܉}%éé21ïŠQ6¼,Þž¬»†ÄGÞ Ý_­ù¢‰í(XðPåuÈðih»Äå¦É Ö|Q_ÿˆ1ùþ ´wW~%ø^¼’ÓR$6ž ìÉÓ=8r^ß»ÀŠb‹Æ°ª½ÔO‘ø.ú‰ž¦Òs'?¦è÷M„Àúoó ¾CcïS;Čdâï„'TÍ´Ñï›ø‹?s¹¨¹ ̼W¨¿ÿýM¿’ý8áðíþ0½óÚç=ðrûð)ÍŒéˆÞkæL 4q)4é3`E2ÚpžíaȬØãÿ³Z)þà ÎðÇb–Þ ^jrÍ7œ=šÚœL¾¥£¯z~鎪þhi/ЈìLºÚh~»œÚ‰:(^U‡Æ4‚,ªiäã#ºdø¶møpà²íh_¶?`¯ÅE®£ûÞÌBKGÛ¿qÇ\ï>èoyîŒ6/T~ÕXÎÚ“ýްÍI™o¯‹Ö¼„þ U¼êXvâÑ[¸¿ü#9¶¢Ø üÁIv¦_›ÖPÛ½`7ÚsäÌãÖ: ~õ?ÄK‚–Û×ÜÝïü…ùÙ‹|o Qê}´”x¬žˆ“ ÆüŒžµÙí©Ž>ÂV?R~Õw,ƒŒ‡Y¼)ÈùÝ+ü]6Õ¾‰î¤»ÜIû™ vë)–MÐ wÓs§Ñ‹]în·þà~'‚_-v¯ëþÁù1o¿^µ.?'ß?ùË…UPKc´¦š¢¢äšçB†õÀýÖë~çŠø<ÒV¶M8ízÆÉÚß7K"Àð÷º«¶øË[ö7×xµXñʹBwÃd@Ò›é¦wÉÈYUE(k𪊞ÛH´DùUðªf¼NŠ’±Ò r{-ÀÌÑ#& ånzÙ|¤Ý#iª+^ ¹‹6ø—å_Ug¿ÃÔ– 1¾•Õ#ª -ŽçÕç–`>Ô(Qªî{)e#¥«XµÓ º31SóÒô]¬r¶,H%Gƒœõ^ ç¨Ë\Ÿ¦~\¶"ì%«ˆ§K÷ÔÄ+ö•bW‚Ö§X$¹ªåô§ôѰ²½ôä?_1'Z£kå5öžmQÆ” §æ*v¥kFGªâRéŽëÿæ3$—)QZseEØ``ÎbèÔJÍÖ³.’œ ],‚OÕ\!ù†|XÞdpÁfš³s†¦ò“z>C6Ÿôß3‹Áåjáú Î÷'AO š¼Û¤™YN(ÿЋ~ƒ´ëùW÷küª<‰ À»yÐØ ØÎýÔ„ï‡?ÒL³:A z`¦Ì+;eT¾wâ]ú‡Wó7@°rüdà"ðêXdoªÍ5]OwÚLâ´µA漞/Z ^tGààô¡pvpª¾žÂ<üJΓé¦ùÝGÁûû×ïãì|H&û¿DKò  %;ÙŽó Ðî‘¶Ð=m—Û³à¶WÇÜ.ÿ7~„·m°ÇÝXWný¢ùÄ œ0Eкð£àf¢™°£ÃèSwô®uµEÏ:€5ö…&6C{——í|ŒZòù›l{ þàvë~µß¸í*ø€»Ž‚ÞqçÁ w#·À \pŒ=ÏPòÛ³i?mìIõ¯K {}M'h~G=³^ÎÚ‘LóQx=õfè¾ë'À[`ìä¼¾ë~’­ ~U‡uAÀ«ÁNbåΕ¸GÜ-øƒý€W§\'´cFö¤Ç®¶ûÇÈ*ç6òוËÕ«Ù‹™³†F­‡£ïÕ“ÔÄÈwm¥>Bîë IãhŠ~B‹ƒu?γæK_…£œÉ®²ë¤;û&Òýþž²óúêÐUàU µ»õ³³ÔÊ«@Šå¹ôԺΨ9ÀÃÕN3?bÊ¢KQš§$ؘ®qòõC3”Å%)v¥Àòó4¶.yV²ë>KããYê5–žü'ûÓ˾CBöèd*f„êÙ¢¥ß cÕ»LÑoÁ Ñ,ÓX­©œ²/9¿Æ)æTÐõ`]ù+BwøÄèé»éÊ[’5ž¬«‹©z5 φ–åtEh~E´æzÅè»ôÄMš¥Ñš¾ c%'OT‡õß„nK~é0âp°-ió hã TTö}^G8ާ³ìjÿ±.æt9m+—^Å»|eÍ€'P¢gFdf¿¾ þÝL ß!Œ”ðÙyÀ9ÉgœnCóJî«|ó.SÎÜàC&DsÔ™›™ŽÊNóWÐÏ¿Xâmj ~ÕEó`C^²W ÷ÜÉ'MSï„Î;$NÅßCŠU`ŲۢuÐoKX Ü|z¥ { ‚” (‹Ïú™Yœ‰^ͦ!ÜÜ{Ü/øøÕA® ­º«¸ƒNA¾Åèõ]º3NÏ/ß ¤Ÿ ‹Iž¼Z^¶ƒ&·ÁgrÞJ]hs+Í­”Uïãô'o†·×3æ¡ÀmÛÖ>geï}#®Oå3ÚÙÃÆ›éno ž”=“i¾FÏ‹5QŠœ‡<Ì馯åjÃÿ|ׇè÷YµÕ•÷lÌ rbÖ=OFü;ÁvŽä×µ Ýkv½D¡æ)›ôº[çŸâ¼"h‰}ÓMrÍù*<™¯¼@à[#œp;­äh=n­ùWχ»`íï¢{(?»\å[+ ï°êgÞµ ýõ6þ瀼¯>såÜ&Šãsî~øƒ»sàW[R;ùInÚ©îÅ«ü”Í^õÑó¯Þ䡦%vÑZè('_Ü…:g¡Çézò>H¨°DòEËÙt[—åtèÇ\yWœš"ߢæÚº‡À¯ú`VyÃ~|™“3ó¿õnÙÚàW©x~ù ¦µž5šèX¾ã¨ªž(´½’ü$É?û =ïHΓïC’˜†œÐS¿' \ìˆù9 ûhâåŒx¥-•ÝŒ¢õþ¡@õxä$ÈgP¶Dzä»â&è‰1ј“ž‚†$i|½,Ïçaôßs®J½ÄHE‡Ò]yz&qœ–R¶>Xšo™ m©®þ`”æºgëÉRš©)kŠåõu†žYæAf(ωÒXp|ÙþÁ8åjÁŠ-‚m‰ºÒVº79YýÁà²ý‰š‡)» ›*Ö•ž'Ÿ¢gÔG•(š¦Ü&EO—‰×uŠõCËN¿JÒœUAÄeÐý´EŸ¬§Qå º·¨¼Ÿß á!ºç(üÁs·ÿ,ì’§hê›ìÀ†¤ðîÁ’û*¯ËÆüZ•kë~¢A°”ö\_q¯&Pé u×qH¿«?¯ù¢õõa¬mÀ¯VqOÝs´ÀT3ò£FZ¿#T~%r¾ÂïÒ*ú]q)†[xàlFf†`¾Ë ÷òYrEF󯦙÷½úÁ{ÐÇ)ü½î¨ê,¹îÀ+ÙaßüDÖÒŠ  é,<Û#ÊÁ«ñïþqð+É™Iøl` xB=´¥–ù€›ë÷yIdéSH­Ðe¬~d&§~<éÌRÛ¼WÛñ:^ ZI¾wkÕt‰Vžë÷Ml„l[¢OÃll€_õ§.vÝÝWf!n¨M6gi¢·¥XN€›…Úê÷'ŽWžÖ-8IÄò½?µ!Õçñ~Æóú+Yú²§mxL¹Dã½ p²_e ‡?xxu…Øí¦¯NÓëæøÕ»¦µ®¿‚¬uÅ" ˜pýî ™h¾¶®ì÷Ƨm€ëóðÓ 2?NÝN¡;ýûm¤}ΉçÆÂüÔEºЮën¹û þàY²¼[¿Ïk2øÕQ¾Ë>nç¸·í§œJ›Á¯Rì°þÆòm<Ìô$ÁÉi[&'Ü¢5ãQÿ ÌßÙz¾ýaà•pOù~¶É¶W‡æ? PâW’ßn]+·Ñým;UÞ¶?»nnðª }æYWÏ]W~µþàM#'h7€T·Ð?Їy˜§ºBweïOðª.ýJm5W¡Hcx4ÞR_x ´Lô!=gN(.EéF¸l×TWõÇÒ}þc>j¥Õ\¿#ÕK’lˆJšO%žµáR Vç0_ÄkL¾ôìôÅ—ÿæºÇèþA9¤ôL¿Í¡*=×½.$¨Ñó4]GMÒvf¨/–ª!þcEEÛpõѲÔ#*¥j¼Ü׈~–Zx¨ú´©wx/±(yÞiÔb³ìzÆWWz›¾°NÀ+Y‡lyJ¼½@ÏkOWût´2ÊÂÌáÃÍçjøäqÍooãfBr®¹Ûï®èúàöàÕ\·¥ÿè]³ùîšÉÒSÆþñ®ýL}tUÅ÷õœ¹ïÍÒ{ $¡÷^B/¡w©R¤w¤÷.(*6PD)"(‚‚ bk‚ DQDED±à·Ï¾ï÷_ßb)!y¹wêž}Μ³¸\!cé5ß¹6U‚ÇuÓ‡§ñ ª†Ø…ŒB‘SÕ•ÿãƒé§MÄWØË‘‘äZ#Í$_Á·§ xµ¹=ú*ðJws1fQë£ÅÓ^kÏUྯ…QÿÑVZón9ŽU÷¿ø«l¢RRLÁ=-ÆÍò©¥U†’A MmÚBzÅèÉêÅ"µ ‹¨ £¾ú˜>^2±%ÌåI"_ #ã]Ì/ïXW"¬@óãL¨@“Íz^Ù1Wš(®Úo)ô{©v_5ìœxfø„µ{âés+Šq¼ÄX¾srÌÌ£Rª"Ö~œ}ÓZмÅXY³p¶«=ZÖU¦t¦l:,Àù(ûæd+ëy%ƒQ¼+ýåæ;·1•D­{öªŒÝ‘(ÍÈÍ&¬% hç¶ÆÊ9ŠÕ¥­^Þû\-ëXkWbeÒß~Q¶È ŽæT[Ó–µYÍ"ºOle»ˆÎÇïò.Ðã/ÆÕÇI»`¿éÅx†xÕüJ??F~° ‚ã´Âàmcä8ƽ'VåMØS£ª¯u4Z{ùyªî/?Y¼ÊU-|9}×.ʶÇ~[ ¼Òê¿ËL=yÐö±·IUæ;ß„Õú9vJk¬©)ØÛðüZØ£»L]Ö›(5¼Át’[ðÓ.àO¨<ÕøR·þuý28Íj9…••=‘‹À«GÖ‘í*m}Oÿ«ÕZ-C]¾œ377Òl v%¾Ûøs7æ¦)õd&ÓÆ›Ç9°Çǯš©;1Ó­ßQ~wÀ|Š¿Õ0"’ÅÑÆ°‰U¯ï-w“ûÁdÛ=n¼/‰{0ú¶l“ qÓÝ#~šo+ÍqûSðgðøUUÁ“²2žz2y`¾;X×yP¤2ïû‚_2jMk¼íBÚào¢UM1º3£×¸4÷"øÕ3Ò ¼Jñ·›<ùËßä/û×¼ªîñóüVð«ÍrX¦¹`¾éŽIÙ"ºZîkŒwc¬—#À«¡±7W6·­Ä¬ñ¢•˜©Xh]ŒssfZkbÝaâ]®k.ª¶zЗñuÁ¯f`„}M¿Í_tCéoÿgÄr¿Ï<ü ÿÓªŠÇ&c"6èI_µÆ_ý‡Y×J£š=?oÕˆÎIÌÖì@Û¦˜Š¯½èm.a}ÞIÜk«À¯þŽ §k¨íR_4 s·*ª:~Š;µÁó÷á‰)ôž7FÛkÐWTgî7ôxg0öcŒB¨ßžN†”ÂËô˜Êh aT™#TQãô'j‘±(¦©JH9ÚªyúÞõÞ¯ýHêkÊ£¯>™ø™EïJ6ïwÊñF0Ž1öeèý)En§8陳“Ã6•¢>Cy¬×´˜eYõXÂ<ÇŠäpIÌ,OE™Òd‹å¨Ìr­PË]ßyÜrž¹‹¹K}°§¦`$5þ«¦I‘rÒ‰7‰š™gÈ>¢ÞbSQÛò6óˆt•ùÌlbaæm@UœëE°Õžo^3 ¥íÐV¬Œj5ÜÌ8Þ¹´ÍW`ç÷ÃÞR®ÕË\–Çd(­íöO‰ØýV£Æ6c•´°°jSÌYùÌèú¯Œ4 ŽšV½zV® êM©Õ±õƒyGð$ö÷xyŸ,|€¹˜2”qšï<ü¯>Þ<ß|‹¿j äý%úž], X§~™äF'à„¼ÖÔ^õµ«0*-Ì%ð«þ°Œ«amNÄS®G «QgSãEgóNn:¾×xU±W~ªþVXÕ–zÈ °¾_0€¡žÇúÿÍ<ùÉ5q0ß¹­´ò½ü){=°m‚; ¿˜5Á½xWiò+­òÕÿÝË[·zØ Ì sk¸íÁ8ûG`µkÕAU¬Cc€Eö§žÀ¨H’[~UgõW×~uÒäÚî_ xõ¹l¿Z{p1õNY¹œ´°6wK¶\ͼ¢ ô·P£\•rJ0~Í{ØË5ɾn ¿ýœ s©ò2+ºÑ•wÏGÇaœ&øÜÇ>Ñß «þw³ÿÁ?ï/aF·økü ÔfÙ/Á¯ú7€WUW»aÓ}ÃfHÌßžh¦ÈÛ6x‡§Á~ìï r=ìŽU¤ ¾hÍ~»ÞŒ‡EÖš9$šs˜gN|} <ª:¾^bî’ÆÑ«é+Á¯öÙáö)Æ,_Ƹ †uU(4‰5ï^ÕÂów¯–Æô¯î4%¢ÖȺõð©¿]-Êê´ ŸO¼EN¢ qòXäoבú Z§ïïÏØ™híØ…ûÑâ®À|3 RÙ-s“¢Í`ÉŽ%¿Zï~6yVu\ZÇmž–õ²#nªÛ;­D.˜“öçà·à¬-ÆûÞ6·‹bre£þâ]Fë#Ld½ÔªÌ4R•çžØgÝÐ2Up½ ÿ™•óÌ’è*—~¥@ Ýáµ°¶êÒsTï-%YŒèñüÃ\I Ôˆ©¢X½R¹DIúŸé%*MÎUŽ9~IÌÁ©A-©4Ú-0'aÍ*T¿*O~•K/x>?¯1LX'Ý„Uv’ij]Š0ž!ô†%ÐÌd\EV¬žW6+žqy¦„‘IäWŠŽ lYæ%&2N_Õ°r™“KK4Ù„5/Ê0 Mÿl„Å3ƒõ&r°’»±FðÝU`e³fPipì±ÿæ]¥V×}Ø4­?½Ù| ­eëg57U¥1sп×MŽ4§âà ›z¶´ÍZíþÆ9‘1'^ÆLiìì|¬ðQعŠú]*L  m»À¶‚=ø°UüyD«%Ù~¢ñg¿È˜±KŒ©(-…Á“¦Ä*Æþe® *ÁTmÒò«­|Iü8piŠ|Íh˜XaíªªÑÞ܈ö=KͲyÀ«e²sXFNF_±kE=ÇKñÝêÑÉXóׂ'>lÇ¡uªr- V®1ðc1B+±ªkp=?d eÖ°Æ‹n^­ÅØôbõ¡ºÿZ‚­iÅ5Å~Æü'ëä ¬ëÿ̾È%×Î=å>ǧº¯®ð?Û ïè–ã´¸:¸–þ«b ãràRGìˆûi‡ÔÇó§¯þÄ;úàI³À£†bD»ÂBé…wÖ@kŽ`Ü;€o}az±ø°H²¼j‚~Œr-ükîvwöà.7ÆOˆ{8zR¶Ëž¸Ùî~?Ë·^ýnƒÈÅà õú^7Ë¥P´~„fì^©úåDÞìwb”ÆçኌÙÀ8µWy‘l®‰^ëʺg£ƒqâLò_¯’üœûüßþSÿ3Fv‡¿öàr¿L[íÁEþm÷¹TÃL¼âʸcÔCkÉ@Û;ì*ÌisðíFŒáœ¶9Žbû`|w§º²ÆÌíÆ»WObÜÀ¬ç'ƒ_54y°7úËNý‹/²¾ó=~÷7ð«öþ²­Œ‘·¿êÊŒ’a8.c¿•C_G¡%Sñ=)˜ †|s¢<¦1vfÌI2ssæ¢ÿ“¸7W™§í©È(ÚeýÍr`fFtÎ5D?\A»¬º9‡µ^‹ŸÏ¥ýY‰Y)ÁÏ1j=hz#ÎŒ+éÎ#ÓoÝÂlèT2˜rä]±šeÙÆß×[ÔLj÷3ß9…¸QÈ:òê;*Ï?Yô:eð~0(•AlKåã$²b„F4”!2•æ×YôYåÐNL§¥–óùaµÄÓÂÓú8ÕÙ¯¾ú"Þj¼“úÇ*Ð mÏ2¤xæø„š„ °÷b>·ð±˜ÎÆÍ&¢O^¥'ùÒL`{9ù‡ê1z”ÛŠZ´[Ì3R»-•±ëÙÀ«±ÙmYJ5öŽx×p‡†Œo?aþa”¢ÆD?‹¶]…þ©þ•ÖN¯Œ=Ð#¦Õ‘*ŽÃ#‰n‚m¼ãûÝuî“i÷»g|ù¸íÑS²EvÆÝçîõÓ}Oùܰ‚„Èw¶ ½ö«¤†ÌEUÑKë¥VÅ™3‘j xŸð>ƹ<9ìZ£Ñ—·€ñi¥ÄòfEt“Ëv¯EGaõ¨~ûÇ>ï¿RûŸþ4ãEwúEþ>7Õo”çd<ìÁ9°V?¿ºCÞ…=xŠ•†™çe$øU6•[›`ôÛÑ5™÷÷ÞÌÂ÷»±ÆÌÍæ÷h®ë$UÐêƒ> ¶Þh f@`Þç/8}ʳî ?€ú¢=WßÎ_¤>Ãf‰$Ú×Z¬ßHeŽê Î,z?S¨¼s¢»µ1~ú0~© ýS¸ï®7Ùc‘ñ´¨F›eàW‰E3ÍþèW‘þ\ÿuÌZ±øͯ.$UÃ9ø#󇓰šn‡3ެ*ÖR¨Û™Ë·§Ð:,bör9ú‹*‘e}Êb ÖãWŠm-˜ïœÀx­|ÞÆÓ¾Ë‰Å™ë-]!ýSIô´ç±ra*ãÛµ})ææÅXT)Æ·‡êðQ憊‚ ŒËRE²DzÂÒÑ›¾7‘•EOX)ò¨|z”Røù|Fˆª¥›Ï|Fµ§nÕºàØ{ЉµY?tq»˜K†ôŽÅPm5e‰Wñæ+ì‰í¦k:ì7/H=¹U☃ „šBU€S5™xuû´©.íØfÅ«§i&b/Gæçç­Ù¾Ÿ=kcNÉ^Æ·§›•6ÓæØXÏë^à[OÛxõ°ç°N½—Ìàém•×ýgº傚̃#ŸÙ Á+¼ÝÝ…7_Àx÷½+k(-èÌw~ŠÑksÌw°wã½ M‘^­^µÂn*YÑ @¹ëÑëûíP»K4á ³ûðs¬¯¶XéSÀxî5šÛo«ó·‡xužÒ½î†¿õ´Ö|œÎ‹:Fkͼgœ½üª¥q²!rÁµ‚=øƸøU_ê‹ö„½vY¾^­ü}9…˜«ñ Ñ~õ‡ ÀߟÓFЛϹTwì2ªâ[ÅŽhÁST«¯¤^ð«©n<øÕ-f$ìÁGÝJwÖÄÛM®tÜ'~]ô˜ì£qëÝsàW]ÁîŽÙ÷ƒÄÈIð+U=X!eÁ!‹ðô"°í±“‡AŠÉ©šb—½‚–”§~Îj³mQ>0[ÙŒY½Ù%ƒ_éýàxÿ“{Ý'úµàWúñÞÄýæÿƺx¶ánž¿OË,·×Íôo¯òÍð«ÊîFz 5¯_õÄï†1o‰uÜ #æ;_…¿ËcÜS¹„þ«µær´Œë+ŠÝ;|6XÕp؃ €W€WºáŒg8{pº_ ó| ‘YgWß.‘ðªã?cH ÞÇkŸ§â­º+ÇRM¶ ïÃàwÚË“èßXе>¼b9íÁጿêg†3»Ñ«½Ìì^ ¡ýS xµSï-©Z ö@×p-¬”è‘OÆóv›w˜?˜c3!‹Ii)ègò©Ë÷æñ/“¸TÈÚAY´ËЗUžüª<³ø²ùueÆ0¤óŽ,™8VeNãs²x?˜ëxæ2gó0žõ¼²¿ïyÇ—À<ÅÒ¼ùÌ£ÿ*Œ¼¨A/Eã Býö0F«,Ïù0÷0—8”@¶X=K£M·£y?1®9ÖÖ$Ì‚r¯Ú°–Ó¤s,¾ý1S^Œè8œÂ*¼Ï4 fË6óŽÔ^)ßk PÕøUW¿΂<Ø€ú®1°%›HS¶´‰¹+¨7yÝd°'ñdͦÔêÉ}±îUmº+ì£'a‡j,ŠÚƒv‡Ul\g¬Ô°5DãÏÉÛÀ‘Ôi/ ¼zÆt·:O—L¯ üJÛ9R.ØjÁqòÖ=`?ÏŽ¨–x7àA!•ùnÁ^:Â\ûyèÙtê_ƒGŽ~nïÍL^¤ê¨Ñ‰Øm7¢›íû°tÇ*,-7aϼo4ß¿?ÐâZ³‰7qWbtjËT|7+ønÓBnÇZP%JU.¨ÄLgÕ…o†¿k£Ïš(,ÏÓØe§ÍÑŸ\G÷0øÕU:f¾«ÿÜ.PýqwŸ˜~U Ùc7»¡3ú±¨¤x¥õ¼Î˜_ªk>ÎóhÓ0ò õ_UÅš{Œ*,Ï›¯ñYõ§Žˆ$¸%nt´©¹Ïoûë:wÚü)]JÜýÀ«e½|·Æ=î—ûîò«ùÌ~ÄG>³­°'˜uR^ô&Ncvãüªñ»o®ÈúŠuð–A±Ú©·€¿ Àlfr¹1ºÞUs/á¸ÏŒõŸ»×ÀuÖàtû×ñ?ûgüYàÕ?ÓßëæûÍrT¦ºÇÝÿ)ìÁŠæ:yÒå»ãxžjZ½"WÙÎDÅ!Àè{€Y °gÒ·P«{FëI¼½Ve5üqé®;øUu³×§øºxßbàžª\m…=xfó÷lðYþfŒñw’·šõ¦ñí6èF}†¡fÎźTÝÍl‰Æ¼k‹Vm…õ§œª)ú݉·÷‰h͵Xcé³ZlÛ#ciQ 1ƒ}SßÎh=Í9f[ô‡H/úák`ÒbK¤ÖíˆX=ˆªØ©gè*…µ´Ö¼ÉÔdê¸ä}ÿ/0‰Ñ”EŒcH£_(¬%‘Bÿ|}êŸeÒ kÍÌã°žNyÌ^.mØ|þÉ4¡ÖzUJ“bZî™Ô†‰Ò—T†V_)ªˆ–¢ºLZ¨aýÁ0–=ƒÜ)‰Õ*“øÔ,*ÞÄpµ ±éüª€OM1¡â`*ýZ¼± ã]Umm)ø¥zÓºã_‹pi›j˜xù9¦™?Ý<¡}´O`%~l:²ÞÄFsD.›9¢¸¤÷ñµ|š?X3W“úíñX5›N@2}W#ÖìIäžm~ÁOæ0.þ5‘õe’°º¾–ͰyÔm í%Ùa•ã=ˆ”Ø1}†÷°þâý`®DƒgMúÞ­t ‚¢¶ô$ùÞÖ>áMéôoÇx×Äz»«} VdYŒßj¬¤€Óe'Ì,ymhe*ÊÇÑíýR½Zf®†Ñ…ÀӛЇ`^‡5ߣs'öÌ F©k½ñëÑ~Í,7“™˜‘lð »M¹?„êÕ\?×xÑf¬¬¹-/›Röv°§V8WŒüæºÂþQüVÀ«.þk»ë¾­;60X½ñféj |'`Ew¼k ýazÃý,©~´9ÕÆx†Fƒk¢‡1—Zoâ8ìõFwޤ¯†Dµ‚õàÕw»ûÌõA·Çô[¢'d§¬»Áñó|GùË|dϧÁ¯:Ãr½A*É ô¦#öÑa¼Eqz$cʯ:a… 6ZaYãÛ×cŬ¯V~U{pµ+瞊ŽO™èϸ·Á¯ÖcÏøÉþ¢¿Áÿd~6Ûý-~µ›æwÊS2üj–ÿؽ f4M^vîkÌE`Å[°{ÐìËÈß6ô_B/gà½Zm« Pz~> xµö`Yð+½+Ýç }?ÂÏÀùõW]_ÌæËàWýü؃Ì_A²oë°ñ”í¦4ìÁŒðä2zÝ»{ VÓBæ¤ñëwYCc¨ÚQ #›þö,èٹμf¿†=¨þ¾f¨/ï»ð¾mž9=ÁýUëà1Fkªï\ëfW§mXSã}˜?¨¿»ÖÆÆçi$ÆîCo¸Æ;ðD.GžÃh¦l2•Bfg¥“Õä³ÂmÙQ%úÛCo}ùUjj=¸$bšúNŽŸ+ŒáU=îñÄ«0n*“qY©&Ô$-ËYnIÏu"£É2÷Ï;Ì F¨‡Ê7E´²ÔWV‰~¾3 y¡Ør3þ¬Æé¤œ®<øj¬ë\֛Ȗó¦3ïõTë%è¥ð+œÜG° •‹>b>’2Vô™­LÔÄNÉ òAS_ZÒ7Ü<‡}Þ‘½iŒ§ï3ƒˆÅÃ1âGÀ¯Ô§¶ëc<Îiå´ÝŒƒÌq^f“ìEÙm™³\JªÚN¢Ê®ßƒ_­‡-ª¼«Œ¤1¾=›w…݂䠮¨ß~’œµ ‚´³Cú¯Ê`Gõ3×1cVD¯W9ÄŠ êoŸ~•‹5YüêìÁr@ØÛLé]‚5r³é%ÛìH»_ê²îÃ*ìð”zØ«ª³•Zh}aÖ‘ÙÔÕÊŽ e 0Qµ_T¢F·÷ym¬ÌVô·ÿ)ëDY«“Ý‘ó®ƒÛ펡…­¤™ïåOÚ…@œqn«x™A¼²¢=ZQ¨=Þ±on‚³/Þ¡žŸAx²ê·?K{°>ﵞWàbOôóiÖ¬®:‘·Â͈j$ÀWì÷¹[Üoà¶[ÜNðœÍÑsò€Ü·Ú=ïø^˜û“69œµÍðÕM¿ª@/àƒàÙõ€Y§Õ½¡%•ÐßZf•Ñ\¦•°_æà_¹àWªßþBTO®Qþ;÷…ÏŸI¿šà÷Ÿùs&Uvø›üð«ûd?ðêQ7ÿ뾿ºIžrܬÀ¦èŸÖóê5­·'­0m™C>#{sNôLxóR‚±©¬ Wèº1žá°óü$?« Þ·ò›ý§ºo_ô«ý,ôKëÑ·ôAdÒ|œHГñÀý™?XÕ(O‡ß¹•$U_´™9‰ÑW/KC¼YëèÎlÙJ?IN™CÀ«áÄ«Qfš¯å[ðž~¥ÙýŽz}YÔg8ˆÿ'2Þ¨ký¨']+¥Ix»Ö¿•«˜Q—CTI‹ùÏSX¹ðúW9¼wË$ö¤›PÍ/›™b™´¡ò8ba h!cB}¿ ԷȤŸ<“žøz­ÂúÎjFø³ŠôPDZ?eè-*EüÌ£r<=j¡*.·¥·:ž1ŽEXÔ¿*¤­˜@ÏrôÅ3':›Öiñ6ÙÑÊ"_Cß×€µ§Py8Ö/ÞÙÕÁº¹€‘Q,‡yOÄžRlÔz^±›´÷kͳÒZ†ðk°bàÕLÚzUÀhêK3öf®yÝ4‡}§øÓ xõ ëy%aô/ÉÆ³7«° †b¿g1ßù²l”Ñ´xY±?ÊÝV9êV°ð¦¶„8ù­¼TxOéS¥RpÔôf=úté¤QYãÛß±u‚è³Û ¬ŒÞhÒ•¬-3«\ïWïb¾ÜÏ1 ÌY3UŽ2楒üýÆnÝ›+ÍL™Õhñ›»ÏØaö^ðÈÖÀ«µØ'±æ©ž²›°kõ¾{0þ.…8Ë`‡®²ß‡QÕhçþøS #Z8¢ëDÕ ÔtI¶ËY¼IëãD}[w {_ºâ¬ÿÖ*2MuÈfN°øéDká¬À;R‰j2Õ–ú£~2³NYuò+¿*ÁLõb]’°H­/ý¤ùŒÕúrÍ0àÕj7üêv؃ÅþCw·ûÅ$Û]î_?n'øÕnYw³ûÄÏö]åoó©•ÈÙà{«±cO˜»$G&Ríª:æúAü¿/+ÁW³höóúZ}®~µ­z2ó°‹ W÷ºl÷ Ft vìîŸáo4âãVúÒq¯úïÀ/îõ·ùÜbÿì‘én¿›ëß‚=˜gË .ìó*¬’áæécµÖOoÌi{à•²UÍé«`–’söíÆ9§ú¢U±ÆÓ]±k,š©ó¦/~5üJë¥ÖõûýŸÔgxÎýêû;ýRüî¹ 4ìÁ¬V¸Ýf.he´æøÔSOÑêôqN½šŒQì…ÔÖN´¥§éʧ&Xƒ©‡¬u<µç"èwfú؃Š93ÍCÑ×#=ˆµÌoÔ—NæMQsÌu5âDmœlñ’E®Ô ¶áofyQ>oÏ2ˆ(9TiI#×Ég½›²´¹òiiepßUŠñ«P « cè‡/à‰äWE±èríM!óqÒˆ>yŒÛL!J¢×Égò‰LqÔÜ+ËEˆÖé|o}욯›dBæ Œ¿J¢¿½2ù“~GfWðÿåã„ê¢ÊÍÂ|œd0Œëp¼N.Ö#q5ÆV™c5°ÏtÖ…W}Ñ£&E¾'Öý€Ñßi‹ò¢}æE/דç´2Y°Ÿæ2´È¼›ª)ñj˜ùÔT‘P˺+ÆL‰ÅËýcž‡ þÂ¥µqØûj÷ö5äÎmÃbÛÁ&ØC¼ûÛd’¥©m!êíûY^…¥õ5uMËJà9Ó™1¥ð«Â ¡(ž%çl­à_Æïê\%¯a$ÃŒúÞÌžWKn5ú{ë«ké+3YžàmtU÷­ÝÊx†€bMÀ®F4•#vœÝ#•Wp=8ÿçÔNˆ§Ü‚s·UL6™Z¢ÙdUé¿j%÷¢oû4;§2ã9ërE× ’ñ &Ý>-?b.ÿ3¯DœoïžÅŽ Œoî»ûo¬æyÌskå_3-XD•Ÿ¶°r?t›ÊèÄ+гï€WªcªžcåÃàÙµ±sÃ|çŽä¯¢%Eè]MsN„~8Ž¢Uêç]½ÉUuÇ¢#1+Sý÷îSoý`É¥âÖù?üÛþW°—=þÐ-ô;dðêˆ[æ_sßIy³BöºÊ±ú8WšOe0øUÞÖ—•$õt©ñP®*E4A˶cÆ ÿëLWϵ øù»¾4øÕ?ÏQ~µÇÿåú¡ÅϺ_ü@¿ÆÏ²ÿ¼*ñÑ@cåî0€·wÆSŠ1çÏP}«ƒwõ1Ë0› °V§b”_d|»f”êÍrÞªƒ «Âb"ãöƒ_M%_ºÊlB ºÓºZ`îŠ>éCä¨n.a¬*Ó¾Sþ3ŠêZ¬{šŒ)­›g¾Ä>Ì&{I!F¥‘û„öWXT™NEâU!-¹4úÌ ÑΊ´5U믘uçRâL •^*3³9%–ÿW–-Èø?­-gµi| [’ÙO½¾úíCm™°þ`2ó «`&ù{9Œ`.¤åZÄx\~>Ÿ›E{6“‘ÿÓ¿Òz©!ÖÍÂé¸lE{^gáhÖ£×x†TI‘nÄ·UÀŸ\9C{ô;Œý>Óžy|ϘGÁ®æQ¯¯Ä\ ÚtØçMe°µm»ã¬¯)xÃÐ;mV›Þë]ëå ¼=ùƒc±þ¶‰;˜?äI¹’ìõ;ÔFìú¯î³èl[Ñß~IÞ4ÍEQ–™"‚#¦ óqœ”EA1ë‹M“måàžkkMPQo¥úK—2":Ÿz}·€¼Èê‹Í×f¤ XX÷©Ý.ªE°¶OãèX´qé(ïÚÉö.Ñš\—ô^ Ö•ú7†ƒWc«a÷^ÃÔ<‡)ê–Û¨.¢ª'=^‹uû3GýíÙö ù;ÿ²y=òëäžrÇ5[V:úÞþ;KÕC\}ùÝÜÜŒ'à•ÞVj´zì¤9TÖŸc`¬ªBU3ô«<4]Ö…Jòå1j¡¼B=­ç5 x5ß­ŒÖ~uõügÀ«ŸL{ÔmðÀ«÷d§¬›èžò }¹h¾µ‰¹{°“ùÑÜ*d5[ Á`vã c°nZb+z6ÇüD_;±ÎÖ œY×—gc_g™…Ñ5.Ë}¼ÚnÆû³Ôo_Óí_‹ÿ öàãe›_ {pžP‘™þy÷¡škä¨+^ `†Od í€'vEŸÛ`64ö± Þ¢ñgVÓl|Ö|œ±è«ÏüÁ£°ëÃò[†Ö¦øþAoü•hñīŸ~Oósè{¨…Öljºá)õ3˜8>¥N)ÍänÂ]®Ñno`^u/¨FX˜¿½ NÂþf ÷ýõæ€ý&2…wpÍ£ÀÃÖ´µ®1÷DŸ¿R¼ªŠSç ¬‘ú³aG5`T5ðàK±ª =±#c§†U¼2È„Òbèª '06!‡Þü0·%'9•‡çÕfäyÏæêô §Ò'_†1E‡"Úe©1ŽT–O‰§…–KoZ”ﮋ¹ u˜Ã|œ,æ0æ’w…UuÂJªê·/¡=¨6©VLyTyÞL†9ƒ9ô›…œ0'V##>Æ4‹b1c÷c—`?«uÚ»i†Ñ{Û¬élI”^üü|ó²É§žL)œÏƒÌ.Ó™ñ¢;ÍË2X–ˆZ΀õ±kôf º9Øšö¬Ö¯Lmäd̦âU"å80”ÃŒPþ†Ø•;÷ÖÞXû¸ô 5<Ï–ØË²Ï–¥N—“–àWjÿ./bÕü$šG,uƒ§Á¯¨–*=ƒŠAZùÓå'[%x“³´ÛÜhFÉ—ôÚ Á‰Ø ;¨:ÕÖbm¿Š±S½¾/ÌDQMææ&O¼ûÜnÔiî¼Áš4mä ;Énc¾ó Ô(ó&ÆIï'`ÍmÆZ«‹u¸ÁÔEÄ„éæ.ð¤MxO?Ö£ë„UêÉ´ÁɦnͱãícÀ«öægÖ£oûGo×ÚHßÕiÇc–ǹlû‰¹3¸ëë"öØtÖ›èM¥„Y8ej ¿–i éøÞAìçÉô7w†TAËŽÒõ–ù–7wåÌÈH)·üª æ~‚ë๭îõdzÅ}è·D?”ûeoÜ÷,öu;àÕ»ö› >ò…m‹–>mÖI¬ÄÚꈵ¢üªÞ7†þôöä9Ÿ‘_5§Î‹Þç¯Å šÎXŸ¥Ñ»]ª{#:+oœÿѽ¼º§ÎßÀ‰Óþ]¯z2øY~7PjlÒYîI ×ëîcð«ëä W,p ÞÒö`/«ù‹½™¹¸†êÒ5ð3­é¡1ÜÐÿ81ºÄôd’WõÀë˜W| øÕ(ð¨öFÀbw75ríUâÕr=fê—ÀûæÀ«ÊŒoÿ+ˆ Íp l7¥D£ªâ¹ý°>šÆò‹Àj;4®u¦=˜5?OžLÿÆÍæ)ûGd,yÊP³Æ÷ô­h-4wDŸŒôg\x-Ìðn´1±”ÅèO5ú‡*àT‹ªD”4±¬èŠ£rÔIÐwU0a¥ÃVÍIaû³È²4vË“¯åñN0ž÷£iô@%’_©/?cI1{0“ñ¢IÄ«\®É°Ö¡F´gQ/‰öh.#þ“LX«"…íOã}@2ñ_+¨Ý 4Hgþ`pÓD¾ªªE=äx°®óÀös|×ÏXïÂÊѸܧÍQ)Ó¿ê~Ð(¤þùJZ+‡ö`<¸Ìqì½0¶¡NºðL?ëûçPQs1ðc´ÙKŸ]Oó¯l§>Cis‡d­ri­GßÑv nü_rgÞÙ¿j¼h:Y—Tidk~{°nð1ϬíxÃ\ù 3¦U–4ÿT=JZ=õF¬¹7©Ó» öàÕrˆ¹’î{ð·ê KÇè\üÎ*àÐ;ØÞƒž5n߀ó}Îñ[o@‹²R©'£• €Õk€vk°bûÒU%â®Ì,ìD”iŽ•ýªI°;ж¦Fdwä_×Îtïc5דvØIçí|vœ‹³_š•f"þÄ0ŸñímaoNÁúk@EïÓØéÃÑ&µSŽ`ÿŒÁÏ'Ç©ŒÙÜ6”`GiµUCš‰s³Ýâh3s›ãÚ€Álr¿™4{ÈÕˆÛî·FÏÊÃò:ìÁwýdß ÖèãölP*ò‹Õj]O˜›%O&cj-ÃMf+ž?cДþv­üUK€Ì7)âƒý< 6¢ºñ3£ë\Š{Œu³™{ðŸäo2å䲿Ñÿˆ??è8økü·Äo–2Å^½ ¼Ê1sdðê+¾i€ùx¥úWšcÕL³õ”Å]ƒqªF½è'ÁÚ5ö¡½ŒsÕ]úÛ_^3þªðJãTOf0ðêðj‘WçoÀ«Öþ?[8x·ù'pA£÷,ƒÍ“$êy/‡íE½>å7ã±VÎñ~ª ¬Þ¯øÐ sÕ³£q˜kÍ^ð«©ÌŒbn6%wY`6¯z’çT¿:ÀúÎÊg ?õˆF5µÎ­¤SŸ¡7öK’Œ JdSÒi³¤ÑLgLE¾ +¦2Ÿ¥€9/Il*EæÆ¼Bz£Z†xjåå‘GU`…Â\*Ó¤²Baª ë8—‰E¯+¯«@Õ§ÄX­K&•Â\¢j±›Í0?1ñWñ´C5ù$Æ6U""kàuØU/e[be]Ù/2Z/5«´#ãÛÁjùÏüÊø±S«#À+õðí4J‰¬e|f3SZjc—„xõl"ÕgˆÃYÿ¶iÊø«8<ÿj¬Ò1Ì=‡'¾Œ¹L¢©Þ±=Eß{W#ö9éËÓbš­¼zȪ½ |¬šm$ê™» /~cüU²ˆWZ{¢o4§}: üªfp–c¢¸8S^§wLµ.¯@rx?xö¶VÓ­…3îKàÕcÔØÈ“¿£'ìiB­ƒNR'ªzÇ«M-yÞ.Ä÷{£½ßà´¼ È­,iØ×Íh‘æöƉ^SfQc&¬ÖÖàWuÈ®ôO úÃkP‹³ؾê_%Û‡¨×gåéÈ®Ø=‹GïÛ‚_}oaæ¸?å$ë¥6&µC›çc¦JðÕ&få5¤bêIó/þßر¼j,¾®6Û‘H*á+õÙ½6'ÚŒH’[èæGë€=LríÀ`6×¥Ø'\Ÿó~OôMÙ!Ämv¯û9¾«ülÞ²¿É‘¯l’²f‰ìw…heO`bs\zØØ‘š9Ðã_‚Y©‰ñ¨¼ªo´n ³ë­-F¢2ÖxÔÕtí¤fìyê!õ‹ðœ߯ïòçÜpŒÏKàW€W‹ñ†‚xßÉû@ui61A;즺´ɯª˜i`v7âz«6£úëj–KCz uw¶ÃÈôÅš×;²k`žŽL kègÖùþÄ«$0ÐÍÑçÁ¯”U2ÿ`Dk’‰¨J“ÞÂ&ÇFa­‡ ݱ²TK6ƒÜ)ƒü'j5è\Efàe2°€Ù5™üT>õÛCEÒä]a)pª§€WzŽÄÃ, Zˆž;cå[[)ø€ó²˜¿RDYi:Ș蕬IÓVÛyv»h$õ?Z·¬¼€nSÁAïÃÈ×Ä:Ýn4 (Vþ«ÖrVVoê_µà¹[›ö[kàJs¼ùQ“iwÂlk"À«?\3wˆåvÀ«Þþ;;È4Îý*ÀÇ`5Æé?üîDr–Öøí»bõ&º¢-_ËFSxF ¯šc„{0‹¤œh>õëÑëMÐÌH¼[æf_ÝlÆ»bâÕ“ ~•÷$øÕ²UNÇÝâ^ôS}‰übޝR"a¶Åé¶NʉªJuÅ Û î[—|® ýW±.?DªROæf´p(XÖ[h•jŽ-ˆnpåÝ'ÑQ°g€_}àã‰Wñqª×÷œÿ–ö^¿Ðß {ðap¼éÀ«…þe÷N*õ·¸Ïɇ›¤«íÁ*Ë0kðŸVCœˆwNàBc´åAæ@+o5Ù®ŠkO~¥1õÍü8¯UA’uÉõÁø¼~5ܯf}œó¬—ú·-‹çn4—À¯®À¾hŒ¾h]­ZŒM†ÍfG*ëò̯U¿}/õúRÌTÛÀ¦Ø-6ƒñíFÛÚ¢m» Ϙ;ÍKäQªÏðŠiÇúÎ"Ý‚²A ýíã嬭œ¤ð Xäd`‚Þ :Å*hˆYQ=™‰æiü3îðj7Æ«¥)+—¢Ÿ1¾½5ðj ÔŽFÜí ‰ï«ÒÒ%õáSÿJë;OS{€‘äýp¢·ÍÒÈVßnš_uÆ ß“5ž•5Àï´áÞnŽóáˆÉµ÷Ê÷Xõ¿›‘\Gð+õV·“àWg­VvvñY,f]éÎhó**>t2[1¢-p²wCû¾5gÀqúò~ìQôqöõCxsE¬Š˜Á¡ø§ð©+ù<.RÚ ssß>ʵôÜF÷­É³Üóþÿðêy%n,øÕdßY~5RŸáwÛŒùÎw€_ÃS;beïŪĞ$Ð|çú˜gÕX×»Ð:ÌÇL<ŒÑhJÿÕz—ã>ŽŽ–€=ø l³»ÁåãFúóþÿ•9k¶øÅþV·Êï’=2öñlàÕgR~õ40çcÏF›7¤½ïˆÕ^+§aÌkã iñÑ Ëƒ¨'³ñ¢•°]UW,•ÑÊgWõý¯µNÚƒ¸^©ç¨Ï°Ú_ƒ‘ý/HòÍý¿¶<~³ù7ˆ zã]-ñ)­ï\ƒxÆuáÕ°V5Ûû%|6z2Í0É%X'W2w&Ñ\ {P¢Éyú˜õ`vMÖ³Û}1Ò“¶PMœ:Z¿#\¨~·:#ªêãŒúÄ•I»ãt<Á}”BÿW™ÿóŒ§Ç-1¹d=ñŒdÊæÍ¡âRM´7‡>ÿ|¬¿êŒXMeT^LO¦€Ñ£9&¬AŸÏÌätþ$ŒPHcÖ]*õK³VX1ŒaÈçï:Þæü_¬Bsµ’Éa´šb•X^dyFƒe³¡Ï*7¦¤œG˜DNyÆØk n/¿gF:íî…÷aìKMUÍP köE6vŒŽóiìˆ;€Wz󰜼—Lõ¦u×[æ2Ô™x'f bì àU¾t¤uÛ èµ{Qï1F˜±›fòÞb9öÒ•fý“-Íoò²„µ–Ù Vì.ÆVÝS­»­+©ÌÇyFa%…ö`n†dõîÓIÇ 7hF}Ñ™rÚLjñO`ON’ŸÑ¶ÆŒµžˆUWƒþ¿[±Ãbô`™OÍ,ÙIMë r1ú!XFj_c:Ë è ùbÓ^vÚñöQQåÊ_°G˜w©©2;â:Œaeêß|ž½’‡|— ë±vG’µÃ'ºÓ¿£ªÁ }Ô$Û=rëús(ò»kìvbG4}¤ïá¿¶‹1ËÓ݉Ȝ`>Öqlôé±Î¬w³ öˆžåÝоãÌwŒ øJ°Žû+bõ¼£ÏW€Í}ÍÊ‹•€WénŒ›U¥•‘®¹ÌÝæ¾×Û Ù·%ú©ì[ãfã_Ó|K؃ïÙËÁwÁIêɼbV¯f1{»}ÚõXQ¬ë°«þÕ7¬ßñ¢×cÅ\ f7>/º xõðjîpï¯n39ò·ëãÏ—Xa{üþ·xµ_®~Ïô¯¹Ó@š²ß•ª@ߘ·¥·ÕhØ!Ä«›É§T£¸þ«OR1°t-•*Ñß^Ùu­¾ñ*ýíÓý­þ[ø؃©‡ü3ï'²¾s¢oåmУx§ù+ðÀ«êxb_œœÿá2 £<Ç´dõ±˜‘=hG2”9wànkþÄ'•Ï,3OÙK‘éôa_eîð}}[ò£Åæ¶èK‘~Üó5ÌEÖó -±ZxCX{¢ ¸ô1âÞã/#A¼Êù°Ò‰Žaœ‚úm x×VSU(K,K šÔf†O ¹ªíÑÞ)`À°®VEÚe±˜ùrŒ8OeÌB‘%‡úí)´ÜJSx‡ææ‘ËÅÑÏjB„xU«%)–3¨ö`¹˜}ªqƸª-˜O®•LìÊ%ËIbÔi¨ …]w7ÎæC±¸ÜàÓY± v¶ô ¿k¥Ùkï<1ç z”‹E#&ö“÷•µ¢Oj‡ÜX§¾¸rz×ëPo®»­(øVÍw~„ÜXïsÅüÎ ¶j„NO0 ½ûëjþ’'¥¹Öl›o±›«°ÝücÛz`â‰àW¯~ÓxÉ Žš6V÷’édME1v¼œ¿ú…gÓ“à#3å-íkÀ*&¯¯öã½íL†œ‹³Û¤Öÿ"ÖKÞ=¸Ò#v’Ý.ª±ð/vâóVSmôèjìHجsi$Ó1†Õ©ßÞüª&o·ûWô+Ín‡±ÒZ}%@ˆ½K¾ÄwdGäW×Üms_YºHcßÁcgbÝÏskÀnG7auYÑ[Öe¦#õ6ÍkŒ§O3_™Ÿ±ÏTíx6å´®N­¥šþcßi­Ï©]Þ\IpÓÝpÖwžâùgÝî“ew¹±~YÜæèÇr¯¬‹áö’_ýl¾´&òcð•-Æ»Þ6·HUôQ+4•Ãþ}ˆ9@WÑ.Á*ªoþVÿj]ŒüDôf pYíÁ,3?ºÂU^ ÃŒñß¹÷|ì¯Bùxu¿å/ãÚåçû;Ý\؃eŠÛ‡¯^‡=Xd®‘—\9÷)¸Uü÷¼ô³ªoÐ'`gXöÅøn zÑÆ­4¯ª õd´¾sx^¼KuíE54žFÖ÷Wùå@8ëëú­þ¼Œ{Ê}ïøá~)ýíàÕ?VOµ{Œ‰DƒnÔºëËJMU©'3‘ùÎõx÷?ú(zœJµV™Ðlƒu£ùZê“YmÛ?"ShW]i€Ùµç]üjsOôãH7*AU^=DŒÒÛ£ZD†Q,ïW¢Hsô¦nš uˆ3c‘Ni1F“‹Q/ ¯>9VÕ/‹í)àý` ã"ÊÐß^ŽŸÏ§Ç«¥ˆÑ‰Yä39|N"u2Ùre]Ž3õå8æ×¤rï–¦ªÑGã¯RˆyYüí *+&ñæPsÅ«Å*H+sÊ4amúœX"z¯ýx‰ê‹VŨi}o/Ê÷û,–™Ø©•Á¯î1%²ã;8rë÷Šñ«&Xª-üª ìM¬ó§Ù9åZ¯T¯¯DZúžþ¸ÏÎtUí;fTpuM;k­M°­iÃ^#Udð+`FwâDž„76¦ÆQ3 Ú'ôq·ÀnXƒ¹í‰ýõ ƯÖÝÂè].Ù‚U´ÅŒõ§Ý >Í߃Óí/? xõ¦×ªÛý¿¬jÙîa·ÐèŽá¤ºQºŠîW¬²b ñ³2Àjí’ع1ê­èIǘ¥hQ_¬·Ç€èÁn*þþ톧Ô5û}9ð«a~.>a€J;½ñýñ”—Ý×¾¿ç5÷û Î7õñA!õÛ]$;èJ{p0pÃõª£ÏýaË5ÂWɬAù€Qÿ‰F!´ÅW%ŒUn?ˆ:oI8ÓŽÚË‘Pómˆç«ø6Ä«åfKô‹ÈòÕ“Ù‡yN¢§ZkñVç}X›'y‹ŸAŸÃÇx_"³Ó¹¯CÝã4ò¸P÷¸ˆºT¡«,£BMãÚÌ6uhÚ¯²·^‘ž§DÆhUÂJN7aÍÖ²üy¨×žKÿUãÕÃúƒq´êr˜K”Ê`¶¢FÀ‡[aÖ_¨šÜ›±¦)Œo¯Æª†Éô fÓâLf”X9ê‹&ÃÊò»IŒf-Õ¬íàWûh™Ãú™Æº´ èUD`¦ðö~œþò–/°S`G*Î0ŸH=¹Ÿþ¢væoüþXúùËkT–Æd‹½U¬cÕkvsS1Ÿç°Ò'³o+0ëWam©…]{ða¼Wý`×Ú3âíN›Jݛ˦‰m!:?Ëq ÎeQ|N–2ÁS°sL¨\4 Í8VNØüà$ãQa—Ë1jÅ 4K°°6B¬ qØI­°>ãÄš!b´ZQ_ô{/ï—™ÖÀ«ñèÙÓFvÛÞv'¸>Æc ýWUñ™ÁfÐë.Œ¯æÞ¦ùÎ@ç­¦›ÜÅØgÕéˆ51”·þXSSõšx»ýiƒÖoŒœt-Ý}Në¥K1öÎÇv¨Vªpö}3(XÉx†ÖØ'ó©ÏÐx8…q݃0o'ÍOÔU{ð•°:bn¯ªãÏâÍ]Í‹hqOÆÊŽ$»¹nT´9xâD×Þï…=ø“±öQW>îÿ@ô3Ù,Rj­{‚x¥÷ƒoI‘ψW/™ë¤€ùÎí± wâܪŒFŸ´rµZbáý•ûuØžêõ©vPÌÀÄè°éޝ¶š¡þKØ›©þ“~ÕןñúŸM¢<àçøõnªß+ÏÈ,àÕLÿ6ó—Ës®Ðgû›gÀ¯ºcÝwWµ0 B[ê›ÎÃßc0¶èW¼ê†žaüwƒ˜KµÕgûZàsZu-ðíü6ÿëñzÅýä‡âûª0x2p¾™ÿÏ–Gî^%‚_5F`% N¬šŒ0B½¾ªX“£°B´Þ„Ú?šÇÕ_+¯h¬„•BõŠý9æ»]iFùBßqËÌÝÑï#}苪¼~”™KYŒ¾A5@­6ú:vLcª»¯ÎÐNI¢…Þ†ú¡eùÝÔXl@6‘%—·sd9“QƒLLïì´öI±(äWeLX—§*/‰&Ô¼Êå­[Û”ÃüÇ…ÿé_…*¤ñ±ôa|B4V{"•vh¨ß5öµúÛ Õ•ÓÍ¥]™ÇzeùÞ,ÖCL"'L'ª%çì6÷býo$ûìKV?ž¶hðòZÒ—œjºÙoj‹ýþ1œÓ«¨‡œµðÌ”å¢8ßМÇ^Í\€J°>²¥=¹Ö,sØdJö«vÒƒf0ïj—bw¢>Cø•fìàÃ` ÑAATl£6×®£.ŸF·±Xí‚|–ý õd¼” 5í­ŽÄE£ñí5Y¯g’œ·Á FÀ=’_ñuwêõ©ß¡V@c|,~ÚëvŽyÃL–§‰WEòYômû°h$úSKúG‡c_kË^»vb¬È?PCXÏK5kµÞÄ}UÕgߎÏ-2a•ÞcÚËmØ?W°:D+ÖmWÕ•ÎøZ«YtÁŽ*e¯“ÏО$Ù9ãJÜvX<Ã4~ÍwöŸÚQøÝîoyÛ ´®ÞeÌú$à»ÖÇéŽ2‘¾Í`<“Yc1‡»/ZÕw'ÖK-= õÄ^óéO­î‘ìÁQÝéc]K¿ÇÝê~1qöwÖ?ä·G?’òfÜr÷"𪙜3?ÚSÁßÁqÛXñ4£–ÌaE¹ò˜EÕ–4bÖ^môíe¼­•âWc·±^êLjP/…=˜åŽF¯6ÛÌhÿ{Ëgøõ8u4²üÿ ÿ<}“Ÿç7¹Yþ9*“a.òï»·4·Ë3.߽Ͼ2o€_iÍš¾T޹=ÕœÌYhŸêWdtÛ~ð®|¶ºæÔ¸\7gP}àU¢¯ËO³Ò£¾-ëM?ÌawÒ÷CWq/é@² Ä«À+õ·—Ç3Gà_ñR“Výx2ëPyÞ—é@FÑÈݧ…úWUÿj$õúݯÚs‘qŒ U=™z¾+×ü"³xÕ›gk ?£ÿ*‘ñçCéÍOÂûî‰ZdªÏó:F8ñŸ‰±èÏDÆ!…ù8I15«|ªs†šTú©"F †ZÇe©Yž8©öŠô—&ÿ.ˆ©¹dÒJKŽEz–å¾L¥ãJÓ†*K+8‰>ö ²º21ß{X15º£°ûRˆKZ=¾&oü£ª±ÚXiÖÙÉbcX¿¾ñ6™--Šáp:0g³æ‡3–£-Ø–F~«¶U ìŒJÒ±g×`ŽŠä<Ûÿ Vá-¦#9Õ#æmàÕÑ^µ…u]ÏŒ&FitbYÆ´'À&zÂHmÞp6Ãó˜°vó|þi31"s¨|ö8ßÕÍxûœ„µÛfÛÿ$Ï>b•'¯Õ±MEuZ/Ê{˜±=¢s‘JÀ«–VG7.àW-Xg¢œ±YÁ×ô-R_ëãLÂ\/ÇWâû°n@;žÄêRý«OÀ¯ãÓŰ}~k·K¬ºå¦ŠGG¢KLKÙj—ÙÛa%k}çµX»Ç0NzŸ>c²s ùÌ;À'§3† ¬?x7PO}GC°—«0Ó¹zÙ«Fu’ž5™öZùöŸ9¹à:¹Ç`^a:KSßÇ¿kgã7ga·¾mk°B{p9vƒÖ¾íªÁH¬±æ3بiÍǘÀwš¥º£oÕ°´rjgð®ãàWZ‘dB$Á-u“¢ Ðò©®ßáÖºïL’=ìöøWücÑe›¼7Î=í§ûîrÁ³ßÑÈ×Ô“Q{°PæÛË1ïF¿g Í‰Ô{º–yÿªÎ(þÕ`<ƒp.<ƒ=Ûëo~t=lº×¢£1NƒýOîeŸìoÂj‘¸ÞàWwù_Œ‘GüõàWsýƒ²ü꛼ú\ €’ûÀ¯¾C[u_“>¶7F¹ θÀ%µDõÄl‚ž×ÛÚ3¾ý.ŒÀ(ŒÑzS8ÙV46ø9ŸåëúQŒg(íû‡ýïnã¯~Ë[éWbŒ¾Já'¥cùƒ6R:è‹}ÑïÞH{°ÏÔ|½YQ¯ÞÆnÂØèYÜÏÕÚÝêOÖŠpƒÐªTúÛ±_D¦sï÷4`‰¶  ¸ÜÜý024ßþãÙÒ©äÒœ™ciŒáÜf>'îdaoÃÉêõý/R!=ƽòc9Ååõ™Ë.dÌA&}ĵ<<¿&R‰a„f¬<‘4¬³œF«2¿_HߺçwBÿU"3}Òùuè¿Ê¤=Xš–j 3ôBû®­5åiUy††¾µ"FZ%PÛ!›·‚ñÌâ)ËßN J©·9‘%#}ó;ö âú@rª¡\ ­4¨©ùÀKÌ{ŒÍÄš,/ç£ß¯Š±ÆI؃S±îÚÈ~;Ûî•.X‘çÁK&˜7‰#±o¿RM¤þT_‹±¨€ïn×ÚŒïb\[k|¢-õúÚ±Ên=îýt»öV+ŒÇáÈy×Ìíq§±›Ãìå¿¶‹ðÙ…îC9e–7 ŒtÄsW°¾} vÒlªYöÅxª¿}ÞÓìë Þ6Á ueVcuœHÊ)ÕºQ!dd$üjv´.Z®þöMn‹ûÚ$‚_=ç_óZßy‹¬‹›þ3Ñ·^²6òsð¥m…7?cVKžL ¿ª >¹o˜ŒÑh†uf¥²w°•EªjÓJF¿¼Òú8‹¢kÀ‘>‹ŽAÛ‡ú3î%_Êß6ž7ÉéOøK@ƒ‡ü~£›ïwc%LÁx,ñϺc’on”Ý®Fç ô\ï{_õÇóK°‚KÀª`šQ0ýlŠÓq=v‰ê‹Þcò\9×JT øEï| ?‰ú¢üj»ÿ üªðê;Øà×ùexÃÀ«ú´;ãDÿ'ˆ ® þÊf²Ö¢]¥wSK±ktMŽÁû߈ùÛá™G"=XåˆbiôåОJà×&¬»\ÈJ'at>Ö_uªL%ÒŸ”ó·Wbv_Q&Œ¸J&OK¥}§âÈè*Äòqr©ážËÇ)K-¬Ð,Ã>…ø£©Äpͳ- c*OT§¿=Ì+,‹oOgkóh;†µrÂ/­?¸ª Êuu c=úRZkZ*ƒç$Qïå~pŽßˆ3ßâd¸ »)ƒñWoɹ^’i§G¤ ó:“Xƒ Ð+¬»ý(ö}ö¸¬—ým= Fc>ÅûÁLp˜iàa/ð^²øÕQéÇQŸoÿ•$à•úÛ7Âl~¥ø^Þý$ŒgÈ ž0í¬Úþ¿˜’ õú’Ìhù xu’ù1œï“ä]*²büÕ@Œª‡ÞD/©Ö0o>'Û‹9Ãy)_GOÚûcñíu¤utVË­¦…l¶KíaQÏÓyX ã̇õZxæd Ù½´Å{¯ŠÆUn¬c¼èúÆ{1ß¹ÙN[F46Å÷›\{+ãÛdgäׯmwª6ÚEšù~þ+;»s¢{IŒÌ –c5ÿ‹š‰VuNöŠ«*z3Æ‹ž¤=ØmP½ý@‰¶Ì~*D +UzàS/aµ}ð*ÁÍqÓ£ªQ1öà.÷ ð*jŸt|ù¸ÝѲYnˆìvù1¾+ïϧl  Ð ³”zȼeÝk¶¢GКf¬øÜßUÕ v¨ö6ûõV0¾™Ô]Üx9:Ül1ƒÀ¯ÞôI~­)#‰qCý7þ˜W}ÑÍ~®¿ÝÍö÷Ë“2Þír“ýkîS)^=~u+´ΜWeˆÕzsÐ×vÄ«bjé4fnŒÖÞjE=ä®xe`NìÁbúÛUŸ¡Žç5vJñj§¿~Õß¼ ~¥öà*Öóò°“Uuܶ僎Tæ~HÖ¶˜ÁÛæ¦T™‰ŸlÁˆë9Þ„¹‹hhM“+cù8×™½öÇÈDîáæ&ßÜk昕Ñ=‘äCU4ÏÔæúW{{0µF³°Ã€Aç1º…?@¯’È<”ç¤ÆüJÉŒ^Jâ¬H¿UXg°<±#™1S±²iÝeQu°ˆ£#âËÒW_@+3ׄõó‰n!+ ÿJe|»úÈýW‘K»C+ ‰‹qÌÙ ã’ˆ@åL¨P¯ù†•ЫJ&¬ï\DŸP">_–9Ae™¿“JïÙ\&7•,ïúlâóÚá,˜ˆ‘ÏaNsÙ´´Msõ«¼ ´ø˜þ/yÁsÀ+ÇLÏ +h*jK„=X!øœ1²ÁG&ÊGí˜ÿ•X=± ±Òn^=FUæ}3Böc”ŠM¦|ýÈnE«›ÁVî'¢ãÚ^ÙUö1i„yVy ,€*xÒÖ›¸z¹½ÁyšÊxÌGöÎ=àdëз+€W½Élð&¼vuü¿F§¬]/ßàgš]¬³Í)×/‘†¾»ÿÉŽR=·ãÔ`õ¯:á¹+0W=ðÄ­hw}ü¹#y ùVOÕü©¡8ya^;ÒcQż„Ï´5¯b÷gM”ÁÀ«ñnZ´öÓt؃{ÝVwüê w³Ï‰Û{p½Ü7Ä=æ‡û–ò»ùØ–Š|œ³mÑÒ—ÍuRM®Vx……½ÅŒ¿zöàõ&G\\àÕ»þg0È~™¿ÇÍô»ä9ð«½nšÓ½Œ¸ö`¶û¬¦ žùŠôb>ŽâU7œ¡­9³ÐËãhÉœ"݉W·˜D`]3<¥‚yÙÄOñ èoo{ðøÕ0søÿ1õ`VVÛû{íS0=ÃÐÝ ÃÀÐÝ%RCƒ¤¤bw€Ò ©ˆbÝk]ĺ`‚„ж÷ÿ®÷;þžÿ㣞9ñ}ûÛñîw­½Ö»€W=ýmþÌq)…ïh½Ô6Å¿‚€ú¢o¾Ñ$ˆž¸ª~»ÚƒÍ˜13 ¯Ÿ£âo6ëK¶£ß£4}¤ƒˆWI˜y»ì—‘)ô%õ7KpýndsÍÑý‘Þñøv­UX¤/ãpŸTÆ‹nÅ~”Æ(«^@çŸÐé´×¹†ÒÉ?Ré³Ogl@Æ1$Óæ*Ƕ„׬žW^Ö!^>-^>‡<°ë>äò 1ƒö]2‘'“wO¦žLx­ñX©P]´ë|•#Ïs<™ÌdœjssòMx~MÚVŒI㾪QU¯“C¯Y®”ÈóÁìÁ ª&—âóÎÅÊ_ŒçWXu¼TÞ…“¨t!Ž^¹eä[Æk}ƒy¿ÏtÍ.:~U(ÓEŸ¢£>VM"Ï·šÌÁIÀX45ãúí-Áž7cF«=ÞëëeÖéÎG(ÆÜB{°³ùKvÈ(Æ‹.±_ÈUyÒ*¢¯3WLmE^÷ƒÅ*û„\+UÊGL[Öó²Ò›ú :^S嬭¼Áþz3eŽüÌÂè‰aÌ$iÄì¶Ñ®J°OÿcæÊ¼ÛØdÊ7ÑÏì¢õ—ùÆbuMГr9~µKZ`ºnVlÞáùàµèÅ5X1yèÁ>°<ËrÚFªFÑUÆçÝÞ–Z2=UÚ’¾aÍ1{Á”±÷ÉÕ6OE®¸†nð ÜHZø^þ‚Šß.^}ezU+ZOáz\¯#þÝ„õÙŒÕ?/a͵ÅUç —b•6n©BỦg±Ê{࿟‚;TÇÌÐú83Ü´h]Œý4×пœü\ïw›¯I¼Ú,ÄŠÝÓ~ºo {ð˜ý%8|gõœ~¿¹_*H1®ªUö±4ž¡žJw„`-Ûp·Ê|ÖÛв!À«Cè?­ú2=ºJ1':(7ÀïÞ'¿ª$ƒïœòGýEŒè.Ø ëÜtÿ¤ì—9î°›~u;äZ؃™`±Ê†™7¥‡D¿úp`Ê@ˆ¶¸ƒú®®cÊ„ê™ àÖadh\ó¼E ã¯RÉe²xÎZ_ªÏê±§Ðfò¥R¿½±D_w¤ö[2ã6+1ZSñ¤&þÉ&cÒóÇ\òœ¤xa7î8+uŸéͨ0U-Œyþ‚ù㫵ÇEœ»üª)æþ4×ÜvO¸ ¦”ÕêwĶF˹'ÖÝmõS|wùöàÁÉà¬-ÀSl0«¥º,ÁLÓ(¶½˜UÑã¨yÑÿmbŽ“_µ¢^ßÍhË=°Dç1žaFt¥Ë¿ ¬é¿sïùd¿üê?Öà;þkصÁ¯¶»b¿EöÊx·ÉÍóï¸RxµÅ¥¹ïÀg‹€ÏK'«šQjïuÄ]4ª¼úA³X5;tFò F£+ëMÜe²]5Wˆ«Ô žL}?Æ/@ÿ{؃z>Ø}þŠ;ëú›ý2ŒÖ_ó­ý_¶U0þRX°>yØ8i€õ¡1#Ðת¼˜‚90Ø<ˆ‘ÖuÛŒ,³ˆü¡úwp|]Ü`vØ"3iÓ 37øF¾ «Ð,6«¢oDº3ŠSó÷0ßY#š‹«3ÕÆj9ÍÝWíÁGÍQÜ=¶Þ?U”Sh#eñN)ăt2-ýN¨3œÈx­zŒ õ“›±Ö›2¯<úÛ³é¯L{™TX¾d¼zD&}Ûq}Ñ|*^• O=“+ÜÅóþÒâñWá™d)ž4*[mÖ ž5U¥vVN¼–kkU„>·1*ž¬R´+“ô·÷›;Áv1£• {ÒwVÖEéÍëh>š^•¢ÿª/vÏŽ¢Ù?;Í[Ò x¥Þ±F°gê²–„æò|lÁjRŸÛô~©Ç§)›Ùkp/{ð50Ý!nÄ:TQëdWbþ[×þ)Û­F­£©e›‹2ÛËÀ•ÌWŒo¤lð ëy%£]Á¯ŠXó«X®ØzÁçìñT£—Š™£É«Ì@îM1ËGÃfh œ¹\iŒ<‹Ö´2i°?.ifòJÓIFFÇáWËLl¶ ìs°’k›¯À¨FaÖTÇUFa-Þª‘Ã}±2¯j³>ÝðœÁÕûR¿­ æ^K¬«j-=õo ÄyÞ”·»vÁ*x6ò­k »ìs|4÷ü‡äWýÝ‹ò5ðê&\é"Ú7¯:íýÀIçãZÍñë`©ÿƒ«ª>ƒf·ÆHugÆCe*¹÷j¨¾†*Ъr1ëãÜaF‚_tƒ_eÙ§Üu¾Aì)ð«‡åVàÕNØMZçcûGp&x×vT} ëÑçS‰ç)ø ëMdI46ÚŸög|d~g#ìÁÍàW“aÎôǘ³Z6‚#}$Òuü†ô±=¸zâÙÖâÎq¿I˜‰3˜½©ùNû1}iÞcJÁì$Zƒôepº~¬¿¿QÿÕFÿ?7ýò/÷•ïç×ú%°¸¾¼oìµpÛ*(ÿ©‰>ßFK"ë^ã–á®Êb& ßß0-9Ÿ•=ën’J~µ„U§V˜í÷‘<ãaîôµ}sæÅ-2ó¢Ç`ê雞îǬ*MßNc)Ï*ÑktüBÌ×bžÍea”ÕÓ—ö`eÍ_–^q{ð)“+ßÓú2ïÉ(¹zÈEøDë –b¾ä1ÌéFhM m< ÜkÎ× 1“žÁêÖ<Ȱ_žƒ]¯¾²ùÛqæ%¶®“‰Ù%¬{½M·©v§ÕŽ»ŒH[ÈÚ7?ËÍŸ¡f`²T¯R©=ƒò°µ‡&ÊE[)øŽÿó@£™òz@½ªó`£ôjhDájØj;Á rЛqò ƪ@s%£ŸØÍR¯W›Ò/:«ìFž°‹ìÑê+'±™¸J°cì‚'¹o D6–…%9ü¨é/OR×M5T}¥/•HQµªÖÂs¦œ½üª#žo;øUÛâT£³4ÁÚùÐóZà‹‘YÁbô`D ÏÐ XÑ {Ábê‹¶Ã=>†öÁ¾­ƒO­†ãêº;T"Ûxßîmþ…÷e®é”H‚›¼j‚¾ïjùWÝ£î¤É·ûÜ-~_lKô3ð«cƒÝ_ {ð’ùÂþ\ ÎYR}ÁÜ Ud2æeæØð«šFóïŠpŸîhO;ÜG3‘õ|az¶;xû¿1Êj{ÌÞàòÝQìëÍPÞý‡ùΩbbšï|Êk½‰í~)ðJãEÊl·ËÍõÿrŸK¶¹UÇo/àÉšàù^“ÁvVdgÖO½ØÖ€Pm"͆êM]›uä_ê÷W¼*”ÊhÓËàtuÁçT‹GÀr¶øß\?Ì_õõ‹av7ßQ_à#A>zñ>DR‚ÞŒí^ø?ô¨V©ŒqZDåÅdÜ£6wgª®7d¶”ÚVš?8"^Ïk¥yÆ^ŒL&² 3‹}ß‘+u¥¹1z.Ò‹žåªàW‡?–ÊóÈ~ÌÇ) U•Áù¬îsÿ§'“NÖSÚ$ÅÕñþ©GŸO‹*~ªÚhŠ4U¨™I¿VfxæÓOTž•iÂØò0÷0ŒÕ̤+1ù™Af¦õRMc&až–¢V™Yó Kó´+8–JÛ"…žƒP‹–k)F®çÄýWÙli6YÆ„u“L¨•kÂzkÀ¯Š1ã4GºzvÆMëÖü©)ÝøìKÀ¿ÊËÏŒO8‹5¡ñ¢9Œ¿úDFÈ}¢ïšš¢Ù™Ú¶²`Niô·'`4éR“mÓ•´“(«õq¾Æ¼¿Ö„zÈ}ÍXð+½f{c쳬s;Ñ–b=ÅüÁÍ&*ÍlCÑŒ¨+ò*VÁÏ¢½á¤Zð®é`5æä¢¼ª-Y<¼b+'É¥_Åúž(ÇÑ.]Ïs<š?Xcupò)¼nKõM3–ö`‘ÉO¢Ø'EuÏW˜¾Ò,:3npè]ȸ¬à2+ñlor/‹^»Ñ<ìR{óaàü úÄ´fÕ5ržu(VM7VVÈàªÜ^óº–x’½S>Ç;ßÀ¼@ÿÕYµe€WÝ€Wªý»Æm^]¼j «QU§5#·óm¦bm4g%3èѾ˜­±†´Êãµø\UE˳vØóXÕ0.£Z“}t$Ñwc¢õˆW aÞïNc¯xÖ]m‹¾q}"ÖÁmô}gàÕ·öL ñW-XÏíV©Ï|=߉\‹5ÍT¸7-¡ÿ˜žôWÔ0·’=ß î1½–eæD¸÷*v€ÍfìÁw|¶¿ =þ—¿Æóù_Íeð«þQ°ª²G¦Ã>žå»¤ºy@v¹ § ©íUMAzÙ!¬3í¸3°€ú¢ê•P„wö`Ÿë…Y­ñ¢+ãzK-¢õ¥R#ýB­Óí[ù þªë¦•¾/ºÐ/EË_äÿ´ªùüþJa|{+ŒßàU]zÔTýöZŒooŽÑ.¤wG+P ¸u3s9U7@ë^e¼¨æ®v&»YdGOGú1ž»*õúêqeg3¨‘¢.Æü\ÜÕ sø}¬µ”xüU¨¶·ò’ù—F$húÔxnà?µTõ|°6¿©VK[Ö©I`äz/ZŠgˆ˜}jœfñU¹\*3Ãú8z6ù CÇžGë0M&šéù`eÓ+Η2Yã¼<Ï syžX./Z ‰&¬Œ*8§0V2‡¨QÚ<¼š€U£1¢MÐûq¨Ñ¦µ€Íaù„zÅO˜úò'ý秱ö’Êø«¯e¨Ü#aÝ¢«¬t¬u+à ñÃÁ¨¢ÔîKÄÊZˆ¹>Šñ'Ì%ì#Sès[ˆ§qæªsÕÅü!‡¥{ý:û›T²Û­rÐ'aŸ6·-E9â7rt…õT ^6í©ápÕôªíØž™òµM Îs”^Å7¿I{FOT/ÖÂÓ|Éq؃Uq|yÛÌ“­è­–&[NF_µ; ½Ôt‘nÑYà/µÍN·{¤ úû‚ê°˜·Ðï#1}òu³>Î,V¥œ×Dãzaööe5d­çU s¦1í•vè)gï““X^‰|íZ_×ø0i†µsÂã“›Ýn¹j&«XÏ«©O¼j”ÚDÕÎfô[^õÃkc¼`U™r³ÑU¦ù«O£]Á{޳’™æþì&FQ¦¸úþewð*ÛîtÓý½±ÑäQ9ëçÖƒ‡tÁݯګÁÕà3[$ÚcVH KÿU¶ÙˆõUÍÌD›5‡[µ+ ±š†2ß¹vÍ/¿{ÓBÖ•ž]î*¹·À¯7“ü9÷žÏðk€W—ð´§ýÇþ'Œâ~¹Ð-òû€W3W W'$ß<.]YwÈ[€Þ|]®±×`®vd% {Ó­Ñ 0#™ï¬y•û€Wšï\ £¸7B´:ÑØ Zob!F¡$,Ã-Þùž¹7鿚ïµ"É%àU!õ¯ÚèÙtE½¾Œ!©ËÓÑÇóâþ«Ñè‹ÕhÎI­Ó£­þìîÃ0:ZMk¥ù—½)& j¯ÚÐ÷´ÄÜý!ÒŸ¶ÖÜ+dÄã£4.D¯S{Ó;ñÜW:Œ^Í K9E¨šN¼J¢m•kÂzáëÖù*O^ŸÁûêõë𓔸:CÏË*7Â(Ôl*»'ÑÎ*Mæ¤'ž¼-‡'‚Q>s¢•£7-ŒoO$‚¦²u1ZýÍ?õRUÓ¦RÜoV…8Y’ç e™óœÈ¼žP¿=…÷Ë'ST´Ö\æ)ÀÍkT¾1Áô窙RÒHz“ƒÍÅl¨-¿²Ï?Çê»Ã´Å·C°ÉzÊ<³+„ýØšñ¢1Ì•GL¢4Á»óêl¶FôŸ7ÄêÚ¼RœŠÿðC³®Ç?c”‡¡==اWz†²È~,ì«Ïõ¨ùÑÔ²-D+nhüÕ @-j‘InpÀ´a}g#ý‚ªAÏ ¯•Ïm^ð={ï%ì®SåcƦõÁºÑóêV…FÔCÞ‡¶«¿ý`ÚâUž|=jwa/.Äj £¢±¯®6²×ÎAë´vðEôI­³Èú8 Y#»,ëyi|û|£œÑš }a^‡otÃJî‚5܇ڗ-Y…«Ö‚æ;ß#§`Ñ\5#—an¤ÂS{)ôü­Ö‚Yáî“Ëf\°ˆuU¥uú©ãEa/n ¬ÐÜ s¬ÛÏúÛUÿ©;½.åÁ¯†á7/á[]Y½wxĸy°뙵f¢«çßtwÃL±[ÜuþplgôcÙ(b=Ý6?üꊹ`%òSð©U”Ükn“:2‘öDpsÕo5Ùs° zµƒù¯éGÿUMìšÿ´w^€>É1Ë£+]º{;:VóVýî¨ÏõwÒß>ÉŸb]1WÌn?×o£>Ã^ð«½n)õÛóÌ&9ìò€WÃhƒ¿,ƒì`´¡'z«Ðóqòâq[EfÀT¦7ë½¾ìIgG‘-‚·L'«}tÅt ÊuDŸkªüfËŸÓ‚~h2B¾Ç3ÌCïL_KS{Ãi‹/Æl˜,Ï ÚÏDß·O‰V+¾Á´•Ñ™Àñ›MøÕ8{DZ`œÏcveüUk¬¹æ6ÌËlÖ£×^ŠW•`%>´»sn æX\¹֚Ƌ6Ã?êooYXÒ®“³À•¿Ì®ÈOÀ«ÝîkX0¥­ïå‚_µ3óݹî¨xõ+Z>øØ=ÕÈ¡V–z9¦›¯Ì·@øîl`ÿ`¬¥.¬ž–O5óY­íEó¾ÛÏ;0¸én2ëytýëîv÷ƒI·¯¹Çý!àÕG²InŽÍv›ýßhyœúWYøÂ,–zRŒy­±’Û1{j¡M#©'Óïiœ×FÅÖÆ\YÂ*ȯ1Ê ×,‰ÞŽôjôZìiSý÷àW€W¹rÕö'ügþ/<áS~­ßäæûrüj ðê„ûL*%_t¹î#ô{ <Åk2Æj}+FR܇þhN®VhCCŒËp¼û,FCõª© ìÁ¡Œoßç“}C?Žçƒ°œ'}„z2o;eysü Àô+Aºïà¯X™ ’(·À½3¿s «c¯D=êZFõa´še®0YS.цód2ùÃ"ó–½)¦ßx˜YÌlÍšî×›=Ñ”hâN]ó7fä?ú õ©'Sšñ ÅæSª[•Vk6ÈxÖ›H5¡2{2çz½Û‰¬¹œA݃R¬“Æd–aŽG%2ª Ú›5Y=5Œ+(K&U*®¢ž?[Ôóš0– Þs=QPïTò«ù’§)J¼Ê£Ï=ƘÒlV•.ÉÌÈ|*e— Ð{UâölÆ]„zÈD¯F¿æÅµ—L¨ÖòÆù¬Éþ(ý[ ¨ìÛ›-­bÒ¤ðJó}fhDˆüAOÿçW­ª}¾ xÕOÖ²` ̳V´ïÐGÀ©š²çúc'()ê‘,Þ™‡õúð{Áz9Bžœ†Õ×øµ‹ž¶®æ7yJúq ÙR6üJÇe=ÖsgÛ]ô4AõEo4?ˆžWúÔ óûU‚–Œy˜*çmJp–^Æ#Ê!ä íõA¸ÛJܯ%ýÐË©¥£uV€yÌæiÒå Øƒ{E@çš121:õûÈ‹öû˜hœç—è…ÑX—507{ãÓÕØÉ«²Îñú¸=˜kßoúÉÃFµvû 'Ú2ÞAããþ¨[õ4øä­róû²y4rÆ5s€çŒ0M¥ïâ?¶£°–†«ñ»?‰WªÐÔ¨»É¨ÒVS\{¼9‹½d€Ñ\ìEÌ*B}å8zv¼‡ 4€W·9(’â&¹IѦªëìjúWÁ¯Î_p«ü”ØSÑSÀ«E°Ÿõ³|ùÖ|`ƒÈ•à4ìÁö`ã+¥*ðJýW•asng>βšv´†ÞCK´rŸfLhtÀ­àw 4›üêUÚƒ£ýy÷¦Oð÷›T±±!þ+ÿº¿ 4ÜâWúõn¦JÊ÷”»Þ¿ã>’²ænÙéòÝq\»óç_2Ìjn~'­Ö~UH{ÏÕÚNýöGèo¯ŽY^üª¿ÔÃÊßçSÁª†ûy¬ïÜÌ?á­×ñyÑý€=bš_‰§ø3(ữÊòÚ¿6èKæ4„þöÔo $šÅü–T3׺ ¿KäZhȳvåE…行-‰á˜MˆN'm–¯Š°^Àá·Gß "^ÕÀÕµ^vÔ”ç%Ê êcíü—™yÉØ‡c…zÈD–2d2eÈT’kKoXã2¨I•çQª!“IP£‹óÇ¥ü*—˜–W¤Ê3a½Ô\ú¯Bõlzϵ²„®ÿ2ªDÚ«iD®ã8U +FN•ÆØØ’q/~Oâ¤úÛkÓ‡š÷·g°VN}Wåâx•Î膒ü~*10ŒÅÚh¦_X£+4šaÆWÏ'5ß¹-ãEÁäµèerHÕ¾\lZ‹²Èuæ¨t—›%…1'?àéGšPb‹I`½Ô’—}ÌgO¦^ßlôs?²Ë‰æ'ìö“âçZ⟻ ì³Ò‘÷šn ðj3kI¬7—L3ÛHÔ¿ø­¼Ž6}Fm™ ©¼Èzôª/Ú+¨ ¼Ò1#_Øüà4÷€Ã˜­“a–Ãø@ë—cTc|»Öw~ë,¸ôš/‡ÑK­`\ˆ¾k7K5 ÊJ3HÖF§ ·Ã|ÃN°ûE+s~| ~U ót}øZÏ«ÖÎ:`Í\̃rÀ•‡Ì0Y¯ ˜ªÑPÿUK°)³ž›°B µ:ƒn\uÜ£î;|¿µÔÅÚùxUhºÛå´hE¬ßÑêéx†¸Z•Zú€WœÅJ ¼ª†™½¯4Ö}?¾U‰9Ïãª'ó£8+šqàW+€WÍ€»×º–þC÷ûxõ¼[ám^=.‹c}Ý.?É•£ö‡à·à=ê_m^•^•VT6î@»&S9]óq´bß;èÍ}®4¼ mZöºÏnæDoŽç;¯3cü·îCówa®ýâ'úËþ5ÿ›‰Év‡ßâæ¯ž–nZô¾;!UÍZyüê;"qo̽~Vk4´Å³êHª†K}Ì«rØÊøoKŒíƒô·×ÏJp\;QKä /E}ÑyêoòÕüNÿ§ |{ÅýäR¿½½ù9(EÿU<Ñ&‰2^Tõ5nSĪ‘7_‡÷êbîǺ¹ ý¡û¬ÆÕéH˜Ó¡çƒÓiËÜ`^±?Æõd˜™¾­oJÔ\sGtw¤/YP%µ‡1¦áù~{Ü¡WmC¬Ô㌿ÒÛ•@âQd.9ôn'ó¼/›ÑŒ)Ä–ŠäW™ä$ÙôŒ%iòY½.•蕇>kÈHÌäxD{x §¹ÈM¨û§Ö•ã9‰yŒÀÒ‹Ç}zÆ,eQJ0Ž=‹ )› LÏ-Ãz©‰Œ’ègÂúΪ¢Z›1¢z&X™1 ÉôÅUà=L¨_¿K1¡"NX qÖÔ GOÆ0Ç@krÕ4‰ÒTF0/flºêr•|éz8Òƒ>šj°Sv©uC h‰VÕå \C̱èQWïL¬ØÑ&̉uWÒâø’÷—#§ õd*ÕÂ:ƒª1Ñ€Ü-T®Mn“¯1‘O´«ÈX÷¾ŸÄ ãáÓuš÷_…z} D¡túۘ͘F»#ë+M~•À;ô%z)Rõ« lg>O³˜Ù“Cë3‹g”¥ÇõOµÔÚ‘zÚ8ìs vHµ~5bw¶éMÞXK«BJ/î zª—"¿¡Ïc•n2=D=y{Íqð«[EÙ`kàO+ü>‘ñíLyò«ì)•h¿7Ån´*8©xÿ$vû)—EØ+TwFÇ¢7ðjó¬“ÍJ[ɦÚ'¬ŽÁsÕ4´ÍDÏeÏËìÖgD}å¤"øU«ûËÿL÷ BЊzÅòƒÍ Ψjœ|†'ÔHðyX=š-’‡Ù§50i±yÛŒÄuUe&S®F?€=¨§<‹€8·E¯GÜl:Ë[v8ðªæãWæ´ùuæ^CEª‡°Bë๛ʵ9ÖHyU¼ºà“nT’©GÏYzÝ[¿³ì6ùëüŠÙùÓupÛÝ'&õ}ÿ‰Àø«rÉܼª«Që .Áµ4’|3ðJ³ûb¿@”‡;/£ÉÈÑm˜‘j÷j}­Öö²9C}ѲfX¤¤»ÞG‚_uÍý{n=ìÁDàÕRÿPl_ôcyB¦¯6ú)Ô“yÙþ\ >³qßmf‰Ô••è«^Ôê O8 (Q@M†¦X[ÏEªPmw)˜ç5À×W±²õT½8ºvÙ)0Ö Ô¿z¶ÙrXà%c3ü·þmÿ?ðè­~…ßîfù °çºn®—õ¼”_e¯šãI?^ubNð5¬t­U!ë™…ÔoדÈ!èß#•Žô¥ÝoR\ W$ZñMŸâùÉ~Ʊëãüå4^íˆûÖ ¿êjþÊø–À«ÚØ26’ô ‚öô¹Hê·cOPÌÓ¨¥QTOìÈ5ªžÍÒµÖœù““ãñW/ØO#Ŵ㆚‡a¶¢wy©y$úðJ×k5Æ‹6{ºb«Ñnª †ÿ[<ºª7^¿ËeècÏ6aíšlF7”Šó«JÔv)ÁÈ€ 2ªó~{6ã|ʱîIyZ’åy*X–6W%>]éøUs‰bÉ&T/Mã»Îü£'êÆ$óÌЯ*òêÞ„UnJÓß®º ™ï\š|¯:ëÑk,}>³™²ÿ/þªãESx‚™¾*Íw“é‹ÓXèåÀ#=y¬MU~dpU±ú˲>N*Vøû&Y.Ðo l£iC¬xÆ‘BY$êÍ/2§ÈÄ“ÏÂT•f<Ç쎠†4§Ï­!FxF@ã<{›Ó@ˆéŒŽ½w˜N¦vè@ó§<‰ûjÜh»Ûÿ‰Æ3$bvk}çæ¢þÅïä Œý)¾®*•Wa¼è/¦øUXg¼ül«È€CÌ‘¸omÌiØé{qmi}œQÀ«èµEàWׂ_å`Þ——_£'íVQòjÓ\*Òß~«é oÛ¡ö9ѺϚ?8vOMú½gQ_TGyvÙv2›Ö±ë·”ûp·QÌì‡Xëyiv¿æŸbEï7ÙvØSO´~_äGêÉ|®ZR„µó>õÛ—ºWå;3>X„µö'ÖÁpÖ›è‚>߆¾SµSg8O[½žl!dÆ¢va_Œ¤úÕQÿê9ìÑjæ›àW³ÜÔhíÁ¶þìг&fw¸g}£Ø3Ñ3²MæÄŠÝNàUGùü*+’9oÛ¢=›[%W&3V³*æÎ&Úa×Q¹®;«h\$‹ëŠ;­¿ê­+¬¯zw~tËpßFõ,bŠ?ÉxÑ[MiqàWßûþ+óÙ¼Ú¼Ú ¦=Ñmq‹€¦_#Ö¯´½fŽ0¯´Fà üÓ÷iÉÈ¢hßt`xE0¡v@É»ð¼ª!¥ñíy®“¨ŠjBÔñ3é¿ò¾®_~Õ3ïßî?Ô?~ÕÞüdú"o‚ò¸ö}àWšS‘µ¼Õ¥1â5ÑÇý€5…Ôf‡'sGD#ëÚáéu•7^ÇLÑh€Û̿헑éıAf­oì[߀_}鯵Vh¸¿JæºnÈXŒt*^åÒGÕ£ú®Ö« #RâÑä™´j’©ZŽV]¨‹•nÂúꧪN“r¬ê_¥}•%Z$¯ªÆówÒÈœ*˜°>N:­ý†§ÇêÍ«2äFš›ã/ª6Í?ñ¢ÉôxÅheöfûi–C¯)6–Åë4Ö›ÏòhÝ%“ f›P9 É|–»ÁÐ_ô®µG¿ÎAO†úí1I!nhýÁ—L ¿Ðöü£´Þt¡æð6ó4©Œ(0?bEj=zÕ¢yÍÔF©¯o„V”zìÅVà±»âQ®#Í÷`'Ó8F‹ÈpŸå“u2Ë:éÏ<¥Ù¶ðê «ßÑŒëÆ°õó;؃KÌ[¢#PYJÁìfuÄþgz¯Z±îóLùÕ6f½‰tàÕMf‘œ¤'TsåWj½,ô@C¼?¨Û}³Ð5dÞ-2ùÀ«Oi÷ÀNì*µ£K°Bn1½d·c_—*̼Wú¾¯gUs©{˜ƒ+äù 2!Ø>Ô y×Àh†¬ì¬J3 éV­ÎC&ß>#_a[9ùËuv;É Š¤©áOÙYhÝ÷‹œ13ƒ›ÁÆu†™ðýnh“rãšÀ¾èùïÌY¬ÑB´gÞW`#ó$õúª`Þ>CMŠÌû¬0âÕ"7/Ú’õ¼Úùg€ _›»ËýìÓb»£§åi™[äöùë}7¹bŽ[¼ú‚õ¼¶šeR ²"^Wĸm6]‹±,`MÇð|pÚÕ‹õQ¯ï(ú¨!î{}ô—åί7ƒÀ¯Þ‚m¶xÍ^}è²ÉßèŸp7ù}rXŠÁ7úwÜ)êÉ<ëR©×W„yuBFÙ^èó¾¬{;ðJ3&ñZ_鞤ÊýÝ1ÆU€±e\%×MT ì(Ï'øÙèÏdßÚoôW]?\õMwÙ÷ökýôÑßAŽo~¥U_5þ*1P˺÷zÂ$ˆV© F9;GsŒu k\¼ŒviŽoSàMGÖÇIÁ÷nvO¡ýt‹9~5‰k­yÌ· >ƒÖsÙ=D ¨¼:¯¸¥þ¥ÉÔ“I®ŒÆ}³È…z£¯¿§>Cr<¢3¬ìÎÎú£²ãª0¥è›*Ǭ—PG´Ð(¬ ¥µ6«0¾S­µšôU¥0·¥O •{d2ž!ÔÀJ£?K=A1jl…çƒ9&Ô,Á@õƒ…ú¢ÉŒòÊ WI$¿*͸ñLÚž•L¨Q“š¡6`.=U¡¯>öq¢ kå”ås¥c'~«öIòÃ.Œ|b´æN 0ª\éJ¿ýLóo¬¦?hëÅ:Ø ËHÏ 7™O¥ø•òÕ¬—êMÔ2o£ è›{°¡Ô§]Yˆ~ÞLÕ®d¼úx5•qªËYŸøiڨݱ»¨'Ì^9»‰Ú쟕Á¯”)^½hó1Ñþ++™Ç*þ ¼Ê š‹ÎérÑ– Žs\^BÍ&”Åø÷fµQ/¨„õ£1껩â´Ì£¿ì¡nRù-zÆîÁÜn¦z!Òöà5¸c_9{pŸh%ûÓX!z>X…J1 pÍ0GêKî0M©•‹Þ¸ýpöü0½ñ_ Yá¹=õ­ yö)9¾/¼ºìÚºmîKõ•ÇíÁñøíl÷¾|jf‹1×® FhÔˆ†½@=‹¼úÖ(ó莑˜…¾€'kVÚ…§â5Ì0€Nèñ°¾Õß>$q×¹™Ñ&°”&»B¿×=âN™T{Øð ±À«}r}lº;äg¯~6ïØß‚ÄÈ·ÔëÛnVKmæt«Òá!Ì¡zxÖqô··gôÑÌ$ŪÏxÑ‘X©Ï­þ®ö஢;Už2ÄŸu¯øøU†Db#€W_û˘i;ý*/ýíÏÉuîð«÷ÝgRÖÜ&[\Y§_ÛkôŒ§žLW\¿¸KkfOÜÌ|µÈžÃìî l«Ž§,Íúƒ Ї¯ùDß x¥Ú%}ßâÿtõŽûÞ_ãoñ‹Ñ»ƒ’àWÿc=úG¤½èkŽ¿JIXGÏÒë`¶G:©©1cëº2~»=íÁ©d!7™—ìÙÈúwzÃêmä Ð鬗úìAõ.W‹ÚË ÌªÇ®'µã1m1¿Óè‰ê¶žÂ:LeLiFÜ7jÊ„ÿ‰ÿ ó—3Y3+ƒØU‘õ™rÉò˜‘^‘,(¬§“ÍhôŠôd…jy)´C¿w¹—ž7Fx*Xž卯I~cÄDf\]&•ÈœIO|ž5%KS¡»<ÏãTO¦4íÖ’ŒËgÔ|X•:ŒÉO" ëã$Ÿ6¢!iI„´kcÏË•´çªþ(óq’®¥õf9ÕÓÀ«NÀ+ÅÉvæü~,ýiªfY“x¥ñ Ï€Õd6òí +Ô:ƒŸ€µM m¸„1}Ï’±¿Ú&ÝÉåÖØd›dŸ´ª–º쩆mÀsÉ‹ò2XöfÚ¤•%5ØiÚ[u±20¨ÌúÎifœ|gs‚OÉU¹X>Ç6¡vÚm¸[ò+Õî{–üjPm˜¼€WE&OþŒ~bŸ–ª@„9¦‡tŒŽÜVù*øÕ~Ñzò_ÃJ˜ŽßäóôoÐkOUO¦%ìÁâÕ:Óx5уçyÕðôu0'Ïjg:‚ûU°›¥€ÇG"?¸Žn½Ó˜‘BiéûûwìX\®;.GÍÄàFâUöòeÔm‡™}Ö†êɨ¾âU/Ì‹™¿jž¥šyõqßçñ"ÖT¤nD’\±›m†öNpmüSîawÆ8àÕiŸÛ¼Ú#+b7Â:éÛ€[ÿÇÚH,ò¥ÕÊz{ÍíRCŠ©‡œ‡{l£úåXüUŸ6ÁS½†–h=_ÕC^†§Q}ÑExêŠÔÍ^©vÅpàÕ¾4óSb½ýWþßþgó«ÙN÷(õÈTwxõ ýíkå— ~5kw°æ‚ÙÎFë/Áï2-¹©õcÇÓc×»ÊnžjüÕ&Û•sí¤õ’Wc½úÊÿrüÿ‡Óx†çÜEÆ‹.Óh¸ ÌKíAÕ¿* {°;ú­î»Þ8쿪g=û»zù3€ ÚÛ­y×ÄhÖR;ž¶¢>ÅdÚ€7›×í¹Èdž1 7ƒ_µfüÔr³-zœñ ɸÃê·'Ò^k;».¹LÌ?/ÙŒ-è„û+µ L– ë §‘ÉdRY="´³Ò©õO¤§úÄ¥©ýØŒ~Ü4fWa”Só «ÓÃ]š¼)“qæ©TUO'v$Ó³®XéɪB›Ó½2©ŸÉשäeê]rlÑ@¢OñS=€)Ôm®Ì;$Rÿ*‡¬ª11̾N¡,›Zú\÷€ß.¨ª¬F` ð*›øì¥Šôä®(#—ic~Ž‘¹6’zúwš¥G¼>N¡9Éê!šTÃ|fªK ÆÕ*•Ã~¤­Ö јúÄ£|‡Á4Æm0dviÅ´Þ&F…tÅåŶ‰-i·[Íozö`=[]´¿¾ƒ…?×ìcÌj®d{M«¯ÿ6‚ŠA#ò½Iò‹­|HŒÖ³©b9?.4«½,Ú{Úñf{´áu38Xžùƒ?DOÀÔ :‹Lsé…VßbÚÊq[l_ºx’°§™ÿ0t^­Å<ÎÁ¬ɸR=åÎ3zfßXÀ>Ü.~r§‘MX¡¤~WˆY}öà&9«Öƒ<¹~µ +²¯i¼êéß´s°O/t¿Ë13x¥Õ‹p·Xzâø ãÛ[`ÅÃRüœÕ&Ô÷½O8÷Ø…¹]‰9bÏ26ëßøN£êã“aÎpÓ£u€“W[Ý}îàÕVØD?xÍwÞ%Kc+`Nõäª9f¯ö`[´ôAs£T”YŒ­­Èx†jYõ—U¡JB0ðkøº&zm.°lî?÷Í5Ó¢k\º;ƒ}r¬?å^ôéþ^0Ú’±küOþ€¿Ü^ïWúunšß~5Õme=¯O¨'sö z¦†™Ïd°í^në÷4kh‰ê™lùU Ö¤ÕÊÞšXÿ·.Íõ”:øÞ˰A«û)~*Z¬õ7ø_]OôÝawÁ÷€-º{‹DaÚ@í}gH :Sçp°þ%µ13Êsú`¯- úË5Xûëqï4*|4 Ú™®"dŠé º,õëÈ ZfCÊ }K£´æ˜íÑ"ýy–Vüj5ÛKR•a8U¦ÒñN+Œp.}&½ÐÖ£Ôg(Cͬ0ö»4c–²è'/Ã(¨Òô'Ò/”ϦTF4¦,ï27K×Ty*’†±XZÍ+;cÏB s«Ãz¬ñ,ç\F·'0w0“Þ«PŸ!d`1F˜¦‘ý¨ÿJkC…I5ä«2g°íÁtÆ0”`ÆuyÆš&ÓŸCÔýW¹&¬Ñó(l–[jöÃç£7BM˜DI`¼h"öëmæ/s‰¿ýœ'ºª‡\Œâs©)73¯5ùÕpöIuóª©'Mh«ŽÅ|®- hó6ÃÊ݆ÑÓž›bÎ[Œ'Ç\Š;OÂZRÜËx»S:ÿµ¾³Ø­VcZÅJ͵u¤Zô­ì†î¢WiÉ ¶›n´ÿ0Ý‚ÒqÿÕ8ùÑf_ÒÞ|¬}‰ǽ4OvªQ½[­®ñíC ¡E°”fÈ3è¿¶Øí¿‹žjVÅx.6 ¤ØÀÌ»Bð«EöEÑlå¯Ñoy>ØœêS÷Pÿª®÷ é é«VÈ“˜ý½˜SD}wUÞªÎ*ÍÑkÏ›²ö1¹€OaE¾^­sç´â‹4ñý[vÚ¼Ø]’ÍÐàz Ð%ÌÛñêUÊöXd={1¾ýSÚ¹ª/ú´Q½"àU*ŸTÄÊí‡o½Ž¤+õÆÃœ¼jˆöNv-ýcîàÕ¯²Û}æ/øíÀ«ÍrCl;àgøöò»ùÐþÄ"Ç­Æí27Is™‹ç(båÝàQ“XßB+æ5Æ¿oâ9«Ñ\£ d¯ÓéoŸ]ëJ“_m0#üÏîeŸéךt±±þ¼ÿÿÑDä1àÕð+­G?Çít‹ý[3ÍÜ";ð[ͰÐö£2ÄÀÈuÒh5ÌáVìßbê7FÛROF³7G£-÷™d—¼Òøö×é¿*özñíü“XjýpÕ¯úÂ]‚ÿdúVÀ+åW›ÔHnÐO׳w=vò&ܧfâ¯eôG&2Æëyfv©/·ZwZQ­1»Uÿ*…óü5{†ùΪ‚³ÎWóX«b1ìÁÀ¯´ê!?G¤>¨˜cµ/ÐûÍ_ñ:ª'óþÍ`üUXðR†V_r¼Î{>Ïôsè=ÏàšÊÅ•š2«'‰þ«Ú¼kùU^£ª0W:“žõÒ´ Ëð·a®³>•'ÛÊ#^ň—q{2X‹0‘ñíe¨ÜŒ9ß‹O¥øV‡µ$ž †¼.…>ûòŒ õý²øËÆ©jÄk)ò¸MXiËÀ–Óȯ†c¬{2b¢ /®ß>ÖX’üÅ>ùëà!Ó—¹0™¯¤‘,–2ÌñüO-¹Ss@ãÎÏ0XXŽUäCý«Í¦/w€‰æcX'“¹º k`*V”ZØØÙìŽüü°Ån¶y¶vBS[[tŸ://md½ÔI Ž˜NVûVñ*!h&Úçcå¼Í>b†æKæN³PN /Úc†] 6ݳ°fõ2X¤ÏP³ižy¿Qÿy¸¤Ö£ßŒ½Xõu ¤qt¾wPú-;Án¦˜ç1‹G™c¬Ž4Ïu;zC3‡aýÉfªLB« XWµ?Ö®êõÕÁ*jˆQi@=ä<íASÑ®—/Á´Òekä’+taEöÇ5 ±vÞ²ãð•X­ÇM¿`îõÖÁTXŠW}€×1ÚgZð5ö’X­`îÃÃüBõ_ÕÆhD+GÎÑR+g&€_Í…=XßÜo&ºVþnÜ÷”ùׯþG¿3zRvÊ=±9À“©¾5ðô¿ö— 9i5w›Y-e®£õwÒ5›õ&ÊaÅ6Âÿ÷Çãj3bD륾fT]"ÓL¥=øqt8ØÿµÓÚ÷šl1±Qþœ¿ß_4%d‹ÀkÃ9$ÓÜ6·Ð¿ïÎHs?øU:¬åÞÌSyö jèõÄhv2wSŸ¡úAíAÕ¤k…¿Ÿ¡ÆËH¼—Ib>NMôÿË>Å7ö£ü,³Â³?鯸¾ªXê¾÷ýür¿}t5ÈðüU›‡k?N~Õ‡¶Ãñ—ÃV¤ªx/dU $ì0­™ý”Ì8™Bô{W¢H+àõÖLÅ.ó&ìÁqŒ)íeîôõ|+r—f_ô›È²ž*æ'pѺÌÕÍÀ³LˆûÛ5òöOFffaÏÆîzmÜžMÎLbP˜K¨Ö[…ÿëTF¤Ó’IÃ;Ê=è„<ÖzÍg¬ze2¬æ1—ûÉçic drUúô³ÉÀB=ärT-E{4• )ÆXõP¿=‘Œ/…ì+Æ(°~äijÖgôD¨-S(Z’±¦èÏ 3sâvn2ý[ùİ$pÔ±ª£õÛ=ú¬éÍ»4bÎ âzgªÊO|ö·™-7Xew™Kò³i"Ї­ÌEöac?ZK}iH,€ýYiC{·Ð»*O!&› °#®§í<cúæ–úúº› ö¤ #6®²?I»Î*F¿nò¤ðJUTÄjyÇÌå{¤P mGjsåÙ’Á`Æ_M“=¶ð<¯¿3"Y¾Â7´ŽùúI0Ûa>ÙO;f5l»Á²¬«#ðÕ¹OíQŸí}¦™üY‚–¯e¨Ñóÿ•P1¥?öËYå¦'®¢ÇÕ0V`YÎ^i­½f;¸Ú*¼¬hJ}јƒå¨¥~§ÎÀÒŽv|‚ù]R‡=ØÙ=¼lJ+àÕ;øÞÁYû‘éÌA«O3¦ZëyµÇo^†=RÚ%ãLT.áê£p]­êq-5M0ݨ›“g^`=Ñý°Ú;£ÍeÁ¯þŒsséo/v…~¶[ãNšö%wÒò›¢ïÉ:™»Ý½¼ê$ÍËÔë“@­Ú“æ؃³ÏÐÐì…­^6¨ÖgU]3ÚO…žÔØ[4÷Üc:Z–kŠ£7¹Ê°‡ƒŸŽôߺƒ>Ëß ¼ÒüÁoðÏ÷°z¶øY~=¬À}°çº}xõ‰;&åÍVyÓÕr§™‹4Ì\¡¶õT¯L=\#Q óI9¬êqÂÓõÆ[¸UÂ%¹¢Þ¼=àWuüh?£ð»+òA Ô+ÿŠ;ï¯ñóý"ôÚÿ€Wmüï6=ý¨)ih~Ÿú¯6›@j°¢z¨ŠÖŒèýñô«ÑoM°[µc.aIôÅhÉL®»Õæ=™B|ècÆ{Xœä&ʯ.€_éÙPmsk¡¾ kó5ÃxÖ¡ß»¦¹úíj'*«û£œÎˆìx\e¢Ió¦dÆ5•§_(¬“؆0v]Õ±ÓÉÍrUû›Ü& ï« Yž~ãJŒÐË¢&´“ÉÁʇ…z2%yVèˆXŠ •øªµØÕî‰ù2xz©ê1ïÄ–)ëªEŸZki•fë´Új.k&–£=˜ÁÍ$bµ>U>[S }x€ú#Š…Ê>¯ÇêR°ª’ô$¦i¾ ù“Ú Ÿ2Ž·@4Âk‹É±£d{ˆ¦2Xò0~§F¸,VµÆÃƒ%П±XZÏk:¸îxŽãØ›C¨ˆ;Oë/cí©=ØÕT²ûÁë´–Ù+’d71g#ì„&¶ª¨ñWy³=Çê9ÄæªÝaš1ÇðO3)hôÅÉ¥rÁv Þgý Ö‚ÖÇÉdþW1ÖÖ@2÷ú¬½»›UŠWÀ%‡••"g¢¯j¡‡ç›j2'º¿Q¾§íµ°V›Ò—pxÓ1kÛb=ŽÃ_ëivöw‘E¬½> 8Ÿ/àžý1?52¼:^5a °Œ¿ê›8×> ŸãÕ_æ™È7®©{Ü}¥ ¿ÒÜwõߨ)øÅMîo9f&«ßÞ ½¦úíá¾+~>Ø ½ú•QåM­¯<ŸÙeªÜ·ÏVƒg@Ï÷ºáOS™*—õq¸ÑÆèûbWßor·ºÏL¦}Þ]õÍcÛ£ŸÊãòll™;ëú"¹bŽÙ/‚_ƒ¿m\q»Y)¹À+ýÎÁÜÙ ¼†¡ñ ZY±x9œZî•qõ›Ð’¥Ø®cNåÜèÝ.ß¿Úb®õÜ;¾‚¿³E륞öo{­—ºÛßâ×¹~/øÕ ·ÃÝâ?pa÷x\žwî#Zº=Í+r$ÖƒÚàü-˜ã¤wÃhÜÞŒgÐ|ç‘hé#&â*¸ °kšçÁéšù™À«Ö&*mö1؃cÌ¿Üð«ù°»¯J_i½ ¿ú_ ÄUá)×SÓ§&úy2út>®QóyÆàQ;XGÑ í1N‰ÌûX‰öM'¹½X*:›1HýÍ5¾ðJ«Ð,6{¢—"#V°Ñ:z‡pÅ4f¡h®hCòœjÀÉ‹ôX•Æ]טOâú¢eâ1©<L!× u¥ª1¿¦q)›¼(•ñN=Æ=hm¯Ú<]Lf†Q˜“H|Ùx¤UiæÈ$Æù^:™YÚÿà…9ƒj+fñtÍ1.T¿áþ‘…ñíéhOO"µž÷)ã¯F, Õ½2ij¤~Æ`”dtW6Q1Ì[,O;·,‹õ௒gªB†ÖTË` F†´`åRXËÏ™B‰2ÏEÏ n1í`‹•ÀøUzËnú‘ZÁ^Ó“2=G¨ ìÉ’–´[ûšw±Î ÙŸ­€/ae)£ìæñF;…ç:[^çµ51»ö öÛ*[Ñ–µ{Xg'𪋭)šGô“¼…ݦ5þ0m‚]¦5ë^5S‚A7ê_­´>æ³üsfŽ|„§î@;i&fPyžì®Ä|ØÎõ¼ Œižb¼tŠ|}Ïn‚=Øs©§ÌÎź»¬ñ¤ílŸ’nxÒ+˜?ÃÍQÌàöÄÀ›`qÔa}œu蹌¸›„žª.÷c×íE–æ;·alP{¬%¿êˆ• ó$Þ÷²=òkûçs‹×TÕ½ÛÜ0œ¡ÁZê_5Âi¼h´ôqð+½pá0´©)>} ÿ‰Ï·­(Ú³@+lõ2o™ã¦û˜HÄMtS¢Ê€Š]Sÿº»üª¬Ýïnóëb‡¢Çåy5Öǭúî'¿›ÏíÏÁ•à؃µJêÈtê_U@?ì þ•æ+êiÆ™«w_Õ-jb~éYŠò+­7¡xu«ËuïDÇauñß¹7|I“É•Kà;ß‚ÙEÅɃßìø­rXfºn•?ê>3Ú(O3g󀟃=¨Z"E¸sCsîVwž6 C?inc3ÌÛ‡€ÒÃÐÊ{M— ~U£ô‚OóMñ\×kî•oà·ú?sðè ¿Ô/Å(þ”’ýiëà÷÷˜_¨‡¬™ƒÍÃF03*âiÆ2R¸ýGc0šk©•ÎóÁvÌÍÑ}|-¸îâÆ*ó®½™J¦0ЬõE¾ ½ÑKÍúè#¸ºk¯÷S¯/‘Öõž£¥…W›/LX1¦'îúî˜Dû,™ZÄÉÿŸÏ§$±N½”å˜ “MÕáœ8OÑÈbägV´Í£Oª½ía${Eú¯²È1Tm9¬b˜H•Ò4Æ$xbq.#øût"W Æ$hÔE¨ßžÁJÆëÑw6aýÁ²Œ·­Â³íÇ4Æ]”d{³‰àzÚY9ßÆØ—¥®Ci³‡ùƒ/#‹¨ ®ul5¾½¬®~ìÛéæ ©+1Q{í}àú2ÓJ¯5?H3ÙÌz^Zç±+z7‹ñ¢ï‚á·eÏM )úÄOõ_½@Í™R˜ß¥ämØcÊåV3Rõw‰Î&j·ËÚ†3ls[Ïîµó° ׯ{P£gÏÉn´áñóªé4™?ø¥¹.èôå½Ë%Ú§yZqìg‰|Œ~ïƒu<-èOÛ­x2xÝc2ß|Èúƒù˜ï ò ðjævkì× ezT«Ñ¯5-åàÕK¢+áOünlé*¬-5sñôY=¬£ÀöëXCw ®_ üª>ú´/öj ‡á³VU(¯Ã5ÞOu2!У| W±ªLÜRK%R„õJ1šª\œåñ“\Zuå˜[™Ævfa,Ð" sË2³¹Ê’&Ñ‹¤\+¼(™ü-%nfÓcU‚>  FSyæ!§Óß^‚9Eô_•À·«°žWuDUƒ«q©,ú1‹±^‰ñè«4Æpj‰l"oIò¯Lê·?f6`öo¥Ù –ÙMg=I¨fÊHiEÜ.ÆZ¬ ¿Ñþ=ž}Ÿi#êÇÞh>“ú؇ÕÂ,ãÐìLÕમ_#Ï0s·ƒÔ4šÓÝ#ü"ýciXgVÞÕէvöŠ°ÚµM±~×'•ý-±Q›bŸb=¯m˜Çù¶:ul.É Xe%‹1 ׯz[åÅ—ÍÔ cÐGÔ‚_*¿Ú.ÁÛdš¯M–Ë·Õ –1Ž:¶ÐO1Û&á): ×V¨÷_öpO‹ÊÅè¿ìÃR »ätS_&D§âÿªßþ­mf2æð2°`˜[£5ÇáÓ#<ÿo)ZÉ <#½êÉ}¸ß€x½ Õ¿jþéÈÊ$j7¼`RìmÀ«ØW‹œsM€'5í¥“ïéOÙþød…[v8&˜Ç]¡°þz\­#~½ÞhM*U[g~2ß­šÐØû"^©vß|/—üñ óŸçù žÿŒŽüኣµ0úC\-¿ß= ¼ŠÙ½®Ø¯Žmˆž’'dðêŸâ[cìß±9k[¡=˜›¥², v}®ÙŽXý¨ª.e©ÏÐÖÊHÜ£ïßÄzV+`ã,eîÇøè=®¤{üê!ð«/À¯Òx>øøÕ7À«Ÿ`mðËüz7Ão¿šáÓz×}&åÍÃrÈUv§Èäz™Ë@{ 5͆¡T¯¯5úW£ìÇ3âl õ¯Ö±Þ„êœz—ä†Ie´âúÛ§z=±üÛ5ôù_œ^å°»ìûúý ô­$_©þUìË¿YA7æ}§Õø+åÒš¿ˆ‘)Ià× ·‹¥zÈmÐóê«içï¯7±Ò¼fÿŽL¡/©—)ö•|gŒL’YhéG[«:vÂÝT|Ð+5Ç=ªYê`g»Bï·âÕ`Óãˆ3¹´ŒRi¿ä/Zž~ì²&Ìû+G,L¢¦BÆ‹¥ÒžkIm4ýuMª‹†9}þ/±tË|ŒzU¹BËøc¬ùÇM[Q…›MàWduš:à³ÒlÃnS‰zÈ¥0ŽoÀ>jL¬.2³±Â‡ó^“L 9FŸa:öÕ…vb“n•ô²-´ÿ“t»™Üi¬<[UéÃØ­?g}œÌàà€én5.åg3=èôÅíårŶ>áXÅÎv³üÏ<kg,ÐcFS×Ó*üµã§''Í$Ùl´æmŠ\޾o·°ÞÄrÓYfF‹ÁÐn1=ä;Ûɾ)ÕO«ö žMkªö£=ø®Y¯ŸÔ(ƒJx÷v Ý}ôji¼h+Æ·7ÇLoÎZ2-±ºš*öIà•FQ¬£=¸öà ÓI |ê3t1«Ü}rÊ niN}ÑθBæ~ÖFkÚ`ö^0_R¹óÿëã¨I÷x%º#Øú¢ÏâéunNŽnðŠš²®…ÿÀ=êŽÃÆÞí6ú‡b›¢§å1¹'6Îí^õ¿:mMÄF>¶EhÏý°U£^ã=Êb¬w0»­?ZT…±G-Á¯‡³þxs78{?ôóKô,e_­rYîzôA3ÒŸ§=¸ÆäH©Øµþgÿž¿„'|ØßëŸt ýny™öàRÿ¡;F¿x•çÎPo€9 ~¥µ};™nÁ8hežqØÆàóJÔµÙ‹»taìùý°sÜPQKäM_Ú7ñsÀ¯ ¨/ºxÕsãU÷ðê.ð«^À«dð«?l>õE%’¨Ý#³ {¤Ö®…'»}Ý„›*ôoÆx*5㈴§íÔ{–žºëž»Ò³?ÂLáùà_Ç·åüœmöÁÁ3¾Ö£·Òh >ÿš°:Rè¿JÀˆ¾a*J-ÚƒYÁ½ýqƒÀbŽ'ëÓ-Æj ~£g]Lª= ½éK¼ÁØ v«U¾ù0ÆÑÙ’ËüÁ}àß°n×e39xÚ °ºï\ÁëáAO¶m©Ø Að!Ç÷ ¬—PO¦#få`£Ú!]X­÷&£q@í°ÎÀÕ©‡¬9ë©òìÁ}¢ùø7š~RÕˆe¦üi;ÚDñæ;pÈá`nU0þª©õR3©õ¸)^5Ó38ÜüSÏS1›µŠ‹Æ_©¾›*<ÔÆ*k~UÍnuÆlܹÊúÎZ ³;ìÁ®þ ¬Ènfžk+Ÿ›ÑÁJÜëoür*Ï;ã9ǵë 5]±vΚóx®nX!KÀ¯›aTnê@=™rèÝÁèåW€Ê]ñw36RÊss¢uTgÂ5ƒÙæþkí+n­¯{öàfYèøÙ°6§ì• Dä4㯞^Õ’™˜ãpå<Ï õ5"Ksçª÷-°–o2ºú—_Í@ë+š Ñ›œwŸÓé¿‚=˜ço1™‰Íñçýkþ2ØËV¿Êo]ºMž¿ROÖ wNª˜Çä)W üj4ž½yW†ØažT½“½Y }Þk=ƒaŒo¿—c^ «=Í¥»þ´_óÎ×õ“ü<Ì€$ßÐ?èÿp]ÑÊÿ¸s~_K=äß‚ßÞÿE»æã”ú¢õE¬7¡úí ©øVÙP¼‰Ù­q„zަN-¥úW·â³)&Ô“9j/GÂ+CÌ#¾ƒ/¢}5ß<½~¥vG]Ìó½ª>GVÕ¼¼2mÃÚ@µ—M&± fÀ~¬ÃP'/´Õ’ùýd®!½W>ã©ryÆ3„µµ4£1¥5à·ÔgU‰L*Ô­@ß‘âL*m»\V- õdÒß^Š÷ 5¯Òâ9Ï¡ï=—gŠŽ>«°u‰À4õ·¥u§^­ÔäNd¬Weæ&ÓNÌatEI¢iž „uB/˜¶ù6ìÑa‡T4.dìz/ò«:&W*ÊÆ¾Î»É•_Ù¶SæZ|»cö˜ï¥Pn‘æ)çK[Œ‚r­ÊX/ˆW1ôê1ÓEê°¡Ï_aýhïÊQ £²ÅE<Ãy‘±»=Lû˜ôå™Èb[Þ¦ÚíVûóQ¬Ô¨­É<ëä9ì§'¸Û\5ã‚=À+µ%^ý_1Wþ²m‚hã¿Þ¸˜P–Tp¹̘­õ´«lVxc Ë 3^‘ͧ‚_½cwHY*JÔ—‰À«q@öV"A'{Ö@Có#~7šñíðDÅÔyÊǬê »›¨'WõúÖ˜Ör/ÖPOVj‡1ÄØ vø\«NhüUUû¸|w²ä`ä’k¼:ƒou•"?е£põ%îu9nn –cT~Å7Ûajå‡EĽèçïÍ9¢TžöEzà{¯º`&ªÆÑ+X×íÀ4?ëŽ^7Ñ]mhî2S\SÿªÛä>ÃŽ°Ï½à#±Ñd«¬qÛü8ÚƒoÚ߃äÈ9[€µü˜Y-õðŒU±5g?ženkfídüU ãr´v(˜Å3‡1$c¢7»Lw:ªÚ`£ý×îUŸìo6y’+ö_úãþ¢Éõ~©öàA؃³Ð®þ˜ûÖÿ#Ô¿ú ÷Ò¸2™ñ¢¸Wæ±êõUÅ7“«Çºl-1o>B¿ßÍ|œáRï¿å}-؃ó0î¹æ~ƒ¿äzãŠ/:Ðßîç£ç´¾sð«\<ãzc"YfÈ×Á³l0^Ô–W=äQYK]|ëª ë¥Àž…ež fÓç“jB ¬°` sœs¨¬LÖòO.^>#œËÆs—›ð1“ÑU‘ÈøeX•ˆ½ê÷*ÇsÈTÆ[d0÷¦2‡üª$£Ó³ÏàÈ•2£ž@k0%~>Xc3”× sœ+¢×ÂØÔê<ƒL¢¾_E¢TI“S-·5<5´¹°Ý[&•Ñi×Â6ìEnVÅ”çïN‹s¡*²ITô„ó,Vé*ÓW´ÏŸ6_JY#ŠÂmWݰ^4n¬ª9lªI!¯3 hQ_ª0þª)ðêEÓƒ×ìk~Ã.<‹\nfÔhÌñ4êû•R b<Û]¶Œ-k×[å±ÛL ‰°•oÿ.;¡_3¯¶™!Œ¿úÕL ÚCß>K®ÚzÁ[ìÛ7°Ë_'Ÿáu'Œõ@<á`Ìâò˜s+pß͘Y•ÁŽša²ýÒÆ$IIw¬GÙÂSC–Ggaέo²A7{PTóê{¬óIàdU‰Ó±·>„ë×^m6}d9®R¿½w/8Ð@FtfÔuÌ„ö˜åÊÒTá¥§„<ù…ö j…4¿êìOY­e½«iß0CÍ­½‚Õ0ͬd}»¶ÀÌ÷–赑æ¸So<›Öw> ]ЖŽÄ«*ÀõÙ½jNóÄ0ËŒŽ87ÕÍŠ6e=ú6þì®OLìÁ¦±àÕ'²NžˆÍtϯºÈeó¼ý"HŠ\µ÷õ¬íª2‡gpåqåChC1ÖOkf_ªêÄŒ¯F;¨¿}!k½ŒªÃøö»\y÷^t8P`Œ?éÞvÜfÊH üêìÁ‹Øuî÷ Xg‹¼ ÓÝz7ß^•3É6`Ý×´t»›ã2ÒŽf•nUæ{íjU­J‰£pßjTußÅ´Q¥ûM¢Ëp}E•-_òe`Žó×a<¬¾'ýßNëãh½‰þ~µ_€ßH¤¤ïâ±ßõØVvЇùÎÍ“&‚ýWÏKFó$¡©ÑjÀÀ–w2ß¹ v°–xööäÍÓŽelçaSxï™OôKÆ(ì€U±™÷ êÝ»–ùƒZ?±P2¤7o2c_”¿Ržs??`ŠâìCæ©+ˆ]-M¦èM²Ú¶ª××BòwÇâdïÎøv}þT*ôjÙ` ÍÛØmÚŸUXÓX³Uíú »YºòëÕ6bÿÝV}Šš‹æ¢TŪÍ2¯Öš_iþbúM‰U¼ÿ×LªƒDÛ9]ÎÚ:Á›ìíS° î`·üê ï¯ò§ÜGRlvÈ^—âÞ67FÿÞ”Áv$F¹'z¤ö`gVv\ˆ·ObLdO|÷as;õ*avÒ\’)U1þ/ø_…z2MLu‡¿äºQ_ô[ß¶è2¬ˆH$Þ·õçm|½ü*7è=ÑÐŒa$`mæ5ÌA/Wb%U£½ÐÚF¥±Nzk¬òμIkŽsn°E™Æ•æ(ãÛÓé'Yã+¯Ôu™9žŽ ¥ÝU§îQ*Ô$ó.gº*ЂZƒs´€V™âÕ_`üŠuŒYObŒw-ª¨îqYê.äÅlº\Æ ¤‘kiìhV_Yf0U¡ÅV…Ÿ/ŠÅÆx7WHõ„¨Ÿ=ÓDkñ8âH>õúˆ“ÉŒ¾*ÅÕÿݦ“mfÐû•õÐÏdÆòu%”§MYŽÚy´c ©ˆeˆéÌ"R«¬㯪ýÓ±¢·cïoå×Á9/§žŒò´pþDÙ%Ø›ò}l§YÁxspv3†Ë}Ôoog¥ 5¥K¡ešº°Sñõ4œé ¤ ÛÐø¤u†5na,ÖåËÌÇÉÀ<ŽÃÛM[²—)²»¨ÏiVØÄÇìÁ[À“leúÛÿ‘#X'gyøì5­ÞÖ^‚=Ø4F8_¾°•‚×Èh››Ì*؃ª'0mÄlzÅ«ëðÞíØuÐóãfŒÜO½¾\ù9|ßÞ-e˜;[If†+kk€=åƒ~ö!QïÄWØ 3Ì)Ö,rpªÏÑü²¶²{G㯮7 e#~·?ñ¥5ëÕkÕ«6Ô©ÒøögW7€_µ3i°ϺÔg^ÖÔwógìì»%®‰}Í\¨¢ð_øMõ_©½ÑËìÄY¢§y?ê‰i%ÑÎÌÇ9Âz^ зVĮ̀löcÄÛš7À¯1–cBÄ»qnF¨yÿ3]KàÕfàUiûk÷¦(<{pcÜ$wÄ¥>ÛöCð«óVïv›589¦áÉi»§SMàù<öLoÈ[cÄûc«6ÄZìÆAàWObÆTOfbx%øÕkÔo/ñ߸§|"óqþñÃýÿ²? 4¸yÐ-õÉ!™â1ßù3ÌÆ=²é zÖuF†€}æJÐŽ;LKÖ;œ‚•=þö®Ôƒ^ñ‚¶Üf’`Ž¿ªežöÎWó£ü<|ý·kíwøßÝ |êˆûÒð+ý*Î{ØákÌ`ÑÛƒ}æ ¼RlÕølõFªß­NóàWÊUÿ ±Ôäy¡;í0£0Ôßþ;ð*ªß~=óIžbÖQW“fÓ+ê[³É6ÎîaüÕýØ©q¶@tDÿºÚ|,zÿrÎ ö›~VíP/ƒƒZÁpò«Iò‹­œäyt-^)ïb$zaUjmøA¬oR‡xµ•öüuæ%3\öa¼Zã ܧö^°ÂÖXûdlx9ðl 8O™`Z×gêï¹)°n5J}0ëj¬cîÑÜC}Ú“p¶6”õxþ`¬¼^ÀŽjŒ~ªˆ5Þ¾žÎØÇÅv­|®§1øÕ®ºÛî>žv’°G>^uƒ=X˾i¯´êv+¬ÔUï®øUð¢GÓ0Zºö”Vy@=ä­ô!UÁ}^5Í[Fs5~yLäb8Ñ-«aÌÆžÝëîsïc¹Þqïø¨ÿjWÜx÷†Ÿä›Ê%óìÁ‹ÁY«º÷™k¥Pf`G¨øV50½™Óê¢M€SÏñR½#×£­ÃÀcŸ'¿Ê1%áÕ®üj4ÖÜÿ­;ê#þ“#ýÿŠÉaDùÕ&âÕc¬G™Æ},9æ6؃9hå( D‰ùTzÛ!åöx—r Õ˜V{°1æ¬.£}øȦ»;LºË^)vƒ Z˜8c÷¯ëâïò]¬‰#îœâ¯a=z‰dúVÀ+zÝ`.‰A7ìÕ£ÚÌx†2˜ùi˜§Å|W6Fµì”VÌ$iŠ7wE»”%´77bö§sý¯2OZWW{m¤™Ž×”¼e±Ù>)!*T‚qíJ#ѻκ&Z¡a˜W}9±K?Äi˜Ë˜„4UM6ÑÚôQOV!µ:óy[XÀ¶\2$­ZДö^ ñªRL¹¡o3cqªåbù8iÄ™2¼ßK¡Ÿ+—7¥èË¥jL)2¨¬Xî³ú ²búW)&ZE:u¾´žPTc>Ÿ ’剥w‘EOU1²ˆOKæ›rÍÿêþd0JL}é÷bͯ5¯ó=pÎbµFwåJsD^4hQ$çùü±Zn`üU:¬‘¯‰WIÔÍÈ•v¼³ÐXÓýš%L[up Žt&æ·¤Õ7‰Ïsä ì<õ®]µ>Þœ Û×”µûe(ûºÔþ.ö!ê‹n^9[$ÊpÏËnðÀ÷D#Øþ2‚‡L«xoeXÐüJQyºœ³EÁ7ÄÆgT%@^ ’l V–ÖתKÏúåhÁ Gy³íT}Ñ,Ìa’\ ?ƒUZ‰¹E²0\l–Au’ÒÁH{\T“îoìiæ A-ŒÈ4üt»©Ìø*­é<‹5w¦ g`6ÇûÚ‘ZÑÿQ‹<¼5Ý:¥«Ûuò¾N”‡"¿¯6¸5ãDZøÎþS;+…k`›áÁ5êÆ'ǘ•Ìì~5Ÿx5çÂwÀ¢!ìÙœ ª'£x¦·Tmèô»Æøs½ÑÀJ˜ Ý`·$¬‡<Ù5ö÷º-îàÕîkÜc~wxöà×q Ü‹~6õÛ_´Ÿÿ?¯Zi®•|™Ã8ýÌõ`Óêõ•eü¾ÖyJ½žú—…ó+Ì!pB¡n漪ªöÿ™;ìKùM¾¸¸±þàÕg&^n§þÕ2ÖóšGý«“îŒd›Ûå~—‡Vª²U_óŽô³¨¸5xu+ë;+ÏkŠ\=Š–îÆltĘTÄÏã]²&ª ý‚OõµÁ¯æâÖ·ñ÷ú`ö6Oº¯}_¿À¯Ä˜ÿ”ö|¼êˆgÄEâ‚Î1{p½iÊ1w¬d½ ÍŒqÑøöÓˆ3Û‰1‡­a f¾s&N¸çì‘Ù´¥€aàx͸ØÜ>{Pï¼j›?Í#Ôë‹ç½¿Ö›H¦þÀ^¬¹l>_ë;†ñΉÝúçÒSÍvÎ&‹ÒÈ+ÕoÏ'o)üOÅ!“xU“7xÊ“TO¦Qª˜š3ÑÊ]x[˜Ã'eÑŸFäÉãûÔá bú¢9´bJ3†!—|-‹\+œÍHfJ•Æ'TÇ;¢ù8eðUfL÷&'–Kf–ñŸ2²â£ª &¿`ÍoÂÚQ\mý»Àt$'¬«U™É¯±ïVš,ØihÏ ð¯»LQÔÜd~”.r(¦µ1UJcÙ¶bìÚÒÌDkÙ5Mߞ¨…ÇM Yâl Ëqœ;zCz+¦>Á3¥·i{°c:–Ûפ”ÝaUEc©úWéxë3À—EÇã;Óö`«6ø¿ØÓ5‚!Œ»˜*oÙìà=ž0ϼJÞÇ̌ĺcTûV3b›M@/´¢øR`öx9ˆ9inJÉ…ð-{¬ØvZC:ãL\Ot‘Ÿm{ú©Ñfë¼Ïb5µÆ<ÌE{¶bM)¿ÚnÚƒ_©Êˆú¯ÚÊ:£÷¦°´’WwÞ·¢~ƒÞ"1yàWßà)^ˆ|éjº[€WƒÀI›ûþ”Õß\æþVEŠ@s/b–¦€¯èù­J½zÇÕÏ™{ðŒmo¼m&PP=ð±_Û2ã¡l6Åé׌֎®€Q1nëÑkýÁÚ~­Û莛‹²×eÇÝè7¯vȾ¸QÀ«¾æþy؃õ:cµÜ(ed%3,Tiù vïLŒFÞ|j>ãIì³2Œß¸‘¹¡‹qN­`üÕèp™‹‡=8û~2íÁÒ~-0êz{Úo^}gîó+ü`Uäi™æq ý)÷ ˜ÑZ9è2Á>ð¦â´ ³Cy EOïà8TÓmD¦WŸhæ·#13s‡)÷Õy̾¦ïé5JNõ6øóàWÍÓÀ«Þ~:¾ßÉü{°ƒÿÓj ÿ=&!’tŨµÀÙ´ gF <¿2Þ5ˆU««aóºs¢öYsjCtå~lÅüÉÙ´ ô~°T8¹xýÌ"Ÿç[s¯Í7„Ç#ÃÉ•*akþ`:í¬Nh{]ú”ª`¥üD&•„™\gÞZæÆî£š É1¶Á[ÄxÕ“™&aœ4¶SÖ@Þ÷ÖÁS¦ƒ%VÃè­¤¿ýq´§¥I—óái»Eê£Wê¿ÎÁÈ,6-ä¬cšj ü½Ø£'Ð×Ô»½«UÏ¥!ËŽ2Ÿ˜0xÕx¥7IêMiNoWsŒ}Gü©u¯:¥ ìJ`iGœÚ›#_¹ªnû+¼#ðª³?i§cß]é.ÈsføU|ª +’ud½‰]ÀSå÷=1ÎçÌG̺mËKïçc7îÄ{˳zènÌlGŒÄ‡aµF¯&¯êƒyLt üÍî:÷®¹ ›Üû~­ <&[eCÜ,wÒöäsÜž .¿€_©vËåRüJkµçcw=Îè •`5jÖÃ{O˜Î¬¦ZŒ^‰ñÑzô³W=;¼ <ç­p8,µ©°ŸÃ®]ƒâOí­_ïÏ›¯Í>µ¿ÓÍðÈã2ÕívóÁ¯>–2æ9âRÝkècpŒ“2ì³(濺 ý®Ã8ûÖèi¬ª!˜¥‡±¾»c$*a8`Ý8)Ƹ?âÓÀ¯ø…àK¥|[§ÿÕuÅšxÒý{p¾×lrÉóíü¯¶:íß„ˆºcg·ÞcŒÔ«ÈKñ.½×ûh‡ÞÆ5À(´Æh'0ža-íA½O»Ö¼j#áXúaš¡¾üª,ïï ߊL5ÑZZÿ‚±Vf¬B:ž2k¦4óÝáDÊ££;PóÓé7Oc\»rƒ²˜ú±‹iß•aÔR:3F3LTs]«_frQ§"}YÑh†(òU¦]–ãlùTpˆÖÊIg.aYU ã<ßcT¥èGOc¼h)úÄèÍ/EÔH¶Aãâ«Åb½âéo×x†xÚ’…ŒÍˆ§}Y–±ÿñDÙ2ô_é›Çèl¤–osuc(ÞÖÀª-=Éè&c”—¿ÉÞÅœ¬7}D-Ñ;‰W7ŠÞ{665¥=ëã$Ò[PUZñÍ‹p²7”ÚŒ1kIáÄEÀ«·ÌÚ¥7iýeØ0:_ÝLCû¸ô%¿œcHÄî´:ÛÍï`"eEÛù¹ƒ}¶“u¥Ï›FÁ#¦£UNkdbPôçYòœÍ NÄâEï0Ëä4ærï꺵ÔNj{m ,b­r{-öX7ÙÏ34K~ ?·Û`;4ÂHp~ór`Ï×Ìw®3Ï‹ÞÍ=OŸ•ò}åWªå3Â<¬Y<ª„µvñ­X­Ã±Z0Ÿ®?ã¡»!h O'<¡ÈÞ.ß±ýþÈ×°×»¯bzÈmý1«{âFoküÕyàý4p•n¬¤¼m¨œè„uý—ùï¨õ¿Ì1´IkˆícF«ªƒhÚ°yÏàïêhÁ¼ˆ¸YnZØkªkè¯wWºÆÛîo¿Ão ?”-²5nŠ{ÝOô-åóºý'#?ÚŽØC«ÁVsd5ÒUûú¼a,³Ñ^£Ó>ÀxiÔFU Õ*´D+0­À÷ ̲p•«è^‡=¸ÁLðß»C>ÅßdäXb§ý­þKó½yÀßî7¹Iþ < ¼z LKï Í~ÙíòaªŠjOð«ávÆ\=OªŠÓjÜjsŒO]­°ˆ3ßxV 'ºD7ƒúWû™3Ü+ Ö(«õþ/Çè÷ Pl¾_¼¹dûf^ոǔŠdšsÚ çês #^ÏÇL£ÆT/<¾ƒÊé´Ûâ½ê«i $Àú8)`²¯Z!^%ãm|–oI¯öbóxømd=5Åèÿ!`J"í¯¬;«8ÓÀ¼gÎ0Ò4 3¸ÅœÂˆ'ó¦½Q ƒÿЖ̼¿"FQ•fN4/“Ñ _œg¢ÚÉMèùV /?–ã¬\.ZÙ+—ÑŸÿëԘG)^„ø›A’Àggð®0ª•B ™U‚Ii&g’É£2±.´Þa21¶<[UÊ”&¿+d„W {­–‘̰h&d:æbÎËmÄØ8I´¾rÅjÀ«.À+ýz!ÖZ{¬YÅvUZeúŠ¢íó–L‘’Í{Û2ÒõRµ¾óõØåÍɧ¯r¥:ï%›™y˜‹ÁärSÀPžg¼h6Îàû0÷‡Ù¾¦®}Rñ>e™Ý'qöA«Ÿ¿ßüfjÛjÌ­þ]žÅ¸›ù8¿¯2Ý­öë¬Ô z‰úî¦È›Ö¯r¦^‚Å9T>ÁX´¿BE¤¶Ôo¿ x´ƒY%+€žCåEúÛ³ä\ø•Ý*z—=ÖIÍpÆújÓF¾´“ì~iˆuþÚ<×¼=Û{gÚ³ #R½»cµ˜žèixo-QÒaØ»í± ÔµU´fyc¬ëC°r¯¦röà·®²»Í}¢êoÒçûÛV+]ïœ}vïå|oŒÝÕx§FUܤ¬Í͉°PßÃÎ샷,s„7uǼ¶¢^_>ð¢Ozgt®ÇÑ‘‹á7üêv3Óµòëa‡¾mþ’-îÐbkø¾< 7Æ-rû±¾•ühNÙÓÁ/Á÷¶-Z~“¹N e+JäÃìÆf³Òq>F¯.Þù2ö¨ZRµ°®Š.¼‚¹j³Ãµ®Š{9œ „é¿vOÀ¼ m?çûû—ý½þs0È àW·»yÌwžàޏ9þ4ðªÈ”]ðª/úÞÝ|$íLÞ’k=»0Ziy6p|,ƶf¹ æd#>9‚·k‰Î»™¢ê:Û}2﵆ñíýfÿ»ëŒ™{Ú}ï{ùI¬7IÅøÛ õúW½°³šàÙw¯êQÿjž¼_Wf<Ã,ì‹vDFÔßhÇ5Üžù8óx3vyÙf„ ¸‡˜~àWm©/ºÐ ÿŠL"§ª@=äjŒ"/Âú‚ÙUªƒÓèubRú¿Ód­KÝØDu²r™w\Lªˆ¹Æ¼›«H|ˆÖóÊ ç‰FR¥þ§…åèÏdŒhYž2©6c!±)Ž5t¢ÌZ“B¿7šö`<žW•6§ÞåQ9˜–ˈE¾$²Æü˜=˜ÊÖDßx'ftÖ½Þx¶ƒÝ7#”E~/¥èGJç]mRä{ÚÅêíÜaŠž{ÌûÒx•F¼ª)-X»Ymá;±ßjsŽ&âdïìR¬ëH}ÑÑìû(0”7°º2yG¹@«Uëúšúv£t#ö®´ÏÉW²Ûêxj½Ô4[‘5q~“‡q–íäýà¦i°Ít°:ŽLI ¤žÌ<9e›§÷ö vØry=T=ØÓC°žÊÐþÄîÀx†§€Wò¾)"‡_Û»¥">1Õ”•²áb`Î*pž_í\û–¨búoFã@_Æl7E›gÃÞØ‰ç3þª£ÌÅúÊÃz¾Ö4’»¨¨¢ê ªÐm¨Ž]Ýz2]1:)öfØ[µÎBä=WÖÝÜÐ|çf¾…?{°£™â.ÉÓàWªß{ÿÖúÎê¿ê‰ý¨5Ÿ[ÃV™ŸŒâÜdÌâeèK¼s F»ëMšã`ã=±Ê?"¿*^‰⦇5]K…»––±:‰{Ìß¾~uEÜ ÷‘æÈOæ9{>ø!øÔjÝ—¯ÍM’+³ñäžøÿ ø•Ö–XÄø+ÙìÁÊb•YvƾZwШ»ÀÌ —¹À+­JÖ3¡ú¢õðÎZ©Ñø÷.°ç®ø¯ŠÖƒs7E´2ó&_ÊW‚ÛÈò‡k¼úÛ5Ø?í¾„U:Ó÷Ä f"é¾µ¿hû²j$’ôÁ|µb}œxѺ€ZÛ¢7NŽæÔfŠâæU÷^Fð¶'ÿÑxQÕUïËu°ª€Ô´ûxë[ÑýÜ<ž”p7W5¿šÔ“Q_tGœè5M´>Î.H4³f ÎÁ±º4º)?æ1J §ÊclBiÚ•ªSl¢¡e鿊Ö«Š˜Ë¸O–+cOUùTþœ øIN,J4‹u “‰cY´üt÷zrDzô^%P¥9›_kœrD ø¾¤ñëÒô_ æOd\uA¬ÆDa¬®k"mÀ¢T´Úa>½ué±VT¢Ï> X¾gÓ>¹ öî¬6½³¬b’¥@:šh MÎX8Om6½Dã¶™'eˆ,§»¹Éseˆ±O›I]¶a.öN[Ìos §b.F‘áÍÀ)u OV{õ*¼v®ÆÏö1íNéÂÞ.¶›äwyÀê(­ÇN-´¹¢|õð ›ÍÑ1ÿÞT¶›v´/š‘AN0˜ø9Sž´•‚wéoزZ4—P£ËFcÇd‰†xópÞBç›%`aÃdï3äËð[»ö`Gàm¾|™Åº:-åm»Ü­áv«xºy³Ó{gvå&ünMìàašSŒŸßnêÊÝ@³‘8å;àiµ0zõ˜i݈~„>`ŸÉv΂®hýîȇàW·¸°ºHߊù8ÌJ—l_2YÏK¤ÚtíÁöFïI›â»]ЫŸ€Ec™ï¼ÄÁþŒ9Ù‹Ïå9Êa ¡ o¦èE¥£I‘Ãán^Xc3Ñ5†=x;fìVwÆ¿æw†oËfY7À½ë‡úNò«yÅ~ ~õ-øUkôt$É4Æ‘Eë;WE_DZ²]+ô¯-«yj>Nm°‹uøzÖÙ"ìcõ_-w©Ô¿ºË ñ߸ðÍn5qò‡ïèߟ™Óf‡Ÿëouóýp¼Iî ·Ð¿äÞƒ=¸EöÏ?` [óš”ØiN"qì#úÛ5¯¶·y_O4Ñj¦ŒxJçÝ`!9I2}æi+¦e¡²˜Ë\‘:©ÌÁiÌXâTÕ#-bFP2×Gv¬ÚC}G‰&Zç>\+3¦­—šHŸ:s £ñ¢ùŒ€7ÑŠ‡QötzÓégË'¿*f;ËÑ,$¦åòw ˜É“MZr,¾½,-[Ø‚¾km´èŒ™™lºM+¯š¯2¨§·ÄTÆžRîô&æo5ãÛ³ÀÊ^—‰2‡\«…I—öäNªu%¬¨ÆÄØÉXÏ•ÁÂÕ ¨ÑºGÍP"þTÌË‹@-µ£¯Æy1?É`þ`]{@úÓ¸Ô–»“µº4J¯­-éýN^@K÷QçêS>V/5{¹$h !¦-”c¶ x§Ê«f­™+`,šagTƒªl6ÅÙ7 Oî†ñZjNšÁòóqÒäÏð'» Vlwàme©ÎÇj¾Þ4N^iýÁ ÔžzŸodPÅèíx«ætެѪ)¹èÝ•¦¢¬*7zfw£ž_Cîj­²Ù˜Š½eìŒmãdsä ׸ñ>>ßJš2g(Æ{¥» _š àWÕç†]Ò¿ÑmÐøŸfÔLùÝ|…~iÔÕ"ØÖx¯°“Š/5°>^ÂO´ßgÀ+½Ãž¹Nq êØÑ3\sÿ Ûî^×\(àÕ~Gøl“¥qãÜ+~„ï*¿›GíoÀ«¿l3ŒÏz ’LÄsTýáQók«—ªñ4§{ƒ cû¥þöªõ,§?~^xƒ+ã> Çàlìä?s/ø8¿Î$Éyôö-ÿ¦ÿ–õè¯òw¹¹þÞFã¯ÞÒÜ+{]¦{½m‹ç¿/ƒìlŒrOü»ίvø³ΆÆä$50Úma…®ÇHiÖÎ&ÝU^UF[_ðñ¾†/ñ³1ïÝê/ºî8užpga•^åçãwã"‰¾™zÝôJ zbÔᬻë¬1ÞRˆÑ k·+Æëy¶™Èj¶aö•âR3ž‰S铹Ù¶A8;æ+îì‹|cªq.7ÃÝàWj}U4?ƒ‹Ö$Ég¼h%"…*aÿEtÊÂ[·›OÁ¯Òi5器êhj,V)þ±2•èm^.õaòèeRÿUMú²<¡iì.0ñZÙ1™â˜uÍÜ+ˆÝÍ%‘çdò»¥ø¯‚XÍÁl~.•ÓÜ‹Ö"Œ¶*.æ +¡<‰¸ToIŠå*¦SO&mþ_ÝÃô˜šl¢Z eh#¦M6á\OŸÙ Ó4Ì•FlÁféE¯ÙœNV>§¯LõÂÂÓ1ÙbNK/¹šy|µLiŠ)ÖU w)…ýþøUCúôÚb%=D}`xïë˜cõÞ€½¤±—z×ÙßT³÷KgòÎYöCùY07p="Íf‰âÏÏröàS¢7çLàPÌß~ 6S2õdÒÌùÄÖ ^¦=ü2VÊJy #3}ÄÉÆ|>õ¬ß<½ ««ŒY†ÖŒ}FkЗ’?Âßí¢Z ³€8&œ‚õµÚ4•ïí"{HT‰î'ØÑK˜ï¬µZæaÝnÇ<ÔÀ“7–[DÊ£.} ¹“Ú›]‰/ÕX¿¦2~¿öŠú85ùöùmŠ—=‘_\ w§û£Ð^šø–þŒíý¶Ð•óàŽ‹Á¯Æz±Âý£5sZaL§­ÞZöÁÊ^†±HŸÙ^Úƒõ0#Ï2ûYê—i½ñùÀ«‰nnXíìø}n7ìA±ûÀx2â OœכõqTù ûO`Yß¹-8Ýmâd±½ëMÔ¾‹‘+~¨~û1´D#—ªškК1àW‡ÑR­^5<\íʹÂ)ÌüoKõ7 ïúþ$˜ÝgŒo¿ÁowK`î“9î›ãO°þàÙå’Ý»CÍdz[úÙѬЪ™äš»§9ä“ñ3EÆbŒP]êÉh–X%¬ñ ®À ͯ}̦Šâµ†`”ïñ¿9Í}}Ü}Öµ xÕÝü¤ùú>>PÌØl.é¬?Ø”ó=kªš™÷UôY§Íó«{*‡wýiômçТJf ¹Æ‡å1Ò3…È•IÉú8M‰W£Õ”ñ ÊΊ˜¹—OÞUŽx’Ëöd3."Zõ!?³™aBÚreÿ«£œ+ž^­lF¦f¯Rùä,Þýé`?¢¡ê6Wã½`ô®°ˆñ¢ ô_•e‹x¢lÚ[É´*³x&h$ÖzZE´·m©Ü•¹EÕÁ2*Á.ÓgΛɒ¯i?žÄŒm0½EmÖ}æ=ð«E¢íjdò`–Õ©„ŸÔ§^_<öìQ|]‰£Ø£ÿfOm󩘗À+h[CEჼìlêºq¬VØOÄ‚_©Ïp+ð­Ž-`ÍÁ³²m~Š9A?™Á^ÓöàoÀ«â /k¹Î”bx• TYc–ÉW´ü•‰Œ`mv­.x-N©-´#4p„ì"Š%ɯá'À+e`³L%¹;œŒbuËwö*û ”Ã÷?˜ŒSÕ­¾¸Ÿ“kã¯1SEóqšÈmFÏëndZP+m6ÃXÔ‹Å_U´×‚=u1¹À«s®žÛä>ÑöI3ßÁ‹§·¹ÊmÙÌÇúý 4xÕ;¡“Ùî¦ñ¢½°_ΙwY¶pôqìáAÀ‹môݨ¾èc`\Ý#ß ZëiI$âF»Ua=°ë ®Ž? ¼:fœ=èžõ×Ä_—í°¹—ýß í;fÿ ¾ ~=Ø=¼FªÈd “Öw~³]‡¶QkV¨oŒöÆÛ+1>ö:Œ`êÉ,gœâ\؃îûp,VÑÿ{ ر6÷?~€ÿп쿆]¼Ñ_ë7¥ÉãàWª ø”{[ŠÍf¹ße¸ñ¼xÛ kg0‚bð&jôT†4Ä™[Ÿ´[b]¯7ÊœªÁŠË¿Œ§Ô¤>C ?üª©¹èZùþ¬ë'>î>õ}ü~1ÑGR} ÿÕ* Ì?AvÐÇTa\ý½À«zdÉS17ZGÕF0î¡5íúŒí@ÌÑüA垩īglÎ¥M1Ô,÷•} F,6Û‘~Œ9¨bþÅ\Õã¾ÓüÁ‘@*eÕðœïx{”†Ù^ëp\,£.ZE>#–œÊ7%1‚=“™:Iô½§’i>N=VňjOÕg¥šh|i~Ìß^š>­ŠÿéçñÆ/‰¶gcÒ‰W)¼Õ‹ú¦’ɨȵòù.O™tbh"s‹Yí/é¿|çJļr´=‹È'3Y#š›“˳Ž*{iË’ÉÖæcüoÀ9­>þF˜í鬷¥wÙÒÖüdÅ«¦Ä«æÜQ}±6ËàM_¯>3OF~b|ûWj³J#ì—÷ìHœ"×»Ëñ‰©ÁÕX]—0г`_Áž@o¶EUŸ¡7ØÍ7FíH½;[J5†!¬Ø=j‚ÏÆ¿ûÀNûßQßêœH‚›î. ‹1›Zob/ìÁ¨×·Ë/;¾!wÈ qµÝ£À«ŽrÎ|`/ßçmK¼u»¹^Še¸MŒéC`q0¦‹ÿ«7ÑžJ§z³Vˆ}r9+»ª½8+\ãÒÜàÕ:Ó×tT}Q/ûáþìÁ³æC³žù8óüÃò°L^ÍóÇÀ¯ª™ûd»Kp‘Ñ =>!#í´A-ß–àQíX]]Uk&ãMUðg ¬PÕo/Á¼¬5E®’+Áœ¶5O¯jÂ\€‘û×Õöwùï]`ÔÓîßÃ_éUÃEJû¶ÞÀlˆ3ýx»ê½4ÄÛîÏ©M}†©hÉR|O3’õÞW5NõV¾9Ï’Ö¼ïÄMÆþºÁ¼i‰´ß0&>Ÿú ªOrOøZdí±jæoì‘ÆÄ™ÌÜ0S•÷\ÕÍBó1CkëÌ4o1ž!‘,¬€hÕšú_M™B"N9¶!·†ùÄ7?k@/‰¢Jcz’’øù*´“èS*f>aš‰Vý*$b&±­ù¼5ôDBÆ0$’÷¤Q 9Žü*Ê ñ±|œ4r'UžNF’L;¤*íÜxFYE¶Ô¦•ÇÊÐï—ÅxÑdÆS¥Ó:L¢n7ÆÿN¬9EéΘ)amWeìÚªÄÒ@ó{L&Ö¬ZŸ¯b¯ß¼Òxþ­æ-&kh£57EÀ«ÄÃb¬“Ò€1ó±§kIeÚª-Xßy#0æ˜ï}óéÇ[7ÏÇ9­cØÆ”·{øÞt³ØæXg÷X=¶¡=é6—u¿^Ýb^`ŒýO¦c°Ï´²Ú¶?`3U†ŠöpŽ|h ‚côÇÉÇx—VBž`Ô{Þ’ÕA®B‹îÔX ìûWÌ$ð6UDIç>¶Ðê–Xÿdh8œ]+§¦³ì«Œg8gnÇ“^¢Ö‚æß_ÜW4­WÞS.§.¶æHוۨ·Õ«Ló»`WWÆ~k ìiösØdÚå°µ;˜Ò²5ò«åÖ¯F˜ŽÒÀwõ_ÛYø­kÜ@yÇŒ Vá÷/âÝ—][3bt²ýö#€ÜS¢)õEõ–¿fJãÌjc->ÎXÒcæK´¦ú>5bÝx7?¬…‘œáÊû'Ü÷†¹$ûݾ nxFî–UqÜóØ×í`´ç‚¿‚ ¶3ž¸ÅÜ"…2zÈÅX;bõëk›„&øïŒpïÖ±›f?8V¬ºá•Z3"¼BÿÜ ¾”¿ öàß°ÄÞô'ü'àÝ›ýRêÉì—C2xµÀ¿êÞƒ~·ìq¥ö²úrFFØñXᘻ·Ž*ĪˆÔgê«÷Á¼î¿jOÎ5&Õ•w½Du-_^Õó£ü"|B`ÞáÿpôO¸ó`yKü*¬ÇøH¢oî#Æll¿ÊúRs8Ð:"5˜{5ïÐ|ÍÜ-A_waEE«vÁ[[s§¶À Ç©öÅõæˆ ÂyÜÃ=Ì<0ËŽÔ|»ÌÜîŠ âÞ,Fÿa¾sizXU^׳Æ6_ä™ò«ÙÀ®±l— Æp¦%2É›J3W&ªÇžÈ˜‡BF6iƒúïªÓÿžB½å´»ÒÈ©²ÙÊE©”ó*ËŠÉ&ÔO8bbýí ´Ç²ˆ]޼(‹ü*GZš=Œçmb?ÚÚŠòô '0þ¡ ýé ´ ɯJÑÌ&r¥ð9Y±L¡$ê‹ÞN{Fø~œÝg_U“uáµ.í"“.?‘#½óê.ÓK”90ïËe²š6ZXŒÍ±’4gªØÜlK}ÞƧj2þ*…U%öa]¨©ì»wqN般ÆjšÃûÁ$¬ñúöaꚦ˜›ì1¹ »­Žù60‹d[(ª4ö› ûhÖØ0Œ²ûëW°Ò*¯Jd¯QM†R"îs»^T™‚)+]CÍØ›oZI^p}hÚvÙ: û«<'úágרf4žÙ\´+øUê!¯55d=ž?ˆê ­é¹R[¥!kÖFoŸ1…Ä«.xëžÈ®2ðêCÍ7”–¾µ?m§Ó.s%ö5غ«€Mà)³YG-Âûpê6a\ÄHó•9…~ Å\‚1ïE+iæ¥ÏÊýØ×í`ÍÿˆÖjäóÄÈ…p*ðª.ú?Íõò»mî5¿ê÷ž?‡=xwÜx÷¢ã›Éæyû~p!øÞ¶ç}ÙjÉ^UQ•Fò«Šxs k´·e~ÚQV-i‹¡õ&ôí!¬¡š˜ÇááZWä> Gâœ(!¿*å¯2…rÉò¯ø‡ýϘÅM~†ßèú‡äˆLw¹EàWïK¾Ù(÷¹t÷>úØ­Ðø«YôIÆÊº #X#;ïyËÅw›€ÕÝÆûÛª˜­4W膈ªÊ>éß¾@óª|K¿Åÿîã©Ï1^t!øU;¯û ¨Š>®ƒu˜ô!^ Ä^ùo*Ë:Ú%Œ:Óûþ1X)‰WF5 [â³Êš eZ‘IñêJóª½ÄúÎzÇ7Ú—õM™ƒ3Ûl÷ÀÌ¡êÊŸÀÿü¼F³fµ°  Ì³8kÒb±¦w›÷€d)1{Ùÿâ”ri})ãÑ<âlâU´fDUR©;Õˆ7^™ds5±N³xŸX@?A"ãEËÿ?}Ñÿ¡^*ïrÈà3tÊaGø©túïØ=˜EåÑ„Þ¥ÆøUVd*yZÖKeÞ&Ò;–NŒòÌŠæã$ò9y1íÁ4æ&ñ=wcNWã”Wœî„•®9Qé¼H”öÌSއ%t5xÂô~ç–‚Ah´ÄƒækY!·‰ò·ö°ôœWý«bœÙyR±aó€9­Ùšê2C¨z1Þüc^JiÖ-c«ÅÜÉ4µ'õ^u™=,9v/}SwIU¶E¢ñu_Ëa0 UœL0Ÿš–Áæ5Þÿ†=X?Àø«rÒfïqfÞ47š¥òŠQ=ìÀ¬̘ÕÛžUŒÿk¹] 8Fvb¼Ú›dù öà:©‚59H]Î'[ž .·/‰V¬ú X4¬¼ 5'§¢w£ßUX?EõEõù€‡E²ÑX‘®–éÌó¸ëyiÜc°Õ·ÖMëǯ*¹[Ý78;»KcØ#g¬òÝ+]mû¢™\Žýð#õ­V`7¨úô> ~mÞîO_}-ꔘtè…]Zì¹=׆ƷOÀ.:A~¥wÚ Á¯&º%àWëÌH×Óï§=ø¯ìs#â~÷†Çäf¹?î2÷ì´VàÖ¯Úw‚0ò§m‡6h®€=8k¿+|?Z¡q+Ùg‰m {PcÊ;'Ô\ÌzêG[^írÝÀ«µf0ðê(ë;—’ßü`ˆõ¶yÇlðó€Wóü£°gº}n…ö`‘¹Sv¹L ù0¼¥Ä¼-ƒì4ôl#ù×!4óx΂áÝJØÏMaY­C¯G¡M7™—äˆæn>áS|?Ðk|È®›¿ÇÿL~uØ} N»Ú«¿>žú ÿZåÛ[^aÐïÒø½íXgê÷©ŽÕÛ3¯9xÉx§jǵ¢] ì¹ }ï¥ÑÒ›1O³cÜà)›NãìeÆøßš¶ársSx02˜÷l5Í/8eêÒ–ÉÇ3†b•…Ô3O›ÏȤRÐÒ{^£ˆ“™ŒèLÙ€QÅ«ú…ÊПõ“0^=,§:«$ê]|y¼§:ïçR‰U¹&ZÙ¾B,’+…ŸË§ÂK29T¡‰ª”FÈz¢z}žž²TæÆs47.ZÏ+5v?˜Äû¼!&Z»'‡¨Y‰–kã¾ÊÆâ¯òÙê(¿* §Š*1ç2@Ççaì³ÅÌ̬/Ž §=X |©«´§Ö|Ö²ú‹±£'°#曢Ìñ>ó.¬ÁkEY_c“>2>«Êf'vy#ò½iæ _yblkìªg˜·ž ûêØióyºogöç;›*@©Þ¼[Yhß—b»ßªñnó›©aÓEq_ëÑ_mN‰ÎѦY°Û4±êÃüÝ ªc©'3YÞ¶ Á“ôÙ½ŒöOG(`ládàíú†UYëv¶ÁŠ»Ìqˆ Ï ´ü~iïõ'7¡L§ceÎW:gWÛ-ø~C ËÝÀºc@½3šÝxæ 6³^;ÉåäcÌ ¦’ܬӨU.¨Í*SÕŒF1Ubå«£¦’½V¾C¿½ì‹üસî]Õ±¢¾èv¾*’¸|û޹=P…N ì¿ ­í„çµ³™½©ñ>“Ì×@ÏÌ'\‚ï÷1ZQo7zP–kòIæ;¿jÎâï*øÞ¢È¥p‚[Ö¡rcxõŒ)eï¿*·;|^î’‡â®q¯ú‘¾>¸õköL`#ßXe›€Wed3nÊÁzy »·-±ÊhSs|cIO` Œõ*ŒÉJôs= Ã]¶û6œŠ§ õ?¸'¼P_ÔÄ„=ø¨ÿœöààÕ|ÿ€–n—›íO¹Á¬·ÉNWàÔs£±!/ª·ýª«÷ƒðü:èsìä_Õd|¶CwzÄ×™Ò.Ç•`î*›§a‰Õ“jF=ä.~øUsŒËA÷ƒïé—ùšäÀLF 7ëWYÁ@¢Pon:ೕ0öZù¦ó‡Gà÷ ÷©äW-1']ÈNZ°âÔâÉuæ˜M §ÕydÆù àWÉŒg¸-|;2š ÕpŽïÆI£L;êm$ÒÜmžç=_ðùœãiÓåÒœJ{-‡–X21­ˆQTåbþöŒ˜§^s¡}åxç•M}Ñ|ZmeˆiÑz:Ѫy&Z¾|¬jE ¹U*m:ÇwæðN01惧¦h&ß–IŸyjL &‘•æ;'1+ +°ó©KÓg¥7œ¥hWê]aQ,ž¡ ïù;ÿÓ8MRÝu3ßÙ{y*kÜè}hŽ´ÏQ_ßlà9ö*yæ;˜±àW‰ô_}, eõ¯Ánj‡‘Lb=¯ýøW+Þ•ÌÐQflC"•|Ç<*Óœ Ëæ]X3:æ×b¥-¥cÐxuDÒ÷Ô^”Dû Õ1W{à•bþ9yÜú”èX|eš{ȯ´>Nß 8!š9G>²¹À+½¹}ûe®üQ=—±8ç`‡`UÜ€©ÍTûê(Pø¾Ûuxµüª ÚYNf„3€ksL#Iƒ=¸Mš¢'çaiŒÆhT¦ê×dìÆ&Ÿ*¼wÁ–»Üh%Ì9àWÕåŽi7 Lü¼=µpkWkͽ³7È·ø©È#À«Šî^÷¥Æ³J#ßÑfÇ`¿Üì†Ëf]pf9½³\Ìü´v°ß—Pm©7ðê Æs,£H`m÷ƒÝÛ§Q_V /ƒ±=VBê̈wcṴ̈Ú8ÖÕò܃îEØ-îˆï·üê.y ®­ÛïGûæò³y×~œÎZÍ[o®‘|™‚Øëh7´Þ•ÍAo*à§°G¿ Ê–Ö[¼³;ÿ?Š®ƒÙ^®tî£p<ëÑ{0Õßdðj¶Ã?ã?{Ûè¯ò÷ºÉþA9$“ݳî ÿ¦;#åÌ.ÙäJ»·Ýqjž”±v"V{ð­ÖÀ£@*­±Õ€šœª'Óm[^¿֙<ءä2Ú÷ýíü yè«ûMþO×#¦z2ý9Æ6€=ØÍG‚²˜µ»Ì߬ï\oè…ó(N`&ª²>ÎRzùÓ±êã]- ­õÞšVd]ÀíÕ¡wóטgW3¸ï™Ù¾Ø·‰Õ/8~éÍhÍêXûñÛ™¼Ô(Ö†´„ªáS_3Ã/-]®Ñ7ܧ9&Z&…Œ#ý?ý«ÌX¼z 5òMšFŸ•òú¨ºp3˜ŠøuZ„Ù1ÎS–1©Œ&+d­Òd"O¿—M}ÑTÞíû˜þ•Æ„±;¾Ì˜~{z,ß1ž1 E´ÜJÓ£¥9øeëžO=›BÆä1Z¿LÌ’ÌŠåBFíÍ|Ú’é˜Ç{q®¢×Nuš¦R»À«½H½>åcsÀ>3äWöý-ªÐ ž=æ´Œ—©ëÒŒ£Ö‘Úe•ÌIØN™—=¿[Ø¥íi†ýtP•Hê•}‰¶œ–«±úæ‘Ô~ì`rícÀ+Eö«l-Ú‡¬b·Æ3„6‘z2gac]¬T/Þ¦ðª‘UßûÓ)(CÿUøÕw¶bð8o#^^])V2€‹Ê;®a픲¬21Õl¡VÂRàjoÙ‹ö45ÿš¿i–òÎBëbÍÂ'Kjp‹Ý YÏüŒ“{,˜›Ö©Õ˜ùU@~Uné§Y‹U–‹‘º xu VÖ$¬ÛnŒ1Tß—j¾·Åz×zôûW·‚_µCOžŠ|îʺû`ŽGkä›ÁœˆÏÜæ¢M Vá÷Eš1SMõÁ5þj>žUOg¾zN¥rérŒå VžØI,®}ö ê_ie®s1«ª×Wì¶9NƒõÌÝ©l6˜0¦ÏÐÜ€=X¼q6>{É5€=ø—ëŽqyÊýŒºŠuT]$Ý÷ò‰À«–8‰”_iUû–xÛ83ê§ ·sé¥KwhŠ5ÚœoͶjÕ½Ù»¥V»îøÕæm„3cçò _Î7b¬æåæPx–õq7ŒíÝæ%™'wZÁòiÊ€¬Þ[Y^o8UQ´@ªÒo߆õRÛÑW6úí è÷SûB³‹ZcMeû¸ô$wÕ\½2v¯Õóc f+×æŠžßɫر‹Æ®}nZ›ÖVýF†¯†‰ŽîTyÍfòî@õ¯cÏ¥5ÃnþlhjRMn,ö¼êø^m^2#eŸÑš_ü¾g7I9Z°eA8 Œfš©,ÿØ›ìËÒ=üc5«F}ç%Ü­÷2ïjÖs7¹ÏÔꬷ˜:ÀÖ~äWí¸²û¯j“k¼h7sÈäƒÉ}£ª«òP䬫ÜøØ]šø6àWcñ“kÝXùØŒ –á÷-ÆU½eªÐüjÚÒ£6Ã|`>ju`ýÁÐ&­Ìªú ùT+8„>w§¤žRÞL87ÔÍ «âüîjøGÜ÷¼I³‡Ý#¾_Ü®ð¹OîŒëîžò#|?؃ïÙ/Á¯~±š·ýŒ¹JŠe"Õó鿪 ÜÅL£´Oßa=zÕ†¸»q Zù¸â=VÙeáµ.ͽÅxöŸ»£>Óß ükßüêmÚƒ·ûù~½› ¼Ú{pðê ÖK½S¶‚~Žqo<<%%vV·êÅè-œ"uìbš©Žý ŠZo¢#-àõ&âRÜxÖ›¸ñ¢£½FÉßÚßá/:­·ö¬{u™_ˆ1ú)HÀø'0¾ý.#‘rAìfõ>þ­ÙŸu­¨9Ó5yþNFšÒ—Ó”£Õ‘ë Û¥»Jwúõæ)ëÉT+èeúø4ßšx°ÔìŒô§ß§ìŽÃÿÕKÕÚá5é¡®+á$í+ÕCÞ‚5=ƒÑè¹¼ÝK6‰1NU~IaTºÚuÑ{¼ÌX¬{*f^ãEs‰eè¿*c¢º¦µÆ óæÊÐã™EÌL¥*MíÊlÞÚ©¬-¼<æ8Ç1"YÍŠW婳àÙ˨BibLŸaŸ£øV£Wžþ¥BòÀ­S–õuJ™hÔ"~ }Y…ĺDìÖ X±0Ú¬F}ªéAŒª¼ª)½‡°LµäBŒ_õà t•|Þþ.e“$“_…Òk'“ñ¢{MÆ3Ä!Ž‚cT¢Ú»_㯔M7™oÍ<Úæê¹g¡úÏ{˜ v§ô ί´?K¦Ýcõ\؈y̶¢ê^¿b÷®4çEOL%°¨ÆŒgøËô*=ØžàW•‚9ÎÇÐâ%ò9zÝ»vös_œ1EÌX-1÷U!Z ì» äÃð û}³óLš ç㜛oŠä»ÆîÍIyìr,ÖPÖü ζžÚØC0žE+*fa﬽™µDÛUæTþ¥µ×ãý5¨³÷”©hWȇX׉²7ò©«ëî"^õ¿êà?²ª¤¼Úõ·ïšÖ>ÿí›Ñ|œÖ˜7Uii†1}1 ß­·°ªQ¿“:õ5XÅfðã5ð«Þhe3&r)îf‡µ0û£\k¿ËÝæ^0—d¯k÷³ß¾+äHÜ÷˜ŸîÛÈoæy{<ø7øÑ¶#¿º Ü{&ë¥+^i}ÏyÀóf¬˜SŸñ¢%xoŒðµ˜YUá<ŒViµöåá­®”;ÁûÁÑþ;؃¹À«Í9ßÂà_ñŸáë{a«­u‹ü.yR¦¸íÀ«SîCÌüÙN}† Ë^æ8ðJ5¸Ú2Pã¯êcd§bdG0&·?ãEo7ZI¢_ óÝd©€ºÇgøò±ø« ®ßà/8Ì; {p€¿Îkõì‹A)ßÉAãE#‘‚ ?óƒÇàlÿ=T=ëÙ@å·•éÒú8-hQ5aýÁ.Äœ–à‘£¥vÄ[6.œEí…þ¦Z½[\a^ ÏGŠÁ °ºB=#1¿jc6Ä>C õ”½ŽžfÐfŒÖ$L¦G'ÉêŸ)¦VC!­¯l2°<þDãêñ³ÙŒŸW%Ö¨ByúëˆW…Ôo‹bE!£²²{•El+M¯•"P)ê·g°µqŒ¿Ê#þý¯^j*}Xñ±úòÑ*}ÚæÊ˜Ÿ ô¾1¾>þöœÿò¯¢Ú8ŠóŒZê¦n,úV ·%Έa˜÷ Ž•Æ‹v§<'L-ê_)¿ê¦·é¬™µÝv¨d}‡Æàômpúd²ž×Ø}Mð Kèð«ZäfÍÀ‹ÂvQ+x"ì»/ð>ïÕèÉró(¹Y7ØGÛéç×zôïJìA¥õªê~¥È øüwô«ÿdƒ_µg¼èàU… ¯(†O”l~p‚>Èga,”÷ðU=¬m­Y6«I=ëW€Çßa´j¥*ž •=T™K—3á[ö~ÑØõå&Yú…sÑ®¦¶Œ]‡QhºbjÖ`¥Ç¦@ÒôU¡rY7xU×ìFVoTÕê?]G¿‰õèûšܧ°oòZSõd:ø_­*¦Þnþ ²³m¾çb}ôµ:æa0õ¨ka¥Âw`…Ù4a,Xkê ´åýàÆó\mÞ„=8Ø2д𩾠hy2ü52˜XSh¨õR£7d-;¦ÞòXÃïÓÉÄZ¦<‘ì%z—FîTÀÕžF”ȧ~{ÙØíZ.«veÑG^Œ<ÓDëyÕæ]L¹V5Æh)B“SåÆ,º\~·4ù[ý7¥i±¥3s&Ž>«$Æz;ê3äDzK‘ ¦óÆN{_«4þ¨\zQªÓŸO}Ó~E¦VÈìÄ\úØ£š¢Ñ»ÂÒìÛ-fNÀש/¡õègh$~·vm éÑX„OËEâÕ›˜ÿ+MkÑ›Õ=æ¢L‘¢øÓÌxQÿW óï0…R‡ú¨X‹°5{ÙÜÌÂþœ@+{8æå þ­£²3¶Ô¼ÂX´Î¦¡¿^mKà•úï3_™Tëø®Ÿä´á{Ѿœ5UÀ¯šY½[ùÛô¿êLýö©rÂV >&?«ù2y#ОÁ‹°›ŠñŸVꃶ6ÆjX\/3Ú/^>ÏØûXgp>¢c¸ ï[lªÉ]öûh<üŸf+°ø8V#¬G¿º {¤ºÑºzÝeP$صÜò^|ZPZ±þ±ÖƒP;³)uˆzÂNª`¯—в8Ùù üê6wík+m}Gÿ®í|¹Ö%Ù“¦C°ëë_p‰ñÿå;«žLì Íéýüjöf ütÚ4¿¹•ñWÅèÕKXßýÀ?ÂþVµ´qÜaMÌíDìÙûÜ:÷º9'»\vÜç~[ø:xógqÜ«~šo"ß›wìÛAù†õè7™RVÆóþª¼y xUŒu£•ÙË/ÕÓü!Öf9ÆÇ^Cë[ýW«ÐúB3?¼Åe_MÔ8Jÿc,¾=I.À;í_3w3îa|û!™êv¹¥þ˜;¤¹_¸ ÷ë 0σ_Mf|û`ŒÉ èms¼OïëF`d+p¼ÆÌ÷D¿‹ñ¶Ò.vµÖÙ{ÄgûZÀ+ÍBøËuó[üŸÔ¿zÂýìûø°»ÂL„=ø¯­d\oþ ”_i¾ÝŒ©êõò.rì‡f¬¾5Äh…²¦d.õY…±5mŸz¯€sZ-›«Ì‹Ö…Ói±•˜Ž¾ŒïHLXdv…§"Ãèeª†s|7õdRbñWÑÚ©Å8é_$ʨ=x«yÞŒcK>u ¢ü*šÙ’‹Íé$R¿¡,3ÿÒ˜ SQ›Úm­@+¢²K¿æ, Fe1&ª4íÄ\¢k"m¨$ÞøÅ3ï&7–u£üªð?=äxbJôÆ2žÃÙsÅ6U¯D®U»Le¡ ¦KŸÄèöüØåÓªn LÉd¶ÊpŒzGò;°4ð«®´+ç‚Õ&^ÅÁÔÌßV¬ý·Åü#“äQdÔ,a¦S{uìÂl©C¾¤U´+ÂÞ/ÍXß9`1#È÷–iNauÌoÄ)´v…rÍ^¦Š}LzòfbŽýK*Ú]V½u›€E6Z1_¨š9ìAíÉç¦að¤iiÕþÃtʽE×Ì$ù üêmêh¼u•œÄ»´…#.ƒ¨kÞ{HõŒÔfš‘"û˜Q’$_†_Ú{¥"£Š/™)á `ÄSUî…=¸_jc–ÿw™Œ«Œ=ÒÖЕhaþU‚¿;È\¬Ü²ÔY¯¼š‹µÕûIõ Ä¢ÀÕgÖhrÀÔ±DU[ÿ2»#?º:n«SuΞÒŒãkê3Üê ìq39XIýöNµ%ÀuõËìÆ8Öųº©~kÞúöij—`Ÿöâ¨êÉ”Å꨻SmÅ7Ìg@*X3# n–[Ö‰ñ«ínøÕ?rÐÄ]ò‡Çåù;nºûö`S9¼:¤Dþ´š£}À\!Ud õ™ ðŽ=§qàO͈Q 0Ïb\s‹µRõá1þG[Z?g|¸CkF„ã©×÷9ø•÷7c­ýá»ûÏýóÀ«ïÍV¿ÅÍö2žá^·Ú¿æÞ‘²f'¬Õ2!èýPsTFØ)è™f´Ä©Ó†Ú¦ãi³i}çÑhÏSÀ«nxm F†+ÏüÁæˆO^õóðÙÐwö÷ø‹NïaŽºó¾‡_E¿Vz$ -úËê§ñíyÁ0êçôÇyŠz¯ªQ7vs†SñUC¬ã&ô7å}Jsz–šj|PTïÓW™×­£uûšÙ¾¦oHÏÏR³'<ÂÏW2çqÚT§*Ï„7i j Œïç䙘ÇYæUúÛ“ù墨q cœ¢ ïQ]¾¨W=•¾¨Ì˜ºK!«eÑW–ÇŒôòôÉ”ceú2±˜Òü­_ŸÍLè4­h‘ÌXö4ztÒÉ„âˆ3ɴÙHYY©X‹ÔM viöVv,&¿8iM¶4‡oÊ‹Ýæ‘_E5²réK‹½)'vßx7ÆóVŒ"g­}ãW•LiI‘nôîÏ+º€ý¤8yŸÚŽ©H¿ß|#eµ‘›â\h‡™Éáï¾F dõËM1Ï™®ÒÀ¤ò~p:vØ ZÑãÌo8ëÇÓÖ½ë`Ö–bcoìß#°Cu¾®±åm¼=`õûÑ‚Ï%M”ý(¯£MgDÇèS58¼Rû üêsÛ[ô„™%ßÚúÁû¼ï} hrƒ¼ÃH¾>X½3¸âËaÔ®Àº¿‡Ü~öòd9€ë[öGð«¢·³À{–…«©ÚYNÖÛv¯¨ßõ¸ÍhœxùÖýºÅlàý±âU;Y‚•V„u58ÙœŸ#ð¾Î¬žÔþŽÖØ[ÿÕÈÞÈÞ{°ZÿPä×ÐÝí¾ÂYßCšÁ‰{pªo)gW_‰‘Ÿ˜ï¼xÕ@fcÇvÆšÚ·¨6 ýÑxÕ¥ ã ±X5€Ø—ƒ].P½l31¼ÃÅÜ„q×|çç|i­I•ýpLGíÁmþ*؃óü>àÕD·×]ã_tŸÀ:ß{0…ùÎíðÿqg'áý½yúÜÄè¨zà<5€ç5Ð’áh‡ê:¶£~»ò« W"•ñ™£>Ù×^i½T»ÑÿN=äÇÜ9ÖÇYˆ=Iöíý?¶<ëMøHf0€õaµ^[¼T¥ÿq:VÓå\=)ÀȆã¦Ü»ÍÈxÛ“«´Æ(ªiÌá æ¸ý.2‹èÒ×Ìõå}3âÍb³9<Hÿv-œ„a •W(¶L7µéË­Šã%ƒz½q:£Zgí¯\ÕOˆæ÷¥mÆê&0Ž+/¦’¥øV­Ì$Û*`~BíÁòÔs(G¾W‰ù8™|f.cË£1]ôY)yÚi1{&}OŽlK}f1õ¾T¶,“\EóKh5ÅSŸA﨓«ö`1±%#¦ ϘüªÌ¤0W:›Ñ¥Š¸7cŸ-‡-£ã¦u\4JGñ¿*vmSâF}«©+–w‚Ÿâ<[`ºˆÞåí2_ÊBÙ iŒ…Ⱥ¡Ï¿öEœ4¥M:ŠñWUÈ»âIOcG)BÂþz³¡½»ó;ŸúíÉZ¹Æ>'=èïZa3l»×ª¹ÑüdmiÑQü Øs¹9FÍÀ¿MQpÒt¶êÛS¼J :‘ûM^eo’c¿b®73äcúbõ,f©T'›êõµÅ¨]vN ^µ7i¬—º‹¹±ÓŒÈ´p‘¼š²ë죢U#ÎsŽwÔhá‘Xך;yJÄ÷[ÈeøÍ<`õuàWw£×ðËQí¼VºúÛa릑c¦ž½GÞÆW^vF>tÝF0ˆ‘°)µ>Î[v$Æëz÷»¼f‹È¯º½­Ôê/Ý̓˜ U³Ô|ñ³ÔÕ\à%Àô¯ï2=yrj…µáÔëû ßÑŒ°yëfºya]œVã]]¿Åmvoš ²ÓýàŸõ{·äAy-®›{Ëó­äó‰ý&ȉ|k5oQÕ.ªÉDŒmWŒ× cuœ3ÇŬ7Ñø ª%ן.B[–àÄ[ˆ½˜if„×¹|wüj«™è¿tOùÉô¸Aþ+àÕǘÑÍ~ øÕ¿KŽPŸa…?á>£¿}'ëãôÆ›úcþ'ÙT„†X‹ykÜTM«±¬Õÿ~³¢zÈÕñw¢Kpý¥<öÿK>Ñ×õül´5*Ýîÿ^iüÕWàWËü<Ó¯ºz”Çïß ë0;èE=ƒ>Ìd­Áûåi¼ùÓš£êWíœæô 5 ¦{Gµ;Ö }“é-¾Î¼aÿŠLc$To³ÊW§~{ VÖ–ðddñªŽùãY—x‡÷©Ö òœJxÓ)ztR0ƒ °ÆÐÏœB¦‘ólG¹Vr,ƒ%ƒ\%7•ËqVnS?ë^Ì<€r±ûĨ~{T;«ˆVZéØ-`™˜)‡ø¥,Ð1G¨€7j‰Œ„O‹Åºg1Š,=ö‰zË5’TYÛpbW2󰫘 ´[óc9Ή¬³S†ñ° Ħ¼˜ŽM2ÛžGf“ŒÑÜ ¦¾ü«=öÝd¬}ýTuœy¥5#Ö™B ˜'xŸÒxQŽæS"ÛEÇ£-ð­#X±?à lÊ6Œ‡%PŒDÛ¦úícþ³yÿû“95® öÞ°í¢¯¾§©jIgÞ},·q¶ö ¶y›ùÂü-¥DoKσ,1ÏKT978aÚPù_Ó!(¼Òqž$ÙÔàU¾ëu¼a©|†¶fîéb¬à´ÞÕÜŠWÏ; {ðŒ_G“ ç“vÞÕíJ”å°/Ç'ªÈ»Öv@›ŸÌýøÝ—ê“ F¿®Ã`ÔÆâ4‹µ2(VMîdµø.ÔQëEo–Úp•·ÀXî7Mí9ƒÝõ§y rÆ5¿:…ß~ÕÝ¿jÕ·|­ûU^5CÝ_¿à“Sz„;ãS{ñU]´¸öη¬ç5™xu=T¿Îf¼Wó+`FÆá­Ça©õaíñË"¥è¿ª+fŒ«çï$^Y» ŒêŒß~,[äP\_wÊÏ÷ åWâU>ø•fA~뺚La„UE0Ľ¼—[„þRƒ¢9+M—Ǩm®’ ÄŽ|c­úîcÃ;]®ûxµÖŒb=ú4#¸|RÜh¼÷Nð«€W7¯fúýÀ«É°ù÷݇àW[e ~÷«…”˜7d´‡Ý<بïFVŸ­E–7†9àã€{°r»àûµY/µÐ ¥Ћ>É7ð3¼êhÅûv~ƒÿǵB+ŸrgW7{Åü„HìOÛýÝl~Ê=ð›-p là ¦wzÇ0Èј™Íƒ1®kð<õ?¨G±1Þª>­<­·îºßo^}™ùE}xUUöý>÷¾wN é…ô„Ð;¡…J(R„&H ÍRTpÄ2:àÐT•*0¨ëØË¨ØAQQGA)–ÿÚë¾ÿü¾|˜çË{÷ÞÓÖY{Ÿ½×¦ßx˜,¿*ã)Üy<üU(P/(„=¸üJãʰÓëTm9Ë|cͽ]!Ð ¢£²i«ÅRÃ81rž–N¾@÷ “¬ ƒˆ–Ë<ûLúƒrY¥€¯óy2—Nä+¢)‹ÏœÆ×Ѽ~JDß4!RM"#•JFÅø%Í]þ?ýö$ž0FGÐmc”;5 žL y`}mv¥ÓMÏY]âdPë9LM­É½à%¿R{°?Ï5DÁ&• SE”Æ·G¡uŸzx¥¸´ ö`?³•g…íß°F¢™—ô)Öiï3Ãî"¿:ere³Ùn}û)ú» xuÐTìG}Œî°ÒJ€ ©5-,¦®ú“²=¥5fVJ‚Í%^5“W€‘MÀ¯´6ö¶‹Ûâ.Û ôù‹ö‚ë{ߊ§—Pص‡=X@ýçË~ž_‰mËú’±˜ÛÊånÂwæ0_!8V„~(¥mR†çÐ:Øê£(Cۇᩔý öà·¡ɯÉ_]‘kì”E²3ü}h± vàç1?jJ#ùƒId°Wx®—„±†6–|#…ñ¢ÑäWD¶:D–t"P.-°ºÄ”HVŒj Æ3– ™JÙ´õ²ßžA_*°q5Æðê¹üf,ó±3Û`ɳ‰Jµ©ç•Lõ«ZDÂT*ÎÔf>Rbä/ê+EoT-æYç36U3# sM;1“yŽ1äÿ§ÉáxŠÎ÷bDWQ{sbŸ–ÞÃæ¤FüÈžÐ7¶¹]g5.AëMôroyiz?íÁ¾þl¬A`2,ƒ%è'­ïü4ƦfµÚ<96£±ŽÃúÒ‹ƒ,ýè¿ÊÆ臟äk=ÑÀsª¾èX»˜õqfÚNnxÌaXÚ·¯¸+nsø#ó y.jŠýÊ]Ïxõ·‡Bç<­šñˆ¬2yf¶äEâE·QÇb,Öf6U󺀅` àâ÷Ꮇ²^ªê!Oßoãìûá‘ØªÀ¯^c>NmãG pÇÜ6w\ÎÉ£îàç"·Ëì53í#xuö`=yÜì´yö(QYë;_Çx†kXíHuDKѯs€[UŒ‡çyw鉞ÒúÎ16ÞKk'/» ×Àt¡¥QVݯ¶ ®òŒýÑpóÜõ­:¡hôÿ/žV¥]ë0ÍLD¬”­r £;³g2úx6cÙ•_µuåù¸æ?hÆ8ê3¬åYò¥ò¶÷[h:ýÞ•²ÏЉÞby0|(4ŠŠSªx½wŠãÙ_GÆŽœgfh]Æ!i>â~ìZ™Ä²˜Dùÿ¹É D¦\²¤\bNÏßr"ܦ ãÛu­i}²D¡øH}Õ|>sOéR#OÍ™Á–bQÝH½ÔTú¯¢i—&Òê«ɾNa­œÔHM4ýæ…2–ì0†+¯ˆ2ÑÌÇIe<¼‹ÔKM¦ÿ*Ž6iHÎt‰­O±¼`ZŸDõ‚iØ›z°-$Å44=Ùÿ5ªE‡=V¿ý1fýZ)7ÚKD¼>æ¯F½üeÀ“ræIE¡H=£¹œµ°Ž^•–¦%q²=F÷ë;§`–}ƒ=b*ùßR\Sí±Úƒ-¼—Yç"NîôŒW×{ÂÓ3ÜÇå{ñ½hÖûöÓØÊWC&ÓCºÒf3Ð÷üÎFmà1æs/ß?ÅŒö·€WËÁPr1?«°²–óD<3wóa ¥ò€7å:ó+½ü.½-&3oŽD™9àWzÆUl^ðÖÂTýÈÿÈ`ëèíÆ˜«Š «Yg¸j7£™¯øÎøÎc°Ñ&£W;á~õѾ¶Œd(£ Vw­Îè=`޹.ɾÐYÆ3¨ª‡i{äMoªæØ«æ}à/ÀÞø¾£ñ ñ¾À£yÌVë‘ûA‚J ]1^»Ð¿CðéÌlBÕbUì=«z ãkÔß>ÙÞnf2Á–ºÁëÞ„¥½ öà%·üj³y%j6ýí] ®íõk…~öÔÏ¿½Yhf¡5}1¿s›aün¦¦Xܵ%ž¤?³uTóê3¼ˆO4Çì¼!|ŸM³'Ã72žá”}Æ¥¹•b‹ê.¸gÝ¿°×mqw¹5@©­æi3É>nïr‡í ð«mf·MµŸƒ3j½Ô£àW1¦ý0Z/µŒ‘P3Гq'­þ¨ñíëDõ£sm ùUGyÍÕu-Ý@æã80ªÍÔ¿[¶?üq¤ñ¡7xUÀóÁ˜P²ßŸ @UàW¿â{%Œ‘­Â½Ú1þJ£ÝC¤µ´¥:cãEïÂ<˜N¿ÓÝò‘w94…k[õú2\î×sd[ø|è:¢JøÕ^ô`ûÔ £Ö˜g‹Àƒ/’­¨¿})ë;§ÒÚJãï@/Ü­³…‹H¶U—Ü%‰qY ÕšLtЊk´³©Šä ‘ñ)dm=G¯U#Oõä>D{08Œc;µMaÆ6dÒó_‹Ö^*ye4Ÿ(=œBŸv€WÅhæÔçÝc‰]¿=šß ™“%PðÊ">Æ£å÷SSM×u fÙ< jÐ×Ç:M4¸/Ìç›+ì•ã™MÒÇhoî€eÖõèã1Bçäžýi¾ó»ài}ŽÅLínr‰¥{ñ)}šAøü§¸²"ç2ŒK V”Ú•}¤‰·É d,ðZy!Æ_¥bÎh=¯x£§ߘ`OÚktl®H–ÿ8™ž[ü ýý¿+Ï Ç› °_§=ÿÖË*sž«Iscæã_9ú¬ëzØu}1Ê3RmžÁxtCËχ?÷¶™jã%›Áá¬)QÏlön÷öUý7æmµ¼Æ8»ÁÀÝ¥°’3éŸÚ(=Yo¢Þ]¼Zƒ5¤Øý0ËaGnÅüÁ¶ø­»õ³äW§€©fWèøÕJ؃CåZÓÊõq½jôÈBû“y]ùËþ/¬Õ‰‡uT‰qј÷ö`0 0›ßGÿ—±/÷3¾½ÆVð3­‹žH23%O¦‡B°çDìÁwpòCXÜ[íY÷3ìÁ÷À›ˆºÅ¾ï¦¸Fæ‚^ýæŸ߸V’ÌÓö`s{žãhŒ9—z2À‹RyRŸl‹xúînÌ­Ô—(SÃwÚûy¸Ï6ʵ{]ãlÔ8÷™[å¾–ÿÊzwøÕ·×¼e&üͽc?Òl4¯¯Ž£GÔ¯ó𪆌Nµz2´EKçÒß®ÙÈÐß{iŽd>N؆íxú$_p)®1ØÓ,ŒRüjƒûÝö`=ú¯ÝPw£›§gB¡x|â[/û×f W¢?+»Úò0ÖBKÖf»ûÞMh­æ;Áu·2†!•Þ³r|/>ß^…™ ØÆ¦ mØ©¥¦•¨>s+ð«½XeÚ?£ä[9WKúŒï-XûúlC°~¥ž x²—¼ÚËz^ËIñ’Œâ›Æ3Ü.GŒÚÍ¿K¡ÿ)óë~ÄšNó{²nÎXsÖk韠òìñ÷™ƒ¢:†¡nÃÜìG½¾9XákðÜMÀ4p>ÓCŒ9þÄ{Äh-ò°U²Â3ñù9Ò̬òj¼cF9õyp˜i°²bN ee‰5­õ¼Fúšy¬e<ë4×<È:u½E#´Þ„ê!·¡ª];ô×sÒŽú ½%“z2%v-ðj8Zc¬¤‚Aô—ösTºù3÷¥õ¼Rçª7žAõUnæùQ¬äáø¿¹À«¬—ú8îYH}†gñ ý`G4ÄØMù¶Ú.w¾N³-€WØ7ä7³ÙtÅQ;¯FÕØ§ÜWn~‘ãž E…¾ô4w«Üjê™ÖzÈÀ•5p p°s\ë6g›ÍèžrôÖ3äWÃX3ÖÖµÓL!ÆúiëºJwð%人Mî¢Õ‰çí w­[榢÷¡d×Åýì5Åu×KíP¬_ äP…·õŒ¿êHm´‘hU F3VÆà¯{ÑéTiéÌꇠËô ½6ÖR/³#’ƒv/ó'a/ìy§ÿRÅ ­ê݃”Á¢lî݉öTÀ&Ú:m›¯ÔìmZÃRyÏ›„¿,°ß¨Åèk¿ËÀ¦yÀ«î¬—úÆFµãTAþ;9Ìè®øû^¼£LîŒV!þ^4Ö˜ÕwäžæÉ¤gGÙÉá6èýj؃ÂüH.ší°ÐúGí 6[L5ìÁ=°º‚_½çýèŸò¿ñJke‘inf µ=ÐʧÀP›b˜Çu]rkZ‰3jWd³JtPë0ÞóĈÿ*¨ aÉRéªÑoOçë:T ®E¾ f¿Ô¦[ÌÅÒ\âaõñ4¦"=ÕÄÕ:„)d~ÁÕVÁê^DWìÔj²ZóC9IC NìAµ1§R¿ý[Z´`¾ÿ +W¯³E~2­ÍôowÔè'Œ‚òºB|¾ÆT½q7`ÿ-åù ŽÝlì³ãè³Fû)8K"ó‡/^b¬]_ià=¼Rûôf/Ê‹õótÚ6œëeÝKΛ7ÀÉ>0zîYËø/IOÏ/¯²ý&ŽñWŸ{MüSÜaÞ¡ÿê(®Ùs{"æXV^ÓèõQ˜°ç,®N00J=€Wß„åð‰3ÍøðM@ÔùÒÖòf{/ýüwøžÖ‚Õ(ª!@ù;ÁQõTJãŸÕlqž‚wë™Ð+•ÌÇ€^½sQ5Môì¬Z „ô¯ºÁÜ:g›¯N`†w5ͱ^>óÆáîÀj=!}}ÍU»ˆu0OÛ 5{€¢p­!X£ª/=„UާaW¸«´ ž©ÛY.<­S>fvJ–Œ ý ¼RÕ¦ ¶µÛn×Ûå2ðj§+^}j5S¢ª€^“]'Œý ^tHBgYob»Ì3…f.fTOfRïBÌÂêÕìÝ2ž~¾@?qwÑj¬7㎷2ß¹5F{Vx‰Í¶…'à¾ÃÜiû¬Ktw«µýÇî=÷Fq³»ÙÝgg¹¿³þàÀ«ƒö3“'›ÍËxÍÇù”õq4‡]Õ¯Z`§¼cv#ú©!ó wc'îG=™µe3mµ©¿ípµ]}7ÂÕ`,~µmÜÝîß¶úüû%8í2؃ý¤V(ÍupxY̼è'ùƒ©ï2TÏ4c÷€^·ó^‰T¼ÞÆ/ OÐAz‘_Õ¡’à(0lõå®×½Ë¡\wƒdZ^N;bŽì ¿ÂÜ´ær cÕœë( 3d2î£>ïæÀÉŸÈŠô|p æÁxbZ&ñ(‘ŸO$ ´‘s¨Ó’'A›ºÔxI¤¿½¹S:-D,ä9c>~§1ÔrÏŠh¹'ðÔ0È;N“@c+ë:žš5QÌL£W-Šùƒ©ÄÆ4¾Žd* SÜ«$+S¿}SFêë,ò¬LÆ-dD*N•œ3˜èeeI‹ÈNpƒ]ÌšÔzǤŸ¨ óÑ–œ6“a~äyë1ôôRf´%»Í:b—âÕD>–uÚÔ´#šŽÀLÍ3­ÈK°ÒžÂn«þðJ9ÛdzFã¯jX3OÏ‚ûƒ_=lúò|äNï#“àmõÇÅõÓ¼túù¿Ûø“fÇ8ÖÇë¦à5¡VòóÀ«Æô·/^©=¸VªWoeÜ+¾ù¯ê>wÇÝwÀÝ-n¹{ÌÎq›Í³f–Ýnº·ì§°äÖÃZM°GˆÄ}`^ïà W{¯§î¡°¯µ^j ølSVpíŒyý«ã6À¨ÄÛT;Wé(»Ï0üªT®ÚNî!wÉj¤Ë«ö{×ßÍ^•‘_•»+^}êÉüÇOñû²®‘r›ßq}õÕMÁ“¨¦²V7‰û­ÆÕ÷Ûêí=¨þ¢J‚ã0Ï•ÛÜ%{=žÌ“·QRæò\g²‰ùòxøÕP«[H´_J˜#“‰v£_:U£0`‘¤²¦D%žè,‘Ü#:LédpIļ '‡ñWŠbyôÕ%[Ò쬦D”êÄÈ‚8žêOñ³•ISˆuqdmI´ÅR‰bzG|ɤÕW‡ü*‘ž,G_T #œõ&’« U,†÷”ãñ§ï›K䋦žLóqbi f3–68=ȉDÊjàôã~žp–¯°-­$ÙôfýÁxFC6^©/îcÖ\ëgǶÊIsy€qY¥à?ý1sÔ,ÆÚM6i}NÄŠ µQ£°†¯FÑÏ?IÎãZSé¼ 6šVPIa>N±÷´éÉÈ‹eÞSÑÝ&ßce'Å®³æ ,ÎOŒâsŒië?+Ýß~I†ømý>&ú ïxΟO¯cMN0ÇXÙJµóVa‡ª@´ÆŽ7,Qϵ–`-3;™k.†Oy[Á¯ÔWÔÅ,ÆêšžÐÏœö†âývhíÌ™Ñ`nª 3¨¶ëO½”ƒð~3ï¦ãNwãVá»Ã™£|c+}µb-ÂöàHû$Û[l¾d±µ¡ó¶ø•j€ö1¥Øëy£ñ¤óìó\ë/Á¬½„¹¬Õû³BÎ#2×Ѩ ±rÜw Uça‡ŠÔ™ùÎE¬ÕóOýÈ—àkÅøÿa¡‹áëìTúÛ§Ú÷¤½HpÕì´·ºEÀ«c°GG5´{]µë{ð àÕiÿ4ðª;ýRÓØÔÐß^ˆýnq P´=ÙŽöÎkôê÷Âû+€¨•ÀªY)1üjžÍ²‡XpõÛUÿÊšÿ¸^îm÷¾;ìZ~u¯½ù85v3˜Ö?©‡¼Þ<¼:>TM׿ҫÁ˜V°*ÐZæ·`}çáÔÀP…—ÝŒ˜U_Új ÙÚv´ÉÁls ®Øt;õ£íàþæ®ÚÁ¸êöS7ÈMs‹ÐŠP( Øõ«—d\'¿øàWz¢\vù+ØNúÛ‡kJèoŠïßN-P­’Õk©Ÿºp+1³¹òÿ,/yõEã0~e®®+#ŠÌ•­á#¡*ú‰ ±#=Éz©ÑŒÂ®âéc4þ»Ôhˆ=àM™D”H£G%†XTôŠ£}˜M?v‘šÃYôX'YZ2†!žˆP¼*&7ÈgLf¦usxnØbéô.%Ò¿žÌgÔZÎ<ŠÈ•L4sŒaòq‚úƒ‰´’Ò‰Ezÿô©þŒª5"ŸÑ3õzÂb#Ú´“¨6èÏ$0º"ˆáÌå!ìÇú=°&'c ”_5•8ÓÖ ¤wv¯8àUõdzË}ÒÝ(æ>*_˜kÌCŒ1ÐÈ  ÚƒZË~»41­É©fÊ^)0øÝvØg6Á4njVÎQ\YO4î‰Ìhå{%Ç{Ä\ËþYàýfÂÞ6O󇶃 ×öÒŒf|ožÆ}Ìמéæ?/íY“â2õdúõÿU›O¼ÿ$Û¢ú ÓÌaÆ·ʬaEà&xæå¬G_Ž1ü“üSF›çÈ‘Ãæ'ð«í¦>1ÈQžç­]kü±à]%˜ßç¯Çº,ÆŒ™» «8‹uÖË@Øƒí€ Ó°Z;› ˜Yý¤Ñ.ƒ/Úk»9ãÝöI-o>øUoð¸‡B§a®füUÓΕº“žf.±÷šÏ¨×׳¹ëÑ`õ.ƒjÁdüÕ͘j/üUš›ÀéG[*X£u vJ­y_©G+Ø[d4JáÙ:iëÙ¿Ù/ÕÁõqǽ1˜ùËl…wÜQëx^¢^ßí¬o_¬˜ ëŒõ;ENc/©b­ö¥™Àg¦õ&2ûa?óŸß«„ñÉ’q¡ßÃí<àÕJ™l+Ü~»xuÕô@Ôö=7Þ•›ËÞ1ÿgÿ„§Y«À¯êš0«{ ŸÃ*FLf6J7 c{Ö›Èg~Ì XûÀZÿn5Ælž¾ é£ðX0¢¡îKð«:À«8ó›ëçž^}{p» öàMnÙ¼Úi«Ý!ð«\Y¼J±ÇÀ‘5žáˆ)¿ÊÀµÄ=Ô…hÌ|¾¹è“"p÷Îx¶õxŠ¡Ìü5œb'=›Ý ~Uˆû©¢ÄÛÇÝë.Â$/Û£®·[䣿ûµ©'£šå?ÆÌ•®õDþàé`=ÌÚJ°GÕ2KÀû#1·KyNT‚gR…ea \‡QRŽt·¼à™ðT®ûÒ üª‚«¹Fv„/„†ÑÃT»îSx^Å ÍGOÕÝ¥ »ŒªÂ˜`þ`\Ä/̘Í$ž Æñ'Ÿžì߬/\ÀŸ]7Ô©“7‡Ï×ì¿~ÅÎñùëæÂk~þ¯„ð=ˆ—'¨wË[ªp†”©ƒÓ®ÿÛÇ~üß6íÝÛü_×0›ýG?6þ÷ë¾°ùûäùÿ}Ígß ´5I–æ¶±ÁÜ–úâ9±>ìžó¾‚N‚`íán±ÝNwƒÞä3o‚¨2Á—Àîfpë»WΑoª¶Â÷»™`3RQÊ@Ñ)‰yív/:³L{›ÉÔ1S܇Ž÷MíaVPw:gÐ jIKm8*à´vÚ:”Ðf´Åìl{Ê ¬Š³MÎ ³ÒjE£ñ{þ•rS2;–ÆÓmêL?S5šh£Ûü6D0*†7£Í[œ||öÐ6rù ýIøÅâ¾ôŽBrŠH…ÑêL4ÜýZµ'¾˜”•öÛ8ƒñ4*K¹È¥ò4öSz¾O‡)!ϧ’4ŒQ]úËäúJ O¸­è u¥‘t‡R Ô©Bý(-Ïá^ÜŽSñôÿí t–àuYl=çüjyŽë¾µ¯ ” c…ÂQkT»L=yzØ»²ðºK÷i+ÁžZE‘y­ýμ ¢Z7§¸II'(ϦrèÝy´¬ µ¡çô–ÆRë³ïy×ãÊ|…ö¢·Qf E©èWªgÿYíµOL;”"òd.Î86¯§v4•’p7Ô(Î}ø!öó3^Âr.Àh;MGÍSô”êš-β@õ6¹=ì@*B©x/äRL<{7¿àJ’IvK¬Mä*——겕«rþ¯ëÉÛ¸>°÷L”@û%³ûÀ–¦”‰ðxÞÁ›),Ïã4[Vða©¦¿èpÝ¢'ù$ç‘X²‰spZ>ÌGù-7äèTŒ8Û>«ØÙ½a[c6üÀ%y-åEºÈ.ÉËñe„ŽÕÞ(}¤Eä ·’*rƒ«p"îÎWÑþÉ|3"¬éôY½…6?×e‡ŸÒ¯-ËQe›Ì—¿¤•ûºTÓi(]¯ýä"·•¨R–pìíüš–в‹óÚêår^;(1Zö††òYÌæu”MNH+ ­Å%².Ñ>ZGsènü¹DɯZYÓÊqn˳ù{¹ÅÑø5m·'?´­ˆ“Ñì§¼’ÏP‰Žÿ{D¡¥¿>ÖNºK^¢}‰¼pžzñ½Ìú@\/¢–Òß%ÿȃÐß!<—2Øßl«í{è5Ù±Æ ÑßäÈ›• Jb¯¾ÎÕiúT*ëbm¨ Ñ“AgK­)ä/}‹+°9•¦Î¼Š¦šÿ®7ÃùÝ´²ñ°zZQOrè„ önèé‰Z—$Ž·\ó{Ý<Ï«êUÔ±òRé{ŒìQ¹‡xÏþFÃ1ßÛð.sð ëî?¹mô}ïÄù82¾RNÒɨÎq'Ÿ»Ýc’šn~T™â#7´›È­ç^vâ~#?.ûê›™6 ŒôÞf0ÇÜÔî"g˜)l ™ªf”ûÄq¿‘+±on۲Х(Pw¢NNK÷°-Gél[>€QƒUqˆ³Ï9l–Ò#:Bµi2½¢¦ü˜QÌN¡9t…†‚%-h4øQØÆ FÅ×î$3Õ%Ãç š[¡ßñ(üºNÑy$½¦0 S(ÊKÀÒñ_åÇ3_dðã„MK‘ Dóñs9A‹Ðâí”d:I‰x *ýEé7še ¥…§ÜŠ`ÚEçhEÃ\-„^fâ±Xÿ­9;OÖ_  äð-ZLƒ)“íéýB­¹'­Ë )?Ú5’âPHjŠ5³ŒÚA]ëSžÀ.ï kôŒÖãgCßbð2›È¼ ¢Z-§ºInÄä™Ôã¾Ruðè5“ÒCƒ¯óvnŠ>Æw¶`­"¢,T‹šÁ[¾Wî@;™BAkrއÞ s%5·à²øº—bW6ð8(}^>„ñœ>lCÿ;›ÓÎÖ@õ»Cmw´'4r!7ã·xíaJÇ﹦$•åÒÚÒL^r=©, ñ±@¥YàÇ>¨p{{ÙD´_’»·l>Ð1)Oä™|€÷PT^~D•-¼4Ê®#t§¾æœ[~=ü ؾƒ0I{ð#µqÖ}V±·{É6}-çæ\‘#qé.›¤,jâ‰7G/ky¹ÏU¥øQc2 ý(+y?ݤè¦Ãgõ&ØBÜ”}|™Zs ~O¡d‹l”^ÒŸ;ŠxKô'¨Ûu„œåf_U–ó<‰W€È9Á=\Ñ–øP/³sÏé_4êŠupÚ.¦ìr@zht-$gdœöÓÆšõúéb¹(ÝµŠ†—+¨¸CÈsóíü„eœf à°˜£µ¤mµÇ)¡L›êfyEŽç…òÂ{)¼ìê¨zO%§Ž–òœ’ósìùy”ÝÖ´­?áÇS 3­&í¦CüÚf§Dò£WCgéZð'48RV×h%ð-‰‘,:NÊB} ~$ÄÈ´ÀŒï÷ûÀÅN[SÑ&¡¾ø¿Îd蜴÷öérŒ^S½"[t¦¦?h ¯°®OBé¹$h#=?ú@…zðsæ ëî?¹Íñ%ûD‰Ïù*9Op·hΧ´»ÖýÁdCþðûÚ1¾ˆnx7™ÛØ=ã$t¶Sµ­¾áæòGÊGñ1[ϸÜÙÎ\SÛf35Lk÷”sç›êm0G ìááæSJZa#R!§ûÈÖ¥06¬-jÚî«`Uëìr®šÝšÏCóÒKÌñ†”ƒrÙÍ´ÿšMÅ¡×l,[Ã> NA3ÊŒ±™‘?¶ÂÇ@Þø‘‡S2¾Jð?$pÏ•áÓ‹CikÐȯòã®ï'ò¯¨Pš<,)÷YÖÒQÊÅ/à]^@ÙiíBÅU¦øWöö]·3œî@ôê.~FÀŽ2È?BëfÁ‰çEn¸F¡ö÷¼VSªo«;»¿P+¤óÞ ~ΣÄpc).œAs@óh2Zú;ç‘ðˆçè1h4ü˜ŠÑÈÈ[àžQ­·SÉ$ ëPÀaô Zñ -?2C8TLñìcòšÖª± l…±°PÒVÔ.~œõE0=íHPw ¼v2hÐj¬æe”ªÆÅ uû©:«ìÃßRq>ä3`ýb´U¹©Ùå¬ To¢ÛÕö€GMÇkàïkA7¦ÂodàðÒ\âË"xæpÚHÎp]É÷Ý¿ãŒxÝX¾„Qmk¯˜ÈöKT÷ÜT¸òé Ò äë9«D¥¼ :“[è5=ˆÄñ+ø´›3s >ÇŽ|/-9 ÜMw¤æOëµDþ¨ÿƒKCuósdN,ýe‰¤á,2µbxëÔóÊ;. ~<À(Fç1ü˜ÃÉ|þ%7=?«7ʦ…jß|}GQe òÇŸÒ‹‡È÷Þ&M«Ïd…n»Ü]2häÈ3[¡Ï¥Á»]ÜÑæÿP/¶sÓé­ÍÉÌ#@ÿ]öøqTzjýQBꌄJ7éhÝ#7¥>8KnbÏÍå8âÊ÷˜E;ìím+ìübvQ9´ê2øñ-¶g)£ÔÕ Z^׋«q½D^d/’—ÌË ~¥qŽ›ôX…àYîpÌ>–ô^-¡{ ÷ä Úó·6ÓƒšX÷Im«±e††–É`þexŠ†Ô’SÏü˜ãt1lzê Ç2kìµTðö£e¤¬žUègB¯)I>¯±Î•M:@éx9)71ÿöÛFôÒu}Þ`aÝý'·5¾”NŒ#s×ÚIù/ù‘Ë9èqç»1LóØÉpü*†ÖMëVwÏ;ñßT툯½ncД„^ÙÍ×s›;Mn›Ò”5ÃÜû}S;ûÁô§6?Öq8ZioØqNw›­O? )ä±Ãìn÷u°* wö8wÍ (æ)èÃzJÕ¸"å¡jv|À9øÛL˜#“Põg;mŒdF˜YÖ¯€‡á'öA‘~?\¾M)y9ÒH4®KomaÔ,L=¾Ê;>ï©rLE8î2Tú¿røÃ8àGê t£é&ïWZ¸Çí&öÃ×$–ø4 Éa„ Á½ £ËÁ+´“namn¡^”Ûöun|¡Ö3ß;ç’ æd?&ƒ¡ˆ£@ŸÁÜ Ê?‡‡s88ë×hûŒìtZ•\hc™ðA´rŽSÙ¤Á¨ÅkÓ!dŒÆ lCzƒD8…²ØGæ6òGk8g 2oGâJIŒµ^—*Á ¾°¦¯…ÑîÇy86¼Ñ u’óïpèmÁ“T‰_ò!0.+¾sûj8u {êO³ÝY¨^w˜mˆÌ˜ Z¿€»²‡Ô÷7忇\G²ÊBi-l#—¸-ø± ¤µšÁ}À*\Ýž2ÎFwoÚð+iyòÇ,ð# OæÐ÷¼Ak¸Ôµú„ƒ)qe=çÏóuŽ&-8öwgÁg»º»lM¸‰Èù£,¼y$i‡v¥áŒÒN‡é]©¡¼šHH%¤¬Üá ì'ë3Ž ky]¢¬Ž_µ³å¹<ÒãEjÆEù.=à¥2[ÆâÝ{I4o«VUÑU:Gžq7I¦®lÄìŠ~Ç¯Ž¹­ÉCú‹nÒ RäâhINžÏø3œæ|:_½ü8‹ÚQ1Ûâ‹Ç¯^ú|î ?“TH±ÉóŸƒAå~`Z]jϽŽ_=–Ó pjüöV›ÌØ ZÙÝihŠ ¡¼Ã>(@W¡ä­Q£:½GzKbÏt´>7FVØE›ht¼3ïC:ÙÛ&ðÌ ë^¶Ñ¢$ ÷B>ÂÛ)’ÐÏG¶ó^é¬Ùt>üïnþ› HbäÒèÁ9è}DiÇ¡©(u tüª»{ÁÖB& •ÜŽ_ÊI¤–,“œJ&ëRMííÖãZLsU)o_ e( Þo9¯À‹ˆl~®ÌQ¡]¸ 4Ÿd³LQÒ—I(o¥ÆÒwrBûÉyn.Iõ ïâ.Pç¥ r /g¹¼Íú¡^QǺ½)"bÂ,{Bw‘²ÊYiuÏ,Qt»¶×ZQwè@#{¤‹æS’GÈ3ó8NJ~„ÌrèCÛ8yÌY*Ï¡øU–_蘽FE¤xû‹NHÆËç…öÄ‹éE×'’Ø»)ÅtœäÉGœÿ˜G©m[ùCû.8û?ò"Õ_¤ëL”"á§*ƒº õ˜”×uúô- k4nJkXY­Žl#7jPeÅsè¯üXä41íl ¬«NXù/ìI©í×u2PâêIæõÑb^{ÏxI½ÈEŽ×CÏÉx¹%§h>µM±R¦Qm>ü¿’?Öù"|rþü”¯¸ÏÔÑÙçäuO¸qM-óÈñ§Ñ±¾ÜÜ_ÜÊî5'œ³÷›ªôµ0‹m6dÄÌÈ aÌ9÷¹ÓÕ™püªøñÎq¾©›Ìfä¼K¶:­„Ê °q©½3É=i«PHßæ¶Kìq׫â<ç¨óĬÈ õQó9òGèa»Šr™Æœ«èc“Ú&68)ŽkæÙbðÍûжðÞ·©ÒûexÍQÐî Ô™¶"fWušðU~¼ñýµ8nãP"nÇ30·³â§‹ÐjÚJÙù´Þá™TæB¡ÛÑ*Sõ+-|éöÀ¬ïžÝ@JŽŒ_•ãrA»Fp'NËsÑÚpâ!¡» ·-lsçÖj…w:†ˆÿ¢ h×pŠEa‘z@ûûðŒåhhJ(>z8¼Ž&Ð8¯´5MPãØÖi`’`¼C¢—¥é4’_uèk#z€ïüE%¬Z\nnÄg±§Ö«ýDm*úZyüJÍ0;•¾ç?¹$ÇÁ×\jI#)|r3nÊkù5dOöÂãf?NÒnZ†1<Ž6V4[Mê­v[ØTr$¯â:ìõãÈÑ¥òÇN©¡/¤t¾”‘ýèw.ïÉAýÞö‚‰¨Ç©Ü[¶Z”‘ÿâé¼ NZÀðdUþæ“ǯÆA·þæ ǃ®€ì)x/òÇ+¼w2ÌÎ?œ…ŸU¬âž†g9Œ½‘—×á×wœH:Ê|‰Ï)àïªëÍUŸWLpðã ò‡ÿÌËM++ÁÎý”ÂüñY½¾69ÆÍòuj‹j.‡’åÈý¤+wö–k­'u¢¬ã¦KýW6 Ç ZÎ'À«W¼‡ÛÚlê¥wŽ9õI91ØÑŸÓ-{‹RË)i­w$#|÷jp#²Ã ‚ŠÁ•š©/öMdºXÈËì¥m«àÄ1Û¨ ßÁLk#¥i-êU—žúJ³êVä…§šÓc/-¾~?è{)®}¤Ü ô¸/¢8¶ì'í;ë1™áèÊÓÝäØXM‘¡øÈBÚR¯J ½ð÷ÊzY£CéËèxM,kÔ“ í§T?Wûïãù©N_ÓÀF=º! ¹ZÛ›¡ ¥¹DÔk²Sûk,¯¥·Bóx Áµ‹ÚDʹ.çií¶u¨,- ¢|Ð|Ûæÿ™m«/õ'üxê«þIù¶-sÈ©éžq3˜Âæ¾ó3ªLô%vã»Y܆îQ'±súÛÕÕ¬ 8j“ DmN»ÇÁÎBSÇ1=Í7¼ûmǯV˜ÝP×¶=´®,-±±©‰3ž®%µl%»Öuƒsµ”Ï7À9àÜ2'¡ì©€ß-ÏÕ(òǨÔx‚bPü¡6¶mjƒsF%œédÀ FäUpÉ[Q÷u¥¸|’ò(é5¤Z‚×éˆü1ô«üxîËAIèo›‘~äÖ¼,ËE>ôx3Ä{Mé5t¯MQzÐlSè+}¾éþ‰ Ôüx„Ÿ‰Å̃?ÓÀé 8¾¼»Iëà¢õ}¨´íüÏË-ÿk‹è¼sžØ<‰ÒÒÏH ±)u ?éMä‘pe“x03Ÿ¦äb,†ÐT:…¶ÆV5A©SÕ¤@þ`°§rÀj‚ÙR—^bÌúSä7¼êYÏÑ!Z $Âû¥Å;¶‚O}/Üqv2úñ~"ÇFÕÚ4›rÀÕ–á²<¹¨29Ì£89´þø±ý¾‹Ñ©jv9«Õ[äö²ƒ¡ið“û¹.”u<Ô:7‡“j’@VÂ¥zp÷G¹šÅïðŽFòEo¼=dÂÃ(îsð£1%çi¼껃¾ãÅW¢ƒA'¤=ôtª®?NqM‰‡ïýÌéàñ¯0KŽ‚™3ÒYûYÅjî]d ó¤•P[:ËI‚š½u®F?njmyÆe¤€\åªPåþÈ_·‘~Âwç6í?«7Àf  ä9ªž¼¦°²B¦Èh¼{'y­«5­’ÎÔ™²ÄÌ~¬Ç¸vã|ƒ“J0°¹M÷¡^$$üvpù‘Ú æc{‚Ò tÐÇüX ­ ­?zè<|¿9øW.‚G“9žÜâ¸7Ún¼ “î1'¿‚ç«,h òLHùUhN].!õ†FóÞit/¥—O}ø×YÉ ®ÆY¸ŸáÈÉm[æCû6"$Æ ®NÛè,[ʈüÕ+­Ëµ¦Ëçh]½ª…t“FÐýò#ô?¤,Ö·X+¡x7æjmêˇ©ï~Lqºšßltjƒ¯nôÖ^•jÞ]%½$ª•¼Ñ׫åÍÔø^#pí‰öÖ‹2ü¸ƒL» V+¥o2ÏÁý¿Øö€öñ>ŒÌ%_®Í?ê»WÝ̦’‰püjž/¾›ÞÍãVwO8ñC_/ñɶÛ÷«Yj @*Ð÷”Õ8æòÇpº†iaæƒüMíœh¶ÂsŸ±¡›mi£ÍNœÞðtÕ)7ÒGeðãœ+X§bv?Ã|¼M—À‰Ñþ9ɵámÛùPé7¨_™šÓhÖ±Áiã÷f…™kËBŸâëoTx*}Ï÷¡]sèª!œzê o2í«üåÄBb;l³P2¬ç•Tÿbm ¥Âðr'áfPq0`(µè«çÏﻡàÕhNÀõ»µh\õèhw(ÅRÐã(RÓSò_=6 ¾¿—óè µB8!\D2žL”& W.ýJí¡«ýy;¼õïÐî÷¨óÞz9õ¥ñ俆ù´Mj‚ÇŽNcó3F?Ϧj ÇMôç×€ëw]Aiì-s*Õ4¸€škiØ<íHÁ>Ÿ™dÇÀõåêœcòføÁ±ÈÝðï‚p¡G©*«ì‚û/ÌÙø’G)ä¤;`hlÐý1x´œ`îg0?«7É–Ã8½Yª!¼$éc*T®wë-Ót |›';¸¾ÄT‘e˜=Ãx_å,bñÝR6Õ‡zÑ+NŠÊ¿ððã.ݳkèGÙ~xú¬—ùÚ ]^×Ã篕óÒVÖDr—{ó"Ðï:²ÜM0âcþ¨ê¤2ë)æÖq*.éh¿½F1‘fÎis]/—嬯ó\ÏxY½B*z$—Ž”Ü p~‡V®¡t¶°mð¡}½&VVyº@GøÖZX‰ìU7¦ë y+]µ8²Q=Ý­—BH% ©>ç±`þCª~ Cºô“œ–¦-øÑ^ª½³ç¥‰·$ê+%õ¶œÑÖšÎëàÔP`ÔT9‰V_‘ñrOb…œ±àÇPuÞi¾tÞñ?¹môåu}™›¾|N¸ÉxÎv§­ûÜýÉä? œÿˆé&rs» Ü]NRçÀ7UÛãë?Ú@ûâRóÖuÝ¡Î&pº¦i ~¼q;´ÿïm¶ùüxl›Á}—C‚ÍIåZX“Õ©t¾…l/¹ÁëùçœÂ [HÃà’R!nME©•Ý•~ OR ÷ßÖ·¯¢ j‹aƘ‰¶ |ó®€ãô¯è fQ|¬¬<^ü1|uTªgÒ–|•/}I)VHJ¨ÏÂèåÆŒ¬‚Ôuíôàˆ'bæú5 ¥¦ÔWZxÆm Åz#„(CÃ)Tq8÷…æMCÿ·À‡?M7Ð8ªiÿt®¡VÇç>°/e P~…4}ë55ú+õáÎü‚Ža …ÓDd†[ðïÇl"T¢éí47™ÁøX—¥Á‘Ô ^£è!<„bÚÆ•}\›› Ñ?&ÑÇ\Ô…zÁ˾ÈàÇh o©91Ø[-MŽUç*<ü(ÄŽ,„ÿÎÈhø±~áøÕÑlüÇýó?ÚR¨Ö\>Äà遼à™9„4L²E:i-~4•Bpßmàî«ðI¼ö¸<Ä^3ñõ8º{ù£5Rå8ÞÆ—y´h§¨²wÃçѺ÷<B¾YÇE9´Y$¢tàÈŸ=ÿhå>²-0ÖáA† xu Ž%dµdçlÒ_'ÁënUòºÀÍg‘ r *&ö¸‘²‘€„é]5ÑfçJHY·¨EÀÙø7<]¦IéÆå=²Q uu»n‘y\CR¨Êpy0rÔ].(áå8×ûäüG&äÔ.ä?#ôÎâ4ݵ§¨˜<”.ú^2È™¡µüýz~\”VZZ£ # å9œHîÅïé´}ø¡mYœüfàw˜iUÄGÇì#zËô¹6Õíò\žkhäÏËàý¬·ä²nƒæO”’œ™GsTßûäú«ëÎN8—ʘm'èÿmÃS Iê%Ð%z-¼'=´ŸžAíÝJK^M¬1d²:²™’²KCzð šü1“ëÙ$Ô³·5…§g2Ø;„– – `Ùíª™¼ß=õJ{Í@àZL¯K;¹%×i&]?ú`ýÕçsæòÖÝrÛŠÄññÎÛ¾êNÂÉëv~wß¹¥L{“Ó­…*ƒºs¹¥Ý¶î'½ómw·ló3«m~ŒgeøÆ&¥‰ëNwÆšÚv°h»1Ý´ßÔÎŽf:Í£7öW¬ù´Çf£ÙÈ—mMè~y(ý*Ë&{°*vvÎ:çÍ ºÍjOé=|i0£– •¾´¦î4ß&µ¹ìOÁ:>ÎÌ´åèÜÌ)äü÷p¨ÒuÊÂkánïÃWÇ@bèç²õ«üˆê„‡·?g3Cã[ÂCW‚O I%1ÃvÒOü+ÿ=8P¹i|Ë>Óã«çÏ+ÁÑ!?'6!ËŒGjCy…'ÿ*뿻Ÿ“^ ‡ô¢êv¬sû µžøÞ;—-ñjòß×3zþ=ý†¼AÃyÔº·åÐ|ïtŠ?‘Ðiøÿ6« êœ\§¢I‹×¦C/㽯cõU‚‡»JϤÐö¨ÙÊë¸×àèûzŒi~¼_aä¸AðãŽï*à ~ô†r}TÓœþBþ©Ãùñï†hue~Š,±n=5Z¹5wcl ¯1§þquᘀãW¿ùÏ߀ õá@­³¢B äƒéROCj%yÊÕäÙ‹ü c¹ü¸Íýx•½gÏœtîqÌÕî¨7 \8ɇÁØ1œQ"ËN^½Ë¢ƒu¢²ä ’L)È?áu/‘?:pfÊCKÿèˆzÍi?æW1ð-7‡?fJ6Ž/mt.´u©nÖ~¨ô“”—ÛÇô ×=$°ÍÈsç©€éþY½¡6#Fú ¢:˜w!ñʱ²L†É®Ež£©Ðßcz_VruI ?~š;bœ·±OJ"ìá.¶æ'ùúM®¿zI?BÁ%Ä’GÒQßJn¹ ÃuÖÖ\h_½.¬%5œœßVq*yĉ ÒGm´õ:8¹Ì|¤ù˜ÿ™¥(E‡ê ñôжÒàÑcMé…ñ^k$¯¢FÐÛúN²è©ËYy"G”)ÈË©lE[þC½ÇÎ>äÊXYh1‡ÃLN)©¼LÿùúJƒku‡vÓ£šIw‰úÏýÈ8 )Û(.?C&­Eå1›ú~’?Úšúç?:b~Æ ÂÚÏ«{¤rÐCQo²&ñšƒp©¼ñÚQz­5©Î”#È‹é2ñP8¸z|ÃÜÿºûOn|iŒF澯޿¾ÿ\œpô/Üb¦‘IîV ¸ð{7'¾ê¸‡$ηÝݲÐWÒ,³å‘?ÊQ2Êo"›°î g¸©hk›.fŽÙñMíœd–Ãñ”fVáB›‹z:ÓÝ;¶>±Åm9»Å>w«bçoçšÙåº~Œ åRÜžrR!»Ê|.¼5¥6­kFÅ(f®YhKÁuÂ<ØAQøœH8>OÙx*…£k§^ ZTƒ~•>'*¥ ³6-14o9rQütiZ‰|Pëj?…„÷)±˜±Xb~ýJ »- ï]ió_Í U¯~ÄÆZýòç€óç'h)ÿTzýjû9AÝ­áß\èÂkûº››²"¹Å'%ÿÕ#GçÇaO÷âÌ|Iç^3îÿ,øqÐæ ’-*ÈàSWƒi'ÁÞ–Tì~~L£ö¶9Í¡iø²Âj´:½…‡oK}ƒàÇcßw4ߢg=9 üø|¬ô¡èi_®ˆ¯‰|JòC> 8/çÿ?LKh6rWžcŽýãþÁÑ Ño ~|èýapÑåÁ´Ž|K–J[ý^‹È9þUòÉrð%<Æþ£0sì x.¦r/ØØéx s„÷bŒ&sR‰‚<°Ujj5ýKê>Èù%ºì’ñé€û5þàŸà(:~ÕÅ=i›`¶½§b|92&G’V²X2r<¯³àÆ·êum'Û¸˜”ë˜KQyßaQŽ"!W4½ñ#9ÆúfCknŒœûˆûËD+ƒ¸¾¼ÒÉšL¡Þ™Åu$¶†ÿù¿x>¿Ÿ¬œáî6÷'üxà´GÌzþüc 9£™ž•òJ¦kw-¡ô–ŽÐÉrü¨r^GúXŽÖŸä„ ánûàCÛš:éÌ:ú4ºB?IZøˆKô»ä*ÃÏ?wšÜsÀh^%½ wŸP‡ðc ¿âÙ˜ã)lÙOŽ_]r˜X‘…á ñ;™rHV/ Þ ù%¦¾@ÞòŸC?©ÑuäDö …ÌôœRd~@ á5›ñnó ¦•õà¾êQthT~íâõÐÍÒ^¬>ûºíké%ób{´‰Ö‚êÓ¾àèKZAGmmèÙ"*ËÌ—žûðŸÜŽûŠ;}÷c_M'ð•ÁÝÞûŽ9ÝH¦’igÒ¹~]ìKêæv »¿»{œ8_¼ª3èm¯¢Yd+PªHI¨¤Ibž9s?Ù¦È7ËÜpn¢ojç 8Iôʶ¤ËÔ„öÙì4Òê>@©`óÛêv¹½ã/yr®8ÍÔy„=7þ³·„3¯ogÓrºIk0³ÚÐt›ÎV¶ÉƒQ1¼Y`V!<€n§½ ÇEh{d¬¡ôï¡ÎÍè;(~'üZõU~„?²ÒE›ºÖμ2ø«Tùc7xôôtΊŒ†úµ¤µ¦ÆWZøÀ­ &vDR¾…ü–œæ#' ‡+ÿØÅí'Öâš‹ª×Ñó”Ûu¾tפëøÜÈs±‚ ¢ É…F÷¸~w:HÒšܼwÜI}á®6RT^o™ˆA´²‘ÓÈ¤Ç þWaŽø5­œ]sÀÇ“Ég™+¼ºW¯Òßàçx¨è{ø†ÖÔ'ÈóçÜv4è:šërfކ ÓŒcôà’܈»" –DzØÇÓ8ørInÆðz>ÒlûÇõ»¹UmGèA"žÌ{Á× ïAÊ E/*Ùe¥ÔÕHZT.q)ük—ã`ñJÂù7i™À³;±{ÎæEMŠömààñN+¡ ðK1- SàÆ¯#™”FþØ¥æc QéÊñ);Ír}V±{Ö¶Â(Ç…áÚ sX¼òwp-.Ç”:VÕ[ƒ¼ÐYp) o_ƒ#qÞä0²˜÷Á9å5ý>«×ù£¤ÿZ[ð#ôÛ•Y2ùãOn(gu¤¦ÕhÐû•2ËH}ÅKÑ×<œI,ï¼ZÚôê%u®: ),gâG4éñÝO1åòÇEÉ+7d ¸Q=¾¢½u”œ’ZGŸñ5îÃãÙ“ó‡ßBWï~쫓Ƭ ˜Ï)¿¤£‡öÕòè_)]*/å…æð¢y÷5…—[_Ë{}$)‘?r#• B>ÈË(½-o+}hßg‡I_Vò ß¶¹)žÄðr‚’~ÂÅÖßôˆîKv#',“¼ gÙ‚>/ÆÚf®†Ÿ«Êhè~Ìtê˜*ö;ê‚Ý kýª4EÒØ~ÄÕ—rF«kN¯ øÓk©ä f¢éçra>^ÅZé‡úŒJpGèa%;qæP)xŒy6¦­m3‹SÌRòôe#m†þƒ¦ÆÃºÉÊK@Ó Q\P 1œÿœ`\¿ãõÒf¤˜ÜÊZ.) Tuô®¿¢]ä"•”¡fAÝ6™¦_ÍUЧH ¯Ñ³¸øU>é{ ]ý³ó&¬¡ýÈA‘-àL%;Ìyù…Z|!ÜöT„~FÆJAá ÑAùGð"ŒÙøpòÇ-dYÀýÇ‘%æØœAòã7§ªÉHþók©6]„’7ÁŸ-I ^S(´ýÛ܆JÕãò¨¸dB¹(2ÒºÁ£¾[îX; irø‘~|F|*%ƒöWGÖ<œòÂùŸàeœœ“ ÓøknõŸÑ(³õ÷w›Ù>T“â€7‡PQ%¯Rv䢒U6IE}!ùá•+‚‘‘"Bu!ÜçÁ<ÖnùÇóK~p¯B)zPjhîN>Å[A:ÿùóp²™×H=-¬Óõ½ ¾•”p÷y8 ç+ÐñŽœ’ÒšœÿØðü«pHSk¹‡?š@ñýùc$²Ì;Ý —µ>’La)M®ÆñAÂ;ü†çñ8¦¦ógõz¥ÑËKÔ€‹s(èîh™‰ü1‹›ÉS]¨ 5²žÖi2™kKF½ÁÛ0®=AÌ'Jž€°ÃmÎõR9ÏNèŸÿ>ŽÞ|ów¥‘ÓÒZ¯H:¹* u ˆQUÏKå¬TÖÒpø7@¤Iœ¬‹€ü³Õ~<šS×Éhv`5Ý¡;TPRÒ-{šH݆Ô6^|úX£zžçó’{ÔÑz\Òè)ŽœÈ/x&¡Ì¶Ó'í»éì3©¡K•1~Gø¡ý‰¢Kb/«ŽÖvº<*§çu½¶Ÿbé^¼OJ½ÅsõÏÆª~/×Nä ÿäúÝz¦™eÌ̆˜Á±À*Þ8ÝžGCÏv¢R¯çzÍu°ìEߟH[¹#çh!8Ùz¶•ò°÷Éÿï¶Û¾’ŸÜþù#xOúçösÆùÝýÁüjò˜¨n¡€óç•@VnwÙ9ûMÕûú™M¶8”®\j\kt²³Ó´±¿™æ€Ë α¡ÛvÌ ¡t×v…‚æ…º§¥2Î*7ô+-ˆÙáçGP*õÏm¡sÁ‰aÏ@U¯@±&C?ŠqcÊMåì>(ÊCšŽ9Є†ÚL¶·½Œz…Ìh³ÝÖE^÷??qEÂÜêCÑáç‹°ÿé(W þa©:¾Wžz}•}µ(?Rs;èhq*F‰y'ç^#ß¼G+„<1ê¶ÊÔüJŸï¸óÈÇÝ‘9ža¶&Ó)O£(!÷…7ëÝ™DŽ_=¦s´šºR1[ÓùÒ}4w|aÝP ÂBŒVNŒSr ˆÓè)ã³%ܘ¨ým¼ãd»¾hµòJ›7Èëwû8ÕL(Bzö?ÓñoäÁºPüßð³oÐÂgfŸ‰m­å;*¯ÃÞOH†âcõ¶ ‚}!Ít;¹o<~"1GëlŽÌ’G/ Bíza?¿€W_ ¥Ï~ø¯àÝ@! ¼uÌLgB zCÝÞöOìµ_x62A=¤É ˜yÙù%W—D²ü¸#IäW–ô²+"w›†Àáwå¾öò?î?Oç¾°¥1[ñ>Œ¯•àälÎ"¡¡—¤¾æÐIÚ\ðv®€ú “#Ë<çˆÒ…Ó"otV~Vñw÷¥­Më‘bêâu9„ÿ¼‡,’ð`Òdðã5Üó>­!G¸¦TëèA\þ‹ïñ3ðs ¦¶¦Ígõþ²ÅñžüWQ#‡8xçù2 éÅÝE¼QZ¿×¿u  ã–PçÛÈFàk>úO,xWÓ~¼ú1‰óÌ~üÄ÷¨;ÒN"xƒœBûèmô팬Ó~Z_Çt°‘KRS³ès ´>6Æô1/´k?´­‰“Ã\ ü³4—D¢°J»#¼Ô Ú}Ccz÷ô®¦÷r!?„ööÃ÷O–"xÿ üüL‰mßOžï¸Û9çR+á]ä“¶e•ô^2]®­u•ì’zF×hS´Ï‡Œ&Ó³|B#Ê耣 UáG -3>ðc™ÓÙ´¶a13â+Ý“ÞÞdÝ‚ô–F‹h7m¤½ß¼È^,¯·¶•´^õ¡Ý÷å\áÛ.v/åçæÛ®PúŸÙÎû²}rþÜç4þ××ï>÷]vz¸ß™ò¦¥‰çV ¸ÿ#µ›×-é¶s×; ¿‘Ó}Ì\$öÊк0”ÒD1לYÎ8SÃ6F¾9è& æÑ¦õÌ Z_Þ€V@M—ÙÌÔÜ™‰5Ôº_ÆV³[ìK78G›üÏ¿:ã<6þ5tzB‹ÀMÔ§ü¨³ZøˆVB5šÑ›ÌÖ·Á9—ÛÌ4 møûýðukÈ?FP4¾F¹xôó2æT ´¹=fÞׯ¿zãK·y¦¦ØpÍKàôóc½Ô§ípêø>œÜ[$‚ÇîëÑ6Óö+-¼ëvB"êE¾:&ÁÏVA:ŠÉòPä_Øÿį3´+òTº;Õ¶#œ÷_¨eœ—Î3K¼mÊIƒ‘“¢b¤†€x,5 !ÜÊs#úŠÖâ§£bT^`3yÿyK§¾Éº&åÅHY·é9F¨µ£ëÏ/‰l÷›ë¼ŽpYðc-- q”3©$µòú«³¾gîD;ªüRPfŽÁ±w§R*î Õå6HZù!œòRN‚§³˜Iñ¾5sþ‘?æ¸í­ÿ|~jhäIn½˜ ·š—_s9ÉŸïÏEåÒÂÏÈe@¬ü|Gó]îÎíØÅqŸbŽüF)Á·=ÐÊôŽpJ %›x¡ÔÒŸ ùýô-Eý„àf!T<Œö†—Þœš~¤uΟ7s¯Ûfä¿ ±$^—‰!Š´–’‰#É$øú‡È‡µ±\æ2RFnrM$²¡ ÿZÛ¿±¯+ºÿ|ˆM‚$ó÷_íü–XÊ:'£¹µ¼Ññ G ݯËj®&©ô.òGwîÅSø*Ç6q3ûñ,lç…3dË‚ùÚƒ/b–\„ÿ"è ô÷oY¥ãàÁ‹é!´s&|xy£¯ø æäXކ¬–Cò~ûñ~³&Nzs„²ñsè}*‰AOì] #õŠf×y"È ©½‡ú¿WÐ[r_Htä’¼œé%¯ð?oǶÿäøÕ+çšÉBå0w÷Ð6>—û½Ä{&h]]-¤†õŽëozJ£ëɪ©‘?vé{ö_q?àüG=ÞOc?yþnÓÄÆ¦?1ƒ«Á+^•bÞH].Ýжêy3´µ×ȳ^b¯³’ëZHïƒ-wäæõ%Û’ºa&VàËæÂÖÝr;çKñÉùÿýƒÁ» "ˆÍyàôwã›Â¦™á€óç£|™ÜÔn:·‚»Ê‰þüXìkhVÙò |Z¬úWnsÈ™ ~t±ùL}3ÍÌ´ðßÛN³jpßV‚ó.Kcln*âLr#Àõ¦²yli»À^ æ±)Îe‡ì.¬”åHœƒé&t¾2ýL%ìNÚ ,¢ ˜#ÚX¶e°î?k–!T…ßZ•߀u³-M޵˜æ‚&õ)$•FÍÁx~û;_hóA› ¦*Ï€ÚD~k'¿^ø!TïrDexû¾ô+M3U¾ÖBÓ† · xÎð$†E ÎP´n|yW.Ì;ÃŽa$îúïe¢Z”ÏÖûâñ«Ÿœð®‹jË)m,~„Ä0mšÁã@Ý¡àG> ¼€[oIQ3$÷· MPgTš8ÓL>Œ~4P²ÒÑ-¬çzXƒÏýW&Q8»Á¼‡Wn Šé7ãý RDÊà?{?nûÞ»kí ÅÑ‚qJž ŽBbèÄøWîÁ«©¿ƒrÏâìà‡ÿüÇø÷' ]'3Ù¨Þ$·•íN)axx6HIç>_JJf™+UÀ¼r˜«Ê²Ž‹sxþ‘·"ÓáŽÜ üüYÝg6+QZ´o'ïâ5–×rqdŸ”öšSjo½Î¸°¤„JçÛÏðY&ä$˜#-®¿zj‹Ñì‚àQ!~O1¥¦,•xàÈ ­ïu™n×6r†‹I9¹…QLŽttˆ}²9ù05­?«·ÐfÃküwèµÃ¬xAVæ!Í ’Ž\\^éÍ ‘u›î‘i\E~Ðw¼Ûƒãù'Gà|÷C½¸ÎgakRBð£€.ÒVºHžJS åÑò p|P §æÃ~9¡/yv@þ(ƒ™^›}rþ|¶Ó ù#¼O{ü_­îmÐÒ@"hlõy´¡W )‘×TÛË]T¯ýñ>7àUÚ.È-ÛàaÏ™]_XwÿÉí°/“ç“óçõÿõó¯ÄÙåtƒÎ6õL·¹ãþn ·›Ë-ãÎFª9þMÕÖú2šög*E)è•ÿ ÜÎD§¥©nk™æf¹=˜iá¿·V¦;¦g6?ÜsamãÑg˜{ÔÖ¢6¾ÍjGÚ'nª`Uüùåœ6s –û°žܣРš]ÙN§¥t†áïh¸nËrÌôË›ÿùí °–¯al§uÐé½Pè|‰²òV¤…Í`h(ÊŒßsãú«Ç¾»6=]´Iè åƒ3/MÅ¡š5‘¶AõÏãîÓ|(i/hcZè(Ä?·]n9xìqH+·à  oՀ⇂ÈÍàW!}œ t”v }§t¶ë_=ö…rÏØ'àB6ú ¿ç£p ðx¨ÃŸP×zÔ>ݽÀ+¤¸%XK¨®›ýÑEöæN“ì Åó±–ÏÒyè} ê ö¼@{#Ù£æ4²BC¤‡ó`§ÿ~öt¤”{¿Eü8è{ê´€ÿ¹ 'ä¤àGGú‹b —ù¹(êLÀx^åí<é$˜tùhm¥¿©‹ÙàÌ To¼ÛÅöOÀïåzì!wRzT(*‰‘?ŠëUÉu.'?É ðã;ŽÇ3Àäƒîöð?òÇîy[ –GòB¼ê(ú½˜IDÙÍk¤¹¦ÓnÚ]ïðn."I¡ñ9 Öñ èýoü#z¾ÃYúYÅ&î)û+BzÌÊ«¹r_©.S%&‡•Žº@_CkW9Â9¥„DŠ‹}¾É¡P{+|wS3:Ðýƒ¹¹þCjEã;GÛ»¢·ËøÇWv!såû$÷„}~UBö†, ˜ûÃÁYÜi¨·áG Â]¨ÐTê ýžâW›Ëu°‘SÇ䀎Ê˰"7ÁÝ÷¤¶héó€ç'^5[Í)^ÀõáýOâ×ÓÊB~4¤:Aðãï±;Öö¥÷p¼Í¡¡Ñ³öÈ,©žç^ŽÛñø„GÐç霗sò9Ú jN=S]³Ù™¨Þ·+òGK(ÆTÞúø??ê8öè.-i?JC sÈ1¤…t²ks(NÚµæmho'{ëÏoOˆ‘«ŒtÉo _BxCS9.òÇzð£ºæÊ´Õ[ KvI"£‰y øÁÒˆS`´wü#ܱ­î* &–€R¿ã:²PRówÒEÇë ]‚üÑE6q~)%O8’áo|…CËV>N§i°éòY½Ñ6+Ra\á½£ókùŸß^In '$WŸ€*DI©¯Ñ‡6Üz‘÷¼Ÿ§~rÿ`rçµÓ›bsz̆>È ‰±6âÊQðã”$”­2ZÛkn- ;t„Ž+RBËê ¾ÈÃx6ht›£rH>l?ÞMççÇ~*ÀY&›(VS>î*•AÉ|yᔆôîë#ãeÓÓâxg Ûó?R<±e6Ï¡äv˜-û¡}—ó&æpøœ½¼Â >’ÒKˆÔHÿ–K’W‚•¿ê^«‹åM¨x…†þxŠ_ºâÏÉŸ<¿¤µ©ccÒT‡ZQh:)[¼C:CºK4uuµ6Т^/ŽΫ£døá¯Åÿ‰ml[ÌúåT‰ß™k_XwÿÉíˆ/±“ìÃȼôýþ÷uÜÈ9ëtrÉd7¥ÌKÇ\d¼¯€[ÌÍïÖvû:œßTíÛ“²Sz:k»¡Íg¬³ œ.k:™-nf÷Ûžó¸Û,À8Ÿ°U #i¤MHÉœ½.QSJm³Ûªv¦Ýë† VÅõÎI'¼ÝKþ;[Aa\ø­2ÈìIøûP×õ«CáA¤áTž~Æó¯jRò?ë;%×åðø…ȼJ——¯ Í„à©àǼSZj*¥Ï×Ü?éõEž ¯±Àÿ3ëãñî‰Õ•‹—ÒtQÀk¨e· œ/c:'ž«P¬”{u4ªÜ,ÐbwGf›Å°®œËð_ ܺÿžfÚ_LP‰æOg²)‰÷þξÒÑE¸sÿÿÄa Õ§Ì. ξ&´ù0¸¼ã—™"€­ ©nÏ¿JböØð÷£¹²@^‚¹1cÖ‹KqcÿÓ6¨\õ&ð#7ørÞ}Zy_%Í2gJ z3ÜA¶?òXtðc7 ¸~÷(åa#ÕÖÁ£ž”ÂrˆsK?j E±“íÇ'5Üpn˜¼ÈËUéíãK¶呬^ŒZ]´ðºüª;ΟoBêZ†=ü¸†Ì5 iövÀ§µæ;4ë“óš¶6 RsÌNC‡¥¼·DHð#Žî×òšÛk†üÆk¬µe¿æÔŒÚG¢êu8±C¶|ÖaªÃ·ÿWŽ_õeý„}ïÿ%?Ô9äôuß»yLUÃõϮ޾än ·€[ÒïDvŽ}Sµµ¾:f‘-J¡†…4‘MLw«3Ë4µå‘?¶!|ÛõW“Ìd(ÒTB¥h¬ÍNåœ9î#Û…rõíÄ`ßÿ1Ó¹æ¨] ïv9a”«—“Ê ,¦K4üèLÃmVÛ-XŸ?×L4³lihæ1¨üòß=>àó3óz ß ¢ýÇóõç_½ñÅÃz»eÓP(®R”¤Üøéfp(û)üÜði62É<¤>í ôŠn‡Ý–t3àLÀšMÑñSuh2%ƒsµ/Ä«ÉN~5þ÷,ùï¸Ëc~ñÉúžÙ½ja„~A QÀô1ÁqX[iÿ=u²¼ÌL+éM·ƒ¼~·ŸÓØäÃ^HÊ+±’‚m°2;AÃ!‘¤´ÏÍ%ÞÁå¡B'hmDzÊM¡yZP“ ï?÷™Ùv0}^ÔçŸ9jüJ“(·åZÈã@õ\|“·ð"NÃYø¡¥äÿô¬ÓTÓ¬tÖª7Îh;a<ðöç‹·ä?ÿñ#¿ã ǯ*ëkɉüñ«d–Õ\=àó?–s_´¸>ÿa™Àé:Ž{ÏÖF"JăSvòRžË)À ÿó¯~ÕÁz÷pU‰†Ô—3ò.>Ë*M9ýD›œ ŸUlëÞ´-hø\œâÕïHÁ¹’‚ãIí ~Œ×KZ$*ÎåÊ“G€G/x=Å,jn~û¬Þl[™›AïOQÅ€«‘ïòpY%Ce×’“Ðù¨ê€Ód Ú—Zï}øO°ø'‘»H@}íÇÏJé¨;³µêµãc”ã¹/õ¥—}2M[i1-pýÕdy&é´ žB/Úa/E‘ –ò¾O>ÿ£³SÈœ¡üèG‰‹ÑÈÊm$‹ÕºBÞÉ5ì]ÖgÊˤçåI—H6N9þ 3}6\Ñ0ûñN©‹Î%“,¯ï°”ŸÙjTErxYu¤.TÕ°º^éXm‚ñûAWI}}*—yž:2«ú~ª!UAÏÆrÿ`[ð#VY3*M è˜4öæêN™‰$“Eïèt­îõóÒxQ¼’Ú[¶i)¦U%ŽÞ†9hÿ„Ï:FµøùÿÊýƒ'|Å?ybÉ+_$…WÉ:Ë?ÜwnySÂüä6 ¸~7›Ë­è–v:Ñ¿ñþó¹¾|f ÍKù¡ÌomÅär8‹MUÛÁ´6{ÜܬßÔκæ/êOol9hIZ}íàÔw_ÙšÔJ_Öµ>“>X§:0vôc¯ÿYô9¡=å¢ÊvÜýZFá„Ûø¶t°ž_’ÜL0+lä˜#àÇZ$ŽG4•"a†åà ø×(^Dp ôlÙWùqÅÄ}dÃù¶ŠR9ú^i9ZV*±"B›KÑH¼G[:è)xÿÜv¸]áþÆ`ì^CÍ##5´Ý~ xþUW8óøßÝ Ñyèè*ê v‚ú´YÿöÂÎ=oCðììŸGkf"Z6 áŒáß9Ÿú?Ľ¼VEû.ü¬5sÇ¢A i‘V@¤K:¥‘î’nII¥[º»Aºénînεžó?°ÝÀÇÆï¼ç]þÙì}?3³f®Xkæ¾ñ÷çp“ÐÂC•ñökó¶gª]œb&m¥Ïx)Fè,\KOô³8Æ-™}nNSZrŒëðÌopb±‚µ…Û¿…?Nîº~ý( Ìø™SröýÙhú„û±Œ? –ç'ðóôYù$îÿ2Ük¿­CÌ¢7Îþìv²Ý©>%âi¼­ðxv0ÿÕC®|ŸUz[JÈ~®/ùe'7æhœžWAïÇçõ³ûMìP=Žïž·åÀ© ¹Ÿ€³Ø ¦›Å_Ê—²'KiÍ Äê¦7€ð $‰ü„6òß,ÒS&Úêüù ÷¢mN»À¶þ¹“|l8¡ü(ë$7Ç—ŸàþÖIºA«ÊJ´°–<„ƒJƒq¹}¿Þkÿû¯zÛ<`ê;Pä5¸øã:/‘2A¡¿gu¦¦TŸÓT ÆL¨°^¼…>™ÇC¬•$ÎçWŠÆ9øõçMP×)•DÐzÁœÅà?Úk]ôø€öÐÁrHŠhqôüoDþ¸÷•·Û׳°‹“Ýì¥,˜[×)µ$ÅLKÅ›$ƒÑ6:¾æ†>ÔËzO—F_ø“D:MraTF²'3¡O Û¦!ö_íuv™TÁ<º×h¿´³©ŒtòÒé,0ZT¤»ôF¯^Âÿ¯ºà€ç¼G_ò|ŠÅ.7 bT”ÿ¤á!êt0­-Qwj¨‰¨ 6ð†ê.ÕÑ–ó:]«{½½„^z¯´¶•3ZQoÊ@‰¦÷Çp;ÑQªÉ®ýëëî?ym ä‘¿äQ ¦ã_òGdg½ÓÃ}ìV4ÅMüàþ«q¢na·¥[Ì]áDvþú h+­Ìd[,XõûS¸å/L w§³×ô´ƒM³× ïfÿÀóƒËHwl;¬ûFtÈ ÜN7"Tį¶”­mY1aócÓN{ºûZ7ë¸$ø£úl KÐfU€dãmV[$Lù3š¡f£- =¹ ¼†˜o[c?r%<Ç(*•…n@sÞË씂¾ºbÓS¬ùYT SdüäNºLek/>g1U§y`ƒÆ´ßÔ~O ï¹S±’ÒPºî‰L÷+æâÑÀÙþ\…ýëë!´ØZðL ðǻޜOÝhô1¸Â¯ê2†ÒRì`f”;4·A{-€þކÞªýOš|‹Å»lVó¶Á&=¦Lè¿k÷!üTÜãÂ;ÄD•=À²rðs{ð}C.~5£ŸÞÂÇjÆÚ!èëx®,ÿ”WažL¥ôÜ‹ë‚×ÚøÏ™dT}ÎÍ·àx–ƒ3oPl`¶93BÅëáö·ƒèJ } ­ˆÅ~­\ÀÕJ’Læ@Kûçð’XÚ ØV<3 ÿÞ±·Þ¨ZÇÏæ“.`ÅxEã™\T¾–U¼LJi&`þÏzœ/r7I#û¸4ZyŠosTËŸbÌt6ÿ#b7÷¹­ æByxÖ“J[Y&µ8ôÑ!úTÇèR­,{¹©”–;Ü~f?fŽd?œTþP;¿ëÛâ\ø|˜êÀ<£+<ü1L&s'ðÇDðGDàýø‘ö’^]¸„þÜ“‘ Ès8¯º!ò·'sþv:PÎÉ7©5ogô÷M…Ó†ˆÑ>d.¸²¹–ÑýÚV“;RFkêô| 5.<],x÷Ãv׫¶ pR¿ôs8ÝLð¥)2>5¢ÞB”åòDè3½«5¶—Ÿ ÞCùZçJf.Š9NzCo¥¶ík¿µÇ9`a&Uüηla*'¼hº\ÏáîÊ|½ªóÀ5¡.‘¬šSïóq(c€á¸2Ödw^DóCðGGó“ý˜zc§è´Yzy[t¯Œ—&NÙ›¯¼Ž^bïðÇp‰ì•×;ÒW"ée¬£@´à‘Òüô¿Rÿ|m £óúIãTwBŸ| ëÕÙâ v¹EMAÛõ³åO¤p»ùÝœî6'©s샢­ 41³mqªýœ„r›/s­³É4¶L]³Æ}æ„Îpýÿ}M5Û€™7m`I[êkóS§¼ûÈ6¡Î¶‚­ngÚ›n’0E\ä\q>µgáÔÿ‚Þž=_–gPNªa‡³ç®Z·¦¡ös[Ά%ÇJz3Ê,´Eȯ¿´ž/Ð\òs0äçÕŽ_ReŠBù¡=›ÑÒ÷ò9¹©ݰ9€/ÍàŠc¶ u 懪ÃÀHá‚Oö'Ó" ÑŠ÷¾ÿ ãsY/ÌíûþÙF jU¿,Öêî dý<º#{‡Îß g»½³2½ë$rÂLÇ ÎƒH)À-À‹~ÍÓõèÝ4þ•#²¿3ú°y <Ó)JÊ›lZã¾¥•­¦&?¸&+¹5½€Fm‚¹R'˜ÿª¥ sunÀg±ÎϦO0Ž ßš?ñbà¹;Ýö§—4l‘—“¡E ¡8>…Ë*ÿÐQ:3‹Ÿ“1OpgéNøÏ?ð©áyšÙãŒo²û#ø£%ãeÁ3‘y í£ŒìJ x†!ÒL-)—¹œ"׆?ÉÅ[ƒBšóp{ñý»qÜÛ¶üŒ¿ø9¿ªÆ3¥û¬à¹ÒHóê¢ó.!ŸÀ“”^ã;I~å)Mvv„z~uÝ6À(ÔÏAüò8Ž´–¥R ~àí þ§çµø²¼•s˜KY‚ç£Ëø¹óT8TýÁ6+˜Ú¯b\«qx¾ÊÓÁÃe>w‘kº@¿RÕ•:O&rUÉ©ù23ÏÀˆæ•¨f6EˆóƒGœöàå\ü„ZñAÊw[DnKs {-y,ÛÁm-4¿nG;gÊ#(ü:ú½õÏÆ”cp/è€}}šn øcgp÷úEøkö+ðGz‰ ÇÑ\ÿ”{r\Ó{á<ã¥öòÁ>ÒçU'‚?òrø·ÑpŽYì¶ñ«ö]p.šÌT€*‚Vó:›…¾“´^$¸¬ÝúXT—éupokü<”_¿FëNhxY íô Ô`ª…3õLqº˜­Ák‹9—vHo)œËD)®«z‹´7ÔKæÕñªjOŒfMðGa½MÓéý «{•äÛÿ•óƒ‡Åœ×Ìÿ P÷_ïßegµ3þ£üG*×Ïv¼ ÜQÉ-înqÂàþÝ%zf’-‰Sš¾ÿHeÔÝèüa~±}LssÉãfû vö3 €G‘€4¿Ã¿n²y©œ“Ï}`¤Ž¶¦m`çØ¿Ã¸w¦sΉj·a ]¡ö~M*úŽ“–µ£ñ /ÁÍ0&ØÔ¶V˜Îf6ÓÁ~ÝÕí´ ìã@Å nÝ¢2PÖ„?ýçW5ÀUhÅ{ù#Š“yüȹ˜Yœ>†¶ß‡ö–ƒ.Ü‚ÏYî¿¢Ù~0Óâ=-|àö‚cDC ð—QÌØÆ4…RòPžÌý8?Túm¸®YÐáGh#ð6«༫jÖs `$r±vŠS´ -¼zðÇ-Ê;À$¿g‰÷ѺvIãÁ‘y›MóF5%ÿjî”3¹°‚?ƒok:í?™BOãgFPJ{Þ<áÍ\“+óŒì^ð‘¯íüüW­ÞÂW÷Ý^vEªõãtAþh^ŒÁõ®U¹ÚÕŒ~¶ÎÆ_ñ9Ú>ÝO‹ÃS͆7ò·u²½1V 1NçÀ>1¡bOQv¾Ï%¡L…Æ'Í/'¸º—mðqŸr>þxì5ÒžyãùU÷¦-Jíà*»óqÞÇ»(*Ïã$’IÖCé×ÖR`ßô ƒùsÜïÎÒDlï^´Õ0ßÐ÷|= fh$3%|È xã ѳZU΃? Êm(…Ô<Q~çíP#•CñGO›#u w¡ÏŠvÌÙ2~£±<|%½M§Ëf®"1õ)Ƥ˜y¸0­¼@OBòÇ·XaíÑÓÂ|…ÚðÊ…•VNÈúRêÉ)Ù¨½ î«ëzí|þ”A‹è=° ŸO+™œá|ŸNØ×ï[8™¡óã«(®¸@þ”ðþ¹Úú»\”«šÂï~å}§ð· ò±N•‚œ÷à fQ[ÕÖxÕ¾ÛÎ“ŽŠÂ-œ£©|ÀK+±½˜:Yw€1"éV]¡K´•^ÓÈð7yô™„—-jäw¬$Û¢?màÛ_û…N+SÓÆ¦®˜/5(<‘JÞL])Ó%TÆS«¼.Þç^n¯v–Ó`ÎS¸WÏäº_ïÔ¶ÅÚ¬xf>¬Bßÿëx óúä΋@‰wîžyßÎùÝå¾pk™\&‘û=¢Œ dws+ù£9övgI †™kKûod¡zs›8憳șd~µML³Íþï?†™)þî(¸½u@›½675t¸—l3ªeKÛºv†µ&u˜".p8ñìf: ¯ÞZüffmàtC;‚æƒM~§¨°ßØ&6U"¦6CÌv[sk30xI1FRbàUaÌ\Ãçx©÷„–¯Á º+@÷å™AþØîX‡߇ÿœdv¾qþ£·ÛÑvÿˆï߈†'à”åKœSÈ4é•[Z¹²|+¹p¥ï+û™ÒGØsoTÌúÌ}h«C™$…ë»Ä‡à?âAm§”Ô²€K-Í­tŽþÅgù‰'KøÎ ?s‹£ÁS‚9ç„zÞ×=gë“>w;tÀGœ@êñsð§ÒSG©õFé>Í*¸‚”—£haj¨ñKþ¾*ôý3Íþ¯¥ý†ý ±§©:·Ã]ÜÏ+ÀF}ä7ð‡ñæë—ʺN{É¥`ý¨§¼Þ¯óÎsÁ3_ŠbZÚ×ÏR9wN˜¿¹ù5Á:ÈC(•‘jzMŠÉ%Y­µª–N·Õ¥ò—”Ð2z…Oíç€÷ñX3‡íëj|½äf;}¯ž§ðò)æ\t®/½ô†Ö%²_Nj*壘—Èûþã.œRV#%á¸~ÿ‡¶Ik†È/ËÙ ÿ‘šñ$µ ö*ëhpÚ)¤kµ>¼Viݬe¤“¸²ScÉ<Šž®‹yØkà5Œr~4m4êäHG.¥_Œƒ³ Î<'ßz³5«×Á»¨Å½òà£ÛZHwJwø®+ÁúQ]‚ç?ªðyóßÈu ðeˆúQ•œ« ûúbg·ÓÝ}é–4ßãæîßÍåfv‹¸%ÜqNœ<ÿ±*ÐØ,‡*¯ dfŠd>1«±ÎqÓÂV >¿2a|Úô®f M£K¶5íŽ_þ(àttB¯Ö±Yà@fØ“®„)â2ç ó‘=M—éOðÇt̉Ò\‘²!ÎÖ`ý¨ÕäïÓïl?·Ýì‹0Ä+ezƒ?~J¯„ôŸ_]§X=ç©/…ã½L0§ a®T¥~ïå×i]Äf¥DÐŒÓ0zè)”æ!¬Á\ìçøý_ކÓLjEKLÙ÷ôÙ3Óý {@ß‹´žbáÏñ+ ä‰p ÅxXt-æï¦ÀÛ¼¶Í;ë×~êÄvÓPDž¬>„ÒPb8öQ`ž©èic EhoÙϱÒ÷k ÔýZ›Ñ¼­¢HW§™)Šœ€ÇW¯Â•‡ÿh]¦‡f³‰/;ƒüq8Xx(e‚ÿüí[þÄÛèé,;÷oP°~T^ñžˆQìZ ˜¸ª±ÿ1“Óƒ_Žà“WÂÕŽÌ5á?¦…Š·À튕]…bó,Þ‹ŸLƒh•d‘’FHèÔâr€kJ6hòºsAAB÷àÎö íá’»mjåìŸgߎñŠÃ«9¼ÌrÞ'-)cu‚î4Od°/5¾ï<¯Çç÷pVþïÝäç/Qpã1(}áäÒB–KÎ(þ›øHÞ<ø…ââ€UÊÊ5nŠ1éÂW§óÁ'(³©ûx“mvðì5üKŒx<³Q¶ÈéÂMå `B¢«u’ÿ&E2Ï9þŒ1À×ñ¹áeW¶BøÓÎpøç ˆ×ž·âž¦ŠrSºè#I'÷e•6…ß*¥ 3å…´Òâªr,=†ÓÈ!~èŸiµ¯w³t˜½”ÑnQf¹k¿ñk.È`ý[óê"`ôá=Òˆ^B/³ÔóÂé§Pÿi0‚}á?†ñlŠj+Ù ¯ÚwßÙiò@•zYÁKl*.ñ½¬:QÐsð5¿‚ßky]¤åwI‰ÖîcÇsefË]̪<Ô Ênù+þXë´6õíGP=þþ]¡s2Ä›¡Sä‰>‹èuÖ”Þ@o7~/ƒ¯>Ô²ºKzàßöÐb: Ð Öá ÿ•ý»ëé×§ÜîÊ;¡Ÿ¼†õzXêôtÙ”2%Lj×Ïé;,ÒMéæpsº+øþ|cà{3Öæ„¢ÌMI©„IhÎ;C©¦­d™Un”¬5Ì,º]¶ 1›Ò.[::• ÁReûýÞNµw˜¿dŠsÈùØîl§>4Ê»04EAjnçÓ"z,mH­iœÍ`[ذdôýÂL1Ë -ŸCÏú5‰¢óðG >¿°Ø}í$ X†úƒ…ÁçmfJà  rŠPVŠ Fós3–íÁçø;ÄfÐlèëí¦ê{Zø·Û‡"ó€àó«uôM‚FZ@i¡ÌF™ró*ºšþ8”@…l/çî;b}ì|æFE–RNJOÁ"þÎb¿2ÕèéŠp!ƧÐB¿ƒý·ƒ…Ùto}~ÕЩgrûàÛjஞ§êX}mÀqx©Ý`¥šq…`ý¨½àß‚~¬É;ò'ºæ7Û›„k%} ïך撿ë¨!7 ÙKùo>ÁËáE¾FÌ-ˆºˆŸ6[Ù¡âsû‚?ªï—B‹·ã§4ü‘ƒorIþh¦Ñ´¤\áJRBö€?ââ37ó_ æ¾öð[üÇ[ Ü÷9Oå#à…}À×ÙœU>“5¼]ZÀøõ£üŒ%5ÁOÛ¸(Èn>Þt樔‹–;»þ±­{ÕÖè€ú €ˆãKGY"y8pz¾D´=ZDži ÉmnÍŸA3Üb•Iðœg¨©éýxcm^°dwï{ø^Ÿ¼\ÖÊDéÏíÏ3ôs¡+t†œ¿%Ó'|Úï'ÏCORŠ•ýÜÆ¾^ÏÙœÛN(§lU£Ua¨ž^åœM ¤©¬Œ‘3²"G;¯óüüS% ígRGÚûÞ÷lüLÚ?SOº£§Sÿñ °y]ƒ¶Ÿþ8‰?{SaÛßyÛÛnÿŠåD…êõýO¬á‘”ñ:ŸþÆ;áú-¢ò!º‚1ØJÝÀqG(¯¶¹ßxà_mææ[°×—À³ºt<^jãGz2ŒÒÛ£æ!ïÔä“hùq%ò4csûþ¸x䎷#1:ƒÁŒ©áa–3p%áàá:<–/b>ÞÍ|Ãþû–µX·.Ðj¼ñªPñf¸lg´'ÏV¶>‚_ÍËw8¯$•9R_#h%9Ï-¥€ü ‹óñ:x•óð`ÃìEZyÄvc5Ô£ø<ŒÿâÛP¾;5båCÒM³éH þy>Ä-$™¬ã"œ¼àHtiÎq€À ÿˆXŽ…¹¿^¯<ÜLq|~,i$«¤Šh ÂGë&­ ·‚ù¯£ÉxßeWò.ðN™Pç?†Úœ`¢ûä?å+¹È£ÑË!Ò‰»ËGðÉÐß麑êIb}ÈûÀ}y-?ãüMVq[û: _ ç¦ÓÎ/ ? V@Ú à«ârFÚèMI!çd^°zm=]¥Ãt¹œ”jZRã€?cN~"7á_ÒuûºÞP['³Ù÷}k)•ôÕgAšè-¢s$–ÞÖ½ÛšÌûÒ+¤Ïäo}Ï0_²pÎ)·m`Ë¿jß%ç¨É@Å©(æç<>bKS.IêeÓIÚFJí¡µ³˜.E´?äKMª'y¯F—iðÊ¡J¾¤ªp³£BäoojJÙhÔ ¨"Å ÃÒÀ›¥“e°¸ú·ÜÔVÇëá­×ÔÞ`•kèû>é"¤O±îNØ@›íÔœoþWÎì ¤q^W©¸U÷oë8Îng„ËT1õLâàûþð¹ÜïÜ%N,çÀE›(hÙJP»E)1%5‰¡ñ6;³MwÛÔ45sÜhXÿc½™={ÇÖÆªoC3mj¶»jýll;Ùž cÄÎY'®Ý½»Èþ ©(ø£8•µ ¡îB³úÁFÚä¶S˜ö_e0£Ì[–ü½µþõàðç© œóh¦`€bÔ…Óô÷òG8§ }G'áÑ3CÕ.ƒÖÉC¸—t˜*ÃÙlÎ.¢rà€ÑÔž™æïia83‚>âÁ4”ü ±á”„ÿH¥<€‡ó¡};0¦§É?UÖØöÎÓwÄJêDrÓC rv8Á”ñZâo©OÁÚ™ ¬vø üˆË áíÆ§¢ñ›Ç8oiec¨¶œt8³Îì¢4swˆ¬Ždw˜€¬äÆ\†Ï¢eÇÈw=áÁ\-¨Þ[ùã¥;ÅþTÈÝøKNÀëp§QrpZ-ôõ7žKÁ‡xçâô|÷-fÀKú”'™åÎüPñ&¸íàfjR&°ÂEnÏq/@¸RVÊ©¨OįUMrúg¼ÁW¹øOãuãQöÈ'^â¹·¡yêøÕÞÁÇx5\ÖBN$*;x‡TÑïÔ¯Z¾“sEI‹¯åã$ø¾[€H6-Tþöú®¿v`´Jðf(ýà?ÚÊdIΑ¤½ŽÖ:BÿÔÊò|W¨ßŠ?ÿŸý»{x7îKíPï?&Ú¯1ßî–áÌìæËb*½¸ª°·PS«£Kt?P¾¸|¡÷0&}΋ø*#Ox=·´¯+.æq.;ƒq_3ð#(õ]ô=¡ÂrW:è-ùB6ÂôÑ&ZJ7j_]'—¤ž¦ÓÈò~x2Ž?°á={æUÛš;YÍ.p÷e¬­Ïå®Mæï –¦zü±K<}¤E=ëEð¾õ j8½ ÍWWIfÎŽûþ1‡Q [?D~.ÿýGò3(^£é¼Ý– ¯¤¨— ÞPOHýIèUŸ›à17‚?êéF>£•ô ³´$•ƒßøŠ?F;¡‹ÓC×¶·E¡RÊë«¿IO¹,圶ÕX^cožFõ:êJÙ×´CZJtõw<´M S]~`Ö¿cÝý'¯£”!ò·ß|عî××¹À!§ŸûÜAsã¹~¶±^¯ÜoݬnQw–Ãù°êî“ÍD¬˜š”•"Ðc7±ÙàLp¦š–¶¶élÃׄm·Ôÿ¹F˜ßh½°è7àë@›—ƒ?žÛTܳ9ìT{Ô sNvÂÌ~ø•pÓz?Ó墊vv°Žëlp^[mãÚ~6,ïh’™ føì%üÌ6òë1+%à›TÊç)ýuüÔ;ö½üñ±“œRÒûE‚òžEù€ÕáÀÁ ½Šð• b, "@ÆÑP³«ß›?ñ©Ûµ üÇå`þöPIó(5´^/î ”Ú€ïgž§-´ËßAb[¿“?"8ÝhØWþ£/Újl:zÜ““Lç¦Xû§èP|#ùžgüכͼ­&M3§Vñ ü:ŒÌ_ШM  ZÑ}RIìRó‚—rEÎ FÚ¬¾[€³©µ{kþߤÉÍ)Á`-0WRqC®|3»Ì¯Ê{¡qósZÿ„<ÒV܇‡šíÎÒPñÆ»mpí—ÐØ—0RQyÜJF(øüò1µ®Þ.ŸåÒ’Z6q9ŽÌ9÷“€ø?ñ`{Ʉތ̽Ž9Ò™Òòx~É×Ч(<““K,YÍJk-¨Cu–ÞäƒàTˆX˜¿â@ñØò þX*ÿUs÷¾ýí¿CÅy?FÉÏ»ÛB¦K|(î~ÚU/éZøÖò“ àŒ¶üœÏŽ)ËðÙ¨‰éðxým&.¿°|Ô½¹Áód™t•Zà‹‡pÉ5"nõk½aoƒ‡{òÏðf*9äXsˆ}ý$¥sÍé ÿœ‰ŸBWïÆl}F)eŸü¨ÄÊï2]Ôšþc`0UY¸¯Oä6Ú7Ë=|z,>m/½jÛøÍàGÀû8òÌö ü¼NZè=- þñô®fñŒ÷D¿ðò€¡.ëu ¦K 1|?ÇQ&Û2Dþ«ÛÎ.“‚êã¿{˜-ÛìÔLz{yu²vÖÝð.Óô´ÞÃmm’ÔZ@ò)%EŸÀ¡5Å lÌ[CäOœ%ÔÜ&¡à–Td¨‰vòJê4%7ÁŽÖ룟xѾ,^S&µ Xª•$ÒýPÄ{l+¬“#p}wÿ+ç?NÒ…Ø¿{3ÐÀù0]ÿúº8î w#˜ïá@Ï d€ûÈîDrÞöôÝ׊@ 3Ýþ¥£ö©ÅlqÆ9cLM›×Ô7³ÜTÈÓƒçϯÚ*ø== Tu¹®Ÿ!Õf´¹ìH{Ø }fëí×pç¼°ë¡·—ºÓIúêò_-žNùg ºÚOmß0½ÿH`&™6'ÖÈÀá¥ÀÎPûñø*Vö2 ÓŽà;µÜø¬24ù½üñ4˜ò¢Ÿ™¡ásòDhåàŒ|ž»@¸ñýÕi^¨§Øo^Ü6Pmðýþ Џ4“~¢©PÁ= özq1Þ^ÚKKàÂVãßÊP9[ÿϯ":Ÿº/ìCüü×ô Æ)=%ÌöâT†qkV> Îpx1Vg;ŒÃ5êf³¿‘Mпz:íMøžÔ¼ŠjÃ_\k·ë¼À¦/ì&s ¨_‘k`<—ÃÙMÄHpŸ*¼ÕÜ DôŨõæÚ@ŽD¼ã> <Þ…KC)/AO+ñ ÞÃSÁ.ÉùXs!ÔÃe°~}3Æ™*Þ·“ý¾/&<Å8˜ðìŸÊD/&Qe 4ós©"—8‡¤”ù\ýÎĸ9oãFÜÊç¾Pñ¾p¸_áüzón>Œñùê=-¼Æq^%õá?zC•‡“½\ü± n&¯â}Qªs4JN3CùîMÛèŸíâÁü»µd‘ÄáÒ^æØh¥ös—Šr,jü$ûÏšVá窅ʟ8Ðàj|÷¡ GoŽð4°Q/©É?@A×xC·ÿ§p% êe^­ÐÚþ6Ç’û¼ƒ[„¨Õ™È!·oиìŸÿ(L·(œ–Fz_ðbY¨µµœÓ-ÁúVËh øÿ)¡Ï÷ÙpRÞlw¾jÛ`'9 ÎøÊ$¶\µ¹(§“&z¬;WžÉÍàÝ IéדÃ{(Ûe³$€†hÅÀq)·m¢>É]ç”É ÷QË¯ÅÆ l9ª*)ÁãÀ+%‰öÒCêŸÒX ÿ±V2hiÁçõ!¦ü„Ja–à?CðÇ2§¶©jcS3è¯Zô1’BÞ@!}%œªðGz¯‘wESx?£¿kÁœËâꬻ}¶=uÁz)ÅÌö·/»ÿèµ;+ĉóÇ&ÿºþ 8›–®š’¦Œ ïVqüüퟹ©Ý¯Üòîd'žÿ˜¨d†Û|”…>£cö ëÂ,w›2ö SѬAÔŒÔÎ~fõC¤ Ш ©¿ÍAÍœ¶X“e詉k¿µ#ì½0濚ì\t¬DZFÁ>*”¤ŒÔÔN$?m_Ê,üÉ&±ílXÞñ'4ËÀ”ùé:ÍÇ|XEø'üGx¾ —=+gU%†n®‡¶¾?û…@ ¸„£69p´ 4tvüíY@~„»ð·á Sàišò^ÿ±ÑmuÓ›ÂaŒÇÈÅ ÿ ë =¤%çåß¡÷·Ÿý=NS±¦ŠÚ¶ïÌßp>qÙkˆ‘‘Rcä2#^CÉÃÀä~ýâàŒëðG¡ÿ»"î`›Ù¼íÜp§¡) _‰gB·mA+ýzã-Ðoë¯T»ÞüÍ[¸>ÿÌéׯÍCwm,*OÅÞÂb˜¡¶;¦ð/Çäéþ9SôôgpÐO~Õq* ý½ü‘Só(íÉãtˆªš…άPñÆ»} sË`eÏUåè< Œ“xTR>N—ÑÇR@öqÉ.ÛÀÃ8 ÿÆy5wàföOú ¿º'¡yÚÀuüÆãà¶ÒÇàAí¾]šjzí4½Ëë¹,8e-ð3žÇÛ9 Õ8øcª³ìcØÀ=k ðjùy+QÙ“ïeœ|æ;ýUŸÀ}ü©me .Ÿœ>}‚{~ßµªf52ƒÿ¯ÍÏã€ýKr àþ +Ã¥¿”çòòü‘~k†.†ª'i5¼LØvà¡|Š?¿ªcïk%³sÇé|þ€:ð|*Áðåô’Üå¥2Mëé÷šG×ÃsM’;RQ«é¸­^`¸`®È—Ú×ç•û8™Ì>ÊÊ~]€X j*)wƒÿ¸¢yÒ±t—ªwIÏiZïk½,âDÌEò\f;¾Ècy,%·BäWÙå5 °†ªÁ‡ç¶24^A Wä{†Ìz]wjYðox]$…Áí+ù€² ç_„ ¨BõøHþ˜ì40ííÇÐKmè{ŠCK%«7 ?Ù]>ь൚ÚЫç}ä}éÐàú±VçržfÑVÛ+åUäçæõ»ÿw×µÀWÎë“;-þõù—Î7œ)lŠ˜€[=øþ¼¦›ÖÍéæwG9‘?0ÿîæ@K3þ#;%¢mö˜+f±ÓÅYcªÛœ¦®Ùé~î~ýAíœa–Qºe¿&D¢a6Us†¸ŸM>±él ;ÛžcEªIÎAGí ñBj ̺\®—Ôžd5 éðݨµMeÇÙ°ä2.iF™Õ¶px9øgVô.ܺG™ØÏ¶¾:8ƒï-@¿¾—?.rÓ—tÂf¢p\’‡P`µBŸ/ÄšÿŽÓn(Nè)êEÃnóB{óÚêÄ*ñ3™ß¦)ä…áÿSé‡ó¯@•ÅÁ 󿣕“i8î[ÛùùKžR¸lDIߤL .cݤÉÁ3S¸pìÝó¿‚Ïl@€Î“m¦7²Ñú×ç{S½ŠÇ“¨"ù95jcýuó†çqtά3/yc°öÓN0ò0R6Üù/ñ‰MÞÂçáÌ(;xÿ ''áà¶ß ‚;¢—m¸Ï¡o€þ[y>0ÿ®_Ãñ$F'§™ïŒ ¯—ÛÅvŸ&áA¼ üA@¡Í”‹B!󥬒ô²“kùÕй §‡ÇéÄâW »ß„ÞEZ§(f[rð×T8å§pNyèk¥¹¦ÑÚEOóqÿý´¬à4àÍ|–ïp=ŽIii±³õû¹×áÅWÐSháeèÑ#ú~h¹Dçä2 ȳt£6…Ÿ©ÌŸ˜cÒþƒ{+m§ê¦é?âýl³pAöw”çÊèÍe$Ãd üG]¹ª£4”ôF £¸µd×§¼ØÜ…‡ñ!ø;¼Ž²¯ó¶¦rž:?a| -ÑŠ—`¶>¦ÌÀôŽzQžòFðP=M«%Áƒõg¹%´­ä¿pçü|¹ù9Eç­!Îôs²Âäëà¡dó ÿ$Uô>Xh°$×ú \yE“x©u¿DôË~´üc¸Ì|Ÿ‡po`Dû:;Þ ç¬ù<¸÷<-à¶•”/¼ÜºJÛéRY#åѲßá‘þ@¯—ás ê2þCN¼G%¡rÊóùŠ?f9M7ëÀøÿý)e¼å:_ƒ?*è/ÚT+zÕ¼ˆÞ­¢]䀖×Ú>çÍ¥ÖW9~Õ•GæuÆ–ÿw×±@¡ûwÅiú¯ùãI`«³8_Õ7ô#•Ýnm·¨;ÆùäÏÌ 40 mÊ d>f#›æ–3Ð9dºÚº¦9 þHûAíc†3OÛZþžLZ’Í™âú•]óÛ,¶ªc/„1ûfçó©õkèì¦VÀÓ;T„[´þ)ç‹4þ´7u·ÉlûN%â*fÆšå¶*”ïfüüRüy,’X_†ÿ÷n¬:› ¢õiÈ{ùãQ 8Fì¼ÍN‘¡jGƒw ’GþIã“”‡ïãÏ'ø ÿ„ãh|um¨*ro^gÝŽø‰ž4kx¸|:føÊå8z¯,ÿ¯o;] >!jBÙm£wÖ¯½øÜH(Jß /(&u®Ÿ¦éܸþbÆàô·’ü¼ÔSÁ$cmþ·>¿ì3p>T\Ô#´ ŸpÈ3‘¡ž›‚ Ž’²æ7ðÕ#øôÃ[øãl ¦o{b¼;‚qR;¦!ÞhJþ¨ ¬ë/ççO<ȳ€¶_óq0ÛbÜk¿Z{v³ôúç£ÝÞög¨“ø<_‡ 8mÆÍJ)ðÇJi¤Ëײ• Â,Æ'Fä¼½…ksc{ùнñܶ4Æ7F}9ï…ï‹ÂKùK‰/;x¶4Ö¤ÚM[ê 8„J’@p6ÎÅÛÀ/ÐÿøTþãDàÞ´Õ1ƒŸ‘Ÿ7å[´/…Ô‘¥’…SI`ÖK§kµ™‚Cú¿—æÄË“|ÇðŸtœÚšŸþ¯—Íßv ~¬üZ¾Å£ešÌ”ŽÜFë §ä˜N—Áü£ä òGîÌÓù '”{phCÔ?ÿÌyáôƒG( 5ÑŽQ)º…]Zê)x¡=²Tù+éU¦Ý$ÜGmÝÁçá†q9ÊQ1š'ìëݬÜ4Òÿ»HQœMΨàùó¬&Š[Q†²çs¹ÝiNLgçûC„¸æF›ßá?JíÇ$1±Ü•Î\ø¼²¦¶™æÆ ãÛîWñÌZ ÛÛ c^‚¦Ûï)“SÈ}iԲłïÏC¯ÙwDrö:‰ìih"ÿU¬À¢\(]Ï.¡ßé6-v¥ŸìW¶s˜üG&3Ô¬²?Ç«q>ó$0õs¾Ç=ñÎcNE…WJ iÐ{ùãZ pùœÍM¡—¿å…ÿ¨|ßFÅùøã9­už6¡ßM•÷´p»Û‡îƒ=ÂÍ&‡&SM¸‚oyân\Šg··Ñ"è΃ÙTÊ6~gý»®o§SJOÃÁŠqƒïa.ÂyLDï&r3À-Ü#ÿ´ÝêA;è#ži¿zãm²uuêšêt#µ.æ ýEUájÂy<”žšëÆ‘õÀýRð §i,å'Åçö 6oÍ¿Ï ¶ã‚UaÛBy¦£Õ„W‡^–…éÇ7©ÜÃjàg^ÿlwpGð^ø£ØÜÀ,w‡Š7Â`»Ã¥ä|ýŠÎ# 8òòK./±d*0:r0ÿU É,àNEä`ÿ}òînÏ›Ð*.A0_n'JÁÃù8Xl ÅâÙœMRË*^'µ5«N×yz…q#ø›-\„?ç+@ûh2€#`vŽtþüGÄ®î̹µp»ùùNÇÏ)‘Ô—’›“ÈHýYÃ{ô„Ö”sü°ê|@2 é}ŒÀfp×!ªêýy[‚+ðÜK¿þǺÌd® –߸ý\M§QtƒŽÅOב”h§Ÿ-÷Wx³ûü­|&;Á¯ýGç¦Ó_Œï ®„o|JÕ$9¹V’{Pàþþ«‚ðG£uœ”êZW/"bx£ò®%³;^µm¤ó9^³|ž’ÊCxýœ|þ¿G.ñŽÅŸ²ÓÚPï?:º×ÁG{ÉÁ=\¾|Bq¥ƒ,–‚œmëÕ;hX-¬!5å(¼f¨{#/ø Ÿ…Oîhþ#ÞH›Ÿ«ñS¸q?û :Ë›e»ô—qÜPîè M¤Vè´¶­|¥/в~à¤Ù^ŠËG²‚GÙ×û)s;âsËÁ.e9}‰Uðƒö‚¶/(§Ä¯í×D éFôyµD¯äÔ(r{ñTÎ,8!üã¾ùg9_›ƒXM0‡3 a42qùIÉ+¡+妜ÖèÞsë¥ñ¾SÒ§ªÿ„dæÌ˜å×y(ÿF9mßüqÙ¹`âÓwTªi ?³9¨†¤÷ŠèXðÑ ø‚þš\YNÿÔt³DÖºƒ©ÈoðþסqÊQ)¾‚?Ö:=LSs·<¼VÚ$u¼ÙºXfÊ]¹,q¼ÁšÝëìmÂïíÑß»Aþàçÿo²m6/©³ýoäßÝÈâ¼Îû0PîÙ‹Þw±³ üñÈõŸ_}áúÕçRºùÜnIwœïÏŸÏÔ6£l°|\ OEÌ·&¥»Î™ešÙÁæG³ËMï~ùAíìi¦AÁ?_¬¢ú´Ê梆N/h°Æ@úR¶œfïºa9íç?79åˆ]@gázèÑšÁü»}h”Àø^4Ö&³5ÂÄÉÌH³ÜV†nÞ Ü{“ÇSÞ61Üsª*ÐÕšW£ë,Ý&§¹e°þG@†¢'k8²ÿmH›ëU¼¤»ÍÀù92·SÇ=Í'®6WWË&Y¤õµTýïú+ðùo©«¹4™ÜåÁàßtr‹cÂí­ Á½œ¬f'} 7óþãŒ-Ii8«´VÇ+ÿâé1}®×5Ž÷%øã¹ì$Ñ ò\Y?~Œ˜©¨jK¾jßQg¯É@e鬌)ìï½/+ɽlÿFzZ2¡eõô ~_Žön¼ÚIïðÅàþ«Oø”`y*u8't0Ýlð@Mh ü4Ky[t½LFß^@ 4Ô½zÞ4íý„¯ƒÛÚ†‘¦þ¾Â‹àú~î7Žf?ì„öÿë@ Gˆúµ/5ÿuýÕÎx7²i`J™Œ®Ÿ]mX §›Ó-åq9qœ mN ª™nóRi MdÊg’šðî.g¥éôçܸnÞjçD³ŠûŽm…_¶™ª:mÝ'Ј½le[ÇN²0×Úë|d7÷S7šL¨7"Ö²“hÔïÄïIýmÛÁ†%b&3Ì,°Õéþ­âõó2Ç… ) -¯À3E„ÚéáW Ãó«L”ŽnB%äz¼kï;úór¢êìך}ÿPj|µ¤]¦ë{Z¸ÏíDWá+úÁYM_ø ­˜BÙy „R.Å+è TØrºq8A¿P#;òù¯ÈIìF%GS6úІÍ£‚iƒfýqšÒ4?_6û™æ] ÷Dš4ŠÇ›mú·Ölï42Åé.}ÔìuÌV ~æ&0q%°ûÍ]ðG ÿ^èåMp\ùƒþ£)5{ Ü xf‚õ«Þ-cärù§{Fà>´áªÀÿñ|Ÿ~`GvóL¸,XÿGÈ?‡‡?æqfÅõk'¸½¡'ª‚Å·ÂS´F¿æ€_s«³øï·¥ª ìâš’Cvp+VŒåEžÌx³ÇßàXÐ:…Ñ¿$<–I®ñFŒÌ Î í¾–ýlŒt¡ŽÒ#ð&µàoV”à |¬0S¢× œõÿÜoë^»?N/¨817[ o'™#Å9&øãàMÖUZ~£Œ”‚ éËi îïq$´ö$ú]2”ÿhl³pQx½r`¤'´—Ê,¹©ˆ·USÃo­ÔYrž;HFðÇ% }?ôÀ ÿQd÷‘«!™óÈéþÈÉ·©)ï¦Þ¢Jbµ6Ð9‰ì’ÅÚAÀ¯Õà¹ErGêiaM+÷yÆ.³<à8ü)ñþ¼¿“þ# ŸƒÚˆ-Ÿ`5|ÍQàÙ®j #Qt¿F úT^½%7ƒ5K,|þ(†Y<ŽrÙ6¶æ«öýåì6©©VÂuÍÛïàŽy™Á ô $ÖìºEoú±õ%Z›G“ê~Þ¦ñd EçÇ@‡bÔ+{é+þ˜ãt1½m2ðGx“˜àúÞz8ò¬™Ý«ªy½ÞbÍà5ÇWwj=×ú‰Þ¦i@²æÁÜØí8¼Ý÷Žu÷Ÿ¼Ž2†àçÿ?΄sv;ËÜð¦…)abº…eh ÜGiøÙNçòE›hefB•W¢‹€?n;ûÁû#lSÓÒìqã»>¨óÌ|(Ú붤-°©€ÓÅÅÚÅV æoÆçW«3ÎgvÐr5§aÐFß²ï;[Ú9Ðs~5¾úÔ†Ù¯mÏ0Õ?/dF›µ¶ ”Ö~Z Å}&ýoP‰`ý¨¿éלHíÂPðN #%¢Ó63} ™Gþ¶‚ï?NSqpÑ^|Îð#ƒo·…zŠýæu2¸ÿª¾÷2-F;æ@¿ûù¯†ƒ=zAiú•Ï·Ófฟ¥Ð64ȹóŽXŸ:iÝxÁ_Søäd€÷0û#Nih¹.ÀÑSôÑVÒ|Çi È&[òÓþÕÏ©gÊaô3±_ÉįÆÒˆ*cì-°p"Å·7Mô`þÝ:@ 5Ðþ“(œØ×¸7oϿ̶£ÀÓ€•ßBÃ. fþ n¤Ô÷(8ˆzp;øwN?ˆ›1ªQ9ÿb¶8«CÅâv²=©"Tï&¾ÄMÁG 0öùù:—ƒ'X/å MóÊ®&ùåî ¿S„OðàÕpþÕž2¡=\b÷®­ ìI މ%‡øOJÀ‹9¥$•ƒ¼UÚ³FèHÝΨþXÁ9#_#E’œŽt§³3ÔùÁ¶mÄlhÌgƒýM+eª”à„ò+¼‡ñ&ê:Í'׃û¯Î`LRá“ÃI¬ ÿ8JÍBe¾éc¿oÜÀ¨ãìò!øù@À¾ÜQ^è|M§‰u³.”ð#YôßÚwàå,àGVqWåU¼ÔÎg°Ž¼—?ŒS€’Ðy›Ê·O%?Vt(8ÿN¾ò„V Ú(šI hÏ{÷ïžp{ ‡­à,žb¶F ûç³3BýŒöôþjZ¤ÿ Þ¦Õ¶ƒwíCˆëÄuÜ0z8°991œÍ ÿ0¨ó2´ÈŽ·ãó¡àPöÀm³eßZÿ£§ÓÒ”€2MÁ¿C žÄ*þhHé%Zù¹Ýf¢Ê&.Ïeد¸ N1 …£œ`áÞoáÇwaðt.·ã/8ûyÌFS|à\îd?ñ}þ3xþ<îÑIDÝNù3în6½á?&ºmmWŒó7P÷¸=ú5ƒSN>ºÁ‘eÇ‚ ]áÌÿ§_poÚ•‡Ô?“•#q\i-Ó¥ Ç—¡ú«Zoð¾4œN>)&7ø'ŽÏù.ØJ>Dg©m¨ü‰ƒmI0µŸ‹ &<_tôzƒ¬“ÞÒ™ÛJÀ[ Swè$´öû`þ’³Áý»puœQâÈ"nâüG:çŠ3 NëK¾FÍpwaî–çÒX/ùûÍäwí¡uüSyÚ]gB£·Õü[ÎÂ%΀ß:Í ø%µ¯3ZNs2˜K~í`¬ÎHr3I7} ×¶T"éh|ñ\/ƒ—üqO}$›$^ðïVúZðu¥œCÎa“n¶¡A¼Û–§:ò¥÷•®€'úKÒi- x‡Áv+4Šî”$ZRWqÀ‹-}HÁÍéjV\õŠ?æ;=MwžšA±”§„´EZzëô7)Ï$ªVñújU¯¼w\³‚U¶ÃÍUÔ?¥Ä×cÀ„c¶G0;Q»ûíËî?zí¼®å8µþuþ’ç•Î7"ÜGAßõsjMtÓ¸ÅàA–?®|P´Y fŠ-ÿ‘žØ&¾¹ïpV›ö¶’©h¶» ÝÂx~pä4׬êé¸çyvîu[‡šÙâ¶¼h‡1ÿÕD稓ÄîÇÜYO]¡ãoAU65³3€[A×7§Ö4Ц·]lÊ0DLg†™Ù¶=þn„ÿ`Ž¡¸Áúƒ+Éã»ÀÄèT¨ÝœÖ½—?Ôù–RÑ_¶Åæ<™Š@{F†;òwØúõ£öÑ Z$ú•æu×¾÷üùa·/݃û蟱ü1­AÙ ÈÇUK°Ÿ1ò¸’›`?hXt¤ó¶Ó~þÕùÊ G÷Êi(5Ü` àyoø‹4üQ k±?ÅxÞÁ¿ÓÏà™õ÷Úbæm•Y8L!:º€~ #`¡–Ðç ÀÏý5v†yÊ+Áõƒg5¶ÓJK žoNýßÊ™©¶X|ÿ<}·L9†çŠð/<–÷bÕ߃ÿ˜Ê_A‹Ÿîh[‰ïËÌ_oøn;Û“†WðenÍáÑÃÕà'œ~™ÔQ£Ùe;“ @û8çÏŒƒÿèÎCÁ¡ßŸÇwŸÚ 0î×y?Æ=¯áÔC¶òi%=S§ê|VN‰&k¸(üÇiøÒ‡“`l •¿¤A°ÕAðGuðÖ7ìqRé"3%+Ç”Ÿµøcþ¡U=9ÒyŒBz8£«]~žÞ¢–¦Ó?â ±9Ñ‹kðd¥¸04Ï1žŠ^“ÜA\o–F×õÐz!ø3•¾„'Èx ?ãÜâW“jâ¬mvç²3‚âáïÁü/âÞ\‹"nã~vgþ±´„t H HwJ#!Jw·t‹”tH Hww#ÒÝÝ)Ý|÷>ßûÁု÷{ÝsQq¨ä"©t4{Õ¡ÊûÅíe;¢§}Éó éàï‡ÑŸTÿ^¸\šŸÌãb’ Š\#˜?ŽñD$†ŽÜÅ^6¡ï¥&p¯`4´¥XPñƒ|„·!™Íæ¯%šl‚Óoªy¡^Cô"ïåLÈ7;Pbjöi’T&×O\ëÌ£Äfî¾à^gwŠ•YªËdIÌ/¸‹öÕǺ]·j1”žJòÃÛ·SÇó&YÅþ»³MLÿ7Êëi3sI(ôôÚJÙç÷àû͹™<Öyú¾Nè<‰|”TO¢%GÁ,G¾@ƙϿ„X¿$þŠªÝ¡FPÚzäð·òPšè5‰,[d#øVI«ëNí¥S¡õ?hFŒÔù#!ŽJ³[^Õ­ϬÂ(}€dkä…m„ëð•ÔTòŠé|‰­õï¬>Óä^b½(·ð}XöKläȃCy¥¶ìëõ†Oß,Ý>Kýy³­BÍ%!ø1ù㬸Ú@¯éI­¡‹õ®ì’tUWð&$¤Ñþ¨$ü]Yxž9!Ö/ijêÙH—• wŸÐ!iîõ)FÊE‰¢é½_´”W üHêUÕ¹r×z‹’xz#òˆí‚~zˆ*1ÙÿâýýLÎëäø8Pç_óÃÿc¢û±ib²˜Øn.”2$PÑMçæws¸+(¸íÂ@³êþ=r"S4“Àlw&9L[ØÔ3›Üø¸ÿù.³˜þ 3ÁõÛ‹Ðû•pê‚©˜ÍkËÙö†ûO¾ùÍc¥sÂIeý÷ñÖPgßKí ògeMG¿êNí¶¿}×¼¡ÐGq3Áüaóc$¯†ÎÍ¥'Pê!È.Ï*Pª†ÐÙ:`Rš†ùW¹è[:ns£„ àG^|9TÔÜ‹Qs•VÃ1¯AßG#©­ µ‹ÜÛÇ ÷g­#ýLÐ~‚„Õ™ëÂ#àª+€סB+‘B¶Ñ_È µì¯ÿøüœoÜÈ1#)=å@)É)&ý„4rœ&bŒ–¤¾È–÷¡®‚Äí¨ü?óF›á­·!ü£\[e´U:žŠÜqÊ_;¸ÿÎ-°·%9¶¯aYÄ?Â_ƕڌ4“-‘†üïß.íB Ž™aûâ*Ì3säÚH¬ àA+ó0(û ªÉ·y34/§å#8Û?q½PÞ†fß[÷¯†¹ƒlw*ü²ŒïsŽˆk±Rò5þNRÈRi¤¤yå/® %8|ÿ<Ÿàßø&>}¨}ôÖŒeÏ àª5¢„г+PÝí¸¾s íñAŸ]ÒQ«ê ]>À…%4þÿÍ9¾ å/ñ›óC=?¯éè¶íæ?w)ÆÊI¤‘Ì‘¸H‹µ³o×È…¤¸¿¿'Ã'?æÏe->{/52Þ(o€ÍÊeø ù».W-/ó2Y]“kJ4o±FV U/¸¬¤Õ«8ƒ_¡ÎsÙ‘œr—p?ûzÆ@&ç®3-Ÿ—oRGžAá' k{=/‘d•¬×.ÚHKë6ðcºœ{e(§¹3OòÄ7ìÒWuëí¤0G1JO"Ç|$÷ÁõJœ^:óÇ2ù:ÿ…÷LŸh:/ž“óúB!åÄÂçwççàõxúÔ–²µ^Õï”sÀ|]*‰òò [•ÚJv/-(Ù\7ÈÇÈCÏõþþÞ‘ò ÒÑD~¡Id0…ççø­,ÔãæÐ+~Œu™–6.µ@‚.OqhTõ:ê(é!/%®Vò"tðÈ‹åUÄù>Ô< ÔOò™žÅ(ÙiûQGÔ£ GÿOòÇ®@Vç³ó¯šÿëùW/ûœ?Üð¦¦Éf"×oøÎÍîVtó¹óÈÎÑ÷â˜èn&@å+Pjºi¯¹‰ÌBg øÑÖ¦1UÍ7µ–½™^kÍpº‡mMA¹i±-Hé^n|xú¸ö[ËN··Ã¸íb甓À®¡­´W|4”9‡"v?ü·!za\vMRÙ¡az0¯bVƒþœ£µpòÏá©£OøRözRÞgÎè­mÑóÞ¿~É™@e8Ÿ‰¸4=r‘R•àÛòùù4ã*Í€®uAÍkÒÌ÷î?¸Ã섟¾J(2êל~§¯yüc.äÇjœ÷1¨ã|(nÛÁyøeEv>s-ø5Jžž†Ñ§ô9øñJŠ ‘‹fq[äNÐC¸=5µ<^jÓ¿õ6¶L?¾¥{ôû{²_¦ó¸–µ‘.þ?ÚÒ#3ÎD?j€ ‚;´… ¿n“#uu|?î›Iv¨á~»Þ5fŽ3ÙÙlšÁ63{Ý/Ü TϹf2”ï¤ý–úP2šjÓRQg”‡¾£ 6ƒ-j'Ú#a\?q¶sÔù üXköÿ5Í&µµËhôäd¦êÔÅ&´}í?­äò(eF™•¶<Ý€’n¡ôZ܇â éâÍ9'nÛ"E…¨×{ùq:P :¹?o8?‡*g§[¶í€V¤bÿMÛ4}¿ ¦â4ÃÔzO 7»Ý‘-j‚7çi}Ls¨5 §¼þ.ÜNs=]A™3ÁÍ• BÊk›8ÿ4kàE …{Ç^E†‰G©ðùÉ(5E^»Fcy ®ÄL(T40îÆÃT|f ”xŒ&ØyŠÿ€NS:³á­ýkg¸ým'œ“ÀcïžÓ(\Éìüˆ‹Ê—²Pªè)IrT¤²Ž r8Îà àÈ}â5±ßz~î¯|_5ò×dšƒ4"âç¿•d'o“VšY{è0 ÈŸàGñëøÿ 2<ãfœéxJ¨üÑ$¸üjж j˜” ,Ed’ÄCbé Å{¨¿ë2í$[8µ”’ýh‘XÐû³N¦òô¦Æ¡øÑÝæà²ð<'è{. ÖœæI2R†He®/÷u¤Æ«ßw>˜ÛI½‚í…þ3y)Š<äÜѾ^=(óÔC±Ñ"/©.Ï…û¹FEä¤|§{ÄÊ\Y®Í´×5:PÇHÍ­9ôŸAËô∨ë-úüxý4y‚SÊœBÛߦûQ /dçðò£ú;ùý¼°^£yÇÁlÈgä…^‘?d%Z"7à—ÈŸ£)‚­mK½ªßç¼I‹L_ îeòqQª+)½”:Nkë69/5À£ýZA·htÝ$á´žŽåûšRº£g†ç’¸ áF¶¾âÇlçÓ߯€mA )!‘²Þ¯:L~WS¡V´ ø¡øjªë¤œ—­NíÎßm—u^ÓýOøq6PÔy}—Åsê†XÍýÃŽûàè"7¾©g š$ÿ³þÕwîWàGfw¡ÃÎõ*mIà3ÌúOÏSÐÕD0«œîÎS×1µÍ 7Ùο`Áë^?~¥/i¶ýŠÚ9ýÜÈШ\6­­hÇÚ'aäÇ4g¿ÁN£åÐîÔ—öC—kB›zÙ…p¹§¡yÅá#ZÙOìOaš¿›ÕL5óq¦7h!ÜÛBèþ©à}÷kHÜA ÏÀSD¥¨¾g†áùǧp÷—mNä˜"pú™A¶ðàÙ:Ô¬_Ç'ܧ‰ð£©Ê[ýÞýkw¹h5pa$¢!¨Ç÷FJ¥û™@iÐEPo!œÝîàÎY¹lïÜ?êIàSw¿½ Õ-‚öòï'E¥ž4 fÊ©D A% e~ÆÍÅXꌑq–Úìoí¦äí"Æ?¯Oñ»-ÑJ—ðÏ*H .ûüpì ó˜×qu®ÌÇq­6"w¢;6+®N­wðãyÀ5Cl|ö ®Íiù ^w0 gÚüЬõ'•䇼‹—p^N…Zn É é|ni³Õ™ª¼±n3Û›ê!/LåC\ Ê:•öPf¾ÏùÁeRJ/IF9Âå%­,†sİ…ûóZhV {孩ܶ zpB³:Á»(¯â¬È+y‘ÔÑøàG?‚4RTâƒH™QÇ|zÚ™#Ã/lvV¾Qb'× Íl3ÛQ¥¤L—O9’t@YÏtüswù N½˜œáÜü9®ø-Ž~Ì€gjêþU?›“¿‡Ã?HÅ{¤™*ce Ô!¯èlM ô~LOÒé´J{î†,w‰“‰ïB¾ÿ‘ÓqÜ~””sñ#ªÁÓ1F_PI¹!eõ¬°,’UÚ\ó€suŒŽ’§ò-rŸØ“§s\9Ì1Àºc!Ö/ã”3{(¹ÿV<Å”Èðù¥8¶T? êtøøEÁÛ¡·5¶—„º‹ ²IVIlœqs¾Æ#A°t¶nˆõ¯9çL28Û:ð,=ù¶mCõ$¶—Nÿ)vÊ\3zB«ëäµRÎßiüH.Cé)ÆsIÊA•áFV¼âǧ³i ~4‡›*K1 ½Ã§Àßš\?öFiY¯÷\cxt…ìÓZè;‚Ï?~§¶)8vŽJsûa3”þwŽ3l!v<ç4p¦¢o÷KÙnÓÖä0 ƒïŸO |ëfr¿sKº3œð¸þîŠ@C3Ü~ÖNC—¬kb˜óÈ¿›¶6¯inIöþ`_3zA?*ÒxJK3mjè u¿‚Ë-d³Ú²v”½F~Ìu8í dåÔ•Âqàr”ùcí¢ËÔù£õ?úڰ쨞×L0+l6hæ|ÚJ Èá³Á6n£—o¡gÐýòtÏ–€ï/B¿‡))5Z,#)üÛpèt~ŠBå0â¯A)žâž GT=üq¹(Ô*ªo»ÜÎèQ£+Püh`O=¨ffîMõßÿXz¯€Šß€žÎĈJg;ÿ¡,×Iåž²g³2!¦¤+í Ñ×i"Ïž •~‚Ϲ¼ÇÖ©Ús-`Þµ²eG§²)OïÏ´­H{AšVuÁ8<•bÙõàÇJ®5;‰+µjŸÛÏÑ£ÞµÿÇÕ@ÀL°ý‰áb[÷š ~Œ ˜ð´ey4ÎuUà'àÇ$ð#'üã±à;üWÑžUÌgQ¨ò~w[ƒU)>OŠ7cFÀÊÈ7þçþU½Žri!¹lâX89òDgÞ„üQÓ^3¡ç’'u/Û²P|ýö| ¹/Ïç¼k-òÇ—ÚU?NqEI" À"¼†O‚ ­8<ÄÊPüèê^·ÍÈ_ß¹4>3 +Ç” 2_RqBi­þÜÖ™:_;ËZþFJËu.„LÑ’Ï!,åÕàNÍP3/ºØüି‡fI.³YÇÃe–ô’¦üƒœ?>Ók²F7ÊäÔúɨ7ÿÄÓ@¤Œâ Ìööõ*™€Ûš"¡ÿÞ§®Pﺨe9 ]>+x¥ÌÖvZR«éJäš1òD k^éˆ44:ÁÑýüc÷¼ªÛ'¿Y‹¶Äw)®xÔÎ* J» M’8ºD=ïž^„RçÓÓà‡‹k³]rð—ÜŽa$–Ķ´?¼ªßEç˜IEÅP¯ƒpWl#j(é¼L:üX.ÇýybzXkêZýùã­ ~ÜÓÂ2iô!zuvðc>m ñü¼¹éd? öøÂÓ¥‰7Éh˜xšLSz3µ¼WÇ ç}ì5ÑiòRÈciŠlrþj;>½3ÜS9~i>ì Áÿα/æ ~üû÷ÏgƒóòG}SÄ$r«ŸäpÓ€ÜiÎóÀ‡­îµ PÐŒÁˆ)Béé¬} .=ĘdÙº¦Š¹äÆuóP=ǘ1ðÐwm9èUškKÒNOWÁò6=ÜÅD{Ç ÛÊ‘ýœóNt;®{5µÅè­ÛÞËn]xÔºÔ¿ÿH4.i¥„×ëÿX:v™f1Î{5¸Ò™òØ Nè½+þ¿ãcçS÷¤½ ‚G®ìO))®¿k-\Ü ¨DQšÎm1Æ÷Ò#º‡DÓú=‹NÒ›Ù¼kfu+§ª©B‡àðW#w‡ž7F u„Çcž@ í2ó Z+¡wƒ/pÝ=J‡WóüP3ÊþJÄ£¸ƒf€m#).øQ¬ÃÛ©,?ãe<¾8@™³AΣðÆeÌŽ·î_ s[ØÈTIx1_‘¡õ¶P!¾ b$–•R]ï"yìàÒ’[փÊ2×ùјÛýo3¶{Ñ»ã×O|À›ÐCÖp6‰+Ûy–´ÕÔÚù# Û¸ø±ˆ³ñW¼šIzq x°…¡æï6wïÚVhå‡ÐûCœŠÿ‰T ο '½´ƒ²7ºÚC¶ !•—s`¨ÍÏqYŽk¾ù£îåM²¹)ø±½¶@pýöUâßÁjÍÍä’þ® õ¹¬ÔÝ2ÿ]Ÿð"îw?y,—D?z†˜ëžÙ¹î ¢œ/QÞ|¦• zY º^¶ 4‚RFžé¦ƒåŠTÒ\È×Pâ8N*ñ鱑 ^?Mîíd3»)_„7‰-m jË_Jcý[³ÁÏ''cxû‘Fâz(´»+{ñ)éøÌ®Œ‚·Im[Ù†¯êwÖ9eÒÃÕ5‡·ëÍ…lc:"E½Ä:YÒÃà\ ïý…:nÔ8ºüH¥Kø¸¦‘q=®ñY׆È󜦡M‡X}46ín´ÎGz‹ª%4š7Py¥½¼O½ž(ï©–EBj"±Ô¿¼ÙöÄH9K5ù±ù°jÿwŽ üÎëU6¢οäÇ£Àg‘û±ilrÏ-äGM·¸[ÅÍåNqž!é|ȱ*ÐÆL³Õüç´ÇF6)Ì5ðé¨éa[#\qÓ~àüÝõf¼óU[>° -¶y(•³ÝÍ ÅiôÑÆÎ´'¸¢ïr甓ÎîÄÚ„4 —‹ËP)ªoWÓ¸àTÛ˦¶ÃlXV„/f†€uÉãÅ´ÞÜOƒ»Ø–ç¿@“óP¼pT†ü]ö†½—w?@#OÙÔp¾Åx e£CǶ¡ÿ|“ƒo¥ ÊÒú÷οºêN…"7Av»‡ö‹‹ÛN>7wàîpå?nAEýyËgàfý•ú8ÿ´k–ã$tz;´Í‡’£¼Ž8¯»45­Hó@$e¾AþÌ’Î Ì"°k¥-õÎ÷»8uM´þ×<~B+®¿Û-‰ûÓ'v“Iõ« ç¼~ÙßÓñk }+þ®v#3à9esÎÎIÁö8Ó¸Ü ÃýùOú‘#ÈÎàþiÙÛe)ÒÜc´ówf•3%TyÝv¶úÇ'¼) >?þt9èjùB–J1} ©ÀÊ’K¦â¢¡-Oòd‹–ü«ÝýÖþQÉÝ—ðõ)Ïå+|!øféÎŒ²6òji¯t‚öÖÓ|«"ßlà’P¿ýü7G–‰{¬³âͼàÆ@Z[ôT‘ƒ—N.Ue‰dæ”2X»è]€Rtª'Õ@¥jÿ”Ã˲à:ŸM³7ʇüQŠ/À‘WæòÌ|©h¿Œ“ÜS®¢¬¤^Wë­øq9ø´¢;ôþ瓲ŽëØ×ϸò;7y””sûn£¢1ÒxUhé ½/ñe,=J#,Ð_u¤0þëG½Ê§¸ Øþ9òXBŽÀ'ìôWuëë¤0W(-²íuŠ*§m/êÈ_K ýÈ«  %8Î;„Äð¹—Wå¶ô*¨©¬7³ôCVHjÛ…Ègœ&üÎèû½y8ÜOÒxit†öÑË OKoòÇJ¡Ë$(µˆ#zŸËúý»,Æg^âýÁ…NÓÕÆ¡NáßQDÚ*u½:­çi>=§£´…WÏ#/²WWÇËc­€|Ôõ>ñv.¥ÆKC"qýß[ùBì?ø"Ð ÄlÞ;":;ÀÏM+SØÄ Îß(ít+¸Eݥ𤶻ÉÊ@'3ÕVÂ5*N×mt“ÈDtW;ëM[Ç41ç>øþÕ1³Œ†ÓûFqišd“™ë~Š+ö³­jÚö¼û®]ŠÞ>69g’Öß÷z>È?Ê•‘‹"Ô²³ wWàJkBm»Ùd¶‡ ËŽTÅÌ3×6£ÈЄ ððÏAÝ×T‚WÁeÞ„úGŸ&€uïßÿœÊ”18ÿ*ÏÃ@ßld©|áy* Õ[‡=jЯøŒ&èÃ=ÞSÃçîXÔ¡1hóäõP¿:4”²r'¨I.ÁÀÁ®$ÿ.Ö d›áÔÄöüÇ8ã;IÝøùôeB))H‚«1ž£‰P‰J4–à7¯ƒ( Ѳƒ ÑóZ[À¼‹ì]œN¦:jõMpí¬›à[ƒàósáˆü+¥´»Œÿ4¹¼ýQÚ¼•Â÷‘oþ~\ Ä5óíïáÓ‘¬rÁmÏCºC‰áº+AçæóyªÏOø0òDVþšÏâZùkRÆERib6:óC•7üèVeAby~¸<ÚZ˜s I-3¥¤¾”LrˆkHe¸ï*ð¥yxO†îöã^öÄ[ù#!òÂwPüL< áïB¾\ íýL6ñBi¤Y ®}àÂOs%d’È©À…kÈ #8!Ò^ŸPù£©{ßÖ®†V…÷â|R:é®bød œ«³µ§äF’SCëý•·nð#^Ï>H¥B­¼9ù£&Ÿ¦S(¯hxŒ÷È)ä?x¢8Þ$M¢¬;u½,O’ë-~Îùgþ5Ì,Û-Ä\÷¤Î]g%âÂÈËÍx)|Á3**ñuœÞ‘/å¼ìÕ¶Z]Ëë6¦¿ËK©¥•ä/$Å…GpxNÌíÔWuûÙIlΠŸü^Brç]Ÿ3H35^]#Yu!ÒÖaݧ)¼¬úH΃!wå¬|ÌÉP×È{)›­m_¿¯|Â9b2Âï£ËÔƒ—Ùò4H²{_‚·#t¿lD¼¥»µ*òGF=(Ù4žnæ—ú¹Œ@ïzŽ~žžòð¸ë—LpZšf61S ÊK.í?fëd¤ÁHú>Ö©ZΫéEôÂyµuž/jØL>×SèŸgí0x&†ç ü'ëï d±b ;ÍBÌÆú°ãi`•3ßMjZ˜’&ƒ[Þñ×OÌìfuKº©ÜMN$çÜ•6#PÝŒµ•ƒoô?´Ÿ›/M w¯³Ä4¶]L3ðã³|~¾Òøog¼°í1êsÑ[оw¦¸½™fëÙúv¤ýÛ ÛÊ_« Nf{}g®øTº„dü#å§rv­£û´ uîLCmB”–=“™Áf²ý}k1ê¶þü<´36_‡ËßH çÚ„"Sú \Zö^~<|ƒ |Á&‡ßªuÏKYqÖ?À1¥â|uvy%|ìxú½u¯ùù=5<èv%ËÝèüs!Ť±ÔŠŸ#«/¾+âïîg]FùÇü;SvžóOïñGw’¡Åà§²QNp6}pÿÁÁÈl£‘cŠÒî çxô¸€kÕ­°ŸºÏ–3ïšÓÑü(ÿœüðŸ >A;5†æß§(<œ¾³‡ÍIÞÁ¹:Ÿ@þ8¶åC;æK;½sýÄpfˆíOIø7øX†Õ_ÁwS×oÏëøÕ€šDžÈ†â¯D¹œügý‘ù³é­ç?»l7ôÝ켕ïrGvxí¥|ø÷Ròµ¬?\Í û¸¢ä“]¨exäÃøì+pú“ìÅ·Ö¿Šíž´ À¬<Šðe>|~žFRÊz^ uÁYpã·À ?ßLC¢HÅ!D’Ñœ=bƒ³ðë¹m=ÔÈAR9ïpœP~’9R‹?•^:Fo“nÕ&r¼+*§ cwãó÷tÜF»©A¨;Ÿí¬ÿÞÇ3:De¸Îf/•ƒ2UÖò¯pôh:­'ô/$£–’Rñuèr_^"'‘(à]ïÏ?Ò8W¾ôçG߯ÍëÑã®P6xñ1zç{P6ƒ•µ´„n‚^/£M?ž!¹ùÜ­g»Ò”žwBÅ[A  y‘ŠBßçJAhT^ÙΕ¥lÁ•е:Áýù·çAöˆ ÝÓ¸Ûmœá§<Ú{ÿD2[Å)%‰¬Dþ¨¯¹u†þ¬wPFmI ÿü8Ÿ‹!cƒüXì,{SïÝ+¶.úêcúžw!­(”²=ô¾*"ƒ‘?Œ·Ri/$úR)¤ 4y΄d9Ú{/U2¿¼QÞ¯6û7Ò\ˆ?æí ~DâGàÇV Ç©EA¯BÕizÖ¿òßø¸­‰';üÍC¨­írÁ5‚£Ÿ|›}ÊÝjÕ·çnw$Œf ÍCøíxÈ¡ü_@éBU«°¯@ûipª2Ž*ڱλV[÷hÎWntðêŽq2ÒR88êáÈ[x<•¢Q¯QxʺM[©/~n=8ºÕ5ïÊĽœàÇCJ‡ZÎÒI\ˠθ¼”×®3·¡Ý­ þÛ‘?6ÒddĨ@pnõÛ¥ ¼t§ÛŽH£¹%”+ˆÖm”€{pUe9Ô§?…Ö.æàË):Œ«µ|Ë]Ì!gI¨ò†ŸŸ—¢Œ¼”/‚Opžg©0‡—&’>¿¼FÔÔ²—ÿ-ôüT÷OçûÈ*íUzæw÷*®isðc ”òø)¸þnLä¿à¥‹éLí‡üq•H|YÍ%8i¢Ê¯2ÓBgÓ%ÖwÛ–àó=ªÊG¸ ÃGð»Ë%7ʯÕõ–êjm#‡gJÊ~P-)€ÚG¯vãê” 5ó{¼ÍÆ•Ðs×àËr4>ÏKä´tGêÇb5óNzórêô–Hò·íDyœ4ÒðàÇHðã€Æð.êßú©WLUïë dœý‡Óro~Æ‘D3Û²öõ“ÂóÎ^“¨¼^g^Mé(ù½ÔºJ;è.92Å÷Vƒ%[õ3Ý(iõsÝÇ×õ#™L±˜¹)ÅEGÓB¬ßÞÜÔ³ ¡m‘#Ð))ëMEÒèƒßm…+ÑS»xu¼hÞUdšQòX h?7fˆSêw g-¸þî,ŒÅðŽÀ)P õ´ç½vÒïTÆÿÇQœänLxÀ)¨SÔ !E¤Ž ÄšÊÔ†ÀA>F«ÞA™«©[ðíÈ|Üæ{ëmlÿhì´6Åé¥ä•Tô¸ ÿV 2¡ç $wÏÛbàx"žÏ>%ŽQuÊ Ée ï’¦ZAçi{½Ž2~”¸Ðøò`Ü>Ëe8‰öžæìy£Äî%Û¹ì)•ãÝ8ß„ü± –ÅR–Ó˯ÈÏÁ£ Z=H¸B²Û¢E¦ þûîÐOë†zr6Ý~Ã5 ÷»‘±j ½]áÕrJfËBî*Ot¶¦Ôpz\7É|n!õ.³ à^<—’_bÉlîk_ûÖ¯#Îú g`¸5®n#ôÙ"Â:Lÿ–|rU¦éýV êv¬¿‹ ~ Q+7ág&qRd¥X`úµëïþì$1ÇàòŒ´(þÌ Ø_¥*¢×JûIbÝ¢I¼ëzLc{Ùô’?jF€lmQ£è­þý«º8ÃÌàGèl]äóô'¨÷78ú ¦Êvâ?®_݉áFÇP1äþ””<ꄯÐ4ƒ:.‘Þ‰’nÑ:èý(Ôñm·EÌ»Öiát… ¼ ]ØnœÇW}|5Gb‰‰ÑYÄž3FV!”á=ä¯v9ÌŠ€ïvï\ÿêAà±»JüèÑ?#µM…BÝ}g» ù#"ÿÎ|⯗²1¸~b|m8kB•7Âm Õiç?òC\Ù]T”UŠJZ™~Ü” r”t @äïÆó%¨àoöo“"Ô§uÿ¶¾b%ã©pÚgÐJQ‘‰¾–¤²•wJ-­ã´»^Ãgµ/e-òG&¾À Óc9•ÿÄÏùëÛ»þ\’uhßJÈG?H~’µR.¸~û½¬³t¶”Ã(ï9~$á!üùc-Ÿ[š~o”÷›M RßD®Ïå8*ßæ…² œ\ÍÝÄzc¡x õ’Γ¹ÜV è ð¥·A‚zÁŸK8üT—ï&‡L±¹xðžáœõJ!Q¯€æEª™3-ªÕô„Õ_äÔ×Þ ç.¸Iü‰œâ8ü%?ñ4¹7ø±½ÿ*úU|—.Í4àUÑáMé—žÿÆß'^Q½/×QÓ‡Èy‘àó#\“•ÈB¬Ÿx:”J_c¿;òqGê ß‚+ÀÝ[BÚLãx[´žnBþX+MÏóYÍ#ƒ):‡ãÚðwYy3m ±ÿG+ÓÊ&§.Ôc72]’úÞ*¿ÈÚIÏ!½ÕöºxþWMt´\Ò$M›J\Ý 7wWñ'ôùó?áÇ¥@§`ˆûWþñîÃûŽGàG S_©Ü*Áù»EܟݪàÇ$äÛp[ \yôü\ôÒ~n2›gÎg¿™e2Ì=·”[áçï…º½´ 1ŠëÓ[‚ò9—ÝD¸f=lMÛÈŽCÆ [ò‹tÐn¤3ðÍÍ J÷‘~¢"èc‹ Îçi>U£A~ô Óûç¹Ír³É6¡(P¨´„ÓTŠ‹Þ^Ž÷’ß[º÷]cÞËxN hó5›ã¯!O¢âp;ñ¨;m…JÇÃ5ߥe ÝXèsCZJÞ>¢˜¾ðà­ügŸAíkÑ\¸êaÐÔ¾\™·ãŒ!w=€ÛÜ¿v®óO³–?v’º1ü ©*Æç§¦D í0ºMãøWd6w?N!I\ƒ·CCA¦4ÓæzËûG-§­Éê+ òEE¤«KðaMQÞCŠÃ³©‚}i"Ëv0ôhíZŒÒ¾Fþ(MoöÎççbæÚQÈ£¸=g®ÅO¥´ü37C6ñnjÊá¡Ö‹8=§‚߃vÜ~$à±f×[ùcˆÛÅöAzNÌÛ¡âÍ‘&§Ñ1ÊÃᤤ|%ó¥8¼tf9ε%‹lƒÚ·{’±¿‹Å{ù­ûWIÜÛöÇàó©|ÏÁYDä•ÈþàÕàÇ÷:EÛç_ÕFþ˜ï‘<º½Çià"æ:ÛBå›¶9¸zƒªð>. ¾Å”>²R"a´‡ã½‚ü±I+à|«IYÙ‚ð5ægH)Kù<~¯ªéûFy#l”rþ©:øç1WöÊYÌó5±&Ó#º¿ÝRòêm¾Ìݹ#A6Ë.¨Ò%ÄXIåœr~)³ 7´ÁÕí@18‹Ü”þúT2ʉàûƒ?"l?†ÉKi žÜç#Üù-©\çùs¾`¿ª[o'¾ÙIßòmr8ª¶m©#O’É«£¿IT(tBï!(’ÂË£×åªÆÔ rTã*÷å{(s¥³ílåWõ;~dFïèB/©7§¶©¿äòRé"í¢»ä¹´DÉ{µ…îGê: Ù4½.çGšL&`TGáZ”œÒÀ¬ ±ÿGç`þè?Z™ Òi™ì-ÔñÈƒÉ’ŽŽ?z­=×{©½t¬ÜBy®v”4 ßE·ƒ³4 '²¾{ØýÿzGþÈñªe^êÿëûWÛnbSÕÔ6)‚ë'Ž ¤ ®ž˜Ëæ„ûÀõwç2˜ßln(MvŠJ‰LJã¹[!¦¥m`Zšn÷ûªçb3ŠôÄV‡&µ¢ÅàGSgë€ãm![Æ?Â6ól²sʼnkÿ¢ýÐâŸpoQ*®ï¯Æi ¾1¾¤5 ·1jr„¡ÄxÁûWÕ‘AÒ|½ÄŸCƒ» çæ-pý÷àƒ#ƒIÝ©JöJàDq/Ù¬ð§õx•¢üÁ§Ô+0²ýç‘~‰Ëü½6@Ó´Óô~O »)<òG_ºN³è+dº4…>†¢öƒÚ•ƒÊn¦Ý`æ5ÚEíB5‘?þ)ÁÆpÒ¸Q¡ï A¸,4ˆ㼺‚Gáâ†",¢Dâ5HJÁ»áh…ßAç?lå·V3÷zN{S ÿ?êPü¸Jmðg;\G€cÌyÞÈÑ þ[/âs¾¥HH³uß¹ÿàðã; tĽà<ð*j Ê~Ê5¹òÁ6>B-A‚}<™óAë÷£=פGãæ°³9TycÜú¶+Fv:žÅ¾{€„µW ¹%¾L“<ÈyeEÖq ð#ï†B_ñ¦Øã&ôÎ11Ü3ÁûW)à‰ïð)>Š«²Þ=92Ö ©©?èoP¯'H&? “Ì䪠ÜnÞÑd8ܸî+dy­‘gÒ÷¨ŒD<‰ìƒëw5Äjæ#/Í_”õ¾BÑ$tº&7—rzJkè rDón v_yÅõ¼Ü@MÈIÎ)‘hüý£6PVÛÚV ‘?štTî`+õå¶µ‘Ô^Ž´pU.K:´Þz­«?þ”š[ƒŸËhІüQƒb¡ÏN¤á!òGkÓÚ~Ž«[>4’ÂàÇé$©´‚nÔZšÏ«‚ôðÚê89§Ù5ž6 zùã–mA)è¼aŒ;.þ߇߄ÈÏ?ýë÷ϯ;¿¸iM9SÑ$øŸü‘É­é–uó»À“~Øûç‹)̨`EJEŠh’™Î\gr^ ÓÆœGþ(ñAõœcêQoúÛV¦yþ\X”ÜÌ9áF„ÞÔ°%‘@†Ø+nØ’×ç¼Ãv ”~xƒG­MßP);Ž–À‹÷…Î7?Ø6,k§1£à|K@3÷Áá/ ¢‘ªW ‰„àÇýý?Šá³ª„áùy$'*¥DþȈrÊÁ9•-ÕDmOÒWA[ ¸3ð·Ý ßei…úž¾t[ƒliüýPü™H-³1¶‡Bg‚oÞ~n étì\½,j‡þcþøÌùÌ}j/€C™á‡ ´ÐüQÐÕ‘Ü,Ÿ™ý™ÑþÛ=@áÞH=m)ó®çHþ¦R`8§´­þ#´á>Eçñ”ÝÞ6÷Ù¿3ô\±¿ÈX*IQ(F}½wðãx€pz’Aúèœ5s %…rÖçV¼ŽWCuž÷, gìßk\ˆœxþ¦^æ„3/Ty]ÜÖàGEŠÏsù®„Ã@à¯ù%“2ü8#Ùä—’ ÐØÂøÿ9QÛÖ¼¼ëmï›Ð»€Æt/Øïpž±Á˜Ã|ˆ·!¯.æ$ø± ü(—ú“Þ@Ú)'±d2´7 òÉøû¾œšÒÐgu¨ù»m8‰;Tœ)“´•©’#€}õ´ÎÐÚù¡†”GƩˉàN³••È^멱éùFy£l>.Ïgq s&¾À`‡ /Èe”õ©F€ªÎ•QÜT2!l…Wèo‹S‹+óypˆù»11Â~)ýýjjð:ŒÑ”U‹¿ÿy&9"3µ³Ñ|ºgÜAͯÍõ&ÒÛO`{¹ÈI‘•öÚ×ë%@þXƒQz}#2øñ2ÒH-Ûñ›„ô–Föî‚&q¼Ìzþ>¦®’pôñÇ~ö?ZÙ×wz79kL*¸‘Æð,ux¾íKä{//hÖPïÈC´ßr¤·zh¿„ºYòëWº‹k|éŠtŽË¢fâ4û?f:L+Hà1ZcÐ-iíMÖÒSiN]‹’ŠxMƒüh¥=dŸ¦Ñ¨ZQ2êYšLÇ‘¦2riŽnÿ‹ýk¯…ȃÿvÿó‡Î 7§©a*v«£”ÉüàG·Œ;ĉì\ú Ò–ꘅ¶4®RjºnŸ¸_™hîDg—é`‹šff¥û½–g ¯ù¦/®ÏU[ú^†&B¯«;»ÁæPšt¶°a¸ïzJûö1ݹîıK‘<¶AaúÁ‡âÊ”ƒÛµPÂÈ 9¨õ²Ñí¯6,DÊkf T£S(o&­²?÷+~IßÃå†Gïõw€Ê ~d¢nïåGx'e¤6-?n– A¾ žÜúºU•FPvîŽ2ÚCéVC_ð^œyfN-úîo2(rŽj™­ÎÚPå p»[ÿŽãÇÈ•¸ƒ½üÖþƒ‰Ýë¶,µÏa›á‰ïÑþJbÊfÞ(e¡„#ðuÿç[‰?Ÿüð×/¹í¿3_îœ|£ÄÎn4Z~”áµøéˆ8·¦2^sb鬣õ¡þª»µ¼ŒçÒàÇAdŠ‘N#MCöY fv}£¼%¶rÙiŒ€Ê    —Åò« æúrÊšžþ„N•ŸñßõXÙ/ت8©D“<Ô¾Þ}'sÇYEé9?§†¼‚ÚSDþLÎá,J¤šßÁÊ¢úµúåv•hšô\ ~üÌcÐ"GØr*>e_ßQüÅIgüìwcÌƈmÂÁÜ­þ®¿òRŽjï¶îÓ§šVoÈut­\•ˆH\øJýƒ¾´ýߨÿã‚IQY%uãuvõ“þ^VŽ6{(d¶nÓeÈG5š®ç÷i|[­´ó].I©¤Å!ÖoïlªÚXµñÿ¢Ð©ëõÓQ2Pr!kìЮZÌëê±÷™×‰ðø‘D JB݉‘¼ühÕ–cÿ'÷¯NJ„ر6¢ÓÆ Ë;Óï: Îd7©©mr|pF ¶[ôÈåŽv¢ ?Îj›é¶0z~*Zl/ºq ¹‹œç¦-`:š“nq7ÍÕs™‡ûÈ–¢žô·é(ŸsÄÍ,’Êæ² ì»5Œó¯69œXv ­Dzm½:J‰¹<å¢:v;†Nu·îFµmJÛÝ>CyõMo³Ì¶¤»´”¶#)Ÿô×f…»ßJƒOdè{xñÔò½ü°Nu´Ø>[^'ûsd ‚}à4/Q>‘ÿ(AC¡ehA¨·ˆß>N¸Sè)UB8 7žÆA¥7Ó·P±ÁÜÚ4Š»ùã$”ãwÐ ›í÷ë_= $ug4i-ý†ï„ІátVpw´ä|(”Ã{ÄÎA™»ï]¦ ¶¼yñŽÒÆ8]L\…Ïàå~¤ãhû–ø³h—ˆ'Ó ð#±¬å†\%®F:šAY06ÓQ*ñ~œ $4«ìzHCñ; 9 χ  Õù™q|Ï@td7?¾Ù DÞÀcÊiÖ¾µþn'ðãgä±Ïx&òBi~Úì ¼ð³$¾L–2zTr¡´â’Tæï†Žæ}àGC{Ç„î‹IÜÇàGøŠ~È3Çy Y^Ä%üýøxhTÀ×R=ƒÌñ£$C‰é874ú ßý"Pfšãl£Ä–n8´ÄjôŠ’ø©2#IY™!Ï)½ôCþ¸…ïùZTær3)\¿Ý_ÉåßÅùìE«W µ~âD[ôߪü.€yÿ*Óeˆ´ä6ò·@þx ~ô‘¶ÜÙë|ð-ÿ<„ûR^ Óµ·¯wÌŠíÜt6Rj.ˆüQŸ×c4ýMiäºTÖ›’_ŽË<­ bdЃÚI{‰G¯®“ø(ê7ŠÃÉqŽÊŸóI;æUy½ÏÍe´œAþ6rÙ^¤æ<¹à¤6Ði¢zCïê%½©®— üx¤F7È ϱ@¸;(u"}j‡Ùâ¯Îw‹³'øþ`ð¨L‘ ^Z¢+ðûé~=¡›´1þ]ÇóÇ4¾¤ñ¤!EBò#c”ãc´ö?68?™ž6|0?gÇX!}½žHF¥®Þ•ØÞýÞkæ©WÈ«¡åž~®iZpéÆÎ^Û®âUeφރæÿâ8Èå$}Õ2œnÿúýóG#ÎïnSÏ|g"ºþê8Ó•܆n^7§;Üñ>pþîª@=3#&/Üü9ë˜,&¾;Û¹f~²õMW³×-ñûG­3ãégz`kAå ‘ÿd>½³×MvW²el;;Åž ãú‰«œ]N|»ú± š×ºšŒkÀ·BY/Aûóá“zÛ/l?û$ å54=ÌvÛ0xf-Ffxøå‘”ŸP>¸ÌX|‚JS|wDë†üQ’Ñy[„âpEôü’ ÇwúzN¾­w‚k¥Aþ¨H«BíbýöqÙ5Cv{ŒM³ÐËWÂG/å ÜŸ¿…Ê^¦Ý ß9$9È9¥lçŸÚQœôîS{?87~:òG'pìMd¸íPž{tˆÎ#MÌášÓÞ”-ñÖn|þÑßéaŠ@¯@Ùë!]]¦H[ ɃSžFi,Û„²•ëƒÛiOpµýläQbP³ô;øq8Ϭµ“èÆ-8-‹P^ŠÍ½À“¼„ÏRG~Î[á¿srJÞM;i ùoOZ®fV¾õü¼“ÛÏ2ñö÷d´Ôy*Â$Uä™)?rÊQÐ$·,Çÿ÷8ÒRÞϵy8øzžxî}[×ñ3ÁgA™¬Èô²†WßjOm¦§ ÇUå Yˆ,?uˆŸ ÄB]â õþ ‡¶Zƒ¤—‡wጠ{ÒXæJþBÚkg= /=O«ËF®(%d;—âD<€/ò5žË‡à’š†zÿc¢­½?‰ëQ®}úÈ2*Ó¹NpýÄo4’Ó!2‘›K½ÇËÑ{ò8ä­Dò}égûzÅáÈÎ]g ¥â4Hmõpõº¢•“‚þš“õäŠ,ÕŸ´ –Cbh¬cÄѲZCŸŸOä$Ètá9°¯ßÈéã$2»ékôþ W=¯,wƒ®Ÿ@ó%’^ÑðÞ)}¢1¼tz/øþù9"Q8Øqùs%±£CÌ¿Zê1Ù¡+ ×õ@þhM­%“—SÇéoz_"ê:$·)þÛ*OIq|Ê2Þ¡ž &à‚Ї|¼ƒþxÅiNoÓÎFÄÈj„1ù m–ÞTgŠdÖ Ú<-çýìÅ÷ò t—3šY?Ö/%›^¦…tØÀo=FŠ4ÿÉú%{Þà‡qþýû‘-Î47®©ir™(Áù»³ÝoÝïñý‡“èç_m 43“­ÿžrV:dI ~¬w6˜ú¶–in¸iÝ,TÏ f|Ì}[ ˜—¦Ùì”ßÙäªKUma[ÅN?Âvÿj•sØ oá^Û@áNPF.G¹)Õ»FàØmi°Mo»Ù°”˜Í 5smcz•[Üÿü „‡>O¹ ôQx'úT,jÅ/†ý£¬“º|ÎfE •y’ÿDªÙ¹æ0êy9¸~â:Ï¡ÌVlù‹›B›÷£~»Ð¦Ù)%Å(­øÎõ¯"˜ v œ\wþ‘Ss<žIMÑæiá÷q(Ónªƒôà¯Q•ÜçÙÐÒÀ´©p9ø>g—Èô*òÇ~ð#£,Â'Dç,È#Á§öÜÎ^0QCµa"÷–-‡³û?sdØ °”ÓK,YÅ[À¬È ]Õ'K5‰‹L’‹¿âí|ކ‘)ã[ó¯Z¸l ¸ŠƒHXǸGAþ¨Ç›’“Jk¨wt’þ©A§*RM®"¡øÏ?®#­ä£¸:-BÍÜaópz¾€s¬ Õ.ü*#¥‡ ÂÞ?2)뤅_g êM£ZuX˜L¬,á!ÞŒâ˜ýrAˆ§ÉƒœÏÌ:ʧÐû_ð}»ú=Râè_ÚB7Ê#Ù«—¡õ42øqUnt·å€$D9‘jbùkÙ½^/r‡³Ê$‚c,wSÿ¸o-½$hµEúLžÉNÝ¥cQ§šP—K-ä5¼M¿’Ap'S)ôýþ^Õo¬ŸXÍ’?z(9¾Œ–ðèL-U4™Fðæk¯£÷‘—Ì« -åŠfчè5©õ,FÒ!Ûžj’ û}ñŸ<ÿø+Ýy=óú^ þ¿~~~/°Ó™ìÆ0¥LóÌñù1)1¸~Iæàü««TÚÎ@k3ÕGkç¡ö’ÅDpç8kMkð£¥Yíæwò6Èëã‚YK}莭K3qåûØŒ”ÏYèF†2V=jØiv“z̾ûXåìw>±þÛr;г‡Bý2òw”– ÛiÁYNã¡ó?Sgû ø–÷‹˜‘fžm@.o®àî@ïú!Ü¢ÂìÏ﹄ìÎ~ • _ÞËÇ) –¶I‘×›C³ŠQb(áx¥”| zë¯[¥Mƒ;^nº¿§†7Ý‘ÿqoeÇum_•tÎQ9æ$昙)ffffffvÌŒ1333333ÇÌÌðíºóÿ†vûµ=kÍLõJœ¸»uU*i?{W•$(tðæ~#T¿-B*šŽ±Õ½v ]B;,?ÎÐvd‰†f„ lµ\ï0*†#ôdÈ@qQb<òÖüéCçh7Æ(˜í ɧé)RÜb fmDöYj*èÀVd¤êRпˆpöõÀ™[pçUàÞ ¾ƒéƒ~¢ƒ@ý¼·Iã¬ë™(¥D[T„¯|ñô*34]û“ò Œæ‰P~\ƒ{Bï¶S%¨ÿÞÀðý“`ÛläÍwÈ‹ ôµ:@yýœ¦3U¥XÈ'ýO”§€a¹9´”•D²DªÚÇR\.@]sɤ¤ \Ùc:?á!<ÂÜøjǬ Î=S„ŒÈsgðQèë,N䟾׿þî ;Ξå}àGLYĹáÁòc6Ò‹“â¬ç©£_”XÃ!´Ä´Z)d«lùwi#Ë%G“ ðÑ>w‚Ýb‹È,è}i¹‰ŸÇ#=›Îƒ›}<9›n2q1ö2yE$(sƒ³$C¹…<³}¡¤/å *}G²Y#›‘Zñr)ƒ„?f˜O»ÆDQÔ$¿ÈüœZò&ôÖ[”:ßÒ¾—RrS–ÛN¶¬Mdwƒ™c¡×Åm]{Œïq䘨kDœûþÏö?濫ëËpà1"ËU3#¶Š$°·QÎ" aOÃãß²7lX7µ=/×mX{E®Êo`z'\ñ<›B›.¦åÇó=¬NèØÈ%Ñç‡ñÓ‰ÊI&7”m×X…:î@2Úlk¢~!‘"’Ù„v9_µá¤ç¿fu¡÷gÇõ;ÿ?:ù×Ol‡+’"Ð9iêN?úI=Ý>ÁÕ¨ãöt]7³[Ŷ›6±½&ÁûŇq6MEkòï& ‡ùo}ªOï ¾ôµû·ùBPÓ(º‚΢Ã;Õü÷¯Š8%œÈ•ùÉ÷w÷úë)¦$´>»ýÝhú£vêö¦î­O:)YäÓqI/„R=3Íi5ta™IO5Ô¨Y3êiª˜úfªÙóƒùc‡:£Ò™t êÑž&Àfàj”–J›UÈ“GÉ[‰¼õ5qÑç~d-ãâz1òG-Ò|þÈÛ—ô ¢°|—¼ÕÑ?À÷W¤ß DÞª¹ÿÀú%ÞܼË&%%âZà‡w·õé%¾„zz»t0¯‚ÊÎF]›ÐÖ﾿{Ë ïF¡ê«À±1Hís)!áIpyx´~=Úô!ør¦Q33D}ky­²:¿“³ü³z&!©÷ïÃ~&rojH#‘ ]ïÒcZˆ¼Ð4Å+?{Ž4BuÐåè:´`&®Ã üWKP¶1 y½Ô7õ[ÞÁu¡þgi”r"¥Ã祤æT<~œô…ÑkÍLÿª íp^ñüûN¤xþý«á\wSi*Wx&t2_¹vãŒCp nüpý’vNwШ4Tk”­'tc<Î3û¤òÁB©l_—¹.”`5øš³ó)øñ·àÕsæ«õ¯9Ï0‘7 ãȲàG ‰*Gy3A{ïËíD†âÎ¥Œh¯%È€K?&)}i)üÞ\ŸKPÚ¹4“¦¢= /2%}ÿªj¨+Ð{xúåHwè8òT}”ò}.ãsýŽ×úï_@ÍW"Íd¢”Ÿê #}]Úuëf,ZgVŽÄkjƃN­A.HF{¨3‘ÝÈ©9)ŸÁµÞ.…ÃOŽÑ»UÀ¹¿œ–¦«½ÜÝ,ÒŠ§‹”—?pI‰"³à,ïJäzP‚U\ÖӾŠ™¡÷cÌ-p-„ˆÎmSiíOÇ!å!h î=£$–=àGy›Ï¶}ìS°ª²D?r"#Ýæ× þ'%§5žŸwu4Úk/…äò|Ÿ}BKC™/E9¹ô±=¡¦c‘?*Éè{Z9ËAÔÙ Û[^Uß@õ /ÊëeŠ"ÅxoQ”D~ rO”92T&s{yh§Áƒÿf¯Ú¹2<ŠeoƒY}ÑÎËPÇŒFæòhã~,/zˆüƒóñªË‹Ñ{§“RÛþ‚]“ Ia›Ý^³Þ.áo‘gÊÙý ’·~{9ŽOOÎͧ7ª‡ªˆz/¥Fš9A!åƒ*å“ÐàO+;[îÉ Ô½âÏ A޳–ìY9$¡Ñ‚‘?zò4Jm›ÎëwLÑ  $¥é,⣦U”n»À^°>|í°{ì:[¹&´]/E‘fòjû»ôÀ¨Ö\}? ïƒwûÿËÛ©é^&”ÿÌR…ö!ÍÌAþ/eAÌîR[ÕìZ·òG/Ô/´=*á$²½åí¯fúP%ú =(ª9ø°û—} Õ§ÙYJUù·çŸûÔ!5ù£¸Î§CûW™çËâuÒ;iêwuó§ ;æk®çš¼àq.ú…âèÔ:™³DmÔ-LSÝYotr99~ªž{‘?¦À‰wÁ5oDóMY*£F` µ¢–¦Œ©mfþðúWÕI•Ö B±ºAPz.Ï_ÎL„’Þ‡¯®M½h¼‰jZ~¶&÷üz’^nªÁù ðòï ôƒÐ#¼ùƒ‹ g/0ÎC  Eíó]~ÄVÙ(2É)&òÇd* ×ýÆÔA¹—©ß‚ê ”± œõZ*KË¿ûüÃèH Þ,{Ðóè4ÔYJÉyÜ^/¨ÔJøþ½Ðç‹Pð]4­9õ›ë_i•ÍIÅŽÖʉ’STê ’Ý9z¢NK¡R†ùׂŸ® !ïý³E¦h ë_õTMuQzF™x¸q‘þ¡îTµ{–MáÌýŒ½' åÁ]`ÛX|¦öïúØþçgÀYH ‘y (–~|«þy\n…v¬É£‘8êÂ-ŸæÉ ‹÷þÕ äÏÈG¡y„>ýÕú%mœ¦¦3jR^g܉'¢¥²#ä•2‰á½“#\J’Š·KbÎÍ—x"¿„ßfè€+ÿw.›âÔ*8<ºŒ zCbËfÞ Ml;É®†.ŸçâÈ$³À¸l|Žoâóúr ŠMkÕ‘Ï?nÁ³xû×æç‹œ™G¶¨)S$“6v¼}kG‚!ÕAŽRÈû¹*Ç‚gxÍïx;òÜRê¡»}QÞp“ß[1W®42Ÿ5'Ë*é&À³çvMgßÊ;µm&qQÏmè?]y1ü}* Š”3õ³g…QÕ#å½É“Qœi#äÑ(rIØ6¯ì•åÈUm»Üö¶ãå¦dµEía>ˆÜ¸ü8Ñ9#Ÿ4 >Ö­øq‰Ò±·BB(ylVa$T–vö®­o—"϶ڽ`Ú8nã¬Uö€œ–ˆé1Â(Ljº™OošìV;t4¸´Bèu½øŒiOU%‹›ÓNµ›íc‰cÏ‚k+‘þ±Aí!ÉoãØ |Ðæ”¶ÕÀkf¦è|Î|äÇ&ÕD72oLOŒôŒ”NH5w¬)ýñ»ï%…»Êfw‡»>·´[É•»6³½&‘›þ'ºhÃcÇBÊNnŽ>ìþ£Ç^_øÏÇ»ªöoÏÿÐê„íDÕån+ïm·ù¾œN|'ޓՙ~üÜóóC¾¾på…ÀÖôt×Ütb껪¯Z¦k˜´º®^ä¤uÛâÛG0(þz€1½“ÊÐ`“‡ªª5ÎKèv5“YnÖ9Ï~¨¤uj³Jj¼õ»Á‹O¡Ã”‚sQ\(çèèjOñO;æùÖJæŸE§¦šz ÅV¨üJÿÊí}Ñ#žSFŒìãäí³;,øþû»aT%c—IJQЧ&Àëd¢—¦*­BÖÎΧáçyT ê=^|’®÷>uF"4ôæ^‚•¿Ãñ”÷ž|óxÁýà§"Ѭ#oSþõ¯:švê[÷C©ÔN œÑ# ’Lr‘Ù½™%“¹å¡ÜŒ½§ñÏ¡´«ñ‰ƒh#Îb¹ièþƒ£U_ݼNÃÓ¼]ã›S9ô—à]3z¡—k–\Ú|Ô¿Câh|f0´Gjèú»qõjŒE†>7ç”ì=U© æÄ9*sGœïEªÆoøø‡¡Ì³`Ò°*×ЗÕîåõpÚ˜!àYZÞ ¯E튾‘‘ßs1ù]&HM¨T%YÃÕ‘?¼ÙâÁ á÷¹?•™·:à( á¼6UˆÒ"½evâ:nàDò5:…ÄP ÿ”ÝÆ»¸¢(™ -OÖ]žvç8”’¦ªc_”ØØyŒò–Ðmä…c\‚_Ò.'‹$8'“aÈAÝàGÙÊÕ$¿œâ¢—§r(ùUv‹©k€•ÓF›Tœ‹ÏcT³]ÞÏ e®ŒÖÜK"»Ëlld‡ãvŠœFþHiσìý¹ X|™“H$° æáDz~S·Õr¤ÈdH:ÍxÕ@f''À«’PîÈòc…ê­›pÔ¤ÌFÑh…Ôu;ØÁh=¶%Ž;ÒÆv;¸m·±/opæÇá2Ù{4›ÁóÄBžiÁñ>{âóß;û’}>ÞU=õsºü顎ª¥NÝLgÒï”7;|¦/·ω­_«"¨«?UÚF_/½À”ÇNMgL\¿QÝÔ:]Þä×5õz'¦ÿ§êy\¯‚<5í0ê ÐNä)HK/0†ª›ÂÈcÍç[÷í¿áú¢: ¼¾NO3ˆJbd¯„Ž·fÍ#‘Xó3KQ‰'S¥[î¾’ü ®ÿŸƒ]OѲ=Ís+ÀkçªÉ _’ßÍ7x rälð#„œäýÒüeØÓ`J .ükïàgSzpt¨Òµç‹›:Oá¶ µJóaÎÄA9"8ñ·G’1PÂßုØò€«Jiù5ŒÅc9¬¯Yïݳ¿õÔ/Ê›` rxžƒh¥zHS›xšô’RžûK0w cßÈ6»Vnswä…¼¬lÁKø§C™ëxƒù¤;áÕ Õ|Ìê¶åýTî$¾Üªö&~ö¸L=ÒÚ’v­ín‰Ø‚¶¸½êw!è÷€Ãs4>eÆ~¬Û@W¯ñ¿¿{œ¢ƒè:—–º F;QbÚ]öº=f#º Ýpöwl4»\ Z„Û³–‰Èé?º|1ÿ#üNNð£1¯D.¬/Ü´v‚mdJ4[Þ¶éí0{ZÖKrÛÌN?¢€A9$—B?,ÎûèôgÏÏ›ê&&”??g]6IdŽÎ2DÈ ‰í–´ Ü&îÖm ?‹/H9ÉcŸ#¥Ÿ6©4Úª'úŸÜ¿Úâûó³÷õµªýo??_>×±º©N¯Ãø÷šíËê¤trùùñûO®¿»Ó×Y2EÑ6YèžI¬­ê Tku}SO7Ô;œhNªŸ|þ1“ÆÓ8ñMT„6™"4C wî›:TÉä6¥ÍHsÁùÖ¾Ýj¦þ?¼gݨ#M…Ö¥à èKÍbhÊ3øzíL|ðãG—NÒ£MI8ßíþû,¿ñhgôö¼Ð°`Ðüòðé5 ÷åiÞwùJ¥@]nšÈ”[ñ òž ùàʽ;L‰à÷Ñc¤œjàÞ"jHË<ýú8æ´EþBý‘?æCñÇPcòÞÍï _Ö•Ëð2º 5Yà÷2Ek3SÝýVaªˆ޼0R!Ã¥è¨Y[òîëŒGRªAý¹tl?]ÃßLÄ' §ÝÈkMá@÷ì‚üÑŒî!©-@)WQƒ68£ÊtƒþàÁôJoÖwù$t¯|’NÐäi¬• „Ç|!õ48S†'þ‹Ss^ ï2Ü?ß»5÷…v~ òüŠÏòð#òÇÚJÛÉ…VvÐgÕÉåup:Ã6@æÛÈW¡lÁp-nøç•¤àG˶¼|É%«¹ ø±—' ŸtãþÈŸÜVL^Ð6ÏâÇüwQ ¨eF‰)Gy—ô„š.…¿Ê'hÂÊ|Î Æù“š’Òî÷¯*!T£pÅy7Î(G“Š2Cb€íhÙkÏÛ:rŸóK^9‚ÆåIø^0ÐÎÛr¾žñå|“‡ó£Ï¦¬\– R×%c¤!×оHÖµ{ÀçÜYòÚË`eˆ¼ð’Khä=Ÿ­ßù£'ÆA.ôýú<îàe‘§ÒÜ>’TrHVزp÷írÛî‘çpüåí ¾ˆD3ùãÈÿ7ÿcÚǺMðÏ?OÍïè4¹cöR]N Íì[ÈNƒÞ¯·÷íeÕM\‘S61ôù¡0ÇG÷î_-§¦ígë—lV›uDŒ²"àQ[> M)-™Ü xE$¤ àÙh)“E Êè|U{ŠØÒ›Bs.‡~X˜ÓüX£ªëÆ{—½)å 0´if¥%}å¾³ÑÝ*6§;ÌfÓº]ÀË›6Xœ^²ÙûP´CÈÌy)—æœÿ“ýÏ/|1ÿã±ï¯›AÔVµÐI¨Ûë:¢S¥Lòr*⫤3S…Q~ª´Í¾–àG~ÊMé¢è˜ú½ê§vév¦‰î¥ÿq*9ªž;ÀôÚÔ sP©&;õSÛ÷¦!’B)SÇLúáýW«Ë*žÙîß-° M€ÿÎÄ%Ñ'š˜™pöw@”òP²&®é`bÿ@‰Åô½ÖÔò”*¿ ÷:õBb¿‹‘¸Žå|p”Ùyyꬿ›„âÓ“ι8OF,@L=ÿ½úø|Ô{Õ¨u^ô´AüN Ÿ;íáÉ»ÐßÐçÅô›ÿY”£ªT¯0Ï„2oDé÷ñýCíÍzõ­§>¡T!'>òÇ"¤€TÐó¸DÔ-x•&çy\ ©ëyó¼–€/£=Ñ\ñÀîˆuV‘?Þe›qE¯ƒÀɆ8?—»Ó[½EßâµàGqðxZÖ{~îí_Û P~œðY=ÒŒ?ÆâÌ2‚ËÑîHJP¹zH1ƒøÕƒêí?²!œÇuß„¯`àGg}á+~ôvÚ!”G›¯çÛp‡Ax’ÿówþ=ËçJE{[rÈN.)YàèËÁëzûñÏw^`Ä\?1˜óÚä†OËSà‰ŸðaŠÂË8½ü!{yt‚N²óí^ä£FÐø1œç}šªd§FKR‡¾(±¾óÒxóÿ¡B|„óò¯JjÊXù¥wƒ¯bç Ïä{œüØÎ5¡¦ø-ø¶žïÐtš§ÿþ¢¼~¦¥±Tüuy’ù2HZrE!w±kCØmðõ/ø/IcÏ€Y³‘?ñ]ƒúÎâmŸ½•L]T É[ñ>ÕĨðv0K-×¥¦½óÝ!‹m [Ô–°«íßv-z^ãÜå%—3×眙û±nTbí½}xzÿšÿ1;)7g FF;AÂÚ-ö¹=i£ùùqQÛ,PieÿààÜI¯/?F˜Oó]Ö«3:(øQ‚ ~Ç à…%µ›ÙNµ5ñûØÂv,x”ÍŽAš9%¿áoûóm[BR$Íù(Îíýó‘U'ÝÛ„¤ÎááѶHNwºí%ãä±$³YÝ6£ÛÅ]n»­ìR$äÈaé%}¸nºã7BrCÎg>ƒûoÞú‰Ÿf ºªþ¿ýüãƒo…ZæDÓMtvÚ©¬¼õ¯Ò9ù˜Ngº"uô§JÛêk §›ràG^za"èßupg¬ÿó*ºŽ>èdw&üÿûX©Qozn*ÐQø†…&'õQ+œWàIWSÄT0ãÌå\?q‹Ú­š ÇJ\ñtŒRqu(b/3Nü 2Ieª‹R#™®?Ä<º^fŠaŒ,‚/‡úݦQœŸ‚K; ÝO¨6§’ÔÊýÀüW¥§dtÍ$ è\ Î<¾~!oÕÈ#(ïÆ÷;Ô»:T{´vöwŸŸŸvÚÐCꉯË4=ßËó)9÷€¢¶…ëYŠ1´ÅÿÞÀaü×@ji¦)ç›ós8)œxðc¤ÿþUüyŽ&‚tyh(Wæ7(ë´y*¾úCõ_ÓSú«ÝÀ½c´j®ë÷”hÆÝ Ô¯15§öÈW¨‘Y£/ùùÑz·$†–ˆ‚OièüÁþ¨z’éxù##ÇdoÍ©›Gƒj-àúïP)¾G¿ž r4´änô¤*3RŸúêùG+§+Fvä…m`Bf’ŸpAùM&HQ«l9 wžü¨ÈaÁkøì—Èu3ÍCðͽ7ê‘)„~•)à-?‚³ˆÎó8‹ü*»ù´ô³¥ìH»Òžß*IèqF|]­‚Ë8ƒü±ÿ«çÞ®bûÑÖ%xçß~•f¨WLŽ £ì0û4:i Ëi®)edô)&çpø¼M|<ž Gxþ‘ùã:Z<$oæÉ2OFJ+n ®;ÇÆFþØŒüqëBù‚c¡÷ëA¸Ø\fðVä3:¦† õfÀ¨Ž„Û Ç’kÒÌ.e;|~J[üd'ŠK* y=}—pL¹Æä»fâǺõWáõ?è³çážBÊKãí±› ü0nn;ùcž}o/ÚXnZ7='·@•ÅÒzï÷âgÈŽs(¶o>½é¾HÓá(+®îfêRÕ¡&’ÔMeg£—$¢­c;Ø×È3ìYÙ,‘l7;”ïÛ$Rüp¹%¡Ìð4>òcƒj„üî« ëWK äî2çÍ&qÚtnow¾ ë¶¶KäÍkOI )koÑBºdúPzx‰zœÉìƒÿãøö³+×ì›îñ{ÇßnµÄ‰¯ëé\:¤?LñepÒ8I<ÎjPéü÷‹øìØê« g›"T…RÐ#:‚ãLPkuSŸ°åþÈ»±ŸŽ=z ‰jÁág¦å&õTœg¦ 09M^3Ûr~lå¯Mê•JlN`ìy~{Ô3W€·­iøç9¢üðÁƒMDð#Þ”˜UOÓËÑïBãÒòžL@"=g¸ Zxêÿ Å(*E~`ýݘþùƒ ‘cjðÔ%\~5ZJPÏ+èñ·PËÒðö=©*M×í¿ûü£)jÖZ~ õ‹H3A pÁ}1¶:ú÷¯õž©¬!oOºÝÔŠZ™ê[ó0Eer¢!g­„+H†R¼õ;ùÜDííÐËMÙáÓHh>³'òù]Ze*ºÿG ÕDWÛ2ó*ÿì”›h!ï óCdˆNôLÏ×W R¸ Ü~ÔîoŒø7àj\©¯K»ì ®çÃI 圞#½µi%æ1(¡%O„·® ·¼C×âBC÷Ð6d8bË£õKðÞAw§‰ÿ}𨼓_q+ð¡Ú'”?³„…2·Ú–”ý\ArÉ*p84ç„×lÁsï«•›#;·À¿¶&qZyÞáÍlÏ&‘Z,mm~hþvûS‚ËdÎÇ™Ù{&V†r´ôVµ?@þ¸oª‚hç=-ã4Ž©!#$2»2Òv²>w¸=~ÜCyed›çóþEÖ°§[ äq&“·ƒ FC^ÎAAÍy2C¼õ®ÊH(xçˆÖ±§íyÆÍ%»½‚šõäÎÐûPòÔ²Œ~¶~bbu üHÄYøU€CY V¦€“/f{s[d:½?Œ¶3$2òG}Jp{^Á‰äÈ™”/|öücŠŠ¢Ág\ËxÁã`Ÿ—ÁVÀ±Ü.°oìmÓMàæB~¸ŽäÐJľµº‚oCѿҙ¿>ãÇnuXG¢bpa稟7Š{Ë@7…tI"Ø\v¨}hÓÚÉöªl û¾dÃI=œGT®H‘ÐF7I>öBïý«Ö&,zqCŒÝðTÒæuËÛú2 )(±Míæ³IÝ^ JzäÕrÛæ¶Ç%›ä°'á½Nš!Š¢"áæ1÷øo§|q?{_ÿ¯ú¹çÒŸ¥v©¹NLÝQçÕTcÿý«¼N|åp¦*ùÉù[}õ“Ú™ üxåÇí£–ê:&®¯·9€;´ýßÇzÝ“ZÒ-øüi”œæ˜Œ4PÍrn˜ü”ØÄ2ÙÍsı?Tâvu\Å3+¡p»©h±‡ârxŠöf m‚Ú7£,èYMLHÓÄüú%fÔýõLS¾y9y«úúø, ¦P¨ô¼‘þ¯=ï*€¤}—!TdJL—¡“>hȰ29ùÀõÐÐ?ù:ê|ª¾A·sÐàïî?xÚ© ïESÀŸ…di,5ª'‡KîÆÍ¹<|ð%ÿXWðï1¸Z51΂~£Ìp*±£‘¨&ƒii¡Í±«¡doÿóÁ`Ú<îÏçípõ„æQ¸íÞ3ySë«ÙØÞÑAuÖÕ €Ñ]ûÓ@´Q%º„5€NèuúŸ‚Wà‹þ}UFPjzmâšE}7<®BgÒ £·”÷¼¢2_z‡³Á]ø•ä{¼ç@âƒ&»ÑŽS¡ ש™¾ü•;èô…3¬†ü±÷"½EY› aÁˆpæ5ícÒHFÙ‰¤ø;'á5àÌ)¯¿ b¾~~þühŒ¾ÖŸÏñhZdèy qeï—FàÇ»Ö^­JK8”›–½™ï;ø=40:Å£-Ö¿jàxk1lFkeæ­Pþ7ZJÉ` Â!d íiøÃì ›]®rYx݃È\A‘¢Ž2Ë@‰é4C/ú¢¼Á&?~æ ¦â\­·žçÈ*Źºq'ƒ/ä¬ /¹§dDþ˜]n 6Ÿe–¨²’÷}ƸꤚIá9+¿¤ÒÈÝÈ{ª¿Sò¡ŒØ²U!¤°eìÛÃn–¨6 ùk¾„<<ãÊEÐ0Ÿþ,ŒSÑôJÈW‘’#Ê5s„ºr1élØbÈ/QÐnä³QÝnZ{Z^£ä~ ÀKøHœ=ÉÝt2ŸÖûÚ¢Žë8ð@ÞóQÜÓT¢â’É-d»Ø²öŠÄÏÙ·H1cÀM†Øa|ü¨ƒk–«PXÊê­Tü1lW uC ½½åÃè'yÝ…¶ Ò›k£Øäni›ÓÇ?6HJ7¦=^ßÅu¸hF£¼è5̦À‡Ýô8ê˦>ÍÜùEµT?·.ȧ#˜Ú¬8át[Z¿SÞý«©¾êÎH™µêïúO•¶××COƒÚg…Êì5ççÎ#5@Õ%MÝ@tâýäüÁUz ”ï†Éƒ1–VšÌ4^Íq‚c„‡5¡LÓÏ\q¾õÞЗÇôî4Æ[cµ‡R­€«È?=Úì£]ðám¡Ùm¨¥‰~üȽÀRz”+?Ý£ù´•S>uÎw)7{»uœ…ÎI[Qü˜ÿaUA¸Ík&1…àl< uIM <[ ²e?Ö#Ì¡rðö£½÷¹tÝïÔp¯Óz<ºB)'S0ä­¦´€òóx¸Ì>pæcÀ£½H%žóôÖß­mFªÀV;ô/„¢;4uJ†sŒBAÀ‘`ÏLžM%‘BÚû׿zFÞ“ÁPúñÈb{L¹@ßßí¡:êPÀ<‘š#}ŵlê¼ _¸ íÐ+õsÞÅ ¹6ø±—vÀ7d¦WÈe(Y ü8苨Ǜ8×N\ üˆ ~Ô¥¡ÐÿA\”‡po¾Oå¼÷fyÔ6>jyW~®Úuʦ¯|5ÿcœÓÚô#ï­ìé¼%ç`XE¾ åŠ ¤š})…‘<ÊH*ðû•?×d¨ÎMLЯœ‡ë÷:Ý‘g#m…³ˆŒü‘ ,ÚÍ;¡…áÅ7Ú½øýŠW–àÚGâ HK$=ø¹IC Ôù/Jìì|@þ8‚ÞœIÉŠCJSp-'– ¶› 鎅¾––£\IŠáßiøèý+6²:¼ü«ûWMiø•pUá^Ñ6ž)ãd¸á¶âºKì/ö¡œ°#äw’<ö ’Ö0äã>|eº²˜ûËŠˆºN¥XœÌ.ËëÑûÞPv9äÏÈnYe Ù¤pù m+;\¬Íl«Ù›|¤œÄÁåÚ:%_2“?–7]…Ó^ú¾M'IÉMãíì™QšÙË6“/áì<{Á†âÇq£#?<±Yí ù ѳê!qöæ-”Ô´1£?žïuAÇ“KÐvªÎ{ÐkÚJr7«õî"^ [I{Õ&·íeÙ.ñì,;–ïÚØR‚r(ÿþe@Ú—ù±O5Ö}ͯÔRû¢¼>&¸ê­>S.ÀA§Ê(` n(ïìÁ¾“v•ç&’Ì^•‡q;^Õgðt3o5ŸF_8Ôu®kB~DÕx/ú^0þSJ}d¶$²C–Ø:6-nWØfv46›m`O#öFÛ„ÁŠÅqÁ ë6W…×Ç(?DO~É7ÌsêÎMåoû‹[Ä.•g2ÃÞµ{í{ü¸(ÊÍe{ƒJ·Ññ-îÅs)òǧûWÕF£²8úiÞlvP7Éì–·Sl={KH ÛÎ>·Þzî×å°´›ìr~n£J#då°\‘PMø×ù±[UÖáø:ÀM%¦hô4p·Û2IžHd›Ô(ãövØns´ ¹±Ðiá@îÒläaT–B!óe2ë¿1îþ“ÇA_ÂÏžw¾ñ5U?òÌ7°ÃQÔ'–n®ãè·*?Jï«å¤?R8sáI/üTi—|CõSœ¼7c÷›×NPÞ¤^é¿LNä“N2'õOÕóžN½¡«UàÀsÐ2“j©ùNhDßT7“Ì)çGV[÷Òæ>üØ@Þ{?óèeã씉Z›ÝþUBþ¢lþ] Ã?rG¬Û"S <š´Ü¿ãàèÎJÉ›è-òGzjR‚~©ÕÜ¿ÊK‰è°I€>•;B3ÿ$ Ý9ê_iõ4ê|u. eœ†>_7üîý«¨Y'Ôè:rC0d—JðÝ>†r ÎÈÓ¡ ‹@”[ð²SÀ¤2¦û7wÑ*ƒóÖÜÒRR”^k0þ¼M³¹?ø1+±æ#ø¼3¨c_*š^ë+:ÿ£¿¢ëÓJ ΃© (þRH#œ×køÆ–ôL¯×x%×â²¼‡ÖA)'€¿¯Lt|N™@øqÜ)pJ넱˜žÃóªާCöhEܪ—æçÐäIœút J¹gî­Û’[ßPçn qz˜6ÙIx!ïg?Ðp$µ’üKHBY)u¡y½k%³¬?‚#1lážÐÓÜÚùjåæ0 ov$¬X<u8 g‰×r*I,[ø”´¶YìP»Ün?òKp™ÍyA] ‘‘!g>K] 0ÿã-¼ÔV$½’ÈùÀmïÍâ9‚ãÈ ;Z:Ü´iåç–ÜPý¬,h…'¬d5Åu™¦ÿú¢¼È9ÁÓ mÁš““ v²lãÇ‹º#§ŒÁϽãØ2O˜+ËŠ ‡¶”Àÿ<?Öãºu¯Jc{EâÈYYf«€Yìpd†<—”¶©}Ä—‘Þ&‚çÁ÷X|ÓtûXÞDV_£ä| c ¨œ1Áº2À>²9 ÇdUîykܘn{^®!=Œ–7rƒ˜»€J­Ñ#ÙVæÓóžj‹N€ôžŽÃSL6½è/Éíµ“m-¸‚Òõ»bãázÜ” ’ÿ7—ÛÒœ~ã(\¦6úþØ w!Iw5q0Ê:Q*ú¶I9w«m%cä¥8ÞÜ›Åä.¿ëÛyò‹Ùž“›œÏ¾õ²»â7ã|Ÿ½qöß;Nø2|ö¼ó©¯šú‘5c;µ_­w¢èfº€îÏÓ|YÔ GVgŸ ÿ“ûìóuÔsLyøÉe‚¦œ¦%8s‡#rm}S P^ç/Ó•ŠPL^‡Z4doM•ÍTü(/úß¿z~x«­—EÚp$ÎT1‚áóz™P_½¿KÎ#“5 Ü÷Œïòh‘÷þUdÙÅg¤·-`ÇÚö$|=‰)‹A¬è Ç+/ƒYàjwª»øñÐÔ@«<¢,¨a2Ê1¤™Ì“øs°`ÅiOÙfàG3üý0õ¨}(Ùˆ»˜æéY_”7ÖäçŠþ7ÊñþŸ½KæËiË­%„»ÊÆ?öÚc¢¥'²×}ÞÍ yKýë—ü&›øŒùt“© Ê[I&#xT™·Â9œ]žJ3ûJbÈIY`Ú”H ël?;Ë?ÿ¼}ìçÇ4N+×qí2ð3äcÝFç)htžù×´3/—6ö­­j§ iìEÚ:h­›ÌMÄpl:-A­F›´…cÌó)•éa†~öü|—þ=©ζ&ÈwŽÚI÷Oû7HqI.Hm[ÛÞ±¹‘àž"5²cì2~i“J5$ãß¹,´"/òÇýùc­ª«Û™?@ƒI©€­é¶@.…l·2H08Š[Ç.“÷6#RNJ)iÓT: ~`Äcää7{¿1îþ“Ç_ÆÏžw¾ô5Tw®ùÑ#„Z®F:QuW^õ¿¿;ËWȉã¤s’8óÿäý«c¾vz¬i~¢àG(Û¦Îêú¦.¯· ÌŸ{ÿê¶Þ |eCq Ò“ŸÚ´ªÉ‡ü±ÜìvžüPIáŽJšÇÐ͵ÔŠy ½¡2Å¡.f'ôßÛ¥¯2HGÉtÿ¡ûWÕôßHZÕ@ŠPù•ðÏ·á{C²Ë)y%½‡º–%­ï–èñ]~S•(³ÿùy®ÍcYÒÒ#SJqœ»‹OømövÑšˆzŽùîþµwœAd¸y«o,â£zÈ ùàʇð_\œgÂ÷/¥áÞ³ùE4ÈLTA¾™?ò;))£dð`}ñ¥–4m6ŸÇã gpSöÞx‰2£iòXHÞeª:ÿ£ƒj®[ ubòljBOé(Ò#ð)>¡/=×Gõ[>ÂÕ@38û#¸RéÁ¿T V`÷¯Žú"À¯ÌŹN‚²å@þ˜C%ÈÛ…»7×å®ÐêÔ’Cã×qðå"o±ÐÐÕnúñWo§÷qº›A^zqþµþÕ@¨W(D—ERß[@öÂ甕𸑸_çéðÏàhƒ›€îÈñ¯µÓÉoû#Þ@Axœ{dYÅ'¥ƒÍg—Ø}ö4Ÿà:ò‹,ÕI ¾ƒŸ˜ÊÞª-3Ô»üøï´™¨(j˜‰ƒp$©#Ë$ø1ÊN±‘ÝðÐ%å6WA.¡†Ix‡ÿ?ˆö\E³õ/Êh*r.>î.îǯé8¯”…2é§¥°»ÖƲä„Ý,Wy€”±·ø8æ^¼ $Ì)Qe>ïýl¯Îøê¸š>fáKT…—úï_B"hmŸK>ä]¶%’C»Â¶+$èÑÐ^á‹ÈÄ99>!’ÐiÓïcy#Uhð#4{/½å§æÕà|ò— ?¿D~±Û‘?®Û_ÜÔnFÔò¨²T|ö®moä­~¼Ž¢!|Ú¯w½Ú­QJhÇnªÄÌ É]f"½1ªÚFö±Í¢“ÓÍv¶óÙº)¥zfD.EP~ÞõÙý«ª«neBQG*I™(’¡î>ÛNÆÉ Ö-e »Ýñ7)Üv¾„q£ÙkH­•¬·Ëóq3ã=*\RÏVüúïG?>Ýoxæ«­~äÓÀGmS œÈàGýÊ¿þÕB_1çO'“Í٥ܟ\?q¯¯žmPuÐõš‰ªãëˆàÇ]ÝÆTÖÍõ!'¶СýßÇi½ŠéR+ÚA¥è°)F­ÀààS“ÓT5³Ì9ç[ûV|yìP»UZs…Ž!ý{³§o"'@Jêj–ãon!‘T‡’yóÏ»™y¢RIwÒ«¡ ï0š÷A£-Æç x$gG~xLÞþŒ1‰ùûû†Rå)2ñ(Wçíô磆×ç)+Ÿ;žÑ:$šA4í0W7ÿN ï:½Aœæþý?ÖQ8­--£ð¢óx(çC ÀWo‡o?´0–º›)ß|~þÜ—Ò‰F.j£d2E&¡ Ù ZÒÕ¢¹\ Žóð„à;ãP²áuàG`;ªTmµ÷Ü<5’B%Ôî$Üy5´ý[ŠÀÍé…Þ¯xO®«ƒH'ÀågAAÓj®ß¾Ï—@Ï7£ Tk’pÿý«á9«·„³}KÍØ''x+Ümløÿ#H›G) 'çúþWïïvvš›ž¨M*ÿ¾†ü B)Ï/¹„ýÝ àGA9ËÕ¥¨l_~ãÂàÇR~L4 MÜ×%¼óÞ@ÛçFF'|ˆb£N™%>ÒËIél ÚeàÇ1³¢„—å(-)²È?Zò¯pãÔí/J¬æ<‡;Û‡–®Ç·V‚ƒ4d¦$æ42ÚµaÜEö‚­)/¹–T?:p,žË,¿#3G‚œ¡'xþ‘Ÿy­RŽ{ ûæ²B†H{î !Ý•È.òÑV¹ÆC½Nó9žÊp¾!$«¤“E¼Ý¼øXVluF EÏÁ7©$Ô{(²H~¹ J>“Är]¶ÚZ6³Íj7Ùvº0T»†}á_9l Ù]\‘H|ÓôüXÞdõÁ9O¹ø2<Ÿ•ÓæuÇYÄ9³sä•l°ìqûÁÆrÓ€·A£©ò+Ü}XÿúíC¡õš¿MŸç»_mÕ±(|Ý)䪦u”nB\jörR[ÝÞ°iìR ÖIF;Ï®àßÜÔRc2:§TgöëÇ^xT5ЛÈðfÍ¡vÑh4v7Ù¶2I.nñÜê6ø±Êf?æ€Æéíqd×\ö4ኙ„$ #§Àÿdþàn_ÎÏžŸ?ðUW?rÏ%°Ãªuj‰RFþp<þùiœôN'§³Q)uî§JÛçk©Wš p”é® ­#èÄÎpuBw65Á5N¢ŸÜ?ê†^GSÈß=Êï2eé/5ѹk*‚ÅMk3ß\r^}¿Ÿ·zó~•Ç<¤s´“ºÃ‹o¥B\†r"¬&ï}©éTüè`â™–&ÜÔ1 ˆ;Ý”òÏ‹ØA«éWþÇï{ïQ6(ã/ø³"t¯<Á?“~àùG~èäA“㯜yVø$žûÔ+ Æ÷Qi55FÏóVBœ`Ò¯ÃNd žð€'h&i¤‚ªÐöŒ<üè ~L?Ö#'X¾–O=Í´oîZpâ“âQ Ùc|Xp´ÔtºOCx"®Ê®Ão0&€™ËQÃ1ð‹¿ò!S-ÐýÏÿV#t3œMZ^@MᣯSŒèj¸A¹5]׳ô+ÞÀ jûý¹®?\¸PP¡^ ó#êf<ø1ÄHÇ¿òbðuœÿùw5Ë Ùáö|þ~.§Å×ùÔ2:Ôj°¾÷Õê ýÆf8¸–Jzê„ÇÒip÷½ÿýÚÅRdž²¥d=·•"²››qhhøCžÁ¿‚óMX“<ÀuyªnxžÇÿ>pdyïßp#§…žàÒÑ–²í}{ŸÕ\"ÊtœwFpá:§Bþˆˆ^°*ÀûW T¹ì6ÃÏefËq¥ƒÌ‘äœP&Ú~6‘»Æ>²å—‘ârž»A“—rHäCü\_ Gx· zÃE©,Rä+ÚÁÀIÒ†ûId™$Ö‚Kå5÷öŸÆ¹¶EÞbÉ.™À¸óæÓê¥1Õ&5 ä.7QŸ×R;.,·¤…}!Éåšl´emZ›×®²Cì y+Õ ø/pæÍRÈ}NÄ1ù¢éñ±¼¡Ê§÷ í½»·¡ä¹ÙJ8©´·ÑÝ v‘İ+í5{Éq£#CxûÖ´Gå7{N§?²Þ,±ij†}öþîý#¬"Ê«†OêL…%Ž›ÜNůH0[Å–¶ÿظ¶¿½4RÅv±Ûù' À¨Ü½¿<!÷c/<¢ZëŠ&6FYŒÝ˜´VЏ;m')%®D-›ÌmŽ6Lìv´3åžjïJi)o ÷£KH?™‘Òësa³óãî?yìö¥øìýÝ×¾"* óùÑ#˜: Ö8It[Q³“¥,õeEþ(çduv«¾+ß/â‹zõÓÃMiª€ÕÄ×au8gŒÚ¡›@MêàGç½—zÓ{Ó¤6üy ê£68OLm¨I^SÍ,6'œÀv¹ûú¸¨n©Êæ&]€*µ§…ôÎ&FhW³ãñ¦ºøûæ&ŒéôÙš>ß>¼ç³Muèêvüþlú>i4Ôÿ6%åEžo Ÿ:P¢Tš}—¡Uaxû葹,OGë¥?ªÒ~: §î=xëq°`ÜñÌïæËÎŒÞaèÛ÷ éïàvZ€ñy çFœ“—Ó]”·å‘EÚAf‚ l·'ïpUa'=á¥Pòd4Š,… Î úyšÈ^ºšÌU¡³PÃ´Š¦úWvÃ'LYرnHýÕè5|ø\ä+oçT/­–C=‚qº¬Wë¼[p ¾­_OžO‹&´¢Êðã‚/–^lúûï_Í@ˆÉÞ[j³)&ÏA‚j< ÖüiÂ{76 ÆÿaîEA鯕s+@y]fÚ9ïä›PTÍ]ÁîÌÈ"Å$‰,”zöƒä‘cÜLrËZnŽ|RœïójèéD^‰ì0];ÎCS=!;|ûŸÐÈ=h™yœY柖PÔõö”ÝÇ'¹&ø1gž/óŽ&ó9¡9êò%Ös ê *ÎW8?øYËIÉ1eø‘ùã¦-&×Á»â½µ +aeZb5’ë—+ßôEþ(ÊÇÐÒ™ ¸/i¯’å2J:s/ùÝÝgcCûo@]ßñ© ~œÃOýÅ«ø9g”„²‚š{ËÊ®v©‘šóðc*Å#ÐSÂs.¹-uíe‰%ûe±­mcÙœvŽõvY i»‚žOÀn¼œSËmN ¾Ÿ6?–7B…×çÑr'i7½âG&7x>IúØßܼv–üagØsv³ ê&rcÙë¨eE;T9ïÖy±?’hl8ÌÉÏwŸº cú×/9ˆRÏšÐÜZ*»Yíl›Û>”d¶„í–gOvË>¤­Îv.Gp³J#ŠÊa¸ý f {áïN¬IA¡Ç%¢¤TÊVrGÛÞ2çÙ£¬Mè6q§‚$íízyŽsß%•ЃþÁ¹h _3—çìÿ“õwú²~¶~â;_yõsÏ>ŽZ ~Õ½tVÌñvëš ~dvÊ8yË*äOî?¸ß×F4e0Þ³ÐYKÕ¡œaj“nl*ëFúŽ“ã'çÜÓKá@˜ÖpÿÚp¤šæ¼2u©‘)fꘙæ²ó­}+¾<¶«“*•¹†‘² º5.4=g‚Ëom&Ò&zNã© €hÚþàþƒSõ|œé[ZFàÆC‘û`ô\ äPÚßYqbôÕP£ïÏ?ÿUå?Ž›äpîåxe§´ f9Zn¦ÅøÞ¾:;ÚX‹fé>ß©á§'ô¸-u¥+4$íQ$šÀø gç)þwm·ÑS|]Áwú›Ùß|~J¥qRû×/I‰Z§(ôÁtGM®Ð80 $âÆÞ›Ÿô‰d3MÆw¶Áž75t`n«Úêºt‡²òFªá¿Uƒ QM\s_z¨÷ho¶_ ®Ä'ük§¼Èq‘Å›?xÊLO5mñySü;œ‡àiàu7Jéÿj òq-¾ׂq¡ßÞ½šý`|t¦_«€{OOpš›^àvF>ftƒæÂo‚¢‡æ¯–êÖµYd7“\ˆ’ƒO¡A¥/Ï21LÀÝ5ƒ9OM6¤«üÐܸòš–„Ám‡–ý|JºØÊvž=n/ð)®'‘dç@.zÈÐR™Íà!V©K_”ØÝù`ªÐFôº’|ó¢—E—öÈ ‰8¼Œ¶ƒmw©}bsÊ ./¹¼u¡|“ùaÙËÞL¥™zìå2éI£!'·6ñjY##¤wv7Û86¬}n·ŠOúJV{’w€Mh^qv‰&ã‘2?%¸ljšMp¾O.ÿ¥‹!g´·ÏÁšÓÈuQ^{Ì·s%¼mÅ‚¬ÕmO®p2ŽÅÿ˜>˯BêGè'/è ½æ»Æ‚ ¹e  é–±ã%Š]b]w› îþ鯷wä5Ê'q¡Î>îŽü1”çS6ÓÕ¬üâùy4ÊÙJ¹y­9B­¤›<«eoJ¤3È3Þ*Їe»d³UíZö¹Å¤*FsD®Añ‘…®Pä½p«ª¯Û˜dP²`ATº!-ݶ›LcÆ–wËÛ n'w:òÇ@œ¯Ï%|J,)dÀS>4Ã0–¢!TþŸ¼¿{ÈWà³Û_úÿÛü¥‚‘? hÇ)åŸ?Ø Ù£œSÔÙ ‚üäý«û¾áz) ~Cþˆ¤×Aœþê‘îl êVú<ø‘á§êù«Ù‰Ö¾kê` í&7µPë0Ô” ™,¦®Ù`®þàþÇÕq•ר™ò˜‡Hy»e G¦ÙÂïQÃd è¥ÏVÏ®V©àc!~Bex ƒ)*W¥¾}&1eøQÝÆ·ÅíA$ÑÎ6µ¥ýû×öà]œJ®²w—èŒiõ±¼êýåC/±rǼ¥þœU:ÙPn&"rûW—JíÆµÇä¥meûKR{}º"ê7€WQ4ÓÅ,ÿŒûu*LåÑû óT3ƒjI.7¥jóÙÁV°«ìu›ÒN²›ä°d·Cí8&· §ˆ¨[5JŒTuø³Y¬[T{ÝݤÆïNièÚ!9Ýå¶ŸL•S’Øt‹Ú¬nw˜Þçkݰö8úNe{ƒzÓm3 i>Ú¼ŠYúq÷Ÿ| I(m.Üój…q*=žˆŸAíɶZ¢ã¼¿[—bÓ^§óïgöÎ4BZòíÈ+¡´£‘ŠÒˆïμç Å(©‡Dt¬|çí½ƒŒ~|!·ó¿¿{í°:ôœBcÍ0uùeý¦ 9‰)&O‚K UO>´àDo·síáÍp¦ô2„·ØP”ü†®›jZRË~uåð³9yµ¯€¯•ÐNÌ–›“chö¯ûWš×ƒ˜ž e¦_1>kºþÕS_j=Ñtó³¬ ´7:ÈX‚ÆáLç“#y ’Ì ÿú»É OÞœöý`H"xÝÚú± ¸÷Âbg.ÒLòVQ¿ Gþ éw'A¾¨/™e©Ô°ïáë÷suäÅ\ ¾´ßCÎ1ò7Ï7™M´gÂykò¢'¤æIø™—`b<,‹$–í|ù#¿Ýl_Ø+à[ 'K9?ôþŸþÄ}ØUE×öÙ{fŦCAPº[º¤»[Bº»Céîî’.éî’îî AP@þ{ŸÿÿˆÇ‡xÿËëÝ\/¼ÈsÖ™™=sÇÞ3kñÀæO1¶ Û!üÇ3[•Öb6|Ãǹ ÚGºÊRù’ Èlí­‰½zOëÈ%n,ßÊy8¤h¸çQámvó)ÿ—øV¼‘¶>~ÆßŸQŠ{2ëGÍ•IÒ’¿úÏô…<Ó5rJyðÜZðG{^ FN‚>,à‹odoÊâpÖRF®þ¨À;©+´Pyy ­#¹l•5ðQ5£žÖ¶:R"j m¥¿¢¯~>Æ´r‹Ãàž´M^Å[éÄ3gg?Çgdy„µ;¬5R?õjè\ùE–é5]·•ÞK¥'å…VÐOw‘âÞ•^<—âÛÁö‡WýýɹeÒ‚=*Ñ!ªÆ[íê(±¼\ðµTõ ÚÙFhR¨§å„¤« áHÞ×R <‡ËSJj§ïÕ,<ëô4#l,ju–’Ó )ãÕ>²XNIü`ÖÝê^o›ÆõÚë¹§w寡ÒøÙÐb)¹#WµKÞ±îþÍkC ßþãÏ@Óÿøýy4g³³ÈUSÝd4œlˆ²&PÀÍÉþˆôNT ýÚXn–‚?šSn¸†¨&®ÉïÎrŽ›V¶˜ihVº™ÝÛ'ö‡ÙE3è¹í‚U_øZœ2 µŸ }ÿQÕαÝÛ!vƹì³71w¶ScZý›ëã¾7·ë±ï™›À´·±0ç>$#c3ÊL·…üStˆ6“žCÇ÷ü ¬XJÑø"ˆ'cÿ¦ºàS¼“Ósr>Ì7¼"sJîcî;¿„ˆ7ÒífûSQ°Û>ðBg`Ú 0x1ö¤¥$“ÙR\­–‡º¯ ÿñ7ãXðçÐIe o²™þqrè‘ãÁ7× l<…Yžñ^ôÛGË”rˆ‘NZš—½Ç`«¦S¶€5só¾ǰ”¿@Ïw…ØÕÝU°Ñú`þÝCœ‘]þüåËYe9”tBo¡†õjÈM®!uᣒ’Wr,‰/ò>ó¬™üV¼16?gãË•lÜ•ÿ Š;ð7ÿm#òþV:k$¯…Γ'ò£þ öýYÓy)õ”ÜÔ,:þã,fj×ཛO±ìŒ7ö_ír®˜ôð–uèXüºÝDM$‹—£6W—½ÒPûèeÍ>¹%Ç¥$üÌtŽâå’Ê…ãò7+ûbþO¼}Î@Ó+¶ uÿ% ›R£?ü‘Pésí U¼QÞe8‘fºZ.jDø°dpc¿Ðt:oÀgbBT¶ëB_vÿêu0ôóƒ/Á!•χ^áœÕÎl7²©eRa=UD”%œnj7—›×ÝõÑï?6«ò5¤ôtÉ’IþXçì6µlÓÎìq ~dýÚf? ¥ßm+hüò4Ïf¤ÒÎ2×q¾¶Ùme»ÂnrC;¥öÏëœsÄÉn/7R3°ÅA`LUÊJí$ ëy¼oA]mlÛéƒêV7ýÌ [¸¾(x¢Y MšëDRghºòÀ½âÐ&? {T§4¥¦½˜ŸaN„ÿÈö©GË1×ó°ŸåðwZGõá’†!æ´÷ž¼åþ'3Îú*ÚÆ48VâÉÀ±>\„g¹W#âïð!{i"õ´CœwíZŽåäu“R^÷‘ü^½ Xâ2m@KákÀOè<ÀE¸£©`˜%à–­àÐxx¬ÓÃ4 ›@èeÔ­;K­áüÊ“_wt"E±B›·àox3mçMƒ‹‚±iBB­?˜À,€»ú“fƒ?²q F ´!%÷æÖÜò ªÇùP;Æ~õâÝ`c¿¢Cóòϯú¹ƒüáW '8"÷V€¼ôkåJb6JËçø(G– œ£½Ñ9âüG\»þ¦²|–óq$pCÙ(Å9“LòÅó6i ¯¡<àjâç ® Ï5ž?#kù6FópÿÑÚ¦å<Áý}éà<ðÃY Se"üÇçÞ*àýŸòX÷Èc'…t+¯ç‰Ü„çóÏœH2È~hϾŠÇÙÏÁwÈ;Rpqù]ªÁÅ„¢_ÌŸCwk_].1´¢6Òá`øî¼šÓ€¡âÀO²m_ÅóŸ_…áÌ|×?ýÄ÷mdÉ¥˜þ¡Ýt²<–mà=zU³xIõŒÜ‚—ë!É î8©›ð s)…j¿ñüê¦É|~˜jòU`ASié%GkiXðä\ªûÁj‹õ©\–zð339²—^Ê㞥$Ç]|F ^Í•pÒƒmBêGÝ¡«’ÒEùÚk¢ýd”ÄÔdêyý´¼7ÕûC+xÝu“<ÐxËDREïcNŸ·³à?’cUù¯ìß=ˆë¼>åö4PË YùìC/ãœr¦»_šŠ&¹æpüüWܨîgnRð‡ýÈü»û½Í:[—ªP.¨é[nDË]àì3ùíg¦¨™êÆq#}T;_šuÔ—îÚÊ4 tÍMÍœunt*IÉm›ócû¾??æÜrÒÙ3@ÍýÀôÑt‹rr9 b»:÷4¾¥25€‰n;ÛicE3ьܬÿ~Hƒ (^B͇¾½ {lóÒ·”…ê¿—?"9…“§m< p5¯œžž‚5ýLG9øôíÊö€÷ÍC}Mí÷òÇðÇwôz6š^Ú±èó\ ê\àX7®‡ó Xð!°ha°þG×wæßì”tã ]#°Jâ?"ÓCÛ‰F³—qgŒÚP @DÞŸð.¬¦þ࣋´Ù6þG5>ÿìô5­0ú_  5è$üG=Ì•JøtxL»Ì1”å`уhû^0R6ŠˆûT‡:„ÂÌÊ`ýóÜ‹ pR FMN€sƒy:ÏTšæåü5ðv¾qbþŽOÔ3Ïÿñvo¤;ÁúJ" 0í"×D†bÆäžWðO ‚?\­ ìÏ)…d%·åO8;ïÆ7ÿÍ}y¦Mÿ÷?m)ôП ªx+ÅåUøtbh÷cÁü»'õ¼>ã¥Ðûe1zƒ/M\é˟ÃÎt~yû¼†û«k=Ø6'oC\&i%«$ ç–Ñ:B“xûÔxà^:K3ÙEŽÇr4 '[ù ÖÐÉõ»ÚJ\Zç8‡¯ˆ.&ËÁ}x€$ö¶éú—xÞYÁ¥œžç™ðÁ€px)Nºb_?ŸHçœuFÂyÀܯ -0z%³¸Úœ[F~…_h\×¹’Nsj[mÑÀ³ÀF‡áKòÆ7άp’™¿¨(ÿwA®Û—4›HNýE¿‡ÿˆ¦+Ákõ83eðýG%­(±€Î¹)î][Þ@éìp»îU·:7Lj¬¡oü³d|Ìv£þ’ÛK­Ãµ»~ _¹JÂÔiú·Ì“ÂúµÎç0^©TUI±~QôW³ðªÓÂLôÅÚÊM_Ð!©è­×I2D’‚'¿ôÚÁyŒdóêjùMÃè'šBªj8ï[v…¡ôP©íÚЗݿz] är¼ž NûÿøýÇ“€ÿþ#¾©cò›ÇNàùÁ:n ·€[Â]â„ùHÿq>Ðɬ°eïÙéŒuLt#îÜ·î¶ éjN!j†jç=3›FÑÛÈÏbG‹lfªíü鿆S(ÿÑÀî²GÝwí;}û:è\vâÛƒ´Xì«çKpì)1ÕµG±o@5—‚mkSؾöCM=3É,ÃZ¾ ÞL+±n.À| þÈÄ?áoWà‘ڂ𶉨áÔÿ¨}³Ï&®•feÄŒ O=]¿P.¾÷õ€6‚‹úÓ m/Óê½ü1™,ûyê/ááÁ~ýÁÔ<¸Úè¼=ÞŠˆ?ƒ•æ`¥kÛ;¡Öð¯'t€)V̉¾üß÷í€E?Ó*î O´ˆ¢|^¯Þœõ4þ2[#Ôü%“œV¦*X+"OÁ=MG±úê…ÂqBþ™ßŒ+» ¿Åúß‹~žÿHÏX.þø9Ø,¶}( w…gñŸP­ fª/Ê? USy \aøC¼ø”žý\Ëóq·~F[Ëc¾ ïw íMe)}#õ1¾ÿ á€Ô‡g˜+ßèo’K¶sÉ&«Áôa¸oàÀüVüƒMôÌÍáÝ0Tˆóå]à×àð2;ùˆ4Z­Óz—Op9ù\Æïó>¾Â¿ó÷—ЦùÛ¹á©sp¿yqÞÌÅ1îa¥‰¬—TPðÃuÆõ¶ëY-oÔBÚ€?ò²åqüŒÁ9\ÁLÝcf¾o„-Å¥ù<Üx~îþ8ÃKd¾Œ•Ñ4NÚ!Õ½ÚU†Â[ÕX^%Íé}çYÏõÚêt¹£¿K*(•ô6M§Ÿí¨±,Preì¶w¬»ó:HÿÆû°NÇÿ˜?Ø9èLv?1MÀ:ß ÊØ@pGV·¸»Ã‰ö‘û¯.úCƒ‚ËL;í7¼Iâ.uΚæ6“éf~qK¹™?ª—Í6 Ö [?;­´9¨†óÄýœªRq›ÅVÇüØë>y\çÑÏtàŠ ˆÔ Šûeå|ð-­¿õ2µ„³mK}ìgvèùæ3¾èÐr%-£HP]#‚w1+VÑK:ŸüÒ¥ð©ï÷/Eà¯NÛXÀÕ¼<šružØÎ4k'#˜iKðÇ7‹±T„&˜ïiá5·/ÚÒ–FÐ  iX`fK¬ç4Áüíí¸O¢û‡í`¥£´)¸oy Z¶ÿzHí~0Î'-)Yôj2>;Ž¡"„Wx žz<#ßü1ø¼Î64¡U¤äô0MðsÑ¡PkÐa|®Z°~ÔžPÀî6Ï€úM¸2!?cì(¬Í°ðc5Cå8f–Œoî 4Ï‹u¾ ww"å†R®Æ³s'¨Iðüà8…Tì×›B³ƒµJ*›ÿ8?8Êí6*J ‘¹|Ðí§@ËZ’RÖJQ½-™å8ø# ÔwMø<ü¸ëOîÇ«lìä/ ¸Úâ`4ÿ}Ì>¾Æ;Ño¿ZR9Á§¤=4ó2ݤÏy·—d2‘ òàºÍü.1ÔÍO΃·"Ös]jŠq¹FeñSE0îᥩl”Dˆ9O'iTï¸׺²ƒKI ñ+„Dàþ ô…ÿ:Ž~Ÿ5KCœ,ÉÁ,û¡¦zágã ðã¤/q¼iðaõ®—¹¼Þk OãAàéy|œÿâ´²Š/Ù×õÒ9{œ)èiu¬„F< k,)\Ñ]°ä=‰†¨sµ›&ÖÌzXûêÉ¢µ´.â³p ë8œçO¡ÆÛî¯âMwš‡à£q命Osyˆ S ÌŸ#‰u²·AOhR/›î•—`¦òòE0ÿnS¾ÙB¹íü·ò_1‰°âk ·x¿]HÃ$½WV§ÂÝ”“R \´GËët «Ð¾¶Ú‘?÷ŠHEÌÌÄ\†bSAöØ}5 ;½LGû%´T¬×8´Vªyóµ‡ü á’ŽjU-çuô^jdoŒ¶””^x¸¤ôø–?¡²nÛ)—¾æ\í¿òüjW «óú¹Í“@gçãöž¾ÈÙæ¬u£›¶&…yéTG”ùÊnZ°G^÷8êãÎ Œ4 lhù´Õ>qÿv¸“œßLc›Ü”7ÇÝ nܵ†:b´«B‰g¡m67µsιQZmjÛÈN¶¿¸·?(Ò®àùóýÁ3ÍÍ€Jë±b¾Ëu°i1]¤NTßÔÆlû®J|o^•M?3Në`ünZBø6õ£Èà|¼è øÃÏóØ#Ññ½üANIðÇq›Šâ‘RzJöiwpƒòÞmsŒÆÜ+N½MÇ÷´ð”Û‡þËv “@'v Õªç„zŸ>ÿHWà>6¡õgi-¢ö±Óß¹SâI €=D…Ѫ‘ þ£ÍðO¤ ¥¥h7â°|ž‚“æÃouDïÑ1ÛÂD¥•#n¦%¢X< žègºI­ñgu|:2£›æ¤yÉW¹.VÖAÜ«Ãä¿ úÃfÀ*- œ $13m°«_ר'nµdÆuämðáé7àó`iF> O3#ñ _Ì„sCî¿åöµý0‰€·GÀ‹Pï~æ'å$©l:JP÷Û¸¢T”MÀ©Ï9tWþ™{ò88â4!z,îoPSM)%x{?|ÐJÆ?r%pÑO|EºBã®ÒszœQ[ÒÉNÁÑàR΃ñ&sô|•sê­ˆ-܇¶>-ÇÝËÉ»Áˆ/)†Ô†ÿø ~>ø#>ùK-'브4’ý`ÔOÀ¤"¿ó2¾Š™°Ë,z+Þ`ë?Cù•VPEŒW\>Åk€Ó¤÷æOL¤¬Ñ¼]2“GI)=Î#ywà­››_~äÓoä¿ÊàìsFBÿäß©o¦ ð"å¬TÓò¥¬#ZO@ßßЉÀÿ”Ú@kè!ðÇHè…¸ðœ‰8²-_Å›åÄ3×á¾Ã…‘Å–á ËÉt çUÑQ’H«ñvê MìE×£òX+hù\cíuâ_à—QB;ÌNxÕßÎnó)¥¦XM-8±K¤…=?Ÿcuu4šNÐ_ám2ë,½ ·l7‹ÙûZ‚óãAk&¥ìpٯߟŸtÚ˜®6æ[S¬‚ì´E^zëà?~”’K«{4‹×Í[¦¼ÚKžègz_rJ} ÿqÅN¥”³§˜ÝúŽu÷o^{_9¯wG> 4s¾úùÃq69 ܨp¹ Ñ}V ’›È-r‰éüüQÑ®ƃ?ªSY ó>K†M4wœsÙ4²ùLksÈýÊÍùQí¼c~¢žÀ¿tøºÞ¦¤>ÎnW©$5°Émk»Òžvï|P¤ÎQ'“½ï:Ÿ:CËŸ.—‡Âh×A÷QW óêocØÞ6´º«!¯òf2«,ph”¼Ÿÿê >n;3¯€".K¿Û2ô=•¦¾ïåש@9éœMAI¸(÷¢Púá¨1°ë"Ýiò+ªï¢z4 Ђæšfï}~52X?ª?"L#R>)šôb, u`'ß, aö'äYìÿ¹¢89Ý(Ä@Ò”ôÐ'q§’å¹Üwb wΞD¤{´ˆ†ÁÍl„÷¹m+¼ãüùó-ð*O†ëðO®•/U§ß(w£kf¹y 4mÆõÀgàSÆÃ¿E€iêûóÈÁçW/¨8'-Çä…`Ê>@×éüã%ü'Õâ‡À»Ã@Ût¼ßçget€ÕŒº!ŸÎŽr[Ûá¸cIx#üGef¸¤“Ða¥¸Ä•™Xý%Ÿï<ÀÛ¸!4s>ïºõ>Õ²YCôø…óÞ¹ņŸ9U¼wsc0ÉF>þÈ©Kõøc÷…Fÿ‘ sr¾Í÷Y厕´(Äûîc[+˜¿$/à,œ]ºÊIȉÁƒ4‰·ú¼€Ó¤•å’‰Gp$qÁ%·qŸ™ñoÅëkËr9>…YRˆ[c¬Žón™+³¤!ØÞv ìâí‘‹¼X¾×£<‹Çÿ/'€–ÞÊìë ”ÉœÕð‘83ø¨¯Ç‰ÈÕ%–vÕgàÆ½²Z³kZ- çµø#—öÖzN¦7ïà„rŒp|Þb[¿Š7Ças›Ê±ŸÁÊ ë‚§¿’¡ðXutdÐzVWëCøˆzKbxíµüGZ¦=ø¼¯£ÄvÝôª¿ËœƒÆ?S“ŸŽ€-÷Ù‰TU’x%t6ü‡Q 6«©‡À˜Óô¢ìõÕÍÆ++u)9Gá: >ô¥ãüG#ðGZ̶Ɣ¾„ÿÈïíÓ1àß›`ŸL^U­êµöÎjq¯¾Ž“2^2}$%zXI'À^I ˜Jpi»ãëîß¼6â;¯óvÓÁù¸}M¯/uö:3ÜOLY“ÞÜÜŽŸ·”›ÅM_'pÎÇeg9ÌJ[˜p×F3ž‰àöt®˜–¶Š©gvºÉ>²~­gÒP(ñÖÀÑÎô“-D]œCntú–ºØÜ¶¥]jr?¬BâQç„“Ï^nú8<䔑zØŸ0ŸÀ‘Ô‚bênÃÛÖý€6–3CÌ û-ý Ìô÷™†c`Ô¥Ÿ¿} 4ÐïTˆ˜ªMËS‡÷ò‡qÊ›÷ÙÄðüex¸,E‡2?F·© ߀À0OçÃ锣±¦Ê{ZxÒEßœ¾£Ëà?I|²8TùL ¤õÂD}_s(ý½弫×Qœ”n<¸‰|;š\üêùƒVò ÿzè½0P·÷ƒ5EÆÓdŒp¾nˆZ?jˆÓÛÔ„¢ŒÏÓ©!TÁqª»Yü•ÛRdû‹ù¯¯4ÛK'à§a\ÂM[PÇPøck æÛpðÇHné9oA‹fR¦à9·|…ãp 6rj½ÍûÑÛÅÀ#à ¹1üÇ™ñF¸]ídŒU|Þ eü-ÿ¬³XžÃKÉeY[#k0G)/«1’a9?pñ³{!Ö:¾ Ý¡™7è#½ÝßJâÉ ´1-þÿ¯«hdˆý»ÕÝ?m#̶K˜g97f[n™!»¥4ç>ÒtÞ*½­µ€÷ݤœ†3ŒÉS9•¨æK¸;SCäßfK@M쇂*À=øâ{òPfË|(q½%šAŸËÝ &Z$5t;Fq2|Þ8© R íýÙ¾>ÁŸËYêLÀüÍé$o¥^”‚ëKDàs6-.¿È­¨_?¶‚?ÆHíþ¸Àçx|b¹Å99 _³_Å[íD3—q'¯øyøŠ}LóÁÛóÁ‘#t½„×áú;Ø×ñÒz ôy?rlµƒsc~ÆÝ hÒÙ¶vÙ«þt¶™„XWM !«òa;…zÈW^1ÄX£qôWé ãõ/Í¡3ô‚œƒÛê^îÞ¨1Tle^þÆùŸœö¦M0ÿU3¨¨ÁóƒgÀ+¤ž¦Ö„^/­áuòN‚ïè,yªáT0MÁpƒè¾ý®ÍÙÿ+çÏJ¿qâ<¢ÓÔù8\~}Ý ìp6¹_˜V¦¼‰é– î¿*ì–r+¹%ÝNôdxøß¯nÁªJ•¨Ð3ŸI`ºý¦•nz˜Çn6·âGµó‚Y·g e¹.AËõs–»OmKZgØ~vš}ìzq‡sÚIj÷‚76aͤ'া®^,ÖÎ¥.Ô:ãÒ@åüh™Ÿ%ý ”æ×PŽGÐÞm˜§S ûkÒjÓ÷=-<ãvÁ';`nŸ„ïWP šÿ+(åñÜ+ñ*÷-í†{úˆºŠÚ٭λv |êdq =’g€B~u¦1` 9ˆÓ«º>»X­çá!¶` ¦£µá,åC}ÿÑÖib*ƒ?ò"8ÿSèa 0lðG€;P"{Ýü¯Ð‹ËÃBŸûc,bk05õüÇgfªF.â>ÀÞè<|4‘Râoõà‹ÖñsêÂ,—¡úsù{cs/x3"Á}Lx7du‚>ྸc©ÀW¸ùT¸•\ü——Ø@êÊЩ9ä*W’2²×Zs £ú7ÏÓmf›%Dú¿Û¸oiy)?盼øºh™Qöñqi¡•u™^ÕˆrŠ;I ™{ÿ\ÊSök¡Ç†ª]â~{¿­û—­A q×jÀSùõ£È¨å:œFfèdýÒ[¯7µ=ø£ øã WãXð`$¢ìâkP?šoÅkoÓs©`}²Bð¦\ø“Ü‚ÞÈ-$Œ·hú©>¶þÌó¥Þâ“ÐÍxø#¥dCoا¯ber–;ƒ1r¥}íÄ~Þì°ð‰t:¢|+?ËBí yá¸vi](±ƒu7Vð1°üv°ÑNÆqYèûWñ;/Ý‹póûüÙ§ó³²ô‡ß¤+幬w žÌÄw½nzLâ«Ãá =þ€¦Y¯ÐÍî}ƒ?¶˜¸ð¥1Jó¬ûvð~½cMJí¦WÐÂÅz[ŽIJ¥Ï9ªWM:AÙ¤ä†pÁ%ø¥y5 79mLG›î² x´Gry[t¸Œ–lJƫ̟x^ËyÕt…”ö¾VÖòFâ¾ôØN¥äॆ\ö¿òüj ýùwŸê9qþã÷ç‡en,ÓÜä39>, q3Ádw÷9BVØù߯#Nf•­<ðO?$7ñÌçnç¼ig™šæ„›8˜á÷Ã/±;iYh™¿¨#m±•©ó“û9”õ<[ÍÖ´ í¬ÿ±×9çd²W¡‘÷â~¯„ãÈÊ• k;ØEP¹À­üzá64Ë»NÒ½y6ÿ_þöõÀßEäð]êKI€8EàÝÃcW‡î¯5^þò'~ê6Ÿ¶©0§Êƒ?ò«¶¶ žVÉÍGi?ð{'°z:°£M4-ßÓÂ?ÝÎt‡ºëŸÏÿN„Æ_Bt‚ûwgÑMòë.>s^¥5ÔÇ®rÞõ)†óüÇ šD9))Í ÏÁ}À‹÷i)O¦Ê4z/20èò3¥ÇmÊ{`‹…zþ£‡ÓÝ4@¿âÂÕ›_Ç–£?‡'¨I÷Í&ãAß7òÏU }»àsŠÑgT˜Þ$ÔúçI¡W&ø¹"¹/gàHˆZ‘fAµŽ Öéž gÔ˜ðiàwfÎ Tû Œun1+77ùüjœÛÅúït’ó^|ª)? ^Ãý›Ë¬â?—br:¸¬ìá®ø¾Òp ?ò§2ŒÇÙböó=Žà2塦”#ÿþc7œÍ&ðGfôñ‚|§õu·¼û|{J"YÉ•9¾÷1üÇO–ŠÓzçbˆóçσ¹|R%Þÿa9=øã ”âì2M§±–èCí5?H:Ê ô=6?ºD’c|sg£ôV¼é6+—àãàñüæì%¾,×eš,D{bzK5-0ï‘Þ–yð{Àm3À[Ø“|’?õ«Ýù*V:g­32pvöwÝÎÀÈ¥ào$¡ŽÓ”Z]~“ÚN$…Ô)ú£ÄÕÚüq‹ðOà‡p‡qù’­ö*Þ'œyŒUzsšÂþJ}Á…5™7F—ÈrPïé!½ ¥üÁÐûk$…^…†ëÎOÐó”Äö.úŸx'œ}&3}{€ªs+xò–’Æ‹£ t…&ÖG²"˜‘±‚þ ¿Ëe©¨íôüGa©5˜ «™( ¯{Ãluº™>6%tgghœä´S*zGufI.ߥzí4×Ö;§Ù¼&ºJ¢x™á@ŠIM} œxaÇÒd1öÙì¦w¬»óºÈï¼Þkþ0Ðü?®þ pu“û•él ™‡NyDYhâqK€?8úVÿûu6°ÒøYÖ«5ÿ´QM 㺜g¦…mfú˜;nºà²¿’Ø#4žê 4ìBÛá?j;'Ý̸c£mGÛÜ.·ÿ¡!C¿N:8Uì}òsIµ åô P¡"å ¶v%0å&Xª1´nKÇ´R·¥m–a-»Ð9ëë/±¦@÷~Êéy \„pŒ@iüKŨÿÏiHéªÍ‚O6ä‰péðé–X9O)=VÐjðÓvàÐ|ŒFYdš¿g­™Wüoˆù“èü‰cÍðG_(º<‹ÎI!o›N‘’OÃkb¯™f÷º{×´WV'€ÃhB%é Q¸'ýöJ ¦«ÇEíàЗݿzt^g‡ø;P÷?>?èÁlv#?Òã–E”U:nA·L0{xçîûC¼q ,6€ªeðë‘gbÏçÜ6MmcÓØÜ/åý¨v¦²ÛÙN@çV´ß桊Îi7'5¢‰pí:{É=øA‘~q®9e­Ë€£M±ýüíÅ)}þØì›…u>€:ÚÄvˆ}øñZÂ̲­Ñ.¿J÷:ðÈupPl(¢¼’>áçT‚þ¶5 þ |8Nã`þݸ ¸7íÊH¸‡“àÍl|þã%X X Ü®KsMÍ÷Œâ w0µ>µ®ÏÁÌŸMUÁ Çó`®Ä#é Ú¼¾ëÀêe{¼‘Ïùí+ŠSØMþC©ÀjãàkÆ×囹·ß®ËÏð=·À(~¶Ë‘øý3>dk…zþc´Óß´G¿bÁÕ¹Œ{Y™¾¡g`tÓl0Éep¯.ïí£àÏ(7¸°a¨û¯²š…p á’=Á áø‡à.gÿI] Íóø1uç°r•pZø“ãÁüW—)1§âæÆq÷†ˆ7ÁhûSaJË'ø!Wǧ'Ñ*Ï/€ù e…Ôž¦‘½ø[i skþ„+ò3`j|Ì«m>²–@L7,åÃZHãg–+À´tð…$½¬àsÒYëèZÝ£·øwÆ[7“‚ï¥ÊlNú£sõ­ˆß¹J•h-ÔŸ÷k¸«22E6KAÎ& u´Æò6ê `ÞJž!=Á"­Ù^Q|>ºŠÙ³:DæÍQ¶$æë!¬€pkááË!Y(À_{k5µZí-ÇY$Ýõ8k%·ÃúƒHyYÅGìŒW±Š8»œÕôEð­Lþšå+n"ñt˜þ-Ý$ ›µ)üGf½žû^D›ë@õOiŽäÍœW~ÆÝKÂm­WñÖ8/Ý¿)3_ƒS&ùÛþ¥²ZJ£=-tšDÑúLý3èÉÀå™vб’_·ó—¼à~èUB;ßn{ÕßSàì¸5¯ï¶Ã¨³4òâéd?o˜Þ’zm¬Šÿyp2½µ†žá^i©I Ál%(<ß™7ò'žu:›á6´T/8óÌ´F²zótœL—˜­¥9½ÞyýÔ«¬Ý%¬÷…&Ò,ÒNïÑ0Ú`§Ò3›÷»¡]ú²ûW¯ôo¼ñp†ÿqþ]ÇÙírӛަ yêøÕ96ê»ÕÜünw™cœ³ïñÆu:ðƒYd«Csç$K‘LrÄäüeÆÛº¦Ÿ9çævCîPù߯Aÿñ—m‡5ßžVØ"TØùÓÍ€;6Ê6±Mí{êóïžOV³ã¶Òw´Ú63—¢¬TÝn¥ô'Íšµ£î6¶f?äDIG3À¬²M€ÒKÉßë³+°Þ…vÞ Çë10L: N¬Áœ?ï|Ô&†.oÌ£©P°þGKx¥'”‘o‚;þî}K«h!˜`ŒéúžQ$³ 3èRpÿÕTl‘ƒ—aýŬ] g³ÊÚòypç"j{ý/üQÞõ÷ŠÌ fi 7ðú=ŒîÑ6î.öÏÑ9| -¼'7þc)µ Mh•!ç8ƒLèݤ< ýóŸx•Å\©Š;@ÜüqÂ|)[¹9Wà=à¤åP±9)>e‡«mÿÕÑ@&Ì·é`ïaÜSr°Rm´-+‚3‚Þ:Ü…#È!ÞÆ‰99Ÿ…ó¹Œÿ%à¸ÜÆÜø‡ÿ˜ ÿÑÍÏŽLû‹ððS×€†VjHV™(eõ…|çQKJÈTÜ©ˆ\•ç©ÁúQëm®T3à~5g8¡Oå”E›&€é\(Óz¡îßâŒ2mètê4ªGÇéÜyª¬ÿÑ“âØæ>oåVÜ„OÑYðÑD¬ÍpôØ=ôúƒiáw{‚ûr¬rÿùU5x¤Äðxtò j 'qw£×p´­;ŽŸOÌ-á?BfçèΰƒÁÞ i¹úÕ 3% ‡‘j’W¶KyøtrŒHfÙÄ-ùS.†Ø£8ŠŒçe6å?ÎÞsžÛÜèažÌwù9ð'¯ƒÚŽ.[ø¼´ÕZzH¯©+¸­$ÞWB»ò/WVóWp^ûCÔÿhÿQ—ÓJóOœ£q&![¥2'•e:Iy'€‚ àK3¸®†ˆ·ìö9ðù4øãrˆ÷çÓmq`˜Ÿ'·…w¾ÆäŠüþ™*ɽEšRãÀÓ¬cNÛmå}èG'ŒÍc8®ü2™/Ø×.•sÒÙ†ù››…‹ó’à~ñ¼ò‰NÖL¹,«µ±ÆÐ"zN¿×ñ’\;i%D¼¤ßÇYä<>—‡W¼qþc±Õܤ”ÐüÇÈÈmàU<]k ¯‰N—l:_o¶Ð/½$zUR{]tŒ|¥ë¡Dz‚Ó»ƒ«óÚvË«þþäœ1™p/*‚Òòd;ü‘ÇË Îh¤au¶ÑŸu1Xc–¾”½ø[]Ή¼R?œ›cîg‚³Jòjw:šÞ6°¨9Ø#9—ÌÞr$ãä‘ »UÖŠ^=ï‰~âµÖnâzá5©V•¾š«æžFOmZhÍoíúЗݿz ¤}c½»N]çãpùõÁÙà¬v™ïMsÅÉ|~•?øö¼¨»Æ |dþ’‹Ùf>Ôi!ðÇ)Û$4‰ÝQÎ5ÓÒ–5]Ì^·˜›é£ÚüÑîÛŽPMi±ÍF­œ€ù ¨ÕÕ–³ßÛ5vÃ濺ìrÊÙ›˜‹« @&A§ç¢”‡šØÀ“GÀÃÚÀÿ66¼ífCË;òªmzšÖ?Á0…6À(_FŒHÀÐÜ<lrƒJÃ¦Þø³Å{ù#¼S8yÀ&û.Ãcɯ&~hð? _? \¿3u~ïÿÞó翹£é98±f,œÌ ô"ÊÀóx÷âÊ<‚~§-ˆÎ| #±†&Ûqï¬?ø™“߇ðÜ Ò`øµ_h!˜®~¯Ë ÿñ ²ýN0|Ê63¡íéæô5mÁñáÛê’¿ŸºfK3°]8îEb·™0ÀÖo@GÁž+i§O¡á…Êgà?VÛ©ð>“¸7ð'&˜± …gûعZÿ!5a#‡y=§º¿†{ý~%×´3žòÌäw„õ+¶¤à]|ƒÛA ‡ *Æ)¬aQJJY]G6À%Eá’|›'½‡ò.[ņ\…Ï‹Þ5…Ÿ™Šx#fÝ." ð/HC-¯ÛõW]Çg¹‹øußKsz¾Â¿Â1,夔—v8¿½±±k¨ îÜ#ªÌ§¸(ø-“LRÓÊ¡¹½+ú*w;÷”.²*>ÜÂ'âïðº ñ—YùV¼¶¢\Àˆåï9*ÚqM®Êôm€Äõ6=àÉpFËÀvg1ŠÓsð9±d‡zöFõÕ$Îvgœ]%¾C>,WV:[#hÙ%›ÓQµž…#¤ï ßèFþ 3r-g–Óèy ^bk¾ŠwЉaüJW¡unóüFúkZ¯¶.–xÚMïêj=þøDÏ‹ñÆh#É©‡0§›ðuÌò ”Â.°¯óOneÀ½­Ý”ž÷ÙÅÔTbyyÀC5ÕÀs ×çzDËédýSÎK-ýDWqt¯™Ô'fã’óK*øjq¾3ýl"úœ”Jt$õ6kgðù%)W4LK{=¼-à»:J^èÍ,ÝUá‘Úebaì‹ýWòï d}ãýù“ÀwÿõÏ:{ÜL¦¯Éh.:E?ÿU1pGn7›»ÜqœÛµ/ðƒ™m«Ác¦ÓVL “ÆíãÜ0uá?ÚšmnU7ãGµ3]‹ûóØvÒ´” ŽN£~þ [Û~‹ù±äÏŸÿŽ~6²·™Ë¡Ë—À5| ÿ‘<äW/¿ö¨†ÿÞÜ~bGÚwUâ{óêm›5Ö¯„´Œv@uÿJ0#®Rv^CŸC=× —¶´I>ªôõ£º@coî¿*Ìã ÷Ðd´f)æÿ žÈù0ÜI8±Íø™ PùKiüÇ»zý¹SÅÍ G1þ#3Ü`LÄë 6ú•öð`|ÇbîÂÏ0®wñk0jÆóýd«™ÐžNrÆšNèWJøÖÁê‡à?ZÑož»ÒKóÐøO›ê›ÀuíAKPx̧¦”5Ôü»ÉÍ:;–Áƒ83Vªuà¿o¨Íóy/?§v|“Ïó6Î y£x†6Q\ŽÎß™GNȳCÃܶx-3ïä;hÅã`˜l¥¤Ä—e’Iÿ†O8Àµ¤84ymðG9 àøn<Óf¶!Ÿ¾t"`Žõ‚rÌ,Ïù$ņoȳŸH èR=¥Çø27“d²÷>7°ï Ç‘…ŸÜêÜ|+bs÷oxÞt‡j o~>ä2VÖJÿ:Nãx+4‚W Ñ;Ë÷ø½'ÂHD0p$÷àî›!oÅo+à÷€‘2ÂDåK¼_ÎÊh™þIuSY#yûÀG]¤.S˜ÄuЃ{œDRËp~ôÆé…âήàó«Ò|#6w¡ ·’?dÆ,½l”Ýp‰õ[½ þ*žÖ?ÇÓ\ZnÁK…å•¶Ù«x3ϸœºl=ã—6&ïá 2JSyÅõ‰«S4¢·VŸâï1õ¸ü†¿·–º•žR8¸¾¼˜¾²Síëú¿kœsÆÏ T³4/µsi:¿ Î‹»šH{hÀ»­™à?ÎÈSÉ77‘3{Õ%Ülx®K©©?¢¢oäoÿþ# ÖXm°GVZ%µ½íZWÉEɬ•¼¾ZÅëäÖ”^w%á=£g¥°à[¸]³ÓáâxäÚvþ;ÖÝ¿y] ”pÞ¨ê4ÿó·‡.ßäÆd2¿³ ¬ ´qK¸¥ÜîÇ:‡?*Ú±À 3ÌV{|I{í/®þc¸cl'›Ë´67Ýoƒª>üŠ€q®ÿÑ WžæÚ8ÔÜùÔ|ê︶¥li;ÓþäþúA‘:Òö<­7 1ø=„ÿè †Z Q>¡.õ·ÑlÇ|>Þlÿx@³ ß—åsÐæaÀ"yy½Ä/C¿s%¡zïå¸NŠGGlz¨§TÜš;¹Àct ¨¿Šé:âm¥mä׿ÙÞ«gǼ3¢qr¸¹Ñ®á”i>Ü@Xø¥@ü1X uiÜ‚ŸþÝÄÊìNñ¯'i£íbBV×ð¯™Î`Ó¬è¿ÿh„V7”D”ßéuèo³ü±—kqU š_Ùq,…Ë€ŸÉ \ d6‹íŒ÷à_V0cU܇\¼€[ò2hý‹~Õ>Í‹8 'áuPÅÛpïÿ†Û©jþpN…ˆ7Âjúod€Î—Áa‘ÐÃð¹¼d’Í’OÏû×p}É/›€Îñ'¸;“Ôã…¡ì¿b7BpÿU^žÂGÀ [€EË8—Ć#º }µ˜®Ñ½z€O“D—±ü54øA^ÑeÇnjߢþy{7*Xw+æk} nQ¾K¥L‘$@àiú&ðöè Mæ(.¥ é‹q,h†¿ø/+˜C×BðÇ4[†+Âßž¥ @ܯ9²þ£÷‚6_®)À±¼a²›K]õ1#˜?ñ ÇŒä_ìðW±R:K3ô—eê/‚:)ÃMä¸tѧÁúQ;µ”ÆÐ zU[ë0I¢%5—žãý<”p~|Ãç@齶Ыx?:d¢á®ýŒ9ü´)x—†KˆäÒÉ’ ¸Á›ÇÊcÝ)·tŒzº s¡=îWðGZ»ßzÕß#Î^“ÈT™ŽÂ%5²¿Ò I ÿ1K ªÀ#Õ³Ñ,:B¯É8Í¡Aþ¨*YàVcó7”šÂ¼®‚yÍ`†Û¸Ô•zBYŦSÒÙ[ Ueœ“p‚E´ × þ£”7PKï*\Mi®Ðº\{bQ9nkg½cÝý›×Y¸Å×§³Ôiò¿?·ÁýW±L'ß òÇÖ@C7¥›ÓÍä®sÜwfµýºXhæÛ*ÀâT4ß®pÿvýúƒž­a©hvº1?²~ígP Õ0Úõi ðu˜ý‚ê;áLL`J4Û–ƒ¾Xï~X†ÇãÎi§¢½B+á:Ð0à`BNliWÐ<:GM0³šSiðG÷7jâ¼ûêi™…Ö¯€4ì1‘îÓyêuyž’ èW˜þ‚k mRæ½üËé }³ü+~e£Dô7¢oÒÆå™hµŸã® Ôø*F­M¥Øu‡Ú€NÐ rð¹:èq"î^SÃK<¤`Ž»t½ïK m‡wî´³N%7žDñ±JÆSÄàÎ0ÿÉ\î@À5‚ûwŸã"–Ÿ]ì<° LhÌÞÛùü±NmÕëÜòwæB#<†ÿ¨|ÛebÊVn†˜{ܳi$ãm3ª`(üq.PÞì‚ÿx þhÏù82/SN æ¯jÆkNÑðçèêéØ| ¼¾ŒúîW6óâÕ ¦º ÁFUpWã³ßÀWùTJpxùFÉ )ªVãç+JQYÁe òð Œé_\…‡?BÖP‰éúÏÞZPjޏÜYqsJ9ÆeVÖzVð.%,}¡₹ò§2ÃQnšäx+b—àþ«P®¥á®ròß<1[ÂpA™ ÿ‘Ù›§74žÌç¢pL8&+ZQ¢ÁÓ]¤éJˆÌ7ëlMÎÄ~à|ð_ðE^ ÷ÑOÊs_IîíÒèú»DõË"!ùu#÷ä‘Ü:XÿÓ‚2„ô:ßzJø_(:ZåÊ|è•,\EnÁeÝ’O€È;´PÚ~ÕKŠj*­¨óÁÒíx%g–Shkx^o3¾Š·ß kˆýÝ#kÈ“«6åBÒU?ñ²éI«ƒÁ”Kõ$8Su‡ÜÕFZIòè4úŒ«ãŽwæ©ô™]l¿Á§MnÜ\˜W©y«ÝDC%ƒ—FjY} Àæ7ÀÉt˜.‘£’Bk?öjS)‡ˆáø[ŠNÃü§ ¯fázðÇ@›Š©ÜG :+}á?šÊry"¹4‡×L+{Õ¼EšÜ«¿ËÛ-7à*»ªËèŒý‘kª çµãß±îþÍë^ €ó:;ã|ç„<¹ô¡×‹ÀIç”›Á 1)ÍU§4¢, Œt »5Ýìîjç÷ÀþŠv50ÏŒ³5©"¥£9öºë™Ôn_çKÛÚ6ÍK·Œ[æ#ß,Ê<²Í¡fÐJ†š8Q1 *SS›ÍÖµóìI÷CÜ‚?{Ž;åì)`ý ¨Ý¡´²ràáX» ªù þ[qjGml2Ûëƒò—´0ÃÌzÛ˜þ þpþÓ¢“Àº0PK%á?¢òU¨ÇßÀ¤C)Ó¼?á À <`³Ñ'@¹ñøLN2Ô›¶C¡'Àú>@À!þÉã1~ÅX3à=- oæà5À7 vÂQ¿z|ÍßsnÂùy4˜¿÷)ù#2£¹Ü ímwðrJ¸)þßþÝÔàˆp ýñço4›»ÓW´Ã¯7 ó;ÜÒjüKsÄ;M—m{ZeÈÎ8Óý Ïþ3µtjBŸ·„¿‰Ê}é¦9c¢ÊN @g>A‡ÑÆ ô5œXªN±Cáëdf;øÃð0à_ŽÎkþ#qog‚–ù?.nelGwÀw…åüæ¥rvÏ žÿø†2ᓇƒ¼8,[…]© Ie·|­÷$–¬ãÚò•láÚPì%ù¾; µyüpÈ=±ÜHàûÀÓEÀÜ¿xîæQÎ$qäüÇ-¢«u·®cT‘/d‡Gº·E&ƒ?jý#b×£¶˜Áþ§½œ ãþ‰Ô”ùò‚ËR¢q½PäQůGÕFö@½Gçi¬ò\z÷ì'Óí­xÛm1. fÙxþSÈ]¼I&Éx)ÂßñVé§ð/uZ;\êë^„1m ÿq=ÎŽ;û†ÿÈâ,pÎS 8Ç‹`Üy¸ 鸆Üâß“/e—lÑú¥VÓË:HGJB­®Åu&Ÿá¶h[Ù̸¹ÍoøCð 8Øh?\Ö%›˜Wq9pn$¯$üGF¯ìÍU×KãEѽ"^;ýBj©ÿ$¹$üG3èäv•½öª¿çœõ& ¥¥2äWöó·÷‘ì^V  gÔDïèAͪô \d:S௼Úž1M0WÞ÷†¿}#b;ÓŠö;(¦Ôp'{¥–·QkÉ:¹ ö)ë5ÕÒ^Go´¦óÚèB‰ä‰þ*q¥§^‚&¹]œŒ"Âg·´Þ±ìþÍëQ òïÏÃ;ídŽþÀË8Gœnv3À$5'?»ájÌÒÊnq7‡»Öù;ð!Züõu=0Ö,¶ )ÜÂR{ÍcʸóœX¶¥-jš™»n!·üGúyÐÐ÷ ã„nXlcPa'ºIMU©–ýÊV±³íÞœ!ýºìÜtªÚ[´ :¼)neã"Px5íZ¬ÇÓT1kSk›È¶³ïz’óæÕ× 7+áîÓ\pÑôš{4Pð*ef_]Ç=´•?©Î{ù#­Ó8yÜòMÍS(~¨œûeJ%¾®ü'´p ô}A`ê¿gc›Uô'æé@ú} ®þI¤Ä͹ /¢CPu›ÑúcÀŽ!p壜ÐvÛú9Ýüä‚sÒ‚-PxÄëO3à¼|þÈKK¡Ó_Ÿ©\@L?ÿîà…=¶‚ Ù;;CME¸"ÿ¤x ¸ Cõ:`·à€np•{LÙÔ X»mþøû¾¬2å Õ¤6kÁ/¨3p(=ÕYc„1ä–À¹Sü'µç§ð9˜ÙÏV¿Q_bt ™(nÈÙ=ÉlǃR€on¢ë(Ud ¿‘HVJU(Õ²›ëúnL¬ðÇÁ\/Á¡ãl-Ä}IáÆ£rÔ•2Âüÿ±Ü¯AÿC¶ó•`þ’Eº^rüê´$îþE´šd ²Ü ¼5wz:‚ÑÎS1ð[9þ ÈÚBfH\N&›|_zkõ„ÖÆ¶òàáÌü)Ïâ?ø\Òø®¦û[-·ËbŽÂ†ؼ¯âÍsЃ{þ>¹–næ´ÒLãyåt øg°†ó6è^MêÅÒ;Ý뮹¥¤.%¿bñ ó<ø9öõþç‹ÎðÇ×Ôþ-/°;h¬¤ñrêÜ…?$2ÚóR¯k~­÷ÁvÉu”Žå|^sIOñ9—"Kõù0Uy5 O8ÃL›…úAwƆڻ&U¼5ZW¶3shI¯¥–óÚyµ×M{Iï¾üέ þè ÿ1:ìÆ©úŽu÷o^÷á?^;ލN'Åœ¿ä–³Þ-wÚwüêN‡-Ý@úlî6Çu޽?ÄWtgŽYgëS!Œh7»Ñ5&¥{Üyh ØÌ¦¹ãüÈü»Ù¡Z‘ŸÃt¥¡ñö’­ãä7‰(?e·à?Fâ;>ì„ü~ç©SÄ^{ø;tF_ . µâ*‘Óó_ïÿˆè\tŽ»™ž&9îøO—ÖzºeÝÚnaw£øÛÆÿïë·ÀB3Ñ6œÉAKlÀD11ÝáÎ3SÛ62½MÀTzÏü%±í"ôÏsÛ޽ͳOm{'‹É10Ķ= /޾ãûcÎ9§°Ý‰™2h5ª2çF¯·²;€ÿ§{• u»ÙÔ¶Š}ôñú›ŸÍFÛ‡"ñLèøH m;ÓSðHÁ`–¼»TîÛÚཬÔç­ü‘Ëi|Âw¡¢'Àc| þh~’õvQdD­G!>ÖÓ·o}ÃÌ ?ೆÐ]Ô.6MÎÏ¥Ì`þÀÙŠ¼%] þð³ÎGéÛÛYÎ?å‹èpÓcV~O¾û¡¸škøb>ô÷µs ~ ïñˆ®Ã#âÎ+´EMx<ܪ­î|Xì{Ψ.5ƒƒx® ØãÆ“MàŠ¨ï-Z„xù) Zã3*üHköÁüA¡ósb FÔ';|V-üY,k ô?ÍÑ®ùài6øỶ8W1Îßøc¾ÛÓúm×í[AIF ?ƒ‚¯'ùd™äÖ’BVrSù¥ôwL”€‚Ϥ!µÅÿ–ùÿc7 œÓPÊ˳ù>6R^Å%%¹œäó2@ëê:èß_ƒëw“ʰf:þê9læ¤àÌ™Îå7"öwSƒŸ·ÓEðÇNpW€ÓJ=Ù(é¡ÌçèéíÑ‹ZS~á Ò§ÇGMJJpÞ^8Ñ5aüÇ&›‡«7×ïFDKí’…2%™,©½mšLciDâ•ÒI7Ãy,àf¨Á+þP²É7|Í{+™³Ð9~,ħ©$zo•ãODÁŽcò³vR縮ctô}O-¯!| îí8ÙANÆ.o±Õ^Ç[þxFYø,zì<Ÿ±‘y!7“/5±W_çKN­ž7BwiR/ƒ^•+ÀýªÒP7cF¶ zÇí”ÕŽµßxÓYmŠ Mýõk‰y™ŸYOâxyÀºõà³VHðÑN­¬Ë4Žî‘²`»mœÇk(¥)”GŠþØŠ?Nø'ÙØüð3m);æÄE)ïÖÆ2I\ôÄn”§‚×Ý»¨Oµ»6‘xÞïò œÛFÿßüiÇÐ û”Šp-;úæÝyÝ T µ_8ºó•Sà_ò‡8WÃîÇf¤)f;~v‘u¾n·º[Ä=ä< ¼ßùç—óÌ<ÛJ¹ÂUdû§ŒŸ å?¶;ºQ¸û‚~åÛ68¸8"¾WG§ójEöé!ðI"]"ž×[sB÷¯ÁØëÈ÷¸3O¥ÜÀ‡ß_×÷¼³Ùd.}ŽQ•œ—ØUÔYby)5D[¨§û¥ÞÒ}à’9`¹íèé#è£KÚBj`¬fäÚ`ˆ’“­âØçt4Ól*ꃌ¦xL9Žp) ìŸÅµ1Çá'®Ó*0Ö(ZˆÞÚa+˜ðÍwN/Ó­Ÿ˜ÀüÜîïî¸N¹1©Ýd>2Ž˜É?íiFRtÊ¿k‡Ã§i0ÞFG‡²p$´½¿ÿ#-ø£OüÓÙÁëá8r€ãW£-÷Q€“ò&švuúD·³ý÷Ê uÏRƒ_ÁMí§ª|ŸkJAÙôzYþ¨,K¹#ø£(w%‘&<Î6µaO\ŒãÆ¥ŠÔå™ÇQÁ ›éÞ¯Svóé­Àdàý=>ËM$²,æÊPá·ø§Ä÷=¨°5Pw¡ãõv=éç ¨Å硈_rm(ÞÌœJÖAõ&‚ýªådW•Oà9*s‚`þÝ€Ïá/™oÄ›þ(f9lìÊ_æ9"#d’lÞdu¼mp2ݤ¦n Άºß†»¦–t2Ÿ‡Êþ—ÑÙàœ£à¡žQa^-‘³7:êcÉ*[å¨Òš5ž­ßH,°Gƒ;öåuð9GáÍ¡òï®qî» Ñg ï.𠛞{òHi /áÚ¦H.¸×›¯[4•—X7ÈKíªå¥†î!ÿT›pŸs)©ýÁ>|]ßËÎS*ÁÉî&·Ù=ô©dôré@Ä»'›¤§þ¡;´ŒNÔç²T>Õ*º£xµ¤ ÆjbnŸZíŸ w¤ƒþŽŸÝ-gµ'¢}¢'ô{¨ôÄZMËë|0ü´H^prR~NçlÛ×ñ¶;GÜØðXþI57ù™ýí<ø«^%%ùu”ý\]© ¼dºB"y4ª´Ð ˜‰Uø·ÄøJhûÙ¯ë{ÁYaòa¬Õ§íƒ×ÚTü‘®­î¤ôרÞA­®ãô‰Ì`’%ü@ûI¸• Ü•"S^Jí^½N[ÓÏ‚ãî‹™‘˜ŽÈGÞ x¿Ÿá?il¯‹öð:À<?58ÞðGLxÎëÔ‹®Û©tǾôÏ@µSŸvÿéu&Ð8ÔûHN'Ù¿äWÎ7—™`ò›ŽŸÝpI »[N¡¸»Ýyþžëw/Ã,²¾¢,Bû­c♄îwÎ=SÏ5]Œc*»eß«œÚPõ¿Û~Îešo? ~Nj“‰úPo[ƶµÓì‰w|ÿqÚ¹âTµ~ö ÿüó)P\ 8eæß]Hw€´uq§þ6†maßåD‘~f¢YnýDsh/°Ùò1=ÿŒr²þÅ-ª•QxZ„Z¼•?r8Í(5[~JÄÙçœüPù_AÕ?–í„óßt×jô7½ÞÒŠÉÍÌ£VÁ•´³(.ycšN…¸ÿT,Êþù'«Œ.bïÁw»ÛPùœß¼b9UÝ¢ô˜Æáò£¶IP²žhÁ»ðë³ÁOÑž¿6ÑPüÜOh•}pœá=üÊé`Zѽ ÿ莧¨9êÕüh¹%Ý1›Í3^ËM¹Zqpí{ø·ˆ`©FôI8üqü±Î {|ÍsJDm‚údã‰ÜœðJŽÀ_²ò_ÄÙ8ïƒvß6‰ÍY¹µ±nØÕ!sÝA`£/¨ ïÀoµå{à¯ÃÀ# ¾H# ¤„þ*Ée!…e êm–‡ÁSÑ¥;‡ØjÛ?˜~Á_—‘þ# W¡,Rñn e<9Êç¡x[ƒ?öë#ÞÃuàæƒ?2ð~ιeSðüóÎÉ7"~íF NàþGÔ„pIþƒ>62Grs!YDMáÒËZWÖ‚ášÈ~® TáØ’þãÀÅ0O>WÛ ð ;Ñoåù+ŒÝó¼HvÈ(Í$ Ð9ÆÒÞ)Ù㤑î¬G{.à?8$‘¯ù‘í÷:V*g¢süÑ€¡p¸+¨t:'–s²];è‡àk:WGKBm¥¥u…«Ø G¶£ë7Ù¯ãr®º‘Á‘gi]å;6*ú°š4Uã•Ö©’lÕ›¤;5­—F÷˸›äÒ\7CÃuâ P È_‹ÿìu}¯;Lvø†´ž²ò ;‡æK4/ŽÔbúT6ʽ.¯F2ºX>Ñ’ºŒk) ¶IÉÍ(-<ßöPûÏ7:½Í›³¾ å¡´EZx¿hU™ÏÕT#z½µ¼×Õ»?ØK;Kï„Ü•jûÒEøhP™Y9ßÿdýîù@q'Úë–‰ètý×ïÏc;·³nAÓÛ|h®Wot{|ì¦u;/ï÷þüQ`³YbëÁ+ä¥Åö¹k¸ ÇV†íj~s˾'³ÀÖѨðéSZiŸØ¯ü¦Õ†ÿh ¤l—üíDø×çW§µ½ M»ºw>§à\”Š†Ù¥4ŸÎSW X jeSÙ¦öò;Älæ›õ¶px6Æ÷¾Dëm½pŸ_uf™öÁ]-3àùn€!¡7[ŸS{ºnN˜—¼šëBånr¯E´ÂP~%ÑšéÂåÔf—¯5ú9ÔöÏô9’Ðà·ƒ{ÿZKÞà.Gÿ8Á“9¡tæ%¶ìßÖïfrc …ºQ´UD¹È‡Á$?sAI¼¼&C¨u«F”cÜU’ÂåÜ|Ÿr ™Ë‰ÐÚ§œÍoDìé&Ä(ÝßV5ú”•SI™,98«¬†’Né­ÑûZ_Vrø’Ð"¹ø1ÁM[ø<´Ç™0+¿çÛ’àýPU¥¹?Çn‘uòœE?IÿK=å]WN?Ûáp%jÊ·9øã[>i¼ŽUÌÙꬥ€ø¿PQ0åjÀäOhñßÐfÇdväÐÓ@þqò”~U]Î;ù;ÞÀie¼c$ž*û*ç¥^ù:fÁ)~hýL¹¥™Fñë’Å?PÚÇðën1Þ0Í/ t;=Å}oq#Œ×¶—½êýÇVS’ü½c¾~XcŸRo‰î¥ÐQ޲G&éÏjY]¤Èf)¤t/ßò×ÀHOÃ5)%ÕäTåõ(¼âô3cà?†Oü•%Ç¥’·\É"y •4¾×Wkx_?"zµt ˜êxå ûëwÛÒ5;\"hšÏì‚ð§ÝzTqþÊû4Ðä_óGJç¦sÌÍm†šäæ¼ã¿ØhïQÕÍåÎt\ç]°4Ôå¬5ÁåÑ¢óíc7²¹WûÄ´²¥Lc³Ë­á–x¯r泋hPð$¾T†–Ùˆ4ÜIdâqzØ ¶µd~ÇýçœsNM{'˜k½Ôó JÏ¥)øcþwc ¬ƒo›½“ÿèŽÛl{ú§ðÁÑL‚z>þˆÄÉu‡ïÐ'ôÌÖ‡SJHÕÞÊ”Ž-'%åOø;ÊFùH€;[ äÓð6Z §°®d.îUŒ:‡y ñ÷+šYÇО¿z%Ê×Ü“ì1ʬO‡ _ÿñºÿ\Jg;Ê ï´@ÿ2N57 OƒCÊ|¾ ®XÃà?æp-ÔúÿðÇ*àíÐàùÜëlY^FÆ™ÎÓ­Ÿ„§€Ó.€Çë¯[aÖ?D\…ÿˆôkY g´‹SEø§¬T’„ûþ#—Ù Ç‘‡B?â„<Nk>Pz>b,V?¢@äK@ÛœüqŒåg¡ŠÁõLàoÚc”ÛÛvG2ò6¾2Üæ¢ÏÀŃçÔ’Z6pU)%‹ÁqÑõ:/çÈÒŽ´…lØg€ ݨèµT¸ûœB¿&ã-\X¢Éa¾._ic]«SW¸;8åG e>Ír™Í‘¡(¶;‡Ã¼?úÍ?7oUæ—”ZZÉ<ÉÄyd¹ŽÖ‡ZÜÖüñ#WâŒpœ‰$–¬â£`ý{aޜ͵åQƒè½Ü<†cñ]Þ%?I?ÂC%¹¢ •U¼epKc¥¶®€«ÛÀ-Ѫw8øcÿÊdt8ÇÀ”Å¡ŠðÚIŸqMy*­ô²dƒ«Ùƈ©Yôv‡ÿH î,¡;Q‹a~n2Y.ŽÃãmÍ×ñV8ç]rï†Ò9ÆOlž…x_Â|ª³À?í÷?éfÍïÅÖmò\‡hi¯70[Ã4ÇØÌ`{Ø»¯ë{ÂÙmòÀÓ}ƒwÚ_¨¯$õ²éDx¢çr@&ë9Ý¥u*üÒ&‰§•ußÐÁR‚"ql®B™QŸT.ÔùÃÌs¬ ¾—šŽJyoøc­\:ú¾¦®×Å;®‘¼ºÚFrx/e·DÆòuÒ5;‘<Ì´\ÕN Úý§×­@`®õÿs©ÓÝy¿}]œKè§rf¤)onϯèìVt«¹Ÿ¹[œ—ïy~íéÀó“­,.J+ÀIM·ó»©ÿÑËÜw;¹uß«œq€îíHW×sªÍE£„&Õ§Þ¶’mbØ=ïøþã±sÄùÔž†«^‚þ›dÊÊe¡FÚÙ•4“ŽÒ~^)šbãÚ~6¼} a¯ñf¼Yn›A NJþ >aægd>A~>:O Ø×÷xûþ$N'JGgÁ18ÿf÷Ÿ·íü7’‡pËk¨*…O?¡îfÔ[ZÑ3Óý­p0 Æ…Æ¢4‹)5å!ÁüW³á:6sžJ÷£~vü?æ¿òœ†nÔh2U†"žNQ)N0É}šÅý3ºá?ü쎷PÖ4žg ýBÛmgÞ±‘Î7¦Ú*5Ï®>:w¤zä¯Èz¾¼oOvq{hûÓ´ºxf|Ü¥R¨“{þº²™…ö[°àPþ<–Q›àþy&·‚æ_ fëÄø(tnNý¿ b1'àž&Òßž_õwÇÚviù8§=¿ ÞÐÑ¥ùW. =[JéðÈFðG1 |kŽ .> Tõ¤=ÏÁˆŒ÷·÷ ÝÓŠ ð*N&Qä%†+Ê)id+6Ѕмù&%1±é%0R ™Â)èc:æüó/ÝHpm»é Uá_Г¯(¦´i’%˜§”ážk™àûp ~>ø%`7O¶ñM(1Ǿ™¿dŒ­É¥0fwP ž:Ä ÀF£¥%V o܇j\ï$zd„4ÔýhÑ1<§àç>\Ò×ûu¬<Î|ÇÏ5Y‹l@»õàr]úèSùP¶ÈN0Fl­‹úöÄÒÏ¡ûýs½†ð&.-óÑ–QyŸ-û:Þ&ç”þé"£ €ÿxH-øŒJ;•±ëí_ùïw:ÛMr¸÷:Pe ù»‘þ”¼\:KËé3‰ ?sC/i1­çå¨$ÓI:’£y=¥ Ÿéˆ›`×ãT5´2_‚?¾¦.ÁÌÔkä¸7ü±IŽK&-ï ´@Äö†h7‰è±^‘¸ÒAŸAcݵËàâ£s^îjôÿ×µ7òïœvÿÚ$‚Â9ãf2cL:s4¸ xC º[ÐMâfrC€)áå øçë·ÀR³ÌÖ!ÿ4ïÉöˆûApÿÇŸ¦®Íj>7›ÁIï—ÿ*+|^úÍöV¥¹6!õt☄ð-á?šÙomˆûn+Änô²×W«àf‘ÓsÊäŸÜJKg• K:P[›Øvx§ü‰ƒÍ³Æ¶&?«éJ é¸ìá—7÷3(&_†ŠðÇ7YuÞʩNßâ>(WFznéöÃϬæûXEÕèGŒÖÜÔí­çŸG5óP¢–Àfÿü­HøÓˆÖP.ž€ÙÚ?æEˆ¼ Hz <²¸ÒÛúÇõ»©Nn>úHž ¬æÿÍ4>è&MåÖTšVøg¸‚—ïÕ6à;ýhüÇJ[Ý„—;m¶3Ç´£3‹Ç£gÏá_€ˆõé7”·øã¨I¬«ù}¾–FQ´`vpWxϯΊ›-v(½‚ê µ”7£ÖC(/ãF<šƒQ¾„“8áç‡ߊV8µ‡£q]ðGØó£¦ºìhjMi׸?„›:C8 %±l”êï!^œ[–ãás@ÞWÜŒ‡ØbË¿ÝIŸQ*?UžÂ™~Äk9‹Ä“C|UÆi[ݪtcpýU™öÿæß½Ï‘d*ÇE­·:û߈ØÊQ°¼ßY]N-Ýd¨Äæ² j<¶7YoirðGC©. ¹ 8s:G“W¼8<ˆŽ‡Y5Ù–‚ßõ[$x!ʱT–À´áa’Ó[¡‰á?þÐršGJ5õ³ïŽÇ]æÇœY²H/¾êùU!gµs˜ÒrA~Bí®¤ê\J.IW´Yºàù 5†–ÖÚ_GIt­ƒÚß³‰^Ê.{ÀÏhv¨ý󜋮Ù¡#6Ñm0•Ÿ9‡| þ(¦“$£ŽÚ/Ð3ËK£ûä§Q€Îë0Ž:ðyx³©”ßö µ~÷sÀ ,h¿µp§ìVš,Ž—T<™ÌÖK¯hJ¯g¡RÀÏÌàóZ_>Æœô¸æ]x⿲xq:™Q6*fx=ÊeµOªzû´.FÉCÉ£å¼úš×ëþ(æuD}]ïªüÐUŸ.Ûi*&—¶}ßvÿéu(PÂùKëÄušýëü»‘ÀÛܬæ+“Ðìž?¸5ÐÕ-í–ps¹kÇ÷;ðtù[ú9&øc§ÝÛÙyajØ<¦©¹ëÖr¿W9?€ÏkHmšþkcÓˆ`þÝ:Tʶ5ì÷ö¤6wø×9ç¨SÍÞÇÜ[Šˆ3ð›óS^êcÇÓèüŠT_oecڦ¤Zl«í \D?Ð\òOV÷p‡r%"bÔÿ( 4Müùw?rZ—Ûò8×cЏã¿ëÍÉ›‚;Å—QMx‰QTþ£ë[ZQÍðíha$9øÜŠVcúo üü%K€Š{¡ëü¬ë€‘ÍíªPïÓÞ¼’;uÜôàé#JKÓ(:ü@WšŒy:Ÿ»QqZì|D[q¿(ç4¸ùað:ÛmÙpó'NwÆ™ÆÁnÇÃoë6¡Ô–¢òc0ø-sÆhófÜ~kx~ å„ÿÌBå(A¸çG0ëí7ðZ¹3Z.1Tgè»L`ÊÆ<’'!ê`¾ËûÀ'©1[÷‚=–‚1#qnf8ÇÃÄëè~eóåúþ£#|Õ`ºD5á? Ij ‘üzR2Ëz® >ñó'*Ð÷îò woóÛ°Ï#ºFV*É?€îðJJ ôÍ,$›ø¶´¢ÎÔ£zÔEDfÀ¤ä½¸sx‘»oDlç& î_x-|žÀ‰4“¹’Žåg¤‘¼qúP³ÊYî\UžãÁ-¸àåÐÎ?ÐQÓâxSmEས\/Øwÿ$ã\Á]%—7C£ê-¹©så‘Oõ(üën‰?÷9‘$’/ù¡ýkÿG:gš³ ýX‚Ï¡¾ËhÕOÛ/­‚{.È^­¯h&] ×õ­¤×ÊZKÏñVîÏ+¹Êš¼³ÍV~o•³Ï}íÚä7~e‹Ó;ÈPìU?•YàŽ•z]SxV׉xsTÁóè5å‹ü9ürf;К×so¯³Þ䦂À¿Ú-4Vâ{¹u‚Ô‡rOk7ÄÎÞØ %~§+ø¡6—t”#§1ؼ:_¡ÏCñG7ÓŠvHðùUZ*ŽZBÖÊ)©ŠRVð†zk´¨WSgùã!ú¸—Þ¦þPŠ“€jÄqsþ´ûO¯+¬¡òùù¯òüKþˆæœr6‚?:™xfkpÿà¦@/7«[ÊÍânpμW´KI&Ä6Æ u² Ügn\·­ÎÞÀ\r+OX÷ëCøfôÔ~ NDÃlRí8&#°>¦Íe«ÙñvÛßžA„=v~qÚË@¤eÔ”Æbt'å<àAÖÏ?r¢ 5¦n6©mcßåÌ÷þæ³Êv¢§À£EðéxƒøàüÐ^‘€T%è‚­…±’Z¿Ãþþ”•ŽÛ<Ðå¾ÿ(ÔôW ì‚BOË[ š¯¡«Ñtò×öv7ßÒŠ‘ÌtzN-ÀhG€æýM½4˜…éðGiž ¯°ºîXo3|S;â×ï&p¾psBáÏ¢Ôø˜A‘)!jµ~c>\}%Z<'ü8¸èb~CÝ©7¾wÌ–wýÕÎxS\‰'Ó.Ëk‚AZÒïpó­éº¹l¢ÊF(ûš¼ŸÖãçf¢]ôSaÊîþÁ’æøã uã®ðUy)¼Ì *À þcy¾Ò•Ÿñ!ž†¹šˆ ú®õD`† &…vuá0w\_-JÎ+øXì%úô pðW¤²üqº{=·’B²Škp$x¯íü?‚÷îò0m˜ÀK~ÿÜ<ޝÕük øc‰ ¼<#}¤Óà?~ácÜNTBÀ~þöSÐ÷c9ú{±s3ÌûÔ¼zŸÊò.®þxÆ dž$å4²BG€?†UsÈ9n)=eÜL<´÷Ïäºn_&É*[óóIŒ³Šü½ß>¼ þc¤4æŽÀÖÅšD¯È]$.yqÝ ý1Š›ó,¾Ã%›|Åm×±ò;³m¨Ÿÿþ¼Ø)µäò²Gºƒ5ò€?Ö ¶É4¿.ÕÖ:KÊi­­Ká)†¡ErÈ8Â?i¿mú:ÞR甥;¯{ ­ñ1_æoe©Æñºéhù]†À-ÌÆŸø^z=&×ô˜®å–ºŠ®.ø¸2£,vMýzîv–›âM•/±Wh—|/3AûªÕ€6ÕîðZ9àâvË>ɦ'u*ÿªC$?8,×£”ÔˆWSÅPûÏû˜Î63FH{*@i«4óöj5Ô”Ñnñ½fZØëî-× ^SýA’z7嶤‘šzãþŠI±é1åâÿ“õ»Ç©œ¿rE‹ÓÙÉú/ùãEಳÎÍb2Ëÿíöá@#7µ›ÑMìÎvçÒ{E#´éT[˜ùÂÖµcÜnt÷ç•Ig#šb欛Ã-öžû?ÓÐϵ¡¢Ó{Ýq2˜ôÀ“x6’ÍmÛÛ)î±wŠtüQÁ$?[{]àßTàU.Äl—€Sv‹A:Û¨¶Ô;å/id&˜uö+¨iˆ9œîbö.Ý¥¼˜;.o¤O 0ªR'Šûþ£”ÓœâsK‘pFî‹ñ˜Âg`8íË”Š·EÏ¢”•è[´Cê`½uÿàlú<9 <˜eô÷²gæo¸ôcžéŸ^ŽèGÁz QúêvÎ?ž?˜Á©ë¦Á¬œ ÿQþ'&úv(˜ìšÉþ>ŸÀQ?ûð5ºVéîÖ;ÿñ8œh3ÓŠ2"øÃ?5ê¸ÃÏ_òΫ!Ý1×Á‹ù ÌÿµtžBPƒé¥ÍK¹(j8üñ*PЬ† |@=á?üüWkáº&Ãçs;žÌëø>uà«|‚gsNàã¾`¾¯Uhå§”ËDüÛØ™ëö´þ™&™ñ›¹"ߣ`Å*|‘XXTÏHNYÇu¤ˆl3E„—;̃™¥°Yþ–¿=«ûÈVBÛ§so3øëw7q‰!Çù´ôç:^ÏëixŽöA&r² ÿ8 ¾úŠ;=Írž¿±¯ë D›ÑÒÕy Wàp5 eªÄ,Ô1ÐÏßé}M/çágjÂ!åòá—,2 Êføãó7âí²y¸,£-@çoÀ5xØh¤ÔEyÒxSõC(óóPÏÑe¾TƒOïQ‡'ÂÝæ¼2’·Ûf¯ct&;~~áÂðÞyx<}cþDvJ uµ 4ù*m®éõ#Ý¢uš$‡ÿøTóRîÆ38,`âÛ4×~ò:Þ"ç´ë¯”óßYçû¶œ[_¡Q¼2:V~“åúXCô"þWÈ-Ý ¸ øã •᳓‹áX{Ú¯çÞ]g©ÉŠqT£”ùgˆJù-­±5:|G-Dô÷TÖµàËCÚC>£xè—j”¾fz¨Uä{á?zÛ´»-€GIè°TòvhYÙ&$˜üsáõõ¦k&ðÝ øƒ¢ú’kë8ÈKvE¢›Ð†…m¯˜wÿåu';Ôùçqœ¶ÿúü˜Î9g[Ðô0šŽïvÚºåÝÌn"w©ã:‡Þ+Úƒàûó pÞ å§¹®qÝ~Ž…2Ka*›3ne·ø{•3ýèò‡-Œó32:4ÜÉfÒREÊgcÙrv€]ïžz§H§ÁŸÙÓà¥Ð—ãÈ?£#<éwðKi/´^aàYW›®æ]Þô2 Ìø›Ðå á?n™ülXW©0ÏEì“ðÆ_kKñè‹·òG!§ e¡3¨gtNÃ)?X"õBÌC”Žý5cWh ÆéxÜ)/õyëùqÌLøˆpþÚ‡´ÄïgÀü÷ó·çáqð%áh®âó R5믵 ?VÊàù/hz5Z.œÑ`ðÇoô#·…š[ÊM€³»ñÿ ˜™}p§±t J² /wó ø†Á|ƒgk§Àëöðqþy‰÷Ì=(c >€Ú¯¤ïèS0V¨øáðÇ£@³ lö€ÚÀo-E+Mž÷×Zy ¤îü”÷À%dæ,p…~þÝ5ð]/¨”yîl /ÄõŸg¶¾å^Ç øøë}ü-%)ågÉ®›$‡œäþnt|_–«¼w¸ ÷°ùmØ™ÜH@‹np~Óxïã­@ÖåœObËA¾,]µ®×ëzŽ£ üÍÐ yÐÙÈhf*J!ÎÙ7"sã tkÁúÀG.ÅOÈ•Ú2G„?”qˆå¯b=¥yåð¿¾,åt­ð|4Ÿ÷ «ÌoÄÛjK€%Ó:ŒÚo9>xvŽÌ’~ÒƒÛHFo’&×SrZWˆ#ƒ¥ ø£6ø£ÿÈGÁIY¥_²_ÇÊæLqÃ?çÄØÏ~XHõ¸”l-Y¤_ª‡ˆÛáCÆHl-ŽÏkÀ‚ßñ"N û91üÇ:Ûèu¼UÎe÷eî#ý…·¹QãF2L=(ûyâè6}¢3á:z)õ€8Þ:õ¤BðýGs0õ'ð ™lok_ϽÎ|SŒr@…¶Z,X+žW¦¥Ê¢öÀç{š­xAvI>]¨óx³v’Nè½øéqQŸùT0Ô󫎦=8¾=üeJþèãÍEM·ÈI¥âÕÖÄ^G/DSz-Àä]‡/¹þˆÄíèžõWµ8çþ½?Ï*ÿn,ðGÚÉç©sÌ-mj›Œfuðü¨õni·œ›üñ4ð~ùwo†›•¶f{JúÆNrÕÄrÛ9‘mi›ÒÔ4÷Ýên•÷|>j÷†€ÿÇX¥¾N“h_Æ–´íì÷vë;ú3În§’õÏj…<’„³Sšh7Ò< l`}êOÓûüGwó™h[‡~Ç¨Ý ›@û.'õÏ@ ð})Ù;ä¿ÊátÅÏß±(&gãàžPù=Álüg¸Ã=šOŸAýOwö4o{‹üñ‚êó7]´Þ@ΤÀ’ܺuxoÚÀ?uw.M¤Fvù?®ßMíwóßgw³!bLðQ/”ãà°Ï¯b?*ýU´ÙÊy`ÑZÎ,qeüÇ×ZO?n‚ݺ€S&s>N Ÿrª¾²iŠó舵ÝÈP~V´&àœœ€SI5 ‘bÎÖiÕ¥gµº\åÊÁü%)ÁãøßF_Á(Xiê½o‡­ÖÝ០†Iƒz¬–IÒCjóÉâMÑ$úT®êYyÀþ™ÞϹO÷ßôð!ðGnùŽ/‡âxÎTgêW­R ì–NqWy(Ý¡í3Ã/ÌÑÆšçë7ú“ŒÔêÚB§ðMÔb'•p?–O‡âåÎ~÷†Ÿïž6ýÇCž‹:ž…²o¢ƒåO9¦¿éÏh½ˆ^]$£u˜V羺}Û/¡oÖR"ÛÏÆy=÷.9+Mh / Òp{š§k/À‡£¢7ZëMÍ­Kô¦’GrAXü“q{R2ŽÆÍ))5ó÷ЄÊ…‘lSÓPêNÛíhZ¨3½òÚ^¦ã·bèŸZCã{ßyÛ4×H–•^§+˜õðçWðcN•áªvrøÓî?½îŠ9ñ_„N½ÿ<*tù&·€ibš]Žÿtiu Ž[Ê­âæt§;ôžùwÅùÖ,¶eécJLýí7¶‰ëvu®˜¶êºû©[æ½Êù‘ýý}×6ƬÏC?XC&.U¡&¶¢ma§Ø5î»=a;ìÜtêÙý@Ë•Á<¶[ÁE)>}m7“šÒWTHÖÖfµÝÞ)É3Ê·ýN“à æÑc: ädxð¡R|‘ŠÑSÛþãªôë¯Z¡~·Áø£/e€âöùÃÏ’ü1‰„Ç/I]LË·´b3ÞÂ?/d?Ðü••¿ƒ ðh ìœ({ؼs>d µ° ÿñ²”Ni7î¿‘š¢чù½áZîÓÏÜ _›Ëõø™¸ã>̦A`šs¨KåpߟçL¤„(CrùfS5x†ˆ•{Ñ sÜ| G¹)Æ+¡ü£æ%QþØÈ9$ªlæ{Ò |žÞ…*ý…‡ÃLçjè}ÿÙPrüÛßuæüÁ–nèݵ¨E>Í?ptþ@ÚÊl‰Ì…e¬NÐhÞlÄk!çág>“%\Ž?‹Æh²#røãÍü¥Çli®É;i;Uãá\Œ¯£Ê8éέ%­·HÓê#¹¬åŸ‘ªú ‡À×uá¥à£¥ÊøÜv{+•³ÀyHÙpÏ»ÀÅý[x¦´#Ô}y9„o¬ 5–nÑö"ßk-í¢ À¾½àò |É9=Ÿ·_Ç›íüâÞ fÛ§›¢ÊeIá}¯±¼¾:JÈ>½ª+ô$üG]+¯÷×=dñ·å#”ÒŽ¶=ÿ»ë¬0eѦui•¡4^úz ¼;(W?Ïñ“6ÑçZ^RÿME\­, áÎKJ€²u‡n*Ã[BíÜጄÿH·]ŽÙ;ôLÝô{YŸ‘PãxÕ5›×ÛÛ¡©¼àËU^m¨Û$“Þ¢štßN¡'6WæšÁlÿPÒŵ õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run002/bold_25mm.nii.gz000066400000000000000000003013571323370031300254240ustar00rootroot00000000000000‹¤½wtÖEó><³÷ýÙ½Ó{HOHBIèj ôÞ{¯Ò{ï½¥ˆˆ 4±WlTAQì vä)Š4|¯™äù~ßßï9¿s^r€»ìgËì̵×ÌÎnú2ý_ü™D~²ŒŸ™ÄúóþñS¤þ¿àM¢Sþ÷oFñÿYîé&(Ó°ôMðÿWkÍ»´­Y©ÊÿM¿þÿýùßqü·O³}´äï©#ÿ[R>—?2&ù#ßÿ÷|öÿ~_òg\~Uý?šÐÚO/QÅR Í¢žTÂ)ŒªÑçôjG¡(³^Äëï ’ ºL½éYêÊñ(óâ<Œ£ñºUæÚÔÏFR!%ñnMñxW®Ñf¼.ƒ×-ií£!ø\Ú Ã‡QÚÝHÏàÓ‡^t¥s¼ŒjV˜4sœ7›(<{˜·3=9=Š4ÿÐ&úŒð:ÀGÌ3”m¤­žì‹öÍB™0šÀçÌ3¾3ƒ×ûè^êÏŽ©Õ¦ùÙjKåñ³…¦ÑÔ£]M_P[~’ÊRMôì’÷¤™ÇyTD³© öÑ(ºê0›yæ®GMÐîÈ-”+SCH¤ ¤e”Nù㺋¿uñz¦‰ü5ênŠq ¡.T‘šQ%Ê¢þø·<úÒœ¡s-¢¶þßmû¬ýr,àJ®žûÀŒ F4ÏV5/ÐzßL<ñúלæ Ïµð³– ¥j¨yÅÝCmЋq×HêNÅô6f° åâ³u4ˆ:Ñy:‰úR!õ®þëÞ=vª'½le“ܻȾK ÌÛö ·Íñf ß T´@O×™ÏRoó›ï¶ï’)ÂXfÓ@®ÌC©äKÛ1sù4††j[£0ã­ ï>Ц>xÿ(ÚkOéušLÙ”L3¼Ý6Ô>ä ¥ÍÔË}gϺ ·‘røŽ›ì>vKÝÃÛÜ2·×ŽpïñË<Ê®² Ü«ö.gÒ&~Ìž÷nÒpèh;ÚÉUM;èLuÈ?/œ@W[ÒJªŒ¶¦B{!ÕfEZBg¼,[–ó©5q—å&º©TŸ~±uÝ^÷—mq¶W\S7ÓMC=·}Wlª»eR!»¥TÙÿ‰iOi˜¹¶}W£ Œe:ú±Ò¯I!´ ²Ïåu2æ¶5ô€vFaÆî” DÍ£ùæ„0´_ô|›ëï ÑÏHz˜²ü«ü 0+É”GMøaH6ŠUÅlÎÀEç“i]§$<ŒÑ¢¯ÅÊðM$~² ûqø¼ ¾M;ÀO.¬,:æðy z”€ráZO&t<ÖñtA¹4Xu8ú‘…2eñd8êÉDÝb]a”ˆ:Ë †P|.u¤à¹$” E‹ùøL°"’x2ÿPs Þ'㕃íåèÓa@ç(üŸ¡ý Á¿u©œZ{8ZªŠ¾d£L(Jä ž8•U0žŒW4 Æ7¡°œHýÚ +ˆÁÓea_}©1ž‚œ¡o1‡Ò£éôÝ„5ÈX~ÇP3–ñ>JpîËQ¨¯%ea»¢µ0<•À³QQ¨¿=ðj5÷D_" çÅÐí‘h+¶Æ>ž«}ZD »‰@ é'^¼ŠD™i&Ù|Ík€W1tåû›nh7š¢ÍMÌñ1}¸M/™—(ÇÄ žë4Ñã›Ã‘ø|5ðj¯ï{”ŽEï§öh-†6`tSèSŒº5l©2lm6B_òh.}I]ø9È >ùù{o·YÄ9@…Ù”Ï뼩Лå”Ç¿ñ ³ xÕ½yŒ¶‘+5úåûA«Ó ¥í0Žëô´8XÔŸFó9zPí«7ð¢jÌÃOg”¬­n{ ÃÿÁ¬=¼ºd«Ù§íç([«¯¾0#¡ñ+m´9HK}ã`gQs¬Ë-Ðë"Øü¼«{‰qü=nƒwCÐâp´QNÃZ3©jP¤æô ÊgA ;ùÿöÆÙe^5ÚMlðê>{šŠÌq{Àuoyáf#ß äZäzò§ÔÃüìûÓ÷³iü™E“¹w„þõ@íÛèqhÓXŒµ;Úžˆ‘5¢­°ÒlŒ¢&æ©6õ¢'±*LÔvzÚ»ßH;©¿ûÑ~à"Ü:¬oWgÝZ÷=Ö€ÍnƒÛg'»·€WcíJ;Ï·aµy‚_³?y?BKó!Ëm\h:av¥þlàUCH³&f·1V¤<Øí(”9@»0Þ‘èßb:îØ|ÌizÚݱ®¯›Œ²·l-·Ïݰðô1û×ÂMÀç5è_ßu›ë~1q°ù%TàÿÊtÅü&@ª (¨—‰wS±ê.A»µ Ÿ‹Qoîý‡f5E¯z*^Õ’7…¾C?çÑ<óŽ¿—Úiošç:¸º°ìpÌVª»<¤#PwÃúÄNóa=‹Ýbaß]èg´+É´?Á˜RÕæ£Ð—Hm7Ï$“¬ÖQ@lØ\²Ú`"$_u¦¢¦t| {Rq2ñ“‹òA¨#s˜„Ï"»ÂµÞ<‡q&ã“Åhô/J‘E¾—>8m?ïcÀø®u…¡u©'LÛ G/†@ßvÒÇ:¶²4«dSźªô xB{­˜T(_R½Fa‡õXðd}Áãx"øU ì¤2W‡Îʳ…dy·Q.¦«4;©œk€ƒ@KQg<¬'…=ž„ˆÀj<8ùˆÊd ]ç\ ¯#°]æ‹|¯IDËoÐ-ê`ú¡]`¾¹ Ü»Ê"9âEæiÊ0£þ >ç[‚þDÒZþÀð}¬\îqàGs¾‹¶&C+gÐûèCgŒ¶"pr!€íW§¾¼ZX‡þ¡Ï¼]f.°¨P(Žç{‹1¾5T‘oóB|^à§5«~Ȱ7F°RÏ>l3’4ECø{´ÒšÑc«ˆÏ³”…ä`.k²wQù†¯B¿wÑzÿ5[`Ÿ´_A׫r¶«î>4CðĽ6Ëì¡ù¾)èÛwX›Š¢a‡…@ƒ%°ˆº@Šô*]€mtB½“ÑòX”hd-¬ˆ±Þ‹¶ºàýû¨# šÚÛï³3Wy¨£'¬w¾½ß¾E ÍÇöwÕ½áE˜½|%ÐËz¾®ðj¶ùÄ÷‹ïSÓ(9ÆrwCÍ ÙO@ù°È~ൠùíx— 4«‰¡æö z‡& l<øÕýöo—7ßôv_Ú÷]°{ˆ¢ù_×ÇrœÃZ·ÕÍw;ìPw‚¯æØ©îMË&Œê {û‹±‰œ×sži(F[™˜¿fèM `U´¬ äÛRÙƒµ¸¤] óø¶WÙVàŠXYŸrž+ëÚ—Šé’mès·mÌð›ö‚kí¹ èo¾Ë6Ýý`Ò€K¨ØÂôQŒj n› V]}Xˆ¹ùW‚­ÅÿqÜKYL5OGý‚CiСr(†rQŠƒ‘ÊàÄnS)^Q$X±5N9›ü¤+:ãÙl”HQìŠB»qŠ“ÁZ°Æ”t©¨l--UÑÞ)c“v£•§… wñ:òÅ‚rø­xµþÊ a-èó(]·¥LuÆéÐIéÃxø‹Íøê ¢¡“ã©5‡ãõ.òÁkjÌR{/f0J‡`Õù øR„W±°©[ô7Vþ– {z«¡pª.ԑ߆¦ º‹®Ýƒ5YølÊ21¦>ÊÇÒLeú™õ& =ú–b¹‰ÊÂ÷þäžеWpwWâ)Ɉ>|B/˜MÀ‘É<Ú³ü/ý‰¡°ûöô,Õ€_J 5ã>®x•Â…ø.­Õ‚íŒå¦h5² å³\¬øßõ†u ¶T…Ez<mƯÖ±v£?ñЇ÷y?´J°nž ˜øap§ Êja:²ø°!æ údõñ©ï)øƒÂßnQ3_‚o‹Ìòa3Æ÷®òà‡5Ý™Y´ªtç0¬©#d™v:½ËüŽÚñ˜Ùài¼«fðªt¬-¼)°öÅT“ŸçCf&üÞÖhk/Ð"Žs!©èõxpžèl#|þ7l¸1ìö~èl[þ‰¶@»a¶ú¢Å¶ø›w²BA_¶‘ßâ›Ù^ZéÿÅæÀü^+¹:XßûÁŽ6ÙzæmôMCýgQsXdH¬ZXŒZê ü¬UÛC&ûÇÁ¢›ƒ7‹ç)ü9®}änŒ1fP+àÕ<»È« ‹îdóÜH»Ú¿: ›ýÂ}èE›üJ ‘ý|£/øUó›ï–ï' DsèÃdþ ˜Zó!…ÐÑ™`3aaC‡w“XwgØÔ>ïm£ç!¡²ÐÆ9Þ6kWã0+}Ýøƒ~wÅðm7ؽíÞq_a]ÚíV»Mðó‹<~êb𫻜@{yŸ½à} y—G/Öq9ÓN5iê]ƒOšâõ|Èt%æ°æ¸ æ÷qhæ¼ß@{…6‰ó —ýÀÈ4 Ó|wùÝî/ÛO±—]+×ßMìñÿn ÜE°ºJ´þà'¦´$z³Œ²¹ó•As!ûø[:¼ºÒDýÁŒº20lˆbBm e[¬ÆèíZc®øidÌÉ5u­°v ^UóOòÓHUçÐMñ•ò!Óy°Z±²˜7|b±çr˜ÝŠ’â)†—úz1êÛ$(' `Æ“4"¢ø“§üH¼·Ȩ,J¥*æte¨g£|¢"`žMS[E½±xUFM¬6å#Ô~•§±²hõ-´U ÎÒ>†Âú£÷’Ô·C;U•J´¬P½Rá6YŠ‹ix2e²ÕÇ (+ŒS_Vø›ð°|m,g4ö=ís&4z$¸pž­F¿ÓuHZðyØg _TÏò´à)*†ö„cõúš‡òàÒx»ÊtÑñÖ!ÇrÅÏZð*7s«Ò:Ò34Z±¸•çTž†q:hÀ|ôãqí]?ºÄ?p}ÌÍ1™æ¾XEG€˜cLoØ3~ƒ~c‰Ý1ù>¥låWw©­¯ŒoËZs/¿gfûNéüíÖ—-'£7-aÙ‡ ñÝ!£°¢IXùÛb†ÁWêÌ Åjôñ~6”_-ƒþz3ñjPúw>c6Á§hD—Á9@Ÿ²ñôPüLÆâ Ûua«7°ê6€½nÃhÇßA¾bË}€W¹°Š ˜ç¾(™»n„Q“9Ãÿ¢/;h¹ÿ†Í·ìgx®>WwõÜûf0J­¶ æší›Ëø ï›e;¢GÕ€qóÐb=ÌÛpø³7 ½6ÀÁIh0t±¼¿ÁªÀÝv@µ/°.7GÏ’©¿ÿwoøU.øu¼ZeS=sÔºÀwÔ‹^½f?u}ÝP>O“;k¾M1jGS9Œ»¢Ö6Й]q6Ú쨡üª!Ö¿h·ä½ kTgHàŸhãxo» µû½±À¹–î+{ÆE:a®·ÜD÷­»éÎóN·Ê=/ð-ð« v¹]êNÀL£=ü²½í]‚gÙ ãßÀ`{)@è˜Ëû1®ÖêåWÕ•ãtƒ§ºë‰Ä»Ч^%Ìù°š].üªøU!ݱÕÜãŽ]{ôöˆ½äš»n<ž¼~UÞý¼*³EþS¦FT m,¡døƒ°´)ŠÝ 0ê`èOØH/e:uQo}¬O£®}«‡±GBÿÑzó‘(ì9 ¾Ô wõ5’½‰òÁ¯†¢t´£ðª¢F¡ QjŠâް‘àÖeÐjôg$ÖÜÂÒØQ¨²¢pïˆ?Vw*‹Ÿ¼“HS¼âF¸ú„1Š…M’:{©(þi¦²n©)ó*¬'A¹–ÄŸ$6¤èUÊÀ„=Å@ªŠjQ¥8ù_ÌÎЈù¹V¨z¥UÔƒðTMh‰p¿H´%1.ñ[ƒPG:þF«Ç¡žnˆîñÉxò¿"`i{awo+veÂêúÇ¥}Ô ÄÊ÷ú^ëäÔ†w@bµÑã3ðç¯êB÷Ër]o5ú»š”fǯþ¡'Á/ïèš;z5L':ÕkºŸéÎÙfèlg~öÜ6ÛRŸ ^õ†eåj„x+Ìm}z‚æú²yöQû p¿g¹Úî´Xj=³‡¦øæ`žÏÁª6Ó ½®…gæCµ€EC€·0›Í0ÿaƒaué Ú͇nd`|m __5S­èåÿÇ›nWz0ûílš› ¶õ&å›íS.>ð<ðêQÞ¨cÏoô…´§šóàWš†h<ÍâpõÛ`ü›ðS3ØC÷¡µbàÓhSWÈã!ô¯#$ð*ì¶íNô¿ÚáÇÈÛ»óö3øbQß…?ø­»â¾vítóÝ^øƒ'ù¼šå^±!&‡ãöoï.F)#^Ë©¦3FÛèŸF?z0³!±àµøŸXgb”ñÕB‹}Õò ‰æ@sÁ®Y´Âœö€ÇAÿÖ¸Þ®‘úZ«)Íß~¢0¥rXwC޲¯Tz0cŽ“Šùü2lÉÆˆ^Cß%²”®þYÉî`„Æ‘¢”õ`fâKý¾2Êâb5É”ƒUßH†lòÙRQ.Wû™Šg…a…++‹Ñö#“¢µþxÅ+‰¯•°¥h}ª•ŒÞÅ¢¦€¶XOÆ+†Hô¼¢î´PC%’ÖpÝÇÌÒ½CÁ«2¨]ÚsZ{”EhMÁ¨)J9›ì%íÇÛ/ «ì…ùŽRŽô%‚I´k|¦rXc…oþ -x„:°ôt;}ůd¡%ð§ŠÎWˆF¬q'­¿.¬è~î¬qûX×1õbc!íº˳UËa¹h§rÎît—opíÏ<“ìzÀ÷; ÎÖÏôe‘¢ßTàÏéõûþ¡kæcJ0¢'w¨ï¦¯1®• nâûPyꣲKÅ·ðº¬u,˜ÑpŒ4ýÙ M*Á«åX½šÁL^Ý¥¯¼¿Ìb®„‘Èîugo:ÖôUÔ››ÏÌË\ºÇ!‡K(-+èèî\̈Ě·C—aÜiì@xN_€™µ„í¶ÝVÅß ˜-‰2ÕоG)ÉœdÃuKý°û˜=…ÒE\ËUwgÌÔ8ìÞ¢o>lãCŒ¡-Í€¾‹¸OóaNF€_]ÒXIe¬:Û€ÃíÑꇘ‘ õÂOê@Ñ»°ž²’kà¿ã-±Ë¼*ÀáÞ6ÞM„?x˜Ê™#ö ÷³;á…™‡øå@]û¥âÁì ~uËwÆ¡­ 4kM/ŒCPÿaô¢,ê‚QUvWEÏv¢ÝLŒ¸¾m‰v·*“­ í=j#À¯Æ¡L÷£=ên؇)š£Ý'@Žó”ÀkÝ ·ßŽuoð ðW¯ŽB)ô(?b/y×€ 5À€Ös<ð* ãé‰WC‡s,Ö”Ú°æ°ð=šO1=]A¿x6ŠeWö|Ðx׸Ԉ~µ ÝCîÛã:n¿q-ÝH7qxUÕýajCÊk¨ºÿ3ÓS#ØÂ¯Ê°pãlȾ1Úª…Q†aökÁ÷èªöYâë÷Õ¸N=…Ú†kÌxVàýÕëêIÓÀðšh‰·w÷OS$ÈÃúx¿zN’ Ô s™©¼¢,j9틯¾v5K¦C"žOÑ(Q ¯ŠW¿PXN.>KPœ‘=ÁÝIŒÒ˜všZ 0¤öèi’Æ¢Êë*–ªþTtT>PN§Ü,Lãá±(¤¶,1µ*ê•…ê{ÁžùÑ—¨ ×D‰Ôi4*Gû@Ù:aºòÙS,w%¨£{”¥´°ÿ‰·‡«×;Òz‰Nás‰ß7^4Òg«gHý¸h¬YoP0_Õ¶®ÀZ^ ö,ñ¢Ýôäa,òlA XöD$ZVL¿ÐPÝ ƒD~§§¸¿bl˜Ô ð3ñÝšS!Gð,Eý…1Þ¯cîL·øüA‘ùLs‹/ð}FæåüÍf‹·í7•øú‘£•SÝ2ïRŠ^Ì}}W€W"Á‡ømàÕiÔMOã§ø• o+àÕÓ°în€ØêdI§€G£¦¼® ÜûÆûÇ,`‰ÏÏ¥lžâ-CùåÀ³V泌³€!>~šî¥o€Í ‘à 3¯ZÅü¼3’¯¬?M²îA«=K}5ÁÆ*°êL’]Æfð—ʘ¯Ð·*èÕ<ÿﶆ}ÙÂ3—ËsuÝ'f8lpž¿Z§üê3ÌOSh~H¼†îoÖ‚uÏsþû<)‘æðª¾ù=ÈA;YèýPXÓYàU}”¨~uÇ›dW{áöµInº]oQsÜq¿¸7¼H³ŽoÛ›ðZúðÇ4Â| ¼úÎ4 L¢QìxÆÞÚ¶ú“ ‰NA‹•€ÐyèÙZXk’öåÅׇÁ¦bôi4ÍÛe}Á*˜œ8 ìØFY´q¯»ÝåÝj÷¬ ¼z–GØ`ZGíN§í|Ðþ PvWÛÐ.cÚâUUÅdÉgh­¤X i–ÃÚØm<ŠÏï¢,¥K^]àUfòe÷Ív]à÷5¥+¶Ž{Ò]·­1ÇÀ&»¸9À« úÛwÓæ¸›&}^ ¼úÆ´ƒM'cŒ‹€¨âó¦@7š¢Þ†hµ >­D™o—˜m}ÅñÀª©‡:\ma6=dÞƒß'^Q;Zè:¯—–SOÿ ÿT–W¢<~-I̤&¤ºTÑ"•$îvA³»b€‡cècÕ°hå2Éj¥1š½\š%ùañšû$9Sé¥ù‘¨©d– ¹I'ÕܧÍHÐÝ/Á¿LEFyˆgËhÌ*\™VYE’e\¨3HQ0X3 ï²¯ŠK%l,\Ñ-U±1R#j tQxSz©^f$Œ>HÖE¨úˆ±Z6D½×êÚN¤¹ öô®Få 0=©ö´…²¼HÚšIŸR¶cÿeö›C6ÑY^Éâ‰?Ø€ëÀ×nSŸ~¢áêK`¿×à›µÓ9’ü«SÐhyÝ5Fñ+.Â:Õš%øÓƒþá«àW2Lªùx%kÐ[Ä ÌX–}SÏt‡—•bdNoÐIs’²ŒpTÇ]|çQFØèN>k¦€_ɺrL§ˆÿĨ;âg"ÞA;¹˜qá!ǰfÖ’†ï¶Ÿ’uüÈûÓ¬a‰Œ¯Å“ËÁ¯úÃ"ª€_½«^ô-=‡ïΫw7‘ú#`6ªÃ6÷ïÖ³ €ýaÙŸA^-`_ ‹øWž +«‰RvþËšoø2Þ¤Ùþ›¶º}üª3UâWßýÇŒÄ|Ügë›WhªoJÑ}ÁYh§ï^ë« „í Í~ý¼Ú¼è ©Åú#QÉgh×oc&¨6võ[;üª"°¤‡^Ýgß¦Úæ{ÑeNyéæqþxuÙ tø,3g|·}ßšbÍ9šÎ ,¬¦%ôn7x¶Äøû(¿ŠÑÕ§ÇÎå!cÉÒh4} ~ªÚû4ï~iŸõɺ»Ÿàþc·P2üÁîwÂ]&Ë›Ü}î  Ô!~•'Ú¹v©;los =ÉÛ[Þϟ䤮ƒ?(¦Ž¢?Ø/tPvÎìKT€l[‚³>†ÙŽ>­¢‹ð˯šÑ+ιt×ËFÿ.ÚVî€ûö…f²?¸Žn†»«éußm[Ã]1yÓðŸoŒdÏe`4K¡‰•!ý$Œ¹VŽÚh-ÿÒoÔKãÞå1#5 ¡Ý-¡eašg¸Þœô÷Q[ï~ÕÙµP®µ…¦ùú‡¨ßU-Û¥‘!‰ítƒí•׈‘ÄѾP´ Æhƃ_ÕW;N×üƒHÍrŠÒ]ªP ¥iþU¢âR‚2¨ÿNbïe1ÿb_)MžFëC1ƒ¹èK†âI"ä™§(®Ñöt­?R÷>SÕÿs¥{Š%ٟѵ Ñx{ÍMTŸ.By]\iÌ*Es$$ŽQVG/Ä_΀Ejü*XwüÊiö§SŒNV´ Ó¾çi+á°«í°ßçŸÓ¡ÓâgHÿkÁh *+Õ‡ðŠ‚à9ºˆ{ ¾œàÌ~ú–çðt°µ^ V™Õƒïvr³PôÌǹHý»bÔtþ ¼nB9À“Ô—Ý®¦@M‰²u§0ó9<.™£&Ë\à‡ðÆ£ÀϾf2‹ßfz¯*ቆ¿4§)Ùˆ/`bíShðj°Æ¦zÓ½àra•AÐÎ9À«ÁêoeQðªréžXõ#5÷ "ÖæTåAk߸þ›c¦<«d¯°$*Z1)^™‘|ž«mÆ(ÿÊWŒ‹ÔØy[ª¦ÏÆkÎCšòœàR~•¢ÑêFh>˜Dë%?*A÷#ÑË’Ö"•=†i>y²ÆØ’N³PKòÛfd”ךdl¥”óeàG2&$;¾ z®9«AêéÆkô-D±±‚z¼¡ÀŠÍ@¬WtWR4l 4A<ÈZðãÊskÅiôÕç[Š¡?£Ìƒðœd[è5ÞÃËYxNCØuØ`W}ŠçvÜRyi'bž ÿNv(ó°ZƒÉþ]gÊaÃOæÂÚzB³¥?½)ÓL]߉¦ÈøÍ:#}œby¶Êe4ÞÞ+~‚‘ÝÖëô±ù%A"~ð¿2SXöb÷ó1ÓÌw\÷bv±jÁŸM€¶^>¼jƒÑÖÀ¦£GM4Þ~†zéyœô7ñþ¦°Žêðo)´n>Õã.àW;Àþ$Ãì ôøhQ°µ^ÐÛºcÛ–vÐm)«>J7 ~µ­v×jôn¦q~Éü®«k ¼J4'ùW¼;ð²­d_²_«?˜¼úÞ ‚=̵ýÍ«´Å·³òžiú%_Hâé+€5NÃè$|õ{P¾úƒÝÁêÓûø¿"¾{îÄ*ÒøE7¿~5Ë«–Üxµxu”™c6!Ð;ðšgöòSÞà?=Ü(þ’¦™“¾ ¾÷LSŒbMæp Yµ‚þî^åBªC 9eyÈóyŒ0 ²¨4“lÚíÀ« йxêîmµaö o0¬ðê]wÇ>ˆ™ûÛõu§Ý«îovËÝ~;Ãáx¤]bgº7¬1I˜ÓG,ÙßàûB˸‚i»*ºç@ €XU›Y’ãV RÜ‹–›ã³Š`9¼lÏÂ}žwwm¦ëé¦âÙßm3·Ëý ¼êN¯¯ŠÝ87È~Ów þà?&õ®¢,ÿw¦;Æ[ »†]2‰ºg¡/b·²Ãò˜žÄb„9bîÅ‹ªH3ÐÊe+sé~󉿧bÂ@ZÉ6†”°VNò/õ€ÕÆ¢Á«ZêEIÞË$¬¡jÉ•Àÿ¯žF¿â•S…k.¶œ7ÉШN´¢‡ø€IªýAšOU’%V•ÙJÔÈP2ê/„£5>&çqë¤|ªz;aš•¦¦è•¤¤cËTDˆÔÝÃpÍd Æs™[÷4§=SÑMv#P¿ä¯F+gjU8]Ñ(U?KU¼JV¼ŠÐü+ٓ΢Ȫg¤ý©°å àbû1gí0ë²—ZÜ¡7ÖVgÃ[nïPüÇËÐúe`+ân¥y;¯fá·Åౕ±HNi!8U#øƒ"àiÃaáÑz–j"ô¶­îÙµ¦ fª;Ë í±FéçYæ ×PùŒ5M´Ùia_Ûaưø†×¹'–%c¿Co™7©‚™û¹ïGÓ—åõ>jZ¯d×t £6Y÷‡Ç\÷Å8Eö‚ ½Ï²i9üÁ޼3UøŽ÷YËÙ°ÍiÔ×zóÁçPe^dŽ˜ç¹6zyýÛª ‰qÏ–uWãSÛè.ÞÕ‡ö¬D;½ø tY΄FW†MW†ì íê(Ó})kNñ5XÑ‹4×þàsö3‰üpWä¾4÷@/§Úå|Œ&ú¡Ô§èS Xg{ô¡&æEÖ÷¨u ýW¿ ÀàMÐÄv(÷6fKN ¥Âæ$ÿü# XSè_:õößö¦Á¬‹îa“¼.û*˜Wì ×;pÈË.¿(oÂO Ž8Åüê»â{xÕvºˆãXZê\GÏh>Ã(ô¢» px34r­î^£ÙL/CÓä,À@oµ5ö 7«^+÷™}xµ þ †»/ÝQàU9^îFº‡RGø j×ÙÉî{—3h/°lÏ£­z@”Mœ ~•|ì¯ñ¹†ÂÙ1_ 0R939íKŽœà•ì§œól çâý àW鮫›‰±œ·5ÝwöÎ:7AÛS€×À¯*»FöÛWÃüÞtÓlÍÖdWÅú’Lòüteç‚E]±vÓØp-ô¯ $!V\„Rm4çPή5güýÕ¾úÑ µ¾¢;‚!Р‘°½"õÌb4§öSg ×{êNRt|õPE´0µò,|ª¾aåÞ1šÓ•¬ aš¿¬®Í…ˆ×¨}˜Æ»K[,•œåËP1 ­Xõù‚€R‚¬Â©,žŽWæ—¨=¯4O{'ˆ(«uºú_)ZKœz“±}NiæW´žü -…—žå W~†6Ò)õT+B®Ý4G4¶ä8ƒ›(nÌ¢oÁ-®é³‚W+À¯$¾½ãûxGiü0ºÐBó%êEÂt¬ ;¯Ýå”Ù °|ÉüèHeàaÎP6ºŒ`Òü‘{(Æ\"F­2CŒ3hlê °ð~f —EMr=°6²’?g^¤2š/JÜÑwÙôÓóÎó«¦ïcÅèí`8Íùtx×Dã#ü7¼‘vøÕVê`£Ý"»Ü¾žzÔ®qÏ^öÊÀÜh`÷¸þn ÿHk û/úNÁSo‰Ug'±07É¡ÜJ²«:zÑ3,™eM`M }ô„£ä9þ`5Í•³?“0ÞJ°»Y˜ÓסWk‘Iv-ÅNëB;ZB²Ó5—v˜ïýý—zÒBô ¡ÞOrÝëÒ?ZOÔe€kîÆóÂ8ä\ü(|">Q.Ú:„¹zÆp"xcCÕÄ)~DiýQêÙ+†¤é_šú}I|tiž|½­£äŒs2$T’ŠÐ®L=÷'5È9Â,õ4KüËøÒ¼Ðÿ²¥ÈÒøUY¼vŠŠÁÊ¡¬žYÎÐÌñ c5g5FyŽô¢¼î0ÊùÆzºë#œ,C½Ê8ÝOŒCy‰­:M’Æ–B5'?J3#äõdXÕ&:¢#Ï—!ûƒÂ©jчT>]°žÇy öó‡Æö/ÀZæÃr¥ÏÛéMð«‡X8¡ä'T„–+^9øƒ t§¢«þ ®®8Ÿò,ôZdMã»`-²"¬Z Â7¡šÏenCÓf™ú&Øìe8,f>ð*AóA÷Ñ¿gChÆ<5~èzŒ¶§rŸò@êÀîzCCüì¤`ó:_Ñû–ù/ÚLû”ý¥‹8ÕUwo™aèÏCvüÁE>ÉûøFoulª¶x÷ªæÿ¢¾!èÿU0‰Æºƒ¾5´G_ÎBžyšK|?ÖÿŽxÿ¡Æ¯RhˆÿOo æ‹n^…¸Åð_¡*æ-»Å=xÉ 1øñ@„=à¹!Àú¹ÆïÿÕwÄ4Â(FÐløƒ ×] o[´y$;¨’aÑÖÔ+‚ä·Ëùœ­è¡œÇ9ž!g*Ưœ} þàÀ«ïì».ÄmHÞÄ»î#÷#VûÜr÷¬á^ã§€WËí$÷®5&…vóû§÷3Úo‰q®¿’ûZcô™˜9£Y <¯¾¯ í‰ñ–ÜÏ0@÷y¿÷òmË>ÇSθl×ÓGÙ ¶‚Û ~ÕØû¦=ëZ¯F¡Î‹ð³ñåc¼’Ïù©éL’?,xùä‹6¬ëi¼}útÏÉYÙ)„$ÄG« jRo_JûÍ9_Yõ¡U®ƒk ~ßFÌüÓþáŠå±î?K[( )ŽÆ\k¾h¬Ù%9”yи}ʯb+'â5³$z¡yeôv9-žX¢Æ¯â £œR.‰¦:F®ñùLÝ”¬O¹C'§Ô Œ#9Tº;˜¤Ñ¦èÒó}™jáaŠAÒª¤I,Í`u𧕦 /TŸOS©WD…Š¡¡Ú’ìXÔ‘ÉÔÖšm£¬®änˆ²¥üéAx/•©åbæÛc~Ä/«F–s[ÅÍÙôuæÕ÷¼ˆ2óÁ9d‡áúš_å‡Y2DÁƒ)¯÷eÉÞâOàfõt_²)¬·˜ëh=ùXažÄ< kA±|I¼?¼[J’ÕóŒ–éLdV!þòÓÈD™FØåI áµf Ë~ê-ÄïQ‚‘8Ø-:fÞ¡l#ìõ/j‹j£gvåOL]ßÛ+{ÞB:ˆ6‡î £'€Ž] ¯E3ú•žÆÚú•Þu4üjðJNT5…þ²- %«e—Žß‡êté¬ñèàú•õT^·@ßæe¾ ¼:EãW…vý2οªí¾^Õ¥¥v%øÕdß<ù9ÖûN˜Vê>‹5¾Hó¸FÐàpNÏüî¤^a}9ÃÕÀÜoÂHºÂç¼J‡î4òÿáõ²s¼ô»›µn®]bßO=f{¹W¼8ðȇ¿zoºn(Æ0ÑÜñýæ{ÏÈžæXšÎ©šÏÐ :³ ˆ_«œ§÷¹ôÁHbä]5;«:l±JíÂ1=K áÞ lw{#!•îàU{„Êò×xõûŠÒx…›ìµ#Á¯Þæñv6<ÃÓö&f~?nïxßAkäæàU_½W  ô|…¢MH¦6f·ú5Úø$X\+}¿š¾õrlæ®íw~Wà:ÉOÿÒæ¸îàU}:jvíÜ7 c¸îûÖw˜ò° {)ÊÈÆÄ`&—ce™NvOÕxd0¤[äï¬q•ªš­ÒIYI5”h¥x ]{Ìœ÷Ö¢zÐ$×Õ5Wö´žvúûÇhœ& üê1̳ØHe]åòÕËÆšw¤4"^¹‰èŽYš~ª¹£e‘‚Ô›*«Ù#™jGŠ ±ê+&ô=^3#1cJ#U‰¥^b¨îJ¦TÉ-W êmF«ç£bÑšS¡¾e˜rž„Ò˜¸p¤x±ÇJv)ãK3,„ñUÒÝÁ1ÉPKÕh}ªf+Äèyg‰we*iÖX¤Ž'¸t‡3Zñ|4íÅ|V>“©Ëª§röq=n©=š}ëÉ+Ö]& ¿’±ï —øI^Æâÿ6†å`6ã5öuœR¸±òذìæÊ¯ä>aj½5®=üÁ?°*‹÷ æ‚ùÛ­{¬Ýè{2ut.æ™Ï8Ãl3ÂsO÷æšI,¾á-îȧ)Üw2ü²y–ràg4×ó}cz±ðäGù SÛ÷µžyzÈZ<'M². í±â¶‚,«`Ý _·‘æ0¿ ¼ÚÙ×¥tÌûÕÌf9å? 8<üj0¨€ï1˜—Xn…¹ >4L¬ê ?s1/3ÒuÞ]Gcbý ··5¿½=^·À÷i4ÊSI3)Ÿ!ϼ«ûƒ'h’ÿ¼Í³»W¨WtÅî+øƒuh¬Í4ÓàUMøsmQÛ|üÛöy­NÿŸ@ïÒ%àfkèé$Œ·$Zcë¨û 9˜ãV¨õ Fdç¨üÁ{ì4¯<ðµMv ì\{”ªšSöœ«xþà~)PÛ¾ãFéþàTó¹ï/ß!SýCsÁ¯ºÃ†š)îj¦bèÙÖÒû·Àrûéý Õ4_³$pO /c¼À«íz~°‹;kO»÷¥òÀ«3ðÏA/6¸ùàWSÀ¯^äqÀ«iî¤ý xµ‡7ÙàŽÄÌ5¦µœdzkþ‰d‡HüªRŒöºèmˆ’ºÈÝ ³GËè²WÁsÊÔ󃽜œ¸lÂô¹6zŸÌ¯®°RnØ»æ»lóÝï&èðEû—ËÈ۠%Ë™î\ÍÚù©}›¬Úi‹WVm`ÅR_³†ë^ùøƒçüÝÔ"Qg`cK!¯§7ýj>ƒÜÑ’ÄôŽÉǬçÇ#öÑËm¼îð݉¶Vo+®ô–«8Eë-,rwT¦z¬©êë%è-~qOKÀç¹Ê$c F—¤ˆ!y‰šm¦çÓ5ë(BùUªzšQÚR’b[°fq&h”'TýÑe„‘*èý~N#a)¥YV3Ù«*;)9SKóÛ#Tc•û9½Ý+SóJ¸YŒ"–àUšÞ'#g宼 @ž0ÍËí†u±©ò°| püAÉiŸIoRu¾©üí7ÌË,êÄ‚­Ñû¼†`ñµ›RS–Ý/ñhëÈ®¹î-†b¯P.Tß¹ŠÞ¤ÕAGßë蚤x½¾"xØ‘®òu®¥ëÂ,s•­yÔH¯ÁÇlîaÅîÁ/’5"ÃÛô±ÙNùFv_ïPmÅ+ik'¿oº_ ö> kÊߢô8ÌÐ`DOôEãŒåm0ª|pÌ£Ô—%ó±<>íÝ€?X#™û™äÍ€Þ,£Dôàs³Ÿådíàc áçžÀš d|Q—õJâí=ù]°Êh·dT^ó¯raÁõÌFKpÏ| °>|¨%þŸl%{Àž+*¼ªï^3r"p¾­ož¡©ð é{Ý\ˆv„Íì† +^ Ðó8÷hýSá©T~uJwð*A'Öà‰Öô5¬X3–Gû¯y#ì2/¸ÑÑ–…?¸þ`¡9n󿸧¼D³O:Ù·ÜxàÕ/´Â|éKðŸ6ÍÑŸé4ƒÃX²×[‚öBƒÒ¡#rÏMM=sÜTó¯2Ðvmð«vÍýàW óxZæÝgCíAo„ܻ徰ï¹·+?0Ê]pߺóx½Á-sì,÷:?ÁÃíb;üʃ÷¿—²l¯(FH¼=ÁtEÍ©/Ƹ -·Ñû!ŠÁfªBÃeïã 4»ðLâñ?yUl=ïüª#—éú»éo¯ ¼úÛvFïØß\sŒw†¬²¾[¶ªc_fi•^uѳ#rÇc¹_«œ²ÜITCO”̆4C¢Û4ÿªz3µ¡sm5~ ]Ûl>.%hžáx×Ã5ÒœÈéIÿiÿhµû ÅO–žÇÉk ^—d2õ§÷5â-w×Í·QÞSr÷gT)E*Ç ÓÈQFé~_ÚHU,ˆVŒ’³•©ÊV’`ïU5C! Ø&9WiºGŸ®§b£5"º4ާ¹¨qš¡¯ù áê×–œô+¹Â*+§üªäþ«TX…j|+rŠÕ˜U毦ޓгa±Š€rWY½¯! ±ú½'§äˆXÍ‚—(Ýr0Ëí´_s¼ä^Ä>ºOŽqÜ&âFŠ SW |C9Ï ÍVX¿ð¨ tžÙ*T­GåXv¼d)FõW~À*s™æ)þHÅ,ð«Î*«ð®`¶c5w¥-fæ€Ê³/óôAxõTo¾å­Frá^ƒÿØÕôd™»¹ ¼»`ͽBߘm”nDÎâ~oZê~ó;¦#ø•ÌÆóXï;ñOa#¬®£áT¿¬&Æ=6]Ì{ ´¡+ï†ôê’Ÿ?÷.˜u,ð#à™ôæqVL2ÇÌF o#ú,pÐ[òyäüà| B"êiû ðÈ ò‘ýÁwÁmš`¼] Ý\]åæÍ\½Ç )ä!ûƒÂ¯Ó"ÿe[Ã>o?‡ŒÊqüÁ÷Á¯Ñl[r‘o>úó¾FÚÅRšcÚœ¨›èöòðª¬3xòæ±úp^I%èI݇w; ˆöóÿé ·ó½ª˜Í6Ý·«À¯j˜£6/pÌ=ë%›ƒ|(ÐÓþä¹Aü 5_ùbüïšbôz:MäD…‘´ƒ^oÆÌ•‡ŽôÒ\vº;¶íçjÛ’ÿÔëų@¹5n1ð*ľp wçí‡.ü*ŽoƒÇý¼ú•²ù>·Ðí±ãÜKü<±Ëì<=?˜N;ø ½ë] ¹Ÿ óÁ٦洚ž9’{>£mÉo­'¼ëáý ´2 ¬¢K^5[sZH¯9çr\G7 e.ØZn·ûÝv^µW]K7 ~bSð«k¶ üÁt”¿Ÿ2ý߬!zêx …p"â ½­¶PÏýNEŸÎ«(»õrÇT7õËäjh™œÓY ~uÊßOõ|(MGš)ÚHOûßöÕü,øƒ»P{˜Æ{ûÃbr•ÑÈ®ÉE½»3Xy×a*Vþ©œ©$‡!Vïˆ)±ñTÍ·LRÏ* µF—f:$—JÎË>`{õ#5›<_ï@.Á«òh)\ãW1ê)†hä)JsÝÃJãëzb9X9U@cZ%˜“©¬Ïê³é¥±ú0åZ¥Þa4¤’£™ò²¿¢Aš'VrŠ(PÊÞb•³YõDóµc±mb½¢&ñ½¶ŠWr~0üªµr¤éôü“ëÚ»K(³ŠzéYã‡é8/çÕ¢ñ«|ÌbG*¹;ë<5æbíWú™î…G+¿š…–:¨Ü–âùf9Iãí`ó¨ÏÞžBÍÏ\SË/0uÌ]½¿=xÆãM_Í«'ÓŠ1"Á¿é5³‡25~ÎÍ}_šÞ,ÒÙÀÇLßYÝ}Rr©ùÆ=È1ïhì»~î$ @]Hj<¥þ¼“óÎç¼kf‰ÆÕ§Bæ¯ÆÁkÍv~b6s¬ò"½ ßã?˜ûÖøn0°é>Ì@U¼Û}ž&wBk¼½¿j‹QwR?¥$Ÿ£·o ^µKK0¿¿ÔÅš0Ýÿ³­mÙ¯¡ë8ßÕs?¹Mw²Í6¯Ñ|ßRÔÿ®xÞèKsÅ«m$wºåûЇtüª!êŒyªƒÒ]0Î|=#'?¥“¨Ob½ýW½ùv±W+V›íVØåÀ«sÈÆÞsïy æY~!0ОwCô>™žæGŸóÿhäVÓ¥àW1Ü+iS=%y65ci‡QÉ ÚF˜e¹£¸—úƒ³€¢qMƒÕ”¥™Þv›nŸ¿z€€_}œâ–论ËîbÞèVºÇìx·³kÀ´Û›,ñö'­µß£¦Ú˜ÇÍgúCÊM!å`AS=›9MOWVEëí1Þ§õ¼³Ü©3‹~ójÛ\ÎDÿ_u!®’ëÕŒ®Ùún—»nÛ@‚'íe×ÔÍpr{ë]»ºš/Ú#Lókzê™Ï®´kwU½ÿ@îS^Œú+Aßf`>¾Ð½¤Dô®l ³Æ¢‹€Ó½ !Ío¼ïï«ë~_ZẺ&‘^OÏù·ù‡¨/¿ãQ´#Ÿ\´6Ycà ˜Ã6йx_Bk_Ã8Cwb"tŸ.Tórô¶±’SЉzr&ZX²æñ¤+þ$¢ï”™E•æÃ'èÓéŠ!ŠÑZKXi®iœÆËât'?\wƒ‹ÂuÐi¼=EË9åf%ûƒ%·7¤A;b‡%ÂW qþ’³Ø‘ÚnhiÆXŒFÛ£KóÂ56¯g…ñÍÀ:÷¬F8œpØN˜Cá¢Épñ:óƒÙËõ°¶} 3…~&Ðp¬à €N•ò­þq<²,usÆ~–Ó:Û]ïzi©ž ìœUA-mà±dšü'4ü8øÕU[Ù¾~ÕؘíŠÜº?¸Ð¦›'høU5¹EO-Óó8õ°ò/Ÿ¨ |ëCoAÒCQ ò> rwèõ瘑ªh+½êˆO>A¿›¨VLðÿå-·ë=ÙéïnsÝ*»Ö¾FYæ´-ð¤jãÃ6öW7Ò ài¢ùÃgü_éýí€W±Üö$ç·õ+©O,÷åu€e5§Czr'ôwzÚ ~XO)GÒ8àUðjðª—ûƾ %_µèŽæ.º/Ý9 â­n{F²øžd×Á|Í^çT:À[²??IFæføƒíÔ·¥å—ä‹NÐ=’*±œ8Ý–ûÛå>ä^]› ~UDGÝMp§~n¦ìÛzn/øUsŒå¨ý(6 8Ö„ÈÇÖuä“3¡ë)ÖÞ´W¶Ðže8ˇiš+:})ÐýÁ&*mÉW*À¸k`½Û¯†5Çß=c¸Õœñ×XnoZãúÀL•ÜO/û—úǨ÷”Ié¼_ïâ Õ|‘1š;%Ÿw¦hÎC`àЃÍ-ÉoÑR”Æk%nœ®7³§ëN^œú\ñŠ:Qªù©š×]=«¨·¡Åém¤e4¿´ÄGK,½9Fïx)ù=²§˜­XRr‹Lº"QÞ¦»€½Ñ/\9R°Fú#AƒÕûÌQT Ö,*cDÁºš¡Y^A«OÕü­ ÝM/íq°ö=WÑ3xµV#yr{Dèô Xq¨ÆúîJ¤\_O¦g` ×4Ïá4ruS¬xÞá¼V_7£J\Gç(®ðÍ¿r$÷f\¡iêWJN×\hP'õÓÛ·\Ç{ÁíÚ èt„îÞàó\[ã~3L9Ç[Œôû ô§—éÄâß]çŠ|†.±Èóo:e^^I¼¹¾ï¢é¡{ÛW­}ç£÷Y;§‰j´Ð»8Fè ßµ Í²RÉínóÑç^`âñÐÃç½ÌtðÅ–z‘7 p5âðïë,‚ïyõ3zÞÚ3 ß>¨ù¢ Ýé¼µ¤ÀCìMãÀ¯ë]yr§iÞ;š^ä -ðó(¥˜_ù7`ΫtŸÿ?¶À¾n¿„ËseWËý°M±yf7=è[»û54Ñ3´a-›5²_WïIz¼ìÄË-cÂF»a&Oh¾¹xGë•ã¥/aÇ¢cýwÁ¯Öy¹°–ζ¬[n²‡© üÁr#î” \þ#ÐËþ톺àãÍ%Ÿç?k¤µ 4‰£x ôEn£ˆö`4KÏs·Ãß"àU/|Ó£ÚM3•s¾‚É)AÞ6e_ó†C:Ý·ö”c·Œôoø¸wÝôÝï¶¹çì$wˆŸà‰ÀÑ9îuû—¥‡y·½é}]i ÍÜÂ)¦7ÆÒ’ÍÂüɽöI~ŸÐbà¦äÅ5¶íÔ»¶s!“?½š6Ëc¶#sÀnféïÇ©ív¸«¶äõ†ýæ‹Êyœ}7m!ð*Qw¢ü׌œ¯ŽÖ–@#ä†É¿j_£PïÙœ†£¸‹Æxe‡´•žw–û”¦jk¨æ”>~5Tý—!´Þõtu4~µŽúçùûk.Deñ^ȰŒâUw=?¦1öäq¢~^ 5}® ¾„a%STé.Zxé½Uñzª0FO Šo˜¡ü*šJî-Pž$~¢Dü’5"/ñ«äÒìª$=SF¹ŠÄÇʨo¦1ðøÿa[%÷3/JTî¢1+©)N=DñDS5²V’­•¤wÂ„ë½ u¯XòNÓu?!IqI²ê“t1D³»âK}Ò(=­ø0ÒÚ[IÐ;pZkÌ4T1ü極öm6l:‹Wœ½Œ•s.ugAß=´üj Ö6¡T LoÅáZô uá"år­é ÂüŠª‚‘<ƒu¸Œò«8¾ -’|ƒe°Ï¾`Aâëµ£(sGÏãDÒjÓÎüʼnû½A1¼Ôt`Á±¿¹€?¤ïXê¼MO™co„ù·ô}&}XçM¡ïsåµÏ¯:óçh·!fh4ðJîP“ß,ñ,ÖâÃ꣭ oh ?‰WuÈòï¶™ÂùXŧSY^p¬ ˜šOÍ£,¿Q+’ŸÅ'Ÿ@Þ ý€áõnÒÎxÉS §‚W]©FÝ­a]ÐN¦r¬òzpe=µû¥™ó| ZœVú/Ùö {ßWà<øƒçÍ`Ô?Ùf˜ƒÊ¯ªoŠñÔ2ŒCøÕš§ñ«N°Ówá/ Ñxû D? F}`°Ä*@o6â ù}Ÿ grsÈPÿMoŒ]¼Ú¢¿obx̪hŽØøÀ÷øÕ^þO ²½æz¸ÁʯÎûþöÓó8£iù¶@ÏÊÑBºãU¿’lÝ7Ý0J‰_Õ¡ó¶:ðê¢í¼zÓ^tíÝ$'éÿúîÚJÀ« `ãÄþ¦“ž8m…•KòEsð3NoʨƒQ ^u S©Øe%=ÚI¹}1t¾5VEÁ¨yô ò+ñŸúÐJ×Ý5ÖÓ+èˆpLN»ÀŽõ~ñ×*Àû¢A ùÝgõ쌬û’…S\še¤¨¡7„i„]l6WÑ'IÙPr)G¤IÖxfÅ9O[U£CÊ5¦$9Q¹¥™£ÿÝã /Ý+LÐ,Ï2eÒÛKƒÔ¯ RÏ3Dcû%çqJî“)9kSr?CZé¡rö¹îi¬,S}¿(Í!KVÌ Q˜¡¬+¼‰+PÉ=àK`ôQzór ý­*õ¯BwÀZêëyð㡳âÇýýX&"ý{”žç ,¸ŸÈŸ€_]ð]ÂjP¬÷õÍä4“½êÚ‚^dã³Éïî ~î|“ˆÑU‚”CZrÇÚT¬ìI4Ú{Øúíóoê~±¯º¿íŠå®‰;árïA/6¹UîI;xõ¶›ä¦Q{³±wÚ û4H¸Ô}z' øÙGïëkªÜu:þ g±ÑÓÚþP½yí¢—nó€WÅÀ«WÝÝ8ôì7[ ­þ °·ç\Sàód¬ùظÛFòKï¥Dÿ%à•Äxäþ« ®¤û[’û6 ¯j’ÜÍÞ€Þ‡ ok)^t°Q[›G›WCuîGK0âbE”MôŽÿ ÿ4E”ò”¨ùWb/Y¨o”Þ8%'ëZ£þ„RÛ”[škì=–Jn˜Š¥’ߘªÈ¡±ÂdeF%1¢’lÙ?¬¨ëU„Ö*¿…3Qó ÊýÏ}aê—¥)/*Éa/= “ y«áêᅖƯB4 #X±¡$ç3CñÊiÞB†î)†)îdè>j„2M9ùŸ¨¨'w/—ܰì4ÿ*]³OCÕ‡¦’ßÄ«û¦‘zrtKNKH~FE¬\}!wñ³*Q0—Õóƒr–s7¤ø½>ÿ=lm1˜ˆHNÎã ãù,'.›QE0ªfšß%w£´‡?(mõ¥À1Š5M~ÀcXy%r×:*þ  ø èXOÍ©ŒÛ/ø2ðMF6Ñœe¹OFøÛsXw'¯¤ÏpMþ€°à®.M§T½Ÿá6U‡EuÓóŒð—¦±ï3õs_@ÿ;oc`ÕÍá½½¢;â™`C[±úÀˆâ …§i0˜x.zÏ|Æ òMàèú ð«ZÀ«rZŒÇ˜+æ8Ë.ØM°Š5Xñ$º<Öz?,&ºÝ ÚÏÍHÑ[Ô»ðàG W7hGÚª¦q‰Šº³X %xõôúm€?Xɴ߀UâlàÕ‰ÿ‡©¯€¶ªú¾^{ß{ö~ðšW<^Ññèîî’îîî’E°EÄFEA»AQQl‚o®yîï?¾Á ïÝ{ÎιçZ{­¹ì8ÌÇ|÷·¹GnŽ,ÆIpcÜ §zgÆ&?ŠvW§Î÷9KjãË¯Ç 4¬"Œo/ÇìÛ€`½€‰ï¡ê¿ZýöàŒoïéòü$Ø]HIû’;àóϯî2{ãʺËÀ«‘°—²þà˶)öè$Yl3ë¾-z´–q.Ft4[Ô+±8ë ŒiW´l+ÚÔÿ} »µ?›ìæ< Âö§Ü‹>â·`-\ñ­` ~äßÅ9y_ÃxÑ—ÌA3ÖÝêûçÜ5“%»ÍîbpŽ· Á ³mìŸv¬?¡9åÌã1’³1Æy8š e÷à÷“07Éå ”+eÊ¡/øË®’ïàb~v5ý}þ¢k‰1<âÞ^ñZYçr䊫êÿ³¹èïj)F{°$p¨ VkœQ›>XÕ3QoLÀ¹Ñ k¢yŽ*Ù4Æ3ŠÑ5ã>ƒ¾˜e²Æ~Kä"³|sà•¢ÅZy<º':¾æ2Øwû0†ê+®ˆý8ŽYLê¿Ú(3zSµénÇî@œÈáŸTr4úÜãÉëô°€L(Öav,^T³b*Ä*Þ”`6Dx?¨<§$mH½U¬ÀÈø"ô>¥Æ"G“™¯Z–q´Á*±%Ǫ&ÐÇžIõ‡lچɴڲ7¥±¦•‰8¡ª}F¬£ÿ*…–mQòÁ<ò®Ðc—ÉÖ¢ôùWâ`1ì ˜Ó'ˆíªg;Y¾ÄhwÁÿ'`o&×îƒÓ2ÍhÔb6ðj°t3ÏcüTÝ¥?vTúXÊPU½.vs0¡Lû F¢xÞRð«êÀ«¯ð½Ú¦‚¯çß·Ê’V¸ß±†ïŒ,à }ê 7â¿ßþÚ]K¯^ƒ?Ÿ®‰}ñp«Úð6#S5¦u'öO7`òIÆxæÉ¨è_ÁLw#ìÁͰÓüDw7ìÁJöewÔÉúƒ͸šîW?Ö÷3çd™½‘è[¶)ìÁÁÖàW›DõÆÇ; OšóÜÖßpÞ–×ÃhÌF6É1ð/­/5;ØäâÝAð«u2ÜŸuoúÀë Å¿¾›ùƒËv›ß {ð¨yŒú óüawÅäÉ^³Óý|)c™“´ÞdÚ^¢xÒ#ºŠº€ ͨU#Ñ‘ñ¢š/U˜ós ~UãsÔ_ÎwóK0þ¿¹º~'ìÁv±îœï »t6×Dÿr…°sð¼;%1zÅv­•Óó¬U½ug1­>³]®ÇYróª÷u51›ÍëG›¢0Kwé|Ùbß‰Ž +*˘Íñ”xÍ]ÞƒŸëÍ~YÉ1÷á=iôÛ÷;+CS 3|[Õo´¶g; õÓhA¥HX©&¬ šÄË|"¦2›ÐbÔ}­J|5h*›êʨÒb´KýŸ’h|³dÌ7•Ë‹ mÍtæñý/¾½Ñ'™^úTr¨Ä˜ß,ÌÐI¥-™Áجd*l“PWY£¦C›FEdIX;#›ŠÈñôóçÄ2±õ·Z›5¬–Ñ çŃàCŠÎå±›ÆP¿]ïò~’xð+µÅÔŠK^%ÐìÝ2Ê(®î—‡Ì³Ì¨ ÛQÊÂì"a-{œ¦ ošá暆䟪Ƹó¨‘k-ÁB¾Ãlë计Ê.âmo)j/šêd¸Ëm-û‹ÙÆZóê¿ZG¼J‘MsÜN­ðó‚}Tr­"t`ºDÞ´=©u³Ò|dëE¾á>×Ã|Á›ãf@Ðç€0ªs^‹»é(Z]¸ô¬\­—Ú'ü©àª ~Õgh S5Њ,³¥µ™f¿±{æ”s7~ò æ¸&ìÂiÀÜÛ1Öš¿¿N²Ì\ô»’z²¥·9„ÝÚ‘ «=íð©ŽÌÇÑj=»$Ç~d.%ÂüÁÕp¹“Qd*û¦þ;;ó±Ð}nöËÆÈ<¬ãÏ0×XEc“ >C#ŒÞxðÄ›ÊÜŪ¾h à“j”ø•ñŸÀ"lÅSltÔ¸ÉÀ«Êr·ôpeýH·xUǾâîõgý± Ûn0›âj¹Ó¾—†±[`ÿ‹¸èg¶ Fb*N ¨ÄÞä£w0ß¹7þ¥*u5ñÞcЃ 3ñ›»¨‡\ksf°Ñ%»C¼ìå¿rÇüU·ü*×ß¿ïò_côïöëý>úÛ7cÜ:ü혻dJËãf‡»œA/kã]ëMí7wJ—{kL…õœÄÛµ›§5º¼Fì÷ ÇåÃ~o OãjªvòO®ðê‚SuýcîkpÕëë{P`ºˆÆß&IѬævëÌ-ÒZ·…èQ+üKc4ž¡ ,‰žô4Õ¢&YobT|ªÎÇdâÕ}öLtoêGÉbßÎwæŽ^/ÏFwG‡sg—–<³‡žl­Í7ë²"oøªâI¿ðÖ.½¦Ü‚ÑL¡¿=IBͼ„X冯$dÑÚLd6K&•ØUå³:sp È—T(ŸÜ¬+zåÇâªò©“P„¶[9F^eòSéD™°ÂjŒq2ïòŠÅôŠÐß^@îãY'"T& 5ý ÏBÿUkÌP.ñ¼€ñZé¼]T›ü˜×*ƒdñê·§²¦‡bñ|̆F(§P£öUâguùÜ¥#qf)潜ù•X¤z}‹¤?cî•7À¯–3_¯ì&Uðˆg¾óO2̴⻺È%`W bip”™iœ…U–]:SB=™vàuÑNì!YÀ«ÊĮ鶑-jwZå›1×ÛîÌU¼ ”|\~0Úû ³Ç>&U­ò·¥mäuÛ‘÷†›`6Žœ%6>ƒÓ·ñjpd<ðk4Ö]m¬ÖýXË/£%ÁŸ—Y8Ù¯®ÈËA4²Øèš_„vþž# M¾MŠh¾s ñæipÓ°ZãLWu”Õ’Fíòm·…¬°v»Æ³™gÇݱòÒ¬±ô5±–«‘‡t”-’dO˜Ÿð÷dyôðj/ìÁaRÓÀÕœ‘Ìc£ÿ³¨µNú¹2~´Ûæž•{Ü=æ/ùCA¼ÝjVÇ5pç}ÚƒíåÈ5XÛM€3dª¹ÆÈë¶xòÝrúµˆõq´†V-ôåiìÜàH=œs€¦»1sY÷pJ°öàSÁ­Ëã?wǽ÷wH¢ùÛöoùoý‡ò‡lñ[üÝÔë{ xµÌÍñGÝeÌü!󠋺3è­Æ‹ÞdÊØ¬Ñ3ŒñõíX~6ýWÕ­SÿU¶ôù)Hw•FûÅ;Ë¡_Šk?¹Fx›ú¯úÈ‹àW]üòuäUÛ Oí+³MŠéO›« ÌnV'Ê[„¶è]ŒioŒvOÖœ+C0&/àÿùø3%¸Ã%ÂÔzÙý×î”Oðª‰ëäßó_ùwäO؃·øn¢?b^­v3üqXÄ%ä€Ùë÷5z©± 7âôD?Õ`´bõú a+6ĪÒzðïg°º[£m¥0¿gƒ,WÝh‰êõUö=ý|­ãìšøþ𪛼â>òül=°ýðª²ÿÏæã¹wJjôW«ªŽª»\œÑ†ÒxOg™Ë¼D¬&˜Î´^š³jR/Ú}¬†.¹S—ÉN{::‘;¬,—k¸‚;ä‹è#Ôo׸ÍbæÚ˜JN5ß,Ë[ˆ]÷ 3’õÜ_†“¶¥Q$1f?…•±”SÒ²Ê!Nf°Æ_˜W˜ÎìçâŒÏF ©ù@f“O/—r´C<}ÇÝL[¢p7XÝÓL-Þ_hüÕ^œÃzÏÐO?G{Põ›`µïã´—ïÌUØƒŠ©ÓlYg÷[Í78,ËÔëËóf°y¨¥Öp®yÒn—úV9^²iyÚ¶&¿Ú ¼jùŽØûì‘àWéà%-°R^ÄÛê`v4gž¬õM–€a6»©òœ~£rmàY s4X„qZ(-Íû½Ý »·3¸ÿhý%ÌN¬©YØ—·`×h4ÖX®S©Ÿx+vÖ,ó$«³^Ç|œŠôpÖ¥-§ú ­€¤ðê{Ue’yÌ|È}ªQSàWÍýQ;³²Üýl^“%‘éøÖ—¡¶x—òxërü^c©Ç‚9e”hepŒ}Œxo"oŠfk¼¨Ú¦]ñïwð&½ 꽌v3‚BðÂ.Ç/q·9õ¾ìÖø7¨µxÕÁ=Eý«oe—MŠž‰³MñÖaÀ«\Ó{K½ùwæ-S` FEãû룟ïc%•d,Åvz¥o{|Ë ÁjçÝÞ`² ßÿŠQšïÜ‘5ì—Rÿjöì1t£Äli}V½mK{Y«NU£^_"ü Э*ç«.Vú½@*ÍÁéà<æR±y¾­Y}ÊE;Ë{æ{0õÙ͵ 6Ëî#w:"qfŽíetœ/šÞæ9g”Õ–5‡ìMRËjŽ@²©9lÛ[Û`>¶å#Ÿp„ ¶0cœ·Ðò<Šs«z[ =X¶¥ ++a;0û1 uÑâ‚_íp¹†ŸžfE Vó¤—9fÏÙ‡L+ÖÐyèþí‘)ø³ v•ê¢uÆ>L5#c9‰Ãd¤y–·’½ÑïúTìÉ(­êÔîk‡Ñ¿j^5±sÞ—ÙÑS®Œ»ÇÚT^µò'윷¸Uæ9Y¹‰z2ÊîV‰ê$ÔG™ƒýZWuâ»çÀçTwú¥÷ƒõnzƒ¦÷AªuÒ}|ŸÊCyÒ7z1˜êæZu¬»Kô7¹ÛÝ“’i_tS}·¸§‚Dû Yw!xÍòãÀ­WÛ¿€W÷ÙFÌ༌]Ð »éN0ÊrècúÎ:0†_ù]~Rüª·¬e¶œgç¸à&؃;W;Á¯Nº>ð›Ä›À¯>õŸùOÁN×ú©~››ëš{Í·ÊM÷¯¹€W»Í6çΣ—õðž[LŽ€ž4ß*)7Ѻ.Ía üÔ\ìVòÎÔNø|ZùsN¼ª#û½ƒ=8ÆÏÆ*øÅU¿¯õqN¸Ï}Ø¿m÷sä7 ™Þ¶Àw}ôO¼«43Öî¢jLJE°ê`:Z[=V_ÍRÕ!P4Õ|gRtïÄT[c©l·_G§2pˆ´ñ|Kz¸o•À¯¦Q ¯ ˜Ác8sRyG?”ÚºŸ X)3“èQ'Òò«øV¤ÒrKc,T2÷o9Ì{.ë8$ÒÒK¥ªYIeÚ}êwjŠ7…|&Ÿì3$ÔTÏfEúz‰B{1Ø*Ó”ˆUë*NOz—,¡þUkxe2â!-–KúÌK°ju ™f-ŒQ¨!¯ù;a¾³ê:ç3 §Wi¶&™±ñʼnàÅi;o’ûÀ^”sÕŪ×ìÿTÆ_‰‰˜6är³äA°­“ÿõEûÑï½Y^2ãÍ£Û\JþMbüÕQ™D=ä8àМÆèŸ«†o>Fëìä,àÕÞ›hmÞ>À+åBå”ùÜ„zãì悹Ï*K}§ZwÛ×謜^½ÿ꼘×íbihS/Ú"rÔv4zÛº‰ñíg9w/€A3ßà½ÓÐú!ò2Þ^• 6aï½ÅxÊ•à7ƒ`*FYóipö`UìÇ륒éLöÜ(uÍRû޽ÇtÄþ{¡7øUžßã0+1¦š¸Üh2ƲNÁ2Å<F×—Q‹ðžŽØS•ñM­Öªêɤ¨ýÖüuý¶,Ž~ëÊó~°žQöàv>ÓÏõ°÷Ém‘UXkà»°;¯#bmd¬‘FÛNg<Ã(Öà› ¼N~õ:0£4Õ6õ޲¬ÁOÑ'Õ9ý-¸Þ-*kd–«æ×º›Ý‹R;åÆ}柒€ËÛ㺺wÀ¯›ßäF{6’}Íj¶â™Ázôå˜Ï± o«Î3-Òú‹ª/úöY.ï&·U¨¶Åk8õÊb5N ¶¹,÷`0s2Ôå^^í’xó·Ÿàßñïùoå_Yç—°ýs°ǺÕnŽÅýiÊÊ6s¯»|‹3DÕ@ט;OìÉZ’Ë0mñ¾)À­…hCÖ#Ôú8ª'Sëüû ×53hë>Üu”_ˆýú#ëMüî4æuwÁwòóü\<ÿRäWщ”À÷ï½Â؉ÚZG^Š`e¨žŒÆ=ÜŒó£’h­ù*r™ñíÙ@Ó:˜µî\Ãu?•ûèFyľAÛjzßö ZE·Ë_у¬£xàÍÃR›¼HùÕZ]IxÇ ùÖH*3D?ÂH+WÉ¥7¸ØÿåÛ„Õ)’bžëúˆJð~06›F‡2·PñA-ø’¼ù+M¥„¨Dæ(edU ÖrÔ,‹¿Jb¦N˜] í)C¼J"'(«?˜»1Hä»r˜ñS„œ­8YZ"1Ys›Óˆ‹·ËnX60ŠC«]*§O!¶;óŸtà¸MšÇÑßž(gñ³Å2À(Öm’Í8s+õ‡µ†W æ&`Ÿ“±´‹`Çþ*€dŠ«ÕWãÄãEÓpjO']o&ª-ßYÞ2_áóÚ¶Iö¤¹hvXÃ8,WeíntÜ2=Ìøo<ïŸ^5±T°6M"oÚNÌžӼ{ðKÎÀQXC`–À¾nˈ«qdµñæ‰`nm»\Þ”ñæõIþ“Ï‚Hd©Ñ»ì9xê²`.¾¹T:™uö»Ö@3ù(?Žþ+½/›Œ}yF°:öæF`¨*Wæb}N’1àW+x[ו± m˜?Øk¦"žÒOI£>C3ìèyÑï\Y÷°û\UAM¡¯ç?´Sð›Û]s»[ŽÜŒŽýÙOnÏl½h·VCì ~­™,ÓØŒ0ßÁo*З¶-Šw¼–é½ñÐèŸÁws1èîÊú9n…{B*ÙW]¸}þå ×>`ÎÆp'ýð«¯d±ýŸöc˜ÁœËÚ^ôR£W)‘ˆ˜I½åoŽXPZBMõ k׸X Átj,(Öd‘_ÅS«¡€úíI¼K¬E=åNùÌÎËá]ao)C»ÞDþ_¥3*?…ù/³`¡^)nׯ*ë‚ý§ýª œ¿ˆWœ¹«NÀ†ÔWvëãh´þà`3õè94']Ï‘ºò<ì v´I{Ê2T2}ø ñ¦~ä°í%×|K½¾úŒGÉ.ò®žòó•+βÿ™Ëfó`7N³×QËô[ÓÝœ7²È|ó’½Q1þ*Í´¼c[ߨ¼jùž±tGðìx[50Ç€ãMÂÞ*‰žªîÊs¢^Û`SÌ^¬Ž`MŸÿØù¦$™wsØÀ@´–¡ýÌî6 Ñz1ÇÁÖ~du…©¢j™7óë†Ó8ÁLáýàjœì“À¯nÀ:Àz•°›ê`Çt­¸Yk|?øÕØÚ5'ú«+¤þÕàUYø¦þÕ —m•Û#Ëðwñ„ŽhKg´¡6PhÆ®>£QßBkF0þi6ðªNðæÄ«RŒtÞ€ßtÇ¿5_Z-…ÑŸƒénaPû¯Ë^Ýá•â°/úåþp¼z<®3Çx?'Ël{1â£/Û&àWÃåzó—„ú¢%E{°ê¦S¿]ù‡ÆiÅûKc, ±ºf£%wb e92?ØŽtõ&û/¨ß¾ #îãú ~¿ÿ ó|§¿Ó?¼:bö™¹ÀÑYþ„û³±Õ¬rÖ}-#Ë~ðj3dF¢7á­m©ÃÕçiUj±huÇ]h£Vv½Y~ *8Õì®!ÏÁ¬»oíÁ†Ôo×ø7Ü÷à<óÀ»ºÈåÈEüF"XÙ›E¢ßÚ¾Ìï¥ÑX8™k Ï ±?–ѦÒ;ôzàWݸÃô¸5FB£’ê`­µe>Žj8ì°GXÏË£MK|ßí/Šø.ºü*¸”lˆU_×ûŒéôiÜÓÅïTßC\+ίó_È'rßâwºñþ)æ;/wËý«îðj¯¹ß‰;%ãY[bÉ·ŠTª/Z‰šÚ­Xo¢ vvUZÞíå ¹›'”Þ*\ J¹J¦<Æç„7¾¤¿ÎÏÃØ^rÍý&ÿ£ëŠñ| èÜÖÏ„=ØxeiØ<ÌÑ6IŽþi;S ¿+Öp’©B‹s³JëkîVG#I7=áT?i‹™Pq3´¦>ê‹n¶Ï‚_é]Ý Þ6Ã\$`þ]Fû­ N»}ÞOiÞ–ŽZí»‘@2Í&VËl°€öd"ÙŒÄ ³‘õ\uöÔΪÀüá$ÚˆT&M¢×½ýT)ôSu¢§,‹ù8Ì£É&×Ò¬Œe1¦=|C9U=LEXÕ0ŽöZQú]<ëÑ—æ-fXó4(—ÄxøPE>•ÒuÑŸ0o1—–iùgï%3èOKguÕd"ŸúÃjÕŠ'nÇô¨"„êk•s= jaÝü‡¹Ò–ÍÄ^Ž€_©xœáf°'åž÷È}¦­Yb´=-$0ŧ>«:ò,†N´Uy†iBt¯ƒý0V¶ž€o?ƒ™hOï„­5Qy þô’2öSæ;϶sl„õSä))kZµC‹ÊyÓ¼'O0^´ª¹Ç®–ÔM1­#Gls£gÐ óŠ­ù™£ò4¬…ñæ ô3z4»|ZªºÛñ·§±êªaÝ} ö^ÌZK`ÑÙÀEn5•ÈUJ›fÁd¬Ø„fýÚ¾bªamþ&/boüÈê\aGïÃ8ê)ÐKÖ‰§cÏVJ“^æQìÕïÍÚðí±+±¸ª?4À^ϵ߂¿4sÒúƒ5Ü3î$ÆHë¥6ñÙ‰zïR퓲$¢µ>Á>è $ìÀꤱžõžQ«+k½ÔÌtXH}ÑTéÒ¾i6Ø´¬ 0íìÅ2X9}£Zß¹*vco—çGºõî)aO¸ç`•½¤Ú=æÆ¸¡îkàÕóµlµF‚èk¶và0™g¢f žÒOÞ U\sëÓtb\Û}¬+Ý‹õ&†a ܃ÑZH;di°Ásƒq@’ÑàWÀ6Û*ÅŒÄuó'Á¯Nc¿nñËü7Å?gž^Ý~uÜýeJÈnÖTT®~­5¥Ày4GãAW°šcMÑš7‹È¯T¯áQ´D°ËbÄ~ 2\£5»_òÿ¹2¾7𪖜su€’¿ºnøþ«îŒoãûi˜½¿#Þ×ôÿZýüI‰ÚHWÑó«/Xs<,‰Æ¬±Ñ ½jH_ðl|ÿü[3‚k M€ŠµWÝñIå]Ë1Š1PãÛoò-À¯4véù<º):‘¨$öÅ£ÌÇIG«U¾w~)´éOFT¦cÅ ÂÌvb´@ñ#äW)’ó§ñn°$ýÝ)1H#*¨^R阭¥z2åéy‰§òTñ˜6_Yr³LæÚ¤2B2™Ø’E?W<ÙPx·—Ì»¼°ÞD"ëyeóF þ^”½Iå[¯Ê1 ,™ŸoÁœ‹DÆ?”P5Ž^5½—tôágQ[%9‰ªI‘Jÿ[_0éýr?û£±’½° Ô.® ^þsLy!,¨ä,qþ[œœËe ã6wÊ0)Fý{mpêh>Žòº:øÔTÓ…ïj…§Œ55ɯ22bÙi œFç1jëÞIoËcìsOI³çL=Þf,³×Ùx»‹ºÇÏâùóÁ¯ŠÑlk>–F?SÖ én>ÇxôEïFbgÒ|GVÇ-ϰ–Ír0—!æÌU]‰šS,ÃY¬l¾º1Á •V"\fÏÙçк&rz0ZkÄŽîne<ƒ*€¬‘B3 ï)+Ì“°´|ê´$îFß¼ª3!ígæ2Úò6óqÊ»'UÎäú:þC«U¡—»,{H¶Eæc¿`݈›±;®Ãn{mhȪ4ƒÀœ~eýêjÀ°ýØ£½yçØzG9˜«>XáoïZ0§øÕ,w3ðjµ t9~„ۼʷ/¹×üóþH^͈èÎú¾·9-묋þyÃ6:NÇ ôú\ŽÞª»šÕXVs¹Û£mÁk´Nkü|+©nÆ(/ ®Íô`½KqOª ÒߟsÏ{ëïDâz'ÿôŸc¥mñ·úWO˜fªÛæ&ÃüÍäÉ>³Îýœ‘qè}3ÙnRlX³Uõ–a4µíLŒé¬ãRhgS´LëyáÙq)¨æ Ö<áÿq~„_„O| ¼Úä¯Pù ÷¹oéçú¥è^uÕý6 s}ðêÛ5 {F+x”e}çåè³ú¯æOºÑF«ÏÂnÜïMDµ±ÇÓ¾xõZt}ãCd­oî‘k­•KÌÇÉánO¿ªÁ]í˜J‹±(= ¿óV,•Qz¥™RÏj÷¥Å¼ØI±õâ´3XÙ'›mÈà镯Ï(^iœ–Æ™9BOz+¾¸ þ4…ÌH}FeˆžxU’HÏØö°†jè+STÏz‚a.aÖ.M¬-JÎÖ„·)±úªIüL"ï%KHf¬a>ñ ã»T‘´ýs‹±æ·É¡˜ÿj1óq«‹7y¦%±k&X¶9I<ù‰ù cö¾¬Œ^r•Ý~÷F­¤)~õ•ªîgs@VE¡¥§E«]܌ի5Ïï^5âMþ(0­—Úù8ûѶøæË¢i­è¼ o¿N>Â:oÏÓsHôR0É­*kíz؃CÝf÷¸äÙgÝÿ±"(aw˜qqíÝi?ÒO„-½Ñþ¹ùÐ6Áî[kÿ"°±4Ÿuóq¦`OjmÅ6Œ=„wecŽU›ó:¼ù.9¦7­X¥ ƒ-®”{&Éx†OÜ1Ím¢þÕÿë㤛@ýn’?l™Ñn'øÕkîoSJ6›Ï0V´ â“fUY´1£´—±žsm¬#Uœj€¶Õfý ûß^s ®ž+ƒó¥¹¼Œ,åûx­ÕqÁÕÇÛþ!^uŸøVàW³Ð‹+ã«û"‘â@Æm@/‰ô¤Æyw¬VG¼ªKW}û𙓆uÔ^>DÏÓÛ¨9èߨ…ßh}çdîµµöÕèlÚýd–oçë-n‘?£÷DG“Ç”ÄX<ŠÝÖǬ-ˤJ˜Ói©iMÃ;ä08{:ùT:w~r솰8!‘ùƒ± 6™Ì%L%ËÉÀ³óéßN#k¨"yÖƒ.Á;¹Pã¥LL¥Oý]¹Dº0î498%h±%Ä*¹&Äüýÿ‹g(É'ôYe‘“Åóm%þË¥b¿ÕŽÅbå³vkš„:¥Åù^…Èf}ÂTÞ÷i»*Æn¶±^ÀƒôÙ5f¬JKú¯êb/~¿'Ð|öÏwÄ“3X§·È(jŠn—½¦«GÿU]XAz;¤U5Ó´b”Æœ ÓMMzï*0ß¹7}J£1/?âÉz*¬Æ3'èMúÖYŠÀ>j@ût´mm=ø•ÚÇwËeée»›²øÌ÷¦¯yGŽS[¦„Ùoׯ´Ç—¥U䘭Î<ÍæàÕ9r×W€K}̇ª€¦öQŒ×l‰~šµÁüÜ,¯ËpsF©‰ˆù(H„ñísaqžj¼è"igæØïì‹Fµ’~˜,Áâó#°[w¡…xjGð«ºf2Ök¬ÐÑàuð_­6Ñì®ùUy MyÚƒZÁ%ß~hþÁç_– °˸}îs€4U|xÕBnpÿ˜çe}d Þvûªf -Õ[¡ ÏÐ{øðj(5ˆµÞÄP<£%øT¼© ëÑkÄ/°§ZpM ‰^ &¸•À«u2È¥‚_muOK–}Ú]ð&î™ ÛÞcFÇtßøA¬—z—‹F£Ú6èï™d~Àósyã¹£Xh¥þv­Ô£«àIéO~Uó6“õŸz«=°$Ø Ì9ôÃoúÂ|ÉÇùmRÄ\öÃüçþœÿ §Å&¿Íïq3ü³f¿ë6±ž×_¦@1w;Áèh”YS¹Ë”µ±V[Ò·#ãT_´±è=jIŒqy«J­å °Ö¯µ]e£ãþ²ÿÛUóÝ©/züj›¿èz`tžs'}'Ø¢š‹x5"¾†F Xƒ;ˆþm{SÛ¿ØP1£úð¥¨t¼ ?S=dõÝÇ›.´~4ßYý‹jEµ Õ8LAýíoDG’­ —U¾™oJeâÕr%z":Œžlµб‰*Zo—÷gê̓ççÓTØÿ-žšÅHÒôXVs*o ¸S¨ÑW·ãÉTöL¤‡:žªyeˆ#ª-Ó†,,Ôe/ÅH«dæV`vO1¢`‘%ÔQÏ §J–°ÞDù˜¥W‚”«?X†ž´8ƱçÑëT”òyÓ™Ìø«†xN >5ô˜eÓÇžÃúâäZÙÔ(Êw)æÕ ú©vèz¬¦¼Y¨ÊúA˜XU®JqÓ’8³¨VÜ|)“y«ožŒdÎËv¹ßL5ÓXÿ½±dÑ•ÈxÑÇ€M‰½}Á‹zÓU”úWÛç–¬Ê~Ø“È:oÆ3Ç00³|ÊœaüUŠÌ´qÖ10;óWYm5o±8øUkóмC^—gž·wICê_EMýÈÓ¶Ûs3øUíÈwŒð}ýëd¾V`ðž>ÔCn)Å©o ú Í0’+ð©Q8ÙT¯ïšœ#ËÚÇ‹¤¢I & óéoF2Zcâ5SþÂJh¬~Ý‚ý[ ût38ß ¬„<¬å‰èûAìÔnxk[ô¼õÕkÓ3]^Ô¶Ú'Éös ûï„Ü{°¤{È7*g*¯¾²êšå®˜·emd)¾yV4sDõÛÛÑu#Ú«x5xõv¦*F.À 4„ñ¢ïIVÎÌ“ Ô} ˆÕ…¾‰ÁÑŸƒ©nYP]±Ü÷ªãyPJÛcà¿øg‚L»ö`wÂñƒa¹¯³—"—#ïÛz˜é2Þ\afbs¬ì=°iu7i¥]­«wc³†iü}3~Óhùö˜žå“‚•.Éí Æ¡EƒüçîYÕ­Ã qxõ6ãE¯Ê~‹ßí¦û'ÍCf”Û¼zÅýˆ½ºüêJðÞßïØlJ¯Š£ ýÑGðhŽñGM†ø‰Þ>Äz^cp’¬’¨«íª~{Þÿá*ú¡àQUäWWè7û_\'|^ãÛ;ùù~1fIõÛ«ûÔH.ëÑ_Š\³½ÐË&Ô3IKÓ;י˕˜¹ Ä«æò}V)x{m´¤;m5­övÖ¹ÞÞ 7Ù“Ñ!\ÛÃåØûõ©þ´F®E÷DGÐ"ËîÂŒ)¶”Å,N`¦oFs-0*“ù{uÁ¯^f•ßbIùUêÿçkЧ^cÈSéKψÅ'¨µ¿‘J­ÃBz›ŠÝrøÄ$ÞÒåòIê­)KÔKãws½šÃ+µ6‹÷¸wãÀPry Þñ%UÂ^ñT³Ì å—‚1+G^ÏJcaÌC<ëЄú Eɯ2xcjgU"gs¶)ÏÕ31 û@1­²ü‹?­ØÇX[EÌ)r­s˜×Å`"ÊïÄ šf˜0&$ÞÔgüIöÉs°C¼«¾‡©É˜“j`;©äVóð—èý ²¼;±—ÊSŒoï$ï¯Z1?h¨-f“íN«={ Ÿßb¯3:¿¿™&Ø¿/Öþ0‡ì“Rß*®¦™–‘ý¶ óqV™÷Á¯>¦ûªjïšðÄXaZ™a±¥)öý9NE åòŽ 1cßLþ“3A±ÈSƒJÙ MÉ`.-ÇŽf·ýÞ2ÝÑÛ±f®Ç+ó¾l2¬Ê5Ô8î‰\ÒÌ¥ŠËrü¦NK@èËÏåñÎJŒ‚¯ŽO(Ÿ}XÒ죰®ê[VQ¿ýA؃Céooì?µª 3Ïýf^^­@›¿ÁÓºSO¦öÂQäÚ½‰èÕÌ9Ö|­7¡o‹VIЕ»ƒ5[ß•ST£È“Ñ?À¯åÐî¾.ÝOsÜÃRÊ>áîö¿û#x­™WͽæøáÀúÛlRôßÈ«°[º™mþJ”¥jÎFp˜B°V`ÕûQÍY9Âh‡.ØÕk°zúÍãÔÓˆÁ™Á*WŒz2›eˆÿÔ^­§¸â{úWýið«€W+ünÎ0ãÝz7üêg“#˜»œsߢojëm1åì àR{ÞEÞÓ,˜áÌI¨‡^‡ñWZßYo2o—?‚š®ŠÑ7Où]Yß×/Å üé*ûíþãE_tŸ¯fÂN¼üê?WÛGXp­ÄG¯ÙŽxf}<íXÕx L`åÚ¦d3ñ»Ïð½,Þe©^_Wúš¥º‚ýªÍ²VõÑèpZEeóVÉ?Ñ}¬K¨/šï\{¡š @ ‰!ø ùG1¼I+Àti»¤År3‰;a•Aå*…ô ¥ÒsU…ì(!¦PS¢Qϲô1%Ûr¸KˆK9ôâ'ó}Y|J*ûV>­Þ/e$h–„ªÇN¢ÿ§ÏP„ú¢™TÚJˆé-T”P¿]#ÓÃ8†Ä˜þU1bEv,^4NÂjÿËÒú„UÕš€óg;ÎÇý䎕ÔONbÔÂ~oŽU<“JÀñN‚5*¿j†äGVÕëž%ÕL™`öÃpi ¼2‘íFsè~‚M¨…9 O¹Ÿ(`¦Í)4ð”Ê@®™ÀɃèqOFyª>C ìµ Ìý«-ê Ú/Î>m~ÇçËm°K»{ÝgšÁkÊûZþCð«–²üê¨,Ü€}øs—b—j¤ÜãØ Mð¬Á@à£àW£Ñšê°]ˆåž”îÌÓ¨U ø„õÀTmTô·`¼[Ô¦>C’Ÿä¶¸’ ¼:ìÿò‡g·šqÍÝ»~ øÕ²Ö^‹HôM[‡ùy³€W½±òU!g;ú ñ ý©jÔŽiÇñ¯|Æ‚í@kâíªª£þö‚.Õí †‚׫=ø‚¿¼sÁ÷óïúïü{8ß6€ãlu“ü£æa3ÌÝ Ëð÷»).÷¯þ >ÃxªþÕ“iû¡g0£Zï¶-ëKCû–`œJ¢}-±j¶cÔÇPŸájPèjQŸáyÿŸ+~¥þöŸaÞ ¼ÒHž£îKàÕX¿ëñjÄú °KàM÷ȯ‘HDïãTcN©*¬—5‰Õžë`/¥ãŒh‰ªz29x{}ü«'OKô_3¶”?h½Ô×¢Ãyó6@à<ªÍ5¿T‚àöè8²žrga´‘j„ÃÙP’T0ȈI¼ÍþŒñ¢éŒ1ÍáÝ`ëÜ”P «tÌgÖ—/Ëï)Êçi•ÂH«âÔêÈ#ËgBXA+±XÅcQ¨™ÔÊ ï³©&_ <*•Qž¡ÖV˜ÓCÎ'†;yŒK$v•`u m¼ªdpÉĨ| +¡Æ3Z"—>´"Dî4¢OcÀj‘Qe`îwà||„® ΉØÅñÔ“‰3%L[ö~.Ö¿7'Éà¾ÆÍ“ÌÝ{öàX„еMŘ:Ò‰m«%J|Wy]XN=Ï u(–`ý Ícó'fYû³Ïì–§(Ü8ô6ìPÅs­#v«Õsg/ž?ß¶3åðœM+ó†¼M»/ß ²·2þ v»iyÌÖ¦6×Bóž-ŒüÈSâ%Ù"ÃŒV›Ü…µÓ¼}(ÚRh±émæÈ¬”c2\(ëOÌ»Azdì>Õ.mfÓ1.³aî³—Õ{ä0ÅQÌ™¬ìÕŠÊk©HÖSn•2À«æ˜Ù…ØÙÍ~¬ÖNØ»Ô†Ê m±æ ñåWšƒæŒß² zÆåÂü»½œ)å«ùÏ­Þ Ìqß™Ãrkdæù;æÞD5‚ÀÚEØ VcqâžÆ»bïÎÅXÃ3ɇØËe™¿ {Iõ´®JYêõýLvóƒ ÀÝîÀ«ëÝ ·WRìnw¯¯ê_‰«í>ö#ýxól°W#oF^±­0sšïlLOQ­•ŒíA«ñ8õ`Wëg´ÒÔ:Æ'aÍ9ó+~«µ+ª7NiÕl%™øÝTb¿2EìúÛÀs¶ÚF5£?7=Íûò…QìO73íAé@¼J0ÍÀ¯jÅþ•æ¸-9ñ}ì§!ÚŸ‰ÕÕûøS¬pUîhŒ50]ž Çt%¬Æaæa|¦\“7‚Hd¹QͽYÒÆl&Êj|·yÌ^´w˜ŽŒˆ\‹½áÞ3NÃJÜ„3O½½ÁåJš‰ŒÑœ¥Úå`÷u±s{¡ß-1 °§Ê2ï®Þ¯g÷¿4†=º,zÞeç|u_Úøêþ-;ïšëΛ§d5ëyýÀ}¹Œê™µ©U¸Û ãy 8< «B½ýAŒ&x“üª:ÖÆ:â+Â\ŒÖþáªÀ<ï͹|G?xÕ^~Ž\^¹H)Þ"_˜ÈuŒûîŠ5Sx¥äùõ¹‹y3x/zØŸ5ª›1óf5ÖÛ! @eìñÏ¥Ÿy£Ý ;æKàÕ ào=p¤ff/ìÁ ZáÎ|d¿·›ŒFW~0ûLõ²&a‡ìÖzõèaœ}åÍXÖž_ DÕ·„Ñ KÙ•õ;ÅðJ+¸{?õ¯^ç9íòÝýîìÀÒ¦Ž¯ç¿¶ƒ°ö—»3æq¹1²3þ+æ§Þ¡l­6X§ÖóÒŠ¡cðý3ÀŒhCÏ0ýûHTeNãîÄ›{Â2>…o–ÅÚý%˜à¦16ý\ðêF÷´ØÜ¿üʃ_ÍŽK‡…4Ú@û–[ý,òªÕ›¹Ù2Ó$š^Ôl)‹t¶Ñ`2>õ_µÁÎÀX´BÙ¨ Xa‡qV©ŽÉ‚`K'^ÝÍ|ç—X/U̾³ÍŸó_É_°oñ{ÝÖwžì6¯^Ã,)û̽λ³8Ýôn],§­zûXñZï24^m:ë¥öD[Ža^:`vʯ¾ Š»FGã^ê_ ¿j"¿ÁÜäpm°ÿ»/|7?vbO¹q°ã"j3Ý#&Z4Òû¼:ñJõdâ™Sð®Å<íÒ°G*á”îÀ=U?o‚‘W»¬ZÓŸÔ½¹L¶ÙsÑDŽÒxÕk2Q3|‚·£cñM æ)Ë=¨ñíccµ™µrö`G*ã»T¹óC?T1rTZv‰<ë³é! Ü3©Ò’ÌÈ ¨N R}Kõ©>[Œ±Ÿ%é·J`TyF”eK‹“%ò²DL-"žþ«âÌwNdìf-«"Ä·b´Út©Ä«°jta,ÒT&ªò©ñdl©Ì7,Jv•Íx†xÆÝ†õèÙÏÚ´xÓ€Ú뱚îgÌX]¬ûÑé$Þ:“g:0®Lo¿2Í·lÓiÖe4>j VÐüÑjÛ¨)õÛ5þêMén¦8?V.K{S=®)7›u'.á·ÊZïÀ;iå|·½œ6Ÿb=¤Ðß®úW»¬ÎÇÃò·¬µâØw¦’y]Þ1¬Yfn´ë€WéozDž´õ~w °¥ ò5mòw’íÁ¯ò±;Q¾U_f­w žÜ½]»PsgJÉŠ˜ïƒí Øžµ5Ï‚=8-nlvÛóv Ø_mùÏ-ÖTÒLÂmŪӚ$zß]ÆL§Bû쬩fþß•jİV”ÕÀ8ÕÅß²¢gQ{üª)Þ?+ú¥+ãtŸ¢Uy¦–oáOÚøÍJ÷º9& "³qªœÜ™uªÕ›}¿\ÏûÁÁXÁï _ƒ€ŒzG° {x€ú±âõ;è ïuÞª6EèÙ`¬›E}Ñ~®¸_éV»'¥¼=궯ŠÙmfZ\w vÓsNn³6úqäÛs5YæÂìÇz©ª¥YL©ÏP™ùÖ-ä)ÐÇXT‡=6#¾öàì¼,™ÜêÜ=8vÈÿµ;î“€W9ï{ûýWþ¤\•µ~ß{ð9ó´™î¶±ý¯&Ov™û\Ô}޳M=¥Û`¥m4µÆZ¡eõ0âMY · oPU¿=´ï”߂׀õèöq¾ ìÏyX‘¿¹²àWZ~€<¼jçgú¥¬7¡ñ¢ åcëåø•ÆšÕcý£S•Ê_“±Z3. ,ªNL¹8æ¶!~Úƒñ/ªªVÑlyÄþD¦2Hû®¾#Ð×Jrp": IñêAV¯Ò:ýÑ—RÖ5D úàúG0ÊPB]õd¾7•;?ƒñNeYU$DšâŒ­J£(“·Ù¼QTµ¹Ê´¨£žÇÓ=™ÊÈY1]ˆ\ù_E¯$Z†¥ÈÝB=å,2§¢Œ‚HaÄdXÏ+ù8ñ¼ HfN=g…DÏ"DÜj1?F,?:%»•CÕƒFX„µtB^WGB­zµõÖãœNc×(¬…¦|wUàCMÓŽø3ë­¡ùšüð+¬ƒ¥2Â(6f¹þíÆ@ŽX3zÔ‘/¥:ø•âX'ð«Ú¦*ýíµñÍÔ“IÃÏ‹0ž!›÷¹dˆ =ØN>0_1¾4M®·ÐTÞù0Öñ=¶ñêSÙ¼-›LÞµ¥¹UTL×Èû¶–Ѹ‹Åæ3[#rŠýz¸ÔÀèl¯Ã:›v8µÝªâÔv Êû2\¨"ã¯>â"7ã,®¼je6Ó¨ìQÃŽüJcÇ—KBðŽÖ?½†R‹=ª·Ý‰¤þ¸>àWW°Ó••nÄn ‹OÏ€òƒyÏ4á‰1 ö`Ôn ò½’{°k ž7ÌËò®QK=ËÜ`7H'«XŸhúD^·uŒâòLóš­ù†üõ„l®° Ka·ÇŠþ okÎj6»a­Ã.ÓøèWa»ÝÏèý๠)¢ú¢µÑ÷jfi0í-uÌ+ö‚] \nÜÞƒ}5¹XÏÀ·a5j=¯Aàùf,ãço^5»1^}YϦ-VQK|¦+òT£š¼ê3)z)˜íVå1ú}\)ƒ»Ýí•<ð«Ûýô¸ç‚T»Ó,‹Ëu'ü(?Ü|#[mRôŒn3*yÍ5I¦/žÓã{öiœÃ©G¬>o%냟u¢mÀ¸ j<&¢÷ƒ³ƒ].Å= ÇÙÑÇáŽú¢~0ê/ú¯ŽûåìÁëý£nŽÜì1ãÝVüí%÷õïuñêKm^©ÊVgj@¯ÀX¶¥BnˆW¥0Í`…îD‹F`¯¬–‹A WVe-yÎ_s•ü0=>ñ;øÕVÿøUyèÜÚ/ïê"¿F¢¾Ž/É£žLB´H¤'c‰;1Gõ´ªVKôJõ¯ÒqîU‡ìNϵÞýªo$‘º»3\Ó¹¯ÎÄêM ”¹¾­oA¾t³Hp4:„±£`585«’qTÂ3F0Ö3 =ŽÙË#*ÕúÚK¼ åqîÅø¯0ß¹#›ò™ë’C_z:Ïn½U«‹v/`F@6yN>£¿rÙÎ<ÆÆ§Æl· æ´…µ·Šóç%h±%3ï9T^ˆ'Ÿ*JÿUȯyT.ñ*Ž\+c¦¬Nëã¨Zf¨u“Á{°f}v,§5òiI†þö,fT*¿Ý‰?Êk2—µ>\àL%Æ!hþàëR`NÓÞ<‹Õ7»PñgúfQÜn…½ÛPë´ãóUÁ©Z½ŠPùigªõkÃRÙ€9Ðø~ ›ùgÚÜ·#»cÕ«ß°«$ÚaqéNµC¬·÷ÙbärIf¥ín”Ÿþ`Êaÿ¾Iˆ\3ÅÞJ{V,ìÁçÁ¯´óWÕ"gÈë^ƒëb¾DU‡e*ë¶ký¸šèÁ"ð«¦hÑ ìíÁæÆ3\“ïƒðª°h˜åŒ`*ÖÚ©‡g^³7™F8õ>ÀŠé ÎW•j!£1‚7á/Ëìp>UìÍÂwfÈ$``_üQïQcÆÔk}øŽD­–¯=’b_1—±^‘µÑW±#5¾½š¯ç?eýÁÕî€yVÖGnÆÜœ*¨J\Œ`àï쌚øüHôò4ú¥ö˜ò«!@ªúàŒ°Ë´ŽÖ& Èuò1˜o[æçþLw7Õ€7C]¦¿Ëmta>í¶ø~qOIv‡Y—çŽÀNgþ”]6;z!rxÕ˜ú Þ ¥ÿªÆðAÆ"i.Pub†ÞªÅuX•ÛE½A;äyà¹Æ[_l^=èºëïO¹÷ý_NõÛÿòcÀ®^÷§åÙèïð»Ü"Øì4Üêõi=¯f«³î•5ž¡ö`>VN?œ7’oVÊR}Ѻ˜Ç¶ø÷!êÉL¤^ßßAEWÃT¶óÿ¸j°s5_à’«Ìúƒzƒ{Øýä›Ól'ÿF"ÿŒH>õНz£õ ™¿5µYÿj&Ú1›$©˜éÆòfY}ÏuD£òº3~Hkn¶’‰ôM/ê~¥6È8¹Ý÷õ ‰KËå¿è¾èPF†H<ðª÷©FÜŽaÔR*U×ß§í§Ú)äIÌl6¿Jowè»J¥m¦wX_œ;­H,Æ*Ô%NÅ9Z!ŸC«¶$=De©œ*±—âLeq2cx•B?¹Ú«‰ŒO"^%‘³e2·9þÿ«Ëú ’èËJáo’ñÔB2!ÕLÖ[§0ò"›ñWä6™ÔœÏ"kK£-ŽžøTÆ·‡õ¥—a´ö€g¤ò.U•ÀÛò†´DI؃¡ò{À®ŸùÝ3øÄBXNê»Û$÷š[Í*êõ5…}×@ÚÒëVÈÑÜL1x0Öb9S>vo8 {¸Ç`ðçWðßu¼y<°­T·˜äcãíëìFêÉì’³Áöf‰S&üê[£Œ4ÓÌ^µ³¡f€W/ÙêFgnŽyÕF¾ã˜¾¦Óʼ‹‘Ù‚·Ï >Š–{+ðY8ƒ5.ú ÐPó´è}Ps)ð‘ hµÖ‰ªin ¦c÷Ï•6æ¨ýÕî3ê¡ù ìrì­Ä2Ö³^j °š-`ôÓ±´Æý,XN[±S;àçÝX¤5•”‡Wæêß+ÙöuXÆM—·EÿtåÝ!ÖK-Ï|œ¯YþN·Ñ‘U‘@žŸèÓ^ÉêUõ€K7ÄüíÏð%vjc¼c:¬ÌQàZ§HkV% ꈿ&_3þ*CFFÏÁ¼)¨ÑïëòýØ]OH)ûŒÛäÄ=$ØíæàÕ»~€гj-½¼jJµÌi&ͨ~ªòlÂISïïŽçR±²æ²Õ15štþÜ./`¥iENÍwÎ^MÃŒŽô¯¹õX š?ø™?áÏâï«ý:¿xõ¬9 ~µÝÍô¯¹ó&[öš]θOñ®òÇ=¦,ø•Þça¼B´¬¡¨ëX̃²»æò4ðRëc”ÇyôGPÆU^5c½ÔJ¾§Ÿ‹ÏF|q·¿ä´^öãîßÁÏòZÓ> |}ŸQp¯¸¨^iFI_¬”kR…QâÓñιŒÕV{°9=¡É¬­VswZ9M€dæš ·¨ ¸¤wUCd—éëqWÞ¼:MïxŽy3§û_¿‘Eí¡†À«òj˜ÛûпLZIÄŽtú¨’äµÕöΦOKšËKX©F}MÐúâüWuBòÉUÊ2¾=ä<±X©xòµ4FvfÆ<çÅ%¬‹“F-J\ʤg>Ô–ÉŠi¶;F’†¶^½ò¥ùžÎxѦŒ«OÅ_…ñ¢ž1ê#+BFY"ƯÉ«““°îoÇù±žc¢w]ª_¢Ï©!§€Q-É©æË8ï/0îýcœå‹e¤QOÚ^¬ Ùf#õ<›‰7MbõRkâj n¦w‹-å/iüÑQU- ÕÔxW ÒDX“ÉW5§/Î`EÿØ3™¦lé;ÅfØíÔŠyH’Í.ÛÑ”ÁÏ1¹æ)ùѨ5žkØUÒѲB¬é¼ªjô˜lÞ²U#¿3»ýMpøNæÞ4'àxÑ{É,ªªm2<)•˜Ãò±ô3ðó¦8á¾ þ¶wµçIwsC zÙ¤¹9o¿²w™®¬çõÐá/àC)ì¨U{ ïàÕLìàJØ#ÓÑŽ»ñ”ÁXyƒÀ<ªó6©N¬ÞDz JÙ÷€WµåðêGW~u ¢Š)åùŸ¬úG»ÍqYY‹‘»Žú ÝðýûѾXsÐþ£À¢¡à2Ú—{ѶÁxï à¤ú+²q"u>¿ó¦#ýªß>üªH6Êåøµn³;&%€W|›¸§c×™ÛWÏûÁ~æ~—MŒ^Œ|F=™[`mg˜nä0€wb匂…Ó–™ÜõЗg¦õRWaÌûÃ}A•±6§wPOf¼l–þ[æÞ†óí°·ýIÿ%Fö.?ßßãÆûçÍcf¢»ËÍ¥ÿª¬Ügv»¨ûk¥9Zq·)g‡ÄâEµ^jkj¼ŒÂ¾Ãjœƒð™Ç‰W£0Ö+äJPÎU¡üªŒâ—a,ÿ¿º üJQõ°»àÛùI^sÈ]ôšS¼*ÄlÝ/EÀ¯º0°“ÜÊ|g˜ŒùÓ;Fe ñÞ—03z‹¦í X0c> #>‘Ú‹d·ý&:˜¸4D¶²þ`žt«ÁsÀ« V,MÆ Æ·ë]ÂdŒc™J œGêû.Š¿ ªíHD Õ ’)¥>r™°z_qFtƳªM YXQƽ²rŽzÚ4°8yY^¬ni"ó€ bz2aýö*™Ïk4ásøß«iýÆÅbG3bù8ŒK¤µ§Õ RbñêùÞ$âU)ö@õ²òÏÃïfÆôú%¬”Q“7 i«5XÝÈîjñ®«±½P~Fu¢oÿzØ™@mÓ)¬†%2À(ƒÛ&‡Ì8â•êf\Á3Û°/µÀZ³þàÿ#ê;À«*¶ï÷̽g&!½“B€„ ´ÐAé½÷Лô&UAAE©R¤ ‚¢`ïbï>ýY°Š±+¨ˆå¿ö:÷½ÿÇ÷ž!Ü{ÎÔ5kïÙ{m31¦£ ãuká4ZƒÕÆØuÌËYÌ£Ú¾›è~˜}ï ›ä¨iÅx†Ëì›bwZåZuf«`´ºã¦>öïoÔ“É0óíÒÉê\83"òº­f4¿i1l·Æ‘ohóéo>À»T;n–ü(c雽üDuÏÛ`•\'oÁ¼W4¿õy#øË.6Ôï~5½ž*efŸýÅ®5ª•t¢¯$2þpÖä6ô¬*o·i”uPe1ðêQµ¿^øŸf‡|§+ãE›c¼î‘û˜fS¬ÀµÑ\]wÀÅj®mJ}ÆŽÚ㆟7P_ô[œ½±ûzS¹ú>°ã†Ø)ýT‡å8pXëY, Ž^iLWÚƒ•*=І`q]h+LŒ~ ~µ"¨Ëøöt£Ûì’Úö)·Ñ—Å=vµ¹9.Ï}0üj­ý=ò‘í˜! Á¯FâÔîËHCèÓå`]m¥}Xí0–ýðÎÞháÍhÍ0âÕ2ú[g›]¶{‚ù8üGîMÿø•1w™?îOù·qnìö Xþeó õÛùÿÄò¸ˆ{ÏÓZƒ;M];„þ+ä\Ž·jí¡É¬ˆ«ùÎ#ð›Çè¿Oý«3A¶«Éü©g€W5üPàR[ùÝUf½Ô^§ÝißÚOòó°¢Ñ(ìÁÄH&>¿K.F\¤õúº¢/ñôÚç£ÇÝÀžZÒ;¾}=‚¶¤0¶±ŒwÀêÓh…Ó£Î:åüWõÏFÇ“u¾£oÁH§ ’<ÁJÊ…Xç©¢—NÅÃÓtîÞ29Å=«Õe&àDèÊç§ÓN ÕÃÚó´ûŠ¡'aÔ"fåä1«þä›r±V…>·ÂØÝ\ o)«Ñ’KŠù²¹SZ\Ëó_ʧ‰ŒÇJ` Cbc˜?j^…*‚U…œ*™þó:±úÎÊ×*±íqÌk.ä÷ã©'“O+1OΈÕKMÄ©·gï6ò¾ì½_Q¼¬)߃™väÝè"0©ó qìðf9ðJ?«Üm&˜ô#µ—túuÔV­#¿H`ŽÚ†ƒ±»šRÞA4e´ s 8Ùüê¤L`ÉÌõ`ì1åf$ö`#âê,ÛÑ&ÙýÔÝ'Éz;Äèið™iaž–³F{_`Ø%2€ù8ifHä-Û”õ评=Ø(ò%-ø·ÉÃŒF¯¨>ýt ée´ ë-FbM÷äíËó2܈µ^þ°×­Ö¼L˜yÁ`Òtidž³ïÂNÒÚrGñ½ñà Ñbý·½è[UÞÿí“£úðZv¡L4€‰Zp >Y‹5±²¨FAk¼h6øÕyüýUÙ¼*¿ú Œ¡xÕÖeÇ ¥;]󢬌lÀ:>t‚Vuâ3à§2æªÁ þÿß‘7ßʯ†â›¯Iª]V–hYoXÆã·zŸ=5úS0Ë­ š€ñp•ü·Õ=*ÕíÃn­¯÷"ðj—Ù×À}è'ûñæ9h€W¯ÙfèÙ4Y`âŒúŸ»0¾ý¬–™ÔOmBŽÕ x5 oQmä-1¼z‘õ¼ŠdQ°Á%»ƒ1À¹±þ÷؃ۙï<Ý¿ì?ñÇÀ·øËý67×ßcî23À¯ÔuÆÔ’ݰ+¸x¿zý·™:v4ÖOof2ª6Lk¬à鼨ÑWÅhÕJꀿ7ˆé!×—‡üWË÷õK±kι<¿üªFõ%wüjº¿Zoµ#\]ŸÑúWÛ%!zÑöÇkÕ{“DL}*OǸ_µ«õ&® ¼Ž1Ö¸‚–¢[}È%¯cēݰ¿°žW:Ú|³¼Òª¦«%'x1:ŽÞéBì´h£îÑÚøæT櫤Ð7~œˆ¢þ«Ëå!­ÉP8“¥Ð‡ŸMõÐd¢Qýïa|TŽ„5 5¶S5Ó˜³Ç(Ԍؠڃ%d-êK×ø«ü˜¿=´ã©õW@õš*†uyÂÛÎlŽˆÆö/ºïÓ¬[ê+·ÄÜv vÖÀÚ®iºß®—¤¾9C_Ù§X}Ws(¢ßŠo±Ùj´7Maµçý Ö•È0M *Δ¿¥™)ã›Ë|Öh×;جh8‰,sPc”2 Æ_µ¶G`‰)»oçÛ<؃YÌsôàWýŒÖúÚ45Ëy£÷©¹¦üª—ÕqŽ3£#/Ù̃žkÞµ¥‘“´ŒßéeÞCo3š‹c v±ÞHoÇY|ím.ô¼Œ7ûDlóVpÖ.3¥Tìjk®¢Ï“€!7ÚsöfÓ¨ð1f¬\¤:Ç ÑÛùŒ'ì/›Ñ³qÌÐ_Ó`4ýí]¤;k×fî~=|¿„z}ÝÀMÔu(y\60ßùQ÷Ƹ‘©ãÛøoìx´g‡jÞ–ë"7â;ç°:·§rË@I$‰oü‡ù8½™'²ŸÊȪ«ŠÅÚÆhC?y?–S]¦Eÿ ^Ÿz¢ÇºL؃[ÜËÀ«GÜõ¾EÜ A"ìÞƒq—º—ýe~‚ù\²"GÞµšU؃ÇXïæRÙjjÙQÄ¡èÏ ÚÉÍÑ6½3*E¯{`%?&[1ãcÏðkP~¥YX/ú ¾øÕÕ“?Õ[ýY×'èËî'ßÕÏóËñ¿#ÿ¸&°Kѧ5’DaO(?^-QœRµé'ìäh+ZÝwz}'}Jª–Òû¡-¤ +§>©± WËöcÆ‹¦ ;a—Ñ7½Jâƒ{Á¯Ÿƒu~ˆü*À‰1áªxË;ôPä*ѨEZÅ>˸ðjKô{×Ð=¼"ÍM]ð«3v&XÃh7Ó¼%›#ë¨JÖ’ñ¢yCx?Þ Ùµ±#ô~pc–—µ¾s]y™1õÊknÆgÚËÀ«dÝ#£ƒy°ëyi|ûz·Ñ= [ü9°™qÏñv›9×Ô=àGúIæ”è¥*Ìß„éÿߪÙP{¡;\†³¢/ìÁüßN༟æñïøoä79à¯ö{RÒÜà®^ý`ªÉÃæA—èN±ZHw؃ÅÔ¿êC¼Z $i‰7ò—óv¶ FèIæyE[n”o‚*®íÁÃÞø? xÕVþqEþ6ÿ£ë‡zÚýîûøÙ~F1ˆþ¼ÊŒÔÄø”Œh2ðJ•Ž»`ìÖgôyÐù ¬nšŽ~ß ]ÉH4s¡kÓÇcޝÆ8̦wz‘Üc¿„=¨Q4žŸ)Ž©ò%Ðl@ß–f)5¡>\Y_oã©5ZÄWO;0OBÔxŽEMÞ4ª¯{V÷íŒñª=IZ‘çÔ暴IuÌ{žùƒøý1ÆP}ÐúÞr¯™¼RLnÖŽùƒqZŸÓ42mèû®_×”‘ –€Í-2iä<ñ[ükH²·˜[ã:»—ÀCFë÷ÛóàWŸØÎhÏ™aªÍԻƭ`sÕ0:ªgZ†wè=¬ ؽچ9…ùF²FwF°Ýe»Gƒi²K†€_½îßÓí/ð¸þsÿ ãE¡=ª×÷¬~µÐ¿ê~5ùò8øÕßÁ1°Y­˜¥ö ÚhÍÐw­x¬>øFÀ½l‚=©šÉ÷bew« ¼ú-¨á*32ýyõµü@¯Ê¿ºæ¬?¨ªb‡ÝßÉ_å¯Å¨ÙèEWÇÇG”¿íhÔGzb7• /Z—y,ÓÐÃyÔF}Q¾—zÈÙ¼qh‰ñÏà½Ò\Ìö|VÀºRöØo¢åŒI{°{L¿ý&¹Ý@Ë/OßM‹M1ªúV‹Q1žù69S:æ},þŽä2YÜÿéô;eq·&“¯¨v{u¢K -Ë¢Hr ¯RIZ‘ѽéôKëm\¨ÏÊZ9Å1;1'¦„•ʬãÚ€Ùdê‹ç]^ïP¼(¬3M~•ÃX¬,"¨ÞvÖe{•j…Æ µûÂLDµ ˜‘ËO«›CÄL"ת%¡Æ×2Ìä²1æ¿j ï£}®“¼¢éD~u%ìÁs^T þ3œ* ¥ë>ìʼn7Þl7Ê‹šb—¶ÀljÔX),ªKÍ¥¼Ÿ;™ÚÄ«æ˜;½ÙÒxÙaxâ°µÇ7a¶ÇbŸëÜu–Žö5؃úÞ9v‘Í^)æÜ"§å;ˆ5q~2cÁ¯œeì‰ùÚ,•rÖ¬ÿWÊ#OÛ"£¸=Ǽ {ð[Qÿü)õš™#X° ±vTQ÷ê€ìÖÜÇ;øäl)V½Bólð½¶C+œŒUÍåÁt ÍX°€íöOû$ðª #¢5”Qïål¬ª½GÍ͈•¤þ«Ž¢•g¯n¡Çµ7ª©¨Ú{=V‘iÀvò‚O~·~(ׯêºÛ¨ß^bªùÆŒ¿ºD–»Qö=Y¹#ø%°¯¿,gVc´})k{¬¼‚+§Gbvé0åhø]¼³6ÖÍ:ìŽrcцÕåúE/ÝÖ0àjø•îF÷€¤ÙÇ]—¸¸¸ƒA»×<7ĽíÇø±˜©öd$9úŽm 4š%ÓL%£V–V€Ýt¬…w4ŒùÜ ¿Õ©òuÚ4oç„Ö ^l…M§ñW{¥‡ÿx•è·€§žóýüWþCÿ1Fy³_¼ëï1ϯnqWø×Ø•ä9sÐ÷!Þ¯z{MUÛ»£9ï¯Þ´ÄŽ˜J~UŠ>¶B[wWý†º˜‹ïƒ.RÏß->ú¯íÉ:}pVX¬ŒzÓèYX^íÁæXA½¸«´b›ÖÔ›³2¬·žX!zW¸Xn±ïG‡Ó†*›ÁåÚŠÞw¯’Ÿ£;£châ<#/¡gHGp,~ÖÝ«»ý-Úq)Œà¸û4MBE¼0§"ßË圴K`;h´_ªÌÂ7'J3ÓÃ~jïšvÀ*æ;£W3ñ¼=°wò±€[ü7þj5öè³oÔø²nÔXéAåöXï¥xSOì¨dðÉï€9¯Nó~ð}U6µ|CâU+YëÚÙåʈæ6Ÿf¥åX­É~çMcæ~Le|û°‹RŒù­Ñr|úíX¦b.X”f\Ÿ€=Øgï$؃Ý<êõõ^]á®r‡%ÉÞáêǽíP_ôHÜP÷¹åG²ÞÄ‘”è+Œ ~UÍôÆú„QókbWÎ"·ë€•ÓFÞõÆ«¿}FpFâe ku¬¼eÁí.‹ù8[e¢?¼ªèUOæwàÇÿ­×,Ho¿Á-ð‡ÌC°׸Eþÿ`V—ÛÌ­îàM¼I•x®7µí(ÞBj+–`DšÑïßìYõÛGâì{k«;F¥&PætPÑ5Åœ–Éþ_WÕwóšûÖ›øÅ©Êô °;ûe~!žq!òkèÿ¶Z­ù6ù7ôÅ^jŽ·­“x´E³W`tµ~X-žémÀ¯†rÖFKÊèo×xÑùXSÉ|®‘ÇíoÑr2š‘²ö~í§%.ø$:Žwr8KpÂÕ#Ue\]ÔÜ“º˜áBî2¬ÅÛ1Ú´>“è'ËbÆM½ÝáíZEþ ýNªÈ‘ËlÂüœÐ;¥9 EÔ®©J¾tÚ;¹¬–“³ãRˆ(Úž°®j:£2é¿JåÍ`nìsŽØR ¡‚ƒ'SËŽù퓨—F[2£Ò*–Ÿ˜ù?TJ`ŽveF „ºéŠÝ†u¬·áœÛ…ݦ|¯9Öý Ö›ÐÜ™¯$×t§ÿ|¾¼*5Í9~[cË@£Y’»dðjõZ•tÆNR6Ú¼£ø•ò®)r ¥:íâ2|s-f\û=öàì©lâÕHØ÷q®ûKû†iÆ9`gÛx»ËêXm‘¯e•l”3«þÕc° YsÖÔµ3€qÊÓ¢f,–BÞNgþà<¾.u„=˜&Ù 7“0keø³–×A欃]8Ø<ŠÑn'…æ9ÞjEˆ©xê `þ;FÎɵö}û4ÐTÏRÍy9Çï™øsZE¬³‘8“Ïm±o×ÊU2ÚìƒE¤Þ‘žÄ°®XwÕÐËzøocF`ÇÙwÀ¯Ú¨ jô¤+^iõ¾¦Ø7ó¯Ùr¼k¥Ë°‡eED±éKúîWbµv¡‡w9ëÚÂH¾îTN•äÙÔgì:Š7Ô£ýw+Þß6çQìkÍ‹=Ìu U¨â ýb·Ü="ì!—÷¢¿;ðö.s_\÷éë7Û³‘Ìèó¶5Ú°X˜T3ŒçÔ^Æ•b=zµw; -ã0¦Ý°×oÆ. L| «HOüåÁ6—êöc1^£ýçî9ð«›åo9ëèWÜ(¿È&¿Ø«ŠÌCæa3ÝíuËü؃¹²ÅÜã.ïcí\‚YÚeŠ­Ödž±-Á8¨jF¬£K˜½P€1l¼ÚÍzªÏÿUïZ€ék>NàkƒI-¶Ÿ¿ºÇŸsÝ1>¯‚_õ·[ŽYú%ò¯«ëS#zÛ·S\ôWÛ ;HYÓð«&ô iäúd¬"Û^€¾Ò[$VÍUý†~d!­Ñ²¾Xzæ^#÷Ù¢C¹¿T¿ýê~¯“_¢G¢‰U†{™}¢z2½™ï¬ö‚Ö{|%›uØoÕ¶H%¿ k;‡ÊÆanr%¢TÈa*Ró3“¾å\*£æÐ‡žGÏðÆ3¬áU‰úWÿ½+̤Žh¨·œI{%ŒM¡g<þyÏ8æÚ„]ÿõ·‡Uäãù¤†*ǨE[Ƨ&Ò Í¢…™H>X‰XZÀyŒ8O }Y›ÑõªÉs3þl£Ï®Ó{W¬¤Äta¯^•šÉ‘ÔGr%ìAÅÝô·o3çÚ vwwæ{jýÁ¿¤ŽiMŸ[¹ü„ç”ÐNl~µŸÉ .åbŒã]Â6­+*ûˆè}¥»}Ë„ó8ßN·ivÍ`îÏÏr£íntnÎšÖæyÞ&I%Óüjc2ÌðÈ˶6ó ¯J"ç©Ëñ)ØE[ó)Fâ®°OèáPÞqlÛÇèu\ƒ=6ÞÜ‘i ¦x$¸hW¯ê`ýg™%àW3€qÆl†=¸Ç¨Ïù0m®8£q ³¨'³ #\‹µöÌ*¡­¡RØíxcg¬Þ¾Tún‡Q®ä¨M{°+x}¼ýgAS؃û¢ßºnŸû@£šW-ý›VÙ¯v íór0rÚö5uiV²h#œ3‹‰{=1Ϊ/:’ù>sÁ“¨Iø kkþNsÈáŠ$íúWyjÈdÄNnLO¦˜we¡_?Sj’á¥bnÂn> az­jê_Õ—3R`ºñžq.öB1ö”Ú¡_¯VJOê$앃fYiô^² Nv˜íAmj2td•²AÀ½z1ý+EY‡Õ¤·¬m%ßüŒÙÐñÙ6p™ÜÃqë/a5ç|-±WØ»µ$î’?e“jjà_¾7¥àWŒr³Ê¦] ~¥öu†yÛ1gg¦ùxu‘ÖùØ“Ì1ü¬1Ø3ѳI\S¥ØisÑ÷–˜«`^U¦'îXp֮ʶ¦™ À«øNs‹ýûX5 ·™ˆ>«bè\àÕ­@§º1{¶™Ìzô«dãÌì'µÅzóö¸=µýY…P#^”Lû‰ùmxG6E¿¿ºÝ}Äz^ };ÜjÔã"××¾"ó"k±ïNâ)ýbjš-1sWaªnþ$|ÿK|¯-ÖÂ|œôãYkñåXä„FIõÅ“>¡²*â–G &¸%A]àF?؃ËÝz÷$ìÁ\Ó¸‡üÃAû€Y×Íðü`ó•l°g"¹ÑlsôLíÁ f ëjþàÜ»½¨Mß8}©X:‚ØõÞZ:yñ·r üª+ÆDíÁ_‚+ÜÒ >°| «êºëÜaئ÷¸Fq¯øûgï4ÿ‰ëî>ô£ýPsR¶Ù#>ú¬½c2Eæ˜t£ñªÿ½ emôtµºa–[× `¼hcàÅ2´m~s%qsQp‹3àWc´î¡?å^vl’óq>òoúϱ^¶øùþf؃w›GÌXàèJê!×”½æ÷Wð°¡æo‹©kÇ`ý”£¯EQß]˜SŒÖ\ ~µ™úWÕå:ù.¨åjrNŸ"^ ÷Wcp-ýíþg§ŠŠÃìèçâ÷ýåBäOר'¯šÁŽˆ‹þa{P¶ã3_~6FWýìʯ4®áYú¬ÒEýžMðIµÍš£ß5z;o±Ü¼J %}߀ÖÓ r6zEt2÷¦ê3l•p¿TÃ:BE?­"?x•C¶¤qŒ÷ŠÚ>a½œ,ò‘Ðò*dg#ŸŠYí>•9z™±œš\<»Ÿ®xÓ#U@äRE†Jdh‰T4. ':…íûoü|.Q$ÔANùÛ5ïOíÁ°‚`<Ÿ”ÆûAõ±«÷¦€^ùDF­f1~ ƒL<—~­4¢Azìž1Tꊧ_®Jì†2÷õ%Ô¯™-kaÙl%†aLTJñ§öɬ¾xâÕ£rN.°/§±ún’Þ¬ï¼]î2ef ëýµoŽïë­@} [wÓ™í;îRÓ@T¦ »ëF¬qÅéž’dÎâYÙ¼k¿ 3°üª«ô^5!÷\~õ§Ùf5d‡|+s‰W™ò‹iežßGQÕ´·‹dªå-®9 ~¥Ü{ ðªUä[¢òçØ/ÓÀ¯òbÞ×ÏqjõÂ:n‚½VNªÀàd(l7­=›c> .Ø«MeFûy38X>£9ÈSí3öa£qj{™{¨þ+­3¨·’þvÕÒL3sXõ}…,^mÇ^é‹ýÛ ©Þ.Íßê†5Sú¢ÏK®ýØœâ×x†–À«£ZñÅÔ¿úÒª2Í .×Þ/«"7b¥žf,×µxVìŠ]`-±Gaäß‚=8šÙÏÓqúj|{έ_kåfÆ‹~€ßtböظèÁ2w-ëÑsÕüb·Ù=!bŸ„Mô†?$Ãî½1®«ûÄð£`K¯´ŸERÁ¯Úeg€½ÂöÆÊL.GßJcùÎG€U5yƒy3æ|ë¥ÎÁ§òeT°ÝEÝ£Áeà£#üŒ¿Ú.ÿÈ¿¾…7qŸùÿƒÅ«xµÃ]é™'Í(àÕbêÉT“æ!ð«w?ÍѯÀ«IèÙ@j/¯ÄÛÛÒRºx¦ÞƒðÓ“¼÷ŸÎ¹ø x•g¢}¯ùß\ußÏ/TûÚµð·ùŸÜÌܳî¬oã—xÕ¦ù xÕÀ‘*øÌqÑ Ä+Íü\#Q¬gÍrž„Õ´Œ·TZç¬P­g§*³ehK_ 5ß4þj*}¿KWïDÇò,ž*KÀåZ0æi“|]B~¥õ&r°bj’¯¡o—«b½Ï-%Ád±š`Å}HÿUFÌožLÌ cÎÃüçꘙBâ•bW 2¥r©RÌCz¬FN_¼)Ty¨S Ñ½\•~ý|bo£NÓb~°lFH¤‹Rë‹QM¥e•c`¹Ì̈iaÅ1Þ´½há¥f°¥Ùÿ«—ÇØ‰Â˜=˜É(‘0v_oÊØÓ¬ìØy»¹¯U«gvŽú…JåÎø®ôÅÍ‘ÏÀc~ÕÓ;D["ý>kƒÜh¦›-Ô(n!Æh¥]Å´úXµ€^Ê‹æÈ÷’eJ9w €|k±Ž2yÿgNP»/kú&Ìý|ofÿÏt"f޳aÞÊûÁ`-«WÉô·gš'å4ãòÍ(;WÇê;‹|j«í×dó–m¼ªL¼º|ïmѪìð¦_ñÞ6˜ÿ&² ˜ó&c*oÄŽšdî§ÆFEs:øÃ^¼j¼*4ƒ‚ÙhõhðÄëì‹ö6ؽ—Ê«`Oåèg¬Ó©Øc碇£ÐÒl3›±V7à½cÍ6œ½=XåøÖ»ªO/—Æ6´dþ`¡=i¾Å[ß—Ñs®¹{Ì}¼*4µ}ÖNÁ|,vEöQ¹9r-ððuØoú¨7ûØ©šï<ï}‹±&-0s³czÈ-äm ŠFéWë‰VÁ÷{àoÅÀ«óÁ"wðj¯ wü|·ö`Ô>èªÆ=ëï âì}汸þî˜èGÃ^]aßäDß¶­ñ¼é@á3ÏÑx†õ`çéßoÏM­9ñ6Þ^ -m€5² ÿ²Ež¡~{¡Ì¿Ês“°KËa>éÿr»EŒíÏúSþï×øõn¾ß{PëM\íŸg}œ}À«ˆ;‚™P­ö`Öýñþrê˜ÞÓ뛌LÁ{+ƒkvÅ9»ø>Ÿº\ÎÕ]u°4Å«ˆ/öÃ`÷5‘ß`ð¿»^Àšg`ýv^]±ú-â¼Ö›ÈÆÌì—"¬æ6ÇØ¯Ç¹XÊ(\U~•…wö’ƒŒ—®ˆ¸çFúmZ¥úaÄi®“½öCà•î…ñ² ¯ŒÖÐjù3ºx¥¾¬X}{ðe5ðÍIŒRŸÒ¬BF ¨à}˜Ù°â`*mšòŸøØëúÕ¬XÞ_m®°E)ã òˆ*=9RÉÌß©Êx®$êbU&« ãEs¨“NV˜N}Ñ0:… )Œó õ\LË=‹ù€qôÀeӞ»ÂZ*óe`TI¨ŸÆ[É0§h ïõTÖ©ÃAmEÝX6ѬUåWül9‡g) «'¿Qõc»fÊËòNµ=?Z'ƒŒ¶qµÜj:˜kŒÞÍ5^5ÇÑûÇ29/]L2ÄË嬴05Ùb­K{=륹 vÁXf íÆÌO–(Çì"C틦%cñ‚_%ÙÔgØSí ;Ühÿ?5µÌÃòï sÍt;O†Ó'5ƒ#Û\£c>Þ|n/‰üJ¾ü9ÖØ £Ñv{°Â4PuWʰßwƒ×ÝÎ •e`:Ì}ÔoO1Ç‚ï`“yšùÁèõihn²Gí~Ó¿ -ê ëL+kOÄj½OPâHp¶t3…µC¯¦šô%iö`;¬ñŽ\齩nª6é’eß3§Yßy}ôŒkèîqSÿª ÎúãVë®rÅöIYBÿÕwøn7ÞheÒ°6ô®ezôõdÔs2³:‰ùÎïQý¸s¿ oël~¨©j·#À¯f¹+ƒ&Z§Æûiîz÷Œüc¸\àÕƒA6ìÁÇâÊܧŒgøLÖÚ‘´èKÀ«F“&Þ”c¬ÚaÞ‚·3PoöÕmËH«!ÀÞØ+¨7ÞþZU#ty° üêv؃ۤ¿?ážõç]x?8Øåï¿úMVûE~›âo5Ï›ñn‡»üJãÛwü¼!zgªõÚa’ÇŠG5áÑ}ŽV̈å;w¿Ú‰ßÏÄνA~²]=S«ðÿ«Ë«ÿê+×Ôïñg\¬ý§ÜG¾ƒŸ€ßw_#¹:àWùZŸB¢ÑmƦöÀêO6u1¦ßÞ…ú ººg`5œäý`&ãV[3þ<oXBÿ•®çåòˆ}):†w^Säøs+Œ\&Îð´àšèD kŸ&š}ŒUžÓ“¶¬ò]-¿Sw/ÏŸ…“§==àùä"‰™+¡VCª„ú{1¼ÊgvNŠæCV§Õ•ÆûÁæ´üÒékϧ‚K"³óù¤îÏPÕ=‘¾à°vj<ý\ù±øö<Æ1$2ž!ƒ !‹w…ɱŸ+ð1Ñ iôÆ5å}_j,?1‰ž÷xb¨²³°ÆD!kb$‘³e±†¶âƒ*ªïÅ)ŸL]^˜åKÈEK`뤘nìûlìªtØj}~†± h¤^›e¯dú³Îrs¬¹¶äWñÛÓÒÄ´'~Ž^Õ13‰ÄpÖ\…ïëóGH}à©Üý9¬ç•KžV û½q¬š}=ë鱨†¢ÏI%"æÐJL£m¶Æ“)“-¥Sã&•8Ïè‡LêÉx¢OE~;Jå›jj„f’-drèwO#·ÉY¡¡Êr^¬BO<=ýõ%¬§³¢QÀêÍÒÜÎqXu©“Ÿåìƒæú=ˆŸ¿à¹pš¾Ã¨¼I™"3‰qPmq.4À¿éX•âŒÄÍIàQÓÚt ï±!fõéC8•ùƒã™I°(2“/Ië(Øã¦O‰Ñ¶¿µöf›Í¸ÖåÛÛèYð¡ifî‘ûbz¡™c§á“zƈùx¥¸7Ñ¿JcMÕ3@Ž!æ(³&úaeNÕÜ"ꌕçè¾Nž‘ænüÔR2Í‚hd–©N ¹ÈT^MÂ`&Ú÷íSF™Ê@šáòúÒ;CíÁ•Ì Ζe¦aµ†Ôµ2ÂlÁø ¥ÿªïÏj3k¶!yH[½e°˜±sÞ’åÑ“®†»Ï½¥µšL5ßÜj/ÃgÖ¸3à“Ë"ËñÔOуP_´ZºŸ(ПætL¯³ËáüEÍÒnhGV±ÑˆÈÿÀRëÆ•P=Ìs—%Zsx5Ö­rOÃÒ¾Ë=íïñw¯˜IquÝ‹¾Ü7_È5ö ð«§m ZŸÓWC±^;`u®ÿÈÇX¨ÿª.kzuÀ{ÔRÓx†íà˜åÀ´§€µðé9Á*— ~¥úWCü—°…ñ¢¿ø¶þ˜üê'Ùæûýî2¿Û}&ÍðÛ31]‚l~NŸžÃŸ+ñ›ðߪ¬+’DSô?ûNßPÿ­@{°"Ô@΋yåÃÜçLbl6½õä*jëU£˜ aM´˜¾V"½æqÐÓêõ%ÐÕNÕä ÌJ,à·4šµS,·1~µtFÄ3›º Û˾N#>æÅb·’±Ú–aϬ—$Þ;´ä]°bH øÒ7Ò‘¸1ëï¤|ÌÈÍw¾»0Ÿ1Q7™f$õ[Ê¿ÇÞÅ«®¦-±q¶ü %¦=¹q)ðêz¬íûHI3âY)¦ñWSd#9fÆ3tæíì;Ú:»ÑêüîovØQŒ­:aÍíÀ+µg«˜v¡Œ·úLk†DÞµ•ŒÚ¶£Í—¶4’`r™3_zµþgb¯ã¤Å|ׯŸºr3Þü9Ér0€Ñæ^Œ_s©dŽ‘È\£z S¤¹)Öc„à§9öðìù§îTù+¸ûw2˜ÚuÌ™‡šefP%û&œÀ¯TwU½í±:º°>_ü{m칎@ÌÀ¾`¾Ås>–UàWuÜA÷ð§ÀÔ^†­ÛU6¸wÍ“²"² ³ö5uØ×♪Qz;z¢ /ý±‡¡Mz[Rûó>pŠ!À«§¨´¥ù8û17}ä#yWº0««wôgÆ·—`d‡¹,?Ämt‡åwó0ðj¿¿x¥õqš¸WaN6Ç€Wç"GÞ°-©‡wƒqf µòŠ€„·ã§T¥ û×AE4z¨!NÂQàÒë嬢¦Wlv‰îP0]n¿úÌ=ì/¸íâÌ_¾“ÿП¿³Ñ¯¿ºÊï1¯š‘n«»xõ fr/øÕ·Á‹ä4íäVSËŽÃûûÆðJïOÔn­³ÀÛãœÝÍx¬zXwßÅ.Ï”a¥>å­W~¥c?¸zàWß¹ž@•'Ügøí?šzÈZS5)¢Qn»ÄF¿´ý˜•ØÖ@"ðª?ýí=±ntüS°:€}cµ¹šàûí©›¤vÇ‚XüU¦fêÚ×£#ɯFʵþRß’|èI&Ç*ÒçÅ W"aÍšî@»êÌr)A߬ óqšaUžÄŠÊãÝ_J,¦))†;ÙÜkªjUÌXS ¨ÄLŸ°ÎWuê3„* ]X2ƒþ÷ÊD¼tÞ æ‘ë%ȃ4ò¸t2¿\Æ*$PÇOP±&‘øœÉ† é±Z ´´Šˆ“ˆ4š5V‘}Ìäýd*1¶€Œ0‡ŸÉaimFe• ÉÚ’U«±ÃÖÑ‹ÖRTU£½_5À‹ªQOF}ƒO`M+ó#p…Ø…Ê:WÈZ3ÌŒ`îscpú6¬µZ3üÇ|æWâç3˜|TíÁ¥XÙʯ¾:jlë>ì³¹lCšòû†éIä`‡ØT»Ýª_q“ü#ÏÚ®F{÷ž©lÇɯâÌBìé!VÛù›Œ|h3Œös„9ckE*½59ƒVt7oâMÛ±vW溜՟´’À09À •p4÷á§n’o>†=8ÇTÃlN—†¦Jpï¿ÚšÉöeûŒQÏîG°t&c…ÖÇHjõ?o¯„}2è›ffQër•FÇšUø]_ÚƒíçXqá-°[ã]û$Ǿb~ÀØ¿%+WõÝÝîC½¡g|ûq«¹'«ÜYóðj9¾ó-cäV´¦ý-¢–g)vÄtùˆ7‘™YsaMÀ<µwðÖb2º­xg'yxÕìcxô|0Ò- ` Ê]¾/w7¹ÇäWs»{ VÙíAª½ÓŒèŽùA°߃=x.}Õ¶f=‡)&ÃŒ`ö¶ªYß7ÌÃjNþ¨õqžn«vaS¼w ãEŸB«4Nõ؃Éî`d¤×=îÿt[äOÚƒ§ý¯þÖÅ&¿Ð_+p§yÊ ŽÎ÷¯»ŸLeÙgžuÿ¯£ošu»idÇcý„þ«Õè]SÌÆtêõ•bw g}œmøÿ)Ø×ËÉ ÙÕ5ªü”ÿÃUòür´øGWßïõß»nxÊKî¨oågyÍ&ÿ5õµ½‹(§Ú#ñÑóàrŬ絈Z}©‰>vC¯Z²æñlŒöj}k¶‰*_ ¯©1f¨/PGÏô«ä6{4:š» øÕ%¾ sÿ®—ºÁ=ÑA´èªcßÝÄh#Õíª‘-ܱµ1“o2{GuTfá|ìJlÌåŸ,îtÚrIôþ¨·:Ä«T*E…ù8‰¬–TLö¤(¨Q7…´­*3'èòß:€‰Ä´ÊdZ)ôweÅ<è äDyd0ªÇöÆ‘;U"î:þ®2[ªcUæ-B£CaŒB\ʤÇ*™ø–Ë·f2sºbL‹&…ù;Yôè)Ú=†]u½ì¯Ó´+`^Þ¯:Å\›p^®r£÷³×ÊS×L¦~‹âU Æœ$ÄøU;¶âjÆ_ugŒˆÖ›¸ŸQÞºD2ŒÞg)ßÛ ¾0J£ˆñ®2üªU¾zÙ•6Þn¶ê™»ëø:;ÆhuÅã¦6ì£{ k™r; œ,ñW]"/Û<êb¡þU†É$¿ºV†šÿC†`–¯f™¶ô_­ÂÌ?ÆY[!/²s!z‘cÞ þ´W½—ž*¥¦(˜ „+ÝL{Æþ˜c Ö4œ ¿RUy~º\ˆgª2QøUKjœ¬Qf³{c\u?÷Á~VÒ‚ZX]`¹e ¿ßƒ1œQœöîa§UN³LeßÒ¿ƒ¾uõîðyQd=ãÛЧþ+Í¥™Ã¹ï4ý@^ÇÛÛóþîQ´¶??‹Oiõ®ͺxƒþ/Í-ý'˜êMÀ’G¹Š~’[ ¼:gö¹÷` ¼½ÍŒŒëN¼hŽË"ûs$}¶>N9&0äf«˜õqj`þ&Ñ×®•Ú13¥ˆú úÞÑ8mžÆÎ®‹U6?ØãòÝÝÁìî!þðê/w«\³°;¿ðù7¤‚Yá×øMnºßf^0cÜf7Å?é~0Uå€yÔ‰{ïW…Âý¦ÕÞÈ\§Å%TÜI͘lN{ð6´qÚµR¾ ò\Ó­~ˆzÈ]`÷µ•ï]-ðÉ\ÌÒ“î„oã¯ñ«ð Œo¯É‹é!ËxÑ:øÔj°ÁÖg‹V,¤ÿZã®{`n†Zà;mñs2sÐà_f«,•[ì›àWÊ&&•;‚_¥ó÷u‚]ÑñŒ/^mˆU¾Ò»„y´º4Gëø†5Ùëã\úùƒÉ´ªBDHÿÏR®RÌ»¶,úÐòø¼$òºLff0R>‹óW)v·X™ñ Š'…ôA¥I¨ôGŒL¡u˜‚~§KXã&5VC'Žþ«Jô;9Þ&¦IX9' ˜ž‹~O¤zX‹:sV›ˆ“H+/èPýϧ=êøåñ0žýhDïZ,¥õ1¼JÇLÆþmK~)Fä˜tf+fbÞ?Æl„¾ë‰@–~Fý„[ä*“bÆÑ¿Ý묵­* •¿Ãþº„ý¡–6yZ2ï×b%+ÊöÂŽü\¦0“i/0d6Ú ¶gg_c­Õ ™oçØ¨ÝbYw¯vÁÔÏœ65°ŸcnN`È,j5ß<ÞôŠ|` /:Æ|`›EÒé¿úLn”™æ Œ×fœRWÊØåª3^}Ÿ.2 £q­¼ ÖðF»Ô0o¿ƒ_ÕVýX³ùÁ2fd·5íQìc(«xØNuÉ´OÓõ¡\=ÁúƒÊa³M!ðê´ÕÂK]Ô>!3#kX~p`)vggŒçn솦äW—9½­šÍ@ÃI8}µ>NZÙo«•¸=î»þæÐäËÀ诰ç‚_í•‘.×w¿zŠüê=¿Ó^í1—Åuv/¯ÊÍQYmŒøè#öRì“ñ2Ïdƒ33V~õdÆ1~¢˜šÄíäaFM¨/kæ¸æöy¬4­Û:+¸Þe¸;ƒq@²rÿ¥{ÖGývùKÎû~þ¤¿è_…Ý¿Í/õ«€W›ÌkfìÁ…þYwÆT‘ æ÷gðæB+7ÞašÙQXňËél lRMª´«PíIêÖkþàUòcPà*šøîa`d5ßxÕZN»Fà“ß;ÕS|Þ}¼R~ÕCÎE´†NùÕNù3òµí‹ùUK~ƒdšxSuXÊt›Ñ|9+D bnrÖëͽS œˆÿ)C¹Fî·¯‚_©Wh6óËXUy…s¢CÉÓ †;YùJã1µ:JÞÌ©&m%S…^çfÌÊmGIa^]£-Óˆqþ—]\È|œTæ3„{_í¬ÚTýK£e33”M~–Çÿ†Ú¤•ÈÆ2ÈÓ4Þ xXhV•1_žÈ£6gXs0‰ûÛñ3Ù?¿eÄlÍ ôŠU¢–rñ§-f(Tò«HË2÷tyäW!¾…õS$%ÆòÑòM”5س»p:e0†tÐèRö¬>0'Ítå]ä4Ìz ‹Úª'°o—ŠêP%c®Ö™KÌ ææ4ú7ÄøVà},À¯4fu®œ•š˜Ç ŒËZŠ7õ¦ßožþ v•ªJÀÞ›Ž–(ê*mW=8ãí¥6Án²ŠÃz‡ôˆJŸÕ—¦ ì£Wg•eÆÛE2Æê=ã¿28òªÍ4êÓf¾³5"¹FqìP²ìÁL¬êž`x_³²Iì¬ÝhÇØûÕ°–žIæ f§˜ßk‰L6eøyª45EçK{s…ýÆÞmT-ä¨hžÍi`³VŸŽq#oqÔ•hæs=¯ën®šõÅ{›óTiƒ]U™Áµé×:$ÞÞo¾EÞ•EÑO]mwȽ¡:;¦xõ•®µ$ÜÏæ1™ ~Õßƺ§1+¬l¡L±­ëdì)­½»‰,­9FGõKBÐÀœ–KÙ®ÙØ×'a j.ó1VÀškå:àU?ÎK~Õ—qª¥ØLF]LÃúkh†Ò®lŽSníÁTìÿ#9¾·s­¢]ÜJšØ#¦+Qw¼ma“ìV«íÙ%çd¿-7Ê6O™z°ï7w›k®¶ e8}òÎô¼`‹©;:Öœ¶"ÅFÏŒ“²<çF~VÀZX¨Z!¸k`ðô1¬så{]F›»1Ë­aÏ}¤F&ÕPš´–b fIks£ýÔî0ªwBîÇ>94ÐlÍ0^=¢ú¢[¥¢™ ,©¾Rz›•Œ5×›c­Ó»V«z5¡Ÿ§øÕŸæQóS¬¾ó WËÝæŽa·W25}3ÊNÀÞ¹Öýe§ÿª™|§ ÁXudÆnì“æxV´ó]ÌÐì FÌšJ}†Wy?¨¾Ô=Øi=åðc­—Z ££?ÓÝ” ÿÒ×eúÁnñj7Õ[ð§¹xÕÖõü`󩬰6}Åj¬ì<؃ÉÀ+õÃiŽÓ@­~h³Ú¸D3*ßÆß Yh#îÖË#2Á‚`«è¶ð½Áþ=÷¸ÎNù xÕö`bÜ‹8Mvú°çû-æq3ÅÝ{ðY÷½©#ÛÍcî·àà?¼ã€©fGb%bݰ1¦ZåaFu!V`>3ŸÖh}ÈBœTßÂT=ä¹×ÿ +°—×ñüÙ•‚_ýâTÿõ÷…oç‡Óü7r,%’ƒçÝ*GÎÚÞxJSŒýÖ£×{5­%u ~§qÞW`~f /Õ~Ѭð¾dmT-kGïÓ—b¿~¥vÙp™ç{ÀTì&)^•3βHÌMÙ0þªVVÏYÏø)ÏД6B/úŸ³þ—?˜FnRIB½©ê“J¨o\D?RXáFó³‰|©žEÿO•§2ØæÊ´Å2b¹ÆSÓ^S¬Àx®0,‰?W¤æt}Skä^Œ˜¶T5§a„3h#ÿ€³¼;ÙÙì¥å8Qô$Fz 5ŠÏ·€_µ^)çiqÖFŠŽÕ$Õt4ÉÇ‚ß×5£È[⬹V†Û;JŠùV¼ÞgnÇ\ŒÆŠS¾ÔSúÚÇñ]Í¥\lGXgob>ÎÝxÎ^ð«êhó)S`žõ´ «šÅv‰Œ`¼hàÕ›¶5²F›÷m ðJ1ú<»7ìÁŠÌ;^æ8?ׂlÚ{š7…×ËsÀ¸Ã˜©Æ°ç> â"ÓMSì€ÉÒÀdóY[¾‰™g_µûÍ0¬Àw £å+}LÆiù F¥&þŒ·I7 ñSe Ê20ÑÕ˜§ÁÀÉKÑÿjÜÓ5©¾UY%JÔ>¼jî³$úµ+uÝ»Ø;ÕM-ߟ°sµ~–ûÖ<%‹#Û±RÔˆÞ†uÆ÷o×(Buþ¿»w*þ­1Õm&ƒ»Ö‹Õ}õÛ‡cÿ¾…±èÀµ81úc0›ñ 7ËpWÃOr‹ÝÓò¯Ù „Zé÷qöY×Õñ#ýpó%øU\ôbä9Ûý˜-“M<ΠÆ_­ÆÛŠ€ð/µY½µº¼†•PKáçMƒ!Të™Ë[§…Ám. üj<0l°ÿ̽æÿu«åoùÓwôŸúƒþ àÕM~™ßìø=æ%Sî6»Ëüa÷l¡íæiw1xšQ—Ê^SÝ–ãýÃð.µ;³rÙl¬Ä«¨V2¿y ÈÝkºxÐÏA5WÙhÖíàt•a^‹}ó‹«íoñçzŸr?ùVþr¯±qÑóàW‘zó"ѯm/Æ3”ã´N1õ¹«'3´¾sãŸÛ©7÷ukµöâù«Õ“b}(æ,—Cö³èˆXüÕ?Ä7 Y-5‚iѹôÓH’ÙÂxµƒºbÔjÒg®u›zcµÞÄ•8·ºH¨M•G~¤ÑÙÌý ã i¯e22JíØlzØU½¯„Ì%‹qýX³&•¹?…±(­$ÞV$kI#;«ÄO¤½Õ!ÓòlSwu¼„§ÉÔgõa2cþöªDÈ Ô£)ŒUîRkCmlmiXS:Mb¼®J ÓRèKaW+œé˜¬…=þ(Î:åXáŒÆ€L˜Üë¸f}´ìL3(VŒï,•Af-Æc VF[b•Æ`Õ"ª”`Ö:—Å۷̯xÊ»²)zšõßǧ«šÊ¾¡?jgá[+]’}BÖE6`ïœÁw‡c/Áw›áœ™ŸT_y4è0 õjMÃS'àSO‹¯Õzw1û‚÷|‚ÞªŸ`hô|0ÙÍ JÑòrWÙ„=ø°ünРþ6‡Ìš¸‘úHVÙs‘"ϯ¦¯ŒêYuÓwc‹0ªeS‹z9å«·ô»6Á€õ¥ñ -°fÁLq;ƒéZ³ÈwÏxç·ƒƒÿ¾sLçy؆»üþ67Ëï6Ïšñn7~zq¹Å<èþ ^Cß­5žaöÆ‹Và «ÊOÌE¼±£0«÷ zG`L-Ìúé ÈU2µÑ¾»aûþ~,æäW×ÀïÇëŽÏ¿àN²¾ó|SýWµÀ¯4Jâf1ѯì`V¸‚ýob\«7;ËÕ˜ÅÖºVñßðŒTÞƒ·@Ï»sO_"ZÝ~÷ÔRyÀ¾Eÿ•úC6ø.¾”ñIX9Á¢èzojJÄìbö‰âFgf]†µA˰ò¸›Kq:|†~eJX07ÆDBN–IN2£ÊŒÈc|{¹D•p’cÚ~ý€IäJùÔ:Ζ°}!5§*ĬÀlF„Z¦UèwŠçß+Ñ[]ÿU, hæð_âyÃ_^ò°VNaL…+žì¦”¼.‰œ-‰˜–@ZŘý˜ÎØúdfogÑW•ÆvjþüØczgXŠ1qó/âÔëJÎ3 «í'9EþgX—°éŒjH\/[M3Ä$SÛJ°¿ÿß~NZšNôù/©gz¡K1c×a)þN^½J¹Ó!¬‚q8·Ô«×^FñNQŠh“íN«ÙH[€÷Ú FþŒí!¹›ºÍ|؃c¬ÞT0}#ïÙl£÷¯CÌ'¶E$ßè¨ÿˆ1À¼‰ñPktöü̺kŠý>ì²ë;?*`u¥juzóf`"“ŒVñ˜$LÍ`&ž0IÚš)ömû0¬ÕªV…UsŠ;c:Pã>â•ú`7‚]^Îë °úšëñ™îÔ*ÐÚË£°"«a7a…•Ž@–8ûœùZÅ×G¿põÜ]n ð­ÀT‡mò‰í‰Ý°ÒEí‹r9õúNaNcäa¤B~¨UG‰?‡=8µB§Ë~ü}FõÚŸ5°Rö0^ô]¼¥ﳇE/sÝ•A]é€=8Á­sÏÀ6Ýáž÷ûüCA–=hĵw¯“_} ~u.’} ö Þ¦O!¿Ò|œÊ°–ö 'mÑ­÷ОhüŠ ¤=¨h¨ž­­r˜wUÁ¯v¹t·;˜$ëëO»WÀuÖ¯:úO€ïb…môWùÕn†ßh^^mp‹üîGœ<ÛÍ£îÏà9ìþf@§}¦¹ŠYŠžÖÄêi”hŠ~«oA9g|æ0°¦Ö´ú'Ïù®ÈhÜÛƒxg%ßÇkôÇ÷®©ßìsªþú¼ûÊ·õS¼fÃ_Œüéê¯4žŸü9aáé­ñ®5°$ja¥WÇší…sNUø3Àƒâ,Ư¿iÐøÃ&``}ßžl;h2þ*3uïìëÓòZ{pp¬ £¼ÙÄÊ¢šÓý õj£_’%¥ osÀÆ[S*?v“—AöšÊ¸õdúµò€¯aEÓlæ¼$ßr˜ÆïfÑ˘)i1ŒÊŽy¸‹h™å5Òc9@ú™LÆ=d“_¥’%Ç2m*pO‡~òŠÄºxbZ1ñ#ÈT•Ñ!Fif|.-ÅlúþÓˆWWŸOœL!šfÆ8•ÞÖ“PþX:waÄÔFl†ÝG•BEkC|»¦=Çyæ=j>#;Jõ¥aF­Ïd±nFmQ GSÌ_µ³*ššŒÕ¸…Á7:ÑÕŒüjýŠ‹ðÛ£x²ò«ƒàW£±Ï“ˆƒí³1m‡Év”Ͱ·_Ý$qæ;Ðh M ³_ngœjŽ™2™YÆô޼o«ç‘æ˜mI7ÚãSj?™—ñÞ‰Ô6øøR »¸ ?O&^i<ÃËÀ«‡D«1U3Gƒ€ZKâ2é`j¯V`Ô1Cí+ö6ŒJØÊ;±~:ÔÁSç`Mk5ˆúÀ¿mèñTr­5øVO³žª ]Ñ{½3lÎÊϪÕT+®»<,ξmÎã_ßa6^Ó3M‘/óïØùÀ„µ.Á¾ K#›€P?Ë@j\*ÃhÃzdeتõØÓfÎ`FæP¼íC´T£EkS:âmZÏ«ýš³£?Q¯¯6þe˜+ôÓÝuî9k¶Á<à œ½×Œ‰{m ðê˜Ü`¿‰¸è³V#·'È,˜IX÷¹¶ˆU‹ïSŒÖ(óúX/ñ²ûàkqÒLB;Ÿ žÊà•ê!ÅŒ…=ø l±íò‹üî[¯¶Á<'›ü•þFàÕnó¨™î¶»ù¬G_ ŒúìÁ—p&ô>î3€!…¬UR+Xsœ´Rû%hŸªk%ÂçÁ¯ºàýŰ ¾ aÖê<í­Ïo\…Q?éjâ­ß¹þxÊa÷±ïêgú5èã…È_®™OŠÔGöƒm¶Z¾Æ~#øU)k2LBÿçáyªÛ«u¶_¿ªÕÔ¿k‰PN 0¯þXEº§®•»ì±h_ú…&ÊR?À—aŽ2±ò€WSèmª«o+õú4®Iu«ÒóTmýšˆ’Ê[…ûÔ£Â(†d «=„÷ƒ¡êAíªêÔÎ óqrÈê46¡6ïø*‘ÙèíH^,j!ŒãJ¦%V™ì,‰Ö]5jù·TÚ™¡&Œfø¥ÐέDœÊ$×Ê"âä07'…¾¬#¥0â>‰±\YŒÒË–PÏ9T«‰cÆNõjâ‰êçëˆe1þ,“}½3 [ƒ¼O+ŒÇ.Òzˆ%ò¤¼Æ»Â8ŒÎ[˜ùÏÈiá ٠݉7Êå&Í `\AK)4õ°o”k•ÀšÑzj.‘¿À¯F3ë'VãŒU‹ù+KÇv/fl¼Þã÷d¢ýܴḠ¶3W71Va-é:;À(SþÜ™»e¿QßfŽ ¼m5G bzFÞ¶Õè×cž³"Õ2ÍÓÌ;~OŠ®‘oÁú*Ó—´çâXõ`¼*£Íƒ¢Uk›ãA$r™Ñ[Œ©ÒÂä¯®Ñ 3ÑÞk÷š¡¬]y?Æåju_†½¡ñí%ø3Ϭ{°Þpþô3k°Öúà½Í€°§¹îQ9m¡VøýAÔÞjæÅµvGýD?Ú¼#ÛÀ¯Ò‰Wm1z3Œ7ChafîÀªŠ?š?ØQ4ãå9üM{­ñWà˜`9‡ÁiUwkip›Kv÷£Á¹4ðIÿ¯Û çå/_î¿òëý+`õ›ý¿ÓMò»ÌSføÕ<ÿ¼;g*Ë؃¿eÖ }¹‹ñWê9D­üά¬¡ßWðö[ãÀ—ÛÈ·ª+.õ]†i€{Îÿîª-nÐÈfX}[ý÷N+g=ãÞñíý¯šÝª‡\ x¥^ÆCÀ«Œ¿jˆ·­“4£ÙºÅ2ã¾ÏÏ ¿½5ι¡ôz7¢rì@žïMp†h•ÕXX)»ísÑQ´õFÊvðçú´¼®¿šÅXÉJòF¦(ýœÏè.Uo‡çg[â™Ñ_å8ùĈtî—Þ¿¥‘IS}à•™›êÖ% ýW}‰ìYŒì ›À›¹\ò¶PÏ!›z2ÊŠò©ž¥-pÜ«•bÙ}ùŒKc²ÙŠŠ° +›…Z1žU‹ï©'SÄ< FN„Ñ]ñ´‡CUÏùt²«DÞ)”ò9iÀé58?6±Í­q®OÆJPÞXK”¯0F)Œ¡zS^Ø¢÷øk¥›Ñö] » Ït2jë5ʦ9æ(‰±£uL ð+å¢7€ÅÖ4åT˜h„•¾¥×h%.™Í~ßÖ5T«Üâ™=dš}—:Ìq2ÒζuìÍVO€ÍX%ûí£>»LEó†ÜbTû>Á ±‹eU¿ÞßÒ;òšM¡¾èóºm©gô48…–Ž6o2ª¿‡*·1*¹1õd¦ÊcÀH­xœì0æ 9l±oêfK+ ´ÚúXélÙ§ìI؃j½©îÂÏØ#-búí×1‚w2xWŠ™±ÔœÄÌÇ@=™´àºèèÐËT«Zã¢öuó Fú¤\= {ðnw„¹bU|3Ìj…ù•î[ó*ðj-¾ñ-ž6íîŒyj˜+Êú -_c†&±Æ²F¯NÃ3Úƒ³µÃêÓú¨Û°k4¾ý(sÆ ä²èoÁw ñjˆ«î‡¹õî°œ1»ÝÿÁ{ HµšÑq}Ü~¬aŽÃ<{ð!Ûø8^f‹9Utª*»€ Õ±ò±¾r;ÆvÆ[ªPü.ØCC€ŸÏ`îµæùì`·Kq÷4ËÝq/ù n«ü.Àw>ñú—ÁN·ù¹~½›êW›ÇÍLð«iþ9𫲉ñW¯3“¹æ¿­…9Uß`eÞjÓ1ôi6r+|ê!ÆqÌÄß—Ê7Ae—lJ0>ß^™÷€Í€WMýFÖiTÄCî8l´ËˆW¯êøœˆrª[Á¶¾¶}€óÐË-’®W…9Þª”ÑOODïºw £-¤ нYë936?/ ÑûÁWÀ£2ȯöË5äN:ð« ÄêbÍf<1ƒvV7Ø!µåÿõàUÛ÷³çÞ3’)$$@€ ô¡÷zï½KPéÒ¥)ˆHQ»X°÷"Š T,`÷©O±ý×^çþÞÿã{Ïî=gêšµ÷ì½v¨××ïÍ¥§§1N©ŸXg*‰¹2)1R–ñëÉ1ŸR:+Þ”&ת»mSÛ°!#²É`z±b¼*d3*=T .G õ¦2‰W)¼ÔÏj´Kñ¶.›»´4qKýÍŽ9ÎiŒí*EfW‘û»?Æ‹†Z4­ù†æï„7ú™\æ\§òf± {k¶ºyØýÀ‰=f>?×h>Žú ‰`Ï€¯´&#g^† õû{'ÌÓ›±å7˜IRWzS»¯¹©,¤üª Cóq3oÄË”þ|Nmp”ÔÙHï*%ï3^%“ñªý€lдŰí^ÞŒMa§Ø»ß*ê¯6Fî³½E5'Þzò–y”Ú NŠì43Ñ2{[ÚDž±q¢Ø5P^´ "ù¼ügb;y†JÙÝÕó ªIï÷œ‹à„,]uÊ e¾s;ð«W$…hÍS,FoÀÙ8¸›i_°Ç¤Fêm´z8§zn¦ÓÓl™jØ/;M†LÇTcÜd_†±îÎxÑNŒú«Máúx{;üþ˜‰·/ËØ9gÌòè%WÕsgÞÙRè‹ý×ï7+Ü%yÓ¬ >Ã7ØWCÍÝȺ =©‹' ʼnûÚ4x1 »tF´øT{ÞZæ ªí5œA݉C£?“ܼ 1°­ËñÃÜr§5<¶»§ÀröÁ< Ãã¹—|‰$o›ö ðêeÛ og€_ÀSZa îVW›LýôÖd{'ð·<ôYk5,Aë¶½Î`Åók`¦¸ƒÉ˜ó!þwöà`õ/¾·ÿÆÿîŸÁir#8ÎnX;åq™àö¸9þY÷•ä›ò°‹º—Ág[h- ©g5ÿ´'=r«Ð.­¤7*sŒÚkÝОGѺ֘Õ»þ.(rY¢wˆÏyç+¯Vã?ºšÀ«ÿ¸Þ'Ý9ßÑ/`¼èë+û2Õ=dó5Ö½fÕ‰V•©È <×1B·,æ¡=NŒdHz¯Ü’~ÍÇYÔ™BÅ­—ªüJóñ‡™½À«ú<£—šúÁÂèXjKUÂÞÙÊŠ;Ix_;ðÅÚŒ—ÔèâŸèÑ)KéGxj¦ 5ÕÓÈDÊ‘B}Ñê¯ç2—'ž1ìY&Ô`ÏàmqXÛ= cW•¬)•9ðåbÙ3êiÒÛ¿„˜×;5æOWîV•y:‰&Ô—O¡µ*,¨=èh?êžv´ê*qO§ÒºR¯DX»0ãVÀ¬éÐÆLŒù¯²ÿ§í ZÑ„^ØÒ"ŽT vÔN¬î5´fkbMi|»FDbôb|»Æ_=Äúˆ1Qg±K×ÂÔöo†ÕU^ºI<ã¦R¥ãO4¾ýWp”öìË\X0YÒ‡çEpq æQû7ÌĉæÉ)O>ˆ7 ÆSUý¢¹éeŸƒÑØŽÉv‚M¶»[µŸ?f»‹ž祜Ne9 {pë¥N1äLt-¾1ÎT•Þö)û$P¼ ¸Ì>ìÃËX·ÍÌò+ÕC® ¼ÚKW«ÄkLÐfÓVT]Tõ‹û­õ¼j3[UGÚã{9ö>¹Œ=kG¿p•ÝQ§cœ'y¾™ÿ;²Ø\ëþÃY¹ûñ'œð€Þ]XÏðVÆ‹6Â>™„^¾ ”ÒÚˆ³ñûqÑ.øMÖ›¨DžÑ ˆö!Ö¨f茊þÌqËɯú¸t_ântOšïånwŸßå °Û‚_½¼êƒ·ßd%šÕ|çVxþT)%ª¯Òs¹ùƒS€çM¨‘S‡¾¸!¬öUÏܬՔXpëw.^•v'‚‰°e¯^öWÀ¯.›ßü ð«7ý›æ‚Ùã¯öÝ\æãÌr·¸qàW_ÃÜ-¸_‚“¬9ßÒ’š¬G?ŠTããQˆÝsZ=îŽYzˆúís©—üŸ ¼K–"œÄOúß\.ifàg0­ýÏ®/ë;¿~5ËoN\‰üãªû”HyV!²Ñ ¶õ¯ú`~Ó¥ˆ}ÑZ ‹Ð–ìŒùhѯÔëËD;š1]£ [àí}/zã¿„ñWÃÈWÆÀlÏ|œ26Á’h?ú„ª¯¶`Æ’É•´>Szn*Ÿò$¶g Ì€îÍLú“RÈ~’¸ƒSYý«4ãEµ&rX+ýϧ’KµF+1j]y‹VBË¥ª÷îT–o Nâ/°†Z=¶ào‡é^‡½8Ùðº•ØC=© ÜžUSê0°>ÞÞr¿I³ÏÊwøü9؃_¯îtï2Ú£²oì¿·ã1"×b·¾n¶FÔßò3øU ~Wü)Æó'cÕ6M7ï£c±ƒšÃÔß>Ï<ƒ7ä1ZùÖf7ó&lãμçžý öàâ !N‹>®¼ênrw›/äv·Ïoñ·eí~i7Ô=æûyÏì…=è¢/ZÕ[žjæJT†3Ž,óvˆöà*Auaíå÷ð¶´P£»VâTÚël³=ØëÒÜ=Á,ün´×ôºmækó·§ê¢àWŸÁÔzÓý6àÕx´ë*àÕ8=n“Ç\Fg cÀ«Lœ}—ëYå¨8ÝR=ÉxÑŒÑÉG+~r]6æ´ŽyøTÅ÷ô7 /?•”_õEžuïC&SOæ¿À« >xÕ'S\ô+Û­oŒyÜi¤öyÞÜç\#ÖJ¿x•ÁØQy¦o®›°6Ä,ÎŽZ8ËÍA{x¥öÅ(³ü¹½äkLÓ`et8ã2ëš¿Í-¦.ÙP&FTõúÔ¦SÿUy m¤†XQÿÁÞ,ÃXƒ4ÆK†Ñ©ŒKPL¨ÈxÑôX\Sa,æ ùU…XfaF¨[fL!ŒŽÏῇªW¥MX¥>…¹6Zõ+ŒUîS…Þ±3i´DXUR/š‹`ø¿zô‰CƒÕ†yHIÌL$Ö†q§YĦ°'cÞ·°vOMö4…¹{w`ÄÔzmÆ›ñ¶¼™,âYr¤©àÕ/c?(îÃY¾Át–<ú¦FKDJ¨ÕÐ è_×ôäç À˜KKZÒ‹Ììó>lQ^©÷n¬¦O1kês;ÎèÆUdµÅ¦ƒ}UúðŽsŽe«Ú[­ž#[Á¯6Ù^¢7'ç%öàÑÛ /ì801ž<Ò/ò¼MõÌõ–3¶i¤ˆ5tÎÁ'Oã)SMë`ÅMÇŒÔÕJ¤àèG™!³¶Òh¹-hejÈAÙÈ@Ѽ›i¦Ø`ÖÚXÓIÚØçì^Ñ›ò3ænìÉ·ñ =í&á)70vt"ø[†Ì:UÁ¨Þ&ª¼«Ö¬*[ÖÀú­ÝÕû­5a1ö-ùã÷ž¹!ú«ïv§ñù<©âëù‹öÌÁrwA.šm‘-Ø ?©b4ž[Ì;FÍÎÓ Þ^8gÞGôÆJùÞA´c~ÿþ¥"•³j>‘y}ïʸçñÑ?a.ªcÿõseü`·öà·rÄóëýÞ Ñ”þqc€'C|oùÀì´0Å¢ÏÚ–Ø—cÌq2 OU`­ï\39–•£;5>ÂùS•¹Ï»0ªaøñ*Çle=úÁ4½+ðoºç¼ñѪÿ‚_}æòj±nôý7ϯ•Ge¶ÛL¼ú^ª™]r¯û=x˜¤¹û€Wª^ Õ‡j€qêmFæ«æ|bu·ÁÝ^Ù³]«ü» ¦++ͪ6h5ßÙ¯Âx~¼Ú¾5cþ¢; m¡WïàÏ‘ß]!ø•ž*ûWm kÔôáMu-jvNDµf…Æ2]‹·;F?†V팱Q›®>Õ+DyÆ2³ÃžŒ"¾Œ‹lç›0^jƒéìŽän­eþÅž¬É˜¢\ôsfOoÑ 1{¥¤,yO3ôòÞm¥pgrgg)ªÕ%±®iUÞ°©ªŠ #·ÔþªÓP.ãWa—y©ü©6‰cuFEÅñ UÈl’x?˜ÉxQG¿“æÏ”âb¨öÇ7WeMžTZmbÕ-ø½$¾«q²œÉˆEƇŠa¼D6ïõY‹±ÏöcÄÔUkeÎ æ;¿‹°;?36Ó)Øuj—)'ÚNU Ï¿ÅÌ–*2Vt<[À j„þ‡ö`)i¼ÒŒIæ“/‹Õ赆ã\û7AÔw¯±ñÌ.fûÒÒ °OKG¶t ðª¢=`õœÚŒÏßh‡‰Ö¦òµm©(Ê‚_‚=8FÃ[£G[ÌÇ8Ÿ²¨zµíy„žÀ%æU3L{RMž ®ØqÒ˜øÓFºzOÐÇË@°½ûd$VÌ`T=`ƒUjÌŸÃ@ïjŒÝŽÞÏ"2mž “ ˜‡n¬vÆ3h$iSÖë-ƾPû؃ À_7G/ºîQwJýzàW-ü‡v1æc…ûGþkVEÖcV¾Ç[‡£5­™‘x3pA³k¡GŸ`ŽT‡¹ ,³ÛÐo|ý­Á{í}Ôß:e>¥:a–™½~u}Pìv¨«è§¸õîaê3¼ìúA’Ý'×Å-toø±¾/fj7󟵪5Á,^©r/Ž2’kÌû(pI½2#Ìvß×7eNÝÓ?ØO¾T üjÚŸD´Ð»ÍFyæ¡V[É`¾ó9Œ@±"ž¹Ì DµxÚnê³ÒçæÆ¢«†•às¨¿¦:¦š³£õ¼ÒèùÊ#>dodÇlÃP=!'–iœBœË#ÚzÚŠ;áÈÀâhIÆQ+ƒÈæVeMXo¢ª cðË`•ЛϨ‰ÒdYÉlUxkX†Ø˜D–™HK´&ÙjóàÕRFêkí¡1˜åÒÄœ7a_õàÓFý†¢x¥¾•¦-ãÆo0£¤©Ì«Õ{DcSà*”6låJó ö_þ\„Óh5ž¯R¥D£Îk ;ÍHÙ‚kKÅöb|¶'õÛ‹1^µð›vÙòö]ùŸøÂÜýÖÕq8X¦&GŠ`/œ±š£vƒ+°˜9À«¦àWÀf:Ší´lÕ“é Œz—üªú28<;«-0¸7fºïÝ‹¹éŽV_À7õ¾zbôç`jì~pˆË÷ÓÜR÷(N‚Ãî+ìÁRàWÛ㦸§üHßOÞ4kíÅHBTóqÚë­‰”“~dPUÌn`uM´I£ÅóéõnÍÌßjFî°’ê6 åBô¼²YÄøöÁ(ìÊaþ¬{Í‹¿Å\6ÿ^}ã^ý¼ºÚ¯u“ý:yZF¹]îjÿ¬» Kn‹œp÷˜ÑœÊ6æikµ*ëbãõÌvnD_üªÐ©6óƒè]´·øÏð«©6=î­ÏoÔ¬¦Ë®.øÕw®Æë!wöà\¿Øõkä ãÛË3þÊD?µýVÁS{ÐKuú_&b6g3;"…u_GÕª©ÅÜ«A¼ÇoŒÓ~(,ÒÞ‰¯·GÍàhö1Ûbf©ö|°ö z~jáéZÏ+‰Ck“U#g¨…ö}CNÆ3¼ˆ–„u»ÒL˜—j†Õß“hýUŽi£gÅt]’ÉgEÒ‰R=˜©“I~¥-)û|²™° N.ùc‚ s +KâiEæ…Ä™ŠŒZ}YeÅ•B}ÑŒXuÄð–/¬7‘Eë¯ÖlXG5¼‘ þÿñí &¬$LlÌâ˜fÃ×`&ãœV XÕ}&ÐÇîðó38õ:ðŽoÎþwa1ëçÏcßn6­%›œg¦dÊU’Θ*Ò'Ÿö Ð¤KKiÅ6h|{éB,­5»ŠwˆÉªt-šÛ£s±'ÏsÇ¡…lOJOf{ϳËl¦ÝkÇoÂ<ÞnLjŽÑW`u'Ì_äN ’ŠSvõúò¤Wä ØƒŠÊƒå,óu–>Ѩzy #6‚µûÞÇõ†§Þ¼Ù<‡5¥õÌ¯Ž±&f-y1øÝvõ1^M^-Ç ûÙtz>Ú(·+Rï5ÿevÆŒÿ†ý› s¨Õ¾ (;JÖeúbe7ä]Þñ`o5áO7XÚÿÈKrÊÌ~åjºÝ+Ô“©è›ûϘ?¸ÅÚͲÈF¬µ¯°Æà¤hKÿÕ-À…ºïN˜·3˜£éxGsôn7«?Þ«Õ» Œî®Cxf[pæOÀ4.opô·àzæã0%àWW»kWïÉ!àÕ.gg·Ë”¸"÷ øUOyÇ,¶g"e¢OÚb¼UãÛµ¾sÆá ÷aTC³ÏU¯`K`o?¬b­´#7ÿÿ•2Ë™ÅàWåÝ‘`VÞ@ xN›ühÿÍ?&¶Õφ=8Ço"^Ýâ–ú“àW…fs¿˜«Ð÷ÖàWÝìP¬™±XQUpJh…F+ÕNcüÕhüæ ³kX£áV™o‚®´ÔÆøóÁíUóýWÛ¯ñ?º®˜!ÕoïîçÁ>mnþŠüâjyÉÁwï5ßD>·ýQÝC}½R…QK£1KеàßþbŒ¨ê‹ªNÿ@bˆjô¾¨M±ÈÜeOG{Ò;>ÆìÄü6 ŠÜ`Z£¢£b6\¼lŠeÉ”Å:›†ß–¢7§¾1ôÞ¦Pø²é@¿Ry¢U}ïêÏÍ6‰1e…2Œ¹ã"j1C&…6]ŒS ½Siô”'³Éa†qº 5Ê¿ɇÔWÏèOÅ¢*ÌŒã¾Í£§Lýä¥h—ÆÓUŽÑa-Â*|Bi2£Š¼ È"ÓìB ùЋŸ»Ù,E†Z‰ñ¼ù c¨_9æ¡[~»œ=ƒz“X8™ñ ™(kF$b}>9ú‘ÜLïôVšŽ¢1;ÌPi(˨åÞÈd‰ê $—ÊÀlN~8§B]Ú†šW>hÑ‚c;OùV©XÍ+1Ó7²}ÅÀ„g¥ùÕ;ËV±w[ÅŸ]àɇm?ÉÇίNšË¢vo†$ÚÙf®¥RŽtŽœ¶ªÑWÊL”wlH-ÒP•âUÍݪ–êî0BÿU%Œv/ìœôkÏa½ÔÁôcknj=´Jíˆ\9“hó¬3ìçÑ~ô{L6K}ßÌhðê©èHÖ³Q½¾Mh}æpöT&Û©„Ÿ?2¡Ö±ú¯£~iYF„‘UéŒNωyÉUE½:ÑK㦊È’ˆQµ™Û’ÎØ†~ôŸ³Ž'ùRblž ëÔ¤1ò+›Ù5)ŒðJf|{é˜ÿ*D¢$2ŸPÁ*T—)O}QÏøÔXþ` óîÕ¶S¼j‡YÈŠÝ-†G>–ù¿šeh&Ǹb ã¾´¥Àô Ô–ÕÃxOƉ¬RV“é®O-øù–Q§ÀP¯Û×ÃÚÉ”EÌ}nˆÔ‘ù8šË…ÅÖ†x;Óü@-,UÌÑj–×0?1Ó\ «é%Þ¡¤3ª¯?Ö¯Þñµ3£ìc¬Ë“d¦Û[`Þa•1î0eeƒí!ê|K´¦äej[¥I;ÍL¥æL ­#oÛ(õ¸ÆÊëàW™¢ý:œê-O`ä;Vš—¨ ¤KoÁO»°âjÞxÉŒ!¿jdråð«iÌÇ™búÈÃÁ5Z²Ø¶‡`òÒ,¿Ïñ y˜q\ƒµV ££–ë,£ê®Åj.;˜ÉÖˆ¤7ßm1:õ¹«‹X?íãíC°‹±O—¯òÝCN£2¥:öÎy; ˆ³Ñ­7ÌÊÈff¶g¼hkŒck`üHFõ£¿ý ì‹Qlóíà[ý°sßÂή¼ÆãhC/ó¶ù€ÕËÊ™1àWãÜÕÀ«}¦7×r·Ø=cþ#·¹üíq‡ƒ{‡t+t›#š?x‡FˆŒoß¿å£MôLÃépÄ<¼ÒL´ÁM®¬ÛLÆY1οO¼Zm~4Ÿú þ‚ÿ4¸ïÜç®ñËäU™å61ç[É5{ä¨óî)Œv=ŒÂVé{°~êÕ¼Ö ¿ŸŒ6MÇØçctT_ô6´j*Æz¹¹¸Ê¢z}ý¯®²^×Ò_ÁoñÿÂ,1/³ÞÄ$=Σï"¯R#E˜©ýæïȧ¶ñª'l[+ðÞ"fÌáý`9¬ë¡81ú1®¾Ñ“®?Ævv£=X8¿ý0ÚŸ¬a¢Y†wµ …´Â´ŽEÑ'^#–“L¿P{œ—UÉC´܇Œ¾JE¿fÀ*èEoz9ò˜4Fk…·yaõQ× =˜D´Ë O>T`¯H‹M+Ðô5sÂìðÞDª¨‡ºTiT°©@¶ê]…1W¥L¨óž@»/¬˜H{ ÑJ3‘<Õg˜OõôäÇnâé#®ÃÜÆRäuaMŠDÞDæÐ?ŸÈ»Årô†'²-a…³dÌçœ×Ò V]Ý‘X±U„ýó… ýÞ±«ÎKè›ßÇœÜd†0–`™™%•eãêÍìGý«ÆØ±M¤ãêaýÕÁy¤XZ³ªºú®ÙÀŸ÷M_ŽÒA¬òÞxªú ê™ŽöeiÏ3hºí~µßêÝ¢z9WرàWàKÒHHeŒh};ÚL¢¦_šGÞ±ñ¢w£#å”íIEþO€Síä~ŒÆ|`Ç à³°žjâü¹3€÷J‹Ì À«G0FÅèɇAR¤¿´Æ¸;|!ºíj*J=û¸};UoìU¾¦šæ 36õr* M¦È\Ú›ë€À¯º±ê1[«­–¦¼“l‰yØÄÛä ŒÍûfYôKð«;WÀ™Ù¾©ÿÔÎG{F¹ßä؃۰w¾!W[‡h=Ãí8iUßr vÄ)Ú¹½Y/õ 0k ÖâYÆ–a ݃oµgͯ´Ë:E¿ZKú¹|?Ñ-rÏšKrØ}á?öûWwÉ€¸áî˜äGȳÃþ7òwä%Û­Þo&H¼ `þ`-³¶q!öîŒVUÆÄÖrj5ŠN¬¸oÞk‰ Šm«ƒ=®’»-˜ã?vÏ+Öá<¼ä§ÃüÌŸvÝêgùí`U+`NuªÔð†û3¿UŽ»¿‚Œôêj‚_éýà £È¹ÊèlÕG+T¸p´7ë;ÆØÏÄX/5?ÁÌbüÕ>üj¨_‰oüËp 0³+ÖàSîgß¼k#fê߈ñÕ|F¤ã¯~‰|`KÐËx×&Xê*Ïí ¬ÑøötôR«¤U¥ÞÉ.¬¿¬µ!fcÆæó¾~™Ùoß.©j˜ÙÅzéÔgè,Žv羨Œ§ì QþÒ ø[þg}s:«—Ã*PMï®´shÛ%á„>¥D²¡ú~£®¬®&V¹Æ¿)îU§žRgâíðê—ñ7õº½‹‘Þ`zŠj”m‹I•áÔùle¡†(ËÑŒJQï»ÞTNU_?§1'Zãzsû¯¾ÀçÕÞÕÞ—9Œ¥µÂ›}MzòÌXlKlM{Àj÷.àÕúÀãÍi¾ñ¢h.xª$ÛÉÔg€)­"¯ÙDQN8FÞ²M#ôÉ¿þ Â¥á¤ï Nr'nyê_©òCŒÿ].2AŽã‰­Lž¼”‹ ’n¬]ÐQ>®À&™¦x× û´ däå]¬7£±T31B'°ká™ÀÒe:£ˆWªJ¯¬Â|öÄhBï¦ÞŸUa$x V7?~õ°|‹ÕxÑYçMàN®TòMü%»„õè£ö-³1r>õ;+7¯gu°àFã©‹ÓŸŠÞ0³®!«·NÂþ«ŽVvb6FF_tøÿ¯~Ó‘Ñ¿ƒnEPþö4?Ý­v'Í÷rÏ=þ ðê¸ôˆëžóƒaž3«­þyÁ¶Ä Í43å/ŒeªoâUÁˆŽCKk°Òx ¼gÐi Ú²¹VÛÌI0ê:Xkƒã®¼»›÷ƒÃXðw· »ï?Çãßó¯š/±“§ú­n¢_/ÏË·Èõ<óqvÈ#î¿Á38?»£_÷JàUeÞ¿U«íbT+f*æl Ð?gg7ÌÊ­Ô@W}³ï‚æ®,ÖOs/02×÷^53߸:þf؃ƒðùGÜeß8¶ûwÄúŸ© T}ÑóŒghˆQ]gJ‹F[ç«¢?p²}.K4sY’/©fV_æj»©T Md¼èQàÕ`úÄGšm¾•oÌçí¦}°€¼K±¥”lAO™…ל¬­£üœ%ÙÜÏEH˜­—Â8ú¤“É'º”¡­X“·oiÔ¿Ê¡]¦YÇz’–¥½¨w¨ÕéG 3g2+•Â:5YdBiüF^ÌîË`¶t:Y¢SeÆ0”b>NNìN°,q6;Æ‘B[¶4­®JìI&5²4£$¬<–ML,C|Óû†°Ækib]&-Õzáë²_ñ`VË0§ØëB̵êø(Ö4¯›±Õ›[é0 mãÇà7˜¾¢mÜu[,%Œ'om’ÁGúón± £ ¬)måì°tÚ•Ê®ÁwûðîrN© ´÷Óp~iåÉMd¬ØÃ`0ÝÙ‹5vøÕ^›CXVvÛ¢¨{Irä=³O4†$EúÙe°!ÕvO‘þ‘Wm:õä‡Éi›Ig>Î)œ®äq¼KUX6›KXÁWW­Y„¬zVk±Û¯’êIæË›AéH‰4Æ:ŸmÚHAp-V©2­¶v›½STá VÙ0óÖ¦ún¦õV3t ð*I¦Ò'¶ ¿ë-+°>úƒÕ4a=ÏÖäuz?Rˆu× ¼'Á>"?ã­'Í؃•¨×7xUÕ7÷—­Ö¿Yå^¿º1²ßú°OkvÀ>lÿŽÄˆÕǾKßÔHŒ®æhïf=êÆŒUk°"Lkô¼„íÌlÖQÑ?ƒÕni Ê =]E?Í]çî7Ÿ‚_ÝéwûãÀ«e~Ü÷˜ïãKä-³ÙþÉŽ¾F}ÑfðJYK¬Á`¨U—š¹W難7j f¼Uí¨UÀ®;лë©·"¸ÏŹÁ$ÌC‰?ã^÷|øÒ|\üÖo^]¿Z~5ݯ^v;Ýÿ„»(5Í~àÕ?ÁI £V7}PÛxóHê·o$oÔùê€Õ¤ên£1K`m÷dõ¶Åæ— ™‹“:õþô¸§_Ÿ¿t5ýNÙ>â¾ÂoçùuÙ¿"ɲ#Õ0gwýØ0ª7Û {%Njð.mzx=~§kéŒög@h=—›Pël}¿õy†L£O{¹ËžŠö Ó¼êí›òæn…iLΠšÖ¥Ú‰‘J¡‡¦-Î*Ü¿š)o$›»¿1Fûþ-‘ñ‰ôM…îIôž'˜°úV.ÑCýT…1•©°î|ñIyË0Æ'¤Ä¢ªÒ,E{1¬*4T$–&‡ªÄˆúR&Tf.M†•Á¼Á2¬õ\†¨Ô¿ íÊðƲ*³¸5ª"“¬?“ö]±6…¬Pc¯B•õ·—£=]š±¨åå¯Þ¬pöíÇ ãü'a­·ä=`mÕ瓞<#¦˜ûa~K+ô]¬ÄåfcDWƒÅ4’¹Ršqê± õ¯jýËH[¶a•ù¨6[Ü«f)yr*~ïåcæ­'sw齋ÞÁ¶2=í1œŠWÓì[ÃÞf•ãnÁS²ýè³ú@²åS¬W‹H;ÞŒµÚ›8éyÑ–e\Ö ¹`‹"F4ÖåC¼­£–ëÝú2ü}¸€(µ# 7¼ËÌGf’<Œ‘Q~õn™,Z—i†i/­‚…8ç›ÒÚn‡µÚ«ñ-´º—¹€Õ¬¼³ÍcxVüm<úQA´öz%ŒÏZÓ üª#-BõÌWù«Zºm𭚬'tÄTÀ/eΛõàWùî~wVÕ£¤:ãÛcd»ä#³:²ûÿgàæH¬ü¶Ø—-°K'â›'?mѺ…Yƒì6ì’!ø÷g©I¬µÓoǼi=úÏñ Ëý'˜{°vt?—îQó±ìv‡üÛþ¶ ÎÞ,+ã:»“~˜ï&o›½öçÈ¿‘·l´}¢¹FÊÉôQëí0ÇЯÌ’Ñ h½­¼9}}0"š> \ê90yõóÎޏ î`ŠÞ¯úÝþ[w³ùÛ˜¸¡þ²¿Ë¿~±ÓO¿šâ7É+̼Ê?é¾3ºMu‰î%¼¿1æï~ð«QØ­ÐÇ*˜aÕC®Ã(û™ÌAj„ß<‚·h=¯BœË’_ÕÀ<<鯸ßÙk–ÃϮЯc}œ~æ„û˜õRg3¾ÝúJ>‡úíÇWØžè‘Ö(Ûm⥵'`^—0s>‰yQª­|G•ƒšc¦u?6À§zà_ãy?x«}':”±šÃÍFßþö4´­u0€zȪÃÈVBÖ¸©–XO¡jT ¬‰èÑIÄŠ˜mNc”smÎg„1îɼ™K¥¿½,uB•/U^ÿŸŸf¶Ô£5¨±ݨÓR–¸Qެ4ã(2‰r¥_‘ü*ƒˆ«ñíªëƳ§Yâ°º’‰ Ä®0FÝÓ÷^¾øÿ‹u¯BÛOY[[*Ö(; ã/RÈÂØÔ°VNYÚ†‰´a³‘‘N\½k0Ko bŒç*S2ª?zXG>mÖ½ú¯´ïcß.3=è¿Úe†Ãî%ÚÇÖ°[Q£,}J¢´£]y A²ô'g«‹ÓÛm…ñÀ«Ï°³Ô¦;Hå³Íd£Å¦›½OŠ9öW¯ªÚÔCÞ4ÚnKD³.HYy×´ªÓ}ÙiEµˆ 0ƃ°n4î8ã_„³ ¹€ævÅUä<+ÌAûItÏë‰fãÔw³Åô FFgÒ6,Ä®ÛO ä_MÆ\%0.«<‹G5–?Ãä0O¹ãESÝÆ7)‹ÑŠòUhª7©m½Ò´ è‡J"ƒêGåÑVo “˜¿•IÔK‹ÅS%{C}ùôXôh2ïö∡ÎB)j §×âéE«@{/žßÎe.v {ÓÉôB•âxÄÓÌå½@<­áò1ã÷Ãú_šk¼Å¬¿ÒÖ4SÐx;õS™¿L†„5‰¦â”|è®rÙÖŽüɳì*¢ÅØlgíƒo€*ZW´‘¹«éÚÕÀ¬÷/w¡ ­MU9¸HX´E@¸‡=¸Ožtÿϰ>ZsBY­1:‰*™[ñv=#Fãý꿪†Vj]±èï8æCÿ¼JÓïJ~UÑ÷ò7`®¿†Õ·Ñåºà™'ܾ£_êWbOÿ)åËûò‘xöF¢_Ùι’Úw:C™ÌÇɈÙñü}&}I‰d^èyÿ?ÕÒÊŰ–t9ZP ´-“L¨•NÝã¬ÿùØÓ˜W¨¬§B ×”kµ$…6oÙ•ÀxÑLF­&0C'+VÏ"\+ß„šÌ;7c_… [Rm×™¶ÄæÚ½Vçe)ž¹É¶ˆÕÇ)/_˜Ÿ¨{'Xµã­Žu†ôŒ¼jS¨o3L>µ-#¹Œ)}»f4ãvb­ÀºšÄ(¡Z8•§›±ï+ 6ävŒQ“/oÀ,Á©äÈ–QÁìǾÀ¡ÊöNûˆ4g¬ÍœÈ¡¯õ¨Ïp¨Ÿ‡¿¡åº€úì+1Býd-úÖ‡yu°:´Ê©ú"êbšã·Ï˜ û¼œ§>Ã­Ñ ®¾{À½Ãz^ù¾…ÿ ö`±™ç*ÙoÌÚÈMXkß3÷FÕž:ÿnŪ:€þö—ɯ”cÜLÓ|œjX­Ê¯ºâm¯2Þ´<öã´èoÁµÔg8 ~Uä¯rkÁ¯Þ“ƒ.wÌ þ’ÝrCÜ0÷„/ñ=Wëì—‘¤ès¶-VÉ8³D™üé€}p«£:ö•Þ,‡ñÅàH˜ý¦ê¥±_o=x5}»+‚û]ª{(©9îþõ+°F¾òcý÷þÿN±›ýUàW ýV9)#Ý­n&ëãä›=rÜîMôM뽕vVò0ŒnF¤#;Ô‹6ÿÍbäó£h[Kà{Vö¯A —~ÕØÜïõߌÏþäêú­°I{aŸ›lï¯ö›ðÍï#ÿ¸ª>)’‡¹>j¢Ÿ[­}Õ£· –A!½‚“°´} ÞIÕæÝ­Æ9Ṛ@?ð<æã¨‡z•Ùc_$_oVûb_Ÿ{þ:Ó3XȽ]„½“UI]º`Tk7Šð†_iùe¡G‹q÷¥õ–mÂ*È©ôr§Ñ7FcU¢^_9Xýç)DŸÌÒIç}`oFƒ†³Ò‰i¥É—²ùÜd"X:y_ú½³éÛJ# =éqÔÚJ`Ž‘c¾sßLJª¦‰ô^«JD¢ kзâ;ô]am° "^ñ·ý~iTŠOåïÕÏ_‹ÔP~µìEÑSÕžÔë¡vc5œÍùŒK×x†c˜£¯ÿVÄ|ÓFÔ¾ÞÖÒ^æ‰bc±É…Uß-p˜£ÿš$iÄÛÈëˆ{õˆQÕ^ ±Ó2h™i=ú³…‘€±÷Áêm)ÐÿýØÅʤ¦kc§ï€•rØÕh󢙎§f©DÞ ®Ø!Ò#<ÜÊÄ`vÛpSSÙM°VµòßKønì³"ŒåLôæ°Ñè(Í…ÙŒ¾Ï 6ò ا]d°©»IUF ª Þ–^¬bôúi“c_r·†ív úõEß"dK_ß_„=ØÞ,quìe³2r ÖÚoãÑh­âUKàá(Æs©žÌY´i4žß˜õ×Fc·wƾÒwÅOÀÁÎÓBÌ7³£â¹uÀ«;Mo—ã—ºUî yGö¸+¾EÜíAœÝ+³âú»Ûü(ßGΚÝàWqÑç­VW˜`æâĘB»6ïz O‚ØméÂ;BÐW4«kn§¶Ùóæ^­’ Áq¼R½¾qþœ{õè?3ÿ§ºäßô/‚Gïô³½ª2¬“geŒ»Í]C½¾ªÀ«C°%ßÅÎ%^õ¥Jü@*™ó¦t,ú?Š£¯5¼Obv2j5^kþ^i¾sKó˜ÿ¯«>7…ñíZoâ'×ãò¸;ë[û…^5¨¿^Ál†1¿ÃDÁ¯ÕòÖʽ5™…£·Ís¨v•Tjĸœ2ÌïkŒ?ažl ¥V=UòrŒâ©è@æ Ž0Ë}7ߘ:TëÌ@Æ_U`VbTnfµÄ:š1ÄÕCS ^£¶°nï‚M¥1åhG¥‹ÒèCO¡MVž¹ˆéÄÌ ÜíebÚM0NeùÞLž(a]‡¢BX'—œ*Ì̤¾G}hQPÁ„jëjÍ•‹åãd­Âz‰±çü_‰°j¨U‰± ÊôlÉ5¡>C2T‚ 륆ùƒŠii‘†Ø•óϧ`=m†e³Ì„µ<cÝÓmhž—êJÆ7Áš‹Ô?o^LÁS5RãÛ%Òƒ*’ÌYL‚”˜Þ2Ò.·GWMÁe¶c$.`þò±f'“_b©9ÜCcWƒ§ˆê·a4P1=>E8ßÚQÓTo›2)öIùëû’¹9úƒ«ëN¸3à ÙR×7ñŸ oíÌ|×^¾4#± ¿Å,â­”V½Ø \ã2zcÏú‹9Èz÷^ a–ÉÌ2Ô5¼Ôì³÷FûÒ^cÖÁÒnÊ;¼¥¦W°;Ú“ùuÕÈ.F ¨þ•Þä1ú©:VniÉ¡ÏY£l¾Çl¦Ò k¼'Óó‘LeÒз”Á…Drªš´¾Âh¬:D 2ÄÍ/G¶UÁ„:žaýÁLƉ&ùÊýO?T™S¨Ùž@Ì­DÔ(Å;É,Þä9Ö ÌÀO‰ôv…ã_…¸Ïx†*Ì>LbÌkŠ)ó«—£¾Ž§,/ûæãTáíÝæ&œAóÉòš·§›æä—8›¿5‰Q3]gÍ|—ê·«²2<ÃúË\-e‰3U¤)õöUK9¼jÉ·i5šê°¬JÑ'¶ë¦ëiÌǼ|€×XØÃÔäßÄûÑf¦¯}v¨¢û4;ÃV…–LÛ3"‹læ;ŸÆé~Â| :SFbÕÎc}œLé{°óƒJä+Ûx¥m;Å{º[Œªõ€ep,¨Õõ´¾ó1V¼Zc^0SåŒt=SI^迪®Y¼òMt>׿¯j¢uêÉ~™1ùaœêóæ›ûhVAOnZ«Ê‹æàÞ&zvrŒ¤*Àh¦s!u£šR³£9a’ì3¢ÊÓ?›uÑÏ\{н¨5YPýí=Ì w£üf6±ž×ïØ#šSÝ‚c3õ´ž×$Ì—ú¯º¯cdâÏà5™{Œú}g¬õ¦G ¯jà¤á’ýT·Î=i>”ýn­ÿÉß”±‡¤E\·À÷ó%àWÛí¥HêÉ´&¿ú Y€¶å1ß¹|a<û¦u5ªšÐ’|Æ‚í@Kã3Oã,¬ˆv, öÁl8LÄïFøÀ¯~r˱Ò.ù>ˆ{Ç?ör“ï¯ucý\y^&¸ÝhÃãî{ð«­rÌý<‰1nŽ7? ¶[B~Õ—zÖ-Ñß"ŒMSVk«Fu¤“xK|¾0á¿A±ËÍÜk¬B¿}ùVßþW§ªøº÷}s¿Ø¯E/~Œˆ/ï#ªÑq—‰À,¡ÒE ž‡“L«õ Ç9±ÿ®ZßùW*4Z·®Ðd} M1Nƒ°ƒô ]iî²ïFpç 5+|Wê_e¨Ê@p=x—úª¨~=3öôTïˆy-$¿REĈ„7w-ð˦}ã/Pžì&“ï(0¡æ^Q*›vbEV'M¥U–ajÛÔËÃ3ò=–D{.1ª4}paügR¬ÞD*¹ú–*³•!^åeây zØ5¾"‹Ÿô&ÔÜË4amA­ºSÀÇ1Z³"#T“b±®Y|N.ãÊ0æ<ü+äWêK+`‹’±ÆoÆÙ´ˆ<¶Æd"ÆHãN¯:KG`/¿“YQðv°ªè=ä| ÂÍHѧÖÂ.Õú ÉÔCþÛTÃnWßÞýJÎcCÌêr<_㶘Ìûf­ä;YŸj5Gº‰mŸe=3Ö.µ•`ê8¯Í·Íxùª”–{WêüÅÙ1f¢eUké9eã‰cýåÛ˜õqÒ`ë¯7Ú‹/ƪ¼}˜ŠY€öì7:ŒŸÁúÎ3x3Ó’ñWq‘ÎR­kšÉÙ¨F·w1ŵkí«¢™4oSçï=Þ9/Ä>Œê¨N²æÈ\|Só·›n²”¾¯ö¬»U@}—jÌ$¬Âšò›D{?ðJjnŽþ䪹»Ü[ê·•r¾ÿØ^ƒç¯tïÈ̢Ȍ¬êõþ¶Å“Š5#Šþ«axïGàÀ“hªÿ´³4»æìÈŠ¬@~û¶3þ®ú¢º2'Gÿ`½‰†ø—A.Û„=xÌœ• î ¿¿5pv¿4â¶ø!¾½¼¼ú;R6ú´mƒÝ2ÌÌ“dŽÖôÀªÛƒ¾«nú8åØTIh f> ïÕ{»íTÛjbÔB;V»]¢{:Ì@}†?ݬ‘ütàÕ§þü¼ÆñkÝL¿T^ÉnŸ›G=ä:æ&¹ÏY÷(f¯Xs¥5†©Ú=ÖYKÖeÍzÕ8 c~ÂìB¯µfÃ"ó{ÐÐ¥‹æ°?ŒwÖf¼h-Fëo¿ê¡µŠÜGà´³€c]̥ȟ®ŠO‹”È^]°ÝXg(•تsLµ²ôrâ³Ö£oŽµØŸ,¤3Ùüþ:ŒïŸL‹éàÕ‹°ûC†› ¾­oÀºï Á¯ÖF»Ð®+ľXÏŠ[ʇZ`}V`{]Í ‘lâD[ÌîɯJ3Ï8^ætFÂW /<žñã¹d=Ê}ŠˆGiüv]~VQ$›ŒÒÿ—“GïR½íô;¥£Â*_a¥®JÄ£8ÖzN$³Ë¥]W†z}©ü÷tê!§Ó* µŽS©h‘@4*ƒ¾äQ&‘O#j…Õ sù›²± ÆP+µ<Ñ7¾¸ÀË7y4n¢3V—FÑèçꘗ€:­‰ÙÌÇØÍŸ‘_ÁH/ƒ¨þ¨e¦­\1C‰WZo¢>v~¨ßž&¥1gP/ x•BÍ™…à]Ùšõ˜ÕÒÒöÝÌLQ¾êɨÿJÑt²]lkÚCäNëMŠ,´ DïA_—yżÍ:ο˜8;ÎÌ´ús¶4‹œ´5:˶ ’Iì:,i–]g]¬¬7qâ–gÊMøé3VW«‹Ü‰öÀ^^•‹4­ô<{£7À®djK¼]~Õ•fã7o¢OµñŒ™8ƒ·RÙj:ZZIæ³fôrð«z²˜ÖR_ükw¬FÍI,:SI¹³¹×¤Ú#À«b¼kô’«âîq§±×ò¤¼o俲š)8Ñ}" rìA­é4ÿz#ž£öà.ìϬo¸ÈœÇ®&j6ìm¼»ª Tí†vhÎÅ~ì¥Ö°?ÀNWÿÄTàÕ\ð«Œ~_—㻹¹î~ó’ìqGüÓ~{ØmÒ>n‚Ûëûþò¦Ùc”޾¼j…Q›#bÏht¨Ö<†ÞŽ«iK}ÑXÓC4þjÆ£N¸û±Æ´FæõÁí.Å 4&£Ÿ?í^ñÖ¯F÷“|4î]ÿpw·çotSýurRƯ¦û§Ý7À«­òœ»<‡7iݹ“ÒÑŽˆéõ©6bS´¢&õ& ÇÙ¬¤ù,дf§.0뇠–ˇ=X×…=X¼QmÈo`îñ—Á¯JÌý°›‚_mÁ¼ü1>Û—g¼èQ#Ñ÷­â|cüËHuZC#YͲ!­«9X×ߢU¥™;S— ØzT;ªVYÄrsÜž^© 2Îlò­}#Z= ÌÀ`ìÁJTÿü;²š ëË«ÖD.Ù’fL’Ëû÷V8.bìÃZZ©±粌ªÂx€ÞáU2aUgȦނ2«ÆüNYÞïõÆ ÖQ.Ç©,Úb•èÍ ë–e$W"ùU•JËr_§1Ï0qVyø_&£—B=älÆ«;~7Œ'QÕ‰ojÿuÄÚ©Äè­t2–P¾L,ç:‘ˆWžü%ÔÌÄ{3èßëè&`…ƹuÀÁiŒDmó‡‰RÃ*ór/vÃ'Œ¤8…9Zb‹²¹fŒäË(ú¯j™d õúâðÝßÀQšÒ‡¶[.ìA#U;+v.ì»=‡]•Êøö¶xê&bTð¥;¥3#/FØf¶®=Bû:wÒz­°Æ5žA>5¾=Ÿ:y·%÷@Ï¿ G+Ï̈þŒrWêMäÊø>n†»#»Ñ=î·¯âì&é×É=ìøîòõÛŒŽÖz«ƒÃ.ßíÆctÆúsîïürŒãûàT—ýÿœVǹÞÍ¿zJÆò~ðyw¬v;ðê·àAôu0ÞsLZ‚_UÅ|†õ›¢_5Ì *¸hU½ ïû1ía¯×a¾sm—+ 1ž÷ø]¼j~UàwûfLÝç.ø–~•ß„ßÿùÇåûœH>žuù3òŽíŽ}Ó=¾½«Fà`Œå5¦ 3Ý¢¯oQ¿=•þöÖÔ§JaŽ Z¤Þ¢5àW?1ï& kg•/ö­'5ßL®‹öb †æ/ {MîÔ< £ª"ês꣮p'cŽç`ßö0aí˜t²¢DÖ=Íæ7ãAUÈhÌRŒÄ 㯔³Õ&Ê7ªZÂhÐ4óZ|eÉgry#–Äèö ²ž²äŸ+Õ|Cÿ…TÛä.Éy³$rPê Δh­zpÚ‡G¡íEøÝló5ìëÉŒKˆ`vSWôIO²"œs÷‚otgÖzöŠ_ ¢ÿãÜ"ú¯ú¸ ?Ð]ï™Ïd—;äú]AÄîqÝ1pbœlNôßÈYÞŽ^%ÈzsrpòÜÕ4U—óЦzØe§±Ï²Á+ÓÛ ùƒšï¬w<ë‚{]%w ˜„0ÕâžòqÀ‡Ë梟èÿòŸùÇÁöøeþV7›ùΣÝn2õóÍmrÒý<1ÖúhÇ¥­„•<‚õ—cœ4†d*m(½…Õûh,ß¹Þþð*G46ê¨ÿÛÕñ½½ª´j¾ó~ÿ›ëŒqyÔ]ôü¿˜ÿ3øUyàUE<󰉋~`{`ýÔKݦ_@/´Þ.Åg+ñþ¨Vt_îoÕÕéc:3f©hÙ ­J¢Mqо~¥þ f=ìÁFd sÍì`yt¿[çò.¬E‹<úâÊsŸÖÅì•“0ŠS+l±¯C„\ò dbH6}E¡ö]%úˆâ¿’E¯¶Úu~¾¹wñJ5ûrȆ*r‡†ù²|Nã6õwÕxÿç§KtPl,E«Ï³¥a|»ã=@¨J“ÀßW¤j™fsÚƒ¥É©Â Áxæéd0ÆÞÓÇžK?\s¢³°‡2ˆ˜ª…¼–µ¶¸)Fq ž•Êœš?À‘Z“Í6zksŽÞ¯ÓX am)ŸÙ»°³”ÐþjNÕ,–Sg½VËI`üÕW&AÓ®¬]¯žuEØ9à½ç±¿ô»û±—z¡ éœß¾v‹ô¢í¿È޵¹ö˜U쾫ä1Û ë-ѼÆv üJ¹¦Çª`ÆZåŽ9Ò x%äWƒå=[ö ú¿n¤ËQ¯ t9îp0x¥z2ϯ–àäúÒOõ?úÓþ$0u¿_àw»Ñ~®¼"ÝAwµÒý޾Vžu†þ«Öèÿ#ÒΪ&ç4Æz­¤zk5ÌDKÆŒf`Ow4Ñœ üZ{°¶Ë:äÿJõ¦._Ä×ô·ƒ_õC_s?ø&~®×ú4?G~eýÁJøî]&!ú¡íʈ¹ °•Ô±ÎÜÄÆ´h4^ô$ÆXwusÌAkÖ2HÁ·`,ærÇ®¿ú$:„{{Ùæ»úöÌ\k® nŒ–poWÃ>ZÏxÍO骕s±P3{‘h¤ "ó€ÿÝbþêÞý%ñ-9vÓÆe…õ&Ò˜Xž,J£Ãj»ÂQͶȣ•˜KOyF,*=3æáJe}ôÚTŸ+–_¹WýWa}ã¯Ò£•F–DÔ,CÔQk³"¿§ßhÁV„1ü ´¥â‰±aFP¨®UžˆWš¸šA‹V‘øöÙæX½Ô°OT?H?UÇül’¤ Ùå4¬§8ùœ­ø#}ƒéMÍá›Ì8©+sEÛг؄5ãô‡)¤¦q<æèF:h 1«s±Šõ”X>öv–òÃCf1žº“6w[3ÎÞƒ÷ê³Óm{؆¹Š^öÛ¢µÓÎI&¬»‹¢9DqÒú :&¥¥gäS›&êÇ.ÙÂHTô8„Í—[Ðâ‘Xo `NÐ[@Þ†õRëcÍÑ{½sZ%8^…‘|Z‘c™Ì ³Õ8𫦬G¿Êt•åxâ(¢‹æ)vgœj3êöéß½Fìò)~¾×lŽ~î Ý÷LõX½‰‰@€Mî9cFÖãS⻓©VÞ[ û½6V·ê_zNÆ*Vþ³?õÇj?OÅâ:èÕØÅ0{™kZÇLŠë¦Â¼Ûôp»î*wÌœ— nŽ/ˆÛü!kdF\¡[çûú–ò–Ùg£Ñ¿#¯ØV¬?z-øÕ0Œ¡Þîb¾óXÞÐU¦†L+°^ÍôèOìÂI3ÿ{ã®^ê-ÁM.Áí 4NMõóâׂ§~î'øßüIÿˆ9hîòýý°ªåò˜Œ‚=¸üê[ Íf¹×EÝ“èÛ ´âf~4ÖÌú¯ÖóÍu0íЪ&XÝã1Ö'1ñ~¡u—‚j®&,¹Ö户¾&ãš™¿]e¿Ï_rê“T{[¿|¯¡ù>ò—«äS"Zwþn‰~f»p~KÌ-àQjQç'{aîëQw`&xù#Ôo/ƒo7ßÚ ñ‰A8=tÇ®2ÇíÅèr†af“ïìÑß´ÂÌ vFGÒ—[ÇDÁÈëÇîø:`ì ÈŒ Ðã³ÌÀIÀÚ ¼êÁÏdÐÓÌ;ý²¼KK ‡É£ï¾Œ uÑ«Ä"7Õ¶jHŸ|yúç;Äp •þ¢l²¬DÞ'gÇp&ž©x~&‹íHcÌ@YZ~ ´³x¨;Üñ÷©ÏPŠ·‹éDEñ*øS*f•6¢ÅžÈö–&oKˆé‹–ÿßç+³_!ûÊø_œÆSXÛ›# Öc| þ?Ìõû#מ>É|Žô)[ôN•k± 5.wøUU¹FÓ12¨„>ÿBó¥©ÓC^¼ª&h[+¿šƒ9V_ßZØéW (}oíƒK%[o7KObîD{µ-¢þU*Ð!QŽÛª¢#úž$ÊãæŒè,ÅIo;Í ·:[YÒ!rÎ&S/b˜|bs#ùóý‘#˜X°@Ûg±âkòÏ-X˯°bÍbó²™#¡5­a¾ük[KGf×·—aÀ«åXaE¢a{Ѻö@‚­ÀƒSX_Í€Á£6›Ðïê8Õ·b¬­µ ?·•eØ=#¨ ¬þõáW)fµ•îXwQ»[.âßî4ë£ßº\ð+½,¿ªá%²ïZíF¯®Ü„oýTÐx†æx{ó˜^Ÿz»çbŽ^ìA=®ƒÔoo«Uæ5>„gvÅì}¼ÊÁ»F¯óݬ .Øm?—êW»ÕÀ«·ä ï[Æ Xîú¸lw«ï盯v¯~Œ¼¼j7YRe2Õù*¡ û±§´Oʩ꣕Cè/¹íÕúƒWÓgxC°ÃUt÷s0^Cý»îmÅ-7ŸšŸý,Å¿îŸòßæÇû î*¿üj¦»ÅÍ÷/¯*™Uò˜û-x OêŽÝ{TºÚ!˜Ó™x·Öl¶è=eü¯ÖóHüæ)¼¿ƦÖÛŸAWVT¡ëÿ»«íG'›™ÿº\ð«Ÿ]¬ËÜeßíØª7Ü‘ÿ¸Š¾0Òý¸ËØèEÛº<½µ!¸žf#¢îXCî+Í~Œ5qRÑÿ¶ØE=èn„Ùè‰ó,%ßþUt0Ïë!f^Æ=­4Ý‚uÑÞ±ìb+º’Ò±Ôƒ:øŠu5pn]ŒUl‹óöq<5ôK‡uºÂxƒÐæS¼*ÇXùòTLÈ¥²k˜õ—ÉÓ+LFõjÂj9É´³¨…¥˜G¾•ËÁ  uÝü?GìË2É1_YÈ èw 5ac*2¢«4cÔUŠL*ãÞ¬,žwo)äuñ&¬1FŸU oRcm(Ç:&Ïaݬà T5œ¶ØUzW¬y;Eà?YÀœTÞ~?ѧö.N°E¦õEW⿵eí²úæìô>ô;©ÿ*z2ñØY?àIMx÷W³: ëIo-Ö™_a)áèÞA=§Ux¯Ãü޵7I_~f¬]@=äLâ^Žl·õ¥"¾ñŽü­Ù'ŒoÿÓLÀ);‘ùƒÙàWgÀ¯ô$$çlˆææ”Á<Ïݦ|œ‰×˜W©í­¬›ð·cØWµÐ§WÍUr¿m…Ï~‹g¨ot•±°Ç©E'óíF»G4ûþCô l—\ê™BlcöúLØ?q²ˆñ]k±O»ÉpÙæÔ„JÏ•f/`•À ̰G€WmÌÃf𪂻×íÄ7ªICì+è[G³ÕÝ(_™# 1ÂÿÁs¦â„鎴oÅXêÁfŠùÄ<™ŒÏL«Ö RwE;T‹k?ƺNˆ¯Ð2]¿ ¢ÿ ®vË‚†æ؃Y~¥Ûàn1¯Èín–ï·'(mWËä¸Ún³ïéûÉkàW©Ñï#ŸÛb¼wž™/)2‡ÙGùèåÉ¡` ð·ÎÔv2oéUyì>UüÁÌgÜêrÖóz0­§?ã^×YcÞ4ûÀ«g`>f6øI~«›êË ™àö¹žw_€_m„=ø{ð=ØÍS°aGÌn¡-ЫÌS1f£¿…™|xÕˆÑxv…ñ¢…èÿs^YU‰_¡uQ]¶ßë?w=€÷¹/0æÓý*ôà·È®‚¯Qô1={°"ýûÑ»*½™T¶Þs—ˆyïtìMË© úÝšxæ;wC‹•m¬1‡íÇÑQ<»Gš[À"›1Š{žéÌêÝA"fKd[,R)ÏDÕsÅž˜û žõmq½Ž+ËÏ”¡§=qSiô)%ÅbG ø7Õ|($¤‘ýµˆÙ~ŠYУrD½û«@ΓbB5÷›¥Ç’ˆYŒ ÕbÊÆnÃZÒ‰l—§®LÆ·WàwhYVÅw“i¦Q¯2˜‹ÊO Ÿ-6i¨>˜ó¿ûÁôXÆv)ÞõkÍšÅìA'ú÷ZO«›/Ì̧¢æpð¥×5ß}…Ùö½©t8Ç”H)™Ç˜ÌF˜Å±Ú‚uL²”§»ê‚^ÑXmúá‹YÙ…7»qŽ|i±…‡Áé;€‹h28МU \egÙE럜Ÿè¼ª„žÏþÝOý.õ÷n¤¾h{ê‹nn^4QÏzsê_v§%X‹µá_3åí1ù@•ãÌv؃UÜI÷.vx)òMý%»oYãnóf^dóqšEi%uUhXŠ'h,×p¬y­3¿Uu¤½øIóq¼„jí•À´ò‘ê3¨–GÚƒÜÕAUÌDï—»5î¨yHöºe¾VÜî bkɘ¸\·xÕ Üôv[6úØ«FéO3³%^f`gb…oÆ®…™Ü€–T¥ï¦1Z9ïìˆ^Þ¡ü ˜õ$F:»ãÚ`›Ëvw²ÞÄàÕ)؃«q^ò ½‰{Æ?Ž“`³Ÿ ~5Ò/•'`îf=úKRÛ¬“ݯàW3Á;™G¥‹†•>ϯ´l§W4¡ï;ÿß›úí­É¯–ü¿¢®¼ª¢Ûî™{ÏL …JHI !ôf.Šz.E©‚¨ Ò»T ÅŠXP|¿Á_Qì½!v±"Šõ­½Îõ½ÏO áÞs¦®Y{ÏÞkËwA™«3œÖklÕ@¿cñ£+òÛü®žøˆ{ÉwVªÿèóȯÀ´ê‘\ Êí¢7 ªsØ ëç.œÅ XyjëM´d †YxÖϰÁ5‚¨ ùs99I FKU““ß¾Ï> mÆa²Ê_àËky­L ® G§V´Æ_…êœår)›N}ç4“Á½«Us¾Á»C~•Bž“Êüšz¸ÈþÒ©gU¨ÆÔ1V6T“õNB_–Æ·×&J‰éL^fiO°ºð%ÔgXTH0 i6§ê„1¬Fûi؃eœ¯õò£˜´p›‚¨†‡ò×ëå<öÎŽÑ}XeêS$¾@úÛ[L'²È±v´-±÷Ye¼7ß6Ù|£#ú†©fNÊ»FmÕ¿e„…Of2^ôâÈ+±x† sÊ^‰cÞÐi¬”¦f;ú½+êXEãyöO&¯Êð7‹`%Î1÷`ì;K®y-H^µÅ¸Ž”rÓx5F««›ñöJ´®1>óuRŽ1º|&ÖÏŒcCÌÈDìÿs5VHsØ7í°"s?¼¯ _Áû¼–ŒÀ.SUIcû»üeÙ=~…]-6õ}Sÿã¯Ö¹åæcYÈøösøä(ôCý¹¥äxEdÓå5X´—c¶@¶±jL{pÆ f¸fÃ^ÕüÁc°ÚUq´@®ŠþŒu×­™SÍÏw«Ý]°otó}÷¸mÁæ&3xµÆ÷öíÌ‹ò€‹ž=Ø}Ÿ.S`ª¿½3ýW»±cûE[á==·ñ1öYP¥9N¡9´_`滢-ª'“ãnÁˆî¿zË=[lØòY?üêY¿|€¬ñ¢cý óŒï6¹+ýÀ+¼ÉrçƒÃx“zï™AvÞ¬ª.u9"Z9v"Þ®zí…x{Gð«]Tølþl]C—c4'úü9Wè+ý< Ê/°…·ù¯]/ Þ~÷¶/õS¼Úà_F~r9¾(ÒŸ¿Wþ޼g»3b®/ÐKYšfU ÁŸf£×j«ÌR.ŒKÒœÃ.Ø º‡›“ÿͽ׾^FûsOåàrˆ«dT0'ZÉ:ñ…òöcýX,hô'¬ÅÕ'@Ô„1 Ê«?ÆóóxëV€OŽùÈëÐÛ”@¼Êg6q ã©jƼLYh[-æñ¤2¾=`ñŒaÈe grLG= Y)ägáÍ¢ÆD4` B}>ÅÇ8‰ò[ÚO­… ~ßóî/‹ßIàïk㙡Î{2c@2ùsFÌLbÝ®¬˜=¨ñ¨ùÖ³ë·Ö¡ýXÂFàùBF¯v›˜ ¢cNÈoX}Ь£ä¬¨OˆÏÏÓ®•JâÀ"àVM3Ã(f6‚}׎ñWªÃ`aK¶co6—¥›âd)ΙY@ å±[q(߉µÛœA[Ô¬j+㯔_-±ÅvU_áJ©an¶ÍŒæŠ¿dþ–gå$í¾ß¥ÜŽ‘ÑÄ«LÓ!òšõÔC®4/Øú‘$r­OpÂæ˜›Ñÿ hý5ØÙ3°Þõ\/W1ÚbMÞ9ü*OY‚9~ÕÅ\ÄøÃ°ç°vS3s¹gwÝ{Gk7ÅõQw䃢Ñçª ¼T’ÌBæ>¯D/û›ùôBtc|{1F·¥èjW¼ê·”T»Ó¼‡|Pnd½‰ƒÀ«‹É¯šúï­f<®u›qvÌŠ¨×*‚q½­m‡'uÁ»†0>BãP^ƒ=¢Ö Ö‡ÙŽ7Vâ§wY1¾æþa X/Îi{jâΈþŒ^u”½2Ì%¯–»½ò´Ù妸)q›ƒ³f…™×üª¯oa^–;쟑O#oÃlY¼ x5kwvÓV ^#´`ó¹ûs¯fÞ[qÝ"Zq#ð|.æ?_¦[Á¯ö1ßÃükîIð«h×~šÿƧ=¸Ù÷7¹q~¶9lFº°¸/Àv7˜‡`¦.BG9l:ÀZÎeüxã¯4s`8F`4ñj ýWª‡<-»üª™KÇÜu'¼ªôõöjË}ç²üVÿ‘ÓÔÃî-ßvéuŸ/#ÿ¸Z¾f¤%kcÿQ{°?F³påÌ,Åš¼¶È hIwc+úu¿4'œL‹i)ðêƒèhžÅCåßÞ·![Y(ãƒiÑ~Ü ª×·= ë/t'^){jŒ'žŽÝòiÆûKéš±Hõ¢J¨Ýž)ÿê kT{q2‡»=ÌÍËDëj“Eé½aô4^¯,f=d!rˆoadT*#Éé·ÉÁÏuøÍªdga…›„Ø c’„5RS©ãà‰”ÄŸðQU×B=&hH0žãUzqŒgH±ªLÖxM ndÓ µ&vÁ~¹ˆ•Á¸\eÑrUû®…éFßû4¬¡¿å-b׫`(£° µý¤·©0“™s¡ü‰uZ»üHÎ`\â˜?ø|M«WãÞ`_õç}êTð®OˆWirÞÛ ë^{ÐMºÛµ¦œ^½¶·-°÷Xu@½cöj^½Vw”úí)h×<{ ìÁTæ;÷мe£âe°ùÊÖŠüMkû œ‚éf9æé>¬±òVW/¬á:À«ùÀ«®èízØJãÍÃh{W© ~å#ÝŒVè)Ìü`¶hþ~s3Â.³S¯ï8NËî@{ÕôŸ‡ÞÜüÒ¨¶)àl¹’Õ»Va„:€_MÂ:î*eŒ»Þêý Z’=`±dØmæFë l¥ò]î$ÞZËù¶àW‹5ãÑÝl~–+#ªôp»p²ÖÏ@;;b—`ôØH`ÈûÀðQ¬#=VÐ¥Ô`þã©Q”µÀÊñ×XSR3Ë&G&»ùA±<$]œŸãÖ¯N˜nž¿ü*Þ.1qmÝ:?À÷Àhoµ6ú5v­Æ~,ù&ÅLÄzQå©­À„Ú°K§q'ô¢~e`*±>ûàÍ«q jÄ· ±;›`óÞŒæõoƒ_}ç–b÷ý~õ—Ûï—Ge+~^ç&øY°ǹ=àWO‚_5”Eæ.w68Œ¨KÁt·#°®¯­\£Þþ†¼yh£J˜•˱¯U¹ZV®+®Ø¥ÕD=èsMa窦÷®žß~Õƒþ«ã°Çøµ`L_F~p™¾^DOöûE¢oÚ.¬‡Û3mY%:ýRe«ÔèTų­ÔJJc…µ2éCNÒñ¬“™…²Rî·_Ò¬†ïîò}|÷â2™,ˆöfÜR#³–•Lå˜þ5N(ÄŒ>Fk/«ï œ2=ÉTjÐnJ£Í’Ó” k­VǨdÇ|éùŒ­J4kInÆBèjíÇ\Æ1dÑ«Ã8¨P©*‘‰äx)ôeÄ|P)±gV£¿;‰v_•XôDkù%SÑ&žQW‰dõ‰1ÞØšÚ\Šç5$Tlóqrcõo¥Ä°ÂkÑUÀ›Å4X/ë¥~žV2•~å æ¾/bo(Ë›!§°¢Þ&޽ÎìµîŒgØ(™?d˜Ñ±*m‡ùJ`<ÃߌgPìZ–œoš5›°^j?Z¢ã1/«Îþ´ë¹7žÖk›j3}‰WÛÙ¶!ã¯T¯/Í,·õɈß7ÿ`—½H_º5cíe2“ŸÉ1ý#'aªeÝϼgÛDÒÎâKàWaæÈÝXé‹ÀÇ’4äÍèêø®M7al.’À«”HWàR-ô¶«y5ºl¥7lÊ.öj{̨Ì+XåxRc¬… ·²÷õ“`û¤šÙ¬Ä·¸Ñ¶¡æ+&ªv‚ÖyVK°õ*ä1v³ùTÔï½ö`¡»üjØd=ßÂj5ßò·Ãü"s#K1C%'Ñ»Ü È³€þû&ÇËå=ôsš„ñœ{X/µ”ªnzœ‡ž_Ì|çSøoÚ9>úøÕ¬ 9˜WøÉîwP7›ÝRÿ–_DívÓ>®[é{úN愬·ç#©ÑãàWñÖ«€Ÿª/:ˆ´gžâÄ|Œhóq:ñ~°µeva÷r‹h®1´ÁMàW#µ—ú—ݳ°Ía4¿öã|÷ž?ŒÓd'øÕõîR?Å<{p·›êºsXCKiÂÚé ~Æô¶C°~æŠVš^ÑÕÊzc0*S飙ƒß’›1~©EöuPÇU£¿}?ðª–oíµöÐ÷`Z›ü·®'fóI÷ªïâG‚ï5^‡¥˜i¦õ ÅE_µš J[™ÓŽgYOàdsÖ*¾óýþVñ¢Œ1³=%¼7ŸÍ(x½éºNG‡[FËZØžÍéŸ^ SƒË£˜?S$ެà I`¬ºö%d/ªm*&“·dÐË/©=–Ê÷Õ¤÷*œ£6U"u`Šc1äy¬@_-æïjAÿ¼F’f£•aÆLr¬æ` r›<~›Óé¿ =àaE‹ÚÜ¥žýPE"žì(›±^¡_K}RqÄ®Úlo<-TÍ'‰—Pÿª#ëb„úWñŒU¯Êx†LZ‰>kzùã™ÍX‡£– ǰg×bkôØEÑ¡XmÉÌüŒ©#9ÞT°€÷;Õ¸÷ûáSÝ"ñ5àWÉf¨Q{Móqʘk‡Õñ=Ð¥-éõrNiVÁlÏÇwÊɇWɯ¢õèuÜÀœÃS•–JØGýè‹›hûÚ:ö«¿_.UÍMÀ+=1^5©æ.9nÔ®üIJí ¹òÿîOZKL`>·¥‘~þ]`Tð*{kNÚEï¶Z ·0¾]kÃ/–“2 ö`*Öp-óa¼jŒÑ%MÌéèòÂSh§ØWÀ:;à™·1^À3òЫ™xÊ:œUExòà•jm–«¯æcµôE¯ÕFh ¨‡ÿª ¡ÞNØQÉvùŸ~U6Ðß~·{³PhêÂ^øÊ^Ù͉ý\¦E–àSgX{~vGoàÁàhCÚƒ‹13G©^ Ž· §q_<ý$걞—ÖÿzxÕ û|öàX· hæÓÏ¥ûî*÷ ü¹ÙóÏû­AU{‡¹ n¬Û»©½yIVÚŸ"ÉØµ­Ð³ÿP_t P¢3ú² okŒý7†zÇZc¢=F¸’ñí%8¯Gë6`ÍÁ[såêàN—ëöƒ_­þ-wÄþj¬®ïýe> xõÖÅü¼Ñ]æÇ˜Íà÷\ÿ´û1Ï<¼z §f2=cúÚ‘Ø'#ñ³ê!—2®lÆyëÑOÁz>Àúƒ³™{þcPä’ªP?ëÏ»º¾³×éÀ¯¶ù³NëÏîsoú6~‚߀|9 ~•Ñøºû$-zÊVb$›£_·±Þ„Öp¨dUë–Üߪ¨öŽTÐg£ê±1Ê>JÐÚJ ¦úÌ×È>{Šùƒ)¼ììK¸ßÉààºh7z‰šÈ_ø\!yKÚ>šCuóœ¤_ýSinÇË4«¸œiFDž¿Òs¡Â|`›EªµÙßÒZèf3T5›è9ì­bQõ…[°¶¦÷[ë¥Î5¢m¤Èœ ªÂ,ÁZÕ|¬ÂØW™v‘=Š~v€%¨õ¼±>ŽúÛÆ*k$˜ Öéͬ-±L¶cT®Â'Ð6jÇxÑÌT Ös!þ{1p.ÑnÂH¨ÞØ®è×®ˆú Ùua›|¼ê*‹Üoæ;™Y…'üÌj++Ñ‚®É%`QÅŒ&˜¼z xÕ#82ñìß`6 ™«u7UmNÊW±‡)ÑóÀ«™AKìÆáÀ«Áîzw‡^½è×ú5Á_FíÁ‰n•ïæ[™g©‡\#zÂ^€÷ÎɦŠÑÊ<ê¥Ú%û€ÓÓ0®í©ñ¬¾ð6­Ø 'Ämõu¢QSZ#öª`—Ëq7ƒ_-#^õºäeùÍõUã¾ðGäIÙ®µÄMñÓÍêõMƒ=xüj±9ê~¿šñì&ÿ1•°³©¹‘DlËšÚÀ—ñ&*ëîF{gâÍ×ÉOA¾KÇÔEŽxÕ¶êê—àçPÿêë^½~5žöà‘]žÏ‰¨Šï~ñÑçhjå´[%bŠyc7o^H½ÎL™Ž·?Áú8Xÿ1SsŸ7Æ ¦÷ƒê ÒüÁ¢¹³/ƒ=ØÑ·å>Ÿ'}ƒÙÑÁôרſüJ­Àr¬„fª4Â|~F†“Œ~ÍÄÙTN’OÏIï÷kð;¡†•âJ#ÔÓ]L­¦0¾eLÃJïõºÓb«FŸ|:ã’Kš‹3Ȥ÷=—ˆ“L;¯mÌ*´áþ­ï\KªÆX—ùÂÂûÁ4~#™˜¦okÄç(f]H{0)–õ˜D^§½¬I;VŸÆ}ÅÇr$³è[Ó~½E5ä¹ÄÎÞ`Z×ñþNï5þ#¿3^½ ÖÞÏ81ßáx¾ˆÝ QÛ™ô·w5Y¦7sŠ[€­våH¼fkšª±xÑ[°Câh&±6÷̸FÌn’*æ pC±þ~ì™þ¼ÔüÁ©vë&ÉP Cc»Ûj«×co²ÅdÄ/Ã9%Û‰“ŸI;[Æ2¾†é9 ¼Ò3¥¯ù¯-ŽÔ#^Æ×Ðì ƒ(WÉLeöU)¬õtÂ*Y„žÍ3™³Uß¼{°³é€u>\ò³è"´¯lÜl»Ü7…X1oŠê¿Œ5¡J–—ÊÓÅz˜ÍèY²™…'ÃÙ(ÍÌŒ˜fƶçŽRÕ„Bz8´žWwyLªÛõæ üæCÙýÈÕq{WC%ÛÁ˜ÊYõÄšvÇØhÂwA#—eô–åQÿ«k€~]ñüÂåú°I{a~ïqoøN~ºŸ^œŽüàr|ÝHôêù#rÈö£¾Kœq&½ÌG{`Ý”²fÌ,¼ïü­Z6í˜ïÜ›ë¿ ³5}Wv³HöÛw¢Cé9*wÅð* HÞ;ION}`½æ…:-šûTWÂúÎÅšÆyvǬ*=§®WX¹=‘Ì*‹¾ôªD“OÍ|™ô %r—· ž¤½ÊéO¥–E¿U¨÷žN¿rb,+3æ_R_S‘T#{J¥E˜DN**'SC&UBEä*Ô“) þTãíY*;‡ÚÍy[jÿ¿^_.£À’ɵ2°FÃÑ0Nµhœ Ï¡6a6uïwáhMK´¹|‡s¤ñùRùg÷û|öqì„¥°Uðð¬Ls1u]J€iY[Pk|xSÜLï6ËYðžæls3Ѽá bój|æ+ì!EÑ}XUâÑñî(ãíê½W•yv®modí›`íí´ÍŒÞ&¼g~Ã|m&^ý(—ÁœÈÃZæ¢È6ž÷•—˜lãH†Ñ¾~öÑÂl‘®ç9òVp=Q¥uè×Ê ™möc”š¯Þ þ±𯬫×ÖüÅ*'-Mo;Ó>\nKp3Öá!Æ%LÂ~üª)VÛLÙ*x¥§Ø <¿Ì€Û1¶¼„õGb½4dDa1þíÉ|œõ@£¶òˆÜýÜc·ÓîµM_ö`%¾µÒý‹ñ’ˆzˆþÄ:U~Õ;¢]LŸAu1&#ŽU©\õÆcœ‡‚÷bu‰ZxÏÆãŸ¦žL=™ý=çæ €d=]šäf¸½²ß¬taÇÞüj¶š%q—¸[}?àÕ“²x•}Ý–b†&ÉD5ãñæþxò&p·ºÔÅ×èÇž?ÍͿ釖íÕ:ÎhϬ1}ï5Á^—âî¿ÚÄúƒÿ…m¶^ÕÕ|¥ÿݯö‡ÁÄvÐ5Å/¤¿}§›ê»OÁ¯VšcîŸà1ôµPé éeUÝ\㯚€­µf~Ápê¯6»TßæQâÕdz³Î ]6ãÛï÷Þ7ò}ý Ö£Ïõ+ýÏàW=äq÷ 8ít¿Ïù6¢¤¹½i¼[‚èó¶[L¿}ì²fÄæØïWðî¤*ÖuwœÈJ1³ª/š‹9ˆ¶èοxõ6õ1G«`{¶bDøR,ˆ§ Öc·š98IŒ“ÃÚ5¨ ÿ+#RðÛá8§{Ð&Ë"¢$‘·¤k%TKO¦ÞC¬×“L‹´€Ÿ©.ƒè_BŸ[C®ûîìoœäµM>*›uæ}¬ùd{ôcW×írÇTqÀúæþ» §È:—`OÁÜD}Ñ â•ú¯4ßyÞß„žGÁ°&0*K륎¾vª«Õ þöÃø¤Æ3|€³­–æ Eÿ úºÉA¹ƒñíãè¿zЬqÛüPsð£¹Ál‹áòƒ}ðÎ=öÏHRôUÛ‰1AcM53+Vݰã&¢÷}¥ÌHS¿`UÓ+UýJ+d öëFÖwn€?o îsYnO0¼«xuÜÿîVcF¾ð½ü9¿Ñ?n§äºq~žyÒLv¯‡=X_¦¯Ä=޾•£÷O˜þV#®ÆØæ‰Æªk¿”ÙŽ¡wd ÖÔ`MêË,”óA=W~ÕYöyë ýp¯5ìÏ»Úxë§Õ¯vïø¶~‚_>œ‰œsÙ>?¢1¨·ËÏàíuÆpVnCZAªIz%õ’èǺ—¹ü©dÏ¢÷ÊJ˜á?“ûk¡û{$9ú’-Ã'S¿}4£½Áâ¿›õ¼®GŸŠ1&Íж£¼NkµnÁþŽÙ;ˆ™×¸Škƒû]ºÛ~µJÁ|ÑÿíÖ‚µŸö=ýy¿Õ? äß N7ÏMó Ì£ÌÇ™{ð8úà•q‡Yá½/ó/ÂêY‚]W„UÜŒ•uä/ÅϘ“^X¡7bü.–,‘oƒ|W˨.Ë.ÿ§kŠwh\èï®öàY×­}Ƚë»ûià]õ«é3"ª9|9aµ.¶êÉÜ‚óHow5†CµàÊ“4 óq\úqßêúhG<‰†ÏÆwÆÑS³£øqt1a¤,f=/å=¥W0?:Šë¿XÎc1?% Ï»”Õi2©Pÿ ™OÞ´V^Ä„Ñë©Dd 뺫ï;¬S¯¬*‹ïMg}çêü']ÄjÏ+ëB¥äDò²4ÆS$PO&ƒXæ æÅ"˜¡KíœÔØM` õ÷ªÄâßëM¤ã˜S#–u£6_>íAÅϦžLMbE®„Ú¨‰ìoí­ª|o®T‹ùÛSh«¦Ó&íƒ{#F½:ùc%NÉöÏÆØuç¤+mÆe8a^¿ÒÏ<Ïšk¼©x T†™ÊX¬‹J}i³k|ûÇ’F~¥2ç°z‘]NÄY¸§¡b—*9½##ÈÙ¶âÜŒùPŽÔ@.°7™>< î²ù¶®½Ç*þ܈Sm»Í3Z¯ñ¼õqÙKßT¾)·ãWʱkš¡‘W­Æ0$Êæ[I¢ÍxgSøU6öuwôõQ²ì|´m9Ö÷üNO¯ã2Ë<k%uÌóÁï¶'¸\màU±i̧âM¡©c—¯ZSñw UFUOû¸³‰‘Nƒ±ÚRŒª‹¨&üVim¦‡áÏjI5Ä* £E5þJU(HúûÆãEð«]!øÕ+x[sSË׿ºŸÜêΙÿÊ]ÕøO‹Ý×íö2x¥õwc6Ž£µZebFk<«·¼,]¨T;ï>^Ø™•+¯ =8+(Ú¨þÕt7ÙÝ¼Ú ð}KðƒÙfnŽ»l«¿ofŽÊû[¤jôÛ½©m¶›ÆŒÙ胺,³.ž~ù•æV¶.ª'·/öòÚ®«€¥ y¶*Ø ¼ÚLÃx $¿úËmR5H_áÿò[ü}@ƒ=° ռŒK`à‰àÛÆ4ƧÆK‚Id'y&ÙŽ³‡M+êõiÎñsØ)¥À¼+0B›Éµb‡3 ŸPÍ¥]ÒÆ,Íõ(‹Ù€¡BZ)þ¬L®»U÷í ^sØsOŒÄÓ@Œ´dip·ËuwbD—ÉPÿðÊúX ß”¸½þà°HC}ÑcfªÛâæù#àWõa㿼:‚wU`–v›RX§Ù… ͣƛ›R¤)ø§žFÃ1‡©ë>­\(g‚Ú.ßhžÔ>âëûÀ¥Vr–ú¢ß»îÔC>åÛø9~F*ô·×ˆh ÃMòGä]àU6ð£æ7‚¶hVæp¬è«Ð_Ÿ‰Yx‹2Ù8•ôV¢‚>dÍw€u/l{í'Ñ‹y§?JVørßžÜe±ô vD‡Ò“TŒs|-ÚŸN¦ÒY´Êcïîæ€[+kJÇ ,’¯;‘Ìü[Ö6çÉŸD{*™>¨$ú-Cýöº¼ó ëÕkÄ`¨ã AB%¿dê¥æÄâ¦ò©(ò«tÚh)Œ‹Èd¥’ ò O,ªBD‰‹ùÍmÀšD²ðç°Nth«ª²#^åð(Œ†ãÅ2hÖ¦¥šÂo¦2<ñ«)ŒÄVö¿pߨ²8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run002/bold_events.tsv000066400000000000000000000002461323370031300255570ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 face 52.5 22.5 cat 87.5 22.5 shoe 122.5 22.5 chair 157.5 22.5 scissors 195.0 22.5 bottle 230.0 22.5 house 265.0 22.5 scrambledpix pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run002/bold_moest.txt000066400000000000000000000214441323370031300254100ustar00rootroot00000000000000-0.000784206 -0.00079735 0.00177897 0.0922701 -0.0341315 -0.0201406 -0.00120312 -0.00142008 0.00239344 0.0794528 -0.0340466 0.00395178 -0.00152567 -0.000740694 0.00131409 0.0552937 -0.0271656 -0.017701 -0.00200769 -0.000773298 0.00241129 0.104358 -0.0149976 0.0152206 -0.000798601 -0.00122004 0.00235196 0.114476 -0.0340132 -0.0147602 -0.000955468 -0.00056906 0.00136402 0.0633202 -0.0166666 -0.0148379 -0.000352793 -0.00013312 0.000932806 0.0549976 -0.0265898 -0.0148841 -0.000722167 -0.000930773 0.00195802 0.0697773 -0.0226659 -0.0063727 -0.000783499 -0.000598313 0.00194395 0.056041 -0.0339711 -0.0134316 0.000293519 -0.00155753 0.00277306 0.0629011 -0.0358825 0.00212307 -0.000451164 -0.00108564 0.00214349 0.0651716 -0.0339556 -0.0145191 2.31803e-05 -0.000669978 0.00231401 0.058724 -0.0242282 -0.00650566 0.000184563 -0.000361666 0.00202048 0.0582261 -0.0339688 -0.0153018 0.000186323 0.000542384 4.27217e-05 0.0632844 -0.0343143 -0.00356481 -0.000481949 -0.00049839 0.00165809 0.052692 -0.034059 -0.00177858 -0.000727721 -0.000619003 0.00137887 0.066205 -0.0341098 -0.00231387 -0.000355664 -0.00119069 0.00243314 0.0460267 -0.0298807 -0.00720063 -0.000780047 -0.00100082 0.00165966 0.0356836 -0.0340798 0.00485205 -0.000721333 0.000629682 0.000169682 0.0623989 -0.0343803 0.00725128 -0.000898455 -0.000106635 0.00165088 0.0417703 -0.0283862 0.0209015 6.84224e-05 -0.000957493 0.00243599 0.0507188 -0.053774 -0.00187159 -0.000311289 -4.79998e-05 0.0012103 0.0547318 -0.0512518 0.00207778 -0.000690717 -0.000843595 0.00192295 0.0765367 -0.0538591 -0.000273015 8.6666e-05 -0.000843595 0.00192295 0.0546643 -0.0429841 0.00573705 8.6666e-05 -0.000635393 0.00150073 0.0381977 -0.0441682 -0.00349842 -0.000577677 -0.0001249 0.000632744 0.0590979 -0.0333224 0.00206241 -0.000925337 -0.000843595 0.00182865 0.0531996 -0.0394453 0.00397095 -0.000983495 -0.000693577 0.0022854 0.0573594 -0.044592 0.00383257 -0.00084673 -0.000966178 0.00184225 0.05962 -0.0351196 0.00495231 -0.00084673 -0.0016088 0.00124637 0.0564919 -0.0372921 0.00996205 -0.000729322 -0.00136321 0.00183112 0.0781086 -0.0172639 0.0211221 -0.00084673 -0.00058898 0.00194095 0.0551507 -0.0302524 0.000361905 -0.000575554 -0.000141026 0.000871979 0.0491666 -0.0393224 0.0147897 -0.00084673 -0.000309045 0.000939721 0.0673426 -0.0174072 0.021433 -0.000755194 -9.70453e-05 0.00104718 0.0756217 -0.0339874 0.019292 -0.00138096 -0.000721694 0.00140456 0.0622594 -0.0199884 0.0128634 -0.000341321 -0.00058898 0.00203427 0.075616 -0.0172402 0.0130566 -2.23309e-05 -0.00058898 0.00186795 0.0363046 -0.0565554 0.00560484 -0.000427063 -0.00058898 0.00153747 0.0501269 -0.0457316 0.0044398 -0.000748194 0.00011476 0.000939721 0.035192 -0.0467707 0.00247005 -0.000799481 0.00011476 0.000939721 0.0518082 -0.0469569 0.0052626 -0.00130239 -0.000416567 0.00118237 0.056609 -0.0312459 0.0128579 -0.000799481 -0.00073774 0.00134861 0.0409063 -0.0341547 0.0129336 -0.00121121 -0.000579012 0.000858602 0.0493921 -0.0313446 0.0128941 -0.000746694 5.89038e-06 0.000524893 0.0588819 -0.000498365 -0.00185251 -0.000958436 0.000319757 0.000317774 0.0455985 -0.0442643 0.0122033 -0.000573959 -0.00100119 0.00127498 0.0755793 -0.0441085 0.0137883 -0.000705154 -0.000844323 0.000777182 0.0600799 -0.0351585 0.00330543 -0.00146379 -0.000844323 0.0013738 0.0483054 -0.0441045 0.00454175 -0.000816127 0.000212698 0.000379746 0.0756481 -0.0442633 0.00430653 -0.00107888 -4.92414e-05 0.00107502 0.0726596 -0.0441595 0.015189 -0.00119617 -0.000127967 0.00158793 0.0397924 -0.06654 -0.0132749 -0.00105737 -0.000844323 0.0020082 0.06339 -0.0680098 -0.00224535 -0.00104869 -0.000549882 0.00185116 0.0698585 -0.044054 -0.00383225 -0.00129055 -0.000276211 0.000724666 0.0756223 -0.0442125 0.0020257 -0.000324566 0.000321054 0.000849558 0.0308135 -0.0579768 0.00825889 -0.000324566 0.000333722 0.000724666 0.0518206 -0.0630487 0.00509437 -0.000893417 -0.000454322 0.0019206 0.046558 -0.0696202 0.00559134 -0.000692146 0.000111201 0.00121918 0.0300492 -0.0489789 0.00709597 -0.000702994 -0.00027621 0.000340683 0.0758452 -0.0442686 0.0158213 -0.000436383 0.000865676 -0.000400398 0.0561523 -0.0443702 0.00624427 -0.000633939 0.000689526 -0.000330468 0.0330826 -0.0443532 0.00525048 -0.000956269 0.000205598 0.000370147 0.0396182 -0.0555793 0.00281353 -0.00102043 0.000605351 0.000193179 0.0461233 -0.041503 -0.00100441 -0.000820952 0.000689526 0.000621978 0.0517893 -0.0480778 0.0171022 2.6634e-05 0.000484396 0.000742397 0.0419017 -0.0500701 0.0165278 -0.000199202 9.37931e-05 0.000788198 0.0372052 -0.0307377 0.0110421 -0.00126642 0.000469041 -0.000330468 0.0618761 -0.0194347 -0.00793827 -0.00201982 0.000218732 0.000753669 0.0312289 -0.0275423 0.0188194 -0.00180706 0.000196072 0.00100996 0.021433 -0.0314039 0.01207 -0.000147016 0.000275323 0.00047322 0.0441484 -0.0192738 0.0154964 -0.00165904 -0.00034853 0.000624059 0.0277426 -0.0466928 0.0248692 -0.00140732 -0.00034853 0.000518457 0.0245104 -0.0193004 0.034576 -0.00120692 -0.000365625 0.000444329 0.0272648 -0.0218798 0.017217 -0.0015892 -5.54668e-05 -0.000330468 0.0361146 -0.0194624 0.0248053 -0.00133871 -0.000314114 -0.000330468 0.0383497 -0.0194544 0.0296777 -0.00165683 0.000489209 -0.000730517 0.0341116 -0.0291267 0.00702 -0.00157798 -0.000263714 8.12317e-05 0.0358602 -0.0255391 0.0224955 -0.00177466 0.000155751 -7.10991e-05 0.0196128 -0.0288044 0.0133628 -0.00207266 0.000301965 -0.000441609 0.0323177 -0.0315598 0.0275841 -0.00173166 0.000155751 -2.66569e-05 0.0117482 -0.0239966 0.0279221 -0.0013032 0.000347887 6.18187e-05 0.0358544 -0.0288134 0.0147506 -0.00146987 0.000155751 -9.53302e-05 0.025858 -0.0140962 0.0291399 -0.0012775 0.000673551 -0.000650495 0.0358541 -0.0141727 0.0287692 -0.00212893 0.000645371 -0.000730517 0.0358664 -0.0142094 0.0277909 -0.00214925 0.000202277 -0.000379401 0.015855 -0.0141542 0.0295761 -0.00164028 0.000597137 -0.000373176 0.0159698 -0.0285772 0.020481 -0.00258078 -0.000620246 0.000213107 0.0528932 -0.0141051 0.0337225 -0.000600718 0.000314608 -0.000730517 0.0529098 -0.0141805 0.0388443 -0.00121426 0.000615249 -0.000164316 0.00995145 -0.0231005 0.0264815 -0.00242711 0.000368102 -0.000341125 0.0312692 -0.0141681 0.0139371 -0.00195527 0.00028362 -0.000287595 0.0331495 -0.0141549 0.0387737 -0.00204071 -0.000134155 -0.000465527 0.0381442 -0.0141833 0.0170171 -0.000705891 0.000416856 -6.94309e-05 0.00480811 -0.0293033 0.0306457 -0.00133317 -0.000134155 -0.000101238 0.0436844 -0.025206 0.0121888 -0.00151506 0.000568653 -0.00132098 0.0841035 -0.0143145 0.0257278 -0.00174501 0.00127516 -0.00132098 0.0312003 -0.0191233 0.0231781 -0.00121844 0.00114643 -0.00132098 0.0204716 -0.0292628 0.0299984 -0.00260279 0.00121914 -0.00041618 0.0130021 -0.0285542 0.0372641 -0.00227871 0.0015094 -0.00132098 0.00787172 -0.0413409 0.0547097 -0.00234707 0.00102387 -0.00132098 0.03034 -0.0284077 0.0547923 -0.00185578 0.00181851 -0.00177746 0.0435879 -0.0291456 0.0464409 -0.00257952 0.00103525 -0.00186613 0.0742574 -0.0144878 0.0358836 -0.00234707 0.00113503 -0.00193049 0.051466 -0.0144535 0.0508061 -0.00139868 0.000771579 -0.00186124 0.070555 -0.0313278 0.0482166 -0.00160374 0.00136167 -0.00270125 0.0847389 -0.0436937 0.0298685 -0.000828936 0.000259794 -0.0021457 0.071907 -0.0145461 0.0481651 -0.00156838 0.000462076 -0.00162711 0.0718869 -0.0145613 0.0410887 -0.00202592 0.000259794 -0.00174577 0.0739037 -0.0332481 0.0274048 -0.00195427 0.000776147 -0.00206003 0.033477 -0.0233214 0.0598411 -0.00166221 0.000259794 -0.00203912 0.0676585 -0.0145375 0.0418992 -0.00235886 0.00105585 -0.00255864 0.0953514 -0.0145525 0.0444948 -0.0016808 0.00105585 -0.0026495 0.0670617 -0.0145105 0.0385088 -0.0016808 0.00105585 -0.00177468 0.0108574 -0.0144305 0.0613594 -0.00293596 0.000686656 -0.00214738 0.0813392 -0.0145905 0.0443357 -0.00176672 0.00188428 -0.0025317 0.0304266 -0.0325558 0.0570639 -0.00222221 0.00105585 -0.00199508 0.0551312 -0.0145679 0.0394464 -0.00257762 0.000606804 -0.00316803 0.0631738 -0.0145361 0.0357367 -0.00204382 0.000484268 -0.00193398 0.0821216 -0.0200445 0.0394514 -0.0020835 0.00103402 -0.0025945 0.024549 0.00852673 0.0169842 -0.00198334 0.00103402 -0.00275186 0.0227881 0.0118795 0.0346969 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run003/000077500000000000000000000000001323370031300225145ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run003/bold_1slice.nii.gz000066400000000000000000003207741323370031300260310ustar00rootroot00000000000000‹Ľ|I×í}ª«öÞÕ¸ûà2¸www‡àËàîîîîîîîîîwÜçÍ@&<„ù¾¹oç ádŸªêªõ_«-U•'[+ñüî‰àQžŽøô~|¿O¿¿{l­W/N§Å>cçüþuËòà59þóE0ϳxù{·üeЦK‘*(íúÿ¶ýÕÿÛ¦C‡ZæöôµÃûoôcÛÿ¼Îïû~›·OÞ—ÿß×|÷½[³¤©ÿÿml·ùž»žþ_õ´T¿iÿ}‹¡>ªšÎ '¶N g©¨²Ä“Ä©ì¸N=ç–"µæ—ª½ñl×L.ªG…(UÔ uQgœ nƘº¦žêdpBüR;š·Ô“™q…ÏÑ “j©¬:õ¡ò¦¼ifî™åΪ UÚ©+6/è§l´–žQ9ÎMY)«YB‹è#u¡"Ô†ú™¦Ù„zEu[ÝÃä£w4–&¡^~B½( ?¢ß¸/•â\–^š¼T‡"PçgÕ¾xzQbšbŠÇùx,E¦ôt×Ô¢Ít‹ òa:Iñù"U§C´šJRjñ'£øÑKw¨u§3èÕ}3rÑ4ÊÌGx"·âŒ<‹ÞÒü_tV×eèw+uèµâ©0Îoœÿ ‡&’¢[¦6õ¥û´ŒÛbOoá‰ÏÒSry-¤9´†ÑSZ? ¤ÚX5BW ½ÄÜ“ÒÑu:J(U¡ôÚRsUYÏõ8;O m4š&Sa²ó)¶ù{µ#ž‚zŽéH_i׿°’Wc”¦R>ÎÕx:ç’÷Tƒñ%^ÇY8-Ú·’ÖÓ8ºwk¢ã8Ô›ë´2]) %å­|·§+”›_saI)³$¹} ÕdWYÎ#9 §ç5Ü_q)>e˜öËcåPF*KIxoG;öPd¾ÂiÅÊþ*Åmm;ÏÞ¶Où,ז䲂3±ïçµ|ˆÿät”“æ¨ÕßU¬ä„ÀˆoÇØWç-hßgr¥Ž,ˆì#3íŸ6¼{Ò†pëË9./eñ%8Oã¼òvjI‹ô ïê21ñšã˜ ͸8´p‚Œ—þÒ˜»J4w…MnCÛ°îy9À¥ˆÝÏãy7à异OógnÄÃÌ,ÿZŽZ£VQxì¹óÔ„ïQ%ÊΉeüacÚä²[†Øb6¸MaߨNv¡¼L¶œõöu(ïâ2„£3qoÓÆ¿ÞdõÆyD)øí¤òÁÌ£QÚØç6·]'!ìÅ]g×ÛHnl{NŽÚa¶žä·{é55çÉXEK(¹Ùa~ó_{Õ~•êRºHM¹-ÖD} ëæ·“lY{S"Ù^ö ýd Ù öZ[Ïîµ"‘\©JÑ02 (Õæ½TÔÎQcu7¬ð¶4’JPT:!Åݶ©,“ƒRÎ:î8[Ãæ·åÜ‘6\°ä–äÄÿÄÀJºm&Ócó€"r,3îëîßܦz¬zàÿÕeO[ùò#¡:§:ý»Þª¼º´Ø“ÍiåÄp|S*¤:ókåÔV½Ö”§üЄ¦ V:¶SGE2šŒºžéäs~­eÌMjDŸM_²<“™¸ÔLe?ÚP5“Ó”0GMogw*=SÇ”¹•·m[Lo¨g„J1+ Ÿo©1¨ÒŒ&˜¯º¦ JÅæº¿ }JCh)M¡8˜çRTv¹ ϦŒŒ+ƒ9©+E¤Ä?åG2Õ€’Ó*“”br6îCq)½EõÓhgfctg/Ú¸‰–Pnʯ ýd=‰<˜óƒé,u¤×f•Á,/Î{x×åÜ<>M‡É»fï¢ÿƒM=uôµXår¢büÇP<¬¡q³¿˜ù€Öñ`jEsøŽÌHóGpa%ÍGkŸ¡/]uØ@Z¹PuÔµè…ãQT“.ƒæ•À†ÊàÓêF™Íuê×–KòRPsÞ§ §$TšrÂ3ž²z˜ù“¨P=´"8o¦ªÔŸÒñîÂóù¾Óê•—Aé3ñôz­Bû®¦#ÿ[œ)¦ å¡L¼ƒ7@ ï€ÀÛ¨äê’NæKV¨@nÙÎU¥¤¬á¾œTÚ ~¼à ¼Ð4qô8ª2S-J ߇VìEË6q6ùŠ·µl}{ü¸Í¹¾$“}Ø3‰ðÎ'øáÈp`«àz¾­×ĉ„Y°ãV”÷r~Oñ¤™l“Øœ]æÚÉ6º{ÎÆw+Éyn.¾rš‹rBã=ß½.a.nУ¾«7Öøâ5×1¯ÊrMÌà×¼ZÉLiË=%»Óf²¿£Þ69Åä¢=*O‚[XºÞǘtäEf­8j¡ÚJa8)ߤj|ˆZcMä”72ÒFµ¹eøQÎ;zö«íg'ÉWð¨’Ý þ‰ž„“iœ„ãr SÚ¿ÞxõÑyOYø%m ä.oÇ’ÖãV´$²]g£ºKÁëÆ²gåœío{IM{^Q#^Éxe7gÍeÿþîU÷uj‚l n¾¯¾Äp ÙY¶¢} ~L¶;ì}[ÏŽ·Ú^—vµýÀ!Üçäv²üR;S›SÔúןBrÚ ~ÔQ©ufÌ‚ú&›©m–˜UÎÁ Uº®v«\æVÞ$hÑj¸”âœù£Œ™H³‘"ZÂ'¶£!&´ib¡^Wðp¤©CáÈ×Ð\èë+¸å¸p„Ùà|ò±*@Ë¢PÚŸò#²jµXc@y‘?2ƒÁ@Î]ôœÊÀÏ€¯;­ÞG©(UÕ¥~2ŠO5HZMi]C„†a†O‡æ,äÁ\J:Ž„wÒB$ƒFn¢¦›zþƒZï=˜ÿc4ŠB!vÅê{IS±|i7dËW°n_Ó äi óÚfjë7T›¦zêÂxǘàG]¼î(U„^·D?™{QsIG“ÝÜ’ ó ä£E4Š!dB: ,Ü÷¤×Ó°?Òn̉±Î—"ñ …êÌ?–A7Ãr'~Ëy#%#Fr7y3’‡Ãp=Ϲ Þ`g¤éƒÄ ¯?Ç-øöß* U¾/–ŒpªYä(ןËðŽÁ83†Ö‡”¦<y8a€ý͉ˆôQ’Cw/óÞ/{üH(ø¥t¶¾ö,øAPú†’Y6XIø>¾‚"Ñ4¨ýßUlá„…Z­¡ÛTŒÏc¦\£¨ÒCÖH:.(«?b¹—¡§õe?òB#9„L‘$ '/ø8úÞ‘žê?ð£2(tŒ¶Bñ{ñzÌË@ɡҕ‡J|wøÃÆs!L?ö¡SAÊ•Püw”¹fþô¯•D­Së)çÂŒ*ɧ©\TùnˆM Æ-²å¡Ó™áñûÚñ_Õ³Ëò†"Æ–qœ é±½iæ_o«zâx#Þù%œÆ"Ž+=­¸•ìì‰% Éh»‰e/Ès;ÄÖ–v }¡–¼óçO*nΛ`þkï¤:­³PyìUȤ„Ü Œ,k—Ú’H/¤¿ÝlOÙ†v.xwMzÛÑÖƒ1(*0âq¸Îjüˆr›¿êЃàøÚa]æÂ*_-YÝ‹¶ì”ÛRÌFp; yüïdrÛFòÞÞÂ{$‘Fö3 ¢'f0Ôáæ|v3æëîßÜz´:ëÿÕSO1•æò#®Ú¬ú:Ï´šõBåõO=œØNp'™s©æÆÏK|³½ö,ÑãMEª†ì}ÈלÎÎõI71IuV½Ò‰éLøÿ}ËkNS'zgz"!4¤e&ÕPVǤPš4¦ˆ™mæ8[ƒTé¦: Jšwt~²&m*äàÜÐ¥Zf4ê=ÖV)ø³&Œikž¡^Ýù£9p­?ÞÓc)Ö`jžý Æ ‘?ŠARSñŸò#ø‘|ŒE.œ÷8ð#5}19 ð—Á¢HáàÿÀ;M„êÖÔù2ŠÏœñôp*ô f,U€jæà5p{ ±æ@ý/Ð]"Vü”še©õÚª¤N ÆC)È(Òôùc,}¦)<ê?•›ÀåŸB­ðøsÒ|èùiSW¤•£ÕH]ü‹õ]ná£*Xé 'öIe¶kìâ¦\Yá!”röK$Jƒt˜-~œðdÕË?^Pd–´ažL‚ŠC?ñCŽ ¿ü”Ïð¤‚|Îa;>¿À'7×Iãêq:PŒÃa_åJðýñúÜl¤´”“åRÂ~‘T²–+KaÙÈ}xr W `WªòSÎ$Ðãg*8òSEÊŠüqZ’ìåÜGvò hT!»Ë>²Ÿù—À÷6 Ä„¢ž`+S9,e %êb~|4•hüN Áz^ZÊÉÈd±fºÇ¬qÊEä™ rŒKp|¼ó{þÌë0žƒè¬þ]½É¦WáËð'e±Ã#U —©2d(±Ýu6žÅæ^–³ÜYòÚ3p3óFóYŒi iÃçÍdÿZYÕ2µ þ'7?£J¼{!+ç• 2ʳ>²W–ÙR6¡ÍooÚv”¼’¢¶£]„¾ŽF"‹&³@ÿÓ4Â4ñ¯7A½s>`ÎÞÝ"Ktx§MLÒ܆r‹Ûõ’½ íN´ûl\7©=!‘šK)»‡"qy^Í¥ye„¿Ôþko›Ú¡sSqø‹CàÓpð#¶›Í®´U¬c÷Ii{ÝžÓÚÈö´Tñ¸5¥&VuXn‚ Üc˜ÏnWtw“„:C¡ RdZ(©Ý[¶¤l–{Ò IÐ×6uû¸m>·¯m)¯íky+¿K›ÑÓ >ì%âxߌàÿ»m™'¼ºãÿÕU¯JñùLPý­séOÎ? -÷r9átÎI%êÂ/U{èY£çšòP«´àG0ùc Š`|MDGorâ9±©%zCI{ÓSjF‹ÌïTYEÓi©65L13Ù,tö©Ò)p2³ù ³ •fC—‹°÷M>³zw“Úá7CªaÓÀœ B½ÒàÇ(hÍ}"-‡“D# Jï))O¦xPåbôÂd&æBþH úR\:hR ÁAòΆüöÉÔƒÆ?Æ :Ϭù ”q)Þ£åÖ~2Š‘õx(r^úýìFÍl}.ÆJÃÕÙ-| &ƒÎ¿DX@]LGõéµâ¨ÄNrôl2%Ç^5hzÐ,Ô_†LXο-‡ãýH4šb,‡‚swè¼)¡ïRm²š ›@ 4RVôï4ƽœáÐ܃’š=:<ô¹,çD’x ^NÅ;|1©© ÔàïÕNyòèͦ;ôt87ã4àØdª˜´5œ÷#Ž}໼½ÎÎ;hÆr Ø‘Ëë´N@w4×én¡E y?2KN8é^H,y çÕ‘8–HûF’"'øJÙæwÞ'òÇVÒ‚G™ú& 1ƒ9‘(?ÚžжU6`fädâ‘ëüVÚ:ö–}lòu®ŠL²z…O‚&áô£bOÏV¾«ØÈ I%àÇo/òL)~I ¥…Ì“D\HÖÙ)6¾{üh!û¸=x·J‘§£uïx._ÂLÝ l5…¸*(yõêq\¤Šå2I:JOp$¦»Ð¦µ¡mD÷6á8°s3òë4¼n.ØõˆãKGÞlÆú×Ê 6¨‹èi>~€j;à]šri9,Óì{ŒÙuÙhKØH6}hûØnÙV¶ìÞÌ=yòÇ(þo‚*_¨^;!@ýgpÉä¼ÙEO8²ÌµÞsË‘?¦ÚßÜÍv­ãÆ·Ûä&ÒW0i…梘ç™xe6kÌ;ÿþ>P»‘|3Â{î ™)t[¸¥í,äWòXzØ`î$ÂÅ6œ=‡œ0×Þ`qËHCÌ•\þnVâ_üØ¥†éÆàG8´ôäÒ9ëîµÅd…Ü‘¦6ÛÑvt»wl2·‡m&Æ}f&“’ö-´æ¦ùƒ¨Ÿ3˜I?Xwÿæ¶È\Ýöÿê³§£JòùU½V81t>RÏð£Ð O'‡É)ìQáÔ©_ªöѳRÏ45 ï™i¥yã„Ðéœê«®kâè*zÑIÿKí¬iŽ@5’ÁkèÂj«¼Ú{VºˆIm²™éfr_ÝWçUns+eÕƒŸƒ«ÌI>TÑxϨÞÇ(EM¨›y¤[éøU]=XÏ2­¡Ï#¡¥s‘®Rw$ÝМÊ‹¿@±_› Ô–¢QöŸò#º@ñi»IFq !}éw¤å¦ÈtZ¸84ÜYk¼Ïl*L•tÉŸŒb=äiŠ”pºÐS3­YCÅy;ƒßLüáá]tªý†öÒ2jlš©ÀŽ6y·¤*Ÿ“é¢ED»Æ#¼3íAÌ÷´ƒkQyZÍm¶NAÃCƒ"#i*¢}¦¤,»Pãu0+¤"tm¨ÎuA’ÿ„d•ÂÔ!¡~M@¹õô {¦U¦`”¾1e ü8ìɯ÷#¼¤N\ƒ£#,¡Æ4„ Açjñ,fQ\jü”7€É?vÁÍ.F¿r1ܹ Þ"§ŸéLù(#/¼ç§û¡­%8”4“â2]@ ÊVn.…dÿÇž‰‚"­x®ij¢Ø/ì8è] xŠéÈ~硉Á¥´ò‘¯p0;È6´Çí[û ,è$ÉA¤ôœÿ¾Å/ÐÞøTŽF«³ßU¬è|5¥0ƒ_RAÞ͹0ËâH#Y/ ÔÇìlÙ½j ü8†zå(æb ^Æ!Á«5èû:¬Û|Wo½)‚^¾¢ÃÈí0”l”Å2QÚñ$‰ƒüñ»f£¸çQo4q?‚2W€ÞïAR‰%½øœéá_+®Z®nR ŒÈcªÅûh0å”â±ãl›VNÊ,ÛÄ~–,ö®üá‚&Õì ôb*2ˆ‘%œˆ‰‡˜zþõ†©—ÎGò÷¶¡—! ¶Ó9¡´³âæ´ %9r‚ëN?ºÑíyc{Ù¾âkb&ÕGÚ,Î#X·›˜þkïòG*м2yuv0ŠU%³[uÊÙ;à[{ûÑ^ÕæX5ÅÞùÈQݺRüˆËu‘?bÿù†}tã×ÙŽbQX26£»Õö”ÙrZªØ¯¶›måvÇþëv·e$4øqû8…£ÁNoÌ}ú³™©?Xwÿæ¶Òî›ã ¯=MÿñõW±ÔiÕˉ¨Óéßõz•Îïú«êN'¦SÒÙ«>z!þïÛ Ï¸òÂTNõ„ñÑatz§rL“U7Ó;À¥ø¿ÔÎRãÖàÇPrùÚlbSW•Z'ó;ÿ‘ÛT0‹ÍbçGç}¿ßn©­ÊǼ¦+ð´µhüwzÎÊ•7Kh%ÒC'¨F{úù£š9„zµt}=Ù´¤<~væØꈤû uWS6\ ¢VQrÊúS~ÄS=áoÀͤEþŸH™¨M=ÌôgPýа„XÿÍè ÚZ‰šëJ?Åz4¦Þý&T#<8RªY’aµv䬼tÙï ùz?Ô S÷~PË ¤£°<üHEüδ„Ç¿CK¹Ⱦë5"O>‚V ñ>‡0º§L9Ø•1ª·ÎÖÆAþÈ~\¡ìùÆh­æÞØŸuJÙ˹&o@BZBãà·CQVªH¹áÇ9O*½Ð ƒ»˜Â-9%Öù*ð¦7˜»”ÛóŽ$Ÿ¨‡·¼ Êœ“ÏÒZ8ˆMô{©“ó·óœŽ¦åÄÿnäK ­åÑpûE9ªÔøü<ö“”–ËÜQ*Ëvî"ÕFvèËid*2]LÌûÅ:D©Ñƒ\ÈCgø ÅþÝÏ%“œåÒÁ6²Wí3èÔ{î ™e´9èq•ÃÈiζP] ÀT•vÒ+ïY1nÀŠ -l–Ìœ_VÛI6ünp·•\ä®Ò]#ƒ%„Ã+,‡0?GÑyÝá»zš´È(×°Ç bÄC#¬@µ~2œûHRw•aÓØîI¹Ê‹¤ž=Ê[yØ>Ï/!Åež˜áþµDMU[)6{8•âó˜™9|‘)6„Í+{e zëØ"Ö«ôã$”­gkÛÕ˜‘KAÖ82Sñ iú×›¢®9/)èv)+Ë p|2V9»HbÙíÈ íäÄö¢x©ÔKêØŠë€™ye5[Ì'ÿþnSt¸Äêð]øi–S‰åæ°³lûE^Jc{4/e§Úpö‚´¶­±_¸¥¥ æêoHÚQ©.<\~ÿY¸W ÒíMb¤ü®ð{)é˜$vwÚ&²CnK]ûi«¸ÛÑ=ˆTâ½þ*„{KÞIn)g]nM„õsÇ\mS›!?Xwÿæ¶ÕG)ÿ™ðÌÓ@œ¹AݨªŸãè‚ÈÛ”ßùóNi(} gµ ®ŽüR5G-ÒL~$öb´Í„Ó‘tL§©z¦k›ôðë lίµ³ øÑ:܆>AÝ盈TWEÖññuSÄ”6ëÍgg*=S§T>óz¼š|i]†Æ$?ŠÀ ̃ïgÒŠþ4Ê” âõWÝõDÓ 8ÉïšÕ°HíÝ(9¿D™L)°²«@;úR"JðS~dWÃ1×›´ŸkÁé§MB@óÂågDþØKñx7”ñ4yª¤þd3 C:µÝOEá¼Óc]͆N¤ãô¾úÅåð|—Ò*3^!ðZQU6§ Æ%£ ä½îðµé„^[8Ç?@§p¹Ä[è9|•æà}žÐ=ºhjêÀÎÈQ#ui! OÀˆ¿E *Jy‘¬>Ó¤Ä枎,«¹ççH1«hœ¾!å „Ç=)õ>3£? ­H ½ *ÙJ€&MÁûøN'öÈ;8çT È): ¢zsWFž©CþíøÕX§Ÿé‡¹›–·ó=îкUª‰Ì°LrXm3Ë n.d'·ã\ya øÑ‹cætq¡ÁâøHÏëø%?‚þüƇÁèàÇ+él{ØÛЬ/Pã&’XæAõ ÍWù+òOJB+Õšï*VsBa$Ýù!WBþˆ']ÁLœAÖÛ%6{×~± å •ZÈqM9 zVžòq¿óg»uçïêÍ6©¹"æ×*Äu‘¶^ñJ™*ý¥%’Tîzð#ø±ùc¬”±›x//àV|¿ähRŽ·šþþµ’©ê f:$†¢~ç?Jú]¿;ÀŠM#§d–õ…2—´_Ñë™âÚâ6»ÃËy"ï‹Æ`ÿ„ã:¦¹½‰ê¦óòƒD«)¤84y7ŠT±ïl9;YâÛ½–Ý]àG 7—}(OlÛ@*Ø}¤?Ö"kŽƒãØl‚û¯½³ê4œKx•íT“_™…ÔüHdÇÚÈ'¤ öÄq°dªd·ËàÇKŽê–ŠàG4®N‘¨Ú’ö~ Ô]Ljy›†’Ò#Éîî¶•eÜ}®Ûæ¶ÛÁ=`ãºmYyeïÉ]É(Åí[úƒ^›¡tÉ8ÈíIÍ„À—Ý¿ºòÄW]»þÄÓXeú‡ü¡N¨áN$]@G?rú?¯à$vÒ8ÅMJ«Ë¿Tí–g+Tµ fj&ZkÂëONT§¾z¢+˜xºœ^äävÒþR;}Áè.ðÏÞë¯ZÐF™j©¸:fA“ÅT6KÍÌ ÞÿñI=UuÍ-ò^«XŸw¡ÔY(.U?fÒ#ª ÕhBýMHÓ"H÷ôÖ£õ\ä×PÔ9P¹°pqÝ ÙO)Ô9 ÖP9Ì’²4ž=ÙOù‘üÈH›MLä"<z™>™ÚX×/)) ÐýÕ#àGaª¦«þd}ôv¢#õ‚ª€Û†Ö,‡ ^ÊÝØ—s£…¯¡ÜgÐê`üŃ~xþ#ŠÊᔀâN¡øhã ML J,çN·)ð{–Ï0 ¶šÿð’i ïRmòG3zÒÎAâ;‰eÅþh‰U‡j›#:‚¬ƒó÷žÿ¸Œq Ê„Â+ÚSÁ@øqÌ“Mï2“@®Ñ<ˆq\Þ@•À¶B<*2‹/sL¨ü hüNøâtð²'èô7gá©:šs-@½ÁÎ@ÓŸŠP¼þ9rÕ3ꎟ(ÄFêI"™/y¬µùd?·’’â½Ã$2—äǼŠ3ÊxÞiZ™(;~ò¡_ù¡h‘å#߃³8·æô€æ=µoí[0ã|o—A "Û9fÎ µû»Š¥œèð$›è5á\‰áwé,Ë%3’]P¾´®ã†pëÉn-M@¸Z‘]L,òÇ=põ¥îàúÝj˜o×à% ñ(~Gõ›'}¤“´î ›ØúØ„îQ9Æ«¥òÇ*Ì ¼¯p - ù„ì_+ŒZ¡öC¹ï¡¿‡h6åå”àÄѦ ²Á¶²lóÙ‡v¤*¿Û\¶ ]èwFî§;³ËõLSÿzóÔuäD|­³ žÃ¾تv®$±«­u—Ú6²›Íž”{¶Ÿm.Mì52 Ü:p}å1Û ù¯½ýêŒNŽÑk~Tb‡br)á¦?šØw²QšÚ-ö®­ŒöF¶û¤†­cÏòkÛU|)2ÈV‰’Snôì¯ëwª®ºƒ‰†5ÖÞ/ ÕÂèϱmd%øÑß®µõl·‹{ÔÆq»Ù2’×½†þ&™,qczfRx¸Væ”fúÖÝ¿¹­ò$R_ý¿zïi¦^9ÔÔmÕÛI¨«éhz«Ê ¼×v;¢;E]È8A;:ô?Û;Ï8½Ð”‘³Ò)R‡ÔÑöê®dÒêz»SÐ x…üßêšóÔN¼½Âß3Lpj¨²bÔ¦ò&Ÿ©bV˜)Îî›þ~»®Î©2æ]EVh~<¥ß9;Ŧbf1Í€¶B²mK=Œkj™‹A¨×L÷ÐÓLk8íi~÷\¨|w Ç Mó ùw);½0¡Ü±)óOùQ@Ä Ü`|²ñò¡´ôÔ´¡]¨Ÿ•æMÐê3 @)j ëýd³!X.tpI9, ǺYŽõ¼n¯9ggïý“ÀÒ/˜Á_¡[Íxõúµ"ªüÈ¡y¥ÇšBáè«éFcÈÃó¸rÛjè¨FòðàÏ]ðŠkáï_‚ùUô‡@ªWãtqŒ~,}|Iç@‘’ÔÈ)™y£EVpK.ÇëÐ÷Õ`{yp«²W`÷^ôdÖ»¡ø_i2GVÐbUF¯“òLä¬)È¡¡wøïÏŠ1¼}}i.=òGjçv€zSœþ¦7Ú“ž÷ñ[®ÁÏ©?]£|PËê’ÊšËzl.¹ÄÍÀ-ÜÙë˜Q}ÜGÞe›ÔöKL'åGÛsbä•D’ýТSÐüdrÙöµÃáSï Üæ¶’R–Bõ2‚vÏ™e7g@Ò<€Ôüm½VNxj þi°ã¡ßqÃàÇ|É~쳋lT÷‘ évBòè*UÁžœêZ”è@7t÷ïêM0E¸8ŸCÅÒ\ÙçO•Õ2L†ñhÉâ.²1m|›Ê½M‘’ö8ŸGþ¨†Ü@¦‹%ÁÌþµ¼ùcø˜ªæìdjÎEårGX[ZŽÈ ÛôÍaïC±GI¤¨]Ë+xˆš ù#. 7üæúÝeê–ó éû!m£`rß<¦ œN:ÙPnM»I"Ûåø×»Ís“ÚKòеդŽ]¥¨Ã+±ÿ¤üf ë¿ö¨K:+ÖA¤ù¼ÜÄ,%ƒì’ÈÎE»7{⤭bÇÛÐöH4Ü>ä¸nuÉ ¥HÀ•‘‚«ÁdöŸ…‡U?Ý+vµ†Ú£+òÔ=m;Ê>¹…ŸNïN´Õܾî!ðcj ÔyfcÎÏ“@ ˜_áÏÀË¡õH {Ñîƒ Aj¨ýdÓéÃ`CsêKçi0‚Áª—‡7Ãe¶Æ Ÿƒ™»Lø5²Àr$Ÿ?øƒ*‹S4êCÉ‹†F¯LGš‹úÓ¹ 5C iÆïÁ`è~èýòÞ|Ò´úÁñ«©º*ò^fð¨zw j]ó%$2L?JoéXȾPÿÙÐú•àTm¬ÍñG>p jI®ð{éh»AMïÚ`r‹ÛIz™ƒ}Ÿܺ^må\”Žv«ƒßU,†zÞ3Yw¡e§¹¤ÒLJvÎ&›¡„¿»7Á¶h[oi*'0Ž9ù;ò™áV6£¿«7Þ4åb˜¹;(2ŸãÖ€’£¥=w‹-f£Ùhî-°r†4²'1¢ë1®«ø0S ©ÁM_ÿZIÕzu³? îÒ-º`:é÷T›¤ÆèÆèU*ŒR ¼îÈVÊöííM%ÌQIŽrW®È«¼OHñ»Z.:„kÌ?öz²êíf8~z>¼vj´c#x3–r uÀ§#–k#!|à3p¤Y1†{1"Þ³I9x¼þÍ xÍÙ`§™éž¥„Ê?D®ò€iû¨|UI Ÿ_ľߡíM¤,þì ÿ_J:—3Ë4ÞcšHöËù£!ùðxÐã _ D¼–J¹Ì¤Ÿmo/ÙWö>ßáâƒÜUˆ3ð5¤¥ÈHi¼wzx~I3ÇAÿ¶@Kk …ƒëü®¿Zg'Ù¤îß­çwýnU9 gæuœTßy'v9ÀõWcL]?½_ ­ïßé)o’92iª¿¤v—"-D±IÜÍrœHY{€g€ËðyŠ_yÏ ñUÓÊ¿V45^¤dPî«T×cUTàâ i#¤õ‘=²ÚÖ´¡Pñ±íc‡É)m‹ÛC|œGƒí1xb#Í57]ýë­PgœÏ ïs8’/üÞ„Dª(+mm· ]"™ìDëqWÙc6Ïž•ýv™-.-í¬Èv uaFÙÌjå›ûÏ·ê,È‘æ3ò3süÈ㦷Km Ù~ÀÞØ‰4XÚNåöI3ÛÏj¨~)æ‡á†`D>JyýgáfÕE÷3‰PÛÇF¦‡RȽa+ÉR9)¥°'zÚ’îwƒÍæv³ÅPé™|”<àÇk¨×c3–™§HÝÙÍ謻sÛŒÜð×ñ««ž*Ñ?¾ð¶ãÄ×u4½I%C•žNn'©“ÒÙ¦‚ýâý—Á©Æ ü°:²öq)×øšTº2òGQ'à ûï[Mð£5ôª;y¸ -6騮J« \D“ÅD>D~|T[U5óü˜Nu°ŸÂc¦¦ŒTÊl…&Þ£P¨†Ôùc`žŸØI·ÓK ð†ÇÐ<š ÿ|ü‰ ß•Î:%VkÌ_ê‡,‘þ§üH§f"§lCÿ²rí÷¼ÚäU»ä˜µ[ ®{1ª›h U£êºíOF1žöÞÞ T<ƒüñÆxµz)’ÌžÌõà[§Cq×@½‡å§´š™™*Ìj†Rå ‘‡RJB“¡æ¯M/¿sF+ऺЮŽõu_ï–áNÓ;ºe&êÀ®è«æët¾r”ðr`%¤"V½Ã½(®9¢ãA;€KA£ ÛÂ¥å „–¸¶·=eŸ‚%Ó­E½øÈ7ë82òGNð#—¦D”ù£•ÿ,܇ü1À$$ï3à2QLº'ÍÝ#¶†–’£Vß–s¹;ñ¯é¶ŽtïÊ*ùMºÙˆ<€n›qpÅ) 7_vÿê¶Åå›ëõŸzêüãç—ø¨ j©EWÒœ©*•òž›÷u2:Éœ\ÎN%*ˆG‡þ³…PëõSk>+ÒBhL§tF©P¦€Iü±Û)à$ÿ¥vÖ0Ǩ¹ßÕnnL+ÌKÓK•Òñ 7L SÝÌ2£ÀÎÒ²97U ó ü˜ -:JÏ)1{¯šhm¼wÿ]Ã¬Ê ~ 4áMs åºë6z©éÏ=îm6Y¨|?Š n$€NÂÞŠïL-|﹑Ÿò£Ž ~l0™))TpüL6úˆtsJ‹½ÏüsÁïùô™È•t³ŸŒb½ÞŒú@ƒ"[‚¯ 2ppƒ¸.|úº%½L!à°/a=õ4Ó”þAÍHª¦SýD±(¼}DÒÔíøB3¹Ær2WãH3ïé5ȱ ¾s'Æ÷Œ)§ßRmòG :Ž5Ù—ê#³lDú(?†_B£™ˆ&¸ì@Åæ¼‹î Í  ¿á1›Ê“?îyŠëÍfF8|qBdU†S:dVЛ‹~Ï/yÏסwEàíáýŽ¢• •-59OÔíŒ0=Á³¬àÍ-äªWÔöSyŽ*%$»l‘üöä”ÜYÊC‘;p|´ô.Þ+¬tf"_ðén1œ°ùz”›WpH0ã4h+ç”TòœßKwÛ ü¸k‚A=ýž_’zùŠ/ñ^ÅÕ1 68^ü¨F›±ok#³¿bK]Y$…¸€¶óm"ð#¸› ®¡T‘]\ÒûÌaŽ.y7úÒùãû믛ܘogÀý’Á(àÂBäÉÒGIzw‰mۄRÜî)Wq-$¨} ëoÈ»¿qÏéÕQu>£(ßCõks1y+}ìGÉ!dƒ-eÃ@ŸÙ¶v¢<“BðúkxBÛÂÉph´â ¦½YÊjf¾C»è!‡À|[ˆœ×Å’[ÜN‘xv† ï®·Gl07¸½,#HM»+»/×½Ï/ÙûÍ󯮨뺕CŠßGøµ9L…Ý¢v±ÍgÉ&´ÝÁ¢‡67øñL.K;Í^â4ÈrV3!¤¤Š|ó›ëwOªIz´‰‚Òë"Lj]°­d#òGN›ÏmcK¹½Ü=¶;Üv—sö‘œ—‚ÞãoÜÊ0üx Jfº¾ìþÕí hÿ×ê$Uëó#‘:¡&;IumýÖÙ¤~WÞgb×s29ÅœœÎñóGxµM1ÙáàbÒðÃÕ±*¾)j²ëúú ê&û¥vÂAPeä^ÞU ~¼3CT:+<…Ilª˜1f®”£MÏ{uQU0÷éòG(þ9ŠÏ™( u4ËᙯSS* /ÝÉ„3%‚ÄκƒÞè}  ñ;fÃ|J¯ÃÛN‡æ?¦b @j‡¹ç§ü¨©|)òGaTˆÃøÝSÇH^çé!¼ë:(ò'°£ Ôt$8SBûþd3êõô <ì "ƒŒ]y£"¯æÜkÒ{ÿù^º„ªQw(u1£˜?ªúN^¬Þ¾ôx;i@¨Fñ-ÍãNÈâë@$Í—é>Tí,MÃû ¦ÝtÝøzýÕr5XW£ ôr[Eôë ¨Qkú=inN!Á‘3 Gu^C§Œ¦RN¬´|p$*~\õäÒ›Ìl Îc¡ö±9<ƪ&Ú–´ /†2ÅAJx ¾Úú½Ÿ—QàÜ›è(;~Õ×égúcv•{N#Á|¡žðæ%Á‡:’^æCC_Š qI.Y BÅDNºÂÓ8¡Ôà]¦îßÎDs"c-Ô§|<‘?ó}žÅØ\îó iakÛ“ö¦Ý 5”X2jŸô8Á¡d)—¤ü´G-ù®b{' h´ »:Ÿãr,œRšÉl)Ã¥e™j}ÜÍ6–ë#ç¹=Z|­‹ÏÑúwÐé/Ô®ëßÕdÊp¾Š”šü0xï2C†J[ž,)ݹ6‘ f#¹›@ÌRÒDVXî÷\±ü„ÓI;¾c:û×Ê¥¶«HËyø5Aþ˜F•ÙWÞÀq+$ƒÃ²ÃÖµlyht;K|lÛÂîâ=<Õ~“©œïßð›ëwת/NNÍ>L‰€¹ºäeŸÙŒøùØÐ÷(îjûÀþ#WìJ[KJØQÈÔµxçæ©”Ãl0ñü×ÞuRç}ù=mø™YCýD¹•ì,$!ÇÆÃ¾8kÛõëžz¶iOÞ3¬óññ’Ž@­£ò#8딞o ½O‘'*Òc“è§ü(«*¸«MrhpšŠÂP¬ëWÞ'~£µ_ zõ1ë†#þéõ»1õºBe¡»¨9H EÁÌŠP‘…ÜŠ1— ŸF¯_Ó-èãhê`¦üðü«ÒàÇkCñ‘}†bÏ~6ÃiZ´œÇ£ó¸¿G–ñ`umÇèö‡÷€µu`w´/k« ¿?[Êp4¯ R~BÂjIÆxŒ÷üy.Àûð¿« B9Ðþ”Þç¹è¿W{îÉ©·˜±Š{smBñ 8É”½ê>œ7ƒmÁC<ÔLÁ'h=Ô÷öšÃ•tü¿e×™NOÓDˆüq‚kðŒÍ*ÆFªJ&™*í}‰-[ÀÒp÷Í¡+…𺑬¤ ï4ÝL¶û%ŽãR p<Ïç|Ìöá\JRË%¾'-¡Y»ÀÓÈ­%º¬…Z¦à³p÷®,àd”™vxþU;':ê­Fûk"[•"Kð#ç—-v€Mån±Ž›Õ{Kk9Ây9ïDë_#3ܤ–tXwý®ÞhSÊïyU©4åh|™·È<" ùOIà.‚ª’æN–JU{ÿ“kƒ—»ü®¹m…>·ô¯•JÍT§‘Ÿ‹òsð{?Í£*\F^HGd¶LrDÛ*–msèu;LâØ²¶±]ÏǹZYzq8ä vß\¿»Z]uÂa;C‚ƒŸ‘¸î!…²{äÝc}¥•…¯§ºÈÙ‘â}Ì“ÍíÝR»tQª…ļû÷‰ÙLäš-Œ:•md›ÌvBÙ†,2Ï’ÓèíIKÍm(űÏbpcJMÝùµñçÇ Õ^95f{ÊC‰h½Tt‚墔³¾n [ÑíƒýQÐíe;ÊSû@žHfðƒ¸½0c  W°Ösü¯¿:ìÉþÍõW¯<ÕTÒȈj—šè„ÒmuT½IUô»þª“Á)ârŽ(¥^¡òß·Gžz>\wU¬øEæ™óÚÉãÔV¡LC“JwÒ×Q7×/µ3ŽYA üÎ#lƒmÂSgGG¢’”Æ$0eÍ\³ß ÊÝ~Þ½½_3g@ŽÍT†Ñ^JÃùàó[™U4ƒîA3ò áô6„üq%õ:énz™iA éëh6\Ïu(ul¾F)y|ÅG(öMS^#*eü)?Rª›Ž™´k~¸––Bƒgg ËùÙû¼<ÃÇ0ó7¢åyàœvþ<¸å÷Äâî Úxg.j­†ŠmîÍ9y-ê]õû­W{i9õ?;ÛíÝ¢«ºhJP_Š„ûã©úŽvš¤øIïóK¼Éè³i…u:pâg¡x;à<· Iä£R?}þ•«'€9Ei"RÈújfãg7PhÎHä^Þí‚ÊGÂZ_ƒLÑÆÌU=mÝ»…PIœdô€þ ˆÐñ~àÇWhìT$’åÜ™h>ZØ{§ü3Ú½†u}¯èóK&bÕÕÃ^ˆ^VG6ƒŠ¥0ò!92÷¤¸æµßì Šn‡Î/µêÒ“ÆûD°@øqÔ“×ï(bnÇ-9 á}~âp¨áxøé1PâpÜš=rŠ—Yä¼mü€Ÿ¨£³ÿíþóNoÓíIƒär•«±÷ªå£Ð£°RRRÉ Éƒü‘N¶r#É"›ðÿ‘¸4òGþ‚18c&˜€OÁ6N\*Zùç6ˆ´úº3ƒ'ø©´¶•ì&ëq÷C«J™é÷ûoò1´x§¡´Bü®b'$5ƒºGµùW†K‰+=e…dàT²ÔN´™ÁdàÇK®"ÕÀ¹¢há&Öò‰·òmÌ„+ά4Õ¹8_D+pgöà½È6é+Ýy„Dq—Û$ö­¸îð¨/Øysg!×D¹ƒlÒ/›^þµbªQê"%ã<àQ 8õÑÈ¥d“ ´b‹ÊnË[eÛ&v&467²È.ôu ^¦!˽…f4ò¯×SÝvÞQq´{#ò‡6q ée?‚C‹ä©,³ïíp{ÑÆp](þK{ÚÆ•zÖû»]*4>Þ¬gÖ™ÔþkïšÚëwýUK̾|δDt«Ù±¶¦ c]üiÆÇ.ÎH+îEŽá6—"Ë{é»-\’ï7÷Ÿ÷Ò=Lz@­(7VÅ)æ^°UA‰’Ì>±õlw„»Øæq›#/´—Ñç˜hahnKŸÌPzkS^Nof¾ìþÕm§'Ì7ü¸ëiúŸQR€ùuh=QyÕ}Ÿ§¢“ØÉåTt–#üÚý¡Õ,=Åä¦,ôÑüiÖ8ïtNGõJ—4Ž®£·8©œŸýæÕï· f1§÷¦Í¡ÔÇÜ6}TNýĤ[Ú5¹Í8³8ˆ×_ÝBþøÝœEVØL¥A£yÈ I(9U4«¡w©»òs$SÅ B½zšžmúÐMG9Imá'ŽÀÙ. hðR…Á½‚ÔŽ‚S´Ÿò#«ªŠ”°Îd‚ '‡²&#ú€·Jœ‚W“÷é蛡C i’]Fý³ü¸„~Ž-»“ã bÓñ|Àeøwx3—·Ð]¬Éë´+ ¾é®ä5©”Nðf€ßoEM!@¶ž¨öšÖr ¬ÇÑP”Ï Á$ž­øþ ðh'3õ½þjóxÉl7cö,ÀHOBëÎr(©Ë˾9~OTg( È›*ói¬Šú\F¶H û¼¼$ýmAÂfµ{‘fеqli»òÞ‹ŽÂÞùL¾¹púà(ïïWkŠ!_Ì#šTÔÓ>²)ì‰òžµó‘A¢¸íE¹dW åd´Ûà J£…©y¥7KÍ_Ï:¦¶iï5Ñe0~ù©™G-$®ëkÇÙ’ö…d?r@õ£!Å“sRí¼Ã‹l+© §‘«b6“ÊùÏ‹êÝȤå;cMF¦ëRνmkÊz9)IíÛÂFu‡»ã‘?Ú¡¿÷ìjy$'¹†MÍÍÉA|`NÃM$þ_¹~÷¸'¹úëîÞ·žÿøø•¨mj‘A7Ô±ô^UU–zr;ѧ¤sT‘ Úo×øŸM«‘z’©½”„š[ÎU'“SQÖ>&—®©¯;9t¿ÔÎPp •è©© EJIÌ}3A…×o‘G²ïQ±f÷ßžøv^íSiÌ1èé"*‰O¯LUlÁã£FÈ©§‰jŠ˜=‰öÛ­î­§›:ôо”&#\úÏówÿqofűFíîî®OšàÜ ¸»»wwww÷$‚wwwwww\‚»ÝÕûÿ™ ÃeÈ}Î==93¦vuuÕZëí®® Ã3A¼Q5z` A›£†àþU «4øxñöùËÊ¿S:œí#¸æRº‡D·µõñ~$'oÿî¢Ô8È]ˆÏÓv(z5èò^pÃhbœe$Çß¡z)yFÙ~:IßC_7Ñ2êg–âZ_V,+½Ÿƒ+BÁ×~ƒš?3]Áhvæšlƒ»>á p£(ï<Ý4ÍÁ”6Æî4C­Âá,‹¡{©z z MlHlN8w‘˜kq)Þo^G£)3Ú&®øç¥mðepæ?Æ  @Ñy1•ÃïdDÞ¯Æx;\ŽŸñW:ÎÎëP³ù º+pùšNa;è%ãív`«êèûy+éõñÏÖyɽ÷ûüë'æ–m\_JC»p8Î žXéÁkÍ“;HŠýÒx÷¯2âßìç“ÈÉàÅ%Œœ´ÒJzþq¬ÓV~uÐûd|_d;ÿf\k2ÿê‰iöï_m†Ç>¡ÔÒ\öIbN/sµ—&u—kX·š¼à_¥ §Gã%_l0Ýiú…Ž8}þQÞ,SÎw üQ”ûñ:ÏGüïŸ×duçÀ?ÞÊM0—+“¥‚à?q-á˜ûùG“VHñ#?••ÒZlmòÏ¿º7Z‹žR”kÈ[©5¥”aZVHz=¡uŽ<’ÚA7=†ñ)Ž+Kqí.Ñ23ðSy㬃öSÊÊà\ÿý«g´ <3RÉí‰< õÓcÕÅ¿¨«uôÐ-þµÁ–xó–ÁkMÞ@÷¯6;9ÁäåAÜ¥ø™@]EÝ :Jgjý(#t²žÕÚ[¯Èei¬74‘$u[I ðG4nHi¨£Ÿzá«³ÓŤB>k‰´…?®jÙ( 5¦uÔr‡ºÛ5‰ÛüçZKáš»Ü#h0öYÊÅÌüà‡ÝõØë+hÝûôÓ_£ýþ‡!…Ôs’:«-/×n÷Õ¶Ûií¬ö+¢’µ<þ>žù¦;‹Mkx|:Úm®Ø¡|v˘Ò&“ÓÒ9 7ù6ÿ(f.@ÙŸC¯ÎC‡šÔÀŠíXT‡ªšL¦©Y`6…pýÝ+Ö«’¹å˜}˜îŸ•“2 œµÐBoíŒà&J Éóó6Îg¡©ƒ=™{)´/rðU(ÄxJÈÌuèž©ÒIIi¿êy­ÆÝÏɹ0O€*'BÿjíºDiy/í"›ÂŸBŸKR=§ÌWï_MÇ8ª ï8CÉi ®ÈtôÖE<’ëBIÇ“7ãöÜꀃô2£¾¸þnh+§†^øÏ$  Ƈô4›nÓRðG]ËåÙð)¸‡g?í»®w‰á^0¥ýjqÊþãßp®!ùÖÆÿ6¦wh»ÖƼuTN" Wu] `‰2pà|ÈâÙ‚ñ}¾lÎP sèZzèùøGoÊÏ£¹ÒòI\‡îðËÈ߸ Ÿ‡Âù†F>-뤴ƒ®î¶ÐnkÆÂ×Râ7osSþþ8J¥9†T–ô²PJh$Í]î.µd=wã¼]Ãy<§”¼Þ ùlÿóHö;SÜè=yb¹Ëë)=X(§¤“Í|]Úk=ªÆ=ÄO¹§Ä–E\çð_ÑàQ±¨Í ²þn Û¡¸r/¨ >·ÒJ Œl_”ÓÈr]©?º4’›QÞð0é.G¹'™ÇGvòeêE˃*ˆö‹…sÞ)Ûä™Ì£àõGƒån‚Ìõö¿.çzp®§üÕŽ·zþ‘ÕšhPÎ^PŒ€BKsM¹"£ÕÕÆòT¦k¬ô–vGg­¦uÚy8©,àäü€ÆzŸd‚uÆ~OÙøzˆ…0-7¼QPÉMÙ­¯u–¾À9'Ñ“r^·kI¨þ.z^…k½…b›Þ&é§±÷ÐZì¦,çK(_7 ©¢DwËè4Í« à¿k Т:CO ÖÙÑš9®[KÊáœpSJF•yM ^xÐjåt2騴#Fï )ç>GÈnI«ïÀaÝßÝ¥ZÒ =…]oVWj©¡a¸ÆÐºaQ:Žè þÿÿŽPœèŸz‚eÕ·¾m_¿Û:cͲc9ÍœÎ:ÿú»K|Mì’v>» ½ú›ßÿkˆ3ÎüŒ1œ”›{vXçgûë­SÆäwú8í¼vñoô•Ôù³=L3LXy¦zÔÄ5 Í$3+„󯬋Vs걌J#Á]¥ðœ‰²Re3zs ¢µ§næ;SÊ„äœÛ;Óœ¥¦ÝËÌ¥5¨ß H¡šòTŠÊOÑ«>˜¢ Û„!Ø0¿U¹~/ü#øÃ[*39¨Ó(q\žG Î[¡³Þó…¢Tßiõ•VŒâÌFWú5ÞZ!ÞªÀ3¹7âH<£l?íðïšxšÆS3ÿ‹÷¯"Xí‚ôœþ Èp15ëϼIC¸”¬÷ÉòV‚ŸÎ OÚmJ»ÿù øGa´wžL%PÇ+HÙep¦wp†(ƒ¹éز nPˆWÁûÖ£¬Bh™Œ”‰¢ãp¦;á¨/·å08³8ëÉ”þÑŠgð9¶ØSÚ›P¾œ‚¯ †‡Á5–ZüQHßÃ/~×ú\SèŸz[NHUݪ¸n ÉF‰P·¦èõy¥ tÿª­Sß$¥Ô £5í– î­"+ä¤Ä‡5Õ4î÷wM ^ê+Ïõ,,¿TQã_¿¤þœ¤8ÑÿdÿÚþŸí_ûÎ×ü_¿ÿñøc¾Ñiä<²çúù㸯œÐÎf·—Z®2uþÏ‘ÀÚàÌ2µ¼èh²¹hØñí>ÖG'—ÉèÔtÛÉí¼ßTϪf95'ÉéÍnÎ<Ó >4¥Í€þ]¦¡ ÷³§!±¼BιkJÒ²)ÅWý#—UŸ"Ѥ™Xœ–ÿ ÜþõÛÑjz@©À#;‘ö½ùW+ái¨€Så+­˜Ì™‰«Cƒqžýè½™DÕð»yyâŠÈ™ÓÁë¡Ý¡ù3423íðÏ#‚UÅNI÷á„Ñ);Üá­1È–ó'sgÔfWFN?G¯PæüÍhøéa:kZ:wƒ)m¦5Щ Tœe3ºH ¤bpî§ø®½w.;oqÛÁ“æâ3ס¼RhÁÔøä0ÁøÇ}_Z¸øx¸á/܃“pT8ckšF¹y*7æÙ¼‚½õðÏò ^‚dŸ©x9y«á#þr^'Ãgs/¦Ø=Mxb¸ÂEÿήÑ7ʲOªKJÙ#…ÔÖ²j_ÿÉ¡à1áM¡¤=¯3?[7®$^)z;âÍ¿JÅL.Qä»Ú_»è9h–·ãy]ùNöqÎËwð/cÁ!+Ï·Öy~¾„îRk¾î òi*³$6’ù>¦©ÝýÊn¹Ã}@H—¹$ÇçÕœDBËA\éötÚdý’ÒÈ+;зÊðox,…4æñ’üþ üKÖJ)=~]Ç y)üî'†PáÁŸÊÊh-¶6S|ï * OšI5¸88a<7‡\“ÉZO-xFøcžDÒŸµŒnðï_»™³ÈtŽÈ7©~ ý?&Z7lXù2Ð E/i ˜§«¾DJ\]£‰ÜzLc¹¡õ–@÷óAÒkªÈ9;¡Tfd çg¬-Ž·bQ h@>¾hÖS}y¬ÉõW-©å'¢§ô<ø¨¿—ë¸Ò>,Gµƒ”B‚‹ÅÕ)<{O ûW{¬nN_“ÚÔÚ”˜NJb÷ˆÖ“-8×ìZÜ­­Eܦà"n,tì—ÑðÜŒžš?è øÃpâÿ‰ì„Ûÿýþà_ëÛÖµýûp­ Ö\;:ø#¬³ØÏÛ‘ròÛUðg¯êç_k3ÆÔ¡” jÝ~nG±kZaLESÎi༶KØù¿©žÅÍôzJs:2Ƽ4“¬„Ž·†\]“Ó´4CÌ†ÏæÐ\·öX9ÌM:IÞ•5t”’s:JNÌRháiêL•¨+u4‘A5_º“øhí´w™vнßÉ[ÁׂsŒ¦|Lº)Óá ôØÔ„zG£d_õLV+ŠHM¸Zfäðôh¿7¦9m‚ªþMÜCaÀÎ5Ñó§Â™ë;µ¾ÒŠ¡ÁÇ‘´:Á#ÆÐs3*½ªúT¢6'æYHì›éÆÚ#´ÄBä¾9_\?1œ•ÑN‡7€’àËÛMä©éŽßyH³¹Ê}ãq0ÊN´åð¸tÑ4 Ö?&€P+BÁ•»S-0Ì~ª §­÷yŽÿ}ås>òVÿú»(ÉÓ[,ι ÅvýÝÎ 3Ä[ÝYû'o·opß(œ©·OÖè]®¬|ž”œ3ò)\éÃ`Pá„\ÑÉô™üb÷2¿ §å€ÊŸäüÂÿÊÛ¿¶†””’WßH*YÆM¤°ìAù±áÇàUÑ¥/1}L„ mhÙQ)‡ÿ}’5`Š;8§Ô¼ž³5.òu(k3=¢ô ˆ£„tÿ=¾ÿ ½ôNýkÇ™œ T¶2£g„æó¼Aƒgºó4IçîÕ¤L³GÞãçúz’§à £ïBpÿª¬Õ þ±ÇddäÁ Œô*}þ¢L<Š÷>Éã‘É”‚j:¿ÒЉp‡Ú`ëp°¨p6oÖIIžÆC¸ÆäBøÝ>äûGH²'Qj³ð‹ü‘Ъkç¦gðøäÍvE _Z  þ¨FS ¡Ä^ ÿ‚6ÿ‰ÏG»èæÖoÿÓá”À¿ Ë#à çÅ© òÅÁK>sß eîþXæÚ‹«UˆÂàs“Q¸`üãüc³ÿø•[Â#òv\Ý `¶¥(c',|ä_æùœZz”x­úžbs)'ùgëïN¶;˜¾¸rÙø(<§ 4w(êZ*]FŠÊvo÷hÀUn'¹e().Wá»<ƒÃH~Þkê™ w‘SÛ‘jR.^Ë$×ùj¶›3ÈrŽ_J-§ô!Tô97“˜²×>3´9€#ÈjNEyh«µ-ÈóÐp·¹têƒJrN(ež¬E‚NîîÒ÷ZP>r ©$›qiyÇÛ,ç£Ô›Îyót9ü#7Gß̓³yK×y›¬”_d&’dîxM¨z÷œD„«4Ö£<>Ü”Ãã>riÄ{LõOe¥±ÖZ—)*Îàøí®Bq.-í¦Ï¤˜\€TÖðšÄÕEçJj­¤µpæëx4oàd2‹½ç|-LOåÍ·ÎÛþx„>ü–ÃË“¸€·ŠfÑÕ’X—hZ¤û}à£ðà‡ÃºQ3I]Ý@©2Ü?#¯¦¼f’)èùùR'T¤ýÄ«æ(uvKƒ[òx»‚©·gàU-¨½½Ù\H sõ!‡v»KnôÕø\ƒÒP>Lõ>õÂÃÖ¯ð$Ô–:RZŒƒ’ÕÝ®uÑKÎI MåÖ…´vk:÷)ÝYŽË Ñ¸&=1ƒé„Ù²IèàÿÇA_¶@÷«Õjü¯ŸŸ»ÐÕåv¤éTÎ<Ë»»´Û×Ò·¯¼ör+´²ÕAþsÜòMuF™òPâhPûû™íÚÕ¬÷NøGçª]ÑÎþMõÌ uo ½j•+@=M8 þE)»ÉeJÀ?Ö|¶‡uðÇ ë°UÒ\£í4 µ›Šôý=^:ä‰yP¼kÔ„¼ZÿjB?BòÎ}Kç7ÿóG4î1 ½ö0H),ŸDŸ˜O)ýë_=5%©úVú¯úG«% ]H3ß#€¯¥‡Ô¢%äùÑxÔúí@‰+@E¨ºÓì+­Í™B§p>CèÐA"/J3‘£&ñpnÀ)xÈy ’µï¡Ü)ÔÞLüY7Þ0„¾‡w §°dÃKf€†!jÒL®À¯@H7Èæó4m;ß5ù‚¿;ÔàÔÃՌţ ô—é\®"’ö}øQCŠf¦9,[aËbü_¦­4Iä•ɉ„7ÿ8à‹å¬7ý¼µ¹=§gáÉè+C)Ïäæ ¥ðó|Ý›ù„|›ùqjº™¼UöK9I?›»7Ýþ Y¥Åáþ÷?nQ_°Rv$$•u’^?@û×sK)"k¹ Çàü(},ø¤Çr]ÚLaèKbžÈ/¡º‡É[Ï0¹Ä!Î1ä!Ïw ¡ÓÎÌ”·ÖTæRpïýóž¬ü·È*=yˆäv×k  aÜ[B2Nšéeôž%Ü™—ià™ø\ ôœ ü±Ÿ’rQ¸t!ÞˆqQ•óÁ?ú‚?2Ë%Y¢ð]½¡}áa ×õà;yø#¹Ìᨠø6¦é§ò†Yl†<ëºò¼ïF•ÁðÇœ: ½R£º“uø#¬ž”ƒºXKI;]Mo¨{43±Ì$ 4wŽSοKÜ&äƒ}àFò~6žAF£fGáqÃôŠ•¦:[IB»¥<úJ|nG)q>ûéç@ëï¶pÚ™DÔã>Ť‹ðCZZöÊÉ×hª¹ÜþîIMìvÔ:Ž,7À®95סþý?Žƒ“šI_wÿÍ#À—+Ðzwbµ¶‚î\ÒãGë˜5ßNåtrbÀ?<Š9ëkl§±‹Ú…ì–ï÷bk¡3Χ\ðã!æ”}ß~k•·¾3iMN§ŠóþQú›ê™ÌLÅõvq…vR&cΛyàH`…ò&¹i`†„øýÖ)«‚9‹±7 ºº*•ÓA§›ÅàsHÔÞÎdmL8“ÏÝU(¸£/üc-á6¼c*¨à!’ôòæ±&åeЋ‡TŒž›ÐÁþQ¬Š›lP® ܬœ*ݘ@W“øßÿxiÿvhþUþˆëLDήM#àjÈ4Dj-þø«rrŒ­w´žNÐ z‚–]CÕÍJK¿Pf«´þ1˜~¢œðÚÈð£öhÅ×4‹;R]šÊµÙÇ;Ðבì&‚çB÷L­`çïN±:;uáYáy¦·ž<¬¦Ý¡¸ÒÏýÎ Þå.ÃÞ=ÆMh]ïþU:øi¼`üã¢/—³ÆŒðjÇmø'ðÇœéHÊ‹¤Ü˜'ð<~æ_©ö4ô;;´ô(jxœÎ î¸¢“Ä:»°·ÝÍôAOÈÀg‘ï«€?º ÝsÁ?ÊI:Ù i‘tÉ6®&e%’xü›£àï¥&/2ÍM¬ mÓŽB?£FéÛÁ6ÁÙ‚?¢ÊþKúik½¬gt™·­| ž›³ñ1~ÞYĉ‘6[+þQb+;:ÜÍÛ#©><§Î.Ž4•9’ˆ‹Ê2(_÷¢~ÔÔ²Ÿ[Ik?$„s¦rÞ5„œšÿ(ož)ÌYû·B‚?^ðb™!#¤ OxîJM®15‘»@vñŸÒ@ðo¼€[ðxf‰.uùb ÷ÅÓYS¬k”€ Âu3¢¥ ÌÒògIš™|‚æÖwRDokg,Ñ¡ÔUPâfþˆ/û8ï¦î_-´ÎÚïÑûoxÏ{ø£ ŸùAºÀÏ*éL(ôx5î(=‰ÿFÐãrQhUÝd¢ò¼Î9†r™?ÍÖO\ þ( íXïͯ3k©ŸØnnýd©·›ð!=®¥u¸Þ“óRþJ^ê ɉD‡k?zò.ªhý’ŽN_|ßý3>€ã^Ñš²EîIQà6Ò’nWw«þàöÑÖbÜ=r׸¦¾w4cè/øG8Îcþ ~ØýW(Ž äÍ­ o.…ôðÞ\dgpº:aþýk¯ùZÛ¥ð•ÓÞl…ùþ1Т’Ȫ#Ì;û‘Îna±Ékª: áe¿ñùy^3‡šC¯:Bë ÐT³þQÀy‡ V:ßÜô2³Cxÿ*ÀzþðÞw^BUh14$>gFnè™@— ]Õñ§¿ùÁ” ‘tuº9;|ï!íÎAÖz †Nï‘úÓóBŠÆ7©Ý3eh Z"ÃWý£Žå¹äYSb²7ÿ· å¡X8ë#Ð÷dà™Õdñz$ëðªtÔЩ÷ÕûW«q†À§P…T£µT’'snÈ)áp6{k£¼Aý÷Ã?›VÄ/®ß^ÛΉóÿÈâ­[=M󼕇‘ÊÚÑ®ÅOü+u1”h!Úc2”ÿ˜éë7z*¨¿\-.H¡% Ý—ÃW3”ocŒ¾vóžwq[®G:óžCùÉPaÊFƒñ'¾ôÎf3šÑ»sZÏkáhàL‚käå—Pîõh×ÌP¨tžìíh]Ó‰ûÙú%Ø}Á”õ¨0è·D ‹Z”EÖ®ñžŸ?‘àï§HìáÆ÷yô¯ü£‘ úVZ[üûZfDnO"7Ñæ)xg“drüÑ[›é&Ý¡ÛøœŸ?Öø×¾Á9lòïÿ±ËZû»ÛÑp%—Â/ÛÂ?~f—cJ]Y%YàI u’¦p÷éM.Ǹ¾4€”åàÆñ$¾äX<®95þQÞp“zïÍJ, ·õñ-ž-Sd¼tåqð àðÛ]·›#õtãYðéu| -’YjðYSÿSYàuÇÕËð#8îxRi.'wá¯%­\ÕZNò³ÞÓæ:E"ª÷öäIÞy’Ó€?bð6jh5ÚÕÖ%;,§â3è#G8"U@ËuÍ|ÍŸ# t 4z¸žo…Ócþ÷Kã³fÓMª ÆKÿQQ3>ÐúWW­eNQÿn,›ˆØG?pœca¯ùÁE1tˆ>€ƒÔÓYz^ŽIm¢>qÜv’ J›¢÷÷ 5ûÔ O[Ý&&õ¦žš’RMï.Õ²²üQßwÕšn'w‡†wiy¬ÏÁb¤’¾E¿d&’vQD.ø?Ù¿ö°/k õ¯~€|Û¾~±¬ÓÖZ;‚ÓÂag‘þÕ._»’ßA6Xï}!»;ôŸÃµæ9 ‚ù)*M1?~²»Yï<&³ÓÄy`—³³~S=S [’÷Îí:ä¸ßÌq³ÚÊëć¤TÌ !\3W oËý;ðì†d¢$Ô5 üÑþT†Z›¨&¿ É3Ÿ6ð¦3]@¶_5 €.ý ¼†4ƒ’s•§g¦(òk¨¬_Rݪ þ8d²“ƒž? :ííˆÙõ|D9ýob¿Â÷uhýJ?ÒÏAž‚~~¤uæcÕ3ÄoMG‹-¢<<‚»q#NGzGÀ ¯ ŽÇà{ÍTëû/”ÙªeçƒbÃ5M V Caq¦ó𻓹++í´‘î×}ú5¬ ‘e%]‡3D”?9%zÁ:k^õÅÿì!Uäð‡Í1¤¾ ‘RœS!‘'t¯ê_ZþѾ²Þ“÷1Ëœÿ!xý%§aõs ¥/Ñ>ÊÆ£ø{”¹D&H7éÂCä'wø#ŠÆtɆÄgêÍ¿ZÅ€:ÖçæÁ§²Š¢®Ç *ñuðÖYoå..—¤-˜-;Rù*-«$¥Þ×.:Jâƒ?ºêA>ßÚ šYà†V=Ðû«­Ç6sRøÇ6ºÃIPÃ3Ü\Æ€7’ê8øÇ}§3t!˜ë;ð¹«ÐŽít4rL´v6@9Íj“íÓØ»emuŠP ¤ƒµ |(ùÕâÖôÐüBOÍqhPžÿÉúWw})­¿þ‘é_úGTë‚5ÌŽîŸ5Êÿü<À×ÑÎb{ÏÐg[¯¿qýÝÄÖ,g¸ÉO™R›íöEÛg÷´Þ8 L,§Œ¦ùù›ê™œWù³.u£¸ÔÏlÔu~¢4d›¸¦¼éh–†pýö‹Öy+›¹D3‘¶Ë ¡®‚bÅÂuïdfâ§ •9©2õ0ß™¤&$kF6qz;kÍÚ ]ŽnC—ú¢Ì»èm+à#;(=0ÞlkæëówëYéè*+”! T9Z0,tg]Áˆ\ ÷|‰W;µ§·¦¤Sø«ïÌDj« %ßH=àL£ñýÊÍã0úËrjž RÚK›¡ùûhê]ÈLÿâ–‘­ªö8¯þ”m4Œ";Á…‰‡rsŒ™Ü€_@ë?âìÒ jK @ MÑ`÷ÿ˜oÍqªAÅù°<ñ U„·uE‹1W§+à·¼%V#}  Ì ý¤›‚Y÷–/«³×üIü;¦…+ÌDO™y,7áiP:Ã]ù)ç‘øÛù2ßFÔý.|¹H0÷¯ÆÛLôƒ,¼TÅ¿ÿÇ)*Æï ïed¹E6ý^–pÉ!S¹ô»(Ïd¤ óóGw¹¦Õ¨þ±™§IA=O^Å­À »ù´ÍúóÖ‰g­³Ðþù\Ùx³7+­vGªê_’™|VŸfÔóÚM‡J\-§uÿùÇZYÎßñªèùÇ*ë¦ýŒRòmïn(ǧ„|“7H7]¡Et¢D×ÉzAGÁ?¢º¬ëä#¾ÿ¹==Îc¢âfùûÞñ1k®“=¸6 /œó(‰áVÔ–ZM_Àç2éCxF í¥÷å \¯†:r]›JòÖ5¨å­¨Á÷­¿{Êêëß?ª´#¥£¥’Þ=£•d·¸ð¤GšJ»‚?|îeͧÈmÔ14®†¾¦†ô”û—Y†•í²~ûÕÌßa5ù×ïD±NX‹íxþý£ÆúŸŸ_óu³“z+UÙË­¿|ßvÿ*­5mZ„’Ã]s›%ö9›íÖÖw&މáTp.Û9¾qÿóôf2Xæ‘ÉìÄ4Ô4+¬:NFJM>ãÍ nnÆöqðÇ]ød-³yv:Õ@JÞJa9 ¸sšÙ¼º×Ô›5VÞÄ4YCtÿj€3ÎÙlÚ#IOF‰#Áû áø#¥†Þ‡E–*Œò3u Ë&ûWý£øÃÐ~“‰\þ‰;#ç'Åùv€Ò½ÀˆÜ Zz«LK¡§ßQ¥ w!>?b: ð;µàÇ—ÞÒD® ?›ÉÙâ= ×þ6hµˆ^šêÎý`JÛ`­q*ÀÂðåI|WJá;-.O§gŽÊN®Ç¥àWQç~¸þD©(1½ Æ?øò;{ÌxúŽ{Ã/r '®‡ 1ÌÃôæÑÞ>ôü–/òÎÂ…Ø›k¶×þ5h'¹“ò³µ›ÇÙL?ª@‰y …‹Ùì½[ZCK É*«À×$´®„5\Ž]oõ(øÇ+|öLÓÊEŸÕŽN5qvéàg»x/¯¡PËRâÊ!¾'=¡]t-üã2×…ŒA)À §Ø‘Aœ ~tÿÚζåŸ}~ü±Ià=ù¤*üãU•õ:Mãºw3Ë*n#ÕáY £›@>y"Ÿ ôÔ)ûò&š\œ•ãºeá6ðׇŸ6çi¶ˆ›Q'¢&Ñô€ÐÝ:\›é0½!{¥—¶ÐxòN›HFŒÀÈ\ŠÓH~èýƒVsg ’7‡$;ýH+$‹»ÿ~«¼’Ñze•wû¸Ïôü®‘ÜÑ-5,«6{;õ¡gf ü#™ü°û¯‡}™¬°ŸzB«»ç_úGl딵ÏNé´tâ;s¬üþù»ì¬v;›½Ør¬o»ÑZêŒ4ÅáÇqÀûlãd²+[á¡É):ÎY»šýµäüÏ£€™C¥áÖ%i,Xa°¹i[¥ÄÐæèPú"æðGÈé´uÕ*kŽÒ4Ú‰ë=:‘ÓPL”¹Zx £2/H§‰l †hý’^ÎDg‰é…ß\B i†%Žôî {­¡Ø| mpËÔ¢Žžò}Õ?JY3@ ;M.òVŒâ=-&ê³¾”†gî!«—§yPîÔTý«ûGýè̇2{þ±z|Ô¿Ÿgðöv¼žµßˆ²_À?ÓPä¾ÅVÐw§ÿsüdÕ²‹Òú•QE}‡3Ïí¼5bý똟‚Ú@ºˆOj¹një«@¨-iýÄ3ÀSgqf©ˆEøwgÚyá<ãeȹՑ`àü§`l’þîwÁÜ¿ºãË眀;2T¨üÁ{° ü°(OçÖ< ™Úñv)—ëÈÿ 9 {ﮄÄÕÏídý¬ïL³‡˜_PÓñA>É%ø¼ð²yd)*9eFÿ5dém\Q²Ëÿú…•x=\ê­·Ž¢éb‚®‚ÉŽF?SkJ 8ÄWýë'æÌVðCˆä»YOéiðQ9‰)³À Éñý~¾Ç“9.~sMõ¯ºÛŒ^± ôÔŸÛ€_Sé)s%2g‡üªaÜíúX3Ê.®'õd1jŸ'qTyÈóøØñ’Óäå­‡äõSYuþÿö Ï92@zðŸ’Ø­ß+i¦ÈZž$µõ÷á¹ài8—{ ¨F|5d³Z§p¦9ø.zÚ ´ò`PÐ5i êh.÷ÀÅõ½$ÖsZK»Hd­ …nͳ¹'.ZÓÛû«k ýÏgZ§miꊷÞ_0‰ØH?©©Z^G Á-oè Ý«6øã¸<Ð?5:Xg"¸Â£½x5)ÌBSóÓØ»`mq2QÐÂðj5øÇøG¢ƒ5º¾‘åºÒ ®tZvJsí«ïø£v•œ¸f1üïôD©õ©î‡t7ß#1 Àß妲׽®U@©¤CÀ2´‰;Á}¯áÝê ˜'zHžIx©«jm†ÀCÖSNhF?ìþ«ÇI_2Ë÷©'D·ÚþëõK¢Yç­µvRø;3,ïéÄE_;§]ÂÎnOãý¦Òb[Sœq¦"´X¨:øClvo+¬Imâ8õsv»È7>ÿ€QtŽ4¹»·¹b¦YÈ”…"™„¦´éj¦v"øã¤uÒúÙì§1PûÊ`†qD .×Ã,=…§¦ºÔÖÄ5Å͵”×ü±µ»D@ÕC‹A­ŒÒtàX“EQïüP³§žá}é¨nÕDbßgò"‡'å? — ðs ðÆE¤ŸHÌwh=rúTúâRݯÎßýÁù ~Qé£Ä0 ½5›e. Iáçcô®7ç_Õ¬¶"}¡ÌhV};=üë´Vÿç[3Só¦s}”; %Z|„tÉn05+®¢ó¦ªÜ}À‰ÖT§)<+<÷ÃïîÂo4„"v'eþxìó†·pKÎÏká2«Ñ²@fñõ$þxâKêì6¢Õº€?2x«âóEþÀýð5þÑŽïóvÿHÊÞó–m /FrOå$²ƒöîyvgó;ÕG>Ý»á©\Ì»Uþ1]A©¢Ë4öÞF_ÊE9 —æ<˜ß uÏ2M>{ÿ<­íRjNÅy*_Wl¡œ¨‹÷þàn>+-µ”.Ò£º/p 0É2aðÂQ~RL_]äýó^¶P´Ê3ªÕ-†6 Î)üc1’s4÷w}¦qä.·“Úâí—ä!âCÙwÑ?OYù£É†ÞpW¡÷âˆÀ+e ø£ ’8î §·äž—<쵋kñ®sÙÌ—8¹”ã3¦â§²bX ¬}”’3ó}d¨•ði8ºÆúPJÈE™¬Ùô•¤Ð=ZEÇ‚?rie].€¼J†pt>ˆÑø÷|®EÖû®ÄUÚN'ø®‰ÇÛàŠõ’ÓArLæë}°ÃýKmÝ#Wõ6x¡•ŽE.Â3qVsÀMÉOcïž5ÞÉÞÔ£)2G¨»°[ ®›SÃi]_Û ùu¥•ípË—ú–oé@ÉDÑ8<7 LÔüÚ8ÐûçœAæ$¨öèi©‡Ô”rVRjF·§¦qG¸5³ÛLWŠqù×o/¦a¸$}4]èƒÙDñ9µ™ü°û¯×}ù¬0ŸzBXøÇ¿}ÿ#¢uËÚe'sz‚?ZÞêêÁírà9ßÌjMt&šbðTüñÐŽ`7¶Þ:ÉM§µóÜnhø¦zf3“¢CAiæSXúÝ6­ZNŒ¬2&©g:™•vHÞöóüãŠUÉõ¯6[…V yë_Å¥Qf»½T ¹¹­Ij*š+!(¯½3ÜYnú{*êßätf<éÿ<ÿˆÀב«_˜:4}%ÿWý£ŠÕž”˜RH$)@ÞéÁÃ>xÏ*¨rl^í޾:´ŠfSljãtøJ+&w–‚ŒêRg¸Dxù¨În*Èã2ËsF^H÷¡ÝGPêŒÎ%TÑì²b~¡Ì¨àLàáàŒ4Ù)”ý«×4“[Aýgr~AçQâMÐÄŸHc ÁxÏLÝ`ùc¦õ»S mÿô???‚ë[×÷#XÈ›¿Ö¼‡"Wç‚|eî¡™TÉ!#ØË,¤wÂ?>Ð n̉9/GY p¦Óà(ƒx¿…Š}„.Î6§â‹píøù4¯ßºÒÙ»½é .ŠÈ»x\쎷f-òl¨tFY'Ùõ¢¤—=ÜD Ê"nÍ«Ïgy “4ûlÿ¨v8*žIì_÷2”ú'Þ ÿðÞ/¿#m´Œ.Ó›ú€_ ÄÈÐø´ð@oåÆ2—ãQÚdþUs[q~‹A5à3Å‘ÙãH™"¡8ôt¤w±^ÔF.¿¢[Pûff¿å eƳšØEè ¥48§ap£P ŒÙðž…ܾ»ú5ÛEÞJEÞj”»Ðž÷Ly'¸ì±ØúÅiMç àcÑÞñokzïýS(ËÕ)މebÊz(sa^€ú­¢ñøÌˆ`Ðô:þ8íËã¬ó¯ßþ ·AÖŽÿèáßéÄ›iÖŽ{Cï³GI?@‹¡%@ß’py'úg÷¯FÚÝMoðG>>ÎWA4Á2ç©0àJ’M–I^ r™;Á?6¡%#p¾%)x½©`iÃô¶uoêXÀïá4û E‡9“Ä…Â?“.ÚT·êU½Ç/¹³ü¢)ÉY¡Ì‘Ç7süæ‰ ë'ö´ãP=¤‰çTOƒ ”·1¸¨"•¹P¾pîR¨j1±¤›ô’m\j¾þá M½µè‚ÜùœiJqNÿý«ü ¨—t™Ë.3y‚$vçk }'u™¼çù’N¯À•wp[^‡c)êþQ÷SY©­YÖ ´|Y´r>D›©×”;2@Ójùà_ÿ*ª¦oÕÕ¥òZªkK]Î AZÞ ÁË8*o¤Þ?_`µ >ðþqœãPj0a)饖Û5º/ ôXá²FrÃÂ?.è5--õt =†·n@V˜EùÍ\SöÓØ{aítŠPa¤”%”žmô®ßå-ücŠŽÐEjC?ÛLÖër$3^£À_†H^PBdn„8Œüãý>ÎPøGðv6ÊL[àµ!”¢8¢.²bô¼ÿ1ÈêÛÿHÁ¹y¸·æ»Õá£P÷ìÝåñÖ¬Ÿ–R~êðÕõwK9«È{þºF“À õ×BW"íUæì©¯i½Wª[þ·¼»›Ã_¼þQ©n% ¬Ôç—ÒXÿþQݨÍ‚0‡_=…ËOl€›Þ15àf6L±¦85¼¹oìÍ »O[¨%Ff'2…›PfÏXÈæ=¹{{/n§y”\* & Üö%r¶c,Fæ±Ü‰ãƒ–£¿LG¾ßèƒ,o£¬ÇìíŸô´ù(À»Þ %§áVÎwÁðG#0eS*ÂçÀ ù!Îô å°R^rËR)£w$‰åz ‘ÅÜù¿#ß䥜H*#‹ÿl‚ÎaËm‡EZiK…x.‡““¼’À™RJj¹Î/¡QMt»Ò[ü7”þ÷?òù÷ö‹+ÓÙ[-昵>ÈüÝÐpÝdsSxcv9–´†”á¼² JÇ]©·´¨<ã>ð•µ8ƒ$ ©˜QöÁ?úÒÉ þ±À¤ò¯ê²‰rq_V~Äëd± ýŒ• î,Í¥ôŽ–¹RVOÂ…×r3^Ç’Sªñ%SþSY1¬ÙÖEøPiðG2°ÄªÇåä?’–”»2ÜJÓéí¤kÀ5á#kÀš½Adid#ÿȧ©e ÷çXgl ~½8_u§—sÌt…Ï€bzÏ.QO ‹„R©©"zIsäô‚Tî«þQÒêOah“IF™¸8z~:ÊEÆÿ¤ïåáS8û0ÐÓ ……T–~ ²‹ÃçGbg‰7ŽàŠÇ èaáqUàÉ¡t¸j&´~3Üé±ϧó4Ìì±~øB™­tvQœÙ 8x «ñÞÿðöÿhC­hüÃâƒ`‰(q:œåHä¶iî<¦´þV/§ þ> ÿŽ+úW£ȯ)Ü<<÷¡ï̇‘•½ççëqUv€?*S|øG9*ìþœàáßá…0η¢F“)-ÿ=ìÉÇ8"”ö €’ ‹ßö³QÅC+t~´ƒ®´ÜÁn ÿ( ÿ9Í׸û¸7Ú¾ÛRWÒÉBɧ•ÚËí¥,ü£  ªð¦¹ü“üÆ«M”áȯޙËà g‘Ì×qv‰'{ø–tÖκ^ô¼ª­xÜ•Ÿ“ñJ,9Å©Àe¬Ýÿ(±‘ýÞTC«< f|„ËóSŠ$meƒdâB2O‡j4øGX·–¼äÒC¶‚ŽÁ?K9ÌÁ ¯8ÍÿQÞ|“—æ+8ÇÂHáù"¯eõÜS »s¡öa5²{ü2YÚëE^ Žj à{œY*ðÓîï>gõ¶ŽQ^øÇ-øåar N!÷¤‡¦Ô²Hå³´…ª&ÔsÚþ‘A«ÁOfóAþ\‘ü‘4*ÐnS¬ö ŒoæH¹c>Á¥eˆ~ç6ÒÉòHöëc­4®›LOá§úXg Fv 0W^ÞLEÍLS9Ðü«EN&ðGCï]2nï%áÝ\:R>äwøÇ}¸Ú}.W ó[5’|ÐA’nÛC+ªò‘@û×z󯚚LhÕ¶à¢RþQIJ|M¦¯QZjøÇN '*ïõ†¤×,ÒZ€Úß#y>7Û).gùŸ¼~Ü—)«®õmû2ý}ýöèN '¡³ÉÏ‹}åìLv;…½ÓŠ`…ìíîÿÏ|Cá&+U¢d4ÞܰÃ;ÅìêÖI'»)à4p®Ã?¾íùy1³”¼Ý[ ‡—¦!& °:QÁ LAS× 4Û>ËÁÏqžµÀŽk#‹§Ÿ8#e ff ´Ð»ËÓ.ÕÜD05Ì“”×ÈùÝ™n:Ñ[8Äx¨æs(rúžoR*Þ€<üÒÿ+SŸ†BuK}Õ?ŠXU))ü#%xû¤¥7¦¸ã)eá=PäÇä½ÿµ‰ÆA}õùy gÒ{múT4’^›ø~Æâbÿ¾Þü«· ¨õcz†Oj6}qç(Va»&ê1–~¢ÔøüØþÕ{&à7·p¤ýܘ?bÔz% 4-ü„n™&Îë`Jëþh 6J—¬Y‡¾RòšÂs'Š`n;áä·ã’¼ƒNÐFïpá!e(w°ûצ‚{Ï ¤æŸàÝá–Yy8·à.¼ ½‡’7¼ŠãøŸÁ×U¸W椵ƒ^éðnP˜ø „{PJ›û¢r±O*Â?ÆJ(`Nh) ÅkÁßq%>Óàƒy‹iûÙüÝÈöGS 9 ;OdT°Žñ~¤èØ`‘KÒIÛëNá~€n·’„²˜ÙÞ›{ˆs‡·X§þQbC[~vÂwò%|ö(koY'鸠¬Ð©Ý]„Ô[K^ðoÒJösE´É6Ž#áQçÇà+NÇ”·ÄãšH&À ýù-Ýâ½2Kº€?~•¢ð¢úR|î^‰$¥œÞæÙ¼×f ïåç žb|ÇtøTV&ëWëúo^¾ ÿ=L‹×«ËøN­&7d’ÖÒÐð’ËpÍ9YKàì'°·§ÈN(«8'Ôy’ùíSy¬=öKôÙ[(é9¬¾3y»‰¸mÀ娾òoƒ„Òãà_ÿª£nEÛ´`oæò!*`Ö˜ÒÞÿØâdLjoL+/Þš•ÔL^jq…RâêÙ­¥ô†–ÕYzSÎJpR<¹ ¿H(E*nåßÿcUûÔ ÏZ œ†æGúÕÿü#>m“œîe­,»$žFÔ÷ÚC3¸CÝãZØ­£ÃÄ€?Â*IËÍ0"ÇŸ¥ƒóÿOÖo¿éËh½¢0Vƒ½þUëžµÙN:pÍþùWg|µí¢v|-¶B[!{»ûïÒ&9sMi*NÉiйl'µ=Øzå4圶Π»ä7¾?XÍ̆¸þ9'¥h„9gFZ%œ¸Ô†êƒ?*›~fég2øã’uþq>´ Z´šöÁû¤D4ýh”¯>£554qMN’;bmœ™Î~Ó—,^Œ¼;Ó_dúÃ=h…7Ëÿüã#üc…¢¼_õ.VGŠE‡LnJÍEx ø#}¿ØŒ¤™ƒ×úßî^ ][E)'ÕuÚ~¥S:ë¡Íüû %†¦×…æÀøŸµOÅKél?Ùü„²ŒZ˜]æcüóˆjU± €ƒ&ûwe‡ó ™F>žþèF˸ ¿£kÐðÛP¶I¨á<øÃ1SÂ Ž ‡[:õá5ÞJU•ém#ïÎrpÐ[ô5d ´¤%üãÎzÆÿË”›òRê`üãš/™sØ»—Ì#¹#Ç€G,…êN‡ê Eýy(äßàåPRÏ?N¢nçáñI¹“ï³µ &ÙmLp^IüÆsnÈ ÿ8GÅ¡ýÅ%,–ÜúL²€?ºI6Ô²6|³üc9Ç“ú|À´7Aç ¤¶}Té§,/ã°rƒÏƒ&×szI ¾8'MQ·@³îÂ3ZÀ?VpVÈ]ÐH29ÁépÖ[AÍËëlGð¨„ÞSs>ºˆRé_Ë þ˜¡S4±»\]· XÒ\xëtq:^˱å{°È5ääsNÝ”7ËäƒÞ{«àîà¼Jv ÄI<j8þJßé ðËh)­WùOpTK°Ü ~ÇY¥Ÿô¾_&kªµ½?3(/#{ï¥Öäò˜ ¡¶[hCÐLj8f+](¡´ªÖÖ¥`™ pÏt²’cáŠw3ý?•·Ð:e¿£‚I›è.‡E_ÝÈ“e ø£ºŽÏÐ{:GÏj87²î’³àšüÒ\ç ×4â­ðá¹TÈLôüü‚µÆÉAù=wÂ}}´†:I.·¼ŽÕ™[Y÷‚ÎÂÕ¦ë¹ ×;¨)å®¶•|àö¸\ÎÓuùûùÇn«µÓÁ$¤îÔÄš‡ŽHwŸþ,û$‘&Pq»iVwˆ»ÿ-£‹Àò@ Á?"qS²WŸ˜]“Sýü#ûSOp­V_¼ûðµã;ë²5ÆÎâTw2‚?¼·3¶ù*ÛUí¬ð¹–Ï É»t×}=œ&ebZiNØ1DvyëŠSÃdtú;GQnåoªgV3†š‘ƒòö@g›è4ÑJê„Ašnfò€F˜ƒvp»L|~œµ.YÅÍdPö•´‹bq60i{ð‡7g£'ȶ9 7±L%ó*åUvþtÖš^pžYPçÙHòèI±ÁÙüüñ êmA‡P*ªôUÿ(lÕ:o7‰)t®~'½3h;´.{»„o¢b´Pœz8¿zÿj]§¦¨Ñ^PÑ3£f+2ÿ<øGC.ÌÞê¹û¡Îé2òø<úþî e†³òÛeÉå± ¤Ä ™È8¯N~âZÌà¹K¹û NïðµËÿ4h!4ú¸ià·"|'kœÓ™^RRž„$}þVÞ¯°ð uè…à¼ãÍÜ_ëè4yk[€c•À³ã»}?:»qvøÂ?rlxmK\ì<…›@ß×òk(í¾Æ9¥ß?ãŒOST.Æ£‚Yw¤Ý=®6ãS|¤öŽàœ2±-¥%«Ì††:šQrsù´P•CqAèý N"Cy³ie‚Îb‰hjÞå­bT°äsÉÝ›¿{[Zkc]}~âh#q‘ú3ãë.«D—³œÄôýó†ö÷èW«Á–Õø&øã>}/ ÁQ8­ÌƒBÿè®ÓønCù ך\Šãñ.NÏ;‡¤0ˆné9+L!8õExdÌ‘8€wËxé'£¹³äph*äòàвT*èžÎsÐ*ÞþQq%Ÿ4à—žwǰºXÛÐ[K Vùù8RYC."×e¨f÷Þˆ—ÉÚEEÓèQm§«$«ÖÔ&ºD<ž¢†ë8¸e¼éõ©¼¹ÖaøG1~о¦bÓ:ÊÅäWe·%øå¬ìÒûº”ܧWe/~²dŒ>FO*æ*~-fV›ŒŸÆÞk½“4ë­Vž½ 'Kt·”Ž×Ùêêk´_F ÐÌøéµœ“èzB—°ë®“Ÿ‘4q?JKù5ùÔ ×Z5œv&#”£JýÎJ-÷¹“M’W£«ã6Ö8nWøyN·£—jîY#i$•F˼6Sé¾ ­ýü?yÿã¼/U ý~B[õ¾8ûòkÇ$ó™v§¹“ÀYí÷]¾zv-;»Ïžo½ð…lv쎷¾Î,“‡*úgK]µÃ9 ìÖK§Š)ê´r.Ø5¿ñùyq3 \ð9~<þ7ó üQ×INõ¨±)`*šfš’ÙRÞþ׬ æ>Ù[ÿÊ[=§†fw4Ûò/!©—G©MpMHÞyéê wö™~ôî3ªîò~êGß!{¥åÕàÛ¨÷]ã­@-üQÁêMqh—É€¬“…ÇSj*H>(áv¨tz>H;ÈAùõé´9µúêüÝ Î º…¤:®Ñ¼0ž¹l³„Gs8Ô z=JÞì«[àAfƒþ eF·ÊÙ)¨È㑆‰k=¥EÜ…ºÒnÆïQÃû`¤“ ±é¨õ ºb*»ÿùDk¶S¤’þQŽîøßæ, fxJÊUè®c†2·å¢ ¸›à­±øWáqí«SÊ`üãŒ/¯³ÓÌĵœÍ]9cá·êãzäåQÈÉmA/¨=‡—ûÐïÔøûChÁ»t2sî þJš“í> ™zTTñNû\z’ò¡„ª’\¦y«ÇJ~hñÿCÜ[€kQÄíÿÏîÌ7–‘Aº;”Fº‘î.é–TB”Rº»¤ééî¤Câïsý^</àuù—‹>gžÙÙ™ûsß»;3-ñëðC¹ô~*Mù€mkS„jÃtn*Ô½6•Eþˆ!7y'¾ ZM®ñ#ävºMŸë äGæC{?ç?9–ìà¢è»œ}o•ØÎý[ìWã†È‰¤—Ì—Ô\@f€‰¼MêxÕåw?üvsgwÇ–=¸FM販êþ՗ȇÐKò¡ýââ³wÊné,£ùgÉå¡<(«z×$²L“Fzd_ÆõÁ»àGa)ÅB¬Ÿ˜Áïl£¼(ï~ݫЃëÊ鯟jy$£µ¦>º[;×ñóÇLÞ~ìâdÈG‰‘?Ú‡ÈKs®‹ÒŽÒF:ËÆÖmn%#4’WW'ËcÙ«O õGô¥¦ÑH#Ë5tÖ%¸¾ÍQÏ‚ðeìÄïÎ_t6™/à+¡ßgåµv ò‡x_é­ß¿ª¯gµ°öÑ+rTšëb-÷µ¹Ô&_²HÀ­ùå{Ó sš˜>6 µÇÈQþ«dõŽk5ùU’€’Ê¥öz«4ø1]€qQ4 j˜˜;AÑÆ“ Ç™‰Ú)a»ÿô¸(àü5W)¼ÓÄ ½rôû¡¬kÝü¦“Éb–ŸŸ¯ 4t«¸iÝ2î/ŽuÞouÿ9n¾5“mqhgVZgŸº)Ìgn=ð£†-oš˜SnS÷]+¿}@:hƒüÑ >µ) ¶©£“ÙÄLjl€üQÂN²¿¸wß«¤#Î1§¼½ƒ‘²%Í…*ÄçÏáó«ÙÅ Êô‚*PÅî6–mj¼GyÌ83ßv†çžAá“ïC?Ûóh×/p×þú‰cýGJKÕÞɲN¨ón›Šâ`Äô‡N†ÔÐ#ç"eƒ“ò9²â÷©PÛA¦Í;Z1·YƒúÔ;Òpzh¿GjY½„ûrNË‹è%Tè7hös¸ñ_h¨]âyÚÛG§¬[—"òHŠöúi€pMÆ@Ý׳ÿÖš¿ËÝkZßwõOƒ‚³a.ØÖ&¬;bíœá¦!=†óú ½äwP­E0<Ç'ô¦èöŒ /+ ýQÇ}A~TC;úwò…Á}f­Ü?j§?¶Pg\ü<Œ;à\7Bá;ò ~Àë8 gÄÕ9 ¯°­œ‡™nèt=ÎícG€ÅøÔª3?‚·ô÷ÿø“+À;N’àGvhq/¸ï9Ü|© íŸÉ™¥+/¶]þöþnB×âìjPNž| ãÏÛËÙ$‘âSÒJkèVýػ͹ ˜²œ³Â=¼æÇÐÓ‹œg¾Å¹jþ ƒÚ-÷« !•GþI ƒd®|Æ©d¡Nõ÷šÕäÞçrù¡8\‚³A“÷;ü“ºÓõPÏ?VØ|\üØŠ3þŽ#ƒ™¿ÊTé‰üÑj¸H“#¼5¨ÛPd¯SÐåÜ5¸~ûÇh‡|ݶySVf§—óúXu¾ânCÒoÄ ä˜|§™´Œl•ñú•>•ÔzLûê< h#m 3PÞµ ¬ã| 9ø¯õKV:KÜ×T˜/À“8Yy§“ÉÇk¥£g¶èc¬‡5–C÷€&»4§4Öyè ux'®ï*e§†xÿꢳؤÃȪLëÀ‡†Q;q¼²àÇ ‚l‡Î!ü ×ä4JʪË&í%õà»âq3ÊGµx2Íÿ”·Ú©eZÚ´Ô ½7 %¢ÝHlw´²ìÌ(í¡vÕ¨^7o>òGKÔ÷ž® >ÿè ¸FÐŒïè 1숰‡Ýz\$±~ ;_;)ÿõû»·)nnSÏÄ3Ót(eøQÌMïæqg8/öü#‚ÓÛL³å1Ú³Ñ{Úk¢»ÝÈö ›Å´3gÜênžªg)¨{sŠ@i=•¡ñö’ýÖ©oRQ*l‹Úvô{¿¿{ÔùüØO{ѯýµÌý5 rR 8žP©‹ðúÕà\»Û¤¶’½þåuÞ¿úŽžA-çwS:$•ïc-Âï—ÐOŸÚú4˜âR®wò£“Ó )a;òG*8ÆÁè«©)<”pÈ–·Ó ¨óŽàÊ«ƒ)Õçû»…Ì:Œ·zô(ò Å¡!ðž[1ª§ñ`¸j…•Gh‡#СKtzÔÍ.ýÇõÛ;ÍÝ¢àÍx´Öàay ÜŸH-A’yp¤ÆþÁÙcé{$²tÅ65÷Â(m¨3Ý´ÆW&âñ¨Ÿ¿~Ic8Â6pÔ ξ2ád ·„6.£ ¨ã8*oW„ŠSì0øq6ÁlCþˆójÁŸrR^ ÍÆ5n´çMpÝ_³ ?¾ž3C¡.¡†ÈF””“ð·ÈÆ¡ûÎX·‡ QŽOó-äª'Ô…vQö¤¬¤“_$¯þ rå®RHæq-èw ¨ýTÎ •x§meã‡jÃDîs¤ñFT‚—3É´R6ÞÏi%œã{ÒWÛè!}¡÷À§¶ù#7†<˜²™“ÂClw~}«Ä¯]ÿÞíB´_]>ÈU?>•F2I ¬,‚cŽê­Uã’ëüÔ‘\‰ýýÖ3ÈDz© Ý2ÍÞ*o–-ÌeáOî¹'GiWÉtGC 9½eP~WèbI&ó¤ŽîGÒZϽx ¿äX’Ejò^ÛâMY™ÎVÊÌEðI_"5L¥Á\QnI{¨Uä¢ Óz(­€nÖκ½Š6Óm¼š'!ëeE]?á“ÔÐvySÞZç’{yÜßáì<Ç¢ü„g€BQ½ŠÐã Ðö': ŠÎûXÉq½¨Ÿ!øù£3¯‰'S ;Ü–±þîr“£²B>Š‚sîFVÑâhݨ%ô®ÔúXŽ@ç×j8ñ¼¡’nÃ75ËJ¾é…‡n¦Fì·h×Îý2Þ<´ÊZ¾ÀÑ$¹Ô?þZÿ*ƒÓ×¹DéÁ£ ô9úÿd\“2rX¾Ñ—’WŽÊÚÅßMDW(R‚ÄÑbÈ¿ólç‘_Á“ÔÃö~SÞvç¬û%]Ãù>áÄôšîóhé¯/Aµ‰ò;òÇM§û4¾OÊ-½£áe’.FÛ´æßâçÀc޶©ÞŒ½+Î S†ªÀ‹îÏïÚU4üh¢}´ˆFG™©ñ|!\–]ÒBÿÐ üRûIfJçÑޏ車!Ö/©fúÚ2àGkð£ ýŠüqIkê– %5ÅÕèê-Ôϼot\Ö+b4‡4PÓû=\Ø ŠÏñB¼±üÿßq%P4ÄósuZ;þ%?Î;ÃÝô¦ŠÉ`¦Ÿ¬ ”p‹¸YÝÂîtÇuÎ~Pi·ÌO¶0†æ´{ܘ&«ÛÔ¹aòÙd¦1òGi·ÈÕ3® wzÙ–¥ÑÐÔþ6 vJ˜„`Ib(}^;È.qßçn“ß;)ídáЇ©PÓ4\*Ýü˜K‡¡eÙ©!ú/Ûf6ôSÕ°Ž:f²™®]‡ãžOè2†+·èí_À9Çä¨ãs›¿Æ¦²ïäG^§:%§Í6)…ç˜<\KKÁÙt<Ú…ôŸRÊø4¼e¨·øÿ~D2#é|Ž¿ûj_²4 ç¶’2Áëu6á¹þ[›WèÍ?¾¶3þñùGB§¨›Š?µÊ„$Dy}Éç“?ÿ£(Ò> ò½‘~À§~‡t²ÕÖ óýÝfàGOP—ùg¤Ô³àW=èdGð#w Gæ -ém^‹õwA-‡‘–²R¼0ø±#Ál´ãI¹/h‘ öêJ¡øcpžßB«QSÐã$¯à,œ˜OwËšÖ%æ&ýßÖ¿šç¶´?ƒh…Ù×ôºÈÐJÅ8º”‘Ô²NŠC©òÈ~n"9e%Wãx\_9ù¡ O³]mèUL£»QÉß&ñ=þÉ4%¾>‹Äí|_ªku®1½+ U ñ× Íȱù,Ÿâp²–ã Ÿîµmg7:Õö×3§š¼Jý˜J;Y-9½LÑIÇ›¬‘½\òœ{àßA‹¤å‰Aöï_7}ß*o½-ÄÅøR`î+p7ÉB+m¹Ôpµ¦ÐórOgIdœ’àÇ×à`žö|™¤_ñ¾m^ç[çøñ%߯Ø@shRÑzé‡Ôñ‰l‘ÁZS¯KFÝe]!±´°6Ô«8‹!þÞ^² ì¿M£ì€7å-v¸w(7_¥å$#à6—@þx)çd§þ®³ô0òGTÝ.‘“ƒ.Kѧk€pùx#øòùù gª)Üÿ|5¥æ×H­D¼ö:Vóé3‰¢S5†ÞGrøFÏ€zþºîwø¨¶”JàG nOéÑFÛ¨À›^¸Ë©d¾µy©3òjJJ[%½wSSÊfd£àGUâõòÆi¯¯N—ºCâk©«áØ_¿ý;ºeÂǤþ?¹u$1Äóó¨NÇ|{ÿ]dzÀg¦›Ý43YÍäàúíKár¾tSCëg;ôüxnAí+@5¿±‹Ý&‹ÛØyn Ùp¦‰ÙéÖv P= ÚyЗßmid„ÔË&¦¦ÈŸ¢ü6®-dgÛåï¹þîIçºó…=zl ²4¿'æÔàGs»eï ’”ý`€ýüxŸw:šif­‡´< ?FÁ„óýˆoR*hXèÖWtÏ–€;‰G%ßÉ´N[ÊH{q~.F|7ètJzm¿¡%Ðдü+Æ÷=Zå˜WWà=Ö/‰`F FU¡óë‘?p¨&”‹§A™[³¿Câièâ$†{È Ã¨½b?ä·˜N7#ý‰¯JC‰h8Eƒ7èæÞ¢Ü îz?7‚Oßñ}êì¯ÔØŸNÒ1[ż£´~Î@Ól‹ÆãA†ó8³ê(£1ò㼟›c&ÌãfHI›@õ™ Vrñ¹Y)Kü8È`–Ûä@Ãûq.°÷8a”ü¨Ï=¡Õש.?æËpëÙ9 øqj4 ÄLê¿­ß¾ÐmeGãÊ¥çmðØ ø¤ß=TšR~{Ô ’[~ã†pÔûð á¹"oÆ'G–F¼À¶µŸ„jÃÈn"P¿-eåÑ|ƒ¯ðrŠÍ8;Xq’ï÷ÿ˜­Öógãõ”d2ÓãÚlç3ldǤ/iU¨çç]\W˜ Ⱥ•ù(€ò‡—šàG,8ø•:Mz 4’WBž †-@¸ìœ'päÐávt"ÔóU6?Wå#àxfð—ù!O”‰àGî‚ü1MÓè]8ûuKFHM=À­x×á™àòSN#yùxˆõªÒ@…¶SA´ÊÈþÌÏ^\NNIýD‹É!(KxðOt½vÖ9ð⥴’žAyƒÀ2ì¿Jãlû7å­wº¯‹£‡>äˆHÀç¹42Aó'Ê}9¢GtŠúûû}¤Gä*¸Âò³.Ãn΋9/¯¤/íÄûG]wf›¬H³þšÔÑ™á ’ûÚLÛ©O¸p:X ‚Ay´›>—ƒRåÝ`ãý ©Ðbq ð£Fu¹7½p‹ÓÀ|g‹Â;v€§‹M«%®wF £—ü)iõ…ÖЬÞ÷Þvð£ê{CïQù¥¥Fà^Á'’—ìoЉtÿ'ë— ·‡ØïGVÿøö廎3Î÷ ¤ƒbfƒS¥,Tw¸ÜÊîG>ðùùŸöf„-GEÁãIv·Õ|á¶vž™¯l.ÓÞìqÛ»Å>¨ž 3Tý•õçä£V6"5v Ô¡¬6“-‚þ1Ï ë-Ÿ¿ÛCÎgvœñÎ`þØBɹ(˜QÜ.„¹/\¤úξ6ßëùys³Äl±­ƒë_ý Úžâò#8Ì”^Ê¿ïR½+-½{ýÄtN'|Ýf›–"aÄûë'æÁY·‡Ö] ìü eŽêPŽ™ ]§w¾¿û iƒzF­ RCÔ3Fj?n ] rìñ®ƒþœÖvœûÊŒê$uSÒ¨n*JÏ~ô§qô;í‚“êI˸%GæËt D9–öãÎÒ~Û:Ìõ;ƒ•èEà‘hoÕ°ZàG{$·<–’Ù6†låöÈóïç wV¢¨ài~ú<Ì÷wS™Mvj×ß“>q'ø1ª3zØ™oójU¼Á;8.g@JòßæY &çJ&¼Ú­w{Ú±H ix †Óößy=M%Àÿó)RHáOg¹¾†:7… AKrxiÆ“lCú)dR7®Wx€ÁuIÖø+ÛpI)‘?škmÝÿìÈèuV™‹³NÏçáîcÈBþ|=ãÜ~«Än4ª†^q™¾â­ÈG(t—m’ŽsËt]mݢὖrGHG0£(Ty6Ç ®íû'µ¢»¡žœ-³Eq–G ¥%¹7®Àyž$Ëeôào%¯·^“ém‰ç=æCùö £Ldu©øQ\êóíÏÏ“:}œsTžËóI´î ô„žÐûk2B-'ge(¸ájt=«tŠDÔÚH‡ñ2|îfN^ææsÔ϶~SÞçª+\’ÏÀE]æäè©,µ¤–Æö¾B"z)[ô•Ž×-šÌË¢;å(hRHFêYôìFh›àG»Óf~3öŽ9‹LQÊ íØG8 RèPäòHmßj<µ y#¤™ò:ZèFé£ÝUä•ö“ÜÁ=¥;SNd¾ËTåM/<à43ýmô6ð¡ih£$Cþh$k%Îò¡VÓ¸ÞÞ6ðcþõžî‘×èCåÔr=xß¡G1 2ÿŸ¬¿{ùà ñü£Í¿^¿=’sÔYâ&7uMR³:øþÕ/ænM·¸[ÁÝ *ÿ Òž&š!¶•‡޲‡Ü¸¦’ÛÍyeJÛ ¦“ù \ú°ùç¹ìRèË+ë¯8ò%õ¶á©¢“ÞÄBøÒ¦±µìdœ÷KHçœuN{j¹%Í¥5ƒ³S*kgwŸí„þÑŒÚZµMß+t0Ì4Û™„g¢C W‘dcóEèý øŠ»¨ã i_hß»ù‘Ýù†âÓ6¤á$œ•'QvÐÌ…6o sp†GQë?¡{µ Ëàǽsý’pf&4µ) ¦3`ˆÅïh%JÃÝáóó8Œ²£(û ½BXGƒíÂ|ÿÊuЏ9é%ýˆ3ÉœÿñÐö‚Fߦµ\ùêwaÝ~Á¨@kýU*mss#ŒÒú9ýŒÿ^r…ö>F»pV%¡ù/)O#⃛‚ë_me6ÃÅV§8èM%(NüØHjÖÙýÚ!W¥DX‹òfQ>UÇ¿s)ä9_ Ò#œÀ'ħ¿Fúloþmí›ánœ[e¨ü ä€&|ž}/c+å$ƒŒ“¼z~#W—¯d1Ú2—™ÆóŸÈ*“l“¿½Å|/<9ÏÇ×]âe”Œ÷s:d| ZØLW¨ç½ä;pÿ?ƒL_[ˆ @iæÛ›nD“Émè\0EmÓÎq[¸y?¨žIì|¸¦ÇàÇopc=íMÛÕIešRѶ¥íp»Î=ÿ^%]qŽ8yìqèÕJ*ÞH19=tº„¿|Ú_9tõ×z K÷BM?3Û~Máx><ù(z§ß~â4bʾ 61œõ”’Š¿GþhGŸÐ&›‰RaÌ¥\àÇs¤sÿ­Ó_¡óKà<·’¿ëRëwî®f ’Q#´ÝaðÃ¥1ÐÄ¥”¹þ{®Í_ò,Ôw#Úô)=ƯËÀúiÿ˜?"8ÙÝtôŒFPFJ‚ó OÏ?üõw×rS(ÿ2ðƒx?Úð>˜4 ¬ZC§h·­æü~Îw¦+Î#=hÑ©m#U@J«úDá”Ú>1!4ƒ.û¥,@r*EápjQ¦0ï_¥0[í kÔ<9»¼žjÓpŒôIÜ ?öòïÔ–où;7q*䓳tTÚBq&nk¢þmíÿŸÜ!v8?RÂU®ÇOá./¹(2Ãñ×3Ï-®/_Ê/ÜŽ=.6çDðâãÁÐûGÅqc£ßÖ¥‚Hþ,ó¸9=ÊØÏg %Mu¥>×3ÈI}%!òB1Ž–øÏ?–p,ä 3ÎÆ·JìäFDšY@w¨2Ψ?£tÒGæJ>.$óáÆ#{K4’WZð é€v¬ÈéxÇWÖ#´¦«¡ö¯ýÑgÿ]©Ȧ@ß›|YÖÈ0éÇ㤀·A3i4½¤ç$’Ì–vz’æU ê/|Œ_ 3à!Þ—JæôpV¡÷äó”•ýUÚrm è÷EóÉv¥_‚Fu•¶Ó ø÷ºþî½Pú¼D ¾ß¡Ž¶ã›ò:ëÝRÉqZOw9*EÆ×•ô#/‘ûrHïè=¯ÖK£ûd«žÓ2X·Óqpk38< c{¹ùfìýæl7¹Ñ›*Âßäåèð&ýÅõJé0-ô‘Pw¢~¿kVí­gdŸÔÑCêâÿ»IJȱ¹ú`N>F…ÞôÂ#NSóƒ\?1+e¦õ’ß»¬e§œ”xHEÃô¯‡7ꦽåŽÞg’I~ÔÜ ~\ØI\Çÿ'ó¯J†¸c¥Nƒ=0¡sÊÙî¦4ÍÇfƒó¹ã¯­õ[Û-‹2ÇѼәkfÚò¸J±i„}áL ·—#Púj¦·ùÃýÊ-÷AõÌ~t€b5€êg¤1ö ýÙÉjâ@CÛÚò¶…f—¾'?Î:לŠö&í¡ð 󠦧¦¤ÔÙúûw¥Žå-h@pWª÷)±¹ùÞl‚Ž ÏFú˜%½g„7»í§ç(ß߉p¦]éxÿPf*§¹[š”!IÅDºxbŸÛŽàØZÌm¡µ3¹ ¿ ýÝ›´& =6¡-ŽÚæN¥Íu¦"üIxêçÏ|® "¶?ø²{æ°‰en_ÿ+tc-’]aŠŒ¯(EÑÂÈ祑?üõwýý¢RÁ'.@yà/ü~cÎë™á—Ïòq(J!NÍWÐ*çè:}Ê)¸·Ií†Þirš;Øö±Š@«~i_ù÷çÈŸþ•¤uRXŸH.hq ).ËàqcAMÌäO¥;o¶mè·è£¸1‘$›Qqð#ª<äƒp› ç‰å;Ú NüòÂydŽÞü(ÇÉø¼},YË(Ýõü¼‡nw#Ý¢*8«8»xòòGðãÎÔôÞU¯ >©…4‘¥8÷4Èñ„d7?Bÿ~jþù÷ö ´ôIxÆ¥á'¼ZKOÃÝ%“7NÓjR}¡—%™L“Úz‚W¢öíyŸa+Q¥Ÿ°ß”•Ý™~¤åòÈÞ9x-FUgn+Ïá¸]¸òݲ\Ë!äÒ­ÚG—Kbès!ý=8#éWÎ/ øcнªíü¦¼YÎm7<çdÿžóEŽC ÜËÏË+ª³ÀŸ_4¡·X7!s}ª'd^ÔÒU÷ÓYªÀþLþþ”ú$?6š²T}iòexx“¾’Ó+¯£ÀDKÛƒEìåÕ¡*ºWR‚+¿ñe!)8݈Ò‡C¼¿{ÚéaÆÛ/‚ÏÏsR.š~œÓÚ² Ϋ´„–õFzë4‡÷³ÔÞE08•ä×È\“îÚAôܘIn—…=ìþÓãLà‹‰Ãiõ¯ù!ÎÎ7µéh’šùÁçÛ•ÜÂnfhýlçeàývgúŸCŸÍ[%¸ÿàp{Ènw süÈ‚O8ãÖÿÀù…íBjN¯¬?û-=õ²¯ìX§˜IDm¨œ-b+Ú±v¬û>»•—œsNe{6¸ÿ`ôí-ð3Y ˆì š åë‰õWˆo›¾×þQÍó‹m‘<„¦Ód8êߨEÇØÉŠü‘„#GÚªäÏÚ~÷ý«ŠÎOàãað#1ÒÁP8ýŒ$ÔJqR@Iýó6B«"E䡯ÍwïhÅÄf=iá<{ÒŸv<þlhÄJîÍ 83òÇuŒ¢Ëô?/€¥Sì’\Á ’SÂ͆t0òQ5a{Ó"gwÁYNãz|ŸNc,<€aÆ‚ Çm£Ä±ÎdS´M‚³,mþœm€küšÂq}ðcŸy}jÌ•àŠw+/üT/A˜ëïæ0+í4Ðu÷€“ŽÆó¨WÂmxJºBu‘$îòÎ-ÝKþóHb©x$²q虢ãÜ®8·*È/gƒï_ÝÆÕÝ…¿=æ¼’V6Jn½/þ»¦U¥œ¬á:ðô•øapý’.¼ý1m¨3þÈòµ‚XÆž¸² Ws§‘ø²¯Ë×ÚVBµ¹Ã½$!Tû3¤Ï§ W8YÇŽn‡ÚðG× ÎˆE-y7WÀç'ÚO´pð[uÆöîêkí&ǹ©´• \’óóäWÂÝ÷¢ø¡ž ³©ƒüØŠóè žà2KºÊ÷¨Oo èGãyä6OGmð ÞÈ5‘b÷0É'ò_yëùÇgÜSQ|Raø¨YÔ“ËŠ£?èŸ`î ™¦5?òèüË4I‡üQ@·ò6þŽ7s™…kwª„Ø c³³Ó†öøiö úÛEÎ,5¼—ߟLGè+¡k4ª—FÊa]v¨ËZ«ò<œ÷×TÚŽ´iÞŒ½ÃàGEôáêð:é¹®ÝD+ä¼VÔaàZ,œi}dÁóšODÙ†$ó³žá»ú¹ä§—aÜ¿:Èo6‚ŽHGÜÞ=G’œ>ŒO&ó:$£6P䫼J”pÑ2Ÿ"©ô3¹—B•7Ê`»#‰æç| NÛßóõ7*=/ç¯x%Eõ®d‘\SJÉFü ¨é5é¤-¯µµþ¶ml76ø×ZÏ÷ùï€r?>–3üTúh=Ý=}Î縧Äî?˜–/ó#Ž6È~œu~y«ÄŽ.Ãå¬ýËårÓJ$†ò\ùc¶†ó®êK­*'š¡¼úȚ롺y€ÒQl÷Êë`?ã<|.#/Ú/&rÐF(}7É$«7GhMæí–s¼Dªèvðx¸<y.xWŒ†˜?ß™ã,¦ØÈy—Ðþ‡1&zq-‰£ýõÉ#kd¬6ÔRZï!w•äÚ@¿Ôc(oø‘Y):¥Ê¶ÿ›òüõ¯nÊCp?§„?¹ ŽÕûš'8ÿpÈ1Q×i/ƒî“]`Éç2LwÒ>d³E\€[Q;ÚÆ3öV;{L*íØ|äÑjúFnjIˆŸ®’vÒíàGY䢧²Cé M$7ôGÉCñQ· Tå±~ɧ³dÓR{äº’è¥ %Žw^ËÙ+%Ôõ:j~¯›·[“z]´‚GÏQÍ$47§›èeáádQîÿ“ýk/ †x_Ffÿúù¹ƒ„¼ÔMlZ›Hf…S¥ì Ts+…ÝùŽuÞGKÿ:^f˜‰¶!´ø–ķ©sÍ”±Yñ þþQ60ÒA'ré8¤Ï¨·½d'8YÁZð_Ø:v]ùžûG]u.8uí-(òb|÷ô²Xœ:ÝÑ.Ž¡ÔEícÅ6|¯õKš›f­ý 8Î~hðþÕ·ù#/ƒ>=FþèD‰Þ#”pÚ CNŠñ< ;E¥nÈWÐ×÷€vOQïšàÇ ü_óÃ;Z1ªYŠÄÒ˜†áÌ&# &®?Fó0nÆéƒüØ -u üáñ'Ú!æ½}¼äqsÃñŽCBJBcèãàþ‹ ÷“yFã4®Æþ¾ŽOÁ¸­ÈG?"Ï쥣¶ºyFi£œî¦!|×'ü\¿þU \?øóÏ{ÔD‚³¯ËÅx]ð]ÛQð}Šs®H1ÃÈûÉÌ*;ˆ‡B×RÀAπߘJ™y.÷äPö‡Ô‘ŸðEð -r×o¨¡?ó%!'äþ&­z…•ánG;DËÃû¡é]ø5úÄ~*Êϸœd•EP¿Û’Q~ ®¿;›rdþŠïÁí&–6ü+zNè·C^:Qá¥P>´|L9Ë[Ð;ösjI%§ù¤´€?ª¿j4y ¿ÿ‘Lĵ/ÊüΑe=ç­£º;Cñ㥭 'ð'ÕæƒÈ[/)“ô“MÒ˜óÈR(aLïð£ƒìç!RIrY¤®œLÂËèðהľ½þ\7›†?gÿ-¸\Ü—9m»ì’oe<÷“øÞâ&g­ûçD½7Ó1ޱõ9ïkå•Ô’)ÆõúëZä‘ĺJö€$…¥«n„©ÂþNò?R ;Ñþµvéfg™)LÞ} ;ÇB/(÷Q§IŠ´ —¤“îÑkZ[‡k$Ý#¡÷ e*jZ‰ƒµ¨(5Doªbÿ¨Úæ{›—º¢¢l4GRxçÐö¿ÊI© ìµÓ²Þ÷Þ)ÍâÕÖF Õz± Ÿ ±‘ÚoÚñàÇ~Œª|vVØÃî?=ŽŠ9¹»'¶Nè7?Þ÷x8ä,t3™&øñÅÿ›ÿQÌMãæv;Ï?ðý«Áæûø‘™Ûn$ã¸5œg¦¤Mcj›#n]7×Õ3¾ v<¶ ¡4Å©¯IÝœØ&.”§œMg+ÙþvÖ{Þ¿ºîìpjÙ›´’æB¦Â—Gå|”†ÙÉ ‰¿özEŒ¯ÎÖµ]ÞëþÕw¦¿™gc$“~F¯½@ß#w\@^˜Oá Tåé!HZÕß·ìüÈä  Oi§Mô’Ç€•…‘?Ú‚GàåvÒ2¨õ´êBÔ¼õ6?¾£Ûé¨C êµLÑñ³>8’ƒÇóOð™È! Æ*::ù+`M¢uÿËý+v ºEAÄq”,Jñƒï_MDbXÀ} ý‹ öOqö·Èð^IýÀtж2aÍHœä 2mñÿ‘*w,…1]‹^ÐGH$qínKr;nÄkƒOögáÿ#áge$ý¿—¶5ùc¾»?w@þÇSp¦£)ÏÀß§ó~Bm¡Çx†—½Š³=nzœœÇš˜{÷Â׿ח·óynÌwÿßú»O¹Œ¤Õ’WOKnYÎ ¥(ò5[.-Ä)äg;ü-xnBª€«…ç°+×ÀÄ´|”³I°äøÑYwè}À×y ¤‘i\ ôç©„t“½à–³)Ôóhh+?Ôá]\ ŠO¾C.úŠóÊz(õ§Þi¸ò² ÅwÒ\æ %„ÚÇ>û5(gtûöÊ›Cl0æ(­§B ¥òM^++eœŒÂ÷'õë'Cy[d+Ï–º-º‚«#/\à?‘@ª€_¿)+ƒ3ÅÙ–o‹”•šw#6ç–â¡Vk>™++¡Í7¥XðýÝò ü~v”¸‰ójõGŽË—é›ó×;ÛÝ\éhàäHnAñÖÅ+§ã$>rÂMíƒÔÝ{-›‘?¶Ã£õúe öwRù±Òf3öŽ;ëMaP òG"އsn.ɽ¼:J kÝ.½tŸÔ:W -Òº›Oé\) §ýU³"¿þ5 é ÓÞL²™¨ùkce¡5’ÅÛ¡ ÀÒQÏ"wÕð†z×5‰×MëÈS½ŒT“ü ÏéŠLÔ¾FíØ°‡Ýzœä ±~âÓ@+'ó¿äGg©³Âlú˜Xf™S¥,4r«¹yÜ"îçV ôÆÿý¸˜j:ÛÚþ ,úÅÞq=“Æméxö+›Ê44·ÝFn¥ªg~»¹à¡mB'¨,õ·I¨¯óiðýÝJ6µ-mÙuÛ(ìã°s©`¯âšM§&Ðá½ÓÁ5Ô?æ@#š“¿O\÷àüó÷ɧæÛ¦ÄÜý{zÂMèDTäö¤¼€ðE(ž·îÍ}÷þƒÙI”–öÚ¬Ê6ÌÉMª¿€^»ìm?æÒð£ï;÷ g Í©7¤¾DPýÁ÷¯¦òøôÂ<:¸ÿljàžågL¦Ú)ÿ¸~âó@A·Îs<ÒGJüqß~u¸B£¹´v´þQp†ÊE:‹O€ö¸A‡mcóg¥õu¾1uè<¥@üõK6Pi*ÜÉÖƒ/{dîOvÃã–ÃX½ºÌ]‘¿î]ø0ø±"Ö,±Ó^Fshñtä‰ä¯ÚÑ“òŽ„¼uoAQrÁ‹_ƒç;„kŸþôà ývá ÷{û£ï~ø4r@=¾Mþ›µá¶ËJ6ùEÊÁ§~ ~|-¥dò‡ žÇxþ·¼Ø¶ùÛüÁNÜàìú¼”€B{à.vq.I'Gø¢|£ ày¯êmÔ°»Ä•©œWÿ_å‘ >CtÜ·ßßýÎÔèøQ™×"÷=¢”òƒÌ‘J\PVé"Måí…¯Üa·9T ©k)Ç#{ø1Ú;R(~|c á3£ópŽ®BRè+C¹³DôVj ¯‰½‚s”Fzœ„þ³Jî!/?þZo=‹3ù#+Zäùw Q=ä4ÿý+O qÓµ*Ò[E=¥]´ŸÄÖŽðýq~D‹d—ü1êÑØ~û¦¼½Î7ˆz~ä:¿´ Ñ2éd¸z^ä ÖúPGê~MàEÒ²$N$?è6x’º¼ŽóñpðcžM÷fì­wv€U‚«ÈeãQv*u’ß5§þ¨ùôµDѨÙ)­àÿ.å+Ôû9_Ñ©R×ì#ö×H¬ŒdU!ÄóóVfŠ-‡ñ=¨”˜†I ï¼Ö’# Y]-â}¯U¼þÞBäÚI¬wVžKAi«¸%=·?Ó» ½>«]ö°ûOó!×»sšüëçç±}È)LOͬ ®µ3ÐÚ-á~éfs—;îîË™eÆØ¢ðòIh=ï¾p£¹Ã²9l~SüøÊ­öAõÌl—÷¯m'𓯨v˜“ÓÄ„ÞT±ùmmÛ×.zÏý£N;Ïšöí@ï) …ÙD8¼tðcRpþ`%8ÅnàGIú®xXG[3Â,µ= šÓPÚLèð>dÃg).oC.ƒ¡Ïlÿže|'?š9-áoNØÏ?²ñPJ…á©Tù0¥‚ŸÛ…Üç´ùé jl:½£S›¥è›ñé'hôw$ü<Œí±üÆ&¨ìò×—º\5×ß?jÍ?Îÿˆç4v¿$—ÇRrÊD?R\œ×@”æð·ü3®ÄLŒqâãдst”Æà³æâwÿùGXë_-uFšê¨U"ž„«z „,~4=ž¡×\0—Í+(cc®ÌiíK`Ìç£a<ÿ8ÈavÛ鑇qgÎŒq>‡ºâzdã™Ü•ûòŽ,s‹¯ðVœõ§¸:W@ú3P„hÜÃ$øÛÚ›“ÜŽ¶ Õö÷¯àkÜš_¢_ìî?XQ2ÉrÉ~$‘ÍÜV Éb.:Õæq,iÂKlzorè} œ]^ Ç~ž÷¡gl椒XvðYi~R/ë#þƒkH@fÀmçâÛH‘¡§¹Aëçβ·JìïF±ÃÔçmH/)¶ô—R‹Êˆü±C£yUå1¦È3þóe ‘+›ØpkzjþGg› _ñ+FENþém/o”…ÒAF"$òfir¯âí’—¼\Jë žŒs­Ì«øø‘BÊð™ûvú9Ká jñ9ÿ.úlW®#¤½>•’²K–Àç?•Êz^Ûè<‰§u´œ^ÆêËç@Ôñ¸Rç¨}ˆõ¯v8ûÜ8ðAðƒHcIÁxÒ[/Aó'Ë™†¶«gô#/¦ž•ºAbúaKô ¼Hñ…ìpûyˆüqØT¥ò¸Û)¿¶©…ìA&š ¹ÔE µƒCþˆ,r 9i"xy^çH5ŠÁQÙßã£:Ãg¾áÇ~§§™e o·£”&Jïª6?ÎÀgDòjY¯¯·V zuŠ<׋à|4äšÄ\›^ÙÑð‡0†òØ a»ÿô8Hã¼zó·NóÍpÎç[7¦)m²šùÁU/‚éÜÔnuw—óHõ!Gbg­¹d¿¥nðpëí&÷©›Êáij_ÛĦ—™áFpCÏÐýßjöFð9øüþ”*wÖ–v’›lT˜ÛT¶‡½owüíš°CN÷GƒýçA£TŽKRliÏC ƒ–ÕA¾olsÙï5°ž„ÞSž»'…bÆæ Ô¢°?z%ã'ð$íúîÿÝë_µsfCg–ÚD¤P¥¾”Ž>¥×v8jy‚ÊðMò©t›ºƒ!s)•6ïÚE%ž>v"¿„éŽí<—>ãE<˜›òW<E¢x€4³ùh$ G?¥ª&¬9Iý%¦-Ý¡hÜ>£ùtíô9þü¨M?›&šÌç\ $ð÷ªŸó}nÃ7 #\ ´3ëí´ûîÎ)p6cÑózS¤‘FÜÙàcîç üˆê¯-…2÷âj¿@m«™"Û{l«[l¬…¤v‚ /  Ë ­šZLNK}"ñ‘<:JYÃ_#TàýøìdÒŠÁÍ|êŒ8ŸïyóAí?–?y.EGMIRd˜m’S“è<ï]3š#L€Zfç{È>·y3Z{’³û­g»#‡o¥‡Ô„WsE¾Oq‘fƒ^•ÁãZÉ;¥Ïµ¸¨´•zøŒÜÐQýÄ=<î¾,M4Þ^Å>Cò8'‘-öŠNr$…ÆHSÕ$ª7Hê#y¨Ã_&IÝ„3]Ôµ<¾Á©¥.O³µß”•Ø)ã,¢\øÿgÈ÷ý=xÜ‘Nj´†,•1ÚOHýU›ë‰ŠÒJ뢧!%Æ–Qdªõ¦¼ãÎ%7<Ámôᓜ HɆÔQS‡Èe¨‡´‡þ¦é½¸z^ü] ç*º”âsKP®8Ÿ h¶„­øfìÍt˜ì”Wt7¾&~m.·Á‹‘ÚU?ÕCÈ.Sôœ¦Ò©8çKRB;ëþ3˜?â£ä‡kÊßRë7½ð¨3׬„Öõ…ÿ*w;‰í”v–‹’ ß; ç×ÍûÕ{®e¼Ö:KŽê¯È^ád¢æåfÄ4)~4(¼óãî¿<…Xq7’Ó-Älô;¬³Ú™àF6õLn³È©…RÖFºýÝ.nCw½Þ¹üA¥í |cÚÙáT#Ð Ç|d¢» œè¶´­j†šOM·õÕs§éG-‚ó¸'ÀƒµOíh'«ÉJ5‘#³Û:v’=åºïUâNg—Á·߆œ1Î>"¢\TÜN¡%è¡Í) tc¸f¿|¯õwšÁf—í%œ ¿»ˆnÃÕŽ¤È|j㯋öNç¾-F(-Uz'?r8åè#º`sSTŒ˜IøÞJhÁ–ЮKPý— ”òjðm=zk6ê`ú¼ãœŸ¹Sé$ˆØi~%D*¨G“©8‡Ê6àJÐæ'pa» £‡hÓÎþÇ7øn2»Ñ‘S#Áçîg g:>¾7CÆ™ÒUºI7àî'R/8¼ùhÉÒa®_RÏ)lŠB¯âòLêŒk±ײ:ù;ÐÆá=ÅÆ·Q¡ÏíÁ¤_p¶›QûpjŸQÖ0÷Ü0f.¤A®ú–3°¢íZÑxä±HÁÊëÔŠ| •éä8òÜ œÉ%Ôv¸yí„~÷âG·“Šk–‚7@Ù:òcœÍaúŠ_pømÿÃ’MNq-ä•\tÊ7Þ‰ïpyk Úœ¡Ú0‡›NÆóù ê?…ïRkÚjý«Æ6;§G«ìEâêδÒFY/£d …›¾ U4.üýùB¦J=Ã]x´ï>üu9¹Tæ[¶Ó›²8œÅHËþª“ŸàZ.¢ö\RâCG‹hu¹'ã´î–Øz_é‰í遲xwCZˆvfc—G„˜O²ÃùÝM„Dv cöÒØc:Ä- ¿Ç´­n’ˆzE«z#Àß4^2ýMéAýLérŒÃ*ÈQÅÑÇ»Ûq6|ˆççûLô¹z G® ô\Ñ PúÎZZ?Ö–úLסV?i<Ý,ßèL€ÔPI2RJ8Šp9åøJˆõKn;ÝÌ<›‰~Âõ-FŸP?IãE÷êÈoò»ôÔÖ^A]ìñþÐtÞ@*ñ¼»òZrI-}Fß…&dúèÜõÿäýÝóB!ÖÛvœN¢ÉûÈaÝ䦦Éh–:…PÊÌ@U·¾›É-áNt^àü~f´­ÿœü¸ê&0õÜyNL$û4¦©9ïVvË~P=“Û¹T^Ú´.øvmDªí”4é¡xŸÛŒ¶°aW¿çú‰¿:´Ö߉iJòŸ§äÏ(å³Ë?.ƒR%À~6†mü^ù£†oæÛÖàÇPAþ@§¨y|~n/%Ff¨~ä£.“ʽ“ÎÌQ›Tû„GC©ý]¿[@AQQ8©Cô'(× uŸ ¿Þìû×F1S.šÒÏh·½µòÇ<*ÛžtxCðýëþê%TÓÎýÇ ";™ÜløúI#™§Â‘ sÍ{6ðOT¿Öçh|-q3¸–ï`Ì/´ËVóùGgˆ)K§?& ½¯‚_ç@ÞðÜ›ªÙ6>œ}g†ךY€óM@ɨ@˜ûGd„‰Öÿ‰ÛÁ»ÇãÉô5êPœg#} †çÇ ®_²žSs*>júû}]Ãç×5)ÝÐWz¡ÛÅŽÏ×O¬ Eíº–Bþ¨œCWBoÀo⯤¤¬æ:Ž?Ç'uåË\‚gØ–ÛÿƒÝøTg÷¯„æÞâÝ”7r*ðãµ–®ÑÓú y£D—Å`\Näž]üˆ@1ËÐ&gñÛÏ+Üû¶.m¢—`ÚD. nG‘~²A*qY¬Ó4’7CïjK¹ ¥m åõßHCþxÊ òè1óöû»ãmJ$¨s´“ !ME@ ÇËb°g·—$Þørƒ2÷ÈkþIJë´È4üœ þÎY¥ _ ñþn§³üý /ÁC¢ï©)û™­«†Ó²²E~IžK>½¤ƒuŠDF ©ª³‘F£n,“8ß¡å!擬qöº†K#Éo¢'\Œóï_ý¤½ÔºJnÉR} Ýt·¦ôbê;u‹Æ”æºÉÚ_a>O§Â¶Wˆõ¯v:«ÍçY ÁÜûs¨7øÐSçk) Gd®Ö×ÕšF'k@KC]¡¯Y½ŽR }%ïT y»ò›^¸ÝéezÛÒ[-0Z³ÐVIí=Ðz²[®HÝ…\ó¥7×#7TË}½„s..5·¡¶=°;ᚊ‡¸c÷ÿß±?ÓùkuìçæNèÞ÷ˆá\v#d5l¾ Î?_(ê¦vÙÍí.wœ|þÞiÆÀu—‚f}g—¹1Law‘ó»)c]SÚlòç%~P=óÚuðŸl xÊ"ÔÕÞ²õœ¼&ÆäÇöc›Á¶‹ÝCïUÒaç˜SÈ¢µÐ¼ÐáípJ)üu•ì48ˆóÔ·u´j›Ù÷Ù·„™dfØÚô;ôÙ燋ÔÑ)á }Ê‹?ÎزÐ|KEÞÉ´=@¦Ë4‘[ø«ipE&0î&9ì¯ß_¹N"qF£ÄÎdSˆöÐCò×ß=O?2ÁÁ…?ZQùc÷ƒ·^ƒº­ÀµÉ¼“‰6¬ý£nâ:ìF |A¹!\b\žH*òLnÅßó3N€,soBóÒ‚.‡h|çÐÐáæÓ¿=?ßèv³ß!í&‡Þ¯çðì-ÀĪCªJ™õ»"-ä(×#ß‘wòñ&8wOŠðÛâoë_½r,È×€2ƒ›ù8ÿJ±Á¥,’TŽñki‹ü±þþ9þ§¦Ä1(-#oå}È ³9 ’ëagù[%6pX?…Þ?æ ÿ<¦dˆL‘4à‡ÿþÕk]¢1¼2r‡[K+pØß~òÇs^ŒD܈Nšº¡Ö/‰ÁÙŸ3‘•k‚07x¦ü*¤?òPRo¼&WÒ[pû„s/¢ÇæájOGNÙÅ)%;Ÿ¶MÞ”Ûië¬CÒª ~dçóhåž\lûQc‡dVÖ‡’^‚K%Tûs“y ¯à˜2×î4ã¯õÛ·PÒmÐíw·xœ«ÊwzÔ]*ŽnG^Ø ÅOì¥×­r íø„{é|ôšj`R2ø“òv€Í÷fìv™ÏàFšÐrÔ²¼¿Ž‘„²ÖBõþÄÏ èhÊHÅBí"÷÷Ø‘ [êL-·í@èü\$.VDexÜÁ`Çv:M'‘ö·Ò@fÇþãú»©Ì.Ñ}è},ŠZ:à‘è­ärи\–ïÓàþçkÉw¹×lV‰}œŸL¥à~ñ=¨IŠƒKµè1ˆÒ*8ÿü)/äF\‰·Ð(¥¿ï¤PJð4Jü¸(gÛnd«üùƒ1x!²é*Âc‘G~æ‹þš®àÇ!¨r!þŒ/£fëPæU8¿Š&ËßÖ/Yîö¶=ÁØàÏ*nÊR{¨Wn䦒WHv=+ d'!Åd?rG4¨ïRÏ©ÄC‘²CÏŽ½ä„£/¡.©y8ïä£|˜Òƒ‰%ò‡§­µ.ÕO¼(H4u$2òGN(þ2>žüÀq)"u¼Ub W©vpù’<ín9¶Ô“ñò„JÊL«Ž·y¡“¼äfRY–£¼ä`ñ+>À‹x%úøYSç­ò†Z½µ¸–EÑZ;2F&HiÂä3oª&ÑGrR¯KJ vžåïÀµ²<‹'¡u’ƒ÷‡xß6“ÓÒYE–sñ5*È×i µCþ¸/M4ªÖ•eÒ]ÿ?âþ\«¢ÿþÇï½gÞ±‘”îé–îNiéî”îTé”n¤[ééîA@~kßÿσ‡ãñ x]ÏÿÙ\xΙ{föÌz­µc¦ª’xÁkD Å…R×ÔàÑô #9gí«Ñ.tŽ"|Šs¶qôá6^"ë:-¢Sáñêc®“”½Äº\ 7Ä“Nº ¹»2œC M…l›ãÍÜÛçì5ù(/úo#Îhi8¨Ò’Üˮ͋"ék´³½^ÑB:R_É^Ôº‰FmÚEŠP\äÐz”™¾àET<ÄûM›:cö—?ŠësÝ Þì”çRRï!´ó6z×´×M;Êc8?jkxî@×mg:gF]³ÚaO»ÿêq ÉÑ7#áI ‹“ñ_òÃ8»žÈ%Lt3ß)ÌÝÄ®@ë79Æù°ëW7cÌ 0¹}B#í÷)Êïl1ií ·–YéVýÀõ¯"Ú}ð¦OmuZ¥ê~¬q¬‰F(¥fóÙ!v¥û~„;är²ÛPáµTê·‘„"Ó».ßß«//”¯³}bÚÛçïQ^}3£§ ²ðüêOÀ úÈwÿoýöKp:ØôÔy¡Ù;ùpúBM·£}–‹#DGkOÚú4;¸Wó9ZŽd³ i1j_‚úš>ïèÅ îTxòÞÈ?à¿wm;Ðl åà5ü-HQžNmƒëüõöהּ³ÿqý+qÒ¹±PÚ7”€¢Ð@réŽmCÃo~ä®TƒFsCøð“ÐA‰Ì³žNÓ ;Ø„•h&;L{ZEI¹/˜¶½V•rú»õ"aõ¤¥f‰&³¸>WåUPù•à}Šz”¤\aðãh „™ï?Kê ~$áõH5ß@¿ÖAxz]¾Ç×A´èÙótŠö€Y2X{“Ç ½Sñ\w°JE(9ïâ3H0÷@ö+Æ¿scÉ~ä×KRYvÀíW‘møÌ(œ‡# Ä“<ù#m¨ÿìD‚o­AŸBwò¯ð¯±ø'—4rНI{­ÿìy‘ä4ô>¾,„6§A>¹Ï‘eGƒ»¹ál{«Ä>n8ä±IÈmxuðÙV+­e®Äãì² ÊÞÏúDÛÈMþFšÈZ.Ëþ;£ä5¾ûU'±_¾UÞ`›¼Ræöüš®ð`”6LsSIèýGþ\Â{÷åO•2ú+OCŽj Í߃:¾æÒLô×õ«ÄNQg¥„?9MùuC¨‡œÑO£C…7H-©{%¶žÕ:R¨žåíjIl3Ìú4ÈÆ¥Χ&œTN›ÙVµ3ì4wË{•tÌ9æÔ´Œ¼ˆÊB—R NNSOäÙÁ]ŒÊb$ô²j»Ù÷y"¸éi¾³u À³hM†Ÿ=GM~¡d<>’–¡gö ¨w$ªúïN„ÂoAþˆÈ_ð(Ô«4]±má4Ï kŸcŠÂ{ ·+ …©ƒéöŽ^|é® ßÁ³!hÙרGOôØ.¸®m<ü(lÿ¾ú8…cõÞC«Áý‡2S;YÜ,hÕPJDñi½²7À£ tŸÖò hÒ|(†ËQ¢€"ÓPÃuðUØ&F%Nr¾60Ç?ã1ðùþþµeƒw{xýÎtÏøïŸOâ6¨ã2hý2Óß?* z3¬ýOò›v0zÂùÆã¹Hi3áÎý= ‡ñ58Çøï5Õ).…:í=D ¡½ÃMº¿]¿Zê²­@ò,È+ü'‘?¶Á›¿à–’BÖH)¸Èü²›k"?r?NÄÕù7^ι¤ï¶þ–?~q"‹·DkWòSŽ"{p6rFùHöñEi åZÜ7ï*·?Vs#¤›ü„ÃËNƒ9t;Ôúíܧs+è.Õá¸)?§ÈÒù#;ç‘ù:W“z{À:²†»H=Y †fƒgˆ+áñy·1Æ_‡º~ÕǦâ¼è•cTˆ»A%oð$Y*C@ž¾’Ø[¤‰4¢ðÖÊEž)Ÿë5´bê¸mp%–à‹¶á›²"L)"1¤ã{]¹ÄDcë 9!_jaÝ&ùô!¸ÑüȤ­u#8?‰+¥Ìá˜È½C즴Ö9åzÈcÏ1R¯s6Ì´?ÀíözA«#¿<‘Uz YaøU·ÊN$ŠŒ×­pµyçãÙTÌN³­ý°Ò9jJC™šáügSd˜Ïtê‘PÃé ]ŠlÔ@‡h|/ÁöhrW¿’b#q;ÊE•x˜ôŸòN8½Í›‡†‚”¥(=m”2^À äÎ,{ƒ´¯·Ú{®¯PR~¹:ÆÑ,ÒVcs]ºeÐc»ó Ùÿdÿ¨]!Ö+zèí|Øs± ~t?*˜Tf’S!xý*Ÿ[<È5Îã¼þ$0ÑL°0SÑ,{Óo®;Uœ ¦°eª™ånù¼ÿQÒžEþxaýg&*Ð×6&õp²šÌþžÙöS[ØŽµsÝÝïUÒiçˆSÚÞÇØÙEÕ J7¡ˆé)%5¶kàq/£Æé¡…ì 3ð½®_52CÌ$Ûþ}&èñù;`4FÆþl!%æSþµ‹ÞHï~~7³Ó :sÀ&‚/¯ þ$‚Ë|jý÷OcF ¾­²‡"Ì£bÔÀ yG/²YJþsý¡–ƒƒ÷»?Ç|É÷8ƒ{AGçÑQèâqb&èö^ðcŠÖÝ ÿHìs«‚_#()rÑp¨ùÛœÆÑKúžRkZŒ¬ðIâWznLGÎÙ ê²M ‡Qâg”iM¿PZþ|;I'ÐÒ¢8#ƒAé’¹i¢È0´OGÂYŠž­Nq‘¹*Pö0øq9ÓÌ´Ã(*ÏF»r 5sPê,ÊŒlЙ'Àu3ôìŸGšÈ /~ýq\JŠ 6Í$pï…*o«;Þö«ò"Uü\¿¤FL8øŽ’MVJF=' ‘<ªJ)¨}ŽˆÄð˜·rËÛlÍ¿íõĉ‡º7 â¼‹ü?ñMyGÁ¸œ ?I÷¹0¼Î-.*eõ4~…0z.à}£ãÀ¸ºAÎë Í ÝÞN·©/å*<Z?Ô¦~3÷vƒÁ&ðŽ8Rr ¹¡ÅÁ æ¨a8pd·nÐŽøY!£îôò•‘Z‡-·¦ìTžOPÑ7£ð¸3ÀŒ³Å©u¤ÜÅ+åOÔ­‰ü(J P²¬vðÆxOô©ÖÐjrU—!—\å^…›Ò=ŒÙWv/òGj;;ìi÷_=NÂF Á6Nè7_ßûpÎ8߸ÑMy“Ѭ î¾.PÒ­æ&q‹¹;vÞouÂÿWÍ\五‘6Ø_QîK§¶ó“©bS˜šfŸû…[àƒê™Þþ¾?¶þÊO¨¿¿Û—óÒM5¬hóƒ3ì.÷}V[÷w¯<â´ ÀG‘`WÂsÇäì”jÛ)P¼ãTc 5 ±¿›NöÕ»‹ 47m‘´:’O^ Åz/Ý‚bcîdâåгëT™{8Òóüˆï ÄÜi?¦Ôùß…¡ÒÍh ¥´Á'‘¢ðnÔï'|R}hF½£o»Ó¡æ]àèÒô_üÔjÊÆ› «5À…p>Ûi )Tû"ýŒOÞô÷Ï]'©›Ùb¥EþCè Ê›~¬E†(L“¡¡ábî€Xh £­øìS¶ƒ ë™À N7ÓÔMÏ3Áìã8µµ>§×ø„°{Ì3xÿº\Ž k8Oþ®YI‘OP•0ø±%)p2½ y<†ÓqJp»-}K©x·„2íæß¡&÷¡Ý;@—ÏØÿ<¥™¸`ÞfÙ=ª¼9nKÛmÊÇǘe0 ‰^úŒEKfY õ”|mo!U öý@§ZàÇèÚÞjÛÛ˜¡Z|ù£$ZWŠ7CÅcÉJÎ?rI.Gù¶4×NºC[ÎpW‰+¹$ôþ.¿ædr˜ÓaDþŠQ²¼z ­Eß·CNi =óäKY%9‡¬ÑUü¯µoùc ·æô¼‡IR9‚ó܈âÙFo•ׯ~ÊÅ‘?Žƒ‘ý@Ë˼B6‚Gs¡ü‰¼ šUcêÇÞyÆã‚ë—¬FÖê u~Á‘Pf9ŽH­Þ”Ç)ƒü‘¿äÇè±Ã4žš ŸþD½’k#Ù"ý ÓG¤°^Q†‹Õ:àÀ”8Ù0/˜ìï5ÁŽ}SÞg»3³á-t3ÁsœçÔRZ£{_êxAæÐ:Z' Íit¥lÑ-Z@†èZø˜6¼³h1µ±Cìÿ±Ô9cÊb4ùëå 4‘JË)Í«óµ©&ÑÒ]èÏÈ CUu‹TÑûCvé ©G1kûP¸ŠKÔüÍ(üÁiaÆØŠÐ'ÿþGš,‘=ë5•ýrYö! µÑÎÞ—Þì ÔrGKbu¤›Fç&˜ÛßÒ]{cñóÿÉýó#,Î_WÂ9»/ý×ÎùÅ™åf1­L~³>¸~ââ@C·Š›Å- ~¸xÿüz`Œ™c+á,e§uÖ˜dæ±ÓÖ¹nÛ„¦¹á6rË}P=KÛMP÷¶1þJƒ~³mh3òGöWùˆŒìܵöU·ÿ;÷ÿˆgÑŸÔ’úÒ1šD ÂO̓+\Ĺ œøòW’<ê~J-´?üãDœ¬n-ŠÀ³(Ú2ià7ps JXÅ#© M‡Ö¿„.ßCi—‘r¦ÑNrøš­æóW}À6øÔÌ`Xeº¼ÿá¿þ èKáì5I#;T`á HŠ(ægMú, ~œd3‹íXppȘœ£ñFŒ1è³oy2ÉŽÊmà[ï@µ³s8Üt\J‰>Xjº'B•·Âíe»âÓ2ó)~‰üq“ §â(Pã´²BRé5É ~Ô”ê²ù&êyƒrfi›l#›.T‹Ã»±‘f¢„õpì/ø üÁ-N/Ùå?•vú¥ÓçšH®p[èñ®Èù$¾ç¼ð`¿:‡ß*ñk×"­@OWá "o¥”¾2NºrNèôrä3Ñë ~t‘6²+šëP;¼úIžlíPüHÌ…1fOR®—ý€×É.ù ?9@bzk4…¦†>_’?x¹”×Ã<ÊÜ)äGD󟿪ý¦¬èNog1eE~¾ƒöî„«ªê¿U¯5‚¶Dß}~^ÊèY¢c%–6Óbzçe(ò[F$ž˜7}ì¼7åíq¶¹áп·áÎÂë]¦-øÔzàcAä`‡õºê\ð-¹î”£ºýØ[wÀÕ÷¯("Ô·Smý7sï´³Åø;k×ÅM:¯£2rA?×aZBêm™ Ot/ê8Qsm@•hrSGKUdÆpÜžrRÌêoFá~§=du¸ºöð~è{y 6¶‘mrL&êQí­½¼Þ5MéõÑò‡žK’GkUga Eãù܃“¡5›Ðê ”‹g”ó¡Lá¹_aç#?\‚9s‡³ñ0ó©{6TyÛÜ/mkhAA¨óîÉW©;jX”/syÿsIª7% ê×AJAc{q Ôó8’NÚð[φ~Š>¢|¬‚s¸\øN:ÿÌ©$¶ã{Ò ü8¤Wô’ÿ~Éb.~üÆÏ9¾œäp4wBíÞù£V°ïë [•·#Jä¢öø‰%pÒ©½ÇÕ+ôÒLZË&n…>YÃ1å%oÀÈlNƾ½þõ·6%³3¸¢G=8ýü¬•^²Ž{H\o¦ÓXÁ[(Ž,’’z–'•x.úã1RT)¾âýóÌNg?FE䈔¼ s¢×—'2^E‹ËL™¤ õ’Õ‹ÚEÇ#Ð=8/“Í2ÈJNÈG¨]7¾ÖùÙƒ¬|žïç˜٠÷R×Ë¡›ÁŸ¡H"}u™²÷JöÈV´>¾ ?~¡ÏyfQwhýÛø-~TAúh7ùcå’mZWG)4:ÒÛ Ý©¥õ+üyŸ”Õo4Žü\7:FQ]¤à:¼—ê¾…;f.Ò`_êYP„fÉu´­‡lGÖêWà?5ÔûQãzýµ™<ЇòHjKkMÅ­‘àÇ#L‡“Ia¿ {ÚýW=|ÎÓ7ÿç8mœÐÎç}Ÿœn2ÓÜÄ6+ƒ«ø®ü¿ý3»›Ïy¿Õ ÿsXg“™Ž>­Ümö¹ûÌÍæ~ëün²Ûx¦´9~„~C÷ÿ}CÆkA÷m+$ì|4Óµp˜$˜‘ mJ[Ýö¶›ßóýËÎ}§¾½…™2Š4økêP»uD*F_ÒÅv°¡¯Š‡u42ÝÌ<Û ª9ÿŒîÓp"qáæ“ò2Jµ/MÕî Í}÷ú»¹œþøþc6 ô%7OsRÐ=Û2¸«_qÌÅÍ Ó)ª-›„~¨ÿÎõÛ#š9Áû½¡À_Óïp;UA‰’¼8øþWqžƒ¿ß~0ÿŽOXIËì|'¬·ýü#–SÐ-J1y%¡ä H”àû³è­äEHMÓ Ð̾ïó@‘ øŽÕÈmSã„yÿ|¬iN7(E&úŒ¨ƒÕîUŸ^šÆ¿ÖÔ€ûòŠàê¼ ü{#Tß# ~ÜÔ4ë1 Ç£‘iâóôù(¨ØJnÁÃy8Ñš¯##œæ4øó]8…Ët•RqZþƤrC»£íî@ë?P†·Aïû×/9@¥8œ´’LðÐùô…d“ePçÆðøý9ׂޯæ\HKá<þ¾þîk[-ÌÃÓQ†#g)oâ<ÈGù ´°#ÇõþàKÜ™c7¸™›oòäMÁ·“î:+B­ŸøØVÄx puð#/¿¢xÒYJC.'ëu‰¦€^9^'¹Ì¥rp‡«œ8çQ$ŠüÖ4$ÇV uÿ<ÜÄaŒÝ<Üž#€p[e£4‘¹Ü^yÛ4¾&ÖO¼‡r“G‚·x j߉æ2ÿα%_´µÞ”ÛéêL§ÄÜŒÏS60i6uáAâhO%­&«dŠVÐ[`æq(ô·òRji}=®Íà}þêó¬¼Z†Ègœ«nLðã•¿gƒã8ÊF:!ÔòJ†é d…Ÿ5¦OÏÉUݬyÀmÏ•y-Hü5}aÛâ!žß=jJáܶDæMÅùi+5ÓÈs4»¦Ñ§ÒG[¢n…u:Îñ>ɾe’Ã:RSŒïÎT‚ZñVªbÿ¨Áf²Í zt£ùÛ ÿïƒEf¢-µJB+ìS7±IáNuž™Z6§iiλ-?pÿódöµßm…1TFØ©¶“Ô$ÃL¨nËØ¾v¤ÝùžùãœsË©goÒÚ„ÚÍûŽLœ™Û¥8wŠPcúÊF°_¾×óW=Ì$­¶ô³yLðmìÔŒR#mgà%”®¾8)”cHÐðüÈâtgŽÛ䘥ØÇ#òm;dš3”…ý+üçwk¡–@UÚ¾óþ¹gVqêJi(´|ÕÆO¦çP€ü/‡ƒÝTóÊ{€–Ò8»î¯€&q¸¹áØÆ!Ħ¯Ð*‡ÚÒ àý9`À8Xæƒ(ñiðm˜¡àÇY´¥­yFi3œ®¦%æMNž|ø(•E•?^R#ze\û‘Ìç&ÐMtŽ6 oU¤HÈž¥Cܹüë8(bÖÁË…çÉðÅ©Xýüü‘ù£ô}{ÜðU>Àé9_@\'ÿ.Dža>qo†*o“ÛÝö…Rdç“üš;óc€ÑQn!©ežäÑÃ’î¼®Ô’µüxU–o¯uâŸàgBïÂ΃$Ù˜ }$/x3ÎÁ.Î*ŸÊ> •é¨4œ÷e D®ù¥Am$’½œýbÝ%¡®_½¶i94Ò_?±(ê—\†É÷H?µd§®ÑØÞ>}­ä1÷‘Š2¿à [| /;üµ‚)^¨ý£ZÙ<è—‹pÙAKáã|îÙß¿¶¥¤ó–k6¦¿ëe´½¨žDòX†üºýÉ’L ðSÛüMY1œaÁçw+b$¨šOmPJ¨y´<ø1Kké¯R\kWƒüQ^‹ë^Êß‚)d§àíÔ<Äó»œ n40ßÃu7çÁ<Å™d¸~äµÐµrVæê©Gõc/%´yþ¯øq†PG¤šâ<†*Ø%öó7sïˆsÎT†Siq•ˆ3Ñô…ì×ÚàÅ$Ž;ÒBû‚HÅ‘kz ¢³F• :]êÃiFåv DY>âúÕy§ ´®0fÂ0P©Í?~ÑÆrP i½ÒÁàÇdï˜æ÷êéx¹§[d—d–:kÒu;™^ÙÈÂiìÚ°§Ýõ¸Hâ}/Çù÷ûDq.9ß»IM]“ÒÌ®¿*PÌ­à&®¿ËNè+ÄÿïãQ`™Yb«B73ÓF{ÂMi>sG8wL ›Æ41ÇÜZøün.»ƒºÃúo?·Ñ¨òGfŒ‚6Ÿ-gçØÕî¹÷*éŠsÍieoCׂDsá¾rfJK•í2Z =«Feüç]mt;ĆÞU(¬£¥k¾×^ÁíN£áàÇ%ð#&F{fž‹ü᯶ÎP¢ÁPÝw_¿úÔ™F…éˆ ªeáo•3ÓYÛ…VA‰ý»¾ûÉá‘?ƒVe¨ë;÷¯nÓÔ ü¸BíÁÞhßjÊÈKx$·ãœ9y˜¡ÔHìð Zd—9a=më1œrnIŠÀã)Å£‘ôÂþb›Ód”¿„»#Ì„vàû?B–ù…¾GBÚB§èŠmnÂzf¶Ó״üɈ”UüëIŸSVª‹ôÂàÝóȼâUÜ 4ØŒºï¢…TŠ"P|WØÏ_U1›ìP¤Àñ„“èÄMÄÓAð÷íe«Œ×&úXRéí¯Sä©”†÷üÑç&“Ìãäü3Ôù¯§Y·9—ÝØè‡O{9½ «heBê5ÕÕrF€3Á̈^Nä‘Ch}\ùF#ûÖÀ*Êó¨˜jÿzww³Ï”ƒ©‡òbsjZ~œÔ”:VÇh:=¬ßa­¤£õµ¬‘ú…&c:FÊQ|ôLŒôÂpr•ތƒNg3;¸Â]oxÅBôqW[‘Õîj'à ñin¯ƒVòŽK $š~…Ò-Œ²?ínŒð|ÿ“çw2„Xoûe WˆÕ?ìx¸ä,t3™àÇ‚àû‹ÅÝÏݨn^w©ã|àûƒß™•¶5 hФcn~“Ãé\7_ØX¦ÙêVþÀý£2ÚíÔžC§çbV÷¶ù¨°£&2];[Äæ·3ìŠ÷æÇ-§¢½C›á'+ù‘˜³b†€{Jþ»…Pë>Èß‹íÍ3Á~ä2NkÜó=Ô4&¼W<þ^é U¦•‡;)ôׯ¢;ýо£6=£J<š“…nئÐÏKÐ²ÓøjùZ½ŠÆãûÚ™‘ïèÅWîT¤v ×¸£û­e ø¾– ç.𸑂 ¯é] ´É~÷÷Ïã8%ÜòÈ)SÁ ä¿ÛxÏv§™PüeÜ ­›Â øO¤º{à[ô Å¿]¦=v`˜ûGp†›èï4˜ßñõ ²GFÐÁeÿþÇCsÓ¨ÌâjÜü8†ü±©$"导/?öJ™õ¶ýNs‘@2s,p¬¡ÿŽ ò‡¿ÿùNŽ‚Ú]çß@’¼œ t?A×Ð'þs=sM|÷z¨òÖ¹ýìPß_?ÑÊ v¹¾» “´„ßÞ ôº‡—¯ Å‚»ìÆâ’Ð\­Îü½mcC?þÈIF9Ђ,<ùƒe´Èßm/™áëð¸Àãý†¿ëÜ—*jy—oÀÝ„Cþ”ž9oóc°û§­€ìï?ø—æGKúÊLI^«4wPhÙÞµò‚‹9>ù[®O mÓ·Êëj‹q~Þ‡ñ¹""zê[Y(e.7ÜÞOš@¦öÊ=ä™Rz =ê?­½–¯ñÇ’AŠ#üõþ`t§3ü¨…±Ÿ‹÷"ïvàÚÐnS{É"¦ôªdÖ+ø:B®Ja­§sx%ÎÛÏœM">¢^!vS:îìtÃóþþç9%¼Î1.#9õ¸3I.Èeo‘.FæJ¯ûä´®Õ?xhðùݺÈf¥1^+ÛU6×›¹wÀ9e*ÂÙvDÚŠÅé Íå¨fÄ9è©iõ)ú¯¿ž5Fk<]&E!RÉ}|R>JäGÊÏ'C¼ÅºÏid¦Øjp+=áqòЉüQSöË#©4ÔOëzs¼#ߨe奔ìZçü®Kí8z†üqùã±~â•@ÚÏïgð¿~ÿãEà°3ËÍk*›4f®ã§ƒ…‚ni7ž[ÐÝâDq>lÿóß?&ÙšP•˜4Ö®w“˜,î4çŒ)eã8E·•ûaïÉç³ëáêoÙ¥©§ýÝtÒ˜èÈemüša§ÿíhØÇyçªSÁ9~€ZÍÿþ„3PBªigAYwßçÀïn6šíö^ë'¶5ÌdÛ þyMÀúÿåù.¼íP‰S”Ÿ~·àþ£SÙwò#…ãó뀉<“…Phõ5Û•@ï’Áõl…ÛßO­Ð 3@–ªfô;ßœHÏñÙ]h'F÷5;mû>z ´ÎÏÓ‘=¶‚wé!ô±;æíðûɼuDuŠºi¡XS)'y å+ûÚöC«ÏÒj7<šës8^‡’^Ðiú Ÿ9Ö…]MXwä§;ƒM}Ì`á T‹öB¹Ê‘?«#²ÇÕè†Ùkó:hP[ä­óHsMÂQ.ÊG±Ã|0¯Ùj‡ƒº£y((zp•â™T:×j·„ áß䜌sóY¨ÆÔ9ÕÚ²™ûIUð( Z=’<ç€ïÍ`„â‡ÿVå.ŒÿlüUðþÇL™!ýAðV’ØÛ¤©T5‡·I~äiRFÏÃ{|Ïx ÿ '—òÌÔúMYqœvÎ2´´ ÿ oö#r[w. /ÞZ#i=Y‰¯õt¿äÑÚH{ËÉ­ t0ÎÓ·ü#EâIÍϨ£ÿ¦¼#Îa72å=”tš+Pcþ•‚:絜Δ—²IOë]†Ìõ±î’«:Y?–nê¿»Zù£$øQØN±~âg¿)OU1‹v‚ré(w“„^í­Õ5«FÕ‹ú=Jk©ã5².”\šMÓÉv+%à6˜;ÁUæã`ÒÊ{à433ƒïv >XÉï„¶“r]Úi2o¼6÷–xÏóêjCy¨?J%i ~´¥óv"}D÷é å·+ÞvÿÕã8òÇ_ûÅ…szýëõwÎYð#ž©g"›YN Ç_[«‰[üÈã®wŒó>ïÒýuÜ L4#muÌ™4ÚžsÛ|î`ǵ_X¼~UÓ­ýAõŒn—àŒ?±õh)£I6 UrJ7ºZ6­-jGÙ ï¹þî稓ߞ†"­Gþo›³Q<ªƒOX«|Z¾±OMûÛ{”ׯô1snÀíƒ"ý¼žS&ÞÍ?Me‘? #$¤ÆïäG<§ €ÎNjυü~†¨/4ÿåæp÷@iëAÃË÷1#ÞÑ‹7ÝYð6-A†Mß…]ô ¿‹ê-ö×/¹þm¥‘ÔÏÎrB_»ÿÏñ2PÄ®ÕâP´ç7h¬¿ãû<œJ"tàçàñMz"u¢Ô¾§ŸmGÖŠ(Óœ.¦ÎAt ~ìD-já|´£ðH ƒÉÚ&"Ôª-ÜðV¤˜`¿‚˜ÿäW„0øq8PÀü`¿BïÃ-9 'åàÍ4ô¡¿ãt¤ˆH¨Ý~ÆGàÅóþ «‘cp?× =ºçº“m_*H)xäz쯩²*°HuÉ'ó¤˜^L²î<ŸüÀ}9*ûOúç€ÔBþ¨d„jqD7†ÿ¾'ê³Tü5¸ÿù ¨ez9ÃáE;èn½ªqåw•¬PíÜœ“/€YÊi(EsW¾UbG÷5æÂ2ô} ¤€ªPj’޲^šrfÙ§+5œw<*-—¹òÇ÷È3IÄ>–ðrühMyBñ£žÍ‹üqç­ú<þLY*Ãñéý$®·J3ëÇð÷ãQÛEÒHOqOôiu¤Ø£ü‰§2'¦¿ÖËõœÎ4ð±ß¡œ¼äï~¼’î*ÚXVË ­¤¤8ÚÛTçI4­¯uõ;´bÔ>LéRû×~†?8Ü„\ŒïƒùÆ8Md·ÕªÈQ‘7^i;¥ø±]~G’»Éƒu¼I}žÁy U³?†X?qsܧ6˜é{0÷Óa>ôAŸƒZ‚?‹ÿ,Ü6°d¨’îDþè‰órO§K6ÊÀw¿+ÉO¨Þ›QxÈiƒ±W Ž©%ù×ņIJï’ÖùYf‹vÒ>Þ ïžÞÑÆú¥¼ÒÃ’Dj¡‘¹]µãÉ@1~§ªÿ“ý£Ž…xÞÒ:œOÿ%?b;[œyn$Sݤ4+‚ûŸ¯ Ôsk¹Ý\î'àø Ò~ ¬4ðapø±i˜½âÆ7ÜÙªÈõÍU÷‹|þ*¡]U~` B÷óÐW6t²š‚ôÕGú(fGÛÕï¹ÿùç†SÒž¡yððõ¡0þþµ…)ÊùùxT§U¡ÞÖ³­lèU‘Â::šÞH¯}¡¿ßÒr¤šÇt’:@w\hÀVdPÅ—6?õI[¿“‰œT™¡}ÊŸñPú^ÿ%ÒÍJð)?%¥Î§³A‚lÔÙŒ}G/:fÒ@;ú-JŒŸªÕ,ÎP|h@a¨ì^øê­àÇhÇlgþãõ+rªº…‘¯üÈR"éO;˜fAñ—ð0$Á‚ëÐnឣúƒ}ñYûm3)ŒÇ8Msú™¢òX|çOÐsM»6ÈQ¸‘}l‰¿GQs´ú:Ê™¾¸”‰?ö2™ÕvÚ:”{ûGç%àÍpÊÁ£¹Ïá½ø›PäƒhyzxÙS ÖÆàÙ ÏÍLr7ôêÒË?zúo¿â'ïs3þƒ:BgÊóS®/ŸÉ4I¬»% øQJrËJ8íØ\š;„‡–°ÿvÿœÀªþÚÎÁwîn³¿óáÏœA2Êa¾+ +õˆ?Z÷Å-ía")¦©ÕûV‰C]-¸Pÿ"¼iE|úÈÐ+GP³¢{ô2ø±“;  É‘уûŸ{ЭŒöíõÛƒ…ù (ž T0üÏ’¹Òüh'ž·DsêKIá­•ó¼Éá=k€Í§éÒI%~fÛ¿)+«3ÄY>¶ä+”ãa'uåZòÌ_ñI[Ê.¥eõˆÐ[PæÉò‰¶Ñ¶:›ç£Ä•œK¦r6¾M]ì˜7åíw¸2ÛrÚÃ¥©9~ª“žÕºGD§é íøë—ì”;ºùh n¥GT‰¦òm»Ôæ{3÷¶8çLIx°†U‘ý¹Ï_K&¯vÏr€lõõʬ~ˆnçZiTY¯ó¥ÆêÇ\i°8_ñüî1ŒäÉк.#‘NhDïV–}ò§ÌÍ*ï<@-Ëh¹®'$Ÿ~Šö#ô¾AŸ`öý†:. {ÚýWËœ!Ö+òœnÿèßuXgòG"ÓÒ¤6ß÷ÿبæVuÓ¹ŸóLJ­õK`…™fKÃÁ%¦ö„ͤt;[ühlNºuÜTϸv-œó[€f€ãlT*âä6¥¨ œTr[Ù³ßým‡°£Î)§¶=Ak1zJC‡÷‘‡ü‘üŸ‰ñy‰:#+Ô§žö#Ûí½Þÿhg†›Y¶‹¿Š9ê6îègjŽÜñ’ð2JÂר ´±E{~ÄuúS)º`“¢œlÁç¯r‘‚;èòÇUP ÿˆä=Z_˜š¾óúÕoîl§-Ô|;æ‚!Aàb¼ˆÇqGÌÉ™Ðú](õ·àÓ»~þXð÷ÏÃ9¹ÜäÈ#á‡SÓXòŒF“¿fálžMÕiIpÿ¨St—~E¢4?=º×67…Qb_gˆé f%?ªB·ŽÂ»ÕDËfDÛ‡Fd2Re^¶-§ê é'‡‹Ï?ŽÒ™Åv ÎßpníMÈsá-¦PQž†ü± ˆ=óïOo‡–¦Ç9Zƒì³­Ì]?Bï?¸Ðd{PEðcŸã®ü' D?•æpÒNrÂC¦Û$ƒãÚR ”ëÎñ™ûxòIk^bKÛô¡Zlݨm­Qͨ_ ªyÁ²Ï$¡œä+Òú·EÏ·‘?È$¨T Ýc°f çÄòÜ·×oç xºòÿòGq&N( ‘rvY£+4¥·.ºœœâ¯¤¬@y‰¡öáEÀ¼Ü”> uÿ£§-Ä9ƒÏgdg_ÐC^*Ëåk™Ç}$²·ü°ú‘7Yñb© Çà=æãl/ã³àVr©Ï¯mç7eÅqz;þº˜­‘g2ñZø´öÜP"kWð£Ž,’ñZº_Si‚¿/¥éu"rÞ8ÞÁe1'àËÔ2?Ö;'Ü8 ê´w" ªV–jÊ^u+itÞÔöàGxï½!þêUq¤nˆ® ú–âiÔÉ~o³½™{ËœK¦ÎmG̪×HûÛi€\Ð":[ëhr]*_!ÙlÖâÚWëf°=»&E&+(&’Y+¸œªðµB¬_ò¥™ksc~µ¥tp‹ó$™÷›¶‘ýòZv!Õ Ó¯½àÇm­§ÕäÝ%#ÁuÒ4ÜŽx ~_§+TÀ. {ÚýWÄÈÿù?ãtý×ë·G?fCç+k–ß"Ù¨á–w“ ,£>ìú•u𶛕FÚ×nlSÊÝçÛȦ5µÍÏn)·àÕ3“=V<±áX?£ñö™-íd6Yðw5mV[Ý~m»‡ß«¤³Î§½~Là \D·)3ç mfWÁÞ¦AT*6ÊF³lhU ëèh˜™¶èx”¶€>‚ÊÆìùˆ³òzäPÖ䯠ƒj½“ù>”ŽÛø”óóTŒÇlÐéöã—Èjè0JÞl§ïÁæÞfÐ;ïŸo —ÛR¤ùQÈP“­TsøQŽgAí—Ñ1d†?é&ù»â×/‰ìTsó MmS€L7‘ŒæCñç"Ç|Në¹ û+'úOP]K‡ÿæøY[ßD £ÄùÎ 3dÈ€:4¥hQQô|5ð)§¤Ö~÷·åÚ|5ó×¶¬IáÑÕÃÜ?ê| ´YjGâ§'ð@"&J­ZfâÉðÝ{á’Ós¾Ë· Ç…¹Xðù«t‘âq"bRÿmïã¹îWv(í¯úñ€[!t…¶Ö‡óm.Ùe<ø1èü!n&ådà¤pã÷x9'–¯y+òGèU„>r#|Í‚ùãøñ} oœG>•àG=m Û¡ZOÁ·I_6qyÎǧùOŽ*?rŠE‰BÝÿá>·õ@À_©2o‚F>¡ôPûùÒœ ÈFý^#{·áwÊQþÄ[ vf䉜B¢ÈA|oJjý’¦67å# ¸;|“7É(ky¨„÷6ACSAŸ7ÉeþAªè-ž„~¬ßâè‡rlè¯ý?"9Ãå`m>sy£ w@NøVSƒ[d¾6Ö[RUOè:PâÂßgÑ ïÞ~LDþ|HMB¬µÁ9é&çJ|Iæ'ÎÄxå5Wòªéjxù/õ>2Ìr´9¢ž‘“º^sKoý‰^R ¤ÍrÜYažÍôfîýˆüQ}På%â4ô#õ–l^>¤JwÈjÔì ÎÈTu‘2Û"•”³:Nj‚Ê-1*ñ¥ùã¬ÓÅ,³¥@®ð‰eé;‰ê]ÔzrDnÊp]ˆú ô&zW5¦×];Ê3½,5(•;Ðov9ð\÷©Ðÿäý ý_Ïï> ´ü×ׯŒsÒ™à¦0•M ³ÖñŸŽZ(íVq¸ÙÝùN”Ü¿öj`†™bá,¥¦•ö±ÇTq:¯L{›ùãˆÛÊÍõÏï¡/ÑÛ}è2ÎÓh›„Òiáè†ÛR¶¤n½çþçÀ6–¡sKƒ×Mî!f¢´TÖΣïy‡Á'6¤¯m\;Ú>yòº›îæ;Û£u*4ó{ðãt"»œ‰BÂq%  ÄQ”û=ÖßMãtB¾òßÿHÆyy¥-?¢Pÿ³T’/ ¾Yù0°/x¨Ï;׿³ãtØÐý÷uðýÁl¼ŠGAO+ðJz&C{‚¶ï¡v“zí¦ÿ‰"nEðc"%£œÔ¡¼ÐõW4“G!e-äªhõÞ`þ¸L3ifæUºlÇšha”8Éédšá3?CªÖíÅÌ+ŒÚ=$Bþ¨lo›Ø²¶6ïÀüÚ\ïëÌÏraî_{7PÞ̳ߠ.3 C)ÙCji€¤”¤ìµ‹"Éx Ÿ‡rïå’\€Ï‚Wéø’—7˜d{~w…;Ô~‰eäÃüÄ¿.EÝ 6Eø#©/Yd”×›’É£‘”„FãÔÈIþýþ|пM¶¦MªÅ÷ÈTž· ïæ¢r þà0'LrÏK#¥gõ®¾æ;ÜK"!TãîòœZ®óg˜CÏy¡žßµàã6xƒ/øWç{ô‰Œ–iÒüØ¢ë4šwCׯ²—H=äÿ]Ÿ…œUâÊ~ ×ξ½óX=›J{Ž<O…÷¹Æ å t½ºJ|o'òG:”¹U~áYÒZƒ”[Á‡ƒümH.%øyˆç¯ü÷§À•µ‚‹H§>ŸzsO‰¢ó¡ÇõÑwK´†¾’Pé>:S’h¸þ£¼‡¢¼<2Iñ }iG¿)o‹sÜŒþ8Dë考zÊ…ÀÜÈ^~xù軀÷­®A>J¥å0rW4ðã$<}œ‘rÜ“JÚq!ø±ÆÙc²“¯Mû‘Sa ¶§š[ÇiQM /ä}ª§´‚N×dº]ò"‰üÉ?ët©Šsü¨€ü¾Ÿ>3 /:­Íj[‰zR?J…YyM>BÚh$§ä8RR o•ŽõFy‡4§7C;K8ï¼Ü‘T2Ts;zd‡PLø£”ærÿü'œ­¿ö¯}hõ¯Ÿ¿ 8ÛœñntSÓd6+ƒ«0ÎäwKºqÝLî&dœ{þêp`¬o«á¥¥íö©[Ø”v×;L=› ŸpÈ­÷ëïæµ»¨?’Þ—8ÛmhˆÍL)&)œëL[ÂV¿Xá¾ßò·œ³N)ûª¹ ³ ’'øün;“VÀ;7„#ö»÷Ú°¹éa¦Û&ÐaÿùßÅð(w¨Å€[ÊÄóய@YÚ7\jõN~„sü§Fw"dà<ðÐi¨$|Ín$£2˜‹ûÁ©ŸÀ½+´éiŒYñŽ^4f<²E=”p©è!q¨4Œr ¥þ^Ý¿q°ètñû;}Ÿ@þ‚y[”›ó“ðoÏï®v»£¯ÊAMOòsî.v@òA¹*IÖàõ«{RXvs[)unÇQ¹!‹,æü2‰Ùv6n¨ßtR¡‡¾€+ß ~lÇ9È9?®ò-(r×àûƒWÁ¯$¥,A’+mþùã>—¥Ì.dy­ÝÈÈcËqVë !Õæ_(®|#Ë¥ '•­ºCÕ;§=ÿ ±êR[r'ä™ï8Ž|$'967G¾«õVyÕm!ÿ}:DÙùðc/ï?†Êr®&ѽƒšH?^Am†Je=ŽžÜ‹L³DN(I¤G§¿ÖoOæÔvæR*ô÷PÄ_i§?)át‚†×ò²Ff£µ·bŽhw%ϤØôŠwûû¸˜¬ãäüŠF„X?q‹³Ã…tt ³õG¥lÐŽ>¨O¥à>êSàìGêfí%Õ-rUwéK^ {è5ä•Hr£àFæØ!ø±ÎTƹh†q•·ÛÕÔM΀Ó´´¦Ð$:XOëyðd´FÕŸq¦»‚çt‘TƸþ„Û ÷§G«¾…GœÚP€’4F CÇ¢y’Ý»§µÀ­R[Óz]µ£7Ò[¤…½•ÚLnéIñ4ŒÐ¬8·‚÷ÏObü—±ëÞvÿÕãX Iˆõ&~ t ¾¹ñoÏ9àŒs?1µL3ÓI\¿ä 7¿ç9ôׯn¦šqö úœbÐ<ûÐMh’ºË_MI›ÇT0{Ü/Ü|Tϲö"5­¿¤PýÁÖPçS•êR ¤/ìx»ö=×ß=âÒÃe¸ˆÊÔþ'¾ü^ÏïÖ3?šÁ7O¤9Ðæ(|‘ÚQ¾F¹x%áÇPÇP÷ïü}/ßÉ N¨èE›–âsžŒôQ­nN»èUàÐ0c·Aí«Qóí;z‘Íl¨d'ú ?9˜žY‡Í…P±ïy<4¥Òà[~á9 ÞA»õ÷?Ïéäuëàó¿¥D ÈHŠ6øû×>¥)Üîz W‚6¢ß1ÏÎÓðã XpüëúÕg‚iO–sòT8ºÛàyu*Í¿€3ÒŠâY²"þùJ¼u\A‹¨#EÇ÷sÿÚÛâf³ý ½ï?™œ£€cMh(å…›î ¢œå¤ðà'ø6þ=×ÿ½ÿñõ+Âex«ùÄ ývÓV·²UUðç$ÿ΃ù’îÏH€©.¹dEEÊ-ŸË*îËøs'[ø3ùŠÛª»îºQ‘?ýõ×! ñ×™:ÂÉnò+i©Ýô°¾Ò‹|“ÛI|Yçç?A¤ršsÖÑÜ5¡Ö¿rÉß¿öÕF¢ùüˆ%ƒ?>çÜò£n×8Þ }¢Å‘nH5p­.ÊÛÈ™$ªüÖ5ƒÛmòVy_ÚŒpø»D3sdæë¼TöJo™Ï]$•·Y3hLýnÿ9O—Âz·ó&pyßàXG ñÛåMYŸ8Í©ùµ1²ñ$åÈ1t¸¾ËÖÈ×ÚHÏH-¨tk](‘µ¦fÒ›¼Žæ8*K9FO‹÷?v;çܨ˜ þSû8?ÎñœDzi,¯´þ(é÷šÀ›‚4ÁK®çeƒîTOÚêOt‘Zñ\´jÕ± mž7so›sÚÃHkôMi0g{È)­­Ã´øyh…^ÕÚK_Ëi¨V?•áÈm¡Q¹>FiiWÑüèïâß»DE0_—Ê3õ÷Ú+»¤1Re­è}íÍÔRÞ2m¾í‘èú÷Ö\È¿Á¥D?~¦¬ÿ“õÛR†¸ßù0Ðù¯>¼ëxØãŒtc˜†&¹ù!¸íš@!·¼ÞÍç.u¢8>¨´³^f´õW¬öh޽áÆ3YÝIÎ]SÚ¦2Íf·Í®¿›×…«i›b„7¦>62Õrš`I [ùcŒ]ý·g0Ã>9¯œöºŠ¬ÐŠÿ;}ÄÙpËÁ‡ÌØ~t£A6žíd¼Gy M'³Â¶¦»HãiE‚Ojâ»KÊÊ‹(%¿@öˆ·ó-ÆVÇwò#›Ó’Ñ›baÆLs Ó Û“6BïJñid…y7øq$øåd3ù½øÚ‰šuÑ(rÁ*hex½±Ü‘ ñ\ä¦èÓ_Ñ ¿ÐÚew9¡÷>úÏ‘ÒÉæ–Æì]EqPÇQðMOm{x®Û4gSEš+|=úõ\…¾Ø ƒYæe¥ Bþ¨ 2ä™ÐÕŸ‘ªªS%*¢ o/ÍmN–q)øÇý(e5Ú[•ü5ÐKR¦0øq:×̶Ã@·EHiAÃPˆQð—“‘0@â‚#—ø|sŽàNI;áDÎãÓ ©ÝÐWg׸ƒlWœ¹"|ÌÌ‘I×Pa𧉤•E’Oï@—÷q}©"›x{܈cƒ$Ù¤ïÀx ýþùkç*Ç[„—p>yÍ;‘S·rj '—ù¡tÓÞz™á òQ‰^Ùð9?ãhr‚‹R: „z~·øQ/¸þn)>:<¦ÒYæHeÎ+;u›¦ðnŸג‹Ü[š¡¼Ö`êœY(/"XŠ¿~IU7š›ÉýÑç§*íVà3Þ«SÒ{ÎMjJ¹3œ{¦¡M Bmw+º5?¨ž¥ín¨úS8ñþ:6òG“šSÅ~f‹Û!výßöpû8ãÜq؇Pà¥Tšp‘>åL”wó1Ìñ’ø=þwÀ{=¿[Ìô7k 5–§Ó´àýP®„|•2BiÓàkeè¶ÿvjajóN~¤Fþ(A‡m6ÊÂ%x>¥¥|dál6ãdåËÁ·QíàzÕé«w>¿û§»€Âq'ôÝêM7á©«a>gâ9Á篊ñúÍ_^œø6m§Uvzí¿ÿñœÇ)ê#áo(~õ¡pÈUíh$Ú»–{`VÍá/ø¸vž¡ÄÙpÿ+ñõ„íbž…QÚààþQ) FŸChŒ9]Žž kSxûÊ„‡zUF™Û@£54‡ŠÂ‘$ ƒ'ÙÍ*;˜^ÒX­ŒÉ«Q·¹”ªÙ ¤<Ê1Øßiéo€¢¤C¦Ù "Ÿ„dàÅÈÆ¡ß=]èv°ƒ¨4’ÚE~Â=ùäíTˆs%É%#$¯>Eò8É5¤ˆ?¢q90j5~üFþ7øÑ„ÊÀg{r‹÷Q|Þ :Ä‘S|_êhOÝ¡{áå·’D²¥åàùäw2zîl|«Äî [~üWhäzô‘Ž÷ ^¿*,›‚{©ïÒØ^ä&ÒZf€ì)y)'–ýPçúô‡©úVymÚàþƒ»‘Z!üÊke…ô“…È/™½MšÙá©>”ô2üÈJ´µ>ôþ& òXn~`¿)+¢SÛ™ñÛã5Zºš&rkäAPçjrHziSýE2êOÚR¿?*!¬ÒAK²ÈrN„$Üß{SÞ1g½µ{„‘º‚ÓPbôK>ùJ¯¦~'dj6GWkeÊüé­Ç¡ÉuÐæü<êÚ¯Bì_{ØùޔŽlYÅêî׊nW,Oð ‘5¶´ÕL\Óÿüê­?I2³4äe÷½NcUÿ](œÕí_çoWë–5ÍNîÔv’8ãý,´ÒWÀÎo«Ý^h}ð}]þÄ×¾ÙÎ\Sk>M4KíØÎ7v놓Ӥu:;ì&v®¯jgsþТöð u©£aðGR'•¥î&©hÆ›yvèž°]³Þ[•Ìs¬”ÕP´K«ñ8#Å…FYJCéýè¯l9ÈÄ0ÍBµÿª¡3™fêÐ æ$úÝ_ÿ£)Ðᵿ~T>ƒo±°b§RfjóEþÈoõ¥ÂtÎ|Ož¢ ÅŸî›ö´šËþüµÿ ÞZ¬ÊÜÔù‹û¯"9À8¨-zÛžNšîpCs€ëø7(ï0Ôv:ˆ^Cßí¡?Íj+xíŠÿ½¢Yåì‚p£( %Âj‰ >oƒ5sƒVò`8ƒß¸ ¿À÷Üõ×6]A×¼êí!úqV_§?~2™ÿ•Wù®8zT…®¢-mÈ6÷œ°2ƒ›pgöö¯€JlHñ1BÜ¿{ÉWze"úº‚åÔ@À óñ@|¯ÎûÞÎI¸_â|ˆ¿¿œw¼¥SðEy¶í³ü%Ëüϯª{õóà@zððå ¸™w\z{­KëÈ&®$ee*.—dï}MéÊûM <;O;X²=ÂÈGªŸ²žåd^%B¾)­µ§‡~Ž!g¹ øc)E[òÞg‹·ãˆ¢ÚŸÖÿøÉ~ÿ±’^P=Þmþ‚¢zo+¤$‘¥º ܱK#»MÁTõ$-¬É?@á§•p=á¹8¸Æ§ÏÃLAÎÍGè0´E7ŽÃ/x!œF0Y{IànÖdjë})ð-eá?þ`/'ãJŒè3N,9ùNóƒa­ÎÖTô¯mj°ÿ|êËmÄh'Di(Û¥½þ¨Ï$·T¯~àS©¼>îÉùh†oùÞÇxX§ì\Úd7mâ°¶ÞrNùþª•.—‡²Bïê2]¥¶›V·È]®,õ*Ʀ/á\<žªš¹¦ÌǵwÈ:æT¢f˜eë0ë“ å èoÚOS£eËõ½§ut’FÒeR\ k©»¥'”ækj•Sª°ÚÇYø§ÕÞ™jJRWxToúzy§7µ9˜ò©äÐ[:Hk»¿¹×´”ÛQkÊ3¸¸thaðG-ºÍccý ¼fQÈËî?zyçÏÿ^/|íÿñé×®çàåÿyžÐ™aC”ɾlvQ;¼Á^iEþÊçW|Ã0¦€…1h²Yk'sÚ}­#N“Ðiâìµk~eý¨"æu§‡¦)p¦2š„TÜúÁILéìÿ1ƬeýÁãÖ9«¤¹H›h#yÙPŽÓ·œ…bSA3 þã°¹ðŒ±Í ÒsûàWKgˆ3Lyëd ú÷¿?N)0s¿ƒ¦+IŒvކÿhõEþˆjµƒ‚9k"Q.矺fZÒl q&>  ï\<2“ŠÐ@gÀFñ–=8Ùêy+œÂsà}eZC)¡ËF'2ól ýjøø;ƒ½gz[̦œAß[%팉QBJ@#ˆè™ù-{FÙË9ŠËC§ÏÿP¾Jci ¼ÍCºk†8!í)Ÿdýâ´¥Щéüƽ¤?âêE‰Ì9ç%Ï2¶ñç/Ùf® ÿQŽ6wˆùÛ½ü%é ͇ÿHÀQxÕ·eã)®Ü‡Ð€/À#œ÷ç/¹?w¬•,:×ÉñÙûó¹öOXÙÁÿgá:³—Ãø4•åGÜJrÈàÂ)-[¹‚Toçil.Ƕ,ãüÒ×™ŸñÇ#+*yÏÜÓó*¸€¨²"ð tr‰ïJ=¨W€ÏßÉmO²‘«r>|ï=N’‹’Q|{Çgï? c6Ü¥VpH ÀoaåW™%E¸¸¬‚ÿˆëÞPu›Ëî/5e°<;ÜBbqï½·+2ØûF&-ôŠÇây¹7zs“ÉnøõÜ jz‘fÒøšÓ=.wx„ÔÐ7˜?«¹=ïä'C2HKçß}îki-S¶á;èï ¬´1ÜH¢«ç?ÚÉ^é§-õ¬d×þóÀGåu ÜØ4Ü¥âàäL|«zîÇxk­v .Ì×0 Va4 sDi+Å4ºÛø~Wöé[¦›àß›wƒ?|2A@‰´+åàéTüñwþöEÖðGÿšˆþxN-ä¥fÕáZ þ#ºÕ5:O;÷¿×RJskA|Ç)‚¹éB‹å¥Òha“³ð”ÕÔ™n*BQõ TX÷ä¾þ¥eŸœ@ß’»¿juw¾ûH»µŒ<ÐcRP¿•nƒëÑE Îs÷±´Yò²û^g|‰‚ì—±­®ÿºþàsß]kˆàTÿXföç¿*i×µ#ÛyìÖCß¶¯Švß7™‚1­IB+ÍF;»“Åž`wªš§¾³Ïnó•þ£¸Yü`A‰W fÀׂVüG[j àŸIfN(뜰®[¥ÍeÌêíÀ¢¥øo4ÎJ©©€E£üØïåV`"™Æ¡zÞÒùÍk:ß'Ò0¸ŒgÀÂÚ˜—7À« ®P5òjUw¥”¡¨ÿ`Õ¦‡ƒ?QnBñ‚ù—aê(í¤$þüíy–ì’¡rJvw¯fךÕÝ,;y¸Õw`Ïuà™»œJ ð3Sÿï9g5±æR9ðËJÊë¡(s}hñNêêY*Cµ®^‘¼úT[iy"ÍÀ#çyƒ“J-ýáRSóûÇx;¬Ívlpþmøm\¢û³ ×ÓZN×JX=¢tªÎŸÄ×ãrAë ž¦g1§*¡•)¡OJ˜©¦ôǵwÀÚé” úÐ#Þ¹§ïh uãZR{iM«¢ãu–®Öøo8]-…µ¸Æ]:CJAÓÅäðÉÞ»üÊgáI«¡3X×ýÿäo-7õœÆa9'ãôª6Õ@wŽ{Oi ­-·0s’ivi© ¹!½0ñ*×â>üWΟŸÇªþ;_‘±Zÿëü‰×}ç­v§ª“Ó™`·¼üíÕí²v ðÇRËýÊüí×|?9á?¡T‡™‰vR'™ý‹uÑ©m|Nqg·ÝÕÎó•ï?&c5ßCĉÞ9<ŸjZÙœDÔŠb›ì&?üÇêPú=Öq+‡9GS€ÁÅi(ôs$Ndªe¦oQuýó‘æ©Ó%TõrF9sL3:Cã©7¤ûÀ϶”ü‘†çzûË‹oM&¯&H(êÄ·ZRQðGlºA9y%¡ìôÔ4ÏŠï¦@ça”‰Z|1É»˜¡%ýŒ9ÚíQ\Fy#ñç/ >Ø‹•vŸ¼·“}p¯Füc²8V;'…ãiÐåq1"9øÄtzUØÎ}Tî#ø°sà€c4€:QO ôqÓÅ¡"v±†9íñÓ‘x>˜á °¡ V_qr ñ~ìwÞ²ÇÀ/gád–ƒ‰rƒAâ…À;|E•¦Ú2œûÃÄäÕøùáT”'A{Èôˆší¼wßsA¾HÁ«è5%änNÊÏž_ͳ»ùó—ä<åð¡Vs±@Ígô¿?¿-©e;—–’²ˆ[ÂÝäƒS„äE¦ž ~†æµŽJaneåp×x%˜ëü@*ÙÇ7¥…þ ÏpQ½§k}%žüg˜Né4ÿ>Ì uóÒÚôIÄVöMSž–Ð-ª€U†ÿ/?ËÉÊd­n×Hî~ài}YȤ’Là¬èõL~Æx%¿‹‹¬þ`oãíp:QÉßßÛUVJÅ%»SjÍáûL‘hg°QžË'ù Ç’ÂlSñ¢Yåá?¸Ö@R0åêÍåå"zA[Ë*ðH =(åõ™¶ÖŸ%¢æÑÒú;Ú5®æ™o?J-ͰñVZë혜 þcà┘ßrÉ©[µ„Ž–0ºTqÀ'[ðû«ÜMOÁ_6à9Ç_¨ŠY„?6Àüà?%¼›ÞQ¬¬¾rF+kgmæÏ3|\>_ûèª+¥ºn’(ÒW'KŠÏ6”RA*5ø7µš;#MQj”‡ªÐRùÆ=¥Eå Ü–_ôŽþ¦½Ýi.»ï´‘Ö•;:GRèin¥.7§›fÝ7ÛÙÍô—ÝôÚäK$"[?ýë÷ÀËãí8N '3Úòž.­öµ´‹Ø‰ìÌà²ö}U´ó¾_œÁPHe)<õ4›ìpηv7Ë2¹·CøŒÝÊ.øUíLjVc5ß7y½œª4Ä„£ÚÖN^¨ˆB&üÇH³,Ôû¯NZYÌàÞ Ü뉴’AÓÄ †f ôÜQ XZÿ “ÇN×Påß­îtv€?®ÐèíÉôÚ»)ߣ̼<²ì‰É†¹Žú"D²~‚?Þa¢'x&Å…&•?ƒ.Rv~ xBÞþ«Ùà¿Ôö‹Ï¯.Ú³Á Õà=v@AÛàËêX…ùyãžp 3Ñã“´|üžþ7ëþ‘?¢Y9íoèú˜ü1‚"ÂcŒö*²s'Ä]T±ØË¥u­LÍÀ§«é®ùÉ iOù¯V§>°…¹Õwy®­ Zªž§Ðç”ó½lFµä]tÎh.îL\pfŠlòåvV›‘ð;¡µ½ú3à$§R1èýö<‚÷`å·ã[ÀÅKÀæÜü'í¥y‰`ù^NZ;xvЩö3„²’Wµï>ù %ÑF €?Òë É&'¸¢TƒFïÍaáåNr_ðKcžgZ}–¿äª•º &¥ã‰ø¹—|ŠÂƒ™ H 9雷öÓMúZã!âHüÙjξåïåtT˜l{Õ'í7¦8mÄHçG ËñCz ç²YRrIÙ¡K4‘{ZïkcY¿Ð^–q)NÂ#™å9ÕË_3Ô1Y8/TõJσá¦.òtY+ÃÊ@bº[5%¼C2wØn Z{’»"Nž‡Öm‡ÿ(Èá¨ÚÇXQ¬jÖl0G-´*5ï€ÃíÉ5ä¹´Ñ8Ú@VK/­®» ë/kàÿ t)Ïð@ô8µLCÏP;3ñc¼Ö!ÛËOyót ç§’^¥D; <þC|º@ß?¦ùó——«º^?ð8ÝCר2F;€¥šf ü¸öf[k,T«|+} ïÉp{8†ZÚUë'Ko½«ëÐÆîQ×I-¸¥Ôâ?/ ­år{h˜âü5ÿ8 O[­œq¦0ÖX ÿyßwÅ=¨õ䨼”rºOkkWw‚k¹Ïñeä©‘äš®ë;®åÏŸøÁ€®f–…¼ìþ£× _¶Oò·ÿdÅû—üÖ:gM³c9$Î +¿åÕäicײSÛ%íuV8ëÒ×…³Æ:cL h®XÔÙܲ“9éíVDSÇ|ë´uÎÚeì²_ÕÎtfPæ‘)$)@Ó¡VðGmh‹˜¦¸éÿº +‡¬Vns™ÖAÑVG´Ýô 碄TÝüAÓ ¿ªÁTç½vj˜§¡ˆ×ÎæÌ6½Àóü'Ð? ;S(ÖÌðßÁ‹—¤Ç&µ! ¤²Úù÷ï&¦ˆœþ#)Øä½i¤xõ{Ù¿ët¿îîtü]OgâFñ½‚îQ=¸Ÿ ðïMè襔×ñ jE^ˆˆà?l¾|ìCcÌR+¤jÞEVI;)ÛX|stL>z†–Ìô¤mþ:xÛ±n_BOMâv¤M´Í´ 1É$+ЩHÞ>¤qàñ½èanÊ–} MqM ólÇuáåäUë˜IÈ«¹—=Dþ8âKê,2è áðq ð£m?ð4 ûÞ†•ÿ ?ƒlçÔœ þh/Ðh:X:†¶9,Þ4»ùŠ% ïÀg[°·§ø •fKjI+)u›$ƒÿ¨)ùüùcÃUÃJsÞfšà§cãÚQ x«Qn^ʇù.<_¾ÎÙÁA—ù´x ÿKñ@I*‹ÁF™øŠ¿ºøœ—âQL{í'¶ÿ2åhfEf8JPQe¢l•apD[u!øc¿¾Õêr…‡H'™ o‘’GsTñÁ‘¼¢Šô­iù)™ô•ƒðäyà?âƒgÿýˆx~(Ž»P3hlç®”[¯J?´ºüÝ9ÓÜ BÄ)V-§0­ ƒïXø;œxÈ]’7Âq­„ß©H.%¡oÉ 1IQg˜iƒQë~ef†‡iŒžfƒên¬û“ÉŸ¿ýT¿WéûœÑ6GÁ´qR|öþcœý›éŒÙ‹gófŒÓKôgîÈ-®.Yá?ÒèAI)G¹²ÔD+›r<.È=á,ªðÓÜ_…o­8pN5)!Oâµ|›½úµ§ Ü“ÃqüωµEzDyÀm$Àø8Z}Ÿ½GÞþÝOÏ ²¯šò˜w¨0²8?"•_e‰Ôäb²ÉÏjx·¸‡´–©`„üðÁ"~áíD0Ÿ®¿&&?ÿÀç1ÒÙÁ†‰ù*þ2\fq3 á®&uôæÔ™âè =£?cüÞë#Ù÷5_ïpÝUTþ##O¦f©ù{í­·öA¹ÔÆ*Úƒu:Ìì¡Ír mj¯%ÐË£²±æÁ Ð÷²@*ã[’àϦK¸QæÞ`ˆ2|=Hþ’3þú±zš@Å¡‘2ɽ­­åŒœ”)zN‡ÀLt? •e´²\Ó‹ò&—Ó 3 :l/V_%3í–Ýò:ãËmI÷ݬà•kB{½÷m´ÆÚäÔq¢8‹,Ïìÿ(lƒì·Þù‚WHø¿_ï|£œQ¦:0!u7çlËÉ`ϲÔä1éÀŽSÙ.ÿUíLböRà_MZƒ;4ļ4 ¬øNVÄ/d’šF¦‡Ùl‡n‡ñaë¢UÂÄÚó*RÍÒ}OZ›À ˜Uå¨)u2Ì&4;‚›;œ¦Xc0ôî"ºYÙ(ÿ’2B9GÁ,)C¿PxªöEþˆc ¡<´ß|WíñG2ŠßRhw‰Êó Úż¼ý¼‹ÀseN_Å3öP`j8¢uÔú½/\Ü*É« É;w&Ð]¸ø3pMsp¯6X þ!fD«€†Èœ mê 4¿cš¢ÏÏéw¬Ñ*4‘kñE(©¿à?Ž5ú Þ:ºeš†˜¿}¬ÕÀ©FK0BÞ>§­ðÅý¢ˆ-¬«§Î%ðÇf®Ãµù¿·›_ Ì•;ÄúQÇ|ÀâÃÐ_kÙ82ZÔ|ÀcÃ{ºÎÜŠoò  |Î U¼…6ÓZ0q üGpþ˜m÷4Ý0»’Á/¬çʸ›­Ð üš›ûŸ_eÔC’X¶r]©"«¹üG~ ý8öI+e|vþã½å‚ÚÂ-Ìá̲¼y˜óƒƒNñ-iþ8|‰,G€÷ñd7¢e€Ê¾ÁoÏé) øãÓü%£íW¦.y•áKÔáç”@z=‹q%Ù¢35µ{Pïi!9Ä3¤Ž¬ÇˆÄ“’<¾C_¢›rÁò—æ¼¼•nQîÈß»–É&ùEFñ ïþt¥±Ýir•çH.=Æ\ÿ±‚ði°`1~äýùwVwk¥çæìî9 ¯Ü†CswÒøZ_ÈPàèQðÇC`ô/OK£÷ãÁCÀ eGBê¤Æqk¯«á|3G„§Ì…¤ú¨k$½NÄÈuÕ5*î+Ù-'t«Æ”º$¼Y ¯Ðßüíý—[ÛpÔÊ^̾¾æ(]’?µ˜Ž×6š@WJkÝþ(¥#5ªÎ’¦ø–\²QÇH9(›Øü#ø£ߤ¶gáM««3×äªoŽÙæËd÷‰¶=òTÊê ðã0÷7÷üR m#Ït¿ÄÖHRSbž¿‚jµhæa¶ÿJþÝþœÖ‡¿ oµú×û¯¢[Û¬9v$§…“ÄYaåôç¿jl—²3ÙÙìõਯãS¾¥àªÀƒ¼4Å„q";%íþ–eÚ™\NSç’]ß.ñUíŒmÎCÁ¿4­é¼—ÁÉÄ¡²V'/R“ß´4³Ì6ûjèZfµj˜ËÞ^Uè… tŠ’ú3 50S1ÓoÒ¯˜YÞ®®ø¦}¨êŸ÷szcö´…Ž o4ƒÞIZûù#%/¡Tìp z'æåøòûó,Ö¯à…“&6+=‡ûÈN‘1/½jݹø,üQ<(º–˜qKÀ3?}ñüà}{1¿uA«~F;~—Ì¢‚ÀÄÑÐéEùwbháÓøzxºÐ¬´Br ÞeYyììÐë“Ñ“t4üñÆô®?£å¼ü1Ÿä×XµwÁ(çÁÏcÁr·éü‡BÄ߬Nu:@.¡fp@;á/ªPuòòpõ§¬ðp´9×àè½wþ¼$EÓT Ô!ðÇ._ng–éîú•»-£Àû5@3Aï{ÏêOr:üùþ‹wAÛgƒÒÞ ¾ôÎŽfä N4ûJ°xcìŸ-þ~-MìçîFÛ¦Hi½À#üuWƒã®óóð%ówýÚÖoÖzô´'Ÿ£Ôü'|~kð‡êTÄh „Ÿ«•ô/èú#Ú¨F«iQ]à À¾+9Œ„ÿ8B=ƒä/9f³£qþÆ?Ή0ŸOp4)ˆöÔ×c ?aä:Ãs…w“ë)Ù‰‘,.Ýôæ^MDÌÛÒ,4å>®½Öv'•…?ÝMi9-¼m#Ù¦it„¶Ô̺DÆË7k]®ßéni§55¥l×ÙRk/7Çú¬ —Ý Èó«¦ÎbSÔ_ï&e¦Q¢n·žì• 2YÿбÚ×íFIë¶Óò mŒ é¤‘Æä¦XAÃè¾9€Õ™×Ì yÙýG¯ëà¿ëG…±ºüëýW­=ÖT;™ÓÊÉè̳²"Ê"_%»¡ý­]ÄÞjE±Bwºû¯+¾ ÎH¥œ—¶˜vj§ XȆ¦Ïþ8f7²Ë}U;³šSÐ÷oL; M3f¾¡V'ýH¿™2¦žùþ#t‚oYç¬<æ:0É«P·–þ#e2sh8ôœ—¿¤!6^®ùÎM¿Z;Éð/1{ÆÑlòÁ}{çÏoÁ»Ï§Àü ôØ4¡~”>õ£²ZíÁÁßr! {e€Fi d÷N\ú?ϯ*9ƒç:|ñýyDg&½÷ïuß4Dè nâ)Ü’€JßOs íÈOÀIÛÌÒ ~öÓ+¦•ÜÎ ½>­J€h‰üù¯Có/âqP ˸.oü «`™qX™Oè‰ù)Äúµý­>Nyüd4žŠÏž‡S)í‚õÂÃw6/œˆ²ÛÂ5¬¡ƒèíhªFQáA*Qþøã²¯°³ ìøŒÆÀW¥Å:÷ök ¦$<žëƒCÂKj°À~LNƒ¿¿î8 üˆ \Ýæ¤ø¬~Ô»;´ ¸Šá3½ùõ„ €¿h#¹d‰dÓ³’MŽ‚?JÈb|cD.ÀxÇì7­Lº`=~b½5¹Á?àg.C?o†ÿ¸ÌÙ%\à§ÒXêA  ‘›ÜJ"Ê|.þ¸„¶zõv³€­ZŸfZn?0áÊîxYѸÆ]¤½Ì—¦ «t¾&pïês­-gÜMe%”B"žÇ®<â-l¸ 9Áòï62à˜uàÈdàÈà®i@úŸe#>Ç]¡Y4©Ft·Ë-ø£üz^ÁÛµxãKv¾${«§µbàïoCC­ÇªjÅÅE´Ÿ­*ãe‚¶Ó›RTÏê/:Q^H ×%àÕ‰ðzie,îÝ-ê`:ŒwÔ:j'æLàðí´‡°Â¼<'åõ|̉_ó^a!Ú—IË%ݩᤫÞõÞI{»×øWªbf©µÂÚç”r4†ÿHÍ) MÊÈ~Í­ƒµ2Z¸Ufë=ªÀ'Ét³”в þcª4£ðí(#æÁÄüßxW¬ŽÎï¦ ¡îÐti‘„u¯i'9/×e€þ_3Îíé>VËí õä­ž—‹ð˜i4·„¢I>õ´|ÿÿqÊ$â{_+xåÐ^¯|­þvFÿùó9VfËÛÓRÖ®e§±óØk¬§¾“_í¯‡3ÝT§ËDsÁi¡ñþ°Þ8La§¹sÒ®fûªv˜uˆ¥àø=PãMDjh•ô×êlj™æf„Yd‡®…{¬ûVfsúx)Õ£åX1‘°BPE3ŸÆÓ9xûŠð%]MÓØ„¦¢zCg”³Êüþø+ÅSã‡ÑJ—PfžBÉùp‘€{½( Õý"”¶ÚBÁ3Ñ ²rY¨æXSZA('Gk½Á= Ö'Â+×qzaÃ93èÕo!ïI명^¦ÄêïÁy á—Ží¡8é8Í¡‰fwzdŸ^‘¬Tv =çå ûýyl†"ꚉ?«K³¹ pì(=$‹/Ót ÷b|÷-S3Äóç­žàs`‹©Tœ¼Ì}%)'Võkº¶Kk>8±üyc Âo.»0Ʊ"% ?Îù29K åÞQ/¸ ¤†gÃEö^Ïáv< H›;ò]`ò1Î r޼ZI;ñíéy&øã@°x‹íþ¦7x- ï†ÆDºÒªÄ¸¡äö?¿º%à?*Iq¸¤Îø¾b`§9ðýx'fNðóƒÑlÆ ¤lp~wÙ‘ƒ“rFI‚o¥”øÿùKÜMʰZf¾¿äí¿ÊF©á?ÖË_òÖ”ÁöÎXoäšü"Kw™-9¿¬Öíú­ûñÚÊy.õe ´Hz0×·â€KŸ;Å‚ùþóçg(p?>?ã²OFÊ4”ïÜÅšU*»Àv ¤üÇ^ÿºÃ%•ô|Í´þËXͬ%põ ðM™ Ô‡RW®.Q€ñµ2<Òx­¡W¥’ÒuÄP/ßÔ,pÂ$>ÀÉe<'€Ãnm–|ŒwÐÚnÇáìà3´‘“Ñ:æíª÷÷Ë$¦öSƒ[ˆæ¦Ñ•²L—¨JÝE7p¿f£ß©Ž™dþ~v¼ÉZ唄¦j?“ñ6Q[Ù­…Áj5ô[="¿"Þi´ª·ÆÒ9ð9¥4 \Í8)ƒÙ–ëQ6ªƒ9Y:HýÁÆÎS³­7üGZ)eÝsÚZŽË-pÑŸ:D‡»ýÝÓÏm­eå%<Í{I'eô[®M—1gßo¯XX3>äe÷½ÎúÒ9ÿ!VËÿŠ Ë»ØœZN^g“ßÌò5äµ Øk-¶‚ïÿ¿_w|£œ©ðt€†ËÍC;²#öPë…SÓ¤wz9/ìÚ_™ÿ*“9H?Aï6_(I¿˜ÔÄ*ê$¥šTË”̇ÿÝó«ƒÖC«œ9Oëá=êÃ[¦Dœž¾§ºfMÞuôW¶œ`›–æE(â5tÆ93ŒWÉÂ{îÿ8‚–Æ€bM¤Ï×àžb­wê~™?ÒÁdÿˆþ(Æ“€¹èº?É1ðÇ% žAÄúhõh¶¡È_2c¥tÀ'{Ó;3„JÑï@ÅÙÜÓ_“n>¸c¢…ççp!3h¾Yýõ£XqíD`šI”Џ…ó¼É;?8… Ó .ÅopnÐsºé‹1p—M;'¤:À=¬nN1ÿ¹÷éÐgð¹*`ÚfP—Äm(²9ï¼æ•@î’¼ܹ‘æRsú`òQU*bþÝ Îl3ŠÑ( ù7ð ñó£ÁÃÑÓq¼šºß¬å,À¢s^eDô<:z±ãûìüù*»i †þüñŠÛó ŒÞ6ÊËo¹µÈJÉ™XvËÊf et®%>’ùóï–5Ùƒ¡m‡ÿU‡ÅçÀ {03ŽsI.Çùº´€6? QÞòIfsjèí—øÉÀÔ|À¤gÖÎO"v± J`=]§ê|Ëñ 'Ýüù¯rËݯ©Ü{Ám%·¹§4™ð` ø1Å«éèÕƒ‰b>Í_ÚÊDƒš8†ûUü|»Xö˯2ƒ»Htw›æÐ4ú{Wžò)¢Û0Æsqoæ o€3óñ{Sùï`ÖÖ"Œ\-h’| .¯=—‚gÍ/se¢6ÐS’OÏë( ®Ÿ?æ‚{ó>N†oŒÅ§i¸é÷1Ü"k‹jÊ«Y¿ xŸcø{MKètI¨“ÔqûéL ç蟲Fghé¥Û kò\˜ÇPMókçWó¬Neh–:X÷("}MðP‹‚/Jáþ”Yp6ç´¶ÕØp#]´´Æ–u:CºBiF‡ÿȉ1:AýƒœÿhéL4ù1C~£X±§Är÷i-Ù,gd|å íå¶v/h|·¿6“pî¹ ¯£ÙÙÛ“9’ž™ýP\Õÿ+ùÛoù2ZWWxëëó¯ëײuÑj8œLΫ$¢¬ò•²ëÚ)í’özë•/tÕ5þ÷zãûÍþ¼¥œµ£;1íáÖe§ˆIíttöÛí_¹w#Pý½iG‡€ÇÝÍSøïRN|ü]“ÏÔ€¾Xô™† ù:mݵ ›k´ î¿øãEᬟ*¯úìyê†U^ú QCÙmœ‰pZÍÁ3—ÿóüªÅዘ—€7©6½5%àž¾£ò¡xÿÑ ¨uØ$¢çðŸÌ öñή£tðõÛ‰1w9†ÐÔØñ…Qt9pFí žwÀ18Ô #6ü1ûq7ÎËCé.Ýi°Ò3àþLZdæücý¨¤V"ÿþ«ß(¾» §5s)‡/˜Íù5|Ärø¿ÊæünúÁ½Œà^ÐϳpÆRIðG{ŒõóÎïÖsFhû?ÉÓÚ[ÀÉà?¢}æ]·ÚÍLpbRÞÎ÷¹%ßÀn£Âüœ+KfY-yô‰•³\ Jr+·å¸@h/ÿn|ù‰÷AÏ~ü€ÕÌï…,Ù gzŒ¿—ôr’}ÚIûê¨Þ8ˆØ\¾Þçã ü?ù˜š üê«_;ÐþËÔCû}Ü·€·- xg™% 8—lÕÝšÜ}=Þ~¦­4“¥˜K pÏãÈ^ÇO À{~ÕÄ|WæÊO‚ž¼¥·<[ÖKW™ÊÝ%‰»Z³ÃÄvïÉž*Åõ(wA_‘óYDýï˜zc=÷ýhM§ì\ ˆŸŒ@¯4çŠbëdðG5pï­ ÿQJÏY'Ë+)«It/ã¡èkÌÑø š¡ãm³vÙÁ§à¾qfzE¼û ´ªn’x:E߃‰€/³êqY¤sá?Úë!øà&¼ˆsaŽW6#L®ko‡õ§ScPs.§‚ i.ÀCðorø‘zC÷ifˆß­–ZD]Y§T‹bs8n 6/©?xÐjíRk«)e‡;Ù oõ®V•=rí8¯c´£;Ú=© ÜáZ^øó·'¸Ü‰n›©ôÚl¥7›C^vÿÑë.üGÄ3ឯõ¿~ÞÚo±S8Õœ¸Îdýõ¾Êv;‡]ÌÞa½õ…¦øß×;ßgœñ²¥£iæ´à cµž8ÙM:§ó§ÝÜ.þUíÌnÖSznZG‹QCÔÖÊê|'^üQÚŒ7k>;CòuÄzlU4—i5-§J´ŠËÇßQṮYл€óÞ{Î>&ºéªóçõœ_•¦)].'Ý¢}P¾ÁÉŒ €<%) Õ A“J}‘?ÊX^ åã&-€§Â‹ä¤—ˆ¾îÀ;µ°–¾ñÞÝÑ šfnçüò…Qdg ú÷#¸ãÐ;Ó#688š¼6Pe6½§ pÏï±*/Ò,gÖü£ÿˆae¶ÓCƒM¢ôÿ'‰—ÙqüÍT–Ä5øüÌ=pémš=6lÉ4uœ"ްÚ:U0Zqx,úsÈåeß­G^ÄNÎ\vž—êqeÞþXMÓñ·a0eC¬uÖà,4Á>ý¸;'ñ×A¬^†ªý ˜½ Ψ1Ÿâ¼ãš”ï`<¼j­á¼sÙ!Ôÿ˜cÿbº£OIx#_A+.ÂS®¡|II ký Ø¿“kJÙËíø[.·0üцwšºŸ½?fÇÀ¼­=±ˆûüÎ&%¸èüGKí Å{GïÀÃü,ßÉH8¤pKYd;çÁhÇ´;ÿñÞÔòݧ¼—«¢wqd°Œ—ZœVÖêbMæÚn8·¾œávàˆ–šçòŠü3l0ÿþH™µ—2p'ŽÎ\ýÜR†qcIêNÐŒšXø‚¦I9=NžæZË—ÁÉ‘ÀÇLͱb[¬¹”­º@9x?tD{. /Àµ Œ•IZM/Iô¸ƒŽ€h¢ÉtîÐ4Œõ2šãñf*i&}Œ·Å:lÇäÜPOûé´ÞK°ˆ‘Šêss뉨#ôµŽÕeËͤ‡d‹ÎÒp —¡cêóD0q;*cf™’×Þvk—S s®6Æ/§ƒ6+%Gµ 8<Ÿ†×GÒGÏõ+h/ðÝI¥õ5oÔ¥RšŽÀù¨ôQí ùÛ{:3LmjO© Vï2xŒCú£l•?¥±þ –ìä|ëŽÒ–Ë=(Àw¶T¯Ë+þöu˜ýYþ+ùK.û2yÿa¬®ÿ?Μ°†Û‘ºNLgžŸ?¶ùÚMìœv.{µõÚ¼BÂÿýzï›U^jRlúÕ\±_Û>{¦õÔÉi’8?:§ì6_¹ÿª°ÙŠÕ÷ü± :®‹9aúZÕz´ Ékš™±fC(óïî³^YeÌŸþüíõÁ襤hô£YèÞÒœW…~1‰ME|WNHWmg´³¾è øc yÙ¦Ž{{uùÅÒÆÂ+AaTÅìr¨Øù£ªÕø†I eÀ#àY²c~uðïß͈õ½‰Þ€ãª õóðsN¿/Œb,gð½#¾}~ý`†R´1'tÙP®Ë©x=®¾H‚•q#2Òì³Bª6ë]á­ì²¹/ð,üC>j‚>žÂCàÙ†C#>ǾG¯Ñ$ðý2 ôó³ó!„h½à?Jûß ÀˆŸöÔ=îf{zGÔ‚"™›Î{ðGÄÜÜXN£¡û£‘ƒâ‡À×À+Íô¦rrÏ á#§Rn´­”÷6~G­Ègy'Ø#>m»…c—§; ?«_»Åî OYl½ŽrG¨€nûRнÍähè\zBÒÈ6øº² ­LÂåñwÃùiΗMíÏöïÆ·ã@ T ôàç@çcˆ¼…JyËO¥™þ ÏpEŸâoúÀLâ"üxë&¿ãÍ\„â’eoý$âPÛX‰{Û”7àN¾¡°ò“L”Š\JÖèZMþï6”‹ÜRêûó·ç‚[ˆ*Zûs<†)óI¼†&{óë â¦lÀc eƒtQÜ[Ò¹«Ài5†»Sò)©;ÁÉK Vñq¾Àq%'_4M‚Ì“AÖ(JÌEù üÇÌÝî\ZÞI_})™dšLÕ†zVrëim­³ä[-§ ô ÏÁŒÜ/3wç(•ò4g‹uÆËYÙ‡i@Áàÿ‘U7ãó¿éCpÈ}Š8'd».Ò[Ü üqc3ŸëL5ÍBÓèãÚ[gíqŠAÕ5„'ı¡NZÈupZ8 Öïà;Žë-´j€†ÓP õõ1ïSÕ¤0Ð%])Õ…ÿ(dÿUog1V¸·ÿª¢Íâº'´±i ¶;T»úù#™;R;J ÷¼ÌT’W3p=ºjzÑC³“nR²ÿ œôe°bœ ŽÕò³ß}ér¬óþü»ð,ïéÒ_-»ø£Œ½ØzãûºýWjt&š\”‡¾¡Áæ®ýÆŽ`/²“Ûdsz8çíÚvÞ¯jgr {=zlZcÕgEÄ£fU݉‹YÑ4ž?]Êü%»-Ÿ`ÓNZ „™ Åe85Vh-3xsŒZ‚ŸªG˜b&4[:á^;ax;ŽfAy †BÅãÅ@ ¯~ÔK“š:"åû"”µÚPb:hB¿%çqôZó ì´•[ü±+/Xè!¥)Å5q#›¸çáåàæ…¸S•à?rƒcž:ŸG{ëËïÌ7£á¢qO y8ô¬>Æ(À_¿¶úëãfÀº;¼3q">N'éð(*Gà‰NÌÏüÇ»—i…š˜vßI¶æF~Ãå%©,’´zNÊøü²ø>é!<] äúìýÇ÷vd°Q eç…`±ðñÁ ÀEoø®ÔÔ_t3øã ¿$ê/ÀùùÔý#ÞÁÅà\#Ú³?‰8ÖV´nø²9ŸæFüŒb‚?&?rËïºDãºçÔq+Èî ee1äÌ`ãøBàÜb™JŸÄkmÜÆL(ÿ¼0 ½ì*3¸©|ë®ÑÔšNcºÀ‹$»îå_x*8d-¸õ X)Ÿ ²7œ5ÔZDyáo¯@ó\ËuâJòV¼óÜÅÑÆ1à#R[¯j'!1µ‘ÆÕK¼£w˜“ÈöjçTâ?–X'íX è Íá ˆy•“JWô¯¬®’otº>ÓÉz.īޱJ§é}®®·Àupß3BŸxøð·÷ßhípê€=Úâþ?† ŠÄóäŠÿ¼GN…¶t× ð‚¹µ øî$ÚYDßq .’˜«‘àå £›‚Ô`Œcæ°OEI)#=7-ÀÇÉ;µð'ùø5냓¨ÿÅóçïìyX#u°V6ƒ?ÞšÞ`³™”X2¨˜g¡ÝëÁɉ ¨ŽyùƒÍØ|ƒßJc§§(<ÞÏ}ˆéši Œ~J“y•£±\ºß«idðë|¬ŒXûL÷ë×ö³Z9ÕÑ«dˆWΟÿª"Ö^Y0@8îO±Í+'ªüÁËëáÓ\Ü—ò‚c¾Áœð%s˜±ð’CÁIXy*5¦á” ª»/Ï2…çþþl±ËDéÑÛ=ð>¿ã>EæeN";x¦³v?Ó ê$ËQ°Ø ÜÓ­p3/¸–¤—…þúƒYä7’\hesŽÅ…øB÷ç]¦± žÔ±ãB TÅÈÏãì“-Ðç{8½¤”Û|_ªhK]¯Üü’»K ø…´À½'|-Þç?þÖú4ÿUoû¡)KÓ1~­àZc¶ s¥!g„ÿX¥qÜýªnyÀí¥©,€H…ÿýßÌï©9Áò—´7)9ŸÀ¤uu’¸p#9ôÿÑ[G6‚“a´‡©Æ·ÁZgGÆ=½Ž{¶†“R~ÊiÁFܼðd¦Fw§ëýÆM®{e©î×ÛÀû ˜— á’rð`ªa&˜¼AüÇn§8P$Ð~æ­yDÃä¶VÐYàØð4Ít™ÞÐr^Jã÷¸Î”®—öN$D楔ïã,'<ôjr(ÕfŒYnß U¤?­;V ãéãµÐ²S Q91%„D¿@§#ï­ÊoÆ6ÕBµ7Йá,7áf‘WAä ^3´W|ðG ¬Ÿ‚ôÊFK_©AðOWV«÷‚‰OÄ^þÝœPÜwL ÖàQÊ€XÛéíÇÉ;K6Öþc&Öäàóc0çø”þfØ?æ¿Jdå²Ó gcÁ„I©+Yø§Xâ MãIà€¡@)âCtpcñýnZj:ïCˆ6Äêëâç’ƒ% _k¨$îGKðYdîGlî;oÀrñÏb¸®y4Á?—2O%þ€Žr›Á`ï>ÐÏÉø5âU¾fãÅ܇ûñ"ø«Á@îsü'Ð11Z¹™–Ð&p'8ߦ=þ°Û‚kKQ.ÿ;÷†|-ÛI9áJóWI=&Ùe'W”ܲ’d/[Ù¿P7šº&8GµãSQjN…О×p*ë‚»8³$Kàà…úN_ò)î"Ñd.Ø#7\Ê>pÈ|¨›ôôÂÚìùÕ;̹et—*ÁÔDï^ÂiŒ’JœI6@?§q×*»9ä J LÆN,}æ÷} kš}ïG“Nï„ÿDD/N¾/³¥£ D“¹“4½Zúj?‚ÌBºÞu\Ïpë-Ž%Uùºéø1V8«‹µ€ÒsY¾ þ8Mõ3X÷ž4ÓRD&Ëx0Æ9)§§µšN—÷RL³écÜ눗Q~ç„X;õ‚¼??l]°™SÃÉì¥åœ žò9ç•Qz^séñíú3õ„Fq¿Óƒr~…énèƒ*<³ðÏTÄ 2¹ƒäßÝà”ÆìhyuƒÌ_¹ íà? h$ðdkÝ6J©­ôšì“üºZ_ðb)åè[~ƒ9]RðÖ üqÉêí,5Uü{ÒBý­”pî>m ‡å¸TÔ‡ÚTË»ÜZÁ­ýå.øãº$ |ö3h‡.`ýÅ0£C^vÿÑëž/ HýÚ÷¾ŽÿX=îK×ßküGe'™3ËÏ }ìÚàrö"K¿2ûS_[g€I,~o†šMö{;¾Ýκá”0±œ–λþW¾?O`æ{{sL!hÚ”ÔÛÜ3M¬rN¯&„ kÊ™9øŽÛ¡Š´ß:b%1k€¢Ó1FÓ ŠÀ©(5•0ÓÉÇ¡r⛆ך¿B¯•3ÚYmêøó—L@ëÞ"FcðÆuŠÃ³)6Ÿƒb¾cr¢¥V(ÞŸ§´‚¼óçOñùqÐ30Ã[ÐÚ þ¸êÞ³Š¼ÌÝ*Íœ_ÅÇö8 y-0ÈV8ÿVB¬ TmÄÅx>xj+\Í]ÌáÙÔ‰Z™qV܈þ#~~$eÇ ¢H~g4sw¥z4†+·ÏÒ=péI…QèAcè°ibýÚ¾VgÇË á=¿*;?UŸ¹þèEïëàÍÜ–ó¢¿áffQ8žDÍøãª/¥³Ö » ävМ gUlž—§Ágµœ :|a='âx|Ê«¥¨á@~ÿ¾÷{¾ÝØ´Ÿ}Ï;À Õø.ÜÛn ÿ.+Éd¾dä’ƒ\ˆ¸÷ ðþâûà’ͦ¦ ^1ë;å‚ ÌÎ3ï5¯ý ¬O ù¦j ý]ŸëC¨ùž’Næq&pÜ.>ÍFrIJFï­ ŸDìl‡ÃŒZŠYWÈۀߒJsY$©9ƒ,Óù꺧…üûwÛÉx®˜Ð ±ä-/d›[’Ï~¯§É¿ûˆÛa„öò$™$C¥-×”ôîrM¢ªOuøÀ*µtFt{ÙAöŸœrüÌÔý;˜ÕÜZL™¹*üGzÞƒ9Ѓ ÉKi¡Ï$­üçPQ/J%?Ì“°ZTËëIpG{0a|çU×Çp{­­¶—ßø6Üì^އ‘»Îed Ú“I§It¡gu¶^Ó¤nø‘mºGßr½Œ¹U§€w¦Pi33ˆÿØn-vòSª%ö‚î›÷´Kžj ­ÕÖø:z[óé=#;ó«ô"¯ÒQ’3Óóù0g·P±OøcŠ)I© ð.9íßÜ;ú“ì-˜'/µ‹„ÿ˜§…ÝQÚInê!¹Ô0Üüñ;<È_Ð\y͘—ÝôºëK$ßD4«ý¿ÎõÁwÊbï”,¶¼·kÛ}5ìÊvJü»Êëëž_=ñ rÆšòðzÑ¡iwÙ¶“Óîg…3UL<§‡sÜng¯°ó¿R?êÑ_`ùɸ=ÍcSÓúщOµ)£ 0Ít³ ”ùw÷YW­Òf;´ÛR Ìh(Ûhœœ¾¥úf½?VhëZÔüñ£ ͉’zÎdg™iH·Áh=§c˜GñùVâúJ·, °ñƒÉŠúçp@GÀñ9€‡ÓwÁÛˆ¾-K‚µ¸‚ ïò×0 ÐÌéù…Q|o/¥×þ\ÕÛüõ£ºQ#ZU¾Gp-`ó 0Ò.¸€ût~l$ 0Ó­èÿxþ<³‹õÿiØSÓ€FÐZ‡–¶¢Yˆøãz ߸,Õ†ºÓJÚeZ:!=üÍjâÔÆÏE‡ÿ¨äeÆZW¤¦ôÂpOŠd¢˜²Ê¿6´ú5´ÍËWoAߥ¡0!ÖÌïünFÀ õáþüWó¨!”oNžÍ]¸/âgÔŽïñe |fôû8éF3ä~5’²S#gàùc=^´£Í@ó7¦Fq0b.ÿÆ\…½ê³^&ó‡@ÓÕà¿fJ硟^|YìŒÞóŠ^>|d~òçO\ËÁ'k¸9pl-=Àœ¤áÔž†‚玘¦Î³¢ ´:eé:%ã1¸£ÞYðÚÀëÖär$žC‰M8º¹9—áåtô;e¥×& ý@)BÌ¿›ÝoµuãNМO€5Mà?òðXàáphþ‡Ôè ÀYø8ú¼ záî~ “ľ,Þl»½éCy(!ï„Ân Dû‘¶¹žq5ÉþÈ ,--‡¸¡äðÞ‚àûJùkrE—R<Êtù¬þ‡Ú‘)'Õ¤ŒÐì§ø/á\’ZÎò V]£Æ}ɹ+4úþS¢¥ù~>5ÓmëP°óƒ‚¹?ãW…ÿàòÀÖè@ûuøö²ðcõ;÷°¾Ó¦ò‚ÇIÄËÀ)à?bJYTï@ñL»Oâ 6y¸.Xu¥7„…ëš![¥“Låæà5šU?c¯ Ëx©¨çx(X«&/àý|ƒÓHU~Ä<òýbÍ£Š˜_—°Ž@Wõè½’AG‹Èn™¿ñHâYÛèy"å´½.€‹êÏ{0~Óá¼ÞBÇü¿dõÊŽ·óœœ#P,© íôÖÔYðóÁDt“ª›@wÈ]¤%¥‹z»BjòjNÇ3)§YhŠ|\{›­«NIø@¬‰hüZrÜÑ@ĪQô‚t€÷¸­•á?|zIê@(kôg)B±9.7ƒ¾óNZ6²·³3”ƪo‹“€ÆK8÷’ÖEO0ÒN­«ÅÝ!îA­âÑòJoJj']õ>qà ¡§ætÏ'ÉEðG½hõ±‚Ÿ\ íõÁwÔšœ¯ê$rVX9üïÏëÛííbv)øcíþªhÏ}³œ ¦ e¡4Ú<°9Eì–˜º&‡ÓÚ¹‰¸_—ÿ*Y¿þÜT -Tš¦›jYEýù¯²™„¦´ÿº'l§¬3Vs(ººwÀÊ ,®‡3s®1y§ÚG›¦† çjç r¦›Žô’fc=χ~öÞŸGƒÊKuŸ€_QºgòPW"ÊŠó­à·š”X%™xÚ’^ýÅ”GÛ­Ow×+Kpwww÷àîîî.B°à®ƒ»w·ÁÝÝÝî>çÞŸ “ágÈZßýš ÌLªêª½÷ÓRezÑ_ð§|6SD^ì[w¼¥™Óã½ÑY 5oŽô|”Ñ[3*½…Ê!=ŽCN//x å>x=ý‹ú™eßÝAæ‹'Ÿ¥MÀYÍÿødÞ™ßáÏi÷¢Î´‹›³ Ž·è²Tý¹‘î˜fA¾>ÆúÃ)ŒÂ~äÝ=~z½0˜!ôc%1±MTÙ þø•·¡îKQVmr‘Äsé·=Ù f ÎÂp 2Â2!uE²= …íÆ·ø*o†$æ}pÍm ïSÖ8ÿð…¾ý£ŠPZÞÇ—¸1?Dº8'Ù—ÿñün5äçGÔˆ·r)~B‰¥ƒl’\Lfè2”µM_i-”>[šÈ:8L:ßõ«/`†‡ Së›òƘ"œ®º•Òq3ŒÙ{¼DVÈYÀ=%½»Zsh4dò'òŽwHeøÇŸàº’Ðü3ü‚Ó üÓü½ÿù+dƒ¥T”ë¡Ïsñj9øGí¯ñ´"øe„ÖЋ’HiK&ɵ„6òùG7ôHbYÂyù6õ2¿–7Åzb+zä¢ìb„œãpÇm£{Àõ¡ÎÕY*nTÝ'—ô/*}t¨º¨&/ ìfžÉàýÁ£N¤º:á|{¨£Dr3êLH } ¯˜ÿ( #õ£l6ÚV“ËaøGŠÍ¹%[!ýOyÇ­þÎ2$Ä~#y‘þüÅãúk'9,¤éô¾öÕÊî@÷’Vuûh 뾓„IhnL¯|ûŸ{ï°cïÿ¿ãœ'}€ëÕ¶õç¿~ÿü¹çž5ÌŽê”r²8ë|ûøyªØ]ìœv-Ûþqà§J{êùÓ™e `&¥uæ½Ñ©l´>8mMv§óÄ®gWú©zf3›‘šúP§º š”ÃÊï$¦îÔʤ75ÍtsÈÞ Ág¬“VZs cg‹ïþù9(HÊD9Œ²ô#ŒìH®ÃM$ÓÊV• ŽFÎg±i }_~™FÌg ¥)ù eaï.ž67€†æ£þw?Þÿ<¡ÕÚ¼9;áI”u|`ºÁ›¼û\öíOí]e>«: rzýpý’yp¢†4.Bé߀âŠC³sóAžÂ=¹0¯ÅÈ=Lw($“oБfÕwù#”Ç. þ˜Dáq“ÉBzj îxIñü¹‰“AG5»ODœDí{¹þn«™S~.[ü½W‡¨fõ{ š)c"˜(²™;q1ÞŽ΀ä˦f Â?vx2: Ìx¸÷X(x4Á3A]ÃÀC K#ø3Ȩ ÔÿÔ6¥o¥òÝøÌÝТ,<ÒI÷ç¯æÙÍÌoø¬p¼“¯Á?^PoÚOu8´Ô–$²Hò"™–“\]ªÉN8.Ηy*'’Ö|Äüarjq8;ÎdU¤ûáð£GPÕ ‹‚RHŽñ}iªíuµÞV–»ü»oO[ïô¯ø#‡Âß3R: jX^Û¢r´š¼»ònáZü‰âËT9.í9¯ÌוÁÝU­'x9¸d9WGßÈ Äƒ>ý€™ôÁ©ûMyLRÎÊ{16’£ŸÞÐ3>,eŒ\äAÍݧyÌ㺇Ŗõ ¥›på9Ü}s˜Ÿs ´ù‹éðwaVUkeãÊàåÜ|ÌûæW”hú»ÆÒŽâ/Ã}þ‘Gh9ðGLm¦Ýu9üh¨' ¼.¿¦®æ¬±VÚQ¸4?ÂùzÊõ2·‘fÊm þ"ºEßÁ=V©íFÔrBÏk |Æ z€¾YŸ[@Íâë_m´¶8UFjbä«f' ”ØnpLOð‚¥ût¡®Á™¡ñuµôÕùZ\ÀéªP,Ô­“oÿÚóÔâë(Ümus¦™R˜á©(ýB+äµÞÔöð£Ùõ£öÖêît÷,˜°¯¶›<—âšNºkF®¢žþ8J—ý¯Ü??ê‰àþy«§˜œƒ{¼ôœ¶úÚñ’N2g®åÿû=uìÎvj»’½þ¼ÕAþçPk¬3´PjèoÂ:‰á ­wNcSÄéã·ÛÚY~ªžEÍ1ÁsÓ ÊÔ“f—J[œB8g­LSÁÌ7 ƒùþù]ë©•ßxŸýßG%i=ü(§¢DÞõ“¡QÏ‘"Jxï›p¦‰ Î;÷­œyÎBÔË,F Þk[ ©Ra¾ =ŽÈgÑ'i!å¡*N÷¾¾Ó®x‰†“E-‰Ÿ,™:»sö^ݺ€,îBqïÃS§›9ß]¿$¼•Ø. E·MŠ~ziî¯F¿¥•܇~ƒÔáÏtž,þ_XÞð>}Ì´ òù+ïûƒÕàº1y ”u7íDÍÊR#´3$§R Ê„²‘{ÀEWÒYPç\¸L8œ›”3Èçw“8kÌ8ŠÆƒù7NÆþQ‡Æ"ÿ྽4ÎiDw®.ÐÏð§ër^¯hu0κN­x2Ò<¤‘%æïkǧ¬5 ßâ[1÷ߘý4YÈ­¢‹õͬ¬Sõ¸î‚«ý¡1t» ÕŽ ¦:GZP Ì’NÞ5±yK€÷?.[m&+ÚÙtœŠ¶‹w¯Ú&rD>HiPV-mäŽsoë-´³Üø“TÒœ2Hs[zD÷Ê„ e4ÓƒžvÿÑã”'I€Ûßy:Y1þõûg­nv,§´“ËYcyWçÜì©m·†´7[ÎOîÿñÊ3y°2R>:eB8Qœ,öLë™ÓÀTt†9wìvv•Ÿªgœå> ³øõ¥i&<•²Ê;Ið÷Ѧ†imf™µÁ¼¾ßºg3OÈ»HM(Ü$àŒ™2ïþ³O¡ƒe¡·ScÚ™àÜQiâŒs™Nô™ÑLš ¹ >ÃÞµÃCBqmø^øG¼`¼žÅêA±èø#’ÓŒÇD¾' ŸB{®Cñâò]øÛF8U)jùÃõ?Ù è1fJ: ֲѲ´”Š!³®À|ÍÏsÈ»oíIÔú#>a|ß?Ùy@3s)5ūŢû¦=†¬f?8ùB(FH>¹ð½ºýqÔ³Ç4s‚ÚÇq°ÕÜ©èsïY¨“we– àïþQoih^wÁŽ˜ÿ»ð]«éwøKÊ N„†¬5£A#c¡ÞûeC)8«9þí.||?àû¼þ‘ w‘nÓ^ŠÂIy½“Ô¼SñT»®éÎu~Äí}ë—¥ üÄ‘JVKF½)9ä ×”ò²Nêû‚'À?†ð%ŒœŒú0´… RCBs4yÏþpÉ«œïÿ]¿ª§=ôºžÐ_ Ï¿I Ù’ËÈÿçÊ~.C)é³µâ[½·CÂݶàì5FÛÊAײÉÙ#Ó¹¨lÐÍšÈ} Oµš\Œ“íà¸ÔPçØF΢ëÓ;çÛù×Õ$Äh8H›@lA‘Où¦¼—ɨÁIÿÈ¢)¡Ò‡å5ï‘z€×ñZ”yžo€é¢J~eZ-+ŒÕÎZ¯ ^.‚ñ0…ês=IZÅÒ>²Nfk½$%¡óÍÁ¡t„¶ÐËãù èÉûÄÔ[ðÇßO#-±NØ1Ñ'hùs\”BæJGÍéöÐ’B·©qêhüžROÈôd}é£oè&µäíȨœ™`þ^{n“uØ)F¨"h>‡D¾š þ(ì¥yu7~ö:ü£¢Žs‚[6Ñ2rAWHud›_¸3eEê8A忎Â+Vg‚ɾoO1( ½“/zÞí/áfCµšþáŽrŸih·1ø#‚ûé£$$×A›F!²QáÿÊýó#žÂˆƒ­nVà'ƒ{„µ.Y½í_œ £VQË»þn»»üqØr­à­ò?ÇyOog˜®2e¦Û&š“ÔÉnµ®;MS§»sÝnf7þ©z0G¨+}1í rÁa¨©Uʉ=ô3µLc³Ò\ùG† úØm‚Ü&èf=߀œÉ6³™…Ò¼»x4„ŠÍ4QLWTn|4t&8ËLküä šÿ‡ÄÕˆ^ÓJÆKT"p;zcÊÑl8AÍúG:«'e£íh_(ÒBJ‹lþÊô¥µHS9QònŒ]ŒÓØ•u©ýù#¢³_‹F`ŒŽ¡f&~j eð­6Ôб„ÞÑfÔÝåäAR›aæXÏùÛC¬XvŠW+H) ñB}ûÜ¢<ž»Œkð:¦xŒ¸Œ&Ãí^ÒEÓÍ ê:`'«.øã %DòC›#kxWgÿŒÚü x帲™»¢Ž›é ”r$ü% •A[ªáÛÊÄ=ù ô;§çl|Éý:íB/æ}àÀÙãO»DEqþŽ€j# ôG?¿4’ä²ArêqÉ,þÜBj‚’ ÓçãLâ„2‚O™!&S >;ZY<ºœ-9IIøgô]¿z€,ÝEé] +y¦¤”=\u¼¿ '§¹¨wKk×7%þf+RÁv(ZSïÝ$öŒ2GNËN-›|û<žv’“¼þá]a%#¯æ(ò‘/£'Ñ'çÛõƒ:™ä ˜K¾¡zrx~ÅþrGf¡>}¡­«4&Óøî}yÆ« ¨§Ø»ßS¤ÇpͤðÛ¦ùײâZ ¬5”†»¡VyAµƒ¨:“DºFh+Ù.óµ¶ÞF^ÓÞ:TBk[-¢Gq޼û¿8ߢáÖ/Yj-·c¡¯.sú@/À)³4²ÛV·Á—¦ ¥“u¡Ï?NÉܯ2W½+º5Ày/Éã¡õ³ì_;ÛÚþÈOµqþ“ñq³™6Ég-¨Ã´¦Õ2LêmÔi¼ÆFù ´¦¦‘çºRšâ“c?2ÃÁÖQ½ëï¶pÆ›BÐ¥~ ´Wƹw´³œ“{2QçàÜvp'º4¬;LëJx÷ºx´¸äÖø\ÙpfåiºG…þ+ë—œð¤ p¿óž§ËwW¿ûÑÞz` ³#8œ´Î ßó»+=Uí–vFûW{¿õÄsè§Jûà™ˆù\JœžŽ›Nl'¹½Òzà41ÙÞÎ5»†]ì§êYÇ¢fä½_û It‘±¨½UÝI@m¨»©ljšyàà­ÐµÙzaU5w¡X«¡WÛP^ NG‰¡J3àרU…¯ 4Qjpž9kãLtÖ˜ÆÈ³ã¡ÐóI@í­À(3¯@ºöp-zkÊÒ$“_ƒ±þÕŸè±Ý& Eƒ Ž¢\ð¦3­BB)ÈÇ|ûõíE>|ÿ+uqºý Ó9Ëè+ÑXßûçDáa³‚WðTÌïÜ<®±I<<ûhÿ(³æ»üüQ õ‰~KN½)4]7ÍPÚgšÅÃ@‚K¸&+2ç²ù6zcæûSxL}'ðÝïÑÅíäF~NΓÐÊó`Ÿ’àpœwÔƒÒ™P†e2lÞ@—iœ¹¹”L.ÿ¸ì‰çÌ3Ã@GSÀÙ8\©\3T©Èã4Gñíÿý‚7q:ö®D¹ùô Ü0;/qüãþù»ºiÝ.uþ‚¹.ÝKÙ‘RD¼»¦’d`ƒ6ðî‚ÒñöãøÒŸ/˜ŽÿàöGSXÉý#“¬£˜à,’UNði¦}t§>ÒrŸK<™'.‰òž± /ÉKièµåÿM‰½àM‘*^ÑÞÇ‘ØÓÊ pÑ@.(«u™Fwoé{­þ˜.Ýe90-oãxbË~ þˆ?Ú›Œ\|»ŒÕœÃñ>/e(Ú6@¢»k5§&јîyÎÛ¤©Þà…¾ý?6ðþÂÑ%?Ÿ °ÿ[-­ùðü cöF~øBdä{Ñrú\F/J.=­ tºÄÖ®ð^þØÌ¹e1Ç凘ÕÓ¾–·ÎZcG5ž¥³t•y(••ýšÀ­¢[%öÓÏ:Uh7Žžï:”¥¥³^FŠ©‰Zzwñ,c˜2_çÞ!k%ü£´é(¿•ÙF¡4’ÛR'hc8ÜñÓçzF èý Ç¥ŸÖ²rG'K-ŠžiŒù™—/H1Ç­žÎ|Sœ:Ã)s ãìÑî58åQ8ÈxÝŽéæŽu÷kb·üãÞ’xZIªk,(Ã'3•>›=dqb33èi÷=Žy"ðWž¦ÿúþ¹X7¬®vx§˜SÀYì»ÿ±ÐSÖn`'±ëÙg~úýóž?á0ÛC!ºN'½ý»õØ©iÒ:}-(7pBûߢf?Tù ”ô”kŒq¨‘UÆùhºPsSÎ1ËÍz;8o‹{×oÿd•27é‚ïçô$¥Æ[†Üû.U 2úÕÞ\ Fy­P®Öð¡i4ü($_ †Å\LÉ‹ _/ óM1 ÿøñõ«\V'¨é&“†"AÝ"ë¡Ð=˜5ø<Ïë-ùg¡Üö?¼ÞÙE®ïðG÷î¶\\›7òÿ½64›å¢Pþû´’˜yßåÐV;}¡IpÛÄhmDz`z¢´›´˜‡‚×sCÅGÑá h)ûº`z9¯ƒ(­•Õüñ3x"üÈ˃õ(Èê%j4‰Š›°&”ì‚Ç•\ 9´çÅùÔ påàïãœ'ƒ³ÂŒ„L³xßóZö‚þ÷ã~`­Ç*ƒ_"…çò¾ëG§Qê!ÐOjÞá$±¯ÐµÔîcúQ5*ʧ°›ð¨Ã)*í¯)éd¦äÕ›RXp) JêÅ‘¸”t*ˆ¢7ß2]LàÕbÚ1¨o&0Š-¯ø RËY¤èroJí¹¯Gø:‚l„{€ÛÝeï𥕟z~·»ýÉ4'ïÓ5y\ö)¥–¿d—´áœ² I?”{@qkÉMž(}d7׃OîÒâ­8ÏÕé…ó-ÿ6yáçpÆ2 µáù)Ÿ‘w2ÆK€’ÆÝ€\Oc»ä6¯”†àÕPævøý4¾3„¤ä›Þ?7VkZZŽŸ£ÿO •µãêIj­'»e¸6ÎWÐ{ÚB'J4®…õ>ÜíwÞÁ‰d)'°›Ò&k­íri”´—žp$xftI%4*üã´ÄÒ‰HöcuŸ†wcéñîÃUªJQ•q¹½Àä°þÕ:Çû¤FYPm"~`6Ñ< åÖ€4Õ”úVèu½Ç¿;*ÍA&Åå¡þÿË¡¹'eB«æØ?j¯ÕÙt0Ì»¿=Åõ=õNy@Ž^Némã{ÿ<µ;UÛ€dnH m"Ý4 ¼è¥‚Y´ã?¿™ô´û'=ѬßþÙÓû_¿ÿÒ:iõ´É)êäw–YEPÊrO»¡Ó.ko³¢þäóW=“œq¦ ¼::5¯í¨Èxƒ­ON5SØiå\´›Ù…~ªž%ÌNøÇøÅyp⎚Yyœ_¨ r@ISÚÌ5[ÿ±‡uÐÇyëºUÈx¯¥.Æ:1e%2®÷±s´ˆ¦PaŠ?-N)‚ð«žlÎz¸ã{ÏÝ9ÇäuT‚FgqoþƒŸ£fÝùž÷½8.ÄЇè$!rùJøG`þX`·6ý©ŠïþÇeøâ´ó ¸¤¤–Å’UïI.9Ä àð ÞÝ’žúÞ°èÁwL_S6P†µÃûÖoÏ òså<;&œ)³d”³ü‰¾³îÑúŽïs‰ÿ(ï½^Ã7Ùû~ ¸æû@üÑܶ©.­õVåýà>›“Ër$Þî\\ÖéZ°ÂAèkM9Ƴ¥‡ìÅeâµN^òA¶0B˜&ß”×Î$à¢ÐíÔà;>ðz¹,½d+» ºYÉ=%oy-Üî*/F[k n7øG–Œhóßï~ö´µƒ¼«ð3JËWéªÏååt9üc»ÌѺzFÀ Ú^çI8ðCCýÄ빈,½ÌÂÙ;úÍþç+­Õö/ðü3´Ÿ®pjß“sdš&uKêY9roCûj\71|i·~Ñê`œs ö6èíÜ›…ÍDS'Àõ«¥NilMðvLvá3­$‰ÛP—hQMþè¦qõZ<@=zYZè4Í Gu‚´Sy÷ÿH…ù³‡}…û­ÎHøÇoø•–bÒI‰ì^Ô²ENIä‚öšÖíínÔÂîPm'Ïô6üãW|Jn:GÌ=ä­|ÿ•ëW§=™­Ð_GÂ{ðÇ¿Ýÿ<¼uØiÇuj8Ñœ9¾ýkWxÊÛuíôvy{‰e~òþGHkš3ä|”štÇŽáä¶»Yœ2&+üãªÝÔ.òSõ,ÿ¨ÅjƒD[¦˜ë¦§UÒ‰%­iòšÚfŽ™cï ùKðtæ*ƒ&§eP°èœ“"y×x¦˜íÿkÐo&$¨&8ÏïÖrÆ9KM{¤î‰4e*ø£+E@Ê‹Í+(_ö­åÝ]æ£)ôCÿ(jµ¤D´Ã$F­Òò8xIfz”¿®‚“®àÏ|ü±ù>#Õqúÿ #; è95¦>ð˾ä@ÓË€»raæOæÖÈf ¡Ö{QvHÌŒ«¨}?3ÿ»ë—$´ŠÙÙHxt<ˆ& ½2½ÁUŸhFúZÌUù5rý}0ÝS8éßþQWL× ùc5À)J7(ZY†¼WÞ«Â+ &Qø7Jh"›p2‡[À?Öà\­CÝŠ'¢xA®_’ÒÙhÁ¹Æs_äç(< ê?ŽròpxPÞÍøÇShò^NÉÙøfìaxVhŽÍ“Ôvà7—ØM;$‰ ¼üѽ×ÔöS!þÄUà~’JýÁ×¹™”—uü'G†šÞä)UÚñeÓÄ^'¼Í¨+*ÈËù‰ïýóx|Œ3Á?®òsøG_Ý­oÕ#ŸyŒ$“pöÜ|õ}^(„9ô1Ðþƒ}ì¦&í£{T\Q›]Î W[#¸°,ÕmÉݧÆm§ï»~Õü±™ãÉ üþ=ÃæÛç¯þ0éñ‰è•àÎLà5¹-Cå “ înðGl} 5&ˤ¢>àùpV¼“ϺÂKa¾mê-ë‹g€µ>TI*zz"<®ŠDÔÉš^kÉ h{5½/…t£¶ÕõG«h ÝŽó2g)£,Ÿ:þZÞ*k¯mpÎnƒsbŠÂ¸Œ´u´ÔBºA¯è Ý¡Ý4zK¶êvÍ/£õ(òA}Pv6CÍpSùëÜÛcíùzw»ÜB)ø£9@ýä­–Ó™:Ê·ãymŒ¶–ÑúYÎI{¤ù䊑† =Ó4ˆù½øŸò.Y¿A cFx÷MJ+Ÿ·´™\”(šC׃-ë¹~î9-æÒÃý$qµ‚´ÖX\Ùp8½Eš½IIÌÒ §Ýô8îÉàzõ'Oǽþî'ÏY«ŸÙ©â¤q–ûö¯å©k×±óÙµíÃÖËŸ¼~õÒãOÎOy(6Òô;¢“Áîj½vJšÄNç‚]ÍœÐþ÷#ŸÙ ýÅ4ÂŒéB£LDªaerbPK°iiSÙ¬4kƒé§­kV^s y|òîFè]Ldš”Ë,¤YHº]ë›Ñ8ÞÔÖþœÁÎlÓŠ9šÆÀ,¾ þˆÁ/))O§ÄüœlC!Û#™dû¡äõ½?¸ÏÄ çãñ”ì¡~`„{” ¹ìôÖãô„’¶þáóWQÁO¡ÊÍ 5ƒé³™ŽŸú ªz„—AOóó zE;A ! üçAÓÌêﮀÒJf§ÄwN¥,”˜&€fÞƒÿDÎ[Ã@…[ ³†ÏÒ]z‹ÚŽÇWÒQºh:;O‚(m˜ÕÝ©ŽïMÌ£èW$Á= ¾œ¨çüD1M8øÇx\)^¯® ™TŒbQôd’ üã '³³ÀLô†þ¥bþá]¿=ä®<†€¯ºñu~€ž² Äã}‡0þÏÏIùwO§ÛmÌßzëÇØŸC Gâû‹²JkÉ,#%/´´’܆.•ÅèɈ\‘Oâ³âI_>oÚ˜À»(‘ €òün€@Ž‚LÁ?JÊ%¾(µ´úk7¬|à’^–¢ÕyàŸñk—Cªµìoùcü£1úì!•ç \?QY/K¤ øc®®ÑhЫøn3yÊ“¼ûriÎÍÿü°ÆwýÊ6¾)¯¯‰Ñp )#=ú/28hÜ‘ ¨Ý’Ù]¯áŽ{A\Y ÿxÄ~¾U·¶¢o^pJÉÍO<eYý­õð†pªl(sõä9>†vÕŒÔúð„zF[é\øJ]­§«y;zÏŸùöº:O=ÌЯåm·VÙWæs´‹®ñóŽžÃ-K ¿šÂ?¾€ >ê"]¬7’î”sº_ ËD=M—©2Ü:/Ϧ<ÆÏÔ°~Éz'e÷=•–·˜¥´Unj^”0 zGvjs°Q¸‰GJZ¸¨3¤ÅGÏÔ¦dp3î\µZ:ÓLiPs+è]4Ú"£Ý öÕ|z@‡hsw:ÎG·V”î ‰ÿh£¡¹ }0ÒQs’>R³"èi÷=Nx2¸båXÿõþçl±úÛñN:gƒUÛ÷ün]»²Ö²~rÿóGžñÎýž¶˜ƒv"'»Ý üQÂDw:Á?šÛŪžqÌ$jB·Lß>ÝÍÓÚJìD„Fd3ÉM³Ü¬³ï«¤‹Ö=«¹ŽD»Z4™ÖBíÒâ¬IŽƒFT¡$ø„±Æ1u‚uÿ£3ÖÙ€ñ„F!qO€ycﵑ¿•ƒ”?˜BÐŽ0”÷‡þ‘þ‘Ž›ˆÂ`ÆO@ÿe¦g¦--E¹éQÖv(ÞvªC«h¾R×éðƒ^$g¦÷eÑV0ˆª^ ÿÂlÅõ9Tö fåYôÁò‡Ãô3Ó¿{ÿòòùö?_ H¯$øyèêKšÏ¿ÃÓ&CÇldØO˜ ÷h,æÓpZI{LKçC¥ ³Z ÞBŸ™ìï݉ SMÔ'!ר&’l€öWáMp¡µ8S%áX)(=Å Â?¶‚?f`.~¦Á<šSpT^’œ™îǸ/äWÔoÃ7½ï¤Ãùƒ»6Â=Ãó'ö?ök÷0ÝAºiÑS‘ïPo0_n~ÇH!Ó%»ž•\ršËInÙÎÍ9Òö5>iÊÇM xƱ]*Öå@")÷ø ÅâSPÞtrŠOKgí¬Ë¡‚Ÿ½ïšH|Y2Ì·» ¯™ÂyAÄûP çw…ª!­< bð¡Zl1É ™'•¸ ÌDshZ·‚ˆŒ—†ÐäJðÉiìÈ|¾Åõ)¬éôMy-L6΀1ë]O*hæ|ì¬ô–õÜC¼kùæRÒ×z@bÊ\© wáÈó¸ªo-–{K ñ‹÷?\«—5´Ü„£ÿOÓ4êÀ•å©ô‚5ï5ôš$Õ¿´ªÎÖêZX—ûÖ¿Ú þ˜ÏIàÖÝ̘¯åí°vÚQpÖ®‚Ïs¸ÂG¾'mÁkt‰Ü“úJ§"çGu#ëQÙ¦kU¥¿úÓªÇ+¹¤¢f¶iøÍúí90+ËÑfÊÈŸLž…6VÒÑ:RSès9£%õ þªóõ¡l–ú‡¦••:@ ƒV™!=¥`°h€ç¯F8~&R^+ä½TL#¸‡à»%4úmŽÐjî(×_ó»Õ´¡¨{Kbi,œse=6ãÁûÀáéþ+÷?Nx¢YÏÎVG+Û¿ôP¾õ¯¢;UXÎpßú%ÛíÛ¿ö ç’dHø¥±¶ÓÃJ®ÊMn#‰Ðî"œž/ñcøÇ,.FqIìß”Øß~bjÐrœ·ê ŠJpGÍ‘\BfëR ånCo Þ&ÕPÏô…§ƒ?óL~Žñß” ôþ`ÎÅ·áûEx8hæ’ÅÒCr[IänÖ¬ÐRïÊãád¦”Ñë܌ǂf‚Žîq)ËïìþÁÓÕZHIà/ÏÈû¦Í\jƅ䖴׈ڊÜE+"å'Ö½ZMÇË) ?™ˆVŒÁ¨L'“9_£šVóØl·m¤©püsœ#ä<\6‰ÓòêÿئA«ÔuѲQÇjB¨þnðtežWìAyÍtSÿëÜÛjs bŽ×¥-8¿É1öËSÍ®]´Ÿ&V[ÁIh! we2ÎÍEI"¹ôwi…Dèrc(Di8cõû´ƒä§Ô¡(m×=–n’Wò«ÞÑ)ÚÃõsïÁ?šhi÷¨DÕ#ÜVÃsuzb&ÒKs ù-ŸYô´ûg<Ñ-ù:BZý|WžþÍÚ:j ðÝÿˆèüiU´¼×jØyìDvY{‹õà'÷¯5–Ÿ3Û䢂…:š¹v('¢Ýü‘ß„pª;‡íÖöÏí³›Íì†~Ü0%¡„‘¡õ÷L +›ó £&š)o¶›ÁÜ?ê:ø£ª9Ck0ûÊ!Õ.#‡½ûY44Ë¿·RJ$ˆZ4ЩÌû#™à¢Û —±ä½‚rZÒ/|´»év FÔ3SZê¡bÁxþª+e Ó&>fI&ö£„ÐÔû¦ÍÆÜÉÀþ´ Z¿‹â¿Õ €*?|þêµ½þÑZ#kuBÚHÐâ¬PšȇP3øÒA:Ýõî{5‡ú˜ß½ƒÓªfÇ[LŠÇÇypÉ›ÿIwh%·…Lå Pžõø¼WÐZ?ê†ä¹3ä· Ÿßi pêÂËBÃêÓü*í{C",·¦“H¡e·á¼¹s1¼­..rcÔ ü㌧¢³4ô:qOðEtßþçÂ?¦p?Ï¿±‡ð-0ÂßZ‚§ÑæÍøô§¤ü›“öû×þe÷F&h:ZoÌ|Ïï–?”qÌ—¬Èâ¿ÊQþÕ· ogƒœ{}êHÞaZþcý]cÛÈ? )üë,¿‚ª¦â}œ\Rƒ?nJ튜úLI® ïg„jgáœ|¼ôp.ŒH²¿}ÿ¼³í ¯æÁËòf´Ìæ°RO&I .&KtžïþÇEm#G¸þÝÞ ´@>ÁE^Qy aªº~U”³²wGø 5å ü‡,•ò·“ÌîJM ÄqOœ†K9½ÃÝÙëíцG[²ó£ë—ÕÉZ€´S‡_¢•[i:ÕB¯=”®GÛÉFpH5=)™u‹ÖÒ!âÑÒø5„8šq*øG$ï>ã÷µ¼•Ö9û HÁ{ýê§£Lüž‡â \ÓÆºXîÈ}¯‹t®Znt8ÜM]©x’n†Ô€#¥Ä,Êg¦Øÿ|«uÐ)ŒT×cõ-ý‚=XÞjNÒHŒvîÖYzþ1~ç½ZWYSÉZ*Å(¶waÞeâ}T6Àûƒ=áy¨-ˆ7+éžxÜÕÚüöVŠè#ðGw¾{W»=µzñ8ü#!Î9qKºc†#] ëà¿w\üÿwÀ¬þ{wiµºþë÷Ùºh µÃ8UœÎhßþçÛ=uíìv» ÆîsÏéŸ*í‹g³À¦²šF˜™àÄvë¥SÀ<±ë;»ìævà'äÿ÷£¬Ù=¸cŠB2R/óÀt´²8I¨*…6¡MI³Ò, æóWÇ­KVEsŠ´…ÊÐ,Z¥N—«kÓ: }M§êå[¿=8Ï 4€Œ4Õé"Êë]U™º-üã%繃B7Þ™ `€ÈÁX¿$‹ÕrÐF“ÎSûC9ÒÒÓ þqŽòbÔ®'‚#Õ@vž %mà úA/~±GÑk¤úß¡ä=Áo} aÓ)òø$Œü}ŒAµùn.Í63¬Pß)“­¾ûC(Å€×¾7ïLÔã­âÔŒæû®£œF‰¯á¦Ëiüã<¿­Ô;Is¬NS8C<&: +MÙà¡¡ÅÍèºóÜ !ë A•xœm.ÍD?Ú”Ôýó“žBÎ3µÌ ¡¾ ×iŠÏ÷>Õ)t2\©?à¼_Íý>Ù‰šFå>Nò\ûœc÷2}1zc"aïáæè›Ž´üñŠÛK&Y#…Õ_*@û JY9Î]8$øã&ÏæpÒ˜ýMWøéBÛŽeiHéyŸã‹¼ŠRó~N& Aw¥”t‹ªûdÒ^RÈ4è}:¸Ý þÀë8å¢ÏÖ/imlç¹ðíY:ËlɆ¤?]·+»[ ¯5e?ô¾‘¬Â™N‚ïù ?¼|Á~~·çA+ÏúÖ/‰ö(Û¥—,çNÓ]å¿åó—3¼F*Ãç:órn š;VG‘Âü Àõ«7žŽÖ8GE¾ßÏ‚P;rNy 5œv‘ÒAè ùEw¡Õƒ%–ÖÖÖºžWñ0ÞÅie8Çæ+T?Àj›À!Q» ˜±Ç9 Eöbz ³X,Ýæ[¿Ý»~btøÒn]‹ú ×]têò<´|$4ãLº÷Ï8ÅlKÑnŠËá1úý䵿…ôÕ¤V‚eöh%õC}×ãÜ´Ö_dHÇ{ýê¨:+àÝTâë(…¯Ndx‡Œâ´ø™ö:mí·cr >Q0„#Ñž&ÝcàµÆºåÎm Ôy¨}ë—¬å©úŽÔp%—á)ȆSM†¯so™uÀ) O®D»¨…¤ÒíîFÑEZR³èKßÎ"[@EcUõ€D…Ç¥‘6zU¦`&¹Ü“Ò!®0 OYÝ¡9Ïêy÷Ä¡;j…ší”S2O_Àå¹ËÜW(µ»ö—n!='›$ІåúôÑ Ç¬¼†Ôôùãÿ¾;1 õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run003/bold_25mm.nii.gz000066400000000000000000003006031323370031300254160ustar00rootroot00000000000000‹¤½uxU×ó.>³öÙkâî!!! Ipwww+P\Z¬Hqw·bU¨R(T)µOÝÝ Ji)õö¾3Éç~ïýã÷<÷y~ä 9gŸ½—Ìšy×;³f­3ˆéÿáß4 ¥üÌ%ÖŸÿû_€¢ôï¢ D—šÿÏoÕfÿ÷}÷µÄ=M+Þ„üÕÖ¦g§zùuþ_Úõÿïßÿôã¿mš×‚èÓ'Ë/=ñ?wÊuù'}’òùÿɵÿó}ù¿É¹…ú×ÒaZG«hÅS4µ¦­´‘ºQ8~ ¨Nmq=œFQOnÀŸP,îƒæÑJãdФ[i¿@9–¨!}J ¨ îv”GïQ+n¯¯o£h17ÇëPªC½é( ¢ ¢¦h9®‡áúzeíB Â)Ÿ†™‹<â0fCÌ%SlšÔ¼‡²ø.ÓuÅÓ»üÝGžIÆR‰÷ •˜X”ÂC½^ÜBkù’™äÅsÚyµ•ò*J¥tê„Ö¢›©%Õ¤,ô{=ý×JPÿ{Ô‹Ÿ¤$ô¼?âaúp6åÐxÈ¡“?‹&ÐŠà®Æ7§¸)•ÒÏxvýBU¨* §^´œÖâUMÜu’‚|75¦ ÚNÓ!‡'i0dÚLµ¨+~ ¨95…”êPzŒþäü1Zp­ |nóìýö ZXÂ…®Ì]6“©õ³‡ø óQ}úïÇÑ2<Ù¥.£‰T„òºÓbºDŸ¡†¨gÝ‹>õÄhü‚1­M•ÑÊûÐÊ.ô$½Ï3)ú|»Ö.ôkÓ]ÔÊþe'Û›ì)z÷Ùa..¸Á6¸Wpº]íz»|¾@{Llàï°iHMèM枈’ûâwjËF=ËÑç,j™5A[ú£ÎT—„¾ôƒüÏÒlÔšH[üã5ûi5õqïÚçÜ/v9½J?¸-.6ø¤;MWh¿ëè–Ú¡îf~šØÛìd÷¤}‹sè6~À~í?{oƒÞmåRSJÉ4š†¢äÛ©=ZQ¯ÛÐ ŒCeô· =EûÑ¢h×zÍoj¯BZuéawÙF¹Án´àªuGܯ¶;õ “ö5×ÂMrÛЃϽïmUí¥áÙ£ô£wÁôD]Eá.Šâj¨) £ÞúÝõ†£73q},´-šr1N¡ aø©ŽÞw†Äâúí´Ó<èJ jS‡Ý×”R ç éL`T JL B ã5(1†*¡¾ŽßTµ‘\š½JÓ1М‰ô%‰í„àÓ(”†ßh›LÂ5y—ûr`Ex6¯bp_$>‰Gb´Öp|Ú Ï¤¡mqTWñ†»ªACRÕòCÑ¢$èu®G)F$ã“T´-ÿ§ ôÜ_¿‘¸Äo’j[^‡àR,îÍÁ}‚áxª>«‚OBôÿ´!ÏÆâé$|^ w$¢&i}¸¾ÇoÚF¡ÖÐJ\€ôo‡uQÜÈ¡ŽÀ«vÚæÁT™ëò›$8ð ¾eFh:,“ûëR$ACÐÒz‘Zs<;b^Ž×Ò¯<ûô( -ÜF¡ÜŸ;âŽdèÃZJ{Q~84¥•y‡¢51ÔÝ,69À+¹¾²yiÂéÛë|•ŽÑ,׃\à½C…¸'†<¾Ùë䲌ÅZ~ÉŒöªâu(] ÍÔZÝíÍôi ÌÉÃë ô ꬃž¿D7Á.¡‰ùüŒÿ±é\Ê…þ—roÿº mÏæ.Æ3GÄõ)†7Ãn,4·€FÒàÞ*hvlôpóƦíF=ýù<´¢ ¬¡%õQ{ΣbŒWCàVÈ÷ Ys;€ZwÓŠÀ›mï±PJ&×rÜ'fæŒåöþŽFy+ k?¢”q$W;Á&æ }u©lb 0âCôlÕƒ¥ÜMPvÌ Í`»™èÕ9ŒMz³J)t9›F¯–ÙÙ~- O뻩v¦}„.ò »Æ7ùQf;÷³{]gWŸŸ¢%æwïºwÈ4Am3igðHô°´v AyýKMÑ‹VМlúïkÁNëc><Œöl£‹4z_ƒÖû÷ÚP»ÆŸ œëåžµ/8ãÓÓô›[ãƒçÝ9z–¶¸Ñn=ðjŸæ±v¥à.Ù×8—6óCöGÿIš|îB¸È4ÌG]IПŽDhWCàU$=}?MÇѪYÇÅô¹ßÁ^çíè´»nãÜp·­ýÒf¸;ð¾-Ðÿ‚ý2íÖâþ+Þ6Ý…{ÅhõÝtÕ»ËtÇ\ZœÜBñ\wd¢÷ Ae¨-½é¼I§â³bÌO=¡©ahÓ0Œý8Øwtm±y4ÐW1d<­w­\®ÇÉßô ôÔëu S[ GaxW¥Œ„}ÄÃr ñ sª¢LHàCàU"l* Ÿ&B÷#)x*Ö.v—‚ë5ðI´þ þÅ(⤢5QF’bWOàE’ÞŸŽÏ«Á.c“ !ñŠ‚2ËG*‡‰AIÿ}§˜ k@éÚ?A¬Ü%íu°ø8è@,j­„ÏâÐþšx-8YE×¢pO²¶#­âžÊx%ŠÒãµ !ŠÁÒŠd\ £·ag·Ó {ï–1Z&8–Ke‹lïNÀ«·ðt%àÕŒ'«Ì'rä¼ÎÇ(¢ÁÙ†ô2¥r+­w#ýAC¸â^GX× ØM$Jº‡®¡†.¨7xµ:vZm*4çYF)š:™¹&Äœ42.{¨€0µYæ“ùgÌrŸr(^[®ï=C MœŒðÊÀ¯¤=Kø)ÓÂcåWOA›"y¤Q[†v ƒìr1â«éúè‘ÄþšFó£7´’?ñ¿3e\=K]yª?3äxp¥c&ÊÜÇñD´jWc$æø•ÐãÚ(s$úA|È’Ž+S¨1߃«pW ü_Ò-b•â§t¹ =N¡f”¹—nühØSöièiçÂv~5S!ý9ö!þú{K€p¿¡„©°ÎæÀ¿&°ÕñÐí:éz q8în‚ùåXbÌ?WqW~Ré>ëI|ŒšªãÊÐÀïþ »Ìo éw³áîf;ÏÞ¼Úf¸‰Áõ~¤YÏ‚}íf7Dñj†‰ üì=`£æ4ƒx8l£/t|ÝWÍÀ¯ ä¶_[º-IG[êaœwcÔ×ÐÃha5ŒÀÿnmwûã u½ÜsöEgÝmô:ýè–¸„à9w˜ºÂ s›ìh7›ÏñMv¾íïžbç§?l/û—ÀŽC ǸØt€M/ÒV,…æÈ Þø4W“pµØëHy¬ýVúÉïfã0§–‚_ý`+»À«–tÙ¦¸îgÛ­}xUÖ³ cô…wÅF»P¯:dw”~õN¢®(·/[%® »J‚„ÛkêAš‘ào]1–}as‘КbÔ:D-µæ¹~˜ídn] ~õx ­Þ3ŽŽ»q®P±fÅùÝ€c©Ê˜·Ac¯Ò‡Ô¢£ Õ†`ÉjÇõPæi|£vEâ[Ä@sãñ¢2†pŒ„E»Êù•à€ðAŸx´,ÿ ž%£5Q‚ø2U«(¿JGW°›xE“(åEé¸V ¿áŠKñúJ¸S E¶Pø±‚Q±H†ÖÔPûUŽ—vÇ*ÂECîé(µc´5‚²ÉŠö1ê)'áU¤ÞJÂ*3)N÷ôfæÆ”Òv·e ûˤðºÚ*×|*àwµÕ¯Aû–À[渔¯úq8ÚÑ€b¹D|&åWŸƒÏ´ÕÚ–‘á[X|Ì0ðt¶(¸·USn‡òcqm1´y·bqªnÞ‚-$¢£ÍD“nv¯"ði]~Èr&zñ!Z¶Ž>`é}×õ^§<#£ʃ½ÆÀ+áfkø¼éë%¢±ô4%÷¢«Ñ£ÕhåMPSÌŒ;À¼>NÕE_¾køŽg_ó?0­Wɸs4÷ôgÃR:ßc’Á¯º¡·!¼Ò ç,Ü3óÔíÀ\Á«þøÊû¡õѯIÔž‡Þt…}µAϳaíõð¿XM˜J;Øq´¹‹?ÅÝwÐúÀ5›a´OàÎLÎvEÀ«åxb“ÝÏ_¯nÇ³× ¡)jžm 탲rPþ(Ì$_àÿ^¸g¼¿ŽøiоµžeB{Å\Ò þà—x>Õ3ð—?ÛŽöë`éjÿµ³ìlàÕ«|ÀÞäš·ûòÜ1ØÖžt}\-¾DëÍ?Þ×Þ#¦•âól®Â£Ñî(}-Zž ËšŒ–¦ã7òü6Zu×uï~¬§ç2Ðöþ>f÷«?8ʽlŸwÁ|ƒ¾r«Üßî1àÕ»àW#ÝV;Â-^Í´[À´.Ù70®ã“ö+àÕ$ØY;:ÈY¦ú¶u%:£—‹¦`V¹¸2šüØ]ŒmýW¨æ|ôÿœâU_·w\³Én|Ò(ó‚}Ý5Š^}~UÙ¼½mô𪬹òÞËBO20êQoµýExý$/~_ ¤Ð¯Åê¡÷½¡)¡x·šö›Ï½ÕwFÝ(×¥ÇÒ\Êð{Ç a/Ñþõ³šã¾êÐÛX´¨,&’€Ü¾ÚBÙJUõD¢;ª¡Iø7È‚>@7ó9ŒY]`ÛÿKÓ ¬°VÖ‘ûÓ u©ï6mÌin]©ÎK1·þK¢ÿc ÅËh'ô¥&ly7ðêd n9¨ÿ4jm ´h¿ ú[5ÔÇßZ¨· ,*ÜìåÑï»iSಭcϯó]=wì•H•Ý~5ÑÛ‚öÜÀ˜LEk7: õÃQV-ŒÉ*z(1ýªÎu7´»#tüK¼¯ ›® \ì…Úž£P{-Ìâcÿú ìt?2èiÿ„7¸þà‡¼ß.s“‚ýy)Ï 6°Û]W¼Úk~ô¾ñ7¥¨ù½2ð* =*^€ZÁê ÿ`kä¸?,¡Pu+Fº/f—Kã ´d½ÌÆÙþtºF¸wìËÎsË …_»åðŸuσ9r7¹Uv¤›Î÷ñ,´k¼»`_†mâ3öÿ"Ædz³‡k¡5)Ðßž°aÍÅÐÚ!¨s"l²F§ =nÔøžTûÑohøÆá^ÔYËu¯kB߯öº¶Zù´½âš‚wmÆý×½Ïl÷‡)CÙwÂ;¨¬­2P$Vq)?™ø$R#:ñ¸жY\ Gœ"“p¼*x'ø‰OâÕW~UR¼°êOUڼナ&Ã/üŒóEŒ´’ÿã¿a:`F¯ lhËüYÐ8p>Þe²ÍY›M†?8KãWõáö¿Ú‚Ñ)„vžÀü» eæC®³4ÞÞ2í vÓRmƒºjƒ]5„UáÝ)ú‡7ƒ»Önl |lkÛÓöhiWwuÝu3÷쳇ùKš°¼ë6hý­ûj‹¿ƒQJ1JžGoѧ˜Ç›ªrB]àU{ègtî^ØR'ð˜ÏÑëàÊäÀßþ,;Ç—8GëÜ2ð«;è=ÞmǺþÁM¾5[xv°‹]¼ª¼:`¾ðnxš&°ÿÙ´™«òtô¶+¬övŒ\6pq$‘‰VÕ|KÎ@ š k„Ô·ƒÙMħ´Ý¿ÃZ»ÙEèV÷"M¸[‰1øÁ-sIÁ§Ü%Ìu›Ý øƒ#Ý,~‚ûÚv†»hß3ÚÆ—ìþ㨩3ðà—˜zÐðiÀ*Ðâ–hE6Æ·9>Ï ÜŒ¾Ÿ–6‡lr'úùÖã\ŒÌ)÷»MuÝj´ïW[Ýt×m7ôåœýþàpàU}ï}~E^ÊÜMyg bܵ‹‚œ 멉¶…Å4BíðŠçB¶}5’Så6&H ¹íë‰ nÜFÇÌ7‰·$a^;Y¦xµ”Þ ,Ž¥@o‹À Öâ)‰9§B’=$ÙÉ._¯°ÙRŒó˨[˜Uå ¿,Bý*‰ Åè³ øÍ«ðctý¡<➪‘U¹/¥õ‚ü2tN¯R’BqOUE(†Åâz”¢¢ØUŠr8‰K¼Ýiü* Ïçr¸§1²x¼r¸V÷ v… =󌬄úZi\^¢SiŠÀéÊÁRñ®Ü— Q6ªL+Tû•¦5ˆO·vµ\Û–¯Ro­ü*zð?x-q´¹` uù}-áu +¬ÉÂwQwŽ{,»©Kísèmp‘REß±`Éý1« ¿mmº2rÆHèh$wÐ8ànÌûcè.•|µ2Ÿò]óXlî5‰æ#½‹ªð𫚨ásx¡ëéw9's5ïI*1rÿ_ÔÏ«äå)ŽÍæ3¦½gXðûÐ0x©Ñuàc1"Ex}züäXŒåKÀ`lòá÷½ °17……&ðçϺƒS6MÌ´º1z{ôÏçZýð‚_àÙ~à±¼S½¢Íb)|²–XR3èm0¤jk€âÿ6°¨JFØSº@;àæÙ3öq”R¼ªç®™U°·­v m‚·ZùUôf,¢JœÍ­§QàÉàW_ÂFÚBÊcƒðSÖz" ë$X^'°ãPsU\›ˆ¶ í"¿¤ÓÞFºõ`XGéy>?lTp§0'WÝW=])¿H›M ðƒwþ`c`øøƒÓÐ[éÑZ°¹lp©ihOðª&ÆÿYH+¶]x±òÙouºÆ&–û÷Úx{Ôæ5Â=gßwÛ…ðÅo¸Å® ðêUÌ@ûàƒn°ÃÝd~xµØNwÙ÷9>þ“ö/ÿYðzÁÿ½ÜÄ4…®ÿ¯ Ôìˆ~ÕGÜóG., $õ4꯴Ȳå7·>fÎzx•~m€å_±±î˜»jû¢Ä³öC×ÜÍp{ …_{Wlš ÷jƒ›¥ÞiÓ½¬ ¤<O¢šÆ±»ƒá.‚Éü»íxx%&þ`è„Xy>pºF¤^/¥æ£@Å«ñô€›ëJÔS›I—SÝ•‹d£ÿËÑþp<]OöRt‰D+FÂSNWÌ©‡ëIåÂRBÕ^„TÑr<ž†>¦©§£ÿåþšØ}|¬ Áß>º¾-1§*êfàjj,÷Ä"ÔLA oÓ˜Zœr’””ª‘0]“ŒÔl€ 2¸¼ös²4V¦1uYŠQ$‹tb•×…ãÿ$Ô[ίí¢ð:L½ÄeZòl¤2B‘ís°Ä-ð£t•q0dÚVïÊCú 8(Üi¼“êüŽ"ß à{Á¯ÄKžMCø[šÊáºöW~R+mu}ú¼¢LyàZÈ.k™²Ò~ôB<Ôct줮'`Þ ¼ Á³Ìð+Yùìhn3æ˜YlëÙ`r1ËF€_9 Ï,øvjxg©®‘y‡¹ðrY|íY|ÁtòþÕ±¾smM^…Ws¡c›0ÿŽÂ˜äC+6CÏÞÕµºÅtÞ탨·UåçýWLC®¯¼k4wƒ?8Oä‡L–¹‡%¦Ç'àgü‰Rê3†¡n.äA‚w‡7á•DvæÁ/¾€ñím¥ØÑú-92¥ÐþÓ4Gù=ÔzŠŽ®Âš‡™u t'B=ö(5IqIÖuœª/3Òûv”ÆŠÄ?6”¤™Š•”OÕÔØ5ætÊVŠ®ð3ÕóÞÒã—¤œ° ®TÕx¤F³gÊ=ÎxÅÃhå9)ꉅ*ÂUSÄ_¬¼ì l?N‘¼ª–\î;‡~– ·íà“L¿êVúxõ(JÏg{ÇÿÄ”rðe,Øag&tª;PûNÓÙ<‚Þ4BköþÁ5aƒðüVèZæúã<Ÿm°’|¾³u{ðưáõÔl„y®>0äaJ1ÛÀ¯`$ön€_^õÂŒPìJÝwf1´} øÕðu· Œ_1çNº–¯Zcì& ½5Pÿ عà•dJ Jt׿×x»d4ˆÞ¼çCèy*Z:3`àÞ ¼ºƒºÙPw ØÖ½ô,²íÀ¯öú‰æ6õ·¸^ðŸ¤}æ7ÏŽ!š€,ã4ž +èþ¯€'[-žO2Ir@ŠÀ; ¯A»ã:²yŸ×A½K4Þ~ÄH«©ü¼‹îšÆÛÿq·»4àÕKt‘öºnìfó#<ÒÞn§¹§íë\¶‚_ýâ¿$Y"Âs¸­i [vYXÐv#óE¤ «^S5ÿj/{¦r¬ë~‘ýmhGO_e‚_Ý^³UÜ^÷í ͸߾æÚ¸qn+ðí[ïcð«J^:Ê>B?‚_uƒnÔ‚\h¼=Rïšúªâ“%Ëÿ`"5ß ¹úSÍÃì1¿²¢¶†V›g½5*4î‚çY¨yEsè­@÷@/űÚä ©ù:Ϧ¢ì®Ð)‰ðˆïò%þ†jÌd2ð¿óÿ·ŠWö«6–¨–ªø“_‘ý”ˆ‘JU^$eÖŘ…+—ÞŸ£0ñÜâ4®%,MP#VÙI¬²Ÿt-'JëIUÔ *¦UÕÈQ¸z‘Ñý©T±f­|) ãPžÅ%þiMÔ£Œ,rˬð=“•QUQœIÓ ½(E´ÅáHå-Iºf£xrã½Ò|.ÃÈÏ…„QÀ"¯kì=úÏü™–ôf÷{á­ ® ®°£é,ãRS:(Þæ9Z*FE@Wþ¤œ«ùiµ`ý' ÅÂï¦ù wQƹøq3Xxç )ü¬þ`( 0óLs§‘¬Ý”ÉsäQÄÑë|­þ–4Æžâ¢"#ˆþ'õôþ1Y,k Óø-ÓÚûYåu óQ=ð«8ô­%Pd~š 5-àn„‡Ûx5~ëX>£Ù~Õù àU=øƒ5ÑâÞ<üjæ·:¼Ñ˜3\‚'cù$|_”ÝLÀ] ÐÂ\ÍC: ]sQö|jÎwkÞBÔÒ6,ù›øžUí®(¿òƒ·º¤àãîi¼Þàú¹ív°›À÷_­´SÜû&f|Úþ¤ù #PÇaøƒ-`o«€šiÐŶ¨=ÈÐ󇬉Sð Ú;ŸL§OýöwŒV3øƒ¿Úª®›ìúÚÖr»Áñzî·o¹¦À«•™O¼Ë`^•¼’ µÞcº>X , ÖùN¼©n`•õI´{¤ ~%\§£ÙŸŠïS¹BíÃYOÍCîš0šîq}5~O}¿~ ¯z@u(Œw£Îò\ÊîpeõÅ$Ÿ!™Ë#I `ƒŸ¡¾Ä lHÓõ´µíT}‡i|=¯’uåO¢'ašUMÑM,Oæ›d½ž¡ñóÄŠœ¨jWþ“ŒQ WV_áÆÃÛ‹B‰™ÊŠ"ñ\¸ÖíÇ$Ö«ŸÈêeŠ"T%]¬£<,D3Óã5nVž!¹åþ`UÊT„ÐV—GçCt}²ºFä"¡­3Á2æ(V·„tA$ÿª0)”Ûh;o¢Î^ v¾‹\¾• x5”¦‰G*‚¿VŒ¹_r3 écÊâf(ÝÁŽþ¢^x…×ua×÷+nö,˜oWeœ»¡ËC1‹ÉìÑxõ©òm¦›hsÀˆ7» ø¹Õre”ó<ÕÅteõ5üêNªg$:ø7õð~3µ”SÍæ—L+/ ¹÷Ç MUy;d“ {Þ«Yà1?ÁoZ¨‘€x‰oÀ»= Y×§DþÜÿÌ4àBØþ4 Î2:´|0j‰éjæ`7qü0°ýtµ ìgÊÙƒ¨ 8¦¹BÖKáyοº÷uQߨ<¦S?0×ju¢‡(Èð ôú,üh ìû<¬½„ó]÷•ò«‰v/¤ßÏ[€ç~6M[h­kŽ3¡÷ùèÇPØÍEz6Ú÷Œ†O*Ù ²Þý̃4Ï©ô,}Žz+K\.´síT¿ ¨“5n½]nÓc|‡í6WûÆ,çÁ1v¹ëî²áÓ1ÿz×½£¦¥‚·Áó€F#Ñÿ À„,\]¯™ÞíÑžNÊ}ñº+ê:NÛ¯.Á*‹a7‹üã6Ñó§b®èã^¶¯¸«ŠW×Ýb—¼àžî®óØb'ºYü÷C»f¹çí[À«5|üêqôdúy˜[íeÀßs¹®uÕ’5ÇxHüjë1Œv’HÛ­tÕ/³×ñIKàÕ ›àú¸…“6Õmq×­¬OÜk?uáÞDøÆûÁÆ:ëI¬ïNúË{Ðt†ÝTÇîÀøV‡“5¿}.•¨=/³|WĦ ñfš‹%x5ý©Ü`í4ç—"ÐΣnkªùGÓ(à ôP6!ÿ&”§yG’gœ®<£}ø8"ܬ!žx •¢¾WJE>C’úmå9Á–XSºúƒ’ûTY*¦<_GyŽÄÛ»áŽê@ñÜÒ0:iŠ()x¯™S‘úªŠrªPÍrHÒˆTP™Wšz}ašS!ýªŸ«¤¯«‹502¡ú#l¯¶JA|Æöa“שZfe”ªõ¦êºd¸²¿HÅØHÅå4E„Ì@s1¦³u¡4}2fÁ¥\XL€[+Îú¿œy²? o/IǨ¿ö$˜œ +Ÿ$§]âWŸPn¤í”UI°|ñ†e®9 û¹m‡gè€W‚Ì»PÃDø%RfgªiÞç!Šú=Ì"“fî3áêÖæ[L]¿ü0¿5t•Ňý‡üª@ñêgêâ]6©O›¼êàý¡sÍ)ôª8O,ô©¯ì»ÉJÑNèГêQ-s~¯™ÿñ¿0MX0å&êÄ«áN€¦ó:ÓÂÜÉÝñt8ÖÜ®7Bé#`/;5j2Xº24ó{uäkO`G#üfit<#'¨U[:K‰Ê¯š~…?ø¨½ ¯Åyð¿6Ë1 ìF~f{ËОßQÖtð¶¦@ƒö`:#Ñ‚zƒ?¼Š»KÁ&OÀz{ ü·ußQèÃØMWz^wMUƒŽNQ~u‹Ÿ‹öv±•Ü;ßž¢WxŸíâ¶·ùQæ7 v¿jïò‹ðdnx?{ÇÁhJQÿ4®ÂÓuwQ6fž»ÑŸÞ@ ñ›a”óé}å<í ËÝÀ±Þt;=i¥ÃÊ—ûÇ€WWh°{ß¾äþ°³àé|ë¹ÈàîýA+€ì7’Ÿàqv³î·ï‚£/ç‡íUÿYàU{èÉîhê¢o7KVËj”ÈÆ<ÔV#eêJ>C°¼’úþà_UKº~%þà*Å«8wÀýb;Cr§íÛ®¹›èö Ýï{ß⓯e¦¿½WM'Œ[¾Îw’%œ 턟…º¿) #Ý×ûªw#cÜú"ÑÌeý¡=?_®x%9Z)Ö}ð´›*‹¹™büÙÁjéEMÈW{LÅœ4²be/Ò­ÄÉjÉM1ÂoiÌ:Bí=^WËÊsªR5Vª|Dbo!º¾WKWæ¥$–®­¯—Ƭb” VÕ§S4£8¤W#ôî¤ÿ#".ïj(ÿ©} Q^caûñÊ@"*r®ª+Ž…èZa¾òÐXÅ´vê}†i -IY›àž`ojE>|´FÐ"4?ª²®gÆ+:^í‚´Ë×øÆA>mµœº``<&€OU†ÅH+Þ=„Ï$~¸ŠÚóËÔŸ÷Q×Õ½Úz|¥»¶b f¿I°áÃM©Šæ3Äh¾èqS üJò(ÂKÛ`³ä—½ÂŸbì?Âk oÚyN¹ÖaØJ#ð«4èj'Ì^}чÁxW¥Ì‡%wÆÈÞOi? 7^}âmйX0†rk"¬¡3Õå‡M_sŽkÂfÓù0¤v£_û «ÜƒqÍùŒ~d>mÎ⃘ zjvAoŒp\ÏÅ}’5UOóEcÍþÜcí \µ…öœÝŒfpMWæ~4#¡—·Ø“ü;°x®®dtk[kèŒ–Þ ¤”ÜÓAèÑ#@ÜøÛïöbælZ/ãéZ@¬ð¸ÐþW€$Ít¿ÅÔÙÙàWyàƒ]àù̳·Úð÷Ù¹à9k}ßìàüà»VÕ†Ÿ¢æšF¨u2°"çBjГ5Ó¨m­®<¶‚pƒæž±ï¯nççì_þóg7”½‹;™6º3°Ê]…Þåi¾nS|^S3áÚa6¾Z=ã8‹~¿ p-èÀ“î'›æZ¸¹ÐõË6þà÷VäyÊ~äJÜdð+‰·o«8Ï˃´Ž‘xxU=DûÁ¯j¢¶d´¢ -…üË {·ÈþôZl¬PãN}T·ëA7ú¡-’ã´’v™ >jñ“é¸ëáŠt/áÊ÷ÁOŒÕõAšš¥X—r†BŽ‚Q²k€9IcòÍ€pWÀ Êó7cÔ',_ËKU ѸP”æT HÓüÙxUCëjêzŸ Nè{yt*Mc÷iê¦k¶CœúžQº>¥è%ñštÍ{°úV…¿V¥"§3¨¼+UÛ(Ø…$*Ö žÕ¾D)NŠ?(YZáÊ*Wä3„k™iš5UžÏðßüödígùJãð)¶ƒSËšfkèô8h—às0é ´]âiCÀ‘ªò›­¥ÿ@#NP6KL~¼®‹ÔŽÅ׫þSšS¾á9j[±—g)æËiÜSDZPé Æ1%­ëI¿’øÝAŒù­°×Ýó¿É#tB?3ÈÔ^ÉþèmðI'›Ýø-ý@÷ÝDpœwy6À=½÷L §Ï_š>^ŽòÀc’¯ÄÛÐïY¡=@ƒÑ¤ìh¹üïŒ_màê—ðlÏê~œLþÐÿɱØßhàÕ÷˜Ÿ{ÃCžaº˜g¹¢*ïGÿ?‡&dÓF÷ Ùï| Þм–LÊE@úƒê%¶‡5÷¡šjUyø¬9$\WwŒ8sBãWÓöÀ5ÛØ>dŸC ³¸ºkê>73€+ìü µö–‚»ü +™„Þ·Â=`™Ã5ulò~°Ú‰(_,ä$F©+êüvaÉÀ+É}¬‘jõDð«Ùv•_€qè Ïç&»Èž¦Gy…}Äå×ø@Ñüà(øbƒ\Fy øUJà¤i¨³ûfž…6wDï·Â£ÌÆ«ÙÀ©|ô(ˆö:˜td] ]9„ÖmšJ)…nõØx{Ú†Yª·{×>î®ØUô1]†?˜|ÉcÞîF¸Yv¬Íó»ÖNpçìûÀˆUüýÓ ýk…ÑØÏMèÒDô4EãíÕuFlMKt§ï,ôýÚÖ£Ÿñûݯg…ÔÒsî[Ùu¿jL?ÙÚn/|ÒVhíƒö×ÒÍp;!£Ï¼k@ñ/ e¡_½à¦bܺ1&pU]û—=‚«1‡HþÕ"ôµô\ü¤b´£+˜žØ~6äÒŒPXÅ ºÛ< ¼$CÇÜW¦¯…_5 ÈZ]tâ`o±®°I>ÃTå<‰ª+5¹Š®ð•¢7‘°/Á«ªx&McÑñjéUÕÒbѺ8àI‚â‰àlLE––ìDLÐ ‰Õ÷PW°´šæ‚Vѵ¶T”¯©h€WÓµ¾XÅÃÊŠ[•4ß GL¸f¥ŠT£~jPïÉ«ÈS••ÆÚ”­9T‡ï¬³HíYªf‘ÉõtÝ™ ì-FWcôéõã4Þõ¬n7ݦýéŒÙ¹·ÆØ#¤tŽ…ÅJ‹‚#U†M *¿½_CõXêš ó bAÙÚ¿ê è^óZ©æ_…BSÆ]…ŠÄ¥šÔYû´3_÷R¾¹[×YŽª„Z’o.ñhå”Ìd“Ž%ümÇ\“«û€^–| z‡eU°ñŽR‘Ñîë}o¢4l¿eZy¿ëèíÆøæñrÍÒ낚[C«»`œÚI¦6üÒF×màWcø´îÁ/á7|ÏKGŠø±À\èiøv MOó®7×ý=ðŒxv“`A+ÀâÒ0‚#¾Že•;r‚_ÈRG#<]Ú— ë©‹'Ä‹¬yÈþÁps¾v°ogà'[þà#`Ù\Ë5s˜¥¸gšý™¿¥IÞI+ÌU/.ðžÏ0“æq¢úƒ€|ëà/É9ûÑŸLÌý’±ô‡žEÑS1û¤½’΀…¡æÕþq]œ‚ç¹Á¯~¶+ÁÚ„?X-øŽ{†¾¦-n [b'ºQÀ«av,yZúJ~Æþà? î ü¿ƒ[ÉÕœ ý¬ ³-z^ˆ×T’‰> ý=ƒV‰OŸ‡ÚoøÅöºFÌ/¸k6ŵr‹€]_ií@:B/´oºnŒæ·äÉÉ ±^s”t„þñî3]ñlæYÌ…ÆTÖý8¿’Ü¥ÙèÝ·$ûaÓÑŠ†ÐãÞjo’MÜ, Ts§˜×]ÔÇÓ 7ÀëÚתí÷ tRû*¿Z­ûqB5#d°zy*£?ÑOAéá×j§Q§JVĉS˯ªÙ‘ƒÏªðûR•k%Áö)b5²OÝ”ßDh̼<~V‘ *wÄ*J¥¨ÏYÎ…’ôj\Eüª¦2aQaZzPãíÊÇÊóÛ«*îJü\âW9ꑆ(3Їý+ö!–ç·‡h[R4Þ©¾adEì=UsÑ´—G13ì‘ýÀšßÞ3A]‡Í¦ÆðRškœüf°‰þPyÝ›©Ã’¿±Úàj_Íw*£Шn*­Úð®[q3ÅóiôøU¾úw²{~Å:ì W÷Pù¯ƒnM€EÅ)òþÄoóx7N2³LsÄH™[`ÁÓLu=Qã->G;Á²$¾ påëŽ;zŸ›~_2-½kŠÃ»aaù¼õ®„†m÷˜©«îeð›ÖÓ×:°ü«àdè:Fé‡y¥Ü2»žä~ð«qÐþ|^`º›GYö¦À†‹ !É1øt)0Bv:ôB™ñ<cYÞæBàÕЯ®øi¬¹”-¡‘u`ÙÍ5G§'ü¤Hs¨_~µ+ð£Í·XYÏãj®Ø}cæHµýxÕÇ[‚z¯@ÆÃáÅ–êµ%°Åb=b=,šˆò%;çê„ý÷dj¼ê(ZÖ x%þ XÔ¤€ogÙÉ~cºúÙJ®¿bï¡ó¼Ó>êθuð7pËà|{Äõ¿ºŸn5¿y¿z‡L}ÍgZÄ)¼¥vƒì¶ƒÍÕD}S•i4GÙM€“ƒPk´wÚÒ,ä>Ï“¸·¿üê€?Š6R÷Š}\g#=~µÈ‚—Ü›à§;Ýh· þàD~˜GØmv”{Ê~Èuh>Ÿ·ßûÁÖ{¢ìã\Ç´€^ß–P Üò¯ änŒÑÍCEg0‹4Ñì•EtÙϵ>¦ ŸÊ/Dk?«Ýx/»›ÎØw\#7ÑíG¯¾^ŸxøƒÕèžp'Ô’ÚGᜩûndÿÚíu¼žñ;d,q—<’•ò®». Öh)^Ð:Úk>Ö|Ùïü¤ëíJ5ß üÏï謯kƒ_mBOb‹Z‘œ‚!1œ\ô!‰“5fÒ3R;+VUUW%Ë1¨|w_¸zYÕt+\s/4G TÙ_eIëÚ«·(kˆ™º"—¡H”R±0L­'E×ÂtNyž¹ HŒfu…*JQÔ*ÏÕÝ€ÿ³0Nãç!šñ”­Œ3BýÁÔªj’Ê2¨±¬4Ý墾ay.%_E«‡*üêEp]rvÞõ€ÌÀø†iŽz-þò~Òóe"¿¦üíeØÆ!ذìVœK]à™uâx]×ÈãÜŽ–6^uä2#Ö‚›M­ˆ½—‡Ôóµ"`Õ'QCo•ÿ.hôt”*2jJðW3©,¾Qü’iâýžÆÀV烶B2P»œ˜3ãSŒŸÐ¡óºrq+ØÉ ¾ P¾ê¯6Kdzuç×K1£õ¦ú¼ØÌ7çYvª%òNYsÒs&-–¡ñ^ËɆ%-;ï ´«§ñöæl]ü4Àì|‚âÍ.þ¯ÓîÀð«G4ÞžË51×_54_4Ù¼E]<ñ_~ŒÁlÞTó¢}‚½0Ïœ¦€^½P’Ì ’{Ýþ`k´ª4ê$Æ­f›÷Qw&ôwhào’â×ÙÅF»Av¼=Cïò>û°[éÖû³žû§Ø®‡ËáÇi™ .{ÇM1P`ÝÌApà"0‡,Ìv'цÞèk),·,+¡äÒ}Þ.ØÌâ,ZXœk­·M·ûüÉ`¤ƒÝ›ö!ÇðËÞ¤/Ü2÷·{Õ=ÿ|-øÕ"{“ÃçÁ¯vÛIî û.æ¼…ð¿…?8šÚs‘i Ÿé¦an|ÑŒpð,z5PW3i<«>ôú3¿¦­Î’mñûÛÖt}4ÿê ^vß[Yq<§ùíýœçòwņº(/qŒnxwšŽZ~'¼s\~ÂA/´bÊ–¸÷\Íë¦ÙŽÂ»ª-DCc4E¸ÐFÅ«Š)ãèx½-Õ—›CþÀ@w͵Ìú¡˜Ó}IÒØHð*ŒS©œLÕÜÅhÍßL¨Ø%(Qѽ©ˆi¨u ÷ÉSŽRΖêên›Xͷ׸V9O‹Ó\÷E’4͈Pî&çY…V`H‚æ †éÞä¬ UÅÿå1« âuª®TVÒÞÄ+š„Tøƒ‘šé ÓýÎÁOÔÌ0ÝTÎÃ4»"L39Ê×%ÇMòK€´6EˆŸ%Ó‹u}PδiÀ oB²½Æ‚g ×xû(ÚAMYd¸¨t ˜%˜Vüª#(¹d9ô)¿ïóVºN¹¾r¶4„î‚% _\ >Qx%QµMпYêOUBí×ø]ž¦x5x•gŽÙ«¸ LåSx%ç3<­9Â" ÇIÞ*02J•¸“÷‘IÔ|Ñ‘|Ñ”€_ #><Îà-ðbXØhÙ$èQ}´s¬æApºÌÁßã™ hC= ã>yhu®à«àW#á]Õã-f°¹üª%óahÍeX`-”&ûöi^¦¬(ÄÂlL[Ù·ïC‰]5w²5îè>^SwI—²»€°9ÊW EÇiðªxµååpŽ+r?ñ`×Û«˜-Zx· ÞßQÊ$H«þ6€%ŽÖó¯€? ,¯çaÉ™6rž_ø˜’Ï ,û^ô¼+=I_éù ¹4:`ì {³ž××ÞÑMv¦=‰9à¤]âæ¹>™U<8ØÃn^•@Þ+LDÀ¯:ÀÖfq Võ®RJæ<´£*4(–ûZTÖP Y°hÓ:´n&t*“fùØd»ÃŸ„ üêO»Ž> ŸQkåà£î"fÄ­®¯[jç¸ ü²ëì,wÖ¾¼ºÏi>Ãx’Õ¼½\bdÐ’“ô–«tó a¥àX嬷=†Ñüéýê6È…hé£îw›¼Z‚Öþ¢û³íDÙO]k7Ì­G9ßy_Å+yÕ!¿Ýô«æ·KþUoèÏ¿:Û¥£Þ^Š…õ¡osPï'˜gä4áÏMà3ÈzVZ#£#ñ«%´Ë|è«\k íqC]’Ï…?Ø+0L½-áWk1†ÑŠ=-€ºå™èrà¯ç3”AÞÇg)º³'®âŒ¾ÍmJP«<æ“©¨$ñ¤<Ý#S~ª”øeIº XYÇ/CýÁ Í‚JV~’¬Qªh*?“!VŸÑœÏXͨ×}‚åޣĩª(¾„ëI6Qê»Eë^ÂH=y-\±.JW¦¢ùb02ѧý%«YEã`‰‹¨ˆ½ÇëÚ~ù~Ùg”¬üê |¤ÝÀ+AâæÐÅéþ`>ðljÌGi¾è+ÊßÄì-ñ+9åk%¸qw×<“L0öZC>ô¯°"§}9|¦AÐñtó1†‡©§æh,ÇÜ—ÍÔ܇sì5Nó¸"Ì«|“ú½ÃÍÍ&ÅÜc¤·ëÁÆî2,\úm~NÑAõûˆ¼m”®û#¹«÷µâU8 ä—MSïW•õqŒo7k~IK_M×,¤°Õyô$)çS~ ò¬²Ü<þÎÿÙ€!¶^áßãÑÂnàWËÀ¯Ž¯Ro@©ßA›[ƒ9ôÓ9¤±÷fxU„š7€[dðQ\í£yí ¡7m5z•–Vw_^ѳ´þ`¶½×>––ŵ\ ðê6Xÿ û7¿G½½-ñ?`©ðÇÔw/Eùc4“°1fð3èÉ4Œ œñµØÔW_ÂhÊÜšAa;ãŽÏ1Ê2öSÎÞlg€_í¥6ÂzÝE—ø°=榻 ¾1wòžà{BϽ—Ö™ð@LàqS¦»Kær4Ë.—îÀˆmt7zÞ’l þnmü¾KÎÔ‡´·}×9æ  ´ÜHÏ“™ é s_À³npÿj îqge} ˜±ØÎsSøAøƒ›ílwxULkø {Å0uáR#œj¤›‰y§µî/ ‰¿uô´ž'P¿œ¾R~Õ/^I.ÉóÎsn›ˆ±øÍÖp{ÝO¶3Z|ÞþìºÁîV´\öƺ$³töo0Ë°ÕÆÐÞ˜#ÓõÔ«Ž¸ïf=íJøU™î­XwÓwTo&:ß]Ïkª$k2æó@7Í#I'Ý$W_sfQ¦?40^m´ºß9RH Œe†b€œOô1z+öÒ}~åGè.¾ò<©HSURL ÕõÉVF¹#E­NrJ574VwÂuÇ “¡TMãVÕÕ'ªª¯8E™xõã*vü$VÄ‘Ê÷VQTÏNðÌ)ŠWuÊ kèú`PY[-å{áÚÆ6_q2_¢æ[TÖýÑIŠW‘{‚ÊóE£5&®ùcâ—= Yn†þK¯Úht°­Æ¬²1ÃGs[åfc)Ÿ³øUõ=߯ ¶ŒŠYÖ"V[ýd\/㨫2 …¶ü@À+Á½¥ôõ׊P  ì詸´‚.Â&;ën€}šq~X¹cå˜7x¤Ê´™bÒÀ¯*©_™Â™L–±yØyœ^d‰¹yâm¢ªº>Áí¼/LeÍÉ—L©ÇŠi§¡±‰¼òhkÛ T¡»Ÿd¿óRº §ÜBßP>ƒ¶ ¿zÃÿÃ䢹°²ÁüøÕMx¶!Ï7;Í>–ÈP,ï[û8Óø1¯wéùÃwyd>.£Ê¼_×ïzáÎî³.T–fÉžœöô4U2Ûáд"ð½­ ~uZš¼jà~6³äÄ.fÞ •ÞBèÚu¼V7C{ÚÁ«ç¤vRÝ /|$®–  ût÷M+hxy”8žì;¿>“Ì=OÆZø€~>ìÇil'Øûè5Þp¤[ë³YÎë‚KíÝ®½« ßd®y8mš&ÓdŽd`±ž{¸&OOn„w­ô|†$¬xÕÜö^´j˜ÝTõ‘—øGm‚ÝétFº×íÜ/v ½F_¹©®Rð#÷üó•®›› p¤éÙ1áú:NïˆÒY9›KTUE=6Ù›\Mñ(Js±"tÅ¡üdÐ=É4DqIÎ8ÍU΢ûq$wB°%MQ4U1-U#ûÑy§©‹¬Èͨ¢Ñ¹P:KÝŒQÜhÉŽ¦ /Ê£"¶ÜBó²†SmN«àW¯c¶ÜD4O`õä0n¥ëqÅ`Å#ÁÏ\p•n©1«Eð´;ãu¤®}Œ€utTÙ®³ÈáÑÛ‹ÆA§eí³…˜—yœ®ÍN1“LMsÀDk~i&?l •×½ïè$ígË—ÍnÊ5ÒYüÎ$°ŒÄ(àUÎ2ûÜ_Äç¤C3d}§-Ú1DÏ%Þœ9‹:Kð÷;º‰Ÿ†ì‹QÓûþW&첚œÂiþD<Ó’ÊÀðn1ûY"PѼŸ} ¨‚¶ËžÊc×êzþU/JÔGP.üÆÉ@–Àµöºã.O#N¥°©èÜyú“7³œxޝ íÃÀ«žT‡«¸2÷»™ Í_dŸâ—©»žÏð#Fi",°0³P~ʪûÅ| ³MoÜ3’¶ ½í`Aok>CU´ìŒžqú|–ÆÐÑj44ð¯?ÍÎöKÀŽú‚_õ±“í½ôï´Ü6·×÷ÍAžìb»®®þàø×»ßÔM£yÎsÕÃMƒuÝ ›jŠVÕ‡~6Ö3‘ƒåÊÙ+…·íhãfÔ< 2I§5þêNŵÁîUÍ]\ýÒÍpáÁ îI0æmnˆ[¼Íyœ]k'¹çìÛúr~ÔÞðŸú7Aovs¡i«ë€rVü È7’í ý§ëƒtÿàv´qŽž~þ‹_ßþ©§0=íþÒý8ópÇ6Þ^µ†fÆò³Ž“Õ'-ß±“¨gQD(f&k®~¢Æ„W½“¼Žf*ÙfúD¶îwn£÷ŸÊä7”‘½ Û¼’\¸uÔ’¯QG=ÿªVÞDÏ•ýƒ?I–¥z«·Ó5ž&QºbhÖe‰¯­†Ä«q]KØ T»IâÔxº ¥˜ÏyŒæ6 3‹L à•Èl 8Þ㦎âÕÛÀ«;¡¯"Ç›-”fÄ»^}`bY|Û~ü¤iå%³Ì÷@wkò^ÔÚ_Oªê€>tÓÓ–â“'d·žîÇÏOii þÈ¿lJà÷ɾ³vìù²Ã¶5®oC‹s]=ÿjµâ•ä(Nƒ² í?Oò¢x¾Î&k1«×B½õ»ä´èõ× õlØÚ°ïöà=‘ænþ×ÐÆÀOÀ«ûíÓÇæWÏýj–eÖÙø%à­ÃržÌxÈ«…ž@¿cS¨g„O‹|›fCê÷è^‘Ö˜‘Ûê¹ÙÕÀ4zB;Ÿƒ§ÖcŸC“v¬îw>I}À$†ÚÙönz†wØn‹ÛèÿÂy[pøUW—˧i‡á@ø•ì$C3Á¯¦Ae'Ì.È7ö¹ (R¿EÀž~UÔTô¾ Z±³ÓDH­-òOÚx»ÏŸ†k ûüêg» Hû£›æÂ€WÏ€nvÃWãÝ~XóE'¹ ö5®Mëøaû5øÕhÍ,ßÁÍáÖ€þÊ~ç%ºSRv4v„|dgÎôÿi°Ý†ºŸp]ó[ØJ»fôŒûÓÖr=ÝÈò[Ó^õ¾Ëy2mÜXàU¾î¬å"=É;H?z™Nº®*ß7ÊUuÇO'æ±Ê"§˜q¦ÌWî´™ªðføhrjÎGhÙ~zIs×ÃØó6R-#ºÍ]¼OL¸ò½qü¬éà…°Œû°æ*À—=C}'Z9¼â[j6B‡N£Ç¹´’>^= iG¿òÿ1’ÿZ MkÈfÑÍr6·™SÜ r‰ámгÏõTcÙ϶>X4d$šÌËPb-àú|Jƒ?˜¯ù ršh>FªXÏQj‰zdÕûªnVó—@±èHÅ~œ³à°u9Û5r×Í Ô{³ýˆß§Ñžì¢þQ׸oS~Õ-¥ç•Ž®ž¢¾”ÅîE]mpç7úýrnú‹ºFù"Ư¥žP5>ÀÀ«y~Ц üÁöVû(=ÏGíL·Úm÷=´j~p€= ¿)—/ÀüÉ»î½h£shÇótõs3À"¡ÄöÐ#Ù™ÖV£7#› ;-À<#½¹x5דþ ëÛcþ|Hl€{Ç^×YJoÒ7ÓùÁ7á>K`É ÑŽÑ|ŠØÍv¢{̾Át;øÕÏàW£Á…äû&êóTAÙƒðÿŒ¦œT?T×ó”K·¡GÁz%_4 ûªŸm=–¬w¿Új®““³¿¿´éÀço¬ŒÎ)ûžk憹Í(çŠ÷¿’óÒuï”i­'8uÁø†r4µ²fà.ÓóäŒÐfĺß9þ7Pã/r†R?èŸÄˆÖÒsþ DŽÐ)×þ 0šEë÷ ôÓ{ ©oF{£5ª)ƲüD»<ðÇNV\’S’å,¦$åqê‹Ä(Æ$i*L÷æ$è9BêsekÎEˆò³OÅ(Cê¥yÑš·£<–ò~3Ñ<Ä …¡fÃú% 6³-ªŒ‘³\ðYC”³ (˜Î{t¦ï¬»o$ÿ»¡ž™UÍl{ŠâÍ"þWŸ¥íïlu{ÄÊŽ»Úo¿lFɈM6Ñ@o îúIgëÅÀ9¡a¾ž”Ú¨5Œó p‰!KüJrƒºÑïú½Õu?ŽœU¿ª!™p¿üáöf¿) nðŽÙöå­öüÁ5þ¿<†{Û=°ªÀñYæª÷¬VV¾æ`JBóÁ!²€;÷éùíËђʨCäú'äúëÂÖ×£æ•@ùþ¯,ºÍßmSí^Ý?ØÛýÇ>åþ¶‹ /×€W6ø†;Gi«ëçVÚ!n_¿Úl'»‡ì›ÀˆE|ýÜ?+g¾B‹q#'ŠÍјôJh¯|³Ù0Hu’FÊ$^w£ÑxU—æi>C… Þïþ±i®©“oôù̦ºíàWM4ÿê9W _ô6ŒÍçÞ—¶’‹ñä»:ŽÓoÞÝF²}å<ä#zrR\—ø•Œ‰œœ7#z­ÞÐ@O”é§1Ÿ´¨›D¨ Ïku}°§ú£i æ£R]%ƒ$ýÎnÊ\ŠàoÅSåßïÐH#„ÂHdý R£±Qº‚ð‡ž/úßõ»nÇèÚ\¸f¤j„;YP¢žØ£>ŽœL“Dåg&¡e)Šz ß³“¦¨E‡DõîäZzÅ®¿Xõ#ÕÛ‹Óo¥WN•ñ¿ýÁŠóÊ÷>Kœ?Fó©"42W[=ÌPÍ¿ŠÔs£+v/¦ë¹XÉêÆêNž¨ÿ}¢h˜rºôŠŒ°1Gï„.å6Ñ9í4Ö$«dAêRƒàU ðJÚô:Æa7üAɺ]ð'jËÂ4€•ê~9óGðªT_ÏW~U¨ùöÐÙCÔS{0Z^›{j¾ÁaÄìR©4'6_ò8ÍD›bZ˜|sÌHù[áÑí65XòÉÞäKòÍ',¬p3üAÁíxê½a¢t q¿gʼ_tV9 t¬ –¬'bîÀïͰÙ\X¶œ'sF#Y 4_T¾GrA¿õå\šf¸>œó«ù>¯ŽÔüj±yœeã%`9ŸcôÅטˆY~·z˜£€‘<#•ý\B•y¬¢‡îl«çpæhüªz^ªûqbÍz¾Œ×ÑžÀ·6×Þm/i>C àÕ7f&XÂ,{Òo£ß?(ñöI˜‘›àºD’Fë.ߎøû½‹V¶Õ6Ö ¥v­Ðô ÌbéÉOឦúýÃøí4_ÎïjãÜ@øƒhüj•ÛíÖûWùndºŽ.ƒŸ£ÛÌž œ0 Pâ º•-G»¡äͨ-È%+ûY¨³m{ï“Ñ‚|èÖ)=Ñã v èøÍþ]6ÓžðÇwqoÙ§Ýu»:ò“›î‚ÁÜ%2¼Å u‹íÍî&¾È#í^;þà‡Àˆ%|§ÆÛGºÒÝ\bäLÑ©²Û²b¿³ä‹Ö—SÇ í£ Ug1ípG´\Îo—“׋èi÷»­?w0à²Mv›ÝO¶-þ˜}˵v£¬œ|æÝÐøUžžTý§w?øUUŒa=¿=[­RXÞ"苜¾2r¿ŒùZ,MÖ`ÊðY¨²õQx5C×òn§½æå@Oâ §®»k¬¹Üó¨Žß?ÐA=£<øÒ›ô;£”_MÔs8e¿sýV.F™?èÙ ¡ê}ÅiöU¤f„WQë•ýÎr¶ir…XC¿·+JQ¨H÷A§j|»«®G)o*ÿö Aˆ*»£Cu-/AÏXˆR-AùO´®–Ÿ'¢û#tÝ2X±:YïÝ<Õ›FØ ‹òýΉ˜a#ud¤æ3$jÎj%=)>]Ë UŽ¢òïªHQ~¯Œí<´“ž'­Ÿ4iªu`ÄùoÌE‚ÜCæ±ü•Ÿ'Ó8UÊýZLùSà•ðÉ”È ñY´æ3¼_q~»|äßà:˜ô{s&b¾ë©\n=øT-î¥uí×2H&mm@ó;<^cmýVuÌ #œyÐí88¬¼ÃÁófaÓ3f=e)¿Šâ™àW‘êŸåOLk/Œe>:‰–fcÖJÀ<ÓJ+ôWöãæ£ué ]­ïKÀg0zu)—?刻‹“©/Ÿ ÈyéMЧ;Í ð«Úr¶#Ï¢¹ô°Bâ#cÁÿî€Ü«€«ÝCáÀ²<Œýjhh*ïEÙM*ѳ¸Û¢|ùî€кzÊÂÍ2þWa[À¯î±/‹9ÇÕw¿™Eb֙﨟'ߘõž§ûÅ\/KNÁë)çëÒÛ?9Sb8PBöï–Âì©g$âÓAÐð×pOÉž¸1²í¿.¤ÓÓFºnvž½›žà=v¯{ xõ ¯äAÁö×Áeñ½´Ñü¼zÈ4´¦ÃÛŽ„?(Ù±èå1´ úÚªižFkH`˜~ŸW Æö,8ÂæŠýƒµhŽ¿ÏFÙ]þ4\ëáÞ£ùÛ.ŠÞpÓÜ?îw–^ õn°[VuŸæþv›âÎ_Õ¥Õü°ýÆ?¯ßÒŽîQ¼’S0@î+õ›Z%ÿªcVW$"õ(¸‘|ÿX¡æ_eÁ¬ \“óEÓ\/7_8‘­év¸/mG´ö¨}2Ÿè¶@Îÿ‹§«“êXºÕ=s»Ö•ÝeYÅXÜÝÝÁÝ-@p\!$$ÄBÜÝ…ñäÅ]^’ÿÔ¹óþv˜¹÷¶>U]uêíÈ'àW"šÃ~LþŒaü•VØ<{° •Oú“á†ù-WRUu0yKCÜ¿+óú“Èø°ãÐo³E¶ÚÏa÷iœùH9‹´qi®T ºSOFµþA–‘Å`”ÇR¿=…‘_ɦ"k²4Á7tßJç9`XY0‰x’C¨PÓ F,§öæ\â‘úØÓó”L;¬Ó5û¯goEbHUòœTúÎÓøéxþ¯cæC%¿Lê6$Ó†ªÎX‡4Æ_¥2ž>äW)´“hë%'3c¾,Õd-¡ï+ô_UäwsxZ™JŸ[Z,v#‰8œI¼RÿÏ-Ø}vR¯U}G£ÑËíyY+2bB=䩘÷æÚ¡¯¡›¥•QŸÛ6f¾Ç_µï0WMcŒ¹Z±Uäe©‹ÝZ nÖŸZ£šC=Saj?¬³«cñ|`/fù$Ìl=%è"/™G€WjO±Å6ßg}çÝ’mn²µ™·ø¶ùTN è9oyóœ]'•™?˜iFF>´©F½ƒ#̶Yäößq¹J’Ìv´[õ„6`ägR•¸Ø•zVzc†­Ñèpsš9­¥æÍà[dTh–t7?Dcôºæ”]k7êéÖóü+äò¨¥@ôÝÀÛªT¸÷ZÂú8Û`f⾪EÕµ«©ôs-¨« œÙvùJT‡jôWxõ,ðª²)¿úËnÒ*8îYcÍ€È̵ñ¬‹qG­çÕ ¸5H•`sÁW_ åÙÏz¾Õ-ü÷.f‡ ÀÌ~ò”¼Î|ç2™¸In^Ð;Hoð«n±{X.¯Öù¯ýÞ ‰œ·ÍºÐš¹há „æãh½‰ ¸r>Ö¦ÖWL5ƒñowªN#ß*jÅ©îôÜàKsGƒÅ@˜‘þ¢{ÑGa=+_ù…þO¯ú ÷ËNßßor ýDsÞŒu;ÝDÿ¨{ÎÔ”-æ´û6ÐÊ`}1O™°Ñ Àœú`–«‚a Öwn@˳˜çƒÈAVi¬O}Trœ¹«œöÿº"ßÞ«ö÷wxµÛë:ã*Ü+°/^•È‘¯À¯"Ôýö`wô£V0;BÕþL¬ÜÀ§ùhµæñjõ'0š÷ÖXZ1¶N™Žúûã‰ÔóKÖÚ·¢ƒèÅ%[|;ß”Z4k¥4κ9ŠE¿ƒy†õRK0šCÏPÿŽ‘K< LCKWa»³ V&38b¹~ɱܙ$bWµ˜²ºÖÇ©@S˯}Uú' -¨Ê¸ú® c5sèµO'¦“ó$Æb'2iëe1^Tó=ÏõŠøé±œPy=¬ï\Àu\ž–ŸÚƒ±h‹¶´›ãך{]ŽQì¹äfÉ<·LeŒD"Y]Ež&a•ÎÆZ»’ííÏ=¸ q¸&*£«þðÑòXê xíðªð¿Ïé®næcüÍ Ÿ°|d0Ÿ§>ðª™iÇñR~5ÒÔ&ßÓ̳£¬™…Q¿[™!Öšo‹kÝF®Ø]ž6ó|0I†Úd[ÝÞÊxÑ ’eöÙFcA^×{DN'“Ïíz)æbžyצÝƘl—ÈiçÃŒ¨~¥ñ¼°–{ÂnƳ¬C˜Çw0Î`=Öö s’5ìŠÀ¯#ÚžÊà/ƒÌ†èl£U¹l¾ùè½R ÎLì–›Á2ŠyŠs°lvÛ:¸æjÉ1;лªÕ mӚǩݠüªîüˆÄÛ5æsôßm²;úµ+u·€_]&Ŧ¶oá?³ËUÏ×]oþ‘µøÎU·?;`•ŽÁÕêáóÓäV°§Ùh›zxã>]qÏϱf­ª€i ÂýŸ¶U››ý7˜ìfå$øU¼ïíV¸ò¸9äÆùýÕÁOf³é×ßmõ]}ìäÅößHjô«Ví"¹Ò$˜ù¸s´x?ðJãd03­cG5ß9s©6zøvÌ*r›ÊLèÕÁN—ëP¿ý2ÿ‰»ÀúÎoÃ~uÑ¿„'Üîû…°'™³f¤ÛK}Ñ7ßþ€ûOpñ¹]ä”id;s·PÿÕfÖK­¬Ö|Áê´Û£mGXß¹zêàإ˜ºè¹“Ôooœl'‚ií÷Ÿ;¯=éžóµýh¯xñ~äs—êã"Zƒõ˜D£·ÙnX1©‡œI~•KÍéxOu[4^ô?2”(Pwî,áÙzcVKœBëh·ìµ_³®D"öç}¾%ë;'cÔZ㢹>U›w+zR9U1O²óy Xcþ£5SðÔ+Á¼éŠdPé1Ž”‹`Hä몴ä2¨SY‘ÞrÍœ.¥ –FDêKL9I%ú¯ò‰WY×&CB=â<žä…ØæÚdÄô^J­žÄz©Ùôš•ãoóx‚èx ™N¦¢÷-ã)BX{¬%±,‰šíI±óÁxfcgðùÓ•/I±|œF„)÷»ˆÑ݃ÈúYüÖŒÐzÍé¦ -È˱.ãÌkäÏ“7Kk£~·eøùt2™ÌU*a|{ óš?•ưÛwÉ_2,\¹V+ÜëìÉÚ†cXŸµÌ0òÁ½Õ+ÀôÔæî ¼zÞŒc„ìo«ÚÛm íÁ|sÀ64Ê¥Ÿ60ÿï¤ú»¼`×ÂÔÝt37òª-gt¿b>°#?¥oÂzÉ7WSudv¯áXACUÊzôǩйx5ßÜ…Ï4Ås] ~±¥hA p`”ÙC5ðæ„]g6ê«^-–·0'Jð»é²ŽùεeZ–[Qk ®…PÉ쥺yW\w0õEë“kíö–Œ1L²«Í'xï¨\¼ªïîtÏ(o1é¿Z ¸Ú]2ßJ·Èj`Ño@©YÌÕÓÚ¿‹pçF¸ïHêL¼Œ»7ÁUÇ£M=ðû–ò!F³:uBîÅÝ;ÑÞ÷*㽱ѿ‚inQÐJî”A.ÇtkÜIyÀìsgÀrv?›í¦{Ü·ØQÇ<(ëí_‘Hô”U%œÕ²Ä¤™¸ï@ ÁNêõi… ÍLkÏvE̬€þxg¯ìR®‘3xBÕC^t °Çã{CýÛî¬ÿÕiÍŸý2÷œÌa'8ÎZ·‚õq¦¸£n?Ïzôk€W߯æ2öSϪÏGcêòq=åÕJ×uÐ+ª¯> müJc¤jjnzP×¥bê)âžù¾ƒ_‰ýâWàoð?»ŽÔë»~5É_‡qüüJõúª`ôJ\ôÛW´Ò|_̦¨©F>ÒÏ¡>Å>E}ôv?²“¶è…î˜cºÊëbLúi~æáz¹Ñ~íC‹j¤\ãû€_éêœ/‚>ÑaÌ’i Öì·ԆÒÞ ñ*qòÿÒªËDKÈ·˜Qùô™§I¨ÈS¸JŒå°$ƒ’ˆ%u%¬â\‘‘ùŒºÐÏk>N_ÐÛTYÂúÎx’OO[!10)vVXDZ9fDW‰Å_U‰åë„5¼RyGÔ µµâÈ.kP‰>“±ðí©åb—~#‡¶[VŒEÅÇN&3ÿ?þªŸæÒFò+,Ê,óhF}†dxDŽêoš¯ƒ¯l%X±š?Ø× b†ôÔÚòv©½ƒõ#f)VÄE|3»çDÕ ¡ß¢z%X¦~Úx·¾Ù†ûÅìj‚{W£rµMUÿª;,¡l»Õ¼‡yz»ì‹þ⪺S¬S {°žÿüª»¬pw›Ï¤õÿÂXϨµÂûÁÜF©r5þ .ñ"³Z£ùΪ/ØûFwf7`wPmÕgðN Ú5ZgŒ›E}†a.ðZßùàÕq7×O‰ÛDìFÓ5n˜ÛçúªØ6ÛrÑw"§Ï0=U`¦aUkEÅ@èj¬¸Ñ s»;ZÞLLG°ƒ~héü¾#ö…s¢õ KdìÁL·'‡÷/÷︧ü_n¼$ÿñ+¼‰{Ó?*¯¦ùõnøÕƒfšÛï¦ûÓÔC^C}Ñû1Wz€_Ý~¥š pÏ<`h{\¿6æXKì¯55S+áàÙšS_æJù&(u ¦Æèâžµ`çj-Ú_aîò?8½â½î ßÔñÛñù"¹\_!¢êǘ?ØãX<< n]…ùoý€X ÑZõUÏÁˆ<+Ýéã©ÏóÁîä3 Xal>­ «x>Øgü“å î[sÅ®•A_؃êån$Þìgå«xÆßŒ`~Ÿê'4’/‰©õÇËgÒÖU&=V©ä`aüeª„š{)dRã]‘ÕÜSé ÊÀ^Ö%T\éŽg¯L{°ˆ¨QHΖËxÑT>s 1*…Þ¨L µÙÓègϦç+ž–\x_ÕöLe&M¨s•Æo&TÑY£@4¯P9A6ÛϺ‡bªÉÙT— 5drȵRø ©ôf…–ï0—]e½GS¬“1ŒR×:æ_ Z+±‚ÓÍ%"ß9újš˜LæÖ5ßËx£§š¥ ðªmÒ2ùšõõýêò 4 yV8ëú:æU%bOT=™ÜSŽbÌÀ:WÆ×FþƒY:cz«a‹WÚæÒö`m£ûɇæny\5Ê¥‹Í%»NJ-£3ÌøÈ‹V}ì ²Ñ¼h[D¾a+âOE³mœ€õ|5Pufq Vîüæž(múTšSƒRÝ|~U ;zSÌ´)&¨âq`È]À«§M7|ûo­Â.P™ze›\ÏœÞø™n®”*TÞ\߉÷cft^•Ò§£'Z2O¹VT2øÕ%<Ë}²-ú‘«>±E3vM5àÕ×v6ö9®¼ý@:ÓßþÖÇb¬ÀÞX­± /öµAÿ î<‹gC¼Ú6iMžñÀ/ Œn<‡}¹ ë-¿ç&uä”ôuÿ¸±øsVî5»Ý6ÿ‡ßžj|\;· 뺭y@–ÙŸ#_Dî±±Æg€_å™ITƒÒóÁ›ÑžN@Œ¦hGÆ•9Ó•ÙvÑʨ¯EëPËbu°Õy·#Xf;Ä¿ ìO·üê¿Ü'ƽìÏ‚Á_뇀_Íõ³Ì£àWažt/av]iN»ß‚GÀŸ46ãÓÒ*{\ÍÈÉu±J@ª´3†ÑoªGqs«ï¼H¾…=˜«²›œñÿ¸´k zç3Wêwú¯\+ôóî]ßÖôІ‹‘]ŠÏ¨í|xuÆj®d!úõ«z7ÃzQ˜'Y~6~>ñÔõÞcÛ†kGµ•T¿}&Ðv9b?Чe5EŽûË|F!]%U‚~ÑË$3ϰ×gÜ‘fM‡ŠìE˜1ßÄ*B4Ã~û¡ô¤O=ŒCùO¨uæ)+²U%HcýˆTbF*õªñ¤O1 =艌<¨ÈÐÆ3äÑW•Llª«ßœFÄ*ä9£*Çd35ލLöS.–5ƨÇÅ2®“cjMæ;‡õ,ZâÛ…D½Péæþö°k9 ³‘Òˆ{I\ÃÅDÕYʺSú<èÁêÊ;WŸÑzô©ô™¿ëðMÚÝOaLi¨ºÃyé}¶QïZp°ºÌ=,‡¶?%þ?gðO|ª û_UÚ÷SÇ5 k÷6 Þ jEa¥—ÃÜ ZÈ󄹜­¼ÉFleà•Ú´»aY­²eÌUüûýËòu˜óÍkvT³Š{fð*Ž86ß|jG~çžµh’b¶ãõ ŽžC+4ªà0Ú¦\‚ ]Äwnó+^= ¼ªh´’̼X>Noõçš[íA{Ê”`F&›9xæÏ0' ñ™±À¦CäMƒ`ת=X‹•[¶²ôD¬ØÖèÝö¬U‡ü¦~¶A_?+˜5æ ÌÓÛdkô’«ënp‚!T6¥À«_íV|f®«k_”.‘=xÎßéYDßW3¬Î¡Œ–†q;~5þ|¿êK5—÷cUùò`Ê~{tꊛᦠänÆ_MvÜ yØuiqw¯¾…=¸)nŒÛë»øŠ°gÙ/"?GÎÛ¸ÃT™a’ÌdÆ·c'9v]ìlH]äšxâ8ìDŘ u°#Ü€gÙÊx†¦Z—68ârÜ5Á,؉À¯žv¨ÿêK?xõ¢? y‹ïæ—¹Ù~ŒyØÌp×_¿j ËÍmî×à<õ¥»Éͦ5ó—¡eyÌw®M»¯žO#f¢¥÷clŽÜïÿÔtåõ€ÿ(5Ð_×ß íý—®'úë”»äÛkl=zHë;§ù´ˆÆ\í“Hô$lÏJÔoß'ªª\'ý°zšân)“Æò*Z\Šší×—Ì ˜T/š.{äfàÕ@"ÊTÙç‡úD™+¥qÐ)ÆBÔ”ÿÊ\!´za&Ð+¤ç ¿2:4“uØ/2ž!YB¾DâD¢üOÃ8•9Ê…Ô MÅ ¤ÓÇ®ÕÅŒžÒèÒ±BžñåóÉ ©¥C¯Uº$ÅÔµÂ䔘o*#Æž²b^ò0Û&•vèÿò“ù:Q«)äKIhYòÁrÄ«Lž ”gŒXš„õÕ–G»2…>ÿ0Û0™g‘E1Kq:FòìØÙŒùì‹1h'YÌÇ)3ÿàµâí Ló%=ý÷cŽ^ ¼Rûî”t¦-3j'öÅÊl€•ŸÎ8«·aµàçkÂ6ì˪Ìå°M§š‹²Ñاê™Á´ ¯§s3y];ùÒ<µ |ô¸m¼ºƒüê°›C¶”µæ_^=!/3Ž½È¼…5]hÃÚ^c"/[Ïx° æcÛ$ò)¯³»oĬG_,ÂìÒýx0£þlÀ"àùD›“¢ŠE5Ì»ÁŸ6ß4Å7fJWSx5‡üê¬ÝaÏÅ·³ëà fªi}©í°tëúaõ&™åTg_~UÁ¨š’fó´!¿êI~U÷.eæÇÄÙkÌ«¸â)ÙýöàMîIÌðš¦Ì7ð¿Ûeè¯&®È¾+­"ÛÔZÆ·æc•´B+úÉrX5™G>¸ó*öƒTs;ŽqTeä1#«ƒóÀ¯†àwå+æçW‘qQë&»+€W·JOWÙ_æ¸{ä ³Ë%Å]í·_™«Ì³qSÜ1ß×7D/³¿F\ôÛ­¸=•hFbU µvÁÕ\ºÅheà²ê3”3šÝÖ ïì@ÿöÆ¿è¯.ۂ㮂»ŒUõßuøßÁ'/Ê/~‚ÿË?âŸA\{®r+ülsöàv7ÍŸu¯šZ2ÙÜî~ CûT]ï&Ó”zÈZ}¨2Fµ•·¢Õcy>¨1Oi.£&Þÿ5(pYF}á§|Ôçû~-úòkWöàO®5zó÷¶o ~µ×¹ù†ö`´ãZù!rÖªþUM0’кª<ÉêÏ Eq î)ü_óI2¡?×x]ŒÍ ŒŽú…®‚Åðõ³1R×á šq–¯&EG’w5¿RõÿdÆyv‘AdLª¸Ò VK6ÏåÚbß}»Oó³³È€ c>Ÿ"æ"†Þk=q©‹ÐóÁÆ9dP¿=7–ýW¬ªXÂ:59ÌÒ 5Üs™aÏSÊTZa4zQ&ŽßH–°ês”ީܘï=þödÆt©g¨.1UÏZ‘{©U•Vú·W³ÏFɇêW |ê×%¿W/æÛµ†è¨XøXÕ¯>úï€JGü×®³Æ9¸—Áiûù½<¼äR}N¤憞>j»²nÃXÿ2â* ÷$«é¿J¤ògÌŸÕÑh{'rŸ:ÔP õ°§Ù÷¢C¸_—­¾©oE{mµ´ fF'p­ª=¨êÿ dKí±Ó•#UÇ}ÒL:Ï»;aœãL_¾Îˆå÷Ås]—c¦M2¹™f‡^¥ ˜w9dLêÙ­+V ®TÄ~Y‘ï§Sc&›±©ÉÌ)Lù·3h1†ñÊ®ŠøJíÁL2³òäXa­úòDštFqÅ1R¾™@–T—ª^éÄ¥6´õ9«ò³åõ¼ò$¬ïœÃWIäf¡ÿ*̺îì¿#œÂ3ˆ‘å6d‚µÀ þŽå>ow`í}Æ|ì§0wÔŽ¾Oz›O¥ùÕ0Ž2jV+ž?µÝ‚ç# ä7ÖT„ƒ•v”;F2wéR3Œ~µÃÝÙøöDyÆ}~·ZМs¬”+ƒ]®À æá7£ýëîiïý6̯ÏüåXýyyKvû^°gøÉæ3Õí¿ºà^4ue¥yÜý®¬ùƒ=åoÑÕ­Ú„7j¼„lƧc^T–eÁAWä`áð/¹ÇÀ¯¶3ßy–Äíð÷ã ÷ûlJÍ0g`ª¿ý´ûì}¥9ï~ ^ Á®z½éjû£ŸWã^Ue +v×Åš)´yfk¥AXÆ`=Ô@ýÔrÙØS»Ë#þ_Wí ë¥V§>ƒê±ÞçÞBŸOß«&ïE¾r9>+R½·OR£÷Û>XOZêFq¦:îV‚^ïC;Pgú,ü¼H}Ý4´S«õ`´QQßçtâÌv9h߉">Œ—M¾oÏ8‚µÒ1˜#Z}¹ü¡¶Dì,¯³ eLT&ö˜ÖèÕP¯]OhßCOóL³Ä}m.JçÈnàBÔ¨ÿê ®‡¶hÙpÖ_ Ü:~¥ö`#¬çxÞ^øôgxžª˜5Ù«qÔë{›º+5dY4ÙMqó‚¦À«þ°g½î³æ ðjŸß|cV™åq½Üµ°ÍJͲÏ~Q=µt0þJëG¨jÌA9 ¤PLjÈ 5ð‰اª©º §ØÏÃxê†øÜ²à—ân fÊNäß^}ïvÊ%ù(Y.î&ÿVý¬äÕn¡ŸÃx†ÝnŽÀ½ojÉ6Öóz£×÷¹Ýô´=©ÃÐÑ”íÈ[U•yŠªMr&?té´¨Tû)¨î¢¦&þÿœÿ¬ª­Ÿ1Õx†#þ'×W¹Ã½í›øQ~¾ÿqäC—æÓ#ê »Fþ‰y<ýJ%²¤Ç¢«<£¾“iõ%О³ÃJòžÌ®¯ÃÏ”±Ÿ”1¢]Ù±lžúïóc1cùÌÇIä5rùûrdyIŒûR?ÒŒð>à•Z–mXZù8‘1Ÿ•1㺌!ÓüÆþ|„žò^¦€¾¬^æE™eôyûKiHí…rXAïHæ&`ì~§ê²eóXõ©;±{v¾B3”üï æzâ[šÈæa3ŽcpÈ´uìa«>=Íw¾ÁV5ºÛ\4Ë£rqõÕÍ}vãEaњɰXRxn¸Ö|dË"ß÷f£Ì&ôïHìùÛ°Æ'òt° æÞ,¬¶ØOWcÌ3·ó4ºÐ¼|bó€Wµ€E5Mf0…Q>…f‡e3=ñ£µ•/b]hͯ Àô…è‡3àTz>XhµxuÚ4ˆy*]©÷V—–`kVë!OH†=Låžs²?ú‡ké ÿª>ðª™ÿÎ^©™³.Ç~,—GÖamüÊÚg˱º³&ÍXFÒç¹ëe,ã¼&€7öb=úW0««`¬«€Ç AÛ_Uæ‹ùXUæGãÝ,·!Ð ƒ]’å–¸ÛåœÙãÖû;ýàÕæº¸þî ïí«šÇ€W_F¢Ñ'¬V¥¾Kaÿš6vÆüÚ†Z <à Õ†Å=Ô£÷ZV‚ß6“œÄ³nÆ® Y1dQp«Kt·±6Æ¿ {ðO· 6Ðï~ºOŠ;TsÜç*7Ï^MqW¯^Ãn¸Á\^=Ϭî^röà@Ìë™@ ªèë^Ôo_Žù;M´ÞÖL­„#×¢Gfá÷‹å— ’û½ÞJ4¦¾¢ï;´»üá*ûýþk§Õe↑çG‚ï5“×#ß»Tð«j¸ÖAqÑGmô£ÚƒZ_²:^k6R/YÄSÑtŒI ù†U 慨hG®TÕØ‚5¦k³ì±/DÒŠ-|7à•b×*) ÆÇ4¾6õÛkÐo“u1†qàÌàú1fûuÅ:z÷®Ä\›ð<0Qš©Yü™H?Vo©DEÑTj4eÄê,ë÷´"H%‘JëyDÀxΘP >Œ—¨@o{RÌ.K¦ÅæÉ<8UX5SB=™Ä˜¯+ ‡¬˜xÇHŠºø‹WoOå›DúÛÊaqôkåÆòU·!—Ï’ÀgÐ膰jY7¬ÄèuE߬ܨ[kMk(æ,ÇŽ’c¾!—{Vg 8‡^ã¬ôÁJ›@ýá^’gšR_4Ïðº4z%‘k}'Ý`ï§'ã^ýhgwÁ¾[x¥ÖëuŒÉ>Èþï(ŸÂA û€íckØÄ¢-¸þQj¼”“K`uÏcmé g¾9cWJŽÕ(Ú43!ò¼3:~ËÍlý¿ZŽÙ˜­x­Õ4·áßËð¼- ÇÁ°îÀL­ »ð’\ ;³õúÞ¾´¦°k¶´4Å`­ÑSõÌZ;ÝÞiê2pÖÆ3´ÂO­?x#GsÖgªQ­ÍÚ¸Ó.àäÌåÁX; É9kå!ª–Ѻ¸{ð ùcù £þÕ)ða1=™ïì,|s•K·ʺˆr‡ñíÆ˜É…Œ·Òza£°{¼<Ëúƒš?8ž£·J¹þf1j<ƒêõU‘9°§»ùA U|uåa.^5ûÝu~›ßüm®5ûâ&¹CÀ+¿Úh^³M]=ß$™éTË•½`hµpŸ9ëÊŒ¿êˆÑѨ•žè¿[¨Ð¸E~¨*ÕŠà˜Ëv7Óa-ñï¸Gýo°’ÿø‰ÞÇñÃÒ^ïÇún¦ŸhÎñ|pŽ¿àžG¯o2w¹oƒѾN:L7Û ½9{@eŒp#Ö.¾‚X}Ì%U,{{«fkÌûAMç1¦måaÿ—«â{øÅÕ?W‡ü§®+úðV÷’o [TõEßhe ؃u1gmô¬íN­¡!À«$S•v¶öðªÇ$b/.•¯ÐbEz¸¿Æ3¨-S‡ú§3È,ÖÊnûLt0WòÙï;úžô宀=85:˜5_1¾½QH³›F£mIŒj+ÿe>N:ÕL^aœd<ÿŸL´ V6-À$²—êŒxP[­€6Z*__…é9^žþ¥0¾©"£´BIÎÿg%V¦e˜Ì“ÉœX$i9Vž+Ä'3b1 É´5SéÕJdÔTö`æ{®y1øÚfÓß>…ñ “±F[Hm³ÂN³Íy±f zímî¥ €XWûêc|ƃ礲V»^sžz-Ú43¯%p¥÷nŒý­È£³ºÚ‘h˜:·ÁT=™àZß¹–oé¿°iºxõ¶ ÌŧÔF_®Òë°VâX\­!ÖìtÜ÷9°ˆéxÎ)ÑnøÞDÖóªJŸªæ%ôÂ'4£°sgv4üjøÕÒÝeù‰îJw+8ë!·Ý/ñë‚?ÍF³3n°»Õ÷ôMÁg·Û¿"&zÊ6-k17¦cU©º³*ˆª²ŒV8ÖóÁ:ŒÑB}¨š°õoÁ.µQÎ?J4=8ì’ÝÑ`fÑÿ:ëîÆ|ùv˜Û矔÷e^ïtSýxð«ÉŒo?Çz^›Í}îïà àQ/ôèÓÑ*{\Š×ªÕ™üj,Fs*=eÐG÷áþÐ ÐS?E.xÕEÎøß]¾ïê×à;?¹bÿÒiu´îy؃ãü\ç½È§®Ð§FÔzºAâ¢g¬æ1iå´›±g”°^I?Ìå¥TJÃ\hŒg -2í–è]ã½:X®¥5rܾF»jšìôí|;âÂéL‰Ž¢¿«³ý©<¥½9wÕXò2\éSÚ`)TÕÔºÅi3Æ3.2•ç{å™±£kMcI‹¹æ“鯬‹%ÈÄÓVaV‰ÖìËgýMAL14Œ¿Ê¦ß*‰˜–‹zO ²T’°æiýWÿ«Ššãcñdw•bñ ©±¸ú¢`¨‡œÈ÷;P0™uÁ2bç’‰ü™ÇÏë‰hޤÇ"·ôUžÆcïŸC~¥íj´-mùlõ$6`Gâ¡ÖŒ(1_Ór=ƒ¹²x¥*_' ïÈ(Ú_]a!5Áцš°ÖJ`–g<ÃÒÊ”ñ9çbÎajÔÜ*‰1{ð0Vïx<…Z¬­äsÆŒæ³ÞlëÙŠöf›J-Óªæ6[Óè~òÖÏrš¾¬"3Ïn– ŒyH2 "¯Z=õM‘«Ì÷¶VD¨™¼•j6ã^šu·‡‘ÿ䯦`FkôŸj\.4çDõsÌcÁ§¶’Qe»yÒÈ4¦a5v•R³Ì޳ÇLÌÆ8ð¦‰XgMx&5 ëåP¨k眔3Kk´ñ¢ª :˜z¢Ýéo¯‰ê·×§žL–Ýl>À]—k£¿¸úîn·s±®©âëú/í0Õ›sñö-é™ýÄ`™‡U¢ÑëZ“f«÷ V}†)Øy›Šú²»àSð|}9ksÁ…U_ôìÁ–¬ò6&êÝ ·0hª™:.ÍOv‹W·˜nØo þ2Í&؃Ç|àÕ³rƒý4’=o‚SÍ•&ËÌ`>N1øÕIÖÊ:`V¶!¿Ê­Óx®ß¸­x¥z%ʯ2ÜMÁ8ôÍpæãüãÖƒ™|ŒÊ^=(•Í™_ V5ÁÜ~µÃÍ^½¼:br¯ð´¤7ìÁÞ¶7uÚ{1þª9s Vâ)Æáɪ³ÏÁYyž©õ%¿ ²\œQ¯áìçÕÁ_ßE|©?âÿãZQ¿ýUð+ÕCn+#Ÿ»lŸ¼ª…Yòoä à•ú-‡½þ`…lÍçî»7µêf¡'SW£ö¾ê_¥Ñ¾XÀza|ûQûVt,±e‚ìò­|{ž¶-²`ÞWÛ© ,j-6Å®°B5È}Ž8’ªMwR &™’I>’&a…ÁD®rõùT¥/]}ÚUˆ3äA©±P1¡]ðÔ%´ðrñN¨/šB¯S.¿™‹M”0v¾"3 ìÉññô¸‡Q 7åU‘AÿUgÓ¯?½µvE&³Ï;¯Âàö¦œiG¶Zþ#…æ?ìóhãigô锑æ}™J|è V¢Ö}2cã‘jô±«ÎÃÒÖ´çw§bÜÔûª6qÌàJ¦?ŸvÆ|ÖX&ãÛ?1÷š±Ç£¶¡-¶×3tžçF›g´eR¯ï^££Tb®³ë$Ÿ>ùD39ò’MbnãUæ؃)F{=ŒÝÃÜR{pÏÚka¯\ ¼êãWWš½V°<Ï—lS½4 V`R U[ÁöT~u«i€ç˜íà ¯3Šk&þlĬÎd…«Ó@ú%ı­hS†Ù€õ2ˆ¶QÜq0~Ö`†µê*tþ'Ú½`©-°®¯‹~ëÊÜ]nðª±)ó-ü×v,øÁxçí%™‡õòÆZãɺðp Æ«Ñ~ìÁ'ñ“qg媚ï<\¥;íÏʰã5çú9ìÑm˜O6üêJ·xu—tu‰þr·ÔÝ+÷™kÝ»ßül¶˜uq#Ü ?À·0gä´ýOį´ûeº‰^éù`)Úx£oWˆÖkìvõÔJäW Xß¹7¬í‡ñlµñÞÊàz—çn ¦€ÙŽð¯€Ñü{ð=ùÊO¿ºÑ?.‹úø¯«šŠk¶[çæùÇÝ«¦¡ì2÷»ˆS~Õ÷8dºÛ~èÑx],š®ŠfªÊ}ö`¦OŽäcÙ'Aô)«°ªM{†æ¢õ=™çÜŒñíµxr“E•wÍ‘ê-ÿ«G¯Y†šß·WöÙg£#o0C6ÃÞoº/K¤Y°4:vWž–‘edàY1Ê)ƒÌî=² Œ®¾÷«heñ>Éü™« “ÓgÈ%>T¢–T*?“Áüøð\±¢h½Ù˜½©5¼ Ém Û‹t/ažPX"›Ï›ë\2žòŒvO¦ÊŒ§·)ñ ê-+¢û¿úÎõÉ U°­„U£Ë±®tíÁžDæ'“yó`鳄u.Ê'vaÆ-¥¿%VÛ(õÍЛ_ÙT4Ù#ªB^É|G_ú9Ø[¤Qì»G:ÅF‘Ãô… Px•J{ð}°­FlKùV4Osæ²¾óÞyz<ÇŒ Nîà T½IÍ+hõ{§O¿Óõv²Mµ7POæZ0©ûme*Â^4ÉÓàWºÛšÝv•”Xí=|Þ¦Ýeæ›wl•H„qø‹0›-ì2UIê&Õsy8fY)l™ù`½ðÄ aY.¿*Æ*,0ÏÁÔ‚cM‚‰X¥­ÁyØyö¼ÑœÁx³ Oý!fs´k<0ý(÷÷žè•4³€Öú&ÌÐ,àÕT T[iJ…¦!TƪƒÿÕàiÓƒ’ {ðm<Í àÕw®;í¶c–V5E¾¡ÿÁNÀXá*Ø7dxd)¾ë0&K°*{±ÚaÜÆ°úù(ž> ¤šÂÓ£ý¢õ?‡È»Ò…ê’y@ªÁÝ—ðÄ-0SªËÜh’›éVípß.ÉOw+ÜÍr·¹Î­ò›ý¶àw³Þ,‰›æŽún¾1úåvûCÄGŸ±Í©/ºÀ¤¯”7æWÞDûR*ƒkUéî@óžäWñ»í¸ïNŒ×÷šož·këËÈ×.ÝûHm¬¨ëä¯È³ÀÆ<*RÜ&bªˆæGÂçb¾´Ä›‹ûÜFPã´z|_Îùêýø­®hõ·ÆÓz0rßÌ·¦?d™4 F/§¨¡ü†YŒ&Ï×…þvÕòl‹>̧G½3¾};f@ȶÒi‹¥ÆNÿ³èýN¦·º˜¢q\Õb2jó©=˜)aí¿îô±gÐK•Îh‚DÚ†•ˆ‹)¼f:q4‰ì­=_)1ÿUh=–‹Åƒ&ÑLˆáU¨\B͈ðÔ°US“i‡6§¯L5ªCscÔ%Œ/'¡BsŸ&•OÆ‹jÁB¬ª™ä9Í0ÇãZÊÿêb¥e›Ö¼þZØt•ÌçD¾{!Þ†5ßï‘¡æ#¹œš ½€>õñ¯Æ¾Ö”Ç€#ÍùÝàf­Lczçc=ÃgôõDŒn6ýê9؃[¯´wÛ)™Ëˆ™‡ls›mï´õ¶(r8ÆÁ]2€{ßEQ­B±x¥<8Ù̈¼`Ï ×šßlíA=kÞ üÜÀ¨¾.hM[ÌåA@Œê@ÁÕ`=З+ä’Ì5§ð^c)6Ï?ØDÓ„z}MLA0ßi#uÌT{¥= ¼ª ûrfáE´µW .uœ™zƒ€Ãq<;«εG2Í:콪Š_­¬LÿU5i@ÿ•æÞž“L» VuôÌàUw»Û‰QhijøFþàUG¹Òýl.JK𫦀óÎbu§ÂèÖÚk ¼Ü}óx:Fq"lÞnø3LÞf}g­Gÿ>Ó ì-εn¶¿ß½bêÉ5æ÷Wpžµk{¯úÛäW1 ÛXI¬®Ú}¢³€\çäFÑþÒ¸¬ï‚<çf óâ‹|oêÉüî ý>ê3`§qÏb˜âõ|îCð«Dï"u0H\ô¬íŒ^ÔæVàUmÜ¿¬y6Ʋ s7ªÊCÌÌÄnÔŒgºWªå °)å [e·}%:„'øÓe¹Ö:dm†åR/˜(a½‰e#•Ô/Õ\ðD.s¦7Ð7ƒØÒ,ã ž$—²Ì˜;ƒ<+#æGR[± ÿUø’˜¢ž"VSÆ·(UÄ•*ñ¤0Œ(`TźZ— D¬\úÌ’Éæ2©CO /“xG‰çZ÷ÔM‹ñ© XYÂJ„ú]ÕÕMb ­ÖUÌ¡syôZ3C­ÑÜXôjãÛ“‰‰±|¤°æÅ ¬åkÁô|¡-zv µà5þª*ã¯â™S`JÌ{ŒÈ¸ŸÙ/=ŒæÝ-íÍÓÀ,µõzÀ¨‡ñKb<ƒæ6c¼V-ð–ö¦>mÒ…¬ÆÐ›þ±©ªÏÓ½¨9 O‘ÎØ’Í»f41ó ]eKì ›@ÿU]sÜV%6~`î—'äfê_U1WÛ}RjÓ˜?85ò¸-Ǻ9ÌÛ¶^äoŽ“ž§%˜Õ%UÝ[‰(¿ªƒ¹Lån`X=¬¨Oå ðˆjª3cÞ~„]Ù}ž¶^½LI1{õýÂüÁÊôÚ'¯êPÿ*™þ+Uj ó É óÈÕ§V}ާ-…è“@~žR¦a.­ßħ(£xr¸ÚÒɤÆô¯Ö€O›Kä?b¥_ËxåZ­Ìó2Å(ºöÀ®Ó0V˾D>Ž4¥ç¬z¹§©ËëŒÁüV½Ç jŽ=µ<¯÷3gcÞë³6±˜‘d”{ìB[Ä|œ$ü¶ÌÜi=?øÐ<ˆ{ßʳ¿3üª¦e^¥™y¼H¹ô<ó´-‹üC|_R¸‘‰'èƒvÚ;ÈX -_ܬǸ÷W06ÍÀ% >±9FOëç€éü¼ùWÓ\o‡ÚûŒîÉf+fáKÔ ›ôÝ~UŠ^*÷1W§1fíZ­¡aÖà›ƒÈ¯´VûhŒ›ê“Öcü\?¬cg÷™wé¿ÚýÜÕs÷»=ªcJ|ÉNÇÊÜáþkYDð“éfhFÿUãÛG^Ó›ÊxÑ=ôn ÿëŒÙ§šlϲ2ßche æÙM¿šàÆ ©ÏPÉw“ÜmrÒìqWù…~KððjNÜdð«ÎàWä^û5ìÁS¶%s=gš4³s¤/®µˆWŠÕ´6¦×§š9©@Õ\Æ›Ýö< +Uë´Ä̸:8éʹ;ƒéÀ° °Ÿ¿Ú„§û ö`ZÜ-°Ÿ‘]¾¯_ ”oΘynµ[ä/¸gL9hpÖ=þ¨õ·šž¶Z¿=Q(€ÕðDóñ£©˜³P=U¸{GŒO-`ìÇAËddúøB`¢ªGÿî üÿ½ë€þzÐ=ç[ù±~9>ÿQäôÊ­"ßq1Ñ'­jmÕêß ›¼2v jøÛó¶..µå+äTYx§+z)†hM¨^@Lõí•›í›ÑaÄñ² ö`gÆ™¯’ºÁòèXú¸k_í¡‡I½V­©ª˜Q£ú6OÐ5ê}º\`®r¯j2ä *0â0‰Ü«Œk^k5Ôd\˜îÝq‡bZ‹ª³Þ“\;“g‘ÔLM¢×ª£ÝCÿ}.UX:ƒÜ)—Ñ Š.¡O$‰§¿=‰õ&ÂÜœtê0Çý¿þUmz±U«1ë\„ùÎŒ©ˆ“°>N~,o±BŒQ%2f#ƒšŠšý°"÷`ïÓöj¤¡Ö Ï3M¢éJä^=/x¥¸z½µŒIýþ§eªùDÆS'¬ÉTåwãÐöÇÁQ£TŸ¡£©E”ËÔsÆîr¿d˜!Dúc´ð¯eŒH yÒ‡^L~µ“éɰŕÓè áýÀÀ>°/¢*³þ`Ä rƒÖ@”¾.Í÷^Ý,·˜}nƒ?ì7™fUÜXw½ïå›»åûo$>z?ã¦Ë6ìe¨UÖÒmÄ«˜3¹¬±°ÿ¢Å꿪 ¼8„ýažMãáseCpÂå¹=ÁdŒCÿðêg·¿ý ö`FÜ~{Ý^ßöàl?xµÞÍñÀ¬.‡ÌÓîïàIª)^u†=¨žö^Yì©èýê¸Kࣞ1Ìij<ˆ¹Ý†w^!?U\6P¯‡ÜŠîçâ©­Ï÷×ø¿]/ô Xðj°_ŒÑ»ùÊ{{P³â‰< {°×Õ|+kªQB+ÐÎå)•ò«úèãÁôÞ¨ær<…âGæcÏ ÃØ&ÇìûÑIô·7ÒŸà][ ›·6ð¬Ì´ `ÎuÀ5ÖÛö~ð«VhíJàÐ[ô΂l„ÕKMÍsZ§k¶Ðp#8äÌͬwØ3–?X^z)ÁUwÊ#Ûxþ2 Ò-@”ªÏbÆ·«Ê³zÍç2C¡ãkãÓ—«9|óÐsˆ,›äFû*ìAWŸ$ëý߉«v½{©×§z¤ÿ`­Gn“‡– ¦­”‡Ïu"¿Ò¸ÄNXµ§Ñºd¢D&ùEX9•óòV{/%{S>T—×N¢Ÿª½SjäÑ’Î!£)æÙ_EâR>™V¨ ŸAK2¬À“N{3…>(Ç×åc–bÏâÊÅR‰ÁåÏPD” ³5¾=ô kV|>~§|¦ˆª¢ùünžV†}aõd õ™³ˆ^úDñ÷iÕPµg› —§`·ÈæÔ‘n&Átá7®Â Îåù`¢Ü+—ƒ#53ÊÎNJoƒÝŽzÈz†]RD,Å.Þ˜¹<ñèð©°ö‡úÛoÄlªÀóÄ€@amnµGUE^³—:Êæ3™<ö˜i«Ù]VÑîVðf[Í(þ|fN÷ž5ÄjsÈ^+ù–ñµfVäëXgy˶T£þÌà#uÌ^´Xk¦èá@ ˆÖõÜ‚¶inp 0ù™lncL` ó~ð¡Íþ6‚UQÏ´´Bgi€{õ¶gè¿J†}9 Q€×3ñô€WYÔëSýöy¬K¸õ7¡Ýª*VW¨B»æï5¦.mWÌñ{¯y 3ü¸ì‰^rÍÝ]n3VB‰)ö-üE;OwµK³ßHóÈà\yÓ +`†*Ã3ÖÇ(^Üy£7kp0¤Öße°þ´¢h%ü}šúWÊ;øVZ9üj‚›4ÁˆöpUüD7ËÝ-O˜Ýî´¿Ýo~6ÍÁ¸+Ý^àU{󸱟E ¢wÁ>êˆ{,ÅÜX€õü¾ MYææ;‡þvcúâ½þXw7Á Ü>GË)_¶wºŠîp0 }3Ù¿ìv\-ïÉ~±¯wÒ? ßɵ¾WV5É<¼Ú ¼º—þöíæ>÷[ð8ZÙ ¯úÒTËh%딕âª-°{(BOÇ;áéÚ3–s¡¼T¿Òª=wø_]5°UB‹øbÂÿäT ÿ1÷úü2¯™C—"¯þ±U€¿‡åçÈ9Ü+‡1íG0ÏŠÀŸ Ñë=™Ó„>Ò®@Ú!TÖ«Oeþžœÿjë¨èIÚ&¹Þ>@Œ'7úA¾5õT–K“àšè®Èº"f«„ñŠÙËË™?¨z*=`©Tb<“êy¿ë4 õ®’È´‰)ô}eQY×f±VcàUÔN,¥=—KU+ ˆE•cÞîdÆ—²~j˜3˜Ï†°žW6cR'Z‘üªñ1‰'qdU™ÔÜsäW¥Œi-O«Åzôj+å1G¹ˆ\®˜œÓͧ¾òÃF0$ÒÚÌâ§CÄ] t?ŒUlnƒõ0ŒúWŒy3iÀ+ÅÀUÀ«s‘è¨ñ{¤3saŽKóŠô¡žL°Š2ÌL儵ÀUªÇ4dÊ0нL±}%ðê&êĦaÍ=%ÙÌÇIÄ{#1Þ‡è›ë,?꩹Üq;ÞV´·X=¿8Ĺ&Ïð"ì¶[å£g´5Ì °«PÓ/ÃLŽÂÿg5Ë'A¶û›•µOûß]‘ﻯ‡|ïªûCþן>é>ðÍôlßþ2ò…«àËGjáõµ‰ž·±Î¾hW¶¯æO3Vž~£¯u_4¡zB-¤R<ÍÀ˜¿}‹ìµOD3§e²\í»ûvä.«¤^°0:‘‘õåw |¨ÏLÒ(ÕÐj*ŸÆò;`ß}#jR¥s]‡¹ƒYŒM O(•Q¢ñŒ/¢Îpq¬!ã’·Ð—Š º®‹ˆW•$T¹*Žåù¤0V³"‘+dX…±ÈÐ8ƺǓ9¥P­!!–?˜NVž6`!}áå%¬øZƒ×(û¶ã§ôÅ|•K{èåµk2©ÖÇÉ >W:¹Ó4ôÎaôv#»5f§=\àƒãŸú¯ L&Iûü4wïŽFÛ¨#ž’6äW½±ó7ŠéÉԥ݀Ȫwú© ¡¿]s¬&z0þlöõ±z^ǰ¢UYµbZËOæ13ŽØ{ƒbóííVqü(ìÓà<ÕpÕ·Í-rŸbœoëFÏgcV™µhã<´n+ÖödU˜BoÇLºETõm5xàsö™&x®—ƒ¿lESJ›~æ½è< Ci {°»½…>ÛDàß Ø1Zl¾ŒcÓ—õUMµxåÜ7%¨}£ËñƒˆW7š=n¥ÿÜ_žª$n”»žz}OË>ûW$9z+ó'Ê5æü[Þ³`†%˜)[Y+¨3u铌V™ì…VÝŒv @OœÅ U~uepÈÅ»;ƒ+ð^_Æ38¿ýø½Ÿ ¼zÚ?ˆ¹¶ÃôkRSÍ=f¢»ÚÍ¿z»á5æ÷Kð ª?îs ¿ÒÈ9=•_€®ŒñšËÒZjñ2ßYÏ£ç1ú§ ‘+o´ÆÀCþ—ë»ø¥…]©?ê¿uÚ_gÜK¾žc=ZõøUšFÔ×w½HôAÛ‡gÇýТò¦˜¹ëº'¬:7Çl]Œ±-o=jQyc8Y†Ö£U Ù…ý õ4×c±oë»ðÜk¡”S£}iã4‘¿a¿Ô§m—$œÊ óê€}°y…Æä|‚v¤ÒR £:3x2ú­™r‰;ÈÓ*±Ri9~Wã̳bqyšN 3‘šÅ´ 3‘M¬Ê!^…Q£Iô½W’Pq!<ý µ­ÂxúäXÌ•¾Náy_zì ’ø™š< Lb¬B{ÑŠŠñ¬õó·'‘ßK¨Ù^ç‡)±üž,Ú‰ÊyƳÞÄBbt#ŒõŒ»®ñ:Rö`C²^"¦¢y“ß8…Ù± \Gqü^én“¡F­ÓîXÁÕ±(FÕÀº¨iZÇâÛ¿õØ€VìlôþajÆ&«º?ñJÏ3ŽRSi÷†&òyÜŒ!÷;nûÛZÌL/«möØ\£u©?4wã^5ª ¦5 ¶I¡Õg«`æ€_ÅÓf\f>±­#šûœÄøöf>Ý xµžU’†Šª/lĊרä˜õÈåŒm¬x5øØ`…ÔÅ\ïj–ê÷ê;q›`f6À»íy}\kDÕœHõ¯î•rf¾Y{þ©{p fl;àHü~(îª9ÿ­ðWf.H¢ÝjÞÀœ¿C61ßù.·ŸªeJ}kÿŽ­:VîóÔÌÇÚû-P_µúÛûŠÖÖØÓ‘@°ûÐë£eªá¼‹þ“Qè{eSµ0&+yl;Ö™»<¸©nIÐ8×Õ9?Ç-r÷È f»ÛèûÇí^­^Ûêë[`”o´ßE¾‹œ°Í±Rß’+Œê××ÇÝkb$nÆÜj+Û¨§Ó ­kÐX³ÎÄ«­è“5°{çQ)pFpÔ¥¸ƒèÑÝ2Ú¿ ¼²°¿ž–ßüÿÓ?n¾Çñ+W¨/z5^©rmYcιÍìé{=ìÁX‰ó˜?¸žÕÒªQ—x4+ifÙyÌ忥蟃Ú.3±•œñ¿¹B­ioþîÊÏ çgñ4Íý4¯™ÛE>€=ø·Uïß~±Ñçl' ±žž{TUÇ|ž. 6_ ­Ý×µf¼¨¶I3Ü{­ŸºàÞƒ€–z>¸,õÉè âÃ$YlìDÓ©L‹ ïÒ †­èÃ0šª+fNužêNûí½dî/`ü+ðS ±*ΡÎKÚn \W5ø¿,Æ·‡¼Hc4k*›vZ«½UfÓ3z(kÜ$hT™I¦¾h"öÏÀ¯Þ¥ï »1>ߎ1™§Áœ^a´;ãõkê1WžÀzkAü,enugw›¢¸þÀ«^¾!øÕfûMäÛÈ­Vã gÈ,à•ú¯ÆbÖmdýÁèǸWÜ¿êÊÚfÀ§·áYw—5§P·¸Twª=7'‡>³vLëœj>Îg&I^&¿:‰™Úd:‰>ç0øÕ˦õ‡û™d©v(+,2gðífDÖ0¾½ߥÙm°ŠÓØäHzÛnÆ›U¹A-Öf欜áìáNÛˆzÈêÏ¿Lj‹­$ªUñšì1§Ìs¬Û•/Ç€W%ÌwN^½hD­ùUò±­I¤~û,¬æT¹ï‚¹^ý4ÑèÉœƒ½6ñíùÀ›Ìd9Æ•VE> ÎÛ  lS¬´‘Ò;˜µÙýØi;Øg¥0#&kÁsÞÀ9ÑÏŸn®ÞVâýß}ÆÈjæ;_ÝRQÖUZkúàéÃi«¨Oº6ö·æ„%¯T¥ø˜Ù~¥xµŸo u±ž?·CUgÁÏÌÈLœäØÙ °ûzbé=ù`*/ÀÖzSyO¥ñW½1#êåh…·é}Ðchc'°¬óÌÉÏ3s£âƸEÀ«¦·KöKÜ|ê3ìw#|ûغà7¹x5ÞÝàûûÖrÆ\kŽœ¨¾h{¼e›hN·Öó*ÄYp'þÛÈßkLã÷µ.M?ê5Ǭj}ÚMæß85šc5- öºw0ov™Qþm÷8l±åæó‘_æËÄÞöâ´ØîGøk`Ž‘ÓÀ«ëÜBàÕY¬®µrÚ] žFÿ5›û°t°‘:’×ðÆ®†ÑÌ‚‰ôÙÅÈÆ‰ÔñW‹ÍA¾s`imÌ)ÿ,à^µý~rEþ&Þ©¿é¸{Á7óÓ¼VR|?ò‘Ëð ­½¶ÝÄ¢÷ÚžŒ»ì‹ÞR‚§hm‘XMõð”dœ·UÌ‹X%iŒm·öá~l&5oW«fìÁ7©•ÙØ{°=è+Mƒ`h´}ÍZg'ëã(¶h½‰J´‰ò°r~äMZÞ= ß;îaÊø_Ö³ú¯ÂLšdF¢×äO$…Ñ¢Z›¦9c±r‰}1ra¾s¢Q.í¹ŠŒàL'CR›!;nÓ¥ÅóbÔ;åé¿ú'Û9‘ßóñè†,¶,ÆHŠ &TŸIÁ:m`ÂJ>ªë•¯ÂZ@ö˜ÍHˆlff§™PC>Ô¹I2¡Òj•¸òÄH³ ¸?±öš12cTžñ¢U%S:“Wƒ_eÊ;lõ)¬”[€Qª%q;øq3D‰»™4ê3„õqžÓ¨%ö±ºù èV›ùAÓ€J·`võCí¦<ÖÇ©ˆ]Ý­¸™˜Þļ*OH˜´Û–Ú{‹ÕÑØ†´ËÖµË_”x÷“Œ­&ئ–­@ßûüÈ¿l*ÿ~‘\° "–Z7sõîJVâ鋘2 »[5ÞêÃ^'÷`=óOÍerï+ȹàC؃š³<ô–JÁìûÖxÆ.àÕ¿$Ÿ¬}5öíYŒp[¬Õ‰hý^ÎípàŽƒ­¤õ$®Êf'btÚà´ëŠßOdC-ÖÇ©M½¾|»cÛ 'Áêè×Ô“Ù¤5°¥–oã?±“5›Ãm•iÆûAÞºüª/-TU˜®5>»ó öË4¬ý6øy ¢F›o0#•Ïü(fz€yÒ¼‰öêè‚èïÁD7/hœëî¼_åV¸£°ou—ùŸý Áß²@ÆÚºkÀCÚËis³ý=â£ÙÆäw×S¿½.ýW7¢ÇÅϫɯÚ`Uª—MÕNT‘ùFVóŸ4zgšgf·¸w$¸ üt"ðê؃«ÀSÿëçx{Æ?…]yµ鯆8E‘¹îZ7É?âþƒÙØ!ÇÜOÁ‹@€ÖZ_IzÚÌ6ïƒiVh‰Ö³À;çS™z c’wcdP¿ý› ‘« ͱòNù¿`ëuô+п\¿Õÿî:b=ê^…6˯A>Œ|éÒüïV•n0DNó1’#ðÄ@TU¹*‘òrÞû&òÌwfï¸êR›q õdÆa¦5®Ç ül´?YË3óÛ‰^šU¦g°::€vYcó;ÖR 1$›úí¹7«àÍèAOÁûš·i§$ÓV ãEi9UG!d0þ*‹(£ÙÒùqTSDÌf\B³§*S­ª<Æ+ ßͦ¨2£2Èë’y˜Bzã Ê““ôy•‰gã$£bÌßI‰+Ψ¿=ŸªúÕÆZI!fj½‰Ì¸2_!9b%Ú_¹´DSX©"3®œZŽ\+3ÞþŒÛjœ3ø‰fô··aÜf\œtâÏkÍE“"o1vý æ{'x•F¹†]øœiË8¨þàWšWž9ƒ¯˜FÔC.‡6^0½¤c²ûëVE6£qõz»Ø­Ø‹ólþ›M;ñCyNFr„nµMl}{/kßÜmJåZ`ˆúß•}`ŠÞ¡V•=v“©f³ùóüÈS6F;q•|n‹"¿ÒŽÇYÆš5™à‰WzǬÙfWƒìgœÁ ðÀ9rœ•9òmð©ÍeœÕ¼÷`t1Õ¦ÉJÛÍžÅÎi5»vÆëFkk/ŹÏÉ`Uá»1jûÔÇ9°ƒþöÙ Á꺯µjh!U¿ëa¿œ0Yv³||öàç®¶;ž3¯óµVÅ÷‰ülºFÖj}¼{>úÐ'x_¬ô‰ØŸ°s¦›#xÂx|³%ù•*æô¦ZVò©ç±g:²}{êdNŠþLuËE”nÿÓ“Ù!›Ýƒþ-]`ì`©ávú¾‰G.€_ýmµ¶Ðnã£G¬ÖûÓü„ýha >Q…õè¯d$]:0±±ùÏPk©cÔÿ¤óÜŸyšÇ³{3ðêµè@ÞƒM5›}{ß‘üb¥i{°7÷ycXüûˆWÉ´‡Ó®ÑK`fqZƒ_½ƒw¥óSLXm"™vQȨÒY!ŒgHb†CEfû©ÊUCªgWzR#K¿™kÂj¥Éôîç‘ë…È—WÊK#n„ú ŽÖ[!Q){[sS<­ÃDba9Z‰¡ÞBï/K˜e”D<ÔúƒÕÉmª3^«"?¯Š6UL¨ÛœAö‹óÃTÞX* ¼º +\c êÐKÖ ¬‹.OºðókÍ·`O/±ÝáܾÂôð:dZÈW¦1cú0ž¡b ó´)d}õ½_CiÂq›‚qÞk:ÓVÝ•ªÒ3®ßÞkj³Ãš3X¥S‰­Ûlm›oï´Ê)ïÄ»Ûlòº×åfð¼Y;µ€xUD¬J2;òª-O­æùÀ«ÂHLôþw&ðÊËå» XE«™©2k¸*þ<+Zs´Ö¯&‰ÞtiüÕÙàO›'Tß¾LÎDÑcp›¶²Îö´g¤¾+À«Eô·7ÂZÅúƒª4‰ú¢ ˜» 'sª\ÕY£Mñ Í9S~U¬j¥˜5½¬jo—³øí¿WŸ‚_vÏ¡EÙRÏ7õŸÙµÀ«IîKùÚt‹¨æoYðÖeF‘«-ÏÙ1ÌCÿ†uª5¬ZÕFï^b7šŽTÊ›ÜÐxÑXÇ Ì´è¥`¬›”šãÀCÕo_펙{ä »Ëoð‚¨$-c³Üõ¾—/–#f‹ý-’=¼ê¼X-åe2z0ëízœa5Ðâ«êïh?Î_XÛN&Ä–¸'ý_Gn3ØòÑ?#ÛæØ'sÌòïçaÕm3¢ ­Í.Ì©jÉ©‡ë+ô Ÿþö»1 3qJרc|zgpµ+ën TɰÝöß»›Í9óø•ÄŽûÇpÜègøE°gÈCÀ«}`Zº3õ]rÂýœîŽ^ì—¡v z6 c^ÀxQõ‡kÜfj`LÀ‡µß øZ3þePñWÍÍ=¾Œ//ÁSÊøÚ~—ÿƒñíº÷|k?ݯÅçߊ|ã²ýŸV5Ín0"glWê3 Å8Ã:Ý0}ñöÖ¬Ò©w·˜þÜ©µpRÔÅou—×ÇŒ@«Ô²ÚbNÙrÁpbË$3¶g{ZE«Ì„`WtsmêcήǷ“wÔû1œ$=9LM¨ ë6ê^¦ÒO•ÏõK"-åÉŠêѺҨÍbAYr™æ¬åœN΢cÖ–( ŠLzÜ­D?X yNeÆŽ¦3ò+Ÿ]©ô·«Žq¨ÅW&ƒP6®'S ¿‹g ˜+T†^¥bÖõjT/"Ô­NÿU>EóóùœP¢\ÜÊMëÌ(cSÑ@ UŒ]XNš˜°† fvâÏã°žžîk¯1ú³ÍPê·_kêÉuf‚ht{sÖDo~¾v¼ú uÜVb‡L“bÞ“¶ Þ×R½Ð˜Œgìì˜1Kz46ÛåzF<Î6³eŸÕy?4ùÌV¢^è9ùèsDôÞ žL–“¶®Õ9ûÎ,¶³#]EG²,´ý#¯ñìÙ ÄM‘ Uú¼ø<ÿoÄ*©3Àû¡·WãÛ=aj}@Ip¯ÚÑxõåf´¼&шy³³Í<|Ÿ¾…©‰4½Ü Äʦ½°Ê,“UØ»¥æ*ìÖF²™Š¸íÑû¾˜0§Þ¨Q£}€x%ö„¼cT‡jeôGׄñW#a…¶‚%f"ƒ2=Ü"2(2 ï=ý1Mc—XsaõâÔ5ˆô"x£æ;‚…ß‘5Ò¾Æÿk`ÿ䣗—¡ŸO¢Ýj•Õ^ýÌpKƒzšêÊù©n±;b;Á*ZÆn þ”-rkì2w›ïçÛÈÓf£Mˆþ9mUupž™%•dwo΂cµnfs;ZUHOÁo ñÿšà^·âÍ×ÀœCUõ…Á —êŽÀ\k†øÿPOf3Z÷·ŸíSb3¾}ƒîop›ü,9%3Ý7Οq¯Hms½¼J~5cßÝÜ&í(¼mðJó©ZÐΞG•VZ˜„³ v,> ›ÿuPÙ•½!~¾.lΕ@Tïóýuþ×UÕ¢Ýàñ%f°H Ú¢Uì%9 ôm 5ýy–,wVñN´Hïý†a‡Æ`+ÖÃó×`/W–Ýfµê²6Ÿjn° OM°¥@$û¼‡?ÿÛ\ýÖÕqº§€5ÅRVÑ%غÍFwµ€³EÖa>¢Ë¥@ÂvhO{¼a"=a€™ÇY/µ þ|N€^اMÌ_x’ª1¨=8ßx Ö; ¾™ºñnjÐ;z ã¯f¸æyÙ ëëˆß\r7ðêïï«É~s¦D+Dß`<Ãd³‚ö r˜\ôñv¼a$ÆRíAÍÇéb>Äûó1Æ5p¦­–nCïfb•æ˜íÁ—ëîÁˆn3Cý ŒÝ€±ÿØoõ™±OýS½}~°ßèÖú©ò¤,w›Üÿ¤{ öà.9å.O•¨ÊŽô¶C°GhöNU¿¨‰Q|ÒšUÓ0FÏ¡mª/Z+ü󠨥¯:™‡‘5ÁR¿½¢ßéÿtê|Èýâ[úQ^•&>¿*öADÕn5#Á¬Ä 7Q qaÖUK_£ô4Guªù§ îãú¬£Ó‹;¾„þ«Yä?`UŸ‰ e5×õ½}'ÞÆ-3‚ÝÑ!D”àW·¡'ê뮄Ý0Š^’ŠØù‹a©T¢ç©N¢Ï™5™N¬ªÈ(ŠtÚHaôgyfrGiüxÿ“¿Ü~seKßÞ¼å3š¡’ kDW"^%ÆãE³¸3ˆ[ÕÉ»<ë;WŠß ªÚh ½HžÑ`&)®U̘Ê‘¦#–N ÏeÎ_­IÍQOekÿ©—šÉûÄ Æ %˜°öDó•ûMÀŠÚj¦Ó“Ö"®ŸŸL½¾î¢ZKŠ9LU)’oø÷÷`gÌ2­Eã*Ž›±¢QÚ†ž8]šþÄ·bØe¤±º¼¬ƒtå{gceí1#‰‡#a½ý¼RÞAÌØUª½bT¯/fÊ,¢éa{£Í¶û­ž·ß^´™¿|Nî²¾Ê{ÀŠ’¹hŠ,+CÊÌHH5úÿ7ÈyÛ/’.ê«_…O7—mƒ.Xaj‘.®Ô¤Å¶˜3­\…? ,ç?hÑdªË܉•Ø »ç<>§ô*›SØOÝÀr>Þh=ºñÑ 7À Zƒ/´“˜èfº;Í+²ÓóøMÁϲ xuŸ;ê»ûr¿¹Û~ù"r¿Õ½ñ8 eÖˆzþ¶i‡,ÅÚÚ3Ñ‹ù80··¡-×A)„Ý¿ÚÌǺê_ý_þà;þ _öà)`Ý>ßÉ_Áø«ûe¡» xuŸ{Uêà}Êý<‚5;”z2moô~µ 6Ò/ÁL·ÃڪβíðÖÛð÷sß÷~îÀÒÚ˜;`æû^« }ïjøц©è{sßÁ¯CO>мïr}BD5dn2—"0^´TX߹沕­ôÆ´<žßÓ<@ ä4f ·Æ9“‰ý[ËŒ»žO{i‹Ùa_ä®b´²ccz–›zÁ5ÑñäÌïX¡µ‰WzÖ})ÇXªNXmÐlî~æ²ê&}ãåø§òdcÿÔ¨)!¢¥UŒgÔd0:,ÔOÎ'ãÏ&Rï·Fêi|f¨‘œbÈä'’ȯ4RJ™™g$EíAýFè3 cDÓh»yâU]îõrdgõã•ÌxÑVxwUzèkÑ×_…ȗúYq ™°E9Žh}bjU¶mÇœgñbãuÕׯõq¾ÀM¥>Ã;¦®üJþv ó²õ˃_M#Y#Ú«°$ÛPÛJ5äÏšêÒ–¶a#ÒGêñç1ç=Ì MÇ{cò§Hÿ¤Æ·«~”~·Ô|"ïÊDÆÀí·mw{ó÷˜|¹œGGî‚@‹?ÕR,º‘_Msv’ÀA"Eñx†Kvjä7ŽøR£Vë*¼©VèxÛt´B«\SÿNj®ÌÉ5U 6U†Ü¼gs`«ÛXòW5CZÙ¿d¿h|îohµæãSŸaÍòîAÀ+/˱¸–º[›±ZU¦)•=‡Òo¥ÊÊ‹zšækY+gðç=faôcàÕun4z}oÙáøÌd÷°½ˆþ+¿ZŽõA{ZcF³úù`Ô ÑœóZ}âfü¾'~woÎgtóø©/øÆwè‰îÁAQq£ÝØ ¥¹KôÝdw/ìÁín—¿•ù8ÛäºØwðª¾ÃŒôU½ú3ñÝÜ`Aô²xNÜhsMb@6ær#´¯:›/èwJA«§ƒ‘v¤×*vcè!Je†_bÜ•‚v„•ä³±ÞÔFÉ o© ï³È˺ñöXѨc¼rãq9TM4¡¾h%“WÚfZýÆóó!ÿI ¢&Л•L¯|Z<þªY_9ÞLÖÖ·Y[Ó;ê·g2 'F6›öfŒÞöPo&¬s‘L¼ÕçÌÁ ߈ÿê¹ÐRµxÛ‘ˆ™©"?r&’pv½ôú‘ã°Lêvð+mß]f4vøzÖKígrE£øÂúƒ`Ÿ¶dJLD†É´ZmjãrS1‹ï`fºÒë kJïÒôF 9ÐèS¹Œìï”õ`X7ÛJŒo¯$‹a£UÆw?–­Xýç…ùÜRö`Uæ&˲ÈßÀ4¡5ò»]¼R¼˜¼ —ŠõÔg}¬º‘À¢†àkñ/lSõo˜qrœšº9òLð¾-­5?Y­Yð«@œT™iSí!ªw¿ÍÚ…ŸbÛ°þàMŒ¿ªÆü²2²Æ¨-¹}ªìZŽo·Å¨´¥>C}œþ ©ñ]„Q{ ø|•<¿}ÑÌŒ¾ãj¯®U—8ëß·cðÄ.ö`‡ˆj[ Fy:Vx_<³7ž<žzÑ£#À« ñxÑÍŒg˜Ë¥örúw Vi'`â7D’æÀ+Õë›”šC¦‹«ìºî¬è]î‚ÿÐ_ÄlK[ánô]} ŒËûaäÈmV£¹Wšå’€9ª–T;?„~·^5¢]¨±ßïâ]yT߇]Ú›õçâ·ùfIp·+ç³qê f|ûyw9Fó ¿ÀûØiÿ0NºM~”ßèÆù ò€LuëÝtÿ€{ xµ x%îiÌU{ôî&éöY9ãzµéÀñêÿžJßî(ŒÖ3`Z ¹Fê\Püª1öý1ÿ³Ëš±øÎÕ÷»ü7N󭎹}?¯Âçϯ2üV#Ow‰ž¶ß®ú¢^ªUŽÆJ]¥ŒX\sãGÌ[*q¢Þ2Œž˜º˜¡è{ ã¯vÛG¢Céš´nî[s¯2%Á èÚ`ÍpŽk½‰$æÌµÅz ëÑWÁÿÂ(uÕ¿Z *ãq{0‹q©áÍ^}Y‰ÌyIeV˜ÏWÿ½ÆÇ7'vUà­['æãhœ©V¨ÏýÑÛ¸°žW*cÔ3âÏN'» íAOTB\!q”žx•DÅRýD™}B<¢´æ*Ý„ùAmþgï•0R,›ŒMó„ ãx•Ev˜H,­À[Ê Æ‚ŽÀzÛ†Hýj‰£X• mù®u@–bù!Ž-c´v’(úÞkúÀR˜Gß{à[#Æ‹*^ÇÞnF°ßí éךïîÃi“Êüg‘>¬Ýx(²§Šö¹™1ö!Æ·§šc`Wö€ÕqÚËj“­L}ÑÏ€ëÌ9Q[¹ŽF~1Õ-³!aF"ÕDû¹L¾¶"ñD˜ö4^Öòþ¶;V‡*oöǺ.ëXpë|`æ}U“$_^ÎÚZæû÷”.úL[`'-¶Év·4ÀœM2Ÿ`ìbíMæß1Öü²ÃÀ”Uôø*^ʬÖîXyõ¨•ЇúC%øVüÛÛŽÆèåÍ|]¬®hzdÀ À¯1îr®Yì{ø¦Œï^i#£ƒè'i–¦ñí ôó4¿Ê'V.ž!Òd¢÷3ÿ=ˆ!q=™jáe„J05MX1§UC=«,ŽRX¡>›·1ùôáW£–K>ùQ%ꋆu3©ÐW>n¦Q]/‰ÑRiŒo/÷¥Ðò,K–”ÊÌŸàþödúáSx‚‡ßͦµj<– ÔePkRÿVxMdôjJü~0ƒ6d:nµ´+0…ŒmæºyT} ADºÒ.]ƒ5”/ßÓ£vvÃÓET!þ°i$™%¢OêFИ9˜1Ú€Ùq½¾"óƒi×§ßÉø+Õð9m~WÓ²`(k±îsÏPÖ—É<3ÛÙ¶Š½ƒñ¢û˜ï\…z2ïËÕ8Oße­çàÕ·¦˜õ+ÈœH,¢5t’ÌlùÐŽ^i<ÌB¬¦r9F¾½›·ÎÁþVÝý-`SeqøÕxú¯j™ty3xËÖªN8Bú`wõÄHÕ’½6ÉÞø¬¨Ü‚sü®ÎÅÀ¿íÀ¯ `аK`¤ pÆoÄIP@}†>Ø%õñîƒ:´VÚ2§+Þ^Ñ®—³è÷sfðª–;æ¶á)ÙR àC«ÑË\MùÔtލÖq9Q…Ý Ø£]p:®Æ›‹™ï¬:½ÏUE×Ú³ÑÇÞøÓgÔiÒœ‹£¼}ÿ7,ÄÎôÌŠ:ð«™A#sÜôvÎ/vkÜ>³Kö¸Z¾0¶9pö6ð«–n›ïä;È0ƒ·"6zÐÖc¶í’!S©zU„¶b¤þZZºªÉÐ «dõ¡a¯oÄŒ_gNb4ÞzypìÁ}`¬[Ì8ÿ²û—¿èÖ˜ÍO~“/{Æßoj‹jBl«š Û{:ìÁÙþ~÷FýV9â.Ïc¯·Ã³÷Èp«Jíñs!Z¡ Óu0"-ÍhV"¼ £õfEã[+S¯/Ï¢Qw§ýoàW½ýB`€ø<؃ÿu]€ 'ÜK¾©ëWbu¾ù˜öƒ-Æ®ßj~ˆœ¶]°ƒÔ‹~›±R3Zc®ÈQŠþ&bN`Câo3©.¦1ýéco‚Ö fkdÀs§={Poóf™5ÀÆ6xŠÞ¿×&ƒ_éÞ.¥þU1mœÐ¬Èˆ§ª˜íw‰MiŒ½ç~˜+rŸ4î芴pÐÖêM)Òäa|2é‰Na¾s>o•·t¢n»ò´@ÇÊü[ÍéËåß–g–M}li|GRÜóV“ïÃ*:©ÌŒ‘‰å#©ï½}xeyãW€¾eÒ×” Nü_½‰ bSYúÔ+1W1Ɔ¶¾<VyòýSoXç»°‡Õº-ÒÚ™˜oµ5ß¹ëã$` ªÀ+mÅ|v#“>÷©!/™¥´¿z. 5k™4I—ñ»Â/M©”ÒŸDµà¡d…kýVšr½=8ã•_)3­mêÙ“2ŽÖó!»ÇV¿Ɍo¯-;ajÿ?­ôþ&ãB‹%%ò=ñª¬É’É©K½¾…rƉüÌ~­•ÍŒÉiÏŠš^„÷]þtZ£3±Þ>7“E-›z°? Þ³µ©‡< (68˜€5Ò ïà{§¥.WÕvÖsPß»ænBÏ21úƒÁ:5ž¡ãx F¶:ðj.vo3Æþ©~CÖdmCýý^æ!“o¯c½Ô{ÍåÑŸ\Æ_õ7¿úÚÎÂ-r­ä;3$² -/‹±\ÉüÁnxÃj<¯ž3ùÞ¥ûH$—þö"§l7FTÆ8k½TͤIÏw)V€jÂL†õÙƒ~Ÿ†ø›ú˜7õjk4±Úoº†¯3Ûí㌿JÁ§ùÖ¾=½éKMË`v´+¹R#œ„7¢ýIÜ£¥Ì˜ sjæ˜WèGפy8çz©2èuO‰s­ò¼³KáçRy+˜DSMÞ¦Wê½*ðç>qWõ†óè© k+çÐ’K"*…Œ§¼ õáõ¶ÐÅùUŒŠ aխĸžL&#Pcô·×"êňšÅ¼-La^sKZ~åèßNgEúÜ*ij ¨1Vÿ)O_v±3§ò«°}]ŒºV"Ö½ßÐDD¤=¿»Þ$€ÿ¿I,: ‹çrØIü¹©¼lF‰2BU³SXmi5¨“†|sMì™nX%IŒ¿ Dʳ¦ŸyvÓzÛöb—mƒ}Êøö‹òö‚ÚŒûìBX„÷POf?Po·Mõ-¾/k€¡g˜S(Õ#¿ã4ó@õ¯ÊEJDço¡|lF.R›LõW&ÁF«4î„Þ ÅjQmñB¼y:Z¤u¶V˜oÌL9ʪËUäÃà[(ZÛw¦™(÷F§ÑΪ/[l>д*pLäàÔ;ßb¬Ùñ@¯£ÌtU½Ü´¯=ÙÜ(f=úÞ¬@ПíÇzàêõ­ÅxÑ“&×n¿j‚^=O~õ8ð­Xšøfþ+»Ÿ™æ¦ãì˜Y†}PÍú°µ¦Õ•èI-z˜‡âý¯á,郵0 Ø¡xÖÜVÕc4vùY0±°"Ρ%ª»27uÜ؃÷ƒ_Eü0·üê¸ÜáûOý¶à'Y!ƒb£ÜßÓÉSævûW$)ú­Çú8WÉŸfÖÈ<ý&ô¸ýZ>åâ}š“*zóÔ¿ˆ1+ìàŠÞ® öº4·?˜„Ý;Ë¿âô¿¸Å@³¯üFð«—ý#æmsµí7ºþ2¹öà5n„ÄÅ)qƒœp—‚ñ$e»¤‡ÈH”¾XÍWᨎ±Xseæ°ßwŠz}+©ê÷UPË%ˆ²Ü‡ðÎ<ßxÕÁ¨RÃnÿ£ÓŠÑ§X/õ2ÚýFä¼+ïÿ¶j)ÝbþŠÜcµGÊd÷¯j³ŒÀjZ g:v×]¬ïœÔ;iœôfvÒXY™ÏR³ò¢¼*óhçÞml‘=du„ö€Ë턦vòÛÀžÍæ)Q6\GªF¾^)¦åÊŒÈß¶:s¢ÈWvxä+úÿæ“GÁ¬ˆÕ–÷ƒ³Y‡¡6è5æzTˆý­YÎûAà˜¼|o«Qÿjº&ÿŽÎÅ8µ7emfŸÃi»ì<åS­HïQ6™O.•*02 «D¦Ñ2ËŠ¨ÌÓÖÇ +w%`uVanL™ÿ“ïf?§Å¿ë^…–^ óq\\ɸ ŽWi|zXß9çsÇG÷aýíe™”ÁüÁòT½É£×)™¢aõÁ°ŽX¾ «O ÅZÚ ~©¾îú˜Õ£Pƒ=Y²¥ùØZpÔù”ÖêÆ$ôÇ34ÄÉÛžÝ]͘ ¸^Vò`–¥Þéw°Kˆ±“±†îÃgÔîôVZ&¹Ó(0»èkjf~—GeÑôN;ØæÙÃV5‚N˜rÀVõǽ+ë4wGU—ÂÈO¦ÈRWGÆD¾³Õß>]>´="?Ò®Ÿ2x¥1“ÑçE°Ló™/9IõŸèoÿÖL‘“E0#y?øÚ–`‡¨ÖÛ©Lε3Íd®m`ƒ-¬õ&îÆ>øÌhí‰y8w`4r¯°H¿œœ5·ŠlbnY;z{jâÔmdTS©)þ_ŒÕÿ°Éc{ ëú³>úkä¹íêezÇ*sšäj®AdŽÞ×J[ðÅh¿Æ -Ãû¯F›Ž€C©JKkü|~7íúŽQÐz†>s¾#í#Öé« {ðç`´›4^õ¿ºÌ-rGÍQ¹ÙmÇþÝ{pµ´ŽmÇŸúNò/³ÇþI‹ÞeØ—kq–)³‰QÜbnÇnêÊz©Õð[­­ø7N¥Šüù6´±Zõ$,îRÌê²àˆ·5˜^6È¿ „øøüìÁÕ>+¶Åßo~3›ýð«é°—Yî&؃ºsàWÛäQ|÷9VêêkvËP{öÆ\âÕzàF¬¶õà$ã˜Q>œÑ"»±»5Þ}‘ùx•"ªôò¨ÿÙå§â9¯Œþþ—ñ ¹³¾½_â—c|Þ^åùX¤&ž¹Óøèi«ž@­tP=jB Ç*ÖZí±¶ç°ÞDoîízÔ|íÁs¿ÖœÆ_)æ¬3[ìÉè(ÞÓÍ0k}ß‚vÛJ36¸>:–ÖRsó»ÙE»ú˜Û0DqF³›Þ':%a-Í¿êA?tŸ–÷õ$Åñ¡,-ÁÖª×ZÊÕMR<«°e\å%¬oXDªÆä22"™þͼ¸•™Áø«4Ö.ÌŠ[Ÿj½i\hŒž¬„8•#z•§¯>´«“›”eûjáDɤm™…Ó<3®ß^ƒ>übZq)9î¿Ê‰{ùËQ«š°ž—Ö²¼k)…‘¯ZG´5?£v´¥¾h9Øš ù\îöÒÓ‹<ç é*•h;›ö¢ç|ïÿ¿jM¶XÌz^%Å XI‡#š†õü¬ù «\3šîĪþ•ö¥Ôü%géoO0wÙN¶ØÞaµÝ{€L[ÀÔ?ÿ.ì­íæMQvY"¹‘/Lõ¸~û„È·À+õ-–/ìäÈo&¬Å³Þ¬‘¥˜õÔNÃʚɌÔ¬Ä%`|ª#0×¼ {ðëÑW’ç‚/ÀåŠñ‰)¦­ãÌDò«Y¶¶=%]ð„rr+ñMVC™‡Õw#wm-ŒŸê_­µ^í2¢ZTð'Í)+ŽÔãç0ï¯/vT–=!/aÕ¿b®ˆ~ëê»{ÜSª£$µ} ÿ²½ ã5ßý&?™6 *+mð¾Õ¹Žøg%ëÑ—ï'ò~p“$݉¢¹íIhÅÞæãͳ£IàWcõˆ÷tÉàW—»{Íír Õm~u ¶¦¬-ÀŸzùÙgöÛo"™Ñ»m àäLXÛaë`>+ãœ9ˆý0<]õÛP_ôü›‹“©»#wù·YI¼Zfü•f¾õ¸§€Wë°¿ñó|Bìÿ©&7ø‘þZ·ÂÏÄɵÀmf½‰W¤š¹U¹ßÁ¯{šëeÐ<—,GãÛ›c­©=Ø=U;d2ZúήÀª°ÝÏu\9ÑØ¨GÀ¯²ýp¯5¡/¹~§ÿÜ©þËa÷F‘úMxÖÙÈ7®’¿dsñÝÝ&}ÚvÁHÖ~Ün.aTflà <7ä+K±Â34¦²þéÎúƒêß…±YEγÎÜb¿Ò;»¹f=,íRfÏ-2]ƒ«`'*ö4 ^ŸÖóJ‰ãU!w{UÌç_¼‘J£×ì5àUŸƉ&ðÉÜۉ̯IÁ¼'“ye24‹ø–Çxš°f}ž™O /‰ùÍ9¼ LjSá<—èø$ú”2˜'I4Jc¤iY"MR<žÁµB†#ë*ˆ×ZU5‡Úø'ƒÊe…Ù*&ÔÇKa¾bâs¨Ó#§Êæ³Rè«×ÈÓŠŒ5íŠõ¶»RcÂK°&0{SëpJYØøöjS\ëùÏ!ìÈ{`ª­}¯i#ã¬ÕyéFP—xCŒ€m)^ÕéŒU¢q_£Xíª5ÛÑŒöGæX¥£kXoB9j p¥É(âùA»ÒÖ²÷Xå¶{MÙdóèçÿP®Â¸ :_UÅE¾5uY¾’Œˆ|e‹É¯¦Ê›¶äKÎæ|Ìï|ÑÉ)Xà Yår8æ¤>x×HغC0CKͰ!cŽ› À«¯€ª•4ˆXl 5Öp5Yd+ÛY'AnÇX½O=ìe°o7wS-´W°FŠž…àWs¨*VŸ§Ùe¬WYȬ³úXsŠWwË+øüIsUô¼k莸õØRâ›ûsvÐt‰»(Qi™ \O^-ÀúïÑÿ‚§Ôj„Å¥˜Ö³Ú†ß ¢|ÏœE½Í~ˆÖÏ=ö²{³Ÿà7»¹àWÊb·ÞÍ¿z Ìh¿Üï./a6;)¶Ë ;’ñíªê»oV-òeÄÓºèó@ê!ïa|\mœ(Ÿ¥.S4ƒó`džïâ—`%|ëŠü^ÿ­ëEÿÕ;óÙ°UOæ<8˜ê·WF޼`ÃØJÕ¿ŠHžR€ÕÞmiÌ~zieùDCV’À}Ö ßˆS;iXê¿¢½È2æ™+|;ߊX· öàŽèPzw`_€“Ö3a=åd°)Ì—bþKÿ‘ê·O5ïà}¡êUU”‰¨ß¹Š)¿LŠ×”ÑüšÐóæ¶$ŠTd¬{ŒX˜3X~ò<Æf3:óŸJ;«•ÈŸB5Ót"lr«ÞG†¸#ªÆ#JC~•ÏÇQ{0í©À˜ô|¢i1ýk¡þ•úت™ÿ¯ßžH¤HdœGz´ËaÞׯ&Ç©?eBÜUפI¢´#g[½œŽ^ï Žb–ncRßÞa Ñóf5óqzšú¢õRÔOU ¶U¶´1¡×XrMéËt9³ÖÿzÞœÇzÉ@ŸïÀ,m†EU‘üê+yS&±_‡Á®òí^›Çx†r›-½OW»À²ÂûÁìÈMM«‘þ•edäKð+µãçÈG¶oä"σ…Ø¿“åJêF·úö~ ¦fî]Xç'±¶ °Þ>';€Ÿê—Þ¿*­j:Î4—ÚÁDì½æ@äyô_ivþ%ØcÌX ÍpÞk=ãôQ3J–0›z#P6W6cmªÚ_}Þõ£ÿª–â2VcwàHŠ=$g0ö§Ì•Ñï€W÷:­-—+ °žß³kÐÖ î’|oúF6à)šÓ¹è®þaõöŽÄSj‹&àQ¼>Žô¦š\TZñ4ϼ„½=ìÁ¯¸^KÍøèŸÁ87üêÓÍåû)nª;nn‘½î ÿ°¿&¸$cell˜» R±Ô‡mŠÿcvU­BõÆ -OaÚS¯o­ù*hè´†S;sx•ë‡øÕhÙ×®|ò §úÒ÷»—}S?ß_ îôøU†ÿͪïYëÑÿ üª-xµ÷ë0ÿm Výlf%âµq2÷¥ÝWsÝ™q;eð¤±hßrb f³}$Ú—ÖÕl³'A'úÈ—šÁÁÑAŒ1j ¥xUžñ›Í0Ÿùñ¨©qx~X¯¹=Æò¬È bZ*=@‰ñȆ<îØT¢PM“÷ Õ$SJ£í¥y`Uâ¹<½x˜Në¬q*™±a½ÔPת€L'…þ´T~:™Ñ ©ŒÅˆÅ3üÒ“Æ3è]££?—ö©¢iíÁ,úî²Ñƒ4jG”c¶s+ù•E *ð» Œ¤È# µá3Ý OœŠõv'N¤dæãL'¿ ãr3a¶!»Êü;ä[ZÈǰî2Ó~Ð4”›E´ {šFq»¶áìíæìM‘ùÒtÂü*RNGß]¤=À<Ó¿û¯5(4¶Rï›ïåU™HŽwÐŽ°uì![žw‘me ðJÕïϳÜa^%ª)%‘ÏM j5T–a‘¯WzæÌ’wí@0/Í!˜Ël™,ffAr“±@]­¦²ÛÌ2ƒóhþÙçà`w³æxuy3øØ6õÏ4ƒ¤S0 3Û ïøÞ³R‡ÖòõÀŠsx†fÅL‡5»‡¼[ó5ÊÈÔ_¸¬«–l`¼CsúÛëã|¨GŪFÌ#ìÞQÆÞ)/ã·ÇhVwGWÃMŽ4ÂÞy×.ÅÈÎsëäÖ£olb°³Q¿«k…ŒÄh7Ã>†ÓãàÕ$Ìß ¿ª»ÆØkõ¥·b­DbOq£§ð™éT ó}Ô ­ÎHÍ Ìé ØU³Ux2s¨÷tªb“nĺ˩·ð%±ë¬Ì=f T`,V=àÕ\)Ç|œ†RÊø«Fû7“'Mh¿«=Ø[ªb꿺ÛteŸº`-}ÉÚZ««£Ù‚ÿêk=ó–< ~¥vèAÛÎÖ‡=¨þĦ¥ì„¦,ñ¹Öl7¯ˆæìKÍÈgÄ+ ¹ '¿Ò¹›#¯Û!‘OLXÏk™!sð®ÑX­ªœ; gcSŒ÷µ°Ùnf-Âeh§ÖKU{°üêkÛRbD.3—I£`8¾ÓÖïC¶®}\ª2^t9Pèmæ.c÷hð¯I—Ӫ˛ðl¿Z†þµÃµÇór½¨¼ÖÇé~UÞî“W_O˜ÕÑ/]‰{ȪU’º¾Ôl5÷y¶; ÌÀÈ €U¾‚ú6êùBßýüó0ýWcÏ ù8ª@“î<³r4;³ó,ÎÃrê˜}ÔuU¥&~7ëÑ^iýÁ*~ÿ¯Sà#àWÍüX¿Ø÷AäXg4’‡ùÝfþˆŽ^©´5=YÞ?õR‹0.¡Fh&#ÖòjO3s¨2½`Ùd­IôeeQo&V¦²ÊêDºòø]@$Åi­Ï¤·Hú›Z@¨liGNµÆ¼`*¯ôÝ÷±²@'Éäý`s9 dÐ÷ö‚=¨7`‰Ìwþ|¬ycNôRDž9‘÷ƒýècïŠÿS3€Ñj{±“Ö3ÞRãßã2w%÷­jØ#V±þ˜i-÷Ø"Ñ^¼ k ø•¢uu©9gª[µ+Êàȯ¼L¿:g›DΓ7ÎÆ^-+¬5,(ìÇjÃÛ€Wwð~P5ÄR¯¯Ž)‘wƒOm#؃uqJO‘!Áh¬ýv¦»ÍF‡}tf,¬=ýW}€ŒS€Nº—«³žÁYÔöÑyföÕ03¢³Ýèx¾óŸ`1“ܽæìvmüÏ~M±«dt¬¹Ûì»ûŽò4ðÊD“¢wÙFÔg¹F’d6z1«m3Î 7Ò*ŸÕX¶ 0§ýWM1«ãð©жEŒxÛÜì’À¯F›Í$؃/¯t}÷k|bì”?eþk4¾]£ÚÇÉ“2öà4ÿëne}œgðþ&ŒÃø«0^ôr¢aæãhýÛ|ô¿Fwþ«õ&V˜/ƒ&®PÔ‹rÀ‹¯æúUhí.¼쮵 Ýû¾¶Ÿíµ6ذ+ø¿­F í2Aô1ÛÓ¤2rd/zW ¨_£=ØYs—ŽT„#´ë2§°÷`œ`}©‡œ„‘ºÅ>Ljñyf>ìÁ.ŒÆ\n&ë£ý‰o-ÌEŒYzš•M d–žzsFÁ¦O'ê´g=…QΦwèU™°fjVÜ?­üªˆªWŠ?µ˜uz°ê2?«<ï[Äóò4*“ùzÖW¡—[ÏbtWy*"‡^ðX0ÅVãÇò¤wäC|Fñx–|h;RŸ¡ÖÒvð«%øf ìÖu@ƒéF•Hª¡«`G©¿ö °½ò ó+ƒ_}këÀÔÜ“I’ 륅*„ÊͶ…}Q”§{Ù‰þ¼‡¹mÇø«Ýh¡jŒ•\V–Ò«¡1ûÕä:œÁÃ1’Mñî"Æ·Õ`´fìô†…VÎÞ/ï3ß~Õüj#Ц²4c}œ øyŽ› |™œ DïRWyŸ˜¯axV3ìœQØ-OÃRZ…2ýí‡]<ƒrY³é œñݨ/Úž ~ó£ßsÜ$؃'M—âW¸¥À«Çä7ØÇb‚K²ZÚÆÖ¹Ý°ÛÊ3æf› ¢§l#jÔÝ€öLÄHMÁ³5’£*ÖÑNôHãEÕ7‘Þø¹¯böªÖ›xP]¬Ëëƒý®Œ»3˜4Ÿâ_sÏùŸÝ•æ9sÁ_å]ìyüâ:pŸ­n¦Ÿ*O_ír=îÞ3Ú.¸õÄõÄ>¾U†ÚñÃYÅú¯4®m£ö‘£c0{›[Ñ¢ÉäÏßí\¦ÔÇy|xUÙ÷s° ­/ô»ýE׃üê¬oà§ûùÀ‹À¯2½DŠñ†[‹>c[S^ãÛ“¤˜•̆ãÍ‹˜šŠ^Ân¾´²ŠYç²ý6õy–¬0¡nÀ-öÑè@îí9f5F¶ãW˜™Á†hr&Œg¨gBÝ•NäWÊ‘j`¤K*ùM+s=f¶« +ÇdŽîebX }+Uã9€ÙŒˆ +~U¤Z2½Péhy#*’¨ £qúyU]Ï5éq5«BÞJ¦0â*‹ßM2QbT¸ÿª,µ|<'‰þ¼°þ`ûZž–euÚta}gµ½ ÙÇBjÄ—aœX:ï)Èò*s<‰³ 9vô5Ñ\-wœõ¼ò¤oîß^õ7³Ü-ÿ>‘©årÒöíì”.Ô†D_Ø4ŒàÌTö8;LﻦãÌéW¿ýzªœö ´]óq´ÞÄp7/hƒ³¥‹+ãç»+Yoâv·ËÄ6œ ub׺U°ÛÊ“æ.‰V>B=äiæZùk¦6þ­Öp?f¼;z[Šm‡qí‹©'³ T¯o1þ¼oYÆŠ‚{]¦»—ù8ƒ`>Fý«3æ{¿ 8ù„?i.™ ~š_íùIr xuƒ›Îú85Ìn9ê~ ^Å^oG=™>V•ù&SãüjÆ3TÆ[JÁâõNtfæQœ#-_u±¾ §ÖÑÌUÿ—Ëó#ür¬B¼ºÝÿ¼joŽ»O0æ‹üb|þ}æã˜H]ŒÖc£'mGîû!˜ç2À«¾ØiC¨ ^Êz©zOx«J™NX¹;Ì»Ñx†A]ÿ×õŸ‹6ª¦7Ûlô£};FáÔ FûÓš˜ßÐæ0ZJùÏH¼'ÆÝÂ|N¯R2ÖÑÌgú²+›ÊñÎ1TS#ôwżÑK¡žUž +—fcgW"º¨•£x•KUD?Uè¯Äh†¬8£Ê'ïKäý£F`eÒã…â•¢”29Gí­¤ÿiȤ`½W&"$2§˜ŸòŒ*®Àº‡å©nªž~å6¹TdNç󲈸‰&ÌäVë1ƒ­œ¸ s®XV£<‰j‰Z—6Uòp–+nk-Ñ ò•Q Ï»0ëL/ÖqØgšÉià•¶¦³* ` Sâú ™À+ms1lÃ&ÔoOÀ³/Þµ'ËëÅ»õ¼%½›*/7Åñês؃ӈiÇí [`Ye‚‡z;l%©‚žœ¿Úa>d=¯:’yÍÔ´Šÿ…Òö`žè˜#oÛî‘ ô.âN—eêíÅHiE‚!XEª®wvø)Æ_͇u:SNRC)W¾ >±WZÝ®­œ‰ÎE»ãù+l¾}Iò6Á.ЪJÅÔ*™ÂøvÍÑ„gfÊjfÑ]£Ïr=öâU}ús†S·¬N<ß¹ ösìÁ7°N4W¯šºÇv²É‘Rß¿j§`lƺ³rÑô¿j^§·C«YÁBã^‡Ñ/0 -8LÿÕU<“ÃxÑ9áAÔlÌaÔ†æ;dºQKýW#Ýl؃Oš®.ÍOukÝA³W¶º›a^ü-Û%'¶ÊÝæ{ø–òæÂFs¢GWðkäo V5 f-œûÑ£®èe+Æ_)w|ŽšT}Ð×ÛÑã^hÏÃŒŒÊ2«‚㮼;Lìã_'¿ZeÞd¼èEÿ‚?jòåpŸõn®¥‘Ãn››å»÷ÁvwË!÷sðâÏàÕ`«•çõ.¤«¸5µ^—`žÆóDPÅý§1ã­è[šo~ J™ÓÌ<ásUü0? «Vóoó?¸ÎÀÀcîu_êgy­ìz.òíÁÌÓ-æRäqÛ†ù C1¿1©Žwj­œN8­Ò©1¦RŸ!J­ÑBeªx¢º?jSl2Ûì‹Ñ´e¦›°H›¯–™^Á’èPò¥V\Y%q½‚v½<2ŒÊxËyj%¤á§9àå}xÇV­IŠßfðy ä0‰qÿUyjȤr‡+šÖ£˜žöZý;Ÿ¨†æ¶ÑöL$¯`Rã™0yŒn«jU$›K‰û­jòÿ1zÙ3"M2±Rÿ6c”I/•¢›ê½… 1¹d¤!&*Ñ®¬Èhú°vEEFþ‡ù8i¼3H%wkË/Öžö¶Îà¡Xmjs64V*¯)WQ*Ê'燰S®=¨üê 0ä 3TÔþí ¦1Ntæà¼ ~ÕÜ„zÈ_˜R©ËqžD_Y)v×9ìåQ{˜a¶Ç„zûÈc2žã{Àæ_Ým•§ÝcêË5¶2ã(>‘]øü»Ô…(‘ð*›5 ³e`ä'[…üjœ¼k[G¾£§o8ÀØh±†Z¡¿}ÑOÍ®d4æóQü9׬A;§Ê=Àûš@Þ‚ °;¥f¡¯Fñ_¬¼2íy èÛÔü‰Mƒ=XȳÀ¨ZæÝŒÜÜI–õŒîReó4àÕ8£Õ¢š«†EÁºxZ)Ʀ Æ#Ûîb>΃fMôk؃Ýzà˜€oê_²ÓqfOs'åG3*²P¹¯tÀžÜÆè"þlj&à½GÍëøÿj¼g¬¹öÈó#F;—þˆ‡1öý€WƒoTÄžýüJýí˜.ÉqkÜQs“ìvÓüG~E±K¥Rl…»Åwõ­1Ë÷Û‹‘Äèý¶9Z>Û¬’ò¢žíAxömØÁo´OÍÃøª÷& ~¥>øúX[WaÔ×Ã]€ßT6+ƒ}.êf`N†_=á/¹+G©Ïð’mÞ ¼Zíæ_=$3ÜF7ÁsoI éƒî÷à9ع=€ ×ÊX«QtùT‚3´ Æ¿*æ±sÙk0.Xóq:3þj‰ù9hàÊðNèQð«?ÈÏÄ~ýÃ5ò;ýWN½GÝßüjÖÀ¹Èg.Ûÿ|®‚“ôïÈc¶ïSTÑ;¬G_Ügs©;1^´ P·'NÌq'jªCõ¹fÐ:ºÚ\eŸ¿ÒÏ9f­ï~¥6ÜbÓ6˜ ~¥ë¿¹ùì¸$ Ð ý¬L ­Þû>½]Zg3N„þ&=Z‰¨P×®Jœ“äÒûæ;Wd¦y:=ñ9œ…03›õ³èïªÊ¼¿ñXÆK±Sk3Þ†qX¥ïm€5^“µ¦JŒ"^M¬åÌw¾¶vSóй.ú½+uºÇôÖOšøŽ°5vtŠ{PŒtŒ¬Tí Øès±ò{à½Ý03è¥5œê˜y x5mžŠþj ¥™Ì³Ì:ßÙw¤=·Àô–E‡OZ˜?̬ îëÎøÝŠŒF*Ð Õqf¤y£/±Î”z›rˆY‰ô+¥’…1Ÿª×§ê–9ÄŸÐŽÓÜâÆdL9ŒËÒüÝòÀjôwU!ªÊÑ0&3ŸÊ][‰OÉàM V *OßU‚ ëL‡jÈ DšmÃ*Ô‡I k(V¥q>+k0ŒŽO`ËråšÈ|œªDTúÛÓù»‰ìaxÓ¨ºëWbåÌ .a¬÷᪣IÿU²T•nñûÁ€]¿Ð¢<Èx†¾¢qÇDÏ`—+öv6À¨Óª‰’¤mábà@+©Áïcl|GVs6Þc·TÖˆÛ¦pÐËæcyA†³ÅwÛ°¿RëølOÕ¬Íe“¹Þ<.z+[,É‘7±çÇ+HßÈ»¶ºè8O–m“È·¼[]Š]3^fc¬b2 €îýEDǨNÏD`c Œ jÌTe¾svMcZ,ý¨Ï >'­ ÖË<`2ìò½WG¿=xÌ=ƒöU–ƾ½Ánc=ú7äOÓxÕÁ¤0^t#õN{ TaSU·Æ¯žeDP+£±M]ðU>­ç³Æ¸w­Þ³ýêoÿËdƒ_)R–`6=/±§F†ìÇ;Öžñ·é¿JÇü ÆÎÛC”Uýö‡XÏ«¼¹É³•ìq[xÕD2ß9öà>|úYÑ»ÝBI¼~ÅêjÒ/ò¥-¡¾èlùÀÖŠ|I~µÌl^­Äךò«j×x)ÖÞL´HëÄ_\¡¹}Åòdð1ðª1vÞÓF2ƒqXõ-`ñ‚=ø¨ó<Œôf¤ÖÛ,ì¾#&‡QÈ÷¯.ÇÙSxu£É‘-X­c±wjâÝu¨Ò[„ÿ6åß^°Xòía¹€ñ>f¶E?uuÝ ÖÇ)”ú¾•ÛÎÚæ>“ßLïÈ*êÉhÎê3\ +dö¦zl¦›{™ï<x2èÙÏ€s£?Ö jHÞÏ ./•Û²çK¢Â´¢þU–Ÿä–_—½n¥¿Ío ~•¥²<6ÌÝ ~ÕT0ÏØ#å¢çlmzÏ×Iy`r-¼­xu£ ñ š W†UÔÆÄDñJ±ó: ÛpüÆý˜…&X™k‚;]‚;ÌÂèŒñïP¯o ØÂç~ ìÁÝþ SN¶a'ov³ýer—L^M÷çÜkR xuÆý(^©úĵ°' /‹ÑÏêX¹M0Â5Í2zó”_¦&äÍ̶S¼ú2(=¨Š§aƒæûKü2œ¯ÿ¸¿ö`ÌÎ}îyœ“À»j™o"_ºÊ>)ÁØÝH~Æ·Å$hKÞ­he8­µ¡©lÞ^dE¥Ø›í¨ßž„ÑÃ|µ¨¶šö$ø•Fkª>CsßšübilŽŽ!÷hm~Åù]J?Oöâ`F$é]XwØûÙŒš*Ãz{„vJã2éaÏ'ÏÈŠGc©"z5z’”aÕf”xí¬ÔaÈ$tclh16zyIäfUxWF]å2x÷˜Íw&§ÂªÌa–s¿ë‰:aÞNŒZÈŠb‰ŒT/Fo²É¿ò¨É\…6—æO0£(‘ê …äTá{“ø¦dZ‚Ù3ÕT[‹];›½©E]óÖäEZG¾ö ö}-Ø|.Nø4âÕ UW’,æ>kü•æãh%ÚLѳDUp ÍgX±Mù¶šæ}S ;\ï´ŠË1j¼«>ÃŒ?"þ>´â:òWùHÎÉHzo± Y^O‰¦–ÜcKEû÷ž\cv›Wèo¯~õ¶Éáý`®ôŠ|c«°vÏTyÛG¾áŒ-Æ)?û+¨¤ÖA¬³KYGv¢9êTËÌ[À«kPMž¾²5у¦XÝ¥üª5p¡©t·MÁ¯Š°'Dnê¡oûõ¿kÀ2T#c¼9 ¼Z€×Fë¡€'mÆ;´ŽX}êõõ ŠAMÖwnB=™<{½¼‚ç_0«¢Ÿ¸Rw‹{k½PúFþu{5Z7ÞýO¼ÌŒ¨†f‚èþÛªùåø»=©Ë¼ã±À«'`owcµ'UüÓœE+e¬AY€§>G{!Ú<#*n8ëy¥òpàÕíæz؃Wø«üêàoé![À¯n^Çï±?D2¢wÙÔ“Y.N4þsÖØ èC}æÜhþ êætÀÚ釷hn÷ó@sÍl‹U·6¸Á%»ÃÁ å§þ<õ+aÉ~îû”Øþiœt»€W›Ü?VÎÊ|w¥›èÏ‚_Õ2·Éq÷mð*l°&xævm/e¼hôïr¬œjØ—Ë1OcŒÚkZµþ9¬“6ŒÉºÜ|¯Ô*?éŸ Þ¨zÈQ_Ýâý`{sÆ= ¼Zà×à,y/ò0í7[¨5©M4úªíÁì¶‘X§NŠ륵·§â½ZS]£5‹û¯êã÷›áÙºï‚í BßQ6™ýö|ôÚ9 Íx߯wa|ÂlÓ*¸6:ü¡-ðêÖÇQïv[j§&QOf¶y2®ŽPF/õ۳㑠Iq&”Ï Nd4fUÞ»¥Ð’È{âÕw™O¶¥>í~ÿ—m£‘èùô_¥2çßzÊ©D“DZƒYŒÅRüÏPœ*´‡4s€A•©õLð™­ ª»2}ìLÅêonJe¨-¶ŠæÖüˆsvzPŸ_‚=s-F¥VîtsÂ*¼§XÝaS_ëmdïùµþs=¬½"ô¿'tp$Ùî¿j ËpCô3WÇu›±Âóa6ðïð~pœû§Å€Èt BL:`µ®Dº`Å.¡¿ž? ¨q³·ߟbvQ_tlèu©Âú]°¿ã6p5úW0ÈÍ´–MwW üj»Ëf¾óy¿9H@«†Ç6Àì~õœ9 ~•}ùƒK€W©ÌwÖxQÍw®‡§*Ã)ŠÖEßÎcf+‚éÕçý`_ìÔDZ£«cÝm Ž»w0˜‚ßS{ð ÿÛþ“_åóbïùGL™ìñCýz7Í–dÛéfѬö÷¸û)x‰\¦·Ù-£¬ò»ÁÄÆÔÍ+¢¯j"sCUÿêaÌRj(,3ßµ\˜~Sð«ß]øÕ"`Ôß®Ôßê¿qÝñõ)÷†o {pz ùƒ¹ÞFªaß¼zÔ¶çýàHœÒ"51—¥8+Æï3aª2å 8›iLµ½cÒø«~8±ôÎk›¹Þ¾Fö°Ð,ñe¾+óqšaÁîè@bW+cäÆ-ÔCn…ÑËcd§*à~K›NõúÖàtëL\ÊfsŠ + fR¯4•ÜLã*19/®zœÊ|œFq¯R ók1R¨´^•Þ#µ +dz SÈ~2ée΢¢C¨-ãˆW%Œ-ÏÜœ 2Ïçæ¯ÊÓ‹ŸIö£ñê×Ì ÑzYäª=•ÅøÙÆ3TfüUybZFf$sx‹©~9UÊ»3¬‘³ê]ÑÊž¡>C†T•.FÕh¶ÂŠÈ—ŸØõ·ïåý`yp¥–ò¼YÌüÁ¾æªV« XÅ|a¢ñüAÅ«ÊR“m¸û鿏^_{¬Ñ±«4î&œ"»ÀP”5“þ•ël›moc,赦•쵕E32¿”møÿwâõ³#LÆhåHßÈG¶:ï'È[¶$òíÍfvÞ¤ê³ðnÍÑz˜­<`-8áRØ™•yö^ð pOUf`ÿ´4/¯‘©)ómmð+Õ†y §î8íÖöàüµxNuf3i² èVÏ­[¡•Z›Òžïkž2Uí>yÿÿ˜ÙýÜ5‡=x΄iæ;ø—ìjì‰1®‚ýÓ”ET›ÜJ[ Ï**Âë=ùHô£öæ¼ëyÞ{vb<ƒê7 6^TŸ¡ O«ˆŽß­ÞÆL¿ä&íqR÷vü\Ø]wšÛå”KŠ}è×Àl#bËÜu~°¯*gÌíöÛHfô¬mÁ|¼y’¼j «&–¹ª²^j±j™Q…÷wyó«1›ÑÚÞøG°ßb7­nsQw(ÐJIÃü‡îq,òÕX/_¯*Ä^ògLk¹ÆOð«Ý?Iî‘Ùnðê4ó¡u?¯±ÞÐ@sðjq©vóŒM1ñª)æ¬ú8Hu?zÝÙhüçóø•ÚíÌ}°A«¢_ËѲ\Mê·wÃìh¾sO?ÞoÅì½ùõò©Y.úœÕŠƒZ¯íEùŠæ®÷Ö4f Ñ|ü÷<ö†ZC𯷧¢Ïp^- ut…ÙfŸ‹Ž Ì4}gß:SsM‹`p¬"ïåÜ„µÖÕj…Vd¬T1Nž×ÈV´6úŒgO¢T:wP‚ ³‘ÓÈ_4þ<—¸jéåÓ;•IÅ…V‰ cDóX•¶b%ÞÍåSUbŒhFÜ;–gªaiŒyϤeèZhU.ÎáÂ(‡°¾Nz¼^j1ãíËÑ^¬‹ÝÆ€i=¯BbcŒºùñ¸¯ŠÔÂM'ÒeÆy_"=ya} õMWßKMÙžÖJ›Œ­¹‹õ1n¹Ò‘¼H¹G¶üÃß>JW?ÑHØ;M;œ¼+XŸ´N꘣dæ}ÿkEü,‚REZóNSU¤a¯(çh>6Ÿ`Ì•wÞ‚ÿîÀÊÒ,í&À¡#2œ=Ûo»ÙjvŸÕvï‡5v(îKÿöàó¡è¸HÕÈ[¦²ÕùÉ’K"3Ê3çʶZä{Æ‘,À³‡ËêFwa…¾)XwÕ0>[±ãŽ3¾} Z3CŽk´¨I^=»R}PSMméLG¯Û+M´©ö)ô³)öÿŒÕËÌ„\ŠçíE/²°†U᫜, êðfô6ïÕL”VØ-±Ž‡0?¾þmD¼zÆdÚ«©õ‡Ù ¼ªá3ß9]ù&þ]»#5ÙeØ¿LˈVPÖ|œ%¬‘Õ -Òøö†¬¢2¨ñ΃‰ÀÏÉગ9hÙŽ+#,j1~ç œ<ñÌ”hÄõ¤ÿêVÓÙ¥ù nŽ»ÛìÍ®|ì ¿.øC~1ýcÓÜaßËW—C˜‹ÿDTª!Þ:üª¢ŒÁèÌœ]ƒ^ÖÄN=€þT§nNsÌír­¼ˆÑ}–Z)f`Np«KpûƒÉZGöàþo·Þ\4ùõ>)vÞßgjÈ6ò«Ëüt9#³Üf·ÈßïÞÀlÜ"÷:ãΚ¢÷WÊ;¸Ô=ÚLýöxSÓ¸öÆ$ŒÁcè]KØ‚ªwýaàªõ÷3‡ðÎjÀ«Å ÍÌÙí¿ve@†{À-Û¯6/^^eû­î ½æÇÈ ¶Ç`½üI•4mè‹óN3R€95S€x¥ú¢­1új÷iÎR´X㤶™#öÞVÐp¾oO ¸Ütáû•_ô Þ× žûRF,N¤.Ô`T÷lo0ì›”Æè«\¾)þëPó3¬òUĪ8i¬´™G»1‹çq“GžÎäRj[Õ$‡Q…ãLz¯*’˥ő"ŒÙL#sÊâ{<ïcÄ¢r&¬¿ªXamˆ4"W:ã"Òh1f°Fpcœr1:•دòÔ» õ±ZH{P‘²ÀdÄmÛ°®bXo¢ÖÛ¬¦u{a¶aöO),º¨´ç»6˜ßqÞOFövºê3è˜ÜmšÉãf–("v7?1s,ñ ßšiͶÕÔ”:´D•_í£†L"VÕ{æK¬…›ñ“¼Ôz©_È9KL½ÞöŸ9jÕ:ÞoÉÕ6_ô®ôm¹sÿ¦è‰RWr"¯›4«œ6Qº‚_Pwt¸¼ ¼ú‘'Î*Ø€Ãe Æ}æ5NçQ‘IUÑ¥æX|1ùÕd9IÖZ"¯€_‹VŸŽ>v¿êÂxÑQ6ÞFoZšŸóS°Ï ±^gcÕîÁÎPOëXsÄ$‹ÆF¶ÎߌßÙó}uì:Rõ²«¾6Õú”‰êkøqþrŒ`à«ú»ý®ð.wÞ7ô—Âlc>Š|éò½‰(gÛcþŒõi¨ÖO?ê dÐ|*ž'8ìð}}7îÊå¦upMôRò®fÀ«k1nÄœNØwû0¦)ŒoйnËû€zÀ«,Ö”×zôÿÃyÿÚ¶÷à3{MQÙQS*¯˜ÙŒwê FU'^/µŸO’ÆlC1NôR©Æï«zÀAª›¥bßÂ*Âè]õqlÁ,e“_½+·Ë82Ѷ‹­lY=9Žšæ²ÅV¢öÂû²ßl4ÏS§½¶Tмfr­ž0YÒ3ò1ðJO’©rÞVލ¾zRXŸAfâëØ¿ ðÖ<ƒëÃ&ÑûAzÔz‹äÆ ,A.mvH]ìùÑÒ P]©N8ùWXoï½­¶r%Öî[ÔêX ”Ú…™Ï‹Ã&AQy£Ù;Z}dÙ?¨þöX‘Uy‡V^êÇÀ¯n·ÁŠn7ó¢ß¸:î Û†ÖU•2ߨ¿gǃAMu—ã´Y‚a¥ PjÌ{9FaµÄS‡Á}«{.˜Ýxü¼;£Ý"Ò•^ xÏ<œF¯º ÍuÍx؃SÝÄ ™yÀôråü7ÃÝcn“ëÜxŸ»:øŸ,—Á±în›ª4ÉSæû{¤\ôAÛšú¥ %Uf«aæöã«.Æ´ë /^4oQcÎ4p0΢GÁµjßêàWÑÝ{ð:3Ú_pùÜVÍ%õ€Wü£æo³ïD{üT9-óu ö`±Ù{ð·àU<©=Þw‹ ¶¹®H²uªJayª>C-ÌèPŒÖ˜Nôw-2Ÿù.W ýGhjÝ®^æ—åù?‰W§Ý'à<½ýzÌÍG‘ÿº ‰ÔÄ3}Þöã 7 ç’ÖÇiÞ £°«¬,'ºÀzOªãÒ-Bÿ‰f”öÁO5o÷s}€þ+µù®àWêc^b:›£ƒãÑ稯6ŽexG¨™ Áߌ+}vÚ=ÈÚy!OJ'„9Ï¡»‡Ü¬"#õªð]ETy ãÛ+Qi4“Q9Ô)L¦+›1¨©lÃ`ò«±äŸ Y9¦%yT)*AZÓw§Úæò yá)¬Ö[LÑ»¼c¦¡¼ËK±e Î…@ƒTÞ êç›ÒV ¨Ô8®‡¬^ ;a‹ègú™7°w†òT¸+k+Ö»zÝš› rJ&ÓÚN6×ÞÎX…c¦l·9¬?ø¡lÇiýŠè8HiäSoïùÜfŠFÌ”—mV俜™xzÑ@š­²­˜l& µÕ°2âï`ŒÚvÆ3c$guùoð+ìÁÆŒÄì)õƒ‰Xå-L‘ÌG{Nqµþ„›j^Ũ¶Äù8O¹c\q‡)/‹Æh­ÅO<ìÁÅT©‹ïÔÕç¾mÆúF}Á¯Rííò:ÞzÞ,~êJÝ1÷€êÔJ]ßÁdWà7Ú¹:ö Æ3´Ä(wÀ~] NX†Ÿ\†Ù(¢ŠÄ ð$­71oš¨ŠŠ8;†áÌéÄ*WÕT‹ð›ZÏ«%+[þôs‚8:cÏ^æ&ÀÜ/G\¥Ø«~m`l[›îvù~¾Tî1·Úï#&zÒ6ÃHÜhHyúÛ§ãïÕØÏš§r=+«>C{Ìl/F#6³R…¢-°•fa]d›MÀ«t·;ÐøÒ þ5wÜf#ÖÈE¿ÌgÁ}3ºÓ÷ðëÜL?Q•Ån'øÕÃî})4›å!÷Oð,•´úš=ÒÛj=±ÁTÓz©µðg!Z1‘ú ª®þ(ÎÂô1-5o…®ª¨^ß-À§`¢Ö£ÿÎùëІÞè×I؃€WË1>Z>ÅŒÝo"ÑûlúˆGcžÂ)\‹ù8=Ñ–¦¬¸5ÿx¥öE=jBãm˜ÖKoßnöÙçW)5ÃLóݽjvi}ç.Á¦xÝœVÀë¸Ï5¦#ΞÞ­W*¾G¼J5ªˆ­õqòˆ|9qU©t¢KEzÅ“^;YùL YX}ÛZ7 ‡¤ eÌðKçgs‰ÊµªÆ½øÉôàgÒÌ g+—~0õ·gÇëy…ùƒÙñx†ƥŕŠÙ–°¢j-Zn©ô­µ¢Õ™H=Ï|æe*Úå²Ò@}Ýâ±`IqO¨FšÊJTX'³Ô ³Üˆ¸ÖØT’ÿ±½Æ·’&Ÿ¿poö½1¸ÇÔ’Ìê·÷4ßa¥ô ûÓ›’iÍv™M;ÆŽ¦P ð&Æ_%a}€=?ˆž¼ÛñÖõ8!•kµ5ßÊÖwÖøöѶ†½ÕæÑöl.»m–(oý@öCÏ uP¥NäESŪÏ1KÊ"ïÛŠ¢¶í2¹`kFþa_–kýRY‹1Ú„1»³=‘º.µ°öa·@ŸW›ÿš9r?ãEëË×Á÷¶TJx£ØGªãpú¶@ŸÖÙVö.`f]0—%øÙ«<‹æ£7W›CÌÌŸ„ÕæD=&íÌxsº¬Ã¿=±›ãßò«:´åàýÝqN:{üª1l¨ÅÑ÷]‰»Ï]…çU–V¾)ìÁ‘zŠ»`‰ÌÖüš } v„ê¶G?ša\çÁ|ºûq¬2`f™åH/ÖÇ©Œõ­‘YO`fÚc-41C¢?Ýxê!÷p?ÕMswšƒrÐÝçßf=ú†29v™Ûé;ûVr‡9lƒè_‘Ûm<å(Ψr2˜<»uÖD ì&µbªñÞ¬;PQ³Wz`,oÆù0ú¢ ‰g;‚»aêýà~3üê9ÿ»[kÞ5ŸûÙ>)ö ìÁ Ù›LUú&Ë9Y ¼š ¼º õ̹×}œG/ëa,÷K;oV]¯"¬‡&a\™úæ¨l£ý} ³[†ùÖ|œ7ƒæ®6@ð«Ÿ\ôk>¡LKãºaïžvïú~¬Ÿß?òµ+ï}D3½‰õqjb6nÇU«¸ˆ9œ‹"` ð°5N¼°žWÌswÌ¡ò«f8UzaÍ)ë¹ÂÜbߎó¨©fY\9M«³¢½¸ÃÛceí§þ•Æt2#-‘É Ó«­x5ͼƺ0©ñ8ø4b]ã”Âú¢ŠW¥ñ›Ã*Œ͈Ç„u–3èêËŸ¤3¾=ä9ºg © Í³>¬Bñ¯ÿ*~­D"S6ãEÃø«bCyÖq•CýíUã«Z]µÖÿOO¦ã$RˆW¡žL9ÆÅ«§"ŒÚÏ¥'+ÌÝÎdŒEzÈ4?w?Ö’Æ­6bæw+ÚnMKI”¶ç `Ùò1íñ;©VÒúWiçÍdQþS¾TJ›Ú¯.šlúÛ•ï½eÚJ){£ÖËQÞ¦b?]4?›¡|ïÍFõavq$Úš{FÆÓ&?l×Ùšö¨Õy¿Ót•S°õÔ‚Mö™UàWê«&E‘ °‹‹¤}ä à•úêÈ3¶0òûz9þ”óTÀzêÈú裩Œ™ä݄ݦ1.ËWÓänŒX3p›Ÿƒ¯ð®–…™°$§³Þw7‘•6ËI–@‹×¨P£‘ê¿Rÿ†Z¼ØX“ñí«Àp¶Kb婯¿_©ŽLU<¹óËï39@À·ñéCfcô{WÓ=êU]0iç[ûìNàûB×O¾2}#k07åDë½l2]©Ï0‹õ¢ëaU6À™E+h$N…îØ%=Í÷è›Öw®hž£ÿùó™*ícÅΉþÌuó‚Næ´éæý6·ÌÝfî•ãn©oÛü#›e\l‰»<¤†¼`ŽX‰–ž°µöàË(аâM"]’ 5hÊÅë;'°Ò`"1ª^ó$²¤Ì;®@(‹Û]ÿÆ·ç ò¶0‹_§ÑbMŠãF…¸uc¼h!-½rD¬lúùC¦U( ¸Y+®‡\žö`#2µrŒͦ=˜È¸õrÈòDÌÆšþ˯RéËW‹·0îõoÙØ»"™·[Ý0×-£^Œägò«Dìå*’#_»î¦ÅÓ‡q›w˜Úr¬(EÁNæm¬Ôîñøö¯L!v{"ã+Þ1í¥”ç€VUV¥µ¯Ûà´ø{J `µiF Æ$ÀŠ´/Él2Ùãv»m {Pçä(ìÁ}6¶X†yO®†¾Ã8«© ¼*oÕß—%]#¯ÛlÉf>Σ¶4ò+•׫ůz#ÐÎ+ÀæfÓPÌqì˜ú8¢ÍÓäùr‰||jëÀ¢­‘¹TF`wmÁX4’%¶ØÞ!½±ÿœ @ý]³Á3`פ½°lT3f›¡OÛa£^ÉHï.¬éR +º­‰äWÝÌ]ÀÚ3rZWE¿puÜI·;0ö`CàÕµú\ùÎô‹h-P‡s`zÔ“z¥ ð¾zhÍX Ç9ìÎéšÛÁ[ø3–u«òÏYì¬hïx§j¶Í‰ÆÜ7-(5'LO÷›Ûè»{͹èP'¶;ˆØáÒ'6Èm‡}ÔYž0'l$ªªu-X­søÕtŒÎtÖÇ9DÿÕnÌ]ìÅã?±{ ¨å¾þ«½à‘jeå™%ÁÍ®œ;{p·ç_uOû¿Ñß æwìÁ³þ¬é-~¼¿üj†œ•¹nµ›à;Í2¿Ipo³žW7 W?;ë}–ÑHÎuT³Q]¾öàS5±ÚG MàýZ£¾æ/¥Î‰žgý.ÖØ ¬×¿Á´vû/]?œ”÷¹ À«É~-ñê#—íC5ß9=m{bv ™QV^ªÓªŒYкƒª¶>=N~¼¯‹žêý¬îØÆXz?ª{mìÁ;éW¯€6­A :Pçe¥i\ õ“5W|«\©¿H¹rÕ¸e5HÞòuÇÙó>uzÃØö<2°,ò|ò ú¿UÇ*Ô•ªgbiÌ) µ®Ò¨ÿj¼d“_åš°Jj!3¼)ŒNHŽûÿ3;™Ìh…l<ÕÇ3Óh§†9ƒaMÕÿ/þ*™mH1ÅìU }S-izó¯~{Acói—&²ïa$Y‘)…úíÚ¯2ðÛë1ÚjÛ6ÀhÑZ xWMXEy*þ¬Ä®Œ£}9æà•ŽÄݦ±N{àR¬#ÕE-1?˜ilB-¬L ©ÆßÕ“æ:Óƒ£ÒÃ|n¾ÄŒ«U}vÙs#ï>š˜˜}¶†¢ûmv‡m`_݆w]o«‰Æï~*À¡?=§ê0þ*f3è¿êù˜¦HkNÁЭ‡0%ú[p)ë㨿ý°«îˆ9*Zí¯ClCð»Ì–Kc½ÜÕØUµåqs¿ý5"Ñû­ªx-‚åœo/æ-hm<{+3zRû)&ØïÜ{}>ë‹Å(tÂÏ/ ntQàÕ,|o”xõ_· ­ûÚoô™±SÀ«ŸÍzàÕvX3©Ï°Þ÷§ÜKÀ«äû…úíê¿FºÙiXé󨯱¸Q‹ú áý`UÖ£ˆú ³9ï €WZõã8ì¿lßÏ«²Ã?.Ï_=é^ö-ý ¿Ÿ7ò‰«à£‘VÔ°ÑS¶yÀPÖ›P‹^=ú ÚŒ5]–âÿ>3ÉE4ÒH­uÝÇšÍØ—õò2pRÞhï‰^Â];Ï\îÛû°ý"S'˜HÓÀüеT‹|I« d¤z*•оŠg¥´Ço¼ ÔªÀ]›¿i µ†«»Êoê“yi,S)ÙJ2oÕÍ‹ß÷u7ÅŒ¢H§n^Ufð¦¯òã9ƒaMdbVNœ…Õ$²¨ß^ž,)Õ¤þ_þ`õèm*Žg!¦˜°>N˜Í“M ˜jD²’ÿ‹M¢÷ª"qOß•O~TŽŒ-ƒ~ødâÌXS39>êÿÈZѪ‡“(Z›Sq~µI¿ú˜xrûçj3Xô3wCÞ3“$…öà‡Fµ‘öƒIÃnOàs>0¥RŸÌn<Õ7±ÍGækÖ<Êþ­ÖX:Žh“dOãìÖØ¶Á¯4ßYgàˆi.wÁÖÓµñ¦Ü‹O-:*5%+òŒI¶¹ÊIW_¯tçÉK¶fä<3Ö™e°WqÖ˸²Æ±–JÎýåè|jøÞ°Å;—­c¨^Ó¹À«`Wõeœmhï“n¬G¿cõFÜl:H~5½I–•XqÅØÁkMŠlÂަÿ«+f¸++Ñ7ÁŒÕĺîv“nwËëØ[ÇÌÖè·®Äp›TýTùþ;OïÌÝXùÒÌŠ¨&\ á2`DZ|+ðd­~q pë ÖðhªPÇÔã<ŠùƒUu¸1À¼€ïtáÉ8;êÝ¥n:øÕYÓÉ?×-r'ÍÝrØ ð#bë‚ò@Ñѱ.àW]|oð¿söÛÈŸ‘ûÁ7a®.ÃÚ˜‹õ7Ï^¬ÄÞÅÌ´®¬ûpŽñW]ð}͸„zÈk¸Ö¯Ü]`¬ûÍXð«üŸn=vâ‡~½ÅNÃì$›ý`àÕe~‚œ”Qnô„SUŒírõEçcõ 6{d€Ž9€U1›1 z¶ã2c[ÄŠÜç€Üªg¡ñ ­\‚4Ôï¯ ð;ý¨t“ÿÎõöÜãžõÍý,¿ sôjä —ë]¤fëf¿ê„·4À»î0Qm"´Aõ¯àÍz&€UÛŸÖP¨Û—ë¼”q$ˉ Wšëì³ÔëKÕŠ•hAsê,1õ‚ÔMÒý‰3½6ýáZW4¬?¨¶Wo°ãÆ0´CßÁóËÇc¢2ùôîú0"!15Iªö`Mj´—'?jJ©,þf~R‰¬Ho«Ðƒ\_WרÊbly!ñ÷DBE¦PUA=Vžž®ÐÞ¦ÉÒéçOûÛ«cd1Z+šF¡¦hÛT‰ÈT‘£idm!_LáïfѧêØŒÆ(^‹Y5±àl¼Ä¨FŸv¥ˆÞ.©÷k­ùF5ìhß݆q»Ît–<Æ´œÛ¢1]qº4£Ÿj^i®t{bW©¹ˆ½×ã¦Y-·a—)ž Àç¿b=‘ °‰ºÃrÚÉÑmg¾”Sô_%ÃfkØ›­¶ô„i&'m>õd^•ÃàcY±žäE^€=¨~°òÔCÎmÃ4yÇ6üÍ{„å@·K€WšÜ½†U0œ÷fWaÇ«¯Gï•>7ÓÁ¯4ÿ¢PÎØÚ¢–ÖL3VƳ±²ËÀå:Ùúö$la­º´Ÿñ¢Õ°2çcOª~W5'5žaV\)Fvp{ ˜Eô«£óTE®€w…¥äW÷› ŒÕÔMÑŸ]=wÖmW…_iâù×ìXm±tÆ„P;4…179ô$¥Òâ¬Aï•"O_VæÐ߬ÎÏåÏT¥w.7îoÏãc*Ù_¨ª¬zéŽ3ÿf;‡Ñ剕ÄpgŠª¡—\ùYê5êÞ¬H†Pý­ÊÌæ0+:—ñ DºlbX*=îYlEýo€V×áÄNçcæ*ªÕ7•%A:ò>qÖ}ùŠO:‡y¸Éôµ8‰63èGÒŒ†Ì™òX—?ª>¦ ó?4M¤Gt,ÕV:ó¼h5ý kˆTÀîšÁ[JÍÒnhŒ}1®ÏpÄÎ>³z'zÄ4’-¶”Ú¡oË!쾋¢Öm)ìAåWª.–)Ý"m:ë;O¿jN}Ñ4ì”Õf \Ž·ê=ßìçÙàA¥‘ëÀŸ6Rùl¹ùÂŒ“;€µÀ¯Þ>·RL¼š")Ø]TF†Ûîö}ÑXÐ_1n3a_`µÎ^íÁþ«D=™ÛЎ˱*%×™$Y3¸ ½n‰}¥÷FM©ë§UUš¯4iàWob·=Ký«zî8ìÁÁ¦†Ôóüë°G˜)nð¡]D}%^Ú2¾½;F\cõÇ`ÄJðþa°ëÔÕ‹ê}×àç]˜ƒ®ºyªòøób^µÇœ´6K¢1w‰›¨n|'÷·›â¦¹»ÌUr øU~lGð·´‘†± î ßöà=À«ß#‰ÑÛlczÍfIT&c­kýÁ`5Ñ“]¹Êx¯V̺ˆw寮ÂÉr)ùãÌ®j滀WWÓÑÆþwÂÿ {ðMó ì° ö²£¿Ã÷õëÝ,?ƒñW«Ý ?ëM\/w¹ÿÏ '­ÑÏ}Òö`>ðª7faÆ¡ K1ÒÓ€\Y@Õv`!Zg P`‘y7¨~¥úí'ý.Ç÷ôškùkŸÿö`gs·{Æ÷ð£À¯ê›"Ÿâ3ZU?l¢ÑVó.K1·¨Ï {qöû"ªèhüUgú74‚Sýí4»Àh}çÑTˆPî´Ýì²wG‡Ðr›gVú޾-u„×À\íC^ÔÜüC»"„ª‰ äMŸú—ºÇýWYxÞ|j$Æýí9üt%êË„ú¢Š‰Åññ*Ì$T $‡õ¼òȘŸúSA#¤jÐÖ«Hä©ÊÊX'TJH$¶dÒ¢Ì"Š1¾<¸êéµJf¼h˜!ÁûÁLÖ=Lù?U÷&¬\¡q™ÌÇ)Ï™ÊC+<ñ*Ÿ¶¤ç[«ÐËŸL®•Æü õ¨µ“މݪ¶dæ½·5aþ`9`T{bÔJàOº¼ÏÞŸÆ,me½Tgh+Ï›áÌ‘é¶Ô–ñ õðª9¹\-ó©i-5éCn&ÁjBž×;ç¿@0Õ‰>€Õ·¨•Æ|„ÿÈc2›˜y‹íe‹•4h(×ÃFSÿÕÇrƬ—Z*I‘§·jí¦K¯Èg6Y´“äMÛ2ò#ýWëÑÇþ²ïN-¢ŽÀ€^˜·Ê@Þu¬Ý^ è+3ANñl,‘gYoBu &›¹ò~tq¼¡t±íìË8é›cÍnÁÏž£FÑbìÛ}8…ó˜osÔÄÀ¯Úà9ÛaeÆ`ÎÅwÛ2ú_³sµ>I}ü¼F»§yˆù8/â)ÇÌ–èW®6ðêa­Ú,}kàÕrìöîñÒ;2‡ñíZe=o»c· ¥"óŒäìúÉèYüßµ˜‰ž8ÿb­öÊhÙ @ÕþÄ«®ôhþŒpウzÓ䜟èfºæ˜ìt;ü~cð«,‘ê±Ùn«ïíKÁ¢ï³?E2¢‡m#üþl³P~7š?8=ºÒÜŠû`ëc¥vg½T'jõCŸ¯â{w3¾½Öèâàv—æöspV öï¸'ü¯nƒyÚ¼ç—R_ôAó‹Ùì‡ù­n6øÕY™á®ÀW§ÝÛ`ÖWÈCî—àMœ®Z}k ´3°ªÕß^Œ³¡ëMÌ@«.¥žÌ´ô,㯴²ôóQPÅ¥ÓÆ¿ ïT=™UhõŸ®Èð]'|ÿ¤{2Á¯Å̼Æz© ‘ܸžÌIÛÊwCaZi@m»ŒEmH¦ ½_Àˆk,¸Ö—Tý?õùhͳîå;ÍNûht ¹È3̵5ÙÓ"S̈öâ^W¥íñZ •ÑËáñz•èq +švļhz™Pß<3®hœE«0ϤÄ}ãIØÃ•é)ÏC+²ãØS™U¶óy/Ÿ‘«F—Ú¥•ÉÇ’yîf3 ™‘¡òT2¹E&½ÏÓ®5\ËñOy¶"Ä«Ðãæ;§²Z—fG+û«•ªú©"ŽêŠi\}‰I‹Ûž DÉüxþN6¹X2±7¬Œ˜iBݼ½XSËè•+ÂØŽb}ç°žW%Ö›ˆ_å»Þg›Ï€m3]Eqì^XH/˜Áä9eÀ¨æ¦}b5Ìw°ƒš‹a¶”ò4¸Öz`:V­q}ŠÙÐØÕƒXËWá¼U_[+àÕ™ÎóáN;Í–‡=¨þ¾;MS9 Σ'Àrè Qïa ‰F^4õÊIßÈ;6&ŠuäU[üJ1p­z5d1FCÕS—`—MF+jW÷`½]ɨ™¥À«IàªõR*ÏÛ@Ù¶øù\9O=Ï–ÒÕ6·/wyàÐ p"å¶‹Ã[±3ôÂxÑåŒ"\¤ú£·È¨*§V5ÕŽFõhT S«Ÿ2yö*y«ýS³üª;ì4ºªìÁÖþ ;Okè3-²ïÀ¶žmô±5Ó'R÷o,úô°y ¨: íî Ë~¤)®¬&WÅ܇1Ôx ¬#í™ý;¸„þö£¦‹‹ù±n ðJõdø_€WɶPêÇ–»k}™oûûà•±ªŒpxUY–y'³ÞÄ^Æ0§¿]}VÍÕ2Ç×ÝXg´Ï`”Qy/õd.ÃØô/º»ýïnµyÛüÇ_¼zÆŸ1šmþR¿ÅñÓ䙿¶º þ$ø8œ<æþžGÕt;Øng¼m*ï¶°ždŒvkàµÞ0(N<6ÔãU³þðÊcUv§¿=ßwöËðõ®º¿É>àØOõKW#ã36¢¶Ñ ÆE¶}xÛ>«5AêÓª„Îe{ NÁ^°¹“4bÍ¢ž¼Ó¹ íAÕëÛ`¿ÒXyf…ïÂøöT0üzÁ&úÛõ¾^ýíuÉ£*óþ«3ò*ãäy—{8ù8¯¢%¡j{±)™Ög­8õ©¨„Ö›ª|Ö!†¤mšòN2—ŠÃÊL ™ÝWÀ¹Ö¯Ï% õ¯*ÑÞLæ{ÂZÒ¼ Ì!âü[Õ9Ì tq–ôo½ÔÚdl‰´K”iŒÍæÍK!ÑHýü¹Œ¿JŠWȉG{Udïô·©òyš‚ïVÌ '¬‹™άÄrXêcïÀï_n~3•äcFF¨žñnÓS*ÐßÞTî^鸩uÝ>Æú¯R¥ o ô~°Î#íVMW_•Ú†]Ì·@ˆþÔ"¼kú:´£ã¾•§eÑýv;ÜæÛÃVÇâ6¼ë›Ç\›weΠÇZG|ä¼I´šw£z}ÛLÖë™&ÏÛÚ‘_8_˰W{ÈJŒ„꺨fÔê6jTôrªÙTÑú)@¦Tm­/¯ZwUý¦³ÌPy9ºk®µi#=l{RJ±YGÿU>õJ&ñV¿€5žnÁzÖS·Öç*àËR¬ÖV°Jš3^´žYˆ‘Öª^õp¾3¹vŸ| ûÀ¬¿ªïN¸¨‡Ü÷ƒkñõ wBþ4 "+XÏ« ë)–‘ÍjåèfxÓp3öàëxû|¬¹}Ž~åÊ`ôSm'©£®LcšÛ˜9QãF»QV°é¼êæº{Í6ê_=í71›!-c;Ün0Žb9¼ú'’=jµGÍÉ–XóðWóåë _GЧªÔùꈾ `ýÁ&øÙ\¬Š«Át.£eepÆEÜAê_ô/»‡¨‡|Ñüê—ù”Ø»þaœ@7ú¡À«é~ŠœËÜ67xõN‰.Ôg¸üiž¿j‡'Že-I­ë\™÷ƒ­€Ýš19kûAÌFGò«eæó È%‹òÃsþ/Wè¯ú˜ßñÕþ;§ÖóîIßÖõ«1¢POæVm•[Í‘3¶'«J]Š•øVI |= s3•'“j´D/FroÕgvèúˆ4þêÌR¨Ï°×žŠ£îÝ4àUß–ûp«i¬Œö¡*USàÕu¦„8TgËH ‚Þ´b^?‹«ñuÄ~}5®#—Å(Ë$r³4Æ"d—ô>­GÕÿ];®LªZ-7CÿU/Þ¦«äÆÕªRy?X‰ž§Ð¿žGµ£Þè»+ ž…ù8©ôk%³ïÀ¯&0’£>ÆU륆ú¢…’,ø™åª‚ _3&áœWã¤S´> æôˆ™L_VgúÛ5æ$†Uó«§&Ò—…ïSç!Ùhîî=¦™fÌËw˜IµˆoÆšßf6q¬›šûLæYqÄn±Eöõ¯Ž°}N¼ÞÄmÀ  ¢w­Å’yÒdÐ'_^ºGÞ^iüÕLyÊÖˆüÃy٪ٲJ£±Ÿ4ZjP µP–b¥ë]Ï*ó¹~U+&_.ŸÙj¢¾÷%f€|ÝÁÝßRÚ?ŸÍ ´¢ÖÞÓ8%Úc'Î0û°ª³˜Ï|3pS-£O Ìxò4ª¶v»«a«JTFA5Ĩƒ-{TÞÃw›e°[¹ƒî1UÁ•bßÈ¿o—aŒ¹‡Á¯ÚFV“_µ¿ZÍjô‡3Ϫ3ÎÕ.Xf³éßZÜ {pw0M#`>êq±Fþç×ùôØk°e¯D¼š'Ê|·–¡Ö,«Úý<þ7ÂÝ*m¼q}ü[âõRç!jb®‡àýOò~PsfV˜7‚4WYê1^ôWÍc¾ó/®üJõd:›3î-æãlÅ̼ùËó&¢w쇀WO_iž[Ö›(ÆžÔ»`E¢vø*3=«!ŒÏÑÛæÔ¿Rý“éøj!™Â&sµ}":€7l³Ìvß×·áÝÛZS7¸!ÚqÜuYo¢c ¨ßž7Ðè™ÊŒKè”<Ëz©Iñèdª„:È¡^zeúbrx{WÀÊ4i´% ©ßžGäÈfsNÜÇžÅ\>ÅÕÊTÎ ëD„·‚a=‹ÆÀgr{V Jä}bBÜuÌ»Ignr9Få—ÄãÛµêÿH%çÉ5¨Ù®<¤˜Ú¡|’ZƒUéçOf+Rè OŒë3T ×°VíÀŽRÒ«ŒimœM/ù¼LyÀT‹ô½ŸÀ긖‘¢þ1¬ çÍÚ_=aO5ŠÇ®™çp²·Ç6|‚}Þ‰ýŽÙ½ƒgPã~ÂÚ×[ʃ8wb½+—nkž”Çe!OŒÃÖÚ\{€ù·M)ð*OtÌ>ƒ}²ÚÜ'jw×J‘'LªÍ$^õ‰¼n£ÄÒ¹ò¡m D50ÖkÕLàK>p¹3æz ÚÑŸw&{ðœmdÅ˱“§ÊcF¹Scy%øÒ6¥ÎÕX’¿G/Ãï5jw·íY¬yÍòZ‰'=ñm…ÿNƾ8È“Eë§ðª!žs X[ïÕºQ©Ï ›QK·5eºbdÿ”»äU|þU³4zöà)wVo/¥Îú v=Æf•{£ßüJó¬Û×â7;ñœÄhoŠõ¼.Á~‡~©‚jXå=h b}k3åWÝðVfBTôN0hnN¯&ºiàW{dðêf¿%ð¶™tŽ-p7ø~¾.øìc6-ˆÞdÛbþ¯€µ+ê9›Âx†ƒ¼ç?‚1¾½ñª2ú\?Àˆ½8'ÔŸ² ¸Ë‰».˜V6Ù¿ ìÆ3|èçúŒØþ4fq§ïå/‡8Uî—Enƒ›ëÏ2¾}‘<èþ<‰þµU½xémcÄ5n¿ë§³d´¶Äf¥Á=Žs¤Ñlƒæ Ñ•ˆF³Þâ­¯èGúUøÍßÁ¯n…=Ø£yֽ웂ÛmÀ.þ€ñ¢>¢QI7˜?"çm_j ô37¡…-Z³t F =@ª–ó®H{§˜5&{r?6F;ú«ÕÛdn´1'S5Á\Ûó~l‰©œ r*NŸ_qÔ"våaÅ f\¥ú—T%,´êÚ‚©=‚¶§‘'U o €^Öa>ƒQ/bßMØ9üüaàÕeÌ܌լ÷ˆó°›{P#·*ø«ª®4ÃX”2ç4øÕCò>VÑ!³ ú¹kèîvW 5a¶öoY­H½Åý%Ÿš‘Yx¯H;ð¹5hO7Fi¼hCì¢iæE󲙊6µBh”[`™VxÔÛÈBÌÛx¬ÎóTÄ*Ä÷¦F˹…nfÐHÒÇEý ×sðj‡?å¯ þ‘ý2%¶Â÷Ý}ð«Ûí÷‘„èÛ’ÏŸ¾= s>«p7z\‚ï^ÁÈýNhM'àÕTî¶zàà ж+ÁâÂz^Û‚û\‚;hE¡Ëü îuŸè7™7Í'~²ÏŽÝÎúÎWû~­›ãgËY؃kÝ,ð«×¤Ô\!çÜÏÁÃØëûd°U͇Éà …Fµík¡Eªß¦üªúÛ §Á~´fæbŽy5¨ê 1wmÌQÿPê¯1¸B ìîøú„{÷E;Vƒ>Œ|ìR}ùˆÚûÇÌŸ‘‡mwÆï]j®^եШ@ôp:£SŒ*=1OgÜuS<¡w¹VxŒÐÛµuæ{>ÚŸØ5üj¸ïJŒAû‚ýÑá´%[™p‚Ö¡¥WÏNoP 34_¢K*:Î`Óé7úWé8%oêÉT ÿ*¬L˜ÉLÂtVRnH“Ëï÷"’¥ÓÞʤWK¹G«)§“³¥ÆïìRMX:ƒ÷ƒžl®*3j˜™œÏT.R!ŽhÚƒ|"ˆò¯Úè[ˆ¬ýTÀ¬€D¢U­ÉDF™å“S%00ŒfPýä°ê…"h_°€«°î3ˆíM¸ªÓɯòä7Ö£_g$]"¼T=ä»LoæèÝcÊ䳂ßÑ(ĸˆÿ™iAާüªµû’/z;HíÑÎæ7pýZãÛ§¯¶óë™_äö‚²ÈÛìX[Ç´zox‡2$ð+U¨øTî¾Íx†b)‰ƒ=¨£ë¤oä-›&jé^&/Ùî‘¿y–­Rn!›Y1­ i=XZ½\_®ÀÔÇ?3£äF”ÀüÚ6‘ÚvXLG{Ûh²­{°ë1"«±F_Á3µ’ðX<ûy?8ÆÜi2d-«£knÀ|gµVŸ;ì0FFk¼¨Ö éüޝT¯o¿YýÒµv§ÝfìŠRöà›À«^°ìa.Ƨœt^mÀ~íˆç-ĺ¯‹'ªBü+àW±—;aÝŠ•ÞõR{UD©„;¿ó8@gÆOŽ&¡æ­Íݦ«KöÓÜdw öàõn—?é·1»]öÄ.wý@ßLž0÷Û"ùÑC°Û¡W³p–MÆ ‰5{-úP‚·íÆNP#õÍŤf³3Ú{ŒgvàcôÍW7[ƒ“.æn æ`Ü'øWWIþJ´ë'?ݧ1ð àÕ ¿ÁMñÓWSÜ"ê!¿ÙX/O¸¯À¯VŸûƒ v· 1– Xg3F´=]ÿŽ£'k¢zÖau* m‚¿oõ\º4Àn?îs•X°ðªüê[7'åýîSßÜÏ#^½ùÜ¥ùÄHufAü9e»R9Œg¨‚·âT­Ž>jÔÏ|ôú7jäñö·=µeTçd<¾Z@»i‹ÙcŸ¢nŒê·oB/[“ݬ7ÁÂè`¢BeÆÄ«•Õ—uè3‰=éÔUü©B†L²¡Ôx¤y¿SŸNäM`z<þª+ö–?krä&pŸ nž ¼šî–Ã<¼ªnÖÉ ÷[pÞ(Îô^õ^iF_/ŒèfŒF æq-~6+Yã¯ÚüÁh|mM æ'ASW^MOøïaë ¢Žè¯®Øò_».8ÉŽ¹wÀi—øõ˜«÷"Ÿá3åaªÊ¿Dï³ý~=õµ2k!vB/æÖ&¿ºVÅ@r!½ÏhM=™r@®q˜óyÜ›ÛÍn{x¥h1Ý\å§øvÄ‘Õ&%XíMÿPSœp»ð„Ð/Ýw‰ŒSêçWáÞQ…þ‡MX4ƒŒ.•»^ýã¡Õ”LþS@4ˤ[‰è™J¿PsJóÕs[™¬ˆÙ‘¡O©³Ž³ÉmRx§˜Ì¨‚ äh´¡4þªz<º½¼ «*Š)Ó«H«OãÛkñ)á'Tu5TzPOA¨‡œÈH¯<*¡—gÎ`efÝ$ÿ¿Rul2Øå·»0êŠX ª5yW“B}Ñ”x>N®üL;†w£éBýö»ñߨ‡œ„ï^Ä.hOO[]Œl†´â|U‡Õ\Âzôó°ŸTOF¹å0ó3PmãîdåÏÄüVæWy@&ÝOÛÞ¶š½ÑêØ^m¶¹¬—ú‘Ü|ùD´ÍÕ¥}äqà•z #°5^T¹ÖLð«VàWú™í`ˆ—€óä€GjeÖñf&Þ\Œ܆µ¼ë©{ð¢#÷ÓTUÞ Þ° E3¢ƒ×u€õÒ]s¤ðê$¾¯QțП ¬>3Ùs×`¬«0ú߀{5^mÁ{’Á¯æ`”Ã|Ýáuéyl@–ÕxUæ;Øë×›+¢ß»î.÷(p¿6ýWïYÕì]áòì'æÒÈúù{â}ZP#†&b7è¹5'Áü™LU‚IÌwî‹ÓþW|®6ÚUÝóGä¬íÃ’!°Û­¨rMUÞüÍ¥Ÿ?™1±ª•Ãh.{|R×°Æ‹Ç:P5ºmf«=ÉüÁ œu7¯:P¿|‰Ca'¦óŽþsµ©An‘ƒS{yÆtÃYúÆõžåaîµTâS*5„5uL¨E“†§d’!åÅ«v%Ò",%—ªÈ8Í^¬hª(–FØ;ïÛ °¿—»zò¥éÙߌå4ô¾«Ñ Ÿs°jái£a>b^^ ÂgTO¦?þ 0i¢1kàïãà•ÝðŽÏÐÚLŒ~Œs3˜ÓÇýâV»¥îs@®s-}^lGðt±ún;ì¦frÌœ¿òÑ{m=ôkºY)92í×zZÑc­û³}¨ÉºCeæ´#ü®˜Õ`æn؃˘Q°$ØëRÜiàÕ^s‰Ö=ã?u›°v~ó«}vìàU¾l–lp3ý$¹C¦ROæ.÷¬ð+ä.÷C YG±~n–vÆž_€³¡ZQŠ‘)“Ôú€C1Bgè¿ZŒÿ[m> jº¨³qÎÿì²Àáæ£µß¹\Ìáúã÷îpÏû¦¼7l`¾Œ|ŠŸHDc®v™¿#÷ÛÞ̈ÕZNª!µªö@Úƒ-¥±\™•U]îÆý¥5\Ñß’ ;o»½3:Šh2Û\ç'ú2Þç­4.D¬k ëãè¾o¯Jþq¼KUuõ_=Ž9¬Ì·UàO¥5“¯ •DßJq\KõEséáÒªRò.Ý9è âU:ýÙ¹D»z‘ºö™D¨Lr¸´¸E¨HŠRÉbWJÜ«åMr÷bŒÐ*¡2{¢ õE›ñY>Ù‡)ŒoÏá§<^5Þ&2Ú>Þ¥UÃú‰ƒÁ–”e¨eÙ #;R³ÎŒÖyTýö2ò¢5¦®¤Ë/äNÇð‰›™ï¬ñ¢Eò,/miì]­Šu¥ÆIð«ó’4¾½1ß5 8q»A¼´r2‚­¸'ôfê_¥bï%Ù{akèÃ{­­bo"w:lÚÉu¶@4›ü#¹ô•¨%]"µ"gÁ¯ÔÇW^zD^³äW—ÉÓ¶!íÁ,ì¨f ¬¢Ž…ÆXN`¤}!Ú»}Óøö"œËŸ›qò0ïÄ+ÉǰŠÖŸezÈÔ`>}MY2ÐÖ·§E«®Ùä{™ u³0Š×â$ÏÅœô‡‘5ØQµˆW1Úƒ­ñÞ2Þc îUSæëÔÅŽ¾ÃÙ[å%ŒýkfóqîqÛ°6K¥…oç/ÚÉ@ŸÕnº|búGÑoÖÒ,DïûSÿj&°R•âGaŸ3ïb§. ¿ùpŽøÍòÔÍ«‰up\Ÿá+£5Yš˜Ñòn‚[´6w™Aî;·xuÜܼêæ{Ç® ’l ëì¶ù®¾LÌoصM°ÿÔ’/å¤êLZe±6snô¦¬+µr>Èh¶G3œ3ÛÔ7ŽÖ-cLâüàFWÎ Æà÷†Â|ÄîÖbüâ×úð«ý+ýp¿ÛMõ—ÉÝ2×­pÓü½î9Ø`×ÊàÕ»èIŒÜ>ð«Ëq‚ÏÐÚâØã-1ºÕÁ“Ûb«ô ƳXYíV¢õdÔlcί2|¿ëU|ß‹6håï;Ük¾±Ÿ;±Øü¿¦®¼ª*ëž}Þ»ç¼) ¡…P(AB賈TQ)¤ŠŠ¤(–;* X™G{qËXGFDD”íuŸ~ÿLJxïÞS×Y{Ÿ½×þ"ò58Øy[‚}µÛ˜èã°sÑŸKxŸÒœª‡#ðfUR¥ä…ÀÇϰª5¿5QqHÜ÷>#¶˜h²üêéè0ÚƒÓ©ÏPÅx£e&=˜íK¯O[pâmxmâ•V1 k6ÁYô½±éxö|ô¬*îMO& ÕE“¹ÛÓˆ[‰´Yþ¦Ä¶4âRV#Ì$/ëÎhâTúæõ.›6X)fÜBX§&‹>›ZqäÊŽë$xÞ:Ö¢Ç]c±r˜ ãSõV0FVÕŒy*aÕçÆ`¢é“\ÌA.5‘ ³È!×ëÓÜÃbg]êõÕß4*Ž Á9§QHÊQ[ᔼŒúWë^KDôþ"†5P\ë+bò~œ÷ÛLQ_Ó^S&/7TŸ¡…©ddk©‰JéÈ·ãï{‚Ë«%ªêL`–õ–£¬Á_±£4Çü~ Õ8‰u´Z›À‘iôÞc7Ú&v—Õ>ßc:É6؃:ΟÈchñqQLo"-âx•D½¾ã6Et^fÓü–½\‡1xU3­ù’¸ÆUÅnþt-f-ì„'‡9Ÿ…òVpÜ–G©ïc„s±n*L¶TÙöu0½[‡5ú5Š4ƒzKÕÆ ‡µd ãôÞ5*…ÕߨÄoõoi½Ô2Œrõî›|»SÞF»þirÜ>§Õ$ÚHvÔv<0¾“&?›±­¥ps=„*¥Ž¿šFu8½õ|ëy<Ƹ{a볌/Öܺb´ì%£ê¤oRG7ù87Í]´Ã ÔÃýæ»ÙîiÖKâmlkh›Ë°Ø…n!óqö˜§€W?EX­¤õ¢™!y2ožA}Ñ]´v¯4~_cëz³6}s¬µ–×/ç3zQ°Åe¸½°°·šÁþ=w¶Øµèû~½¯4þJëãl¿š.O_­qSa7jüUìsß#&÷1;¥‡]ŠŸžªUÚ?khgô_cëÆà§¿â4®Ä›Û™¥æÃ “K“ÖŒ=í²À¯ÅSÎÁêÛá¿qÝÐâçܾ5ðj vâàW©>5¢Þ¿­ælä1[MÅÍ·JaÄp>0¹'Æ]+¦áùýÍÿ0oÊ8Úb|/Ä %ñÎ:>·„ÖÔZs“=K~5ßìð½üED£åæLtZt÷e¹9Ù”vªóLdܤú̇˜oâÊĪò6Ú›LïzJ<=?ç‘•¤p/5cN‹âL¹©Ï T­ÆLfä©l0F,(Ò‚YǹŒD( r„ñ™Yä]¿ç;§ÐÛT›ìIíÁƶ'²…a•údÚš™ñ :ÍéñcJUù$ƒ8‰ËblX]ƘŨžšO+®#.Òþð ¥²>Žòù`̱õïµrÛDŒ¶FR”˜@jIwò¢åàèu€WЇ÷P¯¯9Ìð®#f<ëju1`|ÂØ­ønìA½™,׈éAÝRœ|™ì÷D0‘~lŃ`"ÍõÔžî`œ={PýOÚe¶©Ýmµ O¯6ÙtÑž}$wc|I{)Žf¼(N0Æ_¥ŠŽàUò¢í hjÔÂYK@O|s2k¨Vôì$Õ:/À øÚŒ^å1ßùý@ë®–0þª»ˆÎå½^±4B{‰Öš?^¶Ô¼F͆¾É܆5U ¼Ú‰§Œª}šy=ý²UÌŸÑ8ðRfâtâý.öˆifwÉ›³ýæ؃íaÆÚl)Ía~gY½Ï={°:²˜qª×· o킾LÇùRŽï^Šñ|kx6FWmÍÇ鋟1òMÉ;ŽUûbÿ¾o4‡¥£™µnœ[Tad‡¸$?Û-t¯îqü÷~uaÇË Ø%n‹ïë[Éó´ý:‹>cõö~Y. E+ÃLÀj&R+ú¡ÛR L£=~b¥¯ž˜Í;Íèå hÝlª¼¬ v»¨{öàMf€ý¬¨39é7ú:ÌL•Í~„ßà¦ùiò¸\îVÓßþ!μµrÈýü¥êRwIwÞÎîÎ35ÔéQ¼êe¦Ñg7my§`7ü[ ´ùàÜ6ªçü¼?çÒWKÐÂß\.ðê3×ß{Ú½ê;û™~9>ÿiäs—ì#ÝÅÛÍ‘—ìÀ?âÛežIN’>x{{zb`N¯Ô£Ñu=ÁµÒˆ]s±¾æs÷o4kísÑqÜw³Í:ð«.Ä«eÆWEûÒ~¡ù'_ í­ä<˜5“ñÆþàÆõèϯÀº:B{3hÔOL#Ê!KP ÏDúÒÕë­5‹ÉÂj®ôN)CÑê†ùñÑ,jÈ„:6yŒ ¨M$û½ºa ¿Ÿù¿ªÃ{†Ñ1´Ãø«LÆ7xÚt͉› |’VÝL'ÏTç:ÌOâûséåòDÉ\zÉõµž ÕH“[QÀ?©-¼+î úåšc¦qš3nª£ùͤ1¾=x•dù¾¸TÔ$úÔGM;ÖÔ§vÅšÓzaþào@¸ øüfæSXåäªã°¾Ÿ¦~{VÍYœ$™uù'Ìöªx˜ä`>½Xçr·ßÜ/»ÜRÔo "öé›àîôûvòøÕÙH~\OfŽÙ*I2o…ѺçW1vÖfVÒ@½±³úâ}ð7[0‚£0û²Ø ‚½.üjFg¤Ý×YƒvþäWø†±/üaS kUëÅ]å'É2Þ©'ë ûDš˜uò„;¼ŠÓUõ¯vÈ`;;k cø7Ò;VŒ±îËI5GbÆžƒeÜçJÐúDÐÊyÑ{[©Ï/Äj8íJüƒþ¤ë¡sáÞõ]ýl¯1Ç#_¹ÚÞE ÐK}Áê W ¼ÒüÁ"Œisü<cÑ‘;¹ÓÌŸM1ZŸ²-T;­³1c¯{a­ÙbDC×L³×Oõ½h_,1>P~¥g«êõ­a5@+èÁÜVh*æ«G?IÆòïø·t~#1®šFzX=+ô»7ˆ+Q¯/̈́نmâQTêת"^$ѬË\ãdÚ’&¬3V6¬¿­¬c~¯“ãýA‰ 3™“L˜ ªÌdÒ¯“@?ySƃ×âTù$¬á£719¼¬Íøúô_%°VGýüÉäWa–Qíøý`¨'ß'Э¬“Á(š)¬-«ñWgÀº¿Õ` ä49ßa*î÷§ý)ÓU^m ž¹JóVÂ@Þ:65¤¶ƒâç`=–³mãpí'^¥ãT:“¤'ãØö`m­j*GjeNÊÁøýà;ÌÖ·w[e†`ßjëKC|þ Ù+ä˜(Gm$M"Ïkyà ƒ#ÿ´à‚øödy×VE~%N^¯ºv²ï]Œv®¿Rµmà°dÎ~­É°«a‚<Íøßfòfð±m)Í€"óÍhÉ æaÿU‚ó”Ø a6Äù“õXg/3gbÎÐ[°ÿêòÌ}9ƒZ ìNsµq°çà3Uü]B›Bü|>«¹xO›dû4ñê]³>ú­kãžp/jÕ/ië;úc°x˜™î”|cª"ËãùÎóY—¬G\y«%Þ4 üÖð8|º ØÞíø÷ø#z¤qƒGÁJ™?ÃêÕ|g¬øhÔMw3€Wšj—áç¸9nŸÙ{p›?âU¹\[înòý|©l7ûì¹HAô6{Æa¦Y!é2Ù•…è÷ƒhÃPê·+¿RÕ‰Ï9³ª§zÈ=p&h”§f÷® u nOpÚ8Ò¿FsÆ­·ý¯_î3cw¯òå6àÕ ·üj<^ô0ë;¯—Ý÷ÁËXEê3Ú#£Á¯â õ¯ôíMXKuZÖ³¬úí;X©oÿ.èìR¥fàEÿ£ËaÝ®ÞÀ«F~;óq*ÌÃî}_é§_•˜ÏÀ¯êø_l.Vð‰¾{Pëµ ¿ŠáÄR®5Ïš«÷3Xe‹ðž÷Ðz“Õ†±Áƒ¹gµ†Ð ü«ú‚6ƒ_Žænœeðý©ß®ö`LŽŽç¾h[Z‘_íÁzxþˆ¸^Ac<ñkÚHé¼ñ|ÝôˆgᄚîÉÜIô…Y™Ô›Ò¿SG&ñ*ô·×£¦¶Þ@ÖèPj‚vçÓ~¬ÃØýz&TFH£')Ô­Êüã2TmÂÿ§ÒòË0Éñz©i|w,þ‰ìx^O kØ¥›P¯¯šñ jMš°¾óïù8|zmÞ"¤Ðò ëMÔ7a=z½¿+<:£0׈ŸªøkÁ¯—®8ù‰|óàÕA3”5…vÔ,$Ï©ÆYªuÔÑæfàW-ä"ÚƒE°ûJ'öc6£)+8²Ã€"}y^<„ñ× 9«ÑÆœ•§d<ûÿ°]`›ÙV{ü¨é"Kl‚dá3ŸÓßþ1c*ZK ìÁ:VïgSd@ä؃Êɧ˛¶kä oBV`5O‚]Ö€{x1ÖØPV¶Ue£±:zctV¢sd?Ƭ5ì¾×ƒ¶‰hžßl؃åÁ•è™ÞæÛû¼tG9S{®yßìÕ8­¿›Ë!¬£jâåÀ°ÀüÕ@Íþ/ÇNWŒ6¦ kÓ—a—Wƒ¯æÃÂ| úÐlŠ~ï.tS¯¯…”øÖþSê3\ã¬ýÌôŒÔ`OˆT´æLe¼>Ns¢ÅDó 0iJ\ÿj+Þ£Š2©¢9‹z^¾l®Á‰ÿ*¤ ýW³£ÆrWí1ú½]=?ËÍw›Ý²ÇÝâ·ùõA‚m#ÛcW¸{|/_,»ÍA{*’ÝmË’+0ç)2#¥Ê-×›ûðüþÌwVŸ*¼ÿ“šêýÏP£µ˜Wó˜i[<{ðÎ`ÖÝ¥þ#æ;¯ÁYwÖ_á³b{üó˜Ñ;ý(¿(5'×åàWSü!÷¶™eò;¼‰ÑÖìÉ]Òx•‹³¶ã¯:Q¯o³Êc}OÀg^ÁltEÏËÀ»þ\äjK+´ÿˆ? +Põ˜Ÿ\¾ÌŸ^US¿½³Ÿâ¯Ã˜~9A½>Ýõw˜Ó‘V}²V¶ê3hýÁÌWTÅ»ù˜$JOR˜É>œ–Ö›ÐúÎzg·ÎÜjŸ¡ÿJspv¢cÄÒÑöߢ‹¢#Œæ—ã´ÛdZsê2w½€HQ„'þÊÌfÕL¾ØØõßNYVmÀÐÿæâRë 9®'“ÇÀ¶¬ý¬7Ša>N=Z}yqOõoçÓóžÅõ ÖÊIç{3â÷‘éŒ MûÛC ÷lò(õfe1æ3Ôj(¦}œÈ{»Éæ­c}`oȯ’y£YÔžþ«zìa"ãÞ³é L&kLázðG²ž×<ò­7| ½‡êƒJ”¯©Z ëóŒ‰ÈäNZßùQ3L4nê)ÓYž3Wо·;¡x—ÁZgL)õúãþöf!;aóÿ“º[å‚È+°•›%Kuä}|FÛp¥üÃvŠüLζ {æ2¹ã4žuÓ¯6—Ñ—ÔXµ–Ä@ôvN¯Ér˜^Áy/øÌ6–"V_i/Þ­i½‰v¶5ðª¹Þ+ÉJ´ú(æ¶ÎÊ@¾ía­ú¬gÕ“é€]:‡ùƒ“?•X×ÝðÆaÔi*Å/Õ½(SÏ>,oáÓ÷šuÑ/]+wŸ{IU»¥¥/óïÚhñ<—d1Œ¿ŠJ÷ÿ‡W3i×^H½‰ýæsõ:£w°ºõ×ÿðÎX)¹æ5´e€yÛ|‰o©ºÀÔè©`°›tcîƒÝ;ÜMrOÂÜéžð·ùë‚_¥Fî‰Mr7ƒÔ—gÍNûc$3ºÓjŽö³DjËX¬üKÐãMXAM€ª_Z/µ%£ŽTS­¤¥Ñªƒ€Ü1ôžrUð€Ksw3^tŒÓ½¬X4ûÊ_‰%»Ë?‹6ßìù¥Ô}R¦¯fúçYÏk1ðêdðFûb¬¢2È^§Š8{J¨ÏPÈ|õ·ë}˜Ö©žxuõ¯ÞZºLÑLó}>êÕ¼uÆ5fþ`<¨~5Ù¯BO޿ʤÿª>ðê—È!Û“>—x¢•¦DÄ‘XÅs‰ÒµW•°$†™°‚Ö$ìγ¾Ü¨6í\òü æv{˜qìʯ¶øn¾ŠŒi¥I æG‡ý´ÁNSý«Tê3Œ¡)“ÚȧâU¹4¢ä+üù÷;Á‰Òi‹†qV)¼lEu ãCï•ÖtPfV{Öz©…ô_¥1B«>½ðIŒ/m@?R=ô¹ñøù:´ÝBM˜Pk¯9Uq0˜£¼DõVC~ÕŒV\-òÀbŒJC¥} £àS©kšÍûÁDf6ˆÇšfÒW—N~•FÿZ6}_ƒy³u­ kÑ^‚U]A¼*Åš;GlQ{*]Æ_¥POf» Ê‘ö_}V¢½êg>ÂjÇÈ‹Öæ'X"âþÿ›*iA, ¼z3 Ò¼×ÈPŽÿœ€«`e*–Â>z¶†ú÷î¶5¶!øU:ãE/’5¶sm´>ÎóuDÛHQä¯&°Å–"UŒoWþT9f/Šœã½Èrpª±²ã1#u=ðc(k:«žÌF¼½ZYc¾0—ÈóX‘L+9üÇæ‹jaM3£¤u0ŸxU.}l°!­&oaóÍkÑJ‚3ñ´Ï/ÁzÞ,Ó¨œNØ¥óM&øÕ ¬^Õ¿ê§ÄÖzåm‡Ð˜ÿ‹<"Çð”¯MMôWæö¸ÃŒ-ñøwìµhë•î´|efD–ÅýíÓÁ û0¿gFT3܆ƒÿ=‡ÖŒcÜÄ`r?*5Ô—žŒf®‹Ó¼˜WX¾ÿ2-z:E¼zØ ÀÎI¼ºY6¹~©_œ”4ÙîtWÉ­æ.àUFôÛçÙœi²¯Å~n…ïD¯´rPk´á=üÎGš¯&¢­`™i¬®ò«ܹ`;ìA¿z×òß¹ÕàæŸúËüþAÿ¤é 7ù‹ýn"ìÁgdŽ[é&Çõú®“ûÝwÁQ T9ž«Œ°s1þ£ñsæ¯#k|\‡þO19§•_b|ûÞ›|¹tÌ]/sÀÿ„î~Õx•ïïô߯ªÍc@Ï®àWkqr9ŽQùÍfcwßf¾çkì¿1ä{ÍÍÏøö…ÄyÕ¿º¶¡âö œ ©Âœ‚s`a}™—y/0p=Îi½gél¾—½2ŽüjíûëVÖ’ØgÊd·Í½¯ý·lãý ²Ó¦R9Œ£õ.ƒ#ŸÛÑß¹ò–-œçÙpöT/ì/­ªŽTF¯¦­Ì?[hN€ƒ=‹õ߯äÉËÁǶP´îÖ"ô±4˜„^·ÇNêc;ÚÁ¯:Ò§®ñíª™<ŸUw›læî¦,!šlÄ9"눒¡>C)ùUž[Ñ.Ží3Þþ xUfÞ1WE?s-Ýý°ïÛû ýÛ¬G¿À‰ýÁ\¹ÏI  ÄrV°èF{°ž:ˆyjžßﻕû¯ú3?Ìj žz V¯zú;á]âF¸™ñzô9~¼›æ67Émî¿üê¬t]±Áî?Ô7”ûÁ¯¾¤Dï´šÏ2 x•%cðÞñxû-àÛ0“›yr«âg?؃½±Â*±—57uí/سj±Õ÷º˜ÛLEÇú÷`žr×a÷ðWù„ØŸÁ¯Éz?œz}—¯¦ºµn¶xUh®•½îûàUŒ·*Þ.íJ¬ôqÄÆÕx»f,,ŨŒÂ ÔÚm½Ì `»•Ô*¾Æ|¼Ê­”ø ×*^#`÷õ2§Á¯î¦¿½Ò¿êæÇÇJÍÇ‘OñooŠóùtä9;€ñucq¾‰¨Îo5{æ2j¿ŽÑ–wÌ ÞΗ±&dÿ¸ï]cgæÒ¾Ûdn²ïF/åΟ¼é+™²Ôä ãùÎíÁ/×ju*úl*W i‰)§—V^&ëÑ¡žL*-´Z\éü]/®,“Cª>m™<Ö*H7a•ÂRúáU™//ž?¨<§íh@‹2‘qæuiÉ¥1ö"Ÿ´Œø¯Túybdaa>NXBýW=ÿ¹ñ»ÂPU+Ì0Lc¥¼Lb]6sÂòâù8YñØP‡Öæ‘×…5RÃüA½¯Ìà­\ÛÙY«8ò¾UK;`U]À>–a§ª¨-¼ÈrœIqéõ%û±6Í#¦Z^6 EónªÌ·T/O¦þÕIS(eô§©VÃÅÒ˜¨?¿öb5+OSE–³˜_½OPýö5h…Æœµ3Ëaê_¥‚_u·iv‡Õ±ß óÆøýà§r7Züc*êK«ÈK&Õêó3¥wä#›-Ê{'¯*"?òlX‡_Sä ¼kÞ»„y×c˜!¾v æãèùü/|æ¬ù¦ü-øÄÂ"ÃÏóÁëÚ³hßåHW›mÿ"Xßá{3ÍéŒ+» vB&5Üö°^ªÆ%Þ‚S=K6ῪÃÜ‘wu£ÐCõvÄÈ´Àß1‰öyŒásMô„këqGð©ÆÒÈ·óïY­^|¥K±ÿ5Ý#k€ª×w9ðª/vêL^F¿ÀPôèp¨@·ÎèÛ&¬Ä^éo¨¹¥ZCÅ™¤y}ßb­h}žË`ŽvÓƒN°#«\m?ËÍtÍ.؃oû­~SàíYåö4•#f·=ÉŽþÉV`'›I8ËÆ¡c™?¸Oì‹1n‹ÕW‰=Ýg—F­t^mÄi7Øô$°»+yE°Ïn'ï'ù×ÝQÚÕM?‡=˜;è7©r‡ækÜ?ÌSëN¡>C‰Y%»/À¯æó¶a‡ô·‹°Âç+.cÛ£-™3…{R½á°nÔU Äx+(v ÒÿþùÕ0 óú{ýNë=×gX…=p<ò‰KgýÁbÌÌÿ"ûm7´¾%oÇ“¤9cDâ—Úƒ…X‡š‹neo´4½’z/iŒ‚ŠViä÷f³Ý¾Çs|¶Y Ĭ Ý`ÎE'Fµ®A=¬Ž³Àø–Ü÷yèåx~"벋ù‘ñI©F+ºˆç†ÙÂ)ŒÂªK?R˜ï¬VVCÖ”ÉB+êšßëÛ„QY)´ázÓ®­M{.=î›Ð˜Ñ éD™ò®D*Å׉ëh%P=´¹Ub<þ*™ö`"ùU&ñ*ƒ §1ÖÇ)ÆŠÿý¦Qu_ŠøíFôç‡õèó˜å”ç¹ñV&‡ iÁª–Î쵫ysYÊü‚®¼Qla¢ržc¢õ&þej30ñ¢‡Ì@bÅŸL¥4‹E9^Oð¨ÆÔ”Öú¶Ÿ›&RÎüŸÙvÔM0Saµ?ÂyLÁY{8œ8yæefIã¯:™¿ËV™Ldßk0ßî²ê|Ì´l¨Õû‘쨾(°\ÚDÅùUž ^Õ§>ódù—mùžýÚˆq©,ÄSº³Zà$ ÊdªlÅŸn£¶Ü"Ø­SE•°åDðšm+êašäíh.ZS$Õ6bŸ”|¬çðËa÷ä3bvävž¹¡²fø—`ÏÅÏk°£Æò†»39 £Ó’ñWŬ‡}Ô¤Ù‡äu¬úæêè7àWO¸¿`²¥5øÕ—`CÌ*—f?25´σÉΛè96ŒÄ /ÃS/Ŭ¼BJ%Õ¸z£—Ý̇ôVåà÷³øVï«©79)ú[0ÒÍ :`O_ ›h›~µMîpÿöÍbwv›L‰Mu;ÏðW³ÉþIŠÞoµêë²FÊeævz³üª3Yƒ]ZˆñÕŒwÞÔWÓß> ûuµy#­z—+ƒƒ.ÃÝÎø«©À«cþW·Ê7_'bÏùý`Ì›ýh¿ÊÍ÷“ä Œv5î*¿xÕÌÌcNÜ1æÀ 7ëä[…·L6+¿jÍÈ ½¼mÈ’÷ÀjÝŽ‘¾–õ&Žù.«²›Ùëoè_õd=úmþ¿N#$þ ¼êîg¯ÊÌ7àW™àW@Š­æ|äqÛ‹y-£q§ï³ N’~8!4“!½T¯íú¦ËXg}Gí€WWú÷ÌmöèPâê·Wûjr‘¥&?˜C§5ï›pçП܈¶F!æóßüt&Æø:péjžõa]®dúÂõÿEqw¾ ë›j¥À,Æ£)ÛÐhÏŽôAå3º'k=«ÝUBÜ?•‹§279T,Í&Ç +fs÷&²jDSÚƒ!^Õ£õåø"~Bµe ˆ21r>U“K£BscÇê“_5!6æñóê¿*Œ+ΤÑ2L#þ§säÃ|¢áØ_j]…ú¢½±;+Ûâ„1^4Á\ôI•ÿÖˆÇúÐ|õß vó˜Œzņ`ïãdMaìVLêJ[âg3왆¬^Ÿ¤µÝaÿŒâ{aÖÀlèÙ°«zóY4^4†“}Ñ}]oSìN«7û`—­çÑÓà]¹ ãCÑ4^=k2¬Zº¥[äà•ÆºÏ“ý6)ò-Ï”kÍ•¦‹\^ 4^¨9¸ª'½ÉÜ´^m>=¸Ÿ¹}-äTðžm´T[NúÓ˜?X" ìYùøUXÈ5xÊ›´—²ž×æK G_d%£&7UÈà¬Ãð©n8ïaµ¢fMÞÔëñ¨É±÷É'@À½feô;×ÂÝçÖ E…Ò gýwv"öÑ,7DNšU‘y˜›ñÍË1#ýX·êŒ¨ÞV^D|kx"z׬ë6|kfê[ìÙ&Ô¼=ŒUm^D/Uë¿©™=~5?èl¯~q«ÝwÈÜ'ÛÝ@?,vwØ21ÖÍmõ}Gð«-ÌÇyñ¢er«TÉ\fC6û~=é tn‡õ¦ö`¥ù +¡«²ÖÖøùv éUü÷eÁ}.ßÝŒ½üêU÷ýý‡ùÚ¯÷>öð*¼êçW¥4¾}š[æfùîÀ«¹ò†;~5“ù륥­ÄøÏ^i}ç g¤4CÕEж­—z%õ®ßÚ»ú¯ö€_å¯a^´^ê°û¢åÝÇþ"؃ ñùŸW…þŒmŽ=w‹9yÀ§4&nö£‡¬š±«ý8«áS3Š^âÔ“@žÓóp1V ú—¶˜ÍÔÕ »)æJð+UìP½£,؃£MXßù<ÖMsîålÌìúÊëRYíÍø½ÞEÓ¿a²LX—!´ÑÒÉ?râŒDuÒ³¦(U÷<¥âimX¯«oò*0bõÈb y;W@nÓ€úLª¶×çgCÛ³.ýZa¥ÁlòÊ$âTmZ’Ž,2—­ 5dšþ/ªåñœìz¬Ñ“˶•ÐÌ&V4`vPX§{Æ’eÐbÔöüŠ-•#8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run003/bold_events.tsv000066400000000000000000000002461323370031300255600ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 cat 52.5 22.5 scrambledpix 87.5 22.5 scissors 122.5 22.5 chair 157.5 22.5 bottle 195.0 22.5 shoe 230.0 22.5 face 265.0 22.5 house pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run003/bold_moest.txt000066400000000000000000000212051323370031300254040ustar00rootroot00000000000000-0.00281743 0.0011486 -0.00170566 0.0184303 0.0325145 0.0174049 -0.0021433 0.000465267 -0.0017615 0.0560265 0.0295855 0.0299059 -0.00221601 0.0008525 -0.00219503 0.0645469 0.0117266 0.0265103 -0.00329942 1.57586e-06 -0.00145646 0.0501292 0.00634205 0.0234822 -0.00294778 0.000505703 -0.00186726 0.0848281 -0.00164776 0.0191392 -0.00303557 0.000932034 -0.00194706 0.0558263 0.015997 0.0395044 -0.00202854 0.00148236 -0.00209718 0.0168397 0.00141445 0.0179229 -0.00240945 0.0017253 -0.00281489 0.0694802 -0.00161577 0.0179572 -0.00190315 0.000761744 -0.00202034 0.0718538 0.020364 0.0178475 -0.00238722 0.000932034 -0.00208187 0.0608489 0.0203675 0.0219947 -0.00241144 0.00111552 -0.00264131 0.0657778 0.0203756 0.0251051 -0.00288306 0.00115481 -0.00223699 0.0436906 0.00541117 0.0358886 -0.00199088 0.000932034 -0.00201285 0.0436879 0.0177298 0.0358993 -0.00289852 0.00183484 -0.00223699 0.0232277 0.0184097 0.0450895 -0.00284059 0.00219198 -0.00361452 0.0747058 -0.00434709 0.0562646 -0.00241755 0.00191801 -0.00333255 0.0747021 -0.00435494 0.056267 -0.00223676 0.00191801 -0.00395245 0.0636822 -0.00433111 0.0398055 -0.00175892 0.00126758 -0.00242752 0.044593 0.00749151 0.0381966 -0.00199035 0.0019355 -0.00226232 0.00176098 -0.00434171 0.0432085 -0.00211866 0.0011583 -0.00285286 0.0664233 -0.00437415 0.0321416 -0.00211652 0.00134996 -0.00163737 0.00246775 0.0197764 0.0561659 -0.00181403 0.000540271 -0.00251286 0.0428826 -0.00438265 0.0378819 -0.00168651 0.00151948 -0.00280031 0.0493854 -0.00437061 0.0379258 -0.00246503 0.00200237 -0.00394642 0.0566127 -0.00434192 0.0379148 -0.00186987 0.00200237 -0.00361739 0.015539 -0.00433794 0.0342605 -0.00266928 0.00200237 -0.00403219 0.0705648 -0.00434149 0.0379073 -0.00240925 0.00051006 -0.00252931 0.0705268 0.0116724 0.0411081 -0.00201619 0.00161845 -0.00345981 0.0329057 -0.00432383 0.0541098 -0.00196108 0.00195165 -0.00428981 0.07057 -0.00431779 0.0585278 -0.00184988 0.00161845 -0.00374857 0.0705547 -0.00434083 0.0563571 -0.001499 0.00252842 -0.00442118 0.0705617 -0.00434592 0.0393512 -0.00225928 0.0021238 -0.00442118 0.0597223 -0.0143349 0.0427937 -0.0023553 0.00163174 -0.00322264 0.0704797 -0.00435259 0.0517761 -0.00222187 0.00176872 -0.00390241 0.0321572 -0.00678837 0.0550123 -0.00198748 0.00207399 -0.00374943 0.0355281 -0.00431887 0.0446429 -0.00241625 0.00233897 -0.0040465 0.0446712 -0.00896315 0.0466213 -0.0021989 0.00166937 -0.00399816 0.0431099 -0.00431083 0.0466097 -0.00266928 0.00123015 -0.00207432 0.00181688 -0.00434105 0.0369768 -0.00285732 0.00102332 -0.00268961 -0.00215089 -0.00435588 0.0465623 -0.00192882 0.00167146 -0.00387522 0.0494724 -0.00957735 0.0465531 -0.00215084 0.00085837 -0.0020819 -0.00798791 0.000380537 0.0465153 -0.00182234 0.00148922 -0.00328203 0.0523654 -0.00196338 0.0464987 -0.00171875 0.000196629 -0.00231694 0.0286514 0.0126515 0.0464578 -0.00266928 0.00148628 -0.00384584 0.0515564 -0.00743683 0.0385557 -0.00230556 0.000975485 -0.00301944 0.0416256 0.0126385 0.0379929 -0.00180458 -7.26587e-05 -0.00168772 0.041709 0.0125932 0.0464571 -0.00247239 0.000327998 -0.00237089 0.0491701 0.0126245 0.0581101 -0.00154878 0.000327998 -0.00224404 0.0295536 -8.74317e-05 0.0512905 -0.00222893 0.000792535 -0.00282854 0.0232425 0.0102482 0.0498965 -0.00118984 0.000327998 -0.00223052 0.0251269 0.0126129 0.0437404 -0.000828327 0.00152973 -0.00382137 0.0344686 0.012644 0.0519827 -0.00288942 0.000921579 -0.00361985 0.0432887 0.0125938 0.0519099 -0.00220237 0.00102376 -0.0034096 0.0472409 0.0125907 0.0471304 -0.00274098 0.00127129 -0.00361985 0.0504884 0.00496511 0.0555091 -0.00178977 0.00163077 -0.00361985 0.006161 -0.00197247 0.0618636 -0.00196526 0.000180752 -0.00190051 0.0515566 0.0125943 0.0438189 -0.00248723 0.000822298 -0.00271262 0.0428833 -0.00734639 0.0718173 -0.0023367 0.00129249 -0.00413002 0.051624 -0.0182912 0.0718353 -0.000494307 0.000822298 -0.00359517 0.0256886 -0.0335549 0.0347181 0.000113262 0.000765752 -0.00216131 0.0308496 0.00139133 0.0773322 -0.00118079 0.000358546 -0.00216131 0.0347528 -0.00346526 0.0431953 -0.0027885 0.000544402 -0.00318923 0.0423765 0.0164584 0.0321059 -0.00289536 0.000525659 -0.00265459 0.0189485 0.022058 0.0145889 -0.00253021 -1.49107e-05 -0.00181395 -0.00172816 0.0100929 0.0321027 -0.00296054 0.00048038 -0.00262596 0.0344848 0.010085 0.0439013 -0.00255443 0.000210041 -0.00258114 0.049668 0.0100875 0.0409671 -0.00214904 0.000202868 -0.00150881 -0.0177753 0.00497582 0.0488334 -0.00255443 0.000433939 -0.00249099 0.036929 0.0100128 0.0563704 -0.00225234 -0.000188219 -0.00267726 0.0366337 0.0100164 0.0652385 -0.00389353 0.000244904 -0.00280284 0.0511147 0.0100281 0.0744547 -0.00240558 0.0004007 -0.00267726 0.02786 0.0100447 0.0466028 -0.00336782 0.000190154 -0.0022171 0.0251392 0.0100515 0.071827 -0.00344538 -0.000258924 -0.00178866 0.0245836 0.00518768 0.0718199 -0.00351831 6.32246e-05 -0.00248205 0.0358385 0.0100493 0.0666231 -0.00324627 0.000597733 -0.00248205 0.00613266 0.0100509 0.0714494 -0.00304609 0.000124025 -0.00262578 0.0550799 0.0100519 0.061177 -0.00234223 0.00029487 -0.00207688 0.0212848 0.0100342 0.0410698 -0.00311994 0.00029487 -0.00314201 0.0281674 0.0100548 0.0715006 -0.0030243 0.00029487 -0.0026929 0.0369801 -0.0136244 0.0549681 -0.00317484 0.00029487 -0.0018666 -0.00102878 0.00453125 0.0651067 -0.00288322 6.70444e-05 -0.0026929 0.0346135 0.0178844 0.0449542 -0.00257964 0.00029487 -0.00215459 0.0346005 -0.000361468 0.0534107 -0.00372991 -0.000118832 -0.0026929 0.017824 -0.00430186 0.0605642 -0.00293736 1.73058e-05 -0.0026929 0.0271743 -0.00421049 0.0541891 -0.00397189 0.00029487 -0.0026929 0.0383252 0.00496307 0.0707118 -0.0035379 0.00029487 -0.0026929 0.00979312 -0.0136651 0.0707326 -0.0035379 0.00029487 -0.00228731 0.0309688 -0.0142764 0.0792017 -0.00267648 0.00029487 -0.00230135 0.0309748 0.0100566 0.0515905 -0.00290273 0.00029487 -0.00265344 0.017586 0.0200597 0.0678327 -0.00241821 0.000438393 -0.00283883 0.043763 -0.00161276 0.0609982 -0.00241821 0.00029487 -0.0027833 0.0262472 0.0100538 0.0554407 -0.00256659 0.00029487 -0.00283883 0.0344503 0.00696762 0.0633901 -0.00201333 0.00029487 -0.00238774 0.0234638 -0.00915188 0.0510873 -0.00231233 7.19574e-05 -0.00215893 0.0423361 -0.00171824 0.0555596 -0.00236745 0.00067198 -0.00306853 0.0309988 0.0100763 0.0678723 -0.00188918 0.00117285 -0.00264511 -0.010287 -0.000981419 0.0404089 -0.00224652 0.00029487 -0.0029156 0.0400738 0.0100719 0.0534442 -0.00241821 0.00075608 -0.00304902 0.0157955 -0.00671672 0.0678779 -0.00174529 0.00132257 -0.00389539 0.0437512 0.010076 0.0507471 -0.00136497 0.00132257 -0.00402603 0.0437562 0.0100737 0.050763 -0.001835 0.000397829 -0.00247374 0.0234923 0.0100519 0.0507299 -0.00125186 0.000397829 -0.00303316 0.0408523 0.0100522 0.0507469 -0.00125186 0.000397829 -0.00298171 0.0152125 0.00427529 0.0507469 -0.00236508 0.000397829 -0.00316564 0.038434 0.0100736 0.0597844 -0.00165206 0.000397829 -0.00298171 0.0222172 -0.00497013 0.0580463 -0.00180735 0.000785517 -0.00298171 0.0512929 0.0100712 0.0580269 -0.00165515 0.000645782 -0.00286808 0.00858563 -0.0151238 0.057995 -0.00216562 -7.64855e-05 -0.00298171 0.051065 0.0100711 0.0579955 -0.00154264 0.000684923 -0.00272616 0.0252382 0.0100732 0.0580142 -0.00102895 -7.64854e-05 -0.00201168 0.015295 0.0267658 0.04144 -0.00216562 0.00077782 -0.00307546 0.0510486 0.00589879 0.0371748 -0.00167363 0.000340218 -0.00215951 0.0311919 -0.00252658 0.0580035 -0.00172743 0.00105819 -0.00303764 0.0130084 0.00749773 0.0508205 -0.00196966 0.00102623 -0.00376 0.0253775 0.00354584 0.0579967 -0.00201208 0.000714121 -0.00265927 0.0257866 0.00779909 0.0608463 -0.00136309 -5.90148e-05 -0.00292025 0.0403732 -0.00716491 0.0598928 -0.00237433 0.00149695 -0.00373614 0.0283633 0.0194482 0.0616521 -0.00274177 0.00124283 -0.00315425 0.0241817 0.00950088 0.0807063 -0.00248117 0.00115669 -0.00314891 0.0184321 0.0126009 0.0572005 -0.00108829 0.000182715 -0.00205563 0.0114509 0.0377952 0.0462139 -0.000905498 0.000182715 -0.00174062 0.0384118 0.0450587 0.0438968 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run004/000077500000000000000000000000001323370031300225155ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run004/bold_1slice.nii.gz000066400000000000000000003214551323370031300260270ustar00rootroot00000000000000‹Ä”GÛ­Ou×+»w‚»;ÁÝ%8‚—!w‚»»»»»»»»î>sï7 ,†Üÿ[³μ]U]µŸ½OË©n|ÁØZù¬/©/’Ïø:à·ÿ×§›õ… ø»ÛÆ åñùZü¿ßqó|úºEùñšÜÿG ~no…ÊϘ*MpÚõÿ·ýÝÿÛ¦}ûZæóu ³ÅÿoôcÓ^ðý€Íß'ÿËÿïk>ù^­YŠ´ÿ³ æ¶Ì—ÆHàáùà«lòëÿs‹av™1Χœ›Ì]b¢Ê*_#§Ž“ÓÉàì5/}Ç¿©Ú_¾¥îX[”êPFznu+ºíœ&»íc«¹MݳN9§ü7µ³”½Nmé…íB±y)=³e¨’ùÞ-Aƒiº­f›Û¹v»s X•^™ã¦˜}OGiå¡môвs3´³‚CkÈðT {êg¸í“`Ô«ãþá±-é ïéôŒÞÒPÊÍo(#/§8*—§Û¶¾—29_«Ó4¦H´ÜÆ£\‚ÇPlÊM/ÑëKô”ªñ:L¤Jhý)*I­ÜÖ_Å›Î@ú@u©!m¤vtË j4ƒ ðEžÆ¹Cÿ÷Ó ¼&Ÿ§-4ÂÎ1æ 5cšôNbú‹FPxŠB#éž½k¥Aô‚ÖòxjB˹+ûx?*~ +4Ÿ&Ò,ºK'm+÷õgªÍ7]ÜJ´ñŒø.´" }Oùè5öК²XkYpU.Ë+é2í¤¹èµ¥B”òÛV;ä+ç.´mqºqKNÅ!1K*Ñ”œ‡ó<€¯s&nͧøoã\œŽÏÐEÔ\@):sÓ;·ƒÔ[åô±Ý( }Çø׿Ãs”…r‰)“$Ÿ‘²Š+HYÈ9âíü;¿æ*¼Ä¶·E‚Œá;C”žJPŒû~‚™‘€Ïq*‰.;y³”Óüº^_©O.p=‰!+qd2 Í»ø /äD”‚ö˜‰ŸTìí<´õhƹ,ïæÒüŠ¢ÊTY ¹” × ÊÞJ ï•–]ÜFÊÊ.Ãyx**å9|#3ÙmüI½N6gÃÌ:O©¸?§ K…0Òó¨ W•GÒ_ãi7Ù+=´¡>’ zX+êOkiËCy¯âÒƒñ#e—Ö[dÖ9!9-fÿ:ÂY('¿çøù;ZA÷ÉI™¢t°NÑÈž§[å°®ÔW\_ ߥŠ<ˆãð"*nÇÛNko³™å–¢TÇßc&å9ò^ëxí£Ùõ‰\G…ÚYê=Ù)•´Š² Ð=Róš¹/%¥ˆÜŠ ÎÂÓæWw²ME-éGãŒ4_¢{»µ¦ì’ÇÒ@¯èhíêMñÞhV¯…Ö’»z#ûÄÒ$\•|Ô®Û#t‹’ÚñŸ_vÿÕm¡/µù{u¾ô53¹þ%?R›Ãf‘ãs‹»‘Üe&)ªlñýâÔv29%œ­æƒ/xêüŸ-œÙ‹õ\êWšBP'7‡[Öii*ØN¶¶[Ž~”ú¦v6¶ç©”ôJÈsé‘ÍOM · 5¥Á¶¼ýÝ.°ÝÁªtÛœ2uí(ñj*JÛI¸ ×Âlªiç`¦ß¦T›úPoÂV°Á©ØÉ莰M¡ç“AeR_´ÒƒÌ£t™+w5¨;ŧ_åG&Óê¼Ä¦ÀÍÊ£1“ÒÛ‰NR®Ã— ð‘y hw‘ÖSq*ï6øÊ(²»˜îáõhõ?zS1ZH¡#Ó teÁ÷´–öRLƒê0š Í»/ÔŠb 8ñÁµ! ZDðã™}n;Òðr>Hמ&òO æh8ó9Œe´ñ6·uÝŸ©6Ñ´q«aßáy Ú· ÿÊCi©<~ö!ýD1lDKü¨Å+Ps!Í¡*äQ:ð#ÅgùQÈo{ ¯¿á'ÒðZ‚ã³øgî %NÉÍù24û0€–î§c8öëèEåön^'hŸ;m{*•¿ âTãËàãfÊÁ{¸ˆ1K2é!I)ëðUA™ ¿£b¼“ûóŒêÛÝær\Ô‰J…¡Xßó">ÉWy#¥€ò¦“°àÇ)­ÕuÞ„î]àZøÞ"ÌLPû“àü# M£1È —èç½ÏT›mz¹µÈ5šJ¡[±ò2Peðã=ò_(›ÎFƒû­†_pT6"õÔ†É}Çù ?nøª¸KípÍáÜž³€Ë¡¯3)?ÏàŽðÊ[ ÈMùçÙp²Eù"ö| ý5ЗŽn6çLzë®¶9U@^8Á7¹>?Àî¥â|–‹Jètn½)™ä4ÿ$Ù@‘žiñ †þUå­˜ÙƒŒa'œzuä¤p#‹ÀG‹£øÉån³OêM²1ËaLšs[ŽÎ·xºlBþØÂ}ÅçMÖï5\þ -Ó$›¾áñ¼{]ÇûÑëp’—§Û®µŒéeV‚¼U1 rð-Ì·vÜDþ’!yãtÐõ9FpÈ1J"ky|=™—"+làȱø>µùHMç™N8Ž‹$³‹ö!/däÔÒZPÉe›\”uúD‡ƒäÅЫ²WWi"©¥Ç±b*ðDŽÇS©¼e®½óf…› JÿÆO¸µÊáõ™&Óy:DÓhH‰ ºS …<•ƒÒ\kk!Y©ƒä'xÜ‘r Õ“þ®7Øh¿GÚýk2 í•öÞä3òFÒéSýS[yý½›šÓë¨Õ䑞–W~Ðèܬ;ÜðºFQþWø1ºÿ(ð«w¾Ú&Ë¿äGhóÈŒq¬›É}êô2qPe§¯¨S܉é¤tö˜—¾à¹ûÿlaÌFw•-B5(üsN7¾[ÔimÒÚßlj·€»üˆ÷MílboP5 eváê7ÛÐTÒ¤GþhBõlÛØÎ²“œUÁªtÜ4yí;:M³°¢·@9ópYäΜvôæ-µÆ~ÚPOK6³]Œz5Ý?ܶ6݇ÿ˜‚âÿ¥Ї¿ üxM•À¢ðçEø*?rš_(­DþHÄ)ø7ŠE)醭„dðŒŠò1ºBaø °®.>¥qË~•cЧRÔ Ü•zÀ•/¢*|ºZ š2íÝK‡á>š¿Û_ÍÓ/ÔÊb²:¹À™¾™¢Ó$zbŸÚVÐõ<”»!áÌ‚J14Èr8Ù)4YGGá>—?¦™‰n: ¥?Ž6DÖÊ>…ÏcÙ¸6&Ô«6ggÿ»L‡Q/E xMÌÏð㮯¾»éÊrð"!+/„>Œ„^7~/p3>ÍÞ ’à'¨x ýõá•¿¸©‹AêmwÚ ”¦¼ ÆIn„×·£ý”‰Ïs^I.K gCÎr=‰#@bâÒH*c‘?Jñ[ÿù#ŒŠU…ʱ?D•=|H&Ñe7Ÿ•JpÒ;Ôxø×EÅ•\˜sòcìùŽü.í3Ë>©8Ä E‘ïîQ=ÞËåøÅ–É2BJr «Ý¡¥ë5¶WCÞrCi(Grñb6r ü\Žü±8Hþnc£;ÊÊ€†È5EH/9̽%¼·T3©B WK*é)Éô.OÆ8úóÇJì]%>Oµmk}ðµ7k(Üÿ}Pò1ͧö\STG€BCe´Öbz_òè.­¥«ä¥”AÆòZ Ê{Ò„¿)Ú”?f™uÎcÊÆ7iíàl”’“Ëh©¨â5Ô•rEÖªç ×Ù ü¸(Çt¦F‘šzŠBpƒà–R9;À6 \{‡Íl·4ý€ü±„ÂñûŠÖ+¢Su”æ×WrT»âhüªÛÑçKÒlÊ'ãt²Ô†;aîBɨ¢<³p»掃Öu¤ÎH÷Éi¥°·@Èqy*Éõ¤ŽÖ¡ÞP/Š—Éë¬ý䙞“ØMJÍè/8°vrd,;ê ë­õ¥6ágÂ+_M“ø_ò#“¹mª8G¸î ð#ªñÕw*Aé 8GÌm_p¼øß[L3ÇíjÃc4ãÒnÛØ ë†wº›Ô¶¦­åVu:©œLßÔÎ,`trqÌý á ]`G›‚n𣭭~L³“#Áª´Ëœ0dÏ`¥Ì¥ìt‚¾ƒBÕ¡,”ÏöD‚¸Œœ†jÒd«Ög7£^5·¹;Å6ÄO.ÃJYò†ú@ñ|œ„×Sa¨aVzms£æEk¾Ê¬&)í·q è±x¦r½Þ n‘¢÷‰‘?Z¢Ý‹)epK|e:s ”UAÅ4ªß 4›I•x>dSj:Öĺø• •²ÃÌã/ÔŠbb:oí+ÔH†¤0í|ik s=§¾Ü“zÓxnÉÂÇÁ¶P|›6ÑdZ‹1YnóºŸ;4Ç´t“`¼"r/ôq=­B¶(‚ž†ãô<‘2Ú´6$¼y}ÎÏ3áÎæƒWY‘àò`DB|†7}q&ÓKêÍùù,/¡fHƒÉÑÏÜ™[óSªÁ¯øe†¦æÆèO;® ßç2ð󣥤n•´r‹IfYŠê!9¯Ç¾ÞrEžo+ؽÝ·1¾Ê¦!fà›Bcý¦ô”ƒnÚÊP×ÐÂCа˜|Þé´1v«e­;}ªíÃï§v ÕB¿ ðAÿ˜ùÃ`]úóG~‰Öÿ†üôZ¤¿Û–ü°Ü—BQb¤‹¿ì-Û!àÅ~ÜšêÑ0®†së6:X´ŽæAõ/Ñ[Î}õ™jSÍ·,<}xBeé ` 2½ýl3Ù(2 ù#3¯¤Ðú)àzäÄBã3ü¸çËã.³3èM€þEµýü‡1?݋ςµ Ç7àÿs æ:…c¿ þ=*ùÌõW³œ&¶55 âø™gÜŒïcÌ€&O¸´dÏÏ¡»ð÷y¤‘|²€»Aó~™ÆBÿ~âöž êââ;olp?;/åÇý#ô=8ò¼DõGRV+èr]¥Qå)7ïd¼{)¾ƒV?JRlÚo6R±™êbƽ§Ÿ‘cª°Ë‘äé.e¹ ŒÓáêz+A¤Ÿä÷ ² );¯?n"3<@Þ[äÌY/›˜KðQhsiþùí/”ÍÒVŽðh‰åm×ršL}ÞqyËC%£^F_àhû¯¸Å $9¯°ík}À±Ý‚qÍÃ/(?ö6˜*p9xîÞêh[Ù'­´º>–ìzUëèx9-™´¦.äµ8RG8žtC*¾B­íØÀzš#GÜAf¼Æi1®q#d6Çk Û$ t>Z¸LÃx õ)ø1W›J#Ý…yß’»c6M¤òv°­¸ö.šÃnmjµ?„ãnÑ4y£yt´öÔDW Ó]ÚFçi4]*ÈHÚJ^i7)KÑ@£.X“‰yíGï_m6ãÝ 6µ¤np¤Ùé¤øÐžöHZ—¤°Æó¦k?ï ø‘Íë¦%ä˜O3‚š ¹11æõ{.6 ž~ýÏnã}ï}gïëÈaþ%?ÒÏ©ç7ªû’‚ÿüù,_N'«Å©îì4·|뾩Ú[ß"w–M眂®Øn<7­3Þ\s²Ñܪîl'µâ›ÚÙܾƒ¶8PáçPøi6$ýhÒ¹áÀ|È?Û vŒ³3X•.›“&§½¼Þ~”8g†J'²ýi<…æ Ÿ¨}éæµÁ©XÅíæö´ùè:­¤!Ð̰|†:©ÜÅï”i¤DE¬öÁ8ÿ‘Ü4F>žf#Sðc(E¥xtÊ3ŸÏƒ#‘yÚç¿*² et¿v´¸#ѧJÔ Ý’ÛÞH„Ъ“<‰ëœ?‹”pÔ‹Éïi"ýiû˜_¨Û¤tR’Y#EAî²ýˆ£qŒ† c•£QðàÏè8Öm8~H ‘Æ– å³EÝÏ]Ñ5Ö sKBÅs?$´ k/!Zú{hHYì+7º, ò!o^¦í`{aré{ÊFé?ÃÛ¾bîr8€°ÈB-ø;ŽÁ«à0g@†qqî€ •+é_ƒNåæœÉãÈe[À¾<ÔMáÜ RoŒÓÒ¶ÄQËȇ¡ãMÁÖ®hanä—Æ’XfANI.ÙÏ9¥ ¬ä®p %ø"rNlðã*üLÎ Ç%‚ ù©"D xÍ7y¥?RË3>Í÷¥"ï=¡¡åW—¸2D(À$g°¿ñ\ùãŒÙòIÅŽÎ[3î.øqJnø/þCúHbÎ ƒu”¾ÖzO›Ézn"¥ä²Wv^ÉoñÚH±hk+÷úØø\”Ïaœ ø¯3 ‘²MzÊrn+i½õš[hðã6‡ó¿ rÌãæóNÐ+ŠäæI¶{`­Hf€ñ¿s˜‹¯aÎÞ¦QT”‹Ê3©ñµ“,”6Zé-«>×ZÚ[.Hzm¨Ëy]ÀUrQ¥?\Íujfgÿ},Ì Ç"+?€Ç¸ÁÉé6B¯²êýYWÊs9­Q¶Vhl/žž•½: zßZÐú‘‡sb¸°*öO[6pí]2·ÜªTëa'Åg]£_Åõ2ƒ !ÅÐÛ:Y¤™ÎPO—Ksí¡å­þ.(øÑ ¾-œaÁÀYxÈtƒW.J±&òÀý]Aš9Žì·Y#e¼Ö):ÌÛá½Ó8^-#·ô¸¦ABJGlh=°G jqì˜/¬»ÿæ¶Jý7?.#Äú—üˆbn˜ºÎu'²Ñlüù{”/‡SЉèTv1G¿©Úcß$wœÍMå)ø×Mè¦rjš‹n]›ÞmìÎsr9‰¾©í%ýk ½ëLClLªb"¹ßÃE”´¹l9»Ï.v‚s¶Ûç;~ä³Wi?mDÒX‚Y–•ãP ʉ$¹þ« t¹9²ÜŠöJ0êÕt;¹¿ÚªÈ1S¡˜C¡þk=ãðc$øY”ü(EolI|/%¥ÿ*?B d¥U648QާQ$JN7lEš~dá'`A,ÞFµ¡ÙÓ¡µUÝÎ_ŧÎx´¬5'{ÐÛZ=›rñz(@S.B9¼—üù9>¿¡å´Úþçí^ÿo‹f¢:ñáÁúS4ðcøqÃÖ„Ë?C¹9• ®\-ïÄZˆZ ‚G«¯Ø¦îç®èkº»¥¡Iy FèH^‰2‚Þï¡é=(«½áFÿ¹Šš¼mÜL˨&…Ã^JäüþÞvúò» lW°g÷…f$â¥T¤ŒÉ£¹÷æð¡Åù<Üþ^¤’HI»é)ÔÒÇùy–õçÏ'8­l3ì+-xó»K¿Ãý–w›Iz ~\’È5¥˜,Áã@ñŸ Ó}/?:ØâAzüÂÄùª€GK¡â®ì@¿osR‰$ÇÙÕJÚ úÂK!7P?#ú] Gÿ-ööŽ—pAÌSã|zýU+Çà»+èÕF¯ }Q¥£LG(&³uºFðö¨z­e;÷’ærÇ:7ïæÈ;ù9fÃS·å'õúÛÜ ÿ!¸ŒlH[ú<]ÖÉü|'ÉèmÕ àGzï˜\äRUÏ ó¹<þÜÄ8±dã]¶[`-Ï´5k)òÇ *̧ µ¹ªXí«Q´,Gþ¨¨ %Z¯¥v•+’B»éJÞúnäL2ÓƒÖÍ?:›<Âìu¢a®^ÇŠ½É‘Á!e•ÖÚAׂKg5†7B7i4/^—Èqä§î¥WÔŒg"mN¤ªv‰­¸ö6˜nn*ŽU´’ñ»†H8/rF{­É.]ª#ÑÚ‰AHgí¥uå…vÚäϵ±Ž“bvU œ…{M3·¯Í‚|ß ÿ—ŠnH2ï’Öy*¥4«7R' „ñÒ{í´¼ÔƒVãK;ð£%´q Vå]¨Za;ýóË÷¹æeàW·þ?ø‘Ø\7œÇN2÷ÓÏÄ@• ¾"Nç©àì5¯}g¿©Ú;ß2wT³4á0ø‘ÁmáŒ1÷ÝÊ6…[ÝïdøÆóç1Æ}è™m }î@¬GMz7/œT}›ÉÖ²ëìl'x é™9lrÙÇPâåçmŸÓ÷œ­LcgÁå_£Þp{u©—½ê–·Á¹g²žÛÂý ï`žNF ïÝÙã=æælÊŒµX Ü+ý‰Li¿Ê¦å£56¥äZÈ/I(7ݳ Æ7)'Tb%á ô#h0+ ˆ[õ+£øØ™Bï@Ù.`D‡€«+Ñx̼˜Ûð<Œ>ÐfºBúúüØ;Ô¼ÿB­Ì&›“†Bñ¯â#kœSmŒ×CšÄ¨2á†ìA™ŸSDd°W#ÜBFiÿÙü±ÀŒsËÐ%JÍÐ.`ß©5D}âTÉÆ°‰áž›#5l 'èÿ(¸÷0bŸ½p'ràFÛû^Ä­¡æ‘x9Vó8Å~\üxý¬ÃÙ';¹0´è’Ñ=Œf$.Ä»ÜDNÐ+Œ8Ãm+¿ûá³B:ó 䬋ô¨t!õ®T’½ü‹ä—M<‰§2ªÏæ,ÒšO =þÞ¤AÚmuÞ¿þ‚÷Q\~Ê©ä=_á;PävºOïhüO+‰‡Š¥ÀÍ×üíÞÄ•à!Þ›9AΟ3FÜM]¾Ž™–ÓH_™ ͹ŒÌÒùú iÆç5“[¡aÜû˜À5;vá…ç+´ ïhÏVrC¦•“ÁJ`O^žãpG"c¹ ‡âÎà7Û²Î:7¯EÅ5`Á «¾ •ú ?Îú ‚ƒ0:³¸FDÞŠ¹Rq'Pm(;’¼|Ä— y١Χé½À^cs ¾ì&u‚Þ!?Ëéeÿ@{ € ±¤-Ææw´07òK))‹$£¾–RrŠ«KiYËã8úþûŽ/íù©meËüãþóX cI*Îë8º„‘sX‰&øƒÔ×!z\/ëwò˜›Hñ_‰P )å6òÇ.Oèµ™ùIÅÊÎ[³âu¸?Ňl1TfK;Î-+t–F„‚‘×NÎ!Ï4Ä8öå¼¼=yÇGØ&ñÛð“zÃlvð fIynÇáù=2 k„dõi)ð#“·V\+eô<’ÑnÂÀ®°’S~àsö—ÀZj:™•pe%@ÝX c©:Æ)š.ÑÚGÎÈD­£O¤˜¾Ñ¦H !´„¶?ñD°-¿ôãlÈìÔÀzÍjç ¥ákÈ'Ùb6¼?zjHèqI¤g5…· ù#&2ÄS9¬4« ×sp\u‘F3 ß¶¶ómÅÀµwÀ¬q‹"“7‚ˆÉmí)Ú#Ž—|k­ét·TÓ:[ë$M„œ”KGiRy=Âl ÁmÉãzª8 ÷™npéàϺSJJ÷¤¯w^;Ëy%õ®¶ÐyÞ /~ ×òÓ;-ïàAŠklnе=š®Ù‡ô•· ¾°îþ›Û&ûÑù_LôÉ$æ•ùÍ í&q#¹óÍw¨²Ä—É)â„q29‡Œ1Á9—ü÷vÇ7Ç]fÓC‹3Ñ9›ÀÍä–r¶€Mm÷Gw…“Ûù¶vúïïCï¡WïÁÙ62¥6™Üdpt @²vŽ]äï¶‹àGaû+e;tk%½¦äœÇý;Û‹¦aÎ5Ç*ÿ…¦XŸ­kƒS±…ÛÁígë ]si<ÍîB£Cò%ŠÊK"ÞBߨŸÐúL”ï«ügÚS:Úmã#güÈã)+¥§§H/ËéŒÿ^ÚKÑx;”ô0-¥"TËíö•Q çΡT½:BÃéµí ¢Ï¤PÑЉÌÈL÷ñ?GH86? ´È0a¿P3®Éï#ûPB¤ôA-ë~¼¢9Üé`&Ôþ%ÜܼÆ/âðã6²?ûþÕÓ×mÑʆ^ÖÄJÞ†û¯rÄæO•ïܰ²œ+ #Í££èÿ$08.øQñ£'Gü½­÷åqçay8÷áäàÇú€óçy‘ ~ænü„S€—Gù*4/-çaÞññIð¥_t:‚Ôê Æ\+ ý;Í¡¤úÕ‰µßã†ðÛÓ%¿Þ—̲‡KâÏÙÈ8ѱ—·<üèÏ/l›?Hߘpвðãk â*û»Nq …~*µÀËz^Y®ñO’TæAËK#ëÜâ—¼‹ýgÄŒ³ñ“ŠÕœWȼËïjCÃä×ôô†Þ7áôȳU¼ûj½Ÿ‘<~“²Ç:[?BÊQ°°&‘í÷iž±9‘PÑVÊ.ôs»ì‘VñŸ’ÑÛ®4‹¦ôŽ£}K$žá`euÞˆñ /é¥(Ÿ±CkE4ýÍ ¾ÄLÛ ò×âB÷$Ôž²EúiMä†Òú^»io¹+yµnáõü'Øš Y/ÿ êÍ7Óœ÷”•/")DþxB{ùé¨a¼&àQTÝ¡ ½Å:Ox) þt±6•nºN¤1òG¸°–vóQþXå–@«G)#»P‚áòXÓƒ?kf]$•ô \“ºN~F:Ê*Oõ7i‰>Eâö” àågáÓÐýÃ&†GkŒõšŽvJïšÖ•òT΢V î­õB{á‘—j˽"Ñ5òSRþÊ0®î Y®ò¿Âå¾D1ïkð¯ïÿˆkŽ™^ÎK'ƒÁ]cü÷?Mõ•qR:ñlÎqóÁ¼»+þ³öÍwGÚbàGz:bÓº©ÝìÎsÐýѦrr·ƒ ¾©…ì8xE2ð0VƒLEM7Õ¡J6‹mk#ïÇæ¸)n   ˜Ckˆ9ç¤D”ˤ tšÀ'¶¤‘ö¾ÛОF½vn·›­AÄKi1´ù§®oS"žE 94ÿðܦNþçãüGoÊE«?bÃUNƒæd‡ƒ¯Žuíÿê>­†oÝ =R¢ªn«¯Œâ3g=Ã(µyzÑÌÖ4…~äÝ<[p. õß …e î­¢åvП_’Èdq R(Œ<ÕBÑuû µ£ë4ƒ‡!gö†b|€Ê>',š÷ký¬ýÉô™VÎ6CݦH9x2ÅQZ‹“ ìvù9µ§ö‚«²ê^àUGi*È—ˆŠaÖÿìûWyÝùH /Aâø£¾ ÌœNÙy7åÑ||lÀø)ïäÔH —1‚! a¹ßv³9A¯ít³0V©ùøÑšÛ•Öƒ&·¹d‚NÐÛ’W#ä“eüGFþx1Í,ãy¯íòóWL4Éê”—³Š#{evpF =¿!m´+<ï]!¸½Ä èwnÔ»Éx/ÆŒ¸n&|R±¾óü؉YQ‰oqŒ{lé%Û~r!ŒÖ¨pÀÖë!¹ŸTE k.âHò ÔºåôÙzŸÔkdýw¼ûS`þº7Èf™Œ–t‘tÞ*Í}ï]”‡¼«›þ³ñmsÙ"Xí%à@Ó» Ý2Î/æ¶[ݦv‹¹‹tηq®¬}ACàŸû#/t¡ 6%e6qÝ$ÐÅÚ6£­jÚÉÎÞ`Uzd¶›rHŒÇ¡õE0ƒÎRzÎE)‹K¡ýMžl0Þ¾BV:ŒzÝèéOôée<¯‡äÑžâÀÃùßÙÿžA#B»P|JüU~„1c¡Ä0£q1î ÅLŽ^·Âº>FÅîÅŠÆ‘h¶Ò"Ô-å¶ÿÊ(¾w£E òg1¿_ØnTÙÿ$BÞÄ“¸#tt0¸wüøoõ ™á´ýý£÷C?ݘ¼àG0'E¥Á‹ŽÚŽô;4‹{¡5s¡cïhø¡ƒUÈwAƒ ¶þgóÇLÓÇí€ô“ ù¢Zp¬ÌFU±ê•§BöŽMVÀAV—/Ð:šW… ÒTƒò~†}iÜÅX‹.2À`ð#RZ7̘ìpµmy jÛ4Az|×D§“ªpQ‰ =Ž£-e™ŒÖ"zRŠ qýU>'e5·®ÆqÉû8¥tgÿ³êÚõ¶šíNTNG¶Žrtdå½\Jz cÕDL:Vcx t®ÆñÒéÙ¯[´²ôÕ½ÈÁMxªýI ì"›2pí4[Üœ8¶åpücò»z‰çåGkÊir]!Sô‘n@þ˜«‘u•´Ö‰OîêùüÍÏB™xœ…gLs·©.Ô.=fñqIä=AOWÊNY¤êÍÑñÞtï©ÆõFh5ðãø´§ÜœîÚ‘ôÜ~@N¯lç}~ÙýW·Q¾èï¼å«ðäóÅ3×M+ç™Sùc ñß1Ú—ÕÉê„p 9çÍ_ßxÿÇMŸÿþÁRÔ «æŒU7‰›×™eö»mx·¼»ÌIèÄþ¦vֱש/üsÿUÝÔßæ¥ÔFÝ„X 9mj[Âî²³œmÁªt×0•­ÃÇi2•‡£9?“:ÍŽî€Eðýnö®Û*XçÏ[¹ÍÜ_m~òñ M£à¸O¢…Éø)¥à±pa·)7t»Õ Òãüù d¶m6<œQ9žHQ(~º²’ß±^GÖ ×\9düS¹ O1úçöÆYJ±¸Ztt¼kûR5¬ç¢¼þ±g¡|¼,Ç€F®¥Ý¶½ z-ë¶8&§S†üOpˆJIAÊÐôÔ6‡®Þ qàG…~‡>CêºGËA¸ ýNÛÖýÜÁËÌ8·3Ý‚&/¡2t†öcÜ âx:¨Ñùã„:ZÎy1(³ ùãäÏ"ðµ>þ’àG/ôu5wç$èÍ»?Æl0rÖthv<è&?x~‰ÿª ýtúnw¥ßy¤Þ¼€üQü¸Ì1ÄÿŽN:MyÙ'5%½Ì‘ôú ¾û2—CþXÍ}8>Wàg<‘ãKg>n›Û<ÅÔ‰ oZ~b>G‘×|”’ð9Î aä ß— ZW×é=¸ÒçÜ\ÉR𣠲ÇIä¥í\îæ‰YóIÅÚNH*ðô&ü<ô8,òÇ©Êée5„wLÃxÊ9n+•e ·òßëƒžÜæß£¦äÚOŸ_ò‡-À~rÚØþÿ Ï•ãÒW¦sIé-ÒâšTcy·ä*÷‡Þâ•<i8ò'—Ü|ÐþXëƒo¼Y…^s?'”v6Õàââé<®µe¨ ×ÂÈ Åô¢Ô‰r_ŠkÝ…D<®&ƒôçdüÚqõ&›ËNŽ£u#w”³Ê(óOzP¾ÓA åT¤ ¼ zDöŤ»î£÷Ô˜ÇÂ# ¤ºv͸öšÃàGU¬ôÈÎglî-)¼Ì n ©;e ȶOËkðn½”Áh†”gHNÕÁPÜ„’`V¬¦Ò=ÿª§;Â&£pi)%=•¤ nC™+'¤cÀ³UÆx+½›ZΛ­u%òÇCÉ ­4,wŠìƒÿ”Qîÿ•óç‹|úÑó¯øÊ™o;/ý÷–ÈÜ0ˆnE÷­32à]°õ¾œN\'´“ßYoĬþ¦jO|KÝq¶T3͵Ï0ngŒ9âV²/œÒî'ƒå›ÚYÅ^£NtÎv€â— ‰67ÝxT‡âØT6§f‡:‹ƒUé…9mªØ×Pà‰PöU´—"r&8¼¬v*³ÿ^‰\T~³ݲÁ:ÿÑÕmëv·?ÆÑp¨éò?)Ø]^}:‚<ã xI(JòU~Ä3½àÂ×Ù(È9¸+ŃRß±åhí¢Ô¼Ÿ–Béá}ðõ`¨m ÷§¯ŒbDw5ÖQsp|#ôô¡í 6. j¼'pSŽƒµõ•ÏÒ 8 ¨9Åv4Aµô?[\SÅÉ…´ÑÉ#4õ¤ptÞ¶ÇßÏh$”ñ2Ò5êG`„ÏÐ>û³û¹D³Ë w{`¿±x&’Åy¼Òÿ>Í^º=Òà)ðcׇޮƒJ?ŠÐ+› Éð~œöua-úxwâ„èÙfPhôk׆ç¿…¯· _Í%¸$ûÍZŒ–FàénxçNz3œöè[¸ñ`ÆOàG70¹Í Îè•ÛæÓz¶0gBj<йáÏçyz9Jfs'ÉìíÖüú†òÊc+…tFy¨5éè‡üqö¬õÁ7Ñ,ª*Ì7áTŽÐBú Ê©ª%d¦ŒÐÊzQrëí­Cä…Õ4º•Fñþ^zýHHvx`½™æ9â"fè Žç?fuE{JëvI\Å›•Oî¥Ô}b¼šZÚë6¤ß:Hž™‘fkÙ¶pàÚ[[«§êÅã'ö2ý.!½¼:K‹¢—û¥…^×cZüˆ¬Û¤®ÎׄrQ•’XÕ4?UE¯þv1ÇM·›MB©>fpv:" ¼ZD–#ü¤‰¼¾:Ì[ãÝÓ¼ \=¹£w$ŒÆ–òú·§›v¼ÿ9rXCþWÎŒó½ð]üê¯Ù¿æ‡šS¦©ãsÓ¹ŽÛÕ¤ ¸0¥ƒs²8§Ï|ÛóKžúf»‘°S&šlw8oœ°Î`³ÓýÁžs2º#œŽý¦v–ÃQþ‰.ØzÈ©©MåMT74æÀ)—mz;ÏŽu¦«ÒM³ÛÔ°ï¡À£ Hs¡# 91|~q»ˆ†`ýä£ðè-í5·‰ÝŒzÝ&n[™C1G#܃6¦8|üè~ìÇœzn Ãc3åý*?ØôG ¶Z†N§B:HN‘é–Ͷ ¸¼‹V`]D­žøNrJòÕç_=qÆÐÕ€'»m¡VtÕN?–S%¸½‰\—£óká|˜ÿŽ¿Þ4ÉÖ5Ÿ»[Ü¿E6™œ x]OäH3Ѳ64ÈÿDw¬ªB4 üˆÈ'PbónŒ¥ÿ~Ü´Ý6t?÷D­…fšÛ ô~J¤.ÑnË,T7àüG} i¹adÚX‘ÑÐ~ üÌ&O¿û ?öûª¸« øo¨'˜“˜£!¥µÑ‹¢mux2;*—æ; ÈzÎ˹ÀÕ´´¿Iר‰›Ð ú„ÇNÛ“œ÷òi.Ï.Th´Z¡Òyd¡äדRT.q)É‚´ÐÜÌŒä~J~^h«ÿãþó«&:•¤z Ðt¾ÀWù@@þÈ,Žç—Ò\›ër½©ñ‘*H|Ϲ9 ïãµhïhNAßÑYsô“Š-œ°`íV$³r|ÙÇåðRÞ>+—•Õ:R_ë}®å(òCuÙ /ò=4ÿx´G¨(ÆwFû«"/ܧ T¬!Œ×Tô²—ü†<”Æ[¢5œô5yÀÓ¡üÀèYH›@mØs ¾dûÖ3Ь§Èàô¤Ëƒ4’~âäœ Õš]F#9”Ô«RXè¯:\^#Ë%Óíèí p>š4ã˜ü–ª}ôþÕRsÜñ@ÔXÏ9Tü '”?õ•VÒ’\§ e u-ø[‹Ï›©á¥µÎǬ©ÁK?:Sv»Á& \{óÌY×ÿœõŸ‘jÓ1ÑIê,´"øQ@_Ê!i’ŸÆ×ƒÐç-R ©D¥—Ö—Fð:òG6ª€dõ÷Uä›L/w°ÍùÖ38=m÷?£]«ÈÙ‡¬–À릣½¥ÞuÍçÓŸå2RL𲸦@’¿mgÐ}¸ÙW”ÒïùKÿ³Û:_¤òÇi_ëýüö˜æªùݹîäq_8šô¨2Ñ—ËIèX§º³É¼ÿÆçïÞòÍB¦ËíTf·:÷Q§™ã–´œ|î<'‡ó¥«|>¿…±¡[·m!xÊtÔÑ U4¯HPžËnxðcÌûϘí&£ÝEÓ©/ôa(t$§¤èþgä@óSiäÓ:ÔÞÞrËÛ«Á¨WÓmãö?ÎÁo¢ÉÐÃ# ]¾G¡xÅä혩ïmVèöûæð—6×´?6ØppÒ1ðóñá=_€Ã£@Žd| ši5ý“ÒP6·ÜWFñ²3‘ü÷÷@Êè@m0s<<æ& µËÊþ'`Âÿ½„m~³uÌ—zÖdp>Xÿ•¬1@µ¡é»9u‡Ÿ¥ÐYá³ Œ…WC¿b„wÓFÛÒ útBÿ6Þüá6‚§Ï¨,^·ù#35%‡_;l·¹eWEþØÊl¥Ùh¹/àÉ >í¾ìîLÛé¯=—Ḝ”—a=§ì<9knÀ]A‚;<›‹r>Oi-Æðƹ…›ì÷Ÿ¯t‚Ñše¼JùÚáäáÜZRÊfÉ£$§l墒KÖr+Ž ~l÷ß§Ž/²?Ù„ÿ¸0œiqðh¨p·ÁµÜâÜSÎò3i«u›Zï;¹À?J6™Š´ûÝŽ×Lã48Ò͆ ×_¹˜©‹è5¼ý2ŒÑ#Š(e„¤áô²IçihÏÿTÁ޲ûJ=Yñˆ‚$öý_ŒcãçsŸOêõ´eFå¥àz ámž «eˆ´ãªß[©é•5¼wLNðl©©¸E¾˜†‘ÝËI¤_µÝkÅ4cÍÊÌ• ²Uù4fUä…K2FCk,dš‘ZP7H=«Ýu¨-¿§ñ"î…‘‰$}@úTÑ6 ¬·ÎœFþÈͧ;<´.¥ŒÒˆ^]+ItŒ:Þ üßË «E½YšS¨?µVA",oSÞ®µ¸ö¶šÓn^¸‘º˜ñÙø˜=D¿‰ç•ÓiZ\ßË*é–í×2Ú yi½ÓBŽkkÉ7ŬȉùðÃGŸÕÒjãS¸´\ð7Ë„½}H«ä¤üªït¨Nñ&y×4£×T9 ç‘D3a݃¢]¶éµ}‡“ÝÏÿþÏn}±>zÞö9_=Sð_ò#Ùaº8G¬n4wpÀ§P-öå„ê‡s 8ÇŒ5;¾©Úßb÷O›ª™œ†Ø{ÎC'¾S׬wsÙ›NNw‰çÏ I–þ²C‘ÎÙV ÓyšÂÐË!Ü’CñVø¾PiÈc#h?=°?»ŸËšƒÍ/n;š~üðLù³àf>xêÐl¸?Ýu׸!d=¹"¯¥[ ‡¿¿%¦ü”ú³ù#¿;ùã!õçŸ9-‡ç¥èéH0w8×ÄïyüšªCwnðqä‚|Ì\ä³ jô£›À¹¤ÞX§'X›`%D wŌɅüÑA ÉXÉ®×¥ ¬áRé‰~§…2·à›\‹Û~6yŸ0‘ÁªŸ‡x”Ï‚²©Á´BJ¶€  V»ôª~'W¹ž¤—Up͉yo xO,9òð¥ ù£ŒóÜVDv¾ð‰"þÏ - d¦Ñ–j/8ò=É~Œ”Úré#.÷æÈsÑ÷¶ôÒýôüù[)æù?1p6¿¤“ë¸?ÜoäG2{~ò’-B3‘G[òÇ'.4â¡ëÚ|vˆ]ï V¥;æ¢)nïa.®1sz OÍíøÕ-H4Y1šXµlpîHlìvsØŸéNÀÕWã0k/ÁEGasm4%à§ðÕ§AÒJÈ ¿Ê°¦å¦M6"½Cú§ŸÞÙÂPÂc”÷Ã¥GäÅT4˜ŠP꫟uÒ™ŒJ-ÁŽÍÔŠ‘¥ÎgnG²ïÇùy$½ 8ëÃP ãH5#l'sú µüˆL.w¦pÈý¡æ·luÿShHY”&‚½¸GÑxø1l9IWm¥Ï~~Ô\ÓÆý™fa¼úÀ úï6,ŽdYÄ Ç½é{Þ'Û¡Æ•y%Ϊ€ëwßÙxxMšÏð㸯;Òv¥ÇÔj5æPG8„ܼ‚ñxjÿõÐþÏoÝã’|Ûˆì3ì{D%ݤÿàÇçOÛ- à  Åù>fßnøÙHÒYRÉ|hÞII-{¹‚T”yÜG» Üóþç+òdÛ×f r\\då|p¨±yxt 㟀©åŸ–ZšµCCË-®)ñhR î‚·¿ LOsÊœø¤âoŽ@ÿüŸ?˜=ÌÇ/(’t‘Á’‡‹Ë,(Ÿ?3$ô‚NÃÑÂSPÑøÐç7üŠ‘:Ñ»<¿¤øqN#Ï €îïç¡ ÑhÉ-%œ7Vs«Õ¼Þ*ÙÄK$øñ+Æ¥ 4:oàï¥.\|ýÀZ|³Ì^JÄuøåàþONCO_Ë8M©ue%ü}~])iô/(k¹(YuœþŠQ…$õ’çð\m>z~âV8Å8\€Ðz:Ï‚ÄÜ‹H.=¯Í‘Âé@½‚ þüÁzJß©¦´.B¢.#’–ûP1»ÂV\{kÍQ·8’BÔËÄçì&ê)ïÁ´i¨SŸË=ݪ]‘>fé[™"MõøïÉl%Íàu<îÓŽwPëÀYxÂtu‡Ûh˜o ( %@þHê]È‘Á¡°Þl]ïó¢xç´Šþ ou…¤Ò]\Qs ºnÑûœ„‹Ù_XwÿÍmž/íGïW¿ôÕ6A“sp·DÈ}œ3àGwš)füŸmXĉíäu*ýâÞL‹œi~ÒIU¥±ÅÝÝÝÝÝÝÝaq—ÅeqgñÅÝÝÝÝÝÝÝ9w?ÿùØ…Ÿa¯ó~oÏÃÀP“¤“[º“*ç•rÔÏÿxá»­§™ÜPN)h—Iª8)œ ê™®hÒèÚúŒé'ó_Å0€×Mhåê´Ü<7ÅÔ%')Õ¦\¦¸©kÖ˜mN`ÞVø|7Ô{UÄ\†ž_E• j¯Pj.D,nÒ$º O™XÑÖ„2L`åVÀòU?/ÿnyp\5`ÝZ¨æ¢<ú{˜# Úé½`š}W)DWy„¤xEÅêKÁ1ók€GîÐDžE5Àm€Û„@Ìý4­>@çLUýðÑæ©ßu pYpötÛº“÷6Gå´®2ø£1Wæ?ÁBèO*FïL<*NU¿é?Jé¦Z7­ˆÿ±áççÇ×­€ÁM98WåËü¨]ÜŸivÔû0“æ:ªóu '8ýM/c#4±w þ¼ÊèÙ7Ü[2Éo’¤òŸÿ¨ˆVþÁ^”C<šCH>k&™¯ï‹ã$Û­Öøßwø“НpVI ‡pTªÛºvüÇ#~Àݤ0ø£ÚC‹—r*ðØ+µï‹ˆ=¦>úð¸: \À ¾Wÿ|–í->ßËo þ'½å>33<És^Ì7¡'>èÞ_Älª‚?.Ña0îp¾K/ù¤’r™GI0w‡Íd#ÙHîJ¹È[á½öƒcf€—×clònÓõs¬×à­hWcĩƇ©ø£¸„µÃm.ÛMvJW›¸ŸÆÞ²ul'ø’_íŸv8oÇèíàÐâUÿºýöwþ’Ýê„Ãàkp‹oXQr^Àðÿ•;Øî“w2ÒŠ;Ú.ˆ½&Îëªä¶Ûè#Õ†CÊÄs(‹Ùi*|^{Ôø˜Ik©<4 ¼grnr°Ç*Ï^–ð‚sl»È>’åÒÅŽ€k¸i›Iô#·†"n޵Òöó,<¥èQ&µÅýõN"7µÙÝÝøþ Év°¯Ð»5î17¤›Ê­ ÿõÑÞÇXÄ–~63\ûc3äWêÿÊûó¾ôÎ{=üÛüWIÔQ5Ú¹í×Aô6þă¾òN&'ƒSι®Âþ$„Põ"ø*PÓ'L6Fçrv©·º )«ëé½NPçëòÿÿWðÇïôÊ´¥‡P÷ÛÍY“_=sâƒêçÛ›)fs ëG]R÷Tqs•ŽÒòö5½‚Ë,¬`æÓºM£€í©‡ iâ˜ÀD¬¯Géñæ7(ßyÀ£e@°Û@ë`|ܱ€Âùó_íüÕÿ¢ÿ?’©6Ð0;M*ŠÌ%¸/pÚ«>UŸVÀßä'í D¼‰êøó™§ ¼ºæFñ±ãÕTj x¼ñÉ L¢ªX­  !³›_/ae(¬ÚÔÎŒP§¿+Œ*ìDbÍÀh%¡±”žÀwõ€ÿ þ¨Güû¯ãç bmÞ—ž3…¾É‹Uw]Ì“G`–œÅý(BY©,ø$¡„&¦‰ {àhªð2h†=ð3…ˆüïò}ƒ?öû C¯ô$‡·¢-ÖSCðyTàu3`æB(ú¶ü„/£A¼ýÂ^÷øŽ:©óõžaNSÓ­IÊ;áMù øò0å÷ÜN2ÈøëP¥7¹¾””™<1KàûfpiÄ×L_óõ¾† Î¬††@ÕéüŒÏñJ‹ß‹Jf9Ç'¤üÇ>ûØy¿¾&æ|lã2™+jÿWùß™*àG/GÇ9ð¡Ëyd›l–\E6ÚI6¬»¿:Éy^ Ýä¼\M1Ó®“{ƒ›ÂsVð^I`Ç;ó‡üCõÎ^þŇíIÑñqËä„Ò<ôzœMÃGá?VÃä¤ úë<__wypDm~'á¬^›‘T>ÉË<±„;aMö§w´±ƒñ'0ód:}w§] •ˉé== ˆlî€kS7üÍž .ö*oüÿñ ¬y±VƒõžÓ%“Q]Ê»æ«?t]øŠ°ÜÞe/£Rù2¸©%3Oá?v"böjŸìÀÊK0ù©Ú7øã¼¯’Þl Æíc¢ûá?–âëÜ€GòFÎÆMø"y3'æB¼Ìu-´‘ûéhÎ×9#g:Mgª ä[·P›ŸaOùó_5‘t²þ㪤‡ÿh'5ÄËü ÿ8>“4ã}ߨ%Nè’ ”üv›ïñ^ÊÌ78 <Ìn>´+µkÝ ò’KÙ¼OÇ/ØË 5›ÓAƒüÊ´w¬»|Y¨[ þ£°¬‡ÿhO3xühÖ­%,£¥/\D3Ä›6ºŒþì§útPwü"Þ@S,t},Ìù½â7¢ì,Q2Xâº'Á¿€?–I Y Mí)ÞÀq-^ÎûÑ‹¸R˜ç¨?LõQ›(îÜ3ªÀ7hбŽ] 4í'w¤;>߇‹9b›ÙéòB†@¡/âpq›8†t†ÿ\K}ä/™©ö87ã<\÷Sf¬¯ \H6Øðn7»_ÞÈzÓÝl7Ùn8{^žÛOv“T±;)tÂ(NÎ3€SMÙÏkoŸš¥³C—UÃ( ç´†&H 7Ÿ]iÇÚŒ6µg ÀäµËìk¹ÿÚmˆ1¨# à£cM†£V¼…Z|ž…»U7ÝßDƒ’jóÉœ–ô±b²LÄf°¹Ü‘¶£»Ï½e³ºpZÂî;ô½¦Ô°1¹ ½7“èŠÙFñ8ùÅŒóUŸ’¾î+­~î½ÂßWuVõs®:©õGg¡ÿýÇ\_FÇçÄpJ;WÔs_àNçýÏõзCÏ7ù°½ì³áõC'¤ó‡º¡ó›Øº¼^â¸ø•^]7òÞd&'—R™1ð^uÜ"ÀŠþæ­.d³ç¬•n¯[B >‡¾ÿ ü„?@‹ÇƒÿˆdLËïM¸&¢XØÕ{£!D¨Ê-1WcÓe“Jó"”æQÚÄÛ äØA“)eÑÕ0Šwœ¥hѯԶéÏ›QàITˆG[rl> œ5Øi=M4ÃÔ÷NÝ'QHph=àˆbÑ E×Mc°Ò}š•™•s+èþ}Ð}Ÿh+¸c˜é2د¼öV®P}u+ô#ƒ§ðê°x{ ‚u?bü¬¹§ÃÈ`~^á¯ÿ1÷…¼š‹*¿ý}íöÒ«LGø‰ ø?ÑŽmÔ’fSjžÊ5Ùãà?ªð|¬ä´\úñ2mÂÝŽŸ?NGÿÇþ«éð¿QOŸòMïl9w…*Ƹ£d”ùRÈ>•r–;H>™øQàNÁ‡‘Ž¼ß ù¼VM¬…¤àƒü†O‚?ŽpA‰ ;ø‚´…ÚÝœ &¹®X9€^g‚×9Ï^¦ô䔋Ϋ½_D,ê¼2ÐþóhÓIà${yK€íõ¸¢L²}-¹K¬ëv‘ 2AÚÃãÔçÔð`oÑÿÝp èÝWþc )Çýû¯Ê§]Nß—§2JössIæî¢ºV¹%šLìC”‰•Mà'œ^²óÞùƒ©~j.%³]¡âpã](<\Qx»Ö¶­ä4üGv¸·\ðMì ñÞþ̰Ø«i¸“ÈhNÁ©{€üíªÎÊÂ1?ó;s—frfãBÏ_–çrÈþâ®ÿˆë&°gåªÝ‘×n#↼ºa•2óMÉÏko¿Ú¬ScƒÆÉÇ»ÌR.ÉÝÔ¸?>Êø¢5¶¼]bïÊ.°Ý2;HÄ­"UÀaá±–"SCÞ ÉfÕKÿnÂAWµƒ7‰I/¤ˆ{ÞÖöׯMb“»mw…»×æuëØßÅuŸÁd“†6÷ñ?Q¾eŽS4Ž âÉÿÞµÒ—Fýýt௱ú¹sy_Ñ p~wn8¹t8ÝMyu‰úJ:iœ8Ny笊¬îýT´»¾Ez²Iõ™ ÅÐOOªªº¨+À‹TÑór²üäû×p/M :Î耻UHÍs,57Mjª›Õð;!OU™Í:C¡x§“ ßž(]Ìüq“:Á•4¤©æŒÎ(ÿÑFw×cL ï)- ™ôú»Å?Å2FÁç|hw. YHJôCþøäójì41€úµ€î‰0Ͻ'Ý[èUáët€ó1ª|^Ä.ª ÿ`/8‹Ñ²šp ‡h´Q/hÙ)T +)·’N…_:]¨}íïnš©+߉Å*ž“Œ^ÓP¸84ýybšÒŸèñX`R&òN$†â Àð@eð^ Ÿ¦è7ù£Ÿj¨+âß#ñ ª v<@¹1Rµá‡ O§:˜‰!k ‰sóºNûà ‹Ò“œ_åü±ÒS/Aï>PðE\ÕÒÚèOF S…»ào@+ŸâUþJ„§ð¯€ãNyµ€tìœÿèïÔ3í¼Œ[¼n¡;Ü Ü]š½ü¸é䤔µO$'Ô|s© ˹‡EÔ=Pø!à[LW“éï?\*}šßãÈs(ìÄàð¢’CöñQ)fsõŒZž€‘Òï ƒ^ó~ Ÿ Jù°:ýEÄ^Î[Sô"øã2ü e•E@¬æÜLÚÝàŽ6ˆ;A.ñ8é%WÙËŠ¾˜#ËkÞÎé7zôÕûó¦$ç÷ïâ·ãÇt/ÉK™'Çx ¤rÁ±ÁÝXö-O‚[zÄ{yxz-üœH\IÏõ÷y„j¸Zÿ\üáÕ¤J±¸¥$¶ëmZÛHÞËd[Á^“pö†íc»È]éì_…Ñ —˜A¦`= fÊçxKÔZ'g¬¤—üÒ<÷2uJ}›Ø`7"ÞF[Ö]”Oåæ²§ä½bØRö(œm µ°-Àúê¶x5­l»MúÚ}v¤¤q›J ͱ¹Öç^àüà)Õ_÷2¡ ¨S\¬õgR×}n[Ê y%Ùm9·•}þç–s»ÛŠRÒ½-×¥ª$³>îÙ ü±Ï«ag¦~gÝý'¯Í¾ˆêÅ=õ•ýnöÔ]¡Õ ÕÎqtJWÏU¹eTN"'¡SÃ9ªÌO¾ÿx雬—šBÀ„tÍD×Á4;ÝÔ=]ÓTÑUõDý¹çWµŒ—÷–!ºÐ †ª¤:Õ Ü&‹iaÖ˜é<ÿqZ]QYÁ— yK@#ß¡ä\~¡Âf94î-(õrðƒ ›Üf â5×ÝôtÓ„4Ï-{™¦¢Ba&â±X9·©$2V†Ç‰ðCþH­ZS*Ú`"R( ÈÌòL˜cõ¼'¿”›½\¹°Ê+WQfʦëü`£éEô|Ó j»½3ƒ€Âs¨$ï‚.ÿÚl"Ú}ÊÚá|þ«‡éàyè—W\•ÞÉþè W«%4ÖJKÏ6+¡­BG„î‰uvŽa58úí3Å¿ùüj’úSW… ` ïeH¬€ÞV§§ô‚ÆR9ÒÄ”¥À²¢¼žç¼DY ƒ±)óÍü»'|Iõrã·vðv«nôŸ’Éâǹ>|¢5”ú ÞÁù8Ÿ{HËIqh^ Cü#ûh§üGIÊ ¦}ÀÕÁà¦*Á9Ô„ï˜+9ìI©ÿÑ\ŠÉ6îÆÑ¹4~Æ0N(½ù¢é`¾æõ N8ÊO•à‡–àûžbÌãðUN!±d/?–ò¶Ÿ]mïÙÇü’»I Y‡{Ÿ\u”ßS˃óo«/ëG•rB`¬6¢PÜüá½ÿØ-u8¹ì²KmH÷޽iKÈS%]å8×ãd<…È‘]àΆÂ|™¹y¼)Á•1swÛÖåäÊ#9 Óå$ÿ)©Ý-6°4ˆ;^‚É,©d7ò1ž~Øîú„^ä¦ÏçXqÔ µ º ?§º˜Uý¨ g’hð¡ms`ç[ÕÞÂöxd¬Ü€ÿ(g â`Þlj¥'gÇ[Lb¸©¤8…€N¨9˜ ̘ãó,\¡ÚèÆ&%Õ¥¶ø·H¤í`÷™?¸}‹ïöµíÝ~îcûÌö¶UåŽý ±muimc@“<1cè’y®³zü¿w-î<ÿQö_ço¡Î©VÎ#§°Ž¤+oÿúD_:'ÅÉç\Q® L-Œ¿/R+õãíqˆ…ñ‰¬ß8I‘ên`rÀ¬FÜ?ÕÎBã†Ð²m€ðué/óÑTPÏœO¦%1eMýÁïí;ýòz~V67€sÀnSéš?{$ÊÿÑP= X[úÝ|Ô Å­uC=þã þ÷|š~»¦‹Ì‡ÈÛë—˜ïÂCEÌBtÕ„ ÄûsïÄþVŽÖC÷ø”Ø_}j¼vj¾€VÇ6×ÀÌŸ­“Y—øÁ(†Ð³é#\š—¿¤5=7#à¹P ¬Ö1ü”Þdör£ü–ŸÐHf꫋߉•BUrRË» #Â(ðyKêFÄó€îs¹»P·û)‡RtŠ ÖÌMKiüùµ£øó_-ƒ¶NF±t®D¼ç̆ÆnDm¡33½¡©'Pv é8¸…¬X[Aù‚«a¾HÃi$øã{ûw£©¼Nr nŒVLD:iÓ@ïOCöäbÀÙð¡Ù{Z¶€&úó—ÔÖϿ툫ûa¼^Á­¥³ð+Å(UD´§¸Ãõý‹LîUã™@µMh zcbÃ¥úlôUÓ³LpOgðCTôf­?S¤·µw Dá"¼Ÿñ*NÉqw‹' ­—©·Žâ|ÝÂéN+ó;üB*^ɼÜìð¤Ç€­w¹®Ä“‰’XJ¶rɆ߇ƒ?rÁ© bGêñiÓÕdýê¾ÜUÖÏŽqx&?ÄÇ:´Ì{ÿñ†wó©l Ù‘Öç:òKIrðG àÞ >ˆ˜ýÁéžú²þGEG¨4ÜîMªÁ1JŠ“Bï.’*@Ö™v¨ Ïüá“^ÒHÂ[à^³–‹<ÜY üñ¥ÿèkêàîݧ+èc'øë|NÊh™Áí$®» î#z·D™RÀäY<|³‚ƒ #IZžàýG5ImČʦªÆ÷à{³py/³à?òÈùݦ@¤²vmm'Ëô¾7øã.°þ$Ç•þ3±b€jà3Õ:G8-ÜÑRòÁ< œGV[í–³űsí{x›#6‘Î’{ö¢Ý.¥ìnøØÖheh¤0:üÄm~ÉÁLg8“D‘]|GØZvšëFô’d² X^Êþ,ç©ìy®GjåË;/LqÌÞ‹T”÷‚ ’ɲFJqqYj‡Û`PÀqÜQà1Rþ£!¼ælŽ(×Á¤Û©%½Ñ½¾ˆ·ÄTå ð·' -úó úþ¸)È,ðeVw…Mn­}cïÊ/`©*v3ïࡘŸ«x>ßá”Rg™ß?Ç ­F©SèiÄûÕÚ=%ç–ˆv³-bkÈg‹ÚÃÁ#¶“#ÚÖ¶ìl>öÝDZ¥§æ;T?Àiºyê¸s— •¬¡ÇüÁÜ¢Í\E‚Ø-òF–Øûv¥]mc¸‰ì1yc×!jy{º©%Ïóö PvsÚþÌ»Õ^s®¬ß0Ë©—p3ÚYv’õN°7¶•íU[­z/»á¶|n\Éà–” èSxnAiÈË©Séó,< zê.&*”T]¨å„dl:÷*8g¥±%à?ÙÁî÷’Íæ³Ý¼Ú rQ €Ecœ7s覹UËLþκûO^ }qÔßH|Õ×Xýܹ¼¿/V—Uçš“F'×3ýUpû29éN'çüLJpÝöÍÕ«LI(¸ô„>—";éÔzý«I¥ûƒ?’üäùóp Íà?*B3T§Þ&$UR+üïσ›X¦´¹dV:ÉVå<  ›÷äÕò+M“é$”`vúŽy„÷l()8¤±9¬3šåˆW]wTJÏ¥Ip¯á›+P T îB!½'¥p©ÉÀ wÍëöù“¯'pr¹‰N‘¹>”Sd¸Œ `§U´2@¡ˆðh7ôx2ŠùÃü%O˜›uгÃÔ-˜Õ5œrcµ.æ_9„ÏÙ Íè¾£·É÷Ý'•‘T '%iÌúІQ0:þè ÿÏ×¥oÑß`ÎËÐþƒl£5ào?¯k¯ªU0žnõö_UDÛ* =q§µ9§SÈlîÅMx<Â>ê‡qüd’â{¿µw±¯ª^l¼lôC¸ Vy,ÞJUi %¦×‡ÓGÒ€/@åî‚¾Í '·b$nÑ[¬?ý#gËŸÎïP†•)Ôæ P/)'¿çz’I&@ßî— r†KH ¸…® ~á>G“ö|Ýt4_óú]|_sm÷1o†C=Ëi%§ìá‹RÜ–¶Úèn(¹Ç5$¾Lâ‚P÷ï€õçÁE1O«ƒ_D¬á¼3¥ €nQ.> ô„âË<Ù,õ9‹,¶}­ã®³)ÝöàNÒF.€bó2~Á—áNƒYŸëž_Ä›lÊýoÀç¥Â¼8Køµ<–¾²›;·ÛÔ6Œ â2LªZ/³ãx|¿çÍžÁ3 ïòï>óõU«1ò%øÖÁ!¨±ä\T^Ë*×6Çu²UíYÉgOÙêv&~;ÆNàµà­­K:p2pN3ús¼1j­óŽÊ@,"çoä ²ÎFp+ز qc¸3ìaßb¯É3{Бjö¹Ü–ÿ·®¡Ìæ”)ñ™?«ƒ:æZ `IQör2L–œnû—ÍjSÙ¨ø\—,ü`«J ·5ø#&æUs¸ÁBpÙóÇ~ÕB÷6qá>ª@íYz ¥Ýkð³d›d´7lC0Ç÷Œ-çþjÈEË&° ¥ºMÈ€ S茹BA9œþu÷Ÿ¼æûÞûþÞuÆWî_çß ¯ž¨ÒÎyø z”?ÿî_B'¦ÉùÍ9£‚¨ŸÛ¿ûÑ·Qo15¨9%¡kæsÔ ã´QËÁAu=Æ ë<ûqW=ó³þ )Dsq—&š»¦ªºîø€ô«tdÓúb] ýÇõH5w¡MçCïN¤%”‚“’¦:f7ðd?ôm8œ–†L3)ñJêfº—É ÖèJýiª¿ö^=Šo~@熢'&E£æÆïMH5ŠÓ|£°JJñtðG<¨üúþÌ\ ê·Ã©0-6Æ&­ ý âGg(ýÂÕà=–Ëšñ@±ˆ|ƒÿäNœŠÇ‚Рö} ~KjkŠ7b•ÎÉNŸÀEÁ)ÁJyajã«g4–{ã®LÖGá=ðAÀqóhVÔðuõ·òˆÍS3t3ðà j‡þC¥Ü¸Ço0‚UèsY»2È—Á}lG‹ÂÇÅ Ìý›ïÏËë¦/Ø»=×â@Ëå`´ Àëiày¼ëU}¿Ä9G…÷êëvÀOÝ@Õ´ûúµKœÖf|^JžÅá-žø+8çGÜ Žc½ä²¤¤œåòNæs3NÀ™y>?åüÀ´7_ß—§*(p§üÐr¾FÚp#‹•|(“Ê6²ï­ä•Dâ=+ ~YÀKøw.C)è¶ÚúEÄúN 8?/II0\9~LZÊpÉÌée¢n?ÚCö±­#q¤xn-¸ûÿ3fËH™ŽLk÷Û-6’;ßž±aÝ öœÜñòjI9»s¡1Z™~=£Ù ÿÕzuD§Å:/ ‘œ÷›ÓtQ¢»­áóÛ°ðHSíh{ÒÆ°mí Ù)uí3Aò¸Y$8QsUŠK-xg³YÒ=LZ̦æSX›Ù=oËÉb9 —õÄv¶9Üåîz[ÖíhÉN{¾¤²üf#aÕ܇J9dP$nÆ}gÝý'¯M¾ØêÕç¯øêüëóaÔnUÍ9ådÐõ,åí®]åËë¸N§„sJ9?™?1„Z­—™²Ð“‘h¥¹âÌuÞ©_Õ]Þ„ÕMõ'´ó½*wß¾ÁµV¤EÀéÁ”’Æš‹¦¾zèÄâ¬Ó‘L³Ílw—¡ëžÚ¥J™ƒ@ƒiÀ¢áä)¥¤¤¨µwŽˆva•‡n46/t˜3“üù¯êÓ´œ<¾Nm¡[¯Ò+êì>MAé²IE‰0OÞþ°Ï¡U8¶•&"œK1Ö‰D—LQðÜaò28ì+?ìçà¥ÌúG» o9s±Þ¼çW{°Žc¶õ*OO×rSÎÈ3ÁrËè8tû pÔhô»šú^ÕÞØ*«Ï¿ÿ-ÆküÇMÓ”~‡‚_ÃK½jMðQ¡77ÀS/÷ƒ^œ÷TMë]×L5N7‡GæžÀ³àÙJðhå(;Ü€îê«:ŠlB+ ÎÒè† ðQ);ÅýœòÕÖ‹ÌpÏMp~N2“šb®äáAà“Á`cà’ ÀÚˆ˜‚7?6Ñ Üý‹TFGù‡š™äô7£Ñ®tøþÍPÒOÑÏíÀÖgü›¤’‰’ÊΗÂr üQBvpGöv«®à>ð Mø’ibJÿƒ?âa®Ö¢è`„íÀʈ|Ž3ˆ’“üPJÛd¶?ðð¹Ï]%‡Lã¼ð3·à•¶UK‚ó~•·¶£á¯–Ò5ª ÞªÂï)™Ô’žsÉx;Äjx†gö7 .3¤· '…ãŒ&ÇÁIÇ0¿ßë._Ä›nŠsI>E' -ºÂzõk‡£Ÿµ¸ªDtçØ„6¤}ëÏù5GbÙuÜlÔ þh*89†àò—|ô-U» Ê²ƒÕŠ!f[*À©Àƒmr›Uþ”66‰])9íUÛÒ.‘ûRѶ±kø$<â &91|Påïãgª»Î 0ùI¬ÎOlè)íæ¶`£'¶‰+wd6þ4Ænĵçå¾=‚¿…3¡T‰ÿ@+VR³?€ÿX þÈMy0ß¶‚?ö æJf·”]`[Ø·rKÆÙrvŸMiÛÙrÚ_g=»$v H¬ê_¸ŤҘ¿¨_û‡h"@}U ¤‹^Iw‹m*[%¤Ínƒ»]lGw<%³Ûɶ”Cö’$·5åWë=‘¿eÆÑ óbpœ@©Õÿ××_TõwíÍÛ¾†*Ñ¿ä”ê‚êþ(­£éÅþ,¾+}ùØNJ§¥s]½ýÉúçO|;Á…©$ŧæ“sÚ‰ïÔPgtWz}ÜÈÏí¿ŠgžRchÙ’´ž ÑãRIuÔ Aùé’~©Ëšóæ` ó—g¢G¦€W©Ä<ùaŸ#¨þTV™èP$åx8"2Ý5UÐʽ”\tü´“jÃyÏ’†×%˜ÿj5þGKêI€¦Ì *ž«È—±þçôp8/ÁLû(4 0 4Õ¿ûü*®Ÿ?\îÿ’nÀ €ßÅ«ÐËÉp !ÁÍ«g>gh©þÍüí³Ôx݉ÎÁÏüA•Á`;Áylk´¹æ‘Ž#û¹—xoϧB7¼7驨7ßlö•Ò«à?˜ÿ¢rd°N/gP³ ¯Äï¹"?ô?¿‰ÏÑÑÊ¥è÷P¸¼{ÔUûÇnŽIÎ`ÓÃã*(ì}hƒÁ½ÜEEØBϧ—•RÊn–|r˜›I™Ë99ä ÜžiÂWÍoÿðOTXÌÕr”™Çò¾ÂÛ(5ï…*Ï.7ù°Ô±YìpëºOø5w€ÆŸg˜.e áé\ãrU­ù*bP Õ*z@Yyá  þc¼TãܲÐþnƒ@ï†tk K i Ž*­0Ù_ÿcŸó¼Ö¾ÊŸXËs<˜_%¹ÜÖU^)›Á kÀg±¡î³Ù{òÎî–ˆ2V¼j³Ý0JòžÍ›8¤¤ç5¦ñçX¬&*oŸ`öª³_ǺW´WºÙ¶„¬…?ªÿ‘©¹](W€õ­ín>¦_ÀÁ¥&GÀìi âJuÈq¹ýFzÏè&õåöþúií. ggÛTîr{ËftCÙÛr šNšþ¨Vf‚>*`v8?¸GmÒÉq7²Aédã÷f.5“lnu°nn dg÷ÚŒvþ€d¶)ÝDÙÍ&U0‚qC Gµ¡»˜¿ãÒ}L\jEuÉè¼ÄpÚâ²ìSÔ&v³yÜ5î[ÛFVz®mÃrðÇL:k+1é¥~íl_XõèóW·}•ÕוÏ{%S;T}gµS^‡Ó£”Wÿf…/­ÂÉäüê¼rwÓÿ½DíÓ‹M(åä´ÄÜsÎ:‘?Õf]ÉDÒMôç£úVMìï_)á?j«££SgóÞS[p”þã…®oŽ›#ôGÕ9•×¼òŸÀ+²‚rHèéÒf54ôyÿ‰ÇºÔɼԙÌÚ@Ä+ª;ëq¦ Ür°ÑLzG§©3Åc/[?ŠÆñºI†‘8gžÿ°Ï‘T¨Þµ&2üGïü!ôÌÿW?j8i+¢¨Xµ¡ëÇa®†ûáùÁ§Î0(ú¶@ù^ t36ºì$Ö~%Î €×§€¢!¡7Â¥ünÊ|7ÿnDÇII¡øw8Hˆ(ôÊT¢¾ègo^‡ûÜËpX¬,‡L7ÿÒ“ÓaS^kOùdøž´ãÕkù]wdÀšöjé4§Hf». ¡æË¢;p—FÀ—½1AÁ"i¾Á‡|¥õ<3ŒîÂUáüQüQÌñTò*´¬"ŸæãÐô™à?N{×ÐpÈ~ª§:_¿áŸâ´0¿·“oÖ)ßúkaåá\[ò ãÛµRV®qu)(+¸'䔼”ëó®Á7MSê«ßRïMZªGqОµýÕžÂà4’\¶ói) $œl}n>yÆå$’¬äDhåE þ^É©¡(®auŒ×ÑyaªaTnSQ°Lv~C¥¸Œ”lÈú¸hŸýdÇË{®#µe¸!)#DÌU˜ß7ôo_Äa °—•|´õ|‡NðçÒŽë‹ìKjŸùnILpJJ»ß3¬ù¢Í‡«ÉÍsä/ùEMW'€µu1jUÀIÍ1g3ËnioÃÛì2NšÙ8v#Fð˜ídÇÉNÉnëÛUpÄCy?åš ©qþX Î9¡9 ¿¢£t£û”Fptik¯Ù¼v›Ä³mw]æ~u\ÎÚ]v°”·óÈ`î åhÜü±È”þÌÔk¿4|mj6P_yh‹Ú6³ý Ú¶µûíy[Êö@Ÿw‚Ûƒº‰%¬›Gr‚ƒs) C]1†Ý?σjˆîg¢Ágµ{„¡3’þ£–,–}ðZ¹Ýš¶Ÿ»Þ«ˆîv°ÿoýÁ,ð_Q°’Ι)øõ º'”™ñu÷Ÿ¼Vù¢©ËŸ¿ºï«è¯\þo®hê¼êè\€ÿðÎxû¯¶ú2;ÚÉáÔpî(RÛ~*ÚßA=Ë”¦R@¹iÆèÅÎIÕCm€¦©›ëÃNðŸ|Õ<÷ž@›bС‘éOsÌTU§á?ÒÐýQ·3GÌÃ@îß=¥î¨æÐ`Õ‚B^M‰8½6 ÍnðÇ9ªH©™ÿnH˜ˆ5t?=Ò4ñçõ˜ ŸpÏŸ7ÔüUêFÁà?RÑ“’ ÐQóþ‡}®:BÉï4!0£²ñ\¸·Xp/hø. Tój Žß QGÃÃé¯ód|}vÆÓ[êDÁ^¶ÏÑ”›zSy¬ÔÙPtÉ¡íß3.Px~˜ƒ©šùõ»ù#¨$ŽÅ÷E›àç¥{¦3z­y0ïÂ]©ïÏÃt„ž‘ð>ðǃv_4ùô×Ù¥¼k½­ûƒ-X²&]¤CÐÓ©=‡Ÿ©|[ CÉ,nm=ŽÐBO™éª‰þÈþ þ¸à+¤—šîà®èWŽÉ+©%ú“z»4ü~GÙÁGÞéÁ/[hFt*œÍ=*«c9o¿Š·À©eZbœCñ\ÞL{F½0ö¹ù>ÿ DZþc­d”½\¨½üŽ cLç{Ü”ï˜A&ï?ÞŸ¿ÂTC¼ `°Û@Èàœþúµw¤–k×Úç6¤ÜçFð á>²â»V« ã””þcÑ:DEá¡îÀmà|›’Jg`sr..‹mo ø±!y˜Ô”ÓœŽÓb$^ñ9 þlüϺÕñFš‚þçMw('wæût‡·Ê4pE}ô7²»Ì泡ì {Sîðh)fׂÕrŒåà>I*^aZ}ŽD T))çà+pªÑ9¼‘vˆ‘YÆH?ü‘ÛžÏ ““RŶ·Óà´FòjÄj¿“š8M7[mq^`ì/ÑZø—æM…ÏkÿQÚ. v°}oûÛ1ð\¡ì5ñêÏ”¬à˜ ƒÑ«y”ÉL7•<¿Ú ³cU€§ÏÇÇÌ!&Ïm&ÛÝV¶Æ.–úv¸-ØílEëØ rÓ–’ŽPbðAÐtõø(ÒÿÄÛ©zèæ&1Ô’—›7!Ý–Üî9[GfÊ1Ä:b[ØQî,ðGJ0IE¹dßI K*٤ܺu2VÈJÇþ+ùKvøÂ8ïõÄW^¥ÿ×çϪ6Î)§(øc•?ÉR_E‡œ\N]?îtÞÿ\}gõF“‹Já·ÒÛœ£ª¤:¤K›Èº2øC;?wÎ1…yI]é¸)D»#³ÍCÓBpâC¹¾Ò>ÓÄ6·Y?ê¼z®Êšûpê{1ƒ&Ð JÁY€… C†Ò}hÄ´@ÛÆ5 Uÿ£†îªG˜Êô˜&å&Ò¯&×]húà‘‹h£Kq€‰Güðü U('mÖDƒ^O1)$=5%Àu‹È;õ¶´ƒÊÒt sŠ¡sþ`/:Kвfè‘·»ìžéMyhãX­u I§Á=ì¦h§a/GaóÛwwjÇP%œär/Š8„ž›æWx–74‰÷ƒ%Ã-„…óø…ÞMëÀ‹iÔUý­g•³Õ4Ý…öPžä¯ÿqÆ¿·>)¨Ö_锞«ƒÉR w)8‰ýˆ4çViéoæoßæ+¡7™žÐœà7’AÖRcú‹RòpnÈÓ¸;P©ŽÿüǰGðÝ:ÜùåðŠï©³ŽìðW-œãt1Ý(#%çÍ|†±½lU€[$¿,‘üö”d‹ÜPòÁtáXÀðmPø"Í¡»˜jÿx~å@4ƼÅwø5ð'%ø#»D“m|IÊØÂv±}jSË]® ±dØ(+BÄ[ð‰I¡ÁNª…_Dlé£Ê˜ —©ãÚð[É€÷s¤ç•1PΉá?Øíþè#õá“ZrÍAå/³zUsêo¨)ÅùàDÂÏôàô–×Éqø™àv·Úb6"TþQyȃÑÚ¼•gqe0×rÞÇQ¤0o2>Ç ¦æ¨-PNEø!4ÏYàj&.+Žj£Ùbhc›Òî\°ìŸrQ:Ø%ö¸}8ïÁø6ö?Ií ›ÇuÈñÔÔMh¾—ì£(PP9š[Ån•¤¶¹ æöµ£ñ{{G”»®¤]‚9]•'ÂkN¥Âf“)óyím¤¤¤X‘‡)Zþ–IG7»kÛÙÐpDCì»Ú´­¶‡Ås#õà?jJeŠÌ¸Å¥˜“M¾¨_ÛË_ÿ£.%¶ÊfÓºKm#/û½L³—lû‡;Ù}gƒ»õmq¹jïK[]ZXÏÉ?1ã°B>€™âýWΟñ%pþÜQ5ý;§þÍ]VÝÒ%õGg™ÿýÇQ_-'ÜG[窒ïªÒo_ÑÔ½×ÀLÍN‹Ll}Î9­†ª“:‡É®;è«Nx'ÍOµ3£ñÞFß2ÍuIiŽ9eÚ¨çNÊAÑL|ÓÛ¬5gœËŠtI½Q5Àø7áã.aVx{Œ»˜yô¢W ÂÔˆ~7¡M¨@åO¬¯ûè™ð7¡Ñ\(¸ Ъ¡Àÿ!á?RÒ}“¸wÐø~ÈùÕv`6&àúÜþ#½1E¡¤—AÑÁúŽ‚¹[“6ÓŠFqX¿Vëyô”ÚS?høžôÞxuÊÿ ÆPz^ýÚØp8¯é\W((ìc`¥¦çwßÄRùœ(Pøà'' Yz þhFOh4cÿ“£ˆÀ €1¸h?ƒûIܳ‚߬?8[ Ó50Z^µïýù^¨}o¿÷øFÐÇWµ#sØ{*?Ü7 ^&=0ÉÀù¿Á§}éô*3nf0Ð>:ð|9îî8ÊçÑZ¹4u¨ï»@¾tð]ûó ­BïCð8ñùw';mM[´&øÆËßþšà40ü…äöû=ð 7¸’„ÿèÞ,o2’‘ßø“™`Ê}ÕãNp(©FÐ ø)?àõÀ×cœZbÊy>'Õl»Î^³ñåâG—Å@ËRöñ àt¨°§jú[Á V¥•ûê`Å¢`ÿp ýÀ^eŽac¹wìKÛ[žri ûÁìExG›þ­èƒþ²…mM6üÌãPUùá¢^Ði^íÝ >D¹Ëm~ÆôóÇÉe÷à /_â$R‚WÈßj.…æ²ð…ÙÛ%€ ˆØy6¼­! d¼Íb·HA{˶¶“äŽ4¶Óàhâçn`–ß1+7RÇÙ̧©ËÎGŠÉwàopXúÿ1XZÛÈny;GâÙž6œÛÛδa݈ö2üÇb;ßÏ>®þÈ ÿ‘ËÌ5 ðÇ&(R+µ_7'h¼DpSÀu4´áìj™iÏÚÙ¶”ílŸÈ:)awÙ²Ó­þž®§Ý-üãó,ܪúëá&ü}[h„”tP2¹lôôºì¶í ;Ëï~´>·š­,>÷¬„¶¹¥¢Émè­™@‡Ì5 Ή̂כּÿ䵯?ÀùÁK¾ª*þ¿>~^uuN:eu"½]TÞ™Þ2N8'‹ÓÚ¹ûÓû¯^û.è &5¥tÃÄÐGÀUÕF]ÕäÐÍõ1ç±ÊüSí¬`¤ó¦æPqiª£;‘¨½Ô¡L{è‹ËNàZxQ]QyÃü'ÙÇCÃyûw_š2fµƒ®MY ‚û˜:B ø£.øc¸©I·¡vÿôW º‚áØ;“çí¿ºFÙèµÉŽ˜¯Á Uw8„M&,Åj €NR±çRF8øuØWØ<xOÿ(Û@0=‰4|rg eºb†bĺQA^ϳ¹gàqð‡ þƒók:Œ®oÚ©ó߉•L¥sÊð 5¼vÁ4‚ê2Ü‹·¡Ý±^ãñy0À'(»h«·ëx›)ôMþ˜¦Fêöô’"ñh8=hEq8Œbô×¶é¿ÀóÀq°þw‚‰†C÷=5逥µ¾Á+|¹ôÓцrÎÌáxæ^gpî\pP?à縇óÞÉoNÍéù~¢ç?¼üéèÿ¨?8שeþ ¢ííüŒë‚»  oà?–{¨"idוœ²‰[sb®V˜Å¡¥'ß7MÙ¯züF}„¯E™ù/Ä{ T Ç»9±¸²›/Je›8s݆ƒ_($^Þ¯üøÀw“–°—Õþ¡Zû•ÿPðk  Šð^.þH-½e„ÔåLà^ÀÖsÖº-ÁN¥¬lÖÂH„öóÇZÌŇ_½ÿèoòÃx™üËp{~GÏx³¬B¼%ÜQÂ@M±)lw¿…Ÿ)l¯££áz–ñZŒhD?tþ뉯‹ZNä~Ieù2uÅ Ë,!ì6ºýMæK›Ó®Â?ô’ÓR̲˜¯òtpuDéç?ÉÚ=@6óuj£9 üǺË÷ Öó@©e_þ#¬fC»ƒà¢»¯ä˜¼³ÓmÉg÷‚qªó|Î ¯™ÑL PÿcZ¤SÁ[‡ºIÆÍÍš/YÜ`±6˜m>îD[¿^Èv©b×ÚjÏ-*).GâºÐNµ iž…ËT{ÿùÁöøHg~_ª¸GáYfËSÙfïÀÕŒr7¹Ö=oóÙÒrÚ>L¶âF㞤¡Ù›§˜ ¡ÿ+çWø’ª¿µÓC_%õsymÿ¾¢€?º;Â:ƒ^£ª(ïl{9GœœNKçµzô“û¯ú@¤¢3&øã <ÍNÏÄÕMõVçéOÖÿÈ þILE¬ùt4ÛÄ¡zj‰“+ëbš™Ãæ™8‡ôX=VµÌ[Ì›À‡1н 8#154‹qÿoQàr3Ìß7:] ò_ÕÓ£üûw-ÇÑdz¥ÿTõs ÃM),TSvzÿQœûCþ§úÃ!¬2ïMnÎà†ãC£ä{¬ƒv=ÕüQÊye¥h?<þÜE.|rÚN-è™NéwJË{xtyv¨ô·hï6ð‡¦Ž¡¦¦þwóï†WÙÜà›áp‘¡¶^˜Û@ìvèù$ D êÅ•ü{g˜5¾^N‹±6NÒYSD‡úF+{©º#½Âè¡}”ìQ¸óZÒa=F[þ’Ê<™vÓZðU"úÎ sÄß×f_ ½þ#ÏD¿’Â,¡º4•²ò"nÌr[Üo×ÙU>̉8Å}÷j¿ÂèLÖÖùú„ã,§'¸¶%Æ÷?û<¡hC9~Ž%›Ì”:ö(üÇI®,ye:ø3 pê4y0éÈoÍØìß}®>˜ÌÔHºˆ?ðøXhM6 º 7SÔî±mtyÅ $ªlñ×zÉgø5x>+•¢»_Õjà|4üÙwŠóixŸ”JúÊT©­±ý¡Å¯ÙPî@¹¥^MN€‡‹Áù•{ÀüT^ën_Ä` ƒ…â>dæ–ü”.ó"Ù-cк^ÐæmÆÆ‡ÿ¸ ?“ÕÞ«ŽƒþØyt“cIA^ I5N­&…Ÿx* ~J——_ìÁÖ’ÍàÌv»ä±7üä 4±Ûí >þ8ÄqdÇ[¯Ö:!À§ï õ‚Цët„«H}ûÈV²3%p?œû‡þc7ÈG°Ñ\¸›­ðþÕ1 €?Òšeö_­U«u^øeïüGqøy4Lºñíhøxv… ·—í`ðÇûüQÇî´µ%ø£*ÅãPÜ‚"¡WÓ¨e€ü‰Cuoî²壠tltÏV‘Yò^Ú}¶½]è.<µem99lŦ#Õ¶á¹?)šFWÍh¼¨ÿ•ü%|qÔÏ_ÝóÕþ×ç?¢«KêWç “GÇÐË”7ÿwøÊ:äpÚÁ-<óý\ýóOàmÆ{”ö™wÎ çj¥ŽèÒ&®¡¯8Ï~2ÏJAó¸wÊ”¤™À™‘楩§ö;!¡7µcz™“æ”ó½¼_^w•u²‚?{™€0ë(ÇFW3³¨ÖOcÄìHÍ[=Pï?è~z‚)Õ¼ˆÒRzHç€Ô±ø>æDWèŠ”š®¯²÷ysû‡}N®zPzZh>™ÈPµc)pù ¢ƒGHÿ± zyðv - 8Gÿh·Ý g¿1´øqŒß3ݨºʬ§äñ@ûsÐþáÌÓêjš¨s߉OetŠqç’Ká1VœQ¸šÇ4‘7Ãô‡c É{ÀQù ͧe@ÜtÌÖŸ¾m¶§[ÓEŒÒX¬åCàˆ²ðeñõ=Œßt½V‹,àŠ^–%òò¶L†{iRB=”ÿìðÔ›ÌHzA^®’äа«Ðk/ÿñ4®ÉÃ0–Áðù,ÈAŽÏ©x?ø$ð÷1úÓ[w¾>á8ü1N0¾?C`#öN½¢|‹ÛÀwÌ–Zöˆ$…w¨%%eæåãÀz+]øŽo*~u_Þ)†»*Cyá'’ÕOPrÞÇYÅÊV~$5l. ÔYZÞÿÃÂä'¼â]|‘çpŒÊ•¯Þ4uD[ŽÙVÈ[˜?R,é/#¥Wåv¼ê^±Êí'Ïø)#çЃԸãoø.Oå5Ôœžê_½?¯ κŒYRÎâ1Ýà²RÆÂ[ý.áÜ ¶ oã¹Ûå:ñ*£§ÃÀ3+x'9šâ¦íçXñÕ$µ ó´*üGÌÙ¸  ÅÛÛȶ¬6«=,•ìÛÅŽøÓ;‘Ïqw^Îñ¥fÏBêaV~Ž·Hmt ¼òuÚ@84Aõ€s[ض‰Ý)€óaÜ‘àxî/ö‚À“¹gá)ø×`¼xês>õ/?«ðNZ ޱJ‚#šK—M%ê æœË‹)1uâ²È«ìÚ7£qÜk½óVŽT½u3hɤ<c¾ýË †H˜¼»WOÐQdbj~ŽDµP‡¡œrcî7D,/›h:a;ÜÆ´ÀI#ma»PrÙ@ìörì¹ÄΆ×úñéþXGSͬÏñÖªåÎGhž«˜ý®„€çZÊ}¥¢½bkßßÉ<øð2 ]¶gå…oI9;›¼:“c9o§|f…iýyííTKu:¬òšðä…ù¤YM %‰›Ê²¥mXû^–كࠚ¶Ÿ} Ó¥²eãJ47CŸBÀ¼7u°û~ž…ËUKÝÍä nèi&ŠH÷${ÆÖ¥rE6ØÐn3;ÛÝìÆvØÊ6«·§$º-¸©34ØhºdNy',ÿ+çÏ·ø¢xþÊWÑŸ¹êß\ Ô9Uݹÿ‘BÏWÅýïÏK:ÿ‡¸³—âh¿ütW½Ò@ ¸4xpw·àœ A‚—àîîîîîîÜ]÷Ììár¹,}¾ýš'ÊåªîªsÎoº»Jܼn;÷‰óÌ÷±UõB>ÈÙbVÛÊpä\´Í²ÙêîrÚ9ëM›Å´7§Ü§_¸ÿ`aû˜ú!ËúWüÎG£ìÛÀÙç†Cš¾i¾¶¿Ù³ö¸û±÷¦ß?ö;Ïbö:’ï:hÑD¤Ðxüªl—V,Cé¨ t4’g?ç±Òf ‡¹üœ¦ÓT(æèRsŠÍWé ?ñAÊ ÿHÝ>h}²ÏÉœîøÉ¥Ö£8Ü„Q\JB7m%Œ²%˜A‘8# û”çLà ˆj‚ïSü¸ç. áæÔ+pÿüªõïÂÔƒòðzdæ&˜©“Éò1ô:4ÿ ü¯©­ç|ì[»DN:7ªý *ŠVyiOÚ˜5>ÿHD‘÷¾bÿŠ„Š$»$ðöù6ºaó Ñ?ƘÎЫX<)ÀÿFü*JÏ( 7¤¥f´ñÉTT,ÍSá}Kb¿G­ÄTˆê‡à;|EÁÀ¡à 9&O |•:÷+”©,?§â¼ü±š#qZœÉ5ÄÎ’Ã=Ml× ÖÂ¥n Ûî€Wòy´âiàÀrð’ö’WVÂ?6I2ÙÎ zÍ89í©h‹«÷Ä CÙ1.ü«îákðê°HÜ©%²áSP»Š:GÏjl¹Ë?JL™Éþ»OàwG@ y¨8] ¶m3÷¥­ƒÑö °–@-vøðÇT©Äd y2ïøãWÿÎQð“\Ž´þqŒçð2ªN‚íÓÛfãðT \ñ’îòÆÀý™àðÞ"ͬ 5…·þÑ[2ê~žÇð©+¡ø8ª¤ã¹¶ñÛZ}½Õô-—ƒwä…Sw¢\œWÂhM¤5+‚¤Ñ¥8ƒW¡Ñýä–4@ÚŸ²¯Ž*½0WPë ÷Ï'8KÜPœŽï`8›NÐmôª…Þœ•(º =@k(/¢Þ7:N‡Ha]Œ¤S>—üZÈN rÿ|­³Öd£Ü˜ý‡(3²ëhü!£Õà[ò›žÒþZ^»èW:Wj€ŽªJ\¯¨”£È% ÀàpïFáV§³`€Ë×¥¼àð›’ÐÛ¢dܔ渪ôoµg¼ôG­(ÑÆ„ZNªihîNÏìX:nQLNdg|dÞý'­¾LAö¼â«üÿpÿ|­ÓÜ=æV0ù;À[ˆëáaÝnk¸ˆã|ÞêRïZrÄ̶%¨>ÔþŠMcv¸×²¸nÕlnÓÍ\t­ûeû$~‡<>üQ„Pé$ås¦º¡@ö/Ì ÓÂ^²×ÝÝ÷}ÿ8íu~²o0 W!/Ì‚Žäçd©º‹ù}€*A »ÓŸöµÉe?ç—†¦µ™`ëÓ C³¡êŒÓ™âÖ¿êN_ce¢G6#²ìë}’?û¦RÚj-EñÓ7%£„tËoüM%ø(4Ì¿BH)üs:¥§Ÿ|ÿãŠ;þØDµþqÈv„B·§L¼3°/_Vv¤-”’C³ÿýQ¶£³æ#µØ‰êfC^Ÿ ¦ŒŠñÑiû+5¢»4 “úq5އÖùŸöï<ŸfÀµÎÚœ!Þÿèåt1íè<ÎÒ* -ßCå@jùÉåðhïFó»ùJær(ÿ¸ÌfxAJºm¿Gû{†àË|Íh;zü#9GãUÈ.ãÐÓYܬ՜_Qu$þüãsö¯>°&ÑŠÈÃL¬öÿ˜ç6†åC†ÝO¨ }”ŸÏAOÅRTK¨ñÏRK–òïp¬rðƒ~üŸ üX$X½CNxʈ¶g Üÿðd%}ƒŸÏ%©à~þÈŒ”+Þ7òëËw² Z^„­læýpú `Ÿàë_ù¿¿ªf»†äºçý.¥‘?e¼Tãä2K‡iðGBïOøÑ/ò3T¿ h`.;òõþ¦†¤öý÷Ï;Úb\®¶‡²q dŸÛ_$ÿšŒ]áÂ%$²ŽÐZZ†KýA÷I>½®­u¨ÜAÿ]×ñuøÇ2N,M9:¯§ñA¾;^ïlp}ðó¸f_‰Ci;g’nú\ëèñï÷ô×N'jz[ºI‡ËϺg¸ܺÜ(Ÿ]e{ïþ¹¯äÂ8y‹]@£$š—üQF£€`þÔ½ºDë¢â-Ùx:¬¤÷2JUJ„ÄÕŠ„êaüŒ òün3Ó˦Äüj†1*´FÒ{Oµ2Øe»t†K¶Ñ.ðPžx%µ°‡'ÅÑzÒZüÃ`_¶Ç) §ü¯Ü?_é‹á¼Û;í¯‘óeß ½;B9÷<î ·¢)d–;þ÷Ÿ–ùйñÜœë Ïà…þ]VLí÷ê¶1à0'@ã~þxN—yެ’Æ²Ž«ËK°Qr¬q¼ðŸ®àõ<\×)d _â4R€Úêok…qÚ;0J€Ú*€º ùå¾ W…ªÎ”ÉZE·#Ÿ†oŒ–£ÒH+éæ@¢YËÑуp˜›}ƒ|µÐ9æ†æbpµCäIÍÎ •—ÀzíÿH%oœ^@ŸÃëÙªó´¶TUÿˆuy,åù”DøSý?æ›`èâ´”ÿ½þÈèÕÑšü‘OOjToXi^•CRB«'®—_*"º\žØF˜7ƒ<¿;ÞüŽ9 dŸ³òÎØ.Öz°VMç-׎Þ2ï²föú‚d6ëf‰®ñ¥»~˽ïž²¯)‡µ“?2ïþ“Çb_dçÝ»O·|Íþõûœ½N ÷–›Ëd6Kÿú +|?º?¸YÝßÝG˜_Ÿ³—Ò»ÃqN™öG$úï¡ZoÜãîk§sÞ4µÑM}3ßMøAâû¿™pŽ[Ð6[’–Cÿ¶/l~猛 jrØ<4 í}»ï3÷<éÜr ÚçHŸÛ1‚¦B‘srQúšÊØ#àŽãHÀߢjkÎf2†?~”6ÝÍ›*:#hyà‰ÝZã—¡]ðÏSH:wl ŠDkìéOö9¦Ó9|µ Ea¹ ˆëkŠ.Oiž¥Uäð¸Pè,HöÓ)1Eüä÷WwÜÉÐÔ&˜Ã[©-]´¨*ýA顤¸§‡6GEê< NzLÐîz¶ÔGßÿˆ ÿH¥CQá·øŸ4±å¨z> y¬2õà& ý½ñï­Ñ®5€VÚJæNÕF9LSÌ`†Ò†—oÄuÍÅÍùWÚnÖ€?Öp(ß,ôz-Îí÷ ý0ø‰ÞÿØä«b¶ØpñÑÐ?ÿ>q3é'ü™‚H á #ù Õ„_äÝ “äð»ÕøÄ¾ä߇°¡ÖþŸéö±}‘N¾ã5ÐÈ|PÔH.ø1·B²ú´GjÊEþ ÿµ’wòðnÍ¡¤‡¥ö¶X°ërÉñ? Qœ7q›—á¼ïæ´G®ñAÉ©éô7õ¼Èr•kH$éÍiá çÇWñ@ŒÎ´ôÚYìýóǶ -„óç”ïE“v2LJq¡C5Šw\Õk-o¸\`1„gŽ…î®ãɼ–ÊÒKÓø½z¿‚?²a$œ§´è¦Y*Ó¤§ŒFz»5¥†Ò{ºAbÉ(I£sy ÷F¾YÊ‹À!‰¤4ϵ ÞÖz ¶œƒÔRšoP]xAS*Ì%å¢üŽt_@†H+dûMÐåàyìUüq„£u1¤1ÇÀŸiäýÁiHŠAn—h…’PôŒŽr9™¢µ¸®“Ã2]#xQ-¦þñJh\©©þ-ò0ôj9%¶ëlÓ·þ1ÅÙk …f¥ÈçìLú[¢z´·fшúHºh|Ý ÿh ¬»$ |ó<‡öòÊ/ ù7È—Q¨ (û×·£pŸÓÏô±1ÇükG$¡3’λ¨ee‘Ì“ìàšÇ›éÔÜ^?í,±¼ãòJ²IEøþj¦]#TŽû_Yÿjµ/šóníiÿúW±ÿ¥„vŽ;¥Ün&“ÄLr 8þ½ sºñݤn'÷žóķ󋪽ô­6«¬=ÕˆtÀwϺQÜîÎ ÓÑÆ3š•nb7Ôµ3‘u0VÛ|þ·§é{ÍæÄ¨ú£`ª¹ ÿ¸`¹Á÷pùØé‚xd“Rš`O|²ÏžÓ}Úh-½¤ÌPwJß·µ¡ÄãñßÑfË;© >g0)Y“ç“ë_ ¦çà¡v´ŽjÓAhb!Œó,¼³µ rú¢ÀzÁGÈE‚E5ᢕœ=‡ÄIî&ÇOö…žE„;Ü‚k×¢ºèç_¼^<œkB¹Ñmô~'´­'ýYk«šÇ!TëíÌ3?žGîCÉàå[qÖýw‰üOoµ£Mf…‰Þ ¹sÜe®{V:_ý …èMÍRÛ ŸÝ‹À¢ð*OC©ôòWnË]ù>Õ€ïÁ_Ñ8Ú7tÒͦæëž¿šáöù*L1 à ¡¾Ï K¨*?âRJKÝ^á’”ÔýNÇ‹áÇ š©“­ìºÜw|m?Ó<š{ üŸs2I 'ùü#µvT׋!ÿ@iãJ_0RA>ÅÓ‘ò{s^JJO‚íÕÔD­Vþ!ÿ.N•¡øá¤µ –Ì\X&è(héy ï5–ðÒí<޳˜ZzD3^_˜n˜Á¾¿Ê¼A÷Ai8ïîôÿ9"9ž=l‹AUÐ:{ÔÝâ~ã¶wšî6’ém¦»aÜ4åãGf+\–VXÿê™h¬=þØäƦÌÔß5 ìc{Øý¼JÎ:Oœ2öí÷ïüAÃi Ø13Tº•=‹yÿ省ÿøÊºvágÔ+dÚšA=P.šØõ45?¢WÔ$°;SZzlSRBn}òÚ„wú õ®°/-ñìßc#"¶eh4ô?ÿ•õ¯¬•ƒúÐ_ôʆ7Á×é ~lv‡Â?~CÏ–R}:oûÁ?†Pq(ÉTÌÿ\¼>µNüc&u¥_lMçÒGjùù#>Ú ×᡽d› ×.Ïåèë`(Fb8ÉSŠ€$ûh¾; ¶‚ÑZÙÔߟy: Ç[áçÅ¡°¹) ÇäF´Èl7" ùgèqÚK“©?ææ ðGI8ý‡ÕŽúê›á¶)ù¸W‚Eåù ©%Hçà'@ w eçøï…»¤ÄU™G‹q×Òz*aâ}pÿ|™û«í€‘&Ðð…'QëÀÅjø×]ql’êzPjÈ=¨kqÿ=Žã_­Œ»€,²‡±ôóë—p` ›ÔPÜ%|–·PxxxF‰"‡ø¸dÕÚJj(9ÿH$ó9#Å5Z‡OoÁÙ)½ ¶mW7\`ã§T¾UþSº"Ûgá,2þÆ;©ä ”ò»”–½¨—‘‡ðQô¥ƒdé¹éù^½–6ú8= RÜš˜‡Êp8ÈP® ñ¼EšZzE÷Jd#ét9×á\ch0)³”äQAöë¸åû݃P1À|7¨fXBy*=5œ¿Ô7Ì—ou™ÖÒ™rBrhmṁ¹;¯ßµ†¥&Až}œï\tßàÌÃÌòÉ=ÌŒSÜCRèa-¦Så®,Á™¦35žAÊiè~]) «ÀU¸Øq=}k·YÿjsÇ$Íæ¢«”‡ÛØ]4^bz)µ-ˆ#”ÞU †¥šnr]–˯ø¯¸2ISJ¨ë‰ˆJ¦ŸémóÒ5äíþ PãŸÁÅþ}lÁˆ»6ÞµÉP·ÿgøG§?~~ŠýŠsIþ m‰ÿ¨NZA¹ø0hÉÿtJqš OÑ>ùþà)w Zô zv®vÉþx~·*@²m Í[†y¾ ÚÉj>ª®­öÑçw¿q²º±àíAÝ‘Àݱ•áÂóx&>c$׿$ð«Pµ}4—ÆÞ¹Ûos›Ð!´rœ3É4„†ß¼Ëÿ8®LO¥)*'·-0»L (s.Îch'|f®û]øGz*‚œ÷50A ¡Á Ð YÕQUæ™à¬á¨c¹rF8§Lk[È 6[ܰn¬/jgû ŠµË–@Z.ÿØk+9·Üì×Ì=Ó¶9œŒö6²Ì>Ì£©`Ø´œ ÔYÇ®|^º\†Â=Â}Q7ÃÌP›Ÿž@h%æÍYj‹´t*Ú jx´pÝ&…:N±>ÙçXN7ÊJ-Q$̤ñ‹ÒÑY[ ̰ìÖßMí+EˆôÉûGÜ¿m*ad/£æt/°~Éo £˜­ ³Óè üîÅä× ±ÎTÊvt}¤V|'‘“<îI)(,\( ݶe©\xU¡±ÈÁQáFÏÈò)ðÎß »étÈæ5·C¨6Á™lêÂߢ]IûGåaäÁŸÍípUW•¿ ýÅy4~w&je 6:ܵ@þqÜWÕÌ·ÝÁý@,é9"ÎÒOð‡ü·Ú G¦.ÍùoýÀh9ü£?­Fß[™×ÎÓ`õþv›ØvT 4zŸüÑ—ŸIÚÉ2QJêjÉ&»¹˜ä™ ›TpûÍøœkÐ,KÍl`×å®ã#ÿ6Éy4øã>?6Ÿä¸’FŽò2ðGNíªÇôêç–øà4p ¼ŠÚþ‘™Þ8Kßÿ¾É Kµ¡ר<è¯,²Jé^(ÿ¯“ÀWô’V”kü‹A; ¢cÁ=Ù¿VYºe¼?Þþ€>œ@ÊøçÜ‚úÊ4TœË•ä%5~­Ñ½ž ¥þPÔ…8§¿#-LáQp¯8’ŠçY÷¾¯3›¾AEëîPCJʩ䊴ÑHÚTSOSA÷ ë=Í¢}å¤ÕÖ:×eH`ý+ÿ3àé× ì?Ø9â>Ãè¿‹«u‡ŸÚ‡t;ÂÁ—Â&ÈK™«ÏuŠ.DŸÏÈ 9¨t<y-xð0ôj9¥²‹mÝ·þ1Ê9þ(€ñ±‹ r)»Ž‚’Ã5Zj4õôšŽ×‰Z]ÛèiY+euª–’X^J)…4Ž+P8*¦y·ŠÎFg€éc‹Q;j™ÎÊ(o z:l4Bè ðÇ*Ïx>/‡¦—s œ\ZAŠiXn‹$6ˆ¶Ø“g^ßÿÿK}dÿó¾:ÿúýóïœKN÷˜›ØÄ5«þ1Í—×U7·ÛÙ}í8}+ äÃqN˜-ÈÍ¥žÙ(fŸ{Ä©O©d3™_ð_·œ/Û?ª¸}ƒ¼Ë–£Í5µ÷mYg=°g$ÛÙ>µ×?Ó?ö8¯œòö ÜãÔj(t+§&K íê‚„Sƒa$Œ·ßXóYûŸ—0“Ìx[†ÎÒd$ÅÐλTÁÿ\½B0`øŒ8™ñÿØsŸìst§/ú´Ð*þdM8Rhú–nÚ‚ôÍkoGŽºÏ…³0 ¤ü ~Ÿ6øqÏ 'ªGÛJéxà™Ôž~’AmÈiy,èa£4ð ±¶ýG¯t:ç{7Eæß) æPGzh¯Ú ÔŒnÐBPGn‹Æ;é>\¤Uˆ_ Yï¼Ñ‡³óRZ‡ÖÍ„?§&¬üI»un û'®Y\Ànôë1ÎÚ6¸‘}‘ô2FŠè É,'àYeàïÑΙ<”Op3&êa |à.ÐJ:š—ñy¸l>Ήáx“$ÓÄÚShhyÄ¥$œ çhãèé&xÓ˜EOœùïUláPò\ú‡Šð|èäkŠ md˜áÌÒi<¢w\_ ‡ŸåvþçÅ@(yñÉÐÿAè{ylýÝA6ôþÒTü¬å«²§z[®¡ZÉ¢›¡öÍpõÓóVJk»¹ÿ±ÀÙe’Srj‚Y”÷Ø¥4@Byßèí®É@0uºÎѸ"·d¥ÔDí¼ÛË U(rIòQu.äþÇL§‡ics`F´Eöû†îIðGS™*¡µ\­›¶÷vy75“WKsËQÝ/q´€Tդܙ^Øaäßq…ÿ¯¬Ÿ¸ÔÕ¹úî?¡ÑßýKÿˆãÜt~twºM$³<°þî^_7Š[ØýÙ}Ïø²ýÏC;—Ì[ ¹7]´ Ì÷‚ÓÖÙó\Õ´2;܇_øþ`!ër7øÇ¯P«2Pâ[¶š³Õ ZP›Þ†ÜÿÌ÷9aݪւö^þFþýž3Ò-ÛÅ®¢®t„êSJjJCmJðÇç¬_RÙŒ6ýmQºDch4òv$>L5áIO¡e ¡Ž).ýcóP~ZeÏ~²Ï™œ‘øÉ6|¢* E§½6+„§ã}´¤ð‚ ÃõF£c›\Ÿ\ÿjÝFÂïM~w¼d[‡Cs¶@uêCõæÐK´y/rq„ÀúW¿ØžÝé%¹“×Íêߎ ÓcøGmÐÌkÇ>úŽÚrä³Í´„žÀ‹æÀë¦"ãß°YB\?q‚3Ç4¦ýÄ<‚*ÓQ¨sTÍK÷è&ô­ΪÈx\þ.´šú`Æ_‚¯f£Ò!ÞÿhhfØŽô‚úrSNƯ€¾Ž¥BÈÉe¹;þº¬¹oò^Î-Zx¦k>ÿ"µ1Q>xÿ|…Ûɶ§’”ž7°õ¨§Ôm(ÉFjJ™/?êI€\_GŠ’:rR.5Ào¸G¥a¶f°“û5úW×p_æÛ|bð)þ5vñɡɵ¯Ö¨b¥$—qœžàŸ6“òƒ\ž:‹‚Ýÿøü1g«&ïÇϾ¢ Ñ’ŸËËPí‡D¾ õ£Bs)ÿ¨ÉùA3, ûp~/šÊïÕûÃæàl|‰.ƒÒºá\Ýg,“–2…;A[Wk6ýJCykðç»Ê}xÞÐL=xëV¸kL‰ËÃÜ?¿æÿˆƒóüŒòÂ?ZatU•çò³ºZ_JͪË%½^†ºv’R\»h7ÔéÎk8¢tàð< inÙÛzCœðô| n“ÃP7ÁÕRéc­¢ åø#¬7L÷h/¬>“‹:N7J]Ž‘Ú„”Ž×P&ðGë þqÈdEŽªFÎË7ìF.ì%ÔáÚTÓ Âi]©¢CôÌ–Fº[ë€O²IIúšCƒ?¾¢þ¼„ºyÿãd— õw3b”ž…ãÐF²\.I]}£µ¿·ôÁ^Q-*Çô‚¸ZMškbnF††Ñ»³=Üeý«™>7{?|Ù÷BïŽÎs'—{ÊgÒ›ÅÕq×øÒº)Ü‚î@øÇßÇÞ* ùxæÛi®ÚÔ©ñ5øã®ûÌiél2ƒl%ÓÚÌpï;a¾pýÝPܶ¡â1ÌÂQö‰ÍãlrÃÀ¢Ú˜v¤@OÝ=wúþqÙñ¹Õ,óEº ’™L‡‘ 3ø3ø£ƒw¤‚&³aÁ5k?£^­Àú‰EcGB¯Vc$§: þô^”Œ ùñ‰-L?‚*Ž~ÆúWóéZaŸÙÈü O†ħ“6u§”-°ëÑ·¼„²ªŸŒbšìŸ¨ÝüM™:BƒÓU$ôèejÌÖI˜]ßò( ‹îçÿ“b㨷md?ä÷4N ·$x¥/=œÝ+{ÑÖDÊ¿ISàCɨçXHÖÄ_‘öÑ|æa:js˜öšáÌ5-é}ÅÃà‡çA ¹( Z–!±®5Í×2ƒ[" ¢p£ ”í÷ïÚÐ<ÿ8äkaV۞Ж! –†ý;õ¤RÐߖ܆ SWåmÈô8!´Ôÿþà!š„ëý˜z™Wν`õV¹=mgªB‰à9·¡”÷Ðßݨæÿ¼°Ì•ÆzL È n"ùe:’s|¸ñIÇq¥®­¬Ç·¥´àˆŒÐï;ü þü‘RâÉI>'™45Tﲦ‚T’²WÃÊ>È9• kÁü£›£w!X¯<>×—!ôAâ-Æùäo­Ñ¼ðNr›»Ãñ®s%ðÑ,'Çðù à‹‡ƒÝÿ˜jóÃ%ÏÑIøGC~@·y€Ìƒ,ä¦BÞBð‡«ßÃ?.ó Iª‘>ƃóvà×N!鸻ýõm-ë´qVSý»²7ä3Ôã­„DÒ-ZØ­wøã9ôz¤,’œ:Jÿ“ À¹N*Mq.7Ó€ ÷g:{\åÂ|CÅÏ_ÃÙá¹—´œ‚uhkº.øÇY9ޏxÿ<*¸sçµÎaWÛšAö¯Ýo2ž¦^G•x‰Gcà9t¤VÔTJzÒS«i/U]*¿êx-#?x‰$Ò`8®Aolk0{û ëïþi~µiÏ_%į{RÚ;§Ýá=û¥ب»öóvz©½»ZVóÈÝ#Qô©¨ß?,4ã„õ¯bÖNüȼûOË‘ôß½‰wÄ÷ó¿ö„þ}•àùMr³Æ)ïø×4Íî&wó¸Ãàg}›¿¨šu.šö'œSÿªwÍM7–ÛÇÙkº€?†›enT7Ƶ³©ý–ÛÓNT<œÞøÁ9ëÆÄŒÌb£Ú6Ýr}ºŒÏ¿ÿ q+?.ÑÌË)P¿”œ—nÚ*àØF ˆú”­i¿¶úYûV3ãÌp[ ;̾ ï‚þEäûôuR°rÎÀûùi™½ðÉ>çp¦Ã'Ù6·ç¿(*üã¸-HCày¡ð[é;ðMZŒO‹MIMðïI‚±Ìt¤¦¦păÈG·íŸ ì–p¢CÈ•8O§WPú3`ý0`ˆÔÄöwþùH­ N:·ܶ'æH,jG/íM[nô€æò:ŠGÝ zÑx52ñkøÆrüZ”Ï1!=+1Ñ™gêá\ÅãùpóøÉâèW)ð …ß13àc e¹yrçðNbøplœ¶!øÇV_Y³ÐvE&è̃8%ª%П"`ÿS8ù å9|:•œ3à.uͦ+ø´QÆù`ýö n;ÛƒŠv)¿ ¾¸EÝ ^Eùn&™d„ äK\é~÷‚æ•áÓ<Œ£J{NC|Àoœp ñòði|ŸŸò*hÑMN ‘d+Ÿ‡æ†êÓÄr—3ItT,Ï…Àáó3¸$(ûŽ3óýç¥Ü¯0RýÏï–ÅçVæVúÊH)Áe‘NDê½à_]îÃ?ªËaøg~”ÿz(ëáûÍÏÁü#×î¥þ'Èø Ï–ÅÒIör# ïmÐ4²fôVÉ-î&u/D_Cë~âIndý«—¾ΦÀó>ö¯U ã-Ÿí¯Qô™$µÑÛ-’þÑ]ÿÍRÞ¿C_ÓœádÒœ¿ápàwü±þñ†òðU¤ ‘ëö&ृ¾ÔÚº]nÊz¸ål]ˆ>GÖkð:S2èJ$‘_xçW²SƒÜ?ßæ3é(7FÒn\ßš*)½ `Ž&à—ÒUçëdm £ûÀ +p“y¤<ØŸ¸ ²SK$»Aöìlº‚?ºR'ÿž<^ëz'ÁSäèÅõ*è`o­Ã{¬e´$èæ¼³ŽTtAn†|x™ÒrøÿÊý¾8Žûv$Üóýä|ÙsMÎ?NA÷¼›Â7Wÿ÷êƒ}9ÁÅÝI®º/|K>]"ȱηзՑ›óC3šÓn:÷OghË›ñæšÅMð…ë_1Ϥ¶f|{lSQ\gš 𯯷ƒà)̵O—Áq>™Û>¢ÈZ 5)—£Ð”Ü®„²þþHL}é/û•Íb?çÉÂf¤kËÐ7šJ.Ȧ6ôø…âæH^Ä{Â&ƒÜþŒõ¯Àþ ‹ÅöúÛ—QtúšŽØÑ¢™T*½‡²¢~!øÈ\8A <ç?^¹3¡S/0Ư´ü‘‰šQ.d߉Шì߯} ¢LõK†Ò@ûÛG×oOåDtsƒú†ïGOí)[çë2Í%¢¦ÈÁáyÙòy8Ã>¸é~ðG™ŸßíãŒ5?ÑÚ0JŠ$xˆòPj(ìCòáî˜~†e<ôçGðÇfÚNQ:kãÃc¦…¸þn‰À÷WÿÐtÍ©9qà-ëA”…GÀ?úñTf.ÍK‘Õ¯rNÅÛiÎábºŽÖn6¡ÝàcgƒÛÜv£‚ƒ7áOÔæ»TŽ“5ðüî_RRÀ?6q}¤û܉ãr>>Ń™¤GS>xÿ|¯™ò¢Ftþ›yÆÀ]'8¹$—•|B’C·†ê!M$79¿Ä’9\~JÖ"‘¯àòpŠ×Δ÷*Ös£R=0Ô]Ê ÷«t<¸Ç©Ï?È8ÔŠê]PÏk/縵üêèÆyy\á ®»ÿþù%Óæ½zþýkýoÅ¢2Híè2‘å2HÖq‰äíÐÌAózsä(÷‚w®B«þææ¼‘·À½’ö?wÿÜç4qöc4ÀY«‚yЬ•UžËŸþ1FêjN]x²µ³ö’RíïèÊëpFjq&°ûDûn7ŸÙΗq~o`”„¬ß¾œ«ÈHøO{=,/á—)½¿t½ÆöBëmy¢Ct–”ÓõÈMõÑJÿ ÀYìÛ3ÈóW›LÊþØEÉy)rcGÉîå„OtÕŒz]~×Õ`ŽòÚMCé i¦ËÁé¼R 3éóGÞICߎÂðö6u Êj÷Lr‚5‚?þ‘Êz]‹io³Ó{ G*.Çõ€d4Ò¬Hb¯ìtÚhoÀsÙ!™wÿÉã€ï'ÒÛ‘ðÆ×ø ï+¼;¬sËÉí>vsš¢fS%àyÜ‚n~wŽë¸÷}+¾¨ÚYßFsÔ–‡º‚2®)éŽu6ša¶²YaV‚Fb~Q;ÓÚ(ÜüQ‰nQo(HbJâwã`%°Ií0…¢…ø”χÇ)ç…SÞ>@–¹„|9Š“þáQ»Üðýä§„æÚD6…ýœïìʃ?€?Âñß4þŽÂ?¾ç+ôÙÓZŠƒT;›¢³oØrPâÅH¿{Äó(íüŸ”+Ø*ÜaÍ`bnCÂ'Ñ;’ Sg×M¤½œ–§’ ¤Î Pþ=8³mëòGJ'»[…ž½OL£à‡·l}\á—4×¢­¸ÇA•ëp€PüÕÐü]´W<¤L3Ìizâ$ã HæûѾ<”ûó¾-%± M™ŠY‚»Ò*šÎOO×mœn!øÇZðÇJ¸ãSÈ=á1y®B7ªÎCὡ*í…Jㄜ­œ‚¶¡ã`¯9Æuƒ¯¦³Ãj{¢5à)¾ºƒZ‡áw¸¥C†.„Yi¾´•)à›¯Q}·ã[ÜŒãÓ Û0X½NtÊ…ñƒgóep€wŠ#œJb@Û¯HNM¥Sõ©&‘GHê)áy ÷wy1ˆi2Wö¯æô¶~bX¸ÑN¤ bPðêüüÑIfI]Î+ƒtŒj`ÿÁžð6ð‡ð„,¨æß‘j2®wYºÌ?ÖÛb\‘ÏsñO¨ö„ÇËjé'ø å-ÒtQsy P¯¿dÒM<^ÙŒwòzÞÅq$-ÿäýó(ÎoÎ]Šüs›jb$øWmùA¬þ¡Ñ´µÌÆp£)’íûMÇÈ$ñßt4_ÇmD­ŸáýÀïîŸÏwö»¡Ñº;ðWüÚ¾ ùÜCºh¯¹ŽDÝ¥Ùzp==<}­•"ºã¾+FyYøe){ÀÖë &t©*ü7¯²ÿЩèeƒg4Õ<ºı[Çj-¸[xÝ(muf¤^6ðGbÅ ÈEâÜä[ԙΟ¦‹ÍD]¨rhúJ«x—µ ÎÞ9†Tð‹ööÖ{q¼×ÚXËÊIxRRÍ/í5&ÿNwì(:ŒeåDÿ•õÛwø¢;„?9ŸÚ‘îcG(çŒSÞ½êf5™Í™Àûç“}åÜÊn5wŒóëËö?÷OÚÒpä<ô ò•Iê®wŽ›Á¶¶™n.»á¾pÿÚüöøð8rþ5êA+ \ß97áM)—MkG@o=sã³*s|n9T»H'PÿBzÎÇe‰©ø£ ÔégcÛ˜ŸåþõwgÛô˜fѨªÇ‡¨1ú:fgÊȯ)']³I‘vÙ‹Ÿìsg”x©}e“s=PrJJNl=šJȇ¹¸¹îýšØŒß3¦Ä'*F5 )j`ýöm8÷í*‚qžüá_û{žOÏáEg “‘x?õ¡V¶éGw*Nèds³PROßQ,8Ñ?ö'jGÉK©õRÇD2{†sp2À ií°¥Ì‹ªMsf?.Ò7` лÝ8OYá$à>¿RD»ü1‡ëp‡ßÝÿHKwmBhp½üã||ƒí= ·HšZ} ÏíÉ-¸?OBz­ÿ¸ÀGù;øæZBçà÷§Ñ÷‰ÆºÁŸßí¶·= 11Á,w¡]ÿPG¸˜ÿŒúRAæJÝ 9åÿ(eeüã.…lß…ó@NIm?xð¾×µì¾Í÷Á?à#éå9Ë—äÍ­ƒõ¤Æ‘'\VâË4Î ÝsÁ7+à7ÕÑŽhî„÷*vp#áš.£T€a¤<¡( …YÒŠ‹È,ý[£yô‘ö–‹PÚrrœ«ù÷æÐ²™G‚ÌÊïÞw¸¶6;—ÙžF;€Õ®ñðÇ9Ä%¼·JsidM þ@ÿà[1zÆÃµ¶Î6r,ÉË“‚¼ÿá_…o…Á'ž£Ÿ@¢=á»ÉÄÕŽSÛ"•·ÑBºüy¨+´Õ‘üB½0Rþ±Zñ9Îz÷%Hþ(É]vHñ©Ý¤ƒÞ×ê:uçÁI&ê /œ¾çÚWÿ–º cºeàýЈeAÞœêì6þgÅ‹¡^f^l·Ò`ùÖ˯“µ¥fѳR_÷ê4ðG «ë¥:*—•^)Vvàæ_Q)ŒŸÖAîødjj NŒOÉÈÑ"Þz­+å®l ¼>ÑÛ ÿp½öZY"yÄר£àmp°÷¿òýÕ _çÝ„‡¾zÿzýÝxÎ=§œ{Ï-l ™½õ¯fùr¸µA £\ë>ò}νäwÇmßN³×ÖBöÈB‘¨šyⒻɹfÛvf®¹é~ï¦ü¢v±~UÙckb„wÅj³9·ÜLÈ©l:;>pÿ<¸„|¬rØÍ`o‚ÎQqh¾ÿÉòZcl>”õ6Rk*jOÓmxë³¾¿ªlF˜©¶ (OþÝ6Î;’‚Â`||‡,—›nA÷ Ðn{ø“}NéLÄÏo±>ðGkðG hê [!°7Un>E‘˜À•wAû¢RèO¾ÿÅŒ âzP¿ípµ ¶e£~T‚÷ó®J÷PëÚŠwQwªj;;?Rë;ç{7't¯/%€ƒ ¢gö’mŒYóŒÆði*I½¸4'ã tŸÞ ÇîÄ윆¿±©MðÝýüÇPg¬)DG Ðc(‚ÓÁœÎK¯é.ZÁŽ6Qe22n~|ÞfZD£á—mZÌúö<ï+fVÙaõwÿ_„3Ö‡Ÿ—âqð!p‘ÇT‰Wü#%Ççm´ž4ƒNáŠO6¡Ýà+<®q±]¨ ÆÆAðGUÐd+ü|)~É-$‰Œ‚>­—,Hçu¤€L€o¤ã\P¿?ù…ÿY,Rã`×Å¿~b^\·d €ËìÉvŠÌ'ø[I('ù´¤×ì:Rj y ýÿÈsidoàù\žÎý^ÅßÜ0`ïðË–¼™ëòKŠ÷˜,rF‡Zá¼+ðar…»H0NcœÇ%Èøkxô´"]1•Þ«×Ëfáâ “ÃT\ þ1NÖÁ?örWq¼åšìÎÛ%Wy¸¤Õµ<‘GãçVñ20HBÉÎSƒøÇu_wg2Äüží_…¡§ ¬ŸS›ÉtC.dðBzW{ëñïd;HGñIÍz+-àÅëè÷ ï^MtV¸Ï ôG@‹wø˜}MG¸§ôÑ—ZYçHdýKc{£u™~å%ÕKrSûëxÐÍ&œáz< ,º‡ŠÙYöç·þ±ÈYoÒ“ëÑIJÏií:$±½Là˜_4¡ž–®zSçjðGt]* tŠ–—”^~©z$.ABu;\ýŸz+Áݬ× Ú”¿D‡{›µ‘Œ‘+²WÏh;á­òB{‘½_4‡œ ¬\ þ‘”»¡Ö`¨Ú~úž£ØÁ™wÿÉcµÏqÞ½÷ð¯Ö¿Þ?*óÐ)ìžqc™´fmàþÇ ßn:üšîº®ã|™|åœ2ÿØÚ˜1)I)©ñ™GÎ,g…ék³š^f§Ê ÷Eí¬hn-*1Ôúús»ßP%"›Ð°¡èÎkà…|\pŒ[Ø>‡_†¦—” Ó[üÑYºögÿ ñ–ìç¬Y_ÉŒ2“lyøÚtüZD_C‡«Ã7®HZ@í¯Pºd ê¼ÏXÿ*‘óTË¿ÿ`$n‡Qš†âÒUP×4Z@…øZm]ýOŽÌ‚/‡3%?Qñµ;Š_DµŠzƒƒZcÞüJE0[ÿær‹GÑuhƹáƒ8³­lsçÜGjEw¹( ·/D§nàø“ðófô”fðÔý9=1Zgùi)Òñ8ÚHëm&ó,„jK©¦:~Nøœ¡pÿú»… ;ר&=4 M8™ÍÁýQe¼9=µq@‡uBð³¾ f ø#gwhFxQ-\Ýl ¦ ’APØ2 ®;p΄ȤþoÄÖÓ@xç6úÝ„ýàþùj·9ü£|u3ü£ßD¦€Ãñ9®.…å/IH,§¸ þk÷<Óµ‹ûñ+dÞàø‡‚¯~ÂÙ[Ø?j ´è§†Wìç‹’B¿Ó^zXSÉsøG<Ã@÷‘í7òXÎ…ñÚyŸ?Z¸_c”Íóß ªú|ô • ÒsÊ0(jðÇ(7ÁåûGåI=‡{MäpÖ‹æý7ä‡Ú@Pû ¨u¹ûÀQ+e›ô•åÜZÈ[©5j„õ•¬ºš§?ZÃÝ–c$%—´üG÷?žûº8K)úð†üû®t ¼è騢ídŽt†¬–2úPÛk?9Œ¦“øÜw=X¦ Gãåpàwû×úýã5æ2fì#~cÑQn•¡t¢¨ŽÐ˜Þ£½Pú@\o$ª&Ó剆'•A¢ùÁþäþù&g­IBß#{\Åž¥ÃÅË樭ßêe…37KkèU7Im­Eå;/©” ¸èMmúšêñ¼ Oq,wšN6æWGŠIq(²6ñNj™&gdRAøÇ&/¼G^-(‡õŒ$ÕlRCaä¿ì±—‘+<;é#óî?y¬óE ²ÿùk_¹½þntÇçv¯»Éáû×.öeqÓ»%Ý!®óësÖ2wsÒì±ÕAÊÉè¶Ml޹gœ)Î~p^]ó»Ùê~íFý¢v–²o êûlUºJÍi“=cK9Wݘ˜Y·gûZ¡'ŸùüÕNǺ¥ì]Ì”¥Èöóè!Æxºi[Ø àð;}‹dÒÖ†±®ÿõÒ›¿Ì(›:<˜Æ f 䤊i·Q¹%D2ÏþøŽÒÑH»þ“}Îît©,²Eä"<‰Â‚†nÙR½EŠñjäõ¨àZ½™"Òm7ë'*F6“‘É[ROøOø˜MÙ)”š3záWYõŽ¢½—àI•‘Ôª|ôýÁ Nb7½¢?)¾ÚvÉ6ÇÕð!ñ¯¥üÔ ™ù;ôþ >q/Ú7~<–&Ù,&$2œêÌ5• ÉÄýðg×ÑxG* 7zN i»mŒü -+ÂC«¡LG¹ÎLBeBð3¾ªfÜQ‘ÿÃÅBójMÏ_5Æ_q*@=ñVNßÜöXF£h7Îlkãsƒ¯ß¾ÒmaÛ£5ñóûÌ/¡×K©0ü§©d“’SW?þáòRP–ðoœ€ ònnÏ7ÊãÒ¬_â¸O 0‘3çh΃Â@1¿“Ør–ÏK*Í Ýõž&’ÇœE¾•‘\ê{´°~X\É}ýĆnTœùt‡ª*Áý£@í'C}‹ÈD(adï.ôy„Üã¶R_Îã' ¡Ú ÞÄ# §åè¨yÿÿ\›”uŒNPVðÚKzÍce½ô”ÍðçwJdðÇk"™uûŸ’®o‡Æ—ÌÜß6|[ëžo ³ üœ—ÏS~Am(9G•›2TÃhU™$¿iF¸o=Ï&§¥µѹ8sýy;#µÁ[©}ﯖ8;Ý«ð ËH/8:øtÿ—|®Ùtƒ8pK†g,Õ^$}&Wuª¶”予ƒ?Fã<®¥Âv¢íðÖ?Vcä¥Å|,:N§ìN >¯ŠvÒ¼pÉ 2SïÃ?òiÊl¨ëõ[É॑jdV’˜jÁƒ{yÿ££éi‹ Ÿí(ØÜê×ÞN-+Ãd—ôר;É›î½Ð°^WÍ+—õ6ö‹{Ð=û²þÕ…#üWîœöÅs"¼ ·|uœoÿ¥|å ïu’‡ÜRšË>øQ:Ì1>ÀÓá•é¹iô^½96;—ÀÈÝKʲÏ)-S¥LåÂÑ[¥©à ¼³¨7X2@í»â,WÃNàü±Ò–}[ëŒï'ç8Iy¾OqÞûPZNŸè‰<_PºÀ/Š?*èmíªýeTÓŸuMgÔ 'íp}Ñø « Žr–¸o(7fÔºÏñ¨z±UF+yeõ€DÓ)ͨÇ5–F¯Ë®]¥´.D2©³7S»Îözëcœ‰&ùŸÄX€‘Áæ‚W–ñÊëh­‡K¨‡tŸ.ÔØÚDïÈ!è|b/¹¤ó2K:òï‹\™<ªÏÈoGá\çWÓņ´¢»6uÑl^ýQf€àŠê% ¿x ¼šÑûKKÉN='ѵ†´ÓoyjM¥öeætAV¬ÿÿwì¼û}Õèÿš?Ž9ÕÝ‹n~“ˬ ¬_2ÝWÙÍâVt'¸âºÎ—­å9ÛÌi[c<ô/‚9å&w·9 ´¹á݈_øþGû„JÐ2›‡Ö‚9æÙK6/ø#:2ëfãÚ.öž}ã†t—öÃc—óÊÉe·Ð!T*BýÁ!Y8®{e{˜ºÓÊLá ÿ£­Zú¬õÛ‹")Gú¸„:™VPXÞOMÀ×oj{|©ú¦ýŠÛï3Ö/‰í4†Š®²‘)2Tîo¤ÿª³?vÉÏWð÷¯‘§ò!¢„ôÔýTZØéö +TJêßÝä©ýüÑšs ²'äñõ¯ü»¿€’þ„¤ö£sà#µ¾wR»Iè¦DàôÞû7l-üÓÿýÕ6pÛ.Œùµ®áׯÀú ÃáÑ+m^ó2„jãœE¦-ÄYêC…áæp}‹ƒÜÞPhþ…»ÛD‡zµâ2ÜŸÞÿHCW­‹+^<ÿ8è«d¶ÛÞpŸnÜ43¼®nq¨zs(â<¾ þØ]ŠßKÄ;в)ð©¿ÁIµ ¹ÁŸÝÛä6²Ý ³‰á?›¹ÿ¸[þÑÜ1ê·äq’+K.™Á8Z`¦&üh'!uûàýAÏ}cs€ Àö²+»À‘[8™¤!œ÷?ω´Ú{&É%1d«Z¿üQÓ¿™;ù½Š=ÝÐðÇUðéèQ]v9št‰R•³Ë(¯aࡽÖð§FRŒSŒýo¾ßA_&@O+ÒÕ`ë_M´à—Ÿòc\<§Ç%âÎÎÎ2F–rÔì7šs›•.Y¦¸!îÿ1ÇWÝL³þ¾6…ŠGžÎ‚ê§*HÝ á(}ø•áµÐîUþ² ¿7‡:À3GPãs«·Åmmûã|$Bºß ºLþñëHn(C^Ý!?ÊþQŠËþ•ãBïçs >ŽÌžþ´µƒ]—+Ž¥ï©8¯/Zp.Kð²t_Nó~ɉÜ[A­÷õ³ü#-çä Ðç©Üóâš±ûþû¿º(y ܼ$/ášèqD.“¤"”z„ND­yú)7¢Ô—Æðìð·¡¼~4 }/jÿùÝñ6?\òÆWinÄ7Èÿ|¼´ ••¸Þ Í©ç屎’¨ò‡$Ôå¸.}ðócy )ŠääIöç·µîøš9{@àÅP¯!˜¹.e焲Sºk(Í'ýà©u–ÑýZCÇÃ?*i;õ?×gæ9¨%|l|Õ f:[Ý'TŒÏÒJbyiïÐ.îÿ¸ªYtXôöŽ®Ô»šÐS¸Üm½¨ã$¿®¢Hp¹Ñè÷>Jd—Úfoýcœ3×$¡Läß+=¯·«i•”‡ ÑàÀÈàÒ½ªÚP·Ë&i nH&™½R}zÍxj«ódªýv.vz™¶fBÌ×°dµ ·AK£§û¥œCïªzûp«{­µ“ìÖ pàÒP£cd?°Sýë“S¦ÿÒú‰;|œwÏŽÜðÕü×ûG}ëp¿äüîTw’ÍCé7šm TM)>ŸB²nE1øÊ»kCPHêe·|¶†aÚPÑ™6"YÎÍsðSqèŠ-Oý@6ù,mAný‡ŠÃM¦Ð {×|îüó½ð§T“~B{ÛÓCÛîÔ›²ðèHCNÆ“ÉåÅ`±hüy¼å°UœOÝétN  fIHú…5«K­A ãá>¥i×嘼—6ÓsÚNkh0z·ø£H°+s9ܺðÁ74ò€÷b>§BËÞ 7Ö¤ÓîF7”,æœÿÄ ‚ÊL÷­õŸRìùµUÝö7z@¿À/Rs(^‚”=ž1DÐ’[ÁáÊ@=CC+pJ^†Ö΄£ÎGo”|èp L;Û:ŸgBÅ«AQ;£9ø7“Ò2]²Â?ªÉ.ÿ˜ÏÝ8 ØkÒîEîÄÉh´möÁ} k„²@IÃ!ÿ/ã›pYÿúÁÄâÉn¾&¹õí¢®Vîr>É&3@ åÁ2³A+¹$壨fÜë?bâ®.¦à«¹&{YºÈ0ùžËÊ8£>ï°ÞÖNZz@þÁX*À2Ë:Ü÷e¸Ï?X>ÞæàJ|Ù'WÜå™àŽÒŸKHbo…×ÐzA—KL"¡t=ú½)Åä8r]úÂ? Ë(i¤™u&˜kŸ–Õɲ^ªi+]Ä×àH«Ñ¿UAÅ{¨]ÝÌG9ÍKÊÄ[1ªnðs’gqé­O´˜î’}àë-Ô£Û‹ª7乞ԽèÑõ˜mÑÚ  ™ôv~ýWƒ?Ra4ÕFÿ…âMö ‘ ^e?Š¡·eFÔíp’ÒzþÑWý{_%óBÉ÷…_ƒÑÃd÷y~¾Éë°ßaþw èÃiá8´†øß`Ë­áÕ¼ÅÞMçuÒ²E·‰§áK±¹½¶茊Ñÿ¿r~ÔF_¨ û—\õÕs"þëϯ“ßì7¹ÝLî¦ÀúɾÜ&³)bþ4¾#_UZhç°{Ô§JÈNm÷˜‰g†;—Ýa¶¸û§»ÞÄ6_·Î1 Ã?Ã7JA¡[ÒT{Ëf$¦¢˜ áìŸVèåGïÐípn9‰íºE®ôy$?îc3»…~ÆW)Ró@›À>w}AyÅÝEîpøZhäò±4ü±#3FàùGhádê6þœóç×&uzÃsg§âp-ÿî"6´Å ±kà—àooè ê½ i8 …þìûW—Íh(~#¨äFjý…w€rò UM‡:ߦt™’q^Šï*a›|rýGJ'¾ùþåߥ!ôü™½a«fÐb0QiÊ•96Q„fÿy‚ iþ|žÛsÔ`ö/!óÔ¦ÃlHÓxœaˆïø#¦ìä‹’G³é¯ÈÓ1å—’X2zŸƒ¯ÃåWó(.ÿðÌÌÖŸ3Ú·ýV|ÔŒ…cK_™'59¿Œ×úFè?H»‘àµä:(./dŸ, œ_[.¹-Þ+o”-ã__ nÌ_¸OOxÔo´Œâê’À[ Å÷ï uB2Bÿ¿Õè塸3kx~àýÝ<>ÈúAãôrvQBŒ†›TïAq€ŠîÈM¢¥d’wf]æÚ¦mtŽœŠÚL§ñAîÁ‹9„4 <ú5ˆšŽsÖ›§à‡àÐçüÚžÀEd,ü¶£î—¿eZ»TwÀ?Âë=¹¯‡PzvøGxùo ¯m”Ù.°õßúÇ&g•›[ i, ûwO'é½¼ú‡6ÒH(¡%|並‚«Ý;µWÏË%¹¼,R÷Œ¹E@«ÖÙÿjžó»Ûw÷w¿SRX ¯ß£ÇÚÀýÉà®6ÖzÞZo;\¥5\Å ð ))µÕ?ûB Á´w)Gø¯ìµÜÃy÷ÞÑM_#çërý»+1tµˆ9d’»YݹóùÒ›Œ¦œégî;O}Ÿ:"ø+¬³Á=mkQs*H†ºOMR³Ñù>]Úãî6žù:Ÿ«j™[Ðn[êÜ>rÃæu›hT’Ù̶—Uúç ýãã3í?È»+‘x'Î*DDíúÀûWm‘ÿ;ÐÊÞv·}AyÝ‘·/^ö_@¯‘æ›cÆœA4ƒÞDb¾iãC#'Û_ðþnG*§‰ ç)þˆ‡Dsî4‚ÆP9>œ³«,ùwræúÜùµ!ÝñÈaµ¨?æ^ Ô£~¶+åÂl̇g£Þ»á ™ë?ºQ]ÛÖùT«“8ߘtôL‡£¿ÔF]slEû!;†åMð|²œVƒîNØÔîÝ`JëãÌvëã{ÃÃÓ¡ß7Ó÷” tô5¢›î&7²LâÖÈÍ£á} È¿êýšKù©k°û_w7 ũ àþ}¶W€WÇ£¥ƒÀY-à".òõ.>ÃÛ8+d1²çJGGàÄíÜ7·§aN3µìð³¤PÈÓð—;¢®Åø57Ì2SJê!)"¹"¾ZJJÌùÀ6¿B¡p*êòÑúGŽƒ\Pä7™òcÞ gÚÇQ%º×Ä:BÅK$ç9[`ý`VÎÏ·q—6B+K#{¸fðü™~D .°æqE&$ü¾2E*àç§ê éíE>ï-!¤­üW*‹òæ²+ëñçjŒ<ÿ˜aóã{üïïæãæ|ðHÿ'N2“ëJfo¹U¦n”h2TRê ÐÇ\Î5 }šD2ñ° üANoç˜Ã¿v¶ßFCíÈPM­Õ‘Ê[ë÷ºE é2ýAgÉQi¨Mt8øãw8°+UÑ—{éw;åmyíæ!åá“H·ù¾½JóàÛоº\³ ´µR÷k¤ÀûWOt.–ĺŠ£g0Íä²Ùöoýc·³ü‘†êãÞÇãùvõ“x^Mý]»‚<.IO}#çô[øÇ+Ù)5œ—Yò{ ¥fuÌ%¢ª:?ê¹ãƒÃ6ëþ‰ZœF_'ᓜTTÖòɧñuR4É)Î*ad,\³ßã ¼Ž'‚ŽS‘|°~°– Ki)|·¯‡ò[Ž'íe°”ã|2BÇ©z'à!¿£üRO.rðÌ,~8Í}=æä5÷ýþi‹â7^ ÓH)MÁ wx’Ì…óŒçZ’ i:£¾”˺uë't>Hk¾oC`uLù–ǽ·þ£¿³#?Ê©„üTÔ• ™{ &Õr2MêkVÝ,i øít¢¬‚{6Ñ‘ðh­€?âcœ÷²b¸³ÛÜAÂ9A«È• æÝœEšëCý5:*kÔ¿ÃÊNìÅ‚œ×ÅU…g(>îúx΋™˜Õ òùÕFgøã[ôßJÅ+íaZ)ѽL:F'hÝ#³4/<¨°öS|®µÎÑÂrVK ”UŽ^Ûz ‡w)fY`ÿ«4˜Í‘«bÑ7õçd©¼€]Ñ: üqO«zmáèGõ/a}É4-w¡43ä6h-J7þ÷®µ¾xÎë·_=|Ý{Mï®ÎC§¼ùÇdvüo‡Oóe6ßš,f´ña~}Ýóó{¾3ðZðï¡€QÝ[æ‘3ÌÙæ¶·•ÝéîrÖDþªz·¡ Æ‡lèRMÿHæœ6‰FCÛ$¶»}j™àRîÇ×Yç¹SÄÞGr;FE‘ê¯P&èÕ-[Îî¢ÖøoÕ(ý@¿Ø(6¤ý’6—uÿtGÙ|tŸ¦@¯æAƒŒ“ó9 Ëíð÷%ÊL­ÿ¤Ý5öêgÛÞéxþAä_ïöêNÛòÔ—FίÝþ¸@•h;ù÷ÆÒÏúÇeÓ‡ˆ[B£wûWGÚß( FêòóÇ’ÇCqÏ@I“ó”݆:ۮΧ’·NF‰^ЯZÞIË¿2¥-Ý¥ Ȇ¹¨+Ñl†‡„löŸ]‹ßzÌ–t_SÚTg­Û–vRhž¹|ß2Rr‘Z¤Ó%e>Ø!?ûÏ~‹¾ÍKÿØXðæÁòG1ðGG¸[n…——@ý§QN0AnÀù6åÝ|𗀓ñvšÚM#¿bövØóÖþñ3e§´¼j_”ý}¸wà 7—’2]*éQ©"¸$ücq`ý`ÞÎ=8¬tàôÔï£çl^Ûœ¨{Åçà2»)2Ÿâbd5_•ZD‡j/ü#¤’‘œ Ìs„²>_}ÝL¯Äjæ™-X^…ðìp8ùYF‚òÉ ªawÃx…¥«4‘Ã`Ùl<•­lãi¼üñüƒõƒ ln®Ž‘p Ùº-ÆÂ^%ó᣹’¤övh$ó0Þy‰)%£Î„.w纼İsJNždýÇ_'g7ÈÍ¿j¦þnKé8¡\“AšSËÈ é¡5u/Ú¼IÛëUýÄå¬qÙrPãìôÜFw/˜f¨sÀíj ¹CÜ]†¾rÿÝŒPüŽpêÒP¤ê4ÆÞ°•œ}& òj›È³\÷Ã=(‚¿68¯ïìMdm`‚±ð£8œ9 –]A-è8´9-ÆA?”zßÝúùâ|•ÜAî›'àþSoÐuøO Þ-ûcørõCŒ®bà[ŸmsT§eÂw†Á”gÿÁttÊ3ΔIjüÃÿ¦ëzZ í~î´â{f=†w¡Å˜Ç‡ŸÉôBI›¡y5 ³Óé¼èty¾«ŒmÿIÿHæ¤3ßÀozÁ=’"G/VA¦>G#¡Ç‰ég¤æ¼ãüc j»¿ó{÷Ãtï¿F8ÝÁ(ohåDN# d¤*à7—KÒ¸²'³¡ýyîÔ_4”ÒÓ=ëÿÄ28þØÿXeûQ(F[NΡy%µÂÝMÈ '7…Ö=¢¦Ð»3PäÄœ–× ?¶’ÿdõÃôüãÃw÷f›*ö8Zj$ö#Hæ7Ð{Ûè;~Îm%94°„ž—ªr‚[JqhroöŸÖº©ü:·áxÔû£õ>¿r:1 .v—·ÂÃ7‚5È^>%‘vGi8/–<æl’T¦s>.D>‹×ðl.QÞL~¯Ä2æ…­ÿ¸Lµð=õào1¤¯ •ðá:‰|?Tµ§„”_àÿ`,åæyü ß;)¤Ýp¾WÞX[˜ýû¬¢‚\›_Ñž%ËäWÃ?H|o¶æÖPzCI:é)¹ôjÖ ùc#ÿ0#xfýw§‡ãß§­tàÌàÓ!¹ð=¬ÃAY5A5õPÚ(ünmRX/î­Ãø*îÜðG N :ü%Èù£œåæ˜ù,è;´<µ/h3×–9úX›ëB9${ÕõéáEÖG ¤Qº>p~mŸ‘7Q¡÷ÖŸ¯s¦Â?’PqÚg[þX%1¼œ 6ÿ+ÿÈ* Ò²kg}(kánŽWVb{ñ%7îY(®B¡©®A÷¯ú¸m­ÿ¹bCpydЬM½UÚTÆK8Ѭí¼Þ Íê5ÑrÌ DS^csoÌ ÑtÔþ òýWÞß‹ÛõnÝÃ}_u'ã¿ôdÎS§¹l²¸ñÜ5Žÿsõµ¾à„ ¦³yÿØñU¥…qn»þݽÛRn¤ÞWæ†yèLtºMl.·¿;Ë<þÊ}æËÙÇ`ÿIàk(´Gm^gž‰ º¹ç2øãš}h®}¾\GŸ©7:I ¡H1†’q&x\#»œšÑ)8^:pÈ/6¢}æ~Éþ%¥Ü>îïƒD;ž?üoœÄ»ß¥Ÿ2÷øßIµñçÔ/80óÒærƒ¢qM VŽ…Ô'ðd>'_„b¼2ç  PÔhÖMý™›~𦠅åô ݰ“À‘£ý9´,ÇæÉð»õÐîÈðÝÔ‰ŠØNΧ>µËè¤0q»«‡uW^´õà¹w¨/C[áÕ¡Û‡ðû^Ð Ôo#4z#îYú`ùcš³Ë­G›àG ‡hÜ<9¤‡ ¯’´Æãúd&×ç’<-žMPjº`Ó"4Æ?öøJ¸+lk8ׯ`–H¨Ç*Pàh*Ϊ ùþQŽw!óo$æe´ì3’Î#?´pÝøc¥iÿ(AYy/Ÿ„‹ÝõïÚIÅ™¥uàùyu½%•Áµ¥ ÌàN½¹ x‹Ûs2êþÑçWÅ*‡Tþ;êp›×"ìã´Göó9©¬¹t:T0‚Üå¼’RæAõÁ‹Ö¡¶S¸|,¤™ÿ^‰eÍ]P錵Ҽîð†ÂKKùM²À?†@±^ëy ë –°ÒEÉI®Ä9y:Å¿þcÆý¥Þ¼˜iK¢+qŠqU~J·xZÙNÖAÒx Á/呞–lÒMâè.ðÇ¸ÖøÑaN'©x¸­ö®­¾AÎVäœ<|•*òj‰¼žDnI¨iñ¯è.8p£þ¨É.É é·ìÊËÙ“†¸;KÞ¥ñÑÎ2s { £å6_³è0×Tðz:[H7h(øÇ&øe½!WÐú±ýK©a6l“ÓÎ òüc’K$ÆÜɸ¦=@G$±—?×_céÙ€úmôÑçrRšè-„>H)9³¤6~²1jØåí(Üâ´†à®SgJHÑ)Ö÷fÁ)§É}ù^c{cµ³·Ê»«e½µê·YbhnøRþ• £ýö,¥ þļûO^»|Ñ‚œ$~Ç×ê_¯ þhbn›âàNQçÿž^Èä0˜Ž:_’Åß]÷|+Ýí¶94и>÷®ÓÕ9ìÖ°9ÝiîV“Ì$ÿªzfŨi‹ž®µ+Aã¬GEœó&)ô&¤mÛÛKöÖÅaSÂÃLÙN…á;0§‹‘%ÿ92m b-‘­¢–l,û%k&ýû_µ¹ Á#hFäm¤ùÆðs |ú¿#6½±iPë-öùgÛÅéõ\b#\Šó_#ò´-CÃh:üc2=C{röÝHBq?ûùÕiÓ‡®‚ƒ~‚–×C~Š”ÿ¥çMðFœçÓk(èf ÁÏ‘Å{PûÓ'ù#‰“ÙD„¾÷¥°¨×Œý;¶Øæ.ÍàÙ”…b¾F… =\AMÑd°ÉN[Òuƒ©åg‚Û šÌü'îÃY¤ûBðÿ:Ì( .qÿìçv\ŠCé osÐm‡*PÏ`üc­/³» Šÿ€F@‡R`žûÏÿ˜€|9š«p_Â-ª×¼ÂûÑê|Ž´}¸÷g¬ú£ó?Æ™Š¶;˜¤Â—¸1(²­·…RLJ)hiu9ÏÕ¥¬ÌâŽjy€1É0ŽL>Ú¿Ä5BßRM¤òQüˆcÉf©q2xÅv>/eµ²þ¥±¼ˆrúŸD¦ Žùøiàìõ?¹Fyt³ò½Üh.Ü¿2(àGö8±ü.#$3ç™(+ºwYãxƒ$<ô¾êY³ð¸ß(ê*CÆ6üÀ?Ê¡ŸöÞ¿jšyÊ‹d"¼ç/®)Y¼uðôú¸°´“”º5T·•gðAN*`ÛômYO|-õ ·² ¶úÈOõ(j÷TFi-.S¥•–Cª;µ›Ž‡Bg×Nó{ƒfbKܽ}Ô9ÈÙÑSAÆÿ†ÇIšIÏø•}J×¹â¦ÖÖE²S6kho³®Rò’깤‹´ÖÙ-àÖx=¥µ‹ƒøÇvg4ü#øc>%âv+m•ä^$ÐGðÇcðL ”‘_[ý]~Ò¶šG¢z%EçÈ\£ßÿ™ØoGá:§±ÛÀ&FÂhF1‘­’ho·–‘ÑrCŠ tÒ–Þ2ï‘õ~Ö‚òL'HlM'õÕ¿/ö3;üqõˆi'~bÞý'¯Í¾ˆAöoéûÁù܉¦Ÿºb8/–æ¥ÉêFs·vѺà«lŠ›:¦9ëÜûÊõñÓî[03í±ÏÍóÀÙâwëÙbnoøGró¹äüþU }Ü y·-ENjWÚZ» ðï)mQ;Ú^°§?ZCüµÏñLU{•ŽÃ?ÊÃ?öCë³Ó ÛÆnÆýßM5s!ÿD·/ÝO­Äz•r§»Q¯cHchF­§ôh˜;.·#åë¹?5´q¸}ðÙ6—tü篯µ H¸ @š‰C‡Qz?ð‡ÿ ø%’ÏC9vA›] éVøL‰ÏÍ(QúýöHf~våCÿ‹p,ðÇS”y õw@-mƒO¾•él¢€~¡¨WWPÕ}Ô¬=ˆdO…§ý VHÌÈ‚ÔzÐÝt8éQ:a‹»þ|µ³ÙmŠ4ð:Béã>ÃT£'ø åh¾»Û +KÀ eyœh=ØÎcbdñòÁøÇe_%w·í†ŸíZHÁÑ ’ qw‹r´s0—côñ RîÎ…ÿ» ýqzt9âW7ÔGû_ýnjØöT¤vRþÑ“¶Òwð‡6’W6Ã?6ãŸW¹¬”—eüJ,Á7ÀoàUYhüGï_…/d *”Šû_F–ŽÅ›9µÄ–³| )µ¬ÎÔ¿5‚ÜãRXF?jð+ÍîÇ•0v|ðùUYóÀV˜8þØî‹Á ¥=ø# —— :U£z—ô’v”ü“ü ;¸0çæYà <Ž×PY g˾WÞ$›=}~_[±€}þ” šÙÜFR{óô[}#ÆÛ>%au (¯úu_`G˜ ðY¶ÞÛ²ù:›(,òA¢x‰T–þñDšjd­& ¤µÒ³ò­Ö¦Ðç§`¹†Ú›O@ëgq©Ëa1ΛØwç õs¶˜ëð£­à3…â vþóC®áçç‹OWkdo­®Ðˆ^lðÇ]]¦ý$·nÆ(üe¦å¹”ÌNµ ÞúÇ2g±›ºT "o´ÏiøÂÏÝ4¾>• ÿŽÃ]UáOéu¤~#¡½RL%\4°ÿÕ1êövÎuÚ»‘;PÌõ”Z‹{“À3å‘Uë-ÐÞ ï¡&ôšjY)è-‘½’XJ«‹|yÏN§ÝÖ…»ÿwžŸoG*ä·#Ἧ£óuû¢¿»b:¯œf&¼[ÆÍåsÊ;þ³qóš,¦´k®;×|û¿ª4ÿùçç‘N›@ŽZuï™[Îÿ'¶€;Á] þÈöUõ, ÅïN{mU¨]IšhoÛ2ÎUƒòPxûínïÚg_È»ˆ¦º½F{¡sÅP×S|ÎMwmS» Z¸Þ‘#~ õld»é Ê+àNqGØBt î1”¦ÒsH[JÀO)X7N·Á>ûl›9­‘‹Û¸šý»D' ³E‘¾WP$°% šeTÔ4‡"Q$·ÚgJ¼oúƒ:S Ì•vhå`pPgÐò&hªÿùÇøÔ>ºˆº:¼ßÕÚ6sÎ~¢¬ŒN®Ø¢ažôAÒº숖ÿåÉAݹ<‡C{ƒô'þXôòQ[9Øý‡8 à;Èð0Å!ôZIô|eðˆþ˜â.w#ÉBn͵x|à]àqõˆú7 Æ?¶ú »ÛÀ–{q'øGt^8ÿ#?ò~hf”Zz|Þÿ¾)LJ¬ 쪵5ìçFúhìŒÃéXÿ±šONï‚ï,Ź«ä–9RQwI¹ÀßIYÄ¿hü«Û…´eôíøÑóóÇ6/ø#’ûEüµ›bðN#)d'ß’BZL§èY}·9þÛ.À…PÖþ'V£œË,|¯Äš(¯ú"Z¸ýîp| #å[Î/St†óNê-m!û¸·4ÇÍf+[yïBO‡ý`…ü@[ž‹!Aì¤Bðìðü7Oùò‡¬ç†Ý[ª¹õµDñæÊþ µÝÆ#y8w-„ ¦‘¤<ß6|[–ÿüÚ­pÊ‚|•Š`$´;$Gûj:m-c¥š'$×ËÚBûÊ6|ÝY»£¬^¸?žTå˜HH?ÛõoË›æ¬6¯ÁÌ0 .ñ Æåþ¨Å}øÇÂÀû»!½Yp‘è^ÜÀûW#uü}Æ}7Áùy1e±ËƒœµÁYè¦ –¡Õ”œWÙh5ø#ŽiD× ²÷b‘Ôß44ü©ƒŽ×¢ÆK)Å¡†+“¥2¼Ú¿…sœÎnkƒšSmäªo(’CU‘ rÞxCÀ?vzÖKåUÕìrì•üÑP“rgzb#…†ÿÇþ¯¬?ßë‹î„;.ûÚ8Éþ¥Du®;L7üãtàüµ¾ì&)d†Cûïù¾ä]Öw×}ßa÷’- 5ŽO7ísÛQVNøGºJ¿ÁÓ¢Ðp g«¯¼Mƒátß!ù×åäà{¨ã^0ƒÏÃ¥hu ×SË©Î&×ÿV1sôÐ>8w9Ê‹ûyDT•&»“ÜhH¿M@ £i hf"%£#6å¦6ÁøÇ"܇í¶+ZÓù9%x`!J ÅÃõ vÍáUy#ÒònøGò€¬F"ÙF[¨³Öœþ ¼q¦­íKup—óÔáøc•`GúIæÀ;¨'¤˜àujVj'¯ 8?8þê†>ûÇÖ\¢¨SQê ‹É[ÀH¾žÏk…27Û*î½`J›þøßû7ýJùh-´¡H­F€?Ñ w§kdø£<\t Mƒ_%…Dň*Œìò•s7ÚôŠZÁ/bÂçRuÔ¡Úùˆ¤ü±44ê(¯@‰©À\3iÚ°.×ÌòÑØ™bÚÙN ¡8ÐÇU\œïÀ'7RQ~Å%4°Š®” r† øWƒpÍ÷<ìqþ‘ŠúÙ–íŸø Z™Úwšo¡âðYίXÏǤ¸æAJÝ£a@4Y$‹ŒDj.Å—à˹/×Ä=Kc¦¾Wb y`ÆZžFSþF†£^18» ÑéÈâ§¡¯?Ë!î%ä—ƒBýÉ!@;³Ðö²”Þ¶}¯¼‰¶:˜ç¤âÜ_Ðe#3¥§ßÁ%¶·NSé+‰ì-ÄÏ÷‘pºŒÒ e®á9`†LR”çØoËzl°^‘¯¡Ï/`ì¥æTòX~ÒÈú£ÌCòþN÷KR=ýï%—Àr]µ'ˆg$œð5¼:¶YýK¦9{Ì ¤§ ÀÂó1^)eu“ÖÆ]x ÿðyStކ÷¬¾ð?_СàÅþ}œáI‘‘ÒÙµ¶ÞÛ¹7ÇÙæFÙgÅÝÉ{íÚ"ñ½D:N[kJ´Ó¿.~6þíW}âÿ O—iôA*©ˆ6…ââ˜wõPÃÞoGágÛÍ&@ù'!EÑÞ\­…Ÿ½+Mõ’Á0o¯ÚûÖk¬å‚”ðš\Éé±@—à 9n'>ÿ{×&_Ì Ÿ_½ö5tâüKÿðœcÎÏæÉé¦s7Ö¬ñ•5YMnÓÜ\rþñmùªÒÂ:+ÜнLú÷Ü\1/œeÎ>·£Mèvs÷›ˆ_É™ì (Ô:û=õƒÆ¬³‡lNg‹I5YáÆ°-ì]{Ë·Jíãk¶É4±Wh·ÿ}A)øãÊØÿXƒ,|ß–?»6¼=óåUr'»cli¨tèÕ: ÅW¨èý>EàߥwRHô@$Œ¬iöégÛßéE9蘇Ÿ.Áƒ@-Ñá>þ“fS$ÇÙÐæ›øŽ4€žÛ—&ÿgJú~] "(¯[Nú*e¸ˆLÑyšÐÛ¨/µºÜâÁò‹ìGi©yèè$þÜ 2K`k¾WÞt[ yå§ÊÜ4óü±@zË.®#ñ¦óê9´‰‡HT] Šê‰d¿§ Ž©Á«lå·e½ñ†¤àú ¶œ|zP}|Ï3éªIõ'™ą̊k%®Öò:üÐDëoìß“q»ÒŒ#AÛYÿ±ÀÙ`žÐ·ðEt‰[æØ2HVë9­¥«å‘¬QÏ›Œ6‡óBèiy¤K´ŽЃ¸w-xçâ•”Ö®´MßúÇ.gžû-’Y&Œü¨œÚž¢ªšÆK§£´¿fÓ{âß­eºf‚=•YH ûô'òJHa¤¬Hþ(À'©uýw›¸Í12{REú†ÒP8½á-Њ¸·1N¶ê0íÿáå÷ZjU9§‡å 2BnÌ¿‹:ì·Âßp;úóî?y­÷…rLý¯š;±þ¥DtŽ8MÍ9SØÍînqüŸ«Oõ•7ùLrÓÏÜv®øÎUi÷|1Ÿ«¡GcÑ6ûÌÜ2Ìç€;Ô~80þWî_Íž‡¬±™i¥§ÉV(¨6”l¯{ÕýÁ>°×¿ðùùnGM Œ™ÍȼeéøG:.M¯lm»‹Ú€ßËR4$×®öµó ׎s'Û<ôˆFA3—Ñ3äñV”s@¸ÅâHÕ.™~ÁúŸÓt±~’óñHü\t:i+Ó$´»0£UçÅðÕ$b ïæþ, ¥«ÈÎ]1N›ÂÇ~öŸ3 'ÚÁ¿qCNÂcPßE´sí2~=ªlk;ŸÚé,ªó½IMáx˜2& Äï?ÅîJ Ùû)5ýÁÕ‘£öÐcry †n “-´ù‚=ÿü/g²Û¾`@YEáç Ö¹©$½ÄohFÓÝyn4™5.Ê“»—ô\±/l¶`ßß]å«én·ÍÁ}¹ X oBYþó£üûüµGB¿F… Q'y?gá¸ð»)àÏN`Š¥T9˜ý¯Æ˜ÎðÚŒPŒ9¼‹Ë²»ÁiŠ?ZHh`iÝ)eeWŸ+ S  ø³¹ ’q}~c»ÙªÜ——Qfxldø‡ÿó«£È²;8­|+‹Ày5½öÐˆÞ >Ź$‘üÉÙq÷ð¸× .Bi)¢™öÁúsA¯í‚ÞW¬‹ßŸüñ‡äââ2F‡ƒ?¶i(¯±¸`ˆpï8çëð¼.ýúƒóÏ'Ú:Hþ/0þ³ò˜ÀúÁ}ÐΞ²«H o±æÐ[rEHt-ùtÿÂÐ+ QÚRŽ*)y\çç'‘ðP|øÑªÆþ·úRqF9î?1 ü1 ’^7HJ]¯Õu&ø£ž¶Õ|›GO¿àÊðóÔ1ÈþWÁ/ÁÌû‘s.²KíÐKíÁkW4·Î–µ²Y£xôˆ†õÂèE áÝwÕ%ô‚Z€? ðÊh7ÙrAÖluS`4åC.‰Æ§l^Þ,½ ÚS‹ƒ:rèF þ°Ú”äÚŸÈ )꥕‚_"å„@ ²Éf§·û»N©9Å¡ôƒfõÀXò“l—ªšÂë¡5½ÍÞE-âµÒa²ÉÃjJ‰r?ò!Å^³‘99'ü¯œ?¸Êç8ïÎm½íkìäø—þ‘ܹè44‡M7ª»&°~p¡/T¿ˆéaŽ;}_²âÝõsŽm‹BóÃÑkÝÝ&¤Ùè\wëÛnKw–yä|ÙiOÿïÊfQmh‘_9ÓÒ{Øærö›h”œæ¹]ÿù7?ÊÁ_gNû7”c>fæà7œ›îÙvý‚šRR5jn£Zßíß^×î´ßAEGÓÔî ‡^§%„àvPÒc(ñŽŒšú‚ó£²:])'-·áI97O‚R‡T§¡ÈÒ%Ás) æqü®Ñ‘ž~vÿÝ«f"Ý¡fT“¦S}:j»àgûBI@ÇZ 3û÷OÜAþO«¯C£ÛSiäÒO•ÓùÁ$C«úa=±þýK΀Ô:@ñ'óAÿYòP ðH·OˆáqÓ@£Ð¿Ël!÷u0¥­vº½ûï¶ ¬‡<ß̃RB±p}Zà®u#Èr$ûŠü'€ÇF¶;dý§hdöüÚÊî2¸ãmøG+pÕxNð`N^„Z çìßo/Ÿ‡*Gçt¼”fâwÿ ¿ŸBeÜ0}<Óül;Á§ãÃs6r ¾ zÛŠ;ðŠK™)åàeä ×–r²”»r|.›¸7¿æ>œ…~ûhÿÄ—NäÝÚðÆI|€¯òbJˆš|'Qå2_Ú%ÔNúLÿá›\^bÉ(Nv_‡{l€šçG¦g†~ðþ®EüoΕâ9ÜJY:É)Æ•e´.ÐÞ}¤­À7½¡cG¸tt"Ôy ¸s3F˜Ú:ï•7ü‘›/Ò ª‚<¤<J?H&sKIâ­Õ zU6ê:°×@I¡³@Eþü±ŽgòQŽ/ÙyPýÛ³ÁÙH¹àÓW¨ oÅýÍÅé唸‰”¾øgZýKŠéRm¨£ä4¶¢nCŸtBíBJ{0ì jðÞùµ‡Ì}ÊÍç0Jð-è}d(ól}ØG+:´þ®þ©·ô5xá¾\Ò-ÚVâêRd‰Öðb‹ÙàïöOœê¬qÃCEŠ"AÆá ö“L^fí_{-qðÏÂ`ŽdÚHÏÉ6i¥1½PrM I |÷3x/Q#Þ$Ŭs~u{Ù¨MM0ËÒC)íý¢eeˆl’‚ê€:šys½ÃšÁë£=d¿î‡òüªé¹+=µ3踀Üå}‘ÚüO_[| ƒ<ÿxä«ï|îDºO]ñÎ@sÝTs3º‡rõçÌ÷¦üã‘óÊ÷%ï²¾»\øÇ>¨}yܧc6•{Ϥ?q¶UÝîÏ$þJþ¸I­i‡-‡¬\Äw/°ÿnrÌð¨Ö±=í#kÜ/;¿ö‚óÈéh¯?Ã'ÆÓiÊÎe(?Ö[˜•¡<=m"Ö~É3ŸnOwˆ-ט„ù<,rÒOH—‘úQj~…Ùz߯A¶^iï¶Í1œö`ªõó£ {”„â#Ÿ”€/¥¼`š=p»µTÞç?$‚[î3%ž5SéÕ¢p‰©þ5 =©Ÿ†šøSë$z ]ôŸç×üÞÔÞÖwN~¢¬äNAôøC´*Å…;øè6ø£7ùxæÓ·4 šîöžp÷i²ÕÚb˺îNè¿æÀ?:ÓNÌòߨ*í¼ W£ðô»Í*s¸3Wã™È‰+è/J'M > îýÝU¾îjÛ­éfIË!x(råà©Ü)y¾&Üã8o›¤à¹ðã=4•Ó1jþøpï´¾¦£í…‘–2°I-ÜÍn´—ÊòCðGNY,Eàå7“R²i<:W€ô„BãD4Ô6øà¾mÒËZ °þü0Ün X"¼—ZJQXx2eÄLöv.´µ!ÑÎ àòDäÓêÞz­Œ”1Wrë­«=¼9Þ&-é ÕfrX§KhÍ_Š$öÂ. ðGRÎnç}bÞý'¯C¾ôAÖ8Îÿúùy|ç”ÓÝDp+öOôïß¾þÑд2Íßð¯Û7´³Ç=Ý«¥9i3º¯LJsüÑß6w‡¸MÒÏžœ÷þ•ÊÞÀ ¾l‚ҡȹ‡&¦ …>ö¬½ež}¾\'6ÕÁÇiU¡ápŒè\€ U°«ðÕe¤¥ ÔúÚØö©û%k^j¹#Üq¶ =BÚ‡¿||™< ߦˆÜ—âò äêÇ6œt¶½ùÙ6gpZÃq×ÙoOó³Ïò$ôÊ–Aú^-<½ Ï[@iŢĜbýñõÜÌ…ž·¦?  Ãác¿@‡RùÀ¾®Õ8Ï Ç`®³p%ÅLïB5m‹O¾•Ö)¿ ÿIŠDü3yôm‰»âBÏ@û'@¡£"o> ¼µ¼Ù~þÜc+ËSYncÚ‡Yî÷´sp±Ü¸³UÀá¹!½rŸ¸¡e1’u-žC@ 3(#ü*¤:ÁøÇQß÷î!û;Jëx®•WPøGföïá;ÊÿfÕámœˆÓðlÜ© è‘#ðIà›”×Õ´…×V€:¯/Ôâ¨ÆKa¾Áµ$¯¬”ºXr ×׆,ânp§¢P¿¡ìI.Es?Úÿ*‚yasÀ'³ÂË#^G‰y´>£æ½R^³ëDýGï€?ZJ"µ¬Ž,~”Ï@ïP>JcF¼WbSsËVB¦¸&:wN ež(=5ŽwÊÕX^rOé(§¸6gIE€[ÍiÖ¦tðÇpðGðÂQ*Ê]ü'ýñ"¤çA²š›JDoü-–ÞÔ)âÉlÉ«ã᣸ú@`•xmô¶¬G¾YÎf8eq¾ÿ¸€‘–‹Éé­á‘ÊçAùóënÜ1m£“åºôÑð=Ðús ü‘„R'»ômy9ëÌ úŽ7âcÅ@è$]áô°¤Ó±šÈ›ª{5žNïÈMÝ­KA7k@Ê¿ò<Ü—ðAöO\èLw3 ïä Õð9ÖåC’ÕË ‹5¯¦gµÒ]º w¤hd§TÓšQRy$?ÅDNhB@Uû¨{óϹ=þQ94Ý–bÞ­/«d ÈR¼Ÿt²·Ø;­u½ÑÚ\¬÷·\‘òÒM£ð@zc7Òn 31“ö‰y÷Ÿ¼ù’Ù{úН®óuëòÞ])œ=N³ß”wc¹Ûþ±ÂWÔä5ÕL/sÍyù•Ÿ_=òíq·Ø È“þÝ‹¸ìf‡œq»Øvî`÷ª û•ë?²Zæ_hòîeäÊöŠMç¬1á0#KÙv¢}`ï~áúóΧº}H×ÞªB•¯@cŠ€IkÚÑHÂWà9À¡Óm{ßý’wJºÜÁhéµ€Æûýãø#ûwñðŸõ’ RzÐòÊ/Ø¿=¢Ó:¹Þ&ⱇbÐk›‹& ççcpPPè ï©pæhŸ=ÿão³³·1jr†ûw(¡^ÈÑ;À 0&Â?®€R ±ÃLoaúäûW±œ¢&6¾¿#j›ºRxºŽûñ3œsŸ@ûúA£Bó^ô€ßCý'<®C¾?akûü|š3Ö­MëQ^w¤ŒcPòâTˆJÁí“ÿüÚ•®Ê4°D9ž@ÛPÒŒÀùçÉá2¿ã}ßwÛÓsêËÍø´f!U#%‡¦×æÁ<5+ÇËøo»¤äÕèÁý4_¤inäÎêlêÛ®¸Yá׸2îbGð‡ÿ’º’_ÖK)Ý ¹ ïõ¤´¬‚N¥áúÐñ?ø5”5=FOû[l^Ù‚T‰’€'¢ËCÞL‰Pò÷’ t@ÊjFøÇy½Ê¹ŠÄ…ðZI¢ÌÕ\‹JP¬ø£¼yh+ÃU/R=ÞË?2qäÝñÒ˜sÈ$¯á½s«,—¸‹4–ëܘ¿D‡“¬7&±Åß+ïw[ý³ŸP î·< þX/ƒe·‘È`™²F7^nòXùN·ÂÇÃáà¯WœI²ñ¢ û·?÷Íuö£}%ù.FÚ^jïÃQž?¬”92B‹èY$óÓðßå²4Цº¢·£ö8FSOûîì¶Î(ó þq©é_±Qøw^ðÈúºURkMèÍÖ%×{$§å®®Ñ}÷¯¢!9¬æ2 ÑïìÛå­LpF¹ (+ÆÛNÌý¾ÖðVÉì%Ð)ðµ—r\Zètݦ¹PîSÙ,Ñî’ËÔÏ›çÝ×ÞÚPöëXy%¤ŽFâ¡dh>²>$šTAžøüï]«Á ïNw{æ+á|Ýs…wW<ç„ÓÎ<4EÜÔîÑÀþ‰+|%MaSÎüln8·¿rýÇß!wµ-Kµ('… LîmÙtvºíl w¸»Ë¼q¾îó«¤ö róßðÿIÔSí%øÇ1‘Áf´#ì+ë¹~üuÑyæ4´÷ ë1§ÓiŒŠôÂÖ±Ó¨9\åGúz;ÔÆ´Æ®ù‚ò*¸}ÜI¶’ïhš ^îîx@Ê)ü#'=´ñ { ìå϶ù[§¥¥Å64E…O¥¨øê™-Oàßc^í…+í¤’´ŠFPRŠùÙ÷¯î˜¡d1æ[AýúÑ]û;ùÏ2,ËÛx/*O¦ëp–c¨ïk”݃ÚÚzΧH3º“×$buìß>BÓÛ„ƒ¼†Á/ÊR[¤æp¨Ë®ÐRÚ Ù:/ä~¸;ˆÿšáŒvëöOü ¹í(’o0L%º žiLgÜ¥î+èq=äfÿúõð4tÔ&ÅoŒ,õåtó „_Äçð¼É¿ úо1€»ñU$ëͼwÃ]ÒãÿÎÁß{i°›È|ø†XOó£7ËÄø.×AïôÂ(Ìϸ‰|¥.¥[$càýݼ2Zšn¿ƒGqxé‡42á#þøÛqàŽ QÞN,¯ø$ńߤàƒRÊ5Wïh|y ÿˆ*“Q^!üÞð?Ù¿£f3û½+˜G¶:üã"ú6è"'’þu)ð‘ºRy·Õõ†Ê#î/Må6´ü{ÞÈž¼€íåÅüà ÿPÛ¼p³¡ \û>tz¦Ì—~ò'·¤Þ$óh*Þ Ì(É¡3x&øµôþ_çt’‹çY?ÖYøüª>¿¢ |y%6œÒê@%Í!e”fÑM’G/ê#»å-¡Ûù$÷ƒ|#­8_¦–AÞ¿Zêì2Ñ÷—1ê/p80å%¸[k}¦µA™µ³¾ÖI:<S¯É¥‡$Ÿ®Å¸oÇcÁË©´]n«ùüj–©$±±púÀ?k}>j£óüÑ~·T:é1-&%½ô%±7 ˆ”|ýn¶­N·¥}ŒlVy/.eÖüÞH­(ãä\âº×þÞ½lÞoZU.?bj3Ô? ÿÝ™MÇ­Ç 8Í­VþŸ¾vû’Ù÷–ïß?ÿˆèœu˜G¦’›Æ=åø?]šà«kJ˜Š¦¿±æ‘ïS«‚¿žø6»›mäÞ¢tæwŸÇlqö»¿Øênww·Il¾î=ãìö¤½¶Ý„R̓Ûçs›dÔ’’Ù¸v€}b¯˜s_TÒAç…S4sšT õ2eãò~&µÀ7á!ßÑOÔߊe¿dÍ}9w„;þá GÏFš° „¶”.4÷ ðЭïè*x¢ m·¡?»~œv”—ÖÙHÉi6ÒLJ°Qq°Í8*ÕYÝÙ%ÚÖIA‰?»ÿÕ)3ÎV›Ú¡½Ãàcý¡Ò}(¯ç©\£ñHÐÉF(c\(î~ú:ۚΧžt%rJ›„ôß’âánDEyÍ‘ËШS~ê Njŋ¡ÿ¡À#ËÉÿyõ^´¥B°û_Mp¦»ðÿ…B@É ¡]…éþKOÚëŽu_óBdÜÜàkÇQ|ºc¢-¿ãú²¹‡ì`¡îüS`ÿÄÕT—FQF´³“<¡º|ʳ¿AÚ[-Ú <òê†5æƒ~ìhZبQ^‡Ÿ©€ìÛ?‘“orðÇ")§G$•\‚Ú—eHì±á[À>Ïx '½Öû ¼'Î3›™êøÃCŠ_ƒd±ž¿—hrŒÏHU- £ô*üãW–lPíüœ…_âwïãÉpÿüÅŒz¯Ä2掭 ~:M5ÆË" ¤’îà2õçS5±÷JoœàáÒª_ þ1‡ðÈLðGe mß?ÿ|¢m€ßy ¿úë‡B¯“ž2…ûJfÖ÷4µœm¯Ó!©åe€e×P:|´R·hBm¯áu¥t*ú —¥hË‘R!ÞäSÔ%N[·­@?`l"ÓÑk)ëÍÕ¢2CÁ‹Ö¡Ü¿¼uÞsMê ×Ròm¿‚ Òü1œ.Ã?öÛhœšóýWίÝï‹ï„òü¼‘“âÿãùÇæ¦)ï¦r¯öß]â«dʃ>™KÎ=ß§žª…rö¸›lE$®ŒP™Üî#æ‚sÁmek¹ƒÝ+&‘ÉôUõLdÏÐoä?‘ê<Õ¤%v­-âÜ1i)+űñìïö”}e‚{JûñuÎ k~°·èoZ†’æÐJÌ…Á¤?Ø%p£Ô€Ò!ÿ²áí÷Kö¬¯éþáþ…–ÞìÞ¾|p–º!Ï_‰ „^‡ ùà ÿ‡¸·€²âˆÖ…OwÕ–wwH ¸wwwKBBBBww‚»»»; îÜÝCà}ç¼õ`2 ?õß›f20³OUuÕ'ÝU{g§yöìûœÙi ÆØh³ƒ ƒ‘Òcž?²ÐÖÕ”…Â+0oÁ¨î6QtSío‚?îÂY·>wþö„wéIx0µ6n½†39…öúøx³&ï}ï?¢;uàø^P7úmLÁl-àlnÑo@ž‚Ô+°‹•õ>ñdÀìGïµ…ŒF+9“L=ÚØ\ß¿c”üqñ¾§+f³y¬ûñ¸¯ù4|ùÀƆiìò3Ël7ÜÍnàœÔèÙ\xß1”¦!8¤'×ãÃÀ»-œŒ£óFšŠ1œ@{ÐÂ.&Ü;sgøÃŸ?1#0òÇþêk©?à&’WfKEÝ&…å Wò2“»Â/4æãPЯ y³Ó¶W¨ÇvŸÛ"T›ÒúOWsWRb>¯ˆ~N*ha£g5ªÜâš_r)¸C+‡øOäzàülîøDüÅeÌÒU+ÿ©úìq4"ý¥ øcNÒØÞeýËÎÜJ¾‘`.5²?“Ó௓T•"‡:¡ÒÕVä‚LÇ©P÷2mãÙ`Éö2›•Þrð[\ÿqšgJ §5<}#z•3HAžk«¾‰¥Îzg¥áú|“Šñij‡5‘E"@‡û´ˆü!³´¤n’t¬¿éy.͵¶n†“éÅ—9‰Ô‚’¹ÿñöýùg£ûŠÒáo7ò_EÃHW•näÕÑ]òX(†7C—j4/¾Þ’û:_{I^]N¯¨ à²<ŸòÚ öÛ7ü1Í™lrS*Kë¡ÆÆÛ ´M2zEÁºõ5i¢nÖ%šO›(ëÉ¥§õ>—òŠI!ŠnkHÛX‰ÃßÌÂN'ÓÅFÂêùü‘œ-ä-Öªâ¯MÒ¬;IGzk¼»šÝk •%¦÷—,•ÊÒN³rzf·Ðik hòþ'ûw·ø’:Oß|õÔWÿ_ïßãìw:»wÝj&±Ù¨BuÒ—ßMåVr;»'‡ŸøþÃç\0leª¨ÿ‘ÕÜpã¸Wœ}¦…ýÞ´7G݈Ÿè?ŠÂ1t“©¥ÚÛm¶‚³ÏFù(ºg‡Ø›öî;{øÃ¾n9IÝ–öôøjªBKá82ri aðGº€9‰šcvĵ̖ˆWÕt7m(ßÞ@¹äñy¸®Ïù!Ý£A “¦Ë ƒ?öá>Û^`Ý_yYÂñr ÿHú‚ÇpžÃýà?êñr>Ï{À.©x5ÍAšˆÏß@ýLx÷F¨xÃÜ_l;ª@y€º—ÀH¯ ¢WQuf qÙ$…\ùä<7’ 2;pJõ>p²‘Áœ“†ØïCõغ¯m:´(!gŠß‡z‰ I"pÄA)©Õ.®<â‚ø»É\Â_K^Îñ=žÉÕ1 ²¸CBå¿ GÕÐöÇàcÜþ#“Œ„_ø??J?–wþ£üÇOÒ¨_÷f'ûóÃO쿈êüù$[›óÀ9Ÿ§2܆ÿ¦C¼þc°,ÿDô–ø#È; Wy¤¤„ÿXØ—°ŸOò N/™xPˆúµê¬t‚÷åøfÚ9¬ ýÚûò³:š_†Ê8M«ïÏ;ëD9-_k#=Èò`°QLùã€Çª†x›<ÓÙé>¡Ô`µô'?³Iù/.%ý5‚WK7Jjýl9E·h8/Šž“À~ÿS­µpð?côŠòx*nWØZoøc¶3ߤÒçdà?¬ƒæeÖqZ\E¢}ÁºC‹hkýSvç¯km‰ëÅ’ ú¨ yT#Õ.Dþ«î¦·Y[†ÒQbÍå­ƒÓ˜ þ¨«>o‚Nö6x÷4ŸWA›ÊF½+‘µüSjnOá€×ì}…øzZþÿ÷µÃ—Ây[籯ҿÎ_’Äyà´pï¹¥M³ÛÉïøÏ–t³»Ü¡îyçÉ'æßu½f¯­$ÎH÷lsî㔳Ëô€ÿ˜nV¸1ÝO«•Þ÷ï!²Íé(£©ö˜-ã\Äš,Bb?·]í{ŽðQ‘v99µì9 ÖrøÍ¹@‘Ìœ‹þ²uÀ¿A“£Üp¢ƒmDûØ|ÌÉÚ¦‡gËÒš8Óü ˜ô5Eç3ôÚcÆ] ½¶IÀt£?âýy^çÛÀþÝt¤œŸGC駦[¶4¼ÍL*À›€ñ ð+â«¡üQ៹sÉáÖhÉ:(è×¶7ð·"-á±P¸‘yøã8¼X,(«5ô;5±5Þûþ#“SÁMþèA)åmÉë¶ç>£ÑXñ¹ùwã!Ê#2Ðg‹hXo#í±åÃÌ¿»Ö™gZc¼_€Jâ.l‡ÿ¸…lN7Ìó|ÃoÐÍ#1¢«0¶©è*ViiªfýÚ æmO7h ~&Ö¹ÿ¼äh*ÂÃøhøà¢¼ ˆ·”3à×´oþý &±:CWxT^ùì¼8__Sgpw~ðCK)È»IrÈ®2Ê9ðùTy ðG.êk{„º/Žûsµ&Pu|ËqŠ /”YÑ×Jàs=¡7ù"WôŸñæ,ð or º2e£øîÈD¬éþW:NSm>þˆÇq¥§ô–¯¸€LÖYà¿\=ä,÷’Ör—¿âܼÉŒé"ªD1B½ÿdË@¯œ¢«Tƒ»a¬ÎðèçÎ2šH o™fÑHÀçù`ÌîpKà´:ƒ?¶€Ÿðç’“§…È%Îtg?´z Ä«ÆW©îBFùËÿÄFsJém¿YÒëvm£Cä¬|«Uá?nàs¯âûš‚?.S ;÷M¼éÎ*÷væÁ&ÌÞHò­ ÒçZ .0ºöVñFëJU/HoÊ¡+ÀÈ‹àE¿[—D‹Ùy¶æþ˜ ÿ‘ë*74YžbSñC)ìåÔ‘Züq[ÆàNLÅñçoß*Íôæ’$^b)LÁå¡b ó2úþÍ,\àt5­lxêJu)<Å£¤ZÔ©µd¹l•ò¸ƒuüÇKÍãõÒ*rLÏò—´Ò¸úƒ‹°B¢aF&·Þ³îþ'¯%>Ïyûtà¯ü¿ÎßžÙ¹áÔq¯¹L4³Ü)ìø×d^7›ßýÎ=ëÜð}L.Á·WBç´¹oëAÍgÁªg³Ï}äluN˜ßm!ó«™ëÊ'Ö?ÿÚ>þ° h‹Ðl»þc›îæºÉm»ØûööGúµN4·'üÇšu4 –ˆKÑ9û£]I¿žŽ¥nt¶É,ÙñÌ3Úrõƒ'XD.oÓeâët º::Ÿ„Z?o3ûë6Ù=ìsYg<å§%6ÅçÂÜ/)ý¢mHSÿ™à<ÖR ~ý¸-gzåæû@D×̾׃·ÞH?ÐYøB@ÂJЬ+°þƒx½¦ehij¾Dþó÷5m‹÷V*ÎîTs‹Sxî$‹±ºeïÚX5÷i0ÖvðG¾@f…à˜m‰Åøµ†öÚ\&¬Ìdó¦j`¼z¢Ç‡ðEðg%¸—¿ñ‹Ì>ó7χª/ã 'at“Ò }¯æùÆf7Øì%õäáÏy…Ÿ7ew4ÅßüÌ‚X»¡«¹'ǿ“ŽÓJjeäÚ• à?ºR}Ê ÿqž«ò³ÀþÝêüˆkÂw,”JzTJ@×W“¢²ñÓ¡ûyG”N\€:¾SÿÃs¬„&hÏ =ËfJ—ù pž&eõK¨ß Êrx]† 5Ø';Á^]Àé(–;ì[ºAP)sè2ýÈç¸507 ”aàÒ2MWhdï´ÞÓ¾òx?Tösuþ‚7°'¡R9znþÉ“m®yš~ápSGx‘L‘NþÚŠ’ÚÛÄwõ/="¹DÒIü»ÍábWòN'…¹ˆóçO}“í˜ù¹Ø`޽  Ô‚sÊM¬´†Ì“®Ðö›ý; µ•N•×@ÒÆz îm08¾Ôã¼¾ qbгÉ=G¿ÎÐ~l¿åŸåº¬ÒGšU7Hb¢u´î‹xúX®éBm%5õYøÂI\™Sb;ÌVÃó¡\ÒB™•„µ\ÄVåZÒ+¤´˜&Ñ„Ú^ëÁ¤D«®Ê.°Û%* ½¬R*ëÆÎ…«Ú" Û*§£éh?£4Q Szíè5Ì„{)ª‰½ñÚÍ›íÑü^V^Œâ©)U4ˆ‡7Ñ>Žø©™ðžu÷?y­ÂÝz«î.ûZ:ªˆý¾+†sÁ©ä^r3›üf»S4°ÿª ›ÊÍãöqÿr^úÖ}R´¾½æÐåJB—á?®º±ÜžÎE3Ìæ4Íh7š«ŸÔΪ62ÿJ«mEš•:Ñ D¦Ú´Ò<1?[K1ì’úîuÁyè|cÿ¢c´“*Ó´”òpøÊv{ k.Šƒ¿ÿÎÙè!ö ¿ÿ*kš®öKzLChpàýÇq`\zàñ_@ì´pº~“bÑ»ïƒ}v…T…Z8 Ö ¢tÛ–G;—QY¬ï­” ð®a)%*E3…>Ñ1S( ·3lFïÎÚþ±®Ð¬7±²šu¦£½ûè0¢z¼’ZÓö«÷æ¿Êá¤v Ý{‚?ÂQ7Œ™¿†ÑÏt¦“*ƒ?¾BÄcôÞéFןÏ~.¸°n˜çÏg;;L xÀp< ÞìOðy9Œ}Qx—HÜ•›5Æ“ÅÀ¨jðëh~%¢;69•¡–aðÇ_5Ø5\áC> wa0eã¹ü4ü¬üš`[P̹ÐÊ…úºÀ!ë©»a7ôš¾àþà1?êžåZ@BþÄŠü‚[H~™+Õ\•àjK)Y8±˜˜ÛŠŸÂ‹d¦^¶}¨xGWð µÁÓù>¢ì |šsÉgr™J,Í ?jNnsIþ(õþ¿ˆûqEø–ÈîÜD,î2üÚ$:K¥ùOþ~+¹Œ”ÒH=ˆÁ»¬Ž×DÂCï×#ð`exÉ_ÿ|;ü]TûÓ?âÍ·õÑËã¸k¹#¿¤³¼½ì-Ó¹¹¤òfëúZnêðÝ0ɧ‹Á½ùkpërŒi6©ÌKló7±Â9¿öïwüÄ·©b¦’óp FKÉTi­•Á…t‹ÖÑòJªé·p^¯x(ø()z i‚ù&Þg»{…ró9¨§‡üÈfáÜrBVê+-§ÁbuŽÆð6è5MíEÑ‹rQOj%)¡;)"z2ˆ‹Àgµ{CÔÿ˜ìÌ6©)±¿Nüe[H5¯´ÓÒQ“ëwúµјÚl´EŠè^ðG2/‘”¥ÈhY)zl?Ç|Ÿþf®t:˜ŸljðG hK õK¯»ùÏtÔÚÞo#ø£¿þ ´C h>é¨y,=°ó¡ó—\0DÅ÷ÿ½k™/‚óvïz°¯é¿Þ•ÊÙé”s¸YLQ3É)Ž(Ã}Ün w†{Åyò‰þãŠo³9jË ÐFûнàfug:[L›Úô1‹?ùùUzûП¯Á§þ”‘FÛ—6•³¾8 1ûM à­Ï„®Aöu̹è4±w¡xƒ©u¡yTŠsÒC[Æn¤fð¹È@¹þdž4ï«Äòª`†›Q6/Ý^N§tkº¥áóøåƒ`Ê@OÁ à?ö°Ïì ¢²àCþŒP|JoT±çQx™õí“™&ÓXèñÈæCþã¼Û Ñ ýÜO}Á(/þ¬];Á%·Ò ŠÍÄë©=5³Uà÷ÄúÜ)ì%‚+ŠLi ½„ÃlÌ *O# ™ƒx=į­@çy`‡ àúò&tvBÿ5™f~ƒÿ0Ü Ì±‹vê×f?¥€R0vIìúÎ¥yíA¬‰Ðvçm8´?¬çWË|ÕÍNÛ–ÑnÕí?µŸƒ×EúA'¿¤À»Óþ|±÷Óá“úb<×QKóÜ ½wžÛÅö¯¥âp-þóƒþçWÅ8š´”’2CÊèj).áòÉèÿ4œ™rK¨ñoùw[†º/ë–‡« Ÿr q H|9Á‡%¿&ÕvÀ{ }_RÉô (Ÿâ¥@ûnP7e)ª»ø¹¯í×4s¸¯ƒÃò×êÇP–Sƒ?¦és¨{ò~¨øÛFà‚œŸûðc°é4|v}rlëPù¯r%¾XœÛ©÷ñ*™ =d×’”ÞNͤ·ä¡Î—Ø2\2êî ·P‡WñtÞÈŸKÂÜôMr6#žÿtÊ^új*3CÛ@ýÚAÒD³÷KéN­¯£dµÔÓ¾z6P9~1‹ÔçXÐIíì”7ñ†@)Þ‡†_ˆ,×lŒòz®/Á«%¹Î…3Z¢Ï4¦AïÉ x‡Íघ ø.…yÓî ±w„³Ü$¥/ VRBž 68'µ¼*:O«ª =´¡žÐd`‘K²OújD/“äò"HnJжÕÁ¼/ ¿ýMˆ÷ÃM•zQ#hϨS«zƒµ¤L“5R.°©þæ­÷Žë o\É6=#é´¨4פ<”nØ9tкœŒãþ'õ£Vù‚œÛo¾ºïkø¯Ï&qÎ;Á9LR3Çù2ÿ*ŸÃ-íöpï;|ƒ¥o¯ØÎYsÜVÅ= G묚?Ý wsÔ|k³˜fø#ö'µ3»½Ž»³Ñæ¦q˜tЖw¶º.e£õ&±íe_Ø×ïä0 û:í¼v*ÙGðË eGCƒ$æ¼ôÈ~e×Ò/Ð_µ(tD'Ï5ã¹Ê˜.f¼­€Ù:–Ðlº¤ögü9 /Óh”bÐq›â“¶}°ÏÙöp+ñýѸ<üG"Š[ žašÿM)ÚÌ”ƒæc¢Òc÷CnóŽ;Œö3øÃŸÇî±íBhJIaý'CÝŽî¥,Žç¢ßõligÙ{besÊ»™èXæs¬“Ntßž±-¨øc&8¨"õÇZeàöFx±Ý1`¹™4ÇV5¡Owû¯µÎ:Ó˜¶à§»S%ÚލmW‚^‚ËZÓ#sÁød&ÿ;‰ÃÇ ‡ƒÛßY*„Á{á?VŸRpNfŽWS-(ƳîC€šá¹r É sr^BÃÀ]ýÐÖ?¨yá„~C3Õmaá³RCµo>†¶ØH8†|'9d–”Ô%ð!Wù+°É8ž´\LõŸÁ§¥¥ßCU×ðïßõÀŽßöƒÔŠÊá?RËø’šhuCƒÄ¥aœËòI´z1¼EJKñÝ~¡Þ<±Mi 4Jaž‰;ƒËxé,u8¯LwˆÚA¬ü 8‡ï(Àà:7#ÞdŒwèü»}my8¨ÓtjÁMݦ‹~çq˜šw3ËQ u_BæIo'ã~ÕPÇÊvø‘_õ2_ãßy>_Ä8FÇ·ëlƒù¯V›„”žòcí§åùÀ‚S’Ï««ÀDÒ øŽ¼ú§&Òôœœ•ß5¡—AÒzɥŠ<¿ Oyxcˆü»Ëœ¦µC½¡“—^Kqo–“1rÊà•¶ÒÎÞï„Ö÷ºjÙ¨'Eµ¾|§‰ “žÚ¡´ÓFİ ß³îþ'¯¾h΃7_]õ}í¤ý—üÁÙëÔu÷êlpüu%¦ùJ»±Ürî×çò{«b‡}]ð6glMx†¸àØŒæ,£•³×L€fn¸îGžÿW"›ÛÐR[8“ƒ&[¢\NW Wc»Øt'̧$ï^‡ýNYû+å ôà`gi®D>úÚ#.S!´ø+êk=ë£2šÕ1­Ì[:þšD«I± ›Aqœ%‰Æ§ÐÞ6|Ät{äƒ}¾êëBh«žhÉÃ):E£ pY=€ŸÅùTº@?æ£à,D%é…íf·R;Z‹ˆ±À½m*{׬þˆx¥à§¦ÛJÐ[ƒiú Œ¹‹—ri ÞðÇ.ºJi8&ÜNÃ@ý¨÷ÕAKè¤q#QÇá“ãÀÑܳçmcpäMðÇi°ÙÈ€ÿXI>¾>8„^NÚi+šÐ»cý×dgŠi†^þÞe?üQu*†6Fc¿Ó¼fV’Qü Fa0Xf>îTºn#ƒÃªµÜWÚ¬¶=éùsždà ž?3ü1“«ƒÛ² '³÷CÑ'æxXÿ3 f‚C¶Ò·&Ò;Þu¨[üQ€’ðÞÀõ؂ӶÀ>ävRJÖJ)]$yd×’²(šœËñ\nà¢SÑ´wž_ÝqnÛ4Àíèà³ÀÊyÀÔ-œU>“ݼ]Ê€?Úè}õÉ#.'‰dD`?—O–ï±SŠPõÏk¸/àîÇÑ5ôpØA8…ü"åK."ãt4°u#üG#ñIWi"—¸ ÜÅRöW”¾W¤x¡Þô³•ñ‰'è8üÌP¾CÇy©Œ•áÒ€KKto¬ÖàEEHv]õ«…5þÝÀœE²ñ[åM¬Ûp þü,¥ø/ªËû©-¥âlrCºkzMWóðy½¤ÔÕÚL‡Ë1iþ˜Ëç¹\±+õáŠ×P÷ï‡;[Ü+”sl#Ýá6?çßeøñ*W¥'0znSõ"é y »t¤ÖÙX¹7XqeµÛíoøc3ÉDÀªÌŠù‘•‡Ú£ôPÊxu¶vÓ˜ºCšh½ )qGN€ÝÚé^eÉí¥–Œð1¹9ô-Âj~3÷œ.¦«u¨+æftŠJ/¥ž·O«Ë‰ 54²×Hz[½‡ÚÄ+§?Ê]="á´¤tÑÏ¡IžÛ™tÀgä´ÿÉþ«…¾ÔÎÛ¹ÓWû_ïßMìlvj¹‡Ýü&›Yìø³«­ñqã»UÝžî-ç¶ï}U!¾îùn™-¶ }Méè¼ÍcN¸QÝï›f¬­oþ0ëÜç!ª&~Ìõ…}…y¸Í–nf§Eö‰ýÒéæ&„Æé3²æCY(ƒÝÑà°Àd0¿/ÚÞÀèvT :wø#>¸à)n'ùw¼n¢Ÿ¨¥­õ^ÿÛ)ëf¢È<‚âã ¦Wö¢­V¿KýÙA¨/tºÂ<…w:O³Ìtˆ6Ú¼a2ûLgžéÖˆÊý€ôþÌÕáýÊÀ_Åàá*יزΡ,TÚðÌ`JCm"ª¢rèÛk“¯¼9ÄÌãÁ9™ÑŽiøÎqô%÷Îý TIùøã §äÔ*»i ~_ Næõ;ϯú¹¿Ù¡ÀÙ”Àµ«üU;Œ}>öç³ÍþhªW¥œçºRC¦ã3Ò€cNðDŽ-}9+ÔsíP÷åÃPßÒ<ŠïAeû•ïQx¸à`É­ñu¨†÷É5.#Id.—€[z –ßçTžê õþ¼µk¡Í–ÓªÅ{áyžPf ýl© ¼Ÿ $ŒãÔhÞ4yÊ]¤–œ§Vâ$ëy\`gó}Ó-Ôûó&¸{¯4Xð1æUèeg™Ä¿I* s}"ÕÑpÒIâêJ°ÆH|ßpáMþB òàûwg“Œù[J ØçèÎh ÖrÌÆ˜ÜšçSBJK'm á4 Å FtöÀz(ç/)¦ùPµ°Sî$`j[xëCÔ üцò‚%²r0tpcŽÎS(ïB¯Sq7 ?Û¯÷e:KääpKQ"‡–‚ÆbÞ´ 1^·i ï/uç*@æ=úQ;à(öb$¶Ðj[΄ £•“œ9à§”þ¢8¦ÝàŽìp„OÑôÅl3 £¡­Òf¸…XïB‰Ð÷îaðÇ$_u³ î*!c üG8«êþœïÀööÜ™›ð+Ê Åˆ—„3ñRŒàYÜ­ûtƒÆšçNèóçãÝïmGøì@ù\‹Ÿan#Â]þ¼áç`É"WÁe÷ƒ_(Ç íÊÎK]ÞÉß~Îq¡êS.žÇ1ÄÊø®ÝœR2È!Þ#é[ô˜&†S(*IeP¯ÿöæù\¼ê¸ëþñ72U aó~gÁ5Qá?†É©ÿ±ZgiTðÇ/G¸±”—[ÜŒóð&¶r~l-|Ð#óÏbÓmC®„ÞI1ZÇéâüGLgPË¿7&4³ÿqZz`‹R¿À[oÕöð …ùÌSP4SúϸCèüTSøÞt šÚϹ١YÇsóÀ{äpb§(¸ä,Tûã{ëG¥tò¸9Éå®”.}8ýik!òL*@}¸6GÃÿ9\Z‚6¡Ëm­0ó_Íq&˜æÀ¿Ôð3åϯrâ~”€w‰È­éŠYjbÈlî;Š6Ò:š@Ù貟Ó'ÌüW¥Ì2ôÎð$àP:Ç˨A ~×PDèÉCÀUà=.âw2ðË"´í$îÖzFËL¤wê×öp»Ø^p0ù 8£.üǯû/ñó?HVàt]=!ـε$·Ìä.nñ ÷áÈ2ˆ«@}|꾜q^ØlPâ€h±E%ý>À$¡Ìâ}’U¿€ö=§‘å9W–ä2®«9G“]PäcáÆª‘Š?ê¹X€YWÿäèo$£äKÎ/#t°&ñNéKí,'¸ŸÔ”+ðEy {²œ€*cÕüó ÿ[~ô8¿ üÛ%ºË³ež ñÜDÂy›4½FÒÌÞJ¹È$“nãÑzhÝ °Wbøiö—7±nñ7“Å¿_¡–j8àQ¢k;M­íe†|¯9u…dлú­v’òµþ¡“0zÃy;G‘o8ÿIìð7ñ†;;\âlúQ1e}DÛЊjzOÛè<¹-SáÜæõã{&P?j†n’/u-VJwöŸä_OŸÛ6Ïþçl0ÉàÞòA?áö$í’/½ ©4¥>“ãàNÚDû«OgJ+Ý¢y%‹—T*Â¥GàšÀ³¼‚~}3 ×9]M›³­*e¦t]{K´;øüŠ´PãµÔÞq/®çóJk<ø;p%ä[Â}ÀE“hŸ}ýVà?ñË}9·Ïmîùê9þ%$pv;MÝÓnCó™ÙèøßËî÷UpƒÜJî`÷¾£Î§½ÿxá»mNÀ|Géo›ÎÜs_98GM7[ÙŒ5›Ü×NX9‘ÞÕ³©¸3­³õ€HÙi˜}d³;#Ü$Ь÷L,;ËF¦ða>e÷zä§™Ü)ì'ÿ錈àŽáäÐiø_è õç5`Ý^@=­»ÿ±Jö-£­´Ù3aUöšë¬0ý þcá¾6À÷î+æÁïl¹Í5óÍ+x¤†Ði1Mû%Çj‹ƒ5Öù¥¾f‹@¯h*÷‡Ã`žØÞr&X­%´ð+ªÆ€PÁœŠÓÀs-Æ}òŸ¿»@Œç†>;4ßmc»â³Òò¾ô÷ô8°ú#9d¥4Ôƒ’Jr),KÀOI¾×€© ¤'—¢ïÔ<ïD ø’@´ y —–-É&±e ¯—¼šF‡èiM§Pœ2• âîD’­ÐùóXE(‚»ð¿vŸÚªß+T üQŒFFHw©Æd¢ŽÑTÞ=ìý(¸‡T—ÓpPyË•Ýà×ùààæÇÄ`Ëa®c×ânÀï³¼FæHGpã¯òBWj i½r¾$‰®Ôÿø=ØÍà| óÔõÏ_ùf9›€ˆþzTu0ZC¡å«ý4¼¶“Uò3¢m<ÅûF{Êu©®u _û®æ¸òTÍ1ŒàÛݬӜ-î 87öÐgüÒ&Ãg6’Œú7üËLq÷‘.ÐeÏ‹«ÑÚn:R’©]·ÔÚFYíb[.ÄûE&1ņVY@_ðö%?£—X§iu¡Çä–EäF:Z_a Úâ«"òD?—6þ·í\™^ÚÊ)Z\碹ti—xÖæ2»\u§:ç´ Ì³Ò}é„õLãýWërÚˆGpßGÚC¶¢sÍMF¥‰ma;̆£Gïì¡ ûzèÛȾrü 6–ü•| ÑS[ÏN£^´ -NF-1;bÚóæce3³§O¤‰´úüOú èð7N[°ÀaÌÔ‹6e¡vÉûœÎéœ\`“QfèÀñàˆ”¿R4 ¾+7ÖÕJæ+@G±–¢Ñ_Ü¿ûÊê~µƒÚÁõ;þ}8VƒSòX´wP#>ñjø¥Š¶¾Ön[ÿ•É©äf¥8Ü›¢£}àfþ´%ÀF¯iï¦ Ô„Ës 8`¸€Ðv»ÿow[È„õ¬r©³Þt ëX“C óOBùæÇê+ÝzŸjÓ ³ÎD‚6ÿ…+p¿ÀùÁÁp=gmRªfýÁ`_-³ËC?&ñ΄vŒƒ«é ü$î f{NÅx-ŸçÍœžêî¦Eô˜.RGþüí܉¶=p6?ã¿ùv¹;ú•‡ïðïRI6Ã’ÔrŽ¿–¢@ûŽð]UáSFsTÁ%¨ï;þƒÜèp’-ÁÓ39Ž8²þã(§“èàˆCRD“éÝ©AòøŸU¦ΟG?ƒ“š€U}¡ò'þÿQVÃ9–€'òó‡¿þ Ÿ?ÊÉèyõŒwMÛÈ%n'd?ø³0o∲‡'ò>ªHwL«Ä›eKá;6CIÔç^ü’òT™)}e÷’ØÞLð[Mê–ËÜ_<fïËM0‹vâÓcK6îh};ç|ËÝÐEø ø;J£4çÆOõÐØú³,¦fÓ=RH/¥‘]ð#=t˜yïâ”ò-ÇoùÝ|ošsÔUpþIÌá'l©,‡“,Ú¬ñ•n/ÒˆÞtpP$/¼Þ•‡pr{ÀqË0Ú@%ç­TÐ.±¹BäOÜ þÈŠY·N|‚ÍÁ¥›—QçhSôò¾ô ÔŠú;ÜÌ|ù ¼RBÈK&í).‡çŠÄ”þµõ›Y¸ÓlzÙ˜P_)!}FYáÔ~Õ:Ò_nJY°ø÷:Å[þ¸ ßUIvëx¯hÒT£C9ÚpÎFÆœLâÄËÿÞuÒÝyû$è¾ï+çCŠô}WLç¼ÓÚ=ê0YͦÀþÝY¾’nF·øãoç‰ïÓ²{EtN™³¶Õ£ôXõ‰Ìq×çu‚M+[ÇŒ4ÝnÐ'µ3¿õq/ºiЬê öŒ-îœuSc%ø¬µløããΟ?t^8uí ÇAèËP¡i±â¯ÙBðMñwu(14u/›À¾ú¨÷ç•ÍD3áÜÇJšE…Vˆ5p <’h˜‹nÙôXoÆûœÊéµÔÞ…ÊjÂsÁ=Ié’­LCi6eåí´Îæ <ÝN8(ä}ðýÇEø—ô;õ[úët¤ÔLäÏëZ 8:üqÊ: œù>ðL ÛÐ9þžXÑ’nQø¾`ب`´'heŒÕÈßþl´î Å’ù Öû"ÚþëdÎBg®é‹V¥àÉÀÇ“Ðåà?ŠÑá®Î2ÓŒÈ  ¨?ûðÇJþ‹Eµà‘Þì+gŽØ~“—rWŽŒu¾’jÐèý@öN`€“T•×ð%Þ‚6fßÍ œJ< ßÓÞ¼rB?a›èv³í NŠƒqîÃnQGô¦?ç.’þ£–ž–|r‘ëK&ñï»JÆÍàS&Ã3 ç¢ÔåóçÆ<¨{8#â¾s€ÓâÿöòÉ©I—5®<å*SFs1¸¦8@ÿPÐßBçÄwý#b3÷‰-ùv™j£……ÐßTÒUFIe..‹xѽ;úP;És$áBrEÞDZðiËxFæ¶©Š?êreÌÜnÇgè0øc†ô–Uü³Dñ&ñc«Ï›.Ox˜$ÖE<‡#æ°ëCÎ()y€mô&ÖSß*gл<ߤ |³/2œ¬x‚ü¤éu™”Ô‹ú£’ÝRSû"âeðÇø·ï81F»}›Ås¼³Ó}MyÁD+èæê!>,?h\¯*â¤Ò±à±ðHþ㞨7Þ0§.ÆLíÉ ÑŠu”ßî´ C¼?Ÿo2—òÑ4´r¡MÂÛ¤º—*©£s¥¿ët-­=õoY ßè ­")½äRšsT¸AŸ¿*%ux3 ·;}L'8ãö@»äX¯µ¦7D«Ë,9$ëégíãmðb{½úšWŽÂᤆi¤Q¡ÄžÙ%tØö9øã¿Èßî¯þö¹ÿ9_ƒÿ*¶sÑùÖ½á–0yÍJ§¢ãÏ­UÉMåVuG»QÝŸ¸÷‚ïªÙ‡Ýwé²MeNÀÃôpŽš¶¶™ þˆãFú¤vfÆ÷¤µ¶<<{qšbƒ?Öºñ°"Ÿ˜g¦¿}fá£"^už;ìèÎõp2À\Y83½°uì.ú¬â×ßÂ?G²÷ÍÇœèùÚt5£ðÏ¡vgCÕ¾&ý¨[û^&_£BtÕf†a×}°…‘®ü^VI ž 7œ”‚Æ vqøõøûã73âîGð‡‡ì¯ðÖK¦g¬ÿ¬E}èAÿ“ëJœžéùOÊç>ß ‡RÅ6xoýóÄNA·üÏXJ^ë ÞÖE_ÿ¦ÑhYj eÞ…pù°m<ÈBZn‹›GaDâ,7¿Á%…ÿ¨N§á?Ê¢çÅÀ†ëÑ4ÓÓ¼ò?»Á¯qˆ5 #îÛøP­Âàu¾˜oC¡z'ÿ²p\^A¨;*}Åý€Æ/¨.ðiïåÏ8+øc¼æ"Ü«;4½ã?»l/8¢Œ|„U¾†’þ½)Î×¹'øcŽ4Эò…áJøj7æ5á<ŽEÆpAóNþ«{NDð_3°å N"VP4Þ Ì+Gy¿dÔ:¨Gnpm‰&“9/îÎk´7˜—s3ܱpî¬DlìFA´ `¿²à:¬œ_ÚÉ8iÆ…d~QÿÔç:\ns[ø¥#\³ñ6'2›7bÕ8¡v϶Íå$â•Àˆ?¦¼FVÉ@ÙÆßJDo®æõŸŒðÖËU í¿£<•[òIÞÊ>I&Yy´mù&V4gºs„’#ÞªÇ0r)9‡(2¾–’ÒWSê"ðÇqm­íe“´ÄŸ«ù6îÒVŽ'þê-§¨£ø&Þ(g¥û 1®¢¿/ø”}ŽÖ•’NêyÍpòé×zK§ê MäÅ«?Ô)z@ŠéRþóêj¹¬kÀÀÕ¥‹fÆÌmÒká˜3‡¨¸ø¿wmõ¥ ™{Áiø‰uýÞ^)œÃÎî>·ù̬ äoßîkâ¦w›ºcÜçÎíOäë<2‡ì7TwiŸ­fž‚1Æ;çMÛÄ 3']þÄüWÉ­Ç-h½­Iýy3íQ›×9ᦅÿË$´³¬COܰÞÒ¾{Ýp<·¹õghZBþ¼„Û¡ +ÂGþf÷BK_†öýœšS'›Ö^0“Q ig†€?þ¢ÁóO ½ûÂ?Šöÿ8MéÀñõ;óƒ}Îèt‚ÿX`£W¿â‘Ÿâ5ÿoþ«"ü'zï¯ÌZX6 >é©›õ»ƒáˆš‚?véoÀƒN*];ë;*ÏÚo¦›” ü±ßÕÜVxïIÑ”N·&ð}X-Cà0ÛÒS8}T†@Á&à äcáýhé°Ç:b †y~pŒ³Æ´¦«¡îèÏ1Ú f+‰ÖEV7¦åf!(Ž[È_+à?J„y~p¿¯•9mû3æq_NÏQ€Å1j9x(ÿ½à@bÂEó#þ“ãp*hð9ä›t Ÿ<ÌÈ;sg‚ÛÕvWåƒÂ¾Ë- ˆÅL©ÀOùWÉ!+ü‘H®²)ú3ü~Ž–^XÁµÀýCÝ—¿œW6»?Ã0/™ -{þ#ìãRT3ÞŸ'ƒÿ("qdð¤G”C|1Ũ|æÎ •?11µþ]¦R|…«ó+Ê÷1YšruÙ®“5©÷HŸéyÍm¤¼œ³WæµANÀÿ¦òÄ¡NȯµuðÇéUáŽà?y­¬“n²–{I|o–æÐÈÉ['/y¸¤Ói¼žGc~Äg?ãÄ’“{ÛºobEw¶:G¡ š²¿:âàjŒSxðGD­*ÃdŒ ì:«ßÃ!핟µ£óðÇ.þ ü‘kó뻑æ;GÜ Îv[CWù/›./Ÿü>¶ÑR@›j4o‚.Ó /¼ž`â‹’IÇQ”À‰ÄJ¼ŠÚu!òï.„rÉA9±Î&Q0ßCº#½œp õ5‘î“•pëµ¢öÓpˆßI j#‰éÅ ìß ÇUÁp²Ô9DýÚ>f°MC½ûw“PLmèmÑ22].Ƚ®Gt‚·Ç{®9½¯é´N”H[ºj2¬ï‡v³/±ª„`Ìÿ½k›/­ó6ïì=_çÓòÚ¾½²8'Fî·ˆIb‚‚ˆ²ÞWÍ­èþàþæ¾v|ÎÙOŠ˹g®@Ö¢Œô§­bN»)ÜCÎÓÑv0£Í#7‰ûiïiÊØ¿¨ í#í¤R´É±…œ`7*ØImE;Ó2Å6ÞGE<æ„sëXØÕTü±¤0üÇ7v1µžT†¶þŠ†Ú„öœù˜óçUM[3=½‡X+i.½„£ù¨øXÖ ŠåÔú}›Š2P7;ïƒ-,äô§´ÒF ¨˜ùᇥ«Òø‡"Xß»(_Âúß =‰¸™>1‚|ÿºÐ>¸‹¶5¥NÀœUì?Û‡ÿÀ¿Î åæo¢Tüñ¾ý»)œ&nu¬¸~`®Ï好j¿+¹Àç]¸ÓùGãíPöþgb'èZ=÷êK:»­ÿò¯âèEG¼Út|S%°¦ïû÷Ñ>³Û<æYüW„ [§ÐŸ¾ K—Ò!2½½öú¾2»,˜ ˆÑƒ³cO§:4ŠJòàÜXü÷!°{-ÏŸ *>O TžœŽVî¤þ&Æ;»G¸#m;*5~ÈV˜oP+育|“ëKÙ)åu3t÷~.#e5¸#Øø(0Õ‘ñü ±CCÅ‹æþmsRðÙ N$¡_ã-³?ްÿ]@. ëQõä ç‘ôðy¸>xf#<ÊXþ¼š)”ÿhïzpÉ àëòipM\D%ý¤þu Ô¯} ?É5ðÇwr’‹³÷òß¼‰óf8=Ê!M°åñ™ÇpüïϧËré#¹¹¨7íK Æ/wÀË\žƒQn¿p ,˜,Pÿ¼þ›XÖYî\¥Hà£k˜i—0ïR£§˜ªeõ³è)¬ôwí-礛¶Wÿ>®N‘dÒ³r/õ ñ6`¦sÒ}‰zÍ¿gŽ“Rf¾Á?™ç¯â•DSñ&éVu¼ûò'øcª®hº öÏåb¸×ù€5ÞðÇ Ì¼ä˜i¥1Ròf‰×K¯ˆײC÷ÊR´l´æÖ>zD¶Io½ ×ÉK-í(GàJôØæÁœì"ÿÕ0ÓÁ–ÄŠhŽõš™"h9ŒXY™(»¥†Zo©Nñ–xõK¯‘¶}z[ÂiQ©¯)x0E'³c„rÿ'ûwwû’:—Þ|uÇ×ø_ŸÿÈìœp:‚?ª˜f«“Q6ø¾q³º-Ýî=ç©ïÓªó&r^šÓº¸OWl!sÄMìîvî›ßìwf¢¹ãFw?­ÎUiëßA¹H ÇN«ì[Ú?«lz`‚à?^Z1¡k8„}s¢º•¬Ïƒ?ò…Ï‚?ŠaN|cç÷BGǧÔÝ&±§?ÊÔ2CͶº¿ŽôÌ6> Ç^Ááf‹ïRúÛ&‡ÿøÉŽÿ`Ÿó9?SZk]ø™¼<ì‘ ?]í\†tXy>}¨?è£ëݿ€ÿx^üŽ¥ÔNÜvTH:—gÓÚM7(üÇdô½Š­ñÞvIœ:n9Š ×ýÊ&€ÚzaïÛ†ôs OöiÜ•Ÿ¹ G†vtÙ‹¬êÿLãÁ_…y~p¶3Ùt¤Û,Ym8æÎ¤¼‹ÖT¤ùfüÇn äëI³1²}Ih‡ý þ£vü±Ç×Èl´Ý0:½¹3Çâ9Pû |Gùwƒ‡nRiàÝN^È PKág6ÀC­Çȶ1Ö íf»íÀÙðó[Á 0:ß¡Geá^šHYÙ*Uu|]_^’Ë(®Çɸ*¸©üÉO\™FÛž¡îKT7Ñc®­fWîb|’ò6`}d9ÆG –S½nè¾À9$¦ á\ \´—ûóÜR9JjÿU[7 féfºBÀ UØòv“R• ÉT _D漣×xßBjËq.ËExÜ×QÂë1Þžmþx£¬ÿ;ŽÁÕ…_»œ^¨?Ø ?ïz‹5´¸x“å6÷“8:ûÀ-Ôƒ YŠ^§’l<,¸Î&gV@¾Î> æýŒ‹Ës8†'’IºHOöÍ¢µ¶‘`ñWj:LJøWp{\iŒ>GííÒ7ñ¦8GÝW”Ÿ¯Â£Þäç62ïåÜp1®WR×Jlm¦‰½%ð q½óPü×uŽ®«ÌÃÌê•”ë¥]b›¿áyþHNùi9tÞ8ë€?Òyt‚Ã]‘9à¢EšM»è)Ù,t!Ð>ƒ[JB Fç ôÌÖƒÖz{~0ØbºÚøðõ °^SSTýÆÛ§åà·ËWšÞ›¡ã¼¹ÞCÍî5£¯ÔyAKÉš˜; ÖZ:c•#q¤ÿäýÇøóo¾ºïkþ¯ó驪ëlîžvË› fƒSÝñï .çfq¿ƒÜ…ÇÙöiᜇæTyk áC›Êw¸s f€m þ8å&r£|R;“ÚGPºûmmèÔ’4Çž³•îà× “Ëö³J»¯?*Òiç¶SÄ/…Ò$þ’  ìv(ˆ+T)pþ|¤Me­]ùñZšÎf„͕׃¦á—÷?’G(Ñ8|Ÿ"`–$ñg¬µ›?Øçúƒ³­)Îã0ËcÐe[††@Ë—Âz\E©ðß\4z<2]rS â.·+ø£%u€‚ï§ÜŸò Ëó†@Ö½TÐf/i¸ïsÞA ©Õ°yœ÷í´ ï|é (<Ž*ù³ð^³u_ŒàC”Úp‚³_EÏÁSh$Æs:­³-Âä%ÎJÓˆàñ x—ƒ`ÆRô%Æ×Ï©)M5ãÍ=`Ý·à$ÿ©þ©àÿûƪ¯¬÷U4ë­?ð0àPJ¸©™p‘¨¸ãkºÿ¶”OòF. ÞÜF# ÞÛöu54Þ™;“Ü~v Z“÷ðe® ÷ÒJ1_åÖ’_6Hi.düGYÂþg.%x1˜ë:~g´ u_®;A˜mÕ sqdG ²z.‰#ø°ä‚îí wô¼N^I#£9+—ä—¼Žg£íµï?–ÿ#beWÀ·Kèpu{ ~mbùEFKVÎ*Ëu€F€ÿˆå}'Wùi.§-3Oæ×¼ãLÅ)¼íòx ì7àÙÃt#6”oÓ%+¤´å:ÐÞK4«>„™(þ÷?d>Ƹøc'/$’ <Õ6y+‚³Æ9M‰Ðª;T…Oâqi¹$=4©Ÿà7RêJðÇeýü±PJéz.ªz¢Ò˜ …mCÔ?ŸåœqÃÁSžƒâ{À/l]¾Ë·e¢Fæ/–(ÚKÃ{Óu³y7å Üúï”bà n‡Y^œRA»9DþÝ1Î"^77TIfa q°ÌòJé@-£¯å€LÐ5º[shw}&{äWMë%¿$Dâ¨\ º©øhˆüí]L+†CņZ,¡•¼öZþc½4ÑdÞXíå­óni!ïWôw‹—'…þÃÿþü˜Èi9ϲw¥¯¬óvî?ö}í$ø—ü‘ÌÙë´r/»MLvsÊ©8?ØÑ-ïþäŽuï8·>±~ísßal QQŒç#[Ý\vS¹;çf ímÖ›çn|7Þ'µÓ±€*»mEà`1Ún¯Ù\Îa7.VÖ3£v4p%(Ì]¢ï^§œ+N>»êx"¬ÁªD‘¨¹ÝLyJå)tó(ø;fæ‡Ãù~0]Ìl[ƒÎÐ0ÌïÕô7‚ÍÍWˆ¹xä)õ*üDxÄüðþÝØÎ÷@Ñ6q2ð¸@ý¨W¶(Ú:—J‚9üûZv`æÏ2G§«|~µÏíN7¡ŒüϯÚÀ öCkºPC¨à%ܘ³ñtz ¾hv1 PY[ö½õÏÉ)àfƒª›O) ³&Ó=[Ÿºƒ-ÚÂÍU¢^@”„À‹;äϵ©<ÏJÛÄ„Åì3œÞ¦-˜!ĺ;CÀ…ñ.[îA‹ÌI&÷+ñï`åEˆ‹ŽX‹Ñ)lôå5+í zBp'ÎÀ±yðu†ý•{r5ðxàÝ9à]üÉrxš~›G•Lû8T¼©à®Ðý¹y­&´âDiÿ±Tjê|É"縶”¢$ø½[óîÆùh‰íê¾/ÎzAgx²Œ—Þðµ%Š¿vø#Š7UîqÉ®ó¸;wå¯à|Á3$’<<Ýë•o¡sέ<_]Äì‚™œM®Kge͆V­‘2ðµu”ì’VÚVwÁåý v$Í8>˜¢Sí¶ÂÙ荒/ƒÿxdãÈ2Kƃ#«ëñà¶¢£ƒá¹îË5y¤›ô¤äЕŽç)\ XŸÕ^²mÞðÇ"g‰ÉDy1“æ’á¶'GѼ¼:Q«j½.ƒu–.Ö4:H/€Mªè3ýLŠy)¤Eäˆ\‘‚0F ñþ_¼µÎ`ÓÆ&ÂúªMm «?{s4¿Œmøé8ÞïÚÉ[ãmÕ¼ÞPm.Kõœ—ÖÒIð0`ãºa…“ó—vü{ÖÝÿäµ ¾áêÛ/ÆÎÿ)î, µ¨ú¶Ïìý¡Cº$¤KJîîî‘ARÒ R" Jw—tw7ï5÷ú>8àaqp½Ïû =gŸ=³÷¾~×uÏŽÿšœfîn·¨Éfv:ùPʯ&ÈÍÜïÝ{;Þ«4×9bÖےЃdd¨–yâuW; ìÛÝÌ4»ÝOÞ«ž‘ì}ø˜5¶>zxaðƒ(»³ÆMBÍè&ø1Éz”ؼ¹EØ×9ç“4ú šT.Ù?A¡øQ×î€c>I…(}Gýmb{Õ„'ÔCþ˜jËÓiB3ÐÃ#óá`b¿DÊ‘<øÑë6Ť±á˜¿Áé€Ä¶ÈF#›¡ØàÇy[\ZEÕá ú³‘Àþ€~G Çî»öO\ï~E÷PŸn´wu‘#Ë4â¹P“œšýÕ![àþÓ¢¾ƒð5¡] É=n)ŸÊJ© Ë$5´¿d–¥\…“A§æs>Ë=¹êùæþ%6sp?­­ÈOyø± Yã9Ækä3M©mô¤>D~©.±eòL)~"ýÎ!\ õLè.~­ÄVÈ-i&í *ìÏ®ŠÊñeL’2àǯÚO³xÔxíä÷Z²•Ë¢Ä%ìÉažEoBÚ××δ-AÉ“tO©úÂnž ýë-½¸Šˆ7K³Â™ÇðF£¼¡O× qÿØçlR–çØ/Ëzop÷×™¯€{ùˆ‹É5(æš ™f„ÕmRUh,¿I]äͼœ¿FyH+äðZ¯öÛ›âlpcs>Ôn=?ê!kÃ]z^-!‘ô;$ѺNÿ²’óº@£jZ=Œìßš' ì¦äv§ •?~19èCJÑŸˆ»Û‚àGc¯´þ¦u5ŠÞF☮+4¿Ô}PúÎH7ŸHA¯ºä¥Äœ€›“Cuym¨ó£~sú›ïmJŒ„ú g6‘6ôæj™-H}ýÄë¬!Þ2ï¨ÖñÚksùSw€¥E¥ŽÆÅHzbgCÍ®£äÿ•÷©›/ÿv6ð¹“ä_ò#±sÜiíu«˜Ìf“SÖñçv5uS€#ÜÈîõÀÛT%ìëIà 9h›QÊ—ZÔx¦{Ìñìðàþ»çÜïy~m*>l“-CGà+WØH”Â9âf„‹xlž™_lTbó¦„}wî;Uíßpn+ŽÆÒ1ªÊuàó«Û½ÁýKê’PkêmãÚ'æm;ц¾š™Ñæg[CQçÐbz 'Ý2#+ ?Slx¹ÌtÍ&¦œôŽõßãžþ° AŸüüsp?ÏK¶!|ú$òÏãÙtzûô9*Ýußµ[ÿw,zLöIs¯†óRIqJ‚lÜy¡$ÜÉ¡æïö2-l&p²%G:Qmï­ÔÖ ù:P2£×CòæzǵþÔDNè=I¢ÕäKÍ~<²¿ÓQ럎ë¿2w} K¨õ' ÿõüÝDΧ¹»Õ-eŠš}Áý¯¦š!´pGºOœKÕïUÚ•Ài³ÛÖ¦¶Ð«Ôù£»»ÒynfØïÍbóÐ5ïtί_ mLîG[mºuß^¤r¶¸‰1²ò )LµBáÝ¿ýŒsÇ©âßñÏ: ‘p¬%¸ÅA9Ûi¥N”Ú“a?´ÏÌüp”WÏ„˜±¶)Tz$2ÁŠàÎ%­ØÏS nA)8=9gS@WØåáXÿñ |ø€«Ï³‘Z£Už$ÞŠoAíRB¡ó@m§SvJmÞµþü²» ‰¥#jtˆ~¤v¾·'…Ûûƒ{pþ…ž#Ñí£‚üÞ)¬ò[÷ßMëds?ÅÍB*JÜ å î»+C>õ_Šü‘žýÙÀQ”v#S`lÐr›Ç\£´ ¦3ýä3œªƒâ@Å ÉCäÁ”Àn7ÉLhJ5¤üÅ()íòØ&EÎù9 ~,CþXa¿¹FAÿ2s,öçsýˆû…TÐÆ?uŠ|¿örR¨ýbðx=r€^Ð8óÔysï´qàÇhäl|ù£ GâhÝBlåKùXfù«$·áVRJVpgŽç¾ÂÙ•Ÿ¸,M´-ß(ïŽ>¢:eçq|¥¬ ô Y^É%ûØÿŒ$ž~¯·5¢¸RW>”Iœù#‚ìDm·C±º»¯ó£™›üØ‚úE9þþò™e¦,“¯¸ LÕ…É[ª´¾ˆô“îr)®0¯EþXÔs\Ün^'ÜB¸úÚ¼c¢h{šÎð|ÙŠï]ÈÍ%·]K«§wtƒD‘_–6ðÆu‚g3Þåô’…'†:ÿãQ`¨sœ¢r!ä`A}¸“ rG&ê#Ðqž|¯ŸéVðc£ÖÔ©²[¾Ð]Ç×¹?oãä´Î)š`_b6ØYæž¡Ïy ˆSŽÛèU¾–ÑšÖ«¡'$)ÈÛ[®?>Ð'ò\çƒí™ô7Š Â-ãÒÈ[ÙíbÛ>ÔçW!&+rlð(57²'è²”ò²è -§Éƒ;é§×ãšTÐër:ïxY¤—A ’?ó¢ú}1ôŸWó¯æƒMÑ3G¡}“Ókµ¤·PKàNÇK6½¯Íµ©· 5LçׯrQ/È-i)í46úù»–öÚ‡è§ÉCíøõwm Ä uþÇý@-çýÞ+¼ºÒ;'vîe7¿Icæ÷ß](æfw»íݧΣÀÛvÕ ûJâì0l=¨JN²ÔÎ8¦¥{×¹ ¥ýÑŒ2ÇÝçïùž¿¸}JAêÎd¹ øqܦsλёJÚàÇ%ûÐ k—¥^§œXn[Ðè´¾tù>zfR*nÿ€Þ\ ¯kÛÓ@›Å6áYsŸßt›ÒMú‰VcDÇFÎn•?A·PVvøúdt ù# ²ÓÞyÏEþøÊ_lDôìz<š™>¿ÍG)U>ý¾EÕh+Í&ïÜ¿=¶YDÑÁ±>ô'ÿŠ~t§šÁs0¾áäðáÏàÂ.Rr~Ž2ûQEÛÎyÛNýÙœ*n7Pq(E§Œ¸Û§ö*ÈÖê†{nH3¹<ÇàM•OPâË?wý<ÌõþûóÖxú¸7•£«p÷ùpçeÀH­‰­XOÆrk®¯7Ÿ–‚í)‘d3àkk„Áórf;Ã}‰¬‘–3ñ$*O£‘Ær/ü^ÿöo༛Ër\0p-ø±©ñ 5ñÜ o”·Ð­g¿÷W4â;Nä©´º_áâRP–JaýKÒ÷/Éüñep¾Ôß< =ndäoÐjS~žË‘ä!¯ÂßÌ)%®øk©sjfÍR‰$5äÍù)"B÷÷ðïÜ>ç™óúüݶnô‚Å ´?ï«-GãÔ2Q†Ê×Pó!:KÙÛ­Wµ¬Ä“^ÐÚÓÜj¾ùãožÆû1*÷™jo|~Uˆ«Â™l¤ZÁù»—x1xô¬æ®jXJŸË] 9åGy"{x(Ý„ÿÝ^prÉÀ½l‹—e] Œuö¡Ÿ–Æ«Â×1šÒsn|× ¦Õ‘݆jq½'¸Tš [¤—¶ÓÕ|ém=g”/Áê Ôݾz 7ÐùËu)7ÓotƒïÙ4|–ËË·Ç+¬;%’.IÖèeýÈ{,ä”®ÒsO— §¶ç•ü²^V;Ñ6ÉÙÎR“ ½©0­AFa-ì^>P¬®&Ò:LGë%ͦÝu¯l–zY"½—Q*ÃÙDáêÐü²<—ú‡úüjˆé‡øúH\x«DZÀ›­•p§3åsЧ‹ööæy¿k;¯•v–?À¸»ÒHZiZäìgví¶¡þWÖl dw^Ídº¨ô¯çïFwŽ8Ýcn SÞìuü}]CÁî87àÞ „糜W×ÁÀsÄÖòw2÷w|5wÜÌî|çˆeÛ˜ßÌu7Î;wnzýJb™‡áI·DbÿæZEþ˜î>´_S›ÖþaãÒÇÆ†«Ä+Î9ç ƒÏÑ.* Ü ö—%Cùìø¼;èŸÒ—ð¸Ø›æm'¹†¾šžf–m ®õæS4£ ¥bßÙÖ‡Å%àX¹˜ò ÔܽÛÇ Ñ&Kiùs(n€~‹Ì?O˜î¶Aß*F¥AGPÊ pû)7䆒E~—2þE²[K1Y‹ÿïÞt*¸þc$fá?κç<³¹©e?R‰ÊRŠÄKøI'ò6É¢±µ‡ÞÔ|‹ IBù…s ËÅCþØ݈¾¥HîëgÇTujµŽ×Ä×Cë%‡Û)ÍPfyLðã–Ö–Ò‰i'7äl¼¾}/F2kC×Íë;t͵5ÀÕ}PÔJÜ“ÿ¦ìωh&É¡ÎùÔQã-Dö&éržÂ?Cwó$.ýÇÛíUŸ tsöS|0ðU ZàÏŸÊ3ùF­ÖåFjз¸îÖ¦:M¶Ií¢ ƒgþÉYå[´Ý~m¾,o¼3Ù½‹û\ñ”ÏÙøàGEùŒl¦[$ŽÎÑìÞ$Ý¢ =9žê"=.Ét~jC𣠼M»Î¶µþ|”ù$¸×ÚdJò=¢R×ˬƒ‘?¢ŽÝtªÒ<ÚGïËvÉ®G?jIMxdü Ü`yøWŸ_Ís:šÖ6 „‡za]úP[€U$í‘VÓ{Õµ¯·ÉûMëzã´9òÑ™"¥œfdx/»®ø }Äñÿ+ïÏW;¯ÞNÞTu>ú—üHâvÚººÅ̇æ¯àúÁUrPý/ÜÑîUçÞ{ÎßäÜ0Ç¡.þû¡úæo7­»ÇQÛÕ~eú™­(ñýòÇç6*AÒk@þét«ì[ÖÙé& Ê”Þ&·SÀ“{nøøqÔa·+<Ç6(jšKljºÚMðßWÀ¼Ô 2µ½f†£¼²æ;b›Ó=°È_é&|©Èßííu?„sÒy¸“”4Ö®xg s8þîõÖ ó×äñ”2!Ô-Ö Ü¥mHå{©TðtظͼkýùS÷wŠÌÍ‘„æSðcX0ÔÃhŽtïïu½ŠþKP¨&œóÛvêOã”v[R]ÍŒçä¿™i‰Ònƒþºý\Þñ04ù6h°~}3òØZ[$Ì•9“œÉ¦Ø´¨@gh•DÖ*úÜÄs;dŽ#¸Æÿ¯Áuì?—gì‡ Ì×aðãd ²9fûÂsND®Ê\!X^ sðºàG"® ¶ìå?8ø²ùÃߟë2È5ÐDsßÜ zŽÛÛÆs®Ìgø)2ÐM<½ý ømn%dƒÔÒ?%¾ìæš’Iæ"+|Ò]ãñE†rcÿϯ=·/È_p¾›øãÿ—?2kF¬Gõ:_æ|àÇ8Îê¹²™Ïó<ð¨!Åu§¾VbM72µ£_Aþ:`Z3ö8»L€6×…/€þEñê5ý\.rGi%×?J€žäžÏ:ðúéŸ_M²•ñh;5?Yj¡,’î2…[HDo™Ô¨zO'Êsî/êvPy<üÇvä Ç—”<:ÔúˆÎ¤àþ»@µªøý(žOTÇ)ii¨êhÍ«û¤ŠžÕ:ϲ®6‘àçîåÒ½r-õåÆç9;Üû ïdî | Î*‡Ô—yšÀ«¬ë$2òBzo(ÒL—Ó:I÷Hj]J ¹ RvYd½,v¾mù’:SMrŒ«¢pe±9•½J´¤åÔFBz*Ýhvh.p䌬“Æ`ImÉèå•âù£ݳUya¨õç«a¦§MÊWØTrõ„·RÈ8Y"•4–×@[#ìÐzÞ­ ›õŠ<–&ÒQ£Ãq>³ h«½‰ñå¿ÂµxΫ“Ä*;Éÿ%?âÁ—7?*™¼f¿ãï®¶(PÝÍå~åþàFpo¿çüÝÇæ°-Gù E§–æ°›ÍåXÛÓv3ãÍ%÷±ó®•o¯_%l,îBóm=¨]-šgoÛRΠׂ1l;ÎÆ æÆ»‹ÁõÀ±àÇs:G_ŠfAéŠrmŠI5ìúšÁ#~Jýi¸ýØ:vV8Êk N·UÁ¡ÉðƒëÁ pøy‚ïÏýùš/ Ø.2Øçp¥Ãñþ¼Ôy™„D[‰§QbJBl5¨ë<ªm^~l€ÒnD͓еwÏb3‘0ÚP_<·ÑtÖ„Š}EµØÿ»)ÇãzBþZñìlØ_¡ÞÄvu¿¥¨OœÏÜVðÍ#àÝ’ƒ5þÎòñ=wh _E"éÍ‹ÆA¤Ç(q+X÷'ø±ØV ³ef9sMÐÂã±HWÀÇÊH å@Ý(ÜvšÉÆ…ûm_?-5P<Œ\ÇÌ1aðãòÇ ðÃwöËÍŒTÕœzS~ÌÁoø}Îë‚ë?Rñ¼Yñhäšfè{o®rÛATž*ò!äÖ|z†¥Áˆ†RHKm=ß}ü("s Î©ýÝ:xG—.ÞófþpÜ;öª‰úüН!9@òVN'idø‘Ž|8ôþ?ž‰>‘ó uDvñ6|}m<•ÇÎës¿¹/lS¨ýiô´màGThj(VS8ý9:AÓy·ÕzµQÃNRԨ˟òzVY‡ç³› Ñ5ÓâüQ18ÿj'\J´æ1ž+ ä[™Çõ$ª·B‹k x¿HtO½Ikwà]`à-Ž%¹yœíð²¬;ßœcÐÚ:|ƒJÁ•4£L Û5ùA#¿ÈÏ ÑùD·kgýQþ’†È!Sù"zä¾àþ‰±Ðô¯¼ÛDç˜û.o;\Ó]¾ ~<åúÒG=¯¶®Ohjo®Ñ”Þ9,×p÷c$¡Î¡XÜô-ÎQ.;9Ôùƒ œßLRòOƒZv³÷hµ÷ êOÈ7ä…tÒUúøÑ^OÈi¡õ3É쥓* Ç•é‰-À£á7ÿy‹œ‘æKù¾þŸ¿I~oŽ•2]Jk"¯›~ãÍök)ï­(›à<¬Ö‘Öš† wÛ§Hõ lÈ[ÆÝòÚÈë¼rw÷uœ¸ÿ’ œ£N÷¬[ßd5GœÚŽ¿¦·Ž[Þmïr/8Ûß«´èÎQ³Ë–„&d§û¶.ˆÓîÜ5=?F›€‰ëæ{¯z°†»Ò[ޱ ­°wm]礃 S›ÓÎÅß=¾E:Æ­ϱf’¿¯ÔQxÔÊäQc» šx^¯$~ÂO6»µ6<Ÿ_51cÌèè-ú.yøqšš)$*jœˆÿ†§¾wâŸzõîýK ;ýÀÜå6"ô¥"¦Ô”Žü“®Ç")•bÿL¦˜¼ Üß{<9‘)ùŽÙÌ$—@I7Ñ ºkÇRq$‡Êp¡?CñüýÐ:°4ûû·Æ¨¨æ¼­¥“:ÜÒ¸«Ÿ@üÈjJçl3”|Ÿ~âKð^#8JYOÓ5¨òAhÑÚ,UÞ¼y:¬ w~1ÑšQy$ÕÇ÷¬£F”ŸŠÐE<Áú´Î¬0‘e8bµè»0ø±%Pɬ³ÝÉòhþ #Zðó«ï(5|rî¬u^øwhíŽ ‡ëχ>†pí?Ö¸îý7Ê›à¶á$ÒòN> §} üØ<°†d‘…pÏ %•lãªRZüÄ’@}Oñ@~†T¢©¶ãíÁB9 /©xApÿöøÓŸœ\R Ï5ƒÎÒs*r åÇDîʃò<ù‹÷ðXn‹vIëþúFþˆD-ðTv¢Wlã*¸§¬àGˆTçOd‘þ¬äµ”«ÜAêÈß\žs€WQñÓfðiú’¢Ùº¯•7ÍVGÊ:€þUª{ƒvðjY+d,¾ÿo‰æWÕ¨Þ”7TÒé*hýPn…g³DN'™yy¨ó?;c”ãkT£¡+Òxxî>ðöi†hÿôF=¥­µƒìFZK7ðqþ ))øû>Ôùœ-îsÊ…Þ¿…®ðe›)­„ô?ŠêtI¬¿h oª.Ã?ÏÉ!¹¬ÓtdÐe Îa"WçÕàÇ:[-Ôþ» Mzú ¿f¢–CÁÏË®C5'jx]ú¢¬ú©öÓ“²]:€&Y%•—Uʸ*\XIÞêýÇzä¯Ñ3¿¦ªôE£gRË[®µ@eRXcx=´§7Í;«E½ZFVë^°´¢´ÕL<ˆ""[ï¶Ïà³üWÎ:~¼š {3ÐÄIó/ù‘̹àŒp¯¹µM>³Ó)ŽRV¾r º]Ý‘îYçvàÌ»‹u}àÜ4l-ª÷•r›³nw…ó·j˜™æ´›ÌMøžû—0÷À“.I¿£ÝWØc¶²sÁhs\›Ö.¶DÜ(á*ñªÑíkoÑ^”TÄøm— ZØÄn ž´Ÿ*RfªƒtšÞÂÅ.fˆ™oëC‡'Ò\Û‡Ÿüð?Ç…g ó6 7Ä. ÇþWC)í°‰ "ÒA*¨æS[Š~¥•T,šò£pë›ÉÒS·à;JT3Äé•ß»»gûC¡›Ó§<—§A™?æÉô”ÖÂýç„ë[E©™­÷ÖõçéúnÕàúDH C(ô¼&J¾C_bÄW¦žü9G‡ÝC¦9uÞN'ñ{-æÉÂËYf 9ü!FQ: =¯„ S ¾žl6+•)ܘKðøÄ9 _,:iã¢m†9·ªÙ ~8<Î8-Æù¤š~”…GAý¸_D–ØÌ¡ÚI81ÏÂ<@ã¡—h¸‰ýϯF¸ýlò‡JàIþ’oR;ZBŸóGN™'t¾d?ÊãŸþ)»‰ðû÷3ÉÅZ½QÞ‡Ðj­Ðª38²~þˆ©Ýô:ˆ9Yã{þét¼.“ôº—’pw^„ü1‘²Û¥¶H¨÷çëMŒ²œð%1Pó$¼YŠz™uŠVSÖò£.Õ?@Ìïô(šG£]²y%¤¼N4FBF …âÇjçGÓßF‚–4¢”‚>ÖÞýB~«ëUí©½_½'Áý¯šˆë—ÕREzjîEÏì\Úe_À-&²£ß2îþ“×ZŒêW³ëÏ8éÿ%?Ò8÷ÎîC·ªÉo¶;%ÿdq7¯[ÁïÞvîÞoý`Rç9aÀÍç„KgÖ¸O)Î.pº œå&÷c7ö{Õó {‚Í ›eh¶=lë8bVû±g•n†óü“N4÷këÀ®¥ºÐümИOé…mlWR'øåÆÐìèIíµpÿÑÆ 5! åäép„yu¤(|DiwÕ?½š²A‡ƒ…éøÊßmL(Wð#%D­L“AŒÁtbaü¡ó`•‡{~?¢™1Ák=ºÐa;œ²Ð* ß8Ї'Aí×Aísq xª®TÍV}ëþíézn=è^dÿ,Ô©Ê?¥']@þØ\ЮÙáµt>íHðíÂ>ZN{m3s-ŒÒ8¿›žô ÉýkèôuZ†ÑWš*ÐmüªKsÍRÃþ^„\ygFp-IbÔ?*Õ sÿ’zf£íºMá¯Qd<ÏqTpÿ’úÐõïªðv¸å VJd¸¥hë)t <ÂÄûÇnÐ?»}‚ŸõåçÓ|Ií2Úr ç[ÜZ>—åÐ…uÈ[¹Œä“™ü ÇéŽû§ä—×CÒüêòùß¿[˜Wƒqe?žãþPÒÊF¨WvÍ<¥—ùWÄ2†sr5f9Îñп8¹îì7>¿Šêúɱ./DKFãôÒGfKÎ/³Á¢˜yž×A#?T‘CÈ EPV$‘Ù¼ÏðúüØ`«"/œM;ƒ–A…ÕpÏ]e.î—½¹šNcito¢æþðöóy)âÐñux" %9÷ 5÷.ù1(bQ~€4sý®g’2V£k*C5“®’Ìz\[h_hìÚF™ð!N&­95CÏ ÕSŽ»çf§¶³¼Þæà,ò­LWÇ«®H4èsÀ«+Õõ®ÊI9†»Ÿ-uüQ N"§ÝjÿÄ?œÍ&+²exˆ¨œÀÞ§"ZÜ˯c´„FÕG2üئ9´©Þ‘mÒR7if)áÅ•Oá4=.‰ñèŸÄÓ'Ôùç?š>pˆÝàÂßX]äýˆü1Y¶H]<µÙú“÷“wB3yµ‚ìÕâjð/1O£kv:ýeœŽ£Øð¼mýß¾N`T¿ÚÉÖ?0þ¿äGlçó¥{Æ­dŠ‚å‚ù£®[È­ïwÿr.¿çþ‰æ Tµ¥ëÍ`N¹êsNã9·‚³<ì¦{Ïý¯ªÙçè‡[PâaŒ›©èÍœnŒÈ$¶ø‘ˆ®…óDõCޏµìøñT…& ¼ \„nÛFv3ÚÿojA¡_ÓlJû,\ïÏ»šAf*êu¦"‹þA0 » _ž¦Gô%¥à ”O 7´q|8æ_•DþÈImD¸§ºü+Åj>ƒË€äñ Ÿƒ"Çåóô9ToØrÏ-óŽšÅàêpÏè{ºoGRQê UÜ]ª þ½€·G‰PÕ}øŠVàòÛÞ¤t »ÕfƒˆIüuƒö´­K½PBütEj‹¬ ¼‹VódC`ÂVZn[„y²ð<äÖпD<÷sŽVûêŠþr$nB»ÌFãÉhhTaþ>qAæ¹l mª†¹b]³Áö¡Ç4œûr!ä Yþ§”ü¨Á½ø[¨f 8ðc g¤…ßi6x0”ÛGCÌ}ç͵§³Ý¶7’ny>‡üÑ Îü ÜMiè{s)*‹¥„þ.™eW”ü²‚[r&pîäè2‘ëÒÛõëÏI¼>Úp>G‘„²ÏÑ_íàï¿{Ž>ŽÐ#ú*Z\rH?ÎÌ ¡ökÑNþþíE(¾;úµ[¸)‘?V¢· ®YŒå&¤ ¾žÓÞ3èig¹ÄßJ{Ù/Rˆ ÄC<,¬×5àüøÉy5kãñðc®ôTo‘¦ÑØÈ3?Ë 8ÿ€N?ü]ë÷âž!Eeå~¡øá:K?R€·¨2HGêÈyå¢ôÖ‡’™fø±ZRë5ýR'É-i¤Ut/è;×pñ÷¾Ž~øÊvö»ÌYPÒ>zÊgl>Ô¡½ì#Kê\‰€œ`À¥ÊÞM¹-—‘sÈKÀoÐúÕx•·{l©Pë7›Œ”TÞ†žZù£ƒñrßDÖÚ_gë:ýH¿?üÓÙ÷kbÉéÅ’ ô3磻6o¤:/{ág¸ùΦBiJÑ‘ÃSêo†6•‰²Rªh¯Ÿvó&z{5‡÷­–÷öË]i#_kA­ÿùU¸·vÊ[ÆÝòÚÈå¼òÝÏ5œ÷Û×öÕ•ÎÙítrOºÕÌ'fmpÿÄ¿­Ü"nSw”{Óyüžüˆã\0Ûá›ËRj²”ÉìF’ã<3l{3Ï\t½çúóÏí-¨ñFÛ »M·;mç‚›˜ªÒÅN´Ï¬5áãÇ3ç±Sß>ÀÈÛŒ’ÆBáRòçH…ì.FgàZSP`#Û'áÊ­ÍH3Ë6¢Ëpâsà·_ÐÔ46øáp_Œ¢óô ]±ñ)õ³ ßYÃüNoøTÿ<Ã¥yêò¹àÜðàZÙ ðÌÑ‘ã‹cœ£tÎ}WÚ|ìN¤§ô5T~5èx [ÿ®ÈSy4FVdû;P¡”Œ£òJd¯:¶¸ó¶y)*nqJÌЦIé[”vÛ6¥VPü!HU©jìïÞr*~œv¥ ‘Ùêaîßþ«3Ót£qwjIþ~–¥ñ¤râù9\‡6˜ý&ºLæŽ\žgãÞ§")¦ KÈe…¨\˜ïÏk™¶5žÚ0¤¬¸›_QÞPúŒGBýûr'¾GeÙÿ”}%'‡ÚÎEVÜA#Ñú³è[Í}s…ã"w¸ý º] ûòÇCê·_opcÉ&!RLgJ¹‹ü‘[fq[NÈy+Á·¡¾Õ©û?æ_¹î›tÌ‚ú%’'<Ÿ>æÈ I‘?ŽIy¨Ö`ä•g\ùã'ögOd /æþ\mæ¹s^+±‹jµ y¡ ïâÊü˜"ÀÙ“¶\ Õ[“{Ÿ“[d\Pç+ø™¿ðn”wÕôx­¼©¶RÛñàûá|—ð™"=d$·•„Þ|ð-ŽFövËu+)u!îr ·Šwò>Pécþ!Ôúó§Î]¤åª|4ò]IÎ-W¥§ºš[úIýX—ãž÷i[*÷¥ê»tëLHí¡¥·©s(5éuýÝàŽÃG\ä›¶òÛY¦· ÷!rO¾Ñ:Vwj —‡:O»K&Ý §ÕŽgp>ð£„ÝjÿÄ1ÎF‰r€çK(9O·Éù®d÷JèT-©õŒ´Ó¤ºuüJwÈAi¨ÖK(½D‚VàÁýðtêò²îrFš~69|ÙÁóBÍàBÒXˆlU”먼EÞ6­àµÓj²üˆ«¥†F†{ _° ‘?ÛowÿÉkM •súåßêýk~dpv œp›˜$fQðüó=šn÷ w’{ßy8ö^¥}äœ1ûm%ôÔø´ß¦0à’»Îqm7ÛÚL1gÝ„ïÉtö4•£¥¶ ‚Æl²ÙBÎeŒ¡ôô—qíp{ÍÞwÃ:%õŸ×Uçøqzº 8—u Œ6L2•’äo>"ù¡Îõ†zršk‰?8Gò™‡”Ø4-E‘Ý%o¬?MÍÐ'N¢N;ñ³c!Õ ”QÒ‚‹Épí£ ½úXH$ñÏkßΟ÷O¼Ë‹Åv#çÝ1M^+¯Ÿ-êúsª‚¸Âgy©L–n2œ¿”XÞrÍ®·å¸ö‘ Jl vôGþXÌ¿¢ÄÄR„‡ÊkœpÿEø˜} ý¥‚“ïªO¤¤Ì–~šZII]ýŸ/礦vÓ |”¿Û#J1xü?¨S¨ýw{9ÝÛà­?#ü?²=¸<è³B#xÅt¥¤Ðz_§ ÍÄ æ{º ÷Y'À™´àŸ9=|QJ»Év}ÉqÎT“½é8'—›ØöœHk#ËLвÈYðôšê ÍŠùü¨­Q½¢^z)†¯À¿<±Yy]¨÷[œ_Lz`Ü'¤”Èå¼àÇbÙ$4‘W[y«½õZßë ßÈ&Ý*ž–úd}l¥mö1|…µcß2îþ“ׯ@zçÕºëë–ÿúýù‡ÎA§‹{Æ­mR#øë—j» ?»×œ{·©JØWBçºÙc‹Áá+Í·žYã~ìnr˜¶’™in¸òžû'¦¶CE7ؼô#4u‘ýÝV+ñù1Þœ4£ì1«aªÔ?¯}Îu§ÒÌZèGèêLÊÌyé™ílWSÚ~D€ogÛ£&<;ò76ýÌ$­ÇP«E4nüu€¯ÙI¨7ùë±Ñô®Lôm8ÖŸszQ6ZeãRèÝXxî¸ÈFÕ rs(7ïÀb(t1š‡_:ëf ÇúA—{ÑÜY+ºaPø¤ð¡Ã0þý³Ç]ŒË‹è¿þ{ôFTØÖv.½¥¬dNm·þÐà©Vßà™Ý² .OD%i(—áøøÓ]zB‡ ¶¿ ÏÇè(æþ‰kœy¦=Êu´hyÜ×Z¨d^üŠŠ Óˆ¶š&"üw{èèdßÑZqè}d‘QÂ<ÿ¼†Ùj[Ð-ð£%”ðƒ`þ¡Â<‹[ÃÙ†àþjñ~Þžj¿œæÓdúb•7‘Ý7OØ]áv¶=A øðÄ[ „w©#m'OÃ*RDfH‡œpžIVÔò;NÆLàîÈ7}9~cvS É}h³S=d݉È3g ÐCäør‚OKq8ÞÞÈÀ–àÊ@ë»–CUK ½8³Þx.ÔOåâ¥Èh–“É.¥8ƒLÑq×›©÷´ž|,?JkÙÍáÃå‡ðãÃÙ?÷f‡yý ˆÍ ÆìÏ+ãn®Ð^€<ÓK¾ãvÁ[¤¹ô‚ìGZ( ª¤ÐùÜåTåõ<5$ÉËýmë—eEqæ9»áÕKò$Ý-ÔuÌ"¤µ>”b2ZÁÛ“*àG$g¤‰öÐÅ Ö<‘ûHJ1ù5·£^–÷‹sÈÈÉ@·¿h;ßµ9’L’Ÿõø³QXGé9]¥'ÕóîÉ ¹¯Kt°¤ÒY”¹l<B[g´!¡Î¯ãL7É)„{xHÃli$À¬^y$À²j5™Ö×f(;«¶ÖÕ ^p8žA&)‹±§\†î /̦Ž/{á>gùÊ&F"o@Ïm|rµ„÷­–Ä.–<Û«¢­½UÞ-éu×/d»ž’ç’OJk,ŸD©8š ϧÿÛ×b¸ÂWŸ7Ü ´ú×û_¥rö9ÝÜ“n#ÏÌpüsµêAõÛ¹CÝ›`Ô®÷,í‚Ù W^NuŠd6¸ÖêÜ4-ms3Æ~œsž9õì=¸îß0ކ£Ofâéžíh—&›àcQ øŸ¤ö\¸Î¬nBÌH$­ÇHF‹àºÄh~ìGª“–Z:ð#=þÙ×N}ç=t¾?æ7ñ  C)&îð‚-B#iëVÚE–×Â9­ƒ2[rLŠw”xÝNÏà;á;¿FIß‚¸þûÌÅ<™«qBðãRpAnèë6ä…B¶ü[ù‘Ç)åf~ ýOã@£¶©:õçð´ƒ @qq¿/À£Á*cè¤ÏO͹0J[âüfjƒ·7‹ª!},?²Q”f¸*M7šè2‹›@IG!ãoBKùó¯<ô¨òaðãh ŽYäG{xãŒH3¨xðýùlðä ü¾Lå‘>üó£bC‹V€‹×!3–7üƒ Ü6öÔ&5xs€ pîB›á¦Ÿs=ŸRVK&9Î$¿,åÒðg< xY úç›ówŸ8÷íÇÈwi‘).ói<¥¸ S^I ~CþH­=¡‚$®Ô¤7g€Þ_–qð£ Ýrf¼Á§¶,è{Œš²ÿþ%%G•ŽÈe¹¨ÌÑæmÒ ÚQÒ"Ct‘\–ó£´køéÝxÚꔩôZy¿Ø\ü ’óa*Î}?¶ð™)-¥òzó5‡>’­:[R€qt"wäȆKðëWŽ,yxP¨ù» Öm ˜(ïÒÌy¸ˆR\JÜYI ÉÏÒW3éZ$¸Uš[gIýB»è:$·žx"wÁÿQ·Po“G:›Ýû”§­tƒ‰†pÉ©sõ‰Ñ… yá9²ÃYã]gâz‹µòÇŠÌux4ÚnÅ·“m·PçGýdad ÿ-TCÛ‰ïJ9¯¨ŽÔ¢ÊÈíÁƒ`\{$…’O¯jD!/–”·  5.Û–<ÜyÕ“6}lTäꔆ¢RMîUÕš2]öHäÈ#½íZÐûBÊÝ/÷%7î?¡§v´WÐÏ$Ô‰‹ÿw×ïØÎ«uׇßs]Þ«+¥sÏiåÞt˘šæàúó%ònb·ª»À½è<¼íTì°/uŽ™G¶9µ§øP­ î^÷Žó¥sØôµŸ™_Í7‡›ø½êYÞ> :´D •ùÑÞ‡O>Vž¦µ]àן†sÿ«ƒN·“½§µãy<?²Ñ%ëï£Ö=4=yT‘º€lógK=3ß °…ád#Ë,?6 œ¼—nRkŠÀ{(ým/Ûg¶O8ÖärºÁÅܶ„ü_šÇA©SÒi[‹¾A2ñ>”¯ü ùg-‡P2rÍ»v¡|ìN sÔžßßv,eÇ÷æ…’ÎåêP©¤‡MPûzðŠË‘¿«Ù²NXo+ü+¯“Ç-M)x&žz|äÛ¸«æ¸Ç{4 zX†¾âü1 «ø/Çi%tc M u¶yFiÕ¦Fp4ðNBïs!ù=ò?w  f–‰,3ØŸUÚ›&!üjnµOm®0߬ T1KžÒp([IN‡èŸtÒ˜WÃ+„§>KŸA÷úsD¡ök‘;ã©LDŽ+d"ºo¾óÙàv°ýót‘YVq9Ž~ì bÐÊNRR6À=®—Êr“+K^™Ê‘wò³Ÿ–vA˳Ð(Ûüv¹àÄ¡ÌA~ÌG®ˆ!;ÑŽ[9}ðüó½OhµÞCäFSºpv.̧x!OBþÈ ¾òç4s#àÉÿF{¨.ï€òzœDzB›³s6™ # ¥ûô´v’Ò„ÛÇé9ÏÝÆ!̓O¼±þüo¸ðú|oËCù*åñÈßËO\[âx?h =+Ût%x4J2éT®Üÿj9Ê›ÍÀζæË²žB_‹#µµÅïÅ4†+Ê9¨Ïñ´&H;Í«‹$—îÑ:úßHëêR$·>¼l­Âù µ µšnœ³Ë=òVÂëÝ䫖嬜Ð[HŸëqu²&õæé.üqDn‚žŸJ5Ý~tÀÓóS{v»Â6ÅY&EÂHØTÞØ¯I¼dÚ]Sê}ðì[]¡—4‚ÖBJZ-;‘pæó-&=)’YizbkÂ|ÿ²®r†›Æ6zh/:n§ÒníæEÐ6ÒWVHT}¤ñ÷©ÞR-àÒvRØ»ƒ6ÙÃå4ÇI«ì9JÏ1ÿ+çG $s^}v{)ÐÞ‰ö/ùÁ9èÔq¯¹•M37¸þ<$PÎMë6q§¹÷§ï}þàQsi¡FÍ ›Õìuo95]¦·mfþ2‡ÝìîûÕ3‡%nFËl)Ú@™h>œo çª Ê Í4ûa¸Ï:âœtJØãþÊ68qpÝùIïÚÚöÚù=«}i#ØH6<û'¶2cÍT[”üÏy'#Ç„ÓmŒ n°U‚€ŠôC½ò‚ç¡¶ÑA—U [õ¡éP·V&šûæþ»KÜïíÔ(+oàõ\mÚµ¨È®4?&Hxñ¸b2},t¼|&# ü3@~\<ƒ$E òŒPçFtf;ç)îàÕ·ýOíŠË%™®hNP®!J›%…u«ÖÑéÈrµž®àƒx2þÁõ9)Ë…ÚûaŒ³ÎõO3Ø‹xÄû”nr ™¬¯œþuÿÒL|ï¡Ü;:S÷Iq]…žúÊümý™=e;¿äÇxg†ù£ÇΤˆÜÒfdO«xyµ‡ÖÔÄêê õÙû)rÑ 9)_"Ç¥—ü^V)€‘ä¯m}f òRêû²Îv¾5íl*¸‘ÆôÜF¡r:´¨(!â¯cŒäµÕžÞb︦ó&hm9ˆìõÏq‚æ'qhí´11n2ùñ?îâ õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run004/bold_25mm.nii.gz000066400000000000000000003010171323370031300254170ustar00rootroot00000000000000‹¤½w”UEóï]½ÏÙÝÃä 99ç0äœA$‹JN"A¢ Q@%1"‚(¨ˆbÎ9>æsÎ9¼Ÿª3¿{ßûÇ»Ö]ëeÖ0ûœ³w‡êªo«ººÏD'ÿÿIR¼¤ó³\œýüŸÿ’’k×Þ/òDÙÿþ­Ùãÿ¼ïæ^ÜÓ½üEúÿWm}G nÛ¬ÅÿM»þÿýûßýøŸ6­è)òÁC©ß'üßwêûúOû¤ÿôóÿù§ïý¿_§þÍoÜÒþfI™•í2W ùi.‡åté,9’&MeûQºrGº¬–i.vïIE>¹OÈNéåò%CŽÉ›òŸåp×T9$Mäd®‚Ô”?¥‰ë€Ôs¥‹Ü%=\3IÝÓ_.–’/™2D‚ËvÃ¥ˆz¯—4·EΓÜÓ]6E¸Ó¥@*Èî¨0Ñ*º,*ä‰]2ÂÝÕwUyÿw½ì“÷\Eʩ辉’¢¨¢dKU×:ñ}”ÆûY2Ûm‰Ú$œ+âÙ3øiäæÓšE2@VÉt™!c¥Ž4¦5Ûd· —jr޼!ÃÜ=\5•î£øÓ(v¥¥œ-uÝ)ñ"®J¥ÔGϸFÒš¯Iò}í*³)a‡¡ýuäT¹YbêjIÏ÷"¹*n¹Ìçó®¼Ó_Éxþ6¤Ž®ü¶‘žò FGÜÓ”x³\üÆ—ú›ýNZ—çÚ„Ö!$´¥‹|Iô³ L,’ö’éºË2Ù"#¤Ÿô–Å2KZI'9MÆÉmòŠÌctúЮ]Èw¸L“_xU]jѲ»e¢ –‡äSžªI_&%Óü^?3n/K_Ÿfø…þ¸ìwçú_Ãΰ%öÑ ·'m¶ß††ŽîI9ÅÉÌäQ;Ú¼ZÖº<·ˆL¡G»iy}äºMÚ"½~ÒL:0þÃ¥ ïu¨w,÷< kNÙï÷éþ²ø ¹@f‡'ü“!„ò¬|.iiÇÃÓò›lCÂ:?9Lv7»…~£ò÷»º²ÒÝ쿊_GÞe¨\ìÚDc©y)ýª!ç"›ºÔ° Ìcd£mä54ºòjÉÈ?÷òYhb/Ù>õ9a@XŽt~ñÕÂÞð¹ïEËïòO…®aJXKO^M|ä ‚K4c´®7D¥ÉM“ƒ’D3úQÛH¤¼DÚ1Ò²N^ÆdÇJ%ÚÒ‚:{É(4¯2:…¶.C# e“ìŒN$'¡‡•åL™A zrwŸÖ‰w'‡sUÄX&Ý>Æ'ûªM)“¸£ËkÀûo"?Õó®rµ¼À8òD5Vº2¹Êç§²ýŸGK³iG%êÊFJíÞ,J*b|Pf1OT‘A\ÕæŽ\zYYªò“ë*¼[b-P ®Æël~òxZï©È{ DE^¥QJ½,°6TÀös¸CË®ÀgùÔTD­9öS—:ª˜íWi ùLKÕ;ªQ[8SL9U©'»‹¸+›¿éüV4ÉkIyØÏ¬v•(&´FÇñ«ØÒDºA3mñrùN"÷–Õu–r®tw•¹ç¨4C†ó–zª|‚|&X_šÈÇRÍuá*kú\Ú¡kY\Ï'.”“¸'}þ|™H› äFôz•\IoW_¸°íóÆhLT-:ås×¥ÒØŒŠ))GþëΓ;åW¬Òqǰù<-Õ I|eºž]á^ŒÚ'þ5^ k¥¦[B¿' [›Ð éèZ=d°ƒ¾ì£G•¹ã™ènfd[J÷vü5¸×Šž¬‘ÎnL¼o%MÝÞ¨ctŸ«…V¥¹3°Äƒî`Æ0¹DnB/jƒWÑŽÅŒCúº\JÜ*ðj"ÚÕíhBïÛbãõ¤×-Ñä¥BtнÀ§×Éîä'àÕ­þ<ÚYì:ƒW¿D3À÷™¾Vô§ôK,¥õÁu–… ëp,¦ŒžÍ ]mþ8æ…—˜wæI_™ RöÆŠ§È`d}ðª²ÜÏgƒhï'h{mê>-™ð»ýô¸#HÒÛ§…I~†?^íA6… ñŸn»6mŽß^µvÈáèßD~òí¨}?C6¸:ŒQjov^GyýТNH ?ZÐÝp²˜–( OÇrw1^³‘U5Ù_í³üåÌ;dRxÚ?~ö€´ï‡åáŸp]xFþ’ó¨s›_¦»;Ý™´rJ¸Ï?ìêÈjw«ÿ5~ìéA=W»ÑjªZvÅ"š0¿t¤UMð¬ýðª7xÐ T{3îêó\:³Ãð° ýè†kÂ~ =¸Ï¿º…‰a#÷¿—xßWé‰&HOñêpÔ « ~ïRv]MS_/>Y‚ ¾V©¥µD[zÉpC“&Ô1‰e£“ÈeѳɑfµódEèúbçù²RÚÇçò~×íèÿ…H5ë©L/‡ƒŠŠOÑÏ>)£72šEfËͲ³ù¿¯kš¥eðT!¥¨çrGUù_…»*ò*L©d5V°žåq­|1ƒ«lÊÏ‘˜ë®Šy]ÁzPŠT‹ù›N-h‰"j:vR@-ÊBÒ /K A²­ôcKYÆijNæ¡ç»Ð´¥´«ý¥t(çWùît §7Ê»àÕ;\§Ë½hßùð«"Þ¿EÚºGe\+ ùMc(ÛT¾„£´§”tFóKЭT”ó,±ÎǶ (i0–“¿Ò¹àv¸†Vhÿ;‚WÃOôþ‹¢îQi´?R)\B‰{£"—‹tÞ¯®”WàQÈÉ5MÜ¿ª¬òq''>‹rœÊl‰{-jœø‹~ç¡@Ö³(s c½˙Ϝ¯¨±kÛ…F·¾”“ÜqƬ ÈøVü^ä]/¤wŽôwã%hK8㺨Et¿«†V¥»•”öw×Dz'Ѿ«éw°ð°l ¶Ù‹\^m‚uŽ£×í™ïU{Û¢éõègkJ†gGGÝShѵr)xÕÐßâ ¼†®i迺Lkì ¢Ï¥WâÊü [I«{SÚHú1 ;iɬ¿š’^Cƒ±ÇÓ‘eæþÎàÆðª=¸›½—<)ïón]ú~r2òëü¸›Ü*ý}z˜åWÁ¯®sûg¶°+NFkÝ%ð«+ÃÀP¼:^å%_ŽZQþS²Þº¹ôà4t{̺9¥^JªÒºæÔó­+¦åM™‹–Ò† å,ºH¹->ê3ý5ñ,žžô…oý¹p“ùáÏp8<+ŸÉ¶0-lñ³ÂLw¼Úæç„ÛýÓÌ#Üþ§ø? ïPúyµk)?XcŒq;3@äz­˜§³-9«¾…ù÷,Ænü7.ó1hßUn ?ù¢06,¡/ÿ€WhC°ç8xÕn·òFâcŸ²àWµ@¨?¢QXkìcŸd¹ÚàG5¬eHÔ ç ÿæò3¶¡¦5c<±U Oµc%wTS¯‰KŽGÏ hÏf$ÛËì{Ôˆg%GÙÜÚ‰ÞEé™”TBÙc©_ËiÌh¿Ë“Êrz¡•ÏÓëj”Zhœ)Ï8’ÎÓŠŠXª÷ø4WņFÊ¿r¹nm<·²q™!”¡è¢íTSbí¯i¸¤X—Å3)¾”kõTGÞùÆ€2 3 OÒ©½¢!Q†=_ݼ¬^ñY0ôk„„ ¬mÕ+Å«|žhXŽWéÖæjhH–ñœ"ÃÎLÃ[嵸KYÚl¼»UH»€÷;£ý˜õ‰†2Ä=‡U)Êî”ï™±ß2IÜK§IW§ñ¨”¹s@†<Ê=C^•9<¯ÏÖÁO|+Ò6 ”±¤zÆXðäfF@ûvw´ƒ_i›¡+«°÷\·¯¦»¢enúD»k#Åèk@‘{¢W’~p[±ƒçœŽïw’“Ø GѾ5p=.QÁðs…{%j—øÉXðb8Õ~·ºtî_cþàéH¦¡\F{®@ËÐþ7d¼»‘–—ÝËñGÑ¿\5çÙn\¼ ûèL{—F]¢»ñIÛ¡³k°ƒÑ£NxC˜É÷#íú0©ƒ ØB,µ½[Š7¹¤Pï­ ²¨vµdäJy¥þà ¹GŒí?ôûf¹8ùoéÀ¯NÂmÅ\ÿw´ö\_½.ýK@Û‹I‰=_µf†™B½À¯¦`ÝiÏnøÍpJ7íhÀïCàÅPy° ºÚJ¦Ã¯Îõgà“!¾JïÏôGå wž0ì Å¿¹%îâ´)þ²Ð#4twÉ‘H’YÉ¢fÔº¦SÓM§ÓÐªÝ m#Fð J­”J±Öo°©šH¥#¾þظúƒ‹~eøÕQŸð{ã9`ê ðœ¿?¼éÏ—ÿÀ¯ÎÀtÞíw‡“Âv?7œ†?¸Ò_äg„;üƒø`óÝ øƒ/1'ôcf¼Öu‹Æ0Š«_­Ãª3¢ðatº”M¡M¢Uí6ŒÄ‡ñ ÿ“(¿:Ô V€)?øªàÕ~­½Á¿ÊÀ«õŒÆÛ‰}xÕt¿\~L\õ¡¯˜yöã“×-ªÓeNí¨9 žÞArÝÉØQrhOÿÚüÞ„:ô.Å™‹dOtkrœF1ÐÝ´ ›q¤•’÷àýbp¢½8w5”k~S/úR…+ðÎ@ù›çÔ¯ëÆ¯33(>åÚ¤ü5õ+Z­ÙH"‡vGªÈ««)ßд 5)ÆÓçJ|¢m«Ç]ʆÔ{«Â«‚r|(0É·z ñ*Y¬&ƒÏ«™…kd(Ç,<¶È[¶aKŠÕ§Ä<ãN™¼[j¯r ‡ xcxUhüO±®™Öçó4C½ëW¦µ³ÈX ò®û±ÞŒ²rÔ‰Ha6¤6ÞŒúɨܦÊHxÔ[v}V¸EjƒUÁ±LïBó>•yÊȳ˜Ue6äcaÁЮ¦y‡™*(ç`Ê—)Ó u:pGuZi~TžáU®«Pnv9_«j~XŽ!®zª©(Ý(FŸÌ7äî OÛ<¥qªò"öÙÕXÞFFì^ø¢ÝÝXÊÙxFÚÿ£Rì^“ÉNA—µ=M¥–û›ÖºZÊcp‘ŽÖê¹ á´WqiÏÖu#MÇ@Äsð¨ªqWkøÕ1| e7F=£ÊÑžHãûár{ñõ4fõû¾uØâT•\“ÄrW3R;Ý N N4ãý™åŽGsðu>ÚŽ/uçÓÇ­x+åT,n85Õ)·;ÝÐîò_éëîDŽð<¿Š?ëÊxµLtÍàWÃÐç"÷LtÜ=Œ?ØM~ÅOÃΔƒ ¡÷ÇÁn~ûíñ2ä58üÇ¿~óäù6¯n /J†»<ô ;ýÒ0ÑÝ¿Úà§…»ýS`ÄwÈ¿ÊÒŽòÕBÍ3‘y]<þ^ØwCô·±Û†àódrÀXhY+â»û?A’nò`H„¢05ÌâÉA®[ññüþÓÐ5, «¹ÿíÄ;>„tðª6üñ#üÁXdê ô }¨ ZOa–êˆÄsбŽRÑæY«4e´G[ü¥1˜¨Qy±ì”ÝÑ1x”FÁÏ”;Ã—o’CŒ_å¯ÒÝ…èfºa‘ÆÛë˜U×A{ò\‰1¦.Øì÷H í.6TQÞ“O¹™kÊ0ÜÊ4¿/ËüÁÆX¼²#Åœ&”\Ë|œbZ®¸‘KësUbÑ£t®jY»ò¬dy¥°®À¼Nv¥.•h_žÅóÌγ-þ“g˜Vri¼½we™íkܾí)´87ê®g±²ÆÜ]Íz‘&©Ç™c1±"c5”“i¾_«= )Ÿ6-]kk.ïà7ôo·Ás\‹_mçÝëåGãoÏÁÆÏ•ÞNåvHôœìuŠ{ãe”›ÍfЧ•ƒÜchp¶­÷} Ãofí9MæYüS¥K‹]#7Üæ”+˜¶Ãò-®˜ŒN¸¥Ó»&ÚD—F*Ûƒ”y{TÉé¼ñ5þÉ ò‘Ó8\¦ëš˜àªFŠÅYnu¢S¢‰SùÏr/Dë¿Ú¼³ ÄÝêV —óéï¹Xù)Œ¾®“ìÁ[¹ Ýkˆ¾-ƒÝQ´°¾Ø ñ+Qškƒ­_(Ã]Y¼é!õܦè6wŸ«K)/RÖIò÷·f&ï ׺Y7.ï6Úúà5àU˜à©àOoPf4åBʵn~5ÒóŒ”DÇàW-¸{Oò[ßÙßé/¢”ή'xõWt&Ö>ÅíÞ–‰µØb€õMeý ™æRJXÅ<®7¨c’=étÅZÈOÜ× Í¨ žNã‰G¸§ØLÆ'½_íÄíä.é‹ÍNö ü-ò¢;àß ‡óãá‘'¥ão£-Ý#r}ôM"$oŠÔûY§îàΤÍÚ£ ô¼¬ZG;ÓÏF\ƒ½VS["ݳéóÔ2ŸOȦøÿk|i¼ˆ9dpxÅ?>ó w?†ƒðº—Âò³\‰Ov‰?#LpGÝ,¿ÆO ·û—ðк—âg@Þnôë€ë gäΤŸUDGHYÕþ./jƒWýÑÐëy½¹%Åý7H«ŸÜF‡á,ÿ3_ð?±¸Õ¿Ú†a Ï¿žxËç…Ê ]­¸T>Y2.2ô*tµy²²K/ºRz#Ò^ê¸ oonx:ÜØGkz? DR¿f«œJN6ܘ+…u¡³èúõZy!ÙÓâWY¶|’Rÿ®:mgÜ#›ê…¿©U„öÍÇk)3®£v[Õð$Ëâûµì*‡Ö)f¥ü»:\Øò•F|VÅü—|Ê,¦„"~êƒJ5ÊW«ƒD)î”g8QËЪ¨Ü+,6”ÅøV3æ—n(ÖÙ¢MÞüÇ‹›)_ªi~U¦ÝQýÐöT ü2î©oXÚÔE%[Q¬l+“¶nc«…Ù)«hmJáUd¹SV”J7w‹ñ« Ê~îÒÝÐq=žáqt_ñî$½߯„vÞ&ÀÞ/3¼.ð¦X p`÷ ¤8Ufý_‘®YÌÄfîĶÕÓîÆ¸TsƒÍß¾ö´ dÐù¥µtŽžsÓm:½FWG9æÓvGÀ+åT¹¼~ÝYlÑÕNtwµ¢"­ÁÍOÔO4²\‹yàÕêĦ;ш³ÝÙÈ÷lðsº¾ÄꂮÜ:ÔÇ[yM†¸›˜}:À÷ߎߊ´nú´sCâèggôåht·{ÎU‡ÑüÒMãZ ©ñÌÓW¨µ)gB6Ü£”r.CR¥îRðe8Ï÷†ëòÛA4O¢¸ØÔ¼Wr£ܳôûzYüÌwÀ<¯²•kú…¢©`Âï£WàW«L›Õt}p-:öÒ†6¨dïÁ'=.QÆœ|ÿâoäFˆ®pU•§˜KFʃŒFw[ß›¬êOõ‹ãøƒ]|Nãçû›ä Ûã /†sâ ÑV·;m•¿5”…6îi¹-ú2‘›<µ¡kå4WË-¤äqôh£×˜þm gºnÖ€ßß±ÑÔ׆ùé4øÅ.ø®Y4 ñ~ðj<ÉÆ|8|Ÿ¼[¾ ›àW/„ÇÁºð«‹ý²0ÎÝìΠ]“Âmþf‰UnŸÿ2~¼ê\êzFC6°;vÙôê z7 E§£cO1 tá½öŒï{q[¯kØýä®ð¾^ÿ°–~àk‡CàÕ$vÌ¿„÷;.¬¢g¯&ÞåžD¢)u|Ÿ8 ¿ª$OâU%|SEÊ“¨k%½îbþ‰Ýiæ}µâ½6Ü¡kß-¹ë$Z§óïrQtKr’ÅVàn,ƒ`ƒ¼˜ ¿JùƒÜeå냊Šã©?Ó"׳°Âª†º¢ð!ý­l¨’g<'Ëü7å+ù%¯m8UÕ¸J!¯Š,ú\`>Z±å3(#ëgq"űº<_—wKŒ#e ØÚ_Š_[톺YÕÐG=¹\zœa¥ÙE¶r–fœªb¹?˜Ké-&¥ø[ßâ^ÚõõÒwÿ¯õÄ[!È2°ÈJ*´üÕ¾ [Eê–’t·K/“U3åS®«!èF,á Ø¤¼ì!ôoüJyÝíò§<^)‡Äì7éj¬©¡Œt·ÁÓ‡[òìwôF9ã,˜ÍÍèE‘Õ›áê»a¶Úp! v®+-¤Fô²ÅµÒñAnŠ‚å_eËüÎkŒ_åÉW0æ«äq§2Mº’D-×(Ò\—à'²¥†W3Ý;ÑŠÄ¿&ß‹èÁån»ùå½àEjÑãTe=3ÿ´~­|$Ü~Þk$%î³øåÈ»hÏF|ÛαæSu…7]Ý‚?Xy{›!_ õŽð™±´ï*F©6W;ÐçMȯ©\ÉÌÞÄRèQw‹ë¤œÆØCc#_ø*¯öÈ™ÉïðøÜÕȵÝÃ'‘®a,𸗤SbrÔÜŸ ´zºÖ•¹c¾YÇÉ´å.<ÚqàW_,ç2êüÌÓ ÐÛÊò0Ì£÷¼ÏS•yo<þàY~iÜYGùÕ<¿Üß*W¹ëüÛáç°"Ήö¹i‹üµa8xõ”\}(Hî‰4’¼J6¹†nퟆÖ^À˜Ö¢w×›_݉Ñ¬ù"ýiÙpj>ãã`w+F`þà_ñõñB˜Éìðœ6üNŸ–/ñÃj§½ž’„Û÷9ÏÏ §Yüj±Ÿîô3ò[Ü~ÿEü,%¦÷{_ÕÃcŸM­uès)ÒiÄõTæ†GÀË2ËgX"oÅ-}Úw—‡Â¾"N=äo|ƒp˜×£tíÿŠÌ—‡³»÷¯ù"æ‹RÐà2ù1q,êKë›1÷(^Uãn͘†,:[äã$]˳HMfŸ~Œ‰Zr;tí$Z¥Ü`»lˆ®HŽ1D™'7„AWC ѱ/’3’#lo‹–)_Í4†1˜™¨šÙi]J xŠ@;ïz›OWhñè|ós,— ËF1¬#i–­Ê¿®l±÷J†DU‘M•òlˆ” ø¦1ŸȜԄ÷6Åwúào´xûiáQÿLøÛ¯‡Ëÿ¶‡:i'ÂÓÌn;Âiá2¿¼ºÕ-ô+ý˜pÜ?¿ÚänðÆOÑçî ý×7²¬ îúàF/¬²”ÚºÀy4sô44ðaðªÞŽñý8îé3™ƒÊäð©RÓÂï}­p"|ë5äÿZhV‡õŒÏ[‰×ñÿ‰Y¾èO‰©+ßæ£ƒRäÔS« Ç nK¹øz'I±­wWdg+ùXjºVÛzyŽÙóÞ¯ áómIJuàtë5æ9­a¸Lwg`!:4“2ðª§õ¦ w¼kÒõÍÓ™-ŽÃqs,ïýGi€5)뻜9ò2å%<ÛNªE/¸S,†vKt{”]é¸\‡¿y]Tdœêsw1Üî%§ÏVq™‰º®q¤ù«I7=‘›hêég¹'¢å‰¿ ë÷aSÜ6®§¡½çR÷BZZ ^EïoGª¡ÓoJwcÖ îøé(v=ѼUrºëÏ 7=à›F¹;]},ṋøÍêºô…Gh¼½.º¹ ÜÔº¥¯‘Öð«“éso~g#x¿ZÙ¿-̬=aëƒÿ‘‹’?ù®þ)8 x5:|ÍåºÌ÷wŸÊÀÄjPS`S`ƒ#a3£iõ<Ëg˜HM'ôd™ÍøÍÂÖüöá l­ªŽÜ Ëèj¼C{+ñìÔd?ÝŸ·“›¤·ÿÝŸ z]/7ºËýô0˜2›Y.C[pfv\-ºÇ½B‰oȡ䗾£¿ÙobTZ¸²Ð;|MÇ*ù î‘XÃséàÕhe}–A­{OZ¢¹³¨÷$=÷ w;¨ç$ê+u}-Ë¢"õ,£¶‡ðÛ /Ýå”äßñBüÁ†´|¨ÿÞÏókýq¼æ«ñ¾ª§mŒkDÕܤ´ ~Gèú!ïÑŸ‰¬ä•Q;ú±Næ»Ún!5Ï£o˜ËšÑ⃔\)µ… ¼OûjÒ†6à…öà2æ¹ȹþàNÿ;þàFÝöÙ„ý9Èñû°#d¦ Hu·- Û@©qàÕl¿ÙŸn÷ϯÎqWú¯âècKÊßë†Dý,®ÞœZKŸÔó]Îß%è[]°t8³Á5†WšðuÜʉVö•GÂW¾0 ¸þÉ›?XFËoñO‡¶afXÃè½—ø/ùï¨Z¹O~IÜŒ?ØYžD?Ó]ÊÑüöap¹¶‚tÒýCÆYÆzò™ÚH7æÈ“‘Q¦å·¯_M¶¸Íb¹+, ƒŒ­—?’ƒñu[5ër‹E+Fõg&*2k­‰ÖþÀß6ÌGb=-Ξg˜•i™˜Š$ÌÂó-3¡´<[ &-*±µ¼çjÆd”ÍõµØ‘²§:åët™ÆmŠÍïIŽS1ülCˆ\ó³mõ¯x¥Vfmml=L/ÏØÊ³XV¾!P¶q­,êín¥ª¿ÙÉ2@+^i&EuÙj–õe|¬À˜F¾¡o%+³’aìcðô_ýA<Fgcdíä7üšNÆ ÇËŸŒû§&“Ðõ‘òÍ¿ûþàN§ím çšk¹[šÒÑÝòhvÈòŸ*jv¡$'(_Ú,_KS,¿ˆ>h6á>fe»}¤]ô˜›mmíý¿ÚinðÅÌ®D•œÆ»^sûÀ¯ÇœÎGÎ¥P--ÿês“^©÷<É=Kü`ÜôVj;Ëmg”4 °MšÁßRtãB˜Ý½hYm¬ù#殡 ÍÀÑ?㷢ߑAktþà\´£—ôtoF÷»[\ Z˜îv ‰ïRb_J Žë³µÀŠ ðªWÛ Õ%²]ÚºséµfCtµ|†“-Ÿ¡Ž¨¯ÙÒòEŸß¥¦Çd{òßÝŸÀ ÷ìú‡?áWce¾¯î>”®‰åص·øÕ`¤Y†uβØý¸ëÖÏ0ÇòE÷X–âØç@tµúð|f u|A?Ôœž?Û¯;Àú¿¼ú]Ë«ýÀÐ4mSœ uƒÒJýn캧»¼ú=‘HŒÚPë"|±îLú8}Û ÷ÕHÜqXcí-÷és=úÜRî]Æ1@Òºlc|©OøâÙŒúôð”¿7üæ7£!ß…Í¡BÚñð¨ÔqÛC×°~5 YÏö›ü4ðêqXíyînÿþà<b(ØZZÌ¢üú BGjoÈŒ8½¬…ÝžŠµ?!×rïãWŸÄmýwÌ"e Å7¾„:–1ª?ônçu?ÆâNÿlh‡/ºŽRÿ›x¼ú=jA™‡$JІ¡KÀ=Ì‹Ê'ІþÔÛ ‹É¯ÎitgW!š¥Ù$ÃÌÊë2GŽ€_eZÎÃÑ¡ä³êYr(Ì šOPQ£[ñ€d™½ß–¦L]q£¦q÷:†­©é[ä§¹]ÁþWl?N.ZVbÌ#«|aƒrV¤¹AÍÀÅÍÏ·]-YÔWßò±Š,ã¾³åhæ›ÏXÕJʵëZ¶V—aksyàK*g¡²ñ¬bËV(²hp®­ßÕ·uý¬r°’qo×Õ̯K7_´öVÑblŠÊ•lçP†Ý]bu©‡YÙbqi†zE†I™†½ÙÆõÙ¶èÛ¹ÈZyN]©èæIó€[áWt ß΂[Ý.ßpOšÜ‡Mœ%Ãm}ð°üÊLºÝò3Ë`ñê³,{ÖV ”_½ÆO kå˶+3_¸‹ü _m«WÃâ/‘ª[¼½ö{Š­‰ž‰þp—G%Ô{'~Ù¡¨ÄUçý÷Ýa^?ä´?­Ý‰è'é)Žåº‰?¢R§³ÀT|·Ž‰O­¿Ìk²ØmFZ3ÑÞsÁåyè”ì=†…£Q€ÂG‘Js°â÷øý(B+Û1/÷uk°®‰hI×;q?þ`?t45G¾Ä*Û‚[SñªöZ™CÐ¥ n ºÒÞ²ç[Ãî›SCd3Š‘aù пŽüô•»¤2üêuÞ}[¶%¿÷ý­¶>XÍu ]·Ñ$i³_ä¾’N‰Ô›í:Ò–ÕÔÓ•Ï 'mAÏS°Î»éÁDÚÔ)ïæ³±#H¥Èø^˜Àðê ,­R>-ûù~yܘçFú a>þà ¹ØüÁii»âšÑ@W–6Я ýÂ`w›Œ\ò·ÄUæ®fî¨æ45ÛvßÀÿ#ÅN–[Šîþ„œëX¼ý:d>I'>‚ƒý5¡Í׈$¯‹”ÅUažÛ‹Tk0vµ,2µ–ò{Øß)òã–mü§£eàk ¹sÉ0æõûvÈÅÑõÉñf‰ 妰 ô°|+¥F<19ÂVåZI¦»”²3Ì?ëÊXÖ·ÈumfÅï-6ž‡VΗ7©¡ØbéùVv‘EÂòÌnÔרc1¯"󨊥–y—,g¾i9>¨¨¹Ãµ ßjÿ/¼Ê±«‹å›ýT/_sÌ+ÏhH±§ª¶{'µ0Ãú‘f̨Šù›™ödIyü*µ£º¹åQd‚T-ú•aûhjš_›Úï\ÅvfÇ+²ZÓl§xŽE³¯&Àî·ÐmY;©Œv³{3æëß—¶fãþž„¶öË0lg#¯Þ“­¶§/ïq°í¯Ñ|†àz˜_YOž‡'w4ßð,ìz÷¨<†wKÜÉ’*g(²ÛzÓû݇?¨õáè¶(=º2Ò ¸;e²[UuÊkßrWƒO8EáÆîXTÙµ‹tìtÿ`HÔ3[ˆï6:¹b[—Y'sÝä2­¾ý™#“•GÑ“M”4ôX ¿ »¬‚Tëºã·#ïz¦¼ ·-^dù ÝmÑ#î~§ù–ŠI§Ê;æÛMÁZïÄ^›¡!#à‰Ùî,®ÛÁ+¤;ö0fâüŒ Æ2ê*µh|3æÒ~H6/º öÔJ®”-É_|[øÕCÊN\{üÁO£s±‰Í~±ûNz&V2 ×–9÷lJë ¬@¢Í(k*z­ñöy+›Š¬» ûŠ8{×e¬ï’¹ÈüF±‹­OOfù™~±å_õóÃ¯ÖøÃrÐíóØkÚθ(:ÏÕNëå·„!¡Ì=*¢o’<©?µU–Ø~g¤Õw4Ë¿ríÊ|Ú—ëîðñ~o¡­Óº…–/xn|ÀWð7"ÑmrjxÖ?¾õká鿆 B"íÑð0¨»%Œ ;üÜ0~µÀ¯÷'‡Ûü‹H}µ»Íÿ~µŒ> }®W¤'kÌGšÏPF?ðYwzšÚכּɯOÖ#£¥òþàO–Íúpø”êªßûêáxøÇáú>ÿZèF…µÜÿ^âc_ ~Û ºD~Kˆ†[vÐIð«"§qº–U·Ê2d565o~V óÿ‡¿jÅü>‚ñÒ½çÉÑÉ©fkgÈaQèjHs¶Æ’C YZIÞCc³Íª¶vRËò”j[6]5‹"uÿžGªÅæí¥ü¹|c…ÆCŠÌïËAϪÙz}Íòl€ c-ms¡¡ÜãQÊÙj‚¤"Rµ ¯ò-άþOuóómmÏòÍÃ+ÕÇ æSÕ3/1ÓðTq7 V/GÀ Ë_hi0ÍiílìH±¢ŽyƒÕ,3´²Eúó W+gÇ+0\.²zÚ1ClãW‘¸ ö·Íüµ4Ë_|·»6È“Ìßs¿—‡˜µ¯•ANWJã1þ~¥òÄ7q]±ED¼|—á:X;룋ÿ GÊòfËt¬²§ÕÕM¾’Rø³^ï§ÌÔWhyª?»µnœyÎ'¢#ð«C`Q#2ÎÍ_©Ì>så¨<êT¢¥î±¨Žk©w›^ʼnÚNå<É=H|cû.¯–:çD›÷‚º2TŠŒÈFü˜¾–Çþ¶Œ¥\Vq_Æ_DÀ«Æ0ÏÓÝ™±zº]¨ë¹èqw«kJë3ÜPå5ËÖœD‰÷¡Õ¥¿º€ÏV1‹µ¤G[ñ1¯ ü‘¶ßMèKùMDKhe¹@·JvŠ{ekòKß~õótS×&t_€W#eƒ_ë~’æð+Íoï &­AÞêaÎG¢­°Ž)üÜANÁJûa!RþH,è_´¼ý,¤}gÂCÄo‹4•Ó“Ç“ý‚XÏû™à3ÃY~‘¿AöïV†içÅYÑn7 ­«_Ɔ¦îiÙƒ?ø[â²H£ËóÀ«Ún>x5ÓüA=Õ¢;3‘ž'Óƒ^u‘ß‘WM´¡5|z.ý¾\^Dæ]°ƒ³âk}ð7ÅóxnjxÞ?¾ö›äù9¬¯žɇ²5 ûya†»ÙÍðüäpŒXê®ñ¯ÇOZ„½¿\¿Kýº7I3뺡kuáW­m¿s)RRé@Jg›_ÿeÜÌÿŒ,úÉCás_ {Õ•ßùÜp(üê#Ñ»ýÓ¡M˜nxõ!xUþŽtùJù•ž²u¬q `ž«‡ÝhÖPÊídëMü­ê¦YÌDw\õ”1¶ߘ™qX­Ìã|ÙIN¶†…r[˜^éÜJ©w¯tÕ®©xfÖFæMivêT‹éÞâþx0Íì‚Lß³“‚òÌ;«a $Ó«Ž¡OžSÓÈüš,‹ƒšO§\¬‘!D¾=;ÔVó²í¹jȦÄ8OjKáUŽÅº+š7›eˆQÑâJ©4õ-–UÁ¸T+ke†Ù[%óÄÒËwf–ç‹Ö±}a¹æ“v0,ÓH[mêªcë˜éÆkZD,£|÷b†ån¥Î (0ü€Þèú`ŽÍ º?¥³µ¢-Lê=;ÿ*›ñ~Sžƒ(¾eöØú`VÁ}#»æÂ1—:Ç(ö6”v.»J7~õ<-uÖÍ2;9 ‡Eú†ák>C­»ÔØ„¾kÜ©¯üåNqc ‡E×Dÿ¸›"åKûA %Qu§òzÓÝ‹óˆS,o㾌º:¿Êt£áW¥Nõdª{&˜øÑ}‡œ#óÜzä8­ZÃ9žQ«…n\Çœw+šÚÄ~ÍòÛKl}ðÕø«(ÒD˜àa]“x¶†{'º9¿7òN“¦`ýõÑžhä1¤RŸRO¢'iøJ-ƒƒpŽ!h_t« ´ÐÓšjþ<(×…ÿsî‘_Ý îmèͲ4ù±oáûíµp¥¡}x-šž^â×ã.MœÃxXüj#åtCæsm¯I{Pk:ˆô†åau£]»A•ÉȸØižPCúú8wŒÀïz×,­³ÌHþOð£ãFÚÿ¯ŸãOó÷ÃY®ð¨´­ñ¿n–ëžÖ~Õ;ôswÊÑßàÕêHwŸœ‰4º-Hç$·›yK³c¯¥OSmL?¡}©¿£áUoæˆÇÑ1m‹ò«Ø_/‡QO ÏùC2¬a>ü(¬ ii…ûä ¹ œ^p3ý&Ûïüxµö÷i|7}î¢g>¸îQOf…¥X]MF¸³´°ýéгÆÔ4©ßÅë©;­`$¯Ä-}šå_¿øtüܳiå'0-=OFÏg`¦¯¦„uÜÿ~âU|Æ_ðk3ï|ž8õ5†0ß¶ÀÕ¦gš›ÒŸÚÛÚ‰qkiQ–;‰«Z e+ú:ÂÖòw˜Å¯tÝêâèžä³©%rU˜º£Y%ÕãiÉ‘–•©Ì}Ÿ®«Øú~oc°é¶šÖŸOrÍ+j'§É[f›yÆ^ ,ê”)©3R;÷4Ö¤{]4>_b; ³ uréCEËWÐø|?Ëgȱ•¼b‹6¥YžCuó3ʽ²ÊVG¶aUže4¤VûÉ1;obQoo¬¨R¹oXdyò™m/ †6ÖJÅ«>V£¢‘²åzvV±]”ÇÍRÙøæÃþÏJc¡Œ†lÅS˳s{ÂDº ködy]iðé¯äùÜä|3Ör© wºKàj$øz£í¼»–Œy¶ÅÞ›¹Ê°“ ã–/c¿ÍÓ.ǃÚc»­²ß$••C9‡AÍ}†ôíä+7×µq¹/º¼ºÚö;ßg› “ªÍõ«îEÐôI§ùc­\n¢…«)K-v#M-l†{~õ‡Éo»8x½½ =Û‚U5?®™Ü€]”jX¾hw„k¼÷iün”î4³s)x55>Ü‚¹'£‡±!õsòÁ¤Sњƺ¼º¡ç;¯JÜ2F¡ïlÞî2Ý Žfô²õÁ~èw}ËÏé¤kr»üà®ro0–ƒWúNþZ¿ ¯éZ€ïFsaf[üf÷‰ÔJl`T¼š æ`ï‡ÖëþÁæÆ³ngVѽë½eþ`_ìg$¤y h×ý´r^ÙÛv®]g“Ló'û©àÕQéëô3üDL¶¹Ã~Tšvaœteiù~ØÑßÝ*»¢_&¶^m‘Ó\K·€¾Ï`nÜ&4§=[­gš?ÑL>C‹êÂ?t7õüÝ%·W_Z_î3ýŽx!X>ðÙðƒ?¼z/,É´{Ãýòµì #à ?3Ìu·»9~%z·V»ÈòßÄÒëŽ¿ê µeýÓÜOeºN¸ÔNÀ˜D[î¡m}¸C½ˆwâæ>ƒRúÈÝð«Ôú`øUõp%þáIŒ×1ÿBhŠ\L»ß´õÁßAÄZh͉ãÑËnxÕÄrµuÖjˤËãï`©lûqò, çõ¥Ù^Ú‰ØØl˃Ú*û¢;’cÍ·š^ =-Šs®ü›œ“n,¤¥d»Kìä•lj^Õ´’mô¢ò2†FÕËó 4'´™åÆgšŸUhÑ&è·°5¨Ê¡`q!EÁz´¤¶˜™gûh -#?ÏXNuc`ÙÆyR§jvRäQÁòE‘ñž·^¿Òì†"CÁÔþAõD[SÒL±îÆ 3̬g>lºís,±ºÒ,ŸòÓŒæ[tNãZWè¶acÊþʰ]ïHåši,=ƒš(ÏâÕ}lÒy‘q8Œ—£q½uÒÀý(\*_«1x5Øøa+)tµ\gã~[á ε2î× <¼Ìb\¹ ¤ÆÛO6ûRÞ_ëÖ¾ô‡Nq§Ø¸‹†D_»=‘úû—ÈwzTËÖ_qÁ·n·scœ«™èìJm?Îo2.ñ{ÔÈÖ'º§¢¾‰¿-Ã÷64âTø@‰µ…Q/º:] ¢ìõ×ÚÒÎ×@áãooèÞŽ?*âÑVa¾žãš™?ØYª»O£ÛÜ®åÀ«9`±F' K7‰FIÕ‚WÁè× ím¿sWw=:>ØÎ¥ÒuȉŒZ][SjÎU/pä/wȽK n”³’ïúö~¿ßM‰]ÓÐ!|M¦œsý}î-i ¿ê(?0&§ZfPp‰˜×ûOÑßÇ{8$œ ú÷¡Æ“åK¬¸žå+?À Ñoþ]þ×}%c’Ä Ê÷öñø3üéþf|¬Kð —Å™Ñ>74­¢¿: ñ—D¿%\ò²¨«í^^M¥d=]kª-[AгfÔý¸èîݼs”±=¼º–ub´/Œ¯öy~[|&?¼z(¸p­ú:, iφ{@äóCY8Ç/§¸ûÝŽŸNø×ðÁº«ý{ñc¶gr€íwFmÓèYMzÜ‹±Ð]8­Ñ¥Æ–‰5éDÒ«éeòjÜÕÿfgqܾõEð«ÅhÛ§àÕ®ðüª<è_­A‘õôæ«ÄûàU”hÁh]-'.ŒF˜ÅMàU¡+µÓ¶4.y®´±ÊFÊmìN¶lÈv ÎhjWýoŒÊðPÕÖ4ÿêúä$³øi²&WfóøFù*Ù~¥þ`kæ˜=v¾¨®™j¾Õ¢”¤+4S³_Õ6«:Û™œêV·üKÛùoûq3ÒõÁºÆR§841•:•¡ÌÖéÔÓÒ=¦5 ŲŒQ¥âíE†=U ­ò,žŸ:¹¯–Q…òS§-4¤ÜæÆ¯Ògè³Þ²HkX½¬.Ýi«ÏëéݬUY–[ÇòÓËãíU­õÙåÙ 9åþ ®V´ö¿Š´ô,-ièÚÏ­vrƒâUWËqž˜üÍò¯ÊäˆôÆ'Z?x‹ìwùÜ´+ÃÅqA4Ö­Hê÷‡Î¡%}8+ú=ƒWíÁ«¹`xÓò|†ÊxÛêd¾ikHÜ’;~?5{Z£ ëhÝÅ érË»$> ^팧WÓÃKþ~°b‹íÇ9+¸´§Ãƒ0ùu¡GXå—…YîÏóãÂ=þy8Í"w½?~˜’ú׺ڑ"Õ ¤UƒZ:Ù‰fÓ¨smùJ-sþ@/Ƥ-½5 ¿ÒÈÒA8]ìu=å| ^]þñÝ5é_ 4ÖÏý_$¾ä—hŘ^'ï&.ˆ4£¬&ÌüR©êꃴ7£#uÑÛsû? ™"ŠžÄXbklªO bt”'œ/{£‡“£-*4G6†9øƒš£µBrðG™6•.C†™f£}(±ŽÝÓœñþÇø‰îÇ™‡¶ô´ëjÿ+Ï ×0¨–YT®ùdM  ÌϪR~LUiR¾’¨1l=ã¹²!Tu‹ZÕ-o[©é–Ql1óÔÅ^eÙÞ™,(• ÚÀrâ5òlïLÅò -ÍgHåSåØÞœN-Ó8[7î«gq§Û;Ub|¬¦EsÀºÌòøzŽ­ST¶öU²R^-.µó.ò±\u·xK‰`1]-Þ>PþËüü¡ìsàÕÍr²ÓÝ•Ìíîwt\¹MkxlK;Ys·êº†®Ì0j¯¼ckZŠîÝМ ±7Åðð«Nn¤1Á‹±¯3AÍËÑzÙ-sÓm ·C4!ú¯Û)&o‡!Œ’Nwd¾î^†=ætÕâCi¨åêÙúàç24ñ]¤ñ«  Û øƒºã*—Ù~þán;}{(uÇÎjÙé/WÃÛÙVkyº£;h«ÀÜçñŸÑw¶’·¤+‹ça£=à<_DϺ·œÎ˜Ï›/ö–Å*t‡Ø­”UнÌã‰Ên!ßZ®¡žÞîZ=ûÐòÆXNtsc#m×s_y¼ú{›w¯“UàU;Ìk +¹&¡[ø9RµÔ7‰ÞÕ‰-–×…úVñîÃÿEvÎÃê},:1IÅÛ{ƒW“`}¨§”ÞÞ)3éûó°]]Ùª'§'çùµ±2 ÁxGÓý\+sÀEþ£pq¸¼ÚìÖ¤Í÷×WíÝ=²8òÉÌ䦨6´L6ºªnõNDÛ¶ƒxš± ªK½z"ÞçhBu,UñJwlëyD ù¼¦ìŠïñÆ×ÆËÀ«SÓþ^øÕV¬ïë°!d¥½¢…[è°Ó/ ³-_tþàƒþ}ðJóÛÿßcgÔ“®VÔ ›\hgp.ñ«ë¹©v¶vÛÜŸ^_Ëëù¶Cøý¸ƒÏõ•m?NϰÚöã4GÂw^÷£ßï_ M@‘M”£ç!W ‰D7,h¿|šØ ^éz›®VtzE‹èo§ìNèÿ&Æ¥™oY­©¿7óŒâCS;Of¾­…](Û¢[À%=7e¨¹$ô2ol‰ü˜<99Â< ’á6PBêÌÏÜWÓìHW–ë¹*·ÑÜÙ´’eh,:uhe;%×x] ;M¢Äp¯’­ø¥ö›¯Yd<¨2í/²]ˆ©S«š7Vhñ«¢òýƒÊ´RYS)Ü(´ºô4™*–U©9Wõ¬­æÚ®åÔû9æ‡fÓŒ‰Òò5?=q0Ûré3ÍÞjØÉÞVªX”<ÝZ˜i«w9ÖšT®~!|é<ìJ÷ãèw@܃ìºÚu æÍÇk-s4~Ïýòy–/ £Wɧè·î*îRWhñùîàÕl“[Wéç긾†Ã;af¿—玶Íìa¾ùÅò½´uc 3÷ªó‰ú}=åg7 _CùðÀhQô¦»ÈbS»dª§ë/ºàÝQ§ÒøÎÓ̵ˆtúVÆ&þêYîý÷PÔ/QÁ¸ßøO§‚W¹<5Œ~é~]Ç*õöâ1ŒDÚË)i°Ó3šKS÷CüUô£^é©®=x¥{s¸c𫻨·:;SÎÆÎjÛêÜxìâ ¤]ŒX'ùn¨ß›Ú°Qw9† wDƒkƒ”Ãó]-:Ü?²Vôüª-V^ò[ßÉ?à/ÂÚà¶ ßDC‘þ ß"zU&$–Û,¢b%öóΰóuÿàlPùCþžÝMGê}͉ò'6ÛÐÎ}Ü{ëªCm3’¿ÄëýЏ•Ü'ðÌe~©¿Vnu×øçÃá°+Ñ^w,m´?†„.îY…ä¿xEíèÙ|Y^-·5¸&°†#\é¾L])ÓøÕpùÚÖµô|Ñ›ÀÉSÁ²l%­¡¬ˆoôÁ‰ÏbƇ—ý#`Ç6ôëß°2¤¥È{rn˜vøÙá4w»›¿šŽøwaÖ‹Ý~ÿQüóD'ÆðjW7iíÃ`ngÛ~œVƃ53µ,s³ÈÈx‘ßþaÜÅ{§‘ðûÂWô¸8‹Ö~îk‡cá3?ºÙ¿Z†™aO”x~•“¨5]+¿'.‰FYh(~€úƒ)?Þ€n·EWëꯛ(©ód:ÛŽ!å-¥¶b»Ðìt‡¬‹nNNµy.­X¿ÒHøù8Y¯œ_5ï¶RBŽå~eD?Ñ3„«ºbÜ–ÌH ×ÛGUÛAXPžo©û¢óì•æ­—–çPU¶Ì)¤(–f†(/Ò=‘5åÔ´S<ªY½•lu1ÇÖ4+Û¹îÙæÃ¦â^©ÐŠ“zNa*s=›ºttlߎQSô´/lÕ4ÔIåÉ×7¼Jµt¯k[\«Àê-6UžS¡Àrº %RgÑèiòµ$u.ÄJ~.GËc[ å3‘¾²ËVxŸÛV™Hû ÑsµuÿàëŒÒ…2_Ì3rÍñûÛ÷ãtÇ jÝfÚùí¹.Ç 0n¶˜Yÿ;ÃSwæƒS=޲3Þ‡Z,ëjFo5:­g°w’çÜHø•ÆEãŸáWŠWËwv”iñö·ÝKÌÛê‡âºf‰.®F¤sÙÏÒ?‘ÛR¿x¢{.ê•È·ƒî€µ¯ mþ¿ÊÎ(bß¡²ßvëŽ2¯â;éânAGš£wÇßDÿ`yškØÖ5ŠWpÝ÷®èw/–Ó ¼‚,`##èÃ¥6éÞ‹|·¤¯ŠŸ”:¯O¿b82Ðïänß´ÓÆVõôt曥$zß}ˆeß"û’Ÿúzþ.)줱k^}Œ5nòÍ£·ebb-wýlßò 'wG’KéIsÆj2¬¹UÓñ;ƒŸ›ìû&ÆÐÊ>å®"'à^Ãà.¯ó¹f%ê~œÙþœ¸Ý×g…ñ~¶¿AޏxhsÂåqv´ÝíIëà/ }Bgüä Qf²0yEÔ‰š§3Ôs˨y2eï“kW´A3 ºÚéO_qWeæøÉ+ø»›¿g2þµe}¼×ÿß/agù ú­ÈñOð꯰7<)ÏÈa@8¼šëºÓý%~r¸Ý¿‰'w¦»Ò¿?‰¶Â’¸jÑxÆp«Éu-µë÷þ̡Ε¶“q2¸—1è‚”êðÌqoÿ9m(‡ïa”CÂrÆîs_9²ï›$7ú—C—0¼j^½‰Ï˜‘¨µî•k™9ªÐþQô³˜9CYê=]—º:¢Ñt•Ðjˆ Ù*º_ªÀb¶c(y–å>ž‡W} 9Ùò¤4_ty(³sÖÉkÉ:–Gš©>–ÛlùWºo¯7£VÛ<·&”ø›y~Evºó{æ]÷)±Q¶E¾+–¯ÁéûmŒè:]mÙ‹„5§å©Õ¶\P¿Šq \Û]SËò Ës²Š$uj{êÀ<ãi¹3+°ØT‰áT–!^Et9ËÖ‹ì4™<ãZYåy_Ù†~šY_ž‰ßÇbú,7¬ÔÎÞʰÕÈ’ò¾dZ­©,ÕLceU 1³°åíüœ]~ÆËX˷˳3Åýbþ`øO9RNû¢a9ÕüÁ•àRÒmwºžÚüéeÚwFTtŸ¡'-Û^½fgfؼ°†25§c#ø0Íö³ç€Epßn;¬›¼ëÞt“÷‹.â(…W[e¼ÛUtú:¯¹o°Äý–Ûð‡TO<&9‘Î5K·Ä­Q5ÃϓܢV‰?Œ+>ŽÍtÆ)´ ¿]Ìø©ïTi‚6ï1zs×füÖ¡î8²i&uðˆ¾¥­™ûz¸žñRžì MÜáhLôstg¼_=çWÏÕÌþxU—2~uí5~fFonçÉ€[–ÕǾo¢¿éx#[ñW~§{ñn–~ŒlŽÈë›üNt¼ªkJ×Ñž›çó¢§äôÄY\MÉoj K@–¼;½ÖLËÔØ f±•’‚ß[¼]W]3~õüJÏë«'''_à7ÆÍ@²~>;LÂ< 7º ýfüÁ­qft=xÕÂ߈WÚÆÝ†?øWÂ%·Ú÷yÍ…­VsgуAú ô¡!Ñ1ʯš!Ï7`…z~{+ôK÷6j>ƒžÑÚ@Ç×ùãCñ™ŒÃHÛïü‘߈VýÛø;Üî¦Íç‡áa•?~uÔê/¯nö/3S­t×úOâGá’èÝõ®2ÒÖ¾í£ã× Éh.modÒ– @Þ2;é‰ýM˜)_‹;úlíî¶ð¥/¢_ è˧¾~¸¾5ˆç®ó/„ᤰR¿%%ñž/‰ŒÖõòsbgÔŸµG.Qê2êÊû‚5šñ¯ú¼XþbÒÑ åWÝ,–«ß3Úâ :‡n—ÑCÉ)Æ'Ê- tÊÖVÊóÉšà•®7µõÎFG² zÛ÷y©…·¢ŒïÍÓªdûŸF;õ|’ª†/™–!ZÙVúRy¡Õìü‚^T2«ÀxX%úS©üD«F¤È@×éêZ®¹®ðÕ³õÁC}&u`Ž=UÉâàé†i©oáò–­Tlì'XæWe‹k;u½²ùƒ©|†Æ’:O¢ÐÎØkd>WõV)ÿnŸbëM*Þ•úþžÃ*1äK?q=º=Eæ–Ç©ô{¯zؼP* Ý8Wfø3dœ_Å´w™·–Ê˿ڈ5Þ+ëbqO˜N7_ô›1šãµìGÖê}njº¶†Ï]Á‰£Xª®¬•_¥S¹¿¿–ä¹óÊÏxÏ=æÚ¼0&š=ì¶F¼XF»OáW*—¯°o=ûDãKVt{48Ò5’_¤U¢³Ï+³ÜѨG"rºJ}ÞRw%}>$؉V-DÛt·Ûn9G!¦èû{2¼*DÿºÈ_¿êȈ¯ÁKŒãe`@ .?ñ‘< ï$o£‡3a4ºÞ4OÚ·ZÕ€{¬–3Ü<ƾ#Ìc±4s¡ šƒÓ9êÙ›[ÑokuõÁÏ®=æ> œkecòKßÂ_ìz® Ì&#¡\b=#ã»àö½KiA$y6V¯ßðpmѳCòigðs›Ø•9Aãí­Á«{±äA`Ú3Øk}~'À¯fø-øƒ·ÉPŸ¦ƒ^wË1w•¿2<®Œs¢+ÝÌ´žþŒ£»GN¢äW‰k¢”?WV¸†îLÚ¬'nƒ¡5Â:uõ²>ã×,ý”­gß]²ô˜Ìlô,Oµçó%àÕ?ñáx޶1¼^i>Ã+ò[8#üž€_} ^õùeáæ¤I~‡îõO»²ÜõoÇÏ3§v7ºØg]pp4z¾ŽÚ2^º>¸ž‘­ŠLúâëê÷êI¨Kä۸̿n™·…OAèþð¨>ò‘¯n ŸûŽv¾è}øƒ'‡]”ôUâC_!D‰¦hÍåòwbs4„ºê3†è‘k`;Gô„ †ÿ…¢¹¼Eè³F{ÛÜ4ÔØDSþŽ³Õ¯Ù êOŽ3ŸeŽì¢¦nZ'o'ë&4„lB“ÔvJ(å4ËxÈcGI–«b1ðmíb8RÇ<£ló­Rç!k9Ͼ͡Ӣø ¹ •¬œb›/‹Ëó©C˳ý†Å¶Ã&•ÃU¿|§tj¯uÃÔw‡å–¯ñU60õÝ[š ^ײ¼EÉRût‚aQ%Û9œk«ˆ-?ÓТоE'Ëê,´]ÑÙ¶;ºN¹?Xdü*å˜ß[Ù0¼ ’ÖïÉÓ¸_]Ãû¶åB—ºìlä ȳ…K¸ßŒ!>Àly6¬­;*›ñÌŽÛySep0Ý5•kþà Y«¹6x5ɵ6ž¶˜²ïEÚº~À(»žn‚퇼öv¹\`œª·|{šl­<]ýåöG*££p¶“àNºò{–rÞ·Ñ+q*5²3þ‘‰¿¢";OfºÛuH$œÎ—Ê9Ý­Ezjî~Z9 i…[öž’©ßyÐËò¯šI]÷jüeô«¤¾p‚«/ÆJ;Kw…»ßÝä4?÷_°w=¡h g¬oÅþ*Ú.ú}R îÑ–Ÿ½èUüA=×^ãã©qù*ehtGÊ€EUîroRÊ ryò+ßÙßë÷6\½Ð6ü€E¯»O¥,q6Oýʳ±Ñ¾”ÑlÔ–µæþàÝ» Öɼ>•QT©Œ»‡¡èù£vJ×0™öhok™‘ü'žãׯíáuýü¿~²}_ê}î>„_F‹ÜÊ´F°œ¡“;&×F_&j&wEÚî5ð+oç3L¢¬ ¨~»Æ&äÚ˜v5Dz޷=}úbÊß5ÇòVcïmŒ¯ñâo‰5^9)¼î°øÕ'ò üê¯ðH¸Cî"|µM~i˜êޏ3ýf?'Üå_#Ö¹Ûýëñ0¾Hî×1d+%º«díRh*i< ª‰,t6Ø­¤MgÈ[à•ž××[î ¿øªaPX«‘6®® ßâãð«þajØöÿõàUT]×gÏÜ9'B*!RH½zï½÷"½ˆ‚Ò¢t¤ ‚R±bo¯¾öŠEDÅÞý×^s¿÷x”K2wfN[gí}ö^›þö+öWëûê×Ùf‚ÈC^O¬Ð"Œôì[EF3ÿú es™-˜ ~5”k_w¥F¬åÐÛ£ñÓˆ!+Ìogdí¥¹f§›ìš9î0'#Í"=é%R}Ñ¥hI¨„Þ‘šij?VÀÚŒ•r\ÿõКÏy>˜JΑN[°×UNTƒ%‹9ÈeÈ’20Ãh¦$Æ3”#êèõí%ª y< ó +R +<L¤§<‘‘W©ÿ{V q-ç€ñôÇ•'³±Œ°¨H{0×Dk~Å1Fµ{G3›ó4 ŽxUž˜e™á“ÕoW¿YEžK–¤_+-ßDE³è=}³6ŒúëÈ·)2Yò ókb±WúrÍ|Çøó7±º™^¢§7›æò5xNiÆÆkû@úä›@j‹ú©î÷³éþÇZ¨£±ÂkOnÂZj/#M¨ápÐ5û‰oíÍ»òV¤ZÚ½›€W0¶j‹)’š`^—g±:÷릢ÿ¬Éõ4àc3ÜøÉŒoŸ&¯xYþeòãçб²}¦»ÞNÌ*V/‡ñ|ÐÜ vÐý4Ì¥¥aŒzUùxõ-Ï §šNòKd+ÚÔ’|ïѕӒU&šWЗí€~ZEónÆóŽÂþÈt²ž{a·ÕÓ샧õÁ¬¼êAKQYˆþé¤NðÎȧx—ÓfuäŠmaOÚ¸_©âšº³Þ0\s‹}ûB7ê!«•:Áh¥Ï¦X3Í,ji Æ»<¶7ØÙ†z2š‹ÛÈÙµøra ÎFß~`ÞbäPmÓ/òK0ÔÎ ªš“¦¸vŒ=nî•ûì&÷ž»;H÷¦HŸ˜v¥kåÚ€w.õüHbd™Wsb’¹Qʈ¢€ê_m@VÄú|ï“‹»WB_ºV=Õ뛆ù³óf®©`–ì7Á}ÁDìR=Ýyûë¥^2?¸¥.5æe÷‚ùɬ‚=¸ÜNt#希°ñéqû±Ð¼¼Œö·AÛ^uALç9ÆRô¯Fòâ\…hÒmÛÉx÷ºøïó È~MýöcîšMuÖÙ¹{ð÷»íŽÏ'ís®®âVR_ô3ëÀ¯4–ø~ó“¿ÃëˆY’ûï0Ù°M›:¡¥kØÿñh]êõ©g¹Ʀ³Fë2—VkŒ!Ь5s½ûaª3Í<ì&º–˜…%°ë<©éM„ª {p‘ ‘ùcS¨¬Y ¨Xü-ƒ~©†@å1ÃÒi'ÅCB儘¨)žyx¹ThŠcæthßiÌCM2ªò—¾Œ®J`¤”ž‡þùüÃ~V7*bÿ¤ÉóÔVýÝ óÿôÒEû|°¼äU÷çéîVâÕb\Ý3i-¸ˆÎqÅþ}°`îçbûÜ4Ã}ËbfdÉ[Áï{z²o4mijðÖM€cýWI6úÈÊ àÔG@¥6ŒgØ¡»@7ôg¢Ld•§=دÔ2ÓHìn\˙ՄU ªëN›ï´\Å yÅ,Ž|fëÚCv ÖZŽºFîKo”útí5ùéáÏÆw®ãM&]»á Z t&Þ±6a$ÌûŒghJ{°wÿ,éÎ(ç Œ›ªÓýÇ|ˆïg`‡ù1èmo êb÷énKºÖv’=avÉ6»Ç=â6y^gi3ÁnvÍ\SÙKæ7?%2ñí£Ìd© LÖóàìHZ° z¹ ñª6í]ê_©wé1 E`¹ê_µÅÏ;ì/Á‘à y/÷â»Ü|k¾vãœó¤{Ñĉæ-µ£Ý09 £í°±I% äûyð$ö­¦±Qjz=èaï†~_†q¨ˆµ¨'7³2ë ¼ÃóÀ=/Tƒjö Æ´ƒ9Œg–vÅn>Ÿ£ÿê:øU'ó} ?íáà®ùŸÚ8÷·WÈ ‹×üuÄ«Üu›IÍ^ÈÁçÎôÚÕÃ[¨ÞIÍêñÞ sB­Õm û]Êz³ÎÛJûf¾Ùæú¸v´r–›—`ö5Zת²1˜Y¡&C*Z0™'f‰´¸$“~ò꘿¿ ·SÉŒâˆW¡q2=åÅY–¹@eU†‘ù &ÔÉ%·I¢Ö‹ .‰<Ë3EärIŒmHŠú¬’ÿ§8*3„Ñôa5›ºQô)Å3˜h C*kªÆÒ'Ÿ­­øSD}Ñ$fò¨Æ^er›\Æfð»iDÍRÄ®$ž&”â7“‰‰¥Ùš;¿”õRµÚ}êcÄ1¾=^Î2—0kâÐè'z×Na< ÒøÌC¦+ì”u¬çÕÉü€ïŒä;ÔÀj®-Øš<È¦Ž–æLM1'° ëþÒ܈´”^T[Ùö0ù‰îgå2ÖŸ2Öc^7ï¢lô”/=Œ•?ÞÓº‡ª×÷8ìÇEmïÚÒÚ?dŠ<žÊ?Ö/G Ò>ò†W \KÇrµžÌ€•c•‰Í`Ó1Ç+¢ecÖeÂføöà½x‡:À¥ƒÏ¼kZûB³t¥N0#Œó”žÞq9-šµìËràïk̰†™»û®FêvÑ:?r+¾[„u<œl'cÑ»`-im­®¸Ofp-ÍÀª;eþ‘Dý`›™‘K¶=nï–“ꮡ;¼j{0É»`:ú3x>X˜4›u¢‹1뵺fèLÂÞe埖Ø5Vá™qMœt侦ñ ªk÷¢ùWçªjTäÏ`¤]¼:nzÛ×–üj¥¬³;Ükn}á-–þ1£ì×Ö5ýæ6ï?&2Ÿüj6õEça¼Gà^›0¦•Ð?[ð›´¨úö2z.7e]œÎÀ¦gÀ[á=æÇìïÁýÁ4Œ÷ ÷Ž}üj%öŠŸWé1{ÝóØu–¹.n=õúÉd»ÐÞèž´oJ3_ØO‚gÌX<¥…Ù.u½®èçÙ@ª²°Í5;½†QK\còÀz¢O÷±vx-`܇AMûmñ£î› ;wš2A›ÏüÁþxûGì›®ëÖ‚=¨çƒ?yÊMwšïý^'úPú°¾s!îšÅüÁY…zŒm~5–> ÍÑj ¼ ³_FP…=–öà&oKd2YÆ,³ ­lN?ÒóD¤zd0Q§ªù;w5ꮨR[…¨ÿ¼‡‰‘2ä`zúuøÃ¦¹&¬ã¬,(—W¤sýr…DZ iñ'‘z2U¥vb*»«7\wï\ƉÆ52øYïR–9ËñD¸ªÃ—dôD˜3˜H_y“­7‘ÁÚñŽø“ų€8b—ž2…§…:ÿËY–Àgµh2™ƒ£ü ¼OIž2†þöP›!7ê‰oй´ŒñWeé73-™yOYò;OjÀRä/¬}³3ØS÷™~ÄC¦†üdõºµ×(4Ãi­VÂw ajŸç‚Ô–Z´žoÃØ½Ê|Ÿ\/]¥?‘{¬”ãà=ÿÙÔ|!oÀ¾I29à­ô.ÉvOï¸1ÅËå›çå XÒ&­!Íü½¦€1ð>°«”_†º ƒå?^‘/¢vå òYƒ‘)‹=á.̳©˜Cª®wج绣Ÿf™+`Rê{/„åù^pÁ3hV+l-™ª 7Ç|Üâ“#X9ÍÍ?À¥ à+yX;£p·Í¬—‘µ¹h­Êk(¶Yô¥ÎŽ^À‹ ¸[m¼‰æã1ÉÞkò~úœ¹=rÑÖ²ÏØ­š¹#Ù®µû΋5µÖVõΛöþ"¬£?ˆN‹pÏÆø4?z>Ø=ö˜9‹•:†üjÞ¨þĂ忒ß? &ÐÕ¼‡k4Ï®©ñí»*¨…Ñì먽k2kdŸ=âîrkƒ,o†¬ŒécÁl„6,^%Gîò4r¼-¹2 è0-ÞÄøö†d29x—˜EߢÚõ¢+ЂÝF³þêbä§ìOÁÁ` 0u¸{ÕþÇýb—Á’¿îƺ”˜ûÝkØÇÁ&ÛÄúÎd‚½öàIû_ð«rÂ^ žÃlí]b“Tõ´b˜öEl„Œo¿íc´*ó<÷)Œp=£ç}ÓÍÛAc{}ÞÁ<æ¾C‹•Gµ6ß¹ö¸ïmoŒã£ö°ÉÜXAŸúçpÍïžúr¶¯îñ´n`!ñ*VÂ:@šÕ5÷oˆùv'æTÀúƒ™Œƒi§ëºÖú8=Á’Ô¾ÊÜá‹ÜÀ“º[ÌÝîF׌±£ËÍó‘–øy,ãˆJÈjVoÐz1]€Íåiá€Á}M=ïšÆ|œ ²™Ò´œÊš°rõ™‡•“»U-šÃG®U‰Þê$ÚÌ™QOUÏIl)Ï<ådæ2—bÆN"mŸP_+Œ$ÁÕ•þg»¥ÑCU‹ÏbŒz ž„ÏX¢:DWõ_5c>~³s§ÊFónÒ©dS’QléäŽqüœÀÊ…ºt¬@OÆ3FTýW ¢ç¹ò!s“K`ï2°û.=uì%Ô­ª†k¶S¸~_“úíªÙž(5¥y]z¹­äò}æa&=I Lìÿ,mï¹VÊ)æ–ÂJúJž®)6>ä-õ.¯g÷âY-¼R<ûûˆv‚õRLCiã¿d²™sÝtòðREw’!À«úþϴוFÈ´¸5ö¦Í`/cÑKªdqXùµÆçÁâ­'­ÀÔXÎßyß‘‡L7å»ÈBp£&@í9ÞSrBà-¿.‚½Q-ïŽyÖ­žw[ŒÍâ«{p±©)û¨´Þ†^¦Š<ï¯È5Ä5íÍ£æO9~UŒ«gEίÙu˜ãRÑÕr¯{ã°&ÖØXïEÓÔ_Áœ:à‡³ñœF©Y°}ªàž}±wŠwjƒÿ4þJ+ê‰ôÆh¨‚È‹¸¢'ðõcÓ’uÛ‡¯ØAM¬éö6ÙÕ²Cíãf›l±KÝ:wWPÁ[!]czÛµ@ͶrÒìô.ûI‘I^1Þyœ™$¥EŸ¬üj=fÆ]­CO³ŠÐƒß2Ó£'Z¸Ÿ¶ë}æ õ×6Ú¯‚½ÁÀÏ^àW»¿ìRÕÌvS]$æøÕ§fäÙ©nˆ< Sì ×)û æÐ4yØ~F}ÍÆÜ.Å^OÜq OåâéÉ ðj‚jl`.j­²-<¨´ü(hnÿƿښ#À«Dñ‚ ¼Úéþ±Uƒß¾âšº¡n9®ÿÐÿöàÏžz§·™Ÿüû`æS3u3X«ž°f`wîI~¥ê(w¢×³em U6kaúпÔ¨Öˆ©ç†›Á¯öFú’cL5Ëݧ›‚Yò^¤O¤7Oâªa]¨¿=Œ¥êŒN'·)uWBÂ*85ÁY/2¯*¬ºœEdL‰Æ$’'”fäBxž—þ#5 ™‘œIìêË=6‘‘åY¯°íµrÑ êð>™ŒÄ õúJUÄÒ;^dB%,= ,Œž&1[µ´ +Ö2'†Ï-@Û›²´es¢>û"FßÇ‘_•¡V,s¥Ëðê’´I“xЍ6ZkVc˜A )ÄhL7mÉúj˜:àW-‰?‹Œ“ëÀ}ÓG©;€6×ý¦®x²]Ô¯ÕÖüŠþ ñ§z¶œ47aÞå5SYr‰á3Ñç/qïÐøR+me³ ÷ÀžÒçÖƒµ÷‚î)½[¼ä/ØX$#€EŠQ/ºkKãªJsÉg½T_:û6 ÚõCå¯,ðJc½V‘GÈlôÝ"ôÔFÓ+®ŸÑØâÃàÞû1+*cŽ|fêËäuåà²÷-ð  ÖF?ù+rVA#ðÄÛ½e·”ÇlM;z¯³JÑHfœlÇý¯–¡õS™£ñí5e7kxuÂ,îŽùÞƒQ €< XõéqàÕÓr w|ÔÜ ¼jlØÍx»"©½þЧY»3Á.Þ0ÅþR¬ƒ?pçaèÉ^›V`¬·àgõY/õ1X´úw; ÝZÚƒÕ‚U=z¼ÙsæFV·ø”52‹ÍèÈÁ;xuÒô´âzØAö€Y"›mW÷¤Ûd{]dxÌ»üª5p|‰÷›Ÿ™ëSÝr¼”—ÑŽX+k€Wµ­,ÀÚÌV¾S‘5´Ïàma»Á¼M+ΚÝÁûC°;Ð(eµϸßíæ+sÉÝìÒb6ºWLDîvÜ*;ÞÝÛ{ìÁáîŒ}[òÍð«/ƒ'ÀVTŸa‹Ôòú 7nb\Ûè䟇§Œ rMd½Åx›9X)SÍ{A®ýoÔ öà¶œkâfbD¾·e܃îªm™qÚ¾ {°“[F~õ±-ëþö4x«ù xÕ9vz>˜(ªCQÀHPÕlˆ¹ºsà²D\¨Ì¨’n\i…Ø¥TGmµÕf-øÕæÃÜ{ð×€ósù&2 2ŠŸµæËB|«sò4‚þÿêôu7çè‡OÅ̹;e#ú§Ë˜P›/žVSžª¥>¤ª´5‹¥f´Êi2ý³¥y­ž»õ¢ ˜ÌòÆ‹Æ2ò¼ïK?wg•Àø¨°’ôÿ©èåÓcž`ÂÊ]êo¥=˜Å1gÈŒÆ_i|{cò:å­{ÏøÊøS†U:ZQñÿb±B¥¿dò¹dz½ãÌQÌíå˜ÿÊü´ÌtæN—ÀˆW“+ÑZ„Ã1‡.ѵ Š%{MÖÒºÕt‘õ̯e~ÁwºÛšYé@ÛµÔ\ªNß`]Ì¡ÓQ}­;pÏÎ2ˆvê=جP~ÛÖ| ç±îÔ·×Íëç•ô¥¯šôöÒD™åå,Pf¥hïýezú˜êžjJ_4ýˆŸ"Órƒ<ë•ñÿæsŸÁš%K1wbüÕŸ4Ž~á|´~3¬ÕUŸ¼j,ÏbFÔ0ÕåBð øU6ûÊ#óÐ75+½çä%©‰¹ò7V†Fí©BFGÜ‹÷ϦE¼x5×küÕdS xÕ‰¬fsyÖ`P•¨zÌŠí‰ó^‘ËøéI3‡z}GìÝZe@ªRY#\o·e½7MóµJêܧ1õÛgRp4zì „Ö§o†²¨Õ<,Q:cžèùËã·6@Ïñ-õ”ŽŽx¶¯½#hœì˧ ðêˆÙ+í÷»'(ëÍ–Ñ1Sìý®ƒÓ¸ÿ;¼?|/²Ükˆ¶ƒ¿IUQ¥ÀqX_ªß^„Ÿ®¡þU#ôY ð«¡ôå5Ã݇b]o7Oc©?~ìAc··‚Óq¯ÛÓîO´÷œùÛMq¿ºSN+º.^i<Ã`؃7Û%v´{Ⱦ'ÕÌòœ½<=¤0j§äz½ðä9XuY&œû#y¨ :Ã0ΪÕ ×c|? ’ìuŒJ7óˆûÁ¦»b7 =ò“­àº¿Yßù´=ïj±–£ ×ý/lšûÍËeýÁ?ýåŒg(d»IÂŽUŠË]Ñ ­Þ• ¶ñ2”Ù/ª/ÚƒõèÕ¯2wžÂ¸ƒe°ªOEFó¯Ý|×’ZóÌ»‘vôÃk BœÜo•¤ÿªlï äNZY)VBµ¼º÷_M+Ö‚Hdü@)¢•Z]!Î(²©2G óþ ‰™L¤¬E}†°¾sâQiæÐTd|yQyr®°Né¨RB)þI˰cA«š0¯0Ÿ1îaÌU#£ñíydlq´ Xß9™­é`¢µÓɯÊ2Ç9ƒ «î’@V­ŽgüEXi5ãy0åVF¾¶Àû«§8ߨëçOŒ½¾Ý æ,PçS£˜ð_̾°S—ÛQrd¡(K¬K%~ò’˜˜òÒŽm^É–äZe÷f‘öÀBó§éÄø+­+ðçꀵ0/ÊOf$¹ÙP¯º÷lõô­7˜bÈ|çóŽœ>ÜÏ8«ßL»Éót®š^àWyŒ)-/yª¬íÞÜ7^‡ŽvÜ…™< s\°´ÊÅ)ð­Rü)0ö4£pkÊ¥à'ïV„˜lzÉœ`+ÈÊ,ïI¬¡|ÖÕºÅL^¢=Zo~+¬õXŽÅŒLgvààW]e'•Ä»³r¦^]‹ñ„Zß¾ðê„ùCŽÊçûçÌÂÈ9[Áî·;Ðãå%xõDW3ÚVöΛ&À«Úê ÝÆ{jfÜt<§kblŸO€^“ß¾Òèy×`“/ð4ͦӪ}]ÌÛæVRo{ðû ½3¨ŽžocK¹ŽvˆÝgöË.ØDÍcÖ©^gi³ÒîtÍ]c´a©÷§ÿ¾¿Èk‚ïÂ:†½?«jzq¸qEôÈv`d½ÞðÕ&ìŒ^xo6+þô½žà­ ö[ÏnnCõuÚ—Ü7ö.0“oÜL÷•ûØ=e~6w¹nn®½Ù’Ã2Ê.gþà›’cÆÉSörðÚ¬Vé^Iñ†a\f²`S5¦âPüäV?Òº<‡°·¶c.ôl؃åì¿x£vf'øUWÕiDØw6Çírç¬ê‰´Ÿ9=åX»âbc€WÚw;À¯–{ÏY#½óYíßLÆÕÝaT30¦W°C¨NJu£YáÃhiN¸Fتo +Í{&2˜Þðix‹).ÌõX`LÐ1Ò–š˜=Ëq‡Pk¥ö¸ ÌNÑœ«Ÿ#•H¿åxƒ´h.r¶/»/íì4_aõ^q'W1°Û¹åö&àÕ1¹üjøÕ9©`ÆÊ!{1ГFÍ Ø*Ù^¬¾)Fk-fÞ@Uôx3ê!«–ꋦª¡ªs½T´?áªÖ@Šë6Ãå9­:{ŸöºKVûó”}ÏÕij—bퟳñîgO5W¹Ýk‡U®1 ›0öY˜§ÙÀÆöÀÆúšF¯ÿ³™°½úðÐwZk¢)ÞQÏÖ±Ò¼7"ÃhSÝjî*·§Õ3Ï|éé@ÆSvÇ*hmSÕ´ÎáÉœžd¼Äs½2øt#æM‹h$B,yJµ_∩´ã¢êSê/¢*…˜Sõ¾“‰Z¤l40›,,–Ñ9äj%xU™¨:ir4"í*AE™°^ji¥oCžW¹ÏqDÁPݦ[Ð0mQ36ßHd%£jx¶#gËd¬Gèï*ËŠö ô¡•"6ëõ7-­Âh&Pi¢µÑ½¦Š)#/ãßqŒ¿úÁ¼g¾¦•ùúðIÓO¿÷›òµÙN=„ÖÆJ1ýíªý´æ)Bðª‘Ô Ïpµ™@ý4åÆã`Éuc]‰$ìÏ÷š#Œ¿*ùþš\7c¹üÇkê]‘=<û;mºHð+Í*øX.™‡±¿ê‰g éï0Ùue˜ÙËý³‹‘½=1sKˆz5ÒW3ÐÆ}@øøS“çƒ=©ÂÙœuVUÛäã{ =šï|Kä‚­b´÷à s¥«çþòuÛí@´fþíxÿïñ}µ;ãÝ4pîT׿ú¿¹‘ñí«ñF=ð¼TéÎhÑ X‚Z©þ-ê_eªªxä÷`’]ÔÆoºÚ¿ì(;ÁgÝi¸¤˜UA¶·JzÄTµËÀ¯šÉ“æ¯Dä ¡§Õö&˜å’+SXµÐ,ÁøU~î þ‚ê_µÕÙ O팕õ4ØCs?•?´6Öš`øÕ¦àFàÕ0÷øÕu»³ëš›êþq;­ò³öà{£)Êp{·íïNØw¤:Æô>ûE ” m‘ôNØøªê«µsñ/Õ«P}ÑŠŒßxüª+µÎ4oö;Žãaw ö`7ˆvÖ–sûÜgV½óÛWñÓ^n>ó/Ùˆs¾jÈÜc~÷Wyݸî{`½¤He\]žñW ÑÆú˜ÅwiEkêŠd°úF+æºh©Á)Ü×›•Þ½À+õ[O3k]gט|i•ù:’éÍ öd%ú3‘¹5=±ËdÓ׋{z’M¿n1Æò k6$Gs›ÿ¿þg=ÝñÌÓ)dq#¨ÊÛ¤3?6‡qPê›ïõ±k½ ­ÙƦ–aäBiªæ•‹úºSˆk©ü;†Ì¨(¥(Ì%tôÿg›POFõØËÝJ‘kÕ&æi>`k¢b"cª3¦"–¼.›ñh%LX,–'vñôµåÑ»]ŠüVó;«bÏgžrVF¶¼‡^W?á`ÎŒo/‰õ5+«èÆ5¿š]ŒmheDô|0‘¾¯LmiLÛ³xY©D„žïz[³2;ãúŽàWêÜ9 JTj¿76ïÊ߸âìÓ^+ï3Ùçé‰ë#¦µ´ö¬h^Ôyy_ãáY—§’t÷›|O1<\ë{¯@´O†É^²ÿÏ…×™5æNàU«•/Ç,ƒ¹\ã¹h¥z …FϨÚÊ1¼o Ó@.ßzß3¿c¹üJUvÚÁº:¼Ú#å€.¿a…ŒÈd½‰>@Á{ÑÃÌ£Ó*CšÏ¼-nÇ|œ6øÓ$ª'S“öBsÖ1ïˆu\Â;&ç±Ê_6ó"ŸÛö˜ÝŠûÕJ®¶»æiÍ"{ƒ\0]ü%ô·7º ßlNÏ÷M¸_-ÌêA¸Ó'X£#°gŽÆ;ôÄ“º¡wºFgEß·7¯ÀRÓ¨ƒºf|äÏ ]4AO¶µ¾jo¶šu²Ã¶p•a–ñÚÉȘX{‡kë4.m.ð꼿ثFµøÛ¤@nâ9UÌž£xF`’FJ´Ç,nüéΟ©=8³j3ýý[1%Øe#öÞ`ØFO÷®=ã¾³sÍWæ{7ÎIÌ îYìcw#×À.É»üê¤}6ØXÙc? ÔÖýyŒz}êoo¯q¨ôô«¢wkæ;g¢—:³^ªæjü… ²½†–·2Çœª¶·p³$m ìÁ¯lKÜñQû´« Yˆûœ‡=¸_sØ7üÃÓÚí…èÝÍê[Äd3Kb1p¤&æ­ÖÉùGó`á¤^¾ä>ªÑÜRã‹V™eÀ«AÄ“æN cCÚZ·›W#©‘žäGÕèo¯FÜ(L¤\OÝZ`Ì¢©ãý=µ’¢>÷dr³ÒŒhH$×ÊalC=ÕeІlž-juÄʯ2£J ¹h[~4;9 3&¬LŸÈH÷0>ŒõJ!Ó‰eÔ|½<‰Q}R4ß9Õ¡c¨2ùN¡zDàK*ñ*Ÿg›¡¯,Ÿþö,Ft¥R-5¼.mXË"™þü2\Ë£­9›øP £1—ÙPñ›®[?Öààá™ že}œ#¦¼”—5´¿:ƒ_i.º~®fâ$]šK_ÜU“,ÉÙ–`=d-ê$0‚¿ß®üg‡²%̃°ŽáÇøî0Úãg¼¡Þ¯²‡ñ ‚_Mõ˜ƒóŽ|5²›ç€ÙÒÎÜyšŸYØëWÅÕ‘òœWÂÿ…#°J«ÃÉjFŸ7a-Q=….¬Þg?ˆ]¶®øÂt’ã˜ó•Mžœ¾^iUÜI¦·4 fbε1éò(ìÁ¥ í²Û±Ï¿€~̦"ïJØ ™çn@¾8¹÷Ô:›sM ÙÆÚZ]€/ýñÌ.¬Ë£ÞþbÖîEöÙsÁKh}?¼Å}’é Âó—¡òq7U‡¨Î󺉬ö¡x¥ùƒMé“fÞ Š€Wµ—œjñµt3p—ó6ÛÝ~ÕxpÀ>ï¯îÄ÷/ûŸÃt¾f"î0×ýõ^WÆ.uÇ8'°ÞD&öˆŽ¼w1}S]ѷøƫb~Tÿ{ sn†Q­Ñfµw"2’g] Ì^7µ¤–ñ"ó\¤°#s¥m@­sx óGÑsð­pI™æ}¬6±žýÓÆ¼!ÿb®©'ï)¯£÷ëM$`§ì#ã¼4ž ž•OŒÚ.ÚÿEÒÚÂäyT§–Þ~à²þÅyÊKˆæã¬„}t3øUYª¯ªNÀZ® ô¸m؆Õĺ?oËÚ•åRð…÷Ú¡ó8ðj.æd´ã„w&j~U3ö V‰ˆ~Ó,ºtÆç,^Ý„^Ì6ћ媷·ÄŸ>Qý+UOªMÄìõœâ=&Ÿ‘i}œ|؃;±'”“zØëÿõ†ã»Kí4ù¯éî/Æ:øï1–Õ šáÓð©.fîH¬cæ}ðÆÑx·¡x‡vTD.)}á’‰7€?g¾TϤVŒü ·[‚ºØ+ÚÛìp;öà=²Ávqº]A¾·YnŒù+Ø@û)s³÷£ÿ ðª.ãëÇHöõÆidùý¬É¾-Ôˆý*Àê F+­kn÷³F+(n1EzãÉSƒ{ì¯Áö`:p¬;G=™yÀÑ¿˜s½Ô]å:¹Õv‚ eŠ]¼: {°ÀÌ‚µúðêVV_Ü ¼@åýNÔ“iB…ëY蛘Y2šÙäðóé£iæbÐÔ^Fï73§Ý¶¬kææ‚‹]´in·ûÞ*=iŸEk{¸å¸ÏçþÖ:{°,øW#¸œ*–÷Ã8'Fýíƒñ­a[³x1îû+F!‘^‡<»R M}º]Á-Õ"ZcîòF†ÓÖši6¹~® ×áJóZ$!ÒžéÚÆa¦æRðNƒ©§§ž†æ` Ùä95Я ·Sè—N¡rÕéOaaiúЩ­—OvEU5T´Æ0HPž<¼,1!óP³=…ߌ'v(^¥ó©ŠL:Ûã©»®[EêÆ'1w:–\2­Íøh4Dëã”bÌiÃh•Ô’ÌÇ©ÁhˆÆ‚•æGgPÉ¡” ó¹K1'HÑKóï¬W¼ª ¼]ŒžÖß4Àªûã©>ó¹à÷›Ë¸&vY7p¡A´ceY/Ú?UL_¾s%ìëÙÒ”ošc>7YR•¶çBôóQ¬2mCì#ͤ½}»ÀØ·ÀjSm«Ææñd0™í)¯²wAvxªÐsØô”~^,#O/ÉÛÀ£ˆ7U¥=ìÁrä`iÒÃÿËËíÅArÆ+ãÿIμ÷ž,Ëð¤UÌ—lƒµÓžjÇÛa•†…[„^¸dêÊCÀ×ê¸ç5ð««è;­KØSZ“5úÊTýô·W¾Šßf^ÅÈ× ÞF=çFï¿Òz©-ÑÎÃz†[ª;þ¥õ úâ~}¨/ZUkbN?n²¼gÁëáÓÜÈ׶ж[è¿Ês5ÝïžúH–Ùˆ÷¾iéߎ«¾gÆ¿ÖÜkJ}žTö „?bÎÂÒx†0^´-lÂ4éÊÚV9°ËÔR|h s¥®ù!eW51"-­sCì8{À­v¾ûÇíò¼20¦­]Cýö½f–'‘¯ý^1æÇføÕ$æ_PÿJOÖ°.Z[ÖÞû„5kÔu : å9ôV¼Çôàû;ðêVìO]Ü[öIwÍ.›ÿäns&æ÷,Þe°”6€_ ”ã2É®³7¸‡ìÇ’g¦ÊÝöBp†§&`CRxUHÔó|žœK=Øbàie´q(ëÞ‹kç5&™óA{ ïÜÞœqZ§£›ƒù}ÎVrÜð«öæiû‚«ç:¯ŠÀ¯ÎÚdøZmênó­¿ÎS.’…±ÜñÍÁ|È¢Nã|<¯)Ö¨jì]3#i»T¢²YòÍl¶;üf³Y ¼I¯ò,³Ë wm¨aµÂü7Rx¥~õ*à k¢çƒi¸Ç´M5µT9íGZuª©5#Ù”|*“(9êJ0e£Ùzey¯$2Õo/Cµ¦¤hü@YU&{.•WEªåä7eÑö*E”Ò«2ÉŠJó,?ÄÈXÆ\å≭¹Ä®b\6ñªDTÿ*1óY³·4ÏÝ2©ÎZ(–G¯Kf4ç1‡3¬—Z†˜Ï“ÊFŒiûº¡·–˜eÄæ˜ë3©[å°–JÊuÍšÁU·ÃV: KDmº'±[ÜÍxÑx¬Æ#E#p[ƒ_U¡¬æ;Ç`ÿ­C<ÏÅwËÐŒÅ<›Œ¹Ý€poà[SÃ^<F¬•jÔUÏ|"›á´tŸöjye¯§üp¿)–aÞ?ä~_É»ø÷Ñ¡¢´ñO¯Jagjïû~óq†Ë‹^iÿKž)h œñ²ýÑy¹½ÁPªó4é VÙ!`‰V¥:gjÈõªÀ׃óÞ·<å™gšK X/}1/cå€÷¢žsÐñ%ó!=ÅÙfB䟠;ðªXOš¬çúÙ °O*Å|ïî ²¼C24¦‡ÝîŠ]±<‹•ö­Ýßì5f<æd©{°²ÑÊ»¢|[¼K}ÖƒÕúΧY/µ;ÞåEô¬öÎ[ŒB(onNÚˆÝÌÂϹ7ícîªe¾3߸).6æewH½Œöà47D– v±C{™-›ìÕ@+„µÐªŒ’ãõaLEGÕ-et}MüN«0i ã!°ÂŸ÷k´(0S̹ ºý×71ÇÝ×¶¼ëêæÓ¬@{;ôáa°½6¬KØÄ|⟳‰.Þ¯ïn2—ü=žfÅWÅU[WK¤üª7«ÀªzñbŒÃÔAJ&njF¶®·ªXaÍÁÅÕRºÓÜé=j4Kyº9æÆ¸°VÂæÉHq¤×dUìãkñÌ82ÍÊ£ŸDµF/Ò.K³§c$›SÒ©”ô?xýI)dO< OÒBkP}ìäQaÄVGæE+Öe3ã9¬X–™k‰< ½ï!.%™PS&…ÈTš±^%x×tªï•$§J¡'ÝËÑV'ºecæ†ú6åééLãÏU ¿:~^"êŸß2‰§a´k9^f´ÞÄ$°«˜õÉ<ËhÊúmÊǪƒÝ~…+÷S[é#üK±ëp~¯éEnsÌä‹È.QÖÖUÍt¢ ˆ÷’àÉ^³Šcר\_©K ¼êê]‘ûX^óû{õ¯.a}727°HZúšŠž~7NÚùÿx…¬ó5X^ðÒ}ŸÚ§ËJ7Ë]hs¬ yس&1¿¾"Z³HÙ ãy»ù”ù8y˜1ùr6¸è}eT»{±é-íƒy¬(_^^mL¿ŽoÜbþì+õ_mW]ožç¯@ëµêÉÀ:‘ÝX˪1ÙŠ§iY¢ íÁêÀþ¦”÷¨|ˆ;î4·DÎÛ"{x5ÐäÀ¬{Pc%ÙrÞ‡¦³¯¾Ý¿0&£ÑÕÛ­‡•9ÿo;dÚò!˜ÅHŒÌ2-ª~c+º½îKÛRÏ>ìs`“ÝÜíhÃÇþçàW%}=3Ûh® å¹ÝíL×+Æú†Q˜E_dVQ7ÖÇQiƸ)}¹1ñQŒ“+I\šïíÜ@Î0Ïlu}]žý/2oD #}«Pdþ5š?˵ß{C6÷Ü\Üñ'Fz–¡>ÃG¬Û’BÔÉ¢W:•^íL®ÒD~«€ÞëR¬˜fBÍNµióˆ#zò׋>ùÐ?_À|ýähþ úÍC]â$²Ÿç„ÕžC+0…VcI*ÌhÅ Ëç²¼§ò«fÚ$0¶ªZV‡Ñ\êkI®šDÿUßGŇò´mÃÚÐÉÿCºžb$Ñ^Sýü•èué¯ÂqmjBíâDù=]Šöà?°–.Ó—uû–ÖÔVÞkÊI‚¬cý÷–æ|»ѽ~ž!aœ<`]I©ÉŸÏÚ9nš°{ßÚÁîÓ7Ý Ö¶ó^Ygó¶XDtÌÏú8Ê&O™>2Õ+ÉXúäU·µ®+Jÿà•úÁµ<¿"ë|–W½ß¼Ÿè¿[‹Y<»VÌl­ö9‚ú a=ú•àXý1ÔßÞëRWw¡|\÷¾¡?&JÏ@«È66¥å ï9Ù'¿t+dŠù/£GÔÒÚn6 ·UßjÚ;•꥚;W ›±KÀʨÇÊ6ÔK¨…»iÜN;sÒ¤zûå}ôý}àWX=ö´}+!Mª¸º°Gæà+ínyÇ´öÕüFýì0±îšbd¦2ÒKí†SÀ+ÕnhFòt½+pãG´3OóÏÍ;Ø!ú™çͬôYdfEþ Ù­zÄÛYöàd»Ï†=8Ä}äv_”Ûb²í*×ÔU’çÍ\ïoÿm+ëN0c/Z'w£íjÞ¼Ò*yZåû)úªú£µî<,þg±WõDÝlµ»‚©˜=ãܰ¿·ÓÍó«›êJÄ<í^2™¢õqVÙ‰n€<"Cìx£cöC)„zÀ~<–®µÖ¯†0nAóq–Py«æXKìFZ‰} ÞTç•Ö£W«ñ£ ª½ˆ«š›îð«&N‘î*>t¬*V?m_^ r+ÑGýÏÀ¯þñ´Šñ6ó«¿ÁëŒõª¶Û°Ófag*têbf²þl"ž1+d0Oü‹™£Ó…k_þÚa””ÿ¬1ë½"ƒyj7Ïlva꾿Ò\Œ”‰t&§©†µ¶>9žŽo‹jo–ǨŸ'^i èéµV<ÃK#š%D­´DúÑÃøóÔ¨oJkÙQ3!‘quL*QE­Ï¬ŸÂCssž3UÏ jÀ2« ¢ø\ßk$áÉçtÌš'¹)^‰ ‘>ìŸcæV~H£Mú…|¬ë-{Íì]’û=Ý î¿ {PO<¾’?akmmAU)òwÁ¦ÒqÿÑ´€=˜Íx†ò†W“ú ñ˜'Í 2w¼Ÿþ«ÑX;-©ï¶¿ÛIÍ„…X3Ä«ú¦’¼œõþ¥¥‹™)EfcžWAk·h=DÑ|‹OÈJ_ÇȲ‚¯Æ·§îÄ|žŒþPº÷ÚÅŠ™Ê«âŽqµT…D• 0Þ+À«JXã³"ŸÁ|Ìnļ¯*Å®Ð]òúaÞ?d_•7MS؃µM<ö>àvÝLcZ:SÐÃu°‚ǃ¹~DýövÀ¥hSGü!CšËuXØpM#VÝ1vðª¶FŠØ8×öà³KÖÚµî·.ÈóšÊø˜Nv‰ëàªÉýæ¯D$†ù8 ÍD³Uâd«Ãæ£?0ªXq'ñJu »˜Ñú¼A1Æ{˜ ,~k¶'æèâàaûS°#˜¼êã>°'ܯÀ«ÏÍîvàÕ+àW¾¬p£ÜB;Ù^·íMî û‰T2 䈽ƨZ¸ø2›¹Ìå°ïoÃ:oIÿÇ9ÓDg6E y)øÍûÝhçY¦£Ä2ž¡9Þà6ï¤ìåE?ƒeN‚••ÅüÁÁÀ«Íô uÄú5¢Q@ªþ0ÓÔ†ÙßmAõŠ\|³ñª O»óKxïËyÌëç€Wm#ûˆ]¥ ‚RÉÕqïyý1cï¶Ÿ¢Å³Àµa÷-î-ÃjhŽ»ÜBmºz¬7ñ PBë§6ú¯úbmU“žÌˆL1¯;àŸ`uiÎÑ‘ƒvqPiû·ía‡Û±÷ì± Ü›n{Pèµ’©1µíAØM-d'˜Á¿~RdŠ×˜ú¥¤¼L Väb6ÄÜkƒiŒ9Ù‚±£/c&h-™jÀ«ÑXëÌK¸¶%úg]ð ½l¿Ú{ðû”ûÓÞ…Ýð2VojÌN÷ŠÉ’»]·ÍNpÑ×aŽvÙ÷±çÝ"íWÁSÀèÖš—!u€!Åè}Õ‚X„viKçOµÒÂ`àã)æ;ÏEßßl>jÛßYÍuŸûxÕÈÍÂ\þÕæ¹ûÝ·àWmÌqû†kîF¸;0G/úŸ€_]÷T!s“ùÑ?B½>=ß]DÉg•™xò4Ì$ÍZ^Š–_ü-EH=5 º³ÞC+*rÖ 4ñ¬?X½y[äs[Ûž°ë?å¤ à#o¾5ÑVô^4m|]“¿PíJã¯Z`µÜ„ñR¥Ü‘XGÍû@Ðñ¬G?› ýpQUkà\ÓÑ<­ÕÈŒˆÄØ.v!ã¯ZÚ×Èö²ÇÁ¯µÇÜ>·)(ðVÉš˜Éö^XHÍåVÚ7ÌwV%º•°‘3ezj æÉ£Y Гjë6%Ëþ”šb½ªÕÌCŸl*ŽÂf˜ ÁÓ°W7ßGÀ|Áýe›wÍn øÕ~÷–¹nv¹n‰ênc2ÊÎÓ:jÏI ¥¸N#﵊óNð­.¸ã#öàU7#tÑϦºŸ=U*Ýj~ðx]ð”šdÒVªá¹9˜¨gª —kÀx¯1^´ 1QeC{/¼ÑѸš%Þ^ê\•†îu7ºæŒ Xf^tô"s©v¾\#ÉNza Õ€UñÑ(•Y­Òö)E|Hã“b‰•å‰3±ôcЃ¦6båhÕ$z½Ë›°º_Ök>Ñ(•ÙƒYÔuIä Mˆ)<-,OH¢e˜Nf£Ñ¯šEgJFãS‹çcÂê…©¼"™ÌaÛMÛó ØƒßËOÇë ©­gEqì¼|hNÓßžîVÙß ›Jù®/ü_¼Lâç yÊ+^é©èÝd„sÐ漢· ëX+nªbÅn¬¶ýà"™Ø±®á ǸGW“§ƒ Þ_´ §“;“ÆfË4ï59,zšþfÙà+ø< óê^ÌXåÓðw„üª¢yóªXŽÐ[Õ+»«LU'-ÆOUOfùYÎÉ'øéËÀ«Ol-{ÜâmMYú¯ÞôtÆÎ°…ÞÛæ6VɯXõ€üÑ‚.X…#q§:X'ãèç€WªÞrF¬æbW0E1/Ä›ýïÛ ÿ¿È“QåWׂ~vEP´i&ÑÁv^m–]v›éî r½†²0¦¯ÝÒ@6™UÀ«Ò‘½&xî3Z*ÈXÜgÖãfŒ_e´÷0ó›â;˜7ð–Ë_ t)ÞcxÖlÆ¡o NYkï favÿµ¯ë,À[}æ&ºÜ!÷,ÞMZ+ÞŽq#å€ ±óí8w̾+|²ì´—ƒS°Ÿ:jÝ[iäu`5gÍì»qUÑãu1{Ѝ´Þ#/:}=Ó¼¼òEõ÷Ÿ’]{·õsÀ¯¾§òö- X· ×_ö?µ¥Ý¯žžUl2_ù»£ö`/´7ü*ãÐÝÜJ»^÷ÄAإǑóè:jcú’)h0õ_©´Êl§ÿJÑbªYïF»Ö¬]|—y*Ò=Ò…žšÊ`Ћ°$ÐwÞ{kq¦=|‰jvqŒÚø”«?ŽhÚb©Ä¯ì¨š{ibeÞ'›á™[æCñ$…ñÓY¼>Ñí•¢ñWš™“FÆFÄgÑS“=I uÔãx>˜D;N-¿Â¨•˜lÂj«a=úŠDÀPßXU3h{fpÄòhOå Å…Ô#-IÏW:‘7Ô–I"‹'^”¥=˜€µv7Ö^§µ³oÇ|TÞU˜ó!ãbîŸw´WaöÝ;PO&÷°j­‡6æ VöÕÓ€Úæ7¬ùlU>v‚Z’Ï·X~>Œ;«×MãÛgÉ@öãAÌéÕ¸kÈÓ>•ËØ·ußxÂ+ç},÷zŠiO™:z†1íß`}5/‹âÛŸ¦¡¿ x¥=/Íü߈W‰àS/Âü…£¸3n LC¨êÔ=ÌШG®ú0óÛáÓíæ@´/Yß¹•éù7ÜhhŽ˜N6Îõ±ýíi³ˆð–ûÒm *xµeDÌH»ØQVv˜¹ÞßDfyͱn&˜‘RV&²^.XÃôBðT(hÍ3Ð7XPÏwÕ•“¼ˆÚ ¿[¼h»*Ј»Þ°Ÿt¿ØEèÙ÷aJÌ{îu ýF×Ý­³“€W'd¤]OÛO¤ ìÁíÔg˜‚žëbvH-ïÌ/Í3*ÑÐJ‹Uµ"£îË`†u›¿9±Õ1óÞ†=¨õqš™íàW®“›‹ùþ£ÍŸŒ¸èÍ£ö=×ÀõvëÐg—ü÷m¼ó}Úl~õwzi»tÃ{[)`fÜÖ‹WœLÆÜnl’e³J*²ævO®xõ··ÁÓõ }…Ùíí¦=˜bn3+Ý×’vÚ:ó\¤y¤ñ À8YDKN}PݱeÑ–TáïŒ!MâÌsOR‰aýåÐ/@ž•Aß}Yž‘iŒh*ùZ‚´KÑÕ‹š3a¼D^´Æ_lTÏ¡mÌtz¾Ãša!Z¥¯ÔÚ #-Éê5,QQ=b–ÞúŠÑ EÐ|ê·Ç3» U–‹4^´úí±Ìs,Ç7ˆgLE*O,ˆyŒKÅ7WS-d{«a ¦5‡»¤I[iÊ{.²——ˆp¯¦›žÔÊ{À´G:.afÒváide ÈãÿÑò¸÷¾wx®’B}ÑbÌÖµœm©uñ Ù >Ô› Ÿ™2ÀÕª ~õ¶÷#úQýð$=PE’vhÕZï,Ú«z·ŸŸn…–C “>@À{ÐÃùŒoÿ³Xóq¶ÃºŠùÝ‘ê€õÑ×yXCÅøN1ãOµ2ÃãÆóÎÈèû£fY䬵ìfìܵ¥ÐÕqç=ÍÐïn'{oQ¹ù óTãÚcvÁZŠoÖÃs4¶â3°¬ñháx?§ð,î´®8ê³J¦úK¹N UZb•Žç†5š“©œÁO©è‹|2-å,:ó¹Ócnžégàï²›P—¸ZÔ›ŸÊ3Á”hà‰Ð¸ººWh'´Vëã”™?·;°À–ªÍZÃj‰ä›®<¯SíõJTa9cþ‘Óò6VØqsS䜭fÚÕ˜G€W5ç÷Ñ*ƒ¶¾÷Šï/ƽŽçi>³ú¯jc—ž†¹]x5Ò<‹}"¸GKì9Ûð,UìËî¬Ü[¤š^ö*ðSë¶k½‰ˆÃø+­?øml'ÁÜ*[Á16¹{‚Loª,élw‚qÔ—ýf÷ï"÷xªô;»AÆHëuçâ]Âÿ“ŠÑ{ð¬f@NUÙꋟ¥šÂ&Öçi'/ ³Wƒ5Á ̺>î}ûˆûÚÞëæ¬ãc^^ýaV¸&n¹íúËCÀ«v8øÕ›˜C³å0ã¯æS¯u•äzCÐ’ÛÐçé§æ<×\õ·kOwÂÓwáMnc|û¹ ý ºïlŠkìf£.Ù îwÑvÁuÇíë°»P¿ý’ÿ‘õ\¬_+e£¹Èz^šÛ3ÆIó‡ašÊJ“±˜UmÌÛè™RŒaГîDQk ¼Ò}ppïðJ1fªY䆺æÌŒYjŽE*Gúj¯W°i #B:Ò«6_;Ü?“˜V xõž²«¸Gš UJF³þ’ˆ*ÿ[•·(ÕèÓè­²˜TúÛ è×N¦G>̆ÑHôœ¨Ni=^ÉQOYº ë¦&š°W[Ç3þœ¨Ï*™ž©2Q{0Œg±«*uwô^YŒ¦Îà}*àSÖžˆgÞaz”_¥1§0…÷N£×?•ö`cì»k`_$2›³vÃb~£ ,’kQ{pö¿€Aö4«_ö¤ÕA @’eíÔfæ*þ*W¬d¾ºÔ!–ÖŽåH÷”Û°fb¼hõÚPÿ*•qàë1ïU¯¦½ùLD&r9äU÷.¯ôMU{y¸÷±î+ù «ã%ÑýÛÔñ÷™O=ƒ%¥µñ3™+4NÎxiþŒïÚ†6ö’eèæ°¦;n Žz&lÁÝà^Z'ý.óž©.¹G7—ƒ¯½Ÿè¿Õô•ªÁ,j‘ÿjV{oÊS¢ZXOc…Lgj{3Ȱ ó8—©ËñN·ò,l7pÄÊ6Œ“Æà¨M¨Ù¯ 0^šÅV••̯^’ñÔ'ÌÌȶ†=b7`¥çÓõ§×o7ÝÖ^ ðUãé|<_w^­¢ ¶N-Æ <‰}2°¬ >ßÕ× ¨W Ѷ<üy ?ëÌzôjýÖ4c"ÿÀÜ41{MO¸Æv¼}xµöà}nGPÞk*sc†Ú}®•k€6ܼúÓ_áÕF+Ƙ ’%C±bnaäÓ>zÄeTMs¬¸Ž˜ }ÐÝñ†ÏQ#q?þžn4£wCðˆý-ØÜŒ÷éï^´§Ý7v>Þêk7Àù1Ϲ׌'«a“m²ã\oàÕD;Çuašérö೘)š¹SÊxÃÁjn¿²±æ›i¥Úg4Gr_´ú~¼Ñ  Çds6(´W¨‡|Ä©¶U+§5/ÚÊn§»`; ]Çì3Œ‡Ùÿ©×”ôUÿj§ùÁßêµ#÷ÖH»’`ùõ€ˆCÐÒ™Ô·NŨ·Æ6–1ªÀ¡qíºî4§¶+ðJí¤Õf#øUâÕ<³Ø ƒªy‹̹H^¤ 3j”_-¢²z•T¯/ÌqÎÃØÈŠ7iاn¼iJ5a÷´hþ`ˆ]ÙÔµIÖõ«J '¬å§'YÑ8Оÿ«=‘INz»Ua">»•ÂŒè0ç¦4£UÓLXMZíÞdÆ,•¢w*™ú¢zÞ Â襣|O#1›š°æ©VÎb”kÏ«òùž ÿËŒ¡UJßy¨ëž‡Ãè…ñ¢Ô¾Ã ÓÊy嘓*?3¼Æâ7ŒÅúÒµÄjÓ]ôô!SC2ä ssš˜wñäÎŒv¿“JÔ“Ñz=_ã_Õ‰có0›ṆÆ}•—ް)´ *ó­´ ™_$"CxpÒå} ¼Òøþ€<ÕÉø™ùÎ/ÒO#Uý&ÕÓ^iäû~ñ³?øU¾Ÿ(jm߇55LVàž0ú´ío²mÙ„õ]ð=åôKðõ¹àsïFkÏ0 ¥s0›ê/˜EÞóXCª¯ð,VÈXóë¥ÆÜ\ÎxWÍAYž§u¤+š=¸âoÜ¿ æV̲®¬˜¦y@Í0#ªò''M ï?ò ÖÑ‹f>õú·ªp“/Õ]=÷›7 {ȶ¥÷šã/ÄØüÈlÁÙ´2ÚÓ® ö ñ ªÌ9ÈU 4ÞÈjÒÐgÝ0 ±^Åwºe}D¥¹ÆàWƱۀW÷™n6Ñ5°7Ù‡ÍnÙkXÎö ׫.wÆÜjwƒ_µ“{ÌzïWð«%<cI¶Œc–lôàaŒ|[à^ ̼&´{_¥â@¬±gÐO]¥ªë9fgð¸½l¥¾èp÷²}Î]µêoøÂÍt%c^u¯šLYé:ºÍv¼оÖz^£À¯ÞB¯/¿ú*8ÁØfµyƒñ´Ñåð³æÔZœB{X×ä¼Óá[Õ}=È¿ªÕo/ãŠÝBêÉä¹{Ýe«¸OÛ×XpçœÿžuÎøϰÍ\ó·yÝxÎßËlÅøñl^O4nã C2fØxØê“‰2¬6ŒgXµ1R/êßXmv1PYÈL³ÊMpm0TûýD¤[¤=LU áÆ0(j¼ªLœ)ƒþ”*›¥XUଔҴ8 ËD­·xêÈÄÒ–T{Yr’,Z\ÉŒ¡JãéK&sÓÕ+Cæ’ÄL¿Þ=žQé©ô&‡¾©0²3Þ³LÆh•àù`EÖ¤(ɳºTªVàýC®U1ÇåñЀ«=žö`yF¨—`|{bQ jׄ:6Žè›Ñ(ÍýtúÃ[ ÿ—Qÿ*‰ÞDÍTÑ·¬mbå45v0®›ÿ€3iÔØôÛæ }ìGM±|kޱ&`kð“zÅ4ýn3XMúþ™G\‰X:wß«»Úšti ›B{úVöjŒšjjµßx;5E½ÑÞDzÍS̼×T“†^IÑ9pU>€]ù<ãêKK¯)M{°¤4ó¯x¹< ~UÅÿ‡;Æ}hÁM¢g ƒ±ffa´k`àw«Xp‘yöàøY ÓDþ\ò~f,Öx`së`¦ÑJÂ12Å;-‡EÏû¾Î^•aÖ¯æT®f KX r+ú£>,ÄÑ&Wö°DW‹ì&–ŸÒÈÙ’ùžÍå õÛC­¿ôS¥1^«µ°ÂÚ͉¬¦þsÇ­2d0%ÉbªÒã£oѤFŸ¥1"yQýõ¶—§ýÏÓƒ$f§Äó¹ø>‰X_+À¯¦¥+“_Õç»UCïüg¸óï3`–âÕIôá6¬áLò¢z’,»™£× sNÏÕŽÓ¬‘ìh=ú<¬ì,©Lô_ˆ½ðcáâ0î"¥?O-÷aÄÖá·aÕ¯ÄÊ ìé‡Á¯~¿R^zÀÔ–É^ùÒ—ò°òŒh‹2¤Ø¿ßdxznáI?ð³©):’õ&|ê nÁL KÑý°‚æc”&Ò—RÁn¤Nñ|ðÃêrר>Ã{ÁEï7Ö ¹Ñ –®*Q6­ôž‘ ¢yKÁœlÞ`æü(Üqñª"fÕàæÌ×z¸÷H|Þ†6uÓáªÖÈQoªCÔÂ]Ok/ʇxê3+ò»mh¿~Uèj¹¼1X·ÿ?ª¾L«êûúìó¾÷œa:†)b¨º»»[Ä”•î¤$AE±»»[QQAôg bñ_{ÝW¿ç{x”aæ{O®³ö>{¯íâì+æêÈ|<ã´cÎ¥ƒI-ªýÚeú-þk؃íÌÃîß ¬gžõaäëÑëýàjówä€Õz©u0®aýA¦×üÁ9¬ÔFÕ€sê]]!}•ýè«©ƒ¹T=ä$ò«Evkt÷Ñ ³Ñ_ãÛ2g¥ù":x¥>zô·×ŽíSÕà/ÏÝ[€·|IË,…j^¯1N2Ì–)‹e(ËÏ•¥¿H÷dýTiŒ¿Ê¢ïHí¯úÌL#oêËYõuáç5ø®2Œ‹ yQ2£JsÈ6RbÚ2É&TP¨Àº„IŒœJ§v_RLm]ã¯oþåWúµFy„šy¶äñkÍa«F>V&¦ƒú¯>C…Ø“‰ÿÖ¡nŽóQãE+ðéÁ\[Ó¯^lâßzôs±Ê?0¿’/=‚•©÷‚Ê[™–ò§9Áœ—¶8K±õm5ÀŠßžˆ=ÚÔ”°²Ðu8UîÅŒhÄY+ÌKWéË8ÕÛÁ§6aÆCÝøŸå;ìå€wÛIöWÙn“óPS†Ù²¢•ÍNË“xÎ;Âû© ¼Ê±z·ø«éùk~%šAò¤­±¢8¶+b¢,¢²v œu£± `§åƒí­Á>Ë£F÷‹à4÷SÕ§‘¼¼úší×á7{Ó°6[˜Ì6{R¶Hkì÷ð—_©ÚÓH Ñ*à^1#ü–À.›…1¨¼¯ÑDXiZ/¥F®öVmÆÒ4§§B¹VõqJ`9Í‹žsÝ3nÖxžÔöü¶Æt­ë-¯šñ‘ë0:ÿ0¯çFì›æ@¯k°?uN×;÷NÄW­Ñ¿5À&U lH»êɼ¦Ø¨õ)ël¶3×FãÝ·#¨ Ìîì~víð¯Ãæ.Ùìùœ¸5A3[*·Æõgþ`;YgöÛï".ºÔjÍëQf«T)èãX³ËÍvÆõïÁHÔ¤®ØTªcµ¿£³ óu)½J»‚GÝ/Áöà2ìûÉàWOû¿Öÿö`¥¸‡üK8éúѰU¯ï€Lt7¹1þ¤ûDò€PÏ€›=ofbuö2+¤Äa.Rg¬y­?¨gõdp¬Éø»F¡;°xÐb:-×·ƒÎb%¶7Wi¾¦_ŒVÿF¼Rýöæ¤{6øTZúYäØŒÚèÇ^ã£Gl7ÞÑ Åi]Fêð^­/zv õúÒŒž%i2Š™yù˜Í–1-¸zTV¼–Ü`5ðêVÖóJÁžºÝ_ê{О»Å¼]G=™dê ¬@RéÏéƒó'Ÿü¥*F÷[êkÞÜ °€æÌM c¢B»)ÔjOýnãBm™ºD‡ ¢V]Ƥwu Í˜J¼©È»¿âI10…8‘Mö¯²hþD4ͧG;¬}XËd0þ*#öýxÞQV'KJ ǪΛ¶Pc¾?•L½©:Œ-Ã{ɼ˜¿ý_Õødö+ƒý*gBݪØiÓ˜S çô$̉ÞM¨ªÊÏ´ÝÊÀ^<‹uþ+ï–lfüU¸~I–ƒÔ“éd>ÆNêÃx†Úæ‚©.íMXwãK“+øæiøó ž¯w½°»†Èr½ÃØãk±Çõ´hfþ–D ó°·Ùd«UާZñýl ã(>ƒÅxмÇ6Iqd«)°Ú'í"ÚŠô§Gl•ˆã×Á!GÊ*ôùjÖòîÑ[µJxêZüLmo"×ôE—ÊGÁiû­ŠëÌuÒ+¸{¯­I‘öyÙ+-0Þ•7/0Ï|Æm V™fš÷6þ\ÖÏl‡ý[{½{GïóúS_TñªV[uª|?„¶ ¼Òøöѯ\]÷¸Û¦ô¨ÏpÞŽÁ ÝæF€QŽŒÜ‚]à¥)Þ;3–ï<Óh%žFhÁdskx_+³¬ÄL ÄW¡¯šy¯öàÖ|¿™ƒy½>q×¹A)¤³;ïºKÝæ°lr—ø–q+‚jv­LŠkænãP~u§ý!r!2Ïj$†Æ_Õ‘+0‚š»À¥’Ðj Aó:áŒêF~¥þöŒ¿zs¯9…‚û]àÖSð{=Wù³n¾ùÌœõ³|vÜýþ¬µe¾¯¿ÝMð£Á¯.uóÝpû@ªš¥²Û}¨'®-ú¶^Ší`Œã\¼KsZšaO—`<š¡§ÅÔèŠuZ¥6â4óJPè~0ŠW‡üiWÖ7÷sЀ\Ûüÿ\{ÌÅI؃Mý(?mÿx•â·50ë€W;mZFÝÑ—¨TÃó8ÖÓÑ‚bÆBw6g0¡ÿ¶ël0Ïë:h…V˜Õ,™Eæ»!:–÷ôS`N÷]éo_lÞˆ^F{0¿ûzT‹‘9˜ÃÁ¬æ§þ¥Žæ=ú»Õ'6Ë<Å:ì)1ΔÁ¯Êk2ˆ^jÿhd¶Æ|æi¥Æò•‹Xû9“øÕ‹¹{IŒ<Ðhœ²Ä«œr…hÖØJ4¡v{˜±úÛè‹TâiY£zÚrXs'¬)_ºîaFNUŒI9F6TDÛ‹è[S½>õN(®ÆÑÞ®‹-ÇȆ0§,q.ôúƒ5¦9Šjõ0Ó¨ÑÏ(ïϱÇ/jå}¬£$æ;×éOŒ:nJä¢y_·ƒmT?Vß¹vi]iNü,2çÀðk²‹qÓÈ.´y¨ùÓô±¹}Ì;^ε2¿‹êéß#v‹ý]î´Šï‡ÀØšÛ8QnøµVôX¬–nTzØ«zzåñÝ·LÙOí¢jòXð­ý‹Õ˜¯43d@pЧ ðêû„,âþœÖí«´Å5npþh,^Oôò"½HZ§` øßFŒM7¬ó&XU©KS›yŒµ°î´ºvº}W^ÀÚzÜ,~ïê»ÇÜ.ÌJ©ÔÁÞ‰F.Ájo満ëŽ,ÄÈ^Àø NõÆ3ú˜›Œr®¦͹‘ïǨî½?Õ “ÊÒ‘H*ãœX¶ó´ùë^ë½^½Ls»‚ƘͮīËÜÝf—ìt­}ã¸õAmÛRÆÇ•¸…¬³Ñì²6ú¿ÈJàUs üX©D}†)XãËñ„jhË!ƃª^_3Œ‹òº¡¼—ÐÜ€}àYªÔœoæÜÁj؃›M?ÿª»Ïé¦Á’=ëç{÷ˆ£¿Â·ñÝå¬?8üj¢?L¼š-wº3*=´Cß¶Hm;ˆjê+»‰hYì¹5~®Š:rc$Zb¦šãÞ j¹3væ(ð)Ëwö³ñ”s®œ?ê^µ2ÜK`“êo¯i>¼ç½TÁh­3Éѽ¶#º»¡Ý)Rþ«ÁÜ/¥àZZã`¸Çø£Zô_u£'¦P­fI#¿—™%Ä+Ýw³ÌJ•ïDötƒy6Ú&Ú—‘Z«eE,^1=ˬY¿i@ÃY¬çF‰f—…x•Îz†‰ŒÉLÅ«+Ÿ kL¤Õ¥ÒA9F*t‰Õ"Læ]E"ibÌ?_Ž éd[¡FM}ß¡¾hãÌRÈ”c*_`öOEFz†1íÕY—'‘è[€‘*OÿUæ#‡qªe¨~[HçxªÜäÑ”DŒJä§C{.‘YóbãÏ<ò8R%Í4ÆPEEgW±q©ùмi~ û{ùÎ=éºÛt:Hm™.ækŒcObT Ö_5iD®„’µ¦–îLœF'1»ê+ë˦Œ§×o/vØ Ì¸z›š¿äœÈê3?j/±Ë«ã´ßJOp=7NƒmÜiÞÅâ ÒÎàSºoÕÃ|µÛëôWëÑ7òñýbóøU¢" ¾ÖüÙb;1[¦7z/ªäXV݃õ¼Ôb¸ ³ù5ëf–å†ö&þh}œXsjA­1‹í‘è8ƫϿšê—V˜Ç¢Í€Wºn«,&ê(kéƒß®BÔ¨<ü¸ê‹Î/omB­„ÄØ­[çžÇ[ÃTzÔ«š°’|Õ^Ê™°VW-Fzª¦û½ñ.‰ñ µþó)U"¢…vY¹ØÝcÙX\W&cDË0ç0Ãü«”\9ÏÂx†PŸáÿÅBÄñ,oSïS®X‰Z¦é&'ÊÇøUvÌÖÔ{„ ôW•aËËÅnFã1ª›G7ó^£Pgñ*ùÎ_±ö–ú¯þÃÿ‰¿}7F½é.Š~M;É–{WÐöT)Vi:Ï”‹°&Ûðùß^Cj1Og.vø]Ô“IÀL8»/þöÛ𬥼å¨o~•ïñ½ xÒζÀ,‹gèg­(;>+ ž#ª,5"ëÁ¯”É:éùÞ†ùÎ#åq[x¥#ºü±‹¨l(µÿ¯`>‹Æüî–mbÕÈÕæuàÔýT½¨''‚ìoX“ÍðÉ™rE UíšÁ®ÝhÏËÑ|–ÿ¡½c`æ¡Ïc™£´Ž§Wgð'S©ß¾S3Ùd/¾§Ñ-iõ`”POà™¢a´ ÞÞ#/á_'Í,؃Eî!·í,‘_öˆÆ$.wË€Wý"s± â¤>¾3ÏjB]‘0b%hÉ$ð›S8Ç'`_ŠÞ¨r/S^†2ÿ"üæz ßËæ}F46—GãÜD·2¨œëä~wmÝàÕ^Ùá:ÁÜTµãeI\Cwƒoí[ƒw°ßEþY@½¾ °‘+€_ÕÅ[+£¿ûðÄVf~RD~Õ–K/ÖÇiÖ§~þ Ôëë‡ïm vºŸƒÑf¬É=è¿qš[ð??‘ñ ß¾˜±Â]åGÉ]r™›î.ó¸÷qæ-”Ãîtð1©»Y"5í(̧ޅdá´kGîàÑDúhú °cцéŒ*}=¨ì~gÎæ^ÿ½Kõ©×wÞUñ;ýONý}'Ý«`“Cý<¬S‘O\2ðJ³€·›?#{mOÞ«õ`±¡Éĩߜè¹»SeOâ ÓG÷›6RFvÑßÞ xÕ0¦‡\‚3¢¡4cÜE5œ:µ¤*ûy#Öì;Å·~`σe0µ§µþà`ŠâR sFÎbw똿eRÍ^Îjƒ°Š2Û©.F¤-Сó2ŸR=™6-ÕI~=hæ.òæîpº^ë4j¦‘…)êO¼$òœ|jè%ñ3¹Ä»ú«Â›º4þ$•Š0©T×Ó¬ÄTüVF­ŠïT™ +܇õš«üW±9ù¿üAµ$;㙕‰]y¦:ï4Ã{ê—¦²þ×H¬yó]à ZùAǤ½1ö̶ñ„½Ú~#Û¬¢úap…N6Ô³úNž›xžq¡5¥$²x¥·ñÒ6r†þöd3”ñWN”SnCÈ2Õf8Í”…tÃøeõ¶bßôAËçÂâ­.¤÷¥òRpØXÂ:›c%»«9Æ"[æÚS²I´¾Ì—À«KÍ»˜ý¬|¾ v Æ6´Â»¼Œƒ©Œñ™ÔWiõšk­¼Õœ¨¥±õn‡ÍEù–þöåfnôcWß=îÖj àUcÆÄH-u?ËËæ Öwþo€éIM­k€¾µ˜W0×/ZÝã; mëŽg÷ÃÎ@/q%óvtœÊ¯ÏTCõàÕ•n]Ð3Ú;Sñê ΀Ín¦Ô/ ªÛÛeFÜnìÁÆrÌl³ Ñ„èZÛH1Éô“JŒ¿º=Z¬¹R×h™FÒÖÓøo¯Âì´c@Ô^Ø©£­ªå´*¸xµ#ºÂôöϺ§üÏn±yÛüë(5îð«o±“Çúu¬G¿•õÇûãîpôÙÌw~{}âV)µ:Κ_U€ÜŠz>šé©xU oë‚ÓQU¹fÕÞjº ÔðyïÌÒø«\¾ßçÏ:¯î؃úýšæ“Èû.É ãÛ7šß#‡l/æ÷¥¿=o©Äz³©¼¨õqºâû㸛‹ñ>ÍßTÛ§æ²VœÚe·™Yvct,‘ã:³ÅO÷í˜c¼”üª7}ÑuL’,ĸGGàO5¢QóÃÚZªBñžª&„Ñ ™1w­ÊxbX.m:½,‰Eq¥P#µ"9Uýí…±ßPE†|ú½_ü¯j©Æ„U Sé3J3)±ÈPJ¦ß)ž‘¡é1~¥>¨lFh¥“E¥ÆìÁ"¬÷ óo}ç¼ÿôE é¿ #ºò96Žþ« |ã¿õsè[K¸/ÂxÍa;TþJŒµö»®ù{² ùá,°‰°õ]Ï_õg=ú]¦§¤Šê§`—è|oÆZÔ0e%Ä«ô霩$uùõ4œÿÇyû«5jËÉ؃j›nÇ^Fφ6æY9Œ9Vd=l'ÛOeÕ²;ð”¾öO´1Î|>r¯¹—uœó¤~d“)¢ë/Ó,òø•Îß@yÕ6‹DˆWûÐÃA²o½ý½ÉLA;Zb, ÌnضʯÒÖìÔúΕ0ªÅòað“ýó¦zJ“¥R°k²¾I–%öuÙCoë؃3€q¹¬Oª××ñ¶7Y‚\‹õZ¼ºÂá™Ýpæ«2šVooK=™‘TykŠßÛo²íðÅúØõs¢_»<÷˜ÛƒŸçKU؃ßSÿj“;/™Á‘˜UDéÖª}Ù=¹õRGCŽ`¤§a—¶ÄèÍ^uÇlV–Áìg!xÎDàÜÌë/¤þÕ?Áîö f¤ØF=7Úí7»äN7×/ôaN•Ñq‹Üßη]f‹½IÎ…=ØØx«Ép¬‘áèñ&Œbe´ 5sÚ2sïY¼]ko43O[ö–i½ÔáX¥;‚Ç`Þ {pøÕkî.Øb‹°ÒÎú9þÿ¡ÚdÈr?Ê/8RöÊD7üê÷¶™[ä„;<ËÊö}Ìm’kG¦2z!F¼Zt ææZŒI6³Žcv[¯®2/Yî7£¹ŸªÏ—̸Ð^À«ª~‹?ãTðˆ{×·…-z3úðUä#ñq‘*­m¦Lt‡íKÖ-‹—ê¬1½¼µŽ’š=1ïãèM®Ë˜¬dµYäjÆ€/7ËìÖè8fÃÍ*Ocü•æ»M¶¡þ•ò±22“7ŽšGÓƒñWñŒ²hÎ3KOkîÌÀL6 Í–êP39v›˜D¬ª«–“MOw&?—…Õ’Ë8*Íã@Û0‘qëùTÀJbÔjÆk†ZÄY&¬ÇšIïS:Q$3ÕÉl’ùûµ‰ž(™ËüAõÂ×`Tz<õaT<…m«ÀèÇJ±8Uü)GÿU9Æ©†·‰éô¯§ÄìÐTfNªoª+ÿMãs«c…OÄLdrœ/ÂvhNv¶Ð|ké¶óÞ\weŽL© ÷‰òÌ68¹kc¥PC#W`§ákÏz^…Ì%LÂ.»üª>G¸•I•!r ñxÚ°;^ùX{sN~Ä~ÕÖ=`§Ùs²‹µæ÷Àòj㾓·ÀK`žuu)…=˜MûEÓ.ò“Í"÷ë/ÚÆ‘4Q>¹ »º³¬B[Æ¡G×µ®f,TÖó^üT+/½[Uîãx}y,øب~7˜’ÜŠØœgŠýXÞ‘üë ðéró"Ƭ #6ð~°{sìÒ«¨¶|lµœÜÍXˆNŒÝÑ¢jjUzeXíÀnþÕÔ|çk£§Á¯ŽºíøºRüêc{ ÖÔ*÷#,²®‘[Ѷ xRo´Jï5nZõúà”¹–åŒïxŒìppžF-œšÒ›Ö`¾yl°ìÁ÷Ðv­–02züjKP#ÐÞ]puÝ@wØìîr¿Ú¯ òéoîvø®¾¬3kì?‘„èUVµÉ'›aR~Õ_åclïÂXjbkŒFkª =DÿààÆ °‘ÆbÇ?Ä‹1¹38ì.ó‚kaüëîqÿ£[þ~ÚôçýcÀ«j¢ÌëÜÕ~¸Ü/“Ü7ÔßÏúÎ7Êq÷ip(]ëdƒT·ÃðžKñ_¡ÑÝj‹«‘ãðîÆ_)^µc •™æé ßýƒ6w7;€OЯ9À˜S®’ßûPõïrïø?xU×¼yןÑÓ»ù;rÄgÝÑn8áQß±FÿtÁsUi#…šb%”¥ÖíBý:Íí-Ëøõ°G“Í6ýlßžÝbs(:::2UFæR¯/žù2CÑ“xúÎ{b…Væïê)ú1(Ùü«KÆdÐc^†žnÐ 1§.¬2˜Êø«<ÆE(" ¡V{Š s÷ª2ú =+à-`¨ð—Kþ÷Ÿ5ÚwñT·J¡nLñ4=VcB㸯ÑjП—ÈOñ¦Mí¬\ŒNxë˜D=ñ*Œ½O"އñ¢©ŒÏ3«‰c¹}0£k` …:c£¨ ”IͽL‰H{âÏ-°4ÎÕ“‰ÞtÂY2@´u‡[µå°èHµÀN(ÄÉŸÎûÁßÖwNe”ØiœG¥Äº[°Ï4ÇGãÎÒß>šlöl²eh…¶®%Ø“ÖTú¸`¿—-̵Ù´j…qõ_¯4‡D­ëZÀ«#&Ϫ͜ ½"e"ÙŒ·)/Ù ‘8)Ïx†e¦•,ۮĚƒwk.ª³ïdÅT­Ù>×¼;ð$Ư°âùà{žuän6}¤zp3P¶=8Ïd{¯”@£s؃ªUöÑh ÞB¬:ÍÀì€U™ —5j¯&‚ÿdl|ÌÖ|¯žTžhõÊv„½âì‡Ôë;ifF?tÍÜI· «´ªÔð¥þ,,ž®fðêE؃ó±Ö~ÁÆzí6t‡õ£-+%wyëùjœù­°kV2Û¹ƬÙUyUU€0{§ˆW-p¢;w©Û”¢•mœómÜ(؃;ävwƒ?à×y¶·L†=¸ÂwôMe¥YeÿŽ$EgX­‡5lµŽ\Ê:ÃÕ1o{ðÄ6`±¨y¢±X/3Š~(þý,uz©ñ ½0â˃ûa® ¦á|ÒúÎùoÜBØ€gý5>9n§ɤË2?Âoqcý(¬­ËÝ Øƒ'Ü»àW‹d‡û x(­#·Hj¯Ñß^³Ú‰:.êoŸÌ¤QŒ³ß‡ÍÆ¿¯¤¿ýƹ‹9~ULê&´ô'ð«½þ[ן;é>†=8ÌßH{ð=—I{>΢ó‘mv ³NúÁI’Ê8orÀ—»P¿¦.ö«fH}Âúƒª¢œ·™A]¬e:Vûb‰™o·EÇ“£Üh–ûëa*ºÕˆÖŽ ›ÐÚè·ÄâÛµòRÖéK£ºôÛÜÅeñôë`ç´`ÌdXo¦¬I‹å0§ÇøUX+:—Ãå–ɘôòho6Qµ,Ê èÒ¨©jø:›¾ëKR©öPŽVZJŒÉ•#¾¦¯ÊSŸ!¬œS–÷qôxi–eYê3h¬WyÖäRÅÁ&ôì'ÑŽËg¼hýÅEÔgˆ'3Ë CJ¦Ÿ.¼ñLæÍ`}òɘeÕœJÏZ5ÌÀ¥ØWIÔUÈ•/YÛ+{â+Æ3¨5ù¤êÉb½jdÇ!3F2d?ãZc¶Š0›Š™µnõ¥ }ïàfyÒ˜è?+ç(õ20Óé {°<Ú± ïß V¬ÚeÌ9ÃØà ó íb¿”íV½q;ýì¢ì7ò2ðêÑÙ*/-"›Üÿô¯NÛò¢ã0T^³Õ" ŒÃWíÏþ²”QVíͬ‚é-­rëùNêòÏAkÊ ÌU‰©¼Òø«æ¬ ˆ¼å’|4ÒOÚb~l°ý¨/ÚÛ¬2Q©ŠSBÕ?{ã]-™Á¶3ò7Æ#ƒuÝ5R¥}GõÁa:SÿJu™ÖØÍ´“±7øK} ¢À­æðj¤ µßËÈ úÄÓ11š,&•w?2j½,Z7óÙÄ„:¢™æ_5«Úr‰¼Ù«H_VÅØMžÞ-…ž§ ÌA9¢•úä{â'aÅølfæš°ÞÄ¿z2鼬HÔK¥zíãM¨K˜J›71ýü®ê‹Ðå™Á˜kÂìÁTì·¦ÄWÍkîÄXö°þ{mz¹Êð® íc²ˆ„ d—b|+;mvÚ\Ú_šÉp%£æ5.·–àHšÏ8XuŠþ+աꋵ1T”ƒ3½%_6‹²Î6Áš`.Êë¯Ò¥9íÖj°µ2a2c€§˜{Y•:ïé/#‰¢°â7a©ÙÜœ’ àЊo÷ÛÉö;ÙfóŒÖ›¨!cì÷dÇgÁGž4;Eïk¯Ž›|›ÊxѶ)ÙÁ¬7a$y‹MWYîU=«gùM.Ðó Vô ¬Õ`j"òŽ©š<|l¬I]ÊÑR?˜gT—2EVÙƒ²S´ÊàŒ&{óTŠØ c²”§E[ Ÿ‡=Ø=?|,”CX¯°g5?¹l©f¨ F¡k³=Ð2Ùž‘7ñÖcfYôcWêtëÀ’TO¦6øU|f‰«dŸ6K#zoõ í½™¬G߼ꖘ~ûhüþÏ8m´òÏ`H¬Å¾`Œ#°fÔgü¸WGóìˆÎXÍÔèŸÁ·:(Q^ä|7ÉÝevÉ.7Óo÷ ƒš¶§,¿Rýö²Å,³DçØF¹ÑÀðlô±ë¥&æmð°-z«ñW­YàEüW€þ6k ¦±hzãÏVGÝ™`e0 ø6Ä¿ ~uÎÍw?‡ÝûÞüÐ`±âw7‚_s·¸1þ˜ûxu£ìuÃÔúò­Í*©i»R±ºVólzÀ£—í¨¹ZÙŒ$¿Ú‰ÏbºW‚Jî'£ùüç.Å·d½‰À¯öûÓÔo×z©Åx÷˜¡·aÆ{©ª>7àÕJÛqâݱš,Ú¢*&šÅ>ïT{pfå 3ŽÑáµ1×õ—ê‹©‡ï«j¯îó%ÅýÑKiíhþàÕ¾yÐjs<Ú0:‘¨S—õqŠU¥zzy–Jëóú’Tx:ì”DŸtÞþ«0𯸤˜^_˜¶U9´¨Ð„uµ*rlÊÆ<^=i•BÿP>ýZa|fo㨮¹RM¨á^քЦ‰¼ËEƒ†±X‰Œ¿ªÈ(uK±,•É5²¬¹ «Ó«>ˆVèQ––‡¯”……úíÙ¼)TŽ—Ë5L`,V#,½ÆÀv˜9Wdn€}2 3‘Äœš‹ækŒ»Ú•7›wÁEÿdïÆN¸Ã !·9ˆ¿Sä>j&t¿ªŠ5¢©:æ5ȯây?˜#U ±HqkVqo Αž2„c½›ª.‹9ŠMÍ÷ò)VºŽÑs¶¯=-[­Ú¡Gñ”ž6Q4†÷Kìï#æ$mÃBi9dª[Íð«36“õ[Ê£àWçy"¬Ã™ØSæ£Ç°^°:C7懕Z‡`¼Q·ùnVI«'/oY­¥Ò#ÓSÚa=2ØÞ{Pµÿ¿coÞÄ3[ѳ{3z ÷ƒþÉr%F®¸ÓUÀ¾}¬¾Ü‹u"TOF³vº²½z§÷oß—·ñõj³*ú…kèqZa¬äûÿ®z.×¾múEáwþ"sšM~ ´î&âÕ$f’¿5~n,žÕ»¤ë;уõ6[ñ˜rKî¨Ë£ÿ^ݨîVW—êKÀ¯î6÷Èr·Ôßí×…èéð«ý¾¡o&˜ÅöLäBdšU‹ï*°Õr¼섵¹cX_iÕšÆ3ô`½ÔJx=Ø-­Õ¢Åº¹k«*øÕ½Î¸%ÁTÌÊHÿ¦{ÆŸ¡žÌ·~¤À|,bl²•n”~u­›ë&ú#îs`ÄTÙé> ^ĸ7Â{ÖI©½£<³¡YAÍ8wÊ¥TU>Ÿ7¤Jó|*ܽÔug±Æ›š;ɯ´}'£•žo^uÀïpÏbÌûúZ¥)ò6P\"Ôëû;²Û¶g,€Þ¬ÄKZP™ñ¢Sß®þÏVæ73‘~i]7m““ÏiVôD£¹ÿëÍmàWã‰2W›5°€›ó–n‰¹+Ú(Þ•«ÿj!oÞ1aSçòv_Õ9ÏáÿÙdH3°Z›ÑžAdK1¡VU"æº\ÌŸ†Ö†UGÕr˦GF£êSs&“uœûQ#/6_fÔ¦òÔ-ˆÅ_%Ógf&3Ê4ÌI`„W!mÀP¹íÇ"ZAÌßž«#➪†5 xfÐRÔµ¨ÕAâ˜g˸N §Ê0aýè0ʾÇdN§Ì`œÛU¼_QT« †ô;ÆDqUkµl~'Î<޲ ö zÈŽ˜Q’…3P1±½Ñz£É÷JÁ*Ó•‚ñû3P“ÜoñªDz?øUoC<ÙŸ¨I-Ô†°ÿÆO•uÞoûÛodƒÕÝ‹'v³ñRïúŠz2'¨ÕPu‡©m5úLñêo[ z6Œ’l…ȯçÕæ6ÓKnÆ»¦bEÏ•ZŒy8v¹ë©ÖôÛ¦®§¿½X¿úó¡§wsiÌbT ú¯Ž£¿5ñ¯˜ ó*ž¯öW ×Jú.ºã]©r5ž_hxž¹›d½èÑÐ BuYuB«<7büUºÕê‚õÌ6s[ô+WÃÝï¶+KeßÔŸ‡=ØÎÌsEö53$²˜÷ƒ-p®«¿½=fg¸C +¶%^!^FŸTýª˜€âU!VÓ»@‹þ°µ.püÎÑ‹ÁP·5¨ æÓ–O=7üjlr ü¿9¨h7€_õq}ß@î1«ì÷‘ï#7ÚúXucÍp©Lý«ŒþV~ÕsØšY¹¥ØŸR_¬/öýI´µ7Fù!Œ»ª­/ 8ç–×i ÿš{X±¬ï{`Ôï`:Ï€¹.ô½üfXåLtóÝxUÉÌ“;Ü·*ãtÁŸeRÅŽ.,Å×ÙÔo¯FK©ÐAõôöî!œFÍÀx›±}-w޹P‡€‘eÁ¯Ôõ¥«à·ú¯êT+¿*ñý<ÌÓg‘iшbýFs!²Åö`¬Tg½-%ÊõÓmŠ5«1?Ýq¾d¤Fg5gÔrmÞ ôœ©]Ùè³£žNoñp*­è½^Xq²VNöâ9 ÎoÄɇÌ0|~8saî6`=:`'Ô0jƒk½‰xÉ”–ÄÏ|ó%ì£PÅy!ð𨠵ez™@úÂTÅ‹m°w€e_ý!˜¼U¸Ç^ [i«ÍbShU;˯òDÑ}°%¢ŒfìÁµ¶³Ñ ¦ƒ°úµ^jì¡A`º7ây °/æaV¾À9˜J?psVDòôÆ]J\YmV؃Ñá´¨f£——úVôv+^•DGpOaï¨=šJ»¬·F¶ÿh>Õ‰h€ùÖ´ ³ q-Í„µC½â¤Ø­žæ¹”á½[=Æc…ØV‹Õ]©ƒ\–q•ðu.íÁʼYL!o)K—ÃðiD5õS¥0=‰}³ S©Íz7™Ì`LeöN*ã£Óù»ª‡\5fæPW)—w‹aeèÄX¾sFìë´X E˜Ù£ã¿«>…w‚#1×mÉsJ€Wã Š97›³ØÍV”Q>Œ“|=ØŠâæaÓVcù8mÍkåI±;Žð®öDJõ_%I1[} ö̃¬C”†“9üjó‘·±–°/-Íyù…ñ¢Éæ„j–56´Cë¯ÊˆÞCœyÄ<À¼›ÊR9`jÓʯþ°åéÿ¼Ê‹ˆ(ê¯ÂþíB{Gì¶¹XA—Qç3×ÜG†¥¶Úmæ  ïÝ´ïkÈÓÔ“iÌ:ª ¤ìÁfZ“V†ÃJºCôöþ'ذ×`ÿ+w|Ù‰ýW‘9(kYÏKëïÇxdÈíØ š«Ÿ«R¿]oã`çÔC{ö™xû®¼‚­4 ¢§]-àÕ&œ«5¤:öÎ؃ÌrWÉ>k†FT‡ÜˆÖœiT³“™Ī…g Æ÷Nà|W»°³¸™öà@s;ªß2W‚÷œ‚…ØžvyôB0Ú-´¢i{—盹‘îˆÙ*{anõ+‚Êöv9×ÓmðÍ}SŒËF{6b¢×Û&xëåfø•ÞÇ [g§›bµ"|+*¿OUb½ Õ“Ñš2` Õj:Áaw1X~µ–õ×Y‚3í‚ïíÿ„%ú ÖÅÖ£¿Ê•}rµ»ÁóÇ݇XCsкσç±Z­—J±N%>õ_Í¢úVSô²f·«™öJïaUÙЬè¾ÅÚlÃ|ç$ßÑOÃ}îòýÿëq> {°½î¯Ç8¿y(DôF~‹ù3²ŸúW51žëÁqµ.l-½iŒKÉÀÚ «v|,^´$2©×7žõq”õ¬0+íÑñ´/fšµ~ñJíŽÝÑîѾē:&YÔ~-kB=™aDÍfé¼Ê%£ª±|#P˜’ã0aõö°Òi­§J1ow9*§ñ.L5• èÒxËþø~.± +ˆ£õS¨±ªÈäÄîøÊÒþLfôAf†¹Õñ´ü”S9>UñÐÓR,¢?ª íD͹,G ªÊÀP¯¯€þ‘,úºËÓo–Á‰²1¯Y"2ó¿úÎCÁ¯–bW*׫öOg]Í%ŒÈJ^} 4ú“}¼ŸY ¶¢­;`úH‚¡¾hKð«Ê°9e›`Ì+J[²T0k“(uÙ³›qúÝgñ.r8¬·2„£¼Õl7·c½«]ÜÖ|)_âz?xÂv÷Xfi÷šª2ÀFE•yN3žáIÑïçK½ÈNSÓêÚpÒ9ò³MEñ!ô_%ŠâØrüé+ËÖÇÑø«Ôo/ÂÜÝ…÷nÁ×ÕŸ™frµ®›È‘àû#¦–€KÔ ¦ã:¢WÃì Öwn f1Ð÷ìTÍéÔ߈yÐÈõmÀ”ÙÔÑ¡•dž£ušSOfþ«}ÒüJåþ”çÑŸºØõK¢¹ÚîöïÍaòmÀ¯´¥3©ßÞ?²œö`´&õi:‚ãÍb=ôØ€_†hB{°ÞØÝüJMϪ˜íW/ú ìú¶Œxý-î–õð{=]ޝã.qÍ1YíÞòw€_åÙ=rcÜ8·’âÕ&؃©À«¦øýKÍ%’'×2Z_ÕVŽõ?/CKÀ%ÔîýïÖÜïf8g®Á§Öc¤¦ µÍòàqk€WÌ ÿ;éps´¯äÿö¯øGÑ‹ùÀ®enìÁ#2†úíw³ýlÙá΀Kuúk}çÑ@ßU|—ªOh•ø©@/Å+­\«ù8‡Y¾&¾÷vë"¢jUª'“å[xUÙÿŒþ«3NÕ º·Ï 5íÞŒ¼äR€WZd«‰±ƒX§XR²—C‹s&ã~µfD/ó—Ãø£ZŒíÃ}T3¢^.õ!¯1ëí¾èDr¢ëÌ*…oFþq“9íJ.£¾ßÌT‹«N |ưWÁlÿLR¼ºØÕ„¾ì²ÜË 1ª?ƈfÅÔÓõÞ­r¬.¼úÕ‹ˆWÊʳ*HXo^óqŠèÍOaFDñ-…ϬHË*•¸Zt D \jë%1v"••Î,À²ä–á{SéAOfüUYöKó ØsÙ¨NmRýL=þÉäTùÙ°ÎE:-âLrÈf@«Å˜Ñ ŒW…ó¢)qC5a~Ä×Ê…æà\~–ˆöå1ìº5ØÃŠ~GÌ ‰—{$qïa¥Ž O«iþ€ÖÜ„õ×ÞÁ‰YvôL<ý$~ªÈݼ˜\ÂQØÊ´Å<Ú˜³¢ÞZÅåc¶›}O¶Ø°îahã‰?ŸÊó°_¤FDyÆ‹–XíSxõ õúÒÀ¯^´U"¿'WâOOYŒ>ªúÊ"`ôeà:ÅèïaÍAE«s€ho§S“­Xž >µ?àÍ5ßBjs¨¹‘ùöˆ¼Býö·±?'ƒ•ç`ÇŒÁVáߺV{ct.Éšc7ïÅ-ÀŒ¶ø~ `Uu¬ÀbÌb´£.¦ìë2öEð«bã üA؃šy—{‘ú _~*ò±KõQÙÍàW»¬V¬ÎQ@ÖÇÑêañ†™˜‡†ØçZì¬Iݦ¼¥9kE©†ºÖAœÉ¾Ä¬¶Ç£c¸¯2Ký5àWÙ¼7<ííÉ;¾ÚæX5™Ý¢üj½G阳Ö@õJô÷ÖÀ>Òx†,ú£’b5ËÇâÚCýö,bH±¤sÏcÞ¥’Xä¸2˜¾± ¬úü T‘QžV‰|¬<Ÿ’ÍûÁõ¯Ê™0û8Ì’©lBm½$*]¥“_e%eÆTG èŸK`‹j’‡–å`+ÞG†õÕß^~° ô|%W³bwŸ¡=˜Iß–¶¡.Ð]↑at®ö¥1n$^~ƨ«FÄ,Xo¯´ãç«LÑŠ‡Ìdê‹jvckÖw‹o?cRÁÔûW¿™~¥~ûixRφ'2Pz’Íî1cÍnð«$ò´oåsò+Õ“©mß– V±ñXV—ØtÑ8«3òVâSÔÝÊ“6‘C¦‰¥ZŽ´üe+ˆj– ’çmíÁT°·í°`×b<æ`U.Ÿ‚•¦·wá'™¥¾ö`K9†ù®nóìÁxó3vhë`VGS]fÚÝr'ìÁf欲«ÁWò©çÙ,m-3Óû¯®Â*.^bìľíÎz̽12j{jEQͳ«‹½tÈ8û‘¼€¯ï43¢ï»úî˜[§-’|_ן¶#ñÛË\ûìA½¼ˆ‘aæ2‚K=5W£%Ø¥À|Ï‚]ŒéÉtÁ.ék2¥ë}gÃr„'½`>ŒéÚ7Ä­ J`©upÙ¾Øv@oÙâ~ðoøeA=»H¯6Á*m)GÌ­öçHNô«·šã0º•e2fr$ÕÍ÷±ë ڂ꿮ݣ۳ù(¸âð«1&C0> ‚{a® ¦¢šïü”ÿÒÍCËÿçÇøßýcþ)Ìâl?Ô¯u—_”In©›{ðÌü1ôkUÇX¤“sVdÍ“,Þ(VJÖd;ˆWåéK&F¥ò–.(Wö4üæìà…Ä“êÜ:e´ê¸Sc²¿æ¼ù¶…þþ“˜cõ^+ïÚmZK¦œ¤fKKàRÃX=úú&]¼´$Z×À‰þO,òZŒù Úæ—rÑ ”Œó¸OÚ†£ì²øÕê*'›ýv‚ýZ¶Óu»)•1VDùå×ò¾9fž&¿*‘¦¶UVzÁt‰¸Hó‡ÈkÀ«ïÈ`·¢-D5ŸwcUÍÀÉ;оß\ì´=à‰WŸ™úØ—UÑÿFòTð¹ý ýPÅßR-¸}«mjÈzû¸<(ùèíÏ8Q'¡Ïš‡ªÑ šÿ¨çI7àn¢\ƒ‘l~ÁÚÞƒïud|{/Þ™5Â;´ª{¬Ívà&eìóò*þõ€™=¼:î´bê3”úoì Ý×Á¾ozE4–ýOz×§3ž¡x•Æn«bÂTœ$bïNb Şꌿ˜BéƒSHm_£—ú]ì)õ_µ4¢?—¹uAmX¤=\_ßp{Í:àÕ~£¿-¨d{ËýqCÝßxµÞl´¿E’a– ט‘àW“0‡@áý`ô?Tt©ƒ÷¬ɯNb½ ¬z2Ã5>Øå¼»5¸Þl2Ãü‹îÿ£[d¾3çüXïãžó/`í,õ}ýz7Á•2žõuoIe3K»SÁIXôZ¹q¥Ô²Cñ÷d£•âµ½®ü0þ*¬Ó cº›Ñå1bï™.ö`Gsx•E¿zsÊe0ž¡;>sÀ=ç«ûÑ^k¤½yüê/«ù8›M4z—í‰}X@ý¥¨Ô§s©Ëq PUxo>¾lFsm±övW2‘æ8ÛâíºÛ7õï‰#·™kû)¾)íšùæÍè ÑQ¼Å¯nâäFÌiXƒ´=XZÕU*cT_Šåò5ÄNz OÎ`ô„*­„ê ŠX…´ ™S5æwÊæ=]:ãÓ5ß¹2³èí˜ú‚ÖK­FŸR2*-]žDì(C>•F-Ó„UÂÊQ¿=>†eEÔdPN•M-…0 ºˆwÿÆ‹6¦OJï+ñ®U÷¬ægÖa|i#·2ÉxRYò¸$"Ur»L¬ýÍØÍ×pÜ´2ïµ&Ä™R“&AŸVrÆ||QŒ¾—|_ɤ¿}Œ¤3þ*ûóÌÜ%dް"%Cš‘-V2_ÂŽªC»u!vÕ½ôº%á½VºIx'r'Öî  "jó“ü„SL­ÞGm_ûìAÅ¥{ÀnºØDÑÜ€¯±¿˜'ˆ“Õ¤ad«©K=äDiùLÛ6L^²Õ#k@ouùô2´ÄIÿ•Ö>@­™þèùBØ­¥À+­G_"'Á¯Î³ÖtÓEZ3Y‘¶ªL^Ý%ÅÀïq*^Í|œª¬t·Ê1>g9˜éåø|#p§KM²l§òKgŒ¥jØõÂj«†=£ñ %hÅAsQÞ½«Ø~õ™« ~µØ’%¾žÿÔª*JWb_5íW pjhå•Ùô_uG ®Æóà´^Âz—[µ“YwõÓué«4þ6õ6ß’4£Åè/Áp·:¨;²3vf#7Ðí=¸Ë½ç·2ßyì‰à6úÖ¾ ìäeöH$:Ý6Áª[‹ù¯"cðÞáxújœ5ª ²(¬ºæÅhñØ µ±šT­f8þ½çÜ òØÕÁ>ga^–~ õ¯Þ2?ùqþœ?éŸáýàx¿œú¢‡åJ7Ÿüê3pšëWïcifÀ ih'¢·s¨ð|3¾ª†÷«²ëh2=EŽaTUì!ÞþJåþÁ˜w1We|¯Æ_[îa>N ó€{Ú×÷£¼Ö‡~ö`ãE«bfÿŒì¶Xp,Ì¿i÷æ1ôêõ¥™›o01–Óš:2ÊsJžpêéž^mÛ½ÑqÄ«kWWùÌ¢Yfž‹N罡j:ýŘ:ÝÙUß^+K«Ú´7®»ÏºxÕ„jÈI´ Ã\™TÖ˜R,RU5þ_£·ªÄjCè÷°ö_9¢O/zªB-öFŽÆÇêy¥˜Pw¦ˆñ exg 5t<¿[‹¾ù2¿ªŒoO§¬c½©/ZÌ|œxæwç±/¡=˜nBµ­tæåÆžÔÇ,ÂJ›I¿²yÕÆVžÓ˜£ñ Êæfƒ]}Œ¢8vó²Áô—Læ w'DmÒ@´@!m=NIˆå;×0ÁÞ¯ÅÏc=úRÚ°ðü2–Â}8aöcÕ—£ÿê;ù;RGëAÛÓ~~¥·¸Ç€cl–¨=|ZÞ6GÍnjIÓÈS‹ù8 Ò:ò >£H¬Ð׉WiäRe¹¯SèÇ/ä.M¤ý¤z¡e‰^D\LaÌ|CF\e2½3Ï2.- ×*ÌA.à½^9rª î“T*"‡\*5v?XÄx†8ª «"j*Á”cŸÂz7ÕéÁç“ôî8ÔѪŒSÿ¾r7Í×­EßT"ã²ùù„ÿtM‰{)Ä@mAwœs+0›ú½ÝšN{0‰êt"È‘fc&T¯OñäÕljVàÙÖRQö‰ŽVSð“&`*ÉÔRŽ€wµ ‡¯ N@ª5oÁJ?Îê’ª×/}X¾vêr ÕŽ}kó½|‹Ý§¾Êl[؃;­V:~5ÖzêØœ–ÁÉV‹â˜Æ·ï0…–*ûÀ«l>óƒúËã¶|ä"{¹Õ¬4Íež#¥w}W3>¡"Po+Pe$æ~‰yÏ4”{1WM+y)øÑ©Á¼‰¾b`ª{©,¿zLb?|Þ\ @oCÔ±ïÈ`$è<àÆTìßžØÁc`ÝìÀ÷z2¸Ïç:¼w× „õðԣ朼#Ÿa¼wÂ|Ï•º»Ü&ìÇ\ÉóÍýW¶ÖÔMNì‹fyDý0¿­7qžÙšJíªPEûG¿®ÄîaTƒy05;ám•0ûoaw©ÿJu¿«àÍC¢ÿ Æ0¾ýYÓÞ¾©æÀFDuÓ×ù5A¶]"ý⚸پ øÕn3ÝþIŒŽ²jOM4ã%W&2Ò«s·ãÑšžç"ªzõÃZ舩\òþ¥êÏá$T=¿5À«47'¸#?Ú¿{ð”[j¾5ïûÞþ· £7Ç÷÷kÜTÖ£¿Ê-v}ü ð«êf²ÜéÞdìB³\Š0:©×— v^JE¸ëŽcyÖNK[2Wg†y=ÈvÑhµÝþ؃̀K]Í·®²ßI=䯿˜{Á×nÞ„¯?‰|äâý?Vo¯Vš¿"wØX/õ1“+Œ‘zØ%U0½©Þ€þ«¾8ñ&ó.IïŒëÇô¯aut›Òû´¥`©'¢“háÌ¿ºÎ· ïYi>ŒŽ…˜ÉJ6€1Ö¢õ“Ï“0‡vPÚ®±ìäZèÑCX;1ŒªËšIâ¾ïõ¹Eô4©'¾9J ½Kc5O56²9U •E hêïV¥E—F»,=¦EšBFÆD„(R‘jñ|ŸÆ[¤¹’cì.摯Ȉ®dÆ_5£ÅšÀüÁ¼X.va,ž¡ 3¨óy?èx¿YŽ·ƒñÄãP—YcÏÚ™íÇEĺšÀóY]åµM1ì²®ó¹æOóªù‰6ÝSØq+ÍpúÛwRäNê_©=Ø§Þ Ö£ÊŒÕ›(„mˆµ¦çË\œÿ÷3Û* ë9Q†ËúòvSG}9hgð«3´+Ì}özûóq’°¯K¤M¦¦èiyÇÜÛ%5†W{LÕs'*"¿Ùæ6ö‘GlÅÈ÷<Ö£­d.æufùf<}ú]‹žþmÔ®Žõþ±©¼Ê×JÎòið‡ýŽë†)FçšË*ûœ'¿:+z2XK&í³A¬7‘ËJÛËÑûké{ÞoÆ•5b±¾ßŸªU\Bu;­|ÑèyŸqöKê3Î2ð«GÁ¯ÊúNnóq6¸)þY¿>¨kÈ ¸6n»oàÛÉýf‘M‹¦FÚÆxïe]Íw.Ñ:Ô`6ûÑïöÀéVFïÍj`nÿÇJç=ѶG€ÙÃÁ÷ž§'¼¶Ùr nQp%0w¢qÖÝ‚UuÎð.î3àÕq3Óõªk3¶÷õîVÖwþTJ̹×}œ &aos‡TÅè4~tf½ÔFôs«ÒõUŒ¿ÒšÚ÷c†[á4n >óaPäþÂ8—šûÀ§2}'úÛp€Wç\/üÞ]îMœÃý,<ÿS؃i¾L¤2Ð~“IŽî°š£[Ou·0¿y˜‰àbw£Ì»ã¯Æ›_Œæ—å1s¡%k$Së¬=æ+‘¸´Ü'_šj¶QOF×çbs*:>Ú‡{°§»úÏ2è—î˦$z®'«r#˜ŠÇê«?7TE/OV>%•‘ðÕc±ÉsÊÇn‹‰ˆm©‡L¿ =ßYüLµ©B{098‰ôÅéma2-5Å ,Ö˜(ÚA{X#µ"ùU€ŸdRY9¬^¯ÙÛ Éñ´Í-©_†>ºR´(+–ƒSžÖi<úÿϬ@ôÒ:+ÀÖgÑZ¬·Ùæe°³Dõ¯´¿sÍgæEœÞúa ·sè¸Ümºƒƒía^LGà’Æ-ªr-XKÌLÀz¼§.í²ñç>ì{= zÃVé+—ò\ØV·ˆ¡£ÓÞ¼'˜dµ÷Úvö”l¦­wÔÔ‘NöžßÈ[À«£¢c^(Í";M «6œt‹üj6X^±YÇšªë€Xýå6ŒãÍØOs°&?4w|7ú²ŠZ£ó5õè™ÖòUpö`} ðlp‰£7á»ML;™mß•‡¥2æùFê:ŒJ>ï놥VÒ+Ú¶§‘+°CJa;_fRdÞ5ˆ„Õ«»:ãŸñVþ¸É°çå5ò«Û¢¸&îa·Ï«&å}cÿ£Œ=1ÅÅÛ—Ì„ˆú5~Ã\ÃŒh½Ôv°|T«©q ¯~& Æ÷GA:b·v oÏúƒùàW|o‚¨%SÝLŒ~~µ!h$i¯ÕÜwÀ< ËÝrÿ‹_ÚǤeÜUîfßöàófŽMˆFo³bõ¼2äjô±öãpnÍóž–Õ@»4Kç]ìÖP5çηޘáÀFÇhuÕ`§‹s˃pNj>ÎÃþ+w“ùÕüíÇû þCàÕ3Û_âon•Ã2Ñ­büÕ§Rd¦Ë÷qð0ÎFxÏN©a'Ò—­‘œ73fº1õ]¦ zîô^íÇ'Ó§›/‚ÆîwZoOø¯ÑãV~xÚW®Àï‚}Ø¿Ô}èëù‘þFôäƒÈ'°S"Õ0~«MFt‹í…ݪ5·Áz¨ÍüÁK0Ê3è‰ÌËka~ÆÈ+Ïל­…«L¤ÎÈþ@Xå!«Í<»+:†-SÍ“oKXb¾‰vŽö KM<]cT’È‹2ƒ Ù„•yþ‰e×C?Ósca– µ¯Ê3 Ë„µVËû*p¯i$V•XýEÚ\"@ +(†úW)Œ¾ ë«&2&•(–LORÑ6ž«,Z_q¼¬NäJŒY{©¼L¥=˜E›´+7§Å|l•0&am ÕoÏ"^ÅÓ—ZÄ8ü8¢hv,'¼EH§¿ý_œ¢oì3­?˜Fÿ^oê“hnf‰É—³ØÝ Ä«_aùüÄ–>Áz#Xwfvv¼ÜAÎÓ 6@}üL[]Œ1Ï“–|W5àX¼Ô¦¯_ÕåSUuËHW»ÜäXÀH“Ö`O)Òß?ho°_Év›C}†&ÒÕ^À$²"ÅsL´ý…ÒxUD÷ˆôeüUßþ¸ÍüÁ(’íÀöÌw^†ÞÍÇ.Ÿ„Su Íx÷rœŠjO|{ïNÞt5ß‚ßÁ¯´bÚ5¦‡|M†ßHÖÚ7äªwÿûæJàUÖÿD¬HUå)K†½íP{}`ì$Sö`Gì뮬@ ‘¢š?Ø §~)¾joî1Ùöœ¼Ÿì6›£_»†îY·-Vß¹žF†cMMu9öG362—xÕÔLÀîìBþõF5±Ô¼3tH2žúXë0Ž=ðÖ3ø\-æé?C¿÷ˬ—š‡· %^mÔÃÔÖ•^]ïöaLïp÷ú÷üÖ Äž”fq—3ž¡£d?åÉÉÊÇò«Sï%‘ ^Ž7½c:T©¬úV›ó Ô÷#MÃß)gÂ|ç齊Ã3ªÄrÉ¯ÊÆüíå™Uãˆh•b1½¥ ó•m`•äi¶e Õš»²c–j{\!–mærgÅ´nïÉ`Žso3›õRˆ'ŸÑ÷®µ?¾À)ü9ú#ÁTžsVÖï8ç”;¶1_â÷ÓU×X©,­È(«a‡¤I¨—x3N£C¬J­u.2€W—ÿ•[­_Q µ‹y_Œ !—~ÀŽŸÙd ø®ÆÒËþLïà×ò öùvѳ$WºFö›ÊV=V:G¾…=¨œr¼h3#ñ¢lw5VÊpYŠçÁºør ýGU°T´¾^ ÒL1¸¥¼œ¶gi[Ï6Ó¤A0“õ·êÃ6}^vIµÿüW¯¢5±#G’ÃéÉÒ¶g²L%ŸÚ‡]’)·cl𮬿¬Ú›µ°zÚâýŬ,zÌ”µïÈGø×f³.ú‘«çr[-µ¤üêW˘D÷¥|bF”åýJ=­çÕ‘Ñ'êki„÷…mú¾?šõè·àçƒ0›? ™W÷8þÕ6û T¬mFG? F»õA1¾ÓÍÅû>°™²ß-ðŸûåA}{‡´ˆkëî@+ZÉ=f®-ý"²Ì6¢žê(©«EµÉõöìV_+ÞÌÕ Ÿ®›9E¿K|âA|¦8ìýŒÉ¯aKÝÁjê!÷¯»Ç€3q~í/÷ø§WNnðýüw™'÷¯nwÃü=îcŒúU²Ã}hd„¾c=ðj Þy%¾®€Qoγz:óoT+hÚrÖM'bÊtóyPßýBe*©Ïò­WÌ.ßoõ_ºvhë àUCÚƒÅæµÈ»î—ÑÚØë®·¨}ÒçR¢T%^ GU)[õÛgaf#r%÷su<«5xòŽú8{zRo<gÚmvðJï¼®5Çýu¾53fV˜ÓÑzàWz‹_OŸÁ[õ5 ÅùS‰Ùw÷,)$ר‹sê,ÖPXÿ4“蓳ö²ÉÞÒˆO¥ŒÝJd\`^,Î*“ñ¢™ä.å¨ÌšÇïWá½Ì¿úɹô¬‡èFB$™0·:ƒ? +ØÝ’þ³ËÐ ŸI{0žˆV@[5ŽÖee´'ó¿üÁl´ÍÓæ­Nj&¿ÃœÇ¬˜šC˜YóÏuň«n‚âp5`‘Ö– 5¬²%*­éƒºÙ|«îGz¿Nâ7Ö›¡¢?Ì0)C=äTüÖ—ëAìY s£Þ’8\ 6IDJL¨K3ë¶&Ǽ˜G_À(ÛØuGÍRŽx'ó%0p™î ;Éž‰Å35µe¤½H{ø+ éIó²({­&m#;L}«Q½‰Ò+ò£MÍÏì#OÙòÃúÎ+XìVô?ÖÑ,Ø%—á=µ0Jû€K°·2Í<ò«Ã÷xÓ§ÁÇö*äO1WÈø`£Šd¾}Z¶‹F}f£ù8j ©~ûRsuƒTOF3*Z¨n Þ“+[0bƒyÃ=„õsjQŽ £ ;`<2¨/ZLo]ô´«îžp·ãy¹Rà›øóv2>{“Û-[ð©Ÿñ[}©©Ù {õ&ì„úhÙdàÔ3Øõ—aäš×á·úàç¿`×°JÉkhCG´÷FÞ×6c£‚‘nKÐÜ¿Ÿ?5„÷îÝzöÌìÌâÕ`ÿ¢{xµ£ù¹ŸÄxÑÇpºÍ÷ƒüín¬gî1“Ýín°¿ß}h*É,süêIÆ«w•¦ÐŽÏš…>V`¾suÖíÒzµÐëøçAœj©Ö§> Ü÷¢õ©ñ_0¾}1>ñ™+ç  íð7÷¹§0惼Ö!z/ò¾KñA$ëu‹ÄG÷ٞܡêo3¹Ì-ÁHЖ¼ARöø9fXùE>ãE»r׊UÖ¸M­?x'íA­‰°ÛÏöñ´JÞ¶‰v Ÿ©)ü*WB}àž˜ë2ÔíÔøö¯¹ÿ5oo¶<ÇøöTú{Ò%1†W%iEéžU&S‹T"ýÞaÖrsŸKÅîørЛr±›8­KXž»KõŠséKJâ-bV,s&)¦†œ.aõæ Æ…†ü*•¹?ê¿Êˆe$†ùÎÙÄã8F(Ted@ yT'ÞGþW›µ6õ¯J0ó° Ñ0™>öR’(ÿUé)Ã|œT¬ó¥`7óØÛzÀóEšqI^”j¾Ç)¢h·˜óãÛ°{`¥õ3Šv‡¤ ðê4ýWMÁV±½æLý„³ HºGj2bcNÆS¬?˜FjšaôÒí_>‚ý¯VoGyÏ|€w¨Åü `/ƒ_UÁwï–Š¦Ÿ7z~|l>Ã|=M\ªcšGöJ¡UŸ`¼ùæS£¯¿yÆVŒüùX ¾ÑÏ,Á8i¾ó"ê·+GÖzô»±kc•,×Z7f?=æâUC¬Ï¹ÀækƒÅàE°ÑvاÌÝ@âfr 7­P¥ÉžØ¡+ÀÐTÅDõdJp/W“ªtiöáM}X3u,VPgúZaõàóíÑïxð«—ñ§S²1ú‰kà…=ØxUÍømo|æ·Ó¼$ƒ#‹°3®°ÎŽê3t`í½ùZ‰ã>ÂgÌ ª „¸ -RÿÕ'ÔÜÒLÉ'€2#xû_YÆÓß~GÐ ˆÒÎýîú»À«{Íz7ÐOÛ€IÅå¸e¾£/2ÉÍ6=úeäZÛDcMeŒ©.¡ñzyèïè‘jqµÀÚë€Óª °³ Ö^1öÔãøû®à$åÙã³2ØæœÛLƒm>À?ëòߺëåùÛòù³àWeÌßÏovSýP³×LrkÝ ¯{ÏäËl°¿‚g°×»á™[Mm;#¢µlË‚íjLÖ£oŽUSµÙë^¬Ìhél¹ÔuZ»¡Üï?f½Ô%ø„z²ŽøKNopïuÏùæ¬ÓVÞˆœwÎ'D´ÒÎ6ù7²—ñ¢z£´…õaõšÜÈ»^Õ´l} }ÂZ¾cž57m4Æd69ÌYfï ^%C·ùEàWº/7ÊÛÑVÑ®Œ+¨%Vj-Ú†¥X°"ï«¢?ßÐvKb}çÑ,âE:­µTâI •Yª¦j¯U°VW>ã/y Y.%уwyI´)óÈs’Xc«|,R4EBÍöÿê>”¥*…Þñ2´Cã™™Êø«8X©ÔËJ‹E”æÐC_’ñW•0WYlg6õd*“GUàúÍ"c˦îVZì®°,}lñô_eP¿K÷uKØã«qJdð>a(OÉ Æ$›_ã~çóÄ«'0nke˜ÑÏÜ#M‚9A݆v8]B¼ŠÃŠýhÔ„}®ŒïúÛ˜?xs©çA[<¿Ø ¡/k'VÛ YP¹ Ð(ô_%ËIÛÏ~n¶ÚP{9ßt·Qò¥ÏÍG@š3F¹pS¼jlÕOgzDþ¶YÌm{0+ò'oT6aÿv3Ë%“Þ ]Ò»xÕ-8 Û±ÄâE ÍŒYK؃ŸŸÙoÁNÀRž`úZÿ´¦44ëí æ¨©ˆž~‹‘šWÚ±ZÓ”üª*vð Æ_u¤VÌLü¼ ï+F5V«^ÖÃÛšc «Êw; Tš}ÝœÃÏ»ekô{WèN»ÛpNW2ÙÀ«ï­ªsÎv÷š7eHD³¨ÿ@ËG±þÖÇ™Æ½Ø o,á3ôkíÁ­ØÏðŽ?ñnµj³å|¢+ñª5ïd4¾½·Û4ÎuuW\w7ÙÝ-ÇÌín¦¯¼jh÷¯š»¾¥ogî…=˜ý:²Ô*?™!“L=3K£N±fÖÈýX}¨úóÀ+½åÒzªª˜Ê<­å¶ˆ¶árƒÝ{Pwí|Ùîgø"*Ä,^õŒ“ýä‹5×P_4‘½é¿*Eßø·hîçšxÛ‹èW-´ÿôV’‰+aü@Iîïj1´¨Ì¸¦rD rh[æã$³ºoQ.ÕY‹'¬p“ITÊd{¹zeÐúL%Þ–àíRó†ÉÂ\Âx¶ ‡^õ8Æ#–ñ«dŒJ=~Vë87£vDcêÐoæ¯Už7%è_Oeï(s)SMĬêÍÖMÄcÕÆ_ÈìMÕ“I4?aUè8,”÷化rÌãÀä›`êÍç~éeRÀ7¸©wYŸ*…Ú¤W€FÉ"+Â̯ÚÑ+pÆžâ]mP/Ûô0“y2ìÃ)uHn¡?­‹\2_(ªŸ±]Á¯vZµåJm3ÄþÃxªOÍ%9-»rM‹È.ɵô2½"¿ØdÆ9 4¯¾cÌðF¹]º2§?fùÌüdª»i¾ó¬æ~X%7ƒCV‡=¨±r-ÌëÁöGFbΗe¦I08×öâûöæ|‡Q™,ÿÃ<5§Gy3õ%´ûjð¼i¿ÙñàWÝ1ʰw‡cUèž­Æj†ê÷è ÷JŠ}ռн›Ü½èê¹Ý´3ÏTñõýçv"vÈt÷šyöàb´ç 롪¢J[¼ëjÖK­‹÷ Å ¾$“À¯T­!Ôg舷÷ _¢¬¾ÑhÃ;ò!ú‘§L:z)èï¶…ø›Ž.â[ºÙî~9mNºÕþ’ßÔ±ÇLq\·Êwð­Ì)¹ÑÚèE؃Íx9‘z2è‘Z+Xá^õ¯ôfL«$]â]7f Aï·ËY ûx|wq°×·üjµ ñ¯¸‡a‹]þpâÿª? L]›Ló‡™Sfœ[çÆø»Ý§àè Ì^w)x ØÓÏÞira-7×Úݼ/i)ZeKYÜxÆpŒå;7¥Oöz¹4tê™h-÷_e‡¯C+/¸j~¿¿èT)û¤{c~‰^½ùxQôqÑ;lì™jX;wˆ3šµUãÜã_Èøvxø¢Vœf¶Ähè:TLïÕȤղÚÞÉ5¿@v€_µcTºÚƒu¢½¹3kÊ_è_-Ú;©èà ú 42 =P]£«Êà™×cÖ ©ÁÖ3W’È™’b1Ÿ¡R{m½ ´³J0[¦gôsj ”g„z—riÓÅ3F¾r,«9‘÷c÷€édRÉä0qüN2íÜÆÒëÿò«rôÖÅeËÄâÁ4þª ߤ±aE¼H¤–{mü\*#ZžY: äŠa~s‘>“=SÔÉ{i3ŠªP×·!¹_}âU+ú ɧòv¨öþIœk`]©ÿ°ô6ÿÈ Æ´ÂškÊš Šç¿K†iEEœj˜ÅxSƒþü9ØgI˜›Ó¿íÏz™À½U°֑ݶ’sàuÉ@÷Øáö'³õ&€$f¨ý›=ûÒ¼/ËYâd%Ó(²C ¬Fò†ñW™F™ió¬ÍŽüCÿÝV Vgà•FÒ7‚u;;®>öyYÖ£¿û¾:þûQùUàÕKÁö7ŒG}àÕ8s)º쾑40×¼Ç4Àžø‚ÙE/¢ýZŸ½˜üª"ã¯Öa=OçŠÝ÷DÍvFxj¼T1V]ÍO1‹õÒ„79S˜ë¦õq+{2Jûpš{0îÍWíVÓ[„]b‚Åè[s©eÆ[î5j}Œï©ª‡jQÀ7è=7O¬U`5“‡t6XÔdæq[ü¹+#j±Îcsì©6XƒGÅ¢oà´<*+¢ç\3wÜmÇNh`ªù6þ;ß*rÿ˜¥id Þû+ã½æ¡ÍÍÙ…RH ñ¹ÄN†Ž>QŦ„)"'¯¼š†??-oRI°žÌˆþôq·­aÝÀ¯Z¹ î”ì6ÛÝmþ!¿1¨nךVqÜßÌ75wãìø=’eQcp¼)kFbÇ 7ðçB´lÆTcj£ ¯ ôî¿¡<'±s7ãœ[†WG¶ÇÝßÁ XØà¼þe÷¨¿ài¿ñ#ýoþCàÕ²Ø÷ñ‹Wq6Œvkõ®©'³€¦ïOò¶¡«Üaê‚}juÁÞ˜¿›èTý«–rÚ ™ÉŰBw³žW=ôþã ª»„õÞNNû/]ºoåoÆl}îʯ>wrÄ=íùb¯ñOïFÞp%¼e}çàWw_éži‡yv¦2£Ÿ´òÏtìõ#¯Æû¿’°¶ 2®ÐÖHĘ E fs‡o•MöýWiX…;a¶&w¹Eî¶‹vc.K¬žEÔoÏÂ^„•PwëZ1íwÚEƒz-Άô}•% ëÒ$Òž@lÉ¡—½<9Qi|£ ­Fõ¢× æµã0rUÉÙÒiWÔ`õ4…qS%$Ôt(M~”ÄXÉ úàSbÙÌÿU‡H–0ƒ%Žû¹B,þ3ƒJ£É¼Ld|{¿Z óW‰w‘auÙj¼Sˆ§Æ©úÓâécO‹1¹°.a6±2ûJÕæÒ¯¦Ñ×KÕ¥5 ì²ÆD»…ò6¸è×ä?§ð ­?¨wǰ—Î@åBmä#ÌQ_ö¤†ü)åMSò½šÀºlS‡½¹;üÆ–dªuó·gÊ œØû±4.¥¥|m4§Z±õŒ­j?5›c÷ƒÿÈX«7ÉÉrÖÑÙnô®´’©Ù-e­zì„z2¡=ØÛ­{©%ãÛëqïÿf>6ï°þàòè'®Ð=åîPÞb*û&àWã€;»ÜwæI鹫ùÖ¿Qµ¥Œ•œ§¯OúÿŠ?ŸQÍørA#¹Dkè=‰¹é'Ï‚ù4ÁJ©!£¢¿CÜ 'Po—ä[¸Qî¬5w¹åþŒß4³šÁq½ÝJßüê9lÿˆdDgÚ"¼u¢Œ5ÕÌp´FµÿnÒVæ=][æ!kÕÒG€'¥ðÆúàU“°çv€WÏ%Rnžpÿ›5üJïêToû¼¼:⟑t³Äw÷Ý?Äì7cÜü¤õ&rd¡Ùç.÷QS²ƒ¬6íìhZì=±»ÔT }»šù“Zc£%Æü!´N#Úa\Þ j»o±NËAÿPª‹¿ OùÝåøþ;×#v¿{Í‚ç݈¹z3ò®+éÿ‚ý[£y%²ÇvÇnª‹>­—ÀTEßkP5öjôQ+¨Ü‚^_–qÄÚŒ!À¨£Žq™É¿Nn·û¢E+lM’m~ƒïÀ©õr_tXt0-°ZØw ±’¸OSŸ!™þ¥Áò =Ùe-æ³>yQ­¥P¥%CB]»ú ’Yß9…wˆ5Y9ô@åSOýPÙÀ«Zô±'³¶³òµú*Ñ~L#Ï)Ëo&ÊÕKòv3´V«ðÏ¡f_˜ïæã¨×Ü1 #Ľ"šf)eÄb':ÐG]!ÚYšüª,õý9V¥co 3¨Sbl+‘õ×`eòN²vsSâZ= Á¼ùP]ÐßÀ’>eîÇêØ%í©Ñ·[ú‚_ ¿jO4‹Ý‰ÔRÆŒ“]±.»(Ç„q\7cwÄ9¤Ïé‚sd¤éOü>Œ¿[n¤]ÝxõãNSå˜hß1k¬ŽÝq)kúCrг/Ìe|c'ýW•M!ðªšÕ˜®?¥]ä+5ªt8ÜX†ÔJšÞö!󌩆Ï|šŒU£Zþƒi#¯­§Ù|õžòÍdp8ËÜ Õ ½㯺3·£4è~¹b.› ø›u² üª¶»×íåý`iX,ïÀâ)^Eì“Ò/²ŒñWí˜Ó‘ÇLÆBªf‰Ö’øã;û±/æ´F¸3ëMT ^½T-ïQ/£Ú‡“¢—‚ñnWP^ÖÙ•÷Enˆ»Oî4«Ü àÕn؃'Ì€¸Qns¬>Î|›M†=¨u͆ÉP“g£0¿KY¾-²Zx{!úø °²z]Gΰ*ÃÀ«iÀÑšrcðñjÆ]ñê`Å ò³\ò“½‰{Ó¿‚»É÷óëÜÕ~¹x¥÷ƒ‡`–‘éæ˜û4xOjDývÍÇi±ÖüÁå¬,]\ꀿ¯NõÏîÀâ£øÄ ¬CñZPËýˆO´“]þ’K&ÞˆÏ~í*ù½à[ر»ÝyßÜn!vîùÈ;Îù¬Fƒl–ß#·Ã,OÕR½¬N~5Œ· Do“Vaͦ™I±§†ÔëÓý¦1>m¨Ï‚笷ۢ#Éx¦5¯óED”U²+Z+ÚŸ{¤h¸ã¦6”Ö‹«¬‚çü»ŸÓ(³YÇ*-V+"•LH}ÍÙ1M½RÄ‚ÒÄ–JX#YD͵©Ë¨Ì4Þªe‘ŶU¤w®9U5˜Ë[ˆù3ÂÈѬXÌhªq•ˆyÍ cúW©äma,VóK2>™çXoÿ*S   -×lÚ¥cZî9|Ÿg üuÃÂJeåÉU’ã¿ë^ýv…sÍZU<©þóX=¯%8ÿÞÁéQ–xÕã^LýöCÒüê Qm ~Õ OÓïÖ•¿¥‚iÃó"xUÒÔ%³Sáû˜m• dO6ýÍxZÔ§€d˜KÚÉE°ßÁÊVÜ»×¶°Í«~³“’hÆ[ÇÚ͘ÀŒn¥nL¶éÙ#Õ©égÚE.ÛDêÌ 5¯ƒ_yæDkFw;sÞ5=Z |™Î{º< ï]ªFŸÖ`T`}gpó^ð‰E°n¦Ê@“¬fý€f XÇë°š½o‚Ý¡ö`}œ_,ËéÕJ„§4fŒDßïBŸzâ ɯº0ÒA£Iã)]À5˜w1kj¾ïj¸#n?Öz9SÎ7ðߨÉ@Ÿ¥ÎØçeHDszU3cˆ,âÝ[{ìÌÅO­`: Xô øãP¬ã!xs{ô°¥dâDP¦_;Wk¿ Ù}¬/£ßÅnSÐHÎJ'0‰†n8ðê¸Ùéöù{ý– ©½ÁtŽ»Ê­ó-|Ø´³ß>ß6ÄSÇÉ(SÞŒEOÆãÙëÀ³5Ïh#V¡ÆaÕD_EÏTS£»€ø¬7¡š®ueGpÌý,&bÆGúçÝÿ‹[!å‚¿Ê_ñ/û'`i/óE~9ìÁ8 Ǻn„¿ö`-™hN¸÷ƒ‡ÀÔz`Do3…vFCó•·e¬ïàÇ()dmäþÿŸ?Øëú¹  óq:Éþô¸5ì¾Îò½«ì·ãÏjžtoÁúí…ßçÉû°3}$¢ã]ŒgèN?t'¬”ÀdSÁIcyçRÉ1 {¤·|‰ùN§÷§.F¸7Q¤ðZãÛ76ÈjàÕZnsäV?Û7güÕ:Ùí-&†h탅ø~¨Ú9 ó™‹Íl†XŠ~ð˧¨•Ä(Ê Zž¥ÉŽ2ch¢±Õh%áç*¬ßú°Þ| 㬺3ß9^·*¬‘L»¬ cžB¤È$·Ie„ERŒu…·¹|{˜ïW…1¢ž­Ö;yë°þ`Ifï4‰EƒVa4HXG㪳¾³Ö›ãKbž³d 3¥µO¥‰«%a[èíÙU|oêðÍùà3?0£Zµ2þ7/ª:T½°Ò†å›{À¯’Ì^Æ;u”shÏ ÆY5Â.Í0íh‡Ö’Ï$jê’E®ÃìžÄ *çì%¥L3HÂ:;›`—ÝÈñn ~u{T½k'mkû½Yaõvôn Óx[’±ëÊGNÉJ£m®ašEŽH«ÞÁR¦uä'[Šš¢a–$µ‚5ã¨!N­tœ§uY9ü*¼¡VßQà…Þ¥U•òlØY­£µ¹|~¥~ª¹`fqÁuŒñ¬ofۇ͋F«Î +zëã´à½ö­XǪ¤ñÏZ¡·ž~kµ”Ù†½Ü ï¨̪Jowf…ÔG_Uÿêwó®ùhv@D?pùî°[©ugM%ßÈÿb§j½0WÛ>%½#«ðŒo°GF¥:²b×4 W]j–Lƒº¤‘ŒóÚLæ^@Îb2ïÊòYàò2Þ¤¼qdôë`´Ûäáiáâ}7È=&§Ì=î¨ßã7í³fhÜ-n“¯¼zB–X‰ÑlC*hO3¥Í@ì­¼Ö^vªª×aݳ ckŒdog}ã]`¢Ó©Û³+ØïŒ»6¸VúXÿ¢{ÜGü-`¤øaÀ«cþ^É0Ë|7?ßM¦ÿj¨[~u{ÃT1æa÷j𸨞]7Ye2a-«zŒÆz-Â(çÑ~oF­G-á'€¥ 1:…8A^ *:o4_[õdR|-?O5«\–ßâ?uj±?à^õµÁí&ãoE>ûÕ£—›$½ÍvÊÑXØ­˜›læõÇwæ1÷&]ÖbEýƒ·”a¼A3ª3j,Sž¨m&},›1Š[ßž ¼ZïçøVdCkäáèâè@â‰ÚƒËðždr¥ø'›ZS9À–¯Xw9“þö×è5 c§ÊHXÏKùY¿™BÞÕ@ 3e0ß9´§2ȯBôtªKjUœ$ÞµiÖFîÙr˜Õ0Ž=h‘Æ·$ñ;!6&24¼ o «0‹/ޏY‰Ÿ)ÁÈäò¼¥TMÖFâWd|{ÆY•cÝàÒŒyÈæ­fߞˌçh¥Åî­¾œ:‹¶soì€ÆÛ|Xqñ³ÆTÜ,_€á_&ç9ƒ>n—žÔ@8$½M‚ÙÆ\ÂvàWš/ʘ^o*™Nl³ÖŒ§=˜€3èjð™N´t»`'÷2CÙþ£Xë±Kóžñ ¼w$çñ^ÛØ¾f6YÍ<üaçåWæ0îC;Ýt•<«#¼úÑ&Å·!æI[:RÎ(НÕúìfow4ž!T±UïÃèÃV´¥1öàÉ5'°£êÀÚ½\²°~Äl`l°”ÕÍd{Ú3ºB/÷®† –M]‘þXsë™ÃÙ ½L53YÏJõrÀMÚ²æ@k¼]³VU¯ºïÒêSùoóz\«jøU5à•FO•2Ù>ÏÁŠU \¶½O†¯ ±'´>ÎVàkÃ|gEÕÁ2 øg ÖHêÄo§/¿“|Mµ_a^•ð{­>2úY0Îí ê¡Ý]š/€=xBš­î?ÅoêÙÇLŸ¸ n‰oé››Çd¼ ¢‘è5°µ~YSÌ­Š|Ëqv¨Ÿ]u¨”_)–<ÈÊÁz§úVT_Xûg0’ZMgg°ÝEÝÂ`Ú8öàóÞøå°d?÷Åþ¿Ñ?N¸Äwð[ÝT؃'ÌhàÕ`ÞV«»×}Ç߀SåPi§ÿØUqÀúíáç£ÝZß9Ñûˆr‘Û$+z‹íËX!N4š»«ù8E¬½£÷ƒ7Ÿ~`]òŒ¯f³w”PçD½ò3h»…õ&úòæOëãLñ-X_yµ|DK+굸7µ†×fÕêo¥*Ä–Ú@ì×é[+–£w:´ÕÊs—¤ÿ§:1!‘?•cœÚ€ ˜ÛRš±XݨÆ‘V`¯x>¥2oKÍe’W%ó÷I1?xX-'¼õO “Ê—°}YR2ñ'Öfª„5 U]?“m.'EÌùI`þ`ݘ~{ Úƒé´%ãécÅT¤Ò§–E$î‚Óq3µ=3Ñ“¹r=sÕߟ]Ôœ-½3ñ6þÕžÁØ®z¸øù Öí¿²ÛèSÛ_5ľQL«#ÀÓ”È[ ;;…þv?Qý«Úõ½À{G˜q·ƒ8kï[K£Néçæ}¬5½7½Çv²ŸÃLe|{s=µC“ä",Õ“²Ë¨'±²i9~Å89Ó%ò‹Í1zªô7/Ø*‘¯ˆëÁz3þªž¿OQªƒÑÜ ¼Z†~×FÛ>†|’õf;šËÁàW5Ðú‰ÒÃtæaÝ´•Úf°Ýnî„¥[Hp¸Ì Œ[Ѩò€xʨ;àùIFëæ‹¦Hi³¸Ôû·‘ôÁ'ºá»Z{¸íÁîèûÏæŠyí9(+£Ÿ¹ºîAÖ£/C}Ñï˜?¸Ì5³/I¯ˆj¦ü:X4r¨Z4?iöÇp|ãù-š{°õÛÕfªbz¡µÐ½kïÿ¾‰¨çszôË`¦;ÔãÀ«’¾ƒ›å•æNwØßæ·ÕíJ³)nŽÛà»øfðÊESȯ£¿7™:fž;ý_›KùÕ!Æ2¨^_/¬–žT j»e:Æ{/pk õo N¹î¦`>ÎÉAþ‚{Ôç–‚ƒ_^ýäø§ðóM~ðjŒlö˜‰î7ÞsçL5™nNºƒ'°[›£–›2v Æ@•òªRÍ&—žè&ä<™Œ£xü¹ ÆH½\o¹îWQ{ö¸ÿ(Õv_O¹ìªùCþ¢ë¢y:î9_èø9xÒ«‘w]‚ÿͪæÝ:ù3²Ä¶&Ðlÿ¨ÉÅ*.‡yPí‡æÔÍ\Š?¥šXcåY´UL¹¾¡ñWɱ|ç[£‰c×¢—³}ÆA®f<ÃP"A-œºK0§¡oªƺ ïâÔ·üí/Õ“¹ ¢Y,Ž=íÿ3ü#žBÎÍœ¾tZ‡åéyO&ÓÒ*X91-â, z¨£žÎZy´ÞB«°rtrÌ cBKÓ›ÞþÕ oJßšñH¢¿=-f'†úíÕˆ |R5ÎJ2ã»´.O6í5ÕóÕ¼Ålg6ySX#3Æù­ÿò`Ï.;Õ¾k%k5òœüª¢¹ŒX’~ò¿°Ò#»|<{¯t£NË!ée8{¨ßþ6æm,Ÿ_'PeÓ‚Ø[VJ²©Ï߯Ç{îfõîÌn)3 g´²Ôã@Ÿý°¨´Fsìßçy6¥Ê ÛÞ3k˜ks?öÞL›mt¤/™¯å19K¿Y5Óœõ¼ÔOUÒ´ülS¨×7Òþ ÷¬xõ‘|í'øýëþq°Ä¥~°ßâ¦û‘8¦¸õn"ðêmSŒz—û$x€¿-eƒ©bµºÆ-Ìö_N ´–ÎVaÌ®æ-ÞK´ °¤È~.¨à~ÁX¯>B7^µ—¯\Y”zÈä„{xUìgb _‹œs%€Wª&½EþÜf{’ ôÇjòhKfq8FXýWª~vRÔŒb\¹Ö)Ñ\ð Æ] ‚ª/k£¬¶»£ãÉRæÈ~®oÉØ©õòh47:€È£qDªÞÙ ÁSJ“!UÄO3^kè,ÍàJ¤˜L¼J ‡>™Þù0F4Uc5Ö´,¾‘ÃûÁTªs•§§XsòzÆj:kÞ\õ˜÷(‘x–J»,Œ_(OäH!çIùõ¯*’;•àM`c¨ùÀ´‹ümKµ†‡™³63bx‡¨ö`M³ŸvÎCŸÇ`N4ç ž»ŠÊÕk±g2Ì1ŒJ!ðêýàû F¢Æ£•iÌaøKæÙèo_Õ$Á¨Ì‘Wy;7;c9xšF®«?¶„™ÁhÞãø›Lð«Zø{gè‡ëH]ÿ"ü­j€wÄ>N·™·°¾‘-Ñ]m÷°ÛˆžeÊøÆþg«È7ÃÝlŸ“Q‘exÛøæì’vxSSð©YŒgÆøfHëz5Ãʾï놷|L%Ç\æ;C¿ŸÑ¬nê:7ÁÝÔ–G¥«Kñmñ§å¸Ùï’âî÷kƒfö¬™Wì6ùß΀Ùï"ʯ/ûI±©a&:amjv¦Æ‹ÎÃßä5T{óÑ{I­ï|šyÇû©Ï 1ïK‚{ÝoÁÍÑ-Òxõ¿ä®F}çgøhܳþ )oVÂ\áfø1æ^؃«ÜhȽ N3­ûüj1UØ·™;ø3šÚË‹1¾¥1"ë q^Õ¨6}«»õ¦Êù †»€Ÿòå~ÿ•s¾‘×Ü¿\†ßá¿vÅÀ«}î%_öà Œù[‘÷ñiŠÑÛ,‰QÅ«ªønO¬¥SþvÕg¸mQe—Õû¿e×°F¿‡õ3Ñ­K4›;|­,·Û¢£¸×fÊÝ~oGÛi¥lŽºhOr'ÕgÐ<†ÐC¤‘Í$ÔWŸæ™CORmœŽçèc ²È©ÂÚÙ1^Tÿ¯KϾF@Ô`}®x¾9ñŠ eéÌ$&Td=rÄž,FfÄòþÒh‘¦“aé a¹‡f6Wá¤Ægä1nÊÓËUµu<ïËË0&!ÑZ é¡.IåŽÊÌLÀkÒ+G{gÏX¯R’‹Í”°Ê…ö±Ðýàˆ2JõÏ’úìy]Ø_TUÿÜ Kã-ù‘‘cÆ6Ë@£Š5'¥“Éd>N"fû#Æi”k]‰7åMsÆzUÇž؃#º óvg7+¢œ)6Åä›÷÷â-é|Îæ̵òûmG؃›¬bø>0•kWz–üûé„åÏÕÍàÈ~i`©¬ozE.ÚrÔŽaî·•#Öh|í¹]ºÐìJúìî|Fÿ’Ãø[UÛÄø«;oÛöà·öWV-¾Fê›â`¢¨rI¢¹ÉÞiŽš61~5 }V-Ÿ‰@‚­Çj¬F¸+nF®ž>VõAŒ«æd4Ò«ât>ª oÁUëà ìEŒt!sYô]WÝrÛ±Ó3L9œõ?Ú¡øìw}^öDnf>ŽV2ÐüAÍH ÔÔHùÔgø–ÏHæã¬Á,õ‡5ñ=Ùr±*^Ïi%ÏÃ:oÎX›Ñ?ƒ‘n=ë;wv؃ãÝa9mö¹qýA#û ×ÚÝákû6æAe”ˆÎ^5C¯†˜\3‹ñíÕ€ÓûYég1ó4.¶FGklµÇZz£ÔÖþãØoCº"Øí¢nc0 ãÕÑ¿ ¼úÜÍ•Ïå{?Ùq/ø‡q*èýàv7Õ0Ì·…úWï™J2Õlq‚‡°¿Û£[L–¨ó‹R¢±i0¢SçÓcÔ ­;‰Q-ç*Ä xuŽÞ¦{ü—àN€WEòË^]rE@öÀ«ú¾§¿}|'ò¦»ââ#ªv¸ öà*Û‹Êì}ð§xئêyÒ‘ëY™RµGúÉàÓ)Ä“FhMwî}Õ°ì‰]¥{m¬±»¢ShÍ—m°‹o´Tˆ–^¥qß[³ãjÖ  ÅÏÌÔN8Êq¿ÔÆÛ¦AŠ„™ƒ‰±(Ñ,êÝ%ÑgžŽ™Ð¼<ÍèS{2íP½ËŽ¡Qi>=EBý*õ_åeÑ.K%g(‹tY„aˆ0ê3‡»:™ïÎåo„z况x†ÄÒð±f&ôMUf­È°†N9V5*‡oþÏê·‡= µÒÉ!Óɼãt¼£§Öo.ÆVóÛ•ÿÔd˜&ôoß$Æ|¼RÞø4ìòéÒ×ä2ž¡ž©jîa]øVò:f¿;mÏê’bŒiÁÔ¿ú–Ö­êÀÏŸÈ£=Þè0”ñ¢éû;[‰Öí$ T õúNÙɶ„ÝeU·a·T2s¬V“ÍkàWûŒÞä€_Ý.õ¬Þ3þ-"‘Hiƃ 5ÛÔH„µSw‚‰çcè)Õ‘þ”ahQ æçì¾h¤ùyG Á#4몷9~õ+Ö¤ÖîgÚWá;M€˜óí³×tÃ*|ŒjP¼ó^‹eNØœP}ÀmþƮѪ¨G°³sÌajŠ„úWÕEuK*¯šaŒ5ß¹„ÕøŒ†8nŽ^pu€W·ãm¥Á¯êÂÔúT×»îöÙYЧþ |ˆùRK¼GµUꃗ'äK´h$N‹ZÁÿiY̪j=!Z}ý%VÑ è Ñ_ƒÑnEP¼¬ØE}owµ{Jš=îyÙ/ ÚØcfJ\gàUc_Þ9Ç^‰üg[Rp†)„}­þ+ÍÜw¶åÕŠùƒ5Я7D«3h¶æ£hk? ÆYf €_pW‚µÁœ]ýsîap%hù÷°ÿñGüXg×ù¾~+øÕHsØLsËÜÖÇ©+“Í6÷np/Ö«êšo4vðçfà`–¨âO:ÆgZ2¿­‚ÿö o×jgÍ€š¯åÝ×óûüêõ-B‹>q•Yo¢ ~Ò=‚1ïïo@^޼á¬DŠôŽ@,ø•ú\ò±~¶Kö`}Þª^_CúqÖ`Žï•±ôSצºì úÉ5n´)æI÷þ²Öî‹#O¹NÖûk|kjÛ­•=ÑúÑ޴ѪbÎЪ+I=½ž´ì’±šºaïåÐ2«ôÝÇ:ì¡þU9ù¯žWi¢Ihê­`¦„Êw5cZ¤ê·Îc4C¨Ø§õ賸Kó¦°¬„Š¢yôRÅsÇ—á-d2íÇTúoÈD²è+‹#²¦ó™¡žLifÆý…Â$ÚzÉÔðH'fVd¶ŸR…UBÂx­lz©BÅÒRdU‰±û‚ÔX$EIœù·a¼n ›+dü[k¶˜g~À\+[&¿‚}ü@¿ÓqÞôæàQiaœ9ÎZ„Z½C54RŸl’MSòÆBX Æ„ž¹5çØ/Ú‡^ØÉÌ@æC>„½zç­Æ0´߸ŒY-ÝÓv¨ýÛl¡ÿê´¤›ôM%¯¾Æw0šcT`º¯šY=§<°ëO›a´CÍ3¶l$`^ö*`H+3sØ™ÕFËÕÒŒu®Žb-® &ÕyEª˜oÛμ\²ª² ØØ\33˜‚}ØRšµv+ðª~þߌ®ˆY„U¼û/—5aÖÀ^˜JoÊ)U7'é_êŒï¨îr{Æ^wÃÈb$Z¢b_7ïâM[äz؃µÜýîYÌJS€½ó‹Õ¨ñ[Üó²ô‹ÜÊȶV@"µ~Ѝ¤9¿kÄ Ôÿ ˜¤õXû»a.;‹3½±›òðÞÓô#=»Pó‚kÊÔèOÁp·+(„eÛÞý溺iî´ì6›]Ÿ·5h Ëwrœq7ø¶¾.ÆåFàÕo‘9¶)ÞmšÄŹ;µojÎÊë£Dn´-h×ö‚=¨Q™]Ñã XÚï«)цú©_b•äˆÖ }}/Fß‘T†X{ðÏ`c0[U>üî °ãZùŸü釂_=èŸÄg¯÷}ü7Ú7‡€WË\ð«s&_fš»Ü'Ásà”­Yß¹¼U±-TSZŒÿ–Æøh-ŠYd½ Ñw 0ÚÖ|=Ès—UxuÙ¥ú&¬—ú…Kñw¡ CñÄCÀ«zx·Æp½KÿÕß¶Æjµ”ˆn^UÃLöê8ú¯jÈ Úƒše¤µTúÊ%œ`ší_sÐoÏ`¬{_Æ_©/f¬´wFGÑÒ›+ütð«RÔ…;-M{0#1‹ñßTÆPiM£ Ô%È‘!°æÕÛ¥^ì…×F<÷ÿSáK`ÄB2w|¨uŒveJXÿ´&=õaqãÂÂŽø=oªÞ&²¾j2c Òˆeˆ€¡õ™E?x¼„º9©äoúÖ’æ Ì…òË¥ò1˜ÄW´V`]l—AF#Rï’°ûöµn›Ë'àW}h}Öà T)–?ø_ýAÅþ[±jöaÅhkúJEÓ×ôgã¬Ý#äWñ»ù­Ê†E{Øv·Ÿ›[Yßùˆd˜~°5Ú÷ssÞKæ<Ó/²Wê[½Ñp¦8r˜¦1mcÌc¶J$…wˆ+ÐÃn°_T¿½ Ú0ŽT ñŽ£ø›-ôHo‘sèña´ ûÑ\ ¾³W˜áq,2SƒiØ£à…f¡=a¶Q+t0¢!U{aŒÖó¦+þŸ¼ª \9­•ÑÍ!Þ*µÃªíAMX‡ÒJº¦U±7j?6ïã3[d)øU}÷„{»¿¬©æ›û¬žÛ«Ü~ó”\YŽ÷Æ™VxšV]ë†gNÀÌÕÅ_ŒzF.b·jÜÄ@¹Ù:­Äš¾R™£/чö?ðä–Œ‰ýüj_PŒ«§ûxuµ{T1;Ýt_ üª•=dºÆ¹M¾‹¯aî“lRôKà•V¯š$cM3™Þœ<Œî*NèÍ~#²”_u"^Õ“[¨fxì÷i|³Æ‹~ÜƺŠõèŸô?¸ÙX#?øY>ˆ{Ô¿®u=¸Ö]n øÕ13Ú­sýüQ÷©©#³Ì÷Vð45»Èm¦š†] V]6øM{z˜gÓ«WƒÑƒ€’wbTëešœjºŸÑ¢Žò€ÿÜ©5øUWùÊ•÷Ûüg®?fò>÷¢/ôS€WUä­ÈyWÂ_±ª°®õè×Û®Ü[Z›LëV¢íß'Ffø©/,0ãiæâ- ñìDÞ•£esÇ´VVÛ5Ñ¡´mæÊ­°;Ó¯´F>¦>ƒ¢ƒâ•êõ%súhÙS.zü3wm£b_Å<'2’+‘>•ÄXlCy"H"õ˜òÈÇ4Þ© kâ”`ÌU "P)æ>÷¤ÝÏL¿ÊX³!KÊ¡÷<ž­4Fh„1¨é1ÿU’„ÈUùö³ò%ÔUë3Ê,qŒ(-‹K§úk&c¢”_U ²`ã‡jð. ޱRŒ/-Éö¦I¨'“ž¥Ó>í‚ÙX/+éKÓèÝYŒçÔñIũڎí»«üIà‘Ú¶÷a¾ï’~ÔF8žõ5q£$~{í sÒkË_RÓ4fT¿= kMqlvÿ̯ö©»Ô0ƒÍâäI¼õ Î-eˆ å'ó½ %Ó<Íú8wZmÛð=­££õ íŒÜit«šÞ‘ÃR—x˜n‘÷m6ýÿ#ÌS67¢¶aÏVé¼J§—z‘Œ‚uК·faî¤Êâ&ù@²ÌýÔ$éoÞ ¾±P'r¡,6‚kXa¼¦Y`ï1‡MC°£óÌÇyŸq|ÃÐ{ÕgÐŒøî¬G0E4óþ(vIp¶îd;Mèko…y«B ]­ù„½#Î^0ïà­ËÊè®Ð=îN©þë¥þnoR›Ã=c¾‘;"Kð)gZƒ)ÝŒç·Ã·g46b8þyQ¾†Áß ÁÉЖúmLwž›Ua NÇç_’·éa3‹^ Ƹ5A^O÷—kìF¹änàÕ*ÿ¥ß´µUM縎nZQ`T¹)1úsäÛO‹ù¯`&Ð.©wíÄšk 6Ù†ú©ÙöVQYQ ¼­@þç‡ñÙ–hÿ-Á÷k°'ÀVéßs§aÎ1ŸÁ:ŠÄ=ëW{ÈõkÝH?Ô7ãÝf7Àßï¾6U©×÷Vð(ØŠzÇw˜ŠvFt>F"l·£Úg³Eµ{É ¬›6°ÿµÂè'Am÷/~ß@>¥2§½|êÒýþ×??î¿šè• jüÕ_..Òëd»D£·‚_)«ê‚þªrÖNÕ›†ôÝ,ÅÌzs³þÔƒ×RzÒžQ?–ÞÈd0m™]~¥~ø9²Óßä[ål”]骅±¸–õèõ¿¨›C¨ë¨õ3ŠÖK ´®ãEã™Þ6ç°AVÙ ÑqÄ¢ke­¿Þ·áy½V¾ˆöˆöá-XMùW¯ˆ½0³åÉ0*ˆŽR6yE¡Ü‹§mµËHXÏ´oÃ*Xš/X—X¤{½ýúÉŒÏ*`ì{¨½PÌZºYŒïª‰Þ…5 ø‚´X–s)ú¯’øSÃ2© VýJ %WšúxÚƒiµC¬K"ëÊ`öA&Ñ-û¡ôÿÛ¹Zß93æ¿*Ë[Ál[ãmÃZöYäv:n]±ÎVb,2£ªÊ›É…jÀª¹B»êÀ|ûç+¢ÝØã%Ò—q˜À¯âÌ.£ï-×h‡óF­ÕœÓŒÏÏ•wå ž¦X¹§Ê=ÌÒÎÐàWÃx[úÞð fMï/;‹µ%€WÚþm7û¹Ãê¼o—rf’štÆ‹^&^é™’ozÂldÕÂ6¦ð*…¿fžƒ=˜fÔÿ·},0óÐãŽX?ªÃ4Š÷epîoÇ»ÛãoÖɇRÇÜC ¾æ\ð+ðJÑe*lß_£×iÕiĵÂu´oÉ Øƒõ`áµÂ‰=‡;BãÛ5—¿lÚòÐupls{ÿ¤}¦µ0ÿ6Æ‹†ºÁ£ßÁ¼5¨¦ÚË%ùªn°{Zî1ëÜ9ÿ¬ß´åÛ$n°[}Ýq‘5Ñ„è «Jtc€©8ka½ä‚olÅ.èÄ 5ù@ƒ«©ùÙ ¨ü$mÔMxË jûÞr?+ƒ¹²M†ûçÜ£þ'·»ïcÖ|ÑŸÁ~çGø[Ü_Ìz©ËÝPÆ}bòå:sÄ—ETÝ[c²ìT´a!ZTŽ:êZ/u&ÆVY—*­w绋þÅ)Å«x£JŇ‘%y?ØBÞƒ=xüJó›N»§aö÷31G/D>rqþoX5±6JF7Ûbòm\ÑL­N˜ÅÁªUÍÈÕÜë d,£·«»Úâo“©Ð-›Iޱ¨4:Šþ¢ë€W }K2òItN´ÏbX"fãE5N©?VN‘C+ó¼Fÿ•V<‹gˆçž.Åó0;9ëÿsg2°ZÒø[ýFi ÕýJó6.¬+_í¯ÉhÓ,æ8WçóÕV‘e¿zŽRbÑ YÌ}Ž'GÌ•P½/‘™7Ú+/aætùR*#º’S¡ê6 ùÕëkǘšæ Öâ½€g¼hy"¢þ¾ ‘8ôó‡‘õ™ŒÔ˜ α¾FL4ÀÊ ëãhM¢2æ’±m‹äy»A¹Ó ¬‡-2qM¥‹³…ùÅ-q‚·f=¯¬•$“fBu®Bp1Õyß± ³{’õÂÊ`_U0#Íž bEƺW ï(ý s¬w Ø.ö[s›Õ‘ÊfˆM##þãÝr›QßWŽé9Jýö8 lQäŠMg{¦™glùH„µ{£ÌbŒdsÌÖ|´r Yh<õ6œzZw~•¼)Ùæ>f%u2_¿Û_±÷bdšÀ¯b\j›É°÷ñþT•ü°‚jaìÇ–b«¿²¬Ï3™Þ€C`"iàWMñÛ1=™VÌ6îDÿUK|ï^¹b.šñ»{äÆè'®¾{Ò= F’jªûÿ‹Õ(€ ®ƒ}QÆÀ¬3\ÕJç3#E•S–a„5Uó¿&ôÅsû¡UO¢X`²« ò4Æ´Xòsøf¶z¼¢?ÂÜÔ•Ç¥ l¢úÔ“9mn…xxÕܾ` â¸c¾È×4ȵ65Ñl3| NƒŠf"£­ªcÞîà Âæãa÷v^uämlÙŒ™îlzŒžÑjr[pÔý, ¦bäûøÿ¹ÇüeàÕeùÄ÷Ѹçüsò›Ü ޳ÆMõ£Í!3Û-r=ä>†=8öàçÁ3èuÖóJšçµ+KY„”§Þ~+¼±«óã4P¼R Ê™òvPà43¬ ñª”oO}ÑO]%¿n‰»Ï=éëø~^õ²^|è¢þ_«:¢ë¥lt'Kuû5^4ÉèÞ®S¢õ—ÔKs=æòw e"óZšã =¸;5º¤ï³TOf¹ÝM¶q¬ð |FÜ&¿F'Gûsý`·,fÌÏõ³øûc†_ ž9û±ML-&-)žINP‰“>·ÕÒX!©í5Å›z±{8­ùÕ ?…±ìZo¹j¬>NÕ2éSO‹Õ\3Ÿ3ÉÒ‰WiŒ5¯Ô·ŸÎß&³RWZ¬"EufþÄÑÇV¸È–j=¯RTLàhU£Í12¾ùX"5oc¾ü,2¯0‹±%#Ãz^ª+7“:öúþòæ-ê|ªþÕXçß±g1/[e’Ñ,ÈCÒÊü%wí{{0°¦¬g§êˆ¦*ð*‘ñí—€#Õyy=ðê8Ö”F«µ‚ÅÓÏ ç­Æxâ.à†¢psùÖ|ŠyRœ9 ~õ5ìAµ¼Â¶¹ÚÆ1WñóÞ½†q_Ù¦8rD ¬ÞßZæã$°îóHó¨­¹Â;Ç ØQa¿”§NÞµàWÓ˜¯Zï½èÛ3µüª4ìÁŠXëÝÍÁö2F»>l‹áæ|t1zÝí:{Üœ4ºgÏc‡Œ[ÉAO†Ö`ߪ¢lgðµ4s5VSœî“ñó^ÌS?|¿F·:öqMÚc-±nêbÞ΀Oþn>Ô[+Y½¼:ëîâdÁlàÿ°£°¿V¹öMQ®(øÕ@ÆRuÀ·§P;³9lŸÑ°Á¾Ãûúpvãw½Ð–‹xk Ö–{qÏÊ9Ö/ÑO‚InOÐxÕÓ•ön¸{@ž0;Ü3~ƒ¿=hlŸ6âÆ¹½¾™oe”ùÖG#Ñ…àWša<ó;Œ¾ë\ŒÜnÖœÃJ]ˆYOh>;ö¶fSOÇÚØAÿ•jÞq¿Ë‚™Ø½ýý+îA`ÅuX__ûÙþoÿøU¼Ñz»ÝdÖ£ŸÊz÷º×Le™eN¹ Á¢ùÈE²ÑÄÙaçk˜ï¬µO˳þš²Íü‚6—¥1º3å|ÐÒ%`îš2°¬oçoÐŒpð«]þ+ð«vÀ«ÿù&þ*¯ºÓ¯E>€=h"U±‚7JRt£íŽ•Z¹™%MNLÿªk!ÖcÌÏ IçLaÜe棗$_*FçÒ&Z/ìÑ1¼¡¿FV¯:ó^|míOSüª±®<•DÊÇrsÚÁ~(GÔÐÛÎO1I±èÍ0 ¬zÌÃÛµîùäXf`˜É*á¤ÑÚÊ–žDå/eyª…Þúlò¬$Æq¥KXÝ0™VQ¨Ï‹^¯F_SýõÄÉôM«§>CÅØý ò®Ô±Hñ«,æ ÅS³)Ÿq­q1{0‰8–A+÷¿¸²4Æ]¨/noûgð¹ ë¦å‹BÔ2ù Øþ%ýNc¬€¤Lí ´1`*ö¶“—˜ïÚì%`/´$·ÔüAG{ *ŸfüU"f±´d3b÷>æ¯&Çl)?›±•Ó>d‡ÛßÌ6«˜¾Gª™öŽúwæ쑌³Ê1ƒ#wIS«hýtŒÄGRŒÞNL^•Ä­¶±ÿ˜9´‚µîÔ P.k‚·‰±î7bGW5w“·¶7—‚Ïìw¬¿@®2僅¬ãPÓ\ +i¯)¢:á< Þ›ÀœŽ8U»ÈÍÀ¾BðŒ®è¥6ÖÂ3`—”4{¨x©j CÈHQs¹¾ÙZc~$bÿ00k»d]ôW×=ív¢…eMeßû¥X3\®}EæR¯ïoªó݈֞‘PKðV½ç˜Œýó`0£½¶¡UÁµ’MÞ~VÂì¬Æ˜? „mƒ÷W“q°'¸CAmX⽜÷MÜX÷ˆÕ\ãWYÀÀ~¬—ª¾íá`ó¡þU¼uz^úÿc8c·v%‰8I´Óbj.¡¢CE ëè”ÃX„l%…{M «üU‹Å·+Ë%ê•”P¿4ƒ>ð°îj"}Y¥%¬xŸCŸ’Ú{©ŒÜ*IO–Vg-Å­°}²„ª0UhÁ&1ž¡9ÑQ¹YEÞ–ãgJ³>E"ã JÇ"·bH™É[…8¬¯­8éæòþ²&vÛT¬gÅ«\œó_þà·ò18»zËÎbüÊ`£øsLÚš³“ùÎEò.y„Ž]¾¤›dÓˆoËÇoM]ŽÉ籸œ†àWÃØ®`9äâv‘üfœéC®µÇŽ·™•VG}·Ô2KmÄè]Ì—æK7Šöå`n“ºô_ý!="¿1¦4Múš'l¹H2¹Ö.¬”ÌÇ„Õu3pCu“Êa6÷b¯í@«Ë‚}ì»›5ìÚš/ƒì¬ͦío2ƒ›±²áͳ÷™ƒF-žKxŽú¯*£Å£ÀC×§2©³#§:rµaáÍAß÷©:àY}°öÂú-hkj}œc’mû!öþý¬ÓÈ=ãö`•1•|ÿ§ÕxõÕî9ó‘,Œ¬ÄIð7ùÜBìØŽøþ4Œi]ü0äUù³7Œõ¼nG{»¡UIWêæ”‚ÌÀÏÏ?T GD Æ»{‚:òtwâ»»)î”<¼šèŸö·5í3fZ\3·ö`kó°l±Ñ ºÞj Õ“É3ãÑÃŽšaƒ¹ÉeíÖöôòÕ¦®gGÌMüù,«ôíãšX]–g]vèUù^þuàÕe7O~‰›ê“ãžñO€/†=¸ÉMðC1ÖÃÜJ7Úcþàænwö Þß©ÿ*ÇNF?gcª¯Šh¯Íf=¯ZÌ%ì,Oáͪ'S3q>hà>ÂXÕ¡~{ pøFüÝ.ÍöŸ¹Ž­3îàÕ$¯1ºç"¯9K=™*MÝ`5ë§z£ñ¢Ý•K=äY¼;IÅŒ0”¨¡>í&ø¤ZJõM| ™ÇFYl÷¯t^#ûüV_Ä»­õr<Ú8ZÌ›0]ÀÛ6­(Ó—w× ŒŒÕV#=Ò,¯ÿ²Ói—…:Å¡Cq£N,VA+K¨••N¯VYr ›‰©Äh.YMæý©æ_>-Ô1ÎŒ±œ°ºsÑ££-rèÏ/û~ïûÒWŸÓÍ‹UŒ[Ý’mUŽ×œù8%8V5yc©ÚïaäVjì9©ÌŒ—0;=†_-±_·a+³¬1¾ ó¬í©^þ3öX"ùÕ'°ö¾¦¯ì)ì”%Ô“I“ÃÒÔdЕŒµª5ôúHXÏ«~Öóª ;«„©Í±¼ ³t{N1¹%,¥Þf ùìý˜Éݲœ˜ÖJ~^õ娟´Cì¿æN«LpŸT63ìß̽üã¹ÕhBªÙ%ùVçý/ð+I3z›:ÊNUÀ%ZÔJÞlNŠÅpfÐÓ”D»­j,Ÿ¥ ÷s÷»ffÓT’Ø•J?T:ã¯*ДL=™Ü˜5V‰Õì“$¬Ü\:¦Ñ—Êw‡J£ÉVo5Û×*ÇüWITa/{oõ8“%ÔÂjÆï'óŒÏå{•k©}P†˜I‰_¥ÓúL G,‹Þ·0·èjìÔíXÿ¥èiî#Zé3Ef&VJ"÷ XËïQŸ!û«'VÚ0Æï‚=èÍZ£­+§o޽¥J]Í$jªbW+¬sÀ+å]›é¿jÆÛ˱’e:›qÄÑÇ1þ‡À³5{ •¶¼BŽwÂö÷Ødµ¥wM®·)¬vÙ¼ˆwßÉøö<Ó1²U*XUa, ®õMgŠ™¬—úÏ›ëñæf1F£'×÷p0¢FŒö8JvYÄ*vï`wŸd=´v°¿²?ðmŒ4ïGo þp-³Ö>iŽ­%ÿ%ž3¡>Â)Ø™€ú¥™‰¸ýAÑÓxSšÙtŒ½S—u§:©RV°ÖçÑU}LrìæC´ç.Y½äj¸GÝ.e|&Ïçûì |r¥‹·ça.Æh£ñåóè S¤¼™Ê4}©Íüm¯Ø5›ñän˜ÉOÁ†sXqâ0¯®òæ± #ÞÂïîêI:€cÔqW»“ò€Ùàfû³~kPÍž5ã»»|#ßÈ<$Ëm\´dt­U67c’eÆÒû\ ïÚ‰7´c%-Í7ÊgÝ¿VÔgh^u#°õ¬ÎY8'*ʆàìÁÕàW·I±Íðï¹™rE¾ðSü¿þ!ÿ3ÅŸ2ümV,P³Ã:Êš4"ÜÓšT{0“ŸÉŠeø„$ÔÌŠåã´¦¾hyc>Õ••£ò{r,'•ýŽ#“ «L«·^ëåmÁ®T Íg¾s ~£x¥ÚpŠÝ+a ªrù•Æ3 áýàÝÒÅT2¨“ÐV¾“V±|½ãÈ„-™Ê8®÷%ÁT#B¯`üUcZÒ°#bÍëùò욘5mc) ¼Ì;ʃv Ú-VYán0©yàWyhÃ7æ"8ú“ÂûÁΑ£RÝêIâMëˆ ¨çÎUæ¬Í¿R”^‡§77ª¡}Vú àÌ8­ÖŒµrTö`¿©~Ý-ò¶T0Çx ÜÅ|\±ß¢¥ÕÁG›ç£×A€Læû„¹Ë£‡?ã'‚“໣1ïkX5©0»œ ‘ùøé8vvŠ9L½—μ·ËÃÕá½{ üÛëýI¢>C>ÎíMÀ«ºî>·»¢ðªö j›Ìtùö]™QeÁŸð¾AذU9E}Éu¿WË3°ç!5žávŒc|æÖ}¨|z›šÌ¯0êDuQFE? »AmyR:c÷ÖrcÝòÌÝÔo¯gš¶àWû}߯<*Û­þ¹Þ¶ †çh“m´–W?ìæ]˜›¼õ*ô±mªƒÕxŽÊàê¿z-Ðö<ÎZcù²:Øãþ¯¨ë¯²Ê¶ûœûÿç¤'$ …@ $´ ´PC“"MŠ MDéØAPTAºDl ¢ê #ö^QT”¢±"£ Î8ÃSßÚ뿾÷ñ)÷þ÷ÔuÖÞgïµÏ…ÃEÀ«Aþ#÷°ÿÊ]+_Ê?üÿOÀ¿$gåF?x5Ã0»Ì$wø•ê‹6•™f‡û<|MÔ®ù89v Z3=+À8hì¥ÆÞwÌñ¸ˆµ<¼UûgÈIàÕ«Aò¬?åÒa.Ä+¾rE~»ÿÌ Á¸>¼j ¬¼3ù~ìsø”Xê_I°ÂžGÕ»¡À«Óˆ aFù <» õº0žAyGKŒ†Æ1Ô¡Ox´*ѧ´EVÙÍÁÅäWËC~©ïÅx†µr4è  ×¦vËŒ]ñDë¥6Hí®7lú(«Þý £RÈJêqwÕçgäÓ“U‹Ü§Y< GùUƒ¸+mÓ"õ7âÈEº£¹TÀªÍ{lþ´–D³É¬y«_‡ŸU]Îdvroò2âQ¤ª­\/®Õ„Ì)1]ÚŽHªñó}h‹Dõ›Wsiæ³^a:Ñ­v<2#‘hšE_žeæc‘¯œ÷âÙƒ–’e~Ãs•.·ªÁ_Eñ'©M7™>öûaeå› ŒèÓ¥v‹*ã”áŒÈ6•|}¬]~¥,O£ÅLªO §ìÁ‘´£ŸKxíГ¡³Ô²e¦_³ÓΰÞn²Š¬;¥ð*Ù¨ßð;Sƒ6o7ÊsMul½4·¬~†¯¶ùlÏ4؃õc1“F¼]#Ufæª{i9VÕeŒgh+sþ4È­•#àg¢=m¤Úœ^}Ë“ójp‰‚«™ ×Â,°ŸšGŒj÷ÆO’÷xw}1ëã¬E_µÁí@úÔÃ~¯Ðxõ媶ʅø¤*¢ZgziËñÔýRß~mŽb§íÁ÷®•;äÖa•æ2žÁÅ.Ã:½Ñ•Úc² v^õ£ž®b|»úÛoe‘à\¯Âœ…}©^ÄuÒ‡ºS‚‘,b=ò#Ìw~üª3Æ¡öà·ô··“g¤Ú%ù w¹{V3›Ü]þ àU{»Ã ¿ºŒ£Ú¥àWIÁ&ÛOž$cL-3 #5k|%F±°j=5ë;cö;‚«öÇ C[_$ûÜ »p*¾o"+ÃÝO°ça÷òº° Ê×ò ìA›ð‚?Œ½G£.4»a®vcüãî˜)‘%À«ãáËèýyhÅJ“ k¹ ó9PíLŒF£UªœmðI#0+°Nz-ÚƒÝ}6sgXí€ÿxUé£Å_»º~›ÿØ©õü˜;ˆ1W¼j)žÀ¨„±ÎØ)›%¬=Ø”7vky?¨÷¿ãð~½lC_ÇHœ Å}¶íY½-“÷ƒêQœEî³£x{p9óhæË*?Ûw!GºQ>†¯2xÛ“d4f>M¢ªwC©MœÂšJ¯3ö ,ržª;ùÿëÑGÕkêóÕ©äm­YÇ!ñí…Rú{ù´ÊêñÖ-Yž9°¦"+®½MŠ=Íâ^*}e}úÙÓ%ÊwÎàW¤ ؈?ØÆQø¸¾hc´*ÈWJr܋ߙo:«¿•+j¼¨ú+ò‰j¹´wkÅÕK³9Ié›Öç{Ó0š[°coå¸é}Ï,Þv¨Ÿ°Ð|Ž]¡Þ¯åXCoÆãE ØO8aRqvõ7çd-ã3{ÊO¬ä©VlGìæ&¦ÙdKœ Ù¦9YéjU)#KÆÚÍ5ÃÌÞ¬>…Y«BǨ£dØîf4ý{Á¯~7;Yûf—™)À+U¤>nk… £mÎ3=b«¨ßÌ7½bGaª_pªù»-ŠåX/ªí¼ªÃØÐYø3ûLyñõ)`¼Šñïgèñ>´<È|ž¿Ò %@¾×0ö±ÌÜdOšƒ¦_kîËycVô„1Y‡WamÄ 9š¸ß®ö`%cÍ;S‰¸;㯪ñ)FB=ÓyàWª%½_¶G]¹;è^Æ:­c ÀlþǪ%z…ëëtbìf¬À?ðíˆÏU¼ZÎøàñr‰¼"§Ð³Ñøý`GæX¿ƒõ®ÑÊ €TC°ƒ_¶çy61ø!î¶…Åò–ôpâËÝeàWÏ™{Ýþ3¿)ìaŸ5mƺ{|[ß öàéÁ*Û -¿D®1¡Q¥ÿ>X›ZÙ¨„U§»R¯Oó?ÄgÕÇgW€5¥bÚÓ¬Ã\,+Â{ÜáÚp–Ü)“üa؃'Ýuò|ë§ûßüßýóò/àÕù~½»Ô3›©n3ëM|ƒ54ÕÜïN„¯:)¶š"«þ3ÕÖ)Àªye!Z0 ó ñJýä ¬îNŒ×Òø«÷+^ÑIƒ š{PëyÕ¸&~3õ»¯^:OðWàë·cÇõ‰1U_+.XoUÿ¡cz;ÖY £Á5^tfNïÉï~ĉ”D=`U5ÀŒ_­Ù‡õ=5®f¥ÝŒ%_º^¶ûy¾'ÙÓù–õRÕßUÊ|çÖ¼ËÁ{GÓíùqÕòm³Úøíu˜µ*âTýV©ÜÕYä(Ñ]CâB.÷¼²¶"ÚWŠŒ£ªEž3˜šºO‹©œ—GµæædÓ—ž*™ñ˜ˆ¨Ú}fœËý™“Á¸î$ÆreÒ¥ט¾¦¨ÞDnÎ0ÌÏ#î%°® ýuÑwbŸ¸Ÿk…ý´EÒ‚]vZ߀úfªß®9ÄcßÞ‰x¡>¯Ñ×LÞ•’«Î@z¯š¶ºg7È-À«ñD–e²xÕ…žíUrüj1¤ 륖‘ð}.¹™fz}ßlƒO}†Zå©Ä¬úé§Ñ®K㽤jv6‹gÐäà‘²Æ–¶§BL>½ÛÝ©«Æ˜¨<æ/'ѸO"Ÿ˜Ã¬D"eó|"¼Êd¶a¤‡險rTã°n¼fDäÁO §¼%ã¯Ô‡®þÛ†qË/—J£Ö, _*9~X‹Ø¥÷•—UŸ;XîÁxMãoJÁܧS¥&û°Ø¼¤QŒ…ûC^ƒ=¨Øû4fìNà”2ÇÝÒÛ|)°þ{Wœ‘ú~åce8*L”/ЧBSÆûÊåç±3èŸÏ5Ì`zûžÂyñ¤,ã¨t’.v°éÉÌòGìr›f·óîï>)7£l-ê!cþ ”}ݨýXüêVéD¼J6Cb‡mªÑ™›dž³mcFû» HÙÛÌæ}H;eLXií×ö0k©jîámàyæ Œ¬+ójø M7Œð 8Õ»„ dã–Û˜CFcŸNa‡L”·±²ÓÒÙ“ ®š`´bgëÑk¼h;æ¼¶‚’Ýáɨ$Þ 8}Î1ïPå¦à3àÕÓî9¼¾Ð4a½‰Ôòs¿¯FÆnÀ¬üGºÒUÅšìóq®k•ÐѲ–Þ·Œoo¦³üF5¢~ÍÒÍGOŸÇþí ‹å5̯ڪãƒïÃQîž°[_÷»ë릺W0—wQý˯ »Û½¦yB|×Ñ·5ûå ê×ÛŽ@Úr©©ofa¾‡¡Ï7ëY‚ö¬AKK° ¿ÄתÏУ«Ù•[0dzОæ²1ܼÚN’M2 v˜ê!_+ŸÈ÷~–ÿÅ?ë_’ãríoqSý$³×LwË€W»ÓÀˆÙæ/î»ð%ð¥~èÝÓØÎc¥ U¦ºž5¢*?8ƒñFZáú¯XoZ©5ÐòõT5ÿõÛÛ¯ªÁ¯r`sêíÛï^óåÀÍ…Ã÷cÓcÈ S‚Ýv 3V†³þ`kúi„×µ˜ÇjŒ{!™ºêoÄõß§KOÖGH£~ûÆ ºcºöàU¾+cÁWËçÁÔ`9E+àõ"ê3¨"çP­œ+‘–æœUy´_š£G‡™?X‹ØWG"ƒè–/•(¢L¦ OH¢ÍXÌw*×ÊeÖqÆgå`›ÒT‡<§Iœ©ÕgF·tõé›ùS[&¾÷Hݪˆ·qžŸÏ˜öÈÛTדÉdœj¤o¬ùrÞô¥0ž§ãÊ4¾=›y8¿*$—I 7‹bé“÷õ§Ö–ú·5çÆÄ6ǘ_ÌU.öaÞÇ×iÌ+Í[RC~N+UÊùŒ½WªÍ¢õÓЂü=Ÿ¯o‰]ZfÚÅcûOJiÁq¸«é½néíàÕùlßS˜±#XÓóQ)•@œ!œƒGì*+v·U?ÀfiezÚºŒ­’®•çö$Å”Çn“ Æ_%»NØÆÛO2ûmóØÉßV£Uf.Æý¬Þ…@«KYaYñê.êVu`¾sc³—9ÃÍ»Ä+­,¹{3=¼Šyq…f²ýÙ–ó~0ãiÌbi·ã†Ê$"‹æ°\€Q*¤¿½øšæ)ÔæÍ]ÊÿÝ¥ÕfL|=àQÄ(‹% ã’'Q è†Xiõ‰ux¢Ðg•I›¬1c8“Yé9‹ÏÉ”H{*˜™Å\Ã,âS_•F”üÓ÷žHM˜zÌæI¥eÜ8!¡¯hÉŠ‰)¬ÛÕø–ÏŸçð†ýO}ÑBöÇ“esÌ¢¼ï,>_Ÿ4k{V}&cEf`V1bµøðF][w‹œ×ýž·2£WùU:øÕ“hî¤O»«ü³4‚Hßk®ÄtbôDcàU†iÉ{¥XiãSjÓϯùÎC9Å>{ OÕ÷VK¾moF°ÂÆv¤ýÑl±Š‡waÏ^iÄÜqó žµÏðnxµNÊ­Ö½N^}o“iÎ0¯ØÆ±Ð(—»ØRlæc,æc7_ƒ]6s®§ÏcàŠwR!j-öXŽÙEu¡qædø¥ý¬D½ ›jÃ@¤ÖÒÅ̱_˜]°±ºam®ÄSÞeÍ…‹i®ÆÉÇ*Ý”¸˜ªm÷ã7Þìfî­úëµÆf'ü¼)vs5F©ò´¤ÛÓ@£J0­[‚¯])øÕA°¹Ú°;øÿÀâé!«\ºýH&1þJãE§Äuúÿ¯a½.­ç¥ú Óð»žø´m˜¹~¬²ÓŸÑí¹`Q—2.ê8~¯Š6—ƒ_ q[ÂÖòªôqâ+âz2+Ür¯_ö²»M·„‰î^X¥ŠW+lj7ÙÎô_k}çK¨ÏP‚þÞ‰çu^«„Zƒ•rœ>¥ÑxÅz´Lkš¼Â(„bY>èÎÁœ†Ý;È?ïþæÿínÆN<á/÷>áÿªü¼šì—»i~ŒÙo.qkÝ8¿Ÿú¢ZÏë›ðeÎb7Ù`š¯Š0»ªÔw3þÕz[‹ϪÑÚâzÈspµ¼9k*T œ®–ïáoÄ+j\}æãèíé!ð«öþ"¯5ƒßŽ}ä|BL«¯­^m&¿j€>­Å¹Ø¶íhôr>+·¥ð~ðSê!kæI+fÐç=OžG»mµÜ ¼KÖr,¿ªŠÇ_}Ì‚=˜Ìlä_E뉥Òg>ü*—ÑŸ±zÞ§u§^ì%°«è½J'«ÊatU:q"…U–ëñ=9q[­˜üG½BªË¦±\ò®ÁÔLN£m—ËñQ>N ýH)ò§‚{ä¿Ê$ f““xÆÏg26‘~¨ZdZŠpM‰]j6£Ÿ)òk5G¤Qƒ©cÃ#Úˆ^­êõeÇýíuØï Æod2 ,Òô†¶£—E?ÞxàU%#,Ja£"` ðêùŒB±ëìƒY8_5naŸô3ùf{¼>οy–E=™/¥ãÛ5oúøFsâê2ð‚GÈGÓ4:Åô6ªs•‡³wNéUÄÛ*©{ð"ú}¶­µvñê>)2Klm£øþ…9V¸ÉèèÖ5½c[¤ˆ5t|ý³Í4¹;Ó¼gÆ~眮ÄÓÛ˜yTjh &2\ô.¾ã¶Ÿº†1«©'³«°\Æ›Ãá)˜HOf©ùgp+ñ¦ˆyÖ¼iTø'µå Žý(àô­xB!fZïÉ’À¯ºÉíÂoêšíè±*dUatJ1N%Ô¬éÃ:]qþÔ¿j¡ `Á؃O¸ðiù&ǗœdZê¼=~uÞ3=è¿Òlg=ÒZ{eØ¡SÐþEoè«€^w±:ë`Æ_5âýà'èuXoa•¢Õ§Ãá¼.ƒœ÷­Ý0÷7pÖuî€_î7„Mí~3;a±Ûì»ûbØß«mrðG,Êwž-“M ð+ (ÅêØŽ ç;úÝ+ÐëɯF`ÌTe¦þ}{¶?F}C¸×ÅÜòpXY?ÿ>õdV‚5~æçz~õ‚êÕ_­qWùÑæ93Ñ­w£ý>àU¡\hvºÃá3r™jVËNSߎÃçO§Ö–fx+7ÖL𠌫îD=d`ѼËÙòìAƒ¹k.wùo]¦ï{°‡|ï €W_:7yĽã{ú‰à]=äà•õ1͵¼Sê«íù¬33gŸ1­¨Ñ©Qu XTõ¯ª0’c‘Y9i‰‘×»¶6ØaÝ€jº÷WÊ»5˜Nnp¥<èWÀÔ=µBj‚1ÁpzˆTcc:“5ÏÓxùˆV]«–íS%^bH*Ïÿ4‰´ÕëÅýÔjÑ5•ÌxÜTK*ZÕ¦6LÖ¬Cyæå¥ð~/—q¢)Ì•ÎG…¦Jz­"žÓœ1“,¬6o.ÈD"G‹­q,5ž?á•zä[Q­8“1U¬šÌ³†lCmÃBZ§»U_¢:« åZ×ã¿ÉXKë°ºçÆãÛ‡c-T1† =4Ç0çéä'5òþª/ýE0£›e¨Q«zŸ 2¡Ùoÿ ó4š‘øª‡[iºrŽZÉ `W9ùå XMO`¼4.« v²Ö£×÷îǬ¬¯â¯òm¹HÝý¶ÚÆ€WêiÛ~µÀ&©¥_½‡5x'í¾LÓ9¶AÚ°t’ûÊf½«n^µÍbiŒUàWµån´s50Yµ°º`^’­ªW‚%`5˜}øy¹Œ4'Â[Ã(³`þ¬Â{Ф-øÒ|-õ¦âϧòÑ ëš?wþ­Vu XÖêii"‡Ð– ˜?Ø™wg“ƒ£aêɧàÕ~< ¼úÝ¥Ä*°J¶Ê¹Øê34ßDmÄšíZõâ:ì]ÛZü Î µÌZRÛl(÷q[`ØPàKTó&»ö ú@®-~¶¯&cY!%A?bA™8s¥F50^àBô!‡¼¨Ÿ|šÙz‡xˆ]ÓK>­$]¨–\p2ì{°+¬vf;w{J˜€P×ùÍaK»×\œ0ÀøBóÜi³ƒ„`™­ÀgÊSdƱŽXN¡ûß¾+GýîmвYÙnN°-@ü¬7¡U¶Jdeø¸û…zÈ‘ÑàW{ü ·£ù±íϯNË2`ä2wµŸdvšIîvw‘ßã>7-ä2´îdxOTõƒ»MìÁF`¶çam¯  –Æ3´§^Ÿúiúctï¦ýª ,¯‡iN+5•)~„=¨z}À×Ðoô?;õˆýüª kfìãØ§Î_µÇèÞ&éÁz[ql…>ÝߘgÓX É•˜¦X­K1¾ç°ŽUÓ·%Ú ù8znVÂ*× º6È»ñ¢_z»Ÿï{ÐÃ}«¼Tƒ%R Öl®R"P&Fn ú–@{« ó›G«¨-øÚa¬ÎúŒeˆ|X©ñ¼ç&´ÜRéÇj÷±+ãɧ÷GÕ^"•ÏL~=„5q2˜OÓˆ÷Ÿiä2êãE*ÙqK3ÒC΢×êOÍ«¨þ`ëy%Òî«Ãšžú¢EäW©´’›£ÅQ¬…ÖÖê:šaؘÒsâ~³FÄÞ丧?M"í¾ºŒ‹âíÛãì[ƒQWœ)ÂΛÏ84½ã«oÄDxµ »ä¤üL|{‘Z£Læ;Ãkî2Ê{Ã^¬¢^ŸÇ¬zS×”³'Åàe)¦˜w‚ ±fŸÂoµMm%xu)çëQì¶­`Ëz'X.lKs­Ø]ö +výí;¤Ð\aSL3´¡Æ< ޾×èØzS[#%Vµ—^±36õ¼&˜çlÇXŒ¤;°â:ƒèjØþCp ñd/Pr3F©>Pì ôXãE›ƒ‹ý-üÔþýé‰ñiŽ €%Ëô°_àÌïõü!«6%wš |Y ÄÕHPÕŸ¬k¦Sùg·Þ—‚_i.E¬ÜATi†?Ýèçш„GÅØgÌqŒ÷ÓàW'À¯v¯F¢·µ|kƪOøQ×Ѿ$ûb7áç°S/DÚ2¯wÏõدN£E}О)à.çá$ëÓ»¬0ž«ðªñ~ÒQf¿‡W­0#Õ° ]?÷Œì"\áR¯¯Ú J˜é6ú.¾ÄlÛíÙØ¹ØÛmO2Mw3ýˆU·±㺃‘è]~íÈÇ.^\4Ý ›ÿJjºo^·öà&¹ÈvûˆWÈqàÄþ#ÿéMÀ®9nðj‡™ {pŠØ¿Zj_= p Fe™Iµ}±Þçãkõ·w–ºÌ¬Â\µáýÿôm7¾¿£5GÞ“Üohãð«—âÛû›Ð¢3.Õïô'Ý( ìCî3ß?×xÑ/c5.ÍÇbåø„µ’챃¨i6Öo€õÜ€Õû4þªŠ;i)Æâ{ô4ƒyÊm©R¦q‰ÊªÀ‚u¬“ÛìÃÁXÆ\Εi~žïM=¥åòL09J[ª™$˜…¬G¯Z+ãÀÒÖkÌxÔbFΈ·™Û[+ΪêI¤§W‡þí4Ú€ÙÔ©M^¤ê͵ù¹jª BT/õ¼x>ŽúÞ ¨cÕ}(æ;£(özô[¥3Î!ªQ“÷¬JFÜ_‹¡ÉŒgÈfM†(^4ò_EJͰz³a3*–v'“Ò{Àª…Ô§¯»€Ì,#naæÄï(£;ÐÚ´1UônŒã~_†Y]@}u½3mÌø+µ‹€Ô°/b×Ý/çíÙ^ég¾’ˆ_õ’o°N/¤EÛ»ªØt&SÔ|çbÕ¼+Mõdt»€ Ä­Þ´` ;ð[m]ØvÍùlÖ ì:«÷¿Û¥ÄL¶iF3j`·í–ƒ´CóLql½4±ê±;'Õ±Ó6ÙhÄÈó²íSìJÅÎXÍ|çl`Io°<ÚÐÑ«£*¥è}'¬€•òøÕ!Ö;b^ ?±¿²Fðb`sb¸«¥RrÌû•9`ú •ﯦ¯TZ-ž•XÕz7_Õ6—aFºc|&€[Þ „É êZ°7ýüÝDu…+UÛDÎšÃæCŒ f!8îšÃ¼XÓÈäûJÊŽÅûVºßͲ(vFø¿@‚‘@~õkeø+1Ú±O.‡¥w»`ãIÀJTò5þ/adÍkØ›çË{r ÏÓsLï§»=a[°Û¾.æ{ºAîiyö`_°>lkŸ73ªÜVðnæI¹ÃfÙÁMV£¹§ÈxðêÙøª?«ÇÜÃ<ïéèqíÁ^`áÕTǬ„ªUïÏ`Ý­õáàÕŠp:ð}ŒÅ={ðZ Í1_~uÄ¿†][m±»Ø†í=ß-rüCî0l°%æ÷Uø,z¯™ËM;£8c›/ªÅÞ-š‰±Õ,èÀ‰Á@É{ñýª½6q¿b;É=Ôg¨ôª±wÖeù{av×ø^÷Ðê<¿3ö9ëѱbúÛÓƒÝÀ+Í…WíVeùzw< {až¨ ”שV¥¹˜˜Ð sÒȦvY{´CýíªºQVÚ{©×—KCãÛ{ÓOs­ì æ#ÅÝ c±ï4.Â\F÷wMðüÓŒYªÅxÑCq;4ƒ>«ô¸ç=‘J¾ŒkÊŒë|j>N[ê¨+úh|{.£/µÆsæî¥cP‡*ÏkÂh‚D‰ôE³ã˜”ËÏH'KÒˆ‰Æd3‘—«D2‰Q™Œ•ЏV‘¨–Dê3Í㕱’xë”Wš)d]éºÄÉÈóžAN•I|ʈÇ3Ôf†PŠü/êkÃÈ8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run004/bold_events.tsv000066400000000000000000000002461323370031300255610ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 shoe 52.5 22.5 house 87.5 22.5 chair 122.5 22.5 cat 157.5 22.5 face 195.0 22.5 scrambledpix 230.0 22.5 bottle 265.0 22.5 scissors pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run004/bold_moest.txt000066400000000000000000000210471323370031300254110ustar00rootroot00000000000000-0.0022038 0.000657253 -0.00225121 0.0327104 -0.00225939 0.0462122 -0.00224518 0.00111251 -0.00324885 0.0314803 -0.00227012 0.0462237 -0.0025249 0.00165273 -0.0036134 0.0483899 0.00130039 0.0462197 -0.00330594 0.000947694 -0.00365741 0.0381138 -0.00227349 0.0461865 -0.0035504 0.0014824 -0.00407739 0.0380388 0.0140797 0.138503 -0.00363321 0.00211288 -0.00364518 0.0267352 -0.00231206 0.0799275 -0.00416987 0.00252989 -0.00333806 0.0379272 -0.00233169 0.0571061 -0.00383281 0.00193655 -0.00232561 0.0378856 0.0241055 0.0704305 -0.0037239 0.000945506 -0.00178843 0.0236684 0.0340827 0.085139 -0.00484008 0.00152055 -0.00232561 0.0283524 0.0340787 0.0725327 -0.00411087 0.00136393 -0.00232561 0.0194027 0.014901 0.0851087 -0.00401844 0.00132132 -0.00189676 0.0193145 0.0255424 0.0851021 -0.00352125 0.00097454 -0.00134906 0.00633625 0.0296181 0.0851117 -0.00387281 0.00062502 -0.00189676 0.0267368 0.0340752 0.0851008 -0.00431325 0.00108028 -0.00176497 0.0282837 0.0340514 0.0661846 -0.00464043 0.00109172 -0.00239799 0.0247206 0.0340631 0.0733431 -0.00512531 0.00131039 -0.00229454 0.0400035 0.0340567 0.0605692 -0.00355681 0.00062502 -0.00195495 0.0514796 0.0340251 0.0869438 -0.0039551 0.00062502 -0.00126344 -0.000318291 0.0518102 0.0869151 -0.0039551 0.00104823 -0.00222075 0.0568155 0.0361858 0.102192 -0.00352534 0.00212939 -0.00212594 0.0350705 0.0162326 0.108087 -0.00278479 0.00208011 -0.00260157 0.0335435 0.016256 0.0796163 -0.00391885 0.00104823 -0.00199077 0.0427047 0.0290305 0.0527493 -0.00359708 0.00152556 -0.00165774 0.00938368 0.0417272 0.0445255 -0.0028888 0.000257427 -0.00202364 0.0394075 0.0417464 0.073374 -0.00191162 0.00171317 -0.00222582 0.0277549 0.0417592 0.0231421 -0.00301761 0.00238514 -0.00222582 0.0319423 0.0417871 0.040776 -0.00341665 0.00184376 -0.00214501 0.0244961 0.0417847 0.0407495 -0.00295288 0.00135502 -0.00179057 0.0223476 0.0417808 0.0713048 -0.00259785 0.000994721 -0.00131663 0.0320145 0.0417848 0.0713095 -0.00346889 0.00197788 -0.00220064 0.039074 0.0417784 0.0541045 -0.00275485 0.00258091 -0.00220064 0.0390916 0.0417565 0.0727333 -0.00288416 0.00166824 -0.00207179 0.0390586 0.0417774 0.0727029 -0.00338952 0.00166824 -0.00220064 0.0267897 0.0417763 0.056351 -0.00215585 0.00205237 -0.00220064 0.026207 0.0417597 0.054336 -0.00262825 0.0019254 -0.00174552 0.0206427 0.0417577 0.0627008 -0.00213345 0.0023821 -0.00286048 0.0218294 0.0202269 0.0748753 -0.00240582 0.00166824 -0.00142734 0.0390354 0.0269902 0.0727954 -0.00272898 0.00133791 -0.00147429 0.0291907 0.0275092 0.0727764 -0.00267769 0.00202025 -0.00209163 0.0365487 0.0342231 0.0727884 -0.00237864 0.0018678 -0.00168473 -0.0093285 0.0316462 0.0621365 -0.00237009 0.00217304 -0.00196215 0.02597 0.0261792 0.0685675 -0.00214603 0.00164975 -0.00127352 -0.0105316 0.0155542 0.0727653 -0.00236407 0.00200291 -0.00231445 0.0177336 0.000194991 0.0727634 -0.00251444 0.00155365 -0.00182059 0.0118784 0.0208929 0.0727509 -0.002246 0.00200291 -0.00180226 0.0372579 0.020903 0.0573288 -0.00274586 0.00200291 -0.00210707 0.019083 0.0209081 0.0727492 -0.00275075 0.00254077 -0.0027029 0.0305236 0.02091 0.0584548 -0.00219089 0.00236307 -0.00204984 0.0407931 0.0208904 0.0479726 -0.00224255 0.00210984 -0.00169213 0.022188 0.0208763 0.060385 -0.00267671 0.00294178 -0.00209664 0.0240165 0.0208863 0.0767821 -0.00254992 0.00243208 -0.00179837 0.0273328 0.0360301 0.076777 -0.00268142 0.00217554 -0.00184172 0.0372762 0.0208927 0.0767679 -0.00223798 0.00231519 -0.000713339 -0.0313589 0.0208474 0.0767647 -0.00227792 0.00202335 -0.00112404 0.0226437 0.0208546 0.0767753 -0.00163648 0.00297156 -0.00168362 0.0226634 0.0208685 0.0554213 -0.00123627 0.00264636 -0.00172856 0.00821581 0.0208676 0.060761 -0.00279598 0.00293816 -0.00210182 0.00749627 0.0240568 0.0767914 -0.00241125 0.00313534 -0.00245873 0.0226855 0.020854 0.0723705 -0.00170534 0.00258658 -0.00167609 -0.0166021 0.0208257 0.0676584 -0.00185719 0.00266107 -0.00184349 0.0260326 0.0208323 0.0628226 -0.00220192 0.00220008 -0.00102752 0.00179112 0.0208384 0.0767807 -0.002051 0.00349178 -0.00178217 0.00180947 0.0208539 0.0944962 -0.00233641 0.00244033 -0.00160353 0.00953092 0.0284469 0.067541 -0.00246654 0.00290876 -0.00195158 0.00182625 0.0208486 0.0622937 -0.0021857 0.00290876 -0.00203217 0.00182938 0.0208585 0.0623073 -0.00239468 0.00290876 -0.00203217 0.00182938 0.0208593 0.062299 -0.00197716 0.00290876 -0.00149994 0.00966822 0.0208539 0.0623156 -0.00279861 0.00290876 -0.00203217 0.0240623 0.0208504 0.057338 -0.00202393 0.00241206 -0.00131642 0.00563338 0.0208508 0.062307 -0.00239115 0.00434961 -0.00313031 0.00570992 0.0208484 0.0648502 -0.00201876 0.00294846 -0.00171046 0.0056503 0.0208411 0.0792201 -0.00253697 0.0030169 -0.00166981 0.00564347 0.0419267 0.0791957 -0.00206948 0.00311175 -0.00241709 0.00789095 0.0208385 0.0750758 -0.00238013 0.00294846 -0.00189681 0.0221575 0.0248338 0.0791901 -0.00241351 0.00209054 -0.00135062 0.0221219 0.0208144 0.0791633 -0.00309094 0.00304994 -0.00291028 0.0222154 0.0208462 0.0791464 -0.0020973 0.00310945 -0.00242541 0.00549705 0.0208239 0.0659425 -0.00119854 0.00391722 -0.00288599 -0.0140833 -0.000583217 0.063577 -0.00218701 0.00349218 -0.00249641 -0.0140938 0.0208339 0.0712589 -0.00143283 0.00409417 -0.00301155 0.00909624 0.0136425 0.0705997 -0.00174707 0.00360731 -0.00236513 -0.010645 0.0114131 0.0792089 -0.0022722 0.00305047 -0.00199726 -0.0264436 0.00948093 0.0671648 -0.00117948 0.00345783 -0.00283403 0.00245659 0.0125911 0.0791993 -0.00178523 0.00345783 -0.00283404 0.018563 0.00730364 0.0550546 -0.00178523 0.00355682 -0.00283404 -0.00222123 0.00586794 0.0550553 -0.00307866 0.00402706 -0.00283404 0.0185644 0.0279328 0.054999 -0.00307866 0.00302908 -0.00204868 -0.0307103 0.0267246 0.0571832 -0.00244752 0.00259237 -0.00165552 -0.00233177 0.012547 0.054995 -0.00173156 0.00352895 -0.00251694 0.0161941 0.0369985 0.0550076 -0.00227629 0.00278255 -0.00150052 -0.0306496 0.0446981 0.0549714 -0.00155713 0.00397171 -0.00255993 -0.0305981 0.009657 0.0549927 -0.00180936 0.00289214 -0.00156587 0.0149412 0.00969649 0.054998 -0.0016378 0.00251361 -0.00125495 0.0155693 0.00969476 0.0549919 -0.00210424 0.00346824 -0.00202195 -0.0393861 0.00970092 0.0653621 -0.00245404 0.00339412 -0.00212633 -0.0118021 0.0304818 0.0549918 -0.00142398 0.00371824 -0.00244747 0.028749 0.00971151 0.0528725 -0.00149424 0.00338888 -0.00202195 0.0287364 0.0190344 0.0720872 -0.00186677 0.00293676 -0.00157975 0.0113555 0.0188478 0.0720659 -0.00195539 0.00378377 -0.00223216 0.011359 0.0228128 0.0720812 -0.00111116 0.0042775 -0.00304128 0.0113718 0.00971815 0.0721356 -0.00169051 0.00387743 -0.00304128 0.0113812 0.00970097 0.0720967 -0.00195539 0.00381842 -0.00234081 -0.0117346 0.0185601 0.0818201 -0.0011983 0.00344954 -0.00214599 -0.017326 0.0125019 0.0882013 -0.00131695 0.00375823 -0.00259479 -0.0170145 0.00968983 0.0670984 -0.00150361 0.00290577 -0.00208245 0.00844462 0.0096939 0.0670837 -0.00158324 0.0028791 -0.00154009 -0.0354365 0.00969584 0.0670553 -0.0017348 0.00402605 -0.00286821 0.00592816 -0.000507441 0.0670163 -0.000902323 0.00322045 -0.00159193 -0.0422579 0.0266062 0.0670225 -0.00164393 0.00322045 -0.00283571 0.0100535 0.0265673 0.0670086 -0.00140251 0.00300766 -0.00195582 0.0100134 0.0133365 0.0670091 -0.000492923 0.00365368 -0.00260989 -0.0164309 -0.000939695 0.0670568 -0.000641125 0.00365368 -0.00260989 0.0219086 0.0109739 0.0626099 -0.00134514 0.00365368 -0.00260989 0.0219086 0.0180877 0.0670129 -0.000763982 0.00385941 -0.00267264 0.0219071 0.00996449 0.0833052 -0.00109418 0.00330612 -0.00242628 0.0219084 0.00753086 0.0756318 -0.00211764 0.00466366 -0.00348333 -0.00233258 -0.00700131 0.0546312 -0.001041 0.00383434 -0.00264499 0.0314716 0.0265573 0.0546857 -0.00141672 0.00410791 -0.00330737 0.00411574 0.0149666 0.0478533 -0.00171142 0.00271191 -0.0023535 0.00406568 0.0573638 0.0546236 -0.00156584 0.00271191 -0.00179702 -0.0234242 0.00950076 0.079358 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run005/000077500000000000000000000000001323370031300225165ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run005/bold_1slice.nii.gz000066400000000000000000003214271323370031300260270ustar00rootroot00000000000000‹Ľ”W´­}vÕ^Rxp'¸{pww—àî‚Kp NpwwwoÜÝÝ¡qÿg÷{·ÿf¼ê‘@Ãa­ó›ó”tUãûŽ£•ÏúùÂûŒ¯=þ øúô°¾0¿vÛT¯^þœ>_‹ÿûßÏ9?}ÝâN¥h+A›]·ì7*^qFÑ=ªM=h 5¡+v•¡ž”›ÏñtnÄ©y.ݧít‚óKš‹×e¶åÌó¯ÔŠdR8©0þýðÎÑÑWKOmmÌÀ3ÊC¨1ÍáªèóFzNÂ{h) £~Ô†zÚ‚î½/T[f»-h¢¶TšŽÐ~ÊF ©=$÷¡‚ö¥N†rÎÌSi͡є…Ûp”„òÛVóóµu—bu¼£ÁÜœÃrD¬’ê4„Òp_.ÉÕù9ß§¼†7ðNÉ1û“ñÞÐ|Tnä>4o>«7ÞùÓöFk2ðv¾À…ø1u¤Ý˜ÍÃ\GâÈɨ“$•æŒQÆs ŽÁYx!·á½\š£QcÛì³y9gІ±ÏÀÃy+?àudØÉ}^Ìg$¶&Ô†º\}r†“K8™ÉÙ¸ßâ¹øjÉ)+½5Ó>©XÛ IÍ0sç)'ïÁ(½¤(ÒA†JÎ)“t¦ZÖržÛJQ¹ä)èÉrîƒJM³Ü.ŸÔ[dKpnŒÑ!ÊŽW< <ÕºÈ`./Ït›ÆSѬÞD9ÅÝ$Ž®çQ<€+óLžÌ;ø'‰ËìРZ—0·)`*Ìש%ã8âiT©(ä•fÖýRHßáOÆËvI«Ýu Ÿä¼šßcü"2qG»:¨^sƹO‰ù -£{üÎ&â{ü—4ÑZTgŠO—¨ë­ÔEʽ"tŠ®ä:—Brk´2/o¢öº-áüO½yf›»,'£È<ÝFçÓRÚK®Ãôªd„NÓ¡ZW;êÙ,]t­þ*4¢4£üŠf(4O§´A«p›åö·±©7U¦°›Bj9oŽ––òBFê-­½M^H/¢WDóËÝ‹'‘Jš”ÿ Gv,±–cówþWöÝy¬Æ®~ôÝm_3“ö_ò#«¹a;;œ\nXw¡‰*+|Eœ_’Îç14e×UËf>¸þ¶ vLìøA®¸© &”¾;ÍÝê„pìµ³¦}O¿Ò1û½¥ÁtÔ^±Í+'þ,“ÍiwX¦³Î—TêŸÇsÍ”¶Ï ô«(tùåá_‰©=F“è*/=õ¡?lD{Ø]ûõj¸Ýßmi: ]ž&…âGTƒ2rHö ƒÙø-ŧÛàGB`dzÏqÌX‡*q M¡Èß–€Î¤rØ)9öCmÚˆ–{ôÈIþŠg¿èÕ¡ÖPè–tÖv… ÷¢ |{¿'ätƒö‚MñøÔ¶E?N|¥V\SÉvµ#‡@{ßÙǶtõõ‡ªR?®jî¤'‚·ÓjJƒ Ãmj÷ܪí?šÒBЧ)U£k´‹òQF¬(Y‰6»Æ†‰\„3q_ÌÔÌM\:oŸÛd`Ë?«]ô5pרô˜šr ŽÃ¡Ð³ò˜DÜ :× }õ $«@ÅŸ£ñ*šGS©3Ã`*ísä³qçünÛPJÈk¡¹Yø^»Z}ŒKKZY%y¡\É öé$®LâŽú<峃,ÔÆ6ÿ¬žã¸”=M‹q÷ãS¼›Òñq¨jHÙÆg%š’vÕyÊr‡ÓH0™ÌI¹"ø±šßˆ«Qrºcú|R±¹ãQ´þâuÐ\ÇîÒ[2ð¯ò§öQŸ·BOim9ͤ Ú™ƒóð,ðc>we?¬ûmnƒOê ³•9%ïÍËrm¾I§y‘ ”¶2ë y34Zèód9ÎÃ$¤®àÑ×&¼¿nãXò W³uƒj=ôí1‡):;*ò5¬» œUX{hjm-S¤–Òò‹ÞÒ¶:Hü¤¤vÖA|‡ñ~+ ™ý{ï 2œ×‹OÑZzƯl ~Ž¥˜žÕŠ:NÊX½¦ãtª¾ÑçòVîko"t9Eãv<‚3ðJcØVAü˜iŽº (1ø1*ó{šnJJ/‰ŽÑÑYŸÊ#‚Ò!ê/›d N×¢r^CHS"¾‡UåQ\^F•ƒV¡ø1к4û¾øq@Jz›´¹,’àZROèŸ:Î[é…õbyyQi›®“ú3FÞ{h!íµ!8;vúWöÝyl÷E5gƒ¾ûà+g"ÿK~ä0÷MGç&ò»óLbTÙé+ƒüQÓi~\÷íÿ¡jyMLh|MŒhQèç7Œ›Ô™gØU¶£;üxb>üP½6687¡3п×@ík6—¹ëäÄ*j›Ù]àǹïÌ÷ÍSS4ÚíÊMSÀ£Ò\†ÞØNö0øK¸ôdpv­m{Íûõª¸íÝ~àÇ $‚éPºŸàÞQ(©"$…s Nmð£©øÍ¹ÉaºBEçX _ŽGPŠJ—1ŽËèUCÍãàÇ9èÚ>š@¯ìS'ö7*ÞpÓmh_gZDÍé®íIù¡˜YùöjŽ…w¸EãábÓñCšIõ)¾-l^}¥V,ð#øÑš|‘ºâýßÛBàí3šÌ[À‘!\ßÓZB¦õ4‹&‚Äl6÷êªí4{Üèsø¶½¹ ô œvp~ß¿ÚUðc”?%²Ír¼®7Fð²õá5e¾Àó¾®îÛÙ§ZCð4¤šq” nº2üy~Gùx)ï„&F¿—b<Ö •MÃUÜWæégõ†:ãìp,;¯çý\ôéA~È~¹¢ä“åRU×K$¸ñü H7"CÃ7 ùÃÅ©ƒmóÙ¼¨Ž· òÐ>Ã'x¥çCÐür7I\õº©¡äçF¾™ŒŒTšßÂÝO…6FvµNO*vsbQ-Põø±‘³Ã¥$’~2H2rMäàÇ6½¨ä=ÿ&uåg‡'ó]žÄ‘}ÒÒ)·Õ'õÆ#ä¬]†·hÄè"O–É Ò\n"!¼¹MCB¥ÇÊ þÈGÝùðc-O•"Hî`ÛÕºæÛdvbTãçÈöèÓð/òXZkm!¤«Ô=ðà봌Α«’Ji$»±ë{œ쿈ý7*¨ÞsüHÄǰŽós›ùm¦×GZJÈ~™ª—u’.Tñ|zMëdÃ`º ¨÷?6Ñ/ö„­Ä©XyÑáj `}Äâu–ù$¿ÎÇb€'´˜Q49-k¥¯úi29¥Ñ¤r‡ËÙà53òzdÌÿ©·ÕÌpÿ²Q±BËa¦#ÑâÞXm€Ur] ‚ºÃu’·Ê‹í•òòiÙ¨kå¼ä®šIþ™K‡Ð‚”ÑÎøÊ¾û/y¾Øå[¾Šÿ:1—L;ÇÏÉï¦r·™ì& Û4q*8uœ™à‡¿ïðU a<{Ï6  |Zã>sŠ:#L*»Ñ¶s¸ëÈŽóCí,F7Dîè}éO‡m JŒT›N<‰Mb—Ù¸ðâ¿«ÒKô³Š Ç{A\кTŸË’R {‚&ƒ&(3Ô¶›jº³¿£^U·ÛÉæG>øzykÌ‚tÉØáè܉RsNÞE…ßöùÃ5£()¶o­ÃÅy8ø.Ú*pË»¨’Í^ú™×`LWÑb"zéäùFÅ=Nô° 5€Z¶£¶?èÔt; 5iÀ‰y8µ l ~Ì¥š”Ëæ3ú•š!M'!½~¢`Èìu[~£7ô¯…§ ï ùãÏN(þpꇯ%¶êù±ØÌu;CÞPwd—3ø…(ÈÁP(£{Õu¡£ áëG€ôóáî"Óqð#3•û?öøš»km3zJí¡?ÃÃΡRðçéy ×€’õÇÎ/¥ÝÌËðw f£jWÚL£¨¸ûÄÜú¬ÞX§B…¡|k? ñðq/å«\O’Ê2©¦K$¡œãR’üh~d‚6×øÖà”H¯u>ç慉œ•‚ÿäƒ| žusK(™Ê;%¥F‡æ_ÑÐr–óHd™Âɹ_âÙ<J]‚Š“¿ùô³ÏN8ªžá¶¢gÌ?KG%Ï,ý?Œ7þ¾¼åf’[N dâ!hý î‚õS„ö»|Ro ­å>‚$Z•;ð]:Áãe’ô’^\Uži?ägrKgË8ÿȺTî‹|±ùh)ÉË]mç Zï} Í&ìÓJX eZ!ueËÒ”¬(‹¥‡¦Óó’^whu%û$ƒ¶ÐF|s´…_‚›Ññþõìߟ—0'œ'H‚G±ZŽñS›¯j#õþý üûñúXgè ãùËiñ¼aà\|Oaà:q^N1íIÛô#~lr“€ÉEáSñ,ŒŸJ^/³Å×Oz _G×€KõŒÌ“¢ºWJ/º”¡°Èyùá5 ðJx„ÿ©·Å u'Ûx4j»÷ÔôVi9™+$&ðú!,ðêoG|³ÏéL#¼ÿT{Û†åúü'Öcx 84“¶#k_§sý!Cð#õ7*v&#S5GJXµ¼fÛ€})/Ÿç ð1y½¢µt”bòSšŠ´˜Ò–2_Rû€#šÉçįìz„§žH3/lY°öõä]hÓ®Îá@’ûàÇ:(þj‹÷ZcS}ñüÇ3ËmbߥÖÈÛÀÇrp9È¢ mqoº"£¡9x(M‚S„W¤ Ö‹/ü~ìö5u—Ù¦tù£&ÇçŸx5ÄJÉÃý¸<ÚÕ’Ãr^Þ‚¬âˆPû€Ïÿæâïç`Öʸä<û¬ÞH§7ƪ öõJ$µ"ì„ï¼Æ$±Ì—Â:SâBíKKv¸ñ¶`.ˆ|¬JGmÛÏæå±H’•0Î#yRÊJ¸ã-œ^" ò ¼x\¬×•@¤È5£8 tï!ÿ…üÑ™‹A—^›¡ŸTlïxô+’ãq$¬yPrå° GOIþŒ×¾Ü[£O´ŽÜïÊ‚¹9?øvòÞCyé‚[÷“z3mQNÏ[éCK¾Eûy¬ŒDþÅ-Äxó4ÿŽö’à ëŒêXäº9<Šçƒ\Y¸—mTë…o¿9M‰1î—@Ücð©8»œ‘nšPËËBé¥9ë.­"mÂXöÐV|£¸™ïpðcµ²。æ®ãqB¾ ôœ *_Å&ê+ðc²¬”i ï$]­oÁ¸»rIÛê.‰§ (rapse°{ìà ~Ì1+ÜxP޼pÉxµ}Hë%‹Wyc„FÖðºUsêZ­¨+õ¸îª^I‰îE”‚Ž_`M¼²Mù <ÞÿÔÛiƸýÁ¾T–!×ÜìÞ ­$kD4“ÆôzkoŸw]óà=Èz},‘´¤ÔÕX<,š Wôr³ÚI_Ùwÿå±ÞËúŒ‰ø/ù‘Öœ6 NF7¸;)ðüù&_I'žSÓéâÜ4/};~¨Z*óÁ}ß\ÿ©Mî^‰¶™Ÿì`[Ïíï.s?ÔΆö TfæE¨Ë|$Žì枟²RxÖ®·ÁèÆ?4àˇ¿¹hjY:ïY*²‹~á¼tŶµGh݀ώ}ÞØ¾uߺ‹¿£^ ·+VOº%]•w±ûê’‡ÕîO](>?øôÚþL¹Á¤ ßìs*Ó¯ŸT¸ÊäQ|ð£ Ü÷¦÷‹ýQy¼Ó*¬ãçNÜoT|àŒ?ê¡%; 7Wm'ô®å€ŽŽ¦Dáñô•ŽSl¾‡ŒÓ–²Úzù‘O4¦¬“´è Ú†¦ßé½bk#=çæ<™’!Ç•‚Ë÷ÃH¼Ä8¬?ÆÁá·yÝK_¨¶×ìvÃß_D¥JÐæT=/|sÄîîsýyW„.O=—SoŠH7워ûgµó¾Zð+Mé55 ü\. ÏSNž†Tô+T;g…_öãuÐÚˆðàëÀ® 4 ®1§ÃyñY½YNgÛc•™ñ&΂Ñi‡„”‡op É([$“®“Ôrœ«H¤¤æHr9lºð~.‹ü1ëçÏßš769ˆð)ÒI|­Á<®åˆòŠwó5É£¤á¢_BÓK0Y ÕËÁç Ï¡ªÙ¨$=3S?;ÿûa5òG>ô©8 §–VÒYR ÍÐÞêy‹õGjJ%9ƒ¹NÏÝø,ÒBw^‚=¹Ëýí“z»l·‚*àu7èo‘¿¤4?B ˤÖGrU»IPê™ìBOǃʫyVRDAmÛ8¨V(ãg.€¼%ù-ÕÂnèG‰Ðº3ÒJCi Y+¿k"="Yu;ø1EVµtoC¦ÙÁÁBáõÔÀn ª7ÁÜt‚¨«°¦Nƒ9y/•±àm2ˆÄ±¿›¥»5˜w[‹¿.ÐcGwAípO$9?нÄíf³›~ äG0^l#ò8Iê¥Õ¿4¿†Ô”:_ÃêÔ­Ge¿4ÒX^yùÙ+!EÈð;ìãg¶ÚÒ4hî0½Ü¾ö'ê@(¢šÛ[¤ÕeµDþÈèõ×–Þ o·–õjk;¹¢[0奠ÆçzôÖŽª]CN~éNüʾû/˜­GAß=ö•5¹ÿ%?âÓÄyç”w»³LðÙX.'•SÇ™ä<0|[¿]â£#šyî>ÁlˆòÚVr;Yeæ•;Ú¶rÇ»›ÐN°jçH‹[b¤;À/W¢uöˆ-b>8a¡ylJäHðâ7¾«Ò%ÃN=ûžöB± ÁÇß§tœ ßÈ>‚ƒxGMáÿ[Pk›Ú¾r¿çÉœèO[ªÙ ¼âbÇÔ§È|–žBSñs8’ë6%¦ vÊ7ûœÍŒÄ ]aßÙ¨Èÿc‰(.øQ†fã«4²ÌiÔßì†sMïœo¥ÍçÎ4¨yihþJ¤ v(åAÊ*Á;áF«q ¼ÃMŒÃ´ÓåÝÔžŠÛ†æÚWjå2¥œBäãVpÒá±[nÙëÈéõàÕ”…~‡Ç5Ð Ûø“màÕ2d±´Ò–øÊõWÝÞtˆ˜;PNºƒ<˜ n ]ǸU£U®Ÿ\ÆCù‹ò0ÚZm)µ>¼6÷øqÓWÇõ³ƒèÆÍ8)‡@oŠ€¹àK"iMáðÐÐ]øÚz$çhÛFøw?Œc7¸óù5g+œv8h– ôØÇ¹ø5uCŸ ÂÁ—”ôP†üº[²ÉM®)å$à©X\<èÌw¹'¢¶ögóò“C”«5=ZrŸY6S >È©De3_”„U{BCÊm.#áe¼}Y¾Ç+UrNŒË5³ø“ŠMœP«ÕµZ¼œ±åÌ2Þ¾,g?æiDïœÞÖ_%˜ò›\B½ô¨vÿâ-™ÕnõOê³5àWŽaWT±~â×|X6Jo$ÀzÆ[‡|RëZI‡÷Hª{AÁ‘x×íÈG{8¤äâÎåw¾Yæ"I~@uùY6Î"¡ñáÊ×JWM§k¤†úi3]/W¤‰VÓ­¨5l% 88ï£öïÏËGš[Îxž3È¡ä*’yDùUÎk$/f!¦ŽSñÆ€–¡¼ÐªJÞvÝ*©ôEâ<ÙqE‚ÃÄEf›‚Êsðšbö-eÐô^ ´¯‚fÖ¤Hou¿&ÖVzUŽKY ïe”L^v)IØÇÉßV?º­ÂMf‚ÛÒf‚èMa(,%ÐsÞ^m-cd¹dÀ,4Ô¶ÞJo‹&ðZjsIä]—û2HZk4¬|ÚmoQZvì__Ùwÿå±Âܘ •pÅWÊ„ÿ—üHl®™ÆÎ§´[ÈÝfŠ¡Ê_>'±SÑ™å„p~4sÓ½Uý {&15wý„ÎHsÏl»+ÜŽu~ìüy›Œ{ÑZÛœˆ‡ÐlëR s Nm¨ºÍm7‚þo¾óüù=óÄÔ± qǨ8¼÷}xÌ’ô–³»h8FSJ …]`?~G½ÊÈSým)¸æH3±"OREJ§r•Z£v\.J—mlÊOsìüoÎMÓ²ÑdôïgnÃS Ó éœ-Ÿ¼†ò"œÆÿ£þQhcR7þ7*ZwF¬²ÑIÐìœ -úƒŠó ^¿q ðÃòF: æBùûRiÛÔ\üJ­d&™“ŽÂsG F1©'rå]$Ìß@ Q|óüÔ>”ùʼ ½ŽØŒîý/TûìrÛ ý…â¿À´ûp÷%Ѷø·÷Á_¶ÛÁ±Ð´’<Š–‚“Ás64å£v_àÇ._w¥mVþÉí8:‡ãip}( =zBc_AËöÁùÏçHH'lÛ&Ÿ¤3ÔÊ}m>¿š|„ÓØvFþÈ •?Í5ù.Fp/Æíˆ‘ ž¹˜ž“"r…ëÈ/PûV qe¼®#¿ãß9#õ´->›—÷&$œi?æóCöd9EçSœée#Ÿ€"'†û½®>y >ÅAÅ »È8òñœ‡ª#|ê=*:¡¨üøèý®Ëø±YÖH'Î)su”†õNèm,$ƒe´ÜE Kòvå|ÃtŒô ·ý'õ–ÛìœÉdâÈwѪ‡ÒUö¢¿I½PüÈG»¥(RIAÝÄ‹¹jîä£|íLË=mï Z|]Í^Š bÝ¡j|+$3ç?vª~Ì—NZ _DO#w,–]ÒK«ë.d£¡èmH©Ëñy3´k‚êýiv;>N ªl¤w|ÍÆà¨ÒL6ij¯Š”غB z+P-œ9î6’ÈcŒè:ŠÅ]A¹¼|„ÒØ?_d¦º‘(8•Âêû‰Û륂—Ogh!ͪÉu¸.ÖKš  ¦w¥‹¾ÕÁRÞ‹-á ƒqú` òljþÑçW½Ý6=Òn]$ó6†æðVi™VæÂ,ÔÖúÞlo#Z9L«!ø4rSwME{iÇÑN{–Rp(;è+ûî¿<6ú¢˜¿ÏDßó•üן_‰y`ò8çn^÷„ÉŠ*Ó})œœNa§—óÔ¼úÁëwóнkÂ5–r6so9ñœ^æ¢;ÊŽu—¸óØÎ×®òùòÑÃfäN´Ïö¢ÐГ½ö±Íf8áá©ëÚ>v1ôùŽóù5ü_>Λצ¸ÄÌÛàe·Ñ*ÀोÚãp騒mh}lKßuF« ;Ìíþ‚FÐìèx|™ªàÿ. –p^Ñ9 =¶‰¡{ÓíÜoÎM<Ój:Ò¾µñ¸ O‚RÇ¡›öWšŠdSœ/yéù|ñY(j| é~ëüypwCêò´F/ûQ¨jq¾Ì ¸'âñôl:‹v†á½èw5[Ï|IíŽü&²“ãßTKE]àÃnÚÂÈkè9/¦îp¶; ß7^€oÛ‘ö¢• m÷K3³.°)R›`^ó‚¾G±NòPQÀÇm(„½ê&áÜ à¾°h ¡(ô9®øGg.ÿ>úÚ»;¡ø¯©·çȬpÙåh4¸8ê?€×ómª~„ÏÀ× l;fáýOÐ$÷Ñ?ø1Çi£|¼ ÿª?/·"Í\…¾'“RR—I¹È¿JYG@^¸Š÷ 6W¢~¶ågórÇ<±©,”t!û³‘µôžns‰*gùºÄÓD:Ê_q1ði ²R5¶²’—ñ8®KIŸTlèòÇð£2U=´¯ìƒßm†L3VgjHÏ_ßé/ÊUdм‘o£/‹y%òèS·ÉgüÈË¥‘ÙÎQQnjoù²\6àGG‰é-Õ”Z£zç%¢Œ’¬º”—ò®l¶ÏspIÅýmó Z/|ý…á„|ŸêñujH8¯$Ñ}BËɬ%t›¤@b誓e·ô†Â.‰z¢·Ñ¤"ÇiigÕëkV:) |Î z~øß ÊTøùºQ¬N-çê"dˆ¨úV^êE}Ž]A7Œsò$ÖC¶Z?&™ån"¸‘<È™¸·=MÛ¤”—M"Ä3æèd­BhÝOzXö¨Ïë(å¼H’N,òǰv/õ Z…KLÀüÙ©ˆž"QT-ïíÖ"2üø® ½vòFzwµ±×M F êpð# ÷£·v\ñ}ävÊWöÝyò%0_»þ ùãßÞ?ßÜ2ÕœGN!7·ëx×_n§ªÓüxdžûöýPµæš{ ü¨ƒ=˜Š*»/œÎ|sÅíkGƒñÝq®¦Êƒé¤íKÁy"­°wlóÖ‰GM¨—…tnçõW‡?ªØ|‹vžGxˆ=]ŠžÛâv+ …ûíJפö?^¸ßsF«„ÛÇíg+ÐuêGÓà·Ãð5ªE‰ù =ǟ瓞ÙäÐÈvÔ7ûœÌüNIh±}ccÁ7OGƈC¯leZõʂʗÀ*@à×£¹¥¿™?&@©:!s§öX­½( RV ¾Èsoððs<]C#ði𣅭f®¥V“Ý)N!ùw ‡Ý÷Ý·G?ÚCû'òYêFŸˆ… t‰À¸ÓháqÚ@ËmN÷K^aòÇïèÏ´'´|È„öè{ªFÇÝnHù“ksFì²m˜§ÁØ™Ïl ª@U¾ÀSÈl«RPlÎ+¨2 ¾Æe¸1ÁØ•…zîd?NÂy-èvúqÙk¨ûøW“Ïp:ØÞX…Àœ…_ƒk)7¿äú’Tf€[%¬œãü’ü¨Ïñ¸"”t0ßçnÈ›þqýÕ ¹²æp^ó”®o=ÌÉ%¹ìf?I­ÉÀ­ú³É%‰‘»rqS~2lGÍ&`~Hgæ'k:/lŒÊIªŒLÔ„}pø[døQD†BQ#÷´ 7]zÊ1n„D³}øÝX¼w^zè~J¸%¶ÊÌX1ð÷½ærÉe7·–Ÿ¼ på T¼ÍòŠçIB Máhß2¤©˜ƒûÚ&AµÞùF›Ó‚3a ±ÁiääLU7kTÍ#S¤‡æøôOi3í-G¯çÌÇ@úåJêqh¬Äjñ£Ù鸠Ñ*ì®[웽ãî P|¯¾®BkFë `fX/†Þ—ðÞf=&YôœNþÜœMy­Ÿ-Äf±‡¢RFäOâ?¡û¥—£ÖPêi¬ a²jeÌr==£YO²J Ço±›ùàGüXi:»l\ø³êôÞF¤Œ Åt­/“@àá Q3íêÍôžé/^o- ±<‰¤P7!wEþ˜Iûí¨Z";þ+ûî¿ÀS‘¢ñrè÷6:HqÙÂ}"ÛöOûôHi 8ù( ÷¥L†:’¡«¶4vÍ}…6U£?8?øqˆî`LOc¯oÆh¬?ò»_"Ò4³Æ­ õÅ­ g;èü`fÐáÚ[.»‡\?Ês*‚J‹¨7HzÙ e¥&_àÇaðÉá'ž ýËÁáø/¬qhmŒcž-«À{¡ÇË>2CC7 ßã3ÒP7Ô?²ëh§²Z1* zÜæbH/]TŠóc®$Ye¤ƒ²$£àÇ/2Ž=:WÆ+»BM[sNäÖŸÍËcサ(+4ò-;²úz†3J<ÙÃ'%=ôy¬nÓÈH I&sr¨ó+¤¦-PÀZÐ,uf}Æév-Ý¢úpî5¡kYd¾úqQ™®Ë4Šw y¦‹\Ò6;xE.$¯ ádÞŒ‘>ùÙù)6'—?®R]¸vE?wÉ^ 'ðïÃxs4ž†Ñ÷zH.ñXÉ«{x617óP3˜Då6¶UP­7pøë¡ÌÅ?J‚ä=¨4Ç“8ºT­ ó7² 7äCNè=+ut¼Îçã<³ó©;"ZXï£û{?ç)fò<Ôy¾iÓaŒŽËræµÖ¥J;넯žOÉk~¤ÒeHÖíA뼚²ÙŶÆG×_ÍsRlÌîf Æm8.¯½_@ðVS÷J{c…æ×–êêfé…ßÿ!E½äR«ëU¡¶ïÿh.5MÝ–6 ¤ºnù=æ-ÒèéY§{µ….òæ{>/¼WEóÊQÝ'¥´»4ÓØàÇ;†6Ú›”šÙŽøÊ¾û/?_8ó:è»K¾²æó;i¿÷f^šrΧ¸[ù£"ªLôqR;ÙN'‚ùž{±ÿ>îøº÷ààú@ 2Ra×ühaN!Ô‚ÞnqBü ?ÛD<œÙ6X—#‘?~¦f› Õ&±Sm æºßUñ¬y`ªÛŸàGïS~8¸ë”‚‹Óc[ÌîEþ¼‚´…úCë²!íÎï¨WÙ뎲ÙàÂ'ÃI/¤H|úž9)àb1zdÃSZe}³…aÍ *BãícœGòú™R¿­FÃÀ‹l|Ì‹ÁÇ 'ëi %¥˜næoT|éŒqSÚ¥€ü‘ZÞÿ±˜«rzžI†×ÓP)ví@*c|õù%?›„Nú™ëQDdö¨?êÀÃá èó¨m¼†äu ü؆ý¹„VÛ‚®ùB+{šEî¼6#%Ð1¤<ö^y¤¥{H•[Üî{hg%ÎËÃÑHJ çšrÑ /ðc¡¯¨»Ï6¦—Ô—;sŽÌÓ°òz‚ãƒàä›òÌC¨Ý1^ʱ8'ú¼˜VÒL: Ç0Øåœ?_ä4³“°CÃýІÇT£”Ÿïr#I)“¥T ´¿ŒéxL\nüwð£%ÿŒôZù³ß4ïm2ú•ò,>ÉQeÆý4§“X²‹oKb£tƒÆ•ë\A"Ë.ÎE(Ã+‘²‚×o>{~I1热ˆ„w+íØõŽ’ÉY, ¸°Œ×iàÇ è}{¹ÉC¥¾œåv Ãt¾ƒ˜À3àeޏ?©·ß–àæ÷D•@šºHOø 4zV_!o¼¦†²Fñ¶Ê=|Ÿ^÷ñäJ`á8‘§~tÿG8ÓÉ¢TÌ®Å'©ÅâhQW£FgÙ-m7ÖKq}£½µ«,‚’ŽÐ©àG7$¤ ]\d–¿>z~ɳÇy~œ¦åôüˆÅ—xŒÌ@Þh¨J§-œ¬?{ª7ä6øqM2é&¼kcžp屋l¹ ~Ì7Ü(6ðé?óp»Ž¦H:ðc´¶Ö”zÉæ F°0h4颻´%ø‘Aš#ÑWÆnÎÁã?ºpiã6¶É©35§ð¨Ukx»µ:rŸ£çt½ÖÕ>Þ\/¬÷J«j.9ºUÐZÒJáÎ$4…Økÿ'ùc»/òGŸX=óÕ0?¦Ëdî™zÎ;§ ›×ÝxÿÇ6_q§ˆSÐéé¼5Ï~ðú«øæ¤ûÈ6£6àuTä;Nh8¨;nÛʰ¹†¨m‘2Ó%ÛP_ÚiOØL&*Rh*`ÛØùÖÐ!çÉwUºdÂ: à9A³ÊÓ,zJ¹¸:ÖD1»„ÚBÏ:Àÿ·G: eºßsþ£‚;ÆdËÀN„¦o€Zï‡Ö$Å0ðéø=ECõôTŠ&[¿oö¹€i…¼6×F¥°Ü€ÇPtÄßVGNZNy°×RJ~Hè(Mÿ®üÖLþTk{'öñ5;úÛ=>Ï3°_Ór]&@5’s$Þ~Ô°¥ÍͯÔúÅv ßC)Ňg¯ØJH6ïi,/ÃÞéÆ%áƒw€†Ï“²Ò.|·9¿È¹f£ÛúçÂT@ 8@%ÀóBÈwÁÚ#î-÷5 Ædƒ,‘&\ùc…÷žèk­+'¹¿tÃ{ÔAûÖ³•ƒ<‘·PräO¯0Þj‹qdÇsèñv™e…œîÈ}?jl$ÌÞx¹†ï#èz¤˜áàÍ^Ç÷8$á!¶}P­¾æ%@½+X³—1s¸Š$×Ù^›Ë6i­Et‡BûiOÙ']µ½®ÄŠìÆ{8¢tä¤|˜ÙÝAõÆ™ÍÎKút[Iþ> ±œˆæ5Öu¢¨«Þ]¨ž÷ZžÈMôþ¤”T?hr{žÃ˜AªhWÚ†AüXaæ¸É±³òÂã$á™¶o—¶^zÔ©Â=–¡:_MЪкKF#Ùtø^)‡ÕõŽ ÓK[˜w}týÕÓÓíhÓ`÷t?ÂQ]Íà5Óš2_NJ-Ý©e´»·À ç]×_‘¿Žƒq´¢tÐÈàGšD~ö6ÅãvòWöÝyLóÿèŒù-_}ó­+r¾vD6÷M ä´àÇ“%ðþÁlN~'§3Õ ë¼ô­ü¡j7|WÝ;¶6Uƒ×IK]×MêŒ4G¡´Ýî'‰ö‡Ú9Ô&àÈÍ‘Ø[ÒûÒþb|pu(µg‡ Ür|»Œ/àú«û¦¢U¬í# Ït:M…¸$ݶEíZjF硇YÁ‘®ÈÑì¼ï¨WÇä¶µ™é& ¸n‹||9&?%æf”Œ_RTO€ª«íÉoö™ÍèÞd{ÛFåNP÷8ØëW¡ÒÓ¡ËéA¦H4û‘höƒ$Q)’[âýQ¤È¿# ´¦+væcvõA(jCNÃS õ{ âqøgÞøÜÈ_=žÖäqòSîM¡‘Ó»a]µU¡ç'i"<ûdt6¯£gȧÎ| %í¡-¶Šû¥gM5;Üö˜M¼V@ÜKùà÷sÒüûôÆ]놖¹\N|0ú:»3>O*J=¾Àµ¾&î.;½é5‹Þ,¥ÚpY¸?×à&|”_QeÞ ~lÅße€¦¬ÅüOÆ|_§inrçó{îû;Õmø‹¬pìg@ ËM‘à’°?7d2CŠBËE¨}™Ám9 8w‰{pé‡:Óvü¬ÞAóÔF¦r”šgó[Pfr—øMÖ±ŸÄÓlÚOkøû¼³¢Þ´wôþWd»¸ÎšO*VpBb•Ü?XÎ=/ DàÇ\©ÂÙáÌ—ê;=«®×EŽó@©ŽÑŠ `Æß"«LÂ|—"ùì ÿ[J»¾$àþÁctWÈ5*GÀKñ6€¬ù½õàÉä?¤×ApÏø1¤©D—Û–AµøºšèiÀüqn,g”øºFI“UÒHóC÷³é+ý]ûÊ) ¬@Oÿ?bK;ŽÍG1ÿþ¼£ ?Ró&dÆËüÜfÄ,,•ß4¶×^gË+Y‹ž.DŸƒ{V_É#ݪ›RT nn¤dÖï£ë¯Æ™…nvú ;rVß`ûžJJ/“NÑ^šJËNŽ4Ó@»h(]­Ÿª)$ŸWMò€!¸ \l^ÞN½‚VálÓÙýÃÆC?+RòQlmì]Ó†2U‚kS´¦¾öóöxQ‘?êkIæí‘0Z¹&!×§7v1m³çáßâü?¹ÿü²/ñGg<ü}ÌÏÿ’ÁÏií¸n·š{Д1{²ŠSÅùÕ™æ<5|~?T-¬9ë^·%AëbpÐÜN4gŽ9ŽqnìÎq:É¿yç§G;ûªî%=EMi‘=gsãF?rØv¢}m¯~'?Κ禶} Í<Ýê ýÈÀ%膭ÛZØ ù£>òG ûÎÝòír¾rÈS£myøØq4Œ¦QdäåzÈ÷àì»Q\~F™ {i©4TåÈ7ûœÞ´¦”´ÀÆ„?mÄSá¹£€UP{>eÇ^\Wµ ûÿ<ˆòÞFÿ&?ùC°Nîÿhƒv Fv U<É3¹5§æþôJ…b°á­4¾¯™9ô•Z™L' öPGÐ# @ªzlk·A޽Pë߸ÇDëÔv)-ŽÚÂî—®¬žbV¸õAݧÔÿö^Y=/HŸf´Ã=ïY ››Ð<°h"Å¥ëÖ"£4úâõWåÝ=¶qà9Óhól¤®ÑTž{Â…ö…· àÇhíŽÀ‰A¹¥ òd (òÇç×_-qêÙ¾hMAèÚ1®ŒÌ÷\Ù¡-ø1üØ-±å0â² ê“k¢ú ~Î97MýÇ“Î<ääT yh6ûäö™8NWû–vÜQ>g“ÊÔüL~Tž¿Làów/¸K¾£^U·§;Á–øú»ºN?1ôê5õD.=OoíÃS}ûþšf0¥§YÖCz)åL Õ|k›Ò,¨|v¾öEÀþ/ õN­¿ý›çÏÿ¢'Hl‘\ÚÐ}Ûì ¸ÿc¯Bý4¼˜ÞÓT ’ùêDmCsù+µ˜²NzÐè/ŠˆìÓ‹nÚM0+i_Änìøü«õ´r„ÑBŒÇ:n³º_º²a¥Yàþj<ƒ¾T„Þ Â¦kßcOW •îC7¤Lã6\–‡"Õ-£1`ÖišrP®/ð㑯"øpv¬ X‘‰C"Y¥Q”—ÿDzè…Ï•ÐëÛ¼ž“s"^†ñXƒ¼¸RÍîÜþ¬Þ§¾íe‡Bçjüc³Jó ®'™d”ѵ’V.#¤‘¥øûȨ¾´{οsqšm}6/¡Aï SZž.ÜçC˜Ç}œJâÊ8ý´šD'ê 'w?¢É N½Ìûy-Ú_©ì½YúÙó¯‚#¥-§«T Y²»ü3ôjŒæÜ2î9†wT_ks¹Á¥6(Rƒ ò&¼óîÀç_å çnÏÎŸçæ¤|¹±$R＀ ‘ zÉ^n-½ÉðåÏä’N–Ój,5àŠòVƒA}ÑÆVZD>³[­¥µ·|@i¢#ù*w/#H-ŽÎ[¨ƒÝTo’ÙêG ¶R­îÿèéö³)©|g<äŸÖñ–ja™'Ï¥h6Lû{¼0^>¯ ¶”;zRÒ€H 4wÅÑ{ùãíwÝ­ü¿}lñYó÷Ó±ú*™Œÿ’¿˜»¦¡ãït#»»ÏEJNåÔw9~øüGtð㦭‹ðéM ÷†“ÏÙg‚Û¶²ÛÇ=æøÿàuÆÕìeì—]¶¤‚´Áî´9ÍM' vÖA÷µÛÅÞ³7¯]wúéqÔX§ƒ= ?¿˜RAKç—ãzسTz’++35³Áí™ïz"qwˆû§­‰µ=¦`5¼ CðÏùYØá~.“Ð] 9b°]òÍ>—0Ã)øá#Ëå¸3E€×¿c[ wl„zÝ <·°í›×~Ç~øfŠ‹ê@jI¿Ckb&úA«ÁžàÍÜŒ3ð,òÁ‹ß ü¼m)Ζ5g¾R+‹)å£0<©(:øõÚÞ±5lžP?>‚$8ü‡½ d%ÞovÔ0ÚhÓ~ñù‰“Í^·ÆÊ%«€¾§?²a½„ƒjÑ÷®A–@÷+ãï—¡mC1×ÀÔTà ü¸ëëêúÙß¡"äç(ÏßOUù/nÊSÀ”h¨tмú”–Wb¦–a-í¯ÅÝÎãÏê-vzØžP˜\`ΨïCäÒƒTÊÿ›–ÙRQWI ñç"’[–q=Ô,‚WvŸÊr|c[}6/.òGFŒQzø#È m)(¿È6> 4’þ¥'5¡<ä*âÈxÎ ßüížøü«ÌDΪO*¶pû`9’c)8€k^É`™$e‘_é,5pÀ»µ£<å^RM6 ÙQí2HožCYè”[ó“z«l1¸‰˜Ê«|‡Ëbé"~ÜBBz‹4¹¾•Ç:_ñX‰ Ky$O?–ó’€ë¡%#··µƒj½÷-?~âœìO•ø52ySÎ(¤·†Òβ¼( M­'ôW#‘´±¶Ñ!àtÞÀa¤<’Æja×Õ›hÎ:ï(UàõW‡ÙÒTn.Iž¿»AîÉFu½±ºKƒ{ôª„öækqðc>%C ÿâŒÈ-ÑÁ¿ódzØ]žãw–ÚZ3y µŸþŽèÓ«Pü)ZEgê+Ù&±t©æx¾‰” ð™Üdù¶~òüÄîï6 ýEåÈ?Úk>¯›Ö’rGòêí¦Í½-y ½?´ h¼K¢i©«‘¹+}°Ó‘Ðoƒ¶b¿çnåÿíã¸ï箸zë«j¢üK~Ä2×ÌoÎS§¼›Û]gŠ›€kZj8\Nç¶¹êûÒÏpøúÑœs_Ù²T’¢Ñ«î TÚe"çårG¸;ýÁóÅì*A›l1êN i¡=d ë&DþãžqBÉîçý§ŒçÔ²·(à\BèêRŠÊyH¨=ø3‚#ŸV?"Ù³îŠï¨WÆ]àN´±§Ãï.F=’šÑS8ëð|ŒbÓÍÀç·¶»¿Ùç²f4 µ6tµ÷fF!KÍ¡Ås¨ŸÂòñ.ªøDóö®é£¹3‘ã€mPå–íxV9¯Ãþo~,%-|I ™xF#­eN¥VbSÑ)Cw*¢Ãgõ£÷ÈM‘ üi:ï¤ßh.MDì¬kH^{@ºù Üä\_¼ÿ|¸Ùí6€&ßÊ—¤3pV'Ø)Ð?è¤{Ç!³¸-(:Œ¸~7³þÒý§‘/¢5©5˜“ž#ð˜Àç å1HàúCCMŽákmÀ `æJ¤š~˜ýqTÌ îÜù¬Þ:§©DÕ Zk‘jÀEwGJð®~,FþX)Iäàä 9¯%t#2Ò$õGþ¨¡ 5¤õ~‘|ØÍ G¶*Ïwþ§^Àùæ6u£z‰ÂÕdÞ­+3åª$B¥1ZÕ›çù¼œ^3-tóB¢kùMÁ_Öö>{˜òp,û=?-âûX §ÿ·wzëkmÒÿK~$2a5¹ÅÜÌîÜÀç_÷Cþ(ãôsn˜7¾ï¹–õï#·¹ï†bÕ¤”´Íþä^r2:'ðgÝlw‚»â‡ù1þ£ÚàGÀtIi’]ŸüÒ‰E¹á¤ž¹‹í{ǹô]•ö™ˆNû ʵzpmh..El}»±Œ ¡ÅŨ¥M~¬þv9äÉî8[ŠN@­ÆÒjzKGuç*=‡æ…à”üxþU‡ïxþU%3‹ªÒ\Š^üˆî<´M“¶P1¾‹6G?ò@ËÐ {ÝIüŠéÜÐ÷Z?°"i`z›A±SGp{ÎÄS‘—Ð{´7$¯²b\¿v¦«òG¥À«Ba÷5Fþy`ËCüi,¯€O?>»~A’›H“ p›mª/æù&˜mEëy”‰…1ò…)4û¸ísoº¡e93™gPO ‹öÚæ¡J_äGW÷<è¨Ü‚q<ŽÌ£‘†Rî ] ¥»×p/àZN ¹Z´”úÐZŒl!ðãõgõ&:míDTHÅ;y;çÛÈ”gŸ!d•å’O·J~¹‹´EÖÁÿGAþXÅ•øô¾"œÂç×_½0>´¿ÖÚ>¯•¥ã ÚLJ…Á6úJƒË+.*,9WD­ÅðÏ5¹”.”óéçW œÈðSÏ¿* P“='Ýð••ËÉ ]£¡¼£zF[ Im)æä\<ü˜Á=x/Æù”û)áŽØl\T½ŠüÑßÐMn#}¤žœãÆ×_Å××rLÇJxù‰aBàOö«Í[y ÈN’rw[õï¾"[n£¤??ª(_¦TãÈui‡ ÀÆZLK<Ý®utˆ‹ kÌL7ÞÄo¸’âêl·Õ›lN8o©ßÀ{È?Qr+ ‘_.k¤À²$4Ú ŽVÑNZJâê2ì½6È\ù±"Sؾ¶q?6šµndÐ<ddÞe9(¡¼ä:X;k}'75Ø‘÷÷Á×ÄÄú×÷ŸŸ3]§¬›Ý]j® ½ë+íüâÔr†;7ÍCß×>Õøò‘ܼwoÚÚp–IÉÏFp;Éœíæº[ßVv‡¹»çïÿ¨iïCÙwÚBïÔ4Ô.·¿š7N8JK{ÝWîpûÔ>ÿÎçï^6ÆéiŸÃií¤²Èœ[) ¢ûàÇ&ªp–Y¤&5µ ¬¿û=3ÚÂàþxþ|F ?ÞÐ!jMaàXï ÏDFfHLWmLJ@]íØoö9¯éµXj#B KÀ‡GA¹lKB÷R¦ÀŸÀ‚·P¨óp墓ê:S ï ¨ ˆó;ݰ}áe{c/üüj ÚüY&àúÁ€ŸÈØ”’ÚÒæÔWjÅ1Íœ„xÿŽàGDé‘}fÛP;$¥ahYEꇅ‡½ m<ÑG6ŽVØüîçî>àXo6ºuᾞa”ªÑáÀç·çFÏΔ¡iî5We7Áþÿƒ¦Aëƒ2—1.ù(Çï?ïèî·1 MÁŤ± ¦*pÝ ™½8 è¶÷òJü.ï ™˜­xÿÁ”Óõ7Ÿ_û=Èéjÿ¤Ò‹WóŒÔpë…_CW³#”ÓÕ’B®p)É…”Ô¹+Oäßø”µÔïóç—<3¡(ÖUr°lŸ†‡ƒúf”(rüH}î¯Û4„<ç¼È “85Wá+H4ã¹)—Gæ ïÌþ¤bg'F|)ÖZ&©¸SšË@IßK'hxï˜îÕ®r‡Û‚w{99gçq| ‰¦´/w?%Ü4[=Ø /Q½¸J¹¥ôÆrsQoªÆüùSAÌžâéLîÉ#¹1oä>¨˜PârÛ(¨ÖqßZ³qA¾†•vy7'“ãPâpÚHæH=ͬGáÁ÷hM$…Ý’ Ý–þü÷à° Á7¶£ƒê5Wœç¹ÃØ«G8åçW¼J è.mŠ–yH[#u½†óÞ#\Ö†:N¢êZzGõ¹;æU”Ó嵂ø1Þlwcc_e‡[ŒÈl<Þ"‰¼Ú[[ib%}«£À¶BàÐ=´¶¹¾‘‚²T£IC¬ýW ö3[€×Sÿ Uxük£`5Õ¡Xл°šß[„ì·Pü¥š†ñ–i'o÷AÓx•µœlÒ‰[p#ÍÁ­é'ì’#ö%F+²ý±+\ÿw޾ýì´7¾:ÿúúÝÄæÿ#î- ¬8Ú¨ÝÓÝõJãîîîîîîîîîÜ]‚»»‡àîƒwwwî>çÞK†É°²þïO³H`˜©S]]µŸ½»»ªn[#ì‡vm'ƒ³Ô7ÿü€§ŽË.j´ï[/è1Ÿ>Ðmj}^®Tâ.tïI‹~ÕÁÌ òœóX£ +‡¢qmĪٌÆÑB*‚±¸_ßB¥ ùSé“ya'¢Ä+ö|ú ïÜ uëH·ÌPd®>”ýàs ^áËK7à?ÒJp/“©òÃý?2Xuí"ô ºëP”rÛ<0µ@¥¯4ŒOC“:q>¤˜ýtžî!Wìég –[Mn'°;‹Û­õNèßG$˜úä‡ï¯r¦"âç”&8Wœ/pß-àœG£¤ ^´Ã‘Ô „‡=M}üøD£¸5'ä¤<*ãÓ+úæ ÖC–ûŠüáÝ?j؇ÿD™ÛO¶ã¿mœ7VÀw÷&ÙíL78Ô|œ! <Áy®¢<|Ÿk@7J5](éå×ñÎaïšåù÷äÇÜŠKC[îÿñÖ²‘$;RBdŠ»|“½ë4oç´’üØ*±5œÒ§R®âk¡e§ç2|‹€ ã¸&奸ÑÞ ºý¿÷¯6p~ð#Š ‘nRD¥ã ZÇ4¸ÛIÞr])!§¹"çÆ'¿‡Ú÷âeÈg¬Ÿ8ËGo8MG¨*w›®ð%U½÷æ„ÜéšDÊUäÒUÝ  E«îEyr ‰È¿ù[÷gR´áÊÞ¹³|SzÎ(o¤¶¦Ó6²D:hNÝ-™tµVG‰$½vÔî`Ç@”÷í­SËLþûZXGìK=kíá`4„ð£wµ¡.–ó2MïÀãïÒˆ®ê%¹©u­$Ô ðnx0gñÍ?Ÿlš|ãÇlk‰£H 1Z?“Væ?%›SG€áq9®jUݬ¥t¾KÒ]Sj y­É¤:ƒ?*Ü_ þ£Ÿ¿õK†:ML~|4i¨œ–tgi~ðã£äVïî)SÝ®åærKiÙ¯ó@àè(7w¡Gf!6w)GÿOî_mð¼öìùö·ÏžòV¼ÉdÖK«…ýÔ®â„rûæüå©üÑÔc?³yNÿRié,6OMc(CBÚa;»ì§ÖëÓÚwf;{ì`vˆ_ªço&,·¦-Æ»G\Ú`Ö˜–ÖeÛCÑéºÃf“ùlÛ?zoèûã…Îa‚ñèeháÊÄåèšcvyßS@÷û˜XæüOå*Îpg†©×=’–Ò<¸ïŠq±ù=¤Ö cÑ»ƒGZhQO³"Ès®aMò¾—n¢øößéGáq¶ªj®¦Ì¨óf É›ÀÐ?C_ì Þ–ø`O…¾× þPôVHÞ|³ëËð~8Ûª—ÃuÞÂ&õS«üÃõws[Í|ë··$—"CO¯™k¦*²ÍGÄÛЖ­á8ƒad=¤ÇtŠ¿iníÂÿHiàGÂï~ A(ã í¹³A)ŸÐEÊC3œãÎK¨T[(é$”2 üIWMpÐ5M ü¸áéèœAº GÜ‘ÓpP¶$M†â‚Oî‰Æ%‘=ŽãwtüëJÔo Úð­§FÎ×ìy2Ùîy×Ù ÖàǨå.äÛ\‰c—ÓÕRHþ‚Z§”©\µ¬~ å7Ь|4Ð4p]¾Z!ÁÆF¨Ï öÈ3>ÅØÂ ä3ÿÅG$¦Æ„Û½ _¡ŸÄ w¥ñÞøæwbÅ¥ÈöèïJfLJZyW(ÆÀØPPñ>ÒQòr6™£s Z§ô¸V“0RM Ë^/Õw^#M ‚§¢“Î÷+t-3%8|ÿ9¸û ø}^ S¤Lã¦Æ§±õ“øé>‰&¿ITÝÏ‹x2’ÑQþY*¢$å¦ê·²îz6Y«Àèû…á£úQ.$­·ÒFE[ÈÛ©¼;C›¨ ‰CWrE߇V»›ù@W‘þ ÁÑ„LCOÍXsƒ~£ýàG:ªFÃM^sû§žŸWAžšd¼;°övúî_5F™÷A’>äòCô¸&¨Ðì òœËZÖ¥dP-ïþƒá銩L à“3ò>_mé§ÅðAÏí v{ag1}¡–Ô‰ö VWÌ@h´wU•mðö 9øñ†6Ñeäç§Ðí!ÔÈ4µ»Ûä=òXÕì\$ܓ‰ÞwGn f½è`ﳤFœ—-¨Ó-ze[ѹٻK¬)á¶3ä.ËφOÄCà¤?‚$%¨0RÌ3Ô&+v–:–Ìä6P¡!ô®Ó@Š~„§¾¿{ÝÓÄ9iÆ@3¦qWN 2Χ²4Þ`×ÀWzÁ ƒ‚^Áïˆ÷–ë~š Öo¦îNˆ¬5}¤?ÒsV>ÉǸ?  t‰²ñe.!‰e¯¤Qøfßlñ 2‹€Xù àÜ™ËÀ›v p]‚Û_L*ø‰ÌP\ÜÕ Îk9¦xÄÏKxÜžzB³€,¹Ä–‰P½ÊüüØÊ½¹hÎþ~¿§vv$Pw=ê_Ü*ôWúÊIÃÙe†Ž¢ÞÒc:Z©)%å,´¾:ܽÁ§MæõÞçMöœc2‚B§‘kÙ·è.Ï•ÑÒXFr} åNÒ¨EèQ‰"À àÇpÒû~ñmüÑÆßû»k©µ®QN~F%ø2zJÎ'!t ¾•<2BZiF=,Ùt“vÒUâ'Y4»þ‰rfòA&iįÁ‰ŠþÖoŸe±?R<8²³tÃPnŽ$5àߟiy]&¡÷´Ÿ®PÛ¥Oä–Öf`Òô…nàGNžAE¼÷»ýÍ\îÄ¥,èoG) 3ïéˆÄwi-£„ÌÑeùi!m¡¶î¨gJ íæ•¢ôŽîR>zo ñZë—lAþècrRèF"ŠC¢yÝEZ]fÉ~É¥çp–]Ü™îÍåöÑ’rWýKÊ£rrwŒá©ð×_á&l³äãîyì÷„ð7_˜¬Æÿ:$·nZ]í v'…³ÁÊé›ÿQ×Îb7²GÙŸ¬žs¿TZ"ë±óøá}wý¤‰è\±?X‹¬ûNWSǙ✷éï_µ£{ÓSc&­4[M+¸“W3”IˆÞñÊ|ùÉE>[íÆæ‹ Q šÄ•³ÒM3Ë¥nt >¢‹‰m>ÿTþhâŒw晲Ƀà“WÓkÚ§ï}Òö’:£×_^šxÐÆþfSç\üÈ@«KÞ7B§B9" ÅM…çâ“ H8ø©²t†¦S0zoµþÕ{}UxÀ5Ôœn!¿åÇŸAÅÀáFãÙÈGÁÒt–Q{Ênªýðý«”VK» …?¢PqôÊTÂUyCcy32Q[ÎÍèöˆ>!Çí—¼ëI^29åÇjk…3u‹Åƒ¨ÝDË¡´ C>âŽtv;Á‚*œ…'¢]ç€ÍÑ“¢ U„·=mœ¦+ã±Ü—“±á Tš_€Gs]Àíñ•BPÐCÈ‘ðï{iXï}sy õs^ÿcý]ïþçà~²À_ß>P[:Œôpƒ«HÙ ]Ø*ñä8h’VæûV2® W<úןëÀ)´þÇú»Á(9ÊÈÆ8”|dïþ»8œ¼ã#|•Pç‰ä g‘2sE伇rmŠOñìþß•ØËV¤ÊMPéÊpî5Y8‚´•ÎPßàÇ$ðã²ÞÐ>òŠ[I9Í8?Ü}89Æí@û~°~âS̺B7¨:÷ñ­ß>ú×Z&p3ñ€Á׺|$ÁuÿŽ\× j_âD’€{ûãÇCïÜzŽÖz„ö¿ò—äd¢Ú[¿ ífËoš¹!?4º‡ö“cRT[êïHQ|5láÛ?ª¼¿ççó¬kàGV0w7æ””î+ô‰ÖÑ5M»é%í£«?"êEy®Mt°®$‹›I×ËšÕþžŸ¯µ69‰Ðƒ ÁCãyæøÇM«mµŠºº@šêz=€LTQð­ŒÆÕÂrZ“He¤ÃEè•ÉÄÇüÝ¿ò>?cRÀ}y÷ŒK––r÷j}™/d RVgàNv¿h·Œæ—:B’#i6Ô¤pÄÍ\¨Ú}ä ¤ÿÉü󳞴Ößë~ñ4ü×ó³Y¬‘vX§®“ÁÙgD)W=Mì"vw{¤ýØúà¹òK¥¥²B›û¦>ÕƒÚ_7éÀPö"ëžÓÃtr–9ípA*ß÷G-ó™ÚÔåiÒ÷Jó‡i`=³½óÍÂAé7!'лìÿ<îX±í^æ úâfèè}4Î…j"A즼”€ªÓ`“Ø<ú©÷¯j8S9¦¢QÐTïómЉØÈ/h0úÅEä¥;&D¦Ùä9W¶úAE—šÏ†¸9¡¨íWNz FÐ5hX4huèszbžÙÙƒ(ñ‹=•ÞRSdë]ðWLk”ÞÒ·*à<®Ÿ¾Œl$†øÊúɤ¶igýÈ)d·jØeñý¡äÑ‘;î›G¦)ù˜†@“²Sä°àÇKz… ¶™&ÓDÐÞÏ” ”ˬuNpðT¾1òÔ~$ÿ\ ›‡¯Ã,q¶8o‘‘ºp  ­_ˆ3E§‘?ÊRÓ@÷?oáxÓ© =™%8’UyšEyá“«Bßû1A‘· Mü ~xWx]r̃^® nÎW+à»3ìÞ¦˜˜ àtÈá.´¿ ?žWINhi,¹†ü‘Cf#ÉÅG8̃øòN]mFòþUVp2OçÈòN ¯Fþ&òAI¤ñ‘–jlyΉå+¸™–+E^ß‹ãšE·‡|WbGû+ÆÂR:G}óS<VºàWYÎ+«QRT÷±¾ÑFr ú_Dv0)y ?Åïæ¾Óä»ò&ïNgGáðk‚‚¯è-ø1DZ€d ÁEGck w9ø3TX÷ãL»£ÿl 7s4‰ÁCüñã½÷ œ}qx¨b|}7gÖÕàp壤5òÆ*)¾5К²ZŠÁéwæÙÜey×ßÀ»¨™¿ýÏgY[ì»Hn¡‡îc¥.È=Ñ4Þ)fË-iM÷®Žâ>’Ór4š …¾„tä)œ¥2sMoüXh­tBCEJÓr¸¡?LM^$ÅÜØ: É%žÓëh¿aÚXÛ!Í,•æÚªÉ­&剑óJÀ7àþVñ< ~ô?†cÜ'F¹…4¡;^ÊXù,Óõ±Ž×mî7¤{N“£¤:_l-$5×"u8fîPJŽný`Üý/‹žBþö|ë©ñ¯ï_Å·®[3ìûv='ŸsÚ*‹RŽzzÛeíÞÈw,¿Yî?s$+¼ë_Uƒwzar;ìhö^Ë1}LGg±sËNh§ü¥zV„KhO[|c&­3ÇLYë¼ jŸÜ„5§ Q4ççòÇe+œÝÃxøm¥bÐüèåèaNÓH$Z/?ªQ_“ùcSÐÅyj; é&Ýn€#üDÇ?¼óñÞ€'ià SÓ]åŽ4ƒ<çÚÈ™i“ ÷TŠÇâÏé±i1¸–2ñÚ~ì÷¼+Û¾3Ž“"ÈùçÓ¹›@å×¢V¯Í(Ê GáU< š’š§€çè>ò‡wa'ªl†üðùG4«®Ž­;¼[\ðËBú®…²/Ód~k ‡Îú\ýuð` T 1ÕðÔr†5Õé„ï ÎÃÁûä]Á75FŸ÷gSQäg¼˜Kr5îü±ô‹Žvùdòú»sð÷qÕÓÐYgz€Þ£¡lÉÐêóQÞ ¨ë.‹2p.ÇûyäXœÌ\ž´œÛN½œÿ¸÷9ÎnnÚSŠ‹|p )è#øu˜òñu®)éeÔ×eE®paÉ*3qÞqñ);x(2H;®LóÍÀ¬ŸøÖÄ…/‰ôÈ{|~,ļü¯Sô¹Æ‹\éd,’\ þÌûpFq ô¸öˆïJìl;è«‘Û*@u[pHŽ#¿É É‹ŸŸ¢K4¢ë§‘Üö \K)†Ï( ~,æ»(o||.ºèTý®¼!&;ZmùQiœÅ#òãñ2R:É*®$Ÿt‚¦ÑòHçÉ[(áu'¨6˜½;çn†–'”¤<Ý´úVÖ[ÏkZ®¼S!>Q’ Š®ÇÑÆ2G:h Ý$t›6GB:/Å‘Gº¢fíx¿BZ Ëk©“ùû©îBë¸m#áÆèÚÉÁ¨äÁÒy¨­N‘õÒW"Û,SËý(å ü~I©G($¸:×e?å2ãM‡oü˜g-qÂPBèÈr2¼Ò¤à×’Ì¥A(zMVhk¤Á Hq×d­¤ÖKÞj3)F„~P‘ž›ÊàGÿo½p¿Õ×e²Q8³0ƒbèPw‹Dþx(åô•NÖ¥îj7¢›Ï-«$‰»Z¶H ©¬9¸}1+iŸ9€ù?É~žäþÞ¿²­6VÜÉDÖck°ýÄ®æäqnYe,o¶im—?&ØO¬wžk¿TZFë…óÞ4¡’¾Ù·vû¢ÓÌ0ƒ¹ÎC;Ò/æ2PüþhéVpÞuè/ð#»õüÈNy ôÞýÂmççÖß=g%µû™—t޾ òÂ_”…k’¡1f’öYê€2úòÇçgÖliæ¬pÖšrнið´K¡ûç© 2ö 8éÐåÏ`ÀS“ùcªÙä97³ºCá7˜$ð§åy4X~§”ø8”ÂûÖXTø©òt5ÿbÂ8ƒ(1”3Ó·cù((u?P²¯wýsÊÀËàÓ+q^…1q‚nSn8ö pPeLsëG;MfµjÛyÉå¹Ðù„`CMmé ç§TˆÚpeäûãàÕ äŠ´Ÿ¹ƒNš\’}¹5ËiBÞçÈó «§ñ½UÐRy}³GJ“ŸsÙù ­mŠñ?íºi&13‘¨p ë_Ç™Þô™frop1¯!ïª÷%y"Ò‡wýöôÈø/>Ä1à´#{l†ƒ¸ ÿÐá¼{± ù£´"3ŸÀOTà³Ôu¬Æ¹üü)ª§Å»Úz)­ŠDS Ùf üóï\‰–ücýÄöcã}~ž*þ’¿ð1\ß3C’ÊIÞ~¤ÒúY#ÈSÎ-Ÿ‘™²qm!Gx4µ*e£Xö°ïJìo[T~å*•EýêñŠ eœ4âò2^<‚»Yj=ùÀí¥œláü\”w²Êz´ÄY*J× ß•·Èdáœ|):w…—¸Ç3e¥4ϪHHääjô*Ü~00*†nB‹Žæö¾ýI.p.‰É³ü½¿ûÁÇÔHŽwЯN"…—ælÈ ƒ”Q£pôÔORè"­¯‘JkíN÷ß¡W¦ÀÕéèïþÕËϾG Ðf«é0‡¡œÈQud¶†qkéVÙ)¿« ¿ í÷BÉ-¤‡æ_׃ Í?²ó!*júšß¾ñc—5ɉÏ_r›f™p|\Ô-J–G2Šˆ’C7âO½ô°ì’†úBóJ|·”ä¡pp9¡g ÑgùãÇ`g°ÉGÕÈw¿ ˜v7j™'Û%›†r»i w£{KSºt°Ñ?}ù£5øÑ¼YŽ^ý£:¢Yüƒq÷¿<6z’ùۯቧ¦˜×û™#„uÓjiŸ?r8×­¬–wmøêv»²Ýß~~üÚóó÷ž§Î[ÓZÃÃÅ£ÊNt§‘}ÆŠbf™VÎ`ç’1È7O¿?jï^y‡Lk(Ä :`S8뀂ŠPjÏl1))L ³œÿy<·Øîƒ>s•öùö³NÂïÈážÐŸÐ\„ž ŸT¤SærçœÂšGЧ?š„p½3)”ú™) ¿Œš‚;A¤=¨÷šDù(µS8ˆ_ÛÓàt[ƒÞÕ½N›þT€zPxÞÂk x™Øûžå~PÓ»ÞÊ|W'3ÔúÑÊÂVV»6x3£$ÎÕAÏ/~œ§á|ŽòSO$&á£t Éëí¥] é>ºoê8¡]wŸÓ ¬ ÍÞ}šîƒŒ5)=%§WôùÒyÌ3yœóxZ‰óŒ¶ð3¨2 „ë<%œ¦-ÒÑîË8oD)Èo<î¼gï|¶¼‰Ï⊤C†›ºm¥‡ø¼iŽûõçÙ}{¥”D^¹Ìø òwnö5(WIh`1Ýí?Ì @“)H7h’{±-c¹8Í6}œñ=ë•IB¦ƒC…B1.plI${ù„ÔÔÚWƒ»®<ãòù#9çc–íPÕµ\Ž"²Ý/ÀüÁwðRÛÀé\àG+¸”ð2\ÆH}dšÑ:N£¸;õV‘Ú¾ËrVžË@£éh™Bt,Àú%SL&N gr”Šr'”æÇ‹d²´••\Yw5Â3¹­£%’´`È ?ªñzö®0Oâðbïïžñ4²6€ùøJ»FÝ0ÂRÊ ©¤Õe:”³¦>†¯_‚ü1MüÀºgÑׇ¥‡÷ÎÎñ·~û*k¡ýˆ’â«i+69´T‘éÍ-†óZ¦©ãÎ@ñîuR¶ém‡üqã¯Î67o¥Læw3ÿ?–[3œ8­0î`¬…åsÞÍnÒÄúVfª­'5ƒvÓ˲N!¡¦“ÕÞ;(²÷- ð#/œÝTówýÚ9}pu;Ã…$—Œfw«÷)ÙNI§Ç´£Vu7¸µ¨;NÇÉQ]*ïä2·Ö¬Üß?N˜³£éÿ“ùÛz,eçW”•noYpÎþÄó¾¨ÕÖ[+žOÞ3¼oªM‹© _ÄøŽ‚¼Pn}"}2®“6ˆc8‹(wÁ™íƵø`†ÂËŽDí–Çäˆpzå]¤´pì'Aæzæ7ëGN!¿U×n~LñQ­=4÷L]dö×4ÊŸ:sèèNzLÏÀ9ïš¹ÞÜ/šÒ>™úÃ:í´Çø Áð§Ho~P×BTŽú úÌ>gø1‰ë#7̇GÛ€3ˆEWLTŒßŠ>?¯ãl4íȆ/žÆI9Ï)ÇP>ž õïÁ³8!œíA>Œ šðvZ@ñû6RR;'ªpÏ“vÓí\ĸÆÞUd;Ð1*Æ/¸¾d‘5’C÷HÙÅ¥%ŸoýÄÔ¸Z§¹'œqw¸‘A¦g€ë¢ö'“åeGM¢Ë°: j’T>²wÿÚÔp½Ãô¼~ä'œS‚ËT½$;rôÁ…á•CÚß—ØÃŽ€–ßäÛ¯ãWGzt¥;²AEÎ/cu•ì‘V©ªKÙÂálÀƒaHyè„Só»ò–˜<èûà‚ªòxðã-O–QRKf!aEq—k|}-;t’Ä“abéÐc2>õðÈ»æzDîåoÿóýžÙÖ2ŠÆ™á¤ªðu\…â\RnJK}'ud›ô€·?)YuŽÖÐ?äø‘W÷ñväÕ \K~ R÷6gÿ~ÖûÅæMøúfNE£8œDÒ…jÜ<ºüX¨ÏÀ¢ýøû|Ê!­Ý%–zïK7DÊÎ[¨ ikÆ~ãÇ k¦“ž’Pdø§´Ñ ã’ÍÍ ‚gÓ0ú^Úájøi m­ä˜ÔÖ W^h )…¾ÿýï¡IÇ“©ý·^èg p†™bÔ‰0*Fû8ÍàþR.”’üè®mÝíîU-âz÷Ë:¨ä¶T•NšžkÃþeîÂuºæ×vèû?s󤵢|ë ï=Í­Äÿ:<´úÚÑœFNaç¸UÄòîÿQÍ®c×µçÛO-þá]ÀðÖ9Ç¢®T2Ó“ÕqœØ¶Ÿuß™iš:sœãvjû×êYÝ|@:8bj“7%œ4B9­`NjŒ„DH óLD2?yÿ긕Èniîûf¸U‡‚ì¡4¾õ¯ú›ð¸¼ïÈPCúÝÄ6‘ÌÙŸ(¯–³Ö™g*ÀÃOôݧw@¦”oP…Ôý:öÈÄDMÛª´lV|þVã’Å5x:”#<èÓ#g´Ì»~btŒÿ‚PÛ)ÞUDœŠA´bg2ô½)ˆ¶ ú•:ަ­Þ÷wÓð"zNk ¤éØ»g`jmüpþ`.+‡]‡¾€‰()  ÷æ ®Gk8øðe©¨#‘þ ^#¬FW¢äý¦”ÐÝ{~Ö§ Ú;,ÿj<@þ( S¥}¡âtÁYï¼åEp‘?¼ïÿN è‚qÀ˜zÎÿ¨âÛÿü5…¶EGþXKåi*˜ë½U“—±ƒüq‚w yEâø¾çç{à?O!ŽsBÙ¯”·Î®eúø®ãa> н¡`b>~Èu%?òGY½*‘?J5YÆõPf)>Ç¡ÿý8+M6ƒ^ð#VJïNºüŸ‚ïp&‰"ûø2ø‘P»"/¸ò†óÊW(x$†·ðöËyzgZŠ`¿#n3[Ð^óPÿSs¸‡‚|€*›1¦ß·±·ÕšŽü½lFídà xh·œöÖSïJgª5¥6ÕkHMõ¶f–çÈr…)"C|arÀËöò·~âoÎ@“£¬:ry$ ­IܹšOæÈ*É©»õ7-ëþážUFjOÙ¨ë$¡föš‘[ûÖ¿ºbž£7¤2ÿÅü“žDV"ühiµ¢÷ŽHÖGk Ù©î”rÎX%QÊ.Oudjv/û¦eY~¿TZ/<á ¤!=vn:Ÿ1ú»Bõg )® ñ ÔQó $N?^yj:'M'zKý‘ 0Õhåç¹Üʹž?Q-Þ?ÈaqÞ+ +ІÞ={Û¡o\»`“ÝY­%GJØÁùø.\Ë xýÏ\ARÉ)©[¥¬œç² È\®Â±87JnÁ·¹/g§é¦K€3fÛPmøS m~/žq‰.wy·$ѬP¯7úˆoq%‰*=8 gà#<”—ò®Š^ÜþþŽXkð£}—ró(yDŽˆ¼0Vòp™¥Ë4,òÇät’Vâ=ƒL<µ[ž^£äÒ|ÿþîrS„9ˆÑU‚»p°m¹¬•ÖøÉ:Á·ÿàm9¦G%‰L–Tº›ÛúÞKXÄ›@¤’€çø[ÿê¶g‰µ‡’"‘ݦÔèÿðå\ž»¥:ZÓ·~{ =,ñtªÖÓ¹r\*i5½†kÓ,r¤®ÝYjão5Ú•Ö9û#Ê;Š ½ŽCSuN&gå„~BnÙ+ªó5¦;M/èg ®gÅOOiv)¤k¥:Ãx÷?¯e¦šÎßø±Æšü‘#a Üè“™iR·’öC.Jªé´?²ŸFÓ:ú@NIs½¡1Åã––BH4p5lœÕ^êó­ùÖoo ñÊ$¡Ì:Õ3]údB½zjcw»I+¸Óu,ê½é(§ôÕtÜ Þz2ÁÑ#Sù{càÿÞqÄÇú{vï#O;ëמ+ü}XÖQðŠääCþÈ…RV{JCçKÙí³–mü¥Ò>{Î97MŒ˜ÄÈ{ÁOvlû†u9/‰ÓßYl'¶#ýR=ã!1T¥m&3t°,øñΤ³^"Ãç£Î§¿ñ3ÇrýÝÖ'«…¹‚±·€rÀů¤d\Ÿn¶Pø¯âð¹yi  e’™Ÿ¹g×À™ïL6Yé:ty.yçÝ^£–ð­w(4÷%õñ㦠ƒvXb™?"[ };†€ Ï åLE.Ú¯m¡YP ïnÂÇ@͹H:!)’S6ˆV¼h÷¦‹Ô„Z «w sfZo ¥ç•<ã;)/¦O8ç‹ø4›Wãj•7õ¬¥®‚VI;ÿ¤¢$øïóÚ4¤!øéA O|Ê9ØÃ'À—äÝ?‰l-4¿žØšÐC­ÅÎb\ƒ¨O3ìUA Ó#ð£8BªcÙ„ä§á¬—€ PäÎ@çœðÔp6›f8›®Ü„³s(žå Ïç6PáÅœt[ò®uÎ[Pâ8´Ê$´d9'¸ý0@y ìžfŒw-ðc>×?:#¤ç× FY!Ùt›dGþ(+5áÑrbN7^ ¥7f¡¦U€3þ`½6)Q£Ð< %>àíÚ›P"!œ“ŒOè=}ˆÉ.$‘Š‚u A¿¡œ…‚Qªüh 5E»ì£Ì(±$C8i/%3ÇïüéЫ+Zy¦±Ô‘E\šã€ ¯PÇq |Zâ3ä7Íp–û¡ÐÙ‘¢¾Ðcž¥o/㹈ƒîŃ/¿ Ë$„ŒDþXËÑjòžÍ«ñÉIx¯¿÷wßyfZ '—â˨÷”ÊHZw¥ª¾•œÒOºj>Ý%Iu“vÔ!ò—ÕLzŒï†²^")}„§äo5Á?¬ö[Œ†ýp%»8þÄR_èÍ /´ ïŽÑãÁ­§å¬n×RA/ÐjÊ£À?¨šíoþùdô¼ÏÐû|ÏéwóŠX“¹Þýγ“q´™.Ñ;øs]}.û%‹nÑ;üF;IzƒÞ_Š˜2ðN»`ž·:8£‘?úQm C±ÉÒžî^bòGn½ìÝ ×éžÑzîjm&édY)qPÃÜÜ>‚·Œ÷ò”ÿÑüÖß»ƒ²Õý_Ïÿe°&ÙáfNfç”oÿÁÝžÊv1äîöuë£çgîåü}k—sô¢ZÐ?“Ìñ8Éí[ÖKg¤Éçüîì·Süâý«æ%\éS}¨0L2ë¹jbLpÓÛÜ4—íG?UÒuë­ÕƦ?  Eh GÆn@‘¡î …g0*³!‡v01?~æž]mgš³Ú¦›ÐA/?˜ÏQsò>Áü‹_¡Ž—M0i›‰$?¢YÝ) íFþˆÂÞü‘>饩F‹àÏs äÕÈл¨"rÎ$ŠN*A´¢Ÿ=ŠN!ô…ÖÔ¥gf²ï©r^èé.×<…¼+IžF~~H»ð˜ÖRW^«„#®2zœísÃt >ôŽf‚‰iT*¢{äFýŽ4æ]uå¸ièóóYÖ§>û u¸;MÛ@ì Èg´` :îœt^ñf®mœMÇ@Ë1èIgÌS ÂcžjÎ.Ó¥õãàbXа’M¨gžÌý8:ø±žOãÌcƒ+h6j×Þ·Ê|c'ŒpÎä2»¿éEå(>¯â¾ý£š¢§çgÜ@òÊ&) §$­¬?Š xß9ÍÅk@®‹ÜŽcBý~ pÆ/¬§&FCX(Ún~Ì(…+WøºdÕä:AŸ+Ë ./adÔ>ÊÚòuát¸Ò©ìïg”´±?™&h• Pè Èh_)œô—1R€ËJݯ‰Ü#úXÉn*uåâh[ðh¾‚–Ž`…ùѦÁµÛÑд¼Ê3QZ'éË$‘»ªúZ.é&ùÈã$‘î1ûpuÐx2CRIÅÇLùoe}ñL³¶PüûeÊgÑ‘Šr|¹*-4¤æAJê§åõ¼äе`fä*ZZýø<·Äùz¤™ïI\'óÏ[»m§G:ÚŒüñÞäÆUh$s7Š!¿ÄÓ å(~Wu·ì†ú×B>ÜIϨ9ζ,òGYÓÓßüsoÏ ‰Ÿüp}ë·Á9VÔ¡ÈEaqž5ŒŽ!ËÔÆŸJE=§Ñ„Ýj’…,´s h~nÞFí¾õÂ#V[§xÔ7®ÕS)ånÓô2 œÈ¡×´¥pç#Öuh[¹‚:FE;tAþHïÌb:lˆ£‚ÿÅó£žÄ–û­'XVÛ=ÿ#”ušk¿µÛ;‰œ3VqË»mc»ª]×nf_Fþøµù–u¹oZPcdåc&Õ)o?¶B˜1¦”3Þ9bÇ·í=ãæ,µ¢ƒ¦,\` ß:Þ ­ëv:(N$Þ»÷“¹ø=?®Y_¬Næx•†œ‚F¤(4Æœ‚¾HÞûG¥©·‰bRüTþh ~Ì1%éüìlä  î”=-.œsb(Oð#12Ã*H~d¶€_ç½Ïs HcÈ‚×w ÿËhU‚ÆFß‚.‡6£øÞ älíHF]Ñvká _˜T¦c<¯fïªx Ôþ”Ñå[Þ•©1|iÀgÉÿÿ‘Êj`g¢Ç8ÏäÈ#(½…ãB¯i\fNÁ•9 ÒÑ0éO|×h Ú6ྵÁéƒÏ|î{Jv‹Ž"Tã¼oD5¢Î+Ç…>7“¶@ÕÖ KÄFYŸL>ª?þôtN˜ß@®ÁС,Í·ÿùHè×TnÅ¡t¹à—ýx¸™“ó|ßþV}ñù›h8òGÀ9/£ìVÈj¥)-çýPÂ{Ô“NRy!$·Ì‡¯<,<êJyü×»bcI^M½Å½8:7œ±e¿6™à€"‚eWø=¯§h¨S" .—ù/i£©u&ôþ {×;Œ&Ó9 äKH(;‘ £G$±'X÷²ß*ø²¼­•#Ë™#•iÖúößç[^Þs/¤ˆ}¨]*þEN!Ñ\?B™6ß•7ÜÔæLì}‹º0x’ÏòJùC†Ë(uRw)êw_NÁíUâësWEknDûä”tìg}+ë¡gµ› ‰=„S9A½©"—ÒA#hYd·áàÅE)­´›Î“óÒ@éE°½oG–iÃà“†øÛ?j©µÓþ®íEoòãצ8Øü`hþŸ’Zg#‰ÌЇÈaõ’øéfd…ªºœ^P]´vïÚfœiëoý«iNŠ€q¹£5%œé;‰æ–F9A¸{øÙòz[js},§pm^je1nuÉ„Lõm÷ÎTÁYý½ÿù]«3Ôd¥TÇ·2Ã+é†ôWP¦Àg×pn_íìî?»u˜ÜGω¡Ù¥µ¦äfôÚL¡S¨A,Nk~f·ÓÿÓÇfOó?^{š[ þ%?È:dM?ê9Iœ“–÷éÄVOm»¤ÝÆnå‡÷+Ghë¬s×4¥vЕ&“Ú©gÛv83ÊÔqz:§íwÖ¯=ÿÈhBUŽÀ}zWÊØ…ü‘Ôºü‘¿ÌDsÁ|ýÉ÷¯Ž[¡ìñæ üüjèÕ,èVz®@áÐŽÓot –~¸•É`¢ûÛƒùÇG gг ¹èM¦…P¥OðÒ=(¿CFR2ü?1=7Q)?­4$?2Z})Î/*Aq8ïxè†@OPø¹] ]<ùâR '¨Y4Wíß‘Aý6@-O™!È\³¨o®V…§[E_i?>ctö¥Ú¦Ÿµóe¥²ŠÛ¹Éáa¾Y)ƒé“¹fZCý½kÞÞu—À•Æåã À3èÐ6ä»5`ÓgS#P~L°8 w‚o» rW | ›÷½ç&$æL6ò@øÇÑ4J9’¢ƒQ*?ÎxÊ;ÛÁ4˜q2Æ‹‘´¦#³Má<„€)õy+òÇQd…H'ó}wŶÐnjæÄµo(o±]ÏŒ’ñ9ülE~_qíö’ëIièt.¸Èœ²ÛJÙÌMÁÍ¢ÐÒ>HÝ8)ÍÿÇþQj?0™¡/‘x&߆þ¤Ð(7„“]|^òÃ÷NÕëúžqv_þȈò^ûöÁ)-E¶0ÐÂù­G_+/P™‰#ÊD+Þ™“t“ÆtÃ7W?šHCÙÏù95²Â[dš‰ðÎeèNç1ÑÔâRh•ƒðCù=íåU²V†Ê$n(aÜšBßÊ1])‘d€DÓ3øž©8ëÅÈ\Ç8¥¤ä ¦Ö·²ž{Æ[Û¡ˆ5¼÷nùÜTn®!/e Ô¹”,–ZDÏJa𣖕ëÒR+¨÷½†nü‡”¶Hî'i„9ñ­¼…Öa;$êWì4§Blp Æè{ä?%òÇ}]Z†rCèqPnƒö“ŒºI¶5òGEÞN%Ì ÏÏ'[p#¹È»zÏ\(Ë57Ê)äÛ礪¶ÕóšFƒF{¤­Õ²J;K3Rþ‚^†êðþÞ"ßcµ?r ——ÿE?ê#ýå‚ËX-9õòÇw•{ü˜„ó½«+ä¶øq7ßúíah)Ý3×('3;~0îþ—ÇAO‹¾õÛêmEÿ—üøàÙm ·¯Ú­¬Î+?JYãi„üQÝ`¿¶>yN]„¿ƒ¬SÎQSƒš¡ï¿6eÀBö ‹?Ê;£vB;Ý/Õ3¢ñÞ>Þ ~ì7ïMëòG^ cn›—öÏÍÿ8i…°»˜·PƒµÏ“ ži¸*E1Ó(8ñºÐï¦è±Mbó3ï 4?¦šP®™ Òè¾wý݈üŽ"ð$JΟàbßš”Ðȃ&füHnõ€»ßd‚#çPå4ôÊÔƒÊíDþ¸ ½‹Ï~PŽ-п”$È÷¯Ûóé-rÅhÍpºkú 6½|«À®ÆøÎB½›ŽQBvùΠ¿igýèJ§²òÛyÁ›á” ¿zÑsÇt¥þ Å08ͤPîBéè-}@}·ÀÝ£›ôÐ4 tþàPk†ÓéOxUAÇPËÒhû HS"sÒùÈ ¸ F+l?ÆP":n¢ãê·„»=åœfZ´- /Gª™CqàßËqhgnðc?È/¾ãö®þ;ï¾õN4ûm€ò¦ÛuÍ(jA¹ø/dŠÚ¸ŠQÂÐô’G–Jy½)Ée¯ïý«]Ü™¦Ÿâá à ÎMKL¯¼õÊ$Ç“BÑ^¢”í× ©„—|NÊjJ8è'ú ÿRN"ÈL\™šü Ú| ¼)E9(£=ó»»ÚoMèéQd¢ œ‡=Èáí‡pn™­;5û§ÞÐöò™ÛIw9Íí8;Ô9šœ…Ïÿ üˆj}ÿ>°)ÃE?vPFÀoé”eÒO¶rs ïœMßÉq="¡¤{â\ íy„_àcðaùã–§‡µý´?Bj8]-ÅeÄÕ¹F«Èé Ý¿#ÙuµwßZ9*]´½^G*Š,OZ‚Å'àþön[¬uvpΆ6›Kò'“›ãÈf™©‰Ý’ºGžÈ8}¤ÞßÜ0àÇA=¢#Á€•d#Ñ,ç*è×ÌtÓÞßúíý”Nd2yß<>E_¥¡›[çi~œçz©¯yõ/³•>“­2,é,1ݶR…BaT×&›2ñZúÝßüÁZNO“‘¼ë(Ä$—ÎJMw¦•52[Šê^­£µÜî9MáŽÒrUoHtÍ#Ó‘?šÐS³šÎ™'†“ÿ'ë'^ô°Bû{ÿª…õkºü÷Ê:kͳ ÒAi箕Û÷þU}»¾ÝÔîa_?]„¿#ŒµÛ¹h¼+R‚ÍãDvÊÚŸ­`f ©íŒpvØ ì<¿TÏæ ¥›¦9ùQ%ÚˆüÉze'Dš,fâƒWÌC;àǬvóNÞ;Ãl&T!:—Dþècöà. d‚Ö71Ló3÷ìš8óœåHZŸàv׃à k §9œ˜§Q"þŠÑúÎd‡—ÝdÉbVwø¢ÍÐÉ´PY”üýbêÐJÚDø1|}x>Š#Ä ÌV¡øçqÇ^ Ö‰èM &ï;Eí(Ÿog‰œ™—úöS?AqÙðYèm'3ÕúÑ{ ¬²vaœçT.+Í %ï ÑVPà± [šÄ%áû7#‰ÝBýv¢5ƒÏL±@ù1Óšêt7ñ@èêi»åAÞ@ÓëÓgÇÏy…mÏyy ÊÚ ­EkZž<Î>3ãp 2‹wÖÿ"*+’–Çp3î Ÿœœ›ð¾Æ;9òÉ0éʽãݫ݉ð½+Û|û×@þxÊ­Á£ÞtJûÖOLeÍ«—%½\âVG„žkñe|ö;dïþõ÷ÿˆl49qrC¿3Ê[ö®C³ÓK4ÙÀ»PZFýz¯ò„«#,àbhËÏ(ñ0ê\­Öž`ýÄ÷ ‡õªCŃÛIe¼ü.£8LÕ}Ã÷ü£ƒXÒZšËq0¯âÄr>ÿ¥°Þ¿eJqÞ‡1‘-æ 7"ô‘Ý\Y¹›´€ׇP¾È T*½ÀËx$7Ý0K1IÃ[M»oe}ñ ³V!}7`ïºNÑç*¡Õ"¤×²H–!w|ºÙ·ÿÓC8ü(ñFy‰e Rñ)¨óß+¬²ÙÌIy'-¦E¥…C-&"cµÓ£r¼´Ü‰Pü0n<$†¿ZI݆¾Ð×½$良f¼êoý’ÁN\òî:×¢!¾*ñÜ":Yûi*Ý"Q¿[š];ê+ùl? êÅqûJbd£:àGvÞHã¾õÂ[Vg¬ÉJã0.… ½— w1ðC´†^ÅÙõs—º5ø1Db¹g$¬–ðíÿÑ~6]1O¡A™ýݱû¿wÜCþæïùGuë×ÖµýûaFþæ4q²ýü8è©b—³Úì›V(ëâ/•ÌÚᜅo@•ÉCYœhNUÛ±?8=Lwøõv;Ç/Õ³ ݇®™FHØ5i‘9c’Y÷íX”êšDf9xòþïÐ~¶"Ù팵ÜB h 4.#W 嬠žt–¼3´;Òd“Õ7?Z ÊÿQÙå¬Â™>bmÎ;ü€ºRL¾ o3ãç5÷Á¤GÖÙkbÉòVgdŽí&’ïýÇåèã)è ”âJ.ÎçÀ‚ö”‚žÎ¡”ΩD+>·G"4£îÈYS‰¨7TÕûü|5O‚/ Â=AÙw‘?ÂÀ}ö¤ªfÂ÷¯MlU±+’áñàG"I!è λ9]¦ßà43Q;.Ÿ¾%^§ó¾™Ð#ºôØý«ÑÖ<§=¦X<Éã"K*e{¦T!Ç\uîñJn 5™àÛkv*ZÂÏxwMê?Ö{Ò:|ë·Ïàñœ“•7€Js(t®%JYÈIevøVà„üñÒçq´â+üÚìxìKÊbW4C©!e/¾‡Ÿ|N^¢büŠH øüjzQâ‰W” 2|‰µ|µŠ ¡÷Ë̘glì‹&5òLFžÍ‘ÄÈI ËrI*ûø€¤†ïýC_ª%÷¹0è2— ‚îaå/Ðn—¥üàÇ÷{õ¶jþv½b7ŽcÊt#ÝÁQºG“#3œ×ú(¯øá]¥ïãòu| W¢æûûWMQ.Áh¼Å dѼ ú× «¥Dv·j.ý"t—„ÑO·1 qÖù¾7›¢êrm§óä¹ôÒúºœî Z&’æè•KiÒw÷¯FÙo}óÏ×#D¤_Èxí¶×Mr^ëS]¤4´"%ÒŽRI7Áuçù\ Ü©dÚø»µÐêé„ÇXÈ…kñó‘#cUFþ…ëp_Ú€"5 hòDö¢¶OµµDsÛK¤[å*ôÂAnÿ­nµê;}MlèSmJ@jîzÍ ÅÒJ¸ õ´¥»ù£²[QÇÊ3Ý'ɵ¢ôÓÜ–"Ó|ðã:Rx’ÿäùùO|{o>ö4°âüK~|ñl³†ÚoíºNç–U¥l÷”±ÓØUíÁöKëÞ/îuËsù£#2]6´hJç½Û¾gvº›FÎ ç/û‰ÔΫßéÌWøçݦ>\ciZc‚“c­µc¢2±Ìó΄vnÿTI­÷VOüØO…i¹oW‡ªðÒUÀ®Ð¾n”=¾3òGlð®x`Gag¼3Ñ”Ûñ®±¾ŽBó3øçt ÈW½ÎCÏÁ ´Ã„ ’±­nPÈ醡|MÁŸàÉ»ÞýéÛð49øÑã| Å£ôNÉ ŸŒ!—»Aýö¡ý®™”‡S ÞÈ‹ ()x,Îø0Ú 4ã:ÍŨ˜õÃùçñ­tvQREÑ0N† ©_3•¡ýwi¿¢„4 %¾§q¶…N¡}½k)¾4•œÀæ$ ²:Màécòïw/‘›ájæD~»ëOèÌw>B;;p~žvnöÍÿ¸®–öwçàïc•/t¤à<dLãËAei6eâß¹>wCÚJÉ.oF£„ô| Ù˜Ÿzg­‚&O¹»”ÕRZ¯Kj9 w^IføÞx-ÎLa’±Ðû%fH€3>gY nJŽï‰,${à.öp*d™]|[h2¨×WM ½¯(¶L‰‹±#'ÁHÇ%(ƒ½à»«Ø_Áîu …@Ån¸z1dœ,”†œBæëäÌu“ú(§*gDY±åOà“”"šïçö6e9ze¾Ò%ž~tö®Ü+1ÝEšR?Ë+=&‘Z¯ñ:´s >ÁG ûé% û™ßʺíim-¦(àÇ俳4ªry"Ã5«V– Ò[«€±t þ<¹ Í´½®â“hÅUào3Ž öò·þÕ k„ý ¹h!Í¢C—òp<)*}5ŽÛPWÉ.Y¥t±žÄ9G×ÈÛµ®”Ò ™ÁãÝ”Ïô4½¿½ùÖoŽÂùg¥¥Ž'˜KtM7³NÅ5ˆ©‡dfÒ] æ0½%ëPRc-/›´—oýöÏT—^™ê™³¾õÂíVsgÉF£¨"Å /朔pÏjÙ‰sKŽz Ñ6î&÷£q›éoòD—Il½Åƒµ 7£°´ŠŽ™“Uéþ“ù§<Éý­ß̪ý¯÷¯Uë¢õ›ýüÈä°2úÞ¿*oW±kÙuì»VðÎ üˆnw^™NÔž2ÐU×qœL¾ùƒ}M[§¯sÎŽjµrÓ÷G~ó 9ø©A«q•V?“Á:dç‚âä5…‘N/™?¹ÿùi+¶ÝÁ|!ï\ÛVPa?JÅå‘;‡˜pæW¨%£&4Ȥ4!ÌåŸ(¯¸³ÔY„zÝFï^ŒÉH=)5‡‚»gšž™4È k~âùG9«-Îi…‰ %,ÁsP—TøéæPÿ5T%ï…Þ^¦ðÎ(å° Å?»öDzBÁf,¢AT×Ã¥â¤ðQ¯QÒ9䋽gÐÎùGW:¦UÁ®}Ÿ¦ÅGNûj>˜¦¸ÂÞ÷¯îºc¹"tÌ;³â+tm Ôy/rÅG“'Ðü1š洦û <ªE[šSA¤£Pôê´Ï9å¼à%ÜYbm?Stð#,8Ü/Ðçç5æ üä`‰8!ά<‘‡#üÆ“ÁŒ:¼ü8Å…Á͵4<ØB7AYNtûh€òFÚÅ÷¾Z:¾„_-ù%ÎsœïsnïÛ¿¶ž^•,¾»;ueœsx®ÂÇy:¿åyÜ6þƒï­& œA (Úg&ãsZIŒlpFÒk¨×k‚|PH‚Ai¡¾Ÿ}ûû-â:”ƒ2ÙÓ¿+±“ýÉ´ïOùÖ¨ÏYd†Ì–ÆPóqºS£¸WôΕ7Ü_:Èi®Î9w¢"1ã+è1MŽ÷¯2pfÞN§áÞûÞß,d——¨î|-¨ïäšÚUFÉgÙγ@éÖ¼‰š%ï1Íý]‹¦Ö<ŠîÝ—óQð##×ÑFCëÈ`éŠüñXBê2í C嘴ÕÚ:­ño½siæ‚§¾•·Äš`@ÝŠ>üǤ&H)ï% òF']'çÀn?Ý­ÝàúòÇ í*Åt+<}^†³:IeL73üÛØ[~„¢8”þâ mÁ™ß”ênIkDÊl]©Û´ŽEæZ"tš6q[K&Š€þ]~¸ï¢9þøÑÁbRÐjL(%×Âî2Í ~<‘lz9¦…»Ïý¢™ÝšH„_t£DÔ¬2Zsq|÷Dºi®!§å1?zoåyôDñ÷þî{\¹ÿ’®uÄjo°«9EÛV!”2ÃS×.kW´»ØŸ­¿øþÕiÏfçžé ­ÊE†:±œröeëµ3Ædw†;÷ìV’_ªgn£Üþ„ßÝ]XaâRxk½jѼs†›×&„sç§Jºj½¶ºï9ÊÑ8øÞȤB Ì.èòNhW^ßú%±L†Ÿz~ÞÔ™áŒ3¥}ó²—B; >¾%¥ä‡»£ÇÝ…c~i2â³®ÿÄûW¡¬á ÍróÆ$‚¿[ëÛæ¶oÖËfjÈÞ;ö±1*KÓ&h}6Jæ òùǤξý‰ú‚FìãÙP¨$ðþwáÃ/¢ 墆 4ÜŒøaþÈf%·+Bï‡S ±'tÖ–NÓ0œe:Ï582ÒÑ ²Ùc}­[^›ÒŽ ¤–¬ δZ¨Es:KÞ·²PÅE}Ï9+œ@xwÑZå»_‰Îš`8÷ðcš'¯sÔ4+'òH8éh»2Ôü˜nô‚ª'çv>·|žcsö¾½½×ëhµÞñØçÜ´s˜!àYä•‡Ü lm‚+ n-Åd©x÷6M+7¹•T–¥Üú]Нó0~.ç ™¦C€3>l=1Ѩ$%âi¬SvÓ+ÚÎq$³lðí•XGé% #¹¬„–ÙàGä# ÍBΆTÜÞø]‰õì¦%ÚwÜÏ2(ù{Šè{·=òÇ0] E½­t6ÈÑ 8ȵ8/¯å¯Péi|cÒ1ž+o„ÉŒ¼»ý75Bßý‹§Ë&é"WQŸhîBä£ÇÂÝ/·‘gêžÃ½‘ç¶ñ ¾ƒ•ˆû{þqÞSÚÚU‰/QN¸”J8í¢a´¿ “AZKŸHhÝ¢u¸\–ªÚ[°RÔfŽ"8²ãJó÷Ý„õÖ@ÛF‹lB½Ëå+ÇI2î6†—¿&ë@’±ºUÕªû‘?öé`ðýZ¸¹ïþÕU*hzû[?q±ÕÑyž”Ø{–™ÇtV’¹ÉÁ1Z\/Éa퉬ƒ¿9º\ªéX-ƒso!E‘•«ÑgS‘çÓ<ÏÏë;=LRœgMxÅôZZ»G@ˆyrKRëŸ:Ck¸»]qÉm¢E‘â6J^- ƒ55-$Fòiã‡Êg6ü`Üý/“pú¿;"V«½þUHë–5Ìþ~duöùÞ¿ÚüQÑ®awDþøèÙtþŽpÖIç‰ieHE'ÌSäšxö=ëÿ!î, ¤8öï?]]_Ü]·àî.‹‚»;àî‚www—àîîîÀÿΜó`åÏ’ó{ç5'ï±ËLMUuÕýÜ;Ý]uÓ­e«¸£?˜ïûþª¾½Gíh‡-ÝÊŠswÎfuŽ›Ôð/Üv,òÈË/ž ú8îÄ2Ãì{ò}×[ôŸ/‹ÔÙÐ.ô?O滨ýn£X¬õ¯jº³Üy¶ôïO8óétž¦RÂu gŠ÷S6z`ù©÷â›mp:€‰;läê<“RSpÇ·ÎÊT*Å»¡£^^zû®%F'úæú»ŽÛÇ¿b_¼¿Ý·m ªà ç×g†ÚÿN¾oœŽƒQPzOä>Î×V­Oë”6¿ [´£¸ÈEýÀçÖ·²ÖêÃpPÔ^Ï‚q·áé!3̆F_‡»J熢–3œýn{º‚öŒÓnúiîÛSô½¥ ´Í]å^ÖÕGþèG+¡ô}ÁÒk62Ôúí§<µÜ]ð+¡x½¼©æ?÷ïöE2ˆÍ•@+¼¤ô]Õ]€L3×w}†FºÍçßÎ7Eì@Œƒ |ïªÅAàË ÑUn!ùd±ÔÍàÇy.&Ed.”×·ÛÅ}°ã X•…†ÛžŸµXÍS›ƒZÁSÌcÂÈNôã Ž! e o•Ÿ4þéßÿã!§—À¼\\¯ó­*8œ‹¢·³vý¼µ‰¢mÀX+‹\Ñ’C ¬~ÐæjœCëbµÈÆÛú_GêÊ $ßx)ûVÛ¶ç¤÷n…OÊ›f3pôÊNôX”vùcŽ´ÓHä¦ÕÑ[ºQÞpg‰¢ÛAqH=»‘æÎr‰Î³íÿq×ó›³-ÍÍ÷)«ÿúG.„üÑJãk7m/íûöOjEm)¤žVÕy|=·d¨Ã‘x)u´vÐLg²yˆ1» ´ÜÌÑ)ú¨4ØŸŸ&Gd®¾Ð¡:SÃ{£ê äÅÚ\t#¼KGÿúí»¨ŒícǺþñ›¢QJŒG4ØÞ¤Á›CGèïšü8‚<4C ë@}‚>h¯½µ©¼ÖfR”¢²‡óÐß¶(O‚ÓúOy»œ*n› þ¬…ÁÒJÞš[–‚¹u3²LUïZïßß[F«ËÝ/É5±ôע܀ÂÓº`O“‡ãÿOòÇOŠO®Ÿ·qÒÿëû¯Ž9CL·•[Ú=ê”q|kÃ×5%Lk3ÌÜuþö|ßêÂÏ=ûÝs¶u@ö>fÉ}cB™5η¹-çÎvŸšT&×wÕ3õí/¾ß–¡qð Óì}[ÜÙ`’@_ÃCçÛw6¬ûùÖA»œ8¦¥} /³ÞÿüùrxÂÜpæÝí,ä†}ÐŒ´TFÙÄ6~°òGYw«»ÖVÆLž§;tN:2ßA~þl:F¹è®Í Í?Œë™œÖè±5Ö¥ÈS)¥¡s¶&”p6åã½´ ~}%Ê?E Oi¾ùýÕÓ“.R{a1µA’é‚ÚŒ@S¹§åðQOÈG¥<ÐŒý K#;ÃÙô•²R:ùMvz ×…ÑP"ºbSgèjg¾€ùتgy'‡*oÃç­¥%øì¶øW¾¿ZìÀ¿ÿú‰Çi?(Rž2€÷‘Àf¹]Ýã¼™¡°ÿÁÍø¼Pȯè?ÖyJ#´Gk†!dD=¦QEIÅy7œÛ²Ë÷x€Ì’&²›«ù÷?O¦'ä–@6ê*1t㪀nÇÑ£?I8¾hýöWžrÎ|Š^ߢ4¼‰šQ Î)¤¿êÚA†H#Í¥Ç%²NÑú:BK)mª“øwôíM/uAú…4×~¼›rÓ׿þî68´M‰ŠqB‚Y†V·É~]*UÔÅð5ÑÛ…yýb»Ú¥æÞj§†â€¢“èÍ··é¸$õ¦?†i€^“ZGçif€¿ïÝrhC¹«]$/…GÎ+GOmu^(ìqš¹ÝmA8©F™BÐK©ê=ª9e¼œ?¶è ð.óºÞ8ÞŠÚ ü˜'¹´ŒÐ ܯžIgíe´.‹ý>‡þs¼ò¤w¢zþ£#ÿúù»NoÉmáÖv7;åQÊfOEÓÊ”5}Ìç!Hõ=Ç Ïb÷™mMÍý÷Ÿ†vx¼…Î1púgw¹{×dÿÎõ³ÙGP·½6æ{ijØlÎM“˜ QTÙN´9nðî<;çD6íík:èÛk #rÅâZôÞ6°{È·ŸQYÔ¸´©lÌ`­ŸØÀ]ïn´ð±S òsÉ·ƒRŠÂ/à˜zùùáÛ19+¡Í6Ê7ù‘ÊiG?ÓR Nº¯Ë|«vÔ„KY-ô­ã ]ˆþO¢QF·þ7Ú|Íü=oAÝéþ»a;@‹úÁGÍçpö‘x ¹¼üÈÈ¡Qzêh}u¥ÌÔN ðƒx,¥ øÈ†.ÚæH˜WhüyqêÇI¼™ã%;¶Á¢Ó¶HëïvufºñïÄ#¨8â[3ÈSøÆ´Øà^å|ß»øÖÅ_FCÐÞ“6$<Þ¨ ø±ÅSÄÝjÛ‚Ãyžoï ð£4HWÂÿbøågpê[ùï帜š²ÜœDÇèw“™ÏG÷H“Çv¢*”œÏ@!ðmôÍfJŸjJ|Y„üqU²ÉAäÂ2ÿîý˜JFs9ZõÅþ·;61V2žÎ®D–¿è1äÄ’Vö"ü¨IÀ¨^Eþ(,^”Qµ¶,ÿcì”3ã?)±®yk« FW1*–ñ¯ü†"Ë)U9“LÒÉ{JÿÖ!r†›I5YÍœ·sT9ÁCù zù§ÏîßlspyŒ„ýÈ­ùÝâ‘àGc9Æ•$”w(øq9äš<ç6]W¡Wr]äkH]y$ß týã’§¤³ù£ _¦Ì|³©¢oU/m­±ÀÁRW‹ên±:Dé+G¥ˆVÑq¼ ”ß‹Uéq/M tïãIí @û×þ ~„£ˆ”—‚s¡,×%–7ŽÑHFd+þŠA™oe²4SªILoKÉ ïŽKЛ™æã(ÜäTt‡ÙŒÔ¾3b´w—æ’ÙrC énœÙ¤ÞuÈ)¼õµ\Ð%’SÓÉ(MÍM),­¦ó64'ä‚véWæÝó8ì‰èùÁNóï¼®ðñçœÓÓ„= »»ýë'nö”5ÅLa3ÀÜpÞ}ç󃮳Ï}aA]òÀ¥F?Rš}η¦­áw×™ˆ&êwÕ³º½³ÑVDÂ.ëó ¶€Óõ}_.6¤jïÙGæQ°JÚá„0m¬åµ˜}‘g¡¥É¡¾ö µ†š4¢tàJkÅF Öú%åÝYî [ùc"ÒÌ| ËG©ù¼½‡û!Ûøvc½aÓPzZoé›ü(áô†Z,±aáuÊñŸ‹ÒU[›FÃk¦ãÃÐäX| =°ÆbX7ÿ7z1Œ;¿õö¯NrÁ¶Â{‡¡VÛxø”ŒgÑCôèNÿ%ÐÃUmã¯æøNqS”y êÕ ùãš­‡ds•†‚Õ@‘òðáK‘>ÞëϦ?h ¨pÀæwƒz¦u’sØ ý~dñ3ÎÂvä,HG÷ÁÆôÖÝä¾ã?¹§à‰pÅKáî¢#ɾƒÏ«?ÖxJ¹'m?Ðh ´- ô| j4Ìǵø舅?…2s5-ÎþTä£>t£ ½ûÃß_5•m_è}:Þ‰üQ„ïcl§ò쑆R®´œ’r’ËKYYÀu8 |î!îÎoAªœÐ–ß?kqsÏf¢š(o&?ã¼›"àõÙ@’3ì[¥µœÕSzCBË0hhvä%ȃ¹$¼r*Ó÷“5¯Á· 8gyÁ…†þçÏÉ2É §¿HOh,ïmýK•sÜ5Þ†<“½ù†÷à¼ïB†{ñYr]b ³o­‘”iæ ]á)2VZËQn/ѽS5©þ#‘¼«ÀÁ Ý>n‰zÕã àé ð#+o°5>”õÂÓ×ÙG)Q«›¾þC«+py,5šö“•R_Ö5’TOjsí(Ç‘êép¤£ž¼É¢§†çšèiˆÑΆÓðx’œ‰+‘,–!úXËêŸrG6ê{¯Kõ©F×rCÇj ðc9H¯‹‘ Py;Üv1Ëë‹ü‘ü˜Iÿ +¾¤+’Ë[R[j)M¯‰_h”ÝFÃè i –€~ÞVȾU Ðk›ãýÏ£p³ó«Ûɦ T'yµŠwfãŽJq¤ÀîZË»ÜÆëñ6ÓR²[·ƒ ¤›&ó?K2ƒžÛȘ‰9‚µ[ÝÿõqË;?ÞzÚþëõwŸ{Î;õÌKSÅÍé®õ_??à© zd0CÌCçùwîõγÖ}`;b§ƒÊ„w_𢿙óÄíeÜAî6ã5ñ¿«žµì?Ôž¶Útãqº}ac;ÿ˜"Pú˜6„f•8˜ûìrÞ9Õ0fŽB± Д—‹+ÒKÛ9¶=ô¬rm9joCÁ¹g ´;×iK"Ç  ‘È3_‰R±ÃQ¹7üæ.øà‹64`ýû›mNåôÃëWÚ¿‘Šñd8ÅøtË6†û^F¥ù,þ—yTv®ï“èÑ7w‘¿m†Ó;ð¬m¢¶tÝÿî@ÊÍ™ÏUáé|+xl¡3”v1^—¾ôkÏ1%u~4YÀ†.”œÂ#ÍxáÄš#ͼ9@k}; ½§U Òkxû‰Èc G{m¶ ¿¿ïìu;¢V—èwÊ:ì¤Ê”$qùojBÏÝ=.Édî ÕŠÖ.Àì ƒ$öÔ¦§êAðc§¾{œ}N½¸çâ˜<ƒŠº¥x87ã¥ü©£ïâ#ð¸áÐî4g«-fïDªì&1Ÿß{Ñǵ]0â´{PÞ+j‡Äš•ÃJ#É)kà™7ÈO²Ÿ‹JnYŠÊqx67Æk[pnšùÅú‰¸Vp1 ^užoA!ßÓaþAÒÈN>&ÙáïÛ‘hò‰AþøÓñ%dÄq`R)h] 3ü“+š‡¶.mDM l¯ò–È©ÅÉd®nÕèÞ»zD»ÈEä‡føŒüœ¹ì!^;î>=ukvÿU®ˆ³¸<ŒÒžðùCºÉR.åß?*±Þ—×hóqä™$ºŽ+q®ÒðfN)Éx‘­ü¡¬²K2ð· œô*‚ü±˜""gÆçô£·6’›ï%3ƒèµ'7S+8žTÉ!>Oã~H QÙw‡Ô 04öíò‹mùÕõKâ9©LòpèYd°–ÑkµÁˆg4Î5€Fr´y=ht‡NÒ4ômgZAûm)×D-û8 ÝV8›¯?òÑ~ò­ªñÎí?†P»Ø #s¸ ä)ðÒ œ—‹ð ¹©lüXíÉíîµ­é €ÎÈáy9x4ú5º4·‚¥xÿÅ«PÇD¨å4üéJó›»Ñ¾Øÿc’©`ÛQyôÔn(d1¾Aõá7òðSî"d½н’Yöq¤‘ÅþÜ• ¯k lÄY¡-Ý>kñ ð#1ÆEžŒDsž·úùYcŸ’ÄP«_õ¥F» Q‘?Ò3”écàBð`iÍØOJ¬mÞÙèÝS”YÜŽ)ýd„äC˜¯K4†÷Ž^Örz_]6‚€Ix$ÒÓ|þF”÷Ú-üIy]m!¤¬ýpU¥ÀÐàÇP'-Á†Î;|{&Ïu½\ã®ÈÛAÊžøÔEèÍ}œ\~ä¶É‡²Nyj:+) xôĽ@(¯y$]ô”„ª¶†Ïß,É@9(+²\C´}ÊiOãH‡Efh퇽ÎLãó×ÃcæDTŒ|'5Œ·Ê!ß÷LÚŠÿXcé19žä’zºã²&Z›#ágû»íˆƒÝpÐùäÈÇ÷‘Óã dó–ÓNšW#ëé§wt“¦F:ru•ü¦s?žk'IG!ù)å¡~~ tý¼;Ðæ NЃ”œ^òNÖÄ2L6£mô«¶óþá}£ ¼-´×Óò³æ?âqcúÇŽÅ ¹@19åÿäúùO”@ùã¹§“é_òã•ç”ÓÑ„u+¹eÝ¿œŠ~~”0eL)3Áœwnx.}Wia•îuû+z4øqÙ\0!Ìnç„ÛÅæv§¹›L“â»ê™É^£´Ó‚[ÍNƒìa[ÖqÝ”Pû=îS÷wû ŸAÁ*qƒÙ4±—@Ëм1àH"xš ö7{úyé#,>¡ òGÜ`]?/à®vÙ²H.#ý+–¿¥½P®p¬ï ú±F2ÒC› ü˜a~³†¹þÐÑeV0úKñ8Ї?ÏlMhñ\ÊÏAeß%«á=½ôÌþF‰ÌPºGM¡ò³é7úÛv÷ï ªÚ“Ëp žÊí ‹èƒwø„2TØÖøêý»©t&ô~%?~Cf» ~ ÂƧ© uâ¼ìåµt“®Ò6šuö­H|ÔæpßQÚpg­Û‡Ñ-†ù(Vg3Ê÷=ÿqË]æ>âñ\“sóPÓ§õ‰é”õ‚A­Ÿ¸ÂSÙÝo¡÷{¡eÙÙ²ï9¡qT‚§r¸ø•à‡oÿÚC I8d……`ý(jDãqÎj¹ñ¾X»`£©~”EOùÖ\,Î7©2RI)¤˜LºVÉ.(Ù@¹ºp÷Éàž+õØ7>?çÇSÇ66F.Ïøøáñ?m[óI£)µ‹îÕÈ YÅ+}¡ö™ù,ÏÅô*2hbóéŠZ=Ì[[iôˆýÄŠ‰_ò*uàÍGÛGõ>×ÓÚyÆwÿî"”™ÇðmÔ±RFjzüÙþƒcm1. ~,£Â܇Ãð9 ¥¯'Ë¹Ž„ô.Ö4úV<ÞÕrš{IäêÈH4SPb Å+lÓeñ4wPXðå!ˆëÛÍ9;ÿ$¾çºŸKi.µ5½n‘ ºV{jg9&Uµ¤ÎEFlϳÐ3•ádÖPë@û®pÖ˜Èü#ûîâ>ʾuÖRI  ÷ ñSäµ yÛ¡ÍÿhD= t¨Æ–&zI½!9WQmÛ϶´~âDäÈIÓ07Ú_?ò{kAq®J7=©ãõ'm¢V×H:]¤aå’6?,?CV&ÊÌ+¨_ ï¯ºÝl¨G}äò$”Wsy‡iBY*e‘öAÚìÝè ïë­¢åFÎ5IˆÌ™ü°˜!§í-¸Å„ÿ“ý?N{¢9ï;§Ã¿^?Ñu.9q »%Üíþýk7yLfSÓ 7gžßUÚ{Ïr÷¥íKµ©8íµïÌAóÂYë¬wëÚüîw—‰k‚ÚSèëGûÚ÷t†-B«à†ÛC¶‚óÉ 'õÖ½îNµÏíã`®Ÿ¸× oêÙзP¬é´œRra:Œ¶‡ZÐZhJrª ~ĵ® Κ_…Ý)î› 5š}÷­Ä‘ˆßñ pä.¥ñ¯Çžü¸ÿÍ6§qº@M7Ãg¿§Z<’Ò_u¨/è”Éc¾ï¹eÿ÷=¾gÓÉÍüÏ€ÀÞ4 z J¢ÇÚøžÅ‚š‚ê,€Ú”Œ…×AߊØúÎÆ¯”õ£“À¤B>hKÙà²z ÿœG2ê ÅÇ'@ÉÆÐmå-ô˜î«BBÞí¶Aæ?œÅî`pðu÷#µÔ¢Â(ù%=E™í¶pïób¸ù<ÜTßLý).´ÛTT ~l÷TsWÚàÇ nÆ%àa§£½#©*ÿÁ­x (rê¿ú¾–ãr:Þ€3?ùh ¡Ân"óù7•ãLm;g‚YqN¾Díh´õwð•9u$•u\JrËð#*tj:ð ÿÊIhÎûŸïw^Û¨T‘bóXÔ Œì&ƒ’£Š‘|I"ëp©{4†Üç¼Fúqbdžã(q2êžš”Ç ø¤Äš&òø ŒºBÐÈpúq¤ Ÿ93òÇteï#½ Mä(×—¢øŒ,œœ'!=-ãnÐÓ”dmÙOÊi s)ö­èRÊ¿Ú×Už ¥9ÚVQÈ;D3©ê;)§Àº†«aüÔ¹¦"#E“ð¼ Ðóçàb}÷y”ÆØ/†4¤: å#pâž”—NÒHóëbèò1mªÍäÓr:lk‹ž~RßaNö³wóÙì¬2!È|»§á„ QVY#“AÂ:^"轡- øvÉeí¯¥ðYËüw ŒãÈ[åíhÛ/Ðþ£Ý0ð@YqößS (KnæÍˆ4”Wã"WŽÔ}È0iõ}”Wr‰xËIz±™‘ÞÛœàÿÇëkšn/[s¬¼çû\.xçk ôßY§µQ·ÞÙÞ^òþ¬ydê€ÿï©™¸ êpüˆÎqí̻֯ÿæqÑç“ý?š:qÿ%?ç‘ÓÀ8n5ŽÚ¿~ÉfOe“Ëä7Íç‰çk»š}gŸûض‡†ƒzþà0Ö¬q¹Ímyèí~É|_=Ë[Ãmh- ŸŸ›¦Úc6óÔ䆧‹l£ØÙö…½Ìý?¶9Msðcä8½—ËÐE;ÈúîÑ\Cu(U£Ñ6…ýÇ ÞþQ³ÜQÖ·y'x ß~»¨ÅÃ,ÅÝáÂÎaœÞ³IPê¬`äÄÎH´o¥ ç[>,&Tó‘õ­$»Š*ðYZDaðÛ’ðíK)*±›î%4Sè´¯Þßõè‰ÌÕ’Ã9ކŒÊ3é:Jº~¼£ƒ CC(ß×®úÄq2›dàÇ$˜˜+áé¾ÿ Ÿ4ꜛ†À§3<ì#rØ·ãì,ä†CtÆfvßQÚŸÎ*· Ús9  ]ñß‘™ Ð-' q¹O¡OµÁ¡˜c ÀBÒMËOMƒ¼ÿêgä^pˆ£¹;ô> øQIɧêMùwΠ´›ø ÒDŽÆKqægá|í‡&ÕvÃ~±þÕ,S¥•¡˜¼ ‰%òU dªÊì‘ÎRP6J=*qeW€:Ï„ÿß¼…»øøÂéiØûŸ_w®ÙQ£XàÙY”²•¢Âãÿ Qdï–xZ{éa)סÿï2‚G÷ ö«x0§£ ”Ô´ý¤ÄvàGc$ÆÝTª[™ŸPLé(c¥g”):_C#ÜÒ?ä ÿ&Õd/òGFdÎk¼‹‡¡íéû)?úÛ,ëhåæßØáK<Ý µûYÞë8M¡Oå®® ùã7ä¨ßxè±CHHþöøPÖ)Oÿþç¥}+mM¨gANª­$¥¹ÒÈ\«õ7í.Ç¥¾f×)¼‰fç[Cm u Ä5Î\žÁ—-¤}œ™&ºT’Nþýk÷K$í¬µ†ÎQã §—d§NÕ8?›È‹ü1ý¸ŽÊÚN¶O çχ»1ë bTí§‰62¿”(Þ,ÚI‹¢û‘Né°¤–FÐåÒü(.ÖÛRò’Ë÷C€Š+í_{Ê©ëv‡tGþääFbË$+d+²Q7$¥NÞÞËÛ)æ€îóÒI;-ÄíÉ¥±tΞ ú²þî!OXç㓚Ï=MÔÿ’ÖÙå´5›Vnjw·“Ñÿüà/¦˜)g~57œ7ßyÿULç•{϶Cv-A/m÷º m.8gÝö¶‚ÛÛ]~|_þ¨fÃs7ÿúW·á¾WØàÇv“3!5”~™}ho3Üu¢šÑ–y­§ Èû) 燲v²û¨~ò=a÷ õ°Ém¬`Ý¿[ÛäN°¥é £´å4ÊI‰9ø©áG¾FÙ¡³Y  ƒ±ÿyvgzìO“|O4ÏóŒM·06—@ÿø8|ý¼*{Þ3"ýmŠ£ÄsÈwÁ³Áx};äÚàX_Êß87€ß_ ï_#"C ¡¾¶íWù‘Ö©ir!]ô¢hHÿíèº}„3ü+~Ó›ï Ü^œm^CoÐh#fçé¢-솢– œMn/ÚJi(Á;¶€Ù‘·nâî`÷.œzèÉ(ô«oõùÐ(+2ÎN› øq?„tšAÁ3#c,ÇLå_£4s(‡†>à“|„p<ôáRôé0:ŽTÑà aVÞZSÇvBbCrI~½‘JðY'uÄ‘=pçEeÎTdþÚÜŸàÓ‹Ñ`;ê ~xàúkQôû3¾Â›À­œ e?biíÍ 'ï9“„’Žœ‰ ðC^ÍËy$ ¨Œùô‰ÄF&z~£¼”ËrŽ+ƒ¤¿Ôà42Z'ƒ7õ´¶—;\C*‚sù8%Oã¿QÞhèif ÷Ùú‰-ü×?ö äÒ_<ú×H–qey¬¾¡^É d®§ÜMBéZdº±PçUhÃ>%¡yZ ëç÷<ƒ5=rý–Z‚q¹ä´QÑòHIC û‡%•ÎÕê:@NKÍ~ìá¼ÿÁ»^ÒªèÚãrg…yòöcôoá䔃U £4ëÍ¢ý#]õ™¶ÔJÞzDvë4¤šBþûwëð(Î ­¯eûÚ¾ø1Í™îÆÄ¼òí^ý-³7é¤ÄöæÁsi:=-3t›®ÕÈ d‘T×öšA"ËFºõí&úÂð_ÖOÜëtrÿ°ùÀ_)¥"øV,–Å2NÊê¡m½s¼Æ›ÊÛY;Ê6Ý&5…´Õ\žh4üõU ÉÙ톯̻ÿæ±ÕÎyñá'u}ç¾Lãpj™ç¦š›Á]áøVWßéÉa ›ôf°9ï<õùvŽÎUðc8´¡(=µÉÜ+敳չáöDþèçN6ÉÍ÷=§RÓ÷¥½¶>…¾./Š‘àē۸v¤µté‹{h‚>Î;ï>Ö·CÅ2*· Þûgzl[Ù;'ìè7Œ«_hf£ëúyew¢;ɦ§«ÐÕ)(OùÕ£l˜ƒÏ©EâË”†žÙ蔩éâ7Ûßùî{±}k€«]ŽF—m ¿‚ãƒPçÔ|úr“Ò+Sà%Þ3½é>Úå{²¾5øÑŒÒ#g‡„s—šgAýWÐð. ß >ÔÉ6ûêN÷?9%ÍOpu­) þ4¦7ö.f'ºD€’éÈwE%>/C‰ÿ€ë|»Å#7l77¨{µg"üEøy¨Þs­JAiQÚSd¤?‘êžòbèTƒ3µ©'² Q jä÷WMݶÒK_nÉÙáa—!=üNÙÁŽ Ü*+!œCB¢–¾•?þ?Î -r£±~û(ÓÙF yø°_Ÿ!½mB‚yÁµAŒ RT/HZèr1¤‘e\¥å‹<‚Ÿód.Äþµ‡ÁôT—ò$d”'¼ùrÇ“Är‰·JTªmõŠÜ?ËIÙ·WÕ:d†!œ—bPaÓü“ÛA"Z@—Aþxí;2pö=¤"'•áºRÙûXïøžVãªRœ«Ìéy.ßæ•È?[A²°ŸíÐ^Ûæñ­°ÿT|Jx–L—z2‘³Ë=¯Ùô™¼Ô+ò€{Á=oàÎÜ›«ñœ¡£VbñÄ@ùã´§«3."ß/Oú×ßÍ$¥•¾AŸõß´„î•JPé¾:½(T{ÎMžÏVJÀy-§f®=.uf›{Ÿ×ƒø8ZRš‚äͪ+„µ«ÞÖþzy$¬”­ºAkK{½Š™Øé­ Ú[ÅŽ²­?ðãwgŽKHï™h$æÆ)Š×Io&”QP­$™éºY3h}½.Ë¥ ~J$ÏÀ˜Ñ7¨0¶‰Æ…‡œ6n?(@'øƒ8”…žIïd •2Sêé9¢}½ ½ç4™·«Vµº ç;òGnGaÈwÿÕ3"Nk—}eÞý7½Pê«Ä§…ç_ò#–sÜnÈíà&q÷:IßµùЦ€©`ú€Ç<¿«´Î]÷ŽíHq–vÚ¨îyóÎ9ê±rÖp[:h+Á±f¢¥v…­âÜ4É0bÙ¤v†}j/˜'Á*鼓À̵ÌàTŽ“ï{Rß=íèýixõ\È%->nº_»øhè?JC‰ÑTš‡1vÚšŽÜ`|$?2Ðs›žº—½ýÍ67tF€7Ûl'?O@Êö‚µPîDÌÂ=P=ë ´»{C}sÿ¨Ç¦Ý9z"mu§›¶%R{OJ̳¡cÙ ¤ É·’ýaP)2ï¥ñðöœ¯}k—Ö©kòc¤¤Ô¬yi/C±»r _õqngæ€DÛi!M£Õ(ù¤-ëugÃBgÛœî¾9‹<à»·,ÒÒ1”>Ö=èžá \•sðT°r=œˆK—l(|NP÷_ôÔp7Ú_Ñ;s¸»?¥ET…P:ZùãG. =>é{ ›âÍ8ókЫwA¸¡®û?šz¶3¼O<ÞÏ+¸:?ƒÏS>~ ?žù#7T ¹äò’_¶p ö‚ÀªgÜn¤íþY‹ß8oløŠÈPûgüú“yå )§y§¤Ô¸:Hwé+䛢Iúƒæ¥@?úpUzo³™O¯¨´0/mSôÙUä…Y dX/íáíkáý#t¼ù½«Õå-7?ö³ouÝ) ×nîËȰôð³•ÿÛÌ õ>ßú=Hp^ôÓ2DêÈ(´0„w”¦Ò¿å Úì•áN7q;p¨:/NrlyKm»eðŒuR8$¨›W÷h uãÒòDës©$Ó¤¿–FNȈ¼ÕDGÈ))£9u R^.Zðã°ªý¸_ÄgyB P»´šÃSK.'cdšFô–Ô¥rBë)ôÞ> ïõê Ù‡´” ùp)17C™ùy5Õ³=lç@÷_Ív#@é3aN=£¦6§×ÞbàGF®I3Í«[Á´†þõÛkëF­*´‘ä" W˜þoŽÍž˜ÎÇ}[ßx*þëõK":»œ>æ™)í¦?|¥lð”3ILqÓÓÜvÞ~çþQì\wŸØv kF:mÕ½i¼æwçšÛÌæu[¹™—ßyŸqaƒû¡¤jÐ’„4Î7«3Ò$?BYhØ[æB°J:ì„6£lXÞ ý¨ ÙK?pºm‡ÙuÔ”vR%ÊOu ñm8f–w¸£mI8Á‘4 9á:.ý{¥ƒÌƒ|k¯–¦#ÖóÍçS;àSÙH ùcÅ„O:VOA¦ÏÏGýû‹ìF ×Ð|JD!ÝoívÓ ¥;Ôƒ|;Åö£ãМ²Ô’bóxx½|œ§ÑC¸º#pw ÁaÔÊ÷µÔ•Ò)fŠÑ êKñ1ûú€lwlMôÙeä—ÈÍ õh]CFñ­M8iì%ÚžÇý'ˆÒÆ9›Ü–þö´§ò ï¸ý øó†|ßøu‡Ëxý¬”ôœÿä”tÕFDÛ›yÿU w“m…ww榜d‰ÿ¤lumëß!°<²Ç~ä‰93úpè6¬ÚC½ÜwÎ磻Ÿ ðß«–ŽOÁWA¾ª†@ù›KY-åýûœ†»/)‹ ¦†ÿ ™¡'g Á_<¾Åyi3‚h¾]ÈOƒ «QÓÍœLbCÛ÷K\ ¥£ôFBþÈ%O‘–ÒC}ÙÈÛx—F0M>)±yϲy!5¯\ŽM#Õ8ŸŒ×iÝ{ZÕÛUÞpS©*»A£L «G6s^I‰)âgß_U?Ò#9oÇ(ëÖñ:é/ue0”ÞyšUÉah«H/ ¥¸ÚY§"Ç.⸆WÙöʺê©åL¦_×1®.#Öç òœH¬åÀŸ~š_O‹ê,mªÓd—ä×í‹~îÀÓùú1<Ãð@{',u–™wpd›|»nrj îVsÙû‹Ž‘“(×uÂBwÈ~ü=»dÖ…¨ASß*Ønv| çG¸¡Éw%Íwõm ”å„ñ&ÖÚça%òQg°¼(Ê9%âLÏÕò²YûJ}ŠgTü¨O ´~ɯî0[§ E¢tDrzkVY(¥¬îö_?ßå í­ˆúN–ºLâé#îªu¸%òÇLÚa7Òß”ÎÇ­þ_‹=‘œK~zàiÿ¯Ÿ ãìw:›¦±›Ì=éä@)»<õMz“ɘÎKÏ×VÕ úxë¹ç¾¶}¡! èøqÛ¼pæ “t´ùÝî4ó·å»êYÊÆå>´ßVÅÊDƒì›Ö™lÒ +¼v³Ú1Ö¡wÁäÇ]'Š™i£aT-…ÂÌ…ãJÇøÌŽ¶g¨´¿9ô¾<µ³Il²`ÝQÅîö²ÉüÉe Éò)*&½‡Bô ˜|‰¢Ó›™fg0žÿHàŒÁæÃgÇà–P÷øaWlYpi5åAþX…R>ºw‡¢}vôËcøñ’#­¡^t D/‰œó~©ÿúyoòíËu˜’qD>L£¨§íï|š©èñ‡hg8 Mý‘ÙNÛ6ÐÕë4 N3uàBš×Ñld°ãèÙþ5BîÚVnPkeNsþp‡BoS#œ‡s¨Cyx·ØôÎBMÜ1î]ÿy™xˆÿǘ›—­‚-Aí_»ÂÓÚ]dkÃÿæ¤euòÁÛßöÑ£˜R‚óNð#'‰£GÐA䤡n¤/öÿèm![åEooGb)GÞm)Âç¡„Ye¯ÔÔË’ j_RŠË®Á±¡Ð{¸3_‡ú¦¤ñ_¬ß¾ÇùÇÆBK@s¯‚2»è5âTMVòn‰ï[YPOht¹Ï™?&€æÙwÿÀîÅ9(UúìúG{óÂ6Aï¥\xUð+² “Ñ’•ÓÈl]/~E÷ê 9Æõ¤UùcßãŨßJñ?ÊÛ|þû¯ŽPVîÄïè“)Ò\–Ö;^Ó‚ôœÜá6rGýAÕH±ë™%/´þÕOUg>œSe¾~\Â,¨Æeð®A[K7é¢%tŸÄå~ÕÞ²N¼<øq†çåüœF[VPC{óCy«œéàG*$ÛE4t® ~¬‘LÆ[KÇÉ3™£¯µ“®P×+Pü#º]óIeݤÜ))¯¥2v°íý=Y®P4d…©tîLx»ä÷&Õ>Ú ©ãLFúX Æ5B^š$ŵ§þ,Ž·±¤ ·˜-è•õÝÓõqš}NK÷›þ±èñòGb¤¿<`ÏVäÔgÚKy·z_ioüv³Î1“H/ÍÈ-?þ„ªÅ¬ŠeW|eÞý7ÝžN {×&NP{õçãluZ˜ç¦,òÇ'»ÿþÝ"&‹ÉoÚš3Îùï¼÷g¿ûÜþ¯šÙg殉e6;'Ý:¶ ÛÇo"˜ïÛ'±ž ƒü±”ß‚D3Á^?ö›LPš”ÈíK{õ‹k AǦ7ÆÌ_tZ:¶ù×/y`»ØõÔú\ãª2•Ô& ÖŽ.5Ü¡îï6?ÝÃø™€â»\ù#fá8¸¦ ”#.ø1/ù#¹3‰JÑLßz˜ISÁžðàoä)˜ÙûQ¿ð|ºæÛÏ5$‰[ò›÷·£Žôµ¥Èù¨ j·‘q:ŽÆ“h|õnJ ×çÛ{±£íèìùJYÉœŸÌHü}(.fI7´ê¢mì¿f4þý6êUçâý7´{„Œ±ÐìÞçe`hU܈,Í¿ÿGij?¦{꺋m=ßj(Üš³°ø×oïƒÄÐùã7Ç w—ø2ïàXœš×oWõ?àß·!D47?+o¸ikû#Ä瓼ê{‡jC[KÀÁ·“²N éI)‡¹†’)ЩH‹Û¸;߀‹ÎŠÑóùþçGœû6%Õ„W™Ä7ùòOh>çCÎðañjý]7i ÿý»~”àGàç"Ëp ¹Ì¯Ÿ”ØÁ„GŽÜˆ±–—' ~‡–žÒYJrV™ª34’÷†žÕ òÿ"åd9gCº˜Áox²Í:JöÅþµµÀ\HE;¨¸ÿÁ#¿“l‘-£ý‘5;òôo!~…¼ÙÕžüPÞRg©1ð:ëpÆvñpÿá¡ÍU|ûÊêT¹ŒöÞÔ¾:_­7Œ^:EÓ"ë¬Dþèþð8Ž>öìåÌu½Ú±€nÁý¿¢]¢Þ|ÚN«i2ø‚ :[‡jNPÍ£ÁÍ)7´§|—²Òs› ê1"PþhãN¶Yh æBj°ùªdòNÑÜ2 Ù¨-ZÙ[Û{7xczŸj>­ë{ºüH(ý57¥·v°÷Éá\vóWæÝó8êùÑùøí@§å¿¾7¤sÖdÔmàftOø÷¯]í)e š"¦‘9F}¾ÃÎÿÿð:çÜK¶;õ£Âð©)Ü—&ƒ9ꢷMnÃÙà$šîRwž-LgÑÖ)pÞ²)|kXŽÎÃ(1üWL¤›4нùÁ¸ÿª¤3¼Ù Œ?¸z Üž~+”âmðï­QõœH!(¤[þ%¾1ó Ç-ÀŒõøï±m—?žu ÜhÇàq˜“è ¥ïŽÃ¯7±-¿ºþU&§©ÉFaqâSúÞ#Ö‚§vÀ¢«”™†p5èö|’ñå{ÿª¹ç莭$?68+ݾx…ËÝP§«xWi  Ÿè=¼X Úánt/òZ¸ÜrÜŸ–ã\IÏYCÕ( ~ò4s×Ûjô˜8§2hižw>Ê”YæŸæk\Á“.Dýæ¡~;hˆÍ|¾SØlÓÌö¡rÈeû‘+~† h„:”ç÷܉c©ÔòƒœåJ’ ¢.ûV›ÝÌ#ø!òBað¿Ïg-¾î¸èµº”¹ï6߇ˆ…\“XbË9¾"‰ô§;áJŸA¯cÉP$¨üü7ÔÞw½»ÞYÂ|º#noÔ]‰qP”WqxöØ2ù£;ÐÒ˜Þ›zÒ¿~I3i‰„À9áî=²GÃ…ä¦öÓëõlB$½ ´=Ö½wž§À=w–+ÜVžêšEÃé5]„ú5‘àæ¯Ü-^3´šÃIžl;|(ëšg˜ó'ÆI%>‹quŠFS#.Šwµ@þh%c¥;t‡dÔÅúÒ~i¨…t&rawôà[Œ¡÷8ßU={5×YgÂp Œ©u´’#PmÎ ó¥2VKÝ)!Áßãkõ¹†Ò£²Zi,)­ cC¦)Ãó¨‘ía[ºÿj™ÒR1ôßIªhÓqàM©´*òÇ\¡K@ÌRÚF½:_*á÷å6–Ì_Bqþ¶ùõÿ0 8íÝ™¶FhGJŒ|M†x—jÙ ç‘e:’½3¼qñ§"Ú¿MWK$ͦZ‚Ûb¤Ãö&z+›ý>‡þsò$ ôü‡ë´ò_ùþ7‡qv;­ÌSËÍä^w|ß‹\ò43MMUÓÝÜqžxN~»ˆ@GLçŽ{Îþ E.IWm~÷µ)j<æµÛÃVsG»Mxó}ûì–´ï¨1µðÑùi•=jS9—?ÒÓöGû§}`/™×Á*é´Å ¶áx+¼[E¨ÈaJ‰üqõ›©3]„.–¢JàGt%X×?~qgºsmQÌdßú%Âw@McÀz¸%à”‡®!Ý–£ÁXÿªŠÓg» UžgQN8ý»¶rÒ&Ê‚™¿š"ñaßþ4ƒ”Â|¶‹Ã—Çs3™ŽRx|ßú\m;¨ôÊ]ò=ÿ‘‚'ܧŸ8ê=ŠêØÎÎçÏBüçˆê2¹@£H鱑ižÛƒàQ$¯>ðç¨+jìÛÝ·ƒÇÔx¦ÿû•àGPÏ.s¸íáoÀµÕ¢SÐßê»9PŸWPÆ«îN÷!ôÓw/Õ çJd…À¢ˆ˜õA­µÙSÝ=bÛ€e¾û¯r"ûMÅ+S(HSün-Ê©Å{¡‹;94ÇäÙ`Ç:ðr6Îesù³òF™z¶'Î\|Þ„œPƒ}kÀøÖ¿:ÇÕ8K>hiH9Î%¥°Ì¡b"åìfô÷ä"Ôù‹çÏß9ïmZÿúWcø:?€{ñí_]¢Ê>Þ.Éáï»@÷¢Ê0%¤ Gž©ÌO ø“¡Ó÷ ™OWdìn"à¬ÎÆlH…\Qž#rdÿzUM8“LÔéÃ{VßhЩµ”’é`C^È"ËÀ£Ý”Šb}¶mm›ùc¢ü܉Ãð n!ëÀŸ³:S“««ñ½;å ‘°ºÄ…~݆q´…ãIT^hýÝ žÞÎ(¤úªì[Wí"Æ[y.'ï¡ø¡µ™ô“¾ZTI=ˆ6·•Ú@óè ¤­nèëGhKLÞHÍìÇ»g9;Œo5¹µ´ˆ–pzªÄ?H3)©¯µ±N—Úêaíª+?ÞÉaÙ«4ø¾†þ¦ö zr^Jl%Ûô?F8sÜ8ÈËä[=t»È‹å‘¦@æhª õ‘ÜÒÚµj£÷! #‡”“ÚTZ€HOà‡ÿ±Åyýöažt»m.êOõ13ÒÑa‰ã¡yÐe€¾Ð?u±w™7†w(ÜPvéZI~Ôм܆BÓp¨ÚÔ5®]ð•y÷ß<¶zØù¸öô{O½½”ëìt:™ç¦¤kÝ þëç{=ÕMf“Ó41Wœ‹žàíÎôŸ#‘sÛ}hÀq寬æ^2iÍç¡ÛÕpû¹;̽ïä\.‚»ÒZ›æC_WÙ 6–³Ø$‹xíŠíŒ<ò,˜ûG]pBšÞþõw—Ã玅ŠüÀåè¶n÷R'¨lMÌ®Âðá‘lXœçk¹ãÝñ6 ð»3(4R{m¨¿ïYä[íð¶M}]nŸ}³ÍEß) ’Š%Ë%xò‡—ŽÛŸ1sRaðc-1oƒ®­¥aäÐsSâ%7=áÉ[QWhM:a;Q6Œód¼„'Áá†CþxOûé:ÅæçH­¨…­ã|íªOd§¸INa¸;E¦¨(åž½j+Pks4ŸCrÂ…º¶@ÿß WçÁu†îŸ°¥\D-g8Ü~´‚žƒØÕé(Vœ²€ A¨ÜÔÓÝæÞ@¹õ9÷ƒÊÏ¡ßáÂ/ÙxEÍ øñ—§±»ÙúžEé7î[™~¢w°LйÊÈG¾µUªðhürP3úp>Xß õ›CMÝ8æögåÍ3lg0? Ïæ]\’ßPC$ßàCc³Ô‚ƒŽ.8¯?üÊQ8³ÿ †3ÜŒÓѨ/ê<ûªc< ãW|^Zøg–¸~DÐaP­èr‰sÊßÐølœiiÏ…ª–C‚-bz}Râ óÖÖŸ/SNd«™ÿAÍ:ÈÏ\H&èD ã=­Ï´¾ìàRÔÈ‹VÏç{ø¯ï¤hÑVù¤¼f6?>q3í¥ÌÜ.{7÷—¹ÒGVƒwu„¦Ñ×òZ×Ë!*QtZ9©l!¿™“È;šm;}(ë’§Ÿ3…‘?.Âoäçò9#£6—¶ÒH‹éaI ^ÖÒßäú²šöA9í@Ë¿ý÷’-¤vöãóf“œ¿LN ª¬§Ùœ›zsZ‰† óÞ7\ÖJOôܯºTÅKÈ#u*ú1“ÎŹ«ÏS8¯¡r¶{ õ¯&8‹Ýw6:Rüx»6>¯—ÞÚY!žÞ•cºi°°NÖ'²œ ­²@HäêG NXªÊKh؇Q¸ßéè.³ùá¾Ãÿ$§+ÊÛZ ÈŸr ̼šö.öþèµÞÒÚ|›-ÅáZiZn8•.ÚSt‹BÚ%_™wÿÍcᄅ?…r8Éþ%?¢;+žæ–©áFpù¯Â_ñT1IMYS×q^y‚ó,ÝÇ#µsË=ekCëC`l½3‡LsÍyæV±‰ÝÖàÇ çûÖOÌeRUZ ~Œ¥(4Ù®²%=&<é:÷¸; yäê÷`}ìw~4C­Ã‹ pùpÎ÷R<ÎEí» *»Ú•¿¯üqÇýÚ79òî(wrÑaꃤ¾ jº›~»|G!Àpõ?ÑMû4`¸}õÍ6rÚR"šgcbþåãþPåP¾gSÀ¥épš'h¼ý6*‹º§öÍ7W»aºÑYj8ú¦m fN¤‚¼˜grQN •}M;‘Âñ[hysÊg~uÿÁN]“tè ?›Úü·­Ááñü9³/J ~¼¦›è‡áÔlYHÇìÏA>?¸ÈYîv  H/‘÷v" "˜ÓÌÁÇ–îvÿúW%Fúï6ëjí°Û””7~öÔs£ŸÓP®÷ ©¥*¸Sœ¬Å‘ûùq„W- à´— Oú¡‡Q 7Â×Ïg˜*H3%)!oEO•@Ï×Aþ(Ϲ£ÿùózÐÒrƒëÉ/²N<<ÜûJðã \wViG|Þbè}Dÿº6S;þâc µ)!Iå(ï”êÑÎzR#ÉsÎ-FzÃ5—FVZ …®‹ü“ ˜!Ÿ”ØÜ„ ¦Ðž pø£á"ré)¿KUðcòBï>½¨mä÷”:²“‚™cù>oàÖ`g ÷ÙþQMmvNVîDBꉳ¸›Ê4ä$@y«ƒôG½.Gt•œç!]÷¢Å#¹,zf)ò\Z‰É#Ý¿{Ë3ÌGѹ Ÿ§˜üõ¦B\S\­£±µŸL„ÞçÐ’ú äòC%í†r—ŽÔƹ[NMÝ¿»üð"l„ÇXÅÉ(‡ERFo£Ä©ryë’ÃõxßÊv¹¬c5‹ÒUäb$Ìâ¬<…ÊÚ&ö?Ÿ‹äëÁhÊ‚9Å|Ó>¢}b½Et´Ьz[–ëV0(ƒ¶KfIYí¡%å’S&ÿúíÐü&¼—fz~°¿;² ²}T”ºQâzÿÐl²T7p6F{7xÃ#”BÞ:¯g$£¦‘Jšˆ[Ð{;îò&)ÇÿŸÜµÁCÎGeë4õ_ùþ7GHç’“À\3IÜŒîÿúí§=EL“Å 5'œwžà]]øÏQØyìFÇÜlF9i¯ä3ñÍyç‘»Ú¶p{¹ Ì›@O=çèj#p=êk}ç<6ùòFg£‰‰³uÞ½â±á)­-X-_ç„55mlÞí(BÓè"UçnôÈ6³7à„wÀŸÇ¦ŒTϦµGÝàÜàÎvOØÄpñ¡ò¾û!Á„gŸWùný~ºcSQ,šf÷|³†Iœ.è±ÁК‡T’WSÊN—í (ájü|‡¶R>HIý~üµ ëæþæý»]è>Rà ´ìWòíè…ÒA‹QБBìòüë::Aqù)JIÊo[9g¿RV'ƒ© ~µB¯Çk\Ô¬µ£§4˜Sš…Ž^^¡“~¾õÄïFÒ6µÔ3Ik~~\¥ Æ$ªH y0£"×·p'ºoxw„’£¡àPÚeŸÚAî_{ÌÓÄ=ŠÖ½¢Üî]y(Rà`ú™»Â+W‰6Qc(ö 8fË1yÎÕ\Ôo Fhq7©¹òYy}MÛ•*PR^æßê%8yüxÉ奀–*ºZRɨ}RY%žoÊêó6ä…ÔÝþ¬Åûœ76ÕCÖm¾Š¼v™ör\ )ûy;òÌIÍbyËå@¥®ðùù8áᜇ£ÁƒE7Ÿît?Þ©¥ÿÌeG‰À›Ü ù£4œ¾ïùsãÝ£óu¨Üä6Ò)¤8Ü“7Aõ[`T%¦n‹OÊûÕ¾¡ŸooQ>î…qq 9cªÔ–\\ÎA§S‹Ðr››€v{Aän\ya%å‡Hgƒl×eÝõ4r6Cyù•à»E¹–<’jzŒë"µ9þ–PhM"[¥…ÆÒîèç&þµ]r±ïÞÅi¾;^á\2Ï1.ŽÀ£íå¨3êTU‹è9¯Ke± ÖÈ›•½£ho5’R/Bí»#mæÅ|œjÚnŸáEÜ‹ñŸèÕàTh:`_Ú$¨ã—¥­ôÔvçÛfÐøß¸=§µç£¼qP®Ñðµý¹'‚†îà=P¨Ðœ‰×âßǃ «ñšÒn’/ÖN›aZ£´"(äLðè*¼å6*Ãg Ÿ²Ršèr ~ԓʲ…›stàÙÜ„j̹i‘öY‹“"/$¥Ÿ‘!‡€Wx*…‚š'EÇx“$Ö påë¡*Fò‰G†¢†yø¯ãùþýÔÃR\óé•Ã&8¾‡ŽR6´®03ÿ ½d¦táìàÇ2Íæ½ Kµ7Êë!åÁ¨ÜðáÓð¹s¡©ëèGzòÙ“§ l6PõxTŸxšVó8&­d:ûön¥iàÅOéaé.¢G@!ßÞK?vpdIŠüQõCY‡<Ýœ!‘}»'æ³àx®,¤Å‘²*Êé¨?ëCInŽÞÖÚX§ñ>°r5_G†½‡ó=<ÐÚAKœ#&9Îß^ßšœ‘ʲ"Sùžú(§G$Šþ®wµ0ÊB/Ê-m­?I^]‚™Ø‚' å»©mgÇ~àGCg£}Pÿ~âeû‰Áz‹iC-¦Ñu¡¬×½º] EÔùRQÇi¹­­ÀH|rÑU[sàãú‰dzºWmuš@¿ )ơɒ޻DsÉNY³ú(9Úû«×wÔÐê²A7úîé’š#߃wµ§áè"þOø±ÞÁyþá§»ž–ÿúùמcÎÏf§ùÙ-éîñ_ÿXê)~T0šWÎcÏÞï*í¹ç¤ëÂ7¶£‚Šrº·MkcÌ%ä¼òîXüä1a¿«ž™m,þ•fÚ´´…òÑøÐ¿þqgfÅÑ~ùÛ]õJãîî,hàîîNÐ@‚»»àÜÝÝÝ5X°à\öÜ»»è° Ùÿ÷|=OLÝêêªsί»«Ê·ÆMI9Hìs³ÎƦø&xóÏ—;!ܶVù(È£4Tn æšô„{šxˆJQ\ô¬A6že»&å•4 Ì"øÚiêG+ òÑù$U¡Tœ”Cð ;±ÿùGèöH{ç‹ç,Î B/{¼Õž¢Ñy[ƒ– ×D;½8GyúìQóý×OìI/©õ¥¥ÈÚîÈ]) ï‡2•çT<»*”š}ÐÔ¨´möÙçœØnøÍhJBáàIWí]ŒšŽðAÈû¹Áå‘7Ó9ºC{0Ö'A›gÑ1[Àõ®ÄÏÎ 3¾øœS.:Œ3ÊöË ?‰ÂMi‘dž!ù×çL<¥Ì£>”˜6Úgè-ƒðݾšfŸm:êÃø;´úxª Ç,„L[ÂBÙ÷ðnðG$ÎŒ€¿ ¤å ®º&Æ'ïïîvÙÖè»ñàQ‡‹È›A€O¹±T‚üÿˆ&브”–\‹#Àcþ@‚^ÇMq½~²ÿùߎgWyboæ;<Ü÷'+Id ¯‚"ß”ºPý4òœóÊ ”” ~téy<81zdÊî_ wŸ! , 8×6ðÖ{\×îµÞ–·ÃÙå†øß˜;Äq(ûWà|g³<…ÿ<ÐN ­ˆÞÙ!gu¢Ö’\zŸÚ-Yˆ7QJÛÙþôÞüÁé†1² àÚÿôŒ†Cñ‹k_­£ñuµÌÒK¨Q~m§®n‘rÚO«È3­$µèø,¸?÷ ¶ïíÿÑÃ̰¥A²eÉbd®cs{Zx½=’]GÆ ÖŽ.Í.3Ó~O7É?nùçQ¦Œ™°ôÂÇEû£Ã«ãùG\çWr/(snÉ H)R`þùthq9ŒÅUäŸ%\Ÿ3š¢Ð·¦àJÜáö¬ŸØI»)œ¨´£=eǸZÀ82φگ¥ ȉÊ+¨3Õ°?;ÿ#µßÍQ9† ”Æççåà·7èW~EQÞ6º—ŸŒÑéßþO›ÛD ¢–Ãùc?Ýcò0ùw úŽâ!*×¢f˜ñÉ,îÈ9yXa.´>"ÊzcKQ» üc³¯•Y wþ…ëqÐÔ$ÅQT”‡!…¶ã!Š|ˆÏBáCKý;R-E›nù46Î'ûGmv«Ú!ȱà8¹$ûw/Û<Áõ$‡¬‘æºQâ"×”²šÉå…/´‚Ûtä¤ÔÞøèŒï8/m´YtøÙ¾Å[á›û9𤄶¯D†¾"­u£ÆÞ§Gfâ¬ýk¥ÌÞ÷åäpÎo>Z¿}€ë€#Ó>JÆ3üïúRù]ÆH=Î*c  Ö;„T>TŽs;i"¹ (¯§MPÚ]”—[ð :Ç“d²4–ƒ\JŽèxM­÷å9´õ8w“XºµÈåà«x5‡˜ü‹íö¶¬]¾†Î¸Àú;·)œ·"zW~ ¯5’Õ´ÔêðïôŒþ¨]ä„TÓºÚ—·s7žŒsÎÍ/g&ÚwoTït–¹¯(1ücæØ`eü‘W_‚4æâç[éí¯³õº†ÓC²Â¿Üi¼¿%Odÿ¬Û,¶‰íñÖ?F:#ÌS$Ît(ï9-³h;?ƒDy™õ‚Dð è$”7Sk=Í%— üU)*úAVzlÓsõ÷VaÛî40¿Û’Èh(ªUl-á­‡CŒ—“¨ÛRpV3oŸ—Ì;¥~îØ«Û$‹¦–fš‘&‡¦‚€ÎÓ3Ь»ÿÓÎy÷v‹ãTù×üÕ¹ã´rŸÁ?r›ýN6ÇÏ¡…áÝaîßà¯{º“ÀyhíÙM”đյî3Õ¶5¿™Õ š¯[§«¼MÏßbK@ëJÃGÖXu¦º‘(eµí û}æÞúr1>ÿþç™ÝÞÖð=Ú¼0å¥à’tÇö²‹©-tì'ô+ÿû»ÉìiÿÈi–˜¶]@Y³hÝ£8ï pÿNþUmsÀ?âÁé†Ú'_<çüNwŒîI6råOȃÑ(,·þ•ºgPi^Zò¿ßU ¤3\g¿øþîY· ü£j²žºÑ^ëvÑ–âóèlB¶Ðæ;Ðúã‘ñKÚΊϔ•ÆùÞÍB¯©;…¥w¤'öFMkºJýØAv èØF”x¹x1Ên:nãD-uæšžà½{ðÜtÊU޾¡Ôt?•~7ÌmžfÈÀ#QŽŸ?˜öÁ?r¹þî^_³Æv$úÜ—ýw §Âe'QnøGY. Uɵy'd%GãðÊÑh‘iH#³‘nB2ÿc‚[ÜöD’ó.Þ€Ÿ¿Žt¹òó1®+ßÃ?Êê -[γÉ$øG2®Î[y0þ¾;祾ŸZ?I©bÚ/G`æ¶rhøGIĤ“ÎШÞ0H;¹Å¤šìfBÍ^€¾òzJDÏL­Êkl#Àý—ƒEs¢ÍÑž!ó¥¦ ãÜâx¿h\=)÷u¥DV7ðlž OÚo=Ä àKÞ›¾Ó—Íù‰º?1?¡–ðÝ2F;iÁi§åô€Ä…®v…샴Õ}|d4—ÃK3ôĵ4÷½µ¯Ç:cÜ'pòÕ¨Ý%ŽC鸸T•á*^­/«eH¤µnÆ÷qt«lÓ5ZJòéZŠ‚4.všÊÛªö—·c¯“3ÐD„¤¡ß)œï“˜^^Ô¯ºðŒÝÚXWh&ðÒY™#t¨6”¿µ’”£'HOùé¾­È¿½·~û:§™éd;N™€"Ó?RÐÛ þ˜os‘ zk-ow]Ó{5tœÐYRB¿“nš‰;€V†£W_ĨþÖ®þ̸ûO›}ä¼Kw} ;wü›ãµïˆSÌ}â–2ÍÝÀûW³|ÝŒnZ··ÖåÏÞÕúØàûÓØÀt¥(…3‡ÜÝNUg•aË›fšÂ}ñåBÞ;ŠÛL<‚fÛòHÓ¥i˜MNYNn(Ê@Q¬µ¿Ø´”È?ö;!Ý^6*åMõ¯PÏ,\Š.ÛZv´ð"rfBjJ]¬g³ÛÏí„ñþQʬ23ì7ô‰¶?ÒlDô× ”žÿvÕ† ÎwJNè¶Õ/úÇIßt*R9f£s[ŒôðÐê³¶*-ôïòÊ+ií %…>ïDÿÏmŠ~áj¯rÛB©ºS;ÿ:³´þ›üáñRž •uy(Îx;6h?  Î¶ÝgŸ¤pØ­x+9<2AgøÇ5\´çH†"é;¼š|Z»޵îtÈæ4A­UÓÊ™`&ÒŸ“§]ëVD˧ADäTÁä3· R 9#¸sο;Fü~ŠÊ |ZÚH_³Ív‚Ìäùœ“CóRøð`*xã¨>âT€O@ñ6Â?â!ƒ/‚ÃÍ¢#¨Á óƹüQyËÜœ¶7zZZÞ͹y£@O¹Äm%¯,‘VzZŠÊq®,ed7âø„“܃¯À¯RWÛú£3^î\²ñ‘WâÁ¹Ÿ²#»à“›9‰D–Ù¼_âé+ù úONp /¿Bõ òÞ†ë4š3 ó¦w'~ø¾­ë Fé}¢ªÇ¯(¶üŽÄ[‚SÊ/ðzZÃ{¿ËSn'd×àDhÍû÷¥–ÏšÚ”ׯ¦ÂgnÁµË ÿ}þ˜!Û¥5x(·¸ÞhM¯gä\.2”;n…ù¹n;wË™JæL`ÿÚ#¾ ’îP÷±óÈ÷¹YÉA±SF<ÚPq´h|sÚ=ïŒu¶š!¶’n¶»Oœ_UϺVy|5äÅ4Öžµ…œnhJG1¬Ï²÷-™à½¼)z€ ÍGht~t8)W§k¶«ÝG  ²?QZ$ô~6|)8ë'úï_ †ÜC’O›)$…å@†{„Ìœ„ƒ?îØ”„æãùG§e¡6œ§%Ï@>IB×mšŒÒ‹ ä%H*Kàci$…¡(¦øJ¼é§—`À~Ȫác])(ûžÂƒ9 ÚôEöO^Úˆúþ`›8Ÿ›Ç”Ò‰ï¥8<ü ¥¼´‡m~ª‹óŒ³ýŽ:r~FûéFåBZ€ÿVÀ[ŽÃ?‚š?Ø×Yhú‚^Û¾£³tšªÀ=R ý¡Ï 7mÌ)^Ä àÿûþUwr逿ꄬõU5³ls¸ÏîϵPççÙ¸/è w‡Šâ|_) ¥ËAÆ Ñ†þ¹zãžþ¨¼yn!Û‘J¢oìæ½\ i ®,û×C/, ¤”*«œæŠÐÓÍ\›c£ž‘ Ÿ£]¿GïùøùùQçŒM?JÏã‘´ÃÉNèë^N.Id¯D¢¯?ê,ç8‹<áAüxæÔ~1êŸSöžŸwwŸÛºèm~þXîñ¯_2EÆŠmþ:QÕ;¬®×zßQšÈ^af¤û7¼ÿv9z˜c?|~Þþ‘ ÿ•æ6(íO•iÒArAQ¨a½+ûtµd’."º‚À‡ª£ÄµøŠ+Éx•­ð¶¬ ¾òŽÿÍu«}‡Dу~â¬âh+¦?Ëxi¢åAoþõ»èt¹$ ´ŒNÇ´â…BŠƒõ–ƒÿßùÇJøÇ]JÄ+@áÛ9jØPÎËi}£Uu¾lUÎëè_ý^ÃêA9ª—õ[)§+ÑJñ!*l‹ÙÆï­_ò«1¤på?­ªØdÜNSyYµ›–Ö$R·j ü—õ}.³%“žÒDrVËJòßõþžnØR<Œz¿í…+œ–¦»Í†Ú™î%Ýç Ñ\à·5’A¯Ã'K{›½4‡×AÇÊ5Ý"߀NºhzîZ™K‡í3x]šÿÊý«½¾èŽó¶'Üõ5wRýKÿíìrê¸çݶ&—9áøï‹l‡¤t+¹¿¸oà_·ÿà3ßnómù–BSøÇ1èì*Gá¨&5< ÖüÁœf²™m3!Aw¥Å4>_Š ½2Ü…B!Ëå§ó6!¥¤ÁX7„Ó ç×ÏúT+ð6Fd:f+ÙAÿÖÓzôfôá9ÐçøÍdûâüóa`€®Ô?ÙZÞ•¾‹Ä‡æ å…»Ñ5Ú Røþ±4VÇ6t¦¦¬LNb7º'%G­’ŽØ Ô7£sJêÎÅø ­Ñü WƒOœƒ”¿þÔ³®¾ÎL3~‚;RY:\Pвá|À!+SoÓÔ<‚65â|<clõ¤hLjhͶAøÇz_ ³Ä6Â8ÅÍ gœžéK߃Gq]n ªÉɧy ïdDÒ^–›·ó¯õÜùxý’ÙnÛŠ õn†n4ÓÔ俸‰|‡ô[Wãÿ7¸†Ô—õÜ™#s$èž œœ 7è£3Þä\E;æ‹ü’7á,w‚’Ë:Þ-áÕèÏPšÐòˆ³ã¿‰œŽ³ð-Å"‹î_}øFðOî°ä<ôaÿ=µòüœ"Éd.8½ü® ᇠ§C%$üã'ÙŠkjüõ t8#ÿˆ?úØÄœ|{Œ2Àoÿ¦ó¼úWä’C^ê8¤ñ{rD·Ê72X"ëF”2˜«Bï—€?BI4^b+½-ë ¯„ór@.¾ ÿøÓÿ^6Jñ!Ï«6ߤ½æGIitE`ýöí ¯Zº ¾Þnù¥†;Ž~o5¨%Î×áT`ÆeôGBï[¾*«d® ×ç ™C x ¤3ºE«Iq=Lo¨1Z²0Æc[þ½÷¯Æ8£ ‘ µLEZkÓ6 éý 5•&UÒ™šNk­ƒÒfdÎkqy¦5¤—&ÑY{ ý,Úåý«5¾Pλu;^ùZÿëçasN WMk“Äv²¢”c¾Ònb·œÛÑ=ã\÷}nVYÐGç²ñïpÓ‡ÒÓfѬs/:›ó¦‰-iº˜­îµ¯\'¸ø£)m³U¡L)h†Ýl+‚?"áz‰}a&Û‹öU0÷¯=ï¤uGZl'L„z&á’H ƒìV䇭Ԕ²# w± íó`íUÀŒ7Óí÷t ?îöZØ#æ6²MOŠ„—®Ø4Tüñê‹ç\Ň›dáŒÈw ( ’þY[Ü1 #{ꎃ?VÃ÷ÂÐc7ÝJ¼î ëÈÎi-XðOûR/¤òQPdìñD:ƒ2QJ¤¾ó𙺶‘3þ3eepr¹%À ãà…q©ݲçl%”|“²¾¡ÎÐ<‡çÓ:ò˜ž™‡Ì~Ôæ6&ˆZNtÖš.Ðo—;P‰ÀN…e(/jw‹žPnêaºšË¼‰¾ÏìþÞ 9ä¨%*äú»{|Ì&(~hèZ$iƒŸ*K#(?σ4@¢OÀuøJœÍá E[q­V \ÿŽ*í »Ïšâ…×Ö© ìþ®{üñŽQ@–I#=)iä¾+$³àÑý:Å¿ñ=îùiˆüÑ?u®Ú´T›òòtøÂ\Ɉ¼“JJ9̑ţi=­>8R !ýïï¾€smƒÏçC¢Ië~¸£zK×Cð·ozžÆMà‰1e¤ü"]¸ô¬uNè¯ Jû³l‡Ãä ì»Ä¿¨ýµ©ÿAyáYûŸæö|‡NólY)õä7ãלðÓºM’I_¸Ý.´ç`”¹×ððGlži«¼-ë„ï'çw$§¬ðŽ|=¥$—§ÒN}ÚPÊ`Í£W$­NsM‚ôÑfz­Ñ©æ —äW¸2Ãí;U›ï¬p×l'Î*NAe8 ´y2+“n–ppËÚK¯Gé Y£Kµ›Õýä¿<×eS€?š¼÷þÕ`ŠÂ#«Œ)Ï·÷é®DôŠkg¸d ^Èš‰­Õô€l“z:K›È øGôÕ¿)ݵ¥ùú¶r~2}la¤¯Ÿ)*RÝuÉ bK?/9ô¢‚¯¼Þ~ÍãõÐ1²M7J|Í$45·£Pð°3ö9RgÌÿÊüó+¾Ô¼Õä_¿¿ûÐwÊiàF6 M}sÅ)âøçdws¹Ü!î_Î ßÇ+<ü¿Ë¾}æ‘í‡>žÖÿ¾´yàÞq¶:ÇÀy Íof£Ùýºu‚‹ÐNèÕiÊAÃì[ØÙìF¤<߆²CìÕ„ V‰œðnKû‚.Ð^jL¿cÄÄäòôÔöµÇ©ô¬nyêjcÁA‚³gVv³ÄL²Åè>¼røÃÇ—¨¥åË$܃²ÐC лՆþâóoH8ãq>Q¸’b*Ê^®Íž‚,½þ×RN$±‰ƒB}qýö›nwºL­¨w`·ï¿m¤®Æ ãj§d—§Ð=ÚN—Èw£ÿ×´M•Ÿ)ë'ª›#®'ÅÄèk‡ìô§­ÿ_ ¾ügÙ:ûŒ–Ò]º ö˜ØÝè$³EMPs}ü«h÷©¼÷—#íµ¥Ü¢`À)à×¼ŽbüO ± >þáÃÕi„¬ó7;lkÔnDÖþ‡¦Áiú!ÿ‡ŸTƒÞ…àÚPøC`š° -9¾9 ×û,Í0‘?¹µÀÍgE=²ð)(dq\ÓFpàÌPþ¤ Ì‘²Ð–²ŸkJ>YÂ¥9§…öâÛðå|ô«ýý£3>ÿHG•Ñ/fò?ìÊ>œ÷~ŽÿØÏç$¥&D‚¾¡V^o<Ø­„Äÿ¼&—ït?\¾¾ûÒv¦Mt TºJþ’¢Â=ƒ?bË(­ ½£úJû‚?Z–p)N­þšÁÇ‘?BÙRùGZ|âRôà‚ü#úì!ž, ¤™ç¢â󺞃‡$•NÈÔ3ÀCáZkù0ïåÈ’˜·ÙÚoËzêkè,¥ÈðÀûà­#èo™¸ <“ ¬22 ÿ/£;$NÓ.:CÖIc­ªþ•É:ÁáÂJxñšûÞÛ¬©îPÇ|¤¦íœˆòqTœéÐÀþµkä… Áïú¢õBx1uìÕåš[Êé)hr;^ÁõPƒê¶É{ë'Ž ì•=i&²Ï|ëãk’Ï+¨ý´ ø#¼¨’nÖ¨ZB÷É ©+Õ•ð^+©ðRгô<ù½»¨ëf¦½-ƒ\Ö~ d´´·^3ÈL™* u2(«Š·Ð¿#ˆ7ŽþRWÈ’›…[¡ŸF6ŽÉÉ‚5[àú8íKð^’ìkéµÖPpŽç¾¿à¯ÝV¦¦¹xÿjޝ®[É­éuÿ|nWì ¿|ËÌÛŒ*RÏ©Îw©!X%?äÚò ”¡ª”D²•+JYÊuqÞeù"wŸŒgТûÑßsþ¶éáG™QŸÇ ‹½àÔÝIÈ> Ñ5ºöARý‡/?Hzp"ÎÃÊ_ ~ªFßRwÚ%¶ìµþçßW°:Î. òîéXw®Æó.ém–i-µec`þ¹ÿNÓ9¸ÍŸTŒ"Úß¿jf3ó ¢)àÞ`ÑS¼¤à_9+½Dó~ÓTzLë)I(Ý$)ø£Σ,Jü“ÿæ’‘ÏÙ:oË:Šþ×µ,<>­ Ú-í¡®–Ò‰|—$‡²vÔ ²Wzh=Íǹ%®MéÌø¨…í·åívFüc«¿HŽOO"eü"¥.–ë²´ÕW¯«çÅB¶ßª‹´’”Ò•àØŸx—áSTÖÖxÏ?;LXpBqô4ÇÞ£³’ÞË¥]áéUô¯»5™Ç5^&Mu‘+Z_Šƒý ¦ûö;ôÙ©o{áj§¹ikË!ã5£8äÑ=)åMÔX ™Hã´†þèð¶hIüi/øÛ ɨ…Pÿt\p&²wè¾Öj­ÿÓÇøG˜·=ឯ¶ó_úÇ+ß§ŽûØ­gª›çë|…ÝÊð_ÜóÎc_p´ôÝá:{Í3ÛœªCkîÛBFLl׸Íh[ÓL2ûݨn⯪gnûе9ÿU‚ß·Ù].AIcÛHvòzˆ W ÿôøÃIì¶¶è@`¯Ú©Hȉq=jkw­ÁJÐ{ÿü¸6¤ÝŒòŠ˜f®-ä;ŠB1ýëÙö„n]Á÷¥ü~pɦD²ÞŒ÷¯29Íá4ól(ažCÑ) ýck“¾tQ^GË)ü£>i0E¢ð¦ÐÎù¾Û‡®QkpàvÔï¹íJ¹ øÉxà,PÒ±ôжÑ!ôßçð‘:þX÷™²’8™ÝÒHuƒóÏ»‘¥kp¶^p‹ŽøéLÔ:ðüc+ýƒ?YIkàóé ˜±X÷¯º83Mk¸­Ë#q>wÐjek]@&,K+Ìó,ðŽhq÷˜K#л-¡5‡á›À‡l70ß`(ø÷šg@­‡B Çp8 ”I}ÒòŽòúN¼†FÓN$îÑ&â'ë'NôÁ¤ä#¼ çulº› ð#® ©¡*Ut»|+›¸¾”%ÔG™þÒ‚þ·â4ØŽúèŒ_8×Ñš¢>¿Ážñfèë~ކÙÊ› 2IµÞÓËPã\r“‰óshYÁ¹/œ9.es?|"ßͽ…ѵ Þž—‚Ò„#Êl!]9‘ŒÕ™ê‚?nêOò€›JYÃåpµ·‚?¶‚Äv¢ ÃÛÊ”×Éf ­BKgåæõXáßcC¶qU‰àÍÓ¬úRÎ"ÇøÇF´qgœõ>ƒM éy­­ñ¶¬{¾fà˜`ž—”^И~ä’rOúé}©!¿J[-¯;‘ÌW€?†Èe馅õ!?-¬äRžÃñ 8ð»w;óÜМš× lãX”‹mÒ^Ý&>¨}ÒQ} Þ!ëPn\É®«A@-y úÏ>*n+ØöoÇÞt§‡‰Š6Í·¼NuìYJ¢ß{´¿fÇ—êp]þˆ¥ÕÁ\K$®Õ̲^KK/Š€šùý£ ÆÍ»õ¯v: Mw›$^‰¢!+¾–²Þ|ÍúX)%»œÔñæ{û´®7J»ƒâ¶ ¡†í4'÷F[…‰cq†ÿÊüÁs¾TλٽaNÂÿþèç†0­MYsÜ)ãøßã®á6pë» ÝCί\¿=ª³Âܳõàèo›Ð\s£¸ê^çU1#Ín|÷u÷ÙòÛãHƒËl^¤Ær4Ëî´…œëî+›šî™”ö{Ͼ æüÁUNR·½‰¾¸ŽjÐè]B®‚>ÑüÑ<²u>êh=ûÚgϬìàu¶$ 쵺°i?:?ERïMQødà ÜèYSl„/úGY§”x“‡ŸNËÓýû› ý*Áç&QZ^³Ãûéû@"ÿǾq³|¡»=á‰MP·%Pü¿lJ~žû÷E5ÌDû ŸÁ›rP:[ÏùÜJ5IœÔnzNC(%®j_øÇmÛ~‚[ôeå§¶H¹o+‚Ü ÿê”ð© i£Íi(ÈççL[´þE¸íh÷ ȃ™¨ýEÀ!¿›™æ/9äãah×UÔYm—}i‹Rõ üc›¯``ýD…/v†Ö„¦áäŸu]•m=¡лíP”¤H¸óÀs©%-•52ÑݯôL·(ø£ Tp9¯à¢ü7µõÏ7å«\]JÈù^×K~Ùι%¯¬„Ó‡õ?ßéìǧGãíèÎøsÏúïÆDr¿Ä·xù׸.q@Ç$ ”ïGýS_A·«I\éÂépuÎñ|žÂ=97Ť¬Íìå>LõæG¨ÉY¥—Œ’2œP!1³wX¯hK¹Áí¤…,áœ8ëyÐèÕþU¡œaì‡; ´…¸"¤}ô=7eåS)«§ÐZò\Pö*Êoø`þù óÚ†F+üJ¯Á/è…$ñjè`Gle©u½†Öºz _O Oƒ?rÇ÷è;zmÓ#Ì|Û ·:ML+Ðe0jlŠB/%‡7RË8™$Q›vÚÌ[àíÕ^?íƒÖ\%ä{)§¸ …©_±þµº k·¡ÿéã„/¥óîíúG¾ÖÎ×íËôî¸íÛà4sÛL#³ÛñÏNà«í–Ã×(÷óê+×O¼à[mnØvhÑ(P­æµû{ѹm&Øòf 9þøºçí%ÐáŒÁÉPøEö…Mâ,súg˜ã¦ýÛÆ0÷‚UÒ"ÇqëÙ3´c¥2ýB;(3— ¦6öµ¢ÓTÙº*µ³‘mzœwÎJ›åfºÍL—À¯‹f_ÓøRr~ Mð—Xgc}Ñ?’Ö¿Zc>Q€—Q€”†&û÷ò>\Ÿü‘…üššüñ¥õ¯¶»èoª öXD]QR”>€rðÈöÅøž@·iA©./ÄÕªjk8 ?SVv'£[ ?ŸzÀ?î"!ôŽdË9hP`Øe·hK`Å‘AÈ÷{mf9ˆZvpƘðÃÇ4å@ªSQʉŸöq}Zeº›{Ц¦\†§À‹VÀ‹bÑiëP1ê„Lõ}köØ^š§±¿±y6üc0Ä-8¶#?:ãÓÎ|çðQhýVpßaN,)áû$§†€ZÝ×Ç|Ÿ3 I?ŽÅ¿ ¯ÛÁ9zP wƇóýàÝ!¶@ïÇãß<¡ˆHö“¤Ê­ó5¬wDoî_µ“º²Œ¿! Aí·ðHèpFºõћ߬Ƣ_¡ór\Åý< Ýü‘_Ä›©Eô²ì†:³ô9¬[´2û×—_â‰Ç»ß{~~ÍW×Y‡ž_ ­–„ÿB:hÄyäºtÃä’1PþjºÌõœcªÜ’ZS7£åÚòD°YUÐÏqZÿ޳ǵΠ÷ ¥Cÿœ@×øµ­ [%jD/¥n’ˆÐýûÚ[oi8/|é„nÓ0’Kçb$þ€kW‚Q![Ó¶|;ö&;]LXò!-›'°ax”æóÏ ×,š@bê.£õ4ü#7|”¨Å¥E„”!‡2òêö¶.sj˜ÆÈ5]@ùE¤0úÈ›£%dŠ,’x¸?€næ{«4—7Wä4(.ª¦……C)‘iFqŽ÷_yw·/¦óðíw®Óä_¯¿{ßwÒ©áŠ)h2š=õWøÊ¸ÉÜìn÷ŠsßwäËE¼w8Îs¶G:ý,*敛Žæ\4}llÓËŒv~åûW1íU¤·-¶0 ¥d4Ö>µ¡Ënü~»9mÚÃöÊ'÷°ƒ>v9áÝêàí´‰*B•VƒØkQS{šx Þ‘)¸)ø#A°î_e7ëÍD›þ1žü»Áúx35 ì–ûc¦ôtÙ&Fo]Œ÷¯’€?r Å¢“@gP¤î3¶ Í‚VÔæMø5<ï†Ê΂#D£ÈæKï_qûÑ-ª‰ô¾‚:Ñ Û“ò"u•á}<i92§à»(.Rß.$Åš¶¦ó¹y°‰œôn6z WHEÑáBOm-¸Òsú\_“FpuèÞjŒÛëtÄ4”tÌÛ<¢´®Î\Ó ÔqõªLÐòe(ä9=Á5¸j˜è²ˆ›\t;M£‘øÌ“6 ®M½ üc•/·Ym’åÞÜ£1/¦J¨Aäí²ÜŠ7Á‹ÖO\X¿Ä?ÿ|ˆl¸¬¦‰ò‰üá–±}X’òVPK¾ÿØC8„ü$Ùeƒž–”­ÜP Ê hi8ÎÍ3ðÉÿ€/ˆÙö]—ÎU›Ò¿œûßC+…€7$od#Ÿ‘ìHàõ‘Þç\P<éͱàgxxÁï©(‚;û“ùç à«{‘~f‚|YúËT)‡ŸŸªÛ5Œ·KÿÒŸä6ü®‹øw˜JÍã8´œ­,C{a:~PÞ[”µ œWŸøˆŽÖß­#óÁ[ßx+5™–õº@ÂÈ@ÐÒnÈ}áÇKA G9§|×޻uÇ× ü‘íþˆ²£ÌàI±å<üã©‘½Ò9ÿ”¤Ó‰ÚDÇË]i …ÝÚê…¼`åG\Ÿ¿hŒð¶¼ðk”½eÏ*Gdã{])÷d±¾]Á¯1õ¼Ñéšt³‚nͳÁ3ë(·-m3¿÷ü¼›‰HÏlRô©û4Å&àZ2°T¡gÁI/丆ӆúP6J-%/´<Ô¢àÈH…yÀý¥‘iÚ½Ç L ðG?œiT$ÑlÚÅ›¢ùÀ+ÄÑ1ZG {k¼­à>ÚFžèI¤ñÑ¡¹=¶3é’õqFþÖ~î½ùÿäqÅç9ïÞ[}é«é|iG¡Ïìœp ¹aLISþá_Ýy¾¯ˆ[üÑÞ=å<÷GKß/|ËÍuÛŠ“ŽÛ¸æ¶›žqÑô·9á›ÝWNPs’?d·Wüw ­?ygCïºe“9×Ü´På‡&šíi/ÙWŸ¬¡ô±Õy㔵O ÛàCñk.øÓöµ¥ýH­a ªhÃÚ(68ž™Û,3 läç)ÈÜ«è ~×ÜþJÛ™"ðIxÜ1Š’ÐRî‹ü‘Øù£{±Ÿ¨ÍÀ=¢Óm[j<‹*`,Î¥H|‘òA9&P< i²~ñùÇ:OÍ¡ò«¡†Ïlo*F*€Ôèßÿ'üãʾ^zÆi þøá³ûGet ¸Ù‰¹Î( J|j_Ûò¸*wh<ïsýÁ8>ûÛà¨|&ýA³é0®Y٠׿já¬0íQ«óÔŽ !^‚3äÁ×hìºh¶GÆ# gƒ‹ú×ýêK±Á·l… ÷ÿØèk`ŽØ.pŸnpŒ¬ðÍTšŸ™sèû,B3dÜ|JŸˆ'Ñ$øh+´êL*gâ~²~É ·‰ JXó¤(ŸÇyn£rüˆ›HNY&•õodé#\ß­š†æ¤Ðú¦| š•ý³ÙGgüйgÓ M¥DÆ>ÀØ¿»êfN()äß“o5•vЧJr I=­tá,œŸµn3œóSðÇ‚JìX׿£RYø›ÿ½…hÒMfIaÎ=ݪñ½}zM”çÜBÉ~8`ržÌ®ìË탆ÿh‡ÄIPÑŒè_ë¡ø}ÐÃŽò¯ðƲš I:o®fÒ?e­n‘ÐÒ^^É<øz7(óJ|mšççc¶äÛ²þöµs‹ÁusƒišPLN&Ǥ…†ÕÚ2Vújdð°PÖâ:þ³¶Ô¥h¹æ¼œCÉ“ÒT;ñݵpVºÏ)üc!ä¸ Qä°LÔÇZEÊY™©¯ôw=¦ì%…ìÖ½ZAâêvŒ ¡<…ËᬠØF¶ØÛ±·ÔénB!1¦}>¦É6_“¬^;ÿ¼u Ÿì¨!õ”FÓòú@–ÂÝ|^2¸UIiIaÐÎáùy,uÛ w9­LG[#¢)%¦”Ps{m4:Hk©DÒA ËJÞ2ï (¤«¶½ Zá[nB/í2ºiCpx.ò_y~~Þê½µnøš9ú/ýã–ïŒSÉõLaSȬÌ?Ÿë«äætSºCÝ{Î _pÖòxwœóm4w1ž[B ŸØÄæ©û­;ÏÙdFÙBf˜™âÆrïUy ÑÆ½ü{¡BIJÓû g§›žªQkmG{dž3ÿ|¹ûœ‡NGû†Î!ù€ŸÖ7ÁU¯hÏÒÏtŠPŒóÎ6¢Íd£¼|fø# ½ ßÀ¢þýk!E‹žö z‹¯ÀãžÀ÷2‚B¢|Ñ?^úúâ§'ÙðP¾¼®“ªYFÐdjƧ1‚¢ñFÔp t/Åú¢lv{AÍk¬·€¯¯ØÁÐŽI¨Ýÿ{Bœ˜§KNâ+*+ÆYoêg+8{?SVt'ø# ´7!\íŠBÁUÑ’£xU§±\Šþñ˜\ŒõyHø»Qòr[5Èý?Z:3̯øô×4äq Î]‹üû¹ø8÷ =¦›1ðŸ¡úóh-þX$¦pÁ žŸÿáËcvÙVð¡¡<„ópDÔ²4 ¦ p FÜž§óKøïðÇ ¸fn^w[ *[ moÂ}®£Ýrv(4|>®ÄkªH¡¤cÔ×CR\¶ðRY6s N^XÍ-ùæ¸4ê“õKŽ;OÐgËBI²OžBÃßÐ6ÿ°Áq‰þh¦!½W|˜«Iñ¿A–e­C™c8>ëGó[¸¯mZG;q-—q=ÃQ÷Û+r£«4¶wDoŒÜåªROrU”7žlç¹ âÔä³M?ºU˜‹ÃsסßÍãËt8ðü£Œãô’Ø[¨EôºlÕGn”U7òï<z¿1О$)Ÿ³µÞ–õÀWÏYF1àªç)ŸA*OÇÉå†ôÆY–“ߤ­Ö ì>F[éY+Ý‘ÐçƒcÚã|ãH'8ñuZñÞlº©Î× ì¤ßé ‡¤6ü-ܧ¹†õjéHðÇú@GéŽÀúWÇe‘NÐ. † èY-àÖÕù•³?ÛoÇÞ§—‰zN‹ò^ÑL›Ž¯J#/»öÖšDwÁ™Jê9ͨ=ôøã½­å¾—ÂôW­,=·I‘iÞ=?ŸãT0MlŽ<m –ñæhX™'×$œ.ÑÚZÑÛî=ãtÐVrBïKM/C4-Œ?cÙÐÈ;UìüÏŒ»ÿä±ÏÎy÷vËy_Gçëæu¿;\g‡SÅSÉT3çÿ¼‚_}¹ÜÜn^·¿Ò}ìûºõ¯öûæšÛ¶<¹(rcn“Âät÷9»Í[ÍÌ0Üî×íÓ.ö5øðÍKGÙ¬¥uãByŠØ0¶3t%\wI>=Ö:—ÒÖÅ>€ºDyù¸!yTÔn…Þ"ÿ}-i¨fóØà¼3PÞL1ãl.zÿØÛï5¤ŒÑ©¸ôç)háŽe*O7lä/úÇY_gðÕ {ÓFåŽ|RQ"¨ô䇵FþJˆDW€–#åO™M•/´âZw(ô¼Hh'üC;ŠrB5³æÑä8ü¥ ÐÐDHÐÇüÏl«Ï>?ãDu¿ÃÍ¡¤ççìÔ¬4{,F|)üZ™ /§äx3­Á¯á~U‚œÿQÝk“]?\‡St¿¢ôðÿ¾)Ë2î@[rÔq)¾†Q|º _ÍGá#|éÁ-P—Q<*°ûd°ÌPŠÇà@?Bíž“ÿùÇqÞ Fú;-8•¶ÓmšmB¸¯ÎÓÙÍg‡ˆ²A/ƒQ¸X¾Ã$ ü£ž^’Œr‚‹IE™Œ,Ÿ óMÄÏü;ÒüOžŸïpÛxè¡hOø¯ÁUÙfH'Kx£$Ñä:@CyOAHU$ŠLâ|8‡ ¥- Å2p¬îÂJl亠«ùðç̼Jír,¸Ç:ù‘ÓÉPݤ wÃ{óe+w–f²“[ù׌äHrüáß +®m÷Ay=myxÌvô…¼ü 諒„‹9†úçdRl¤Î±ÔÉùsïÆrb»%É¿æbbŠ š‰Lçm]pÁMÀ¢NÃ3JæÑUz‰¶]G{ñ»'tΖ7AešæÎ43 Ü—ÇRVú›vájä¢4䟷߆v˜±à…PÆF«þÕ‡S(\*äú‰ã}ß›ýÈ+ç5‰³ƒ?üï_µƒ^wàšàƒN ÁâP;ÿÛ¸!8/yn!ÝE ·˜„Ÿì?¸À-þ¨IYø,Ÿ‡^¥¦pÃ|üw”ä²^šèyI5-#…Ä?G-tê4ä‡HæyÐ?û}tÆÆ}i“Q=J '{ƒ¯ÍpÖC²ÈjÞ-É5¡öAæ$W¸¸„”ap¸bþ´þQÁŸ>Z?±Êk >F…y’û#Š.Sü+Vq™ŽÌ›Ü»¥¯µ¿ìçÆÒ¿6àøw‰ä0øã"U µ?|P^¤ðbHø§è{´ØcÚÅýet’ûøùØÞ ý^ÿëÛÜPRè^šiÌ{ù?à¼×ÚŸÞ–uÅWÛYMß Ýÿ¢ì¼W,‘Ðã;Ò×ù~¯ÄÔ‹Úþ± Z_]Wò}îÍ+á‚8=j¸Ø¾K18cÝWàî þ¹v¥5–åR\ãx už¼–%úR§Â3ÃyñõOY “µ˜TÒíg²œ«ñ*l›ÙjoÇÞ$g² ¥Ïív¸§½Džæò¾×¡ZC³é5Ù®Ýàp´“†Ñ)ÐúášAÈ«$y)$®sŒÇPH† Þ[·…hs =6¢hH{ÿH9o’¦a²Yªè%í«Y½#ÞMéլƹ§ÖÜÒMcs[ðÊtøG(p{ÎÿÊú»ç|qÞ»cuË×Љý¯ï_pJº®)iš›?ïïÎðåtsºéÜ©®Ï}èûº·ŽøV˜'¶7T¦r`~Û”rÿvvšÙ¶¦™oæ¸Ýà©ýÿ=òZ*=J|ýf“ã¬q“#!¦¶il'›€Ây—äÓc“óÈ)o-Ÿ†vU…⟥Üìß÷%ŸÝA­¡…Í ËÍi¢}eJØàÌ™,â_OØf¦;è Óh2|äÊÍâ¿#þ‘ŽPF$õ¤ ¥›6Þý㞯ÎéwûÜFã6Ï©(¥½6úe×ä}´#rå0ô/3%üâþá·ÀC­é”þ¶í Uí†Ù˜ÿåþñ9|ü.ߢAÈöíœÏu'¢Ûü{†¤¤ˆ`´—öø£&y¼¦ÜHþUà–Gé þÍ%ÐÇf:ãß Ý–2AÍi­ãL7¿Á+¢òpèã¾Àúí¹ñ;eõ¦Ó¦µù‡× Ùçâa´n4íø×½­Â?FûŠ™ð> ÌbyÕ¥PÃî\Šëó’kAáófx‹ÿ]žÈî«qÕžÑ9Ýý˜4sÚT‘rÂ=.óO÷w·Qü¾µ”†z…Îd“ƒœ[JÊn Þ)-Æ¡eW£>ŸÌÿ¸ä<³QÁÙy&'”²Ù?Çi;2þII©©u^POqu12›‹Cï£ÊÈznM©©¬;üƒt_ƒ¶Ž¢Kvb‡ãÈT$ÞžœFéðÇCý[‡ÈYn% ä7ñ¿‡ÀááxSAµ9(ÒGOh:Û¬8ƒ•4ò£´Û`£q2[ºâçkIo¶f×°ÊÞ6|ß^Òëj|æ8pÝ~¾ÈVÒJ*¾`Û¿ës¾"Î dõVH$%ù&UïfŒÕÈÚ×Z[èɬ;¡Óíå‚ÔÖÊà[Ü·séÆqù m{oþÇj§¿ ž¿™&ÑUŽI18…4—ôïgýMèl d¿D#zét¿lÔIà"º‡Â?ÖáÚí¡æðÊoÇ^7§Ÿ Mq(RYJðÇQCj/裦ƒ#ÍÔ?ušVÓfKÇKE¤©Pj iG¡òc< ˜¸é{û–1ýÁÁù1銽 ÿ¸  p=þ–³Z[;kso¯Ý ëÕ×p§RF¯ñ -ÀýÁP #1Ÿ]û™q÷Ÿ¦G4ŠnšÑæ6Oᮜ“‡ÐpÝhœï)×hfþ1ÍWÎì²)4Üc6gc,‚‹·¥ÔP¥ÊÈ¡} Iþõ¯öò.ŒÕ¤8‡Yðù-ô×ë² áÞü¨¼ñn û ˜1ç!ÿÀ¡ k(_ã& ޹RWOCr%©!Ó‘îÃAžðpYÆõh¸þÑu9㜵ß#ÄO¤‘ðíMHÛÙäOÞ#ßøã¼†A¾/$>™ ÷ÈË¡ä$>}W†sæpG|PbG×P‹Àú%ßáœ~Fû'– Á`šÙÐÒo¼çúDGË%nŽnÃù§å  ß/Ƶñ¯úóã‡ë1ÚÊèói-äH§x¶l•f¨AU ïMÔüªj½+rå%Òy¼“û#œæ«8ëÌ’˜o¼7ÿüŒ¯²3gZ‘’Smô®ÌNè3©&#¥7”ù¾dÒÃ:R;ËnøI]˸®]8`þüñî~Çbg¸ûIlôþǦŸ9 ‘æË+¯Ç%Z.²×žÇ+¤kä´˜TÕ3†‡¢µ› oµ´?ÚÜïíÿñ›qèµMMÝ16–Ûœ|Uªx%´‰–ÖܺH&èn]«ùÀ ‘u:´¾‡~#÷A5Ð3]ÎIlxžJßöƒNÅÀóóT‰®ÙðôƒVò–ãg†¢ýwÄ~Ò¶Þ:ïøã7-!'áqé5>(,%ûçPÍC®Œˆ‘˜è¿Â‡}±ßÛ?굯ƿ^?ñµï˜SÞeS_k²Žÿ–lnq7½;½ïœ½”Þ—}ëÍ ;£¾()å6!M÷±sÜôµUÍ3Áìo¶øÿ=RÀ?†Ó[z_FÚ6–³ÌÌšÇF±ã¬G·ƒ¹£ÈøG5$ˆÃP¸ú4#03üƒÀ{¨ òrèw}jSÚÁZÿ*‡YþÈX¿}*”χñY¹õ÷¤X|~t_6Ã?¾u:A-FÙ”Þ?_A5düÉPÐâìÏô©øTv?-¢dÇ”ùâúW¿@#»PO8Nä÷~ öÞ({>Oƒ2ûàÉý³²0Îã°&á0ÛÖùÜ[)œtn)ò¯ùž`ì½±7m¤ü4)³àr(q;üÃðYèó)üî ±yƒ¼³ØÙYgü÷ C£•Ê‚þµÌ'9MW© €Ü@-[p>×\ oK‚lŸÔþQk|9Í û3Îu,( '¿„Ú¦^”†{Šºðxÿp¸æ>^ΑØ/d ˆg)Îþ"m„|<ÿ|˜[Îö3¦æ+|Jø2Å~*Ä7¹”‘MÈ·g$•ìçÊRQÖA£¢p!fùÿæŠÔý“ûWWËö•-ò&ÁcBÊq8çnèyÙËG$š†Öàr•‹žŸ‡D“Í Y\ g^ÔÿA‰í]=u=m¤¼þÁYKiÄ)e¼.Õ¸Þ3½®Se'ÿ$5å0®0X& oz~&Šck~P^s[Œó#Sí±µ†×žå‘2SêÈ.%â Ó,©ü<θµÄ×pö‘÷¯nÂ]3K Þaë½-ëThÅåjþµCù 5ï~'at0üãG0ÒTm¤$±.ÆŸô’«Ò^S€hÃé×rbiŽDqš¦ÛUoË[çüêZNΛh,]àè”–CHcè¯Ï+¦$²vTã u„ô²êÙ…rkK =IQÀžË¹$/¥ê¶¶­ðvìvºš7•œóïÄioÒÉïUÆ( â8&£õ©®F«§$9jù”¯i©÷x†ÑüÔ¦æÅÔþm/<æ41ƒl†Œ–"i5oŽ&•àÔ1ÚZëè@o)è#×S+K\o§”tÒXSp7dùèÕ¡5ÓÿWæŸ_ðÅqÞÝ·yêûÙ‰ò/ýÃ8Wf®šº¦„9x׿~IA·”û«{ÊyåûÜSÕ û¾eæ‰mƒì‘•BQ.#æ•sÙ9dÚÙ¢f¬Y ÿˆúUõ,nßP{ðGmh]m¤ä6ƒ³×$Ö„6¼íiïY'˜Ï?v8IÜ_-óN$Þi݆"—%Cí¨ì6èSŽÿEÜ;€é‘´mÃww×…žØ¶mÛØ˜Û¶mÛÜXÛ¶mÛv6ßyßÿ÷&“dòe²ÇóþOϱÙLfî««ª«NtU]Ei¼‰²û×á<ÅEÎx¸×+@¸ù4ØyŽšPDþ þèA1¡\s@÷§@oÝl‚ÿ’?2Y½)íƒÿÇÕxp:&]3Õ}gãV’ZOÑøöͦH×)ˆü‰ï€ÌÀ–#ø=ÀN½g¹qO spßû«ˆ–Šýx¦‹ébýìMeD+®]Œ ×HB ˆ¡¶jWïÒ (Ö|4ßÑîã_óƒzgÜ?Ø*°~þœ›®ò4Ôyz°ì#0qc:àŒs^A1WôÍŸ¯F½‡ ¾‡L`z@çlðdv¶švˆ6ž‡p16<‹ÊÒÊ ÚŒ;A^‚Oón`T4`ÑFšA[hØãÍuÂþ»Ùë?ZRu8ŽÓ|¼x |¹ X}››JVÙ!U|çîçb’QæÂwEÁï\äîü¸š‡zÿpþÇëŒIF%€} ù=p|°h¼B ú)É Üê«õ?â,T†s&ðÇgÛMã‚‘òÚßfôíe¿3M¡ P.pÌ@ðvT!ã¤Ç‘…ºY3ºŽûQ[È ®/uä2TD *÷¡ŽPj n¾u®­MZÎ „Þ€^Ölx‘—ËBi%¸¸„tGùò—ÜÕ•r|”P·sg ÿ±“¯‚]I >o}‰uÌÓÞšAàû®¢¾ÞlÔ58µˆ¶ÖkRþc°–ÓµÐà;áHzË-ðGVÝÏà?Ös|ñž¥x‘&š¯§`²æÙoà³vÒ":Í1)wö2üU>="~ðŽÛ[·Ã…×}²WgiÉ®Ûá,Û¢ýÊóBªcŠûãqVç‰aŒ„Ñè«ÑÍ;Z¬ñÝÚ[ i\ÝÌ?¨ 5©ÖVÒiRñJÊ+­-éôIa`~rô®Ö_záV«¶3Èä¤áè·á襉 â7M ƒ)wI­¸Ü-®q¸}ð¯§|ûsI}MÁ} [ÇÑMð‡r®ÿ \ð„ò—ÿê§é¿ÞÿñÙsÉ*n?¶KÜöåß]á)h—µ3ØÃì –±~/ÿî]Ïvç®éÌO~Íá¼·ƒØ­3Î(SÕè,²ãÙ¿—§+½ñãvtØä¥›T½ëÉi]´ÃR. i¢™áæ½qÌ’ñãuØŠb·FŸ¹ ÝÝšá=¥æjä¡úæ J{Óûv‡jÓ@ü˜õW…¿œ5p¯€Ës¡àÃñª]sJ}%àÛˆwÛÄ€ÆÞˆü%q¬N`ÜiÐÙ!¸øÃPvzjª"î$*ÅÞœ„QùZà4ÍÚFù³v[8¶ÊàuPãÞH™À#±b]9'‡B ùNÑΆ¿_ÅOF›®ÖŸÄŠgE·KÂñöî?ÿ`î‚Ùz`Tå'¨åXh½pHÀ[u)€—¸dº;½«aMuZâ)ãàÃ`›?PóܾìY5h‡3Öy„­ÏYx¦/ãP F—Í+S†úÀK=%ý@üwÔØ–•ƒòD ÿ1Ôœzø(Tî)ÃIùo´ßÄ}þXëDÿáüó vzÓ :"ŸåÃà‡§ÐÛ¨8_æ®’[6II}* ½+w%“,†b òšÇòG8â4ÜŒø®Æ÷¬—&*U¡ø¼œmùÄÑŽû8‚—c|H¢kBðÇ]½Ê7¹ˆŒáThË÷(ëžÉeÁœì ß½¿2P»«è2<Ñrߌ·%“Á­¼yu­u_©¸=å*JØ .¤2çâ­Rnð pa^Jþ]þ«ª&›ï¼™•TšÛ± Ö\$ ò7rY åNÐxúA>èyÁ$²nãqàZ¼’Ï£”é$ßõç?Žy Y“á?ŠÂ•f†s+u’PîI?u´²L“±Z]/H1Ý¢Stœ—êZI/ÂuçeS:sHø þ֮첆ٯ)!J·”öp DN.)dº†s³íÃéD ëöÕ碫d³Îÿ(¨[I¹ÿíÛU_Ù”ö·ÿ| üGH Oihåñf?=—ønaí¬Ù5ZàŽAðI´˜^—URD»iYª e(y¼«0 ›¢p_<ãÿ‰wÈjêtG¿H­) Ý7Ï%­{þc™Ì¢:NGj-w¶{A³Ã%5ĪÒ[+qMðÍlàc(ôÉ:­î?}ð¸ÖË/ßùYu­€ÖJæë U×~err;;­Üˆ²Üç?rÛuÁo=?ËÊðåg­‡GìH­(-=6)œ7vû¾uØcª9#œùvBû÷öæ4Ÿ¨ ô§wåQ9úËœ3±¬³v,(©¦ˆéklzÈù­VB»;üÇèÉ*P¶· Æk@5”5G¨/Ç]RCwö6‘L’@íÿÈï¬u˜b@¢A}Ë€û^‡”£ÀÃÍÀ#Oá ^™Ôèw+ûKþÈ` /Œ1Á)ÿÉk(úºi¥<›¼™DwRb¾þ؇¾ÿÉwªý¢ÏÛÝÁõ¨Ðo(”SwÊ”…7ðpN‰§;ô—ï"?8²þÔÇ4þéüG\+±]ÉûV™¢Rdj‡ûß0•Ñ^ïh$_“‡ÖóÃhÝæÜŒ–X‰R^¥Ó&¿1€R°f;=€ayXãëf€&´ùU¥ÎxçX®!po*ʾ¥M§Àå¨Eü±ÌSÈÙ‹þæÍßî=?ʛ᪠>“¨Ô˜«ð`(¼Ú@ãÀ©üœštJ·¼uþ#˜ýýìÞ<;§é/š˜wÅK¢LUÀ6ù:·“,²ZÊè%øC@×ü²‰[sd å}žÌp§<Ôæ‡óÏ]û©IG5¡Çg2†šì¢´†£HTø½_ãhw}§–ÜãÜ’@æpaàÞ;°Õvøï‰fùíQßDìo{O‡Þ ®ÎÆká.Âr™.}¥§—™ºX#»¡ÇûÁoÔ’ö²l”Î+¢œç9xÎiá?š›Ïפá?x%|^N´Ø3:ÅÓ¼«”á°ÊŠŸ;GSh(=­»E¤£Ü•u¨å@®Š¶¼Ì9¶Dã]¦Å—XÛ<Õ­qÐQ•ø&¥áÇÔœ”MÞK_°d9™'µªn“˜ºDÛë¹"Í4¯Þ…“·àH}Ž Í5ÒxÏ|ß==j7ø£¢-‘aÒm¡Óå© “LÑ‹ú˜ZûKIy=e؉g¡æ{¨Š)g|{¬Np N‰Ñ?®ÒZ£|B2¸5u°¶òEè ï± 5n¤]--t«æ•ÝZEêal€—c § _zá9«®ÓÕÀøjJŠ^E‹»c5<üÛcø !¨ew£ûA ¹µ¿ì‚ÿÈÿÑJpW²àÓš0ƒcj¶õ?}]ø&ÿî?ž–ß¿Þ~Ãjc{œ’Nç¾UQVzþ´ëØ%ìúp<§~+Ú3Ï6‡¨Õ¿1©ˆÐxG­ËNÓ È°ÒNô›ù“ântД¢PÓ³ÍÏÚm'ðî¡3MG(a äû«MV,»‡yžsŒ*•P\ßù­Ì!ß*¥îpLh˜Ih˜ÀäO¬âÌuV™|@ÀaðÃËÑÇ®÷Ägâ^›Ð’Ò¦@¼¿Êb@‹­6¡«…y¸'.Ý3i!M£Ðekñ8å£Cð:1(‚Sï—ù¯¼çsT‚[X}tÓ´OèA‘xÆŽÀÓèþÝû®ØæÔ:™ÖÏjÝ*i—¢ˆ<›¼'R´$—>›:T<ú÷êÃ¥Ùç-¤Ïàá P‹³€oMÁ÷t±Æ8MáÂãÀ‡|™c²áë9<`ašæ,€ÿ˜-\€½s?+¼«Æè¬ñtþÇRO]g‹éÍ9 ˜Q„ /€ÊOé¸×’µWzó·¯âÍ`ƒ (å|´álºçÔ m_ý.Þ»Žì;ÿüŸáb@Á´‡r±%e%)ø£’—Œr‰ËKe iS¸·Òüü¡2üÑËÌú®ÆÏ¬§&&úW”%´¬Óm渟ÞEï=mû¾æ\T"ÉhŽ×ZÀûLà‚hí?í¿¾‰8üÑm|–Ê£•:2ƒ?FË`© þ˜¢K5¹{OßkW¹È¤ž¬E‹$F̓ÉIø±ý”…b~÷þª®É þXO[)÷æHðÉli KÀ?IÜišVÈ (çÜ\®Ê|îÏc¸,éßãÌ’ŠOûã-ž†ÖXŠŒv¿ 6º èWõZÚhD­ M>\«ÀÉ„Ñ ÚUÊ©«eu!_,çXÒXz‹&›%_âm·þ²?yó Ã1^`¢Œ…Æßþ?²Dgj)«» Dºãy—äíÔÚd3%¾Œ½IÖhǦgóÉâæ9MÐøn&„òÄ@Gh&ðGFm®Od«T†3Ì&3´ª4ô½•ÎE‚1>Ù_þ+oþÝ.ú‰¼ùØ£Ð#9àN‚gY"Ï$©6Õ¶šËÝá>ЊnsøËð^™4¢tÖØÜ„ FÉ}ã¢ÿT”ZýO_»!fî}ùÎ{~ÔïÍ+|½‚Yû­öö»’SØÙá[µÉ“ß.n§²ÛÚ/­7ž{¿áïß8O0ž›¢ï¿3ávhû¢uÒék’9=qvt; 59?¿"™§P¥Ë}«¬ ÓXóÀĶ&Ù ¡Wo;±M'ŒîÙ/~Æã?o·66o„÷È TÚ4m„ïmnP3ŒïÛ‚bÔÜ„2Ñ•Ѭ¼³ÚY õq„zCÉÏ…êñ¾‰ÁHr¡ö¢Ð%“‚ÂÒRê—üÉj ¦Yd>›×T::´þqSÆÒd*ÂGà:"ðUèôa¸×?ÆãäùÅÓ>l·õíi™B‹¨9œŒ÷LÖÁ`· <”3qD0ÜKàÐ5 Í9JQESè§ûÏCYiì´àÉ©”‚âAmYˆ×mv—¦AŸ#/¢„†óXK¯àÿ¢^4l¿Éä pýn/kªÓŸ.GREº4¯nKŠÖ»ê#w;y=w@Ìqà¾É4Î×oMQj,ð4tΛ¶ôXÕ5 …¶+G˜†Û[a_QQÞ <žÏ 80tº÷”mZ…Èý?ûûwvíÆf•§Ô¼  0ߡδŸ À †ïØ)uôª¤‘s\AêÈ6®üΧR\ÓžS[¾õÚò@ Ԁׯøºíàäà|DâiHí¬÷-ŸãÚà¥þœ_/x/à–\š˜RÛßž(2üÑ„¶ƒkcólî ßã˜2IjbðÇ+í./¸ øcÇãtp>ެ;œ„êŠaZ|·þª0j°uLí{¶‡[ƒÈjþ×7Þ’£zQéÄÞ FmV^:å´Ÿ¯š*_b÷4µæ¢\ÕÀaáLÿ¤?Pº»h3WëÃ%õ€ÿØ!ÁušvÔ^â‡? i¾ËÍy ®êò’–™e_âm³fÛÊ ù4- «Žòs3Ù'ÍÑ^¥¡çOƒžêPݬÁݺQNël "¹õ¸¡ÜVu°b5SÖû2ö‚?>šHÐ*ãw:šsBc»)µ¾VÓ¨à­ÚCWøö>Em“éCIè"Þ3bü<7!à™û›?oá  ÚŨ|.ÅܹšUÖÊ)¡ioÍçrm÷O·¶V–zNªê5¹/žì*ºcârNm~/ÃÇæºåIlýóå»m]r:š"ðkìhv@gbÿü²Ìi ûFðÇ@ÊurƤ·nÚ©€8»œËˆúØÜ±wþùa+´ÝÉ<Sl^€†‹ÄuÁq]ÍAjMë€bAÐGZšp&D üGgŠ3Ï”¤“pãJ/ ½kQøB/ Í'( ø#xtŠ¡_òG«å¦õ&(zv~^Bi|;’êR?ô³\à¿€ôÑ“h…£ÄNá_´â»0º-uÃXé ¿Ð ­8HºhR…cóLzHé(…á÷´õ¯`êZ?[uæÍŸ~a"%ýC7ð„Ó-ÏO)?Mä2Œ×‘^ƒ•§yWÚö›bòÇ`k¼3\sÈ\N£ýŠPfof? k+ú¬üÙ—QªOÇ3ZF}À¥'ÌkS…êÀ=8ÛLGzD¹ð>Ï ¢Ôz"7fïΔÜŒoón`^$NÁ[ÁG½Q߈ÜÊ g?ù.Þd»ªé Ï‘(¿ˆkð[jáÍ—ÆO¹?ð}¾ÔÐÃ’ j¾¨TÆ6çœhßoAó&¢>?œ_ûÞºoRƒÁã@¹¯å‡¼ X´SKx˜’ º·¯^Ð`ò«IDélj8+üÌ^ßÏB¡¨Äwþ£·máyî×&áÑ\Ÿƒp*“¥ç’©ºzú‘Þ‚ÿ8ÉCQ à$<輟ûÀÅæ¢”ß½¿jkʃ±ŽÒaøîp[§¸¯Ì”6²‘«‚?Öý»YÎCû§×åè;ÝÀì ¡CŽs2IÏwýå/¹ëif­¦Äxv÷)Ÿ¡ÚÞÕ}òPê©­­d ”wÝ&1ôöÓÎòVhíÄW¸+Z0²ÔaZfžÙú%Þk† Ïl?üÂyŽ…gMFHq}®Et1üËT}Ö;¢–YOÈ%®ñ$—n¤¨>ø·üGÓÒ_þ«IÖ'E£¬4‚ Ï5Çè­„wÓƒÇòi\½-»tJVK[‚ïK>­9刖—?áÒ?¢WùQ\pÒ×^xÚjâL0¹¡ÃêBã„¢ûÒÑ]¡Ée¢” xª´„{Ö êFvËj#¹©{%»†‘Vš†;‹ÖÑãþ—æ?Î{RûÛ?HVëí?,kÕÏ~n7rÊ;ç|ëw—{jÂä€ÿxa}ð|Ÿ¡ôÿ}½ñv^˜fT á¢ÉîsrÚÏ­«ÎX I;gMvüß*ç[ç6FûF“øŠÔZog§ÒôÑyä 0×Ì»@Îl·,{ˆ ÍKiýíÍ¿[•Þ›ÚèGéU§ÄT‡™(&Q A%ç/g£ù8<¥?3ËS(Ò<Ž÷"e¡Ë&$0ÿ´‰óKþˆf  ´Úùq-^Þ¨,â.¢’|n7ƒÖ_´K~¹~÷’Ýn ¼ÀêK/LK¨Á©TŒ7òp`@\ƒŸ>€ƒˆŠònÇHofšýt¥v+¼'‹g¦˜4’›“¦>TðÇ7Qçµ(q(ðÇ´Åš d^N·éŠ)ã´&°½5ÅéEÛà7ºP Ú ÇRÆ‹kˆ›»Ó-g¥óž·AåÇXõžDÕüñÈ<3e¨Wü1Ç“Ë9jZÑ;Ì]8¼ß߈ÚZµ'J5’'³÷}ÊIßùƒÊ±ðôç ­Qƹ4(€ýç½íff4ʯB)ŠQ[ oò·’¼²\Šé&I.g¸¦T’Eˆžg7à‹(qdêmú}WãÖ“Œƒýûñ^8¤Ðî$ìàõ[£è`ݤáÀ&¥Å€?Ò€?î€å×û zßÕwþà`Û›K`\[ð[ÏÁe¿ ÇEº\3¹t¿ö“C¸kúOVrLËoâu4y85ï¦Ýèeƒù9Ȯ£¹ÊÕÅr×h½+otŠåÑN7CÕ÷à’P÷kГ’J6>gê}‰õÜÓÚŒ­¾ŸïQ}߉¥²Ó‘ðc¼óåWסë‚Wúƒ?&óYøžEü½2î?ßšn²æÛ~œ’WcœçT†+Ë%™¡7µ„÷„wø˜`îXÔ9ŠØ|NÄ#9ÁgqNÔ·)üGž/co¸5Êñ£°#ö#4ï)¾fsKÀ–Ô8x®u)ø¨ø„t´”ƒ[J#ôŠ4„üL…èƒ1Ü…*é…Ç­FN“¿úèksA»«5‘,–£R]h6æžt»ç´8øò”Gcu¤‚ 7¢è‡×M~D‰ü1æÿ×!O,ë+n>÷Ôû×ùÛ?zv[µíköŸNfg·UÌ·þª¸È.g÷³ýî7ó·¿òœp®›Ô^ù¨‰ïxœ”öë²ÓǤt:Çí×V’ß*g|cskZ`rÐD<÷9&ýã™eÇ¡„tþcŠyó}¼€¯]Ö«¡y ÿ±}a4 >¸l¢cÌîÄüÇGÏJO«Œ ïå8ŸÎ˜üðƒ)/{Wœp>yÏ_ GÖ/ó·o´»Ò¸ÀîÐnÝè¡é T@éL£¸4'åÉ@ÿ“t†¼ÙæwOÿ4u¬ ?‰ÕÊ`gƒ[ëEI)$ü€‡¶›zÔþc F|$šÀ…àÃw#ÚmðÂ\šMcÑžçMm' gÝÒšé /¼䣳tl^ÞË?šÓg˜óœM s?Œó%p)áe‚Áû4€?Fxª:Çà®îÑøFìÍòX ¬ÌQÇórÔµ /—î 8‘ô¼-:­2ã·½“â‡ü‰ ìšp39( {3þñ]ŸŽƒ?žpg)!û¡¥WHB9Èe¤,ÆCr iÞ —Žfþ°~÷¸õÁ$€6‰Á}Q•%ÄpBÑ$¼ÁI­ÑuˆÖr–3ÊGMÎçð Áóùà]SØÃ¿ËŸøÐtA>@ð\n Í®¾õ»Þó?–èjí×;ÚWsS))«8G‡c¸‹{å9AAMùïÞ_åƒ:ˆxEÐ3„ÏÃL–r‹ÜEšQïÉG]$»¸‹„×#`èáx2‹yÜOdÉÃçMé/±®zjY+Ðó›ñkÊæm5MöKƒhm&½ÁF7%µ›6ÒñÚ\§¢å¢¶o¸<¼Ô%Zæ/â^k”ïýÕ2ôáp:u¸¼¼–¿ô¸ÒùUÇiLw ÎW× §ká?&ë.ª›Q‚ª¨KxÍr¦‚iúeì°†:OÍM“í–;1¸¹fuË{óTi$Ý)íáºk~|O:@2Á‹äÁ݆I)x^™ø<˜&|é…¬ÚNwXR Ú3½’—îxM)#eäEiÊë\w“ß½§Eµ¾¼×Ý’M?rÿá‡:]4Ïà›ÿü¯ø½P¬_ß_‰ÕÈJù/ùã½g›ÕÑösj;¹mVDÙá)gDZëÛ½ì7Ö[Ïï­ßµ­MÎðGkø#àÓö'ë¼uΩor:mœƒög+áo•3¸yw°8=œ=Äœ5©­åv| ëCçøã¬ycÿ ÷¾½¶Xaí.æ‰oì•¥Q´™Òre(ÛÚf#žÿFjViLM ã¨õ»œ©ÎnSŒ.åVÒxøcä]wõ–žÃÝð4;4xlü¹>ûSZà9?Š ý¶#]5åi #Æ÷ø…}ÐųÐïƒ?Rÿ¢Ù€çá@V¡ý^›ÞàÇîˆ4’§pÍ“èÚápV¡É‡R 3ØÚö“Xa­Äv,àÞ(J¶è@oÌÓ(ü–F_³Òp F0^KWé m hÛetƒÞ™4N˜J9ÚšàtÇoyç_J‚=¼»Zrá?›?ÇÁÕ=ã-ˆX†§ÂÇl þh‰}&X¦[€ùKr8ÛŒw-X¸ìLð%á¸Ò/ë³ÛÁ•∸µöž…: iž÷ZjëDü!⻺A5áËVŸsð+ê„vÿƒ_ð),« J7Id9u^]Ö‚¯¢pfhñn|†‡qLêùÃùQÏ­Ç&úWXü|5œÅ&ðävN,QÁû$±F€ŠÞ®Aä.çWr<8†»p*ë¸'†wMcÏÿnÿ ƒVZ@ç(|ESh•x2üQ‘ÓÈB]¬ÑÝ#zYÛÿ{H-ÙÈq8>´¸Èm‡˜ƒB™oW~4UѼsWypÇO´þcŠ´“ÍÜ\üÜUšY_ÈM'7¸¤Ð5¨q{´óRžÉ‡áx2ðSøK¬kž^Ör î?oŽ7%ÜÑ=i ŽÁ}€@àR@õÝ ÔÄ´üéüG$+¹ü1  ÂX¹nêPsÔ¸7§ DÄpgé=î¶™vâë!]0%ÌŸØÍšìô¦=à>Túëк0Fç;z­?Éâ°,áÀ€É@îMÔþãœa*tþ1Ú"<‡ãf FøHîìË_² Ѻ“7ky#üÛ0 d: 7±XŸŽ½çÿ.Ãm„CêéýýéšÓìfüPpžÇÞùñ`¹Mp€¸ ôüzøýþ£º4„ÿèÀ œÚÏ=‚£€p}Mïøã…ÉHuàózðq¶ä¨7o#'”H@èµ’N#ë0½¡oøüG™ÈEÀ/QÚ@ý¬P Éíéßî÷³ßÃlG_ˈgY߀?fËð4=…6Õ¿‰7ÄäÀÓÛöÈÎÐgwód™ÿqëÉS]¯éÕÒ»ð\¯¹›$×µp\3¸>ð(¾’HJ~`ª}‰µßÓÞÚA!ÐoA›ñî E©Xûk0m,Óe±–ƒ›I­;µ“ö”;àòº˜rÔ$”4bçi¾¿Õ¬¬àôð è<Ç£xS²JK ïÖ×c>!”Ûž+ˆZOÊiü­¶ÐíŒ[""\7%ýñÇ`«—óÞX=ï-0é¥$r‹ÀÖÒ¬:]¶ëAýK³k+}„6m‡RÖBÔðÁпóÓ““ÇSÿ/½ð€UÁij2ݪA-)¢•ww«+óå¸ ÖF:V»¸‹Ýhn\·´¶’‹àÎTM¨Ã-À+è²ù£ªÀ%ÉFODëî—ï¼ùO×½ŒµÝjf_´K9qV:Ÿÿ¨b'´‹Øå€öosþ#˜uüÑ£¾ŒwךóÔÎóÑé`ê8=íöóß̳’ÌØÜ…NšRä]}¸Ê<3a­¿ì ”¢™bf޹dî2ÉËÏl,¾tkþ¸B™¸}4]Í*èÕ½Tµ 3‘MÈ@åOÌá s–šÒðChÍ¥ ¿ëÁÜ¢ ÜŽ’°Í‰è®ILÕQê Ø>¬6ßD†f+ ÌE±éS#g"åÇÈ_‡¨w¡»q¯hÍÉùKþ˜IÁ} ,‡‚%û¡õzC•¯¢æb‹?‡ÐIJÄ‘Qâ¹ÔÔ4·Vÿ$V(+­]î‘–ûöŸ×®w‡¯O ÿQ:x#­§À5/ƒ,¥ëtÓÔpýî8ßùQ—Á»©<þMŸ›££eWÀ-΢ãtŠÆ;Ñ~X5Ò.þ( _¶™wqI~ö=‚hϸƒ÷ÄZ©ªW%–ìáÒLöqMŽÄ%ø2xêx9=2þ«ñcëIg“Çàwó>úD^<!'y9œöÖcúŒ/q‰)àxJð”õ0Oå,†RØß®nn6­Á'(¡åð2 xß„3ËRݨ)ÝzOkÊ%à#Ù†É uÿuYÁ{¡ÀÌw矷0y¹(ïBÿ/ÍmÁ§y®L”úàÆ†òR§hR½ä;,÷¸£¼”ù<„‡£Ö»ø:_äÐ’„ûóÇ<]¬EäκB…ñ_#ŠR}bÞ‘ºò·¬Ô¶ú^²è6}ÿXZkÝöí ·IZÃàYþò_Ͳ¦ØÊ‰Qîyt’“PQ6Ò^Úh·®“ˆÚL£¸#õ¦7¤ž•:K‹JvÝ-Ñ©o¡&­©ÿeì ƒÿødþ11ч‰™ôH2º%À€ÇŸùhºÐúZVJ"í¦™àéªK}v8/ùcÇú[¿{ÞjéŒ0YÐCS(¨*KÛ¹34>œÖT)¬ûu“Žuÿvoj4wüVdw êþ#×%ÍyÝ<£\ì¿2ÿ±Å×ßù=Õ¬ß[×ôõ im±ŠÙWìÚN:ç”oþãoO;±]Òîf²^{~/;¤eít.›>À¦œhÑÎðǢö@“~ÎqûÑoæ Žc‚r{:`ïóÐBóÞ$¶fÚA)y×I2wÌ+;p;TÖ[QìA&ßR®Ħ/÷æ2†7PA0f2àu=n¶Ìþ8|Þ ¦Œ-;Œ4¯Õ¨îµÝöàà»=x2Yx. ¸n&Ÿ‚BaSù›xÝMQ´Ïa_þÄ^ Ícd¼Õ".,!Ü)šüqüñš[Š­«¸›oÿù~Þ÷8øã¸¿õ»»<-­¿)†oÕsA´\s(´ŒòHÚÃÔ‚«™§Õ̹t‡vÖnrBZÀl÷f×v€?¶~‰7Ú`[œ”7ÒbºÄ~T» .&¼[PçŠê ý¬¿¥®þã NÔ*’M7Sn…¶)ƒžPÌäðwþÇ «©ó¹fâCU½ÄÏ’p[Íã¦Ó¡š <ùB†è8øL:¥\‡ÒÑJ¸[i %ö½ê“Ƀ>ùÕo·ê9]MqŒÿƉž˜XJ~ã5‘l‚Ì ût¤r¸g5«ÛUëÈm}%i´ lxnED ¡¯ßadú¯ì<ãIúMþ«ÖïËôõ²­ V]û‘ÝÝ)윴ò[Þ5-¥í´vy»§mAÛÿnþÄÝÎ=ÓŽz"Pç‰ÀÞg}vF™ŠNç$üG@{’~A~üI« V—RÁ$¤ÌðÍDsÃs>*Ò+”ÝÊ„æó´‡ªÐ@ \Vn@.µô¤›À®Bà& g㹊9#5¦ =ðíɘG|ŸÂ÷)<÷‡¼C»m"Q)øÔ_ÏŸ§·†Â!Ï3!¡T+òzðZ2ôÈr4xWØ—ßîÿÛ?¸í•b8Ù~ÑŠoìQèó ñ½üñxŸžZQ* ÒðGžJjï,¥\Û4ý­Í?‰•ÊŠj—„ŸIá1Núb]1mÑfÏh¦äÔ(åï¹Mi ƒì¹mÊ;IÓÍšçÔ‡ðC+GÏ{³›ƒI^A™×¡ãÎhç\C]¨âÉäÝyÜ—âÐ Ü5"Àý9œýf$˜«+wå¬ìáYp*]¡|§pm®„ D>7qeMÌ‹|'ÊÏÇ}ÏÒ6'Ô§a.±‹˜¡àéèÀÈý`ò»èÇ |ßqI/G¤¦ž’€óV°ëMN)iù„¿ýƒ=M¬åPÔÙû^ô&P5=§ƒÿè ¬åd5ø£ŠÞ–TºD;ê89ÿÑB/ðYxÍ•œ*$zäb³k­ö38äÃèÁ84EæL’Q¹ùt³DÐIĬÏ5–AÈ!Ä­%It7…„ÝŠ§€Ê›B¦Ó—±×ßêì°wõ;Gïl®Ñ?þc²–ÖtàÉîZ-E›ë=YŒ'=¬7Ò£úÐ!(ãNþ²x®³*:íLvêq‡Þ›GÒܽ¤‘d.¾RÃ}TÒRîbwŸftGkm¹¯ûÁ︓¦åæuznîÐsÊñ_™ÿ8é‰n}=»ù“§ê¿~ååúö»½“×yî›ÿØî©d§°ÿ„ÿi¿ðf-Ò×ë£çó ®7¥#¦Î[;“}Ézìt7Íœ®Î.ûîožÌîO{L.Z ÎØl<Ýgƒ>bØŒ7ͧ@îÿ8bE´{#š×«7¥1À¸Ô\–ÂÂ@±:è!má?’š°&09#K8#œ-Æ{kG¸)À… Tžæ=DgŒ¢p·MzDÝj"þ’?[c)ðÇë?Jðv rbzcªûrý•áƒÐá±QòÒ´‹KÁ~ÉO쥔;ÐXDèCL´Ø0ŒÅ¹<WyÐÿ043ç[¾ü%=­­?‰•ÌÊi×¥<’"¢½’ Flü‘†² Õ݃Àßo“x¶ i½wm°Éï„ pÿà|§ 0ÙåÁÐåoáXšÀ«zÏ‘'rÐéé\翹%bï¬Ò: edºfB£m˜?±8žBkßúݾœŒ] ta(Ž„¾uÊMàBÒ‚?ÎAÏïáˆðÛi6Üâlð× Zæÿ!ÿÕD»¸‹vÎèËyR†?Q´`^ðGc)eÙMoH¨ù®ROÖ§¢r `~‰;e¦¡fðw5¾kÝ0q¡Äããç,O ^Ä—í)ªœá’Eãé(=©oø ö |L6ijd0ø#%´g|±/øÃûþê4¥á]Ü”Ãr4#ã¥%'‘…ºþã¼¾Õ&å«*Œ6™‹Ò…ÿ8D¹À5¿ó¥¸ zÖ>ʃžqÎÁL‘Ʋ˜ËìÖÜ@üÃ@>KÊI0ÝË=áèjòz´çN$Ñø’¿ýŽÕÞÚN‘Ðî/©îV Z¨€Ü—VúY É,™¬ô*ê¼S‡éT9(-°ûÀª€öþ/,ñwøkšý¬± ~ñ,|n5påEé¢ä&×õ~ã¾®RvƒÃ\’£ºU;InÝNq¸¯ó¢¦„©áoþ£‡ã¡&14‰‡›BüP:»¥ÀhðGͧ»5™6Ò§¾Lý»ôOD­.åÐÓ?B•Ø”ÇùËÂvÇ*ïô4¹ÁFå12"R+­èîÑX2_HNݦ…µ‚»ÂÝ¢ÜñÚX®AyÄÓÌRMý¸§ÕßÞók“üWÎ??æ‰o}Í„þÙSå_¿¿ k­¶šÀ4p²:­\¾ýçEìŒàööuë–çè¯Cø»Ä:éœ2}0êrƒ_K8Ïìdö}ë©ÓÛ´uú:Çì¿™ç1ž!´öNS8S”Ö˜'&ŠµÄŽ4ÌcR™ùæ¥ùÈý§ ¢»˜·tÕ›þ¦û”–ëà9¶2Áv' ÔóC¡2¨üíùœéÎ2ó½¢n҅ň©çÍ1 ,íNaøžoýU\*B‘ÿª’ÕŽc²1ˆPŽ—ÁÄê×ÖÍÂX¼tuÁ"Uiø$%tòþ¢_Øéx²m¥îôÊtv´òÍŒ¦X< X¿ˆŸÕwrÇjj†X?Ûõ’ÊÊjç…«êÿƒºÁ=1Õ¨=¢‰üL×%~Lɯá>6ÐfÚŸ½3ÌlÙÕšî´A}ˆ‡ÒŸtÏõʈҽç¢EÎç"oà:œ‡WøÞ„ g4J œ?_ë)ÿ1nª-)ÜÔ¨ìä=…« ×àÁà²@xï‰Áð÷àŽUhëPðsH?œÿÑî`¼ûâ3ó>^‹zݧöà°â|JVÙæ{—j¾ªT“¥Ü€£§Nò@~Áã8øâw5¾e=2i¨&ìd~Êסô HEÂÁÀ«Ëô±~æGœSüd j÷:Å[xg†(d/þ&bSÛÂ3Ý‹^—–G@éÇäð2XúH3Ž++ ‰Ý«êq;Ègî!Ue¸!/æ ²§ÂÅæ"úný.ð³ðVð~´àÚÆSd>¹üÞ]¢Yôì×È7F"ë&0r_®†¶9ÎW8£$ã“ßìôîÿåÿýê jŽ#Ë iªiµ2Pu’6„›I ‹à?&ÉUé¯5t+|L¸-‘æà÷SPŠ_Õø:kªý€’ L¥Ëœ‚2ðCn.cá±:êb9/sTܱúDƒ¹ÁàŽëf&¥u/ÙÜ íWã1¯ÉfZú㎅¦XPÁy³9N3$¢[<Ô¬±Yk.=ª‰µ:8sTÕƒp ´‘4Á3{ þ°ÐF“hÀ—^xª]œ ê«)E’œ”Âî&+E43>ý§6t7ºç4»ÛV[ÉS="…5+JŠ[RHôíÌŠÊõ¶ü?}]÷d÷·ð¾§Ú¿>ð­ç°ÕÉ~lwvj8Ží};:ÉSÚNi±{Ûï¬×ž[¿m·gƒsj·´eJêà„rÊØG­;ÎÓzýŠýÙÊü[å´Í;B§L àL}ZnRÓ[O;6¦´‰c†š·&²ó6P‘¶ZŽý§± JvyÏì¦Ë”ëz=©YN=áÚSA8î>&¾Én³"¸¬ó·3Öä£Û4š{<Ç}ªK €Ç1¹TØ[*E÷L*ߺ̿䵦R^¸w—”ëò6J þðæo_Œ¯|,/@Y{÷½å¦ìNþ_´âÛ«±ÚÁÁè{nz£vÀMCãh<¿›®A‡€&îB}Í@ëgïa#Zaí\ä=¡6E‚øh›fàÊëÔL” Ê¿8j½ ˜ö˜¶£¼ÛÀ§Â7á?ÊLÖÌêþ8J!ág*ãǨ,üG&0À (ÖCNçoä†@ÿÅ´ñÆRl´Dp´íæøc°'¹³µ{KÃy0$OE¼”…‡ÂÁÔ‹„áªÀº½ø2ŸbÜN¤Á¨ûkÚè°}æ»xSíLf #æM| ,ö}b/åä¾ü‰‹¥>\á¦ÒF¶ssÄÌ-ÞœoŸsÑ,3ü»·˜Ø¨W|0™ÖØAOh:0?–¬ãµ’R“êý yÀ%%ø#¾¼³€Ñ¹Q“öžïøã±©w†r#;¢¾aÁÓ¤5ÜÀhÞÔîâN’§ÜBšÉ&0\"^È!äXë4ZYL“ïüG~ÎÄÞU}¹á~>Ð ž 뤫,⢒Æ]¯À¯ ÍEÚIrÝÆ]yXy'ü4g“,޾î<´:ª¿†R Â5à£ÀôÐPñ³e†¶Õçp1µ¯N–ç2Lëë\~÷¶‚ÓJ;Œ›SôÔ,°†ÚÏÐgwÑHºÈ^eO:Àa¤,‘{2K øã¨wãèrY§‹54Ó ð íð´k¢_ç0ÕL›/co¨ÕÌq½§xÐ ÂõÌ ú,YÜ4:Rǃ9â³Yô¸fÒ®(å )¢o´œò—DoöãúôÚd†'ó¥®·þpš›´P_µ)7Ϥ­»Yc˹"t\Mw{K‹¹­´‡XîAI¯)ÁR±0.Ã…no튙?wÿ›×qOFóç«ù¿^¿Â:nµ°ŸÙõ´Î+ƒåå€êv.»¶=üñØ-þõRë„óþc"twLjãØNi;’ýØécº8]#ö=+öo•3‰ Éé¨)ÅØšÖ›÷&œ5×Nà=qÈÄ6cÌ!ùÛ—Y ívFÑGÁo®r‡³ BµÌ2o†_ m6jŽï¼çl D¼rΗCô-ãè’ZŽðVI¢‘ô/Ý­~rƒs‹GFp ¼[þå­¬Po†®sÊ­d½ŽÒ*M÷À-´æí¾üíù »~{Ó¬nŽRtµRÛ,¡ëÂn\ª´€Þ“yºÜVA{««£¥¤^÷ÔzÒ ÚÉæ"$”‰ûú[¿»Ûªât†»äÐKsMÊ»Ç5¹,‘³[×£¶UÜ]îëVÔŠò=§†ãÖšŒ›úÎ?ežCE•4?Ûwõ¿y|ÅÍ·žÚÿ:ÉsÏ«±Ä©åärž[u}ùKŠÛÚ•íN¶e¿ôf/Ý×ë²g©óÔô#ï~µÌTÎ æ$³YÇa¦3ÚÙ†¿Çû­r†36žÙ!S‘vB?Ï5±(œ5ÜŽ@Å)· m›gàÛŠ´Ñúlå›9è]¿{‘òq%¯70 àlžk+PUj\/Pï¯Ê:SÕ&'åÉô74þ0I ø—•q^Çî™x”ì÷ëýƒÉ¬~”ŽÖ™Ðo-y ÜGºÿ±Z©"{g=bð1üÆ6šIñ)†“þ­xÛ |¯Wµe{fºQ _VÁ]<#+2OZ¦S”„ßI[SÓâ§ùK‚XáìÜô%ÉDáðüÈ{þGwßùµŸPç±\œ¹ƒør€­¡}h`¿ÌN@9ºÁ4Á=?‚Ï2Ó:)ŠÒ½ÂjÓ)g¸ó‘WAÃæâ)´õŸé›ÿˆEùè¯øc‚'“³ÍÔ*÷áq(G^÷0 #}(ø£œ×Ïíãý¼2”oýî2Šû£NûîwñúÚ9Ì x爼’—ñ|ê`^6–̲Qjëe‰/Ǹ¼Ôo6¨°Pï+W¸'¦Ipq߯»i݆ޭ ?:oòGpu”%’¤¢Ï–dšJêy *w¹”|æ!œœ3ò_vð3y)Éwþ£·ýÎt€+;L¹x·AÂÊx|Õ Ò¥šÐݧ/ v÷r[)+Þ ,y$?Á=góEôÅÏNÕoâu5¹ JåÍ1Ümµ—‡Èdé"g9?°u½fÓÚÝ-7¹»DÑ-ào»n‚YË $Ÿ3¿ÄÚ ÿ±›R?®‚Ýn¢g仉vQ?ðÅL µàÞÂém£MÄO›?†ó9oç÷àÂÐpØkÍ×÷åó¬©v0NÃi½ç”mÔGÆ«ãÑQrSƪå.ÖýêçFÓ“rE§hI§ç(žÅB.ЙՔ2µüùöÎ{ãVŽßibÖ’jP7*üG)Ô󪼀ƒi¡5àHÇâÙÔÒIJ%­N¡Ñ2eɦôÐ]_gáŽYµN&ÜQyŒ‹Ãæ­ìu/i1ðï)þX¬Ü=n<‘òZ þã0ØMàŸ¼™Žï‘ ÂÁ9ùÙº•ÿÍë"Tá×}/y[%íëv§sÜ*ðç?âÚYí–öCëåoî?éÙ ÿÑ®?E„N~n'µŸ[ûœþ¦ ÓÓYc?°ÚSöó+†/ÉS¸Tˆºšû&Ž5ÝŽ%uǹ ÷øÐ8Îõ_‡ÁµÈò³+™Pð—¨ M2e‚'}aJ˜Mà«èÙ¨õ0!L„@íÿÈì,ÿÈ@'i6Øh4ʪKÉ0 ¼3þñù| CPÏ+±~7™Uœ1ÚxϨ© ¥ŸZÿ²© $^N…|ú0 ´}A(§œ^Û¿Ú~Åî,¯O}ñùÎ`¢ŽÀï©|û}믜÷ºúEÃ8_ßËo*ÿtÿGT+º Ž%¢$¸ÿGsþ£;`8ßõf›â?ÁšËÁ×h/¿ÔÚŠZ§qœJÙÓÚé  3øt/èüÛt­žâÁ½g5]rº9Ÿž]¸G´ˆ™ö›ÒR«øc…§š³ý-(êÕ H‚gûò'翸¢Ìcïyx×ù Txlhñ©Ð²ÓðóÕðŒíœä?¬ß]dW6cÁ@©¡`wqZ~ì[¿[˜Op'É)›¤–nr•I%Y Œú‡rð_†ÆþœŠ†ý0þÂziÒ‚?âòüÎk>MoiÇD²–K"Mt= qå…oþcÇeïɹëÑ#9=E¡œßùö¶‹Ò¯BÍÏ‹¹tq8ßû«rœ\Öê6å^Ô{:Σ­Ôõ¨³7Oï°çx>¾þÝüÇ:S^o>m¡‚pHh?•qÒŸ/%AÝ šR_È+Ý!G¹ ß{.ähðø³óœHñ)SòK¬£ž&ÖA0e1ôŠìh¹ªðqä¤ô†é%s¤VÔ3]kKm,§¡í[ëhø˜ö¼™CH]Ôå$-3_{áqkœ”³÷ã΋§÷€¿Ê£Så‘LÓ:TW©Ç¡ûå¼ÎÒ¤’T·Pxn‚zOÑÉm ™Ú_ÆÞ«§”ÂR è‡x|êÿ¨¤vëk;­©Uõ¦þ­µ.bŠŽ´Ô?d1JÚü!œ“n˜$àNþö6sZš*(]]J´‹¬yÜqjËpÔ­ŠÔÁðÇÜèî!-©ù䜔ššK*¨ÍíȠŽ穿¢¢æ÷vHüg®»ž°þøã™§þ¿öl]±JÙ7í"N^gåu·;}ë¯ÊÛÝìKÖSOàÔýÿ\<›7¦%•†J½a²8wìÈö!ëŒÓÏ4õ®wµßZí øù•Ì<¦j´,?„ÒÐLóÜĶ¶Û‘cGœ+N[sÛxœWŠ´ÀŠh×5· Ç·QYŒ1˜ þC¨»9ˆ¹c<"JÝÎ8Æ6G/£³ÔÙaÊCÇ$ïø³ù5„Ba~†þé=0)]5Q)&Jí—ü‘ÂjC)i‘ B1‚ P×8ô*-¤¢¼vQ,Þ ý?Z,ûåþÁóözìë­:.«/´ì@èÁÕÀ‘ü(ãºG'À¥ñPÚÔ‚ ˜º?}ÑŠmÇ!?x–t`ÎÐaÏ ø»øÎ|€§3:<¯§ÇÀÆ5¸Ÿ7güQÚo ˜·³µÈé þxþ¨àÛƒRN-7øÄ£ó¬3þc9”uþ›– ¾C€¢ÇÁ«…©cü1ÝSÊ9bZùrv÷çŽR%°¦7+Uî´óp=>ò7Ç€KZå0m¸¾¦µî‡ýƒ ìbf(î-µ ñ}(¡mTŠ?pèùeà‹KŽðŸRE§"{³Ÿs-¾Á½94õ6ã~Ø~Ýx÷¥úñ`ðÂU(ýÇt”3ÃËœæ£Pô1µ¿žÓ(ò”ˈ‘¾œšsò=^ǧ¸/§¤ä”ú»ü%­íLôŠã” !å¨2EFK#έ¼W¹7ô’–ðmd'§ç<Ìuš§ñJMïœo÷Ì4‰¸oó­1Æè6OÙÒArm‰ìÎøéY]†xÀv³¹žL”ï5¥$æC¦Ô—X—=Ý­¥àªèS¥ù Õ¡”(ÝMi¬Ÿ¤©lZGoJB]¨µ»¼–YšCðDœÄ$•ЇvÓV³ÉÛ¬%àoþÄ5tcP.)•uœ†v è!‰¤óáÚèý ±á ïè´cAÝCÌ¡Jó:*fršò_ÆÞ(«—ŠB;†ÒKZo*óSIàVÓ†ZV‹ÀÍÑÇ:J3huÕ;ÿ1 ¼¾ Ρ!ô¢RôÙäâ™4ðK/ Ægb c-²•ò?nÂ(Åp—Ú×L뾕Ý<SìAéú@UáÚž2šÃÔ xR¼bB™„ÚÑ“ÙYë,4%èÐh6ý;F%á;nÁ‰tòº¿tº921AÉ·=ý(#MÀïûquŒ˜Dðo—LQðÜH*Á'P¾$`‘¬pM³)…vJþ¢Î ìtŽšSSàyoºnÆP´c2ÞÂãøŽÏ“|{ý6Sdþˆ˜5©>üÇÏÎÿøàqìX‘ÇSløô‘èûLCê„OçÀÚ9PøAyݤËÀÚEp ÑÆ[L9' ³ŠY}¯+z>+IÁc¥ñd3ƒÂó8à[7ç°¿1pt-@¬áïgÌ{ŒÓ1ðG?OAç iïÒ‘[q0Ä 0Ú@ßúÝÚð«ùÕã“ÀÚùøY,žN3à@š€—VÓ`'Æù§ÛEÍ Ô)4ÏâœJºê”˜ÞFJËb©¡g%›lä|RD–syhæt`¦ªÀç þcìë¯>™8èWѸÏVnr爒U–úö†ÖÐÓoø"g•Þà£Ä| eÆ£8 zA!{Ê7úÖïîÿÆÅoµä'AFÈtiÿ1WQïè "‡¹ŽÔ“uœŽl"4þrü¹Ž8ž©óM¼~æO.Ì›ÐiÀ7è ÷”¡à\@>¡³êc ß¹ÂÕ%®®á`äZðvëy'”$Ìô5É5ONëo ûþÏ»ÿI8Œœ•Fú”«é§¥õ€ÄÔµ:Àwþù (ÿu| îm‚_Ç/h»?ÿ1Çêf3žéipýGŽEI9™|”¡Ñ­®—DÀ$Ÿµ«NÒ7®ðþæ×p€ÞQ]0R1ôȦ“©üeìu¶F8½6Ái¥åæ]“´n+øŒ<ˆpD†è'§Ñµ‰~”A’Ìw+)µ(œYazd"ó2êâ/ÿnmøtˆVcò²y-ÅÝÙ*cƒtÐ^ZM»º[Ü`nx·‹æ”gz½Ç’Ꚙ»‘ ÕvÇÄà˜ÜÔülÜýo^§  ï|ùެ¦VÌÉ®uÈjfŸ³ 9Yœí¾ýk<ùídv!{˜ýÜúç7çÏë¼ó z°Œ7C®Ií\±CÛϬNSÁ䬳ƒü&„…ËlLkMà}šm™ÄÖF;*Ðõ‚sÕékî™çvàüÇ6+œ]ßüŸâÞÊŠc >ÝU[ î–à’A‚»»·àÁÝ!‚»»»»»[Рƒ;ÿwÎÿ.&ð²î[·Y0ÃÌ9û”~Ò]µë<ƒ”æ¡”Üc¢ø£ôrŒ’Ô˦±oLhö”6ëÍD›úy0tò\Ì›ÝÔ¾ã¹;FÜ1ðÁ•âU^²Î_:õÀ_«ðzâ|ð‰à†þ²h$ý×p†v!ò!´êFü$Ýv?u·rÛ %k $ÝHíé‘íŒîE¹#Ã9Ççñ{‡é; ¿Ýqn[Òù˜Žá$tã' …bPWD;gk‚™žÃyø¼Äæûàý«Î8Óüa¹xë,ú¡<¥|¤—;Ò2ÓÃÜä¥ÀþŸ¸'Øã”>xø¡-Fu?˜ÿª†9fÛ•;Âgdâ(¼€ ƒÛ’ ës[n„/µ¼Lê~!´ûÈ@†ÇþTÌDr¯‡ˆ×ÏmØ?ø†6ò ë pðV*ÈW¸‹.”R¥• œQ*Ër”2Í+àCvr3ŽGmí¸5¾â¼°‰1‚£òo¼Ÿ =ðÍòÊŸ#Q¾Õ/t ®Õ×àâÊd¸…Ü|ƒwð”üŒ<îûަø£­ïæ{×ç¨à¢Þ2VªÃ,Ó5šÄ»¬—Á繇T’Ýœ ­:Ïó:¸³]”ƒ¢Û&ïÅkoË¡ÕÁ•燸N§À½¤“¬ãæÑþ 4ñúKø&Üd.χ£K#iø„­ÿ.ÖßøÛTq²Â™V‡^I(¥šª•eÒW‹ëZɪ[´…¶—Ó2T{é,>À-y;R‹c`œ¶+ßÅ›ï¬r¸Æ ˜]w9Õ‡k$òJè,ù ÿ‰¶Óeô?"­®׿Àý=yWƒ#®õ^þöÎ(óFR|¿ãÖ6GÓ|^Q¤e5º’îà߉šTKª‹ÿ•ÕöZZFka© o|ãüµõx.5x7 /8µM[› ó¢%#ÄÓªÞÏàßÁ™½ÕjmàÍõb{q¼ú£ÓËÒX£HZ ‹‘ÿÊúŸŸ§cæìvÃGæÝÿËë¡/•óüÝÿ^újüëõ»QœÃN÷¸[Τ1gÿ¹v|•Ü‚n·™ûÈyá ͽœ¿¯XÎvsÀÖšON—ló—ɽäÜ6l73Ì ÿºù¼M¦jï~²Î™œÊ¤4Ñ2}Á…ÁY ºf*ÍRœ “”JÚ¿Š`2ð4–É÷‰ˆkÝ>ðí~Ëà^YÿéT)4ðp¨füñ'Ðù4]$ÞÿÖ–ùèùµá”ntryæP°Ð[ë?!¬)½¤.|X;ˆ‹ð[š7\Û¸ÓQÎÝ6‡ ÷AþoªÐzJ¨*^¿/ðü£ øãÚï¤9i s'øœI¨CÚa_Ãé5þ¬òU4'm/`F y2¶˜áÅQÆ”Ü ® 7WáÈð2ÛÀ›Û9Øe6ztAYçQ7Û ywv¨ÛÜv£Åâµðj?@ûŸ#Uà{ÜŽc³”Ôe’XrQ©&«¹5œ\.Dî€ßâò迉!jlÜÛþH…v_Ãù½¥ü5bœämÈ7xjä6—–2 n&ßçC(ñï\Ž’PUwô{ûÀ{·Ú§ŸxW'&„ÿ+càfë*MèÓ‹ÚWÎñBé&[8+§¿E“]<÷PNJâùG3[Ÿ¸½‹»ò9ÚÎd¼t£ÜN"{+Ïϯé<¹Ì}ä5ÌGÁ@0&¶P9(ø6RÈÐPOJTY ·PVVÁwDâïy¸ë2P0­µ£CÔø¾sÓ&G Óò(> ÿ±–^Ð*þR2Û7J§ãuµ¾EüoDe8.¼Î.^]”rÓ·îÆ÷¯^[¾ƒƒp¥³Pã(ü•L•1Ò žfƒîÖ/½;ú@›É~î)¿ÊNx‹ØÐ *‡x2й…·•BðG>.Êþ39‹‚h-|Ë2é,—¸†éÍ¢o%‚7]Np_`÷&öïò/‡ÒDëdoøŒ-ú.Ö¨Øíýltš Ç•WÒ,ÙA¦É­ŸA7kwm.7åWªóá<ÚðV¶Ò %ÝG[ƒå¾žéü澦ä¼nöOK9¸¥ÊÊ5è/(”]@ÖÃÔ VúÙèÖ†êùya³ÌŒÂûÏ&ŸWðXØÒð msÄ~L%1B¢c-µÎ'ŸŸ[§ÐbFa$nÍ«Á:ééš­ôE…ùùÏÝG3?‰Ká>¹þê¬ÛŸîƒ?BYv§—¶1pþgŠÞˆ‹'Â! äO¼ /ЇØ_>š7‰Ãnþ œ =ž.ÛºÔΫ58ó[ê•û–6Ópè&x½rÁ–øàù¥Ææ6„ο€?ÕèÔ÷.=†×Xl›7<–›sNö?IYH (6´A¶p°Ì_³}%Ì.[ïí—ãà]¹ü§—?òƒ…F d•y-Ø`‡á<L?mºµîo¢»7CÄ[àþd‡ƒ«’ÁU\à|ü5Ód^¶—b²N*êEI tÍ#ue9üGàÛ:þ•OÁd„|~~Ùñç[ª€xCø.´övŒ¾üWkø”dÖ¸:B*ÉeÎ,å|b!ðÌI0Þx.Ø?8罈-Ü/Ðò³1z³ÃUu®Å•)P¼Á?›€Y±½ûÀ׎ˆÞDšÊf´H0§È^þƒÀÓ>1ïŸ5Ñf㼎NPÔâ2tþ²^ÚÊ)® o¬ß©«a½ršûKTÝOìÍõО‡à¸‚?ŽÛ†ïbÝòÕs¶AÙ—æû`ÜÇT ..¼œÿy°ÝPÆ_µ Ø7ŠîÐAÚOIwm¦sÀ¾x bµã¸¼VÛ?¸ÍéåúútúŒ$„›)%«¥©>Õ:Nd¢~á × ª^B½$ëu¬‘üú'}…´…kð!*dkÙªÁò·75í3ýÿ··‰4‡W=P[3è™ ëÀ$•´“†×ž’UÖ̈ÚüáƒÏ.Lol<þ5ØóõNÓÖf¡1ÀŽˆtÃ&ÔÞ}É£å¨tÐÃà¶ði½cZXkÊ Ý%iõÿñ Æôbºj#€? „*ÛÞûº†Yý÷Š«—¾ÆŸ™Wêïëµï/'ŸÙ”6µÍe§¡ã_CUÏ­ãÖtÇ»áá?>/»°ÿÇmÛŠSN´ifs ´ß¹`Û_ÌsÒ ã~Þ>ùt6:w¡¶æ]coïØŒÎ7 ÆfËN³1‰Í“PEZî¼vªÙ;t–.Ãgüß“ËÑE[×în¦6`¼4Í&°áíœPÄûÖÌ1“ì÷tzv)8ä>ð¸6Pþ¹ ôæS ÐŸ6*¥¢µÖ÷Iþˆét ¯iˆ}dcCß­¦øçG à“ÆP(Ç혋Gáh6ÓnJL¯ÝOñÇa׿ǻp ×^_zb{‚RÞÅ£97Gä)ô Žît˜ÇËQïj¶ó±S³8áܤ˜qƒQ¦þuWàʈöå‡Tœ¥Â#ÊüįëÐ:F‡lö®Œëê 1MP‹'ÔþcZ­ÆJj”Åÿ|gŽicž@¡7á<<89ŸºV‚;àüNà¾Zf“m„h¹?Ð76C‰ÚÀt‡ö®ÃMù&•å³À“íø]bžE;Ñ"ãeìmþƒ?†¹Åg¥¤à™¼t¼òóaî'9e‘TR}%ÛdÅd·dÿj£›ð!ð7/MùGþ’‹Îc ÞökžÊÏ8œ£GtˆÓ!ÆZðGzM¦ýõ‚Fcä‘—pPß²ÿ¬ÜóP÷ ¸8ø#«»è½ˆõá?*£ì(oæŽ ßï?ÚpYýû®ôWÙÍ-Àpû¹(Í«€â—ÁGþûW±m™ù¯ÒÀµm¢emÁ–ÇùwøŽrïOà-Õoô•ˆ7Wò‰§ë¸/x°Øôúe‹v–Ƙ{Xñm5€Z㺦»-BÓÀDm-ëµÓ\²F®Ë¸—ºÚÌ[í%ðžkQ-$q½ƒYUrh,îEQ¡±žXFÏ‚ÿÿñЗ2Ø“„Ǿ_>ó¾ÐßWXèòœî·°idn;þÓÉføj¸¥Á “]voûBf(ý¿_W|{Ìc;Xÿ8¶± ‚“Yìœ7cm3×€ÿˆûYåÌ`cñHÚgËŸÒt{Ïfsvºq);}gãÙ¹6"}i|¡Š8Ë!·¦u¡˜wRyšLA˜Ó5è¾-bOo'ÒcfDT •ÿÈú,·eé:Í$ÿúؼ)o[Ä~KÅ ›ãRZÚ ÿÇù¨5ÚÆ£tÀ½-`é¡­ å5 úù8p4&¬¤é”þãSëw·¹}ÐbÍÀd«iH I.êD?À×ÏÚ'â±@ë­@ùo8x©=ýl«;ËÛ‰èf¦×¨å·ð”])”S]jU6Š}\‹úsyè¨ÕtÎë­ÅÌX ¶ßo³™0(å`g4øã…EJ¡ÛÀå0ZÂðsêIçÌDCâ¿•›Çàw PêètÔ \ʇüÇxøÀ ¶=…úuáŸ8Ц u¦¼ðábú€Ç á7ÂO|ÒpÇà‘íòh“Ô ¹÷tºûƒ@eÁGùW¢¶Äksq÷"²@è I\öçoßÄ-8&à“@ÕçðLå0>§„¨ñ]çºM‹&äùìÊâ¿owŒSÊ7²W‘“±.h4¹ÍÕ$&üGôŽÈyôÓ.@èÇüÑÞ·¸½W¥5Ø1¢ü&K¥+g•iºxøLë@9Æm¥™áÊ`¤møäã< £¨Å°µÞ‹7Òæ ¬TZC9ü» i'w†Æï)ð5Ôtr5êófËsî%¹u6Xy8ÿŒßc¦•Œd˽‹uÑW×™ þh_ó eá/ä¹tQÖ¶àÞž@Ô ’M·ƒ?ÚÊq鬿é2Äj¦N ŒƒÑ³*š.tf»Æêz(´ë|H^ú…ÂzMt³|¡£Á]t­†÷’è99ÿÑü²ã²!oຘEUm»`ùwG;}ŒRJMöÿdRzæUÔÓL:]Æê)¤¹´»FÖÉèé­ZV^iy)N¨gÅ|üeòn®p*™Ö6c`ýn,:bÉo»&‘%ð ´š¶Ò¦Þ8/¡׫£yäŽ>’êpHÝ5)wß̧ë6§àêvÙGæÝÿËë¬/E°ƒ·}]œ­µÍå9§îc·¼©a;%ÿùQ…ÝJn!wŒûÀyõ™ùwÿòÍ6olK̺âÀ¹&&†©ã¾r.™ù¶YaVº1ÜÐe«úÏ•Âz܃¶ÙŠPÓ=h®5äsŽº±ý;½mrÛ׆¥0†Cq›óÒ)g‰÷€9*2xÿÄm¡ra  “Ôøk£ØøvE(â0 Í2[úy4̓R~C;¸ãÖÖ _ßRnxÚXàyöú'KÓé†WNBýâõöP0ä[‹FÒ *À§iœÂq´éZD1é•û©ü‰wÝÞPº­¾0[ˆš‘ü§ZÀü/·0”®â7Gù‚7™kÚ¼ÎÇvÝá|鿦ˆ<%LGé­½n«ƒsÎÐàW5ÍÕÁB轤](ár´Æ.šo }pÿ`cçðÇiº^+‰×ëô¯¶ ÿS™·f líÈÙy4-[ö€»l#óÛ}ðùGzsÌ6Å ïÇ=83?£á࢞TŒq+àë Ž }û'Ÿá5ø.%ÏŸ.¢~@àð:Ü{!âs«Øa(W¨ûÍ\‚o'wC›?âvRXIK*9Ìõ$¯,gÅ笼Šü˜ªµ±ýCÔøžsÛ&DÙSò46bå=¥# 1ŽñI¤Iu°®×Çüç—h2®ë{¾ÂáÀ†sÌ ŸÜïç«rxç½ðŽ9¡Ú›¥SÈL%ù'ù]7üG¶“3Ðê5å0%/ç°(ñï|'?ñýó?&ÙR¨å6Œ…¼Ü½yŠg€%»Àü"Ѽ™šGéãÍ€?ê+iuZµ+ôÍ*Œ£ÃœDÒðé`ùKŽúú:[1¢¡ÕòòcôiXN(à?¢€/–È`m¬‡å{¨üAøÿ&é¤mt%ø£'/ââRuËŸ¸Õï:ìß÷µÇ_ÁÓ3|L-`~U-žN×(Þxx.ÇKª'à†Á5Ö}ðÿÝy W„V¨i›ØjïøcŒÓþ#\t?°Üö$ì^ §Õá:–ÂìÓ)ZPjB-%µ“V–3šY~&b‡«b>&:iönîvª›vöGÌÑb‘|][xAšýñHÖh ýE;z›½hžx•4ŸÇUÑLRGSwúÅÕƒ ýOžŸŸó% –±ýº¯†“è_ò‡uv8¹Ý{nqSÐðÇ._^·¶[ÆëÞu^ø>oÿ 9kÌ«äÏ×7QMM÷÷¼oÛ™µf¾ÓýКœ_©lî -[….AMO³glgØœÛf³Ól4²¡Ü>߉æV´>h£+T#ò:0¢1°°‚ÝFÝ¡—ëA]7¢>6¥i?–É#ø•ÝL5cl~: 0¨÷R](üÀ©î”žßÐwP,Éá#†Û¿>YçôN-ŠGýý« ¹TÎ7þÜP¶œöJøà»Ôìß©½ 胞¹ŸÊß~Öm ߈: @-;¢?Z t;yTºðºì>KñÀvk¨¶E?úü#…ó› þ z4üÇK{|^žQOÞJ5©7ç#­2>§ý˜~?6‡VÛ‚<™~”3ÏT¥ítÜV†ÖÑE¨âœð~ŠõÈØSÆ's€ü_³û*pAF:`ƒÐÒµ?˜¿½ˆÙf;à“{·¾ãH<5íEÁu€ëãáüzy¯>ÅÁoý+xÀ{õ£6&¬ûí㘒\VòrI¨ét ðÔÿžôpÒ5(ˆW­ãyࣂhïlî¤ûÏ_Û†h½ƒ”WÉÃp”ª«ÔäÌò›®ÓøÞ%¨ò¾²‚ÛHeÙÌÅÀ“à¿6óˆ@þ« óþùµÃmN|â~Œ…|ÜoÓq.£¥6üJ]!o²DñÆÊ,Ä‹£{yо üÂF>Ç_J^Œ?öúºƒ?’à÷©Z®¹UîI+u´Ì’áZþ#½žÔöÚRNJ=ø‘9ð1y+G‘Ÿ9,vß`ç×s滑81¯€V¿Å©)9¿âY’Nh]&Od¨¾Ð…`_ã½–s²IGh7ùV×€?ƒ­‹B+·5ƒí?ïç 4aüwÕi%æíö.m•¯½Üú‡v ì@¼£3ÀheáŽ,\iü´¸,Ôâß½ããRôÆ&…gþûùÇ1§‰éaó`Fþ _Âjo¬&‚Êðimí ?ÔÉÛíÅñÂy4¥ ìL þ³Ü‚Âbž<²ú#óÿ$ÿÕE_|Ç öü£Ögæ•úûŠè\pJ¸wÝBæGs:pþàR_·¤[ÔíçðÊ÷y§›ÄvnZ¾7å£LTÉD4_»—f˜íl&šYnt7Ög•3“Çíèª-¬kH³ìÉ™ þæØÚv¢OÏݧ¡Š´Á‰êÖ¶_å*"ÿL–JÙ#ИG¨ ýÿ9^Ÿ›ÈvA(âå2ãÌt›‹öQš|‹¸Í1{ÂòkðQ¾A‘é¬Äl²ÎÉæ”€zÂÄá˜1ßòïV€Ê_ˆÙ°—S¾Z¯€öŒHoÜOíÿØï¶?ðßešKÝè¦íG‡Å»y4”½ðï`Ñát›¾öç\Ï4µ5œé 0NL71Á'GG‰ Ý·µá/P[¾”èÌŹ'æÓŸhÇàæÍà®ð:™~€3ÝtEû߃³(xUƒ’‚/ï’ï3Í<ÇÕåÔà«ñ4”ÚR":jÛBÔäƒù¯Êš-¶=½—µâäü‰ù1£„‹+Ç%¹4? Š@»µ¼…ÓƒK–£§¦ÂC­§‰ÔÚDu¯„ˆ7ÒÍe»2Ç®äíàÅëÔ\“НrCx†5Ò@IÙÏ…¤¼¬B) ^³ _w𯜗}àüÚG£µ(Pü.ßãà­œH’Àì–¤U{ëC}=_DRKNÂ9ÁU;y ÿÁù1"²ºÓCä¿rЫ›çŸoãÊà¯Ô2XúJ.Î!ÃÀDὫjÁk¹•´•=œcÁƒ=A]†óÌÈH!Öï³þ·ÐÄkr˜{ÉXi XJb{s5½¾ ]%{¹­<cvû?ë¯VÀ$“d¼!Xþ«C¾®Î<ΪŒqU*?†Üç¦ÐAp5}¡óOÂsùÏAïÞL‹éD0[Ô6Œ4–ž£!væ»x3¹î ÊÌ;i9’êÇ•ƒ’Zßjy€ïfà»5ˆöTÃÃ=ìÖúƒ”ÒkäC_,Aï/ƒ* ¾ÿ|„3È<ƒBûž>9ïµñy‹äôÆ;¿‡3Z©þU·Ùü÷e d}#G´–Ô€O¸<;wL£²ïFáq§“iÈŸXL’éÞ@ðÇd¹)?ê<¯%¼?½(^.øÜ’ÄÛ!¤q$…ÆæÞ˜I ã`&¦ÿŸì¼áKàDx7îøê8Qþ%„sŽ9Ü‹n SÆ9Åe½¯[þcªûÒyîû¼õ»Ï}÷à?:”Ö0×]ÏÝRïc› n47tw›þs¥·±¹#müäòïÿˆçtrà ³Ù\vŠEÊç 0neû(¿zp*Ð/;ü‡¥¢v#4ô:ªMÙüûBl;”çŸÏ6l ô@K‹è FœÄÀ«ÇÀãDð™é:ø#M´×>YÂNèì±6,ņ^žOqÁ;§PëßPÒ|,’³+#­¡)‚ܬŸˆ¸ÂíOç[]€Ôè–­O)á?Rò·§câ¡ä߉ådžC娜-ílþH¬èNj7=yàœølôÀÞ€¬@W©/”f êÀþ»Ý+áhþ„Ž]…¿ í¹Å–û ÿèï 5íàSA¥Ðzû0û²`N?¡kT•z™æÔcK ßHDšKõÑçí}ðG¯®¿*g¶Â< àtÀó©Tý‘ûr%`{V”° œÄÔ<´¬¿ý¦Ò(øšÔÍDùÇý«Ñn-Û ”OñQðÏøŸCT€poI/«¥¾Þ”ìr n¡¨¬áÀû\|€ûÁ[ æœP ÓCôË9ç®IÅ¡+ñK&ÙJg“\ÉVÞ'_ê—ÚG}^t9ÉÙ%–ôF òâu§øx>?Fd)w^ˆõW‘¡R ÝòCµ÷F»#ãvÕùG™5Õ{­¯´üC¸ˆm(]R^?>:ÿÞÖ}/Þ [Ÿ¸ ½P>àä.2SÚËa®"‰¼ešA_ÊyÝ(—¸µDÓpEƒ0>£E÷qnùŽ·ËõÀ×ÙJ±àÊÎRQÿs'ÊÂ_KtK6–éÒY«é‰•ß~ä¾´Óšº…߀?Vs$z¾†ù·è]¼ÉÎ÷:¥L£»Z§Š\’nàÇV:EŽË\°å4= ¿•Úþ´NÓt’MOíûòR. V,i‹[¿ÛÑm„Jí›;YåTšÍ‹¡Ãà8’éQY†òLÑ<Ú\ˆ?ÛWýmZþ#?¦<ôØ~Ëã©a°ü%-Í/à¡þs«‰(©Öñz)fÉɪ;´‹õöÃ}dðêiiy«kQºhpcO §v)T±?#Ûÿ“õW»}霿OçùÓWý3Ï…ýû2Χ²{Ê-eªšSN)DYþÈ þ˜é†…¶ÿ<ÿqÉwÆÜ´MUI)=}gNºIÜYÎA3ÉV73Ì|׆2ÛÈ®Û&w£í¶æ{-aïÚN×ÃÌzj¬íeÃPœPÞ¿Ú þ¨oÃ@Qn ¤åÝ é™ÍawR¨zÿy%uáØTvu(â4£ÌBŒžû4 óy=ƒ–® ”¿M†;“B±$¦‹Vé+Zmƒ>Ù7·|ƒ¢Óì=›‹A{²•h:õƒ~>¼û .¤-…&I1LÎOî‚òô¢>äb|Á6§¬ô T×V^döx=Gÿ¤´À×ùÐÛelÞ¿ŠîÄ$€+ÊH±á¶zb+£7nQ¢Á"õ9¯EK¸˜ëKg^­¥]6¿‰ðR6q~5­Á0Ï1FjÐ):š\û¢6m6#ÍkÌþfP±¿Ò<8»áh‹3ö‰-Gý?ÀÓ|•Í ¾Ë£x,œULž •ݾãÀ±òÜßËNñúÀùiá?f¢¿ÚÂÏ-¤áæ•òìã¡n«ÀZƒxp‡À‹o€ »¡ÿâ’V¶K{ U  s~)-þ¼‰ÑÑš[ÐcסyÓP»¬¿ò¯ßMX5 ìq‹7Ñ+ZÌ $,æÕ’J#j'ðGD¹ÿ]Ö_]äyh¾œ 5Éä®{/bG÷ ´Àj:‰2­â¶ƒãÈ `sN/Cuõ°¯¿<æ&Ò@vqQþÌy‡7øó§@C‡ ñü¼³ÍÊYùÛóðdè”#<\¦IÔ­ŒÄô6i½!‡t‰Ä•nSs/ÿ}5¸¹|“JF~hK½‹uÂ×Ð&/Ë‚¿Á¡Æç˜à‰ÖšIÛË* %tÄË5‡¹/-´™Ž@ËÖ‡ƒ ƒ$à'´ ˜÷_ëLsŸS ^Bƒé/ŽqVXŠèJ}¬ušœ’yΛ¨õ /žî‚ÿ˜¿O…ú˜Ã¥ø •°õmñwüñ»ó›QzkaL=¥Öv9¿•Ò^m¸Á(áY¬yu™~ Ü,‹%-Z3¢‘…ŸQ^¸îH<…:¿…לڦ“Í,)Mõ®ÔòÞH/‹d¿dÒÚS›{ç¼ûš×«¢-å•^“ï5³TÔðpò>ZF7m\ŽÈÅÿ'÷¯ŽùR9¯=¼žûî_òÇß§ {Ð-f*›ãŽ_ìñ•s3º¥Ýáî ç…ïøgEg§¹oë£ÑK›Õ\v3¸{àÂf„ÙˆŸ—§ë¦y 5¿8ÐK9hº=g¿r~u¿ oh9iÚç6ÌUî?¯5N4·š}H[áÕËÂÁ.…²© ÕPÃno¬JEÀÏ;Ù°Ö±KC/—™cÆÃ!¼JÏ» TW'ðÇ=z ÷ž7ó>|ÂH{â“uç´ÓÌÃëSA&RJFgÁšàŽKòy¸]‡Wƒ?f@‹yôÜýT¶%nºA1SÖMïÑ3¡T…x:á"Úÿ-0ü&>íÊ^‰~°œãTÎWn ô&Ô()ú᥽e«ƒnÓHàkAEªàKÀŽÕhÉ©4®g‡-ôÁýƒCu¦;<àeêˆúÜ¥#àï)-Zí1J»Â,7/x;·çâPi“hu ð´³3g°•“_sÁûí`ðu¨ñ4ÐsãQ›ž”x]$?Gáj@÷µ¼Ž£í‡À›Œ¥Ö`‘éÔÔÄûÇú«1nUÛú""o/ûÔ‡WÊ j(™e¾ü¢à?Npi(þ¼íÂß!vCðSWNMCí°5~åÜ·IÁ“)yñ}(üG´XŸA¶ðRhq…ö=§ø2–Ÿ ðŸp ý¸5«æu׆àg¶¸ï,r7çð[ÆÈd©Ãid9±·E#zõÄ•þÒL6"^ žÀ·Àý B~ ¸!ò'6´™QƒÝ´J³.öŽ”.²™,ÖìzFê\ðÝ!ÝŠOìÁxvàt”4üí¥ßÅZåûÕ™@_pUÿɈU^$¬“ºjµžL”‰ZV¯J¥5tˆÜ‚é 3ÀmÙ¿ ½4¸ÿ·ÓßÅ›ï,tPè–±t­;ŸóÊÝ O´ŒŽ’ ðÖÿÁ ’3rWhùZQXn̳Pï•TÜv öü£«ÓÇ„!>˾†·ÛqüT {¿h;Í©)5HfjðGlm«;e˜E¼2HsJk 6,CwlžùŸx{œš¦µÍJ“© Æ/Ó- ¦ˆþ]#éôšÑ6Þï$3/úß×kßR§ª{Þm`Ò›•NaDÙä«íÆs»ƒÜÎÏ\¿ë9[Í)Œð¢@¹56ƒyâFqO;wMw[zýøãóίõÙë`þYÐù})*Ͱl>g´‹¾¤éf·™f¯Úx¡Ü¾Ú·‘}E›€mEà9gQ.GÑÁW7Û€Œá¨Õ³ÉìSó±;9Á¯ŸÌ3ߥ …ù¼Œ|ð-¡–î黀?ü³õ(üQtêk²Î‰¦ðÕãìkøÌ<È‘·,ý,ÎÉGà–^ú×è÷fR|ò}rÿù·”n3ê Dï¥Ó>¡+ýÄË Ò³ufBbg‚ƒXþ¬hËôühNj7> ¥Âgwƒ¿aƒ•±ïR1°HEhûÅð#÷Áó€úcàñŽÛJæÑ¢ wÆ›vè…ç`‹ ŽÀA9ðÞô+­6‹LXYËݸÏÆÏF¦=Ð y?Èkù¯ ,}¹.g€³šVØ?^‚;ƒ-}\’Oò^| ÿ±ŒFSÄN­Íîíñ†¹EìDøÿ“¢5Àrÿú«ýTŒp;),+¤‘n—oä·‘Z²Škp\.ƒ6mÆëÇ9hÉ?öÞqîÚT~fò)”¾¢di$“ìååò•ÆÐ–zVƒÀpÕä5X3—æ«P÷[жY¨et·†ØÿñÔ6òß;G ÇqGðW|àÕ:iαd¤.Õ/á?®i'‰*CáÖò÷Îã ê2‹ƒ¯cÙšïÅ«cÓÃOl§õûWé,O”µÒJNÂÄöfi2Ý&«t| >Š®ë¸ø£ üÂx¤d’ü‘ý]¬'¾ÎÎ,̃üü|Åsþ4 vk¬³™Íy7¦{Ó¹lÙʦ›™ç>u>´'àã—gïRIZ8¥>ÈŽ±;m~gŽëÏ6Ñ\4Ãíqë…2ÿÕn'²ÛÀÞr-#u’ÍU) õ²»1¿—ÃÓOàö†Yüép¾¯Í\3üñ'¸hI`=ðvè}ÿ~î èÛðl§m”t„½ôÉ:pêS<b #;;Ï"OD7l1´ËÏÇh Eâ­”›v‚ýÂÑ9÷Sw+O»“ ìkS÷Àþó¶e—ääÏÔØÿqšÒÀAl¥æô“-éLøH¬$NF7>$} 6ìJJ¬6¼ÖêÎO ÕÇGÃòIºBwк{€úãñÙ—lñ>™êî¬7ƒðªW4<~ŽŽÂä@}ƒÐf=i™Ùb™ûp)ž†Výº!²wl*÷þØç«k¶Ø‘ƒq3öŸº=šŠSoÊÃ3¸ &F…¾6XŽ‹fž¾žOL7äÞÓõðcègÊÊû Ù‹‚];Bë—ågÜ^JËvi þH#g¸#øc>×甜þ£;ïç^œ ü?#D#ºg w› góE8‹5pm9ž¤Ó·øc3tw9jš›ÛBÛæ´Ç€…»À!om5c„fEDysÀŒ‡áIð2KȾWpªæÏ5*D¯l”z‹}óÉ:¿ñ òxåCós¼Ètßæ¦ß¡“ËóMZ@)=i ZVQYŠôÉç;ÜQôõúµíK×lÊŽqžó~×ã<³l'8¯"wêÞÄÖúèùQ×ÍOÑx#UF¹b¦\´mà.PW¾÷0ˆñšŽÑ 0Êð›úNZmó~03@Kg øã Ø»?U$ÿ~ÎZàÅðCÉ 4¯šæ&"tó¯\ˆûÐ Z„:D¡#ðå¡"þm/‹Ù½âðø€Fœœ×Cµw¦Ìø¿ÿD©‰àñ*|ø¹“-ÇBËÎ@Ìñà­4ÃÄq/†ˆ7ÙÍo‡{Ž‹÷ìàZ@Â6Ð…ùw–BЕUôŽä“ëÜnd&Wçpœ X_‘Ïð.Bþqþàç©ýJ<Jâ¹\GÍ×ñWøî(¯FÕvúTËS.$_È0NÅIù.ïE]þàŠ”Ÿr¹KÞ÷ îKÛ컇*Ãôæ(ü y¥4ã$2YÂ<ÔW:O®pU”pT}Z^ÉVv!Þ!Œ°$¶Ó{ñ†Øbœ#a#ÔýT°åy >êÿQV¢{+5½Þ»zV"àgþýÍx 8i'oäãœVróC[å]¬?}%ÅŒz‰J³Ãõ3‹<”QúVÊÈH™¦Mt XhšŽÑáR@ÇiVÝËø¸™ÜšãCË, vïx¶3È=G_ò:ø…0òÈ®ãÜzNÃ×]@è!Í ÔóRèJ°ÑbÝÄ…4,|L/žõp’ÚÛn¶p°çç=MèšX˜ûg0ï=©èeôîJWøˆzNÚƒ1VkR­­‘t¤l•ÃBð3ãd(½¡àÞ ž×ÛźÚ)o*Ùôp»M¡p:P$ï’WHk¡¥Ç¢¶¿x3¼Gú“÷»V“N`½|F2jð‡‡QuÝ&毸b¨î–ÿ·¯Ë¾´ÎßyËùýkÿ‘ØùÓií>wk˜f¾ãW'»}?»Åܶn;÷™së3×_½ôÝ3—m}(ù$tÕ65ÏÜïá?n™ö¶o®¹Ñ>3{$ëq3Úf+@Ù¥åv¯Mï\rýÏ[£Û\vµHn(ó—ì‡ÿèoƒè$yꆘ3ÞPM»úa8%ð¬3üÇSš=“íPŸ¶üú@èÁù@°mG_B‘ ttB&N‘% ÿ‘Ò™ ^8ޱí_Ñ3Ž~¤´tÛæþ¯ ¢|¨œ˜RVš‰DÏÜ,Ÿˆ¸ÝM÷ifÊnê &ê ëLI%¿syhòùô(ú(îz´¤¢¶…³ÿ#±¬ó£› ÿ ø1CàüÃÛÖŸ#ý:5åûpÀRáù­£Çt ºj)ÞI:`«™È(åT§¥©×Á<íõ¯,‹6ÊBÌÛŽ˜[æ)¯¯È½h6jÛ ŸwÔº¨û‡ò·/òe2‡ÁŽé0c.N ´)Æüê¼1´rg”¬ _å£|›Óm—ÃÍ¥~˜½Ë¨‰ýµß#ÝVˆ÷Ç{À-9 4Æ‘Àú«R:¿„n„÷ßm*#s¹{(ç~nÄoÏ?R;2DŸ9m20d2 Ú~ÅÁë8½Ä•û¼Mâktí¦Û4Ž\âF’]üg³”[Ønø+c%±ÿ¼¯ûÚþвŸ¡šðTÃQß´2VfÉÎ/SuüÇ1½ µ{ƒ‡J™†žIÎKù5ZtlàŽjdÛü½x­m¸¶å´jp?xç«Î(ŽbQ|h <˜ 4C˜"ÞV¤É5µ.•^º1’i §åJœOjè(™Hįà•Û×xgÅw£p»ÓÎô‚»ýsئáì^ü0ݵ›lÁŸÚ^[ëïÞ\ï•æõzkK©éyz\ÿ¥Æçn$Pœlj¾G9¬?ïõÿÚ×ï õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run005/bold_25mm.nii.gz000066400000000000000000003005421323370031300254220ustar00rootroot00000000000000‹¤½wtWÅöÿ½ç|>g&„ô^I$”½wBï½IGš‚tADz—Ž ¢(`Cñ"öнëUìýÚ˵\ûóšÜï÷ùýñ¬õ[ë!+ää|Ι²gï÷¼÷ž=“±Fþ/þÍ“¨X‰åk‰ýú?ÿE%I®|PäÉÎÿû]Øéÿ|îö®<ѯÿ¯ÚºéÛ¼aùÿM»þÿýûß~ü·MK»ˆ|ðHå÷“ÿï“þ¾ÿçûäÿùÏÿûÏßûÿ^ùïâÒÆú3IúʲM.’©&å²^æHwI•8)“‘æs®ã¹¿N›¿äSž‰•‡e¬ì‘Î&CªËIe^”›L&åt•¥”ϸ_*IÓƒwc¹þQ˜¦’Ìõz™&Ǥå'J©k¦š’Å'gä¹KÖp]MÚI— ¹ÎÝD9œ ƒõA&¥¤ ‚,“O+>0OÊMòžÉ¢¤TÓ4²QrƒdÚü§LEòL2í™ož fFbL:ål¥æ|³«ÍÒ…ºÆÉé@osäf9*Çiuk~>#5Í ©-Md¨y8|!ø]J YŒ…«hW+ù[&÷™[M¡4“ó²T†Òç\ú3ZÈF¤’-%Hì ¤PW{jº[fH sL*¤ß­dÔ—Þ¼[[ÚJsJoÆý$>øÛ¼Êogä@ôU[bï¶d ¤™z®‰û!O-ëìeÁÓred•´ï¥£Œ’•Ò‹Ÿä¹r›0jå ù‰ßGKgê¹™v ¡®:¦¿Ô¥Ÿuä]™ŠÌ_•—¤Ô¤5#¢_†—Ûåa9+mmè&Ø1ö!9jvÙœ˜—Üú°<˜dfÇl¶[]sׂ>¬ ¾äG·íiõ$Th.‘FÔZ,;уúôh;}.¡ö†ÒYvFvCiã³Ô:Z®§w3ý"Ù±ï…[Â¥r@ƺÇíýî{»N¾‘§Ü:—sÜ“ ³Ô pí××5“ìb;ÞÝaŸ4µe…9l?ŸUÒXºÉJStççlt8G–SWmÆâ2úv íÉ“Ò_î—[¹+Û"y2lfóÐÄβÏ}bÿ´]ÝJé#oÛw“{Çö£§ì9W× qkèÙs‘—l’s‘Ú¼[~ŒÜô¥G¥2X6H²©I‰%èMw´ 5IÃFÆH¢™Šæe¢YåŒloî¦RÒh®.á~†ìuÁªè4ô0AæÊ7×õ@Òd…œŠn‹C³“°»¨YÁ˜ÅqËH¦žDÊ©‰4?¦‰<ÕX.•—iA†¤c'©ô5KëJà³ ¾-ogó³˜Oã¹›ËUWÉÜÍD6)RÈó¾üÜOç‰Dž(¢¦¬´:÷êh[ªó2OåPjWiZ_5ù§j ïJMäÉ©%by&ƒ¶¦cÉÕiU©d*"$ðL)¥zkOàg/îgóf"-©É»¹<_z ùNãyßêT­Ó_gò3³ªöÎr‹– |Z9l‘áÒ’OâxOó×Õ)g#:ô;”Âý'éãRiVÄÉ2Ùü^ÅSæ y N¢ŽÞ}A Á«êUxÕÕtä~¬,“YhP;®ã°µ<3Ùô¥ÞdîíÁ¶Wê8vöA[ð*ƒ2o öÉÁ¶ ›ëƒRb¼Š¯žÇ:Þ2¹<ŸaúD–JAà¥53"ù‘ã¯g›ç‚‘ZÆ÷ñJ46ݬ¢ý{@‘ãàÕTl«%ò¾Þß #iñn4 ÌœeÜZÊóLøFð3#[Žm 4-Ãåhec©mVwšƒ¦ºý–1ûÏ-. ÷k(;“1HËbÍêi'§±Ð,sœÑé‹]µCoëqU®ÖÝ–÷Z`˧å7ó¦âÕ­²1úœ­oo²G(1ËÔp ÜoÁLôôRÛ3xV¶EÖñΟØÈhF`8Õ–yf>å5—‹yãœ|ÁïÃèÙ0zÕ‹‘l/Ŧ#PŒÜ'“yó)zÙ}é$#£?†3ía3¹GºÙ¿m;ÒÞ#{ÍVûƒÛë¶„m‚‰æHÌðªÌ53×ËÅÁ÷‘Ôè² µ­!&ßÌ¡cèÿnZ^D‰›ù.FNÍçéY²hŠ@¾{ä!l¶3Ï o³‡k‹ä qÏØÝ/v­ü*o»¥®ZÌýî)I0W¸žn›á›;Ì ðêw»}ÙÈts‡ýgø8R-§ÿL­ ™ˆ¬shS3,¨’èÌèÖ§%£Ü²•×W$ólXÓ&™–Hæ {ßVwÜ2®_³YnûÔö¡Ý'íCÌýÜ|pï¹ÈkÖ¹¤HmÐ`·˜èMAoʯ~ì’Ðót1ˆØƒ™¢%}Δ«hÑÈ8 Ý+ã^KF;ó³YOÅc [epMt•¾ÍvÓ]7ä—†}Ý]Â3)hH5´§‰–“G†ð Ï×`xBq& ]™Þ´ñ³µ¤+šeêócrÄ[cØ“@Y•â°¥†ZJ¬>ßT<§óI¥ñI’âaŽ~Çò¶G@Bþ*÷|¹ž?øë,ÞLStɤM©Š'qŠ„•˜ã±«„'bÁTzŸÎÿÕx&zñT_µ±]jSŠoC5®Ó韯Í) ¦jÛ«óí{—M ¿†Â,ÂP}[š0K]Œ¶¥QW}éb>æ:’ÖH’ùüKï?€Åí^&‘2OË ó\ÏuuFîßXôt•V#ySJM[jŠ¥íÿæéF\'0FsáQå´$žRJàW“tf8ƒ¶ÝÍhær¿Bj¹f-L”Á¤ 7Øx캦2¼J§®ÌsrÜ ýͨÈ) ¼$"fV$>Rd<2/0/##Öø[#›°Ü+)>£| ŸÊÏzÈé0Vsy¸Žì•WÀØÛ^™Œ0φÿ ~e–ë^M2#ÃH¸#-žÜk6Ò³Nò Ìkì!“ë ¯véx÷oDÌ Ð©TîIJòá&­°¨žüß©öA:µ©½¶ÜŒRÌWæ%dÿ”l‰¾iÛØûí>t½Ð並ð«IØÔBÛ x^®Š\Fÿo†‚í=)³ ýðxÕ › ^ý &Œäþ`f’¾¼×]šš f¯šèÓÌÉ}hï»Ê¯ZȨèçáÅöʰ1Òïbÿ²­moû \k6ÛÝB·3l´4{cfØU®³ëf6ËÂà¯HfteÐþ.• L=s1¥\Œ½m‘SH²ÿw`´=omG_*н¡\?Ș÷‡Á?Á\Õvì ÛÏÃÕá,Å«—í½î»Š9í}7ÉýÛÝꞀ¥¬vƒÝ^;Ëõ‡ËN²+ìDw›=oêQëûVø°,¤ƒd“© †´‚9õÆ"WSk(±™NÂ>kòÉ`úv5÷—ƒ.—È3aC[Ml#'Ü{6ÁUÀ£ÚÊ»6ÍíwçmOZw'}/s£¹ßF3Ìðp!hÕV˜)ÁÝf‹iÀõ°¶qò’î"ãA‰¥XF½ ×Á.Å?î@É‹¤ž¹QÏ@ì¶#ÖyÙÿßžY¹5ïÞ¿rÁË´à¸l¾gØ{ñ‡1Cä¸ú.ˆLc<ÚîÁ+28r9ãQÍtáÓù”Õƒ–N§GM±®é ã³ò5­£þà?ø¼O|jµS¶ño ¢¯ò{.ö<)úux‘=¶`¦è ÛhoGÛ‡å:³Úƒoì»ÑÓ¥1ƒì2P³½¹G Ñäèú ïÏ•ñ&‡¹¦{Í;Ϫ¸žv”ѳÆôê5?ï •–òŸôc^8‡”Fðùžð”ý~5yb„{ÉÞí~·ëáî_¸9ÎÆq£/—»¡n«âšÓð«u\$°éYæ”}'| äk†<¯4ÙÁdä8‹¾æ2¯tÄöÊѰàH)cWÁXŸ¤–Î`Y)xõfØÊ¦˜ÆÈð°ûÌÆ‚W+Ðgð«î][Á˜ž¶ÏÀ¯†Á»ÚÊ øƒñÎFr­}òGd{0Då6ì àzÍÁ”Q Õ%ŒbSF~=#ÿ&óFÝ”V5çSï-5†ùV€°±èðvÙl‰ŽRœY&ÛÝr׫OžžŒ.ŠTËl ^-¤žXõãfÒÏZj³Åðà‘vŽÚéæý¼™®ø•§O'*OÊÒŸ‰ÜKV|ˆU¿¯ŒûÞ5fQCýÂ~a¦®¡|Ïß-¤¼8ÚœÁUuàÄñ^®"T’2žlÅŽJÞ“„¶{ÏÐcJºÚ±ÓÚÒ¨7U±ÈãO¦zeqêÅ–Vù€yžùÓ—êŠ~ÈùÌT?4^ýÎD½öRÉä³Tå<#°“ë`¥Û õŒUÏ×—ŽæõݪÁNâA«/A™VW™\ß!ãŒ1Gá<ñXGÄ4Äjªƒ”°ãØU=(’oð,›¨Gº™Ñ½•Zô>Ÿg:IyÐóXwS0-ˆ öÁ¯ªÉ~©k. ’Õ¿{ËdQJ†ÉuuÜŸÁDÆv©í<)}ÀåfH¹=Þû"jìNͳärt±9í9R9÷sô·<$TS™TºrœÔ£¼._±¯+’õéjêo&*¿JRÏ)SíÕ)CIÑ“S¦åq2™kË“u4òÃW­n¨Ò©†D»Pw e]yŠRYŠ“™êõ¥*›ËиZŠâ¡çl¹Üñ©;»ý÷ÏÕAúÐwï}ÖÁ—x[ñ-» +ùVÞ×G;@>¦}ð{¹Ú¤)¿ú1¼@ãóuñ:º˜vÊK ±ìÞà•‡¯BΧÐh߇ŽàÕ03‘2³ñ&Õw©ïÝV2‚†f‚ŽÃ-A 9Øx¯Úǯ&ÉáþGæ,mØf2ü¨‚WWK,FÄLŠü¦%rºy3‰1^Ö«éaS³œ27k\x4xÕj 7¢CסQ%”ÿ<-:‹õ£iæÅð­àߌaôp®1áZžn)9fpðŽyÐ#—_`^ù==™ƒXD Õ‰îh_>Œ¾%ä‰b³_cßý©y c6û%”Õž™´)¶§D‚wÍË´åxõ…-´wØkiQ®Éw%î«`’]aK‚dTd#ïýŽý]À8õà«–¹©w Ó䟰)Еö –Ûø¬7Úø'õª.¾¿ª ½ç5ÊT_&¯FØ a[˜OWû«Í±Cí)üÁõv¥»°0¸Õ ‰n¸–®>í"ø•‹Î Z"“9ÌS øìMèWMÙˆ‡]BmkÀ©Ú´ÎÇÂ_E¾¹ô¢•< Äló (7”–¯µ_ƒW—ÂG'¸×ìY÷µ]¥?ç&ãîsÓ‹n€[fgº±æ.3Çn°#ñßd6œmNØÂǯúÈJøÕDE£Áhý*ö—S‹÷RRÓ0ê,íÄlØ9½–Ø\˜~…ì¤Î×Ú­dÜÞ³%ðÉ·ñ;Émöa8mp¬¡<ù§—ˆ?X€fF¢×ƒ°ÏšÔuPbL!cWD ½Ñ‚vÌ")´¢“üÊ8ø˜’_³iψ'b Íéu7ÆËÛñFY\ ^ynr¹\æf»¶Ê{¶ËÑùÑþê'–`k Ï/ò”ç©W–OùßQ§ÿ4¥—ç‡DˆÇiÜ3’~iÄÝã@#Q¨± LeO9gʧo²•w ÒØx"÷ ù­Hýµ$®k)³‰STKQŒJV~•ªö§ˆUmª¦ÏùúÒA¨õi½?è×?ÓÑ´LÞ‹á uk ˜ãñ°›Fè}Ì*‡z “«+f)S©ôr}»b3ÓÔßô²/öun“¢œj ,¶£ú}ÅR NÕQ1ÇÇCƒ<¾žÓ7*à9±ø2šeƒñåt„%—¢!žëz~UfÚ*–É·<]®Ø¾ŠÑ}­ö˜ÝÎ6Ý Q†yµ’åâcéí$/¨a*¦Ýt BüAÏ—®Á³šü¢èþ>üj¯Ü­x•jÆEvH!˜V ëœÉŽä+§ºØ¼ŒŽd/Ç-p¨B³ˆ1²£—Ó±§r¤t+}?">ê¹{7wpÕ@×ß¾DïÚc…“MF¸ûh—œ7[MsZù½™ c1±Û%Ød5ô¥'9`£çcƒWyæt¶5÷۠률L)5wà·fè]O8êæó&(Gß±eö{”¹¹Ž)r­ÜwÁ ÞºÒþb’Iøƒ-ñ–Ú€I—«GÙárf‡Öð¸9`Ñ÷´bm^ù'ÆÐ3 ?Ÿ>Á3ýå%F±-zѼú=œfo›Ëém¿µYv‚½KŽ™ì`w¯Û6 ¦™Y1¥v/þ`S8â¡ '*ÑÕAú‹—^Íaœ'ÑçM ~!–ŒÞ”k|®õtä^/zø8̦£u/²€Žî ¯±¿„»ð°wÉp÷н×}e/‡S½å.p¿¸sî xüjðjµç&˜›Ì»ÌŽwGíë¦LÖ˜#öùð£×‰²¯¯Fsµ eküªúg1Ât]jõþƒÑm^©…‡um’iÁh_ï¾€;µÅ(Ûlw{ßvós‡}Ú5rðëWç­q ‘ZŒénù+r8èƒ&ÕRИš`A ä<¹7g$}ü¼­|Œd¼å6¥ Íi¡×ÿ¦°Ý>°)o±[eG°?:I`9x5ÓµW;_'ÏGWD{*þÔ ¢ƒ‰Ê›ÆÑÂ<õÇJèå3Œ¤÷ÿÉeŒpk€'«•¬Ñ5òñDÕ{DÈW^—Î{™|^‰RË3‡²u}0Kßð~Y¿Uר{Mµ×êj…Þ#LÔûIÊÏ<"ŪoY³Š Å)Že-±ZVÉÑøU†z¤‰U1´¦ô!C‘®P£›•¾ar¬©XMýÇ4õC+Q-Q¯S´ÿÙUñ÷øHÁ+¿¾ÐŒ«Iè£÷£“ wßÒU°¥ˆùX1íqdx\úÏ;ï’v<³Ïxî F5'yöWŠoÒ«öØUýëj¨ ×Á Î"/ßã~xJ3Ìx{än¹V6p×¢]=ƒj¦¯®ÜVUãÛ#ëQidÆ)ÆÏ'_˜#´ô~㥕e:F¶KiàeÔŒÀ¬m¼”g™Ûƒñ‘Ÿ•i®Çªë›Ku©;H/›?…ôä5÷¤·»á…æŒÆ¢û›çÂß µ%¼9ļ½œgšƒ!ƒ™¦×_a'³aè<3$X^e‚^Ýákµ”_µ ¦K&¶ÞÍöX5ñë‚Mùxl;el½°¨ø˜¯ro›Üý—­eïµ×ÀšÚ®‰ #ã)q½5Á‹rydï¦+辘»RÖ\YªóÖãÓÌ p{ê9Zõ§ôÀô£…hâÛp±ŒÞëH8‡{¢ÿ GÛÃaf‹öwÛÂαgå¨9lû¸ÜÖ°Qp~ÕÉ^ãš¹úær8ø1’^µFn“d¬É0³èÁ Ê^3ô¹5ÔWL¿Êñ;àr1cÜŒùm2½?,÷Óæô¦2j ’¿v²¿3r=äv÷ŽMp Ýå´ð+›ì»ÏÁ«6r£}Ò•¹Qn)%½yU×ëaó»ÄE·½t½ýüýj¦=óë H¼%Ú“^.òñSt;é6e„{«?Ò¼êÉ8Åb{äÊ`KôW/¯.su…ÿJ¹.Ú~•^µ>¸mð1™ZÔ6‚žx>V´{äHÕèùeòú•®,$CÙÉyPò꺾ÞL1ij¤zêO¥«_UÆÏ\E¬ltįÅx¾Q¤QöXÀ}ÁqÔS¦¾d¢¢[CZ‘Z…Wí}Œ«u‹÷ŽüêDžæaÄ*ƒK­Z£ŒÓ6di{Òоke'òôí¨‹Õ^Äx{†W_Zš/)·ºæMe™ïàìñ”úãý(øåå 0oÉi]³ëãhˆU&é»ßI'f2Ï‹±¢>¦¾¶ù J?E|]-¤ÀÌ2£Ô£=#—ÂtÖ#ŸÕ¤è¥2üGp1xµ7Èæ>6a†~½/Q>7;Á½×çÒi¦kd«”~Ì~‘¡‘_‚\ã¹ådót0+ò‹êÀ>wG3Ÿz[ƒ#×cï“ÑbŸu¼:ª9ЀsÉ•KwøÕCÁ¯ºÞ´ ä›. ½$Ûtî3W›ÆèãàË\y 7ï ”Kh#Ò.Q¨xUM•6æz]Ñëͬ8„Ï»!åº`õøŒ„;à“çÍk”¸WFß·åö!{5ZZb²\-÷g0‰l° Á“²2â×¢¦V¶ŒïNYˆn7Á6§ÊcHúzæ-ä}@¿þÔS1Zù¬r8˜ö&<¢661ú]8À_=,aáWiüj‰³7ìœ3ÝbÆÛ­ØuØÝŽà¯È÷‘uAsPr’Ì7yf¶âmÖ¶_ýàMôª.­ò¾Ðô¯ kh.Àx†¢cÏÀpFPó†ð˜}#<^D;ºóöq÷‚] €W3Ýî~÷#ºÔuu[ít7ÔÜf&ÚåvŠ»0Fuʾ> 2”QóSŒ¥†Ùh]®x‰×Ò•þvàU=ì`hr/ÈÝAýÁ9òQØÂ¾ƒœ»ÊY𪚫. /mxõíí3óÀ«&®/~bcy5ò†µ.¼* ¥6z¼ÊÓ9g—T‡_5£¶¡”µúZêœØ™–OEo3yª ¿ T®áG£ªÿl•µÁ&ðÊ[à<¹Ñ-uítímµ\ÍöÓ¸t©fÃÔVÿÎ{Ô£”#¥Q[ùI™‘ÏS˜Ï8¶P$ð1ʬ©¹ÔªŠ¼ûø²ÏºŠÑ(yÍ7ˆÕ¾ê©y4È`Ôr|&NmjªQG*¨B%iÎUœJÔXY¬Ún¼zriŠj1Š/)¼Ÿ¢+…Iê'f©—^¿ŠSÜ)Ç"*ó2™Lþ$Pg¦bæó¯òyËiæBªú·ñÚÎ8ÍóòœÈ´ƒÑôþu#8ý ´ÍGüÀ2¬i¥xµL:˜ß°Ðl>¹•¹Öï}´“°¨oä6“ ñ¨shÑåWM±œ:šsUqýæ‘8Žz&à–++§4ÅŒT¯ø¬<+¹R{ÞFƉ¦‡âÿýÁAR°#ð~è1)7‚ÅÉÌa9-oÏS LÃÈf) 2)ÿ{?˜aüósÍ-Á°HŒr¿eðÇ"ðÊ3ò¶àÕ`æÁ†hR.Ú|5hV—o†_Õ0"­RéfžŸ¾Õ D¼>32\G(µg˜0œRÄ:Jù'½ÉB§zÑrÞ# f©ÆáÏàƒešƒhHOé£3»Ç«Rõ!ÛRg ɧ>Ÿ¬É?x·ÝtjïêᎂÃl³'Íý2222¦3Z|)%úŒˆyp‡Æüœ¦xõ>þÈ ,e,x5”ÚFH±ñ¹^oŸÉzÉóŠW…Œñ¤è—ð«ýaPµ³ýÁ°“íCrа%ntÌÖ°{0ÜtŠii·aÁ]ÌvÙ|1ÑeA+Ê¿¹~å×Wêam7ÓÛ~ð¥H²Bó+Îa >W©%ˆ1Œ¶`ž›­™²ëñ ¯ /¤]Áª'Ü{vÌäK7ßEbîpc¯s\·ÉNuƒÌ­f¤½ÌNt7WŲÈ\gß Ÿ#!Ïõà•Ïh»˜¹ ˆVøõÁÖ|Ödn Ñþ úv˜û³‘õ,96´ïsÕMî¦Î¤ë½ê/l–;î>²iõ Ø^c7ÌÍgÆ}%òOP¼Z¤Z²ðx•­ñö­âL-jòëŸÝ(×çZ¥£c—c!ÔjÄX· c¸ßXWcfktf‹¬DGŠý.—5n±k­+rëåp´^´¯ú=u%ŽÙ®ϧQÃpƱ2Þ^“ùàuÍxJ£w á«•qà4µêÏ{\˫• ÍýÊÒu½tæŸ'kîp¦f=ø–ö®òØ|ÎB>ø“§l¬¦fš&W•žE­ñê¡ùHWŽ¢b’"H¡Fº“SŠ4Ч([«Ê7Ì¢.ÏÝêjþUœbª÷Ý ÓjRo]Çôx•§k1Šú9Uù¢ ʵR”‰Æ2Þ¢+f>6X†DÇ£ËÞï.ÁjCÓFWA7ƒ>>ÿÊû­ðÆ!ðʯ žÂÓû]î4>FÖ{/C¾‰<ÓgëƒWž+ËçÒÂ4Ó6oÀ~Bk}®HV}¡ÂU|m?sØe‹­eTPÞå#mw»ƒØ`àë1loHP]óT?5‡ðßßSìªnšFJc}æg‘Hšñž÷s6èIÕÜûÝønåøƒùØNz;’v´ÀvŠÑæýð¤þšø²Ô3'›úôêáð™àkäXsÈô ç1û¶•DsYð˜9slÝog–ó ½té‰]­+,()¼òy w€¹æZ0¸¬hË·Ïmby¬iŠ.÷ħN ^0¯£QwËæè»¶Øž±csSfóc0¼êmo4ɸÈ&Þúƒ÷† í})Ïçõ,FÚ>k=Èð)è5Rãÿ‡i‡Ïxðùíõ5wù%<—öò"6å-­ƒÌˆþ¼Ú ^•ööKÛÛN±÷ÉN³×¶s™1ÛÆÁ\38¦¾Ý蚺Öôá¦à—H$º(hB½›˜Ë ÍÅôf2ßWÀžê Ÿk´äîàUoyR3{|_OFà½ß¶GæÃ}öëpO8 ÉwtÏØ3îŸv‰ü(ïº1î7wÚ=-)æ ×Ñm³ãÜ(sÂL°+¹ºÝž¯Ö˜š/º [L`=YHOk€í©½ˆÝÔð»I´á ­jÁlÕÄx=̵_Ѻ^r³{~ÕÊ­e¿À3¼Ö½m;óÞ ö)üÁan9ýyðo›©«ñ«8øU?ʬEß¶ˆ5>¢^ƒê©±ÿ&hîeèÔ»Ô™¤ù*åŒJ_À4çu£Å>†¼Gv»£cVÈîR×M½±Õr2Ú,:H³Jñç!UïËòn?zå}±Bzõªæb¥bg•냕¹ß)öW>'©†âO,ºžLkS•3x^XC#¿É\×Ó5¹D~ ×x»g<Å:«ejò5s=ï00W³R”gy<‰WÔÉÕÖT—P1+G½ÜXÅÓÚŠ3Þ¬§ø™¨œ¯fcù te&_ýÍÚŠ\9Z¯e¥k ?NQ6¡Ê“ÌÐÕ‡t½ÛNîæh®BCh4úî9!ØcŒi­µœùôwùJ}êsØÆé©û\NHMó·Üb<Ú¶C3˱OQõ±œÅ+ÃÿFšš2­û24÷^ìÍã’÷'šáš§ÜÃX^ª9#íä𪲉•ÁÉÀï£ßŒ—6/H6¾›ËøýœÑ¹ÃDK©úƒI·HÉÓüöiæH0(bŸ c«­ÌJirì¡3ñ 4Þ~ ¼ŒÔ¶aÑuÌIÝÓ1À<>$0‹6EÓ™vá2Þë"1fð¢9h)ƒØÅÜúhëña Ü¡™rýàkÙf.ÖSL…_íçÝf Ng4¸?Ë(µ®‚{¼ºWbƒ×Ísš/º!ú†­mo±G±ÆSÄ\ÿW0‘÷[: ÐGžàñ_¦™é•9í=ø¿2×i:WKãÑÑÊÃÔ¯¯9W ÊA5.]Mcé)´ô¿¥ùl†VX7hð‘y»åêèë¶½p40u±ÿÀ zÈB;!xA¦WDðFGÀEûñn{ðj¥æ_¤ gáNKtås Ò Híݱ¯ÏÃCúWïac5±ß±ÑŸÃ±øƒMÀ¹NpŒ±v”}Ln4ר¯Ü×nüê3#fŽÝ v´1wɵÁ¯½,hIo.”¥è†ÏìK_®–ãhx_úÝÙ½Nw¤1ðOËNy/’§×„§íWá¾pïõqOÚ‡ÀŽòµ|^¹˜ûÜc~=޳ÑÎvýÍ fœ]‚z¼ª%Wš#öãð)Íôê!kMq0ä÷Qó´§ýlD:Éšo4.ô˜Ü@{/ÕõÁà û¨ÖQnwŸÚx×ÕG×oÂìC«OÛçà´£Á«úòþ ÃôûÛ|¼ý– ºZLŸ®fΨCM>ZÝC.a›c=+èåóð+¯ÿeŒScé_µÇm#µOGBÛƒ}Ñ Ù™+ð€{ˆß»Fn‹RNQ‹öõ{_)‰D¶ñš#1 ÍWVÔˆÝ b¦©§R™š¤¹ç>G!AíÔë}}Þça6ÖH}¼îki¢+rIŠ>Û%U×÷òuM®F¡|FT’Fp•OdéU’bR–r°D]Í+ÒN¢Æ¯2uMµªüÕ,¥'k†h’bQ"úßP=X³ª@’ÙU×9êúø¼ÏSͬÊîª\çL­Úë“P•¥‘#<^]¡=)™FbiIÊ‘*àNíÕoÝ‚õ| ^ù(Ú#XÂa>ó¬óðê'9m<Öu‘÷‘ã`¬•ù\,Ó\ë­‹îv¯üz噆Þ6Õ5Žî Ídx”çyü¡w>§þÔ4Ã4xG°¼:øõÐkÀ«þA¢ñ;¾2 @šçŒŸ Ó>²Oê>¾ø³À¨"Ùº>¸pL$Pÿq s_KüÁ,l¶>ÐKwRø|Ññ÷¢QMÁø°·jvr?óhøTð#ÖVŸ¹¯¿i^ŠV6ƒ)ž67š<ÿðj üªˆg¦£·—Ò;¿"<˜–¦šºÛæ~8E¾9ˆÝtæ» OÕ§îúš³Õóv»T >5/rýŽìŒ¾iKÕ ¾a;ߣý~M{Q𴌉¬¥m™ ÇJüêÎÈs>÷ʨg ¾ÏG°‹q”4îÃW?üÕ õ ølý|¼ê@ý%29ú[8Ên ˱²n6Íu·Óìƒr“ÙgscÞ¯š…1Óì×Ú55÷ȶà÷HfôòÀï|œ†ç™Y~en†gªÏã9•ÇäÌÈÂïí~@× ÷Á³–#§,øÕíö?á!üÁ›¤Â=kïwŸÛùø€çÝ%.ˆyÚ‘1ær7Ò­µºæv3Æ®µ—¸cö S$+Í.ûNø4œ×›öÁ0¤¦ô4‹qꀭ—‚Ø]ñRK4w»¼ýFî¯a$/‘Âzö7ZÔZns_ÚX×Ö­â‰ÏlŽ;éÞ³ôàvû¬k¸óùOOÁ¯ÄÅG¼¬ö¯Ž(ÓÇØwâ©ï;‚ÎÑlöD¹ õ3£à-°>úјO=«h¤+¶ ”]oŒNÓèõ"Ùí»vÊZÖËýÑ ¢Ã•-5v^¢¼"_ñª–âU ®ÞÓ])Õ±©Ùò(™¦Qñ´ªQº²’l/Åò3 ½¨¡õfi”*µÊ·jª»^Ò5"4Ls®ªkNi¦î;ŽÕœŠbe])ʯÒÕ[‹ÓÃå?Éš¡Yµß9Aq¤†¢F¬¶§PwÆi,8Cñ*^W5Ë5ΟLéݨ£2³5OqÏã›Ç«U» ã”+&é^žxE­´ªøØ0<«uëNCÊGÐ÷ö-+Åb8’÷Wƒ?_òåñáìç&|3/©»ð¿–cêufvo‚í}Û2ù°•¢p-p •©ôh×3«Ü-•eÄ» ¿ò¹öw£QGù.äÝöÒ1È5}´Ýw™½ÇÉýxk“ð½ü9†Ö¼dü¸çšÖ‘ýRWŸù›6‘\½‘y;‰/÷+ñ½?˜ &ve–ë/è§{Ìn擽hZsè“RÃÜéód¥·y8|.øQnÂÓ=L~¸ýk$qæšà sÎ4@[?âÍñhPö; YM‹üJGoÐ<Óøý;MÁ¢)`×aF§Ëð™K%Ør¹f€·D3è Á»æYæèeüªÜÞn÷*¿*Äv<¿)+m—à%¹‚2ãàž#£‡µÂ Ñ2Ÿu4Ô¿*_t øÐW}‰?Á¶bÆ ¤Åõ+r^Q¿)úm8Îî ÛáwÆ'êaÇÚÓr—ÄÜᮄ_Ýb¶Ä̶׹&ð«Àu¿äD×Ít—uå~gÝå38@®Ëa8 ¿´í[ý¤?Zô­Y Ýmá5ö§ð`¸­ä·ºíjyQ¾r“]ó {±Îõuì,7Ä1ãáWsÝ û&1ßœÄ|^–êêÛ&Óo¹%ØØÝ¿Œù ).Ô]J éq+Úq/ºÚ’çc/„µì¯Ì#Íå¤ûFÙέ@ßÚwÔ}a{ƒÿ·Ús ó·€2ž¼`³‘Ú´yŸÄG ¼gV‚½lÕüözbÂzåKLdÆŒ…LU«®®9 TŽTƽ¨Ý¯n¯®Q0‘;;ÝÅʯüúà¹èôèHåB%ÌHKÁüå6Cý<õÜj Co*/òY‹äY3W®£ei¼º–›Uµ§Æã@=µtŸkÚJãdqjmeŠz™šK5@óH«iލÏ+¨¡‘Å›)U±£D]5ôÜ,]s[Õ“ôŒÉÇÇR´_>&^SïÆ*Êctµ¡Xcõ‰ºzPŸ¹"C¯ ±„|ŠUW„*QÏÊqU þVuei•X£«©ž7fiIe Îúïç‚èÐXÝ/ãsú›Ÿ Ï×cßà×yõ&Ú·Iú(·¹*ž9ÐsÒpúr,¸2ÆþŸTâU ùD:›2ÅÊùXÕYì)CsÞþ’ø~v¸›,FãÒuÕ3/hg&ˆÏG=Ì ¢ÁV]ÜCš†øþÿbN §—ã/Ò'rPòõ|c†F\¤Àx:Å<ôŽ$èZáA8@31º­Ú¤þ`…fÓ]Ïœ·‰9º!åÛ|X_.#Íùðíà7äØTbê„ qæBsCð’Ù…gÒQ>dFŸ^åòÌ,J»œ'ý®ô%Ù,£ƒÁ3yï÷û=úSbû3H|ÞhæÉHð‰âÕ~Y}ÛÖ¶§í>Q3¥®ž #Щ‰vxð˜Lˆ¬Cš>_t"Òê©;~fé^¿§v3É7p˜ (i<½ñùí½Á«~šÏP$¯Šß9ý-î¡yJS¢†}ífüÁ'¤‹sí${·67Û§Ýt·;¬œ4—Åt°W¹r×y_$D㢃ÖÚßþ&×LGwÆÓ‹ øƒ5ÀŒ½š{ÕEY×{âWÿûñì#`ï`°ü´y:òÙµÿ 7… x~€{ÆÞƒo¶nù‘å~tgÝ“°”Õ®§[‡?8Ê3#í&;~õOSS暣ö­ðq­wÅ̇_umù}>C·:[ÏgðqÞ¾|ÝCÛ:⫵†y>Ö¶кnrÌ}^u¯úȧ6Ãí‚_u¯Žâ6scÜ2úñLä9øUBÄǯwI4º7è­ëôCèKŒ©ƒ”³Á«>èt[õW2k½OÍ)šiäW~ûh ¹9c3ˆyÅÇÛ·ÈþàLt²îÁ»TÖÂ(+s§7Ë›Ñ>ÑÊ~@ Øy=Å€|$8„ÿ}»ú§F¸ã‘ùÅršž'«§’QSŠÕU¡fYUטSyÕN¿]H¯ò[¨ï—¦xÕK}Ã4]‹,ໆâOŽ2§-%Q[¯1´¼ªV²fÍçSW†ò±Xå`‹U$ôÙ©Vüy2µ4¡º®0ÔCéÊÎri{mŨ8ÝT¤˜Y«<×Ç(¾e*ÊS”MU¼ò~h?9À\¢Ÿ”3ÍÂ23u¢±ù\Z)æoÀJ>wüûçèã^ðÊs¡“p¿åVãÑÐïÇiȘù^–3rmL åZEp­ Å«XÔE`\3í}_I7]ÌÅ«‡dú¶IYd™ÔŠÍ…ô#Eî F.ØøqÙ%Åf´ržùÂ<ʼù€âd¢9^åUáÕÏA ãÏy˜nž FŒñ}ÜMÙMÍld· MßÊ÷4êizø¸ÙúÚ)<*µÌÚÙ\›—ÃWc¼Tw`›ÃK`'­àJ³ƒWÌvÓCó¯–ƒFÒžÕ(SC™ý2¿jŽ×ÚÑf¹^v„}Qî07ÙGÝnOØ,8b®‹él·¸Žøƒ·É±@¢ñÑuÏ,š¢—˜šÔD¶ãëyÞx=®&7 o)Ûé‡mÜ÷ôgTæ·É®ðû[¸{ôsÏÛà›-ÏåPÒÆœu¯Èw0Ñn§ï.¯&Ù•v¦; ^5©f¿};|É·¥ïLíÀŸ³±ŽV¤‹?S![÷âtÏ=‡õg±œÑýÎ3À¬ÅòZØÂz¡§ò«t×Ý-¥…_ÚBúû™íËswÙ7y_w ÚñRä|ÆÄH{=·ê·ÈŽ /=*b¶Þ¯­ùûƒhÅ üÍ&èêêýÉÄiy]Á¬ÌEIÉ t¾Þ.›‚ãÑ©êc-=î =O&nv*:(:LcE¥Ìpó4_ÔãÆ`ê«)~×q1}û@×þRÑœKµfê%éú]åÞÀtµÿDå0¾Üúš!‘ ñ¨ÊlqÏSšé™'³EͪüøšŠ\¹Ê7*s’”ßdhd&AO¦ò3ï:‰Óœ­õ×â5Ÿµ»4gµ’_e ±Lõú¼ÖÓ]×IºÂÙMù•ç~5uÿEe^«?§+K3)*ýÁ¡U¯êC†îýé/×"Ç•ŠÑå0S¿÷ÝgªK¶‰3­•ñ­«¾ãÛ·îÞX¬ù¢‰p¥¡¦º9n<ëì*?aM¯šâu¤˜¶Ú÷:ØQ óQ‚âÕ%êw§*¾¥š 3Ig†˜—fÃ|\½´› ÕÛ¾'Á®Àó½½’c¦êªÁ7æyoº7ð/i9*º>ø×ÿÁ›ôë ³ÍAEä/÷]ÏÛõñ_²è[Y«xÕ»ª‰5í_†0‚;à%æÚÛX˜çÂ7‚ë9Q«écsðª#2Î4ƒ¯Ì5¦!xóüjXœ/>j06´Aóò*@@a†ìôO «ß#ßfèt$Ô â=mjoÄøµà©;äWóµ9‡Ìž–]Ñ7l±=nwaGuM W ¿ ²¯·}áWS"«(Éç·_H‹ZƒW3UÆÀ]¾‘/À«IHp4ŒÕŸ'3Æ8Ls'ëPú\Úùíö+dvô«°“Ý6@°Ì~v¤}~µÕ>æ–WÅÁs'üêkïÚš=²/0ÑÌèÕAs¤·XFáŽf¼gRöÕr‹úƒ‡‘Š÷t½ ^ gÙüô«Ï+aa;ðVçÓ¦zøƒwÛÀ^ÎDò=ݳö,\g9þãy7Ç1§ÜÓbÍ&7Øm¯F›ýfx5Íݨù ‹Á«wÃgá&éw˜ò`,r\!ÞÒW"›|$²HÏËhˆô}üi¤ßR÷,‘Ã[Í4Cê7ºï`”ÝÝ•<û+üÊç7ôâù“öM×еp Õ|07â1jƒü¹6èIÊÀÌ‹ÅÒJwßõ×ø~+åW]À Ð6ÏéÞJ¿væ÷=wCï=ZøóúîŠNR/n®ìuë]Gâ¬ÔxûÕƒ½ùót¯ßxô¦H#Ý…”ó îžñëƒKv[µì,åIÉÑöXYC=%Ÿ×”¢¹iê#Ö«²÷]㬥žÏTè­û|¤ª_ÅêÕ%ëRª²ªäª¬öÊõ¿ ­/½êô…å[qŠÄ ºi5GÝg1xüqº¯>GÑ-^#sÍÕÛ«F/:ÑÃ]OÌã·Úº:«]ÿãÙfk,¿2Õ³ÈlíW¹U¶ÁTSu]ïzP£›z½õ¤ÔüÆø{äÞwúQÞU$};¸ßÌcù)¼®å¨ñ\¡ùíCtµ ¾¼íWîǩnjÞÔ¨D—3«Ü´½7ÜEŠÌPÍ1ÈA§0O]…Ä<¾u Ú˜ÉÚê“ÁŒ #ØøÌýëàcƒŸ5^÷yDn–—ô¬†XÓ*rD²¿êûƒô‹T¤è2›óÁ„HÔxiÞ„¦40ãèñ^,õhà³Ìš!«ãü¶é5BK¡¹[Ïi®Ÿ BãOÛ/ãLÿП‡ÐVrÍLüÓÆGËÿÉ{‹è§_{‡Å¬DŠzßx öÛ;E›ŽQâh=´'Ò¨ ®ºØ[cƯv üê ó¿í–uÑWÀ«Söå•™Z®Ì}øS¶ØFÁ 2"²ËL/J]B=¾¼°—RÞE¼ «ñ~hK=sc¨®3‰ÖÕódÆ`¿/àv¡õíe^ô›°]–3¢Ýlª«Ðó7»ìÃî ÛÖŽ™S1íí­®«¿º;ø1’¿ò¹“¥—I ƒ€õÀû™GÛ~·÷ƒÈëÔ’­ç_í…°¿ëñÌæÓîzr ¼ ~µ0\ŒÄ‡j¼ý3{©|&ÿr³Ý·î´;'¿Ê7À-´—¸æ:s‘]gç¹ö S€x}%|[o<×™¶Átú¾Nw£­ OEºÒ߃ñ¨•噳še±L1ëå0Í ¬¿B®wߨúu%ÏW~õ¥Ès'íë®9üj9í|~%î/t/D–èé »fÀ £>1þÄ”ðª~x[ÍÉö'}Êü‘¡Ñí¶´p@U.âH]‹ð¶· ¯úxt’ú)óä·¼ò©µrKt\t¸ú2 `o+ùßÇjüù¢ctߊ÷Sú ÕlÕÿÆŒó]ô©šZrºf>Už¼’¢ø“¤ùæ>b”ªø“ÏøTíjÉQî–[•­Ð]ý@Ï»jéjQ®ò ¿¯,MNbR$jÙÙê{fh\¨šæ±'«7X™§ž\µ˜¢ñs¿0[óE+÷/§iÞašúª9ØFÆöã”gy^çÏyÈÖ•¿+/Q‘5AÙR¬z†êÆ"…ëEÊ%Ëu¿_´r}°»ùF×L}ž§3oãûx}Œq¹~å¥x+Hôœ4>÷£Bþ¤uã´¿ °æf¦µö²Ž|ÅÓõ•Ë­ftÏÒnÏ©:K¾i.ùVÝèÌðqži/̓nø‰^V§‚‰Aõ`_¢çÉ”™!Ázvá‡f¿ì“gŒ—\–©¹]2?fb¯âÓeæQðêª<ÕõÒÓ\L¿g‚ÛéáXê©‹ÌnD‡®Òó?vÈ3’‡?èÏbœhž ? ~׳2a¦F¸­ë.uÌæà%s«ñ¾Ý7øàWåàÆðh…_E¥Ì>´L˜!k#ÍãØ³˜}ºcg€ú0%`L©æ‹6×]„ø òµù|±9ïm‰>kkÛv zša ™é&ƒ®3íÀàYÙ¹ö¬i4³J…îzœÂüÞDó &Ãc¿Ä*'+ß»‹V Ò|¿¿ßŸqô#Û ›¶—¨?øi8Èn¯žÕx{…`Ÿ‘æ }¾qEØ>¸ÞÜ3Àîtm]ks‹ÌÒýƒ—~Ñr=\_‘aý,ywò]®ëu͙ۆêyÈ-˜‹ðs‡ÜçO¡¡æáqûg¸&œÍˆ¯nsÚUàÕ'nœû·»×=¯3®´ Ü0s“™iwÛ©îfû1É·¯†O¡Emó¦a0šÚæhÑ`y¶žã÷–0#@z¿ÐïÏiBíÏ„©öÍo߯ñö†n%èó þà÷…B¿n³ï1GtÃO,—§õ<ä0Ò ëÚ,.zm0@YÊ0úù—f¤1ýtæðþ Ï-ü•y°ò¤§2>÷ñö=#ÌgTTž×·'8§žÕå²ÕÍsÊÖËsѾÑ!º’W‚—0Oãí)&ày«µ×¢œo¨3QÏ]XŒ„[ª·Vy~^å>¾8Í]H®Ê³J¨ÚÇ— ;3ªrD³±ZUœ)Wo¶æ†I-ÍgˆÕ\Ó:Š‹)ê ÕÔÜø$I¨Ú˜¬ÏøÈb>QßÐï—N×3‹Ì3A÷Èϼ Œ*‡ËeÊ…Œõz,v2£ß„‘Øö­Ã¶›kþU²¹WcÑ£Íá;øžåhý,8dïpïôƻڜ2G?ø[¬v¼| {ñfó5ÿª.ýÚ-¿¡OÂMèÛ×à˜8õÖý~>ÿª”:ÚðUZ™ $?›ÌchýY}ÉæÚ›í:=O¦ÈÕq_¡Sël·àœŒŒ¬ÆÚ~`ÄÆ‚ü½øjCf‚ÿÍÐêÌ'_23OÁ>G`¥þdó°Ï^ooÀœ0…’ÞÕºéúÕøèwáP{5þàSÒÃ:×~õ¬œ0Ûíîr·;ìÜb¶ÆTØ®£ëhNË\ð*]x4Z"Ã5_´>Ö[[Ïg(E×!#¿ß¨™® {Îãqý~°z8OÜ…”:óùºðfûm¸5\Ž\*Ü3öv÷¾ÝŒŽ|í&¹?ÜuîYz¸ŒÜ¤ç_Ýa.¶;ì$w“}l’9bχÏËÅ”ÛSV™ZÁzïOaOÃþ» íM5ÓßÕÙ÷’3Œpg¹ÙϯríO Z˜ÍWxÀµÜbÞüÜÖt‡ÀLÏOØ—©¹››‡„^Œ¼k£.6Ò“RwH\ôPÐKW”‡0NÆ”úó¼é×ÊnAÒÑíÞò ãàWÿè~ö~ê5f¦ë Kõœ·m²9¸VÏ¿JbÜ6¹Å®»Æ‰VÉÃÑöð+ÏhIĬ@7’5ïÈç·çhÌ»€_Qo/IOÍyšz+3Öã4÷)Y#CiºÓÆçNyÖT¢xUyF_–"gX­­tkç鉷¹ºãÅ{±ùeOÑøAefWª$WáaœTžœ®§ˆRS*Ïë‹U?±2Â?S\u–{ª2ªê¯NÓ8k¶âCF7+cûyš_š§ûq²4R_yFMšz •k„iŠ“)ŠÄݰØM°ƒ-ÝÿM€Öº¾Ù|ø›öï®Ãü˜™Ùǯîa¼oÎz6Â-XöwrDs¢Ú‚þ dˆî…lˆdk›öêWÖÆFZ˜Êýækó?˜¼D;J¦éŽ–G ïG§ÖòUD9í¥<ÈÃ<‡¼#hÄ;‚Í¿*6“ÁÏß5GøýˆñÞy¾)”ÂÀsÖߥWä ºñ}™bž †D~Tÿùj4¥µñg¨.òûd‘Ö4=K¼.~Ê>÷EŽ>Â’©çõ5“ Í™ð£À2£wc¾žkþ]'þà¦øƒçÍ£°ÅàÕ™k)ÒüÄñèÜvÝ—5PNÊ¿y«-R8J=¿PCGjèM¿ûˆ{4Òø•ótƶNÁ¯Î™×¿“²6ú¢­i¯·Oc Ù&ß5uï‹÷ [Ü'ƒð[«?8Lÿº‚?ÁtšÎÅe2‘6|B›æëß¹óíΗ_Ñì¢yðâyzžÌk´£&v=.ú¯pˆÝ6–¯jÚ‰öøÕ»Æmt;ÃvÁÓ+¦»ÝíÊ]s½,¾Š„Ñ‹&êæ)æs ݳ~U:zTgÆ¿3=꯫žɵòmë’m÷Úÿ„[™rHz¹7ìÍîðù+yßÀ¼Õ½Àõr×Å-²cÜhsƒo7€W‡ìG¦L¦Â¯Þ _Ðì~ðÑ4Æ!Í5ºÖëÿÂG}»ÉLÕHsoäðÍ]‰ÔWÈ;a û¶îø”àê¹Ë@½omm·6 á½íã®xµ”y2òšýÛVø}‡$½=è¡+ûÃÐ¥¨i {¯Fhܲ1:–©hý‰ú‰ÔÞœ– P?­!,¬=}÷6¾YnD§jnÀBYå&»žšÑ¹BžŒ¶ˆŽ­Ê>ÿËŸ&¢1¡gÄÒz'>&òÚ\]sÏÞ”ï¯=î͇K•k ¯;>f'üA/Ç{ѵŒšß±ÔYšžwy©ÜtÔóEý¼°¼Z^yɽcŽÊÍrÖøëtÓ ;Î×ü+1ƒ"ð+‘y9hùK9ÛVl)03©Õ[¿?‰r ˜U›¯[äl±+rÚ‰EÕ0w!?ÿ÷&î ß|TÕï;»È\.£×=¥®¹$xÒìÚ€ÎW`­ÓþÎÌ•cÑ¿½ Jý ¹“µ@éHe¨ïÏTh¯õøõAŸÞ9ø³˜–ŸÌió÷…ÑlCüÁ]XB¾©ã¹÷?‡·ÉÁ2>rÖfLO–õSJ M”_M’óp¹zòÄ9%õó绘žº{µ¯ï"zpNÞ§÷žßÀìk÷‡þ‰nöÛÈN²ËVså¦ÄlÅœ` czà6wMೃ¯#?Gæþ|Î ÷ÚÆsÕqèÚÕøøùzŠc[ÐËǻï:q¯?=|Œb6xPñª¡ìYÁ½ï➇_}fW ¥WÝ0÷™;í†.qÝr¼À¾øƒ£ì;ʵïÃј½öCÍghŠTö™f?™o¹fi_I5ô´†0¿RëϺ¤ìÊ-‘Ì+a¢ýiõ‘›À«dWâ–ðæ‡6Ópç5ÿê¤=㚀›KyêÉÈëð+)Az{¤ZôDÐ[O*Îxþ‡~úèþÊòëƒÍ•ߵÎ&k6¸ÿÔ3Nï 5¥÷}©ÝÇq¶ÉÕÁ‰èteB d¾›éÚi.æjy5:(ÚGýª2ù^<¿ò¸‘ 7m«g5ø³¦Ñ µá2f ÿPRÔ#L¬Z'ÌQŸ-KyH²új%jQñQ«ÌÿôI¢¾ú`ñzªÌ€ª¿Iá9Gµ\-³¦F»*#ìéšûPy–zZUä;YcV)Š•Õô:YK±Uç‹úS+ÏÂ*ÕüÕêºÿºLw]ûxx!XÛR¹V²® ÔSsºç:QyZbU¤+A19S[ž®±ý>èÛF$æ±Ùç#ŒCÞS¬C*7]7Öâ V3jfÄY¤?~åÛ~Jú› s³ñÈÝS~Ö¸©:§¼µÐx£çWÆÔU\]UŸa,+ÿ.¾ s´oéÚ¿ ~â—Y2o.P&x[P'Èò#‡ò¯ÃöIzVüys7Ìèaã×4 L­ÈaüAŸ‚Wù‘t=sf±y>(|¡9)ëѸ8ì+GÿFÌ4Øÿ}œR]Ü ÎôÆò®Ö|Ñ[¹×öp.ülôç¿]Î<Þ)œK ÛÃ8˜‡Œ?¡í;¤2Tö1“©ô{%u*§Ø£Ÿ‡<À˜.‘/°Ë6j;=ôŒàåòù9õÔ¼G~4/›çѯ²:ú†­oYºB‘)Ù|Lãú"»Ö<%s"h[hz Åþ¤¹öù¾DÏÑíó‹°ú´©oœäsÿ÷&ÒLÕ¾=7¯/xõïù¿G6,úe8ÐnËåéi?·Mí{Fö˜=¶ÔÕˆY ^­7ÝcríWê*˾ &úGdYàóö/• wêÁTtó*üÞ2Êö+VÅUë ¯ëß–J{ŸÆªÇ1ZêIE%²%Ül ·‡ñüpüÁ»Üçv èÿ™âþíκûÑ´…àÕ:;ÑÁ÷¾À^fGêù ¥Œé!ûyø,È×9¯7%¿Z!ž¥x¼( msáRcÛ=_õô¦÷ZÒæ7Ã"û7­ë$·¸àW œ?…ñ_ºç%ë¥uôôç·/¢œg"/Á:ƒˆ­ì’ØèmAOUGOÿÖì‚|Í¥kÎ>ŸÁGF'¨‡V64­Â+¢l'P4NãW»‚#Ñ1’®kO—âW艋å½è%Ñ~¥©+Ö,ÓýÎñÝï®ÂG‘æ£Y•»‡›€Îô¼¾åQ•K&U9Yšúh ÊùÊ«ÖØ2Ô3LÖ'ü‰•ó&–±ó§iÔжêiH™Š9š7•^o¯©o%莟$Å£ÊS?+sNc¤ò4¾LåCÕ¤ò¬ÒlõË2Ô¿KÖ<‡äª=LÞç­¥¥@=ÅZº×:KQÏgº'«‡VM÷I&h,«òïy¥Wù‰a{°hÏ(›¢õÃéƒÇÛzÒÒä™Uù ?†Þ×’žFþS¤›ñ’;&#L=sÄT×õ¾ÔLRžvNþ¤4þ| æÚˆ)Ö±»­¹ÓçhÓšöÌRc4o!¾5sæf•N).ÅwóœêLüföh¼ý"LkêÐæ¯ÍÕšÏ๣3M#§$;Ð3¬MÿHv$EÏg^fž ò"_«t=¿Š×|Ñ)ØÔ*ô{¢žnQ€·°»ñ»ÂwÀJÌc´¿™ 6Ïãþ¦kpþ<ä:ájÞ¬Àߺ+øŒþöçþû Ô$ù ´ê/6íÑLPŸb?ù¥¦ÜˆV.Xª§©û¼óR°²™ÆÛ;Ñ‚–~ˆüm^4ç°ì³²¼ªko·›±„<“ŽÇògàOwºÈ.–!‘eH34}ð>—íôüöÙ”ÖRãî¯3J ÕÓÅÈôÐûš¾ºû¦>ãæ}Ôçñ)zëüvaôó°«Ý6‘‡¤£¸Æv„} 8`ëÅlÇìŒ5CbØM®ÌµÂÿ^üI‰nZb‹Á^“ŒÏrºÜJ|žìݓٱôK±‚OóÄ0Í狞CÝϦpŸý6¼"œ† R~õ]-¿É'nŠûÅÝçgž\ꆂW“ÝsÂL±ÛÀ«öcF~–9i?ÏaßåÈr‹©Œ¢6ÿ÷&ÒÑ­6h½ÿËfí©Ñó«)ôÿñ§]¬ç!¿Ž?˜„'×QŽº·­e6X ñ«øƒçí@äyôôüj¡æ‹úóEã#À¥âàW])µ6õb êêªà`j˜OÙeŠWmÑÑqŠ9ô¯öU;÷íÍk‘_§ß-{ƒÃÑiêÝÌ‘9nºë¡'¯—Ÿ£ó¢«lùWñxå=(ÚG=ÝÓŸ1|!š•®Ü¬!O¤¿ÿý^Ê*ÿ¶_†2³dÍT¯­y˜)ºn_õdãWK× =þôÐ3©5´°j¿³ç<ùZO%#ËÐÜÓ„ªÂ\å=‰U¹ò‰êíUî¶NÖ5ÁD½gêZC†Fá•_%èüœ£hš§‘Ìlåf…Êþ Ó2u•1¥Š½eh?ªkô.U}X½}@ý h _§óq<¿ƒÔç¥×—RSfÚëÛëäß’ þ`¢æ˜Œ– ã³éï’¦®9`<¯ë £*Óüv6éËâÏRöU?å'Jó¯Ï¦Ü‡LCJAŽý ÌËú{ÖÊ«0¸³ô¼ÞÎKá×ÁÏŠWkáÂÙ°„î|~}ð‰Ùiºé_×XŽ/ð?}†ùÜsõªÏФÐ\¬§òF¯2Í ÔÓOOÏë®ù¤Mý [è¡ß5ÝüþÝœ7#ûÓ²9úŽ­mï´ëÔ¬ëê»ß‚øšsmãà ™ñ~J~5CO§kO_fjþU ;~¿º­îÅ·Òª^ÔYtk¨'ç¼Ê÷‚ë¾…®xv0UÏgØ–*¿úÓÖ±Cí²Ól±¸©n]Ø XbVÄô±‹] ׯœCAj4!zeÐFÏ“iâÌ,úqš¶ƒÚêSê°Ã÷¬ôš_ÿÕ³ÜoÁÂGÁrÒóÛKdWxÔþ® g1O …_rŸÐ߯åS8Õ0'$Û\×Úl§¹àÕ$» ¦u‹=ojÊeæ¸ý&üxº ð*¦;»÷¾»„¸@$$Á$¸kp‡"Š—RŠ»»C±ê´EZ´hÝ]©ÑÒö«»»Ðö?sÞÛÿái ÉÍ+»;gÏÌΜy‘50=d™©cG¡&c-åÊ|ÆŸ0_t°®^ܵF÷&Ö稆ûù ¢K5ê­Þæßw ¾ÀÏÄ'¾vyÀ+Í¿j.÷¸ÓxÛ¡ø~¡¼¹€Ïüeµ‹Øyô€-e§¼žÀç_˜uW…ñö©ôm’°{uëÎ (jõ¤²fø^{j%i÷€ööèHÚâ™ ¼êÆS°e"ÁÂèò®ºXÅK0NiÔ„ûäІ ±Æ63Šž†w^@~•@-5–+•I5ª0þæÔ£—–Ìœl2­W.¢òŒþfž1Ÿ?Ib<©:k XošJ†fЇ ‰¬NÌâ÷$TO#J”°:ÌoãüeÙc"?¦‡¬ˆX;Šž TƘÕ%^%3‡¢FL¿½2Ñ T õÛ“™©‘;Uüê)‡X‡¬Ü®6f·Ïõ,´ÐT2 '\+yŒB¿ÿ¸Ä6éIsR꛿åzöì‹h÷W i/¨Ši«w~ÈT…~ôJ¬¦ÓŒ&`ÕT3áê|ÝEt õEÛK{»Ý\ÁÑ8a¯²ÿ퓈½©Ø,·Ö(—ýösöWݳ*›Š‘Ç$›=)Ó'ò«M2êM3Ú¡‘ßÉO·au4WáOaþoÃJ•Ýëì õóìÓ¶[žÄÛÇ}[ƒ5>üaÿÁEÇ›Ÿ£“±Zêáí±ßš›ŒVÓ$™`iŸbŒ›À†`ÝÅ“â>ô=çÂJ:Ë}À\³³?XÑž]"{1“¡9°ªhÃSR†zÈÚ5jgô-øeçÜNìuWþw«ÚðÝEøƒs" 1²åŒv™XŠ}¥kî«ê»×`_^-«Ð|†»ØÍ«ŸüȾZUpõ×ÙáfC³ÇêÊXàUowKP?¸­»äŠÝhwŸœ1»Ü|?ËoªÚýfs\1þÕÊ7ƒÿ}ÚfF+Ewƒ_•¥†˜(殨 ¬h?ûyÍÂsÔÄßuaÅßá}«âïFØŸ°_ê}ì=]O¶{Ý¿ÁRxØ»¥‹ÜÝã¿r«UçÖûµßáWÔõÃýf7Ý0·šQn“»ÂrLðê°ûþ Žn/ÙhJìxŒÁ:¼icZUñßLÜyõµÞû(f»=óµfË›Am—„UY ð3øzíýB\åG—ê÷ø7];Øÿ ÷4¼ßþàWå¥È[.ÉÇE´ÓÎN‰Àlà ðaX1ß´˜µÏÝU©ˆ'H+°ª>ãÎ’°Là—útª+Ó#¦õ)e«ÝËxÈ4Yå¯ö­è§-¸`UtcʵĘyR—{}ælÆTq)ïü&íYõú¦ÉsŒ·k~U6uXÊ)y¾”ÊóÁ4²›Ð×«ÃØ[x‚Ø€YÒ‰êÄ…$úyô73ˆ ¡Žz¯›M0…<+Ìø*K~U‰ÞW³±²bØ•Nn—«©)ŒUóèi_ßУ¬Ó^q¬/®ÈªÁP¯/›,± ³BÂ.­ey¦©ç—¡:akŒô6Ö¨ß=ë<¬û+ŠÆ™D¸%ò+VÔEbììpÛ›1«£@oe'û––Ê%¬Õ~Œ›àël¬ }“Ô=È%'\Âþ8EÄóij:˜QÄÃ{tõÁË3Ÿ¡…ÝPú´ínÝc•^§56J]ˆ÷Ì-àW«‰KåMõÈ#’o•¥þ&=€WéÄÒ±æœù‰o½¿ÝÉhÝV{àê °ÕÆ,`nçMÀ)Ís܆¿‹ÌIŒ^#ée^ ~±qF• VÈ•&-XÄøv¡Ùe?6¯=‹3kÁm¾eÃüt Vu>ÞVkOÊ™YÌg8ü¨ °V¶j™÷£'VHf¥ç‡ÅíS’À~^ àˆ¾ð÷Œêj›\ØÎwvº¢’ûÕ\”Ý‘-Ú_ üjU:âI'b¯‹ëkþÚË@ÏY¬Ùë n´èîØ…úW¹ò|•RyE>£ŽAu™p´»-¨~ÕL¢º»Ú—Ãf«›í·ùõA}{¯¹&î2w+<¤ªÀñƒ¶l´Lt£Õ3‚qðäãÁàêU±ìÃ;µÁh¼½+ôö·UO¦_u¤æù ` ªþ»!Øç~ VS©½ýkð¿t Á~Ã~©§ý³2À¬ò½ü|w%ó¯®p›™õ¡É—•æ {?x»^m¼çS`U¿TTéEñJãíÚùq5žR]ìfbÖô<â•5ÚEí„ÿXTì—âÙ¾¿º>i'¼Áq÷€oë—úRäU—ìã#šó½M‚èqÛÖ¬ëáïç³öù2=»åy«îÅ­ðWÐÒj`®›cô=sÌ{Q%KÉ:ÙmWDGQçj†¬ñ³}WF —È¿ÑEÑ>´ÏÚÀ«¥ìˆ•Ê|ÎŒAk=r[ì5ùäñ6O³×^2‘'¬éK¢/”«‰ÑºœÔVNU›•‡‰Ä½zô­2$“ºÄ婞•Îú¼çh…sënÊJX”Â(Or,fŸ"¡ÖLz¬?Ný·òü»l ¯Òˆ?iÌbOæ9`:UvBU›\Qݯú€ªX•_—c½¡æ zò«—…ù ú“°ž¨;Fq3vŸLò«ÞÔ­ÌòÕ„G’išç7Á§~MÞ"»|«Aûã(&ß/íÍ_À+EឬlëÅYM^i&~ ü^%S±³eÔg(æ};Ikžf1nß?[‰qrºÞWc‰ÈwÙ>ðÃ~û€&‹í_œ“ÏÍØÓ÷Eß S5òœ¤YÍ"Ó=òø•î“̶Gİ¿ój Î `£žî4ÊŽ¤J”®ªƒxû§±²/ï"Àˆ6‘¾æXð+üÁ<ŒëzYeþ‰*^i¾èZð« ¦-~³ŒYÍzgí53V5€âUé\ L™T¨^§>DÅ“nXÏ=T¥‡}BZáO=\¥ðêó™y–þ Ü ~U~õ¤v§0•áþlcl&¸ÍÇ26² ¶æLÜw,­-U~âjð`±þŸ«Í@CåNŒ£úŸM)V„âî£x¾®ØuÞ…]VÇûNŒ~ôqÛƒ¦°énÎùjn”;®¬}ÿÖÀ¬o˜+âF¸½¾Ï0'ä¸M¦G·Ø†¸êYgÒ0ž ÔUáÀŒ·agÉê¸{]¼ëûÌ]è‰'ÛŠÏ „?(óYë}}p£ûžþàNð«Üÿ­[_ö¼Ðý³si–Ã7\î&ú!æN3x5Ñ^Õ¿º“üj*0©»¬1Ev,k¶ªâê-¨ë5fFTkŒÑ ìGM”Ú“þ• Š3¦1ìü°ÿ‚z2z¦ø“«ì÷ú׎Öwþà¯õÔ¯E^ve|JDs'wÈ?‘“¶™ŒâÕ%¼g;Í÷amµ[Utü–ú¢™Ìwk‡(˘ð@|=|CãW;£ã¹þ¯–•þJß¼\|°:Ú“L§6ýÁú1…!ì7v¸i/2*•Êüö'oI$>¤¹²é5åÏhä¬õñB½»ZÌhgüª˜V¡žL/zlŠQÕq•±¯+1ΔÂ8º²­ÊvK-O¯,¾jØ#5××û…:Wz>f}†ñ¨:1-AU—¯Ãú 4z†­8–ŠcU$Ô†ð±þ8˜a*1'ð ÉérˆòÊWwbÿ˜Ëç+„Õiu¦2¯0—(õá©}…ù#bÞ“°ˆãðßNIó¶Ünt´zb¶Çʉ'^}+9ÔëS½Í¿ªÁ,YX[‡¥9O}øwÌæ©_¾ÈEý–vªÇ϶£íæ«Ø¸]ê™YÖÅÜïàž…?È.àW1Þ®ùW#ߨöFo·—Gþäõ×a‡› ÔÈí‹5<v®Zã­pçÀœ¬Ç¹O˜û ê¼zßþÃ*†M2ÔD‚­ÇÙo?7çöçŠÃ.8M>a­Õ•“xBÅ«¾ðs*˜©X½%ð´×Hûcx¥ù ?»Š¸ëû®'féˆ{È7÷ƒüüþë‘7W>’¯9câ£Ù^ì?xþõ+Ϻòð~}¹’šˆö茹N».Âsh5ƒÆbŠ0[=ð©°ßÄ»x¥kx†ÌB—’第öæI^]ù{Pmz\¹°Æ¡ÌIH£‚ë7¬JÉÀ*˜æÜ&–ƒžÅ܃”ØÙ`˜Ý™HLÊÅô R,[½<ùU…X6fw|¿cUY¿\ABý™|Ƭ♱U1†9ɬÌ)OO-‘qü5½Ö6 LÅ~•h†`ýµ6bÕhÏÁ­¸gMÍúÀ}d ¼'Þuu¯ƒ·;v[SvûÝoð¯ÄœwóϺÓðׂ9¼îÂ|Ñ?Ž•³È÷óÝ~°9b.wšé~·û>Øs°îeÑ·ÝÀ{[Ùñìñ«ú¢s0•ñý+U‡ý‡³Ÿ×^ŒÀF¨Ÿ]"vÑr×.^à÷u¿J÷·ú‹®#fÌÖ·V.× ÈEïËD4çz“dDŸ³Ý™=ûû_°ŽjRtÊn"Ú[|&Fý}ÌŒ®·†ø}­nW~ ê?ñĺVwÊ»#:‘gp3d¾Ÿâ[ò|p‘$‡£=È£ à›,’êüÝL UoÖã¨Îy7¹Èè˜öÝ»|¹==À$"^*ý— òŸÞK9j\Uç§“é†ÕxšÓÕ”¼(›žž"}½®ŠÌb¨DîWQ¥[ÒyÏr±ÓÅTƳBåã Ä–°_j*ýº°ŸWUaÊѪQñ!žØ¥ºGY|Î*ì7Qgs9ԲɊéÉäÅòÛC]ÀP_4o”FüJÁ(¯Ç|LaT=ŒútXWyQ}˜r¹•’n¾^)ÞÄ~y³ô4Êïæ| ~¥×k/ßQ¿-‰{Ê·’gZI¨‡|>QmzÏëpŸ³ÌÑOÄÎÖÓ´¡?ì™ÜXÌÓÔÖ2Ðv6ƒ‰uÛ©àW73¿ýÜkŒý—;Àûf#öë³FÏ *š¬ÈA©ÊøU¼éù•=)åóí¹Ä{ÍÁÕ[_¥S•ópc&ûA4¿ZÎqÞ| <Ýæ$Þ»t7?¯ªÃæÊ(s>ªÒͤšÙk¿4‡LPÇ›m`5oS¯o.lr=FEÏCêßf>Qïµ>äax=aM˜Õ÷ª­Þ0îÓz}¿š×Í›ŒL/Ž^tÕÜ!w#Ƹ<ñêð«ÁÀ«Ì{24²#[Öô:.Æ;hNÄt¼I]\Yã+àW‹˜Ï0˜ýRûö*˜RžºT‘7E5#Þ–wØÉµ–ŒŠ~tr ƒF`^ÝWÙ®ÔÝ/›ÌF7ÕŸõKƒ:v®©7üªØ7O{»-pƒ-ÆSO”ÕæO`•æ‹*ÝGÅÈ;1FUñTµ`©ï³GsÍîňhG¥C¢'²'¸Ûý,fÀ¯äŸq§ü'n±|-¯ùQþ3ÿ¤¿3ºÈ÷÷ËÜxð«ÛÍt· ŒïõEך3îãà`t{ÍZçù`KŒ@wê3h ·¨Ø^Æ`L*²¯ô½X£mðù†Ø+Ÿ²\ŽÑóÍþ+—èúÅ@Ð\&øÕ{ìï|þ`ðjæýyàUª·­sÛ-ð«ÎÌ¿ìý…ëùŒJ^ƒk7ÇÚ[H-ŽËÈa´};ìŠ e$æbcD[d£½5:Šgy“e²î»-°Ó¢ƒÈj¯V`…$0îÔë%/æ¯ áî¨|¥ vàGq‡d ÕY*Ó+Ëbì>TôK&kªÉèQkÃ,ùrÔCÎ Jhï‰.äTå;Ïb©æ~fSqOãQäoå‰9©DÆ2¬²Ôo¯Ë?W¦~mÀ¼¬ô˜Æ²v+`„=‘ѯî"Š!ÙëLÞ+žçUbúí±9e™‘FÞvÇI'Æê»´‚'¶øŸÄÚ¥ù¢JåÉôËZ˜?°—VaŸþP¾¤÷0Vß>ék4§ôvXör˜ú í±¿7ÆÚT¦XGž¯hÂx{MyX‘Ë·Ÿ]åVë¾ÓÉ´g~{eX×d ÊòÎÎRϪŸ¨{ÇQ[jF¨7|üÁéÖ²ÇÄ·æ<ÃIÃZ“9#¹µóƒj»·&À¯ýìø Ç Œhú åM7æ‹æÈ3ÀÔNàºçñ{êÍLŒ~ s+‚"yYÚ»¨/vúØ{Ü<ÿŒ_ðÓ*n€[ Òï°Ï–fD·P_t20®Äjl+ Ìíö‚9h´_ŽYŽ•ø1wÚËá €¨Ú-`8ð*ÃLg~×QبjÔ”²Ca`L öL­G_®)ó²ÊÀ«7±®Êæè§®–;êvàóy¦ºoà¿´ÃðƒÝ‹æ9™OEÁ¯Æaµ÷àYçÌ\-ÖÌÂüü´ºã;¼QOÍÂsé&ªèò«®øÿÇÔª#ÀWÜ’ ¼ ]Á¯JÝ0wJn47¹õþF¿*h`šNàWs}}߯ܽ£R4“ù¢ÅXƒM*8p#¼m!ýnfJ¯¦aGìz½€½hmÊ`2Þ~66T;ÆûÀ¯–ÓuùWÝýþO·HÞ•¯ØþÿÄ™5~œßä®ôÃá{s›Ý`ð«×ÁÑšýî½@=[U«Zcª[퉪JÄ9ÔŒ©ÁN ê}ier¼ïYìH­qçºxû·‚ꮢi»ß ¼JõÝülxmÖWô·ûÏcùW/ãm‡ûY˜»wÀ¯Ê¯´Ÿ×Í"Ñ{mZ´æ3ü‹¿[áû½€IªØ –4¶ÿùU92çì\i̸³½Þ‘Ö㜋ŽcnÀ,Yá'ú´Ë5’\íÆ\…˜á¬ÇÑxÎPÏœoÕ{i^—Ã8•fm\ÀóVŒ×U¦—êêU°÷Ÿ¢JMz}ITRµªR™S[•^‡jv¶cï™PË*ƒ: ñ¬Í ñª½Á4r§$âbfL™4¬N®Jvâ‰!#)Ãw¨ÂJ˜²Œp…è¦o¯QˆŠÖ¼4§^sýÖ zqÌg¨ôÿ9]ÉDßâU#[¡N×`0›íØRx<s_B¾W ØCóëUØ/5~•Á˜Õp02·—ƒ…u6eÍ£c[Š5ZŒª %ò,øUú’àWMÁå5W5vÁ3XSúNý¤‰ii®`.Ø]°ü­°mÅ´&RÅŽ¶hàœ­mÅÞD­˜›óíÏô‡?7OÀû¸‰\5LãÈ’gõ´!j†D$’Æ|°Yð»D~á|ÎÄÎÖž¹©+`¿7ÃÞgáY5«`¿ì³¶…ýn'lfN1«­Ô\ ~—Óõ¿I†›obýè«áš/™Fµ‘+šÅ¸Ê'÷XSÀÐo`ozí­PÞLcUÙiŒTsÆ£?=À°ç°¬J®OU”3±›×`awÉÎèk®Š;â^‚V1•| ÿ•]„5»Ò}aΈÈæ}éºò½¶¸â(ömܼúh¥}©àªmpÏ.ò¬³.÷ÍW`7=å9xjÚK©PFD¿z¹9A ðJõú±Ÿ×aâÕ6æ‹î3íâFº9¾–¯nâù`ùè*[‚·™^m¿Ò Ð@hÝý—±ÇU ìVŠÝËkŠÑ ¼Ú~5‡>[ƒëÝ_Áêà*xAÝýëînÿƒ›¯z°ÞoážÇ3o^í€_:ÄÜlƺnŒ¿Ë½m À¯¸7ƒ—ðÎ-€kM‘ÂzgÕC^ÁŽ’ ™é1õΩ‡|'žj)uüž ò]ºi<»Ý °½_ƒñÿÕÕòýNÏ»Ù^k{ž^ÞErÙ>ˆÞeÛs—ïÏÿ_ÖñVe-ȼ£î•K1ËpzS5ØCµ™…ž…tÆþRŽ5;ìíÀ+µøÉ²Ð/öí™÷´Vò‚ÙÑŒ ÕÁ®«zóa&Á ò+EíÌó^¬Û|C¬è'1ûa„'5–ÏY^B ÐäXîV õoÊ»ªÇúJ(_jNN•Ì'mKD u]*ROF±§ û¡…Ù ÉÌ-OdÌ<“žG굪ñ ø³Š¬v.ÃS.+úÊRU¢Ÿ&‘ú ø¤eñYíÖQquí9¨yøqÌöªHD‹—°»Å=zÔ­$¡¢üh Èà…"™V3¨>ƒâ@¡Ô1¿3–•H¼ú\Þ&âÞ6±‡úíwê`þ”íF½hÍ)ÆÊT6W³¶&DÖúà/ LUòϵÀ«‡cšðƒ¥²ébÆó]ïÇS¬‹é!·DÛ‡üªœœ°%ö’Ùoõ¾ûÀåÚ8£ºÇï™ñ ˜‹•cêÂ,°©Œ_^%õ[§›'lËÈ×d²Waŵ—K£®èN쑪Ң*ÈWÏÁ¶âî/‚ÁÃ8Ö•æÏà_+Fízô4¿D׊öa¯gÞ¶ÏšGŒfNe›…°›/¨ß>ï½×M`ý൒~¥¼‡ñÝLs2x^ŒŸ0æ^¿ÓDŠ¿:&©öWóþuóEë¹nãWÕ?_•Ê5îüîað›a5wÃýïÛaÅ^‰7Ñljíû)féöæ„;+ûžÛ+Q+-Þe–Øó`Xz2Z(WD¿ z»õAcøƒ½Üß®™›èÎÈ!øƒ—Á~×EöÓ1®ÔíôE¾µyRî°µ¢¹Ñ]V£5WËzcÍHöÇ­ŠÝîv\±+سæ3(^õ‘§¤»§5’CX#±Â‡O4+r{°Ûýl ¦`ßèëŸs§ýGn…æ+%øÕ£þaiiÖ36¸‰¾¯¹üêZ7Òßî.‚_-1çܧðç°×ý&SbGc5Àus€–%¸{#v«Ï¡·vOì|°>xЛA¡ Œê jÿ®4ßÝÏ^}çr¼ê#«¾â1÷ ¼ßÑ~æê…ÈwÉ%Dò™ß‰·m¨$6;ë?ÜÕªMuÅŠn.%̧jŠ=}ý¡"üi‡ÝBs{cÜ»àîj÷[d«½-z9±èYëgùRâÅf)ŒŒ$úÔg¼½ý¯lÜ­73ªRÈÌ?aD]3/gaµ6‹e¯'Ð/IdÌ(ƒj¤øŒâ%Ñ›Ìe¿§Rc·"OÒÙ÷¡J,C>ŸYWD¦°oi#S)1ϰã`iv½/#¡¦| ÏÑâ¯OŽu¡H¡6²~¢<³QË1þ¦Ÿ.fÞ|ëí+ÅúVf½XæBä0ÞžË KeB„ùe¡?˜ŠÞ ›À¨›2ýEÖZÒÚHLy18ú·1~uûô rûžGŠšFŸ¡=,¢óEËÀ_“úøÝxZðø†Õ?_ƒY=JmèxÌC–éHÍ„T Û<ÌåzrVìÁv4ön=#8a'ÚájÔðd¦ÛKô“/š£ð&¶ÝªšÂÈ9©jUm¢ŒùÓ&Å·IæqÛ.ò÷ƒ%xÃ6fÞqVëàÕ4ªl-¶ÑÌSý?x~÷aÎÚÿ >‡ïY ë½ 3_E—³¿s¡¹`_0ÇVœTk„¨Ä|ŸØßoÀʪ…kmÃsÌ "ßqõqÍ ¬Š.°ÝšUÅx{>l£~^ß?,96jßÁ*zBvD?p ÜYw­æ›š¾x5‚õ8epd%VjYð«ÑŒ17Œ•Ä«ÙàM=¨1KmñõäêèÀ+íïüðÊùn¼;!·šn–¿Íï êÛfp\O7Û7÷M±?±£…Ñ5¶˜|²7üÁIäÓ…Û{°;CUáS5ê»É%êA÷ÀøÀW#åcìûat7·€_­ ¦b5tð/¸sÀŠª-á§ø?üvÿ,Þc±Ÿä7»IŒ_r×»þ {ÇäËrsxõ*øS±ªD›:vVþrѳÅ@|æ…¶ÿ¬yi„Ïœ*¶­æœ#.žg»÷àž)¾Ô/ÂÓþî2üþ§j¬·¹WàƒóÓ0[¯GÞrÂøU=Xˆ‹ž°¨`0ˆZµY!8¿?‡x•Dµž±—ke‹öXjÁZí0O4—|f·l¿šÈØûBÙå§û¶ôßVH|08æ‹z³Nê2Û ñ*1ª*à…oRÕ83?UÁ: s7È©’g ÏÕÒ%ÔãÌgÄ9…qŠ\FrUe¯Q!‡5ʈd¡þC6ãía§èÊj,§ðl Ì™O%reÐ òŒ¿Wa´(øR!–çžB/0‹ÚÈÉʌ哦³^6D£<®”0¿=‡ÞgˆW™<5Lfb¨FV'*JV%^ižçÌ ýîEXã]ø¤uÀ&Êš°7ýùS.ÊGDÓ³X÷ÛUGß¿_аÏn BͳŽÖ> ß©>ãlµåuihÂ(àJÌî X—ÖIv•J¦«¹Š‘¿³Ø¥–ÂóRM˜fRÝ‹åe¶ÃíŸfŸÕ|Tíy¸ÌþγŠoÌísJœÌ1‘祢Õ÷L6"q‘T£sÓÌc¶Iä;r9­¥îoÆP— +žBõ„Û`œŠaM;€ºšu,º£y€U…¥æ«àgoªc­n6×–af›JMó¢=oš†xÊJfû{žN„%n[ØY»‡ò,ð«–XÏʯsŸèJ¼ê…Ÿ÷ÂZ¬Ån;ª:ÒYT5j_ÆØ¿&¢ºÚîa·W)0U|Cÿ»UUß1îoó2õdŠ$Ñt^,`¾}'ì3š«£=9g`_øV3I´ŸêAXKìÈfV}.ðäuài/`óGÚ¥^;âE? zº­AC9)ñuÝdwZvš}nžŸæw5l³.®¯[~U׬—gmõh•ènÆÛ5¿=j.§r_UUuÂ3´Óh&Õ-4~õÐ2O^‚÷¼ºQÂgGâÓ‹‚½î‡`[03ÚÅ?ëNúwÝ2 ðÀ‰_üNÿ˜´3+}7¿Í] ~u£¼Ëzç*²Èuo3GSó¯ZÚ‰ÇaìG¿X´Ò¯¶¨ÒþxŒq.õïÃ-šà¿7ƒò®,殜óß»,ßÁÏüãÊûëýEWŠ9=æ^ôÁí¦anž?õñíÕ±U⨇œƒ?éU“¹fƒ±3¨—Ûëmæø¬ƒÆ¡UéºyE}ÌQ'0RÝ»wÉ{Ct±hðj†ïÈÌÌÅ ®ˆ!Gª‹«¯¢Žz2»ñ 'sÑLÊîðqrˆ#ñ6oÇôÛÓù'‘¶Jþ”B[Ó\©úD‘TVW¤Ç¢Lª9þê¤ça„*ñóYD´ÚD¦®—L û¥H¨Lª0$Çzz…üª dcô5É…<Ÿ)?¦'£‘©t ëÓ˜?ªúåb¬s©ÏP†Ø–ÇN‡g¬ÀO„½'ÊÇrV“bg™©ÄÆf@ýì?«½ã—€oµg´¬†t6‰¦Ÿn¹$™÷cý¼Ån…õW¡Öh3øƒ[ž'j-­ÚŽUؾ)æ{õ~PŸz.ö…SÔÅÊĘW6ÝÍDêß܃ÛoQǰ‰ÚÉæ2>é!;ÏFì-VOaÁëÍàU>Þì]p–]¬[ÄajF’LËîdfýAå‡ÃÁ¯ÚD~$¯Fuf°kß:ð“IŒ:7zî¯)Ä×;U±Ñ-ùÕ'ìC7¾NnbåK? iªQ…Êb\}),ñvðÍRfRô`½JMü¿5þ®M}†ƒ’L~ûÃÓr[ô]—玹“X›™ôÿ´š>×Eìë²!¢^i¼é…§_ |Ю†£™‹Ôˆ}'Þ”ÿaß™Dý§#øY_Xò³°ëjŒ¼Ãèðù–¤ï;1úYÐÍmJäéé*øÆîjw—Üa6¹Å~“ßÔ´›Mq#ÜJ_Çç™{ä¸ÍŽÆG7Xí:Bc/‹‘R†Õxåú ‰ªÕÚkJ»·wÇÝO¢âj$o v¸áÎÇouö/Â|Ç-§ø„ýèoòÏÉh³Úwô›ÜTß c=Ôít—ûîC°ÝàWߪ⩕uëÁ¯ã]Ú3ñæ%Ì9Ÿ<žLüøJõÛ-ôDí• Çý±*¿úÆ%û~>æåoøƒw3ûb6nuOøzÀ±«€‚Oƒ_E|™ˆÎ×N±Ñ3¶U–‡‚‰k¼½1¾Veök˜Ï–Ž™îïûr ÕñJØZsU«ZóNo?jEÇ/\#7¯º1]óEǰ~PµC˘Å·$ƺà~UÉNr1îÿcרrÌ¿zCŠcUaä*¼*•ªvidEñ<,#a¿‰LƯM›P4•gspõ Æ¢r˜%Z‘Ø“M¶õŸ>Cy*p%Ä|ÁÊvú*ÃsÄd~>‰çƒa½sýÌLj³¤Q‰/I®„µ˜!§÷Õ¬—|ö)‹çéuMÖ Å“õU$[ #ýa¶Ùº]‰ô~»É]ëù<§¨Ç™bWmie’LúËÁ\>&^•‘1Kzf–N­ÑzØgï6о¥¢=Šñwë· ñJÏ U÷ *qu1æí~¬ÅîRx5†uìdƒ,ãyGg©b‡Ã ëq¦[±[¬²Ý½2Àlµ?Ðgÿþà19ÂsÀT“y üJÏ+Ëšþ‘Dð+ÍQkž´À¯R¨Ï°Rºša­ËpýEøÿhŒ‘²­;°Ohô«ðIð+­l¼º|j#@Ù"pÉÞ¦v0¿ÓZÒW/†:bŒ¬Y€Uóf¤5ì£7˜Ô^Ì«žëoÃsÌÄ*® ‹\ ÏèXóPöÔØw;æ34d·<ͽ< ¬ýޞƯvGß¿:åÁUª›B_âƒÈàÎt—f?”‘°‚8£õ{óa)ZA8†õƒµð$“À >À÷»b]ûâO'¬ðNÜM³1 ýaׯà3mˆ«ÓÀ¯.s×Må¼t“¨çÆ_7׺U~¾ßT³gÍ‚¸þn)GãrqækùœçYXîBéG ϤI6wQ_´Ö}Ì™^¿l?=v>Ø–RÞhÜÏñ´ýó?4—¾²QM¹ÞIYƒ5±œ£[,õlw3˜#t£¼ºÖê½vH³ÅþJ¾øƒ9&·ÉƒÌ]Ï2õWiVó]Ó;’Å~ô Ò×Í#UÅœø/e,v¬XãØUK#â×Ý5Á(í[lbα‡]#óQððª*ÖÝÉ3Ýà½\9Åà^ªU>q¥Xa}°‹þ¯¤%þh6꯰˜B`…æOwb}]uf¢´Äßš‡uBÊÚ€W` 7FßqùîwX{™j°ôˆ>ñ|×x5<²N+?Lg ”öóRM­©ª°…'Œï½(ŸÂz¦Ñ¼™êW“À§4Ư:7_à°+¿O0WF F¬+èäò|SøƒÇÁ¯v»7ýcPh_2³â†½û2æ9kã€Wûl 0vøušI}‰\Øï~2Æ%1=·‚%dã Ç›ßöƒÅ-ÆN—-kƒ;¸•À«[¥Ô?éÎù nøÕ—ðâžðOÉd3>Ù*wµïmn1ÃÜðorÙçN÷iðÞYkaV›fÀ+ù÷äÉo |·ˆ¹£YsR‚ï¿äÖlíúõüÁߘ|ÄéÒ|S¯*û¿€_ÝæÿçºÀ†î^5ñÃütŒáóÌgð­µÜ)—"§m{ò·ÑØÁ.Q°ƹ'Ï*µ›Í<¬×ärF’ŠØƒ¢­­9FK;ô¨‡´U¶Ú“щd3e«Ÿã;Ð*Ë/Ñk¢è{a'\k«ÿ˜Ïº|zwuq¯'‰ Ú‡}ð¿510ÌOJŽe¸—c\*•Â8v¨Ù^@}fUæ)nebNyVÃg3¶®ØVƒŠ™Iìžä…¹šùÿ$^!ŒÎ‡Œ)‡\(Ì“3×㉕yÌ>“,ªœ¦Ä>ÍS*^¿*+ãsùªÌîˆX›S1¦ßÇχ*Ì DÃLâ•rÈ–°ÕyÉ¢NÅ~ÌA+Þ·ü¯²¦™àrxBïÊÏÌ>{{ÈZ òÎÀ¯¬9l:akÉp²¿ú°ý ¦‘µöôò°|õaUMN#Dš¡ÖŸècÆQQç°‡W±€õOí¤‘m~¥3q·ÝlËà?ÅÉÛ¤­Ykÿ¢.ÖçæNUá5Šô¹¦jäI)oõÜ40Ý"ñ‘ Ö__aµ-áê|nƒ-ug?/­p] ;‘Ô¾gDZçíÇçуw{ÏOJÍcÁgÀ«"|½VÚ›^Á4XE#©k>bÂKn!‰fƒŒ”‹˜cÕ¯Ó®¿×bò07KÄ\Mí¬#¸×w`nª¬Òß)e\ºˆ]¿Z°_ªöTM°Ÿ›§ð=íGÿš«ìN¸sX¥Õ©‡™n6ÄÕ±¯È ÈÕÓ7] °Ò-&bLµ»¼îçW‹€ šíu~Þó—êöàþU€¬zÒx¸¥Ý¬›ÈPøƒýÜŠ !æ§,³º›êî•cæ&÷øÕú º=h¶ÆõrË€šeÍ9eƒhjt§Õ.r`©Æí>o¼ñ«¶¬8ÎǪ'ó+sͺ³žiþì—G°ÆTMa7øÕÁòàjŒ|W`Õ)`ÅLùR¯¾õýKØé–ù®ÔCînn6CÜv7Êßá>¿ZmNºÏƒ7˜ÙU6›{ Fq1û¥.cİU—'ðL§!žáaܹ5µæÊ»A&üAíyt“ÿ•÷~5Fè'—íoô¯0_´Ÿ×S™g"¯9ëã"Õ°š·K$zÚv¦ýb¿Tí?Z€Y/Åý1GS;½Ž‘IâOJØŸDùO#••{åˆ7…˜÷xò“Œ”Ç3>ÔŒÜ&•¹OmØ'‰_ç»ÊÑ̉唆]ëÃ(| ýÍÿâeeX÷—HS#[¹ô¾bÑú¬X>C Æ»èÓÕŠå_%r•ÔffhkqªQÕã®Uˆ³qªS$òú ŒÙU ’Åcfî†OáÙ_!X‚ê'éuÀÑL0•:0ŸË»ðÎÕ+}y½ô¤/v ÔOr”õ8Á¼êÃZRø»ÂlDf×ßÏ3Õˆ?S1ogY;ŸŒïföètò´ùÀŸYÜ':¯šš>ŒÞnûÛ_ÍN«˜|‹40 ìÌ·ýÐÆ34Zs ú Sÿ LÖt‰|o+°ÆpŒyÙ–D~à(_«šWf"î{lh3ì}×T.®º ï¯gðwolîe’¶æ9ð+c4j»²üjì°†yÞ>lŽâéTOfðê]XF]¬Èa²Iîddj€ÜF¿õÆ·c×ý£[ƒúWzbT‡=Û ±fJ¨iОú¢›Ç0÷ÈšèàÕ)÷°¦²©áëørí|8Ö¥ÛÿɰÈ& k¢éŽçW}†Îøý«äjv|]>ÆÎÒƒý/°[jO¬pÅH=ü Þ\ê}ÌoMUPŠþ/híÖõä)éèŸå®p‡än³Ãñ«üàÕfWÜæ‹&ƒw³>š½ÎÖÆ]'I/“hF‹æŠW%âWňL Öâi™žOv§‚y1Æ¥lüyÏ6ëqw°É] Wa¼zû—݃þG73÷‘éÿö‡ý 2Ò,õ½ý:wïlÁÜîF2_4à÷eð.°Yûή0MíÕñ¸ÿŒME*êù‡ÖËuŽÝ‹»´Æ“5ÀÚ{7HpeªbòßÀ Ì÷Z#ý»«äwã9ZYŽºÇ0æ}á6§þÕßÎDêà-wJBô![ÊÞÈš}ø'=ínÝ |¶„ñ¹¸ÖgØ[y¶®ü¹+m³³†LÔØ$7؃ÑQŒñL^ ÷]o_$LŠŽ¤öAmìv+ÙÏK«SPƒ(‘‘ë!˜á2íž¡js)Œ°‡ÕuÉŒù¤Ä“Ë2Ò^;æÉe±gB£ç9Œ¸fñJYX+ù±>5Énr‰{•ÉÌÂÚ½ôX¾h29[q0-–!UÈZçPí8yžqdbÚÅ+Œ_ÄôE“éÉ•ÄâÿÊNk2~•Ä: Ö;'P«{¤¶¹ÖþÂ7þÜ„—uÒd¯jFÎHŽMf~{gð«,jŠ2ÏØ‘ocxµ>Þ(Œõd<ç  ËxÖÞæ‚íªh>Ã:í„aÎ2ÒÚ<¼m­QŒÕÀäfÁTª)˜Óö˜¹ÇdÃfµ~pVME|­ÝiV5ÓnøU3¨Ü^Ñb`È`Æ0ž•ue÷»êX õ´‘ÝúKº}Ï<‹yxZæDßu…î>÷>©âkÁ™ ›˜å¢ö]é ¼jkw‡­Î‹),O‡ÖÁ½´‚û¢¼LÀøÍÝø­ÞÔkïÁhU<ÁÌ¿ú_ dFôË ‡ÛËKÀ«¨¯åÆS¿}§;æ7ùµA]e’qýÝXp’y@ž°ÿD²¢72ÿj,𪸱f TÆÌÜÅêEx‡ZÔýê-ûXù¯Ú9[a5cX=0ÞR¾ìޏ?ƒ Ád­qôoº{ý§n¼úÏü àÕ1üÁù¾;øÕ´XþÕ w¹?è^2•d“¹×}\À¨j­ÏjàÕÌJwì ©¾•‹1¾ø8’îêãéN)›É*ö|3p® |ù"¹“úW˜ú§K÷{ý[Nõ~ö»'Á&‡ø™Àôç"¯:ãÿ²µÇ+ðêeÛ'“°³}û×Á,öÁ½¯d¤2^4—묵)=±­‡U¥~jëwÄë÷·Ëõö9à’Æc¦È2?Ó—2/r¶üݽŒˆR h¨ñ«FîµÃaeªGiLáÞX´[óŽãSéfÆð*Y¾퉌ç07"…è¥Ê2YDŽ4¢]6±HýHÕ%Îáïk¦A-^!‰uÇd0‰1¬ÐçË&ŠdÅüÁÄÿÇ–$>«ú†Žè’Oª ë€2É¿’y>؜٣Iäxa.k<3½ ˆ]šUHZ†W ïÏ‘ËfÜLãݱ­Óˆ¾_kouuÊbÄGÒÕýR¾&æ¨þÕذfîŸ“Þæ¹Ï(ÆwúÐgWð)© n¦žkMØC5“OŽºxu ?Õ˜aWùb2Ÿê^íBƒUU™|¯ÈÖÁ÷ï³c­ØÝì?x'XÚtû¹ÙOàAÇå Ö5gšj‘CàWZú›´øƒ:Ž×˜§l+à•²×[ñÍÜI;×­v\IUà*šSŽwV²œ°9üí’ÖÙ<¼`SL.•ÑÚ™®ìï NmØGÍ£Ê ÃSÃŽ»%TýÐ~©Ù¬Ù%SW½ëÑ’j´Ã°ÖÆh?æ*Økkó4­VG<ÅýRÆ~c^Æ}ï“ÍÑWW§ÜôsÀl~² `åë]Kû¼ô£>ƒ*. ÀSuU¢RÝv­ï™;zO>”¹Ì¤¿3Þª‡T4!>æÁ[¼šùWQ´Ÿ×”èwð×Eà¿¥.Å7w—»Ó²Ôluoú_ý– ¡bÄuu+};_Ñì“söÏH<û6Å•:›,pãŒ@5 ÒaêÉìÆz¬ 4,À½ßfˆ^Ä+íB}óTsôºàföKŠïuò/º‡üçn±ü!ŸmüâŸ÷çᕯ ¾èÕðo3—;eZGÝøƒÛÌmäWÓ°†úËbøƒSÙƒ®î5K3aXMØ‘:¦¢ºÅnÔ»q¨UÁFÏ öûoÁªÚû¥x6ë3ü­þC×ãrÐ÷Å~(üÁºòräE¿ÍÆî‚?ø’íΈô(üëV85Ocç‰4Ñ^†oãÎêbÄÛb5–Òßë‚O)&¬“›ì!öÌÄó®^u`œUr1º2:„˜SÀzçô¿*`&‡áN)äWM°óW%›**?J~•ãM©Œ°§0w<™1dÍԪƪç²ìƒ’Ó¿ÊbVA*‘«"Þ?ˆ”ÌÌòZD;ÍâÏ#§)'¡L¯™«ÇI–ä˜2_ùXfCˆ;åþÿ|°"óÕãøÔY±T9xEÆ÷ªÐúB]ú*ÔaõúBE›°[Xj,ï>.–ûšM¦§}äo…ÅÎ&zÕ‡õªÒJë‹Ì'°QEÖ5’`>„O¨÷}#x‹”=U8&€cÇâk[¬{ínœJŒ:/-X˱ýXZ™×_²ÓÁx÷¸ÉæA™Ù DH4êoÍÇ5»°~p«ÇÀºÄ¾‡Ãð“xcíÓC*=;SÕÆ§2]À¯>¤Žê!ôw›ƒ`XOx>]owF6›®£ÏÛÔ³ó̸¸$7Ï·öåÁg_±ÉѲѶ¿?Þu3¨0–ýRï&FÝH¿º=Ï@g~»jªîÛº³~U eW°ßý, ®kèÏ»Sà:óĘ`½ßù^»@®‡O¶ÝÍòƒÍ~3Æmpsü!w£~£¹Þ}¼ „j XmZÙQKí’ÍìúJìÇ­ùiª/Ú_=¤¨ˆÝª¡,¿ªâ¬ÑøÕmþW næÄûT=x^<õ>÷öˆ®^3__‰¼äœh¬z³üQ}QzÀ<ÿÅ3 ÕgèBý%ͱY€Ùµf,O¼j±â*Ì¿*“ö÷TÙ!wØ[£#É®”Ûý|ß‘¾Ö|ù":$:ˆ¾d!˜ûBÜ'ÔIÐܵJ<•Ó|Ñ/¨»®çøª/ÚŠ_—cf¨ò I‰åŽ&Çò¤ªÑcIâIa.yŽbLƹBŒêÂ\‚0Æ^‘gu·©«7Œ'›ÊŒ±±0Ó=-–¥ˆ˜Ëü«Þ#Ÿ±¦²vÔI'+Oÿ.qûî«Y±zÀFŒ ).åR=$›_çàÎz^'a·°$²Ÿbo¨áœªUéX9è;×ÄN9…Õ›ñx׿¬7}ŠØ§ÿ~¥_Ÿ‚EܼRD¼Œäc9ÆØ{; ™ªÑ•#F=#MLsfè×&vð¾ `¿ûñÓ$æ±·7UÍåÔ<‹'˜?Êߊ¥¯M4ɯÁL±[­fº€‡4ÈþÊÝ/WOÉëì1]dò"Ç%ƒý&¬éùÚ–ãùà4óm¹$a_×9¢Z©°¯Î`åÍX[ˆYÙ‡=OóÏkŠ*ÔÔ¿Òî¼¥æøUÄÔĺœ.³L¯`6Öfk`Èö)³Ít½|L ~U…χ`ïÁ˜åáúw2ã¯5lDï[~£®ò°Þ6ø¬fñ¨’uSí@„;ß%ß›€WõðûkWÙî¤{ŸÊ7uá›\²³ao»ÝFó¨ ‰lÁ“Ç›äWÝq§î2NÆÓ¯ˆ7úS>µªÂÊe@óÞX‹åSàF5*¸?‡±ï&/à¹;cNjÈäè'A7·%h ¯€_]rM]?wJN™®¯w]ÐÌž0“ãòÜLßÂW0Éã6ý;²ÛÖçyhWãÍ ¼a?ê_Ý‚÷j Än…7mÍn‹o³gO|v>söÁûñlšŸµxeܼ`ºªùWÜ=À«ù`¤ýxÿ£?矑†àWmý&ê3Üb¯&ø»Ý;¦²¬5ÇÁ¯Þ=Íè)ë€WSa'3x>¸˜~NðtÕ¤ÒJ”n݇ñlÍWu–¯eÜßx¢æ² üªœïä—al_Éïò¸Î°„Cî=ß÷ž ¼;9ï<üñªX%{ÅF±˜Ïp9õ ñÞzÜöjX-Ãøþ‹™I OW‡š'Pk®;Ø—f~o„?¨úíê_L’õ~’oMƱ@þŒŽbþUóE•_©•çÀÖPOF»¹«H6YO#Ì¿êl”§%%2žÆÞSiÛqªEUUÒT¢Âl˜+UýR+0®¢zÈ•‰iaÍq¢‹Ö+çSE¦,Q#+†2)ÌàÌ’äØ¿+á)3$ì˜ÂqvõT¹&±´,¹VÖxؽ'£“ÃŒ‰2T¬Ë¿Êa~{10=–išÃÞ\f2%‚5? Û°ô¹c_Ç>AZïÜ {hÈ‘Teà+ »>ýX¬Ñè÷ÏHŽùUî¢.qGX§v³RßVc¸•ÁÒó{S*ÀòÇVag>Æ~å4wÒäšqó“ðî®TU \¿µŒ° fÑýœ=bÿ1;­V|Þ(µáþKÿý³_î‘g©XäGî–,«oü¯´†?˜iÔgœgÎØ†‘ß8‹w`-5^å°ÏÃnê—2®s;ÞýžZϱÎJSðÝKÍ#Á‹V£nÅ`, L§`û%çšçí9sk:>ÃÛ  hl`bxUfª+vô$£jLu€†Ó¥¬YKÒhRgØvŒHpG£EÔoÿÝ<öTœdAô —ïö»§aãµL-Ÿçÿ´s5“Ûõ7÷K—Èf˜Ì^uñOºþSÖ;¿Ê~^ÇüCàWs}#¿Î]îûš]füÁ±þNøƒðÙÍî›àCXkS\k±iiçàíg³_ê<æmñ.#Ø-ªFüÍ¢’–àûO .Ácf¶ú/€W-ýØkÄ'¯.:ÍV;äÅ{úù¸ÎËÀ+ç%¢Y”á>o{¯†Êµ¢Êhù¸ó`\[;.i?ã¹ÚGÒªkÂ’cUéY›æ‹¶ÁÚN¦?¸ÛÞ½Š86Yzùþ¾3=¶bƒÑþ±ØW`Vbœ”[hÿÁd:¹ž)OĪjJð¶G1›I±œÎ°DØw¹<½—xò€¯4UŸ±§Dz–õ©wžÀéÉxyHUV“ñÔŠœYü~O+IJÛÓø;ÌM â$ÑïK`Ía"£ï)ôšÓ%`þgM>O<œŽJyr$í ’Ëó?=±Ìá)bxX…l.¬ê •Ka¿Í‘Ð.A›0™Ü –bt[ñ'u¤§‰‡·¯è¹V2à~Ft< ŽºÖ¯˜sZÚ1Ǩ‡Ü ¸fBWüª¢i&ÿõKM‚å븭€vwQDo'õMe`HybàHìSs¸w´^µ4ã‰ô÷Ø)ÖÙ V÷6°›àWú»_Ão; çÙ·«¦É“æ3”5#.’a”%Ï5ْȯôïïÀjªÉÞ¬c°‹Þ¨ç©ÚÍæNžniç†kñf¹¸n­Ù1§‚7À¯ªá33Á¯úW±ëeŽyÁ¾*‡øö?V˜‹÷C}Ñëp==ã¾IþÁÚmu|›î«f3óþUo²/¾R…´úÀA­ç¨‹·½G~6O€_ÕÄh.Œžw•ÜwvÕš¦²/ô¿YeRc\ó´ô‰lÄU’L Ô"von‡q…Ùn„§›uþ,s$u ¦?8nwü\Ï{.Šj¤>-ÿªhï‚Ô“YÔÆg;º/]UàÕ9  ®Èq›ƒ"ÛÔL‰+ã–ÂÌNyÞþ‰F·ÚúÔ¿jo’Ì…±x›mÁàïõ¸rÆ·Ïö´f¼ÂÖÔlˆñ¹¶öÝlrqnF0hÞ•ù¢¿úQÞ÷ƒüþLûxƒÓ-¿êan3£Ür7ÒßáÞ^­27»¯‚wD½ó!²Ü4± pÅe@Õ¿Ò~© eëϵÞY=¼00 õðöª•aêá wú]²oç—b”þÂWÛü{Ìg8âô5üøƒÅòDäç#ÕܸNþˆœ·±öªcoÚ.P{®óÆ3ŸI9Ò °× Ì÷«ËŒ‘>ÄœVìÑ;Ÿñêëäf»?:vt ØåU¾yÎBù7º*:Œ>c!üúe쉓@µ­þ±Ls͇$ì¯=bOjþ²„šWi±Ü*å=¡ªA¨y^SþëáUýÿO ³¤˜Ñø0´u,{;•þ`f€j/ÂjÄ¥°D&m.EBýö,²¸2T}¨D<ñŒõTfô,Ž5͆ÐXV*u,B?Q¼J}OdO—Ê<,Ǹ™žM–!vU‹)ú•£'šóD;+´¾iVÚ\z¥5`½W`-h½p>|¾±)2.“DóöLõËžãétgò«“ÒÌ\’#ìéÐNžÅ,uc¼+_Þ½i/{‡+\*¦¹Ý4 Ò~Ö–Å8U3•X#Sxu~v%ym[lý§“l—€_m±ê'¦·ýƒ'Ÿ›¸ÎýF#q…ð–òVýa1"ŸÛ$ÖN5çlƒÈÏ\'à3´6WâÓ£€M{±†®b¯j@½½@ÐŽ˜­ rœPóE›àí Þ^)ºF¦˜¡ð/Ç.YÑ\°o›-`8Må[Y»½À^£òk€Sù<ÿ>ÛRæùÜ+I1ë°º{¦J1:5©#Óˆõeªš×¬äsÎ<…±»_–F/¸jÀ«ç™ÏP¶ó½2Ù3oɘÈ<[¼iÆ¢ù  Ñ~ÑZíÌ—Xùp‡aò(»M´Âêù` X”ê_õ…ï÷1½Òæ2þà`·2h$OJW÷«+v—¯Ö››À¯ âÖµì³<®Š[ë«û sT^²&úsdŸm„gž(Ýàfç<êÉhÕå-XuyÎP °;;,ƒ{ šï^ieQUÙìu‹ƒ)Rÿ‚Ûï/¸¹@øoü@ÿ¥?è_•bàU7¿ØMôÝ€W#WZïüðjƒ9¼Ò|†zØæ˜FöJ¼ÛT\7ý«bVÇa¤'buUftéÖ1Áèè`òõ×HcØ9¬­Ê“¶jÄÃ\b ªÔŸ¥þCX˜E/"]®©é±¸P*û&Pe¯`ãW`C%ìýÕš½ãéoU"ºhÜ©=ÜL 5d4>öŽOgžy ‘)‘,-™¹ëɼVjÌïK#Š#Ç £cex‡ÔMcNk k.Â<±lú„>«È{¹XžF¼„ڃ̿R\ì Ô߯zgÍm[ lH|.€wô%ÐCg9¬ä}ù ôѰ³m•FãØ‡±¶~½F±®ü ÍlV϶†<®Ò˜w®'¯™ª3—u%Æù»Kª®i*øÕpæ‡?º 7Ÿï%m¬gŽêÉL°šMÔ½C™q6Ô7¾hÎâ߇Lúƒy‘“À+f‘˜î‘/ðÛŠo³Í)[?ò7OzïÀšîdFãš“ð¾ëðV“±.4ŸávÙ!w3·`Öv¾9Îþ!}€Wÿ³3·j:ü޾À«Áº™ì«æ„Q¯òÅîSh´Þ´µÓ©à£UAóñ9˜¯+Ù½»6cÕÝp×[1‹±3Ì’Ï‚zîo"ê­àSiàpK0o¿»Š~»ÃõÄgŽº‡|-øƒó€8ñ|0xUFDï³=™G9þÈ/ì@[Àü«9Ôr*‡{ “ïðŸZ³vÄíO}QÍ?ˆYžA³Qn±»£—ÓgÊ?Éwá9×|©LŒd¬§æqö™”Dv/H…ãdFË^õÃ*b?‰yL‹e'¥Å"XêQU¥õ–£¿U‘=¬EÎ$ÆžŠÉU2‰Kª5öH­B7‡Þ]#õåyÍ$êb¥Ç|É´XìJѨ"õd”ƒ•e&OrŒG…ñvÇŒÒÚDºDò¥º— ŒQk>C~ì|PŸ%ì#æ™eõ_ü*#æ&0¯,yZÕêf±+0Ô^Iæ¡l®ðê_Õ`ü*0ŸËGä]Ç1k¤µ§NIwóû㨾èÌ'ÒSÍú`4Ú«Bµe å5`W]^g!fé~iL.×\ÒLéGŒ¾ŸÝ ¦ðú¥Ò,j=Ý»mwû»ÙÌXºúƒ£W:§ï˜‡ÁbN—š˜J‘ã’kU×= xõ³Ýif˜§míˆ7:—w¯j³?Žžnm€E_…YÓꙃ@—ƒŒ@¯^U5÷Ч(5Ÿâ:ùxÿ™2Ñü]Šõ׈ù”}ÍÜlTô_ŒÊPØzyüöå°He©yìÿ»W,vH] Ga£¿âsªÝï8€'ŽE¢LM˜/Úïñ“yüªesô¢«îޝúƒU…í|fgÁ‡9o_—¾‘•xêt3üj1®Ós§uÎuéoN'^-f]ö\«P«TÞÀóÔf<âuQÍÁ7À|Ûc5V“©Ñ‚nCP ˜ÛÙÅû7Ö=$›Ì÷°ί ZØ'Møñn–/?ø¸±—"Ñí¶fnŠ 2qàÆ põÖÂ+~´¿äñÏÊÕfïí€U 0ûÌåÀ«Qþz÷>vÈæ.÷iðvª@†5¦½½o×ZTEjn,ÿJÏG2^Óƒùí7âç+ñÓäÕ ¼ûƒ*ûü®,px~óOWè÷¯º+óv§}ßÑ+Ýy(QíóäŸÈ¶7ì¸fz;FZ3 ñµæ‹6å™Öbàà'àXª ZÄŒ‘>ä;õ˜¥æ·ï¿:½‚9•³d²ŸàÛÓ×™%YÀ«Þ´öúàšñV!æ PŸ^BýöNò"£ÎŠWs±Z;0ƒ31V{ƈR•NbŽC2óÕCåQÝ›ÃÌMåW™±|Ñl\3쉓F¤¨SÉ£êg6}Øt2³^%‹™Y1 ¾ RƒˆœL6TEÂ._©ö²‰£žÌñö°wjƒ;«ÌÛæKä0Ê•«Ìã—áóg›C~•ÎqR§úí»±–Õ[­äÍ|†rºKš?°¶u$V‹Çþþ óö`ıQöXKö«gy‰¹{I<<+yÄ«²X½¯JöFåW‹03÷bFtÑJ¸l¬ù,ÆÄzc5¯ç˜tŽ6ÛL ½ÏŽ¿Úeutn‘–æ ›H_ï}ø'[dQîÔÌTˆ<ÅzœxpÕo·Ô¼þ`fäÖq€U—ÀÉÀÚêÂ~À3X¿”Õ¼EëØ°62'ÿ gm„y*øÖ†ª!3d®ù0ªµo]¤…yÄ>mÎ˜Ž°¼KøËä<æIý£ìª;Ô p‰KTóVö6xµãz9~» m¸3ûM”À®ëáOgp°ïÍSæy|FûÑ¿êòàžÒ¼SÅçûoílܹ9ØÅkÒþ ÆÛõŒ{.®Ö»ïQEUÍáó)8ê(ÆÛǼöij¤›¬ª Op®úðJ’‹¤oôÓ Ô- šiïx÷«á»d¹Yë¶ù^ãíkL³¸Én…¯ïËÇïµ>šÂþƒ%ÚÈ”ÅÜ5rÔÂNs3;4f)hå²¹¢}·àÝGc…=$ Y˸4ØêÄ-&cjå_rý[n¹ü,ϯ~òëüëRüªÔ/Jõ‡?8Äír#ýMÀ«jàW÷º¯ƒ‹`㪽x5o7ˆP Œ³•Ó§w†ý³Yc~?û;«^Öly-Èvßb=v–ëÀ¯Êû¦~ÖÝ`Z[üÛ® žöw¿o _t&ÞêñÈKÄ+ëìøèøƒºbTËK#Ubù SY»›†}­—¼ ¼R«Òü“ír#óꚌȳÀ+=M(~õ“-Ãþƒ³Á¯ò"Ñc¾ƒñ««0S#Z <4U€1kñ_ŒØø0%àm5µîÌ<üdË™\¬Û2Ô´ á ÛK}ó©}Ý2Ú=PÌ\¬Ý û@ÃTÒ:Ñ^ð¯#f»ÒÝ©•f1Þi0õÖKñóNì¦jÉ5Ù•êüÁ÷Ìsø×ír]ô—ãŽºÓøty“ã«zY¢y Nì²þ``r?Üw°§ ®2ãVO3 Èø·|Lû Ñ3? UoùI{¦R/òyXrkXÔ°g}¯«€W½Ü¢ VÐÉ•óyn¨; Øäöùåþ¶ ‰½Ç,Š›àæÀ+u攵e£iѶî6ssÔ÷Ðî|wQQëZö m »ê‚UÒïÚŸÝI¦wžhÏV;]œ[ ðÿxº 0­ª-zιÿ=g`º“˜†††¡;¤‘FR¤»»SR$DP ë=,D±ÅŽg+úÖ^÷×Ï÷þùãÞ{jµ÷Ù{í#ª£»lO_-g>ŽÔw=™z‰ëí–Ûq®“Þ§Ù;€WGì{ºªšªï´_ø×Àiò°ŽWë&fÏFÅW6Ÿõ&ê0p$ã¯úb6>ÑmMë|²ºàGØ_Xyù¨»f“]m'*b¢'³Û½bÛ`5²O¹"×Þ‰ÎØ³Þöºôr¨5¤Bw™vÔA¼2˜Ï•ÑæþÜùš’gö½ª5Šñ½Vø;ž¾¦1Œ¦²AÝcN†FÑ~›©†¯ÊQ5[¥ù½Cƒù~}pƒô_‰Ÿ¼9y3ñz‚5§ßjã®/ây£UBØÓ“@›%Ègê—ÆQ!/%|>ÔYN M×€ñç>ƒ¨Væ’‡ˆÿ*7ì#J'[J'fÆÐ{訧34)œ“É{ù8ÑT拤¿=žZQŒg¨¢ØG¯iŸ8“úía;2“q­¾hEFÐÕXSˆXAìk"}øÒ·Â–WbÖ˹FF¶Ú#Ñ©ù°´êë †àõ8ðçÄ´G±6†«¶Z,ËU/]KŸÒÒSݰ$–7‘6àê-Œ¹è£ÖïzŸç³1XM3a#Õ¡U*+> {´øÉÏbÉg)Œ#m¼Ffz»ij"ŒàU9Ìø<}ÔüMÎü±¾{ÕÓÔ=Î×¹Þ}*“1åW™^$cY'é—LŒ§©3ìÃéÑh±D÷í…ažáT„µ"º íñÄ[ѲÊà•%Ÿöà5ð«Šè…ɪîìOÁÎÙ ¸ûºyNߣ%wù?˜¡Ý±Dål Z¿ וÊ]À×¾ÄýD#땤%ú‡Ö$¾_ ë8êvM¨ÐÔL=§¾Ño'k«ÿªM¡K¶²=j¥bOš.p5ÝwFÎÚ|óŽêäm§¿½ÖÉ<¬ŽÌ<GïÔ``È_êkÌ|ñ÷ÁNÒ‘ /1®@"ÍÞá‰Á‹—Tĺæwa|ûEàU9Wö÷©zµ}Áí¿ªaÕ¥ízØMž~Xm7xµÊHU¡ÉjðªÚÑm[¯îÄ=𢭠¨qT ÷<€gÈêcœj£ïn¿’Hƒ µÑ?bSìàÕ]ª{žþö¹Ø¯ºÁîº{ xÕWß캺[ìM® õ¯öØAî ½¬sÔÚƒ_‚]VG¯¬^£®yÌæ9¬¿P‹ø1sLü4=p×CœáE˜á¯øqV26êª=îs›~µúíyhï»VöécöiWÜnŽxc½—¬s¾Wˆ1Û{ðIÓ-*DOoVZçr•õÆL•UY·óëñi$ÏÇkP[Al±ÚX-~{îs.4ާó73ß¹5PBüWqþêðù`MŒãô§ü¶"z±5í2‰Mèƒ9šE˪lqƒjN̉':çQdqñÿÆ,…U£$;V¨Ä]6f]‡b@ F1é©<#Œa¼V%Vô ꥦ†³zâþp!U ½Žº ª/—#²U ë_%ó¾1ü<‘•Y‚꩹˜% ˜«I¾ªaù,æ¥ÒçŸ@V“Ì+2.œÌ& }¹–vZÏ&Ö³¦‰|«0©¡nIÜ^¬¢´Ö׈|{ÐG5£ý ¾SIŸâëØAÓŒÀx=£®à‰„)ÖÆ®ó>™£è_ÍŸhÀë4JÒÃY—ñ~Ö—™Çû¶WÔÞîyÔ 6!³‹ú¢·«êzø•ÔÇùD߆Ýùi-¶q]Á;£™ï\N—yqÞ_ÄÞú)“êyZðúðÉ£vÍ"¬ó5˜7aV×Ä8€9´³®fáyU¤Ï¢ªÞúÿÆ3TÆlëO¼ê&qú+sYoÓâûбÏÓ[1 ½¶ ³º®ØKí¥/¾)æïqØ‚Ÿ±rKk* ”âz¥ŒmŒ^–ªeà&¿êwé¿úT­ ½ »ì¸=ë¥é\—ã¾6óq—¶‹y_õbþ`œîÆz^í¤§°jGà:…Ø×§ õ_¯nÀµûÁê–è‰ÞàSeü<,w,,ˆ·ÔÛdy9êÆÐçþv¥_¨.«ÖÖwr>ø lìµö{÷‚[î76è6}í\àU¬~J=j|à•跷½:êÝ_*5âê°rpŦèñ3·fœµÀí òs%Bh!×ßÌè³ÔëKæOrS\úzæ«T}¨ -ŸBÌÔ•èÃhâ‰øê«Ò^×_ŽJh€u$g/ D¸8õ¦]"ãRÂv_¼øˆiÉ¥°?ÂQLÐO©ÄÏd´³€x¶U –{4ñªjXQ+.Õ϶¤Ð›%÷tŒôJGt–c4xóé7K ×Ç)¤­TT•ºßaDý–öXõT7ö•Ø€1ZêàD ?^'Èæ3¯Äl:†±–^Œõ•¥Gð,öQ\s&þIÏ•©¦z}QØf›_õz#×<‹®l4É-}CW»ÕãäQMueïAe8vº÷±ô·¯Ö˜bïcŽ×&ÌŽ†º;Ú8}¶ óù&Öw®ªöà™Vñlä ¸R}:ð8èü/M¤nŒ¾¸E­Òý€WCÀfŠõïæ%ìùñë^†Ö^`†ï Ô.¬Œ"´VôE¿2WÆÚ¹ ý*¹9 0«Ë°Š[ÒNhÀºé ÝØ}XÎü ŸÁëÍjGè›o°çp¯l]ÝUu˜uøe‰¬/ª®ÞrÖ=lÁøöv¸{/`ÐÜIêãˆÿêCì»#¨‡ þöŽ@¬ÑÖêôQ¼ ²Úø)s\kªa¡ý~v‹_ L±­ýŶ²cìc°±÷Ø2÷…Ûä×3õ€ˆR; +8üê ã…’B·QÎÜù:x¶èUÇ_ÇЗõ€Ó Ñ¥Œ=zž‘öèÑ¢ï«vªs¬Qüj§5v‘?A4¨/zÅ.Fo^s³œŽxØ]Píô|××­°]7Ì­övÖw=äéú!ûÿ-øHuôó*ÝÒLÅ1€zÈ¢yœÄ{pž';MGð+±GQOæ5¿ìÁ"ŒÂíî àU™[N}ÑdwÀ}l¥.Ôݰë¹ANTjÎÃŒp1ž`ðvå…^0-¹ ¿ú“¶|!ÚÕ c/ñíÑh]/u ïDq«Ž‘êGÏwcŽÈlbÂ6X ’#¾”©j˜åÚ;¢ÑžŠþŒPZQõÁ¯Ö¨hJÉYp&™JeÜù­:±çÿ[‘«$…™HPq0.\«4ˆs¯¶û$(‘^ Á¨¦´¯ÄÍ w"•þ§lF—gÿ«ùø‘bÃì&‘öe³q‘Kk-"ŒAQÔ„‰c,W"+Š'”ÉŒ atEÃpýèª)U[•Iaý«òÔaN4cÉä¼1ÈL¦Ý)‘’{/*š 1Öuù X.:»‘xÖ–}>T1Ââú¾j­ƒ³Â"£ïÐÒ =`W³æZîA¥êúlKWð«®Ê±Ùt‚u=EÉkr8z kvFt 9U'ÕÔH,º<Ûn3ÐX³Úd‘K7Ñ7Ÿ¶ç—ú$˜à=Zìè<ï=¬bó¼úÞ”Ó‚Ësô£¦ìA§ûÕ°3ÉÄ*Þ/ùÎhAçQ zfp0í™ËsÿÝÀ«=¡±´Ì¦©‰n¨kÃ8€¥ªØ¿%ÔƒgRµ°ZÖb6D’{t¥žL,=×í°Û¤Ðß^|õú´ ¢E…¹YO6õ‚ª,"WëžIœöc—Òg%VeEêü§†íǪD‹H"kò¿Ü&ESãèMO çñ Ù*¨?ÔÉH¤]œJå…hÆS%1ÿ,“O—I=™l"œènu]£è ð-Šþ³Ø°›Ê3Å4^½VìôºØVUÑ‹ý©÷"qSmô_˜Ñ<,§¥šø‡}²Ÿ þÜ£ u´¾zÈ=`WHž\ ëã¼Å|œHê…^Rº y×|ÜG´sxß߀5ãyZz# f”غmUu“¡‡ð™÷™>°×9݆t‹qZòÀß×÷ƒÏœ£>C±®æ=«’Œäõ¤êÞO&Šöél}ÞyŠ1ð·ƒ_5ÖÃX÷¬õEGK}EÌò=Œîoy¾¦jàºÂÿKW߯j£_§ÃöéïϦ״²ö½gô>-µmÊë@•W«;­ß‰–åÐk±x%HM0­›"3¨`×%úu-0¿å|°Ua[«£êw؃Oã žQËC¯Ø*ö´v$x•ïBÞ$<íX[Ç\Pí½Mrv®K±fP¾%Ú1šjV1ƒÿRŸõà·ýÐ]™÷\ë±µÞ> ö×ûàWí0s¨¡¡+~[ð9i¼*´}íYôÚbû¹›~UÙ Ö"jÛÅàW‘°¿šhàÕZS³n¨Ú~Õ½3-–ø+©Pv/z¢ØFìZ¯²®KoƉôªI¾ó\«ñ1à•œJ\Êeò+‰oß宯»eè£_lšÛî^µm¥.¡}Ä_ÍE$ïUû·õ<ñ­ìT?x'L'ŒuÐg»ú…zyÔg˜ü.ÀŒžÁìÌÉC È®K¹6ë°®öRîÅ»Ôs$4Œ,gŠãnp臙§òý¡<ª…=fÚ!Ø’Cý+‰M5Â~û4õdâýHoKc*Ц+Ou!cÂ%F½fØÿ#ñõXk06`c*‰ÆÒWV‰ç2±ô#e1š=PÊKâ™g4-È ® Iý£ËË8ÏHþ>–V¢¬í áóÁ$ƩƇOûj2òC°-ñíÙÆŠôÏg+2UÏö&‡}üޱ ±áÊ«Ñô_mÁÞ—D;n&ÖBSúÌa³h£Kˆ +±£|¢>὞Áˆ­P-´äRµÁÁö²F|z؇ðnõÀU*ébîŰDÒuY6³æ˜jÌ'h=5EOà8ÞU>ŸJ¯«¦¸ŒÁ.ÓxµÎÄ1æ³®^ ‘+}®Ã:­e„ªëBï9ÇøÊº»÷8˜´e¶~Úd{¿Ónß ¼jÀ³Há%«1 ÆaFHLÊÀ«•œ}›X3ñ~ôJ±ê§Ÿ÷¿À½1ΰŸîíÏKíæ‚Þ¦;)©‚5Øð<£aMÂ9¼«o>ózŽ`þ¡$ú°;³“{Rß¼.«×5Ƭ‘ØË‡Õ·úU؃Rùjðª‚ÝoO¡?ÒtU—ã”·X4ÖV4WTo-ž-M·Ã ˜Áèõ>x‚Ѭ¿:ÿþ‚:ŸuÆ»a%vŠýÿ_™Š³Ô ¸÷ÅV˜9ùÌìj—ûWj­+´]ísj‹^f¸n#ìÁãzxD+; R´>‡½#6”Ziält0ü7Ü©6F=|ò[´Š™t ñnsÉ<ÇŒì¼̶hÍA Çjò¬õZeøSÑO¥î¿ö l³%ê9õ®ï¾uçÜKØg¹6n-,Ñ~ú˜`·ÙÞîN{E¨ÉúýÜ Wª‹;¯ÑÅfZ'±q©ÔëKÏ¥ª½ø&%ƒïŒJ+}ôØ+~´ÔÕ¨{ÝW6Õ5uóðÝà|ð]ÛU”+W5\'±TOz—Ð+Ñ^m²ð½{MGjô ÀŒù•ˆ_#Óó£$¬/Úl{8=Ýù¬jÑøP›ú 3ÉfÄ<Id™ z¹!À+™ŸóU®?=ÔŸë·¦rÀ«Êÿò«¾\ÑŒD~™yÁR3z6,þV*PüL¤¯uÑJ<í‹§ni‘&’qcA„¨Ä]6fÖKóbZ1®4ÐQÏ& Œ¨DŸMðý@‡*†~ï4Æ›Æ1® ‚QòqŒ ² “x¾ËÜœ$âOï­ «ê< ê6`½ ÁÕžFfòùWlø\2™öt`K&ášAíÅþêNŒé2½ú@ŽbŒ{5aÆédÝ‚;¬hp­Ë쉣ÌJoǧ{`AµÇ_uQOâ‰éµèó‡1ë³íÅê§shG/ $]—Œ¯/­­žF~ùk™%sl¦Z™Úz0ó wšîæ/½ÉÈû’³Ú\§Ÿík} ë󯋦è&^¶Î6‰ËáõA-ö`¬Z­ÿk>4ÑZN?V‹qhãlÜGFDå\ÔÁ>ÝɸƅêE<Ñ9ô\uƒ>{0]‹(æ?Ðk:úºûê5sTÏÐRÙf'°o(~ÍóD\qVf<ã®w`Å-ÃÕËÔq¬’·ð~OÌìþ¢”ƒk7¾ˆÊyýímÁ-_Ô1æ1\ý”š:ksì=´uC¬oÌ*<÷¶¹ÉÕýWÍñ~VÀlüRüSýð:uj(_€ÕÓ£Óã(ªá=N°¶Ñβí¶÷ žKüW3Bïûí¿OØÌú.×ö¯»UÏ¿úÄíò;™'uqÄMöi×ȥǿ0x…¡3À+9•\­cuôN_FoÄ3”Òožœ—"¿*£6g3ìRgÕƒJVa®:æï^ÍòoëmçþcOÂ6[ ®«Ën”KˆxÒ=­ë9®‹›jot=±޳›í8؃oƒM/Òì{À«y¸vOX‡=Ì Ìñžè­l¬ù–¬ópzE|h²´À}wãy'»–©ÿúñ¶ vàj‹ûÖf»&NjA‡\ž[{Pø/˜­«ãº»iXÇy¯Ùx÷«‘šÔ;À¯^1¥ì·1˜Ù_ ?e>ô¦¯¬ £Á7¢w7cƒZøžœËúª‡o4e¼ì›×Ì1Æ-DcŸ Ûšó|©ªå?Çz©q˜åõ6ô§ XÔíÃÕæ+ ׇã¦jÓ'Ä31¢ñ´ ´I çåüƒQÌÊ$cˆ§Þw*=X‚-ÝMË&ïŠ%¯«B, ªÐg2¾)ÐMázMfC&ÛöŠ'g"ÈÈä¾–<-YËåˆ|µñYÄÙË«òä ’u½²¥A½€xèûl0†œ'‰š¶C;°€-`Ð)ä®0ÅôS«^ú¿Œ¿ŠÂL»ª~€-!½s½¿Ö•d)R“ÀÁîÒÒ·ÍÀ—RŸA´ß7«šºÏ `¥ô——6­ÀxžQ ÈßZ«*ºP'¿îo¶åì|_”Ðú¹§ìÝîG;sçw‹ûÞ ^UÕ `)­´ó\}BO´`Þc_Þ7Wßg¯úobŽJ<ÃB] üª:ÚÕ«m>î[€^œÎzf5÷ ºT-ÁxÍW¯ùyV²ÄZ©íîXíd5•w‰nŸûÔ–áw÷ÙW\s×ÛÍÁì¿~{<(»G]÷2’ëWˆ«î§žLü'È8š^d9Co¦ÞCÄOäü¡'m–ꬪ:ƒŒa³:`…FP×eªîƸöŒUZ¼:êJ|«®þ¶æ…ãºã*9ä8Õpÿª º`1úòIê¨1¢‰aÕ¾DbJ°ÆÓy¦˜F IÅsg©tÖë1ÞIüR™XUˆ0ñŒ| ¼é±ÌI"2&ДJ¯YÙUšú'ß9•{¢Éª¢Âú¢åhgV¤‡+’`Aβ j}ücÕ=jÚdòL°5àhóF0R0…|/ˆT N>ƒÜœ¬ðÕÅ<ÛL_·dSÏÄŽ-ñ¢–z2Wåü\ÎÚ`þ‚9(^·û1FËU{ò«ûU‰Ž×wkÁ·v¬Gß™L1èRŸ¿mŠß5Ð…äTÓ±ÓÁ¸&3ï Xó|PøOàÕ(¢o Uß,ÔÙçwšþ¦¢Ùmĺݭ ô2ó=#j¯ê‹ÌÇ‘vÀ|_Õ6Ô­ÐežÔ‘Ìœª_2ù^²–¸“ÓÀ«-:ÿÝq÷=XWéÎÅsîPû˜‡¼ ¶R¦>ÏXÊnú5ÿ§Eyº£{ù‹Ñ²Nà6¿™ÇôêÉ|Ž|óqÓÇ»ý(y¥ÝpÅkJ”à$+ižòô>ÖvêžÔ’õ%B¼5Þ]…öx¶Ÿuœù/þÞ«–†.ÛÊö”Ý„QHÑ•\¡3^o¬ö^ý’æ-“üsÝ<\^* c¥Ÿ:˜ýÓq§°*Gã.À+z ­}`!KLÌ¿¯ðI©z»ŽD€5R7…Þõo´Ûüj@²nö;[fûÙ‡ÕAàÕdwÑm^­ÕÃ" `ÖtyàW÷›ÌP¹ÐaÓëz´ê¡¯SÅs0zk+lu9ñÙM5ðæÔC~ wÏvÕCûzb—:Ël𽲺Ó?f¯ûóü›Õ.ÕÇ]¿úÑNÇÓ}ìæ¹ßÝ÷¨JÕó\7·¬ª‡Þ­‡Û-v´;e/êªj™>lßõ_ÅhÖ¡žL}3㹘ùÎË¥r%ú| ú%ˆoˆöÞ¼*!–ÍUoùY6MKаS\K7¯='öà[Šõÿ€½äãÞ“ðì½7m²ó½"¬¢­êOò+P)еz@Rgž@¢¥¢î ´*’ÑÖ¢veîÜý2‘>í êÙº‘§_7«én.ã¯b0÷ üàW1Ôvé%¸B,Ùú hC%Ô‹o£NÒw‡ÖÏÁ,nfS®Äb`ŽÔuˆ'‚¥óÌ%–熂yŒ#æÔŽ1ðrÕ,Æ3d‘ƒU¢Â{‘$À¬@]+àVAýÁ(F£§0ö ÐòKa̧ü"˜#–kõðy_ ­Ø ¾sóóy2ZžΙa=™´p|{àÃO!—cĪäc:ÍÑ[kÂõ²«©iÔ{K`œg=ýc¨¢°ú~RßQ-,\HôeÅŒö ÕIú¨ÏX{õ-Ʀ=m…Xǵ°“E2×éKÕTç2†m!®ÿx8ß§P¬¡Ä<̇ñ­IŒ‹^•˜‰z$Ûr—)5ñf;ó÷ªŠzùš½øƒ~ZÝ;J8cE]ì]U•Œ0ÊhÝÏó½-'»Sõ‹¦¾gYã´h‹ƒ¤±ªæ>VoŘ”X5‡±® ÐÆa·ž'÷)Õ/øß±bs±êêÞþ ü¦9,®ß̽h¯h/<‹^ƒµžŽµ1 ;úrÌjÑJ*ÿ`u)‰U˜­”>ÈÓ¬ö˜á-¸–%Rµ.€êb^I=¯¬÷Å¡‹6öàV0‘Hð+ñ_õÅÊ\lG™ÕOªXDÁFÀ<ÁR¬ñ[ÉÕÆ‚1~ ]Žgj‹»¤rR/•£;²:N¡z—>ú `Ê¥¬ƒ<>ô¡“Ýî×QO©°kQŸá€Þe#^pýb³ xu³]ï œÄÑÞnbCñ¡Í¦6£é»êÝ÷½ónö‰‚Ú™“v62$õ%q¿Ú`¯RCª;Î7)T·ù§¬o¯ö«î9{‡ûÈ.T¨«°Ž®»óîeŒÂ7Ä­J Ö;ô@»ÍŽtwÙKexºýKE9‰^¡‚_•ðœ6“9Í¢\8‘l¶:k÷•%ïÄóÎÀxÍWüªÀ«†øÅ.𫊮:xTGõ,Ã=î]؃­Ô {Ñ»°‹Õ«Þ;6xU@Åç?½Ó¦3í•¡@¿ÐÞ†ÌÇéŠû5+«¨(=‚•Ï*‰&’?Øm—ù¼^m2‡Cƒˆ*#ÕX7Ö5'/Y®²üÕ¡Ô®†‘_E~% ܪ,Ï߃èã›É“/øm{M=uÐ}aã\¶“ZòŸEmqÏÛèÏ#öØd™ øç¼‹öOåI¤ÕNå‡N™ödNŸÿÆ 67}9Š¥¢¹× }<’\Dj€Õ ÿJì‹^x‚[èÓÞ¬ö˜=¡áôæLS³\×–›%êýP[Æ·‹—'¤%ž"–þç^ôÆ0ò«.³¿$;¹6¸ýcás«„p¤hL8+¹½6I<¯Ë¡rž¬÷šd.1äZõ¨ýdzÄîá ZñxÎóOñwU G.çq©\qÑa†Ç|¿ ¢`ýTAå‰HÆ\•W¾ êܧ3^TìÐôp¼h^×§÷Y´¼š²EÑŒõJdzf‘›¥ecµrâù¼®r #ß%·§˜ÊZ¬gá•Uém¨Ë €B5Da7’ç_=ÏןðéžG®z‡õ¯Šue½¸!x%õèq·jøÖŸ¸ŽÄ–¯Bº½g31s¼ŠÁ(wÕ5õhÄGõÂÊžÉsÒ5ÜÌ^Iëï4#LŠÙe$Rc;Û]æ7Æ—]ƒu—Ú¯ål±@Wñ>^1Röâ¼@¿}ìÁ ïOÞWì²Ý}!šçkY®;ú« ÖµD4ôBïm+ª¤_Ä,¬®š¯®˜(-§ô ñWg.fv •«Ÿ0Oé³Z2¡~Ãu&«ËÔv³IÝŠ~­Èˆõ¯DÁ½y/Pø°×RܵŒçüUˆ 0k*+ñ]Wi抾„O^W3C‡À¯î²O ªê8W ö ¸¬`SÍeÕÜÛœ,§EÍt³§KpŸQhE1¾?I}<XÕ£p†‘†e@Î.ŒŸ¨ŠOwà9îe}Ñ!ºßmWùµ$îÌ>b­íoOªUz›­çv¹Ý~msTß {°‚‹Ò§À¯RB¡F2µ’ZéTâ“hʃ¬(wUÊ„GvÇÊì‰^–š¢‰zƒzÿb}WT ü!öG…?¬¬©;hïe|{’~øqÍísOª›aVqÓìP×IÒ]íÀ«]À«,5_ï°Wý7€=Y¸þ<]ÏL»m†×m±æKÙ1 è5”Üyžå x¹èÉÔÅû'ýX+6@Su+ðItÛ…5ÿl?·kÜ«¶žý°=åê¸v°«« Þ§Ö¸(¯㯾óN˜6˜©y< þy&â¿’zµÍéy–kÝ ¼’UZƒ}Þ“xU—{ãÎÃõê´9E&4Eut]G*.LW—BC#ˆµÀÈgHõ(ò¢Nh].WnEÌ¥mŒlJÂõa¾6¢¿[¢±’ˆ&rŽØ \"†:¢5±-HÖ6\GUÔôJK¨ü £')‚Ü©>kOD1ï¸=U‘\õˆ Ži-¢UŒúGY!8ö×£ ˜Ë˜Š þ`bMyúãkñÎqÄC‰$"[+²º@Z¸>E1©YUè§F3¢+“öX´d_XËEª*®Ç\“~°R9AGëäZ Uªþ»·ÄP=ˆy° Ÿ¥ÓïÔMÇè{èËj ®Ñ«$†yˆW`§5&.çƒëWÖyôÀ-ÀøžAÅ1o±“nI}†4àÞ ÈM<h®º™Ez(=n÷™É&Æl4ba»Ù¼’ûHŸÊž¢>C¡Î‚=˜ÎœÝËÓ^’–¹1U?cšx^Ö>Ùuõ¼nƒÕ¿³`Ïù«cÍìÆ:N°ü&SŸ£jk }Êö`U̻媊îî¯ÆîÙXeéWÍCúˆ–*‚?€QR¯¢¿¥þB7ì¯q× öà<+«ƒvÍŠoNôÁ=j“o´¦­RBïp¼{ìÁôkx÷ µ,ô†MµwÛ°Ru¶«ì"<0CµÌ&šUwo~oÁ¯q7ŇqX›Õ™Ÿ8Y½Ë{ž’u× hÞ“ñ¢ï³æ¡´ôO`[|çcF²VUÓBŸû³íN¿¦z^µ².Ù´÷¨Åz½½ÑvûýFæq½+¢²]æò\¢†¥h~ó"CËX?ÃXoâê_`åÜζ2äã¹êáÝ5˜ ©˜KÅèߦjúùaŒ¨õ/öÙ(»Ògæ;¸ÕI÷>øU‚þ¼æWÜù µ@/ÂkQí {°‡Ý`‡»}Ì\¡OÙoýa§áú um3ž•Ñz³¾s õ1æ0KIbü†/Ï£›Ëcv½ìGÙ_wÂ}hÅoµ ßøÍ¦»Ä«ÆêN{ÞÕrÝ-øýkÞ؃!OjxîT¡ÐQÓêhï_äET“ÈcñÄ,@¯€Ó²’hÑèíhÆçôAÍ¢ ¸M2w„ÆÒ²™¨&QvbÝå…êõP¯PZcÕY§€œ$Ÿuà²Ãy:ƒÔYîÖâÏŸ;·¡ ª/G…ñ*>|šG¬È%©@kLüH•yuñ 5f ­Lú¬$C,‰¿•Ú‚UÉÁ¨4\3…˜˜A¼Šc¤VðN$Q-‹,°ñ1#l&0n>™q¸or8þ!AI$I:}ìÙÌž­Àç©@»7…|,+ì¿*΃Œ#‚\+-œÅX„•º6œßT ½/,_0§:l‰ßh#G`¦ûúmõÑúe¬ ©µ,¼ôŒê›ñ6꨷Â(6Ê”ßæ«ë*XÍ<7Ámò‰“ÔT¬áFÄùZªµn¯G‘—ž†…3 #.>Àúj é­Géï0½Ì5½×È9Ä`?³ÍŸô]¢ÄÆ< Šº¢÷ƒÊ1b§éž¼’þœ¨Ÿ5m½}k`|Gk9G¾ϸÏ43µ°é.ìÿ{1êb…=ì;K/xKý€ÿøU.æåB´1×_„^i ÎsÙ< oÓr²÷ ph,ðJNkÆ0Šaju¶¢ìöÍЮYêSìÎ]ñXá´óÁŠ”TŪÂÌàãʘgô ˜÷ªå¡—mš=hŸÕ*çrÝ×FªÊ”Úls^uôÖb<"tØ‚3©ÏЈ9œQ’7à9¿‡šËú‘`eŠ=Øït㬭–;+ùõ.¸^ñ¹…¾ð»ƒ_‚ù´´ÚeÚ~ö^µ]ïµ³Ý|·Å¯fÓó#Jír¬à}¯zÔ\÷*¯êïÖÁF¶ày5Y=c3Z,ÑNÒæZTØí£öS³#ó‹©ö¸õ ‰sóo·¿ùKý©À°NÀ‰»ñßL0ãO]/÷%,ÑûÁÝWºRê‹öÖwêîô·´Ÿ`Ï»Yßnßõ¯`­â«uc𫆬 îE{PnDLÖI+¼:‡]¤5ú¦‘(øåì÷Tò‘zÎR/užÿW؃·»ËV¢ŽÛ‡] W×Mõ.x¯Yå¢=Që…èÝm:*©h܃úí’] }ÜZ'SˆÆ ë0’«¬6îÒVrðW ¼×‚çƒRç¸9 {PüÇÔ<7̵¦v ðª ìAa0ÊÓ‹‰6r^׃y㊪`gúï¤3Fkžzíˆ'~¤·¢ÃqXªT2‘§R879™ÏÉŒHáóf’™%áúÙáxÔ\ †x:Ë1«J8/¨Âšùï_Bøœ0À«Ê*Pjˆ¡í™H{<Ïí‚xõ$F0”ÇPUg=¯ÀÞlÖg(G~™Iû1"¬ÈÏ\ž@!ÐgH&{ ¢øëßna½TÑ­YDoÆ(­šàP•uk"ÜB kð*íAÑ¿š¡ÊXƒFêy¥è;h6S/àZh­SÅé†ärÍaÕWÐ…ìÅyÀ+9‡•'ÁZÕ¨#Z6â쾡Ö^õ2 ©U%õq¦c¶Óµ¶çaú¯bÔûú: . -¨¢+xߨ\#6¦Óݽh/Žvâ-úSÓ êS܃ö•ê¡ÔíAú©èÓÚè·Rsó©ÐæIàêãxOêã<ë~U„¿¤þ`š¿ 8Þ òº9§ê@ÕŸñË À+9KßÀÞÊÔ.¸Þ` ¢ *œâ5ìÇ…ŒgŒ?Ñ“ýâvŒ­ƒutHý©_Ѱîרù¡‹6ɱϒt¦«îþ4EÃÒF™—TWð+ô–x‰—h)•ŸÑ’jŒ¡…ýäkžïJþïa²«n*E‹æVeü»Œoõ›cNH}ç/üÞv3ãÛ»Øò.ŰgÕR½Åq3Ü^¿.ìÁaµaÖviú¤Úo"Cé¡À«ô_w]x%ö`!Z¾÷hÅz^5qwÑC~ýËz©«1£†€e=Ï\óÊjƒ¿¶çL v ÆÀª“î]»ðØÆn“;¯J¨/ºÀNrÝõÝÇn²Üûvùú6؃oc‹E5R×@ïTA»:Ñß.>‘ÆØCDÿJ˜‚pÚǰ[4–Iž×üà•T®9ä®ÚX´k!¾û·Ír·¹·­ø3ï°/â݆àWuÕKÞ‹°Ë{Rk§úÍ» üJâµc<ÿ «¯ˆ¾è8`SUÆ$  ö±“eÊ<¬Ëø«dÛÕnsgh<×ßMjZÜš¨¥êÃPûÐPúróqõ¥Ôè“8ñ¬ãO.Ô¶° ñqÍÄœnFÏR*³ÛRÉ=$ö('žÊÓêlè‚OèËjJí¾TÆ8Iþ`pMñuáËQG=ðã‘PATVR8–!>œ ʸÐòD¬Øp½°hÆ1æ3½ÊÏÓ$·#ÈÅ®€g¨Â«:âPà•+ÇÚIa¿}Ô?ñ¢±ýöxWì$J囿öÁ&ýÃÛìô_MxÙ{Åþm­''S;• 6íi êüÁÊm¹ ÝÌúÑ´G/0¿C*¯×rö¤ÿ§˜Þ’ù#±]æXh 1 ö„âZÒ£³D}êêHž”®¹’õèÅþ{®…B̉—¨æ çb“1[[³Å‡uV¢ÕÃóöz—’CÄ Q·ª|8¶<“,Á®NÌ~ˆ¥ ˜E¬‹çY_.yR’Š çI'󾱌Æú'Ã/ž>pGk0–ö¥ÔkHås'Ó6L¢G,šX—HíÙd¶+«¯‘,š¹?•¨%úÉÉYn(gEQ0™XC‘huÎæùa¬ý¶ØâhÓë<ݨ¹^ü¡ê+Zç€is€W‘Wuu ãE£0+þ‹§hÏS…šX±)º&[S8—ª+òLa!V×S@È K¼D7gþ`¢zsw1f•ð½&jš™«û“ÓÞcV›_õ!#öóIÕPo5¿Óÿ§w`u<¤ÅRÏÓñÞ5•Bÿ•ÔÇ y‰ZxÝhý¸ií]ã|8Ñ ×ÌÀŒiªneÅ”b*ðPËñŸh©¯AkªÂ¿ÊôãþûÆÓ’§¾H ÔIþR¬µz°3ïŸ`Ž~‰^™¤®0ßp ðb xªœõcµÔâkÅ5ú˜[C HgàKo̺Ì.kÆŒÏ`ÇíêàÕ«X!ÕŠÐe[ÁÞ¼êÞXüÊó¤žÞ\àÕkj¢·h‰=^øU'FÿŒCÒï+ö TÓ½¾“T…ê‚}¦FUâ~ žù[àW­©v2%ô¹ßÇîök‚´“Ȇ=x·:¨—Ú1n—ÛèšãºCDC;ÏU^=ª4åB ¡•F"ô‡¨~àW#¨‡,J‡w MåÔ”J„up°Aô¶èºlB?żz}1 mÞâßjÿö7ø³ÐÞîi{Ú}lç)¥?w½Ýïî÷¬ñ9® üjŒë¡ëaô_I}œ|µ xõÿ¸‰ ´äãLÇF3vb©jÆ“WÉLÄúÎÍß~«ÓÃæ=äëø~Cu7ðJôÛ±ï*å*ºÝÀ+©ízÌ>ã¹îN0èEï’ ¹¯2Úv«r¡‡LgòÑJüƒÊå’›Ó…õèåLîf´ï%ØñTo‘ “ÝÈ ja„$~Fòà¤^êYúÕ“ñî$w“kÁÓ¹Eê»ÐÔP×p|{”^ƒë dbÆô£…''Ïc˜ï,¼GªŽ?ûŒ)¨ͨÊ(fýń㠹6YÜ# ¿ ž'𻩘-ÕÂ1œ¢;C~Ã<Ø´pÔzL¸2tàÍŠbÎslE‚z©AÖ·Á2)Qÿü ,Ά܈ënK 2¾ö)_Ëéz ðjze 0£9VF'ü!Ïë0¢Aô÷¥Z­5è—ñ×ÔJàU¶=n·K¥>ëò]9o ú{ŠýL?©x¢C¥û¿ÁLnLæ2s±>°h¬AQZ™ˆû PgpŸÞÛ ´%·ûeÆl=ÇóÁªq{p˜]í©óª øU²fïS+ô;Ðmvüzf¸.‹¨o§»š®–¾M‡=X%´ÛHÔßÕKKÈ"Fš/—X^ìs»Ãz}’‰ô¨Ô–ÆýбW£pÑc­¨Öø»­g×øR)©­{Òžm66ÐU7ƹˆsîœj«¹>n1øU}·{Pêã\Áž·Žxõ‰ÿR'µZšqx5‹÷Z@Åü&À¥vj8ù•Ôœ¾OT—•Ô—Ÿ§žó¬Õr†y™dN¦\&ðê5Û¿}ÑZn¨›„yÞ»~•äåS9ÃÝÍ|g‰aØ¢þ¦â\Uàb;Ö” Yøä5€Yt5UmúFd…5 =8;ln3'€W—¦¨…n&ãE“Ô õWhb¨#m¬ZØ‘ÖS¯OüOR‰·Ñ'w{œukâ0sðº9OÊ¿¶R;šNŸRÀºj©Jä ih6ßôiÄœ¡xæ¶Ä'Á9`%ê'„9OU²›Ø½í¿=…,,‘ׯ’<{«rE“c–§¦hùRc±*ÓÃ<›èSf“óä`îò¾1ôo5/D'9ˆc ®žÈ»G…}íT ØóFr~å,5W­Ã¼oN¼*R5t´nA<¼zO}γÂóèÿ•<ŒÀl¨§CúN-|¯F«!V¥°¹"¬jº­Üê]¼Î¡ßo:vFá±’GÞHåë2àU:ã¸&awžK&‹UhæëAä—'ÍxavÁìƒÀƉæô>þ¼:Â|gðg]à]VL&s ˼?MíÄáú Sâýȹq ³¹Œ>±¡˜ÃÛ€UÓY¡£WÙ‹¬½· xQ]Ÿ¥.eGý¼ÿµ‰Ö­1ë«>ú“ÐëÏøöjT­=‚ù<Ÿ^¥°J>«Ïz­€/5Qœ‹ßˆ_‚þºWE™ô›x‚ÛÕ²Ðû6מ²`o† íêÑÕG ³æ)µÓ[Ïø«nØÅ—S¦-VæTêÓ ÁNp ½>(Õ3û4î×ON¨toŒ†ÔÁxÈÜQ=Q’ÓÐ"5<ôøÕ¿0¬-øUŠjƒ¹ËŽr{Ý¿®Ù¥F´¡žL²~@½bþö*…©L= œÓ×#q•Ah‘T2+À¨neDA‰ôx\'V:«Þ: èö¶ÔÐÙâï°?øýÑà\Åî?ö¨{ÏÎûûÈp?¹çÝãÀØE®«›gGÀܧ{Úív»Ó^Õ•Õ*½ß~ሶ–£À”Jƒ ÑæTô¸ØeõÑ¥è•Z Q{†úW7£æ©×ýk´D´FF¹ön.žò6ËmuïØÖhÁIû8õ¯nÁUŸ÷.Zç¢<‰îÙ¬þôD¿]ô/‡`<¦&¾Xœ]¨2]ˆµ# ÿWpçÆ5fýA™ó-ñ^ Æê$à—«Ì¡Ðú”nR³À¯Êˆ9+Õß¡™¡.D„:Ìw®Íµ\ cß—xOô½ÂèRÁ¡IXGMyÂÿ¯Bt˜ÛD© Ò`í»@û³ˆC?X#úºãy·22©¯RXÕYl±JŒùJᕨËûê¢b':¢Q5ò+ÖgbMãÃñ¢b“¦³’DÏ Uƒš‡ÕhÒYS(ÙѼ>–¥ÒÿÍN"ÒE†£V3¹ŠuaÇ,‚5œ¥Îe­ïædc Î׫ïÑWŸó×籇lf>NyQ-Ñ ö`<Ïß#¿J ýþ¾ÊÑu鯫…_VÓUˆÖ¢'sû‘µóÁÇßvýÝ÷îq÷4øì×Ó­´ÃÜ@àÕ`»¯ŽÚ/€Wëô1ûÿ.æh`Å]×LB[F¡ÏSè‘Ìc¤)þŸCOê‹ÞƒöŠõ?S½âGÙd]è±ö`y×Î-Çw¶ÜA`fOôÉÀ«Ú®Ÿ“¬ÄóÞëÖsñ¬çµ üêÓ׬L&­tUž‚õ&g½‰XfÐl–5–O ÙN\›¢¥X‚ñŠ ^m7ÇiÆ`ܦ0¾]²óVªŸCB½ÉŽj*­—£eŸÍVÉI#y·ÎŒ ò§ª§x.dÙÅÒ³T [ÊÅ*‡-8Ñ]Í o*‘•{r«¿"ú&‡•ꓘSì!šZ/é´“TP…>:ÌÙRÃñ åY#\(Šv]㾂üÁJaDK¥rh|øl±0)&öfžKZ¦)|žHÆ3TáÝ,Ù\`í±[I<#Ï»è¬^eòLs?Vró0§m¤CO æ,\ÁhˆïîVF˜¦§ûx?šÆ_Ñš¶@2™±¦úë¾´PÚÑ>[@•ÍÊX3k`Ç Àü^ƒ¹©ïG_öÑoúŸ›-y+ ñœ ¾œ>Õ{Þ|¦7ëzh©p¨)êCôcS`EOÌé­èù|žÍ½Œù>b'¸†¶µætÁ÷ÄlºÎõßdTw-~¯/a†nTKCoØ|{Ò¾ˆ}5Kç»Ê.Ò›Ž_´’4œñ ѺXÍ Õ‘ÓÃñ ùxâñÁŸÀùæ«NÌ¿~w”ŠÔq¬—*:7o5ÊÔeÌù¶˜+õÔŒÐ/~7»Ö¯ ÎÕÒþj‹l{üêˆíûh_ÓìÔã"òíXHyú>õ²É E‡6‰ÄX úêtØ¥’?(™wàÍðü’éQÊ•úu»è§MøÎ(àÕi †ÄènòO[c§ûS±Ovtÿe=úyèÍ÷a‡ýè.¹` /t]ÜR;üj»î~5ÚÝeß3Ú¨OÙOý+hI]ôÐcFâÎs1ë*Ñ•ËÊ1q?É‚çx3º ýíóa¦ÙòºþÞ{&»6n5zðºu·¹lg<ëY{ÁÕu¥n*®ú’÷–q¿Q“Û~õ°iC„)-'ö¬"2'½qÀÄÑ`FCØ#~ÊÎô_ ^õDÛÅ/´M­1‡C7Ñâ«&»‰àW‚/kT„¿x˽>B¯ÀÜ(G[i î—M¯”œF~FoÔ°X .ÑJ¤o)«=†–`Q&š>ï|ú£$î´2õd‚º¨5XA"\©-cË£™OœJ´ê/çðT1š–h (ˆ“ILŒQ"{:Ûd;K<ƒœÒYþ"‡Úz’]T•švåÑS ùˆ’‡AK0б •Ãü*‡ú¢ñaþ?™ŠAFwVX…«“º¸?‹ïVg½ÔfüEu`Q,ýíÂWãõ§àWÂuDÿ¯¿Êd|{?©ÏQ'AÎk³}9̦`ÏÔ#*ç» t![¼ ûÂCÌIŒ–ªtº¡Nvxˆ1k;ƒú~MÌ€°ò}f¢ùYï3ÒwÁ›m>'^ýOߣŽS9ïÖò®ªl#ýü—ºÁÓ^<ëÑߨ7í<­ ç¹°`‡Ò+Û««P¨=ã6E§t«kоhM}œúÖíõyÿ‚uÕšøfW]Á_ɺ/Uô½æ¢~X×ÇÊü ­™¦ÞÁwj Ú.eæfGôçï°"â;'dÇZ0¨'õ‹°f¤^k+¬èSê;ý~wzJ­ ½l3í{¿xÉuŽËv›%˜³»­3¨Þ~ÑÎИ Є £ƒ°vóYux$VÑ÷`ƒUãÉËÈéªUòh»\`¥+áWÉòF€_ °óýêqÕ«·íiŸ^m·sÜtð«–¦±žQf·»V®¦Þ¥0Y¡¤ÐBS›9(]uŠîAÿU¾Z q»ƒ5ÊÚRâ2ý.ÐgÂhÇ¢OžÁØK$ÅFÿNû£¿ÐŸ ¿»{ÑžsŸØ…xö€QWÝ»î1°ÜÕ°Õ–Ù›Üp}›nE¹ï0øU¶Z¬ï¶¯ûÏ`õK¥‹…ºº¶Ý€•œ <’ˆ¶||ÖãQ“‘¢.&ÙíðÙ\õ²ŸbcÁúKÕíîK؃œ sIîV÷!øUu x•›‚ë_ö.ÙhgCºÄÉáóÈHÖ˜{0Aõ¼¢ù‹òô·ñ ÿR¨cÔŒ¢¿=ƒë·"•<† ¼¯\Ó•SUPß'‰l0‰,‰èÔÍiŠÑX¥&óä ³Kò¡’x>Ø ó¿>ï¶;Ç%X@â×zØò(>Kú~58vŸŽgž²äva¯ÔÂëVº 5òÁAʰ« +\„Ùt»¾ wk BøO'àÎ)Ä«¶f4ãE£ÕÝfªñÌ^#Ï|'Ðd”ùŽø{M?ëé~-gyº¶wMeÁ¨ÝÝûÁ¤Ò>.ÔÙKÑb‡ß 4™ Û3 «»'øT75…ÖC&e…:‚Þ«ˆÿñ4úº®*ÑûMŠ–x¢ExÎ_*?µ†vÌœÐÇuKªçàš`Où@†aÌ‚]‹ßæaÆ)Ê€íÀ4öà—½¨lÛ™úW…ÔG¨‡Qj‰Õ}Xý¢¿Ö/ãûw©¡‹¶Àž²’ŸTUWt¹î[³R"#m óµÙÛŠ±±Zò˜—á·Í±¤ŽW}ÌK± CúþºÞg©ô†[wd½ÔÊÀ«Ñh÷›ê%ž£ÕQ£B¿úýí¿&F´=˜D+âÕQ½Û.s{ÝV¿¡Ù¤—G´±{Á8òõ!àUd(34üªFªö©á¸Šð›•T‚.á3UÁ§¢Ós ûAVXì7À^>‚Þ•Ì¢<µÁ¿ÃþíÏòǪíª{ÉÞ¼Z¡~T¹^î[w;ð*üª;øÕL7TÒcì"âÕ'°éö]ÿìmõ€QKt=3wœ¶¦ã%ä°¹£*º¡m·â‰&ŸT/øÉÖa¯i«ö»om‚kêæõÃaûŠ«[TâÛ_õ.[å|¯!FuÒ¡ûWÂW†`ÜA–kµÇL¥8Ü_8ñ0žIIº¨) ëi´n‡oÉ*Ü®n5ûC#iMV[`¶¦ ·Z] ÝƵ‡Ùè3†ˆï/—ì¤ ðïWz¬Dsf†zŸq×ñ*ÐbHRAäÖ¹ jÆPõ&š6b¥°§^tïêâésjŽ@/XÑ"¨+Gþ­þ©bÔ ð*×,G†è?ǪD®åhÉUcV^9V¾ÉçÔÄqÖ%»*bL2ˆå™‹“Éø«hVŒÎU–rP—'–ß—³½jaÄm†¹´\å3UrÈ^$Ög‘j9Y›Üo),¡«ê{âöƒX›Uóp¼hw}]ÕòÄ ±O× WS½¦*cf,è†ëH?ˆÆÕbWᙚ©‘º£ÂsÉ žƒY(ÖqMÕˌԈ'ÌbàÕzæÞ©è ækz¯éÀ G™s]ExïÀ”—׃<åņùÕ“¦Ì‹Ò2¦'¤Öµâ»Qï«=ì§ÌS¹sq³’*vðü¢›"Qçôkþs°k¡·Á²mÈüÁ¦øü„9 ~U ßù¿vŠ­5kr Vf2zU2l®ãWR;ôaðÖËø^g%§O¢P\•µ¤Åß]Œ§©ƒ¿Ž¨?õÏú"Ú}öàk¶š½Û>…µ–®ó\žûÔÈYÕ[Ñ¿’z^ÝÜoî€{PuÒK]oÖ›¸AÑ#í;ÙÝaßÓyj¹>d?ñ_Vb¯õÛªm&Ç)QzY„ȧV4ôŠ0Ç{áyÆëƒíÖž¼~Á³áWI®™[€þ¹Lwüª/ÚuÌþÇÕnŠé%ú¯”—ñÝ®þðΙN˜µÐ‹+ÕŒÀÍA¶¢2QEæØŽꎢŸZ*x7È/¦.³µ¦ŸlU»ÍÁÐPbÀlµÊMq­…°B}šI¨Ž¾XEÏp©ÝV«½"Xã%ž’¥ã)f«çpß$F:zÅ *&ÌCâiã$Ó–ÁõžÊø«~’AßQN86>¨7!XVc¿ŸÃ“„°—=ƒþ« û81 A+´"‘(б9a¼Š#f¦„ëãä…kOÇ2뱟NΛ²¾…x¾2©œ3Và A ŸLÿ~\X‹&‰ùB±´…·c‡ïÔP-õeÿS^Kdø, b=؃­ñ‹júŒ¹WÓŘ…?¡¯&€;fcvŠjÞjµOY„µz;žcÖJCؾóÔÛ¸_K¼Ûû~\»£ñjR¨ÞÛ«Ê“/QžQ+C—À¯î³w €_åc½ ”[j^Pƒ<Ñ}ŠÐÂÔ–0ç3`fo]ôû% e³X´Øu£ú¯’¨N©‹x ˜ÖöëUF gªé¡ÏýQvŸÏz©å€W7Ú³j£Þf÷¸ûÜN¿±y^o‰¨Ãúƒú uÔÄ„r‰W ¤v¬NÕ=|mÐCkÕ~\_T†¤O;0sn= OÞÖ¶ÔDÛ ¼š‚~NW[ý£öµ?ZR`J¾ó•ª¿weî÷€{X׋]'·Ðwƒõ~؃+ìwÐ^Á¨nÖ'íUÿUVèôªen¦ CgŒÂ-YÑÓ˜H¯‰^.Æj|lºëÑÏUWüJö:ž¾¶º×]£^ß<åïxµ¯ #|Ì>Ëz³1›ŸñÞŠ[/mÛ©~÷N_eáºC˜Sƒ¬¶h2 £©Fø!óq¤FsÖ:Oa¶ÖpV¼u¼Ym2‡¨Ã‡çÝáæº6Ìê]§®„††ú©@ÓÉê…äW¢05ã\…‘I¢^óÑB|¿ó1[‡c:£¹çÇòL0&¬ñ͸€â07“(‰dhgR%!›j.Yhs6Q'‰º2yôÏKŒ¼°™tä&‡-Æ„1$šžìdªF†£DIÔ)KÜÌ¢=AÿU­8AAÑbª²Yc6ƒö`Ežc¦‡«0¾«|˜-jÎñ¼…°½Ô \й&1EêEìÓ-ÙbÉJIÕMˆ9’óû),áQÃòÞ,óOð€ª¨}}†uK[Áž)V]ȯŠÁ©D¿=š×ù@rfØ+Ànb}œx̱nº³Ésˆ{±sLƤðüw¼!6à]æ£Í.#}u‡j¤—˜Ïȿշ©³êYêVÕ©Ô“‘†hÝÙ‹ô*h‰…›.TæýÉþ9 ¤ìΖÉ|`Ñwð"̺cTCéŒWka;äê3T;h§_ð_2±ZjÌÁ²Óƒü…ØKkáúO¯ÞÒ0o_ÂU­Æ¢mkX—´7ðÊÓ+06Í`7/Q_*±âúcUµáy~{¢G æx5jOŸQ1æº~P;CoÙ\{¿•ê6é:ÓºhOÔ3çÙ–æŠç‰ÖÑR}zº-f›ÔK•<ü‘@‰]ˆÕ!çw`=w¨§{ñt°†ºÂHÊ@¯¯ zydè;¼ÝæaܯZÙIö>ð«CöE÷®Ûï×7¥ztDo»Ë¸\½K½düPvhiÌ:Vt4Æ®.Z^=¸ín€ÿ•¸ÛN¢¼¡>ÇZNW±ìJ 6=”-§þû›¿Ã]a©?x—»jg€»ðî9àUžã:€_qýõN=Ðn±#€Wob÷X§¯>À(VGÎÑÅfŠTªÆu3I%hiCà@àtÕŤbÍAôÓ*Ü]ô3쟴Èï^E¸°[(åRÜv÷¶íŒß?`ŸvEî'ž¶×½‹¶<ö‹ÊhÛVõ½÷€éÁz/#€.¿PA¬&ú¹LMb¬v,®ªU ž)Êÿí÷XŒ½¤5ë¥ÆIÜ9L_±äNtíY¡tú24(Ô—¨P¨"õ\=ˆƒ’]'‹èS… ¸©äEX‘çyŽKDI!‚$Ñâ ònx~V¨2UPo¢½`ÑÄ›¦ô/Å9u$¢ÈsŠ&qeÔÌÊaœy&9X }g±*¨7èÉ$ÿ›=ǘ„(ú²’éo—*dñ-_I=Á\^½<[ð«¸püU¶¼<ýü•¨çPޝÒx͘°ÿ,†Ï–À¸‡dÚhm0—–bµ¥°Fê:ìO͈†ùàNYX™‚9‹ _©¯ùë{±"V;$>Jêãü®ŽRG½‘z‰5A¤eu°Ógó·åè¿ÊÒ¹|â•ÝGT Ÿ¹¹¢KõÌ":þŸ{K„H‰êmFÃN”ýâ³ÅÄš´õŽƒ_­5ÿc´í{Zü!/j±©¥ÞÄë*‹1R>Ú‹§¾èÍúAÓÚûvü¬©úºúé&ÌÞ½h³ü¿T,=[æ6¬1©û$Zùk4×oúÏš] #¸DÝ@}†x?M`°¢u1#bWb~ÉêMc0s7à‚ =pÅ?Ñc%h¡Ä_ý‹³Ÿ‹ºJ/Ì Îø¯~ßs²>¾sR¥¯ÞÄœ_§ö„>¿zØnÇ7³tàÕf0~·ÒNÑÿa=ú†*N·V-fˆ.ß(ŒW ô÷MXß='b”aŽß ¼¹þî—G}Ñ«j&>y£Ñ‚õ¼Æ…¾ñ‡Úí~!8X™ýÅ6²Óíu@±µÝŸn³ßÄœÓÓ#Bv‘«ìŠõ#ê~àU4ëM4•š:MffsÚ-õR¯EÓ¼UÐN³Dû¹+MÅnó$FxlU?yšô Ã8ýÎüîê¬|(ñíi.5‡ß¡^_4ãìë£÷ÅsSxÕŸŠ´Uí1g‹n±›ç‚¼üj|¨?½HÕT”^Íúƒâ3Š6µªaÌf¶¿ð«ÀáF*¨,‘À“þ æ ’ƒž{2F¥ùO"ñ;QÙÑ©È.÷­„'Ë ³§,ú RˆX0‘øÏ“Æ8bB£þÑMãYd ”ö;Yb«d³XâOÕðy_4Ÿ¦„¨Ãzv¹áÜÃLÞ-•x•A+1È.J$2~³žƒ¦Ð>mõ5lYú°€ˆÒˆ}R]µÐ™¬#ú¢éú{úÛcÔ}ØCÖ`EW`Þ_ øÕý¬ñ×D]Vrö"ý\6`Ï£ðú ÖyÞy5Æôq^_òwzÀ³‡ãj:î| {´…êf‚Cˆð¤Yl’Ín#¶ø ÎRà•ôîÛú>`Á‹Z7_yì$'ººç¥?ÇéÇL±÷ûtÆ·1kXŒÄš• Rµ\T¶c—ßË:Ä+À˜ €W•±æZé€WÌÇYžy³/úÃTý•¹CÔí)q cÕ§Ô…Æz[GÞ × éõ’‰ùµHýÞÑèÑëHj÷àùY½p}ç6`x‘æ'Ø[uð”»CÙ|û¨}V3u.ð꺙ˆ•¿Õî¥:À[‰_Äë6âkƵJYg8óq†bܾRïaUöÀì ÖÖç‘¿áy$¶QìÁ Ðø™àˆj ^k¦ËŒ`!¾Wß4’7ì1Ù +¹ùü6ÚVš9¹û®Ö§íëÅ˼ۘºÈÑ|çáx¿Ö•ž÷—b.«G¶5Ž˜Lûoyïî6[Á¯j¹{œV‹(•Ú¾ÈÿlU}à:·ŸÙŠù•$]hÏvb„Ïp؃5˜w<—x¥¹)z2u ŒnžYí2Õ,6_â3æ5X„Í1{«›©ÑÝŽ ¼¸‡ûÂu€=x¿9"7»~lÜMA{V¦Å庾ħÈ9ó µÑHt¥EïàÊ=ajyôÜ`B1æÑjÌúŒjžÄ½óŒÆÜ€gž~u†U°«™ÍÁV÷Ô“9{ðŸîŒÏÍ5›ÿNüêOú3°Üù¡~³›ìGÊí¶¹ñÔ“)4Û䨻|Œ¹R×^{p6mRÍÇYDÜhL?ÖXæö^Gÿv45W‚_¹¿€íWŸ€_•ûÕ˜ »\¿ÏÐ xw»{”ñ¢W£‡.D^px¥5^¶›ß#'l?ÌÿbÌþF«ÊéÙÊpÖwnÍúÎKñ¿Ï0Ø«rzùOZâ½^<ûÎ4ÌÍöHt2ÏÙæ˜ýU¾#ó[6™£sWITö²÷׸‚|ôä0žñiŽK7ì,Eô€7Â8?aš£Â ª‰\ËIôU…ñÙDˆü˜/¼>ã¯Â:8å̅ΣåÖ…yƒÉ¼sÆ$'KÈgÿç·J'ú„Œ+™>êJ¬tšóe%±Xeâ[*ýWqŒu/áÕ“Ù‚ºè©\úí x"_…Ï™ON™M=™lÞ7ƒ™¼W ¹VµšÍ;÷KZ¼Rî¥Z£3¨³ªìÍ%Aš»Ö3^ô âêÝf4vË®¢×»œçs‚xÕš'å]é!kb>0µ`5…šc©ÍÆx¶uèçÇYs' óº‡ô–qì·³`^¨™€qîbçÓŸiÎÚ6ßÞlµ"÷q ÈLûµÑ¾ÆúyüJŸ¡ºÔŒISš{ÐF YÃk–ë¥Váóçñ\2ñ¢j“’å„çƒé&¬é•In—N{´æÒ:®µDV†œŽ«êëƒåHkÖáúô9±è~ôÛzÓŠñ g©ñ¾þ¢Ö°Þ˱2ßš`/7Ó~«kÞÁÚkDì_]PÏêõI4*³›ŒæyÃi¬ë¥Ø53yÎØÉŽ¿RÞ]v9ëVÁ•4^t™ýœ˜ö­Ü‡{Ÿ§Ï¿DêG>4IVw'#"q‘5Úõ;èoßÌÔÈ¿¼zÏÍÂÈýäG'õ'ÍPYì{ú•àWäï¶»Ñþ÷98Í:êÉ|jæ°öß)µ c/º÷©‡?³©V† ˆþ4öª–Zßìý± ÀEE³“û`ë5ñK€à¿¸,“ÿÀ ÁÓßîžð¥~4õú¼êÄ»H>°øFDÏØA¬ç֣׊îÕÑÎ^Ì_Óxǹ¸ïgf4­2]™mL?ZKmµº,õútÚ£°õÔŠYá§ÃÔ}vy3:):’çqu±Û­T/ãÄÇ Ïêðu æSç1‚I½qgX/5‰ü*“ &“P…|IôtÕˆ©\iîwU²#ÕÕü’\ò—*`Ü5™U’Ï’ç„ñNE< c ²c>« b`|L¹A#&Šy—HÏV1£'ãLXÏ+‡§†™Œ˜Õ²™ãŸËç/blo>û¤ ½ò¹äfùÌ ózþ_OŒ c$’ØŸ;°c,á³ÔÂëI¬¨ºÓ­ÅKCúÖ6óßÅjPŒº+âfð*EîXËߙÒD?Õ{èÇ ÚƒªŒ_KZ’™ÖŽ5”†ìÑ%À+`mÚÆf€ô‘´MϰBÕ\¶¸“ig‡Höî;É~/{Y«ënXcËì´?„Ýv¶‹òÄ©y6•bq¦ ˆH$G”9N“—l±K«.ÃÝÆ±bKÌàA˜ñ9ŠZoâ }šÛÌ?L ùfa=ÓEþ¼ ~U=¬–d§`ZÖÞÔ–ö9~Õšõ&¦Gh ËX¬ÈÕÔ¿*ÄÚÙÚÖX#b^ýû³;øO_ü݋نZß¹xIÌê¸{’ýLže–Ú†èû®*ðêa1:+™ÜFÏÊrÉ¥^Žlžà§&#R9c2™?˜b’cq¨‰1¼Êâu∡5‰IĬBzyâbú ¹±Œèš± ÷Ê>ê3Ó/•<ª5™C=™,ž †,Š˜OGFÞ9ÔDÍ`}ÅŘÛëÀÒúˆ¹Œz}·¦çƒõhA^oÒå{Ì)E;w eµ5_ÈÌÇiežR:ãêÃîH—&&¬§ö±Ég.af–Ö›hÏ6¶0½¤GÌî;œ\ýW÷‹æ¦Â’>DñÃv©ýEvÙžK¶’Õö'£•W¿”³à[çE÷²ª’yݤÚlôP¾t‹$£™/“ÇmÇH’hïÄšjÍZ< 0êwa=_Ž]·fÕüî.æ{m¨#ªÝOöpð‚ ¤-æùuX›-‚eÌù/‘»íi9)]ÑóßbýOk)eŽþTÌ⌾ñ'~WŒvª^ßà]"1·ûQ)¯”§ÿõ£Ó LÈÛï¨ß~+ðê‚«ïN¸ûÐU¥–¯íµë€Nã]û¶ÙHÿUüV-™®à#Tõ©³¸ Oô ½¾]ðîÝhãpܯìA­ÂPH¥§a¯Ã.ìŽ>lafE?†=¸2ÐJª=]²/t£€“ªà¹ÚŸòƒN¶£¬Œkÿ•úªr£yÑVަÂÔÚ‹Ûa¦cŒÔo¦ê›;Œ*Ý+“)ÁŸr Ä?ÛÕ1ʘ]>Ÿyc¯±ö[ƒƒÎÀ>YáŸqgü;î0ÒÏÁk"q‡üØWø^~‘ïÇÈm°ot3üú¯VÃZ}7ø»M#àõ©m§¡uŠW…Ôë+ÀûÓ±ÇãɪRsìôo;|¾ìÁ§‚lÆ_u2ýÇ.Í·ô+ðÙ¿\Pò¢ëÜå›ìï5'ó™È;®²DšÐ·ùWäŒíAÿä(´åOrs­?Ø{VÖ]Œ9õëѧ²®˜Ö^Ñù©Ñ.€/ÊI¶˜}ÔCVïó•f9ë¥*ÿ¸Î|¼F‹«}±½šÊ˜î©@ÁBžÖÆ:I«(lñN´+™«6Õ„YÁ¡w:Ý„5°ª0î!ŸÜ&“¨”InM=Ô,ZfU˜E›C~UÈ“ºœXÃ÷Ƹ¼õUsVó»uÀ«š^.Ý×qÓóä”Ûî7úa—q ÜJ_ ¼:dî¶A4?:ŠúWà’!Ã0×Ç‘“ïglÆ~jô(˜÷ÁÈv~ÜŠõzXäY<Û  nuQ·4˜>Ö üê1`Çbó»ùÆðùþŒÖmóCý*XÃä&åÖ»+ü÷ä›E`ÿ ^ÁŽÙùƒ ìXÜw+õú2 ú¡ö‘fX{ÃÑGâÎ1³4ç• Ï¢ãr£ÿÊÅûN~)žP|†? ¾Õß9L}†Þ^cpŸ‰¼â’ü¶ˆÕÊ‹Üc»âš Ðb æK)+7÷DÛ4& #2 # ¹9Ì'h fO¼š¡µ]¹¦¶™½öþè8Ú³ÍàU®ÂeæèÕ±º„uÀίõSÓ>­("Ï©$~‰uµòèêÉ„)Œ§L¥ï;™ðñ<ûK&.U¦¾5^T¡/›Z &¬kÚ‰Ü&ä]9Œ– kGT!^ÄÓ”B«2–a6³sRhíå0µ2ù“æ ¥Çò3É*™€ç©9DRFታÈa žEæ˜Ö¬Ä×ÅŒérÄÞa%ÅΊÉ÷’±~nîO'®©öšÖóV¿z ÌÉK&Œù\k¬\„½¡Üé,öͦ±â¸&•ä>ÖNmƒßë)s"s_ÅJi‹“¿¨˜BÛp=ðâ8vm5ø†ô§ægØÀXŒöÕT¬0 lWéI[õ´ígÿ=ô¥Ÿ4Md1ìA}öŸYðIê0Ô“Ú‘7LŽU?X5±àWÚ?³åyÛ8'ŠÒû€¸=Eó#æ`¦B›gâßZèMÕþºOäzlä FVõ¯^^³RÂüÁfÒ$¸ÏÛ ví-ö Ú«qž¿ 5“5¶ O<™Q9Ûy~Ûwû•Õ3›€SÌÇì»9쪂™Æ½XGL«º¨¯§+ú#b¿=X tÛ}çƒb†gH¡¯ç·sh¶̘ÈNì•À˜ù»òp2Ôë‚ÁÌ„åùëyi¼Ã½øê™Ö—^Ô}.‚­2óEã¯*Èò.‹~LrkƒRó$ð*Ëw^=h6È î”Íß”Ûþ2=®µÛä›ùBð«Û‰WK¬j«N÷NÑŒ…¬ ^¹“þöµ"‡Xs¹úo3Þ‹>yú µÌº`Ÿ«ä–±žW7wûü*O¾‚=øƒÑkýB?ɯs³ü8Ù/ÝMn²¿ö`JãE?Á•’_Õ²×àfÓwÜ€úWÓЛÙè·A±zš3ßü#Èu騛š›ý·`”~¾ñù~ó[šcîú|¸¿££þ«8©‚öì6Q؃ݙ 3Ö†•ê<ÕR}Ñk¨/š~× w#4^¥-si“ðÛ‰ø3+v«ÙnïN£Çç*³ÊÏó]¹Ù|¼N.«DV`„©Ër9[#>‹1šo3cM« .4Ïâª)±Ø«Ìÿy¨éÃR¼*`6L>ù—Ö›È"þ(¿*§•–ÎÏvg´ÊäWyÄØ$FN„õRøz±Žö)\Ot,ÓÒx½NM3\¢ÒŽÈ½üJýWjÍžÀ®r-ø•îDZÂãå(ã :š¯ÐƒùtªQRv¢˜Yϼ…³:±k F÷f¶¶¡£é#d mé»1ça÷ѨÛN¦À¤¿½²9aûXÏxÑÊ@•޲ÄþÎþÿQ¾y^´M ¤GäySlY‰V†G‚HUQt¾RžµÍ"?³¯÷iý+Q¯¬*í/Žû«I#³öžh´yÎäÈ«Æàb¿ï¯”­4¥Ò3X„ý¼ÜT—WíQyx¥Qó°¿Çç[+†¢ç6R'½/ðÿ'Ö›è„Õ²ÒDäµT§¸/ÕJ©ïÝ„>ްXâì¯ò®xÂl޾éò`>ë%SOæO{fìÕî&û”™Ù†çL½ÎJ£ù¹‹éŒ’Ôzß‹fcÅtÆ®|œgíCM¡ ¡ÊJ‰ù×écÞĮҞþà™Ñ/‚ányлvç}/7Ò5ÛÁ¯’â~ò›€W«dV\ ·Ã·òuäˆyØDs£lSžÔ”dà¦æY×À^p#æY#ôq{̼Vܵ>0ªÜ…úíªÒu lã…Œ!ÝÜå¼› ¼ºÁô÷ÿt¯–>ôãü/þUÌ”¯Æùn¾*7Ëw‹›êºKU³PŽPOfZ4À¬•:°búÅüWZ;r!îª^@íós@Åvx²ÆÀ±W‚Ê.S‘_}¼êà× GÄk>οW ÍQ÷†/‡8¯Ÿ¿J÷шú©n0D0°v¦­æc~ÃóÁ¼ovžèÿ1ä9åšUf†—š²ªê\æãì¶wEg晵~–ïL Øh>‡=8„6VìTk0BñŒ|šˆ+sÎáúÏÑòT¼Z`ž§NoZÌJÿ˜®ì\®òD®îP-/‘çn¹D5UêkFNê’vã‰\*ãÛ5¢,´öªÐBË0¡–K9ORŒgeòŽ•¨°UdB-Ъ/¤˜Ê±z%Œÿ ý²bq¬Zɵ£ «ÞaþåÄ”›ó§šOÌË£÷=Š¥±ÌêJd”é´oC:3“$ÔN/Ã~=õ âðì äöIVßç@ÿíÎ`”®^)Μ6m%Kî Ÿé VÑ3VѶz¶©”»j2°ïµs[Õ’xØ]:ÊžBœÁ7‡`Ä yöQlGÊ`bêq›nÅÞÉZ]wÃ.[d¿ãø~ >r» y]éyÇÚ=?•¡°óùþ yÓ¶‹ˆ¨.ÏX%Ýd(Ú<³YãÛgQç³sïZ°ƒa˜U{À3Òäa¼[OöK𦿪ŠuPO:K13[›°1ï”Ø£[ûÏÁî÷o<³z`Íîf=úþæ6cd­êÓ‹–›8ÙI\鄟žXz_'hÇ8„ް…/É`m×'Y}ÞeºÛÜy¬´ÊRꋼ‰¨ÊÝ7Úž7ã#»ðJ¢™´‹Ï¥‘ÝŒf Mÿ&«Ù(Ý€÷ MZ15*Ê•a½Š6wÂX|AŸE‰ý(ê_½kZ»o]{ð«»Ín9ù–ù8Êœ¸&àW5|±ÃE·À$È›àWoÁ<‰ež{p¶){d*úc(ìÁO¤ŠY-ÇÝGÁ{àJÕѾ%’m5RaµLP×¥¡ãRŽ•1?ç0O:¯êÇž w Ì©ÙÊxÑr¯¯q%þfÿ>ðªìÁ§}C_Ëk¼ÄS‘×X°Pc0̥ȫ,NãEבbjqŒb½ µ‚5׬9¬Úq\ïexOýWªVPôlÅzô©Ø¯o³'¢“È®4×ú™¾'uV ^iæ]©É”kɯԶ» ?¡>UU´úÕ_´jéZÌÖ¦<·Ë`¬CZì$-™çí¡µ–ËËK";Ë0a èlŒIµ˜¢U v½bj#$“]U¡e©±êuLXÝ!…^¤œveñ´1¬ ¨•Qkðš•b‘VÉÄ+õ‰ÆôaÒbW Ï ÕF#¸ª²žW9UÕosÉÙòcç‰!^¥³=•c'a¥xŒõŒÇU|ކ¬ÞšÙÕ5L_qô™«~–|F¡Ow¯î÷°åON™ªR"Ç?Ðk¡ö+õÀµ4¯`m7çYaX;µ>Û¸ £¤µç5»+®ß_&‘ÑžÄÇQŸAõ"ÚÚɬ£šnNÚ 6 üJñ)ÓI®·?±Ï.ÊÓàùg…9Ò-òª©F=™ IŠÔ¦þ2yÆÖŒD%—ñ¢ËM\3wédnÆŠ]L«¨*mácz‡uõpõI̽&@ãO‚WmºTÃÌ[hI«`žº¬«Wì 9(ªäce6öÖ¯Ðßí`iÕ”ÍÜ+zc…XàUg|þ>´ëwü¦pE£<£×+¸7+ši•çÀáßäú¯šÅÑ7\š;éž5a!ÕôU}bäj\ûjwüÃlìÁ³U–6<ì†õÕ홉«ƒ5;ûÉ7ÀŒAŒç]&éörÜy5îW ~ÞŒJö‹q×É´š£ÇïÇèj=úrôÌSÀ+=ßÜ€{fù~)F#ê3ɯàɹç|MßÉ/Áwžˆ¼{0ÉÆN²ÍdGo·=ˆüZ«ÖŠúƒjP¿}&µœ’1OF '/ãž®êí€Îj¿¨ÇKã“•ÿl4{ìãÑ™ôË\a•Û3^ê:óGtìÁÿæ®3õhãäãS#˜½—A{ðáXD§zUÏ¡©&Tá WrÉÖ ½L¥±œÂ,*‡¦ÓžÃ,èLjïåiÍr"„ÆLP==ô)•pÝÇÇÎC•­ ²Ÿ27ͼɌÕfuŒ­A_S<ýíÕM¨ÕE¯Y"–r­¶±“Æb|v,÷§:¾›«—Zƒ ,¬OI{´2cÉ¿ª(ÙSó@[®–Á¾hCä«mÚË·Ì%L¤¾è°(ÔB½\b+,&í;LKI”3īֿ_¬F®:0ͱ¿¶º¼~mó0¥ùÛ¬ßûÐGêáëa†J?Ïþ=…?…ñWÊͪÛ12Š<ó^;ÌÆÙÃV¹ÙIÓ\6²ÞDøÕK`I‰ž~ÀZ‹y†˜#ã"—l!uf¦ÊóàW“Àî×–Q6u‹1Þ¸wãô‡a>oÃŽ•)±&TWù2øÀV­w³¶Oï`9ã¯J圽KNÁÒmëër\å֛Ъ†;|¡ÿj?æóJ¬¡Zhë<ó z·°£+Vë\¯7ZØ=Ô³º.fõ)ó‡¼%oá›;¨‡\àŽ¹#š{°Ôÿe'áëÜyÝLˆ,ÃwÒ¥=ë‘õfdÏ8ôœêL ÃÌþx5?­ðûSÀ«¾@¨_qÏÆ‹~‰=¹7Ø'T ,5WF? Æ»uA#XaösÝIàÕ.7Åå÷¥öE¹9®µ[ãùlð«[m^ô·È[†µ< {M =¨K_lûVüÝü² kx•Á†yxKý«møôôÁÃà0o 8ë `¥÷÷Ϻûü§nžùÃüŒzןõgMmYÄx†I~Œì”™n›è¹¥6•ê_]À,j~^~5“ÆA¸× Þ]+óuDŸ4À|VÅÂ'YýHãÛ˜—ƒd÷¤£9>¥ñ kñ»?]6ýí}Ю;ݳ¾¾ïé硟Œ¼~e#9˜q;Þ¼Òü±fÆ·}^£Ú³Vó€ô,© xõZh ñ££¤k^s±Úc¨5¶ƒõ&fC4pðJ=R댣¨/ªQ¨iØíjÑ\ÈóߪôÉh ¸‹VcF‹¶g–Y+¬§¨ýA^f¬îæè¿\ž;{°—)"_Ï‘+Àµ6º¦ö3'¢uÔo4ûŠæ#ÃX\…'®kÆ£÷~„E¸ÖŠõq†á{ƒM«­>fD-°\Õ§zó¼‚êm3WCÝjð« ¦¯«ä[»Iî´9*ûÜ9ÿ¥ß”س2)n [~U$š}63ZU~¥&Ã%6»®Å2ÌU½oLÒ €Ð÷Q{Z¸'•{Yob>·9ؼZ\†–÷õÏ»Óþc؃›ïüÿ»Âßoj¯†ønðjŒq7Q¿ý?ØóæãéÞ ^G¯6TÍBɲóЗWá^Ùè‘æ¬û3(¥ª§iŒ—½cßöV3|êõ ÀýˆžïbŽú\&ÚµO-ô·¿ÏzôÇÝS¾ ¸y%®óë;‘*Ìü;²ÞÆLÒ(‰­Ó¸W5ñœÂl?Àºó5¥cä“iÕ×'ª‡\E´W§ÊcàW%¬5v³–G±ÿÚ¢½½À'ͼ¿ƒùÎ=Ñ{;ÌãÀ»G¨~×Q>.ÂÌÅ|^¬qhÁj`Zs°Éö 9&í€{c…\iÞÁ î ¬´ÚŠëiŒä~ó¸V'\ÿ)Ìâß`6¦JqkÚŠcªAÓ…š]Ô•¬ê·×Ål¾ö`±»Ç=†ëR¯/ˆ¨ªÂWÇž3£#;¨îÝ•úó½©X3XYhÔ3øSÖ£ïJ[éV쌖 e`àÔhç«øQåø¶À«ƒ.n[P#ÒÃ%úvnŒ{ˆþ«~¿ß”Ùf2-®“[ «´ªl6çlb4+ºÄ¶Æ³O7®Œ+×c6Ðz´¸W<‹'ª‡ öàjÜ?ÏØx5+ö9ë¹§ÆŠ{]‚Û\$éâ/¸óLª|ïûù_ý#þ¸™ +ý0ê!_~5Ð^ݼªgÈ­îbð0Ike¯–<»h|02—˜¤*/š9uíÁqxŽqç®èÅ«‚\ð«Æà´wø/]Žoå×Q/¹4Ï0PëP¸ äW³Ñž'#Üï®2ãE·›Ht;óqª£-ëLDjr.¢rh Ö›Xƒ=éV2’zŒfLÿKŒ}ú¯5Sמ¤Žh옛ü*ß+TùÕûÑ~Ñ<³+Á,\Š~K æLÂU«Ò+­j¦o“}h\ÕBóOæã¤q§Ñ§”Ë 3…Êbµ3é›Ê2aÎrj#¨ÅX…õqòxê§gsui½ÅS_4‘ßÍàùc1'™X’AVèo5ECVmF«zž7Çð*#–“‹ kË—®ÆÌç¢^!³«Ói‹¥SÑFÏãi¥ÅRÉ"CäKEoßµv%=dµðj,Dñª!æz\,p-ðê[ÚƒÉæ!¬¥¥à:9¸ê½`QZ^û¿5¸F+ꋪ.ͦø•ÆŒµ`=¯Z´m—â>bã¯úI™Èg¹k}F>‡¾¯v‰ dOÜa—ٻϪE{;0r—ýžsã ¹¬è hG¡TÀ¬nõ™‹dL$.’C¾±ò¤mIbíÔ£hA+‰OÀÚŠù£Y.ºCî+¸«¾9¬š§ÁæÙEù,øÄf‹ÆY®JU c”›‚Ëm¶ÏÉ Q¤ù˜qµù c®úà°joBkâÕúÛU¯ø<8ÅWÀǾX;½ñø½ž™ÕQ SÌ“Tó©dÿ#ïbní4;£o»jînÖK-‘ê¾–¯Ñzs\u{Æll³U–žXŸëðývŒ ÁÌé9|–ÏÔÛ†58ÄÜEoY7#Ò‡ÑÊÕ1×Çâþ¯c'iG„»&úI0ö`)vínšâ¦ºûÌ~¹ÓÍ^íÚ‡dj\㯪ÉYŒEB4?zU]ú ÿJÔ“Q ÷M@ÂhÉV•놶õÁ]úa&öÃgw±ÞÄNsÈ:ë`yp«ð+Õlèá_tšË7ßüe~¿úŠö`cY…×[Ü?BöÉhw§ç¸/€Ëå°û$xx¥ù8ë$ÃŽg,RoŒÂ"Ö¿-COtgl¯V‚ì„™µŸñqm€ïyîæ`Üåÿã2|ÖKýÛ¥û›ü¿`¶4¨/:Ðkýç#¯¹ìºŽo0&ºßv#F î•Ú̱,œÇz~ÉÀËÑèÝQ<ÕÓÌPÍÇÑxH­ßÓO ñ9»Ì&{":‘^¤ùfŸëÃØžæbtpt­ºúÀ.™E1¬¡Ô“Q݆°`rLX×xøj;Ú†¡ºB£á3ˆ`aÞ_«%f’kU¡žD=\yh[~LÅA-özÐÔFËÿŸŠLX0-v"˜ÁóÇDÆB$DzøâèåÊÙ€Š­ÿõY¥QE&“ˆ–S1N$_ªÉxÑ Æ_µ¥_'ô_?5 ™<©±¨ˆÿÖKM4a ° ¾j…u¶½§¸QvÓæ;'âu™üžùÕ%ÌÀyÕ³X ÁuÿîѺ²WÂ<©™!¢Ÿoª§­1¼j{°Lêð\s%ðê>V!Ó:ΊWSûv›«¨!ŸŠë4°Ûñ¾öâ ;À¦Ù;¨ÅwÔ”ËÍö;ö×Wòöª›D£9jKê_)S®"#".RÈz=“åYÛ)’":2·‚=õUIº{üIÌï¥Ø•U]îÚv ½áÛ°c²}©é"ï_Ú4i‚'Z f–lbœgs؃_•à›¿ó®B›•SÍĺ݅õªþ‘àSOTéê!`š‘›±¶Ô6SuûêX-ªÚÛ˜üKUs™ ûµ¼̹Ù쿪æîrOéIšÔ¿J¿n–¸Jö3*r½*Ã_Àí‡+õÇ~>ÓhEÏ˵޺ùïäÎ~ ´û×øW«%Õ–©ÍSŒêU­À…Ñ÷ƒ>îú@ëÙö`¼èHwÎÜ ¼Z€õ{cPמ‚=ØÈ­ã(‚ý}ÀæGó¢«m ñTÓ_²¥?ÚØWZ¶×`õŸöhY;fE~ÆØ^xw3ž<Ðê<C£Ñ77¸­G¿ÍtóϹSþ=w ,©ßÁk>ôúǰë,flp“©/:Ñív#`~"uÍB¹Û½|ŒÖ{,•;‹êVÝÏЂºž×).ÿ9øwÜõ8FN«]c^ ²ÜÏÔ¿:æ¿A‹Ûûù…ʾÈo^ Þu3þj&Þ.ò:íÁ|*“]ŠÜd»`5g}çKÌpjÄ(•kX(ÿvÃXd¦K#ôw{캒5F­ž®é-f5øÕ$²›yf™¿Âwâª_m~Ž^íóµF&A®eGfËŒg W~ Fû²$ÕpX`^¢Ÿ9Œ.(Šù¯’‰ñĺBÆÊ§ñŒ2+æ¿ 5Qã=‹6fFh*^Ss4—Mý¶éôeðÛ¡òC&±(3¦3£6`1ª2ã·ª™°„b¢žbzê!çB•&T,0­‰™a½Ô|æ>WæùBU"f¥X”hX«,1vÍ ¶«VþNÌ÷\²Ý˜ß É ë›®b¤1‘{FH+™'±FªÆ_õ 6ÂaS¼Ú-Ê:™ÿÃ:DæXtk*ˆ«M°Bʰ©k î.ÌhÅÆF¦—ôfMÀLs{Ó\j0j|E¹=º9iæˆ {ð€Må½:Ê^û+÷“/å<Æ~¾h jI«È[À+<ùÓæQÿJùU×H&kª^_؃šÛ|ª¯YÁxªj@‹mŒooŒ^ø'lËû1SÚ˜òeð‘-µÿ×é*ÃìÏ´í·ò2vúÆæ´Eë;köÞ4¬ÉÝàéhù`ð)Ë|ç°¯2-ãnÝYuBUr3s°-«vÀÓˆý]Þ^í77EßqµÝIwó‹|ÿVá*WÕÞÇüAÕ8í‹ë-Æ>ßWy¯¹{sðï{°—aU/ï(þè¹ÜGXEE¬G®Ò\ê-zÎê›ÅàW€WeZ‘ÐUòå°Ïš£`0ÃüfsPjÿ!£ãšº«|¹¯?l‹£ ¢³­FºNDoj½‰R<[MÌŽ=ìµkxRÖ »U/óõú`”7Wg‚E>Š=qzüº`«û+XÌ>wö/¹Óþk§Yʯ¾óëý0óù~°ß¼'7Ë·ÝÍð‡Ý§R {ðˆ{?xßÌ¢’íZ)´WãnóÙÆk!¢ÑXÁhja¬»¡¿Ä;âwðþ… À‰¨¿ýVÖójã5*ä’+ô·úO]/ôË1êÉŒ¥=øøÕ_´ 1×|t§íS¡ÚÀúƒåÜ›ºa´¤zñrôï/f³ï²Šî®¸2Œ‚VÑQ¿Îf³ÓŒŽ§JèÕæ:?Çw`|úFóðjóÑÔß¾š9Î ¬ƒ;‘êðzç©òúØÛ_a S˜#“ÇSöЂÊeThùH]ú£’É iÙ©׈1IŒmK¼ õ« ¸³Uf,Vñ)•Öf­‘*™¨‘û‘IŽé‹&Ó’‹£w<‹±£.–¥ý_¼JãéR_ÈJ9ù±Ѱ ½êûUaÆcXÓ0ƒþ¸¤˜-…ñíŠWZGüfÌrE¾ºXsC0_ZËtßɵâµR,–¯ùtgЇ;°¢óxVX&)À«4Æ·ƪ»j}–›ïL[Ú’zÎø)~=î«1kŽá¤2oq óC­]˜íóy‚ÚÁô¶wÊ0F¡·Kl¶ÝcõÌå„é-·Ù?‰Ê_È“¸Ö’E¼j¹hr¬"r®ŒŠüe«‰ž,Ì’ÇWiÄ«[À§úÃöÔ@¹EÔ^TÿÕ6ü¶^o5Ï¡5O2µŒx•”md¨&½Õë.·ßþ%Hg¬‘æ põº^޽O륪*Àpê!«v] ÖèÌὸ«Æ^µ¦&M'ÌEÍ—nÅ»›ÛLžM²¯c½fn~ê ÜCî=ñ’_Ý'E´žÞZWnŸ4“"ñ}­—:½Õ“ç_c°^jáJý1ÿßAO/ŪQÕÏcø3?ïUÕSF§XVLãÛËÍ’èÇÁ@·•õ&º9ï[ÀŽú¯öÛ¾ô¯ŒÄL©$%¬¾7 H´$VgzEc<”ÿÔgfh?ú¯qÕtn‡=xst9Ã4³ËÏ&^%cÕýÂ|gÕŠI“e¸B9Å|»˜‘U5öŸ}dÑoø }@±¼ä¤‰e†ZzU¸º4O°.?Æ…6b|fóÿ*È[ô|°ˆYƒ¡ÆK1ßýo_2ýùzýÖ#LafszÖ=@)d„Žz2Ìa®ó·çñ¹y>ØÒ„:óšÃ¦¨¦Ÿ)Âå1Ç•5޽[”Í–ÅÇüíUé=ËÄß~5›OSŠ‹aP}Q#íølk`S¿¯Ñç°Z6³>NeØvÍ¥ŠÜÍ|=­–Ý’>ÆDpª/ð›&¼_¼n uøþjðƒ¬ç¥~þaÒüY÷†Ó˜“h&ã°D2þ¸]c3í«»Á)<Ï^ûoî/?ÉSxfÕëjKËÈ“i5<_D‚HuÖ¼\^%‰úûö`6u=õ¾«íÖÇéÎêâšï|+0¬–¹Ñüƒþ«†˜½äÓà›*ê›\´ 6ÐóùwsÐþ(ÏHôÑÓØQ§Á+@{Tuj3£¼‹`ùÝf~Äîh´ÒûÕ&½hëŒPj}öÁÜ)euÂRf眃=(ö¼{‡Ù}Ó廇ÝÃøT¾Ôô5}Vä2ÕwísfED‡ôÀ:Y„ª “P_K äLó9k l¡6øýÝ@¼Á`­¥@7­ï\ͼ ¼êvõ.½Þ ÍôèGÁD· üê¬éàâ}[7Ú‚}Úñçý-àW2=®»Û‹§¨*»ÍY›ÍŽ®·ÍѲ¾¦»dÈd<ó•¸úôhC´nÛÔƒÜçnj^¨ïý&Œè4°ãû¨ß®õè÷»¿ƒùÁ ì‰W¸+LT>‡=ø‹ÿ§¿Ý4‘%~”ßå.g=¯In‡›ÊxÑÚf¹uq׿³•’oçЗ£Êê«´>$+‰vaüUfò@àäè³%x†…æµ ¶ûŸêa±ÞD3¿¯­ÏõGýû®7žþ÷,øÕà•ê3¼ Ö™Ñ]m‹qÑݶ£É&ãÙ‚§-ªáµ*µãYþ ŒÄOf,­¦¦¦ £¿’¹ŽÆSOCã6™m°§\avúy°Õ;µÓ|íKöRפËJ ScÚ5^¥6m2})æÅQôÕêÄ¡*ŒO!%¡ȹY³9Ì£)‰­þ$æoäÑŸ®¸Ò—ñWjŸÖà9]1±+ŸÊÈ¡vh¨·œó·‡Ú.Iôƒkþ`XŸKíÃêô;Uâ§‹cz2Yo†F®Å÷âDõÙã>XãY¾ïÌ5¯›°j§Ã^ V=ä±è3ÕTÙ¯¨­^H5êíéF-‡‘èí[Íy<©Ö2[Üæ¬[\|ïå/¸ÇüWn&zéc?Ôï÷Ó·Àƒ=8ÕwG}†Cîð«M°VßÞ¢šu?àU®Ö_ÅøöÅŒ¦hdèN¢ªÝqÿó°·U ¹æð‹Aº³¢ç&‡aÿi>Î"ôÈﮊ¿OµPµ>NÃXþà«ÔC¶ Ý~µ×eÎàÌ”¿°:5fkÇjU $\,Z}9VVÐlQûn†]CõR™ÇºÍ‚=¨(sìÁY¾m³MæÃèøh®êÚàWסUñôEc¾se*ð€ XÌȤF¸Û?xÚêé¥Óó•͘ƒBú›RˆB¥ô<%à:uÈ[4BygèÏ`ŒZ>+LgÑ{U#–ÇW…ð”X5Á ú‡Ri•¦ÿ/UfžN&ñ*޶kþáTëÁ1ðíÁx>Y F¢§ó³mcx•@UÓjäW•ˆ 9´ÐÙ¶0¾=•}—ÇgN ~Ýf¬=åqµ1÷Æ‘_UF›ºÈ%Ìdæ$3^Tïü ÖÁFð+µ.ïÁ>›#ÇX°­Æ-`üôn`i7–râg=Œb]ò«xªÃŸà)A%ü=U±fM޹Ÿu¥ç3fµ©il÷b•é9ÂývŠÍ±¬¢õ-¦…±ßð©”—0ÛeœUméyx¥vb¶ŒŒüm‹x0Mž²" Ôô;†;÷gS=ä–X·]ð0« ð4ÛðÿñÔd{3åVuì&ï¯2¤.£‹JdJ°8ÓŠõ¼Þ”@â¶à)³q•ñü€FÃÐ'×1.¯øÕ%ÜOs™ë±¢zËíLwF/Ô£ör5Ö›Ð;µÇþµßÉsøß9smôàÕ½îI­°.e¾ýí#Ì n¹=gÆGnÀ5`j}s­Ó—•yê²–ñÌfeêUÞRo{7SUúavb}½…Oö¦½ÏºWeæêèûÁ·6h {°£Kðn„{ÀÜ"·9‰ûÞ ÚËd~\[·‰xu›yÐVަDÙ¦è½1` É°}êQ¹e fv7ì -q¯ ¼£™tƒ°Îz »ðÌSð<çÍ<¼_Ïì öÀœ\Áúƒ/¸3þm7Û|mÞñ£WG`¦Ê•¾›ßäfù1r£\î”iÝâ¾Zf«lsƒXƒ|¬Ã\»}¸ýP¤nÃ:´óX5¨ÆZ«¥Ã.Ð «»~ÿ|PÝ9i¡¹Wþp§f~5¾#¾Šßã?f¼è÷¬ÄAàWÌ3àWüªš8K¸?#AbüFÞPQÀsq=®\Ž^ÿ x¥þ›:Ô/ìÇ8«ÆàÞ­˜ÉŒgØkOG§3‚{ðj¡ïJ~´Î¼¼Ë(ð´íAµ¦ÆàÛùÄ e«Oó$RãºçƒÁ¶ˆÅD%’#$Å΋ˆ©äyµh¥¤S‡*ŒËÒÈõFôÚ‡zý‡™È˜©bz›C46ÌÖÓ;„¾ù°^a² «G'3ö½ =JéäRÕUP‰xU̼éxÆ3ä1RA¯¤ù8É&Ôìˆ «ìR¥//–›£þ«DÖ «Á†ž÷Êhy&mR­Ãu=æc?¶`¶gEm NTÊè3WØ÷°65ÿZó1΢§€iÙ°3x&øz¢g,þê=Ø€¡æU]j#×äx­w¿³Z{±…"#e(ñ÷>r•e´›¶ö:pµCÏÛY¶ ëMTæ4”=öSž$üGÞÇ^õ85mʤQä)Sb©‚/=".R•üj²¸ l|•t4^ôA®¼.òzð¢MFد×âJ3‚ùxêFàŒ‡ìk²+§™ù¿™>Q}­—º ¨¯#5ø÷^7Ççσ·FWCèën¹,Ä5Uª9ædÌ÷[M`/Ê‹øßÃæúèEWËvO€¯Õ“†°Ä,ðª—Ùëî’N‰ìÅ5“¥#VÂBæ;Çž®ŠÄµñùEæ ôúJ£qDƒ1¦C©ß®Õ¿jÒ3ñ >ÑÅEfùÕ63¢_ýÜÊ yÙT¸?Ý@7Ä=hÊ^×Ó׉;Ô·Gä|œs |S¯º«OØôhðªŒñü}%ø¯Šu%±z­Ìz*mVh¼-ð§ æ¡jèì› ö£?õ¯Ž¸¨[ û&ÓÛ¿ìNSŸá ó!ì°¯ýiÂüm–û~~›â¯õàW[ÜD;íÁµ²Ç½¼¹ÒíT=äÕè‘•èÛbò«jÔoïË©ó¾^2w¯R‘ó¹ ×EY/u8]Šïäµv}‚Oó·ù\¬¦“î-_ÕWxÕ|-ò"P<)¢kwðêVÛó¶X¸6¾jô”¢ŸU¿½ÏÞ–`Ïúø’Ĩ U‰ÃõUÆ¡…ÌT½¾[¢S1u…Ùäƒ_i¶ñ&óLtJt8×Vñ*üj,z¯1P3&?Æë~f•y†u[Ò‰BadR*±)<ÕKäI_ÍXìhf ‰R÷Þ8fí©»qC1°‘›¡f‹¶9Ô £V³hyf’¹¥Ç¬Ã²!]q­6³S*ÑÃjª¦hQ 5ŠªõúB?9ó+ñL°˜QûWÊgFb2õ“Ãzô!—SŒTÝ)×ê¹½V„>S=¬åY´2U¿½½dI}ò«¥¦@~`¾s²9Îlrjôi­9%j361¯b\:²•­Ì'°­:ÓÓ_ K¤š´d‹·b7ºóG{¥“¹FF`Îkoœ¢hüU:íÁv’ôå¾q^µÛí«ùŒ÷`ßf?dOü&Á†|™ñ¢¥ ðª }\©Ò;’)âyåd9gûF ×zì§\Fâ»Í0BG±Žçcí¨gý¬§[yf|®˜#Rù³£\³i¢zJ+Ì`Ì!ÂÔ’íi9¼jŽu¿ëâ]ú,'á k€_z’ÒÈú¾Õ ×<‡žúYuÊyºÝ3®½ ó¨)~êÒ~¾Ïü%¿¯À¼.ú¾Ës‡ÝÃ@ͬ翷Óð­›ÝE Æ•‘íøn‚´^-gž`?p¦™Ø·ê}g™7a‘/Äz*ÇÿŽà‰'_ç žæ7_4Zô>Ó‚gÉ3¢Üð«g`:ßÛõwÇͽrƒà›Äí*À$ʼn[Îúƒ˜¶ š½Êªžðts•ÀöFï¨áõ@|ÍœÝJ˨7ZÖ‡Z 5ÐÇMè…Ÿ[QÏ5}kp§û+¸2˜¦ö£Ãóÿ¿*’O`‡}âÏøãfµÌ–¬t#ý$Ù%cÝ 7xõ™šurÈ}¼¼ª¬XAÿ•ž]ô`Ëø«Uxæ¹æ™ ª»´êdvÁþ‹óýrŒË%X}{ýÜØw‚_•ùÖ~íÁ·Á¯*E4`«ù-²ß OƒöþÁŠCµÑ¿YÿN³ƒ—aLÞÀ~˜H5ÏrVQ iŒÖwf}œ4ôÓjûõdRІM~¥ïHí÷-æ©è´èhZYØåe ãÛS¨ß>œ•“3x¶}ž\+ŸYËL¤*³„5ž«ÒÉó(_ªO\L 5'»Ê¤•©ùŸY±­°ê ò“BFì‡Z|aMЖ̌Ån*BÌéɈé3¤0r!ޏ”Cþ³3MX‘B³£[’3iÌj«X.v¨É j?9ÿ;Læu†DêÎg‘yuÁ~±½žLÎ5{§Æ\)/jÀxÍY^‰Ùþ60HcBîÅ.}=˜†ò±CfðêAÖwh}¡ ¹™Öt~Í4¥=¨q¯ï›šXùê«ß†~>jÚñ)ºša2¢yÿÀšW­dUõkÛn¬úÇl–͵­Fú?dJe.ãÛÌòÖùk<ûk+#/šêõeHOð«lj^M–·mE$ET‘ñ0©ƒŒEÏìÂhÝ…Qš‰5U†Þ¼Wk„cNÔ3»aéæËS`­L…||b«I5ôÂ23xµŽõtÚËöÙ&ÍñúoôÊ$´-ûø|0ˆëô­äû3³-úâqÌJ'ÇñÝ®ŒoïÇ“ÂRŒŠV+ÆgÚÁzüI>•Çqųfuô%WÕpÏkud©~õ»½ZµjÜrÞŒ„=Øx¥z2ˈm±>´^ju°ŠEx–7°2»3[ñv•ʺEÏTÑôeÆ{¿…‘這£õè?^­ ´òk'÷³k纻ûÁ¯p¾0îpÐÒÞ ›ã¾ vøF¾ºÜ ¼JJôrÛ #4xådî<Œ•Ãú8×2R¢-ðªŸù‰z2½1CoÀ W ÍýŠ´!Øî"Ô“ÙÍz^w³¾ó/ægÆ_ô›xYêÛø-àW£åfï6Â<ì>ǺFîp_ï¢Õš+°JŠì|Üm Æ2íoƒUÖÿ¶f]‹\V»›xµcz•yx'ºSì¿J÷WÝLà“ý~ÿžSœ=å^›,÷s1J/Fž‚ÍX)¢ºã[Íï‘mwÌɦ@ŸÍ{oo€öôÆ· ¿Òšaß›Qô¹ÔFOhî¿®/­‡ÑŸJf¾ÿö$ñ*UÕ ýl_Áõ¹ÖœŽö‰#ªu´žñ¢Z÷jºHR¿+ÁŽ ÈoJÑ×÷b ú1 14I&jå=2è+ãU’X¥€˜C ¯\z«5Ρ"–»—F´*auÍß©E®S k4'2×7Ìë‹Å˜&›ä˜½WÍ„µ'Rè ËŒaW¨O¦VýKôÊÅ*,ä}ãÍPñð•MXa:ÌwΈáhe"} ýoÃß+f7Ø>K9­ðŽ&…ùƒ%•õÕŒÊ׿CöÇÃØ½(Ϲvacð+µuÛ›oð§[lŒþNU—g uÁA’¤:OvaÎÞK~>;V†ËeÏtyʶ‡=¨\y¯Ù`ê²vØ\̰;0g°Š¸ê‹n57»ö˜b—ÿ'zµ‘!_À¬¼*¬ >C7ŸU¢SèûJ‰Ý?´<“c-OÃlº^c/‰Õµ°žG`|ÕwT––ÄjÜl`m»7yÂyŽk³+ãî3¤epmÍï˜;]ˆ'±*J=úÌë³}-Þ÷:Œê]ŒéJÁ¬#S¯R ×Ñ ~óñÑ”Ùu2»Á)ÛÂ{—UK÷®¸Ô~Ëx•oä5\ç¤ht™ Ž\0VŸ'OFE|$W´ÏÇËÓ¶[$ƒÏ¹?š“‹ý¯x5 ¬Dkå•‚yíd¾Lì–gLPAkÏ–߃lheÓU¦‰tVo:ÁÆ}ɾ'¯¯ZÃÊÔøú½#ØZ_ôɵ¬79¨ü ^w4êɾÒDä zeósF`®ôÆ\®ÉóAnì «( m|K+ǘÝÀ«*î„{³´º”øªÞE¦ã3Üû€™¹ãlÀ¯†2¾Ií‘`ÆeŒXþ«çƒãpßѰ€µ*Å ŒCÆyÕ2¯PÉNõú:£Ý5L¿è»Ao·=h;¾¬£n´;o”Û]½¸×ý¾ ž}Q–Æuv[a*^=lã¢Ñ•¶ ×7I­Ö¥ÑÅÛW…Ô¿jM†&@Øð§+¶)ÖhW´þóV¨jºï†=øc°"˜‚}²«öàÇn® ä¢í%îÄ —yàZ«Üvv˜ez†Ö’õèçs½ß`¶ØSäWñøÞ¿Àw"Yo6 =˜¨ºw²O™FÍ„i˜3Õ‰>š=þ/VfÖï™X3m¹ŽS‰#É\ç¡KRŒ ¥°»ô(Ÿ¨”Â(€lÖöRõ˜¿*¦×+žþ¬˜W,щd<T'H2¡J_O+Q9Ù”råW"~ê© ãy_1Ÿ'¼s* §1Ö¢55"*Åb½ªÆêãS÷&ö` ýq ´O³È¯²y‡>ØT=]Ѭ a"úA®¶i'¿ÅrsVcÿ{«AÛ|†+²—T1ª5ÚD²eÏàÚš™i«}Þ¯5þJïWÓ|fê00\æ* DGÚƒ}Á€ÆIX_ò$fÄXjDÄ« aWHöÕÝvœM°·YmÁQÓZ6Ø/È"¿“—Ì)s3ãÛëKȦÈj¬m–LŽXêõ¥šqàW­"‰´ ÷ck û%;e0³AØ“›áiëâõ6ÖÛª ¦õ¬É–Xe«‡ü\´Å¢Jbk€¶ÝƒÕô=Õ“gíkhoªÕϺøŒþ«ËqE­ X„¹ÕWú=¦ÑŠZcá¶ós[ð>Z#§œ•è««§ íH¿Rí°“fkô]—ïN¹3è\©áë¯ÔššïÎÚ³fjd ¾'°fVÚ`$Ƙ٬n0 3øCóVæ4àÑ ôrÜmöœþª‹Š–~k4’ëE0B­ÑÉŒŠ^ †ºÍA-0¯®À« 7Á=f6Êa÷¹?4µSÁ¯*Ü_ËçsØÌhåèRê_M4ƒ$–¦VÊQÿÕ>Œ²z ´Ò}ž¦¿ù™ž‘!Ôg‹Ÿ[ÍiôÖÌÙíÁ÷K°4¸cÒüê¤¿èæ›ã»øoüQÖ¤ÉB_á׺+ýtÙÈ|œéÀ«¤†Y/‡ÜÅàj~ 2+%Õ.ÄÝ®C»ªÒTËw>=ÝZy¯ pì b{p®øýÛAžûžãrÌèR}™_†«D}š?äÿ庡_îpÏÁT=™&æåÈçÐÿÕ¨˜ã£[mó­Æ ï#¢‰õÐúîŒQ~µ¸ôF&±Z·­™FØSÚagSËiøÕþèTžÎ7KüT؃ªC·Ýœ¶‰¦'ªlø•ø;‰~¤!è»BF+ÔÀh¾ÀÓþ4òЇpåÐÚ kÝT¢w*íZ.¹ô¶åó^錎N'ÇËe-øl®þ<̳ðl.™yeÕb5h´F]&}àaíŠ<âM¨Q“GfS‰ÑU…\É•ù™:Tu‰#rªÞr-ÊjÄÒЬŠuF~V ¯ È©’‰VUMvìŠÕyæǧÕ˜CœT¶+™y7w1ŽSñªznňwçÕƒ%_.eDüf°‹¥„÷ZŠq»‹úðÉX3—Ë$æãh­®1î˸342Íí"éKL=eÇÛd{Ȳö„©-·Øoÿñ‹<ܼ‹ñíu˜“M½¾D1‘ѸˆÑò‚í¼ÒžV/U`c–Y's­»Ã>dFEv1þª huÚ;`6_Æøõ‰°‘T›}>ÖS|[ÛÔ³±>ëã1ßY•cßī笙ý.zÈ4s•}s7Ç=bn‘{]ƒ¸¯ü-A¹#³â†ºm@ͪrƒ9gÓ£‰À«¦ÀØIf äbìÊpßR úNŒbgìFí1ó´}{àUoV‹R¿`'Ö›ÐxÑ!ÀõÁa÷}°6˜ Ú׿âNø7Ü, í¾»ÿÉßåï².ò½ü7ÞOý2öà8¿ß} N³Tv»·‚¨5Ð\ {P³v¡¥y˜£í€õX~*•Ë»ñ|ð6ZªÍÑ?/)¬ç¥úWŸ£Åe^£nÿrÙÀ«Á¯ÊÍ÷‚oè;¯š'"ÏÃL‰hûê!÷§]5»»ÃN¦Y›Yi¾sQVÀÞþ ÔŽQ­dÍnm‘xÚôì¬3ì]Ññ´„®0üLß‘öàb؃c¢ÃˆuLeð«Rž×WƒÁ¬bÅÀAØY2¸vâz³{]IÜã ªð* <)¬‹ÏÌ£²L c$òðísT§ª‡Éá LgT X*3£:“ñ\Y&-ö*¬7‘Jë0¬ŸEõиX¾³r-G{0“ÑqTô+‰y©Ô—¥§âaös!æ_.=o•ÿUg ̸ÎfDTÏF¼Lçý«ÄZÙ ëi æR.Õ›®ÃX·ç5KÀ+~¥f…Úq¿RIWYá9ôà6Æ3$Ážn$IrZ4†µ5¸F[zYµþàÏXóeü|Ø$%RHv·ý|’½g'd*{ã,plð*›cÑÞ.—ðœ÷~;ÃfØ£Ô“9nJÁ¯¾'>#/›;ÍÓŒgh e‘—`jT] ½€WÕDÙ®âU—È7´aO`Õ´‡™K?õ>ì»ã¨óY(¸ó]ëãì2çy>¨±œ=äàà•ú¥Á²l~¥y¥²Ù^½¢jl“®„•œƒ¾ŸÆŠËk9«úSOF3=Ú æ˜?€Ð]YI¥¹•j"7ÀšiCdìôŒ‡ùze£YÁú8gÀsF ÏøæÞÂìovºùr?ìÁíXm^ZcÝ_M†AÀ ™˜[µÀð4—ñ-¬Êq´;÷ãwý¢_)¢M ñ¤“q×çñ©.<1œýOÐÇm Jae´vß»nxÝír“ëï«ÆÝ”Ù§egœwÁ8ÒäsÆþ©½Æ*·œjH𿜊ìסk0ÊIk¥öÂÈÆ(Å]5~ãf<çìgð„C±v;]Ä]L’ õ¯¹S°gaþæ{ø¯ýÀ«² صÇÍòÃe\î¶€_sß)¯f=ze¶Õþ¿©ë€ÎªÊº÷Þï½{“ÞH! $$„@B¡W“B— iFˆ‚Æ‚AzQP@T¢ ¨Ø°àˆ0:ê8ê8Šel㸖3:ÿ>û}ÎúWš|å½wÛ¾ûœ{Î>h×"kò¤Pª&Ü‚Q2Èç1_HìŠáxý0²7^+Ç {ÛO¿ªÆØír_Ùd×x5X…À¯rÚ:ÌÞ=ö^íë®E?¿:cÿkÛ„Ä—³ö è·'£ß&Gÿ†¶å±žW=ú¿'kì}Õh©0 ±«1ËÄîëéÉøÆhÉÙ2{“•hGÍ^Ípý˜«¼JíóW3ÐöàŒWàƒš©.aEsÉf¨Î„ãŠTÎç ôÛƒ<äßýH1de¥á@ÉqNãzOá\6½ñGZCÅ—úDz±ÚÑ.ËÅœJâi}íÍd¶$žì(‰–ZTXý%¨Å,jÇéw$Næ²}$3’3Âñ¢IÔÓMåÓµcí„ ’jUÒ‰{é|šÔ¤TM£UP¡5h‹–ìÆ9Ÿþ¸ê_ b|VjÅô MºHð fºp›ãXóÀžÄvýö ý˜4Û?ÅJÌxønØ#óuw¶¥¼+Iónk€W±ïIŒ\•jÑu½{L`“b†=8Œg”'ÌãÌ}Fîõ°ê´ø+{ñú%àÕ‹ZF¯›îz]¥iý¿Um("ÔQËLÕ'ÌàP;-m=vƒ=˜#Õ€µà!ݹ?‚U#ù9Ù¬S _A”¨‹ôûþy“¢åv©jÖ}ý°öú­,5çõ]5 õ›ÁZÚá™@›±b:0¦{³ú=&UÞ^Äýšðê©WÕˆy>32­¯ÄøUµö)ß|©ÏâÕƒj÷؃GÁs†«Îº‡ëêB¡™@¸Ûì­úYÕº=§EáôÓ ¬°+©¥YÀsÝó¡V5‚xµŸ‘z©ß ­YŒ·úkiøÕ_X·½«šé}ëO±a>£êìovœ½ÂU‡€Wc]NÄ¿¯9©w²}/W «³&Þ‹÷n¦^ßUª^'ëK€N Ôg؈;TbtEãYüW㨉˜G -Xg3ñ<Ïbì›ÐCwûwÙÿøwùW¢ç›€WOÃkUÉÚD4¹ÜËnŸš —¸F·ÙÎrMú.=×®†e(õ&òU ¬ÕOaÎE?ÛÊ6kX±¦/f6P𖋀ʼnl=ÖZÞ*ÃhõSì—À‘*õ÷­MwîV|3Þ%¹À¯áÌÇ9ƒWÇ»«qCïØ6.>”Çúƒ)ÞCàWÂ;ÆSOF2W$¾]”øú1Ûe1¸æëj:-—B2½‘ôV—Q%kyÂmàW¼™ô«·5×¹AäkÕo Ï…§Dè…áøö<ðˆ‘èÛ•B¥Àý€Ö-€ePI Nýƒ¸ƒxbK"‘%ƒyŒA¼VÏ3ƒHó <[jƒ¤JU µžÈ|ç@==ŽhœÈX…8žÓJ€‰ä<ñİhVFÍ {²„Ãu$jDÑDYù÷x†tZŒ±ÔjèK䑨ÔjªßDóÄ2›ü´ c~×CŽSqauÀhzðc¨Ç Þºþ˜Q+ðèN/€mSM«¸D•é4à•|~5¬šÏÀ($.¿TN%Óï4N'éZ˜f¬àXE‚K•°LŠtq¾P}®²umÉU؃ŸÂåó5°gë)äœÇ±‹\ îÇ8ù^f©Ág}ÊÔ™³ÅˆFÆ!É+3˜cù ì¶ÃàWÒeºoè”J5Ü ôÅô_ɘMÓgL}(’Z ûaíUê±xþ5¢.‰µt%kM•]= [t,Ú|ž"üª l˜þÄ?M¼ÊÅ_¥ûøË¨“’ª·›Óú¤¾8-‘ƒÍX‰Ë±"2ðz®ùƒOîõý[àPZ+Ñæã0~ƒX¾/îž#Jñ¸*lÞwðÚQµÉûÐfÛçìiÑQÓy.Ç}mæŠgÈÞ ŸVsW=°s  Þà0üŒdþ`|w2Ö°x¯Ã]Db'P´HѬ2Ÿ§Ù°Í¯·$c€ºÒû‡¥½Ãï «uðjŠm¶O©ã°¯v)÷ƒ_uÑK#âìZØM¢×wÌdyÞMàWU°št&ð¿ ë³}º ýÔLJrê0sÆá>c¨"XµØ@ý«§ñ­˜Ç›üÍÖ³‹ý9“±î%{Ø}fo¿úÍ]êþã^p{Ñû×»KÜ&;ÍMÖwê«` ¿úLç¨z›ýÐÿˆ9Þã€W¢/ZŽÞÄx†ÞÄåVŒÔf°—a¬`]÷•PÌð7ýöÖh‰£ÛëþÆ|œ%X¯‘À+ñ¿7 o·¯»îÀÊkð×B§­u:ÔŽ*1àWõäc°´îÌhÅ‹1Æ-h£ø¬E‘ìK e"u§¤Šô®Þ®xšá¬Gœ@½¾û¼fÎíµÛÝêóœ~£zÖ›ïMTA¦_¢^+QXŒáœ+fÓî“h¶×0ÄOÞ³íÚ›þ *»šÅÙD„hâXÕxãéËŸìµÂgÑË–À<¾tú¸’ÃùÿA5ÉÀHçJË·ÓU ±œÎýiVmÏU-Ù3R»"PÅ ò3Ã5sioÅ3óè bð+¨½EX}xrÅŒp4XdØÓŸLïR¹œ4$°þÔðTöíê æ%E¡…ƒµÓU|Š ªþx%ìì Q¢U½YëákR<£Åï4ö¢DpKÿõÂïeô·ÇaöJ>N}#fÕcxV93®æêéú2öÁQÌÀ«Å«ë÷Wµf³Jù™jÚšûM"c>+ô2ó/bæwúyuL½I{®® ½«2Œ`W¶® ýjÚ±¾X‹~ÊŒEÐÇ%¹}ýt#ÚÜ÷݃u4±´Y˜Í[°Îú²¦Àkª½>…1è‹äÿ]“ÏxÑå°}øK±{QmõsíÆX…•Œ¿Êb=šñX 1:Ïð¬ç5he‰: ÖÿOõ8úµkGòhŠ©‡ÜAT y>8vR¤ùE¿Œþ> ¶xg€WÛ#Xít®+p_šfÌÓëìjsZ5‡ÖãšÑº#0ø×Ÿš‰•PÀúÑâKû3^Ÿ†•2˜<-m«¿Ä‘]Àî>ˆö>uWªU³÷ßÂúÎ/¨å†Ùàu›ô½¶[ÄI·xu“^Qgç3¾ýµÃ8/Ëk¿ê„¨÷n‚OƵ×ñeÇ܃+gá¹ÊÐÎÐâ\F“nÂ_Íj+X\ ž¨ãE¿õoö§‡Ö»·WÛkÁBt#q x• ¼º”x5Eߦ'Ûµ¶ üêpš[õÝöë;K=¥›uº¹‘ZP ä7}x‚q úTð*ÿ>½ŸÚWýÕMê Øƒ¿¡¯jÔ>Ü3Úõs+0Z?Û,·ö`¥Ú~ÕÕ5¸¹¸Î ¡?YÏy!Q ¸KEy;M­’jY’?øoŒ\g´e"Fs£d“°CÕ«_©/šÊÊÝUjl—9@‘dO‰Äi[Wu¤ ôÙ3ɵÄÔIo{à™ëIü‹V !f å0þ*ˆ5Íà‰fOFÌH2¼hÆ8‹ŸjæöJ¬+á_¥˜CW±£äÔ¹Œùl›(^©¾bLÇ£ÔO)¥¶ça|¦ƒþczawéM}Åú[Ûêî¼N‰úxOî/›‹ÇðÔòùF5_Ï`»ð«À«ùìžj¬¹Nâ³3«MŽÙnÚ3®¾Tßi¾gþ€ä;?{P0ªJw½© Ï.ôÐPB(›Úò³õ13(”E×Z`ažˆ;-`…‡±¸›Ô!.Àl¾x=³k Ö­ø¯ä´­A¿â¿jÒµä¬V=ô8؃ hI‰^mŽêýZjRüóv8°ÿéTLXËýWücÿd-¾z\qpâa¬ÓFü]®$ k8õƨIlÀNe~_ìŽ>Xë½kóì£öž(Gwr%î33M"ìDóëyU¨]Çù_‹u9»K3®×•qîïóÝ(9Îhß>o:=È7ªõn¹JßÓzµÓköšhA•‚å‹r"ÏΦ«QŒi—»©°MˆJݰ7îÅŠK&‰§]Ö†~ð˜°VU4­¸*êDñô,ƒŒE¬ª®¼šä}Èî’ÉÓ¿XâFõâ˜!“H,J&kK+3™\)Ps Ç_Ú/Av`*uŒ¨¿—ò¿ó¾ KYPPjé¦Ñ¢Ì&Îæù@U/~ÏÍÉ'Š¢¿=‘8EvG¾˜È(®MèÇÉ;žhbòu‚«ƒœååØ9>V_Ðwvml`\ã¬ì¶z_¸ý¯˜ÂižýgØ3•ün¾—¦ É-b6ÄŒfZ¥®ÓÍú²ÑØG®Ç3ˆ}5ÜÌÕÃ9.O˜Ñ&ÖÙ.óóD!Ù*×Ñ^b«]zÝížp«üró²~$¢ÈnsÝÀ¯N¨ÍŒ¿š~U…»gþ`%UWWõ%‹¶™: Ôzyÿ:àÝ àÕ:´`7xä嘅êvŸýÁ¿ÕŸ%‘çÀ«Ãî/ö&Ì]wõ¼Æè%n4󧯚ìR{¥Ûj¿Ãî1hú‘\RbC–覅ڪrr·"âo‚ñèÊȧ:ìŽ÷c¬Ä?O^}W+Yo" –ߥ_€\[Ý_­Ø®[WEîbw-~!ô–ýÕJNû*ÐË bÚ“Ãþö(¶-Š×M >ÃnX/sˆ¿’Ù9cË<¦:6<Å"¬’/°òäTsúðJúy¯§ÛëíZlæjõ-æÂeŒù¬F•êj¶%ö`;]FìZVþó}D'pž­§Ñ¾{šO°˜Á>j„iÕ£Ø÷O˜f£ÌVO;´Do6çx|{ðˆz”ñíź:ôŽJc|{šn µ µ'§º\Ÿ0}Béüý>µ O<׃:Ä *µYëôN0©Éu/æv²~}]ªªõÿœÉÐѫר|=Þ¿Q4yúàÕ>Ýßþ7x•‡žº}²ˆ•ïŽR»ÀD—SÛä ¼ó/ mwu1î9ë¶3f|.#}{bVËzߣbÌô9Ìнj¥÷g[h÷Úc˜ëÙº3ÖÎ÷Fê5ßn›ÌËjjhzùW¬Â1èÇAÌñ™…–”aNP7cµü óxFa,}tb7þˆÿ‹«ûð÷iµTþj=8ÑÞíÂjbµë ¼zUmÔOÚ{Ý·Íl^ÓwFô°w¸r—«ŸR÷›8/Ù›C¼š‡qO×ã™sRlÞÂ8†eÙRâñŒ–œðBÜK^õ(ìç™R»[­…=ø³“9Voµ{Ý>ã>µóÁ¿sî'÷€;~µ\k3¬Àéúv=ÉŠ2ò.û%¬ó«õƒöCÿ,öËrâUìÁ´«-jåžÝ z0z¥ +¯£ò$,þþ@óxÿŒßÁ^àÉÝ~؃®ÊI®aȵ¥žÌ`̼½ö%X¿#\+>ó ëú!É‚X¥BžÔK%â&ì}?³âUUùg£ÕÝ—ËÀqßWÍ´ŠŠi£ä*”±€'’u·I­6»¼)´™ZÕ؃i¿Ý«¶y½ËèÑî¬Rô|+Žëú ìM™´}:ânÇÃÑâo¿}›ETõЦÕCl‰¤š^ëŠß^43ù‰8 BoÆ>µ§O~$s“…ÉdqV¤smJå‰Tž&Ñ. TiÈŽÚ†íÄ(f,§ð\LüJ9äZ6ü¬©ô²§°Ê`a˜@ÿU[¾Ó3!‡ElË"ƒ‰"c’¸1§UÑ„ÿåãĨ´°^üâ'#ÙBÅÀ‰Œë|çAÚçù è*}^}N|{m¼AÕhaš»ÕàÕ6-gUX=Õ¶¤—úì¬;q±#Vogê_Ec^ÏWT Ó æ¯¦ó¾OcNÏ ÊëÔ@³ x%{ÆqSc’Í“ijÈ>ú.ó5k@ÿM¿Œ¿ïÖRU»—î ~•A=dñ·‡Ï­fêçÌ€P²¬Û޲„šðMàæÝçQK=ëè. –X6[€€)úM`N7´ü+ÿð+Ùo–ÓüÕD˜<½Á¼§òÜð\s.ø‹¨hÍdUºŒë‰ýWü>óéYì«Jÿ85€ÖÛ$ÆwBz‘ ”áÕÝ*d¾^u§oõÎÙö!û4zGâÛ ÝÏærô÷V;Æ< ~µ’þö‘´>嚃a#Lbt•Eëô-ÌãÉô"> ̃õ*ñW¹Œ­9Ò+ê ÜY*/ŠþÕ{‹_ŽûöÇèeGÛÕ*½ÑnpM°+ͽ:"ß®^k°P“éµõf› Ì¥êR£E‰öJ´a-ÖŽ(yí¡pfÂXõ"î-±þr¢Q ¬ãuž­›Zã?h­½™z}CÂõ¼(§?q î=w·;‚n50c¹Iû4{ëã|¦óa>dßö?@¿WRÿ*ÚÈoó™ãt ®-z27HæTÎïFaºOµ˜ w¯ø]ì胵ö`W ¼ê«´Ëp;Á¯†Je;àU7w‘›+¾ú£5.Ä|ç•Ê÷PÿJÎSVàiEñPNek¨PÔ+c9ÞùRñÏ]_7†\¢s®˜EµÄì¡þUæ ð¦‘ÃtVzi84#=Je1ÎAæÌÙ°ÿª¸xOXƒÑrByú^ý «u}Ña”ê1ו–ŠMrRýW×à–ø¯rÕï ¿ÁÞéwÁkýmš«²Ù£êøÕ*ØGûüÎàWÓ"Š^Ýœèìì49^†7ñ 3Õ¢‰Y/U½V# ”œ³5¨Çqw‰žÿÕ(<ï~Ì©c“¥vø;¬±kü«1ÝöqØf‹°Ó|àÆ¸?¹·ÜNU«3–Ûw9øÕ{/ëŠ=Ø¢±gýwÂzÈKušiÅý'á)¤^jc¢DOf5Ê›G1OúâÎÕÇ·ýBû/Ö$Úé¾C‹ËÜB<›ç’Üð­ø¾ä;wu=] úôLè,õÛÅBÙ¬"½U¦ž–F “…½Ð?“p­…¸¶à•¨Úü¦šå)õDäFPDÎBâ‰e-ܩ֙íÞ%\‡óÔ·Âõ'X«ÞõÆÃ®U¬âõM¡6ômÏ3ˤ¯(ì¸#׋Dž jeÅsmÇËÈb™-“L–$Q©T@? ÆbÞnfü@/¬Ò¾Ä«ÌÝóâgÿt’:õº3íØíÀ«#xÖ ¾óå<¿ßaŒJ+î-=T£*Ì­ºŽÏyÒt3©æ>#¶òaÕ[ï7_2çòý¶úƒºñWÝÁ¯Î«t#;IŒ¾,¼̼BŸ1ÑŒÁg7ª:ÝD=™ØÍÆ`þTsOy»üݵ ü÷8VÍ«ž*š=q•I@,©qlž èé…x¥7VÈcÌwf[ÏsÐ<Ìïx†·ÀÂz3òk’÷±?Ô.òKÔ Øƒðj4î{¯Þk¯q÷ºM~¹™¥§DäÚ»\±+ÒªƒàW™ÞuFâ-g¨Fìe3²_ô·cŠÒD?jõIFß[Ħzü¾ }|)Þ;Á½"_íò·‚_ÝâÏ£ìNÛ£°ÅZÕOê3WçþîÞpÁ^êF¹ù¶ÕÍÑWëÉÀ«ËÜ}ö] {ð.ûºÿ'´u î±X{À«\-¤jV Ëz²–GãY£(‰ÿ\¢Þóóí/¬?ø€ûÖÆ»!N¢‡Ëv÷¸Ïí0ÌëŒgèá¤rÆCoÂJN IåÊzKÌ8¬ær´z¹ú/Ú‘K­þZ\»?Õ¢V¡µ¿`·Odô@9ëM´aŽÛT̹ëiÕܦn5ÐîKÀ>³Ý­t=éY«^ðFxsuŠòbä¯å¢'䌮l>ÐîËCkγîißž¡]ª~'°¢R˜“Iä’H®Ü°—‰5T“ÁT[M!^e‡ã£²Y ,Yý®š—ö{¤©ß‘ñ âs ž&†ö ¨Šç™íéÔ›È ãUTø|0›¨Xrº”ð}Sóð­*²«[ÂyßK•ÔâN ÝÝCg0ž! –Z¼þ»·ØeÏ`5ÜŒ÷¤ ûTƒNÓ’w,ñŸß‚ ç“V©ïTð+iI)Xr•‹E—f>l¿J¶¿¿š¯'ê9䲇pÿ%Xÿ©ßZ3O#N?if˜¶fµbÁ.{Ì|AÌýAŸTÏ©´ô`¡îzQeæUêšP|¨ˆyÐMúU؃_†ó}nfŽCôÃ}åÄjfdFå µ‹ZQí0'÷bu¿„¾«Pýõÿ4ø•x˜æ›[|QÎ-ÅLºÞ<§7¡e= ¹Îáúu²~±—ód¶¶Ï?±zú(‰ljQ?cŒÏ‹¾Ì(ŒG=#RkÑËYè§Z<›gþ®?À;/Â|ËæÛ‡aŽRíu®+r¿™iøý¼z0$Y>óq²ê\\ÿr¬3au—`|Þ‡Í5…~àŒÙ ¢ZYˆßã³é“ÊÕv÷¹?Ënò‹ÕiUc}7ÄN¿zU?j¯rË"öúýÌy=3¢ìÁ"—£ŸW™d/Æ[di?V ÑkxØsæú&–R3UüÖÔToá µ Ï? ÷yê'ª-þû_æ>¨jÜY{Œú 9ú‚ëþᎹÕµàW5n¥½ÂMÒKu“•ʩگuGµF´Òß.6nÑñ°ÑŠ€íï»ñíU¸Ë æ&Q!áXÿý12¥ê&õG?É~q(W{Ý7À«¡À«Áʧ^ß[4?hϹ ×Ï]/™á¡sÔ“‘¸—[UõEÓqM9Yù +²ëM ÃŽ4#ËŸB'Pi¦ˆÙ‚&Ý¥Z#ž¬ôUjµÙç]EžÐªîqw¸*®ùÕj›×ìUm˜é{°+ùXšºŒ¦H*Z_ £m:±ƒv ½Aþr±ãô_Uha‚àÚº\ïf}‡žê¬‡rÃj`T°.ˆý@ùºˆœí\ý™MFùR= 6šœ˜ÁÎ3³B¸Ö(UgÆ[ÄÆ|δßì0bóžP½ô,óÇýsýGàÞ1ÆVuÓå¡÷T–‘ÓÔd=1 µ£Vó }̇bYp?®Ý]_ƘœJŒôp¬kÉú,ÁºÞu3w»¸’®añúcÿÏ&W‹_|±šª«üEÌsé®w˜h¯œ‰½Xñ½ÊR t!fc´¶WúÐW4gžÃ;VïÁ'D YòT ¨Ü^"9Yi{ºŠ3?ê³èûj•÷.ðêA{½ÐYwtåî[0ˆFµÞž‚¥úëMxZÎýä$¾'ZÓŠ±|›)À¨¿¨·š’WØ|O‚Wqmå«W¹²^Á(b½ÖfïS¿Î®†=xN5ØïìL{1øÕz›-r×F<äw1Gô¬ˆöv»ëâJô ؃YžçÍ2åÌ3Z¡ëõmx~9\ÄÏEO­ÆÚ,r N|Ê“òhåFôÕ$0°gqÿZ ò§ýÕ¿Ñ¿Bj1_t_¯þª¾sõÀ«gÝ.ì{ Ü·ÁÎsWëUzšÝ¶‹Õ"ý˜=ï†6KÕˆ:ÁLÀÝ–Iv8^뉫—óäô žß—ãõ'±ÕaÊðþ+~1øU~ßÌø«anúâWç¶áïêɼ{p¤kEž^E¸„P.-Þï.3†Œ¢s)RÑv¹£9ó¢ˆñWÏ9ÖR±êÎÑÕ–jž ßÀ˜Ì j‘ÙM?Um+øUž.U;¼ Þ8ÆNË®Ø*:²ô#]B-Ia¹èë—èa—XòyXµ=TP56\ 5ð‹ÑTI´âJéÅöTHÿ{c?KÃ+_ò—Tf8f]tòé+‹eDs‚ ò+ÒÑ£Aåúz÷EÍ=‹-iCSn8æ3‘y‰þU óq"è‡ObÔ_àCoG-Øt¢[.>“Ï|‡gȧ½Ĉ&ª@ù4–4P”ø?‹¥°³8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run005/bold_events.tsv000066400000000000000000000002461323370031300255620ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 house 52.5 22.5 scissors 87.5 22.5 bottle 122.5 22.5 face 157.5 22.5 chair 195.0 22.5 shoe 230.0 22.5 cat 265.0 22.5 scrambledpix pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run005/bold_moest.txt000066400000000000000000000212741323370031300254140ustar00rootroot00000000000000-0.00239154 0.00306415 -0.0018909 0.0144622 0.00949772 0.0328042 -0.00216267 0.00409678 -0.00310425 0.0145045 0.0167687 0.0517096 -0.00198895 0.00427342 -0.00310425 0.0145076 0.00951049 0.0517174 -0.00259221 0.00363437 -0.00273229 -0.011943 0.0166758 0.0356523 -0.00194079 0.00377575 -0.00283514 0.00933158 0.00951094 0.0434683 -0.00259221 0.00382995 -0.00324058 0.016197 0.0179058 0.0392655 -0.00215743 0.00312194 -0.00276169 0.00933921 0.0345909 0.035656 -0.00161692 0.00284554 -0.00211077 0.00930402 0.00949508 0.0516644 -0.00167416 0.00407354 -0.00254522 -0.0222563 0.00949941 0.0660504 -0.00104015 0.00313972 -0.00271863 0.00894056 0.0274718 0.0731715 -0.00148161 0.00389929 -0.00282868 0.00893649 0.0127855 0.0524626 -0.00186413 0.00226109 -0.00111159 0.00889069 0.0137094 0.05242 -0.00172612 0.00375055 -0.00266854 0.0246154 0.00468298 0.0524242 -0.00225645 0.00396252 -0.00235956 -0.0568439 0.0192201 0.0523743 -0.00175171 0.00347053 -0.00284425 -3.10865e-05 0.0119253 0.0685748 -0.00175171 0.00424374 -0.00319252 0.0106927 -0.0192522 0.0511691 -0.00242122 0.00396279 -0.00319252 0.0130262 0.00792835 0.0567382 -0.00130475 0.00355607 -0.00312873 0.0130353 -0.00410363 0.0511764 -0.00163369 0.00416776 -0.00336766 0.0130338 -0.0192409 0.051165 -0.00139331 0.00387239 -0.00362195 0.0130559 0.0131174 0.0511762 -0.00143066 0.00349585 -0.0030583 0.0130382 0.0131209 0.0511742 -0.00231291 0.00387239 -0.00369118 0.0130674 0.00272859 0.0511308 -0.0020369 0.00387239 -0.00351318 0.013053 0.0131021 0.0511455 -0.00186372 0.00397763 -0.003081 0.0130296 0.0130964 0.056131 -0.00180305 0.00387239 -0.00328992 -0.00524292 0.0130982 0.0679979 -0.000973848 0.00325362 -0.00332396 -0.00466941 0.00741096 0.0591317 -0.00108114 0.00421893 -0.0034103 -0.0135162 -0.00278519 0.077341 -0.00208663 0.00353329 -0.00241752 -0.0739865 0.00248855 0.0497832 -0.00208185 0.00377373 -0.00330346 0.00245933 0.0168445 0.0607559 -0.00139652 0.00270241 -0.00207734 -0.0237236 0.0181226 0.0608011 -0.0013403 0.00353329 -0.00338098 0.00329104 0.000558974 0.060795 -0.00213547 0.00241589 -0.00250288 0.00324553 0.012847 0.0607335 -0.00208581 0.00265538 -0.00247473 -0.00691094 -0.0173183 0.0607437 -0.00215166 0.00275936 -0.00287794 0.00328876 0.00759859 0.060726 -0.00216125 0.0029316 -0.00287794 0.00328546 -0.0050587 0.0607242 -0.00155265 0.00278085 -0.00287794 -0.0553648 -0.00211556 0.0607667 -0.00147629 0.0023552 -0.00287794 -0.0179461 -0.0137215 0.0607595 -0.00116252 0.0029833 -0.00287794 -0.0374242 -0.0260921 0.0607762 -0.00200213 0.00320326 -0.00224342 -0.104764 -0.0261164 0.0607188 -0.00119972 0.00368105 -0.00336159 -0.0581871 -0.0261457 0.0607794 -0.00200213 0.00247269 -0.00200991 -0.0844665 -0.0261461 0.0607478 -0.00184475 0.00332275 -0.00310911 -0.0215035 -0.0261664 0.0559888 -0.00105799 0.00373138 -0.00267279 -0.0891314 -0.0261279 0.0823146 -0.000692962 0.00374774 -0.00267279 -0.0891289 -0.0261084 0.0635966 -0.00211251 0.00302762 -0.00267279 -0.0133443 -0.0261972 0.0634911 -0.00216017 0.00324412 -0.00267279 -0.0321294 -0.0262002 0.0676257 -0.00160684 0.00255939 -0.00267279 -0.0321216 -0.0214067 0.0635447 -0.0015359 0.00308141 -0.00237691 0.00507002 -0.00325122 0.0667603 -0.00227329 0.00357863 -0.00283694 -0.0374848 -0.0183351 0.0682086 -0.00210086 0.00278631 -0.0027991 -0.0194249 -0.026223 0.0603954 -0.00210086 0.00403292 -0.00300185 -0.0587872 -0.0262226 0.0526372 -0.00238034 0.00390151 -0.00316011 -0.0733154 -0.0287778 0.0581302 -0.00214932 0.0033998 -0.0037633 -0.00965473 -0.0262426 0.0471228 -0.00184963 0.0036049 -0.0032733 -0.0642457 -0.026224 0.0550743 -0.00279252 0.00353956 -0.00277316 -0.0815286 -0.0262371 0.0603806 -0.00257832 0.00346055 -0.0032733 -0.081483 -0.0262537 0.0604056 -0.00274661 0.00370044 -0.00320043 -0.0385763 -0.0281399 0.0871297 -0.00164047 0.00346055 -0.00328743 -0.0190494 -0.0311513 0.0604833 -0.00237625 0.00300676 -0.00302179 -0.0190643 -0.0167027 0.060084 -0.00195062 0.00346055 -0.00380366 -0.0190139 -0.00398454 0.0785878 -0.00238903 0.00322385 -0.00254153 -0.0627671 -0.0668362 0.049374 -0.00179821 0.0022565 -0.00391674 -0.019556 -0.044418 0.0690627 -0.00175726 0.00154533 -0.00216258 -0.0121557 -0.0122495 0.051659 -0.00185976 0.00154533 -0.00166682 -0.0197349 -0.0122306 0.0523422 -0.00158391 0.00311812 -0.00287501 -0.0322327 -0.00222472 0.040644 -0.00134316 0.00289172 -0.00252816 -0.0785599 -0.0122322 0.0406894 -0.00169973 0.00160995 -0.000789801 -0.0786771 -0.0121531 0.0361452 -0.00175891 0.00331568 -0.0027898 -0.0785587 -0.0122504 0.0632705 -0.00154867 0.00233065 -0.00184203 -0.0285612 -0.0122024 0.0633175 -0.00181586 0.00288205 -0.00319271 -0.0284998 -0.0212677 0.0460191 -0.00139339 0.00277522 -0.00214542 -0.0598905 -0.0122177 0.0633215 -0.000535224 0.00212922 -0.00214542 -0.0598815 -0.0247251 0.0817573 -0.000956752 0.00168843 -0.00237849 -0.00496454 -0.0205321 0.0723378 -0.00115426 0.0025291 -0.00319288 -0.00492933 -0.0223078 0.0647681 -0.00141241 0.00158537 -0.00149099 -0.0228789 -0.00812872 0.0650032 -0.00224906 0.00209634 -0.00245673 -0.00769643 -0.0112958 0.0421412 -0.00178674 0.00251526 -0.0020019 -0.0050163 -0.0150698 0.0523789 -0.00184576 0.00189085 -0.00129849 -0.0522341 -0.0186808 0.0614231 -0.00109232 0.00163508 -0.00139921 -0.0858149 -0.0383935 0.0622254 -0.000580368 0.00191502 -0.00151387 -0.0205385 -0.0383165 0.0792313 -0.00133045 0.00192183 -0.00106042 -0.0747933 -0.022284 0.0681864 -0.000960777 0.00163508 -0.00166047 -0.0499847 -0.0222831 0.059503 -0.00136304 0.00252422 -0.00262207 -0.0499634 -0.0223248 0.0517826 -0.000988467 0.00244081 -0.00244794 -0.0257484 -0.0223135 0.0561551 -0.00120044 0.00260484 -0.00267394 -0.0748156 -0.0223222 0.0558914 -0.0012547 0.00213607 -0.00232242 -0.0249931 -0.0223025 0.0545379 -0.000819008 0.00255071 -0.00221891 -0.0439068 -0.0249099 0.0754202 -0.00183068 0.00211927 -0.00221067 -0.0438847 -0.0399961 0.0645962 -0.00147051 0.00253717 -0.00267025 -0.0438577 -0.0246716 0.0624606 -0.00076139 0.0013592 -0.00199638 -0.0156133 -0.014903 0.049476 -0.00190045 0.00165228 -0.00199638 -0.048645 0.011117 0.0494124 -0.00112247 0.00234103 -0.00216496 -0.0202145 -0.00950193 0.0494651 -0.00152477 0.002181 -0.00218883 -0.0319813 -0.0307049 0.0494192 -0.00222762 0.00262733 -0.00262863 -0.0157605 -0.0363359 0.0425543 -0.00152678 0.00216263 -0.00262863 -0.015754 -0.0363248 0.0494075 -0.00117626 0.00163379 -0.00201646 -0.0213795 -0.0251014 0.0466816 -0.00182327 0.00188671 -0.00209773 -0.0157836 -0.0363204 0.0493887 -0.00182327 0.00240172 -0.00264139 -0.0394399 -0.0363193 0.0468509 -0.00108395 0.00157081 -0.00115289 -0.0864713 -0.0412092 0.0494612 -0.0013573 0.00247972 -0.00222511 -0.0495596 -0.0323511 0.0493993 -0.000704696 0.00127072 -0.00150416 -0.0221085 -0.0371566 0.04947 -0.00131021 0.00210167 -0.00206311 -0.0221005 -0.0273189 0.0456068 -0.00135189 0.0023252 -0.00216829 -0.0149008 -0.0255104 0.0554989 -0.000835475 0.00200837 -0.00143345 -0.0838359 -0.0178837 0.0528388 -0.00134894 0.0023252 -0.0022151 -0.0170415 -0.013458 0.0577134 -0.000420394 0.00349194 -0.00308557 -0.0420503 -0.0362205 0.0712784 -0.00082204 0.00302603 -0.00240766 -0.0667006 -0.0179166 0.0461438 -0.000975714 0.00199271 -0.00161858 -0.000182202 -0.0178747 0.050496 -0.00146855 0.00213017 -0.00204893 -0.0240562 -0.0178846 0.0504759 -0.000808639 0.00289091 -0.00204893 -0.0455789 -0.0178648 0.053743 -0.00103162 0.00256777 -0.00210675 -0.061684 -0.0315046 0.0670067 -0.000951315 0.00189827 -0.00179165 -0.013167 -0.0178529 0.0670425 -0.000975271 0.00279698 -0.00260657 -0.00767243 -0.0178514 0.0341462 -0.00126131 0.00304465 -0.0021279 -0.0261377 -0.0178568 0.0608388 -0.000960853 0.00289649 -0.0021279 -0.0600371 -0.0178451 0.0608583 -0.00102789 0.00180725 -0.00168572 -0.0479008 -0.0178372 0.0509649 -0.00114491 0.00229786 -0.00222373 -0.0361854 -0.017842 0.071974 -0.000883724 0.00304669 -0.00307175 -0.0609147 -0.017835 0.062726 -0.00106169 0.00295297 -0.00307175 -0.0165936 -0.0269134 0.0627113 -0.000463252 0.00210876 -0.00124463 -0.0855991 0.00320353 0.0396257 -0.000292048 0.00275535 -0.00218841 -0.00804634 0.0257389 0.0396346 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run006/000077500000000000000000000000001323370031300225175ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run006/bold_1slice.nii.gz000066400000000000000000003215771323370031300260360ustar00rootroot00000000000000‹Ľ˜ÉÖ­]™[gp\wwÜup\9ƒ»»»»384îîîîîü«ûÞ¯0ÍC3÷;ÿÉzè¢zWDdÄzת”®æø‚±µòY__DŸãë€/ÿÇ—›õ… ø»ëæúõ æöùZü߯8¹¿|ÝÒ|xM®ÿûMßãø‚z·‚e‹eH™:8íúÛþÝÿÓ¦ýû[æõu ³ÕÿßèÇ–ÿy]Àó›Ÿü_þ^óÅs_mÍ’¥ùßml0·¾N´ÀÝsÙWÝI¬=ü÷-…sØñ܆nd“Àìq2 Ê_A|ÿ»;Ù}‹¡ÛúýŸm'|'Í “r’P]z`²˜qnx7Ž5tܬ7W\rÓýP;ǘ§T„fØ¢ôŒ–Ñd6ø»á©-µí웃²˜Áª4ÂYì„··hí¡ª4†"r;nOé)¾]C«é•¢ìÔ†ÛÈöŒYŒz!ÍX³ÁV@»ºÓJÚLáø.5¢˜#ñªÃoPñ‚ Eùiº=÷Ý>?ò¥§«v¾}eßQeÞAñˆHé(m &üˆSz¾Bµi£T×ÔþNE?÷OºH­© í¤dh:•¦6TƒWð4NÇáÑB?ZJ‡(Ÿ§Qhw:ÛÊyõZg}§œô†gRFJLs),ݶ-é7zN}ø,öôx.ÎáÐæ³tã°…&RGêEÓlN9ˆV¶r˜št€\îƒz‡h6@Ê‚ãð_TÚn2y=wãJÜ™&ÐBê‹þ^²Ïl:ªkÿ^m›/©e§RlÄå9ßÁøÔ£É”„r]<r&®Ï;x¯ã¸œ7КÇ<ÚD˜p.ÕÂynÛòPrÞÎK8%ߣ.Á2|„+IN™%Íu‹d—§\AªÊ$nÏQ99Ïæ?ðêFœŽúÛA_Õ‹é¾±i©¥ây¼Ÿó2zI‡9½„­¼MÞÊYù]—kXyÉ)Ä‘©œ‘Óð ^Ë#x"§\ÊñEÅ}n<êI;è eã-\ýM$óe†ôå‚ÒQ‡jdï¨ÔÞò‘ëHe¹Ìe9'÷ákØë£ø8¥£Ã¦áõrÚLœ›¯ÓIjÊ£y=àèe9ÊÅå²®ÕBjô„.‘(x.š®æqÜ‹Kó&^‰wÿI2ò2['°Öfßg:ök ~FU9)G¢åTH¬NÕ¸ZWæH-­Ï$»nÓŽhápi uŸÁ^òc‘Zƒ£ð)»,°Þzç‚ûïfj4ÉAcÑÆ¡¨âóÊè^Q®q½9ºE£zï冄ò†ëZy,7(4öÇ.Æ›)—íd«ºÿS¯¼sÅD§âX ³¨ ¦n2Ô«¨µ–fÕå²\çk­®½ÕÕÙRM7hy¬yd09ü?wÁþÄ-¨Cà,\à,2[ìo4ŒZaƼ°´¢Ç^q'ûdƒ×ºÖ»áÅôrzÝ´¼œ×)hs)¦™ùOzo—Ñ#—#s »üëî?¹=õesb΄G¾üÎéò¿·Îv'$xƳÝIƒ*³|¹ÜÂn·†{Ýùà;óCÕ®ú¶›ã6+¥èô+m1ILK7†ûtÑÏÌ3~îk'Áµó°yLåi¾ý•.aÝô¶ìß07 Õ¡6v„½iãRló X•z;Gœxö mã2ô#·å^—âÚ¥PÐ;ô'Åî ³‘ì ³*õ^»óÌY[‡žR'ÌÇ5ó¼5E€†…çÞT„?Q:ocS6m·ÏÆÉ95ÏÞ·ï©"¯£LàŽ¥2`æ2jÉ7±¾“Aék@ù†£ñM¹ïT<îv × F+ÚMCȦ¢®TŒ—òpN†Y;‰.Ó44 Ÿ¤¡Pðd¶—óèµ^ú®:e(*Ï ´àí(8ƒë¶Xv—šñVÊ@3¡x#-B͵4“ºQ-êCSmr>ˆVqú˜.tž^aÄSÓUšƒ–§² êÑŸRÙ¹&´¬ä.œ…»Òxš„1MF×ì5›{üïÕúR˜Öß ´çª, ö ´låà~Üš›ò þ…ëñ6^Ík8Ôy x<U—à«©1n¨¯ZxÜmoû`Üã'öq¾Vî§²øwEI+s¡öKåg¹ uÍ(‹¹Gäst ãZŽSÐïvØWõ"¹¯l>jJÙA£ƒ Ðú@—8¶„•M¼UÞËi)­c5žÜä„`Ê".ÆäÅØK=9 zÕþEÅÕnm}¤ ¼t8M?ƒCe0ç‘?t€²·_è&yËÍ¥=øÑгóTÞÍsx(è6™_Ô«oãq>¾öWáÆ¼^J ÙËù䈮Ò\úIžêyyÎí呸ñVôµz»šïHvd[ÖºáëæÌ†Ó©ÆO©äÐé¼âèb©õe¤ô×¢zCRè£ÃeŠTÔ?ôå?ÁËœŸ?Ð'Úm7ü{ß:ÁB|ž%­TÀ,©Ã7y‰¯¬’7Ò^£xKt½†ò|zU.AýWKH}†™Ô üÈÅÛ(¹m`ëò£µsÁġܠòdjÎÉ©3U–Â^¥•5—z^ûhAP8…®‘*zH«Ê-Í)ãè=ùû¤³6—¤’³pƒ3Ȭ´máϺa½:ôHÊy÷´”Œ‘²X¯ê4=æ=ñx…½Z]b{+$ª¦ šúóþ–ˆu“Ø®þƺûOnï|œ83á4VeP^/8[$ç’óÁéêZßüådG•©¾Tn ·–;Áõ¹o|~?Tí¾oƒ9l3`_§€Û™a~2¹Ü'ÎOö¡g!‹¼uBüP;Ÿ™çXÍÓlF(Mwêl¯ÛO¾nîSÛ€*ÚÒö<ÞIL˜`UìëÜubØçt¹,Ÿ¸9wƒDz[ É=²aFõ¶aí-œ>rýÌ[.¼'œÑäÔTº,3ŠJ‚¹°âá&Úßmá=_èòûù#?¯§äàÇS[ Éf6µ… >J¹À  ÉJ¨@L“÷;¯»íÁĦàÇø£wv•@KðrË ÙáÑtƒ6‚‘øøR“2ØæÎ¹oÔb縓‡âñ0J‰½:–"Ñe[ Ô|C­x/e¥A\ Ú¿ïtIn;T£'˜4Å&1Q‚heEg°© ÷¥,t ­È ÞÀ ̓)›~Ì 2rGŒê,00ݵ?ÚÁ]¾4fŠM ½­€„ñìhH)/òG5®×ÿûb ¯BþˆÇ)0²ëѾÉhçð#œK_µð®Ûü¨Fá°ýàÝ/ƒ©Ÿâú’Z6HmÝ))å8‘_eH<!Énåœ -úU½Î[[Y-!RÊ*ä ÕÐ×sSDò_P»óR úåÈCN$¯¡ñ9ᛯáµ# i0Òïœ_T\áÆ¢?0ÎoѦíèß Š*Ódº4â¬ÒI{j4ï€Õé \©ˆ?q"dÝhã8¤»¸´Æ4ø¢^7›òa:ÇSŽÝAúX(me —’GPþÂ*zYÉ=n÷¼“§ó`$Ãxç’§Úšµ®ú:8Ëà£òÀï4à¬üÒî¢4rGæk$m ä™–×S’EÏè$Œ67ÓÚº‚7 ¯Ø'Íø'ˇìÔÀz{ëîcÊÉ‘còJQÊAÝù,÷Õ7šE÷Kí®™½ùzL#xVË1¤š  Jxø·ñ$̆ݔÙÖ²åùÑݹg"Rf¤Þ ðd‘¨>5”Š^O«U4¾nCzÿ.ªðÝB©¯ó4#Æ ¿ô&‹„– ®) W¢æ³p±3Ï ³]¨7ËÐßÞ<³Ú³…)2Dš™@Ñø!t"<_Á jý ÏÙè’g²À>ün ïø~3fXs57oG»òc~U¥©Ð¹ÆL¼ëû"Hºþ>¥3¿§âU· ¹3zt˜úÑ=;:_ ÚÁc8/?•Ñ)ºNyàØ'Á±¶KߨÂÙåä‚ަrhWúˆq/ŽŸ¹H= Çqh4”:2Ÿ "l„[ìKÓ‘?ªš˜A´²°ÓÕTD* Ç1GN‚7àí~%—C!”±KLtYd È À‚ÜôÄ>·åiHüXà+Œü1ìÅ ¸0¿Æx5@ÚÊ‚~¶æZ|šCCï£ß{82Í i:ÒÑBôº“ùä¼ýÛ¸µµý(ŇÃÞï{ób7´z/7“¼2[jé©-'¸¦?:r 0kx;ø‘•zÁð>¥(OFÅç<Ô=ÆžD“ó|Þü½”ÕMú‚Ÿrv -“8%§‡2¯å»sJJ¡Ü9_TìåþŒ”¼«!3^U_’+ód‘4ç\2Iæ#<ôu탼ÐCš"ÕTC½þ|—§ðHø›¤´Ê4ÿ¢^›)í<ÜY-ä·Çd †Iu™Ã9ä.Ð_õ'}©…¤ž$Ðy<š{ im EeáÙ¶a`­íàÇb.Íw©&zrÄž§HòD–hDm,=Zë-)¨7t°N–ÒTëê.ì¡ñB~ϵ±bRòq;7°Þç”û3ô:VAJymãÓfäÀ…èc½.Œt”Ê;4’ØSpø tˆüN§?ö~Qd³¶‘-ÈáÎy ™7­¡\Öf£{ÒΫ¢SµrÖ+Ù§+u‚&Ô^4i¨'=îj Uíÿ)ú ™«Â·þO½uN3Ñv¢‘4ó÷5zÖ#¯ ŒÂ)¯KѾ¾ÞE免UsÉ==!É5‹јð­ìf"ìäœ#Xjó¿½]ðåp’οÿ~tõƒ3Àlr‚þ5{ûâ»%ÝÊîr—ÜO˜?²ô­77lVªJ±©­0qÌ6T‰ _½Âì3kÜÄn„jçY“Œ[Ðr[¹u´?ÓQß,÷†mI-lm»ï”Û˜`U\èœrb[Ѫ‚>8Ôúî?$›ç𙩠´KlB#XŽ YfŽØœH] Æ Xo¨:%æG†Q>öàGïÚhТ]öôw[¸Æ×îp½mCry>Iñ© ½°UÀ̱ԂßÂ5gá«T‰a®ÿ‘š¯TàïÛn· HÔÉú:\ücä<ÔŒ2ðF¬ÕÌlyÝ„ ¦¤hï\¤”¶²óüµ\ç “âò"ä…¤ÈVoìU[üxF½Øü 剉6糧 Á^èóLèóD[Å„¢•Åž¦%òTîb^§% [^ŒAé—a1®làn\£8#¥C~ze‹QÓ ø1Ý—Ãt·£) âß8ø1np0å¾\D¹ƒçªò1>‚Äå4¼ü˜L3ÐÎu4Ð.F£ji=¥Ïùç‘È2ƒ rZ°j7æædÎCÈçÎü¢âX7"µÅ,PÎÁ‡U®RdÙ"»¤—‘A:CÃ{'àÏûÈ n.¥‘~çä‰;PüHÙè¸é÷E½²6xp {­"òø zÅ[eˆÔ‘ÍœüX¥öé;Ý.¥¥ÄЕ¼€[B™· /[8–db?Û4°ÖJßoÎz¬¤ŠpR58$»ÐýäòBfA›Èé©Ýô¡ÖÓ:‰f²Tцz#Û‹çrx©Â 8ï¶ÿ>ö¸ÈYáú¸"ßÀ(#© à¿cd&({ÙôÆn¡fóÎj,/‰÷‹ž•]:T—I,ðÃp̆Ҽ‡*Ùþ¶t ?ê9wLð#'-¢QœÉ#Ù¼VÇ?ÒiXíÇ¥C4´îÝþBþ@º‘n䀈p°ö$T¢jà,\êŒ2ãm38œ”üðiY/¾—^&‚ùt§6Õ Þuï¾Nò¶i9yªË%—@êJÉ}è¨ÝuÈÏ”ÏÎþƺûOnÇ}Éœ°3ᾯ®ûò#¡sÈ ëŽtS˜xf§ U‚Ývn_÷“ãs¶ýPµ—¾Wæª-H•(ÖýdÞ¬s‹»áì»ÐŒ6{Ý®ûCí|abpyZŒDó8àèö»ß7×}lËQÛTJCyÍË`Ušì\w²Ø‡t…ÎR ¨à x¤æÂÚùôݧ–øwGh3ذve0ê%0£ÌQ¸bã —KCÁùFÀŸÏ0˲pÌГ6<%¦vûwûüØ×‚šiŸÚ¨\–#cgð?"'=‰Zó+:ŽjAóý0®?™ ß©xÚíž¶„Ó¾„ULH©àÕpY‘š§Ãù/§3”Šß#=µ V¶óøµ<$Ô›'Qzú #÷ãÞYë)õæm”Æq TÜWw¼;_ fM?‚úd±™ÓÍÔ^þ+xH“k³t57¡Bv• +Aó ïŒÄ»õÂz?g? ƒàÇV_Q3Ò΢P<Ü×A‡¦µLègþ:—Œëò&(Ô>$šx¼™VÑ ´n§eóþoùc·ÛÛ òôØ‚‘ºM=?jð®/™e4×õR\îp%© {¸ òGVÞŽìãÁœ—†ÚÞ_õظ/lªIIЂ ¼“`Þíâ¤Ù`±D×·RNýô?áò’L¦s)ÎÃgðÊQÜ› Q< í~yDeœŽÚaÔžPJä£ü€bËRY"]8¯ü©³5´·CiOd™?áø"eä~|›g¢âuJ~4ù¢^›ª} ë ñl¢[|ÊÞBrqy«›µ²¾“Ã:SBJW‰ª~<Þ>'·–ý8äæ¶q`­ƒ¾žÎhô¯2ßÁˆ%âv#øáéxM¡Me™tÕjúý=©½ul?þÐë|ÜÚ˯¹G;—Ø…õö9ëÝTa†¦ßàúY#Õõ2é £‹4¬wT}^2/Ž^”ºE§!„fåvÜT\I9lK[(µ?‚¡Y0G:q\¸½¦×k¨óµ¼¦UOÛjQü;.ÒÑ;YŒ=ý@³Év|uÂ̼Oq×2w§ú³p­3Â̶eàVÚÃ{2=—|Þk­ ýe%[iOï±÷L§zsµ¶ø¼]ØßY%§¦âötÓ¤×6=ÖM:û×7ÖÝr»îËä$œ W}uþññ„ÎIçòG“Øs2¢Êh_·ˆ[Ûï>?vü`»6˜;6ô p’ cªº®kìe»Ñl5[ÜHnPÇT¿½6פ•¶½§aP=öºo {ÙÖƒÒ×µ¯mJú%È£´ßú±-ñ8¤öPeÜiS E!íXxÜÇpçéá5ûÙä–ì‚`Ôûè®3li8ÁQÐËyhßu(t¬OÄêV¬ÿ£¾¹h’=üݾô•à üˆ#É_À,/MÏ‘ºfÒ4ø9‡÷ƒ§© -À3Y(±©õŠûÝ`b]ñ¦÷pè «i᪇C™]A·¡‹Ûé(ä2jH¥l[çé7jÅuŽ;Yª&"¥g§Hï‘?*Ñê†ÄðÍâjü4è ëèZ8ކƒõŃüd1¯³ÜüF),÷§DtcW”Š¡î- Ϩ°]f"È"îµï ÏDëÓäRŸ}òüïm™¯€c'PtÏ5ÁŠ;І&4…²B/+B×ø` ÒAŸ¶âýÖ€ö[ÀQæ±óú«zûÜŽö_Tûo'ÆÊÿ̤ßñÚZ|‘•¤²JÚ"””‹\W Ê\î "åGÍï†üQÍùªÇÝû65¢„¼z ùÇÁëcK<¹À'…ô©ÐmJò†‹Ix™ oŸ¬ZÅSxêE§¸î¤/*Nsboí¤—” õ~ÃÞK)‡ Åùt‡“¶Þv½¨£%„Œ”^òN<+Ff‘v`¼÷šÎ_Ô+fÓ"e]‚/©?E$§P­™\B7Y‹)!Í—ôÒ]2êNŒdk®Ž´µãF’ð`Ûå³}ÑÊ™„YQTkÄ)ø¡{ðÌ9<ç¡ãha~êeý¾ÛBv~mö"¯Ä_^=Í ~ƒÒM¤òüi!ÖQú s?E4Õ¾SqÛ€áõà5ÓlúRZøÖ_yOð?3†ƒvûÐë¤P ™È)%mgçÞ7j9ÎK'…ã.T Œ@‘é­O­Q¿Ä^žŸÿº¼—^ÃÝïCBšVo²•MPŸ©öpZ›btã6?» ï^³¥@Àñ6”À1  öþg%øŸÛ’€Î[ãø¯ ÏßnúÁDä\šu©ª ÖsÒ€ÏéËA‡³ãù}àÇ6üoðn*mÄ»î§õHÇœ¯?ûœíþfûBïSña^ z„‘ÛIÕù*W–²^Zêvã—“r2ꜚ«ðYhýiÆÕi°óU½_܇6;ò]^ z\â)H¨[á¢cÉqÞ(± TÕ¡Yïù#øBfá ò}°k°2e¥(îø/*.u3bv£OT u¡}™e;ôj>—’Î:jºSÏé0ä…Áб\ŸÓð$~À»”ƒž˜?¾¨÷«p†ìYêÎíù=ç'rü¸Í å5}Qðc¿úI4ê¯üHrÀé­H W¢²òÛ °ÖIߟN_zCùø ’n ‡Q}\¢Ñµ›ì–??ÞI!Tm£sd+’D½Ä¹'êÅ–&•Cò¬ÏŽ,tþr`ÞoÅ> Ѱjý5rëi¹,k4©wX?iü èWB.HÁƒ’´Ìžùn ø‘¥Õö¾„ô}”rÂ%8®åлßÀ¤ëTÚXžæâòSRSõ;W¹Ý‘?ÚQc:æÜ²Ý‘hªQžÌ3áH‰çÃïŸI3!Û,ÅëšÚεoÔúàÛî¤?&R:йtΖGîxBø%¡QÜo…ª]Ã{í†ÞÎANZ`«™?ª;µÍ WhìÏ\xõR*„1ʆq ‹\Ùv0,«¹ ø1 \_ ¦§ÂÊ ‰×Ì‚ó°úÛ‰  2ß5š~ A~ ËË93~/X°‹c ,Dû'‘“þ2Ïþ–?vºMì*A©ÙÿXmUþm8H%ừÈ/2[ºêyÉ/Gù7©$ó¸9sNä‰PÓ‰\„ºØy_õØs-¼@+hê,Ðã2¯B¾Ü å 'ëÙOè©¥Tå%ç ƒÞß᣼žpVÊM±ÜÉ_¿™:!7†â èQ9¾A9ÖÊB.)ÍtºFôv(yýå÷B _a 2Â1Üfò!ÊG«M—/êe²IA¬ äÄb¯¡§|F.Hk9‡z¡È…õ‘œ×=’Pþ@RòèôC®Û‹Ds‘ã‚ó>;~~ÝWÞŽ^ž¤öŸ`6´’ðºHcjcY$c´¦²æÕuÚI'É\髽ôŸGZXˤ3ÇÇcÏgü¸ê¬qCažDžL+%°ºþä—Båly[<5œÓ&"æp~¬þaüØæ¦º’Â+¥ÓЮüºFÚi6ÔH¦íÔÓuÒTçƒzçÀ¡XÛ©8±o‘”ë|vþÕd³r> Öú Iã…õŠÈ0îÍ fK/ð° QJ2Ë*xü‹’GîC]+Èî‚wÌÂ'ñÞGyW žvÒW=徇hN) ßf@ƒÓIXÙÇK䓜“šð÷½ÏƒT3 ü(ÌA«ÝàGaô$™»Äù²}‘±®öBÑJ óTç{”ZöÂïNÚê°ã ¾Õ^úJ¹‡„”™ó&¯ÃŸç0Þ‡M½/êµé¡Nc_6qwÐE>zÝŽòËsä™,êè}&I¤#’ÄIôs<²áŒÇ%¤¨¼ô³ãç|ÕœÁPÚÚ|ž*q*ŽŽuQGbèb~Ì’QÚXïKݪcõ/Ù)Ý´‘>ÃèõãUœ@þÀб|ÚþûÜù­ŽŸû‘2óE¸¦xRŠêSoŽ&S5WR/Ëð(›·VŸi2/.òÈ#]¡‹äüı¹#F¯ \W"[ËæûŒçLHèR)(~'~ëæ”ð~×àG&íª uøÖUÃéRɉWUnh™ˆlüþåX[’ŠÎÂUÎ(³ÈV¡ÍÔRÂU½‘JÞ;Í+Ãe±ÔÑÓZJGy×½³ZÌ«õ¥œwD"jI§Y¸/…¡µ¨ÃrŒÿÊñ¾œŸ%Ž ¾"ÎÏÿ‘½ŽºÝD&©¹èD•…˜õéÝjn?WÝç¾£ãlßrsĦs GuhŠ9å†u/8Ì »Ø,1—‘?RýP;wšpÜŠÆÚÂtƒFS[•îúR»›°×†ÚNö¤Í~$ VÅæÎ1'¦Ê—±VУ w§˜êÓ+€)D'ØDÖ±{ƒQÏ1+ÌA´ë%µ§YxD÷mux‡9ÉTÀ‹64¼ìfûè»-Üä«Im´¯ìSjÌ)-O ÒFèa¾ UŽÅÇ‘&¦ Y)×w¯<éÖ†Ÿïˆ™}п¯¶ zZª¸§Â~@Òº@;ðˆ‹ÚÓý¯øCþøÖçWINaJÏÓ¨*ÖÉ Ìýsö7¸ü‡ÔüHC“áü#ñz°šŒÄàŸ™fÓR›Çu­hf§Ÿé• Á#)1rÈ"²,å Ëx(±-o¬¬‚2çáñ4žVÓ`$œ6 å¡EAðcŽ/ŸgG‘—]ê{³¤µ¡U­ Má9o‡žøq΄V®¤e´ ÙF³Œq¿¾é¬[Ýv£JاùÈó€þÀ+Ëò®*ie¥ ÕRî¼°”‘¹HŠñà¯Ã¹à¾Ð–?íįê½u®ÚxP¾8¼õ~’¥`ìZŽ/„>NAš©¨AEŸAÿCÊRÐ# ÒÂ&^Σ¸Rhxwé'¹á"#ëæEæ©ÍW(¡ìׯp&øçÁj½£zWH(0 ¥°üÉx\ûü¹bƒiúE½ê6 W?NRÐöÝå r ?y…³"wŒÕúP>èf‰!Í$Šn 8ZQ‹ó¾Ï$ùyÒgמô•q6Ñ'ðãÕ·žÛÓTY"CŸ3i3™†¼Q[ïIÝ­£µ“¬NÚ^o#“uÝCI+ŒeD~bçÖÛèlpŸ`ÞÄI$þGﲕ-Î+¢Wä¥ü $™¦4†RÏÉ}¨ÿ2QýDѹ5Üc“ȶ5ùQ×ÙeS2̤©T“#ÛtSŠzÅКRZý£;t²¦ÒžFWJU½¨ À¼2 éö²òQ‰Óvëg–™aÛÁ+MÁºˆLét5øQAÆÊ2iŸ®£#½+Þ-íM×¢Áó;ªI5-°†vÓ=›€rf»èëî?¹]öåùŒÛ}ïò#„sÕ ëvwS˜üæŠãïkGú¢º™ÜÚîT7„ûðùáçÛh.ÛÔиpH|ËÍ=÷|ÿ ³Å®0gÌ÷ýgW­gÛe"p-šfËAá{QK~r ºçm5jokÛ³63•5Á;#¸ŸsΉaßC7¨5@RèÊþªÚΠÞP¾:T”ºÐbÃr°åw‹9m‹’ÿ¹°Kh2ð*Šú—í™·?€rñlŒcK<ç?#ðü›>¿ÚN«À¤ÍèûVÌλEÓ^·¾vgä}ÐÈì|üØ…=p˜ËHV™ ¿O²#”•ü²é&*^s‚{!­Lâ,ÔÈNþªÞ-ç–MOù‘‡VòU~ËèíåDKüx•ÜWKèýÄÒÍP® ÏyÀ}ralcº ¾¨8ÀMŽýx>%zU nè9$ëd8§Ú_Õ;¬¯µ¼åÒ[ž"¤GÕë¨7™÷c¤7šV_Ô+bcëš›s3ÞG>9(7¥!™W®ho-­ïä™îA^j+©u¯ç?ñ®Ûø˜ZÒó*Û:°Ö_jg)Ro}¤À2àà]»ŽJK¨rm.C7ÚèMɪGÐÎ2]zk=½‰3„§£VKüÄÏüð³£É‡œÕîkÊÇRJ(¤§Y|‘×jB¯8Ràð(7N¯i/2ZxAè4aŠYУ]‡/P.[Ù– äGð#æœÿY½¹ ÜY3©è5ÐZT+h(ü½YçéÏÚE?É.)Œv—•ËšQv`E_£|tƆ†'ü÷ýK&;ÃÌ`ÛŽn ªÞ°Ï$ƒ÷FKÊD$òGC­åÏ+yã5„ò#{•–²Z‰G µ¯¥—p³a8ùåü]ãäv²΄ƒHŽA]ëœ-‚óÀ å.rs𲿅SUVùb»åܶîb7”ûÌ÷cçïîõ­7¯l ¬ÀäTƒüÌ{÷‘sݹb.Ú}撹貛æŸ?ƒŸœgKAá'Ñ0ûƆp*¸lYêe[ÛÇÐï¬Áüüª›óÖ k?Òz@-¡0ר:7§DÖÿ~M—ð\6hÅ›Â^3Á¹¢'¤Ùf.ØêôœúÑÌðˆÈÙ•¡c>f(_z$Ó¢tÁ¦€ÛùËýn ùÊ ¬¶ŸlHn?˜ªÐŒã|d÷r|™) ÈTßOC¢‰ùÕ](‚¨ç6£ô;øñ”ÆÒ;Û¾«>Tu1|m&~‡:Gh/œu¾…¬P‘~·M¿ùù•u6;Åàè‡RèüÐè°­‰,rš¡Ïh”'2ï È:Ëh;ù!Ì¢éHAÙÃibê€4áy²ËA¨y>p)=ó?†4ØÔ<çÜjÒYg,õ¥tɪ€}ó÷j |MO;YkWç¸#ÿówGQ äFÐ8Qª‚,±4HÆ¿ð|ðj%-@§ÑJóîoÇÏw¸5lOìÇtü(Ê7à–QÞÍÁ…Òδ¸œåB’F–qwŽ…ÑÜ”³Grêlç|UÏuo!#×?f‚y1æ±Ç”8r”÷Ésy-Ù¡Zoù §+sðŽ™ù)üø¾8e¢äîÔ/*öwãc¶îûÉ ~TæsAÈ™Êж¾êóîè'"O¸/ÿ—Eû&ñIÍãx'’ÜAÓë‹z¥­"óì¢[TšëB©Ÿòv9~Üä|ò õ ¨ÑçºKTÊK\]ÉsÁµêÍÍPèðR’·Ú޵޸2:Èá¬pRu9)¿²;¨°8:W#jgé+Á‹K¨²\"ó¥VÒ«|ùc#ß FæKv]`½ƒÎ2×å\`ø J' á zñFæÕërYæk&o±n×ðÞGÙ.{t¶NŸ*Çæ®àeC>Jel™Ïοjæì6áàç À; 棶.µ•4^c¨Å´²ÎÑ©¨O›€ó¥ ²Ha ‰å ùø><Îi‚óQ·ÏòÇT3ÖvÀlïÕuĆÕTÞuÍqŸ,)†šho¹÷Q+zSµœÜÓm`gBù]óqw°cVezv¸ôgŸØýÿ·Ýó¥Aþç»s›hÿo|/œ¸î@7³©j:5Qe‚/-øQ üˆæ:ÎΪ¶ÌçgžÚ4P¤ÈÈÙÓÌ;÷•sÈ9fNÙyæ¬Ùëz?xü|£‰ÍUh”ô.|t‡>úʹmmên«Ù;6 å ò.ßú:{œæ!½vÕÃD¹Ðòüž|2M^ð5™;ዊ“Ý”ô'"—ó U@þˆ$ËeLÁÏ·Ó®Ò{ wu“Üá&ÒX^"Çe¹Îó|ìùý”ŽÎš?¿¨—ÝFâ| ãÑÀßµÓ3Þ+G¥‘ädrCÇknõôTÿ&ê%Ôu¼œ» lâ%¼…I²@…kÖÚì+í +`¾6Fû^Ø-”Zƒñµ”t‘Áåï“xºKèPÙ íµ¬^AzëÏ Y¥+h¼ï³ów78ËÝO˜¡—ie’_1OFáuc5œ—-º.#DFézí%ÐÝrM§ëh‰¤Ñ8$ˆ4›ëñz*gÙ‚ü¨èœ4(5Fu-õã¶µ‘Ì^­%µ°>y:$ƒVÑ:S~Öqš_Nj ™IæyIºhÏan5úìúó.fžõw9ý0²O,kVÏz™ÐÓ¹R[ÿÒiko—÷PkƒrY$ž·Or€#54#÷ÅÚÞíÉ—™ù¿rýù;_áÏο: ~üÓëÏ#8÷œ”î 7Iož8ÅŽ¤u‹ºMðœÏ}øƒ÷¿ÚƒÄð‰½)Ôa”9áÞu¶;‡ÌV»Üì5wÝî?_lÂpCZlóÁ©6¡æö†êƒ§+O-l1{Ñ&¤,&N°*vŽ8d}p%[Q©]¥š\|ÅŽ?¶cfD¥´ÈƵ‚uþî[w;zUskíèß!ªCÂ÷è4'1¿‡*^±á¡öÓí¡ï¶ð¯*½µ›>¿*Ë«(-å¤g ÓX(q>~…ö¥äkTª7Šå»×Ÿ¯vëÐCèVW:JÃèíKq±þ~†cî eöàýŸÓ dX|–†Pm*k;:w¿Që®ï€…âñ8*Þô£˜tßVD¸K½‘dÒRW¬ÕP|äÁ ´q ÖÔx[Ôu¬«¤SÁtGžŠÀ (+rÀŠ€û'¦E.Œîî7¹Ík¨S-ÎÂ0ª‹ÐƒTtƾ°¹hxù#±éa§ãg§òoœ#5ŸZÐPÊ +ËU@£”úyˆÏ 𞫱·FÁÁ¢q&ÒߎŸovÛØ?è7ŒÔz8ã’ü n;ýÊk¹’$‘1üÈ#¸ÒÈÒ€û_e@íî`Ãh.Fí¸¿]ÿñÀæÄüJÏó@± ™ð~N"å”úƒ<–ŠºI“Ê+øýP2ª›…¯ÃÛO土ÂQBwð‡» ¨=Zô˜2¡Wu ­1>¦ËPÎ"mô}©7ô’Ζ[Á;·JpcbJgÇ#{ì#ÿ» µ 8þq2X÷OüÙlFOKÓK¨ÕJä„ÛÐĪôªzƒzB."oﱡA¥žÁ¸ÉA_Azo'Z‹Ÿ¯Ès(È3[j8€òðÞ€ãç‡ÀA¨]€"š²ß©8Çm‹JݨYÀýÔ¯Ûž˜áÅ(å>*ëG× ¡ÛÈÿ¾#‘‘rÚFßÌO|§œèнA GDôÔÒy¬šrP‡^ðç ©/EyrÝ1°c*ÞêK lqTÖ¬âd6­0úÌ#1C–"±”ò¿_!½£PHr›M%s‡gq{Pn€?…ÀËÌt\-dþ˜îKeþ´ýAñ~PSÿû·/À»3&Ü¿¤(?AÒ9à—crB^Csi¦bO£±&Äß®f]~ôÂHypÚû9øØn5?¯ár’¾²¦.‘„r•óJ^ Š ½ßË]yþ]þfñWõb»ÏmVêDiàÿñNÞ w±ãÈ]èïR!=%µÔùãGGzB‘³ó5賿ÏÏO (¯;닊 ÜHÈ”»1Z)‘ŠòS ‡üÑ_Ær&©£Ôz‡ô‘N’³\GêÊ%. ¾ÍÀ;çÁÐÓÔôî+~$³©ÐËãðAÃutŸWÈé*G¸ˆÜÒ…šOß y'Q©ÄÔýPúnÈy«@×ÍüŠ3óÖÏŽŸïôÕtDg*sjþ#]ZžÉõi i/=5‡î’”ºS'ik™)­‘.cßtà¥FZ#}¤DžYXÚÈùáÈ–ÓORN¢ ”ÑêAóIm¤äuÒ™É{êÝÔ.:‰î#EçŽhg$â‚¶®MÈ_³È™±~æÐ|Éþ‹šIl¯ZQQãêj¨çµ&ÕI§€sµžLCñ#EJÏN‡íKx“ªŸ]>Ĭµ•árâoÚ‹’É{¢I¤·ÿe®ÿXàÝñâz¿x•4«œÖÍ`G\d¼×-¯¥Û63œ\ÊÿÊõƒO}Å?;÷1Øúc¾þß[Bg'øÑÕÍn2˜Ó׬ñq“ºMÝåȯ|‡¨Ú+ß~óù# 8ÞFfòÇ,çž™oÇ›æ+?xýàs™òÒXTœL驲ÝkS:éÝë6 ù¬µûmt*äo™øûÖß¹‚üq–Ö@ß RZHe?nÛ_ì(ÎjŠOPƒÚ(öŠ Î5“ÑÌs܇LB­)ôN¿…7."ÇDÆšÌD;m8pô»ã»-|à+I¯íèä%*ÂS(òÉ–¢ PâŒPéc”ˆÏÁ§7Æ3?Óc7×wÏßí€~6 ø¬¼+zÙ ©½,¥åAÐ¥ôümþˆ´pž"Á7GHn‹9ß:ë,ŠsÀ‰A±y4^—íù`ïÚßÑ×sÔœ¯ g„ƒõÁ%AfÐ\(~I¼ç2›*È3ãê8M]Z‚÷Ÿƒ×-ÇÈÀßYèYnD]LcÄÿ.Ky¸%’‘ÿýK2Ñ>ûÒV ¶A^ÿ‘üOÐj#5ér*•)Ëpyþ |L„„°*‘£ò<ô¼ýA#Ñf&Þß~ÿÇ!·ƒmë„ `!º‚H…y;ד,²Vêt‰7^Xòɤ›8ðÌ à ×r+Î@}íܯêEuoc4ÏÆƒ ›x ݧelå¯à%ü¨ª«5–ìç¨â“áü8ÄØÿÞŒYÐóîò/*ÎuãS#Ú„´› ïY‘ÓGîîÿ¹g•nÚL_ëu¼ñ²›«JyÈYѾáèÿX0n VЭ¯®?Ï`£s\> ÷S‹ÛWx¤ “ú2ŽSË8óüzKâxËe7O7‚ó–@ñÇp)ÅG>»ÿîn_mg4f]~ÀèHÉå*rk]©ƒ¼‘F—"\ѾZ cYõ×ðìëü‰Û€îaÀIõ69[\óà2ÖW’ÒÁ×ùQwv©5唤^9í¯µ4öÄ9Ý®54¡VVÕ‰RX[꯲ÙpEäÈ-;l 8ÎѳÐÏ™lÚF˜ÃèWza/!Í<×²Ò 4Ûª§´Œúyç½,Þ-P¸€¼Òy’_£H<„œíbºô Gâìv÷7ÖÝr{ë«öÙõçÇ}-œ„ÿQ½Nlw˜›Æ”0œâ¨²ÞWÚì6w§ºä¾3þ‘íŽïœy`“c´Ãã‘ßÌt¯8]œõf»`V›‡î 'éµs€¹Meh„MG=àtóÛƒ6¹Ã=„<âZ¶‹m$*L~ rö9RãNº‚Ú ÄhÌeÁŒ°ÐŽÊXÓàÓ£²@GŸÓ~ÚA ù µ÷¿®ÜVwN}£VDg­£üHKÉЂö¼­GÕ1Ž=ÐË·¶=ò?šrùcª¿$Ççv$ý,w;bhi(M´¨ú7àìÉ2ô|¬ŽäӨ׋øò‚ËQøýg÷¿:éìp#pÌÖ”üÈF™ÙHYݨEt¶@½×H2»5Ž÷Xv@ŸëëŸrInÁ»Õ‘j"‡µ%l†@~”r®‡’"+, aüÐf¤D`cZí§í5¾ö¶iyÍó H®#5™œÔ”2Ùû6\ìQ›–ËQûÏî_2Ù,·¿ÑtäˬtÉÞ?¢{դ쓉zD§è4Ï ‘Å»€öÆ‘Þ É­!ÁÔÜZ³9>/øžÁç· ýooW‘8Ìgü(ù?¿Êàœt²ºCÝ<¦¼¹âdA•-¾¼nD·‰;ÝU÷¾oãU{â{†ü‘ꚢQy3ÅýèL@nœkG™uæœ{û9·Õ<Àgáí( ³ mä#6;½6Ön³Ñ?‚wåäpçšÇ„÷¸½¬çŸ­¹4ݵ…ì"8›-ð硨*’Î/ö© Îý¯›Ýæ¨-ŠüÑ-àŽ|è Uƒ žAºÂÞ¡ü´×~²?S/»ó»-|áË %ža}ø¹Ò<‹" =oý?³WÎ÷³“’€þ÷  =ýä~ï˜ÏB·>*u¦>W7Ý´½¡üÕ(td8üæCý¾½ þU¤D¶Šsöµb8»0H*)ªŒç^Ú2Tƒ.Sè×ëÿ;Šö?'ö08:š_iq±Mg¾¾»­ÿVÅé‹ü±–ÞûßåôXI•À‘¤ ¯p 䲿:”» çævØçC°63¢ý×lú=~¬ñå5Cìx ]«2ÞƒçmEã¨æ `P n‡ÖÛê\tC€‘÷à6’€õéOοBóèd™ ‘<è_àå ýªfÕÔrV^RRð|)¼ÃIŠaÓÛÈühã¼6ð9îR8ŸÇ¶•DþÈ©ƒAŒðú@ži[í€6NÑ›Ò_2êP-"4†,¥0Ènè¼Ë©°ýwûæ™™¶zÀõ·ié±%éÝFÒ(¤½Щ:Ò{áåð2zÙ5œÄðü$Š$ÓX<ê¸Þÿü|ŽÍ‘ÿ+×~òÿìŠËàGP¿k!8[rg“Üìæ5™ÌuÇÿ¾®Û}¹Ü0n3w†kܾKWä\3þ¿±3 FH¨„âZw¡sɬ·óÌfsÛ}ëø¡vN0o)'/ÆPja'Éݧ TT>81Þ#xwômïœsâÙ×´ŽS-h¦T¡1üÄ!à/h˜‡ç;Ùðö€Y÷ýr><Üo«üþ¨ÅðÝ÷h+¾ðSÔo={J‰é }fãR{þ»-tÊPåÅ6ÈSŒƒqé•­ˆ”Û©ýø‘OQya>T<¬IþŠëÝÁtŸš#]¦Q d'Ìÿº”®|§â·Pлtšn ÕÜÁkšPj[ÿ›Ÿ_ÝóÝwÂ’òpÐ#Tÿ±½j« ¯7¨?Gç$Ô~Ïp ÁYÐm6j·¦¹´Û&36ˆV6rê™>Èjþ÷-.޽°‰ Áï§Ä}‹q«eÊ™§¼n477 e;¬Í[ö‚­Dƒ‚àÇ*_JÓ>W‘«ŠÃó>Á;×EK²ÿ½Ð0à §ä£¼…÷AŸ ð ø†±`ÜXŒJqËýúš—-nWŒU!ä²åH Eø5Ú4 Úº—[+e ®•¬ðõŤ¶ŒáæÓü¶Ù“àrJšð·üÑ}h"á¥f!Å,ÃXÊ å'Y›%”î’ßô¾FÜZBÊ"®?åü{*%fþ'çKï±ËM¢î àÇ4.Ï(žŒ‘‰R‹³Kí«ñ¼CÐÓ™r™H6¹€W$AË.ƒ!Cy¡ÿ‘$Óõ‹zÉÁ´˜©wå]tƒgÊdé)óÀ»:A3éU9§ûå ÷“èºô¿¯ñ!^‰ÑI,y¥­Xk7öítøÿ£úMü——B¹ä5rB|­'½Á‹ ½øºJûkWY,5tˆÎåsÜÕnâÝ“À…ܵ#ëvn»xz…–S I5ÛosL=©Õ‘÷Iý¤ít‹¾ÕgH3/nFÊyD?½S‘?®Ð“Æ& äGç<´)6Vú$·l[ª+±¼tú§ÎЄzMÎëzíª?ƒ!÷e¼”Ñšû;‹ÌpƒYèÂÿGÜ[€Yqlm£»»jIãÜÝÝÝ]‚×@ Bpww÷à îîîîœÿÝûÞ “ágÈ=ß==3ÌÌžÕ¥¯ì®ZeKqMj„?f˜%¶!\~Ghœ³öºð,üǯòFrêa°ãï¡—ÉËŽJ ä-‘dº‹Kjfþ ”PŒž¤64«=ÿÓ×_¥ göUû×ùK8÷œäîon1SÔœrüï‹ìöÕv³¹­Ü•ð×>sÿÇ5ßuãbX–ü{Ї˜µnIw9xÿ¼ÝlN››î}'t»Åÿçšlüûð¦Ø"Påè'{Ø>ôåwÏÙT²Á+L´PEì¼q2Û7t¸Z cñ5BE£rvõ ÃPç™i ´‰Áó?Îç™óæ,øã ÎÌޅ3úTZÿÎÚmÃSJŠççŽó5E¤™6,yÜ×㯲“‚/fa¬—å§`ÀÆF˜I#(øãS»øwº)ûÝËu¨ñ‡v0å£:ð£ù9 OÂÏ7ƒA’óeGÍ(“­ãìýH¬g¾›N>ŠÅ àá”îÛo©!œ×Hv9ãê,¼6°žktÕr¸†5ô§"TsZ™ætŒ¢¡t%Àæã¨$Ê–³> %¦¿ñ Ír.n…8s¡¢Ð)û:oXü±Á—þ£?øcwä4@ ip“C  ÆpS(å’t w´^bhðE(ß<”r:µ6‘ܧÁâv›ÚvTš’À+,BK=£>´lt"²Tü™ÇsÊMn(…à?¾á´xÍÜ{þ¥žvF°§uïØ˜pXiy_†Ê^ÿqŠSIJ8Ž)ò—ìÚzEUî]™È…ÁYù øh§ tdÜŸmtc€w J^¸€ü˜²ÊF!=¸4ï ë-Së’@±ÆˆZ³òr~„îËÛüg™™6Ä+oãqv>Šþ¨žÙMwy‰ü)?Ë3®%÷t®æwìÓQN~“˜ºçó¯Ü íy”×pJ©ÏSlë÷±Žø:ãè-UUÇø·ÐqÄÕáÐô#e¦´ÑšzB²é í©sd.x¥‹ÎA«tA[G”ãñMÛÿ}¼ýÎv—üçùBá'”Ìp ?q©¤·´¡ž”•2Nk”n×ðžE)Ok ý]îH4Üy oåoy?E³™lå÷üÑÆ9a3>/ýNùŠ=FM¤²WXgéXÍž<¤Õ´­–ÕÅúýR_wjÙ¡±¤ÜèCðǃÙÿ±ÔYaÛŸ ðúR2zjiNï”6~òJÊé:pÛOÞ}/¹WЫ¡ßHtoø#˜%ø# í¢ØTý“ä¿’ÿê…¯”“èýHØã«þ¯ß¿çŒ#î`7 ”ß-§’ã_‡—íè¶uç¸ÑÜןé?Îú6šË@õÚ@Ã/iºyà&pÀ´ Ívs þãóò·ÿa”Ð<û¥…:uµÏìs_ ÷š­LáMÏÁé3¡;·µsÊybþ‚þ{ MÙ(ßœÛQJc@Ñí¦î϶Éì³P­¿zînœ_:z-#Ÿ£Êøî$Ý£”Ê7?F\|0éïöÊ'K¸ÛWbB¿¾±·å”… Ñc[ü1óñF[|®Õ2ª4‘)ò‰ˆgÜŸÁhà¬ÎBÅ?²=1ÂýOqWrÎU=„N…vRN~€ßW¦ºÿ—ókÿò­v2‚?FOcÐI¨®Ft—:£–hô^töŸ†»¸|ó|¾®³BÌUÐiovPOD-ý;Ö‹?R W’à×M=C²–[qž@Ci Ø9#±·m¹÷Ÿ÷¥0Ýí°QW ¹?›×dúаð²>b´ÁÌ/ ï±…7sR`Ñ2ðÆ2š†ö\IÃŒûókWºµlgúŠ2¡¥6s]´Î´ltŠKKQ™"Ýu‹”c\CJËïü'älˆÞ ¿ïÏ…¨¯,Þç©àß¹¹“ï²ÿŒ”u]âËr(ýûPç5õšþÅO9«¼ãœñÎñYÞËÃ99NÝ%D\äÆÄè=€QœOrm8Ó°ð £¥—‘:T#{»ô¹•ò毠pg?¶ù¡ÿËŸXß’?=ôÉ÷ü¯¦< µl W¸ˆ8Þ-¦·ä¼NA¼Æ’JÂCù×_m‚C:ÍI¤6/·?½uÖWÇñŸëé?ñé¸Ü‹è—ÔrYú©«­e‘´ÒJºK¾Ð Pù d½|­ô _ňôïeï .Ž Ï2ü}¼)Îl÷Fè ¨ˆì’ ê¥4Z°>Ñ„ºa&ô¢õÔûB—ÉýÀª`«þ<œÀHíø%³™ƒøîÎ ³<-æk?~ íWR²{Åà‚jha½&ÛÕ§#5ºvÔ³2U2©Ï‹#G5‰Œ¡DEù1 #s>úåƒüí¡¤bŒÄ¤;6–fð®i^é®L UÐ^+x§¼Óšßë¢å$š7I"#Z5MŠqþÌn¥ðh©¢ü¥]ø‘y÷¿yÝ÷eòŽÕY_c'ο~~þÜ ëŽwóÀœøe¾Œn ·ž;Åä¾ùLþxþxþ¨]3ôº{ÕÙá<2gì$³ÃluŸ~¦OÚen5§Ø2t‹~Eßµ1œfî%Ü¡˜­eÙŒ”"”û»8µ7§'è{êNWËm)¥°þ' ÁsãßL›Æž1¡yæóÌ]oNÙ:dx Æ÷èç‹Ô˜,ÔÒC¨~fæRtÝFú͵O?Y¾âô—ío-=¢Ê˜ÇÉ€ªmYàü`Ê}¸›Šó-*âßõ†‘ÇäûDÄ•nsøƒ6¨Ù& 0Q/`õw”ªÖ2Ã} ì3x®Ó˜g¡ð«SYûsè#±’;:©é Ê’â"Ú+ø¾:T ܉oùAç¿J?-´ °Âi 8?sˆ™e*8Mu´·ÃCàQý¹ ËQÊ‹Äýèªienð8ðGîo2…~†ÿ8iدB<¿v¶/‹™dG3+ãò_4‘ ¶9ç5ÀÍ)Àk€y)8ôÿ˜Àšà‘ž&¢{#X¼ÓnCÛ/pþù^Ï¥]]À…á/Ê?¶ÊzP*È .+¥d&êœsò:ðÈ~îÅ©³¬ÆÆ=oã Déyxa?ÏG»oa+žœæíbôµT× úšorðÇx|üÜÇ jJþXöAÄIn&ª‹ùó'näÆàË02 ^£§“v:_Ãx»õ™ö+UÁgÐ&þõay5œç^´óÓþƒxl"8½m˜  6ÓSž/äKYþðy}5“Þ–ýzNâI‰«Sxwàz¼ w”c€?Žyþ±ÊWÒP“OÐwœžïÙy”H.È%¨ò!ò6Õ½’K×ià¥RYè9¾Á=Ꮎvð Ù8 ýÍ œ îÊØÓ“IÒB6BËý¤/5‰n[²Zc‚?^¨çÅÑpíQï¿„ÁB¿Á¶æƒ”Ïæ± ßóG;g³!ÌÇâ´žº±lAIoм–JcêT8†åð?ê™/UÐŽ_È#ý0öïRQºf}\=ÈS¸ÕÎ,ÓË~‡9Ùsò¶}%á½KZHÆÀ[%…‹i¤y½íÞFÍèõÓŠhÍ™hÁ$RLSp_ÌÈ=˜KU1Â*Ù1ùÿßõØW4ÈŽÁ‹¾ÿ:bJç²ßå&3YÌU§*¢Lƒë.þ˜åFvŸ&¼ò]4wájRôSsÖ½ëìq®™=v¼™döºaÝÐíÖøŸk³1\™–ÛZÐmM¨©=l9MÝ“¶ ¶ìA›˜’…¨rÿy p.8±ímòç­Çq‹*qcrÀó€0+ ð¿·MeP­ÈŽh˜¶]¢~4cÈð(ßH|ÌÔZÚÇ©è” G±€{çCÅ. ±=†*Ù dMKWmII¡~Àwäç{ÀìiäŠÕTýDÄån:ÇÑ…¶ñÚþÀù:üÑ•³ò;KAùŸNއ¯H5lõ®¿* ‡þcP>æÊ;{=\®Q+pf<ú:8Ðiúh6mFÇàëdû )'[]g´iMÛÉãAð;Q³¼`lè×PÖ»MisŠÙn^Ük2ø#¶Wl½ '/ü}ýá+l¦Yëwá:¬ì¡ýO}rðd`ç—œ›—£ŽÛµkðÿ ønn"îúµ5‘Üàù¯¶º?ÂT§Tø‹Õ\Œ/C ¬ ¬¸ÚH¾’\M²Éî Æ*õÜ þ£W¤žÿÈÕ½bc`<¤åñð)Çy FÇ:Ž&Qäo’zOêêe½ =Ÿ^RIw.Âùù]à¤Â\XÕÿAÄÉnjM@¨Ëz®È§à?È`©Ëùd¬T×{®¯tº<åºR]Îr)0Ü ~‰Ú/ÀÈ,D¯Í‡;ä+Ûxh—p÷e;¶óD)ßËDÎ/Ö›¨¹õ¦ÜgF’Vâ€?sË@þ«õh‘øÒ„ïÉ_rÀ×Ö@û1^/P=ŽÌ7í"J Õ_EóKé¦%t4øV(þþp9UµºžâóÜ‘çrdù½—‰/Ùïãíu¶ºïà$o`¤æ”†Êð*îªG5¥®”{2]ó€?Ni"ï…lôÔ‰rGÞa,´…{ìG\SßóGWç®Qð@~šAù6æn‰ìUÒþZAk4£ ú_À8:Wjè8Y¤žL¬¾A©é¦} ?ÿ7øó·µ5iu¦œ`O“x¯´8|ßRIÿÑB¿ñyÏ´š·JKÖïŠF“Òš„GmŽPú’cq»ñ#óîórœbAüÇ_'Ê¿~~~ÔÉàŽq3›læp`ÿÇJ_R7£ÛÀ]ÿ!Ÿyþà ðÇ3[ü‘=Í÷žsý¶ÓŽ3ÛÌJ÷ÅgúÕæ!tó:èÝk@÷Nvøã[÷¢-LIl>»Û¦ XFB¹ðºó…½E¡yk@¡^¢jü5›]Œþ_ ·”¥gãÙ{¡Z¿ûÚgØRÀ½>ÐG 1j¡=¾†;4§¤üzi7üDVšdo}²„W|9à?æ[½€*Ù å™Ø|Ðüý)7 mø|ºx> §TÅäÿDÄõnG´X[ê Ó—žÛÁá5)n7öç J·ñ›«øÉ=(ñª”Ê6rŽ~$VgŸ#pþ|RJ8¿ö:ø¼êÙŽïBEýÊyذóq ÛJÌÎIð ãmýù£…ÓÙ´‡¿D¤¢ýêe©(ý<”ˆÂó£Ýè­m`ÿbÐØ ÀþÑdoà}? h$ï®Fñ&ÉþYjÉ9®þÆáæðq0õ=Ó÷ƒx¹l*öï,:CMá,þ ÿS™ÁR[ÆÂÏ<סšFË+]"¹Ž„Õù`Ê_¸!_îç8Ryÿ꘯¹ÓÎÜ¥ïÑÚ¯ÁëÉäŠtÕðšCú€{‹ë‰þ˜¡ÃeüG]=ËWÀ”Ë8ºtá·è©yvìûx8º8fÔJ" ùê³H#½¦9t¹¼–©šÐ›«ûôµ¾’5rì4^^J,øñpáâËÛ‚AÖ_5t.™ÈP_¥1Fjó#èÆ*’Ç+­}´Ø#Xm¸N„ùVUgKmÝï1IÉl°õ3ÊN×íiøùRïGá"g,´Kuÿi¸Ðží—šÅ;¦ì,s$¿žAí:xç<Çkì ÕTòPWI/éÔÿNðC»¾º)'…ÿM¶‹ÿôõÐW(È“„=¾oÿõûWiœN2·7ø#Ÿ9é|(K})ÁÕÀÑ\Ç9ñYÑ®úŽ™;Ð͵)*x¾ÙærÆ9[ÌBÛÚ¬0³]þGÆìÿûµÊÄâÒ4ÚÞM-ì!›ÚÉâ±e)®Íl·Øl”Ý„®æÓá³²Úût’S%jƒS‡ÒS[È®‚>ÜÔI¦fÃÛס:ÿ#ž™`N£\o©-§äã+øû7Ðà70ÊRñÊLûá?RÐT{ç“%Üê«ÿ1Þ>²w «(7•êׯö£,|˜—¨_>g¸å Sê§¹]üï/Q to‚ªB7„+êÏí83_ ]¥CtÒ;¡=ªÛÚαĺç;àD£(<uIû¿µl`ìê†H¯mO®Çáyé.-¡e`ÓÞþ<¶Qˆ=SÓifáo#ó`*µº€*€i³ƒ?bpošgÒ™ë¼^¢(î7q~£\tþ£:Í ?Æúʘav4)P²‰?g-…“„zMârøÈÆ»Ð~Ç'«9-4û(E+Àn;álš˜„nð¬?‹Ýnv•ÿ/¦7AýÚ­ËÂ;Ô–¢²Úÿüc3Ô~^Y›‚sKÛBEOábpH‚Å÷ªÍG”•ƒîóFèƒõWÂË&Þ!q€Î5ô–:ržsˆ'ƒÀ9ùFàéôoœ‹²¹«?ˆ8ÔM€m¥gð£àÒ^RZ(ùò g¾àXžñ"zKä0×”Òr«¢„óÙE‰§ñ6¸¼ÇæÃJòÚ\¨ÁỦ&Ü”—Ò9žÿÑJFsN çÍ×¼úB^èiDj#iu"O…[hɇÀ™{€å5ù²m÷>ÖŸ¾¯áèÇ2~¥xÿj Eóðá´€t”Z î-©nЩÚZ–ÉÏú«ÞCÙZÀ-D‘^ð°±ùl?³Æ9ìÞw¢©ðÙ©\Ma¸¬»àUòŸÛЛ­k”=G×ÈE0qW §9J`Ep_^C¹ 1Ÿ½¯oeçšylc£¦P/öŸÁ\YŠy¹t4üGD}$=ušŽÑdú=þ?Cü纲T£Â¼ÀlñŸæCÜ„j¿…³œ>f–­HóàQóÒ9ûJrx»´˜t•µpGµšvöÎ{‘½šà¤r_WKj +ET0ò/ڭĨ[N.c'dÞýo^ç|¹¿Ÿýí÷•uRÿkÿqÚ)ìsó˜Üæ¨ó¢¬ñeqºÝ¹nb—œ“Ÿí¦ï™¹m«BÍG§ÔÔ,t÷:Cœ£f¹bv˜kn7ñg•s„‰Æ-iŽ-@§è+êbOØbN^÷‚- 'ÞαI¨bˆ§¤þóïìtRÛKÐGÇ© øc'UäšÀèràæà|PÒ?Ñß¾ Uþ«øf¦Ùk‹ƒ1ü;fÐóEZº½ ¸œ ¾É£L4<çõ}Iahˆ Sž9²‘ø:Ž9?4ô1 Ú%´êŒÖÌ×äþDÄAnWðGWÔè¼Æ Û•2¥‹ð` L}HÓðÛ=@ïT|“S ªd›~´§c9{œè–‡ÀùÄóx´×~w üq‡bR'®¾-{ü¶~fˆÿ„q[Û„ôžjU§iBçà‚ü-W‹ a¬<tTÿXÉ]ù+÷‚7LCWìM[…†øü¼°a' Ý{suŽÎP³šüí#Áj-95Ÿ  |‚ñ^Næœ 7 ܱ_;˜xÿxÿj¥ÛÁv$æ­ø ÿúÝ~xeEpD]É/;¤-*»âbÐèK¹Ð9 Øn4¸aüB/; X¼¿œ·@¬Úürš/ÓÒN*®äÐâ/¤©žÒ |ŒÓË+ÎÙ9?bmãæT¨¹¸;?ˆ8Áµ³\]Š×ŸPXé&œU†ñbyÏ5®7|ÔL*Ë .ÂéЗÁGy úì®éÌdâÂh£@ýŸyÝçiÒMšÉ2Ôð©.<”¿t®üÉ$™î€Óê_·|¼‹ÃHmà}û÷±ö€?~…ëmƨ1Øú6\o|9!­4ºLÖœÀýú‡,—ﵕ^Em‚ÛHzÀÃFƒŸù›?ö9k\ô¯‰È ùÑ+uàzÚƒoÓêy¼ïM½Öó²BNk[&¬Ï(·wlÍK(½-jcÙ~Ƽ±É UæÓ~eËSn‰åUÔQàG/J/üo„Æ@©XJ½­ñd«f“^eó?áHÉ­ƒìÜæ 3l5š ÿQœNÛ‹’Ì»®åd´Ì”âpIµt ü‡xżï4«¼Ôu`·Ô’OÃs?ºk7?¾Äèió_ÉuËWÌù{uä _]'ã¿ädÎ~'«ÛÏ­gJ™ëNyǦt>7­ÛÞç¦vŸû6~V´«¾0ö6üGKhÕôÔÑŒpO;cœ‹f¾jš»îóÏôIMfnJ‹ wÏRQjcÏØ"NTw-EQl\»Æ¦¥2&xНyÎY'¹uø³uª, ÿa¨€ÝE ¿ŠP °Ê›ÖF¶¡É_’ü±ÅÖƒï蜲qÂñuèúJ 3;+í±B hº½ŠõWm( °Ol4n-ŸrõKÞ¿ÊÎþâéùÊ=è\˜b˜BŸˆ8ÓEOÈ~Ô8†£¶9%£ÆPâxÇGýþã$p(œù,ü¦‚­ùÑ÷¯öúN;(3¥‡¶j·ÛÚÔŠ.SCèß/¨ø#:tþ: ÞØ„c{³ý!Äü%5òæ{°w$‰x§hU2äë¾Á<œeʘ7¼(U¡ös¨#<Ïy´KiZLôå0?Á¸|W©ù ¤fð,ñý—ÐÊ™ùl SÔbþ“㟌A_­AÒzjlÒ»Á÷q‡Ûahû¤`œ?á€ÃVQU¾Ê­¤ PªüG"Ù u_I~âÆç”xÝ@¾Îc9;ú¯K°xÖ}kS@O¤áé`¤'< í¾ŒSH,9΋'Ž¶Ó úþ¦°Î98XÆ^ÉpΤóÜDœá*Ø~ Z+;ø­&ߦH2P&ËÏàŸAÚ_x€ªå*×—¯å"´Hž ß³ÒŸ‹ÊÁ ú ^E›„ ò)ôƒÿ´ÆåtŠÇKOi-‹¸–¸Þr-¨—ä‘.†iõ”MJRYª†~l d. +åü¢I¼‰º œù@ÉYøiBz‡"NÄý|YÀVµñ‚œµÇ¼²É¡ÍFÒH¾f3Ri‰ée€úRÃè ø·eðu¨>“I’n$³¬Ô´2#óÆÄðG{jú~îpúž †þÌL÷íIIïÅòŠËY%Õ5œ×Jy§½˜^.¯»æÇÛ á5†”Rå^PD;ÈBÏ%á:ÿ•óÏúŠáû¾FN‚ÉYN·³[Ød2‡gЬôåw¹¿¹SÀ/|G>+Ú]ßSsÖ<ÿÈF­ÌX÷‘3Õ9oæÚ•f—¹é÷S;ß>¼Öü1ÓÖ¢]Ô”ZÙƒ6µÓ=m QB ýz› ™àg8„|Mvž:ìSòçÇù–z@}WáèÍaçB—m€?Í ÿÐÅ&³™Ðdˆn¦™£6y<™6’ÿø @¼s±!ŃrÍ eJG“Cñü㌯$½±cìkëî­ëd¤«¶äÁ|ܺHÅh,-jéÿDÄ¥îàù¨éIèíc¶ ¼Ci â\eø?» ´¿H9ø>Æ*e+:ËTóÄwÆ ûðgN|iÏöŸŸ¡Á>µã žÿ$¿·[8¿vˆÿƒ-âþóêNmÓõ‰ÀÃÁ„[á?Ši3Ò3²Ü„†˜úð;¹ÇïGÀÏôÂï.¡]JQ§øc±/ék‡ Æ‚q¢O§º4 ê|8trnŽ Xx·˜jo -¿ù{l.õ3qþ‘¿dµÛÃv€_HÎÙ /p6é¦ Ÿ„ÿÈ!K¤=TdÙÈ夆Ìç¶œ¯9È¿OpblG«ñçŠM8p:ß„«V_Íq$¶ìä•UHMð‡O®pj‡hYÁEG€Î#Ày)œûg0þH€±‰^¡?þäÚ~þ{ øßt¢Fð¶iro–\æ&ò½œƒ‹KŒº?㈷<<ÿUv›­tJ¢ÿ†W\àõ2JêÊh.+¯u‘–ÐÓøº~æ ê Œž¾@æ]¨óv'%ù¢­ñ>Öôm'Ì‚&Ð'uÁ«ã «<¯‰V–Î2L“ƒŠê~®Me.üÃd½ÆWài‚‹Fò;öê ë¹Î9+Ü·ýçh%—Š¥åÙHW}¨ÉÀCϤ^ÆSõÞÂÍœÔ_ñÓH𑹠ÿVÚMila›ê=|ïl7a1³’Á}væ/ÀJ$®W]'iU…žè­_ƒ;’ÀÇÜ–)ÒïÊî¬wR¹ÝÜJP~ÿ¹¨øJºÉÝÚî,7©ûÖš³\ÿ¾ŽûN˜0T‚¾&óþ{³È=æÌsΙßí³Ö\vŸ9‘>«œGM®I³€­ì›ß)íž°¹)†MhwÛøT0”ü1ѹ줳q¹~ê@Õ®¤ZüE£Šp’Mi3P,tx_°ÒPåOŒaVšóà1ÿ»™; ñÿŸsE^Áÿü#F\6:lÃqgØ‹Ÿ,á9_C”e¤}cŸSm^ˆñ˜“žÁÇM¥öÀøÃ´cí8ðvÐ>E7%?qŽÛšü{ú©GÐu;îª>¥âI<šÜŽùW2_ÀO®`üEålKçàGbyÎn'>Eå©”†’<ðQ}x-¦£{èç~ÐÁ öÎ…Nl~šk …øü£–ÓØ4{ûBN”îO¸µ<`¦gh³ž´Ø´0®,àÞ\.Ø¥5æûU{ Œõ[ü1-p~íHâÀ_Ä3N¡j϶œ;ág%Øãœ¼çA‘F6ÏG̉(ájܽµ‰ç> oƒÛÍ…ÓMËËð7…ø)u…C*ÉǸüÇJ饫%—œ›”–åü'‡çYÅÍ€¦­€÷ýmŸ`5~è<¶YègJÂÃx?_æÅàÿûWÑeÏ ¬¿º¢O?<Ák2pz>•½“ûsRhwκ`ÏÏNÔuáÖB›ŸL„âíÿÒ[TüñRûÈ}þJ¾’\Œ“¢Ï¯£ŒÓáj3ÒÓëƒxål:ö?¯8F_ÇÓI^$¤…æ\Æ«9'ûíG¨]ã¹ 7àÃhÑ ìH%>a¿}k¼åºFeù*Õ„²>mR9]Q«K/®¥õ¸dÖå@úþ²Zêi?} VmÏ[À¨íá?Ròõ ûÏ9ëÜè\ºie—ª@•ÒhÃúV3ë í ¼ž¬5¦÷ÑŽ"ÚOòNîûÏmæmpS[(•ÍdÿG3g—aÊ€Q<”óK[‘êH$¯N ËpJµàŽ:G£êÏzYÆIí¥ e›Æ–näƒNÊCwm(œoƒ¬ßl&Û¯à‘[Sq:gOI /¶WTºÉb© –«¯Ý¼CÞEÍêõÕÆòTGJ<ðG%8kwÁ‡¸ Ýó‘y÷¿yñev^¿ÿÁ¿~þ‘È9îDsºUMqs.°ÿc£/üGCwÖ}îû¼Ú9Î[sÏf‚×ôQ$ªoV¹OùÎ~³Õ1ÛÌi÷¯Ïõ…cbÞ †¿ u¿÷kK“h¬ÍnÞ†íG§ŽiÈ¢?íw8¿ŠÐÙ¹çö¦uæKãˆ?Kx)°Éh|ŒB[²·môÍ?£Mò•3]í("î7„_Óbðä`*?R@Êw°‘WpdŽÁþüލXæ;jd¹¯ƒÅ[ïv´=¨ªßUòJÎÅÄ?Òr*~¨/ùetÑ¥øzŽ+Hz™uŸ’ òR(ò ÐåÙÑÁÏ?W÷©-‚~ø|p¬ð'Xw'ÿíuòJ.B^ÖÀëÌòµN²›ÛµÄ£¤îD\âF;î£0œ‘gÃa=¤˜2PúË÷œe¤Q¼ëÑû]®rUi"{8üGŸ@þáqàDöÃçç%ll`ØI:A߀¶Óž ñ1ˆSÊ5«ÙôŒ<Ð}rH,XUè¼|VòkÛñ}¬Í¾žN8£ºþHÁ ]å“=ÒT…¤et?«?Ëvù^ëè¾Ë?ð4~Â?£­Kðù ï_tv¹Ìåy/TD)×5Œ7ɽ®Yt™8ÚIc{£u›~áy`õÀûÒ^ 'âÁ­=y#U²¥¬¼çúÎAãPBJ1ÒÚ3ô­4ðiG­®ñô” Ô?tŠ&Ôï4‚ö”4êzae&—)˜I(TÓv(²böïòM7#¡k&?²ÓIû£¦ñ–ÁiŒÀ8)¥ Q»ÎÞ=/šWÑë ä®”üšüárwzaOP8jÏÙ¹¸ M¶¤ÿôuÛWÐyóþ»k¾¦Îç û÷•¸šÅáæ0ùÍöÀùQÛ|…ÝØn-øãÞò}L•†|½ò9ö- –cÚf¤ë¸ÛÑoCmO³Éœw_9¡Ë6ò?×"ó€òÓ›“zRTªmWÙ’N+÷‰-@Ì[3Âz×h¨"w.:±íf(äTšç p9ºaóÚµpÆÛ¡ÏïÛÌÔÓÆ„扙Õf øã2¸h-ðò.”tEŠÄhâÀåx´ÅZРŲþ“%|æË†1Õmö~c"P99]³eý(æõzÊ„Ïùõ JŸº¹>q¤ûüEsêFÛè'ºi;AÅ×¢ô<‘Gp$~(ïnºE‰¡=G/sØÚ}þ˹áD€"ïI9çŸ?µgáÚÀßt滞~ä¹ÝLçÐÓý¹…¨ ¾.°!g¶lìt1íèpt8¢5ø¨‚4ðo.7¥î¦°ñÉhÒ‚`“_q7ÿõ»ÁXµB\¿»ÈWÑ ±ýÈÙÊr~‡Ú| ÖÉÈÁØظŽòÝ×ó¢@‹OŒFÌñþ,Á&š<ÃÊfw°m}!c6Ÿ@_n Â¼™kHÙ/Mt˜c5”š(eN¿°>d/x9;õþÇú]q_Ú×¶-tÅ8ø€£¼X4ŸËD\+z¼ªÒøâ~þÞ0§Wûù…sPŠê~ˆ÷ÜØ`¾Õ@é$<5¾EQ¥+¤8W>wTÏ;¡7u°lãfR• ׇO‚ Ç£‡JÒó`ùKŠØd`É“ Íã+é!“.R_rv¹¯Ãµ øãˆî’?ù7‰¦SÑÊþóÏ7òðG) ÿñ÷ú«­¾ÎXxÚZ|™J/Ú!DrUZê_’\ÊÏšI7JB]¬ƒµ­ìü¢‹ùXs?æ–ì€7Éß¾Ë9æ¾£2ü†fRJÉB¥©>|O½ÿ1[^ /^iW ¿åéryÜÿA^а£g9âm¡š¶Œ$ÿÕ^î=-£ž|Á6¡¦ò…W¾£š¾“òƒÎÒ™ø_-}!ä¢.Ð/d™¦–_ µâïÎÛ³ôÕ{? 783Ìt[ã©%ƒG¾+%½ýš]À§–ÕÖ`¥¹Þz/†—Æ+¡áå‚n‘¼S¢(óÌÈ=˜99 7µŸ—!ê?sÝö•wÞ½ÿî&üÇ¿Ý?˜Ú9á¤v‡¸¹L³5ÝðO_÷¥ÓÞé†q}ÎÅÏŠvÓwܶ©(9ð{Í÷™3Õ9kfÚAæwsÁ½à¤ÿ¬r6¹ͱ©à?œ©T¼Ò2ð=ýaÚz¤ÝôÉ^󕡈4Î:pß%x$¥Þ?€æ^L½©ï¡Àï«T„KPdó)·Ù×mÔ Nà<ý¤í…ñ_n£0*¿‚‹¸…˜‡(+bϳä·?:»?ë’o7ø#5X-7È ôìA8£š˜S} SPW®Ãax'<Üúƒ¶‚;"ö6›:ÄüWõœšæ'¿2å˜Éëÿßó?r Þ1¹ýlª™'¼ê» f™ÿüó¦h‹Ýöª-úÏh }åM;“ÊE¡µ_Ðd°a7Ôt ×Ò%á”™÷Ã#oÆçвÃi!üÇdjgR¸ÁßûÜìv¶© ¥LÞ¡Î1Eá ~– ²E~ÕYOnð—òµ,àf(sÄþ(Ø›cÐ;.X¼xî_6 -^ 'ûVöïû_ÄYÄ‘e<]ÂBõ6Ð]Y®p%±2lT .e/â æ„èé§Î‡¹ÿ—‚?~‚k»By^ûþc´L“œG†é ç×§:^ÎsðÇm.Î >ZÀCà_¿¢{¦íñrÛ´ð£0zËÁÌ¢C¼X¦K7Ô­‚œ6û÷œÔõp\c%§ÎàŽ`Õ`ãí¼…#IM¾n½µÝ÷ƒ3ˆNÓ×ðË9ß´ðÑò¼^ËUj Ý ‰t‹ö‡ÿx$Cµ½nåÜ næüBôÀߌxo¾³Æo{ ?™4oŽç²2YQ7I -ŠÚvÕùêóîËj¹­ÝÏ$>|fMÞ„¨)¡Íj39?j«!( ¼Pe}ø®ÍG$ŸWž£¼†ÓEÒO×j3 £õ4š•L:¼>R¿•ɘ՗¨=´É¹µ ’¿d4¨2ÆhôÔ»Y2zO5‹Œ—£ÒZëëºÒ;è¥ö\¯<˜(—7K h4¹#Oàb.ØMd1®²qaûyÎÿ3×E_açïÓ¥Oøj8Ÿ÷\úï+ŽóÀ‰åöw ›Rf‹SÔñÏÉn4·Š»Àõ¹Ï0*>ç:æ»cžÚhO¿S,m溗ÎasÄ7 Á—?óœÝqFù+êÿ1œQ͆§ÜN׿3{›qíh‹†’?f8§„õWÏ€W i>tR3¸ƒÌvüç!`Q`#Ûç&4Šà¹»Ä‚úx‹Ñ¸Ž–MQe"(ÂûÀ¼¼ ãtµ õ<3ûÏçû&ÀÏŽ³Çí *É á±³Ñ#ðÇxhð²PÁ;¡`ÃÕ ÃO P2ó©S¸†º5éu¢Ž`˾P;¿€*S1ž ]›H:‚®í[ýç×Ö§’ðuó×}Ó¼þ3ø('jÓœ»Ç6¤ºPš}9ÃF6ÐuÚ þÈ(k ôÃèa)=W®r 'ý9+üÇ>^‡»áT¥¯œDœêÆ ä0¸ïFö¯”M‚Rø…^ÚW£z5·Lq{i.‡8/üÇø­`‘…ð{WM»âU³™¸ ÿAG¨MàŸ‡¼D–J ø¡‚rI§iN=/7õ¨ÿSA¾,½5²V•>ÀâLp2‰u£NÔÞ2AêxÝÈw¹X¤0H¸ ùKŽ;Ý/¸*Ÿ†Æ((B›i‡Ñ1Í+ª{Á?•5Š÷#ÊH^8](ï´‹¶ÑNj·Æ¬Éh‹ÛÜAüÇ:óÚ>°‰à?Jós³6J¯*š•5äëžï¼¹bsPaŠ…Y_ÇŒs9ãà?ÆÛf†9ïžþÌ<“Œp!šdsÑ Cí![ÅùÒµ”‹^›Gf›}j3…¸ËùŸ×pçǾ¦s@Íj@¥Ô¢(Tî ï1#+¡ÄàØË&4ù£šyàÚPùí€ €¦›¨ PñîÐ Xø#ÏC‘¿ýޝ9=±CÁÊù§ d‚ÿ(_3…êðy`}>Í?0Àa̧z{…ûöõ¡}ðwm_8‡ÚT„gð .Ì_@Ûߢ½ˆš‡ãM©¸ýÞùØIÅ)€añ)O F…ÐMl#pmîÊ—À»Ë1W£ó<èô˜K+Ðóàî6Ù\&¤\™ß:CM}Ú‚zö¥,tñÊà£1|ÑPšfê–ü—ãh,"}ÅxÕúO™âú«²f²OÑlEá6<ÌÍú(Eàe]nGrþí(ôè>”1-ÓGÜßáÊ~4OàùÛw»­m'Ô3"Øc>§ƒ¾ÿ…¶S}¾À¥Œ¬’ºBbÈu®ÿ1Xšœ3ðZÈWy4ǤÞÿð݇6q`åÂ(8¤Í¼šîÒVN&‘d;/’È@­êºêô1§…ÿ VÈÁ×ö»¡ó“Âï=sf{~ž-¿‹Îb"ÚèÅ•AàN\J:éèÝÐ{@¿‡ü|WS ü1—/ãµ}ÐCåh·iõA¼ú63Xõ(ùO,o þ¾Çe0øc-7‘k:I‹ëM¹«käw•ä:-ÚþÿŸ6kàüÁ¿ŸœDߎ¢Çˆô„jÀ÷œƒj‰$÷¤½FÕÒ2Búhz´^Zø!ÚSfKW(ý|ŠÆÿþÕ¯ƒ£ÀŒ~o­ó‡ëC "€õSH6JL5ùWßÕÍ¢Ð÷1½ð OÕ_sZ+èH9.Œ×¾ûÎ3‘Mo‹¿çoMàPA ¨»Ð¸ßH"/¯öÑ*m¶Ké M =•P¾":KÓÉ ÿ ŠË7¡è.ÛdÜ$HþÄÅN_3Ê6»uõŸìh=­ã…ñÊÀ—Ú@;è o—×{®•4‰¼ÑÝO¯rõ¯~g—Q„€ÿhð_ñ|µ‚œ~Ë÷õ¿æxÎY§ˆÛÇ-aÊšŽ]ÏrðG·»ÍMè¾ò}Þîúm>¶×l]j­œfšî]§«óÂ,°sÌs˽Sïãד˜ý§’W¡@øþ| N7 fxR›wÊB_…2ÿÕç°“êþ³>4ù!ŒóÖþlÎð=¡¿‡_èJãmFøÅ¡ˆÏ,5m^è­¡PÉ G¨Pð9=¡o(9¿F¼]66˜nv(üÇ _ŠJCìC8¤Æ@™â`ÿþóp7Õù%îþ£r`ww9Jlr|"â*· yáÕøËiàÏž:k>ˆ8ÞM½²ª%¯äZ|—IW™.?q®½5®÷@ë"0G[)/÷À 9ÀDPºéü'•¤³¦[°ý™ÐÒþü» ¸Ï¡³`àpž…më=Tuö˜§Ph…1c‡òUû Õ”r^´Z=M¡›d‹®ÓqšP›è:FJjwx‰Ù^æal> ätÞ>…ëîø~NsÆ›¶1¼lJMgí+©ï]Ó’àóå2JÓ6:Â[ëÅòbxÍ5üÑ4‰£á$¯ øã­ÝFá¨8'äÿ•ý¯}%œgï¿;çkì|*#ëÇ® þu­î(·ˆIj;þsµ—ø*ºIÜvîT7¬kœ-ŸÍuÞš¶0.#°¹—9êžrÖ:Ì<;x»Ó}ð™þc³ Ïõi¦-O—©"õ²—m§Šû'»ÍàϦH C¹~w¶sÛIaÃò}ºNMè7ºŠÑø ¸| >á¸M¦eO~²„o|Åá7–'…;ò ”%=´Ùփȿe+eã3ô¼Â ðR‚Oæ¿Úàö +ô+˜ñ( G-;‚ǪÑpý8ûà?.Cû£Œ|fokÙ.ÎÇNº¿â;ëä„wñç¿ú‚ºÓ{ÚփǺB?òÿ®y.ÂÓ®€5ÖÀ×-Gá˜l¾OfùÆi`z½£qoðÆ2ø•j`ôh5âÆ4É41¯u½¸ÜÈtG?S (¿Ç¶?¦û2š!vüÞ@àPB~¶ô¯ZËÁù7ãÊ v°{+g„ï‡Ú®ƒç9€r7Qþ±~w®ÛÌöBŸ¥äý¼‹+Áó}GR>>=_JöCKo‘ rŸ«IM›šó‚?&ó)x°\4øùwãºWm6ª‡ ÏþàMZÆåÊ´Ebè=ùQk9Âqä&>»5°y':d¼Q°›#­923o±ãÞÇÛçìs#àáJ~´b)~Å…ô/-sSZªõúè&õ¼ˆ(ác­¥å‰|fcpk{^CQl&›ô=4v6›,¥¡É4€OØZTNb{YµüÁsxËYz\Ûj|m§ïd .Ð2NóÊ8´¶3Ó›•‹QÝ ÏÏÇ›%öÇ@þ’B£×¤‘÷L9TÖÈh¬5u…·ÛKìEòjÀÅ”õüYãHLMÈè•ÝH.¥‡>Iý_ÙþÔ—Ïù;oùIß—ÿzÿy:ðGdwˆ›ÅÄ5ÇœºŽÿüó\n ·£»ØõŸýyû­s˼²…è[ÊLñ©…Yà®tf;7Ír;Ñ,6ÝÎçåß=c^Q3Zc«ùŸbR3»ÕVv*¹Ñ1ÃÛ"v¿DéCùücˆsÑIdŸAi=¦4ª»27£Hô•ý¥Ýÿ‘Ï¿_Â&µûMhr³Ö\°_Ò  Ü*š ]¹ H.?±ï90èFŸÇ…âü(ujbª¢;œ ”Ø››ÒÑhbº`¿F[½¤`ËXÔXÿ’ö‘¯AÛo¢õÐw‡i³Í¢3läŒ3í߯Ñf¹ép¼ ”ÿù+|ýÎä7wxÿ\îÚŽ‚¶‹F×­AÝCÚÿ±Ô—Þv%ãÔ<6Tæåî\ø ­–h÷;/{øŸŸ/…C™N˜K½M„œ_û‡û½íÎHÇKxÐÜjÀ>ª½][2Éfé¥G$п˜ÆÖã”Ý%cøß1Q Û;X]÷žõ¨6o*oäPøþó?Xî DˆÕûÒE·@•žÁÏ^òH }¼júWŽƒž,É|75¦]ÃÙÀ2þý7X×GªrAèûaþÃñfÈ.ðGM9‹6H's=Š—¡eŽ›Ÿ‚ùXœ„ý{IáïÐ:Wyž –f²“sÃwLÑtêƒÞ_'‡¸ƒDÔe܆ó·`®µ@è°’×áë¾æÎX(‡Æ|þ#3ß´CÉŸ6Ó·R7¸¿þcâ6• `ÎÁºÏp[žË>ùíð‘ ü±ÚÙãÆ»=… Í …¨UâÒY÷j8¬;Ò\Ù¦kT¼§²N®ieí!Wà?bóO¼‰Ûñ&ŠŠÙœì=´p¶™ððÙàæ{ñ ÿ—’ÞK§Cµ‚†Õí²M¯è7šÿÂê@øœ™ZEü2ŠÂðuÊJ§lqþ†ªá‰ðMùsÑ=ûL {·´¼t’{ð2½àcæy¼,ÞmM¦¹Åx{$ž†•´û3¢RV8â´64ÙZÿÓ×éÎ:å«ù¯Ï¯ÍàrÒº]ݬýue”¯üÇOî7ëû讀¯Í¾'ƃËû‰rR%e¹œ¦ð«ìL³Ç\q;Ÿ:¹ûÃk¼‰ÍÍi¼Í t.CMÁ9œî9[š²ÙTv§ÍCß„ø.û?¯ùÎ>ç¹qØŸ'¼4ÜjÉ=¡§ Ùð#‡¨ °q <¡}aBã(3ƒ?ÖâþÏ€¨«à?ÎkP$(‡à£è¸O^:dãwÛG¡x~þ=¸»½j ÿÆ«¡‘²? @÷öÞ¥ƒª+Þ›’ÞdùDÄð÷¨ÜË6”ï”`*FItã1fße¯ƒ‘R&(öIÐOõìÎÇÖ¡?òÍrÒ“ïDj”Ê¿›äT`ýÕ1êÎa8õŽ>£µt.28i><ÀÚ`S…˜¿¤¶ÓüqncüÌ!ð[)0w:ü­‡þhkâ™ë¼j¾4÷ûMEŸ¤ sÖGÕé`üÑÛ÷¥éi¢Oûq8«;`œrà¶,Ü“ sqŽÀ{Pë}¼ê? ÜÂrü~!m€;ŽêÞ ï„[¨—>r2p£ ^›üÐQJÈ"`àmÉ,ǹ†Ô’YÜ’#"êNxº“ÜcQ?ûk°_u®ÛÄÀíôhù¹|…W¢¾+9œ¼Ÿ¬‚}.­õøã'<ÿÈÇyø>øî¸$"jò—óaþÄ!n4jŠ–~‚Z­äF|‘bÉT™&_?&è4ï]×hàuÜXêÀ…”ÌäÓà!<ÝŸÑ3Xþ«63\Ö^ôCmþˆûÇËi.k8—Üбðw$ª7S6ÀEÔÕð2¹‚ßG¡ü$Åù|÷¯¶ù*;³è5C©¾âä|Æv»]“6]kC•Ôªú‡$A}kK”¹¶Ž×é|=åÏ0ß}e0šþ^µÞ™é*¤¿OËHNŒ–bxu½§¥uüG}á ½ÕW²P®j#!×å-¥l‡ÿ8K1mf›á=Ô ä/‰@É0«:ñQ›rJ¯ø£‰¦Ñ9²VWë|E»Kn×4H3È^zKþ³áîØ4\NýâMrƘ~Öÿž@K°Ò~ËÚÌKâå’_嬀‹©£ƒ½[^Fï!ø.…¼Ó%RXp9-À#è™]Eom&ÎÅYlh²]ü§¯Ç¾*AžŸ_ö•w>u¢éÇ®Îq'¾; pþù›Àþ­¾Zn:·ƒ;Í%÷Ögž_{×wÁ<²ÕÆÉà¾Ç™n8w€sÛ쵋à?ιwœ¤ŸUÎÕ&Jàý«Út‰ÊCß]´qœî;[–2Ú‚ö–Í@µMèv´t®:Ùì(ÞG˜—=ï›@þ’Zv ôê~úš²Pwl ÛGf[(âE3ËÍAðØ êTŒðgP–ÕèpÑŸw*yR:홆†âý«“¾&Ðõì=ûc{.¥û<¶ é7håÊ|Š3 ƒúϪJC)L¢ODœï¶£ÛÔ쳟ŸÛvÀ誔êq"Êã©øíðG~KãÁåmSçcµN‚’ŒbóÔ%ðô–=d€Å£¤÷Ñ‚c0ÇŸ‚C/a–- œh>‘ج&¤]Ž¥œ¾¦;XÍðPÔq-ƒ¯ôïÿÏÌ­¨ƒ)`"ÊZö{šn`¶ð_ñèŠõŸ)RþÝ龜fšD‘÷ßp:–kJ}Á¹cØŸÝ4_ |^b%GÁïýë®f€ƒÐl`¢ÿcýÕz· P¯2Åäu`±”Pæ-ÑâEx77•‚²LÚë)I#'¹¨T“IÜ þ¦°ª2ÏOþ±0‚{Ç2ýš ¿pÎò-â"²ˆ—KX½.}à?¢ÃÄŸŒä,@”£¸Û:”?¿UÜÍÁž$§úhã7èËÜ€S\™!CäkðÇ ÿî7ïšFò†ËVn.ÕÁJE8Eàéþ4ðÑ:h™]æë`ùKÒ‚%÷ús'àŽÛéþÒH¦p¹£³4·Ä›?ÒXbé* |;®8k2‡‘B|:ÈþsÿûWÓáBë@ïøsYÞ²(½]àüÁ2¸¿IRè-¬Íåwðʯ:•oÀ)Nã¨ÒÁü:Hî¹}Î7 g€Â™AÙ¥$4_Mž+•ô¼ÔrN$ª7­÷VßÈ9£ßéùKž‚?Zð^ðÇ ÿQø=ÔpŽKñ1¦Q¸£UTO~òŠò·gÔÓ²Oçâ)ç­´’|ÚC³£M“Èpø‡”þ#=·¤þïGáFgžlëaäw‚ÿ¸n[j%ï˜Ÿåœ ÓEh»öÞ~/®·E3ƒ…îi7É¢>)¤qØ¢ÂRøê,‘UBuÚÐúºçËdÇÇÉÿç¦vî;±çG}eŽ9 ÿš–Ân÷w† óëóÖïÞ÷E°Ñ©5C{7¢Aæ‰ës×9¯Í>ÛÏì4ÇÜGŸùüã‚ ÏßÒ2[#¤}g£:õ\…—Í`sÚýð%¥CyþÇdçºÖÞn27%ž…:ü#0;¯ÝC­è$ö• ˆÔÛúÏ8kŽ™— Ã5TN„–;L[Éj`IðÔ ”3Ò'×_tÛÓ]ø!P–#é²íNÓQ¡Uï“ܣí`¼ò|›†ÓÏTÆ~÷ÑLý±œóN Š×íß=€„öÙŠh³kÔøZ€ÎyÝÎxL‹i-E{¡M6wˆ»Tj:“Á»ÉÇ#ÁGûPŠ/Q²Øh5»RSÖ„•Õ@ãRàÐv=0σk…¸~w/Ÿ™jÇ‚¯»C§õG/ô¢rÜßç㨼k+¯ÂGDhâi³£Æƒ¦Ó“À½,ÞQ·DuÀ9 ’ aZç¿øY²Â Îä‘ó\NJÉþwLÇÁ—yç¤vj°¿u.Ú(ˆç?ÿcp| ]¦œ@¢Ê<ž%¬wåk  ¼÷Ÿÿ1˜“Â3úí„ÂÏŽö‰å®ý â7¹wGÃx£d=†»À™À£ÀHKà@vÀ^ ¶þª¡ÍËÅÐF»¨,ÆÝAú‹ûé¿“àÇ:ºü†¤õÉïÜEâêx…Ž\›ÿà ¼”SJ>b¼ušv69øý%hž"|Òö¡×üP:ê;i&ƒ¤‹–ÕÀÐ;:XëÉðÇP GÑg‹ÁÉÅãWvÁûx[-ðEáWQI D©É %µž„+š+›¤§Þâ/Õ×qi=m*w…91œÔ^îʇ(­Mdýnsg»ñ¯f(èϪ†’K5%¾—Gçëÿ!î- ¬8¶6ÐÓ]µ¥qw‚»ÜÝ]ƒK x Ü-¸»»kpwwwwÞwÎÿ27uïºÍšIÎì.ý¤»jW°Æ ¹®£ùùu0üÌo’N›i,YŒ¯Þàǘu;l4®B?¿…+Af¬m…1Ú̼ÝFÒúÞcÍ&mä"ê:Q{i%ï¡—Ê»¬å5¢DF¯ÄS#ù5w¤Çö˜{0zªÛuŸ™wÿÍë¹/‹óþ$˘•_÷\èýɹàDqW¸©M9óÈ)ãø÷•vK»?¹ ÜxîCßçv•}úzÄ÷ '«RRèÝæÚ]é¼€ÿi6š[îկ̳rÀ× ùÐù'o'Ã4q}@œì6“=e¿¥"æËNÎîìuÞš Àûg`6vóªÜ: ˆÝxšUj¯üG*ûÄÌþ‚x‰ÌE³ÝD´~4˜ô”ÎS ò{ð—|G· IÖ[KÙhž=l Ù)GJÝí+pßKáÞ²ÑyDL£ åŽe3ËÊÑ ÿYž>ØüíÛÝút•:‚AŽ¢|/l”¦8`9ælìòH`ý:8t"Õ§:¶ígó'’³ÃÉ F‡ŒôÆ‚¨Ig©+_¡$ÔüAЮ§ÀÂkh3ø£í¢­àOåê/ï´45ñï†SFÚÏ—ÄŸTà“°Üƒ¶˜bÆ­p5n‡vLþ3†oÛàÒ™ŸàU¾ä¦‡í÷Ò2+04\RAx¤œü;J•—KüÇV^”÷¯ß ¶œW³€–Pg“ñïÏw¸•mopw<^ÌKñùShÃùTÏñ/’J–H'݃ÿî‚ÿ(,Ó¸.>á?ݰ?þ}§…ÿ¤ÆÏœ;6)x?>3ƒòBºEË9†„“%¼@"©~ÖÃú><É( hV¾¾ÛžO ¥Îýxïé7)F×rzE¯"p-º –aRš K?®Ñ¼;úXÿ”ÅðK5åJ÷ ÷á=àq¼(wÑüüQ¼ïml.ÂëÀçõÀ·[è w–‰ÒLÖq~y®s5•Þ—èÞTðQkI ÿÑÿ?l d¤Œ* ùŠ­÷.Ö_gf@¾ƒhiù¢D®<^*ÚRzËZ]ç‚…N¡Éiª“´7ßöï[d’_9*Ø?|o©³Ä}E™0î·P>‰…ñû œ[´Wf/{ ñCyÓt—>Ò²INhCý]uáA›ón†Ʀ¶9>x~µÅD£èPR“¨ ϰµ©˜$ó hkýAs‚ÉÃUÑÚ žëWø„šVvkBù îö&æã´U~ªûn.w†™>˜ c©'˜~¿¢y¼Z@ÚÉ i¦{µƒ–ðîza=ŸWNÃÉ}õçÔr¥¸ÆànàŽ}…rqr.e¿î Áæºé+÷ÁþÁ¾ÚÿúüAþ’4î,7—ùÕ¼vºöV€ÿhì®t#»|_·:yïš E?P+àJcšnvºÜÎy³ËŽ3«Í%÷þWæy\håØât1ÙôÐÃ}fóRj›Ûn²ñ©áæ/éîÜwŒ Í)—§Þ@äšÜ–,%²ëÀLûPæøÔF‚?^™õ_/šÙa–ÙTPáþgLÓájÎQQ E~Ú<‡„½`c#ØÛÁ–p¾¯Å¡Žö¬ áRý믎ي@º.T (¶˜²ð àР}qŠarq¬Ûˆ<è·Ž`¯@ñ1 ÷.eƒ[M/€ÝûÈÿäiÜbIÛÊùܪ³¾ÍN JóáúRûw®Ûý¶•¦3Pqþ÷r~•~dØc6¤Óð(ÅͧΠËåT6¿Ó"&<Ï ÞMA |ÿ‰þ0éMDY(ÁmÀ–ÓÀ Ðom Zû þê+i†Úž`£‘à‹tüŒÆPeŒ”PÝåø~‹’û×:ñ²€ÿ…ö›†Ï,ñg 6±ÿñþc·ÛÑòP^„ÌßnŽÌÎ;¹‘ä–Í2UwË·r êü; }`U^˽ ð'pneû©ñMÇRdÿùŽà9|ü±‡¶sd !£yž¼–;@ÕN!¶° áÔœ‘¯€ëvÄiüícÜXð¤;é%úc æ3UÉt)ÿÑWÿRõ6ëmí-+¹Š”AÔ,%;ÆK ¶cäl ’¿¤Ž-ÄÅáŽÀ”ã%tš{Ëpù0•\Ò!š\¯Ë+ õþ^bêRÔ´+—¿m%“Rà÷çórÀÔÚVðŸŠk'S4hñ[”àÞººžë”þ §0M¾‡™È7áhòc¨¦hè­4ì]¼-Îr— Nb´æ“T”˜*B„ЗZ\ÇÉ é©a¼ùº ,J§Ëqm¢å±<£¨=ë¡'Î’k ÚïÞñÇwÎFãBåB¼>üƦ¤\’ÐË©c´êyGÎê,í­Iuêü§äÑPšRFj<ĸK9à‚ãqujõÁûáð¾mh<æ{ Œ÷×R‹åÅ<“ªàòžÚÜ»ˆŸ¯º¦€?!ô—ÔØÜ•BaîE§Üp›Ùí—œV÷Ÿ¾îøJ:ïϾ9 U÷o×_¥qÎ8¹Ýnn SÜÜrÊö–uù­ÜÕn ×ç|]íúžü@þìÓmÌ.7…{À¹f¦Ùñf¥9äÞøÊókw›ˆü#ùOiÙÄj}þÚ—À½d`l$·ól&*ô…믦:Wœèö)¤·ü»û ë›RÊigÁ€gJL?RW›Ö†·Ÿ[Éúá~ê̓ùâÏ>.°ú¨*Ô×uèð&<•„VÙ°ô Ͷ׃-á _)¸„Ñö‘enų€öñéDàýyWªþØE‘ÁþüW“);Y\¶inCº_ÑöÒ_à±¶p4%($Pµ;PÔááàãM@oá?&S*m:ŸÛ5ùÊ·ÆIJ¿ð-%¤þôÈž±Ð^©æQGNÏuõ>e·­1 ÿ¶Ø¦3A³£û¯2Î÷¦5z3<âå£í4‘òP4zGÔ€F˜Šæ9OJ•¿ D}{`ž]¶oìðqÿŒ6ÅWÎ ¶½(:ÿ8ð¸¡"ø+à<ô<д÷àVÀMì¼ÿ˜¶\²L×ÕDw¯‰·ËýÕ¶§Ü”œ3ƒsBû¶A}RóJn%yd64ïzÉÿQZŠÊ<® uŸê¾+z'¥¿l¿ ýÂýýùOñ|¸Â Pî"ãy¼¸ê_EtK_òIŽàäp WùðyGB9Lü‰‹Ý¸ÐZix28ö½à¡ÐöåàzýÂ{;5Ž×^r©+G97§@ŸÂÁ{ÁÔ;M»âÕ´‰À’{Ñw…¹¯¦3ÜCÆ‚gpy¢5½Þ•#:Fîr7 ÈŸø'6^'›DêòQÛì]¬¿¡içƒÙ `T”€“zfWÑsÞ-5üG[i§åu›Ä×UÐùƒdc ÿî¾ÇmÁŽô{Dâ§¶×»xG-®à§[he’ØT—ºó]þYïhA ã¤5ØržÀ÷2î¡ æ—†“À{üÍMù‰Mf³¾ãæÎ!c(,°~2µàö;j&á½l`Éaš>ë(üÑïšîè84½.ÒWÔ 1ÛWòwKóÁž”\ºPGi+ï¬ÚKê•ÕšÁ[.±1–*øÃÐ6|åâIg¿äiùúºïËí\z÷·#¾Âÿúýylàj|w’[È6°’o‡/‹É­éþå¾vž}åúÝ'¾þÈ4ŒDµÌ\÷‘³Ö¹n–Û)f¹Yížr‚ËûñµÌX.K#l)Z ôüÁ®³éœZîI›®kÇÚ¸”å ÷ŸOp^8©ì] ü* ŰŠð¯Êû0þ¶# "Õ¤66†½øEþ#±ÙgØ2à!´‚¦Ò0S]pÓ‘Àþöˆ||´m…ÛÃÁ–Ð:õéŽímoÛKðc ’RÒKŒð?üïæø(gLÿ~(ê ç»ÁíÂ\ãþ4o¿‘†Ð9`b\*ÿ1þÃf”ÿÇ18ÔP¥mÀHilAçsïñ¾uŽ:1)O <¿êA·ìiÛ”~¥›Ôèœ,R þcÜÇ™@^A˜OÓ©·Mi^"ZE§»iŒOú¸w ÿÕL^nŠA÷à@ÊSkSÌÜtá*<ú!ÎHJEÁX9áÎþm¾¯˜aÿ¤Dܺ8_£¨çÊËóàã2ƒÙŽ ý6ñ" ^xÿY詉ðtÓégªlÔ=$Þ5·µíe˜¦½ÿ±–rßkÁl“ºQ²ÈA.(ùd:Wæ8ø3x†kh;é—Äî}~(9üÇ>ÄËè)-âFöòz «§%ôôe>5îß~„7ÂÓ4äèÐOœÏ?ŸêFËúýGJ°bU¾C‘d”t•\FFù’z5¬×@®qcùAÖq.¨úÁþuÃ<CCl7?}¯¡M–=†þ¨7µñ`g}YÃ9å®ÿ}Š’-ÚNBC‘GÑÑü#ÜBapëðeHÉËël—w±øš9ãétÙøá×v>)x¢½²6‘IÒO3ë:I ´ ðÿ>˜³¿^âk`úÉüŒÛ€="óaûç»xËœMîKÿš+8Æ”’£ùgÎ%“t»¦Ó©rJFë ¯Ð~7e™8Þ`­ ×Å€¹~€Oi73ñ;þèî6¯E0ºñ^Ûš€? kKͯÅÀm5»vQß ˆ¬ŽG2JS˸ۘ§lR®C>È_2ÁŒ³U­¥¼”rÞUM$É.ɪ±½nZÚ;ê]Òx^=­;M„ÛL-)ÕŸñè±Ý¹T‰Ó€?¾äiùúºãËå¼ß7wÞ,¸9Ÿ»b;·”î\7¯©n¶:åë¯rºÉÝÊîV×so`T|ÍÅðQÑCþÓºÂ`†.sw8³œóf»ím6™î'è‰oÿÿ×ó Ì?Ìæ£±hï–v­­çTwØô4Ç<2³lJü…ϯz9Ϥö”ïaðGMhšŠ\¥,bÏSSš½ .§³loQþÄ4æ´9nóÓ+ Öš]ù7”´Òªµ¾ˆ½Õ2E…kZl Ã:) Í´ím(˱”¸|Ý‚Ž@9ÏC­DÂìÎå4üqßMLÄ#n8¢ਸ਼€qnØþ(G} iîãÏLÄ“é$í†CÉxŸ—¢ÛÜÎúÏÄJèœwÒ¯þΧ‚£¹oÙï©§ü?ë¤ tòg_JkPæn4ŒÆÛ8Ÿ|~õ f] Üý)½üQÿw^SCjaJ™Ç<›ÛqYîçôWàýù&{Ù–¦.Ÿ|^Í̶½ÉãÎ\j›y:\`W*ý^‡+pžnÙ…;'«j ÆQ'àùPxЂ&¬û$H¼nG;ú'Ïå~œ*àw¨ƒ’|ž’Bànú7üÇ1. Åe ×ã0ÐÇ“ðßh×dŸAó_EtoØÐð£‘x(”û%´ÒUZËÉ%œlà½ò(X^/é}¾Â…Å‘öÙyÐo57A¼DôÖÙõQÄnD¨“Íh«l<5|LQ¥¯ ‘ï9«ü¥ã4š§ÞKÓB*Ã'eã˜pœ‡àúƒ;‹Ò… çGýfSrq>—ÚltŽîÂõJ2˜3Hdož¦Ô½ò·î’˜ÒEâªÅ@c®.žÁ£Y¤ oþ`ýî ßxg!4ŠÿÄÀï1ÆÎcfåSÒRHEé(-€û“…u©öÑÞrXºkm=̹5Øý8XÀÿ'ì wñ¶:§ÜœÞv+Å‘s¶%ÅG”-zqVÊqø­¨Þ(´^tï…Ì—+Úþã©„„ mþèλ)M`ã¾ãÎ#i¯?7ƒ(©&óòà eÑÔ­·Y»ê )¢—e$x}Š>äNøLoè:¼à)k¹Êëw×;3à?êÓ8ÿye”•Òé.o¡~+dŽäÔ=Ú@«yÛ½‡Ñk¦Åå†N“qoƒ}tˆ’Â¥ä*vÖgæÝózä+ûA&]¾2ÿ:ÿn,çœ“Ôææò;à|çø÷desc¹ Ü%®u_ù¶U´§¾›æ-Ty>zfcR3ýÿá³{ìx³Õœp¯:ÎW•s±y |as@ׯ¦í›Õùs2?]5oÍ^‡2}áú«NÎSÇÚût =ל~ó¿ñ€ =qšz¥ƒcúî4©=ü…ùKö?ÂûŸë¬¥ùð!{©<ÅâK@ˆ6”s1í„§vvY°%¼ík†²Œ²/m\èÁ¥PæÙ艭Lãá8б…¢KÀ[© Ðo4˜å•ÜûnÛ@†©vtþã¡õgA¯G%€uS²a²7á—ÎQ8(ì9@¤ü¶¬ó¹•v¯|”ŸgPEÜûO´Ó)ÌšŠôŒúó[jF“à¢ò6ºD§ÐKÛñ5 3d„-ñÉÌœææûÀy&“1çâîeÑÃ)Á' y 1]M$hó‘P¹§'ù3ϳ/à@«~‚?øŠšNv¼50×rø¸}Æô×´98%O¤B|Ž7ã+ 'E&Þ,‡KÊg»AµÇ5wíþˆÀ‹9ùPàl±ÊüüQD–K @*¹Åõ¥ ,âZÀû̼ƒ;ñQðC*jõüí]·jì_ýÌàbæ‚'·r,É*wx‹<–’Vë¾þ)}Áp%à?üïû›pJŠGaÝyE\á¦G?n§~&?ÔJt ôüƒ«ÉÿñT/_ñRGΠþiÑ–x=¾ï£tÊ´ â?"pøÛ…TÌð7ã‰2EÊÉ2N+×€¨)õºl×Áò„IRõïëìu¿‹W¢Œá¤<ïúàýÇZß(g=ݦî@üº‚ÏØ­DrIÚ*iu°Rghü‰’Z×k{.;Àµôo¾…^šÇ¯ñ=4zèàù¯ö:·Ü°àÈ[@èôRcy>§–j½|º\ÉDMÏqACx®î—Kú³–”{¢`ý޼ñÖQ)›Ë†{Ç-œG†ÈþùXÈol úCòxUÁEô[M¢£õˆöÕZM‘ ¡t‚ïad?ÔÉ>ÿµ~E–çÝ(<à¬5l °GgŒäÛÖÕLÞZ?¸½zY«k%ïw üÖQÓÊ}8×B]~ÐpþSÄìßЗ9³ó>3ïþ›—ëÔú`Åîe_Ív£ÝË9ë$r¸ÙM³Ë©ïrB¸YÜÆî×uïåùƒ|ÇÍÿÎðG2šfN¹‰Ü+N,{Ô3'ÍI7„ûuç1 NûÙŒP¶Y¨‰½d_ûÊ»‡m9ºhâÚe6% 6íÿ]mÃNë@±Ý…?¨õÝ…ÿ€–Od—Ðà”,ôÜ6¢Á6¾=n¾dEvX³ØD Í};Óª†Ym€aõ(1?£<´Ë%ƒnþ;Øñ}=2Ɇr•àEø­l(O9°ÅhéGð4ix'|ÂŒÖü$¦x0׺Ò€‘}hy×¶ò7 ú<‘‡/˜§‚åŽÓYÊÅOáh Q[â³ëw“:G<” x_¼6˜.Ùšˆö”†óx†yÜž#ÎH¼ '¶ñæÀ7 ´õ̧r Tsz˜Vl»c(;ÜÇ4°bI¨Â‡”ÐÓÓ„–-`ƒŠ<”úb¦·§èàG¶ý'ÏZäËi†Ûyh÷A\“SkúƒÙúPðd}8ˆê¼Èxz~'Çå ˆ¹}åßá8˜Z›ÐnÐò3Üž¶+j΀gÉÁ·© œj1>ÁõÀk¤¯ÎoäW•2“"fj^ ŒÛ‰{ÌøGþÿþæp ³Q†½< ¼=•ãJfÙÎäªì—¼º\/ÝÊHTé ^ŒÏâÞóü'hQ.ŠäýÇ87ÜònzȨU½—LfÉLÊ…¤½ÔÐÞ=}ª+ä.÷‘Ú(g.NÂÓù/áq`‰‚ä³}?ŠWÈ&ä‚Ð:硦šÃ3Ʋ‡3Ém¡…¡Ç¯èx¹É%…ƒ²oÂ߃-w‚CbJu¾o›¼‹5Ù÷³3 £âWÞC58!Ÿ²£( |Bs «½d  Ö ºO’év¨üàâáÚJÏ Vk´ •¶pJñø˜þ.Þ.gû€ªð}ÿ(ù3¢Ÿæ^zO³éb8𯛭5¦÷JöÈmvòibާçÏ鹞rÚÒ6Î;þÈíœ0ÏlRÊ@óh1ÜQj"9¼*`É"ZTCj7©C4¦þ¢žÎ“_t‘Æ•ÑE¦R¾Š±zÅÞ€g~ÿüj“³ÐLµ i:ün):nOHï¶f•ÙÒ_réN°eSo§÷.¤ ~zF7Iv,q4:†ÿ8Lqè'è…úvÆgæÝózâkâ¼ûç}5¾ò½Âû‹Nb·›×7ûœ†ˆ2ÑWØ-â6tgº1Ý·_¹ÿcžï¼9c ‚ãCC=Í4çÝxîNçŽ9n—˜kæ6)ÅW•ó{‡ Ðpû-ø£$Õ°·ì3_J÷•­FŬµ;1ê»—îÿ®ÑÎç±a¾\‡jb¶çžÀì¨v ‡IFw ûϯýž*ƒZ`^Ù1W#@»õgM„“›†ÏL@­Ó|23@n§–i‹>Ãý)-mCߨä㌸C,ÛÀÄ5ÜŸKÁ=ùW+w 䆸 nŸñ þæËeúÙEž+ ³–«A-Q¯þÐÉ-à¶SaÞ69|JÅÑ,¨ÙIh“yÔɼq^‰·Åí`»¡3óZ^ÿq™~DŠA¿W’LЕè‰'§¸˜ü 3¸%|WFÞÂ]ñ5ý'´ RãûŽÎýîm*û=pæy`Wt 'óx¼8ÀÓlºF£Ê1Î/Ñd8|5ÜÊ.¾ŽôþˆM°ŸÂò_}Çû)Œ,”¹Ò‹³KCíþ¸¤ä-œWÞ>é;”o"PwÜÏVðâ-ó±CÊd㡎Òiê6\L—x•L“²• Ê«…ôŠ<ÕÍr»H>]Ë}¸×€››öŽ ùøúϯVùj;í¡Kš`TT…×;`ëQ48‚¾ªZFz‚/ré)‰®›µ“þ"]¥nÔCàö.¼Œßr+ôOd>ißço?àl”ä³#%$$ 5G-ê--½”zÖ›¡ó4üÇ ñ¼_t¬¼æðÜŒô#üGVÛäƒõ»¹sæ¹™>Ù$0e°$òrë48…ÔºSZëX ¡´¥†×¡’S_hù[ÓÈHøG£çlhnJMßÂ¥Î83Öþ-Ò së´=(ë½p^ n¬¨³PÊ‘ðo´°×CcH4ïºT×RV3ðzkS(›ä\í²ÿœrå¿*è÷DüsWLgŸ“Åíê2¥Í)§¢ÌñUr“¹¿¹óÜhð_·ÿã„ï‘yióQj O±iŠYäwºsÍì³[ÌN㙇Np™7>¾:óÒàô* \U{ȪŽiËR]›Þž·Ù©Þ'wüóêçrBZæ'¤\—¾§SPã-(&%±›©í‚·Kýh¶M þø’5ËžÙlüy<|< š¶W`?wzF× ê»A]{œŽvÛДH:+ØÎôUJöµ÷mH®Ç+€¬Éè±ÍKÃàòCýMéù •6O‹ îüÁàg(GG¸‚±tßú³£d¡´<ð-üÇPÚD›õ)¡`ÇS3*cë9ç>+гÚÉG5z89õ¦kö ­ƒÿ¿Bmø5}Rók]dcßCášæÑt›É|ê™j1§‘é‚ÖÏý(%­€z+]š\VîD'LEFü§”Tä>Ô^¦3îpíR‘~‚?úú ›v Øh4tq2Áƒ©<æs:pZίµÁF¯†Fõ?ËÌFY—€‡‡š0ÿÈ¿»þ£•¦ˆ¼ ”ŸO£mRn e#É(K¡ñgHd9t­"³¸'ÂΦÁÐÇvR÷ªu©Úy*b\oŸ¦‘J3×KxÝ Ô¿Gí4g§Œƒ›Éůq§ÿ=U ˜îÇùw‡»ßÒO´(“p86ü–-ø£•vÔDÞA½¯“d'W“ºrœš„ÿâKðR}y4É^óãGñ2ØLÀ°ƒÐ5ø7žK§x’Œ†ÿXÁU ˜‡À<‘º\ŽsË@þÄáÜnë0o@mBKq¾f[¿‹µÇWÕÙ‚¯S58³K¶Å’·2R#j]é,´P:¥nÕaðåwø›óüˆ{ÃI½‹Äã8ìû`ÿÇqg•}ø*"—¥PTŸ+~¬¨ å¹ÔÑ'ð«5’wKVË3­¥Ê‰åÖ†×ùÏ„¤ì¶¼ÍüŽ?J;ûÍM›‚cÌdÖZ’ ü1IëhT#M«FÓrÊ:>a¹•mšC&ŽÈAÛíKŒŒ~œåÿÑÈÔŽòлOŠy䥓rXÖjÍ®3½;^/º—=Ç[NJ(…5t+a®¸Ð„©¹†]ÿ™y÷ß¼îûj~°ð¦¯ø¿ÞÇŸÂîf29ÌùÀúÝe¾|nz·Ÿ»Î÷¶ïs§B|úºë»lÎÙ,p{þs†—›Ýî%góÄl²çÍYóÖ}ò•ç\5/©…×ôï¨aÿ¶ß8yܧ6+t@ûʦ¦ê&ñEìèœrZߥûTŸšÒ]8ö^н™ì,àìü$:õ¥Å¶˜Ýc6~A<5KÍ)[Þ-—ƒŸBVîX¾ ?›Š<mµ!€Žì¢`KxÓçÏ·;ÝØ­σÿ(@ol1èäIT3h%ãÍTì1#9l°ûÏç¸0“¥>Pøýè%üGrh¤T<:´Rv¾ÿј2Û²ÎÁÏÄŠþHîæJAƒ¡/Ùêˆvüa8uærp1kp§“ÀÚ½à h“iðŸÊ5PÞéjƒkâórÊ›ï_^Þò¾,4eÌ3ž•[˜‚ÿ˜ô¯¿zþù þ˜ãKkÛé (Ùøó€BgüIY¡8°8ªÿÔ_>üÜËa9ϧå``¹…4ÞÄrŸ‰·Çík{ùO´âmÀÈÜÀ¶`Ùr<—ËHN(ý_ø‰ ÎKK ÿû³pLç2ÔÝRã$î…ZPF°Ñ>ÊSç׆‘EFÛí·÷áF›|ðþ|œYhC+uÇœ†Ãî+àW[Ö>¶EÀ_æ¼F9'ð6 .$· ä¿jÍíà?"Ûipg¨8ÊÜ™æØlöáñG³Ä¯½/ƒN~I'¨&…â[þs1( «ø#*x`‹Ýl øªÐ;ÁÞ²á¹=o¢Xð-•„Rêþx¯ð-Ÿƒ~œÀÛ¤ÁžÿÑ×mA÷À‡íé(~ç„¿ (; Z/3?§Qà¼Ý`¥Ü즵¤*öWçògbÝðÍqP^UlôÈnƒÿ( ¤èÈá8uãª`Í `£´–ŽÑNšA«i…ÍûIgXÜ©búÐeðá8hŒõh¹üTsé!Z²0ñÍhõæpaüáÏšrÊú¨møäþÁ¦·ŠšMçÚPsh(ÐÿwŠ=[Œ3rÞ ÖÜÆ3y-té7ìßý±Œ°ßŸáÑDq߉·Õmkû©Åê>às'àCVDÿQrà ђFörq)/þ‹ ¸44ñPøq\Û1Ajì¹wl\¸ÝT¼„ßð žþ˜åne&/7²^êë %ç9‡<áÉ`¼Bü”¯óžÅ©…u÷Y•#â çä\’S™)Ã¥=ç—:R#{WÕçÍ•-\Ujƒ•~â,p:Ïy;÷ã…TŽž™_?ŠÏf†O; ¯Æ1¶òb%Íe?gÿ§‰õ¶xÞdÙÎí$šÎçõ܂룶7ð•DŠòÞŸïñå‚ÿ¸L¿ðUjÈYù®mCi$²öÐÚFz‚ߪëhðKº@»Â´Ö z‚¯rWD+}9’ÿ½çuÎr7WA d’ó³±ω>ÐÚºÜ[Wcy}ÀFá=O×Éký]çËCIÁI¹ï·Ÿ ¨¶Úù+;· —Òb ç+¶,5’ò^v]¨­áfËݤ4‰vUÕÞòR–h*Y§©e*…æÐN‡lnòÁûåÎX3ÏþµÔ‚’a®;ZÑ‹áå•rN.à UÒÉÞm/…wAóilpË4I¢qÀŸ1àþŸÚŘKi9 —øŸð‡uò~ÀG}žò\Ø÷WHç˜Éí þ(d|®?»Á@_67µû»»Ý ë^ö}Ýé&};ÊS5²PÞ«ÌM7¤»Ì9nþ¶ëÌQóÚ}õ•ïiFórŒ­ ´jN•ì[{Ý÷Ö9i+Qu[Ë:ÀÄïƒÍEû×çóÊ?%‡KÁq^¥–@¨ˆèÓ˜×~i8-²)í­/zÿñÒ]dVÚÒäÏÿ±”Ñ 8ÒÚ†OÓm0gXv8-F\H8Ûé_pþà_'xÚ àÇÐÜz0fË-[èÕ Zø&0,_Ç ~W¢$&C0gºÕá³ZIÏa|[êÝ•†,”ò ÏQÔô vÙ„2¦d?×o ]p³0:ÃücÿÇy·üG9J}½^à8Øu¡?ƒ ô|,Y&}øÉä甪àfœ˜Ë'Á1Lâ24âûÏq›6°óf é9OA«-†ŠŽ,óxª¼–kRKk9Ài$” ‚ƒÊÌ,ûp÷Áœ¿%Èûùð­h]€?¶q#(ýx2¾¨1tÒ·ºU¯êpø…ÿ;¿¶<Ø"¶2üñ7´LÐçWYí7à“è¹:Ü×Òy)#¥±lælrJ‡W¯ÉhóÜþc+bõä¦|™÷“£I.ÞñÁùçË|AÐS àÁ« /NÙ?(µ¼?4¦v”?¤øc+¢œÔ6ZE&ÊðKÛàÊú‚ }Ò¿‚|°ûog“¥»J“)Ÿ”“ÿ÷rl}¬tú¢ø£Ÿnˆ®•sZW‡Èi‰Â ¹£?_2üGX[ÈæÿàüÚc&<åÅÌê Ï|ФDñrêP¡Åõª\Ñ9ÚJó¢Öý;úµ§f~úl¡W0‹<.F¿½…ñf¨mŠå?­b¿õ´¤'^6é"7¤ªn;þæí÷âzñáq|BÞLIª࿲ad8ôPoßpe»á3óî¿y…sê8ï×®_ðUr¾n]ìû+9tyw„[Úä1—ï?ø ¹ùÜnîj—Ü»_ùüê©ï¸¹g³PAІžZ`ŽÀìw¬=dw›Íæª{ÜùÔ™tŸ¿–›'@™Ù¶>ð®6u·³l'‰{Íæ¦ºöûܦ  _øüª‡sßIn_åüçöî7á>¤TÖΠöÀ¼æð2¿€?rØÅ_”?1œÙfÎÚrPáÃ03¡»ü9´Â°/PkŠŽ—‚NÛ蔑ZÛ¹Á–œ2ôÜÎß„…êM‰à²àêx°S>F[ zŽ a& ¥xôÒ nÍò·êÙ5ÛM#é%frB bÌÕAœó{2J»¨‘ û/”;³­ñÙóÏc8œŒ”0ÀYÈï½/Ù&ä?ù½¿ëöäŠüŠ âv(ÅPdzÀ§m:óøÑj9Íït’ó0ÚR0YfàZr9,æUsÓݼåUü+ôkkðÇ$pJ :j}à«O½ÿX쫊9s”Gòy(óÚÔÛNÒ/éÝ6&ÜnzžÏw€j+è:-W„­ì?mõ°4„ÿx þI"žŒåÜœ^æî×þ#År?^{±ÂM ¶?H¯Áóáû®PJY$¤W—6ú‡†õöBß‘³ÜC¾‡«©‰ÞžÏ7P{ÿþ tÜÔü(^~ ³nì{ îJºÎ eT sos¹¨jF`é‡Òv˜º.«#xz7Jxœ#I1Þü¬†FþhˆRÕ\Á̪ wå¯íPÆÖZ@×Kݦ¿k´eèþM|Ÿ{ñzx™N‘…Ù)ïâmuNº‘¹4´ÿÊ"% 3Z£Wâë3ÿ¹·2E:j$o€®ÑÞ}Ù ¶+ VÙ+¡86ÿ~ëÎ)–ÍbÓ½ãÖÎ52ðfqMæë˜»$¡WL'é³ê¹iþ¤áŽ*€›ªÂD”‰pË·ü¹Úì=jL¿¾…«œ¥f¥­‹ÑÔ™òÑ%{W y¡¼ÂÒCÎH ½Œhý¼“^×Ów|§œL”Œ‡beô×Ôž·ÀFç©N@}Qâ'ð+ ‹·Ây¬DçÓB›Ó<ÿD´šN]Ó(›ÿB7€!‹ñ³‚ ÿL-LYó„gqK.Æ¿¡ÇG¡-ÃÐ ë‚?>µ~wޝŒéf—SL8Œ_9Z0Õ@ïà6œt™.Ò·¼™—󶜈G=fÑ&ðÇ"Za"þãýÇZ· ¸¶6¥ƒ¾ÞìzD?ù÷Ç€ZH>Y.£t üÇe."ed¹?ÇWá[<(8‰ë€?‚öt&÷’ýü‘Êýá…à³¹Ožó2ž OäÔÑÀ¨ã\A’ÈPðGNøS¼øWH—Ö]Ĥƒ*ØFoqîýˆÂÊ8*]á?~„’ámÒ:]smùQŽpuø™`®%<•O£¥/˜rÅKi“¢¶aôÖçV¼šöó$ù þc•ó:FÓè3¹­Sd?·”·²’×q'({?{\áXR”wÛÆïbíñ5qz¢›Àƒ×æ˜Pø#)•xÚXSè™$ô î(º[»kK™¾ GsW€?ºr¸Ù»ìÆÞâìq#Ö˜M RŠJÙ'ÔúR›ê Y)]ôŽÒ]à §Ûå ¢ C‹Ætÿ¶ÂïE°mÁwüQÉ9e"‡çÀ,Æ!© µ‘¼^ATLÏÂÁ,Ó58ä6Ü’v‹-ó5ŒÆ¤¼×rÌ&ázÔæƒõW‹Í[ú þ®ÛRÀ»¦ydˆÜ–‚zD;kï„ÕKáeÕRÙ ½BâkHîBD'ü¹÷8-÷?ñ¤¿ºþ øãËV!ýó ]žÖâæ5…Ì[§M`ýnV·Œû§» hï8_—ÿj£o—‰â?é‰âBÍïãˆê®pn˜cö˜9lž¹—¿2ÏãT“;Ò\[‹Bã7±JÏ|/œèµ6¶†}^iò…ëwû;'Ï´wXnI-éFã`ŠOIìRêFûýkd€·‹m:{ዞ_E1[ÍI›H8˜1=¾Ie(4”¹ E–Êþˆ&ÝiÏ[Â5¾ß(,M¶wíKÌ¿­”®ë‘­þHÙ€‚»á®O† Œ(±)LÄ)nÔ°=Ôû! ô=Ûü˜‹ÂA… œV>Žk Æp. ÐXÔ½¼mä|îÔÞ°Î*'5UáùTˆ?šîÛsàÍüp^p6Ô‘›‚•÷©ÏÑz°È6ê‡ïkló©\™œŽ¦=Tx.`iVàølª ÞV ÍãhˆIc¬ÌÆìÏËýP×Ô‰âÐIôô÷hÍFå+aþâÇCüÉéáF üϯ~ãrœ ˆtÌ» ²•=NÊ“q¿9`­Ãt––šçNÈ %¼é6²c JÃìáú|m8‰ Â94”ä²L¦ê]É!×çŸävÀª|| üq—gs1jGýãýù}õËÄ3Á !düÙ*N,±e.“§rB*êV !8þu˜¸  ÷YôT*OáÜEœê&ÄÜÚEœˆwáÓ(’L„–ïÆßʯðQ½Õz:| üCC¸æh“¹|wï ÿ‘™Ö˜êAöÄcùÏ,Ïíù0]àÑ2V~€ÃJ'·´«~«Gä1Ôþfî*QÕ¿j·bîæCø + ø ýá]¬%¾"ÎH²`îsTÞï¼íM ä|BRí+¿Ë@­£g$¢žÖ¾ú‹ì–ú:V—ð£Àûó0ÒŽ%:Pý½ÿ¸æ¬vcBG\‚[.,olêÏϹ€²×B7Èø™¸^=ˆïªkåªþ¤-äž$EŸ´Aûý‚ß‹d‹Ûïø£€³Ò<· ác–P[NgKP_8†\:üQ@Ée«4švÓ[ÒK²‚דÊZÍ(#Iù!TÉvœÞøÿ1ÂŒ°Õ1žºíÖÚ×ÒÈ íe–vrPJêýU[xǽèð 4œÎ‰¡á%ƒfæäÀû Å\Ìø?É¿ûóð}&ôs¾¢_ù\èý•Ä9îDƒÛÈhR`>•uüïr³ºùÝßÜÕnH÷©ïs»’?}õm2¯­ÿDë¸ý Ì 7ûÄyaöÛfµ9ïÞýÊõWKÌ#ø˜y¶6í¤žÔÈ®·w}‰Ü6/åƒS¸aSe“ú‹"vs8±¬Ïcî5Ã<ÿÑ ¥LgçÞTN5¢ù6Ým¦}A<õ9dóƒ7†Cw„ë8I51{.A÷·žyœ‘öÙ°” þce°%|ê«]?Ç:p0uy%‚Nºb+€—ÆPU¾ ·›˜OA?NÆß3P“7˜ˆ;ÜÖP‚¿¢ÍŽãwžÛ¶p4å()OàΜœ1ni®=€¾n@9l½Ïî?ì;çäò+|JK)àV"Òí@þ’[`à§hÁ?¡ƒŸÒ°Ñ´Ä&úˆ»þ#…¡O”²¦SÓ4·Å[_YFe17ãBxw‹ijÞðhnÁ)¸=u¡‰P!™é¬}‹;Ný¤ÿHnúØq¿Ó2à7ÆPøÉ|À¹’œ‰³òk¨<ÿ~· õ=SÁ/«iê>Ÿ¦˜nÐ ‹Ýú¶Fo&ÞÄÛá<Ül*Ç«¸xc£ŒÔ’_Žq9)!#¸ ø3”øt¾Çãøl§©q÷‰ ¿›’çCi_ã¹{9¦Dž>d~ø(^a›3ò: Äïś诗Ñòœ‡Ÿ¹¯34«>”kÚUîsI¨ó«Xó8߃|+yx½­õ.Ö*_Cg t@ Œ©FþQf§PBY þx-Êé©EÀ¾Iu”ùPø‘IÚEý®¬7¸=¬ôD_…ä[vð»xkœ£n(.„q¿€2H>(–?Á £ÔzÙá?FJ'õyƒ¡óÃyOeÓš:Iv‰Âù·‚OjÂÇ(¢Mes½ãFÎZc(2œøê͇mYj)‘½:pYåà³béQ«õ4-Øm¯L—2ÚZ³I] ‹à?ã·ÖÀÔ¢_>8ÿ|‚oë`ާÙd7Jvï¥&“¨[^½ªƒ´w× ç%óêj-¹®K$™^࢚ŒA+nÇ<Ê ¿™Ý~ÝíÿÌõÄ—Ç ûn$Üò•ý×û#;Kãäß=ãøG×B_7©û;ÕuÝÐ_yþù!ßFsÎÆ£LôÒf¦vfƒ{Ó9ÿ±Î2{Ía÷Šóenáÿ»:˜ËþS¿mÖÀsòröµNb÷(´È3ó]fÓR†O®òùçÕÚñ\Ͼ doNM u¹…¦ôv õ¡U˜[¡é;(È$vëñÇCw¥¹‡1Hü'ÈÌè}à °Ð^þó £`fǧ-6$”õvW°%Üí+O†ÆúýÕài”x <܇a”§•‰÷PajGÝ)…7Y‚‰¸Øý™^áÓQšÁð#üe)U`ÿpJ~I£€§ c“ó.êœÊ ÿñ¹•Ï}³L”™×ƒ¿ÒÿÙíEÛžý"5‡ç U؀߀?Ž“¡]G¡u'Ñ›ÌØO”²ÓÌü„»¿¦a¨ã.ð‡ÿüZÿùçáá ×›´æOá1³º×GS°Öa{˦!Ÿà ¾T¦—vë” 噈ڴþã:@¤"|u\Ë ç×úó_ ÆŸþðIÝéÃîÍ ñ¸?ÚáðÏ©ßk¡dßPg0M ^Íõ$›Ì’ÁP¾%ä4×”²`€ÊÀªdÀª¼(Xˆúýcÿù+ç¾Fõ(-ÿÅ€øËè­åDòJ~‘„ÑãRZ¯« ¤þÊé80rOæß9'Ú;´»á£ˆÓÝBh‘Íô„ ñÔî6E•aÒW~âRþˆäíª‘–ò³œâRœ±v!r{ô_A:`ꯂõ¿ÁÙ5U Úb½áé2T*ËÎ"÷t¸&Ô=² ¸ü–;ÈsY –nNÚÈûx‹Táu¼ÿXè«ãŒÇ|(Áé;þ–ïÙŽJI{¬-e¸´€Ê?!)t2þ`Y.Mõw0]'ôwdiÈüÒŽoó·û‚òÃc-Ô„Ëÿ‰_H}´_({¥¯FðÆêK}®Ž.—»:D–7…ýç9OÑmF[ê4v–™Wöú£ çxpdˆ÷«öÑ’ܱqGjý^d¨¤Ò„^™ ç0“BA—d¦6 Wú€?9ýÍ$Û nf´ç};_«z4¦t’ÕðÇ´¾6óžy'5½×UKÊ[.±5¥äÔ(Ü•<(Ö¨”‘sp.û%ÙöþÓ×_uçýì<ë«ý¯ó·‡sÖ;oœþn“Ý ðÇ\_7žÛÔ]è¾Â=¾nÿù1ßVxÄè”’[¡Qf±{Ñ™ë<6Gì@³Ä\po8A3ýÿ_mÁ)¨‡MGSèª`·ØÌÎ7î} É]óÂl³(ßæ/iå¬s™³PÇ¡‚üÌÍчEìNê$ME <Ú¦°'Í—¼Ñºí®3çm.èæ®sòAé—¥·ä_ËRcó%‡baðÇ@{$Ø^òù÷`ß<¦\Púþ¼jË#v*Ëסçcñ5ÊN½éÄU“,Øõ»é9\Vø~tÊöŸ©U>æÝň¿´…RðN d°hAçsë@ †ÅýG`%€vóà?¾ œ?ØŠ…ãƒ?ª‘VÑU¸ ÿIZ=©6Xf¸M`‚>ò_%œŸM/(è›`Æxð³¨(J– Ž$w€'Hc^@ËwòuÆÖ'¤£ö˜úOòG>ÓÏŽo·æÂ`Æ»ˆÚ­”š‡C‚úögžÜ´^Áa9"§±ˆØ бU5ÑÜÛAâuÚÁäÏJ3™ûÁ \…ÿ™Ny ¶«É·²PFñ ËQ.#ùdîˆ?–«‚m:q\êiG©1»løÝôüâm†2¸B‹8±„–m¼DÊ)¤·ÔÊ.ø`4Çá,¼\·ý”ŠJP¼ ûǺéàˆÖcœ¥äPú)Ôîiþ誣Õó¶é[í.j+Íå.Z Úr'Z´/¥â´/Èú«r6œŒýn îJºÀËÁGud4çÏ›¨ùt»,Ñaò ñbëpn —WŸ—Ã1táˆò=ï²ßÅZâ«ê "ƒž»Ç–šÏØ VvJc`ówò—ô×¢ºIébí­}å¬ôÒÐãwሧ£}BïDçÐôÞ¬wf»ÉÿŒn.¥—äTžVÂ÷-ß&ÕÅh¹AªÞ0¸‘ÈÞÙ$t¨–——š£ðÏü7ÿÎ&°ß¾ãªÎBóØÆÄL˜KC¹Š-J“¤ˆWOGÀ¹$VÖîšHgë[ÿ‰,²ê%¾Ú·’Ýjã9IÝc65Ý4o %þBÿQ×¹âøìQ迳üíS}nLá(5~Ö‚ÖÁBo‚?Ž˜…_Ú\ÂîKsh<á5*B/è<¡p#áiWÂOD vv[°%<æ+ÿ1Õ:ä@ÕÎG¡çws Á''€Ì19ÉŸ*+=wãqŽ[þ£#”øv°ã9Û³¦ %áQÜŽCU߆ H}îßïÆýìù)­à¤<†¾¥¸à³+ö¬ý åºB?ò3 ©ˆ¹ïÇ ­àÑðbÝÐ[SlòOžìUÂùÃ4«]E]²@I/€ÚÏ‚ú>üL›M.óh7*v4~"µ¥hð7mi ó?£Mõe7“Á/¨3çÞ_ÄÝ1³ÿp.ÈàEŽò,8ˆlyÜÑ(øÔžj›¨nÐ7ü§ç–¤D¼m•‚o`lÌ¡"¼‡K:Ù&#t¯‚[¨+Ee 7‚£IÝÞŸÄéi€¤Æ1Ý·6üXR|âwøŠ9t™&ÁkD”Ý<_Âéɬ'õ-?þ?á&óxÏêçéî â?RSU¨Ðð=“ÀÛÈ“ÞÒüQHºCAGôvÁƒ ‘ðõåJl8³í<üµ~æR÷m<.Ég€fÅáù&ÑQ+]¤ø#K bF”p§Ž”2PBéÎ Ž«‹¶\‰ !•Àïó—¬ô•qÆ dMø [Z>lûÑ#Þ!õõ‘Ô@ûk~ðGþè73PÿÐ3|Œ4ž¯ƒ™Âqdvéýù eðyø$ôYB©@?Soî%ÃÔõ¾ÑrñÂ{#õ6êû,õV{h~ü4>tB3¨…Ö¼Ÿ’Ú4¶À;þhà0¬eüp ¦jA¥ øc°VÖtú J“Sת_û´Á39^o£ñe1…á£pý§m"þþþXé 7Ý­ÿ¬›ß(#·15™·G£Ë Ù )uø£¢wÄ;£y½_´’$õVK*É5<÷ǬÙE±à!Ës»ÿ3óî¿z9U?Ø?x³òßæOŒãÜpBòïVþó_Íòuº?¸Ýp®ýì[ÕO_}§P~(ÚW6 õ2ÓÝKÎç’Ùm'˜£æ’kƒ=ùèã««q¹õ_Ì LTÛ®²yœ4î ÉKóÒ¬²i©œIúE;9œæüÁc L >-î <ÌaOOÖÑ#{Í–Æo·™ÏäúáõÄ]c.ÚÜðëC€³áC¶P5z|¸ þÁ÷(/mD¦Ÿ¾àýÇ-_e”e‚} S“WCs—¥ PHýÀùøí§ø¼—r÷§ù¹Ùä &â·%ÝÁ¸î…ß'Ó‘b rèäÌ|?[ ̸BàÆSeʇv]ÿ™X œÎs›‰£Fqú¯íu[üvzòSJO㌱y~`Eðl0ÇD_J#mžOîÿ¨ìô6?-ûO†Ú‚»W³%@ËEç´Ð1oy иû÷Núó '£}ö¸tØ'øc’/›k'@wâz's£¯©åZÜz~!e„Æ]«8>§'M†§k ÒŠj˜ÈnÐϺmíx* Å9™”/eS)>ÉÍ¥¬,‡æÝ!yäW”R²ˆ›ÂËe‡ogÑŸ3aœÝÒ=g#ùRr_ÄÛ…û¿ <¿J"y\•]R^oêQ¾É?ˆJo°B>·´ mšœÊQx÷ãgŸ“Ýo¨ X÷9eF¼æ|‡b¯æH#à}? á=¡Ž7~¡®´–k¨slø”çàš¾ì?Ÿæ¢©÷Q¼ÖE ¡K Ò)ž)ÝÀ<+¹€„ò&k ðÇýˆ{ 0+Žnû»»«öÞÕÁÝÝ}pww'8H·@pwwÏàîî0¸»3 >¸»}ëœ{ÿ“a†÷ËûÜ΃aŸêîªõ[«OWÕ>‰+ƒ$³&wDþ؇¼õ7k䧺gP­óVu{ÆC dïÂøÜ£z Ýà]ÒÓD7µeòQu³]âB£{_9*ÓL{sŒA¶…ü‰»°ËᙨwP½möZç4ö9ú|vIF>h]A¹lžAçwÊ=ñ5YÜqà»oe—$s{›Bb™äœ ì]|äOqu¼`ë—T³7ª+úN»ß‡ûë²4SRºu@³ŒàG$ðc®Yj¥žy&Så†Äp÷ñH“\<½ë úêu™óÓ¯A½p­=FMÖàHz#±îÐÆ”r¯›2JÖHl³ØT0Å‘?n€o}L6)ê®–W’üøHsÉÐN"ŒÇ‚\CoúƸû¯v`Nþénax÷²õ%‚·y«?aìmóìL7tm¸ý”‹ïgŽŒ ™Ð¿bôú»«ïqZÀÑ¡8ßÑ`ùŠŽ”Q„§s_®ÀÊûe7Î:#ßFÿ/DYt‰o:…öj;1eâ¸Ùh0ÙtQ—‡®^ ‘øÓh2Mløü;tZ»¤Ÿ‡7Nû¨ÐÞéÈjV­ñÉïÒ yª/ïR^Lª°"YΕãñ4#s6~ï~¯›®_W[j•PÓõd­îðrÑø§ÒH—y.ÜyC®Æ#(7~/91{¾³ŸŒŸð|Ò—Ú«×vÈ*÷œžÚ³B~BhÚøá{Ôþ2?Eþ()[¤‹Y'9å7Áÿ­âÖ ½ŽÛ þtäzÚW߃‡ø Ùj/@®XC—i§9Æãå½\„¿lÂËÎ)‘e§â’PçÈKý8›g=çó§81лŽÐG$šm\›ßRl™-‹?²A§À‘߀?ß¼ÐRšÉMï3½|™§AïW ¼±ÿG=ø•2|ÎÓÏÜw£ÖH©‹;PH>™É&‹¹~lÜF²˜õÜé¢oà•< ü¨ÅÏt» ZV={.YàÐkªÂ ÁôOÊæµT•º™Rf³„3«M7ÓG–Iüû(ßçðäôõTÿ³~âQû¨ó¹è#­¥’ÄÎk¤=ˆ‘ʬ–`yw®Ùk¢ºŽ9”Ô̬EþˆÏIÐÇ7àlÖS6]Hg6ÿü„z ‡£h9Ÿ‡oì*ÜÆàF9×¼”)f£™c¢˜ÆF›©Ò¹0¡Œ7Ñų&}¥£}ú1Õ¥¦Áø1NÓA·ápS‡´¯ÉîN3ñ¤³Ì—Œfih~u/ºáÝfn5“@›=’Ú¤“ІÑÏßèÃôY·áü³þ±vÿÎÞ®lÆÇ«®õ?äG2ûµØ™éäPuÕûwÛ34“Éiêìp:¬?TíšuWÝÒžçW1))-P»‹öû’ u]ísÞÛ¡í)ôíc‚b. ~”&ÏîÍÕõvЮâÂ;¤A6 €~WTa›99Ü>iGÕ/è1úBjA7©!÷‡fgÒ…Ý ¦D@ýŸõw…¡^b5W×%AŒþpÛÓ(2o§z¹ã þÎ0tVÁ·ôÔ{¿ÛÂ@«%òì|øì$\•Ò‚u5жå…/»¥¿@ùhºÅûîüó]N_Rpøýáœ& yÿ…Ö”‡+ŸÏ£¹¿„ ºFùÑÎ9ÈM5tûÌ7j%°×Ù1(3/…Òg-- @þ¨õàϨ:ã5Üí>0`=òÎï ½QºL¨d/a÷W¿@¯ ÏNÓè}^ô•Èœ‘7ÑaÕJYðæC½ë·O@;{RJ\Ç@Ý”f„ÂÉÈ3õZèéŒÅÐ_ÜÝîT‰gr#n-Y—w–—óNün^„¶ß6áÊvQ¯¾ê—¾ºòP<>Áuï‰V€Kî#ù?†A£|ÄŸkKnÙ€,— ú¼…{ðI^Á娭ö QïýX3µ¤4¨6‹A9^Ó&N/iåÏ—çлrf§¹Æ¸Žd™hae¾‹Ïöã œ‹rS|gÕ;±½+:ZœŒ©dš\Ækƒá̘™&©ëo>š‘ ÇùEq%d¨eüùkûÁA[G¨Úeë†z¬KPe¸Æ†tQ=r";;í÷ê”Þ¥Žª«ÎËäÜxõW§åpŸðâ­õ1MvaǦšÔK×Öwtv*¯b‡©âû£Nc0óê÷”šóJ~‡g>ÌŒ²L'ÕûÂôü*­:¨îêŠPé©pòËé%]7"¡¾ÍÍ(ÒxYº¬(îxí÷Ý>±:¸Ã¥æŠ|Œ²ã èØ\8ùЍx¿îiãü•ôw×ü:è ƒŸïkv‡VÐ+ÝRÓ勤ºTŠßÀí¦3 @!ÔžÅ-¥‹3¼³ÚHÐûB'£f®#©5ÄlȆÿ •Ðш¼D¾ŠvãŸ~4AçuÿÚªv3ÕžÞSV‡Ì·ßû¼©EFZò<Ñz­F©È² ­,Ïi hÐ\½‚ÛöM …s¬jŒÞJ± h­8 òÇl¸öH à“+pr^‹œéÅÛuJÁ³im¤Å´ ™¯>Ú!Ÿ_v†èöTRòa(d܉æÂ¿J9(“á 3Éu®%ee7Åø/ì]›ð8>¿ ÕÕ½Cœq*ç'JeçEH·À`zžQ²É%ð㦜Ýfîócn áeçÝožõrËœq¹_TÜå$¥_‘?ΊöÕå@J*»ež,ã¢ÒJÍ}iÄ$·¸†´“Wü 8³Õ7"M§o†x~U\gäb|÷¬Îfò>Y.õ‘ŽJÉG³Ì7å†ñÌgo%¹Íl|fïêR'ðWx)Å;‚ñc5ÅžI7è/~Šüè”Yl3ÆD3-d”Œ?·™¦RÓ0ÓÆ<à—Üw'&˜=s½þÇ»ùÙ—\”ÏA¡ Kc¤ïZàBgsÛä2Ûåò‹;ßø›pîCñ“{¦…é&G$*RcÜíÖÈËeuQ5ˆõìÊEŸK…^5‰5ÒX#ñq+›ñ OUä6àå“Ôô2dfI sÜ$“%&±Ì‚·¹ãÉnú|gƒ ^¸Óž¤Vëß?z¢ê-ÑTv]·„ô—’¹¨ªèÞr£¹ÅÜæ&|@’KjRIIœ~©OSBjSTÿØJÿÒaײÿÙÝí†Uå?Þÿ<³}ÅÎî´uÊ©ê²íÙWb·UØ)éŒqV;Ÿì?¸þÕë­züÑÄ»^øIã½ýÊÖz‡>¬¶ªWÎC;ñµszÕœ¯›Ðuè_3äèv ç¼CÝ ª’ƒ ¨ˆaª8Ð~c—Õáù9T®õE?¯‡›˜ªêmð7© xtÎûêðE½T::4ì\F=èøfºÅÛeÔ”£ü³¼4sMóFr…IT3êÅy3ï‘"KE^ìýÝV{0=¢|êr|>£ÇR^yo*È`ä*H3yÌA¨ô 9~43Wø<ðÎì âDàmzê?}ؾêÄSž u§–ÊèiÍ@𱿅ɂ»ðuS»sÌd®§²N®™:àÜ ‡^Ð?×gSHûãÇïöieQlôa_šÀ·t%Â]tk˜éàG"¨ûH3ËŒÅÿe,3¹ðgSHz˜Èâ‹1y÷âš~ŠÔ ê…ûí…jF¨Iz¦ïJnWÜZ2_|ñ§g™zf–{Úë6wÿ0å!˜ü(jbñ(2tzSÕó¼RoÿƸûoÊndÿ£›o¬ vØ\ø×GbûºÒéîdP)Ô-ïüÁ£V6'/ò‡¯Ûùøƒü°î¨÷º4®sDŒûÅê2tϾ¨6k?µYù;·~pžü`õ£o™®GÇ0ªkèÝ:–͹¯kѺ±~­sPÁ0æ¡¶8qõ+º ÕlOƒèýÎàm³é%ÐûýÔ™êÀïÎ×ñõµ: õÂuúM_Kó¼o¯–¡OtýIÉáÌKÓQia>†ùƒ¥À²åú£þL%ÑóÓÀé?Óyhü·gý«sp°»©,¼ÎBTŒøÝý£;IxTò - wz0Å}²òxÂùØ‚Ž]$$ ?BÛkREðã[ϯ­Ëv>q9ükvèék}Ül‹ mù1E¢žPéÏpéþ`Õ&¨íQ¤›´M§ õÉbC»9øqcrÃ]XP‘ÒS %Ƹz¯š¨÷<›ÛpZîq9•ºR :¢Ÿ¢O…–?ÖZéUÜAÏ÷}8 Îf4h„ñ̡ո&œc¤‡¼£#-,¡mHkè8~®§"çMˆzÇþºwý«õPµ¼pÒÝÀ×ÚÐË:’üåÊ)—¹®“ÜžSãgÎàªÄß%©öWë'Æsîè 8‡¼”ðYÞNnæhàÇAäOàGs8Õ˜ò€ãŠ%ãAÍ’üüØ„z9pæÑ=_T\åd€Ó9H„ü±•k#KÇÏŽ³¸0ôo¨‰ì>3Ž»JqG©.§¹!ƒûÐèÙ<~<øüåþQ>: ÊIŒ®:<’×Ñmž'3¥±ìæªrÎ<‡y*–»•ºHD³ ?3ü8Ìë¼û–Eþø‡{¬vö:I¡ø58?×C)–¼–žæ³Ô‘Ñ2ËT0çÅÇ1}ÍÙ Ìä«Ü“Wòîı8*Ÿ¶ÿù~ðÃ?n£Ç‘º´Zó&éhl·¸9)áLkœ­¯9l"¹Ÿe£<6¿˜.òL²áž´DëºózЧ‹èèAü¨iûÃñ%ñ|ŸJ9<üO=éì60ƒÍo&½ñ—A¸}MrÓÇ„3“¥<è™C¦™œ²‘>Ãsæ&ýžªQù ^¸Å¦6 ‰/¦>”©|€‰ žåöî?XÇŒ4Œ¯{Ïå–të¹nÖHaóx™‡Ñ'}ŒÂS9œsq–Ý"þíãƒõ³ýÏÓå¸6?ö^Ó?Gû¶ÉádWÔaïû»Û­¼N\§“³ÅIâ¼°NþPµ»àGx¨LÏÎâ4J-uNÛûícj™Þ©Ö¨ÛΩ|w‡zG•h:òÆ dFz½Žo§?2À[”Òþ:U Õå~}üe?´#êgP·¨èÙÿ£ÿA‘ÉG/‡Þì ¦Ðì4C§Ó'TXVpÔuXƒë^àÝOû´°2<ÿ|BŠÅŠ}h¯Ž„ž5^ûn ß[•) ÖÉŘ_Š«—™u9$ˆ¾ð®{¡Ê¹ÙõGâWòS„ïî™åçtAŸï õ»Fƒé Fr ÏÛSp¡8\µgîChk~TŒü‘MW±¿5ö“µÛ.Oñ¡÷¡óHè˜öÌ¿MMø5ç ü-¼Êyæ.cVÒV'Ô;SÀþYµÁUó<­Ê nò®U„^R4Ü¿U~õ„§qG.Â]h(ju‚9¡¯“BáÇ +…ê©'#ÍŒƒ®…C{FF‘GÆpidƒä`oF>í LZLShÎÁ³ÃÕ_*‰s3D½}N'ïþ牡[8#ŸÀço ŠàGÃOú™’Evr5)'‹¸ Ç…ƒ\Žœ¯ÒÑH=7ÄÇužêÄÔyhéÀõ¸!ø1ßÉD(=O-øâȲÇ%¡CMt÷ž±Ü©²ƒ[J} àß9øqüìÏûÑΪÆ_Ô+¦]öá£t‰Js3ðã/‚þCü8·<3cL6óN>ÁïäÞÃl‚ûèË¿zç.á(R‡oÛÿ|ƒÕÈWQù£ ÒÞ%Ý›>ð]iiÓX:åÍ)É•žjjÉ °x‰9À/5ò]8†XLlhZP½#öAGsö$è’’PC¤´_Ìqph‡\‘. Ç|ãg¢ºod·<0ÕÌP¹)Š#"DþÜO‘uZ]6ˆØûT8J€»;–&±gFj}Éâþl†›æàä.ùÃ\4 MjüýAHu³ÌdFFJ$ ÐW=oÃ×1¹õ ê…ÛìUjŽn‡×Çóf›>%ñÝ;`N_9'sM7\»ÅîméÈd?˜=RÅ„“\&2;¶QxÂ<ÜX‡eµ¤ûxnU ¶­ÿÿõKÈ>bÇv†8éU^uÁ®í?˜ÊIãttÖ;œpß\U/ôÃß:­<{5TG:KMSÀcölû–Ú¤÷«mê‘sÕÛÛ¶ÿžQiZƒ{½î©¢Þ¡3ÚÉPÖÜ:§¾£}¨f×ßmc?²#ë×P½G`E7Ú ~´$—²ê½H# Í)¡StV}K…eGûÎ*u_„7™îúêY =í%ÿïŽÜ‡h…ªãÂÀ[V!ðc†þ :¸š™ƒ>{æÌžõ%ö#)\¦rpöK¡ºQ¾;p§Ó’ž@GBÕ‡@;côÕƒŸÍC‘ïPÇŸÓYøôw])¿®fë›®$öj;¥âi WR'&]Òµ1bžÐŒ«xÔÊcóxØ@üîzd¤™tšVéô¡æRvgðã:89“rb­§žéé9½G¦¬r",æ?¡ÃÀÊñÔ’Ñyý^w õý«Va5ù#OåFÎw0γ«wýÄ¢\Ì8NÙ v[áè-.À+@û±4ÜBMT8çnˆzçVú/èvJ¤mœ›ÏEKAÙãÜZ ÉxüRPîr©"s¸2MFÞǃùÏ@ÞÊþQWu$ÛìËsñ“Ë Ô[Á˜ Ï\¹üÅ0"×9›¼Å½IÉ%ø ø±:ý)ªóå³ÏÅNzÐ~z]^\¥Ò|“¢s¤瓉fЉãÞ7áÝr’ÿ”zàG}ÎÆ#Ñ,àÞ¼òÐIUë‹zôOÈÇá5ƒ5è O‘¹ÒH¶r!¹a&šœ&Plwšìå’ÁlÕú¢äC¸¢±¥2ŸÑíƒj€‹G¨øáy²wJ7£ˆòFú›h¦Œ•¿À¨òÐøâÿgzŸ·â(ývå/ŽÆ¯è­þ'ûo³W:Ÿá›ãä }¯©fžB™§ƒ¼Mw¬9¼eã®<7Ì ¨ fK>ÆpïÞª :o?*ÛGÔ3Š2Ò:šÂ]t j/™Ýfˆ‘Þì³ÊT5iMcÞü)E‘Ž2ÈZ“ZV ¯>¥¢tT§æ¸Çÿ¯Þ{†šª[z=Nv¤“ÇRÃ}c Ë`9)-LwSÝ´pO¸Ý3&…I"Ì:Énâ!ƒ¤D²ÚK±Ð¯Šq–·=ÿíã£U6ØŠí7¬Jÿñú» ì'v|§Ÿ“KBþ¨ïåGÇÇiá¬v¢9­{:wÚº¨ ±,Ô°ÍU»œû¶¯}[­ÒÁ#Žÿ>¿š¥"quš­+’å‚Ê×±ì”Î#] ,É£uNð#l‰¦™}Ò6ÚaÏ›?MpÇOP[Ir̆üñ+òG3šï]?qyêµCy¾¿÷ÌŸXMžu«OÃI{öWÍ Ïï)ø­^¢o}·…§¬â¤hª&üɦÈ™ ­otšxögX½8OuiÍGÓªìß©¸Ú©O÷£8Ï¡¨ÔgW™2ó$žÂ1Á£qèõ‡ití%>£×5íoÍcŠc¯³ PA^ÿšú ühLµèuEîHH¹:ø±€N‚Í+Aº¸"»Àø¡®Œ\©$ÒZ8ž‚³Ür—¢* Û#ïú%›UIuŸ§sWÎ˽¡ñSàÝSÒ5ý =`v(üXheÃ^óŽŠ?­©'T§;W‚»K…«V€÷Àû¯‡Ö'åñ´˜–Ó2ï¼÷á*îWû:-t/Í ¹ úì+¸ÞÜkJaÙê]¿$?t¹‚T’ñ V 0é"åðÐh¡÷Õüó§ZÓ/ÈC«Øó–Õô’Í üØÆ“?.H}³Ó„—ËœQž#)äÆg¾á3|´É ~Äw|Qqãƒí¡pÛ8_¡d2A¦Ê/\Dz˜¹&²ëoØ](û¸¹Ô•ÊáœÃãoãѸ蜪bý’(œ‹Ðô²6¼ž^ò<ð¨)þ|q 0cáË_J,w øÑE"#l@–HGÇù%§’r|Y7 ªµÙj`¥OTƒ?Òï¸ò—ôpJ*®i=î+ýÁÞÆf¿$1oÌ ï~¶ý‘?öóSé‹ åøü–^hß zG‘?Rr)¾ƒñ•KŠQòå÷œÑ<6%@ŠÍÈ áÜæ ò›‹rÕÔ3ƒÈq‘|ºó œÍ9 ¯éÁÖ/Ù§ë¸àÇtÂÓ…©«äs‹˜!¦>¨á'×ÌHSÒ”FŠÓf8rB}SV6-3(:8žj®lýÄö5Sw€{¯è¯£˜"nD·°´—-hÛtÓÅtro¸%Ü+&r‡í.&Šüf w£È´™¢Ã½åäÂÿ'ϯ»h°Vÿ˜Qìëv\g´“]•PWmÏêÎ{­N~§›³Ô‰â¼¶ÎýPµÛÿ»~b¤³2´TÝp>Û{ìëê”Þ¤v«ç–ý½™ _³Õ#ÔY¨kÒq¨gU}RZÚy¡ËPW_GhÆùƒÝìÛögŽ?qsjC±;S\J®wШXCä¥_i¦Ž Ï†iÿON€z­†fzö”]~\‚'7pÀð¿Áì´CÇ ´aÚ?êŽU‹l¢_ë܉#e¦Èãh8âkèm©øòÇ4üW^Š£Š§â §Ñêë6•RrTŒÈcx§áøµËtªQï‚$­¨¤þÍÞûZï­-vϳ/0ÈóþîgÜ…šÐüsàÇŠJC¹.+^{Á»ÿà1š€ë¹^çT¡Í’¯d7UMÈæx<mZ‡$P€ŠS zF‘¸õƒ‹y=öÌ÷¬_2 ¤AÇô]—Ö…:ÿ¼òÇ|ÊÄóá8Sñ#êG?ãï‚pµå0:_áZµF~‘@.GßÇ2·„Üq²˜ûJT³÷r+Ü›½`á|bu¾÷Eþ(~<§VìaHV¾¢[€nÆŒ0qLW"ý̯&@R›{ø•î²K&™©f;®ó´0± BKSðOôÏûWÛìÎø¦­¸Wé¥üè΀ürÃ40ódŸüR.6‡ ¹Êl“ë¦ñ̨IÅq‘µ.‚!ÇÀ4:E?Ú#DDŸóÁhÈwõÔYjº¥3ú™‚æ­Üÿ4• üϤ·¤GÒÉR“Kæ¡g¾AöÞ­?ÓïÔ*ØûW•¯n 3ˆ2ÓUÛv¯›,Ò¾ %Îqéà^qs¸qÝ’Æ–ÈîRIïýþ#w§—qp•*q}àãî¿y<°J{“é’U!ØÛX?v$²Ùq?|TõÆþU6ZEœ’Îg«Áyoý¡j'­KÞçWõ@×Ú´Q]vÈ9bû«£ú”Úª;~pÇÅê'®„qYn·5Ôõ[+²óI× ò:>¢‹Sã0Îh¿²#iÏú¸Ÿáÿ„Úµ„?‡ªêupè~p­ÉÀ_Q?SaYÑ,Šº£nèòÉcàºç£ê9ª‰ž&pQ(?‡»>ƒü‘ ¾ùôw[xÕj%ž møòÖ¼–AíoéúЮI”žábü¡ðö•)–úÞûWœ:àÇ0ê ¥ìG¯ug¤ÿ‚`Ð0ž ×úˆ<ûpïóî*òÖ»ÿ`)Ýê›ë'æ°7ØY(w¿Ž¤`m Þ~—G…žOOòÈè<´Ú³ ïjêC»i›N­L(­ÌoQÍàRñÊŸ[]( 2}µëBCTVõ™q/øÎnÈ^“q-Òq}ïë·¯²ª¨‰zyVóèÈÉøÍÅõéMÉp¦µ?ž ¥?V#Ax4××ûþ®g’U4R9_å«Nm=ý /À1ÎÏžw-¶ƒ²{¸¸±Wæ˜3ø·?——ª2úŒ9Ï:~ä¦Ñzfˆ3Žé<Ð?Q *ʓٟŸð"ò§åQ¢ËRž*we¿4ö( å\N¦p6ä.ø±÷)îwTŒžàõV;YÁÇ-è%Yx —g☲A–Ë_È ƒ¼ù㘹l|‘zI©§÷~òäÎÝÈ´T½/êÕÐq¸°7Tçvø‰žæÙYVsñ¬ ›Ò\——f)ZÛAšuHHƒ¹ïG ý9³Tæ‹Á¾ÿXc5¶'#wµk€¬§t+Š,‘L_É _ˆ$²O™Óf€ùKÉ03Ù¬äPú¥È2üûÓ¿Ó ‚ê]°9‘áƒE¥0•¤vœ]’q1+å˜ 51ÝY¨–ÐÕæ€œñòã™ÄÄ'w«=kï'ÒÉtŽ ~´¶×¨ðHºeЯFó}]›Kv7¿™mú›ÊæÌ"ÓÑdAêz+Ý¥”ñ3%d±‰% È3¦³#Gã*Ô(Øó«^j„Ô.ñŽaÊ»‡L ñ| SÒì?ª $vS¸åL4\Åõ𠉥ù ÷½*åÃÙUÔßZ7è¿zØíöÀ¾hÕøçŸG·ïÙÑœùN2UZ²F•uVa§”ÓÌYïDuœÜÿc‡µGÙ |ŠEõi‘zäXÎy;J»LPœW?øžñõJ5J×Bj†üqI_¶â;Wu1Š¡sêµ: òGØÞ¿jnß·ß+Ïú"‘¸&òÇjÁ"øèЛ« g½ˆ©:½¾¦õY]PÏtry2Tnôï,’A$~F÷©%Ň’†î%@ª†çWç?£ŸÀãÔáàGò<¥ë o“ya/ñ‚BÑ*Mæ»ï_mp~§—ðïƒhj\Ó£áÊS<þ›{pZ´q ´þ8í§Ì¨=>7§®iË=³æÚy=+JagG"²È³TeTÊ/q΃ <.hp–®ÁÛ/¥yŸ›‘ó* ¥•9í Ê3ûFñ\v3òJCp)>½Eë†Ñ•_=…âyv/ï‡ü´üH owWWuÿÚ¥VUÕ_ϤÔ< :¤8–JðH®À±ù#ˆ– ntÃõCŸ¦ƒsÀÀ¥ž=‡9BÔ p†è^¸ö™ð'ü æ—‘?V"=ìâV’Î|¥9'åäW“œPûHQEÀfÈ ý?†~50¹óZÇïOÅCÁ˜[à×ÚÊI% ýy' )ŸÌ{d˜Üb¡b΄´°¿/çô¬ æl ñþnfxŸP鏸©ÖHd¡L!È =àœ“º×L2×-ì ~\åÒœšW‚„3p}N G^TÍC<¿Š ý¬Çíy==àþ²DÚÈC.'÷M7“ü4C¸šJ³–7¡]µA£ÓH4>R—é^AµvZE?ùä ý –ŸÖÓ(¾¼‘á†ÁáÒÔ41§$®Ùºž7m;Aa×!m  cH/Î…¶†£æŸûÙ+X`ønŒ¯,’‹2¢§}àîæihf‚™Œë.4GL÷½,“¨ÚE”‰Œ*}A¸v|ƒëx:g?*Ÿt$‰YÔŸ/ërä+YÝlfŠ™hŠ™³rÛä1˜L¸Š·¥ƒä6sLl™abÈl¸ÁK{»õ#ªlþù{¢š©{ÐDïJ Gub3Ú}n²Ë(9)…ÁÆ¡&»{ÍMâuëšÏüÀüÏó«jÆðTRpoLÁîªúÇöß9^X僽±{Ùªf‡Í…‡rضv&#”W§íÖ¶gý«bN1§¡ãçDC¾ø¡b;¬õÊá³Ò+‡†«KÎ'{Ÿ}IÕsÕMuÅyþƒë·PÏ©|]^Z&5Òôg+¨³Ñ}•QoÒÙ©´J¦Šýí+ögõ®ÙpcjNÇàfºQlJ¯ÏSO: U¾†”3@Ç×*,3BŸ9‡Ôuª·š°š,8ð¢ v š™ïáÿü´EѨ›>úÝž´ Ñp-ds>LО[H7½‘Ž3ðSœ}rÞCÅfAk]õ½§€‹*tùcFÿ~¢ûP:ªF)¼ßLgBZ˜K·é‚2ž£.”‡òêÒö·¾ézjͳc‚4« «éiøñ\×oïQwp#/ã_À‘MpÖ–æÃ]5ö쳫S¨Ð2qV»†ª ^?sÓzÔôÊ‹”ö ×n(S¥Ô[^Îm؇‡zóGsô¦@ýH7 õûóUV%5ZO¤øU8%®ÔPª”VœGá:Ææä¼Ú}ê¹”#qb^N é<ß´ *œs'D½ÓÎý7•¥Øðÿ‹<{èQ°¶8{öÏ(›¡'§$òǯRJæq#ŽŠŸYÅ\Åù8uÖ Cœqlç‘NGu¶z÷`Ÿƒþ·’h²WÉm9-iÍ+ólÉ€LÒ-LÿÞÈÓáŸÓcÅû ^o‹“üØM‘JçóÏ|ya¼Tç’ò§™eb»÷ §ÃEI]).7R¢ãÜ/±gæ†ê]±m^í‚Ô;pïrq}ÞD—xŽ ’zrŒ3‰q›lÆ_n™ÎhoWI`V iþŠëº‚w ¢4⳺EP­EP¡ô„ª 7ü‚uI£g¼IZ˜h¦¯Ì/ª›ý’ ºÜÉLAjêkÚ›þ`{žf¶æ¸È‹ h|P½öç-eaܳ̒‘RÀ¯¼æaæ¸I‚¤ÑKf#l2MT7‚Ù õ¯eڃǑ8)Xî¶_¢TÚ'?ªØgAéS LäMº$òGA·(VÃä0©ÍEsYºe~7OpM“™?ÁŽ®ø{#Eàûè£~ú-<Ø?óÏwÛ}ÔrÝ—|Ñ›jáwý%“k¹Ù¤¿¬}¶™Á ù]÷®ñqÛ˜rÔÌ•JFkâ{ùqã½ åZÿ'ó#Û¹í¾C=gýl‡¶×BXŽ8ö]û¹½Ô‰¡j©í^~Ì´28ùÁEŽr>Y?FÇ7–¯º¥S!}\Õ©™:àlµÛWÔmí«vª£;?öžØ`u*3\g%Ïêá©ôiícqNé\tKÅÐûuR*û]-ýŸ£½}ýg+yVPlDÀ{·âÞ”Åý,ÛAnª ékaZ¿ä•sR½AþxŽ–Í¡iÈ!' „é B›~âã¨}D£“Po½ê»-|dÅGŸZ¦#`ü•àm”Ô³?“®'=†<;@¯£X¼ *ÛIMŸœïÍ?_åÔ¥›hGo¤ŒÎ`yoÅH<¾,#Æ÷<º‚ž¡ÄhgoJEyt]{ç7j±=×¶=+šãü²gíé{º"<×Ìg1r&ÀùGB:º_<DèIM<«¤ëB¡®ß^Än¯~¥ øüñp‚‡Áš [QTû‰ÇR•IBëÚBG#KL¤öøÌ“ú²þéìëjÛ¬2j¤„4Ó¾8.Æùh¨u/*‰üQn>7¤¬|”WCï\¨ýÔàM(Õ¨š²œg!êíuèÁø½„àÇ`.Å·¥íTpiÉ!e´Y/àÆ €&¾H8ž÷¯6BU7@¥sS;½4ÄGqžéLÔ v~f¸}ùã ¿õ<£=öK sÛ\᳜V>‚A9‘gü Îk¸&§F>3Ηk§­w²‚àûéàqÜ€_ÑKž,S¥§–~f€1îsÅô”Ÿ¤‘T—›¸Šép{xè|ôü؃TðœvywñþoÝ£è$Ú} ùC¨‚žóÝÚv%z­€7žý?Áí¥ûº úæ,*ÃèôÛ³F×(L²T†ïTœê4A‹ƒ § ¦tGŒ›¨<‡±gÏó‰ Ç¨FZ¸´ATœbëòßÜé%‘½Å¶ ¨s¨e¤á¨v]7#®P'~vNß3¼ß›g–xߌ펚~„öüªŠý—jK+q&Â{f^ÖCÂHçQ8ò¨*ê1ÔiäNÈã©-Å ýú®þ9îëjk¬Òj^NïhÜx&¾snŠO/þܘ“ñA,¶wEÛ]ì +lB>êñ>= ú`‡Üÿü°3H·§ªHjk½«÷žAVÙDUy7·”‚â~l•Tr‹BÁ‰'âøÐúލ?’‹P³¯òG"ïþ¡‚C½ë_ýMÏh9Ç”÷¼——ÈY&qÌis—orAäœÌ:ÁÛx2Wæ ¸ÚÑœõ_TÜédA":{›‰ÿFb€É@*MÁ·ÞçWWM ™(ᤳԖ˸ŠIÀ™@ ŠlB~ݧš}Q/‡Nݾ¯Q“›"¡\f_é"õe<Ç‘‡f \¹¿l7Ë  ?!´áæPæÍ8—yøä¢qi¨ïï–@þX@6àß@F?j"a‡ãn¢øÓT0ò4h°‚ Z¿Þs6jŽ?j+Ï÷{_Ö;âôÒq£C!g»_ ¿ õ`šIQðc¶Ù,©‘?JK%ù›«sJΊ+úªOá*Ô嫤™ÉyLÙž’¢}ƒø£ë´†“H:9Á3åŠì–ôæ:<ëM$GFqøö‹¼Šçp7ð¨8%ù*$§®à´ÖNãü¢Êx™"mÑ¢¦¿Iî>5 Ýs¢¥RÄ=ÎÂMãÃø{ \o}2ºÝõ iÏ|‰cžLÎ-ymâÒS~•œü˜l²›krË\‘WÜA™Ñ\þùá™IY~出[P­UVS» üO¾L¿p Þ£{ÒC>Ü¡L}é* ðëáÁ™¡¦—Lö>ÏzŹî¶#Ý9!F½ž_±/9ѹ42à2Ê%©1ºZðîgüMQ³ZŽÉ¯&µ;Ï5áÜϲMb¹Å̲Kƒ\À󶼚JèÊ:M?²ÙgÕ3ð£$M£|¨“¤t³€’LRóAêâ|—ƒAFILd¹»ÜÑÄÍĸÎ)àwS#êÔ Ù3Ô*¸™pi5è¨>#Üc&ŸLqRíJ~\sùµ‘q É3sBÒ˜‡\ÎÄå¥þÕPgœqýc;dü;‡±›qþÒ*f‡mÚ¯øÐUg‚“CåWíj¶gL¦Fþèålu";¯­Ã?Tí“åyª“ƒÒRŠ‚ü±æ¬}]íÑÛÔuϹþƒßÓôV7À¢±àÇäÒz¶Žbçržë²”Oç‡:§ JaœÞÇ~dGÒ7è=¦ß¨!ݢ߹îc}š¼Ù!µ¤©:—^§Ö„¡^2µE]ÑÕá'‡A‹gÑ'(gE¨â;èjŠÂϽïd|Ò ©CòÇ-«}Ö¾Ú…ê×甄 ÑUïüñÐÂhuVø©Ò´ˆþ†Ö~r¾·ÛË4§4¡+”ò ÒÕsÝ…"{çèÎYø.ùÂÓíÇOà@¸üJ”RWþæ›O¬£v|þ,äÏŠ*OõY\ÿjôšº±æÜ4úiñvºˆäµénÍAªØ S«»3yŽjv Õ›vñXÊŒ»º˜ªàºe §”„{QUY}‚zöãÜN{õAË=û×6¡¡¡îÿQIÑ“Pͳ bz$« ÞÕ²BK±¿-òñU^É~ GxÉ©¸C1â;€¶ó)D½#Î|=žÊS¸û1ìysº5|¯gý«RXöË03[ÂËan Ud2”4-h¼üôÃu-M¿úþ<ƒsWÇ .”Éo:ç è!¼ïênçòBÖKUsÄh¹Íy%žŒæ¤¨wŸ@Ÿ[#ä¦X!æîqÒ‚FIƒmS¸ ¿ x²RÊ@®ïžÜ½kÞ #pu©#8?ˆ4”x>>}úÔ5Õí‹z%µç„»> /ÜŒ·ÑMž*m¤•,äòzZÂ<“sf˜âþPþéP忸 òÜJ(t©ÌûôРZ—¬¿ìñp%­@í: õÝŒâ‹cZ𦤴“Þ¦ ø‘Ñ„ÏoOŠúø*îåO¸†I<ïBë¥AõŽÚþN"®Ëwh —¸ðëÕà ™×¦2ê<ðìhú˜È 7d¼@º9"$*'«÷rÞ@Yu9ý9è|ë ¼×)‘êæ£çžÕUi´¤rËšy¦ƒ!3ùh‘éj¢›Jæ ]5³ª?ÁD—5pábOê'ôG°÷wÙ«Õ ýÛÿ®ñy]³)áÆpKH7¹$›À¤f{ÕÍ䊛ÞD“Ïf7²G:Ée`$EÅXIN Á÷ªúÇvÿwŽV“`;F]³ÊÙQþã÷¯ŽÙ)œINa/?Rѽâ»-ü³4ÅB ÇC¨•*§Œ,€æ•翼ÆŸÔŠÚí_W[nåS“µç ý1\Ÿ#€ÚÑŒPvîÁ•¡Ûhþû"ó!Ž /þ7jÎÁY‰ŽRÚ ùüê”3SO¤üûãT¤³®´Êñ®+ùå°L1‡%‰xv“ª-ó ¦)ñ)y0ûCQ«Rïæ¦r|O#Š43[‹ó\ÄŸ9’ ‰‚¦”2ËàÂoòÏQp&(þ>ÏáÊKƒ×1C¬_²×‰»µ.%o㢞wŒÀ%Ò‚ K_3Çdt_Á7ÏDº©,õä½÷ý«ÞÙ)Cx'e¥ªÓõ|t ÎÆ‡ÁfÜýîRÑDùMvsCyîþÊÜ_Vy÷¯]Ã3¸'ܽ®Çj/y½îTk·ÕÁ ~üÉO©øï§ËP$‰d:›È¦¹ A>*kH>s×Ì0¿È e†?ä^¼…YZ‚ï¹Ø_OªwÚ~ä$ç*p&“¨”$‡#MË$©ÀZ ÅEœïS3Úl3QܧÈOMi³w(5§B_ØÃmÀþ:~t¾µíõ4/…;“éÔFʹé@ È;e‘Ye›Ì¨þYºÈñ5ÏxI ‹1ªo"yŸÖû=;ËõÂÃöµÊäÙ#49~×6…\Ë-%Ýå´T7]Lm3Þ}ä¦wO"/¥ºî‰fÂK6 .&aTúƒãqe–Õ’þí#œÝÆþç½#ÏûWÿéú‰IìCvlgŒ“_åV/½üXctŠ;ÍN<ø³o­ŠúqÎ:¤îê¬èù ¡€{‘8Œ³ü¸ª«ê•£œ{Ïxšr0ŽÂ‰ï¢ÆT[oÑ‚´ô@WÃX ïëJôs×/i_µÃëWpÍo¨2\íªÇÝÐÊtzTöüÅÝVë|úªúÖNàÁ¤j½ú¤kyŸ_yv•xA‡©.…LjF²¡¨üŠ2Ñ^—Ñ`½î»- ´Ú#%,B^ÑÞõKR¯1þ†Â/çAï=ì©Q<™‹–ºß]ÿê3dKÁÝiô@÷…Cª€VÍåQœ—_#׬£8ë¢ð‰‹ÑÿKèâöñoÔzg½µkS*^äŸ~þ­¾êåÇ9jÏ(€sµxXpì8‚¬D"[¬3+;”VV´kªæèYqþz'´<7Î+òÛ{°©¿j ~¬FzÈËâÿ'#¥‡=OÌÖ†ÂéVe5R/‚Þ…®¥i'€“=©ülAÎÊÀÉPø­ø+#{öà]@+ Ëh&ÍU¾Ú?ê 3DÏrñ>ü‰"|‹šØ…~—ôrT昃’BÎs © ʵãX\n|(Ȱ®¤ÓWûŸ§tžè¨¸òÙ ¼‡ù,œçuZµŒ#‹y‚¼„_®`–‚¯à÷Ë´±$_ïV Ï”£š”Îùrïã-NôÖMdqq®œ~8™$c¥=—’~fšIê˜èî ÙÁ奅Ü@µ,Hs< ùãU¥«êËçWÙuZë KiÜ{šçÊpé$÷¸¸Ü0³LsK"»£d”§2GsGnÀ»ù(ZW~åºUP­MVGðãyÞ*®ŽpY·¡ˆòD<ïĶ–2¹a—¤6/ÍxS­î ~¬Û‚EI¤ GA9¯»ÕÛcû9±Á”KèO¹$ ú}d3×¼0 g•®vÆq—™M棹/'å¦ùÙðª„㨸÷¹Î*.¦ßoMûòGRø•e´‚wêâÔS2 ,0ƒÐÂëÈY#L)s¨y!Úp²ËÄ”A‘?ÂlÔ÷©#µ 6ÿ|"¼KYø‹ȼ+õ5)à>3¥¥²Q'¤¬6f†K?eůe3,‘ÜKÇ¼á‚Æ³éG½#²1sG½õãî¿y<·:Ûñã¸UÝÎüò#¡}ÊÎâtsŠ«Šê†ÝÄ»~IV§’ÓÚ9éDAþø±çW­[êÎLµ):ýJËÕ-ç­ÝßöWz»º©n:o~pþ`Gõ‰êáÞTÁ˜éFeôCÛ¾n_€ïo©ëè{øw›0òc¢}ÑŽ¨cÀYpŠ­á¸šòPø†ôPŸft‰$<î,J?Ó÷1Ôu}ð=ø±ªzüAÍO‰Hïô™¢q:¬5|˽æ»-ÿ7w \¨…3Î ¿]Ñó.,í&(·gÿópÐ'_iÎaÚ8M½³C®¿»Î鯇¡f…­€²zÞaÛHx?ד,rJ曣’Y.sU©#ãq§bƒQ‡‘uñ2ÎI]ôÐg,Î+íÒ/”W~?ßã%tŸæsbù UŸ.å„T2ÏÌ'>ÎEÉ(öád|—·óïú‰Õ)iˆýkÿv2"‡o…ÊæåÇuŠ"£dÔçÒÒL5IÜ+&¦;-¬"Uå&—C½)À“‘vPE:âùUV€s"9ûQyðcC«†K3äÜrÇümò›CòÌLî.bæñHd­Î|ÙÀQ¥è±Aµ–ZõìÉðS­p: í­Óm)®Y;Ï4/@ ³Gb™uf ÍPic†™Mü)n#ˆÚù#>¿Õƒƒê¶9‘ÆŸ!+dߟqWj˜'¦µ™~´5âN3GÀ»²U7µùù#˜ÞÞ»ÔYJ¦ËèxAß±÷«@ýúÛtZÃguj$Y‘?¦˜é&jœ4å‘D™IÈ\ %·‰n¢H3ãÊRRü.g~wöþÕLµ^7ÄXêMyáŸHE÷­É'Så¡Ôåz™eîWÜ"nZM’¹Ç%ÙÃ%L FŒ±…~Kª«Ã²Ú÷¿}|°š{~uǪd‡í-¤¯öa;¥3Ä© J«KÞùƒ¾V '£wýݘÎKËÿ‡ªíµöâ壸Û9h¦Úåì²ÛÙ~j›Þ«N¨ÛÎK;´5-¾} P/¨ÍÑ…¡V%(·> ³Øì\Ô¨­®ªï ”PaK4ƒísvBíòUïúê gÿÁ]ÐÊ”zý…4Y=d ­ÒÙôµ0åwŽ/ÜL~ŠO¹Jw)G¼+¶„:¾‡:Ó†ÊÐÄ0ìÿqÑ*KÒOL ÜŽ?›ªY’úÂÛ”à‡ÐÛ<|šòÓpòÅu°U±ïT\çô¢·ðïpž³è½îE©¡±áõ:CQiHt ×4;X2©¼–®ôÍï?á´ “0J2@y]ºˆüñòG d¢Ÿ¨×äǨçÙ‘ÊÿöÌç_‡{VN…üvÁsµË«Ît wa$e¥}ð‚¥àÞ’Ós¤£nT^%Po½o‡fá^4ÙéOŠC‡ô]Ýœ6‡š? ©Iz!Îl8×Þ‚8Õ1žsò,®|w#Ôn%.çà©H^óqU–á Pì×!êmtúêÁP˜hàÍ>¸÷wà×z*F“¬²^šs’K®q-ùY<ó>’@rüô,®Eõ˜÷Åqžê”HÎÉA°U|†'ÐcÚÈä/çòBŽKðã5G.y„l˜‰³!B^èÏÑ#•óåÞc3ÌÔjï™ÿ±Iõ5…‡^Í“:Èàçù§Mrw¸¼á_¤¹<àÂ8ë‰üÐC+^üxSõù¢^&ŠÓ ÅÜ¢܆ÑÞïÝy#ø1Ç4'd¿™!o¹8àÇßü¨yŠ¿ãƒ‡‚éý ëw{îkw~Iu8þhŠ!—¥·‰fš •]M1ïþç‹L?3\úI3ÑCþð<¿鉻oê‰AõÖÛÛh\ `啜Hõù÷1Ÿ@µå2YF˜ŸÜÁæ6(òXÖÉ=Óבû’’#âLvs_¤ ]YÇ âGEû ´‰Ñ‡ÇÐtžÑÕDrºÅÍXSÀ¤7qÌzÎ 6o¤ƒ¹$c$•±Ýp²Æ„—™ôgU£Yqõ`ùc…=K-ÓMi uWè‡âã¾?ZàOû˜ðn;Óнî>4™Ü*&¯wýÄÏð ELDžCoô-Œ£ÆðrµtXvú·ÏÖÁv?nåýÁu ÿ9"Ú~vbð£*£NØ Ê.+“Áéíìqâ:Ïpýö£Ö~õªZœlŒÂyj-úÿÜ·z‹:©ž8‘ËÕ#°hîõª­?¦ Ø?9{ñÿá-uªøÝg9ÿst²ÚѵgØÔ™:Ñú{Rl*¦¯COöRAʪLÒ…õy–o´lõ7øQÎw0­…ßD†)‚üq•¡yQà}3ÒýXç ña˜ÿqĪEz޾­ââ¼~¼=5}‘?²A7Sø©´4ºWˆb|÷³9NM´e”ôöê ~”§L<–GprðòÃ3&-ŸG~ªNôÏöµoÔz`m°}(¼{aTK¯‘?JÁå?£Ž¬9þÙœßÐvðä,RgE«I´”|uÚ»ÚÕì¿TGäŽ(<„ÒÐA¨¹ç]åÔào|žBÕT\õˆ—‚ryy€wÿÚ!”ˆ®x¿?_ ?†Y™?f‘?ÓNú%ÛÏ8£ìËå¹ 4d‘w/Á%ðÌ)À¤5¸Ó<û¼Pj¥Œ2!íõîÿ‘›’!}¬â|üµ–Re¸íFRP®Éü‘ n£´ÉcŽüÇ"_7žÛÍã~ã¾üÂúQû}þ§Ê¥±‡-¥ Éf±»ÝiæÜ‚ÿXa¶˜«î…/|NÓÔܦRdK?rR{Ðæq^:m ø4ö1´]aº“/­N¼Àóó;ÔŽãý…›ŽrÂôŪÏEqü¹òlV»ËŒø|8ß[w¢¹„÷Ÿ0›Ôz<ÎMé"cŠ”º9&%§~våg[xÜ׌»È¾¶ÊUyÜG>ºcËR°¸<ßb¤ãcPêƒi"\–?»ýé%ÜK'°Ùxzl;€)KR.îݘ‚èð ´ ~Á_!iÕ‹Vs>¥";sœØ”Ÿ'bç%¤¡d踭…>Þ¥—SP?®ÉOh#] ÔªZA“ÑÊÕ´ÚV3!ߎõ_y_L+xŸXPa©Èç½0ÔÛ×¹´<ššæ/æVü-÷¢îˆÕ’?nغ½5ÂWÐ ¶S0ÞÃùNÅ'á/* ×©¡à C»Þ¤ÝpnG€µ{9en ×Ì,šqìaÞ8![¸Äíbgãð8†Ì_ÀaEx×ì“zI¾’=ÜL*Ë$ø¨œ¼Ð›w€™+R_Û'D¼¨îë«eäñ¼‘ï£ÏWh4'—x²—ÈeD¬¼Æw¸ªDaøÄâà’ÃýœcÉ=õ^ÄénjˆÕð|¾ ù˜Ë0™* ¹¬ü¥Ó4ŸwN­×K®Ã4”cðd_ó_üü1–× _LƒçÏ“@†û+Áíxmä1Ò_~”¡œUéM¯GÁ#Ar†[ù§ÁÇuãFhßRÞÏP üÑ*8Ö ß/Îb2ÜëÕÿfóRÌÙ[¾ßñLÊÉÏÀûŠºE’èn v !õ9øã"n£þ‰ù‰Âßy~~Ì9èÆ€py& ”;á·V×+sI:i,o¸žÑØÞ[Ù,´²¶”c›ã¡Ç»Á!{éµ)ióóG>g§¹b¿¦ÌXÓø´ÍNµ%«—O'k9M©Oe”®Ñ_êkŒinøœW|\ãÈŸ¤ü¿µÃÆç†4"x.t–šqögh¦N”7à?*yû5£,IR \”QxgàHÒ{5õ‰ë•Û]JèW¼œ^ÛkþEœŸ+ÿWò·?‡WŒ¼ŽújýÛõkÓ:Wœn/÷[“×ìÔÿ˜äËåfr‡¸§Ý(î-¬Š/¹þñ=€*/þˆrÞ¬u¯}^À7ž6gÍK÷…“ç‹Ú9Ò(7€‚¯ …T…üO¸’¢Ê~¹)ÚgÏÜoq»Ñ[¸®ðsé‚í†ù¨=GrA~ä¾Jy9 0õ7ªlë2ÿUDg³“ŠÝKaŒ&cíÇ®ñóGOìùÌ4k±—ÀÝ‹ì¥íð6»h¹­üÑûWùÖ¦ÝâO€ëØKë©,eG¼".¦ SÕXY D®ÀÝ©#ø³G —Á3Û”¶~„?føŠ™v¼ËdnÌéàÆ%û€‹†skŒdpq.>ÅkÁq€¥S៦ák?-§)&œòþÕ1·¿íqOŽ‘ZÉ¥øµ§ET™Or[)-‡e–n•$@ÓºRC¦@‰Ççj`§q|…Wq'mg„˜—Ø®C‘©øclàùÇ ¬¾ þJ"É-÷dTÐzÌRJ<ωà>ïðAÄÏ¥ü»È=ò^ĵnnªþxV\Äu ôÊRY ¿Uºê8Mé½… þh(Õå&׿ñôe émˆü%ÁÙÀ~×Ðs¸ƒÉx…u\LÎè<Í®·åNàü௒V§`õ ·ŸÇå„ÒœoØvÁ±øZ:s± ~á+ÔÊb6œ\L¹Þˆ¤õå/™ª5ô!¢Óú—Œ”.ÚZñCî÷–DúÂDãëv@p¼ƒÎa7>7‡Ï£z’+øO8•fúPK€?îI3èý1ºÃŸ³EVŠõZë$°J2¨ˆ¿à6»c%±Õm‚`þ¨çì6á°æ2bþÇó [Ž&J/³ö×úšý«‹uŠÆÐ_ô±t”‚ZZSHU ‚ÿxˆß:g#s-êþNý¨ñf¸mƒ½ù´çV{\ò‚-ŠJ?™%YuøÌÏŽ—Ék¥‰%š7]¢kd0K$î u}†¢Q9NÊìæOì»ÿäõÒWó7vÏùj;)þMþøÊÙ þèäæ09Ì®€ÿXçËáær»» \v}ΗÝ;å;hNØòP´ (-m5G\u;ÏÍi»ÊÌ3wݳ_˜çq¸yNÕi0üÇZèçÒÖGÑäîA|B[[¾´¹¨¾ ݉ÄŽçƶÂþú²- ÌÏPÿèÓž!0¬Ͱ¥ì1šŒ˜Æl„.”î µ=ë†ôÐ¥ÚMáÏùMRè }É5‘¬¢0|›²À§çlÔ;xÎu&š‰öO¬Ðß)"-µ£õo”L“Òàµú:Ü»ì…÷Êz4©ÄôI8½Ï5ÖyxºAI°*¾á 64ÙZÿ¯¯çpуWÂ_yç«ûþÕ-Ççþî6ÍÁ@þ’I¾Bn*0JÎ}ù…þc‰o¡¹c«ú3AÙïh®Ùì>q87Ì1»þã®»ßù\å¼÷¯N&—Á¾¬ÿQŽÒÛ§Và—žÙZTÎf²wlNªJÿ1Æ9í¼4€x}±c~æÎàWf7æ, ýB ml{ÒÌø|8_ ³Í÷¶Ý·TSoê =8þ£'VxvJŒèÏIø Í ¿¡›àjÎqËÒO¶ª²ßÿ^ÉœÉN%*Á3©¥¦©†6ÚzÔ”ÎSGŽÎ1h%vë%pòZ8Š3àã4Çæ0á>ÒÊ NSŸ^QžNQé X¬(•Á®~H±ym6ÑM™ÇÀþwÒOÌmC:ýÑûWyÌH» ~o4ÿ­ýúCô¢ìÐûßqqNÃó±K÷ÂMœƒ¶÷û9`Î)à¸e4ÖÖ÷û×5·‡—‘·í‹ò-jÆ.Í'¸…T32_·KT¹€¿}/@xŽϳ Z÷ª"M·CôXݧÖ_É 7χbÃ1:ÓØ“²‰'ËkÙ »[“ï¿•gp]I97GÿûÆ8 ¼ëÞ{/âR7ú·• gçÝÜý$£d˜´ã\ò70™÷L_éJ¹ÊEåg¹Ëµ92O T› &­CGMË÷â•‚¢ªÂ{1UmãÅ2NjÁË#ø™ìzBƒ3×ñ(‰¨cyÿ µ° ã±’c œ†í뜯®D·åKp3Ñø„E·yxµ˜´—iZF÷I4ýGk¹&StàMˆ9‹ÃIkx¹”XM]ƒãm…ÿˆx‡a9“§¶=àn2]ÅË¥Çä™Ô†ó£5®GºBžh-`÷ÉÈéá?Ns3¾@am>›9˜?Ê:»ŒG± £¦Ó0NgÒBãÔÑZEsé]ùÌÖV_J{¥催×1u%w^8Oœ¥nBÓÀ¬v*9þwZ ¸yÝ:î5øk¾/;yÔwÁ(UÅÅ¡‚ÔÛlÂúßâœ6ÛìBóÐ\s}nŒ/jçHóq:Û,ÐáU)µ]h£:•Ý{¶4Ý6‘ì"ü»¸ svw®9Ì+ Þ}ìçÚtê¹/Å ²—à?¶@íß±ùi”n›É¡ˆ|xüqƒÆNzìCì&pp'´²ÇGàO·Ø6ýñ*ýð:ãkLJ=цÐËA@ûÌôþ£3œBIì„” ~< ¶Î@—ÝϽ¿{ÒýΣ=µEφÑ]ì•d”n#ú17¿ Ô ÜIÛ°‚7ÐÄÍg³|2SMLg­Sܳ”J¡‡}°î·Û2p…W©_†+ìÅ-€Rþ|(ÁJ«i&0|8õÜÿH´TধˆÜü±Žæa^óaWß¡¨<‰fšü&‚,ãáœ[R_ðß/øÇí ÇÇò—Ìð•5ÃìZŠ o¨`7˜êƒs¿eÿ©øò`ŒnT Èí¿_ ­œ§8–aÏÿLMØî_=p»Úèe ø™åP‡‡¨%Í¥ ð¥²,“aºYòË.72 qbxš…ÜžáçR_;*ļDwãÁ¯Õ‡õ†ÇÌÞ§MœH2ÁÃì{²O²éQ'÷¸¹|%½á «Â‹ì€[iÇåác#…¨µØÍLþì/Œž-äšP±d’?·-W•:Mó{Æ ëm•ˆW ®¡˜}¸óoðéZðôõþ£œM†Ï<X¿å)Àû¹ÒGêÉ*8,ãõÔÌzFÎê9ÂC% ð´ ´B=>ÄËx0Ç’úüìçç—}Mœ‰¤ð·¨>Ú7˶¤m|¨i5Ÿt–AZCB×oÓ?´‘ì•ÚÎëfn:[ñ×HÌçí_Áñ6:ûÝèpG.\[UIíÒÕ]¯,fá øC½¡ºA£z¯ä¨ø¼BšF-À_a¬Â­‡Þ,o£¼sÿj½yjãCGM¤¼ÝþNƒ¥¬—>£”&³õÒC:\Ãh ª#03KtwÒl2 jð¼òE{™ZS³àU¸ÇYjÆXÿiœnð4klb­áÖÒÒEVI+-¬Mt´·Ë‹å¥õ:hD©àí•úœÏÉ àÅ[{"Ñ÷\˜ëÿWò'FwJ¾óÆîñÿõÏc;{œðî@7•Id9ÿ{Ü…ÝônKwžÍí|Yý¨S¾5æ¦Í\6øZmv»ÏíÎ]³ÑNÞnuŸ~á9ùÍYJACm^(Ñ ðóÀEÜ×¶2…·q훇 „²~Tç°ÁÞ§ÃÀ,¨i:Bíy墴ö:Pypð±m†OÊd÷™±¡ˆþã%bßD´Äð^ÀÁ…ßÒÓþ£¨Ü Ûˆók^.ã¥f |ÇT ë-¹§ ágzJNÏݸ+Fõ¯ƒgH) ù†ík™ï7g6˜­ߥ*œŒØïéß•ÞV¿—ðUu«dÒ=Ú_{¡çKõç@ýÚž™Ò†#Â9ì¶¿ÇÛî\pÃpE¬­éTPrR^¸’.êóòéZ¹/¿¨õ:éU} ±á"zßjWy+þŒ–ÝоX¯ßØš6Ö;ï_Ý0¯À™°[ó%xèNRß«¥=µ¶fÿ8¬«u”&îÇÔIˆ~Ps?}ÍþÚ ÷ çö€?º¾óþî&gY_¼;(-´/¥œw\ˀσä7m„^¶÷Nx὘ޯ]ÞêIɬQ¤¬Š?"ýCàß3sÕÿJý¨ˆN-'JðJ8ãËóoŸÿHâluR¸¹YM&³×)ðEÝìnOw³Æ}æû²êŠ÷}Ím } r)]0Wàd®·oÙ]改é>þÂç½Ì%ÊBƒl1 |c*ewÛ{¾î#èþ6vfvú>”ç?š:‡coå®AEÔ T¯Ž6F¶€7›Êj¼Ík7†*û[w»9BÜ Ì1‘!ruzNéµ ¸Ìœ“NØèð½-íô϶ðª/=³s­Â+ÊÉ_7{M¦ûWiø,Æç¬£´ôÌýÜûWËÝŸá„þ vhÕlzc{PFª·1 *¸¿BÔUp g©¿¤¡TŽ2ÛLŸ<~ÕwÀIœ‚)ÁF×í)Û}&o{…OÚ@3ÀAÔß&þèùÁ N+SÌ%Ü;yZRþ#5½¦<üÑÓ$–­à¹p‡]€ôݱ–.؇¶MøÌö•2Cì\°«?Ûz.ãѢQ”–ð÷p Ù"5ø¯…bŽÁIy:>o4ôâhûfæ¾ò Í.w(ti~ŠÇëÁ@¹ø$~vFé8÷¼²IÆéRIt®'…d$>ÑŸýc·åÝÀç¢Ð¦cBÄËå¾²èWŒÞ8àøižC—0^)$™ìá)rÎ!».WÒ—”(2-ÌÎG€~+á?ÊÇbºÞ‹xÜMÕz’^RFž ¯rÉR™* ¸„ôбšìa½òˆ›Hc ~YDœÂ'yOƒþ¨ŒY÷½xymx”“tœê‚ Ð ž-3ñ›g¹šÜÔ¡š]ŸÊi]!'¹7üÇ<ô´6xy'¯€«‰!p"ïœÿ8èÿñ†šñqðG Þh#Þi¯ŽÖ–‘ð%ÁFÉt·öÕ&²Rfë$Ýȼ» ø#&Ä‚wüÇvç’‰àÓX«Ù$,VË$~ÌõžÑebô'}‹.WÇ{ÿüQEŽHd8ÂhÝϼŽ2Ú:öMpK;gLX¨‘t˜ý™ÜÚþD#øyt¾ÖÔºZZè&øpÚE]$©ñ·(2\#ËB qNKíIúñüW»œÅæoÛši vþ^{ZJyÛ5{à}¸þ:P‹ë$ï—ÔËå5Òò"Þy©ª1¥ ÆáÐ` ±K£Çuí§êîü'/×iöÎI¼£¾òNè²Ð~xùïN$s;¸ÅLs)w‘/§›Ùíê.†[xõ…ü±Þ·Ù\µ¹ù¯Á"sÌ:7)vÀ sÉî6'ÍspI¶/jg)ãwŽƒlZ(ÑZàŒ3Ö:1Ü£¶%°ßØ6?51ÙC±™³ØÙjüç?R5ú®3ø#|Ìfjÿ‹^Ø_hªÍÿšóçÏÝIžûïÙÌEÔ]`3ÿ3€ƒˆ‰‘6Ú'6õ ì÷5ƒ&YmŸÛ·@åÅJÿ1Øi,5¥rØA›)ŸÇHüü.GO>›w¨[Œ^ÑïÔ’ö!Æu¸ìX`Ÿ´< Èœžão¸î½àÆÚà¸T6«²–Òÿ^|ÓœØTÇ€ÏâÒ,zjýï¿•¤ ðÑç Ø«ohEàäýt¨õ­@¸±@ûäæÅG¢UpÊ›:@@æ.”^`*ØÃŸ-í&z8’f˜ŒÆÊ"î–ûó2 =ŽG‡í [–}4b>3ÜŽ šgfË©&µ¥œÐû•¹ +P$ï…þÞ‚ÿ—œGaü&PO„ÿl÷aˆxkÝav¥ œÿ˜7𣳉Šó&n)%€RÓô¨$‘Ü@jË0nà 8/òg„Þ­ ÏÕ5ļD‚ÿHAßù϶€\™E@CήXÂó䵬–¢:OÃÈqÎ/oЇ´@”K¼ÜÐ;Pÿ©®ü%cÐó}à<“ nbüΣwò·pö¸¸ãý65ÍᨲWja ïÖ@]o¸®ÐÞ}Y+I½¢Z ®&6z\ ܃w#êÚÈ_»ÉÜ´qé¬þÍ|Ïd§ƒRÇ‹ÏQ]ã@4ÓSZYmÀŒ‘˜zVïp+ '›¡éþÂYo/`mµ ^…Û©fžm}ö#Õ¦Ûv‡Ìñ"x•d€œ”ÚG“ëzï—Ê‹ê•Ó,hßN)©q$­Æà¥tÇž¦ðØÙù¹šÝø‰}÷½œFNüà•pÉWÜù²¼„ÿº¢:»$n}øŒfSÅ Ô¡tc»­Ün×8'¿(Úq߉À©ˆ<™ÐL³Â}íÌrn™Óv9dž¹¾ðœcsºcˆÍŒþ†ÒÙÕ6¢“À½h QAø»¶üGèêtö:®½xÂ݈úÁ:M¢R<»:÷4gê@#á?ö„ªþ›iF¨<)ï*ZB×éö+ºH‡é[Š %œŽ¶Û0ø^';à³-<æ« Æc]è·*<‰üY¦¯¡wcÁ?ðeÚÈ”› Ny>˜%šùÜS¤!n}:ÝÛ!ÿê©íM1©4øc tpDê Ú^—à§@ûÖ”ÖûäLûï_EÃçÏCo“½ÞÚãðþUÏÏßbVºr-ì9ޝù`E4˜FÒ ×|¬¦YU§¯ù,ãÏt˜ŒÖüG1¸£»”'SmSÊÜÚn´‚®› OøRø‰Ö}„?&úŠ˜v"…á¹\…Ó³ÿÌd1°Nf`qAÎÂ÷13ñçÏ¡éyZ7›&Þëªa¹!3t­qûÚÀí8¼ _ùøx>•sh,åd¿ÌÕ#’R®s)©øZ7#¸c8ù ög™7¶ëRDàKz^Š^ýð>¦ÂĹ¼Un÷rE_óUðG\™À¸0ßA[WòŸœ—šPX÷ì{7»_cõäß Þ:Gñe"´ü`®*Støã®>žã6RSîpQpêd ó4ŒÇaðÇ=Sï½x)íלQNõ;ðFºÿ1FšÈz®.÷ÁGiõ¼¼Ñþ²šûùW€‹:q+x³eha8©Íß©ÿqÀ÷‹3î¾!ߢš`ƒõÐcø¶´UÒz2\újÝ&¹ô✕úT»ëô÷‚ì–0^fí''$*G殘»þàËH¶–ÍÌù½æ¤\š &znÊÒpÉå¥×1`ŒTº]–À‰”QŸ¶‡üŠÞÞÒ ø^Y5xþcÍ ÿ7Þ6g¢™`›Òbú #ÎK îr:ã{¸¤EÞ}/“wVi\‰í-—*IÊkLá°÷â€?Êpuûe'ìþo.qê¼óþÕy_á/¬ û¯+‰³Ñ‰çþì4)Ì)Ç_}—¯†›Ýì®qûw|Ÿº+þñë’o?8¾U„OLDÍj7™»Ú‰f·ÙËf¿ñ̹/¬sÕÃ<²†ÏX õÝÈN²1œî[ŠJÙ–ÀSLÂPEìêp<+ÁáP¨© p:e³§híD‹`gN³yì.3/ñþçý«P¾þš{³è1ùë˾¡ç@Ñ)6vCÚlÃS†P=ÿ¸ç«¿18¨°¨\œnAsû+eæãT’9&aí§¡ënÒÏD\æ6¦{`›ît1êE±Š%y,Oá\|ø>7ðü£(r}OlQgË'bÅrŽ9™(|V9ÊL#ÀFl옫Ԁ_PêÃõÙ€?ùïí£÷ûáèwøßd3!ŸNû¯úÎ_æOº=Ùܺ‚ƃ׊€IÂp,þ‹†™&&¼Œã^\Ž{ƒå†S;xžÃðe?ÓìðG¯Œe×SjîÎßq|°áo`ïö”z¿çe·R>¾ì^ÂQ€õc0SAð<ë1’5Md÷RˆxçÜ>v((~ ÆEy a{ WÞÀ­¡çCCï—„òë?†BçÆç:¼Úþ$q5šlG„˜—ðáègÊËá€öaÅ]¤yœHb‘—ÈcÙ u¾BŸó~Î!Ö_uƒ«óc>‹¿÷å¢pÜÑBœÿØïæÀ*=I/(zT†oP™ªèô7­ÑŸØ<;y+x¬4‚»A)y 2?#SÁ™¸Ê4xÙgöÇžÿXå+f¦ÃA&âñÜ,¿äw*ƒ~—†”â4›wP~¸ƒE¼:;6OY€¾¯‡t3ä†<ÿqÚíf`u¥â…p-þóìýoòn)•€R³÷¯Îr# óT®Á1árŽð$ à .C]ì_!zœÈ}fߨ–”‹·ñy>­q€¶s,ñdÏ•C²]šè(}È—9§„•‰p 5ø°y ø#7vQ„ü±ÃMÈÖ㳕«±Ãqd©Œ’.\Ü6E{äEñžÐ|'û-3ú~“×ãv€ó™êïÅ+k_cÜÏÃK~Ëíy1Ýç2==ÎÅä|Bn}+á¼þ²›{KÅá [£/{À¨i¥ϳ¿Ç:ìûÝù›žRs¾ ’„7Ûf[^J'uµ¹L’aZMK^}¤Ká?¦ÉtðÇ.¾‚žná7`ÿüܰÿª_;Ç9áÆä|Ž1§”¢äTž§¤ÞÕïtžl‘öúJgèJ}«žž>W×^rUatÅH·ÇÚ|j²ÚxÁüÑÀÙi\8è”þ»«|Ý~G-¥¶—¬ñüÇc™§´€fÑaúZ†ÀCü­‘á™2È~ìñË”V[årÔöóƒSÌTÌí¬Ñ4´Ã>—¤Þ9-guª`ÓñÞ]/§·QËi^iåM’ôz““kx¬‚àôT k´ôåüÇk_“wêŸ_·Æÿ7ù#¢sÊIäþåæ7ÅÍ?NCDî+æ–£œw#¸a>‰*¿Nø£ U¥XPá§ÌC7ŽÞ?io˜k&œyü…<ׯ„®›bËÐQ {[ûÒFs⸧0÷]l!û–¦vŸ­…ñ?W5g³Ã¼¡ *¢%þ=Œ‚5bØùÔª97ú´Á¶ÇÍÊPÄ‹ÿqÙV¤ˆ<•öAG?~f¦;`—ëQLŽËùÁÑ ¬ƒì¼Ï¶p‰Ïÿ¾Õ {¾¥ßø 03Ý·%Ö=©Tð.*Œ]^š†‚«~ pŸ=?Øß­M~-Þ í™M/‰q)EáÞ`@ÙÉ´#:Žä!³?|òùù#ßH'ä5ôÖüLºmÏÚô¦vøíLÔüñºþ¾³ãzþã(-·>zþ#³“Å4#†7˜I¯íF¿ºN&€#‰Èóh‰h|ÀÖ>P¹=Ð÷q»\wìCÛ˜N}4ÿUAó‹f\‹ß)ÁohÕæçäì¿»žgS¡Àù‡MзßðHZ v[„vî¦y&Š{#D¼‹nKÛ ^4+~ç çv„ËÊËùWÉ ´Ÿ§g$“<àÊò‹,äðùø:ÅÏ®äïiœí¢Ç¯œ3V|tšSËD:MÓX%,ç‰@»½óçaåðú-Üa.ôäŸ@ ÂÔ†"¹BœÿøŠº±Þ€ùWBcߤX2]ÖÀ d”þàTÞk ç-’\AJÈ©@MÆhÝø£=T‡}pþÜãoùVðÜ×ÒA^¤ÿEÎsy¤³´¸^”¯ág–rI¬ÁÒ½àSÎ@ß_†‹jÉ'l§àXÛ|…QðãCái¸,³½é)¿’^Q«€•þÔ²ð €÷cµ•¬>OÕý| zi '“±ð^‘Y©p¼…N ëà<ô@e!@°e¾ÐfºT®I}Mèÿ/¬®–^­&ç$+§æ.|›£amÃwò_}ï¬3G Ð¾ÁŠ_ÃY°».IcᲚiÌëD=‹&×ÁàÌrPëIž­EdEOç¥ÅÖp¶wª˜-rF™~¶;ôHh–ÖêFžr@|^o-¤}½3^6ø\ú•´õVKM"ÑÕÇÛ‚?âbOó_ªžÐy7ÿ®ÿùGèž|xÅu6;aÜ~n)“ÕœÔÿØä«âsû»ûÝ×ð_–?ñ”·àψW’Θ“î'ÈQ{Éž3ûÌ#÷ôúžæ*U€–­ t®O5ìÉÉ=Y\R^´0}ÊúQ•œCNDû”nB‘7 öÀûð¹)§=CÝi?•¢DÀÛ96¿]hf†"^³×xˆDPÍ[)¾ãÒ%º‡¯z—# <­ëþAU¡/všC×ϰ…ãy/F¯"…ÁªœM¨øc/eÂw³‚ðÝ·îçNanuÛ‚ËzÒh:+<)ÿTŸ?üõÏ'‚3ÿ²¾ ÿžòÚ Î§tPlg­SŸ? 3ZÞÿ©=lk‹ŽS~F…»þÚÙ‡UP²gá)VÓ›À„ýH+³:Ls LJEyðKÀUàkˆ ¡M¦ˆyÅÀŸ-õvÿJ1é¢ C Á®F[þøË.‡;›ÏÝ¡_ßP_j„ùÌÁ¸2g"­†ÿ8öØÎ‘8-vî@ÚBÛ1ßk¨Ÿyé¼ï°ÛÙ7VÁÏŸäì|#·’²ð î,Ee0æ’Ä–{\IjÊ®±,¬š…ÄM¨Û•Š‹»omlj¤˜ÁùüÏ%ZÁ %†ìåirIKY§qäWÆ€±ŠðW@ïã<™‹R5Šâî/â!7=ÖîQ¬Þ¬¼š+ÂI&2^ºr9¤4ø#Š·XNsuø;ì?a° ê~#üÇ¡@þÝïC¼¿êæò{®Ã³èZ5_:ÃoÔ“Ú þã¥<ZŸä®OgðLîÈ¿b<ŸòaN*åy»mk¶ïgg”A;¬×fà­¥¶ e–·2x\^úÉ@ø£ð§uœ6 <ÿè«Wø™ÿÜ;'–!œ……ÏÛ1Áñ&8Ç\场¢ªÔæÖ€ë©©×´F Ic0Q_Ýxÿj+\R9VŠ×8Ïaí§p¶¨MÌÕœÕæ®Oi¡1±`·¶’ä^q¨%5™”mºIÛj~ÄŒ¤ƒ¤†ÎÑl2XãÊ9¬ÖS”vÙ¤\›¯ÂÎ 3Ëö£uØg肽&…¼[šCFÊl™«Uµ‘ôNy‰½X^uäµî—ðEJh¬ÂÄtž%#VXÅÿŠÿˆátz'cÉ=_é/|/ö_WJèòdnG·°ÉanÞßã+ þä®pÙ½çû²·ËvùöNe—Ä®¯EGÍi7†»É‰ Ä9mN›§.}ùÞ¿~67¡ê§@+ÜÄN®j×[Ÿóµ{ÁV¦v¶ø£$Õ2iBñWç¨c¡¶üU¿›`Gߤöú?]··á?6|„?¦ûr™?ì†@}vœΪ3fÁŸ³¸×åR@±ÍT¨³Ç wMs,¦ Ð ƒ÷Áóó3îo¶OÀlá\šýWÚCEy/ÿ E€R+u•d‘ë\SŠÉx(÷°\¾bã©Ü‚ÚØ!!âe‡ÖIM­ÁA¼Z{:tÐ|N"ád%ÿ-Çe£ÔÒUFžryÌÃ9+>óZ;üWêæ+÷Ä{÷ºi°Z‘SYΕ0{*#d² æâÒO'i ï©&öÊ ® †»È)¹l4ŽÿæåàÓ¦sˆü%ñØ¿².Pm°áB:ÆKe¢´»U•t¶ö¿çŸ~‹ÑªÜ cy7s$©È'ßy^±Ï×ÑK>ð‹ÿHf^i[RTà|Oe-%­áªê#I¤Wt¢þ*cÅŸíö"Ÿç6¼‚ãIŽÀñøì;õ£9‡Ü8\¯Ð<ª.¹(ÕáQÜ~£”;ò=Ør„îÖ˜žVè•×?ä´$§wçCÜ™7Pj›Ó†}çüÇQcý«ájw¢uùègIäåÐeZüqÞr¹vÖ´:T=í!©tÜÂ%™NøØf‡½@•ßÉ¿»ÌiæAIù÷hiZb7K:ï…Ö{,”Îè[Gãí{$ñªhŒâ6)® å;Î3°×ýÙ$j`EÖø¯¼Ùiàü+‡ÞµÿõÏ¿v¶;ÑÜÞn>“ÚwüogÌðåu‹ºÝ­îç¦ïSOU?~=ö27ma _*5yÃ}â\r›sÞnäºC_ÔÎnæ,ô›.±:¶ë¬ã¤sOØzTÝV¶Ïðýl&twÄZ¡ñ­ %áãÆº|-¹ÜABðÇ0èæœ¾aüGèÎüÔC[ˆž¢e‹ñuüá¯FèÏßÞŠÂCã§0ø£ýY½?¼.ùòAÁ,ÀÏ+ÿÄ«ð»¥à?ª­‡A>DìTУÁyÏÝ”Ÿ‰¸Ò­ &뿲›æÓk;‘2‚sð`TrìÈ ìÉMƒ,|z¶8¥±9?yþ<‚³ËÉ ¨5˜ÚC¶.Tþ)êÀ¯ñ»c.tþq0R¢® !ˆÞÝ&üèý«†Î`ó+\JxðGapÛ°ˆÿ¹Êkx¶ßiª©kÞð,îÄx0øo¸8´÷msšøþXì+kFÛ…ÇÙ’ÀMa¼À²¹À@U€ŒÉx%e㼄’²ŸÙ&ПðG¿S+cÜð!ZxÊn;S ú†·‚3²!^üli`u)¼_©;%>p¹—É@Ü4ìRÒ?;…ËPCÛ/D¼BîkÚÐ×hßa¸˜™X!›8™„•UKáÑüç?fIù @ßOЯ½'ú\çÂ?”“oå,Ø(!OƒŸÈýõ#wšöïÅ+b#qàýIjÂqâ©2DšË>.+·ÁGiôš¸Þß²™J8]É¿s[xš¹hß f©Ä‹ìÀàX}­þÐ+µø2ø#-ï°•è9ß—¦à ’ÒüV<£C;;ÁÌDü#ðdCx%RwކùYj'Ç[äwã‡á³J5(‰2ÜXªè-Í£‹äùŸó›õ‰Þ– ¬ÒRŽŠüÉë¸%”C2›ËÚ`þ(å4omxì„¿i+”D}ùΫ ƒµ™ÆºÖ“ZGckmõÁ<…׌(Ô'³éô›ÿëŒ`ÅàU¸Â™c¦ÛÖÐ#@-_³I5›·EËIw9"Ûµ»ÔÞN/›§à¨ø’Æ[*E±ˆ*Vµ c›ÓýWê׆q:¾“ ýŒ¯ ó¹ŸºÒ:[ è‡ºÙLÿwÿj¯„›×ýÍ]íº_œ¿ý°ïŒ1À…4@ãº@ƒ}îyg’óÙkï˜Ëæšûð óÌw0'¨MÀJ\¤Ji7ØTNl÷ˆ­Jul!ûاïÍç°ô®žÎ&'œux½¥hÛUjÎBç“]G=h9ðú+8œ%Xq{ÍÂPÄËf™;¶<=¢)´þã>4m5ºGþ{ÉM)g¢ã6ø£{(êõµ 'vª} ‡ÔwQrôöý–¦QKÊË7¡Óóóàœ70ÜgÒ&â@·]Žÿ ”ŸOípW¥à—Gü'IzñÑN|ç>öeUŒlÁO>éúÇ7×Ië¯È]ž{ù†½`ëC‰ Ÿ÷¯~ƒÿðóÎÀÅÍ<½9Ô&6Ó ¥‚¦F?5÷goÂO– Ü;|EoЪº&«a s.ȽÑÛAÀù„àá³¶-þèùóòf€L‰Áí9S ßaMêF%¸ØÏ¹“áºöAý¯ä੘­y`¸Õ4‘~5×Ï?ºA¶x:h"\Z/¤ì¼“;HQÙ/cá?2Ê.$•%ˆ›pL.Âgx4áU\ŒØþ!zœØ}¸÷Vh¿›ŸByž£UœPH¦ò9&‹¥¢®ÖWà–Üb¤7'‚ŸyÈ–Û³Á—Eq¼q%ø£#‘Ë©y&WGûRÈt™)͸4ðo¤&ñn){ód'וzr ê=øíO‡rX }6ÄóóÂ6 "íŸ×⎼–VðX#md…ÿ˜¦Eõ¥DõzËlî(±uzÚ€«¢'gáébIqÞbÛÇ:ìûÅ…ýЊïR)ÿÉÛ kMª5äOø²ºAré ¢MÑæQ:U·ósôt=Ç–¾X—áá?þUÿc‘sÖõg£Þ5’E °{&'—z]kèdÙ %LtP£x/e“<öW”‹ž¸Ã@xÇü¶‚Ì5œcæÜ ÿÔÑdþÊÖ¢‘RÌˬk{ͪÁ¿3#šVô–è`“x2_#Ë&¬†°Bw؃Á†ïÔ?_læB×,n”¦3öº´ñÎiné)W¤´vÕœä]ð {'=’„ó–H M-Ù5O£È´Î¯WÑçò64Õêþ¯¯xN«wžœôýà|ì^Ah®øÎn'†ÛÓ-`Š›cN™”t³á; €ö×}[¿(ÚAß-ÃЩi)•¡cfÑíîÜ5—ísØ4׿ æf ôp¡”Ýc£:™ÝKö;ª ÿñüQÃ|î^Îÿ\]œ#NBkù117¥Ö@ø&<œ’Ay#=£‚à¿(È´çÍ´PÄKiVUî×ä¯?¸ ŠðÕ§—Ð_Ç=ÇåÌ´ —ü1å³-Üë«C—ÀÏm®…}œ– ‘ %½€ÆSq~Šöá­ÐéëñUÞ¸™?qŒÛލu¥-ð/¬ÿ¬^àà žÄ%À¡šöÓEÊÃo€¨­©œÍåÿD¬Î!'å†Ã¨Í4ŠÎÚ£¶U?µa‡óS/nÅQx1øÃ_EêÚº*¿¯MóQþøÞik:Ósòû‹,`›YˆT,믨7–F™Š&Œ¬äÞàÎðO#Áié|YZøþâ«`Û­”ú¿ôë#ø#ýÁœÐû…À'Qy'ø÷ üÃzüw|žìð?¥Ùƒ?qCÖ?_ëT¡’øÃ\øÜƒÖR!ÞÁM¥¢ì”¥zB’ÈSn.Meœb|®ÇOx-7¡Ñœ?Oæ>¶J½Áþ#øø£ùç?6p?¹Ü«¤Û4Œ<æòúµ‰—aå8ïâÁ\ óǽâüG*ªMÛᷠÔå ôµÌ÷à Ò[Çjrï±F÷ÖËMn ÿq ÌžÌö|4ˆ×ûO+Ù÷ëd·éàÑ΃ǫC±o Ï¡WÖÿü¼9¸»¾ý”ïÿO^ÑÀùßáÂÿvýÁøÎV'±;Õ-eŠšûW³}ÜÊî¯î&7¼{Ë÷eÕyøöê£çÀü†MqwžsÏ<·KŒcï"â—Õjcî/GÛ’@åNTÂî°'}Ïcp•m3û¢’ ]E܆Îv祉½Bü#þuá!`ºÇf4æ^ÊMߣ¦Ú ¡ÌŸÕ1Q¨qxÜÁàß!ÊKÊû€MM(*»œžvÙÈ@Ü¿ìÔ϶p™¯<0tuÉrS(§„ÀT¦@žþØ‹—•Ê·ÃyŒò—'6¹>ûüãWŠË½à.ÓJzkGRböÜ@–Ú¬|Q¶YŽP>>H=áÒÙ<ΩOÄ:ã[ã| ½x–xÿÖ^´ÕàY.Sk¾qEJðuGè$-… › ý¿˜ÆØbÆ÷‘VævJš–ð€¹x~÷ M§’T¢{¾Áw¦˜rÆ“¡àÂܽÿ³žžNÛ¶1­ÿèùÁoL7»ŒÒò  x2~¨Õ²ò0®Âqð÷­Tjt54sl(Ó¥èùb¸º•ð63Mx÷IˆxkÝivР _çÓÐ÷wñùkÑÖc\UJÉ Y¤{åk¹ÌßK1˵9!üÇ#`ý žÏéÞ´Kâ¾´©°¾üþ#‚°,¾XÏi$7Øg¸œ—%’_Oèm¾Gã“@Ð2üng=âjÔüñþóUnÌ×ò¸(@9~N‘üÕ?dZô»ÐÈÞQ­ ¿pž+J¹ 6JÀ›ø÷G¼+˜¿¦É{ñrØÄœ“OÓ]ªÄ³0‡y¡ ÆrþãŠ.Ô|ºF"y=d=ø$…Îã±Ü•»íÆWJiÎmÇàXs|ÍœéôºcU´á¯ù˜íEdtVO!êh-ŒÑK¬çµ—¶”îÒh½’ÿ×\À*m83'áöÏàx›ÕnDð‡ÿ„R1©ãnÅV¨ë¥ÒÕ2ß Ä[§ñÏ;2­m¢?‚‘“qîÄÇ¡&.ÀU׵̹F)eÄ.š‚–Ÿ£VÒÍk©c´’~ Þx¥mµ“¦ÕéêjI Yªk|Ù ­ùÀ_Â>¤\Ô:xuÖš%¶4S[`ÔAÛIãyƒ5…t–©ò‹¦ðþÒÞC﹦õ*)‹çIQ=Åõ5,”SL:…ý]‰Ó?v}bßý'¯¸NKç_ϯú*þÛõ?¢9;(îŸn.ìÜ=úµ£|¥ÝŒð»Ý7Îß§Téǯõ¾9æ–M†=ÿÊf§ s̽ê¬sN™Cv›ycžº‘ܘ_ÔÎ2æ"8¥ÐdļâÎ6a¨ ÝÆ­ªÞ@ä*ä»k?â»@Öø´Û yÔØ¶øl ÷ø"Ó ;×úè>eæ ø¢âtÓ–†þnFyù>+œSF ã`pó÷s§ø»¸…itQ3ÚDÃé¥íŽ(•Þ•'£n¡½A´Œ®RF PKŒ°cs2ÉNßx'<¼ËL`i´è9\à@ý“Ô ¾>M€ÿP^ÿµŸ5?Qþ§MûÑ÷¯²9ÅÍOp>îI™h!´e9|%‚Kÿñ‡IiÂÈ\ð\þ,4Ú=´ÝI(…þá±¾DþˆÌ¹üÇu°×ô¥†Tá¸üMF¯7¡×ëN±yƯ#øj}OMD7d†®unoÛc˜6mø‡Z@øÏŸ×“ ÀûÙºErÉ?œWª€åŠÁáć§k tþ“ËQo;6DS¹·¬¿jKF[ÃÓ¡^VpyÍ3x¦\•’W×@çžå$ð5#Àpx%/ûÕãBøìdîö÷"®qS²}r þy ¬²7'yôŽæ>ê“õ:ûɦæêï¼Å±Õ™hÖØ–ðÜm#gm-ÍàmÖlpZk¥ÜKè=òz±½¼*à·õ’I£a¾ÃòHxøMd)%§äŠvö'öÝò ã4}§Óe_i'tO‘?¼¾rÎ;ñÜà²ð?8þ<•Üâîtwk\÷ ó·_òm1×í×”î,/­3;Ý=héksÔ¾2ÏMsÏÉúEíÌiV@á²ü* a3;ìž¶e(­h_C¡·6éB±¢3Ï9cüYËßb·„HNùíN(º@ûHð÷ólI;ËLÿ|8›ýæ©­ ž }äÏŸx ÿ€:lJÑ€Ñàx_á«ì§Ê>¼®úÒÐ;߯ÀÊÏG|k³´ò,¼Šz F;}¶ŠJ7· ð}°f+ÚÌü Î=·çÞ@Ù—4«~%m£Äø¬zø?b38ŸzÒeÙΛîà[Ê vx`ÙÊT<é¯ûQºs}~NÓÀËÛ€ÖsáŠø#éGýGQçÓ£^ ­?H‡½™ü†ûR>SÞ° Þå予2*m´‡°Æ|„?fù*˜~vÅçIà‹õß¡²»Qnþ‹k uÓþ¿âÞÌŠ#ýþ¿ÝUïûVÃàî<¸»îNp'!Á‚C‚'8wwÜ\—`pw·ßéû}††ýïþ·yÈ.poMuWÕùœÓÝU…¤‘•/ðžÀîÊH³h$Ôü7Œø2TJ±}-LyWíaº ø‘„wóxNÉÔfPRhÿoÈAÈ[$%Ü}ñ•aÐÈ(Ðçñ®6ó`®@ãôØ0íRÈ~§3ƒYxTr=ú6-ç¤â‘Mü7Üò")n&š7PÑxb¤~b9>—½‚»qY¤Íxö™OJÜo§Áßî"‹ £”秤d¬ü#­¸¤ô‚¯ä\…Ÿ‹ÒëHM¹Œ•õÛ‰ßÑ~¥éú4¹æÔ/Ð+ö`4”ævpìwxô¯–Œå´rÚü §Kâ8Ce wBþX Rv@Ú< úa%ÕÙO·ûPÖOw«úï¯h…J ×j]"Ë3éh¢˜¦RC†˜FàGóÎŒ6-¤³ôGÖðy´õR~ˆó%¸ü=úCy[¬c¶‡ ñ#ôùÜÒ‹^ëüŽó™ÃÆ×L’IRÅ<2sÍ!#Î9…´”T ’¤ p{œqs^GoU]è?ê[»ÕSrÒ_4ŸÂOõ‘lNu3Ä{ž›QÂÓÚ$7CMt“Ì(;»tÛÝý_"ûï×E¸~¨ç¬ij-z‹2rY¸¿·RÁñq !}<”9f8h>Ê vâ8·Lzó’š¡ -Ó0Ï ¸tÌÉ„Ö)¢Ãs·ã?}8VÛPO¢ž«êe¨§þá9r¨ÝÈ2}Á‰EP¬*z—v¬Äöy]”Òê¼úŒ.E¿¹ßÿµ­½Ö~åîÙjq]jOÓ öåסx;)ü¾/-Ð¥ôf5;å…ØAÊ q¼„ç^IËá+ƒPëøï3ju|N)hµ~ªêúúoÖ0Ø“ ¾~.òÇUÊÇ+ §Å‘×+Bû{PuèÞ9x•}ÈÐý¡f‰)ÈþÖš_ì’Є_¡“‡h=×Ñ[ P ¸ä>œˆßÒBôúH Ùx/ÆQbŠ SZ_»ëXÓ,µZC• @£)Dß¿À³º»”§a\™}Ø>ݽw5™úÁßÿ~ÄWaW·uœV/UW)FîY„v(ϧ„LÊH*šzmúÊ×)±7JbÚ«ƒ¡E_zw§¤š¢×P|¤€_AÆGÈ’©-œêh®Ê!´üHÇy½ê<‡&JãPjUª§Ü|ýéqÕ ‡ƒq ÿ [œF:[L™]­–ìrIv˜C’i¡’ƺ«¦ã±8ÿÙÈ?uhôgüÈo¿Ðqî*"SyÎðmaÄ‘ÅÅsyΦ2²WZûÖ'%±‹Á¡×8ã!`ÍŠ* e–ÔæâÒÁL5Ñœ‹&­ó»\Gi*·8=»+ÛoB–ú½ª]QuÔ5¿ûv ú~M.Ìó‘RCx»´1>æWd¤¦®^j³ÚÚy¤”z_sßcás R<¶Ù¢ûN¶Úï¨(?¤ÙT@:“E5À!æ¼IkFJ ä­7f¡ ?nà:Ær&w>MfNË]pÆí¬Yg×™>ðã+Ž/22ôZÄ1© ”†N[3Y!¯qß·ŠmZšÌ0sD.hŠ€“Œ–í ã/mÔI¹ Úø_åm·Ö«%º3zýðÊçµÇTwÞ"i“éÒ饋iêÜpÈ)äT6E‘â~;cKV“€ÂÍaDƒÙ9¹åÿ„©>îÛzÏSúß~~žÊºo‘½Ñ.«êª½–»ºÚJOi»Ž=ÎÞe“íc]þ®ÒîxN+„ÏI£uÈ~`M¶H?Ñ7Ô•@Eü¦ò}z´S÷Àº$íƒh¤7è\V û1ø‘W7ôî_Ûì›ï²þßÑÓÚg]V«éZÎ]o`;5†ÍIeô3¨ìahèaÝ–æê¢àGxeõT½Õňx"­¢ùôd*<‡ù¹^7Ë-ˆêé.߬áCOUŠHÃô-\š·£6îú‰•@¶Á5Šwc=ºCqSÒ%û[s&ÇØ5è.”¦¹«C^Ò}Qb.hÎ0èj.¾ ùÑZºDÅ8nÝ—¢è¢Ö‰¯”uÁ3ÃJHyy •Ã(M/ô9­]Dþp¸æÐf÷ÍÝý(w/2È0AãuVÝ£‚ÕV5¥äà™½+OæA¢ƒ¿)ùoj¯Ê)ÌF=}¹7|b_äètD_Ð CÜÇl¯¤ý( vŽÉ÷it¡/<ðBð#!¿Ï’rôt2ô{HwP¹ÕFþ»­ ÍL¦Ê”ŒxßtÞ„¬² ê¿—kJ9*kÌ%I&g¸´”•%쾿ŸÙ¦#ôj4W§1Ÿ­¿›É~®³ÀO¤‡âãÕ<ÉË]…ü9ÆR U’Þ™ HHe$¡üÁ?r1¾Åx9òB9jHÉÂ'ãîûÖ31t‘Pë—Ô±ö¨«ZS2CÓ9"U¡¶ÒÌiaÆšr¦ Ît¼Ùf~AÞjM•,&…“F‘Eð:×áuöhÃõ¨ç‡^¸ÎZ¢Æë¡p@ƒf꘦‰s ™¥ˆ^ÃlF¦ùÕ¹çìBýz™âÎÊIfòJIä™ðDA”ˆJr~.¨Ã3[ù?}¤°~Å O•ïôõøÖ%+¡=Û®®©ƒ–ûvøjO »¡=Ù°mûÎwÎÿ¸ä RQ¡Ÿ?B ‹ÓuÌ~ßë7Ê£ |ßüóêe¥ÁÚÝ/°&UÓu«šýVÿD5t]ý=ô—p¾¿Ûü0:ùÚV)¡›rêc4ª—ƒ45§%H ~jF8ÊsÔ9¥¡44a+­‚†¾ß¤'t…:B³"sVÚªßéÔôËgOU??yêÓ[=IûPlŒÏÍèãùé6òÐ$Ô­(’ýI*Îî;bs ·iéz8Ö/éBÔìOÔf ù@Ñ£‚™y r“ Ìw1"çBí/‚7 G¥)½.l}m¥¶–X? Û¨"eB}nê@]g~•šrt®„üñû>×1ÚHGñ{\ÿR´6¡–…­®ª%=…ÎLA&rWóE®I†öÌCi'Rðöƒ{ÌÌÝ óc¨ jî×”6}1”Vô:JÀS¸9ÒÀ]С)˜Sú殟øi¨ Ÿå™¼D÷á¡ÞGþÁ§ÚƒU>¶ SÃvÝÊ’ ¾îý$õÄ7*ñ!n!9å°L0Û}.-Õe·æ¤È[¡ªÈ+Õè½.Ly…í÷:&Tˆ§ƒ3yRáJŽ&o¡pK¡zû%—ñ7ÑàïsŠ–œóðS¤þƒ+â{Éퟔ¸Ó. O°“4gåi\¼ŒzÌ–¡\C›Aȉ˙%O½ûÜAíRm!¼ üZ…^AUù¤¼ :6?©\ÀRèý*Y­_Èyå%ô=«¹#÷Ífðc D2eÜýkØÝ¡=™4äóºý‡²ö{úX³(®Æ;jöÎB/yÁÁ¦´t…Þ—1»%Ž9jú˜^2ײ¥¹Î/À­ì#“8Gå;¡Ö/Ùn]¶5å§4•jJŒJ¼ŽÛ›¦ˆY%g¤³ÑÎsÄüà\•b ™µrLܧ\½ù0(¶DçÓÙ>YÿŠÈ}ƒw ÍäGº&ý, œ*¸jÕL.óTf?Ô,¾©aË()oNš”rаŒ&á×pšÛt2nN}?ôB?k¹š ~,D¾,@çtt“ôΆü6Kª˜ 8ÛŽÎIç•Iâ3 ‘âvÊ}É#ÅM"ž>}˜’PYx¹Êÿ“ýÏ£XÝCíûÔSöß^ÿê+ÈúÑkûªô*Ø»ÿÇ6OQ»©=Óö³ß!ߟý®Òn{)÷¾K$´’ôJ]´ãÚ‡¬H Qô壮XßZ9öÓ£zK…h–®ßÖŽ:êñ:¶åk 4¢—ž¦ãß„{ÿÁ+D½€f>§Öpvù¬;'B¦ñÈ$¥é¾H u ½!\óÏã¨3ʦP½Ypò»èÝ!w͇¨i+JµÊFZ@¿nú÷oÖ0¹Uù|‰ŽDÉá·PR*J/qgÓLª•ðîÔQžVÒ ÊF7ìoíV|Ûþ ¿õ¡`ÔÎ=<9?R€/¬¿í<ª´ºëåÇO)»*‰¿-öãïœ?¸ÓsTÝ…Ú—¦¸Ô„Þª;‰}ÒŠ¤ok­Ï(…Ÿð}û”ŒQ àëj{ï:5Ò§õ;Oäj4]wÑñ h5Uøˆô«;ORG…Cµ¸5T‰¹,=åÒ'à—¯R ôpÍõ¶p=?¡‚Tˆn•žNË êQø2Îú-JB¿P ŒŸ¬¬ÁYOÐ]¿YÃ{žÈç3᳓c|ðÀ©.ùÃ{ufw×ÄüÞýk'Ñy¨@È7ßß½aw¢H<œz€jËÜ5T ÕÅ)ça_h9²ZV”5„^fÐ¥¿:ÿãºç°õUÀÕ*6„lÚ¥ãzS+N‹D?ƒ›ò{Œ¢3ÈèFÆVZG+u4vvž{䲺¨vÙ`¥C«î r” ½åþn @ Ž*ëÁÌÜÝ»ÿù(ŠBgµ–|iþùjO)ÕU¯ dÐð¶ÞõKFR P= åÐØŒìG™À¥¼‡ÿ>“–Ò4$¯M¨álõÖ »ÃÕ»›BµÁ£>6Ü@–\ì·ëI)ñ—¥Ð¨¨ò€ëH-Â8¡wý«!|´iCã>›éSÔVècMpåçñU~çyλÿGdœãry í/×KÞpyï3_ ^<µÝÆ­¨1ŵÏ}Râ!»õ¡}pnàÇ-J*K Í¹¡ 1SLJÇ8¶ã''¹¶ü,÷¸.ø±‡ßóžÌGà莫ªŸ”WQÇÄ\‘‚ ›è/‘•Ò\¸4ýBSÐ<”;fºìã¶ÛÌ»@ï¯óy~Âi¥× >”µÆÓÅšŽ€§*œƒ7!D(fTŠ<Ý´5×¥0ÃpÓJÚÊJÓÅøã,º"—E?bƒö6}œ»»Çºm'EÐ Ê.õ¡·ø7?Ê™ýòP:vú#½ErËryfr˜£rCrƒÁâsýø,%ÔÅtÒPüX£b óf_œÈWuGúK|jfœédR›u2 Éh ‰c˜Èf5«M|´wBÙ@Ê»íí…žÿ1W-Õ½1Bû¢îÓQL.ç¾É)óA±¥ÈVeÍ g›ã8±œšhaËÙ& L<ñ L§È vRä,\é²~b«a¨`ƒQì”ö%+º~« ü°Õ¥ï¬g?Ÿ+@‹šÓ;÷)•^££Z¹íwhûùz„þ [Ue W‰­¬àGhñSèK{zB½yzE4½.ý,õ„ŽÍ  ºŠ^®ý?"+uU·‡& l@9OEè5=¢› SbŽÅ9i¯NÇ>ø³]…>?Øj^LÑ/u\nÁîJð5ˆè'hÿD*½¿AÕù²Œû>QFzmë³ »… _O#–“¡þÓ{ÿjHzF)«é$¹wÅ^{¿?½®h}m¥ec­²zÀÑï…³/ ïŽëZ¨ÛyjË‘¹ CßÓf ¢ Þµm÷ÀáûÓU…]áE¬ ª7ņº/ÂÚ‚ï•!_péø1þ¸¶wý’¡œôûZ?¾¬cRÚù~øy|ÕL½ a>w³ÿlÚƒ @•J@;3ð¸¼^Š…ŸB‹ð3· ~~4Uݱî„)ï’ÝYÿ ž–…B^æÒ|Ùa'AÆh.5ä¢Ì†óÍ —¹ºøÊ vïò×DªÇwx7§_?[ÿ*»}W»íXŠó}~ÒVŽ"Ñ È~(ûÅùƒ¡ô¹Å‘œŸ«s 9ÆûpÊSMðcÿ'%î³óàüÑÛ܉-á)"/,Crñ•ñÐû´Ð+øq†«×ð‰,àÇ#Ðh o…ƒ8¯j~R^ gDW¨6>;ŸlÙ 5–£\IÎBY ˜rÓl”SÜE¢šàG7PóŸá+Oªñ–Pó·x[Sè à;T†óñ ŒZ#˜æ2üh`‚%ƒ9kæ›–ò‡ 6¿{÷ÿè‚ÚÅ’¡œ)ö¸þ¸÷çQk·›Kñ+ŒË¼’“nè1øùKÍ3“Ý,—'Òˈ3Ø6Ñ'rTÞ›æ´KbN†”r4Î9'!ˆÞÐD‘f¥7¥ ‰ ÅHŽ6ÌŒ1këïÛ!ü?sİzZuóøñïÎt «IìÉvU]=ðÎüÇ“Ö.‡¿9eûØÎWïj|ùØáÙ¦îÃw”£x4¨kvB{ŸõXÝÔÔE½ùÎç4íUnJK7èM}ù#—ý=s9òG$¸ÒÆá~þqÔòh¤a‡["qjøÕéhCÖkà΃©‘wuÂeÚW ×üÁ˜êœŠI )"üûZˆúDzLé85€ÿÍ˹iŽB©in8Öo?ìiOMCN‹„q|’2Qz ¯…^Wãg¨_ xá4¬ªJïío¥Í@{7n¢{hÅ¢R”.t2§ãçPøiÐ{wÿÚó4­U@ûZÁ_)ë¾gòGUÞÿš5°ÝwÝ©>ÀÆà<ôø¡y5…7#óÖ€šÉÕ—Þ½HaÕV‘ÏrðPrΧ®[rð<"/ @•VY²êŸ{Á1ÌÛÓU­¨%]ü?yrªþz%çÙ<ö2K-ê„ëß9Η3ñBJÇ;¡î?Rñ\hÇ:¤­H‹UˆvýÝÇö0=ˆÒRZ0ç0Ôü*ý‰l™Ó]DŠBí§Á㦕 ®! e<²B .ÎÇÁäKH8 høgN!}´3ê°< äÉÈ‹‘?È&ž$ס{…Í Sîp>0eòRvPþv^­ªK©í‹Ÿ”¸ÃΫr„Ü»4³øW¾M©e)2‰+È(3ÇäwšôÎr9„ÔJ.r\÷íØ¥PÞcàØõ0ë'Ó‰Ar77ÖêN¤ç¼þ¹j—Ey׿º ç¼y¤¿Ä0Sy$|}#öç >È?H3~êùÇXïúíîüÁ3H¦9x¥®Mwø‘Œ4Ï¥¢t•PÔ ’Ùœ1“MéÞõ7{‘ʺâÚÄß‘HŽDS?”7ÚÚbGå Þ9¡Í¤ üT p¡½±|f½\“_@Žñf¿‰é°Ù iœüfø‘mÒOrw¸° º‚NþÕ­êN‚Ò‡–ðc]€JHV§Œéc~? ùgˆâ‚jïeŒä7{Ì3ÞhbËL¤½”n0„B¿¿»Ñš¡¦ê ÛHŒÌƒú¥dwÞ{ŸÌ–%fŒinf:gÁrJ%±œIf²ƒK)àŒ¢"G³3r+žÝNÿÓG<«M¨õxòýÛë·G¶N[Éì–vN•XÝ´Ütëï)e—·ÇÛsleßô|?. \ÖEà(ãS3:¨Ùñì#Ök¨ï¨Ê¨`+|³5þutSÂÕ\U‡·í@Åô,íXíç T?½BǃK¯¡Â—hºY{¬h:!ߥgHFÒ{äapÀñõ.êGg¨2å(Ú¦3ëU*üI‰[ììè]§pýÒñzô”›”@VÈ4¸÷æðóÌÎ#ÅY*þ\JêK0Ô7Îã¯Dþ8 |æýÝô:ÊY¿®ù"ºÊKäoi&+¸¢<6£Mqsÿ{@Žpg9"³AÊ!Üd=ÅÇ ùõùz¨õFzÚ[ÝÑŽ ‘Š!ùí†ë{ÅÏd¸aS yc‰idÎIVs ¹¦¯ô‘f¼¹‚l4´Œ']9&zÑ~ýñÝùáÖI[s%ôûyTUZSjVÿ ~T3~`oCcœ)Þùoe›h§† ~ÄA¾îÇp6›©ˆÎ«Ó|àG5+P=Èt÷°™Ë>Hóµ$¾SÅŒ…Ò'3ûÄÏ4™è¦“y)}%©YlrËXOÖó}ŒŸ3ú\æÇçç'¬)j•n„>< þ´Þ'©œ—ÈSd ˜ÙÝT7Ó N*$B_4Þ)eL)m|‚ù#9Fv.n£ý¿2îþ›G,«]¨;A×úgè|;îRŸ‚?\‹^•N|±®£7‡kÿ¨h8ŸØÔ4çÝÓÎÛ¨:Fö!øúv”¾¯í×±Ðïzêáxÿê7ðc’~£ :¸žÒQiz¥+¡§wFʽ ]N‡ñ_€&Á9§¢çö·ÎyÝ– |Ž{gn½DÊNM¹(/†®ÆGŸ…ß j–â'Ô›ÊP6]õ«ûƲY¥Àži`EzšC‘è’®Oµ1~?ò"4ä— Ô!ÚIËè0ù#ݬ¡©:© {wÈ=*YƒTŠå]€4³õ(ˆŸŸ’lÔ«MU5Ô[ž ÈÍPû™È‰è~¡[Ó‚/ðc¢§–Z¦ýÁ‹ÉÞ§÷цñ;'åêÞ•6#‹䙼š#qd^†ì±œvÐFú‡z+Ç–0×ñ°½PÿA(¬?øð,ÚE%ðÿ1‚d•Ù#ÑÁ’ò“ áÊH¼«KrWDþ˜þÙüs†GiB¾¼ J~£Õpî";y½\‘CâküM$…œr—ûÀµ—àçøÜ!ÇqÚAaÞßÍŠqžÎm'2î r W#¥7W“¿ÌDSÀQN|g–œãzRA.¡viÙo‚žýx7úø=Õô“òÒê àÇaô’füÏ¢³" zE".ò?Ùÿ#ŽÕ4Ô«ëžüVøvQúüð±®[ÑìÞvUL·*¡”MžÊvn{„½Ê~c½ðìù®Òžx(ME¡ /u.ðc ùƒô}^Pì;ßùü|„rî,]ü¨I¥õDÖ*j?Õ?SU]Y¿Ö%¨v8Ÿô±nZQÑîA©ZÁÙ¡Aüý@ét (°ƒò¡_õôÎ?_®õwS©ƒÊ¡¦è[}ðí¥p㻑nÓe(Dèc<Î~ÄÀµèª»}³†¬ÎôN¯c{WîÉ‚´ð”\JCà]Ÿc|夒‰4ÿöÖÎñOÙÍdºcäÃáýŽè‚Çß*„ü3›Ú‚k3薀몄dó¿…&Îzx Zh’ØNn~ÍÒÉÕÍ/”ækµR¿!k$á^Þm9|FipéÎ|ÍQµ”GVò.Ì¿C»' MbÒ)ýV·AÛ|^ÚLOQÕWo¦Ô<‘»pQv4Õ£¾Pü±\š3ÂÓn¡Œ| µuŒÿÿÍ¥%¨å¨^[÷Ô÷Êî£ÿV¤†:¯åüè]¿½>ò@#)/ge¶¹"Éä7”ê2×»~{¨}7¸ñÙ޹ɳ´K>ûÎ~äå9|†ïò:hÿN(IäÏ’«rP*˜M&®\çBòtÏËEø)ê»I±„».q˜ýkƒí4Ô .åáÜ|K$“b&pU'Åycb;›ä·”*â>ÁÉÉÛ¼÷¯¦!ÕV¢#ª|˜çç)ð™sè%M¸-úÝs¤¢qÒX¸ŠÜ6“MEc››pû7yD6“ù/ޅ¼uü¨ËkCÍÜåùËú‡|¸RQuŽÎ“tGº~¸ù£2ø1ÏT5§%£9l¦›&2X&™fÆukFFþˆ‹_Á¡öÿØg·£`4œ#?* —t|ÚÍ1‘^™²f›X(ÍrF€ ª¿DVšƒüáÎòéÏû¹3ï¢:k¨ýÏ›‚6”;9úÀ@~­*ÑIîäCjˆü±WN›ãæ“ÈüŽüñ§$MbÈK6!Qe¥š¹uùÐ ÏZcÔÝŽÆzß | Ÿ‹ŸóÊäÍWÊ(ï¬öyÈ?8>NP(º³Uâ›ô(7*òG,ŒèäîOS^‡g·ìÿôáî_›,?ªYáSÑÏdÖ~+‘=ÜΦ2¨KV”²ÙSÇ.`·ýìV°gïw•öÖ³WÝÓ¹)´!7íP[í÷Ö9ëµ:ªï©*ľñÏiºªWðÍcuÚWXYÏÒI¬ö=$ãFº¬ŽNe©… ߊ¾m,±VÈê/~§›Ô™{ДY€Fo¦ì”Îõ]ROU‹¾]œ'“º ~´€=ZI/ái}é>òû ¤›$lÀ-¨a2ê¦ë³†!žnvêˆHGÕà™Ó!Yª ­û›ÊBïÏP.ÞKii ô;3ÝûæþQ·í&ôJÓƒâwt/PÇüÉÿÀÞ¡ÙÐú/•®‚I5(Ž®`}í9ÞÏ9« (€Òr`ì=×çt jH¨=ûpŒÅfüÌûäã,²ÇnÚ‚— -ÄQ¿PZ~ðÃ]_2±÷ÑB´adª+—'Ò:UYÅùܪæ®þ8ŠSl:ªCtCÚð~¬÷”T#À$Þù~Eø¾ÑuÌÁƒ‘G²q*p-;ŸæåÐ<ÍÉxG[ùÑ*”;BÑgëïž·{迨Š÷;[ñýsÔ‘Ö¡EòORP.È:sDbÊ®(¥åoö?Üçç#ùô¹#zÏÄ0íRÐ~«3£?”A 0²“îÐN#Qd+ûÉqY~Ì31å6—[:pAðÈ#àÇ®îÄ óþÕ^ïüãô-·Êkq<ä…ɆËßf°ÉäˆCÎv¹ƒ?7’`®Äy¼®òBä±]hçsªV˜÷w#‚Ôgè´»š(øqŒW‚G-äûÊy3Íd3Ú\7²gÈ;™Â³ð3;q?âJ-ÞjÿA?Ï k"…P'v3H2¾®GÒ;¾$ã¼üè/“M]sùã8òG{$¯Y¦› Bz~D‘> Î[ºjþÇZë–MHd‡à1’È]}Š’ËE 2/L³SNIQr¬9ab9e“Dv2™rIrsJ$©£Þ¼QgÒE?𣒵OY”Yw95æx iï$1›ææsN‚lÝMÓÛ¤2ãä‘ä3×xœÉ,«1¦Ÿ!¿ûé4\’þüÐ ý­Ejˆ±4}´õ0+œŒ»SÖk Ë,u:I˜NG¤’jÎJ¹'G9®IÊC)œf"´a*έ×}eÜý78V‹Pï_Ýûÿðþn$ËßrìÎvqUBµZîúí¾vyüÍû•uí;Ÿ¬÷ÌSgudvwˆ¿:f_µFYÁêŠ>©Î+uÿ;sRyu2Ñ(äõЙá|³XϬÓð¿iÐ7NƒTMU±p•ØÃÚgP×à<ŸÁ‡Õ Ãô÷?HŸõ®Ñ­è!Jª ëãázþSíTŠÜ™ÔÓd(R>€^£@:IÍA“'è©ëà›_êºß7k¸ÙÓ˜,š‡Ï?£*¼ zÚŽ¦ é*ñKÔ:5Ÿ‡cé…¬\…ÞÙ¾ùüã7Ô êvZyšY« 4¢=T1„¦‚gqMsó~éuqëk+eÆ´–Xµ(ϧêpas¼óÏ«SU\ÁΜ.y»óз"…m¥™H;ó‘Sæ¡ÍÒ}ñý«”V Õ.59/¥(´ ¤4¹k×ß¶Ñ*•@ý(Ë v5¹5Î} ‚ ÒW?ö~ãÅ?‚™½ÀÅœ¼—›II÷Ý$s@ÒËU®$ eWÁù§ãCÜØ»âá¯4ü³õãØ!:µ¡üÈ[ ãcqÆ‹8­¤”íÈA²@²˜‹æ_áêâ#C åÙø>ïà h©â¸Ž&l¶sÐ/´×/êÔ¼ á¹²,+,ýÍHä“ÈÙ!ç¹®tE âsË ö“y ûQk:«}R^mq ¾HAT™[ñ:γ¡~Íe§“ æ“ÉÇÙ'[x¤¤1³¹/÷DþØ ÏciÉ'Cíÿ±ÁÓКâÝú•BûÎ×}é È0Ù‘ö²Ò´3ç%º9mF˜6 ‡ÍsÃûü|)Gîœù06}\wŽµßŽÍî‚3¨†¤$ÚÅ™d1RG6sTvÉOæµ™a¶å<?‰—ŸŒ+Šù„sw3±t ]ø?j[KTdr߈Fs¹Ÿþ…¶HNç'3ÇÔ@þ¸'›Ìs3È$…¯ÊP‰n>än`ûQŠÄ·0Füµû†åÇU<·ZëÕ=4úWv’‘ Îr“T¦Ëbéd¦˜VfœsÙ‰ïDsjG2;»%†Éê9ß1é:Χgà’¡Þ8ûÿïˆaýêIÂuO‰ûýÝ8V€Çîo—Q¹Ô«™wý’úv6{®½Ó¾nÝõ\ø®Ò.z¶ƒEáåŸè|´_í±#Úk,£ê›êŠŠ®^çüóÒê X= eÍAە׋u6+–ýTW?âèHÐÙÆê[kÑþßÑÈ:kÙ`ÅŒ•úИÔWÁ‹”ÐÇ¡›È†JýŒ¤“_ÏPáy#ûµ}AE„CŒÇ£ ³QIxò`º¿‚ Ÿˆ–êw BpäSž†tWÏÓÏtbÎ Mÿ‘ò’F¯œ ý,‰qu‚ÜY^9¡DK©]ûæ*øËìN‘ǃ6Oi½ÓƒÀœÐˆÁȾðyS@¼C¨kz¯Ãö¥˜º°µí+eÙÖZ˽W»”~¢Âøæc}Mסšt‹~ƒ&W¦Ü™£ñ:\×Ý4n}9u÷fèŠ*ìÝ!÷Ècý¦ÊÒCJ --ˆt´ôðŵz œ¤MªŸŠ/Û (?q'êâÍ 1i~¬[Ðâ/ðcŠ'­ê«WQLøÿŸ •h?òóLîÁåAÞmîþPï@Ô12OFýÇâ×T$¹¶êv‡’ »§î„³LÉëx½w?u÷þv¾À ÄW ´r™›ÈÏ2‡ëƒå‘mÚ /Ìà4A¯S^^;E…ŸÈ ÷CRن찂³J.ñçA(+%Ù zÃÝÅ‚†fà¼päëPf/öÅuŒ‡Äº¼=vF¸‚CP´D bs´d Ù(;e-ב¾Ð¬DÎ £qò åõ’k\ …€ëÁW´Ù}Øû.}KJä®,A³µ‡Þ놺Ý7køÔÓœBôýZçæµ”‘Êã›ÀµÐ¿Ø(5úp¨éxÊN¿ùüüºý;%ä?Á`dT5-|~Y‚äbÅ3q=7Ð)*Â×hˆüøÚLÑDÖv«¾»‚ZÀ™Ï„3¸¡›âSO¶¸9-C¦‰Â[àŠ }ló~A¢§c«G_(-›ÕMÕ¥ŠÎCвŠ׉qýh¯š¬²Èq(J5îƒ,1gœ‰N‚XÕhÈ÷ÿ¨®†ë9(m*×àL|›F!¹  ¼‰[s%hÒ!ªÀ×Á‚}ìÚ/Dþÿ9ž±¹²í§aÊ ¶ûãªW LÐð• ù5{3‡Êý&5å<êNI ]n*µdW†ŠBZh~ôåêÔCO Ó.µ‘?¢ƒéA„åH43è.íæ’[ÎñtY'£$™oîð3ð‰äÎÊøoãŨ}aô®HaÞß=f§¥j¸Ò‘Ù}ì®LÙ!«d#ôÞ]7‰sËØÎŸòš;I[yÎùáêg[ÿðd©:ä§š|R^9)-D*Ïx#í?–繌\AyEL 8ò·82Z"›5 tðÃWwøÑ€ë~ÊZãi~¼§N¨U]pkšnB·ù˜´6ŽùTZhZB¥ š¦/øqR6˜Þæßò® vƒ[p¤Å7úãØ[hí±#qYxÿéTB* —Œå!Põû¦Y#—¥£Éà,4G9wåŠ$s~7åå¹$åÄ`ïI¤š£Dº¸®*ìQot”Ó•V|¿ÑD©êülf›ì&Ÿ‰ƒ,ãoÆÔê¦Ìm2;ZZšä²› Un ÐQ¸õúÐ OZ›Õzíî÷7¢ãúŠ”u–˜Èoˤ9 öö?n™jNO“Iç€$]šhÈÄÑè*¼ov°»”Þø•q÷ß<ZMC㠧~{dëŒeÛsìJªZä]¿}ާœ]Àîjo´o[¯¿óùÇaÏåOF¡ñ‡Õ-ûµµ×z®žëmê¹zfÛß\ùïÓ£¡ºî£óC£›P}:—Ë> ýz­é`™*«ð%šÖf륺z\¤f ÈaêÆÓàEî©ÃèO‡è­>©ëÒH]P¯SáI”qU bª~LBþ˜ßµºó’NÂaþJQáérÑmQdê Û|³†»Fé¡zSQîc;×7J ²›CcÚàÛgh½ÒýÚ+Ò<ž‡bDÞvÒ9:BY ÙC¡Ð1uö¯î_›ÄZoµ?¶Q-(þXðãºnæ\=ܘ¶rwèôïìó5(s>¨5~×eTÄ/Ô2·ÕVÕ£û”–çPºŒ+W€² c^£\P¸=ª¾Ê+‹y:æ¿pGÓï8ë; V]šÿ~ŒñÔTõDd­È? õ-„7èEåPBè{  8ny5®b ^„ú¡n4¿û©çŸí¦üÌûþn>rŸ,„ö^ aœ柤–Ef­$“KÜRʺï(?"ÛüÌ“Àå2Ô[S^.ÛC>Ôž’ñHèýô•´ J19Ã3d¯¬?^r©!e'C:¼ Ú-äNì®KüÎ:õI‰k½óO ·%ÀOlÌç)¶lA9óØW†š‘&1ôÊ}_*¾´–frLMÅ£y#ÇO_å\¥>í‹õud®‚³ä º½ãÓÞõÛ[Ê0élj™=Ü5=Ìù[¦›öæ6²Ñ^f¶Ä•Œˆü1åCys¬­¶æP%‰1“wñð#§Y&þ2Àdr6™K&šóHNÈЩ§KJ\ÃÞ p 7¯ëŠ:ý~ü ½Wƒ2 /Ìâ>ºùK.Ç”¬dʺ{Öš¹fº‰jš˜g²D~4Éœ 2É<æUàÇmÊJ7µæbÔàC/Üb­Q£õ0Ú‡þ^‹VéÈf(Ò_všd1óÀÞÎ=ç©)ë´0ù$š³WR#¹Lj^M¡?ðÜœK语;÷ß<Zm¬¼zÂ}O‰{þ`\ëºÇ^bU…Õj˽;ºÏSÇ®€D² iáÉwî_~<Ñ™?Bt š£.Á?m¶^¨{úŒ Qì¨ö÷ÍSi­Î@?†€Ek©eÐÃu«²}G· ¢º›Ñ…)E¸ùqغ®®Òiº…i5…ÈLôzèÔVJÑÊ]µ)œûˆz¢„j¢LEÝÖÑ%¨geºUðÎ ¹àÝñò…~¯ è_¾YCee¤gz¦Ž E-ÊëêA?†PoŒìD©àA÷üÀæCß|þ±Ñ.Nö†?ˆÄâæøÈ¡"î}çàÂ×ÀÅ^€f€;ŽEÁºñ•²¢yðÉ (!Îö•¾¨kƒ•AÞ•Ž:#4cáí¸¢»pVáÝ‘è:é$_Ìõ¬ªøñ uÈ o?‹ÊÂo¤yóñtZªZ«h2z—…F9S¨1|Ú>ð£|¨7_>Û=%ÕP½âóŸ\5~ ÓRU8îºÐ2XAïóóœÿ:%AíAKk«VH˜òHÍнÑÓRðL\«”pÉùã4ÿ"9ä L5%ãrøÓd¤9)ØQ´ê ¨º¦] ÛWu2êG…@î?‘hæÒYÚÎÉ$¹œå¥r^5–ñ3I!§ü CAÀ"ÞÙò# êU‘7Ó!½‡.º|Ø]S>/úDY ãd,7’_ÝÕ7œ;æ´Y‚,S^:Ëuv³k¨ýP$Ï h½sª^˜ççéÙ]ç:ÕáªÜ•^óé!Õd?g‘'¦ŸÉ-õ73ä ÿ%¯d”¹ 7òî­5œm©À‹ôàemóŒµfÝpÕ~FûÔ))–Ü‘_Œ2Õ‘†ÜýBCýÍð¤•ü å¾vüÒÜ™òš£óèPûìµí¨¸¶÷ÑëóI=Œ¦ìH™Ì]“Ûl—ÒÅ=òªƒPÍA Òøç2z´.b%´oë6TO×Ò©©µ çúW}­eÖaµ i3·¤òtžZòBx‘”úòçzôªh4’¶ëÒzi¸ÖOŒ¦Ô{]ˆÜ“6Âõº÷J@‘áìƒÚ{øGÚ¨u:ʬ ~³†ž\tIÏׯôCªÁ+©(Îì¹. µëOeØá`ÊÏ'¡W‚tÙ(ÐNö»Ûep†½©%¥ ÑŠ 5JËAíRóUï‚ûQç |$ÈC¸v-Áï)/¿.ɹ8® åvç™t“H ó¹,o‚Éj®É óòÈh‰dÖp[îŒÖÞ:OàÈR‘÷ê±ëæécÍÁèê‡æ^™”GkEÏ zÒßÙ2ɘ9”3^n”éK;¹Pºqg¿]ѱŒà$i-÷ÈP-Gå8òë‡t¯ Ú?Âá¹r•ŒuÏÚ[ÝŸv¥ü*߸îowŸ;*]Í:7Þí²³Ý,sÂ,´ëí`w‹ýÆ4sÌF{{ø ’n/5)A®&ðSñk# ¨o²ô– ¸*Ô±¾SNÒëeH÷|¹7lkÛ›vHí°ûÔ&¹*·¾|kÓÝ•î{Û‹ÖŸ°/»†nš[']åÉÈS6Æ¥FŠ¥@.–˜èð`úSDoV26ÅhL!}í…õô¤ôLÙ-óe˜™¤H)£;É'£{¥|Þ[`Qñ²M6çEGs•%çÉqw™k/y¼q™l‰NŠEkSiy=³Ò“‘_1ö²Oà~#›oò¨)i¯–7¥œ«$ÉÆörÄ[ˆ·˜Zåµ?YjÓîbþ鶴cR›O}{ÒÑJIã©,4%›¿â¹.âélžJ¦¼BZ•½D>Éä:‹rãùÉç‰oÂ=º1”éKÌà*^12U-Žgêi«|ÏFÈ>Ù‚–'s§%š5™þ¤ÐŠV2ÐDLOÞ©%kÁ–2ó %Õ‚[-G7ªŒGÓ=R ^u6¾ìnò–2Tû^% ¦¾ËÓ¾®ße·©m»¬òzëçÙ𷡦­Èá41SÀLž¯oÍB3T±ñtðÜãDàëz¼º-ø©&ÊOækÒÍÆs¹öfiä}iÔ¡€W[a[É´º»¹>ém¼\¯aöû ”ÍCw[b_ãà=CAkæø«a¸{!ü¤¥y€»¥Rn¾ ? ªL׳™Õ7¶_ÉñàKs«©@ ³Íp.kŠ…Ù°µóAŽ|ôl|ã5Z[¶¼†6w@nsÑ‹A`Ð\f˜:óWй`sgì99¨¼„†¬…Ñ·m©½×^ ;©kÚ¸¦î³à,Þ¸Î> ¿º'²ûÿ¼¿š@™=Ñç9`d3®gƒWs1ÏŒ’§ø|(x^5EË}È·¯< nu¤ Á«3á,{YØ~ÕÜ~gÁ¯Èëæ¤é b€W™+c2ì1𪯹K¯ÚDçžÎ…CSZЧ2Xõ”×NÕ—¿úp·«‚ÖS:ÛÀÎãr2„Ú3áêp±\!ÜöN÷»]Æ\÷£Ûä>v¹SŒÂ7~5ËM3W›sìb;ȲߙÆÌÛìÃá«ð§nÔwQ ^‡dôÆj ½å[)|™Ûä¹ÖôUöWÅlñ49™g6Ê`3ÄôPYlcÎÆ¶ig]|’ Æã^Œ î *ñ=Ü/iæ2øU:½øÎüž4 ŠQ£"oIÛÀꃲ.²9Rßx~˦F*çl¿€UÁ¤üÜ0Æ7 »îÆ5CScÉиåò=Lü)$\^ý~Ž?X„­/ùÆ… ÀƒÑòƒl ¾7 #xuhñ‹r¶ü.)ò)g$e¿?Ø}:Íu;üè1èÝpdszÓ1ñZßiޤöI1}|‹_/«àWMð·ckµMK<±·ƒ¼±k=^]Öü^ Czég:ëèE#k3=|…^, æ‰òd¡2dêÉÖº¼O—Í¿u²ôérõšjñY‰â¡÷3(Óc[’>Õ”O2Äû>Éètwjñ“…ôêЪZÊÔ ÔŒáÚÇz²ÕôõÐÏëk˜fði2ž^uÐT#jþÄ=nÌÂê™7U/` ¯¼¿¶¼zá1­%ÖÜ«ö=ëŠT˜´8Éf˜cèvŠÞ?¬~ßdYfz›N´Á׋Ø×j}·ìi¬­¾ä’`_P~•K½÷¤nj?Oýb>§Ü‡Œg”é¦]ä´´Ó²ä™Y)ä~¼Üavƒ#-ñ"’äKjøQ.a4j£•;˜ƒ7ƒÞ/»†õ0:X |. ÌýȽ½ ì÷ÁYÌè͘½Û¯Ε)°²ßecð©ÙgªT«N҇ߘKš"Ã.häBõ¿GÂF9[€øo¢cÝÛLlg0LvR€d+À—V¼Ùì¹AJ‚NÁ”¸S®Œ~d›Ú‡ìV>O3ÍAŠÇáW=ä\#‡àWÍ‘rW¬l mÄSÓàu-”§­EæÒ†ÅŒßXÐix5J¾¦Õeô¨˜Ï–¡%OòӚѯ‹ïùY¸Ð^–cÑÍm¬ëd§W¯šö'1W‚W/›ñ1sín× -§¥ÑÎÑeA{ÊŸ+SL6ü¹1-iOÚ‡6u„y¢Ýèw?óLd=’vÝM¯‡Â·ngÄaׇ·ÛO­øƒWÊ,÷€=éÄ­gN b6ƒWϺ#ÌËÝwµäf™½fª]Š?xÀ~nêËZs•½%ô3æh~6›ì`è³>¦!‡NH¿ x5mnÄX·£u'aÿDcpåΰÊöd®i"·ºÏm‚^uÅLv×»Ÿìäü€}69~ÕM^V¬Ñ©Xõ½?˜¤Ø•DI¾±ÉÊUFèÛ¹ Æ|yúø^+Ff’Ž¥Ž2̼Áz.:E:™Væ´bÈsXýøƒ¾¥‹å,sBšÏáZÉË`Á|åÃäUÙbå”çÃ’ï2ƒiW"¥Mg†¤RÞ(‹Í4ãya23ð×¼¹R£tåG3•ç}Û†w ƒ[çGð;7Qãý;üÁ ä.ãù[`ÚF>•æ—âÓ272>’i<—|ÆìFïòiçàSœÙËh E»®Æ–.E# Wb­€&<ñ†4¯Š¸ÛÑü~´7¹¼1ûYnÆFÑ?³¼º ”íŒ{Èý#ãÜ ™õB j0ì|0ùqì¸þàJ$w†9²?sñxVfïµtCÓ xf–œ´¯*Á +¢ïà>`7q?×´r­Ü£A'XÉ›—ëàWØ—´ûÖòD_ðj28Ù‹Í8þ*ÿ¥ ‹±Ž±ò,c6†zäo¨lúf„qHèiðª:²0ú%üê²°Bn’³ðŽšÛñöVù¯¹Õ^î¾rûÁ«ûÌœ˜vëìzš£2:H‹VEϯ:SËó/uÓŠrd¹—+¯;=±>ØÚ ¹•º ia;kOž”c Æhî]‡_mg3£Ücö÷'øüüä6»oÝ=îN©oVºñnþà,süjìn²ßâ/1;ì]øƒó‘Ã(Ygêýèý™„–¯äª’úÇо¹ô¹-Œt÷#ÏWΗGÂæ¶½iÉ»'Ý×ð«¡nãò£Í7¾°ƒyþvû2x5×m ¤7À«Z.ˆ”2ª—Hüj¤òŽH:ìlÀýA”µ ¤n„Žm¥U=˜£},¢ÜnÇ(xKmÄS±/o©WçFÇj¼{¹Ü…?Ø}K’]25:-: ®M/ŠÌú‘¨±”YpÅ\õ+K^š)Шz!£þ8}Lå]ªFŸ$-·PãB¹|Z‡‘ȯ‰˜×åN–^g <™Ã_~E$KùT2í,ÒX²yÌñx§Q®,}>^ýÎ Ç+Še!ƒ ½_Îs •Íx_¯Fîk)¢*ëJQ¯±¶¢o§‚IÚK¯à*Ë÷ëõ¥Ž¢j¬2»$"y|˯a[µÀ£°õEÊ›ÉÅØr3mi ¤ÿ5’öø¹nSbÞUx#Vz#x•Çý}ð«ûxÎ?ß6Ñ+ñøÖTÞ‘1fõÅ!³ÀÜdF¨œ¯¯Nk#}žg¶`ùÁo`æXĈgòFcÐè,3J玗ƒ»ƒÚÁñÀó±Óàâöà_]?øÆ|t‡ñÞsÓ°Qàç–¿dmdD¤Èh¿Ìž`b¤™ñ£}M ðß|¿[€Q+AËþŒPsj>"O ãíÁ«/(ë)4»œyòçð£ ñ vlkgx1–9†ò/Î˜ÍÆGvóÍ)f¿—ߦƒ?ç ¯~µ #–ñ¼âUcy [jh~¥ŒŽôz ìÒ{P•|2˜Ù¦’î ^æU_í¹FÖDÏØVön».ÖÀ4p…îÏDYkë7Ë5‘‹yë;~ûSÇƼ=%.W+MM?à.ÄV›c)*¿êÇœs.#оÞëƒ7uúuàÕ9vWØR®—VÖ¹Žv†=)ÇÍÝö"÷Ž»&ì 2KàW;\;7Ô\&—©Ñ° ϯ`Š& ß§>}.…m_Ž=´¡dß·!ê =Äm·¢Þ9<q1Ÿ×‘]áIûm¸+\){¤›{ÄÃ7»ÜÿË­u¿ºgÜCÒÈ,†_ÝhgàÞ`¦ãNr‡í0åóÍ6{?üj=é¿Ê ú#Ù (·­B-à-ýÐáZ1)Ÿb„ý,êyò½a:þ`Æê€ûÔZ×Ú­¦µßÚÚîj÷þ`9aßvMÝt·–~¼yÚ¦¹ßƒ"´f‹ø•Ñèg9³Öæ-¿VR€¶wEþ¸N‚_-–3Iý¨Ò–võFËcÐŽ¡èÎ2å[eu0;:Aíp\åÖ9ï!g`Gm£££•O”ûþë½_;›ˆnå¨Åס¦3©JÔõÁ›©%E}¼êµÁD}*UòqüZ^µdÏ1òuE8±æI¿úâýAÏÕF(¿òe!wëhÜÉ#C)ï$×`”GÁ,õ ùR•Åh¼=C¹Mïk´È·¡1-ËSü©öâj)†d2>¥¼“©1´^ ‹ÕX_#žËTÐÇÕ34bî4¾Ÿ¢,ÍG×¼¯š¥k‚óåüªšUÀÙ§¡ïÞƒl%]̧”ëýè³eüÿUmç[ÌÚ—‹Ç4fù2¬Ñûh©XÀƒŒÞ9Ú†xøSÍles«4Ÿa¡ö¬=Òÿ¤òR\*ËÍaÓE1j¾ÌRÆ ¶ÆÛÿ03àW> 8_°¾Æ¯Ÿ¾æªàw¤èäWZv0~õ4ÁD>–:GëgdQd@¤>8æäA³5èéaüýïÀá/ñLòA¥NhÖõMš¡g× ^W¼ZÅS%æä×_ö§ðß µñLõ™l„ ‘Á08Ïâàs­i‡Œššƒ|ö².‘yhä~üì0M|°%å¼Ì½fæwzÜ«Gåh¯_Åꧨђ»¥<(àvôpmô=[nï·[УRÓÄ5ÂìMë¦Û ¸UD.¡_1î£À¥¡Ø][ôyozÄÜ)?Ñ“XM)žÃS´£5~Çhy¨^LãéçÀý6C9U¢F¼O–§µx„ªF—XõA³©/SBúâëj¨|)F=Ë ]ðže÷Ó4# MHW¦’¬>h†¢lŒÆ¯üýXeejì-A3&ò¸›­ÌË[Ìäéñ¡œ`,câq²t7ß0:þþz©mòÍúî~ú÷6~uq¿t5Îü­1¿ŽØhöOK«àZãÍDõDëˆ5Ô¬^‰œßF“³ÕǼÂÇô¾Û `É2F¥þl>€£/7‹[›^1/ÃX37Ò/RÛx¹ƒ9´´5Þƒ¿‹úTî§Þ±èÃ:™ ß%^ç¶€Õ/{$‚q}%1æu$ÖT M®ý9hb0â3d ®€/Œ@Oo⃗ñÚóÌHí4¦;¬½ ص‚ö—ñÉRpã¨pÉK5 ŽÓ¨Ñ`žùCÇÓÇ#žUã'>O¯} ceôÍ¿ªÏ|Õ¼*µSíy̳ç»[ÜÞ°]ð‚3Ùn5{ƒWã‚:Ñüèü 3Ó49—ùk1Z݇ßK‘n=Æü2þjF?ÒÛ«ø7MiŽ'Ø-:nÍcÌ ä‚ðzûox(\¿j^woÙÍò-üjûšH7³Tóf¹)hÈ9v“éŽÙ¯L!#¾ð¿°Ë¦ å& Á?O¿òéÒi­ñïeÊ'üZå!p²=–Þ˜{†…6Ñ´§Mÿqàë5w«»÷m‚»Â}n}¤à8þ`k7Æ­C†/Ež³Z)¢¤’ BW¢°†bJñÑð.ŒD ƒÞ…sÏרµÏákJÇj^RWÚ1Gms»l vD‡©´RöƒW}Ðç8oSÑ_"1ÃÍÅ“O¦£W9CΣ_oÑ¿˜Gî@Ó5š’¬ $IÿMÆÞRôy¿FWQ³NW@-µ5¦î}½ÎèCºFÖ3hs¦2šd4¤wª³· ÐÐt]³KÐÏëi”<]#Xu”Å)ÖQ+MÐë2í•ÃÆüúwŽbfOd*ZùØYGõUÓ»èU¢âpåiµ´†zÊæâÀDrû챚åÖà×4i?³²_gôëût’öýÊ4OPž•™¹/•VÆ#å,dš:º>Øœù²?wxf žÉ<¸q"=Þ%ßË f _~¤ÿà热²ÅÜbzÓ–4jý }Ú¦ÒoŒ·7ÃŒåÍDÜ ÷¸-ðœö(¾çýÁ—È ^¾6_¡kŒ_Ýý^Gþ øU:¬bi¤xÏÛ/˜k‚‘ÎxüñòeÉûhûfâaàU[ưD3Þ£Ï-Ѐ¯¤Ø<‡4c2í¯ð+ïGÍN¦Y¸ f[5ÝÐç,s vð²n õÀÙDÛq½H^•;¹Û),Ý†Ž¥Þ±H®’Rê"çA|žMºã[7Ò‚·Ñ­KÀ«m–½Ïn÷Ž)uîLЕ7—ÚîÁ1¹9²•±ùIÀ‚F#Íoo‡Ì†2§¼ƒ¿°‚:ÚóùAå£å°­‰fO¾ xõ4¨Ý\× —E_ÇÚëÃr8H;û89ÕžûÌõv©{Öí ›™>1ýìÍ®ÒõÂ÷äGK£ ‚ÒÓsH“n!Á^š)p5’­„Sõž‡QÛ0ä: Ýóù ·ÒþéÌ §ÀÖI>R„{Ã¥pÛ¶îa{½m7ÒÎoÝJ÷{Ò“Žf¾æ.·3Ýhs ~µÉŽpûì·`Är³ ¼z¾ä×é6›ŒÀg¡Í¤u`wÍéiuôBêåŒc#pò÷äùVÌ”„6É´Eú÷Q§s ÝõKüÁkÝ·¶ØsÈžvMÜ(·ɾ9m¶6Ò„^^ iÑiÁ8P±2ܬ^që OùÍÐç‹g¦ªÏUÛlCï}¬¸D£\Õ냻es°3Z=o”Ãn›ë‚6ÔÂF:G£ÞƒÎÁîJÍÙ´Ñ£@}Õ™|½®ÀvÞ×L+Ïg–Ñ/Ÿi•¨Ø“§–œ«Ñª:5™ ù ÊÔ(÷ÖÒ4ï£N-ÕÇK×;CÔ¿ó1·:ºâ—¥‘ô<Í•HÐHi¯­‘8ý>ö¯¬¯r4ß¾•¹.èilü ê>ð ÔdLæ¡Õ›Ñ%>bÎÏXö'ô¨@ùU©yž{M™?cì7A#Íg˜&÷ W!™^𯃒`¬°“DÌæÈ·hóhžéŒÖ1f>Û}1^âÝ{ü(3?]¸?€çšj„Ú£V+4¥ ò=,¥AFðw÷â~h3À«‹à ùøƒ¥îË`0–y‡ÍŽË"16?RÆ0|A`ä ™ÀÈyÐǯž±ÎÁ|¾èp¶/Úø£æ“– ÛwÁkû3Û<Šuùœ¢ ÑWÂ)voX‰¯Ö&Qð6ðê;À}ïn;™ñ1míNZ1ÈÜ)9ÑÊèò m¾\æÀ½gjfhKÆm-è‚ÅöE߆h>ÃÈ4i¿ê@ëî·æƒ-yrM¸Ç~^Φ¿Ýö0üj¥ó;?ô˜;!CÍEn‚[ ¿š^ͶØ)î°ýÎdSëfûHøR-`N\oRàW-ñ·b#PWFuµÏ§ ÕR>ìÙ#ÖÝ4¹#lasLsÓàU¬ËÇì$_Øt·Ÿ´?ï²¹b7„ûätäEû›MŒ#«Í¿ò¾Î`]»)V7™¹a9õ{ïix\l(k)¡nϯªs{"“EŠWÈåÁîè(E”U²Õ-r=)=ëÍŒVçk5—zÆópŸ3™C Гxå<ÓÐá\e9¥ôèãêQ$Kãæš-Z›òÔzSx2‡ºK´ÌÚ´5·&“=ƒ6gj¤>IóE}ÊÿUü¿×é’5G½@ñ'Qó Ò”³%)¢å*2&ë}¯ï1ê9¥iDɨñ\»kvU²f”úÌÛ\õéêh¼+M#^©3KзÓÕŸÍT9´ÆÛþ§)]ˆnµRœi…§õY?¸TH5ÏjTïšx¥4G{’YT3ãóºÚÉ#Ì*#´ íä]§>`"5ý*ט‘Š–W0û½„-zÏu¸ì3»4~åãÏ*kËU^úþà­÷±`-øpXýÁW˜wo >U)F°ï½²Íø˜@†éy_ãíV¢fþ`]ãÇ¢þàðÊóàk™û@s 4£`-XM/Êñýôá[ì»>xõ¶41ëî•|óOø#þ`s®çK{üÁ%Ø^7æÕýAA°Ä4Fÿ¤«ðüê2æSÐÉE W¶fc­†Ë܉U4—ÓàGcó3Þ@7$ÙÙúý8 ø¤¯f7Õü«² .ø€É’èG¶¼º o5ÏT`;½iéÛ78,ODÖ‚z_+òyÿ´'óÃjóë.=@‹§ä3z1“6–›4‹`Œk¸÷o‘êx/Ñóèkš±pªÝ«?uùv†½Q7÷ØeîSw4ìˆ?¸*¦¾Ý†?ØÏ—ÝAr4]ùUgfú‘&Æœ§;š*@«Ýȯuûø•Ï,ëƒ,£{#éÕ1ú:Ü8É\1 mo´†ûÕÌ^mÝ#ö ûÔÎÇ“ÿëýÞÝïn‘YféÖÙ9îl³¼Zi§ã~mêÉb³ÖÞ¾¥xÕWV˜¬ÀGÈZ€ÃYâcN͸^›9›VyŸw ÜNÍ}5Æ·Lž ‹Ôl!÷âƺð¨Îò™-t»Üwv O²Ïºføƒ«è×›‘glDóÛë#Û¸è„`˜æ}`^Š3åÔUŸþuG›ú`CñøÓÑ¿YŠ!õ¨£ cèã'hÏY²@3Ðwâ^¯奲ͭ‡_ùèÍ Ò*Z[ó|~{¾ñùÉšO¾€¾d©ŸW—Ñ|K‘& »ŸÞT¨˜¨ëm™Š&)š^••¥‘Õ,åf¹KOTÔ¨MËÓ5—)ƒë15ñt¿"èW‘«=FŸ7•ù¿óN“@ eZu)?[#[>S2¶Wû ‰º²™£¾˜A5¤FË¹ê³Æi>g:ÚZ¢«zqšëž]ƒdhc¶²°XÍŸÏTé+E¹[‚öª€º|ü*Dâ>§n­r­B¼¢I M¼®÷Uš?±'}¾äÀÿO+r_‹ì–ºçå¨ ÀƒjgR4wët§¯âR¶?ÂôÓ¾”Á’w™—ÛËt½ðåL–½æB´Ç£è)8Þ ôÞÇÓšâÎ2ã5Þx¼ÊKïnö«ýùãñkI&7ò:ü* ý&s#CáW¾®*s<)4>7îj8Àohn¶®°/ÇÞüNŒÆHó wßfÔàO}*?£kiEæ½ð«  °”·3«ÂóÐ^ð·ð½ËMôñŒÜ†´ÞCÒÍuwÏ,ôØçóvíò²f)¶ÕÍl˜ÈX4¶'hq¶îió5ŒÓõÁ6°’SRÄž×Ý#Ë£ïÛúö~Å«z¦åLÐ y­µmƒ;åÙÈìèSÝ鱌™¡¿æ÷®¤K™/Þ§_Óé×Häy63sùœ’|| ^µžQj­í¼$ú þàî°!~r•­åÒí8{‹Þ¾D£;ëì7áå¡·¸¦îI{«{Ç.ÄÒ¿p‹ñïu7Ét³p“=Ç4ûÍ »¦uÌþdêʼՇÂéI=ʺȤ‚æ­‘ó@4ýäàãí«¯¼<šþîgè¬1­uò`˜iÓLkäwŒ4®•»»ñþà5î 𪫷ãƒÅOl€?ø¼q±ºp‡¤Fç>"W™®A3*ÑÜiŒ«ß‰ÚÛ¹‚÷Gf ©¯RוüúW/Z8Wõ“l6E«oµ@v¹KÁ«Ý÷‘m©ºÝv¿ IÔ=53ÁúB<ÕFƒ^Ôüoϵ3ÂÕÏø9>·&Š•¡x’¤)_÷¥h<= }­Þ­çóáËÔ—ËÖ5Ç¡ DžFŽ|ßêªïé3Êé¼ßš©Ñî4]#ÈRŸ3UWöji*M½½õdý>Ÿ—^×÷AsrÕ¯ŒÓXzšæý%+vå A¹5¯˜gò4~ê|Ÿ¥Ñ·ØüM©ÙËã½Ì4–“›ýJºî2ô«Á“·DÅ«³Ìïhœ~ ,!Õ¼¡ î ´ã*ø•oí0’7ð¼|½UÌ U2²æÝÏeˆÄ]Kib.3}4ö:¬é]Úê9ì¹²ßl€_ùëÛàçñ©ïMCùÙL7S×_ vIÁõÑ}Ìœ~0øU×oWNàez<É$F>”fßéÌÜHÝ“, xzP$ßøý;—¢c!Ýñq¢yðÈÞŒI u^æø¨ñ&ùŒ{Fùi¶ù,<4C+ ÐÂŽæ£pxÚYB³ü\f:ÑÓ·èï|<0=ŸêŸvø½›mð=É›2>ÏÑ«tó)uÆôÇ~|nR}|•|^ÇûÜØqý 18ÌŽÊôè[¶Ì>d7ck¦‘+w§Ÿ ±É&·È®Èêý{ëD¹ƒ)µ v0[RÞBpÇûŸ )yX0]‰×ê×}>ûsŒñ y†U º”ʦèëádðª \¬xUb§Ú›åsØvwGcöÀ¯N›Á1mìfÇs»Ì_ÅG'Óžîø˜~¿ó Æj}ÙÎ<Ô€6]J›ƒý=/ź2À”¶xÆ=@êcü;{é²-¼Îþ^†‡}­ò«“î}»L~—ïÜR÷»»Ç”f%g§禙ƒð«õ ×!û©#KÍ{wø<=ñ‘þ‹Ln0FcýY¿W©‘îÂìR—é À(4ë82^Äì±DîÓm‚iÉs7»÷èqw>ÚùµMuW*¿ê)'ðËÜ(·šçOG^¶ ðÛ¦Œ×fÉŒN¯²‘ä`jÿ‹šRçxضeì’™mWÁÔ—)')eLÚòYŠÎ¿)y©ÚÑvY¬ÎÔ5¦•r¡[㺡3‰r™Á¯F©ÔH™9o÷qéYØcž"G=x^->E÷ã\J_Ó’”ù9½6åjô;V=¨†šÉîcSåhAœò›JÒ7ý;C4[=I÷øøŸLm6㙦ù\)ÊÄ’•ù¥i~{¦æ¸Ç*ªeèœDÍ<ÍSOÏ㕟 sÑŠtͱ:Þž„Þ5Ô2jñìYÊÓâÔl¤11¿ž˜¯Q´j~•¦{ “k|ÉêýΞ£N ìÇž½çY‰L¼OîŸbÞ“é¡r[$šwôþfôa³T¿Fp9^WÔôÐ|òVhdG©ÞGS)¯Â¼†h]ý™;wï|«cÕŸ¡Í>·\®5;Ð3·¢»çÊ.Åóò–Y„ïYæ›Á<ðêˆæ3|Ï9ü¦±¯w@É£ò¨ñ~ušéy¼Ò}ëf%þ`¡ñóZ±¹%ijü®£þ¢ö|Øc\r&º5Y6Ä®¯¡E#t?ì—RjD;}nÕáwAsãóí¦2ß?.›:KŒ¹.ˆçšV´òGXüìßïüð>ÁyèqmþªBgïeVo…-<ŽVf™°ïΠËHпyøüß±htµ¶b¶(þ0¯èzÅÄè;¶ÀÞnwhl¿‘+p=¸g˜Ã²° xߊÑ^ŽÝô§æêšc+JÞ ¡ë5¶<ëñû~‡0oŒ×ì…`è,ê~Î×T×ÖDß ‡â–â3UÚ¯m=;Í—cæq[ÏM޹4ìNu©$À¯|þUÝ»kü^âúèFt ­îN¾Šž¢ëM)Œr'>¡ºZFï{ƒ/)ê®¶D‡i,èöƒÌœ¹Ó U¹Mû„¶zÜ%×›¦­JëVtw*#àç…Vò…ÙÎÜí±ô•`TR,úJF™­Á·üƼ&÷ÉãçcDÎHÛ@W0ÌÚH×H’ñkmÌÞ`h¤žññ®k™Ù~‘#<ÝN3C{ë~¿Ê» vñ-ª/WRC¦ù/úS!%æßðË ­l乘¹p$c5á^išÑÓÏÁ—…0š ô\zïWë¢gø÷q$Ó’ëgAá:Hq9º6ˆü¼ïã:…Ù)¤-ý`EYÁæylíýÔæØSv¸šnš¸÷9þà8YjW›“ò üª òkNíK)§Ø8O÷7û¨ØBçwÔt.º9ì_€ÕkÆQ_ ­|ï)ÿ‘¨µ˜>.оö·[ÃrH{ûŽma'Ú£r«9eûº61{êà3/æ­ðX^/øÕäÀFô:#ÃódžÉÔøU/j»ùÖ£¿WÒ¦zȵ9½ZL‹üù íПop¦3GW†×‡;ñ· Ñë¥Æ¯ÎØUxë»9î3÷´;%Ì7Ðm³g»Ñæ°™h/°“ÝQû­)•Ùf‡},|T.76› €ä«ègxÕÝiÃÜÔ‹z*èc´÷8ZÕÙ4gÎ} LµqÆï;8§ûÇ6„_õl¶âU°ç{½^u‘Wð£ºÇÇ \tL0Xg¸¡~µÐTPJ>èäóöÚSs¨=†¹i®òë¯Ôx»? a¥-QޱU¶WF'é:þù²ÑMs½Ð™d,°Gô—ÈåWxïæF´–bÏLƳP1§.vùQ ÿ)ò»g5~•ªqç8åiNy¶¢Cœ2›8'hžMY͹49šçãñ~Ý­7åf¨V ¾f}7ûG¾’5>·&†Ÿ¡±{ZƒG¦±Çk©šßåóÒt•ÜïTIÐ,„leQ±<é™m’æÁ梉¹ŠzqŠ“Ùšk£»¦³”¥ÕRF™¬«›qúy¹bl<Öv%òÚ¨Q´äêuÌŸ1ÕäÆÞãêf¬3›ò8v3Ò_‡è%t@ºš,ÓÀx/³3Ñ_ëú`kyEf©|ÞiCå&S#º›ù«õ‘það«=¦³¶å6pòlXžÇÀ¶àÕV3KsuŸ 굂ƒAå¼+ƒÌ ÁWÈ7ñYfÎ=š[•^á#>—ؘ味"iÆ3Ù6æx0^ãí~þò73òÓÑ£yhÁ:µœ1¼_æmñ»TwÈ0âeÏÇáY¿†ße¦½9^7<\£ûhãÌé i°¼êŽÝïBç^@Küú¾G©µz>’½‚ÿã#Ï£ÛEæ=´«‹øs¦)^Õ¡c{ zÞVš|kÎðôQðêm›oOÚ=~—«Éuùîë ?8¹Êþ ùí—#÷±Ï¾´jíé^€ÞúÃóÀ+Ÿõ?‘¶ e&ŸËç}öô°>}º•^ö’'hS µ»%Ñ×À« Ãfx¤íì¶Ôޝî37Ùò˜Üõaóà¿fZLs»ÇU¸ž eÇÀELZÓ—õ`x]3I½²ôû :WöІFHg«®F6wòÄPj¿Æ7 ¿$Ü‹?¸>\È[ýÝ}ö¨ûÈ®ƒã~ìæ¹OÝ î˜ô7K\ðê7™n†½~uÄþbJdŠÙhï Ÿdn𧫬2ñøƒ~½ÒËt3¸Ñ ùxntŽæ‹æqÿxÕGÏ¿Z?˜aÁ«F²~ã:ºhíóàÕõº>Ø]nµOº†®»[ËhŽnæÏyóë13uþõxÕZ÷q$hF^;FÉ3Ží²!¸ ~åsÈ/’+Ý׉vÆÓÊÞÑØèX=§ 13E÷ãøsæ ±¹š‘G?ÞV,Þ®Cz•¤h\§š#ÕR¾¯yPE1ªŽÕgª45ê0VŠŒqº¶^ó¶?M&[óKý™FúD-åQÙŠgÕ«€YZZ¼F¡ªñª–"DõfÖäyiÆŸå:_ãQ1ú¼g4mu]À—ØUs$’5FW^sFV-_å*g«^¥LUO8NÏîªF²dÆy3Ý6ͳhŒô‡2†5›I¹ùy”³H6Ï)ò½F]+¥Êxv6MZšÓÇxß­¥<Él5BÛÓ0ÝôPOú2<±S\{nFù?ÈPÅ¢Õø»ñ¬rhÛ Ùp4Ëï>/¯Ö)¿JAƒ Þß¿Z†™‚3вW‡ä ãË|ZúE¾_y/üY¹0Ò!Rl¼”6Ç‚q‘\ã÷‚þEùÐK6OWÆzXMÎN.÷¯who&þÔ'’kž¦~ÆÍˆý4hbбíÒØÌ'¡7½åky~u>¬°ÌjvàsP}zÅ…z†Ð8<ËWÁžæ` \›Õoë˜À،Ҭ¼ñhy=ÏaA‹Ìïæ%ìý˜ ޾aí=v;þb²)uuÝs}&¸Qnˆ\Áˆ¿K›Î‚1 à~ZµXw*ú|ÕèÁjñ¹;ÃñÔg‚Ã@°~âÏ>iDKgÐÏ÷h[GñœaüªÊ^VÀAÚØŸm¦fo•gÍ]¶NÌ]î°æ‹®Œd¸J7ÀÜ,ý‰&`µþì¯Õ2Þ0y–Ó~ïG£Ú"Þ”W©îy¦vÚˆè­ù¢ø%;‚köãœ/ïºk–úní¢hT*ÌlF¬zMp6rÌQ°˜vRãÕ•bGÇt×bJMVUºZ†Æ¯ƒÊ5˾¶ÆÅý¾Ö}Ó£P¹î-¬«Ï×(Vš®ï5T¼Š×øRQÍéxÉúTN Ë©Ža%¨Ÿ•¢¬TÅ­†R}vŸåÇÏÙåŠW±5Y]ÉêYfÓš–ºÇ&FOó(ÒõÄXÍÁÍ«É*Í×RÒx7N³-ªOÈJÒÕbewIŒûôí­5A³¼?èËiWô3’ö~ñy’dœy]ÙÙnôu·´¯×ÒÔ6ƒá0 hÍshËÅö¶0sÌ@EÍ\ÿÇ Pü:äÿ­LTÿz¡ÜeŽ›ŽŠËÈ-èØ>ÅÏFò²Ye¦+r¿¤qÁõç”Ëskð‘Fÿ~¯öËUóO4"ÏHkž‹šÍ‘ΑBãûZ^Ž4T~u˜œhnT^ÓÏaèý¦YèÏæp1ö߇2ƒµ lKù]‹•‡ù\§É xšÔi}JOý HÏp]×|^ùÝ~½°å2êjJŸ};hdç€ü ^½–/–¡àU]{»Ýê%šÆØÎÇAW©±[‚«å™ÈzžzWßZ‚¦uï&òVkݳ”~¼»˜Íø %|¼} –å×öë¢7w€ÈA÷')£\Y}=ìlÏ +ñ]ËíO6Å·ÇáWwÛ?Ü|·'lÜ`žŠi/wÝ sXFF¢Ñ¹Awôc xUl¼×åw‚x…´åFê­jCo¼õáÔÚ—¶SÎ~Ü8Wsew…{ìŸá:ðj»LpÛãî ëçŠÏÜd÷š»ÍB×Vºn#^à¹æYbWÙ1î¤ýN3Ï\f ŸÐlL½Õ¶·%Ünÿ 7‡+Ñ»Ið«Ûݧv¹|'߸îw·»M*Í\7É]lÏu3Ía3Û^nÏvÇí¦…œg®µO„ëéeýe«±Á®!‹b=ÌÏcõÔÉJZÒŸŸcèMÖÝ€ñ¹7Ì·Mt­äJ÷¡w]ÝjÞþЦºýø¤#è×Qûœ+p]¸ßE^ŒÀ“%Õç‹þ+ 4ç*ÁgêšÇÍ,;Ÿ3ø=ÚëÛ´FŽë~çÚ”'z5žvøµÝJyÉL3çèêÁAvð›¹6ð2|ðÖà[ÍÊø®wHV¿Çû7™yYª:š‹"Ý"©ÆÇ²òÍþ`a¤­ñ¬ó P9×Eò“ÑªÕø [Ð!¿;ùRôÙg„5Wß‘2󢿋Ö1qöà³hXA³ <<膞î J‚…zFå'`Òf¼¹ÚÈk8%Ì!üJnG¬ã-0 ºý×QóHÑ ¤ûl¢£vîóüZ÷ ’$¯Ò‚m23ú>~Ù}öï­š6.Я~·×Ë-‘K(ó]Í6] Þé%þTVϯ&cÊçôâ\˜Ç@ê÷gÚ!i3QW•›Ã¯2Ö/‚ïm©¹DÖE¿ §Ùýøƒ¤Êþe+í {n{ãwsØ:¸ÏœŒéo¯q=Ý`¸é¤ >šÝ^µg®™Ê<5EO3÷{N¯Õ³¼ü)Î`|Mуû°„ÚÙ¤O½ûi‘÷W7ÛÀ^.bÆà¯~³ÉGò=¬îWøÕ fÆÍn¸Ûgç¹eæ”™f=r²¿˜Œø.û`xŸæ<%ëMþ`þÙ`dº¼jŒo¶JG wü®òcr3ûxÖy2¬ksL{4`?>h²kãV"ïlŠ»ÖýdûЯSöWÇ ¯ÚË;‘Wì?6!âwmm’ðj¨Æ¯ú‚4i¦úÌß)”½XÏCN¦÷S$ÛÌÑú†ê¥ŽT/Á^üŽkß![‚Ñ1ŠkäF·Õµäé¹I*¢EÑñj Á«)z²B*5LéŠt×Mm4èÍØôç3,Õx{õ‰+Õg`%è‰ µ4” X’­lÌÇ£rjÎ=HQ¼(U¼ÊÓëaú\¢ÆÜJ4×3E3FK4‡!Y3®j+¿qZ[’z…©OÕ|±8eC©šï«ñv¿] \ËÇÍÒuåÌ#M«šó"|¼½¯f¾{´*гÊ||ÞivW® VG÷«OËŠ­ñb³÷3?`ÎHÔèÎDV{M,+IãížåÂbà¾îgï#ÒÖøÈÙ|ðêìÙǬšËKŒLuþÕæËi5þàz°ë~3Lcƒíùëw¦§bl¯¶£=~Mb/£·ÿªzOÐ˦;¼GÓAzð‹9xŸn¯T™‚O³_–õŒ‹|"g~_÷mrydH$ÁxÞøœ9LT?Š>v•ePÓ$e³à=Ýu‡',ÍŸ}ƒœVËgR[Ïgh*Eæëð-øU}Pg®”šøƒèUªYd›Æš z(xŒ7{ Ÿ‘hëyƒÅ|‚D;!áÇÐïÌŠ‹ÕG nUb[eÔ0 äñ‘ýØsz|É›ÇeQôu[~µ…Ú M=—ã^ :båûmÿà”ܹ˜7ßÒ¬ÜÙÊé|&Ô:îUê~œ÷°úU´·Ü8…F÷æ™4ßÐÛÜIõÇ^”G¨Ùs†‹£W>~uPÚÛ¿u}ð°Ç¶NMÞBÚ3âk<ÇT}7W½¡$ÍÓHUÿ­ÚÛ«§ñµê}4þ)êZ¥­9W!^™\®fï¤iì+YóÛ«ÏÑò­ÌÑý^é"=%5Vñªú22j2S 5Ÿ {¬ö‚#Õ{´'ñÓCWü®”o|̆¿V0çŘ—•îF'•vz†Ìéc¾”6Æ÷¨5ÖÙY9°¥]‰f¼9Kcwmå/¹ËôPY^‡Î~ËœìËÁÿ3—˜®´5¹ÿþÞ¯sECùÄt‚_y$~!8+øÞÜx>ú®t1{ƒÏë¾§-§äbõõ~—ö‘w4ÿ*N~–5‘¡‘xãq;ÅÜ̉ÔÓ露žV瘫õÄö pÅïÈ><ÅÇÁ˜\þõ;!ŸÖg%æ£ðý µ©ÀIsÓ-\…” 3¼Z‰ÎŸO¹IÎÇ ±ÙøãAŒ\åLþ»K‚ ñOË?rFs bÁ«†ézÝD=µÊŸt~xo(^͉¾­ñ«-´®®©ïêº/ƒÞ¼yµm‘ý‘­´ÿ=~ýŠ—?¯¯ e®ŸQÔë|—Ye1¶Ù Ÿ Ý½¨ÏŸª×„ù¸Tó úáû>…Þø\Â%ÑÏÃÑöÚ°‹nk°yöl{\þkn¶³ÝQ_½bVŔڻ\™hÉòàÇHatQàÏ”˜?˜`FЇޔ|5²óßõ³_÷V¢'þÌ•aèê Úv’;ãéÛIüÁ¶häáUöÇððêzéêž·þì¼ŭgÜ÷…{ÕÝ(ÌJ7έ°ãÜsÒÌ´KíwÄþcšÉfs¹½7ô™¯þ¤ÃKMy0˜«ÎznéZ=ß_Ý…öù3¿Ú€'·ÁÃ{"› ,ÿþ°Ž®v¯>´Ö5wë¸~ÑÖ¯>Q¼:bŸ ·}ÔôçÉücÈÿÞ˜m’] Q¿?3>35[ñ{“|>C&óþxÆlqM,¨?ct®o@ÿ{Ð*¹Ù^] qòU²Ï­rm4¿}¿F;EljßY×TZi¼=Y½¯épÉ E>Ã7£N E Ðÿz~BªfSf)¦Å+»KT†R¡;sk,ßGáÕÇòh«w<ÎLÒSE}yhe‘²Ÿ¯U\ãÉÅJõ¹W9R}6`šFÿS4ª¶[÷xU}†Œåçéz_]åu¯œFÇ«×ê9à(õ%ã4–Uªë¢>ÏÊŸ¯•«‘£8Eßj_²:¶DãfN.D_wñ¥^ë4Öçýîºæ=ÃÇÇ©j™4ó†r¹çЋ`”ó­–¾`Zu.Vcy¶0^Qy¨?UÝôUì+sìò¹UþœÅŸuO¢ßpÀ4íôú:Zp©U”m*Ÿ™¾5û°& Žèy}G¥³Ù¼¯ç|}n^£ û”ã=)-"JeàcÈÆH¿H-ãç{Íñ`f¤ÀøöIãÌ>ÝQßYn:=Qw"ÜÈÏÓÌÉ-àJ/K¹yFO§*6Ÿ…_ÍL©FôúšÞXWoÏ M lA[ۉϨXOËè·jyÌZ¨ûËÏÅžýšö3\ÿÂ\Èçxj´F!¼6COIð' “Ä œAª‡dvôŒ­oOÙíþ)ÓÊÕs/~µ~‹-¯öÀ¯šÁ¯ª(kØÐ‹œ2´Ö8ØJ¸Ó'Ôw.=‡—ëÏà·F=õüÀ0À~ Õãþ,´dyô“p„Ý–zɆ.¼:$ÿ1Gì@—seØ+xÆ ‹)±W¸ 7ÅÜ×ý-R?:&ðñêódù $l ç·_-WéŽ0¿BÖDÏ“éÉhNC#{ÓÖ[é÷8ðê^âåâ„çðV÷_{Â}k×2:ß‚Wð³_z˜ynÛ¨ûš‰v]îð!ƒÆ²Ü\i¤*0ûrS?˜Öo\Ú¢'$¶cd;0?øoªTÜ>†ÖÍÑKÿ KmšiÅxtg¬¯6jü*ÏítŸÛA>«Õ>åJÝ`øUo9yšg~ |ävI¯ëúà@J GÃ\ÆÓcw•ž›y9ýºxT(Çñg2z[(¿;þÃl•óƒ]ÑÉM^-Wïªô<™’m=GüIšÍ¥…™¡ßlãÏZ˜®ç3øÌ©z´õÝšýÆyÌK7ëw9$+ ÉÔUód-Ug$¤h®h¹Æ¨ýþ—B˜§ëÎÁ =»ÊcT!’ûŸ³øJ5÷ÙcHu)Qý¿õ$“jbV™º.˜£gU%¨-úXº÷RKôôç/Ôø¬îò)Ô¶ÇkÞ–_ßJ¬ÁÀÚîê<¥º÷0F÷ì”hD¬–>“«­÷ž§÷; jVvÊÐb«rW?;­DŸ=f–Kžù[Ï“I@3¿–X|0¦þ›îRŒJÁFcŠM¢æ·?¦,—3Ûmkn˜ßmuÊœ­¸7˜±þ]Fª¶ÉÕæ°é¦¨y ³ß)F3:Ÿ3Mõùf}‚ÒÀ'ÏŸo’~æü&ü”¶Ü!»4~õˆtŽÀ±ï·¿$›##"?jŸ_¯.ˆ´SŸÑàÏd˜½ºg´=mÆØÔ­‚xÞ®6áMÕ‡_•Ò‹"óEøCPa<ך ýÍÊpžlÄ"š‘AÝ`¿é¤g£”èN%³Ô44k¹ø(ì¸Ï3púÃã<ñ»|¨{gèªdÝg]ˆvÒ#þû¼’àïSÊn™}ÖÁ¯.ÖøUCWâž Úøóìàà¹0²Š÷_`NIÆ26þ›jÖ€V%üµR^W~uŽîC9Æ|ÐÞñ/Ïækæò½´²¼*bKu±’iÑ7ÂAàU9š_Ûhh§Ûxî‡íV—sUØ38mºÇ´·°ë‰æ”ôþŽ´ŠN ÚêS‹Íoô§©žxu ?þ´ÝôÍŸoîWü7ZúÕvºò;AãHsy:_6‡Ûìïð«s‘Q[÷˜½Ù}fÏÇÒpÝwîEw~ÿ*7Òm°ÓÜlf´³í%x†lLÀlj¶ÛÁ«õÔ6\v˜zA=rº}©žàãO!nËûŸyæ(³€Ÿ%›#§ÇÀ«\ý¾‰Ãîm°¨1üj€¼j3t?N?8ÕAû4üj¸ógô¼ ¿úÉþøÕÕ­R+:=K-~çÓ"t©\w‘ Ï«ù~œ üÞ5&C¿I«³²\¿ŠVN¯;óŽŸOwÀRD'¨ýn+Ý2×AãA»¤Q´Vt²ú>eÒk)S;*Е¡z깕ÓÓouýΟa²˜y ¾úZ­NÕxzšTŸI¯þ™¯»¶âdŠb[¼¢ÏoÕ<(÷꩞aõw•ë9Tž£¥«ï•"Õ'k¥ëúc‚bNõIÕõ&èi\~w`±ârìÇêúaõyÈ>«ž2¼êõÁ*]—¨ö‡×|Óa¬d(¬>_4[V–ÆÄRƒ«¿ç"O£FYÊäfʵðù­Š|ehÖ|Æ7IÏÜk`œé§uÍsÒá~½à´žzÞRãØk¥›É0ŒÇù*yEOˆ×ü«¿eˆé­|xŒæ3LkoƒæüÁ8úç‡ÊAxW•Æ  Å9ø¥Þ§ë ï›If²ò®õA§ >Øx="½Í)xˆÏçøÚ¼„ì1íßÁüPº~–8 ¿êã½ÞkÍÝÁâHsãçw±¨Ù«ß§Ù­Om£õÔ‹+ÀÁgÁ׆èÛRhžÔÝv%æ×ð­ ±ñÒ›-ÍÌ¡p!hÔ›¤M2øXî‘‹°TQ£Û4Êô'ÄôäÉgÁÁf ÒàÈ7x‡³õ̶à•?³MóßJëÏí…%Áwæþ¾JæFß²iöNë¿ #ݹ"÷JÐ;Øiw(¿j*ohfÄ|Jë¬æÁ‡;è©L~wÙ{ØÅ|lm þBžÂbÌ ©Ò|QïõzðQ=¹ž,ˆ¾Ž´[æh~û—-Ôïí¹RV†âÝ;¢OoÁ ÒØŒh©â»ªq­:©7¾)ö•%ØÅó|²zhe°Ý}¼šFÒÏ?åÎú·ÝR̯¯ýàÕ3þ6Øý³}g¿x5M.È·Ùñ‡œØ"X¡û/ºOëe6‚_õôFÿWªÏøö)ÀñhOì/]©EÙØY»ÈsA‚ D£;Ïû+΂I©Nþ;®¬ßé?s%uÖ½ä ÏZõ­ÐË*1ÒLÁuàW£l?jdvV$_©Å¤ú^sð_ Æ÷›]̆Êô·w¥RÈÜÑÙ9gG…Z3ßù'ÌæT9‰gu¡­2¶KEôñf¶ ›¯AûËÊ«¬üYYBî¿¶A´¶`±” ¦aýwÅLg“À¯šcÞ^Ë\ƒ¨z}0ï'b®ª/ ?vÜW`'jÓÇðý?à=£€WÝiÖ@ߨJmwìø5U#üJìÇ¢Q ÇMoÆ3<îÖb…§I.ðêªí€Ù¾Ùõ³˜-À«:@œhÉl O[Ú7³®qK¬Ó×ðë€XÊ=ƒu´eþ`_àb%Æ3LB .á«ó†¦„ß :»­A siìþãÊ»aàWOËY·ß'Ä šÛW¤cL÷œÏóýåœéf å‡'ØæxêÍÀ«ë¸sU¼WU`þ.̳Æè‹¾xÒ`ú×Ö¢?Ò#ÍÃÔ; T†¾O7«`þ¬ fë;øgaj¼èuð«þkÿ¦ßnn”9°׸É~ªÜ%“Ý 7Äïsc÷˜*›ÜsÁ‹˜+uЃ[¤ ìAe<¾ ÏR;lúB5u”CöÁnt;úaþ¶Ø<¤»kÔù9~e}%¯õÑ®¸Lˆõ¼TŸáQ_¼Zwü ô¬ûË]·:KÖšüðH«z/ª]3Ök jòôdÜ[kŒj‚ÑÚÛq2‰û²fë4ÀŽ¢y"Zã¤!µýKÓf_õçj\hNúÅ^ÏjµÞDŸðw¡ÁŒ*¨kªÈ(Ü¡¹ÒT`o$´mú"z>XN«­RÍ¥lÁ":ÃÉôvG4Û ¹‰IÐ,êŠÑì–ˆ=˜M´(‡±É¡ç+¾î,z•Ô'V@ßTó˜SÉÑRL$Ã9•èGæó¿óÇŠŒ“Pþ¦ö‹æãŒÞ*ûÿùΪcR×Dª¦`&¦“jŒ½ž\”3‘úÎåyÏxFU”ZŒ±Ì*ǧ'[/Á|[Mk´"zg,ú?Žö ¿êJÎ6 !~O~Õ3³¨çÖrœ”g=¯¦Xí°»j,A'XV½¥#¿&™ß0³ºñ-ëc”þkúç˜rüJ1íPa.X›ž‰Ü`Þ“Î2޽;læ[QýöTÌønàWŸ“Í~‰õ}¯Y(zöùš„jmun\4óCB!æbŸ“3vx¨1ðÿ^%€_ec.kìõH´£ ùôQ Ëݘµê¿úÖdÉËè/õ_źm±Ô¥{¡$ópMué ûôViÇêÇͳº³Ã1‹‡š¬DÙõøÆE< &òZ¥9Ëý€ýY)Pã_ú¡¿ò™¹|Æ”²?Éû¸ãfÓx•átš-œ)™¾ªÿÈÞ€k6º^ö.³)´XóÖ¤®™‡æXKqUD˜ Dº‚U«\¢?Öé8¬ã~æ3˜§5Õ˜o 6Lo@~µ$üY0Øí*‚{6rɾ‚åî4ÿ’¹7ýu8¨m_–A1%n+¬Ò~rÚô°ÿ Uc½ž)fŠüÎÌæ®¸û.0Ã<¬Éõx7åWUÑšà›™Tïy³d€9ɊϽpÝöà”»ÜLÀçûÇÝqÿ•ÓÊz?øþ›¨=8Ë÷òëÜ?ZÎÉ`·Ñòwºß6¬ls—€W‹Aª/šj3fu4Öñrê34ÄLjŒ7-¢µ­q'Іiè³ñæ‰ Û…1¦õÍ]þCÚƒ°ƒ~貈W]pÝq÷ðªµWÎz%tÉy„ÔJÚdʆG€_eã³½•+Á¬‰q×\YÕ¿ÚƒQþÕãõD_cHGÑT ½ÞžõSÐC7ۨàõÇî^µ£_{·é~5’'oE`ùÃ1wâÉy&±Òj:kžö7ŸRXk~-×Ü]ú Ò£—#‘)ä' ôM%²nW=ת’‰™Ê§o,#š‰‘É2‘ ¦Y¬Å©»šEƘ@&T†þúÄ(OKåý"Êy Ä8æå$ÐO–W†±_žÉæ9[íÇ"ŒNDS+‰Õ?Ó£1®åèÏ×óÁîø)Œm(C>•L~•ÅØŽtbõ&¼û¬5ÅÍZZuc•Blñòæ¼>u¬y xõ21äeôþZÓš80Ù4 ’CŸv} #¼¿bi`]j2hÝí߀Lý¯Þ8ñ#FYmÉÅf§—–TXÝ‹¥Š>êQklþ-ýe ÷ŒA¶ŒýMÎZmÏ93ß}̶/ŸÝ,f㫦sèSÇj¬ÅófN¨Q(‘u(–GìÄP%Ñø‡ïaŸ¥ÉAÌêþx;Å«õhc1úõåQ̬"ôÀ'¸æ%f¯Ê?Á7¶*X1Þ½XÊÁÔh€*2ÔV´›0[[Žå÷2Îg8vÚièǃÑê æ÷4z@cŠg„?ú¸-AM c÷+熺ÓàWÜiÿ´ßÔ³Wd`LMwÂ×ð½äŒia¿¥…§ÛFhóT3_RåFÚ:5Ù»Yûu#ö‚ àTZScëPuD/œGkFÁz¿½¤»êòà û-XhÞÖþ¢;ï?¿úÛüì'¯^õGL/™á{úU°'ʃÒßmqƒýa÷‡T†=¸Í=¼iT‰ùF³\ÊZöRý˜|<½¬¨:ôßM"^•C;¡WU¸Fâá ÓÑèN­ÉËoÚÿ•Kóü5§õ»O»Ái›ã÷ÍÍ¥Ð[À´¿mî½Î” ßd‡3¯®æv6äjoË|œ"¬‘x®‘ ´Ì*㯺âˆX=Iõí´^ê©ð@ú¦æÀ\â[óDìÓ<ü}h4Wf1ðJkF*oÉFOOŠ*bN\Ö—ÈÁª:Fž”Õ'Ž#Ž¥ð1’uW‘ÞîH¾_¤ÆV*O„_%16=•õ&ÒÉ© ‹šN¿±*ý•fÞ_"q!7j™E<Þeþ?^4?O¥ÿVff³ê!—¥ÖN sm²i1Æ3’Dû(9ª×±8 鳊p°¶ÊÓ¿ŸÅ*9‰äWé̃ÑOjµæuàX‰ôÎwÆ>Ôœ|¯VïwØ?§`Wÿ h ˜z ct·i)êß^Ë)Fj°þ`XïÍЧªýÞ#7 x¥Ob~5'¤#ÇH³‚ÿƒY«Ÿíc¶Ê>ð+EÞ“`øsaÄQã]`Ý("ý ›f‘»¬ªAß{ðaû)µª’×±þ†Šj‡½hú…~4¬ž[¼lÖ„ê†â¨Ï¼]îµSBY¢^½/Á¸«Ê­ÔÏèŠ÷Þ3‚¶ò-Ì‚ÞØkª´Í¿zXι#þ¨×zô—eJLuw?Öu9eºØäpzx²m\˜oÆI9Hý«Ú˜=»YAxž›ìÐ3ÿe<í¬1˜hÛX¼å¿ÐC}ð÷UÁQ÷Ÿ`5v€¦—Úò?€_…å7ßÛëŸñûa.¢>Ãh?Fî•àWƒý÷v‰²ÛÝ\Âóë‚;Δ؃Ê÷4Sæþöqøo*«/W>ßYÕ}TƒþögEu°OûÏ\)_ìoÆ\Gûíþ#×ýr{Ü×Ï[„¾{üÊù˜Öi_mrÂCm'¬ }î“"èAUTìnA=™­ÀÅT™Â5­•ÚT¯Om™b\£d/b|f$Oº?£«èáªÎZ5¥‰5ˆOqÄÂtbP"ÏãùÌHþs=kñô»'“SÅð\/µSÕ÷ž­VXŠxU ½—d"õž[ÒÞŒalj ò«xÖZÍf,{$C:;ÊÆè³Î&ÔŽ7ÍPÜÖèäèÝ8ösöЮ´é´*siyŠØ«x5ÓÔͤœbšK%É#vê˜^Ì©éfÜx¥ø9Ñ Êg÷À¾û'FYOV›[åØŒz&rÏ]Ô*Íx­«À«1Þö+‰³÷Z½ó^¾°ort>“«°£ÖR×ô)Ó?ôžiÉóÁͬPƒÐ?ÍR9b‡†ŠyŽùðã:¸T.Öx ´~8ÞùFª)îJÂ?o„_wùàW4ÇRr|–¿lÕ{¾Ü±ÇÌÒРœf=5Å®®Õbd¦âNEx¯9°>/õ§¢ý}ahL}/Uµ`%âZØmÆ  ÏCõܿȌ¿t‡=¨• ›¸ß]y×Û3Èð«ñ1»ƒFö-Ó ü§ìÁÍ`ûWè×ÐHۜ㠀WªîÜ÷ÞN{°ºYM5¥a¬)º ý‘Îøö{ðܱÀvÕgßm ît?‹ƒyõNþYÜÿ·#ôŠí¿òù[±/Mñ}üX“äNð«m@®“î:8Í Ùì ^À>©VÖZ©h1ÊLãE· WÑ kH ­ÀÜctŠÕi Ñžçƒê.YTÕäˆÿxÕ̯ÀºyÏeû[ü'àWÍ)÷ Ød?¿øvè"ø•„TÛp‡É O²}ÈM:£§©‚'äb&wF7!ºìÃó¡þ•ª&kÍçvg<ƒbÔPó“é mióžv­¦þUV÷ÍØñ0jãªÙ#§±Ûiÿß¹<ÕÜÁþ¬g>‘ØaôY!kìßrÁªõ¼Ã ’ûí´Î_9göŠŽÓ˦G躩g•ŸZY{0Žõ3샶w¨5gÉN“ ‡0 ­¨Ÿ0íèn…Ö2Qx,­j° T‰M~ ®Ú)ÆO3Áã–s/Z,l`'IS¼é›øä"žäW¡oj8ì­lÖþ[¥Z7¬ÿvõRò&þÒÏ苯bÖöl ´lF¼j ¼º.ŸÉ[XågL¯ð;.xµQÕ¹¤&õúÔS³Þý$Ì‚zÝT_¡+v ­d¥Ìa«6™×a£.¿¨Œ:Bf=÷©ø ä»ô¬‡±Í1ÓÃïíÜŠ ˆz}ï¸b×Ý6÷É1WâoŒ94·—¤w̧Á>_Ç’{Á`Mس^j]<}ö2UKÕŠÎz>˜‡ÖlÊàŒ›u u‡d¼äAsc|£Æ·¯¦ÂRëìu‚_-Çè¼ïûûÏü~Ÿé&“|'¯Q så!éV¹Ž¯T¿}«{:‹Fß 7륂ռñzXÓe1¢õ¨šÞÿM½'Í'<«]ë{ÕÄõU€WŠÖ›ü‡.ìùõèÿ«äWŸ;õ2iÍ®N5ÿÓèËŠ*#DâÙËšˆViò ÒôRUŠÆ½kÆW(îÑ,œ²ÄžXúþZ0&BEµþÔU*YqŒ¿*Ooš‹žÄšH…½KfôŒ`2,¢åر9ý0ß[1£ØT”˜£¾¬°NJÃVÒ>|ûÉBØzßXáÅ2@RiǽÌs*m,}#6ÊÙ]MùU#¬³kš×‚wŸlÛïÊvÄʉ½Pû¤‰ùH:Ë,öÖLkãXÏ+¨ÚZ^¶×ÙS?Ê+˜‰»DwŒ‡Ì¡k¬?µ¸)Ô"”'ÚŸgåÛ/dÀÜaÑÊ#0†ZoÖò|0ÅõCÀ« ˜wªÏpÙÈEjäÉÁkàWjIM1E²!˜BÝ– rÈV´cE•|4Æj XYýßÝÀ)1¡äe³‹Y¿Ê¯âä3àT7V‰é‡göÅ'Jð½FE• ¯O™?ä ¹‚z»éþxu·[‡ëS¤†Ï÷Ùv˜ïûÝûrÔ¬­C;_Cÿë Ýø· õka&tEï}€±Q¼*—;6¥ÌìWúøÕzy„ªÌ/‚aÕçZ[~'à6²^jcàU;7Ü1Ê]n–¯sxõšì »M¾¦ï´\jƒð¯¡ÕàWͱ¿ »j¸c5àÕfFõlÁŠÏæydWÖ»(ÏŠª×7 ,ç´TyÐÎà¼ûO°üê6ÓÁ¿âŽÛL3?šoü@ÿ‘ÌïÅn±ØwóÛÜt?UŽI?·Ðð§Yßy®ìwg‚×Àݪ7–H¶Ž Æ}5æ !U\Ƴ~mMjèh|û ü<}4ÅÜd»Xê‹ô9çKXÏëš+ »ì§GÜ[¾²o~ÕÄ|zÚY¦=¸Òä‡ÙX¹z": cZH‹³cé›RçwPñŒt,ã‚Ô6íC›¨:Z¡Œe"¾{žùÎe°æ¶ú À« ıŒp㯒µz’L¢ÿH}Jãx‚WŠ*Qƒ1v¹¼Oe¬£õÌINŽ*À”"Ö©=±$ËÐßžÍhÉdþ` ÏîÓèÈ¡¯Kö5†¡4™W5Úˆ±dEåÉ®bˆ?‘|˜Hý¯ˆß=)ÊÚ"Qò©¬a\‘w/ÅÃl~VÕSè1'kÍÎIƨU`Œh<Ÿ›C½,½o>#âãˆÐÉ&Rƒ0’s”E 58¿3g9W%ìT'wª‡óéÊVŒ‡}’è¿zspì@=œ ªDêGó_£ÿ8‰ñW 2Jê»´ý~؆iŒ# «q}’‹Í!¹üJûÿ6Œ¤jAê¹FsU–Èlâø0{MTYãUNšîò€½Bfz öÓi³U´Ÿ4cCÿ^é=7;B€Wj“>*'íÈPu¡¿Ov›¿ñ”dàƒæâN`´L£¹sÌ huuôÀ‡&Gž$¿ª-ßïÚBÑõY¦‡ŒXeºÇ6ضv¶´Ã§ß¿ÚN˜Küh‡ÝTãÛ‹±NW`^íäÝ/â}KËø¤æ¼ÄŒ«EÅ¡bü¿„;f+ôþŸÀ«÷ð»f$øUŠ;íVi¥©ë3üwX%]ÍwYŽ˜'C+ð‰7°F: UýÁ+Ú§ÑîQ½ÀÌ;Í)ø»æùNAv7ZûPÕÿó°7Of½Ô'µâ9Öór؃Ã݆ &Öt wÍÝàF¸»ÍkrÜuðubޝ^•ó1_›}ß[Λ‘VÂ×CÃlÖÖ˜)…2’žªšà«ûñæµ±‚ºáÆbÅuÀèΣòjàÔÍXŧ0º3M½9Øëþ 6jÿ÷ñ¯¹GÀuf£—~ð}üWþQÐô¤¾è-nŒŸ,§e¨[éFúÃîo©lÀ< {pvÄ.f¥¤ØnÀ…6Zý {‡f×Eÿ7Áþªµ´>ãIŒpŒB‘êCÖý´­{ð—dZ†ûüâRý!ÿëÁúƒƒ_5ô3qÕåÐsÎû˜P±Öx5åýíÚƒšoÃÊIYx{Íýnƒ§¥àù­ÀáÇól½€Ú)=hk¨kkŒF,ãÛ×PÿJ9Ãrsö`SÆl1°µÇ0cc#£ÑÞHÄä|E|Dz¢ñ³ýã¨Ï°ªTÚE\Eº“{F7(æTæi[$Ê)R/5…þálÖYQ‹%†™D”H•ˆTbcÆp&E=é&¢½œµòâL¤:X½TŠWå¢J ™ÌœŽð%ÍýfÝuÆ·×Ç̌ԞÖHÌlb©ò«ê¸*—µu’Øâ„¨r:ÿŸåWÕæX¬.=Þn"uÍ–€'4#Fi•/}x0¶ž‡=¨O{™çCuEá'b/,’†¢­¯ ¼ª‹]Oº£‰•±ÌLÄ:úÙl”1´1Ûà“_3^Tñjýíj߉•Ük<…q_¿ËRK4acl`ï`üÕIÓ[^²Ÿ³ÿÞgyŸW;úYÓ7ô—id5Îÿ ³0T+dE}nÉQ;1ÔZô #FÁ¾:NÝhÕŽf–¡¥ÅøË Ø#˜w ±ê¾£¼Èx†°?¶5€Wå0ÿkÊÖ`Ö_g“.lc;SêbÞ¾~µ“EµÐ©Ï çnƒðŽÏ…´¶Ô+˜WV^Çn Ô鋾­gåPAA•²¾siû…¼Öì6ãùrî.·+>Eò|yÿ­U²âÕA³-´ŸxÏÖxž<}¼ªÃ3ýÙæÏÇ3~õ~îüø OªI-¶Y[ò p°:hAu³.|5évÕXÏë/××t‡ÌsrÔuö=bö­WËc~ n÷Õ|?¹ßtµ6üŸÐ<Û1ËŒ–LéÅZëÕ°R±ŽÙz¼[EàvVþJX´åÑÛõÑ» Ð7•;ŸÌ4»ƒ=î×`C :ÃT}†™°šöCýÏþð«2¶áf7ÎÏ”S2ÙmÀwgÜ?¢ùƒkÜÃÁëFuì{š5’{°ëFÖ›PÅüºÀñfÏœZbUU- u FâEð«¿Ðg…æ€Ç ìÜ øÛ'®Œß ¼ê‰ÙyÐ=ë+il=îq9ô¢ûÓÙP%Ük‹©nµþo=ê_…¤ˆù'}˜ëÓ £š„ÔÎ|gÆsEã)©¥¢™† èQý«Ùö0ýí±¸Ë¿É7áÉÿ-¦CøÐ0Z\5L¡ŒÂx©ß(ã<ŠùDÖ¹|•h¤'ýSð¾…&R7'…k_yKmªHrEŒrCb”§*C W¸ÚŽÕy—Âü¾½Ëx„Êô§'ÒÿT…XibSž7FÔ"º¢e£vZ±15×5êÂQG4‡þöXêÌ”‹êÛÄà7êýˆ%f&S¿=•˜9ÅL!^iäZYÞ3Žvr)^O¤ŠèÞ$˜7a‡€ý¢¨Ú‰»Es¢jUØAŸ¢4†ª)ìŠ?°RÃcÖí2MDýw`ÅR íDyZÖ‚ÖžJŒÚ+¥=yæ9°›#2„\u=pâ=Ó‡~°¯ÌIÙ#­¨Föˆƒ5x;û§¡±v“L%²þ(yöo9Å|œà9Çìgä¿gвÇÌ¢»Ä9Ó:ôŽijóÐ[˜•¡º`[joØÃvF¨¶(ßn+ëL†ìÁ8 7X‹ÑÖZ5Ço7x£Ösæ*8Í¿ñÞ%À¶¿‚O`³Ñ²2%Xd¦b^Vûl;´NÏ¡Þ?X¼*Ï­jº‰3Íjó<Ö‰Æ<<‡•’%o³VÍp0ˆþf6ó–RM )ìÜ$û|ˆY4ÓŒ L»ê3”§ÿêsú¯î…5tã¯ê™OÑê^ô_µÂ§‡2þª;Ê ÷êÉDê«f|gØÐc°zÔb|+¤;ØÕ+Œ¯mV†ßºMAE´ ûȵrÜ9sXŽÁ¼!æPÐØÞ"b>v‚qôÞwµ‡¾ M²ÈêfKuÑ·‰u¹_¹hËq`Te ’žVž:jtcŒÏbúÓÎbVèYâ`‹û2XLCßuö/¸þ[·Æå ð*äëÂìd¾s9~ŸÿÔuÁzÚéž‚õÛÔ/Æè\ =ï~sª×§Y[ùá­žkWg¥Çx)`þà¬À9x^!}#`UÜÄø¡úÔ~íÇ(K­“«Qzª¿Á̵[ÃCÈUæ›m~Œ¯ÏS¯]¦uøƒÐÚ€U1 Gãî©ô_ÍÆW%z¬‹qÇh9iý÷yÀÿîéOŸa"•$ò£øGy c.ÔSOO$n<™™…åð•Ãx‰ÎŒh¡_ª>¢~º2×P Y^VTù!’‰˜i"5¶2h FN ËFc)☛œÆ¼Å8zýó¢(£º ‘x†4bWkZw¥È»ªDs#±YD]}B¤ŽY +ùCÚ‚eXw»ÁÙÓC¡õ¯›°4$˜£ø3Ö„%F^¡| ½›]4žl>8X¡hýÁĨòe_^ß èÐKZ3¾b®ùËlà}’g ÌZ« m›bî’}°¬ÒižfÜÆ1j`þ+‹dyÝ›kSìQžýÝä}û=ów~‘wñó­Ìw¾h¯jX¡‹fi¨N(…õ/î–sàW™Ôº Ëf ¦Þ¿˜È|üÿfÌ‹tôȘÏaœ«`ÖbšÉ«è¯ê@á/ƒWm¨Ü,3Bzó¦mÀ¿Ø^v—´Äzÿ8Ô²rÍSk5¼‚g‚Z?åUpݯžÆ§ÓäßÌéùÛ+üFZœƒ0ç °*ÚÀM·WåcÜg‘™{0Ûs5ËP*øÿ“mËø«Úv¿9Ú¾Ê Óð70Sn kÝié%`èrÖ—„Öª:žê!ff˜jŽAÿ¿ ›¹s…æ¯F¸­AÖt ÷‰+qCaž—ÛÝd_>æHPÕÞ%³c> öúßx5ÄþºeµzÂ,ŒE¶ôÆ}nÄ[ìÁ~W@†X VO²N ùøWëyiÍžèé±h]E³4Øì¾ –s°W´ôÏ»“àW3Ì·æxͧþ¿½¼öàV7ȃ2À­‡=¨ñíµÍ Yêž ÞÖ¡¾h;ý­x•yÜÏoÂsÑáTëѸ¬#x²ê#×ÈŸ þþ¾5 ¾¨õÕ½žI| Ëpÿö`sܧmä' ŸŸ =í~w1¡æTuÌ÷¿ÊAßöÂ8ǯ”¥öcîf-jÜõ sHÇSâ†hÉôÈ”`~h޽®ð-f#ìÁÞ´µšý~–oÎzÛLåðO¡!ä.°YÔÒŽcžà3šÞñFâ>NU<=‹›‡Þ+"£É ÓH¢—*ƒÞ¥xÑZIfÎPD¿¥"ñLùžÎ†2.=ìMþK~©ðK+¯ë‚ÅÓ£žIö$òªÿÕ¢¥?>,$±œmCl¬äK¥~{#IchÇ©_«C4—§4Æ$…«=Žñ¢åé…¡¿+«\4*CUG㉜éŒó׺·á¿lK=ôÉ@VÝÑÝr’ ƒø„~æo¬»WyÿXå kЇ­ÔLj3μŽù3¡;{l°É•¥9ýc[Ìus³ô4cÐÅ,5cÞ*¿»Åœ^õ$v߂ъ5žÁ¼Åë²Zfð¹umyÖKÍÆg1ßåê‹&˜O`?©¿]ßù¬úÌT·z‚ñ¬Y ~UJTƒë¢\°ÃBu‰W‰²vÙ¼¯ÖVÒlÅ…ŒÊÞìǧF`œ6›÷ijt®ü\±õDkÜLÄšŸ60F{ ¯øUV/Û&u®nf´†Í`¬bÕÅ„»¿ I+¨\6&ƒ_Mæ}ð޵›ZWÕ2:監ý‰Ôg(ÆwÃÃï»TwÓL¼ÒRɧú?lwÌ÷î‹Ýiž m‹y›ùy³X{¦1øÍtÜI#Êç€Õ}î¨ü¦'Þk&ž×ö`/Ì$ÍÁÐ*X]pÍEÖåí¬m1„úíÊa³Ñc ̽øy$úãZ:£º:8î®ÁœŽñî퟿úÑÍÃŽòßÞåïöG°?Œñ7ùÛÜX?FŽËh7Û ^ýË~­¬w/—°#dÿ—I ¬åV¬yXܽûw!f°Öó*f.C¼Û>Öwn€6Ÿb]2öšÌ!Ö£¯ »¯ùÂ%ûÝþ=. ¼ºö`Oð«Jæ•Ðsîo÷—­ˆ{¯5¥é¿Ò“¯~@>+ÊPsð¾íÀÚjlµÙˆý³¥4íîEK¨2=“èË]cÖÛSáþd+ËÌ ?ö ê‹î5Åá¼ðÚ#Zi#æÕ›3Ï+ÏÍ9=UÒz^kðÞ ôe%2^]1¡|4§O×`6¾Jh½¤DuðâiÙeSË0“x¦ùÎ墪-º{çFU²Ê1ž!‘÷O‹f'зŸL›2â‘Jæ“ã/šBޤ8“Éj&™´ïÒXU"\+r>˜Ä³2¦=}b ´z‹¢Ñí÷²Q?|¢U)^“Íxü¾—Vç݉ÑÖŸJ°¢†â® <L^õ$#hþ„…÷‘øE¬™ÑæQÎ3]Uš¤†DjC¿‡1ŒhñuÆï{H rªõÀ«™Ò•oÜ;ãg˜µj/5Çd—tfvù~ªqìçõõÌo²¼Zýù=mŽ Ù#V«>ž5ãå=û)±îGy »úVâä¦Eè}Óz}š[BõC©¢ãwøÕäPUQþü'0*í˜åŠW;Á…¦âŠÑ;a¹óqž•û\¥˜?ýÉ ¾} x5Õíõžñ*6\&<Ú¶Ä*]bÆHYÑìíŽxã °gʲ®cW¼Õ(\ õÛ&0¾}µ½5܇¸±,oýW)æ°é. ä9X SI” GâBGbÎT¢ÿ¨*úú½8ªã7­(OŸT1$•8’KŸR yB>b éÊ¢†Q$š)‹}S–¼.wÏ¢]—ÊH©òŒ¤Š§«{ôuyëï)ɤÿª0ô¡©l—®›9¡°5¢7ÓþËÎ U­ôQ[nÖ¬g|ûpì–ó°ªÛi„ÞýnXv}ñÔ5艊ò2Ïõ2`^²5¥O”kÈœ`$fN+óÙao´kDµÙO€3¬ ³ÐìšÖxçµÔûƒ߀•©5´^ƒ5œ ;z:zð&æ<×bþ`-FQŸóQSÆŠ}?Ÿ2ãWiîAð«îèáª>ÓÿcoÀ˜(^3ëC[Ñã`…ê~­ˆ­Ñª™Ô‹ëdÖÁ⻌]{4O·áŠvà_¢ý¹˜­5€åƒñû‹À«F£¯ ôwû¢ñWñ¾¡àŽ˜'䌫ó‹?”Ø÷dBL?w«Ïóå´h¿ %…§Ø&à+Ì ÉÍÞn…·Økt'¨Ä׸'ÕFèŒqžÎÝ¡Æv0ó¯ïEtǬÞt_«‚ঽa>à¿pKÀX>òÃWOø=¸÷x?ÊotSýd9' Ü"7ÁsÃÛ(«ÜãÁxR pâe’lG-T%²½^‚¶ÔÅÓnКF<…mˆq8þ£9ÃÍ¿‚.FšÓO9ߨ/#^åQ_TµºG|‰ïæ—â®—B/¸?\<õEo7ÕW=0Û´¾ÑRÌèjTmêɳrÍmކ3!™B,jŒv´d,bi<]íÒqd#kÍb{x¥Þ¦éf§Ÿïâî ˜…ÂáQ´Ä*c׉Ï+ÃÈe|JW­V–~- U »Óf¦¥Ó«“C¼Òø…ÖéJŽVñjÕnPSÎD´Þ“?OþT½•ÂÄ2ÌÅÉ¡=˜Î÷Ìæ Y"íÅ FCF2•Óhá”fTX¤jE)Æ©¦G3o’¨¶EÍ=ÍJ#J*Ë«‰$‚¥™˜¯é&¢»¥Q­ˆW±Ä«>·=b ѯdž¦ð]T¿}?Ïæ’¨«Û k(…ú¢b×ë͘ùاS€WŠs¯cǤ±¤<l"Õ¥“¤pù+§ŸÛ1üJquFwuTÓo>ÖÔÆyl2çe)ã’pÍxìˇ™mPߤÙÃ2ŒÞ¶þ¶-kï°ª8x§é!Û¯‰íßÈeàÔ³ŒS}Ôä‡^7U­öã‹fL()T‘uêOʃvZ(WT¯C¹Õ?Ø3˜Å·h5;ceŒÎ)së\³T©ª2øU>fC¡|¼dkHezŠŠdY j17˜ÿ˜v‘ÕV7+»læ8®ïŒÒ¨œ-̱„U¯¯Æá",‘‰Y1ëÌFûýW©ØëŽû…¾Ïêï0õ­Âã饩 {p+„)…¯HÝÒàì£Ñ¨ÏX¡+©é—ÆÕFOD볌‰h)hdi ÕLXW ýÿ¯R­˜L"]U­=,ËHÏLÆä©º‰è*”åW¤nW*OöSLZT'9‘6[2+b(ÛŠØ€ªVTŽ)‰x•`"UWk£=)̺NÂÌŒhAÄQë&“§h1Œ»Édä¥2«t2À8Úš)¼^ýä³ÁËoÇ\K`ÌÆXônÚÚ°–äWà•²Âæ°­+ô¹½Ž±˜eZ‰ž5,2m¤‚´¤mØØ|ƒYÑù†mQ³¥ùä #²U†’åÕÅ*z‹º@‰XiÉ ¬|Ý޲àÚ§õÁ¯öa‡Ñ¶¶Mm)»—ñ¢ñÌÏ`7)rÿÛôió˜häÉ[¦ZèYSl3ˆ¥ÓBeWº’§ìôPMÑég¬¨²²½¢kx9ž6oY••.Îy´ªÑvóñJ•l«ÊïÁóÀ«Jè…&]6óÀcÚã»3àW ±G76—ðI­l\«²?zmp_5—´ÖÜ;ÀAÍg¾„giÍéT¶×È„BVÀ*¢ŸºÏꌕL~ ­9~uüê ·R÷f©ì °^š«uçöØãfoh=zð} •F³÷niuP…¬A•“á¹+€ õÕC¼èTüœ5LÕwHÚˆv…ñí5a~{PãÛ/€_¾–ëïî0/Ë wÝ¿à•a.ŽiíîÐ rÞt±…²Â«m3¬OÕMǘÖÀÛæ³~e3:3ž£˜9åãYïª5î>m9kžÃܱޜpÆm æ`ÔùÜÿ£[aŒüÆx†—ü1Ó[æø¾~‹äo^‚=8Ìr?K³HîpÏ€_-`ÝŽEØá@Äø>©J15Zo¢TãE³^N=ü÷@Êúƒ%æ˜ö Æ‹¶4W¨Ïð𪥹èYà¾è;¡çÀÁB¡ªÀ¨Í&7<Àöb­É~ØïÊ0>›w ®UoÓnôÅŸxë2¬‡«ªÚC8‡+b/if&%¬6«ì‘poú¦‚_©rUü´Ëô· Ú’åeë;kû"æ'3¹ øU%Ѥš‹ÏÔŽžÞ¥™ˆæpv4<ÃD44/ºc¿ËjÍ'^•JuŠTÆSôéOí«DæñäRu8‰y:%ä_¥L¤ÞDñ¦ m°t²ÃøhŒCÏð*é™ Ã59T€ˆÄV¥žhD›´QT¯OO5»˜HUÅ«Bª8DêéT¤_«ŸQ–øQŠoQHUüÙ…¹uc ¢*Ùj…oå_uL9Æ·ÇÒþ³ù «Aµ”_Å ™a:2gži/ÅÒLÔ®­ 6Öˆ8­É‘ÌÔú;±rØ¥*;­ðÉ×0Ž-²Æœ^u&½ ý63KÏêoÊDòÜA¶‰M¿Ò÷=Žg¾m¿çy®ÖǹDÒ]âS!ôš)gõ-_2cC¡<ž‡ìäP Ñþµ²­XÏ~ꔈyU…Ê·Á^yNù ,©Ï£ú¢%¦º|¼n+K+\5\qm0ÃìÀ|Γû컽ÒÄ| |YŽ5WŽÈík5¾;Ö2ümú·%ðj1zñU2"Í÷‰çô2jaŒÁ•ÕY™ù¤I&¿Ž¥õ&ÞuYîa·s<‡õqLHÕùv¹eö¨ÙÚO| VÝ NwÜ¿+ÞCë¡kýÁuàWšù3†–íhOàÅWX³Ç_×<5Ó×\Ïj‚÷®d–„¿ntƒ*`>uÝŸ.à s'ÍÓrÚ½åoóÇ`^”ã1ùî /†=x¯oÿ^-´õ·ÜÌ”Š¬ÄÚkuæOUÌ—[ðŽ%@âêøw60#ÏobîÛM‡­H2³p-õ£GO›®þ ćn‘ Ë5ßÃëOúÛaNôýüV7ÐO’»¤¿[æFûî/ì<Ód«{2Ð(ÜL¼×"I²7±NöHÖK-ÆÌ¬c4â}mÞªÔ=ÎóÌš˜«÷.^ çwú·À(ú˜‘¸8¿Õå4ªóøU±ïB݆C—i ¡ÆÔ“) ¼êƒuYϽÙ$Kuu]õžÊS¥hK¦ãºLf§ó„¥ ½òåY¹«tôk[½E…T#N"«J ‹!òeÓO©ô\–çr¥ÅŸÈŸâg^&z騤¥ÊrÙQ¤^ªÚVé´Öµšá×9Z},‰ñ¢YŒS¼Š(àÄ«,Z ñŒ™Of~‘âÒRôôi­Y‹¿éYFŒwÚËIò‹iG«w(fù?æâëEÌŠe¦­(jÎ07H–ä2>³¶‰Á\@Tî‚«ç³>N,îl头$º·„=øž²£U3Ìݲ_:ñLí0öÄ^`yé<éü[n‘Ñß16Æ:{·Õ]ã¸ÜöKbî5ù f€è¼~õ¼inud^1C•C ¢ =wÃ\{P¹ª‘CàF»ñ$Õ¦½óy3Z¡u®ôœý1ô^YüæSAž5 X$_ï¯ ©MY$¹ԭH^Í´‹F×¼‡Vß‚žËe]Ò®À‰5èÓ d:Wƒ51þ1¯*Ë+Ø#›`övÅZR1}©JÜëe¿ Ûßå*~wÄ ¿èrÝ=n3æx¾äùdÿƒ½ŸÛæ6ÚÃfqhzùÆmkÍdÕšOÿUuªš¾`Þ5K€dêÿßM5†>f” 4yŒœ8‰‘è…zŒ™@m`¾tp[ƒú°,šºß\ØuwgÌQ9å–aýjÚ\9óSpxHWYn†Úÿ†*†'Û&`«Ìtɇ=X«©"za'f_#ìDݨ"P-Û;¦,Z¥çƒª5íÖø«[ÝwÁ¬`ºÙgnðÝp›Uæóµo믯Ášï‡xUé›'`Ú°'ø»ÝuÉ5 dìA­š]Së,KªÕh«9صF`f<Å,›ÈÞ˸¯ƒÔ—i„Ï<d¹i \ÚÅx†N~)8ï'®œßé?uÑGGÝ}¾¼oáâÓo‡^u9Òè ¦Bxóõdc…I”b¼eƽ)øU=|%=•ñ˜…šQÚž,7qS©"¨'c;Ì{,<ˆ«}±ÙâWúöôÝì3Â5Â3‰ µM¡ŒÁüŠ'o™„^KgŒA¼ñUâIiVñ=Á 7 Œvˆ04âJ®‰Ô!Õ¾b®(µ«þ{&+cEtA3èŸÎ â•£^I>y ª™%ó»2ÌL"²”¦íšAVq!•w£~LNTK!“'´I#jò‰ü.ãÓ§8Ö†í‰TÙ)Šê·Ç0Û[í>ÇûÿÏ"MŒÆ¹¦óÍÖ`&ï Rä«‚þŸ„5šŒOTÆ Ï žL)Ìx‰“Kôœ]ÂsWš&¢g…3M=)ÅÐzæ;´§#íßà$‰W <ý].7p/Ðj"ßbýiëÖ˜çå6ú¯R¯: #À˜ŠL»TÆÓ.ïe;Û${Â*s=f:_}ÄýR^4÷›5¢Xÿ’)zÊÔfþàÃfn¨R¨@´O‡í65”)ŠÍ°Ha®Åˆ´Â|[‚gÍa.[>øÑ!X–Ã0öêo¯~¥õè«ÉûÁw¶hŽÿ$ÓNšó1³;+Í·ãìj©Š~º †·–P úw;V` jƒkÝ u'®PŸÑ<Ø–¯yµÄõ^U6jå–þÔo/ad¥µ×äünð겫èλ§Ñº Rè+øoìt¬Æ®‹½Ç, ©fÊ»ŸFWZü7k±>F\#Þ3ŸáÙZ;CõÒ§SÁ¦…ôÒ œ˜¹à3MÑ¢'0J}°,|%¸É­ê`ìë¸ÿº<×Û5Ëy×Ï¿¼ªo[ÈÔ˜o‚c¾6ðj‹Ù`?•O· µž»™ ãéE¬ô~ æCôìCø/RÏ« Ði æªÆìbÍés°Vg€«w¹‚IÁD¼oÿ˜S-ªæ'óðãª×ïÅ>9ßòkR˰sÝäæºîþØš`u·¹'‚g€=Zh¥”³Ãð„5dìYݹPªXI ¬ŸÁÀë³ØZõ”`®ž2]i‚Öíõ߯ZûUÀ”Ï]y¿Çë`¹ç|%ßÄÏÞ½zÙ…Áo5xƒI O6fãÝzbÏ‘ŠŒkÔÌÀ±TªUýö¹°=&Ó’GèA\«Åø·)FIÙ̳ÜÞîËõ>Ã,ñ7û¶<ŸÛc2ÂýÃ#¸2똚˜ýż& ŸC¼H¤òÇóŒVPî4ÓlA_VˆbGŒIŽÆG•Š*È$ÑTËDªLDôK3¾«Þ­½ÕŠs}©[šÖbeÖ¢HæybQÔSVÆDôcÔCΘ‡TâTB4K1‰¸W•袸êð¹|žò9¢N$ž!± 5˜å“Fß{^Ñ®)$&ð}óxèiÕ¥Ó?TŠ¹Ò©´Gõçñ@«-`¼j£‘Ü@W«óÓ•ŒlŒùˆõûíi¼á)S‹õ¼æšÎò®SŒmk ß®õè³€b]èëŽOî•I´Jáî¿`½)nî•]Ò‚±#·ñLd¾s ¹ öað+=?kkÙ°=nÕ“÷°i.ÏÚ«|‹°¾›í¬?øìÁM«™L˜ù¡˜P ë‹”óvìA=O¼n¶ÝJ².ffÜÌ2qZ?å%ÌëªØŸß^=JUòUð‰­/%XØëdz0ϬG»+Èn»ÝêÉg ðºûñ™ƒŒ¢͸µÕ´1û`õ¾…>Õ<ÙcM•+¬» Y#èÿ­Ñ©9šÖüî;ù]TW|‡é{°¢»à–a‡È‘rØë/ÙN¸ö—m™ûC+ð‰÷xâ4“¹ ÀÜæ¢ç‹0f“Ͱl—`VëIúaü;³± FA+bTDkçãÙWðoCÌÙºf[øj0Ñm Š€­M`¶t}`þKîví|NÌá !3b> öú:~¬2#l(Ü0<ʶ>N1K$Qå§á÷ w«á ObõEóŸ6Z)F#ZïØ߄öhmïÞêí θÿ‚ xßNàW€‹`åþ Nõ¹ÿÐ7¿™¹~‚ßâfûÕ²[&»9nœ?åþÁhl–£îùà)ì­ñn¤ªÕAGXëp ú¦6óëã?U1î†>?mΠ'0‡è‘ Çe¯˜#þšKò-ý2´ðGàÕnÿ‹ë ¾6÷’¯ì;ú¸æ àU2ö Õù]gʃYÞÈußÉh´X5jµô£rK²‘À–¿ÐǹÌ(n; âÔ:9ª§¡\b§™g÷…‡[f›õþßš6gLµpûðxÚ`jN¦r2õESA*žZÞŸE³ôÊ2R¹ˆø“¯DZ}錊#Ÿ©Bz*Q§4cA#±ðª4˜Ä»+Æ ŽF h®N}XÉ´C«ÿ?ž$1>¢(šA~õ?ͽ$fJÇG½^UyÞ§ñWéñŠæ×dÑ4÷§3#¢E“ŠœåceY);R«"•5×S‰QIQ݈D©GìŒA‹·c¿¼•Ó˜´Iey­`‘„¤Ñ{–ùÝ”÷P¿ýk˜›Wšñ³ÑtK#×jm<ìÁ¸Ç\AF‚›©MÚW³÷`;(n·ÀêúQƒ‰Ê,ä ´¤Ÿÿ4n*Cû±%ðjLaOm°um‚=gõúÁsž±¯q·ùxõˆYAMæïMðª¾ÕñzŽõqb¶G±kCu™ïü!ì“pÿlÌáv@ž…`Õ1nê9;‚]KOxV€mW”S+¸™x÷•m*pÍTÓ]¶ËTÒÔ‡9Üî—ö˜ÿZñb-P³2½v½0wg£ç‹Ëü,XE~ÿ z.[¾Æï4^õdôïù¸n4æ±Vom¼J°àUÀõÆ„?†=ø€{»x²”÷ýVíºsn¦}Ȭi„÷q'Ío‡Ïªå£5Õ+ã§æSp¾U¸ ÖïXUÝ€h×Ѷ¦{Ð »Àþ-Ǩ/z·(ÛOŒÖâùV>À 8'Šuo™ª¡L«'¥™U¡âP Ïa>N}b©È È)Œƒž&lMg•røþŒ¹ˆuŸì¹l ɹèùò’ìÞ±u¥)pl æÏ=àW›åä5؃3EyëÀ«5à ùà”ƒÐoêA*ÂOƒqï'À9ô”ä%Uû^ÕÜm«e,Þ®-3á‡PÑ­~:i2l¼}?4½ÂŸºlw¯{ {r¬äútÿVd7³Ì{ÔÜÊ|ç+èiÍak‡ÞÔ,º±xNÖÊ6ó°l0£&Ú²Çh Qkð–ñŒ+1c`^Æ~Ó€»çÜð»Ápw!¨…™_‹ùƒÃÜ)óoyÄ5÷ócNíí%™“ëNÀBj'÷˜)63üchðª5¬Î©R{Pê·o›ÌÅo7_i¥²X½£1ûëÜŽÖNnœÇÿÛcmι?‚-À«£¦›ÂÝãvSñ¶×üTÿ³¿ÏßeúÉ\ßÍk¯ÙrR&ºeøî°+e«€ÕB‹ÿ ŒPÖ­’mG²&šZjZë¦:ùpgæ7k¥ä@«]¦1Xg5ŒÊÙ pF46ê¨ÿÜÅûÀ«Næ'WÚïó_»öx—cîß¾†oÏsÃB—Ü_îw«Ê|ªß>ÚöÁ,Q}þ%&AªSSjÆuFV³“Uò7Æ‹&¡_Ô—6„1Õi—O`ÊFôâ–ð@ú£–š°ÛÑ®:€û׆=ÇL˜ê¢ûšÎÿÜc"#ÓUq¯8}DÕ¸¼V‡FDìµò›x©Uñe©ý¨JÃQŸR>yœZ\9ý$ÚŽ™Ì¾OŒž9*RäÕJ3þ¡4ïÁøª¦µig¥G½[Š´!“¢1êå¨kê£J©ŒpÒøöúÔ Ë ·ëʘõÄèç¯ÔÏV‰>ýR¼&-ꉋ#ö–£Å¥g »1¦›øÆ•°N†`üõûF¦@éÉ÷]ˆÕ^FÞàý0¢¸õdv‹:IeÑjh~Ågz“µØ@éL½ø @‹%2y‚·¯Þ1ÃyÆÐÖ< ÛiÿúFrF@9[+ó·l‘ôÆ=ko´1ö´ÕÖ¿c&É%ûÇCì‡Ë.ª¿ó·ézÄÔ¶zO‘m¡ú¡DÑžh,GìÌPUÖ€>õ3ð ‹¿ìdF_çíøÛÓTŒØ‰õž//¡½À¥d÷¶­&jIÍ¿Z,Á AË7v Ý%u1ßbüÕó¶`70NBóÛµ:ß³xzzÏ©"ïs ¤nSîzf´ªÏ´ÅóSlìÜ:ÔýÀ•v§ÝN ^¼Tö‰þ;Û w?åŽË³+´ x÷Qn3!ã>³q§Z<§z íl¬=å=€ŸÛc4?ų«ñ û^ô{ú¯êpöÎ_ †ºÛÕ5mæ>pµÝpàÕËò ëã‹bŽ-í›2&æzpÚWñä.3Ô– džÚÆxÃefžÔÞx®êõíÀœP»žjj–[1°k§Z´°ƒêP§¯žq-ê§v[°Ï}¬tÅõðϯ¾u³0¿¾ó=ýþßmúÈ$ßËopƒý<9,ÃÝR7Ìß{°Ðۢ̕úí%èÇ5¼RåÖÞxîZôF-ŒïrÆ«&…Ö†¸#¤»dMŒùÙ Þ%‰ÖBºÝä¼oã7âÚ«øn·¿{°ýW9¾‡_‚–¿zÁ]wZ­y¼ÉT÷·ƒ1o‹1Ãgal q—jÅOÄŒ­…ù¿oþ«˜ÅRÇVÙúÕ5±õÛÕ'¿Ðî ¥mµØ¬õ£|3Æ‹î5ÕÃEá Œ5*2ueýíÊg¦`ÖäÐcT 3ö<£5bb6ð1çüeye$E5:Ó‰ŒIÔ®AïVéhÜf£Eó1ë3£íe1SÒé©Ò ^j—ðÓ™ôÔgÐç^†vd±"™Œ'’å\Š­J¥:ž^ùdÆ´§R1 ,µ°²ù¬xѯÉL¿tƪªþUä”±ëq¦Ó~Led|$v4‰ 0™ŸŽøú#ú3«Ì>Ì·Ä¢ZX½°OéÉdm“%?`¬µ #±Ú Ö²¶î"Fjx•zëg˜©-uEyiSì.ÅŒ/Øf˰¯XËfpOyWwŒõ;GEÎyænÙ-mˆÊ{ˆ=aéÞTËü.+e,y×(ÛÈÆÂÔ^:k†É«ö;ŒU¼ùZ.ƒK­µæ_^½fêZe¯/QŸ¡,ë^;WåöøFšÀsûaG]Y5“§üix÷;*ñÔMXËʯ4s·‰÷±m õЗ7›)²üjƒÖô÷¢ùÎ ÁT‚åœÄ(7Gÿtglej{®4oÉ«a?¹ÈhÓ/1Õ(ßWwbíá¸C%ôdkó0ìÁxUMuåÃW]Ž»àžQ?¨ÔðÙþk; ظÜí’æDh/FüSê!OF›Ûá§øNyE?¬É—a÷.eý?pÌôö@“°ôÃŒ¨Ž¯{áð,Âæ¬@.fGÐÌ>#‹b>î¿ê"çÌ`[x5 x¥çm£¤’L¦²ªV*݇ûµÂ;w¦"¦âåF0ŠL<¯>z©1Öõy°¸YÌ[ìq¿ë‚ÉZG̿ꎀÛL3V~ñ]ügþ¼¿Í´¦~ûQ Ôt9"£Ý"7ÜïwÖæ˜Y²Öݼ†£ž‹Í’dõÜ¢9P;½^Ÿãõ_‹õR{hU]fÕÆ\}8Hr)ô·«~{¼oé7¾‚=¸6i;¼×I÷¯íûù¥è¯CÏ»ŸœiU¾à?ƒìFAuÄÌuÔ-Oí¥iø¯šI¤BÑ5X¢j[åâ¯:6:çUcI_"c¤o¿Jïõ³Â/ô]x:wД—¿ÒxÍ:°]ÆãóñôYÅ3r£^¤˜¡ÉÄ¥\̼Œ"O&ÊŠF‰æð¿dÆig3Æ2‡ç\¬[šEÄJcE•tæ‰$™ÄœXZ‚9ô½Gr™‹•@«/R÷/9щÀŠ#–•¦Š–Æ$ðœ31jqV‹ò«Dª¹'0Ž4–qFT5´)}è1D¿BêšFrœ«²ÅãNÓ£ùÖqÄ‹|©1­y§»aMdr_¸ +¥=ñº®©!?aW¬aåOØKŠcÏc$bN•áG–Ô‘bI!¿úsGñÊ£rd¦¨îŸÃ ÁîëÌv6Ä.÷¶æòÕœ9'·HâèvìN=)‘ºö?É ™J›w‚m ~uÒ&Qÿª¿<`?àÿ®wFëÏ™dê·?mJ¬îÏ›m¡¡dQ{÷´Üe—_)›þÌ.Iö¡:QÏv>XHSž‘î0ÇÍ‹Xùå±/n*ËÌH­“ë¾´õ¥>µI dV°xÕÌÄÉs¶·]/ês~¶à  @.kî¨ÿw53ß{S¯ïëÑ_Z×–ÐMqÕ@•šÀ­^:’Uk”«Üo²è¿ÊÇÞ~ߥ»GÝ%ìª R{ýï`}Í®ŽÝivƒ_5Ç(´b•µöZƒæð¼o ž¤õ¼àoÕðßíhw\ñ£éÏz©…æ_Ø“»Ý_Á¼¯„Ù5!|5¬çõ½kàfº3欜wc}ìÁö²,ˆ‰uûa!5=ØÓ¦‡Ë†gZ=•^læ`ŸšThƒYxö›Šønz7=[ kzÏá»;oÅóF£?îgMê³#Øë~ v“€r]ü“î.ÿ%ð*,¿ƒ_ýâŸ^ “~¨ß¼š%Çd øU?Ìý!•ÌÆ3¼ƒ=¶*Þe‹¤²>NWV7߀•®zS©¾ª±ÀƒÑ‹G1¾­ÀxëáwÏ™.GÔëwÆ_ò+X̰7¯4Îá~àU?Ä/Äz};ôŠ‹a=¯tŒhJ¸·Õ,E­å1ó ˆ1CpïX#ª¦p+žððEý5åŒF÷窮Åq˜ÂÞ­f޽™üJíǽ~¶oI\9fª†«„Ç…Tƒe0‰óZ;böÖ *ÙiÍÊËTgW+kо c R¸‚JÓë”L_,9†ÆXU5ÿÓÍg|f s¢k30…¸Ñö[ñ+Ÿq‰Q®HÖt"#Ò3ɺù÷Æ×'Ñ-µÙ*OÔòóÔ‚ÐÞqŒ|ÏåsôÜ0-ê-J&[jG«}aÔ;ÔKÍ'÷‹1±Ñ“ĤhìV:Ÿ­' +0oöboÔXýXe𠧏Tëèg±û{y…ìuFQ5§fËM°v2¥½h¼Zcs…;«^ÓÍTIÒšx¸ »Ñ éOÞªH÷ë–Áœ;'[¥=ÙæÀ«ÌwÖzô_ÉZÆx’î¶™ýMö3—ù¨é"ïÚkx·xàÕEsŸ9.Ù{zx¥}ú„YªÊålOÈËva¨>cJ¹6žÖóÒzâ«±Þæ²Ç´ž×Q*¦–r}`ªËs蹚&E’Üe؃pýͦŒì ÆÃÞha¾2»l7»ö` ó0a=0¦CõøÆ`‡Õ1ëÞù烕ÑW‹€vóœì¼áHbIeW€™Óö`Y[Ö¾9ÒŒ ¿çÒÜSî%¬ŠT©ä3ýŸvÆ`¹{Öî2C·b]A/vÀüï„g6Á“ç£Ç4¯çôªYƒ÷RÍš ¬GßÂ|ÍÜÕyƨÚÓ æ1úÛsÍŠðÁwWP¬'h.äSÜwÁ<#¹œ˜çý¡ >ìÁ-1ܾš¯''ÍrûW(ö`S`ï*3[òe0ëû”à™·â½Ú`üÔ{; ßwÁ8EOj¼è^zî.à=õT¶ŒÙœu¯fbÅõó¸ãþš›aJÉÏþ&àÕ£þ°,‹üXÆ·”C2Ò-rÝé®KŽY([ݽÌÇÑ,—5’nSpz^㟴ã æ7ÖA+šãùGð”fí:äW.]¡ý'¥õqZ™o¨×÷™Ó¸Ã#î>X¿}¼Öˆ¾ºLÓø+íJ„ežŽïàé ¢>Ã<3±êÃKGLÇïÇqVdµþœÿµñ¯F¬ê÷Í\»=<„~¦›ÍF?Ùku6ÚX®M¼Òúªµ°[׎æôM`N@)FsÞ¼Ê"þ`ï9Ês¸Ò\Ë)Ä€2&¢Á—DLP¥ƒ"Z)ꓯD­DÆqsÝg‘ `|{*1(Ÿ'3 lE>­ÁÒTÆJê—&“fñŽeh‹&›HM µLËÓïË È"ò+O+6“ˆSбk ¡øÙ™¸É1¬Uy/…Ï0bëÿ˜úðªŠíû=sï™ I $$!$„B zè½éM^¤¥WéUzïRÅÞ±wQAÅ^ž½ûÔ§>ëíuîï}ÿ 7çžs¦­Y{ÏÞk{ Õ–Õ›'¡ÊWž„ÕS7`ÝÆ~¨O.Æû`¢EX؃½ÉK¯þ+oqŸÆØk½T½ÓT©lª›^Œm(‘w±ó"nöÄ*ÕSåZ¥¬9iZ;µÅ¬ù1]ótî6«MòÂ=˜Ïý0ßqëËf)Æ]#ɆÛö/£þ«Òømgóø•Æ·c^6=Á¸úG¥}äià•æª?&·€_eår˜'í‚H:õd¬Ùî´=Ðkv%ã¯Z{îb½ Õœ¼ªÄzô5À,#î-àU=ôðB ×ú`,ø{ñf—í`—Àl&¨"3VµÇúaõ Ä Ô ÷A¸RkóLî&<÷3j)ô@_ÆzêÊY1Œú õX!Ë&Ù7pýM~õ˜{»F’Éñþ;V™§ÛkwÊãÔëûÏîH~¥(83·F¹Þÿ%ŒÀB|³Ðn ®P…ßïd•¶Ôß®õÿ.áÿ-ñï¹)úY0È­j¢MÝ﮲›äΡOïvßø£þXÐxµ!®Ÿ;¼ê`ÎÁü'R>z£mÄ_%ÓL]³T´nl!fÃ^ÌK=Çè€O4ß¹æÓhôE?´rõ‡«¾†h•ï­Á>÷Wpk0}4Ð?æNûÏÝxùK¾†ö½ÑÄ8OóCü&wƒŸ{p¼›{ð˜ l–Ì5«ÝƒÁËhFô/0¹¶cØ®C‹6ÒÇÝø¬ÑÿÅ<Íï,>‚·™‡Ù9On¿JÅØÕ‘Ä«b¯qq_»L¿Í¿ë:ãçãî>âÕb´ëµÈ%g|Q+i#ìµÀ+­¶Õ}ìMMF+ `®O+ €ê&Á&07sTÂuZR=>Õ°¯tÇŒÓôõ2Ç®`„ÁbÙéoòíéËÞ!í¢…Ñq¢Ê{ÅÀ«)X}aŽïõèµ ô:WFË>Úhܑ֛8S;NcL@ ‘Iñ([BÍâ x¿bfÁ%Ó+–C?P ë†Jxjçõ"§‹1§JD¾$F|&Å´Ê1Ó&…QSiô#¥]JS •[Ñÿ®vô¾WÇ>–±­ºžŽ>û:XMiVìéBùxÚ·…•`Õ½%5ÀÛjaÞ—ã>g=¯ê`MÍÑàFYÊóAåWëL+ ó‡rëö(ú·xS?Üã&Ö¡…•ñ4Vi!zãpQùUì½€$ƒpí5XÛÕ0«c\a®’r6Å^ÁxÌ’IÑ·\øÕ‹oò|eÿð+¼±[iÈvð«fxËÌÂî Äjž5¼B£f㩟QC½ ÞåVØ퀒Åf0~[+êì×È«¸ªã.VF_ ú¹m¬—ÚÂ>Ûu·Ë£æ‚{Éß¼êdï0ÇãêºS¾o~ÕÍJ´rt–Õ(§%²Ø¤™~¬§TÖüqFâîÓsaÖl gæ`wôÁvÌÍ‘Àóø¤zèÖà°û9ØLóîåŸtGýGnžüW>„ ø¥¿ßŸÇn1ÅOð{ÜpàÕi3Á­v}ýaàU!ë;?{p!îÓM–˜*v óc>oü¬Ãz5Ð+:»» ¿o£îüf¦<d»ð«ÆrÒ¿FÙÈë‰æw.x¥ù8å„{Ô×ó½ü\ôìË‘WÜœ£>ÃZ©~Õ3UsH¼É¥öÊ`zÒ[ð,NkÜþA{0‘Ú­”#cF7`}çqD‹]²Ü®€=X–þ«M°›R³ê°G¿ŽŒ§ÿªŽÔ5£1Ãó¯qhOýÒÊÆ?ãìOf¼èAÖ°)M^•Ck-ž—Á•V¿Íb¥Á0Ž«"æch‰)ÿ©«¸•6šIZ:u>3Yý"92á¹^"íÞ 1—ƬPI=‰±©¡.–ÆsÔ ã)Eì©Ë *à e‰jk$ŒúÛ¼h}çô˜-™N½ˆŠ<ÔJÂÙŒoõ ¢âq˜©vÜvª˜—¡Í êVê5 %ß|GüUmüñç}¶e?úsè_l7ÖC‰iÍzíäžáê;·Çwg³–D¼¶öàPâÞAì*ïÈ0ž¼•óf¥iKÄ=Ö³^Ùg ðj=ìAÙ}Á–Ø?Í~«|õcécg=úRò·yVîÇ÷ÕgMÇÈûRÕ*_õfg¤N¤¼Q˜¼Z©O,Ý,Ì3{ÑbÇVå…˜Gup¯xöS˜QZSà;àÕ«¬/_{ð[ÏÔW|º xµëà[Ù`Gع`ŽMäu ÝFô\Ve_Ìâñ˜ùÔEº¦f£–ȳÀÅ"ó©t`&xj%h¼AõE•“´”¥†Í´¯ã½NÈàUU÷ÛL/¼*ö¿bW¿N6¸µö´¬¬À]ÿÑ—ú¢­<ª<Øè3?=…½dpª>žµ 8Ûøô» ¥ö‘V¿Ÿ<&WñLõ³Í޾\ïŽu±Sk>NºíNÈíæ”»ßï÷z>øŠ™çÜ>0ŽàW]m-ˆN=ØØ=Ó™!èC­2´†±@íÐæÞxÖž.õôAß‹·ì+€X㩾&8ྠ6ÁÂ>.íý£î6Ölj3ÿ^}áö;¤—™à{û]¬—zÞLq›ÜÀEÀ¯fšmîNêɤã›L¦Õê(Z}Qý%èÓÆŒ}W{&~†ýdë9ÕÃÌ»/¨îì5%rÖ¿æâ™?Øö`%¯3Fà°»××ò}a'6’ç#—Ýîo«±j«%+:Äf„€Æ’¨žL1zuPi£÷TÛª?¬©´cr0?š µŠ…øÆ5À={ºUÙuÑ‘´ÐË.¿À·ÃX$açk¼ºûx-Ì·±xÿ0Â{2¾Y@Jƒ}ÿ OÓõìoz´€9¶©ÖØJàÓXkYã*ó •E¬¨@ųd õ²êP ´"¿;Œþ{`È¥½Q‘6W^LÍ/™˜…ÞMˆÒ¥Ó YRuüâcÚU9<ÇÔø/U Èf>Nã/iÕ•C/5Å©g2C=…ßSZeÆ3”aM£JÌ~)M/]2O[CÂzô3e³ìÄœ+ϸúîXIm™ S É5÷"Ê?`Š]/áþóÁÙµ5s¥6ðª ë¿—È7ø;ˆž¿k°â§šö|ÿu’`ѯî9Ó?ÆQD¿ÛjÓ‰ç”{aYi¤w¨û÷¾YdÆñí†Ú&àWû/zZÚ›÷©ÏPxõÐâ^£1ÏHßÈãàWúþÏÈV؃¡>Ãó´©J×¬^ÔšYŽ÷¾ 3Ru^wÉ9¬á^œïŸ[.c¤ m¹î]à•F1ß$¥Ìö` øWW‰˜³¶­eå/é6½ÓÑ÷ª3¼­ª¨†ØØe{!Åòp%Õ|€+ºcG霬ÁÖ×e>Næf+¬ãB›g?`=¯±Ñ/\÷¬{=˜bêûê^" p‹Û {ð|d'ÖÆ'X‡=˜Ø ­Ñx†P¯o·¼ ¯`e ¼Në¤þ| ”¨A¥­±º‚ñ=‡ëUg~}ôË`¼;KÿUC÷ËtSÜyÊ<äÞôçý‰ ‰}ÏlŒkáø"ð«;d±ý=R!:Ûªÿç&¹ÑT3ƒ¨\ß8µ3®zCmÝ똴ö`E´»ìKÙåàåMàYŒ¿ú!ØŒÁ5ýü³À«Ýlcâ†ù¯ý3þ0æÖ\?Öïu“üL³ÝŒvKYçpšÅæ õÛQy®É³C¨Á}fÿ Ñä†h{[úìÒé¿v¨¢g ì;¹.Î4Ãü½à¿p¥}¿†þ«4ð«O]3Œéa÷"¬ß>~6Æåräep0ÉÕ£~•B½še˜Õ©‚~ ¾3‚õqR1ϯ“_Á‡tmVGoÔ¨-VŒŸ»b7Ñýt£,±;££i¯Í—­~¡ï¼äƒR'Ú.:ŠV\ ©nfPQ+™ˆx=£«J3^ÿ9òÍ‘Î%»É° s*ÿ”!†$ó Q붆5 3cuHÓ$Ìw.ÏHÏ$ܧ RÇ£>¬r J±3Ç0³'-ÕUARbø˜DFW'—e© ˜N+1ÌÇ©Nü)E¯XXÝGýõºƒ§áÊb5„1 Iôíç0â4žþA­aGö”I~ªþ« ̧.Oä›–ïf•g¶ÏPôPkò«ºØó¢¦7ùçXìÜó ßè%V9hG›k,§v¦kå”ð|p­gXúf0°HÕõ|p«éFVÛÌüÌ^µŸ¯“3féÁ÷Û™<Ø¡¶nMù—Y`¦³¯n´a+´êc?'€WŸáš4 ìU¬€¥Ô üX:Ež¢~»Ç[nŠ4ޤí×}æ;5Rd¿ü—µ˜k±ºÓ´ºíò`÷á­ka¾Â\¿Bõ`™¿ƒOm}à•Ú¾UÍ5Álêßšcv¸Ý ÞÕT4bõf0‹T|>mÒ¼ýLF°-Â{¨’B!újlÈw±#·ÅœíM=»ö¬’§ê¦µÐ_íÐ÷…6Û¾ƒýá¸,Œ~èÊ»§/ZÑT÷yþg;·Óm³åpdÆüCÜù QéÄóAµ €Ó䊼 ,îÁìçÕxßθBýWU¨ ö<öŠò²Ùq'åysÚ½à§ûƒAmð«=qîvØM­Í=2Á–ŠæEÚ¦ÿE2ÝdƒKäãÅxï]T€ØÍØöh™Ö`¼+ 7Úº}3¨q˜Ï(ôЪ`‡û)¸%¸AŽI ÿœ; ¬X(éæ'?Éëx ðjœ_å®ó7šÃf¸[ãFøC®ìÁÅàWO/‚]4Gl4•ì0°Eͪ¨†ý¤°³ˆºÕª×W}޳殘K=äG€W)¦%®:ãßÜÑߌûü{PõÿoCÛ‹}O¿×\Š\Š»Hsµ Á¯úQï¤7æO¢)dÞÖ Ü{c­Êâíí©ô4Ug½‰®vt +D·âý“ˆ”µq× 1>–GVVfYÃx†V°–¯¥–HM0YøäqX™Q8/úZÐÉêoº8ïFº;ÁyµºÃ>.hoŸ1Ûâ¾ .€q´5'dìÁ*Q­ïÜ÷¾ xÕ—^ï\Xg›ñ„Þ@¦Þ˜…Šý­—S© ¦þ«ö`w¢·nÀØfˆളn+ëQiëtÇÁ¯æJ`>õ#ýUÿ¾?"ךé~ _醯N˜Þn•ëÏ:‡^bvºûW‹h—ÝjR¬úÏ:`Îæã‰%Ìå½OJ®ê¹žFëZãúê·WpÉàWmdðÉû&°»É箜ßî?rÝÑ·gÜ£¾pl1îóZä9÷§‹FÔo²VÒ¢ƒlWæ;÷ÁìI1EŒïË<¨VTvYVf›)Œy.B»5¿]¹G>•9&qÝ­“…vwt™ËbÙæÇûVDÍwΉ'âÔPMédbÎD\—ÏûTB?þ›§ãÊgf¢Góè×ɤ—(…~ñ4ÚaE‡ÊÌç}õ¡~{¨_•G5…²ÌÙË¢®K˜ËœM[,•ü°"VrÙ˜N`Z,ê*ÔÜ u°Ê‰Õc_žö£Ö®©Lþ£è•Þã¯ô42ŒX-ü›Úô'1¾=“xFpdÿ/¾½:ýù¡]™EÄK`…f7†çŸW‡±;”åÙB/`S+¾[3)oþÂŽ©ÑKÁм¹(Zãzt…4¦ïè„t45WÊo[Ãêj,ƒi“¶Ä~9‰¹‡š—äÍQ3’1WëÁc¿Á5̉>k6˜ÎD_­E0k¼ýü_™•Ô“)#m‰ýܳÊ_?^½»I¹™Ø×±c_KÑ8Ó8rö rË¿`¶ŠXÚªUÍSvn¤¡Qkø6ü)eö±}©5—±sÀƒ‚s¨…´ OhlÞ­ÔTÓü¼e«ÕoŸ(MÌõÁr¬»’iÖÙë­žv¶¯; T8ŠÞÖý¼ u½5ò­öß·eÖr ê!gšÏX§Vó$\­@¡¨öy}Ö›8,¿ÞXÈ5&úóŸÅJÈ1¹¾Šÿ— ”YëêÓß¾÷|«^«h4¨žÜÏÅZÌ‚­^©¥t-}dkY½«;Æm,O²ô|pFóqì: ñïÊàWcÝŽ ìÚÆî/WÑ pçå1óˆ»Áïõg‚vöus(.ÙÝéë‚_Ý.klV´ zõNÉ2؃Ch•U5¸}Ù{^/"§VãØM}†ÞT˜ˆŸÏË=x“~xòŽà€û#XL«hïŸÆý¿=ø_ùÔw÷_ù—ü.Ì©…þzð«‰~®Ùkƺ›ñÓ6çÁ²™ÛÜéà2w›.²ÊT°#Ñú1¸o<]ÕdZ2j wxX:~Õ³»9˜î“A¶+m´ZàN¯Y8-ýZ¼õÀ«]þ+§:ù'Ý[¾¢oæW o¯Fž¿ŠDªâÞË%ŸúWiÀ±~¬y¤r9Ø[¯šð4o9þo¦‹4©„¹å¨Ý(ª8³AØÛ£CY©ú¢Ë}kzî–òÑ:ѱV­gÔ†kêyJ~,o¥ öús¨^ß~®à2ÌpI§‡=‰9!9¼»ê"WˆE”ªg«*kÖ—aLWr²òôLõas[S‰v`"#¹êÄbBã}•L^–‹cHá¿=£AÓˆ3‰Œ¢*G¿S£ý*R¦"󳸮S±–HyÚYé¬T™Â¼ì*±x°RŒÝªÎ¸Óxž!¦I¨'O„ËcdD2æÒvÙÊ|ç²è«ke¼´ç[”H#1$Ì%ÿ¸ð ÏR·â7Ó±h»¶IoSß43ŠÛMÀ> y†‡Yð³LÂN¦ïßFÄl3}ˆç€W_Ç2 –c/Wý+ÝîÁj‡™¥×4’WÌb3†±%¯Ù²¶”½Ý*Gú]®1?§T7ÿwóª<ŒÝVw”ÀŒd>ŽÆ—f˜Å‘º‘ÊF[1÷ÛY‘£;Ï´1 ¼R}èÖé¥à!5¨ösxñfT=¬«×%×¼Ì|Ð*æ×àuð+UÕœÜljÛnGÙ%¦ æíë´¢²v“j}öo«BÍ…åÔį‚~zì,ÏüˆÞœ§ÚÐÃ1"yÿëvx~)›`?†í¿º ܸ x5ß+öü·°ûƒ_´»eCd3ž«çƒZ°=P«3p6ý§Zƒý y‘U¨k2övó¡D¿Öáùúq\Û êcø¾jÍ‹^ º0žá˜4sÿq™n ;,/™Sn?îOìU³&.ß÷µ}àÕT[6Z]`›at§ÉÓ{P ÍldznEk»á¿zbxF¨z«WC XÜóÐÕëÓ3•J²18î"nC0VŽHÿ¤»à?wó%Õ|ã‡ûùK~Ÿô33ðóJ7ÃßdÖ›‰ÔCÞé¬-JsOÏcôš)Ö™;}8-MÇ ª ¤n¤î £y–¢uÍΡu ñY v“ƒ؃šµ¹6h‚oë70^4ÓöŸ¯:ÈwÉÀ"œ‡k®‚_•òÚlæ;EÇÛAÌé‡áL}j_G¿NÆØªFènŒÓ»øDý¥Õ0Ÿ e4c¥ W2‰ë{“Ì´‰K ªMËz©ð€ÔŒ6‹^OþSO˜±¸oYÚ}Ó€‡d•Ы‰)êå™K<¬xœD–S†ÖOBìt°#Ë‹Y§Fý]µ¹n’¹ò ˜O“E?öž»i„U%fi…ZW¹än™äa©T+=då©i’LÀ05UÊÅ2 ÃH Ç7­†oxj÷åK‘ñ5 k+K/Q[É ®–åÉeL)ž©/, óÊà™C>+ôWÊ]èÇ]´O5[w$ÆM¯)Η2}‰u#0ŸâŠß/b}®^%Ó,2ULш³ÆªÇ‚]¯ ýí…f2ð*‘XWÎì6ýˆó1ºÿ¦RnFâq°ý¾<ÑÜ)àÇxŽÙXþ4ÓÌxòÈkíhûìA=)8/ýÍ3öЍíùyŒi3c«^”j‘g%ÇjôÇcŒg(G]¬‹æ;'Rqø¿[J›ƒxnÌÌVCҪܱ’^Àì¬Þý0â%æà™ïƒl=Ø}õÕ÷a²‚¥àûª/zƒf§Ý1¯`ö¬ÒjÕÕQà7q×êTÄž {p35q¯h¤µù‰Êâýefmú¦*þ;‰Õ=[iÌðêóPæ°ŒŽ¾êÒa>ƒUQÍäa¯ÿÌj¬Ä××î‘5‘µó«Çl‹;5Fj½Ôjh×RðD­$Úëö:<<£î­¹ï¤á¥¾Œæ6§%:?úe0Äí a3Õ…Išïº¸ÛåªyÞMñ_ø#A]{ÉŒËrøš¾ƒ¹GvX‰6ˆ.†=Ø -œoò`ij.o°yú²ö¼h™ú’ºÒW¥ö`]Uå“ëÁ ΠÍ}T[8¸Ãý~5]Nɵþ w‡×Í”Dó«¿Æ {p— 7Ëü`¿L:›ãÁ<à‚*ì,¶]ìÓ{÷3xçEÀ­²7 5bS3 T}õ*vtU¸|ó·šù³®+VíÌ2=Q+fÖŠîÀ%Ô7÷ögØ¡E°3FßuÜíî…ÿÙƒïZ=ÿxÈ5±[eid~þwêœR{P½½jÙVÅ Uµ¸+ªHÆ*’›ÈfÚ híP·zyÁïËÓª÷ŒÏæE¿úºíA=Í`‡=XàúPŸán×ÍWÛtµ›áÀ«‡| ßÕœ–Ùö×ȯ‘9¶-zp®,4µÌ@æ‹VÂ^pœêÏ›µÊ+5T;áç>˜«Zïj'u>5ºöâÊŽàŒ7?‡ìLýö·ÜàհϾõÏúà³+|/¿Î…=¸Ý\¼šêO¸[C–›ãî¡à9ìuЫL-;„1þ1 Zó¹1Þh«Ug´j™/çƒL1MÑk›ý—.8| 0ýGâÕŒ=èÞñE¾‘Ÿ>z'ò"ìÁmÏkE'Ú˜au€ÇSÏÍŒŸæ¬m¨žïƒÀ±¯± —¦2G}jô‡ù°ª£1ƒÞšÕ2Çž‰ö'ÂÌ–°[¡çâæ¿DŠ¢#cö`K3ߊ£?|µžUù%Ï}‡‘Tå€Ö£éqH#g*͵A +…~¤$âV #ÂZZÅ|Çò\Ù¡þU<½å݈€åWM2¬?X‡^ûÒô…`<9R ¹U3`BôJ&fé;¥JXKºjìì/VbXQU¯Ð*˜éô“kýÁì˜C>Wò+ÖåÐOë¹l,g'ì.H‘¤: ÚÊè,Œô ¬-½ª6V§5ƒØ²°é’Ìë|î“Xi¤.ÏகžÆ›\£Ñd-äcŒQOâÕ(àÛê<,rlå9c"Öí<àËžì—Ìà•z÷a/À~«¸×Q¾3cÌâd+Û üêŒÕSÍãÒLë_<‹øvÛݲިýû‚4Œ¼!5mßíÖH;ê3”–÷Ìöf؃šéÍX«»Yuªì–Ù˜e=íqÃEü¬9Üï[^`6A®ù,¸b1^t °y`0“ú,9f©íc—™&¸ÏeX¤«ñmõÁ…=6wUU´þ² ȱ#^GžÅs²Ì¯è?­?¨ù8Ê@«á¿ê'Vï.Ô¿²öM|ºUzD¯¸|àÕÓÀÕ “ãóýU;ëï)×Ãî—‘u˜ùob?Ñz©©ª5ïU‡w(O—b•–àÛÛd"qíwÖ¸(¢¾è,|~ý¦z˜Ù²:ú^0Ã"¿j¼ªïF¹³ò¬9ã®óân ºØ·Ì´¸dwÊ7ö=Ì)dÿŒtŽŽ´MÛSä&SÆôÇüë…þÚ*[p¿.àè½Yï +#ª~ÅÎÀæéxÆÝaUØœvÛhÌ{ ÿ8óqnc‰Äu÷Ÿø·ü^io¦ûn~©î白À«En‚?梶ºl4GÝ#ª jåM¦hÞkZã$¶­²‚l;ÃXÊbê3ì‹]Š>™-wåèo¯+Çüw.Ñ×^µ“»T¿×ÿÇµÆ >ë^:÷ó7¢oF^¿úÁ*çX#U¢ã¨‡ÜíSµ’jÔÚŒýæfJ”Ã5@¾CKuýVU‰ïÅ5X½Ðø¢{÷V™aÏECßÈtÙï·ù<Ï;"?E‚_¥’•˜ ŒOÄ¿ÕÓZ•ü§ Fýݘ^ŸÚ‰0{KIX>•^ûT µGu…DZÞXÝX4¹ú´C-‡rŒ õÚ•Sõ$»Jà©^-ú£âÛY—LýE™Œ¸*' 1›3¾úĘn`EbX%úñ“é Ê‘lFbÇ1ž4ÔgH Ö©Zo2ó‚S±J*óþe˜r9­S_(aÃx¶êÿjeð 2…Öì`´| Ö—âLEÌĉƒ°öVó;ڣϚ%ß‚Ÿ¼D~öÆb+ö€4Æ*´†=˜Áz^­å?hñ¾OOìësbzÈC0º‡aA•aNôù™÷ŠìgÌ~ÓÑcûÁ &`þ*_j'Ÿš‰f £1VÙvö¿@)=)U½¾£öuâõæ] ÌÍFs>‘V‘—¥©ÕþÇdW¤Q$‡¶êj𫥑ªF{ñ=̈³ ÏÄÌŒ¡ôîÔD{µÞÄëÀ«fàêW¯¡ïKÔvŸÙ&¦.úr¢4473`t•f’íjïdÌáWà ›)©çéÐÎ¥X%5ñÿEò®V-¦KxVUó-ÚÔkgvƒ<«¿›@µÅìÏGaËV±ïà_dDôsWÉ=êžÕÊ’¦šÏóïÛñxîÃn¼=!Û#+ð«Œ¿Ò ¬í°R†ÉÜ£ VédSÖ€W¡ªTUX|ëX{þ ¼©²Šb<÷v¼Y6U¾vòüî.<2Ïd7'ÜÏÁ¦`F½¥Þ×™‹å/Æ‹>í`׸ÑðZeb)fÎ·Ò ö‡…e¶ÜìaüÕJÆJ¬1…vÞf4¡zOýíuÑ­°Ê5º{ž¼GsfƒýÞTviØkZÊY<Ó0¾½ƒü¼Úí¿uªÁxÂ]ëàçaŒÞ޼ öƒUõûe’d{I2cE¦K”õ¼*'[£/Ú0{åf Ù·áTêm6Á臸TüJÏEtÝm‘Ñvkt0WàBÙç×ñ|0oY3š~¥ç€Í¤ÈÌÀˆ©&+l ù•æà4…P™+9óêVf0–æw2$T:Î`œ‚g\AÚKå‘¥9E9ô·‡?åbþñTª•ã]ò¨âX™œ*—ÚZeb+~²Ún©ºVîxÛËî3m1ß–Û€Ûª×× k¤æ•zU*2žáÌÌ<ÜS•š*¡5§ æó$ª½bUkÔˆfþ¨÷?×f¯Šp·ñÑ]®{ö`7p¼,ð«/í=•wíaÙÙ„1ÿmèÊ|"UįùBÔë› ¼xM–cí6f-Å:ÒZí½Á‚ÔQÈš´=äEرª’ÓR–F? F»[ƒ"ô~3÷‡«îFºå s‡ÛíãŽmmg3!®]¬>ÎNð«H´vtŽm|\(‹Ly*ÃÏÇ· w+ái÷aÜk»‹¨Q<™§@ІÃ0ºgaÎän~Kp«û=ØŒ—íÒÊ?ìÎ;f²ýXÿ©Ækfú,?ѯ†=8 3ä:·Ëó{\~5Ólw÷o`·Ô3P“¼jˆýAu·Öðü©̵)æk-¬¥¡ÔY=@ûµó˺£9›ªiú+ñ+ÁU¿q¹Ôoï‚Þ<í^ôÕa‹.F«®¯¢þ«^í•RÌRõª1Ò-ö jb^‹ûÎÁì©Éx¬쳺çêÙpkôDiÆ‹öÁSÆqïÞ,7ÚmÑaD‘e@;9Wå)ŒD‡j¯Ç¡Ã8„ØÉsx— ü™Q x;­vPHµ†Ô˜ÝTŽ\«OøÊPk¥9VÈÓ*1Æ) 3u‰‘éÓDT†™¯ºW¡µ—Id)CÞ’A/{&Ñ+‹(Z‡IŒ£H¥Ç¿×UãÊ,Mßy ò«Z´a^£âª‹‡X=’E†¤ñcuˆW <-b^a@…ù4¢p)úÇ4v6TÆZÇù¶‘l/Ÿ5—Ú1w¦ÉŸ¬E¨ìoˆ1¯àûF³ÖjÕ¡š,ÍL7SÕ(r×ÇœÓzz¥«¥²ÞžÄ™5æ:êàtÂ:zKsyqÍb9¶ßŠ=~Ï쇕«ñíåK3Í eˆØzög°*=W=$ÍsÔ‰JŸÌWX›òÚ—¤k䪔Ø,ž,‹Ô‹d3çóiAÍ™¿°ZÓÌAòk­Ì0o•ÇS×½°T.²ÆÄ-@âêæiѪ"mŒq¯Âl0r0 ¨ÞZ*˜å°W˜.èù§a¿n‚-]T¸»n7ì°µ0ÞñÿËèÑÚ˜©ÏƒïÔ7Ÿ3‡¬ þöÇ“ZKuÆ‹j@µ­n“Z6ɾÊHúQÑ·\ª»¸Ñ]RMU_ÁbçR9Ëî•å‘õèå·±V;aõu E8 öH#f-Î’{E• е;ú5ªÜK¼*ë’Ÿ"ƽ"²Rl™}%輪.Tâ¾wÕ€W÷ÉcàWc}‡¸“A'{ÊŒŽ+¿*òÌð«ôèÏ‘y¶OÿSŸ¡û[fÐ~®ÐCÒ—UT©ðÞPëMÔG:&wâMÕ_ ¼úw°6˜†ÐÕ_tø_Ýdó•Ÿì?ö÷¯*›©~ˆßâ†øÅ˜!׺ n˜ßém®,åùàkÀˆjCoÒ¬*ôLnä 4¯CëÃ7¤µ­±Û×b?9šÏ—Ga晦ØoC}†¿”ù8)°Ë¾füÕ)w—¯ê[{­A{5ò¢+ãŸÌÇNR%:ÔÂ*l„»NÂʨ¦þÜ¿-ÚÖ–qß·`,?­Ñ\‰§ÄZe;‘xÕƒQZÊ+Ö¯v—Ô¯¾T6ûi¾5ã8·I§è@؃z†XWµX/Uã ¦ÉpÆ$(§ê„ù”)a=çé¬7‘Ȭb^9Ú}‰±“¼DFÂ׌ŤÒ7Ÿ"aœêŒ”Îä9_ט—^cœª2¦!‘,¦j,çF=jù<³+Ç|ÃLZiñÌœK¢-˜È“¼äGŠÇ=3hß…:{–Àwh€9æd—C[*R7¦ù^#]ÕâÌ¡ «ô¥8ç$¬EŸÁBõ/íÄX¯£Uóo VA2ÛK¦7ÙÙX0†ïÐ[Š9/c|V§ôMçÀ‚ªnjµ¯›b×Ñ*–º/ô€=¨õÉßþ–S¦ £_Ûa§zW}3x—ñ²Ç¬6íi§ž JgËÁœlFÑ‹7ÍÖ°¿šÓ¬}s^†™ìûè½xùּޕ§z}ªoÓ%ò¼T¢ÿê1Y)Žde°G̽va$¬5öÖR!8B:Õ·¢•ñœŽ>Û ¬¼‡5E7âNæ²(Ó/2¿¯Øz¦ã Û›aÁBf›$ÂÆìm¿j,wc nÁ;W`\bæiÔ¦Õ-À”-XÇõD+{–˜÷Á=ǃÔ“'Z%P«l5Ç:®b­} +ð¼ ^e¹óîU\[Åäú,ÿ_;¸s‡[lWÁ܆o¾‰ý¢æq;|Þ ¬n4Z¢UZg'¾ŒþíI=Õ#nIMýþÔghTÒ*÷WÀ¯Jèùœ}?èåvRŸ¡¶ûÌÕtðÛ\p{ý?þlÐÌ>kfÆÕÛª {ðöޏh$ºÐv"»›Q×ÚνpïM@žLŽ_7ÌÕogüë‡Yq¿VžGOv`|û!÷}°$æÓÆ?Äøöɘ/ÿöÝüWþ!ÕÐ33|O¯*}ËÌ~ÓÇÍr#ý>o `s—p÷ê±ú8£™%0”9ɵXS{<ãYU‘w(Fæ(F \’þö‡ƒê.Ûhïò¯¯j¯4^TýWï;Uü9ëõÕ|+¿ ÷¹yÒEüßV+&¬•âèµ¶/£” §SM%ôyàs;îêmÚŒû¦™™œçŒUéGk¦ýþSÉ%ÖÈ{2Ú׌–#~¡oÏì™CR-Ú9:–J u¥ž™€µ]ŠþŸéèÏ\z€²ñ¬÷E¥83G.àÎå¸Û‡z å$TVk1'0’ VJ-ʪƒfÐVN#*hEÛTÖ`Õó;Íw®@«1³3“Œ-Œ­Ï 5¨Vdyâ¡c{fÛèY^uò¿r¤,ž† ¤¥ù¤PoAãØ›Æ05 ?eSÃA£ŠUV4¬Eì/E÷J´=ÃÜÉT´6•Ÿ¯c}“|ŸZØ#¡_ßêJ’‰š®äBZ'8b^#†¨‚Á ÒÔhŒò¬Æ¦ÈhüE‰XSLîGý«‰¦[¹üj¹ Ï [aM. öòR¹Ó¬Å·ïúî¤ü¹½ücfšñäϽl]û7ðª41­›ybe|Û󲲄Uõ|°6ÖœzÓ>ïÌlæ°nN}F1ÄÑß•GÞåy×ôÊ£ŸL5¶ôäs9fÛì‘j+ªÞSŒ¯¶«†¤›?¨ÏP ëìùH¥~ûCŸ¦ÑöN–¦5þh[€Ó7d=údðä:°éÚÓÆ½EJ›Ø‹µŸ5“ëC\£ðL¹Çl€Í¨=ªz6½1§µï›ËÏfõúÊÊõ¶ºuöUd=.}Í'ö]~÷sŸ< ²Ýפcäe)¤ëuÙiÉe,ëíæn»"R™qíÊ›­hsSÌáåØûg‘û¦a5Ý)`ÆWÆ ­y‚jù•ÍÁ#¶¾iŽß,&ϦÉvàR9`çµv›é‰y~ kAÏ3€ X;ê&žÂ ÄN®±¤Zµë ð¹¦ù=Ößî-ºovbµš1ôn6ÀwOH޳_àê26úËq¹§TÝö`öwUºË=l·È­‘íxŸ±þµO'ü·=,Q]±ª1Xt o¤g݉WzÅOX¿E¬xx'vê^¢yL˜_:1úI0ÞêÂ"nŒ•Ù€ù8Ϙã.5î üêªÙ7Ñ÷u}{s›Œ±ÑhVt®mDÍ–¦‰ÑÈÔ¶hËNüÉ ìÃ[kåê"|º‹u.”Û šÄyˆÏÏe¼èßÁFôè>éå_Âý?u³Å˜ïaþìïóû0·¦ùkWCü-fŸáV¹°£`:ÌvàÕÆ.ô‘&Ç^Çê]ZhO0š ?´~W1s9°¾dkìµ0:ÏY.רªßaÿ¦‹óuüJ¼é·°úvúÏœÖh;æžöy~€_ÄxÑgœñ)ÂȬ¬hÛ›9pZÏ«”)Â(jü~ î|ŘoÀ°ÿ– ±rÍ0½†vf6c^¡ê·/·û¢ƒiß,e½‰®Œ3< ¼ê~¥ì¤HꛑÃGMÀLÍ•0—°§|ÊXwaŸvU$æT¤W;‰')̱Ib´F\ÆâÕSˆehŸfäIXWpyŽZ‘YTCÎåU©Ù¶¤±­ï\–ç„Yô¾—aVbyæì„z}Ù1^TJ)ô{—%#+‹ù,ÆÌ)G”VNV=ϨÍ[̦¿+•Š)1N•FþÚ¤é<»Leœù­²s'TvÖsùNäuµ4&££¾»áò_ù–ˆÆù¿Œ¹Dí XË¥L7“ʘ«ÿ —GÑÿÖŸ/0é¿vå=f ?o‹½é=¬&ÍIZ(Ì­¸F÷‚}˜ñm0³Óy†ø+øÕTr°‘¶‘ýÓµšïxvÙ%û }…¿W?ÓqZZD^’ŠV#;ž‘ ‘V‘JFÑÿ6óœ]©cÔ'iÁ¯JÌ&ôä0´pfÜLz1+aÔï·C/ß,€ ½ÈL¥ªæoð«zÀ«&`,UÍÚ`Þ±î³Êö²3€WMñ½û°_`€Î˜Kq_}€ÐZ«^kÒ¼´«l~ÆèkÖ>Ì•é̸úa¬`Yúí6Ó>+5.ú¦Ku¯*˜Ÿí±SpïÓî¼Ý/‡"[°Ö^C :awÁw›´>h.ÖÆr°Ë7D-œÚô·Ï@?·¿ê‘¬ƒÏn“Û«à¥MUñYfG¿ƹ½A±Ü%Í\à«À<¼:åªÄ=é/¯Þ^ q§|‘ïhî–qö·HNtðJõÐg™bÓ›¯Š³‡0÷:ku7¼‰Ö*툕9}q «*v×:\ÖLäJ²28ï~ Ö0þª›ÆÝ®s#8ø—~¤ÿÉ?í7Ãœç§øÍn€_`Ž›‰nž›æ÷¸8›+KÌwxµ- «Mž†Öt¤=¸†‡´"¯ÚhÕ·ØX|Ÿ-›ΗG‚Ê.Á¨’Þ9`d¼oJ½¾o]’ßá?v­Ð«'aø~^£q_¡=‰h¾Ý6àÕhÛƒ>ãîØs5^´ôšb.µÀ§ZÏk‚Ô59ç«¡‡5âBùƒfŒj>NíÁvG´ #¡–ÉA?Ïw$ì“ÒQÂHbilFãË16`,úºÏË4:U¨<®¬e’ÜÏÏ Py!IB¿0¯Y•§jÆb£2h‡‘O©±š«™Ä„ëhA–b¬”z´óxF–ÊüË~#…®¢TÖÿò•ù´,®Øx´·,¿‘@6«I—âwCU…äXíæŒ¿RßTGæ ű'ªó¬P5ÞÓ©+¨¬4.vê™H[8“1"!fÎÚ[‰ý°,Ï5Z2V»ý~åÍø9Žüêßò›¼M[ûu¬,Ì £lq‘44•L{Öwh««¾„qS=À*¦›`~)² ¸wÈ ã^£lå_Òün¤< {°[µ£­ZEÚÞ¶ò“™oFKGÙNö³›üêt7ïÚYƒæ/óPæœÑóŠ—a¾$ÙVñíyàU³H©ˆ;7íÆH£X÷+xTM£1fC0‹nƛΨ¥l<ó<,Â6ÀŽe@Ò æujgš8÷¬­cTQéF)köcñŽš=¼Ï±Z­º¸ùè2n‹õÒ7J-f·®¯Òzªß>UmK0¢¾Ì¼–Zva¥‚:†øîE؃ùö2ã—'Dÿå*ºç`–2&ÛçzÁ:SGíVpÇýXïauÀûw¦¾¨ÆŸÔ£VîDXŸ/avwÆsû;4Ž® v™žXU1SÆšQ½¾ÇÁH”C.оŒuûW§©/šéF»û€WZÓêAWPlß5‡âê¹3¾:ðê™bÿŒ¤EWXÕV]$³MÌî*ØïöÑÓ}3ƽ¹M`Øpz ›bŸQü¸@{_ŒÝªà6¸ ÁdÌ»Nþ)wÎÓCžè?‡=x@:š°”6¸q~®Ùcƹ©n¤ß ~•'ËÍ&÷ìÁõèÇùƒµ0;ûcunA»Ð3Øìµ«óôÁSó<³>þÁ –û}Òxõ‰+å[øõ¸æ êõ}ê:a8ìž„=8È/Äè¼yÖýåL¤ Z¸RÒ£Cmr6}ÓúÎYŒæT.×ÙÉZ(ÓLæ¼-`Ì{OúÉpœnàùÚ ð«£Ñ\ë3d·_é;S[a/ð07:•§eu1S§á¿¡| fE6J>v›¯餱N±T¡—(•L#¬Ÿ)‰1-÷Òøm>ÏÈžŠx˜ÄxO­¤š%a]ùŒM£Ê^!c2ùsuò™ Uò?UšhÖ,C“Cþ“B_Y}ûêwR=À,j°—¥eX–çw)´Ö5&A­ÛîÌ ãŠh«z¾{ úÕÞ?ƒýÖ+C…fýwG¬ÄíÀ« RÿZùXqÀ«lûXƒ¿ËÇä{ñ›­ÒÂhüÃ­ÒÆ$›^Dý&’oš`–ªO¯413LWF¿a½‡m¨éI Â¿`(nŽ”‡Ì à•¶]k>u+NÞ ÑÞjÆòá °™rö˜UŸÀÛàÉOÚ/1 iòƒy¶Ï£gIÝÈE؃Êß"fe$?Ò€UÞ\°KX›¾ž»,IõE5Óa10ZO±4FYã‚.£÷ê€})àW5qE†ù%xÐ6A{*¯òÍíÁ ­î©‘úvìÁ¶xËËò$¬è¸‡V5¼1‰>ö˜ÝŸ ?UÑü9ê!ÿˆÝ8ÒOôœº#ó×'²^«®ýýRɦ[õ›çùÆåº§FÜ™*>ßoUÅøIwØž["»Ð÷Ÿòdp:#$´®ÝT¬ª¬ ú4°{~ªƒuºžj¢mѦ xžîlÀ*ë†1|…5Í dcôÍ ;T–”¸ÿ½΃®z2üÉ ¡½d^‰«áÎò|Põ¯¾¿ZN=™Ù2ÏÔË,Ä›ÔûØ‹ùÖÏìû^õÆŒé'Zµ©1zH«èÜ#·£†`fÞ¼ú:XLÁ·:úgÝ ÿ•[,ÉæW?ÚÿèÏÀfVSOFóO™Ùn®ï÷»³`•Yíž ^WÊF[›êv4³‘úáß˨~UOn¥yb<ì‡Ýèzi9ÆôFy8¨êâMCôÜÿ…³¾WU/\ìÁZ×GݳÀ«!~:ÚðAä1÷³­µQ2£cm"CwìI¦*z5ŸÜv&¾§ñ¢`%'›ä9y¢*ayV®Šõ¨\Ÿ¤çªv}ôZFVÞ(»ü ßœ^å{åÇHjt"®ÈÑÕf þ«ñíÙ½qŒèTå®` 9D—ì¸ZY<5†W¡n^ÚNù1}µã cç}jefKXßFó_JÓó¥QöCé…Wæ’G 7‡Ä•™ÏTšL'Tä+‹›(óñ'òºJVÉI¤×¬sjÒ¨÷I?|VDª$ýϬÉóD½WwVžãû“_•"þåñÀSõ*˜G>W–ø–FKòfÚqž%æ±¢W{ ëÔ¤˜_Ñ׊‡sW?É;|Ëíhû6ô©FÝî”^&Á4¡¾h3Ø}ZéX1JÏÑÇ›®úáËš‹f[ucý¥Lf/O–ÇÌ-<7,Ž1£}–¹õ¤†ÝŠFã+^µ#aÊ_Hs л¬tdìKXGŒÎ‡?¥ð*ß*7N0³" © 6mž°»"mY/u?þ™}¢UÒe—`u×"3Öú)3xÞ¬¦¹„kª¡¾‚=ØÐh´Öükø•žÿ¤š=vœ]‡•Ú –Õ}À°ã˜;ݱ.†a÷›GÇÆàïÂb©€1 ûj6z±0Z«K ƈ5ÅÎW ­¯ÏjÄíñü àÕx‡-2%ú®Ëv»'TçÔ^½o§ãçsn†="»#ëTÍ¡'ôªÒPT ãÔ£{I´ÒÕ \3”ùƒð.¿±Öë}«¶7ÆðæW‘›À¯†»íA‘œ‘ÆîWÆ u@oó€;à·úCAûš¹÷cpÑ×^—%ö‡HQt®Õ|–Ù2ÇÔ1ÐvÕSÒJ@‰Ìǯ°e#=ñ[Ð;ýðï3øVÌËuÁI÷[°2˜ŠÞëàŸtÇü×n!,üð«#þ˜´^ô Ýõ~™Ùe¦»%À«.ÞÖ’›Ì.÷Xððª9Z¼ÌTb¾ó`Œ@ìj7^u22^{œƒÖ˜NűSAMWÚ´Âú8L=äæÀ«æòËöü—®¾»{Ð×ijµwÿ{0ðØzÀ…[À¯æÚ>ŒÜ'šìG»¡ú¢m¹úw §bÞÆSi¦1ÞkׂªÙ·d=ú$Üg‘ݽŽ+p¾ìó·¯ôÜëNù$R%:YBÍæ`i c¸7㢒ªKÿJëJYËlyï•HK°,±%‘žmå!!Q -¤ºŒæÈÔ£.zæûÊqª2ìÕP;«<ãû3h»µÄZ>ÞV -@?O–DÍ" Ìà‹zýB E)s™±X;ð›Û¥‘Q u'l´O¥2õ[4ž¡˜ñzXÅŒ5-ø´v`+Çèo/+·Ñ5ˆ–ñx9i¦š.ôÃßu7;†Æk5oWšQÄí—l‰õö(k¡~„qÜo?`@Ô¾†™¸ÓïM&ðªªUûwYiÉ4Êo˘—í¼H5£u@NbÖ؃©É©±”ËÑ =ÉÕ:ž¯¢ €ÃKgóú 3ѼVNªßH¥µ–?f©ÏõÌ«bóë×h•˜‘Œ7¬‚‘ÓU]•–Ý)ùÃülÞÇSÉuÑ×\wÚ=>*4YØë¯Øð½+®›=+Ë#›ÐË÷ZoÕßÒ÷Q=^­¦5hõc25d[L¿ý\QŸlãvÖ,Ô<¦zÌ‘œý8èÖÕ1úEîo'®»;'gÍ7Ùo÷§‚vÀ«qIﻃ_Í^5βMÐÖY2×$™î¸‹F“mAßåáÍnŽÖ«¨D] .•ûOë;ÁJ>‰±ëѯvºï€W“d·4ôO¸­À«™ò|ì;ùwüË~‹ô6s}O“âg›C°opSü—h«‚_¿z­/F[V›";б¸ª±Ióx¢ÓFë6‰Ö6íÁz©mÁ½êyž 2\žiŽŸ·‚_ýãšûxãï]E¿ö`GŒãa÷0lðÞþ&ôÝ+‘\¼ÿÅæÓ7V1:Új6QÚ4o[ ++}®œ±VË­uÇò ­c+®£EU ßè‚y +~½ì²;¢ÈQ–ÊZ¿Ù·¤UvF>Ž”D‡Ókˆ]S뀇ugaDÓÈÒ1s?Žeßèùàj¤1Ú |,—9ÔŽ½ÔŒ¢ £2yÞ—È ÍÆñI£¶’5•‰EY¥KXG>+BOãJñt«,¹F}PÙÌ~«˜–¦'¿Œ„• Ã\Å8"b5 kåT”J1U˜RÌeªL›QWö5TæSTÊaìDŸ‹»äÇNÃìÔXÜi uæÕÔ†Ù8»É ó€ášwVšþóóðGýf7¯þ’—‰½;µVÔaüÕ.égRMU£ýßLÒ0úã‚ÝŒ%F%âþ ænìź§hžcô¥ÇË1³ÑôàxÝ…«¦bF«O¬µüd¶˜ Ô¿xÔÖ²x¥»Èg°1_¶_áËʯæ]ð›%F÷#gÒ#wH«ÏŠ3«"µ#ñFùgªyÀ®Ô¦fòFÑx†£xÒxF0.Ãj‚9_+í°<ÅŠâëä-p°WÑ_µ¥®ù"xö`M\5Ïm{pÞ¬ŽÙk'ÚãÔoLe9fZ%ÌóiX‘m€¹UqŸæÌDÜÌ:†W˜?ø XgoÌìÁ¸ª+¤ÏÍç4Æ*?%ÿ˜¯ÍU´kŽt޾{ðN÷4VZ–©ê«ú«vÖÛ^ׯî–U‘õÔ…è‚ÑÖz­Yioª*~ËŒÉkhÁl|Öë÷~ê$kd†KÜïÄ•}äXfµ±º.úV0Úm Šñ Á¯*¸nàWÌ®ž¿âwmìfS܇Á3¾…ïfNË,k¢å£ýmCžÁ­1•Œªð¨§h«ì^t”ÓX™ùø[ov(›ƒ7m {Ð3ýÁc/`åuźÙlv¿‹ƒÁA;1ðC7½ù¥o~õ„?Uy³êov#ý³ÓLs7â§ó.ñí‡Á¯.¡ß‹q×Õ¦¬GK^ÕÀWÒ#ÙwmLŒLüÃóÁ–ØoK€Wg‚tW‘{Ð~ÿ °¨µ_‡7ü–ñWߺV¸î‚{Öo¯g~ïDžÀ5_[Õ^#¹Ñëmo®û¾hG’©†ñª‚oÉzjçlÄÏñ°3P›‘Ô ªë‚ïèÚ^#·ØmÑÁ\ eýWŒ-ÌŽŠŽ"F4–êæ­)Gp,°šM*fÖûdI©¬æt:fk•#†%Ò3•ƘÂòô;eцJ'KÊæyiâdðëLZ‹Í9$¦„•@}œfêŠlÌH­®xµôB݆TF?¤2+T¨*GìÓ;KùÿÏÔëãåËÇÎRÑw hUê;ñN¡Uü*œ*“•uRˆuåèÙ+Ã産ªM*cͺ©7ƒ=$1¾¢ ,›^d—ÍaýNý½d¬º_Á].ŸŸ¥æOS£ño«ÀÝëš|æ¿h´\ Œ¦¾gÉ3SÀBÔoß¼ë¨é@³ÖòGÔS{ó¤Ù‡9¯þ®SZÛ3:™µ*œ]F¬Ñ´›lg[òxFº˜'éoOÀ ¿Š1Ÿµ¿üÈóÀ+µ¬ß—M°sp暇ì†H%£»ÎûÀÂÒæãã`FÏÃÙ˜Y™;1W®`fÕ^}VxŸV—zÆ»×€Wª,5N:šûÁ¯6j´¶Yo§Û¹@ÙVò:˜ÊRð³Ì×^T"Ь3­Ø1UÃÌÔìÎ7`Ÿµ6ÿÁý[àŠ1~¥‘õèúÙLsÖ$Ñþe4Wü° Ž~ârÜEw Áš>ÝdÇãÚãn‘=,ÏEVã>o¡w{ÀšP•ÝfX™Ó©oÜ{Êeün)ëG÷Ÿœ…UÜJ~`L}UÌ•SXY]ÐÖ€‘š6‹ù8«ƒZ`^uÁ6*ºAî”]rL‰éh4жX’M k7Çëi=l½£©Š0kO¨vÍð¤ö´]ç`/ßa:’×ÅLÀÌR^ÚBJÙÕf49æp{­Mµ§Xþ^l^^©ßð'óм('ŒîÏK»ÈRbµ^’#‘z‘ÊFŸ{Ÿ¹Ó.‹äÝGþÁ.‹·@¿ÏnìÀ;ͤW§2VÚÝ5½FÞ”ªàWÕ0Wë˜8÷œmnš¦g7á ›£µWl?{Ÿ·&Ý)«6¹X 0#»aUãÙÜ2¼“V?¨{p¦Ô`•lÕ…kªc¾á ãñW}]Í`×&Ø2ö¬ûÒ+zxu·{s=Ť`í|iÇâî§Üq³BGÖâžW™›6—ùƒsñY5Ü{Ðñ2ž×ØÛÌwÖ_gôÙ ´R#°î¤†òsØo4ß¹­Ì‰¾ q·¯6Hs÷ž«åú¹³òøU¶ÿÙ ºÙ<3!îéàŒ¯ç{˜eÒÛþIŽÎ^ÕÅê[nê›!xò X™«€N:sî¢ZÃHæ]^å ½%èíkðä3°œÇU‹dc°ÛEÜú`¢VÝóOºóÀŠò‡|ëûûoý^+ƒLvÍwýbìt£Ü,7œõ«ÈRs›{Ñ>ÿ¾s¾•¿=¢ñ ‡€_­5Ú=é ð³pÿ#ϺÀÿdµâçI^õ GHkk—1Õ2-ÉxÑòŒg¸Ì¨~UìhŒ7éKߎê4Ôaþ`2fÛ\»5z=7óe¥Ÿï[óDî´ü© ~¥XWKJÀ‰ë16>“õè+ðt®v›ç¨t©,jšÖD$Û ë6'Æ0$‘™6Êaªãý4޵4còéÒh*Å¥r.õxu!Ö„;ydgIôÃ×$¦•!Ç+Ï;¦JX{0Ôs­µ µúÏ²ÉÆâø¬|ú£â‰9Éô_é)¢FÇ•#J%¡ÂLÈxò®<ž'ÆÑw\>ö8"q9¶,‘˜šA$ÖœšëM¼O]Œß0æ;Çc¦ÕÆJëųÔQàW¿€§+S»Œ§.õ±—ÁÞÌT1E¬ûÐW=ÌMGí„•?…úíŠW æ¤éInŠ5ýØbÈx9kÖÓ¿÷ᎃXPëˆým–aÄôÝ®·½lx¥-» ÝÍEà•fM}mÞ’dƒQžø¦´Îô5°§Š¨ÏPì0ËÝk[š†ÝÉRͬÆáʦRʼ`ûۣأ`îÜNv–+µc3Òú„;½Ý>_kØae×4?ˆÆXª¯Iµ¡ºÓ¥y$ªò­ùƒ¥mšýÿÞ%#£À|Ê=^›fr}ŽÿÖÕjXî”].G#1µÿ»'º`œºÀâ™ÆxuU³¹ ¼ž~Óï£ú¢ªð>ÔômE5àý"ØlÏËãÀ3=žý$˜åŽµÑ²F`uÝ0؃»€¯zwWÐÉö0«âª¹ÛÔB2¥»ý=’l›Rák>øÕÌêIø» w¨ˆ–\Ĉj¡´Ãn23ò\»kúz9 ÄšLí¯›ƒÓî`)ðj«tó»ÓþM؃ïŠÄõ‚=ø†?&ßË8?ܯqCüMæðj±ã÷SOfµ9èîžÅliöx‹©{°)ðVë㬢®K z¹­î˜U Ћ'ðü6ä@7ÉAy—г±ðŸ»R¾>íÁ] øÕW® ë;?>ïæg¨–5ëM|ouÿ_!ÑvÏkÔú/kjÑêÓhÕ™¸·*d®FÏ[3ž+Z+µÕ‘þäµß>–\e£Œ²ë£×ó”íFYìçúvd9GäŸHxW25A›˜iøv=ÎSðÍ®ð,}WÆsª}6z4›gë¡¢K^“Ä;”"¾TbÖrX#9“‰´e*2?+ÿ.'É~eéAÊ£¦_ïRõ Êðœ1#!šÊ諲1U¨úžÊë+ó< …mTÌ©B^§ñ¢¹ô©•¢µ¤ê¯)±Ø­.|V)Ú‰µÏÆkU¥ÕWŠXú䉷áêÕ‹ÁVaî¨ UƒÚAmÉÓ4¾ýC¬.ýüZù\¾Eo)ë| 3túTOVÇJo“g˜²ÌûK3-Ñþ²Œ­en4ˆ]s0ºL+¢x ì*J[bþ9@½>µ³U9i ˜NYÆBüivš°¦d›eÿîh›ÓÝc?AoWÄo®mãËR;ò´Ô²º3<#‹#5"E<¯|Àœ³k#XõŠâæpc3ˆzK–`V°n©Ö~ýÕsò©n.¢GJ¤®±îaÛhš žÒÔ,æáU_ô>{=‚–5¯å¹x¥6ÈæÈ¬¢=8xõÖPUÌÙçYQö7|®Ø2ŒµcZÒ£ëã´vì–pÈËøì¤Œ¾ ~õˆ{L$Óú\ÿ¹Ž1Øà°ëeWd ÞímƵkíÑŽXycäF2µÞ˜Á/c/¸ cÕŒìX@¼å¬É£ñíO`e]L{‘|,OÜè¯ÎIC÷7øÕ8wŸÜonwûü‘`€}Û<¼ºŒ£«¹€½ãH~t¦Uý¨ÅÀ«f¬ç¥gù;eF±ö¼¾hõ(|ZŒöO¢¾h3 ™Fók܈æ;W’EÁY÷kpK0-ï{ð˜Ëݨµyý5þ ÿ’?‚}i’¿Ö¯wƒýìtCÜ27Âïq™6_&š-´çcw“=¦2øU1kÐW–[ñ¬,̱èÕéŒXl <9Œ^m„Q¨z&Hrq¦5î¤ÿxUà—cÜÞ=¸Íèúa5íGk+øæ~îõdäa÷›ûÍÖg-‹Œèõ¶5ñzƒód¯*£]šû3ת¦€Ö§¬ÁüÁ$"vkìõ)´Sú —&ñó-2Û.‹b^ó\¼ÅàUU¬†SR1+C‹SëMÔ¥§:¢Zw6þ¥µÖzž‚]6—œ­¹G¢RY~§4ãT_´ ³ÕßT@{"í±búè É™®¥nr<5òÈØÔž‹gHâ+1~=)‰P6f•ãua^sã9Ãüå4fN§Æòs™ÁÖ¡(füU2­ÒNÔ ëY4dŽs"µI X¥LcGC¼*«£šÊ{*‡Y Ôß‚5¬œ¤fÁ0æã¨r9ó úZ¿Ý hõoy½òsG»˜|üæzi{°¥)ÍsÛ ð«I´h`•.5}ØÏë%jn§v_)`Ò2ùëL9ä:¹ÃìŠÙŒûù`©jWS»ÁLâYCwÛÊþhö[E÷CxæûÕ¿3¯cåÝʸ…—¥I䩘>Ã+ô_e3Çù1àÜÚH¾ÑÌïtsX´‹Ñ3VóX5WsÁ·qž¤Fß2 L‘yWTã(Ïd¸ÇlX«5EµNN3±îÚJ6Þ¥³UµÔ¹"÷£mûð]Õ›ê…Ýt æJ.˜ŽV¶_†ÏkÃvž% Í¿™ß׫ªžÓœxFKª1£j›T´ ö*ðj— ¾åðêA\1Y>öàL¬ƒ“î ]'÷EÖa¿Š•Ð÷íJ{pÞ¯+þÍ@ëßÄ; ä Ùõÿxº0«Š¤[ÝïÝîÉ ÌÂÀ CÎ9IÎAÉ9'A¢d(("’s˜#bZÌŠkÎk^]³îêÜ·ÿ·ë0¼wCw×éSÕU§ˆN-$0ƒØm¸º<,Š|W€é¥´µ›€Wܾ@q²‘ûÙ¥»ëÁëN¯.ø5~oÐÓ¾mvÇýì÷UÁ¯ŽËû[ÄGGÙ†°ÿµ²À4g®ÎìÔ-r„™X»à «a\ì8“çƒÛ‰ª‡áóLb½óâ`·ûO°>VÖ×?ãÎ0Þþ·üà»û¯ý1»´7“á“­^-5§Ì·ÈMòw¸26_V›-î¾àI¼¥^{=üA­øéªj÷˜ Í*Sí«¦øS“=z€_eŠRŒÏ=u{jC9Œt¾Ð¯ÆS¿ã*ù;ü—N£LwÀÌ^©à•Èe'þ[«ºC›¥bt íÅ“¯nØB°¢¨7ªõƒªB°Qó­Ì$®óJTíKÆSˆÙj…ùRœÙ&Kì–èPžŒ­”­~üA=ÇÛ+éÑ_"˜!ªÑÓI섬\iö£LÚ¦æÐ]e'g=œÏ|Ñdzlå%T N£÷U>`ZŒ_¥1Z”ÊÌÀz_9ÌÍ$2•Ã(¦“%¥S 9ŸÓOi‡ædZo"«}Âó»TÖþTˆ)ͤÒ û×Ôa}_9ò“ž:eÅâä˜yï™…Z#ŸDüJÁœU%—S¼*¡Vk"sMëð 1ìE˜I¼ŒcÞD½!‡g°¢6¾”íu‡©?¨g5aåÆ\çn"‰-ësÁøO‘–FOêHoø¹ÔQ¯ŠYlDÞ›Ë(g®7½ùù‹"ÔÕ1¹÷ùAó˜ð Èð+ÍÈÉ€- ÇŽq’Þp‰üjÖ˜°ŸÈצÈ:»×jw -ÒÚ\±Ÿ‰Ÿ„ßö¬Œ5Šñ§¥IäYiÉøT³!R/oôÄ$ÇÞm—EªÍDë`K†ÙÃj‘Ñà?7á «²Rb vàÇ€ÍÚóç]ðª+øL)®“è^¶L;ümŠT7k‚%ø¤z¹+ɯ4Ÿá5ØùJŒ†ª-ôƒ¥v…UcngàM®`Dó0j/b]Õ1`,[bmÅõ¸k°ƒ}SÜ_µ˜NKû‹Qœ}2,úºËp÷¹g5;Üäûjþª ô?ïVƒ_m‹lÅ7_õ™è€gh T˜ÇN‡eµ¼‰7X‰Ÿªa·à9:2Ÿ!ìS,‚ÑöÆ“]À=µá­Ñwƒ!î¶ fC÷î;ØÝ#ÍEw3ü”ƒA[û†Y÷sðˆ¯ã›™³ÒxU>:–ù¢sdƒ©C~Õ47(z îY€õ£y[ð\U0&ÍU3÷=^OÿËÉœà÷S°’úW}Ù/õ·XÌgì³Åï“f|²Õn„_~5üêZ¿ß9[Mš#î™àûy¦‚ÇL÷A°’õÌ-¢v⌬êf´‡§u”½qÚ`…Ýü'Ȇ/ßVnÅ=#ÀáõxÂO]¦ß翆?ØNvºG|¯ ~U¼ºä¬ÿÞjÜ`‹Ôˆ·½EûÅœzæ …ú 0š©Ø÷À“]Àì¥ÆÌ­NÒÏבù¢ª9³Êî€ß§±—™ð'ø.ܯ‰fEg2T(͵/ÅôJ0º;M•B3‰ a„<‡š¢Pn¬ë©FMT;4‹öŸÇ®¾É/¿Â”¾¢ú×ÒĨ²Ådéhêš|j À L=Ø­²Ñ¡RƬ€Uk~ì\0…ƒ<,‹¹[3ˆ#8ëíVxVú®§±n®ÇšVþ×›ñ« Äç)6ÁþjNZå¦gà—]Q¦ù•ùx5Û(¿!µ#/¯tü_“‘F‘Tê33ìòH5æ6ü-K¼ÙÁNްú–c¾kÓƒÞ”x_ëí ö£×*ÑbóGð:ðª=ö´qØïj7`}ôÃO7ÚYö6Ócð@ó$ªÂ._:`ׯ·Ä|Ñ­¸W1Ö×2©i~½Úâ ák³‚¥<•z¸öÂÛ'‰ö3ó)ìîˆôŒ¾Ü8ïžÐ^榊¯á?´ƒð½ÇÜ\æ‹®æ™cWÆ|;­ºã¿j[ù`xs€doâÍ”Ãu†LçÚɵs…hÏïóøÄž²"uiô`ðª",º¾ûÅ%ºëÜ99k6¹iþ!ð«kìófTÜ_Á뾊ïiî’!ö?‘”è8Û”5[kLUìGõØQq7<á<Üs»{Äý[S?^ãíð±°¢FÊÝ­©¬½!ؼZŒ?ØÓ?åTËE×ÈO¾©ÿ§Íß&ךù~˜_à&øEæv3Þ­qüð«ê`TܽÁ3ÀfU?Ø ~5ž'…ƒ°‹­ą6îÛÝÊcª^ß1Œñ °‰ùðÿ R0wíe/ðÉ™ÖSO&ˤ>C+Ùã÷ùÔ¿*”×#/¸?ܶzÈ•£#èjþÕdìgµ¾+zþ‰öBm&>‰±YÕCÔ.FWÒÌÍgÐu¸RVÛ=ÑPOéFY~Õ…(pxX5:„6ZŠ]s*³=U'f*xa?Soó%½=Õ¶Z{ÈǼ¦SÓ¥?‘Æ<ƒ 2†2Tw¯Ê¬ °—D6=´”˜Bz£ÝÚÏ"¬YÎŒ©g³¦/ìO‘BöT–ù ɱÜÔrŒw…™¤Éü£<° þöŒ(C:±zœdzÊñÄíÓŒ¬E9UÞ+‰XJeÔ8‰J5"ʉ“°ƒX9æÌ'ÆôoÂìúÕ@«°+Å^í6¥úú”õ$Ç|‚¦±÷¾ò£|//M5Ÿa¯´0×…±Í^i¤­‘”5Ͱ»+Ÿ¼Ld­iÍXÙMðIî1]9¢}°Ã|Á>’yøé0xWwÆ×öÉbƒÿW o/Ÿhræ6ô±lÔž²Ú!Dõdµÿäzø üêM™`”¿ ý"/H3«^õ%9©I0Ñ{ÖÜoçFêõOæ^UiŠëß‚õ»ŠY"™@¡[åö\-ŸÃ|ONjâÝ ¶{q 0¦¢©,…?Úxv¯]hw˜£'ä>ø Ç1?ݘÏÐ+P«4´«Ä벉5Z“o¾cç~À´ñìG¯•…×ÍŠ¹®÷JªýÓ|…ßî•àWÉî^÷4%ÅÔøÊŽ <âVØÛåÎÈ6àÎ?Y;=”aMÀÝà»CaŸ‰v’Ö³±Ë9ø÷¢¿ª*_(÷cí÷㻄Ïk.ëÊè?á Ša-a½ùÀ«³rÉský#þ® ƒ}Î û>xÔ¯ÎI?k£IÑVuÎÇÂ3Ë1Ã`UýÁ¯îäÛj>Cüf"þh-áDÖ&5Äê*¾i•¦zN²<ØãÄ­ ¦à_ºûçÜ ÿ¹›‰½ñß~ Ç¿ìwI³ÀôÝ(øƒÇÌ8·Ê ö\Y[Y¶™Ýî¡àYXkê‹Ö^5À|©2Õj¼S]Œ´ÖgLçùdàØiÕýóÕÖ=A‚Ë„?ØFûÏÀ¯Ô¼F¾s9ð¿pÊ™ïv/1_tVÇ+‘—ÝîWÜU¯]mûQéXûfšF{† ›ãÎ)XQC¤²™!éä­1ûiu…¬›šB<Ù*+íéè@úh d øU;r§cR­ÃHtlkû;kŒ}*>Wžgô°ÎþØ•Þa¡ÜËs¾TÆÀ3è=e1× PÂŽ}Z\g|ÉÔEÏ£í§qÝgóŠ…‹ok,Ÿ¨•ÈßT“ÌX.hBL)/…Þj}ɰËD<ÏÃk¦QÑ5ÏY@ý«0w´2=Òžb®RXo£:¿¡ºM‡¯(Ù±WeÞ­ ½ÌFÇâɯ”ÿ…È·»Çíø£¾vUÆÛ»“G•bV¾b=N¬áêõ%QOFcÖ@Ž“¶¦œQý–²ÀÎÓv¨ n€T5M'FÜæaï<Ï*ç†ËåcXŽçB¹Ýl1=yò¹ëf f@ãW-äs'ø•>Ïõ¶‰ýÛœ·Š“ç¤3üÁWaIò³ùX0Þ(R¿$Ýà6·:WȦHÓH {LÜož¿ªcô-£æ ,âfòо²È¢*hzò¼ˆsA{€ƒ_}*ÌeÑ>´5Me÷’mÈxûLi~5ûgkx†GíR{ÌhÕÜ›à ·³3LÞW#X7²ÞYDãHyX±/Ãrªšÿ`þZ_Æ`t´ësª hG‚¦Úkx•h¿z”ë¢ï»\w‘ý¼¼©å+ú­v–xÈͲGäðªTÞ=vRÕSü¿VöÎÂïjbÞ–È{à|óÁÌãê§À3ÚÀzáI¨êØÝ¼è‹9|‰ûY Yý"ín jË ð«_ßsäóˆÛé¿óûƒ.ö-3=.êÎÂì °Ÿ--n²Úùuµ¬Å.5«Zõ¯4ÿJ™oÁ;Öà;VÅ.0Ýϲs;c|ÖkzgpÀ9·)˜¦mþy§¹P“ä/ù8ñƒÉß!À¯¦zíB¿Äì1“Üf7Æv‰6_–š½îÉàEŽô5²ÉT´Ã Ž;ª¯œA¿»™Œg¶J]ÌÉQ ·ž6Á:¼ä:~ÕVN‚O߀ý&~ty~¯ÿÑ Æ8wW|®ïççã½Þ޼îþtÛÚÔZ®°'3‹ú`ãÁ¯êÄ”bf`4Cs+¾ŸÅø•òÆ@êÞÌ ­gÒ 0µå²”z}ÅÙ ÇüFߌqo`z4#:•'n…Òþ`¿«ýf37Im³üÀ~KŸ… *m9Oþ§§žD ©Ì|ƒTfëi2©ø™Kf£úT éÝU¢æÂɈåÌk¿­|æK8ê>ç0¾­±¦<"W½³ÌXÖi"ùG®„=è«ð=³bùWÝëSèÄúÌ™´2Å<Å«¶|ž²äluÙ—§ 1­&ÏãˆÙô#µ¾&;ö¼úÛÉXQ;ÁÂ>‰õ°Ö;ÆüÁ8Ö;ë8O€÷ *‘ùW­°{¶·Iæ43%&Óè)‚f'5Á ªÝGŠÌöwN…Ee˜ý¦Ï1Ûc¥ýFÝÅ ì‰{Á¯:ð”ò8upj*ßšÕÔåH’å¶«Ø“V1úŒô^½ »Žk߇o”§¾."ÁÔýày9©‰g®Åns—½!ÒÜh¬à' bs;~Û«h½,dîFL7aE?ʦÕ@—æ%Œc±T3qîu[ ¼*ÆÎØÆ\LÄzl+uõšö8u.Ë=¸êAVª¢ë9w-ØIŒè‡1=™7±ÚªÃ«ÖL¹n`ãq½Ì/ŠU£Q-Í Ï°©xŸºÊ‰¢¸òîað«¡RÞT÷•€W‹±‹àÚÙsr!¢Yó/®¡>C;Xæ(Œh+¬—A°Ç«øßF̘êÉgg¯Ø‘‡P¥¹ï9 ;Åkà9šy_,k£ïׯêã J]à¹Éî¢<¼š Ü8´±¯˜ÅqO¯:ƒ_Ý`+E ¢lcÜu1𪲹žjš¿u F²5þ«¹©#µ?6~žDæÙ@vaE]L|¶§ø¿1¸Ãý;ØLÚw?xÊä&¯~ñÃýWþ¿OÚ™¹~Œßâ†ûX9cÜ67–þ`Yhö»‡ƒW¨ÜÓOn6…v(Þlv‚<¬àf˜»¶@Åæœ‰ ¸ÛPÜw7{M4–¹òhPÅ%‚_µ–óþ*eC¯j÷?¸4¿Ï =Žö¹°G ñ³1;Wáþêþ²ð–k¤\t î¥Ú½põ4S‹“‡S‰¬-ϸ×`Ÿÿ3¬YÚÕñÞÍñIkõyG|J×ÿVYaw²Þ9¼ìa3ø•¤i´R4Ô~¯.0V£1äQÃÀæ*1¿T5–ÿëÒ\YfP#9ʧwö]®HœQËgÀlf2U#¢…:3µÈ–ªÑãÌO$“ÙÔ"Î$“›²Ê'9†}éÄ­Dþ7™Q² õÜÃŒƒäXêY9ÑžÄÌg𱌭džWf²=,Lsõ«ƒéÕŠ©äåo/ ÿäY ô?¤ ;óTd,.ëú4°þvú†š4{K órÛoúò£%Ûó"}pÍ®œÉ~ôIX¥¦<Åëæðêµ+¨bx_É5sMˆ{+$Ýœ6Éհj¾…Ý”c½ç=À«þßS`O#aûŠãÍÀ¯V¯ÊH;ÀÆÛýV÷¬³2ÀühߨƋö}Bæ=¸_FG.iN®ÿ˜œŽÔ^éL<p^¤Q9Ñ쇷º™zkÝá.ÇjMM Ûa­1O5á· ê—VVd¸'lìÅÕÀ”š“àW `!åÍvª]‹7k.ça‰«…Xq#a“íðF5ØÏjŽ|ÜÐß¿ >_ ¨ß•{ý(¬Ú f ŒòHXQ%Ñëì—ò6Á¾Ç΢×G?v)î÷0P/ÓTôiþ¿v6®x§Ë³`‚‘íxþ7˜Ù¥?8 ˆØ s¥qÞÆ^r#kªûá­‘Ý|¯ÇgyOшö8ž!ÔýgÐßÔ-qÿv Ý÷”|`^pCüȸ³Á5ö%s üÁ˾ķ0gd‡-ý-r³mÍNƒ+MÓWQ•»›1¢ª~¹AT+~<•à ó` ÍÀ¢&`<ö<ŸÎ’ÁV÷g°1˜±âûÜ̓Çþ pâ_þ’ß*½À¯´¿ó$¿Èì4×¹›àª>C¡l1w቟»Õŵ7™òV3Ú´[–ö£o¾ŠãY£®=̆a½‚¯Õo?çƒJ.Ýhê³þ]g}+¯£zÈÇü—®+v€SîYŸã»ú©¸Òk‘Ëì?XŠk¯“´è(ÛŸ#ÕÎ/gŠ0‡U1‹­Á ;0ª¼–ô=³¥rÈ…š°6/£ß™ù êem^Žg|{¶œfÿAÝÓJƒhåèž!V‡MMÆ{„š“±šrÈ+òð–ªB›Ä8ÕLìîˆ&jß™ãžBžúnÙ¬ô+dîÆ·j'BÍ™z’ËX¯KÍc¦C<þ_$Q=)2Yµ˜Æü«Tž–#KæY^ ±&3VÏö‹/ÃzœjôCy· ¼S¨sUŒµŸÌ¸S Æ-'v†¨Ï–Ol •½ÊÓïó±Úê$>[*Ù^*ýåIXÁ«ñöê#æaþœÊ8ažù{—žQŽ’àÕ7dpO³ƒ_!ûã¬|“bšÕ/m(_17NßX7—ÚVÉÚAÖ3ÉEí±f¿‡5iÄî:yÈì0½‰è{1c±²´ò»Tòíl3šÏ?ܪ,ðJqý0øÕeû!3ؾ37Ÿ0z&û„hý`}«JÒO˶Ha$‰=›“À«Bêõý YÞhNl+é60« <ÕQÝ€g˜i¸ öÞ˜¬Ù&êîµMÁÁƒíiî&ѯ)0'ìP»‰q­§ð¿UÀÙöSîLÖ¡JT=±nÿ!kñûú`¤S€WßàßÚ¯ÆáÍk±'{]ìªòÒP5â$Ç&_Õ2ö~誸Gݳà ÕL1|“OìX|ã%÷–Y-·E6ÓíÎ>ÙÿÓë›K䌻þ ~¹³SŠýæ¦;p-Åh•êÛùøì]²¿ÓÿéÚbT¸«¾ªì• ¾y•ñ?Xí}“”F‡Úž°ª&¸æLS“9WCq÷I¸~m¬¬›ñžOáî¹´ýìãªÝ_êbTËÚ½ö£?½–{údÙçùÌZ:*¿DÚG'ñ䬱´$^%’çŒâ5>\ où ýAÍI˜¬Ó49O¿È³<å-5™Q“ɘ¹æ>…Õwe©ÃÊü,ýî5±ˆ¼²(+4ç¼ùRˆYôH襥“1„ÙôáC4ìèˆ\5c*2z’ê3(j„$ªW‰ÌÄ 3±Ô&sbñ+Õ5Õ, ÏÜþr’Ë+Ç'ýÜ °åµØ“È [ƒEw$jOùˆÀ{Mƒ7åÍUr­9úL>stë™N¦3ëqZ‚%7dÍT¼®[3†úíea½9f/}ÃD\}‘|‰¹Ôð1rÈl1]ÉóŒWÑ ï¶’nW›i|Æ9ð¾ÒW:_÷Jsþ *ýlÞ• rÎè¹È3Ò6ò°´§?øºÜ)Šdò¼òsŸ©ILû¾Ûïr«h/Ž>رf¥³ÈÜïÀ]ïeçŽíò>ðêU²è¦¦,üÁ–¦ ,{ª 3çá½ìÃ7+1GÚ¦¾ñ<ÃJð³Zøß$éΜÀjTºšçXKä*îSÃüޱWí—ñ°c_iìC» ×Â][¢2mc«ýèÇ˸è.×=à^%›|ø&ߨ…À÷»\¦ÝMýöº¸fwØŒò«ÌŒ\È+Z~.Z Ü›û°3h÷?Õ¯ÅÜɳá>øÄS¬ôn&³£ãÝΠˆý&¾v]À¯–÷Ì®¿Ÿw"l4gâ²ÝIßÈ4§å&›®¶Úõ}š,0íM_Üy(ÖêVÌŸªÉíÕ‚˜ÀCÇðæª ÝXvÍG‚ç\À¸4ÃØî¯–’±ö¿:ÅóÁ¿å[ê!_ñ'%Á,^©^ßBs‹™æ¹ö»[ ”|€ñö5ì$¾ÛØQìÙ:‚™¿-ñÿõ`ß}ðEÔºˆÑ=@O½.fýð*xÕ^vùOÁ¯:úµXë¸4Òÿìú`4ïvùÊþZ¯õ0ÿŒ<ïâüW¶kl­T³Ú3¯JºÅT7hC_S3Wâ§×e™‹ævêJK`4yu`ã™#=z}êG,3~oÅ8ÒaI¶e¿‰²ìG?žõ8eèNb÷Ñ$¬™!òYR:«ÄV²ÃC«û*ÓÒÊq¿OáU4K+o2©9ÁlÐdÚ{~L³¥<3§:2â¥1¢êÌ /OTÐî!U%ÔOÎdä*ôsø÷ÌXžU2£åaVh˜ÓP†+`uu²¼œ˜†U³WÓoU–×cù?=ÒzÄ»P´&óâbz}ñ’«›N£W«èµ¶¼ì"¾vwXR[Þ¡Pêšð7e ÃŽò§¼Ê±x\y,º®>Fš˜bÓÄd2>_Ýèé¿j5÷v-qª’e4ƒxJ9;Õì’ Ÿb3vϾä“wÃcèBñ°­@„ÉT¤èi;ÛJö«orR†›'ìG‹ùÚ¼.¯aÕóˆ»ePäYij5Gã9¹5Ò"ÏØÚãæŒiȘüß@› ³o]#µs=—9¢êE`F’ª’¼~§ÀÕM%÷Ï«a½46«‚`]ª˜ó]bï`?¯‡ðD7Ã.+ã͇àUŸ¡"æj$þû*ó%JäXm#ó=îÔ +{õ Z_Fñì]û ¶*üÁRøGC£_»wýèSÓgøïí ÌÁfר®“‹‘møþUf^ÍbwÍÓø²*2l—ïà‡.‚Ô§: ÒØ.F_Ÿ.♺Àc~’j_5oï ~UxUÏ}㹡ÀÉËæ9w“¯Â~ôqo÷úßÑœ‘U¶ øÕ&«º¦Ú°‹›T…˜›±TÄ›“áxëx¿bµLvj!·ái®Ç('PjepÖyws0«¨·xøð*Õüà‡úoüƒþ6¼jçoq×ùÀ«én™ãº2¶ îzüê9 F ŒÊ“m‡âí:P»fðFó4ÆÂ*fR`(Få”Á¿/¢?x_PÍe™F˜»;½F­Ú¯ºÉ—øiŸÿx/Ö=¼êâhÝSägý×¶!VÉ:)¿êŽõSߘ-i¦bÃð7à¾ÚÓå&Ìn%3ƒ ¢Ï{3/¨„µ9703j3<†ðût?½Qn÷7ú–<Ã;"e£ùÑÑd3õ¤¹™Š·J¤¢ÊT|3‡ÈP×ù–µ„ºBo’Çq­"Î¥B^&HyrT õ8óbšTŠ1UïQ¯Áê÷ž¹¥QQ?±²löÎ'ÏIÅêL%?Jc6VŠ”‹EžRéß…þ`RLsOs¯ô~!2eP½&›õ5©ô/“é¯e1?;•Ka Nûàd0ÞžCŒJ§'YŽœ-¼2TÚÊ$kK'^ ºß‚‘Ì`üªÖTG>[i`^Á˜+NN’2æ7 „澌¹\) M*k Z›RÓÀèù]àR¬"}ƒ.`"»L>ç$XùÃf O/´2âK {xa?6kL/æœ%8IÌV~u;ŒÆ¸–ؾÀ«SVyÔ}ÒËÜ~¥Þ|û ˜ÂúzÚ/õ1i`•‡?+ë"•" FkN7™ìÀH £ìö3Ù#qf;Æ¢ì|=Öûd®·\*߃Wkò íÈŠßÕ+Is÷¯T«êF©j&ªbÑëñ';ßž4}0Þbï^+‡XU3ïÝö¨Ê ªìò%Ƴ65HÇõ¦†w `ÔpVhVg÷¼úXoMqÍ»$ΦÙ4¢$¿:ãžb¯ÃJàWÿ²Ã1"KÜ0»FNDvÃßúak=N ¬Skù5‹b7øÕ«¸ÆP\u(®º ¤‰f:óCë¯i.g[Ó\}+ÈúAÍýÊ5^‘Kæ’›áÿíOìes0.ÝÝí›ø®æ.x2ÉQi[á½¶ÊZð«>< ÕøÑXém¿Êg/­@©¡˜³¾ÀÍÁ¸ÇÃ̔ɖ[àþÜ~µGzøGà~å¦Q¯¯ŸÿÖŸð·`ô—€û,u£ýMf·™ënÄO'\`kÊTsÊÝÏ0]ônÆœ”`mŽÆÞ0 #^‰ø9ܹ“¨û4¹ üªöšðÄ>qI¾›×ò»,¿xÕïu—{Ëçâ÷K0>¯G^^}k• ¯“òÑëìvƒèN¡†ûªÎfVõ6jtÒÌÕJ¯ÆJöP»²”qÆ´q­ÇÙÉøUó›yQÞÕFwŽ×WJ5›ÍúÁÛ#¥‘Ÿˆî›Ì£àWíŒÆ'¿fsîzboš'ÚDÊö±ãDM<Ùz _MøƒZEÙФ¸l-ÖãÌ•–fr0 ô¬Çïì4»^l‰œgÿÁíjxë¡Ì‰ª‚µÚkó5íÏŠ;¼„Ÿë™/°Æ{³"d$;<Ö%^iUpüïɰ9àWµñýÉÑwÁ¯îw`á&ÛWb½s'yЭ°keWd#ðê |GñJÕCµÓŤ˜‚ù4ù7Æbû•jÝÜ<ìñø3TJy>}cßòXöKý ˜êvµñZ?ØÈ p¯tÛÀsN]ì}æd\‰;î‹|'øƒ#mfÔDçÁÔZ¼Å¦£QïVóÛ×bò˜™1¶=\T5ì>ªÙÀlÅX_‹Ñº‹‘ð*²98ç~¶SaáüEwÖá¦ËÏò“ïê¿öÇý°—ð ·ºq~¹ÓÌv+Ü@¿ñ«Íì—úûŸjý`®„\Äj´ô~Z‚Ëi-UˆÏÜ ÖÞ’lú¹Tv匪†€?XüJç§ðâïÚ›ë´{xÕþ`Cê_ýâþcãÝÖK-ð«k`}ªf5OÒM!3RG“9µ¤¦Ó6ìIßbÌ`®f¼ô‹ñ™v¬ÇѲ 2Õn$k˜%‡ýNß‘º-G$)šÈzç,<¹Ö;—pïÎÂI2í1™×KbIX CŒ­€+i.i½Ò|æb•¡'šÃo*.•ǘ4)u¥Cr[+«ªÀü‡ zÙÙô“x½ú˜aýP&ãfÃÁ6ªB5³Î[Ð'çy_#ók61ÿÞ”1W| û÷ìš“°LûÔoî(ñ¦žŒ`¼««ä™e¦/±u2pì¬Ç8]O ãÜy5¿tøU?ž œ“;ðÍcôV[˯ð¦ç7Ú°å£VñÿAbþeßd…Á÷æyö£×yQ:Dî^éYŇrK¤J$B[~5"Ò‘õÎaÕZs Þo"ìj Ðq$î¯5ëÛae÷á§XooJ'ódXÏd’Ýi[dÚ`Õ/&O æÃkn.Eæ=;Î`~0^¿­'/ƒ€×` âJ½ÀÈà«2æú&Уø•²ºÞÙÁ˜IÍ¥/d„EWugàpªM¶W{ÓdNô}—æžvQÿªÐgûßí,\ñu÷‰Ý #[1Ÿã ®¡íwÄ.5 +Zã½×bœÿ†?¸ Wn K9 NÑïXžxVHÃgzÈ»Çbv>\ý*în ŠÀÌê:ï;¸ À«×Ì1÷§Ï‹;´°çÍ®¸Öð×jùf?ùU|t¥mŽ«N^u7êÝ^‡wÙ‚·ÍÅèÜÊnÏÓ¨ô|ó™ ¼j ~µw>-÷ciíä²à€û.XÌ«ïàw§ýU7X«z2ßùsþö·Å~ßâÆ¯¶šn•›ìwº[[¶˜;܉ài¬¢6¸Ö:ö,’5컳™yû-©´39ˆã±ÞN º©€ÏÜTuÙFë‰î>%ø¦^YýW.Ç߆¿÷Üuoø<ßÝ«:Ú¥Èóîo÷³-Åü.–Œh;„çQ½€~)À«Æ° ë¨˜ØLg#vñwñ·tF®õdy=3UnÖž:êÓmÇ(îˆ^G<Ñþƒ·xýn8o-Lm,moO`Ìy F-›Ø µÉÿ ×ÑÚœ™\aäaÌ=Ô3Èb=™¨‘ÉJâDÚz-æÂ‡ÕÏ5X#I´éMÐzœjÎdþng>ãVê å2~”Ë*È¥O´JãÓ”e®dâ[YêòÒ—‹ã¤2*¤þ`#XD2ÏË©J:Ï“ÈGUw+ŽÑü"æ6”å©fyŽAQ2›þ¦ú¹ã±óݤ‹è#6âv"³+–væs­ ÁÏãá ‰y“Wy›æÚP+ošT7õá(²·gj‚%i§ÄžRŬ¥žL2Æ;Ë<Äø•j–®’¯ØC(Ÿ|ÜlÚÏÅ}µ*µ?wiÕ)­`×cÆ48ÉŽ¶åín«‘·sð¾´ß²ŸÈæ-p—[VFÞ/m"祄çƒÏ¯ªG²‡?cN€_56•ñö¿ª>½Ù…kjœl#XÏXžëæÂfT©·þ¶fcê!—J®©ìî¶ÍŒ*Û-TU†`žÜŽ7Ì5ÿ¶ÃìNÓžuÊ÷1Û´ÖÿàzkàTC¼Ë¼ñ§¸®æ¹¼ŠuUÁü (¦{ì8žõw£Jõ(Ü¥Uàÿæ‡o“1Ñ/á>ížU-S¶S62 ã}ÈýiÖËŽÈ>|ã]vvžD£¸;3UoµHö¦¬Ð^jÀ‡£ø»Öþ@=ÿ>€ïtG0^¥¬¥_ý)XàŽƒ_”R÷£+q3á>aq}û¸‡‚Vö9s(î£àœ¯â[šCr»ý#R6ºÎ6Á›.–e¦õ¯úâ-ŽÂSÿl»h†Òhªçh÷ÐJX=-ñ~ExóÔmƒÕ±&8ä~¶QO¦¿<¼ê¦JÔüé‡hžªßŒYX‚Ÿ×¯–˜}f¢ÓÎô»\ÿæNw!P•é|pÖµ&ÓŽ¦Þžö7d•ñ<É|Ö;kÀ~¼]{ÖãÌ“û‚Z.Þ¨þ˜ÝÒ¯ÃØ~éRünÿëˆgÝïžòÀóT£çÈ£î/÷ÕÜeR‰ú ÊHz§˜jä"#1ªŸ¡z*[1*ê|Ó?k§À(u=ÌCü^mp£L··Fûpï^({üRß‚XpR®F|t*ãEª5ú¢o9’WL°÷Äûô.,7à;ÚeÔòÉØB÷\žð%1ÚQŸ^`5šsc\%‹Êo9ĘrXÙÌ=óá«Ð«Ó,Ïzä/‰±LöL {Md1¯+‰¨ê÷e‘û(F†ñ(ÅœBv¼‰£'ZQÂÍú E@÷Pƒ48SŽgˆÊµ’7¹[aßÃr1=ä,òÁPÓ/—:ÏÊsƃ«oÂ.Xާͱwgmusp¨Ÿ¨×æ‹Æ™àЉàí˜×ö<-0íL[£¼¨%f«ãW)X·µÍ°=gœ ~uœ¹X)X¯Óå3*å&c÷9kÖ›!Äå ò8sõ½:IžÝf¦p<ض‚=d5x¯L2ÿ±ïbTåð«+ðø4Â÷¼4„?XbÕó¾*G"©‘4êøm5gìu‘Ì»ø«)^é>Ó•gÁS˜’‚]ù8lXû[®„¯ÔØ<#ÚM¼.øÕEÛŠõÎóe¸9LÆZëÔþüÁ[Á¯åô îv"í=ØϽö[#6>ïª,¾‚û䘿06C°²ÇË xû†Ìøm^_Ö&2Þ>KfF?uÜe÷$ì(Ï”øLÿ‡û¾ä1«°ãߌøæçX_|¦+po&®¡=zFÉÀÇÕ¸S1þm/l¬+®_Û\Ï|ó|àÔVüþiy–g?Ų.ú^0Œçƒ¥u ¯0æ„ëà{ÆÝ´·O™û⾠΃_µ…?8ÏÆE¿‰ÌâùàYb𙥵k©Ìz0¸œÅHTf§´ê@'íÈÖO°ã=…u|“±•dm°Ëýl &azú˜ß®õ8 qSýGþa¿¿ÐÏðw¸ ~ƒÙ¼Zî†ø;©ß¾ÑuOOÈRŒwYn2l¼Í CeYǾÅÚ™´3Öœ*ÕuÃΨýè;Áºk‚'Ÿ²˜/Ú@ö»8ßʯÅZŸâ÷úoÜ Ê øƒ¾¯Ÿƒ}ä­È[.â%R×^#5£×Zíï\ŸuW ¦*YÁpü}*µçRU›ü~cÌÕð}­Ô8UÎÔZêYlwG¯¥Ç¶Xvú5¾l.MÎHb4‡ý5ÒÝÅ\‡5Gž£çƒ9ä1çorÍ–c”b£FYTùL”°Ú0ƒVS†1ŸZ¬jÏ#ÊÄØd13‰¹ UÈX˜ßž;U¬ËtM–°'`:Y`ÈÞÊñº)ägñä`ñ|¦ ²§Dr¢lÞYùUQL9ìäVjfGF%‘j©iØ?ryþOß³"óÛÉòrˆŸeYG~3ÙgYü|Ö÷nVT”!v6ÅÊïÀª \Ñ|/=y>8_~‡GøñööŸ«o¯—ûšbúƒm`a¥°ÈÆÛk›Õ¦ óT¯— sÆ ft­9ùÕbZsÙoÖ™^Ìï8ƒÝL'×IµÌLŽÄ*;xuÀjLà!éiþißc&Ýx–+²Šu@W¥^ä¢4´zûš¬TŠü—#¼þà¬H±ÑúÄ€ ¹c?‚Ý`ߪNm°;`­°/Ðx–íÌUæö™,÷‚mdºÁ®`¿;ÌÁ¿w•jæ*üÁ•`Žõå-ò«Ãášx£!°íôWëy*ó6s±RßÄȘoØ7»/îyh‹zTíUVÔkùnàs1p¸.,jzô3—ërOÀòÓLM_ÝÿdU×ø>wÕl£‘íøÔG¬ýŸÇ ¤FÀÀIÌÿˆ=äkyN¦±‡Voð™Åà1kÊéjã{àݻË~”õƒuÀ¯> F¹CA50 fî_®›ê•·Ì%7ÂÛô±Wȯø"øƒ÷ÉdàÕ_‘åV£ü+äìS}xÆ®Ú|{YÁ¸ãPxUûß,¬±!xÂ]ðÎFãy.âI{h,xõ{ zÈ;¤›þà»n žó/¿ÄÿꟇ?ØÌ¬öÃüvàÕjs‹™ pœ¿Ý•±UåFsÀ žbÔŠßlªYe}±×UÇk4ÔZlU3,Æjè 4=‡ùmƒçm‚µz1–ÏÐ\îõŸ¹$øƒëq•_œóüÏ®?¾wÖ½â+ÇTïýjäUp°Û†Œ T‰¶ªu®ª¡Úݵ.Ùù0Üo sµÓ€i½Á«µṄú>/…5h­–bÊ&Yf7D‡‘¡¬jî^iýïIÉVަ=–À¦Æ³3ƒÖÑŒæJMb‡¾ŽòϘ¦¹žÂ®c¾T½Åòd9)1?-ÌÐo•Ðö*ÓK¢ÇY‘:{ÙÌdèÃgÍ̪ͪãÜXC=æ?„Vé± çÄØ)d9òаE:.Ç8¹M.«SsyÎÖ&3z^{Wk²:EÁæÔ¿µC‹ñy@ Íi¯N+ŽX—Mìô<+LeTMï<kIëqô©t—Œyõ›™?°£&Kœ‰ÀTüýQšÑ["•MÓ˜½ž[%—2Ÿ!+¥š™Ê~eY½pÈôàh5ÅÝ~–°¿íHÙeVšöDúcXÃ`ûÌ|­b—˜9Äï™vˆ­ ¼Òæ˜\o>±Ÿ’%þfÞ€_zÜhôî-)Ž‘VßíEY©I7:×'ÌQ;6Òœù ¿ÁgI6û¸#¶fÞH…$U¹…úW¨:÷Þê ;Ö2ñîqÛÀ4†]ß(}ÍŠ`,,°'Þöc;Ôî0zNÿ ƒ²3íÊ¥=˜UÇMó2)V|æ5¬·êæw\¿Víõ¢Tg"åµTµkÿÝ-m6ó4ÖËõѺL÷¨{k?ÙTñ¹þc;ãõœûά“øJxãfÔ÷,‚måƒÃ,‚?ø4˜‡æu>Ï:u‘0Øܵ.øÕxÌË l+ö™\½\ïv¯ŽH#÷¹k솺»å²¹Û-ôâN=í#fiÜ»ÁA_ßw3ge˜ý-nµ¿ÌlìíL_¼¯æeÜ ;ÔÈÑn<µöŒ©û¼Lû¬ûýxŽ §0>Ú/gq°ÃYöw¾I®ñϹãþ}7»Î¯~¬ÿÖ¿ìwÊS²Ð÷ö;Ýp¿Êl¿ZÉúÁT Ç"sÌÝËzçŒøjæ3è d/Ìì\[3|¦ˆªÜê>­¹„GÀïÚaT´Í©À¹LÓŸÙç¿tÖú›ðÍï\†¿Óåô層ï·𪙼yÆþ[×Z#µ¢×¯4[} Ð0ÅÔaþø8ÆËÚW€ ½#3iGp¿°Í ÔïFšJ6ƒ]~¥v~ƒÜæçúÎŒ{œ•ôhåèHz\%Ø5¯âyŽ?ï“KÔÓ‹+1-…\ÌözF›R‰•aךbL}Ã$ƯŠch‘E-‡rê»×&v•#†„ºÄiŒ™×$C‹gff ž&)3$ìr˜J¿òýn’x§t~º¢„ªeYÁSê® Ì²¬ÈøP)°>Vj*±%…š¬™ä{åXÏX‘µ‡©DØ,blÏÓˆz9Ä×LâÖÀªU°[ÅÑìЖØR[ŠáÉô%GºVþ–xó2Çí5fý´&¿#-LgSÓhŒ®‰šºì-˜ ý+ÍLÓƒþà:xD§ÌHÞ½X€v·ÒQY"‡Ù^½Òcì§¾ŸãÖüj fLŸ¡·í`«Ø£Œ¥ß)ýÍ¿ìUŽÞ÷æ²¼+‡ˆE—¥}ä°Ôd‹²&’qF3Ξ2Çì°H{ÃŒsTÄìÇœÇêZ‰Õ3+OU¬ÁŽÎ³¯Ö q}à•öoªe*¸'m3Óߘ/Æ, æÂ*;âM¾µ×Ú­FëxŸ–»€Lû¨1t-0¤VV=Œ½žØ½ˆ1­Ê³¼QRÃ|Œ™jŠU;ÿ+f|©ã¤UV¥xšã’@ýöŠˆÑ·\eàÕÕ"1…¾šÿÞNÁ¨-uØU²üªüÁÖìëÜ ¶¢šp“éí[ù÷»Äpý©µŒ…o¡•#uÁ4æsÅ?F>–ý<êöM€å¥îMW ¼:”ÁÝë¿ô'ƒÞvй1λ¾®ïjn30Ñ„èÛ÷°©é7Ðìú½TYí!§€ÎXšû0J£¹Áo†âç3±~µd{pÄýl Fƒvõ÷¹sþ7¬ÛÄõöÿòwù;aõ³ý¿Å ôK¨µ þà.ð«j²Ììr‚+X³×`,7YVñRó¾òpµÆ¬2Ö™ ‚ûkþUSðäóA¢K2íð9­öwî#_º ~¿ÿÂéië^÷𪫿;ÌË‘×ÝݧVûv­^ ²a-­0׋±—T£æÊv®m‹£ýcMNdϽª<VP?ÕÌb&O×ÖÉ »5:œgùKe‰ŸèÛÓ;¼’èX"êõ©~!ÌËömFõþ^iüJ}É«RÙ#…VOP_†?X3R–ýz6š³v.ðJuÿÚe˜;ðÞ£±¢çbL£æfê¹]À»fÊv _Só~ßHJMewÙ67Z‘68¹/˜4íßîS;Úî5ªäò¢œÆUKí„7ê4³\+`ü²Ì+y?×1ŸÐŽôL[Ïκ³iV7Áˆœ—,[É~ŽoÞ)£_»:îE÷03n‹}%ÿ–¤Ý݇àWG´'è{Ì¥Ÿ‹mëÎÀÛ”âúÁ¯âý—Šê÷×™‡Yh+`FjQá!ì ]²wc­`­¯Ž¾Ìv'Ùß¹±ûþàDwQž‡?ØÄ§Ä ºØ—Í‘¸¯‚}àWm÷Ëlùh&¼"Í¿š%+LGøƒuñ•€ä·“™o“ÕÂ<ÖÇ}Ö D+ ÷ãóCÁ îク/·ûœ¸íÁhŒ]?ÿ(üÁÏÝ ó÷~¼ÿÓ_ñ¥›Yà•QÍð Ìa3Û-p£ýa–½ÈìsÀÜ„Ñ&LEÛãØã¯ù ªêÙϦÕŹQOq?и5¹× òpPÓå‚37•‹ÀÈ$ß™õƒß¹ÚÿË©þ ÷ðê:¿#üJä’‹ø¬f½¬•†ÑžVëûê3Ÿ!ÍÔ öÊõÌoÎNËk°}KÑL¡ªÔNéM¯¦ «Ú§’+lÆ(ÞÉþƒé˜©~³ïA»;%‘hÃèLâUÖ;«`î0Eí‡1í÷ó/ævjnÕ<ÙF™ÊM—P¥=ìöžÎˆT5žø…9L˜1Ìh{;e„ Xª›—GŸ1‰'p¡ZMÏœ²yê–DNU•¿ÍˆåR„úËľ°"¹"¹WV¬~° F?[B5励úAõCë±B,-¯gW*fÝr؃>•Ü/…¾d"£ëIô Ó˜Ç_Žf`<Âtbx#ìÔbõJ¥æ;¬þTêYe²G=Úç°.6I#£§¢CµÏ3<Ÿ¦Xs%ð˜ß^Ý,2ÝéÛnŠæ¹V*ly¾ü¨¹¢=&NšMwŽòøOŠWš©ÑRj1Þ®qò¶¶“M³GØoâ˜t6ÏÛ™ßþ½yB¾–sF£—%?r^Z÷=*ó#ù‘ FG÷’yÒŽŽ43ºÔ1·KY£UnƒÙkWKOé2ñîwaç/À®v³f‚_¥bZ›wÉ^4­u^Ñ&€¿t–\ó…gµ;Y¸Ì]Øww²sg?0‡öXCXÅc€JoÀ»¬„ß¼ÉxûÏXåmaÙ˜{Þš:Cñ½Ä«“R`kÛw`kûeFô—ç.7z¨MøêþU;ß»×]´·Ê¹ÈJŒýû¸WgÜ«+Сì`*®X »B¾À,‚ÕÔ#^©Â{©üŠ¿×e¿‰ ø·nðžÏ³_ay¹9úaÐËÝy5t¿» 1=™'\ƒ¸ þPÐ;gî‰ËuOûZ¾‹yXÆÚ?"¹Ñ%ìçµIVš`ZË[VxWìÄŠðBVFV‘[ŸyÌŠ½÷Ã*ÍÙ…ò²!8ê~Vcä6éãw‡Ámfƒ½ÿêg_?ê3,tÓüjs«ëV¯¹²`:ËÌ)÷hð„æ˜`‡ØdŠm¼]7°XÕ“i‚µ®{©î a?¯Á@ɃŸ%°”¹r&(ç*˜–@û€Wq¾©_‹§þÆ¥øíþß®ùÕ à´ÃýRŒÜåÈe÷§ûÆêÛl”:Ñ¡¶•bz`í$šBÞáZ|g&®§þÐ* KÄ̡礕ì–)<ñꃟ¦3Þ³I¦ÙMÑ!̈Z(‡ü¾ ÏÖŽHf´Et\Œa41£¤%"o2CÂ^¥UñÆß²òEsÊäBÉT®ÈJ¼öÂʤ¦RW¯v¬F/-æ¡…Z4ê÷U`}rûf1ŠT…ÚS¡B^yFëÃ~;ª˜Už5}¡âr²dIJ ™G©g ¬ÂÉdl\Ojñ”R}Àêv¸Ñz=¿M‹¡ckÜí]È´V17¦ñ^Hîç©!“É'Œc}P:s\õ·K°–6Â,ÇøœF [Ð{,’fæ#ö¨MïM1bþÁçyc¹ÜKã|Z“o õš`ÍÕ—‘<© +]múðY7H`.ƒ/ie·ölÿ +Jw™0KàY©/«Z÷Ûø°mÀ•ö˜qü|/;ËV·û¬z··Ëóª}‹¸úy lb‹Ñ¸ý‹’9&ͬ¢õ#²!’‰3êå_1wÙ!‘îüLªÙŸðvÌI[ØÐ ˜m­"Õúö@‰‡°ûjüã*¼ÛPk¿Ôü7¸h[¯Z°¿Ï·Á2ìg}¥¶¹ß®°ë˜Ïp¶°Ï\€<”=Lo`^fG`ò«°Ýj˜‘O5Nf¾…7ziüªWÑx’*ÊÕ¡GX2íOæK­¬“~Ñ·]†{Ľ¢:b&ßçû7Á¯úÊa·Þn”Ó‘uøÎë¢w_Œ]¥-k|æÐˉ;}gZHæÖxµŸè‰gïËÞèÕ€Wð¤ÏçhÅÊ‹åÑ7ƒ6îæ &¬¥ÞQ¦åÎÈæ„›ãGÆúØ7Íô¸ƒg| ðêl¿Žü™Æ~©ód1üÁÙ¸nW¼Ãm…L<ÍA\¿"X”ö] ÍaEFµ®Ç¾ð(î߉ù ÇéNÖ·õ¸ãþ3àÕò•E}†-ÒÑÌöÝýnöwÞb®sóÜDNf+ËæN÷xð °Aór7˜òvÙÜ`XÎ*)¥bëj4„Ý †Âw؇ñº ï<þ`†‹3ꙟòŸºT0©-xâÏ\–ßÉüö¶rÄ=ëkú~&ÆðåÈÓî/÷•-bý`¥hoÛ‡§öÝ1Ï©M6¢¹©êåÖÇ*^<öfu4óñ,u€Üª0×@ú°*Zý§õ²x5’^Î"9âoðˆ9å—HUfÅ,ä4bà8ì•b¹Us°ÏUâßÊÓ–ÓiùÌùq j ™’õ¯ãW‰Ô^ȤGªø04ÖÁ"‰5;9TòJæÉõÿT®²ÉkRˆSy¬êI“Pµ=™¹“Ê´ª¯B¬ÓøU1ñ'ž\3Œ¦i` ³æÓ™¯Õ•ÏO6ö¿(C­øBf†ÅñíCý˜²Ì¿Ò([V¬Žé¬kÕ!ô$²,N?ÙÜ鼯üGIøƒ¯0â-vKhmô,oœ40=L©QŒm °LGKãí7›.ìÅ£üêað+åzü<'ÝkæË.3>£*3_Ä=3 ¼j~uÌLÇOñ2ÌŽ´uì)«Þí>¼zÙk?˜—äÙjÔ¯}IêEž:VùØYùÅFÙõè‚9l»FŠŒŽ{¢9,ÁfòYyÖVlhíxû{a…xÎgð¯2]Ó$»‡lC£J·SUO<˜Š'’šßíMö€Ñ\ga Ú0ß IcYÕ=©œ·š} _ÚÕ51o¡>q={µk–ô UãígEìoæ=ünŸ´‰~ê2Ýi÷¢òZSÛ§ûïìXÌíS`ke{d7žíuê2LÁ}ºa¬&bn4µ/öùÏ1s1E°ÈÝì¨ÚD~–¡¬ý-”ûðÎð‰“˜¿*˜çyÑ·ƒQn3óۋݧ®ÈõpçåasŸëì‹âî zØ÷ͪ¸—‚S¾žoi.È›ýxÕo7ÏtjM[MŒÜŒB70œìPŠ·Z –™/Ú÷ìNö¼ºKÎ`P5‚Áv÷=øÕðéÖþIàÕ'Þ’)w=ðêy¿þàßÎov“ý*³×ŒaüJõdª¯Î¸ Á @ÃjXKÛLUŒN=ѪŠ˜Óú¬‹»ŽaMšf‘ãÔX¯»?äºøøŸ:ã«úMX Ÿ»t¿ËGýöîeøà-ü,|ç¥È³øŒêɨZ~´¿íÕ¦Ù^ ð´ZM¬ˆØü§õd–âÎ_àÆ{«bò ÿíƒOL¡õn„?¸žõƒIØqnóËWjk'åýÈ‘ÑÌI(^c½³f.LĨU$jhÜám*·heææ³N.Q´¬„&Â,õ_*³ +[Âþ˹ì$Q†¾auêue›ueì½,O ‹Y;Öë…ú¢ÉŒ … ažPÕ%ÔÚJa¬,‰@Ù1/Ñ3>V@ÿ®,•±Bu›²|³DOÕ“iʸXÌkÈ!3Kb--–aP–ù§a—é2ŒGUñ+Uá U•ãû+f_ãQíèe†µØEDÜ2Ô©AÄ ó(2Û++a/é¼^=ü@ÔþÕ¸÷Šè»àW[‚ZrJº¯\ÄuN¾h¸‡ü$&hoß0¯Ååºm¾Èw3gdŠý=R5ºÀ¶dg妭‰«hè6¹ u;ðÔ™YVˆ=p¬¢îµö=xu£7Æg}°üji0˜ÖÞ_t‡üÇnŽüW²âºùOýmàWÍ€W}ýzw£_c6˜yn‘á÷€aâ®GÝ£ÁeŒ”®Ó¦‚»œŒ1×þFaßjU­™Ç8H ðQö›À7nÀþÎ]YÌ]C9>~µsú®Ëõ{ü7®Vüa÷¡¯ÄÒœõDrÿÌj&Ò)Œ±Zk§gó57NôÜp8¾³ö¢Ójì f±„½ü´g0VŬ.x*Å%åW»¢ýÉ9T_t½ïÂ^2wɳ‘¿#“‰¤‹™ÈzAMÃuCÝà|XÆo1ý«ZË ä]‰öµJ‹áG2*dz3õ2˜wZ‘¦¤˜ÂKñ*‡(10–5ždæç(ŠÔ“P¹T=°Jv’Ь‚Y%Ò“KäwÓ™ŸHþV–˜S€§Ï#wÒß¦ó· ¬f,f}OkòˆuªãWÈÌÏxæBÔ``Ùhý΄Xܬ"ó.Oöa¼5àʯzH§X]y‚Ñ\ŽaXO¿½(~¾&pJj˜\ëFlĘ âL3£ÕUªû× Ül?؉bã2I7o€/%U§ÉW°¬2Ôÿ9mn2Ý™7¶+n¤æH‘)6·›0~”mbëÚÓVçä°™wí{¬HøÑ¼ïgucž–ôÈÀ+Ý[.ÉH4!F=a±ƒ#îYæÉ5'1'maýˆXÙ¬G߆»^aæíjØ{#øƒð·bó{pÉÖa½ó<°ªÆÁöKmhÞ°ëí&£™˜šÏ°¬AûDOÁ>Õ׬†k^Oìsà•jx¿ ±Ðü„¼J­âæT†‡ÙÓSÃ@L±?š÷qב2(ú¡+p÷¸§TéÀTö5üOv&¾ù”ë¼ZY‹Yy—™¢ó©Æ×ÿû+Æõç‹®]{ã3}ðd Øý=ÇhŽª*¨Ý„w=Ï íÚ²4úI0Ìí^í—6î —àú¸åUs§kàwûcð2[ã^^uÖO¶A´Rt¾ÕîŸó€éF{+o&UÅÓÀ½‹Øc±wÓ~ôÝ“;ÀëF`ŨFgÌÞ‘àûw°.˜‰]²‹üê=7S~‘ÿúþþcÿ‡8³ØðëÜ,¿Ò¬5“ÝD7Òtm,·š îàqY‰¹è)ëÁ¯&°~qû¥6ÁÜ5^6à oï=å8Fy&VÕ<9Tseàã·”û‘e|s¿ Ø«þàVð«øÞ ÷¼/€/ªüêÈÓî¿îc«ºŽ«¥It„íG_ª/,FûyiíŠê=ÏÆ³h&Ñ ÌAž™NËÖÞHÍØª FDóE§£VÉ8{gtϾçÉQ¿Ê·fç®òA¤Nt4cGõÀ¯4G%žÙáS1ù´Yõ½?g×Seó€WU˜”EËM&¿QäÉ&ËJ£žA!ÑGãBuØ×Eñ§:O[Ê3/J3NòyϤžL%æA¥òŒ/ƒ±úTz޹Œ¸%Ñ/K‹EÙCµã°waE ûL—¡/™O Nd&E"\YâRjÕ‡õؽØO0Ìá¯óh³9òÈÍâè{&IrŒÉ•c¶…þmFk;ÖŽÞ­:Ï€ÛÑw« ¾ô&ûÆa&RÍŸ`)äW%àÿŒbu?àUySÏ$1þ2j¯3H˜ðUC~ ÐâŠÊ÷„•ó.8®2¾­r/VcwÆÍöá÷C`ûznY,ÍìQ3ŠhÝÓ¶•í)«9¨wÀ/»b?àþñ;påªl0z²ñ¨$G‘«ïö„L¿J5z¦yÙ±]#úœxWsx¥c`3šk7‡¸Q»ï~y(Võƒ-ÍŒV iaþ îµõLCŒÇBd–³pÿ.Àžoív3ûy=Ý»¬‰ñÄzæ•ì7{ßG`k5ÙËf†Ô2_c7éô†U[vV•]7‹ñs\ç.)g#ö*þ>^¦EßqU݃î>_ÙäûŠþW{=v‡ÜR»IG4FóõE§âO{|{ p¡>³žÆÉwð—bNZáÏN ¦*úU3é(Y‡Š ê>ÍLŠZÀ«OƒÙî\P ~]ê~N^ëî–+æ~×ßÿîϯnŒû6¸ ¾ÑÜœ•Yöß‘ï"+Á¯Jñ¦+M#xšàÅ0Ã;°Ê:`$ûຓñ&ZÅ­úí×à³o-àþãðDdwp›û#XŒÇªëæŸpÇü;n¢Xó¿ÞãŸö»À,çø1~í×™ÛÌwƒÄ~^9²É\„?xv¯y¹kÁ¯f‚LÄøWÆ~¢ú¢ ñD€!…°!ÝŽc?j(Ú¯yºÜTwåŒêÆÜã?wI¾¡_1üÂeø[€Wm±‚ϺG}ž¿ÆO×^Ê‘§Üßîw[ ö·RšQ¿=×ꎫgšBÞ¡(›`&3d-f>ÛÌâY\ Ñ®£™/ª¹&M€:z^¶^¦Ùõðu] ûüR߉±‘#òa¤At"±¨6õEa”WŸ äQo¯fïªâi}â|ò«ž%2^–‘Ÿ0ËRyK>³[+2žÉ ©T~Rk5šöwH0‰x¢,,/VÙÓþMú`X”FÔÈP¹,óGs‰FñD¥\â›Æ¯ª±ójY¾AU²Ãæ©6£*}=ÎμV^·»zÖÖ ŠNÿ%[BýÒ2ôÁò˜›„ù=Ö¼SÂ^@šQÓ‚>¦vµzï£ã¯ÙÖÿ=r­Ð>nÖ˜ŒÓ]Äj ýAÕ5­iÏaÆ”ûÝd{Ú†ö„Õ³ˆ{¤»yξE•²_á©>/ËŒò·W$zÈšÏð†,Šüd#¦<ëOÚ‘~F£{À&SÌ!Œ@3Øù`åhžßfWòÔ¢¦×³<¤ú¶‰ºûávƪ\)óÌíÀ«uX©µÍ¯v“]K}†§pÍX5zö6˜ÒlSuÀR?e4´ŒgvËðoêôšaw¯Á é¶…=eÁ|‹g†³£Ÿ»|÷¤{FóIMŸï·sq߻ݟfì¥~û{°ÿV@ÍolOk+§‡ã¿ïÊ«˜UÐëÿ~!võ\eóSkÉxçîòà{sƒð«z4zÔ9‰Ñ«®‚úÈíaãTãO3Л¼{K$OJçnI#ÿª`9`O*s%JjuT…É4§G«2¿Û‰¾ø £¸Š ê¦Po¨"ÙZmÈXT¦O"ŸJ%GŠçdÄ?éœÉÃz«‰ù¬D”tä]bOÄ“o$P©9X!ñörSàãOÖQsŸÃüdbÄöd¬®ýÔ{±cÂn”[ÇBÌyoŽTTJ·'`¶ÇúŸ ~µÛŸ›¹µÊ×qÞ"3G‹Âíàü*ìþœçC ]€ƒµpžŒwû+Sr ß*ýkÑõħD5¾„÷'CY=©!þõ„ʇ¼=>E-}e3í{ø“ª³]ª»mfày×¾§ªÍÞ& ÂÇx_K´_nº²:kE%ñWõèg„kNžâ;‘Ê0c¤¢O £C•œ(Ú˜¥šB¼­Ú­8s«Qm 3íSÑoÿ +NøÕœ(?`_Ç3þJü—õ´Ä¼Î#©¥iále°º 17‚ÆT½ Ì[æn2Ößì±Í;`%}•#¼N/¥¿=c¿kz/ÛÓLåÃâBÞ¹ÐÌ7ùÔgpXï½õ òòê[àÊ›j±è]UÎ{\Õ7U;ºÐûÚ$±þÅýœiéµÔÒ†ÿªÊ×û8om°²–€ÔâÉz°‚ë¬Ï·ýk¤¯ÒïXG;û¬©§¥:Ü\ÕWïñà“Íñsã-0Kh¾|}@¡ û8ìž¾ØEÕ¨L¼Tý8˜…ùù;¥>ðª)#J»ó>© æGâÔšböyö«,SË\C F¯þf+Ú×틬%-õ&¿:i¯ëêAï~ Â§Øo€R1Ö¢wqìÁ¿Ù`š¢/*Š ý1£Ë€Í¥8+Qo«Ù}øÞeuœ~éjiè”=è7ÚÔ±_غ¬çuQ_°m]ïðÓ~o³O?þÔ?èò]G}P­3É¡¨Ð"Ó”ª‹3u©Ný+‰¿’“ =ÖÔü«³E_« Ç bó®ÁtÆ¡åÕÕàÕwþ:Æ_õrí!÷¨~Q:<ÌýÕw»Àb'¹¾îQ;Ú-×kõ(;ÉŽu[aÖg~Ü>ë¿FUŠzPç›qèÛô· Xžô«ãÑVª|З|úvLGêÑ/P'€W¹ZtÛkæÄGþo~%þö2õ¤}Ñ»Án6ÚýºwÙþbÿiò±V©¬Pg#õRK0¾3ˆWµðóaÔlM»Hôãôd¢@-ü\l ±Ò 1÷qF X§¦šÕÌwŽÃy²ÎÝë:2^êqj{P¡®*KËgüa3Ç…˜ÀÖoèõ+k¦z:¢À0« Ÿ%‘±JIÄ«šÌÊ îÔ’¨t\üª2Ötïé÷âØ“"uŸƒ¬Á$Fš&E¢Ú“yûM[°2óQ¢¸;ã‰^åë•LväþdÓª ó7UùþÀ—Þ³OÖ–D§Ê‘ûÄ:ŒãŠR–x•Ì8®rd^ÑüicÀ2É$c0’[ÀÖ[D'©Vµ`Z=É–S}8&£Ô¯êBâ¯>ÀóçÃbªI¯_SÝD7Óâ÷+ÁßK€or?Øxµžö`9Vdÿ£îóFbËßW}Èuqæê広’ЇpBÆIÅÈ×zæQ=Žc5Ãt5õÌãFxÝàÆu#ñQñêKàÕ[À+ÁöU¾wP•¹U8«æzÊ‹g>ÎN؃ý½æ9j½_…ôV*ó‹ÿjVt.Ï™­xîEÖ…ß¼ª«?dþS®N¶§Lì¾ô±‡> ~µ^CGyKÍýZnªíÀ°cŒeêä]x©yÓ£ó¶ZAÿÔÇr{¤¿Ã7%ž´wwüW »ZnwKXß9Ó$™ëÔe¹/ôM±o¯ú­æ¹ç¼ixú%›f«#ÞÌÊûÅ–Œ®j‰oOƈ¡5ÃÁyÞÆŸÅR ð‡Ù§ü<õ ïsìxàÕýŒíèz†Oú=Ì{zoø=ÿ€(šëçiþâ-6R—gš®KtO¬ÓvÔgx«± ·7ó‘r±Bv¢eø·Ä·Äߟ?žMWëýG`®!^õt/¯®ÛI`Àw`‡Ýt§Ýf5xu—{ öà"½@°3a> ~UK­Ñûìqÿeô²½èAè#Ê¡#ÁF30? ˜³pÕí%fº;u*;S¿ý¸m«°^ê>wÓ–w¥nFðŽMt¹¯loœ `f¹ŽNªg¿é^ýËÔžZ ~5Ðôb.¼ä‰&éèc&Ö°Ôºï@´TªÓ“èåÉÃsë1v±£]ÊpFÇò33ÍÊÐ0FDÍWO¸e®ã8ª¸PÍÐHÆdÖU¥zfNÐ'ó<›:¢©äŽ_òN¼ØÓÁ“+G¢ ‚ØÍòÜã©Ô9—¹Õkü?m–ôWÅ“ýÒT‰ ¥ }æ²ïªQ'9‰j.q#¥õôĈ??ve"ýíqDCáK™D™ .=ŠËéÔ:Hàý@-Â8ô©ãE¥¢tkÞÿ9bQFu9ÞRŠ®éïµu‚°0‘ò÷›È8¬¾mjóc#ùQ͈kÍ`ÿŒ±–ïÎPQZ#ävó5²ƒ†Z¬ÏõÛþº¾¬v°¦DTΑ¶ªµž¯;‘§uQ5õaÖçJÀ Î…­Ô‰Ü´x³«GüNÏaÿJ,²Ä·ßX©3Rl“é[é cž¿úv“؉ּ.µ™ºñF{ûÀÉäœøP­ô´Wµçéc¦¯WF-Áϰj2ˆ6{SàÕ´£2U,¶‚y]ÁŠlã˪þ3×zg/›fhT¤ž©7ûsÀ¦Z…+xËÐ:©ô~ Ï›¶’ÅÞ¸çZèA?`ÿYü'yÐ×¥Ò¾Õ"wz0:bÇHý‡¡hGmæé<®²Mªù >³VM£¾èyØeCUð«°Çà‰§m¼™§¶¯jŸJ¼è=ÌlÌzO¢‡,u#ß~©Ä Þ X:‡º~UaYgFôú–â'/«WhµÖV+Bù½ì!¿=+¶ŸÙ";Ð>«^Ó'm/W~ÊïhÞÐëÃ/ù'©/zB 3Ñ¡ÿx“L ¬»¹j®îª{Q='VÎ.ê·¿€ÕR‰Z.íXÅKTK€eÛ`Ó<……WS‹ýmöŽ¿öàvÕ ö hOg=¯1àW—ÜF5BOp]Üf;­ÖËô;ßöw;WEj¾ÞaÏøïbN†b½<¬³Œd+ŠZlñ*Wê”Ñ[$u Ú¢=G1Kmðùú8wžóSh6…=ø.øUS·ãÿ=ìÁ-îKÛ s½ÇžsÙ®»›ÞuÙ»dïØ¯ŒÜæ.QE¡ž¦§’j7]aq–Óy¼–\¨9øžÔй£þ5zÄøó¬$.çrCŒF[¼]¸ÓFµÌl ¤…¶Rí%^ÅÑ¥†Æó¾©P5×£ .Þ¡ëÜÉ’¿ý:f®<ótæàÈ`®]’ ´\R#þ Xz}Ê“Dø’øÀ+Gb*ÑãšÀ{QÐH%%0>#Y‹rVÈ‚("RJÄóÏø+ñ»TRâV:ñ,™1¬)´™V.YT˜O âǯbÙŽäLåkQ ߬ªm™\bW˜>® ÖtO”Ÿ‹m)vìõ0=hµñœ^ª)-Ìz°%>Á˜KÑå`¾O>vÎbêàQùàWÙŒ•¸ÜR‡ pVé¨/*v}º¾ Ç²gýaÇÜ“’‘X‹m1,+Áà'1Ï=Õr¹R•{p8ñ´§écj›'äàìUÝõ)ðÚhÏ͈=(ñÃ7TŽ÷¤ªeä™/©<üJzy üª§×O3ã üê7¬–0œfíˆ\‚±ÉÀN{üªÖÄVô¯¡¾BßC]]Ñ^^I¾Ì<5@ßïO67RyÚ_I>N±ú;låhy6óAza-g¥Ú»±Â.á]9¬¸Pµ×_`EwÃHv^‰^`~'ªT’Ÿ[Š'¤™hó+ñ }jÓí+ö´ä™ë—ì~4€“oØŸôRµÚ[I}Ñ6ô w£]8 +Zª½NÃO®qa7e.Ÿ¨š±°ö%~¡XÆ'{I/ÑUK-ÝôØ'üº`˜EöKàÕP¼÷’~Òuu‡ývæ¸~8|ö`mW¦«±Æ†îxSM «ˆá4Òý°ò‡£/17¢CxDÉmï˜!#Õpª¡ÏM€ÇÁ&aª¨Eþû³¿ÑKÿÕe{„z}Jÿä¸î¬{D%èéîn·ÉróôF=Ú.¿Úi£p"­ÕûíYÿ-ð%ÁÂÍ:ö`}¬©~xîrÚ×M©l?ƒ'|7´ç ó­c¶§¨üD¥Kñ©“°+¢~û6ÁmvßÛ¶xÒ°«¯¦b ¼ {ðGû™ÝÍ•ª0Ôþ«ú`Su!£R†¡s©Ï(ë+}8#ÅkÐÒïE,’úƒ­ÑFá«éæþÐÔUßàf¯Ä÷µG¥„ª‘wIu«¦ZÀŒæÑG”…3ï+²&±Êáü©AOjdgGGtØSˆ’åo!6k9>µš ª» «i‚õE»®4‰°dæ V!OwùT ¹YzDÿ!¨Œ(êíÈb/ú{͈Tê3T¥=˜ÀZ¿ëh5æM^›Ý’¾°0½÷äTA>Nf$oºÜÿ¢4¢3–ÉÑNzle†½Ø\¢/*úíq¬³\Sÿ‚• 8:»]òqÄÿö.æu’Êb½‰…àW-t-K;®®.†5"XÚ–“ä;'2Ç0QŸ$¿’Ñ¹ê ¼AF¶§:¤WèîŒ;D¦!Ÿé¼ZÃ:_1j‘in²ÌSÌ |xõóf)¤îèwÔ{j£ŽcŒhàU‘tÿ³Z ~•¦å¼}ÑA^;-g€Ö*OoÃè5DïVb¶ïÁŠ‹Ýj‡ÔlZ)•`õuê$çé8ûœ)¿jlë¬Oú£„K¢W Þl3ƒxu ßÜ;' 'îjM‰Še-ŒØr`ºè!磯 U¥Ë€1€$#釭Ã|¿FxFîòªÀ«÷iyŽݰIö¢½„§TÓ ]%÷›™‹QÛe,ŸÍ¼ü€º ‚b…1†ñWyÀÕxëŸpú d%öGÐ ‰t·y‰­¯N°:ŸÀ°$'Km ]÷'Û=À«§Týܶµ#ìYu]¿th~xuM ßô¹B×^?«všpèo‰‘ÚÖ;ÕbÝYKå@§•Ìl’üÁÑÌä>…uU‰YG ¯CðïSäWjƒ¿Û†ì&ÿ°–Þî’=옂^U÷qŸ¸ÝÌô7 üJìÁUÀ«uøÛ>cꨥàW§ý×±Šºb„gTi¿–ê¿…ÔLÍ›|©å½½+mÜø}ЯfˆW‡Ü§6ìê9¹ó½ccÝ&؃ý€*‡ì뮎ë ~U¦þ~õ›•úƒYêAU+ÔÎôcÜzo _y]ƒŠË¢ß>]q±nW¢Ç?agH|e•®ûòì–y-Ñ"ÉÃ]§f™Ý¡QôŒ/SÝ4×OA++„j‡Æˆ¿}&¾Gmá Ø{UéM¯„ö}‚õUŽqY“1æ9Ü›iô_%3†*.‚ Ä4ñ W¥¨"3ÿU ¥ËøÌ Æ tebp'˜Ã¼ãhú·D"éãyïxÉ–“Æ Þ(þ.–ˆMOZ5æM—gdgã¸Ê1 !ž¬%†>«Òˆÿ>%R³QÞU™ÚË•©•Œ3@ø^9Æ_¥w1³2qLž5Xµ¬]ðAîºzPC& O¯®¿cmz‰gø/æâ5þü-ÌÔt•«+ãݳTKÝö`"­ÓZ<½bÙvTÀ¢NŒp‰]þ¬¾‹mî…ý{ ëWðy8ÖÛrÝ…Üòvû Öw Ò(ó žÀÛ‡9&ÏÔ1Çx÷wLuÕ7_Ò xG¿¦ÞP ´ðà«j˜·C2^ô’šï9/YËîÕ'L¯1u›Cz'ÖØ>îS¹ß™‚ù®Jãœü¯°à"ì÷&ÀA‰Ci cíê!çI > ¼zë¿X‡±c—iÑØ<ƒŸ¬À·s˜³Ö‹*¹Ì \ ;ð!<§¦ú«x†µÖÂʰ«†bK dÑ뫇¶”b—R)æ?ÀÉ\0ƒ©¡mEû²½(•u¾Kqÿ6£ñÞ§¬1ÛÔ~ï‰ »šQ¯¯ ÏšŠRxÔg÷UÌÐBÆhŠF½øUÊ0Oý±Æ¯^ÀŽj¼z!¯î^ ³OûµÀŽÙïl‰ ~uN_¶}Ýìð¿¹9¥ à?ër]#ð«&!ô·ÈHDÈvÌ]_Ìi&Þ[¨½}jünͨŒB Æ9%7¼-/º§Ã û$ìŽ µÜÔþ+r?ØÅ^½o'ªï•uï¯Qiz¶á²#Ý*½@° € [¬7¯Ñ{ìËþ‹÷ÞX§+t 3c¸+J2«ŠÑË˜ÙæJêˈڋÔÜ‹•)z¡ÓÔi?Õ&jÑsÞïn‹š9É^úÁ&¹°›¡µÙ—Á&û¸9xêUï ìÁ/(Óܯª‡z‰U’XÜIà¾õÈnĪŸÌŒ…TµçÈW˜CAÚ¢‡Yü¨‘µ@ñÕˆòƒ¡¾¼c›«ö¹õ®5÷þõ_/x•BßWØðÅ*¨³0u†ä¾LjX|Â*\rW6xUHxuâ‹Øm•6É D9bTv„aŰ:`%T®*y_Ä–D"XE²½zÎR#q\•ñDF•¦‚J<É¼Ë Ð±<ýÿqT;0q•ˆ3‰üi4};•œñÄÓxÞQ¤Gb6 øŽ@O¦o<]ÄgÏ;ÍX>3%5'Ðì¯xZ›E8·ÚÐO˜¯jÃ’éC×Pæ;¿Fœ½*óª¤&NÑÒк±M‹2`”ä¤Ë8ˆÏj=X…øÊæÁ{Cw#¯„ûÈ”Â{Ã=z.0MâU1G€_ ï-QÙf³NÜfSŸAFz¿ê¢o›[÷4õ­~vÑ-çÅyÕÞ;®êÇ—ÕzÏx‰Zk{9?ü4øÕ'úDø¼ÿ–+vô)õ‰ýË[ošà½+Õl]~%¾™:©äQÖÕ›ö°ätïÁ˜d0þjæ{PùˆšÊhŸþcÖ·+ýéj›êé.Øcîïv40ê_n ûÈ]tÛÔ]zžîÖÛ àW³ô;ÏŽv[Lç1X«'ü÷q2´E?—ë#ó8ëJô‹˜û<ó4›Ì¢9Þw ìKô$âŒÝëW²Éºñê؃ ™ó=˜Ö6wÇvÄí²o¯z¸Ù©ëÞûû­©Ž™Z£*…ÊŒè”bT'ªhK«¯?þ=Wµ Úù2¬çl1ª?J›*³Ñ’¼K4²f˜-¡>¼“›¥¶»µ®Œ1Ÿ‡Õ_¼¼ÐÝôÛ ^M`ü•(R ÅSm–Lì÷0¦)ÌÓ™ªŽ2ã/ЩƛÁhzª3TPñObÕ³ø“jªjz1Ô¶ªÈû6ñNµ¥Wž¾²F‘&’SFîc"~öîÍ„H„{ o‚ZÏÑ‘8÷êD:ËXˆÚ‘x‰ü ª2K­êFŒgâ/Z‘©9=ùT{ó–RìøŠ¬=dßö`*õØš¬ãõÌǤíŠÓ»#ÇŒP­zÿçcÝ+}¬p/ï‡ ¨°CõÒÍu4}ï­Tk]Ÿw"컊¾_7c_òUe}EßE4ÞYýó-7}a±-Õ½é)¼HkiÏ‡ÎØ¿éѼ yÓT4UÍ#w¢©núóÆB„ÍM`ÁH-|øŸªw ö`ôRë^”—@ýÀl}Ê´óZ2þ°Ú¥~…ET‘1fS(ã°ª 0šƒÕ]Áj—øv¹<ÏÌÒ&À«3¦¡n…y¶ÕÖË"¬ÀÎ`xëÍ6 q6ìâ=°ÁŽ2šw8ØNwì©?(q£b‹¶Ì_±ÚrtHw¦å7o.`\}6@FÆ—a?‰¾èçŒcº~u̾ ˜¦3]E÷µ¹\ì%ÛɬU/yëñý©)Õÿ+§ûD`Fïì?¿\ƒg2pæ2vüdÞ å‚ß,Áþz—ñWRbuèíÈýàUßþb[ÚAöeõ¶>gW¸pøˆßÛ\Õ/…?^‰=ø<ð*%”ZaJM´Z÷ÐK¨ÿ]¢6ë%‚~?ë¥`¤Èj¼+ƒú¢ñéû?¢÷¢Ò±Úßeõ×ù£omÜ9{Ô}{0Nûáî¶»êv¨¡z…ëéÖÙ™À«ûôd»ÊŽqÛl¬ÉWKô!û¢ÿ*V¬T™^©«€_Õ£g0 o]¯b%±R#¶Ú6P=¤l)Q%’ÿå×°ñº1Ú¿Ï}aÓ\·cø ìÁGÝmÛ^RíM— ¼š1½è·ÿ¶¢ß.õ&rBýÌ*³ÀÓ$ßYê‹Nc¼hs%¹i+0/ÿ.wï1ã=¹w$«… plkžõ#{˜£N'[OœWÿñrCCèY.Æ>ö-gqôdcÎ+0vðï¬%öà<œ–µÈ†„{TçÓÈ}Òi%†™¥œC$î•ÇÌà ô_e330žÑQ©Ñ'˜V“Ÿ©Á=^õfƒ|œX*¹~òXÔ…O Õ•Lß{2m¶8fVG3þ*bV‹T jß´ êD,còË"ú ‘Äz¬FW:µûÒ˜›M>OZ ­ÃT¾kÖÛfµ¯s-ÞiižÊÓŸK&>Ó[ý¢,ö²`Ñ5Ìÿ*0Ñöª:éb¤ŸëÁî®U*ýí£2õÃô¥Çaç¦ë·tæé ‡¬¢Å¼A­‡ÍØ…u¬d,Z!#×Y%™Çõö³»É…ExÔHÄëc˜Ç¿¯äœúN¿ »t0u!N«¶Þ؃ÂñΫu^¬gµpÅ‹ú¤iæ5ãý`U}PŃ_¥ñ|°g!FF"—·ƒ]žÁ 6WCÕ××0Çu€P•í9Ó=»¡úº›¿í‹÷3Çl…˜¡^ú®^IÞô@ìž~X¹µY u‰ú8XϼŽwÕÕ¿á=ݱú+Éc-Ãó奸{ ~¾O%štà•(õ&^´¯cï$èš°Äqî_²3͵Ñ{ßù”µx&2ϳ-pk UðÄJù‹zmhlêÆ#ê1MU™ƒçágXAô¯DɦHmÝðÚ'|ÑÖ+¶a»ÚçÕgú¤}ؽäÎøef¥>δO õ^u¯‰ U m1-A£ÀmZã¬i ¤&ýzX„U±_@orä-~-ËbűG1²rû~¿iƒu¹ÝÞð«{0~CÝ<ÿ+;ŒE…¹ÏÝe·UÖ÷¹~nµç–é±z´]~µÛ–R>¬Ÿ²gü?cMÂL®Ò™f2ÆqƒðpÝ&TÉE—¼Y±ÀâO]ŒJ>ðá˜_Ѧƒ_Õ³ùÒÆ¸ŽNò˹D·xÕ£¶×^wy®µ»³ø¡wüê¶ŸäJÕ84„ñ rç8èZÄZ„0–ÓU{Þþ‹ÖƒÆh'ÐOÞˆçI2ýWeäÞâ¿Ú f™B£™÷7U =CÿUb¨/ýW¢^WªÇa~bégž€qL#e²ÞD¦ ªŸÎTÏ1~0.ⵊW®hb„šîÙÄ„ ¶r:í;‰-¢©½K]˜GKÿS-?Átò«@ϪQ0–q ©ŒìL‰øÛ“ÝPŽï‰çû¢ˆW•”°Ïrô¿U‹Ä>”§O¬XZ[‰\ A}œzÓ#÷‰9‘¸úXTt(¦1®Uì²Ù­UØy‚½¢¨5;:‰Ø•©Â.”÷VuyÖK-¼*ÁyZ@í©áÀ«::uKëÂZ*fl•h°×ÐtGòÌu*ET¸‰3waÿ~¯zñ^r: Ö…q1{¢/RŽŒ;߬Ö9&ýL“aÁºýxW‚÷æxÿ»íðN0Ž«úÞ>ÕÜÈ=òiµÄ {åµd^]Ö/˜N^©–>§é=xïãŒ×(B¯¦¶^m|j+ëyå£ç+ðÿ%x®œVÙÚÙ‹¦¥n‡> «s§¿ßi ìù³Ùd€w‰¶ÕQ|ç³jD-¡ ™Lì á£ ˜±|õ1Ф&,iQx6£ZÆLÁô*‰öÝ•ibÌßðÄ™¼LµÏÛ3@£ º†Ër·Í<û0ðj£Úá­Â·ÞÇ\·Ç»Z1kP 9³ÔçÁÒþvfj.?ĸëÆÀø¡À Ñ=“£¾}cP íÿÕ{À/žÚÿÚRÛüê[}õè%^t´>®dßr9¬—ºËüê%…6™Þ™nÐ õ¼Ia;Æ¡ Þö z˜«† ¹`ÌS1ƒX âÐõðr,0-Smñ¯Ö¯b¼ènp)Øé?ºî]ÚƒµõBpœµ`UËô(=ÜÎ^íEÜTíÖσ_Éýà`â2]ÑLÂÛŽc4s€a ˜< ã3‰”XoObU‰†‚Ä_íòÃ6O‹ž³Ä[E¹–n9fã6ýWßÛžhÝaû¡«ãÊÜ=˜™/À¯´ûЈ’ùZU#Ô ü*ûãnƋ֤Šê| ¾—Ä{ö{Ôè©Ø)’ë^3ÏxÑ~@Òé܃+Õ(³64ž>“{Õ2·Äµ¥vÔuÓkM}Q‰hn¢ç’‰ˆnèÆ…ÈÏB/Ÿ§ºžÔû›;';bÎqôÉWRAÕö8~RªžFñ¾¯ˆü§µ_ ÙÞÊôCuãßb˜%X¨(*çÓC/ßb%#ƒi¼×û] +‘øSŽ^ªJ´8EIK<*Uhß%R˨\ä®SÆ$.‚p­yè0ç’S>öšÄÀòìO"?ýÿº[‰½KÀÕW«md‘¢<-qÂ£Š€Iÿ¤Ï0 ~•¥=ýÏŽ+˜ŸÙ°ñ䆳Æ6W· ^•¨êZ<¤Íw©b}¯nKüœÜ;M=™x0Œ¥ê6œÄª= öéYºyÝ ¬ÝaX[ñÊÇJicÖë~´ªÛš‰àǘ³KµÐ—Á¯„-~†¶¼£Nh±­Ï©Do‡ªo„^R³=ãU ê>3§µªèí*¤ÑŸÙ«}%VA­åÇðÖW±¿+³ÞD ý>~–­êéïü Fâ3ÄÕGoð碽ÏÌbóvNp§g0nÇ1;í°R;1&0So,î"«ïfcýN; i©8Ð , x'”T\¹›Qé¢'³|R™·±Ãf©®¡›À«§ìeü>Ig¸Êî=3'ú ¶¦Y¬–zОYT²N$Ò|,Þ]J&#Õ4σUucTÔ#RÍxVObò€3ÅÊn”2¯}ièK¿³ÝâçÀª¯o¿^u·çÕy}Üf¸ñáC~7sXo ÿâ?{°«>¡FšèÐÞHÓo©æbÖû³Nu!¸äV¬ÆfÉ>Ĩ¬kèyýW[Yiâ؃¢á\¼ÚloûËýñàemarïØià†?ºþîwÊ­…å>ß vËm7W÷×íTúÛ­é¬Öýô_*O <¨³ŒD²¿ÜHW’«$ªéC12Rõ¹2ZqlÎíTìo„5»Ç±Yº‘œ·ÀÈ+^µS_ÙTæ;·ÃZßk¯¹š®ž›‰Ùºê]¿ºaªò,k`äœ-!“õuýW¢•?žù˜â¿šî;öÔ ¯çÅÐ+Ô-OKè5Ѭ!¿ŠEV»®3÷Âaõ‘×.4‚7oU+}ΔÀ§$~Éʼ±ËÀ\ß m(þ«1`ÅÕhVä ^L„1ýž“,úx•©ÙK1‡·€qć:ÌÅIeüU/ªŠF“§Õä“cù¼FDñW%9bø†Êd<ÉüWB$ö+š1¨ ¼O,Ï é\V׉b]ÔªDœ æ—(¾*| XCU‰“–Ïøö€ñ 6ÂU •Z‘þ«dbé¬àu’ŒÏäáJ>Žàpvï—ê.z¹Áþ“xQ‰uýY¶™´³†ª\=PêxZ§týHÎTÕE¯Ô=¶\ë õ0s³Õ_ñ[¹ã[¬Ž1GðôVÕ(ü'=n­†™5àcòü‘f®)0GŒøÇRwëWÌu´1Jý[_P©äQ§W§U#÷gÕHï ¢_ëœ~ ö`'bW‚Þ¥¾Ã~Je^öFü©…&úW¢RÃ*ìöÆúz˜ {Pêy5Ö¢x7_MÐ÷ú3°ÿz¥c¼æ¬7qº{±:jýícx HÄÌj Æ/ 8£¨ugìÔŽôã`7¥ó.°1P¤#òG•`’ÌgX!U³Ð-[Óž¿ê¦btm—á¾1³Ðâmv·¾W½ä=Œo\Æ5¢ŠI;ªÓ £Gl~ò Öó"ì'¹Ü ‹·+öL™HïzÞ3Hwã%·¡¥jqè–? x•1hl¯á½]ìEXÑçlº«>è^më_sÕ][}XM6ßz^覾½@-ÐÝõpôp0Þ¶§]¬ëg˜6†Õ…1§Ó|»t~÷"+·WQø»íýuþ‰Ìr§ì~Øf3€Îw\wxõìü®³[”Z §èyÀ+‰gH0Á¨À| §Þ<[ø•ds¯C+2)͕Ԓƒñ‘˜3iÅ@j”µRæatwúi¶‚n‰QÙèn_åQOæs[öà?lWŒóqûðª³} kÞ‹ögûWÓó´ 33ÚôÁ[šá7÷©D-ª ‚ÖMÀ¶Ú0›x5Pñ+Ñnà}¾äÊuáNϲʎÔ5ÎÜH˜«º©®­ª“ê†W@äT‰ÐÓ,Ø"ÃéÕNc. ²$Vo3-¤DÞVánNc¬|b$nT¼ˆ…µãdr˜þN"1ªÓ[.Ú’/É33ø™,Æ‘¦FêÔÄÒ§Ô8ôU ¹œI»3¨@˜HfMe›@o¡<ñ°ñ r?˜Eä*O»¯V]bäÍM¨äJçFrœë²™×SžOOV~¼p¼L޳Ũÿ¼Ý8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run006/bold_events.tsv000066400000000000000000000002461323370031300255630ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 house 52.5 22.5 scrambledpix 87.5 22.5 face 122.5 22.5 shoe 157.5 22.5 chair 195.0 22.5 cat 230.0 22.5 bottle 265.0 22.5 scissors pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run006/bold_moest.txt000066400000000000000000000215131323370031300254110ustar00rootroot00000000000000-0.0019025 0.00181175 -0.00146904 -0.0407619 0.0232283 0.039551 -0.00233995 0.00110622 -0.00148067 -0.00880544 0.029218 0.0105959 -0.00224133 0.00112191 -0.00151615 -0.0233142 0.0347894 0.0331565 -0.00224133 0.000401004 -0.000713404 -0.0214681 0.0347979 0.0310282 -0.00190648 7.46652e-05 -0.00074178 -0.0486034 0.0348152 0.0407198 -0.00162654 0.00125743 -0.00171704 -0.0220887 0.0347849 0.0406795 -0.0019188 0.000337142 -0.000937265 -0.00399694 0.0213189 0.0378876 -0.00168773 0.00258648 -0.00205088 -0.0650581 0.0347992 0.0406674 -0.00130909 0.00073367 -0.00100603 -0.0441138 0.0135238 0.040711 -0.00137327 0.000789264 -0.0014301 -0.0476051 0.0283805 0.0407159 -0.0023631 0.000309444 -0.000395908 -0.0527167 0.0248158 0.0396598 -0.00225873 0.000789264 -0.000435234 -0.0822212 0.0161373 0.0489178 -0.00180061 0.000789264 -0.00106409 -0.0675814 0.0203641 0.0514471 -0.00134728 0.000687053 -0.0001853 -0.0634653 0.0181686 0.0446875 -0.00162363 0.00128708 -0.000590043 -0.0676129 0.0252467 0.0601347 -0.00180061 0.00128708 -0.00115286 -0.0580682 0.0132608 0.0548831 -0.00108777 0.00128708 -0.00138186 -0.0502559 0.0101295 0.0801167 -0.00180061 0.000847594 -0.00115286 -0.0374457 0.00418806 0.0800859 -0.0014511 0.000376155 -0.00115286 0.00974537 0.0146196 0.0716393 -0.00153283 0.00166774 -0.00156626 -0.0231856 0.00716543 0.0628048 -0.00141445 0.000783976 -0.00108174 -0.00573123 -0.0140601 0.0603411 -0.00171656 0.000783976 -0.000559572 -0.0626128 -0.0026237 0.0543303 -0.00180061 0.00152245 -0.00125521 -0.0526977 -0.0141077 0.0431276 -0.00180061 0.00175121 -0.00125521 -0.0382892 -0.00540931 0.0627677 -0.00180061 0.00152245 -0.00153504 -0.0326331 -0.0141142 0.0572377 -0.00139697 0.0012824 -0.000970053 -0.0527047 0.0191369 0.0628018 -0.00139655 0.00155008 -0.00125521 -0.0384625 -0.014102 0.0627991 -0.0012015 0.00113378 -0.00112206 -0.0361741 -0.00646413 0.0628161 -0.00109837 0.00169337 -0.00125521 -0.0443736 -0.0140965 0.0628113 -0.00194649 0.000801554 -0.00110198 -0.0526918 0.00919064 0.0627783 -0.000887469 0.00155039 -0.00125521 -0.0526925 0.00919597 0.0628293 -0.00101767 0.00172605 -0.00125521 -0.0445706 0.0128229 0.0628168 -0.00109605 0.00133273 -0.00149242 -0.0526881 0.0107965 0.0405527 -0.00130105 0.00036842 -0.000234138 -0.0462574 -0.00341011 0.0650165 -0.00133608 0.00129514 -0.00135012 -0.037749 -0.00285585 0.0650005 -0.000833194 0.000963877 -0.000767738 -0.0528349 0.0011391 0.0650064 -0.00175414 0.000595444 -0.00124448 -0.000591903 0.0197985 0.0421289 -0.00159186 0.0017935 -0.00124448 -0.00942933 -0.00706181 0.042149 -0.00137319 0.000211558 -0.00023447 -0.0561038 0.00287583 0.0420221 -0.00141971 0.0015737 -0.0012979 -0.0425896 0.00532656 0.0533498 -0.00097424 0.00163673 -0.00131557 -0.0489478 0.00319674 0.0712997 -0.00139394 0.00169447 -0.00124243 -0.0645851 -0.000686683 0.0712732 -0.00080857 0.000888878 -9.30518e-05 -0.0614411 -0.0135649 0.0713285 -0.00101559 0.00140551 -0.00125475 -0.0445671 0.00477643 0.0579055 -0.000908489 0.000342227 -0.00125475 0.015305 0.00962114 0.0615677 -0.000850605 0.000924559 -0.00117396 0.0316969 0.00898625 0.0596518 -0.00085699 0.000342227 -0.00112325 0.0316794 0.00861743 0.0684191 -0.00089666 0.00147466 -0.000679918 -0.0293251 0.000293754 0.068127 -0.000965396 0.000300428 -0.000182072 -0.030958 0.00460837 0.0917066 -0.000930801 0.000731058 -0.000575164 -0.0373882 -0.0134887 0.0767151 -0.000983813 0.00176619 -0.000679918 -0.0275502 -0.00981428 0.0709347 -0.00103446 0.000121577 -0.000112239 -0.0464665 -0.00541338 0.0865381 -0.000816115 0.00102415 0.000190172 -0.0560556 -0.0158201 0.068835 -0.000985133 0.00143908 -0.00034534 -0.0495272 0.00124987 0.0688024 -0.000802137 0.0019301 -0.00101516 -0.00931593 -0.00407293 0.068797 -0.00104156 0.00181662 -0.000987284 -0.0402016 -0.0178903 0.0875209 -0.00118226 -0.000240892 8.792e-06 -0.0557736 -0.0150815 0.0765716 -0.00103829 0.00173609 -0.000882307 -0.0558464 -0.0133973 0.0587653 -0.00156632 0.000807415 -0.000882307 -0.0409688 0.0164296 0.0587694 -0.00127207 0.00114509 -0.000882307 -0.055826 0.0110343 0.0505238 -0.0009372 0.00127358 -0.00111447 -0.0558082 -0.0335037 0.0588171 -0.000882005 0.000963609 -0.000882307 -0.0364328 0.00149485 0.0753623 -0.000993202 0.000963609 -0.000544914 -0.0271555 -0.0193675 0.0626601 -0.000842909 0.0010424 -0.000735468 -0.0364455 -0.0334806 0.0807572 -0.00120408 0.000375314 -0.00069187 0.0189998 -0.0334645 0.0976378 -0.00112178 0.00138439 -0.00130488 0.020055 -0.0180615 0.058084 -0.00122939 0.000926859 -0.000882307 0.00508557 0.0114785 0.051625 -0.000989988 0.00108763 -0.00112721 -0.0462315 -0.00931015 0.0560822 -0.001115 0.000926859 -0.000882307 -0.0462469 -0.00902557 0.0655746 -0.00150392 0.000926859 -0.000398605 -0.0269341 -0.00098825 0.0833315 -0.000842556 0.00134793 -0.000535734 -0.0491661 -0.00256237 0.0796763 -0.000774501 0.000926859 -0.000148813 -0.027839 -0.0334409 0.0833654 -0.00089227 0.000926859 -0.000165459 -0.056646 -0.0181386 0.064804 -0.000683291 0.00049779 -0.000698285 -0.0443601 0.00736839 0.0648295 -0.00121566 0.00107685 -0.000775574 -0.0443665 -0.00532662 0.0506619 -0.000670961 0.0012968 -0.000698285 0.0172161 0.00602516 0.0849318 -0.00115587 0.00165619 -0.000278971 -0.0340194 -0.0186659 0.0976602 -0.000625971 0.000790445 -0.000698609 0.026311 0.00910651 0.0996522 -0.000261033 0.000875067 -0.00027897 -0.000354236 -0.0157307 0.089994 -0.000697032 0.00190275 -0.00027897 -0.0261066 -0.0292124 0.108471 -0.00071456 0.000890381 0.000185965 -0.0299374 -0.0133392 0.0760502 -0.000903118 0.00105641 -0.000334338 -0.0518992 -0.00464083 0.0603337 -0.00139151 0.00127561 -0.000772575 -0.0293554 -0.00315017 0.0848652 -0.00139151 0.00122925 -0.00059135 -0.0323268 -0.0174827 0.0836469 -0.000280223 0.00140828 -0.000772575 -0.0480608 -0.0120508 0.0845149 -0.00139151 0.00142896 -0.000772575 -0.0307437 -0.017484 0.0853383 -0.000495465 0.000695749 4.9124e-05 -0.0480488 -0.00521276 0.0788981 -8.90112e-05 0.0013276 -0.000333713 -0.00937156 -0.0174193 0.0923091 -0.000727223 0.00194821 -0.000772575 -0.043928 -0.0174566 0.067992 -0.000307151 0.00126186 -0.000556545 0.0293345 -0.0174043 0.0840464 -0.000783384 0.000960581 -7.18993e-06 -0.0395575 -0.017459 0.0839652 -0.000904655 0.00163729 -0.000354917 -0.0395538 -0.00248356 0.0773937 -9.68888e-05 0.00158793 -0.00137373 0.0216534 -0.00632986 0.105678 -0.000904655 0.0010918 -0.000679816 0.0189391 -0.017484 0.0839547 -9.59542e-06 0.000461983 0.000468987 -0.0650065 -0.00726779 0.0839175 -0.000469647 0.00146373 -0.000679816 0.00110141 -0.0174677 0.083886 1.27639e-05 0.00183261 -0.000679816 -0.0344888 -0.0174511 0.0566753 -0.000411492 0.000971142 -0.000680409 0.0317533 -0.00251046 0.0606534 -0.000411492 0.000481171 -0.000237864 0.0141101 -0.0174594 0.0821883 -0.000465362 0.00173288 -0.000651244 -0.0300595 -0.0114762 0.082179 -0.000411492 0.000797699 -0.000183401 -0.0461134 -0.0174494 0.0822124 1.37853e-05 0.000945686 0.000157663 -0.0429001 0.00427612 0.0822143 8.80193e-06 0.00150798 -0.000920391 -0.0460508 0.00308338 0.0739755 0.000534936 0.00117071 -0.000664511 0.00296717 0.0156414 0.110469 0.000415339 0.00136911 -0.000664511 -0.0438519 -0.0174465 0.092938 0.000631564 0.000669614 -0.000664511 0.008934 0.0169114 0.110459 0.000452728 0.00130526 -0.000664511 0.00461928 -0.0213321 0.0937174 0.000510883 0.00171497 -0.000664511 0.00460345 -0.0291206 0.0937252 0.000213018 0.00108285 -0.000249646 0.00960765 -0.0169282 0.0835213 -0.000407096 0.00108285 -0.000782303 0.00970531 -0.0291596 0.07676 8.09892e-05 0.000883569 7.54808e-05 -0.0456568 -0.0291796 0.0936897 -0.000361433 0.00220186 -0.000989122 -0.042994 -0.0292365 0.0747274 -0.000485693 0.0012207 -0.00102507 0.00876418 0.0115015 0.074729 -1.05879e-22 0.0012207 -0.000657525 0.00625005 -0.00196589 0.0747396 0.000156675 0.0012207 -0.00108545 -0.00543325 0.012524 0.0747406 0.000151547 0.0005153 0.000223693 -0.0484815 -0.0292337 0.0834019 2.91837e-22 0.0012019 -0.00134586 -0.0399559 -0.0122572 0.0990225 -0.000290144 0.000792188 -0.000918732 0.00547437 -0.0217887 0.0922464 0.000313048 -0.000116716 -3.82751e-05 0.00802727 2.27493e-06 0.0801313 0.000164671 0.000951213 -0.000456599 0.0347869 0.00913965 0.0913913 0.00106606 0.00155058 -0.000456599 -0.00885018 0.0140203 0.0800306 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run007/000077500000000000000000000000001323370031300225205ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run007/bold_1slice.nii.gz000066400000000000000000003217271323370031300260340ustar00rootroot00000000000000‹Ľ˜×¶µ½«ÖšR¸»»»»{pM°àîN ¸îîîîîNÐàÁÝ¿±ûÜÛ>ðÐäÿϹœH÷¬¥ãc—tuÇŒ£Ïú’ù"ù_'üãÿõéa}á~ï±¹Aƒ"ù|¾VÿóO¼|Ÿ~Ý’‚øš¼ÿ󇾇 îlE*”Êœ&]pÚõÿíø»ÿjÓ­ øz„ÙæÿoôcËÿ~]Àßþ>ù¿ü__óÉß9Z¤Lÿÿocƒy<óåw¢NÏI_='|°føß„Îi'¯;ÛÍm2š‡NTYè+âþèÖs'¹®ûÁwꛪ]÷-3GmÊE©h8…´uÍ*7šÉ^µÍ<³Ä}æÜù¦zuÍSúVÙjt› Ð [ŒŽù:ºIéGŠb³Ø†ö a^«ÒPg›Ý^ ]t‘jPWbîÇ#©&Eµh]§ß(?µ  6¢-oƒÓçm¤êö²I" ¹DÅ­èíJˆó…ÆÜŒ¶ÿ^­—Ï5£ízJ‹¹$‡cWRmúÂsÎÍ…¸9Ÿ¡¦|Wñ(ŽÉ¥ymGzÑü>Æ,sV©·Åk{SÊÍëx5ϯiF0_ãÆòž×Ê8ý Åd ×’Ò2“䜆çpKÞÏCyŠMnóéqR7*Å¥¶”“gò|^ÊÉ nJI+‹y«”Ò<:H'êÞÌ…$¶Ì`E¿Ïò.¾Ï“9Vä-gë'纯lÌ\NÌËѾkÄ2_ÖIyŽ&#u™>ÒzZëËY®"-ä8fó}_òŒDZoª|Ro-Âùùæ¡÷Ǫ`9&‹¤•läœÎÛ¨Õ4šÐr˜ÛHZÝÂÝ0×yä·N~âx´,°Ö _gg…æj¨÷#þ=ÙÖ¢´²B†jx­*e¸öÕœ¨¸G×18Kü9ŒÅ\æ˜2’ GàäÔ)°ÞTg¹ûŽ*r|nIUå$µ·/h:÷ÐW¨²AŠxí¼PÞCê¥ÖórJÑ—rI rDnÈç¸ï¦¶µØß.Î>“ˆòR¬PŸ´£k¶ªDôºêam‹¾—zI¦j$ýCSêN)­1½DR_#É^òø/*J¥-¥Óæëmsæš®6'ͧ&´€ÎÚyRËâµÄ|ÜÁ(nÐúƒ÷Ô;©½.O²y)5¯—”zʸÚ èt…"r t þ7Žó¾ŒŽ82/}eœ¸ÿ)±B³ºsÜ&¯9ïü€*Ë}åÜìnw€ë¸ñ“ßTí®o¹Ùg3bf¡æ´Ê¤0ýÝ(®kÛ¦¦›Ùí^t¢S;›ËMè͇ýÞ“–ÙèôÊWÓeªL¯M(ÛÙ^²oÜ7Áªô‹³Ï k¯ÑhW)(ÌEªÇ©0¥·«h Á`^uêc#ØjöÏ`ÔKd:›õ å}E[h&”øu¤(ü Q tzH¥é²M ê% âÁàG-ŠEsì#k°ßçPF|ß ôz ÃzŽ$àå”j6rRyõ+£8ÌíeîL] ~cè­CY¡Àé°ós)æÝÇHì…=£‘Ô€’ÙbÎ_¨õÔwÐQŠÅó)9ÅÃnIÒÕ£:Çö¼‹SW®Í/Që&=B;ׯsé2·YÍ»ÏT«æ43%°s F?·û¹:<Â3 ǽ(¢=dRÈ(®ýÙBKA”‰XI­‚ >á¾hfž]@‰x×€røxUÅÅæŸ¹gå´àcy>̳yG‡R®ßæƒëÐÂ_Ì.gez«Ü~v$f.+¯s*ðˆL~4”D²Z†è+É,»¸²‘¥\5Sñ\î ~4åy6¥Md^¢»ïljF…Á·u¼ƒça,ã, ½D¾Ó´ÐйºóR@|àRt´øo„þ e«ó€s꓊#\‹y<„ÙÈnå[J¦ÊÉÆ±Ài*Þ =©Uä*7• r#  ÌŸ|½Ai¦)ùI½¶ zp®ê'Ž~Á{d’ô‘Nhco¥VÒ·²I§È+!©ô$÷åNüäCàGbiÏ‘hV`­›¾ÆÎh-ÎG5¹*ï±u(›¬—¥ dfÙ†ßGkhÿýMÇb,ëè8½ËGÁø¡üµ‰ºÖ›ä,?ÊqBð£‘l¥~öâQj½æº\þ”‹ZÁ ãÝÒ^n=!Oôg°ý¼ä…òîÈÛ(…­n'ö·¥³ÐdÂêý®ê9—£û¶¸„ðÚè.ÌÀm9'3´€.Ö4ºm\$ßëtÍ/U4‚ì¡×P‹âpOƒáoòcŸÓÏülSÑ ì³!tÌî—Ö^x¯ŠŒÑwÁ«¦S=âƒNóšieIï¥ÕšIRè>ðk­íAqèÅåÌvüöÝò¸ã+ÿ1žøŠ”F¾íˆíìu¾s׺LAsÏ©*}õÝÔn ÷w—ÝÎÁoªvÈ·®¼ˆœ ûxŒ gr¹ó±3lðc{‰ðMíüɼ‡Ó=%Ý ß=Ã&¡Na7¼}Êv·ï­šàñ£·sùã<öÞM*„ù>AÕ¹/|o »¸†d¥j4²’=ŒzyÌD³Õ–¥ð÷{¡JÏ¡3-)>,"·?BrÚiQp¡äWùqÜ×€’Ð|ôç ôn|~vúÓæBíaT…߃PÉ ŒÅ›ÖA¹›˜¯Qx¨Ûž²-vÊz$+M‚ ÿ›Ç㡊 ¹½CæZƒÝ~ ìkCymmçÞj…rv8¤Ù†VÅ!âÓÛßóµƒ:'§AÜ©kp‹VÑ&šŠ<öû)‹1Ÿien§‹)‡±z¶ƒn¤ï¡×9О¨P÷ f‘‰(+áì+àOë@‚ßÑò›6µ¦ÅŸáG_D3Õ.G?FñÐ^u"1Ýà½sq<ÞLÙà¿§ yEäŒÈp‡i2æ{-ÚZßüá¬Ro¥ÛÅŽC{Ò7+PáõÀw¤åÛÜA2ÊZ¡¯¥t¹º”’é œáÈ=ù wáö¶„¤Ç1Ü÷6;uF#lâÉèç|Î.q‘^fJ%®Ýu«þÁKP1´¬à$ȆǑF€üÑ’ö:7?©8 Þ©1Ö°p žÎ9ùE‘± H,/ƒt¬¾ÖazU›Én+õå—*×Dë=™Ãk1.—MñOêM²é9/_§£Ô€Gððc<ø1LšpxóµZž|Ôäzäø¹n ÷‚£K/ŽOSk=ô•s"ùá|ð)c ÉßÉx™£½Ñß|ºB§ê08ô:A×òI¨ýh6ò;'ÂjJL-ëýî,rS5$­vT[VÒ+»—êHvd¬*:IöÈaÍæ¹Þ)ëeÖõrê¼CNKŽÄõÀû|’ÂÛºvd`W8»LrìòªÔ—ÞrQ*C¥-T~›îÓÇÈG µœ.ÕBº_ãéL‰¨ŠoÞ«Ò8g§îþ=¦"˜óÔŠ‡Rf*m¯b_]'(ê5·ñl){5õ’›af‘­H÷htx;œÄA.=GFÞnÇò’òäÒJ|•'|})"µO¬‡Õ¿’b#gß·%¡uC©2‡–Ɔ~÷VAo˜È_Åáî@è{Oêõ›JOíïÐùŸ¨ /€¯ Ç9ŽÎBñ÷à ?¢%ÔŽ Úι/ÔRg¹ŸÒ@{s‚qk(&øÑ*}˜:AyÒÓ(ṉ Û·@æCàÕ`´Qø°ÍóÙ™)á 0Ué …á¡£tsYšò>É 2 MvÙÂm0 ËPg)zœšÎ!4¢õŸýü*¦™e7 » çò‡cÂá—Ã|fàîÈ#¥à¿OR>> jNäÔpÎh'Í£±˜¯×TÕXwSz‡ÝAv*dã­È Yà¤Ç€Ãiù:7“|²E©/y–K6Y³½®üÒÅ–ûLþxnã`]¥Ç¸÷ä-<üXË%•ÌçRN£j=£g‘_JHdYÍùÐÊ]¼ž]Ðéµ­EÇœkŸT~TÁÌØ8Œ½Kqáw×HN/s¡Ìïu†¾Õ¡È?I ÙÉ%ØåvÈox>ï¦~ÈÕ>©·Ìæ²|Y´Fl ½äÅH3½dç”Þ:Í¢We®•‡ÜÊ}˜‡€? -]å’Rzs¨øñÔWÓ™O¡<îSS¤¿i¶‘ì’Éš@ÊQ™§4,T~ø1NVJ ä¥uÙž<–< …´—™:Öëã,v™Kbmµ£22‹úØg´“€Õu<–ÓZλ¯×5´— ù㢖ԓHÅáºcÆA¯bÚ\vZ`‡8óL8 BØ a$?½°ùÀÈ*:_!/\—:ôͪG4£ö”ZøÛlÒY3Ê>ŠÃ7¨(%£eÜŒîòc±3ÙÔ?–ÂKM£möŠ”õ@ 'áÁ³ZO;y×¼—Ú$¹À½°HsÑ%®^¦éP´ÎX×GP9ÚÿÉçW—}9ˆ#sÇ׉ÿù‘Êyè¤uÍa§ª,öw ¸5݉n87‚s雪Ýö2¡ª‘÷ÚÓV“Ñ´wÏ9áìÛÑ 4‹Ü÷ÎÛoª·Í(wÛËÐP~ Ò¢ë t#"‹¼2mgèJtCÁêù$çŠêüBsGègäï?üü¸OñBbf´µíþ`Ô+a¦š}¶|ù øˆ]Hç¡ìɱriJÌï Žƒw(:•ý*?®ùzb}Ž·omLnÁ ) ´úŽÍDói$ÕççP½TPèÜÔ«µýh¥Ï+Ápøí‘³F“‹æôS‚Á§7âd<Ÿ.¡ÍHøhïrú™òÛjξ/¶m£Niå¡”HZ é­mPùÞˆœ9j£p“þDšØ@sñ5ùšýÎ|øLµ¤ÎO¦$Ýo‡ÀÑ¡ÐÃR˜‡?1n›é½Ùcr=¸üòJT‰ý~Õ†ÅÜlþ ?úúR˜•vâp®ÌáÀÕèçdŠÇ­ù{¨qe>‡üv ê9©+/Ú»ýýùãµ6eAê]qûÙiðÙx/oçJð÷è$åæ‹ÜNâA Çé )!gø)+k¹ ;œÚßgèÃKm› ȼ„r_Ù„h{*Pf&¼öDsg•82…çK^ §?ê,=†ö—Ž“ã«Nò}ð&4¸sȱŸ¬Andª‹ù@Æm\í‹%£e¡ää˜2Vw€“‘gšÉî" e—câ~ü˜_!%íÆšoÊ|ÒÂÅ6¸{+¡1÷ÆïŠô1AzÈT® ‘½•šùcŽ–íÜT ê)¤¸öàòL$:•„Ò“ÃÒüÖI]g-ÅÀÿÿ‹êÕm:ÇûdRG{ä)ÚC“jv½ Óµ«–îºX—ðiÌÔHä-*€zÖëä¬tPiôàê$©«M¡¥ˆQùà=ˆÑÌ{§ç4¢—JË ­¥«ä䇚ðîÏÉØïíüÀþN?ŠÂÍå€'{€–¿±å¥˜WI÷ê<5ú@^iWýE¿Ó7Z^ûKnd‘$ HjÙ†=þz–‘f#·G \…Ó ¦³-åèJ³h¢}&5¼×ZZI½)»´¥6õz½D^'½Ì%=ƒÚq%½ÇŽÜi¡¯ë±«’ÛÅ_ØwÿÉ㞯ˆ£#sÊ×Ήõù‘Èyã$r7¸)L9ä ¨2ÎWÐ-å¶r'»äFq}Sµ«àÇk[‡jC¯S_“ÈÔso8WÍtÛÛül&¹œà]íþßc«‰÷±Ç£­Ô€êÛhôÊWžÎýÃØá6Å3O‚Uiœ³Ë‰`-VÕKøËQp¾­ù7üWJ{Zx-àúyeêmã#óF½¤f¼¹® ï£-PÁëРH ·Á¢Á¨`Ü)xÏdŠ |•û|M(. ¶o°Ÿë!idAnØl4ž±rýèíQ¸³‘ÐŽ:TÁدÌö6·=¢Öøî=Hë7ì$Ê„9ÉÊ«±¯JñSšˆ¶›6R$ìÎ1ðcEmUçìjEw;‰A„ñÈþ‰àÞ“ÐKÛ³{„ÚòrÊBƒ¡³áyðùc¼Ø2|Цúìõ¼Hýߣm.÷GÆòS¬ÆÈ?G"Y ~Œ5áe6ÀÿùÕLš¤£+ð íiígøÑÝ—Ò̵«)<ÏᆙO51Ji¡Jy9 Z¶YdÔ{ÒIüi?è6\ºBMÍQggz!ŒCÎ˽ÝÉùõˆÇàsÜPRËehá©_ÿ½””EÜ’ßÃA?¯óPe³ÙtAæ…\3Ù#¿g Ã0î;9³$’YàG6(k]½¨Ëy.çH²i¦8¼ýðc,®­v^Rq4¼S:ü‘ÕªÁé‡Eþ˜& 9­LÕmúDÇ@_‹ÉE´·ŠlãüPe¤D~È«¼;ÑÓö“z+m®  6 àðcŽŒ—º2š³Ã›/Ò$z ¹¡¿œçn’G÷óhô¹Æúø‘N¡kkõUpf‘à øU•†Øtž·Ë«íÀÁÈ‘4RÒï ÒX¤¯þº™7s7Œ]h°32f/ u ¬7ùãýÈQø'j*s©‡½N—8¿žÖŠ:^NÈI­à=ÔÝúBSé:96½–+R_ß™ñ$>L±m~ûóGüØl¢#åg¥_èW#KY$©×ü^«æ5£'Ðü˜zPsê,)©+5©´Õrók49uÅøûúÇfg†i‚Œ5Ÿzø?°‘´:ÚSW扫çd€öÖÞ /œ×«¡Ñ¤Š—^‹i¹ '±CöÙ~ØK.§åÐvéöÝòxá+ïüíA¯û¾w‚®Üàá—NNw·›ÇÔ7/œ¨2Ï—Û-ê6wç¹—HΑoªvÜ·ÚÜÀ˜Ö†^U¤ÑFLw“sÊüf»›yfò‡ûMíüÍ„ânPŽZØïõ¨=ô5•ÓÕU*KlbÛÜF§Ÿý”ýßÎ'”½C‡é=5Â|_ BÜŽ:¹=q†R*êL£m4[ÑžF½„f¡¹‚ü >y><­ð!Ô Ë—Èòt—þ¢tÎf¡êø*?®û:Sbšü…kòJ´%ÝE6îB}¨ߤe8ÏüÝDÚ„±mk‚úÜ ÇL·ÿ~ä•CàÇ+; i¨Tuº~>Í9l"ÁýdÀœÞæ‚ðuñ$WV×#wø4ÞVÒEWi ]$Õx‰¥žÆ”³p6÷© ’v[îEù±Æ™izØRä÷_³i«}-m½{ZE¦ÈY™!ÖûU³{g½³ZÒë¥é$— ìL¶\¦±´×¤´¤œ˜ãÛ_ØwÿÉÃuŠ8^àÈüá«éÄù‡üÈè¼sÒ¸{Ý*¦„¹íÔF•e¾ân6·½»Ô ã†w‚s-ùïãßóÂV„Öçïc˜¸î|ç’nÛ™Éfû—ÃßÔÎ¥&4`;Í=ªAìm›Ái‰üQ92íoßÛä&l°*qN9Ñ?®Ñe8ÔIH•Ùÿd»*{ "35¥6¦-fƒó™]LÓ×¶yá—b?ïBª9ïÎWà*šBI/SQºoÀˆ¡‚_åÇ9ßXŠJãlXŠÅÕy#ÅÇz½i3cçô–ݧUPÄ­ÐïiPç¦Tä«×Ï»]é84¾È8ü·ó3åá ܺj‘¼þ¢ƒÐÒXüÛP ÛÞù5¯ùÖ;ñ•›‘Ò¢!é¶mÖn§ZÐãdØUEàÓ7Ótz¿$¹‚¯^ks™»Ÿ©–ßidòÑ $´Ÿ‘] 5?J9 BÝ4MdÃõ¡Ý i.vÚXœá™AÝiêgø1 9p¦] ‡8–äpÛ“°ö¦`´:s>p21f€4SÑÖ‚±e œyiM¨ßëÝÍ&"39"úý”Ÿà׎„ùÞîÜý¤b?72Rå1(Z!|O þ“’ÈYŠülÛ~Œ‚n"O¸¸ü g@áPÜŽßðMÞÊDZ–¦™ÚŸÔ›g³pY>…ŠM±2VÓc^-¥tâô’Ê[ )õ:ê.–;\O2éNžÂ?cn–€1%º´âöoyÅ×ÑYMoè{P­)Æ®¿­BVÈ}.YdºLÖ¾J¿ÓÕ:ùcôÔ†Pç‹PûyiΰÃSëÀz…ÈÅØå_¨žüBÝí=ZÊõƒÆÒ‰ Åm­ä=…ê{^6=#WµŠž–;R•àÇ×ü÷ˆ!T²?Ê;ÁxXuƒÀ÷–(Žx^%¤fzKr‚¾¥t‰².@ýyèíu*£4’£p|n0#òG/:ÈÎtÓÁ§¥˜‘á´Æ>#îk#Œ2›\ÔnZÎ;áíÐâ^s #e¼8šXKI ½G¿ÑI;²!… ‡µø¿w§üGĸë«ãÄþ‡üHì¸n%÷¼[ÑüdÞ9þt»ÈWÞ­ç6r»ïœ°ÎåoªvÄ·ÃܶEà|óS+šo˜ûÎlç€lûšf¯ÑôMí\pýã mmjKô½ÓÛ}ž$´yí`ä˜&L°*öuÎ8±íeÔyEU¡«§©1òG.JiOQWøàI`Iš~”³Á¹g9³™ƒ¤U´Ø …YßAk”ÏSn~Ü¡ïèŠÍF¥Á‚¯ßõù#)-·L¹1¯Nç£;67’vG*ÌWáúýŸìg£•´ƒÚR “é+}Þåv§ëøîÁ Ú r‘[Òb>RÀ¥÷ƒkVðã ’Øèü Z€DÓÜþèüõ…ZW}ËdèÕx‚ø4$ºfû`¬¶Q>ê¶âÊüü8FOQñ(m;“óx[Ã<ÿLµœN!S´MÁ}:NÑ^¬•èíid·ytÚt4‰eWâbHasÑîžØïÏ?~¡EŸáÇŸc&Ú©ôp[Ð"ÏDžéŽê=¡‹iA–Tž÷ój…¤g˜‹vÿ†Q|@¿›uΚ õ¶¸]ì$ªF ·k¹ôy<@zØÃ?H4Ù=ùS¾“ý\]òÉ8qBbð_Sú üÚdÙ”Aæ%±ëÀñ6ŬNǯ<Ék§’ˆ²„—JFM¥u™>F:È*QeÇãnóY¤‰þœã½ÚyôIű®‡ù? —ŸŠ#9Ü¢Ò_ÖJd~ËÃt¼ø^=¤ãå'eå$çå—Ô­{Ìù |ÒfÓä“z¿ÙlPú ¨ØdXMOy xÔΟ,$†7Y“è+Y¬·å)×–lº‰‡q pz*_äûüÉ&*ýýYï:_g…à<8S/Œþ0›BÈ>­ŽÆ’‘ÈGmÀ¼ºBÇè@#µ†¾S»#$ÃhFDycÖkå,w}\‹$Õš2‰zÚ£4‰KëEÍ¡£äš\ÖZ{»Ôz¹õˆ\Ò)Æ1¹ ßA~ÜLùm;Û3°¿cí&>¦24€Þr* G‰„½"àY}½* t¶ŽEÛrêNÍ~”GJ --ô)ï¥(Øi°Z«ñ°žÿXèL0M‘±ÆÁKM£uV4¯÷\Bþ8ZÞ×ÖÚÑÛè=ÖFÞP=Æi½]sH=‹ô»ÀN¤ìðž‘9—ýû ÒïxЬø÷°|eœ˜ÿN÷‚›×T6êVàGQ·„ÛÚݵîìù¦j›|sÍ9[Ž«§µÆ5âNp–›.vœ9l¸¡Üo»·³y×tÂV§}P¹®Ö¡ÊNM÷”­ oQØöµ¡(¥ ÞN"{ ºñ’R¨keo›Ën…Þì¢.øï¦Ð¨$6¿=ŒzÉÌrsÕ–£‡Ð—³Ðõ§¨Ñ¾ð.9\“^ÓŸèÿE„ K?ãúG5ŠBkí;ª°“òb?°©i*²vn¾Hà°×ÂΠ%T‹ê™„_éó·´yøq~;ÖxVjGÉx wã¢üõ£Ýë¡ówi5§j¶‰ó¥«>»}«œPØCë²\ÿxd[?ßÔãý .É!ÑæÓèózšq¸ý^b‹™{Gy')†³'àT=à”j©\àúKÚD{Mkó’'ÂÙçaÿS™þç_’Ñ › 9ü~´õ½rçÙ¥P­éеÔ—a CõðÞ©‘´zQN¨ÿ8žÌɡͫ±w7‚˜~~LEþúüÇw‚ü žx?ZñÚpÒñ>n ‰d³t×GR¾¾¨ä— \g< ý»g¾ÜÆý·üÛýÃæA$<m8ͳ°2fpJI‚¬±T Ãß7ÒÑú0àùÁˆ2‘£Bͯðq~ͳ8VÁ çUû¯,uù]ÎŒ¯(ÆG¡ÐÝd¹Dcþ~òÇ.¤»à RIŽcfÂsþƒïòA¬Ÿ´ÂüúI½þ¶,çF&?L¹+’ô&C¥4?Þê,8æg²\—Ën!¹ ‚=¸×ãÙà‡'F~AFú;œñµs¦"×Vç‡ÔÙh†MK®œ”[IW™§=T´˜nÔÉÚTÆK}¥/@κ HYÆ9‡£^õ&:ËÜ÷ôÜίÔIv닆r2½¤%‘_^Ë!-æ=ÓÝêx…u©œÑz„oÇ Ñc+sø%µ­l‹ÀþŽvþ0a)å?\)WU¢yu›öÖ­2KúèH´-.EJxí¯Q$¯;ô–nÂgG¯†Ðù@~l È90ªm±K·XI㊶‘r9¨¾V×qÞ)ÏñJ ¬áö^2m¯Éå¶Ü Ñ´ÝŽF=}Ëoƒz˜ÿÆqÛWù£O‚î@cüC~Är.:ÝnqÓÐç*;M5|e"Ð; ¾v ¨Td¼ƒ,¿€6ïy 4ª8/-§ƒ€™è¦ƒ¾lû ?ÚøÂ™¡v‰ÿÙheb´c4È;ýêôáñ}êOYàûýO“'悼éc ñŸÓ³ÃÙ¤ÞJw¬õß–î~=òŠ?Ãmp'É!«e¤¾•ܲ…«IEYŠÜõ î0Tõ!/ã6˿ݿûÎyg£‚øÉAîq|'Ó ZÁ$ÌãÍRŽ´³.ÐCh]1 +38gÚ_åX2•À«ËœwA>¿ A‘wß"Ñìäj|ŠÂÊbÙ 1ààgë:Mâ×?µ,çúRK‚Š‘¸ÍOÀ®“˜õ™¦å§Ï#‚YùxÚ‰"I?áÕðÏåw.(!½ÅšAÏÉ6䙹ÜSŠéVžÃ­pÖ|™cJéÁ±éï·AbXI©ß ÿý]l&ºÇ‡d†Æ×L2ꤪ٠×µ® Bþ˜¢ùåѨ6‡# ÷>jX¯»³Á} ——œ;#$¤ö-æZúD+ê y'»4½÷µÂxÙtŸÜÖ¸ú^VJmŽË}ø/‡·ñó£b`û;ÛLL*DEh =æ¨6$U¤^)= ~“eROj3M­Ë5‹N—:L#I ½ˆœWÞ©0rû¾@~¬u†™ðx ¨òÇ_ö¸¬ôþÒz2DDëê"ý^w{ç¼d^J¯¶îâÂ^-„æéI¬ùµv¥£ÈÈ\¹ÿOøñÔWÅ 82W}µ¾ñ¹î¿¸Îy'»»Æ­h*šçNkÇŸ!J¹ùÜî<7¼æ‹WU?œ?nÙÒP—þ;.Mlä©Î1ÓÏŽ4 ÁûÎëoª×ÚDâ¾´ÛBW£ÞöžÍï¤sغÁ¦GþI9MÄ`õ|sÚ‰kÀI„àºPúT «¡åDþè …6Ö£6…-¬ëç™ÌJ³ÃÖ&4i?\ùøù(¿£˜Ü’Þ ßd§?l*K ¨J0øQÂÓtð1<·å5þ7hÐkûœô`(÷M0 ô43Vþ|jC5Í×ÜÂp·%]¦Þøu«õ5Òr´.3O€·/Ô<–®Ñn$“|ëÓ÷¶Ôï´;‰’bóbøò¤H+qP¯%2Û$M”š:Ãù¿Fò¸K·@·íøç,¾z³MõÙ+SåœÜ¦2]¥ÄÜJ¿ _Û;:M@"YŽÓƸ2ŸC¥üOŠ¢ñ8ÛŽ~¦½ŸáGkŸšaàGL^Ê5Ñ¯Ðø®ÊÔzÝ~6"Ÿ×, µ[ÿJ´}^FÁ„[´ üX¤Þzwš„9óócWÁÈÄ8Å€{oÍß,5”æ’£\UÊ#-Ôá——ñ(~†ü³È&µÙƒô8¼N¸©„<’bãèMäT ½Dòi8ðc˜î«ÒJlYÈ‘ æ—ù<‡–qœã²7ÈýWÓÝXXG°†S }•Ñ¿ˆÐ«y’„CÊ\Ý®êmÑ7ðÀë¹¹T–Ãð !¹_BÍm¼ «g£iõI½î¶8’ÌId¬Vï/yÆ‹dŒô—Öœ_Þ€l±õ©<ŸÊý%ƒžá!ÜësHÈWºrLúûùâ¾jÎì‡2ðhÍÝúÚ¼ôÏÊ0P£8”}›v€ÂÒ?tž–áÒR{齟16ž¬à0ìržîÌFþ¨ ЄªËNªgÑ^Ž¡çµ€•rüxƒ4âxit¿\CVФó¥ÇGžñ°†îQH[É6ìï g»IH©4<Kz"Ê+¼\Èk¿é%9*çt±VÑò H~m!%13‘¤¶F“ †¯RÊCýàNòc3Õ ° ±J»ÁUm´7äð£9æã$•:êï‘—Ô éUÐÅœÖ £µ4œ„ч´öÛ Ð‡·X·‘ÿO®Ü÷µüèùó›¾JNPçÜ#¾sÙ)í®ssš:&²Û&àþÝünI·•»üxç ν¬»}[Ì)[ê’‡j‚ÕIuû:L/;ÊL2‡Ý{=õœ£–yç¹ÅV…Û­G=¬¡êN(÷®­DIlÛÛ¾²éMÐÏœ? tö:¡ìÔ ËÕ‘7R}ŽTú]¹gI‹}>ÂF³©‚õü`Ö€ç?ªÂÇ®£]4'às¬°"îÒä›·…k#ĈšãùÁʃvÚ·ö9u„*ïë6;ÔoUà¿ ³iàÎsÓo8W je‚Þçô ~œBúD‡h ½…ÛÉ]Í܇‹°E?‡¤°œ{N㨠F¡±så µžùv8ñ) ¯EþÈ@³ õ.æ¶4§>ü}<òß‘s»hÝ;¶á¼[¡¿mVó¹{%²8•L}Ð5:÷%×!YÕ£ïѺ× k¤iiBBKšp:¸á)pÌc)#=·I1?»?ÃξPfº]G‘à7ërl~4Á(åDÎÊÌ©x*õ¡’|º7œ£rnö?‘¸ =Þ¶N0ëÿíýWSÜÁ¶/&ˆ3“«"KN ÿóc¸d’²T]Í,»¹ŒT?~àðhçz=Ãsl<›:Hcº¯l8©Là¶ÿþ«!ôˆfs<°b2÷ï4–v×¶º—çsyŽŸÓ +\e#S8<´î¸sÜ÷¶VZ8pfWçãBÉt‰ÎQdœÎPã­ÓÚJ–qÝ€çä‹B}{ {ÜÁølB[nÚ|R¯«-ÎÞÁjèÂ!_óDé"A† òAgiA½~L–.ÜBbë)ô´×âiü'‡Rƒ£Ò®ÀZþ·ðMAö¬Ë—è{мƒÍLéä°tC2¨.ãeòkn䇹Z^ê‚Ãõ,_ã6ü¿Ao"ƒÖ‘hx`½QÎd÷•Üö¡Ÿe Õµûh:‡Ñ3p÷ÃäŒlÐÜÞÝ©4½n–wšPcêÿqÊ7Ç\³•á)3ÂÅí6ÑM(·­³Æ ²CÍP³Û½ñÏ”7—áªól¤†P’Jzp:ºXë°¯´ÓýkÌw©&7åÞðæ/ùO´+«Ö–É2_ÛAWsë]¢?Ë/ÒBÇêy°­èþœ×@÷]ŽMÃë vÖ¹W¨ ÝœêÉfêkwÓ"¾/·´¥þ&«d…fðëQ/‘NDkè]Y+Ý9—>ÎRÛÖvùèó«%ÆÅj*‚5uŸË"ïg”È^äéêèUh¶ÖœÈ7‘t°œ—ÖOÊk&y/øj–‹ºB1n~ôþÄÙÈhûÑï4Ã^“üÞmí-³%œ>–·:^x7¼4^E¯•®æ^8­¬ñ嵜¢1´Í§Bt¾"© zùã¸ë+øÑçWg‘3üãϯŽ:9ÝinZS߸®ÿþ«U¾tnz·ž»ÁæFüÆÏ¯ŽûV¡fÔ ø­7ï]u8çÌB;ɬ7WÝëNðÔþ:æ=u¤ ¶&f© DÞhå¼sÎÚLÙÆ·¬R ¼;—[;ûˆÈ§ ™µàŸ7PA?]Ïž ápÍ Áÿ;^“Ú´öV0êE6‹Í ›:´…Ž€n·À‘Öбç üxG\žîÙ0pÖµþ*?NúÚR8šfCÀ‡wÀ>.Hùè¥ÍõëEÅø<4/%üxF8ëÙþ«ÿ_}ÿî8·0]wîIgá^ÙÁè]yŠ÷8¾ÜÇ£ÀÏPÔ|‹¦S}ÊaÛ8_ºêã8‹@™óSL,:Ý·µ?6SgŽÀa‘BªðZðfÊ­´8àÞ¤|Ò&þìõó4N5Ó€nR€§7¯£ µñ{Œ_T𣯩jžò"®‡”49a> ¤$tÁ†Åìßú ?ºúÔŒB‚ ï^ÊaAŒ:¥ØÜêŒðþ«pΑ9ô{5Z8/ +Í5'Aê­wÅÎ.G™¡¸?E~Ù~å®’\NÈT(ÊI.+õ‘š€¾ñ@š1Ðçé¼Ð–°ßéqx÷¶ ‰¶gDò[ÍÛ‘!¯ÒÎíȃ¥¨†Ð¦ºO¯â\9Áñ ià:~y²ãQ]:Œ´ýq½®«ìÆÊÿü`Y¾L"ce‰ä@¦é¨35’·UÃzå’ÿ>±üLܘo@Ÿ×bý £Õ¦é'-lg“b=\FÆêT±˜žó"!Ý‘ŽbÊ]ªõ¶ìв ýO©'¸?´¹.ÖÐi$¤$RŒûûúÇ_Mg’w¾@µ1ƒým$䙣2XiS™(cµ|~2]©S´´“aPØ%w?÷çWð5)ø%£öõ&8›ÜÇT†óPj"Ë©§Ý@K¸°¾ÔFàÇJ¡Y½½p^<].Ï5š¾”…ò='ãæüŒó [ÓŽìoäÆ>( ý)…ÊSK/Ž.ÓINOÈqð£9ˆ¹I¦§ÄÑþHš4Ž¥ˆàôw”ɱëGÏ®?úÙâ´¹nøñX~ôîi#ð<²ËkÐr‚÷ÄËêÕñêê&®îÅТ R<½A3i£†Š( ‡²Ó¾°ïþ“ÇÌU¨À‘9ã+ã|íH_:¢98éÝEnNÓÙL$¿Ê<‰ ½gïyã4¤WD^ó÷RFNƒÂ×ç¿ø%òÇ:ÌtÇ ï¿m‹p^¾†Ñh€lº“^ðR$ƒrò+ç’Þ¨é1Y£ P©‘$€ ¶âv Ö´ÑJ8éË·íß÷g>òÕvæÐ+¬ŠûTôîfSÒM'ô•4’}ÐûF^Kër(óoÒF~ÔqQüoù•? 7•NNÍëMv¶º–Ëq*îFme5¶ûè(ÿª—4©Ž²E«y¯õ–Fö’ê.y¥5õ†l–ìÐŒö zi Ú®ýêl6Ñ(v¯ôŠ‹Ó;›MŠ{¿êí®±4®ÞÐ÷Ò_£ë üi’ÇX %¹4òG8Þ êD¦9ü=] äÇ&g¹ékËc½w@¢cÃiQÏóÚ"i—cÖûY‹y÷½WZÇû^ I*/¡–Õd’H÷bMŸµC‘ƒSvŽeƒÞøß8®ø’}ô&“¾ŠNÒÈÎ '–»ÕÍkÚ˜ŽÿÓÑi¾”n ·¨;Ã}ãçÄ7UÛëëlþ´ù¡a vÌ}÷¬3Ù™hºÙÌp³Ö½ëÜÿ¦z%Í ªF lzò^XÃ>¶­îb[€.™¦´=lc}õ]‚ÿ:Ê9'3æTþ 4¹¿4÷„6ýh÷`=í£2Š SoklƉYgöÙ´¨6µ!qì¦ ’oBkÐKr¹]BžˆH!©ËWùqÙ——âÑDûÆ>¥âðá©(=]?~1r!‰¯ƒã\ƒ¯¨IS1Í¿ú™]O7 Ô¼CÀ•âyôÜŽ¡´Ô€2ðD$üü œNƒ,¯AÎáT‚2ÛŠ_üù×}ý@ì4¼{(Οüh6m%ÿ›ŽC+šð;šzçAùa4ºÿ Y1Õgß Â)mj"µEæÑàÇA¤¶º Hz@¥yÀK¸*à hßÔ-MìS[í³?ÿ£–ï¹;ù#4Ï„/ŽÉáy™ÿ-fÈU}¹$x’†ÇÀã]A¿s(Ñðw*õFŠÚH=Í>ç÷ óàv´ƒ0þ§»§q:¾§q :À?Hb¹( 4¦V„¯$%e%ÿÀ¡XÑÚVÈ]næßÞ_Ý=ƒÝÐ Ô:¹—Ç‚Fó8.X4›—I^­µuµnæÙœCÂÊhxðؼw@û3QÚäùÁqnxT;B>ôj·ò‚{Èb±|—ëQ}«cô²Ö”Ç\XÊË ÎÍŒ±<Ê7q†MHšÃÍÏŸÔ‹üQ˜ÿø4·+o#ê×[ZJ# á Ѽz]&!<äò’B<}^ùc/;b¥Úx!°Ö)¸Øßàœjðux³2ÜÔf§ûÜ_Ú#³e”á2:Y«èT§=dœÔOâÊvTìÆ/Àë(üÚ>2°Þg§{~@úPY™LµíŸ´‹kù{)䪜ÐâPç;êzUô¬WHGc†~„k¨Ã·‘¯E?zÉLgµ‰Ná©ÖÇ#.EQ)ª$÷z€ºUôªÄÒ]ÚI— ­‹5¬N“ãxVªhJùƒ¢óIìí4˜[~ôüà*g–éjkÀ­Œ…¬µO¤ g¼ê2[ÊLÙ©õ´©wÞ[¥¼ÞêÊ/Ò\& £Wî¿jO™°ú£qx»å ûî?yÜòåøèýWW|åÿqþxç;ê$v7¸YM{óØi?ò»IÜ î|÷‰÷‹ŸŠþX‡ÄpÆVÆ…‡óþÕÄ6[œÎÎ3ÄÖ5sÌf—Üo{OW!s†š äáS{ÇþäsOÛ4Ç\7eím›â«÷"ýë¨~Ü4ki-]ßmýðóÃýÜÿîÝÔü(ˆüñÊä ÖóçÌóùÃÿþ-¨özÚøùÆÿþ’=Xo×ltJJlÓ¯ò㬯´y …ÊeÁèEõ_ÁºüPé5“WPBüiU…‹Ìõ•>·qKA÷‚ ' —¯øÑ:8Š{Ó~@¹ÍXг%ÿ]ÌémçÂjòrB‘ÿ G)¤¢•à‡Kõ¨T¬3Ò\ ~„àY Ò¨óì§)ôÆÙòæsïZÎàd3Õé)%å!p;1NuP-'=Âßì§s¦š‰$˸;Z¹ ­÷_AÏ$fA¿ùŸáG7ß=w²ÝB±¡-¹G?*€`©P¡(ô?$—ÏCãp"$’5 ýBxÿ;/û›MNÐ{_޹?ÛIð©ÞwXŸRwìòL|–kHVÙ/³4œ–‘5\ErÈ*®Ï‚'à̸±±mÐO‘£»þ·`¶§ð<’¢ÊXºJ“8™d”­<ù#"üøÝb¤—Ð`J2Nχð§È+‘ÐóCÎ ï¿zc;Ü•_ñ’ä=n- %2ûd´ÎÒWzþ¹<àR_q¾€÷—üD³ëg-1í?å‘MÀ9ø%*¶æöH|ox¡ –¶Ò”ÃHtoï™,Ò+È3•%›®æ Ly¬¢½ü˜_ƒ&ìÍ¿ÇÎWÌRVÆzm͹=\ÞÞ,½Ôhrÿ[ᵣƑÖètý]†J ýAãË.îÀA«†á*¨C`½®Îj÷.UQGPiK}mjP}t>&òÁ¹¦Í¼·zL#yô„Ö|zFNJ-ŽÊÍø2èšB؆öï÷}w6™8X»y‘ÊÏók¨ŒÄôÊu‘²¢ê|¯s5šnÓT:S2k8ï 7з|”‚°±ú»B1Ž~ôþÝ©¦–­‚ú3ø1†ÒõÞ-,[庌?jjUo¿wU yõ)Çò¢iZM ~EæÞm{c§¸Õþý±ÿÞqËWú£ëçú*9iþqþ8ê$s×»LCsÝi‡*S?²»¹ÜU®qã8{¿©ÚßPsÜ?âÂ=-4bÔë,1¿ÙfàÇr7„ûò›ê¥4Û¨ͳY±ëKS[{Ŷwò»Ú2´Ã<2õì{›Ñ$ VÏÛ8û³f74î:¦ôó;¬ËBTÌž§1Ø?È¿e£Ùœ68÷[³Ôœ³9éOhÑR¬ˆ{H£-è>œu övg—eŠE‘¨Y0>¿JF‰h†}g_S6h`jú.àù^Ô ó3œ#/ hÐú±TŸj™¯Ým×ÑÍO'‘?úÑE¬m¢‘Ø5?Beûƒ•ØáéX»ÀÒØe³À–B¶ì“æm_Oç­ÇK‘~²ƒ–)‘gêÐOÈÍ‘¶ÊQwn ß¿$¸€üá¿j±˜ˆÚ,Ÿ}Ëc>§¡©~Dá‰H‡0ju@rcäRñyzó†·rÎÌ;A¾ßi<| ù£­ü ?úø^¸}ìFìÃaP¬„“ÿîºøÜƒKC‹]®€üq(à½-!9ïøùV0ž+áÅ·:A÷îz·/òGe|Ï\øû’ü'²ÊvÊÊg¸®d‘K2VÃhn¹ÀÅ¥ˆ,‡R¾"…Óm~ âß­µ¥ƒô8šûÐÆ…_I~ „†¦S´€ÓIjðc„$ÔZU‡ê#ÞÃÙ$¼Læøœ—Oñ+9æ¢óð“Š]üÔu¸–8ÈTåù"½ç¾²@Rr(¤‹ô™žÓ»:\Î@ï¿Cþ(À¯©#ÍM^ÇÛim2¿}R¯·MÊ>¡ýXe½øÝáq2L~•AîBO³èM™«;‘*HÝÏ¿òp÷ÓÑ^ÿÏìÃ!èïw,ÿékçô‚£.µ­ÇÅø'[œ.ñ馡Á‰_dŒvUÕÌzH'k'ð£“öÑðàFcnMó¿ yfz`½±Î^÷•Ǭv¡Æ2‘úY‡Çr½¦t˜Ü”Ӛ˻£»•¼RzJ|^ ]#;¤‡†w8Ñ9HImÇ~"äoÎ6£’2 Ó¾â{ðv™$©×<ë¯;ä¶ øÉ$©ÁLº@îÈI½Ä¥4´Ü¡xÈ2¥±*òs;ZÈíÎ2Ó Îv:üç,šfoI”år)n¹vÖŽÞ&ï¥ó†ê9Îè%Ð:šADÏ`ÕÏ?òÓìÈxvÃöÝòøË÷½ó÷O}á«úßßÉ9ã”r·¹ÅL-ãºÝÿûS¹ÜïÝ)î'ü7þüÁ#¾™æ¢õÿôÁäT‘–šwnxwrcKÛß 4»\Çý¶œ”Àì‡óÜ`SÓ\øù>ö1òh:÷’ñ#óÜ4·×l¡¯^Kþ×ñ“³Î¹ ~l‚çn ÞGµ°›‹Sq{:µÚï‚!sl$›Ë~íê‚ÿi~7Gá°þ€>_¢åtúÙŠ^Ò3z‡þÊuφ?BR§`世ÛPH/ey-²m´§ ¦Î”üXOQ¡ùÉ¡|S0®íMÐ眃-Ü\Ÿ%ù2Ö<Šˆ:²BUBõˆ§\?ßOïñÿýÏ[°u¿ø“…oú–;7lZÞ‚È„yˆCo æàËæ”™úp'TÜBgñkÆr¸t•ÆÚ¼&ÔgZ™Û)išâì>îóî@+‚ù~þà6:iš™g<ž97@ËVQü¿'ùcÓgøÑÁ÷Èe×RD¢(”ævr êÑê„?ç¾¶ ¼¼4èÃ92Í*šIËh€Ùæl Ro£;Y­ø7ާb&Î`Ä÷!æÚ’TNÈp}"Åà™ËKu¤…êþ;†x!ôVÿ[m<›#Hã»çmL0(#çv ÌpzL38‘D—Åh‹oîfo‰„y‰GIi/9ªÜÔÙšH¯Ëðh$w”¤z¥7Y·óSÿ_Pá¿ß~½Ò×ÙçÔ‚/S.ž&†No–ÈlᤧŒ×ÆúVJAŸ‡ƒ­¥¡ŽÓ|=ý_ñJ6‰XožsÖ}B¥0&¨¡œ –ömàœºO³joy…Nï]ß ”y™ÜÐ[ò@æKŽÎõùOæ§µÍmÍÀþvpö™g6ÿ>NòI> M¹D¼ºE{ƒK¤#ú;Ä\£IuˆD×(šTÂk yKøUC©ÅhïG÷_3C D˸×ÐF;CþqogÅ‘ñÞ4܃»Cp'¸‚Mp‚'‚»;Á‚»»»»»»Kp úνûþÈ0<&ûy»Ûó!»3u«««Î÷œî®ªòžñzÉZ¹-Žþ¦%t„·ÍKæ÷*èVNçÖš^H¯£nCŠÌA.X׃ôß8®új:ïgg]ó•rB6 âÓ#–³ÏÉï.¬¿ûÈñ϶ïË~Tsç»ì&þ‡ùc§o¾¹b¤ ð–ùh–¹é¦?¶˜Žv¨™oŽºçûÿ¨¼œæ5¢ù6­§2ÔɾµÅœ4îY8›PÖ³í›î‹{aüëèèœuŒ½J‡~¢*tŠêòPªH•ì \ÿ=H$‰ý+ÎÛÄ6Uˆö¯†ó9`K«hg€J› q–@›ÓmòØ¿TJ‚~Úú‹üXïûž|4y%:ÜüÊÕ|h¿:½F‰ÅÓ(ý‚OjJ]LÐyAænC¸›ÎÈÖ—Ñ[¿?ÒÂAÄH ~ø÷á7!'øghOF©ùl¥Ï>ÿxì›ä܇OÝ€ÖŠZ~M÷mupí(5ç{þ9)PFæ¥Hv§áÕýóóŽQžl“»ÿÇ·NiS™þ¦(<yoòGK-ˆjxÜ´2¡Ä?—#Ôl hô²ØIûÎzQ0üøÍ÷Øi·Q žÏ9NàýÝï©Eæ®È…ø1þ>¾õœeΉtâZ埅yºšÃΔ åp»Ø!ЊT¼˜p¾ ~m‡Væ:’Mö!¼”,²ê\]&r~JÉÁŽn|ŠÇqO›À¦ýdþà› üH€ÏM}Çé%£Œå~’Y_Híw:‰&¬ìálœŒÏ"-¨Œàxp7» •¸ÒýËÖCËßõ϶D>ÚB1d°¬TSº‚¯u‹nÖ6È ?HÙÎå P øüý&ÞM}ibùƒýÀÔPÚMÔ =c5=çÍò‡ ?‘. $Õ;2N‡ÈÔ6ƒžS ÌY8ß(â“_ù‘½ú®¬Í¾fÎx8??:€ÝÝl r é4¾Æ–a2M›hmÂÒ†RO~ÓuzdîÁÞ–p8|) xWÞDçû~Æ5mLÅdÍ´¡9*øÎ˯QnÍåÓ=È\)t»°A£ëjÔ):x~-º›âÙ&öý~‹œÃÆ£hèm]è2'Áhj#µ¼RH0£‘?†Ëx´\/ÍZeÑîYGhA©¡_Ë_ É,?ËZÁáü_yGœ¦›Í$ÛÝ¿2¾¨e¼ûÚ4¿-Å´‘vÖ-Þ /‹—É«£ë8¿—LÉ!qô2ÆðFÛýÔã˜Çnú̸ûOO|Õ÷«Ó½ðUú·ŸŸÇvÎ8…ÝynSËÜ ÌÿXàËëÆwk»£ÜXn’øþÕ!ßsÁþŸŸªÓã39ݵÎf3ù£«Ùàîq¾´sÅÇÇ&,ÜÇ2(én*EÍlTªæ|üQ„ÒÛ°H§'m®>ÿèälu¾¶>¾‡ÿ \é#* ~§\±àó‡ýÄ ”„×ãw¾á0 DeèuDnÄe Æ¡ÂÙ}³9 çåu ½ä}ôZzæ“õ¯æƒFþsãðv¤€z| Ÿ†2ó^®+iä LTWÓÈq®&•e)ò‡pf|òü-;ÖF±A³pJð#:ý˜?¸’ñ ôŒœRRË,(r:èicí~¬E¢IŠóΉ }W Î+àÅËÑgïG%.v£¡½."oe?* ÅâÉdÙ"e9´tÑqêx{õ˜6“óÜVjÉ x‘°Ü%>áeì¿OÛÉ”ù¨¼¦63øq­Ò™;óTºÅ[d†Œ]œMAW“èEYX¿¤·d׿x·áú°2‹‘|Ëž}WÖIðc= ßùÒLuî ê?å§2Icjaðc¾vIªêäŽfÒ¿^äV<µ_ËQØã4ê]ySœîK*kÚ*ÊphOÐuΫžWSçÈKùSóƒûõ•&×còXsáÚ”– #Èrˆ¢Úú¶Î»óýÕÙkÂQô¶¹¤’š„ŠHz¯„žÕ1ºMæÊUd™ÎZNâÏx §h©£åäzæ%xŠÂÔ”ëÑîwüØïL7#lašAíÐO—Ú5’Åû[;¡—<—òÚNçè'd.üÓ#œ³ÖIâŽw ˜*æI`ý«É¾°nq÷7·“Knô¸þîV$†™ö°5 •¥C&ŽIé.t†›Zv™ŒüñÆùgëï&4›àšÎ€òÛ1 [Úëö'¢;Ù–£26³­kwØ”¦xˆJ¬äœrž™SP¬·ô#Üó *“ ‚™lwèçNòÏЮNËm|›Òf A‰/ÜUæ õ¿qµöÒü¹J5é<Ý‚«ðÏ2f.O§mB|VvZ‚ûWñàíçÛÈÈ1­x3òï°h¿‡[žDþ»ðë¡h›©¥ è­ëLÕ/Ô°—[h ÔÏ¿6w 2!F@:äñ\#u¨·…æAgŸBñ{P:;Þù\êÚå›ìܵQxÎ%9MEIl°vý~”¤îÜœ•·‚HGñih+øáò\7Ø]Jb8QLzz Î…Ü…Ôj€ã7H ; íBs§p þ–÷ÞL,Ìú…æÃn¾“nO»âw~…öFÁÕhICé!Õ@úH„q?®q-ÒÉHNÈéà×× ÌMàÇKºe6òþî·øQ­½•wã¼Þ‚E'nVs-‰„üÑIŸJzYÄä{ü:ÅyåcÜ‹gØ;&3Nà´þWRóp0è8Zy0Ç—2†»H,µZSëédŽ"%æá¬|ƒrX™Ç_£çÜp¶}TâZ÷©€¶ŠˆsYÁu¯Þò/Õ‘?è"=¢³t±¶–Û\ùÿ7lxnÇ—Pæ*$Äa4 HþøÎÆäÂð¨!Î`5]à#2 d-§£:V‹ oÍѲ›{Jb½ŠÖÖOL+Àø·öý'}Mpg͡ܥ¸2϶i)¼œ”ášN¿•yÈ14±VÔ}:U•šÒ~<¾à¾Ü“##+¥å=”ñƒýD&:ûÜÓT… üøNfÐt{‘vrêµÒÙòBæiCï/]¡¡½Œz\¢®)u‡ÔB‚«ËOyΪ¼íúÁû»EæêT}ê%§£§6·„öZêUî –5h¿Ÿ5Ÿ^Ц:V i?-.-5®¼€bü oX“ºq3ùÁüó‰fŠ-JsàÒ¶Òf;B¾ö^è9/{¥°ÞÔùzÏ{ã%órymô çôÊé© ¡ôM£ý¶òÌf´ýOžDpŠ;ÉßµÌ9_C'ê¿É¯'N÷¹[Ì´7aÜÍ?Oê–u+¹‹Ü‡NìOVxøÿ>ÖøV™WHØM©"<ï>“Ôdtw8»áG™)fÑ nOˆÏM(KçQâ[IMm( çtÚÚpÌ…l{ûÂj°où|z´u. Ć÷ŽÏµÁ¤§ô-ûïü'²Çi"\á*ÊKàq"Û†¼Sòù#‰™f®Ø_1’÷‚> X‡qÎáù Eã_É"3”§;6´£õÿ"?.ùz!§Œ´¥„_<þ 7¶8œÊ@ªÉO)x=¥¥ñ¨gšjò}áœW¸£@ȦøÙKÐô„4i½1|ô xÇ:šg€t‡‘L¢ž›¨7Õ¶?}veËݾ’ô§%Áç'¢·¶3µ¦ëÔ‰¯ÃíOãf8ëÅР‹h‡UHŠ)7O±?˜PÁÔ2‰SÌ”†Þgæáhýóþ·ÁÅo@ܰ¼ƒRØ©&¶¬çZœ Ya Ò@°#ÅFo nýÄf>6ƒíF´ÎFnÊ18"/•F€áÍsRO•ø/ቜ’‹#Ä×bºâç±™è RÞ~·“€\TÚÿ¼™Ëó#hî1œûÁÀúWÛ¥¯FÕïå·”Â2JjQêdº<‹û[cƒÞHá*rmCÊÉ‹ø(1 ­6‹KÙÝÏëß>õhUåÏCBJÉ÷ù:òÇTŽ‚´wÂ9äý«Xp;×) ¸µŽkó>Šç¼S~âP2T·éi]©‡´?´½ƒT‚êw᯹-ŸâG8ŸCþÕ LÅÊ›üQ‚ý»¡tá6Ñ]^!k¥¡ìCþ¸¤R_ÈZ=#Q¿ ÈçÁª¼<úF^sM~eO½+벯¢3Š" =Ì jd¿¥ür9#‘þ˜¯1A“iQ]«“µ—Œ“Ÿµƒª=†ðW²YîoRzÿFõ@g¶{W/7¥N²„JZÇpFä5Ö¾"ºY¿óÄ»¦¡¼Üz´ËÖíIS¢Žþùœ'àŠZزïÎwš³ÏdDšÍïJqºiKˆz?éA-²®”ˆ^'í¦þõÒ©’KKjB)¡>¹‹üqã±$XÖŠþü`þà Ó×– ¡ŸÎ²—ä;/¢×ü§«@ˇZÑ;æ=ÐÆ^o=Çy¼tZ[ JT=H£ë'æFO¼G÷ÌÿâùÇC_çýZ ×}9œ½…ôéÏ9áäs÷¸yL!óÖñ÷®•¾äny7;Ƚí„ýì[ÁÛ}ýÍn[Ž6<þZSÒ4tŸ9³Í(Û|šå7ü?ªçæ:õ'ÿ:éûàCKÛ§6“Â=b{P)›Ë³WmÔ>ÿèåìvÂ[ÃÀü_¡Fw©2÷‚"ƱS¨èÔ ªQ‹FXkËÙ{!(/¼™d#!¼…‡^ ¿…$Ò–ž@¯#ðOЋè Ôc›½53uþ"?Nû*Ñ×´Â*Å?#+çÁŸ|àÜ¯¡ü„ðÿ…s+ZÐ$Sú ç<Û­KÏ‘:üë'n¤Wv2¥Ãï&â¹Ü+±ƒäµ‘ŽÓBä„•àG¤¹æŸ]Yf¿oƒм–~¢Ä`mð£\þª=þ–pu¨Ôää_d%˜àñp›ÝxÁÔ2£“Çü Æ&à È›ÁÞº mYòïëµ—~µkÍ xÇ¢pâþT·€z"É>±qpmÃ6¾×î» ¿™%‡âyT•þ¤ÈÐÖ89×àUÔœ÷ózîÈ‘9ûŸÏ¬UOÀ1ì4Ëœ©AÊ›ë´Q›ox/ãúüœ ùæ@¾(#¯x 4úš”’]Õx§â£ԭøäãPé¡öä'k±%†×Ɇ«ÿ¾†OóLkÇÿúº#$ŽFÓ†Ú^2Inñï»èßÿüÜ=ËXŽ òv®Y¿ä¡íFG(*§ç Ðï‹äÉ™ ÕŒ$þ•àoë4­]äòL9ÙË àƒÏÀN /õ²þUc›‡ à_vÂ¥ Bû›WÉFé‚s‹%Ï A“×럲H½…’ÚðÏ<‰/ Ÿ©àýûWìÃgDåÙГFÐïºô»Éü…öpóÒUjOi(ñÀ@þ¨B1y0ÆjV­>L‹vÐ$èeq[͹ö™²^ùf9>ŠZeCFšGÉ饭 í?HµxhR—ËA16 ¼s`Ê,šŠŸ1<Ж4Áy…ÜNS´/^µÛ„’*€±éoø¸+f¸y'\ Ù‹’& e¯Bööú´´ß}oÜ v=Åâ±\ ÊះRåÄÓ¾Õ„GR)° ?wÆ¿bÿúÀ ÀCàÕ³ÙY¤¼in7ÛõЉœ¶ÎÜpëÀóó \HâÉ~ä»R@VreèýLœ·ÿÝÎU<ühÂ}ít7ëž„‡ðï5%.@mþ¦Q["Ë/…4Š6Ðź ¹0­„…JÇGbÚŠ´óç©ìzû‡åMw_Ú†¨ýS$®¥\š““Ÿ"ñø ÷Ñaú@ê¸ýÝ\X*Ëþêû=Ÿä»øéch—Á¦áGåu?2°Ýýhõ‘t–÷ö¯í‚:þÌ¡'Å¿ÛìJ®"9u7Ï++!/@B::½°ïçŸðU 𣞷p´u_PÿxÔ[“k)™ GÞBci~ä­áÚYFHkd¯s|„›s{ð#"ߦ¾Ïsœ5î#ªÀ¯è7Ê++©¯=OWy²žÔÆÚ^ËMïÝÖ½úT3ê89Œ”sê\“#¡'Ü@û¥X¶™}Ÿ·:;RF*æۢ’ÜK¥[tŒ^Fž‰å}§=@¸½(©¯Ü’åšD²j$¹IqFßR)ªÆhòÏ?ú›ßàæÃŒ¡yv»ÔñÞ .–4º_"y“µ¯wÛûÊ«á•RWJá“òhf!=KKi¶õ;ìUP&è:ÿ㯠óþNÐ%_y'è›!=â#!çs'"0GÿÛ}K}IÝ7Nf·•{ωúßßÝæ›lŽÙbô”9µ2¹·œ¶NSÁV?»§þáüóB浡 öŒú¬çë.¼¿ûÜ·«­/Äû×îq"Xÿn÷áàý´"´!Õµ+¡É¨!jü=u´QleܺMA¨æ³ÃæGO{ Á‘êÀÏ_&Fò8‹$’Î!O¤Âg ü"?¶øÊƒ3¬å­ ÌVܳYÐÓÛSŒü‰ÐÛhÑ–ÐÔzÔë z´t«" @¿>E'ß­bA s8î~î†O…ZO¦¦T9ÿâgÊ:ç›ï<¶1x9åEFM±è‘­Zl¥®|€Q3øà'øîÝ <¯™–øàÆSËŒNÓ I%w9öÒ¨k J‚öó¯5ÒÎ47wx‡ÝAëÁ¾”2°ŽX5šìóó¦‡]Ká¡l8!4hU ì^³r\>ˆ æß!p÷â$È kñyËñwë@×?ͶOî_m?Æ ÷¥Ö/àù:uGÓBÑkJÙ)ƒõ¾ä“Í\]ŠÈ4®Ã7‘tvr|Â`®iŸ˜ «KGpoƒ¿ƒ2#¹ïå¾àÇ$N V å‘p·Q¡¡ ôra6 %Ë8§æ|›ß¢Æ÷lZZïÿ¨ÄÉî3ÛD{~ôã²|ŠXÊ"‰Á¯¸‡ÎЇÚU7j59¤šìá’ü’ª"Ï(Ø´‘†€ï?ØÛçÜ|½ Ò2zÈëdŒ4•ß8´<Õ?Q¿+ÒOçÊVn* õ2jÕÉn _©Á–ÞïsËWË™H侌ÏüŽ»"D’YÒT³kV™'S´µ¾’Ü:H{jé'M´#ÍIîÉvÖ#}Ü"¦aïÊ[èt0 ·¡Ú2ÙÔðxn‡s¬È'4¿wNOø±ZŽ#5Ü@þ¨Xÿê&ÿ‰kãÙ&ð›ÿWÞÎ~–r"E÷¤¿8]±•ä Ç‹¼p9«j–U'"/õ’ûrJHi-çÐWwPŒî^ü²ÿÿ•·ÍÙhæØ¼H3þUMçÚ…’Å‹á—uOçIXïðã”÷LËy¥ÕH%¯ ¦Õ’KoûgÙÚæT^æӼό»ÿäqßWøƒ•Яú*ýÛó?â;ëÁ¥nISÞ8n›ÀûWéÜÜn·›{× ïlÿG¥mð Gþø£ýÊBsLtÖíàL3 l3ÓÓ¬wþÃz– ¬¿ëχ©8zÐ3Û͉áîD‰dÃØv‡ìSÚOŽÎv'©½ nœ‚^þ …/ÏЛ*Øåùç¿Ã—¤ö©)kÝ”Ï Â™æ1–ÃC¯…£>d‘oP"nH~Š|Ý‹Eù)5Mú"?ÎøÊ²;x“ãs-e-oÛ„~1†ÓH™Â“åès)í®{xøA2gii?Çá½ó´3çãçî=[iÁ‡s›Œú¦ˆ2CfK~ÆM¡|G´³ÎÖúr‹”š H%f®ŒÚ=æE|ȿΟùøÝî¶òèmŒ®:ðÓè:ï„â7’AN^ê8Mª/¤›î@I¿I ½RZÁ- á ¨á \¥‡ìÕyÁר†ö(Êg¡³òx¸¼¯äˆ´ÔhšSËLm«‘´ºNÓ¡È]¤ƒ6Òø²ôhÇ_É °ÿ94ñ]y«œ³îS*î7¦†²ÞŽ‘ÓZƒÉu8ô}£æôNësu½¤ºS.‚Ïä´dD þÌÁS”ζ·5ßoW粉Xǧ#‘ *+wPŸµÚ ® ¢ÎÔœ Ij]¨±u‚<—šZ «ÊÉÿ÷þÕOô+×ýàùùEg¡écÓÃõC’ßaWI>O¼f ÑY)Wµœ¶ñŽy A¹žH1¹¼4šOKH4݊Ѽ. œÉ#:gf|fÜý'ƒ¾Œ÷»H#IþM~Dr¶:YÜ%n6“ÍÜ ¼µÑÙMì–vÛ»×äÿpÿÁE¾f—- EH ·:Í|mâº+œQÈyMM3iäŸÝ¿ªgNãj¯±™p…ŠS KÔÌ!wt;¼½erØM6âçbÿëèá¬qbÛ·P¹;ТßÁ‘JÜŽÒÐ÷v3töµ£ÐÇÁ6²­nƒ{îôe&˜ ¶8 O¤÷wÁI‡áÇ… Ûš‹ƒ)AÑ48û×–…_fýó,jòÐ#üQšIÃ(+_¥9ð@kJzƒ ¡ƒ¾çôîV„†'Ñ ²Ô õhL¹»¨~Çþ{G;¡Í+‰02æP#*fÿìüÁ¾íN8ŠeÎAQhþ<°¿`nƒæœE¾jâùx±–!AÉ̳8ƒÛ0ŸÓÀüL'æq“§Ý~¡*Tô}†VüË¿Š'¶çáýø~9Î!'¹Õ8'î¾§n»ŒÂñl.Å) “‘}û"4朎¤ÌG?ƒû€X9x2?Õø÷1žeŽ;Aï=¯r[ƒµ¥;5NäŸùc%ƒÿQ¢Éaé®·¤´¬ájRHæâßþŠ×Êg¹?´÷L¼ gü•ëïÍ)5ÃÏíä?KÇqlI#3y„”Ð(ZMëÎÀüÁˆ²õOVíãÈ2Ž#¡uê™þ̶¤H© y)2ÚEŠ Àœ|Ÿ["ÉÜÑÕH!õä.jXJŽѸïâG¸ò‡ÀÒYæ¯ê×Òæ\(e5ÐM^*SäwiËÉ䆎×8z]¦êd¹Ãå%™^â H µÑ–GPÃKü ¿²ïWݼ~Ì@+Ï÷¨gã^6¹²Wzh(MŒT3^›i-¬KÁ®2Lêk -‡ùw°Ý“¥“ŸSz¿¢þDç˜ë"¾A/.-³1úOÐl®Žş#¡ï‡õgï­^Ð{Y7ƒÅõ¶œ•гó-xÓ”Á°ï÷µáœ2–Ò·ë÷¸ ø‘WRy5urÑ9']Ñv35ø‘^ûÈ#Ù  ¥¬F• ÿyôÕ*ÔŽPÁwü8êÌ?òöMKíðãžþ&Çà3VÈV-‹üqDùÉë¨÷9‡÷­fÖò^ïÀ¿¬´í¡g»èÍûŸð㼯ü3ñî!ü»üHæìuò¸£Ü"&ƒyXw¾/¯ÏýÁmí^s¢:»ÿQië}‹Ì"¨jIŠë4Ô8&•;ÏYgzئ‘™íÞqþÙóóÌ-jB«àdVÐcÛÑzTÄIã^±U(¾5¶ŠÝgÃ{—äÓ£7Î3¥½G[à’«!qž¤Ÿ¹ —Ûî¡PÒºèYßS?ÏVµŸ{ðá‘È 1‡AÊ4îm>½„n?/ ´  N¹0]²1àÖ“SË/òc¿¯ E ™ö…Æ¥y ø‘í÷-Ü~oÊÏÀ‘<5lGÁö&ùÎyœû;=À϶¤´†^ØÑHWƒ¡Š½àÓq8ðc4t<ÿ^šˆó.c+:Ÿ{3nšo— g5™2W¢Rádðc=þn—ï_†v=ûÑXÔö!°ùƒ}2•ÅImª¡bË—FúY 2Ô¢Št¤[LOLó–—@™³³¥‘ùȆIé†DÕiq0üä‹lÛÕpˆ³ 4Q8:Ú®<õGkÕE‚É ï:”~à3<º—Ú¼ DZŠú릘mÎÌ åMwÚÉh÷þý 8o`ÿ]àÇ®-÷ù0¼øuÉ 7^Q Êr¨ó3JˆìОÁCwEþJ̸îë׫lÐÜY¼ÿMହó¤¨ÆÔ :º¼šËÉW`F:ÔñJciÏàÇÇï_­q#¢Fû(,Îl!zÊRé's%-G‘:RBhk9Èe$¿ì;<®…Ͻ¾®¤A4É4ú¨¼þ¶8æ»`junËs-%¤©üŒŒôP‡i=-Ãt»Ìâ>’UwñZnÁ x(ïæ˜r•{ðWôÞu\ôuwf£åkó5ð#1Ú£ ]æÕÒ_ *ÜA†jKeÍ«³tŒ¶•‹È“5,øñ+S€þÙÒØwåMrN¹/1JÃñ0ª*?R_=£?òGN,7e)œý[Ý«¡ Ì$²—W‡¡ÔÂèYõ?ó hD'[ëÝùp.— ÀŒBþXe_Ùl’¿»YÑ£²[öë:í ¾mÓ’:NÖH/õIRÍ'W(²LªLE¸5ǃÎTÓÅB¢ †¬¶‡¥˜wMkae³œðß§ó{ü¨g¸“—V+kapïFõx;00ÿã>Y´þ7Ž«¾²>1wª;Aw® é„ádv»ß›Êæ†ãO{S}ݤî·îÐÀû»!ÙËõý±Ò7Ýìµß@ýb }~6oÝ|àÇdÓßV1­Í8äà<éçæ U¢µ6®Qªk/Új¨í[Šv›¿L6»Â†v–Ú§GsçºóÒƒÓº 'Ñ€RN® õËüÑ*–Þ'+ýnÉ– Ñóøf²Ùl ƒC À¶…t }¨2<ÿ}(a#xéÇ”NY¡˜$Ô<ü(BÑi¡}lïR3^JáºÙ¬Péö”N|6rÎl$™úÐçŠô›)ü…Žvý+´ô§>ÈC)’ŸTRromŽ ~ì æV]B驈­ñÙ7íûæ8†’ÂÏ ì?y¦RÃfª‹LTˆÚr%~Bs‘ ΢†áSGãüÿ´ßûþnF§ © ýÍ¿S9ÚŽ¶«H5¨X`߯¹tÔ ?¦CóŠóvÔoòL:ƒ\ö öý]Ÿik—c„‚ë ~LÄUBѹ ´8´d•äÓ(Ñÿ&k~Þ€Oœ õ¿}6ÔùäþÕw’…‰…òfsQ¾ƒÖ[@ø 7—¯e´×{RLŽs)É.“¹ Î;64­Ÿ€úv´amPy!ø˜šBÑ– ¥¦‰œeÍàÉRLšÒDOð"Î(÷¯âò*ðî÷ã¯Áü Ω ïï¾´¿ÓzØñ½tí÷“9’…ÃIo®—¡Ésµ·læzR\v¢ßú÷„_‡ë7‰†˜óLK[ ü8/QTXL¹¯t“ÖÒ‹¿’¿u”~£WäO]²µ”xý£êq ‹Œô„_p7vè½×:‡16 ¼%òLs΋mšÇ+¥¡ºZ”›¬µ4¼ýj«U¤+òG_½Ì[ÐzÍù5ÿZÓGïŸHmpN»¡¸þ;“õèû)©¦ÒµÐøérWvifï…nÕ×^׈ñêa9)Õ84ÿÌy¦p¶»ýñÝùvq¶šðP‘â(oסë”\:z?éDm¥Gd­TÒÃÚõ[£uˆ(OÒi8ðã z¶MfÜŸ–½ãÇ^g¦d  ?u…rì²35«Wüè‹,sé%y§½¯½„øŒ½œÏË£õ5¯ÄÐýð/3mŒñÕ…ÕÎú̸ûOW}?àäø¾uB¶ Ô§GXg¡“ßüQÎx®ÿíŒY¾Ìn,·ªÛÊ}äDw®~¹ˆŽS¾f‡-Fþ°ÐVóÆMíNqV›z¶élv¹gœÜzd2G¡2kýO)5äýÙIé>Ç'8öˆil×Ûd&èšÙÁCµN{ºq úÞ >°O€úÕG*žJàÔ}ôu³‰m^û¹'qÍH³Ó–‡ƒ_ØÉï-4©>¹Lü€ºÃGæ’t×F£””ˆF†`ÿÚÚÆ"0‚Êd§2d¨„~ådåµ™ç¢M@S¦_ܳ·½[Œ.ƒ=#p¾ èí‡Ñ×N|/…kÎÊ“Àý¨õ3ä“áT“ÒÚöÎçfÝïô-pîÙL¼uúÞ)òL#j†vlÍ—ÁâÑP/  ø¬åH ™Ü¡u6{°«Ìgr2™ŠàGxî‹Ü³ mלªbü=…ËßAÇÍ4£²ƒ[ów¼ ¥-Û“ÐMKÐàùÁ¾¿Ë¦—qèŸ ™Iµ1žãp'.†ó¼Í,Êçx2òG\þ–wƒ—ãÀ—ÍHˆíÍ*glòÖºmí-ÄWAþ‹:ÑÊȧøWI+‡¤§>Dr›«KY:øìéø¬£È Mm4ÆwoÙì wb¤™n¼‡ÿ¤¿i2’Ô2Ÿ‡H^ð£¼6†;]Áå%¦,├Œ Ñtd¢tÐYýQ‰«Ý'¶;®ÝcÔ°'xÿjlBþˆ,uª>×íºHÛÉQî$äjè_¿}ø1 Ùk µ²Úh'›‹³øÑÎb;]äe2\úHO0î4¥>“å:QæñÉ W¹/75‡ðAî7ã3Ìÿ8ëkà,€ƒªˆòª"M´·–ž½5œþŒT3V›jh̓vÕ¦ÒY!/]Ä™·ç®le. h”Þ}¥sÂ} úGàvô›ä§^ö–Ųüm¯)h2é@I¤í4EÎ`4û×/ÉM]¸Ùü8é,0³m^ô°_1NÏØ½²Ý 뵕­NÊ8\Ù…Þn/ƒ—üØÇe¼0p Ù$¢¾ô¯Þ à¿§¢ìûŸäG¾ê8ùû¾òÿöü¸ÈÜMnq“ßüíT@)s|%Ü´n]·{Û‰ðÙ·:ƒ?¶úü»*奯PšªtÄä0ÜÃÎk3Ðv1­Ì÷’ÜžBŸ?êš«ÔÙ° ´)R_ ãdpCAÉBÙpö'{üH¢3oãr"Úût‰ÀI4E?ïÆƒ¨·‡àqO‚(qð]g›ÈVµwBP^³Ü<€+f8ÞU`#q]ô4¸yp»yèºM úE¥&!˜?Xƒ"Ò$ûÄúwÌ™G¹ ¨¨<Èö\þ ZL1x ô¶3Í@ëöÅg>+ÜztÚ7g¶ ya ˆ4‰²AGý³5Òò@ä’÷¤®"Í×§¸¶Ügß¿:æÛâd&ÿÜí"I(øÑ º¾†ZñY´änÄ¡xœýiÚ‚–bEæe6c°ûæwÊšb`–fÇÏï‰ Òw ™å»tË6id²D&Pt8Úø‰}mÓŠ`÷Œ‚8W¡Ô46‡A©1š£‚i5 aÑ@½&|„'àûXþ9wh¿Èëèu1 œÙAÊ;î´‹‘?ãP‡§øüýOBßÃÉRxñK’IÎr5É £@(á˜ì߇p/·ãæ–m¬ gœ z_œÚQz ワÇ"§®à RZ&ñT(rDäzºÄ(,áÁ”¸œˆ#Y\€R³ŸÍΣJ\î&€+84š˜'!9ìBÏ’1òÇ„>ÿ©çu0òGÉÀ%“¾c—ËðVÞÇòpµ©©òQy£mvÎÎ×ýWœŒÒú Í4’_îƒßéI8é2–Jjpn0òGiœÉ(þsd¼›v×»²nùZ;Ãá¢WÔã|ÜÁ†¦DPÓöêhw™ŽúuGž)¢ë´ÖÄg4Ô_t øÑ$42“ã€;Ѩ߻ò:—ÀŒ®¿Ž  öv íåïõˆ–Ö²ZvhväýÈñõœ<ëîÉ|ù ?_‡¯óh>Aámkû~¾ý@ç°‰‹OȇQô7 §6…Äõ¾Cê£~7½WK»iõy9´ƒ¼•FkDÙWx}4üRZõŽ7œ…fR tô¿ƒiÏK/¶7L¶KX})çq5Úzǽd^mï7ä¬R^Tm¨ùå©l†[aÛ‹ý+£üOÞ¿ºˆÄñ~ݧó¾2ΗÞèüÜÙ9éDpg¸ÙL%s/pÿj¨/¦›Ó-è¶vÿv:ÛþQi‡|=Í ÛJüØf²›Äî+gªùÓv6=Ì$÷¦m~7Û©5- ¬ÕކÛÔÔÄÉèžµ…‰ìkó“½`ã„pýöÎg§9ˆ±g¹ ȪÆÃà¼3Ùõð̇¨Ť¼ÔÃ[Ó·owÐã™»Ýl´9È¿šæLøYˇPóhWCz>}K§Á»d”|‘'|É)òÕ-û†ŠñJß¾„ü?šºôbJ %L–‡ÚW5_º[9ÎÍRv¡ÁH3é¡ ­nÎý¹•Ý ~,¥Ø|Œþ„³Êg+;Ç>SÖ>TÌFã}èñ© ¿ñè/ÛWcýÂ1ª†rèè<ÚG·Á¨É`ÕtÐa‚ÍìóóÎw¦4¨öšzâ,×ÓªŽ±™‹ŽPBÞLìhó”Çr]΃ü1 YÁ?Kä‰*,öù¹Â›L%‚Þ7»C:Å©ü~.ÊéÁ”^”é`8ø‘z»ü†Vœ Ú4{œùAÊ;îvµ£ÀÉHÜG ¯\¿W‘¯Ø¢ ÆqäçRR6rÉ#³Pz(~L£¸&ûç¢w°1l† gÚ=mÓ£o%žuçÙPèÓ4CK*qûÖöG›=…òLEâºJ÷¸»L‘|“»úדòÖê&&û8“”ì_ûü¾&-?š¹µÐæE)g1º~ã¹¼Šîò é)ÁÆpòù žÁ9ß•ý\Ž|œBp¹øqiÃûíû52oúª:cáœÊóM¤™úàixzÊ㤺š Ê> :ýæ•‚H?I1Í­ádJëÆâb¢Ÿ'£÷»¹öw6»g©’|j#Cè¸]Hžd?âio9…¼PÁ#o»¾D-×Èðãl?b¢÷\GÞ:Wôáú»:k ¡MóAñ¯pLŒÙˆ’Ëk¡cõw$—´zHçkªµ¤’¨zVãH)}É')"ߦ¢Tý½"-}ÇÎSÏÖDŸïM¿Ð<»T+yk,{e®¯ê·×{¥e½z¿÷Òkf­,ÏÅÇb—퉹)ü©Yÿ™q÷Ÿp9g¿\ÄÇ_+³L®—Z‘6˜„&¬;Ç™kúÙ™îúÜÏ­’ü‘ÞìÝýë'n¦$H°¯m/'›{y$‚ o+Ûë6­É¢3/å¬rNšSPÕ3ðÌmè/jÀÝ©U·û¡Éç áðÝÉ–´!Y‘Ñšæ¼-‚rÆÁÍî¤'ð„5áç Ô¿«·?ìD~vø4MÁg°­?ûþÕ"_[g·É;Á{Ñp^5©ØÔ ž¶õä*ü™ü]EKÌA©«é ±Y‚}³:š“ΠÆûÐרÃ^ððgÊ„ß>G[éž©oDưVÛ°j>%ým‰êÑò`øÑß÷ÖfçÙùd¾ð<oüPœLÃo1²Só~d‰Nð·@¨4&°~û êaŽ|Âcn_; ù#4Ïâ¡\-ßÞ";oâZòŒ÷È%- ›A“Â2ý+#';ºòéÀû»j³9ã¨î‰?â¡Ýëñž‚Þ7‰Ã‹~Œ•<ð©Å _PF IŒÔçp˜Ï²ÊP~mÓNçÒG%NDžé~üþ0Ž ¡ýIÊBqä}¥@‘z²“+J ð#¼B9¤'#«y>λmý'ÚôœŒ9I-¹ èö–§Ë0i ù+ñ¼išToK7‚ÚÖ–üPÁ®\›+ò|ˆyÍ­ù¡}?ž÷ûj:Ãè•ãSÔ)·– G¡eü¡qUe´4ÒV^Kéí¬í¤ž4ÕAú™¬²[Ykwcü}"âœuPmö¯ÑVúPäœSŸjaýC|zIsx·u·ª—AÈ+5šLKk¤ÐÎü¾K‘mÓžŸOu6›ðô úÚHºÁ ઉϿ#ø±_¶Ébw·Bóƒoa4«&‘ˆY®Ñ ºˆ~^u)N3ßñã€3Áô²•¡}©M±w¥¼Ñóç·7òLZiê­öŒ—Õk‹„YÄË¢ 4¹°^†+Üa[S8°XÌvÕgÆÝòxàËüÁŠíW}%ÝÅùôpœÃNbw›ÞÔ4Ž[¥Œö¥tt˸cÜN”8ÿc•¯9òGcª¸µÝ¤5áÝ?œUf†k¦š%îÛÏÞeþ(jvÀ-®µ9i-ŧ¡ö‘­ç§«EÉlû³½oÓ˜ c6ø£¾sÁ¹knÒ# ËMPæmjÌþ9 ìuêCþ?ñ¨M¶‰mÅö4øü!f;øQÜØ \ Ž8\ 1‰[C?ãs ºfc@sãÒð/ò㼯%¦ñö­}…‘¼uÉ wž#¾åeÿ¹ñàÓS'ZçßÇüÂ9wv õ…úõ¯’HC‚AsÆ@kr‡æ‡ã;H_U¨¬­á\þLY›|c°”ƒ—ÓàÚH”vçݾ«¨o5i Ý€&廬YáxŠÍl2Låä6åéù×/ùžÎ¢?¢Ý¿ ¬^²Œ.›ÞæÏàÈ;PÿÑ4‚2ÐK‰vC0üèá{êö° 0gqsNÊQ«¢t¡dð¿Y8*êÕŠÒònσ91”r)ùw œNÁºYf¥ôÙå ·ý“ÊPR^È‹ ”G¡ )oFâðÉj§Ð9u.*3ùg$žd¼Žñ´ìDÛÝÅ-{Õû’"SMAŠ™¶ÊQ$y¼äÔèZC»ë^Ë%44)ÿ(Ÿà¨2•cSÚâ\ òüã©HWpmýï_•å-ôŒGÉlI~4Öíêx+Áª²ž¿•ïe—äXÜŒ¯!ϬãÝèMC‚ì?ØÛ¦á"H1'¨ zÆNŠ!+À* WZ‰ä ‡ò?–µÚYfp+É /xÿ2Lãã[ÂJUöÑû÷ñ7øª8=AÞbÈÕáRÚÛxÈçe‚†Õ²TêkOM¬ßéQ¤A½&ÚI¯ñ*”ؼ\Ã)ø …ÿàùÇhç¤{‹¾ðã7DMìvÊ)Iu_`ý’}ò\kzõ¸þ­Yôœ<Ô8È!þõÛSÃ+’Y~T¥×ÐÌ•4‹žA9ëÃÂ`€#)º6=ÇÊEI©MžŸÿˆž=×*²ò ÞF¹ñ[·mQê¤à¿rôbS€' Q÷á_|ÿê·"Ý3Œ¼µ…  S¡¿*”¹g`ÿó ¨õqZJ)øùWŒªn:—>SÖkß*'yX‘5IN!Ô‡·ÓòQ{é1¾;†. ¬€uŽbòx[0Ø•â;5LUä´Ä<üØC3{áæ€Ã{‰ßcû™W<;ðöÔbÊ¿~djzj#!S¬†u}aÍx{”¢ób8ã¯AŒYȽ(ô+®A þíwüèÎ  ÍëpÎÛh¨ú’æšÉŸÌÿØä‡>@âXËÛ¸*Ÿ¥Þtc=7“D²G檀›ÀÂ2+‰x#²ƒ‹ì+“%ÈGvŸÙ˜Ô­7擇 Cþˆ-Sx¤ÖЙÁº.<‹„ñ?u`ÿ\÷³]†Éh_ý?–º5FßõAm§_k‘?ÚË4ÉâŒBþx©³õ”6„g”²r€C}ðuþ›—V1hoZ|TÞP› T½‹¾Ðg± 4)ƒ?Úñ×òL'BïïÈA*#¸«dÖ'hå¦\‡GóyŽ…úÖ㳌•Õ¾æÎ,8ƒê|ƒ~å–ÜÒF 0²[úi<­„ü1 ÜH Eõ²NÓúÒDêh-ðc ø1ig²×S²ð£¯sÚµ\”#ÀçÕ•aTÏ®¢éü@Ž!Ãô—u²C‹ya½ýÖK‡ü`=Aš[)?qJnįpÅ/R<ÛâƒõK9Œ‡](¬$B¯JF–Ô]Hd1x4TóAãã¿ä$xJŠª'g( ¡’?¸ Mû`ÿÁñf¤-xþ1‹Û‹RÒ»®d¤$WWGisíî]ðrz1½þÈõ½dú­¦‚<Ü@ŸŸa{HGpïš kèü7ŽÓ¾ï?x}Õ—ßùgûŠ¿?â;×øî,7·)g;þÕ &øâ»ÝšîT÷ 2Îá/ñÁ±Ã7Ò<°¨+ôª9­3IMw•³Ðô¶½L?3ѽòÙU^ƒ?ʘ[о=67c%êd…Š:¯eödÓPö'ûÌ& áú‰½3Nxëò5r¹KàdeŒæ’”Ãn‚_=CýàÿËÐ4›ÚþhMJLl曳¶,H±žrÝ…rV#‚’Fâ ô¢q9ºlÓRp©×ù±Ý—)°ís#t-|~P3Üw?ʃ\¿ÒñDèI?x—ŽÔõ‹Ï?z¹•‘°Ú£íN¢ni J¯Ž 3>¹ÿ˜Õp ÇgPbúÙþøÙý?nú;‡¿í“ £%ým"Á-¡Ÿ1®¾¡F\ g½…v"ÌG¶AñI6g°ü(éT6%(<ôoÃÏ®µkÁÛ¡›4—›Žæô¤çGÞ Åë‹ÔõÀúw½Ø ?Úúž¸½ì>JÈ  ké9,®FyêF_ñoðÕÏ fc(ùO¨T"Îÿ¿ _ÃÑ*×h£YûÉúWÜNöä±¼÷ð|9ðœ'LQI(‡eªÆ×ïÀ*RDæqöÏ_Ë]ù±}+klÐÄ70°)ê0yfÒ‘ÿP]æpO)¤Ñ´ºÎ‚; ½D‹Óð^¾Äd,‡Á™ï ²ÿù|÷¹­†DDœ<ª¾=á2B"ð}®«5œ7[Ïh19ÅÙä¹À5ØÅõ>ÇwQêaê çÑò£òúÛïð‰èõ@ ·Ð-^(m¤ŽüÉiÄç-ÔÜzSf蟲™Ãù_F;Ö™òmŽ#oýó¼íûý|öù~t†ãÊ–æ{Ô rO›ˆXæKM†6Û!3µµ¦ÔʺYgj_i&Í Õ’RCî‚ÙvºšF¿«[Oç˜û„ Á ¥ÒÊÛHI5õ‚&ÕvrDNhE/´÷™ëÝ'75’ÆÖõR >¡»hßSóýú‰=测^7ŠBÉ@ÿ½oy­-t›6Ö+RZŸëSé¦ÙõºFÖ!òZöhtÉüqü8L¥á5Kƒd3Þñc;òÇŸö[ZW·ŠÖÙ½RÓ{¬Mdº\‘y’Äë¾õ¶kO¯•:’ÕËœ”OÂèßþ>hCNbü¹vëgÆÝò¸ì+å¼_e㊯¨Ü»’!9Â9«œoÜáî·¦‚±nu”2É—ÈMìÖ?<7ÙgwÅþXîjNÖ…K­AMd“Ë]äŒ1ííDÓËlrï:Á­Éúù#®9Í\ü±üèeÚ¶Îsgª-Myl<ÛÔÞ²9BøþUg£CÖ¢WݦÔŒ®¢7 ‚"V°Ë Q×àêsSR³ØìqÆL2÷lAzŽô²ê©pòµè ü¾r5xÿ¯àUn`• øÔì‹ü8àKE1hª}d#r]ÞgžŒî ûï_åáë´–â@Ó Ì‡öÿa‚î³ôhá§ øí~t¹(<3Õ…KBŽýo §5íi9Z¶¼mõÙ™¢G}Óœ¿m$Þ _žŸŸz^š¸–j£5SRU®…D3ªv,ÚX›ð+^a ›àÖªÉìä6¿ÿ½×?@ï ƒSNðü FâM3Ð\çùpþþçç㑆¤­e‚[ÿª»ï¹ÛÇ®¦¯y òGJœÙÒ€¿Œ“šã°ðLÊÆ'x"÷Æwyx¨·<ð¾ÄAZi–²;Á*·‡­ÈÄš²á6ä_q —ðr]樧…e—‚:ûg,Fäh¼Ùæà‘6† ú,îk÷¶Mˆ4ž ÿ> >šÑŸœX¢Èdž'¹õ+m£“u ÜrNqe Z%=EZ'Ó9®Ù.çÞG%Nq_Ú oAh+Eþè.$žƈÎÐ×ðøG´²œá’RQŽñ÷l¹èqçs,íäþU7[–sñUл:ê°œò|i)5¤êøeeÖsÒQ'ËþU’!-ŒâèŸSy?'hãó¬5ºÃׇù#ÜD=þŽ»ØT”TÉX¸ñ$2CFêHз¼.CþhÔÔ ,É)‡¸úäÞÅ‘1‚ ½ßMiˆsÀ}H¥à šS}™Fuí^jÀÙôšfÔÞrSNëo^$ïº^z䇧]ÃéBiÌ©¸ûd*òGfÛØV{W¿^Î:ó7ê”ÝŸO%òý÷H-5t 2ài «SÐ~sAÌ%8ë!ò\j<É®aå>T~ ¶MGy i¥Ý'ßzÆk! d øqZKk-ï–·NKz£ô>gõbi"Í%á•x-·(ÆÉsòÙ¶CÆÿ?Ç-_aç«w-sÝWæß^ÿ*šsÈÉêÎt³‚¡]ÿn]‹|)Ý´nuw¢ûĉñ÷ZçaöC÷ªS:ÿŽÕ&žIäNrÖ›vø1üɳ…÷G9óŒZàÚä¬ÛÙú¨Û½n«SZ›îÂ¥ô_ÜËõ_G+縓̾…J=¢_èü·"ƒº—³GásÏPoxë 4ü¨aC²f}3Çœ@r‘úWA-œüïä`ì¸\þ¦$\ 9-ýŸñKæþD™hxèAýo5å€Jç‚SòûçÇPÒŒ¼5 ïÒùãK³}z»Íè~ºBÝÞÚ!È5)G`ýÝ‚…ÿD{î ìÿq}¿ µUœSŸ)ë¾o¡ |U¦´Èqèž­O AÍ6p®…ȿӆº£ëPç•øß;”ЧÛlÁî^À)~DBð§¿“´ª‚_Å@p1Ž˜N&Œø÷(IÅ++ùG»\±o¸|ZZ_D3Ò®„š.ÂïDõ¯&B1žãÀÕf‚›'nlåy8ïдµh Ò!:KsÁ û®u»Ú¡èÉx3øQŒo#›re‰+{dŒ†Òïå,—‘ïáp‹Á1GÇ¿õâ×pï­óÉüÁXî[=ð f4w;¸}“Æ@{ÓÊ"uJ® t‚^BÖ)(‘e%Çä$ü„Ï‚#8:zÁ® ë·Ov$¢ô½b>—ÇÕ,³$‡GÝÖé ݤ§´ òG%)#Ñ— ôù¿BöÙŒ¶œdýÝþ¶0çEÛCm‘à¶Ò]äaÒVêr:y©s4Þ…Ž.–}ÜERëU^Ç¿Â- ç+œHq~eß?ÿØëë~Äãà‘Mæß‘ŸßòvùüH CeµvDy¥à÷§jK©$-´„Æ”ûW1d1Xü†Â|°m7g›ë§_LnK¿ËR:ˆüáIN½ª9t˜<–Z×{©‡4†—¹Ãõ¢iäfH„9¢¬[ãÙ6Ììïl1a)&Æ5½ÏIà3âJcïWðûw=l9 䘦u•fÒQ×å5×Fþ8KapF…1J¾ã^´éƒõK&˜6=œS8жfóæè/2Q¶Ë&9¢%Q¿•~¢ ‰Üæo¼È%?öí¶ÃáR.ÃÑ=5Aûàãxè+éDy×2|Eœ/­hñ¹#¾sÐ çîuóš2&¢ëßÿ|¶/™[ÈýÎ~$øìSÕà#¾Áf¯­çŸë?Ýd4߸;™fˆhÆšÉîßÿpý«_ÌQ¸Ó•¶F|lêZÖ)îž´u(•MbAWÒ}q.Ý¿ŽFÎ^ç•y mSn÷|*sOhSa»ü»÷¢o °Sm|[4Dó?"›eæ‚-OOáO×ÁÉûßÜ­JÄ/ñ7U»€”£76ú]<ê‚çe( ·ƒõx%¡ÌTœ¾CRê Õ¿E ()\K>ÔtÚµ§ úžhÐcˆ[gØŠÑiZL>ð'u£h<©Á Û]ÜŽZ^ Ñ`\QŒ³Ï½i·Ü7Û‰G)áÝ "UNÂuxjë"ÍL£Æ¼N¡ÿÄax ²ÄdÈc;)϶‚½•É)nê€I¸)RǤAœÈƒ‡á䘾æ5jY‡Ó¡FàoÆ -NÙX¸bƒáGsß_óBøâØšÇá*v¦äü3ç ð¤.åƒïŸŒüsòj\©•(wx®ÙøÉý«5n+°¶"¥çMPÜb|Øÿ® h²‰+ˆ¯‘4£låb’K–A#ƒ-{ùO~>M³üÉûW_»7¬ÿ¨ô¨Áb^Ä»¦‚_ƒ³$ ½F­†IÊÑä¹Öôú ü˜$ãùwI¡·Àá¦\“'ñUN#¡¤ ßùˆû (+Ž­ÝÓ]µ¥qw îî$XÁ-8‚{pÜÝÝÝÜ‚{p‚ó¾sîûa˜ ¸oý/= ;Ãì.ý¤»j—}wjåQ_%g8mm°n-®ÈÕl:Áûd†²fƒGj£42ðy§ÎÊV•†ÚCÿDÙºrG/8ߦX4þm¼ÎAðÇ`À–ÔF†ÓOv-æ|züÑOþ”=šÃ ëíÖgZ@7ÊK}"¯d4æ”`Lþí¹¶‘­ñ¶¾ãÃÆŸI-M¤›—ƒ{c{Õô¤ŽÐòSêéíªÅÀH…´—<–öš@JëKŒÿqù¡*~†š,ûZ3ÈV¤¹ÀÿŽŽ#’Ä»ªÝà´Â¢DkÁŽ‹½ý^/­×F—p^/¹¶×ìâêÅ@þݶT c!)¿þWÎÿ¸ã«à$|Û2Á&ÿíûÎN'º»ÑýÁ46_¸­ïÏc»…ÝRîîm'Ãg¾ÿØîkjö€?¯JÓ“þc¥ó‡hç™Ñ&Ƚå¼ú¬x¥ÍBAö+è¶*ÔÖ>´í\î:[‰ Øø¶®}aó™‚ŸTózÎQç¹B“ázÔƒÎQ™ÀùƒßÚÍü‰ƒ©Õ¡qˆší“ò—¼q·˜“=é(m*]7„«yŒøþs¤’q-zÈ¿›æöÜõ%Nβ¯l$n '“¼óØæŽ ì˜«àg¶QNünL#MæîÿÈëOÃá æÁ1Œ•‡*ŸÎõ O€†ÝïDÀœ(n{~ÐiN÷MtbQ (ûr” –,°ÿ¼=jݬñüG~‚úWnÓ­@KDåµ6¨™e2;ùÿML< ï² -ß–j ÊazMÛéœlqvø9`£p]ÀY 1 þ­£ïž;Ò. ¸ðÍ8xl.j3ó²1gâ¨,˜ñÉ¡š'pKNÌ_Â%-ƒ[\ò £ó´3%D¼ øùPšEö{€”pÿuàΓÐóIe—ŒÖÀ€\RòÊ”ò¾·…ðßܧÙÈ6d.„„î ŒÝ&”í¾‹Oó|Ô·‡‘/d”LEËj ÝÒgÁôàÕë|žÃÿ¢B/ìw΄x~ßvn5à×e¸ÿ!(é^2U²³•.:RÏë,=¦ÀÕä;9Žž‰Ä?Ãwxo‚›j*¾¯·MÍYø4P3 ø~b!Hc°WR9­Ã4®ÿͲö–žü«$×Çp ³/üGTyN¾,Wõv_g˜»(_§úð¤Í¡úð^éª¯à…†Ém¤Ñ´†žÓ1ÚRšI%ý]qMø·U(éiŠNïÐÔŸ?q/zBx8Õ—¡ÔÊÞ¢ìê^Í«íàh)/¢·WÃÅm•GË in€xãÁŠál¹`ëwG:A†ÁPEü+Ú9y”MÂx¿è6¨÷ä’,†/j­åÁOEµ½ÜapM•ÁÇIø"¼`aú•…&þŸx[ùÀµ¯i*u¤Å´Öî–ÔÞ})ËÁ÷à‹hOïø#–×^×p|/1¢£WÀ6m”c3ÅçæßX¿ûÊ—=˜ÿ8ì+ŒM>ï²Î~'‰»ÔÍlZš'lŸs|éÜ îîx׸ò™ü±Ã×ÃøOÇnH©­4ÑM w©³Ô´¶#L³Þ=ë<þ¬x?›ó4ŒØïh?Õ¦_í_¶,ÜÒa[ŒrÚ¬ýçYÍWŸTó¶Îç©yF(<7¦žà‘ŠÜ¥üÚî„ÆÜ \.ß0ÙF³>iýn<³Öܱ%èf à^z Õ]QƒC:cƒ¥ØHÀüLÔí£üñ—¯(|Ê4Ë–›òv”+?ݲe©3°ð[¾­ŸÊ:/Ðl¦áGó'.rë¢d­á9Nò— ¤t(]Nàè Ìÿ0<‚öåWEÏ@•Ö¡¶ºsý±¶û:y +7‚asàþIè/Û*æÓ2 {®ï5Èx,²_«ñ¿Ùœ¡¾ÿHíÔ6eàOÒ£>)ì[…êãowÐrËHmó(Uªx>øc#õEû=°QÑûGBáÞ¾˜fšÝB…ywàX…'¢ž}(5WâÌš¶7¾ÄÃñÝ\ uØÞ\Ñô’– @ˆxÛÜíT– ‚¶Cû>ÅèÛGþ5µßI,`Ör­Y§kd•‰P÷/ÀA<Žor?iÃÚo!£ºlôXFºÈ“è>MàHV&q7)6úªü0ÏäBYVp:NE~•£ËBŽ…ºÍ¹ð^ÄÙ® í³ˆ–‘gp>Hgž$'õæ½£Óõ0Ðu#ç”/e—ãç`†?á?æ³ÝY óÓ{ñvØdœ‹ÏBMµäæPÙáe)0¸ô…ÿ¸¨CõË “?¸©ÄRÏt@o㳜DÀX|8ØYÏ}œ1àÒ|™Úp#®aÓS,9Þ¸,Ud± ׎à²zI'i-|ò½PŸ{´aOÂn‡Êy—ÿÊ¿ð1•äWþ÷•Ò™ªÙÛ4‹#ëÍþÙþ(î=׃ÑK¯›ä¼&…7œÿ‘ þ%âKdmCÛöm}×;ëMxŠÕ2­&PAÉ…¼rzDGéiñï`ïëæ¤wµŒÒ0šAJ©Èy¸ôsäÏ Û“ëÐú·ü±ÎjZØÒ4 ³l%Ͷç%ŸÁ-Ëä¶Ü“yˆÕÙ»äe„ÿh©'8‰—@¿Õ˜¢z÷²mè'Ì<ÿþóŘwÿ›× _çJ>í+îðÉQœNw‰ßT2;µþ#ƒ›þc€{Q?÷üÚÞæŒýŽ= ´ýl“Úäu÷¡ßFÙß¡,¸7œûŸ¯µ¹AýÀ9€JU¨µ}b+;ÉÜ}¶<¥´Él-{ÙF1>©æuóÎ+žObîýÅð€jódú‘¾´— Òý¹R€AÛ”6·ýÐJÖàWL³Íܶ•Û€šë€GÛ©~8¿Vù ÆéC›n9ýòQþ¸ïû Ú~´õQ8ø˜G0¾³Ò M¥¡¤æQLÞ89mtÔG÷Ü/r¿§[ÔŽü{ÖÃae¥6˜Û3 ËÁ ‡ÞßFë™Eý'¦²5-ˆõÄ7ÝÉAþܵù€åKÁþ5¤{–OSêäyÝB×iUàô¨ígÙT&A(¥Là´7µ1o’Kó¢[á'h»£ô­¸ÁŒ0V–rEÎÆë˶p6´c$Œ¨å¡ðG_³ÜnƒŸ™ žÃóD ÏÑ n#2œ[(Ø#<Ûs’Àú«­(ßh¨ˆ4Çìpþï¤[ÍŽ‡Êíß |¾‰9î~ŒMÖÈ*héìâw#ùàÊ?ƒ?F€?úóï6ö?vžÆv¯Û˜èµ,<šW€zÃ;Lá’@q_É¡õkí¤;À~Å%.)3xáÐ>ž æÈЋœïïwÃNÃdåÙàÈ£@ü!2M²ñô¹ÎÓ­ZO–pV)-ÛÙ¿ûîW>ÈO¸ \ÜÌüø¾Ÿ±¹¸$üÂfj ÿñ'‰Œ—1ÒHp"yª} Ä/Ê"/ù‰dÑcðPÝѲ£ág²I8©ËAöÆÛX{¡ÑfPF.ƒVk…¶©a¿§èrAF×kÊ\™þH l¾¨ƒµŒ•†ú›^Bm[°ÿ´‘­ð W1ƾ7ÄÙé§òðÝ©µ  Z6ªÿø§:2Hök9/™wP¯€9Ίñ"é)Y2¥Ç…¿ÿHe+óc5&.Å.ùϯN‘)«Äò’ë\ø¶§@ü¨ÞD¸£júþ¦5üÈOêH }ƒÚ(_ÃŒÌ Ä(lýÕvg¶é·  êÛçRþ£ª¬•¯t· A)kz÷¼D^f¯“®æ¯½0ø$§$Ì¥í¶\îjD>ÿ¯äoÿËW̉lÿy)'dæO½TÿlîÄÕ€«þu2€óÏ¡ÆS *nþ`þö]¾•NRÊ̇¡‡“a¶¤¡¿mUjÏU7“«3×ågÀþÍt -±*wâv¶yCͬŸÌ)eêP,ðÇðõ>”¯UàMÏi ¬K1}Ìkƒ2æƒW˜…:w ätý^–¦„¿ù^¸Ø¥¨ÙBî ÿš u£¨à´‚,ÐMà%öóP|E:o£¸ãpüZOkÌ|gQˆxGÜQˆV…Šó:xŽòü±¶Q\ðGmø 2WE¿•Ý\ARÉHx$Áq> \o#Ø¢!jÅ=gS¡†ey âíáÁèßéM’ÉTžÿš´½ñdN O2Sr¾†ÿ^ús*°õnç·÷"ÎušâFCr^…6:M/¹P3>Ç‘ŽºDoêªÕd9ç’ÜÄÀì-yÈ ´Å`êb·Ô ›” CCì¥vÜ‹wÒcž'“À}8ôø\M§Ge¡v”6\Câê)žFªÁ“ø4î Úx°ý'ë¯Âr~B?r&n`‹Ò}ž#à²ê—ú‚7RC×kK­/áí[éÞÀ=Ñv)eGg—£Ð¦·ñ†;—ÝG” ž²+ý*Ó©ƒÌϹ üG^í-«ý+œ¼ØÞ5ê×}rÞfy bT(°p2š÷PÛ+Xþ’>În£˜Cù  ®ñW‘ÊIj¯—®ÐEúL.Kbø˜ÎšKÿÔ´:@"éßòŠÀøßr„v+Ky¹5µ –¿}‰émÀhŸþØaJ~ï¢6’…~¦£6ÖlÞ~ï¦ÖòÚA!¼ÔÂêϦ•B¯Ae·í©84S^ó¯ðÇK_çÊõåû¯Ÿ_Etv8©Ý5nÓÈÜrÚž_¥u“ƒAf»g¤Ÿé?ø:›£¶64>«™ gÛÙf:Ø–fœ™ þ¸ûYñ’˜mГ«lr `NªjÙ†N:w œñpsΔ´×ÁŸ¶~·±³Æ9nv@}ž¥:p Kèkî ݛϞ§!PÕ?Ðèý6’Í÷I믢™ýæ0~¿·Ï&ÑS:F5é. ‡¿£;ÀÒ‚tÎFv¿°u?Ê›})) M· wT”—¡®èºÍÕ݈ÒóZL‘x&%¢Ÿ1ZëPó¾ÿèá–Àèl‡™rÈþÆúW—Õ†·éÇí¸3wœD,‡ýë¹2Q.ø­¸é›é<³~eŸ‡Ó£ÓSÛ å ¢ßàIÊѮǯh98ôn ãH¸†K4ʦ3/C‰Á©i¡Õ"ò ðÇ:ðW#ªq^A—-3ÍKžÅõ9¯ ì>÷Ÿ ùȺTf‡zþàw4üGdËu8{<ƒªÎûk]m¡ËSVøPבà@¦ƒßæÀ•ÇWsÄY"Þ·«ýl–——Âs7G½Ò€#ªJTÙ)Ãô¹”—=Pß¹ÑþüŠ>°]^ géïÏ㺗l2j†2 åé¼üq•Fäé<ÌÿFAòèt]ÌÃ8§¨ŒVfå¼ÏqcöèKÚàüõ^ÄU®RÚ”N‹û–á@ü.2UÂñKôžÐÍZCr&)‚&‡kÀsøøk<ö Óú½xl ¸¶{ÐOÀ¿ÛèX­³|'åÙ“ÚUÓëaé£=ä0·—$zˆ¿ã†ü3J»‡ŸñSàôË`ϯvùê;Px(”[Tƒ¿áî¶­ä1ÒDJzé&ݵ5üV©½ ï@¥7ÐH²‰[Á!ùdFe$ŽG+߯ëëÜu¯c–†ãnTOFÐ"Ž£Kc=¢Ñµ¡ ”Zè|D}^ZÝ& ¼|:A6ƒéâ ×x Ú&¥mcË˵Ãp©4Á¾~) Äï© µƒÞ–TÁ˦5 ø)­ö•ÝÆ /¹5¶Ü ÌZ£5-7zïüÚ¥f¸ýó Ôç\{E’{§P³ý²WfˆãµÕÞzï\ÈÏú’¿ôhm̓ïñg~°þÝOÏÐî¿’¿ý†¯|°üWÇß{›þyWTç¨Ï=à5­Ì3§!¢Ìó•tÓº_º+Ü‹N„ÏÌw¸Ú7üQª4Ú{šyá&p»9[ÍÛÙÌ7 \ë~Þó«ÄfÜ›(‡ZÛ󶥓×=l‹ÐqsÏ4®dýäõW›œf6”Ößä_µ©7¥ŸìßভP­Oá·ûÙX6é'=¿Jlv›{¶$½ÆhXC»é ˜©.t÷Œ‰2ÀÏ'@Å{66%$K>!ÿnQ Gó,Cë”ᔚü‘­@}ùàÄg€?æÂ¡´‚Öi@m>ê¹ê¹E R›Sø¡%`¦¡”í˜ (×8\te7"Z$~ë 4¿L7Às¥0G”ö:Yë à_=¹É_ÎÿH‡Z×åìòuéaZ¼o”¦> ?ÖåÛE{y±ô‘*ÒŒßðª ÔŸ3r¨œã¾(íAnʵ¸‡£»Ìwá?.Ûw®u¼¯‰3›Â€anPM¨”¶Íãnò‹Í*=e(ôwÿª$ýM'Ê©¡Mõ2"ýÊ-ù/Co9†&¾7Ô¹é>„çTG~Ãìˆ WÔBwkJí/dŸVðÈ»£ÖK­‡D½Œ: Ø]þ£?F\¦¶a°ýã=&¥ ¦ë¼ËƤäò­×Yƒà®Šê,hƒyšD—ƒ5§Ë™¨çù‘¼¯E@ÛùOtK™½õ-œq‚?*c¼Æ˜šl/HJoƒV–årTæ RF8£}ÞFÍ,,â}£ õk §·á?&ÚnÀžó”‚É®ûÀ¼ûß¼nù¾ÆÇ}ß:Ÿ–ÅãŸ×KßQ'¾»Î-ojš{NÛÿûü*³›ß]ï>râ;{?+Ú_?sÍ–¥)-”é(£&£»ÈY`ÆÚ¶fŽ™í÷COIB¿’™ÝPž“mZôÑ [Ë>´]„î*[ˆ¦›3¦ø#›ù´Ì-œuÎksHÿ\8Ø›;úËioa^m„yhSP/Ïæø$ÿÕœ4·í—¤¼?íwžËÁ…œsTÀȸ8n XûÈþ(œõ•§˜4ÂÞ³ í½8°ÿ<ôg?j1ö8˜ Z}¼Sã®9ëï–R o\¤-óS‹ÒðHÌýêPéƒAçi5Eå­Pcy¨Š-ÿA¥°È7Èyeðf´[R`zze«‚›–Sm>†ºöán˜ûKÌgi%tý ®á!öGã„RÊ4Nvã7cxtþVüTK ~&º.ÛNÏÌDQVÀ-äâ½pþÜ3¢ŸÚ^pgÿŒÖÎ÷ÂýÝî&æÑ\SkFƒ'{Rt¨Ú’œ‚ãq *ôÎÍÀš…x=ú}" k-„ƒÝøü%K܆v &>OåÉœHØ¥Ê ½]A^ñŸ²BY:ÿ(_£”åø1|5y'ÔûxÙæûÇûóðÊ (9ÿÁmyϸðïÿH+Ky™$SŸf×ù:1¾WV?RóA ýS``R0çœù·¸.ÆÄ´^txª¢(Ÿ•‘2KÒÃÔwÜ×µzL»Ë.ŸÄßrDnÃ;ø$Xn'ÆCwÓà½xmá+SBŸì ²Ü“oÓŸ¸«,ô넯O`ÿ`èî4Þ)¯'·ÆH­NÍ?ºþª•›.P}0ã1ZO/ìpJæ?Ó‹sW®…6›6ÓQhp†æŒ¹QÄÖùàʆ«¾aÎ]ÌÝåh·\ÐNqûkÐjÆG©*õ¢(J·Ÿ,«LDÛ>¢Nð¡åIá”6%ép¦+Z+й&•SžÆ\:F—M_s‡—=3ó>ðÇh8üt¾¬M …?ú»ãì*¸³ü ÇåȼˆjScJÂí¸gåWè×´¼èÙ*²0Ïoüî[ŽënÖ;+CÄ›åöü8œS˜oâþÛ)Tru‰(ge€>’¯d+——b²ü!œ€¡—‚™ÿ°/þ‘ÿ*¡{ÆÆ€ÿˆ~kO3„îÒ8Ž)Iá?~—œzKòiwý“×rQ‰"ó8ûsm6wå„”ˆŽ9×B¬¿zeëÀ-X ~G®Áèwù’ƒ u­’·_—éïpM¥¤ì‡>3lâc¼œ×b4t4Cß‹×ÊÆãLàƒÔ.r,]âqÒCêHkŽ 'µüÂ5é­ƒeÿ"õ,îY>o¯á‡|lrݾÛżÕ×ÑiuV‚oQŒ²zö…=ËÛ¤A`Ís3àqS0É7ºBûh3ùIÚj>}†6ù•{ÀË,‚{tùµ}—¿¤³Û½E?p|îOµeµµG©—Ñ“šTÉqY¥Å¼ëº]ó7ŸIïÉ*éÄåºÈC ?2ÚfÁø£‹³Ëø Á a¾?c˜$‰$ôŠë6m¤Ûä´lÔéø*¬ Q®qòL6©Ork$9 Ux?UŒòrSZìü¨Å¦-1?ü;Õî”aÞm#›å¼¬ß´’VñV{ô'¯§îæx¸SY-(aõÍ ¶å†Ò|FŽ 9ÿ\/}µ°o[欯Â}þGBç´“Ë]â3 ŒÏmàlî—n9w²ûÒ‰êœÿ¬h›à?¶¢M¿¥¼TœŽ˜§.¹Ý1¦£nfšµîãÏÌŸÏlì²ih•¡.ö¤ç¤uã ìÓÒ>¶©?šËã?WYg¶sݦ«@úP„7©2æK *gOAåîN‡Ãç³m›ì“ò'ºf“ùÓþD—¡?vÑ2àÂNàõ]ŒˆTø…+Ð5˜žê”?Nú’R|ðäkû”¾ÃÈÏþðPã!pyù%P;5:[`G]CêiBêÜW+7'ÊÓ3åí#”g2ü\jîÅã Ócó0æ^´©Ø1"øãCOífùF9ðf¸U0Í ŠF/íÏøûfúHQ•:qm0ܨâ?1—аCžb3š/B)åNbSn#)£ìpƒÁº)'þŒÏ‡h¯ùÝ<äYÀ¨Bð;ch8ð;ýeÀ?BËÕ×w ˆ¿ü1¥Pøÿþæô8­<0v?¸ B­Á#e†³[Ksi,|ÒZ`V9ëCÄ[êö„WûRòl Z>‡ö߉h¸’$‘m2FïK^Ù ·PPfK_Q<^ V>·²Øúlá5NãúUI[Ôv.Êfþý1€#J™Ë¿I}*Ùt¨^À½òKt™ÈŸx Úþ/`ꔜö8ﯷ]çFƒ»:D£/Gƒ1w“J7™(Eý§qèd½­»u‡v’ý(aðGQ~Cù,"nä÷çïçæi`“ön§¦Ü›çÓ¸¢^Ò\:ÀÔñšR/Èp"søWI¯—ÁÃÍ îçò_ýÅ-8(ØZ“ ¾_îÐÔþUk¹&7³‰è%Ÿ•AJOºÈHýüQB—ë­+ ¥©ŽÔˆ(iO|YÙïƒcÑ»äp¯Ò÷“ÛRÙHuìUðR =¯Yu üråóN ¾ÏùÄz|Èù•“a”ÿ2ž Ì¶j°Œ&Æ\̆œšÂÐ÷âyåuüÇvôí]£³õK]§¹ßÕ:GÊà—?'ê úŽŠ¢KSá·ü±ÛYd¦@AN¥ß ™VØURØ»¯}á¯Ã½ÔÔê:Ð[éY¯×L×s ¯I ðÇ=ŒÁõ¶}Cþ'cKÍ¿Áw|¥íÿó¯Ë¾oÿëüíÑíN~w¢[ØÔ1¯¦ˆ2ÖWÜÍâ6tç¹ÖýÂ9ðYѶøþ0‡àéJRj´øߤtû:ëM_;ÞL4ÝçNhÏ4>|¥6‡ù¯òíšÐ@ëPWðÇ[‰Rض“}dó|Kÿsup¶:7Í+ºB÷©ý«Æ¨•´¥üùKRP%ލ…>É$7sÍ%[Þv „Æ-Ýóú.˜ÃŸ71ÿÜKB(Â'œ¾Ë—†bÐL{×&‚ö^‹±UŒÙç7Eù9F\kޝ•ÓZ½1Ÿ¡†mTÊ.7¥üGFé#‹´£&D}é$m.ÕÀwý4Á½õäH²‚ãq¶ônGgWçŠk¹jЗêËhª`/Ðx. Ž÷ƒN•sàŒÞmÝ«ì%ÖÍrUßHJ](­Ð#}8<Üá1ÊjëØ Î»xÌk› <Ћž³Ð[T¢{Eá×:ÁLùºQûkAü^BGJ àù ÷7Eæ]@´o©$WvûŸxgœyf2æè̳ñ4ßnœ^d¯Ÿl•§GÛjkï-óRzù½êºŽã{5µ–6•èzŸæƒmºb†?£¨üò_ÙÿqÁ÷½ónv^õüx~uÀ‰æþî¦0µqýo›–úÒ»ÙÝ’îl7‚›Ë9ôYÑùúšÓ¶2ôé"ÎÆËù[8¶G0`X®Žx¯Ñ{ >Z™ßß‹W˦å¼pY»à"G‚?nñ8&u¤/§‘[:P#ê)Ù>êÉíÁvÀ€mÐÛC1Ÿ¼äŽü—õ6Þ Ì±(Y'xÚð=m,Ä;#5¼–”IàÞîšA¿Ñý:SÉ÷(o ób¸…ö%N‰lÿy[ðÇe¨<w¦†²þãet8h¡”ušÝ»«[UÀÛäFÕȺ¼›ŒÉ2/R*Û0Ø©¶ÎjóÜ&€‡žD—91E¡äË«‹õ°ì•QzPkyݦٵø´›Æ|š@îa´ž¡âÐÙ¸ yˇ‘føc.j-¶—åkï¸v†XM¯ëk„·ÛKå%÷*‚?jz)´™~#ûäm¢•¶›}?Æ©ýWκç+ìÄó[¾þëçWáœ}õ»IM%ã¸å믒¹?ºåáI^!ê‡N5 ý:íëcNÚú˜1Ù {MZ“Èï,6#í3üÁŸùþ¼¨¹g°Û¤”‘Ú_{8‰Ý=öGÊc³Ùn–(ËGsAýçªèlsΙ×ôÞ .ÐèU‡ÿø† ؽ@é êI9ègçÏ¡úIû?"˜ æ˜ýñ¶÷c,Äâ:@ëüŒ.'å€{‘€¸É¨Å'¼ÿÈDái”ýۺܕ7¢\e¨08¸;HA~‚ø_ð&Êí_'DìóÑõ»]ܼt½0Ša´&DÆEšu0üGtžDÁz+ Ûýkƒ[ƒ?~u. Ö|ß`Ç‚PmJêßÉHÏm]>C(Í¥ðù{þ mà×ôëÀoÇàÂRM š¨¡”2µ“Õ´ @ÊI”f#ÆIm´Òq¸¸¥àžæ/äœnÄRy/8¸ûhÇf´'ÔýƒoÜv#ÂF0D"vxذ_àî\ðV§¨eàõÜH‹Á$äß>*â9m1ÿ±~wÛÇΤ ”“€3Ê]‡ò_m…ãP9 côøc=—’B2ú? úy'Ïá;àåå6Š ¹0{Ó–D ³ÀlËŒ‚ï ´te4üG°QiàÌ:žÏ™%¬¬ö¥ç«@çðÒÓQÚíty/âJ÷„Ãix —â}t‡ÈÉÁ?So@M_Ðî`¢âòƒ§*üìY~ †:MS¨yŸqG›üq œÚÞô0ÜÌz(u¥1甋ð1ô²lÕ^2‰[ò'.E´*›ß]ÙÌŸè=ö{`ÓHêc¯Ùß/Üqøwy[Òö´ol!Ró…~ÕvV9§Ícz ­ÚXz#s ÆÄ—6ó p: Õ¢å6³-a_|B¼7n9lýYÒwA‰ï+m^¿¦[PßÁ*‰à?žÚ$w1©åGùã’/.)üÇðGgÌc¶¶›¶u~¦:Ï~¯@›ŽÔ¡‘&äsöWO7#”}/š@{iø£/ø£ îÆÝ¹ Åç»h3ÅÌ[}g;}ðM×}ßtçƒûWÁÜ›?`QÃÀáF¼X[•Kð#pÑ>pÀF|m3Eåyö«POöŠî|i¾%^ÀŸe_àÍÓO¨ÙV0újÚjúÿj©ÒðóÐ'£á¸2ÒC®kW(ü1Æ÷·;Ô.£ðð83 ¢–ň‰o€ŸÒ%*Ei ½Gs+ŽÌÁ.;QÂéh›«¸×Ngyˆx»Ývv(´æU´_ñuú œŒWrY'³”µ å’’ · s ßú¾LÝbcØoþ‘¿d;ÊÞˆ²ñ0Þ Ÿ ç3”cIøÞWE‹is݋ҧÿXÇÉág®ñ~Á¿s^°õÁùw—ÁtB[øéèÉÝô Ža©äâ0ÐóKõnöŸg†Ë"¥Àþµvmá¤îð Þ 5ò‹iÿ^¼®6˜ÜŸÍ¾.”ÅzD› ƒ¥‰ŒçÔrü‘V/È<í*ÃPÚôzç?ªÁKÝáÄòLqǾ{ ;ÓWÝiG[ŸÏR øÎÖ£prZÚi-'+Àom5°yŸŽÖ:`”ÆÚSã€?zA1%@‰“ÁÅF£wÙh»;çÝ TŠ#r?ª*©•ÝA³982—þ&ûeŸ„Þß ¾Ì¥;ÁV]'§7»2Þ1«m`ße7äœ46ð^v =àKV)©<ѯÀg-ô¦ì¾ðo?k==¢Ùà¸|ø4š|§ñäÔà)ü\)ú–;;?jƒ³Ð _I]h<Å)ç…õú˹,gå°Zo¿—Õ‹þXÎ9¼˜ˆ^\ÉS¨¬%¶#fÎuŒ,µÿÆùçO}Ń9Žs¾ÒNøÿúùÕŸNlw¼›ßÔ3oœ_ÿ:НܒnEw†kÝXŸÉ³|ãÌ%¨Óúô%u¥Õ&¡IèNr&›v‚™o–ºçì*in©VÙÒtš²R[{ÑVwºA¶ ¥Ò·¶Q(Ý'žÞÙ r®˜ˆü’ÂÂô¤ÐÍ£îìÉÀŒDi€Ìl|›Ó~H‰¿b˜íæ Êqãg -‚óHÌ ÁJ—Áe€–KÑŸ6®ÿŸðþã¤ï; Kcí=ëÏ7qœJ£ý²ÀtB+æà?áâO3RÀiå­CÍ,üêá¢3סÀ—Gc(ÐÃã1`âˆ7–¶ƒ?æ¢Ì·ð÷òpaÕ>¸ÿãšo¼óÆ&â•à”а á?šP[`{-è²lÔ”+ñCðÇah르e½E y±ÍêûóŒNEøðìç£Â(Ã6Ô§ êz‚Ž šÆ•Á\’Óñ”z¸ ݵá©#­ …?ºÃޱÛ) ÏâfüGãTÿ72°=úà)ú4/ <#ñ ´µõ’ÀóÆEf—³)D¼óî;ª"”ö~®^þˆì/->àÂB©9ËE%ÌÅ÷ gñ¿Õà'ø5ür]\nןÿ&”ëTx˜­<™®Ð(Ž(ŽLä©’SIëhk]Áã8£DEÄxà…[üßOI_ÑçØ{·»a0vÏÀ¿%C Kð zʽd¶´Ò zWWê5 ó`Î Ÿ´#pV1\¾VñšF-Bœõ›ÍÎe-ÕáñP@Ïx™ôtâäÖ[¨_è9µßÛI"½ mŵàežÂŸ¼à.|&ØùçÛ}õacuù.FÆ\×& 0rFÚ«ju#]´#zWvË%ÿQþ#…öÔÚHH}†±ý㥤ÿ])7 5oùãœ3 c¯M¤Æp3ìmùÞ[®Ã¥¦<“ç²Dëkoï üG*¯ºNçLžj;Í,ô*ÆßbÛ£ì= {fÆæÝÿæÎùÑy·‡ìºï'´\ÙŸr…uÎ:1ÝnqÓÑX·i`ýU^ðGmw¶Æú™û?ù†ƒ?jR;ôSOZgR˜°îg…eÇ™éf£ësC;âÃׯ¿¿m«ý¸Ü•ºÙöW'Ÿ»É–¤Œ6a#Q^rÏVèWyg»s× J$®L0&*q`SA{ü§ dÀÇ©6¡-g?å›ÿùEû5°r”ø<ŠÈ«©=®} ¼x…?KÑ 29µþ(\õe¢Xü%Ìx?t~9¨îâPÝMé+¨Ü%”Š×R*ðÉxªFÝ?º~w°›™.¢Åþ c´€¢Ð0D/E/©·¼2Áœ˜g~:Q«€môAþ˜éëë<³©y;@¹PlºnÃ3¬¦r¼†¾¦êü%?d"9îØVÚÄÝbó„ºÿ#³“Ú”§¿)Oƒ ¢åT힘ø³pŸij^ðHøì¼x7ÎÉŸÿʆÆöPøcÏš®v-¥ä܈£kf£Z¯ës>~ åXü» j~Ç篡°· |ãÀVi¾9ì„<{zµû+üÇ”Ž×ð&°ØEŒ‹Eàîc\KbACÏ€c( {ø{É8?ê.˜r/÷âOàE6ŽýòïÏïÀƒÖ§œ<…÷ðn(–=4ˆßðàŠA’KùWéèütQ|–üq–³‘ œ5ß‹Ùù~ù"Â-o£pœ lô-øÛÀ/Ì—¨ø‰!àŽÈÀüsÚVVq))*»¹Î~F¼;p8i8ýf꽯;ú53jyˆZó°«•¹ò‡T†ŠO <¶<&‡u á¶’BŸó|´kžÌŸ8Ò–OË5ºÚׯ™ˆö¨}ÒÜÚÀ†BŸ–¶úXªË8™¾øB‹ë¯•d¸TÔþú¾¨ÿÆ‘dØã E§Éoã qι©"»õW#¨©]@‡8ð=7-Hvk*/–·Gïk= û5©¾’å`¾ØÜ=YÄÇ(¬­_ý?ñº9‡PdŒµQô¿€^³’ÆûI7Á¯É1¹©c´Œ6ÓóZP»È-©«Q$ƒ’<'ž+‚ñÞ–¿åCÎ3ÅVÂ,„15þ£ˆwGÇÊX¹.®N× ÚÊ;çåöyuçñbkmý Ìr?±Êö†ëßÔxjþóÏïúŠ:iß¶ÌðGŠÿ’?Ä9äDv7¹ß˜v&ë϶³Æ—ÝýÚ-ïNs7ÿgæ/Ùékn®Ú_Àȹðk-øÃsç83L';ÓŒ6›ÝÁVÊUÒøw=o³ùáû;R³ÀûÜîèþŒ6®­oÃÒ7}–󟫬³þõ:|Lnõ|Êf W©=”Úæ_c džÿñ­ý”3v_ºÇ̨»´zb%=Ãï?#êsRþn$ W¡;6å¦xÔë£üqÝ—#{¬½cÃ?vS1àò]›šÁ5äà@¼”Ðë)ÁÉSáÇ>~~m?7˜£ °æ::#)?,ävÀÕ75ǧ¡:Ãñ= d%Êa›~pýîrßoÎs›– }ÒÒLŠFÙZ`õ…hAþöÊüPjîwþc6X`š?•ͪÿHåä3H8qà<?ž7ÄHÉŸ½‰ØLKs…‡ñÐõÀ~Sá¡’Ð% QGÚêú«[b@Á×äÜ,<lÔ…â²ÿ&•¥ì¼…ûãcr1^N«ÀöÀ—×hŠ9è¬ ïŒÛÜN‚ƒñ¿]ØÂeø´Å~¸´ý\R¢³Æ¨£ù ë @ÝÏE)>i/ôYÎólŠì?Ïí^³iÑ‹þó?¦ña‹zN„ÚŽ1X¾ÔèງgCà¸l|èìÈpðG)Zîœ|/â.—¨D¿e<å;$ì% %ûd¨®Ð—@ÃZ_æsVùJŽsŽ|Þƒ˜3ÑWã <ê¾oŒMÅù´©÷C‰,3d´Ô•vœJÎè¯7$HËn,½8¿¶&Ïà¨Ãxº³ö]Ž]¾Î@JV½C͸ ×´1è /‘~úP*Éx™«4¼þ G€Ó?KKùIGë_àÔ–ðÄ,ëÐ_Q!šø6ÞHçˆ{‡òð}h¦ú’“ÙÇ´ƒóê6ͨõP畚À{ÝÒ4ºMi$½.¥%TD¾Ïù€âØŸƒåOìëlû¿çGM¡[œÍ¾°I$Ž÷=Z¬¡¾›p0ãµ²ÖÿfÔŽòþ(¹ä×8âŸËgý«¯ü»Z :þ'ÞQgŽégbÄ„ÆØa/Ë@ðGG°ùey#ëà,ë{·¼\ðuu 'õbi5Í#FoÐdš•R’6A>0?0ïþ7¯§¾BλÓ®?¢ü×ùKÞ8 ÿ‘Û´2ÜšŽ_oÆpS¹_ºsÜN¤žjúuÉ7Ð8˜¿Íi¢!“Ô]íÌ4#ìlðÇr÷ÔßÒ†~u4ggÍC;(!ÕµOí/N:øŠôÜÄ·}þ#í'Õ¼ŠsÑydnÓ_À¶VÔŽc<|q^ÊcoÓï@ÓAð³eh¼Íd«’ÿxèn27l¡@þö @Á;кÕè ýªE7èOŒ¸g6&ÅÞ–û¤÷çIh(ü‡} xšRûÏö£nT€/ÓJ’(: Þ©‘ù˜Z즦£Têý PdžOÅ­¸ù`ºD;Qî´|j(+•·ß;ç>k¯‡ãPjø«Ÿð?'PÁVƒ/šA ñÙ7T—«‚?–ÂÑÜ‚óû TGØbæu(Ñ’:yLe´•ÿ<÷Äè…}`¢ò”?½%cêšk@²o9o¦!½~è¦}cûÓ…Pøc¢/Šh×NsíÊ)Àã©"üG®V¶ü¥Fõ…§ñï­X¥°-qL÷»Yå,ï°ÛÖöÀÌNÎóxZêÐzCàýyY /{d’FÓ²ê>,çïq‡¤@çî|‹7ò ûòg |áž³IQžÜà©|ŽýçÑφ:Ž+Syš$Ò¨@™!º\ŸMkæáK|•#ü²h¶³ç½ˆkÝз Q !b ÿkžèÏØÇñeîR7°~·‰ìääÙðÕæ£ü˜Â?ö¥ö¦÷?øã[> -Q{óAzÅkdŒÔ—ÞœP¢xƒàÎÉVm/£¸ºdE9§‚—«ðB> ¿ãJc¾dßeÁØîûÑ€ÙU™Ÿ€? ó÷¶(y²U~Óçp4› ç;©Õ\ºüÑ>§®öV+‡ÀB}Qúœ |ÞèÕÎ9æÞ¥ð¿Q ÉMUl6^Éõt üF–tÍ≷S_ï·À-ùôb-NÎý9¦L¬ée+[KéÏ£DPŒ_ƒNs&Ÿ²ˆë5Ð¥ú+Nt–.Óšê?_R;Éð¸€>„ÚŠË'1B3a¬~lýîgébÛ;†@Ù7RÍ»©5á¬ÃlÖšË;å} ÔB×rL/ªöÒL’Naæí·SÁ•u8'GÿWÖ_Ý×ëÛ–¹é+â|lGÀ‡®DÎ'Ÿ»È­þpç.ôåqó¸•݉.¹1>óýÇCßL³s½}Oåh®9î^sF;ÛÁSL/³Ò úÌý…áºÐ.[ó=Wàüó.ÎKç -F÷LdÛÓF¥²æ‡OŠØØYä\4o0Sn“:@VåaPÞµì_И;¨%€GídÓÙ öCHüŠkf˜Ó6+‡_Ó®¢ËÀ¿ªtŸ"ó3øËÄßÐyøxPþ­>áü ôÄŽ±í *ʳé¸låYÚGØGáy 8¥9\N êa¢}¤ÎÍÜB´:à?®Ð)pÇP°SVJÊå€Tñ8,÷^ï§Í”³l4U Ä¶ñÏÜì›ïD£d¼³'5œú ”²-ýBçèŽÂyèWè½»´ÿ>‡¶ 1l³Üf4¡åZŽá¤3µÀ0‰àþŠ¡~;P§:p"ÂÁm„'¨j.òx(û’< ¥žF)]…VìHgBá!¾Xf€]VŸÊÍç>ô?uçRà¨Çð•~þNŠÀEy+Í‚Z ï´‰Ú˜mÎÔ´[ ; º?>ÏâÀÀ? ›P›µó£®É¡ŽÌáRZ–ïSLDÆA<†GÚxÿX¿[νgS 73Ãa¬â]ütF[?6ËLn-_驦?éd^ÄÅ€—rq&hçcüšá¶m q~Ôc79ÅqðG8®oy'Ýàö²E ósî¢ë5š¤û´±lß•–Óüû¸ î{ƒ×Áïõ¡j¦ú{ñòÛ( üqžqGžBgx¡ô—*R‡ãÊ~¦éõªtÔž2š›BS_à~èëÒ`®ÛG^ÃÓí·ïÖãð}㌣ŒhéT>囊RÈ©tNT]¡í4•~¯³ñUJšÉ -¯áPÒp aá•b¡5ËP¯·ñ:ÇÝëô=fRª$Uh™½¶«¥w5¡ö–×2^Sx“õ€>Ó$ºZîëEhûµÒ.´ øw)æa$[Ж{[ßbÀû69ÕÄxÃsmBJ,§´³Î…Ü>Û¤u¢ÑÝà¸~¨íTUùEÈcz –‹Q}ÎGÛßòÇmgº9j ¬ñAkí$ÉäE÷FËvy(—ä–dÖöÞ(/‚WÆ+¯÷8‰—u/"aô\õA;å8Eeù‰y—±åÿãåTuÒ{^ô¿>¿VœN w¥›Ò43‘ë¯fûÊ»õܪî2÷¶ÃÎŽÏŠ¶Ë×Èì´•©fý´ÒÄ3ùÜÅÎA3ÉŽ4sÌ%÷ég>¿ÊbÖ"Ö›‰êBýöµwmCç;÷°ý þ#’mfÛBŸx~Ô7ÎjðØv: å]‹ªjrw t6{±—êQx ØHÑæ²w>!^DsÈ<´Õáæ5×RÞ6º > Ç]q°\‰nÛ膈>ž¿äš/>1M¶c5 º8M¢¿m9êJí¨4¿„ÆñáÓTð“1îº4gËoî—@äNpUWiÅ¥áèŸ("ævGþ†•'CU¯¥eª´|@lÛÀùû±Fù&;çm,ögÒÏ ‡ñ=²•èW0P¾llÎõø5­Ç»M éÀï»4üZ_Çv’›‚ôþ¦1à=à°–èÛbh¹7øùÈv\ ÿnC°ÜBêìåwØ:`™¡>¿úÓi—£f½à8RqÔÀùQ)׺'g4¤L¼¸×\—–7¢%ÃÕýRö3[þq~ÔA·±¶JÀygçàïÝÀÄCœ=°ÿ|œ>ÐÌ¥%ƒLæl|‡RíÊòrøº;yBÔ8½{Ý~µ’“‡@eoå1è•ñœFòÊ@*õÕjº ÜRD^‚åârbø™åp*­84ħæ{W¸V=I/à¸F@ lƒ’îìûŠq[®Á!ëôW9Âe¤¤ì(¸x)î<Žw@MübÜ÷âõ´ëfEMþÏÑ-ž*3¥Ž â›ì_OoÉ:CÆr‰¯‡¹×â&<”ð3¾ ç°%ØZ“¾šÎЇr‡*ruîd Ò,Ô²¹>’ÄÒJ†k_ø™ïu9âvÍÒzü!oÓ D´…쟑æ¾×Í9âÞ¤Rü 5þVšÐp–7q}©YtüÇÍî=€[x ÿqDâBßOŧ~ÑŠ­Œã›ÅÖµïöKös˜0ë¥1ò.òbüÎk©—µŠî“;r0p~mݯ™t!x¯²dÓ¸r£+>;Úü+ªó–?Ž€FÚ p3# ˜&Ù ÉêÔf²CÈE9¯mu´7ßKêåõºè).æåW•¯œC?fû¡GÐZóÿ•÷aÊλ=}õœÈÿ%Äq¶9…ÜMn1æˆÀjóù¾"n ·®»Ü½äDúÌýç}}Ì5øÖ"PóÕi¨Id’¹;Ûì ³ÊÜsû¡åDúð•ÓlÚO×B•©¼ÝgK8ܳ`¨K&‚m>IjBžùúÕÊ9ìì6[yåiUã>ð¤©ìQêNAT‘nÚü4ØÆ´™ì§ì™Œj¶‚?ªõ6Óbø›•µ÷ ÷Ãpz'R€®÷žÙ'öÇòÇ^_: ò<ûÜfè4ʹkýû?úP>þwˆL­á|Á\^"ÊR`éeI&ù;É'ý90**Я"/Cüq6ò?ò·WqïØ"¸_l0wžÌèMæÄòz´¤VW‹ëϺ¥O)*½9<8poäÓ@éð”™V9÷C¼ÿˆƒ¹„Q›G?nÒk(c$û¤týŸºX7¥æq)I#8&¿Ï^¼†ºŒ¥z¦ò{ñ¦ÚÔœ•/¡çšðo¼–þOøó·×â0rOkJ=-Ë´À#HÝÏÐÊeyÚã!|Rs^,ûj_}g%æÚ|œšB¥T³À•“¥¡>—µ— ÚBû·GÉr©¢Pó]\ênØŽu×@Ù¬7§ÍÏö¼-õÑwÉÿ¹Z9k s”fÒ_`¤ï¡C¿Ål.HÕí9 ì.ôæ]ðÇ›Æf´ŸRg5»Ì›ȵ’üý/ ëýY ªVaå¢Ö…‹¸lKÂþódôüqÜ>¦‚p4yQÛÛ¶0õ hWÞ&"Ï'W|Mm?º°‘›ÌÑ_'QãÈÀjþ’Ô<¨XœcójÚþØŒÒïG©SRz[ÍÙÿX‹}½³Ö¿ž¶J°,öØúÏ \Lí¡\ëP]0RX^w”¦¡|}áN‰s‡zþGz'…)GOHyfò°[-ªJÙÁ‘y3<åÙü3´ÿ:êà¢4´Ç>°¿†ºþª¹ï\à®Ëé9¸×Ÿÿ* ð·8Úm-T^">Èx¼I6^€ûÍFÜép ½Ížäß]çö³ãP·4Àú±\€"ÖfÊʧÀd50ð±”}ü•d—1\”LJBk/Åï#,Û¹Ø ¹Wlnj >ꇴƒ§Ó+Á %ºÌå®àG“èP].(%ŽŒàHœƒíÏø÷– }‚œ­ïE\ê2z;ü]40\e¾Bw¹×ÿ!î-À¤8¶°áé®:Òxpww’ ÁÝ‚<¸·  n‚»»»»»‡àîß;sŸ– ü,÷ÿî½=²»³gªºª^éî:GfKŽ õu‚>ÔßtV’ë\,° lôüq„OòBôe:µ6u>ˆ×ßfàÄ| î±üÌ.:Ç«¤±4¼â+ú‹ÆÐ]ò«¶“7õòjGÍ*;Ä_?jø# Êõ#óew˜ÿß÷}õƒìÄ{í+í„L…ÿóˆæìw²¸SÝ"¦†y¨¾ÀWÌMìÖ§ˆßÙñEÑöùæš3Ö¿×? Õ¡æo7šû³³ÁL²KÌsÀ}æ|YþÝØÆ¯ã'ÛLнE©¹Ýor^:§l9:o›Þö¾ÍaBVù¤¡³Âyn®U¯ÂT†‡¬Ïþ½iÅìEÔ/LWÀÀ lHj\%2Ëá?r¹æöÍýM+¨ ]G¤›`f¥Cö•µtÇ– ”ì|`Ãqi^噋nÙâ4¯ïøP;1/¤d`?>60á>Óç¶nI0Z7ê \ÞMá€éñàߊ@…N‡Zó;±¥oPw°}[Þ9ú‰XK}Sœh”­ªF…ð;¡éTW=Ú çáp-šˆõž—€?Ãl{¬€Ç›a³˜ur'¥ÉŽƒ³Ÿ£°üU:¿=®»éd"ÈbîÁ¹À¢#àz ågíS|âÞðGŸgÚÚ%XÙó¹"ÇaáIàÉnüQ–#‚ÛS~heÿÕ£œ 1—Ó$ôx­¢ff­³ X¼Uî;ŸŠP4èáÀò3ÜÌ‰à šI"9, ô¹|+縕ü(3¹/!ÏàF¼Šûóo6¡ ž !«{Z§'¥uƹ Í9‘ÓIVÍ]$±>“ot@¤Ÿ¹w ¿cL¾Œ™úû»xƒÃðõ1n¨‰, 1™»ü“žÒŠÚY†ÈjMîÝÖ›úÌqR^Á+E×i2=î>Wα Þõ·£³ÍÜ·11Û{!N¬±ìÙë ¾˜¤—ä¥ìÑœ:ÖßcðÇp¸­˜^BI­žÜ"áÝø­\Ô‰«Ò‚ þc-ø£,Í{Ì…ÿØ/5¼]Ú@æJ4*Ç´ ¶õöÀ!UòÊ©OÊ{yà5¿“WrÚu¥\Ûò¿©uÏ×(H%ØÛ¾²Av£ÙÑYídv'º LKóÒ©ÈUÞMîvu—öîú¢hû}“Ì[Û <#µ¦kæ•›ÞíÜ^l™Eæ–{å óï~m^A.´¡¹êÓ$ûÚVp9'à=¿³÷ÌT›”}t—ó?êÎ:ç¦y„µ÷(X‡^R[¨ðRTß^N¤öäÛ¼@<3`Í&ó•$¸z3á9ð¸*[~l ÈK'à›âQª‚úQ?áó§Ù»6Ôì&Ê‚6>±?Ð@ m ô¸…ð ¿€IQó¹jÅcÝêt ëd]Á™{cÁT¢bÀÑåXÙ±x Ðÿ-¦¸…GÒÏÿÿ£þù-ß0'µ¿ŠÎOðƒÒ}[gðuÆÚnJ+¸%¿†¶Ý@çÀ›Ð×üwÛmšÖŠéT1E¡Â#ñðÇ>àøPÁ8ñ •×›™&‡ìNæé4§7}K7íÛlüÏh¿ù^¸=ìø¨q\‹ÀM Š˜y‘¸Wà”|Z³”òTàwT0ʬô_iç3; Áâí €R‰ G1‹ó EÝáª2ò0F&9̺/Yä&¾ª-‹¸.Æ:%”sÞ‚ÏÿÕ&¶EƒK ÷¹E)} ÿîôùMàÌ’C–ó‰¤{ä{Ý¢»x×вŒóñ×|žÿføå)ôÃÂ`ù¯¸‘1ªg0ÛRð(.‡yáÈ09+9ª´Ö9úF׈OI%ÙƒxO¨_GÌyàéô£iðA¼Ö6ë$Æn Û¾`ÿó»Me"üÌS]¯ õ¢ôÖuò†{K/òDnÎUx-üQ$‰(ÝyOgÝw…Cç´†ŸiÎu¸–õ(“Ü–NšV+ÊT™uKséD0æ/ÒRke½Îþúí9”l$ª¿çQÎ^7,ÖQîMíe•°¨ ‡?Ö¾“EšÀ;¢Wõ¶FÓ òÆŸåWçÈ/[ÀÌCÏŸšol³ ù¯Ž˜Èƒòú3cpdzdóKx¯(ÌjøÀñ²E—Á½e×Uˆ³Tbè8M/Ù5¶xŠsNÚýŽ?N;KÍL¬„u‘™`·c’Ï åý!Ó$“Γ‹`¹‰Þ^/®WÅk¥›¸•—Cëh6¸¸Kp,'0Ëʑéù¥ >ÿÇ_cçýµÖ{¾ìNȪðýóxíÛèdwǸåMsÝmâøó0Çws¹ýÝÕnX÷[gÛEÛælئÀ¹|˜­9l3Ú=âÜ2[¬c—škî '$¹ ßá_/³ù êÑD¸ÏtÎEg›­Hmi;ÕF¦:¦xˆ"–r¶9§Ì%zƒQk¤C]x£ÒÖ]ØŸ§;9pg¶ÍnãØÔHdsÔܶ(*{ì&¨•jØÅl«þÈÏè°ãŠKMCP?*~š%Šä; ­Sˆ~f>´M¨û½À©]ðÐ}¨ËgŸYîæ Kü»OæñiE§²p ¿çpü+P~ X3_¡iþ|O¶Í'ït-ÀJ¼ú ¼˜ƒæöŸ7„ÇZO• 4«y*‚á&Ù€ vÐ.ø´<Ϧ0Ë©ó•Ùd ”œ§BÓõgAÁç'Ek“ñ*g·™ð-8øcz;½¾oýU/.}„?Fùí2zEøøÂÇãOŽG†ª-Æø–·Ry>Γù7p]~ÞÈV4nv í0›þqýj§Ûn¦,¥ÿXÂ…ø<¼ÌnÊÌø{I#gäOM,W¸²”ÆÖoÆ„ói}ÿo°9‚\mÿ×QÂ}h³Ã1dÁ™ŸË§¸= ù_ Êtn/þ§c‹ép=OË-þœ‰YûÏÏñ+˱юýÎú"žq“ƒýna$ÓðŸÀÖcJVÉ&éÅ᥺.TöÆèiýQžpYi''¹>¿‚‚? ?³š·à|–4¶°¡MÊ0»NQðÇnzÌ[d¡Ô…߈/t¶fÔ;2B'ÈUn!_ë>ÞÈÍà¶&ó¼¬ôæUAöÎóurÚ‚y[ÀÓv‚JéŒQË$Sd¢t•Í2]Gi=ͯót˜ŽŸ¥‡6U+KáGpdÙó ¹ÞWŸåœpoƒýŸBCÔ•±TÅîÖÓkÚN'Éo2UK{ì= Ô¯½ ÏÔ§ª‹¤'œY'Žˆ¸Ï(ª­bß×ëíìl6q1ÓòC“Ý`¢g6§Dózèv𤿒×Y ¯½ô½¬éu»¼–Íš£[’bfæÂ *Àaicüí[ ‹Ûbýt‚›a—I ï­vD=](Ë´¼fóNÃ4óšk2©â•Õ’ZUÈ#Kûm*Œ¹‹ÉÏ¡óß8®û~ €ŽéþMþˆàìrRº£ÜЦIx~w–¯€›Çíçnpcºa¾pÿÇ.ß\óȶ§¦À¿%ÓÆ7­]Ï}iVÚ«f¾¹à^ûÂç¯òšˆÜ“V@‰žF=l8JåwüH5xÓEÐ÷Í>[Ëõ_Gg¾óÀx|Âsgª ×Zµ<¥°‡¨%p¯¥¢&42YˆêºÆï†‹cn­^®¿í¥Òôªþ”…«JÐ6QÃSíÏòÇß¾‚tÏβl ¬¼ÝT*é/[€úƒÓü÷7×Qjž 4œPªþÙgZ»Ùè1¸§?pùZ0™’Á/£çü+'å‹À Õ´xŸ9lšÝVüÇ^ºÿ{¬õýØîÏ4’-‰Kwm-ø T•obUÕã’ìßÇñ/þXO7À!Iy¶Íb¼òG2S.0 Fýn¥|MJ´ò1|}lÛÚ<2Vãìèï0°•Ÿ?®CÉ6¦#}~÷¥;Ð.E´¡ü#§c†&€¶€ÿé¹Á&Y1k ð~8„n|—¾ãÅôÌÁh-4{1ÁâíwÛØ?)eã`Ú<|šÑ DÛÉÙ%¶Ü€ÿˆ¦edØ$ŸL†þ/·ÑòR^`¿ûGýÁîu›Ž1 æ)¼ûÐ]ɞēIÜWè+)ǰî%›D—™ÀÐ|ƒÿâç)ƒ5´Û9lÿG"xÊÜ8Ê}=½ái2K²ó Áóu¯–’œV ƒªòsj >º„þì”6uƒÝÿˆ ÎÚ6mÇÃy)]ä)2DªÉŽ#u¦пÁ™[åÿ ñô<ÀìlÆ<Ìd­¬&M¬Í'¨×ã†ÖPZ é0ªùd‘ü¡S̵u©ŽÔ‘ð8¿éךUVsn7³š#rþô|oº³ÃõqŒikª'C¨¨ÝAm¹Šž×dàŸ]ð -À®çxÉõ€ÜÓÔøþtiÎqà‘Þð*Ìͧ¦Búµ &E+¦—üÄ>·ßÉ[­«þçŠoJQ}¦tŒFÆùˬË厴Ô$’^#‰ ^ÛF ïòr’ õ£v9ÛÍDøâ)‘ô§=+Ù¼7ÚT†Ë2Y/7µ›V÷ö{«µ¢×]SI%¯$ú[¼t–FÓ&;Š2Ó1øRkßgüúïìÔ ÂÏ}yœÏ]ÑøÔñÖ·ÙIîÎuË™_L‚@þöé¾ün·‡»Êþø²çwù™«¶1Õ¤X£1ml£®ÿ¹§Iö¤Ù`n¹wí)ûôß\¥6àräǹáö´­ç»À†RÍh`†–3…CÔóüÎç¨9Fé%"ÖÊ×åþ@°|v7¾>@])+Õ…ŠHe³ÚG!ˆ§æŽyj‹ñº Ô|5_ üñ Φ&þÍÁeé¼õ×; ‚ëW»| (1ýaŸÙÐ@…#Àiÿýó¼Xñ¿Pn¨üíô o‚vò_oB-?›ó«§›žŽƒ‡Óe`ƒ361øÃ•@¥ß†ÙÄ_ Íÿ?ËOìÏÎÉOÄZëë뜷qø ý@iá£ÐM[œ³~䔓j¥Ï˜ãþ^_³‹ð›Í|Ìk:N|““þÆYš‰Bj®vžÆˆÌ¡+¦¹Ê£8g†£ASчD´¾¬ÅGóïvô=rÙ­`ÆIÜž…ÁJ•ñÞxÀ¤o8Ÿ ì%߯½¸7p%oë‚þ›ÑšÿüÙ—›nOðGf*½¾‚KÁ ¶B ñ"®&$—d¼ÆÐ²™ËI  þ¸µ”áõÜ“WÛ¶T°gtoÚôÔîÍ_³o ¤G4^!ž,à_%†ÖÒ:D·Ý³ŠÈðGj>Áwù1㈗£ÎÎ"u#ÒŸÐ>ŽÉ›¸2¦'ÜVvH6üF?] Ot?^å8g‘ªr çà5tÒ ¾ŽOX‰ÙÔÈTú Þ ðGf8èõÔ›§ñR¸RCüO0=Ðß4>ßu£Üâš’JO@}´:ÏãÛp w¹=Ÿr¯pµ¯š3ŒîÁï\¥&˜ÅµíK{†·Ãg¨~#£e”þ®q4\ÍLí&dØ)®øï `#ëá„3Ðoïâ wöº\ä+¸î2†¦Û t‡3ê9àûPÙ&´¬wK¯ªãeÒ]rŸòDÖaTbrWÄÛÄ—)24æû|‘œÆ`äÃy¸Ì‰¨¥’bÞOú§Ö¼•åºG'ê·ºOséxy ¾K%™4ÜÂj¾¨hT€SÐæwü±Ö™n¦B+ÏÿJãm-Íë­Ô^ÒW6€Ñ×k1­ïõnj9¯‰^âòÞ×ð^Ùd‹œƒ«>d'ctóc¼Íã¸Çñ>óþ=_Qçsõ>u<÷t¢»3Ýʦµ íúÕÉ2_V7;Ä]è†w#aþöÕ¾Iæ/Ûj1X9¬}ìÆrç9ÇÌP{ËŒ5ÇÝ‹Îë/Š—Ø<¢^´ÌV>„ÿ¸aÛ;ênµ¨–Mi§@ß— aþ«²Î>ðÇ)z œj×]jÅã ð ÙsÔìÔ:·!æhb›×~*Ô‡YiÎØb`£¹ÀôEh߸šKšÆ?A…eãŠtÑF¤x3ׯŽúRS,a[ÿóú»pö²Òûæføó´‘²ðfJ §4~Ö4wÓ¢-=0¯O¡uD¿Q }Dÿ=RÎÈWèWðÇN }d¾…_2ÙjŸ¼R¹À×Õ¹bóñ(·ð ±áükÑ÷ˆ[—ŸÝsQþ¾h/e!̓—ßD±yÍõÑý1¨æ;r8O¡¢t–¶R}ªþ±n6yÍ]àSe´rœÖthÅ(t:¡þþg´Ö¾»n»£:Š7?+Õ öp…mà`ÂB ·lç`pO³óÈ_£ý0 7û9Áâ]pÛÛ1TŽc· û³æì¤Ä¼–ËÂ\’Åü±n¤¦ŒãÚPÌIx6pÿÁ <‚_K­î>´™ÀÙy"d=ÿNwà?’J2™Íý$©Þ—ЩËð³l⓹œ“ò1¾ÉadDÀ¬u–q£ºw¼oÂLù‹'ÉbÉÊO¸.ÒçºRi^Yù¥6ø£:‡‚¹Áþ:± àçšÛmÛÛ&‚ÿ8Þï\|^ý\GZqT¹­Ó5©ngΗ±Ü\Rë.œÇÆ\þðÚJ'¾d­œôÕv~Åk}R>¥¾}c£Èjé­¡4ƒü*‹t¨&ÒRºMçk{i.=µ¼Æ”-`¡~pK+1>oèõ.Þ4ðÇ *ÂQ¸ý ©²¸ ô‘×Qr|TÈ{‹¯È‹£[䪆ƒ¬’¶‘vL²,æÙ2Aîtw–›ÈpÏéwzÆáÈORyyu½Vѿ京ÔðùÁ"ñu¡\‘ÁJRK£Ë3¬ñ³”s¿g ’?ñ„³ØŒ´Ýhuÿ.²»¤¬wQÛÉ|9*Ûe~ ÉNoVð:ê^þÑ‹¦ßh9y$'i€ÿ(Bû)4»ö±ÿ㥯“3”rbÿ›üÊÙê¤vg¹5MWx…ý…ÝÜÑî ×sÕ¹øEѶû†™S¶ •¶œHŒgÒ¸kœ—f¹=¼=á^vB}Q;c›'@ƒYöÿsô«½j³9áÜã¶:Õ´åíþ#düñƒ³Á¹fNÓ_À©Ô:©ôï’·WÀPGÀèg¨ˆ6Gó'n1mEr¡iÑ6z…¿kNcm×ÁwÓr%:gßÚÌ5ùÛú²P(šmC}ÊÁid§btÑg€ÛrC¡´¼†’Qo(矩ýg¯ÙµuËÓ5œ±ßé&Ý‚@1€ÑI¹ÿƹ9¯¶`ÎoN^òW¢¶É'ýÇ:_{çšÍ þª D[Haá?êÒpØpR°H¾ˆ(‡ðå´ ÿ›ƒuá¯?ø1­ÅIe Ò[ÿý_*EW€äõáû²¡‡.Ðú©ož‹ª­¦>4-M—mÿs´Í¿ûÒíbד´o þPž‰Þt¤0ÜÊ598¯åäÃÀ½P·™xÎßD]‹Ï›l9sƒÅ»ëv´3©eâ­<Ë {Ñ90øJ.!qä©,Je—]\ZŠË ý#œÁÜ÷áÝþýçÁs±åwïØtÔŽ òxÞÁ›y,=¥ÁSRÈÜ[ÒëWZI{énÄO'®Lä ú/ðÅþ+-{œDÜæF¡þ8Ó¡ ²ÿà ¼“®óXY"ÅÀÝt•ÞÕåz(uš‹I}ÙÇ߃§»Â}¼äU¼ H×.˜ÿh _™ ,´®Á_?ê4/’‰ÒP~ã°rKÇjz½%ct0ÜRs°Ý@üz<Œ í­Ï§ƒäjXékàL¢`Žã𤠸•I e?|FDM)ƒd®NÒ¨ZM7Bñw•Î2P‹j29€që¶ÚÈ_Á § rÿc¬s þ#/¾ßƒjËX*c·Pu®¡7ï£e½,Ôï½;ª^x/%ZùH#ë#(ÿNõ®Eæñ ziŠÚ÷Ï+7r6¥ô'‘[ð´)%”WlÖNïHD¸·ù:MSƒßÒèjy-5ž4ÑHâãÐ|šòRøí,´ïìpVš‰¶ù¯³§iö¬¤÷^j™4[6•òxû½yZØ£W¸ˆISjM|ÎiÿÕSÛs~1|z(¼Íã¸ïëà¼î貯üÞWxDtv9™Ýn]ÓÀÄqýOg¬ðÕtK¸}Ý-î ‡œS_m‡o–ya{P3 àŒ_8“ÇÝꄲËía³Àœro}áu¶”Æõ±ÔV‚kèG〯œ(î-[йeÃSM“9„Ï_-sþ6ÃiܧP³o¨ÿ¥YÜÞÁ|:|JïþiÓÚü!Ú?˜Ô¬5l^2à´‡žÑ1ª‰¯îS®ÉÆ¥éˆM€¨ñ¨âgùc»¯(E§©ö ìÜIßÑô€šnìyLë(o¥,4 s¯U0¹?{ÿ£ Ûü„>g3¾½fk¹ù9Pu ¾¿ŽÒGQ.Êo2Óò߯ND¨ø=àŒÌà‡XôØÖ‹m»KIá?JòÓ@MØøé2´pÎÁ›÷£û?Â81LyzDqyGw¢?¥ÐºÃ䯋°ÙÔ0/Ù¿° /ĸŒ¡Î”ç‘¡áw|„?ºø^¹ýìÖÔä/GùÁ¹é!™¡½Ãe{uü1 kv*¥¥tÆ™ÍÎïÁâsØ‘TžŠò"ðBe>õ²ÑfAÏ'‘“ÀÒÔ²˜ëK!hòbð])x“?\È|›Ðß—S sg|´˜—࣠[~e–¸2™»I*u ÁÕ…ð/_‡q þ†ò)öd »@˜uκ"®p¢wgùÛ"ò邏Œ`ˆîºYŸé&=¢¹åçÒ²—KÁ‘Õã»|›çcþ ¥Z¦êñ:ØŒpzGáoýõÿ¤‹¼ñIŽ!ᾆ2ÿS»Évô8šúŸhɵë>Ç—×Ü–ÏØ÷ÏgnõUsÆnì5su³÷í7²KzihM#“e–NÖTÚ@Wëpí#íe‚ÖÔ„à.81á•Bã™z½‹7ÃÙïF§…â–Ô\æQ è„\\üG;ËNY£?zÆ{¨á¼$ºn)œFнRÃÃEƤH¶˜}_?¾­sÊÄ&VünôœÃÐ=ûµ<€Kتuô´ÄÓ…ú‡ŽÐHz.i’¼ÑšHÊk(9 7»1pE¹'¡…ïøãš³ÂÌ ø˜SíJÉà…òÊJÙ v çå×6ÞFo“¶÷êêCÎæÅÒìZKÂè~¬½Mv,å„–}NáìÈO¬»ÿäñÔ×*HÆÝk¾ÂA®f}Ùñ•³ÆIç.wÛ™ö&¡ë¿Z8 üQÏþ°n gßE[ç›d.ƒ“›€­‡Ð]óÖMæ®wn™Mð«Í5÷ÕîŒkîc½L´õ ¢ÛÒûÌæqÞ:mAÊkÛe6 •áýó:Îç¶¹ þðq}ðÛª «H%í^àìàT:`âp›Ú–²ÇC/½Yj®6/ì¤x‚YÑþ¦ëk‚òsQºbCCQÅ AýÚ ¾Ê&C%…n^ TÙ|Àÿ–”*x'øc "õ>×§žŸåÌvn1 U7ø ÿýsÆ"2ürøAü58n4“?caJ8‡ÑT޾…ÿøÔþpþçmZ^Fu0ªK(Zö3Ú·“J0cEµäÒü€&€=v‚EÖ¡waÅ-|ì>RD'–)AW)>£m×ÔcH•﯄8Ô”3WŒ%{Å;ƒÛºQLºkŸÚ^ÝÿÑÞwßiµ-äê;PÙ½<ÎYdhÚŒ|ãÚÌ·ƒrŽm?VÓd(ÆÅ³)ðÁïŸop‡ÚAT”òñ<þvœ~¡U”†wrðÇ``(M'k¸ äùhåèíåÜ™×Á_̱ÉÿQ°ˆõ3}ÍsÁ0;¸'\áhN&ae<“ÌúJJhÝ~J'wðŽ˜p GàÂȯ@¸ô´+lqÜüƒ‡s>ÞA/¸«L—¤^šê}¨ãõ¢V’c\JÊúë\ò·àÓ<þµµ5Þ¡i†qͧhuƒ3Kxô‘¥;rFGé·ú·ŒÒà£VPÎçpâ&à÷#ü•ÜÇl:n¿‹µ*v.ÎG#Ì×¹.w´lY%õ€ì±¥¯ÌÓúOóê0¼:J;é¦?kYj¿µc§ú¿‹7ÓÙâFäÆü«µ¦üAíìJªÀÅuüA—@>ßlžz4´—PÈUÄ~„j‚ó7‡¯Rx[Ö–~×ßÎnn6\¹ObÒK[žh+]©õô \•ašg0¡®Ó˜:Q®É6M*ù5²ÜÊû]ªÌeií;þ¸ä,4^ê†Ù?Ïn”4Þ}í÷±ìvN kko‹·S[xõõ÷’jÍ Gä£%vÍ5bmGbÝý''8ïwœ_ôRÍöËŽˆÎ1§ø£–ùÑÄÜÿXì«åær»á{¡ÜÄ_øüî9ß2shß |ÝNפwÇ9gÍR»ÍÌ5gÝë_Xÿ<½ñW+?dKÒiŒû/ö¥Mé„rïØÜôMaÇÛˆT„ìÊ] g½ó6?ñ-´}k ýhžI©°½»~£´T—zÁ±ŸÊ$ôHgÖ— a½øwÎ-…«‰Í?‚=.ÓCò_ÕÊÎyÐîˆ@Ð!¨_{ÀW‰žÛ5ÐÙ©€ƒ€`€íµ¨0Tþ*D_ å?ˆ¦U;šÏeèà–'¿vî ¤>¥5ŒâÅüÏæƒ3zZ¨L˜ { •¥ ¶‚ó)Ö\á›è¸Ð^»¨¢¬ ¥×¶%•¡Ô†ßÂ9´ÔÁX FºD“ðó9pb1yšÍl>–k9¬/°ÿ<Ôn^:„(+ ÖÒàúTÌBʾ4°~õ¤‰©tãÞ÷£üÑÆG¦¯Ý ¾XÄÊ?0ÑüùK:r^ø¬k˜‰iy#÷åÐ¥™x>8j&§íð;=à?~ o­ÛÛÎA„øñëSu©ñUiøƒ#²þ#=pù)#³¹Ô}8Þü»ƒó:ÄÆ³ÁŸ‚Ìîºô õ¢ < w6pÿã7N#ñeø#¹JÀìƒ{Ê ¡€y©9=Ÿç¿ØŸËä…-L«½DÜå& áàZÿ1„«ðz̃e¤ãWÜYWÀü©'õG9Í¥º¬â¢@ÑÒ|ƒO€åNà7»»~ÕÓFgùïBµ7l¥£ðCM÷3­Ì ^À ù¯&À? ÅÏâ¼´Ä ýg´^àqv>ÜÙÖ9zD»Ë&ø¥ü²úš~âÃðÓy/Fº“ùáƒxum ÌÔ#´œ€?¦Ò)/3¤¶t„¿8ª¿i2½ Cu¥$E;'Ã]4á©| ýœkóû>ÇÀ)_)§ÖA'>÷]•²áé%ï•æYsË`ðÐ,Äû-üC ðGwý cÝ^ÑÀÓ…áP›¾ŸwÎY×j°4§¢²‘:Ø4cûýÑL™­iÎéD&°zDöÊø.hý ¾FqìÏAîtwΘ(XCE0«.pfºms‹zßë0ø}ŒíðïH-¨Çôkí Þë wôF’—˜M[¡4³c ¤ïøã‚³ÂüaëCùó$,µË$­Ú'[啬–gZW'xG¼HÞ÷^78ÌAàùšCNÂL¦¶·ÿ }¬v±Ás ü7Žë¾†A®_]:þ»û#9bîL·¸© þ¨ØÿQÕÍë6t—¹ܰ_¸ÿüˆoš9k«RMJD~f"šZîfç‚Yb›Uæ‘ûæ ¯³…1{¨ͱ9¡kkÓ¯ö…ýÚ¹àܶ•é† o‡Ÿ›†ðþyg¾óÄ<¦£À®2Ô>¤!¦êTÄžæ­¡z8ÚÝ&´™mHîùD5+Ì3›Ÿˆ×W‚16Ÿ‘b4¡×Ð¥Ù ˜_Ø«öo›ú³üqÊ—‘"Ðû̾¥r¼¨\~¤ˆ¿æ;U*.Á笀ÿðgJhI>Ûç^nNøn4ƒN‚yÀu²P ŠÎ9€³CŠþJ®qÑê–“ÒÃ|*ë×4ßÇàû¨ ¥À™ŠAþl¸ÍhÉå’Ô“ë±^î0íòg†£iPøÌým>ó±ŠTq¸ð¯(°4p|X·$8âø0-4‘¥ˆ˜}î?S“ÒF{ɶ§Íõj†Û•ÌØ“r}W‡—Œœ‹pn 0ßNø>?Ÿy4•ºöeþi–9‚Å[åN²Ái€Îc¡Þo‚‹– Ú.)Ùd¥lTÕoeו¬2 Xƒ"S+ð*žÆ³àˆƒóGQ÷†MþHË£€º³xtKŽ/d27–8zEŠÀ1lŠ&–È2’SpJÞ ¼¿lŽ„9îlú âU7 Ï Å x üÑQò™'J&é\~6ºªmå’²rçÀüÂJŒüFèÞ¾¦ÊñjÙD/c6Ô‚ƒZ@—yŠ ’2‚COÇi:=!“´ Ô|%I¨×¸3\^ôø0È[nÇ—íû|[}ua˜÷uø>ârÜÍF¦(2[hx-ƒ¨kµ“FÕl:OG@¥/‘>ÚSÏ€¥ëƒ“ž¢…ñ¡Òûî/ M:P]™CíjÀQt•–ÓAò›ü®¼gº_Ù‹£ åž>—!2KºCBÛ€ûÓÙ’¶Ä»þ6ƒ_PðGv¸o’8ôÊÆ“óšW‚×È- ãuÔnZDÏk ø£íRLCɉ.ÎáaüVŒ]¾ õ£n9ÛÌr[®¹;|ôj;[òyêµ’)rGÉ m­S¼‡^¯ˆW_§sOðÛï˜;»ä&Þ½ÏΣÌX8ª]ñ‰u÷Ÿ<^ú~ r'ú¾¯@lî_v$vþr¾sç¸õLÆõW·Üè«ãu»»'ÝPnJgÏE[í› ÿ‘ç&:u¥³æ[ÙãÜ3ÇìQs_=t>–“õÓÇ-w?¥ßm ò£É{Ñfq–8'¡éN˜»f¢MDBXÿ¼´3ÃYföå„ËRY:EM *JQEû+r•¦¿ÐîÁ6«i„ ^(sÈ„cÜ¡½´‰öS¸†ÊôÌñÿ>€VÉO[¬@­Ÿ²…Bpÿ<=P~žµÐo• ¼+€? }Oce%82´ (ü4@íùh{žÏ>¿[×M¦ü r6Rdê”üÑ(ñ {< ®Ä_û/6ŸFÌo)¹ýþ“JaŽo #T†ÏøŸ%â V^Cð-˜‡£r1jÃßC‡/¥9tަÀ{Œ'¸¼Á¦ÿèóWá¦Ø"OoµCÜHÐåá?ú›Z†À?ëÇîüFqá<®ÚAtí£ùwÚvþ(ÞÄìß“3%q ƒÖ3šˆqý–‚?üÏ_¥…žD¿à‡â'ýÌI'øµçƒîû'Ü_j^Ê#¹ ÿ6¬wnçªWÎÊA}#)ä ×’ ðßñ ðÇ,nÌ3YKm[$ظ´q‰ra%|‡öuîvzÄ1%–Là®bt·dª,Åïg€ÿ˜ÇÉ9¼Ì^¾ÊÍ84¢Î¡">s“bNœ$ç\{ûÉI‡˜üWï½mú\[È%. þØÃßò[è¤p`3¡?&R SúƒxŬáˆ@ǃ4‡òx:Ì#¤‹Ô•æüŠoêhM©‡¤s |‰¯ÇàŠü»E§¡}·Ù'=xýË}œîpF=ù.•æ6\î±*;¤²FÔÊÒ|Ñÿ‹§KÁsõ¥€´Öˆ¸#ã¢`ÜbðG÷wñ†8GÁá':P5™M_ÛQT™oƒÃËk7ø—IÚ»·uI_BïßósˆŒ‘>˜-ø5/ä[ôÚ”²ÿã'çxàúUàýŽ@m"¹ ¿1¯p ¯µ7øã=£_éDñÀÄ"ñ4²¼ÆšÞç˜òpnàÎÿwßÙ`VÙVðáþ]º3ìpÉí‘÷»LGýý¬“½^\¯†—_ïp/‡6Ñœ`–·ðÕûìè¹û#Úà9þ9ƒÜñP'h5Â/;9gœî<·¦ébâ¹õ÷?ʸ¹ÜAî97–ɹòEÑöû0Ï_µõrí ·’;˹eVÛÇæ¦¹ÿÅÏï†1› @ÇùóíR+š`OÚlÎçtÿ c0?cÒ°Ï>‹ô¯£ |Ö>s¾ã 0¥ty/(²Jôƒ} z˜Ûd³qB˜÷‚ym+b½l`ñC°HUðÆsŠÀÅé ¥ãŠ´ßzkÙ|Ÿåsàð4ïw¹o§pÙOmuwPXºƒ¢ú«‹Rèû¦TÕ|®Údk7!]„ïï ¾ÜB/mO t1 j[¨ÖŒXa½À*—Ázß@Aw‹F‡ÏÿT¦Ì¥¾Ap|™ùµÌA;X¬h¸—¦ì¯%ß[òSèúU´å~w!Puža>–‡2²Úd¢k””×é×âýµ¡ê’á;Qø8ýaš™W<Û›g¢·ñ')¶>0á¹ðÇ8_ø@þÄpÀ´À^'Pÿ¼%à®P®O€µ)+Ÿå@©ëèí"š‡ˆ-ÁqÀçÿQÿc‹;ÌþAÅ) øc4øf7~ ùŸ‰ª-éd¬TŸ&—‹\SªÊ"ÎÊ !'ëçò gKýcÿG{÷®ÍŽ•P€çp/ćy2“Hzù“û éiI§“u=ÿÉÉDd¼@> þ¸ã¿L5h³ïƒˆ×ܯáîŽAM¤CŸŠ²GÝ(Ù ¥8štÒeªÞR=«Må&g’Ò²ïzH?‚ýŽO×ÑH8×ëG5‚zJÅ'áEûá–Ñm^,½¥ôd+ç¿ÕýÒ[{È)#1ô¼B8‹Y¼ŸïsXùƒÙÿ±þ£ZÖ/Q`øÏö© ƒ¶u‡ë¨(eüŒßLÕß´7Xxž6Ы<Ÿk¡÷~¿ó¼8 ~o4üÇ#ʇÙÚÚÉ8*i—So.®§´†–þ²PcxWô¾¾ÔhºI^ê)‰«C¤?5€IÏò?y~÷-Æ*Sýçhÿ&øœ»Nbw[Ýt5qÝꈲÐWÓ­êöuoºáÜÐÎú/ ¶Æ7Í<µu©"y4 ã÷ÆíæÞ‚ÿØoŸ˜‹æ¹ûø ùÃ1¡ÂûÚR´‹òƒG\Šê¨{Ø–⥲mtjcBVy± ³üqLk1×Ò\ IÊeŸÑh W7zcËÐL›Ñf°!ÙóÍ<4/l¸™í@˜Íd°ö«û+üMX tj:fßÀQ<·%B°ÿ#)M²v«ˆÙZ œ ,2î  âJˆÕˆÁÔ¢ï?Ë=ÝœpF-h ÎûëF¦&ÐüƒO}Fâ èÿvZ‰ù{¬—"ØJÎÖOÄZçkí<±ùøâåOD'þ@ ³4}nðp õ UÎ@%Æø‘×ØØæcçÑu¢šT@À¯x z¹­kN?€#ÎÑÚF7M[ã@‡7å<8?k3 =´÷mGºõþ˜àûÊüj÷ÀG-n}Í¡¸?|Vwô´Zå¯ÆÒ‘²ð ‹~¿¡´<2°£¤€SêeŽ9ÁŸ¼â¶ó¨<Æp8L^>v[…ß;È¥$º¬—¹úØ¿‰ËI%ðGf|BRðGU^ÉSyø£@°qiìúï‘u†ÿ —2 Ÿ~ãà¢9<þã‚| ôÚÍó8­¼„ˆ> Ô+oÃþ§û–;­?ˆøÔýÌwœ^¢…¸ øãOD»ò±#t‚¾B´³ûçù¤–œÄYü›Šðnx`>fC~óaýÏ6§@/SWî‡3þˆWÉH©"SØŽ€ß mÁ‡ù‰þ¨…Ï,g¶s$éÅËìõw±ÖúZ9S1®Mø5æÖÜÔ¾²d|iIù<2î#‹.„ãê …¥Ÿ–U‚Gú‰ûðC^Y— ÒÄwñº8OÜ7`Þ§Ð÷de³ ¨-7Õ šU{JCÙ©…€Î•¼èzP.ixø2ë°Øo*ø#Œ­`«¿ëï ø¡tP+Cé/&8ò´Ök¯3´øã…ÜPŒ™J÷ÂLÅ×1½xRB£ŠÇŠ5þ5æè·‹z¾ãÀ“éöš ½2þçŽX^k™(ÇäO¹­¥ôko¿wPëzÝ5‚TðÁëÔ‘Ðêßq|Ò.Ĭ¿A™x¿ù_ä¿zëk켯»w×—÷ß®?˜À¹ã„w—»•Í:°ÿc¦/¹Ûþã¾›ÒÿÉ]e?û† °üÇ RIÓÌ}íœ2{ìSsÃÜtíÖò™}X}³mNø…‘4Ê:”Ýwp;‰MngÙ¨Ô9˜#ÿÔñ½³ÎYo6Ó]`üà³Ô޾e±gi¾òóGcòç0Šo?UI)èÖÜ7/Ác†Ï®_Y^g‘oŸ€«œŸn@Åü‚ü»±)ͱ_‘ÿÇ~¸²ôÌV€Nn@ù¡I÷Rv^ þè 4ë@-?›s¸™›(pÿ£»…Fœðàß(@ÅœŸCÃúë•ï#ÿK#ÀßÙšŸô{|‹6?¦zð0‹ÑŠWPuá2ª±‡ßH} ¼¶žü×Ñ·™öQr^b“}´~ÔCxÊ tË¿'ZpÞ]<’œ‰—ÒSÇ<ãÉ\“ÓóèÄ©äwNþúç=éøGøc¿'F0,OàΜ ÚsÎ]oø‡~@õ ÀÙšøÿV°Ç8 @ZŒÑÌ£4 >dŒ¹ëL ïo÷ë¯ —q_¨÷ËhÝVŠÎ,qd¹,ƒ‚Î!«¹ˆ4òßÀçņóù?ŸÊ[í7ÿÈŸXÕ}j³RJÁCо%<4pÿ<Ô÷î& õ¶Ä⯂{ñßÿX¥Üq‚À)F¢´ÕYìþyFúcJ ¿pí5Ã)Âw¹‘ÎTö6@?W“³\-ü‹Ëð3ª >:ÈkùÜlmS1Xþ'}æýöšBoù¼ ƒ·Ëqåž.ÑœºYºéP8™n’ZOà=s!<’+±¤+o´ïë.óUs†P<øÀ³ô3·âüÖ¯ð÷I¯éd|Ì0M¦% ÷‡é)*K¡÷sËFxÍ>üŒÈŸ“ƽkÛ4g¿ûî1,Ür#ù+u áÚú\ÓéxðÒ:-â9^h渚Ò#òFci](¿sT8=’Å|úµ†mú®}ݜƿ Êb¼âÓ6 e’ˆ^=]©-ÁQt§ ¼Qb?³_ÑTRVcÊó@•œ‚Ð1i8vëWœMfží„Õ?Î?›ì1)ê©÷›4“¥2A&ëwú­·Ñ›¬E½Þz…{%µ¢þ*aõ!Í¢ƒvV JPŽò?ÉõÀWŠâÚ4¦±»ß¹bŽÚgæ¨Ùç^vB’[*HëÌ}èæ]6ÂlooÙDN÷¨­GßÛ˧}™ ‡Ú—6VèAú ü½žA}¨ ‡a¥€}”‰Ñ^¨ÈZÍ,ôè⦧¿ýûééíDÏS|* ®ëϽ9?@o§€óvÅ_û³ZPjÛÐYû‰X+}휻¶ üG+ôpÖ‘ƒóVž–ÒOÐxȯƒøs`=,k£híR›Ä<ûH´ç>2¥ï˜D¹ÀÛá©r2ñz¼ŠÛÚÜÔåBàËA@¼&‡Î[ƒÜû ö…2Íí>JÌs¹;'…†…– еåì|—ž£¥IøØc‡æ|ýE£Ë ôãwއ“) Ówñ&8GÜ—T¥ U“ATÌn¦Áüƒ†ó~‚?˜(+5‹÷DoêM¯g婦ÛÍ‘ p1­ÐúÙlYl5Ûä]{;»L¬…‚Ð%w8º?»$ªŸÐMêèbðQy] ŒŸ§ u‘Ä)'åÀ|ÏÀGÁ; èÎE»‚äo?n¦Ù¾À¥¾Xgìi)íùÀ3$1øÇ¿w¦¦wÊ»¬ßxô—ôÒÁç´Eܻ௶7U ;”‹ÃÿOžß}í+ã¼Ï•pÛWÀ ÿoòGBçŒüQÃô6êþèøëä€ÿèæsc»¯|_–w“ožyk„¾O |É`s™Žî‡ì~ûȬ3Ý«_˜?±¨y|Y`‹ ÚÒŸö¹ ç çàÊtÚFƒþŠ>ï?NùÊc>ϲmLîÂkÑ®J”gq&µ€ÊÃË( X%Pµ¦ŸÌ窽 wÓ‚?:ѺI‡) fìWø½ÐÊþçwßÀ;lBÔ‡š³¹m5çSO LñõpÒQ9ðW3àüV8ËÛ¶TÜ(Û°\„~ÿAkÈ%ïýE.çm6ëGŸß}åKeÒBÑ'…ÚÍK×iƵEøë‘x¶«ñdçŽÎ¤öà¹áô5˜#:øãñGø£/xÜ_ÿ#oævÀÔØ<ѺÃË´ç"ëÈ܉ ð^ 7Áœ‰ý»çƒëv‚ÁÖ›Ëÿ¨ÿqÜífGa¾ãý@ü\ì¯ s”ü5êÈ3>#Ûõ+ø›<@ªËdþïƒÝÏÀÓ½à¼Éæ³ùƒõ¸’ë£oár¿C,ã5<ŒNÑ$`}YÉ£%*”sI¥§ø*—‘ˆ2Þ0?ã[üN1¸ïÐ?êd„.; DKÇUž"ŽœÝpÑ¥™Î×ÈÞ*°HG0Gké*'¹µ?á{¼ˆøk@«_ÛÌFÁ™ÞO ¨+Îвr¯²›3È3 n½ Óu¯Ìâß$‡ÞàõìÏŒ¸ñbILéÍ»ì…w±vùò8 Àø ¢uçÂ6–øýxZI†Ë¯:[ÓhR¬ãµ“Ô”)ÚMãÊ€W|ÙÃ_1¸Œþx?‡m®ru6<ž~–ÒTkc$gÔ¨^3"Sä”÷Â{Wõ±f^?ÐlGgKwNŒ±!óø&=1%íïúÛÉÙk¢Âó†~xÄ ìk[ORxßÁgÌ…w¹'¯uW!=­eu´DG+³IMM"o¡Ïa®Æ§2?HýsÎ13˶£¹4³j®½%Í<ö†È8aÝ(‡´¶Öòö{ϵ®7X·ó/^<¤?I =UxУҘóɘí”O¬»ÿäqÂ×,HƫݾÿvþÄØÎ}'šÛÎÍa~6_îŸÏóev˸=Á ]÷ ïìðí1tn‰ó½€¢Ød¦·ûÈ m7Û7f¹9ánw|>H#¯±üsàùÝ¿©9 µWìßug«­L m}DÍA-?»â_ÇÎ:ç¡IYšž›¡}·iO¥ŒÇ~ž£©Àëîpmû)%ôHdNšPœ¶G÷Ï_@ZG„o®¥_Èz؆æ{Tõ³ü±ÂWï›i_Ø8Ü“·§ËRqèó1hS Ï›)ïÄÜ_ÅÞššÈŸ}~·=¢žÀšû´¢B‘ `Ø\þ†_à'«àv’/ú|F^ûƒ³ê±.ûú9‰ñ»Ûà«ÒÒzŠ@×m*ã¶–oSNêËà?–¡e— ëÂG\ÃJ;b³›øie§¸)IQ1 S¡¯ƒsjÐ ¬smŠa™Ô²†rNžHñ(³©½ütóE5Ýí1¸€•Üœ‘ÇÚâü·å2`µˆÐÔåøÞ_ð[ößÛŸ .ÚÞ¯2ÿ‘w;ÈþF9à?Ãäå¿Àº‡0²¹™„“ ²_ch¹Ã¥åg`j¸·Ô¼¨v›wñi[Õ°¶Kë!#Ï{AŸÏÒhN(©d>ÿ.éôj´n€Ûùü1 Xž‡_ó+~Èó8,ý@ëƒD<ᦠ®tÞyƃ¥§’?«Ê©Ê1¥±îф޽¢mä87Êr˜Ë± 4½ ÿ± ~nU5…>ˆ×Þú³_#uC¼•t—ËAi!›9½xÞbÍ¥7e‹Î’™<­=NmÊUy6úMŒôÅ(¿ÏZ°ÏWÝéƒù߉ŸQnÉå­ ÉU™έ ¼ÿ‘@‹é ]¤Í¤‰LÖ!Köq3xÃÈàÓäsñÃnX. W—~‘”ã܆ÓÂcÓ12U6êwÀkÂHzHŒ—.b²üЙՓÁËÝ! 5ø~ÿGg°)&ôÅ(zÎ×í3ÛBâzÕõo¨Ñô’”ðFÂTEü’:^âj-‰>Ç–¤àµmðþq©"Ç¢ýAüÇr³+a-Fd°¤¨Áë+³å²#:\xCÅòRz]t%wñ2ëf­&Ô‡9¹ÅŬ8Jé9’ÿ‰u÷Ÿ<®CO¿¯•yíÿGýóÈÎQ'¹û‹›ÏÔ4qõ?¦ø ¸Ýáî:7†ësv~Q´5¾©Æ¡zTŽÒÐJ ATÓÄýËyl–ÙËàkî‘/¼Î–Á„åöÀÕìÀè|ô»=¸~uº¿†-fwÛlÔ΄lç}Kç®sÒDã—”–ýwloÑr¨úb”ÜFmƒ†ð×ùYg+Ä$bBów þGhhÀµÐÝþë%é½Ä« Eƒ6¬HÇmTàk|*ðYþXí+‹÷ͰAcõåM`¼à¶‚Pß-È_%uœîJN¡ò{R‡"sУ½› =üúý&Î\h8¬ì•¬<”'òw@½!àŽ}´>éZß”ÊÚúŸ¬ô2Ô×Ó±8k‡¨>¥FO’¿y9´­>Ÿ¦¢þªžX«‹hm£ä·Ûôæc¹jb:aM9 L 8…œˆ¶Êã%¢#´Nγ½ÍkàS[àètê¥Ö›âÐe¬õ­ÕÂÞt³Û(/ç_8 k$Æ´!… ç†#LÊ]©8çÑ<Î03Ï‚£›KÓÁ‚wi£¹ôýƒÛÝIv6•À™ZÏQÐÿ$Xí[¸}À²@ckZ¹Ê¥¢øó>Žoâþð kø´Gð篺·í×8¿Yáüöðy¥2„“Hv™ÃÃ%¡ŠÖªžvçCüùœóó5~ÄŽLä´TV:'?ˆxÁK£ÁÓýw˜øgh—ÈÀûRcKsøÞ½¨M€Êµ¤£ìÇ;ÞPm¾ÀWÀ1b?»~õ½M Ïã½9z¼ˆÞò%Ù%e=§’›ºQ3é]9®-e•ô:W}á/ÃÑÄ–ÒüñþYÅU¾œî˜ýù:ÕåŽü£u)¼<oÄÓÖ2 þc&„ßÚ _Bª‚?ihà|;°{J´8æyÆ õ§9Ý0\Ú¤=Õ•^4Ï^£o¥•†õ蟲DŽÁÜÑ3úœ¾GîhJM¢seÇóçZ†ÿxI¯MQÛâ]«;M4JþèM'øoÛZI{¯¨žÕiNŸ‚ÖhM0ÈqÍJ§´¸TÑÔâ¯(ºŠ.œl:ûŽ?î8[Í\[ +² ¢Q6ŸVôò·‡QÖcð}¼³^O½ º»{þ'…+éešM§¡RÊ@$ä!R«ÿ¯+¾šAî\ôs>Vë-$G<ç/'´;Î-`ª›[kbkÀYàHV¸±Ý7¾ _m¯o» D( 7þÚjî'”]i™ù氻ʹýEñŠ™H\Üžë½õ±–B;Ïœ[¶UÅj]c“A‹‡lçd]g‘sÑÄÇ,MÂÕ©61oäy”¾µ¯€¦1§rRGZ€¨ÉCtý*9f^ÛÂäƒëß |E‰¸ X$"0¬4ð¬0—€K5Àü°Tù³ü±üñƳ×m Ìþu”ž¾§”™þ _¨Gæµ”Š·RJ¡Æ*ùLŸ‡ºyé)tÑDzFKé™…ßb>Ïà|½]´_ŽïÜ yøI›ÛùÔs s}mœXT¬ö#Ú´†ÂòiΖ Q?¬ñû@å-ÀµøùUºBUø¤k>V«8¥“À¾'‚vÎI[ÑŸ†TqÂl¥C¦‰$K¹§Âèü‚öw¯^µ·ì`zòþèí‹cúÛÔŽwÀ „ý?Äý”ÇúÅ ¿ÝU4îîî‚»{ @pw4X HðàîîîÜÝÝÝBpî~çÿ]˜ÀÌÇpÖ=ë4k€™z«««öoïî®*8EÿúWþýÏ;B ´¥¢|–gód¨S1|æÐcrÒšhŽ}±ÿù]w<Úª0åƒR.ãÂ|}b¯ïG®-‰d‹l†2d—gÜFjÊ4®ÍŒÏ8ȃù>ïàí¶‚-ðÙuéàޱߡ·ååÐçCàÇUšÆ)$¬â%’P_K-]¤;x%ÿ€ü±ÔLÉoø=ÒÄTŽ‹|¶ÈÙõ¯¸©iRÛŠ€ËózŠ.AÆSÚéMîÝÕ[ÚGþâöRühʑџòPn+øÑÉü{‡öZ6åh<ˆçÓ¾µ—+œVÄ›å¿-éPÍ“$3ê¹é¢!ø~ -cØÒ'~ÌôÕuf‘ÿí§;ëïþhŸØhòV«§¿Èt¤ý5žþ GuªÖ•ße¡NV•½Üš§CïWpT´eõ@ïï®pNƒp"pê?É\Œøt€ëiD¯¢î’ýpø¥¼û(í¥ú×/ ãз²FF¢r4pé"½2ì§ûu ã†)e‡Ú?çÐôÚþ$%½6zMgkX½"õ±ÖÒêzQ˃Oפ½V•FšI|Ï3ÁÇüÄYèp õ¯–šE¶Iw8±Þv³”ó<¯Ÿô”ˆHYC´€Î÷žz9¼è^[wµ—ZWj9qu-¦5Ö¿ëÎßðoj'3îþ›ÇC¤±OYù‚/óµeÁþõ¯¢!mT3­Mô€õ¯æùйÜÞî:7š-ØYÉAû}³…g.FqmdSÌÝí<0SìC3ßu/|ãý«¨æµ¢iöGxÚ²àÈuû£óÀÙŠüQÁf¶³mJúÍ$Ñ™w69WͲм¶Ñwi:¯†óMi÷AgSWô´Ô淩쥔÷Ü=j<Œðp¼.àù‡ xâñ—$“CY/Á%Gb®ðU~õ„¯_LÄ5áô3 m 2Ðö_á~]>D)ù\ú`Œô®Tß|ím»înzBýáàïCÿÂC1£!$ä~<žSÁOõóŽÀYg@þ˜œËvu¶SÖ<_ç­ÍÃ'q¶Ùp¦©?jãïó‘çcr5øÍ²P å÷®vÑi:G© ŸµIMä jƉjòÃ¥ãiàÇiP£Õ§tàÇA”øÂT2¡á Í­¢~Ðúù#Èù<~ô÷ùLG{g¶‘Ûr&ŒôyT×3üo¤×Ô”2"ILC œ4“–ÐtœÃv´ËF³ÛùüÞó·­§’Š×ò&œ×)ÿ31ÊÂÇ¹Ž¼ã²Q£hLÙÕ¤‰,ä–pÚix÷?¶ðV›ç‹÷wºþüÿÀ5œ†æþ8ã œFŠËî+±õÕ‘º–·si %39 zÉ#V™Äá¨"mt.}öþURPà §à \’WP9(—¤ ò@wèqTï‘Þв‹[ ìdÿllÿþç×x3\Éjbšþ«¼z6JÀþ»¨=2ßzÇ÷Q^k9‡üñ\—hF½&suòÈP)½‰ædØ3œõí„ÌõøcY{¡ÐËÑòíùÕ矹UJ*þõ{c"oŒ’ÐÔèš©fœ6a²Zj\ÙŽü1„ãÊaއ‘óüXÞ,ð#*û׿N]e•´©/WÑÐ^Ý.'e–æõÎ!°'ºA³iŸ»ÍÖ t­Sl|je’…èÌ«:‡œç&,ûWù…jÓÆ ¡‡Yí#pãÆøwÔ–æÚì(7$óÏ_»ëÍ?¶rÌf:D;éåâÒtÎÒ{ªN);§ã6ÜN‚¼µÛW“bÐTûÚ†áfP­<¨YAä˜1Púü.=´"Út;˜ÐÜ|m¶Ï4·ê1ZóŠÎ õ ³LÌùøê‰ô±üHÏÏ¡ÚM©´­ìNaùú9‰üwÐjñ3ì%Û†jÑ<ê uÊD¹1JœF¡[Á¥‹È!…x›-òÙ\ƒÿ;¬ÏäÁˆÌÅS)Ú}+>Ý_îe¤¡EôÚt0Å¿óFž@Ò x»ðtÖ:ïWYZ;›áö%àÕp¼q‘?æRNêA±Áêÿ2ˆ óIhmð#7®ønüašiö±ÔvZ> òŒÿùôyðë/\Ë‹ÜPžò9Ù¥ 4lAi.¡mþ÷ÈöÃá_åå8ãÌöóU €é©%•áY<š7ð0v2§’b2‡I\(ÞO:P§ã§+Š73‚îOQß÷Ü“ ýhégû×^p³À œƒî㨉³UùKvJwäú—Fö6ƒU¡žõ¤\àæÈdMù_BžÚ…kÔÚTøWy]­á‚ì_¹@â»ÍQ^3ÙÇéå|y^½Ÿ/󸿤×S qM\í9H4ï˜Á‡ö¯]é«ãÌAïƒVk ¶Ö¶/ma¹ ÃÕj™!‹t®ÆÐ zPçƒMdšþ¬Yå ÊëÍÑÁ‘Ð E&êö±¼¹Î7çeáVÔL¦R!{ ×¥™Š—N—ÉV§Í¼êŸâéQy­…?ÖK/ŽˆÏ º_%Ï–±Ý?žo?g“‰Œ¤›üp$,E¡\ÙŸ ´™þk4š¢9?Šè!‰¢…ÁŽÞß%ä¼Bð8u8íùÈ În3ÞþŠq0”&ÓZûBŠzñ½Ž29õ€œÖãÚÏ;ã­Ñ’^;5ÒÄû%Ö’Ðz #nŸL%1^bò}3+˜q÷ß<\§v üqÓWú?^¿=6ü<»SÝfˆ±®w€‰¾jn%·•{Õ ãFvU֠;IæµmB•))M¤&–©è^qîšýv½Ùj6º/œ Þé þÈgÞ#½.°µè8Õ ßìI›ÜIà¶)šMoÇÛRTÏ„ìÌ«9Óm& j4äúàÑøšLîµ3ô¤%&N³™À¬Hã™p35(/ØÉÏ¿¢vYz í|ìÁûf§û6<ŇÞþøU~œñ5BBÄ ~ì¥Â”ü˜í)É‹7PôÔÝp× ¿º~É8·(½DËu§ëè¥Ñ šñ[òR _náƒwƒ»(7?Ãhj@?Ø|Ρ`ÊZìëî$¦l|Ì?[n+ÝÂ.ê_[¹## åzðz³é]E;‚«ºC9y=øáQËPNSÂr:žŽ’Nâû›Àg°‡üú`ºš¨2Y¢0´± ‚ÿOAWlTüíQÏ?¬j×€³y´÷-Fs>¿àN\£p$îJyù/à‘¸ò ц áç!…줹fûó?n»=ì0ÊKYy¯onE[ÁÝó\ ùã€ÌÑš””\eÆÀwö…_Á«lÚ/Öß­àF¢Ø¸†Yá±×ó žBûÐï\ù^–ò|‰©®æÓ©ºé)»|àáðΡÌwù&ÿΡtëœmÿ*q«›žàzCž‹Ûÿ£«†þpTk *L¦¨rVöKYɱ$”7Kóë ™®¿Éiî O½œ«&ãëø¼WH7GíßËÚí«èL¥ï¹òL+®ÂÕìkáÅÇêÉ#c¤ŸÎÒÄZ¿ÔîÒB–‚éÁÑÎÜ‹ÃɧEþøôDj¡sÙÀÙ™‘)›Iš`_Óî¯>/¿Ž‘²P‹yïõƒFò²è9Q/¹¾@vêÏ‘1‚ ¿ƒFÔ ´ÿGkgƒ‰Ba) ­"+¿ØúTQj{Í?ZkDÔì®Ñ¥êèaM§ åìGÒ¬®‘ÄK8¥HO–ãÑÚü8 ~L·iýF3i¸-¤m¼Ú\†ÈY)“´‹ÖðÎysµ7^ïsc/›ÖÕNÏÃ.³#©@À,µÓƒwÿ̓œjžx\ðµu¾6# ¸#¶sÝqÝ™nÓÓÜvüO×&ø2ºU@'®uÃãþ;}ëCí Ä)¡/‹Œc~pÏ:×Í ;Ë\2“Üwß81•‰Æu?òÑ~$ÈŽö”}ïKé^²•É@éûÚ,Tð«ZúGgƒ#->8²JÔ‚nÓ8àì”ÌFà^è](|ðHxÈò6${¾Ç0ÍSäÿº†¡Æ9>ò‡À[$0è9é¼u).zì×ï_íð¤wvº GQàwSVô®Œ¨ÏŸÔjñ+èlrh_Ü€™J¨ªIüÕ÷¯Š‚aþxºÎ4<ïKñyHQσ¡Š[pÖ…æ Ô´ƒ}~~Õ7‰Bx´t }jã81ÜóöGºmÂÙvö;*ÂûWþý÷š·t“”ëRiðh¬ %µ–GC»:C«ÐÉV ´'Nð‡gN#iý~€—ý‹îS\# ‡ƒ†5"pº~„¦P!Øÿ|¯0Í´[üØ?^ˆ#Œ£žT.÷ûj´À¯èûÕ¨ÆW׌ìáVDòhGÛvÓ{hbLôñ¨ Ç.:ŽBf: Ãþ䕉ŠÚJNP«Uù[¾©ND8è}È…@ žà¼kbüÊ¡Ö#¸%Æø6ã6þmj¸œ"ƒÅ‚|ÿŠº¦rÚwÈm™¡[»‘U+"YÝ¥MàÅÓÇ„‚7oÊÍ;‡“^ÎE{Ûþê_ë‹c¸/¼cW®[ -… çãéêM PBqhgJnAùøO†ÚÞ¢R¼õ›‡wç1Ѭv–~VÞ^w´ME(¯ái(ï2µÇÕÊ»ø7 uÚ~T\^JÃ9—7ãðœÿ)žÂËm´/æÖr=øžß©0æ…`\/´QoŽ&id&/“Lú€^m….§“˜2ôˆÇWù?@šŠ¾pÎ~öü#(~‚ÀçAîÛOÏy†¬“êVšÃ?{Þ=«}ä:—º²‘K#Õç=È ëù,®tÓé³ü‘–Óð):C}¹Ï'NFKéÅ‘%‚7G¿Cþ¥Ëe5×AM_¡V5¸&Gž‰-qå¾hþÇZ_gMÀkþýðï6|þ1™¬¢Ñd‚ ÑñšJ³ë"ð£›Ô’ÚN¡Uº!›E“#rNMS?–·Ò¹í†Æ5 Ÿ×A2Ðd{¦sað£²EêÚ«i=Ï;©âåÓ3àG<ÐéüÊ1ÑÞ£­/R[3ЩrÎ1Ù²Ô'J‹Nã W Ô­Y”F‚xÏÈ?³û-Ãï àñãð [Ø„ ¢–$Æ¿ÏVZ^‚äçêœQrð÷*xöÆt5ßÉ*¨Nþ Äf¢[öòÇÙ ŸÄ6ƒíQ|Þzxí È~“PËv`y®Âé8w¤2pËã¡ß¯‘Öÿ È$py õ4K¿˜¾ÕlÇ@ñ£òj$†ªàÃàZ¾Èmå ï“¿ô¤“¿áîB‚(ÁñÉ«øg>ÏÓy¢ò?Ú»ŠkÙ-?”g"W Õ's|I(ãy®¤×ëP¨ºô)(PËlœÜ?Sœ_r[v0†:{ÿUâ]72è58âD<Œ] …'›¥ô¾…Î?èn¸Üí\EêÀÛçdA:‡‘pN¢·2?{ÿ*%˜åß¹¥ »Š®óTé#å¥3÷I!¯^Ä9ÿ‰+ÒQ²êeP¸ÿ„$u‰ëwç{ÖŠéëâ,§tü'zCCnÂlDòÉéæ–±ò‡ŽÖäšú­H6Ϲ~4`—GRi@‹ìCZϹô¤!÷Ê!Íé‰w[/µÞ×cÝ-×¥ FKK$½©àe [Î~Ú¨ŒsÔ$EÌKcè%ï±èG‰ ~,ÑžúZKxo±6×z^‹è( ‹¿%‘ljå1…â…”}ÿ ÒöŒü¸ãì6—l-šN1¶ÆÚ›Rù£¿ô”{ȧµ³þæùBÅð{¿ë®èeA{&OAoÖÚIT £/‡þŸÌ?¿b|ÒÍø¯íÂ÷周ÙâDv‡¸EÍ/Æqý³ýøŠºÅÜÊîJ7ª›ÆÙþM¥Ýð­3/¬G ï¨=5ñÍ(×q l1+Ì÷¶óøë…:Ô\+fØB´’’!D¥7¾Xî}[“ľ3-m(úÑÄ Ñ™7w–:çͺBáàIË"‡¬Âè«~<†k>AmáÿÓƒÑí!zÿJÌMóÊ–Fß:J—i;½†fÕ ·äÁ‹×¡hœcá¸5PÛw¶æWù±ÖW„ÑH{ÊÆÅˆ9°Ê[JôÖ ÈÆ¥0‚öS2xç„ÔêÜ üøÚš‘ݲôƬ,½Ž)%ýFÙy"FwQöxm…vo¡X|ŸF"Uä³U‚¾Ü7Öa¤ ÓT‰a!òÇK¤j`E¾NÅhÆëKj+2È8ò¯p»þÃfrÿóTN4S-—'@§÷‚½µ‘@rÀQßFÂÚßM$9 õÿž7Pÿ€ù/i‘ãîØat9~ôX?qÒÞL¸Îdù£RZ¸ó²œ„ãsoÊÇ%Àߦ àÇ\úiv24뿘?¸ÆkQ6ÔX[”ÿ†2 ôPþ¦’XvÊ*}"©ä—– @Q¨³ÇK¸<àµ¼ØÆþbÿBîc› õùîþ/^Œ¤{¼M!¹‘5¦I,øÞêú‡žäù\H¬ çÄHL‡ù4?䎙qÏgûGq£¢öç@ÛT¸’%Ñ÷þæI²Aòrhé§+5·)äWä…Ríø#zc”xžçð9šMLË•WÙ†æô¸²[¨-”|8!©É i-›8™¼ÕÉú½ž’ñú³Ìâ_öÿÏþ͇ðqðãêøÄÞÿXÖL_og!½ .üœšÞ}í}{–×£^‰4ŸÌ—ÑÚ ¿„®Ðîú‹Ô“©Z@#€L¹?ßâ¡ä\ô銌v^¸òÇßp¢MdÒ÷*)õõžæÔéòDviqðã¾ÒlÈ'5’^•õÒƒ£òïh¿Qh›Ì¶ýä´J;ÛŒ‡1îßÿ|+3ÜJiiãµÐ ÚJÈJ™®ûµ±ÖÔZLÊsä‘’Y£ÊeŒñUpsÉé• ùñÔYm¶Ùæ4>­"-³­´0ÒßxùSnKNЧ®Îòîyɼ ^g8„š \´ƒ€KÁÂAp`ñá"þOöÿxâ«ç„þØ2ç}%œ¹ð/ÄÎZ'©ÛÛ­n˜ÿn+“}?¸?¹ÝÝÍn 7r°ªô±×·Áܱ¿À='ƒ.0ñLO÷µÞÞ´3Ì sнøëÁ'2ÀéѶ t&,õ/Þû¢»ááûO˜·f¤KÅC¸ÿùPg®ãØÈ|© Ç}™–BÁjPMûãêT‡pEûØtð,›CP^r³Ò¼±e(&|ò‰ÿßüŸÈ²ÿ ÞzJV˜v#ÁG¡ðTñ«üXé›g4ØÞ³é¹ Ø»6RRoŒJü :w‚mh xZÛ|mãn)zŽïøªŒ3ŒW^„G`ìçb‚ÞK»Àä”piþ«•Ù öùÇeß@'%\ü6jŽü~<¼m{ÁS/¡¦|ÒÐ$8ÿ'På½OVúÓ9=¥¥¶¢ *k&sJ˜RôŠ’ õÓ#­l Fȃ©qUŽÐ1z`Ƙ¤²…ëqfðr~u§Ðt J4–6Á.¸ãíJȸ´72e>p'·áŠàILxWÿ #ƒ¸}Àýõ)ðž£ðµŽV!,ùâùÇAw¨‰‡·€@¹ù<|ÅVÊË;¹Ds²N5‰låZRL¦@¿oà“rs^ ÚLG"þ|ˆŠ®ÀA´¡BÈ'A™žàdþNÒË$þSRëc©÷»i§¼Ýc²>û~ï¾þõÙúíÝèpûáVR!ÑÔcoqhsj8ø^PÂWºPhQ9€òªÈ)8ú7Tžñ)èó&0³žùù³üvŽÖÓ(Ƈé&¯”ö`ãhN$·tœ&Ð32RGËrî$Ñõ2O´ópÞË— ùƒye ½ž—ùú9³) ÷Gyí¸17°a(ºÌ”¶Èl©eˆÌÑ!šPÛë&]® àÒûhQÍ"‡¸ÒæK°õ zc´@ïïÎw®¹ÑÁ戸†…¨­0EŸj #§e–Võn¨ñ>hh=&OÀ²Î¿s"·àgHJ[(m†~ýÿ–WÔÙažZ‚3›Mù¼qèI~œÖ¦È/7å;o;j—[/!%Í”§r^YÊityD §™>&'¦•ùñÌÙkÖAëfQA÷ìq9æ½×ö²XÎÈ&9öÎy×µ×U÷r /ÖÑZWÏ!±¬@..¿2ÿ‹ýÏïûšÚ?ê”ïÇÿxþ`4g øÑÇ-aZšðó?¦û²¸¹Ývî67Ž%Ø·r‚>6ù˜ChÓúàG+ºkšî ç‚™a·š¥f³{Æ êœà5PÎ8[zŸ„†Ø×6·óÞ9„<òÒ¨ýÃþc˘’!*±8yË8þÛØ_¿Ã4…çÀ=·ûqõ·S3øêZ4ÞæAB’‘™5ȥзVÑøÙË”š›a\ßD¯h…ßcrºa•S8ê÷U~œòe!¥ùö ç¶ >§8e‡Sê u/Ê w±y% ÿjm©·Éö•snà$ÃÒhz‚3Œ3LG-(Ti<ç xJp„NÒZ¨¸åȺHú­ƒ}Sâ±ožãÂAŸ¡¦”ü»°_Gþkˆ¿Õ‚7ÌEí¹!òÇR:‹6XB; ·'ñÛÆ ¢–Éœâ&?Ý¢x<Jß_ mŸŽÌG eš·ðòõ¹¯FúšO=)/Ý·mú+ÈýkùÃnA›ƒ3NÁ¡y2¼`wð¤UÀ{Ê1y0e‚ ¢qNží˜OÁ¹m4Çp>wr³û‡Žtu˜ õ}êúW™Ü•%´ì“EªZêÜX*Ê"PŽ‘qü3ßwñžo£ØÏ÷¢iìÞµ PF ´ûpÔc:úJWŽ =Æ#¥˜>— PÕíóIs 0ðßà×È+þµÆ×9'þUâ 7u¡£š#qøõ#ô†»É2IÇŽ4Ô9ú\ÇÃE—•{\ÿ8ó–ª!Ï\å|ü¨aºý«¼ŸlBœÁE8ûàÇ ºÀ«¤‡Ô–²Sé48ûÐùA²“—hú­Øz?†/°'¹/Ÿ°ŸÞ‘XíûÕ™‰¬ÖŒ¯‘–Hw‘ nmô­$~2JÛ‚G•t‹†Ê6—¾pûÙe²¦?/ìcÿžÆùèÓj´ ·®‡k ã´®üoçßq¦’>ÐÔ:*½Lðž „õ2€r5&Zs£tçü+¿åE|Å¿«ý´ß{g£ OQ1ªFÐs¾ŽÚ¥“ô^;=‡z]Cž9¡It8¾Îâë/dˆý_J !½£°`Qa¤Òðœ*Ðþƒ—œ£fµ­L3á1FÓb»OÊxoôOY€œº­7Y;x»½+Zßk¥ï¸„—S+km §ð{íPŒ ç ÒëÿÉúí/@ÓOsŽûÊ9!»‹óå‘ÔÙê¤uG¹å‘?\×ÿvøJ_7¿ÛÖÝå¾s"~ãûWç}[ÌmdºêT©}» e~qï:÷Ìr;ÛÌ3;ÝóÎïèH`^C_fØŸ‘°ÓQ{Í>ô]pÞ"D¶ñm?ä²_ÕÒÿ;;K?"ò#z…©°ÿÇxмöEé](#j<Èf²9mp;a>R›å&4rùã,í„ãÎÄu¡Ö7à«¢g$áÊë—¤Ajè‚ù=)Îó‰MÂx”5/¼~VòïÅ]Yæ ÒÍ”4ŸÔžº™¯Ý­ìæÖ§¿é7_ï_¿}Z@v‰Å½àqãó3 {m˜_#}×§¢¶q°oƽðMGþȆÏoŒL´œ"Ò#¨yeèp-¾ >¶ƒŽ]‡öoA;¬§MàÇI¨ÈB›=Èý£":UÌhŸ<„<oH• ”—è<Í¡G¦Ÿ‰!Kár Ì—žNáD.Ø·5‚Í}ždOCO—"Äã° R êEÂÝ8‡oî€s¼Ì3 Žá9+ÎÁÿ|>RÒYiÖ~±ÿÇfwòG^ÊÂÛÙ?ü*¨» ¾ø בû|R–Ãåf] Ic™:¾‡,çÞÐç9<ÊF¶Ÿ¿ XÂ}oã Œt<ŠÿBFòïGßÞ>¾Œå1’MÃêú‡î†û.ˆü1ôÈzÜ࿹'G¢¤´ÒÙý¯÷º ‘ÉÎ"ãÆÇ9•‚§ø›'ÈJÉ=ÿCç*yÓ¡Ïåäç’Òðö•ÙâëZ`+Eî*ojý«¼_¬ÿÊmÿû‡ü'/¡“¼Y†JM©Ëq„=ÿóîãÈ5ÊZþü¸ 7à²8×kø¼+ÐéýöZïëälÏéˆvï šÿjãS~ù üH©id"øÑKýs ¦èŸÚGÚÈ mˆ¶ÜÊmAÂHhÍh¥”î_Ír.¸ÂÕ‘KÒÏÒšÚÛKô3—ÓûÚZÿ€JïÐJžz4²çÊO#(é.éı¹ø1TôçOÏÏë9;B™f Õö[‡Š‹xµõ N?.É1-©ë5øSgËk™ ‰%·¦•àÄ6R Š W”.Pþ8âl3³mk¸°A_#íN©â…õZÈ8‰¬óå½þª¿zG½ÚÔûAßó^V-§Uä?V¢—ýH‘81_3ÿ‹÷wÃOÚqð²¯ì¼TDôÐï݉nVÓЄ xþ1Û— ù£‘»ÙíFuBò.Ò§ã¨o2bKdì¤5L ÓÀÝïì7?æ™î«oÌaÌ}êƒÖ. eú‘ÚÙë6»óÒ9ß_ئ?bƒECTbCg»sׄâ»ôèQ—öPM^ —ŸÇ^ƒ/;‹Q™Ñ¿JÍo¯‡ ¼˜f¯yˆzÜÇØ»ýZX–^¢tËÍ᯿ãštɦ„oIC£B?J ÿ̱/lx8·Ý”¾þ™ÍC½©ùï²oDyKà€F¬W;í«{.þæ–"‡ûcä]D½¢`Äd5#ÃéM„꼂’l€ro àÇ$jMÕl3çZ0eÍñ-uâRA> ¥ƒMïm5\­ÔúZœš -¼¡´DòócÚ #o±?¹ËUJ'¶©Úf…öå%ÿÌç–h·Làî3¨ú>ÓÉÜãUÜZ¿#`ÿ~øoìß¶_û¶ö úÖa´Îzd«4p娼@xnŠ´áAÉšCýÏ Ì娜LZK‹i!®÷-Zn; ?+o¡û§Me%çó6(å0x-qœ•4rNVh<­å¬w?›‹#áÄå½<„ï€km˜/òG^÷…Í‹vˈvß Ÿ@iÇ—L2‰‡J }!åàS/"øçŸÏCÈÁGù>ßãZ·ó³÷¯ºah<Bû%„BÖæCôÊ,ùžÿᮺZ_ëZݽ¿ÉÙ¤€ìÁw„BJòç]ëï–7=>[ÿ*çFŠÙOþ0‹ÎñDù]ªHŽ 7uŒf×ûÐù“²‰«ˆê#0°x´œqñIK>bíÇòÖø:;c2îUj„ïê`µ;'¿é÷ZHfÈdäŽ(qžNÒîÒ É«µ¾Ä™÷ä?8š\ûýûÃùX·QÎu÷5UABUe"ͳh¿’ÛZGûÊBÙ£i½wzEÃA™/ÉS­We·ŒàŒ¨+Sù2¥·5­ˆÜÂÙb^ÙèT®ê?²I)³$ö2ê&]¬d6òÌD§?ènͬ䦴Ô’ ñ±ÂwÄÕxŒ¾8è#?v;ËÌB[}þwÿ}»]ÊyÏ‘ŒæK] ‡´¨vóözìuñzëäeÒ6 û5ðc2Í´ýÁ1\Àcóm;düsÜ÷µq2zÿ*Ç<ÿ<’sØùÎé–0µMì€ý?ú¾wK»ýÜÕnt7±söëE:6ûƘG¶JíÄu¯ÙTÎf±SlªÂûWmÁÉûæ9‚ÇíàêÏS(òO” ê3#reVµ)l’5Vrš=†¡É/ö½ØŽ¾˜[¡‡_cxÿ”\Ž!d§ôÔç«ü¸æëFáÐßÙ0pÎ'¨\ôwHqÃÑ7ËqhöÏ^Gù¡›à®'~5sDþxE`äÝGÈDSÐzý( ….†òú£×oEY ù1Ô´±õœ‹Á”5Ë7Û‰B9À°æT ̉E/q…ë£.õy¸Ô‚[¬Â¸•î¢-öàóÞSIÞiK ¢–¡¬¦8)çâµT8à̓Z¸ ùq=.ƒMÀŸl‡|Ï[v)ïÏ{nc€œAån>6}ì~ŠÊ+ ¸™92ø‰¢qk”˜8tu4µ%ÿÜ;àëÖP2(Àèö@“ù+ç<Öm†:´Gv{ EO€Ÿ ë‘”ãÐUg¾j½”»…ϨDùìÏÁ®_rÒ·Ì)J™žŸ§wS ðc)UéRR{þïá߬F² 8Myx–Mä.‰)œ ¦ÅD:XFž¡Í d}n4}%·M8YÂ-¡£;i­†ö&$¤2pàXüèˆü1ÞBB˜ÿœ#}Õ7Ãrs.Ä ù>zOY>Áx ¨™ƒÑüZÜsŸN˜ùÎÔÏÊ[íŽ@þ¨ b¬ƒc¯ÄO¤Rr>É¥$²l– V3Ë=®&¥e)’Ü3J µï„O˜b›ñ³3Î~$ñ³ñ`Þ2G¢Oá”’C¦ðÉ Ý«¢Mõ2G”ï¿·˜Þþ ?Á÷'Akït6–?¢Ò`z”ν< –5Õ×Ï™Hñ¹¨Ý”«p‹"Ê%i‹dPZfÊ¥…µ†.Ò™ÚXzHWí©‰d÷B¯ /s‘”pZÿ±¼îÎ׿æeT´ZC©K#ì-šÏ…@Œ’:zFkx/õ˜>Cª9#W5(°Búr&îÇ1d5zv*ðãÓHiêì7Q)FÖ:re5j÷½DñJë®›e£,ÐSZ<¿ åu¤<”JšNR£†¡Ù¿G\^ŒÉ7£Sí¾É¬µµi.úÛbZf·Hï)È3ç\M'h=à÷ò{)½Žz™s{ép¾Åè}ÿúkvˆçöÁü/öÿpœ_ͼá+òï_ÃÙâ$r§¸L)óÚiðü#³›Ñ­ãnDþûë'^ð3÷mghUnŒÜë&‰éæzî}ŒñÕf™Ùå^ö.IÐG|ãã¾´ÜV¦+`k{ÉFs8GmÊi ÚáЕªŸ­(ÜÑÌÙë¼0‰ØpRnKÍ  sØ¿SP({ îa¾JPSi3ØÊö4þH`v›×¶úÔvxçCÐ…ø\—®Áž£*ôˆ²p ºðü$ý*?ÎûêRTZd_Úh<šÏQ.$›üøúƒºS>Þ°~zF8òåPÒ?LÞ¯œó·!H6Æ ¬‡Þ£äTÌ~dDæè¤pg<]ŒV¨hË;G‚)ë¾oº“™ròa¤¶ÄðîÉP^-üZDuøE§Fðé‘ßü{ nA®‚§ùx±Íäú»‰Ú&+Üs&hyÑ€ÝÒ›Ð/ä_mþ8JŒfk™Øð¢mp•öROµŒŠ¼£4€®Á®>5#í à ÛRò;šI##q3ΰV{°à¯?‡áÂÈkp¾s@ÏctÈ,s†}VÞ&÷O; )+/忸_¦.È)ø07–HrHÁ‘”S\]ª¢– øÜ68蛼„·Ø_Ìë,î¾€ÏíK¹¡ªsy#[ûqI)3yФÒRY[éAd‰òŸ‰¿CN¹‚ åèhéÃÎì•x̃tu†„Óƒ­Ð'^C %Êl¨ÓÁzT[ÉJ.)uä×EßiÃg‘¶óš…´Þâ3~¤ä4| ^¢áít‘—ȯÒRpy¦cµ Þ•ñ:XF!å$Öó¼%ÖçÙhÑhâßcw_ ÷w§ùz;3(6òRWäº6 ½ä£2T=Í^ ÑÑšHKév¨¥šôЊA6Á/ ãDÈJÏ1f¢Ò§ÙØ}knd.ƒeƈܵ¯†k{ ^OwMKóŽWp.Çki6MC $¦“ö­íCg‚àG?ßw݇ÏÛ ~¤/ƒ“=(wE*Š€\T›Jò5¤“ðÙ9x)ø7‰ë´ÿí³à‹õww¹ýìd´{Þ Å-‰+Ñ/`ýöuÜJ<Ù!«áróÈi® ~ÌâªHrQyøq¼Ydß~±B7<®;Ð xt'ƒ[ã8òÇ&%ÙÕ…î£ÛÁ–‚VæsV.ˆ²î²#½86˜Ô™õ¯׺1Q£ËôÎp&WàÝÈCdäåü+|}o¿Ð!²‹K ¹Èµ8"ZâÊü ×o u3þU^y›„Ó²?7¶AšXFÏy®Lòþ™(ò ËxJ; fÔB+¦Gr»ƒŸüÇ´0¡dÿÂù‘"MôׯÁ+v§½A¾¿ë˜>ö Ê[ÎP¦òœÍ¯š»C]ãòkªOEx7‚Ú†ƒ6oAÆñÏô¯Þ2Ç,wF~VÞv·›ƒä—ˆ×¢Ä¢pæí‘Ò²²=Âw|ù#Š–”-ü\æ þ‘ýïÙùïÀœEþXkå‹çÙÝÇ6Ú-+OB®8Îs²B-3#! “$úÔÔẘ7q–ëïÞå#àÇN@©À•Ÿ½‹FÂM¼Ø‹¸"òÑ-.K¤$?çŽÐû÷P¿[ÚDŽq)ŒßëB•ñ%tŸ ‰ÔÛ´ûWyumLÎJPñ]tƒwËpi(S9‰ÜÖ¹šW_Ê\í%³¹”$Ô-àh5”9DJ€üÑ’¯ØOïØ­‚BOÂxø=¥׿Ú6ýÃÛd°Šæ”ö(gÒ[!$¤ú˜×]‹izðã7 -g—ãs–@ë'uκq¸2û@Ýö’šjØ;Ô‚CþȦÃå„,×Z^ï øGË%­[d—tä(Èeþö»J±l‹@ï_5rŽ›ø`ò÷è8š G™$»W]Ÿj{½,±õ’ÑMƒ, >)h'’ùã=FÉf$ä"ôcrÔG~Ü?¦[ÿ<¨Áð`[ì^iæ=Ó²IÖûJvôÎ"•ò&ëqÎé¥×JÚL¢Ì?_b{Òðv¿2!Yíâÿëã_-'âÇ–¹ã«ãu¯9$†“ÙíïV2¥MX×wt¦/‹›Úmè®v7Æ7óc©¹hÛÐ J ½ºb’˜’î 眫3£ÌJ÷â7îÿAæ1ÜÛd›.°u°lJ玳Éf'Fkwû·-m2…èÌqV .ßÇ5kFU1Žëó*J™ìyÔöˆ—Wt€`ËÚ0.ª9d>Øð«è"í¤‡Ðã"p(oàV*ÓkJÀ%é´eŒ‚çç[}e)M´OlTnLJàó³Ð[œ¥þu~¨àJŠíIE")ÿA=¿Ê©nyò§Œ¾tÉ 5 (T2òph]VŒHÿþÇáý£ñu@U¨²-ìLŸÛ¾…NRÊŒZµ„+XÎÝ·ÝÀÈ}Tý+’¶AZ¸ ]Þ4±Š¿Úœžg!µËUB§ )A‘9Ï…<ŠŸªOÍÑJHy9]4?˜x1—à²ø¼é e[¤®›È½imüèãsÍ0»å­ä†ð¯ñy$å†CÁý88é_¿*/_á‘ÜŸcpadÅù ÝÀ€=ëçš™_Ü¿šäv±Ã¡IyEIä—Nð—¹ ý$Žì—^‹È®]„Üõ -¸Ä? Ú,°O¾xWÄ}b êªúÊBç©G”Ä2 ºŸOŸ€£tòGvqd:'?ñQä…ìß«b³ä³ù¨?ÚìÎp.’À1zÉe®äæ¸/ò‡ëÍÓ—:@‚G?Ê^¨½‚£GP¿ùàÇ|*úÙþelDP÷®Xô£t”7HK©(8®<ÖapâWe˜n”™\O’ë)(}nƓѢ¡å>¼È„@ëïÎóýìô%Bk\£Ö\šëØÄlëðÎó(Ù í4¡6Ò¥º@;Ê0i ÕñïG¸=J&ûÁ÷ïù±ýô6Ò2ç¨ ý€¹?5 xwÕàZȹtòÂJÍíEðj/¥^»êè!P©®swðhÎ7¡Íks<ßêÎAã?Š¢Ç»²Å2•˜^½¬ô¦D;ÒêÍ G4™.–ë’UcÊ ñI\X¿Âñ};8Ðú‰ÛÌ2Û#b0’òd»LryäÕ—µ²Bæ‹z•´‘wÂ;ŠtÖpRÇ M‘»ÞËešÀ’P‰ótéÂg¾Àë_Ýñåý÷¯è¬q2¹]Ü ¦²q\ÿêË}iÜ"nð#¼›à×OÜéëjÎÛºÔ~·)]6br»«œ)f¤] ¿¾Ó½öë·?sï@û&ÛÅ•©‹=dk8œé¶0…³j»BW ˜‚!\¿ä–sÊ8|áwd£Íè‹3‘? Ø3põ{áYãÃK¶©lrÔºŸÖ<6†ÊoYÿ¼‡'pô5ðûuä’ëÖ¡sÖ£„PîA_åÇq_ "šeo-øÒr)z` Ѩ€µdßßñ6Їšûwuí÷Õ÷¯Ú¸YAµI8³ÈF‘ 9)AÇ(HöíàqïÑ8œÿZNÉÖo/MÅl§`¯ô ßDçMÈg‘Û¾§ƒÞØJ8×­p™¯êëC¥.!lE;,ÃïçÐYx•ÍäúWÆñLzº‰OžŒÄwZØ W# Ý@Kî§ ¦½¹Û„«À ûßßíIÉè–ˆ^ÔóóÖ¾Çîïv!\ï îÆ©9 CrkãŸÃÉ@·Ãk™ìò¿+—a´¯@»øW{\mV~±ÿÇ$w¨€~” *µŠ"â_ãÐoodõ0Ÿ¯þùÑÉ ¥ê­¹Hkqfsü»§Q8ÆÅœŸâß·Ó¤—ÏCÝrQ![?Ø™>ë}œ÷6_A]² aø÷“­4ø5`‡ Íî_m9&ÑD|Ç| õÈ`8ˆZÆr¢ƒw):OEþ8_à_   Ú/4o ù¦§yÁk¸-çA»ö@2ì‹${Â*Rè¶ ÷üÛíh·#Îáü#FúL­Ff.œu2`þÇ …dÅÍþäl ¦¬ÇÉa)ôÜ¿*æNŠIÿØŽT£ ÎD#à•ŸÓ<´ÃYä…IpcãÐ mb>ˆ+Ö)eªƒQ@ï¬h÷­T,JC÷é®Ì<ÓÇD–Ü” óú€ýk»âÿ]´ìØ ç´öe2íì1Š ÷\“`F ?nÃ75K€P@¾4éhŽ:#>+o;Éö¡ÂøùÅÜu¸€Ï߆ì÷€«ÉIÙ¨¡4»\ç:R_f#Ÿ<“çr3ä <}çó{©M\ßÚ ßÕ ÛÁpæ#8³d’ùÈqô¾ÑAº‡—€OVFáÚ$çãÈsvP…_ìÿ‘®à(ŽG£~ÇÉ%Ý*M8štÕUÉ›¯g¡R¹©”—U 0sYðèbÿºÃ%>{ÿª‚ ÍñÁ]TÞâà‘2YšH[N-Ou”yŸ4ÐÕrÊKŸƒµÁ£‰¼“_ò#œóš@ë·/÷upÆSB´üSjÄ9¹-\ß>*-T4¿ †>w×TZTgêHÔð”ŒÖáº"7væ<ß 7æ´þî\ç¦K •ÃRSiC+ì{Ê6;­Õ´£œ—ušÜ»¨Ç5¬µt½g2 ºÝ™ý+†•`ÿKSÊ~šïR×Yg<$ˆrpL×ù‚ÍL¤¨WLê4½$ä†nÔùH1WAÍihÓnWAù %m€ž¥¥¸…âdzÚþß8‘fÐ|{@ÞåÛC¹áQ ¢G8¬Ü” ÇàÊÈ1(ôö·¯òã¬/=Å£‰ö¥܃’æÒ+ëßcc,•ƒÿYEqx6%;PS(ß×®v_×ÿ¶º]·W¨åÈ‹sÎÉCx$WäpÐîU è^úÊ?,ÈbÛ;SôŠo¤óÒfÿŠ; (+޵kŸîªWw×Ü5@ÐBpî.BB ¸%¸»»»ÃàƒËàîîNð ÿ>ç®$ë»ÿmÖ½a˜™:UÕÕ{ï§»«Šo!G磃®ÚŸá;©þ­͇2úWqYà°• Š-ÐËÕ6¿ kNÒ ßw&3½†B¯Bfó÷]ep[*P[¾C÷Í(“X¶ð.ˆ~í‡ú·¡”tÑÞ´}ÂÜÿcŽOM»+03ògNÇáy6ZÓ tÓ—¬ =ž„ïGA™Á ±Á4n·šúš-›?¸Óí„+»$eàåðœ\ðŸvtˆró.=>*AšPsÈ=þIÊÀ¾C#ò2hý~ø×$kÁ÷Z\Ó½dSû×` 쀸ÌB³9±–QÜ[Rêi) Môô¸¸¨Ìæ¯ù3¾Â‡ù92~<Œ‚µÎ»+Ÿt㣴ƒô‚br+.Ç!tWÊaéŠßè‰ô|[wéfí#׸…Ô”ÝðŽçT„œ¡\¤?y¯Ì…S^æÌòL'h&='}´—¬âŸ%‡ž„ ùŸÌæûü„r^fß®Z0ÆW× oTQ“Kr=[“‚yžôVÒïÀ-´»ÆÒ¤mµ½ô’QZ\#Ë&¨}O/³PÓ\Œæ¿)o€sÈÈÅ‘ üëï–¦ö6ªŸËô/xøBÙ&'õ{ïèᮦ×CÁK¥›e7ø#jðlt†’Û†ömÊþù1eÞþ˜b¿¥âRÑë¿hªwå,UŸ×G+âë|ð§H ¥ˆò¹ÆÆèÞG9()²X"ªòÆ?®8›‘‹‡C™ü«:w¶Gå….Ò†²òL¡µí¼Užxe½:“³yá-„tg`þG/¤”?qUÍ5K>pÝý7È …·ïšû×ßý·ó?’Â?¹#Ýð¦Ž9ðù¾bn.·”{ÌìFù‡ï_…øæšó¶¤„Ы`ß”v;ÇÌ;ß,3ÓÝ[αT^\sÎ?ÆÀuŸ*Û36¥óÜ9mKÑfóÐ4·‰¨ð'îõ­³ÁYh¢€­_#‰uއ‚Õ%²>ƒ,Ý™ÂÑÔÝ&°ÉìºO(ï¦{ÆD‡òFä5´›ÖÐEhX‰ÀûW¡þÀºè ˆìOTë£þ1Ñ—þ1Ä>°É¹r`Æ@&/E}¡›¥Pç‡7€?ú ±7 òæc«ÕôpS¡&í@· æOì`(tþº”“ïÒ0ZØg6>ß§øœöË’æ_Kç•ýzÞ¹ ˜|ðÅ: Ì~TBû'sM(¿¿¼£ðýøÛyJÓmrs-ŒÒ"8ß™,¸r>CªÌ7ÚBq%e§ô€ÎÐcÓÒd‘IÜó¹æA+¦Øt6°Ô0üc€/¦d7S$ÇÕ8&´c• _p.º@Ý?cÿ.ùy/@Ë#ò·`Äɨ£ÿ}™mÔÉlúÛû»{Üavê™7ótè™ÿþÕ2hâNn"ñä–¬WÕÔ²ëKiY†,þ\¸^µŸóûoÏ?*ºÁÎ)DÏoà+9šÄ”%<Þ±K2è]ËÓ8‡°Œç¬œƒ/óyÐDwŽÿrÞ½;{ÀM@=1¢…ã0RöÑKž ½ú#K[ðBbӟd+Xžñ¸oâ3¼ p?°Œ¹òNýÚóY'i)5åßyCií¥ºŒ#=Ööð2I;Ên.iô w„Õ€œ ìÒÞ›ç‡Z¿}”¯¡3=×™¤7à&öž]À[¥£>•ì2Dºé`¬ÀGýµ´ü"Ó´›ZY‡33†½•Ó°¡oÊïœp ÿžRh‡9›*H%/½N“#²Z3z×t‹>Õ¬’(^$Ý&Û¥ÇF’x޳·›âÛŠöí•RÅ9‚+61•A?\æ(T‡¾:^=ݧ•áB|‹KÍ©,¥¦š4ÁÜpwsḬ̂ãÌ:³Ö}æìüGå4¨¿ý#üŒ-fwÙtŽu/Øb4Ë<3½Á Ìû{.„}TrV:LL\ñÏÁéi Ǹ¬þ „Üþ´©Mn¿´ïï*Ö‘È\0Œ’Rð2\ÏË讜"tÿ=M…á#!ð¨ýà£ÏÖó|Ô?Öûê“ROðG.ä±M¨_Q¨Xiq+*Ê"¥çD²N„d}ZS#ã|¤Í­Ý²äãÞÔþ៱1nÔªÞ*‘9³;]€Òo<&ÿƒt¶äŸ@rKEå‘çü«Òøw£:k«à ƒÏµã²ü\´­÷ßÃÚFZe†9ÿü¥¯¦É‹º%B{RBMýë—”£h×ÿû[¦˜Ém- þXÚñ?{Æ™¿j‘K/­§/ŠéoÏ‚w@MÓâÏ*ïûûq~ŽÁûÑ“Ùø¾šx°½± ùs=jÙÒ9ãß+ï˜ÛÏN£Jèím¼=uü·†Rñ.n!Qå"ü#…¦‘íHã%‘˜«ÂÙ³ònÅ#PÈt˦ÿ0jÐ u˜ :É}Ñ?#Àe!O”¬z]ri þ(‡òp(þ}(³+ø¨{¶³øϸàhgÉ¿—{®U#ë$;‡lÐÈHä{µÈ£2g+—k¶à |‹Wó|šB5ÌOï”× ü‘#c4En§G¼Þÿf­´älbÆèðG™Á­%¯^Ïý®[É'Ø“¿àˆ[B=+\à«í,BžjÃר!ú&ŸIÇùôR£™¤¿´„~F×à£QZ[æÉ0ý:°þU/xeLs\Î@ýß”×Ï9íÆ†‡GåþTSQ}û˜ús½ª…ut`/áüÞ^ݦO4&ôÿ6úò”¬nÈ =9ЬàsôÂT uG±™³Íø÷s˃«á?æ”^=­-t‹l•# ášWwhl(Qt¤²”ÖòÒÎ*ŠNé#òÐÚ7þqÄY þè îîAsi"ø£ wP¿­‡ûäÑñ:þÎûÒ«©S9¿—Hkin‰ªh3-†ï”%ËIøÅÿdþà_Pû\õsÂÚkúSŽ˜Îmç–3ÎÍ þØáø×_˜åËææskºÛÜèn¸þîß$ó—moOçß¹Ín‚úí¥P°Z”Æz<•Î!“ÆE"èkãØÌvû'”ÇfZê'Ž5 ÿøo2®÷xEW¡ÐètÁÆ¥hyç¾bø¹îV¡ñõ9Ä¿£(¦ÒrGúŽŸAë¡È ° D2ࣞÙÉÍG÷éO7¡ÑŽKM) ÷çHáñõf:þHå_쿟g‹|?ù:ŸÓ—¼¹ 0~:!]´Õ©6¥š|WA+$Ò øýÝ<æ¡/ÃC©'Ù¼aÎ'‰Éì×€·RV:LÇÎ+£ÌÐËf:n–ÙÜJ„ërˆ+9=°7ì$: óE5uíJ‚üßé=/Í´G»š¢X× ¼|Y} ”ôk0Ô¸æ:·š`æ:¿¿WÞ¹Àú»̲ž¿â‡ô;ô!Èá'!¹,û5£•KðL²­¼L™ ¥}ØÊ^kÛ÷ß‹+é>°ÙA¹y /ã‹<ébG—з’BŸÈ×Ú[Os0§WÆ ÎÙù)´9  % gÄ{þ‘êwžXÛ' eø#©üç°Þ=¦#åü£ -Ä…øg´¯Ž£¢ï=-lbNtWCYî þxÊ+d†ü }8³¼Ö™šPoÊ<+Að·”zTÖ‘›ñR>ÅéQß~Ü#Ô^9;}Mœ Þ¾`Ú†\ž‹Ú ”RNÊXõiÔ²x#£~¥gtžþ!Ó¥‹–Ó´²—[“Ë~NˆÖÿ*»Mu®¸Ñ ž`t“ TI¯ 7Uö¾–Mú­÷Xwi,¯0(é¼édàþURŒq¾EIí÷¡Þh¨èl1Q) ’í zÁ›llÊ%_yÅt¿¶B+Iè&¢iu»–ÕIrCr€ŽRkRaŽ„Q• òŠîÙ¾oü㨳ÌCëRð|/{N’yìµ’`xã<éVV‚ìׂÞ=Åù¼JH $™†ÀÆÁ?ÊS8¨Ä}ó)w;þ¯Û¾ªÎÛÕ±Ïú~ø×ûŸGsN89cÜŒ¦’¹ã ¬Å-âVqw¹ ÝØÎšêØìlîÚHó_ î1±MJ÷|ªmfÀ?Ž;aí ñáã s›šÐ\ƒ{(#TèDv#™=4ìP›ˆJ|¢”wî:Í}d ÿúê•‘{òt$Íö6€þ7÷ßÛÄyÍù”5ºžº7@Z_Ñ3Zß>D·áþ}YŸÒE$œËô9¥k62¨7Uù¨,ò%§4ÂÞ²áp…îGªÿžRÐ7Hàí¨ß¡Y”Òç4‰ÖBÑ~5;ÛíÝP™ß ¿‘´Ã’ u.á_Ø¿“ù`äþ‹ðÏ¡ü³ñïm)gãÊ:‰ä–€rñmú‘rÒ:\mCüÎhjÀçáþþ.£¶ãWAŸo¡Oòóbû… k­þhNQ“¬–‹ÇÓ×ùçM@ ™p~w€aî› &¼L‡æä5pËðõÌtÔ2õ¥KaøÇ<ŸczÚSਠ€Lü -þ}ö9ÿÊÉù>ç;(üQÃ#Y¹ ¯G=ƒÁËü»/š ÎÈ÷Ê v‡Ù~ä¿çuÌQÌÕÙ<%üãðÁ Y¥´0¼¢´—õÝ5ò1þƒÿä¼ÁF·ïÏË)þÿ ¿ÈóÐGŽ#É:.ñá•´—„W¥–—(#%Úý„ïpË1Á®û ÷æŸGG~8 ÿH ¨ÀGé…ââhÒ ÊÇ»©gµT¹ ä ¼ëAïwñs”½*—Ãty§¼šö/JÇgÑUy,_¢+ðÿû»½9>øc¨¦Ò»2W§Ën*±õêéw:ô9/ü´'÷´oßÇßêkê $ÿê·¨6׿²ðí%}·+Cèjnäû¹Hé?I_¡Iä0¸§'Üê'óï÷hßÎÈçìqïÑ·8§£©””£çðšò•Þ×/u„\‘åšÊûSé#0C°ü¥Ž“áÏଈ饵ùíÛû-¡Cúô¤§ <ÑÞ§ï¥÷ zíwÍ ž{À ùt•æÐqâimM'ŽÆØH!»(-òÜ :b;¿ñCÎZ3×6ìGV”zÛßë¨uåw¸Gtí¤Mu¨·Ç{¥À8ó9'œj²–’—rœÑrëê(_çþ'ë·¿„¾séúßÎ?èsÈáf6?™‹NMÇ?´[Эêžr]×q>%‹¿=6ûæš?mKxk&èÜ`óÜíNOµÃL™æZ÷Sææ½=âÃ?êÒû%µB‚.`çØZŽçÜ1Il›Š ¢Ôw69‡Í ºNѹrtrR?ÊO~xà)nbüë`›Ü~n·}By‘ÍMsË–¡h[{ ‚I8W\¤«Ðþ›‡ËCñ¢€ÃPúÇ*ßWtÙŽ¶lnÇÇ‘€#'AòjN…p=®‚".Eï4܅ꇹ²m裣›^ÖZsz…Fâ|øßë ]Í…T=ŽÀAwSFhìtœ­¯ì\÷‚¯¹žò V](# ÚUŠ~Æï5áS¨e9.Ëâß7£Ì•¨é~:Kßó"[(Ìõ¯$0ÿ<)gà¹èý`üF-ªI)é<s m75Ld™ eÎÅ;ÛûÖß=n‰º†¹þUGß·›]ž™É½ ½ááJ𳩡sù8 !ŒyÅÇ¿,ƒo.Ãí››ÿ±ßílQnðËQ>^9C¿"|Λ8/4ÿ†¬ÖÏ5«„p=©(‹¹²qÞ½ºÈsx¥M`ßß‹¦’{×úgof€:oçË<ŽÙü‘Zó ð‡jq¬» ÈÅä)<.&àûüˆ_ðï½½ì½ùƒ{Ýĸ®N“ljx9 ¹…ûÈLÉÊwùg ÒÞ)½¤-e#ÿ åem`KcÐÂ9¸M<¸²©òNy-¬ÃÙàB@‘áGyŠô‘ªÒ…ÉÏ¥qõ¶ ÕÉ2‡IÝ Žûœ7oqðGGÞjýÝÙ¾âÎ`bøÁeªÅÕøGÿ¬-‘?ô±$“^Ò^ÛëK)„”?UëÉ|=Nc¡¦½à¿ée Ú…SÑÛ·Y‡8'Ügäßw •“H5¸¥ôÒãZ|°E6Â?né6}©t‰xÞC$¤3½=GDÏR[Ý–xÓÞæÎ^óܦĨ›D«9¹@U¤²— ~ÑHWÊ™£WPÃüzH³àVÁß"ƒJ’Itvx5eÇÕŽ3ÐÛùçgœIfšm‹q?Œ y’¦óºê2œEÀA&xK½¤^6¯©ã^ ¤ZLÂé5šA³À%Q^T¾gÖ~àºûoç|uC=ÿ8ì+ñ¯ù#Žs؉æ.v¿4ÍÍsÇ¿;Ù _ 7£[ÍÝáFr“ýÃùƒ§}ƒÌC¤Ó¡+?ÒJóf¨3Êt´“Ì*³ÅèÞüGåÅ6»éZdóÒd¤Õv‰à„w—âëKæ®iŒk³°yÿžsØGg§³Æ\ Ü]©L¥i9ˆÝŸ²ÚGH¹ë©N`ÿó©6›ý"Ôž8>žº—AZ•‘µýïí¥4— AîÐPÍ5ŠÍÅé˜÷ð¨áGýc/.`¯Û«Ôž·Ö¾úîÔƒÚSfhÀ~ŠÁ+(>Ôtœ´ùØlŸ6nfº½÷¯„ Ì»oê…¢Àüãà |4_„²Û2¼5Ý×É9gÓóNxFf|~Tºi‹£¯ÖPd¼ŠT—›° e>@WðYþwx·Á=çÛÂ&jµLçD3Ùé1Rï Ê šY÷*ƒkó 25|Ø”7·x!2l~ÞŒóÒÙ3!íµOq†5ÿ¼ï†ÛÖnFï,çNœ1 5%¡°YÐÎ’pôÃø*Y`uõ‘hu~|æBŒ¤^ÕëGšõÎûï¾,ô†{'Có¼›:ã'3ƒFêJn9&K4’擃üÔ‘e\ d 龜a:¯°öoï_„¤§f”6N3¤:š“K)ðEoI¥÷¥¨ÑC¨}1±2õŸå3LÒƒcQ,Ú÷]‹^¹ÿH-¯¼Ád»äÁotÕuj¼ýzUǃ?òã3¶á'žQ}®Ï ¢ŸÌ“wêWÞzœz¿‘*q_>Mûxž ”ÆPõør|E/È”7;PÛÇð˜ò\çòN&wà$‡Cí•3ר/ÈÔmùüã;® ÿÇ+e€ÆÓôp¥áú‡FÖou·ÎÒ¶²KFèP$[q¦ ùøÄ„`*…¼)o¾sý…1…Q )l—‚³H-=¬å´/Ú¼Q³yt½>/l$•ì‘¶àNœX‚ùå±õíÛ»üMŽb“.òî€óRHryÕõ´Òu2þ±K[iY FgÈ&i£Q%šÆ•ȉ÷SŒý»TŒ …òÙf¤­N¨?FÜR{]¢{ë´±Œ–›RZKhæíóòxq¼Fºœ«x¹u¾V‘ÛrÙp™íþHÂáxœù_Ì|ækä¼]+ú†ï›½~‰ýöî"7‹©l.8åë—”uSº¿¹[ܧ9Ÿ²—ëÛcŸoйÿð¯”ÔˆV›'nNw†³Ü4·sÍ"äÞú‡óã™KT™VØGÁB§y R±ƒ2ýµœ‡ü·Ÿ<ÈÌûÛþµ Ü vj“…Wñhå1ôÚ<¨P`þà Y¯FSËE|UVf¸+-~n¯‡? °ÞßÖO,é¾°ñP÷Ì<”wòï½Àú»Ée‘ÄzM kIÝ„óRUáÿ“¡.òq0HN†ÌôÞúí;ÝDÈSûÈ@%Þ¿zÀ#e§T†žwÖñúB÷êYhØ® þXϹqfšò8ÈBÞþÈmÞu¸JÖ¿â–ýÆÐñSt€—ÉD©+AœFêM¬—d¹þ*“x42õI†RÞ?SUNrnjþÇ*_;gü£òNq°^W[ÖòIi§>-!“À1-5¶–‚>ÖŽrPÚ‚CÂÉ.Œžö(m)¿Æï†Ø·D8ÁyàFä*à’TVÊÑt››=©¿(¬ÃÁ/ÁšÅ»®õj¹]žëCé'ç¥:|¨'G•|•Ûr¶ü›ö–u.™hÁµh ã¾6Õ‘ï¼2z@Çêi™‡l°U»h.ô`ÎÀóyUGîJl‰ •÷óGvä/¦¾ñÎ&³Æ~âîël‚Ý%)¼`m*‹Äh2­«t°wÂKí%ô*ê~.êÕ‚_¶•Ôz›æÐJû{à-ÿÝÈÁ‹>pÝý7;¾Æ¡Öß}èË넵×Û§±ÍN"wº›Ûü`Î:¥QÊjøG÷gw«Å¥Î û8ìÛ`žÙ©ô£Ç³ÖGý£·[…^  ‚.o¢¸߉‘²áúŸ‚T Ú} ޼€Òð-üL)*ÿøkžð u²C…·?Rƒ-ÔP=¨p+¾K%h·#m¦t<± ^ú˜RóB›Õ\£´ÌNSJ‘‡Àa÷À¹‹ã¿9P›ÐÖ“f€É†dß .·î1‰ºSR:e_Út4 ÿèâ‹b†Ù# ½mС”hÙ"œEÿN‹ `ÉÀ#?RA>Èx%3ï.÷ïÕ€Vœ,u†¼WÞqðÇøGF”·…«BQ;à ùŸ…H*¹‰¥äW“â2„s‡rºñø×RãoûŸWt تh)ó!îÏÿ(ì- õœ”Ô_ôo@ùž,àðc|41†ãP.ðÇ»ûGrS ï¯ƒÕ²òTœÉ£^þ@/Æ1¥£.ƒœÖUÚZÎr©m®Un‡Ú_Bû7ÓxÊaJ¿S^-Œ·T ËÝ8— 8„Nó&äç†â_Ïñ†Ó¤z[fêYË¡|Çx6ˆ¦/áÛPhG~áÖömêXíëãl¤ÏÐówÁ¤ßr=ŸòEŒ>Ë*#¥ŸöÕ`‡ý:FÈ>¨Å4WC&èB-¤=õ·|5¯zHòýå,x!‹·MCÔ‡¯¯Êq°Ò:Ù&£8)ÿÆÑe¡”öûPoT×rv¡8TšÚÀuÿ´ŸS©U¿­ýt üc“žÐúZE/€ÆÊ!™¬±$f ‚{¤§×ôÌÎyã—‹WØÈQ½h,M¶;%Šw ´N®ã¬f×^:Ó;äeò z­ÁC½´:Y«a íÆ5<×vÂU*që²ÔèaŒ7=ó§¯ú¿žÿ‘Ø9ã¤qG»¹L.sÇ)ŽR‚|UÜ2î@ð‡º œÓ/"ÔqÝ·Öܳ¿âeÜ6¹ÕÜóN d˜±æ°{Ä kNÙ‡2&7¦% šãPâ¾v«ÍèäqØâ”Φ± lªh>­åõÀYj£BQî!=7@–‚^2ÙÇÈ—¨5ÆGeúÑf²ìòçKf¶˜—¶R`Õ¦SðWH÷uኜ[ú˜š³Ó9› ðØ–ú¨\ó5¦[vº}lÓúß×GïUƒ‡T§ Bž†òù×ߦ…þ™ª~´ÍsÝÐÔÁ4œ€Žb‚Ø“€[Jro¤Ö )þý£N¡O3òM¨JKPØOι”uÎä|Kå¡÷?Ó´çá¡íW_OmùJZÏ}™xFàÍÝ]è‰è[NÞl3šGa”–Ü©aò“­ÕETŽ¢=µ©,¼ò&]¦‹dí.SH–€òòb¸åp\ë Ñ3/l_Ú† D˜e÷Rÿ ޳;¥ö­u劜‚=nGµøj`Ýá(P祴‚–@-¯‚¾†™iÎûkGìvG€?JRahý~þi£+hª0ŸâÚU®Êv¬™%„[H¨}~~IyùÏãó<Ù9–ýâ½óÒÜ}f“ÐOTúÌ[¹ ¡`…²²›‡KlýK¾×:ßùJ^òXÎÌÙø_ã—ÐÔl”V9ß)ñŽ›Ô]Á?Òó|¸Ã5ºÍ“‘•qFé¢óá×u—Ö‚ÃÕ ¬Õœ#p¯ÀþQ3xC`ÿóÂï”WÕZŽŠ¤¾Z‚Ñ^"ƒ@.«8øc–¦Ñ§2I»ËvîˆÚ@=ãF<üaå.×FJx;jÖúº8kq&ZòÐL%îd/Ù³|\zêsÉ'd®ö×TÐæ-ðîÒL¦áï¯Pb[|rxô¦Á8eß®(ÓÛÙã&Æh}ŽÑ[EÆÒX»†¬”Ñ×ú…N” Ð÷¢ÞøåC%ðƒÏK§÷d•´áØHþ½€·PLðÇÛ÷•‹:Á&!¥ÀøC×8®ö‚Rßk¤çôGüæeIä…cVÖ3`YhíBMˆO‹&AËAH™(§ õþî ç(øãWòsÝd ¶Ç@3£u°—y7º¤S¼Íy-½ªºsz õk­˜ÿ1ƒ6Û1eGeo›÷×ðüÿq§J¨÷¯n o>mÄß8„ÉýüQÔô³®ð”™ÏPZ5J]ÍÇVËéV¢p܆üûQŸ¡èá)‘’¾ãÑ< Éþ:¨f38a#%ägpÏTÀÖøà›k}ƒÀyø 5E½fPdú˶CÎEf}Nõi rºÿÛ6xÕf\iûAa%x‡ÍmÂZ«&ª“Ä|ë¦xª 'Œ•¯Áçñ÷3ÇŽ5ŸËrðG |²]øúuûÚŽ¢aòGó‡ÝJñywç܉§Ryh¾?û׉ç߉~ 4/.þe-ÓÌDÛOB ö9ïÏÝÚç6”£ox#/çâ|¹"Þ}”눑ÛrLóiYÉáSQÇËø¤£p§ øü¥6W¨Õúþs…ä¤VðÓ¼õB§i$ÇžÎáîШ’GÒU¼žsÊ3žËY8#Üã2ôt,Ç@ÿlvÞ]墛††Å ¼r ×1<çÑЫ>PÌFºG#xÁøÿ†Ì_JI9ÎU@dåàw9z:’J˜w)3¿uáä§À]y¸÷.o”YR]†òr[iJ½…3Ò\é)xV-8Ã,Ô0±¼â¼À¾}jvÀWÕ ÿh*k ifŸÛÔ²K:À%ËÉðÂZÍ«5t ü£­t“¡úƒ¦ì_;Dv€cq:ÎJoÕtžsÀ}ïVPÛ¯ÒŠêÛmô57Qñ¾Ô¡ð©ZÃ{¨4¢—MÏÊ_OÃëNøGð`4ÙˆZDµ%B=‘jâlħ ÐW|Î>±i$–×Jwèp¸?å*þ6X3è5ͦ 䮌Õ\òÄE Ùþðïš› ¿ñ»(o¾íFk ƒàn[$»Ù(Kp>ÆÊ§}½}ÞuýÆë¥·¸–—H+€?bëiŒÁ%ðt ©³»ù”´ú}<ƒ¾Ý7钯¿~þÙ¹îDsg»…MkÁõ¯Ÿ¸ÀWÊýÁíáns7Â?œ?¸Í7Äø¨Ô%--¦$6«ùÆ}àœ7íZ³Ðìtï:—>^H¨#³¹E¿Ò0[ }=‚†Ú(”Ú‰ï·õÀyíD›Êt/×ÿEœMÎ!#Uá¹:¼ÿ1õ•–¥„ö2ë\[É £lȧ̹j˜ÐÓ¼Êyj½ ¿ÿþñ„üü‘ž¿£Ã66}†r?þüc¿/?) ±Å‚*lñßQ·TDÚoG5ØB'bJ2BMÇ •×ùèúWKÝ\PñðŒ›H¼¯ì¸ã÷”œqk¨ì$ÑÃÐÅJ ÊïMù)-þÁ÷¯Vùº;)‘ wP%ôÛÔó9Bu´º>ß§¢40ðŽþb¨ZÓ(ä!ÊÏcmÖ{Ï} MVŠ] ‡JE?…òPG¸lröß±Š/ge‡F×ü²—ËÉ7²¬ðÔÌÍðýÙ¼‰¦ô{-®íú Wý()ød)o@:ÿð$·Ìâþ’T¯K!í ÿ˜~ð!ƒ'ƒ†Þ„#]C*÷(3­uæýíþÕ0pZöïU üwƒÇÊ\©Ây0’},ï¸Ôæ²™³I}9Èe‘:𔹣ª7}mj¿SÞ@kPÒnô~;ÐÏ$zÌóeÈ¥/¿f?dÖ?eœŽ…”’Hº S Ÿ:‡/Á‘ž‚Ö…Ú¿v±¯©³2y.Á?:ð/ö¼52]úêUÉ)3d‰.ÒÍ€kè¿è)‰¦t7œ$¯îÕü:DîHª”ÓØr£k;ô,4#Mzã;Ýf‰íGÓhu§žöŽ”ôni™ÿX)K‘ Ú{{¼‹ÚÔë­¸†—Q«i)1zÉk;®È"ôŒ2ðÓÿÉú‰w|%œ·;£ø÷Lø/ý#ü#œ;ËýÆ´4œ’(eŠ/µ[ÅýÍÝêÆt¿rü£Ò¶ùš‡¶A`ýÄ¡ôÐ|gJ»ÑÜSf› 1ÛÍ~÷‘Ö=ñ±ÍjªHÓlndÛ2Ôݿ߇ÑÝa¿£d6£l3P}óõ'µ¼Œ³ÓaV ã>„öÕ„ÒÏàuø[VøÇhÚ„Ÿ¾¡~6»Ía?e’WîqóØfDi‹¡F+H9!—¥PÁT•"sþº÷Ú>³Q©Ù'ø‡Už¼AÅyz¯ 4µ4uAþÍÃ/¡Ë‰ ®©¡à“¨U6Q>ÒæfnÔª3Æõ~èŸ@‡ÓRszAÃïï¾Àˆ_D;«Âï¥ß@Il±&…—¾Î=›?Y=4‘Ð-[š?Ê´ Þóˆæt`Ý«ä_Eq ÂÙêi³„ùü<ªSÈÄ…·¹¼WòQðGu´*°_¶d¶‡yÀ‹¹&§áÕ`¯ßÁ<ñ逽h sýöá>2CíÒÀúèõ8;;<Œüï'ƒ~eçÈ`ŽF”ºÝ—» ߦå5à§v(w(z —Yþ·÷¯ö»­íðPøÁ4(ëqÔ` Å;})×yŸÌTü±‘¿FºŸÈyø5´eW‡þæY6¦}-ÏÚîK›+0ó¿ ŒÃùÎ%¬æ‰’Bï ²´^f?“¼€#ÄŃSöqmŽGé(È)öN‰7ݬ4Žö*ãpO.Ì;é„dd‘Z¤Ö;ùMB8;nØâÕñ?û€æûçÝWxïžb#Ð÷—|ãëg”7ü±T:ËwRŸ\×éšüÑ_{Ë\®-áõœò.^8aéÇ[C­5××ÂéI)ùG¾JmQÿ¦û®l¸š¼Ñ]ÇkB-¬St¶6•®2HÓj*øGcîˆ QÃ5³ìMyã£î_ô=÷£ª’ŠêÚ“ô—$Õ²E¶jï¾^Ò§šUË ¬gdôàè8÷áe(;«­jÿFÎ césd¾9t’óÛì”^y?ƒ~ÔòPöé8ÛWºÿ›)/e¼’¤ÑÈò˜žc”¦ÇÕw‰"P7þqÚÙiVØNH@Ãq†—Ú¨Z×;§Ï£vHô^oï wAk{#t7ø#‰6×2rS®Ð ¶½‘çbA3fšO™-ð}<@ž~ûÜø–¯¢ÖZ§Ÿr„w:1à™Ì¯&œë_­m²/™[Áméwc¸Ùþáú»}àU(/rw{òl|Ó=æì0›í&³ÉÌwïýÃûa—ÜITÆÀ?ãªa/Ù&p»¥¶ ïs;Ôæ‘—ûÄõKv:“Ì\dã³à„’tf!‘U£oídæƒÐ”äø×Qö3û•½ÿ åÝwš;6+] ¬Ü±Š“+ÂM¢·StdÓïé® 'ð¼õS¾g6)ͱ·ì#$¸]T 5Ë—ýª„t¿‚ü{W¤¡F4tÓ9Ì•mßi­™² üã ÍÉ ¦¬T9z rxæ€Ê®D›Q"®²Ÿ)¥±E>˜VûÚ8Ûì—ÐÒ:p´Õ”’^柣z —òÔ )÷>(~+üc ¼x"ÊîkS˜°ÖÔ‰èD6q"òL*[GáÙ‘ËO¢•¯LgóI¸2”oa`­Ü¾”Ú+¶M˜ó?fùž¸½í.ô÷Pnæö¯>Ò êÚ_E‡ƒT¤Ïx+ƒÊ{hù*¤Å`бàÍßÍngÙ{åÍuÛØñôøÁ@xØ)¸M0eã)üˆl“5*šG6pEù^–A¿ÃqxÎ àPCy¨Mb+½×â²î û5 û÷-æ Çý9œÄ€^Ž”ÄH÷iu°®äñ\@TfrJpÙ1á{Ü’cà|ïs–¾ÇÙ VGè6|k…ü€@KÓñn«sô5Òó~ýþ‘TêÊ.ÐÌC*Ë÷ׂ©µ5ïÖ°¶½K¹ùX²/çYtÇI'ðǯPà×p¶Hæ´ŒæŸås¤èö\Žý3 ‚>"HO¾j¯µ9Høýàä Áø?"§üš>Î[åw}% Qj'øÇçš[—ëðG[é£94Ȧ·àç¼î^”ÓÓÛwWF:Ý[”]D•¥ í´kQ^%= ß™…^­¹½GºOj" –C^oÈɱQË]£ÏÞá6N°ñÀð9öðs{“’KUøÇ\Ây¹%§t½Ñ"ºMséB¹†ú%„D‘ÛÄȹ('Fõg4*”ì5‹ÀÅ3ÁG=iŠí¦Y¼…hÙxæaiŠóZ× ñnkUo$ü£·—F;j=|çÜh’þˆ‡6¿üŸ÷Àö sýÄ>¾×nøG\ÐBðB$žWêHé¹5—Â×O0jÒ!}wbÿ}/àI㩵 ÿžG•¤˜Lá¼(3Håhï ^jÓ„J»ÿ9š¹¯mQp`&ôûï¼–'ÒiÂÑ¡§Cx”dÔË’]ûëÐA‰.Ã8þìç½|‹ëp"JB+œ‘ï”xÜMº;E/AXmÀ}›é1–µ’ƒ/r ]©äÐ#ú“lã¢ÒõòA)ÞG †Œ¦ŸM½wÊ«lãùßø¢MT5œOçyô¯´üÂù¾NÔdPÖ~úœ­ž|¡›ù7xe Ô~¾Á'Cí>Ñ×Þ™ §üƒ/Â?Jr+ûЪ¬–nð¬2H@cj9ðÑm/ e¬–ÒÄ ›ŸÀfÁß^ÃÉRÐŒ7åõu¸÷é[ôpoª"ƒ¨)Îs3®¬—5µv•I²@K{/õV`ý«ýrFÃæ‚¥ÇáVüÄxˆòÙæ¡Öooä\4¯l6Œ¾t‘ÿ²ÿHá5Ó5ÚL÷‰O7ëBh~!=ŽVO…›<ã¬*ò€bÃ?r‚à¯Q*öÆ?n:Ì Û T7 id¦]+ù½ç:Z–¡kdþ®¥¼Þ^-ãMÐãœÙˤ•óÏ"5ͳ]12Sƒ6_›¥¸îþ›Ç5_ÃPþq4’ò_¯uÂIèvqs˜æEàý]ÿþçÙá {Ü8n‚Þû¸â›cÎÛjðÖ4P¾—Æ5M܃Îu³Ê0KÌB÷ø?\ÿêO÷4üc¦Ín(@] ¯UœKÎ*û-=21훘ê|âû»µœ Î2sŽZP}Œ…­ÐéêôuàýÝô %F–îgS?®~By1Ísþq#Â"í–† ^Eùyè)2k:ï'xzh+}Ô?û^X¦Ú—–8;ïÛ   Aþ5§pí¦\¼}Ú4Ñj…¹2H裢›„öA#; 6Rt”›@Õ[s7ÎÄ7A5k ö;(%ß…ËÍr>ôÖÀ<_Og±ÍŠÏoˆZm†ž¿¶5©”¸¿@-åºð‘5૸’ÃC‚ðIÃmñ0ý#¾ÏøçÆ'æÉ(mùyá¤ÂаÕtÌÔ7*‹¹Z`¯ò¸Ò;Q|:jÙδ2 ÿ ÿèf×S,èýHÛQ‘𫢇ó\cñ´ôK>̃ð'<ü`.Îug8é0šA]ͺ¿í_»Òmý»Ç+ Ù8O¿ÒJÅë¹¼„—‹2)7£¬å"ò­¬ƒ’ºøÄIp®ñ<™'Ù˜ö}®ä>´yцÔà™Ðñ¡t‰Á?¢Ë|ž%) Î¹ 3óy&g•×() Æ›ø_åf쀼־绑 F‚aÂqœÉâ)×Áó$ø£…®ÕxÞVøGEYÁ¹¥¢D‹•Kó>Áy?]óã;åU³‘OãܵG]§Ó<[ºIMiÆVžë$Í£›dNiü«D՛ܬY õÜÍ/X¤5ß°oß‘Xäë⌣ÈÜÏad4ä6:½â ieÏ.­Á1“4±VÕU:V;IøREÍ‚š¶æìC]~œŠÞîÈ2Éù˽÷{ ¢­-Mpõßñ~©§5ŸLÓ¢ÞS½§¯4"øãTÿ9H¬ÔÀ'øå°lŽ7í-ì¬7Àá%|îó0›‚JK¯îÖÖºü1_§ †Ùá#iÀ7§å¨ÆO£Š0ñ$œôðþÄ4æw¶™uHRsÁ¨ý Qû¥Œw]«ÉX8È.£õ7oÎǯ^;ÝÄßxѵ´ö‘z×ð|;òÃk3ðsóÏfØýß‚8Þ’ã9_ÍP»ü³#ø#ŠÛÒkʘ}·=6ù¸ÅÜÖî^—ݾ¶^îKß—JS5Ê„«øš¹ë6w7:™ìq»ÇŒ6‹ÝÎíT^jª<ÅVÆ9ÏJÝíAûÚ÷؉„1ðÒd¶!?ºÆŽŠÎfg¿qù=#ýB—))¼4}c#ó\‘ƒ ‹U¨è#ºý”¢›æ¾MCÏi*”ú4T*—}hjiŠŠ1WˆnÙ$è¢,Ÿà5¡síEÉmÆê¤àÊ´uªDBþû9q¡{[á(uM¬´ù+·ZØ„FÀÍ6Q$êXÏ2 Tt(gfÛÓqpÉ"ºEþ§ýå@a圔¥N?ç•-ÉÛ¨6Z3|tÑ6@M–QsøF!êÃ5ðßEøœ}pÍ(w%áã¶€¹FiIœNæk¸EZî?¼ßù>’Œ8°Õ3ߤ‘5༼ç¤3  ptÈ^·¿Óê0ü£§/¯écPrÌ599ÇãYþ@i tyý«CÀòñu´zÇæ¢8ãëyq!jð“Yè x¯¼íîëŸ×˜–wÁ?>C»jøï}#¿)áä²l€|%Gá&ÅeJþø zÚÇÛ[·ºž¤•l<€—ð!ž‰œÑSKR°Æ ‰‰Ä\Hè!^ÈUÄw%ál|,ñŸãô¨3êw¹)©Hïøc†YŠ-Se¹¤å?¹·nÓÄÞF=§Íe—–ê²54ìÿì>á(œ§Â{ïï~gc°ý«sÔ 5žð!(}WiÀ*á¼¥šÊÔ_u¼L‘ -þ8­5£ž”MšB»IôäøðÞ<ÏÛ:vè›öfvBÌ3£-˜žsˆYMÙtšW½ÖU¯É6Ù¡õtj¸Y³i²Âbm(Q4·øß _ µÏN=¹8] µÿù ³ÔÖ‡øsN:ª®“½j —F’ =f¼ž:Ú;îÝÔZ^=Âs¼4êxƒe˜œG†Yj›S>”ú”žÖ/ù ƒi õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run007/bold_25mm.nii.gz000066400000000000000000003026331323370031300254270ustar00rootroot00000000000000‹¤½w”UEó.\ÕûìîÃäœ3ÃäfÈiÈ0ä4äœsÎA‚dÁ"(ˆb"A (*˜sN¯bàUQPÌñ>U3¿ï~÷o­»ÖÇYܳÏÞª«ž~ªººgÓÿÅ¿9 K!x-&Ö×ÿù/@QúûÚ3Dϵýß?µÛüŸ÷n{Z×|ùÿª­²o÷FuËÿoÚõÿïßÿîÇÿ´iI;¢ÏÎVÿ<÷Ôÿ¾S®Ë?é“ü“ïÿçŸ\û®þ7£¸žþޤ^ô-¥ ¥ÑVšK]p5ŒÚRÿJUx¤…”ÂÿЇN¡ô-õ¡ë¨ˆ£ÈÑÝÔpsŽÐr*¸1MA)‘ÔŽ¦ñ­<ï¢i2åñËÜ›bPfsšFÓpJÄõÎt”oä·on¦s´’Äý‘ÔŠ>àHB)(i£k™ã&÷¿Eƒx±ùŽ’Ñß|D[hê §i¢—Ì M2Þ_¢^G¯ ÚA×ñ+f¤W©¸ÿ3ÚKe¼‡jSµ¦WÑËe4“ò¨×÷ÑI‚o6£†|ŠJ¨1ÕáNösÓkSKšN?ÑtÍ£Ô™7›]|€Kp=’·BwS>u ~Ôžº¡™T€ß‡i#ÝIMðé=º†ºñ¨¯ýšÙSo*¤tZMuq­>u¥¨Ò¤£_EƒÛ?Úbû¨}›ÆS1»÷°™ É®¶£Ì“Té-¤Fô9ú0­ï‚z› ü©(¹‚º£u‡ÈçhK¤Q4Lïx…zRÔ˜O£œžô=‰QÈÇHüêϱ+ý"ÚNÝl‚›g'ÚG)Ô·¹ZÁ§ý\ó0Ÿ.·_»bWÎû¨ÂÄš.˜JÔ·‚îæ&< ½íCos0ªÓPCšAåTJ·Cn™èk#ºmBÇé-À·Y4Óßg?õoõ'Ó&jïÎÛS øo·ÄÙàÝî(tmµà¶Û™n;oçÕv­åöØSæò{ÆÒkC•´Ç›”M“h4ê¿ ýj„1]Y,¦:hÛ5Ô:õ4y 5C»žôKm,·@«>tØDÔ±ò¿bSÝ-Îs-©#¶¿CæýÝR<ÿ¹÷5îC“ ý¼–Ž˜>”Ù÷DÒ¸ŒRQóŒà:´¥¬g%ͦDî}.Á4¤¥Pèp)ÃøLÎ'ÒzgvfA;c0FçÐã2ÜIRÇ@÷À µ‘êQ,ÆÕPŠG+ ÇxJ@m}¨§à] Æs$ƒ=ÄA{CÑ‚4¼‹Æo‡ÿDdˆÔ‚-åàz4Ê Ç«ïk£ÌPJ¢¾(=ï"ñ;ýËPO@?³p^¡j­Ñø£¥§¡ÄxÜ'2q-ß'#2q­@3/)+Ÿ"qwš¶@ÞcÌ‚(1€òÛ¢¦X¼Á½É¸;MŸ…fæâÎZZ[œbR¤¾O@âQWôìEhÎÔŽ{7`\+ñ. YÆ?ct¢ði2¬ókXŠôø2,a,;¥ì¢&ÜŒër<ÊîJÜ3GjëL“ø ½ ý{Ž»áz$´f1½M2¦q°«ã¼“[¡%Yt°b Ýž‡Á^ãxî®’]kÚšRót&„^§Ù¼Òüq@ûÍkhórÅ«oiŽwžZ™HÅ¥ý^#¯‡ Õ7ó'¦ð* ­þ‹îÖì@Çc„ÎOæã• ¸vt7,- xõ*uàcЯ†Ð»¶ö3Ó›sÑš%èû45u“ø¼9V§õ,ßL‹€Q¹ý |7vŸ=ÜÄjˆñù3Á  þƒÐàöèáD\닲 çºx5¢¡r“¼ª‹v¬ |e3ìö ȸ” ]¶;i&×Ùåæ9jî-CùïB {¥zBÊ•°ƒq°—z°µáÀÝð\wÜ3W‡¯ÚÒY´§ßç žxîCŒvt$ƒú¾ô{Ùi~}ô¡9lv”lÓ¿ü°}Ëívú™æ>¼Ñ^p¥®˜ïªþéÕ ¼gºÂFWÐ6îÉýГaаÐóL`Òx´©>¬¹}߆ÞfbŒ[ˆÑÌ § E­Qï,àÕOþn ÝBݳö°ûÙ.ƒÄkg»/Ü·‡ø7Ìm²€W»x¶½ÎŽr{WÅЀ­ö)ÿÌ6 o{yŒœ ‹!(wP¡ýœƒÙrzœÍ‚±¼š‡Ïsé9¿Ä¸ æàÜoèqWw#dø…vw£ ­©)°&ØÜµ^¥ÑÞ;6à>1éx¿Š*§ÔiÇŽ¨/¨—Ñ$Ú€²s¡o7¡“ ó¡®·‡´Ã`c€¦õi–Ú 4ÓœLQ»KOºQ®>t!„Pa 4°LÑ¥”ºò`J¼bÃp´],- ýLaм(|ª Œ~˜ üª › ƒÕGÒQØE®”¡Ä ÞÇ£µÉ¸ª ¢HÇ?O¦cDJq%÷æã`j(îOÀ=Ùx¦¯p\D½!¸§è§Hœ¨(¦¨‚'¢ÑŠ Ê‰ÅãŠCr”–…uÄï8ÅÖFÚ×êR2ã,îS›L»Z(M5ˆrj)^e(z ÿ9Okh¿"Y]|š†1”–µ¤Öü#°EÐq&Åóï` ‘Š /Ùœˆ»v`^lËíYæ….àQÅx^p²- €¦uÕ>.£8~ø†oš‚©½…{¢Ñ¦®´³g´$úÿ$FãZ ³1îÒ³õ¦Ød›#FÚû2MçÛÍ×ÊÁŒy•î¢ù‰¼Ok¼;0ûG㉯èq/Çë«×¯ã÷Lo¯ˆ3qÿŸà.e¼ rl›zš¼º&#t+°ez™äz‡Úðq’/ž[Û ¦+ðª#æÖ÷h›¿úÕ‡jó‡æ,oå:h¥Ç7•Öcží2{âÎxŸ-=AOÀ› /ïýgóE´µ 2ŽWÜ]нV]¼ê ,K3d~BkvÓ‚À'6Ýî²ÏÁƳ€WIî ðª+Ýj·˜G¨¥w-ž}wöÅ(U¢ÆåPXF}µ¢#ô;Fª7ê¨vLÁ5Á§þà;¹èÓ1 nÌ9¯`ÖÈê^õ¶küô¿­ÍrÃí8{’~ƒyÄís/ù æ>~.8Ê~ç¹lÈ®ð*4ð’é ¿ž¶r'ðç ¡´ûNÔÐmê>-Á•¦°âiø¶/Z¸sÔxº­[€ÞfÐ4ýÕßâO;ííž°»oíRHö×Ó]pûÝm˜Ö㬴sÜÞÁ‹ì5vª»Ï†_­ä»íkþ󘺣®ûx¤€ÞMFs€õ¡¿9x+H¡z ðê0æÔhAhÞ9?Ó†s#´ô¸ûÁ&»¦n3´ü;›áv¹o€W­é~ëó\k·šrÁûÐþk¿0bÕhpà˜é Ô(„'b®‹ñKF¿Z@¿±"qÏ@¸DC”#”ãÕ Ÿ……Bs½£ Ï«i™y50C9Ãp:è&º ŒVÆ&'Ð-°œ„ËeÓ@žÄRƒ~¥ª’ý»„»#p½}~ :+÷Ç£´TX} ^±ä+ö#ÞT„ ^$éÉZNZ”‚ORR4ä(¶‰ÿsµGŠRÂàjãžpàE,î‹UέŒ/íT_6eD* Þê÷A­9G½ ¼’ ÉXÅÉØ@µê ²¡x¼œ–›©m *²æ Ѹij!Š‚—Òê”§±€¡ÐjiEsp§+àZòÜt2|•þ£8÷_|¿•ŠYz¿¬Oç(•!7Æâ}¶¤AàW­Áç)ž…–ˆ?Ø5}…2“ðMO:¦xU -¹>Zè–´¡=½Ç±\‰ºjÑõ&ÄäšMÞ¿HÝx‡ùr{2o€½Ã2—¼I½=Ô˜Šñ<à5ôưÈw+¿f†zÿh ßK½Á °Ø;1ouÔÙr7Pr°²Vû6µ¿ÊФq‰=kºp!°áfàÕ6êëDÉü…ù–çq0ç`ÒZhMZÜ­ïˆr  IýÁß^¥›tÄߥ就ߠ]­ ç#!rx2åèñzÔXˆš:Q M¦ùFí.ºx•mOƒ_€„¸÷¦™†ï±™hº· ùžë‰’*áÖ‡tÇÀ6›Aúcàq]ÁŒßºÙ;ÿ·Çµ!ÐbèâqØO%<Ôgqw2> \öûÙ­àW÷P3›éfØ ö,%›365ø“;ç'Ã<\om°KåÝ4ÊüâÅ>2òkiä¡èûŒÇn”z¦@3š•Êñé6hRmÌlu¡#M;@À²Û£m+ü‡ìÿ.ð~˜;kO;fP]G`ZýÜíÅüv£©ñ«˜–Úù`Z‡Á¯²iT¼º=éBwq?369 ­HÅÌÐïëbFì<•áHn/^mPsC´ëQ?Ï&pCŒÔðÿR¯*è*¸å.÷m ù²¡Á2×Ë­E?ó^¿ú ó  o¯ÀãàWñuwåW%Àœ ô«1F¸õ†ƒ-‚ÞŒ†ˬÕš3:Ž›¤™¬cÝh^ŒVî4‘v³Wâ]=EëK`™¸¿/ÏÂȆÁ~K ËÔ3JÀûždAOñ¬¦ÐêfL°´3AãH‰Z~°¢@gý\¯­1¥X}Ÿ¯Q%Á”xÈQ˜–p‰:Š…YÊ„2ЧLþ¿ŠTYƒ.éjQáêËeiEA´/DyQ¬²¹¼¯F²XeJAeHÊÒ"Ñê–¸+E}½ÚÚÒ\”‚kEx%ª®½ÑšcQk.%é³`_ëÔ‹Fÿ†@Ïûh M0‹\þ ךJÿÒô‘"÷7˜‡VS"' ´[ák·àÁ,RéJ-0ŠQo(tiïæNŠÛ ¨œÏÁ¿O·%-‚?9I#vè,oânÚ–`÷1‹×…þf‰f^gÒMmsȧz…ZñJó#dƒÖ™·`#‡XzóöVR‘¾|H;½&ÞP–ymøÕ`¯ü*Š|p«Ö|3j=€Ö¿ ›ƒ¹·28 ^}zœ xVó8l»zg™Á\é]„¾üj#¤“ÍïšPsз!8ÛAÈíŒB%4½3ú¶m« -= ¦¶åô§‹ðœ†±Ï Á¦ÚBÒSÕo*ůƒEÁ*ºÂÌ4s Zt - ¼kSìaû<,¡>§Á|Ò̵š§©Ê»O}ˆç;-ô€õ7§y±V(Gâg‡¬â=æ¢o¿|z_ޱ,kÞu^BÿRQÛ¤Àw~+{=ðêvj ›íg§Ø§(Ú·ùÁÇÝyàÕÃüYp­ýÅ•»"ð«Ñæ2üÁL%ú²6q‰T²¶iSQv'ȱ´¤s#8{m|n©¯<9Ï¢¤Ñtÿ^û¥+øÕ:êë^¿úÅ.Æœö—ì¾s'€Wé¼Úp7ÚInøÕB»Ð.q÷ÚdSD[xŸ=ï¿HM”x Š>‚ä7 õÐ×ÙÀ”YÀ­,HH¸îhÏ2´r)=åÇÛn~yÆ]µ ®½ÛŠR~²Eî.÷'ðª;±—]‘k ~Õ€¾ö^±¾ûĤ6R—À ÓWc-Q_&P/}™Y®E}ùÐóÐèHž¬Qér TGŒ‰XZC]™«ˆ†Ü®‡?8E­¼p³\©FÉÏPL`^`,$}¨ä9è•Ä~’ÁÖ**„¢‡aƒj³9÷Ç©:ö.ì)]ý¬8y%iôJøN4êNW®’¬Ø– žVÊN¥LõÓÑçL Å¢dñ«ýÁPô©¶ò¯H)'h)âEÕV¬JUî$žo¼rº ÅÙXåHého:®úŠ95è)1¨H>AãKñê}Ts°dèk¢â•¬ ׊ijaÚ¦XmK¨Þ›­Ø-z 6y?z+ׯÑöSÜkD%ü+ÆSÚ9•þ¦ïéKåŠ_àûÕ”ÅÂ(o¢~ܘû°p°Îð¦š`.T–9ŒïÉõyTÊOGIl°%´æcpáÆÃè/çþh¯Ì;7@·÷©¤{P¶iÊmq5‚V˜–&ÑìW,zž:ðbó;ÚCaæ{‰š°xÔïQko1›DÜÿÝèMó±°Ø»ø3ÝkÀ2Äñô&HKlü=̹ÓÁDR0/îÓèË ô}£&ð‹Ñó,N²Lð·˜Ð»°±èsoXÒ·&ÌläzÀº>„Ù‚ö´ƒföÁ•{1öu µ/Ó§À«†ÍOÁDç™^ ûª„îM¨vW¯eP§¬¢3XZ¶ù/ãîù47ðüÁ{ì«@œúœíòÝf*$²×ÎÕxûXÂëº8%v€µ¬t…&Œ>¢Ï } 0ÿ Ûi­«io¿ˆÙ-:ëÉB/羿Zë×…ÚØàÕ8{†þâ#ö¨¼Ê1'ø“à{Áe¯î¢æK¯0ð‰é5¾X/ƒR»Bƒ÷€›fgëÚçtô¼ú?’éi߉ö¶ŸÂSm¡ãý]ökàÕXx•{ÎÞï®Ø™àTïüèîq÷R^ﺕv¶ÛÁwñ\;Þ.s;l(Xö>fß¿ZljƒjFBâcPCЯ Æ3ܳQä9í9ÖÛüª.fÊS~¨ ãfø|ü*Þ5¿jKÿÚl·Õýme}ðnû»Kw=Ý<ÜsÅ{Çþl_1ñ¯khDà¸¢ì¿ $Ç'ÏÂ\Ðe7ÂXFb$úÓïð|£sê£}ƒÕK+Dk$Ê%|a3ÝdNÂ^4’tS\Øv°'¨ ÌQ«€zñXôDì:ã¹RìÊÂLû+¬%U#úó1+f躛ÄÑ“QF´2"ñV$"‰ûãñS:/ø"^V‚®'& uµ©:nŸHT‰÷%ʵœÆ÷Û*.E+¦D(*…©˜¨¼&Eq$ ¥ÄjŒª6ð¬®2° úyYêÓI4¨zUOð$ ÚÞJË´¸³#JJÀ;Y߬ƒdÕÁâÞºø”‚wµjð*DkŠÓ:b4¾Ýè¾Úœ„OiUÑ.Y™¬OþÚ/ø³€~Âëõa/ÀNvÃ[„=F£9G±àdwø€-0Ó SlCsù üAéS?ÌŸs{•BŒÛ%”Ÿ„ršÑÃ<>…p¾›Àà7ÁcˆT~•ar_7ö€]¥™‡HúªÇKÍߺºg¾AÖq Þ_¤o•ßi‘7ÜëÁ"å9üªíEÂWÒ¬õZ°6ü ðYVÝêÃú÷Wß ¦ –ð5äó\ªÍ`4ƒ¹tõz̦CüuÀ•NèÉ›¦‰9ƒëÉãGðôŒYsh¦D¡7AÚÙèÝó¨o=ô®\ô:À†­ºÁ®&ÁŠºèšívhy#´¥+ì¹¶ÆÛëÇZxÛf؇ì[@ó¶œäÒÜ ð«t¿gž¤ÁÞR´ø}Œu?Ì íОú¯1º>ØM׿Ó~åÀ&àz'|s÷ÖÁ«.0ºÚözÙõ—Ò”ÀŸ~o{_£ß܆¹Îvº}–®ðI{{×ðóÌa>d/¹2Wo§áæ‚—xÅH­K€W­xêˆÚvA‚ù‹ñm Û.E+o ‰Òôlv=‡¯NÃÆdÕk¦¿Ç^ôwúInãž±÷º¯íRH–àw~æžuû(ƒ7¹Ñn üÁ»€WíLøƒ{m¤ÉQðÿiø~ù»‰g˜þè[/ S F¢±âÕuÐÏÃ:еaÐí» ©y¸1÷ÃìлÎðÄ®Ø(ðÆ[!Ë«ð…op?Ùæ¯;íÏ@çAí¡/½×íUû–‘•´åÔ=ðˆ ëWíI,>}40¹sQsôKb\C€´#uMrbÚBÂ&ꯚaä%r´žV›G“ ©IhÛý`”M•;=Fx=á†áÙêÁS1Ÿ„èªÔô5^}É<ŒÛ?ZJ4´l<´8]±FòR”ÄÔp¦ZêeB“ tµ0ÿgâ'Nó¢Pv žªŽÐ÷Ž)ºÊ(÷¦ª·'e6¦ µF±0éQDM ú>^WÕ$Þ-åY<Äó!ʯ’ £5­χ׬óeCR±[‹ÂEiÎC¤ú$qн¡b1ú™¬~e¤"F57îX¨¨)8s#{P=áTð!‰vµ¡xþ3”Äð¯Óý‹ÞÔˆÝ<±†”Ûì…?Ø„;³Ì•4œÁr…ƒµ§¼™;+&÷¥2~` !ÍæÐá*pš¸2 ˆðzÕ%UMGOÛb\« ƒM¡‹PW{ þyÜŸ++L«~»Á/¶´±¡n¼lŸ¡¯ù¨­t‡‚çü†æ8/ 6±—š €W•æªwÑûÀt*L§[¹/¤@B÷‚Ce1ûië´±)³Ä۫вýÛÁÀ«ýКBXÍHýþàÈ 'üÁ£à:³Á¯~r½Ý÷’Ûž¯pÜj;Ìíá-<Ç.°SÜ6ÞÐÞkŸ^­¶ô¢<Ì G_Fà•)Ù§h14¬¤R‚q™6N·ÁØ•³Žû±Öq ëiwÕF»V ¾¿Úí~µ­¡yûì®¾à–£_y/Úì#ö¹üê„é]m™ŽÕøU6꜆ž.ÅxÔ‡F¯Åüd«¬GBk£…ɯf*ÏYOËÌ#1ºò6œ6º®®žÆž¤²À¨ÀlÉäbf¯x% Ôïë=ˆQ=¦^ ì¹–ÛiÜl¥bÍSF2]OóêcþBÁ Ísô,=¦>éÛáAoŒ°Ç«´Ðëéõg‘éM|ÌôñâYúø…u$!ÙÙïcÎŒúÓ0î÷¼h“vô¸0AÌõ¡éö3Œ‹`Û+©>ßá/‚>VQ 7óbÍv_ý,ؼʼú¢ß5–•‹²ÎГ@²z@¾/èvÇ¿½šÀ¶g€ ÉÝ’·õoª$ÀüÅW1b›iIà=›c÷Û—Q^.§‚<~ÕžúÙ;ÀæzybGЦްE‰_Õ…eÊÚcØÆ´_ðJò¯cTÇ©ú4[²¯z¢Þ^•B/SQ×e¨½Ö¯Rfÿ»šjŸ Ïùi»Ùõ >áׇ?¸-°aÁõáK4W<°0è>ºƒû€—Â& M; Ù@„ø$y¸’2Z+þàôe8ž8 NØ Ú;Ùßd¿õ·øÃ0ktvO‚_]´s)™ÿ€vɽîÄü¶ÌwëìwßÉ Á¯f»{àæÑfð«wW’OÕÞáXÍo Y«ë5Þ^¤î)E+dnÚ,m¹°øÕ1?ÊÖ^õ¦Ý%îš»›a¯Ûw«ûÍ6Æ}÷Ù0G p+`í_y¯ÚßíëFÐbõ œ6ýÔλBS#Xf€L`rS°ÊÖˆäV-W~%Ù›b™-ÑkYÙ+ÆÜRŸæjh­5ÆAZµ`·¸þ®´0²‰ ô ŒPëÏ£îÖŽÂøkè¸<±” ¤’ü­¯1Í„NIë=àÔÙ—U®÷¨ü* (Ìåö)3ž%óqZ¼ÅŸ ÜêM?SkàÕ hkcøe'€×[ YhsGŒü­ºÃ§/Zöl¥ ¾y þÚ$þzÚú; º—¥x’EÛPK>JéÞQ`~å+xr;-¼o“ì1øƒá!¥»<÷øUwZk÷šÇзk<+^M×hz+ÝsÒ}ê ùŸ¦_€Sâµ AïÆ+^'A•Vh˃èsgÅ+‰çдÀàÕ?£XëogØgé?@„¡Á,àU¡9ÉwgÛ`°Ä•ó}ÔÞ|¼zÛHžê\àUgtè‡íAϯ®ú– …°ß­ÀŒd´ªµÆÛ¯$Þ.ùíüÛì/þþ$ LåW_Úé”Àµ‚ƒÜE÷¼ÛIÙÀ«ÑîZ;Áíæ¼Ä.µóÜaŠà[±¯ùç€A W÷ðð«<ô«´ü&ô² Æwä±DsrG u{0#µ€þ6A»Žû‰öOŒV%ußÃnê®|`KÜ-î'+ž'íÀ«^n5XÔWÞ[àW猬­­¥A‡MwôH²& …tl&ppÆÛ%65ú1J-¿m¨ÀÈÈ<.ÿõ0WI|ãzZnÎÆÖämw]SE sTh˜«1ñ|ªâèG¤F»GËZ¼"Dúñ,4 ï `/Oh†UDM.e¸¢J¢®†©}e+ræ¨ f¢ÔheH’3ÐPó¬"5þÓA³Ñc55C¹Q„úa’#®þe’î·‰×ÂÕ« Sï-Xƒ±= ¢®påu©Š@â}I\½NÍ* °`JDMŽBS<)»ˆœò«$”äô~Ùõ‘ ±¯ˆšX]ˆ"}’¶Xð¹=ízHåY¶ÛV1* Zéñ›° ÁÃéxÿ,Er«.ÃRÖÀ3_ìVð«1<ž…Cö¢=ðç(>·W?ÃmцHH¼€O¯Âuíopg´²¼6t7/æa$ñð-ºCæq]³èBEð¸«ïºÍ44±À+—wh8Ï5ßë…™sô<=Í‚àïR–7–É»ý™x½¼®,c8Ÿ5ƒ¼ïÕýšŽPs–øX9Úððcô¥@÷¹= +î àÁ’ù8,®.Åp+{ÆŒàèÍM`IûýÅÐÙô/•xŠWEô=î& Ÿ¬DFiÁ²1oôO|½iÒÿƒž3]‡OÍ1£ÇXVáÙ4wa¶¸Þ q+€R»y;/¶×H&–5YðØwü—€=â½Ý̃ìŽò“€‹2‹Ô—ªžÖžL‚Ü4nÏu¡ÃgüûÆ¡#üÁomŠ+Ð|Ñwm¾»þaK`×û‹+ríÝb”/üê_àUœFI†ŽƒYÆi <]®§;dÆ Æ5(± z»Ÿ,Õ˜q]àc%ZUß>-˜­»ýd?Î#ñêÇ ®Ò5V¯è …ŠSÔÇ‚†ò$”(6X ùnPÖ Ëþœ¬ÈQO?«Ùèa:g(º%«/£ñðX!åhL;¡&¾¯m¨ÞU˜ v k“܆&¥©7Z½§\w0:eo©ÊÌâkâu}0]=¿h]ՋІQoS<”Ø~¤âU-Å¢(ÅÉpÝ?˜¨ûõb€ñ‘[‹ÔõÄh]—´ø ëH¨‰ÕGjf|ˆÖ!Þdu¬¾í^íÕïê@®-¨»z¢ÍoAç%l:XÌ%úTsñ?†mÒõÁ°í<š²pÐÞàT ¡I’ÍÚŽæ€Sõ®É M৸—æëŽå¾‡òeݤ>íåµåí(hvë¾Â: v•gî71¸ç¿Ô—ÂVjáž^É<òUõ¾:‹þN+½¡^¼ ðj°×”%óìuz˜ðx·Úû-G“dƒn§ã˜õÆB‹oÃ]%|F3à“À¯N˜,»6)ÏúsñLªÇu¼Af%—m=¾ýß KfèHHj»zß½ }Ÿ‚•CNÐu4’ÿEïZà5ÒÍÅ÷â«Ü¥Ù¢M0×ßAùæð«Bx—Ó—lŠ}DýÁÅ«ÏÌèÔa»Úì¥EÞ´î=?¡oá[HŽÓØ!<NÑ|†©`W¥,Ü­7MæN˜åEÎhŸG’~ö¿«¥G@g¿„&‹ ›Ðý<¼K¤¾sïXX’´®Š¢Í\©ìp¯ ˜xsÔˆÌÎS;^l<,3¡ÿ]ô\ˆÏ(Ï›FuŒûeØô¯K½ãù¬éï屬?~‡þUòNôy4Ðè+p¥ °!‰{Küê:´QN)x‰Òù4Æ©“m6ƒ¸\ók¾¥›ý…ð3:R*‡z=Í:n„ø Xpl=£Ó =ëB×£<Ù»÷0e9ô®…æ·÷æP¶ìÝ› ›ÉM—èîêr]ï g±˜?øOåWKŸÚL»ß¾ },â|—ê1óQò3vüÁñÞR´ç#<7^W;H°µâ®Ä¯†â‰“àW³ÑJ‰@ÔhU:wõuGß>ÔÕ ¨‘ ½œøÈoc7ùâ»5¶‰®“nŸ£?øë·ºgýsœ? öµuƒµ]1ï¦Aæ ï7ïkÓ8 £ cZª;·r5Ó¸/z5¨Q€@-ÝQ÷.p‹AÀ«Sd}ØÍ2ÿ˜ýÍ¿üj5vÏÙ#.ÌÍ›ä`s÷ž;èvR-¾Ñv ìtw7üÁIàW3Ýnrh#?l_ôÏÐÍ>ÛÌ}Ì0èÕTÔ›ÔvU\¶;ô³L½µ~ð÷Aö‹`¹ è1?ÎF³¬É>便Êu7á»/m®»Mñª²Ÿ¹2°AÖß½·mÀ7ræÆµ40€ÙV©Ž ®§;‚gâ¾k1ÎÅKï½§üª®w Aš^É4…v˪üu´È< ¼’(õÚîª\‘Z딘X¬¸QŸúóHUü‘4Ôµ–’t]NâªWÔþC!í‰ÐÖ4ÅÝG®Q¢PÍ(¯öŸ$U¢^_˜f/$©g¡{±ÒÕO“•®~êF«·V¨yZQê‡5B;bÔ£Ô³ŒT¦©'È„iLÆiþU’²¥$=Ÿ!LýÁdØ@æÿ“ó¯õDi<*3B5¶ÅiþU†ò¨ hKŒú†AÜ]ªüÊSìŠÑ•ÅÍȈ×30¹gÀSX…Ÿx]'Üé¥ù )Œ¿ÒX–ìǹûüX÷~ºƒ‰VßLU\ ÄŠÓ|†Üsšø_½i:Ä'‰½O{…Ûë<Ò vüø•äs  <•Çj o-,y:=­hÛh´˜'(‹] ´ 7hþÕYøƒ˜ŸuŸ™·èmg™OÞ¢4o|*‘Êw´Àëè ÐýŒùÓÓûEñýx#ùdÙ Üï<,eŠFËt%<Œà5*ãcªäV¥Ø§Í0nŠ^­£Ÿi¹3úÚ†êð_¦¾YÙ¾¯±%¿Ã^zág'ƯXÏzzV“mù Z\ÉWHòÿ:¢‡ã Y=t?ÎfÝÓ ’Úƒ¶ ~•/¹oÌöv›}óF.'¯^1×ÀBÎÛáæMêãM‚í¼‰‘Šè„™EV½FÃv›bœF '_cüºëII“q½+Ê߇–Éœ•ƒw t}ðpN<Ò)ÏýNvžŸKo¼êhGÙè/0˜ûÀsž…?x”ïz¥º>HÍ/ð¿?Ø¥ß΃áËêîêmzªÎ àC•žœ’­ñ«Ùz>CCÔ; mÙ‹ùåØnMö7Úïýþ0¢*÷’=äþ€?˜Á¿¸Vî]wÑí§^á:»À«½|7O±‹ì"·Ëþ ŒØÁGìÇþà);y¨™}Ÿ 6š –,³H©2ÏYº¾%Üó(8pkà[}|:à{6†› U'჆¸ºîzŒã%›í6¸«¶ ´à½ ¼jä$NH×-»'Mú³’ª÷šJµGOÓáJ¤Eru—£ÞÍoLW1kˆÔ¯Ž4@}™Œ{H#J÷q\oÎ&)G[ÜHW¬þÝ3dítŸNŒðrž}‰V_i |Èt}/1ðu.LO¡xZq$Bý­j-[}¾,õ‚B5ÿ*¿&k)N÷ÜÄè ^œîÄ«Î3•õÁÚš?SwÊRV­¾Gu¤)Mó)bjxVu¶hˆ¶"wGè]iø\¦cA U¦¢aõž¥…«wX[ñÊitª¹fìÕc,Ðü°Z5ù ¹zSÅjÌ?Dó0²5k, y½¨fWár]i&Öœ"Á¯zÕì©aþV[“ϰ•òXÎCØI}¹añ,;ÓpŒbwÅê^t ¿’~u×ýÎít¼*QþeØh¬Fún^õÑ–Üt ¸Ž´® 噹ú ®í¦Ÿ‰2ñžÏS+¾Ùü­ë£>ðêzL϶úB¼”mâu¯Ð,¯Ÿ×—EOV‚_ öR4_KòE»óí¸»©æ_ÍÂü4Vwï¡û`o¡·@Å|ˆPÂ9xÕ‹¡‹K ýuÐùÞÔ0éh]æºË°ü›5]òÛe¿Íuš5×?D?›ã›ÁÊ:¯vÀfz*ç)“ylt©.fæJ9)Ñ\àO4shdà›dï´¯A×Ë9ÁeÁ™';Ãí$óõð&@›ß„ö¾w‘|0àÞ”-üj& žªçÕÈ~œa°˜Ö@ÌQè‘ÌZ²g ¼ùgpw6ttzà[¿§]£xÕT÷㌀úŸ¶7»Èà3~)¼ò»ƒmT°ÌÕ绀W{zMOØèlºƒ›óxÝ}”v?Þ ‹¬yä…ÐÝíšßÞRØGÓpývð+a^±4Æßa¿ó·‚_­¢Öð÷»_í"à• 6q¯¸oÝQŠã nˆ›i»{y7ϵ£í4÷ u¦„ná'ì[þÓ¨©3^yŒ7]Oü¸ÖPŽ~ÎE›æ ŠúC¯ïjÏ×õÁüBÂoÆýlã\¥ÛˆøÊf¹uîo](gÓsʩكS(ÙD5çÉDQõ9[a›KѶž„õœV9Ô볜‚ÁOâ óÒû%`º—1W ÿyv²3Œø—÷_M㉺§ô§54¶z?Î>Ê=4Ó¢¥ðÓÜU9Õ"hÍûШXmæÀ+Ù;°5L„F‹ïÖ|ã÷×ü´»Miî3"•w©7^ɾóøzv±°Ó+TÇ[AéFrÃ~£ ^•×UÏÅêÆ™Þ^¬Þó8úXÁ‡ ëÎð`@/Ç5‹ô¼¾@Ë*ØÙ.x˜õ€Wâ¥ÅpC{x%»/ƒé¼îÏ“‘Eͼ¦f57.øXê-o&$&'ŒnSO Ró¯¦kVÎçùà¿Õã¬Àµ AЄ4=O¦2nKÎ^Éy}›hhà ›¼z֞Ƶ]¼{Æ,¦°s¾îrXÁ'še:ÖUQ_ LhŽZãõ4FhÊ”3¶&–ºà›×p½P1u?Þu%Y§h¥q‡ªÀW~G»Ü/…'\iÿ´ãíðºoxíå¦ÏúåæÏæÙŸÀ8JùIê ðªwÅtC­K€Wƒx(zÐú³ ^µ ÃbÔ xQŒVn‚ŒÓð¹¤"'³¢Gà6Âhó7Ø?€Wcd»{Âq_Û…”Í?¹Qîe÷š;@Q¼ÒMrëÁªöð.^eçÚqàW!¦f¸Ýö=ÿ9hQÈ|w7Ô# Ô3õc,Ê5¶µãSütÞƒ6HÎý2:ë—Á,ÅsßÙX×xÕ‰¾±IàWÿÀlAÙo\=àÕl”qÉûÀ^µ§äWÊùWgà¦è Öc®EàZIèkc=Õ«6v=ZñÆM؈d̶ԳÄôä­2šªþ­´Ò<˜§Ìa4]ï:95;輊Ò%»¯ ÔJSQæóDhÎÒpEÖ³1¾éªaˆÆˆÒ”…„kl¨:ƒÜ)ö”è¬/ññdef‰êY)ËÖ8WGÝ H 1Îd„IÎg#EÃ0åmQ51òPÍ—ýŸóÃ5¿+Jq,\÷fWï”2²u…òö,‡iÜ;T#ÃQº:A3Öj«W™ªíµköàäë:A˜fXDjjé]ñºçH¤ÐƒÆx×rS4ó±gM¾h430GêZ¦ð7üAiå;°†¹˜ý…½‚û(ÏéN‹¹-æAÐö4—Ô|‰Ã§ðî¦}îýóS’Jÿ.¾þ Ì »1òÃ#RW 5'¹‹Öu«I5‰àWÒòשø(Ëɯ^^I\ýc*ðVêú`-Ìoc½ö^gö:›šf^™® ¼k-çèu+àäóб‘s.Çì¶%;Tn„%òxWSfšÑÜw¯ \~Ê¿דR¹žW߬dÙ óf'¬$KÏ=è =Þ¦1©^`W Ÿyx]Á÷Ýø7ÔÓòœ”©»ÅW¹V]¢»ýá›ó=ž\Oã¼߾§x•í’Ýsf0ö€}†_¡Þ"Üõ!žêùºZÝVrPr èïx´ÿ*±'t¡ÐJòLë‚KJDº®îwîÿ¬°¾žÐ48ð?Ü®÷ 5·ÖͳSì[dÍýv‘ë|Ë/6ûù†`Ð^ãÈæýÔÛüêý¼’üö•´³T´¦'ú¼ˆŸû›ŽVç‚áÕƒþÝ„ ¿jD «;†9c¾Úõbÿ&û…¿Í¹Wºgí>÷)üÁl¾àÆj>à Hy‹æÖرn?üÁUö;ÁÝgCMmº“÷Ù5ÞÞX´ƒ»™q°÷Á~mD»d=^ØÌ,=ãië0t«)j–u“çý›ÀrŽÔ î[ﺯZÒO6ÒÝèþ´5Þ~É»n!$ú½wÁþk7â߬¢î“¦+Ê”ó¯FÀc(×uøÙËò—Pÿ hð{z>Cd"{tFkLZr;è~œ´qŽy,0L=¼1´ÙõwešgyœFk¾¨Ãý}Yüþp݋׺š¨Yà’‹ó®ÍÒ=ÖUôIÖP#ÔuêªÄlóô^öÁŽ \ògÙÕ¾pÌ ê–ØEöeúž^M ¾í—¯¶sì?®Ì5åÇh¹â}î]5=€}óh;áÚ·ïÂÿ‹!Ó^èÙR]iZ tÎ@ Àl‡àu ­“˜q4Ñ¿ÎþàßçÏfwrçíQwx•Æ—QŸºÇÜ1Šãux?CÏg¸ƒYÉtÐMÝćìûº§ôe3W™1áInB+ØÊrÌŠKÑF9kmØóAHi6,w!½ê'Ù(–3ÏÂÍpÝLèòw@®ܯ¶¥œ¦§©vpSPêoÀ«?ì³F²•ÖRïÀ)ÓWç2É¿Jgù{™ÀÁÆàU!ßhàaó@õó1ÞÝ4Ÿ!FñªwÊ:Ú&ð«c©jwÃiS¥= <옩í2jÇ“¯"5ÿj¥Æ¸eWbgúYw'+¿º ;ÓÂÕ-RˬƚDÍKT8CÿR@Œ¶(¡æt¬pݯeDéüªÙŸrþŒìx)Ôxu´J2²†_UÇÛ£•'%êÝÑÊ>ªÏ…ˆRöã4~U½(]ë *3Š×'«ý»|hÃÿÄü›ëŸZ ’=@{w™ËÒs´ªùUˆú”N×7s4, :õ8k›æ€eÀ–Ã5½d\Ä•ÜWÙØBXó%zC3;.¡/Cá]ÉzÁ²÷Y°¥;,Ø7ý•˵§öü€îiŒ€•þI×p…Ö5vú(扶¤“ÜW÷;ÇŠ¥Â§Ø£ya(Ñܤ¼.x•gRÌ&®üj2ÿdþRD¯e.Á";(z úâ 6òÞÀC˜æ]£ù`3y¦éì}©; >Ê~ÙI²Ë»OÞFÖÙëé VObÆŒKø„*a—ræU ´·šàrMa›œïÏTQ_ãýE[9ÚjxêGècØéR=S:vۛ(;lKé9`Ø&¾z.»ÚÆà{É¥ÏV†P¢Li/µ6™æs”s' |jóí=öÉ1äú®¥ûÒ\?eq,ó¦c x¼æ·ÅÓraJï Ù¾¬w¢¬¤Oà¿þ`»ÁoˆY¿£­åÆÚ…ö]ú¶+]Xð¿ÀìåÍÁÚ¶~°ÐÕáã´ÀPàÏ÷*a‹“é®Ðý8°Q ÕÍвi@¨hßP´&3š¬gô‡=߯¹#bF”S 3©µ¿ÙþêßåOU>÷²½Ëýhç_}ᦺÜY÷æÉ›à«-° ݽ¼çÛ ¶Ÿ»Ó“Cñ]öuÿep™ HîiÆCæ€KÙ@§ Xy>˜m;àY}jˆ1é,ùíóu§åsþ~7¿8â¾·á®…»sÐ/6èֻ߬D¦î³W5_t¬#ˆ± wÞ$ƒ=,W~U¡+Êr~{&7Ö,:‘ý…ºÐÉ™ýoèi ®—¢þfºGÎ7[srðj¦y 0KcL£i£ëéiöÓjV³>X Û‘“,ÂÔ–`FÊ×Ȳïè=+!Q#ýïé>špÍ&ÈÕ¨JõùÕQñ ʑӛã4— QQ-^ËCIåÊÍÄÂ$ï#C=±tÍÊËTF•¦]'RýÙØš|«Hª>&±f=2BχˆVܪÎg òuÕ0[×…}Äiû‚5\«JÑ'\WšÖD¼’Õ­>ËK¢h’ou ±:j©?I£“õ„žtsÓž¼Ú ©÷ÓÖ5¦ ü uW¿{ÕãþVQü=ܱÞ•`é^ÚÆ]y, òvÒ5­9¯¯+Fî.ð«PÅ®L~;)/ì k½ª«9ɰ¥C¼Š{jtï& Ñpè´È»’þËÝp]°}—i`’ÌFæŒÏ1/6ut?`„ù Èw–…YþL¾÷_JÖó¯.Q©7Æ›À’“»—šqÞïû^×`>…´…ö:e4ìª}<~sPwï„?Õšå”ÙÂíÃfKì}%Åòq:¾ïOží|=ËŠÐ`{áKKž]/Xj/`_&¬¤7ðÿ3`€ð§àIŒ‡äÄ¿h 䛪±¥êýƒ(£Zs”ÊM”ùåÜDÛŸÙ{Ôžƒž6ã<—âö›I¨÷û'üÁ~Þ$<ó®þ]®9º"YO^þ–˜Øà0§ï4Æ ,Â÷Sõ<ä4CJ¢§{ñ¹ pû žJÅkFà²?Á®ñåLÆð‰¶ƒÇ¼B¿òiû»«>ë§™ã|0x ÜÀåò=4Ø|íß9Qt9¸í@_p¼®YÜ®™Æ+Ð÷özîEpzz8~P÷2ƒ´æhŒz¾¿Ï~ïïôa¯Ôýn9rK$SÄÍq?»‡Ý)àÕ7Ëmµ£ÝnÞÁ³í\» þ`¸É«{Â~êËj†d%lâYfŠFúGëùíåz’Ë: ù<=«gŠæ}Ý£ñ695ù°ïÛl® M•¿7îÚºÕ•Ë`Z×£ Ðö#Ö 6p£ÝÌÉ¿yoÚhwÒþ¬¢þ—ŒüµŒöú(Jâ2àQ¤Ý¬±þuˆõ@Ä¿ñ0ŒrèY…îe‹A;È~e+À¯ž LÐXîZ帕y’ ·f«—UŸe–²‰P5,Ñ=Ë ê}^PïOü¿¡rì.ü&S­4ZWïâkü¸|ÝU“£øT=I!EíW2èãÔ¯¶4@ãZ¡MŠ©‰_Eë~™:ÊŠÂ%•ÉEèêAõ§ZêAfj­áÏJÖ•¿ žó ÞkPs²”VŸÏ kMÕë}‘hY¢æ·Gi,-\÷…éÉaúl-ý” 5Uû‰¹ûŠ„\_{:¬2ÉÀL9Ú.~qS‰QqõßóZB!˜ß¿S¾1^ 曌’vQnÁCÕ/ëFÐs¬‡6£9¼“{SõÙÈÍø4wUÉ«ùüJr7šÒ£¼~¢¬°î/¶ÞU¨ÆÓf27Wt@ñê!#³ÇðäÍ&eÏR¸ùû6 6þMeÞŸTbÄO ðÝ#ýÀ¯™>žœÛA¯¯ú‚ñ…á+Á¯–B—Stž¹Œò!HßH/PwÞ1ȃŔÚÓhEkhÏjðÊ[ýE°¸Ô”ï0ò" „…UÒUFÉnïDË#Ñúe×k¶Þ'À°¾ü'ÞKFÎGpŽùÀ´ÁälŠ5ÊÛ@cÝÛ¨÷ç=¿½=ð¤#ظœÇßLd æ—§|~¾“0ǨéKŒ]¢æeáõ† Õ Œ÷íêw…ÍÌÖóHåüö¿8Òì7Âe_Ä8Þjé9ÌóÇðo¶j^èÔËâRÍyøœÖx#¼áú÷[Wòsf¸WÊ¥“üöÁàñ:ó=«§›/UDÙ Þ±ö‹òÎ*¿’…ãrûˆ™Âu …•tžFù³ô4¥\~Ád˜XN”J^í¦[å|5Í”ìÊßKý_<]˜UEÒíêûn÷crb˜a˜LrÎaÈ9çœ3HÎIÀêª(bT@AAE1»®9€ˆ1av»þ§Î{û|èðæ¾{ûv8}ªºêÔ ì–Ÿ ›àNç€hóä7³ k¨óv*fÚ Æ‹^|jÀ8Ï{À¯~Ã^P{ŬÈË.Ùmwo`>æIU_ɳóк›Ý|û¸i¨îå‡àjƒÍ¢OSôÚDê™ Åÿï1©ë^-Hôh•0ˆç Åhk/|ïœ9 nRŒwìù ìæ–‡õÕ¢q߉þöeŸ«]çO„ÕíQYä.ùàÕàÕGü,£VìµÒsCõþöR_t"Þ¦65Ÿ‹YoBýí-Ѫ@”{‹Ð²|3"\ç¾ o g :úÝþ·6÷%ßÓ?ïoô`߯óãýZð«{e'øÕn–¿xUÕl—{Ü›á?±‡tÅû_+C`æ½&£G¯ÃÛÖÈnày f~nÄ ßmn£ž„æ>þV”øîvo\äU—ì¬+ôküW® ¾w—{××òå~ Þç[ê!³ºþ®3#ÚîôöTU QDõíwb‹VšYjžÂüJ ˜C?’z¨râg†zš—CŸO9@¥xüU±¥óûx~ׇ ,ÈRÂXÒ$Ú”­•ÉÔ´É nåÑÞј)µWb˜•¯Õ•Áè…|^ŸÀ8ÐJü$‘ÞÿX}m“¢x¯I£2v̇ŸKt+¢O>ƒúíñ˜« «ç•Hfó•ebNíî?`bU`WbVwçU`Óý?+\j>0?Ýõ-Ïcå].¥o²Íô‘†R—ñMw°¨9ôÿw5ä˜ à¹Ã`ð´ó°+Í7›¯˜“…‘[çPÍ?k52t³›d_7­ƒ©˜Çg0êCX…»VÅ ¬ ¿êÉüËÏ©Q»¼ÆÃö•ϢÿU¯L°#Æåu r ÖOù8èÀ¼ÁÔq™~,ðê ó‘vOùþ™0ß>&WE;»À8*ËÓΞ R"­>u•¹EaŒŠU§ öà.«ï˜¯Ë£¶ž'¢f1ßY:œ/¶a]Æ3¤ÑìÊV%Uå³RELÿ*‹úíiñÜÃØi¦‹{Þj0+ sêÆúvrªØƒYÏ+ ;£—oiƒWÀüü vÜ{|÷˜OÚ–uÞïç,mÉsº‚h$©bx'àÕQÈçuÇÞù,˜—âéôþ×ÔLNêÝ'·Ó”/Ý ´Ø›Mãý;¯¦ILWùû·üGvYå¨ÂZÛjë‰"÷ßòXQgæ%IÏ U[þÂl ºÃTž6F^´£‚dÉæçGÁøÆýµ"Þ1ìýó±¢j€Ý†uhÓ„zÈpMM¬…Ö‹Vs¿Õu°/›!ÁB|çÕïc|{;Üu#ãØ›-ǃükc­ »‡ööÁÐÿV¼º?õVŸÆZªÙ5!òìÁaspÀV.›z2ÏšOå¨;à_ó†öÙíî²£Õ|5ð«Öö‹à¿ÁwÀ+­?¸UZIgZ|гw3ƒ{ö‚ZT{ªC~U ­inö0ÖþAs¨Q†µ17¼ÓýÂz^7˜žþw‡ÿ¯[tþ «÷—Ü$Ê*?ίw³©'³Ø­t“ý~—hk›kк7×0vªí¼U†Úx­µQ‚žnÎxÑhÅ<öþôÊU{F ªÃ ÿVÍ|È좾½_9~uÿË©Ð÷¥ÏƳ§ã~ Î8þ¯…ï^eúD²]iÍ÷×ÚòÒH\ÀJ `íiª5hÅïOíÑz©ÌP®ézØ¥ZáÝuÕÞ`6ÙÇ#sÓ4x5üJ5ž0Í"Ó#—jcߟ¢gÔ<[œ¬¬DO“f¦~Á(å`ó1Ë*sEçÐc–Ëó¿,F£ÇW4uìÏA…ˆÆ_Õì“bÊÓ@ÍÜû?J/žÚ]ªst½êž±½âä0ð÷‡€rÀWÓϰ3œ œlúÙ­2…ò«ïâOùçü)“.kÀ¯æ¯vËB·üê'¶Àl‘ÇÜkáÓ°ùêáY×ÉH;Ñhü§Æ3h6'¿êŽY¦yË0&cf+r4Æ?F\™¨5­1x¥Êêç\=؃?»¦èÇûÜϾ*PD5-¾ >rÿqO0kð*Ó5rʪZN)î;ÙÔ––èÍé|l†çªÖî$“>Q;« Ÿ•Sÿ*“ž3åzh3.´'#3¨J5Ó¬ô€WÊ›z‘‰‘ ô452Ía–Ñk“o4+<æ'WÛÍJí:­ýu„“éÿ_½Tõmò©©Ü ãö`.‘'‡¸“Oåùžýb5Tá‰\«ST¤òŸ>·!#¤hý/^4«"ÑS‘©1$%îUŒÒkŸO?¹²¼ÊäQZ“ùª¸ÃxµÆ4Ê5J-ÁZ´,£ô©-P‰×'ÑÎLdLƒöK]Ú‡±žÀø>LM*=Öhä(ýW`§ëE?ù"ó£ù›ñ¢‰ææße¦šè;ÞŠ½`® %>´ßéh™X-Âer·ô51…À®.|+URþ ëVû ·9Å­$ª¼hNвÌ.&´ëùÜtìFÍl‚ÝoÕãøðê[M4Fíoùóc7ýüMŸ@¤–U+÷{³5èLâ¹á 9l‡FÔoø3£‡ÜG¯h/àâBàêXÌùúÀ«Ý°£º³ºòs¦.ø•æÖçHð«q¢Öô 0Ë—Ã`]€¼¿Øvƒh4àFíÁÍT†^ë–XˆûhŽ­*ÖhtÜGøÿlùýבüJ5ìz3®ñ:£ Ú1¾=,òßl˜ȇàW»`—ÅôE³©ÏÐÛ\îŠíSfd0 ß=‹‘éÈ|œvX+Wíðédð‡‡Ì'஽1²Ã1ª£XMë%ÌøªÜ-wbýtDËNa• Í3"„ƒÜаVc —äÃ|Ý\ƒ¹ß¿=–Ød^tˆûÅúÚrÄL²ßŸ?ÚþTGÙ!EUïâ¶ãOuôÁr¹…˜5¨'£¶oSàUôõ> 8f fÙŒðf÷{¸xµÎtñ/¹ÃþG·X+¥ùþÿº³n ðêz7Á߇Y´¼o¦ß {°Ž¹Iޏ·`j´È`s« ´£0Ób4óæjeا©À®:èƒÞÄ«¶<Xc£®H`¤õ—ÀÚxÕ®ú¶ðFÿo؃mÌ^÷5ðªŸ_‰žRÿÕßÀ«JŒ–ëÙgÕFÐŒ„¦X4‹ IkµÄÓ’+ÓY»<‹|¶9~Ó«¹F¨ è¤8³Á,·ÏEf1F`²Y'µà5{Á¯ÆD¦‘SÔ0}`Ö¢]+v,bƬj ¦žL:£•Æ1z&›š©ô.epGY®—ªìY—qãZ/§” ´rjS…*¦î×—þñ FÖò2…§vM¥•N$ÌŠÇŒ&«Òøß ´KØú ÔðÊãU.3Ճ㈔1dÏØõŽ´¸”EvÀóŠè#ªL›±”üJk¾Ö'^yžC¦©£´Ù²ÉS°V÷`üòœ!{ Æ>ê][›T9k÷Vš7ÑWÒOxãz0HyÎ=f°À äêa¶ÁBILëd&É Ò“ØÞÏäÊ›ÔgHÕ3\Üg߸x³˜Vã5;Ðúðz˜t»E:Ó¶ÃRʲ÷Yõ"¾kêÉdÛLt70ö(·D9‰ÖñÙrÌ4·Ÿ¿?Øî˜Ë«ÍÒS³šb ò«Œß4ª÷-`åÍ›ÑÇ9X½uÑ+Z³GëM¬¢ÎùŒp'øÕµásèÿå·Y`JäG?Ü¿èŸò˜LYëÇû•n®¿Sn“Unµ›æïwÉÀ«rÀý3|ŒPmâÈ;‡úW1ë7³þ`CÆD©ï»®èçîĵsYaôP˜âòE{í ÿxÕÒ_¹|ÑÕô›ÐÍ+ÜãÎÃ×üÁràÕ{N¨Us Oä„íAýàΪL{°Þ~}¹­Ð£™ø#¼E_žÖ¢*àÎáš@p­.­š+W™¥vd.ÙÉ$søUSz‘N›Ö‘ñÀ1e$uL7™Oõ;eS€q±lã\Ì @*Ó’«†Þ~+^ÛOŸ‘Ï•N4Êæ ½â^eÆŒ&Q³¥}cY´ ë1ò2‡¾îöø›Kwݸ>C"ýamÈÀR‰%dK©Ä·¬x¶LŒ=•òÓd¶£ ½ÞQ"a•x>N³¹5s&bTý¥£‰i¼k¼DÏ7Õ~¬Ê7J¤ï«•t¿•?Œ;ê¯20ïÁ¬¿ƒÖa)zG1GíÆ6&K¢Œ¡JÆêû¯I’óļ÷1ïçÂöS»x/ìÁÕ˜¹Ê!{™%Ò¼@c:ƒÝìeŽ³ê‹ª~{[rÎ)xÒ§XÑÊOËaS\)#hß¡•ÑÛ˜<{\лv£­f ìaÖK=gjÉFúÛÓ·ŸâÙGè7»`:o˜Z¬Gÿ¥ÙôF3Ÿqæ)ØŠWaÍ63çv°–ÁÓzrՌǧ­x²ñ¤­ðé}¦ºÍ¶_c4—˜5‘]»Ïý ZÊ|ç3v-zj¯»Ò3ëƒ%¬¹Ó #°PãGX7x¸u}ÌëéÀ«Ïðß~X=ýYÏ«;îù~£qü5ðœvhÛ{šu„¹Ø¶ç·áLwe¨j>m]mµ›ã^AßßçFE¿÷o…¹Ø5>Žnqø¦¾ª5Ãì§ÁŸAf0í_ nÜI4s[Õ–oê1†¢•tÞïʪ·ÐÝa®Úƒ^¹ŒUÖׇ‡`ÞNìëíŸq‡¨U$ßùAþ}ÿ†?íF¿Ü_鿝öÊz·ȵŸùƒwü>žjŠùr•ô±Ó1ß§²þàf´K5©–¢¯1‚û2ÆÕïDÿ-DO-2O„5œFNõ6Gü/.Í÷÷ª£õ½+ðׂouÂ,8ê‚h`årôè‚3®‚ÅêÊ^mzEÞ²ýðS-æ;çã.ùKõ¤/À*T ¹ ïÿž¨™µ1õ˜û¬u]æâés¸Þ7›µöéHL3y¬QÕœ6´k75"+"³É*jc×ÔÌdÆ(ô³u6kte_ì‘Ù\ÿz.û8«,gËòLjÜnK61Ýâê+”Å•ÝóX…"V»^ã6sx>¨§XÝ1rùÌÓõP%g^H—WcH#׋)2¤ó0‹>¥4ž9¦1^+ãÁrØÚ¿ªÌ÷Käo 1“Èþ’°62‘ÂXú üõ¬µZƼŘVC,V+Ê“‡ª&+¶Z,'Pn£qÉ}©‹Åþð%쟞DÙ%æ ×‹lãÌ• °ñÔÝöÐJÚ±†r³AT J½}ÍlÙ#Ýh«ö+ù÷QUžyf8Ç>¿­9)WËúònÆØŽ¦([lcêÛw¨‹•an³¡­hÚ\ò«\9¼*Ôˆû9˜ÃAæã|eR‚×L‰M¡Ýwðª‹hûçÉq;5ÈžûÁ3ä à÷DŒÐV Öb´Tm†û1îwwÔÅ|{É´§Ðsm±Ãç¸v¾h&Ë•@_Ãu`O}aÛ`©½øÓ÷<…Ï®E?¶FjÜAÞ2LâMô¨ò´€Ë$"“¨^<ÕLa,|žf5býÈ®hA±=#?Q)~%ìÁ,w»;ƒ½ºDJ|–?e—cM=íÊì3f!ìÁº°Z;ânËÐÇ]1F›€W­±º4¾ýlTõ¤ÕG{Æaïï–qT³sµBð½#Úö:F±ÖP©9öq‹ÃR0£†.ÇÏqãÝë&jtûü¶èiàÕýòp´£KŠÖöµd§iÞ lÐϛۿ‡ôǪBŸ­vãmgÂÌŠÓ£| þU{U+Ì‘‰Ìe?‚u«Šr+ îRxE8øÞοäð?€_¥É¾«?î_÷ûM(›ýX¿€õ¼vË"·ØM÷8Ëì€ìvŸ„¯a¬Ú£‡nv2VÄô~.-l¯¥Ì|jJí¨AFkp—ã³F˜ÃÂWYâ»÷ûK°õzø«ñ»s®ºßè?qšË¹Ë}àkø~fáoÁ»î÷¼UÍËU¦}äIÛ s¸z}ðª oW?µ¢Ê³j¯G_|k†òŒ«õ¯bú0x.º˜lf“™aP¯/“õ¯”ó¯N¿ë½¸gWpÅ“˜5ª(7"òC8Ò­‡=¸Õ4w?Á¦¿ý «ã7G†5í>Ù-r—|5_]d=úoƒ÷a5&møOFÿuǽ¯âk•½xbÌ•¦¸ûx¾êÈ·ÁO£/ú®P¥Ü)áf÷exg8V£À¯Nxë1ò‘/÷oú'üaS ×û~íwÉm²À w£üƒ. Lç°<æÎ†ïh< ú{‹ ³£1Ʋ–ô5Ø´2ÏJ*OëIá ÌÆCô_ÍG›VÂLr%Ò}¾Ãã<ìÏÍÀ¶/]¿à4“y¯{Ý—øq~)fçƒ×õZÍeY¼zƪ§êM4騱´jÕz¦ZТY‹^ùïªgYµ¨ë7œ> =Mm‹ù ˆ²Ö,µG#³ˆ*S`vòe´»ž1¿×GæÓºŒuKuÆ3Jé!ÊÅŒ}œ¶—ò𙨝óÉ1²x®SªJä¿Ó¸Öj`eÕ¦=«IQ‘¶]ºIûÞc‘žý0&ÅıRÆÇÇb±*3Ç4•¼+—^ ØÓÉéRLL¥/›UÆ♋•‰DQê_å1v=Æ©2ÙåcU1B©Œ}HTï8³‰R™s›×CΦ¶C*ýc1Ï\LóA-Ê*̃Ng~Ê5æ ²½ªX C0þÊþZ˜§Mì2=‡«ËËÄîW¨H­uHlŒþÒQzÓæêež“:ÔsHÆøì‘›¥­Ý^°ãþÅÚôz†»‘5ÓOÚš'åZ‰Åb݆Ù7+7‰Ül}X§:Û` V±{­öצX®¶y¢µeÿ÷°FÞŨoŒO›JVãN.™þÁˆ`¤(+ØéAhé—¸w7àU6Ƨ›yÏ›€9]ÌØìGÀÝjž7Íä1üD¥BàÕ ÑôkñܽáàU;ì«ÍƒqöTÃ7?:\Œ)¢ÒÑ`ôã6î½Ì `dëž7}‰ÏƯ¶c]·C/Na,§ž’]ÇŠI€Î›Rû³ü†¾ßj.‹œwEîàÆ(ÓDJ}?N¼:áŽ`·˜,^½ êˬ^»ºÞŒfgeTÇð<Õ,¯N…¼…Œgx;tM*ÙíÆ¸v‡< ž¥™_c#ß„SÜÚƒM\è/sSÜæc9à®ðí£…õìò@´»;çëƒ_2íÇÁOÁ{Vµ —›;eô£z޶{î?‡Ïj1wOëÁN&—lFæ±ÀÒ§0öz69¼Ò}Þ ûÓßvyç×£~ð}ü%ÿ¶ÀdÈ•þ2¿ (u¯Ü#óÜL7Ëßçþ#%˜UO¹OÃp§&èÕo…ùÞø¬1m¨9v9ÆcŽÑH”±Ø;ÂX·¦4@›€_U­´õ ÿÚ%ƒ_mÆ]¾tY~ìÁz˜¹ó@çËü*Üã§àM—è´jÛ\núDþi±_aÌzSD5ê+cN´ÂΡº[iÀ´îÀ«‘ä!50²u1ºÖУ¶€8pµYiGæ Æ™I`”-Ébž5adx—VÄAŸÊÖT–Axv-0=F«HëYLcåÇt6cuS³xe:OÔŠé'Íçia&­¬Xœ|*måtVuÈÇÜ)`mÂl¬êBj¹§¯š3S0±ñÙ¼>gžÇXŒüx }¯N#ö3 *ÊÌ™FYEy§ØscõqºñÄNEk£U'.P§”?«­ZƒÜ,¦·ü¿Zidv™<§›Ž£õ••OVÓ“z}Ihñ3`=‰š³Ì/@¬Ï‰ç0F[À™4&l+øU]™)êoëbŽ€kæs›ýò0°H=üSLUùø£}Õ ëøsj&§adŸ’ëd(ÏL¯g¼Ð^¾Moð«ç¥cKÖÛ¨Íeþ Öåi#‹l}úÍþ–3àÐß0ŽýS ^ƚϠ/ktÐ/PüL7«‰W•©Û,rŸ#ZV£÷O›]˜“y²»+øÞ8}pÒ”Ë1|ÖÚdI-wÔ®ÍÐÜ ö.X/«ñݪ’ô±WƒG¶7ã›çZˆU:Vos7õƒú÷Þ6W`•ÖÅüÕø« ¹ oÕûïTÌ ~¬ªº?•1ð ibû þu£Y9~uȽ‡µV]ªó|p)îxÈ-¶o™YÁ\¬Ã÷1&Ãp¯®øsÜ0õû5îk:ÖS>„‘è‹g¾€]¾mÑ:5£ñì×a!5e]É‘¯ÂiîÚ°¹=8ƷĽc.È^×5Z9úHXËî’3Ñ»Á¯ªƒ_4½ìÛABäsÛ5dwËXpãšô°o5÷µfÀjRßÙL c-ŒèB¼ç´`u¢ÙÝo)>É3ÀWgÃ;©h{9ìÁGü¿Ý2ìŒú^þÚEï_îç¯ÔÜ#3ЮÅ~»s¶Øì”ÃîÃðe³†“[dŒ‹·í†¹”ÏóÁ:´Ýz£š2oo ø•ê‹.döæá0Õ%bêež„ ZÑ·ö7¢·¾s…~ÿÊÕŽk}œÆ~”_‰7û1øÀ%ø‡¬ZVט~‘WaãO{3ÉT’TýÅúÎm0vØAf˜dCtCÖÇÕ½; }?wžÍõw•Y`ï‰L£Ïz†YÊz:Ÿ›v‘uàW“PÇ´—TXNf ÃuÙôi w¿áù_¬Î×3TÅK ^C^u­¦`~4Âý«KZ1ž¡™Q}†~¦®h½•"£ù¥åf™‡ÖKmƒu¡«m-ðêþÈ|rƒIf¥ïîcÑF›N‘U°•{4Â,T¬O¤M§çƒÜÓ³€€ógµÝ¦b=ä‘qhôTežV¤§;›vžæWfæW"Ï«ub+¿>¿‹æW Í¡—"“ÏMåÉb Tv!c8Š+ÔÃÊäú¬E«cZB¥Ê4Åü½31…ÔLr$µÊȯcñTè¹Oei ßÈÇ1­¦I‹k §‘“ÆN4î?-ë ›aö¡XŒê³ŒÖNaþàçäBj©.2QQûGßö}Œ%¬Ѩ›ÁyšJ§˜þ°ù‡”ƒ(',7ÛäÈÿNj֒¤¿;#v†5t20†'aaÜ T˜ ÜTßxÓݾÇúª°m7 ÖýŒ­zÝ […ñWÉ«héµÄ¢Ííç¦Äjæïf8ìÁ.R€û —½vhÍš_ƒ —ãFUºúš—±B³JZ=àÕXµZáäj0¶6ò0úO+&6ugíi‰ù¹O^ËÌ–¶’L^µÚˆœÂ]oÔ`”æ0Ø@Õ°fzã>o`EÕÀÌ»{qŠ$P—¦ì‚ųv¬´y3ÕúÊÑû÷˜2û¥ü‰û\gfEκt·×ý xU(E¾üJ3›oweöC³ ˜Iý«^XŸËRš¡x9륶G¿Ç.ý5ž1w „Päª]xžÔ+èìD°Ù±‚1W·oä“pˆ»"¬†•ÞÒYßÅ­sçÌ99äîôïùWÃÚv¿ÌŽŽs•¢U}™0½í÷ÁÁ%«¬n¡¹_:È•è«áx—[уª¹µ÷/Ãsë g¯4KÀz3oD_O€õþz²†ê‡W»/ÂÛa^gZ€_íõ?;Õûüê ÿ™üê:?Ó¯ƒx¿Ü!ËWSýn±UÍuhÝyð«ÕÌdºZzÚÞ¬V;£yz¶6ž°‘•?ê¡m³€ §0ÂѲ2ŒÈ‘0ùƒ=ÍI x¥úWMÌ—ï¯ô?9ÍoÚë>õõ|¿ £õŸà3÷£{Ȫ®ðZÓ+ò,ë;7Â;N7ùR—Ú8KpÝô~F.j%¨ÑX—Uð´ú¸Ûú|ê°ºôed3ךÙàWÓ¹Ê'˜¾ùUºÖ,ŠÌbü•ú¯`GPŸ!™ñ"ËML-=÷ýAꯃu”O^¡6`^Ü"ËàúÏŒçJk=àêD‹|ª grM1b ˆ8—‰9‘ob5!ЍäžKû(—9U9Dd"U¥x|AÙXLÁ´R<æ¡R<+JŸU3Óÿÿ|0‡Þ4EǺ@Üò0U…É`‰˜^Ÿ>=¤=X•Õ{<}_)&–É“L„«E¤Óȭð½‘ÇjX'Æ|&ãŽïbþ¥çkµ¹d¾Å¿•G½…߬¿RÖ¸¬¥³ôíïknÃ:FYk`×}ÒŸOR]šç¥;yàl<éUꋦ`O:,×ãõÞÎŒ·¯Ûöàc@ µZï±ulëfƒíµÕ6_˜Ádõ³Ÿç’`­öùfdÐ9h/ÊÙÊåað«zÔoÿïØOöâŠr̤簾Æc‡*Á¼ÚkŽ1†_½bê¯bÿT}Ñy¢+}P0ê6¡tÿL ºØkEO:~‚…³ 3°Ñ¢;FþvŒ¸æ‰<ˆ'¨*RMp¡­°K­lÅ5ZUF³ƒSwöNævêÜkjÛßäßxêåfUä<øÕÃîU3 Œ£*ðê1«'Ç\[{ÚŒ^•ßvd}gµ8ZbuŽb]ã1xŸãxÏqD©¡ÌUì+_Ç(f«1Býðí'ÑóUжّóálw]X˜Ú«wŠ[æÞ5—d‡{Åß},¬cÊäèD÷_Ûžîj? > >²=°Æ'¯úŠVRTEÑÛÀWU•xz¡xhCôæ?Œ*SõFËv¢m“€öƒ[—áºáá-Àœ[ù°™ûùî°¿gÁx†ãØ×úUþr·Ðï=¸Æ]îæû»]`ëÁ<äÞe|»Æll—¡vÏ|5ªüjÆ\©îq GMôÂL`Ú~ ©êÉhÝãàW•D=æ‡ý—.Ów`<Ã×®Ä_~Õ£±Ï]ðù°Òª½œq?bóXÏkðªkKUý&™؃u¨í¯Ê ͘¼ 8ø‹éÏHôà\ZÃVWi=à[3Œ½®¿«ÍûHdÏÁg˜e~ŠoLµ¼'L‹ÈÄÈlÆ.ÖÁ®8ê,ê—ŠvgÓï…}âfØd2†ã)F1¤ù”ĵø*Ç-®"F üÏß^̼· Ɯצ«õ¬•ÐTy=‡±™Œ1ÐL›&dt1mÏ®éØÉcL5!‹o–AÌK'b)ÆU žp6Q/V9‹qSñȬFèÕTZê¥NëVfVOÏUM§:q2ʾˆ’qV`\BßT5^Ãn¸3ŽÓ‡Ð+Ã}V„º€þ×ë—`$¾5_0îâ]<÷ S]ÔÓ¶ËôżÉóÁžàTª‚¤cÑ 3ëyÄwaJÁ¯ú-aTÿ…9žAÿüQYO–ƒÙ=;õÝlW;ÓÚ~Dý« s½­iëÛ¬ÚÞÏ-¦Ø:¢xý§\4/š‰úØ¿0?ÛWMe›E®Õ/hÎú8)fžì³C‚"ÑñûC«’Ë~Üqž~ÿš¬I1¯‚‹ï1©½¼¨ƒœ Š_–ºv¶¡76'ß ¯Á>Zn²¥m0ÍÞ¼j‚¹ó jæJG |O Á-X»¥x¯§ÌKà iÁ.š#N¶ãšrVSŸN=ÚKZŸ°+>ÐÔ·ÆþˆÙ²ÖÌ¿Êrº×Ñ¢"؃•ýýv9îü¼»QΙÞÁrjjµÁ3Và‰m±z®Fÿ¶ÀJ‚÷9„ßMÆûÕFÍÄ*€UóµìT1~G<ð«,W5S"¡n]¨ØÒÀýî–º…î}0×û£¢ÇÃZàW¢Õ±‚‹}U¹× ³ŸŸY­0± ö~_éÏŠ½%°ëvb]LÁ³û³>N}¼Ëµ°ÁЩ߾ƒÕ¯U¿]=ñyfH¸ˆõ¼¦ƒ×•û—ÝýÀ«xÛ¯ý$ÿ±Í1²ÎOðkÜ—ìyN+§Þã~“*f¯ÜëÎ…/a©ZËu2ËŽÀŠÐZ…艘žÌrê3ÔETkõ0v#íùªX÷‡Y°VÍ“þ3—ì[ù«€ú_¸,؃¿8­­ö ûÌׄ•¶Øu1x×Eü6³d“™Àzôš×U•é¥)Ï,&ÓÕžöàZ­#c™aWŸ·cžˆj¨Ïf¼¨®Ú f‘=™ÃØÊñfµì[Ò~;ašF6P'Y3”{Ëe¬>šÎÝmÑA}Þ½ÌgXÝŠZ'ô“¨Êd>Nf·4ô{V¼R}EžüŲy4ö¾ wɨ’ˆsÉ´23ÈÙ´30ƒ×ƒeTd<Ã}XƒØ·­±'H¶t2˜Ö¿aݤÐ¥s¢¦(¼ÍŒ’I2B‹z›ë¥!Öˆ²ÇžæÌ´<“œeŠåIéÁþ„uüÏP2OÇd“¨H¸V3¿“žÂÞ¦³}óAõ 7Ú›g·[mé?{aj¿‰} ­>+Ú{çͯöuS`5úä;Ó3è íÃurÂŽ 2é{ÿû{9ÄSÉv°ïª^N%‹øÍmh—ªO=gšÉÖ‰W½¾#àWÅÔÖý˼ê)y¹I•ÆÁ|»^4¦ý̲»ðÝ"0«¡ÔgЬ­—ú0ù¬ÜšhÛfðêfy'³ý¨«H+ê\ÏS%Uzöàïò9~s§™yÇå¹ýNcªIe_äß³ƒTãÝ]Lž¨Æðû\ óùÚŒ‘íX“{ðêCfÅä2£Nõ›ûÕÇß ït+k޽‰Öµa¶~ïÈWáT؃ŠWÍ]¶Ÿ ¼zËü!O»!ÑúÑWÃ2»Sn^î’¢e¾°~œ}+ø.øÝvÚ]a6ËPQO~OÜ}0¡#»J+4šyÌ⻬§Ïolö‘_Ý‹Ý@U;+™Aá5î‡pðj³éLý«‹n¥©%ßø¾þ¢ÿ§?Œ^¾Ò÷ÝLê_ÍuóÝj¿Ë؃ûä¸Ù ÀÍǹZ†Ù©¯Éà·¥¿FôÓ-štDOh]ž»ñÔyôô‚=˜Š°—9|Jð½f-üäjù °I›Ïºo}5àØ,ê3¼áBÿ„-¥šÆ¨ÈiÛ—Ñç½Ñ£™ŒâR¥@ÍMlƒÉã‰ý}q£&ƶkd½UÝf>¹ÆUfƒ}&rçùX³oÜŒ‘•˜*‘«#sM#&‹VWÒ¯–ýeôÔèÙ½ªÅƼMÕñF0’=¦ÏOž¥ÑN)q]ÍÒ:ƒ9&Ví¹š‰éMiÖs £5¢Ä¸^¦b¼†W)-Ã"«çU‡dLQ&íŠUÎ&ÃJ'ãªH?"3kx÷ ´é yr™@NU9ûày>XNWUNJâyA)ýü±úÎZ1+®Ñ—È\ÀT¾M&QS?í> ‘Éde·`tGÒæmU^‘úí‰Ø|kÞ£÷ë ä4ØxŠ!÷»Ž’Ѣ𰭭£XÚ{ß]RN^:ÒÈ£ãTS°=Wy]ksŠñ튓7aÎ[Ó}§›éh_—V´·Û6Óîµê«Ç´–õ6ƒ±¹ösÊ| jQÿb>µï™*VùíïfrÐ5è+ŠêÃä6;8(}ÏŸa4}èÇN¡Ó`ES±ëiõøƒ°êvbî7À›?ÊøzàØ…Ý;Sô y=XÒ‹áFÖ6M&Á<àXÖáÃÀ‡ëTäí‰÷?DåÜç<ì´¦è§wÌÀMÖÖ#´ÜCók°Zžæ;ën}Ø4²ËÜe‹¹<ò¡+tÀ.cJ`–ø3vz䈻;a.¦R‡¹%Ú»ß,G+6²Vk9zoÞñxUOê3Œ: Ī;Bõr¬‚»°~4þJõJ1ú£#_‡CÜ–°žÛÞúynƒ;gœ}È ‹æG_ sí=rgôfW9ZÛÈ.3Õž¾ ~µª×7õqFãm»°nâ]x§…ÌÒÓ°DñŒghÁ:ãÑÇÏÂRë¬5¾ÂëÜ…ðæpX}Gÿ|\ÿª¦|êùs°÷ƒÝnð“ý7Ë²ÚÍt üÍÎÚ\àUL_ôJ¼ƒâÕ; Oî>×úέ€õÐ3ý鯪ƒ>ÔóÁ{ðT=W]oŽ…ù.Qš¯~s©°·Õ>tù~ÿѵÀ¾sÐ}è«‚_-Âwþ¿ú˶§µ¦oä%;ïUWaבFŒÀœIßHG£U×5žA×wSôKsêŠ;ê34§~»Öw^b_b=z¿ZíGúæÄ˜ÇMBdnd.ù•ê!k½‹Xç^øfùR.žpx¡ÞóY°þsMzMйŠRâ¹3)q;+‹ÕGSÉaŠyŽX‰þ¢ºd^•ˆ$é JÌ)d¼¨z¹*Òã™BvUýZü»!PýˆûÞ7ð£üLŒûOÁkÀ«Çm5ôç&°Ñ­*·6ÃHo¤1£n— çç£wµúçå˜'ÑëiTomŒ+‡’{´DoµF«toÝh®´ÿŠ,Šûa6ùa¾Wô“&?26²ØÄêv•…x¦"E!°~­« fU=¯º\„ãNj'ñw±Z •L¬r 3c ©€PD{'—žñ úŸ«9åqýç`†ÄíÁz´ãJùÜJôAVàI]ýdÿSÌ31UÐXÔyÚl dq™´Þ*ЦT]¬ äR1…æTúÏk°ªsѨ5s„¢ôâ¿ÅD@]?M:µ”Sè‡K¦E˜`2ã‘ýI१À•g¼Sx|9v+ahc>Å:ïÁ˜„e°¿2ßkÏaN¬…m¦í»Õ ž2†zÌÑèfͳî½ïNÈ÷ŠÝèuéø¡X“oam)agýAí·mÏÁf/mãn¦¿}GZ—¯²m`ñº)“‰¶‰è‰H€Õ{Ò¼B_Ö÷ægû–©d{¿6]€W=X c‚Üoǵ©ßþØPKÑ3P­N÷O¬¯±¬™RNrÏíѹŸ·—ãèí6&GJÝI;YJЯ›€:…¨•ÙXj³íFQõùã›·Á’m€Vlè†V‰õožÅÖ`¾v#½ÊL‘PPã/3£Y?§ óâV֣טÏûMmû3ØkM=S‹œ^p/kFœä`¯Ô.Áªÿ§oß4Óƒ9˜ Z¯¶VJ+¬©†°;G0ïy$ÿ0øœ*ŠWÇZM{° ö¢A¦*µâOj$.Zt #¥Ù*£#Ÿ„ýÜð«­¦«èûº¥î)ó“u5¢õ¢'Ã<»_¾ŽN^U¿ÚozÙ7‚‹Á«QªÍ­2üYë¯nÅ3a|W=f÷¶E¿¨~û &¾³¨ór^x­û*¼%œ ¬mï_rûa›-5õå3àÕÇþÿ”I–Í~Œ_~µK¶É,·ÄÍ…=Úbs›qŸ†§ÌjjBoÂ|è‡þŸ¬ÕѪ¶¯q¡xÛO‚y½ 3jðt¹9&ºti÷ö_ßÖÏCý¼Ú ާ e{Ý'¾™â'`\~¿²þ°-çÙß ÈY<«&Þ½,¹H´Þ…g¥­Ñÿéñ•æ;j kÚ‹‰ zE{üÕµ·Þ¬±û"ÓèÉžÀúƒªDV;_qd ìD]ÛuLYLQ³j®‹+zVÂ^t>ëT ß>ŨÌ4²¬|âVbK²è·Q½›ÚTzQ«´ ý1±(­ôCÅüWÝ™Õó"³ê{3rS1!–å“ÔL&ÆlÏd>± ήÔw•K_VzîóM¬ÞD2±(5Ÿ qË©q=ä6dtQÚEüëé-«N­VO­æX]‹T¶"•QZúg˜ÂRØ-é<½o0ŒJ‚m̦2pFßw¥ùÕü ~¥6Ú+ Øý•ÓnƒÕÕ]z‹bm'3x5–ãÒ VÐ6~W3*kÊ+Ò›X=#vÞô0±:€_ !Ë»O…™¥ˆÜÖŒ²§ãõ&®¶le{ÀjäÈ{؃ï²e¢qÉ›°b爞m¾·/˜R«'À× IÐUÇ˰cñ¿™ðíG¥WŽÙ± s®ø®±C±k†ýíæ9ÓYž0ªÉà¥Äí³KD=¸Wá 7†Wc=¶bV ÆÚ[E#©܋ըlBc³Za×W6Ûüêìº5Áƒ¾À·gJãK5Êz,žÚW€uTÇÞÞÈ~°ö¢üй¹ÅŒŠ¼íòÜíîyôF™dúb¿ß.×*òn™ýØ´ æ‚'œCïŽ ê¯Æ1lÁZÕŠËcp÷£°G¦c•ÔÁ¾0™Þïú°M'aæiþà˜-€vGðåù<ìé–„µ1æÍ]ðjìÐoä€{ÐóO‡eöÙíæþöõ}©ì5cí?ƒ_ƒÏÁ2aÛ.#¥/ž4ëâvŒ\5pš À†è µŽnfÃ3ßy6¸ß!³œ¹ª‡ü[øp’V²ñÿtüNëã¼ç»ùó~»?ö²Í÷öóÁ¯ŽËÑs€•~'ìAôš<é΄'˜s3‚úí5 ïXüª)sý×¢Og£ëžxîŒÛbŒÆóL˜ãr¥!úóqÿ+º‰¿Ru6þ¯:˜ãîìÍßþßà ÷w=óqÖ¯NÚ¾DŸN›XšzZ4OqæK>ñjfÐ8£CëÃZ±*€êÃLÑú+´_n4‹ìˬ㜌6¯“+cÓƒ&/2¼Kãê˜A° É*4g9Uë’ü2£8ñw7+-'òâØ’In•NL($«ŠùÌó¨šA›% ÑWêKï‡ßqÝ©n^£W£ôºÕe R‰v…ô¦¥’é%Ç# *ãÒãy…Ø®X>NóƒbõO‹L,1ÖmSËaÖjU¨Ñ—ÂjjÙi C~Ö\ÌÈW1#‘HµJ<޾ vø…è1EJ­kÖÓô£%ÚÎü`œô¢_nXÑ€4êi{sr†©&ªî°¨Ð_Z‹Fàv^µÂŠLcÎòL0ùl§F‹Èüeõ_­ÅGNÕšú cxJy?U…ÒþîoZÚç¤=­ñm6üê^ê_}i²åà•ê¼þ.‚9,§Æé·àW§L¡Õ½ì3Ó+ètf^á@9iGÕèËúBkvÉQFƒå²œ¾ ÇD+rír´f>mêÈ)ôA¶Ð·K™u±Îüdî×ÂŽêhªKf0Ìn…¥Ûœí%`ÍTkˆ?]ôœ +Rk”~„ Ÿ£Qñ’ïl™Ë3þ¦Œ¿º–õ¿ÛÍw™lû‡|Ö¬3#²¾³Ö£¯+Õ|¡¿ÇêIà³n¶½hF“ÑþT#1bâöà£Ñ`£€§`ýÍÂL(¾ µxzcÞhôH!õyâʾæ_`a­y>8;ò]8ÀmkÁªmíÒüp7Ú}d¾•“îÉ«^ßy):À¥Gkó|pž= {ð<ðªPx³ ÇØ£ùTkh&bÅzOe=½ÀËlà¦ê·CëöÝçSÑuQx›û6Ü ~u…èŸg>ŽÖüÃwõøÝþqXãÛüeàW³Á¯6¯ô§Ýî¿RËÜ)ÿr_„ÇX»zÙ"#ìpôè?a0äFàL#y½×»}±{Î.Ç^ÜsìWcÝVØ~ZÏ+;owHc¬ÿ_Ì‹À«Øjƒ· dåÌÚ@£þ¸Ï`Oj¿l4å’"ÓÁê:b½Îgþ ª¨il©ÖKí¦û¤µöî¸ÎÌ‹|ä*º;€Wð#$ûŠ~·]ŒU÷ªeÏ™ùÖwþ߇qR_}kX±ÃY/UõDO˜3Øw[â­†·Æce5ÄŽ<šg=õÑÇ=ñîÀþš“[΂=ØÑ­¿ºÑtrÅ~Š›æÎ±¹Ó>=–Úݲ7ºö`±/‘ƒf¢}?ø)øÁöÆ÷W›ƒR_ºã®ñÛ¨L1mê\˜†õ 5Tg 'û¶Óûëk1ÖOE3:Üá~ ¯ §ësýsNk®À|ú”õq¾õ‡MÙà'øÙ°”›e:ãÛosI™¹[^rçÁ¯6âÎ#Ì2ÒjÍ‹‰èó;Á{Ö2—ã=U¡ÌP %‰¬•e’‰ 5L¬~…^Õƒ‘ViŒý,ÀOEôª§3¾=“Ø›Gª„8ƒËåêM"jÕ‰ó+µòT&ÄßJ¬–·ïªÄ-œ­±KõÛËiY&òL³„6t4Þ¶ÚŒøO01 ÏX¬4Æ‹ÆT!™ç1ÖM¬¾4vÌpÅÉvæ¿°»I—#Ÿb¥(º¾¸óKqt‡,Me¨]Ü ¦c·R0Š‹eëÑGñsøUzû‡™U°•FòùÝÌòjdeÁªÒ|—‡ã‘ìIì‚z͵¶ðê^«=w+x•­I}ã?Ñšãæ”èX|o¾°ïcÍëX\0}‚¾A{Ñ>ž"ÚáA™èþóæmyoZç»VÙ.êÉŒ`<Ãæ¡œäIx>ìÁýv…h¼Í&08ë®@_w7­¤a0ËÞ$y˜Gc–íÀ ¬‰ßô u^éÞ5Œí-¬]­Mð#Vö\I•§ÁÛQ…¹ ö­º üªfz;Øi™öGù3\½$oº4Öó¹¯zÈÛE¸ê)×Ⱦ~5žúímñ ©Xªñ¢CY—~"ðþlæÉ° 5S©NÐV³úÛµŠï>U¾À}ßÓ¨¼‘ÂAnu¨±R/:ß sd§ë꟞ëØý2':Çýå«ùZrÀt³?ï_Ú~Œ¿: }eÞ¤'c3öbÎ VªòêÉÜ€…g …w¢…ª‡ü°ª²(–†7º¯Ã멸¦¥Åíðï»E¦HÞò½À¯þéÁ¾´Ñ÷¿áï•›d¾›ï¯~•bs‡ƒ=ø °§-Þq«ô·ñf£€‡¥¸[kæI®ÃœHF9O~hªêÑõ-Z/5UZ£TŸ! \Z‡1úÆåøu°I›j–¾ûÒW÷MýtúÛŸw¹}¶”U£zG^²Ýð–Í©¥Q\ÕÓÕïÛ£žŠÑ_i.¡-éÔ!n„O‡s}ÕC;Z1' ëf½=G4Ô\îúZ´ðšÌHGàX*Wu7YB/Žú¢û²>NÏâÆbÎÅrU_ôŸ~»úÚ«™TVÂÉ æ]yK íÒJä7™D± bi6F'“'µ³ºÑ.S›²”XXdb5è5ÿ2¾°âW*ÙV2¿“Aÿz²‰U¿I&»I{å+0ò@Û³ïòé}‹Õ?-Álå¦ÓU‘ ÙÔœ)àA:õú²ÈÍhã&ð»i&VgCíÝ‘°–˜c&“™Õ70ßY9R+¬ÓDp$EëËLTþ(nh½ƒ)À =ÛÜŠ½`¡Œµt;›fÒÜô¡-ÙÑ\)·Ê0^ßÑT’£À+m[ì~ï5Gf¤yx5–o»ój ˜†ò·®f¼="mÙ#רA6Åî´ÊJßO[`K¨)ªùÎÇÌqÑ6ÿl~²o˜|›H­†~A§ 5d–ÂzTgMÕßaµwʦ¢ç6ìvê®L¼zÏUE–ÛÁ<Qƒ´1Z\Ó= ~¥ñ‡+M¦¼nÀúï­a0Æn^µ0áÝ”S­£‘ÀŒÎ¬ï¬µiŽÙµ¢yþ¿Ù¬–OîJ~5ŠL¨úþ ÌËFñ|œ û…\ÂßlúFÞu•Ü·í+–о’?cç€=<î¾—Íò`%VáGÀ¯¬ªùƒ×c¼ôÄNc23ob¤&baMiæsO|6Šõ;«šWpM7؃/0θºÉ|çëÂæ°c[»À/u‹ÝIó¹pý¶èKa¦Ý'K¢%î;_êË`K±ƒ³Á¯VWçBpãI2 wêƒ7VµÇRðîÀÚf>í î¤ùð¾ïEÏhËãÀðèóQáUîRxC¸Øl1ýËn¿ÿÜ-^}è›ûwüivÿjàÕen°ß#·Ë*7ÃÍ𷸨­ ð!÷aø’YÁz^¤»OtŒU~¥ŠÈËš“øŽspÍŒnGžÎ6ûBë3«¯9â¿wªï§`Lp©~-8žê‹îpŸãm;ùøùûà 'à·Ý±–Öadž·èÏ/ÇÌÉ•6X•ñ®-Á+UaYõU¡v,£'UG»5sÿU a>ú!1g¬ê—"Si×L3#ý`ê_%£•©‘>À+õÔ2=aÖ¥=Xƒ¹D1¿V;ÉU«™,K鿊UHÇ™W$²TäJK¡•Õ€˜DD«Ä¼é$ÖÊåÊ×U®ÕÞJÈ%Jèk*6±úµù“§e™@¼ªÈÿÆÔDÓyÉHϘU&[Èø„|Zž8SDUù$Æ‹jÔ¿Fdª×ª=cb ¤ÅŒÅŠå–b>å2Ç9ƒX ôâgÒ*=_5ÍÖ€­§QQñj ŸÜÚ|J¼Ò{.²ÿN{0Ü¡æbÆAÝnÚÈé'Y´HG‚kO ^•c•Þ(£i“v29r\KÙÜX°š3°Uñ»›Ã²™õ£ÓaW-Àœº…xÚÎtµK9Ûp•-¶výWŸ˜¦²Üæ‹VðÀ¨þiöR×ô’ùÞ¾cЬöä7¦wÐ:hI]÷¡²Ûö:R ëìï °æô´¸Fý¬â1T£¼ ÿÚ‹Þˆz2ÕÁ„ôÜ®X»ìJ©ÁÓè*À««±v1µ¥G0Ù.•öøü+j•ÜŠ«Ûc¯Ôº†×`&ÔÇϧÍûØy«ÁÒþx²X’eñjÞ¼VK!Fe~j„>iÿ+?⻛͔ÈYàÕî5Í›—<؃§èoßá^–wÍÒ`"îÿ5ž=„ªt-Õ—qîC€ GÍ댖¬œ˜ˆ1êùñi<¾½1Æj®|£]ÎHÂq‘ át·%¬¦µ/€W³ÝZ÷ªy[v£üÜè3a™Ý¼ªè~ ®)›aöBð1õ/¶Ëé…þë;Ý Ô/Äß@¼R-ßZè×™˜«ÃÑÖ€iãÑWª‡\#Ð/Üâ> o G¯žpüWn ¸ó×°ßöÏú#`õWù)hæ;ß-‹Ü2àÕÍÎÛbs«qŸ„Ï›5ÌÜ$}í8¬Õ<ÇÐz©Õ™oÝŸ:c-±‡«òü¬VûCa¶ûÿêlû¯]xÔ5—\&ãE1¾ý#Ÿç‡3ŽT"oa›ßg+óÌ¥Oä; «ª.zo²I“´ªg3ºªÞ8£?3h"­«ØIš …ºÒëU ]D$Ù {ðdd)׸ú¯zùú´ã5µ#ý#ó¸2µ¾ó ´WÏÇ i‘äÑÛ]ƒ5è«ðlN³ îÃÏÙôuë©ÚÿÐ*…û¿ò+Õþ,cõú×4>›ÑC5¹ú ‰jZë;ŸÈRHü«JªL-±DžFfò4?+žI˜mbª5IÿV˜ÌçÆtCÏ«ïGFdU¹JÏÓéo×ê4i|nÈ«³ðìXBN«•“F%f&ocµÁy”'¡•1‡zšþ¼JW¤H^³¨ð%0KÛõk”ŠæUÞmúÉ0iOŸROX`ª$§¼±³Y/÷bÿÙ†5åuÌöO3°bF³O:™€Wƒ±¯5êf`õ+3½°³× ßl‹md“ì.«g¶¯ƒÓͰ D5Užð”hžŽ•?Á¯Šm,Ϊ[Ð/è Úwƒd4¢¿ýìïÍä!¼É¬že&3š`¿ÚCýó›3Í`æbôkJmwŸ]‡÷i†wÍÃUª¯yÁ0»M´üËXù·˜íTǘÍ;ð³Æ=m¾näcÌϘÝfždH#² U¸.(ÒÙ#Š!=Y]¬Øþ*ß¡=Wšé‘w\‘ÛíÞR UªÀ;n—ášÇa¾`&0ßYõ‡;tAϪ²Ïü»%ãÙbl¦¡ï5ë^c¾õüî4îTÿ¯fîÇžÐÓ¼Ô–Úã£"ÃÉq}†v°»%îsóžÜ ­sô…°¦=$Ó¢ãÝg¾ªo,»Íû~ðipÁvEËç˜]2cZ‚¶©=y'ú`"þßëw†Q­àÍh[sô‘f3„e:×híÑ1áµîËpG8mïâ_pGKL–ü^óžÙ5é²Ð÷ó«Ýp¿Ü{p[ä·Â¬gn““îƒð)`ãôÁ 2ÌNÀÛNB¿–‚±¶¢žÌjª·¨× ì¼»0B­è9[f¿Jø÷pºTßÀߨ9S.Ï_é¿wôäÉ}èë‚Û­Fïþ¼æ~uŠW%X#¯°²W[úKR13´NÂÌ%ª÷ù¼¨ü-ZyH-|ó·ëyßL̯¹dW‚_Ý™B+j„Y‹´-5ÐO˜†‘ÔÅRíжàWµ¹ÚËXi2¦vœ†w~…^'µÝfÿ‹}^™1 IÄ,Æ•&Ó’ªÉ“ºR«ç«cŸlbù8YTzUí…¥<âQ!òÍ™÷,"n¤˜äxLj -ÝXNO ŸIŸ}³n<ýþIô«W¦j{"Q0—ü/¦'£úß™ÌJéDÄLˆ×»Èë‹–±«c«Óé{‹ÐC_‘þ7½KoÌóø›NôrŒG¬fD3ìä 2”瘋Á.˜‹|î§èËå¦2sœï7£¤™ ¥>C?Ó‹Zþj=w5ËåféÇÑÞ&_^.iÛÆ`ÄΙ<[dž–dûúv̹Åà9ŠªMw»Išp|¯»ª`w[å¸gpŸy¶±ñwyÞ+ÔoÿË|bϘL«=z x5…}¤µ’·ËXQ$޹¹˜TO_ÂZ­³ñ´öxïÙxF_ôß.jW4O1:anÎ^]d=¯«Lkÿ”;è?u+°ÿ}æûû·ü“àWI²ÖOòÜH¿_î ãEÿ©·¯ê辇gϹg&÷ $Áƒ$¸»SÜ¥¸»S(Ò-u…R(î”-uêÞÒ–z©Q—·ú­½îíïû?}Jnnî=gÎÈšµ÷ì½ö_R”|È Ç|mˆçÜÌxÑFTÏ© î¢ÊøuÛßh}äÖØeûaÜwQ«óë@è] ¨ß~xUáç¡}_¸zÔ¿*ÃîqoùXiCp¥¿‚×ó»lO<Ç&Ó3òŠíƒwËy’ìT‹IãÛ—²þ ÆVMaTû¥.ÚÒÔ ¥¿Hõ:`öèª[kVQŸAí»ñfšïâëP‡å¸)\€÷•ÃÔ˜Uϸ…nxŠLò”"<׫ÔMg Ç£Dµ³•Ó ŽfãT¦âUƒ˜æh.#Σ'ušïœÏ*ðêêE¿|<ï­K˜D[¬³ŸM´ÒC2[U[¯Êߣqô5iÝy²©,f,ÇQϪJ,†*ž­Kd{'Û‘©Ä3ßY+J«W« 㯪Ñ[Ÿ‰¹¥j–Ñ|œU÷‹£]]-æçï‹hþOe>Ð Ø=†òý–ØÉãX'"cò)Ö§칷ÐsÃFÒ×·™±R&]%9ƒ}¥ }ªûB7àÕ~Ìg½OO°’7d ûq"FþMÆ·'â¾Ëå2‘Ͼs@÷çTžôµÛ¤míkmM·Û­î g°ïN¶%¢ÙÎ>´x\Ô²ÿÑœ³ïQ¿ÝK»}ƒ6Œ_%GíÈ ­hlü¿@·Þr;Ú¯õãžG+FcÏT?Ãmà{ŒÎÉëôäL"ŠÕZî°]-uhåýhž‡=¨]¼ÃíF‰§ŠÖQ¬Ô«1kGcgU¯÷ÍŒjÖþzT{þ \u†$Ë£À«v˜y“©¥y¥×R3AϪî6í·òFó*àÕ›ÌÇy쨪TÇÚyÒ.>Ýé¶Ø÷Í„`4VÁ›è¹!°/ºÐë¶ë¶5vÃ^èÛ{€ÄS™›2Œµû Å/¡uåX O: w{ó¼-ž1ß Œ|örkÂRFT¿}›ÕèÞM¦äqÛ+L-àiØ·”Éå…T/»œçƒª×ge,ÞUЕ ±“6=YEkiY ~5ƒúÌ(ßÖ—ÑÚ»ÛÔˆŒ‰Lcü@vÖå´ÆRÉ×S¹3ƒ3ëz¿“©dó ëF­¢ÍENåÚ%‚•äѶŒæç2â<¸“Ië5“§†iœ-ѬÃBê#r¨%–Ë¥IaLD}S‰äs™´Ò2;–Àèˆ8|;Zå+›ºÄŸdf¦òL0™}ÕdOB¤ÑŒ§×\ëÆÑ®N~UdH4Ñ<é>e£°”—> ÖsŠœ3×ÃjFTCÌípþdê3üŒ¾:Kûø]pëŒoOÆLm#-¤(n÷5m¥"†uÝ̹Nñs€©%¯É@öÐØaTSï?Ôœ¿F ܇½v¦ÙÉ>é`ÆÚ£RVó*[n‹ìQ«ç¢¯Ó­´Õ¨g__x¯sÀ¯Þ³gM5æ~oÚ…µ¤e·í´a‘CÀ¢ƒ´¡{c¤¯‡Ý4›y|GÁªö0âòJó¢i,Ð÷PMº#v¥Ñ«õ¼V£;Áj©ŒïªÏ‘}nx\µ¸gÃÚ…uq³Üï¾ØÊ^3Þ¾œ Î٘ˋÌ!é î]ŒVhÎé-ŒõžÇú¨sy¹-ÉÃjk9Ò#¾ 6Ï"Fʯq…7„sÕ÷æŸtG€ ÀX>ñCügþAð«tYå'û5n´ß+[h~µÕ‰­mvÊÝÔgØ„Þî~5ÀjDÛ43– Í±fJ™¥ÕCó·Góq›ýá/á?À±NflPëú+ñú#Wê×û\SÌÚýîi_üJ«Ñþ¼áÄßÂx†h>N_<¥FþŽ6°*U)a°P9šª),Åø}hÆ4Á§:±VŽâÏ\|j)×Ú&3ωLæ cæûn¾>­4ì’‘å<7T½¬–²€õ­âñlªÐŸCÉÅ7^`®]žm¶¹gy‰Ä¡ª1w4¿/‰X—Oß}JLc¡cÛ³ˆ y†—IœéL}Q}¥U"²© ª±MO~°ŠV8Tßz%¶?)†!z·|Z~•ɵ²ygÕëS/Z5úÊÓbÑ´"£<²Èë⦖¥'gSaT_4‰£Iäi ï\q€ŽQ…éfH#âê6ÅæÚ½V-ëWL²\bsY§5Þ¾•ø uÚÿ4ŸÛ'MÏß5=‚ŽAãË!;‚ZXñ&»€W{p•žhÏ;@‘¡XÍYX?ðd;y^¶õ•_5¥ÿj¿]ÔlËz^„áïm—ü`†½vo'¬ÿ£Xé×aN ǺèÂXyUqÖþ>ì´R ÐX)ë%óOÕ_–h °%Uö¿¸¨ù8š‘\ ¼ú3ôJ³8ò¶Ëu°J°‹¤{ýQ» ß½Ïm°Ÿš1Á|ÖÔú¬K©4ÑœãÕ+f88†žNÅûÙømÜ쾿š¢'؃'üwn¥)^u÷¯šJr‰Ÿâ/uü>9*‹Ýð«mî)Ä]ƒ_=lÒ8·«d¢@UÀ ÉX[Qa9zg•êÆáþ‡Í­Œ$i†}çp˜âR0G1ãqÏJ¾Ü_¾ûÀúU°5¾ý¸{Ã׆]º ³ó×àEú}6‹™Æ##/€_UÇZ%J"ÃBôìTÖÇI@›z'¥WXs±ÎT*Z´¯2f`¥Ù`ŠL¤1ÑLö|gz¯ï3U"K—¥5P‰úß*3³'8\UÚ,ù@ÁcD´dV§ÝK…ãJ´žjÆ8P*UZ’yn˜M®¡RD«Â–Uf|{-?õŸ·‹eû¥1VT#<9OkfFãC è“Îf}ú¾£yÕÑXŠ$^§rLñ*ŽQœ1}†xj?Dc®Ñ &%æ¡ï@íð¨r2%N¨j:ðŽc¾a21²2¿«˜›Áçë¦>ŸLþy#z=ªAÝÌ<[UÍÜ~Xû)Œ×nocþ`’¹Ì6²?É^«8û:Pçj›ÇXúTû"Züˆ¨‡ñwó‹}ÍäYÇoL—  úÉf‚ì²C‚â[œ6=åœ ¾¶=ÈžvÊØøµQu5ÖN1VÐôc]¬ßZøí:Œr5üÞ8©õµ€ý-F+ª˜1áµîðŠp&°¼“ÀݬX ¾þ¹oçßöOø;LðjìÁÉþ°Ü,3Üd7ÏpJMs¬Õ7çÑSZãc… ²“Ðç#VÐZÓQONg%Vå{Ü¿ZVKsúÃ$ê3t7ü7xâV~#ÆåKWÃ_î¿rZ‘ù {{Dð«î&ˆ¼æþrw[Í¾Ì ˆ¼dU¿d–ÉÁUôð®@— 2ÒªÿlŠjBÂfÓ5V†]¡;Æ ”Qƒ`ÞÂjZƒqoè]&˜{ð«ßÀÚùkð·oa^â¿tçpÀ½ä |'¿£õcð&ìÁàWÅÍþŒoOã)ÇX0ý¦ä/³ðûÌvJØ€Q¹Ÿõ3ÍP‡Z ‰ø9ãõ·_‹á9ÚƒIhõL?Õ7  ÷ ÉŒÌ,àþ^jºÉRÕ1Zót$z/›ì5™ùšKÆS»Á6Zo錉Ï1ÑJñ9D¤ÊÄŸšTtÈ3Ѻ65bÞ­ÊT¬N—8|¿½)d½°jû剒¨KXÎwó™kµÛRb«dbT(•4ž~a%Å­ßñŒrŒJv}ŒêéB{õŒçRÆ_ ÂÞ£GðŒŠ#)ÒÙ=cçK}Öwn,SÂ%xæ–¦·¤+ì8QeÒ/ÀmÓÐ(®©¸B [m<ùPàÞOxž"ð´ð­†R +ðTZµSÏ©²Òæ ¼ÒJ‡½°žSíyùókY=]Üw£P*5}¡ÿÂÎÀ8ájÙÌ#Á|ç´ïB£ªXí¨ÞÃhìâXð¨Ç̳X­ãÑæ¡ømëÏ¿C¼Ê[ÞKÍæ©UŒ6̈¼Ž^•RŸA€W‹Ý3æ 9äFù0îý0ßÞ.kâB÷«/ñ ä³ÑúÈùÀŠP«ÍI©.`Θ õè¿ÊNÍb•bç/Áõ¯úÖ@«ÊÁÞ'`]ÀÏ•è«*fNx±û-¼9œ„ííqG¨/Z,_û¾þ/øU†\ç'ø‹WGdŸLv×»Yþ:gl=³OënòuÂÓ,“v,µ 4Gr=1Bó{£w5Z}z÷vŒnúßט§Ã"ç¤zá°ÿÈU¿Z‚žØ»«ýÏÀ«À«÷Á¯ºùÙX¯.rÆýä°š³p¹é9Åx˜›~Õ¯êâÎíÌFÆ©fšµøKëM¨=Ø ½?„| !öâV@L³Úl6Ù¯"c¸²‡š¾‡oĹ»M÷HïÈB¬õÕw”…èÁ$r¤~ÌÇIeN^ ¬hlC6úôú²cü*š%˜AÿV”“ÿŸ¿]£Pk±®M4ºí¯(þ4aEšDÚ˜ÑüžxžÅ•Q¥8‘F~:ïT-Ö‚JüN5²¶LÞ¯¼®½d%¬­Y˜Í¨OåHMX6ªãW“[ñ´OÕC–K—Âøö4^'…y;•ù4ò®túÀ›sýÞEû´*ö‚aè_õú·0u$”Œ£X >ŒP6÷&õ°k‰~÷ ØÃ™&šùÓøÖcV‰×œ$»¥ q¯5VÞÿ¤#ûaÖÑ'èë,ê—+W“° Ly8CQ´µhï•{·ÚI¶ª½Õ*—~ht­Íõ÷ý-oƒÅˆ¶9BÏ0÷Wk‡= léÑ{k¬%Þù:â.éÉšK÷«ÝxwÊ|{ð ¿2îñ0,÷ª¸IîgßÈË-À«×ƒ÷ƒHЉµGïŰëÇ”\vâ¹îÃ,§ÇÚkОB¼n†QŒ×·¡·V2Ëubx…ûx5+½«Æö߃_Õ’7üRÿ–Êß 4¸ÌO÷ÜlàÕm²ÔÍqsü~÷?)1»äq÷Iø0®ÔOs-ëãÔÇ4=žª!žs6v¢ÉxU‡R¯¯-XŠVæ8fº Q5éÝÀ§ ð¨)X»_ºl±ÿÉ©þÏ!X¿%¾£×:d¯»ÝIÛýy‰é9cU ºWcÁ¼5v|Ï*0§R°S,ÂÜJ+®ã)FpMk„–jÊ(Zl=xod ¹Â³ÈõŒM¿×TŠ,‹\HË«‰é+³Xo"•ùä bqê!|;fÖĵ°*Wý:9dAQU V«|\%›œ$“^ìh^Mæh™™"\/Æ$ñQåJD¦6@“4ÕQÏ e˜L¶”͆4­¢SÄV&34+æo×ìÆªäfŠ3Õ¯õ_>N;2@=mG]Gýæ|F¯:Æp•P_Çß?ÍÞNU^ÕLž»Ð'²o5« KL_´¹ùÍ$P_=#qhñ9Qü5ŒÀt`“*OìÇjœ$}Dy/ö® ŸÐÂÌ•›%jWV€‹½&½yº0×ÿ–š ¸Ï¹^ÓJUm¤q`¸Ê;»›.öf•î[lG[`wYåÌßšjr©­#Œ±jž•dbTRpɶÔu7mƒ&Aúµ.»lç D4êìOì`íå!fGhlÐ2Íw¡ÚúNÜ{ÆF½åÏ ÝÇÜôêÒĽh/‘ç`ež —ÁúëUõmc—‰›Í@º­xVµ[a_FÕða@†'0G57ç<Öä@àU|W«Œªºkܵ&fnæ«wDïײSŸa•™yÏå»íîu¬‰zàW5ü!»(ó»Øž1SƒÙhÿÛø}0Vegê¶_ŽßÚã•*ô=ÌxÑ.˜Š£qÏ:°Â&ó~…Ø[ÔËö&ð±#cš§FÞ‡=8'lliìŠü@7½kþ’ãnLÜ×þ¡°Ðî“óqë]J\m__š‰öà‡à]Ûw[kŽÉQ¥­¦¸ w)»ž¥9X×¹&úeuWÛaGPõŠý¸¯Æüç¯~ o /Ööö÷¹CþO·ÒÔÏýV3rÀ£7û±~!ðêv¹ x5ßÍd½‰2s@îwï‡Ê";•.‘Év4î2ýZ•úíÊNV§gc/¨&=;á*»â;w‡µ]‘h¥­£°Aã|ÖåW®_ ¼ÒÚj·»|mßüªõÿt{­Æ…®5ý"¯ØX[ªu5ü»‚:˜ LK“êIÚBÎ3^¤&hGkÆ"¦ G´þàt®ëõfš=™Í8ÏÙæ"àUSZ\'MÕÈêø%kN&õú¢Ú­aÇfÓ+ö½ÄúòI<¡?ÌxÊh=çþŒÆ°G«éÄÑ®ª«Ï•K[/…>™tæ&VáwRÀkÐߞ͸Ñ,*i©÷½UÒè¹O£¹rìÛÑÿ*ÇrSiC¥PA!1ŸŒÀRÛ3äu‰&•iévfN³r§NôðGë±æÒ§Go–ÞWmÉÊĵ$êÊT¢•›g¢u|aDWb=§Ð;6x1ШR`KóÖÇ"NÎÅ®þ«ù_i®{-Ñ1Úl–È(iÈó¸žèç <Ô–\,Ï ö] y:¢šs‰ùÞ\Hþs«lÇû÷µ ß[`vñõ4‘ÙŽý~¥­fs€WŠioÂZÛgk1®ÞÚW±þf‹^ÿœ1Á6“oõi>5݃AGQ~:Aî´ƒN¢ñ¨VŽ›rßì‡Y|µFfbiDç.àÅܽ 솇MyŽù˵%ß½i—K]ê!d¶…×rß®/gl{»Qjb=ü Æpk]ŒFâªm€MÅÌf{ÀœåžÚÒ|…=BRe+}óa·Ôª²Wh‚ïtÃ>YÙþ(?af]d†GN»4w“{ˆ“-žº¿×.Çx\å¦Ùï͈@ãˆ^µF:“'ÝJ[¶©Qu–gñ·Yô·¤&”"Ëx§.£½ÕÓßœÁ^Þ³¾LµâÃáþÒØ¥ø1nðêœÜé^ô'ü}asð«ûâú»¸¸Ö¼ú2øÝöÀ]nž”¢úÀŠW[Ñ‹5™C®ù‘ðŽjb-Ã,Àú8ÊöîÀš\‚>©jf…WºoÃ+Âéx^gØ{pÆöß hu­¿ßxY {p*ìÁ}r•,só€\;\Ä›òŒ;>‚o¶4]Wƒí ÃL`rUìe¸[ì­]ß®Vó ìG·Ò,F›…é.Ÿ>Ö£þ+—êëùKõç]±_¼j¢µkÝ9Ÿ;q1úôàe÷‹Ûj5& ÈyÙö%~ôÅ:iÄœñ¹<{lEMåøþ—ØuÓ‰šÔ7MáÉýL|j½Ñ—˜yöTd#¡&›ù¾§¯Ãµ}‡iYJÓÀtÙÔÕlº@ùª´è 1_4ö1—ù7sÑŸ9äUbÞô¨¶L´fŸ®ój¬ÐU-“Pƒ™ÇYD¯&ü\ ZŸ}Y61ÆÇ²ÿ/Zgg"³`MT0'‚Ä®¨bq³¨“yvèXÙ"jßå±’a%âOMó_=ú4ÖN`®t<ÆHuK“È÷ª1R=ŽþªšèWգ̵¼*ÑzNdÅú—Ž¢Ïb,z¬âv¦ù][ó˜ù ¶a¾yÝÄË;<;}>ÆZ¬ó¾üj·ÔEÐ.¦—¨“²Âΰo•a¼ç S$ÏÉ(ÞsFþ¬|墘MrŒ }»8Ù¤y@½Mw{ÌFýtëmŠ-²‡¨½ð æô![J­øŸä}¬óY¬-ø‰ùÕÞÄø«Ê@ÔnAzЖ9Ñ3å”môµÓãWEòžoVûs-px6]4.h î]ó,Ažç™xuiìNÛ•¢#«W„›ÍÝ€cßÙµv”aÍ~¼ÚŒ*¤gµpâJS“u¦î1ŸQYóç˜>èŸë0RpGnìÁh‚Õ<ËêŒÝa¯‰³ßÊïxw9ã€W w ¥ºOó'­*óÝã†Ø7͘`2>õ>î=#Ò +¢ ú³þ®ú¢ã12gÀrºa^\€kÍÂZÀÍ eu€*í1;ŸÅ›Š+]bG^„=˜‹Ï·Gª¬c¡õ§åZéÀ• Ìãô±«ß©Fi×`]´¦.PTQd“YfŸ‹Ì í0ØÌô}|ZxÇLNdTd.ñ§ vÖñèÙæ öC_ç’!åól¦:«3ãz×ó.k©„Þá Æ]V¢-•̳Áú´“™!“mÒc¶U˜f±ž%v¡OQ#ŠX¢€,)›ÖnÔÊTÆáY_<#(Rcñí‰Dš4FIåÐûžÈاtf0G#í¨,£x¥¶^}ÓÒDë%&1f¹:±%‹š[±˜‡zÔD­L¬‹ÆŒ&±2¨[¯ç§Ã°ò—ãÿ*ä}³0"C˜oØöà/ÅŠ™@‚Ávã©ëR_ëå2†á*3QK+Q$`†‰f%2Wz’ÜÓ&޹øt" ^ñfŽÞYý€iz¶»‡«î1bZ/3Ô>,C¸/\k“m»¹oÂÜfó©kÀ|Ĭgí›OÍ?ö “hõÙ~4-ƒHp(£,·Ûâ ˆõżm+÷šl*óí¤ªÁHZë[°~oÀ × ¦™:òú«.,Øæî ;v\7 ÏûæP¸ öbÓBš›ì iŒ^ú ¸wüJ«k}œ^Ì%,§N9.EÏ×—œ ÖYOq6b=úzø´VX[Á8S­Y¾Û$Û쩾3!òŽKv‡Ü ÀŸ")ñIþY»léIàÕY³(™ú1VÂÚ}zB¸Õø«¾xža«O÷*$¿š‰÷[ƒ3ª•*Rí¢Ä@٦ܑF^g¸CÍæm„Õ{±›¼:/w¹Uþ/ÿjˆ~—§â:¸ß| ýWSíOÁÁ_¶+Wà!iޱ«ƒÑ­‹žÙ…{.À¸bÕ?­'}=î[@ÕÕ›ñÔÓ±'>Êx†|3?Üê~ ¯¦r/ÿŒ»X±c{Þw÷ïû[ü'×û¹~ƒïË6YäÖ¸¹~¿ ë]žrŸ…³Æà ³J†¯j`íŽÅYkš0Óz9Fb~ª¢èpVÃmFf7ÛÜæ:'ê1¿ÃŸsZ}h#vçß` _‚6¨§à¸ûÙ×õƒ½ú»ÿ >tÖ¶M¹ÑŒŠœ¶ÝŒÖ龘-ÍÉKf`¦±Ò‘jñõ2_€çªNJ)z¾9uÅ5ûe<ÆzÙÃZ³Ñ¾G<™jøÞ¾‚vÔIS#² ¼+‰^éö¢u&uþ×ÅÝVš¨‚gvÚÓŒGPþ40çhÅøLÆ»' RhaÅÓ¿¤Z¡ÕéURÿRq,4‘ZX™ÌÑQß|?zУµ#j¡‹b~ªrf%2/ªøÃ¨±*ôò'ÐÆË Šú¾4'Ì)‡£)ÄŠ$¢LRìŒOëD+§f0Ps=Û¡‘TêûJbÚ$Z€É´¬+Ñ‹ŸÌœÌtæî ÂÎw‘¹¬+hÞ¦¥ÏϦ/½õó`Qý…ÞÒþ|ظ –‘ž²ÞfË|)'^õǾВZ4 ±Lî`þ`F°\¾•¾ôNÅ.ô6V’bng؃›e{ùNÌÝ‘°Èô$³‡eï'Öys¹miÙíV1ê]°›}6G´mξ¼Z!‰äWØ=&þvõ_åÁTëyº·åàZª\ø½9nºÈC轆˜{Yetž¾ÖÕ#@ÝU© ~Õs»±´s_Ú RŒ½X«’<n„uÑÙt–²`³+µ0o¿ÃZØ äSÕgPUÒèDÐ .eèùoT SªËÌ5qñHOÁ&*¿j.ÛnØ¿ÅÀ«Ú¬—ú‘+pÀ.+ºÔçù×í"ôéQ7Öþk¶Zì3¬+­7Ñun²u¦ç~¼9…>š…ûâ>31£•_ÇZV{#•ø¼ŒÑnËzij"_„cÜÕa0»Ìåûyn®{ÞDìîÿ¬-¬fÊÇq;]j\#_G˜Eöû 1’ôÄ\[`¶K'Q¥š¸ÒÍ<=˜…Õ«ZñzJ¬:=Z×EíÁ]Œµ¿‹ñ¢Í0Kç‡w¹oÂ]¬ïÜÇ?åŽ+VÃÿ6àÇ~¿¿Ó$ÈZ¿ üj¼ß#—ÊZ·ÜÍò{ÜÏØ%NÉÃî£ð4Ð~žøéh'Q÷~õdšânµ1ÆàÞ 3Ð7‡Ñ¿Í€Uªèr8,uÙ¢ ÷‚_%ú~=påK×Ð/õçabf¸ÿùB‘_Žï‘O`Þc5Šé3,ò:‹Z9óL¢4湚VИO?:0m¹ùX–Å]± îØù¹¥Ì¨¼ÑÙ«ÁRD&Ò+>šúWM¸þ5‘»WÊ(*`ÎÇÌL`Œ@WØeZÍ¢)žu°/Mî2ieÍžÌ7݈UÝŒ§ãL ÛÀþ+®4—D>wiînúÛ«K±ÏôÏÛ•¸ï>×Ýþe® 1µ {€*´A[wb%ô@‹5žý-àÕ\¬Æ:X¿SÍ$Ü©pb½®µY¹»#¾}š•{ ÍäÈ;a/wyXO#À¯ÊÝB÷ìÁÛÝÍþ:l¼:·ØÕŽ«ê‹dc¿ > â]gN¯†`Ž ¯j?žksëE5F?lEK²Á%›ãoãЖÛÑ+êéÉ^]í>o g‚¶õ§ÝNÿ“[Œ§ý lãcÆï5é²ÜOòKÜ;Ú2·‘ú¢¡­eöÉ÷f¨õQ:áÚ«Á¯fð„c fýzâw=ž˜ÎÁ»Åè£Ñ° ”W.¢×ûþ°‘K… ÐÛhÌ—ñ­½Ö°ÿÌU÷+üN+®íq_øZ~Š_¢Õ¡À¯ܪí´öàs°«™fTÌ“†´©1Þ«‚þ«MÀP+£ùÔŸkiúãé`ì•%m6}íîÈdr‡Ñæ2Ø=7dï–^ä¶km?[{P¹Ü+&GNÙlQkö/Ømw˜½¢»Ë‡æ/»×$XÝc¾1åÁ?¶y×J9¼j.Šð)rÔ´=˜‰™Þkiî¾ãVN§Ñ£ƒ1?¯6ϧžt6©RæÞ³3¤3q%,°GÃ-ø^]``ßà2{±h,ÂÀ·Û`ª‚ëh`C{sz¾ û$ðjÞí¶M»O–ÛÑ#-Áµ°D=ŒÎfµÂ·N™&ÖÚ_ñî 3#rÖeÂ|—^¿<Ÿá·«°BžtÚw`jä‹X#ªÌ´ÆUwÒl‰þ›…¿¼ÅÆFøÛtò«rV­©Ë8ÊøTXª£j)\y?ìá.ë‚#–ºÐtsÜ+æ¹Ñò­ãžKíÙ7Óý\Op¡ý4x.øVQ3ôßai þ\ŠÝ¥³`?ðpžL+ÈhŒY!ø20ˆÑ¤Z;mXÎCøDüeb¸Å}Óo/÷/¸ÃÀŽé&CÞ~¼çõûMëãÌs#ý~Ù*óÜ0­­î_©”<æÞ ÔÊ:ÁË¥ÀÓÙñøwõdJÀaú°þ|)fö@´ì0úx~ŸoN…5]%ð«¾fß%ør¿ }¨xµÊîÔ¯µÏ½A=U›þ'xxuªݷÎô¾žTz}tÍ4dÔyez¿r¸êÔãÒ„<)•gŠƒpÝ*&Zã¦!ã«âÉ—S…4‰lå¿zôÉ&9Q•ÄóAõ‘%1Ê3—çƒñ±ÜÃ|r½JD¬¶#ZZu,*Ñ×¥zUY³'‰1 9±óÁ4Ž`Ëqý§Äî“Γ˨7«+ðêüŸÁóÌ‹°ã ç}ÛcÅ|N}ãÊ賿1Fñ)_§†]SÑ»î…Ý7T1°öÅrŒ¦ÚÔÝM_yKÚÒVíoZ‹·}x7Uéý›9ýz¢¹YæÉ@Úƒ·cîÌóÁdÌù1ö^©à‰Ä5¶ÜÖµ»¬Fˆœ1ÙršþöÊæùãuŒq¡ß˜¸ànSÉêwÿ2-‚D`”î"cåN[?hA_Ö/Àvr‚§2`®ÇO­ ¯ªcEi^î6êÉœŽå㔹³v¦he™å`p À¯Ö ¿[IûàR»^T§ýSÌž=°%ÓÆe»µváÜëmØ:šþ•ž I–ìD¯¶–LÃ'”•TÅÌmÄla­—šg•ÿaU,7s€WYîøÕ¦ö`¾ö`/sK±F–³° µ^íP¬ Í=l†û'jDûóæ ì½1âÏ œ¯%ÙMMÜ©!Z§œämóÖR‰ÆEÞ Ç»aS¬þ†`a>k¾’]n¡/^Õ²wÉæ¸†î/_ÍË^3ÝJäàÛ ktú¾¡ ÃuzáÿíèÅbF_ Æ*UÍÍZ‚ù¤õ&öÑ7~­›–§›©á¥îëp+ðê*Æ_Ýèv³Ï0È¿î_ôWëýt¿Ü]ào“kd>ìÁ ~ŸûŸš;ä¤û$|OßF5*d ÕÌàÞàWEØsË©)¶¿/æÙïLµ¤Õ€ßµ.Ä©°ªË’æÀØþ]àUW¿}ñ‘ËókWM1ƒ±Sø"?د@Ïý¼çþv‡­æ‹\eºÀìÍ8¦ÎÀß\ð«"¬1õ·/ÃÿeXkðþÏ…\ZXmXEJWsfíÌ 'æb3Ç>™ÁUx¡™äÛú "À½&/rqd>mœfL³$SûN£öÒ¹NõdùtÌ ®±X'¨“Lž‘ÇÕ’G|ŒÆDãj1›0ª•ÎU¯Œ¬>Oüª{PS$‰ž©F*«É¡RkebšZ]Ѫ†éôpG«_$Ʋ™S‰Œÿ‡CIÌ¥ÖÏx®þ*ôýDã¸ÔZIaÞŠª°(—J`«5—¨:=øéT“Ëd.OzÌçþ_½ÖZ¼K&æóqì°Gù$yUØcÄ´rS(šá´]gÃÒJ’'Ù+ïàYæcåª Ä-f²,–&¢gÝÁZb)š¶øˆ´¤<¬ä3iͳÂq؃~çˆâØÅøîöÎVæðî¥ï±éeoÖi+·Ø"ØJû­öÖ+˜ÇÙBQõÖämØ{Eyé{ÆÛL¢Uu±_M³ ðJ÷ƒEøt£ B´¿ÒåNð«GÈÎ;Ÿ4ëH÷€ê@½»`Ç•ãÎ׃iU“G¨aU[ºì!îð«=rIÜl—Wà«Ë>3ÕþüHÐϰȜ¿Îx†Z`¦j O¢ïf2Jñ:à¥*6•c­ÏÅîp kr9>_`&…׸Âíá ÷º[ü—n©"ßÀ|ˆuÂx¹Ø/õóÝ0¿xµÀ­vsýv؃õÍr¿{/|ØØÌà2dGc¼–­kÂS =å<ÝŒÆ/àý^ô··Å|mB}Ñ.ùΪï;ø«tOqU€W?¸¶°½ö¹|)ðJ³?ÿ¿úÕÝeµ¯Ö™‘7W9F+º6b=d­?¸sAí°‹p·O#ZŸñí­1JQMãy¬z­Þ¥-fš½›:WiŸ)¾¿ïHÕ½‡MíÈŠÈ4®;­?8ߊÖÏÒÌö\ž[ÕOx&¦õY„':Àô F ÔæjÏŒUVMù¾Ô3”ÉøF­D˜‹{ÏÆž—³#Uÿª}§VW!yVñ.š‹ÿÅk¥Å"¨4Ò=‹0‰ª]­¾\bKåæT¥¢Ue^5ßDµþ­U3…ÌKÕ:séýªDÛT£ë£5Kyšÿ!âL„VlýWÑ|äæ u:3æáªC¸/´ÇŠ9k¢g| 2)ò8½e¯R‰¼óò®1 d‘ÔźT‰ÈþiozÉÒ“ã5ÔTHH_e-ƒo0ŽÙÌGØ, `Sè9Á=¸Og¬-= gºÛØUº«\ ¼ªkY̓þÀäËa[[´ÿľ±;)êûÚüco0™6›~õò jÐD4Þc®œ´5‚ÖŒgøË2åòZ9;Êõ˜ÓY¾ž}ž¾¿Vƒ}WMž¦Êtiì>¶Ó¥˜U ~6ËíŒ}ì'¥Áv«äáý_qÍý<̺tÃ5nň×nœ4çð~}ôÂg˜Ñ¥’<ˆ>k…r÷ç:ÌÑŠ›]1û›6ö`)Zµ2rÆ%»î=ôT‘Ôðq°µ~Â]n¹ýÁ(¿ªgÎb½iµÁn:B¸ÏLæ.NÀ}Ÿ¿šCKèì0³Y‘â.=iÄ\lhbŽô3ïbgjû7¿:¿ªÜhã’|·À6ßÊ>w§?ïŸëÛý²4n‰«WÃÉ؃ŸŸAÐkv‘9(­d0îÕm¸ ¶f)žh ZÒ#\è ±x†Fà­ÃѺæ1FÚç˜qávð«›Y°¿xuÎÍÑH\?Ì¿åß÷‡Le¹ÈÏöÓ€WäZYèÖ»iþVg«›ÛäøÕKèɶZ¯AzÛIx–‰˜K¥À”fÔ¼XŒV,c…Øixöƒ¬7Ÿ*T†%ÎK3`À½þcWÙWøK´æŒËb¼¨F*ìug}žïí•7ý¼âþtGl ªÁö¼kb%j}ðѦ*v,­'3wY ÌÒ|˜åèõŸñ7ÕI)Áü茙­'8w™Cf±,Uó‹¸Ü÷ò èIº›ñWÓˆ!ØÑ€W…ô5b],gÄC.cU_Ä=UW¡:ìÁ»‰‰Tƒ)áyZ[²‰&Qý•Zĺ¨÷§ ££Šc‘ñšñ2ˆgD‰ÔuÈùšÔ¶lÊx§8"kjŒE%Ò미˜m¢õqjS’©v•d¢õ3yʘC~•üÿ¨û%P³2wÍ &k‘‰*È(Ëa,„¶­˜¯ãLTÕ´r,+“¨üqžüjs¼4ËhäÉ"%FAœ  ‡~¡±’{0üª\UKDï»öàT©%I´ãбë "®ârZú«û›fò§t#³œ„Y|žVHê3 Æ\U;u'®;øÕÌ‚-2 €WCÝea‘2‚_ÍvO™/d§;åÏøÇÂFxΙqÜϾ†/•ƒfœý"ø1øö`¹jÁJOuÚÿ_¬¯Ã±í‰{ê{°ñ0–Í;~Vžžª /w„;ÂñªTåŸv;a›i|ûYßÏæóÀ†7ú)~ƒ ~u£,q›Ý$¿ÕyÛÈ\+GÁ¯ž²ëééJ=ä èƒ`ASæd.$'.c5Ó‘Œ9錾hŒ;{0–œÖK=G=äË1»Z`s?»rôèa÷²¯ã;y­#a"/¸ßÝ6«9¸—ƒ_=m/À©Çc¼ÉcÖS°Õ×5šq†µs Zô%æUzL¯¯…‰Æêc,š£Çô¬üR3É‹Lç:½Ð,ÆêðôíqSéÓh§†¦õãÉ›zâyª›¨~BOó&ýתá0K5ÈëÒˆ Ñ(ô$úÞ£¹~j¯ª‰'Ræ‘;¤2¶³9£Ýsˆ}±új3SG52b5¶rYa7‡÷êê%Ƽ_9äWÙ´TM.%µà‰JŠ9¹Œ)͈÷器:©²¤rúÛ3g¥ªÝьè¢W}ש¬Y¥çƒŽØ”ó‰eÐã í½˜•Áx×u¬¥X «A¾¤m¨þvÁª{‚'ïa|Ö˜&¬­¼ÃL“¹R]ôú™ð«¡ŒÐoc¦Ê‡<Ôø«fò‡t¥÷N½ÀÒ™„¶¯^ fôÅí[_R–Ù{ÐN ŸÚ¡;m¹-±·YEñ·LuÙ {P™¦³o™Sø¾¢ðçæw»ÌT³YŒc/£ô:“å.[~¥û×oxÆ ¹ }Ý#tÐb"æî:;€d»ªBÞ`¡þ•žýçI÷µ'Ê€–þ7¼-ï ®T,·[À»ÚšJr p>?{zWôÚµñÀ‡‡Íóf-«†~UÜKRe/îZ´Í5\ŒWcFkůÎàw lŽý—Ùþ "¹*î{Ÿ*”\ŸïO¯º›)®ŸýÊÌ &²>NGX óq?­³+¤5q:põQÖ•V{s®¥ñW`³ peÕNRUB­óÕF‹Í•‘wÂ!îÒ°VJc—è»9îó<êðoøÇÃzv»\ {ð_Í×…=¸Ì~||o;à~Ìn"à°.µúÛÇ1zc¾M0zÖ¯ö`Mê_m~LBŸb mª^çÞ¯ Ç™ ¦»Þí‡=¸è¬ùÎoúÍþÌ£eàWëÝX¿O®“En£›ì¯ƒ=¨ùƒ‡Üçá3­ë±^ºÛiÃîXûÕÑãehf ôæù f 5‡ÍúÛKp÷{ÂZ®’¨ÂìIàSšoí·`¿pUýjÿ½«@mu_ú"Xi °*~ Þw¿¸=V#Ë×›‘çm¬*­R8Ú$‹úÉs¹‡-¦¿=‰ñý_£%éô7ÄÕ†ÅôI§CÖ˜µöxd"Wþ0s±ïèKèØÔ´¬b–\#ÓCæ³iõñЦSÅÊØòyÎW ã”6‰Äƒôògpå'Ó‹@-©fŒtL¢Í•ËÉÑz*´Ó²&yâÏøùªx]›3Õ0{ ˆb)<¥Œ*¶ë§rŸÁ+¥ò¾i|?Z¡0žÚÈy娧<ŸvpmÃ2̆xÚªéè·*Œ¹J$’*BV¦½ˆöŠ#gKä÷R‰"éøKúü{Ã[ožc²ÑMñŽÆ—65u%NÑW¶À$Hº¼A ø-ŒñÓ>¢›ÍhÙ&­E±µ7¬)Í1Uû4ðŽo°¦ÔOÞÃ\* e8Yè½Ø€­h 4ˆW:»lG[Íî´‰ô_Õ“Çl©èÈ?ò2,ØÇÈë>2?Ù¥ŒgP=™AYÐFt¼¦È>[\@»UãE«Ë)ÕoW_ð(†å¦jè%Ä«•R±f˜×ÂÀ¡ž&^*‚…v­h%ûÏÁÌnÆ·ª†EöÃÊT}ÑÁxšw©¯ÞÐ|ŠYÜY2åvüÖÆ¬¤_øFÅ\Š›QAáÓÈ&ØsÔg˜yÇ¥»ÃÌÇÉ‘àÕ“°‡Áœl¿6+ÍØûØ7ØÌeþªþöièQUO߃þ¬OƳ‹*5÷ãÝꘗS"o‡ºËÃúf3ø•õÃÜ<؃?Ë^÷„Ö?¼R}†©ÎÄÕ÷…r“mÏ?çmoæÞ#Ce,#éëã¹oaDÐPôc kÿU’«=8½¹Üb Øðãh[;­ø^é~·Q¿½‹xõµ[bjË9ð«Oýqh°Á¯ò›Ý(¿ x5Ï­€=x›ûSJÍMr‡û2|\¦7pz¹ ´3Ñçõü_{©fÂzÜu.~×Jl#0FŠWzB7Û<fÃlŽq¼ø”Êú8Ìç®È¯cüUW؃Ÿ¯úyÕ8ÖóÁ_Ü^›Cýöa‘ÇìÚƒý¾ZA¤:gÉ36≵zšª±èLã˜>C z¦ ú ‰1Z³í“‘I´ËF›~„¯`6Ì£¦^dó “ÑŸ]dõEi͎Τ=ØÜ8‡«_5)®ã7³è³Rí‚lÆf&ÄÎÔX5®~,f “1éD‹LÌÑtúÈé½®Ã3AT¨F.•DÞÒŠl+…+µ =N‰&Ze0ƒHÏ…BZ‹É&Z]"žyÍi<9͈÷UEN¨7º1z;jßUÂÜýÏo–Å2ͳŽÐ«^—¾úHŒ Fkã$2^5­ï¦¾=‘ÉóI­®Ý•ü§Ì4’¿¨éZ=/)ò.±û zQ³};pi…ô¦†^“+š­®¾÷Îf¬<&CÙs€ÙüìR\^ˆ~þ‚g»ÊÁ.—É2–š…`_joö±û™v—t"OÞeØZÔgHÔ”“¶:íAoO›'̳ô›1¿ØY&û 3?™ÆAyÐR”½—{lí œùÎ?‚_•ÊIŒ‰ÖyÚʵµ‘9 ÛÀ`Ôªš[Á¯êÉKŒ¿j Ý9{1ìÁæ¬ðúw¸=ÑÅt•6ÁF»IT7è/s¬Á˱.a] ò\')¥ ÒËø–ú§4þª³dÈÝŒÝT}ÑB H#Ì¢õTìínpØÔµ‰öÌ¢-fNäu—ꎹ´F£Tõyþ»½y‡k?3ëÁ¯j›±s÷Á*i‡6”kƲýü|ÖÞRzÀaÅN4Z‰ù1òú¬°¥üê àcÚƒSaörëÂZX­W£Üðºs²ÛåĽáß ;aÎÄur‰qE¾ì6W¿_[U)˜¼š,ª>¨•v€=ÕÇZÉjvSȯë…9¡qª#À.î@ïje†|36ÜÃz#:]ýsÀ«ïÜ"ìŠWgý)·I‘Kür¿ÒM÷‡e§¬t+ÝD¿Í9[Ûl£¾¨úÛUsá"`GàYÆàu&v=ÓÐø“îÄÌú`œC°wì\È)w†°µâéqÿ­K»Ù€¿}{pÿñ¢ûݰûù•xÆ ò¬û×´š ¼šzÈÝ™á¢'Zѱó'a·ÐØJå쯳^j ë|·ÀsW¢:Þ"ü>…§`Ì{gd.9ÇX³Ìð͘ûw¿)ŒŒL&Ž•›¶2 ÷W‘êÎa¥÷<Ö[zŠçúêV{´>N&ýïé´«Ò‰šHË)—¨“OOw=cô-WÅÌ+`.Œžtõ`F¢²³BžýåYô\ªvL´Š‰ÖÞÉ¡/« ýûùĮ̘~{åXÎLãù Úq•ÀÞ俆²Ø4¦®ÔeÀœ¤sŠ/0•¥p'žñ }ä ØƒŠ{M'ù[zòš“¿a6é3`‘iÒ‡œíæ\[ØVú„ÓÌL{x¥>öM¶>þÛC[ïS&ûm3ÉSkؾlž1ûɯ^0¬1YVÛó½iÔš³mËn)A'ÖITR¡ìÇSÏà9ä1ÌäËÐ3ͰÒÇ}‡áÕ˜Ûò,F³#xV ÷Ž]!Zóô å7áõTäî"ƒ vƒdbVýfN‚_mÃzm‰ÖwÇl¿‰zB#` ~‰U£×µ®)ìå§--Á-¯zñ”ìbª_µ‚ì1)6´ç1R³Í¸È›.ËíuïjÖŸdûªþ4¸ãæ„»üjS0sô#¬·aÀ¾®FO)¯&tÂXÄ{/Ãgã·xº‹Ð}°fnÀˆ”àŽ €WÍð·°=*E¼üj¼»1¬n®2œñ]Üh÷ºùNŽº×ü1ÿ|XÇ“Ýq½\Wöà3Ù~ü|h»2fáéCýöxþKaSתÔìU:­‹ëß‚‘Î!6ïºó¸ŸVs¡™p¿ÁT­ŽžþI· \g žöC?Ðäoñ»MDÖùI~ PêV¹^.r‹À´;±¥ñÛa>ËJÓ"27²˜+¿ž{°˜þ«á1{,Ÿµ” Èsj w÷023j³EcÛ³y¢UúJŸ <ªˆ÷ÉâŠoE¬Í¡¾9mèÆr´NMÏÛÄ4µÉ—*ÑjŠÆ4¤’E#¼JLT³´*XåXîaó+kªšhµBµO5"W½^j÷5á½þ~U-V/µ6ëMxr­Dbm¥XNPÕ˜¿]#¬/•—Åx†ÙX—øIØ‘rx¥wg~0éò4qæ]¬Ì¦H´åûÌeàW5¨?Üö`[ÖªÐÚÐýåp*½Ó(ÓD¼JÿÕXFVÒ‹Wn6È Øƒª:ó£|E#kÇ›ùvŸt%fßdë‚aÝbuù i—­+ªžú·|ŠpñêuS9XgÒmc±ÚÅA™è3S±YÁ ÖÊùZÚ@´†µ*»ÜŠõ5ó¬6fõ^¬£«1ÓZ¹î¿z‘»c‘4r¯ÂÔÌ»5`4O„+©ÏRAÿÕ,)Fk¿ÃçoeŽs#žäw@ûsñº›ySoJmó;XFÉ¿êŽ>™g4ÿ¯-‰ ˜ãªhÙØ™mÿ–Ÿ©C©x•¼úU]jûlÿ¢Õ(íç]wû‰¹*˜€ö|‡;Äþª>å¬gÔ³n ÖæSæ% ”椨^ò ´¤{ÑDVGÕz©Ïp‡æs«Eyöàæ°íA{p2ìÐoå6÷ ?íßËìr6n¤K¿*^-µ_çtcKSYk™•€cªJÅ,V*UíBÍ5¾Ž¼@+`í&Œ‡=ø0ÚÜ ³l%øU´ý&ÓÇ?ænñÿºexÚo€/ù­þ8fÚ&؃›€W»d»¬w‹ÝT¿×ý!5Í^¹Ó}¾´oLž.míd<É(pJõ_©&Bôro´A-`ÍÙ¹ ˆ¥1âZUëXXæò¥5õÎá‰ûyÕ ùüj³ÿ͵ÄÌ¿ÝýìkùÁ~6ÆëÖóÚmU½z£i9c{aeµÀì ¼*c=™©ªù‡§)O‚#©·¬?VùÒ…6î,Æ‹N$Ïìen¿É e€Áu1;‰“CÍ»‡Z)æVÛËÖ¿Rœ|ߔȶ˜zìÿÊëÀ«ÅŒ}ßüe·˜j¼ÿÏ”õƒö¢ÊÎ#å›ÛPóþÀµÊ)ôsÌÖ½˜ÃÃÁñ«aô÷a®ÜÄËè‡"yƨ_‰ºì*i€y·Å|k® ¯A Û›úÒ(˜‚÷s±þSõ¬úR´ÔeÔr žó#ùU`ËBÓ^ªÊ}˜9šÙ33[í©b|¶)þí¡¹·¦ØˆÔÇNªõ ÜîypÐjô_´±ÜáúÛÌàWE°»£¯cvB+®ÃªlÂÈõI`WÏã¾ZËu®¥õ;¥Æa^¨íyw`Î7Tס–Y¼šá. µ†aS'~ˆ»Ð=æz»;ê?÷§ÃB»_^Š›ë~÷¾¶ÜdVÚoƒÊ‘m;ª£ž’62ó²7c*6cÖ$ªöVúbž<~ÁäzÌÝh[+Œöüp/ðêúp¾7Ä?êyëUùm¬ÞoüR<ý*¥_á†ø=²M–ºYnœ?êþ”†æn9[ò$î?#¸J:YÅÌŘ3¹À‹æ¬´=0(Ñ׉e7ph Æg‰9V¸ºÒß<¼Jò}ü2ôÄ'¬?ø+6Üã¾ðÕý?³ààU÷ÛjU)d3ðêÛ™§WÝ0ÚiŒ'­ÆÜŠ5é›EÏþÌÛ¸“F(/êˆVé WV¼žIN²ÚŒ³‡x¨õ&†±½*®“×Íb|T ó£ñjCF½WÙ´|£‘ª™<Í¢fB2ù`j¬…Æ_%ÅÎÊß®q¡yŒe­B|Svõ}%˜¨šŒ7Q݇l~J};ê“\gwö5ªa¥<­‘É’w‰? è³ï°§ ·‡³€ý€WGýŸnÐùŒïá¿ðïú£&Y6·º1þˆÜ,+Ý47ÅïpÿH‘¹_ž^Ýl…y;_zÙ)äQ¹ºŽ1åšwÓ÷Ö ËCj·ÀnÒHÝôÈÁ°ÄÕ"¿:{0Å·ñZµCóqÖø\<×1÷/ŠLÒÿ¼ä"þF[Œ±xõ ,aÍìŠçL2ê¯h=zUãS}Íèü»D2ý7åTµQß‹æ76Äh¨?f™`o‹L!M^õôMAð¸é9O_¶æã¬Âµ»Õ íVwænKóÆÿ£Ïð°Éç VL,âîžñ‘N ôœkfk4Æ!ƒÕRÈ\2°›hœi:#>ûÆj¦«²3ª–_sSÉÔrè³I þdÑ#õŸ÷½Ï3‰_Q•+}ÊÚÌ”I`>N5"j}ïQÖhN`+|®ùX.óŠ´>Ž5éŒÀˆú¯ÒY{5ZÍK¯Z—ÀtÌ¥½è“'ئꬆ0ˆ­lnªÊ˜}Šo³Ì9“(/“£¾Å3Ü´Ån€M7L‹bToÓG:›Alugô¹æ;käĬ¼Ðö ÿj6Ö¯•èùÈ(³YÖÈ@ÆeÁ÷T©@1°lü«¤ íä ¶©maw[=Ëxh²×ÖEúJö  ÅM¢=÷±ùÊ.4YÔýøÎ´Z€_é¾°J·u‚n¬I‘†õÖL£‹1ßnÁüëÕ¢g¸Ç0WîBçy€g°ykkn¿¤¹wíjê_j¾4G‹±2ÛÇòƒAvä ç¿GŸíÇjÔ¨Èq¸ê`‡jž©~ûŒg(Ò­ZW—»°†4z,þ>˜º[úwøéÞod³í/Ø“.6"ç\Ž;»l$Ú üêæžt-ìûf%ìÁz¸v+5d¬i90rµúÀê8mÞ1ZÙ%kyVU?¬ÀG¨ŸW€ïmÇ;ƒÍ³@eÍ,^}ÎuW„µÍ¦…«ìÇ»ùàuge[ë³ã^„=¸KÇm¿*¿Úi–Ù³ÁÏÁoVÕkÖ›;¤ŒÆZÔ†Ìõ˜ÝsV«kT»Ik°^„µýn̆¹èÛ“À«.hÛÒðf÷Yx#øÕfÆ3Üé¿v›ùÁ÷òŸùMþv“*—ú)þ7Ìo“2×-ts¨×W„»>ç·÷“Ó 1Ëd˜‰ÑêÛ7¨ÛŠU•ÄêÑ—2Ên?ú·=m¶%掰ÔÕ”@’»ý·.Á·ôkÑ·ça®öçÁ¯:˜£î¬/õcý<0¿ƒ·À¯nµšy§õqÞÓÒóþŽÀßtiÈz23ÉÛÚcoJu;ûâXó_foŒR2³P´ê×\¢ÉZ3Òn‹Ì }1ÄŒÃ7ãIþ)Ó3²ü*þ®2óT™K!žs‰Ö-ÍÅs>ÊjȪj7…ñW &ª'“g¢µâS¸Z«° j?5ˆ©5ä0+/“ëKk¡¯”)téP©åVˆxúÌ3K'ÑDõK£±PI´õRxÏD^·­ÀTF/$›¨¾¨r·ZC£æKM*uMõlQÕN³bµ+ÅìÁheéÚlqýF¤pg®¹ô56y’'#øÙyæ'“-oò¼ô5ÜkV“žŽ„M6XÚIãÕ›I{¬3UöjiÆÉFü–Dß{mù{±ŽÝ<Ì¡ocÚ°Ì-²IÑz}«}V”ž^^픦ÜÛ–¶#ðJ÷‚aŸ>a«Q‹/Ñž1ϘWXßùKó?»ÖVGõOÓö`;Ñܦ ä~[¯µGÏÃnk)ªQ? ³ë xywÌÁRêõ=̾¼;V*lF=Û©-݇v!¸\C¼ÿ•y%ÔlÚNÀ³*ÁB»L²©›wön=É×xQ­ß¹ cQXñŒù =ÚïhnwgXÒc–·£^@=¬ðºègÍRow\¥-Pù<þ2Û\ùÆ¥»gÝ@ŸzÀ«ÚþY»¸3Ý^ÝÌÅLý-éG-ô–Fc&2.tXÎcØà·ºÌ{šGÅ™M؉U»­+Å:ƒ9_F­æ-‘³á4·#,ÅgILt+Ý3æ7yÐ=ïò¯„ ì¹x•WêKä6³É~üükU“W†Ê\W­Ï˜AEô|ƽƣUªÙ úWÃÑÆ]h“ÖÇ9…µÇLž {ð\xxµÑôg}œ_Ü2̵?ü(ÿµÌ߇Ýå ?ׯw³üÙ)ËÜàÕ÷›T1'å¤û=|ÏÚý¼JzØé¯E˜uUöíé¿R|ŸŸ%Œ{ß1êÈ8ÝùæPXÍUsïiNùï]–oç7à;ߺð«Ÿ\C¼¿Ï÷Å~´Ÿ‹žÓxñwRŸa“é9m{­× ½›) k·”:5-ño²jÎ`.Ž¥W[sPµ‡®¸Ö˜ïmÑ"µ/Ö˜ €WSèïn¦âNY•ýiÓ-rìDE:Ô¿j@ÎSŠ]iWÚ>íÌCŒ2P-÷‰ØªG4›¥&Q$ƒØ’;‘«ÂvärÝå2¢5›¯«b®çó3êê…§¨Î¸Õ“Ic­g­áÜŒy|qôϧ2z=V…ñ ´ãp­4zË2ÿÏ3^‰±…d•ˆdéôWUf&w³ÿ¨ï¯ªèºž™sÏÌ%=! ’@B !!ô^¡#½÷^é½£ÒQ Ò«HUQìíµãkÅŠ¢¢  ö×ö¯½ÎõûŸ<èÍͽçÌ™²fí={¯M›T|òÿú¯bÈïâwa…Qþv9kôiFˆ°â‹î¦öcn½©‚ªŠ­Ð÷½È…$ë7^÷dØ$ L´~ƒÜé#ƳTbžËÝj–^¼’'驆éNØç›ªqZ4Bÿ©"ýì>éÿ!XÇï±Nw Æ}«^€ë ú>†9Ö3+†¸7ÊÐEŒì8¼ªiî3ÒGïÁ²:a*h9I7çÔ9õ!ã(®©kf5ø•àÕoªWÇkC=ù1À«|®y ë¥D?޾œ€ùs'v»õâ}ê°»¾XñÛ€W™°ÜäÝںȾ\ʦ,‚õ‰¿½]†)ò¦˜¹Zìû·akÝŽïK„ÄD¬‰.à)9Œ„zxµWi~µ¬³X[K|j÷ýþŒ4ÜB´ <¡šÃ潄?Km }a“íö‰,ÕÕ]¦{Ó,ÆÛIæ-uÔ“Z‚Ÿ33m&z¬ Z±ž˜ÐX¬ õ<ÆæVâáÜëFÖw}Q9h®¶ãS¥°ŸÃ¬IÇü½9ô>ðj›_\¨‰MsCíTû¢òÍ~[>þЯeé»Â·Û‚pe—£ª)æ’÷ƒ÷¬"±¹NêºÕqDù~fÙ ´  pðF%µÚ·wTÁX6rõEëN¢·f‚Ád«9þ=àW»ýq`®ÜËö(°b®ª ¿uݧ°DïW àW7º5výí íb —äãdª‡ôóöÿ9¬ûÆã¯Û›þ¸ÿ(ôA%%µÛ`µ/EŸŽÇó §é‡9uÏðêJ ?Û&k© xx•æê»›1FWmu·ÆýÏÖ÷OدÀ&{:©Š¦C€_1¹´xõ†éŒõ!5>FcïnŒ;ä‚å)Ñz¯¯¤žW'êõÅ3Ÿ ->9Œþ“jôžMâŠ] z˜gCi Q+Ý ×’'§WgY^ü]mµÔÈ;ª 0o•òÄËÝNŠèWÄ`¬d2™2làIæze©)þ}öÿ^ðª%ðj¯ûÆÎÆL»ìúÁ<îö«d}‹ê–ÛYîøÕt{3ðênû;8Íýúq؃O?Úàyçë23½9L²-Ūå—`þŽÇøˆÛ {ñVÜu.u¹Žú­ÓÍÑ/ÇÜ×° Ý­¸Î÷6ÇÝì®Øúx}Ð^€=xƒ›ëýå·åÜq#6Ð*58ôŽ)emäÎxž8-ù>¢¨Q¢¤ö—Ô’¹w~ wާըŒU £xr?žþ+ñÕ,€íp84š|`ºxÕ„ÌâQÕ&t8&벆*ÓˆbrÆW‚^­@K®»Ýaâ–äeŒ  . 1"–¨äÜ…‰ ™Ç—E$Ifý¬øH¬g•©ÞPm]g±õDMªÒÇ0ZKìÝx¨#”cB¿›B{beÜW KcÕ¿µ·R˜3”B†”‰®J"þHÌŠ ôjýŸ>C­Ù,úÞE±>‹YyÑľD¨_ÅÑߟÌvôV·¡7Ÿ` 2°Úš£'…ƒÕQ¾ŽÕ=ØŠå¤ß&®¾ÂLÒÚZÚ½EõÖt-]žñ #u)VcP/u ëyÉ}z©t}x•Dßûj¬©‰|Ê.j®^<”Ó…SXy°cÄñ|pˆ¹W7`Oí0UMmsÄÈ(| 9iŠ´ô•5¯©÷ÕQžQ^T¼õ*ÍHTÝwª;ìÁ&¬8Öc±WW‹½ü'p)_ŸU¢Öki"c!£¼ï%nb¡ üW•u>ðê&-šÙkÔ%õ¢¿s­…j ëy Ì-~…‹àewâZ¢g2ûi7|²c ^D;1#ä;Ü¥‡®ŒÕÞß=äªèQðXÃÊoer¶®™"ó¾+ú¢Û=a?Gû¤¾sewÎ,BŸ>c{™¯ÕoúþjÒ,ÁuJ™?8¯¤–ñP<Éy5qƒ1·GãÚ%@§¾øN}%Uœ;ãiÞÇ^^O[I­]ô§Ø;ýº@ä|û?»ÀεgÕ÷@„ûÝœðü:渾7<Ýþíª¸êzšc®zŸPÿªXt\ÆØåá¹j ÷PUô[ê¯jS§g2æžàÕ]hßôÿcàWMäLÍ?`¿õD⯞µÇÜE{,ñK®³ûÌ=¼*§W¹QîV;Üлôl»ÑŽsÛ¬69ê ~¶äóŒyêƒý®·™€Ö } ¼h\.Æ\í†{×¥zI/f³K¦¹ØmOúUí%fr>â¾µÖ5¿jª®Øl·šñWmÕö-ôy/7Èû·÷zå8¸}m´thèš~ùà41¨—DŽ:ÆâWŒØƒñ¬}“@l“\æ*ž ¬0›É•Ÿ|•D­ÃÔHîsœ Tû¬ jfı?»p&=Ï¿‹Ò€h„F1†ªœþ»·ð«¹°l~„&¯W1§‚K‰-v‡ê¬ûkÑ-/gÙ°ËxͶj¶> ›Ñ»Ö¬å)Ý‘vì$¬ú0¦‚çÔ-<Ÿù£À±2ÌûÀœ{°6±k·™`rÍn#é3ÕP?cJëeÌêuVKO\U¿›M*‹õ&Œîà5òêèhÆ36u½fº2}\{T3}½Ø ÷‘|ç¡@‰<‚'?Œ•,ñI`Õ<Ž^lŒ'il?¿’z+”ÕÇü ˜9MWM¼ñfž½¾úŒl/Vc-Zc]pÝ{Yº7zè ff1ÖÅwâ×ÙàW’33 ýœGM;ñ‹W©Úsüª¢¹†‘š¦f€_%Û#öCÉÜ=Xɽn$Jû{^ÿG-óÆ.a-JÝÙ–¬Á+•JÑšxïiú¯šàÐÓãY³ç5†õKAšc7:©ï\MÍ¿êiïó‚çÔå3”õyÂ.r5Ãoû5Íýú¡ðTû—+^=¢&›ï¼kàWí0“WÂ2k¦{QÛ°*°w«;ôÕ.%Z(ù°Â¦`6‰Þè>Ì©àyOPc0öà:{Å?~u ã¯ö¹ °“ô®»è^vÇUy½ÚtëíT·WoÓ ¬(Þ~•§ŽéÓøî‹èÕRSC0ÓÑÙ}²1NõÀWó!âÝ«^j˜ìÁ.ÔŒµf«c~¦ëo­žpçß¾èsÙf¯~#^¿ªí¸q¸ÒßÞgö*ìÁB\ëVÕ)ô¬éÊóAɆLÑR]RôEë`ç(¥®Ó:ôcH¡m“‡Vµa,b ía\dï^¡z›¡‘ô* WK]™kÀ ©¡¡©ôÓ¨zãâèk¸‘–ÄÃø¦s}åáõãÀ4ñ¦KÜg¾ ò“Y«!š¶L*²W +‰•rb‰9åY¿+PŽ©À“Z{ÕÇœÁ¿UPb令@!/ž×ø7W1…çqô—åFâ©dí%Ѳ “£¥1ž!È„ŽWžŒTpmÆO‹W¯}V1ŒTgª¬Õãj¬§a©.¥‚ºAaíÁ8ôë´ã§*êÜ}ˆŒ­U¬ö™?…ñ?¯þÁ:>ù>1K5ÕÂøv©aº‡®¯ »a¥v§ðØÖªŸ>Ä‚±ØÓ«è7À—äyG`§ú+Lv…Fêf FÏó‚3Ø!¥Â;¨þ°Dj³?w™R“eÇóªH¿k²45ͧ˜ÿÛ¨-óŠö6¨JFê!þ£ÚÃlªe'è¦ÿ¼’:‰©ê{`TK}”6sCµkiEvš}¸Î>ì„°ªy1/yº‰}×ÌÖRáq¾úCòoÅgšc&%xcÍbMµè‡€t›13û…»ÜΓ‘.ê¬úR-d>óO°$šë X¢€M“ÕúÛeLÖáïEøNuP›Ló'Pe¬ZúƦۓö"P¯X×sÜ#f>süê3µö`àU3¬ÏùŒ.rôÁï5ñݱêYê!‹·{Öê`%ÊÅOã•DbפþUgìÇ1W*bN- ^mòsEÙ«w¨hŸUʰç]^Xâ¯öé}áùV‡ë¯©™æGïO/ÑëHM¼§t¡–ÌíR<ͶHþàŒ~1¸w!~Û‚ûf¯€½öÄèŠ=¸¿•W7ù»ì×þVàÕJÕÁ=oÀ»IEëŸÝp÷ë°Ê„=8ÁÍ´#ÜCú.½Ø®³ÃÜ!ð«Zê„>nö2fQ{ ý2àÕ4fZ÷#c-Æó .õDOKô[[ ÆŒ|c%ŸºI=á[[^—`LÏÂuÝÜ&¼¾nSÝFw•ùƒGìUW x5}÷§÷–uèÿ\i5ðä ØƒYÄ«Ñ@ÔVuœD•ë¦xâ$XÕ“ÕïxzA‹ZØ5Z17$ ½%Õ[§Ð— „6O…¦Ðºé«¦¸Á®½ÜgUóÐí¡Ìà-‚=8ñ rׄõc¨œÐÌ]ÔW¢pïIX-)Ü÷³˜}G;,%¢w• â$ÖHŒáß²#¾ø(òœdb”Dt šX{Ù̋ϣe™ÊþK¤ÿ'Ðpá•Sè?OaLB4}d‚D™‘œä0ëV`Li “BoVíÁ8Ì̦¼§0@Á†ªôÙ§òó•詪@åîÖN T-Oã‘B{¹/k¼FìÊ`5».ÄÆ6°DKrŽúTÅ`‡t| #°PÕ`Ý™íjœn¤«3n³3pIâ…‹¶€5¶Ö¡p¶2UIŸÓ]hKŽRËÔ_jG ºM¯À]ã%Hwmü>jÃwf<Ãe¥¼;T¦Ic»ÔK-Öï:V?lZxµŒ‹Ò¨®úîUƪHÓÁ×Ñq¶èN%™»R8ÈRL~UÝ~`–—š`UY=É¿ÕeÊôW¦'ìA©7q-Ø©6a´ºÐ‡ÔœIò{aV}Ïz]õ-3U}¥_‚·ÃÎ/5Ä:3?~ }-ÀNª–àW?`ޝUKCŸÙ4{È~~UWçº,÷˜Y€Õþ¼]l®ªuÞãK¸×H FÆ3lÆj âƃ)~¾íŒy'öà(jÆïSRñªVÁNŽì'êaÌÑtZúÜm×øõÕÕÀƸ¾v²}A…ÌöA–|œCzoxVp¶ËÑ{Õ-æ¢÷—ö¤ë*u»TW\yæìfðlÉܨl•¼+4­j…~힣Ø$ï·‚šæïa<ð–2÷²Ý ¼š 6ù½¼zÅÃ(ÜîntËÁªöë½z¦]h¹öOXá7ëí‡þýÌì¦Vë®fÕ E±v=õ p—öj:#w—á3b]7#~ÍVü8¥[KŸ»ïñÄÝZ|çg[Ý­s?Ù¦øÜýöw°É¾næÃïÞKÖ¸ÝFôB7«Ž¡ó¦#z¶ãÛ…_åà9¥¶Ælúªâ©ìs NQ•'²ƒ¹â ¸‡ŒažÈ*ìŇƑ_ Q·¯ŠÉhN«‚ÐÞÐò+ÉÇ™Œ>ŽâŠîȸ[GÏk õžK´Z*áÚ'±èçUNƒh©DFÅð$± ýØÉ´Pƒ3Añeåu*Ñuã5ƒÊ¨9Ô¢ |P ÑŽD"] ‘.Ž~æ>Q4×r,mÈT¨×8ž†É¯RcZŽ~§úº¢y)<‰ŒEOQ­é•—x­,ZÇYôS%³*zyêõÅð;aú—bˆM‰”©îúºéfvëÅî-šíí€íÐskXq§zC}ˆg©‹ë_Ú5Ö‚‚¢»µ˜¸Ø—•¾ätR*`¶Q‡T]“j~B VÁüÔfÀ¼™ñ ¢/ºÛôÅx,´ýÀ(oòD­ükôîp\«#ÖZ=Ü mÍA@ˆ3ê} â8Œ½dILX'ðazh¯xÀ»Â¢8Œ–‰gd^è]¸]ïW/¬e­eÇÛWÔUý’Ýè*„Ÿök˜Ãzwx’õµ\-}Xí3Ñ¡èÐ%S|KÖ­Á¥V1ì`ÉDš„6Éy DDUc>NyôEkØ-9ùþ¿‘_ËWoùw³žWK÷”}À}kça7¼æº»Ëî0ùÕ:7‹zÈûôA=ËÂ"t‡í°ìWé—íÿ(î$‘33u#'iЯùÂгհ¾°ÚG|¢;,v©7!ºzsÔa?ÝÆè¦è¹#î2¸S+·»bsÜZ÷ðª©Úc¿qÕ]O7Oö·÷®rwÉdY¥Z…>07°2ZKônŒ®‹¾Ïgk^•Ü©-Ø\]Pãéá©û5ÆÆs†ã;SÈ»–¨næ¡ÐXbÌxàUoWB~uB†ŽÂŒ‹œNd>N õd¦Ñÿ,ì̬J̒Ɇy”jÄIôhU!oIÄÄò'“Õ#Ò#êQÕˆbqôå“S¥ÒËÔƒõ&¢…Pƒ1çÑÄ%©.K“È¿JXñÔ¬‰gl¬ jÄ‹Ed.G“/¥Ñ;šFnGïXÏÏœƒª‡JÞ¢xå£Éå ±"kÓ'¡…¸rHuÉ"1XñmÁ}3ÑÍÔ~ ×HôíãhS5ü,õwØÁ¯FƒõwÏÚÃî/»T¥éËnˆûÕmq'ñz½[ìn²}Ü6½x5ËNvGíoàW{ôcÀ«Ó˜eèljzˆ™‰1Š1k¨WQ ÷o‡^ ®ŸûÁ+[F‰Oú)¬ïÜŸñ¢ñ°—aþj+º›Ý¶úñ0Ød7ÚÍÆ·ÿñ>´ î.“Nµ‰†¡7MgjbJüUö T뛆¹"9„øËf¬ýŸ©õ]‰ñW%ÌýßÒzPÄÆg†&Ð4RÍC êó|ð¬jz)tc$þj&3ð¢p®èµ*ô4Uú¾M]™hj;'·‰¥ÍV•H•L;°<¹VÑ'›~¡ØˆºU<ß/ñ«Â©âñêJ?W<¯‘A¿w4#ÚñšqÄšõo¶OEZ‰U­D*21Wå"žñ(®ç*ôÀ;"Y:ýôbJýA±x-³‡ƒœAQLÎäçÂd 9øT ë–øñ£#þþÊ*З)#^‰R…(#¶¦zR4íÁdê_I,¥‘¤ß糜ý–€¿Ë·wÂꚦ[±&`wUªÛ©‰_ý0Ì´Ž´r»µü¯å:⿺€y”BÿØ<½I÷`îÐi|£3°CÎN»ÃÆßÖ.öÝN“b²Ì#£òŽj¨7˜"-ž¼óöøsZlÕ+°©$#|ÕÓ¥Ô¿Šçùà)ÓÀk¨3ÈÁŽžâ9j)æð<Ì­u˜R+áa¬éaØ!÷«GTý4µWD_ôK³RçSù‚zÍ¿‰HP_Ç{ÝÍ}ZÔv/‚™m€%T@í¸2¬ÜMJt’E'á̲¦¸×%àR]w–¨êèÙê3H…óž—t^f˜|ó5VÈjµ&ô¥Í´Ú·Ñ¢ åj¸#f˜è;Ãü¡f{¢Ñòµxø€¢íІ:hÁ0Ö;ûëê<¢=ž`ÖÇH*8¦VäæÞ…ßzâYW£˜¯f†>ð‡Ù[|±çJl57ÉN±ÏÃÒ>euõÃOúµÍ }{øˆ WwµõQÆ3üà}g¤¾ó­êÝû‘hååS¥"«³»êÉS÷Bª^ƸĸîRô^I|{>vƒ¹þq{Ϳןˆ« t§íç¹¥Ìû;îðj¹›àVÚî>}¿^hgÛ±î€ýUWWÛ€¦—üg”ĤuT+tO#U$ç—ª£'ZÒ\Æúã ðÔÓÐûXßYüí³Ôð«lÖ£?å®Yvß|ç’ÍwÝoV*‚N9ËÇ»¥Xm’ÓÛ’(9³ù[êåˆ%48%¥§°V ±ê™EË÷eðÒ–¬57-tÉŸÂúƒ[Tû»g'â¾é]vº›~¯~µ'œgË…k»}LÍ3—½¯¼¿M֛دËt¡ÙÀ«£V™Zj/ðêKÿ ¬a©:·Xw27¡/%v/XÐ}Úö{[ü½•dû¯äœAò ¯*Ù<Ýs`ýW-Ü|ŒÁ6Ñ­q?¯:©£öWèú»)øÌ¯ÞøÌ!“gX«º…^4}ÐoM™m.úWµ°¶çâs3é?Œ^•‚á£÷ªOûrMKôGŒB 5ÁœIýÍrXËÝ ®˜ìâ52tŽu(¤þWW= WŸœ&Ï ÆAyÆ¥%_IdæâfF„µ3iÃÅ3«cŠ©'§~¿*w*4­YxêõèíÚÀ«ê v«$0¥*Q¿€1n 4.±_››ue ÁrÒ]ýõ@œæÀë 6kq߆JÿîÀO°Bj?·IVêðœ·ËÅø¹´ë¤¥ k}*}ÏÀ,î‡yTEjïQ¿LÔä+˜tó #³o…=˜lwØû°&²tEWÙí7D=Æ62ñz–'º“ß0¢{ú» VÛ:ܽ Ƭ;^½L‰Ÿ*üûX´©ÐBj\Hu«{˜Kò&¤%óÄæ‡ÞöGØå~!xN]û›c§Û—Ôú{Ð¥‡ÿë›Gõ-áÍ6.\ÕIîåcC6ò:bí_T'±KõÁ\¦¤Þê>ªhöÀèWSS©j¹}œ‰+ o8ý1 éMŒ¬^ío°?ù[€W›U?÷¼Ýíþgçc¯»à†¹×ñs„çƒSÀ¯zºÝú=×Þl¹}ö/°Ýú-ûðjãVèÖÀ+É»ŒûжqóšÛEðj&øÝqìÆÍÕDÖózÌϱÕÁ¯`%ÂŒr­€W’“ãÖ¯šR¿ý+ôy{'ñ§¿xoÚ0ö á(·¨¦Ô¿œo…±©¨ÒªšŒç›ïÕÅœ¼«ñ*z=ŽUy °ÓõS‡S_M` ÂhbÚPólh,ÏÓ¨i®£«O;©Æ†ž ͦ÷¼DµÕ qY«âEâ*RÝø ÕW¸þd¬™ª´ÎR©«RR‰D‘d^?—'©´qD{8Vhk(&ѯ$h$5`+ó»U£U!’ÙS—ù‡Ñ´å„9¤Ò—ʘ‰dúÜŸ*qŦÑO”DOw>S™Q¢ŽÚ ™•@‰O+9†6k•±+“9eFêiúW•x¢`éA¦ßëÿóÅd"¬ ŒìbxcIzÒ³ß{^6pF¾·vD%ý:ã!Þ 2¢´XÅÔH½\W‹è_•覅žýÐwƒSI\D•­êŽDô઱d¢=Õ:}‡îÇãa|jp$veWs@×#¢Þ ~ÕÊl1â5|_µÖo˜Z^ÿ­?PϪ Ì[üFýc–ª“Æ<Á^ ¯‘–ý`²~ÒTõZj9ßøû{®–lñ‡ï2ŒÄ*­y'fôaj ܉].È’%•u;ûìA‰S^Œ«nôïU¢ïÝ]h:™!¸fðê¸Ú&º¥TËë€Ùº™ |Zö.fx`Ó5QG/¾Œ{‰òLÌ ~à;ÀæúhK ªåÀêý×YªV„>²±ö~û¾¨À¯RÜÃfúæ”íg¢õ ofÑWh“DµÁ´z z»½9=tiƒ•Ú«s2®-ÕXG3rµz·fÿ«xÞF˜•À¯þë±kýjXE­m²ëm'ÛTȶ0užò‹Ì~½ |Øf‡«_íT MLè/ÖëÀ(Š'´TM/deì[ñ4ù¸ÏDª#KtdlÄixÊÁøë¬×áhÇ“<ᨬø·ÚßüÛýQ˜=WÝU»ðàÞr¯¹'°klv«Ý,àÕú´žbWÛî؃•ÔýŽýÜ?‰§ogžn ¼ÊRã©»Ž ÔùÔnŽêO?{´)8Ÿð Ã~”-^õPGˆWÜ2Ö£¯ænÃïÍÐÀLÆûS0N{Ú?ìa#ºáë`¯½ÅÌÉØÆ©$]L•ØÅU±üÅ;¾kç t³ËE‹+È¥^+5–,d¹gždVS¨ó»úÕ,RÌÙùK5÷Úz G:X5 ½ÆÌÇù;X}†'VÀ4î:ÞŠÑ,dUœã˜ûMÀDΨªú,F³j¦ÚoÌR‹õw3ØÿþV<_ؘ?š.f·–º©W'X‹tö©Öød.-³—€W ©s =7Võó¢í€Y?k¹®)ñWu &*y&Ï8-*–·„ÎÛt{ÔÞ+Y†:ÇUp;Mw´øhbõto8îvk¬®Û<©ž¢'uùF`E¼,üʯXÌȆvØ‹&bîP?µ=Zô¹zœþáäWÃìm~¾Ú¤êÛh7Æ.°ÏªßôaûŒ{ʽ¼Ú§ï Ÿµ•Ã9®¶¾OM1×½ëÞ÷°ŠjaÏé~ZÔŽ`~mQ÷²îŸè·+°ÅlÌÙÞx¾è›!`‘¢}*Y£üíöÿ>"Q÷´Ýï~°«±7^w=Ýûn‰{L¥êunž[ VuìÁ¹v½íØßuu¯~Ã^õŸâIcgµVw15ÑO_;D yäràÇV´ž†¾>¦¶c¾Šiº:ãgØŠZòÐO¹ @è¶àWíÔ[Ý-^IöáNàU¾ëäDÏìï¼ýËî5â^«z¯:³.ZkO åôò9÷í,çˆ<ÅŸ€Þò7¨Ñæ`h×ßH5 ¯óøTmC[C7Ñ7TŒ|ÆP|Úr"39¢sœ€ßÞ'ëI¤bÐcŒXô¨²h«Å12*šë;š ÊÕx'vbuÆ’&Òª*¤?FP0 3"‹6]õqÒ#šx’o–‰Uˆãµc"º éä5AT{,5âh‹F© >˜#ߓڤ–(—A>–Hí¾Ážù‰^MjÄ•Å¼í¬ˆ½*ýf¯>Šü*ÈJ,G®(ܱ VÌJŒ« seêžt#‚6Eò;}ïå0Ö/©ß`‘ ¾½ù¸VÕÔ‚å;ÕÝV·eþK¡¸/¸ÔLäAÌgáHmÁZ.êv»1˜é_37!Ÿ¿Eß«;SëëÖRw¬-±VªŽf¸™ôü=&ÚT5÷ñù}‹n‡© MôdΫÏÔ jœ~§¬76• ÷?ª‘×Ì«O}›þúiSÂüÁ0¤ª¡~œgª}55Ù3uðúAìÀÝh%>Š'þæWp«‰ýÖ¬×rººkü¬¿úx¥ú;S۬Тª ü»}W›ÑšM± 6£ÿjG^Sÿž”à3?À.¬ÓÀÚÄ×4Ï_±™X«b/¶ÀSW L†¹F]ß…¡÷W'€Wƒþ™.ËÝo†àÊÇíDXŒã½^øþç¸W A7àN¬Æaè»Fxž!°õ.¯òȯD¯Ot…_‰&ÖmÛÞ`ÇO¢%s3=tÑg7ùyÀ–fÀ«Á°ßVßë#öewÁ={ðˆÞ¾Ûæ2ža‡šf>óþ¢>C1žê¨î ë¿+¤Þ–'Ò§àúR׫ëã,ÄÜîGÚ´î,præk¶ëßf/ù·ùã0‹np/Ú]îG;Œö*õ÷ºGUº^éf¸uÀ«]úa=Ï.²SÝ!{ »Çý$ðê1Ì¢†˜·³t3“ù›Rob#î%±è ¨×-jgÒv؇ÞŠ>™¦Nûi6K‹õÓî²w¥Ntf.Ûw‹ûËŠò˜½îj¹>NÎ0~¿rØ/Dh½ªúO^ƒ65ðF×E/d“_-Å(–`NŠ^ §ÅÇ^;Qönñi¢gDBXÊu£ÙšÊèï¡j,ÏfŒHTµ ÍÇû²šk³>N.翨×,¢gJ4ù:`¯J¥·»:žðÉH}gÑÍ¥ÅLjô¤ˆ()æää°ã#ÈÅn#>œt\¿ã¯by"±ùÖ5ÃØÑ¢Éö#^ó E™T2G9ø·¦j8µÍú1éäHazÖ‚X-‰aåðdÚñx•@my‰6Íe|{#/j±Ún ïØœQ,Ì!»‹ÃÜýþ,y¤ä«PS4FTSu”Ä8®™êG¯ßRr}Ì´‚H½‰Þz´.ÕÑŒ‹¨¢;¨NÜ;©QÀ«–li/¬þ·ukÞ}(ìÁ‹`YrÞØ-w龌=÷ª;ø¼ƒUs—.dÉSj Ì&Žñ íõÓPKixõ±z6é*Ö[¤Ry>¨t;¯ØkÃøöAz7øUC-ÞÄK°ùj5R±†»©£`B½°¢ä”ÿ(VôÜ»V>ø—~šq鹺¹½ ¼ÊÁÚ^¨^QŸú’ÉßLÝyµÁ»Dù*>;¬9É¡Þj ¼¥¶ÞêuÚ>’ó=ÏsôKø­výaØ?z3“c-ç~]âUCð«0jkÕÍ¡¯m†}ÚîÚdë4WÅ=bJ5A;Æ$éÕ^?\ó+¬«î’G¶a% ÃÊÀž ¦õ†úlJb G£?%¥ƒz‚Z›u©H%žæ·D+œvÂÂЇþD»ÆÞWǦ¹)v‰}]}§Ÿ°Iáìð~‰Ù®ïßcãÂE®ºÞ¯n5_y¿{ž×«ï˜:©€M‹O¹³àNôÂøÅêë…¬ù<#ÛsåŒúhì 'ñ÷Üwœ¿Í~ïo¿Z®Ú¯N»+v±ª¡‚=ø½;îž×Záæºv,íÁ¹v¾í¶Û¿tUµ_¿`?õ_dÍ¿îjƒîm¦b]õW#%ç¥5€¥-°ˆ=(U¼POf<úvTëk9‰>ë®ÛràQóß^ëó²m ®uÐþáòÜp'v· ½g±_Ô"¿jÍúÎÙd‰Ý¨lãb5ü*Ö¦kÑŽ>ã¾¶)®›ƒö_³¹nðª)^‹¿=Û sã±üæ}ncÁ¯dÍ/^}nºÒZé íäW)°ëQ™ZÖ¡hF¼Žž§¢Ô›B®SŒ~oB}ÑxŒúð«‰D  êׯ5`üø“àWkC£©Pûò<ÌròDfþ‰ª]!P?‹þyÑÉÝA,ˆ¥<›–Ò¿~oaEmt­H¬X…fÊHôgŒLf$‡§>"ƒ© £*1®´2³Å¢#X—¡‚jƒ *¨,–ÎgI`ÎaP9~vGKc¬XP£9Ž1‰‘xÑꌿ 2|ªÓ’ ³ý’i#xeÉÁŠ"ª¢qü]<àŽøžÌ{%`ýžÂJ{Š‘Y¢-н‚9ÍÁ‹¢õ@r­Åê°àSr´×Ñû·*©‰S–@oÝA7£ÞTgØkÍ1cÛ›-n‹Ôw–¸ˆwtŽÝdÌšKGÁɶj•¾[waŸæ‰ÏFÚÆ=ÔH³U×á~qŸigê˜ÝF|mŸ©VúSOS=Ú\RçÔ[ÌÒ:Î[­Ò ñ]—yõ¼fô­5¯‘–1üv[ ý0Ǫ7æðZàãzÆÒî¥{U?·*‰¬þP¦¦ª£‹íE³VWBï-ÀìüÉ_GëmŒNñò`fá›!}ÌdzXª=tÃÌÚ@ý.à0Ï“ê×ñ\Cu\µfóíŒkÀ;,Ç¿"Õ”šFõñŒ?c-ÌQ+CŸÛ${ÚîÃJ¯¥k¯N`E¶Q÷Û­Ú×Ó¼ÀºË°·ºáûݱ>ÂÊÉØ¯¡À‹÷_=š^¥EÔñk4žÅ|gQr˜,}lº feŽšzÏhoõ«¢ß‹íU;ÎεO¨?ôq»Î ¿{p‡¾-ÜÌþê ]¡>¦f›¼Ï=ëuܪÞ×Ý`Ö•ZB`4`¾ÍbTT ða9Ûx/ñ €š}˜÷4“g?ãý»€WwùC0eî{À}n©ŠúŠå^v'Ýi°äÅnŒ›cûº»ôSz¾]`'ºög ¼zÚ~¼š¥$ú`‘n~•ËÊגºž+Ñ/Sé+)¢ßì0fÚ Ç,uÊO´™Z*mp—`ë5wrë° ¥žWk|ï”ýÂUuÝÜH<×uï¼õÝ]&#µ^5½gÊèŸ,£=(x”^®‡Íé—YÜüYÉz©NeSÖ£G_ÃÁ5¾¶ÃîÐäEƒÔb×Ö5¡gúQÕ>´94…~"Éœo5å;+1*=W|ƒVžàÉ`¬™,Zb©¬ÏøÃ+¨@—88ïKÔnG4"qVEŒ9He¬A3Æ=ˆ­—Á“Âôˆ?ª³¢ccšHŸz"ßO#n‘ò1´ ƒ|EñöD1j4À«DêY%0º2°OE“¡ ß>VC%R¯/Š{§(çXÆBTAo§ÐwËÂz°¢ˆ¹ñÄâ°Ï¡žŒØ£=qÍÀl‰=/I5>–¨ŸTªþm{ £3+:…ñW=V…ä3Už(ù|3âUWò¨Öà÷gKÂT‡a§Rz$Q»µÚ¨oÑeDÍG1Ú½Ò']ÔPììì“-¦?ìÁûXþÕPÿ×´æ™ o¾n>§%òöÊyëUM#ùªWâÕcíéAúÓÌk¬ÅÆ¿®©Rýž·˜>©Å+qx5UDZÚ$~jÖv¦>ü¾Êºñ*+`‰ú[i»œùÃÍt¢WÄ÷ Õ·à ›ß^ˆu!µnîÀ®U×z Lgsë/ƒ‰6ÔÙ@ÊN¸ï2æµõäùàíô´AOWù&×\aTÓÒÐEg²çä¤M§ºL·Ë,À:xÎ&š¯ÔDo0¾õ1Q”Z¹î‹sB9ƒ{mšBÅȾàY€V%@õq̬)±ŠÌw~«I"sæ‡>õÇÚ ~!ýW¿Ø±À«—`·óÜÄðS~ž9¨7„§Ø]‘«¦¨9æï-ïº)Åõ–©ã°%¾]Xâíh…dÉÍÓ¬‰»Híã[ñ4•°&›¢ç¡ž¿šUœ¡Fø÷ØO`ŽÃêíêž¶Çݯ°+êkn’;ç^q§T½\k‰íãîÕ¯¦Ù1n‡ýxu@?g¯ø§¨ãÒûÝ@3wiÌ®œ’ΚèÁ«zÇ×AÎaqsXæü‹e\Y'æi /j®’µ§»fc•üt—'ü/Ær™jÀw¨QØgsu ¬š­{ëÄfo¯ë]º-Ï®˜‹ï€y Î Ãnô? £<ý`à•èòeâ»ga)IíðTÚý̺#w7šÖ¦ ìAé÷pÏçMcÏ|œóê¬9ñ¼ª<ï6•GÍ™°îî5^‰²Øh}Ôˆ¶ŒÄ¸ýK'} =Qˆ¶mÇÊé®ñ„ç>ž u&‚<¼zBI>¾è3|bVan‹öó×ê¤ ý¸ýõwàBûuÆÜ×Ï€µÝ‡¹9ë±=>ygç`àØ[Àå:˜׌ТØ••¢'1ÃBÎ~î†aeuÂz.4Yæ*Z³Z­}i£íIû_\±’®è2Ü~àUgµÒv49z2øU´¦90a)ïX Œ¹%gº+€E¯c·‰ø¯â{ý4•'¢ÂÐwû}Ý”•b—†.øƒíÍ~]æãÄ»Ñv1ðê}Ú~ëÆ…Ÿf¾ó’ð]°ª»½KÝl¾ñ¼PØë‚><¤Òyßìv5Àñ¶àŠ#ð3„JO¢Ïp»’¬Þ^è§}@²aØŸ¢Êg²ëïGºÛŸLkA»è!WÑ?¸î¼{üª<ìÁin–æ6èõ»„üêOò«'ìïþãT}¾AmÒ½ÌÔgÁŠC[Ìx†i¬z+•žaf7š‹.×£~ ðJtä¾s<¬1©âø­éV»_lcÆ3|‰§è¤æëÞ'V¹»M]Ì’Õª^èSž*ñydéb2“ÙX-óñ¯+jö³Ÿ€Ø©ô5ŽèÉ$)‡‘Ý%1¾½›yüJÖÎ5 xÕ„ÑN¨¢ÐÖù’L¿6z>®«uÉŒM` À9Æ[É ¤ôhEVâ’Ó½lèæq•1äHUQ!bÇe’UkEr c±JÊ'šJ|zóåì,9Ñ‘±X׵ؓé|%ÿ"ñí1<3û7>þödÆP%Ñ t!$3©e„kŲrj.­Ì < êÑ—gìMŠ »i Æð»‚A  $ÉB@Ÿœa¦sŽ÷¢G¾±ÊÑQäWQX_*£Ï‘ó½Á•W—uHwª!z¬Fé¡NªU%Š€Íðþ.p'é¡FØ/ŸÐTP·bÖð¿ul—è=À+Á–³Ø›:`½ î…=èv]›|ï°iaRÍAžþÛóMÓ@‹ì›s`[´ŒÝª¼·AÕ6‚ÿNwóZx µôPkýˆiîµ";d)GHäIÞvì…“9¿‹€7G°»õf<åcJ*C멬Kí—f©®Q\¦¾a=/Á‡!ú3SÃlf6ëzœ™¾µâCj JÁºè¨^$^‰:»ÔMm –úõÛ×)Qkº•(6c\Š˜?xDÕÂ3^Ç\ Îó‘M°{ì`HR>Îí^uUí“©x°Ž.¡#0ÿE×¥k>À«¾Ì[ü+³3®,ù…£û» Ÿ-&£Zƒï‰>à <‰DÈÌ ó{Ùe¾ÄDZã†Ù9öuI?fßqUÀ¯j˜“úæðfV­¢w«Ñô·ÿi:‰7«Z²¯ª0¾}z4—êÃ’»8™õxnÈŠÚGsôPO¬ðShÝbžŒò·s6³žW؃ÇÜOv%Ðù{×ß½î>v˜‰z­ë~5ÊíÐ'õ4{³äöXm*« ú!Ø’ÏRŸ¡‹Z¡;˜Ô2‚+oÄŒÊ‚Þ æ>‘烓ÑûpÿRôE=XeOú6™þöãî 𪵓š6/º ¯¾qçƒíÝX9ë }b5ú¿Os›†Þ1YgVÎýD•F2ÿ$vb!ãêcÙÝ0ÞýÉ~2ðNs켂Eh_}F%ˆžÌ ó8ýW‰hÓr×Ä5¦òçK*/´üJТ¦ê °Â}ëÑ.§•(Õd¨·ˆK‹%QHé¬8!üª2ýRIŒÎŒDÔ Õ•Íì¿tr˜dT¬ŒÈ" ¦âi¤FJ ¹RuêºjW¢w˜LZPï!Ï’ÌX®zÄåsyôe˜•ÉÓ>ÑÜ«H«1Ða®QX–Ï×Ä|ô•ãXa6¨=]‘ÙÄ™@¨hÆ3ä“E•#Kæ¹KV$"v Å@Œ4rK9êœ6ÆŠÕÿ|F"¤Ï«ß vÆ>m¿¬ËkAÌîô·õqÝÆþ+ú5°ò^. ¿‡Ñ½*ñvø|7u³Þ®Ó<¥Ä깇=3L2[t½m[Á¯ª™ýFbà?R7èWMs-üÒ3ŸJ%PÚ¡r>x‹ªc¤gÿT¼f^Æ‹ŽÖ'M±×AË3^ƒUÐTâyBcÌàù`+1êaõJ¼hüåušõqäl'K7¶Ÿ¯r0ëV‚ÑÜéo¦þ^Wý¥ib¶k9Wù-¸ x—‡y9šz2¨ÙßK=©ÞÄó”Psf¡ê¬%J¢ø² –„`IæÆzŒL |¦в†QæWV¤úöàýö¸(üê .Õ=l†ã›Ú±&Nßà Å5?ÀïýÀúºSK|ÔKÈôÄ^ð<æóžžbÍcÉØù~Ïc^Ôoi¯Þ*×Å“W^}èw¿b-D›äºÚ©ö?À«Óö‚{Ͻà×7è=á=6'œíªëj¼ùлâ¯úänõŒn«›2Iò¥ïÅz¸íÜŸÀr·²^j´ñíÁG€W ©'>Ô¿Ë^õM•¹WíA÷¬íŠúS×Õ=ç6¸§ËÝD7Õr›±ÓÍ¿î׷ë³ö²/ÊÊUñÜKt3 ¯ 0~’?Ø#W=ߊ9ŒÍ%¾ã¾;ád´a²:ãÇÙ-UÍö¹ë6Ú5ps1;¿·Õaþd›Èû0>2W£ðmúÂþc·±yWÀ|ËHnpeôáh£Eá*íL›&<”3ç ˜ bÕÅý›‘_E3^Tðª?3ÜœM¢|¤šÄlÄs·3àoóC˘±\{PªV‹/·:ëïšV9xžç#Z£Õ°†ŽÐÛTžçfî‘DæTx¨ÆÚ«A{P3+øK"Õæƒ¼À%5Ê*/²É²*rý¦beTØ¡Áuƒš™dwA•Ã8bb’ êG‡#*–Ñ^ȸ´bS"6eú¤IÄ6LRmØê(ZÏåi±†y&˜‰O¥Eb®ÏU¹ˆmX9¢Ú‹xõHDMµ ë;ú UôO¬Q+ñ À‹^#:¾Ž1Ú¨êkáB›W=uš–:]o­1Fò¼E°ORû=šï¿ »R<‚S/:”ØÕûãNÝ›'cvwV[ÙŸÃTWs·.d4ë¦Ðd˜F|tï«Vú˜iªÅ?ù‡þP= ëLb'.¯¨#X|UuõÚx%¬á5D6…^'-±l?ªýª…>Ãñé¬XÎp‰õ؆{Dïƒ+žU¹°ñ*I•IÝÜ~f`EVGß\R›ý ¸_;ÕEÿh:˜­ZfèïØáŽbåJ-ßqø×kT¨/vË @DÉöùß¾ör|·Ï>¨Ô‘º[˵لñíùƘ?ЖjTè}›dØí°ëRuŽËr¯:©ÅÀ«t=ü*öxÜo6«IԷ醿×Ã:Y¬^Aß.^äcïž]„10wNžô ug>S'ÑR©Y¼$ô&ðê¿îÛÖÆ¸Ávš}W]ÖÏÛGݳkŽé-áÛWU]Mð«•æð«‹Fj žSOè¾Z*átÅì_ k[j“Ú"j,ëBmF ²E˜]#ц3øYŒ¿$«þ.û øÕàd;÷¤={p±JѺÎî%w»{||…äfÛ~nŸ~DµóìH·Ýþ¡««]úaÖK]ˆ'ëGÿÕ(<ÉPܹ2®Ö½S‹y1 xš1‡ú {™SоaÕGÙ- i/ìÁXWÏ­ÆÈ_°yn½ûÍŠ/ñ ýÞUs-Ü <ÕïÞ9°ÎMF”£Öªf¡ó¦«mu@Ϧh©v›Mýö¥ÀÇJÌÇiƒ91€–K ò°¾´êÁz¯…¶Ä1æa4ðj<×ì05ÁÕw5“~J¥‡f‡Öê_ÍD—WeR=0ÌœžtZvajÀçsO Ó²ô³ÅÜÃh¶GxÎpõÐÿEú³Ò0ïK±†ÄÇ%ñ¢9ŒK^zý—ÖñëX!Óa&’Ñ·i© (çŒÕ´hmH|­Ä·obãì6ãÞÛ%»hyZeêgÉE²t=û ZQ8´¶ðI1æ|[<áf"Þ¯„÷¿s¸CíÀܹk´=úk+æGµð¯`uÈu¾‡•ÔCçéã<Ã[¾ÈaÅ·\`—ü]ª[´æ'üe‘š:g}{оƒ5ž«³\Œ{Ú¬BëŽØÕFéMÞt|ç+ÚÎe¯X%°>‹¨áùÚ4¿UÁ{«©ÏÐüo[UÀø«ŽêSܯ9sèg‡^ô‡_ÕæÕ´ÉnhŸÇNp¿}Õsçülsöà:[1\ìªé;ÔsÝ»äy^g¬¾êàU)£ÉDç žh(~z°–˜è™Ê™†T㬆³H d=ú¹Ìù˜ìﵿ¯&¡º»3v»j—¿ìJÝÓî ìÁŠz“ {p´;ª0¾}„»ÓþN³E¶×ü0‹àÎ+t33[2¨%Û­¨‰»ÕV5bXÐa ÚQ¢.b÷“Á¯$ë[ê;‹¾è Œ†ïª¸Mî;Ûx°ÓþÏåºvÔë»Fûv“Áh¹&¡7M{žÿ6ǽCØOk£Ÿo"5¢_nðn/Z’@•κ¥^Œ¶Ì¦E~׿z5Ü Mä¾y¹«ÄÔŠhßIìCsr0¹~Ï«“'¤sÆDÑÿafåÉg’"ýh¢Q•HÄAUƒœœJ´S3"|)|0¨(ŸÞŠäÕQ+>íIeœV9r´êÔÝrôq…ɱ,± SÙ¢ñØqªW#¾|ñ× N6/ú×5K}¬âôûlý9ôá,U¤%s{£š¬ér­Î°¦ÚbÈ=Z‚_íÑ#x˜¥ßS«UTò~Á˜Š%=Z­Ñ›u7ÚÆ§1»ƒëÄó3ýÌB݈ r“É5UÍa#{ÓǪLÿÇ4Ö2&¾¹Œ1~“¾©ÏT®7GUc=úk°›{¥Œe {°ªW‡5 =½]5¿JÅjî†Y³¼`wHѿڌ×ÖèQUO?ÇÛTàÕëfn‰÷oÆNvÝ¿UÝŽ§j§¿5ÍÌt-:¢o Õ·ƒ•‰¶Ìdê·oaŽ—è·‡ôò«+@ÅtuäîmŠUÆì­‡¿­Áš–Xiñ_˜(ó 5f„>†=xÔnB¯ÕÖ \%÷¤†¹ù¬Ýhbôzo.¾ùÖÅ`à`ÆÌoÂ|n‡+JÍÖóê+üe*žj8úsžµžn:æ†Ä6¾¡&áó7Äný«óþ(»ÕoþhdsÜzàÕ!•bŽÛÄpIø ?dNê'Ãûmn¸«‚þÛi>ó¾ðB^k:ì^uÁ•ҵ ½P –æB f1F·Ú¶÷­Ñ-‹5ýl™™R\ÍôŸ°?ôoë^´'a›­Æ\»âú¹óîq÷²JÓ[`.³sÝq}L/ïï¶Ùïu¾:¬´_úgÀÝz çèÖf#û‘_Õgm ›¨#Q9’).zÈ­ñ~=ŒÄQ?׿`VvQ'aÿ%¹ž®+f{ØÕr«Üÿl Fh·ÕáÊx¿…hk0žáé¾[{MìÁb¬WØ v¬ÛmÛ=¬O2ža&îÐxUj&(©qÒÏ,N °gGÚã®ÝÔ!ìCM¨p¿@ô+Ù Œ]™Úû¯ØMW̶¿anrž«‹±xÀþå²Ý`×Ïõ»÷8Ø}FjroRµCï›ÎôIJ´W9X•Y1²1z¼)Z#úíÝ;ýX³AâÒëׄçH†’¨е$ñ ÇCãèï£&¹¾®s[Nªš¡ý¡Éô¨nzž*$NÔÁ•Óî<_`P¥Yv¤ÍTb‰gþ`%®èò¬[“Ì“þ8ªfUæY]ýªiŒrŠb­ÜJŒW—UØšu~¹ ¥rjè0_/ˆmO‹ T ödÆð¿UÈäÀKîè—ªÄ'tÌY tã¥]¢ßËøÏdQSÀý¢y^L«Ð¥¤ê¼äñ¢Ñ´ƒjåèå/][ì}71—YLê« Væ^ {Ñz{š~‡ñÏ`ÄfË$RíNX]³tmæèIÜB)®&Ÿo¤ÆÂN,!Oë¦pT7ç]'c—»®&ó:mÔV½^÷¦*Y#¥˜YÂdªif­®Í³¦•©kî5⃺ˆ}çQSʺ<èï±þ®S“YêM,VUì/ZwöZxA{†êÓ¦¢×˜º7_©{U}}’vs'ð¸Ì«è¬£]˜])XaÇTu-Šh5ñäUíã`yµ1žk^o¯îųµÑšRð.ÉÊxý¶?‚E#Ðÿ=€ƒrÛó÷À Ñ÷¾n­3õÌØV˜õÓ±®;‘y¯%¶uÄîj¢Y/u‘šúĦÚCö [5ëÒÝY0ˆîê5û•Öz‘7çƒÁc…Z·6›DSC”|Þ‡µ'Ú*572ŠÉ’#øQS}žÖüê*Md¨CŸû}€W%hKû3XÌH»SE›À«Û¯ù æ°Þ.±\‰«¬Rwš‹À«Mk\kŠ:¢{€_åý^ÕŽ–æ£/ê£]ç8-;† ëý%¬ì.˜í³a~éoðGk;ÂÜå¾µ 1w>r#ݰŸ×ºË psl?wüjžo‡¸#ö7§î×{íçþ£¬­ÖQ-ÖÝÍ žÊ)á-è— ÞDC<{#ú£e•xUÒ¬hãt+<ý^Ø ®³“ÜKÏe¹åî+U³Ùï]¦ëä:bÿä½c=·ÅHÎæ&•úxUs¦%pPëšÀÀ\ŒrcÆ¿IæÙZì/âYe5¢z®ié‘`½³´^õ6C¸àUc £œÎ={s/ìÄhf”ê™ôv‹K™šÈS@‰+o¢bDT»‘ìµlž‘'†Iôó—'²<¨:«ùäòŒ¯s9Rè™Ê õš@ «Ö„ ôd21’aÃV4áù`¢ t‰cèëêë$ó¿živäukKÄq´<³É¯ä³9´ÉiJ-»rÔ£µõ4Ö:ŒU²؃–' µˆW–6`Ñ*¬‚ZÑ Ì*ì…^X©ÞãýÒé÷Îë7À:½ŒKòç«OÔ?X‚ŽÏ⮀AÕ±UM{¨¢Ëó|0^—1Â"Zö6½S§—ÝU†þLw :NÀû?üWìÇaj 8XoÆúþx5Pm'ZUƒÍR]›Øu«iÍxQùüyÕ@2 ´ôõoúðËZÎ>¾Ra؃ÕXØß¨ö^¯ëM×'LM¯ëAûz·ê¯Á»€+«±š:R#©fó @"QØŽ5U6£ègéxàÕ -³~‰rú¿çÖôUÓÆ,×’yøzEíÆL.Àœ‹9Û6^&ëi>o,eFˆÔ(Ôyzp¤3þ.çZ-h­ÆÚ’Hˆžà‰ÍŸÀ_‰h\~•i÷Úw…©è<¬Sf)zê û¹þAÍõÆc.|‹ëŽBëÛP£`>)UJƒ|ç° J1GJ^Âj˜C ÿšØ[&àno`´‹è}]úÈfïñóÑìßvª½É>¯þÔ»í ×*ü®_`îÒ‡Â]Y!OpøÕ§Þ·¦Õ—öê>º®,'æ+ÁMó:½1Šuh_¦åà~ÍW‡ñþi*K<øÕ·°Gbõ–1žá[;Ö5W~õ´{Påë»ÝàU/àÕ=vê8wŸýl÷!ýœýÌh¼O½D·0#± øXs²!UædÇŠç-DKú²¾sG`X]ôØn¿²‡=ØJ=ä~¶a×έÁg·UÝ-î+Š ‡ìO®†ëãD“ýWï¿è•;"ñ¢•CM{ê}¶FÇâ*µUsœç13ýÛO1†žqÑœí‚uÉw.ª‰ßzµêoN„FÓG=J tÍ\#Ö±Á¬ -%¨®Zh‰¬Ž”‹6MG?ŠrA«Ýfp}‹ô«¬þG¬Êe,Cy"S&YI#ª3Ê ŽñÁôW§R"ƒ6 0¸öT[OàçÓÈyâ迵£¢RE dQ”˜»IÌœ XÙâ§"ÞË3±*,-†QœÑOD/lÃz{‡'UÐçíXçÑRAój$–ø¼†5ø-Ñ7p¯Å`"bUß©æè2Ã:Ë`÷uRA ú¦ªðª”ÈÜLá9Ý,szÿg5‚gÍ€Wûõ P5M‚ùW âE탬S{0Ém^õW/Úaæ5Ëë‹ùô-#TEɤ%¾³#Ô³K4N¿†NÄjÌE{æá÷Rü}/ë,×Fý¿ž¾¼ªbû~Ïœ{f’@ „„$ÔÐB¯$¤¨ ((½÷®4)ÒAAA)bÁö®yvQ°£by>ÛSÿk¯sÿÏOJ¸÷œ©kÖÞ³÷Úð¶K`>ˆoÖF ƾ §»Ía ð£v°|»ùî ùÅ<íÞõÇž  Ÿ›¸ó>Ë77d…ý$x+8kõ¦s¹ì1£hÀêÜÜ®KÏÿ*Ó5£Å8…>ø®ø·ñøýAðØ9hqu™nqï„w„—£Eßþ°?ífH]ó ¬£wñßÓ@ƒU~¦Ÿã†¯±>Îl¯;‡™¿Å<æÎ„bN*1âËÁ¯fa4Çaþ Ñ‹.¼¸¿jÍÅÖ˜ƒ8…¶a|Æa¦ÉÓa–‹õzÊÓàW¡/§~{<^ëÏ;Õ’=¼*„=8Oý9xӿɪf×R)}lû±>NWÌG¢iIÍöéx—ú¯Ú`½­Á¼üÌ;AU™mŽÏ]ÅHʼ½…Œ&Š,‘¾VëJ¨•4RƃÉ5aÁSRÛDÞ•¡Íf&s5 ¸3Y‹¾åôïeF3)6MÁºÉçÍ-Ú}iD¢,²ŸDÚhªæWÄr}N=ÆDUgþKzæóè‹×x†úñxxµãòèýÊb®@ä¿Ê¢Ç,]"÷ úärâHV—Ö§ç;sªw‘9ñSýy>¿™Ìú9Í0N)ÔŠ©F¥†bö%›õÀrùùš<#mRE§D¢@äËß}ö‰;Y޳?51®åô·{­§n„õqªbœOÈ_8½q_Ã[(/Å™ » ”5³*°Ë/ÄžPäm'Wš]À«$âRyÓ\LÛ| žôPK¹]ÙŠÓ³?Gç쀾r“D5 ¯¶ LÞ:ì°l½×ê-Ãéaµ&“xõž‘cF­èß$7˜)uY£ðOét 3¯p0Э üJó9ðŒæ!¼i8,§[±þS±¸Xvƒ%Ý7jïzE´†W SÛ½`×™:øÌR Ì×á**·…=ØØn4Zeü4Zp Ú\Èû(Ue]I»|ž¨qWZ¿àWàY“ižãÙhڋŘgÕ¿Ò è=` Ù˜=ƒç¬’¹±]w¿ûíkdò|Žßq±¼î>ÃÙ1üª.˜n+¼c6«uµÅûUÿJ½Fc1‡Ç°7ºbý ÇHÍôÛƬy[ÍÑÖÞxÛ;ØZº>ìÁÏÂ^n]ØmiáÎÁêšíÞ’ÿ˜#nª¿9áå°…½ÓlHXäÎú|_nºÉ~ ~…UÔ(ù„©Äü6°Xƒg—€çM>ÔÇ.mÄxÑ9¬7Q†aÚóÞ» { ŽL W¹·YçFéí_¿úÖwšïü@ÿ–x•a6û‘~²ëï÷Á\èÆ»~¯ûÇÔ“»ÌSî“ð1p¥6À¨E¦·Õ Í/(A/º0gs¾æy’_Í`<Ãä(ZÏëá0ѦãuØŸ¿*ó«1Š¿º"¿ÈÿèT×}—û„÷ƒSðù?ƒãøÌzÛýØ(Íc§ìE¬$Ñ'3ª€XŸ*gSY' §Qœ—3æ¨51l8¹G'zÔ¦‘K,b}œÉ´)ÆÈ,ßÞ·’hþl‹Øà˜î~¼ÁÌÀQ ¨‹ö§%©y8-°âréIªƒq?@fV•7p¹ÕBŽjÉGš2šÑÜ Ë(«ÈNT¿juz´ÔKÝñ ©Œ¥Ê§+™Ÿé ¿jÔ*N‹Û™U$ª–ŽÏ`ý*d=‰¬‹ÒOÕ(L Æ^‘-Š~И¸îñTFYEU2¢x†êlkíÖ =Ub­"‘~rbrÞ¨'ômÆ»ÖÀù\Î87ÍYÎ7–þöDÌËi±æcbˆÖÇ™ R>s»Œ5ýŒÞÁ¥©3ˆWÚºv2ÎÜeÚ2z¢õ»“›©ÿê,æTûÜAÖ›Ýf ³—žÂl«_)™ñ`óìbSÂ?ßk/>ÜGýö3ÒÛì¿bƤýLSŒ©øEÒƒY’oÕÖö¦2è´bœÃ`sm´¡ÿê¼l•^ŒmÆ{º…ØI+yî¿ÚˆµŸu½WÚ˜gY;.Ç”‚_­4¹èë ¬Î7ÂuØóåÒØA®]a²±O`õì€-UÂØòî˜ù[¸ úËsÔIh€ýoÒx†—€’ÑDZ˜›r|¦&P° æL£+Jsû«ù%#bŸºªî>؃ñ®†¾¦xÕ[v»/1WS±ã?źA…Í Ð¦õÀ‡Ôƒ[{ý$žÑ‘“©Xçjyž&ÓS~µØ<ù Ök>Öł؛ao·!l¢µ/Ü?°º¦»çå{ð«Ñ~ðª¹Ýl®Mh {0×7„=x›=|üÇV`/¿!™iàÌQµŸ€úŠë˰“‹Ðžfxú:Æš]Íû ìÍ}ò8ZÒ+ìŠðzØtZ/utõ/¸]þ{àU}sÆ÷ñoø‡ý“RÓ¬ó£ý4w¥¿Ç<`´]£ý6÷?S_n3/ºÏÂG¨×w©\oúÛùØ3m¨Ó³ž•#›à-Ýaë=S/ ÆXüí\E˜‘}a-÷—(.Ýï¿B;zU úÃåû¥À«ÖX©÷¸o|]ßÍO˜ÿ¼{p‹-øh{=W%¾nèM†)¥nÔ|üÛ|ÖfHÂ(ŽŸE Mã<;aU›®gHKŒ†b8¨Ý›EL/—ûÖ¾=¹ÊSR»&6šÞœ¦2üª>ã—4kzy”bWy^´ºX2ãHîÇjSΣñõ➬êñèµÀÔÃ^„ïVáÛjóÓ)Ìì×LOf¾sA<ß§6c»²é;ÏefSTѰ:ÕøRåÿjz¥1#z1c-Ò‰wdC>#šA«/è©ìÍñ6±3‘Ic:H&õâ“È®2y«éiŸ”Äsy¢:ÕUˆ!)¼L£ür9ŒÕý±7vEcD5þª¦I3ƒ‰ÂsåI2ï¾ÑŸ ,Sîz³ 5ñ)½Óì/­Z[úÌŽr…Ùnºr¬´ž×#´3u«Hmâ‹À¯61> öàtœ›‰¤—bNgšòÎU¶•mb·YµÂßšÜo;US=ä'ä-j[ýWÒ‚eÒЪ%3ýƒ ƒ¦FGvª9l]x˜ÝÒÎì£"Ó°Vbïªv^>ëÞCu²²“ï¹è_ž)r/Û5¦ ëÿZôü(ìÁÕ˜çæo[Ã>j4¯ù=´` ýíM¨ÒO­Ç*^OScÇ´…}0¸™cîÃ:å5Öàú|–c¥7Ǯ莳5Çþm~ÆOË•àW™î^§ 7E¦,±§¬æÓÞâ6šÀŒ æcM}‰w¿ê‚Ÿw¼RE†©`¾Ç±/TËk<Þ43Y‰¾GßÚ ÇðkwEìØNX]cß„}Ý‚°ît÷;¬®éî 9cŽºe¾gÂKa »×Ü’PË… ¾…¹W–Ù¯‚‚¯­æ'Þ wšF³˜†+Þ‡__E›5Vsï*1—/:ïÚƒ‘Îz©óÑÞb®q§Ã áD؃û£îAÿ“›~uÚ÷÷ƒa½ {ðF?Î/ƒ=xÐÜcÆ»±n¬¿ÕYÛPv›GÝçáQŒ^9fr™éƒÑÑÈõaX¹«TŸ »}.ðh2oèF¡E»‰WŠªÓäžÐº*¦3þýaÿ™KôKŠWµ`žum1:·»Ÿ}‘¯ô}4O'øÐýán±}ÐæÒ%ö¶í‹QT5ša’ {Pc‰§â×…Ô“ÉNö—¯Ðª4êÉ´’vÔ ¨‚8 +j½á8]ì]±éôu–«}Wߌ9ÈKqìºØXú}´ý|FO©V™Éû¹ ¬­ŽXq5iKÖCÏÁ˜«¯]ýµÉEÒ˜]X覺uÑŠ¼x­:ü—dÞÞ5¦åX‹VXwêɤ0#‡¸Å_µçÝ_ºDº19ÌÅI–HÏ4•žoE©BâUU¢M:ýWŽþ¨œ¸ÆB*k ¦Ò¿”ÁzU•Ž–e0£Z\³4—x•Ìø«ÿ³“‰gU$Ò~(ˆ3­…Yò 9\ÖyŒEãj™dê_¥`¥}›ýßäoï’s·4Úú[¤ÎÙ|Ö$íM¬Ô¨ZÏXs§©àw{K5sÖ¹…ÝR†§»Ë³ß\Ƽª#²‰ù8ŠÄ•2̦˜1›l7[fw1ç ¹Œ©#smû>NÎWÆã}#‰Á:ØTºÎJÿ ePfô$tË4'Üp»45Ò>Ö»+­*³cYˆó4¸×¥ÔÆ> Œx³ÙÈÛÎ}•ËÓñy \Õ×G:4²Ë¨3óº<~¹…w‚z?Ø{4Ÿï¼úØU‚Ïh}œ«L X¢åèï"j»ôd|ûjüªÞü ô½Ø¦Xcb5O^e¯>ž0çA»LêNׯz3;P”¯©¿¬»²'f}zÒ Ht1~?†¥:ãµ3©Zf{5×ST½÷VÖ#|ÖœÞdrìT8üªƾ¥KòK`w½"_ƒ_Ýè›&¼Ûf'ìÁ¤„Ú¾Ø^ýœ ~²šÑ´^š©àÆ ôV§Ö.ú´&°¾ÄTÞ…ßtÎa­žíøu¬žœ†¶¥Ëøp‹û1¼xµZ.óGÜAÿ³ÃgÍ÷~?éïó/Iš¹ÎòsÝU~VÑ5n’»ÔïpbKd³yÞ}G{Wôx…©°c™A>ý»OoÌx†8ýZaô¯Äš‘ÞcÑûþ®Ð¹4£ùf‡À§ÁnÖ`V~r%~0S£v€_øN°»ÈY؃ÿqÛ­ÞæÞ,å±ã@ê\Öƒ ~UÆzT³°ÒgâU^ÁJ#øÃõÞ´%VL:ýQÊ8gr÷.‘éàW‹é?%£}wߌJ¢H³ØÊØ4ZMÅàWÓ¨'Uì›ÈûÁ ª¼LJ£ªönZHi´¾êÆÙU¤XUœ§˜šY5™ Sƒk2È’²ÈŠjñÓÕyƒ¨~ªlf‰EµpT—½5#G«JTg9§*½íYüvô¦Bzû•‰DxùÕ³ÉÞˆiÙ|k"o)a¥Fþö4ŒH­xÄ}³£sÃŽ×£ï« ½W©ôµ'H¤„åtOƾ[ &…Ø;œjE‘&LuØ —gÁ2Ó(Ó|36‡úíiØ¡—™ËLÖ›è DP/M5´Y• öš xÇ1üêXŠ7vN£¯© TëmlÆ^Äì#ØU±£´7ÃÆ_jšñ]+l=ÛÐÞAßÔûRiöÂT¬ÿÕÇy}„Zî_ƒ_­”«¼ëœ Ê€Wµ1ÕËóBôz©éfgÒß~o\£”_uÁè6ÂLWRÿjö¼žóe˜æRM'Œœú¯Ò|¿ó(åuþœk…Ÿïq¿øàWsðôóÁGÎû;l6µ*cÏiåààmÞ4!™JÀNT^õñ#cD•%´£=¨^žê3ÌaDÀb™dÅ&’q\!³|Oß³•Œ•×5¶96‰Y½¥¿Ñ*eÏS@í®\2˜ Ì÷[ñª§%øöÃÔJçþ)Hk%Ÿ~÷ªŒ¨¯,լɉû¶Sè©NõuuŒçàd°¶SõU'°+¦‰R¹«H¤eÝæ¥Ò³_DæÝÖbÌ»bK-æ¬DzÈ5h©V#æ2î#“Œ¬1ï £ø«l¢n"½SõùLW²©N«Øñ¶1'»1^î$^¥3&$F¹’œ§ÖMšéÏû‚é`.μAט±…Øý‘þØ8ØÙ¼+ì+X^1¹«Œ1;Ì…ä–C°óŽR9 {g¡ü¤Ðw‘›Ì-fQòMæ€ R_%ƒìÓ‘xum`»Ú»muòºÞæYÛÍâbß-ÿë´þ ÚuRÇ*ßýŸô 2h¦Ê$ó‚­t3:/Ù%mÁ²D«7¬¤²Üx*ÿ(JÝŒ¿å_=(­ÌÓŒXëbƒ_­Á»´ž@csS¸çw7°Éoí"ÖKm'v?0«ŒJs_4n>›öÞ‹òñJk1ÏÀ· Í&¬ÿ®xÒTž’zò­¦Ú¸jð>(¹Àä_°òWÊÖw¾Ï}€Yhe²|¿Ë.ú¼ìªÙ¿åú@cÄz›„ÝwvD%¾3„ñí}pê«FôÖKì›ÄºÏ{£ª zëYŸþyL°VÅ5±÷©nGØxÕÀeûyÀ…×€W;ݾvÂ[a¡ÝenK¸ ;¸©¯oa.‚XÕXB ñ WË㦾¹O½ˆþö»0’“ÑNUt‹·Éçb *ßÚ Ô~õú¯ùÂcÃýÀ«íá(Õ<ó¯¸íà:“¤Øüð¤ÿ·×ªµZ~Žé÷›Mf†[ìFû;©'³Õ¦^ßµèï%²Æ”Û9jÙ‚«ÔÁû4K¡§‚jk.ábàä>¼_ë{iõ‰Ca'¬óÞ™âËýõ‘tŸ~%¾fã^÷—¯í‡z/ÿ*8á~q¬V¤Y%mb¯ÙrÑû­GŸ†óToå–`.fã]Zqæ&ÌñgŒFÏåçÊpæ¨-PŠ•®ª«jͬ”Ëí>ð(åce#º}Dû¤Gì&ü\Ïñ&ÒÝ,¤žŒæôU²Zg*÷fw¬ùÆ_iïmÌ®F´‰XQ„G¹Üù)Ü÷y«V•±ë™ŒÿÌdÎMä1ÒÏvæb­³zhw^<^TãÛ£jô™¼…Œjªõ™I»²ªD9Ø™üytïULÍ :ÖˆÛtùŒ3Mb¦æˆGÑ¥éäru‹žÅ˜²<ÞfÆUä=ïõ}‘fitgEÂÀš¾ö`&oGkâ’Æ3¨=®­^ `Ï?C®û/ì“À+Å­@…Bc©/ÚWš™nqý«N°õŽRSTõÛ‹ŒÁÙ¤5ó3É£.”Mf™¹˜w¸G°².–;Ø¢Kdœ½Ï4&§½ÃV¯öXåƒJ7ó¦mMíeoßÃyý0ß{Z2‚MRÛª=3ý‚fA#££9É<{°œ|ì¬Ú>àÙheOàÓBæ­ÔÄ謇²…ŠP›°jêšW1zzÓÐÖ}lÕd˜"ŸÊŒp“æ¼Ê•&Ì´›À»:€Ë=„oź´U-Ï5Ì·í#¯ÝgˆFžÃNij2ÍNŒªÆQŒÇ{*â•Uš1 ¬\î“æ¶Èþ‰²JVƾ=¸×= -3%>ÍÅŽ¼LŽºñöYÌÓ} IÕ¥ ðÎõèIgÖ@‰:”º€Ð`&{©b&°´ÞÔHÕx¢~¿v@ÞÆ²,vŒxÕíj¶1ÙÍw»%´ûÜëþÒ„cafamÂ*ð«B_Ãì“¥öÇàÏ 1èÁûáGL33=Ñû’¹‡Ú8Ç4´Ù½c÷Ζê̆ރ¾ Åú:ŠÙ¿Ÿ›p_¯ÆÓzúçÝ`Ç<Œøw~²ÿÊ¿î nôýõn„?hö›¡ßçΚ<Ù¼: ¼R.ÕW–›vÆu hœÇb¼K•'æaTf`×—ãÚƒþÃhM“Ãamy{6h²oï'a$þt ü*ð+ÕJ½è\ì§xõÌý¼ï¿ÝöÊX#cØ œ@M1ÚCÑB­^ï)ÃXtÃÓ3€“€ºÃhÓ5ÆŒtŠ*ûh‰ßU%KïØJ/{'õE•_­òý|kæ*?.Mbkx?Xoèkæb%¥0§¦vv>£”ªc·¯Â¥Þú·IŸÄûÁúd(‘Jq•^•ì«q\Ë8Ÿ8Wƒþ–lVBÍó—î¼GL¡Êg!µ‰S_JÜHcdwJ<“°Z<6µj\34mM¥+yAUˆ?™l_Tã&•>±HóJ•SKÙFµ1ÛâsõÈÝrÙ§HŸ!ƒZDÕ%$¾%Ð—ÂøR­×IØ‹1?ĸýZXïß®ùƒÞT¥ÿ* {öc°¤WiÃ'Šú…’±ÓÇ›ž&•÷ƒ•À¥r©`ÎO' ÅÓ†8?XZšMgös,VÌ\F-‹~²Ê\g’m>ÁÚ[øçþÀ«5¦!±n«mm›Ú»¬æ&}Æñ?Ų̂bë?æðᣴI?”„`­TçýàÒ+¨´¦ò4sijÖsM±Àª `•¥b'WmoÄ[V“óÞ%O⽺¢vÊai~¥uƳM)ëÖÁÞ\&¿Ë3áZÞ˜Tš´`нÅd±.üÓ¬—ªX 5Úbß«¶Ã`ìÌã`ªdz^EMuó:zÞ £<•ñíZua%ï+ð½Ç¤ƒm ¼*Æ(_;íÝÃîCe*¦ŽO÷ØùØ/¹‹`1®†ïN`t‡SÕRoºvŠj5µc-˜÷ÁSµ¾s'æC«NrGX¤j—1sç*ÖÇ9 ™ìxβØáUîæ°1°¥»w‚›ížÃI wd€W%v‹9”°Åýé Á¯¶Ë{.8¼êÍÌ¡'MÌ] =÷ëqÖkÔI¢7†c°.ëƒcªòçª÷ìÅÏ´ÞÄtVµ›îu…·…ptöϺþw7UBsÂô_øçý±Í~¿Ö 󘕬71Úïu¿›rؼ¬{ذ(u­©°s±#öbï€ëtàŽ˜³c*5t.Æû÷1ßy-ð=a1ìAUßQÿ•ñ=ü*Õüquüÿ“+Ã÷Òß>ÛOÅw%ö6ìÁ¶>fþi;n{¢õi®™¤­WÊz©³1Ê­±²TðSæÆæ2G«f)ªy:š7Tš¼BúÙc3Y~¨,ò}}UÓŸÇóñÞ0CõœÌljÙ©>ú…»ºq°Vh-*T©Æòvj%¤‘gäÅ£"}ö(@×}CÞ ¦1v ª ÈÖ¥SëOýóåÔ!Me„C#ü½-0UµiWIPë0›=Iþÿú©qÿU]îêÆ·W£*‰¶f1럪?ª6™\b^Æ©*ïìT­*‡:ȉô)§ÄóU×½~ÜWŸÆxˆDòÌ,âZ¹è•°f‚5e1gcć£ZàIf]fÍÇùEªÁÔ{Ãc¼cmÈòÛe¢)‚e Ì­—47=±Gõ²³Ì37°>N²Úæ<þEyàœr¿c¾õîo˜l1뀇:Ƈ¹Ï6eƒ£)eŒÇJ;ȶ°Û­bÔÇÒÚ|f5>!]Κ·aÅžažà)ùË®—Ö£ÿYÚ݃&Ìgœ ¼jTP«AÀT¯/{¦8ÑZ Ö4ŒM1vïÛ`1þê øÕ¿ð™n’c Ý1FÙ·®}/… q¢µ–r“ ¿R ¡äuì›­\Gã0ïý€]9¬6û&Æè:<»/xÖ5êé3‡±î42â*ÌÆ ªÖ­¢bGo|fŸ”Ú,û#³ÆN_ív¯j]?S××ðÚå@À.Õ&š%Á ê3(-b„O;´y u¯D[NÉk8b¥]M-ÓÞØ[[ëÝ ³ù”h†Ü{ÔÛlçÌ}tËh–ºßÜp7Þ=.‰öy°™o^ óì~³'aœ“„Z>¶ôö§à­ ~U"·Èë¦;¸qžØ#túuø8Þå–ÔåÒ{øÁ=`U€Ê‡Ñæ ±šç„݉ð¦pøU9ðjŸ?ïJmóØÆ;~¯?,©À«)~‰ëí˜mÀ«1n”ßï~1@É€WGÑ×^:°¯¥~§ÆÔ/œ£Ë±UC§Z2­ÚFE…Æ@ðÝa¾Ë¿ê)wŸb¾»Ÿ‚QüÜeùküwN³¢ïvÀœî‡cä~ þåB›½ûy£4Œ}¼j€¾õéfZá”PŸ˜æVwÇŽÐzÃÀ}Gð>¿úÝ…ZîYÕÀÒÛøÅÒßÞ›H ïr™â»úŽô„?,õcOÇ4Ò©9,™h¯îåFj©p'¨F{{¹›Ñ•Êß&âϹä*ºÿëpwe Ug”jU"[2Å¥2´èó-XÓ4Ê].—BâFBwÿu—ºî-ùÖìu“ý”„£a™=`Ö$ôs'}®/Ö¯‡=x.8k{ãûËdid† ·ЛõÁŒÖ„Õ6;´³3;¡o(ÇcÞÍ? £_S¦†kÜWá6؃םޏ{ýonœÔ1ïûqþcÈ?$Ër¿ÐÏw•þ~³ËÌw£ÜÀýarå€9â> ŸÐ¬0ä%À«i@Þ `2µšeXw­Àý:‚mêho¬±CäWЦٲ7,põŒâü=þŒ³¾Ò/ÆŸ¿v™~±ÿÁ©%¿Ç½ãóü?cü{ðšûŸ[k5"h­4½mµP¬ƒ±@Ô8½š ]ñkúe®ÃŒ£5nòã‡so6CïK1÷j›,‘aàW#x^‘!¾ø•2 g¥$öfl4µ J¥Ÿ™Á<>Õ-§îa+F´e /õŸ¨§ÿñx ¨Æcð¦-#ž+“AôÊ£ZW” S¹gÕÉ4^4wxjeubœ–úŠrÉÁr%RükË;ÇdÚ—ĪjÄ¢læDgÅo ‹â92Šwy´}<_(3ŽWô¯%óÏ Ð·$‰t·ÚC«ÑžÕ´èÛjÆóSˆkUÈëRŸÅlF½]-ÿ–¨æëÌò¶­ð*#^çœÝ Øuê7;†õ°L$Ò¿n²M&5¦.’6`ì½8 Ý€ÛL>¿vÞ—À=Å·‘Ø]‚ÙP;º‡lÛïÇì£ÃØ·—GÔJ!cÁ¯š±•›av´wÓ5»ÜqU‹a©}ÈLKXâÎx¿º[fÙSÁùà?VùÕ,àUCÖÇé¢JðÀú¦ÀÐkðÞ:ŒŽ,ÀÛæ£ZPó®Æ ?Š6k ááÝÀ«µáHXYþw?çæaÄßôûü›À«$³Â_çç¹ §¹Ï,w3Üð+Á©µÎ<~õFW­7­³ë]Ï F°jÕ†©ÏZ3Ùp9~~3¬o&säð«ÆÔ¿º|*ô—ø7§\‰¿ø¥7z‡Ýû¾Žê'aÃ|ç›l ìáà?'ìEèWS®Ô,£Q,ù8}[3ËH³áV`t3†L  cÝÓçSȈ \ÛËäR{(6Ž»”ôñÀ+Ý;ÏHWàÕ8òÍœBíU8ïŠþäÐSßÎKÌÔX變ĵÈ;”½Ô&ÈŽGnVå}Y=|£ÿ%2‡§(^›Pí±fTŒÉ¡¿3–ËoÕ§o<‹v]zT*1)qµâ(N"‰ï¨öÿ=îÅÕÐѼ¸Zd‰ŒvPlq´ïòøö$êc5Ç›%ªKÑ•ÚˉäWé|C'V‚^Fz}ÉÄÞ0/Z•ž5íß4Ø«å~žõý1ΉôA9#àüІ3aGT5¯ ~„w-”2Æ\-‘ѦØÔb,V/©ÄÙÕ‡©ìÄ£¦;Qx¬41_›nÌ»T;Eõ¯ôŽs±l„ÍxïžGè/÷3ÇÊp{ƒiOL_`kÚÎv§ÕØÖg¥£ªOÕuþ¯ùçõÃF#7>ܼғæwéÔ ŠŒòÌM°˨å†ýÖÚìgm­³Ü}NæzÀ±G°·¯n–û¤Ø¼‰ñjˆß¹ízð«æèã÷2$¼N4v¿/øÕ{Nú†ò?y{×ðXìÉÞr#Ùÿ¥X}§pê6¡þÕB­sc^£¶Ë*|.ÈÕ1ZJÏ!É´¿š?ð³Z³†úWocJ`fûûíR Àmn¾3'PEÏoÈŸæ`ºà ·à“]±ºFÀ*úÿ]þ•€ñ-£’YkŒéÕÌ)F[/–}@=™ÚÌÇy;œåfS¿½µûÛ rW»—ÁYrOùö ‡W—',wi uW{eŠ=ØØo¶-¿^î2¥F•Ü+Xùo ž·c:¸qvg= ÇŒäUhÁ´dFù)VêË”EáÍî»ð†p¾w™ÒÝÛl†äš/|ÿðê°Ô4«üd¿Øõñ·›ƒfµÓÊÜßÀˆ[Í£îËð _9PCñj6³Gãý«DU`³æ²Fhªq%ô °g6ãЀ_Ãì!{üiW ï[ô•+ôKa“¶Â8îqïùñøùwÁûÎù­Vý™k¥Uì-«™ m1“Ã$Ã4å,ÎVÎdå0¿ê$ÖŒ`c=¼¿gŽò¨Fø½9¸§r€¥XÛZ/U¹ÎRé{ú–¬qX®ˆ=›@´h*f‘@­¯ ]&ýí5ѾÇY½K#¿Fÿ£Û9õ–×¥÷*þ¥ îï$²²¦ä-Õ¨…Eÿt5æõÔ¤Kñ¤HùÔëR6›è/Z‡œ(-rŸ³ÈÏ’‰R©Ì¿M•¨&W"ý@Õxß§y:YŒIÐÄHÏAcÊXG(ªÖ¿7&bf’F53xÕ†Ž4 ’âz€ÉÅüJð„í@ƒ4Þ¥^Æ›yÝïaɤ¯sÈ·Ø{/²Ýïãã¥99 ì*óƒ$›ªôÛ7‹B›±• 2UaëéÛæHcsŽÏLÂL/¼.!Fw“ëÍ"3’ìSã)G Õùœ+íÓžqÛl3ë€WÚÇÏ€‡Glæ*¦ÚoÑŽ›Œf¿"OÙÑ’a5FãùÛ ²ÞÄT³Ï. ºe›?;íe}œ2ŒÔv0¦a°ÿëጼ½ÚƒµS ´yXÚÃæm¤µëL¾{Ù.g\èz0åáFQÅ£ æ'»Ö>i²°7þÀÜŒÿkã$®ª]àá×8ö–l¢ï÷'ìâ&Ì´«ùFÑø©žôl®Æl•`$;a?%ÙDû›VØ’bï»t·ß굿*ð·ƒA ”àW)fn0m;‰' Á®ì‚õÛLn&tÅ>ü? wÃÁ™†S‹ÿQXªúÖlæ|瘼@åñ\™{-œï–‡šOSŒ9—ñW'Í'î¨?çßk¯îN¸Á5O(õfæBbg‚Ó`­€™ß˜…°}³ø Á|p˜¹ÀƆÀ~­]w;x]ê3ìb½ÔgÁìf£åÙr}¸Û 7‡“pB ñGÝAÿ§[ÆrÖöÂ2{Tj›­~Ž_î†Ò¼Ö-rcü^w§Ç•æ¨ûOø<Õ /‘…¦½€=0”v¨êgh?gb†§R­g Ú² ïWûYuõö…5`¶WÍ1ð«*°—`¿þ×5ððw­çuÐ}î‹ü?þ4øÐy¿Ãjtïr)³=±§›`%Oå¡Q/ Ð#Õ}è(ZEëy|IMµ“š ƒ¹ß[7KÐ*Ý}«¤¿Ý¥˜r•Ì^•1êó1{?6O¢j¦åæZôCùKææITG^µþk2> }Ûƒv¥IT{9bHÕ¹RiLOS}zöcjÅ£"2¨½ÏB®ìnÍÒHͨ …êÉ4ç=]‰T‡ÓˆQ}6M"26ˆ[wé¼ðÌMÎŒ×Kõ¼ßË¥µéõ©§¥šDu¸Z2Dۙ˻Êl~>ƒ+3›OŠÔLiWj¯êÑÿöÿZY28pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run007/bold_events.tsv000066400000000000000000000002461323370031300255640ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 face 52.5 22.5 chair 87.5 22.5 scissors 122.5 22.5 shoe 157.5 22.5 scrambledpix 195.0 22.5 house 230.0 22.5 cat 265.0 22.5 bottle pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run007/bold_moest.txt000066400000000000000000000212311323370031300254070ustar00rootroot000000000000000 -0 0 0 0 0 -0.000377738 0.000618937 -0.000610446 2.28932e-05 4.10304e-06 -0.0163896 0 -0.00046097 -0.000610446 1.91348e-05 4.23012e-07 0.00212207 -0.000478646 0.000369377 -0.000137898 1.67165e-05 1.87404e-05 -0.0239868 -0.000478646 0.000424947 -0.000610446 -0.00507434 1.19043e-05 -0.00656314 0.0001746 -6.23631e-05 -0.000106778 -0.0023936 1.51255e-05 -0.00653315 0.00080027 -6.23631e-05 -8.70401e-05 2.13768e-05 1.7115e-05 -0.000795861 0.000499589 0.00049638 -0.000618346 -0.00424625 -0.015919 -0.00652967 0.00110118 2.09493e-05 -0.000216749 0.00696169 -0.0166146 0.00259216 0.00118385 -0.000252871 0.000883299 -0.0104832 -0.0165664 0.0100568 0.000686984 0.000390622 0.000749135 0.00055199 -0.0166109 -0.0147018 0.000822256 0.000168586 0.000920029 -0.0176556 -0.0165958 -0.00812245 0.00131989 0.000201368 0.000920029 0.0177237 -0.0165549 0.0173143 0.000701109 -0.000656133 0.00162749 0.00556461 -0.0165251 0.0173728 0.000963971 -0.000656133 0.0013663 0.00368837 -0.0191701 0.0411209 0.000917979 -0.000267223 0.000759178 0.00823812 -0.00466549 -0.000542578 0.000853733 -0.00108589 0.00130275 -0.0158959 -0.000429482 0.00638953 0.00112567 -0.000790346 0.00092003 -0.00238424 -0.00963925 0.00635826 0.00101821 -0.00123278 0.00167558 0.00441791 -0.0224843 0.0294408 0.0009045 -0.000920344 0.00165251 0.00665503 -0.0171101 0.0380322 0.0010561 -0.00108589 0.00132391 0.000534176 -0.0165179 0.015067 0.000354788 -0.00108589 0.0011606 0.0177717 -0.0325892 0.0179256 0.000956208 -0.000946568 0.00251674 -0.0033703 -0.0324263 0.0123942 0.000637883 -0.00026945 0.000911764 -0.00405899 -0.0325713 -0.0086862 0.000433737 -0.00122048 0.00176098 0.0177374 -0.0325349 0.0149104 -0.000162061 -0.00108589 0.00156989 0.0177232 -0.0325639 -0.00326929 -0.000473765 -0.00152008 0.00123449 0.0177427 -0.0325922 0.0152252 0.000235586 -0.00105811 0.00135392 0.017728 -0.0325631 0.00654152 -0.000319888 -0.00101815 0.00131674 0.00246075 -0.0325631 -0.00163132 -0.000147902 -0.00154192 0.000911764 0.0428249 -0.0325924 0.0227081 -0.000265989 -0.00124479 0.000996508 0.0235863 -0.000592878 0.00595931 0.000570129 -0.00146648 0.0013587 0.00881715 -0.0325575 0.0161849 0.000712911 -0.000732028 0.000911764 0.0501801 -0.0446292 0.0223552 0.000198933 -0.00149427 0.00182958 0.00147044 -0.0311221 -0.00747086 0.000840581 -0.0013407 0.00218356 0.0073591 -0.021468 0.0273684 0.000915224 -0.00149427 0.0016705 0.014127 -0.0243491 0.0273804 0.000702984 -0.000686818 0.00177097 0.01863 -0.039951 0.0190267 0.000547648 -0.00137947 0.00150108 -0.00208828 -0.0323827 0.000533654 0.000487639 -0.00100053 0.00173812 -0.00112012 -0.00911285 0.00813814 0.000528485 -0.000942944 0.00124003 0.014744 -0.0330739 0.00814824 0.000616067 -0.00102638 0.00144435 0.0317605 -0.0350548 0.00816541 0.000789902 -0.00121781 0.0017581 -0.00347951 -0.0301604 0.020672 0.000806262 -0.00108307 0.00133079 0.0157251 -0.0350541 0.00820818 0.000844078 -0.00105589 0.00150108 0.0288546 -0.0557789 0.0082102 0.000949099 -0.000650593 0.00177391 -0.000736175 -0.0226006 0.00817756 0.000951482 -0.00120276 0.00150108 0.0129119 -0.0435032 0.00825261 0.00171109 -0.00134598 0.00116561 0.0108469 -0.0282009 0.0351148 0.00105223 -0.00120276 0.0010551 0.00826218 -0.0286763 0.0249267 0.00143965 -0.000938756 0.00164928 0.0125463 -0.0450323 0.0350671 0.00162877 -0.00120277 0.00184095 -0.0058496 -0.0556786 0.0186694 0.00152408 -0.00120277 0.00147212 0.0173648 -0.0424809 0.00855631 0.00105223 -0.00120276 0.00174801 0.000144859 -0.0459389 0.0160021 0.00121659 -0.00120277 0.0014282 0.0126742 -0.0498438 0.01601 0.00155516 -0.00125481 0.00171969 -0.0110306 -0.0307931 0.0160333 0.00131633 -0.00120277 0.00122699 0.0388534 -0.0535752 0.0160216 0.00144074 -0.00120277 0.0010551 0.0010439 -0.0358569 -0.00146553 0.00138556 -0.00129889 0.0010551 0.0108966 -0.0557919 0.0164661 0.00105223 -0.00103087 0.00159504 0.00527715 -0.0557401 0.0109184 0.00202105 -0.00160456 0.000589555 0.00814903 -0.0843407 -0.00282132 0.00178939 -0.000810775 0.00105509 -0.00357814 -0.046209 0.0265524 0.00228525 -0.000714997 0.00105509 0.0385987 -0.0293205 0.0335575 0.00191634 -0.00148049 0.0010551 0.00879221 -0.021953 0.0283972 0.00191687 -0.00102081 0.0010551 0.0133789 -0.0454444 0.0111486 0.00178993 -0.000988143 0.0010551 -0.000439177 -0.0454515 0.0335903 0.00199321 -0.00194248 0.00191592 -0.00565411 -0.0453294 0.0173379 0.00172616 -0.00169248 0.0010551 0.0101008 -0.0310061 0.0084122 0.00208772 -0.00169248 0.0015916 0.0023456 -0.0330072 0.0351245 0.00176732 -0.00169248 0.00143643 0.0060297 -0.0375028 0.0226338 0.00221854 -0.00131748 0.00114064 -0.00221005 -0.0370229 0.0090347 0.00219555 -0.00110231 0.0010551 0.0170518 -0.0364865 0.0141553 0.00234911 -0.00127037 0.000884805 0.0117063 -0.0345944 0.0196123 0.00197822 -0.00152641 0.0010551 0.0342148 -0.0454454 0.0350893 0.0023151 -0.00143067 0.0010551 0.00180942 -0.0402669 0.0225857 0.00232053 -0.00135001 0.0010551 0.0073421 -0.0454208 0.0207512 0.00328838 -0.00137084 0.0010551 0.0121742 -0.0159899 0.0282234 0.00305557 -0.00143123 0.0010551 0.0114638 -0.0326395 0.0351229 0.00278451 -0.00152641 0.0010551 0.00571974 -0.0365388 0.0351262 0.00243569 -0.00195635 0.00183494 -0.00774434 -0.0292043 0.0351472 0.00224195 -0.00152641 0.00148118 -0.00449165 -0.0351434 0.0350996 0.00205514 -0.00152641 0.0010551 0.0143113 -0.0454373 0.0540905 0.00161298 -0.001438 0.00119628 0.0177485 -0.045484 0.0169364 0.0020484 -0.00143674 0.0010551 0.00459701 -0.0411834 0.0212335 0.00161298 -0.00156976 0.000870349 0.0177643 -0.0217444 0.0211988 0.00197025 -0.00156976 0.00148992 0.00192168 -0.0454348 0.0341322 0.00161298 -0.00146808 0.0010551 0.017751 -0.0243942 0.0273292 0.00161298 -0.000988659 0.000626072 -0.00327117 -0.0392629 0.0383004 0.00120214 -0.00101519 0.000626072 -0.00764869 -0.0344163 0.0382753 0.00110261 -0.00128953 0.00112118 -0.00239671 -0.0455473 0.038281 0.0015135 -0.00128953 0.000626072 0.017751 -0.0455414 0.021336 0.000803873 -0.00160986 0.00118587 0.00328842 -0.0315382 0.0182564 0.000862385 -0.000711099 0.000209462 0.0177235 -0.0456203 0.0276545 0.00128886 -0.00148977 0.00130813 0.00381738 -0.0412488 0.020009 0.00141902 -0.00102987 0.000820633 0.00273965 -0.0365438 0.0199522 0.00145964 -0.00174834 0.00146696 -0.00324464 -0.0453841 0.0200969 0.00141516 -0.00187336 0.00130588 0.000633073 -0.0403768 0.020107 0.00209147 -0.00107324 0.00130388 0.00486571 -0.0453521 0.0199919 0.00104001 -0.00111415 0.00150877 0.0177243 -0.0454677 0.0268081 0.00146919 -0.00157318 0.00160307 0.0177315 -0.0503703 0.0200151 0.0014573 -0.000997725 0.000820633 0.000841203 -0.0455024 0.0144815 0.0010103 -0.00182344 0.0013358 0.0177546 -0.0454707 0.0106934 0.00126083 -0.00183371 0.00180455 -0.00310978 -0.0276779 0.0145998 0.00179545 -0.00194277 0.00106348 0.000705753 -0.00624443 0.000436982 0.00122887 -0.00140519 0.000630868 0.0177492 -0.0455463 0.0119108 0.00138221 -0.00128073 0.00163125 -0.0197036 -0.0453615 0.0415851 0.00173275 -0.00146784 0.000820633 0.0177445 -0.0454797 0.0312684 0.00126989 -0.00140519 0.000820633 0.019202 -0.0455138 0.020006 0.00158975 -0.000788085 0.000391586 0.021468 -0.0455338 0.0310692 0.00129187 -0.00126089 0.00109928 -0.00140891 -0.0371844 0.0146762 0.0014693 -0.0018683 0.00132966 0.0067069 -0.0454391 0.0111582 0.00179398 -0.00134175 0.000820633 0.00454477 -0.025428 0.0307472 0.00144168 -0.00169086 0.00179811 -0.00885883 -0.00929808 0.030781 0.00153058 -0.00112219 0.000820633 0.016612 -0.0454974 0.0307098 0.00135562 -0.00098012 0.000375168 0.0106874 -0.0455529 0.0306767 0.00141985 0.000107231 -0.000707444 0.0280868 -0.0455523 0.0306017 0.00126649 -0.0014895 0.00084474 -0.000354471 -0.0521806 0.025013 0.00204023 -0.00188111 0.00084474 0.0271085 -0.0453101 0.0188771 0.00132293 -0.00190419 0.00159456 0.000763387 -0.0349425 0.0307942 0.00169057 -0.00237221 0.00146297 0.00926376 -0.0237088 0.0308786 0.00130891 -0.00176351 0.00084474 0.00764803 -0.0453694 0.0447218 0.00102861 -0.00186246 0.00135959 0.00433361 -0.0453157 0.0253031 0.000641412 -0.000122322 -0.000478997 0.00670013 0.00758909 0.0141831 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run008/000077500000000000000000000000001323370031300225215ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run008/bold_1slice.nii.gz000066400000000000000000003222661323370031300260340ustar00rootroot00000000000000‹ĽxWW·í½×^kι6.Ń»»»w(®ÅK[Š{qwwww$¸ww·;’sOÂGèwÞ{vž>E’ù_:~cl£†rBp´tŒ“ÌùÉQÎ_ø/ðëóÃ8‚þßmKÆ?çsœæÿ÷¿xù>ÿ¾¥ñ=yÿïoB9þÚ§ý\¡dæ4éBÒ®ÿÇÇ~üW›üüZpº…Ûøkôcë_П} üöÿúžÏþì‹ã”éÿgÂã¾SQe žžkNfå…h†ÿyDUÔuÕÐuuV}HåF•Nh·‚ÛÅ p3ºI”ßU;éôÒ×LvÊCÉh %3iu ÷œŠlÞšËú ^îÞQ7~¨ÞKw7e£i&=ͣߩ‹¹cÊ«[격G¥Í/æ˜iJÍuüõ¼¾Z †è'ô„\n@uè*-à½ô%2·È—ÎÓÊIíi’É`âšôù™{Z_2é1Í¥´–Òq6®D)¿¢²”Œ#pI 0.½4;Œq¿Wm–•Þ˜!æ¼yC5ø e§eTŒÊÓJAm9o§z|„ÒR':M#)•6ßéóïn\:F-¨¡9U2Q#ŠÆ£¸§bËsè0 ã”ßÓ_&­ZóZ¾N{uÃ$äøÎT´š™ƒ¦Z2›ÚpU¢>ܘßÒzÚF—i>mÇX¡X<ßÑò•VÆUátjÚIñxE§-´”rQj"ºCûñ§GôŸÚÈx®ÍÙy£>ÔœŸ¹afa$ÿYmš[·0ë)2wçFœ˜Cñ*@5)*7åXì°pÊÊ'y2/â0œ‘— ÕãéOTLÍ´r·|Qo¶; Ÿ”¢ðZŒU&¾@M0ð»¬IÎÉû“Í Çùw)* ¹? 0ÜŸëqáõ¦„ùã‹çq›ÄT2s_^ÀxzÙ£Ë_¼L¢Ú˒î¶~܋ɯQ8 Ÿåk|ƒ{±¦4Imú¬âa7 §}Xűx:7ç]ôЇÊqÉÉ/yŠ=h³zñ½TÞ™Ée¥±àÔüŒ*ò->Ì»øu§JzôgõÒ™Tˆ¯Ð&ŒÒ4¾FWy­4ºÒ‹Ebymtë/7mkéÊ=%·½ÆM¸ÿ‚±<Œš‰e*0o‚kqþR3(à§ôæš&­åUÒÒ²­ Ó¥¿h­ÍkOÛ%¶ŽìÂïûZ#G¸!úš\pd^Á•iIp½–ê´‰æÛ4ªIzJD¡9¾mhÏÛ2v‚,‘M6wÑηm|»Yž[;LVKKN‰z¯0Ú'i³)b¢÷×GÍÓ.ùP¬€­\Ö¤ãfò·×ÄNµìMÙ)Ó¬¿-isÙ6‡í"ñl:Züä!Çaâõ”?Ÿž_ýßõüÔj½Ìt§IÔ ;µ½aK{©m)(×$²]`«Ù¹^„P½°^M;šËxÑì›GRÚí´VšiT„si.dÖ}cßý'ÕDU™·N>õÓ¿äGAõJ±;ÚM¡‹êªªqJ»ÜÁîI÷™zæœû¡jTS½ÚäÅXÇ¢ZtY{zª"™Wæ¦^¨/¸ìFû¡vzz vßfTOƒ ¸ ͯêÖ7jÅT•¥ä¨V–ÓOtÁÔ¡R´„ºó1ðc6·bì¥u`Ç*PÉ—¶ÒIjbD¿ÿJµªŒ~köSbIÑÀG_TªD‰é6ZtŒ|ÌfíÊ\ð#OÂ>йJCM Œðö¯ðc·Gw2ÛÀ^œ•#ò§æ2)ábœž‹rª=^Ä[Á–ü¼›¦ƒ ©+M¥¥ÚÇýr¦{¹9LÊ‹ùÛÀƒ0VþÔ#^‚÷s‰"¾2Š_6r I-Ó¸Çç×4+‚—x«©bz1/3Ýø ̳yoæž`ëj6Àkx»Ü“³’ߎ³«ù(ÿ*oxT75?æ+¨×üˆJ‡ÔòÏ*¾vcìKÉÃãÀíóô€{È*i͹dŽõ³y¼Ë6™×@6pmi*ç0&ïh àƒ¨z–&R&Ýï³zaÍrxvEY.ÂSé,ï“ Ïd.$÷í_6»='íDYÇ­%¡=ʸ ÿzÜĈ„“Á¼Å| þN-µ„r€”OÀȬÜÒä¦Tr@z[_) ~¬´Kmr[ľ·l´yM`ßñnԛġşëò8»YÁmª”~F¯èæ¾°D &ãö6¦—ÉNº€DÝìhûÂf±“䤽'Ǥ—ŒÅ'ÏM[b¿$$2yƒÛV-ÐOMcª¯s“`žûI¯†ÝmKY?½Æ6MÊØËÖµ}¤¾iJ(û†qxø¤²Ð†óæˆÙÌS*´y~ŒÃjOÍ(ym£{Me6X4ËV¶ul oµÓ{iÿ´—9¶WÝÖ·eå¾h^N ®³.-Á˜§6ó¾±ïþ“‡§êe…ÿ:î;yUœÉðÊO…qk¹¤óè÷ªª¬v²¹¿»ãÜãn$÷½³ç‡ª]q:jS2SlìÑäæ´TE7½×¾úš{ý9wØÝuY`ŠÐ,hI/sÏäP÷•‚¾Ö?^˜òÔAWQÅ|ª—­=vùô½]€YO](†9O} ÕcS[:dJ›cziê=u·è˜T>@5·@…¸$—¢³¤ø”? û Bîrè¨ ýÝü1ÛIH§ÌZðÃëõ{·CWëÒêO8'Ÿ£Xé z'ÐÊ|_uöŸÜ*pÆ=©= ç`ù Ê”޹#'ã°< Ùc/2Ha¾KcÁ™ì¦°ÚöZ;œ!êŽÉÅ[Ár ÄCsÜüMGí±· ÒþN%¨q48A7À¥ô¼ÁÄÖ¾Ríó †'áÉðt»‘+³ÂïG€£~ ê„2½u8YÊ¡Ýà—a®¢ÐYŸöà+üèŽüÑÀ…žNeÃòUÌcYjwÞ£–‘/Áff‚¼§2<#õ¥ çHÇÝùE½.îÓ퉜ŠÁíf4ŠÒò!N+¡å¼œ²1lt9ʤ¸ŒàÜHr¡x ô0ê…élÚ|1/«]FòûòÁÃb…ôb+1e(”v‡µkí%ÞÁ)Ä•QHšñù_€>bÂÊŸ¯Î|Vñ¼›„ÜDa99ˆù;o ×nzaöAomÆK.Œ~™*+±R*Ûñ¶%øñÀVöºÙœÍËk7Û"rZî"±5£±ës-Îevcßý'ÕJe™NYõ_ò#¶:¤"ºýÜÈ:‡¶î/¨²ÞÉìVv§»—Ý®«~¬wgœú¶)~Ä„¦¦0)u4w¯r…2øêÛî)õæûE>9üÝeЬ &?vüïÔל6•ÔiuÀT¡*¦¦¹j*R[?D=/¦Æª.ú)=ƒW-O è­äÅÐâ¸æ8ô D‹ÐVSÖ\ÖBPïš{Z3ýLï°¶¶cgæ…Zå‡Z¿¥‹TþUॶ …¯ ¶O¾ÛÂ¥Sšjn™ûØ#‘m·P>¸ýÙP¯Žœ†PC¾IÙ‘J¢Í9õëïÔkî#á¿á´ÓQä–QHW5(>¼a+ŽÇᯂM¡k.AŠ*drªß¨µÞ髞›ìПæT oN ÿµAÛ~ãçTþ¶9߃wÑiðÃ؉þÏ3Iô«¯T{ë„Òèù %sf"ýä%Fn»_ýAwÒ¯yWâ <d,5†W;mn˜ÙHsÿ¬6ÜI¨+™ÝàE/.Íiù2[%jEi _é˜9×ǯ·qwžÁo¡Ñ|†•Ô#ÒGPË¿¨àö5ãÁ8¼‚‡C£/á{#=ìá„båè0Å\×wÝÓÿ¼¨öÿyLç)7Eåh\.ãºycvš+ßmá':½4 Ì5Ãðw‡(¢·PéÙðàpìÈ |–c­ž{ޤÕw*öuSÓkx÷¿Ð¢ Pç~”„RÐmhWm޽­¾ †þÌšûRÎ@Ò«Õߨ5Ê©¯nšÔhUG*ŠÜ­é’ùÉíáó¼ÅÔ7}1/õ\ã^›Ró þUF`^ûò¸ûž<@Øž”Äöª]ŒÖ'“û<‰#"Ñ=åSÐûZ¹p-Vû§õö¹¹á!Π'qy(ˆtœÎódY#åÀ¯Åv»Má=²?{9ä ÿ"5‘B’ó $׋H ›ƒÎÝ¥Ò}>«Û¬É/ƒU¸o£Ó¼B†JiŽŒäxlb»RÖØºH„í%8W•³p1Ô:Æü“,æi†‚ëÍq~VÍ)Ãúª†Ùˆg|кEÒÒ~@¢Y! l+üª€=fGÚ¿e”L²M¬'øOèý}>ȱ¹2ûŠà¶ RÜ'T–/Òª*é('¼Õ9µKíÔ Ì8 Áp:mÍ.yl?ØFÒXNÊsÙn»Ùxž¿wÍþê•ySxì(›GnÈ9ZOûÍBªK50žÍáùŸ9B©†*WðÈÜtòªÔÿ’Ñ”Ÿz«ºº t}TÕD• NJ·ºÛÊ=î†EþXöCÕ®:õ1S»–©]ÖWܪºZ«/›3z^å>T~¨ÞAw=e¥!&/”f¥4SÍuX „~¥2¹Ìm“…ªëÌ!äG7ÕXû#<†&5€/oÉ˨4‘ñ£fpâÕ‘?êÐ.SÄ\Õ›CPo{JG£šA×ÏW` =„ž„:ì‡zæ+ÄÅi¯¹oÞš}æáw[8Ù¹m.™¥æ‰y ¯zù£6½2‘ŠÚQ1Åg(6Z›¿?7›J?ùN½únLèñPà o4Pè'JNï©6œ}L¨â0¸ê¨Fä¤~”Ž’›ÌjÆ7jq:¨ &?ϣߨ0XItß4  `EVœ)¤&_Ç,£}àÝ^:‡1ŽÊsLTýâ+ÕXEÑÉñ)xù`Üç`òPx$‘ȘÝuzýž'c_åæ™hu{°@ã ÜúÊù«NX]Èl¢0<ùã'$«Àëç)´8?EÆŠG¼ÇÂÿ¿£ì¼Þo5WGQS­ÝÓ_Ô›ë¶0RRä™í<šSò)|þ<¤©õ\IÒÉ]9h“ÛR²‡+BWÁÿTâž0MÍŸÿÈM$ŒZ"Ïíƒø±šó~Ékyý ÉcŸÚÕ<‹“ É8ð#-?‚ú=ÃwGÆÊ¬N|Vq™›ó¿y9!÷㺠äU-K$Ç”9ö¤­èeò*{3d/Ô½´ádpá-ù¾Î ï §ÒzÖgõ>è…`åuÌCedÓ¾tçI©$å9Žøxó «e›=#¹£Ä³AÌJPçUHtE6ñ%¸Þ8§ŠjŒ–D*ëÍõÀM&´,—ööµä”i²ü¸/‘ì8üRPfÚì66j´ÄÜ(ÙÉ™xøñqïuT'ÝèH;G°ó[IAJbzS)Îkýlä?™}ÞiÇC³ãÚ9òÔ^’×2Gvq ¬…GXC—¨ƒ‰j>^)Œtýã‰I-é¯5E)‰ÄòÊÛöwûV’#1œ²C¬èöAFH{Èþ$×å5GÂoÃþ‰D áñ–óÃWíÑ;Mìý¿©µ3O$­wüè&³®Úr¶·Ý{mcyÕÉ륶l*é"[°*·™™TŽÀ%Ä3_ÞÃñÿâÕZe ™SPÇ».ýñðQçÕcÕܧKèýªlÐù«Øn:·‰ûØMâ†Së¨Ú&g°>a ÉGA¦»¤w¹=T2µOï0wô½Å=¦þP½GîvÊN㡤S¨7e„CŸ¡Îª½¦,Å0eÌ9$f:cˆzžMMUíõ]zCÏ¡ƒ% ~my>^"sî||p28‚Ŧ„¹¯—|¿œsν¦¢¼ô üØNÉþèµ¼á%Ê öŸq é©ñ7¿ÛÂåN,èã|óÌ8\N±(4âž©ïH…9ˆR‹wP((À!I>:à;õ¸ét²9”a)H4ŒHJJW—óMpè(¾ö!ÕDá… i}äo­ã}Îoê’)Œïk„v-&E×°÷šÒ"j ¥HDõ¹þ¿ÊxœVƒ7àÉsñ<äÇ_©öÒÉ®#ШÖ2협y-"ZsŽ–PVß…wl~Lý: CYä¸ûf%¾çŸÕº;>ºŽÙ Zå’Nq xÔz] ð2>éÏåMÅ2È4 AŽßñ] ¨¥¾¯¾¼~¾Öí~äB½P t|Ÿ¿‰u'g•,rUnب6Ÿøq5©(Ë1–¯‘£¦À?¿E¦8aÊš<ÿÈ Ó¯”¼˜Â[Áêsô7‡–È2‹çÈC¹ íÀ Á+SàÁ“Q¯=3e Aêàg÷¸iàv¶ ßàiÜ™÷O‡·ÏÅox!ô¯´—Æ+ä­‘õœ[jÉ10ôòë ¾Ì{x9Öy=ô³zÑàžÂ£—Gá,zð`ºüÑTªÉ/hcTo¼Mc÷B §ÊTð#¡õå&àGCöCB:Ìe¯3ƒëÍsªª6äÍlLš Î)”ì’Qö$—±²Âö‚Ƨ³;íz[GÊ ›ÂF—Ó܆ûs(YÉçøRÑG¿ÚE]rcàóÞÑê %¨øQš;c¼ŠÛ2[zÙhÞ!»Ô>¶Iìr¹Ú¡í wã«<‘RÇÄn_$ðã9ü\LêE÷x"4%§dóò ÁÔ·—%ºgÚþÖÚ%ðÓ$Ÿhß³cßr4¬_Š ‚t£ÇfF0?Žª¹zŽˆýÕ‰ªRóAjy[mo©-¾àÎdÛØ6òÎywl^¯ƒÏ¼Ü¶M-÷d¼ð"3޵/è˜Ð|ë¼ñòˆ¬š}rýã¤S\¥ÿ—üH n«î47­®¨÷Ûådu˹ƒÝSn*÷†³ã‡ª8ãô S{8 ¥Gú¢»SV÷ô)sS_Õ¾îuá‡ê=ro¢ÖHèÕO¥ÌNó—º®Ž›R”Ét€—¨LõuÚ^?ï®fé t›^cæŠCÁ:ðdx€¤ævšvAZhƒy­cž„ˆ¯ÜƒÈUPm!ÖÃ!Ô}D™  øUQŠÈ9¸5í0¯Ldš·ßmá'#6SÌs¤ØE9¨Ý5ùà¿ÿÂïŸÓeʆ?µ½ƒUZ¿üN½ŽniºOm¡~~h¦ÑôÂ$!J׌ýf8ªc`]QÖ…ÊØi©Õ‚oÔºàtSLV^Jõ©$¸û­¬J?Ó*ã9r}y¤…'péÉk-F ð鲼ш¾ø•jUf8NáÀ‡DAÄ) Š¿6[—–Ò`I[Â9;GëÛÁÙ¹tÄ|0ëèÃWòÇŸNR]Êì…ž.GþHÉÄ¡ºm‘?úpzŽÀû@ñ ìÏà)ï‘?Ö‚ôc©3ÜÂXꥨ_ÔÛèÎ0©Åá]ÐûÔÈ}Má²ðFþùã™°Ylzð#kÐÙ¡ªü Iewâ[|ýÁâ_ÌôŸî¤ärÈC “û¹?ÖÇ䘲€'JD{DÊCõO£F ðcZœô¸Åw¸-ÇDOú(ßÏ*^qSaþ‘å„<J¾œÎóLÙ†üC¦Øk¶„ÕËë ’ ¨×P8æ÷7>ËÇÁ®…Ðá\úó3l¡Ì{Š ?±‹~Ljƒ®.“ßÑ·Šìƒü± ¿}.}¹—„·ëÁ†¦\µ#Ñ$9¼æ“ëç œ¦ª…âÁü‚êáS3c·Æ=h—NL“5öo{¾þ”]cKK+YfsÙrã2ŠÃ ÓÅåᜑÆ×ë®Î¹ñ¹2æt(5‘|”Ö¬À¼Ö€Ÿ/hÇÊ%écãx¾àÇ›ùƒ¼ãr[fÊ NÄÝù5øáG­MJóñìvXµM¿4è hâRIüqÕþjÈ1©i7Ø.6š]hÚEÙv¶ï8‘ +aÿ÷S,zk~‡‡Ù̵Po4=ivi;êgîJ>o7’QY%o¥ž-k»yÞ[[ùc<×ñrØŽ6 Úí]²Â¬†‹™È8¥ ÉÝ:ÿÓÇc§½Ê<2œ,pùÿ®R2änK7–.¢ßªâAù#™›×áÞvó¸1~ðú‡¿3A?¼»–ÒPŸÀg+ÜWªº:ª÷ÀÕèWNsÐÝM¿Ð2ðc& ¢?Ìr3T­QSM ªiÊÁ­×¤q:Wˆ*V ÕH}ƒÞÃ[v¥jPýf¼€Š`UÞ£þ´ž56rè>SżÑ_žÕøÚqÍݯèü1øðc´ùã8U‚‚ÞƒçÍO†óqn馉E—LŒïÞµÜù` 7gÌq*ש<ÚçPYøäÖ”“£#dåc”•Æ@ó[SZæ;}.éÆFj…5ºöÃ!%B"t¹´.:’Ò xØst–Jrž‰\QÏ´SßZÇKÖjŸ ÌW­ ¬3¡çgŒêBùëqŽEù¹ çJ¨šÔñ¾Þ‚)OMʯÞ%O½†^¥¼H>hÝ\ª…Q´t DŸ@#ut}šÇsä`ggd¨ÀëïM_’¯ä6Ž«óš]àÇD.„ôq“†Pa$´ä\/ðJ4€3tà—ÇàïßPà5•™`i_|Ò0£}Ü/ïNŸîþE(€5² DÊÅw¨6ÍGÆXÉ)%òÇ›ÙF‘]\Rêå÷”,èNßìËwMÓô‹7s¯™¨`Pf•ÜÆ³i+uÛve(eKEèÕYžÊéE#“ø ¾=žB…£#™­P‡?«¸ßõAë÷sô©%o¦g¨³Mªâ'ÆÙýðºÑ¼ŒÞ9À™¤´\æ HH-ø ¾Öñ:$¯¼ºçgõÈÞ wŽPM¸ÿet›gËßò«üÎÏù¾iÙS²ê<ŸÖžàÖ\‘kðvÞ FE¼Ì|Õi¨þ€‹šÀ¯yJá3ÂËn`É&ž²ÝþiïH{Ä.³í¥†¬µÝlT°¸+O`‘ èÑ(N÷Éõó©ê‰û–*#EŽ ?‘?ʘÉǤö•-mÇÉ)gÃy{ìbû™a™|@í;2IæqZîÅ, ù$•7yM¥àöåS‹ôSŽg0Ýâõæ'Š/×l!Ь¦½ÎõDþho£ØY6™í/TI&ál|‰tŒ2R$šJïÍÊ`~\Wô~ó-ƒëL=ÌZIá…ö¦Ig´ÍØhå(o¿—Ê+é³k¸”—Äv²ÅÄOÑ :l–Pj‚DœñåüUU_å ™;PLjÿ’IÔYåºÝȺ¨~Ä•N·ºû·ûÎMäÆV?vwÀ%g²¾hšRÊE>¯¸7TMuAo5G‚Î_i÷îÕ;âžEZgêA9Gѯf“i¤.©Ã¦4e5Õ‚®Ÿ7ÐqCÔó¢jŽš§Ÿ@§~â?¨&öqkž‡ò“y‹¤´k* ftžÉc‡(Q’>¥ôôôÅŸ;û„7ÌÂyi7t/,2Îwù±ÔÉD†™sæÕEòΉöi$¯ О ÈÏg©¥Ì4 têHY¾Ërn´,ð<ÿIÚrŒz¢32wÄnMϧ±ÞÑ5 +3/B¿ûšBê[wq«ûàÇjˆv­#E7ÿª#´ÇOǤjü ع”–ÓE¤š3¨ûœªð&ó‹þÚ=åïô:¾3-ƒÇØŸª½&ÌËIô¶·N£µŒ…ËÍ‚ÙùíoŠ=ëü1÷«ù£ŸQ74GÈ £5Çà{КŸ©1ÅCÎÊ‚}3”Oñ>À.2aà¹Æµ4‰ƒøƒôcuê‹zÓÝq¦9ÚZ?ó@ `u$CI-¹Å_ü¡¨é ÎÕ¥°¬ä¢È]1‘*úòK䛦Ò?øÑÖ}g4Ú“–Bu·p_$ÝöìH(éüácËïö¢=>åDJÁÉPé-{2“Rbª6qÿnnm;Ú‡§q(>Áso” Kfض”É+ê”-œCªÈa΄1hÏ÷ø$ïà‹èuÝõ³zgô-¤ÒçXÁ ±¦Ó]ž -¤™t/­7ΦDb8eË4î'ì9¬ŸšüâÓ¬$3ø`Â~rý£ºêG‚™¸Cu¸$ø`^òAnM+³d¯d‚{àóÈ…š+iNàUz¤í´üøòîôqn3ˆ’RhýÎ9m Þdâ¥\XÒÉ9i³Ú rŽkBc7"< bË0&9ηMö\?¯â^0I©"ø1_'õÎÒßì#q¤÷mÏA¥|ížÇ™Å‘eðÎÏ܆€Y‘?Ž|Vñ´›™ô2%àX<‚ÿâtGËri& †³/ãÅBþ/+¸ž4ÈdO©-Ôô>ÁcSDû¬ž1(5Èz’âçÒ^"¤• âˆòÌ.µéíQÙe'B•I:» T®‹¹ÙÍÇù"Ç?ö˜DÁõæ:ÕTczG½ùýŽ”RÓ¼2wx‹´±álAY(ípû\rÂå¯Bþ˜ ³í0S®r$ŸØ²ãq7NFÏ—TgÝ7TŽ^B %,µ0Ó*Û°^»@NË_6¼·Á®³Ê‹n×ÉKûùc.2\Zdì§¼^¢¶Id>ºìÌjš>aâQzÌþ5~¤CÑ")ìe¶{m;{I–Éä·–È—¾6¹,Il/k%¾+> þ(2üÝ(x™EÁü¸­–ë¦3vj_ê ··CÖyOm;ä·ƒ’Ì6³ÓÀ½^^/“×ÐNâ,^2;ØÆ’Ûr.s« |ŸF3d® æà7öÝò¸ãôøäŠùq'—Êô¯Ÿÿ8¯¸µÝ4àÇ%•'èþÝÊîÏî—t:תM?Tí¨sX{Øó)hý\_qcº]•9a^êÓúº{Bø¡z7±‚~£ÑæWøÔô‡™o²©YP³òTÑ”ÂúìE]uÈ®üÔSƒÔfZœ˜§L´ü˜ï›ÖxÜ ZÚ™A«×™2&´Y‚z¡õSÊ𪷮2-ï3OÀ{_§TP•ôœùƒ(&]7/¾Û‰Nyºeú˜cæUg?øü]ÐÍ¢4 ¼2GãS” $&>÷7€Òéï½­¦“[z܉:À¿€»ƒ6Å ^¯øñ*º˜nÒad‡w f+*mÊ}óùÁ-N/õÎà]˜ÕÌÈEáÐÒ|ðå;‘¿pFÔ¨Œ½º ¿?€Y:@wèÒÒa“ø«ÏŸGPY?žRb¸ÝD»¹T… c÷=‚sKÓtE-ÈÍ87rQK«½U_˜©_}þ£“PW?âݳƒoPøº~àGÐ"¯Ã$æƒû» ·¸“MGÌc\¸ñi\ŒQ;Z†j[8•d?¹hÃÛxr–ëJMYÀùæ} ÿÍ/ø:ûcíÔùb^ºº·ÌkSœ2óî…Ô®B©£ƒx†üß[ ¸™—!<ç±ðàÀŽçü„{rTä IjÿgϺI ;ç$ƒZu¡k¯y™,JI&ƒ…<ÇKíõ’}\AêŠWà×Ô†oñ]ôg ¤ôº×gõ‡6F’¼Ø„®7Ùi¥þBËÆ#1”Âl4@Ï_ò>e_Il#›l ä¼ö€]më l´Ùˆ²ÔèÁF#y Äž™ܶIê± IôVhcÉJMÍêÅ l2/Ÿ]*‡¥‘á°+ì+Í.—ðÞ9Ù#³e$'BBŠ$sÁĆ&¹ù¨ÉÔ.ýÁ<1Ùàžro“òKF¯‘}c;Y?ðÃ×Þ¶åm6»ÒF·ãáFØ0’ÈÆë >1¤›fë'Ï®?úa ÷§nÔÃøKv/Š×G¦Èf)Œ¬ÕÃNò¼tH %í,nᥱ]m>9"×i<å"jDÈ[ü“ ÉÝžÿÓÇ[§®JóÉýWåTÊ}ýü®Jâvv èFúMÐù«ÍN7‰ÛÓ}çæq£«{;ËNg&\y-ª@áË]sÙ}¯F©«z“¹ôüù õµgʾ}>8ÑÔ¤#ðÐ-Œ¿i®V©Y¦å1yÌESƒúé$!êyuµIíÓˆ8*^ÞEõ‘?rSzãps¨bCŠN½ñILs>õDŸÕ†ò«°BÿÎS º@÷?²!åä㪴ÏDĪ»kÂ}7,rŠCåšÃæ5æPŽ"A÷ïŽ?*BUŽPv¤’háx<ß}ÿU;·0¹ÜYå<ùÁ;Gõ$pâ u¹áš{")\„ÎÄ‘y ·Ž© }£Ö9§ú`2ó^øú\ xàù«Àó“k©.òG.ª ­xŽ$±ìX‹‘x‡tQ·›¨_}J%¢Š­³CE3ãs3ÒjxÁ?(%Dry=íÖõmžÁ͹þ¾øù'½0û¡D‹‘QþYm€“H×4Û)%Q–Óñc°¡Úéµ®Ê÷ÝêïËÓy8¿¡<<-œˆý>6Ð, V}Qï ;5èüUø×%àÃqd³9”‚wr),ÈÑlV9ȵ¤!3 Öfƒ:¯âKÜtíÀ %%Â`a»[JÚMö ¯á’ò¹+çcW¹ºykÂÊzéfßJ™.;m{[rÛ=v¡m,ƒdªm uÞƒÜ3ŠCÉ*Î…D•ž>¾Íc¸º÷ø†„1T_S sÆsmûÞV¶óå©t´1½v¦}„9YŠ´tAvÈ(çÖ? ¿©É`2·/“Z£ß™8ðŽÃéw‚·+-‰¼üö4ÚušÌ>³mm>¤£$v´<–V㿨Îã²ò#S‡–™9Áü8­Öê#¦VÔPxº^f·äô^Ù?eœœGþèdÚáÞ~/»—Ü«iý¹"RH7[\®ÉyZIóÍ,ªDíÁÌøÿ+ÏŸ‡W-UäOÎ_åS!»‹õŸGrå«Þ©¦nT]Nz¦d©“ÞêVt÷Ý¿ûcgçÎ8CõeSŠ”Îí¤>îZw˜:©ç˜#z)~·]]þ¡zVPegÊb†Pað£‘:¤™¢tUÇ4›Mej¥³‡¨çÔaµM ?£Ð\ªb -ÅŽ*JIͬϓԖRR 𣨱foêÝrýuXú…n#¿n‚džzjvàÓsùƒî‰¬HÌ;ž.†àúùV'E¤È/ÁµÍT®&Z×^º2‚òÇŠí8J½(·~özuÜœ`YOèïT2HØ©áòSb‡áüü„£ÎhèÏPÕõÈ)ÍLqõ­ç˜Ö;Ux* -n 2® htÕ”ÄìÎAKRVú• zÃÜv|ÖBøþ_“™œš¾23¬>¸‰Aµ$Ü{ÒŸ6Ruô34RÒ~üôAÝP4å78çÀóLCè/8¿ÃÆÐ²_É}¨ºš9NQx\l4´g$’V_ÌFs.ºEã~”ê¹ê Ú¼ùc4æ~ >mº~¡Qo—;Éô†«ˆÌky9FêÒï:ŠÁ‡¸0<ôYÙn£‚7¹¡T”\£—Š·Ã•?â|‰¸Ê=®ì^5±©Îñb§šMù/øšýj&1­æÃàÚ3É.}Á¡þ6žÍa·@óÛÊ Ùb‹ƒ3AúáZ!e—æKŸ¼Mp¶ru:®…1LÕDh¤‰À{¹Õ^;Uvƒ‰½v™½ˆ¼°´{ƒô±NþƶGþèÃǨ¦IüÉ ¨íú‰‰FiÀÑs\ÈT¥²RÎûÝ>µ ïGV¼?l6»×&¶ãd/rÓCŽiã ,r^Tì¢ñ´Ç,ùäúù^½9b)uÁ®g‚«AÆ!²VBÛ©vŠ]à­ô¢y…½Æv/OA«ÿ°9åìÆ <`æQ8Ã×ô2DO üOU]Uä“뿨 ÿ’‘Ô5õ^Ír=]\¯Q…Pe“ËMçvt¸q\VG¨Ú1g¶~‹TBaoЗÁ¶ê²>hüõIíçÞTW~¨^týˆJPw“¤e7«ÌhõLm@ÂÙ¤™9¦ý¦“†¨çÅÕµ@¿¡Wð–µ(¤”³8)“Ž[#¿g£»& @&s+DïO|â m ]·ª™‚}¡;é0ñ|8g§½H/Ìsç»-\æ§C¦9jûÉÎs+=À8¢ŽTZ»’‚!1±òQЧ#|§â2·Là;) ”7à´¯d„öGÇ®ª½ …Ýô¬P|޽,1¹ÔÉoÔºçôQQ© Ÿ¦öÈ0³éš¹b Rgô³ ¸‘)üW~Kw¦žS¶ÒK°Ù‡çšäúéׯÍ)¡£À?gàaÐÇãðbÕÑÛàGLìø}ú7B–B§JñxdξÈ9®ï‘ÿÕóW£„º9†~L†jäåçHg…ñS 8ð hfP< ¿€>æpœœ§¢³@ÕÀ·ð¶ÓWÕÖ/ êAp†™)~bgEÿ~GŸ2ò5Î!•.Õº6—áZRC Ï)ÜxS¾Ç{xµùù“»EÿëøÅ}l"RSJÍ£À£žôþDÉ FŽ•Èöš²³í\ü]q¹t˜üxÍgP¯:'¼Óô‹çwº±ïk$†J®ÆJ9E÷yº“âìÈJ(_n½X^ÿ ~4?ÎÍ/¨KÐÓ~«ÀÎþ”á‹ûw‹˜ÛH¶Çi9üA/^DwØW:‚c8žXo†MfO‹/Ôz?ör'p½X¹yËÂã¯ùäýí“ÂjjЙÃëÔŽks^ci#/ž6¼M ³‘7ZX~øÃ™ÿ%³dº-kãËPð/~ ^Gàp`Õ´¾zâúðÏAi¹ŽÄ…ÃKÃO@3öâCßçËŸ6‰wÐî¶7l$»Qî[Y ;eF°/¿ÁX¥’˜‘o)/¨|±òÂQšKý¹ª)PØkc7ØFà¸Âè=·=mL{ÌÆ°#äòÖ>/JâÁyìuÉ5 tç¿ë¨Cz­éôo,$¢f -áE³M¤‘l@šYk×Ù®Þï–ÍãÕ³[9‡W×67¯Ë¨Í~³®¢67ãhÿ+ïoÿIUUŸÌ?~|OQ¾uÄ€Ÿ¯Ö»Yt½]¦½ƒNQ·€ÛÎ}ê¾Ua~ðý‰œ­Ú£|ÐçhÐ…ez´@‰9hŽêà‡ã^ÿ¡zQôExÓþ¦­ ªÔ´5eTj÷2”u®³ÌD¦â!ü÷?j«Õj­f¸°çTŽŠÒ9j‚ý’ƒr›P<(O§àHF™ ævˆÞŸEßÖqP)o§àGÞFE(º¼TŠ åÊIÌ]s™éùw[øØùΙ‰æƒIÕZOyÑÂ÷¦$XÑ‚~æ„|‘ò!-e¥ÖpŠ¿PbíóŠ[Ý*Ðèö4Z³–î=æ$ð ß.œ‹Á¥Þ—uŠbC!»R\Š‹üñ­™åª3Wå¦â¼ Y ”÷¹¹m£¯ûi@ »¥ÁðïÁÝt‚6 }@d²}õ9šXêW…Ya&¨qóZ†ï]|"ýmCJM->·Ï={B¿CÓóÖŒ¥!_áGO'·naNBŸ¾q‰_‚…ÁŸ‘7J@Ý/P5*ÍZæBŸ4gÁÈ.E&"…t¦¦zù?î¹ãÎ1ÀüPÈñàöIð{!¥çsÜEJÈ>Ym_H69ËJÔ,‰þ§€³o‹Ä0ž·™PŸÜíó_G[÷©QTŸ ò¤‹mÜc>’ÓJ.ÙÂã%ª]'qì(øúM ÒâeEJ¹ÒTâT””–ª¥ŸU¼ôþ’‹‹“ K¶â^ÉAi•e‚Ýjx×íCÛOüùWèØôøuæý¼§c}þM©u“ÏêÕ0.'C/¶QOî¼á£ÒM~Cþ(G?Ä&µûdš"x¡Ä·»¹+¸ö /A½üœûsOó!¸Ö`§£š‡™ŒõUƒ«±`íg”ý2ƶ?Ë2Œ½Ô²GCšÊÔýÕf’íü÷ãû á*É÷ÍÇ÷ï6S¯ÝÀ7F^@$•6¾heg¨| ;@VÊdË;b¯Û; Ò]Ù‡ ñZVÈ4v°z#î¢ò¦ )Üßêê°v#2ÐTºÈMLYê ½ö&Úqy(ð¹Á6;xÚŽ–ˆvœýI²ÛHr žs¥§xpZéiU0?‚;MW°·;µ„Fi;Ï{l[¾ÃQ6ÉXû»­è÷ÎÚ4^)»üˆgÛÙº‡SYÝL«(˜6õÔoì»ÿä§b|Âü*dWþyDU»Uw„+º€~tÿÕF'¾›ßíä>tc¹žú±çÏÏ:³ômx÷nì¼âFérî<õZ_7oõUýÀ½ñƒïO\àž¢’HihãT³×Vû•¿©N™M\³Ó§^úË=ûõ#§š¤†ë—¤ØåŠP?_äjK™Ìhß!¤¢F´Î3bΆ Þ#÷„Ž@µ)pãGÀªbe§á|µžÀ™FAž]¥ŽVq¯›n÷RoŒÑ¯È¤7y©’þüž›Ù6µwþ|„¼å:HHG‘4wæ³ Òt¤ŒÁ”\ÿ¬^Bscõ‚ÎPcžÊc)Të'­žó%»Üæ´~2Î.’=øóTö¨\Ÿ›ð2ŒÇ5-‹y½ù˜þ':¨.ȸCù1ýÆí¸…9aâËéf}À‰²Ô…BÞß4*[UúA·ãLíá?žóŽ‹qÌGŸèì¬Ü[HߊgS=iKÌbìÙ0ö|ü@é# mrï© °¯@¹ËòÞ>?VÊXPÿOä·Qp#uLOaaµZ‡¢„Øûãé9o6Ù¨ÞuÑ®°ïd.xTÜN¶åíjÏΕ0¶µM$¡m w´Ô‰~úxýüŒòÓ¾¦3üEÌðsHZx‘½y2A> ]±Ym o¿÷Èõþ?*zIí ¬³r+j‹YÇZk4¶ùò¤ÿÇs§J<2gœ|*dw!ýó0êŒòqû»at)}Wž¿õur! wÜn”oÞÕùõc‹3\6鑼=Œj“F·rÏ«¸æ‰l|õ“~ÿÕ~×~?òÐ(8Ýæ™±jž:~ÜÑ®ÙRµÑBÔó’j š¯#`m?¢JT:¼Êÿ'¥3gh ݃«bšÐ2S΄6sBPïº{ù®„—AIƒi¸èq‹ž !Çš+EkŒÖ‡àþÝñNºbf™Ãæ9ß*Ëøo3A-Zr^¾LeøÅ ÞAm(ÜW•ùÓ£¬› ¤ìõ @O£#odF~KÈ£y"ª¹H\»‘”Ÿÿ<;P“Êšìjî7j-t©×&ï§&Püe§›¦5†ïªÍ¯Á̹ðzïAÀóx[¡~´Š»ÚäÕ÷¾R-šJ¨€ÉxúãGs ÖYÁ7˜ƒCôTÏÖid¼z6^I­@©䃑¹aï½ÿgµQNä+P­‰\›SpXžƵ¡\ùÃp$øïë‹ ’™ÁÊyÔ³>#Ù[?ú‡;:ëN0C‘‡|à±—À™?¥ZH+1x-§ˆrFnÛ6øVE~‘¥àÑ3ŠÏ3¹.ôt6­þñüGg÷™É‹qËŒ‘ŸË{x F?Ž.I¤#O•°vòÇ|ëZ“(PíŸ°ŠŽ!ÿ~‚˜ªÖVñ²®àøŸ[“7Ó#+þÒ˜éjÙlÞÝë"¹‚T”ó °p=ðèhx^„¾ÈÌmzôæüîP𠨶IÚ@Û‡±ö–ï•Aö¹À%® à>¨V}ÁË[GVó´OÞ_2ühŽÔۯЯܘ+Ãß=äõRÏF³µd»L·l[Ðîµ=ì`é" ìöoE"ž‚Öïåä܉³ÑÖàz-ÕyWqY~@Ã~¡•f 5—öö©m‹üÑYÖØôž‚¿…9Ù+§í&‰aû"FƒŸÎ7¨ŒÉÿIþȬëw&%Þ àf=•~^;;×N±‘Pãz;Ðæ²'lt3­]o“KVähü^+5…ÃÏ]7{‚ùqV-Ð;L{8±öðtCMRÛÊ4²{DylCï†wͶôªÛ\Ð+b‡ÙrUŸèÝoæ"á|õåýW¡U]õñÉχN^ý_ò#:¡<·µëédú¼*­ÓL)·¤;нîFtŸ9?vwò3g~hJ€òïLoz­Ÿ¹YÝ»*­yøVt}Æ=©¾÷æ¦Ï×îJB=M)¥jeÖ˜Dê)Üp&:¥“šk{S'QÏ3©ÞàÇcèé›@½„Òmæ}ð¹Í#šý¯ âUÄ-lÎèü‹`×ÀèT©?P5+`ý¤gtŽ.Ãé'€vå¥mæ¼¹Ž]tæ»-\é$¥ƒf® g?*'Ÿ†j i· ÖœÞ¿8ô; Fa-þ4Œþ…»»•À±Öô+zvÂC9rÃåûpxÖTüÌ8…¤p‰2òMøÿŒ”ÔPßzŽé€ÓZE ï„.çA^xkîšÐÄáT•‰3ÒT®ÄWiÝÞÀ7Scw,è,41õ×î•ðQ¿éløÄøŠø& d­| *v ”Ûª'ê”2 72R ä„¿žNXciÉW¯ŸçÐÍL%çYœ‹££gèz—ÿàL|† ¶¾ –)¶”Í&ëq§¦€ÈÖÁéªp,úüDq˜ºìÄâZ¡Ý¨¾ä¢JfäNö…ÍgG¢u›l÷¸=j߀6Ë5ûV¬õž?=s ~}˜ ˜BNôJ«é—&²mzÌÃLþ€õ=PB]û÷â¡Mc»Ž¡¼eð¢Ù6µD…ø€®Â?Þ›•tÇüä7Ô½Üx¿½éLu‘mŸ?^ØÎÒ[fËE‰ìv²ÅÜÝî[ÙÍnïp·ª­j›‰¯\¡™tʬB2ÉŒ„òRgµÙ¿}…T5T¢@û—¤þÇþáþÐÎçƒS^?Vyž_¥vÊ8ÝNB'äO®ÿ8ì饯˜ò”%`ÿö°æ‘“Ý«üõóAŸÑ—œ³Šªž¾Î>ðæ0“9uv¥©¢|Õzó)“ ©47 æó«üª‡ê§¯@Q^@Wë{ÏŸã#¸‡ñ‘^‡ÒeÌÊç¦)í5%ÍG}$åù9G´E;CòrŒ®ã”j•NÁ=P&ÌÉ7˜ýÛwÞ]Áxÿ1Çž.™…f¯yª=IÙh.Æku´ùªÄ¡Qvkðx4ŒüH;‰ƒñîÙ”\ñ0àÙP_°~ðø%^tÒáþ¡¸‹Sà[»èÏ…F7á<Å^µùÝ[6ÛLó¯ÒBŽ‚^S”øŒWc´O¦hºÿåå2÷),Èl7RÊ\Mïy‡Œ”ªÒ’CIw…MmËø€çWƒ$®½Òü ÷f éf5Ï6Ñ?•·ÀSAu xâý¬fÎWvÉ@xn΀çWcm$[ж£m?PÎÛÎVCÉ]yGB]ãð®È?Æ««ŽæÂ¨ÝhøGqšÍ-(]Á ìi*“m<÷º½iûÑì6¹n“ÛÄv2²G4”ø½ý€2˜ÌVäP«´úÈŽôä‘•pƒâÒÞmc÷ÛVÖÇ>—6—ìJkÁ2ñíE›CrÃ?¼çî¦x˜ 1G×òkj£žmZÓ"Œ¦ô§‰o˹sвֲHvÈs8e^w{ÂfsëØk\ÑÍfØÆrR|¡eÞï¶jRqŒ ØæÜwæÝóU%Љƒþž‚*¨oíƒsePGÕ;5‰¡é«xò9¹œ9àq<ßìPúŸ/Vëµz3?h¯ Ý×ÇœLŽ¿ŠnÎ1ôIç¤ óSõŒ¥S|êoªÑxäÔÖ¦§I§b8wL Jnʘ;&=RdðÞüäSóq¿£ñÒÜžZBëæ‚2Qfc¹ í§æ!h¾ùÍìÒ_§Ò ®Îè`}$ÁõHoçè7Ìý¼ _”œrHÎL;Í3cha0Î?¿ïÉBÌTóÞ$±Ÿ+L•@«ÛS)°ÌmªÃ{@b3QÓº”,È•¯1Nz ½ïEב43/ÕƒÊvD6KÊçA»Q×»”½'/£ð¦©:ñ²®z:ªW&+oEÿä Ùô¹²"ÊžJ5áÅÙ‘5+Ñ–%vÓJðǰMhž`Bë ¾•ȤêêÔôˆbð¸€óÏ7‚ú‘½ƒÓM£}àH2ŒÛœÕþ‚FDêó‡ÌÒ?Òêæ$Üh…Ï>CeÁÈK‰â/ï"+¤âÐøMü´5—æÓ8èè$Bíõ#õuö»ãt‡”qlç©àƒèÿÕ”%¤‘°rGv#›¦•3\‰z ¸ëHe%÷âS }&µ)ùÕ}ië„F’*EIxOÅtÅXÀ!%ºôæÕòA.K1;ü±3ËSüŽ”œÁ .!åGƒíüêùÕ '(p?4?ê×LúšWB­jrx`Ú´îUûÀ¶•k\OÚÊ~öæƒü2£ê/Š®»|Q^eó˜bñ!$‰v<‘çw½ø8´­3IäN´ ìQŒ´–ûId{žÕ”Ëðr~Ìïùå¿Ìçó|fyº¨Ñ¸}Ð+M¹.ç‡$’óÒ}VD6ÊLû·a3Û¶·í$›dƒ­ þØ .›ËVfpŒü4ôùÙñ@åç$Çßç€ÚªI2ªÍÅMíK›ÃN’rØæt¯Ø[ð“øö°·íGY,ý8÷æ<ŒRSÐüù©½YÔ&–b!› ;ÜÙ¤¤’’×mkÛŽÖ_:F‘0cÒ`„áAðd| zm>NÅXÀ¿Snôë÷8úüã¶Éެ[޶„ž™k¦,5FÉ-àl™¨ å>m¥5ëÏO¢ä{^ý5)ƒü~7‚Ê­cÁc“ò|²Ð­é”'à´ãçD¼’vêFÚÊR$úR¼&àüÚÎp™ëæ­ƒþø¶´YžÔº§¹¿žÌÕ8&êÑdÔ‹¢s$×ï€âóeü×õСðép©©ø±Œ†iÇùúÙóg éޱ™w€Ò¡„øiÀÉ$—¼’6­Í-'¸‚T’íH÷ÒîjîÇ· ¨çL/Óò«±XÞù`¢SSÊ \‹:ŒAÿô]„”n'=¡ìÁËÀ)¼OÄì;\æÊÛÄFw4;¦’cœ‹;sú| fOuÔ ÅYÁ”ã¨üFÌUšÆQìÛÒŽ%Í·áÜóv§ 寵äšõ“×â])ŸÞUÖ!%e…£WýT¿Šj~<—›ÒciJѯRÀÍn÷Ùåöœg‰­kGÚÚö” cgH*»Â&”ô6œ$cÍÛ1&^˜Å´ éòËóUKôj3Þ ßÚì—Äî]»@FˆØÍ2m-ížqŸØRn]{Sº¹m›WâÙ£´™Nï»×lœ€£šŸ[a÷ï\Výèû«+ ˆDÿÐ?ª³ÊuZ8Ñt~ý!`MÉ.O^§´3ÁyæÄwâ|÷TÓ ¯ãžiúºÉK¿QøGó´V½Õ¾&Èï‚sNùÿTyŽöž¦1Ü:5§Úðlàˆ}¦µ1å¡*5¨‹ÞÉ‹¹ÕL5QGÄh ÍÅ «§i#ôêWs˜fÐaêH ©+í0U jŒòÎ;ÇÀ…étô,2wYŒô‚(õ"BžÍY¸"m5/L¨ßŸ_mò¤&3ÓÜ5A2 ÇPöï¨Y»€3žîC.Rj¸Ü1¤ äúG_ˆ5r²ÐKêO=à7§‘œfCù‹“áÈŒiù#ˆ{tþ"eÅÜWJÿøÞûóÙž?”†Þo¥6”“¼ûà^3 ¨"êÖô’–qu~M‹iyϋݽLyø°‰¨ïQšR¡t¸nz¤Ýt:^ēޢžëi—n¬CÉtn‡,:šþD[;R\ôàKÓ—B±þÜëUÍÊ 5-^xŠß_Ú»Bü‘λ: 3;3_@V‡ÿ—§àæÓ øé šŠ¼ôõÜÝàt0“ÁTÙà;p¯?Ö¢í¾œšï+{mn[@Þré*ÞÓ| k¸+¿â|ÚÔ6õ¿ºÓõ&”¢0÷å#|ƒÇÓMdèðS:ñxèÝ>)aý¬wÇÈš"2Ù9üã)ÒýP‹;6M™/²Ça'üïü-¦˜4¢Ì‘½Ò‚CËP$û´®¿Íëö• p¸Frž†ÿä{üµ÷.¦žôÕú+cdÌ ¼TæI;Ã1 †«lF{@¶Ù!r ü×å5æz¼™ßpD‰›hÿ«}žòªyO1 &mÌùÌO®À?Èv—Uð¡16ª¿kÿ’á2ݶ±>r‰æo¸ó8b3®ˆ?þ€„áòü÷°¤Çì¿@ý8­}c›Ù)Òüò‹{Ën±¯Qêñ¸®}WYpUZY€l“Ù¤4Í>Õ/›Z¤ß˜ð øÑô‘G›LTKR¸ìvF8{Zî¡Üæ6=kCÛÖòB:Ù,p‰Ëáùe¢Gf9´æ“lV»ôFÓ#¿;æYwøGj×qGJ/qQŸ™¶ª-îîrÉ­ä–¶ý¹•›ß޶ùÀ°‡iùš•T›*¡Å‘ÌÏ}áúï\ï<Õ瓵îy²ª¯O> î•@ÝP¡œ>NB]<_.`ýy§¤ÓÍyå¤sø'÷/9è駪‘35’¹è¤w6ª+úŽ g|õ発ûSåYý3¸¿© mjHµÌSV­U‹MøGðÇïÔW VË3¨åj¸¾ Á=¨tn ï€ªŠ¹þ‰·æ'P¸1_ÿqÅI ­ÚˆúEæÐèKôœ§È¸QXé`Ú,îi›Ê­&g¸¤4õž“ÿ¨Íù:ÜðÚCú¢¼XÈÁ‘‘Là^NâÕô„WÁ=òB}•<±‹läéY¶©¼â1üÑ÷º /B_Ãa¶ñ’@ü±üñEÄ}x2-ŵM(ðÌif]èñFøEǦ¶»¼{ Ê:Yg;œ¥Ò–Gr|ÐÜ/ð‘Vôy¶æêª£@%×Á“¹$9Å¢P¼.ôÒf±cåWðK*÷=bßÁ“vÊsÒ’¥põ(Çä5ia&5N?3Þ^IS¹ŒQÜP¸õílÛØF¶¡lDרލëIûsCÛ˜¢p·#° xvü |>Ðþ‰gÕ½Ä ¦¥ô•CÆ-ec¹-l3) –Y'7ì8Ù=þ¨î–³·¸”›Ë¶¶E1†î` 6¨µÂ8i~nG§犪š«Ï_6Ÿ÷ûÇçŸ'QWÕ[µÔɨÿÖ'T!åÍåà}°:‡^íüq®Ëže: 5#F§ÝtOw¬³Y½Ò§ÌcýZ_sn«Üýååè·(«½i%éFUÍ“[½P[L3ŠkŠ˜øõ:m°Z^ZíV áá9*7¥BH•‹y?å¥W:*· “ÐjSˆ¦™ &š™ŒòHÔ)(?1¯œ£\œóЀóšrP,.ßaÎa¼5¾?¬ádONd›aæ‰Íåø8o%FBâ]óÍq1"ÀíRC÷vSgÊ©Ãÿ ÄþNVht'xî 8ehZ@iÐæ„üOv¾‹¾œ´®w›ZÃ?r™rê{»~]GV IÅÀ@ ))Í¡çp¹*TÆÁ9BqIjÃuø2Õxü°ÇøR^k²¹~𱧆NE(O¢øðÚÁøÛsRØ€óãçÒ ]E‡– ü;\nõ¦~ð´¤9™.¹~0¾® ‚ô3⤨ã@ÜÓ®`ŽVp‹;p¥ìè¹+<˜§ñ{ÊÂóÀ;ciþ™M}´óõÛ½‡N/3‰ÒQ^à=S–/PäËÒÐê,UÉ)צ–cÜVêÉ!øËJÎó¸'ßáC¼ËÔ0徺/zhªQ^øÛ^ Öó¥±Ì’HFóläÔcò T#ü£‚„•ñœxƒŸñKðŠU ajÿWïÏ+¢Gö‘Ëqx:×Bý|d•*Fš#GÇwÛ(nc¹Ã•¥¦ørøGc¾ 7ô¦¥y”ø«õçeÌЉñ°‘êðpž@yòs=ÿHì³ìz™oËcž+ìôq5P×”øˆ.3×¼øTÖ$ü. 5¿Gí1ÎR?s‚7J{]²€’ÚØîÖ_òÙMv¸)›d!ô4-ú²1J&'9wâR4þSy}Õ'ÿ†„3ŠJIm0ê6ê†VÞ°YQ£Z²Ú¦@kXrãÙsrÔOÃEáà£é 6yM½@ëÏWj £n(-á& ×–VðͶ…}§¸hcÚž6‰]e=všL‚¿Å—˜6¶DA ¶ ¾4Sèƒ9ñÉ?®ª z› ’íM™©ƒéòkl;K3Y(Kd¹­g“¸»Ý½ ¤ßìE^î&±ÇáSöO\bæÃ?ªÂ#™Ÿ;aéß¹ŒêÈ?žz ÚMñç®êŽ ïÌpèŽúEÀ÷»«=¹òð­“9a¾{*DÐ×!OýTP€â çYóÔÉíLTõ£Í{íçÜU_ŸøöŸ/G?¥_©—ù)p*µ@-¤n«½¦Å2±ÍIS††óüØj¾ê¯OPHÖÜnq€úƒèËSt#ÜÜPŸwt½©lütpÖ܇Öou(ðKxÞ‡²N€EORFze<‹\Ìð+í3O‘>ošÇ?¬álO&ºmö˜3Æ»Êí4p+rw]è~ojð\ÿwäÇx˜Igi$årgÛÀW''iþZÐ øGtšRJU­j {ˆ¼_ ¥ß©¬©¢¾·ÏYOGuÉäFûþ„ÍǺkJÂÛ¶À9Bq{ê ­ðð Ì£}Ð!ïÛó—ð­ð Î?¿çI¡#ÓJ -I@1Þ•áé^À¬º‡ö Ù÷áÂð>hoGzo|÷ ²‡AøÇ4èZæhf!7…g?†ÃV…#ƇSzŸýß„ç¥g-3‘¿Ÿ€¿¦cî.¤å¨ç&š¨ï³ºé€ó'ø#+øe=|!Ÿ@Î@¿áäÈ•›å*t&¹Ä¥‚lãx×Ñ/Bmßò%¾m~3M¿º/]œÇÆ¢3ój^ÉOy&]£éœ –·'EµÇx7·’02ˆÓxOmG¶÷ž¡•£sšºòÕþW)ТK¤À) @'é=/€¯àˆÒß®±©Ý‹H½ ÷ ¤­x¦7€Ÿ³Ÿw :¼3ÏWçD5{@P·¼©»•Žój$­e>'w«Ma½+©ÇË5ž(Éì”Õ?V‚X2Éj^f>Ÿ$°ÔSM5§ÜTV‹pSü±KÚÚÛ …y2Ûö°O¤¸=hû£Ä;²’MNqžÂ ä<'ƬDã>ÕmŠ:äx¿ðx ·/'ÏÌ43cÊNûжÓe˜L³™ÜËöµ7¾=+·ìǀ€?ÆÖ‚²“›Læó÷¹Õ"}ÇĆ2ͤ}|D7¢£RÙn/ØŠ¨Û6¹nsÛyö½lÃYbCÁ?RHlŽ„¹—†,ÒÌ@ë?N¨mz¯E›‘òšSdº%]ÝŶüw±ì’á61xä0.¤Û„YË­h[Ù ðúK˜9;Ì&PiidŨæÀwæÝó ¡j:1ê¼§¬úÑŽzß»’ªê–òžž_/ ØEk§§€ÓЙíDбxêç¾.»éY ß˜ÚH}‰@ËuŹ¢žèwp·ú˜Õù¹Õ–™ôä…¦ òEíŽÓ¤~w1±ôà J‹¨ëx¨[:xXPÐjÜƒÒøÙ3ü8Hõb_VpW.Æó©ýEí)*hÿ©™Cûƒð1žèº…¹ò&q%ðÂêN¥èøG#ød°fYʃ4:þ|â==j>zu= £zÍ7§k~p™>¸%ø(œ6_Cnæ<SÞË $Õ Bò§”†Bãpš•¨í-^Ç¥úfÿöÎS -¬µ?€6ŽåØR Ž6IžË Éd'[?¾Ì%%† €†bGñ9nÈ).­Q¿úþ*=Üñ"¨7Ï…o¢—|š4£H#{Æp}Üvʪ#ý Éå1§ð}0Í>C“(‹nûEy¹Í=Š—ÝŠ,üO£ë¼C†€\¶s,‰éδÉì%èþKðÒHðÇaôc5øÃnÝ~7f>#±ÎÓZ¢tÜi¢&’usœác2ľ“"HäÃm7Ò&B-§Û²LؼöYÎm0&C‹ƒ:ßZ»;HÝpòCa /¥*ž*™ó4“›Z›ÖΓ²Þæt÷´5n&ûFÎÚ(öµ,—¡pÌ ¸Þ¯-Lyóë§ö¦WgttŠHÁ¹ç9‹IC5¥¬ÛÄÞ´íá=)ì»Úΰ™í~xÈ*øúqË’Ó¾a?úˆqùò*B+}µYï4£1>¼ÏFF™ÛRÜ=a{ÊZ䌓 «26¿{~^ÝídOqv·ºmn[‰ØP›fk-.Í>ÁúZçß¾b¨6žX]÷”þÇß_…WÔ#5ÐÉ­›èËûïÎõ$pÊ:Ü÷N’Ÿ>ÿc—g°¾iª£·£Ó JgBê²Ê×ÍýRosžÿ¤wŽRÜ›ßXkP3ßäW¯ÔYÓ’’˜æ&¿c0Ÿ_åW#Ô4퇙§¸"åØ˜E.Ooõ»€• UÉÏ4£5&¿ñ Q}EÇ¢zàõõ´ŸÎQBÎÀÙvÖ~*‰•.JGÍ-sß,6Ç~XÞ,ôÚÌ5¯ÌÊ›%ç§¶P¹¿¨)Õy(ý!ŒýÁt„šRTýþåMw*£f¨ = óäCs(ÕBJÆ£‘IßCA7ÒU8HQ~MCqK™”߬¥ûßë²§‡ŠI%ùø£m£à Èè#è/$ü?h0÷àw´ŽVÁ=¢Ôð¦Ø<Úd ’?ÞyòêðärvždpüÑw84\÷Ý%ÇLÓId÷ÂÌZïì §óAê{k¦Pˆ ÞŸòDÖ ÌIŠÅÓAñᆋÖŸ{¿—õ>÷KÀ¨ ò÷ èw$NÄ0 %öBBµß7»ƒžu˜æqy JÌÀÇPÖbÜ‘kÜV"Èq¹L%÷¸¡t’5\‡CÀ“6ñ_ ‹LTí›ýÛ{9LLj…= ~t’½çäÔRQNòPðÇZIh§Úsð––âs¤B¿XøÇs°EJôñ u(ˆ÷ç(4§Ñ4ŘpQÆY™Ê饔¹ ›À å“ë\EÁŠÁ?&α/îßPʪQ^Hs yê FpE¸ÁNºÀ;eš4ƒšçqWAMoÊJ;_6ñd‰oWQjãÇi8R4‰ÜjœOåMöÔPcÈá |´\ü Ié•Ô—±¯‰NsJÅ1F½ç‘„ Ù”ŒêPfî -ÌŒì¿)öU9ŒÀÉiÒªõß)ë¬g¸J‡í‹y’vüÏûÚðìíhÒæ½€}€Ì_À±ŽQ~Þþjÿ•_§¦Pè­y`Ô4³2#úþ#øc?=×ãÀÛøo.ÂcÐÒ~Ô ­>þXäùÃ#¸ÂGîðG8}ÊD#¿ò' Üè&ø.#ê׺Ʋ¾6‘ãÉŸv—-åº.»å W—².`¯š`…³¼‚O¡Í©õ¨/Ê‹füáõçhµáÎ<®ðz oÜžqÜI6“½ ÇívYÄ %]ZÕç&¼ý™$Ž¬ä ž_õöT¼§¡|´ú;{Ï=פŸU6³ —þ¶»u¡Ï'íB¨ì9ì]O({¹=2MJÔ5÷ã¬4áSÝšªsNBpØêCµ$.M1‰á«àìdY*£l8÷Ú,n\{B’ºÞ§Nû¤'8³?~ßJÌÃæ¦ ù|.k"å«_™0`û¡t“›^4_Zº1ÀM¬ülœ½a'Ø4vŸÇ|.#l¸€ó£Â²/CÏBc\=7Ë?xD4ã/fb” 6ç¥=z¬… ”’Åαõí_îR÷w»œ»éíf›MËðÏF³ ±99ÄÿÉþ»ZuTŸÏ¸ïùåóG$µNY§–V—Òüc§§¸SÚç£:/ÕËèšïl…ºô0é©2ô´´YbÒ+?µ×T¥[:|Àû&Áüþª’¦è7PúTn1ŠVó*PÇ;½:@÷£ƒ?òÓ\“×ì ÖŽü÷£: ç5Ôr7m¦œSÓRº %ÍCÞsòa”\0!iªYÿÃÎô¤§“ðÇ&òÝÔoÕ=x¿ªÆÁI¡e zÊé‡çG s~…’ƒ]ÀWñçºÂ?rPTî„dŸ|3ƒ¶"ñ€hî¿)¬I¤–§,?O/;`—ïö˜{{ÈC§MSÔm Õá‡T†p~ •‹·‚Í_À±2òF5È·4>ª˜NÖHÍC))\l!îlq ÝyIÛi¿n£CÉ îÃEáÍà0sw¯~ âùU?O>]Ï\¥8ÐŒêõé ëÿþ“ÓrH~B=A·x OÆÏsóJ”3“úÒ$Ô~”å|MšËœE¦ z*/„eáËÐþµ”‰»„D•ËrÊF´±å<ב¶²™«¡'“ñZ(ïäûk¦Ë7ï?º:!éƒi@•ÜwñQ^Ç¿HnÉýä½Ì’|v°õå­\Q"Ét$…ôÐæ¨qGŽƒQ°ì«÷œ\¸ Ç ùÞõç­ø8½äÕrJúñ;î --î>·9Ýi²ƒ;I;¹Œ^|Kó=x×vŒŸáO÷ø¢¼ÐæyOGÞ…‘04sWJùS†rbðÇt[Àž’GvŒŒàù’ÀniVàv|€oÂábÈRžÈ?&zJ©(m$øöwO3žöñyøÆm©ªYd'ÙÐ6—}„_ú¿ÖN„ Næè²„áðÏüÑOqBsc´`8U‘’ôÂܧRÉ>¶åìDÆPûÀžƒ&?²Ön“0îCY"«d0(´?aïùQL)ÓùSýb«Åúƒyf2k·"ß(î*ݦ¼Ïo7{ò;œÖÎmÇuB}÷Tº ¯}žÚðäÔäCþ& Ô·ÎlõR1Wô%¸Éõ£äüåµÊ™ÿaRAešP*3Ö4T{ÕøÇýFo6©»þúÌ… ¯,j†j®÷Ã)˜«Q êA@ (’9•Þâ]‹`rÑP¯þú­jP×EçŽNJåÉ4ºj”˜7P:$ð“çØ†„–ýB+Í#Ótsæ‡5\á ›kn›‡ð‹U{À#­¡uý¨ RþUJÈ—(2ÿvúÂüpýàT'7¹üÕ‚–{Ï JÙ) \­+·…܇,¡3à§KW¦tàï=‡½ã™¯"zw!”@[‰n‚k¢ÏÚ¡f¨/×À ÛJë@;п×àqñx‘I§ý‚(í•'§OÏ‘é×£^Ûh%z++iÒ ?š­ÛiWfó.­m‡¿±E Ãæ£YBÌ÷$Õ­Íþ€ýÛrøÇߘéu(2<­üãˆ÷é?æ™<‘Cs.äÿÅûïöÉ ÒŽóõ·÷ÇœQ¦z?¨b5Ç廸ûgS:èo)¾fãÚtò€óICÙ|E1QreÅ^~nš™æ_ÝéöÎ#$ˆÖ”“ǃ6Â3OP!9eÿ…òvIF»Ìžçu\MÞò $…p| Léf¹ÚñE‰× ¨ûÜÛøð·z豓¼@vË,PK{Úfs_ØhààÿSÿù"ŸíÄ]©¿¬aFŒþüI¢JÛH7ÀC¥¬æ â‡4žÅ'Œ“?*ªÚ§¢9½ÑMõCÕ0€?¢;yœ–Î'ŽSýÜêúsž Úפ HôÖ”¢×ú¦“دBé?ê“úsU}ø©ò–8ƒ)>2 ½_»Q93Ü´QÛÕLS…Bš0æ°IIýƒé)Ô\ÕVÏÂü½²ÊÒ2ªÏ«áIáÌvZMBgMVZ 8ä¹y__ל›:*”÷MÀ¸M”†×QÚí¼J¿q¢p68Ò]Ôq•¹ñÃîðÜ4šÖ!]‚_lÄß@j7œ:Qqö®ü…OSxj•®C~øþc’•|¸-ù8˜(\(=$’r«€õÞÓʯÃíâçµ@QaMï¾ÿxᙩ®dpä¬Ê(ÍÒ%Sü±ˆjð#Ô±3´ÎËÁ`û¡Pëè1<.¯1quˆ ÚUeÖ> ´¼ L´"7j…ÞAóï‚XGè—‰¾X¡1 ¤–`“Sæš™ù¶´Ežˆº©9IžËzw££þð¸ö”’›Á?âñMèV~ }^ 7ù…§ÒšŒ>íE#hšã|Ýf_§“é 5Ës¹/gâSÔ„”sJ)$Çä(”&¿<æ2Èè¸ÚÊ\ÏB£_™1¦ûW-nìøjKY ‘Bw½ß7÷䨒EÆq¹ iOÙhq#qÁ$ 9üã"¤;‡DB=úÍþ‰ÉÑÂ+ô7’Û€òB9'“9²ô³'l^ðGQ÷o9ÍEäwYŽ>QÜþy~xN¨tç/ÊË‚¾KÈ÷pïêâ.^'_žÿh'3PÞG»Ô¦µÇeŽíG_ !í^þ”×½q~™D6p@û·ï„´¢ôèùÛÔ $UҦüTªÙ7ÒWÆÊ0øFh›Üî±mKÙ(Ûíë‘«héT~ 7̌Ԏ>?Eí¦.;÷vˆž@eDSWÓ–›¡•'mM;^ºÂ/#¸gíVûÄÆ†(÷¼l–²˜ÓñðÇü¹\&²éhÿ’Ùš($ÒÊZÇÊô ÅÒÌMa×£>‰í¹dgÙ&6½þèo`£Ë5‰%Éù#¸:=3ƒh¤ÙöÉ?¨}z£éš˜yqÇÜ“& ¶IÒþq[f‚erº;ÜPn ÷W»ü‘I!£\’Ç´¿#»rWœÕÊÿö%ê7õù]ÝcONåþCÿðQ·Ô#5߉¬ûèmž´Ë“Ñ©ê4tî:1œh?yþÇMO#} ´NÝ”ŽjÖqœêŠ~aêÇúºã§‚z§úýk­3eõ0É©!ýA™ÌlÓ^]SËÁ‡th³ÕÔ¦Nºx°ZžG TÕô¤ã§ÐË4È Íx7î{} |;¥¦“¦Í7ͽ&å=ržè0ÐÞç›i-üã2%§ÓÈû[)1\e?¥…#Ý1—Ìrsõ‡5ÜãI>ö5/Ì3øÇNÊC»è£©CÃPÏꜞßPehY,$§#Tbëïõô¿×0' 2jCôÚ´í£I™©…àö܈ bfÍD=½+åsÚCÁ㛌ßýRû§ø£ óžCì¤é zª¢ÐëZÔÿbÍ[ìOœÂß=ÉD×AíöÞSZ;¤ å)lÀjŒh­À?’x÷ÕÝtTY šÈÇÞ³› ý ð÷½5ãÈ„¬ñÄÑÍaò®Æ®ÏÉQŸ±TP.nÀ¥8<ôÝ{Â×]hüi´Ú»§ïÔ³+u‡ Ö~ß|¿{ÝkÆÃ½cáOôäd|ŽjÓ\hâNøG.9Š,Þæ…4’‚²Yü5EçYÜy|¿0•Í_ÝéNÎ[и÷Ú hïnNh[É&#è¯AMâA¯ö¡üÊð1PÝœp»ë|e¦BK6©ë_”xßÉŠÚ_†?'‡/täôˆÉ~iŽßð…]›Ìí.wùwi&{9¿£æp5¨åAÜõLzâå¥7ûtn‚?Ú w$?ž-¥‘,c%ïì4¨ý ™nÿ%ô—øöøÕ»~poåý_¦ð²@çŸoðW](5÷ÂL¨Âu8ÆóeÞ í¬¶­d•´G"gSØý¶‡í(Se’mlßñQî‚ûÀÛáöõ¹(}>;º¿ºè®ÈaxÕ•(”Ǥ†oÕ¿4·óàóm2÷žÝm•Ân’ ö6ús jž£ÇÇ ½yMaÓ(,ƒ…ƼœŒv>Ðyéœds“[_»ÜF´À–umC×uÊnÁ}Y`#JNb ÷QNzˆ‘ñÒœ´~p·^h†ÐzŒ¦átΗU®Ÿ%Ãå­”±¶¾Mï®tÅ-ë–µ¯ø7¯íbs×öÓŒè˜9M1㚟Ûáüß¹"Â=â|ê?Oþ@»™üÜKíW÷Ô'£.­·øÇOy§Œ3 DòjÿsþqÛ3Œ˜2A»nëð eÊ5ŒkB›N8'¨gß¿î:{ÀÞ½jN£¿sš>&вÎS™Ò› ÆßÔ¥f:xä•MµV“ôsè›á T®/o§"ôD‡_ý•."Uï4EÍ–`}¿+ÚO§Aâ#—¯ƒFGåýÈø~©>+9àî¢äkˆ˜~æàkxÞSüÍ ãÀ‡ A²P!zdºÐ ƒw-Ý-äõ-¦Ñ]hjò%Žwš!Ï×Fúöž–ÉHH!¨’æXÈ…QÚ$ÿøoø=Tº,Å4ÙÔ÷¨ë´g°Ê°«|*I»áFLiòîÁÞ˜ 4gæW´š&“Ñò‡gE€²$×Gƒ(Ue÷ O¦Ð˜{»© e¤wæ:%棴^/Ôqe<÷A/ŒDKÿFJ C׋úž âýÇXO2Ý Ì u¨ÁaùF€Çu@»r~H/‘rò ž<úŽrðhÌÝIÈ Óñc ¾ôÍéšœEfü4ŸäþQé 5?äRDÎÈ9$è<È̤¦,ݬãvþáCEL«¯îËp':oK0ä8îÍ›á‰GhG’bÐörZ¶JRøÇ ÞƒdÍ`’˜ðW¼R‡Q^øÇ—kOCèJä=Ã022EnÂÛè=o…ZµáŒÒÉ<½Ën·™ÜáœR_vpfžþ8ÌËø<îPýåÁ9Í[Š ½_G-á cÉÊ™,å¡Â•ÄuÇÙôö¢,°e ¸$•õ“ýŸÙúðHÈ=}¿ëÝw<ÆØDŒ¯Z ”Ðæ¨É 6êaÅÖ»@Îi“ÚK¶»­-Ue´-h£Ên´b G”ƒpëÖœŒ†|*o´ºíüÂU1B‡Q É Fž/ÌboÙ_m_øÑR›Æ½õ÷qCÙòÔÞ—¶'ú0:wAí†ñ^jdŠÚ¿$®:¤Ÿ›”ù"–Ì6 ¨¢$q  ÿg*oÊ+[Îv´ÙìiÓ$¶ŽM*dCK¢€ýwsÓMxEú¼þü¦Ú¥÷š)´õMÍ.ðG8w”Ìœüj“ºÜû6Ÿ[üQÁM G©"þò©é€ñž†ð;Hó½}þ›—úâüÚËžì*Ò?ôƽ«f:‰uU}V•RÞg)qœRN?ç½Õ‰ðݯr‚¾NyzêÛ¦ÔÅÔÇ„ÓYꔾebñu©¯wŒøÏ×AøGaïwx4ß{^—Yh*©Sj—iH¹MIóÄ4§a:s°ZžQ Rƒõc"Çݨ ’²÷„€Úä"ñ¦Ԍޚ–´Ö´4Ê Fy|ò7bÞDG¡ yÁÍié6=¢Çp¥¨ÈÏe誹 GXežþ°†=IéžYeþH%áH…h%\¨=ã@jˆdv‰ú,E„î?€B&Óï~P^{çWòpS(°—¼ç†$…ÆÙã¢ìô½‰ÎÁíªAsÇQyªaÒ~÷Kí«ž9êƒ)†Z5),Bó>¿ê‚2Ûs®G¸)? y ¦ÛȱÏÁ^Þ¯«¦šøA¾¥yçÉ¥cQHÐÁ ðÇ´0)Ø(44ñ2Âu=DèRSÎÈ àÞ÷ôD—WÀG¾-m¤'‘îdn‚?¦pCŽÆ/à°eÑo‰¹î€/8§ù ¯ç%ü }8ý:}:ƒÆÓ4}ý›ïw·9óLoÊEq è+Q¿€oÒ#%'–¨rVØx6;ü£‰Ô“u\e&d_þ›µ¼à·¦Á7ï?::þÈí@>ã¡«Çy¸t8¿ãä2‰GŠŸ—Œv‡=E.!Fpl¤ç7ì€pþäÈT”¦ª›_”è®ìç¶ÎâzH@ ¤˜¦ŽÝkóºþè(78µ4–ËH1Oh0‡’k|Œ/œ_ûåþW9ÌÜ‹[¨UCøå,zÁGe ´Ý»£zTwºÍj÷Á?þ–}ÜIâØ›hEiôó:¾ GMÀŸW¡-÷”Pý(.8ëÈô/.iv™ðÈv6„m*Kd aØŒvío;HfY…ö‘íð£ð£œÿNEŸ)¸³ºïD‚¼‚’Ô•Z”Ϭ Üƾ·5í© ÿ(á>‚Ú?´IìU9cÏKÛ[f ‡€žV£½ÝLV“éSý²ª=úh°f‘?Ÿ4õ©‚Ôw‚3ظ¯ïmbQ"ï]v¼DÂ}ùE"Ûèâº>ˆìöÔ”§fQ ï¯6ëSf8”é/üèa®Hrw…í&•¼ßèÊ~°L,÷{Ðæq·g9+œª%øãœ¢´Ç¬EªhºŠgN}gÞý7¯žÆ*ǧž9íɬì?ôDê–ú þvÒèzú”*†R¶{R8e‰ëÏ#ÿäþ%7<ô“Ú÷9.ž‰¬ã8‹Õý΄2OõiÇ8§ª¼“ÎäÓÙÈ»þ´ª›ý¦hi‘©@éL!sÃt£6:C°Z^VS=õG¤næVTjÕ†wQg iÞÐ: Gmi—)c®ë¯OÅêzåÜ×qÁXay]À3›HȪޯ‚OQÎ U‰è] bž™çf“¹òîô$€.{ׄåJ|†ÊÞ™ª í^È\Ñ Ýx=E€v‘dýáþWCœ¬d¹u£ `‚àpûú“»qÌﱨéc:ŽlyfÀ›¥8ßÝéì–§¿ŠB5ÙûåpnÜäÊòhë<¤Ì÷”^ ´,qŽöÐSøGTÎÅóLý"ˆÒ¬Ê©£ƒÚJñrånšµÎI實#º¶~/耖S'Ü•6 ¸æù¶´ÅžÄº¹ …ßæ}bðüªõD ºCévÐeª EÛÍ«y{À ³QëÕø=kà#ÛÁ×_·y·³À „ÿ'⫼•óàž6ƒ„@ %$»\‘c6¾M 5m!eÑËðkÏYnÆ"oø½©ýÍ÷Wíü¯:h„†÷©ä×[6ò1öLÀù‡àU…ä!)"<‹å‡öže‹‘?_]ø¢Ä§N6ôÈ> ´>ëòV(áY!-9Žüeý ¨!Ýôn/ÐM©-ǹ6¿¥^à“|€Ó8Jª'|õþü%G¾ÞI­ApSÈ—·H?©&ý8%üc­ Užo§ˆ?¶—Á25¸%ŸƒÇ…”ô2‹wz~Õ!àüæ|…šq{Ό٠ZÚÌVNÖÈ4øFL[ío›IGÙb3Ù’¨iOÃ1å,gò® ´ÿUaåçDãâ ÒQTNê€&fÒXnhŸÛ|ðS²Ì&rïXíºn"»døV²ÚÙè×´<•#ÃÝoRK“Ó|~ºT­Ö/Mx¸rzËëM!*(UÜpÝæ6šÍ ¿(d»Â‹[”“˰É% +qØá=” i§.½6k?ùǵI5c1žÚÌ›}ÒÖ½ûS–ÊQÙh‹ØðE6³[Çnáìn\[ÝV’wr½½Á¬ÁÈÊŽi‚³ÛÞ¿})UM¥ûÔ3wÁA½« ÎCÝWÔ('¶®¥*ïi[<Ñœ¦Î‡u<'üwߪ}]ðôÒwL)0bXhWtã£]gŽº«5rþK}Ãqœ Ö|ÿ:áøRiܛȕ ©ŽÙgꪫj¥iK±MGsÕ+˜ßïP£T-|¼^ ±—zó*ðƒ1Þói.@§Ã!‡7Õƒ¹»£¯h0Ôr'èc/’ü ÊG7¿ý)/òaxÎO{Í[óuö Æþ%i¡Ë‹ñû tïe‡O¼MÂX/Ç ‘¥~ÇüOAӑчÁ?"ÿ ÄþNQdïfÈï×á‘ñç R2üJshÝ/PûPÖËÈüU XSñ»› ß%Í•žq*ÕåÝTŠCy›¦ÒÓbú].ŽšýÎ÷Às«áÂ+àQÞšy¾)¥ƒz'E…Ó1àÙö¤;‚lY­ v¹„ÿ·Y—ÕÞs0ZqzdõNôµ ï3À—f)æî·¥ ÷]Òœ£¤¼™ ŸÐЀu—‰Í½_ĽˆÍûy!þqáIsi9jü1š«Ÿ¨¯O Ûã 1}ÑWIùoç èóz´”’ð!N%9¥Ùô6‹ãªR\VpaþHØûñKøM$êljóýÕkªywÞâ#p¤ø{{sx +óyüã°ä¶'ì6ÞÈùÁƒ8üCeÂËDNŽá§ê}QâM'5-¸hÝ"î̇èo…6ׇ' ²gmv7’Å òøUšÊÜ™0Ðg-wùT}%5Õ_îSÓø!ù!wÀïAy¹ †üåÝcÞiÂáfÛ-r†?.ñdŒŸp#-±%™,䋿óI˜s<ÕT7JÉ}ùÈ´%W@ÎÈ"weªý ¹dˆ,¶SóS@—7ÛîÒD6Ø\6‡ø‚:&€e®rbx~|ú|Gú©ëŽ€#ïaôþ&1¨’Ù…r[Ø0n>;QÊt[Ü}bOYã&´Gä®} í\YÊ @IެäóHEYÍçUÖ1ÔíPtJˆYu‡ãš¬TM ºeÑk=ìF7»Åβ9à#!ì I . QÂÈX×)…q[êóÉ?Nªýz·‰ñ4ü±Æì‘1®Ÿí(md”E`­Bîv÷²æ°k8—›Ó´¥$¢½I«S—#U´Å<9¡ÿ/ö/Qª¦Jó©gÎÀ«ãýCÿH ž«»j‘FWÖû•×­·y~qª:£Ò©œ?¹ÿ•Ÿg ü£<ø#4*„¹ç¼T³”c™'ú¼>ì„t~nÿ«Î}*DcLCš…QTÊ6eÔGuÕ4¦,¦ªyÀ9‚Õò_U5F‡ ¿€kT‚®C¢oLb\_ëH!©ˆ¡œy¥‡£<«Oë$TyÛ»çÓ*†ù™•nA?½k"âr>NAÑî׿L0ί]ä©C÷ÍsÒ„ášà|Ј'¦:”®35àØ|‰rñF¨ì&ÔûOŠúÃó£F9MÈpujB'@GŠúRFЇÔ:”ÿÆ<½Nƒ‘Ãï€*ò;°Iªa© ÞVx¯…žnªÕàýÐÁêhë5øv(ûÇKÊ « WÞBËPÞ~zFoI87quP;‹’J¤ÓB‘‹€ÂB·ÓrSzE÷èÔåuldïŽ\€'œ?ØôtÝ(Œ¦ ü££'‹®`ÎáÝ 7fzúi07âTüw£ í&àð–¼< Ú±†¼ûÕ,¡…zÏ7ëO9Í´)ß1d…ý{ÊŸNRÈ%ñµÉlN¹Àõ¥ªLƒÓ¿¤lHメWøž©`*~óþ<«‚wM(Ÿæ<ÄÕ‹Ÿ‚¦ðBhÉA)o·Ú#¼„ËÊsÍÐ’òŽ­ô„ä¢Í_}u×IOCÐO¡‘ÖgrC^K"#d«Tã2Ë^´éÝ6²ÛM.ÁïÊÉn®/ïÍ®<\G»«é/ßФ4)Zy Ê<•’#Þý¯ÊK7Ô"†;iü€AÚÄC$>ê9¾Ü$õ6à ¬I¼Ü|>c²›§±šC‘ÑŠÛPƦœÐ\5¥Å±cì]‰'£á㬶ì-»ÂzßV4ãQ_n‚;q(êÿ©¼Öê”›¬éi! )¾YGE¸õ·ÙíÙ#cm|÷*ÔÞÇMg7Ê’€~MË}Ào³ÑÞ®¸#ŸO' §6ê÷Æ¡ØÔš"Ë)™ K 7 ܬ3¼çºÌ°sAFìvpÑ4 a¯‚ºRÛãjîE,̼è´ò“úê.Jl…ZD¯xô¯,ø#†DpÿBk7À?¦É8 ÀI3‘šðq8`hxÂÞl>Ÿ':ÇÓRãNÀøjà=?Ø\3¡äšô³$–̰̇¯¥xk®­'ùeX.…¬EKçÀ?ör:8SÚ@ëÏ{©+N"ÜG—{PCé@ýÌBzÊ9ìS[ÔN’ý2ØÆp/Ø}VÜÄv¼·Û%™'ãÑâ¿øèìU4yLúOõ‹£öè‡&1åÀ %{ÌŠ%3ÝÊð‹nö>îí(»Òö„êo±©íh‰n›€=¢ÙŽ_ñÓbÜ÷÷¾± Ä›Îÿ𮜎Œ›ÉfqgÙQÒR|%£-gÛî8JE·“ÃÙÝ䶆M/÷d7­£f3ÆvcdžØæçÞ0ÿ;W(UR}ÞCï'¿Šùý#ƒº¡üTo'¡Î­·œ"rÄ“Çiâôvž:®“蛄öŸ/Rsà50òã`æ_×w0Î}Iä™öÕóœêG'}y%Õ‡);Í30ë‹Re3ØR¹ðH^ÓY¢.UÑÁ[yŸFÍP3t>ŒLÚŒZ’sֻΟ€]%:P$ÌóU&£9¬õçŒöd¦* šä}] ¹ÞûMÒ[(vIJ ýËBÇQÃP´Üœüa ý<ùè½Yd>˜´S;Ñæ­h[cšHý©>‡çË”¿Yg/Õ£$?Ü¿}¶Sµ3u!ïÙraái©%}4áÜPûÙ´ u :‚gPYJa*«ï}‡~Å3J•¤F¼š#IÏ\ÄnÞh™Ušêp!d½´’.£'ΠGç‘&FÐçpÁ?ŠP4¸ØŠAÞo+ÀÙbÀwzw‡Ôƒ4ËH¨F^JC©Ô25±Á)Û‚üþ*±îl^ÿ?âÞÌŠ£[ÞÝUK nÁÝ-Ü ,h ‚»»»{pww‡apww—ûî}þ‹e¸@þsÎ×ó Ìì™Y»ô•îªZT’Wq ù3`dQøxÜ‚£á»Çh­Â¼þc4¸%3ÏB N¤éxße4ÁlûÇó“îß¶ ƒ_Ø FJ&ï|HÃûÀ)å‰iÍ(縂Ôú.Á/á?ös?°Ç¾m㿳[í¿®Þî ëŽõ¢óEîŽíÇ,ae:p?œK  éA`w:y2Æä `—ëüˆ›q´ÊjgÑ{ϸ?bôž#ÿs’Ù܈7St óù•ÓÈ =¢Å½˜žçu‘ÝœWªË þþãŸäÅC](ŸiñÁú«S¨ÝmxÔfø½Yô’·Á”—žü„ñFil=Μ ¶"‰5¥d+__½Fû¿“¿vš¯ªÓzj\Ùü3§³m,¹#ýõ2¸f–ŒÐqQ €?FëORåM¦_Én‰Ú%à½jò ;üM¼^Î7+—A‚ÿø‘²ÛáPõÕõré9&ã4‘wD—€O 깯'ñÚ\ðG ”à58ýõ²9lá7õMèl0aÉ£Ôð "ûm J#ἆzZÕÓrB¦Á ,׸ÚK­¡Ï8ºzâÀ¬¡äôÂþï2á #^Dsä@£ñ"x™£T‰÷QøÇàÐÃU¸@`ßBrZd²„ç|åé¬ý-—äàÊÕäçáq(Ó/@•KTz*ZaU§&Â'"ÎsP(n ü=šzQÊKy1«Fpi¸†©ð ~×Tü1ßøèJ‰C¾ÙNF ÂLèúª4™îÛÓ¶Øm ùsSפÖ\ž/ÒJ ü°Ò%zHáØŸÿ<… iì§šÉG)ø;Ä‹‰¿˜ ¶õ篽@þûÂGM[ØÚ„sðX(¦ÐvB—m$0àÑøã/_&ÓÐÞ€ã‹>¿ÚŽáODðñ ªKùy/4ñD”5 ê½ó}"­¡ 4Ôìrf/Ø]ný¹¶òÂ,F Î¥ŒÀþ%‹\‘ãú\¾–óÝÝKà^QV¼³ÿŽÔ^v€pž5 üñ £·Oåå`¡Ý8ª¤Â_’PzX*éøå\\¨1}p:Žtà”h—uÎûg§us ŽPDpöL°ìV -Såoiıd”ׂ^\/Œ7ÌQFJBÛÏ€¦þüçK0~úPDÓî½xQíqò0ºŽ‚?úñD"ÙÿQMZsz1ÞM wdŸÎ’9“\2A6é0 ¥ßöŸW–Þ2Gój,ÙÀád-|CuÞ`'½‰×Úyá&Nð:é&Íd,GòæiÝ#+t‹Œç6W¯`ôTƒ,>Ç”ì2wÚ·;‘úøê:õÑûÃø Õ€7KnOØW¼UÚ«Ñ$2þc ¦ÒDºYWjU©'ðYPÆ~`œ¯å ¸³æÌÛ§¿ƒ?brEú»ü@ì4ú‹ËªÏ+¥SeôÔpÞ%ݤ4¹ñ¶ÈV'ÓÀÀþx³ù U´Ùì[uù­³ÇÅÀhëFVÛðT@B!Öqí§‡À›=ôµö‡'Úÿ1V^JM$¬Ž¤„Úƒ±êÃXðÑò7üqü±Û¶Ã¨í…yÙËN^lx¿²CBë-¯³½ý^D/¿WU7s1¯ŽÎÓ2bÏÏ÷ÛpÆõ¸G¶_ö„ù¿çzê«8ký¿® _¦}~Ibg›“Ìmâ†2¹Ìi§¼ãßGšÛ-é6w¯º݈_øüü´¯Yoc5jU:m.1&8çÌT{Ѭ1']rù‹Êy؉Y4Ùf¥jP÷‰ì@ÛÜYëLDìÔ6·]‡×™üŸ±¸3Ãic.ÿ^B;ÿDSi8Ϧ²ðH+©-ð¿¹ôm·eìzó9'b¾v×AÍ”¦o¤lÐO9i-m‚V)Jþ¼?ÒZ+ôÌΰ—>YÂu¾DtɰWí98™%”å,Æì )Ì/è¥åU‹ÆÂ´ŠŒû‰ˆÜ4`Ê`²]õ»m¡esÀsµærœü1>ÀAð(—¨=Þ-;tÚÇžtmôÍpbÁ©ì—å§ÄpJÕÀ·C Ÿa^UŽ^Æû,Gí—Ñ!º²ÇâEð!yÍPÎ×&=¢LÜ£d,Jò¤ôxe7æÕ0SÁçñÜŒ¿å¶˜a-©üØŽ% ?Æùb˜v#üÌ2þŽã.xá'jE À”ßÀg­ÃÇ{M þc6ýM 0ß{ÐpeºfH\è±](KàÄÝ…œ“a¬L¦D¼‘³Ãœ•ý_ÓÊ!Îü›Æyù*¥34ã›Pø/m Ûèƒ~iêÞ¶ P‡¬¨Ób>ɽÀæƒ8ŒD”öVÛiÒÃ{¥c¤'Ø#«žÕÎàs^R/*Qó•»ìƒx³Üñ¶1†S9À³ÁaAPÃÀu‡ù[ùF‚à?âh,¹Ä…¥¦LGºMñám*ãç‡Àƒl³ú¥{£ª}TÝ‚©ðh 9½Ä–Ü þã¸d×Kº—q1ð_qR~Ÿr13PkÚí,y/âm73°j/¼e<žÉµø0]ç¶@¹_8¼Œ…²Ïîù¼ê^YËE¤ì&?JàS<\8•¾1 ß‹wÓœEÛÝÁ©nFAµòôý«‡ÛŽRPWÈUžòÚú¶¿3þ£¸)–Ýg³S=“ï³"fwÚ:eLm ýY fVxØì¿ùʬÞüM±i¡Ušg+Û9æsÖˆv¯šÄpE÷à=–`D|Å{)9ðpHIº@þŒ—{¬ßSŒ°k?YÂY¾Óö ÝjŸØƒ”çƒ{'P\àõ8`HbŽœÊý†ªBá—%þäþón ÔÓ~âzÚæè†VL¶(å?ñ“¯Ðhø…Ãtر­‘„ÂÛ4ÍôrÁ××Ùf“óHõñwÑ躭B5i!5âçp$ Ù¿Žw!y1ÜÄ:0h3(¬i6š9B4ã¤6Ѧf‚agƒqŠbFºC¯é15ÍžÃí¸(Aé;Qg vÝîö³¿S!Š ·0ŒãóQðÌ ¸‡Ãœ\JÈVÙ©V‹É.+¿Ê`ÛKŠð»y/Ÿ´Ýl÷zz¸ûȆG¯å)Ð÷ãy2êØ^#…LâNrBVKl½¦A@ÑÒò ,½s8p7ìWŽÿ¸øƒówï¹ùðê&ð‡ÿœÛªè½[xþ±ªâf`ÿÒŸ<…¶óHé.¿Kw8Œ':IÓë Y¤íä/—¯ô*7çš\‘× ŒAð óxtÇÿÕÊW©ƒ–k‡^(Ÿ’#z¯ZAkI7¿áÓÐûõ/™‡¶¬®yÿÆcØÊôN.ÎOo÷^wŽºÏྯBë•–ÔÙn¡ÔRLOë/Ú8üüÂz] þˆ¤‹e—ž’2Z6qL0¡ì~2Ûöm}S:sLx¨ÑÒÔ‘ñv;žšHb þ­¬d³öÖ.š\wjX yàkrÈ-ðGöøe¢—v+·§ÞðÇZç€Ùk»;Fù3ÕØçÇ[¨H¹*gä2¼LEo?I)/—^á„^Q¦e†ÊÜc—B–†žK÷ñ¡À9ß´Ì_ZçëÉ`‡Ý•nqSÞì ¬¿:çûÕýÙ]á†5O»¾ÏÉþözà+mNÚ”6°›"Œ=í;}œ$˜ÿ%m,Û¼úBž›ãÖµ²Ù ºêR}û£…½{ÛþD?Ú¢ö[Ìîaæ»ÏŠ˜Âiç´6þ,yûÁDy€øˆå0ÆC—¡Š´¬tض±CMÏO‡ó½r]¸ ¿()ÏFo‚Ï>儯ÐO £7\êE{È6µM>YÂ뾯iø0 ôl&^ç08Ýž¦ùïïðwPÒ5Ø¿·4~>:ï†þDÄÁn%ºL-÷¡VÓàïÒS*ÊÅ]¹ ÄÇáõ›øÒPw)7z*ßGÏ¿Úíé0•V ƒXFJ÷mm°ØFjÅß‘Æ"êUø­EàŽMà¤õðN·i¸}í†ÄÃ|Õ0‹¢ÝþÆœÜB  ösP<¼’‰/P°Ùe¾•<‹ Í~…²kMÏìIhø™à÷Fã‹oªÚû”‚{×"Ïû£O»SJ¨äŠÐÁç¡;Jó3ÄÛÂ).bÎÂlïAC¹)Æ÷‡OºnºÝm¸ÓܼLú¾*˜±_T”ò(•A®smøEœžoP8‹ßù,¯ç;ö[åƒ~Yâ Å^UæE\¼Ø›vÐHN$yäo ke¡DÓ¹zŽï_pONÃ9ø>Ÿ:×â¬Tœ;ß‹øÒý ªb}Í1¸~g…{\“ñà¤öð ¼ëÞ«.O¹£ô”휛#p?~Ä[Á_‡áõ™JïÅ‹nW“Çþ3ÒŠCµO¦0rCúJeÙÅÑD½‰šFÈx­&/y¥Ä×ãÜ ˆ÷/¯G«vâFöíIžcÁ à?Úb|U†SqìY›B.K[ðGK óut~b]¥h/9'´’:ð0ò@”p'â"lèíÓäáÎ7nà.äª!U qRKî®7´‰Î”Ÿd:j;Cƒ ôoÉ>9®·Ð?À ÑŽW¸³ï§-dÿ~SßÈÎ ÃÀ¥´˜ ¨ÐãIëµ×Ç`ÈàŒ-ÚX{hFÝ«®Ž“Ôps™%¡&”PhÃý”‘îÚ!…v¿“¿ö´9ggB/Mñç°ç$«çyÝe¢¼–`¹¨Ù5wÛ»ªÉ¼o ây9ñ>•e»ù÷^Yÿ}„\œ“CÛ=ðÿÆÅNg§Õ›–¹îËù¯×_Et¶8ânrӛΘOe—/ÛÙíëF2QÜ(Ηe79âËiØ$ŽÂcÖ¤µLDwsÈø(øã•›ó“w^Þ¿z¹ékp{:ÌùµTÖNµ½œGÎ4û'5¶-,SSêh~ú¬ˆ‰œÁNã?wö0!®3o‡õÙS48SîØôtÅÖ°;͇»’C¬©km&jNéôÄŒ…`°ÒI:]ÿ3½V¡cà`;Èîüd WûžØ{v· C¯(3œw! s40æhhézœƒ(9/¡ˆPöóÀË >¹fyµ›‹Âq+ú ,qŠ2 N!ÊÔ5Z¸:X>µô$ZÃ¥olçc™éoùf:_QI”ª/Áa`ýK›ܶÎC¸'-æÀí“(é68±3ð=‡Ñ*­l*ó:„hw0B˜"aæl¯­?[F@i"³áö‰'3yßòj…F˜³[ì];&Äó¯&ùž»%ìuJÇ£€[IÀ³­PÆš”Šÿ⟡æ pEú†ñ\^2¦æqÐÓÑëýÁ¬SŒ¸ª£=ðm J’€?ÆpböŸv<Ÿ¾åãÀüìrVÖê}).ç¹®4—µÕ±Qàm*òy¾ÈßR]¸ã÷ãÍr/ƒûR^^‡x+P§Ô j;»Ìç²\&ËcàêSàq>ðÇtþÚŸÃìÄu¹ ¸ï²óã{/ F[E‚³è Œ>Jgx§ì•uQš™¿ó"z_yËä9–?e—á×4ܹ r˜&Q*ó¾òxiÆP>N§éG¸È%tƒ7Éb©*G9¶\ÑÉZHƒe¢>“°ÒObê!´j%0ó”o5¿F›7°ÏßÄâ+ã|1Ö½P‰Ëq¸é»MÀ#9Ø®{o˜sÕ}&¿Æÿ^ÆS7»œÂJ)½¬quô>𯻤Ëõ%Xn“<Ы²Ø î׉OÓ›Þ¾}.ÚYfnØD˜ ]üç·#j~ùÑ몵Š:>d’öÕÔº]Óé\ɨ4¶”è’n/}K_QÚ`+¾sþî ³ÓN§åðu-QºrIhiU°SfhI ãmõö‚EZé1NîµÐñÚFÚɰõr;‡ÊPm0ÓAóe;ìþ{®ÈNÇwFÖu_'ο>¿d££î,7¶©bn:ye…/½ÛÔå^u#¸‘¿p¿ßI_³Üf€gPøìÓÆ˜hîvç¤9hÃÛGÆšÈ_øü¼•; úm0"ö€ºoWØFÎg…mN%maû §)ýYÓ9µœòf)ÜÇ)úZ| õá™ô =3§Át;áI‚mEÚlÛ]fÊgÄ»ãî5‘€Ï>¨£Ã@Îÿéu' ¢Dœ•óÐV{ÍÞ±ÓìêO–p™ÏÒQ{Î^µWw»ý;Q¨$Ê48]ŠêTô "j¸#CŸÌÕÞMLhôõgLB½é¨ê°ÀÔzì?i~fà´ªc”‘_ÁÏç¡°6±ó±']»}mKå¡çFAûî'nÚ:à¶ÞT J3ù1EØŸIp¼Ç °ÒjºO“mœ³$†u"›tŽa>þv1 „[ËO‘ðGü;UlCÃ2ˆ’‹ýwš£‘褽ç„À=|·Ý$PÉ¡í+qf~f¨J]áeÚ"‚åÈü'Ýn }{ƒ òGùsâ6§^ÔмüGv‚ùî4[ÜŸ„WAûŸT¢ `ôœMËnÙ¡¢Éå4²z™8ÜW=0Ã%~`»Ú?þÁOìs[“òðR‡Ú™#KlË£ä¡ ‘ܺA¯À”‘Uœ‘cÎoßÁ}8zo¾ü^ÄËnf8²=(_,àtm^Mx Ôw_Ž ­€|y½È^\¯·lâ‚RANpt°fëÀ•…ð¯#)Ýëw¯›Mˆå?㦠ê1‚Îò*à_áÆï-ѤzPÆi;YÀK ÈÀñÔæªàãý|£óWÚ·|ÔÁ÷£S ê¡ж4·â¤v±}Â'åW¸Ž˜ÒMúi[ðGf ÖiZXªËýS£J|ÔH¼ÛJNgïýƒSœ'n(öï[HE%ÆÆajÄÕô¤Õ‘àŠ~zS‡ë}®±u¹<Çg,í+Û0Çòs´÷øXö»ÎóÊÆ‡ëí@Ï9¼MK}ä%øb‹öÔÛ²|6]j2§1µµ$ÑæšJžÈ×m8“’Ók;¸vè ÜpV™ ;?ë…y:×.‘^ho|߸ÊZC›{ë½h^¯¬væB^Z]Œ±sRBym·ó0ëšbœûyþá9žUü×u×—Ëùö_òGTgµÙmÿñ½Q׿þj‹/»[ÅâÞw£»?º+9äë„ï7³}”­ý+ŰçÜNçœÙe3Ù+Æ5OÝyyÿêéŽ °…¨;tW1ÛÛövö;S»¢ýÑF¡b4ÖÔü¬ˆ™œNNI³ãû.ô`9èïæ¼_}m÷ÒX bcòA¹²íìvó9kÎN¹çL|ªHw0›·ÐTJ ÔÏA[ÉG¨,æd^.Oë움VØ­Ÿ,á:ße8•õÐÙ©o÷.%v‘%4€²€?‚¡a ×iK‰?y~Éïn ºü­þ8þè†IV+¬óãÅ0ž ¢ïñÿsB[⣙^îúº:gmÞÝV6ƒÅnÛzÐÆ+è'(³o©&Wçøn!v;=Áûž¡8¼×Æ5¾Jiœ(&¢Âü7e†vCi1£ ¥| þ¸fžŸwæÂÜìÞ5ðèšuÑaCà >ÇäFÆápV1À³m©€?S%7ƒ÷`”¹˜ê÷ä`Ê<<ƒ&b .¡1&Õ?ÖïÎqGØ(Q|ÞÈã¸(ô}= CJ>À餄 äÿø ¸\LÚñ*Y’±ÿÌ=¾Âœù¡ÿèá^³¯m-Ê ÷Ñwñ4ÚEƒØ•È2”'É5™þ˜ ‡yOFrôõ3~ŠÏãq•SïƒõW™Á~ëá-ã²?ïüfº‹8kñ—"Ýu›–ð¢z½¾`¢ò W?rTn§pÁŸ±ƒþ¦¼æýsºï˜ ãáÕàöà]‚ss¸ ý*³)90·#G×ãZZJ©§—tÜÿpKˆ§ýe3\èpŽ r–rÛ”¶â;÷¯&›»˜9ÁÀ79Ȧ¦bÎ+¬‡QO·K]¤•´P>¶¶•„Ú@³Il( 0Ê7QFxäpÞ“ßðǵÀóvQ½0žÙI’Å#¯ÚýšdÓ^šBGx{½džõòê2.àÅÔΚY®‹×Ó» £4?ÿÎ'ÿ#þ#”ÓÀy»×õŒ/Î;» ¿ìŠâ9žÛÇMdrÇõsÒ_:·š;Î=ìÆsÃ~áù‰Ç}ÍZôL _mŠjÚë`ºÓðy9ìãÃw_–窫Ûj~ºÍEãi(8c’må,sæÙ ð‹­âgLÏô­œÌ<ÌËu¨2-ƒâòïhe;ÈÕ…¢ù³3Ùfv¥ùðTï®îQ‘ŠCInî£\|þvm„¿© _”+ÀQ<²aiÏgÜ¿Zà;gïÙmö•}¥¿Þv5…~L ¾ôgàÇä? 61x`4¡q?±™›åø%ÙEÁ‡:Ã'"—ÁìÃ'i̓g &~¡ax·ÌÐižåñ¯¾!Î!›¥ê¿µ™"Òûý «Ê¡ù;¸ççóQ{ÿù%×ÀLÉxŽb–’ç¾”†Àá¹x%¥¦µà‚”—\:vÛH›LEsŠÿææœ“çÖ_µÇHÚk}(eœøc¹OLYèÒÌ<:6ßñg•Fmãr.ˆïæû½&çpxNΓh¸~ M‡™m9Ó>ˆ·ÐíjëcT¥…ž˹ѧ h%zO+™d›WÖ(r„sWÀͽÄ;oåAüŠ74Æä‡ûÏgº/¬ÀCåáiPÄëÙRN+&ðG?î!geœäÔMzïUXBËÃóx+M¢¦Õ{ñ\»\t®ñg8¶ùtl4JÂo$“Ú_sëqy¤ÀvC$”^DÏÔá–ðù+Iˆø¥ì[%3×÷‹S~¼ÔD”­¤½iKÉMðÇc0ÒTÙeïB—Gõ¦hU)#+´Žæ“}Ü„'qprnx–WöíŽÎ®Î9÷ã§þq,Mà‘çP}ަOõ!#¤™¾ÐÓºLix‰Rž’D:@Ös´]8™‹1™Á¾zçtÕèÎJã@õû÷l±©„„ò²ê^ð™ê1Ô7X«hõ<þó,ZUÓ‰ZH»ˆöÐ. ÞvÃþ8î\7ì0̃ž­ìFðG o”Æ_EÐAÚX{ƒ?¢{©À¹–Z«in¹!úð=йT½ë?’0&øãíYm7|ù¿p]ÓÛ+ô|8w¨×7Wù?û2º Ý?ÜënR7ÚîÿØï«möÛ$” Lý;%µÉ0G{;gá?þã†{Û1_TÎeî*EÃmš …[ÑŽ±Í…ÎH[…*Øn6U¡NŸÉá?*›5t#¼”ýú³¯ E •Þ–¾Zµ­ìró9‰ºwM2ª„™·ì±”rò9àð(ðËTs’¸ƒödZkO†ÿ8Ù¶Ü>¶w©¯E$ÖÙÒÀ¹~T–“òu*Îg À;Â7µ¢ÈÆùDÄvnLº‚Ú5KïtÁ¬ILWõ?C¥ß„^ÚÄÞ nzý 3-÷G÷ŸŸ÷õvnÛ þó証?<]´å©¸&‡á(ïO|¯¯Àçn`›Ã§)#ï@߇t—íµ/žùšBq!^ O´ο(\ä ëßw¸”všüæO…fNÇÏ?Z€GOÚОÑCày>6UìŠ „ݦ>àô.ð•Qª3`µzà=@¨ƒPâéÁIsÀYPÿ•´csýñv¸} (³?Îð–ÀNËßh$Åã Q2Èn9¬  !pY ÄDögOIÄ+¹70ÿ?³Ù:ôK?÷Š ~øŽ7ñv^ÌãÑBíXE¥w“‹²_réYÝ w’¬1–Óý"Š#ü’‚*ÐIçýŒ†çÝLÔ}êpL0ÒÏpÐwx¥ìÿ™ð]t—òðGø|RÚ¾zh~v+p~û$Š`Þ_çÑî†ÿ¸‚q[¾a çÉ@æúàF•Ýtd­öBÉJ ðÇr® N _†—od07´oGâ_q§6}®>…qö'g±íWrLZ»ÂÌÒa@ú„p Sõ7éþ¨¢)ý™ Qûdr=^…SÒü7eûݹàúÏÜ¿9ð½L¤‚v*õ`‚ÿøC‡HGé&:£«ô6b.;=‡ÿ!ûÑ#mÀKø9U¶¡ìÛ»üN ÿ`j´j7:ÊWmJ'1¼BzT'û³~È)Ô·óºúy(š6ÑòRRHì@þ¨¬ä@ÃN´cßðÇ,'üÑJtH;OÒy÷u ’‡bµ¡6ÓÂÞJ/¿÷½WYqO/ŠvÐ,²L®`µ[6?CÑý²Úÿ=—ûxË—|ßüëüµ‘‹ÎSgš›ÜÔ77.ñm¾TnE··ûÜuÜ$_˜?j—¯Œ9k³P ™çاîKÌ€#æ’aϘÛî'Ú•s—;ƒÒÁÒ,§T¶¯mE¶Ü–¢ªø: ¯Ýg>?á øwgÜê×ê׿qðH„Ô“üçѦ>jëÚEŸuþÕi÷¡ O?PÞ‹˜‡ëk3à«¥ýa€¨Ùh¿½a_ÚÝv÷'K¸üqÍn±Ïí`×VúøîQY k*ÃÑ0‡Šò>h ~ð%M(¥yò‰xmܨt¥«ŽØC‘¨;¦äôŠ*r=Žðé&X30¶¡È¶ÖGŸ¬óõq^ÚRÐâ¨*¼ÖWtÃV¢¦˜Õà^¾¡Ò\Zo=ÍÄ,ÛHÉ¿ê)*¯´áÌ•¢=ô½p£ }Òƒ%“¢t“Ბ!¿ž þÈj‚y(7àdàþ÷öôÊž°–z„xÿj…ïkSÈ^¤ÔPÆõ9.xv(Ú®8£—ãÍP Å),_ã~¼Œ¯Q:žN³àIFÓ"xùæù?öLžrûÙ~ÀŠ<¼›W¡¥v‚ÝFP| ,É*ûä5§àïä™Î…Ùp&>ÉÝ}Îö°j™~îk\›g‚gÎðP¸B>ò°ÒH}5pÒÞ9=Æ#8›Üåa¨uŽ!·àPzqXÔéþ㌛žtEæ”PÙ¿óa: ÇpTþb‘ÁzLs{´‚×DvÃÏ4“­Žd Æ[Çëà½Òš÷.™]B‰ù\å/hóAôŠ÷ÊB©nŒ.ÏtBàÉôFí(«y¤„Õ˨E[xØì?a>3\Îb+oâ5õUuêÂyO†>©ÈÕ9=goñ~é­ñ´®L–©ÚK-°~NÒÖ2OÖ@'”cÜ ü‘P.ñ\ž+ÓÛ½WiœnøÐ—þ3þ%.ÀܘÄô®þ |ÿUæhRï¤nDÓy²UwÉx§… ZûçŒMjë¿)ßmßóÊfÃ<NW8²-M%­WV7ëbýZ=ÿéaÚV¿¿±Î•øºDóËñ$"Ów¤ÐtíÆ7üQÆ 6ëìHÌ¥öp¼gìniä]Öö2V"j°,ÑÒšÉ[íÝÔð8˹„GÛhFÙ#§0sŽÙMPFÕ¹dz‡>2ïþ'¯˜NÛÀZÛÿºžùò8ŸÊñ±+š³Ç‰àÎw‹™ æºã?íøŽ¯ŒÛÚ]ï†2áݾ/;^œæ-µk¨5]4‹Ü ·í›Ä>2Žyåȕ󾻔ÒRëÐ~´•my'´»×Ö…¶¨k“QCêlÒ~&twúš­è»§T ú~/<ö,*Gqì=øãP%0_Ùv°™üép¾gn((˜?)%o³­꟧p"+h}È/š .õ1üÇH»ä“%¼ï‹@í™3Ýÿ|Æw&S;*•òˆæGîatþ gî«OÄ›âÆ¡KP8-€åûÓ]1k2“rs®À‘ÁDýÿ"°ÌŸÝ­6e¡ÛæçcëÐ÷øº9œÊ^ ÿ±’J¬ 5Àl*Æ¡95ƒÒ?^Û]¼–®CâN³Ñ?’¿¶¬‰M±8 / Øø«‘`¹¢ðZwáÛFÓlSɸҞÿà\<ÌÖ¥»kOÙ(4‘v‡°~w¥/¦©dŸPv^ÀMáÓ.~ÁÈKÏ-¡\ÓQÊ g¸a$¿¦8ÐÿSÀ}PΑÔ×Üu>\;äö·m(?Ú| Ïš¯†B™ 7uü‘ Zz¡Í$ù'i(“à¡\àÛîFØÇçmYûË==Îð^Ä[>ÚÆÑ}ø%ôñpž-7á?¾~­æ5œ[žr/Ô 7{ò„oƒ2¢_vÂm¿ïµ[#¿_2O„ÿXÄŸ#KåO ð(=¤©Á‰¼Úr†”𲉋Ã! oí¿îƒŠHa*¾ï{»…’ó~´SW°àºÊÁ2X~„ŸI/1½1šT·Êlm„O‚ºßÌ]¸.ÆÐj¾ò :¿“½ú&ÖXðÇôĸÀŠü '´Dqd£tÒG`Û­2>°ÿ#®„h"Ãe•–×ìÌMÀ„_ñ€;#ÐÈ7ñ¦;Ý\\N~U–è”ĦÀ{Ò—[»ÁÌÑðÞ°ïS ¥Arïò,µ °2-²ŒD}«Ù4¶×›úÆt›ˆ˜ 1öóe“‚zHD¯ŠÞÒR 5=®ÉµµFÒíúZ¦€-ƒ5+\HB‰•´3°ÿc4ݺwÖïž1ìxøQÀ¦µöœÔ÷®k ?SÊiÙ 4¾7ßÛN/®'8»A+ã§×ä"ýMAàí?( ãæs² ýw_ÆiøŽÿ¸çKü…ûºß^SÎ5øhæwè1þ›™¾pnu·—ûÊãFÿÂ|³Û}9Ír[#?,0+¼µ˜£œ¥f§U{ËÜpï;׿(Þ|ןz¢ÍMã ìËÙvv1J; ú7+þŽmFLµÏªy§‡SȨ̂‡ôˆj"ærj˰ÆîAìT—Â+.ÙJv‹ùœ—Ý›&!ÆÀkp†ÿžH!‚ßxþ‘•|˜¹¿B“¼°Oír{ý“%Üâ; ®Ù‡ÏûT„ÏB“¯£P(çê ç‘ÜT³<:FêjEñͧ²M¶p£Óø…zt Ø}‘*?PµPñ8Fðz ý!ª Tí¼,n‹8[uæ9}s63ïÆ,© _–®£ý¦©@Å0\ŽêÇü'`l†ÿ؃ö ÃGá–Øø!æ"'³ym]àäbJAÛi!üB1Ä< 9@A¦´9Íã¹ç4¡.~Kçì+;‰"†à?ÖùSÛQàcCŽÂ¯è/¸¶¦@±¦ÓqwB7Æã<˜Çñpüš†€i4~ûÃ;•GÝÖ¶¼Z2Þ‰ˆi¡;€ÕÒAqg•‚rQ6kø]\Eªáߢl95°¿ ðô1ǤV¶Ã?ö^³‘1¶¾ãé<›—Öïöà'A¦ð¹,Û$žîÕ}`–’NÆÁifd·@Ò‰“¡Ç¶;%Þ‹øÔÍI}¡P"¡ûÂK.…ÿX$;e³tÑÕšÇ ïåñÚIüG ÙÜù*p7n=jR惧‰ì<( «ðªuÀ#é:¯–RV†€ãzþÕßh'Õ–ö JàHôÂVƒóšD 9—§Ö\›o€EÓ°Á´ÀsÔ¿«MeN‡Íq²˜¸>h fã–@fÄ‚ð~7‰x­5 L `Jxš©(}jÍ·È:ˆ&ÄçÑLY{’B×AižÒï¨MC8†æ\‘ŸÃef¥ÄPߣy&P-O†£›@C¡EFÐóâùσÜÞ¶§ïÙ¿&*9Ÿ@ &ÁÍìæ$’ANH&Ð\rkIc™ÊþÝ—)øðŠä6M þqþÕ×.iB•x!Oƒôöwá×[úòtèå}’U·é~ÞÀå>÷ƒRÈÈ"¼HwNŽ…Ùùn¼§nðßA tz-°œðLÙ!ù)·Ó}šÍ‹è}ãM’mœWªÊðÇÆ¡äðGE3ð½xáɡؿg©*÷çÁdd¹Œ„[èÎñ¼IšCÊ)sy¬¨³×äò¼‹oàý²Ë4 ðÛÅÍ}µ(Yw~H¿‚ScØc6½lú l1 þc¨Þ—äpIÓ´žô”Ð4`áz<…³€ñ’‚óóÑø7ñ¢;‡Ü¸pã7¨'U—zÍ*¡Ïõí*ýe‚F÷öÀ-ÜÐTºLîéE †«ñ¯“Èu€*ÛL¶ä›úîò-3Q( ðd(½à½ð´5%§W^×èoY£ë0ÉPý¼A» oúh‰¤q%>8xe€Ž†¸ä 4v‚Íe;#s(ôX »D’z7µ¥Œ•erl™MSxÛÁp½þÚ“'zñu€–D_‚jÚi7Ó÷T#(‰}»còï ï´qÞæÊ<ëKë$ü—üÉ9àˆ;ÅÍ`ÊÃT ÷û³SÜѶ•‚&ÚgAEd൜RÒÉzÙ¤I+¸F Tu¸·äˆÞžá>Ç£j¶Û5nîÞ³‘ WJð$ž4‚¶Á¨D‘‘<\.ÈvÉ < g’_H†q Î'Fü÷†2 ]9«Þ‹xÒMíWÏ¿7Š[ðJºÊ³I½9šôוšÛ‹î¥ófÈ:.$Õå0×B‹Œà{ >\ÇXÉ4/^ »Šb€ƒ¨ ÿÉãá?ÖJ/üeFt¶ÆÕ#²U§Éž()u/üG#nÌ[ù.{’T†òEûö¾Ç _9§´Ã¾ ¿U3ÙS6"´§Þ‘ÌÒIfèM«gÁµÐ~óµ¿&–ýðýк»9˜'½}öØÁ¹í>ƒ.{N³¨®ÄƒbL>- þøN§Ê|Ľ­AºUÃy)t•¸Þ9+cd'˽âÍpñímû¢9kÍ+›xÒ—±ÚŒÔG’y™õ”vSŸÉ_zŸî(¥—¨ÚQY¢h IÀ ¤HCýÅ?jþ¿ëˆ³ÛÀhYU×›NÛ‰ÒÊs¼ŽðoÛ¤¨VÖ"ZÔ;è]Õb^]Í?zñÐ?Eä’øÏ™ÞŠv¯E¿ÃÁf³žáù¿q}5ýv$<ñåuRüKþøÊ r»SÝd¦–y¸'¶Ó—Ùmêv_ºÜή/ŠvÙ×Ь³™(&Å… ¼fšWNoçŠ9m¿¶bcÝ/Û'?ÝíO‰hü‡_ïV´}ìPç‰ó·­H…l ûØV¡V¦ØgELãôpÊ›Q@Ó;Tƒ¾u…®M¡ì]ø%TŒ.ÙÂ@üfvù’¾{]w¯™8Tóe#Tô.Ê}› X³(ZŽ^RÎ ÜÛkÏØ¡vÑ'K¸ØwÞ±ÛQ£s”jçG0Q20Ålj-œ 3<=^%»ê“šÈŸˆ8Ì5tµ«ey–R¥Ó¢†¸*Ô^¾†¹ˆüû` òE¼KTJlS8ó>ë¦o”óÄ~•Ú|t˜î@!TÚ×áÛøÿw®~Û‹²ÂÇV¼ãTzL#mdó8„haØæ™UÌœ­˜“þ\²µ¨4Jp:øí2ÍužLÉÂc¨ÜGÌÛöâý«™>ŸÉa÷Ã-âžœ~¡ß`óÚüßGiSBàö$øPœœ5¤}àüÝÑÆu?|æ³Ìå¿7 Wq˜^ñ~:¤¥’ÒrZh$M%w¹Šü,‹á1=Ž 5Þ jü<§£æ¶Ýý2Ìuá?þ¤Âxÿ-ðA#ÐrI"ãy¤œ‘y’K7êy^ÿñ€ûB;ûóŸ_…CéÌùáÌæ9Þ‹xÊÍE?Âp"Ô©4K/ õƒ£«ô;/‰—Ï#›8ƒT Ü¿ryßæÓ¼‡7a•0Þ‹÷ܬ¡˜ü .õg0ÖTÚÃsd°4•éEŒ×]éQY´ËÛ%¢®€²¯È¿ð~¾ NJŽßºbßžý§ï'§ …åɭŹ —·×m/ ¬¿Ê þX¢ƒõžÄÒsºü±DÖkèñãÜQ³áÿ Üuñ¦lß;ÜG”›ƒ pJI(še¿å:2RÙ˯sd¨´P×[¬«ÔzqtœÜÐŲE&Ër(‰hƒ|ŒºÛDöíúÝDNyj¿…:OË8”J=¥ŒWJwi#=÷—>Ð&šQ—j+¢¡5ª–Ø’Êc#¥¦G¶={gýî.ç„9g{`.Mˆ:coIcoŠöÚ'µ´0üG'o³§^bïÆ•À"Û´¢\”k˜{ûíÌNÿþÁö?‘ÿ<®3Êy{’æ]_vçËöu¿½B;çœ0îv·€©kîÖïnöýê6w‡º »w|k¾(Ú_=sÈÆ<µMé¸yæ’ÛÞyæ?“×FµáM>÷ËÖ‰ÍwûQ jØÞ—2Ú~öÇu7Ù.ǰç¬ýî矘×éê¤7sð¯¡îK¹~ã¹ðÍÔOAA6 ­´õìT3éÓá|/Ý«&˜ÈîølÚLÅx9ôâ Z /âϽ±Ÿ¾EÄ“øhþUúÏk…ï½`wÚàhU`ý.0ð_Pü]á?¾áK”×AÛ?*ÒM÷Ú'âp3ÒUh÷FtŒV‰†RF ixþ•kúsžaFî„ÙFYK…)E·‰?ª®ø9ÁG Ý+ƒÙû¶¾šFõø:ZàèïÇð9ÓQûEõ^cp]l*s&„h7}éLt"”beÇï÷€_(f¼ØÇ6Ï43>ù>)#w¥Ž¨ÿoþ¸bûЫžŸóE‡ÿ¸ œô‰ÍWÀqe¨5å‚R.Â'—^è&÷€ŸxAIÏÏ—:‚ù;ÏýpuázwÆV1ÿiÊ@¡øà²ô7´Á6þFŠM‚ô¾Ä‘\B~‚&ÏËaÙÂÙäããà†P¨s«zz—+Ð?íè êlÞ„·úr8É(C€ÔGe–$ÕñºŸr)yü ïù4߯çO^켿vÏ1Õ©݆¿ÏÓáöÓnž þháe¢îÓâûWSdNàùù!°Ì è¤Ý¼†—ðv¸½|¦Í{ñž™Ex”*øã‘>ÒZ†s±Þ@©ó䪎”^|È”+s~8|Ïpt™ÁëíÓ7±…ºPÌè'ø¿2pÔÇy³ü6Ë#ÍdŽöÔ'’Cëßú³Ü”Ú]cÉNðQOþZVr|•‰†½‰7Õ¹éFÀØ¿¼/)¹i³MƇ¥®Ót: LÑVŸé ½Ï»&d§Ä¿ d5ÔVöÉ8pk[øŒ,Ö9jâB³”„§ßÅ¥íij,Y¼D:\˨ѓðC§µ†æÓ…AûË xØpvñ%ÆÑ6¿úÂÜMgÞðÇ%èâ“vfÅPêDã­Ok{µµ¹’+Â`¢øÚÞ»àÅñÂy¥u.·÷Zkt¯©ü% 8Ø]¬Æ8‹Ýþ‘y÷?yE„ª¯ûÎþŒÎ—+õöbg‘Ù]ææ1õMãÏŸ¶×WÉmáöt¸WØÿÈÐöÿ¾ŽùÊ›6Ý·þ3/ G;o¶mlûÚMá~jçÛûWsw)õ· € Í(¡f;;«u¶ Y›ÔÞ‚®oÊ}VÄÄÎoNf3ÚøªLÄœ­z lù÷­´©h…ýÙN7c>#Þ5÷–ñçòq MV@çÆæÐøóYøŠ£®7‚l°]aÿúŒóÛçûnÙãh3ަæ T<§Pß} ¿ó@™† Ù@wm}à_ z冴³ûÝ««›>«*5OnŒœ¿›ãµæéy`ýz´Ã¼×^*„~a¢}ô¤š“¾áÎI›…Ã+4@í„®Øê˜…s¨;܈ºqs¨\öŽeðqkQò)p# lTs.„h|1M4zÔšFÙðÛýðïwþ#"ûx¢énBË*`PyîIþ}ž):ÔÚ;…ÜüÇ0_SÂÞ¤d<hšÌØm×–²ÂÁÇàëŠèÉùσŸ¸–‹¹ÞÚŸù £é7óòkÎvº³mcøÇ¼º=1ï ¤oÀ>ñ$—¬’ÃzNâÁ4“z2sñKèí¾\ ½‰:ýìsŸÙ0йÀ2Ýx9„+Äé$½tলWüû ¶é6^Í??úsÔá2°ùð7”Â&gÊû~ÁýžZÀ-<Ã5ç>¼ˆ®ò$9(í€ÀÍt…fóîkQ¯µ¬ã’ÐÁG9z¨'_ã`›?|pZÃ-³“<¸ÇíT“'p7:Â#¤»´ÿž‘g:þc¾Ñ?PÚå[wqYÎÍ¥á?öðJhü¡|À¾}×Õ—Ë© åÔ#¥¼Qzxï­¼U~Ò§R œ4IÛžœÁÿE䞬Ôßô:¯ƒVÂaÁiQ£ô4õM¼–N°>ô*jüÔ£V¶וözLÛk© ÿqUwê,ðÑM%×ÔŸ½vQ nváïNS=›ÚþúÎ]šÝæžOÁËsùg»Bk&/…®ÑvQËCí¨M5µnÕGâçšTNI4I‰q´’2‡~ŒþÎú«ëN°ñç¥YCý¡„:ÛÔÚÆ«¤›„Õ¨ÚFëkcï²ÁûÑ˪¸8˜j–æ–Mrso›Ž‘õ'3­ýOì?ïŒpÞ¶Ì=_:'¤\oŸs…ÄÔ3UÍ#Ç¿þp‘¯ž[Þ]é’yî¸}ªòì+dÖÛ¯}çl!RëÏ¡^ljf÷ÙÒ6ºMf¹1¿¨œMÝþshmR¸–ôƒmc»@‘ùù£¬- WR˜Ú›<Ÿ1.ø6™N €šµàF§Ã,‚B7öÂkEiØèÞaŠòñž»MjE¡ØŸ vPê儲è‰XÀ÷)-·í5;ô1ü±k¬OÉ¿ËᕽEIáØ†Ö‰všŒ±Y2p’lÞ ÷ܯקÇîÓOÄkïf£Kô+h³ÿ´V É ”ýůñø)MÂï¥#ÀÙ`èõoèµùƹð‘X·|sœ£6?´îJÄ;öÐÖ¯­B Æäö4‰[C#nDÌa>Í7ͳâ}ÀǾ0&=¤<mð¼8f´-–h¼ÑL5qÁCÍ“Ð;½©9ÆÒE{óíYˆùÏ_»Ðfqxp-ú å€gIϸ ?§¹TÅçGðHIØŸû¼FRkè‘–&±»îƒx3ÝQ¶ÔE" dgø™ãT mW„÷rBÉ)€¥·%•œçêR_æÃø×ià†Àç=‘ÆÚÆôô 7&ŧáP÷«¸8i$§œLRËDî(›e¢xÐÓ;y#ÿ,/x,G<æ`>TM—´Â9õ^Ä'nI ßAŠÆQ€¶ OžòPèÝéS:ëMë=é(g¸“´•ƒ@ûGÔ õ?ÊËøZ#y?â3 úVvŠãåÔìÞo§úßc;çõ¾ÕAú«Ü–'´Îþâ¾ÊŠdÙ¶ª2#" ×ÁÝ]wwww×ÁwwÜÝw§qwwçï:ÿ¿zà5Üuï¿u=Órâ¤n©ÊŒÔ¨&tIqN¦ïaýÿq%±§}µþ꥕ì÷u¹ÂÚ{lãrŠªêê¼oOÉE«¡3ÂÇ×ípöÏœÅ÷åzb5U»u* Etiz Hµ§Ø)õSX¿WñTrç×ò̯‚ÿE½tÌ¥áTHwÕíHÎÝ\ò‡éaÅW þ·+šÝÅ®¨vÐaº \ÍEÉ{ú؈lýóûÐú¨ÎN{tsÝZuû‰xwœOª" ¢0¼Ý·k0)üG~( ï¾Úpñ'à”7é³ú"á1˜nèàÉ0ÿ¡MPxòžÍM§*\_RQøÐÔc?3vžï„S‹ÞP9`Íy°D(ÏĨs® ÌIM:­p6ÃÕ,J‡ `:ý÷^±ÖÚ‰÷ Ä›ƒ!"Ñÿ@ä£ÔŽCBQ/2~"Ÿ [MWhfÔIè±ê{wv_À¡>×Ç{gðå~(ì[»p›²€×0pïo`Éj Åך¢Ð ýDO¡­ßá]`£†úeà¿€káø¼G-Ô6;8­-GàTš*BÝ®‚jŽÉkð»±¾±Ô€ú©pNà•Ú>º?¡üìÇý9了´ußÏᥬì–ýðñå57’2`¹,`¨ÄPö•¡¢WósÝN7ÔÓçœP`ï?©/ä?y2£«´(˜KfóTÙ#3EO²·¢+˜üÇ“Lw‡o¢ü©ÀÖ;=?O ê£ü).ж'd7]ãrYüXC™¯6ÙÜ[@­Žò†ëÊ8¹Ài9,>õ,oáP 3(q ó£âèDPø»©47…;3ðD“á­NÁ#…p˜\f…,0}DÀÌUpLEð²Ç‹ø=÷â¿õó€X;­\v{Œ±p=%àt¾¬óÊéj^HeY$SÌPï$)Ô·™é=nêš´rˆë¢¥_ðbNÈå8$}Ñne죣/¨U’ÖôFíw6/àæ€y€9æ˜ËøzOÖÈ%ãšñ²@Nr<ö² Ç l¥sé1õ]gÍS·À)1Bò1ƒ*È'Ó~¦|VÓÇô53L¸¸·è—Ðæ±)*ÊÄ’Ø—›|§/ôÝåþ¨fßQ‡õDè¦QÀ®ú¤dt£ºÕe¹,“»2Ø$‚»Ùán2aÝâPMÝXæ¾É+£å0â†Þ›üç¿rÿ*¢Ýë«üí¯­vP-~t…±OÚäœuЍIêš/§ï«‚3Ä™íDVä\·~-û1«¬º¤ÓB£¾Ð=(¬NmG×D‘u­TN'¨“¾½F:ã(8µ²AfÑËu;¢ó\÷¤´º¥ŽèågU~ªæÉìFvUµ¸ü¬ØÙŠ÷âýŸ” Ux ÒA]’.ê z™ýñRƒ–õÖ†¦c”øš Jî¹~zãô”¾ªƒç YÂ5V:§OèßÈæ¼|„*§mÔyM¥.\˜¯SU>JOôŸ{ éPO‘69•HØ;ÿÕË­Êô7%Ä+97öñŽë~¾Þæ)˜ 6ÅÓüCþxiµS`æÞ@”6`˜Ií¨ ­§¶@ŠI´Þ;ÿJ}*ôí<|ÞV_t×ñÔ÷2Â_³)®-=o‚ÿ8 4,@ùPWÊ[±¿Z© B“N õòÔ<ºO_ÑkÈýÎý«¿á?ré›`ïY܆ƒ³?u£([^ \;”îŧt@ºE|‰ŸSJžEËÀÝ}¤­zgÎß~Á™¢ÛÀåçõÀû0|šÁææ=üqBÎÀÄ“KÜRJÃä‚/ŒË˽çØ|…3QÝ&P¿¼tÂQ"耪<ƒ[Á#„3û›#IYÌ“dÐäó­ß-ß~&3—ˆÖS£gÚÛ¾]o«*Ðd´qè$S-ÔM_NÆuV*g¼3Çyê¼±#ý0«Þ÷¯íV9µž>ëêÐöi•vÆÚOÔ]K³~ç„øÅõ»ÓœÞP©ãuš†Wq½H÷¶“8{ôª¢ûêÀÙ NÄùÑõ»Ýή§¼5¦WÁü¹i/üÇZ(ÃsêÍŽ•ƒ7­B'uk=QýÌŠl[½WÙ¡£ñjßãù1?‹‚I.Ð ªAa9>¦Kú¾~†rö ²„‡¬×àš[:,1§äS(áðæ_4ŸÆQmÎÁ)/#‚z>í:Èü»«œ"ð¨)]¤K(‘²Pp.e˜‘ùÎé(Å7á–’Qï‡w*[KìhøKA­À:Á饮Guh.µæwÞstîÁÏà>–£àðéí¤»Ô@‡P¿í>øCQhßú«Lh¯‰pmeà?®Qx¾C®ž bÊFÇx,Êß-=cÑ"ºÿÿ±É2ª0ø#1ôŽ„ÚôDëgôWFeæìTÞc2oÄäÉÐàÓi(íp®îÿãÌ“kÎ èž`Œã<•“Áó5Of¾'’L²W˜7Iîsué";á;"õq~ÄW9)5Ñ]õËi'4æÂ0ªÀ+àVs'´ÏlðY™Îd‹ ‘2þc—•W<š“sv#¡Ç{s>*EóùàªTÅ-Š”ì€ÏßHïØ)[9º´…ÿÈï&t³¸ã¢5¤·œåêüþàD®óqèäT²ý„Ó)2_ƒ—lÉ ØÃÕ+2KÃDÛ]n’›óàÌ©²Š'K³Þ¢\Ï ~‡WYþø’£¿³UÛî…‘?ޝP xŠäz¶Î*Ÿ¥Ÿù,•dÌ3‹À١§šòRSv˜.&¹œñå¶ôöäB¥¢áñ²Û×—ƒlU—ôL-¡ÌÜÒ|4yÌ4™&íÀ$ÌfóÞ;»CÞ›;Å,“ãèõEVò9ê­Sé/«k6Yþ*,tb~ÿñPÇ¢¦’®à¨iaBš2ÖøƒC¢ c™á’ÜLXøŸÃóNð‡÷´õ9ÔåÿÄëh;úžƒÑ> Ø4Pïÿ°Ý2QnIiÓÖ”4Ý îpz#3˜;¸¶9frzgÞÓ.:¢Qu…Öü]/ùÁ¼ûO^qìA_ùVÊùùGX{»ýÆÞâ$U•”¿oýÕ&«°3 þ#¤zhûÅó£ŽX¥ÔFsž¨9ÝVñ¡ñÆÙ‘õkQGÖŽŠäÉyß^ãñÐoÓt2hß¹ðcuK;²sQ·§Îz°N 'ÑPú©ˆÉíúv8à ôœê?ÎÑŸ¼XüV]†m‚Ö{«+À1Ô‚ :œõÎù¨òÏCò!¸ÿÓðÿG©˜oÿùaï<=NÍyàfêGú¯¯Ö€üèÚi¹S›t Chùâ´šBÁ ÁX¯Ç‰€ÏÉx?… ®Ðö¥é–”Ûœà”§OTXzü‘€f«““Åå¹Tõ]è¥Õp87À ¯ÑÀáìåá9cͶSQo¢,Þy¸áá-+?–Qu>†Ò4‡cºƒz/çùÑ=º >=Am4÷ùùS+—Š”)–ÌŽöš…ÖÊOšÎ€!ÑYÕIE”<í×þ£+µ¦Ð`õP´žöŸÑZ¡T ýÎb6o\(é~ÔïÊmž‡½33R*xQð'ÞÉ\“g ÄhšI£ —ß¿:êÌÔÁe€·K8ú¶Ú*Ïá8GvÊaóN‚C×7–†²‚k¢_¼èƒø9¿âÌ4]ÎÅv×ñtnOø¼˜·ÃSí¤Éü´ûàþIjV˜`Ÿ\rÕ»ï½TyÆÃàgZЖ@ù¯‚«&(ûU ç»KS•çÑ^Ëñ¤3”}m7‰›¶–kBáæbü’Ör,ðÇ>ðõ*(ÿ•«·P´Tp|$Ýçƒ2CêÊvðebw–ùÝ\›¦£ŒçMÏlS( gôˆ-ùÀ e*×_rœµ´ŠÙý0ÆFð-* ÷QïÒä¥,6ʤÞO7=ÍMÉ`>˜%¦‚•ݦɊ2¶ä¥œŸ˜†s2/²}Í ‹Ï{ OYQšP}›†sYðGI3JÆH'Ú]išÏ&¦ï)ÿE¹.óàgb€?¢AƒÜ„'ÈüÕþñÖ6 ½Qºì½ïüÁ.’ÊÍfÞ™îæª—næélÒ›&¼i%©MG´I+‰˜xÔ×]¨v:€?êØ7Ô}=ÚwþÇ`úCï–ì®vûH?y(3Áq©Í8w§Üãf5#¸´Ëð‡ùÅ6þ´†ü´?k[nËEõæÌ»ÿäÕø¼°RÙAí(ûÑå‚?‚9Ëœ,ª©zî{&¿ÝJíôpV;/œvè_|~~ÃÊ«–ꨉ>é?襊¡ÞØÝì+ê²N¢I[*Ñ/®ßï´¥44C磑ý)tø7ö<Ý ÚbºŽNå©n Gþ£+©]Í®¡ú® pp'5áõ@§Ïj•ïùGrðÓºž©~æÌ“Î=•#ñ”óvàevàa6Ú T¾J%HCãçƒby§ëzb%œ ÇuŽQ¾6ˆI±t û{»Å½ë’5ÓCYù0ÜZc¼',TX}8›%PÕO½g,ðÑãh%”Õ]ŸÃ»MÝtuó;ÑžY UlŠ–< ¿¶‰&+‹Q|¸6æÝ4]5P'x(7„öH Qî.˜³çµƒO“ïæOüìäÐ(0cxöõ ÊàÝ \^ëÆLFJÀçxï†OÉóñ‰“©ôâXZª^þ£Î»!º/UÜÚ§åíÔº%>oå’^v‰Ÿ f’B×W–’2›+òŠ §2–ŸÂSd§ŽzH ~9ë<Ô‘©7Uìã£<ŽöP6bñÇÉy™-Þýö<jž€Ç‰À«¡ä5¦üG#:g›QëSšâ"…W.ò2Ò]^(;dø­+ø#›Ö­ãN—9œEjÉ^. µ°žÃAå_æG@¹Ìv½TkÁE^ŸÕàŽ<Š®ðL™*MeøãÔxvsÛGúò2IlöÓU€ÿ¸É9…ä|F? ˆ5À*l7ƒþÑÐ[p½Ag‘KÒË„2•àצ›Áæˆ$4¡ÜÙ¦t’µ¦‚‰&ç}þ#;OipNAú²v~°}Ýy‰ž}QU†‘£§R;¶Í-ÓÛü%-¥•¹aŽ›æ‰3YüÍ e–úΡšÌ)å¨wv‹Î¨³Ô7†}@…¢ÔTžòßJå—n:¸‚i&©Ù-OáD š|æ y/á ªš|rG¢IÅ'(/j TüÕùQ—À³1û‡bLõÕ'$¦Éç?¢™d¦’iišº·Üðxe48 üGC“NîËM謓z/z·øã¦úµ ÿž+Š=Ìþ²Öã••ÎjGÙ®ðö~;š³Ë© š¨·¾ûW~VgŒsØwþ¹übþÝóVYå§‘fþk媧v3;*p4$²Jç„ý¥r.q–ÂÌÕ…h:æq6ÝKW²_ÙGu «×êTð8}òùy2»øÃüÉÛóVó¸5/ÂÈ|¬ÎS_ b'èÜÖ@Æ®zêOåß}ìVâwÙxúg8y>ê¿F)'ðÞ_?g€îO•¯ðfþT}™·@mÿ.{ r•‰.O¸®4ïŒöœþ£¿”…Îi÷þp€XÝ©>½·&¼=ˆIB¢Žóå¤,–Tæ¹9ĸ‚h™ÈѹÇ^¤?ñù;ßD|æ”ZÝEýbƒ‘jó á9!ó8¼ 0ÛMv7˜ÛÝí ô, ½e?gá7´nç߀GœHíÿx¥AëÜ@¯VŽ÷¡ |LFÀ[Í‘;Íä2{䚆ï×H,s;q-nƇù-¿áL2ýô—|D#¬öPJäË¿Û=˜JÕoø°47®iŽš.5SÌcðå 3ÙTG-0EÈfnš¤‚oHν9}É4Ò>æÄà"Àî?©˜üIÍô<šÅEÌSø…aÒKÆ›Oæˆñ3¶ÝL•cæXœÌ1áôl0è j ‹è¡_=%öS à#²b­äíz"e’$nóЬ4Ñ·ž87QZ”Ï…ÿÈkZ›Êp%¿‰çþ÷S:z§+ÓÛ¯Ö_±ïª—z!üéPè½Þ:„Iâž0#d¼7Ÿe¨)l"¹ÜǦ¹[Ítábî[ôP%W½µú0µÂ¨¨À™õ¯ñï¹bÂth™ûVò_Ì‹þÕ‡¬œµN%ÕM}´ëúž¤uF; ­^Û!ìÀ'´ýï×A+š£SRt¨ùŽtE…P×ìAöeõTçÑ‘´Q ñüó…N Ë\œæ›£‹Úì¡Ð¿óôlèÒà'Ïÿˆb7´K¨%ÐÉO0~*ëjóèó j/øc?Õ¦0T—n€¡6¨?ïŒóR¥ ^Po§À+){yÛWU/A÷;œ‹ÒUï<(=Dw ²„G­[ÚO?ÕÑè=åj•„ÿˆw3˜]ã?b@‡‹úyÑUPÙ–—:™ ³^å$°<1âä p€NÅ9"”ÿB´æ8§âðIm0§RèŒö¥Äzb-· C©QW°cx°lCh±ùp3€ÏUõ9æÄ*Z >øHž¾ºE½t*õ½Á¬øêƒ¶Ù;e±4j3þ£¸û}öÖ±Á<„‚ýƒ ðPðGjFùëhÙßyþ±ˆšU¿¢ÔÀŒi‡¯z÷: \âÓ+ƒÝ.½“óèûå¾çç}ù¯ÆÓlø•ÊužŠçç ÂØ*Eyùð> ûa\L›lbK É5Yïeà:W’j² ê1%å ø¬÷ü˜ãSC=ðë¯^èÔm´žWw»¡DÃð×´û$Ù+“%¬ñ7»x#üÂ9ÁQ9'Ç“|špfô´¿½ãÛý~N Œ«…³ñ ï:Ëe» ç`Ò Ê9‹Í­çv‘‡œú0ççHð^ad>ß\%Pþ’GjC-ÎAÙ7á6ôÐwÿªª¬àˆÎbâ›%rªþ|IøÜŠëó1fyƉåo>þUþöV»ç®@îz<ˆS@á½çòô|i™'3ÌóJ¥œeºHuÙcÒ˜òrŸ;‡óŠ?jÞ“SÓ′e„ÂO¯@GyùãëT‹ãf…ß £MT÷ ÈkÅ,–sÆ2¯em¢xç¼'¡§p Ë鲪¬®cþ×E@·ö†Âl{©'ÐçïðÇ:ë–O?¤ô@É!pÁ¹õÁr1½™ ouŠRR<öçE¼?ÁÃÍ÷9ï)zGš¯çn x;¿t{*AøÞ‘ÏPš6šÏF¢§·mâË{..ådeÅI}(ß'¥ÖÿØ~ÍyMÐL»eØÂ“Ôƒnïñý49*ó%’™jn‘³ÉkžÀ 8#‡7p*q!pç½@üa©¾lma Öûps8¬3p~2†]ébfšbnJ7“»VÎpvi ×Q€5˜ã!/ã“àëñT[}»Bì´Z@Þ*µÓp½µx*çuÒÜ8CŠrG˜Ôæº\43äÏ…ÿ8 ¬¯ÁUPã×ü‰ÓË>§CÄm³+cäÏC»×‚¿Œ«—éHàÜî&¸É$Cd¬hÑÌ#³ÉÔ•Ù²ÜÔ4Ùá?ÚðL”ö§àµœ‚¾¬×élïu,x¼§ÀçjR—ÂéÍP5àŠ™Ù²TZ™—f½Ye4üÇymÀÏ D¡Žl÷OÒq¾:¿ö±µM¹P£¹1k_p ‡JÈ[¸¸Žð沬0;Mo“Ȭ6Í(If†™ðp4 à?,>ˆ÷1æÐ;í÷ÕþÁ#êºEkàÆQ7=[~wøÝd¬,’¦="gv×¹OLy·¦É%ÜàϲBaT^ÕÞ¯AÜ€ÓëÿÆý«˜ö»g@Ë\¶rÙß;+ôg®WÖF;–³×)ª†¨¾üWë­\àUÎ;ç‰îó'^µR¨é:E¢àÀ¥;J©;v-û©º¤sèX:²JïüZžÇ‘NÄš Ǭ™J1t{=Á~k¯ÖèO=<ÕŒZ©r?1¹]ÏŽ¯&á^a2ó½ûW顺þðîF2U¦‹º­žüSçÿ±OÝ¡P•%½3‚€…kð¯Ç>W@i?è1àJôĉDĉðçÀ5ço) ¢ @k‹‹á%žî¸ôÎÊoÁÁI07£Û~ëš5ÇG¿óDiþLŸtE¨'?®MÞ“†ˆ7œ·Éwªú|°L{]}ï‰ü]+¢ Í›~ª­ƒÿ(÷†n œ‡h—j®.ó@Ì«hÜ 5oþ㙞KϾÃó-[eÔŸÑúãÀáù!ýw9ß·â<| Ú0—ÙŒtˆ¯Q"à÷x±v@ô64Z…p¯ÛâÌ…ÿÈå­Ææz믪ÓRÔ}9‡’ŒàƒPÐÁä"W—¼²ê Øi7æ›|…SßðÇc'¼x?´Ñ|ÄØÂíÑ2Ãn¡dO„ÿ'ÞzŸÃìÇ¥å>ãœná#ŸâÎ\寶À}D„ÿHêÄÿEþ¨CÉhŒNÍð'l=ü±J× úz„æÝ!WAïÎó®¤v#»€š mü(XŒfAΦæà¸Ô È—Î¥6€¡ú¨ŸÉÙr˹£ÊQOº5x ¨h•É·_c|îCŠÂù馾¬oë>ºm%} ýƒwÀaÀºg€øx ]OL–Ž2‚-ñò—ünŽJZwœ4ÀÏ£™ó¾VmÍwùæ¼2üñ%Bs«°Ýü±£¡"ÜLt=_äCRÄ55¤•üm:™GPæQÜ%¦ºL—ͦ³I ¼ï̳81|CaîÇèË)4ùìˎÙ1îÚRmYM!ô jËÁÌ%ÓÓô@ËšÓxÍ0ïÌ;é)~f+xt¦œ@Ë,à(²OPE¹_÷ÑÚ§ª®$üé9¶¨ÛMiŽ žÍðä4SΤ1·Œmzƒ×#›Ü²F2IAþ ¾6 ½Ôeèš>À;¡‹_joïØp(¦z¢DrùÀŸ%¿iê’å^v“¸ÁÜ<¦;r‹›¦|Ø=Ì¡ëú4Tf'ø¹Bÿ•óãÙ£íÁ-sËJi…(?ºB؇í¤ÎQ§˜ê îÿ¿ýƒÕvÎxç±óÈþÍþµÕeW¬Üj®Ž¤{ªsÒnõ¹b籩½:ŠŽ¡C«øÎ¯­3nëT†:ždïŠS×ÕÛ/íå˜ãè¾¾½¤Õ~Ò$³[Ù…Õ Úì;<ø£/Ö ó¥‰¬c‘G¦¿IköÉQó"í’Äf ÷årðød/保ø£’UÅLñy1ߦ*\†óêúâu0漏 ”ñ¦½¹#IùmL#Ù%wÀÑå0÷FÙ²‰?—àÚœ”þ ˆÒ~à„ƒ;¿MêÓ ý‘òÈJóÆd43$ô5/Ít´Þ óFfÉs³@ÎÈT´bžÃ1e+ß§":ÞWç̲n«˜£¡‡ó ƒK·™Ye*™è&´Ùj ›Þ&†Ùa®ÂÇ$2ËMÙ-i¤»¼ *6,ø×Oo à*öeÑBðùTJþÈo‚»³Mi!ý$„9oÊšØîn÷œ)äæ0‹¹¹›È,5µä¶<€Û;¥£µ¹§Ñ?ó´õß}E¶§Ú_VR¸vB;Ø¿È1ív4g¥SJÕSŸ|ü±Û*ä4uæ;þÎðǶ_ŠvÃJª†ko÷à#‰.*VíÚöEµM§ÓÑt|×IóKåìæÔ¢äÔ[g…ÿè@qu-½Ó6ÎH]›ÚèÖ: ´kߟä„v5;· d;UZ‚æRiöV¸¾V;¡7BŸÐù茠û©…?ïžsIå ºŽ¶’·+/'sy§Š¼ ÃIÀHõ%ÝX½BlŸuHŸÐott¨ð„ì­±ZJQh•³ÿˆÏY þè ”ÎCç‚\µÔÉ Þh‰šzY®Â †(Ô\=NŠ’Î\BKdÅ쬉™ñVE¶Ïÿ(˜}Âþ ~á°·°+:i¨ò¦ðZåùµ—#ÞwÊÄ]´ì"´ÃuÄæ=]Ò‘¿{þ¹²#ª˜$¨Ó~ªH{1û ÀQÅ®†@¹öªþê¯à?á“zà3ZƒÛCÑ>ðê ºðþXe=wÒé‡ð «yã)õ{ÿEùy×å°prYèw¾öØ…²&áÀЩ4¼Ò•¦(ýüíËœÐ&Å© ßCÄ2pjÞÂ9ñîÏü»„f¾ q€ïÅ¥nïüwÞÉMùþ> Ò}þñüÜ;?j,5¦ÍàÍ<•^Ñ [<ÙÌãd^O夹Î'ÀHwy‡¿‡‘[|‘»pY”q·½ï›ˆZ5B/xÙüÓúÎrÙDwy6psG“vf­Iï~0EÝòŒ+˹7uÁ‡yüñH*¡¾e¸àz=1ÚýFYM”î)ï…Bn ¿"Ê]n²™%²ÏŒuþhϹ߼åD2•·è/ëñ»X캇@I•Àß%ÐÁ( <ëÏWRÿZ†¨Ï•ÈîgÙëúÉÊö/ç/yb­¶#9œœª†ºi—òñGmgåªsʦ_ÞΪ¿þÍ÷äØó¡Õ1»–­ô8ɨ:µÊë$ü¥r6wŠQjš«ÓùVŒ†× ô";™³ q€þ >'ÕùÉûW‘í¡v õPoµ£R@ú¦¼ ýŒÚè»ç”“néDt\÷Ó­Ô¨Ÿˆç¨ÏªFâGxÿð¯1|Ï?¼u±~TúZq Þ=°Bi"È·6êµàXô˜#R[ qTèÍ@úZ¾üíQx=Óó¡ðsÑ ŸltÒÁ)Ô? ¬NºL| Å1E…?hëŒPÃm€¼mèƒ>€Ñ4úóŸÑÖZ'Œú²w² V>ãÔ‡¤ƒšnϱ€™á¨Ÿâ™¼ƒÁáü þâÛ—Ù˜&«çvàûW‹œ®º*81Ÿæ…œ©$œ`Ip„#Ùd»,6G$´¼äüRJ¶pþ ½½ˆ«ñ>ÈùéOÝ=P¿¸*FÅpì*pÐJðÙ ËQÁ‹x4”þ`y(óL$¹Îå90 ÿ3Âçµæ¦Ô…nâ£Z{粑w®ë$ntçËQÙ×ÒÀŒƒâ é–tÊ®%}ä Z1>ùʸ\8Ž2ªúßÄ{ªFƒ?®ƒõ›pg^O7ù ÊÔèR,wœÉÿqÕLBùnB‘c–³ÝDÄ`Á¿¹»~«¹UÌnõ3Üwÿª/ÐG´²u1MUxš¿Íp sróÀô5=e›ø#z&9?ã1ê~¸¹ì¯Ä+oßw"`¼^À(È%è…¾GKd‚‰ä–2³¤«´w¬2+Ì{süqÞ¬–e²Î+O…ãš„÷uÒIõ—»4÷-oÿGI¸Þ)ÔŠÃêz|XJ»õÍvS% eš˜'fª‰iö1ó$–If†2ˆwJñ^(N zgµ>À;ì7ê­^ŠÞM±h…i–º-L{©'Sä³L6±L~÷ûÄ”t›š¹ÜÂj>še`õ{Ðm§õ1/»4‡æ<ú×V¸þ{®Hv{D@Ë<³’ÛßÓz?s½³ÆÙKNaUJ]ðíÜc•t83œ“Îi°Ò¯­N>fER=¡;ÎÀ»¦¤ê7uØniQ‡¼§çšUÚ ‘ïÛ«¡“úm”NOPi þ˜j'rêfTMOÚ&§”?™¿=®ÉŽŠÙ× ˆÚ*d*•âÉT6©ýЫ‡(?]‚cÚÿÑR ø‰x³*/Ôì%àð2ø—T|‰Š@)†ºhŒ9yÊÛ¯§ïk_'²„¬]z.P2>0=.ﮦ(À¹‰([fÎì.È+è‰äOD»ƒÌ³Éɤ¯…×¼’aŒÿŽ÷} œŸ½| ü÷‚5£ñ\8 u~˜ó†µÕþ ·š&ƒ×.ÁÇ„§Ú¾çÊeù ðz·ò†.ž‡ºo«ç“E¿v¾·2ñ¡Y)º ¶8öÞIƒÐòå(±oÝ™Ã{ÔLS–QRs;ªA©31Öïôd|ýg´-Ö-'µþHI¹Øø=Å׿%৤TS7 ԆрXÉ ZóPèìqÜJ&‡ò?8U©ïIWóœqiðG_p{v~7² Þ§zïX ýçÑUcø¡Ç”.ò`¹ã­²[vsR©m&˜Ình7Š»©‘´“‹œÂw¸÷,g”Â$Фš~Oô$zMÞê‡B\‡wÒ žëËu|ôÑLÂï•§fÜÒq i®@/w„¯»7³™£Ë8®¦?Īo²ÿ@{ Çh(þ‹†ÑÿˆIóR2I+cÚ™ƒ`¡ð!™äªx§m8r[ õâÉ.·]÷ ˆgÛ·o?¥Å#(›üIûÕMºÎÍ]“Ó î’×5ÃëƒñÎÛî&Ù 3åZf4“é|ØËÁö•ÿèi}R ¨0¥æt•WèÂTFò¸MÌqÓÓ|½’Ó\3ýM¸¸hƒ¨}$ñÓâàhç<ôQ¡z4°CÃoÁ<šŠ‘ßRï—DîNS%;'ÀCbZ¸ÛÑŸámFsZ7±¹l  ¯î‚?.ë˜K586ÿ®¿d¬ÿÿw‰½Ìþ’Ué­Ç~ÿ¿ýùÿr=±&ÚÑNUU]]ñå/ÙaUq;{œËÎzû³õk§+îµ”¨ÃÑMýno»2ê]Ó¯÷é\:¹ŽþÈôKü‘ÅÉGBstBÌùª_W…žHäœÕÝhºž “ÀÔøÉó#ØÅíôª4ý~ªôðÎZ í}]„g8 ¬:£3B ×5UÿŸˆ÷Ñy¯ßpÐRB‹W¡ ´ÀÛ•GÂa9\ØýDÔAVnYÛ¬ zµK è ¥E¹ƒ?¢ShúÑÀ¿bàˆ¼–žêj@þ$´:Èó?–:¥àŠ:bŒnCÝâ×Òデ‚Œ7³––€_ŽÓï¼R‚.ª¨ö«Ä:k²ßë$(ÃÄ;EÞêìÞT1òC(ùñàÊzZa#ÝÆ×NÔ‚rëjçw¢]³Â«çú!%ã%Ô¶Ã –D†åg—ÁZå,ÜØÝŸNégàï=?_cù;™ô pÏîÏÞ¿p5p?` œ€gPpÉ=^Êø.…[Ž@‰k‚•*Ó,uɾþv›®[àssÀtçÌ|À·ÿ£ 爒 ø´ÆœK\).5d³Æg΀ÿØ S€ÚþãIW(eÀc©2|/CyÑ N+‘e÷^®)¤³yÄÞŽD– @ûüÀ¾³ì©òFMgícö·ñÚ‚ŸŸRlξ¬É{èo^íãà žk¹YÜir’H¹VŒÍ«ÁNsá?üPóßU“oâUCí:zµ„ÊöçíPÏ£äÇ’3fŒIaNKX·£ÌáÇ’Ð\ÂW…Û¼Àþh‘|2“|uþù«€ÝŠd$Ÿ²èÀ)tzȧ¥ƒ‰nºU;ëOJbÒdrKyiªƒ?vs-^À‘ÀPçÐô%÷õßöç7.É·12ÊRÚ¦wÐZ©k,·†™ }¥”Ùe¦Á1<4çà™˜ ò\ÆÊSNÆ“9‚ïü󲺄îPßCÖM a¼Õ¡î|XÇã?¤œ[Ól†/ŠdËR³ÛT4™Írc›ép7L>´lJ)ÁÑø2øã½îAŸ¿z~þÂ~ÞN‹1âsSg]Ȱ[ÏtÂȸ-…L9“Ï´toÀ¾0qM;.éþfvšr²_`–ÜÑg©5çJœOÿL¶‹÷ÒþÛþ2V?XéíÐÿâý«ÖXøíNMUP}´½L±û­úÎhgŸ³Ó9d“ý3{!¾\»­ûŽ÷\⣾¨ãÐGEr†Øñô9]C‡ÑéÁ¿öü#—“›¢Ñ\8¾E©tý‡í:u¯§é¼À²êªøOEŒÿ‘H /oe*@«¨0¯ ]S롤OcT]ÐU鱞®+¨Á?ï–s@UÅÈ ‹qêc¬¨ïò`Ø`U:¤/èçºÔWgDÿèºfÒ›¡f’C[f„JnŸ‘–FýQKàÓKJÂkè‘îK›À£{‚Ì"æçòí³¯E'èå„sÈÏ ª¾8§C´5¨ÿyàF>?‚Žªˆö÷²x×1k³ƒRóuš F»J),P¿#ê\‡Cðèé†üÎc:Í[à­GéK%õç{k÷Î[aÕSMP‰»Í{QÆTŒô˜ïòau@¹² T˜[ƒWþ‚IH·ÐŠß¿5ÏÚï$Õïà,þ„2Ž?Ôèß m؇{âûõèëjÀº-|Œƒƒ§¢Œƒ©)D#¦žÙÅ›â ש!øã$`ïL{Ïää}LKÈF`U8ùÀ…¥š,䂎3Ao7äÅÞ éðÉù#Šú¬3 ­k€?Úñ(pâe mŸ«§ ª~–nà{\D”Œc*Âyûq.]{Í>ñMÄðª:úÒËú›ˆ;à l£Ó¼N¶ËŽ)õÌx“Ð}hb»CÁ@m¥›\ãŒp KÀãÀ ûèozé|ë?¨apDŸð¯8{=øc§Ì‘ö`žrÜŒ…Òß'wÌðZþÍÜâæ\(Žf§–\FÙ70ÕÊf—¢ðàÓgT¥Ë¦¯èârTZ˜°¦t’¿Í`óVâãö3uÁÇMaó»lÓ¬ƒ—ÙÁ¹Ð‡gô—¹×ǾìD…vúO™S¦Ð&µ®5«yd™…RQj™³fµùÛ¼AŸ,’Wfp»5˜/3ø(¸ÌB}Ké$zA@ùÎYþ* U¤2p÷÷xŽJ=À:©Í}3ß$6äŠÙaj˜4æ¦y*K%ƒ‰m2ÊNÉ)Áê;(ø£ ­ÑŸøã¹ýL…v,¡~ÐhMuW ç&sçÈðXLpy-ÓÞ=ïFuÓ»éLS®ï64CLwY-|Þ }xV‹ÃpÅÿÊþ`öœ¯øãµ•Ø6ÿòóvgS]¥V÷í¢ˆ²Ä*àôqÀøÙaì¿m¯uÑiæ z€¯ëU8õØnfÛú†Î¬-XÅsrÿR9K:i)*-×E½g”FÕýìpÎ6ÝžŽé£ºÅ¡êç"~°RÙéT üf_öñÍTо=ÝTK0nC‘F…j>¯è?•?ñ¸³IyÏÃý ÅCóS ÒLZF×h\I$.I÷µFK´Õ‰‚,ákÞ¨ãQAz e~¼¶Ò?v•[rßÞ·Àùnø¬jt,HþØàdC9¼õK»é ŧ‘ÐO¥}g‹”â˜Pâ³h=ÿ$¥çƒT„BÒ}ï‡#èµ×&JÀ—€ƒýÀ:)))ýþXK¹À)½h×cH6›¼\ÖQÂþxÓŸï­ln‰z¦ßSVðnG8 o·^MÊ^ŠÅ×讚¥”Ì¥ç>¾ü%íá?®k¡1tâ;ü±ÌÚêÄÐOÐ:ùÐü ú°\KjnÏuø9CŸLàý`MhqôÏtüÞ;Ír„zo? o–3 ¯.jvœ§€vS(޼‚ŸC#o—æ¢DF•“Z²^.PoÕ{b‘‚ÿãüÁðêÎ Ü®À+Q†IÜ—nÐX¶ÀAx̪ޒ)æ-ßàòr‡q*ðæk¾ˆh-¹  ÇöŠ@ûÏ;b&<¡˜P}åké8/­²¥+ }νa ¸}„¤Œt‘;\ž“ -oí 'S"U/ÿ„±J¢1ø²í,•6r|tÅ»füä©-Wy³s­Zjæ4ß…I¡¿Üõlc²‹`ô‡S-Ë£¹˜^ªÉ>ðZ3L¦ÉxÓɼ–Üæ²éa†x§ë‚rÈ1ø™Uœ|Z˜›qpúrÿ*¯}Ý Ã…ø4D!9BÔ*Ì¥Œãæ7³¤´6×Í"sÜw¯Ë DcÇô•÷œ5'G1^«ëTúï€ò=°vªXT ó ½âˆð¼äƒéˆ-Á"éÌ SÂ4W¸jN*ÀË•“’_J±ñåJx Ò%ý8€?¶ÙwUHàˆ—QmµÑ½%…×íî9SqÍ'8Hî÷¶Éãæ3ÐnRį+{ä>Ôê}ÛË‚>®ý_90.øãϯø#”Ô‰t?º[SíàŽŸSY•V¯}ç×n´r8#]ÎAç¨ýΚtˆ¯®=Ö3§˜=,ièÝ%ÊVìªöuAg×ÏU$õ›“ê—ø£Š“ š|±ÎM£¡êCêæz´ýÊöÓéœ>‰™ž”2©²?ѵ‹Ø9Uw8†ÕÔÅ·?¯Ï'UãiÐk8¸¨.”î$ðÇПˆwÞ9®jÐ è-/çî ß%hÕ9à"? ^8ÏeȦðbÝuÊ KøÐ:¦—Àïg¢à›ý©%yy¿ÆBŸÏ¢Fœ•ïP¸% FÙ¼¿ç„ "â6§¾¡/ßáqJ ¼L nŠˆØ98$P-J¾Þ$ ¸ª È5•Ã~÷ƒX§­ãv(Ì\G]1öãR8ðX#ÄÈÊ÷ÖB‡?§C4Ÿ&aÎáÿѪª?:ßˈrË £B3à“«ÒY0RIÄHMþPÁ‡é„ꨞò``czö|Bgx A¯0°ôêwŸŸïwbêW” êùO ùQðM}pM¨ýFüåIï;½|.ï¿Gä%`9ï¼ên¨ÿdõξ(Þ"ç] Ÿš™ò,ÎÆ§m"¾›ÌŸ9ª”™f»ü&繩”†ú.dI^hu¿š“S'=(P¿ÄSotA|VžÏcàRÑsê /Ã2ƒ§ÈLé'd¤¹ÊO9»Ü„KH ¼ô²Umæ¿0~ú“ þ«Ú•< ¤œQ‡7ÓI^&[ÀFá¤üGW»Ý‘AJ‚›sYøuð+À¡û0–T üí/ÕPúˆ×ðGîE§À³À=ãÙÈmÓ×ä7gá•§Ë °ÔŸð<ù ?à[ü›Œæ~_Ý¿ªjå±û‘Ëãù!Bmóéõº \“VÆ5¥¾L7™O’ÜÜ0cL ©)L<“]ö‚)ws4øÌ\€ÃQÇ€xÅì Nb8æ èÏL²NªNp‚ÅÀÀí¤‹y…/6ŸQÆYr_#˜1ò½¶”5ÓEÊõÍùƒ­M*åÇhkF/™("哈n³Ï45©À˜‹f  n"Òt)oŽ˜"²Q²‚?>cÔç¤Ïz ]Ó×øc;tñí[0…S{=F²ºÑÝñÞI'ÅÌ@­ó¸[ÝM&1øc7s3™2¦¡,–GÀ‹ëúý eS‹óè?˜wÿÉ+²=ü«üWO¬èvÐ÷H¾=²ÆÚ¸¢°*©ùüÇ_þÄýÎqg¿ýÂú5ÿ±Ízä4|FË¥#*¸Úa×D;ŸÔEôk• þ#h-þõUÇÉL]¥sãS Ýã!ŒsZw¦³ú±. n©ú“ç׳sØÙÕ Çyô\ W}^åËÑ5Ÿ6ÒMDO †z §êÒjìOÄ{âœQÍ€™Qàm÷B¤†¾-ãˬtüƒãìô\§hÔC½fà¾uGïÔ¡(/ær/sx.ØbÔrGÎÇ7Içá'¥è ó9ˆxûœ|t‰júvÂ{§ºæ¡·À‚À¼;ÀÕ…tåÎÀÛ1ŸÂ@÷ÿnÿèd¯#Ö:;%–Ž ¾tÑâaƒ)Kò8‘và¤t Œ·Üá1I/̨ZúíwŸŸ_´â«—ú¸çˆ/;Wg”²$¼Ö Á'é±j þ˜ þÈ5Ü åï†ZßÔÞÉ'ß;¿v‹µÇI¬ßQ&èÝ‘hós>þèƒÒv‚;¸u˜€Òñ Ê6~V_‚zÿ \FCi±ºi? ÏÏi£;QuÊ Œ\Ãùà‘¼üíYÁ"Éd“,17%´<ä¢RGVÂË…æ<¼»òvø•œèénz:´²)"4Å_màõÜ£¯¿ã—¨ã4Y&=Ä6ýLloÕ)4þ´d)Nßp *¾…w_Ä^ÿMĈª ÆÜІ11‹›`ì½àÕ@¹Õ]ê˜9ànw¹\á¬ò‡¼€s þxÃkñéÞý«´ªu ýƒ=ȂŒöå¡t×ËB)/‹ÁçÍ,“Åœ×f’œäÉòIŽÀ“5â||wƒ#Ê\¤¿äMjÿQƒR‚ÉïQ)îÇ ¡ˆ*Ê3™a,“l6ÈŒ6—$£‰êÎ6­¤ºø™Ø@è­üüL~Ù•T‰cP—€²U±ý(à¿[˜d<ùAéEàÜæ tü2"åÌM3ž+˜Á,—ƒpJ!LyÉÞ^Ò$²Ú&µN¬¿¬2zdV‘áv‹Ã~à¹:•“`nsØ 0IÍ=ßyêíM sÂ(¥¼Ý“rG2KQ¸ë»¡ô|x`ÿþØ`¿WôZ„ò­¤Úz™dr»£d¶¬’¦¦‘Écªº~î“À-nÚr7—©dj Ï_`ÞÝÔ1²óqmέ÷ÿ`Þý'¯ö(û‹WþdE±ƒÚð£ë©µÐŽà\rªª*ê©Íöòï–t:þàc¶ùÅüí§¬×NWþã Ðý  £üíêv0}L—×JGWqœ ×"}}U$¦Eº8ptüG]=ÒþÍÙ‰9þZÔM(3UúÉûWáÁé ¶–ÒC`B1ÚBåy)ÐëœZ…y¦QêAÖEÕˆŸˆ÷Ð9¥ZC#òÚEk€1¨\̺åíYàˆ\ ÈgStꨃÞ3ùÑ:¡êÏ:'fs>@u€9ñ¡ãWûüG)~KyÁvïôDÚO…iWÏÏ:5蕇G>H·);Ú.!e„êO„2˜‘+h&|Ò(ëC”ƒbÐeÌþÑ™¸Ç­Mv* ò¼«§÷8ÿN@é•äå½j~Ëÿ±­èò¼ù>žjêßõGWuL”ã&Jw¼]œÊRnºH‘€þ/TsõØ3“±·j> ½Ô!ðÖwòïž´.9éõgÊÕ;ƒcð1x¿vø—š[pq(×=Æ# (>¯E?Ï‚ÿè>Ú£nÿcÿàv§´I5*Ægy<·zņ±%ªøÉsMDnpn_þĪÌ@«¹ÜìqšÓSKýg ~ùà8àÛ¡Tþc¯ä~ðXKËÛ#9D–Kù,ýÍS¾ÏéÁ!qRðQ|9÷Ó«Âï=±7|1ÆÜ¨8œ“G@½.¦‹ð[Áe¡Y=LR7¼[Ê M# ÷¥99x€ô[y=œT,Õâ›xaô z î>CmàØVÑ Þük'§8ŽÜ3SMVsY^™a²ž7È[9 ‡TkŒy,9L4w­©+Åe7ð´$þXŒ•æÌÔ; ^Nû¨?}H#©¬L¡Y £˜‹›0nI³PºH]óü1 _˰Ñb nzÊ8¸%~æüGR=* ¾/à?"Cãyù™ïó%›òÈ}Ôð½é¯pPzƒê›8à“2B²šˆ`½½’Zr‚?.aÔßÒcé˜~À›íOÊBnÅ\ZMà?"»ÀÓä¹Ü2µMAÓÉ]‹þxlÒ™Š\Êmh†Á,ïTäëú*JQÜYVo•ûúJaO°G´Ìm+žÔ]¶=ÅåuÊ«z*˜óóï&v&8;œcÎ^ÛùÅõ»¬çNKbR0èä‹*žÚh7³_«‹ºœ~«bªdNÆ_*g;ÈE~:+úh%ÕmôßvgîBáÀQáM*«š?1†Ý üñ'œÂ] _-ò'oöÕ§ðË¡èQj 1C×û©üíª °è o3m 4¾{9³ª×ào\ŽÉ¥È§Þ:Y%Töa}J+JxÁHݼÕá¶Ã×ä¢Àç4¼|Ô¬P„®:ƒˆøÀÉ…‘]õ;’ˆ™,òŠ'3‡®®EI÷‹²ðyÌ'¡‡*Ë3¨=±ŽØÑñùïÑÞJçl -؉f d;¨*5æ²ÐgGh<Óºu5ÆP%ýúÙ ½ëŽU=Ô̹à6*Ñ x…2TÎwž— ÞTº:dìÀ)yú·šÆ«xÏROæü(;X2N´l>"z°Ò¨íüq ¨Z:䂽'Ðþó?à îC‡gâÅ\5¼Ãëd©L‡ÿ¨iÆ›Èn4·¢;^&·ôƒÿÈÍIðwÏ}ìµzä¹óíþÑCë6z­²w¾.]àMð­d '‡ÿïÓå Ü>2Ÿ7ÂIÜà^\Ÿ[Â{Üã«p(8ƒþ¢dêXeìÎ`¶`êÆ`ìÔz‡¹)½ÌCé,e¸Yi^HR“Â]cªIvÙfò™rNË[¿»|ï­ŠP¶ö}' Zä. ¡$²Œêë‘t’ƒ›‡¦€ù?Ĕɖµ33✉»»7îînÓ¸KãNCãÞ¸»»»»»»n…»û¿óÎL¬‚^óþIÖë~Tߊ±÷þ23"¦Ë_RÁÜ7KÌj‹23€ ª‚p¦Âí²#+O€xs0gÀ –‚:Gá3óà÷¯ÝŽÞÛþQ<1•3ð.j ÏÁËù#4i­L5g%œøAK “—Ëå€6·ƒCá´ÔX· Ô†‘UhJ‰o«šYˆRÀ?æÃ!XÆðh™/ƒ%¢™dn²‹wÞI¡øaå0>ÝŽÇÙ_µÏ|UblÕ¾ýˆ¢Ã?†ñŸ¼ þ1_VBßCK3ÁDp›þqœ—Vr¥Ååùü†—Á×£|r¾^?ÑÑý}üq‡ºpîGçᓤ‘,àðrÛŒ7™½ù’n™Á3Ä2W¹+>Uƒ¯ñ¾ÍId$7übþàI+¿Ý„âÃ?®¡·Ìä¸z½N#魯oÿó®2ÄŒ3—$‹IåŽ0奚l1¹Mp¹âsߨ² ½¼-õ (¯´}Љ }ˆU@Î’ŸóÆ45—–æŽÙkÖq?ÊTøÇ‰mÆÊSÎâŠ!SP‹ê:êo4Œ±«ˆP¥Rèq8ú\u ã¦77àBÉÍ 9k6Bók›Ëð’îÒÂt6åŠrèÝÞž Wõ@(ÑýÿèckýQ/ñí_;•ºë]RÜ åN“!ð±d¦±©d»Wݰ.»™L9ní3ýM6Ù/O‘Á®ë[è§õ¹(—Ó¿¶ÃÒÿÎá­ß>í‹7 âÙ¿¶¯Æç㣵Õîø;Å|ûzsñÖXÙÎÇÏYMùµù绬ÇN?Û·~{M:«â©=vmû‰º®³ê÷*„Šdrþúhæä÷veÒi6/’îÿé¬Ô]è–&¸@FÊõ“ïïÆÀ¹åP=¡œ§¡~u¡¡Ux5Fè)µ%Ÿ¡ÁHéõá£uÅŸš®Õ UŠ’÷A17"‡^E²YNóàí)4˜·(<.²}gô;/­‹z§F¹¡£Ù¡ZÀ1áh4zÕåüŽ´„>ê¡ð“Ât*ÈûWçœÐ„’)q¦yÀnÙÀ/(Fi ~€VXVØŽ¿ï™G¢‡*ÆWÀ¹l·#@Îãì:Á'²áê6¥Ê(¡ ¸¾ 5âŠüN0×·vý¸ÒpŒø¤úê7«ƒxÇ-+–z‚ì—Óß¾µô+R0æyßóó j€ºÇý S¸©ïNCWÔÎí8ó»÷¯vXÇTÚBi“ÀyjÖ”Tiº_¦¦L¼ÿu-Ü$ Oƒãö î´J]ýæý«ÃNOÝ©â¾ÀKÀ@[¼ýÝA3Ûù%4i·¬5'$¢¼ä2ò‡Ï?Þ€nÆ!7ïá㜞ÊéÆÚ0ø#-¿&J˜Ë›¸”h‹„—9ÜOfÉHèë$s‘¯p y‹óNˆkBŽÀ½:rq0Þž@ûŸ'S-i =§ß8η=ï¥Kì­¸”Ã!14ñ\í¦rË."åg‡,gÏööÙLhµ=ê-zÿyjɵx$݃-—r–#ÈM3üqH>™î2nwåãj\ï°ÉœúÅý«VÛÛù±?¡ªÜcêÛ:½’n&¦i-}¥‡™nÞK$ÙlÊ‚Gö‚#¢ËîÉ 8#0/÷áߨC@yÚ¾áÄÁ5xŠ3.&5è‚:I9µÑnk3AÊÂ?žšmf-øã½Ì‘ f—¼„K9â­üqêꔺyÀùö¶n¨lY•‘®q–ZIx7±ñÃä4·Á[ÕL-“Á7÷àYКId‡d–Üàó”Ÿér´M¯ðšvDm#ìð½ ?Mo’tnH·¿Œ•×WÒ„u¸OMf·¨)ËÕÝ0f¹), å4RÖ%}énRN ý½YRÿé# èch@ËܰÒÚ¿¶/ìçã•5ÓŽìÜq*«¦ê®o·Ì­V^gÄÏÙMù™µ?û¬'N[£µKA ’¨Åv3Û_Ô‰up$ÒN†_ô,èôÈŸÃ’évb8Ôß´]ïÓé(ùÉõ¯‚ÛÅí̪”ô.úO9¨ç¼JqQ-†¢œBŽGe隢ÿRÓƒ.ÎúþÈžÍ|Ò§ÄÉù8ôÐ[ãz†?½B»§?h]_ ²†¬5zƒŽF¸ï›ÓךӷÿÇ\ªÅIøEã™ðaÈöùèœ#ˆÏ8ñpNEP“mäí‹8‘ÒÃEÞAKÓsX>…¿/Iì§X¼yì¶u²ÞÝþ°(üc „e¯4CΟŸ] †ÈÖÅù1y³ÓçÃA.‚Æz“ê0ßå§ÖC'8½õýnU|¶ ‡ƒ¤*Ôe“j£Ž@Qj€?ºS5ðNOŠLÁšýèÔwøc›µÑ1ú%BŸ¬z’ZøÞ-Î̽¹dE@"ÞÃcx êèâŠ/ÂXï"€ÿ©ûöÝ@å-q:è6hµBà‰]\<Ó ¿‘iú1ǗͲÆÜ—r•³J)øG>”™Ù¾2Ôy='£ªºg 6 ¯l\ÓI µ¼—·ñ$º†¤ÿ’_ÁÏ&Éd&·e¡¹Âç93’s7Žïí)zض(‹”óÔ^üU‰®ª€úÜB>IÅ3ܯÒa MšÂŽ”3cMr7‘[Èí#8­4€ÞáØð­  ³yH C(šjòUyOÕ ôYi Ìé /’6¾{s‘å™™\¾Cö˜Aò‚×AÏòß\ŸÛð%ˆ·BÖx¯) ¼ÊV»¼oÿÚ; ñæ\AßÒ÷x¹4‚kÔ€ô2½Ìcq¡×ýLY/NgÚÊPÇ0×°×(Ncê–žàãtèwó)³ä¢Êš@RsÍó›(IkÈz³Ø<6dšì0+å¨Ì–WpàeìÊ2ôòq:ÉwZ'T $ÎÒÈ"‹™õZÚ-âæ3»LÛ4wÌ5ˆÙlÎÈy/ƒL(øQ"iÆáøF] $°k_¬Ÿ¸Þ~£\xÇ"Œú1tY_—eîü#·ÞgGp†é:4J/Ò1) W~òùG;šª í8‰L[Ê’’'AM¢>ÐéâôAg¤ z ®üSë'>p.ªÒPµ>úXW: 6îŒì;šCe7C¯Ÿé»úž®õÏ?nY;õ1UzdÁxHÑáOBÔu"úf6η ü‹AGíPzJÚæ5[t#üã °ú¸ï|d|{ädæûp•p½=ôØ[ùœtR¥°?þ ¬GÖ>û‰Î­ZL½àÙ(>Ê­è[æ&Ø¡ —foÏÚÙ—³à¤Ó¡áÍ)—~á|oÿ¨{Hõü¶ ˆ£+”¼œÎ:v†¶«âê ´¶'‡xó?º£nj¿ÚÿÿØhívbë[PøIÜÎx~Ô£9?ܤ’ë"Œú(ìÇÓø¬ïþÕÔq<ü¥‹Ç6êú7ïœÍuZê?0²óð18R6ÞŽ„±™r£F‰%žl—©ÐÓ8ré¾€¬ä?˜8-¾¹´|…oý’À;…ERïÑw§R^ž…\>‹ûÓ9ÄÁå âaP»ðQæü£˜\ã¸:…ø6à5¨}1jKw­¿ =xü#1g†Û4âäσP¯Ñü›”0Lh7œ›Ï]ÿ(-­¡÷)ù7´Ä |óBžÜ”;ÐûWT?z‚>üŽºáûÓqž"£¤±tæ4Hôÿ@ሟ!Gù€<wuæªÜÏ¡†{¡Ñ“xæüÑÐ*ÿ°¼U¬p¾`)=Ç·ÿdžMLi ÿhdÎI"óÁŒ2u¤©L3IL>9ÌÝ}÷›ÖpAnÆ}¾w\ÌöwÂrn0ngÊ)µé˜š@¸¢yaŠ™Ñ2ü±ÉL0#Œíœ1K$¢iƒVL ?2²žQuæ‹!_XçTTø€·¯Ê~äþŒTQüMysÏT5ÁÍk9bx»‰€Füd¼ô3‡M~¨}*©È!|»Á=F²x¤oøÇû®îÈh0÷V=A긶;Ý[CEƒ­ šÜîR÷ŠIå7í¸¸›ŽRPÖÉSº@gÀU©#àFú×V8ÿß9RÛ«ì!-óÎJfÿÚºèŸ×Ö;©ãïtWÕ”òùÇ&«®3Ó¹ä\qÎÙö/î_»×zïtÖÑ‘h?é,ôD…T;ìŒv|½Wÿ®IåüÅçÅ‚”Œ&ƒeÆÓ*é­®n‡qîëÖ ÀÃøifª¢²üT‰¡íòvuÕ ú{œ:Á-ü}÷¯ZS½z ò\7@©ótKÕû'Ê ¯žªZÐд ç2µ¤…PÄsô~ƒ zwìÉ¡ú:è½éïX÷ôføa*ŒæØ=i%Æ9oÇŸº\”ßã§KPÞP³\´Ü êmííNz†ì\“Ö¢·&EÞ.ŒŒŸ©µ:'`ïÓ8üï'[|3ÃÊ%3Ûd7þòÑL“K¼Ê¿ÄS‡»ðEŸÇE@ ,ÕŸW€ÉoU³{ÇVò(ãLŽ£7éÚrCÆBëI}™kú˜ÛRÊDtǘ†RDnÀ?rÊ~® ÚJ'[pFã8ñW÷¯Þ8i‘^#µÔ‘ ´^"â&¤[ÖL—.à­S¦‹Ù ñžŸ÷”¼•öòŽs€6µ·b5×¹õ €óídWq©:x»½áÅši»„tË›K¦¶Éa®ÉH=“Ò7aÍpiµO&O$»äöÍÿÈC÷t=dÌÏó[ØÁ0¾!;ޤTF/”ÖnFwªÌ“µ’Õ”‚+s·ºL\·¡ÀÍÜÒ¦­éƒš8ï´~ˆšÔÏý©÷|ØýG`öDûó^5þVtûÿ,é©5ÓŽíìrJÀ?>ÙQæa+·3×¹èpŽÚï¬U¿TÚ!ëºÓN»ÚY•\OÅpæÚqõS]C‡„$ùÅûWÙÄ…fé´ÐÉTUÖí´ÎyÝ šrR›4VU~ªÄhv;˜jMýÑ¡í§Æ¼=ó¡ZN;È[G6 Fú½LWRÓ~¢¼kÎiU”ÆÂ)NCIw‘·FUyÐì>”Õ?È…X,:©›þÄüÖ4½A+ÊMOˆz5CI‰h8 5Ôœk±rXƒòºAÃ3Ñ™ wQÙè$¡óо:øýpP  Ã%¸Tö=øc꽃âðJMoõ •ÿ‡ó?V[Klÿzì§Íÿhm_OÕQÒPøGk~ùßó÷Á­–â[ÛQ9ýÒùÞŽ"þÖEç¬~Léøøâ ¼&ýAÙé!e€ÂÓûUY­MϽ©t¾;…¤ð&ß]ÿj™uØ1ú èlàppÞÖ`Ÿ6¨mOþ‹mxRUªÉÇ‘¿WãúDfo¯¾`Šjä­îy÷›ùËœ¡º7|-oäMœ‚÷ÂÛfPz(ÜkN!e½9#6Ô¹¨ä—Eð—ð‹{pøÓ NC­ôäïð‡÷–^}žÃsñ™I Ô‘Z¢Êlî%#¤/ø£žyÈÏ8™Üç‘e:²µmÌMá¯ìy_•EÕ…V½¢,¾U+ñ.òã]²IžpH)k&Ã?>š4î~ùÈÅ¥øÁÝ¢ƒüx,Oà#H`ñÔ×÷Zõ%tûˆêñ(ÞŒÒæAÿÚ4BÈE3zÚ7ÿc3Ïçr=±—ä¾·›ãÊ\žøÅÚnS­‚v ÍÓÙm>˜ké«:——šÈôå¤|d€‰hRËkj‚GNš†&¢ì…ï¯áز4×Ì5< ¼™öM'ÇçóÐûÚ²™ö«fT”3šÓPûýÞ]6sÄì1ãÀ3çÁLOÌ%!ÓYNsžþXÆ×ÑÓë ç{ÅÚ£R*†òŒê`”H^›"àŒr&šÙ Nº Õmö2ã¥0Ê."'%…Teao·ÀðúC€ܰ¯(9Ïë÷Ó¨µž7 çΓ:hÁ‰¦Ÿy/½Ýun7¬›Î,æ4ই¬‘H0ô1$˜bpãÆúGëý'Xö,{\@ˈ¦ÉϬévpÐFyUG½±½Ý‚÷Yœ•Î!g›³ÛŽf¯þ¥Ò¶ZWáïô#}G¤3*ŸºfO·#ë:¿Ö:±Jìdû¥zVqPXš S!çN¢Ôz´îbgvŽè¾´^¯Ñ (•úÉýÏCÚUì¨ÊS¤³ô7¡Ô‰¾]Wë¡ÿÇ‘[_ê~Eax>½ÒM áqh³ÔnÅÃ`P­ß¡ò;AWÉày ÑW)è>6ÔÞ{Îï½7– –œ.ë*²õeîµ&Ú;uðÇðÀiÔ16²1Ê(OiBƒ¸<”ÿZÑÛÿcM!5§”ú†xu[ï8i=vê‹“ס½ÀÁ³Qi8Ü5œáz§&¨· NÐî¿@øcЖ)è"”¨ûŽì·¶:aôUè}7¤wÍ7ñÍ 02Óp#$ù8ûÌT‰x2/_ÅæEPßð˜"h“àíÀ«6ìs:êšH†y àÝáá%ÓPÚH¾½œ/ëÌrq¡Qi%›Ì„Ç…‚Cµææ)œšé!Ú0– ÅZ‚™ƒÏ ‚\‚ß¾áà‹æð£¿å°Œ4gøˆo¾(--?á (­ÿçºk¯ýªÄª=Zù.%âäðØRðË#<^vËVRÜt0ÁÝK¦ª[AÎqVjÈÍyÏi§„ö¯}þxI·QbcîÅ]éhf¶Ô†3¼àf˜ÉföÉu“ D¸@îƒJ¼wµ«‚e †ŸàÑCôÀ²vYEì¶àÈ^PÛf8× ^–}ðP¦Œü)L+óD’™'¦©*ÄÏ$7QVmœÉ^ .Ç)éó»+ì§Îpünô¶L²–fëv4[šAïÓ›¡’[Š?3Ö¬7a݇2Xî™9bL'xæohéç<þÑHgÐ3ÎwŠuVECrôž ᛺璲îP³¤uÜ ©`›ó`Ìñ’ÏDróÈ6I.Y9 ˆ='ÝÒ“0¢¯øGG;¸o_å¥àºÔA·01Üzf²4Dmj›&Ÿ‰ þ¸`’¸IÍj®ëfñæÓÈ,y‚”õJŸD†©ÉÕ¹„Þûýa÷="Û£ìÏdöÞ ÷¯ç¼€ÏÛŽ¿“MURgíj¾ùƒEœÙÎ g³Îfû×Þ8þh¢ŸÁ=nêÌ4A…WíšöGu^‡Õ/•QÔ¿TÏ?¤¤h†N joHáu'=ÏN ÿèJÓõløƒÈ‹ý¤ä³©šÐ£ÙÈåÅ|K v†ì¢íP¿|àÓ”´Wôº8ËÏ9¥Ê#¿)ÌÇõ+‰¾4üÑšžÐßÓ¶§ú’®¦ƒÞóý,øc¥Ž -½Ex!© ÅÀx_ …­¸GŸðÿèVh‡ßhƒÔÛv3Ì`Œ¼);i+%F­bCÕNÿˆÿX w9„Oƒ‡¦¢×úœŠûè÷¬ùö^ŸCÍ{yköR,j UœOupÎ ¨/ÿÉ/À#Qßy(sø£8ÅÑO¾ËO­ÔꉾKñá\UáF!Ù×îC]üiꢞ Á6à\­àÝ ‹ÿø¨;}wýö}Ö '†öîîõçvLð¸ÐúÞÌÞñ\n²žè¤ÈÊÓPæUhÛBÔz¸¦¥§îÊßü„f£Ó}«ýÎÛ¹#ZË{~¾ Ž>ˆ£KDÙ.#Ì ‰/gá©d%çEKFç†>c|Ü4PÆV!áÜ3¨Ï„NöçÎððylÉc$øñPê¡rJfšðޤ šÄpì3žœm³'Ðþµ±Õ_¸r÷(*gÆ÷–ãMðy²K:r*idzš`î “ÐÝŒ²òK7ðBFpko|×dø‡·ªeÜ@ë_…ÕƒÁÊWè>RJ3žGx‡ŒC‚žÌ©År{CáÉ ã'ïxüc®K]xÈAÞ }þÏž­?ïSÓ*lw«µƒÚ–ñ%Ó×tz9"ÍÍÉ!¥»ékŽCãÏ›©¦­´‚$4¥d¾wǃCeGÙ1©e@y¹ì‡NNÆOáøYdT³ÒJƒ?~3c Ã}Ì3Á „Ùf³œ2Gd³´•‡œ$ú ×û8µÐ)¾˜?(öi}®FÅ~­ËQia·9׈k*™‰(y Q(ó1ü££yabÈ^\í,üÔXˆžê§üc³Iy:-Bývà»fIL7¼Û ¿;W˜5&™‰é®uwš[¦¤é˵Ý|¦š©V|æÛp?U¡¦8ãÌú×V¨ýß9bÁ?Æ~á™x÷!¨ã¹µÚŽïÜvJªFê¶íÍÅ;`rF;œÎA;ò/òÇë¥ÓL(Òu¤ù™ÊQ‹¡Û·”ŸÎ¢C騪Ê/îUþaÓT(ûXŒê躕žmÇrŽé^´LÏÔ)(•P…ªDmg³½ÕK½kÝúvšêòjC×Ô*0èxÊ+]–Ž€p*¨q?QÞEçŒúÝ·êZðÇz¨ß>ªý …èN¯è e¢7è_OuC9È^·vé ::´ÙBó*íˆNCA;}ëƒ\¡X¨í{=n•“ö:A­–9߉Œ:•ÇhÙ@{A2àÂùP§´œŠòg¼ cb3XiÊ{¨©è?|ü¶µÄ>¢³ñEøC_è|¸v]*‹³®É§© … s¾7¬gÀ_¦C§ZRr}×ùÞÌÚÇVBPÿ}ŠÄÇàA'àçÞ³øL¾}OÎÒÕMY2:• Z[îÔ–BÒQmS7\›oKÛiuÒè—”Ù½=; ·ÖÔŸý´¨h4=Öy+Ïåù| „ãí›5Ÿ©E¨¡:ÿÍúWœ±º'¾5ü£’ìxáV´Ú8N$‘d²Ì6Ë$&Ô>µx3¦çk$Q˜'ðAµ¿y~žI¹à¾TÖŸéI7hã™2UúÊ%‚~šÓÉ-Ô9><é9üc!’iQêHÇÝ¿J­Óò'o^Ýß(q äå²Qúsn)o:í†u“¹‹¼§ (û&Z1 ¼ ^Åóx&ú~vUçkžÑƒà‘vãGÒ3Þ"#=Và‚òJšÜœ–Ó¦lá•¢?·àâ¸ÚGA439®ÓýÙKZ¥ìNhã®|Éb,‡ÐuZ¹'½ É1¥‰T3ÍAImÞk¼Ù){L.IV!}Láð¾çç­ÙþbÿÚľ÷w³ÍS(¿” Ujeä:ÆÊ e^¡­ÿíü§Öb;ºóÌ©¬Z¨›vuÛ[a¢¹³ÇÙæt¶Û­y¿TÚU+ª­ã‚é"´P…V í:v|ýPç×1tp•ÓIòKõìè¡`´@§£eP…0º²nhgržèÞtHÔ¹× ©Œ?éEí ª2ôjåºMU‘·ÊÒ ujz:eCÉ®è!º¸j÷3å©Wª†Ï?ŽÀ‘–øÞoý#t6y«W…áPœ…îëGú½.¬ƒfÇÖMð‡E¹é=JZ}ëHQi8a1FvAäܨ<›^ê~ø®T´È D‰«âäí‚ÛÿÜWO‘1¼ùç騛›2‹¦Bé7‘w‡?#%¡³*ŸŸŸ·–Ú64ô’og: _K‚3Ì §¬À{ Ö½¢Á¥æ!íïÄ÷­@+4¦‚úµxvžw\´©¤8¼§ ìo\‹Š” µñÞ%Þ£F©ç<„;AIÛÛZƒ@ÂÑ9$’´ý;þqÄ:æ¤ÒÁá°£¹/kÞOõá¼Ý¨ä*H ‹ÉPa>ij¡Ÿ(:Úp!MStÀw×S/¾áN_ðGKøÏ ¯ÝŒÏ-¦ìÐó(¹r‚™%2nÉ/ ¼µÖ)Òn5^À;8.µüb·‰ÿ:²¨” µ2¯FÎɽ¡Ô#ØE çy¤¬“®Ð¼þæ.>—¼å$}伉kq´â){ÿW%æR½àÑ7)5È¢%—€²>â%²X†szimÆšpn0·¤;\vs5éí[¿=6¯å[8ûEH%ý(a Zˆ$æÍŽ»-ëËÛá»q–­¤—„ô…œ“„n¨ñA‰i.qPT+¾Ì'Ð>Qð­Cõç]›YµíñàápÕR< üqHW†kxÏ?šÉ03ج‘d&†;Ä$’z²ÃT1e\cu!gÅ3ôW@yÑí*=Îà újyA‡Õh*ÍéÍY°ÂP™.õÌ3*ÿÄœ—ir bLC9žÃF– Ÿ4Ò龸"ƒ¬*)裵§×|FǤÚ†v›þ&ʘiÖš<`›ÅÆ\ØÀ´1yå¶DoöîY*Iu ºýÅþµUl£ƒ£/B®B*Ñ£$®›À!}äX«€)mÒ¹û\ǽh2™Š\Ú eÆ›òp¤Ç‘·´·útnÌéô–ï»ÿè‘Ðnh™ÛV|;¨e?:^Z3íàð?UøGCßüó‚ÎjgóÈ9l»öϬåñùØm)øG Ú«KTtd¼ÆvHýF—׉u8•Ç z/×/rN ŠBÓuAŒû™K×Ô ì¨>þxe®4QK½»¸w·3ØYÕ?ðëð‰ЫFHôui¿Ú…8áÍ$ÔÓ[=F7S㢼ÎÕnÁ¼‰v!£&E>/Œ42£±#´ð ”ì“þ Õü‰ççÇ­ãzKéèe@ϯ•H@ýQ³…ô'ã{Tž“ÓF(÷'Z%.r²Â'=þØŽgCÿNN)¡Úy8G†’®ÇÏÀ5sÁõrRB ®£þpçÖr[(òût„üŠÞ·ÿ`I~A#©?háG[¬£m ‹ãPè!TH³úÞ›‰»¬è*…ç\8˪t£È›çš(|© ê)Oä`‰p¿nÔˆBÀÕ_ë1ß?¸Ä:èÄÒ¡95<§|ñ"õ@Ýþ&oÛr¼ƒ£³C«'ÂCÞPLdð)¨]oßsù1ê‘}+Py[œ‘H™-(7D*öæ6EFHÅ‹ù1òöLYnvIpäúÒ’[¶q ~Gé|ΰ ‰<#µÒÝ]—ŒJÁïÑÏx8`2÷÷gG´ àà™öò LãùGZøÓ ðBI }”»p E÷ìC_•˜Tuõ|JI࿃¸üП×ÊYÆ1¤:r}B÷¹É ÿØÃMPú#.Âa@^¯yÿw-ÐþQÏÕXòž=§¿‘…ÇÓuÞ†d_WvÀnÁ2›Õm'ãy…¹V®Œ«ý”_ñ΄úîûâùù+»Ý9å5áeœZ/Ñ-å©üm"›ÒB†C§Kbó›;Æ”šâgŠšäø¦¦¼™“ÂGrAMcR—€òÙ/œð\€o€"ÿ­àîT€C˜Ç¦Y$…¥¡ymV›æ%øcº3~RØôHH³|þñŒÊéŒúsʾeù)ƒ¾V©ä¿Õ±Qj8·ˆ9jV˜‚¸®gL/S ŽyÉ\•NÒ×Ô75åºä“ŒÏ`Ô9 ï·úS€<²•v1òw çÏ 2z$uc¸c¤¡|Lð¸|&‰ëçÚn8ðG5.ìÆ1=Í`“·Ð‹CÚjR-nÈõÿOÞ¿Šn°G´Ì=ë·ýþÕk¢Ù¹ÿè¢\ßî2Ë|óÏ:/öKkÎ/•vÆzâô× ŸëVdéL*¶3Ü~§,ª¦“ë*ƒ÷—ü£º“zµDçÄ(^Ltc]ÝŽàlÖÿ¦Pè Í©³*õS%³KØITWZ…kCyêûö?¦öãê@ù©© Xg± æþDy×gª‚·¦#tðzD&~ MÑ}ššcqPX0"úSç ²†÷­Uz‹ŽDiè ôλ뾆R@¯W@{š ß¾DâÜ‚4„vƒrvùþÕ|'ù“·“ÅqºKiQR6Œ€'”óƒŒîÒßüÁ”…OÁ?¢Òcã‡ë·²Ú÷tr¾ï›ÿq¼Ï·~ûÔô%jÚ õ{‹„¶uÞ‰o;…ÿ2ˆòëOßå-©[:2çàëð·ƒÐú<¾ý£nP$ä_ÑÓÕ5¸G;´Ÿ·Æï?ÐÐpt ><‚>|‡?¶XûœðšQÚžÀ1áqMá8C)%Wåš¼õ)L™y+Oç¥ðà(H ‘C†‚0:Ñõľ¨¼eÎÝeF¾ž†${$¸˜bƒ/s™!‹Ìnñv+ÏÿXÂåáIYñÍÍx >Ÿ…z|q·ý¿Žàê…Nƒj@ŧ¡”áÿíad”)Ò_üeyÂG8¿Üçñœ¾'âÿèÆ5i …r¶|U¢¨fhÝ'uóv’]FGy±ì–ƒN*™‘&{ÔpÈ-. ¶¹rÁSù=ÎþoÙ—´í}$ªçt™®P70ßLºÄge©4—SüŒŸš©&¿¹"×L9Ä DŒ<«9¸ç>?dNÛ¢?ß÷hi°KSXpÌq*ƒ«QSoÕeà:=MLÓD*I/ó¹ ±ÀM+)(M“%·…§’ðûðàùu«a_w˜³ÃºPY9OkT;ÊÈÍÌ[3Ô¬’¤ò—y÷8iÞ6³å¸9#™MSyÁÉA‹!e®w]HžyÓº­’Aµ+ Ï½aï¹jqy޲nšI&»¹'kMCÓØ¤'ùË)bö™*r œ™‘ ûùæŸ7B"´záûƒú¨×ÓðÑ ê©gI7¶;Jþ‘H&£Ùf2˜¤în÷’Éî4¹› ´TO6ÉK°º¿~ƒäôwäÚ_Üÿ¿#ž=Òþ¼×ÀS+Ã7$þ³Ç[k Ùß©¡z)å”·½õÛ ;ÃŽR÷mý‹Ï?ÖZFÓ)¡íOu;Š¤Ë«ôÎ;˜&ª§Sèø*“ô³€/FNuŠOst>èÝʪ‡è|v1gŸîFµ «GÝUÑŸ*1”]ÞΣBÒ*CW©5ï„ú=R{‘ñ¯BýÒƒÞé º¿ú™w–¯8¡tUOQy#£ýÈç÷¨2ý(hGŠˆü\^ê· ¤f:è7ŒOX{õ-”˜ §ÿ7ÄÌ¥¥T™ï þyˆ<Ý ’>¤¬pAªAKÓÊŽ„T>aaŒå(ü Ô}ÎrÊ!Y¦ üñ£ýk¯Yáø‰ïÙÁ øl<ú 7J³·ÇH[®ÅÏÁ‹ “›ñïhƒ‰T@‡U¿SÚ9+¼z¢$ã+TŒ¼™’ÞüóØt’¢óU*®ç¨w<Î[ý›»`„uƒC‡¡Kh™)ôê;þ±É:ê$Ô®8ÙØaïž]u\ÕÜÜêzÂpGxÉyü×ËpÍ0<-q Ì4ˆúÑVøGàÎsëöhá| ™=Ÿ¤Ò´ ±ž•D‘å²ÅÜdðü’YÖsYŽÇ™ õñi¾ÈU©«îèºÄPþ¸ŒZñZ8ÈRî œÎ,!d>OFyÄ…žÚr‰ËÊK‹oLÇá¡¥7¸׃{*çëççÑU}´Äu¤‰TÞÜ8¤’²’£IK3ÚdrCº݉Háe càFQy.øcoáÓÞ:¶ªõWå=Sƒ}ï_= ®ð•ô„‚?þD Þñ³Åä2GÅiÿ.Ï—˜æ˜ï¯?Ñž¶<ãÂÞ=¢/Þ>½ÿ¨ž?ÄP{r}@·–2ÓÄ2Õ¥šŒ7³ÍK‰nîšà„†r×”0YAJUá½¹|4ׇSÑç§µì'NbpÖC0}NóT{8ycÜßÍ~I+Ltwñ7–Kf¥Ü4·$é ç8!|šd¢¶:žp¾³­Ç*&£RÐ^¢é¢ÖífŽ›8O6cL:Ó¬4ß¾zßÜÐ*]þQ>õVo†ÏýA׃Üp‘Sœ¼½+ãŸçqf‹‘ñsÓ=j€ÌʽŽw JŸ˜ßQmJF t˜úÇ)kŠ–J!‹Ï@{ß äà•ê`›f¨ÓKŒÇ¿¹Øä ÆÐr¸ü-øó\ÚHÕu2õ½7Û/X‘Õs :t•Š¢^­ìÊ o æÃô»î­^ñD¤ï”ÜÞÔŽžNëgèMòûWk¬­N|mqÀ$0ËeøQ]¸NV¸I öÇÕiKI—çðx\^öX_IÃè ºþÍú»[àæšô;üfg…”‡úgGBväšw§È<–ðb’S6ñïì½9¼)òßæÒÔå‹ÙÎÿuêø4–jƒ–CàýÆqh +óx²è8øÇqói¾y'9ÎÛá 5áïíé_•A5AfyFÉ9 (­1/ >(û ¾¯¹„ÙdЏ!Ü|n8GùKá ¢óbþÄ; ÑÑÇ«©_•wFBªx„ÌS‹»óRºÎ{e¾4“çü–C¸ûM!sY®À?ÞòD‰j.ð¨|cöìæÒ²ˆ_êϺ3ÚÊm×@þ²¬Çc Œ{tc¹-}L4SZêKG3ÝÉfî›e¦›ü Å/jzÉÐë&΄Ö,Žs.C“Êkû;¿ÁïàšÖ”tUÕ¥øÜÖ„v‹™mÒAfv/˜n,W™i¨ås oÊû柯çèh‘cÔZgÓ Î׵ϪèT #¡+…“÷úŽ!ìv7LEh}^¸eAxH³Î¼•IðK¦œ”ÄRœc£gþAÏõŸôL¿ ð[öGÖ·çÍ8ôøŽz#J‹å¶“&ÒC"›º`š$îwŒ)è¶2;9£›Òô0=å˜çÝH×g¨25âz\^~‡ãÿÇ!öø/Þ¿zi¥û×û×>³vÙ®sÞ©©jÂ?¼¹[¬?™Îv'¤ºf‡°muá½HH+@챡íè…Ê©~s®Ø ת˜Ž£Ã¨t¿¸~â@§å¢1:?”ºeÒƒt,»ˆsX·¦Ãú®†ÞÐPUú©#ØÕì j>TÓÓ¼¼Ðü&¼Ùw›Ú5ñC­¾­§êq?¹þnpÝ¿•º~þ‘š#rß~W¡z¡Yèµ^7L ²†'­' $ãè6ðZJ ý˜½+ÍÅ ‹Qy½Ðcwþ sARܧRjK(ð9ºæÝDŽNOÁàD%9øfJ¾Œäô;¾«ü%ªþhýÈ?VZkíÈT—/a”4ͤ’Wë4¡Šp¢ÔË@›OÐJüÙ·º þX@u uì;¥Ý´B«`hµJ¼¼¶‡:Á?òR,z޼™2êžÊ‘±Ü–cp|COêMŸ´ÇýКߖ6Ã:éÄÕÁ‘RWò4Égáݨ  ))ïƒ,G*ŽÉÞúd ?§Ó(Ú¢žÛß0>çÌÑýá%ø$T­0ïB¯›H™‘h#Ê^*kÌC$ß‹Pû²²mIœ‘wÂ?ñcÎOý¾YÿŠTPÖxÐã,ÞÿL—hÊ &Ãy±ì‘%Â1øôþ ”>,|5Ê?ý­‚Ät'ÐúWÞþƒÞó„è_3¸&o¦‡¼U¶ÉZN"5ÌR“ÃÕn~·›¼@yå!×EZXÆÁe¾áêñ—*ñUyF¯‡\ÂUkÊýy"½çÓ2WÊ¡Ñ$”»Æ7çÅv‡‰#K%¶9ÁýpÝ<þøÈ÷ø™Àï¾Ø=¯¾•ÇîB¡QÎ (ã?œ驤¼’©&œÉ¦hF?òšfŠ(•å‚)c*‹GoÛ9­¬†×õâRÔ9 ¼ö+' ç  r²‰^«a ­fp f‡Ô•&²{È|0Ñ\?¹m®Hb3SNsb^ÂÛ oï¬3}qGq¦õ\E¤r¸èôÊÒØíeüL}“М“ƒ&…™jb›…æ…Ì“Òf«‰+/AŠ18'›ëÁ?ŽòdøÇCúGÓß*,³p&«ÔS;ðW‹œÁºÚ tÄ‹¸µ6ˆ/”?Š—ÙàëRZsQi$ë¸(GE=7pS> M-Ht›@×Å߉ å™LÕ¡ikx·F›/FYÞüèͲYV 3_5Ïø {Éy´ÏÛÿãïåÙ\çþÜžøU‰!Uô°[à<–kó\(ênøÇzN(uÌ$“Õ½m »c¡÷U¤øÁÃâ<\Ùˆ3¸€´ÓVUüª¼`zECË\™öä©t“ÏÈx©(þBbºLNsU>!Ýûó‰bö£Kr ¸ÛKð\)ÿ8PVk+³ÝŽ"Á9‚fær ½E7mÄ7%¤©ôƒ:?”|ð5¦¿´[¦˜É(Á+908®}Þ;º†½ÏI²¼ }®(›1Rûzëbšpn³L:Ê|ϽbüM$7œY*W¡úoÅã™(8ã'ལTK§Ô]¾PÉ'*˜·r‰&C…$ÛÞœ5MZsLƘ f•‰k–˜w`°´à’lòH’IlŽÌÛ@-7uWüλ/ö?§^ëÙèí½0¾êè]’Õèþ-µå“$7Mà½ÉÝ‹îfSÖ­kvpO—|óýäÆÞQí‡^Ö˜píÿ“õ¯bÛ½á ÿó·V®®¾ÔñíÅ9ì”P •ãTòñGFg¾³Úyì\³#Ù¿vv+}÷¯bS|zˆÖ¾¡+Û9`?WtZI¿u²ý" p¼täêßyi|ßr(÷Ë ÷?ßí” gT $tŠŽÓopÈâð‰7T–sp"~áõ`üüåâsðÒ˜F‡¶ôfõFk Ns Ð-•>Vªß üqƒ SnÚ‡o@«žñŒöf<èäß½uÞRÊ…äáðãÐÈ‚p£ääíN¾›b¢õ?ñT¨*îImá—}Ñ—né×z¤·§Ì7ÇëˆK‡‡+.â>ZÓg=žÑuLSdxºwŒ!µ{oʬ× BÚ¨}sÿj£3J÷D?(Æ» @^ëÔÁ¹¤ùÀËeüãwyÄÅ$sEÏZÏù8ŸƒÞ÷üfÿÁçÎ[]}®6¼c*¯\£… ^4‹§ÈV™ÿ8ižò.f˜ÏqÂB÷wò`®Ÿ³œÝžŸÿ…>q ½-Êk|‰÷É!øGX©èÍ×p_š‚nWy͵e JlŽ›ËaàVÛÙÛ׫¯úÚáީѾ}ý©'{ï#Þ…Ì‘& ‚7Ì]j~7äž"/y¡D7»x:sYœí-¾ÂEd&;t$ ¬1V»¯xæOÇ9Àµä 6qL]©#ÀG/$¹nÆ›¤™ø™Ú&ìG‰k9ü£7s}Þÿ|˜½Ó Ïé@Ë“©’ ¥Sj"•ä^æ•©f–K%™dB¸'A¡Ý¨f<Ühƒ|¡¨i"þØî=»Ò©ôçUÊÏYo”A-䵫,Óš*HXw´9`:šÌà¬ày&)<䌔Z¨g qL<‰Ë6Ø¿Ðý(:}úbÿówÐµå´ }i5×{%›ËnC©*û%…©cJ˜èîMIK·¸9Í5Ý4f„©*%{³E¡µÀÙUõÖï»ÿèßlwþÂ?²þpõÔ Ž÷ÖN;œsÔ)¬ê«`Ž÷vßv+½3Æ™éÜvÚí_›¹ÑJ¢fêh ´×’®©¸ÈxËíÓê¡Î ß+WEq‚ž‹ýåÑÉ©Iéh†ÎBƒ©Òé,]ÒælIÎÔuï¢*ÿS%F·Û¥Ô`(ý5PG)\õ>¼þqF­Âˆ¼ Mq© =ÖCôXµü'Êów©²Ðó༅6B9Sƒ?*ÑnÃ}P ›‹€=lz¥G|1‡éGÇë²Þ­Z©‘¸Ž€6ƒ³ÿ¡•ÈËÅ"‘úy=E¢Ž¨wI²TP+¢lw²wgª%(ÃÒ yVN¿¥ÊЧü#r)d=J=ƒïJI‰u¬¾õÔZk¿Ñ) 2#¡ÎÞós¤V^’…ßP~jÉ ù1él‚x÷B–cfŽy%‰Í-3Û –¢rÁÔ4ùä·D ––5hí\ù‹õw[Û°œÞ·¦r{™@gÕÊÁL4wY •^`»;Ì!Ê e¦È5sßÕUnpZ´tH8êyʯ³1£3„}_EFo/ve9”[þÑÓl5#AþrÌäÅÿKimÆH3Ȥ’û’X c¼ì¿_Ñ“é~àìWê™^Fki(þ4×;%¯›üQD"šxæoSÔDq/¸›LF÷Os“{¸ÍÍ@ÓF®ÈŒá£úzÖP®ÎeôÚŒ»ÿäÞîñÅü»Vúî>ÔÊ>j‡u69åT¥œ¶÷ #¯3ËYâ?:bØ ì–j Î[#)]†î-ƒœW[‘ËvQЇº¬»é©jñO”÷ܱt}¤ã8¼Ò7/´´Røèg{b(Aj(Þ{ý\Ò‚¬áë¾¾€O§€Ž€[ÔCIÑ¡}óiJ.†\ ãÿƒG+àÏ‚\…r£S™²1Ît/Î7-ü¢,þ¼ƒŽåXPû4‰ŽÐAÊ ‚¨žH§c~“Åÿç¸o-²Xã6ü£ ~3½&j±ùé5Z²’«åíD: žÉ´*ëP*ðÛ±¾v³âªþqþ±$Plšè½‰FUÁ Kƒ¡ýAO}A a1Ú^êIôþ»óÏ/:YôKʇl?gæí?ø'õ¤Xü7×¹…ã6 ‡Ë<›—ºRðZ†+4g2€¨[vàòsœ>º4¦Ÿåm\Iº Ü0+¯æˆ’B–Ê~sþñ‰«J YÀu8$¨sÿÅWù ç .zÌ7÷¯,JkX<³T1”®B5X"É'«e!øã¼yË— ÷÷QËdü‡6{oŒå¢aô4Ðú»¦w('õÍ[ÜJçy•ìÝCê!9§tÏšÂîq¤¶ô'ÕåˆPçgøöÝèU#hh §…¯ÕrôŠK¨UcîÁ“éŸCšËu8„ë.3¹Ì&yeú#ÕÏ”læ"(Ï[5þ8;r•½À˜.”5×Jf7‚´eo7ªV\I_Õ¿Ëk¢šj¨M7pÇEIn®šfü-ç‘úsÉ |~9g•‹œ››"u (oº}‰7xè­–,«)³E븅yoªšuRZþ1qÝp_ãÆ1 åy(ÁÍt¹ÇÑy @k_ö½óùyFÎYë¦ n®ŒüøŒ#!ÿ$”JnW³Ö´3©Í3Yjš©ÆFýÒ›‹&hMÒr0°[z©» :½ðøÃÐxŒý‘è§Ít“Ë} ¨!çÁj#M2ÑYw-®G]s'¢–{L!9*‡½ýJõ)úÌ×”«ÿŸì_ îÑ" e‚ÙYþ5|²VØÑùàÆêµí¥“}Vngœ³Àùä\³cÛ¿¶º×>+¡Z¢CShº­[ë¤*¶³íü^§Ñaõ+'ªþ矷öîãè ¾=Ò‚2Øí½º) Ö´ö5ùÉý?ÂØÍí2H0Ëè:Ôùw(\kï>-i+4ùÊ¿¯½5 zë¹jéO”wÃy£*Ñß”wúV9ÌÏOà›¡N‡¨>òõsòcÍtNÖ}‚¬á~ëšÞ§?ê°`„Ì|€*Bs¢¼çE¹ß$o6œ ]/AZèp%®u²âœPSœçIÊH 1nâ’Ë•¸*”ç4qþœ¤4p…¢DRÇÿ!¬¶ÆÙާ¨ ˜Ž8»´Pô(oêôTÓ‚ÿá_ò)ó:ã½ÙF«áÔñï”öÉ{ó™¢sNÞM9Ì[ƒ` S Éñp–iõ@ðÇ$È¬Ü ã|,2ÝЖï9ú·¥M„¸ú&m÷‚šŸÃýß-‚©Ê u®z8Ï+‘èƒJ¼ççkÐ*ÃÐ’Û•íž?xÒ™ Û¡Wä-¼Úu<ŸRñ)Ž+Ye…l6$¿Üáêð…œŸ£€“fpEü÷SðÎß$…çÎ ™æQ$÷鼎ÃÕGq2‰'}y:tª„37Ís>þSð'üm/ø©øëƒ½ù«_9õh::1'àa\ƒÐsÞ.Çe5G—f¥Éà¾5EÝÉò†«HwSFŽÉÁ;›y)(c& ôüã–Z/¿÷®Ç 7:&j+ÇàáÜ#¦ºÙ-G‘îám ‡Ý<ßY…ó;ßûWS8}nÁ^V~»x¼/ï£  Áôz¿n$Ïd´‰ Îh!#áŸ$–9b™Þ‡¦¼I)û¡¡ë9)?œ¤}Þ»­¿}ØIÈEÐC»ÒŸr‘¨fe½ÍÓÑlÏ 7‰Ü;æ6P?¶™)ÇÍ!qMo9Ž1›CËZðm-ë‹çŸ¬Ç*6®m1ä‹Oœi,'<²›Ùo&À9®Ë*S5L`–׬”¶¸.ÉÅ2‰ÅÛ‹z" þž>¿¿»ß¾£꙾ýÏÇR;½DR»qÝöÒDüpUû¢ÌßÜûîSÀmcöq~7µYo ÈMyë­)¤"™4æš\YþÁ¸ûOŽ=Ì®ò…¤ü×Ï?^Z#í‡ö'¤Ê­VÙemï™d§¹ÓÕ9é±#Ú¿¶;ÖJ+µš¥ïéwú„ÎO+T$Õ™ þð×ïÔcuËyo«_ªgðGlŒË´`ƒÖJÒEíÇöL$ÿ,º™~¦ãPþŸœî¢r¨Q4|Pš²`L·æ-ÈÕ šEÇPþ-]€Žë.P°ŸYÿÊß9¢~G†ù…_Šämƒrã#y/@š+Š¿]F½Oé§ú–î¤ÛYÃM–ŸÞƒVKDW(;¸¨22JM³Qb.ÃW0"‘5;åvÔÖ:üŸc¸“ >ÙþvÄÊÛÁ 98x¹ÇàôÊ7/d'%B&¢(hÙxßÌ…øŸc·Õ¾®óðhoòŒÂ¦7­áD Cnï< §Ú–?‡ë„OöÖ¯ïñÇë­óA¿‡–oE;­ÂU-ˆ„‹.BçÏPT=IELDï§ KwõcÝšÞ~Ç?X8ú.åÆo4ƒVžÁXn³Î„”ü'”ç §”|êy…PZžŠZOD+voÎT·ímÊ[ãÌ×ݨÚeÏâL8çbè)x.œ“íæ–dCö."Ùá޼ɰÐñÆ`•±ìRW]?ÐuQ걎·ª‹L<˜§ñºG#9ŽÄ”žãÄA}„tßTž¡î5èéÿ+î-À¬8¶váÝ]µ¤qww îÜ-x ,@°à’@p'hpw îîîî> îîð¿{þ{.ç~ß)‡³gíÒWº«VQd=¢má7 È@éÖkðát¸lÓ’Oëû™”;Ã=-ᣤ6¯ó¶½ç|ûÍs[šªQsŠ%eé€-G´¶®Ð1ðwd¥׎SWá “ººUóÊmŒvL¸ì½XClv.OqÞÎÂGÎCóÌþ­4ë«™í ñ¼¬ÞX°ïI‰—UIox½^]o‚æêÞOZV3Ê´d µ£±ŽCqanh7~fÝýO–„N§ç{Oö üëóç!MŽu·»¹MSó(ˆ“¶ú ¸]Ü1î=÷¦ÓÙüMÑù2šM6é´mLLJÃÝ þ¸hsØHÖÏ ÿMü1ÔmÞÑFÆŠïO™m'[É﮳M¨­mhãPvêô•ç?"9¿9iÌïPŸ÷üùñ€ªýÓ èü\ºJéüÇ>ÛÑŽ3_³£îžûÜä§êð ;i39ÔsZ.9M?@…ݤ<ð`Ïíe;ô½9ü¹²Ó·LóÌF¡[À»ãðû)õ€ Feáì© ¯‚¶Ç·ýHŽùÒùQ®?£ÔohéÚŽÖN…7*Fßq;Îäñ9÷36CÇ^›†ÆªHýÑ]®ÿ)[|Üc6#˜føòø#Pµ=z²þ­§"¿¤šƒÙÞ;‚õ´›~µÞgÞœr =¤Ì¼Îc%¼Ziô[BzIQù0å´ ÿÑ™³òhjEÝà@â`µ=°=èÖ'ï¯½àÆµ”è÷GáS¨O!xÔÜþ#"ÚZ\rêÿ 3œ—ÿ®¸ñð5íð¹~椳/X¼ÛîrûGÌà~œ5ªFÓ)ïã„ò=ð~•î—‚@祊L‚ï`¸¦î\›×òz¾cئÁÆå˜ûÆf‡ÈÏÃÁo‹¸'m*ø# 8r°d¶„ГRÖù¿ tóñ}¸¥Ü‚Ãç÷ØÃ}(:>Ùƒ‹`N\ãå²^†pèû‘ZÈ»¥)¼urŠÿ”r3'|Y âmã…˜OÃ͇oøÃÙi”‚ï#b^n 7FKoi(«Y$¾7C3êihôQð£%¡.W(ŠÑÞ vÙÀùÁî{üqÄ—ÏiG1Ðo›Á—½8•*%wÀ´¶Ô—‰:ì^_èjm,íd°¦Òd²›ñXŽ!S¡êrêý6^Rç–›ûœ&SeÙLËLg8ÞººW‹èti,c4‚¨4©§à“ýzU^ã[VpBôã=ÞW̦´}ß¶w„lÌ· Xï×¹ =³þ3.µá‡*ƒ5Âé$½£U5‹.ÒZVŠilõÉ9‰&…8æO"ŽÀ%h þv±BCý¤¦Ö£ vÐWìßÝì;nX<Ë=¬ç]@þeàÆa4 øY›àTxKpÞó [nqôh7;BÛ7â¶h¨cY0HL¬ýZœŠn¬"÷?á A)lÄîâ{W·!Î#[€÷¡Ï~¡=ð+t3UoªÌWÐÖ~ü Ÿ„ÛˆZï¡Åйpw¶ùTN„ã¾î {šþ4j´ ^.0úÑÂ/$³CM(YÉ8.Eýÿc¬¶'¶/þÌñmp#Ú×p3cÀŠ:6¥fйy 8Gâ|`ªÃÐß'84e,Øc*¸¯'µ¡^æ±³;X¼îÛî/%>?”Óó´s<¥ã­œ\ÂÊRY¤k$­àÜ’FÖrI|c,þççW¶…­l\ž»÷lqôJ¸™Öü7w†R™Á±%¤ÌoX+£ÄÓíz5Ì#¡e g„ ÷ßx”qZú™®8ë?Üokj“ž…WKtoÕ\ àÕà¡éü‚ÛŸ3zO5ƒ×MÎrs$Àað­7ø Z° ó|€ùÐ!=3ƒána.T7L£‡|BÆKEÙÏù.ÓlºAnCÕà’DWböÔ伃Ïúó}ÉHN@ïž¾ü ÿÑ–"ãûNPQž ÿ‚È5™­±´²d‘^Ú_OJf ô<­%Õe†æÕ|²>q§ƒƒŠÊm8 ½Ë]ú«sÓMÃù!õ¡š¢¼Øt¥]ÔDC{)t‹tQšÎÛÇ{ˆ~¼ o_Ê!ކøw´P[Ô¾{K<×÷ÊDÄ|ˇêÈH:o_°ë …ƒi &û^·À¿ÕQG×èCé$Uá“¢ˆ‡žßÐ*ÊîXL™éÙ[þèå„´!±†¦b%, Æv¨<ÖRÞoÒHúJ&¡5´¤÷Ü»ªu½Yºž«À% ÕÔ2TÎÃ¥÷³[1ëÿ„smñ_yÊéâ¼»Éøº/û¿¾?*¬³Í1î·Œ)mƒò'öq›¸SÜ#îi'ªómÙ!wûâ›QVůlrZ`b™KÎAçšÙþ¸fÄ„ÿÆü»ñÇh›c’Ø6µ¥ÌîÛˆ&ØßlRJG¿|åýƒñRNÓZaPµ8p¾Ï£rtÄŒ.n“<ÄJ?‡3ÞŒýr8ßU÷¨ÉA¿’Ëþ,UKúáÁ+ï§QWžæ@¼±—l_ûËk¸ß·Ûžµ m“âò~`ú&Ô±/ÍBÝJŸÎSv¨C¢~AûwϺŸ»ëé?e±›‡.I«ÑZüJN£ ºÊÂ+Æzô{£Åp%ûñ߸à¼þS‹6¾óô3±Vø3UÛ ¼˜S/(ÕttÇÖ®3:‹ŸîÊUøB¿NCë·£ÎÓp*e™Oefxà{áF†ËJlöçOlEùÀ#Yé ït5¯xwåÔ<œÚâûºÁ\°÷íHZò þXê;þ¸5 ,þ£5¤p ýá"bLòÂìå¥ð ¡8:Ŏtin:ÁßÐÌvÇÙ–à ¼ª8 üU5`V.¨ÙN¦Ê/å$g•”2Œ…“)€³XÂOm+ûS°q iZe4À þ‡q;°úBN*.>øc¼„Öåzü‘OBÈd¸Š’@îU|n%²ÿNeg÷Ú¶AïÏ¿ãLha>>Bx‰¬€cS©£=fÁKéý%Üxór$¤©,âG|ñ²èqyþØ þˆ¦›Áj•¸<ï{l ¶ç»öƒëè+ê4%&î¦ZAϯžÛfV{k4Í)9¥‹6ÒS’_ë|­.¿Ë?Fc#r3žÉÁE)à:£¼·÷'ç¶–cnõ¦ r€ö™É`ßßô¹‹÷€¯ñ¼é@û×jõo¹ 7ħ½06Yx$ús;øòW[佌2 }·M8èÐ_ Â3<&}¶µ×ƒ@úÄðÃôœ¶Õ(:[ïHwi£Û4!F'¡DaËë© =µ£(…x; k;dÛ)]÷á¶•ÄõRy¤z°€ŽÒÒZÁ»à ÒÜ×K§jq9,i=m´—¨$”×Üå¿rÿGtgÀ{÷>óÿÛóƒ>g£CàŠR¦!üGõ ÷çeÝîf÷{Ñ ï¬ý¦`ë|éÌ"›ÂÀÔ &†¹æ¬s<{Ñ~oÃÛWn”oô-Ü6ü‘cžšâÙš6‡Ó „F\dgØ‚”›jåùóÐN§¦éô8NÍXX13ü;®ÌføYÿm’Øà20 ½øñ®¸OLêO ùhÝÐÓ1¹°zDáø@®›àG`¤àªôãrÂwÑ€šÉIÊÉ‚²%,§\ÐÉ P·:\ :?ð›áH¶Pºé&ýBÄnI8Œ–`£p©hPºÅ瘱¹ØÇþû¯ÑI*þ¨@ñ)“à<úL¬e¾ Î}[˜À õ¿Èˆ©Dþ¶·ãs`ºÜþc/4ÚZ°òMüw4Ym›É|ê‰Øßm7½ö»ÄØDÝ©PPþö‹äßÃÍŽ6Qd÷âœÜ>¢+ ¢ÐtÒ ¥cŸÞ«˜¹ 1Çœà ·Àoýïí³@¯O㢼l´Œ*òjŽÌ_ÌÛ %}’KI}™ ýžf7^mâxÔú#¥ÐXrýŒOõä)Ü ¾”‚‹æòd9*ý$¤nÒó`·fJÆcÖTâ0r„¸/wAÙ}1³‚Ùv ó+3÷ï[E/ø¸ì–œBʳÂz÷áAZË5þJ÷9_Ád#é(Z=Öäÿð}ŠÙNø"\ïïà™‘tŸÏÊfðÇ úe®Yõº„õþ„ªß#Yt÷ãz\—÷ó+~Æéù‘éèÛX»|EœÆˆÖ—ÏPUÿÛ}…æˆÿ<^b­$åd°N‚o(¨OuˆvÂw\Öüšm­‰&$áŸ8Ô{ϯœn,0àeš@ÕäBÐI_›¨ã•Ô ÒEzkLðÇ1Uøåâ¿=5xä,˜u¿Æx¥6‡m÷¶½>Ÿ EÅð«ÉA>ª%×´…^ÂïÒ]Çéô`t¤u°ÔÖáZLHãÃ<** ÿ1êлó燵¡¡çVb|§ROÛ_"xY½!Ò üÑLëj9-çz{àûè ®íåGô–òXmNÛ}X-±²ËýW΄pz¾÷þã®/“ómïÞrf8Ö]ÿQܼvª:þ;h˸CÝÝî]÷ºcœßm¯/‹i“PdŠ@M jSrçÃ\xd™_D¾Ks·å§©ö{ Ó/ô½ígs9¯}Ј'íJ›˜ØÜ|ùé¿„tj8uÌ0ÚF—1y¡¸¦ð2ÌŠ‡f=f@  ÄЮWl/;Ä|MÎÈÛîeSL“×ÐVhù„P¢¥€îd€‘8ÜÈ#û^lÒG·š~\6ùìVðG2z@¹Zõ¡+Â?¬ÎW¦Ü¥œ|}:ßЀ›/?_àV¢;Àß:`³sà@ý‚äG§9=ß§€±ç€ôþ\[uÁ-™ÁËŸË€³Î·Ö‰IÙøý çvý"è Roú+«ðgdO-§ÍèÉkð˱ÞÚÛ„æS™}ú.º¡)paÜßFàx´4=ùsUm£*v¶‰ «¸P 'Ø£?¼D¬6‚Û¡Oœ\âÛáFµgQ»©`±ˆ`1ÿþÝ?)-Oàrœ ˜ÔÎíÐ})X³-D/‡Ì†7¾,Þw¸íŒy{øÁ¿x)•æ}\BBBç¯ÐÛWNs©#3Ñî°œ€×q+ÞEŸ~³Í‚õ¡kÚJ˜»•m2>Ù®p"§’TÀ£eŸÌ–Œ:S/s ×O6£Õ…ö'øæ¬pIœD cêcì1Û² Å5áIÃÊe9|ÿY*êdë½ÖL^yÀežÜ³¥A¤ðrßàÏó6Î4þ Þ9hzÀj¿òPžHÇÙ‚1ÚËK®&wàŒŠê+ðG_üübùY÷ð\¸‹_yð9¤ÿ 6‡¥w9–çúr;Ý)Ð{µÓüj_Û…’P—j&­#ýežNÓ§àÇ[¬ Òˆú‹ÍCïîåØ\™‹ÓoãMuN»IƒÞýu¥²œn›C;jT¯’ž—SÒ-]¦Ë{)Ó%œ ni,œW~ðt 9Æ7¨„Íô^þ’µ`ËX˜k?`Î…’øôܶ”—ZFOiwýE½·_{i|]¥qt ´Ò‰¨u:M%IØåíP¯wìhÌwùwç8|4~p(TPW»H¾óÒx]¥šŒ‘–:ìØÂÛï=Ñò^½É=½bºP»‰£o°J6ÙST›šA4³Á÷püo”ÈΧÑÛžyéËü¯ù#œ³þc[ÕT1÷ÿíä›|yÝÁî6×3Ïœ'¾oÛ¿{ÑWÚl²©).¹4˜âÚ$&œ{ȉcŸÙ|ÖØ—.}ãó«þîHÊL“m:ÔÏgûÚøNt÷–íF'ì!ø*ÔÚ”øªˆ œVÎ ³øwÛÿ|ÿO¦Ÿèøc+=¤‘ÐÀ=èºma;™ñ_ïµûДÅ íCírbí硽ÀÁ[˜Ÿq0‹‹`†>µáiÌ{{?W¶ùˆXKé(”÷´«ÕŽí Êý] (_ˆ7·gâ_Jу¯8Þ’nÀ¿4‡8‡– £èàá´˜¯í9¿M…?ÙA?`eÔ¤´‰ÓŸ‰µÒ·ÃIOþwµþ·ë)9½²¿Ã ¢Zpö¿?§ÁMl2¯Â·Ý_¦ÁÖg>õFå™ï‰“â¢ká-Ê÷€aG(x`9ýLIMŠ/DÜåæ'6 †ÀšËˆ:ŒT‰¾ãŠXýiYØŸépíF­Ï`œÊR›Ç9ÿ™X«}s”øóµ¥¢¨_mUýµÀ- ÐNÓ.0Òvðó=Ä>DÃls÷Ѯü¶.§äUXÉà0üç?’‚uÃ1œ¡fžð"îÍÙxuâõ¥$tÓ þf>á?Vij”™§CGçø™ZpFI€_¸\Nw*ÅGyŸ×%bÿnË͘Kh6¯>âÌÉn;뿵1+#¶ÅO”…»/ád™¬ÒÓ’X^€?òË$°±ÇYýYuù Ÿ"u¶ÝƒË—ÁÎ3©4öVüêGOiÇ—02‹É^™"u,pù2W§`˜¤ðaäÓßœ†ªÓ'àƒˆži ´ºDÉ0Ûf ì¥|^ÈAŽ þ¦Ñ<ö’xãÀÝe¼X©ÃɡƭìàmP%ƒéç`÷G4ðu|µêÄáfNr œ‘vr‘#Êm­…õ|ÂBÙÀƒ¥¨Àtâ¶|„oñ%N)xŸ}—ãl4ZmJ ïx–êñ@nmïÚß%X(¹Ö²HGi\Í£®·T;ÈL9£é5›Ü€{›Xë93çJôîÙñ猛#A™Œ¢FÒ«ÿ*xx”Æó*è>'4¥·F7¨Ï{&“Åç%‡‡ˆ¾ËÀC8j|œrÙïÝuÕwÍ„Ã\/UF~±1¨‡òêë:m…v†ÐõÖk§‰áBBéDùMhE¸§ô’œCÝußц{«bv8¡mD¬Ï‘AûÚGÚmÒÒ‹íõò· ×ú»6ñ6z>/»×M])åeÕqÚšá5Öði»:°×âúÿ•û£8ßËŸøÈ—ɉù/ù#¤³þcª›ÖÔ†ÿ(ïø÷’¦q{»³ÝSîe'Â7îßÝìKa&C-& ¦?hŸI`àÀ÷šS6¾=an¹oœ/ßÅ÷~Yì6ƒW˜o‹c”šPTðÇÏà¶5-·‹ldJL•LðœuŸ.ñN+³ ¸|ˆY‘NÑîÇi3”f€M¦P"¸‘³öO;ÄÌùŠxܳ¦õ£˜`¡•ÀÁXûþóç¡¿;PTŽÆ™àx‰žÙvÁkxÚwØžD¿¥%Ãix?Õ ÿÙ”.Àø©T^Æÿ†x#ÁË@?—§äæK§øO¹Å +›Që ,W©håN‡†­Å©‚ž_͆âß =w >'7E´y?»ÿŠœ5NB(üÃÀúßi1<ÛÂÔ¯Õ¤þÜŽŸ¡¦[É“Ö1¸%èÝ6¢ùÔ™¤›¾¨Æ£ˆ¨ÅÊÏw¡¢Tãx‘Bâ_*Û™ÆÈ0îÙþi< ðßnþèõÉû·ùλií]J ‡Q£ BsðG{ž .ÇßÝ€#¯÷f²ƒžß±£6t£yèÏ|ÌíoU‹Òƒv?Π·S¾Ê‰%¤l“ÅzE dORNÆ«¸#Ÿàõ™Ú}´ÓÎC™ÐŠBà†É¼’ûBé¯àDWæó(Ùþ¯Óõ ?€02¬™ LplÔãSUÚìùU"Óý~‰ÂÂ[ ‡WÙJaåâ,Þ—×yšÊ»§I½^@ÑN@ØÇÜ®k«ìæýé.TÞüüA¼XvEoß…cøëáßÃR~&4üǸ…£òJ§É!ž'±ÌÞšë‚-_½ÿèÏgí»¬£B} §šBi4æ^\Ö>°ŠÿÔu8(ùæ2Eçè(ú»ºQ;Êp ÐTšUüïä—#–?I%¬ žoã5t¡3Žbm6•¶tÅø³õPŸ”Ùà¤Þ"ݧ꽒9Òóô¦t„ŸÉбödß 46ù{ϯ–ûºïr(Ýã Ö£z’Økª©™5ªnôÐG2N­ör:î(©&’<ü«è;:c—C_Zû®~Qìs» 2Š¥ƒÝ(‘¼^3ñï\(£³´–õvy‡55øãöJ?jÉyðÇ:ðÇV*CM±rŠüWî?êüé¼»kÀqŠ8_ºQèsE­ÎKg¹ßÔ1O‚Þìô¥r;¹cÝ+î-‡¿1ÿÕ_3ÕÆ†ÿ¸o[Ñu“Ä,ËÝæ”…&Øð å)–jë:ñÝŶ&õ´#¡î‹€?ÊUÄÄNK§,Üú.ºƒXµé4 …­@Œ?—ùêA±cöw Ø×쨻è^5¹©…âéäƒR˜ãÁqì¦@èïŠ$œ„KÀñ†ö­´‹¾XÃðö† G/€]{P“TZÂo,¢šœŽoQ ^ Nî¯TƒR˜¸_ˆ¸ÍÍz´¡Æ¨ÑF´l6VMUbø²œ€Ãð2ðR¸4˜©Å¥ô6±ó©l¹þ²Ã7Ó tºo4Á1JFa âªQOjÈàäúòoÐöûá:6ÒjxƒàãÔÐùàÑ}wà?<öçÓÊFk°–+S!øäãƒðA£ÀÓƒ2ÑN¥ÉPvý)FEéïOæ/Yï t#Ûë” |Q‡#ò!j…yÒ 8Óþ#g᪔ê~;0Êrv ä<ŒÕp|k7(‡[Ζ`ñV¹ƒmú…òÃq,â|¼ Ȱ,»¨nd…LÐ’KnsN),‹¹ÇÅ8/æ?¡ÆÏqb´9øó«;îC›bôò(^ÂњͮD’Q9£iÕÿÞãÿMr˜Ósm®ûÞûócN€cxê§¥, ‡f+Ø©…†o„»š¢ñ½þŒ¹^l!‡”ô©LÄáñ¨ß^ÿޛξË2ûÒwÊ¥%¦¦äHÌã’Ô+Þ¨®‰4Œþf¥µŒ¦#$—Îм`÷˜’•7Q1 ÚJàš¾…›ûæ¹CÓ07ÿm—X^r¯²d“¡’SÿП4­·Á»¬y½Ñp˜¼:þã–\Å:Ù`÷ÐTz®Î%{8§ï{÷>òås¾t"ùs% fh,wº›Ùü¬ot~0§ÛŽä®ÒÕoÌ¿»Ï÷½Yb“RX IÑ%“Ì\uÖ9Ì.›Ìýä›ùc„Û8:Ò~‡h)н’ã¹ÿØ6´ÐŽÚV¥_Ío_Ñâò3ù*3®~'¢#ö‰ý¬õq´Í¾nJ{œ;ÈœTŸ~Fdå.@ØhÌ\‰’ó`è2~V‹v/¤®PâÑrsÒÙ,Þw„mBu1š«Á8yÐæúP‹)x G+ d‘ž’ôâ?­QZfr} KBø?9OqjjÛkñ÷•Í ·÷Оÿq˜fq, #yøcº$Ðez÷ruø›…œñ\9çy§EK^8M>ˆhMSŒe`Ðý2óÐ*·e‡l4ЉšÁ çåðæÿ«É ¹ÎÕ˜x?ä#|:§;M2O>¨ß]3‰òqøzð A—Ÿ’-ò»\æøà1šDË]5?EŠ©?d-ø}ˆ¨’Yprz—²¿¯¨Ó£Ø‡OQKÈ¥ìe[ü±V#japÒ¢à{ð5µ¤Ô–š5ï g– •ó(+õx¯‘óØv¡‘ðKh·†‘¨®µ”îYÒVëxÔÑóBè@ ãE·O“cœÙŸ Žë:•°Qà«ÿo‰ï¡yiý'—&OâPBÊ âÕÖ•ZN3èEé¯×u°†ÀoÑn’µË!ަ”Ìüú²4üï, E3Þ¾ÿ¨çÜ1VÒl(©àS’Æ í5•ðF³4™–Ö_Á/4‹W_Oòr/–ð~…b¸]´Ïž¤Ÿéw.Í!mp ó¿Q’;ýœw;)úÒ;ö_òG4g¯ÉÝà¦2 ¹~w»Ü÷½ÛÑéÞqÏ:¯|_ó,ç]9ãËmVÛôÓ”.šPæÓÎ9iNÙDöµy þø¶’¢'CÙæÆ‘¹Ü HÚ‹šÑhüÿBçì+;ž^ÂÌGµwè{ d]ŽÌ»©5F±åæß¹ Ð==§Ã³á&ˆ¿çQäÏ—Úq‡ N}t;ÚAw†mˆ¶eå¥<ŸßEþŒxG‡ï)Ëõ $+\@~†[¨ÆJÊ»¸%ßàG‰ê}´ÿÊ1–ò¡÷kÁÁø÷_u§§4—¿“(ðãå(&nÕk¼…ËÝi›ˆ^î°#c9¥?ÓVçûñb‚?fBcÄÁ÷ŽâJð‘Où„‘u@ÌQ:Z7’—Õ›^WzËÍ 31“؈ÿ„âbx©¦ÜñΛå‘ÐeêôžH$çd´€ÃŠÄYô±x^Ôf¼äÑ­Ü\éŽA‘¬Òm~·a¥¯¸ÓžQoþOô6{ÌÖ•ºGU+J3«ÃuŸ×gºÿ»‘œÓšDVqg0uQü™ ê&3 ~o£sÝM WòýW]êS€MÕá?bz5t«Œ“šÊÞ|¸Ï £³å•ºø5TÖr žÿq«¨¹o«¾·÷µ‰ˆ¹–üq—ËZ‡*K$¯²^ÑîpH{eÓFAéK¸¥¼ÚF³I\(I±FNCÅúW_ú÷ò_­p^A ­ÂJÿ1Þ®”R^t¯¡ü*§ä‚F…w«âò¢xÆ«¢{¸“—Bo‚7/Ê-ÚA»ínèÃþ\Š›üWò'ÆvF;Ýßã2ߘWê] ëìt"¸‹ÝŸLusÓñß”7ÛWÑíãÎu tœoô'|ÅÍ*¸…ptŧk&žyìLp^š«6›l_`ˆ¿?Ú»ýé{f ¡«RZxŽHŽÏÝo£ÁvšthlE|®„ßV1kh=‚-tÂó©,1'à=N“ÿlP# €Ã™a}E¼;®cKá'#c¶@£&„ÚÍÜÜC×È„õ]läÀõ.²¿XÃ>K‡-åñ¨ÈÛQ¿ÆPö½€vS!¬¡c”Œ—“Kýi%tKxó%µ°Ñ-4o9FGÁþ·Ðåè5ÕÄêÆhj| õ.Ɉ—›òÛ㟉uÜ7ÍQ*ÊÛP—öè¿”Pbõ(3T~+¾ ï VR^Ÿ³¿o¢gW‚µfÛ˜Ÿ<þØͤBÿ|¬/,@ÅðgT:Goà¶M'NfC½¦aÿé¿¡™#Óë‚"~ÂŒ|g¯ï‡‡¢¢5-Q7þ’ÑX›oèýJIá?¦ñ|vñS‚öˆùoUoN à·ƒ¿»\äN²þ^óûÅÀò-øÜTðÇNÎ!±d™¬×“’LÎqi¨ÌÑ\ŽCr:^Áø>oçÈô—ml\†_[Iåà¦'Ð^†H„Ÿ 'e.ðu¶^?U‘û@út\Êþ)â àlpš'œmDŒjÁ“ݧ¨Ð'}¸,/%–ݲj»ÔÖ9ú÷R {³e'דžà9è[D 4Éû๦sëgÌ\ É' ©êó¼€®òNÙ&íÅ“œòx_~+‘×[zó|É¡[Ы¿ps¾ÌoÀ§?ÊbŽKïÐo´/·Ó„âbŽCmôàªðÓí%ŽŽÖXZOúHw g%Ÿ†õG;ËvýMãÁ/´‡û*-§€ûÕ8 ½[{Ëœónn0àMÌ‚2ΚÉpáET¼Šº^¦ÀDñ¶ë:ð‘O'Éuô²L”ƒˆ3›cËJ¾L¹mâ÷îÞ¹ï{ebPEè¯Ñð  ‚ªÊK-©'´–¦‚.˜¯Z¾¡¿†×î’Ikë÷QIt”-<­¦¨Åâ]uN™pð–~þXD]íü ÷¿€?–¡ne´ˆvö®y©¼‹p"'¸§Wj^¹.7ðiþ’Jð|e8ŸÝú™u÷?YÂ9#>¸?*ù¿~ÿÊÙì¤r¹ÙL%óÔ©æø÷¹rGÀ\v¯:Qß혯”YnãP$hï:´ßÄ7¯uÎ.sÒf°lã}ñæ¼Ko·ª¯M,ÉA±m ›Ê9µ¨#¼Hdú‘š~eþÝNs§¦KséaPÎ…4޾2Ë€Óþ³¯Á›m+;û«ÞŸ?pŸ›<Ô˜¼Žc%¥cTËýCW© V8Á‹_±7íAðÜ„/Öpï’ÝkoÙP‚…Åei=ôɯ4^7'äƒxË@³ñ˜wîó_Mv ÛQ}àÕ.°Ò *JÙÈò\šÙÿv.Ð~;j}µ}n“Ø¢ŸÍµÄ·Û!Ôê8Öq3DKJ\^j¶|G,ú:ø"¾maPEÿmðíÁ Ím¤Ož|æ»o¤œ‰wb%/¦h믔ˆîÒs(ý­¦•! lÌɃòïv¡´tάÞ'ï¯]ˆh¡ìMÊÏc¸-Çü* øÃº. /¢>aøå8~"MBË[•*Ðlè£àÙyæºóà­*S^‹Ÿ)Þ®½Ÿ’7rL±²TêvI$`ÿÓvÂ<þë(ø)5´Áçbx=?x:•'‚ÅÐè–äAï?Â7,« ôËá·²È`æ÷ž_ ðDÃHø÷_µårö­-7¥‹FÔºRNæBÙ?–XÐû µ6<Îm«1dxkçãe¶)LÝÞÆëæB©)…¶9>ºËõ?e·osĦåýÔ“ZÓ&èé°hwe0z)¾K)èwn l>öðgÇ?â?‹Kè• c>u"ñªï–‘N¬¡’ðA=à?ª“ž@ï¥Ãà;Xÿá?úP´ œÓ){Åö§ÛŸàå¾Snl{ˆâp?¸ ¨PÒ =)à*ìã=Ô–’ó&ž T{@™x2ÖúL´¢+˜p¼‰áÏ.=Ée‚¹ãÆrj>8” òJ zhùGVë)tÍ<œÃÙГ~½Ý Šw;êóQ¦~¸T¸«)T.`$êÔ—žÒ öÄ•¶ÚÉ8:ü‡çî–¿¤&úø*P:2ã ¼–vp?Y-#Øþ©‰½=ZÁûMnpa©/w0sÂso¾Ã«À ›€uÝ͇æOpߣ{T[p{:Ï›¤—Ô”|è?ZP—Ê9m/ûy°4œüÿÇuœ×ÃŒàØï½?ßäËê´¢0< J£\E»Ö¦—ƒÒP£j5).ãµ—>’´z(èþ¨ÖÒW kxÙ ÷6€#Ë´¦ ¢QïÆÖ¹ê†€›8ÑQε-éþEhU#¹ÀKáÝŽ©õ"h9þxÄéà}BËQøò6í{7Bîò=€¬ŽñhJ÷9Å ï%”×B§€Òjb=©?h5ºYK;IªžWP|Eòb”÷SzcGs®¼åeŽÏ>¶c0ŸÆÓ@a—I2/™×G~‘5’Ej3ÍçíôNë÷^Y +õ¼p:NKÁÝ]ãØMà&\,üšÿÁìt}Û3ääp¾í^¿÷гÒIê.qË™ŸLb÷÷ þÈê¶#9ã>s"~”¡ôÿ^6û"š6,…öÎ Åà™ƒNg‡Ùg³Ú×&މì¦ù¦zþèfoôƒ£i5ZÉöµmà?fتô·­j °¯£iôUc9¿9¥M5(ÞÀ”ÒÀç@Ñڔ͎¦á@®&tÔæ¦íöO;ÜßÕù©²Ï=mòC9‡ÀºôŸ@üZ¼þÜB§€M·)g ‹`@ÛË®ùb ·úþ±GìK› J0oC¤%ðÊi3æf^èÜ@ŠÉÉÅ÷ͦ”ƤúBÄn*´Óßgþ³ñ)€U)#”f>¬þ´ Îkz'å£XO©)¾-üÙüW|³œe¶ŸKö¥U”Œ,ø­~º$Gä<èÇVünf5Í!.—éÔ޾§Mf>õLõ™ï¬šÎAá„X S£‘€PzÞG§MGshÝ Ø< üÙ+3æÒ=û÷'ï?ßè»æ:àd¼ø­i>€ÑÎ8/ÆX„ç›@æ)üšóB‡–w§ÁøÌ,ã¸Áï㎴µ¡P#ƒqrV¾†¹2Ÿ  F>I"ce•^4À¼"RMB=†¾ ֞ëù•mhÛkq€ûÚfÁw‡ èÈÿðh õ e™Ü?(+ÄÕ‹êÈ1øGfr<öï>ÇÔ…¡_ž;Îî‡îOP)ÚÚ’KóJ:ÉÓe­ÌâW\Oûhï fðfH(p@oyĩ؂ßîñt^ÌËÀÕƒe.8m&SH°ÿ}ª 0’Îñé õ=þâ’Î×\ºAÖë¹Âã%¼pc®ÀeÀF¼›3É4~cße½ê+äÔ¤øè·³ÔÑ*Úö¼œ•àêRBþÔzWRêF ~wé(kõGýN®qkô‹+[07ëpYz—ûa„sÑu1.a6ý,›HmWh–àÛ,ºD¾—Š`ŽIè½ZÇÊ1¥wd¨Üä¤ðžOù0´DVë=ÿñÊwÔ„¤‚X[¿Ó ŽJ‘À›µ²ÎÄïLú@†Â‡ôÒ72RŸJ7ùN#xÅ冄—|˜åþlBoìjºeß½?_ê<4·ìpŒÇx¸Ü.v ¤ô2x½¤ z>Î'¥ò6x58ê57ô^È -Ípzóˆ=G?Pk®Êqlðžÿ%!üÇ»ü%Ï|ß9ßv¯ß»ÝÙàdwW¹-M5óÌ©áøsb·r§¸‡ÝÇî]'ñGJÿï岯´™g#C¡>·­èœyê^qú;1¬RnÒ¦2ñÜ/|û°tvýºØ|¡ÊTÒŽ±Ùî5ÛšÁ)d ÜÔÔTýªˆ‘ж_Í$ÿ3vhÊ4Pqx&tt2»ˆòZïœÍI[l;ØLùŠx/Ü»¦6>Öðn`i^(Â*t*ü%Õ¥P?Yé¸}nŸÙþïÝ¡ù¹²ÚwÏîÀg3ÑeJ•^¾¡2|ÒV ÿàÿýTËà {åß½åFùBÄ©nºE-ý;ÊÀ1á?J£¯âqa®„ºOHW€ùÉø|NLŠcÓ9?k§oƒŠ~â½Ô+è}J2pXÕi4Õ`å¬4–ë½¹ÞO31·Ñ_´þ´1Í©OD»ã{êF# ñNÊÆiŒzU x5Ôn'E{'–I\ÊyÚïÏa‡Û»v*4ÛÇÑùîºÑíMÊ~¨^ÜméwFþìµ8:?¦!à¥ó@÷“hivpÒdƒ¨c> 3QÜà§›¶¹¡rËÁM®€[È€6W…:(Ň8‚D“%ò®•ÄиM€‡Sàæ|üÏàfð ù–øÑûóçîM[­,úõƒéGôÇ”ÀÞÉrŽFôˆÞäg\BÞðhNÀ%Ø‘}|—{qfÌ®s·÷D6-À}W)#'„Cù þã6/‚ÞÏá¥üG ðG¯ƒ(ø£—\æbÌüê~ž—`„fSóà·=Û P@Çé!uã&X'x·L‘²~ËzK5;z/Ðy?•8ºœU¿wó ôg™ÌOì±·¡|Eß(!˜û85†ÿ(mì²S«Ül.Ó´«Þ—¸ºA'jk´ü0ø£"×E¿„ögðâÜp½ÞÆÛå\q“r¬¤Aô£¬¥Ó>®¥>ÌQÀûg:Cõ®Þ’ˆöB.ÉxÙú'¿Ç¦6§}wJî¼/ÀDjÆšºÌáàæSK,ÏŸ'±Š&ûŒÖò:TCê2}"¥´žÑ<BcIj8×U”.ýfþ»çWkÐÖ¥ðÛÃÁ í Éæ%÷üÏ ÇÃe Ô˜š þcø¼ŽÞã¼^,­§à?.Ca°©ùÕ\!ûmo˜ÿß”Dμ÷øCœÌNèÉ‚šËÝèV15Œù?ϯê¹CàHî»·õkîâ{Wvø2›e6êyû#5aÌ g6øƒé;뢄v³}S=ëºõ)uµiôÅ)—l3‚?À-l+›€rR‡¯ÌŸÇ©ç7ý0vç1Ù *—ò ½g·B†]°ùi«jGÕûóî=Sê4:0ë(~>tý/tœ–A6%—¯Pbºj/ÚëðLÁO%\6û.Áøï|BIx 4ÒZ(¥N`£ñT6èüà÷ÀŠ'¶!ͺ‰ùR¶š9nI0DmàýàzJh¤’ð±ÁD%±NïÑBÚŸ´8t– ÁÉDZYœ[Ÿ‰uÜ7Õq¨ ´øPj@—0ð§ÿ¿lü0Ý_; m_Œ¨ÛhjÙÛº&xv)yê{àÆ¦G” (SüØ2ƒ£ÀÄåSäØnFK#|Ý© sÔþÖi?¸¹£-÷=sÃØëƒÇCßGƒsk në îËU8 ¦±ø4üÁq¾¶œ„qŸ_Ö—ZÑDÖ ¾v×»Sm{ú‘²ÂqLãÌаu¡4òðv%1d‚,ÑÍ’\íSÉþ蜟ķà^ÚA6¸ŽÅ›—&)üwºÿýÐ?q\øiˆÍtD´Ó”’Óq`ùF:ód>œK(ù È—Ý» ‰¼Îò5l/G8 ‡àqˆx—á³ó ¶>ÌåyßLÃ\ $‡ÛÁñÌ…ÿX _SæñfošæÕu²Qç‰FK,= WQ¼|ø|‘Ó œ÷ò—´ópzPžÈ'©)àbv»Í&ÒPãh.)-Á×%'ør´þÄß© ´€¬ãè—Ôró²(—§?߯ûÁ¹ëfâ,¨ÝPª$ è„ûå†zK³?úK?}¥sô¡ï‘ “óÊà€!r£6Œ£cŒŽSj›æ½û?æú®ë¼(æ‡'.…¤æ’Öëªk´¬Æ×ït0üÇDðǸ¤QRFŸh5°{^ÉÂoÚ¿°—é²½ù–?:OÌ#;ˆÒ¦€?æKFï0œU-0ph¤©´˜·Å›¢±à?žr}¯€¶Ðz²UžÐRÚfÏÂÃç៹°ú™u÷?Y";#œwÏZC:9œ/½Qý\ í¬t’»Ür¦žIèúwgìðew€Q®¹žíÏŸïó…5Slzh+ƒ«Õ\w–8ÏÍm[Î>6ñMâoäŸÝ|ÀúqÐåƒ(e±ÝmI'Œ»Ø–¦lø,ÔÍÔùªˆ¡’æWàòaê ÌÜG³àJ«Sh;ósu§—¶ ²ÙaækžHt¯˜ÔœÂñ:å]SñÏ´ øt—þ¤ût ¢K>šúç?6ø¶Ø]6 tø30…õæƒ/›“GP ®Àçà?6ça¸_ÌŸ8ÙMEçÈîð<-з2x'çÊPÌOhê| ¬W¸_™BS[ð£\‚ÿ)þóƒ‡l> ží ×’„5«Ní©8Щ 2>[ù³ïî{îFÑhûÀu?óüê…½„?–Ü@1U(4u,üKBÛü„¢oÎy0üÓH¬Í$tÍzè‡;ŸàžCnD NJ¶DmÁ³Tï¦×caœž”ï=O‚ãâ€?¦Ò48^ø5ÒDp÷çv â ¼JóQðÑ ò縺˱d’,Ö}àƒ\DJ³k€?âpo`êvøÛþ½Û¶ÿÿòÔ}m‹a+ñ\ Ú\þ‹.Ð<Ž'žŒãrRF‹£ëƒî?Ï+VVr<ÎÉ$gP㞆ê“çNþ ¢çJ·Q£ïÙŸ7;ݲ¯’åPðeu–&ónhjï/yÍ åyÉy8åרÝjèeÔ$˜[¿G}–:óÜ‘ðV´²jò”é"-¡ä€N–GÜAbj Fº.ÔÂi¾Ê×8…,àWöÙÛX'|ß;-Ñó#0§pþÉ®¶?È}i­ à?ÊÊð ÷ùõ¤N×~ÀÿmZ]+K ×㤔­`Ä_¸ Ízo©sÐ ‹Ùzë³´Ì¢¤v$õäºÊ^&-#îkðÇe ëEÐþrLOµ'Ë3´y>Ç–ÍX3™mê÷öΟñ1Om=xûÆt5oO›$×P×ÂwdÑ´:Fë£Å¡uŠ^‘ARUkYy“ŸBmeL÷k˜·³p¥óȼ±óh Üì0êoÃ)|Þxi‚ŸŽ‡šeÔÜÞo¡¦òšÀö~C€W¼C›éüG]*ÿQ>èþÁÿ‘ú õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run008/bold_25mm.nii.gz000066400000000000000000003025071323370031300254300ustar00rootroot00000000000000‹¤½w”UEÓ>ZÕçìî3LÎ9çÀ0 aCÎ9Çò%(A%'’E1¢€QP1+fssxõ>U3ï÷Ýßw­ßZ—YܳÏÞª«ž~ªººO5ÓÿÅ¿™ä'Kõð3—XþÏ~ŠÐ¿Kž"z¾Ýÿþf´ý?ï{¨îiS÷¦ÞÿWmôlRZöÓ®ÿÿþ·ÿmÓ¼öDŸ‰WÁôõ 5”ÌѸk3uãBæ|ÒŸ®â¶4O†PÍá¥<€ÂqOÊá/yJ¤šŽrVâU(Ê?θ†â(†N¢ ×Ð6\ GýíÌ®ÄëHÚnJM²Ùg¢1~Wh8?mJ9÷ó'ÝOoq$Úp™êûÞ¥“€û™ºûÆúqîŸÄÇM{_;–ëŸÓÔ›_EZP'Ú@7ÐPZAi”J»è4ÝEc©!í¥£ÔŒß¢"Ê Xnh˜ë9Ðô&mñ&Ò êƒÞv7çø Î§Æô £Ûh;åS+L]QÂZ”טÑët‰–£œFô7þs6ßImñ³†¦Q.ä”Ky´Ž²©”ZB–§(ß„šK”Eóhºÿœ·Ø[09œãÒÜcf$r¯]cþ¢¥¾¨íKÔ×›f¡œ6Ôåô£ÖÔ ÷ ¦÷1bÓ1–9óÍxÕ w¢k©„š 57㩞ô<݃w©¨íjÿGÞL{›WL›(ß:7ÝVÛGéXî\ Ög˜ÜI[9ÌÄ™<³ËDâÝ›´”/šL|{Ÿ¿§=”d3¯PWß'”½ ¦i0ðª‚cpÏi~Ä´ò5Æëp ð6jÅgÑßb Î<Ô-Ö•ÙÜt¹ºÛ DüºÖco7K¹˜*tÑîM@?úÓ~ÐüÅ@[¡=Ga·Û!ù!(« hp+$_„»Þ¦¾¨QJ_áâhÞ ÙVáZÆ©!,ª6Ô6ö4›Sü ®Þ 9mëÙ§ì*N9Óµr__`×£ö<¿A[|C¡]ÿâ™ÐâhCsÔßÖÐ ÷* ”¨U£-0 ­Ñ·©Ðý"X×m°¡®hÑqXR‚ ¦ÿco†]áÕò—Ùïl•h÷Ñç|ÀNpMŸz±æ9>Ȳ/»F® ßCï›`{¼¯­ŸOë1ê[ÑÌF´XX­¾eÃJ¥_; ¯tÅÒGp÷r:F×@Ã×xKìÛÞ ÞlŒBOwÌ>ä¾²7BJèîι§ÝÀ®Ín¬[c‡ºý|·³íl·ÑþÆõiÖí6Tk¸£ ;»ïò0Ó6ÃhÕG+zcDBg[¢ÝhÃUx3öm·nvßÙ(H÷h]‘‹v+Ý·¶#ðà^û©KuÝÜdÈì[ßYëö˜dÔ°š üw˜£ Ú(ú=ÏE_§aÆ…ZB—ÓDàöØeLì}¤ÎïyzÇhsFøvó­ô< #v·[暣”0z²üûý«ÕFÒ¨;OÁx ºd¡Gƒ¡¿Zj/è¼Ì4!°ñ‰˜©’QJt.ã‚'Sð*T¹@=¼ÏÄ'yŠ*ázgʈBIñ:S&¨mÆ¡žL¼Ž…ñŠCËe®C²áø‰QdULJÓvH}áø V„ŒCm‰@˜(`O(p&ïrñ‰ðÇPÅIiCý%ø,YËÅçñŠpRW2~óPšEMù[î®§}IÔ2,^Gáz´ržÂJ:»’ðs5¤Û- ………óyèc^/ ÷(›ŸT|{fÿ<»Þš3YÚÚƒFrsèJ0~*ià(3 ãÒáWáŠo£(¯UŒêO›xUÄ=‰™ª¡âU$,<ÑláFzÿ­& ë IKƒøˆ)f™m¾çOpï»"Àe |')Ýȳ_S…o†¯ü*––ð ÓÄ׌•€]÷^Éhw¤Û•Í-ÄØäbæ|˜Õ µïiů«&&r{»ÇÌÊÃÝ?Ð,o>ƸM凸¹X]^÷Z¼wWÂv†CÃW£_‚oP!/ƒäëÓO˜ÕS9‘OÀF¤Þ)¨g0,<×ã×R>Œ¶™¯  óéZÿ×ÖÚ£v¬® '»÷øU5±£Í÷´Ë7µ} ¬íö4hÕ¸ÔˆÕ sû0º@Ÿ`üF;†ùÎQ$Û™7¤2XïÜÝ ãx6–ŠrúÏx³ì¯¶R±ýÓη×Ù'é]>fwo>ö2Ì}|*0ß^q%®?Dwš|ïøŒ¯úu+âIÜ:Ôe/‚rЂjàF!°¿¸´W3¡[@Ãy°®‡é1 FSÜ}­w·ýÂ[¼ZK]ÝA{Ƚo¯'Ëÿºî ÷±Û‡ùán·Ð­´ÕîfÈ{®]a'ºÝö"§Ój>b_öŽèÜ1’fr–žLCÍEÀ‚–¨· o &W&ó'd½#Ô‘&áýlzØKµÑÜRÙã¾^µu×£‚]¦[ç~·]ðz·ýÇå¹n°ýWßËn§)ÅÈÜ ¼zü*¥v@/#¡Ÿ-”—£Üθ Ôî >}•âA}üt&C÷š ­%h‹ØÎrjcŽú«a¡AhÓ*7ÕU%‚è)êçßå¿wD ÄV˜ÑKa9aè[Kô%W“€­é%`R(‰ö„¨Ï¢è(åªöƒ¾Î¥q--~5\ë–ñðJú;’*†Õ >Ÿ†Ö/ƒˆÃýËh2·äp˜0Ø|k® úlKªâ½ÜGåTjÁÿÀ”gÇAsÓx®J¡ àM<†„;ïê ì– £L³È'˜¹Ù|Í©æa‡O>¢a|É4TŒú‡ß†|Î"Ï悔ï¥Áã/©Ò7ÅךeV™ÃÏ‚_5Óûÿ¤-ÔŽ_D‹³¡o+€#ч<Èu+üºmŠ6«Àšó›Ð´\ð±J{ü*zû½C£½*hìhU¼Ê…&¼ 6·È‹ñŸŒÞ7…VÇàþþU=¾—ÿt.¥p:”+ÁpFàÚXylµcVŽ2À— 50N£hŠÿ=ë·‡ìÈ8 þ`¶»dúÂÞî·¯š¯i£o”r¶^Ê»ÂîJQg_Ìø a'Ãéc`úU(¥¿·ÃŠ[ÇN#›@ rá}õE©éTBGJh‰ÿïj{'üÁå”Ïg¢gOB²Ù®äÀ;^¶ÙÛË-J\¾¾ùû¾/}Î×µ.£\Ü£•¤¸5ôGƒ —qèW àÄbèm´íAôu*f¹§0Æe÷Þ&ûº·Ê›†ÐÉ=c¹sðcøŠì.¸Wܽð oqãÝhf‹J c#H¼þpc´ræ‘MhI H¥¿Ë ±C&mi+øUˆKqKQßÙTð«ŸmøÏwÛ\>üR‘óeß›¶žÛd² »u”îÖô‚ÜdÖª"Ë¡'Â,ËÑ–.fæ¿Jxä Á9xß µ …¾…BFƒ …µ‹ë¨¥9åƒëA¸s£›åš¨/wŒzúoðÏRÖS~5 íO(c<[gñhÔݬ" R‡…¥ ½Â|⃒`cõð>X-;…q‰Ÿ’€{ëXRÚƒÿÓ´ÔÎhm¦Úc’zfyŠ]Qh}ejQŠQaú#÷‹w¥~àU¾×;’QOH“€šrPR2ÊDmŸØu*dÝ@YÃóMQ[ž–š¢­OS¬‹AïsQ²ÓÞ×S_-×C´âMEKt’}”b‡g@ºÃc›¯œÆ¯‚`Ûg©„O)×zz¿’’93ÃbZÅWq(¯¬½–TmnCcøFè³0Ä‘À«Ox(ʉZM€^‡‡àÎ#|˜¯ønG¡ó=)‚È£¨Â,ò /ZgÒ`ËÛ‹Þ¡.ìó5b™ þæ/á]Ï ¡O©Ä÷0Å™$Ôü1õñUûÚilm?mÚûê³poÇ;©?V–£õ›€ýéFõŠîRoGÿ3`á‡)ßC¿R,¯q4o#Øúho4§;õá“jäÜó<»é.hB{Ȱ6ª“ˆëUô<šy:×ÿ¶œÍÏÁJÚ£ÆQ¸6 Od‚í” -¥À¢‡)Ò\äŸqm6ð¿mCW«Ð¾.„oòé$zÉ5i5üÁlú öÑ’ì+h¶',¨É]oƒk^‡òÁ:#Úb¶ÁžK€ç¡ç•Њší?çµ·y´ž ì?¶<Âçè~ÂzîI¯‘9Ä?fØÐ@’kÌ;hƒyÞ÷…ïGÓqmán<:ÝV‘ðnÈo ZR…>€­U@¦KУÞÀÌG1?Ô`Fz³^ghÝ<ïøƒ+€W¨™;i÷¹ èo_tíÜ‹n‹»¯·¹Q®Æös›à{ϲÓ\›ìO`»×Ã|Ï»ªðz—óˆD…­Ao[€Ì€­UcêƒÁ F;F㳫h»çì/ZÚá.Z¼q&®ÿl Ý*¼ï„ëìg.Þ5pcñô¾3ö7»Á£7Rªÿ´éégcĆÐ_觰󙨽}l[Ž¿{Öñ°¢,Ôß m;j€ö•c4ÄæP?ó²,!ÏMrÀWñxö9êä_í_C¢ÏÀ_x yjÙ%(s´òáP•ð„âÕOÌ~,¤(þÄAú³R‘"”É…* 5PVŽÏ2ÐòýTt7Qk Å•Îx—ª[2JO. Q°2èH¤F "•+…«ÍF¢åÑøTp8FÛ¡ñ¥x€Ei * å‰/P\JC›Â«¥ÌBE@ùm¡¾Ž°'ñ…=abDÙŨ7Þ¥_ËÒ–)†&jB!ë}Фç•G¦@®ýXa3àßÔ¿ ÅÜõeÀÞWÇü~|EyúZÈ¥œÄµH-±î:FMißÍÝ´œVÔŒƒß'åO€M&CÏ¥-i/ßÌãñd,= TI§æf ø•̇LŠÉ2ûŒ`ú¨'¿m*8Mü;¾ »ûFcï¿Q”ï)à•øéŸQ_¯¾j ü¿ÇM_%‹\ÏÁ?¼W6´ˆU ‹Î‡4·Ñ[Ђ¸¾³W¿M)¦$޶[Í|΃ŒWÁÖy‹ -ýáåF›Øqìâ#̦÷)¿ê íݺò+&œÅóK¡+Åð$Ð?@¿ãÐòVðfAoª0+å=Z¢¦ <û$E™sü®N¡*ÿûÖÙ]v3ê*äá^5ƒ€¦ÙJó(ÍòÄ3ŸbfèF×VÐ #ÑCf Hv>ùóîhËPXïTŒH x¾ÓѲÆÐÊ[€˜ià}"j[àÁa×zyhKšý x5ľ@Ÿòv»Ì¥^÷˜GøšÀûéZó^Z`žö±À2J¡/»¸;÷Ä+ñ WCƒ² 5#a¡9ʸšÂ »µôEÿŽ­Æ`–;$i‰õn±¼åÞL<×Ȳ¸·í0–¿ÀlN¸×€Wžãº»À«;ù¿šäÖÙ+ùùYàÕCÀ«ЗyÜÔŒ²ŒG •_5ƒÔçCgàj)8èU`À» ùÉèó ð+kÿBu£»Ü—Ö?p >ûÕf¯¾³ñüVûš‹ÅõèÁ¾sö;»ÊäÖQ²ÿð* ÖÒ 2Žb]ð=Ô3WÄ{[ˆÞ~ÏpW!äÝF×­BѦÁ@yÐøÌóCÍAøƒ‰ÐíTã:»RE §¨«¿—ÿZ\À“²’QTÇ=Z€µ¦*²Ä¢¤'ÐÁ…4Ôó Æ9^V °©6Î$H£|Dî‰V/HÙK:î‰ÔXV ´.QÙQ Êì£þ„Äá5’Pf°ÆšBb±êÉ…)o‹Ô˜vm,ZÛ/Ÿ©©6ŸÄ ÖøU´! ¥ð¦²§P P:´°@ýHaI“ÈTþ$þ`%(vEâŽ,´Ä¯¯%gë„yeè•PXɘ‰>P¿,Ò[ì­€ÕYî¯1Ã%°ÎBà•´òY`Ø<0éÍu4Ÿs¢ú\í(‘[@W£:ÑH¾üJä3œó[ðûÄœ þ=¯Ö¸ÿT:~U£kO®zëDêºI³%‰¤–›ú&Ïܧþà»àÉçLSNG{¾à_€/ßj.Q±ïMŠ6rÿçÔ×7x%å¬áL'_}íøvªäG!›N°ï۠ţ`¿…÷&zï%þ±žaà•Äâ9ßÞn®aÁŸ-@/½ù°õî˜ù΃+>Œþ6‚ŸÁg; áæ°‰ãÜ‚±,ö½f*üª]*Fq$ƒ\º@»eíNbÒ²>X„zÊÑšGé>Ãáêdêç×Ù{íèx#NÃ\ÖŒi æs-¬©­\E2›¼ û­€F”Ð þ·¼Qv‡W„O ív˜eŸ¥—ø!ÛÍqÐ+^kðÈÅfö;ð.ZfÞ^½k:áÙ›àË_Ë—i£}Ùƒÿk`c”í”âÝ]Ð$á\]п´çizsUSŒÀ o‹}ß»xu+õpOÛÃð…^qyî÷¬»sáWí–ÛNn#ã«À¯f¸íöØî~Æ~ì·h ©,äV¦ Ú>:,ýžÓ(ÕzV‚×ðÉnô·->/‡®îöþñþ€žö^]€œ¼ê@¿Û2·Â}¡üj»}Åe¹Bð«vô­ï´ýÓ®0QYOaþÔéÀŒöèð«2Øù|èÇ$”ßHãWi?$ –U¬+ #4FÔcÙLLxÂ\bøÇBOêaÄF¸®%Éü{êûÇúgÀ¶#ñd_ž ݈R¦Ò#¡œ)ãy‡"¬Þ †Ö¦«'&•­WkãMájÕõÉJ'ÂyâðDвÚUGÁ“}×mMWNb%Iý®V¡>n-fD+¿ŠV¬fEêŸpªå!½Ò)‚4Þ^ˆÒƒ4Nž]‹T462ÆòXN ýk>N³k ¸T@Cիئ9MÑë‡(Â|Á@+§ÑHàU¨½ßn‡î7à`ìÞ5CNGìï|Ž6úB». ¤®+j‹ÖíÂxu…võÂûÏè  ÔXèÂh ÊT`hkXÐ ´”cnoôx“îQ –ø_õFÛí^î-°ÿÚjàÕ :Ï÷Ùáî|àI¯•yx5Äþé¢]3ÞEךw}ç|_›þ˜'×ÒÃ<•{CR=5c;Ê Ô¢XYŠVîRg›»Ò!°¡qò h[Æz°·Öžõ–z“€sƒÝaû¨{ÓΣ àU+àÕën?øè Wå®±•ðOðd;ÁŽp·Û‹œK×ñÓÀº£à©]Pö,n餓¬H+†5€Dç@Öct²þn„:b&(Žíò|ö"F«9ðê¼u.Û]g®Ø,w£ûÑ Žm¶oÀ/wcÀk®øÞ¶¿ƒe—@~+)ÉÒt…Í•aÆëƒñ-Fù%àTá™·…tHFü`³¬qeâù†„ø&õÑûÆÀ+ñã–Q¥â•ø5“¨Êut-Ðþ0zŒ¦úoðO†Æ„ †î<O…êê~H-K¹L<ú¼Yãî·QKU_²võP"Þ jK²–¤ñö(´0M½¨õCÑ’ -ñŠV ÑÔhµý¼Ï®ãY1*B±6\Q,X9ˆÄ¦PS‘®& ¾%êjAú›i©ÅÒ0È'uIì(YëOÒØWžÌÒøU–¡XO[WWS: ™<£X—¹ö€æK¾Cs 寠 ÂõÃJ$ #R9¥ùWi¥ù$×sç©ÏÕ—r¹5tD°®”†óqî¨}l»Âƒñ*³ÂÕ”N‹ºšÐ=¼™Gi;G‰­ âk¦R³%‰´î5ÎdšF8Ø%°›Ó¦Kȯü+í…?(hÿ#5ñ D“„'>§Î¾A¾Fê«Vó#¦^G£7_ÓíêÆ)Ÿ_ -̆o§ç0ÏÂè„7ò1R±ÜšºŒ!×)Œï÷f`žë„2Zc¶ÀhNß€íÆŒWªvÑS ú%1›wÀÏ–£¦TúÊ1ü° 6°zÊ®ÁHI¤¶6.(veš | O΢þl”=hïÀäq²KrçÍ`èÔ^û>Jk|Ó€¦_Áþ†AŽÝa'M1ËvÄO%® §˘µ1ŠcÁ6f@¢ÍêW«?Xˆ^÷ª=¼*B]4Ýÿ×ÍÞî5„$Jíe;ØN„?ø"ßog¹Í7¼Ff7/ ô¶ÿ‚_uáƒÀ«×}¯ù~0âùn¦§W’sÖý\¬—Ղɨ»PÆõm^æ å­éxÁ z ë*ØFU{«àÓm€Do¥Îî9{Ƚg—A+¾q}ÜKîEw?^ßìÆ»•¶•ÛÎOñuv¦åöØ9‰æò ûªw˜T‰.à"3Vg ¡¨s5ÆJ"‚s!•iuùW#ÁÙïÁçã”wÝéì߸«=ðê’“Z <øÑf‚_}i;`|…_%»ÖNâõ}¯¯îP~µš2ügMµÄÎ(5ŠKñ*vQnƒÚ" ñô¤ Ñå"ô´¥ÚQÆ`Úx•Ú×JêhîôT®2hÝÁ•À>£è(õñOóÏRfSFýy2Ú+úŸ²çhþU¸úP‡Õ‹ Á3ñLªbSŒâ†`O¢®FhMQJוÞó Ëõo(×wˆâD¿¥¾±ð…'ç}¦©¯’e%ãàRG~\c¡=€@« s«!¯Tp­'¡Ó'Þ hßÀsá‘4°Ìr–u´Ûû¼iÐó`êÙ@Ðà]Í ±—`q·êÎ`üV¢ðop˜zðy ¡ ¿ÃcHåh>‰g»Ó È-÷ÊjÝ*ØS´½#P Xä'(g2ò_°ÁöõÓ9sý3óù³ö3 í*ßthà°€®š[T¡Qæ®°³fìH Ù§(c‚r¼U˜ƒZ£5»¡ï¡é¥˜[¯Þ¶4Ü–KËüg¼!öO"tùö';ÙÖØgè-¾ÇNvËÏxæ^ˆ·—a×-xüÁo|ïû>7Ý` ëé_…ù¨ý*€Ÿ·²œˆ¹mÊ[Ë”ü«壸 ÐêEh™¬õn¶ç½µÞŒCo÷øÕ—v9EðïÀ‰ÝîŠã¥nŠ›e{¸»Ô¼xµ þ`-ãí‡àWóУ¡x×Þ S®!þüZô¶¡æ…V›Š!˜öÐ>Øü$ŒÆ4:à…Z‹™°msŸZϹ@ŸŸmŽ[âþ¶’ý±Ç¾æÒ\W7Ró¯^·¿ØÍ&[ñ*ÕÿŒé [’Ég(‡Žç ®úávèWä;”Ρ¦õªZ¢„*e !—–è»øD‹¨“¹ß_¥¶=üª+W~õ ò¯ô×(äSO¾핵üLôešf;I,«,$]YT.0ð.ͳ Q®”¢¶«Ì*BQÀy⠽‡êi–iŠ–#I²£rp%ŸvÖl‚xÍÞ’ØTŽ>6‘­Ñyñ%k¢ž–«¯"¥CÓ•ñD+›ŠÓ¸™‡R’ƒkñ*IÙY¨–)ù;ÑÊ[¢ÕûÈÒhzŠ®¤â~ÉáÊ…„£4V_É Ôál„®vVL¤w•Y¦B:}1+ «„¥Yð"ÁŸÅø¼ŒOk+_@§Ã"ÃÕgËÃ8‘EÁ¹ZÃ*¥Ž2ÊáŠ÷ÙUVÝx‚Î;Ãðd4/DÛ£ E›x?OÒþž!YYÞ ÒJÍM°ñZ·šav)ÿkªâ§L#–ã2ïcÍcÿêû„ÍKNÜ%ð«~¾bmÛt~Ô”øú²ôó"ì§1P#Ò(Àj âBXU*´ùiºšÕœë>*àw1b…@Þv‡¹¸Ô>‰wÀœ \ÎmM:ð*¶ÿ5½‡¹{úÚÏ÷P¯!ãÐ×ý|F'OóÛcàŠU&C‡@Sò4w²˜Õˆm¾ãÏQïµ4ÚÞÆÛGííB>ǹ ÷Ž‘ü’ö%øƒ·ùÆ mŸ Žà½€ W5nÓ>û»ð§ÀÒщíK¦ÑqØn™jÁ-꽈·ÒÕ¢eþÓ^Ýì‚£Û¿íh;Þ¾Hð[¶Æ]8íµ4ûù–@#ë$»¶|?­6ûž¿’HÝçàWsxêï„ß…ÀúÔ+Y³%àWÅ@Èm@±D´³+fÃa@”'5Ÿ! ?Å[aô¶Ã¼•º»—íî»ö’ëâžvϹ‡ wKÝT·Öör[à^cÚ*àÕΠ™ü¬}x5¼h-äJ3½Œ ‰Vi}ŒSKEÆFÀŽ‘ŸmÛixwí÷êÙ¿`‰]i¿»`C]Cð«Öo_ °³äcÚ\ŽëîF¡¬¯}ouÞi2`Ñk©Äÿ ðJô¡Æ#xÕ¶8GòÉP^9txôàqªÑ<ó*VÎ++i¥h_PM¬võ^U‹œ@5®§k¦|éðj#øU¤Æ¯ú°´_øLÚ1U3.Ãu}ðEáWCÁ`s4¯ٗµ¸¡koµñ¢l|š«ÙÃŽTF‚»%4Vq,mBÖèe]!L³ $´ ×㵜(Åjâo’oÅGÊRŒÁÕ€–-Ø«V©¾ž L˜zuNãW-Õ³ ÖU¾ÿâU*F0Ÿ ‹1­®-Öæ3„)·‹T4•ܪ‘òhø0±Ú÷9š=íp½-ð'žûhûÓwðêžÕ×§Ðǘ%R¶>Ú<.P|è=k»LkGÓx÷V¾4(ð$ÑþVÃbƒy™²Ûá´·òD]/x†Nà™ŠÐ£©)¢™¶÷“e’ÌmFPýáwL3ø7þlå –¼‘o(Çw?l^bþ_Q'_o_9Küo>o5¥¾Æ,<ò_ð«>yQ×a~„>HvÜ]t–$ZTÿòaÊâ÷ÔKŒçžv¹ó%› y£7ˆÐºs'S~b®¿A/ãÉ=¸»!ì±lt%Éþ~ô*<ée‘º‚š8‰…•ÈÞ™‰šžgnË)‚.wÿÈg»„‘ºŽ¦Âd{Ôn€ÔÒ9Ñ…º÷MOXæIû <Õ=¾)ЪP__`C/Œ~+hmÔØrIÑÇ@©QèÕ`ŒÌ,H´=亵4AënÀSÐÛýè«ì™¸ÉÞëað À–r”_·§è>n¹Ù¼2sˆ·âlP Ã5á]tƒùÔwÖç÷õF»o¤ã¼ŒÇ£‡]ñn±®ŽUC÷@ €Ž‹ÐÖþš_6 üêÈ«-J¡1Þ6û‰w›7xÕ×°ë,ƒ‡õ±ë ´zÅíÂ/s³Ü:;ØÝÎOðL;ÇŽpwiüj¿dßñžÒœP`27¿*•`º>ØåBâÍñ^rVkО{€WmPHl‡Çö_Ȫ'Ýé>³!.ßM‡¶_†g¸þawHônû†Ëtíøµ_ûÞ°aÖ*‚¬Ö¯žÄHäÁ®ºBC}ÜýN„5©[k‰„|Ç€ÿLÔ]2Åýf{ßp(PñjµÍåÔÞó_¥Ö “k…±@ózû7øçk®SêÍ’,÷§k.]ŠzxqÍ5¨3¥æb´¯Õˆz„F¨b4ö¥>^¬F©Ã•·•i^h¨®'+K Å3Muů6ç³…F7WÒ5«4]9a t¤H‘%Zs5£5‡+HW)#Õ?¬§‘¨dõå «Ì«6¶Ÿ†ö‰·ÐÕÈ(åEÅÀ&ÿs‘®´=)(/%Xõ0ëkü*P—£ZO{©ži¬âW+àÕt:¯¹¯©íî4LYX%Xïo°áE«ñyì]äqö1•bYÐnG_®‡×á°¼PîDÝ´ü¦4÷qïµ'ù)×èër/Ñ2+•_MÑܹ㘅;až?xµ5+¹%I™wšÆ&üJç74’Ï€_e¡wó÷à߯±ì1ºH©¾ƒfDž—¨‹oüAÉ·¯â½¦¾¯›æ²~†²›òš#ܽY ]ž 9åÃ< ¾%qâGІb~xUFÕÕî4K€Wå¨'üj1þö¢a<Ö´5kX˜í·ð÷ïÊq} ,EîÌF9á±ùx4¾ ]ë)à¾:ÝEöÛ@“Gc<3€]’Å)ÛvJ3Wø;\›IcÁ¯Bía» -*ä4íÞ6½PþqàÕt»oªî,GSå°ÊšZýÖó ʨÆ(ŽÆ8΂M·§ðWi¯w3¯{-Ì>>~õ3G9ï¥Eæ#ßëÀ«º–úæ)0gØ~fŽ{ÑújÍ+¿°@w¿LG?€ýfUƒA?‰±—k¼öKo³7žv/÷œ½ß}dçÂÿÎU»“î%øƒá¼ÞrKí0·üj†]dG»»Á¯À¨^µ¯xÁÖËQæ|n~•Š^„ž¯V9ê·Ëî: ú¶ m­€Ü‹ð»xõzß“îr_Ù Ó*´í›êV¸ËVV'¶Ù ð~ÛºÉÀ¼¿}çìv£‘ØÏ**‡?8TwäµRZ–¨Aê*|%Ÿ!£;–t•ÆŽ PKCHCŒü-ǸOYH}̓þ šm9…&Àl¤Ìçêî_꟪yì à^­¡Z›¬iUGxB‰ïMd÷ס…D¢ÒôUh/'žR®ú•ig¸fh¥«ýK^V þ—X½ÄÆÛQ©®ìÅiÞhJö#û$KÕJC5‚_OYZmÞj´î) h¬9]ã[õt·`L]æ _¡æ‹ð:A}Çh}]³fí:£D¯ãІ0Í£HÕÚ|­\Í RÏ,TãW¡ÚŠeŠ‚¸h'æ‰×t¥1 cܲÕ~€¿ ¾´óc?º%½äÖè~œëKm9E]àÁHް”ÝñÓÜ^ùU 5ây˜Ö:³®Ó†p\¿ ˜6JççVêFA››Á·ÅWžo¦ÐÜkdïmêË™6,¼ógþöwN×?¡\ߣŠWÁ@Õ¾*_É.ÆÝ }XfHðƒ–ü dÔ½»óå4Ìu©=ôÚ4µí€ÇRÊg5Ã6Ëís-¡Uk‰ø^o>úÔ‹p/ÓÐ,ædèó'@º=ÀºB°™qø¬ü* ?}à—…ór”RL?Ò\ª–ú(p© ðlê›Î‚v7††´…´÷Q¬ùž¿…¶Ì¡Qþwl°=`ï„5f¯ÂÝ+fæ‡Ïìwü-Óü«OðdàU¯º½Û’Õ ïúÑÀÐ)$;Td‡ç4ŒS'z¸Q›i„>·Ä]¯Ñ1Í-Φ¥þc^_{üÁUÔÀ:7ÛN·¯Ò¼ÇnuÏ{Eæ¾)ÐÉþëÒ\SÞG3ÍW¾W}äÏv-æ ˜d·¤ á#(qjîË‘LÛà%áu{Èw8Úô,ðj²ÆQ&{»ì7ÞZï*ÜÓݳGÝ—v!íe7À=ï^vc¶X熸E¶›»›ód»Ìq›íœF«ø,øÕ3± Éøå `H ʯB]K`Ûõa‹³16s`õ  ¼ÚLwSh/ðê ZÔ—v»¯mƯ:¹dw»»hÛãùöc'»6‡@†âþf·É¢\«ûq`ÜêcþŽñmD’™~=Æbư)ôp0ê{XSŒfá5Õ¨f„Œ´«¡aÁõæ°¼®¯M§É®›«ÐØÑ êå_短ܣ>U‚_5Ò¸J´æõÑ¢q½üDeX™¨ç>ÝˬQö4åJ‘ێ׸OêŒUÛQ¬KRd©ù4Ò¨R¬¢¦`|ŠÆ˜ ”9åPˆÖ&saŒúS¡šý¡ö¯µD(')K¹“DÜëéþÁÅ-©·6¿=L15¼.çAötFªßZ“tßb=Í•½‹Nw'R–¢_-_‹QÆætÏQímɉ: í~Ie• ¼’XL=ÝSó/ô¿¯Ö»6˜ÈÏPíù £`%E,}Ø\ÊãTîÔ’¹Rs! åG^ÒžÔŒá~Êï†Aú!¼Fs7zÓøŒStõ9ðá´I½å~”eæs -6ÀSJ7;Œð®óÀ«×Mvút ]àå]±¾ãd$ ÷+jåT·gðz>¼jÆRó­4˜OB’m1KÝJ»i,tZbÛèE°ì¡x½¬¼¿‚q.¡ΰ»áÊzò Î&ïz=ï`÷1-Í:\o ü< v¶[-t"zß<#:4 %Fƒ_•b<þ=Mæ°“Ðêu¨5_÷;Ëú`)~* SªyxU³Àÿû6ÚÞcwU›rº so™Ñ@ÊögþŠ–û†aœ¿Åog··F_î€]H^w?ŒÊô!0a$>KªAÙí€Á‹4W¹x5Pw EK%özƒÿM¯Ÿ½Åk+J·ÿÚëíX{ŒþáçímàW/{éf7?èl) p/m5ŸûNø|À+Ù)ù,¯cÁèNèÍôZ?KÏI(Ž”Ár%]üÁöÀ©A¸~ ~á,ÝA2ÅÛk/x[¼ñ(¥Ÿ{ÊsßÙÙ@€ŸÝ÷¤; 0 xU¼êçvC‹®±Ëí(·Õ~ÅðÚϼ'1 Èn—Ùœojôˆ*-* ‡¦§6ºY€×CÀ€ïƒ´®Õ¸ø./þ`cüì@ÑÀ«¥» ð«?lKÙmi¿ry®…›€~]ÐõÁ­F0j ¥ú™ÊMº¢7†%K/å6A¯:ƒa#M1—ŒWß-[£“Ã+dv‘|™ÇçS?àÕ½g"Íp]àJÎÕêæ_è‡ïw%ÔžWjþU¸®=Ï©ËÏBŸª;!£¼O3(C”ïd¨o¯ë÷qºÊ%Y`qê¿ÖbZ†æ•†i¼¨\sÖÃtM¯=êËQIPî–¥£H/S£í¡šÏ¦X©XT»_1TûW—{«8U›•¨Ùô‰u{–Ó´U!Ê»$*¡x®{ŸÓ“5*–†Wž"`–"ŸSF¥™­#»{GÐHùkªÝÙ8U¥u5§ßègX_í ïR.?§+“§a{»)ŽÅŸ\Gs8‚#•ót T– E™ZÐX~>]˜î+lÌ¿ód™ ‚6%ó,õ©{Óͼ‘Gk´ðF²7mVæ8”Z€Á4×µàFö¿Ü¥ç0|H-ø¬i¦þÝïü!XÒ§zŸœo?Ea‘Pg__}–~Íå§M±¯­žÕð#Ш/Ú««ÿ·`¾k)CÍ·Ã_YчãUc~sC eq‚½Û,6fÙ¯ñæ¡]í¨×7ùæ–½OïÓGh÷z Pžï‰ÑX YaV=MÙ¼×”þ€ ÿB`v=”_ÍÒøUÆsF,vÝø‘a¾á¯¡YWS•ÿ-¼ºWòb83ÿàWƒèeó"­õ@ ŸAÇÆ‚_uõ{hÙ¡#8 Þð—à,ÃQîx Ô ŒEk É\Ø®ì½^‡«]aQaK’«·ÞÎëcïðreÓ’›jÇÙSô ?a»n¼&æ~Þ¨±ƒ_5â´ßœ÷}ïûÃôÀ<¹ŸÞæá| úп+QB!ìïzXf!4H²%w¡7©xß ý“øÁq0¬¹º2uµw0çÝ3Ø=j¸KöZ̆?¹î ÖQJçMn’[iºí|O³sí8·Å^fø|ü|ÉèäHÌá"Óš>sn>øM…îx¾F#GÅèqo°Ô-@ôNк`Ë.ÏoÿÑýƒ÷¸_m°ËuKðDÀºÕîÛš±Ý~éò]¥ÿþ‚ïyëwkÀ¯ 0r¹þ“¨+utFm!`ÞrîdÀÎÕý›1À´&˜K¦A#•ÏvÁ(kü|(Zs­zA‹©¿9è¿Z3 ÆSéÊ57ý(ðêÿ,#Ã\ 9†ëþ¼öÀÞ,]õCÍ'ôÔ…Ív;ªûd"4!Ikúï>Âp]+,€+:D)çKP,®%W ŠF1š‹‘ú?1ùDÂkhŒ»j#í1ê±+ÚEi6h¬æTE«¯[{þCmöWˆæÀ'ê~œXå*ázw„ú§‰šÏ õK¶z ÕÁÚ=A©Šp!zêW®ò<ñ k}ÑzÊ„e×EÂFÃg˜L¯*&c¤«4fP~õÐK"k è-Øð‹ê«žÒ\KÉk ‡¥/árŽÖódºQ÷…]JþF+ªâGÔ †D*ù2Ut–¼¡`T´ú}›x-W+šŸÆõ°µÚ|†#¹ñÂk7›ß8Òl1±KïÁ'M–Yå7xGwÓ,¸ïés†œ,ýœÚû:úÒõ|†‰|ÚtñµQø Ш=?… B;çQ FŸd_ê]tŸ ‚îhL“ÝõÍ8Ú>lvÂ)û*ã*o%´¾3MçSdîc9wã}zÏl†î4€öÔ®ò' œ>°Ì!ëÓEØðŠåSø¼#øcâYƒº•íüH„?ø#FêjšäÿЦØMv#,­ Âvö˜šÏÐÉœ‡?8vù)f†1˜¯»ë~ç­h•œû4OüB?¥†@F¡“q½½ ›’ìöú°9Ù5ô)æšRÛ¶øÏ{#WèC üÁEv¤}‚üæüÁ–Ó^‰yˆï Œ±¹|×€wÒzó±Ïù/šÞÐŒ­t˜'rGm¿Hhj d—}{ƒôô§hA”îDy¸ZýP«•œ»åµ_{ë½)xjˆ{ÑÞë~²K1ÿ]qýÝWî#wصÃU»¹v»þ ä3LswÛ_9‰ñ)û¡w\ϳêAWq%üÁ|üŒÃ(Ü )HkfàïTô¹!4i Zº8m¸–îƒ?èXâW;ÝÏ6Þµt³QŠüê÷íÛk?ƒÌ›¸aÀžÏ}¯¯¶˜ÚÝSeþMGXVä]M–Ë4s‰žZÓ–d7†Œø·ºdbæ(—¨Ö¹>iŒQøÎrêbîòRŽ2ƒ®q#\ÍëÌU?¥-Ú7KW€ds~Þ Ñ2‰jÎñ¿áM³›½úFž uKìDû*yæ>û¬ ¼î56ùÀNËŠºü«ó¾|1>9ßj àI˜wò¡ûùè÷&ôµZÏxÉ׳¨ÊQïB\ªx5á= îÑ –°Ì;h¿õnñ&@²}4Þþ‹…GÊ?º*÷¹»Ç½BiàWÃÝ[ãî^É97W¹Wi4_÷ã<†Óµ-æR3Q×ÊdÒRÔ%gs-€- ×|W£MëÀ¯Z“œâ0îö"l2·ÆH¿JsÝÜLH.¼ZãÈuÅëöpÚ^® 2úï#kÝͦ9,e•øŸÓÌ3Yç•ý8M0z¹Ðÿ&ÀJÉoZWaæ©øQ |lŠ1Û¬ÀìÑTyW$t®‹¹Ç?A}§)´ÐsIöš¢jÿiÿBŠÒU´¾,x¢üJöS'*&ÈÙÕ»’]vƒ¡µéjÃ)ŠqzºL¬ò£peBÙx_®[{RTœzq/ÆqÊ™"õ¼¾dÍÈÐ,ó ½'u•(†ÔE®BµÜEp­EP¬H­:D=µ0õCëi½DóÕƒÔSý/êEAVeŠmõt]2Y÷;‡×ÅÄÒ`ù]7,ªÃºpåVÿ‡éŠA¢ò¥!°ºùÐ&ÁäÌUšçfÁ'Âù[h…ø‹Á\ ùyõï^…u/­Ã«Õàä9Œq½µäv4FKoK×ñ¢>ÝXêÎÖLÒñ› ×ó¯Âa×ÓyW©ÜŽjvÓz}v 8ón¨•jüÙ{ŸÝdÉäX—êNšÁ°úCvüÁž!xþ[”5LãíxþÈ]V¶ú¢ W€é×À/“kË!évê/΄Öfã^Ù#k—ûaÉÂÁgú_ó®³·{ $îf#Ü$ð«³f“îmð«ùÓÀí¶^ Ì5çt£ùþàߦ6sã×poXUkÔ¶=Ï& A+@{ŠÐ—MÀT=õë!H{4=PV7“hž÷ýÀ»Ù >ÝÙ±Ý7ö&ÉMÛx×mtOk~ûd·Üw;ù_oØjw¿ýŠóÀ¯ŽØ/¼“@¢®Ên`ª¡Ç5šóµZ×v0c6¶Pì‹vÜ¥çË”òl·‚\îtÚ8×üª ]±%zþ•ä_í¶¹7Ú€d_οÚn£Õk(ÓÌ2ýë´üõÉ©¢ ×Iècsèä||ò&>“ìMÙÔÒˆÓì‰hWÚü2꼪V›N‹]ŸºódÑtÿ)ÿlµ‹¦Ô•ç¡N‰Õgbæ«§îÉš\{ºå…+¬ùWÙÊ»$÷;L1(AyV°ÆŠÇ Ô Ñ¨W„²+É›*× ˆ`Mu@1Š>9º‹/McÚræLFÂBt= 6Ç3BŸ‹S¦•®~_hÝ~œPE˜=÷$A1$JO­ŠP¼JÒßÄÃtši!ç‹ÖæÃ'+^ÕÓ\×\\MÀ¶®…µç_Im™Zkôì8ðç)EâTÌÆà»ÔÆ .Qíù A°í÷¨˜(¾¾½\A¹ºwxTWþIûÑZpOź hÄB~‡i}£©3Íãe«`=A¼Dãíãh/áÙzýY´`˜ž‡,ç.v1h¼=ŒÖš4Sf6ª¯÷1äK¦Ë:ËïüìüN–Õ‡ ôy•¬.úuñ‘/›%V¹€›<__]Çü þIð6šÕ­^<˜¡ñöô >ýØMO€ ¾¹äS)ÇÛƒfÊ— §0îãÉþšî4Š«M7s/'@>¡WÀÎÇ8÷J÷€¼æQ„惞¤HhœœÙò#æU?øÕIÜÓR› -[’óúd7UCÍÿN0ð¯§É4Íÿ¶ ¶;ìݸ«!'¸÷ƒ9ãqÛÓ|D+|ýPêç°Ñʃ›ÁZî€ÅÉù¢Ã Áßèy}ÕëÌC] !ÏiìYØÆjeçWÐÊlZèÖ›dWxùð¤2à^¦ohéÞp/z¹èçñÀLàU‘kÂwÒJó•ïwß°Ú&À«Ó\…¹&ú‘‹Ùlú4LÎÃAÿªuh#<á ´©JÊy2r.r+=ùû®·Í»3AwÂîu¿Ùµ˜!>síÜKn¶ƒÌÝ wƒåvð1^h%ò¾ß^ä|ÌAGìGÞ“è][He6˜aå õ³;[À–B²>X¤çBlǸ¶Ö•É7z¹V|€öt+02Æõ^õ¢ïm¦[ÿ°;ä²Ó^téàvЃ+¾ ö_»Å”À*×Pœÿ$zž.ÞzùHTNÚ“5ÁÙèU…î±ím‚úLÙÁ¡¶Ÿ­{Kg¨ÿ‚ûÍÃþ)ÝžNóÀðZiíÃàWOø—+—)§6ОµAÉx©Ñ¼JÙ[Üè›^·×o8dž¡ `XÇj™µžÁŠiùhG1,Z8J¶¢C”æÉyíj›ð«¶”­gÎDkni¬î*ÓóEË432R³!js³ä]Š~¡>c„¢I°Æ“êé~çd—sBõŒ›hÍ{×snc¤e’/¤ç!'èê€Õ}…-ŒÖý51Ú‹ ½?´Ž© sì„ðFØžÈ6úÞ|¡6/+ˆ/@.ÒŠeô!Õå|§0o,¥dÍ3ßH5\Ÿ/k+ºPwîn”Ñ,~“û)§íCedf(G ë‰åu*“v´”o€o£9¨+ ¹µ:ô§Næ7ÕõÊMCSjöaŸSàU…žÉðI{hžó ýǼNáF|êËÔÕg|9,ñ¿É|¯Iôõb‘í×´•Zñ+]=›v9tHl, ð8ÈpHr#=†ø:ƭ⸅½Ó,@‹aUïÑoÚÛüª7üÁ½œ®ù /¯é©0Õ$«áë!Ñb0¦gàOÞˆ¯„^Ï^¥BrC`K›1WèÙ5Ðîp)¤ˆbÌeþ#5–¦øÏÛD{Ðn†î—ÁÌ…?8m~Ü6&¯òU'¿ÆsÕ°À^¨³Œ6hd¬%ØÃ(=_t¢â…įd±=f‚é¿°»î: ;ï ižÿ]¯ÆnðJ1úyöoÛÓÖØgé~ÈnrÝë^)f§Sí¿.Ó5Ôó¾óýáûÓtEOo¥s\Í}êòEBº²S~60«Ö_йGÎgж?¬g­Ÿ‚Ï >M¦EÞ>ûŽ·Æ›yôÔ|Ñ¿ìRJàKzþÕ îQŠàÛÜøƒUî6°ô9v)^íµ—8ƒæñãÀºSz>ûð«øƒ)ºÞQªØQŸyût=C¾®ïÄO Hfƒ}^šæ–ÐÔ]îsEèËo6ß­†ØczýþàLW¤ÿÅ÷Žõ¹»õü«[(Üÿ¾iÖâiÌÚ—L_¹6‚N.€]|­g Çk†nsÍ¿’×F)»“Ñ jeöû')L¡±®Ú5‡”b1g ÷?ã_Š×1"SžUw²T>z1S£è’gÕXÎvÔxP>¬ê¸î÷«ÍŠUO2By@´ò¡0],Ь«0EÐDµ^ñ¡dWLŠò“xõ“´®lEÎt]³“8l}Í£ÓŒÑ]««=]4V}Ó`½’¯õ…*F(ºÔ?ÉG µçÏ$jV}¨æƒ5ÒUÏH݃S¡y¢azmöjæ0diN—«ÃÜE4O9b¦Æ¯$çü1XÏK}ϨOå´…õ ëŸTÎÇJàcŠoOASVQÍØDƒ¸ˆëé:]*‡‡0Xç…rºŠ_áîZc{jÇõÌ0•[Êä•*ƒA`÷7ðLÍÊ=+g?¹×žŸœO¤v'÷½æ—™ÍF¼öŸ¨¿cºêY|?óGàW(.}Kš·ÉgâôžÎ°¨´™4_'NÒ{nwzV÷¸K^ê:ôa d”{¿=!=ð‰[ò9=]½1GÙfgk”¼‚;zË ï°;îcº˜˜é+¡›gІ³@Ÿ>˜ÇÏV£DÁ£×ÁÈ–Ë)à§×õ³x/Ð¥ Ú0Lg[‰p.Ó,ðr´æ …˜/ø ´åZìÃ&ØöÌÍ•œ¼:nFâõÛǼI·úFã®O›5º/]ÎkÜ„w‚K} ¿÷1«L!Ù³S.3-j¹hŽî¼.ÄwޝéþÁ XÔJÿKÞXøƒ¹@²\XæP;þà_ü˜]å~r¯zÉæ>¸Êz\×€·Ã7ÿÖ÷›ïÓWÏÒ:£YNÂÂl„yænh¢x_ãô4ÉM’ïH…·¦qe$ôç¬FÉSi¾÷ }ۻɛ†çÚ»ãv—ûÃΧhþÑõrï¹Íî(Eñf7Õ]o{¹=|/O·³ìhwÐþ©/æýöSïUèc'èÏdnh†CÊS€GMÍѳÌE•hIÚ%çºß ¼ª’V@›¼xÊÍ1ûÝàW]ÝBŒïO6Ï­w—l'9Ͼtå$Þõ‘ïHe¯‘³ n¥ÿ)ÓY÷ w»ýK׺$~ÕTÏgh¤üª>ý ¹ËZ^.®·†&ÇkÞÔ(ݵ#q›%ÔÙÜí§gÏ¡‘èq Íõ|†úOêùWÁn{x 4r”¡¹cÉuû};Ó½š] mªgbˆÿ(ûTÒêü¶hÝ᫈%k±eêgÕžJœ­×£4ÿ*CóÎ#uObºbc4J“³_’•ŸÅ«?X»s&¸Žµ…*Æ(ª=©4L}ÆpEßÚúÿïRc5#LîtzÆr±® Š7Ô5Ÿ0]ã‹×êé~ç]uu~`íç E¯õáŻ`±Ïh«â0½©ŸæÃw€—þ>¬/Tó¯^¤<~FyÑèè"Ja9wu=çðÁÐnÀ“ÔGñ­Må·ôû&‚¡«9Â ×ØÝ0ð Ç tÇQð£ ðqX¿ìÙœÍÍ1+N槚à òÁ¯äŒ»B°‘©¨y'üÁvAšF;¼TÌ!¯‡Ýe›ä*pÐßm[ÿP¾mH¾'Û uÃ1z¿úÞ²·ß4@›×P¶ÿuð+9¨•œ¿ËMÐÇ$ô¼\¿õ§ ôPö0ü–$hº!X×å ôÄ×I±¾:˜mþ±šs5ŠÆ¹.®\³›¡žþ‡€WµßôОiÌJòE[(¿ŠRO¬Þ}m~€ì`x@w†é:z¦z’ÑuçÉÔ—©=70QyJ¼ž›« +c”X×üž,]ŒÕ3±Õ÷”ïÁi‚QŒVÎFÿ=Ë%Dó?”Y…«X¢Xeë¸ZˆbLœž‡œ¨(Y÷­<‚w1¿ ÕlÖpHDÎ铌Òt¼¥Ôå‹æè© N?©§8P/Rפætäø‰® ¦AÝÁDÎèoð•Ú× è05âç”kžÑõAÉ¿ŠO™Å½9Ys2{€´¦Þš…QFù¬î”óúÚòEž¦µÉº•à•ð¥–`÷[x¨~¿Ç1ÂlОTQ¡9\w¾è^ã3Ef‡îw>žó»iβò¼z‹…é^¦ßêâíÁhoߦ!‹Tfñ æ þà—°Ûü$ê­YôèÙ =sDòEß„'8Zµ»îüv9á#‘ÚÇÌ x¶3ó$Ìâ]¨_eZwåc4/ÂܹÈw.Öó5|#ý>¯0^'K€W«(³y7¢%ꚢçp Z¬Nœ°— Ì?| #5‰–ø¿¶aö˜];Êà—îÞ6qÏ!;Óœ¥»|# Íßà³h}oÍcؤ±ö¦s– ‹Iø¬^/ÔóúZÃû»ZwÉ÷’5徯ÑRùÕbð«»Ç“5‡û—íogÚçéO>eº—Üû^ FáµÀbH¿ºƒ6˜·}ùœ¯ʹžäÙ/ÙK®ì( ga…(·¨õ%»¡ç‹áÆh¾ý0ý6)¿’þ¥ß¡kÂÓ–ÒiÊçãºzù,ä6ŸÒYöѬ¦ë¸9;=¯¯3xT=Û!Öp?Ï=”O€wu™©;LbÒ<_sTºÐM|#×èœrŒúÃ*·*¶WQ…¹‹”n5Y¦ØìWîô¼µu?N8]ä/1§ßʲBû±ï Å‘Äð+ò•èþë9ð“áÆ(ïÚ´{²”3 V€›—@š[ÑŸ-º¦µ‹ž ¦ü²æ*ÅrS{´î<™­¨aœ7GŸlÓM{³ã0RŸ¹ï†Ür¡ÓÀvÕ%Ko$XN(ÃcƕߡÑqœ¤lùÜìÈÇÊ׈H ÉIpPB…1æ]qŸãÿØFÙG­~3øUŠûÐ ÁxÏÄ•ùþ“^»Å+‡eZvÝít{Š~ç3ð‰¸÷<É3;¸ÆFR€W[èðêW_À×¶´‡¾æ©n³ Œö×ǽænvÇ)œW»kÝ";ÐÝÍ'xŠ]f‡ºö{Î^³ïyOÁÓ̞˦öf9ŸolOÖ\å»efÀÚ±ûÏwàúxý¶œ}^Àþ-êI{ÜW6Ò5r PΟð—¸ßm{\¿Ï¾ ¼jåÆAf?øÞ¶ÛFÎß¼… ýçL7ý†¾®è•ÇQc&zÖXãeM¡‡7èCÕk’oÌ?PbV¥z6Ú µï¥ðù«ÕNgÒµn´k«ß sŒZûOùç*2Sž­ Ó]vÂkÏUˆÇë‡Ñ–xʼn*hmz]¾U-6…inVh]Æh´žlÜ\¿}"T[^=Ðóúâ4‹!º”‹§£u}1^yN¸æ<ȱµßV¦ˆö?™V‰ê“éµl-/X¹P”2•Ú3rô§žj´®êÉ÷`´Öo ‹Ô³C…óg×ùªÂSêâó™zND€þû݃º¼º\´Xå?ÏYF/Qm~~ z0D3¿ZÐ?ôA]Õ ­ËLEõuWý_¼h½H|—æ;Wä{ÂÌ™2Œ‰J¦ÿª&½ÌéüÖDz¾’)ò¹0ž>/¦SšÂŒìbX9Vã)˽\Š·z¡žLY¬õêì¡2Àk¨ꎖ¦…ë©¿W‰­‹#¦Å;“ˆî%©Ó¥ÈÝ–ð\s†þÀÒà³Å¼×HP­ùûÆó,8ƒ=ü*ñûæ{%õEËb5Ì‘|I¥žgGì°Ø;ê«olÆÉ1iËø®`-¿ÉpÚz}±šÒXcBï×Êí2‚8ù4VtmX—qÖÇ4³û±ªôY»mU›ÃzÉØÝäÛTT}𪼇Óùèéò¡ùÉ3%­¶á²i)Q}æDsf¶ºÉ–úî¨'ª»(pC 7N­Lgc»Ã,‡Ñ9‡Ót7³NÕˆµµ’–Þó†I&kÌÀÀçxI—£À³z@ù)ÌE®€V¬Ãù_H”>`*•Ãs§šqàWSw ìÁrþ=«VÖ×о~¥íüˆ!S0–Í0fw2ë¹!ž?Xô>^Wý‡á8õǰ¾ó¬÷šÌ¿]§>|°Ô±/óðçÆèëÁ(w ¨û¸6ìÁ±n”{Ë\‘³nޝÎz‡å‰¸i.-®šo"ÛÍ]ö\ä÷Èo°O©_’™°÷ qve îc>ÎdÞ}Ƴjã왇~vG ‚½: âE¼Òs´$xÔ}l†cõ´õÇÝÁÝ‚µæãÚøü}þyœh{Áâ©õê¾zµ÷ðW#¸ÀßF~µÌÔ^u¢Ž˜ÖÇ ¤žU¸YDmfo_‡¾^aþ`z^-Ïݦyõð³ú ›Žöþèµ¼Sg&øQ¾-°£¦Uô`t1ã‚êá¬×š‘ºn+°–b6ýÌåp2=Á»À$ª>îb´}2q¨<½S¡FqIF›ÇÓ/^…‘ì)ô˜æÐ×­6Z1¿9“6œÖ»Í%ê•'ÏÉå¾Ëf=¯R&T* U]RÉ,2uúQW…ìIIƼþ_æTzð3czVåé›OdüUFÁ¦2v´˜µ_âø¬4Zµaž` ì›P9¬ŽácZ ¥˜W¨{| vìx¬ô’ôiÍÄlô¦g­‰ù û®}ô‹ÀP²äòÛW°úV™ªÔdXaFJuq¢ãÙÖ5¸=öÅl¹ç¯bc{ÓDίt$µn^ ˈÈC̲PFÓ—õÕ™vs^˜&v=˜šÞ¬‡=˜e·±>Η¦¯\µý©»õ‡|mšÏ؆sæ?ö¸I¶Š·ß€_%D2˺@ÛÌH[r¿ËÀ«:¬7Ñ4¾q Ö*ÝÞ…½·ÊôÀÏ÷5ÛË £5›H*ìÁÔå[ƒóîH°ŒJGÊàÕ£R 'êû¼YÜŽÚßÖïTE‚Bì¤'éo¯‹Ñü;']räžZ§ôDêÍTÃ,.fˆF¬)WÛÆÁÚ«Š-žwåÝ}nf¤Ž¤ø þ^;P+»>öc³!2sü Fº;pIã ´M;üÔ{v9˜×78YTã}n„¿àßõOšdYïgú›€W‡d›Ìp×»i~§ûVª˜[ä9÷epÄ,N7Ë¥±Ï5;㲫®-k÷h½‰zŒ kp'^È‚A²3RŒ{ÐïJúÖ~>„Zïÿqm0¸¯|ïåÇbŒ>‰œŠßjU{gƒ©Äú8у–øÖß0²š§s3¾wæ£6ÖäBì›WÐ×’d3Õ0JÉa °¢ë`FÔdzÚ4°wF§1^h²YägøúÔß{Êt¾Ä°º8`d‰KzYŽ7m‹¾—¨£¼k48n²¤0jª,#JȆjÑ”c›DâIU¾78V—¶_:c$: ™&ÌÑ.Ã(­DÆaÖg…žP“83c®ï*CÿxyÖ¡È%ªdÄð*™Ø’EXYâU³’ûMõ×0'P³*s©tÏ’±z©)ÔÞ µI“‰ðq‡DúªJÑUüj–9nÂL쬞ȸ¬Ô¿J&.ýhªÈKlÕó˜ÿ[pª}·ÅŒ—Ê’Íxõ_it“Þ™yò¢ô ×jÖò—ô'“yDí†æ؃ØÚãXËé¿Òx­~ö6©É{“§mG Ö!«Q»?š®rʶç V_Øfþbìú9ó½}ÆdZµ˜ÿ5#ÿÚ\QÔï-ÙüH+Úï¡Åä!ÞÜ´7ë±S:«rfT½é9°¬ž3…òÞ‘oÊH]wxTôdVçå« },÷Øö~Ñ<”KàWw¢Í50F3€ ×`ÅêýÑPìÌ2ŸusaI'™¢U!:Ý4ï¶#ôÔ:+ÄØwó¨j“ì|vº~•íßèkò¥vÒ1«J1o¹Jö}sGd(>û>Ù»¯ ö¥Öì@øØ³—À5'/Th1ölSVÿ›GmÕTÊxÑýù\¬‹µÑO‚9nG ÊUœ÷[Üx÷ª ì›®‘ß÷ ìÁr[\÷øG#¹Ûì´#¯DþÆ®ÕHþ—e¹Ôg´YeàÂ]¬3ÓŒ ›ÐHØ;±’²ÐòVàÝq6={p*£0gS0RåýîìÁYXOûþ´Í?‹ÑßîÇúyn”? OÈd7ßMò÷¸ß$Û,‘3À«ñÄ68ßæÀ¼cÙR—z2×  0*©¡3»z'ïg¢Mʯ*º_XÏëiÞÖó‹™“í×ÁTõÇܾðJ5ïŠ|è"~½­€'l1Ñ÷mWîÅöÔ¿Rõ}íy}|w+Ö}Y‡5õZ¢qUWÝödî/ÊݾgñžèâÀX³ÌO÷…Ô¡zÒôŽîƒ=˜Âȸ^2G}¨Fõ´•‰E¹hßk´ÇT×}zVž鲌uÈ`ÖsXe>5f—å±ÞVóìÂhu=»³èm+Eß|y£„ø=齪Ë¡nÈ Ì¡ºrX 0‰¶\ÆÃfò “šÌvf_R˜í÷ÿù•úí³bzÈçÐóŸhÂúÎð¬<ÚƒåÙƒlÆšfÐ*É ¯>ög×P‚ž–Ð2›aöX*1LkÄõ滊,?˜Äëå`(ùò2ãÊÞÄ™4 S)ÆÈM’æR–ú ]€€NúÜf†<"am覱\’kɯk]#™Îs 7ØÊ2”#p ¯7Âi¥çQ_Ó xUL”]e›°Þ„ŽÅ)ÓEÞ´Ý©)ªñ¢;a–"ý`Ÿ¿RëöŠ)Ž”ŒäŠÚïËäˆÍtäâ×ªÆ c$b†6²JÃ"FœÜfÞ†M8Œž¬ýèÁkÄ«,ièØ5À«b­z#‚EÌ»è&›Á¯^ͦ=‹Õs;óqºãóz?¸‘·±CÁÿÅ·×ÂüΔ+¥å~ì‘VØÃª~ÒŸ¨Œ¨A|sU ‡¼ŒÏN7“¢Ÿ¹Rîw«æôKIŸåõTïit©öS³:2í¼€“»/,¢öØÍ·±w›aŸ,=xšö`Æ\Û«mzÀ,c…¹z@éxç)sˆù9™fEôd0ÖÝTÇN«âþvaw½¼zËó[ãNõìA¹?n ûÞ7öµÑƒ;í7‘K‘ Ò íÞg^“%¢ž÷6XçKÍVްϤoNë+¶ú/C/»< T~c¡ÑÜ#WgƒmÁxÌw/ÿŒ{Êå–›²»Ö_¿z ìt…Ÿà—²¾³Úƒ×»þ.àUmàÕ î³à1`Ò@ôf¦Ô¶0ŽS€Í…´[Q•§¨]“•kFãTÛWgÐû~8Èv?P‹õÅ•ðmÁ¯ºñ™~­ÿõÄísÿ§àÕ_ÿgäŒûí·Š+À¯NØ^ÌîÓHŠ¿€FŠcËé%ë„oOÇÏ=ÍÔCΠbaÞ§ë¹.ðT£´4»x)¶›£Z+§4^¹ÝOõ×Pôq3,z{t:ó 迪û¼<«²D˜ùêï¥3s0•VU¿Y‚±ɬêOT‘Ú až`MFq†‘S-ð½9üL#¹ªßÊ2:°D,н¤ ‘ê¥eþW×"ƒ•ƉƒŒ/ˆ§Ÿ*‹;+ŒO¨@ÌH¢^_cÌI2£ºÒL}ÖÅñŒIP‹µƒæã|lªÉsŸ7± g˜LQy³+ƒ$9ÅÝL L_rݦfŠ< {PyÚÓL¾‚=¨(­þö²˜8ßÓ ^&O}³× 7™ñ¢5í­Ò€ˆ½;¹À°Šß¯ƒ_½kÛŠŽŽµç0__ŠfKž4 ‘'M‚Õ8´¯€W¥"eD-î›å›~¥˜öZÚHŽ0&¥9peÖØÞèn1¯š;ŒFðíƒEXO>ÎTÓÊn—]"ÙÌxùÌL¦²Î_±ì´Ýìf©ˆ¾V¸—zÈ}˜ÓØ—Mͧ·LyYÌ ©ïpŠVž?L5…ÍF3X:Q•H«-çónïES‰ùƒùÔýØ•pûÝ{`PU$Ï—óØÅØíGÝûðJóN.jv‰¢T} f+úOâµÍ`¶ÄÜ3׃Ù §²ºs-ìgÕ¦8WŠÖX}-è¼Ò›µò.ÞÏtcÏpÐÕ‹Ä}T¶Êá¸%.-LDv›»íÉÈ´ëbü®È8D䬌]¸ »c,ëý©**Oì7­=HkÑ`eŒ+x\Œ×&ÝWÀ«©ÔC~Òò_¸%8.ûÁþ’?âïÇi± ;yƒî”ƒ2ß­wüf؃f-ìÁo‚çÑ—bàã\©b§°BÚdæ;·¤ºï|ÌÍxÆôOÁhlÇŸfÔÕ›jv™î£17÷ÁMõm¼j®þéªùþª+ƉyìÁ<ßÝ_‡Ùû6rÖ‰_k5Šrðê˜mƒ‹Sk¸ùãYkO½”³1EØÿ ñ]'Ð*ÅŠ<Œ|mæã$a´z¡UsbñWµìÝѱܳSÌZ?Ä×á­þƒfðJëÜ•EOšaõT#:TDkÃèÒdÆ·`³æí ÄjËÅgP¦ãRM¨YUŠ~ìjŒbHĪ/ÏÛÃ$Þïå3†(‹QåM™¯—NOSõB$ªkAIÚ±ÿçKOåýdcR™SnÂ*õ 1Ï”§u˜Oœôôº•‰ÝVÀ³êq”}ÔæóâM¨'£°ž¼«~*cÆ3„hÏw•¤õ›Î³Gq¿hB­›ý¾1ÿU¼\a=¯dœæ_šJò*[þ6Ößj“.Š?7™ÑRˆý¨=ë D(6ý-ÑÞÌ—Ç¥ }h³L-ùAz³ßšµ—ë\?Û˜¶PFòdx{¹Aýi#Lw{#ìÁ°}1øÕ!«sð6xò[z쿃_­1—DçèU^%ZåÉ_™&‘„ˆæ;—07Éý6-ÒTt¼¾F5C¼­QÿÕ:œyª U³~8©Q‡;€Ûå<ã2Á¯ÖÛR ó³H¹(ME„ž2ËÖ²;`b=Ó¥QÆupªò×Ì’Vó}Á”F5†àgpŽT)/û˜“|3ÎUQKq5µ0U‹éSÚ^”sX§£MÿèyWüêm|KM©àsüwvFê 7Ò¾j¶Gú3ŽB+vjôzSìŠíÔ¹i¬è Æw{¤;VË`ì½9ivq=ãèë©– zý1P¹ ÖD!ìÁ7‚¶n7óq*¸8Ø_cÝs&ÞnsUâ.ûwÀ¯‹q»]©¸|ßLöƒ_½ù4ò§mïZg>“iÀ«|cmê·WÃzݘý£õèU¹©9H~õlž±8ÍóÌõÁîB°.˜”ëãºûý97Ÿñ =ýçþصÃOñS5ªxµÜ]§7…îGàÕ:êÉ<ç7WL–šv<+ÐŽE–Q¯¯6ã¯&°‚Ù\ŒÁœF±¾5Žuðê/ªÎló¿Ãîî×bµGanô—\kêÉü¼»_„‘ýöà?8'Êð67/úšíÀJ z?'5ÉZbއc&ôvh%°ê3–‘ªÕ3¢gq}ì¡f8Ñô¿xµ;:ŒÛ8sƒå‹x·÷ŒiÝL_}MÓxUƒ{´ýnÙÄ‚òèßAzq4¶³vKíÇLÚ~%ˆOa\{ y…rèj±]NÄ ëÔ—¦~ïß4f¾z,“Xë>„šT%Y£°*ýìéô×$ÇêF¤ów™±ûÁ úÆSbï)I¤N ÆCuú¯²Ø¾$Ö¡hJÿeXµq*ŒsÑSíÇTªû–ŒÕ¦O$Þ'Ä2³ËëÔ_¤ZE§ˆË™Ø'mqN(³kn~0ﳞ`Š™Çœ¸×‰3§ðÕëS¼½É,R‚wp=€]­˜ï¬ùƒ£åiÇg2m$°#9_š‡›*3iw6ˆWÚ×£øt1,·á¦º]%M9n[­Ø–v»Õ;Šs¦¾|n;ÐWö›œÁ¹}š÷’¯™´È¦õEÿkZ¯ª²ž×LyÑ–ˆtaNôe¬¸¶à‡¥™µ| ž¤™×yXÛѳ;Œú…î3O˜"9Íìàl©áVÛÕ’ƒ•¶Ã|aÖÓq¢uÃ[j¯*bE~ÎÜ–]ø¤*Nj͇[±wjû^1µå¬¸Bêõ¥ÏÒ¯xU X¢z}K`#¨¶nGàGû¥|‰÷O2£Ÿ¸2î)w—ª„J¡¯è±Zýe‚›l?7W¹¬?8ØÐmh4Ãߪ)³Üém0Aø¦`ãÑÞfÀÐ멳U­ëøž×ŒáÅÑ7ƒáàWªn\Ûý놸îðê¤ûØÿèOMínqñË\ɸ*¾)÷ûŸÈWÀ«–Øÿߘ'dŠ4Ç·ôÀ¿Öaåc/öè*›¨ƒ]vQ½.6÷£MÓÍŒ³VìÉ67÷sVzCÛ×s‡Á¯bUhüÕyÂücvø‘~¥›è÷Ë>Yæº1°¿‘JfsŸǰû;i¥äXEÈ©¹jx~Sì²B³4ý­‹U;'ÊnìIů¹æÁ ×ų†Ó^àU9<ïzì›ß]u¿Áÿà4¾n6J¦o {°†ùöàïn›U&ÍüÌ2û©F÷oSD«z)µ—U›£~n>=‘{¯:+Û„ùšéX—õ¼€©MìÞèr•éf:øU1#Ê6½¢Û£shYÕÄ~™‹ç$0ß¹-ëã$3Ë¥p-‹VA>}ˆþjµ¤´.W)zÂK›°.}X'‘¾ôú›Â:öé´¸ê1¦5™>¥Ž˜¹"H%ZÙôA¥³ZJ‰˜Ï»ã^3xŸ˜Ã½Öxõ¯B}¿zÊâ©3ª .‹üª10ô_•¦ÿ*=ѹ7¡Ÿ-‹<ÌS_´ãBß“@¾æã$3¾]ùRWœ}Ó€ÉlÏ2Ìv?¶¿N‘?Àµx?ø%ìÁר¶×ðÚ e ø×3MšHcÎ{™ê@™ÞÄðkÀ¯’6œ£á`-_ÈTŽa7Ìg ê‹&knŽÌ•!Ì1züJ#”±Ž2cì2iDLÝfÛ_Á®ÃëçL9cÛˆÞ²þ-_áoѯ~Úüd^é8\4-€WEïæËA[2Ò[J’_­†3™¼ýß„vw¿ªƒý¶ ,i=ž©‰3ÝäC¼V4®âVÙM¢¹Ï[ͳ6˜ƒQE(m5{7ðªÈ\›¹»¿*ÖÔ(ìŸFØ÷YŒCzüìüÔø9×$K9¹OmtŠQŒOTÅ81¾µyÜT´çÁs±»&‚_•vGÜmÔgÈò•ü»¶«ªÃ¸®öusOD­¯K8ÏGa»aMÕé@ÏûP àEæ`¼è4 DSªw-£öZö\C´â ¤"#°·Fϯö[QÍEý(7ؽoRíi÷ªÿÒŸ í£À«[\"ïï5OÛS‘_"?Â*ªc~1ËxQ?rÌõ ŒBm°‹.À+­ ¨±ÑûÐsíkKœ×ãÿOÃV‡1È57ÜYàÕ,Œ×µþQ÷ˆ¿{0]¾ò]ýg~‹¿Í_ëW¹þ^Ù&KÜ$7Áïvÿ•f‰|侎ã›âÏ,©n§áÉóñýZß¹–æbLG’½.G{”·1꿞aî ’\Ii¼ÚíÕkÕÐ/Eûâ|e¿Úÿè4Ÿý€ûË—÷M¼zž¼é¿ÎªÊÿJS=ú6f¢<ư Ί_˜_WUs¡õµU‹o ÖñxÆ>V¢6]_ÆVaFSõÖþFSÃî‹ö¡¿HõE§û&Œ }ØtŽ>Ï=X ,~VˆbWe|÷ê­¤a4Ãúƒô5õÀjÊæ~/C[1•¸¢>‘&¬)SÖD– k5Tf¶^ýÛµ‰©e‰s­è¿R¿YyÚz¹&ÔÍgÅ‹„˜=˜F¿z ßUšçdZr•É6RL¨µ®7yŽVhýWIÄÅ,"”Öq®oM3¡~D¼£ýù娲lú¬4ʾõZ‘I&¬–ªVn•FõÖô)r½ Xå}¨ÑW+Oóqú¯›O±_æç´öçZ“'𥽠½‚¤ñήðª},¾´µ™ÈúƒŠ¼ý°Ë¿‘ dsª‡ìeýWýÍ\¹N†­_Ä.ï‡oÕñéa í`j:G·[o ì6ò«OÀŽÛ.¢#Øs8·/¯.˜¯¬ú‰Õ†¾`ŠW•E{:CNÙ¬H7ê'ÿ_=úT p+àÓz¬5j+¬½õ¬š°«­5l^U «.é°n“rØñ›LY¹>XˆÝÐË “ëm¾ÝÞÕ¸qhðÑÃQŒÞ\ÍzåÃñ•d+¸ýH½¯Ò`víXÏk öVÈÕº9xN#Ök/¼ú+a’™}ßeƒ_mÁèÔ•ð«§ì@ Ïq×Ý7»Á¯òJª´; «–íNUiÆ}ð½Ñÿ%¬Ç: ìq2ó 5¾½+.¯Á~ì…6߃–©à¶è™`‚{4P-ùB÷·›é†»Mº}Ü=àÿñoµíýòOÜRçWå³ÓžŽü9kÕ»¼x5F4ê©…V®‡©Êjôê¿É{„xnøUcœZÃõy ø|ôV>ÃDU”¿zÖ_p‹L"øU/ÉßêÁ7å?Í/w=ý=ò”,pÓÜtð«Ÿqz¬–·Ü/Á“°²õ~ð:©e°¾ß8Œær`O1íAÕcPš*¹í^uV©è½A†K^©^߯.¸´-ŠóÕWÿ€_u^]ñ…°Gb§_Œœr¿ÉêïjS5zÌvaenUûšÏF¦'1ÏoÄÈ µ‡ò™CÙ—û¥!#X¦Ò&‚ýhoeìö3Ð÷õðîó’é= ~¥¹,u±Î¯Ç%2.³pM#ÚKQÿê y’r¡‰á\ú¤J!Cuõð&/•{P•g꘰Ši¨„Ö]ÍÃX”¢ –ˆÏu¡q#5³ÏL/Z ª…‡µ&ÂÌÁÄXdD&T,‡¹…é&¬#Æ_•£7ƒ9€%©FšÊÛ>õ•š°fsVëkñ„j8¹±©U¨ƒÖ£/‹£­•ó¦õlj»§|-Ýù˜õ>äBMM†\Æ õOb¿Î‘x™Y¢q`ËÁb²¤ ýíL¡SOCõ¯†Ë Ò—ídšHÔàXõ«I“ñŒédÆÉré³áqÌJ3ê‹&à‰­í]RÈñٴʳØDƱ7–÷ì ò¥`î4¯Ð&=K¼*Ïzô—Wé‘j¢(>_ž·™‘΢<õ{ì"ÙϦ¶àËÁ*o –o_Ül4’hãÛ?fæYY©êÖÛÍ¢•‰V‚“L–¢Lo؃Õíã’‰‘ÿÖ×=@͊ĨÞ·¥ß¯„=¨j÷ûÝ9_Á÷óSðó‘wÝoî›K¼ÊŽþ‡xU£ßsª·ÈY¬r¤7T5xv+ÃÈ(¦|´¥%ðJ÷\=Þ˜Náî[mšØÕÑk¹æÇ™ñ`rZɾ4v_çèÊèB2—ú¦‹ÌÄ·‡Z qÞT¡¿]•™NÐ×£úð]À2ÊQéîÎcäyXá¹"YZ 5] ˆf)TLN#z&±Îr9Æ.)ïêÄ8ý\uF*”7ab="JX/"•6eX°ýÞÙŒ*GT*_OŽÅ·{Ö—¯L}˜8"[XÑË3þª2™œ¢`zäÂz©YŒ¿rÌ¿©JÅwO¬S4ðTIN¤ß-Öä0sΦÈ©ò0Ó-˜?¨)?Š7š7€:o÷Äz݇™Å;‘y’Âø«’Á-ÃR‚¾¯ rDú°ãM ùNzòù}1Ã2c7ÄŒ—Ò†#÷(p±“ÙB4×ú8{¤¢Q-‰u¶Ð–·¬ZÔ¯ý²Û\"^3Úó¦ŒÕs圩iÉ¡vÄyÉFš‘kýnÓ^îÄ“Z¯´öiúoa½ÔªÌ|~ =ø?Õ2%¤ÀÝ ¼j…Õ½Ú|n¶À<d klYûØß5æk Ý.¼Z ¹¹cja¥DK3EµŒj›ßðÚïø×Xìæ–xî|ªeUÅ<¯&^é™þ°©`/Êgdi㟺òî÷0F£Š”÷Õü+Vë«ouíaÞ™ÆZð]°ÿ§ÐË^ £Ð…¾³)@ÀÀ5gƒßá¿…ÀPµ}ÇÜÖÀ¨gŽ£…€û±—UknNôã`†Ûh&tûÉõssÝ!ó±¼ë«gÜkAž}D–ÄMsIq9¾‰ì2wÛóàW_X­@Ìߺj~­ÿÞ©âÏ!wc>Ô«ß‘w`%¯€=^Ü´Aô„ÕqnÀûÁ1Ï­Ðs½c¾ØÔëí&¼ò!Z•Ál§š˜Ûáô¢õbxµ¶Ã&æê¾›ê'ÂTßõÓx5‰¾ kX¾2¹Aj;‡‘GªŠ~”œJãcæsø/¶Tý«òäV‰Ôª ëS” H¯^…¼L÷cyªú”"WIS]H¢OIFv•¥BZzõ©çžSç+ûlYÆ­–at½ã¡_+¬ñ•D{9¶´,s‚JÆj–à}_CS—ï§¿= mJ`F¢F”•#F©=X™¹Ï DÉŒow|zèe+…¹ÜƒóòÞ†–ÃIÕ’õ&0{?™?L/âØ¬ö9Áv¿‰9^`ʳÍ-X3ZTûÛvwkӉ챙)ÏáüU~ØÙ´’d"ï;Û`oDdŸß˜¶Túóc´3ÛÈÁú˜Òö^©Ã±¿ÝFm¾ÝËz©çMK Pú¯~B[›ßD£Þ®˜ ö2ø•žߘ&‘J‘RÌÅž'/Ûª‘aÔs¸ PW¢•Þ?/ªhuÕëÓ[¾áxòíæ1Ó@ÞŽTuRàÛR«þfX‡‡ƒ9X‰]qòm±uíÓ¢ÙçÀ¯6a—êVתga–G`„JÉ\ÌM¦ùO)lX¢°›na\*UÁ{ ð¤ö¬ÇP` z Ú®ó£À¯žwb=Ö‡=˜ë´‹0/¹¦ö=³5¢±¦Ÿa†Ôl†•]¸Ð{·ÞÓŸÆf3¢f°a ÷ï3‡úy…@•.`•ŸàtÒ[º³!z2˜æî´>su0‰Qà1Ï›Ïä×ן{*¨iï“©q½‰«ì¯^m·W#"—l¬÷Uæ™+#ñ¤Àë%Ø;yà|#ñÜ XAz6ïÆ·j¥-Íì~?k^7óC»2ØæN»‚±û¾Ô½èæƒËÿê»øoüCàW©r£Ÿïo‚=¸Kž9n¹ëïu`6–ÉÃîÓàYƒ¾«>fgq£.l·Ú˜õá\oêÛmѱ¼W¼êëµVRŠyÄô‰Þ µê˜v²ýИîÌîÆ¨Ÿ¼-ø|Ez§ q2l`ÔU¨¨^ž>òtÚ^¡žg [ƒ ïaµù,Þå©o¾ˆ<¥mЉQ=¡þU&£R¹ ë2§&1¦¨•JDK¡§]¹@Ž ’³cüªd¬só}Ô.E¯SYzÉSˆ;e°b1GP¿õêÌ%²=él‰3aÕ®BSŠþö„˜îCÿŸÊ{C}F옅æT Içã”L«±Èò=í»x¬½ó¦’¼Eü|ã6Koéɯ†Iuæã”Â9§úW¡žLSàØÓÔ-}TO>‘1Dë˜1~¥>®®f†l¾ãØóÝpB*B5 í=F«Ýf›Û À+þøßÿ¾m/êOüQÎe/I:õ¯>³_˜Tjú]1E‘äHYÖo½AŽÙš‘^ÌmüÊÜjjÉÖ9« áF¬Ó[ˆ^·%mÁ³«Âã;Án¢î`ð«qêªåŒlŽäÈ‹F«¨ÿª*,Çð†¼.«÷µ¿ªT¾ˆ×&˜ë¢W\)÷²»øSU*á¬?fûcßwñö]³=2O»ÄJÓY§žßíj N|-ô0QèÁìбØÓMp"/Äߪ¶y;5H5§ Õn^fºÃz|ª¹ŸÝ7 xuxÕÑ;4µ»dQÜ@÷_Ÿï‹å~³Ù~ù(rƶÅZ»Ñ¼(㥫 Õzì¤Zúd*ÿjkb7-Æ Šþ½@]â70ÇÓÑçòfqpðêî` о§Þ=á/¸¹&A.ûžþ‚ÔkÕ•~Ž¿Ùõ=øˆÌv3ÝûEòÌJy”üjF»λvk¶ŽÀXߌQhŒvÌ#÷RÅú¡x}'ðJÕ¢U]OààUgsØ_qžö`GãXç/× sôˆ{ÝW÷ƒýDœ(_F>rº5¶5(³£¯ñ~03=Ö\Å·«gú;Öh„GIðÛvØI#c6™žhÝÈ©j2{­ L#{{¬ž× 3šzÈêá~Ü ‰‹NaôR-¬2Õ,Kb-vg—óŠ—etw"ãÊ0¨,÷r:¿3•Ü©<ïL“iÝ¥RÓ&‡HTŠ7Ù´%Ó»•J äæP'2ž¡DLé&³z+öCŽsez¢ÛóÍ`ÉüÁø­—ú,ÀS¼Ûüó°{Xí¸­fˆÔ•dÖ¬ébòEãµµÍ÷ÃT\ì¼zC査bÿiæ¥û˜%r“Œ§ðaV›ÚLØÛ\cïÂ7iäîÛÌæØ=VO‘s¦·œ·ƒB½P¹Œ}g¨!ó_ó6ìÁêõ}cjDR#eDqõ9h«G&ŠŽï÷@§Bà•Ö[k‹“p'þ?—§ÏÝ@MhKÁÓYÞ1«PK’Ý.»Mr1oKMÙ,e¼h7ÙmÙC` ÁÞ >†ùVK½DßôýÝÍË8—â,©e~Ä®ÍÿÜG“*¨çcýåcîÖÐ'[„ñzmÿY>Å,O0«£ç]%÷ª[¡z¥°+ùl7Æ‹þ£¿.¢´¾Ä§´ÞDoìˆú³ÎøÓŸ îô.XÎPúfcç´ÖˆÑ®ƒ'Vc=úNÀ«Yß¹ŽÙ¼çî ê‘뺫n ãE¿…Å5É?÷B{pc\/÷µ¯èëË^³Çž|y×¶G¿n5‡e óqz£ ËÀX«˜ià¬}ñ»aÔ~Úžg3êÿ^ òŒ`+ÌÅuÁN÷R°&˜+«›?áŽúKîz=ý8Î?á﻽–Òð«=ò€L‚:Þï£~ûVX«Ÿ0§5ðjšÛ1èYoì^z-‚×Ǽ6Õ3m˜„¶lEÛÚ) 0;{çâEUÀvúÿºR¾µ_ƒU.ŒgøÙµêrŸúš¾Ÿ×Óæ«ÈIç×Y­›¾xõ¤íLï’âÕ¬ÖVí¨¹oθmeÏû€”©ŒnÓŒ‚´M x 11ËL[»+:˜ë|Œ™äGøÌÅ{ÂŒ¿šO;±VÙB*E…ñí×òvJoË;ãD¯È­(²’JœI´ëBäÒô‡‡õl4b<‡øª|Vf\jh'^Ãw¦3ï°m·ä/™Ü‹%éÇ®I}µ KÓs•³î²È±Ê1Ú(Ô…HànN&^%ÄlƱ¼EÕ“)EQ,­‡QM¤=¨ñ¢™d–ñüްF<=v5¨Ïà‰ƒÉd¥IŒ#¯{ʵ8ƒ›W‰yXuݰ·‡Ûš¿1/=ù‰À³2±ø«ÿ`*kШ֥f°ÔÇ~ÔqëjZˆj1i«™ùrDº³ƒÔ+$zçXs½+óF¶nˆ{pgâYì¯Þ`Lª­:ܼ†}\iËÙªö.Ö›¸`:ÉQÛ[ô,øYΛ‡ð·~ÿ%ó‘ýÔdZíåo¦f$üJ±wê3Tq߀_Mt/™/äU7ß÷FPÃn—‰qmܯ¾†o$÷˜»ì•Èë‘ËVóµ÷˜Çe–´g=¯l¬Ž­øþ±¬1V“µ³ê™§˜?¨þö£è÷(ŒÓ  F-­áÜå> n£žLÿŒ{¶˜ª„}ëÇû/ý1ÿ˜åzƒ¿Åuö{e»ÌtËÜd¿ ö`³Fžp_Oâüœ…9›!5í4ú Çb,W`>›âù³ñÌñÔ˜ÌÞg¶c½ª†ß<à•ê‹6»öûo€W¼VUû×åP_´PûÀç¯4Wôjä]æ;—ǾZb*FØŽ@"íÑ8#kà´¨‡Q®…g3ßyfã53ƒ¤kK 7¨QU[c øÕV؃ʻ&šq`ruÑtÈôîÎ`®KmÓA®3´¡Tÿb#%SˆW{è±ÒXÐá`è9ä.Z9¢™Am˜’ä' ŒÔjË” s¡“¹óÕß^ŠØ¤>sݹ1ÿUyÆš'“«5`šTÚwa ±0‡0¬–ÎË0;0¬ÝS‚¨”Èú¹¼sTx¨•L_tž¯%ØÆtæ0V"V„Ñ\YÿËÇ©Êìéxò¼Ð‡ŸLìÊ5¡–iWìüÙØ«I¼UœÍÝ Œ²#¬š?±*x÷qÒÔ7èó“çUEúØ×›îÒö b]O0‚†¦[®õ&ŽHòÉ~¦Hþ#ƒÉFûaÿcfñ(6£d•ô`4ÛkÌÕØB$ljÛ­RŸ÷#÷Ùê¶Ðd=úL{9m[ŠòÝ?åøÕŒ½ÌúÎyVÏ–MíˆTe­±ÙòŠ­iM×—À«² £R€çn² 5ƒèÙ» ;x;zÜßw=ø#–o⥡;loC*a]¤Ë†@ïÀÚÀ"½ß¶¶ëD1ícŒÙFÀgÇcg^{0Ÿ¾î7PŸ¡Xg†Ì&¯[‹•^‹,•`QiEÊÖäù¬—Zã2#zÉ¥¸£îC´.OJÃüÈÎÄÚ<ྒྷfud>óF·?vŸîœ†¼µlO®Á8INS´D/ṓ€ÌµÌaìíB2¹õXùíh3ž!×,о\ëôö«Àý×Íb½i.Ë›n™_÷vÐД…qmÝ_°qÚ ‘Ï#Â,S|^‰æƒu‹0sS?Lª.þVÈxµ,Úш¡ú‚›çyÛi&ÛÝÁº`$ƾƒ‘ù8`ßò©Ÿì?òïúC&Mnñcü2× xõ”\ïV¸~À+õ·Ïûû xßÝÜiœÔ…=XŽzW5a›5cÌu˜‰‰Dè@ﻥÅf&ú<×ÜG}Ñ&hÓAxUä•{ýáªø[üÀ+õ_õ¾ƒ×®Ÿ"¸¿ÝmV÷úͦIô«U*‹°_F™_©¶˜‡Õ\§€ú¯4æ§3ú8œ‘Õ©†Æ‹`gT7ˆcKMc»~*Wæ€QÖ¥÷˜™Ý ktÖ3­dB,OXõ¯¦Ó¥¾åºÔdPS5pÙ›£ê!—%¶”ãÞ#©9Z“šÉj•U&?)É|œú´Óhcµã=g*1°-¼Ð3UíÎ" –¢w*…¾î´ØŸä˜?<‡¾­´˜žLˆYª Qwq1¥›dÞªVxC¢¡b]j]Äó~0“Ö©§=X‘ö`@{y“ç½aRÌÏ¥q û0îÇM¨y:#Ô<¶Ø8ùŠñ ‰ÔC®‚£±¦ïSO¦¬è½Ä*3ö`yÆdö1ý¥)óбnf˓ҙ½aÉ/2’謕ÀÒe&3ŽÚ˜‘²Bq|Žà]=1aüUU{·4`ï¶¹¶–Ýk5íÓU¾±Å¢%ûvâUbæ§æWû¼©Æz^Qi‰DrDqo²ŽÖ?¼J5Ð ŒeiJÝ€ŒÐ|Ûuô÷,3Íìžè0Þ™M3 |7_Ÿþè'Í’èêèd²›z¦­¨îP³éZá}Ù<»5ÇþsåÕï:'eEÚ¥h—Åñÿ%cê §­¸Qȸ¦00T¢R쪋0UK®ãJ0ŽT­½Ê´S±^jý/³§,3rÒM¨‡\šþýoÕ&î%2*5%æÁRë.Ÿ¾úxÆ)”aħGKôþ'ŒY×|çÆ_%ý/¾=‘>°êŒÑr¬µZ"æ‹£Ÿ+›}Õ8ÏÍæ†X|{Ì|1CµªÚ›ßaƒ àwÞdž3•ä$cNЪ˵_7‚“w/%Õ^бo´ïuc¯K/2Á~æù3 £Õ+'^æÒ2nûn‘ôå¨<‹¹.ÆŽR¾7\i5V•Úƒ{`)Õ²û­ÎËyÓüª#m½_å,Öáû¢dŸPO&‡ú ?š‘ ؃úú4yÃ&Gz1÷ùsô±¹0ÕjLyRßí±+D«Žß ‹q}°-ïlzÉLÛvb œåß0Òô˜ê¹tf>s>onÞ5É¢Z£ÌØ=À¯¶R³øfjÉô êÌê··À^zÔ”°Ê—˜©É¦ð*Í=éβ¾s¶ÏôoÛehë­®8äÚÈ8æãhÅÎÉôò66›´^þ߸ô¶y3Õ3Þè5‚ú ²2kcÒ»à]ïày×0²EôhÐÝ­ jÁ’©è~qÅnìÁåE÷“?ëß ZÙCr)îZ—WÇ7—=fµ}9r*rxULô¹S¶ažÕß¾Ø<Àü½É¬û ‘h5ÌìMFìhîÄŽ‹öl¥AØCs‚ÛaÞ 3kLOÿ’;ä?q×›@>ó €V{üC¦œlð×ú9n¤¿WvÊ|·Ö]ëou¿ƒs/–°Ÿö ÂXŽ•làU#Ö ËÇóTÙª&z^„ùȧ¢èÌÐ~¬ð©´Ù÷ö`{UÊŸ*í‹Á£Ú™¿]¾_íÿëÔš¼Ç󾕃Ÿ¿‰¼Ö¹Ê6þ¯5µ¢'mg¬˜íàϵéý\¿§a&bßjÆÂë@JµÂzý¸—[´Ejs-Uß,õEж ¾—oÈýý¤™]BŽTÇ´”I@‹°^j œ…ª’žNûýT…Iã‰t7£~Sèí®ÈÇÿS/ާßGë‹ÒÏžB.“An•H¼Êc>ŽêݵÆû*2*½2õdòÈ~2¨NV¨ ïÿ’cÚY¥ù„R1ÍϪ&=vo˜DlQtQT€¹g CuFƒÆ3.Kõ#CÒ4Úƒ¹@¥$F”–âý`-LÕ‹päZ‰ÄÎÿÓ«Éã¦bÇìÆ^<Ó¥˜ŠñíÎwµ4ßÁ Dy#¬± y‘¼î5ìÍ»M&óqÖ˜1RM¾#÷5Õ’õ =Fd¦œ‚=¨¶d_S_âíTös vU¦,&R·›*‰þDZÚ5ÒI±e¨ia7H¶á1›nkó~0vP_ù€ö`2ëÑo3cÎD#Oš2Ví÷_Lˆ‹T§?m¢Öý7ľo–EÔÿõ%ëjE«6`w 5Zh"¸ÄÛæ4z¥7Ô#ðûñ¬;œ)×ón¿Fw)õp¹ˆZ’K£¯ÜÆ ³˜ïÄwt£Üæ´ì‚<çÿ4°‡åõ¸YÔC®#wš›í»‘#ŸÛöÀ 5æ¸,­†3ˆÊëi‡½H}†žT¸X¯>üÜÈÜ…÷Ř<{WY&ÛÜé`up-øæpÿ´{Øíôuü ¿É?Œm£íW¹~Ü#ÓÁû&ùíî'ð«5ò¤û$xÏRL!™vùðpìEo­È¸”jš/3ïÙymƒ7Äɱ%HuIÒ (ºÓ_&^­Á~ `u/÷?¹øÜÞ.Ôó³±4¾ý/·ÚªÂÉm&#úíÆLæxÚ¿èaef"©¾hGF,CoÿÅøku­þÜžú¢ª‡< £2—üc±iho‹Žá~g†øa¾.ó[ž4}¢7GÒ¾¨s|i¬i¾g&Ù“z‘˜W©Æ™BÏà£Øï¡†L2m½”˜½ê$ÐV¬ALJ¢žlŸ‹¿Ê¢X†ùTåˆt™Tx©È½Yšú©áý`I"7aœ²´þRÈxÒ0Æiä~j߆Q¥ê¿Ê!¯KdŽsM-;­yP-L ï=õµ3ŸÀgè­kj¬Ös ¾–»¬HoZIœB/a4Ù¼ 0ˆq’Á;ÙdÌÉ;Xù/gŸÇ:¸;[c V›ÁÒNâ$ƒÞÀr@¨°^a Å³ÒŸ ¼ºÂ»Bµõ˜DY@Lžl†Ê0Fü?îÑ È mÄš·k¥ˆ?o´_I%»Ûêò!,º·Á¯´Ç{¨ó"ëà|bÞ·ÇMI«Q±çM½H©,ê«\,OÛ”HÑXÞß°ÃúÈ=x·Þýke ­—š‹yÞ «n5#~waGõ‡Ì¥Q’{¨Y„Õ¹ÇäK‡`)¡ v(øÕm’ô¹JÏ×>¬ ý®~øæÛXÃm8,æŠ2ù£?ÿ%›õ5q ñJóñMÕßžÖ~^WYQ/ú™«ès›°Ö‹Wü›vVöË®“ýØìŠ Æç?Çg†böÄšªö׬©)ž?¼î¤Ú”˜Å‘ØÑ#±Uëkk4Æ´À£²Ú2[¢gƒiî ýí±3§¸aîãì³îzð«“AE{P.Æ q¥â }CŒÝûAä×È÷¶ õ¯Þ’¹àÆ5¨Áµ ,¦&p¢s;âÕ"ØÉ˰[â™GÐ×q«×±óúâ¹Sƒ—Ü•àŽ`4ìБþ wŸÿÍ]‡Qú÷öWýNÆ~”_ïú‚_ÝA½¾qþ€»*f¥wßÇ]6geº½–ÙAã1gK™E™O[q4µ¦§Sí„eÚk¼äÎ Ãi $Ùëÿr¹¾¹_€YK‚Õ½mÐlË©/Úüª9~eüf[Ä|çÔèc¶5~ªCuŒ«ÌwÎ5ðôñôB¦áLo…sq ½ß•ñùô_%0ξ>žžÊx†vet8µÆšQ~¼oD~ñ°};:v\ Ó§] sýÚÄîÕ k‹q.MÜÈÅ.¹\¶­5ÕMN%ïJg= OŽT…Y€¸ÛUY&Ô.V&U@¿~j’v¦ÿJ}Te©Pœg ©ºFJÓóú­R‰O©1\L¡-–ŒuU*æáO"NÆó³Yäuq´!óxŸ™Ä8Ö¦85’ˆm%MúÛKÐUŽ7ž>+õ³¥Ð~L£-êÉÍRi‡Z­°ÏæcU¥Ðÿ¦Ñ$=y§ÐÌ|³¼;ñg%,Êò2ßs¿ÙÊ|œ$ìÀ™Rx•L$h.êËT_~3@ž“¶ÄEU¹ûKzÓNU¥õ¼ÔÊn‚Ý?R±-ÏÃæé}“F?X{³4&f>l¿–êàW:_›ùÕ¶gþàwò™¹Ã\µÍ?3Wì &Óê¨übGJGÊ qRÞ=¨öc"xÇ-¦»ìÅ»›¢õ›Íaìê?›Î¼Â_€ ’&лæÌw® $Ò{æ˜ÓúÌŸ1í7èÞ÷^q™î·‘úW¹À«×¬ÖÉzÜu³—ÍÆÈ4¬Boï}ÑmîŒçw6­X#¤øÕ)¼>‹ÚĪ×WŒ¹†5§jâÛßÁˆ7C›÷3fµõ¯»»ƒ¦Z ;s²êö˜ {xµ/îÝ ’}@vÄ=â²ãr|3yĶ_GÞül‹ñ]3Í ²¸.ÆSoænÁœÀ èG{WkäÜ.‘‡–77€_¨æêÔo/i&‡Ý{Á-Á,Œý`Ì= ¬˜gRå;ßÇŸóù§Á¯n^Íu½ý^ð«ëÜ\7Ûosÿ^­— î|pXØ=*V«-Žfîbê+i´~ Œs-¬¨k1wâ)-ÐU$Þüd +×Â,ëëú;¯Ó|çX»2ß¹/Æ]ŠœŠÏ´ý0žëL©èiÛ•uæ»àÉߣç]±6V€ÿLÂ÷µÇ^ZŒ1øœÙÉe™#¡µí4¦±6°¥%Æ@×íS`×FNjƙ~²oFÖð¨Yý6:xS §æ¼Xý­Uê¥WKïц˜cô½kmöñÔÙ¨ÀÌž4Æ`¥™P§/¾£0¸.Ñ,‘¾©ÊdJêá*bŒAIæúµ7ùD²R´ÄRc1¨™ÄÛ4ª¶—!Ë*‹E-Cë-¬T_•»7̆ë¥ÆÑû¯÷ƒŽ¹ä#ZÓ0›÷ƒÉ´ñÒÙ²<úš2Ùƒ,ú¬JRÕ&5¦Õày¯˜dÂúÎáˆ$©V¬ÖBUÛs™Öâ¢íÜëæõâ€2—À2ŽGßÂ'6u´77™¹ÒFD”#öÆ;:bþ©5Z¾æh›ŽRÚöæöÇŒåÊ Ž@/ÓE&Á¦ÐûΧ°W›7QGÃÆ¿Wês<ï´m±}ˆú¢Â{Öv£ý[9f‘Ã:_Ÿšïí»&Å*þÌûÁÊÄ«¥ò’ýÕöd.áGàÍån<+çÿ°FÂ^Ñ<úmXÊfê1²°±|ÄŠØe¥¼[kWŠf‚­;».˜ƒ~´6ÁÙ:Ù-Rëñ3ó&¾g'ƱÚ<}^e´k_œ²•d6óÚ¬Ì5@sy<µ«^kÕt§ïs.cÎ[¯*Úä"vÜ0Ó-zÎÅ»ÃîŒf®”÷¥aÎÀy¾È•°ÍíÍ%þ˜1„³°ÒáÉ[XÏKo(¯¯{ƒjóÀ›cUìÇOua°\±¥yHr ­‹EÑ׃þîž@µä³Ü% Õ0÷*N‚—\C¿9îý ™}R®[éö`#¹×ìµoFNG.‚e40GÍ“2Sz3+¥a,þjž³†«ž»£1Ï:€Ñ ‹ç93…•¥G7¹Ïƒ%ÁP Ühÿ¢{ÜïÕ¯úþþmÿ´ßmJÈf?Ü/^Ý)÷Ë ·Ìôw»ß1ê‹ä-÷ìA½‹ëa†HªÍêeZu!ýÞ ¨“ y𵍙¼Õ<”žßO6÷ÿDíè þ¢KÄi°?‹Ïò+ýŸN«8tŸû*¾¡ŸŠ“äjä„‹øå6s¶ÚF_µªÜZ¿lØY^ÈÚ8¥Z1ƒx!#'A Émû+ 8?×ònëFSöà úfÇ›q¾»o€uRltvôLt"³UòMO™O¥2γVJ˜/SO~™ÑM%h ?‡¿“èë.³èÒL¨/š@û%N¡?*‹«°Â³Æ:W¤êŸ¶´ªR˜ÉJÅE¢²˜·:´p É1>•Î ^a>Žr¬ü˜?=¦'£÷qz#X•1¨qŒ MéFdÇòÂË’cÕgí°0Þ>“ÑøqôÙçÒŒÿŸ¿=Žþ¥ÆZe—ºQ¯ïiÚ•e0ó×ÐÙûÇüM}Ñ$àÕ S(ÏÓ=çb¯‹"ùj3]úÊŸl{?X\m™?§š?ò ë¥&iù[ú'{Ðß>…QiM™¼ÒÑ8Ê(å&ÔËŠ·wIcréöC)²­òÒÓ¦…œ^i&Áßò¬ºŸDã~ϛ߀W¥­F½ýkšE>µåEùóbùÈ~c»Rsæ<öFã¯jc…Þ{¶/ýÞ9XÏ/híŒßýš¹!Ÿ2¼œ¸íÀ+ÍxÚö?xu;úÖ ¯ƒÝ#ˆÇ©ù^kj<8©âU ª‡œ5Y²ß]`þÀ©þ)#ªcÙg}o¼£ŸÖ #ëQí·6æEØÊ5þªGôCç݃îeìüJRÆWò—ìB ûA·Þ¾eÖD–2¾]óá´z³æ7ìbÕ®"Úb§ 3Xp8Pj:~Ó h1O.Ä;ï7šÝù ,XUÏ1×E߆ºA+ÌI¶û×s“ÜãæŠr]ãªÄ}T¶Ïɦ¸Ýß¾†/’=˜‹‹‘3‘?l#V ?ÊüÁBFÅÞÄêdáüï‰öõÇ+°¸€•Ð×fæ cïàLšD%õ_©¾èŒ}7ÿëyÝ€Uñ“oç¿öÇü!SJV€_-rÝýn9 KÜb7Êßé~–jæ:yѽ<õ؆xUÞj„HGÚsýŠËZ‡p$ýâªÂº gJ[ð­6ñ{‚—&=Ѻ»ü.Õy­íø•Ë÷7¯šáçÝî;ŸÜ†Óó2ìÁÜFÛ]µ£Mqô¨í€ÞåaÝÃ:« öZ˜\„ç¶ÂŸÒèoCXä©jPc~ Þ§žfõhª¢| càkÛÍÑ1Œ/o&ãIMŸðœÝ{0žœ¨•Ìaå+Í(nfæ0Æ@u\&ÀnÌ"Ÿ©ˆï»“ èIÌ)ÎaTPãF“ÉgÂÄrpÊÐS‘F^¥~°lú•×Z0º% '‹µShùiƒ°¢V*oǘOÕóË$6&˜P9…¯—Å»‡>+õ—!+Jg•ÓDr2÷BÆÆÓó•Ëúƒ)Œ Kb|»c$lóqâLÉX|D ¢`ÙŸ>«5ì¡U‰ÐÏ?3ÕÏm‰sî4¹VðI9ÃsÄó—1ÿ·›2ä0[Í©/ñä<ª8ÞšñZ‰hÍ ¹"-È©&›N"`ÕúôXMñ²ˆ¬µøÒL„~Ÿk–§£ßœù~©ÇQ?l^í³:¿˜fòµ­Åš8õæ˜_¨!É\´_™«mpÒ4ò·­Î|Æéòš„õtΓº ¬XŒXK¬àm@•ë•rõÛ;cäµ’J yŸw|R×m²Ó¤«ž5Ë‚)8e5Còˆmi÷¡¿-aG>žysÜ Ü¢'Vè<‡ÑsäzÞÉýjf›@²ÁLû3ën£«`®æñî½Fÿy“o’O€bãL¿è'®”;~5ö`U_Þ_^ 6›Ý|{ÒÜ‹‘½ÊŒ©™¬`ÑÈìaÌ€Ö4,:ÞÕ }ÑÛ„1øök€ê3¨}ÒÝý|¸ÕH½0új0ÚíjËó\‚ïçf'G]nÜ×þtPöàq]Ið«úòÙlÏF¾Œ\µíé±úXÆK;|OÞÈ­Á‰ª5{£ý¨¸¯UB«ša­¨^×3X7³XWth°Ñ 6“0'ÅþwÈŸqªjøðê’?ã÷ƒ»ï¿Z䆯“n¹î×Ã,4›äi÷Iðð²ëdø•*Bt3Zk9¾]3)Wan¦àßu€Ã1'°ò™¹8Ãì ¿êeîó—\<ðj-Úö—«í—ƒãµF[7¹/|UßÃÏħÿˆ|äÄo²Zj“)}ÖvŠ©Æ›å¿Yc±,zÐÜ­oó®ÃÈ_4c¹Ë ­Ò‡ûT3”ê¡-Ê–˜jöæè`j 5Sü ð+Õz3?ö fú5„=2Ú›z?¨ñ¢¥§”ƒÙ{”Q ê›R}Ñ<¢QZL}¡$ý@¡ÏI±£ ÕPÕï‡OU!ê%Q‡ª#ÔËÐ^ëÀÓ3…På™E˜DÎS‡ZU dya]¯Úƒ¥™+j„–d„½îë°F—bK<íÁŒ§ŠµLãñJK¬•dFs¥áûõ~0‘x¥U1¦ÄP‰¸æ>'2ª>ÎŒd•t4CûQ³Ö¼@¶Wk¯9õ¯Ô¦ûÃ\`íÔ˜‹Ë@£×Ù¯7ÀoWšòŒÕ\c¦H)#Š·=Mž4ÅIª¸ÚÄL“O™?˜¬±{À«þÙþX5^f1  øØdà•ÞÿÃÉÓ+-…ùƒ}ìmRÄØ¹]¶¦­mwÚ4æ-v–h¤ íÐßÁƒ6›ODgã¬ùÜž0IVýTÔŒ|fëSCf‰°&ÒVt\¿VõIÙÎÆf»YÏ:FE@—í°îÆÜ4ïxŒïm"y9àÕZ»Lš`oî†%º1˜‰7’¶­Su +¬7q«ÂOz4mÖ«´V_yY‚y툜 ~•%-u}3VºÖehŒY¼Žö`+|î)SÏ^–KøÍT¬Ús.xµPë¼K>øÕo¹Ñf¯ ¼ÚYÀzômX;« ž\'F/ô¨1ΙA8¥ÏhÌ)Plž;ÂèmmÛ¢!Å÷‚ßtÓÜŽŸ5kíÆè»Áx·;¨§qî'×üêIóðêÿ­ÿ ¨aïóqœ‹Ëó-d£¹ÍžŠüùx¥>¢ã²\ÚÒ:R/Î]ÍàYý°sû1öûeæªÿê92¯ã`X³ñì†àW÷º3Á]Áx hÿ²{ÔŸrK`sÿà›û«~ŸÐdÊ-~º¿Á ôe£¬vsÝD¿É}"ÍzyØ}è7­ÂJ!Yv,zþF¨&ýÝ€"š?8 #Ó£¤õ7a¤¹g›»`þÉ ‚û¯`6÷ê‹ûÙUöKÁ·šàüß {°‚oìµ>óÕÈi÷»ÛbÇcÌטrÑã¶-úÕ£=Ðü‚ïë€ù›}79¦×· ­8S¢ ‰ÔÖ@¼jˆi|Ñ=¿s½9:ŒH0ÚL26&<`ºFFç’©Ô1°C Èiª OS‰4ú­]`…õrÀÝvÇ|Cé̽I!Ѩª21_–ZnˆEªÝ ÞêPß8“µirw‰ù«È›ÂÒİRŒ…R;±1ã6Ãj¬YlK*Ÿ‘»…,Á»Éº´õÒc¾³P­ª4-‹rÄ­hQÚ¤ÅlCNŽÅ­7dmá8æç”¡÷Ì1C:xåøÙDâ_ ½éÉŒ6S é…w‰9ÊÖUÂ:h‡Wô-`_a½›$쎫¦¶œäϯu›jô±/3s¥«$ŠÆ~ô6UW=øŒúfª¼»œKìKÖLÄú™ ~53öÜ!2Mò¼xŽqõ9CL;XbMˆÊ[W…ö>jÿßó·í$jßþûi‹y—ºÇÌ_ömSÖ*. øÕ/¶PßVÊÃ6#ÒEÔ[ù#vX=Ø4ihA¬¾[©pGF {¾#Fo;ðª|À­òRÕm°ËE«Ý¬ž,b¹®²Ò6³[ÕEæOð¨@¹B|zpGùS9æž4eWUÁ‚~ƒò7ößQXÜ­Ácb%«U +½1Þ¡Hò„©l/k`M‹^^=ïÞÕš£’ãÓü7v1Ætºb_¿…ïÿ ûj„Fµaî4ÆIõ¦š—°_ÆaµÂjž¥ºùxýY¹ëDkP/¥íxb3Ì}%³=úŸ ¿»;Ð É|wÕµuÜ‹f›\tû÷ü;AM°Ü3°%.Û7–æ>ûÿ˜z x­Šï{xö<Ï™y€Û .—æÒÝÝ%ÒÝ)H#"-)‚(‚H©bb¢"Š"¢€ˆˆŠ_ìø¯½Îãï}?|€ç9gfÎÌšµ÷ì½ö{‘ß"Û°n¾2ÏÊ4éŽÕ¾˜54ãYZb…uc,Á3ØòÈ:·b„ÇÃê}ï^³Õæ[Üù`øÕjê‹î×Y`¬|ëÛù÷ý½~võ~ž_ãZƒ_m¡¿}˜_~ÕÐÌ‘cÀ:­ù³£;x5O<̨ÀVõEõ|pÆ© fR_ôy3Æa6¾› {ðoàU Œ‚æã8_ÆÏD‹~qåüRà—V¨ØçÞñ¥|}?ãõkä,ìÁÕ¶*æÉr“={0÷j‚ûþŒûÕeÅÉ:é–Ä«[±Àø§3³P}Ë}¹¦*`®‡ª5ËÔ¶{¢Ãi«Ýdøn@Ìî×ã«¢shAU4me2ÏÕO®ÑeÙ&¬oÜ} ÕíÊÅëãèižâSQƹg˜Ìx¬¨®‹2̪ Ïò²Xa+±ÅЃ,zãõ³YAK½ðyÔl(A_P:O£²M¨\ˆ\/ƒè•BïxV<ò½ s€B-­$êɤ3û0)•§Ÿ d^9±Š\ùŠEõЂ’´×²éÊæ™ ²BU’r<+ mÁ0¾4•}Tî8̼öq˜-+·ÚÞt'6ÀÊ8Gí¾D¼—w°_â¾þµÆT`¼èr3RZHÀ§ž¦ŒhÍ+µëÃû¬Bñ|„i.H72Ê¡x»d1¹Þh3P†É¢õKØ—:À¶ ó¯KØmR•ÏÚbÿ”2vµøÎ˜6ò™mÌø«?å#Xb‡Dïÿ¥ùÀž3IVóÖ6õ#¿Ù2Ôp˜)ÇlV¤ µOÆ.ÛUîÆÈôÀl]‡•2ºBZ…á Ø–V Ù5Öö î ¤Ûo—Šêïm‚eÖ"X^ÔÅÜ(·Ûö!)†UúðaxCyìד1W[a4J2×ø8øÙ,ü¼2ó¯Ãv>`TIkë‰ve~Õ,2î¦øÔs°¯Êøä3 úKwO¯z™FRÚ—ô‡­ÆõÌuSí³"¢y'Wð©aŒej¼Ðèq­‡Ú ¨óž9 \nƒ ý†â«ÚXA ¸ß×#ƒ­ ‹ñ¼Y=CÞ= q;‚º`ª¥ÜO®©›è^5ßË'n‚?íϯ•gb]]AàUuYoöÛ“‘k‘3VÕ鮇âgUè3º#X{Ø<³2Ïâª3ß¹4=h;Á/ÁV=¾ÓÏ]ÜŽ´ öZÓÔu;üe7×$Ëß¾ìÁ~?v‹­~”_ ”Ú+È w³ã7¹ß¤„¹E^rWƒƒXë­WÃ%xUÙô¡ÿjÞC[Ì÷9ŒöWûH©< ã ²øu!ÚŒ¡O>!ÍFÓW¢Š`>·0#Äi‡V¡猪DgQ½ï¿x†\\5iTgN¢O)™(áˆ'IüM9^MØ4k`•„U{ÔzèÁ~55¿›näg—²äcS_ÂÚØïçï1K¥€xÖÕÂn+ZI£'4ç}æ,«–{Oɶ]ùüñ¬w¼ŽcP¶ä4ìÈ…ˆW1³7²•}L[û€Ô¥µýŒÍ³µaêX} †÷…­/zò½|…gÿ(ºc\7ŸÚOL¦ÕgY©ùÖ–åx}äU› ¼RÎüŽjÃÉ ÚÍê¿Z‰çi]OÕC> U£°Óó?9ìúùº±·‚\û¸¬ u©Ä«æ>{%ò7¬í&­µæê3TÄ«§×£õ‡}ñ,6ê T\€9¨*…¥‡×_£ UIsK°Ö] Ë4òÏ»'ü°ÓDbª'sÆ?iD+‰Îu]ýÙ%ÓÜ47Òo^U1«À¯®0߹Ơ·”·Ã0×Ty+ŸšXZh>FfZÕ£=»Íàý/ãÍýA†³°Ú˜'ü.Á×ñÃ1 /ç×ùÖ&ßë¾Â˜·ó=pß#çÜn™íŒY²ÈäE©µ¾Òxê_Ug•£:Ø‘´V[P»£ùmÉ¢Ss­z‘hxÕ×W¥¯úeÓ'º,:šç¶uL?¹‰ÕJ‡Záºlú¨Tíâæf¨u<»k ü,Œæ «D¤Ò2KâúN§FYæã„šêYD–$zôÓi×)jLEÏP°8ÏééÝnw›Æg…*4aýÒŒ¸…—Ì•šÊkâñ ‰¼*Æø«Òì•F• 2&2÷§1«f0ž¡!µ ò‰Y< ã¬JS+5ÊX÷°nF25­A›bB}Ñ»0«_ã‰d1²Û^´t[€\¢ï½ æüeX{'ˆíš³x¥ˆ¿ÔÌ’T)È3¸v¦6æBK2ÒÆf°œ•öäKÃL¹.C‰¥šå•|pÍléÇ:C/cÔëÑknÄú½›þv­?ø‡”`#ª¢õ%ðê.VZ¨ˆ•¡üê6ô¥xãi“)3±‚»Ã\€Õ—+0/yu0oÀ\¬Hu·êøYžÑÜÇËò)ÞÓx34zÙ¥ºý3)ìÓýÛö6|b¿ëeß6·Gº¡m_a%t¥ïZí½ŒÖÔÖ£Qæðá›Ñ‚öÀ«¹ªƒµü¾ÜÌx†z`wã'aÁVÁ®WƬžÆÂÌÕ“÷»îF¸£f³<åæû ±Amû”L‹Ív?‚ååËns¯};r&ò©í‚'.1É é„ž,ÇÚœÔÖx§Êқёš{ö2Öx ÖóºUß࿚­6)xÀ½Ü ÆçûWÝóþ õþçùËþ5¿V÷F?Å/^í’°ç»A~‹ûIÚ™åòŠ»ìƒÍ·ŒùÎyV•b¯–°žW ŒL=êa•ÆúîŽqÙŽñ™ËÓ×ýA¶ûÚÔ<çÿçR}=¿óίn÷ÿ:=…Øí.ùþ?Wý9áþu läÛWG˜?ØÖ4Ã^òõìêc÷U¯~̤Lææ¼¼*Ä諺ø3€|£!Ð[£¿tÏ7í=À%==›hfùÁ¾Z¦õ{EF§ÓÞªK`l¼ÖU.ÞñD²&íb^À½ 3"u¤ÙÁœ»‚ľÂ\ËŒH(lBý¼òF³Š³ã<¤x¼ŠaõÛXuUýT݉iŠ=ÈtrˆE¸¦ïTˆøæã¤ÑnË$Ï ÏïÊÄÕ2Éé ‘AÛ5‹ö]*½Na¥zõ*ÅgdôeÑxû3h³¡¿+™…ãg‹I|N,Îîòˆ>)Fó"–¹5®Bk´´Ã¸¢ÿêO¬¼þŒÝZ`Λòr†œç-̺•‰Ïß»¯KïÝL|Z[Ó{Ę_=6Ît±èÔ:é1™B^7öà éB? Eõ͵…ãM1{§T'/]dÿ‘Êöqj[@ Þ·-é¿úvÛv\§ŸýÈüÏž^é;Uýöl6õú6ÊY[ ÒCt¯ùèÖIVbTj wÛUÙ+MuŠ4ža=zYëx'øÓ%î¡éR –ÀÑZ"Ë`«Ü ¼j ñK²Û6¿Jg>ÎXc»Xƒo Þ{}¬Š,Æ_3%ä6Vëú34 ãs”Úy«0ËÊs¨²â-Xë•°šÛ€ÙV¶ŸËû¸~,ãÛ3Üóî}ð‡ŠRÔçú“öVÌûÉ.Í^4Ë#ƒpÿϰ÷Æ4æú|À´ç9á°IOƒCMÆ÷%°jf`n컫Jõ¸•ŒØz‡üJO‹î…=8ÌÝT¢>Ãn°ë^3ŸË×Ú?;4³OÊÒX7wΗd¼è}ö³È‡‘ ¬—ú£yPæ‚_åÓë¯þÀòèé8úçúÍ¿k¼80¬)vƒ–hË xdz …ÍMÁ]îìÁQ¸¦­?ì^ðç€Wéò«ïæö{ýS@û5~¬ŸïúøGåq™å¦Â¼×ý"ùØ‚_=f¦bv2ã`ŽCºbÐúÕ 1žµ1²ÍxF–Œ²Üþ6†©:ÙŽ@Üu´¦³Ùã¿r‰¾†_‰1X€K™?ØÀ<èÞóå}O¯ù;W€W¹E¶èaÔë«Ã5ü¢éÏzôIÌTQ=äRq_V;ô¥T<¦}¸yŒ|)T{s)‡+=%®¤WõL¥ÇK5ó*Ò§ÊÌç4ž·¢žL«S+®u [aƦfÑ;Æk5f¾s˜“Æ»ÿ—-Nô(dþÓëK!…u'bÌ*BoYAÆ-”&Іõ›ó!‹¬ª6Ï“C¥PךNýÔÌÿ‹MaÈ5ÃÚ)ô_M4¯=‹`ÖµÁ,Ó|ÃÀ¤ëÌw.+1Jò1ÿMÌäWÅðóÑÒV~çDSWtý)÷kon’—ß®çƒä ò+õ1Î^M&smÀ¦èEkøìNMÀz”›7ýìDiHî7Ç6°¹v·Õ19bZÈ—Vë˧˜ß.VßÓó£=dÒ­òÇMy؃ED³ ¶Ê£6#Ò‡ZîjÈjz*Uwy#ö¼iÌ«»–Ê ‚V½Çt¿ª‰¹^F*¯îÕ‰\gŠËê`uCZÈA[ßÞ#•1C/îÔjŒO쎷¡ŒB­“K°y5Ú¹1lÕEøºvÃÜD÷¶yYN¹þ¾Ø± }DÇê¹k¾˜¯†ø¤½ù8r,CQﲬ—¸¿*ãMÆVÄ>p}ËW¿«6.c½‰x^-´êy´ífÚƒSƒ»ÝÇÁæ` ãö»—ü—n Xèà5Ÿù£þ!ìüT?Ûµ÷OÊ~™é&ÁB½x•aVÊëîëàI£õDG›!’fa×Jè´6MX§ ú_oº#lÆmà!­ñ»r¬ã\„úí»ý7® oâ× EQ_Ø/÷?9õos¯ºøÛ_"§]àçZÕ4_a D_RkžŠÖ¬û ˆZ/µ!PDíÐ4Ìç¡ÀèÑÌ™+‡‘®×Ú­†‘©Šн~¡©awEGqžO^MöuQþ¢ÝLþRÇtà ©dÂúΫŸKLP_ÿ-<=Ó¬•xv “÷&¯J$veÇ£–Š¥þS=#2ˆˆ™‰SˆÞªöôs%ñþ¥MU¨rZ5ŽI\Ýa,j˜ï“…(JµSÍ­.EFÖ›P+­l<þJ+ðäÄãÒ‹Rç6‰íLF/s‰²YåB5g(õ¾úP0<# 3ÑšcŸo^" Ì¢4cÍAÅ‘1áà ©{0ö`K0‰bŒƒZe†Jù—½ïŠÕ¬zzª©ú ‡¥%-Õ>¦£\ÀÜÖVÄ[M’ ŒœhŒ÷Ò_nàÉèk˜Cm°úÕ/×Ó4°s€WÊ_¶)¶„}Œþ«5[Æ6]ùYÞÅLêø}f>¶¯™«ïîwÓ8ò¯-)2UÞ´)‘–jý­šj=Ö|Ö”Y†½ïVæµoþn"ä€+m;Oû®ˆTví2Ñú$›ÁÎ&óÑ§Ž°xŸ±•í¸g}X_§ÀYöã]èInïŠQí] ÄlÌèÒæä“Yr OhB»Ök×39Ì@kŽýó pÃ/ä ~Ó–ñ À«³¸[I)Û䌋O¬t}íð+oשAX±mЭüÑ‘JîÓ°¦.€ƒ.ÅÏëa6+^)ç;~¥‘©5ðûêxÚ%X½u©¥´>z1¸üª®(ê¾uÓ]wÂü#o¸Ó¾eì­ –½_öÄ–¸ë^ãÛ÷˜íÙÈ•ÈIÛ=;`¾–ûå>ôàFê3lÇÏÆõoÄ}Û0øaì@%Ñ£æÀ‹˜_¯¡Ÿ“˜;9-x‚z}ð‡tòÜSà:“0+þ^}åßõûL*ìÁá~¡î÷È2ÏÝäFú‡Ý¯RÍ,‘øìc¸w'ì±£$ÃCßFa¿¨nÖ¨rÐAu‡Òç¯õï^¶`ŒÿDssI¢8¿Ùÿã²}S;õEËú%°j­mwÅ—òm½ÆØ~9îÄOµz–z‡)=n;be7¤§ð{ 4´e†‹Ö"|=Í` ½ú¬l¦ì£’FL×8jì v{t#¸'˜)~–o̼ä¦ðj:Ñ¡Šf}1Ú\OËš уÕ–@1²‘<ÓÛ¬+Ø©špÙOžó%3Š"¬;‘Ïó»Dæ`%îèê¯2‰cµ©•¬6 æ@çP!‰^·ê±­xêxPfâÝ©}>pçN ð"`d?V5ÖÓˆ'Ï «Û1rã±’_G›Tñnr°Åý¬†âs½ý+îÿ±›gŒ| ;ìsÿ¨ÚDä?ÌßênôÛe¹,q“Ý`¿Óý‰·1KŽºÏƒ§qï¾à£%ËŽ Âý+aæ6d´Á"ü?ž“ªýy;v¤ÖÔXg6]ai‹Ñº×ÿâŠúÚ~9>ñåüzlèÑÚî'_ÆWöcñõW‘7Ýon™Õ*ÚëW§l¬ºß^¬ï¬ª,kX]ºÞJöð.ØÕÇ1þ;ýn_GZo¢!㯴¦jq»!ÖÍ ~5Ò×güá~3-úDtqAõÛçÅ#ª*±6@âPIàé!╪Úõ‚mX’õŠòo"±$› *´ÍJS&TÒÓŒ¾j°+ë ‘&‘1œùlq%‹ž§°žWuú½CåÂq~ Ñ1#ίô$2?žc˜NDI`NMs{²é»Ó˜Ð0ß¹ÚÚ¸ž?Q¬öäåŠg‹ÅuùÊ1ÞÝÇc(izzûói…êù Ö‹9F¤,Š}¿.Öžæì´5äUì&j‡.6WLa9HŸýX![LQÆa.£ò§¼S7ÓP³~}!Ìã‰r‘õR b嵓;‰£8ë·ˆ,£ ,|é‡k4~ÿ5‚–pOd*Ù¸“öÿE[ÐV²{­Ž×@œã¶¡hïorxµ_Â^Ø—M1Æ‹©))ɶ“×lÈž ¼Ž{÷’-¸Ë Ì­=àLðzê3Êñ(¾ë‚ùùöâZrеÚ+IcwŸ"ú¾ï7×L‡`fe®é.÷Ùfv¿(¦ýŠ1Ûjž¤êßM­VàpEÁ…úYÈ`ÒM&*SÌÏà ÏaE76Žbõ/Õ*› ô«Ììë×L¦ýcX mªýx¥þ«zà³Ù>ÏŸ·ù¥ñ Ì‘Q¸ëeÖ/žÓ|÷í˜Å Гûѳ·i6£’ ,užÝ̓eZ›Š «ñü¦æœÙ…+Šcv>}7¸Éí Ôg^ÞÅüP××4çä²;èò‡ƒÀå7b÷»À«Ú²Ãì¶ç#ÿF¾°ê‰ûÌ\”É2sh<ØömÔà ¼ˆÙ¤ÞåŠ@á5xJ¤¹DÜ¥ŠÙû/Ï×ó ñuìÝõþ7§gEÛÝo`“µý$Ìæo"o;ãgÛòèåzS'zÚve6N'Ìâ_€B•èq­œlÏú8³ñïÏUÜ,‡ßµÄÏõ<¨ãEÇs…ß‚¹½.:’Œé&3ÕñÕ˜‰rÈÌŽn¿R»Có§1R!‘º4SâѥѦgY>™'ËOâßâ&¬Y“G»0›˜T )™¹}šw¬JUe¨(›+¨ÎŒåTz¬«3 QíǰÎ|X¹¹(úRÆü§F³g‹0?0¬ç•†13 S‰-ÉdRêG¯Dû® Ï% ÇíºXA•ÉÆô®Õxª¶^³Â‹’%R…+%ëc$V!r,µÃ¬ë®èùsÜ2ûv21­çõõb˜ß›|y‘ý}»èj|§ã¶Æô–nr§š]M5iÏ&3bšìÛÒ‘¢*Ã2Š_÷M`a—¥Ñ?ßFzËpÚ¦GXWz=¹k/ÓÄN’ú|Öv[˜õqôçMWñ‘º¢#ý‡\†ýö‘hlÇæŠ=ilýê5#ßÚ²¢Ñ¸·ÊÓ61ÒEÔÛ÷¡úåd#~:«ûaó(X¼ÖË3ËîUm °®àOç0b¥`÷%¹Mv¹cåâÒ;¸WWà Yk»Ø§E#šþ€e¼(WóyÆ©=foQ ‡Ö}( ”( ðwô÷ ôa<£ pAór;aMU¡Xõúê›—Á¯®Ê¸ËÓ#zÉe»GÜE´²¡¿úÌ.Â>ýìÁófmDõ¾ÄJ Æ õ*µõÄSµáo4gðGYUKÆg Ä“*™rP­óVìb:HÌŽåiÃÌ­d¬ådÆYµ”^Ò‘cu3¬#Ö{ÕÂn’†ìËF[ÚÖ°ZÅ:ÍÇ9aPoágù ¨ó“(»b®ÚwL†Õ¸…M•È›*úÞ—É!› ~¥¶ö`=e Ú ê+{µ®vû|ꌟ1þþ´’c¬QW2Ý=v),šæ. ìÒ`>ÖGC3JÚ–öYQ¤ëæM°šp­uÞŽñ¢¥1zƒÁ3jËܽ/ùÕà ÏâºzàXÓq÷ެ71*Åi~ØÔ±_È{ôµ~ ¼zÚ]ÐjªRkç{›ê#ºÎèã¢È=·b¾ólà£út·)[‚=Ý‹|—xÕŽzɷ௞ý«<²®\„]¼ƒ9‹þ”ç‰û؃ãÜ£°§š’°§ƒ_½`î”}®—Ìz^Éݱî_Å7•ÍNûaäBä3Û¨3ß¼-³¤ú¸ wžËüÁ[L}éÉ(ŽªXs±~5¢@=lOá½ÅÓç­P1%8ä> ¶#TÁØ?ç÷_¸™FäßËäß¿j)ÁRšéúúeº,pSÀ¯6»_°‡Ý)¯»«Á3cÆ‹ê[|}¯LiÅŠ³¨ß®­ð.6`jŽÑ.ƒ¿ÛƒTƒÛxõ‹Kòm¼êí^Ýîö`%³üªÚ¡ïóçÈ9÷»›oU«©)}ßvaý+Íúùw¯…¾i}çÄ«4Œ‚®˜qÌ>.¯ªÆñ:5è É}yŽI·‹¢x67ÅŒ¿ªE¿Ì+fjt_t,Ñ¡fêMñºðÅÑŸyä!ÉÔZóEO×ÊbÇzž,9™Ñ¡ö^1®è°ºC!fÜ”û‘ŠàsÅÈB ÑJ̤7>š •©W“Êz^iŒ9Wû± ëæ$¥2éSO"ˤ=‹ÞîtF¯&Ðj¬‡õŠÒoV€¾÷Rq¾Æˆµ šÊ˜Òêô[¤¿=¬nÚƒù´o~¶  3¨ ÒâÌ7aÕ‹À‰%`©ôÛi•ÍÎd^ÍÍ·˜Ý7»–ÂêJ•wÈ6áýl0Yô-67Ka)DâNæ Ì ´yÀ<)h©öÃøÿÅ\Âd|½˜ñ ê¡k1רßîõ7V°gØ£í°vÝ/¶ÛT[Ñî±jI¿oêÈ'¶Žè¨\“ó@gµ?ªuEÏ 5Õ#ÿآ̚+ÛìH;ÖIT=™2 Ïí‹çìÂ>8@ë``&n_ÜBÏÝæ>s#î«uhKJ9·ÔÞ#u0"kÀÚV31«‚£=h+Ø3àWÕÁ8/bíïê,¯Ìóóv|Ý‘ö`m0ú’À'óL!ŒÏ=°5ëãêéôâÖ‚ÙGkI½Ó3±'OK§ŽCš 3 “éQÒu§•ãóãúž¹ÿ¥‘Úµ˜¨[ú_Šˆ™MýîLæ ÿ©·ðÂìé°ê|:¹PX'“¸™×MˆGŒ¤÷<äW¡¿=ׄõ&´¶P~<ú43¶5dÂêTú¬<ïXŒxUЄ• ï™Ï‘T»²Vê"°&=÷,BÕþDµvæ7ó6ÖZ+°ÿ%È "ÜaÌ×M¬ç•„÷ØOJË?䈽MkiN-š˜îæržõ& á'ä_ÆsØ~ý˜Ìæ˜Ö6Íeˆô¦·ífS3¬(íÙÓÃ.”Æ´UŸ²ím-û¨M£nLk9b+‹öîùÜ&Õj~¿ºdr,uW¥x$)Êø«¡ò¸ÍŠô•lž?΂5y Ï%êaÇ]ƒ–ŒÆ¨–ï9 ¾¥œg/zÕVNáêÆ¦¦Tu‹`ÖǸ®7•etp ˜~{´àe[Åî—|öØVËaj-ÒQ@‹–¥2¬.tÖ”µ@zÃBškWƒÃÕ3+&%0ßóqÝ4|JO+`7°—a‡–Ǽ½êŠ¸×œVm­ ¼*æ/Ú@  î,àU‘þXŸa%h½®Ö¬gü}oñ“œÃíT <€öV3bU›@3úî2ÏàÊC@e}rY³6z.èîžÊ¯J¸ °‡»7Í 9æºú1±£Amû„¬ŽrW|¾W-ž‡íYàÕy؃ý0~ûå&0­‡–†±«l2F­îÛ O©ªúÚ„tfÒËhSkünz°™õRµ·ðÏ»ügn6Fê/ßßêú-¦©,ö=ü,àÕ™+³Üh7ÈosI-³˜õ¼žÆ'硤¸U ûQêµk¾s=Örm„•§èXìÅ[Xc¦:VûýAºKê53ûo]¢oæoÅxþãRüÿ£Óˆ©»Ü{¾Ú1 Ÿ½y‡üª6ÞÅ:“}ÛvÆšiŒÑ›¼šZì˜ÿµÀt›ã§Ùà“=€W“Ý] ÝÖ˜«Šª9SýÒË`.ŽŽ ­1h­z2iuocstRÜ3®çƒ%ãù¼-ÌM̶ÑH‚.xƒÅ¹§ųöÒó”Hÿ{1FI¥&¹˜…¿é6á3Õ0ƒÇ`ïhG_Nì›çL9zL+š$™6¿êËz_š«*ÂÅ设Ӷ@m{ÏU%áŽÑ³.Ó=ã^¦>CQìüÛyª×än…=¸.2ŸúÂôÔˆ, ASÜá>úëïUá$˜F7\3 ã9{êóÍF»uõ¾Œ·Ã(n£­RÝ,e¾óþ 6IYg}7 öàò¸KŒ™Ø™ ¼Ý)Çcœ•¿zÈÜmF$zÜ6§mù˜L–žTÌÇçW¡_0wz°úF>ZÆ‹öƳ@k‡ã ZW£žÌ&w*x0Ž»tòO¯>rókçÿô/ú}¯å~€ŸëZÁ¼C¹±À«À«êæ6yöàSx›í1¢}ÅÙ±xC7—T7¯%«|.b}œ|Ìë>féÃJ"ó cV»š‡±_b”}nSÌ:e^ÍÍækò%Õë³àQïðþ/³*WaÖY^ ~UWþdϺ™àW#‰…-Ì2yû¯>u¨i,i‹©m8 üê6b{?XWÃ¥7÷”ÓXðlõö^“¦Ä·-@«Rv'ëžÀõgȯÍOò%ÖÝ5ѽäŠ9oO‚gë[ºnJG®Ù"ŒsX*À¯F‹¾‹Kªþ(Kêµ×ÙD}†Šx›ZßùÖUyÿ·’÷èo¯)eÜz𫊘wwcלhsÓ]öÚzöqÑúl¿Í·`44u<³bn§ÂÆ ›üª~£õ¢àW/G©ž&îÞ–Õ´´b“ªŸ·ÁªÛsr?nzD?u9€q¯&å°×Ÿ^ 1O¹±öu³22oý3¼÷Þà‹­©’²OnÇÚQ}€ 'X…^£¢¦ ‡À<´i+ÀÖbüUgózYsµ‚¹/únÐÍ=äëéžûÉ5rýÝ[æyÎ]ð¿ûã°ŸcûÝ_¾¦¯)š‡ìë‘O#çl{Ö}R¦KÖó,‹Ù°x¡y)ÝT±šÏ`÷)N{ðôu¤F@`Äo ^mvGƒÁ´­=õdþçf¯ ÅZã¹›ý^“!wø‰¬?¸S–È7Ýð»Ý?RÛÜ*Ý×Á3dW½LI³#Y~ú4ë¹9ãF!«ÐBœ Ü|íº™üj[{°½æ úï\¶oèWÕŒ/O½¾–ø¼ÖK­;qús)rÊýâ–Yͯ[c2£gl'Œ[Cô¸—ùÆTã~³„ZØMðÄT0é®xÖMŒNªˆßÕr+G¨‹wÒo^WÝ,õuD‡S¦˜Þ~ðJý;Í’è;Ñ´®þ‹M%Gª\+øåâí­Á¿j¡•Cn'^¢ÒBú–ŠÑZû/ú¼,VYVSMaõ›âôu%‘_eÄu• £Ï˜M£¾²"Tc.Dý=] u¯2ɱÂÚð™ŒÚTÛQY6=ô &¬"öÊÁoËÅóCF–¸­›^Ñ–j9Ö ¿s ³‰Æáù`yªp¤>ƒgüièoϤ¿]­Äf…™°kÂè ­·y‘²%øÕ5Ö¨U{ðK“+§Iqëàà•fe¯4ó¥œüJ<ïÓˆþùUÙ#Ò“-îñW=Ÿ~x«Q¹•g À—zHWŽï1¼ë6˜÷jË÷5uì Ÿž«>bSmìA•S`?_ØÚ¢ ¯ßc}ßcÞÅÉ/Í7ö¨)ouLÿ0õ"__éž2KÎÚ$ð+µCÏbM¶çIc<ãcàfÌ\jÞeÞòõçºÚÁ|œ|­]'©în»F*c”×êšÖÐô’ ¶¥ýR4ÿ7Üu;¬ã2ôNh¼ëb*õŽ•U0©€¾Nêr' Y«WýWªÏV›¨‡;Ô¶ËûxîÓ/ú¹Kq'ÜEÜ­Œäû’þ];­»× ·çÌÚÈ0|òP`4P¨Z¤ªV=ñ¦*ÛMeŽÞîbƒ±z»ãa[݂ٓOͪõøÄiXUiI¬ ú¹Ç‚hwY÷‡+åºSæy9ânó`6¶OËÖØ,W8VÔ7^m¶oE Fߪm‰‘z\ÆHwÜu UU£±+ôfõ íß.Öóì„^߇;¨|Ðhäkž¬q'`ŽÂȶöO¹‡Á¯”uûX{ÿ¾ß¼J–»üM~’kïwËZ™ïnvãü}îW0ú¥rØ}ìOÑì”!RÀR5VË0öá³½FïRO Çݘ'Í0•0>{‚˜++­0BÛüW.æ«ûÅø:ÉWö·û¿a6Ä8Ÿ÷Õ|S? _ÿ{ðº›eË`ün7YàW¥õèûaÎÕ`öéj|?ÑhÄžQïrCq¦¥éB> ¹R-Í82”[`¬‰×£Ÿ`£—É{^4ë¢/DçÑ#SÑô”éŒ&H z÷HVVÖêR›é_Òø«Ñ°E‹Ò›•Ɉ¨ÔøÉ]v_2ðŽsX8¬W_†Öb:9[«xœz2ñ*Ÿš¢éÌÝÉ`$—zY 7™ñÜžtª_%3?1—ª‚¡—½LœÍe¿ɯrYÝ"ŒOКaœj!êá”§Õ¨–emZŠ1úÛ3ùG¼*GãYaâ_Xë9‹5¬S8žZ_ä@Ü›66îoaŒ¿ÃŸ°FórsÁ””“¼þ5ôñVìêGZnæ‚_ýËk:¯Zãz¨n†ÊKñx†vÀ™ 2‚¸ÔlÝÂLaüUMé ¦=>ˆVÜÀúƒ1¬ç;–¥òÁ'l`K3'EãŽäC؃ºÛü ìÜm c¾7?Û¦*}òFZF.ØÂ¢;Ì0ùÀfD2ël±æ²˜Þ†Œ¿¯y|wbÕcà™åÞ_ ç–Ø•¢ºQ›0 ‹‚P¡£Ì–P%nX·…ežTÆ8­$Iò8k­.Ë|弓ð}-Œu=p¢Úö4Æ6«¬Eô’Kwo»Xkù’éKøkV-½Å®ƒ}ˬŠÜˆ•ð)Ö£ÆÝ6ÇÿMÍV\Ù÷„7wýœŒ–”&ž ®U—œŠµSžñß-`gͽø©æ`¬Ž¾tpû‚ªØòÀ$š»ÉîŒùL^umü›±A;û€Ìµu?ûb¬ïü=ù0òžÕ(šGÌ>0|­‡vß T¨»s c¯zs-?Ju=»Ü‚ «WcV¨-¬rgÀ¯FåZúãîIÿ‰› Öíb7øëþU¯Ú+ü4? xµKî–ynŽé·º?$ßÌî£àY`ƒ²œ~"V+ÙôÇ© ^ÕžŠZ'g=vã1¯7¡¿Í”µan ŒK•6Z¥ü*»Áí¸ö_WÚ¯b½‰ö–ª¯È|œæ³È°’Y¯»Ódƒ_µÅWÕUgÒ|ÈóA=‹©Žgµ5š¡Šf/à‰ŒzÔHÏÈãzÕCÖÕ6üjat0µ¦˜á~‚¯E;ç°Y}>:™V]EÓ üªç¿Î­QÔüÔµ©jô9&¬/1mÊ3¡{F<ß¹0‘­ˆIÛƒ¹xa=ÂÌL#_}æ'¿êÄ“:ýMqZq¥èÛVGe2L*·‡už3éU˜<-•>ý,¶'…OIŽÇ«C»3â±£%¨>_ˆµ!3·;ôáW í™HÿUa¶=Æ8Œ 앧Ϫ  ë&P›57¯Q«÷&ÖóR‹tÏX…€8W€WIŒ¿úÉì3 VQÿóµ=Œ}Ký“VÊE>^és‡Êa[0Ò…zYG1›k;Š3Æ{xQ̯ª¬?x l¡7ÞàÃXu=å8ÞSISAJº ö6Qý½u&Gú³¹ã´•£ö{?¯ ü¼ž¦ªÿ7}ÑÌÅÌŠ–¦q‡¼ø9 l!M^4šù±œ ŒÑ¨ðâøDyÎÆfÀ«jö-ù€5š:3¾ýxN+`f†/å[ÅEîº|bÖG†âª«XýÙŒÙ.­X‡rÞáÛèç­è_-´a:î¦õè‹À2­†ÿ‚ ¨ ©j ¹3oˆ¾´uOzZŸë>q½Ü0wܼ ~ÕÊO‹½´°;dA¬³ûÒ§ùz²Ã6‚öམi3YÓg{ðc&šo¹ÍïR|U¿VsÒ]:õE5þê~w—…=8cw5rÚýãn¥ò]À«—€W9˜û=ñÏSß¼:fL=ôW#hÓéwŸÍ8+Õ¥Ò ÓžŒ°¬ƒ¹­B½4ÓT°«££y7Þtó7ÂT;ì€Y}9:‰¸QÕ äìÑU^–Ú×Yñ¸©VÁ<®Ò¬(R‚Ü)TWHŠjU¥0^½m=Å®’<L%SÒš;‰¼Rýöõ¨IŸIûQ=ßʼn=ÅñVk“g%Æ‘(%Ρ2x—„8K*«Ã:СOÞ3>!Ÿ ž–cQ¶¬ãÛk²jAVã)ª¢QXÑ5;î§*ÏÚdŽg…‰á©c*÷Tæú-ûÜÇgf±¾J[ò·Ö@‚˦=­Í•ØQŠË;Äü#ܯJвÐõæi éä<}a-µÇ ­®n¦Ê«ÒŽOlkÚÉ%úÕ0–šàYÄ´r#õ0—µFqXÏkÖïdiKzÈþ"å¨ßžbÞ5Mä¢-GûÀÎmæwÆ€}a®ÛMq«Vo‚T|jsEqx”œ²i‘¶R˜û×lXŸÓ™®gi÷a_™Ž±©~ò*5Ðk`v™öècy¼Á&RÖ-·Ëu‘ù¡Ü‚÷×ÐÜ ÏØ¦ö Ñ k6ܽ¸WIÜkPèpG­+ÒÕ|lÊâYU0Sÿ07ƒ9¤Álþ.·Wý+µ2§1+¸®:hj¯Îb~M6M¢Ïp^³ð¤¨/ã=ØÝltëíûÀ+­õþ9pp õXUßê~¬,ÕéÕz„çÁ}§0Æ©îß¿¯ŠOÅo«ñœó6üî-ô²&õE´¿ª+ï~s]ÝwÚ<-¹ÌØþ •}JÞÝë²b¥èo¿Ë¾ù!ò¾mÏêTÊ¢™‚cðŒùÀô ° ¯ŲÎÕjØ–2§1ÆZ#,ÁnV+׌–»‚‡‚¡f•é๽þ¢Ó|úß|sÿ¹?ã7^Vûá~žëî÷Ê]²ÜÍv£Xß9³ím÷eðã©z™.Ø Í×ZTšÔÓ¬TmžùúÛ†3/ú]Ã|çþªË‚å· c÷³«èyãëàmìvg5ÚÌkäþÕÈÛîo7תn8¸ øU¬½Rª=B}ÕxºاÚg51çU¡ñYøÕß®–zÝÜG¾¶oåç¡WŸGί&Yµ\o FÚVXÑMЧñØÉÕ{¥;lKÜ·#ë«fÖ‡˜ id3ßžLOM?´l"í—¦´CýöDŒz/?(©ëù ÙÝA¯u5ÓZfÐVÒœš¦¸c˜;“ƒ^>„ÿ•yi>×ÎøY¡ê!#neCÒã±RªË^9îÒ¸Í"Œ/@UÝPTW[SŒLQ“ìÌd.¡r¹º< ÏSÈ2Ùº3è¿ú/§ï¿øÐ;žN?K‘x®MXÃG¹’֮Ĉ µîª¢õ¹ä]…9ÿé_•£bÍõèCÀ0^¿$£ €NªEòˆ k–M ¿Ò8„äWh=.ƒÕRDÞdÛ߯{Y…5¨¼t‘™.•å #ToÀjîÌZ1KûÉ1âU!ŒrW¹Â:8 Øia÷\N«¸ðª™t'O>l´Bå|¿#Mbü|° Ùj¯J»ñ `>rÞV/ûVÞÒ|*ªÖó±¹jšÂVùmDšÁ,ƆÛåS›é)º7CÔYP„ç6O˜i+¨þâF`å.صÇôóx›åÀ¯ »;í*ÑÚÝwš¯L©`úÔ ;ß ÛÛ~,ªrû·¹†O>Œqï”ètXÅø»ÁàÕd<îÒÚˆÌ6?'Ïau5Bß'3ó«þ޵¥g•UÁ<ÊÙ#àjÔ'=犹—ݧølÉò%üàU;3Úµ±¿š‘A˜Wð¼a´~Ôo² (×m¾—5¸Obv·¢ÆÉ à•V×j‡ÝAcl”_ÍAÞÂÔaÅ;£¯ýÀ¯ÊÂNMw?ººÀ«Ì%9í¦úý‘ ¥}@ÖÆú¯ªøÊÀ«×ɯίZß”{¤1î3Øt3¸îþµ½Ú¢_•aAݧv¼߂¿ÌÓæƼ5Þ]؃Ÿ[Yß¹?ìžñŸ¯ÒÅÆêø+`XÏ`n­ñƒýL×É?-+ä67à ô»¯°{¬•WÝçÁ^ÍšÇ"?É(*÷NÄofÝØÄñ¬ž={ÒJ¼ëÆ›jøÌ¶Àº¢ÒBOÄý®ˆ¯ë×`D ùâþï|SÕn¦žLs?ct-òžûŸ›l5ëeµ ¢¯‚YfP7g¸ùŽù*ùèwK¼É6ÔŠš‰Þ2'ÓÒ©ËjÓj§T¥ïr¿¾ûêÜèXæßlFù©xªžµ5;£/FgÑ6©ÆxÑP¯¯<î?€˜“ŸÜ†¹˜Ã:ŵ:9XuÂ[ÉŒRÈ0¡jTqúî‹ÄmÃ0ë&ÌökÏ’.D_VqÌ`eTùÌ4.MÄÉÀœ©@*Ï·I£M˜@.•jRâg%L¨8“IDK Ÿ*‡¹Ž9ô¥gK؈R<‹L§m›ö„ª[©ÿÀóAÕI.Cœ•ó´1+…~þt>[4ç™G‰Í™@‹F÷$žþˆùߎ^û;±s$ËIbì˜LŽ(ž¯f}çë·~¦³t¤©æ;O^õ`µÎ5ð+}Àä Ê,ÚÜ•M–4„ݧúW‡©)»”|lÞéÆ_%šƒ¶€­n·:—Lm9aëŠ2ÅëàA›Í_¢Vï/æG{ö ŽÃ_¦Aä´Må™à`9~Õ5ëÇ®Û+·0#»b~ 1Ó©´¿Õ¼bwªŒkv™þr3¾1Ç-³s±B´ÞÄæÎ`%¨9ðl­ítÉÁjøö×Vú¯ºa=ªvßgà[C‹wSÓüƒU’ òðª!paF»=>‘‡§«•Ö÷9a*Û7ä#FZ6‰~ä2Á¯¾ªV¿ªê?²‹°æ¸Îö'³,2í|OêÍxQÔÞIœª£NÅÛzvo+úÐæcµñ ôºÏÐÖãwi[™ŸSÒ¬ƒ=ØÆí Êk [wÝ p7º÷Ì9ã6øã±“À«Ý²;¶ÎÙX5_Cž1GìÙȹÈqàU óŒ¹&;DýÈÃY!oÚ5×\ ¿½9ëym ?¸#ÖÆv\5,VùUkÌðîÀ«÷‚íÁŒG À=è?rL’±^þÊ׺Ç^õôÏÈR™~5Âßï~’ÒfØß/æ;gbD;È÷2šž¤Éè£V jŠq[d4ªFO≛XþfŒî4³)p®œ4Ü~Ðÿà2|êõ¥‚_­ôÿ¸fß侂 ÞËOÇÏ?^ýë¦Ùâøì=ÆEOÓU h××|Šõ¦Jãwcä§ÓÖO…}W«d2m¦rhSÖAHdăj3kÖËRìM#€Wêžn&û àWZ•ë¨y6úJtc=k`·œB¼*ˆÕûU*¾ò{€+fò\/½+[í°¢ô¿‡y…´Ú’ˆ"ê•*¯™•K-‡4bZQf#ƨ¦zéx5°²Ä°\¢šÖi­Â¨ÐÚ?ÉŒ—HçùcX]5Ô€(÷_%åÂÜ=ï+Ëxuu/Á Å¥Ò´=ÓâyÓùŒÎO¢O>Ì *HŸU)ž8Ú´žgwŽô4²1åWª¾1ÓÇT3Î$GšR`¯èyà0êŠÄ–¢dU!w ÿM&–d|{zrYí&‰?/Fõ›ÒÔXÈak¨bU„Šqý¦±zS˜ÅœNtÊ2¡fL&£#ŠÑŸÄjIôÜdÄ=éêË¡·,F{QžK*ö”nT%ö©Ÿ¼:}jèµÏæ™cA~WЏÖóräkŽ•íÓ1–Ft%VÖc&Ô”˜€ª5™X+ó=löŒ¿¶Oëy%bæõœHe†›Ì8é'×ȇš.@¨.´«k%^éJ›½‡é+§¥cÚoÀ J—ùô°a´¥ ìAÝ#žPåaEèq¦¼Õ¼B÷ƒ6ÏæÚ§­òÑ‹¦¥¼jˆ¾½ås @²U\ºf¾³Ïb(.E¥\俦ó|0x¥ïe죆À+íu-°`¹Œ5)Ì×ÕøöN½çUŸWÞb\z3©à6‚_i¼èNó¥éÌg­½.ò¸bŸÖÇO?Ç'÷²Þødà`wê3TÀlþ+n4WŒ•áæwôóÖt5ôo"îÞ™y@SÑŽšŒH8aªÛ·°èYP•è%WĽêΩ¥(9XIŸ¯Úš}n¾ýÙìˆ \BÛûaîv¢ßjV…j-ÝŠuó†y{Ogú›µÞ•ò«ƒ@®ê´‚7àún@µô½h¼è[Á÷TPo³˜ûÍMríÝ»¦}Úý Ü84^Ÿ‰½æRbùàW/bï8ù1rÉveÃIY(õýZÙ1µ€ýU{ß´avõ£˜Uå1“4V¯Úóx¬F€çšÁvwüJóoô‡Üsþ7œêwßÃíÏûçÍFõÖºÁþ ™)ËÜ0­ÝRËL”ã<¼¨?Àt“ ¢Ù‘½°zkRIG#,Öá™X¢+Fy3ød[|¯ê>÷Æ5ÀNØÞlöV`S¿#WÒõ«|¢WžîÀ«^õÌ.E먇¬ñíÉàW-±ÂªaTƒAW¢¾Ùünî§ç^š¡q x•Áø¨:ø®5Wa SÁ¬Ö¾Ä$Ù‰ÑAôÿL4ýÀ¯êÑ{tм=½™¼§2fÙj2;©ƒùTŒ˜ þê{É£ 2Ouk\#&“±Éä%iñ³Â4Z|Ùÿ—m\JÒg®xU6`&ñª³ŸSx>XœˆUˆ^Fcd¼zzü®a\W¨ÀNt¬ÿ]êÿEÂ'ÍJP_´ ŸV@,€ûµ"gK¡O^WGzÕ‹³^jf<–½"ã14—0 jcþW™0DãZ˜Gc±*Éýc„ÚÓŸßl匹ž&®0§L9ËëO£3LIÑ.­—:]~¦};ÄŒ‚7”<ª†ª{R;4«ëFyKzóë¶°Dn&7®o2¥*®Ñq;•{}ŒÃL¦í#Ù÷g­µ•ìS¬ç¥õèÏÙ:¬1ñ›¼cöµôläS ò¬É%ûËÔ|jsDGvœ|Àx¡ÝÀÉZ¢öZìðÇÌK˜ãYi›yv`7ŒÂS˜ ­é÷Î5 ¤ª[bgK Œß}°ûKèÝî ¼fOK.z•±*Ÿ#wžŠµÚ£¡yç½ó¥ekÐ ëÑï1Zá| í”¶xj)ØQ SØì ¾}üJ•Ï[Óß~Ê]ÁZ« •|Yÿ õÛou7ÚÌæÈ¬+¦ õÛ[°.8!øBÜg ìÁ°"ZR+xæy'Üs±¤®X‡67Eßwb¾VF·DÃÝóÖ¾(ãÄs=Ü%pÖ#î3ÿ»¿¼º[>‹ír9±ò¾ºì6Û‹‘ï#mÌœMæEY$£€ -‰¹ϸíéFÅqÕ™ÖÚ×e¯± ÌFãÛ5»9fï ÁÃîûàÑ`(ZÖüêÿ?7Í8)»xuÜ? FºÙòs\7ÿ¨ÌÅnºëá·Ãli&É÷Aðž8 ¹…\–AhÍÍ@ƒÌ׈û¥hÇ0æ\ÏÀÖ²êâTž‰ÜüTÀŒë~õ£+åëùåª浞Wà›cf<쮯úxU=¹~µÚªŸ¼(ª•ÌTy =Æõ2î^BÏXñ‡£—õ0ooÂÜzˆç€ª;¥ùƒanj˧/h®É°££Ã¸ò§›™~ PRmªƒàW'£“MX»¯#Xy/šqíGŒÐZ{ý©)VœqO=ðÖ Wôí$ñÜ0ãÿ<ézÞ—CMöbBqÖuI ‡ªOÓÏP—U¢ÒxÿâŒ0M¤—ª:‘&^¢"ä}a]ù 2­Âñ¸Ï²q¿V W}Ïæ²™]ÏÌeŒ˜þ® ífÖR]öòXEÉ®rháf“Ii¼h£á=cxBP€žø"<ÔONÁø0Ÿ[£ÞïPýùÍW/ãÝ*ÒÝiÞ…•s\èÖÆ]à šƒ´ÊÜ.å2ºAØïÚâ½(¿ªjn’«2˜XÝ×ôk‰»7ånî •€\ue™äAæŒÞFœmÊØ)ôÃ'šl [Ëî²ô«×—7m Ñlò+›×h÷}nLä “ÍÚZÏë’MbŒèH9kMdãZÄŽÜšõËáMœÿžb†Ñ/¼üf;Wü“Œ=E•™Æ’èn·7IYž ž2åƒõhaX¼ûíX{LÔ“éäXƒO¡m°¿÷ *T­^Æ×Z¦âý40L4WM!y ÌC+ôiìŸFE•RU{Æ3T'jd?d\ýhÓ&ú+æ¹Ï±VâùàU»ót‘d/›¹õŠ]Æ?ü©1½Ë÷ªþž¤*YG€}cy 3xÕm*o:À2UÛ¥öãuøÄKXcùôklˆ¾ôw{ƒº Ü5×Ä vŸ˜·ä÷²?ë/­ì^y/¶ÍåÆªPùûAä:ãEÕ¾º*óÀ™+ÏÕÀœ™'M3ï€ßTd|Y>˜§ž–6GËV£Eƒ0â¯Su§ðj£»<ŒF›;úãnÿÙÍÀ|úÝwò—ý,¿xuþ1¿4øÕÛAW÷xP—þö/]7Ð]4oËN7Ò‰]jƒ_­ŽÝãÊÆJúàW;í©ˆ‰¾kÛQmà)Y…=¥œÑ<Éi¸CmÖ|ë‡'ª s-Øa+UŸv茔ڃðÞ» Ý7ÁCÁ0\Ñпâvû/À¯~3üêª?ì·‘®÷CýB×Åï—År»[êzùmî©`¦Ëvw6ؼ* Lj)ïËHªM(M1š¨Öi3ì ÕÑ’ÁhÙ`JF»iþ ¸F¢çv[üWÌÔøö4_Ò¯¦^_³Þ]Ûêá'/Dκ?W߾ĸèÛ€ -ð?ÁýÊQ¹æ·f©'¥võiäHeè›ìJS£Õë*‘þöŠvXt -› f¤Ïzƒ}$úzt¦É¢¢v™Î̵۰¢a2ïÚ;kóïrW’¥ÒŸG0ƒ ÙD«dz¨J/ Ñï]„'‡ašúô+e’ýÔ`VZ=GʼnwIôU§Bb<ö4™Ü*qÙüz­Ê›°†iV<‚4‘õqòÈë ²j`.í»âd Þ3­•èçÒO#BåÄõdJ“Ÿ*N¥3ò3´ ™¶¢ v¦©°˜èÛŸ„}©ãÄÚ™ëØGZÑçµ ,¤ø•ÆåŬ›bRi®6·ÉP¹F|bÚI'úê b ÆÊEÌ mç`0w€dz¡ºÿ`f«%]Ã$IiG[û}0·3æb¨‰Øþôk¥š§m²­cÇ3Ô—?m¾¨Õû lÓGZêøÈD#g€WzVø—i9K{0ÉL–¬tå£{ÁÄëËdF²5ÄN¬d(wA­Ð¼Oµç±¢7=å4Vsl±"nX^%\±Ñüdf€_õD›1oºhÞ/̇@»'Yƒàf u °Î"`§1nµd4fvmp°¹æo“!`\)†a6vdýf”jdú»¦îx-nZD?r…Ý1÷)VEu)íKx™‡¹¹ÎU±oš‘>¸ë7¬h§ÑF Ñ¢­¨%=Á¼ L×x†òFµ;“_Ç^]‡•Ãî`å˜Ã@’|²ƒíÑWƒaîÑ ²fÿ¯Z»á°OË!—ãwÅ.íì~ÙëãRb¹¾šì3Øï"'°(J®7ÏÈ ð«ª¹*XQKЯ©ÕÞ¬G[£³ s¦+µoÃSGc”á ­®Ð1˜ë> ö4§Ó?~uÙMÀ›ó±.þÿ¸ß|ßæGúEn€^–Ê 7Çõƒ=ø5˜õDyÌ}<‰]/Wí]ù6i9ŒÂÆ+4+ª Ӻ̕5«z2m5Å<Ä\}Æ‹îô߸ßȯDkS}1¿ØÿîTëo“»ôêä5·æbä”ûËm´ªA~»ù-rÜ6£î¦ê3|ÀwXo¼žÝ‰ñW£±SìÄSrÉR´æv{zdªc¦µ``²YnJØñÑþôqM4½ý(ß”ÞôÃæpôëyeáÎ1kJÓJ²št6!(ð*–Š éýàF÷¢F§†ú°ŽXKŒãlœ'ŠÛñÌÆ˜ÃÝ@»c@bU’ך*‹Yš+3l¶>p«>¸ÀZüî°Èê̽/|&èGÿÕMRÉwíÜ(÷1øÕã®™ùÀ«,F …7“q½ÏÝ+ªÄv6U_à ê¼T1ÖͰ±Cêž”QÁ<ÍÛ–†æI;Òî3z_}–Ù~ mE°Š‰x^g­¢Bÿè?èýtæòæfp¬4ìöŒ€š†g÷`eœ¨€Ù «å¸t²/™Xý¥oø—¼úTc-LYàU±Æ?npìyY€}ù 𢠣Œ®ÃLì€=¨Ê}÷+ŽÊ;¬ÏÝ}[LÅ•2ÀÌ¥G«öÒ|0£7d=u´‹dcøxÐx¥áåÜÏ®¹á>Ì~g"Õ"‚zv›ÙyÄ•ŽTñµÍcrÌž }úÀvÂþŸ ~5sTÖP5¼k3‚>@4‡»<ýj«ñUº¹ïÃRÅ«žÁ:÷IðP0ñWÏ»‡À¯¦Ár¶‘!þwx•j6úÉ~™kï÷ƒ_­r£Ý@·û §Ä2ó û.x«¨¬ª¢›ÏM´2ê @þÉÍ Ô›†¨ºXŒ†ú¯:)+àëݰë™¶½»ýO.Ù7õ·âo’}E¿Üÿéjá³÷»s°Á{ú›ÐòoC§]1¿Â–Á®\%?b]iýÁšø´žHª"\(ë0ÆË—›Š5ÐkûÞºb:0÷¿8Ff$æi,÷õ"؃½cz2c€ÖÝÏ ù­gÃGÂÓ$ž5|»€_ewÔÛ9…U:#è2SYÐ4y"–›œÅ:‚É´ÕRc¹|‰Œý.Iæ’HTHݼxÆ 4d~q:yWcFnªýX^®œX g=jFcJ3(x˜Ãw”¢'>UÇ¢ñ£ÑL¿h^s.mQÍÌ"fFëMdcLsbñ«šS’>®â´ZµíŽù8ElqÔ6Ôwÿ—å“‹¡h‰ÕwÖ{1Ø—I2Á\¥}§“4‘cÕ]W]8 ¯Ò3;—°¿T±“L"÷]°kÚGXoây©e¾´5Œr*Õ¿ºW*XÅêå[ìåÒVÇŘº¡—l–Q+ùsΚPOê·¿¬g;¸ŽVÕ­ö½}P=d½‘>)áíU`¦½Ê³¨²ù=X`'›ZøúaùLZKÐÞ’XIØáö£ñ,Wä  Ý ¬yöpìLõ7ôÃoͼ™‹¾Î†5™eöÊ£ø«å´»±ÞòX|_øÑö`{ؼßt–ë¹"wÖ},«c*âä/ZŒÑ¼Ç-@·†Fë¾Æ~ì „h”íŒw×G4VAãÛU¿l ~ߛȸÇhìw%ŒîìÜvÀ«X¡ZÃdðª3ðª2æ¤Ð}ãj¹!àWgÍ÷›ÿÏ¿4± ͩȫ.>RÕ×4;d·})ôìÁöhÏ(yج4}©ÊPûèfV0þ„³¶´ÅšÒ»ÐÚ@®žà9OSë¦3VêÀ`»<Àø+­ï¼Ó‰‘~þÞ?$³ÌOôk]GàÕ,³ÂMv7øÍ°kÊ °¿¯‚ƒÀˆá˜¿fæ3½Ëû¿ \¹u¨Û7„Ñm[wƒ¶b=¯É²)ø1¨  ¾Ü篹 _Ëkì&N…þׄõqÞóU}?c|%tÜ•ð ¬VF])ÅÂ¯ØÆØëm1æCå"ã%TѬ&zÕ _e°Rík@-Í/)Â84füU üTsùÇK´žTíEÆ2]zú±¾÷óëÀ«£áÙDjr™Sf¯À:ÖQe„¬ÙÛÉ /z/õhÙåK´ D >¹Ÿ“ËȪL‰ÖtŽò«â´Zô  oöT·kÓ'ñæ0‡¾,õ.×#ËÖ)M¥o,‹X˜M/Y´2¡Æ¬Gã¢1UÑÌäR1{ð¹9i´#øY}ì·„Øg5j1‹÷†i|f,†¡ùiÀØ­1¯Ñ4U®xg:ã°U¢µ§1ë?‘õ&~ƒ¨G;nÎî sŽŸx3±IRŒr¸Ûd¡©iÀ x?ØÅôÄî‰g|»Ö£oÄž÷‹ÿ†~ªdì°Eà39êÕ%Ù4.éˆÆojâwz1@ŠÃìLtßo¿75ì~«}8-Ì)[Å”àýà‡Ø}ÅYÃë{ùÞž–²ÔL.aº†ÓL•i°CàW?²[ïÓ¨ÃÜÿœŸëŽUT„ѹ ¶â£ø.hµ­>‰õÒ–çoÁ°<åQÊÌÀ®k(Ì~;Ì>m4ï&Î| îõ4ï=TC¡7Vo&«ÿ-MÍ4ŒëDXÍZY/ÕhÞN3ð«¨~{U¼M+žëVM g à1fö£=xÖ}†¿¨bÊøB؃³5þÓ-µgdch$ö×7@¼¾Àˆ–@‡F°g‡0Ï÷iìÙ×ÉaºPA` þ¦¿žûv9zT oZ‡ßvÅHßF}äJ²7üVÐÕ=TG*ë>qMÜ wQ–šWÝE_9t´kÌÙÈ—)ãë_½jß]e¼èœY™e' F )°q:+V7¦âhkÚb{`}æaÇÖÆ<–¼ÌúÎZÏzdp«;< ŪêâŸq‡`N—ÿ$à¯ú½~§´¿š~ÕÑ?j†›[Ý7Êoq—McYižr—ƒ'±Jç¡w-ÌE3еYõ–ðF*®j ˆnø¾#&Ã’Û|ÎÓcøUi…ùÝåÿ¿jà5Æ£8ùÕ®vÓ~ê!÷ð3€¬—BïRŸAïøW˵æ–áü§¯Íjlw`UÌÄûja?iFã@¯tÆ«hž<£•_µvêÚVÿU¯ð0"ÐÍÒÚ¿R5â§åÃð±ðT* ¨¿ýfÆ3hŒbØ'YÌŠÉÆÌÝC•uQ_ $ÎÝ×E«È'ó¦=ŸK¢_(‹5'R™Ý\@}ý§$Ú–‹ŸÊcÌt4>—XTŠ8™ÅZw ±g¥rß'Óë­²SšŸHˆýM2ñ1•¨ÍÌ&#‹Pï!š·¨ùέcŠcµðŒÒÄÖ¬˜ŠWqæãäÓ~Œ_%ðgq´2Ó1.QßW œOËÀ3¢œm"+§éÏÛÊ·°Ó;Ò2]Ó1ɼIô>ýy¨rŠVÊ4•ÌglëiÏ»båfµaY]¤&L×÷æ¬l±ŠŸËWöMÉ·ƒ÷¯tÆŽJ0:B3Í?6%4Ðè­ÈSXßx?¨Æcø~0öPiÌÕ0Ž=hc®<"KwØeXß„Üv†Ñ¹Ý%KRp VgCüþ~;Øž7YX…€Gí+WÝõ›XÏk)8¸V½³¦*Xêº;³¬#Å媆 Ìff­+Ò&2"O9Ö émŸƒ}[ˆ}Õ2|Áe¸7¤xUÎogaLû¹ö_™RÆtc5Œ·-ö”Ö£ï…kܸlø°jàáû±`¾ѦŠ2ÂܼîÚXí‹1³§0Óµ™Kr üFÐÊí^­’"÷K^}%o™‹n»/y=hnï3Fv¸H¤øÕ6Ù~ ¿@~õ¾¼kÖÂÓè£Æ°Xæ¢ßÓ1}yVƒQk÷Éâ}ZSýÆRªzJ‹`¾»ì=¨þö—ÝíÀ«›0RÿùÖþÿ£ßƒ¯WÁœäºøÇͳÐÍtƒüýîgœ©ß~½ÏÁˆ¶„=8ŽÜQë NÁ 4e>NoÌnEQ=«IóÐÞÉ<•ï .UŒÖ\ëqÖW÷«©×§xõ·S=ö{Ý+Ìœƒ1<:ãþtÓ¬z –‹¿kÛbýh>ÎpùŠuûªǺãm1‹)øoy…ºÇª§ÒŒy")Ì 0Ž6ÈbØȯŠc4zú¡àWšÙ|L¾žÄ(ªòÔëË!¦U ‰ÝþeboáÍ[s'6LJb—ꋾ‚ÿ*#[+HºyƒöïiÌ÷I5ú酲ʴ^©Oi8xlWéJ{°›ŸpÚ*Δ)&Í.$—ëÓ(Ÿú¢ÊJCÀºäZ¯bÔÚSÔ¯6I’Àl‘×ÝeslS»Ëjç XH§©Ï/—W@XúØ?—ßÀ¯ ­Ž_Ø4^éÝÁ-æŠýÃN¡=¸SïÓÌ:ª¡5:¾ £±ÆUsq?ÖÊA¬º@«Ò<§:f¹ª)æîjæ`¯ß W9X†¶·„½ø¸]`š\æã|Œ{„ÚóU½§m)<½»ü$µîÆÌ¼»÷>ìäºØŸðÓ>ŒyQËj¼K;!Õì³èOvBQøŒKqϸ÷±Ž2Ll“¿íUêqÝíEYê…ö¿Gý…é8¿Uío«ÔÅhLDOŽ©´¦ò¼w8ÕÔÛšy¬Vø1‹Ñ©Ûï^Vî ¿´v÷EhW)÷«äº¸Oä˜9êr}ÿÈÙ ½ÝkD:¹r‘<_Û<+÷Úó¡Ë¡S¶ žòœGwvMZ¨žÙ=YDàbŒ¼¨Dþè$$ŒªŠ£c–¸Ñö`ów`Ýi?sèchGÙZ’ÍÛÒšx5Ø•o^fûßÁþÙ YFctWÂêj¼R~8V”ª/ÆtÌw¦qq¥L5ÞŽaŸF«>N|åT`¶%^Ek„µÄŠÓw t EWŽÒí¬³¾ô#à ßÛ:¬ñ«ùlèkŠ}(ƒ{h½ÔDàCåÐf›É;Ä­æ]kCƒù÷ÏÑ»²-ÖÌßçñýP`§fûíÆwûñî²@­ÝÒ‚þ«àUU·XW H°Wþ‘ÁrUOÀJúÃ^o› `Àr Ÿx†^­7Ü{£ã=@®I-sã 3ß%šG°ƒêÀz‡Ü6ú8|_SŸ(oIK{#]–T?æã¼ë>ÅÓ*›_èC¡xöb7Î~/›CÐâ¯T×Faüšãñ—maß–âQª‰«òÖJ`ZWÖ\˜U[‘qæõð‰±Ók0úeeøÅ`ŒÛÔÄßd»+nš»¼.ݾâÖûN‘‚&vŸÙ¹Óýá+øªæA؃_ýj;£ý3ä s‹é¯–3+i-¨¦"AUŒeÖ£¿ÖF¬•‘À²ä5à•ÖNlælÆ£]üsîÕM×þÆöAä˜ßK{³Ÿàgº®àWsÍj7×ô»Üצº\o¸ƒ'€CT}Ù|‹ñ­ƒS@Ïž©mV‹ž=­‡S x5½ÝƒVhUÕI²#ÈrXÓ÷.ÿ³Ë‚ý¹3€Q^ üRµèîKôv²Ÿ…Ͼz6ãmVõK •¿rÐßÖ2 gd ZÙ+ñž‰’)XM°&&Q%¡ƺfIý·5Ðÿ2†˜°\²lßðHƇß(Ëü ¾ F©8ÆæXøÛðlj,T—ÎØ!åhfã™C¨]@Û ˜Ðç@ý×Q/‘’FOV4½,vxa,’³€yÒÑJ5»®7˜ñŒ_ª†÷eó)z7˜E®£w‚MiëEc¢ñ\ŒÄÊg»2é3O!¦E#ÔKHT*žì² }nÅ%+¦­CÑŽÚÏɬ›£ùƒÙŒ¯ÊŠåGF•ùÊ“%:ÆqÅ3^´8³q2ØGÅÃæãù‰ÞŸN£Î“ò“–Øm_c£÷ƒqÞ¿‹oרÏT£w¬+äv3Ä|ÈQ V¡ÊÙêóo%ƒÍÀ"·9²Ú„ìÍìùÌj¼YBÿÕu1-a÷)š¿€³ªìAýûA’iÇR‹&AÖØT[Ý>ju|—zƆj› Æ_]V|G›ôŠüe?¹¥½Ó4ôªM£k‹ùÑþgÇÑT½¾:fz­z9Gä%Uûg¯{q¶íÃJh$Obew^iˆjFÜV;Ìdã»g±:3‚ÅØ¥À¯>¶“í;¬7aÁñö1þª:ž>ýÑŠ%ª°ú‡dÂN)~åÌ ¹,Iæ ΃¦85Z¨ -ÎñÆJ`{ÍÁ‰šÙÏ©ßÞ_š‡?piî ÷%ÞVΤû,ÿ»ÕºvkÜ<`òÊ~þcœÃX¥³>½SýÎÌf†ž¼‚VÿÌ ´Eï+ËlØŒØÇÛïÂûÞ”MŒ0Ë—áãÁ·%Њ}¥Ý×®Žë~uÊìBíñì6s!²Ñ•ˆx0Ùnφ~ }i5feš ½ãŒ_n Xe(Vå¯B<»fññJkxÔ&v§âÆ×߇VDïõô~°£DósG¡eý¸§IYÛ/<†\h†Œó}3²‹Óò`øÏðtÞÀU”>¬—Çø«:èE>÷sÎú5Ô¶ÓÛÿQèY½Dô7¥ñ¤I´bj2ãµÔK‰ÅnU$*¤1¢ ³~ yÑ#UŠŒ)Ÿ «Q"•9¦Éć$úÉÒˆo™±ˆ†,îæxjU¥÷∋žIï~Irª,z²¢ÊXecþ«TbšÖPŠÖ»Ï U©5R³‚2k‹B-F¼*AüM §ªÆq8@4« æWoÛȯàRm%Zç²”¿RÎwó°D´fV:öÀS\GxÎ…¶Œ9Ñ„Eæg°-}&X¬±v4‘µ-ðª8k{%kˆé¦¸ý:ï„ð¬è'Åì4ÓŽï:`KÚjöq›Á¸úFæOÛÌh/ý@’*ÔgøA³¤´UæZÌô =M{0-øÅƇF™ æ;Ï–6fÏUDx^†‹Þ„a7½f¥‘—‡ðWƒÍäEåÌ7ÁN fF ü,·k±Ê[Ëó– ¼ÊÆjýS®Ê \.öè$é†ÜÙiŠ=û;lg½¬lžÔ3O³æÀ½Xe•¨ò¢úWÕ±æ›`5Ÿ‘B»ÓœÆL]'ÍÂïºRîYw­¬f2|)ÿ¥¥ú-n ýPÖ…ÀºÀêz£½ZÛ½%Vó“_ÍÔ½¸uc4šú #1£=X¹t2Ner Ѻ…hÝKrÚUJsâÂoCݺ ,ƽ´;ç깾4ºNþë¥n1[#mÝ_>öà~؃ï‡Þ ½N=ä¹²ß,3ñ֯ÇÛ&2çzù}«Á¾jÀÏÛ¸BUA¢Fûy{¹z>37›.Œ²Ý`ß3Mí!Ö|AòÌ{ÔëK‘¿Ì9 MuÖ›øR¾µƒg«%-¦kèˆMa}ç5&)äCY'qŸÜ[oÞÔïyCÃRª<Ìú«`nݰžÇ»L‘¿’ù5Xc'š’T­ ™öÁ ŒK ì¶«}”:É?Á2»W^ÆÜ¨n‰V©YÃüѾøûÊÀ«Š;ô Ö^ JKÙ,ºÃ;1÷l«È4ÃÏK-ûš9…ùè UߺÒîwIkt™RÔo_ˆ¿îÊÙKrwhvçÇØ#ÝD#Ûc‡ìÕ{YàÞøÉY¬{eºC–Iò«Uf)y¤j,Þƒ¿ý©ÉÓUóqú¹ÝA%ÌyŽûxÕÅ‘7Ìû.ðÛ#Ç‚Æv•Ù™è®ùLð«ûä{&ôyè%Û=8)ûÌtÓëoÖÏ0%õý$­…~*¿Ú„Ï£Ö©*AÃ{²ÖNÄ`øÕ¶` xQÿ¬{Ø_v7a=ýê›ù¿ý£~¬úµ°”æ¹f^Qq¥«žw÷‡)ùæ°û"8ÈxQ €ùÄŒb4Û$ê·+:6vj}ëêdz7àí›1"ª0GvWƒÖŒi¾ xñõýZŒË¿®È¯õ¹Føz—; ~ÕxÕQ¾ …=8×jVËRàÕIÛIJ³Æí@ùw åD½cð¾ÚXoñÏ»x“Úd¨çÖƒ| ~ÌT~µTŠlOÖw.>V¨\›ûÿmy/üGxYK‘ô5³¹³õ~°'5[£5ïâŽú»³±#7Åþ&U|,¦4VSy”FGg² ùT”IážÊÁzJ'^©Î|cÖÞÒ{º²ŒÐ*IlÒ*Üíñ¼…K¥Ç_ñ.÷ÿ2p¢~~elѨú ‰ÖÇ)ƒgä10ŽoË’h -‹\Èà)¥/I{7‹÷ƒ lMrL9Ê×<S2%•Û`Œ×ËVêºdó”jOŒ6ò#ÎþôŸß ;Á#ŽW½3X<ÊQ—€_•2?ãJ+£Q“‰¼m>2Í$ª›±Þümzó‡{3‘ÏéÆÖÓt£½„QÚóˆ{äs»éH¯ázû¼©l‹^”àUeC\²çex‰úá®Êçìw…ÿH»ÐVsKIáøP£í9¢Í|üu7ÌÐsàRý˜£ñ ¯ÉAì³z`*;¥—y륡Ô0WWcMY*ú¥™êÁͰ±j‘ß{Æ(O?/ŸR/z}8í±š4F}0¸B £ŠK7¯–€m¥˜ÝÀÂF8é'1_¥ë15`þ`y<¡ëMhkƒðû.ßtšý\ÝäùŠþàUOYà6ØÓ°Gcõ‡<$æ]Öúƒ=ȯÃŽ8‹lë „…Ö›L®ø™Æ³ë½Ù‹Ø¹'±«cî«Ê–ð{Á ÷X µzrÝ_®±ëîÞ†}`éÈkAm{«ÙyÄI$ß7¿zÜ ý:e[0¦û Y [¾*úT3< o˜"-aÅׯn¨}rPngD™* Ð\쉢±O“ƒuîƒ`;ðj‘´÷/»§ýwn–|+ÿúNÀ«7ü&Xîü «k¼aV»¡nŒßë¾{Ÿ¼úöàJô¯§ô3Ÿ›I¬6…öh{¬¡FÀ¥öàz5ц˜Û±NZÈL¶ogà\Cœ¢­åNàS²¯ëoÚ‰¯‚·ýåšâo¶ºSàWíü\<ãëÐi^e2¾ý¿Ð»V}MMEóy¾a­嬭±7ô¾#§íõò=þ«Æ ´ÇÌè}\Æ3Ü@_÷*)`ü•FO”¥³xïm؉zS0WV›æ Q¼—43Á 髟k¾^)CœUöƒ™ÁÞNÀ“{8%æïjg†Ð*~‰7Ñs8&%dšëhÝÞjÅV²û­úüž—ºæ°-o4ïñ'sBî—8«Ñ—ä{T˜ó;ðêð+íÙ6ó“M¿ÊdüÕR© ¦‘Ôi´zLgŒhm’À,EÛ›cWq(ÕMŠÛo¯7å0ÚÔ-X¤(€Åû–­n?„YvÞ'8垦Ç$´º#v‘*£ý&üª<0IÌ-ò7õd¦`lƾ)˘ïrØãª  ¨ÒÚž1ÇYk¬Cø¢+ Ûìk°£B“åËû¯ìr¬Ø]n:,àÕ¡øüEàEŒUìèIgÆIöÃ_}ĺ‘·Ã€N#Dóeô Ж:XíêÙzœ°&³$¶…_ F¹ç‚Š` åÝ7®‘ë{ð{؃¿úPä µ½ß\‹s‘HŽod€ëž %†ÚöT–z¸s—ª‚ÙÌAŸ´Mð«ö¢áàÍêñ®‡ÿ«>ñÓ˜¿)`"E2$¸Å vc0^ýs°uÊÍ#ý}Bä˜ß Þz‡_ì׺Îþ3öà7Þp¿šòàWÇÝÕ`Ö”ú÷;±cЛúx·fí«oIõ¯:PÿJ+ÞDÑ÷kÛ&Èž ¸kÔk#ü.Ï7÷ûP¸µÌÿëT‘{‡ûè5Ø«¦Å…Ð÷·[J}†…’~ß¶Åʨ6=H¾ ~AYœÛ-DµýjQ) 1ær2÷·ªn7®%1ßYµÏ®§ßz¹”´ÝÂÃy^O’V~º¯O;ç y>üKx oé*ƒ_MŪϧOI/Q"cöv0ŸYc;Ça”Š) §ÆjǤKT*šQœO­‡LâW+F3’s±BbŠÆZc«èOÍõtúó½jc¥Åb²ˆyñ´ã²˜wœIVU‚1ÑØøÙZo™Œy- Ì)Fd͉Ý–Æ»Šh¿&Ð?V†L+‰ˆÏhvO¼*Iô ¨0ë$Ƈ%³w0·É~~§Ô +N[×hu ¿ÕÏhþ`Ä%;ßo’bF‘u¹l6IÀ+µ‹‡IÓçˆb FVþaú‘MŽ–XW“kÑ+è7YJÄî‹§éEݛ؃M/ªú š5´%“e£u¶±=Èøö#RõõëïÌE¹[>4G÷“\^•¶¬öc:†ž¶ðÆ|oƒÐ$Ö€~;ª¯YÀ3§#•ÞŽÄ×j·<ÄÒèú}ƒnà9zïS¼:b§­|/NÓaÁLŒDh>´5틦 öK6é-Øÿªt4(ÕV²ÎÉùU.£ŸÕhÞ´Ê0OR«l7ƨ,õd´vW¬ ¿zUºÛóÛBŒT»ð®’»à4G° ìÁ:þ«qÓkÝDôqQh öå×´H”tÁW{ÐvUy˜ƒ÷ž†Õ5Žõ‡ã$ïÃÌŸêf.ëM(¿ZÀøöÛÑk½¡Ü¼íž j7òÝç.à vïÈKæ ·Þ?ãOíì#æ±È:÷'ì¦Ffæât(3|,CÕ7ÌŒàPFs¬Çêž‹¯7ZÒm¬Þw+ÙfX¡О#̉ê‚u9 ØèޝFÈ ië_ ¿šƒ3ÁGFúøÈ-~ÖÝz¿Àow€W«Í­n–›èw¯òe±yÆ}<…Þ™ÀNdµÃñÀÅyh—VŽ]”ÉÓ` æe`cõa·ïÒ]3Ó¼ç~ÿ£ËôüœÖÖçû;¼ø&Xù;ÝY؃c¼ê{^ ½³d¡-D›×I1¯º¾àWª×·Ù‰Œu×Àò˜íò„ý4T-|ÊjLÕ#rÈ ^åa7Õ§›ƒ~]Ïú8õôbu´;ÐVÍÜ„´z §zÈ‚MîT°7sò:ÿ¼;ä¿v ÁD‹GÆù¸È\ð«°Yïú ®—?d曕îð«}îgS_n5Ϲ¿‚—°sû£ÆšD;ïIý…éTš¬ÆŠ±×ã{­à:çÑh…Ö»¹Iž *¸Æ¦;þî¿~ÕÞ/ǧÓ}Ž¿“þ+pl÷)ìÁ›¼ªMzË…ý2«w©«%9ü,álæv§¯‚Y¯Ÿ«o¬žžH ùÓ2˜¢·“ ¤7q©&æ¡1F@­´À«N°Õ;QFù™¾6•cNÊ‘ðµð2Z{•¥ã¯týkýÁ¡1Îrà0÷Xý6cqä’[E+M$P;+C¢Õ!³*кKg”xiÆaF½]z?˜Æ¸Ð,æU¥-¸¥~­bU/¢)‘·‘QX*#°J²-%¸W ‰bÉôÅÇýßý`âR„_ç1öþZ^…ÍLÇšÔìÆâ¬/–I¤êÉ”£Êi„8Åéo£_+´Ê©º’3bÌ¿V2¿.#ªþöËXõêoŸ#W%Ó¼LFy ó¿I2¨‰7Wú˜¿pâkëúÃZj˪m̵æú ÒÁ¦º›·±¶7¦â,¾ª·‹ôÃ×0ýLoŽð|®5Î[õ v“ ;Ç4§¯ofóìü|Nº˜ajuŸßÍ—ØýȾ^]”ÖÇ)aÊ…^ŒáÕVX9¡AFGô$Z:’qªêy>Ûof_sÌ€­ø4÷ÙX˜Ý`ã©þUŽ©íÛY¦oõ¾Ç[A¼¡æ´Í°—ÖGú#±^>¢ÊÓtVwXB5Ûárt.W´FþL=äÞX¿·`ߨµ+º¨rvs ôI`CVó»É˜ð5WÛ}æ>ÂÓ*˜l_ÍŸ¿j#]_û«Ì^UÆÓµ*ÍlêÆ4ƶfÜÑ ¬ë³hÍ F‰ŽF[úàõ€aÓX¡¬.µšƒÍm ÖmžÜ>Œs¯Â\)Ùîš+p½Ýkr f‘O‹œ ÚÛ=æ@d›ûÉ—¢=¸Þ~*~ͶÌ•‡Í`Ìi>P³&íAUùX@~ÕZÄ{ñ¾\ŒY#Œ_WüNó窚§Œ6¸óÁCÁ$Y&mü“n¿ÿÅÍÅ)–™æ“"»ý~ ü~¢_ãÆøÝf©¹ÅÍp#ün÷Ÿ©(·›ýî›àÎ@µùF›Lðvå U1›´µpê5h}ç.§»0à €Uš½3Hru©ßþÿÉ•¦~{sIAÿÖøÿ\àþ~÷‘/òüŒî…ÐYçý [š÷ƒ¥Ãgm7ê3h5‹cV€óZ«ÍjP:0³|"£èÝ©ˆ9¨‡~'0ïl0Þ2ž–Ó<)e›„‡òëI²ÐÏöMxƒFž _¿R ¨U¦çZÙI n>ÙK!FïAìµËÄâ¯ôïKÑÆK§•–cWºw %ú?}†ÊŒW/Á¼ÂfÜsñä'-yÏ™ÀØË’¬G°UýRcœ,ªŸÄH¯ìXŒªj"ñ7é1ý†Dú½ÕW’ãW)Ä«¨úhp²¼$ÆTd0;žXªù\â•zìJ¡užž¿8Z˜‰ê0çITŸ¡-F}#F"…q‡Áº’Ù©gå2N€X„Ó1~¥çÅ똗MRŽñí³¤“ùöbw©dºPŸAµIo1À‘ôùóÀZ™!äo×ã»Od&ψîR xÕ‡9']±ç”ÿÌ"S—¨¼Ñ¶´•ì“6ƒ1Ÿ]Ì6‡y‹¿Áº[>6j¿ÿ€óèɳ¬€f C¯ÙT£½½Í¼hˇú3û(øH³cÑ;è ÖÖ»)‚Ýò"¾W»Æ·÷ÏÑÛÿ"SÒ=j'˜"Ìó&XuÍ‚U¼ëcâB¹ösX&U»·Áê:AݶñX“GZ¯|4NßKØ=U±KYæföbo6Ɖ83ßžÍøôʬ¬õ.øÕ׿=u5#Ùäú<ÿн ŸXã†ØßdRhZw {e¸IWFc¾ ¤T-é­Ø¿§ñÏTœæ]0Î+¨âÐ@Ž›YÌÔŠ_Oa®_f¼hžq_ø­`¬{6Њ 9î7WÑõwOËæ17Û'G^ ZÚýfcä Šú†`ˆ÷ÚoC á7­V­X!‡Í0Øû•ñ4½y[Ê6•5ס—m™ï|£¡¶·ÖwÞÜxV¸fn×éÁ]î­àþ`*ÖBgÿ´;ì˜.Ëo¾¿ÿÙïöû¤±YíGù•ô_M^Mp#ý£î7S œù8øÕ! ß,œ MI;ïß…þVZ6ãÍÃÍÔLT=™ÎÀ±Û±¶[ã<©¼z Hs5Lk|¿×_u©¾‘¿ȪñW«}Ø×ütïÀ:îçcv> r)~žÕ(¦Û%.|ÂvUµAÞ>þŠ·V¦ uŒx ü7ï­ {ðzF¨:y3Ì›Zgð÷õ5îP4°À6 ¦}4^æøI¾*}ågä ðj)P-¬ÔI1õ_­]= ¦Á—ƒól7³îÔâޝ£õ¼ÒÉ™’$9–e3Å™u]’Ü,ñ¡ÑlÃÖ¢Ì`ĸf6ÁÈ”¢'¨,c¥²é½J£2[M&#>£šÇ)üL*¢û9Ÿ=L‹Ý&Ä2g4RµtÌßžG´Mä½a ²Æ4¶U³ igfÐB,Ëw®Š¿Ï m˜$%b>ÅÉæ¢Œ3 ë{ ¸Ê#d{ý‘¬1Q -þˆêõš¯~Ä Y‚÷ƒ-qf¥SaÆöKœøŠ'½d®é «PÛÖ^æ™]@/ÅŸu8/Þ5£ãqVÚe̲²ÌÁÒÈŒ¿ÒQykH«„%ÐNüɬ6ÍØÆÛ€Vuì!«>ó'¥ðª&ësýkÞ‚vÖè ë9fÿ‹á•5ÍCOزF³Cw˜mnh’Ñ1>¼fnÃXkLáøg¸Þ'c=ì•—À-ûb]ìƒEØÏ|ŒÙÌ…WÞ=dg—à„¾*ƒƒÅÌžfÞ„=ø6xWUØeÏã©Ç75½ï‹]›¿Š‘ºŠýT#6ˤ¤)v2kv u :auçËLª~*C:!Ý€§Ñš®28ü««ï.¹/5âÞø*þu«Å;Ý`ð«‘!­f|{lƱo‰ÅaÝ ü=…YK5,­s£ ºÕR)ÂWë Íao¥B[ò«nîAð«y’ëþqÜH÷’œ4o¸»|±Èé ¾ÝfvD¹¿`/50Ûd“ý xuÞv@È“f&ΚŒc-™Šïf€_wŒÆ{ì^¥ø&~ F$~u«ÿér×#îƼ»_Ìÿ8tÔEüràU¡jч߱ªßTë§7æ·’ªÐ²–Çt¬öÚØGªžZÜŒ¤}”‹ó¡ž´c¬Q]0€¦8MRˆWål×ð ê¤L”á°<›2á=9þx•Ìj[]©þÕ¿jŽQ+)Q=à8q2ɘrð¼'XQ"‘ÖTb@6# JÒk–DË1'fUi[Óq•BM†TæÕ(¿êB·Z{ùT’Ï–¨’VMjëÅ‘¿•¦-X‚^¦TÆ^EkÿÅ1 1ž¾÷8‰ªÊD¨áLj‡b´ËÓ4÷¹¹j ó©õ©±^žh—/Ñz^N’ÏJ-¬hY4çY¯"ñ+§ÆÔ=ıÕ:ת,­ûü¸G;Þ¬ÀZüû!žy1í`O•7Нó¥ùöRù’V NÖPÖ˜½¦-äBð+­ï¬˜3+ýŠDëv^ Æ'TáâVvp8Þ3þk¶™üz«mm›Çê¾ Ûó›ËZ0ßù3êò]“ÃölHå‡åé¿*C=äUæ¼- ¥møÞ{½YÂì÷²Õ'^>æjPç XWæ£ÒÛ\Êä‚+ç·SV7Ý Ë¯.ìÁXçÌk¶´=G™?ÀU– åùà1Ó¥+íjÍÌSö[Ñ*¥…À«[T9Ú<ˆ÷5bŒ¥æ¦þFUôj±"×éf¿5Ç©ÍÖ?ü¥«áÞs_`n À¯êú7ì| ÏR7üjBh>õöÅ(Þ¢«Ÿ÷yŒ£j‡í&¼ <Ÿlö¨üª»Öf3³©dÚ¸;ï>Šý[‹•b·…_»g€Ws¤xUÖ qÏÈG°ïñ§ü¹ µÝkNDž^•õµÌN¹Û^e„ÏÙÖxêv9d†šþTõT%™ÕXÝ£0Cð»nDêmÔHnKÀ¦Àχ±n4â KÆÂ<ÜŒdüÕSî!ÿ•[‚Y,éë¯ù‡€WøÕ§»üj•YꦯvºpB®5‡Ý¥àq l¼kŒ)eobF‰VO[€ÞµÅˆ,Fÿ'2Š®;ÖòzØùª'S «n[rULK¬ßƒÀÈTŒîm—ÿò:»aÖðü<Œéû¡.€=¨šwH9؃íˆ&mq2ýˆçé-è"|^ùUcìºé@¨L3šÈRžjÑÚÁu1÷­±/”#-’j¶ìAÝýceøU#z¾ÏÊæðÑðú”j‚Ì ±Ç“ê2ƒ:ž¾îV°CRb:{}°¦Ë0#0‹~ïT¾K¦­– ÑÚ€9´Õ·SD¿w?[ íÌbÔ~׉q Œ-¢÷;¼¨cÊŠ3’¯šÆ~ª•IÃüµc.õ8œÒ¯Ò‹Ò¼b 0Kï¥:cí«ÚU=üÅ Þ5¬GËT_tìÁ^î‘ 2æ#ÏýèŠÜ(ð«wÌÓn’ÿÛ €_í‹,q¿ûB_×<$[ìÅP±ðIXEm°™iF«ÐhEÄ›ÑšŠ˜ÛóƒšhÞX܇ž—A;'5ÃïE¬›9ÍÒ2xu.ØŒ`=zÍw¾âfË?ò/lÀïýf¿GJ›µ~¼¿•x5×,vãÝ¿Õý~µÃuׂgEõ¡`_Zs«¼6žÞŠÕç±¶Y%ÚRãpªi}œ©ÔÝ„]yÆ3lÅ;S}=ð«vâ|–¿ËÿãêcîsŸûrþ:?cûC謋^é·^òÂGmKììZT‡ÿŽÞÉ ÀƶôÊUÅ›†mÆÅr[ŠpªôànÓx†¶e$ˤºA ~5Å7ÄžÓüÁuáÇÂs‰!ѯ¹Oõ0UÆé3¶’ª|öæg0– óü$=õ)d?eùUyP)îêÖ,ˆéõ•e”U<#13©‡œEµö’¬†™‹¥Ï †§ ¨ú÷­¾šÅýó–e‘ËÅ9£«)Ô\WŠ_•¡^ŸÆ¨gÐU‚úWZÛ 2Ù§zæê‘…9F3•åm£gÎ`9FEX÷0^JÄ⢹ŠI¼!‚Õ·Ožcoò±Ê¦°Fj Œ÷8ûÛó3qvÿ tWÜx•zÈÙFÇv:0ç{ù’÷}e¾éˆ=G{pÙb:òw€_}†«ã¯öàW8õ$˜ 6ÓÓô¢çî-ˆÇ~Ò¾÷—ïÌSŸˆ=ö±ÕìnÆ·’Öæ`‘F—übÞÆ ~š±ë_ËëöG)´¥Ôgj†ÖÙdÚ€[Í9›šjtÄ/b56ªŸÐ«UcDGa•e¼ã›è½VNxüªŸ9Ï*ñ™¦À=e'›Šá`„Ía6Å6glcû¾Q­ŸW«€¢…xæLüÛxT’wç_£³ðì°lÖI’‰3¥4pæ¨õúæ`wh…ƒFxJûp²»}`øWÕqc³MžÏ÷¯ÙEØõ›ÝpÈ~!Í)þŠ;fhì0ªŒ*w»^>ÁÜŒa4æ;÷rÔƒ…< {7±–•ˆ_£=¨ª»»Âǃaî9àÕ2)ë”× u/È{æ[ã/øãA»Óìlt?û2¾¹Ù/kì§¡’á3¶9#`7SŒÚCð´¹À«œs›ÐRµ~4Óè><5m¬yª .ñl~Õ“É” Ázð«mÁh<¥£üêŠ[(ÆÄG†‚_í%¿ÚèÇùÅ®ìÁ•àW7‚_írÈq»yÉýÁË¢7#Ly;3—†Ù,¤ßª-{ ³¿uæú -w€ÙµÀ:U»í@êÊ€_u¿úxÕįÃh ú·Áÿæê`66ƒ_Uó½½Þ¾~úüj¥UÞ±\ ÂÀ,…¹k޹üŽš9åµ2ï­6LÁ¸ÿdT‹LóË[àï”{舴Äè¨å3x5<<Š;ïz™égúzÌ‹;.+¯†çÑ⪉Sq2}鉬¡{3sÓ1ªý±VÓ¨ÏR„Þ?Èl¼hÖ`A ¯2xÓ”ÊdåÒ´¥òÐÞL2½³«Á½•ËÜ™.ÔIeìDiÆZES rJì./‹È•FLÊd¾L:¹V‘&X!¾Dq&‡•v¢µVscÔ_©ç61–óXOJÓÇ^,¦æÕûÁ²Ä«HLÂÑvNen"½d=å¹_¡—®€‘Imió6Ç^xg‡ú¯n^]ÿŠ]o1^´¼Q?ùia~Æo4Gæ:™nzbJÐÖÛc¶30+¦­yÖtçûgàÜÿLfHT«¡Ÿ`:Ó"?еÕ{.‰1ÿàTmF¿á2{½­id¬Âén¾·9Fc·þ0'´r }YWd‰ý]ªXjà›ª¡lï.ï5OÙ¼ÐX£§ÅY¬ÖÁÀŽ,U‚ý«ú€˜£°;x9Á>0­žæ$¾ª ÞTsÙiÀ«Zr§|!£‚eŒÜb¾²)ö=£5'Áœ}Xˆ1Ïë¾ u³F­¸YWâÍbàNšsÃ._ƒÕ­?˜ƒO6 Öy#0ögàU&F­3ïßuŸÝʘŠ>Ï¿n —»ö/™Ï~£íBve}Ð-¢5>š¡•ÐËW°/ºÐúXŽÝÒK1ÑÜ€–¨Þå&`X´ùþ¨…Ü>LtÀΊî/WÅ ^}n^v‹}8r:èl7˜§"\|$ß·4{e:ðêßл¶#Ož^ e-úÊèëR꼂Qh(ýéûØ€ÓGo°ÕÏß\öY9ÆŠ¥¥W°Ý}lÆãܺÎ?ÍûÁù2ÿúÁ¾xäqÿ Fm…ŸæW¹þ~s›¹öàXð«Uý«ãîËài¼?Wµ‰L ðJ«³Žá¥ú&«àÿMð½ÞQªÎèFò«ŒÑÚ— ¼ê*;ðÎ4ßίE_þsyþ^Æ_Õ–GÝ'¾‚ïæáYBç]1ÞZŠþ+Íw.EÿU/ÌoeÚƒ ©Ý4†W±Æ3KEó´ˆ­ÜЛ(Šó%Ûv ¦¥KÆÏð¹kOÈáSá™\óuÀ¯¦Ò6Ó8PÍsÊ$æ”GžaÌ‚ú¦zË~¼'“7gÉdHIä-Š[Ÿï4R³ Ù–æî•£+‘1žõéÛÊ"Âu¢ÝG+6™…Ź›ëcd1ò´¤D믦2 *'vc­CQÄÿ§¯¢Ù8žª¦åõ½—¡‡Hµ°¢IÕþ«Ã¡hþ`>]Š9€)ŒgÈ Ž¥’Y§_H?UŽw Ø w€l¡u[«ê}Œ³ÚtÍp2þ„QWt\ˆµøµœâgßÁü¬‘ªÔÆ9dvÊG§r3Nà ±Xˆ­æ= ŸŽÏ$édR`;è;oÄ*Ž˜eŒÄ킟§_é Á“@» ÀMå®]媹մ"º¯±K¹ËêÝéœ; ¡Jô±ÇÙW¬cŒbüÇ8³²Cƒ¬Ú›¿JÓPn¨ýZ7™7l­P#êe]PkÀœ’RÌæÞ›T3ZòpÒl—rjzáÄê»L+97ÍÜjà•ÚúȧÒ"PVöâ¿ö¤Ü;´ vØèÛwôÁN$ÞÞÏÓq¸\’ûf´U“°Y"%Lžy =oŒ.ÀªëÂûºEà“ÏЈ×xus?XZ¯êºwÜWx^S gý×v!ìŒEîV[ÉL i}èo0×Ýííˆv·±ž±"X9 Œ‹çkˆUr7P¸ 0A=ûªY~>Õó¸íRÜ5á7ƒîêõ¸°¯âz¸óà¶Ï¹µþg&h~µ3ò‚k)é+›Ge&ðê¿ÐKVŸ5K^ D›5 r>0©«úT—Ù?Õq¶­ÁJUíÀï±°È_’÷U¬vŸw“sýýsî)`Ç<ÌÜ~º¿ìõ»¤Ð,ôׯú¯F¯Ã2Üá®™62ÛìÇg_w›Ñg"Vã¿îUiÐ;½ÔÊh.Yíê÷nÀi¤xY•õ#®'dsÙè¿wÙ¾ðªóoõ9[;ä¾òEÀ±Ùøúxè=wÍm¦ò­R<ü®mÍûš®ªŠc4¾½Æ´f]UãÓ‰µ¥ÀŒ!§ÐÜáþÒ“¶U V0Ç{±%’¼Bn2U&Ân€¿ŽÖw¾žEQ6Ë\ªÿ*F5¹šMßP!fùoÿ5^´/Æ3÷ÿ²÷Ê2B(‘ûªxŒue³òC"½MÁelxrmªË$3ö  f«4¡c«Jsÿª­¾Sä+c:‰Ä·L²°’Ä–Œ9WRµ¯J³õqäMYôÀ§Ç?8ã쪵åWix~iÆ}Åñÿê¿*F äBƧFõEbhUœ7Ÿ­ÌÚvÐZy"6&»°þ;Ó¿U[~¯©ÏPóõ«¤™é«Wð-ø.üvöbM£hÚ]î172°fq±)mš—GÉHSÇNæûoÆg‹Ì â[YjZ›Ȧڃ·ŽÁ*Ô‘i'_cZÓßµÉV²š6‹9 m •0ª¯ÅA›¾âe‚©jkÒ¬z ?’š¡gCC˜Ûø yÉÎU£îÍ'@Ü»Í|5{è I5CdchvË^œTƒ°¢¶bL5gXñ3dJ_Í6šo²8°7è/Zǯµ© ޸ߨÿúCX¨ãåÆ^\‡}_>VÏëK|ªx]ÌìBãÍ=©¦Ø;z¯®8U‰õuëÂÊ.BßÁs`_…¿v5ÝGî‚Î³ÉÆYÿ¶DÝË:öm™ÆxÑÞX¹ËqÊw¢BœÖº¨ö4¸ú-vfO æ Ê$´¤žØ©xGc*e½žÁ_V£GôÖð[Á ·+(ÜÈq¿ƒ_ v¯Ë!ó†ûÆÏœ êÚefiäyŽTðÕp­³'C)á‹¶#Þ¼T7îçì¤ÿêì‡.Øg}ÐÖaX9µþ‹ð³^Ø÷¢ãäq¬²Ù¢ÞšéÁCî`c0ˆÖß?é…m6'„Dºøïü¿EÊ™å~¼¿Çò{Ìj³–ñ¢¯êÈ6sÑ] ^ÄJ¤j1¦"ðJsÇÇc.g³þ` F¦©þ•âÄp´ï>ôzþjŠl J» Fu]ïö¸2¾³ß€Q_ݯõa¯ Æ{ÜeæÞ <8zÇ%ûeVÕ2×J¥ð«Õ}:bþ€_©ÿª1ÞÕçA ê!¯ÀŒ3c‰y÷Ûû½Q|4÷Âin;†‡Ñß>^®÷s|mÚToÊSáƒÀ« ¼¡‚ô5Z7ªÕ }ÉáÞÉDŸà÷iŒðZ™Ï¦Iýà¥LlJñ¨j –"÷(I•ﱪÆÄ¥$F.h¬k6Q-ž§|ú®U…+/U•‹êJäm@iæ;f’‘Å3':š¥ãYMPß•«~á©m•Ï8ϬçÕŠŠó)äo•‰kÅɯRè‘+N»/ŸÌO?U°‰0;'…ÑÊ?5°SÀ¼¦Ñ†Ë(dÅÓ`Zï1æ­8vÚƒR™ùÎqØ_å€T1:Rs!'$ר¿í:¬¦>@-í[0÷=`ÞÚ÷8íM_ýpì®ÊÀ«¨žÌ6Óþ«4¬åžXS+ÙòŽ8»ëâ,ÕûÜÖÛ†v§ÕÛc2Ü|`ê8ÿi¶£—ŒzÍH°¨òVíîïePhs¨ŸQŽz›)Z*G­†“X)ûÌ#ǰªÏÊŸ¬4­9ü;€Ðj­UÀº~Q&˜·¨½ýŸÔrwÙF£x¶b:ÃxCÝÓ„€WÐß:@ów€™Ÿ£Zšã;­ç¦ù8_cW†ý…Ó÷oüó´Ü„1ÙŒóµ*ƩֳFV­hw\êÙ=u;Yê†ÿvuÜÛîC]/¦ öÎËv>Îí.Ûþ&ƒa6”ËøÝ  gW²³ ÀÊŽà[Á¯>Éxß¡8í'‚4ƒÝ6‹úË€ Oa'¿Ö¬ú¢åaž»Aœô9îGàä`wXž0/¸Çý¸È+A»ÇlŒ,tç|U_ß<«ûR¨(|VQ'´þ!Óˆþ«•xÒR ±Þáô©O½çjX/«ˆÍu1®Z'öay¸ÖIëØ»Ý±àö`Æ«—ÅðWÝBŒØï~²¿ä¿ðaîñóü:Æ_-5·¹ñn´ßãĶÀ™ólÉ'e1Úæ®ø\ßÓϳ> qÿ¸å6½¼K2Ão çZ3¡ÖŽ7Õéç\ <žƒÿ×ÅzÓý(¤ÖW%ÖÝ¸Ž˜PóWŸú I˜µòÀ«ôX‘ñ~®oÁ¹÷äáðéð ò¥°#ôޤã@{a§Ó+•Q~%v'˜‡·>ÁHð¨¢^¦Dk&0Zª8m¢²±jð‰Œ[(¤ÊT:ïéš`~èßÒ|Œ"Ö›H!W*EìRvV‡: %øæ¨‚q<ùS.s´E©ôŽGë\¨mY…ï-Æœ·|âU„ª¨ecy5¹À†òü”b`3ÑqÕȆ¨—-—w‚YT±IŽ)¶ÿ/R½éeXãQ÷u ÌéC8Aó©ŠÑŠoÖè·÷0ÖúÉÕØUuÌ›ô/½sk¬e¢ ¤+É䮽äV3Žºdê!‚½ ÷°Ã],A-Ýñ8-ЍC•žó€dz“O>“j:ž–F…Í\S¼öN;ȶ°Q{áˆúíWÊ"}ûášQ}1o†~Å:Ð̃k2"´,ÔÄ(§½Ïü~Õ˜õUÏbem†åšŒUܽúX2£Tüêy mI²¼ ÓÍÛ˜ƒòàWåÝ;ݨßt›V´úJG¹Áœ3b?…=XgìÛ@%í^õ½s ñ}—€e·090wÂöügá\ŒóRô°ú§x5_Ud¶é›RÙ^3ïâ­X×áË®†;î.kµ]S{ðM«ûa…g¯¯4Jþ;´cʸ«öØýñÄFèÇ(ôòSìÔnà_ÃŒ“0 ä{¬}ÒzOà3GÁk ÕdìÁ~îþ ºÞ”º+.Íõq¯â¬8ì–øÅ‘Ã°·˜Y‘ î„*B™'eš½¼:gÛ°ŠäAÓØtc$eU¬ŽUô¼×ÇyUûYëïìŒÙ¾õð¾Õ@Îgå0ΊîÀÍ‘Árw:ØŒGìèw÷ùoÝ\0à ÒÓ_õŸùMÒÄÜÛp¥ëæ÷š%fž›î&ø»Ýï`µ÷¢uWƒCxöTÍÈ1yvF|%ðª:0© ÆCÕ‘ÚQ'_Y윛Y >+lgà]KàUKÙÎz©üjÌã.Õ/õߘüê3ô¶­ŸŽg|zÛýëVØòèÇm’~ÎvÆ^Uï׬øJšO¬šÌø·TœHõä_¼YoèÔGßœõèKàLT¯Þ4îöÒÑöe.ï؃Ó|}柑{Ã…çóf¯’t3scjye¨‘ZHTPìzœVW*ã÷žalS Þêp¥ ¢ÕšXѵRLŸ!‹~ì¨Nh´;3¦mU k¤,³g”i´T}Fé\éÜ¿©Œ˜ŠªÌh¬B¹Xl{*Û”BŽÚ‡E¼Œç r¦hÖ_Yr°Dê3h¦| µýÒóé¬s‘À<Â$Þ’Fë¨fP_´ùS½`ÅÈ¿j²çj»mþÜÏTÂÊg)¯k„P~¥¾¯õøJ½0б§°úî¿ÒqZ%=Ìg8UÔï%;ÌÍ´Ù=ΓMæiÓ•X×[æ™\;ˆlu$vR®™ILn†¿é̺¨‰ØI a3ÜÅö^Ýn¦?Ʊõí6™9VÃÌ ›Ê8 g_•uò7kŠ7ɡߤŠU>ö§t µ0}¶Ê\¶Ó]ÊßÂ[m¶ éx혆‘¯ f¹CC ±Þ’¡æEÌSdš4·ÇÞ`Š0Æ»$Ù¤ƒ 4žÜhòm5û=ž_kóuà ©_ÙϽw/Ýåß]rm]?÷¸üDàoŒ¼4²˜e‘¡îª¯ä›­2ÕþÊŸµM°2WËæ…釧¨Âõgâ¼™ìlÆ(ÕŠƒ•x¯¾qpz4΄çñž®XɃ‚uîýís¥¹?äöWÜMò®ØÈ8ÿ?íï— ²xµÐõò÷™f¹› ~µÍ[szÔý<ˆÑ©¹¨˜xÿ&Q¯ûô¶1N€ÅÔƒÐф^© êÞ Ï˜æσþ;àUKð«Vò§Ëô·û]3œ/Û܇¾À÷ö7áY—Bï»_Ýz[€Þ¬…¥þ¾íDNÕAü›5oë¡gõ±²šÒœŒÙÔÚšIÌ-®€§µ§mÖ'˜*2ëÚ^"mìÐðpâÉ$á—û¦Ì39+7„ O§uUMºcÕ¦I£ÆÒÓ­q¡p¢¦»JÑUеS?š‹8Of´–þ}6m·túÅ£Uu’ÉW²ÑõeÇØA5¢^5“3W¯ñð5±zSéeOg4| ‰jœªFMY[&­´Ä˜ï½ýRQ¿zÖE}PQÿ•z©~¦u9¸cñoæþ¨*‡–gnìN°ˆ÷˜ÅߞʻÁ8Z{9±ûÊ$Ìäjð«ÍÄ“<¬¹¡èÓË9Íu!ϹU^’²°•Nówà,UT\ 3Œ˜bFãl{Ê3FÐêÔxÑ'Í`rº±àZ›žœ»Ñ˜·d3U¢õ&î"^)ß| ïé ¶¢ãÒWŽšL'ræ]¶/ìÁÇ©½pÖØ·Vëˆ%‚_Ź`ÔÆýGÊ„âM-ûÿzº𪊭»gî=3ôZBh¡w½é=´€ôH”¦€4EEEEP¬O±7l`ÁŠ¢"ˆý×^÷¾ÿãÓ$·œs¦­Y{ÏÞkkÆ›ö¡¡vÔL¾Óüe'†š²^á«X=s̽‘FTLØPL›~öý#ø«lÜã`â'©nmL÷ˆ-6µw˪£ÜG¦˜æ6ß~l´>ÛuôÏfXzU€sð^wÙDÆ6T>Ç|^„ñ®'.yNbÍa\§)föRê½)^iþ`mð¢ÆòŽt·Z?Cû¾Sø’«äÞqß¡²€W5ü×À«RìºXoæ…†âó_3ßdõó€—ãUBÇɾÀþ®1O…XI…Ô4mŽÞnÂüÛµh±Fn¥¿½’,¿»ÃAãE/¹žnœ{Q>5O¸"?7æmàÕ SS„œë™Çe¹½ªþÞvÂ\['ïšž¦f—Ö©^ ü¨ ~÷í¿Á¬Ç³ÖK.•ì4Êa*úø8ëÑçÈ`£{?x Кc-üwмúERb¦ùkþŒß%eÌf¿Öoq#ü#f ðj)TãEµîËî«à(z7ûÚ“eÇâ.]€ÍÕ—Í™½[Œþ™Åxƒ©À­À«®à^uñþcAŽ«fÚa¦©?Û·÷kЇW{ðªë„Ùí.û,êÉäÉw¡Ï\Øo³ªqp·T¿D¼ÊÁ €qÕœÌJÌš‡±ÕóÁÉ<3O~•ËJ§Èg´RN+™AÛd¡4´ã`jÄú™íûVTGøHæ_Í#"ä±}}ÚhÊÝ'Fu¨J¯"1HéXIàþ‘ê8¥‰ÉlIŒ²’ŒóÈdÜx æ¾D¼T±ø]«cdг•Æøötz²ó¨¶žIŸO&U/’£¶a¤Ú`ÙVñ*R“+‰¾)ÍÏ-ÃhÕØè9b«ÝëÙŸ^/#ê‡*’ISýQ©BšūҴKë³»å%R§¤Dô"Ò1ž)¼RÖòýh}$«g+Bé§Z`Oü ££í]('€Ïóa¼J]£O9U†™‹røÚUŽ˜NæØQî3M÷‚Õ2Δ´#M{;®6«iO•-æÓ—ç/Úï([ø|}åk³ÏtfËVØ ¶‘Ýou9 ~õ-ÏÚÍÂn[$g©Éü§T y“kµ-פi¨y¨3sœ™sv°K#ÔÎcM-7{s×sväY¬¡²Kž‘¨«¾+ª7ðJë5—7-ݳv,øU]`Rº©ÌÅ(w‘ifìÓWM6fá÷@îà Yè/Õí«! «·P>Á¼O¨'k10¿¤ykSù×*€×g]|ÖfÈ–²±ö3Ö( ÿâjº3î2kLWòuýi»X+Y¸û‹L Â8ŸÃ~®ñWݨžò0îÒO¹óúü‡5;ˆñ¢#q½|;—Ux¢ïŸÆßïã™5±ªl ?Ìrû‚jî.¸>n¨{^ž6/¸|ß*æÍ 1ìÁÅ1…î7_‡þ«…öJȇ/ØŽèÃuò¢i‹=¥®ZvÝ*\o˜4€=ØÏ£Ú›Á&UQ²+jĬy=Þë}fp›û,¸7¡š8þàÕWn zªDÌÁ¿èï•Nf˜Çz×ß2‹Ì-n‰ ôúÓ4ÂŒ9âÎÇé=.SM-{#yNËÐ7Ú§sñÿ¹Œz}l‡.ZÁcôpPÏ•1ù˜iÏ­໯ZÈu—æùëNë×îw_ûJ~¨_‚^¼:ëBþ.[m»]ê…_µm°ªÚ£ % ;Y5šË*ÖH. œ„½hÆq×Ïaën<ɯo4¾èÊ^#­ì¤pc¾'ËB¿Ä·Ã“Ç¡o¦…—„‹MYKº›iŒ.W|hŽ^Ê`¤‚žMž•H­çlìKÏ’]Eê/gJ¤²iDQ¡$ý9IÇÔDÆ1—¡ÿ'‰>ÖrŒ*W?RúåU +‹è–Îõ$ôK-úÙ㢺©dr©Ô„OŽê/GÎ#ÚŸ%ÉÆâÓ•ÅsĘ(¿ÊˆæéTÆl¨$meÕáM§‡>‘WL¢Z‚-Óˆø@ÂDŸ¨–WVO+I.Ùkvì¢H\î=Ø«Ú1.W«©•^<—œ‡ Ù¼ÈÓçÁÀöH#æÏ—¶æª\füGw¹5€ØNÖ› ¦[5O¦“·+ºOŬ‰5ó‰£%dš00 ¶Ø|sÏFÊÏf?lI=¯\ewÙvöÕ]â 7A(Ãè^ó¯ùYn“3ô«'˜¬P¼Gµþ‘Ê¡ë¶5sœ÷šíÀPcj8|Œ']nŽ 9à7߂ӌÇ\«”Ù.ɬ5õÚ‘!°y»¬©ïØ1¦*Pg«xógxxC7cî²íG¦šVR3oa5”¦5ÇÜÓ“†ÍÔB› t k¸!îwìîq@ôûðn<ÃÍXË7PpÖyµ§_“>ö/؃հdž/¸Šî´;…'Ê¿Êðçí,­Ší2ì™Ï|ço0—ciK5‚ÍÔCnˆù[ ´º„•Ú‹Úç¿ 1ÃGõúZMÛ` ½ dkHÅ¥àWcÜ@ã*Âòéìnt¯ÈUó¶ëéÆœ jÙçÌþ˜àW5|c în{-”¾jÛb®í”£¦ö”ôIì+ñô}ÀRŸ¡^;ˆuœCUþÍh×lÌš“ÌÌéÀ«ÏƒƒÁd|kÞ=é/»ixò ¦Èíßó;Ñc[ýL¿ ¬êa³ÊÌwË`nubk¯Nºƒ·Ñ0f™<;šõÆc¾Ï‘æ<©Ó¼œÜ‹†àÎÛ€Wm¨u“<$¸¦#v–‡üE؃-üíx¾¿`Þ᯹¦‹}À« ~ ×ùs¡wWûmyê‹V¿f;0¾½=vÔ¿ÑÇ5°¶nF_. öq:릘ˆÿJu:ºàþê;ªYÖ£¡kyìÁY˜K嘳Æ/ðõéëyMF‡2žAµ”™b*íÅÑ¿?7ª­—Š}é4OÕ›3†Ì¾ñ$1çeˆ¥É•"ÚŸjɦ1ç%q›Iä3å©SÖV&Ú\ƒQ¥¨‹T–lO#†ò[õËÇ“áÅóýJD®јóDúóKÓשQšŒ))êKgÜ—ò« <Íh ªÖ—ÊŒžjUWÕMöÌñÉalXÄ÷žÈÌœƬV¤¶C =Ð[ä!¬+mie0û±+½o>ìóŒmˆÁù”ÄÀTFv÷ Ô7jE¯“Áæ+ùƒXØ[î5#0“Ëmæ?ÌwŽÇn_lRí ¶k«<ýíɪb:ÂÔøÙƒTè\Ê^é‡5ó éÀ¸´§í,Ûö öÍKÒÕ”€åGõUû>fûu£Õ›p(0 SêMÝPyp*ù½Ù|kG…ÚR»ï%ØG›ÌAôE;ÌæcXÅ7²f¹Æ[ЊðÃûåE0ñãŒOñ&Óí²£€E•åW%LÃì¦Xh«³¾sVÕW°ΰþä|¬DÅ«VÿxµŠñ?!³s;l¦Õ°k¦õÛ³€/Z%¾¾ýšØ¿Íi|·fíO°Oì'y&ÓWfüÕ@Yîrí2#t#0ðªfð3»WëÐïÁ·4ïyðê{ê¶ÅZž„U4 ½ÝTÞ4³¨ûÜOtøõ!tm̈Z²>ürP~U8SÓý⺻Bwüêw·/ˆ9Ô±[ÍÞ˜yî{_Õ·Ö?d?U_¶Z³m—­Ù¾Èyv÷¬èŠrs°Ç}ì†=¸VzùÃî^ÿðê{‰‹é?ó§ý=ØïôÓý7Ôï3ëÌ,7×òwƒ_Õ’ƒÄ«#¸Ò@Üg¬©iÇáþEŒoŸMEźŒÀz©ƒñs vâ˜]õðú– Œ«Ž™ÕUvúŸ]²oì×c¦þåJû[WmñýƒîG_Ý÷õ‹€ï?‡>v%ü«§lë$-|”ñ¢-1ÃG`ªÏ< Eh¯¶JÏ®f€K&™yºŸÃ*®Ý¹ÆµNF¼h”äbin‹aj.Æ8¹ÑúºŒBz[n Ÿ ϧ_·&æù<ôàÿ4d¦S3Aãž:cFjC([|œº )ôöDê¼§2_0’]œÄÓÁʬŠO”‰T£POê U`>¯Få0¯ #5£98¥±:ëF#Ú“ÉÑbi¥÷’©¨Ê˜¨–eLUB¯"6£²¼LÖʉð¤LŒCUZ¯êçoB?—¾“Á˜ÖHm¯DzÿSèûJ _ŒÔ£O¤’@ŸXëPí—'‰ª¹À«IÄœ½çä"cHT'/öŽwÈÙ^¤¢pMž»Í’Åæ<“bÅ ˜Mƒ$RÓ¹•Üe¶Q³]Çq†)a§rìŠÑÏbÖ‡Éj؃´ŒõäJóóûÉeó¨iÏ^_oûÚö}SOJKÓ da‹Ýí[`0ÿ’ã]ú[r­ÚпIËPÉPK£6òcæ+[êËÜçóøôR³ŸÑ{m€O‡±ßÍ¡Wq‡<¿óÜýX·Oñä)ã6Ø™¦­°ÙÌ@w’ñf€­cß0xýð¨õ`åÙ˜ó3°~º³žWSÌÃo$0XIú:^+kâÌc¸kc0œ©¸ÿ ŒSEV”Q=õ(u±!û.fÔ|)^Uv¸Ár€Wyþ#;O·Äµ¿* Â÷ÏãIº¢¯TÇ©p`(æt}|f ìÐqõ*U= úÛa7¢oø.Ì—ÎàW;©í˜&kÂïcÁ¯ªjf²ûÕuscÜå7ó´Û濌9äÛç͆˜uÀ«4_ß<.›ì¡_B¿X­Ò{»¼c™^¸S/´b™ú£±Š'Sak0ÏáUUôÊ—Mx²™Ô“)bÛ§w¸‚#ÁXGíý1w\gž|'‰1}Vùû$Ñ,÷Óü]nßmVšnŠ›ìïqÁ»Ï¼ ¼zmê…vO4õí´¬x•{´ e<›Õ”á)Æ£öh°»1þ`ÍüÁdÿÅÅùö~Æåš« ~õ—Ëdzïu_ù*¾Àß„™q1ô¶û×mµº²WH؃]è™éƒIñJ³ªŠqÝ"ª>ÇcôšaoËY‰Ñ= ”‡±l‰'Ðu±PòìHÖ›HÀ3.ð³™/oÈŒðŽðM\¯ 壾 ]§9À¢hý˜t ôËŒ~Ò3µÉò¹K^*Ћ¨3$»ÔÌŠÆ®'AÊ3ò)–ó5RA'‰QHÕ£öf bÑÿ"ÖõÔ)â+K„,I¬Hæi^2ñ+ž(’$)Ñ3¿tú™"ù5Ž©b‘Ff©xÕOŸÂÓÆR©¬hÄVO2xN—Dæ—Nmäˆm›@ÌIeN íµ˜Á{€G¥]º£Ü…}ÕLŽcý÷àiÃJ؃©æ=zûTÝî ìAÍ£™*æGQ­Vój3Dѧ×Yî6›MO¶²X ͯ¦è¼ýü/¢4ãH7š|؃𓤬ªsšD{ªÝ‚½[{d­]nkÙG˜?ø Тd(֤㾿™0‡’­¶þwùÜ^“L›B¼*J µ 6×cæ” ~¥V÷wXßsŒÖÔè\yÈ4ëª:þmG[ް"Óðj!øUYúÒ³Üf;Îh†æíRÎ, æ‹j¸Í6·ÛÖö¸ÑY¿Z ¬S½¾iTZÑÑL±÷ñýÌþ+¹„³ ˜Ð ¬æáÆL¯,x~¨ù#¯¯þ¿ª†Ïw_vÜKîS­h*¯Þ°ªó»Äý`®€_-Á¨üÄrUèŠk¨ò`{ü\•ò™¼  ^u#~Žôé93…ZMù@¶Wñ÷{hg3HV€_b}ç©À«S®¹í–Íæ9—ç÷ļÔ·óÍʘÞî _xõ ló÷W§m>î«õ¼F­wk²®ÁÓï“æMÅc­þ8z\ùU{ôðNìGÁ ´êK¦ Ö¸ÓÁþ ßkẗýÇÀ«¯¥DÌpÕ?çï•6f±ï×Òµ„ñ 3ü&÷· šãîgæ;O„U6ÖT…=˜;h¼¨žª&Õ\¬…±hc>v‘ÁàÏÛYB}MÛ‚².Ý´Åóïðß‚_5ñZø’+ãWú^=6»Ü'°~;ù¸ÞÅÐ)ö«mkÜá6àÕC¶™cwê_UgDêMhŸf@é9ýôû/Ø­”ýd3¸yN<©žè|^ ùvbx4×ÿhìÇùêø OûuUO¢¾h©h>N¹(–$ÁJDã´ÒkbˆZ¨•£y5ª/šÈ ”šØ›ï¤ðä/'z §© z¸,±« ócÉ1"ÙÏ©Q-E‹4™Ù=ŽQøqÿŸƒSš¶¡ªÔT Öéù`úÛùtªÔ‘ÍœÁ ªHäðÉÌÄ/ÃZåȰ"µ 5ò¾j”9'@O¨¦qE؃Ñ/Z'ûñoXsê¯[6Ÿc^'Nþ+b“43‰¬à¸ÄĘ £~­^ò$¬»A<©è î´Ët#C\ SÍsÏ-f¡Ÿÿa¶x)¾µ^©éƼ?°CzücÖÂÖPoÛm¶•Í^i–å3@“¡dÆ‹Š}H`¬2Ä‹ò'l¥«1-%L•ÐÛ’5¿î7ÚžôeÅËYð› Xse0-Ñ‚ƒØÝŠ©uqßê‡Þ܃UØÅ¼BOj²©êö¯ªó|0Þ ´¾M'éož±ýì[Fë{\Æ[n–‹ù;5—W Wõ´íSت/ªŸ™'Ƅ͌9X&3ªçƒ+°vó˜ÅüJÏ;+£_z„uYÀ«Oð|™¦‚¯ä߇=X +]±}Oæ… ñÝop…®°>n þÙ~ôWG\[k¾_¤n|?<ÃDÆ<õgLÊXÚgÍS±¢NaíÕáλ3üIp£{,¨‚ke»\WàÂa¹jŽ:S‡çƒ'Ìž˜%îK f=s@æÛOC‡¾°qÕ5ò¼‰±«>ј½;›¹wÔåsá¯j¬çµsh–<›„¾¯*Â=îóྠÏØÎ¿âž÷—ÝtX¹1À«ßýëþ?RöàX¿»ú ‹ÜbWärÿ˜ª²ÆrWƒ#˜±í°¯M2uíÜY«˜ÔÀxª¢±ò¬l³ú¯&¢µ;ÐǪ–±XöU\*ðª·<{0Ãwð«ñ„Ö£¿â4óq¯ûÌWó#À»€_½ëÄo°UXù/'|Üj>IMÌóàWu1±_)i¬J¬‘vy­ƒS•úÓmÑîXžö§=¨ØU,uÀ¯†c¦Ëh r[V¹9%SÂKÃóˤüj:OïbñžjI—¥©VÕcÔ­Ò8‡áØw*’”âß‘Ê7e$RCFI³³S¢5ªÍây׎~¥túé;P×9RÛ"‹µ"bÉÃê2b5žWK%ÂÄÒ’«Èµ›ÂÕ™ÕTObkž,j¬BD¿=–u畵•` ƒž­æò»šQ”¿³‰‡å˜¿S•z})ŒIc}œRQ¾æ™õ•%b¶o—‡a×DjpÜ&£x>˜>.—0:ÊÞ6`ÌÀ¯ø©zÈwJž)M²á&Þ¤õ ’gÀ¯f0 £‘l0›lç™a.›ñÜ ÔÇÃz^)Ôœic†ñÔôV`ìÿ:Ž£C«MGÆÔ훩Çú8ZS²£I ¥­Zö›9…U¢;n)p§Pè[©a5f8Ù¤¯:2'z£9m{…†³¾ó àð£ê×…¸ï>Œûð÷Ƭ—ú Ðz°úZñ©öæUÌÔFÀ½ôñÛíjÜÿW2ßùž ºª4»Ï]m7ÉÊ?êÊÆ\÷oMíns:¦È]j65GdðêŸÐw¶=æøRyüj€VµÇÌ^‚‘«Â:±7 ï†¡eµå¼–KÅÀ»é_:†ÝOcBjÉ´`—»l &â»}üsî ÖͧúÃößûSÄ«~º_ãx­r¸ÄÝ ~µÇY[Iî6Oº¿‚Ðú‘@1&ÝŽÄ3ÜÉzΟwKü[F½¾F¬£:}¾È1«wºì ʹ4£º÷÷û?]9ßüª¹üârý2ÿ;õdöÒìËøö«¡÷]ŒßhÓ™Cš~ÅöÅøjýî×F"ù5y‚¬qŒ·a¬‹a*Ì–™~‚¯Ï–Bß…W„;Õ‘®FãÇâ©ÙW̢Ǫî{?3l°vb§¨¶§2ö3!ϙȸx]¿zÚW‰ì-•QM‘ØRÍ_îDÞSšgs¨>Ï;T¤*r<}ç0S#ùzÉl££‘©Iÿÿw.™b-Æ*ÄÇh÷FðÇ2'RÏK㺰­}æ†|GýE™äWiô±§’›•£=˜B>艱ñTtN!«ëƒ5÷,fq"ul–cnOW>vþ™K¯u»À_çsžÀ}7Kj/’žæo±FÛÞWŽ™ž@;åœù²Âl©?m¦Üd*Ú~ìÑÙØgJ˜›ˆÉ}ðz[ÚƒÉ`o°3ÝÉ)ó°%‡Uï³um{û„Õúf/âžiàW—û§yKk&õý}'Ù/¤*ëÑÇšÌÐqð+mësζãù` ¬Ù¥2Û<‚~m‹Yù0j2k”gc6«ŠjÌUro¬õ2ÕÜv”©ÉúÄŸJý`!Æ 8Ú;Úž5šuy½s¾U…ù´ý‰ªQÝOÎÀœƒÛ^ÄÜÖoŽbÞ5Ÿ(ÆUz3—tfMjj½$•ìeó Æo†4ÿèʸW¨ÏPüªŠËÎÄN°Ä ´gdbHëT]Âu{#º°²ínìÀÍe=Èýú¿ÚUˆ_ñª!Z2—µzk£ÓpÏ€Zß¾<ülÐÓ­²>Îe—è¹äó°;áùƒ&öótÌt÷£¯ëš½2 xU2| xÕãø¨Âx†è¹U²×ïŽ~-@+5?²¾<Ž'P­¯˜+ZF­nÕëË‘áÁ:÷u°öàºhþàNë™\ñ]` Þá÷bG[ä'úÅ®¿ß‹Y´Ê-wcüv÷vžÕæ)w-xó®6ze„)gDZ⪸Ïõ˜×¡2þL¼¯8:šz20Ö €q‚d—m”÷lô×\Iß üª“œwÙ~‰ÿÕµÀ÷w¹Ñçõ½ª¦~úüêN«ëg¥Ô d;!ª¢WÃîÈã)¯Ö¢U}QµÞ´ÏUÑÚ‚•¨¬Ö=Q–±ÓX»\µò–J';™õèKâ{ƒ€W5x*÷)ðêŽðRæøªò HQ¥#°·,±! ->B&¥•pÆËÄ©DÆ)¤qõ–¢O8ÞjÏZó±Ä&µ%»³ZRsz²[ÑÓ«Ž]'ƒ£"N¤ÖjDÍ=‰Þôú¬"Qé¼GIZ¢eé×*Cˆ¨-Çñ óÜ£Lԟߌs0–6ouž8~£"mFG†X†L1Ry'9z õ&öÁÚB®UvÓ(ê!Çb>emÎHþà°mÞdëUÓ}´4zÞ0W˜dªqÑüª÷Õð™kv›!ûÌßåHU³ÌOõëÜ?fÑ-n™+ôûÝuŒê]æ9w>x­ÏÆüdÏPm­õß”™@sÕX> ¯¯AµÃg«±þ`Œ«ËóÁÛ‘å|W¯j÷?»Š~lÒF@Š{ÝyŸåkû>xîKÔë[ƒ™›«” ¿e5¶Só?GÊ_h£Ö YJߥ*;hm‚ع 1;«’{µÃÎ¥,£!îÞìN½9ˤ®Nn3CÚ•›3jà™þox1=4õ€WSq…$ZVíñÜ¥'ºÓ€ù¥é˪Œ1;N†ž¦Ñw¤‘ ¥¹¦ã$¢Ó’N䌣·ªR43Gïˆï”åuT¹"ýÝe£W‹`ˆêÖ!"¥Ð‹‰s×øÒl*p¥ñZ èÕ¤è aë¾–¤¿+ƒñ%ȯ²$RIZ²7ë×'ÒÇUyÎ%Èñª“WEòw*Ъõ´[K‘—EĈ½Õ=oÏJ¦ÕÈ‘¿¥Jè„­ÍóÁ'Í5Û$¤±£¥å´«È©Üœi! Í*;Æ~a”a_Žm§¨Áóòδ+a Æ—D/w<Ï`HrµªæÑãÓ3i«@iîð+RÝþlÎàNý¥eø—ê^w?10ÝgøwíR\y‘ën¯ËÂÐ0Œúy<°žÚï-²}©µHuíÔ|œV°u7#T üJÏÅU_´+°t/«”gÉžðÉ`Œ{,¨…ïVpÿº®À”ßÍaWì?÷ïµíæÖ˜å°«Á|PÚ_C6ü‡Íg¿cf M5|õÝJ÷åŒí<®‚½mz£3æý}è_ìe౪՜'ÓƒõÀœ»€W`þe÷ˆ¿âŠåkq1}pß ~‡dšÛý~!Ïo3KÝJð«ûܯ¦‹,7/›fEžÁ¯ÊÛѸ¿2ÇH]­–¸·FŠÌÇÏz±±xŠ}xuëÕï€=XÝh¶å:àU)àÕ"ôåo®‚_A=ä|yÀö龩ŸÄ=úÐ]wk­®ù[À¯¾^UÆç»ÒòmÀ¬£9˜7‹Y•-ˆÔ@J¡OÊ£Wªà¿Öõ]7Á8äGõçK؃ÃéWÖô-ð¶,c=z­ÄÐ+¤=GÙxŽD…dæ—¾ÀL]ÕZÑ1›ÖYéh>N*OåJÓ¿¢Q¿k¤U Æeå2n*…ñŸh×%3{¹½m‰ŒÈTÿU.ÏþÔï^‡qQ±dTÉÑcÐXÐTúÜãéU«=—,Ç:ô ´§ÔJ«U9M!úD"î303"ž}5mFÎÉ´ÉeHD÷8‡U4žy*£ ¢ZXÉd~ʳº`>=+ûÉì²°®Æ`Æ‘_½‡»€¹Ò·b–—4'yfñ6Ö'ì~ê|Þ$“L¢¹J¾4Höš¾À«XÆšÞlî^%0Oªx5”vëx¬§’fû­'8X+ÓŸ²'1ªC±+,ÿ˜ ¦€g´ÿ±9¶+ëã¤È;Òü*Ëhï]¿Z)S3ð¼|o¿–tbZŒ©Únk•»ÍÛ8Ô†~¶7Ð®áæˆh]Ù–À«û±vrÝîÀ¸ŠUÃkÏJSóú%Œ( öàS sp¥ü)™Á2Ì¿¶°`õÄò¬IÃh^”ŸänÙ…«ÔÇQ%èuø½fó—ò3Ö:yÎ%^ÆßÍ€!³9óð¹i¢ú%z^†;Ú_Á¯r€8ÍÀ¯2Ü«îŠj¼›LŸéÏØeè™›]CûÜ…oœÃÓ¦zŠÖ›ØÃz^õaÏÇ;ߣ‡Õ¿4Œ` htÁ¦˜ñ-0†/`y£9Ü> ^Õ3Is߸šnˆ{^6˜Ç]‘Oy3h¼ZS ~UÁ77÷ËJð«?B?ZÍZ,/™Áf8Z£±Š€<õ°‚š­?Ø•þýè·ŠT˜ß‚g ¼Rmù–h{!ðêë`+ìÁÒÎ?é†-¦*Ù¿úÞàWü~igVP¿½‹ßc6Ã¼Õ õ»Ýeì+ÌqwöàMøW(CL’-@ë¶cM×AO7Æ,jBÍ„I¬ïÜ ÏtëM̤Z϶À¹FsÌ7ûŸ€Ríü<Ì¿úÝi\Ù~÷-ìÁî~ðý÷Чîwà•*Ÿ¯—êáÏÀ´*Eýè¢O5¦AÏ=Ê1ë+ hYV'Íë}èánFõÚi\· ¥𪀹vsÁ.'ø–´z>Û=žK,¨']8fê?Ñš}è¡—A¾þ0½PqT|ˆÕi"ŠWYÑHñHE‰"V6snR‰¬±é*1Z¬\´ŠWVûNŽVüJZxÊfs⨩:‘@?R9úÉâ‰b¹Q$‹ÔöJ ¦q:cô#ñ i\cŒê¦m›E&GþVžøXê –c w-—Ö`fÿyë.ž¹?›€PÈ£ZaŽ} TÑëß ô7˜€âØqŒÃÝÒŒz27I?“b yNÙaº3'ór£Y{Pq¾H&šv[6»Šê‹*›ì¶Ò˜¦{Í x}4@*?“n LDÏa»-€=x˜± /cß©*kô»ÿš7±›ÊsÉoåg{*UÂ$„î°5Œî [Íq›êÕgX,“ÍQ\³-‹f¹ÔDonG{öRI}fC7óư ®çöÛq&ýºˆX7X„™ßLñv;Ú~l*`g¹ «`#¬«jØ£4æ§ú®fÛpÆ‹ÎaŽ˜˜‹%Í@áÀ3=wHÿ•Vjˆ+ö©o¯˜/1R£$?üƒ«~µ•i’|Uÿµ…™êÛ¿eYhâ zÔ1×Eñj4J­é¹ò£|ˆÝaî1X ŠvZ-CkN©®ó*ܹ û^|KuF6„_ ú¸ÝA|6 x•ᆹ¶GÜTŸóQÐÌ>aî^}{°¥y@nµß‡â×­æn“ÿšfU<µòÌ|Üa±ºP¢Zö!þÖz©M`mÃ*~ c ™ŒÕeðêÓ`s ˜Ú˃=xÅiÕ¤ f¨ÿÁå÷Ýnô³aöó»Íj³È­pÃü½îwÓBÖšgÁÍŽbÞ­@ô^¯Æ³¾³Ö RžÕšø¥–ù ž2tç­ .twPÚU3mðþÿ õæP_´’_í¯9­(·­­ ÖÓ½{%tÆ¿Ó6Ç|¸…x¥y‚ºk ¥¿]õcoãYKFwÎÄ ¸dN§æ^m̈nôÖ4 ^õXú”–Im;3<Šž¦é2À/ôM/𑬠?N=dÍwîk&2[Ný3š)]&[Õö`ýTÕѶGxö–D<(O (Cì*ÍžÉÅ8å7b™ÆÓDõFµd~±ž­«¦zå¨FV þVYþW¢*cÔãyÅdÚf ̯)C‹' UˆÆj¼B6OãbÈÁr_‚ù†™ÑËÊè§ ÞÕ3~^½kžöiãJ_Ïæùê‹Fâ¯"Y†ÕÉŠþÓá7L8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run008/bold_events.tsv000066400000000000000000000002461323370031300255650ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 face 52.5 22.5 scrambledpix 87.5 22.5 scissors 122.5 22.5 shoe 157.5 22.5 bottle 195.0 22.5 cat 230.0 22.5 chair 265.0 22.5 house pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run008/bold_moest.txt000066400000000000000000000212501323370031300254110ustar00rootroot000000000000000.000565674 -0.00101551 0.000949281 -0.0155903 -0.0160558 0.0143289 0.0016107 -0.000937371 0.000482427 -2.98567e-05 -0.0948474 0.0318905 0.00109279 -0.00110499 0.000543393 -0.0129456 -0.0706451 0.0319905 0.00139332 -0.00150942 0.00122338 9.33401e-06 -0.0335558 0.0320473 0.00259207 -0.0011127 0.000543394 -1.07198e-05 -0.0481873 0.0319706 0.00151502 -0.00144155 0.00109739 -0.00302221 -0.031164 0.0320242 0.00168701 -0.000916761 0.000543394 -0.0101016 -0.0409157 0.0124677 0.0018076 -0.00031697 0.000543394 0.000285082 -0.013214 0.0318737 0.00173688 -0.00145789 0.00170067 -0.0134261 -0.0480774 0.0447531 0.00156828 -0.00101254 0.000543393 0.000694739 -0.00517193 0.0260479 0.00171203 -0.00145789 0.00123351 -0.0209004 -0.0335143 0.0261259 0.00234339 -0.000513974 0.000543394 -0.00592347 -0.0482289 0.0259889 0.00175688 -0.00145789 0.000965394 -0.00328665 -0.0349771 0.0261263 0.000816253 -0.00161208 0.000543394 0.00489581 -0.0483506 0.0261259 0.000942736 0.000564967 -0.000506445 0.0293723 -0.0455541 0.0561495 0.00118367 -0.000526681 0.000300532 -9.60424e-05 -0.0276936 0.026123 0.00192879 0.000424034 -0.000525306 0.0370569 -0.0483261 0.0517416 0.00216984 -0.00166931 0.00125943 -0.0166553 -0.0480191 0.0339572 0.00141454 -0.000715844 0.000720773 -0.0100118 -0.0481626 0.0262231 0.00154796 0.000194316 -0.000509927 0.0117239 -0.0342699 0.0428692 0.0017174 -0.00129506 0.00107153 -0.0132122 -0.0167706 0.0263733 0.00178272 0.000652177 -0.000913308 0.0136849 -0.0545487 0.0429149 0.00137064 -0.00110112 0.000768596 -0.0114076 -0.0430684 0.0380581 0.00172946 -0.00110112 0.000824225 -0.0061741 -0.0455822 0.0265904 0.00147337 -0.00151405 0.000824225 -0.00299459 -0.0480383 0.0322846 0.00195919 -0.000870877 0.000405319 0.000835716 -0.0297815 0.0456915 0.00213048 -0.00132096 0.000824225 0.000842323 -0.0479935 0.0433676 0.00219558 0.000728931 -0.000366165 0.0175429 -0.0480553 0.0586691 0.0022999 -0.00106475 0.00109324 0.00212933 -0.047918 0.0395226 0.00204706 -0.000482129 0.000733968 0.0108907 -0.0479806 0.0331854 0.00152958 -0.000800716 0.000822249 -0.00397651 -0.0479895 0.026658 0.00198292 -0.00108461 0.00105295 -0.0086537 -0.0489431 0.0407463 0.00188706 -0.00180118 0.00161274 -0.00816092 -0.0262533 0.0596964 0.00219826 -0.000999465 0.00104133 -0.00552705 -0.0474923 0.0430591 0.00231379 0.000390965 -0.00010424 0.0173657 -0.0670721 0.059372 0.00219965 -0.00122979 0.00104689 -0.0129934 -0.0669509 0.0441877 0.00231516 -0.00106904 0.000808159 -0.00129236 -0.04896 0.0271633 0.00243635 -0.00136517 0.000532304 -0.00803878 -0.0361069 0.0329668 0.00203966 -0.000303552 0.000105845 0.00321974 -0.0290234 0.0327855 0.00170406 -0.000618904 0.00046934 -0.00191242 -0.0670866 0.0468551 0.0014473 0.0005612 -0.000668361 0.0311334 -0.0671524 0.0412329 0.00108742 0.000500764 -0.000187848 0.0297199 -0.0671763 0.0517873 0.00142889 -0.00105469 0.00128235 -0.00691447 -0.0419931 0.0238337 0.000964811 -0.00105469 0.00128235 -0.00346118 -0.014707 0.0264707 0.0020074 -0.00105469 0.000810746 0.00355117 -0.00892408 0.0473419 0.00210989 -0.00155761 0.00150256 -0.00859968 -0.0421371 0.0496027 0.00246296 0.000744999 -0.000597862 0.00471656 -0.0605878 0.0834916 0.00242542 -0.00191768 0.00149163 -0.0208325 -0.0183862 0.0498492 0.0021667 -0.00145295 0.000867881 0.000502934 -0.031491 0.055495 0.00228475 -0.00151927 0.00131537 -0.0211205 -0.0451632 0.0369568 0.00220304 -0.00145295 0.00187865 -0.00183122 -0.0318809 0.0366024 0.00232163 -0.00152772 0.00163555 -0.0185376 -0.0428166 0.0568339 0.00213721 -0.0021354 0.00131537 -0.00284881 -0.0294914 0.0475232 0.00260954 0.000270857 -0.000905645 0.0108591 -0.054761 0.0570117 0.00234688 -0.0020518 0.00191437 -0.0149893 -0.0541323 0.0485552 0.00192616 -0.00171054 0.000746115 0.017625 -0.022335 0.0548057 0.00228422 -0.00137362 0.00150271 -0.0245848 -0.0423249 0.0288109 0.00293749 -0.00185459 0.00137339 0.00130271 -0.0342961 0.043621 0.002853 -0.00120833 0.000360169 -0.00716551 -0.00580558 0.0435246 0.00277295 -0.000863966 0.000702666 -0.0184493 -0.0295534 0.063684 0.00331416 -0.00140258 0.000297503 0.003374 -0.0307513 0.0683259 0.00304033 -0.000149017 -0.000727635 0.0174718 -0.020702 0.0702863 0.00341354 -0.00109961 0.0003635 -0.000664821 -0.0267133 0.0809911 0.00253155 -0.0015916 0.00131517 0.0379836 -0.030193 0.0877743 0.00339926 -0.000936089 0.000615583 0.0175504 -0.0320824 0.0561218 0.00264721 -0.00139528 0.00102216 -0.00816889 -0.0341128 0.0719935 0.00313783 -0.000988581 0.000449264 -0.00193253 -0.0488442 0.0605172 0.00328908 -0.00187653 0.000508731 -0.00183752 -0.0349172 0.0667204 0.0027427 -0.00146811 0.00113332 -0.0216609 -0.0372637 0.064151 0.0036328 -0.00139014 0.000602822 -0.00321418 -0.0214744 0.0641114 0.00327175 -0.00148782 0.000508731 -0.000131032 -0.0169069 0.0641332 0.00338876 -0.00211894 0.00162509 0.0443635 -0.0203246 0.0786065 0.00322344 -0.00189119 0.00147803 0.0101569 -0.0149413 0.083796 0.00304271 -0.00103872 0.000587315 -0.00314386 -0.00970913 0.0836938 0.00268037 -0.00140782 0.000790464 0.00583623 -0.0172561 0.0922372 0.0032862 -0.000822014 0.000509129 -0.000722455 -0.0318317 0.0942276 0.00387464 -0.00111852 0.000452877 -0.00130447 -0.037762 0.0828936 0.0029159 -0.00141068 0.000509129 -0.0161893 -0.0318781 0.076531 0.00322623 -0.00174532 0.000509129 0.00916431 -0.0318482 0.073463 0.00326973 -0.00147584 0.000318763 -0.00161837 -0.0394415 0.0815323 0.00408418 -0.00108563 0.000509129 0.00606163 -0.0312061 0.0761165 0.00303738 -0.00174532 0.00154538 0.0140248 -0.0216819 0.0815755 0.00290027 -0.00133412 0.000726987 0.0108334 -0.025646 0.081545 0.00353329 -0.00241544 0.00110249 0.0544952 -0.0183616 0.0815513 0.00311035 -0.00216326 0.000693907 0.0010895 -0.00130721 0.0607835 0.0030157 -0.00167001 0.00110249 0.00535196 -0.00741951 0.0815132 0.0035285 -0.0015398 0.000291842 0.00576544 -0.00955883 0.0969382 0.00348573 -0.00155516 0.000995915 -0.0233123 -0.0282077 0.0742817 0.00389409 -0.00196683 0.000831756 0.00932091 0.0016524 0.0815243 0.00266203 -0.00110456 0.000581756 0.0204058 -0.00698473 0.0628457 0.00282938 -0.00153139 0.000581756 0.0283374 -0.00697199 0.0814452 0.00366333 -0.00110456 -9.45682e-05 0.0716217 -0.00684827 0.103197 0.00414013 -0.00150045 0.000157692 -0.00254062 -0.0151734 0.0860764 0.00454893 -0.00198868 0.000920076 -0.0214452 -0.0141466 0.102352 0.00340157 -0.00197872 0.000648634 -0.0109509 0.00560689 0.0950179 0.00307643 -0.00205814 0.00076603 -0.00919248 -0.00649973 0.0972287 0.00283647 -0.00206944 0.000764668 0.000739809 0.0188028 0.102329 0.00256847 -0.00155648 0.000937875 -0.0150983 0.0152676 0.0772807 0.00217249 -0.00166075 0.000840946 -0.0153628 0.00928431 0.0773788 0.0020553 -0.00227809 0.00209061 0.000220331 0.0217484 0.0751324 0.00224186 -0.00206594 0.00115283 -0.0185991 0.00446497 0.0821674 0.00239343 -0.00186986 0.00115283 -0.0258476 0.010425 0.0821282 0.00103993 -0.00194946 -0.000202977 -0.0301922 0.0243819 0.0821101 0.00268618 -0.00310764 0.00173169 0.0368564 0.0513993 0.0819429 0.00192601 -0.00237573 0.000548205 -0.0012587 0.0244345 0.0681452 0.00183159 -0.00237573 0.000968784 0.0336421 0.0393624 0.0556628 0.00275181 -0.00153184 0.000199764 0.0131471 0.0244334 0.0581602 0.00181562 -0.00223188 0.00139415 0.0132181 0.0382987 0.0414494 0.00216254 -0.00121411 0.000541935 0.0599965 0.0245234 0.0487368 0.00143301 -0.00226011 0.000925 -0.0131109 0.00127918 0.027425 0.00101763 -0.00268601 0.00160709 0.0270886 0.0246695 0.0488904 0.00136079 -0.00189737 0.00155853 -0.0095868 0.0269279 0.04048 0.00221194 -0.00226011 0.00215199 0.0469817 0.0341809 0.0747133 0.00241193 -0.00226011 0.00184137 0.040953 0.026002 0.0639881 0.00254325 -0.00149224 0.0011714 0.00754937 0.00642552 0.0537858 0.00203998 -0.00284108 0.00154888 0.0394652 0.04652 0.057533 0.00163625 -0.00271303 0.0011714 -0.0151203 0.0399035 0.0737736 0.00175739 -0.00313571 0.00189315 -0.0180473 0.0335256 0.0589591 0.00192118 -0.00176002 0.000311708 0.00619542 0.0374788 0.0737509 0.0022414 -0.00239307 0.000525259 0.00621547 0.0427585 0.0606495 0.00236952 -0.00263396 0.00155954 -0.0245167 0.0358569 0.0494055 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run009/000077500000000000000000000000001323370031300225225ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run009/bold_1slice.nii.gz000066400000000000000000003216631323370031300260350ustar00rootroot00000000000000‹ĽœG·õÝ]U{ïj $¸»»»»»» 4Á ÜÝwwwwgðÁÝå[gÞ÷`—!ß}îíù…0Ì™}ªKÖ­¶SÓuB°ýê'©ÉqŽøÏ÷õùfœÿßmSãÆ…ó:Nëÿû_ܼŸ¿nq¼&Ïÿý&”ó0A¡/½[á %3¥N’výÿÛ>îÇÿiÓþýmò;ÝÂnõýû±ùÿ½.ðß7ß>ù^þ^óÙ¿ÛZ¦H÷ßÛØn?º“ÝîAÃóÊÉîêð?·Î7‚š®òèŒú™[UN;¥Ôd5BíQÝÝ5ßUm½s^Õ3DB/L6«Ãk÷†»G¯1iÌ3|Kåø®vRI(-6ñ©Õ¡{º)àÆTSLcšk¶šh‘êèV!ª¨Ün.ýM§]ôe¡ƒô+¤btQw¦ ´‡~§”n˜a¦­ž‚zgÕN]‰úR^Gkh.eâ«T&ÒlÚO=é)¤¼ôÁ¼4¯L/óó7[xÂYaV˜XhÁ#JÀ©-¢äÔ‰ühåàŒ|RñjzmþD[‹Ñm•ýǨÜt˜šÐÏ´™ŽP*Œ=NIš£r~ŽÅ—i%­¥C´žbó>ªJïML“Ð}ÿ•ZKÑ,ú“ ]q©Fc6eÄ¿…¥Š\›ŸÓqšJSh!ª@_Ž¡,æ…ºý…j JÑ-ŠËÛ©1í¥îTµ2ÐmŠÎk)i¦ýywä´<’Z£ÃûÝ7Lýh§ùgµEÎj¥Ì]JɃ¸1‡áÓÛ†ÔÒqg®ÊOè „¼—'óE´11Ï¡^4ãóÆjƒ~éîVo”úÝ´£¦””×±gå£Ô‚æPNÞÈa%¡¬•ùö´ä‘³œC2Ëz®ˆwü‘{sžÉ«ùµim~ 6.¯”¦ê´€ òìÕtîN/i*G#[x¼\–Aò\ÖÙ²‹Ë)žÊ18ßB­hfôãswúçu#ZF7)nŽ~‰'›8·á˜´4¨m Ü{Êp>O袜¤¬ÞT\ÍÞ±Eìf´²¶½l—ÚÖzO¤‡,·+%¥mƒ6¦à ìÉZ>H}Ma3"¨}ñ·?R *@]èÊO•Åzmì)ÛÂÆ±imC;ѱ‘ì{_þBõ—¶²Œ“TÒ-ffuÌú¦ôØ\Ñÿ¯^÷…f¬ø 4–þ¦–f•Ä÷ÞØ¡R^¦H{Øæ³½#ÞNÛÀkd·q*¯†nWËbyAh“¹Eû…‹r=³é+ëî?¹Åp绂zæ“å_óɪMª ®¢ß¸ùQe¹S@ SóÕVuÙ ãîú®bÛ3ª©¹mÞ›G¦M1ºóÜãz•Éh´‰«ã¨’ßÕÎ*<”o¥‰•+GotSÔ p›V´ÁL1q(5ÒÍBTñ“ÒM¢ëÒH°¢´ý(•†BեǺ?˜²žúÐC“‡Ž˜¦ƒ^úírÎVµ_W†.ÿ„5¼̈Ϩ&*Í£³4ÐEèµK–<hú~³…;Åf±‰ˆÙý$ZJ Äɨ--¦”‚ËðEÊÂ+É:. ÒF'þFÅž*=ö³öÏ×¶”Ô›ŠãÏWheþ‰ýÁ¥åÐîÅ”™×S"ŠCÊÃX¹Ö~g„{Ȥ…*Œ‡ŠûƒqQÀ¥ê¨P‘ßRlªÂ øÃOÇBÛ6Ò:êHý© Pw¾Pí†sI=1)5Ÿ ú x[üYŒRÃ1ù0…3¿‚‹¹çäPù?iE?ÂâÏ‘»•k®SžæÄãs`îÏãx<•¼òœsKhvIþ¶ôã¶È'Ç9 6‚K$má{üPaàIܽ3nY†GÊyY$©ì^û¼È+$ØÇ÷|ú<‰óÁÓZþYÅPº9¨‹qþ{¸Œó9& 8¡ÔµSlïµmì­–‡\ }É5r ߯›x2mz=0Xþ˜Jaø!òrSô¹Ýäµ2WÚ! ý(/ ¤ìYy fnWÈÂÕ¸ïâûÈsÙd%Ÿ5‚j5ur¸‘—ÁIýÆc¸²Y~\“Á6©m44 íK€¿ßµ‘;Ê[Ã&+ñ"Ž+˼jrT¯{B…‡ÀÚ¯"'hîŽqIfÛv¿Ô“n6¼·Ú®²žÖ.öŒ¼_ÀÌ|Ø“H2³©´Éc&íï[gŽE¹ 'ÈÊcó#UÇ+fýíL$¡Ó2üíiÓ#X;_ªÙv†œ¬RŠßÀçøø1˜šSAü˜è"!…Ï€'YHUÌTIæ%ô¦Ëïà‡²#l&[Ã;ŽD’Ùkh×rm$Çk#­åœ×)𣥋K›}_YwÿÉ-¼;ÅÔ3ïtÿ:< JñLÄxÅœzkÊÑYÓË4ÒÓCPoŸ:ˆü1<ÞM«às‹ø4Þp'݇fièrziÞ™—¨Øü›-Üê,5 LTÌîоýTœ.y#ægn†Úyá5 *ϦŠôDEøFÅ?Tr:L‘¸CÓ³@ùó@÷Ã@rp2vA(Ÿ í¤ì|Š C™µùz‚]æÌu/ŸÞûa .RУT™ŸRnê§ïÂsú²×:ðå( ÷:˜wêÖªÝtn©Ú|8½P©¥q3áÒ˜ÑúœÎÓ0N#ƒì«Ôý?¦9ÛT8sél"t<4£=µu’ò_ÜIërKJhÝ\> ¾'?&Â-AæéJ›õw}°zSToÓÜÍæ,‡VžAš™N¥x7³$’müH-OàîËÁá–ÇþG‚oo´r€˜±ÿàÇ åReš Ò.à¡<ûÒø–°’@fpðhºD°‡ì{>ù$€Çq,.ÂVöâûœ­|è®vüÊdz$©BxE+d_^.;dÇ’–v‚Íà؆Þbä™2AîÀyx<šßðzxü=ó4ºûgõNé>™/£Uí¹7ï£ý¼I¦HÔSòÄ.¶åìzyj—È1Pê5´¹-ÚW­{ “…¼ÉHP½ÃN·9ªA¯×àyœ×\5å6t>Šíez‰m ûÐn°meœ°-?NsžÅÉe;¸ô—¢‘Amkä^VÌÀýÑ”KZÐt½«¬„½f¶{¥“ô´‘¼Ãvµ^;XŽÛòRº‰–t ë$ÂÛ”Á¤ú$ûÃkhÇ+BÝÈ•&Í“Ð^:ðlºÍ̱Än±¿Ù¼ö–ŒœP­m);᪃¯Áf0m1—?áÇæYõ˜…•ô§i,e‘5&"•H2Elao½§¼â^;˜Kxåì6û‹,;Ћëf-ÖfJÎ͹Mðc¨ÿ[Dw²;.¨g>8YÜçÿ²Ò=g¼KjžÊ«kÁ•<~•FMV³Õ)uÑõܵßUm“³I5?¢ÒSŸ›×™õw¯{Sß65Œk~Ô±TúïâG^‘RÑ,“k©7Å2ýMN÷¶;×´£ÕÆÏD¡¸Ô\7 QÅÛNa—?æÐ!Œ\ßQzä^ ÇbœÀœzâÃ;tÖ+BPo®:Šü1•"`Õ­¢ùp˜÷ÁÅ´^®5Vøi(ëKóȘ¦Ï7[¸ÁYev#d¦GX#Ç¡ZË(=ôs xWZ@Ùx/øÑ ïPù#ù7*QiA¢Và㺀¹?ÿe£PPít-]…vž€zGEª)HQèÎè¾üJ­µÎH÷”É—Ðw‘ä³ÓOh_5ä |$ùJýƒwYIçг=ÃÊ›;êѪù;Õóœ’AëK¢uí°?µ(:]£´| óg}Ÿçp.ÌC‘{CçÓpx=ûÂñ«-ÎÞEvéÊ9òG¤–¡X™}ù~‚±®Ÿå™Èg).ÏA¿ÎAû:£oÖëwî™`õ–ª_Mj ®.Å|VÍÁ³Ë)rÿÌ[i¯„^­äÐÒ𕨻m«xÃå%…B?â*œï{ƒb6€ïÑt¿Ïê]Ñ=1+nÑuú=¶”Žñ™%­ä0¿åvŽMiÉ.Û@ž±Ÿ¼‘ËÜ“Ëaoòm>ÆÙe2Bnýµê;©Ü:HÍx2g3›M ¹ ýllÛHzÊPëgŦ°×íh; <9f ÚèÅÈŽÑe4fæÏ\‘–µ-ƒ{D½Ã¼?‘GvÑl]3®¢}d›Ú R]ú"ì°›ìKëÙ²))ýMüèÆï‘i®bf3½>9K¼]0¹±®ZÐ~m’P!ùÉ›l/Û©¶¾}/laTŽe¯‚w+¤‘]~ìÆ87`û@ _²â~LrßèÇfMÁ×RäÉÉûÁ!]䊄¶mÏ»íݵ9½ö"'õƒOÍeš8¨vÝ,ÆÌ*Ê ¸˜Ùý•u÷ŸÜ•âCãÒ(*Œdùc-=7‘pÊR"ô§«„tÚÞ‚vé¼ó€Oÿ³q"¬ÈPî£èƒ´}ñÚü`Š|õøÕ¬”&+\êtðã²[T®Îͧ)?”§ þ¬¢!Xé§Ñ—iU0}¡•·œÈúˆ¹Gið»eh=ú¾ þŸ˜‚(ç)Ši ¯Ãæô<cÞZ‡.Á‘ § _àÇZg‹ cÎâw{A×¢¡½zAÿGq#¤ƒ³…ˆPãÙ|ÔçGy;E_tÂ\jŽÙyÃ=¬ÞdÕÄ4En‹¿>“ó¢-  ™y'¿ãØp£ËìYðã<—ÆŸ3¸&¿£è`]#žÁ;ø…)d:Ûã[Ê¡xÏŒ<…G‚ÈŸü8’A‡x––È ìxÃ; ×;NH K¹Á)9:à ØÿÕü7õ¥Ä:ع8ó+1üÄ=¸€Î¼ˆîðZ™)Äw¼.Àη%íbYc'Hx*ä=˜U{½ƒO ‘Eéìg>&áŸÜnkJÀCÐk¡ÿ²š=&“\”Á6´­%­eˆícŸHV¨èbÛüØdÓÚú _è}4ÙÌIøwÎA゚VØ=­^Rx¾ˆY•IæÒ&Ý Y·š½-“ÞÒß’7êß¾BÙe/‹ØVRðƒzw©®‰ñɱãˆî}ÔÅ|ÿó)S•êKo}l+Ù„HZ'l/û‡ ogÛÇÈÕ,{eŽÄ”šH×{¨ô¡ 4›ƒø1ÂÕæ8°#ÒŸ~6‡Åz¯í´e”\—#¶™Må]ð&€éµì nâ±›mw°ù>´a‡ÙßÔ £\Ò„älë÷Ñë~T¥7N:÷‡}üj&ø±]åÔ…õ]×ÇeNN5^SçÔU×~çùÎaõ§‰Ha)4å¥ñ:Œîè¶wèƒ&‰Q&´Ž§ W;‹©ìðä³Mzè{sz¯[™î)w¦iNËÍ8ˆÔT>„çÏ]·²›Jw ?xïP½}T™GPz¬çC£WÁ³†‡þ0ƒMo½0õvªÝº’õ¼‰ÖÒø¤GðøËPë<¨t.B¹Â’Ca@ºÁßlángYabBå_S:>€¹5 ôiÇ8’ÊrN¾@%0‡ß›Þ4¾%ÎùŠÃU:‚WþŒ\pвBÑÓSZzI© P±ùÍ ÍÈ%; k'¨"òD:“É}ý•Z7œÑîmSIeÖÉ^ôyt$¸š q°3uøÎÌÄÞï ãàÕJ´¾µýö ÕüHú®¹~øcMî¡.T,JƒÄæ;{ñP×ÐFVÁÃæâYлæ Qò7 ùÒùóeÎvÑ\£L`Ο äm‹ÄÒ¤˜ žDàýððQù2¾»É/AæiHŠ>ÎõGë—"o VošjŒ¹Õš²ð:8Øb|ùeå‚ú¾â²EVÙûRFü9—’\›Ãá=¦Â¹oá‹|ÇÔ1Áçâ õÌdÂ>EµÎ¼‚ÿ K4„äƒpô¡Õoä¤=ǹ‰ÜBâI }ÇwøåXèãî˜Ï*zº-Æî¨•„œ úó2Y#Ý9±ô²«mLï¹Íâu•\JFˆ‘òœ€§ñkÞ‡÷[â§ÖŸa»¦ûÀC\EúkÊýy]ãc2_ZÈ6´Ñõ&ÙÌv¿ì·»À£nÂö ç¢Ü<¾Êw9‡øñyócP½6NN·=…ãNÙf¼ùÃßd“çÈ amni&ì"ë/…mœýŸ2D®ØB¶¼œDê˜ÉÉe#'ãv\’µ-¿{]Åá(ü£•M&ÐA½ «lòFa»ZÆJoÙ›mOÛ6•$ËíUy)íÅ•ì˜ Qe fS“Ñ4 jŸq7ik´õ£Ë¼¹p†dòÊ?¥m[)äším?ÈhëÚ^RÐ^±Íd»d—ºH™k• ¿wÔl âÇ<÷µ~n6bELÀ*-næJ/Š7XšÈ"ä ¶ˆMá]ôæ€éãíPþÅ«ˆ=$íä ì&³«³>æh¦ÿ•ë¯bÏŸßrr¹æ_ò㉳Ð}åîWYu%ýÐ-xþ#“š¢f««ê¡Éý>:nqüUGŸ’Ò[SŸöëz¬û—»AÉÏDÐ?©ßyýn èð“3ðªË¸ÈÅÝ»îó ’äF“•rQC]3DÙ­àFÐÒVŒwøüsTgb ÏéYXW»°Æ“á»ëf ø’k–wªãº$.oÃo¯€b]£×]ƒæ¼Aý¢¤À¤7fš™þÍîr¶™Æ¥ŒàG^@¥YZDãP¹_§œ¼šB|+ QuŠoTœ¨  © òÂY£?eA ¨rAŽ ~lAJ8ŠÌPüh¶¤1ÙÝ€¯ÔZítw/ƒçà£{Ñ&Ð(4\y ø®²hiV8ׯ`ç~°n8|$X‚wmmX階‹ÎMuÑ(N…þ*€×õ?*R\ôÚ¼b™ ú-¼z.À£À>H é>í|Ì©VósN#<¤äpÆí±g'°Ï éJŒïë”—ðÛQà–çðIèPBƒ±^ޱAsé„~ï® VoŠªkÚѯàê*(`)xØØãlPG[áMËBó IQYŸ‡æ4ìÇ]ù¿äPôë?®ß=¯›dôä;ÿ±œ‡ÑaÍ"±á»‡À›û‰¶‡í+>ÅÙå1x“3óOH"—Á T.º‹>«x_µÄJ¸GIÑ?s¸#o¦¼U¶É&éâ;ìÅöªySä2W”žrŒˆJŽœF‚ZƒL[Hžô@²È£1Šx9á2]`ßÞóÞ,[Àî“PëGü—D²Û¸×àºØ[-o8,àãæMP­fH õ(.rÑ jþ2‡Li¹&3m([yaŠ…ü‘Ê>²Ûl[i‡žÑB–k…×&•½H^]9Mª—ލ"CìMåd-Э)—±ÆË‚T4IÁÙ¯·ûl/4ôþ(÷NÈN~„•ã|“šä¦Á'Wm×àÌò`5<à9&-•ÏkdoÛßl,›ÈN‹†ÛhH]QìRÆn@ë.K©Æ†oa5»ÐfM?Fº®¹c¶b>? ›%Í{l»bφ£%õl)›È»îíµe½!v:ñJÙ~¶,‘ÇРÝf RneÌ ÜfÇWÖÝrK„ü1þ“#{%\õ/ùaÝ5n(µQÕÕô-×wuí~'¾®&©ëê9¨´à»ª­vn«Q&<*S-Ú Së Ý}ÀÄ1QÌ]ñwµ³Ê?^¡”ô­žj²¸WÝ•¦2É>“˜*Q9Ý4DúåÜÚw¤ê4j:Cx*Õ¦½züÃ.xÒTŠNšÞf^‚z;Ô]€Q$èúFÚ@©¡Uy ©‹è ñ)ÝB»_˜ÐôÈŒ0S¾ÙµÎ³É¼DÎòãÀ,Ÿ 7ƒïLÙ¡QG©¯Ä mnM‘¾yþc2ò‡ïüt':ýMD¡£)Àº|ЧDpâ3i=]GËå¯Nñ(—IáÞüJ­%NW÷…I…ü3z¾‹"€UA±¹Tk4;´¢iàÆ9Èa›°÷ÐÆÔÁ„ÓO¿Pí8Æc9ö²hÓ‡r€Û ÑšX¼‹B™:ŒŒã? &c°§ wF£ &øî üX¼Õ¼AMæÁКËÔ~AŸ¥…ÕcŸ2& øpó£x?¾Ë†ŸvNÃ\ò£ Úß ¾v'«¦5C::È»87_DµÅ øV-ée?4ïÈq‹ÓJ)YxýUx¨é ö?"ÑÏÿà‡¿²” ¾µ<¯å…øêŠÑÍ®$Íø±—&ÃÝ¢+¦‹"~¬P'tQÌœØwõÖn*y^ê´„|÷ާ;øNè½ynÆš1ßlá\g‰Y~¤ Ìç©êÄ‚/÷£I Sxõ’Ðo ´Š–à›ü˜ª2#©´GKv€#Éi<ø‘ƒžÁ§ãüUŽCçPa´º:œ}zß½þ•ZËa¯ ú‚»™ÑSuPyTñ6Vc[8ÒëgS6â½ÎÑsd‘ÔÆD×_:"vÞ9£ž™—päGÁÍpn…°Ÿ)–ââ_®éâÚ•Éü;'EþhxŸF|08,ú#ñø1Û٣™›” ÊÖ“ãCF}¨(A«Â@3cA¯##øóS¼j ر™b zä0ø±5X½ÞªŸiƒ iyïæâÈ–u¡×y ‡’$²OöÙÛ’IÎ"”—]ÐÒ‡W€UøŠJMLÛ`ãòTEB§ê<écO_»Ã½G”9«wN¢ð©.rÊ|ºÁ+eT–Õü­7Í&³ÇÅßΑa7¯à¤p›Qh†ÔÖ=VÎø™˜âÚa6ŒM'õe™oïI!`ØúÒ\ŠeóÈQŒÛX°hÈÙ— ÐÜ ¶ep÷+>ã ðüGXõ—š©î¨×àÇÎ襁ù£‰L)ÉRYÚªÃê±nw¢^gšgú…Šúü( ÒÁÕ¯1™@ëîÅt65—†šš´¾>å¢ÊºIÈ*ºµÜ,ºTowàÝt;©AàýWIæÂ7§Ÿ ¤ÛLW3P‡äˆäzõJ'¦¿áˆÁÑ®§¬Hí¡÷K¡žÍ±Âòãµ¹i&šÝßláLg¹e"Rzü^J¨`ZF±¯üEɱ†ÎS9ÞÝîõkBñt’oTì¯b#)´D>;eO E͉¢°¶²qL¾‡ý=@'Ñê |ã”üHäÞýJ­=ÎTwŸÉŒ¼0:^ ÿÚT¥šÈFUø>F 7†ß‹ü±½z 9ˆdÓÚ„ÖѾÐÊgÎQõÂ<£x|˜J¢£¨ œFLäµP|šê<ú1oä1XY“ðnmá"ÐÃÈú üXèS¡Í!J7>Œcƒ=@®”˜Çs%ŽÈ3áÂòM8ûÝüšŠñÔ‡™4ä?§Ïþƒ£Tã»¶,oçu\ûÜ=ž—BƒÈÙi_IAäƒBRž¼Ü}t$‹npäW8&øÇù‹ê­) êæßÊ[x,]¥!ÈF¦ó(¹+å'¤†çH;ùÁÅpÛ¹ø-Xô‚‡³ïé OÜ…ŸU¼«Ê£—/Qd̉É`Ì:Ûái§s4égçAÁzżÍr‹Ã¿Cs?>‹ú[y<ö9¯îöY½#z$üÉm0 OA½Ê[d4”ýFÂx3mJ¸úÃv’,ä!Õ^äî\is'_æ{œHþf/¨ÞF§¬ÛŽÏd!Øž¯"ì„ËN Ç0yÂw]ð0¤ãÓÿx:Ï(5Ô4@þD0‡sðAüþ\*7URC§7ØIu.)ee#ÿÂÌò¥¥#|šßš2æ—`{|I9”Þ$òÑHž„Luƒ†r$ /óy€Ü„š$±›¬?oã²òŒ7p NÅF® L夘ù—ƒ]õAU¡1Ñ}ÔŠ@ñW#ߨ6§Í«áÍ \GúËU®À¯h8²Äz>ÀÓiן_a|@£(| é¯.Ô{-çm2VþÄï¿àÞ$›Õ‡v® æéÅ^ãÎ\ž›ó ~Ïo8ž,埿:æs[ÐSZР Ùm Ë}™MÎ$¿ò#@2Ù³ÐéêÒŠÿ»Í,;gFpD¼cîÃ?9ÿñ·{ù£\à=Žm¾ï‰ÿž-Š;Ãýø¬'í¿¾~—Ý­n5VÕUõh¬ÏG¤R«éꦲ*†;í»ªqÂê&%Åš¯NÇux½Ôìž?’›Ç:œæ/jÊ×·ª4å¥î&9\eŠaú›tî"w¥©BÈ & %¤nºFˆ*ÆÀ¾åуá&ŸÁ×æÇ˜7æyPÁûz>M‚âýAüð)ÓËL×{CPï:¡ËCOßÐ!Ú =ÎÁ¾;ë¦Ñj(hz„’…ž‚B³Í‘o¶p‘³Ól3ÏM,ºFE ‚À¹ØTö‚?L ¯^üxkZ>Õ*ŽŽüŠ¿©l´­« º@¾øŒˆ¦eÆŒM‚–úÎ\B[“ú®’‡Ã/`2¸¾Rk›ÓÃÝoÒ¢Uã½"[¾1¿P-8ùâPžÈԜۀoÙy\O¯Ó`Qé‰(Î&ÅäÓòÃPú Pò¬Ø[i(o„¦çׯáè»"øA7:)è‘Q¨û üæœRbn¢÷G¡IÓº ý  DPÃJðÕ#©(ýÄç ÆGŸ!6\ÞN=±'cÏ„¾Þ×ÓáGVÃ[¿7…èœébfëd®£ê¸ÎC]Éá=´ Š™wQ¬íÅtUBóBgŸ›7f†Ù‚ãWÛÌ:óÞD£ÇT>¼ZÓhõÊ­­€´ôüØ ¤øæõWµUVTh†³­K%΀?ŸSvNÊù9fü>º‚,‘k½2~’ݤpï}¥Ö"ðc—É W9’~…ÎûÎGÔ„/_@Uø!e‡kA.€u ÀÑót<½O¿˜ØúKžæ:ÿC^Þ8 ã°2Ka_¡'Ó|K?àÜû<üë ×`é6(<•b|£³*¼9A…Øù# ߥŽHÝ(wãÒü®£Å?&óäì{.¿3^P½rN·4ùÞï"5@•1sL#¹&Zk‘và‡Ÿ½"‰ìOÞ\[úïo«ÚÄr¹q6§@ÉŒêYhNPÛr¸;Ul.~ ¦&²‹ëºŸãBç›ÚÈ=íC»ÏnÇŸì 9l/É $1¿GslYüÑÆDÿ$¼pNj‹9—cúüˆFE%¬WÜØÑ6†=!Gí)›×æ±çm\[9éÛT¶KL)ÅayBJoF×ÌÚOΟûë‡f>è1=[Ä,‘Ìžõ#½]Æ^ëxn¨”^¯†­Ãe¼øÖßÖ‘rƒvÒR³k¨>l2ã÷•u÷ŸÜb¹ÓÜ×­ÞtR¹ßz"Ò×¶Ü…®QËTV]Yßp}W»ms*¨‰jº©Î»ž’gy|ÜŽ;ÑtóÎD¤;&-Ó¡õTw8½Ãä7މ¦ÃçóÛK«Ò”˜F™Lð Í)®id’¸ç\Ó˜z™Î&Å¥º|ˆ*>wʹµõò9ÀšX™'¨Ï¡tG¯ƒ/[Ýñ7Ii¯hè¾!¨wI]ÔMh(…â¾ë¹©"Ÿ¡üÏ/9 E~M—}Ït2ÏÌ)øQñnûËf¿Q”ŒQqö£â G´i!ø‘•‹cEí4”o~vô›G‡¢ßvQ[phÚ“‹†¡m)H£Rf¨ì8 mtÓwg!ÒSÂx™PîïÔZèÌr* †M€xú Ô‡[òkä™EH›é8ö¼T²´yªŽ|¡Ú çµzÅ‹5Y™¥eEJH·¡ ËiŸ§}žtçáQÔù®ÅÆÈD†ŠßÿÂýƒýë*³y‚–øqe¬óSHHµQ3#äü†zû¼+߀¾‚Œ}¸Œë€º-h³p—«7Hõ3=0~)y*BæjˆßÈÃÇáh“Ë9o÷K¹ÊÕ¥Œ,ã<ŽŽ´Ô–¯CŸ?˜¦¦E°q1:,6ƒJ>Ÿk(øq•Fpd‰%«¸¯–¥â»ßà0¯ãæ¢eè‘–ßñ%~ˆL“õ®;ⳊÕ¨æOISóo`Âu^ Å_Á¤¯ÝdÓywmI¯xÒVÆ‹?Ô7,áÇçÏÏÒ*ª?oáa½†"#\ Ÿ¡ºëèÏ‘)ÒPÎr< ç-°9ìyw?˜—J\ëFW?¶²?j&”¶¼Ã|L­Kœnk°z?fë8ÎlöšB`Ûo`n/'›í(û£MkÅ›e³Ê,Ùn+Ùø²³g8ˆº{T™#ÐÇgÏ w/«”ðNéOÊ)Çi‰þ™šp {Ï6·Ó¥ƒô·©½«v¯}> •iö8ús°Üæhè%S‘ûšìŸ}hùÌ$Ƭë ~<5õ’4^ ÙkgSÙkr׎·•mð(‚m,mw[EŽH\ɇ¼¾I6>Öãy³:ˆ'ÜÈ3s¡K°î˜ž’Ì‹î ‘þ¢lNÔúÝVó^yi¼¼Zö/Nïe²ûQwš\‡^œ0³¨:\J4Îf‚ÏÁÿ‰-T¿kPÏ(7‡+ÿ:ŒsÃ"m”ÐIõM7Ÿë»0¿š &«½êòÇ÷]µÛ¹¥Z˜'摹 ïÝVPCÜ©àôr“ÀÜמ«RW;“©øÈ@ŠªXMº¼IêÞp™¢ÔÙ43oKBÈ7NI7©në{n74&ü}¬æ‚t ~ÔÏ÷ì«èȧ#M=<õ¶©Õº!øá»ÿc*­€b…ÇŸw{Š~ž‡¯~`î™ãp¥ß¾Ãq»3ÃL1±Á†л½H0Ï–Ï‚æäTì;«>—™ÚÈ)è„úÖùó*=­§zpöË@´h{œN<ô.9tuæð0$EÿÞ5}gT¾Rs‹3Ñ=còòeM€”i(œXG¤Ü|©¦+ÿ‚5¾ )n ÖÙ.šÍýòWŸÿBµ{Îuß\ABsÁ›ß)•¥TtmYL×ôï:¬ŒãΜù£2õ„v„¦›˜KChÇø1ßÙ­b‚¹ ZE9 2`/jŒQ‰‡TМïbßkSz¾À“y7ß@™‹±šL]@¥š´T¿t«×]õ6-áOS€8cІ[ØÓ• ú ¾Æ d·l´+%¯ìFþH+³1.n×÷ü’5xÅ=8…àOê§Ÿ›b4 í[ÂA'‡#™†Z¾„¾Žs²PÞË&{üÈ.À¼8àfÔþ˜”•*ÑëOžrçÛ<Ýju³-Á;ï„âÏ”2jÞš•Ü;g yõä— ¼ÿ#=ÿÄ8 Ôyø?—*êÏ?‹f«Yñ΢-œæ]PæR²†_ò]­ ]"«mu9 ®¼•;\‡+p=ôå>½ÀÛÍ» ZÕœünÐh$zº1xYÙl6á·›X¶õ¥…L·½¬²1íI; >üoÙk Ûœð Uy‡–=ƒósT/«{DEÁ¨‚¸”Fn#”¡r\*y£°ô°ÆÛlwÛgö6ø´ÍÞ×¶’øhÁ+ž^¶79LÏOî<¨#`¦UÆèŸaTò:Ú+¶žMm=d™²Ðüv½ ¥‚€~ÜŠ´é{þîLŒEdÌ…Gf{?溷´ÂúZ'µï5J’{Êë#}dRå%ÛÉönxWl ¯€ÝÀ‰½ÔŸA+Ìúƒf•ƒKIÂÉÍ–//»ÿèÖÿÉõWoä_ýô†omOÀj˜Ê§Kè7nY×Çé̪'ø±Jsc¹ß÷túÎUÆ<7/ ›¡©¿¾¯!'­×³MLsKGÓ‘U¡ïjgõÎD¥æGjC¥é¾® /¿ÓnªÑó³ar?Bvÿà;§ŠKºùü[+Êõ«Æ£á¢¯ë4ßÕ¡3&9í3}ÌÏ:$‰røQˆÚÃÁ/€÷6ìûdŒ~È ×áo|ÏOÌ‚¼ðÂÜç¾ý„•IÎ\3‰:'ݧä¼üh@©ÑÎå`[.Ì÷)//‚oŠwª@WÕ·žßÞAÅÀœnŒŒ¼ ‰ &|xLßñ4Ð.=§A5?(ëy:Fiàù³ÑCóƒ‰î¾úJ­ýÎw¡ÉmžA}ÑS9°’š¢…~T„?€%-Áßý³À—´|O5îO ?¾tG{€sF½4‡è¾mß>G !%Y>D·t}j߈“ñ¬×ÞàG2ðí RÁ‘/ðcƒ³O¹æ%ƒý-¿ R6¼æy&7eæøíøPãÁ¼‘ŸQdÅiô7ÚÞ~až¾ÿç'?Zž?_…\Q€m3‘Ò–ÂÇ‘²È®‘*P㌒Yvâç¯(<·G™Æ³ø’iù‰ZýŸí!²V5¼gF´§/ök´¿?‡’W¼Ÿý䀬•ó¾sò¼KÉ ð%:ÇçÛ|˜/B¥ã‚ÃÏÜaŸU|ªÚ‚€§(4ûžß•÷ÑIž" dÇÖv´ýÉ;n‹yƒ‘ Ëpyù?úò-$†íp #)½þü•3Hä–Ÿ ÑÔEµ-´×ÈD©)“AKã ³™í,YcWË)ž&/$\/üq_{‘x¦}öùQ¾ç_5¡˜ ùjËpóФ€w²Ñlyù]üìH(}j{Ä.° áÃoÙd¶ú²*/F";€yÙƒ3Ó¬ ¶¥wO+æxð-#)›Ô¤çzuäNö%~o‘ ØpÞ$»Ê>²áù÷Ú}r™+¢d@?»¨{‡™´¦@Pû9Û´GÅÏŸ/àhf”^E{ ©ÃÚ¨¶¯}`‡Z)îƒt•6™WA–I6iÅ‚ž)ŽYŸ‘f¿ ~ŒußëfüÒn̹uæ<ÒÌû§ôÃxüV„³9½ãÞQð£±Ãi¼¢vø1F!¯1»á2Ë"]e2ßw„ç¿g‹î®v?>Yòµ“â_çgàG 5\Õ9‘çs»¾{z˪‰j¾:®N»öWÈÿ×Ûg»ª×íóÝŠþÔ/Tu·š ›”ð¸‰tŠÀ'ć| §"Ðô· ]¨KtiSÑÝãú›ò4×LB*ªÂçï7£]×¥áPàN”ËwO§"`Òdxß 8`ÒÂL1 Bôùƒ‹ÕbÝŒºÂom¤yÐÍHðw¾ç™Ì?ZÂe^Àl{dîâë7óícv3if£I€Yúžâ>µ©=EÅ […¤Pü¸BùxÝ0¿ÓBÊOÛU¢oT¬¬²ÑNôYiÚ„=ƒ½OIàðã }dà×ÐÄ t_±y6þý¬y©Ã~õ ¾ÎhðÃw¬j"òÀQJK1¨94x%øñ’rÓàÇ:Õ„¾Ý‰¯†¾'P™ûêÚª=rBé æ"%æÃèó]Ôù£&úê%àS yýšçÁ §ãT®¡;…£Sȳcèâø±ÒÙ©’˜§Èlý¡âÑŽæèýþàÇbèÒ}¤¤PPø+P÷³ÖÏDŽézÔBû×jO Vo¼úÃÔ¡¶È/«¹7´ò(¾ß̉$–,–‰všD“]œGJËÎÈ‘81GfÃo?ÃHwÖ‡t(ä¾9è©Ùܾ¸òå+Цq²N&ÉS™a]YÎYå2ö!'âG`ËNnÉù°ÿžúüz[­{ò#Çå?¹#xx•çÉ\Ï©¤=Ô/…÷Æ–õüÀ²2Lž€¡¡ç÷xOàmpEõçÇR/è¹ô˜|ŸþÕñ:ÂKdœÔB½”ò9!£Ý.{ì¨ñy-'¸&7à†| ­ßÈ‘×rþ¼¢SÜmŒQů¶5‘¨+4½£}'¹@ÝÅv ½ ~|°Ë ²{ä"<Ù„zÀ½˜å ™éï ¶%q¯ªpð–{S ¹C}twŠÁU¡ò‰íLY.Mñ·~v–½mÃØÞ2Ï®•í¾cG’ýèû,•ÝTˤ6ýƒÚ÷Ä9 ãÀ}UÅ:ÝÇ·áKÇÉMû«¯š€–uF2êkcÛÃPþÞ’©$S%#òÇKÌÓäaU^4>É‘?–~ÈvúÅ q£xd²ø™|Wqy›½'6‹WÌîâ^»ØÎ•žršÖÓ1³î.?ö.ÊÿÊçGyîòOîL}ì$tÝÉg²]­UÅ?ž»…ï̯¦ªꄺîFÿÇ'|þ×ÛgŒÊenƒGM| E·p«»ÛÁœæ­N©Ó«âßÕÎî=䘾&:„[}¯˜ÊîI¨Yešnz˜·æƒùMWQÅN÷¾*B}â;PVÚBxÕ 3z(üá!äÓq˜QÇÍhSUÏùv9g­Ú¢«"¹0¯ ä‡ïZÏòð¶ãè22ÎmxûÆdè¹ï3ØBðùQ œþf¹‰5~C ¡£%iœsÚƒw(¾ϦÊÈ£è•i€¹Z˜n©o]¿Û@¥Á,­Œ×îDÒHLÃÒÁóÇ>¥F÷?ßn&ç5×ãÞÓ1ݯÕ\§µÛ$ä{¨ørUЇ^ ¿]zW–@°‚&á§«¡D¾{¶›PóD½ùBµ«PüæZà“[£FcÊŽüáû´Ý¤üœB™Úú=Ü|/pn84-‹^|nüèöóÇEæ6eÇo4âð|Äiø©Â½¡Àà4ÃP8ú |Y!4FÜ÷ ú–xUcÚ¨ÃüãJ«N¦Z <˜ÄEyr©²ßB~‡?Z¿RâÉŽ/eä$WFO&Å;×à)|?˜nÿx~{€8Þñ Ð\þ90&?/"Ky¸ì?îÉX«åW“Ø2é#;ûó)> :…‡ 5곊ÏTmðãt4yàyûµPÂ9²Q†ñnlgؤÞs›×[*繦ü-·9Gæ©PûmHP¾3½é‚}þG€îG?!µ]£ŠÐý{´šWÈiU÷=wª-m—ÉA;R–>¿Ý‘–Ø×fh]ïæ¸²ž™÷ˆÖu2ºuÜÆƒð®9LlðãoK6´–Ivœ½')¬õ–Ø*H9×l (ôYîÎKП;¹câO®ßMïîQ©ä\ÉÚ®;Ðl.oÛM§ïG9¡w¥x ²¬˜Ðäÿ¸·óâø²¿»ºêÞ[»ÜÝ%¸‡Ü !‚$x`ÁÝÝÝwww—Á÷ôüßEØ<»ûkB€¡¦ººê|ÎùvÉr8æÛ¦8þ“B ¹8gƒ{PWCiQ‘;–áGÞ @sÀŽôˆnAÿÊw×d1EC¬á-g¦Yb¢SUð(;”ÕŸåŸuÚLë)—ç+T˜Ç“ƒ’÷QÚbþæ–‡ÚO%ðõ'P“?)/|p8ŽÎÉàì5¨±ÎC‡’add—öé‚ê›Ï¾ÿ˜«Î™´|wÛ—ö€7±‘àêÐbªÀ—áåÇ#ÜD.™CÃàÓü]µF‚£5Í9÷S+J^8±ôusx»›º sUÏoàOÓ#=^G”µðô©¸/Ên íˆF.Å„|‚ó¥nãï 9žkB+€I Á±,Üjô>åe~¬¿ž, û§ŒÅ×ü 6¯Ñ‰ÜÁÊ›é6?ºƒn‹‘‚¾å½ Ðt´ý~ê¯q“vª$‡:ûçGÍ…c 9Z¿zJÔÑŒ Ö†Éôk“Ï2/gF²¿vcøñ„Wó_²W†#üiOA‘Èeþ‡ÓÃ+D’ÇPüÎ\ ã~x"ndxð1ÈzQ¹êבwÐyž/‹d>'—&v øñÌ–ðúË&þI&É%Îñq')Á§Å|w’<Øl÷Kz úª¿þ¼¯äGt†7ËTùy(‘¼´ƒl»®º‹ŒáûŠûqnˆ4ö5ŽŽ”ò»ywîP§¨jAøO´tkžÃåMª$Qmg«l3i&Sm{BòÚx^O›_þ–+ S>Ù‰çÔ÷<äL‰Tðn¿½Œê¦› -r—FSÙA»ôßÔ‘³ØGàÇi%µA¢qv¥½eŸÈDYl÷HÛù#)ž¨‡è'“ÑL|{¿‘Ô^ƒ²¢×5¦?ùª™K%¶WÁ†õúÚ$ö¤¼@’ÉckY³?¥™gËEÉ%¥ÙAv«j‹>øîüÁuÊ5NЙiÓÑϘ­"Þ%;üÝ!Åm ;Æþì­õ"x{lrÛ–z©?z#ÝÝC¢½aÖc …áo8ÊdÿÝTjì{ùã–“A…þ—ü¸ê WŽ»ß-£ÿÐÏ”ŸÆ9þy¶ËÜ×îEÅêëN7Y„ñÜÊ„¥XtÇ”§íºªž§z©mú˜ifÒ›Ô:ßWž?ŵš'Sþ¢ø¦½)¬¶¨u¦]5L!xá߃í÷¹ë†“S)Ýysüi~hgK^FMèöß0ïFÙjJCI—š^zJÈÅ93ÜڟÚnk=zD>žŒþt v‘îÿ6a@6¦lˆ5\å,3{‘ØJ’á2|Y+€"¡¿Î†Zäã*àÇðÎçÌ@Р6Ýq‡¸þüÜg]¸çÓø5Æÿ§  ü˜§ò”μ-ºé…ÏõùÞî-v»š¶È'r%­òj1Þ ~$—™²Õn•Üòìáb¬8 ‚þ⻜œþ0}ƒµá÷µÉ„ ù4†§À±\¢QF"kt”2BžÈ û[S"ËTŽÏù9,|þ%|m9ôSã~¸þã¹[›æÒY8×|< DšKÇø°ìђȯv’Mè…ñêxd7•~r=' H<9ÖÌ¡hú¯ÊÛ£â_£+Ôt  ;|UV "]<@þ(`wË3¸ñÈ!Kì+Én¿ñÚRH mä \Ÿ—q9„~_ãÐä·u˨ֺ)ম£ge’í4X÷¢ŠœÜzÞÏvšÔÁý†óìrûÊÆ²ýd´½/ñÀO’¡d#ÉfÚ¼­_XµJG† -_Èg ÄórÚ¨Þ[È•óöQ%ûÒzÈ3•íÛQ.KiÊÌ›á_â×Ï}ÓÔS÷¹ Ú±›~6½%ÒßZ*¡mD[ÕÖ°™¼‡^4ﯬÍÉi½"v$Ûå>ÆÝ ³ =¿|Oy³ïÓÃîõŠ¥Æ«w}õ‚“é_ï¿{Ïé§«n6]NŸSþ¹KÀî÷¶»S½t¾Žsœqn óJxÍ i:™î¯:«ezµ)o^鈺„ÒÉ^aÝþZq“žq½ÔMuL-3- ËgM9x矂Í(ùü}fPžögóï„ûüšÿ+O‡ûÝG76‰©:¨4×´þ¢ü1Óݪ;B1£@cð#R!$Ù‘þY ôiF1( yp¥!ï°2ÏY`Ö™à† âG}Z ½o€Z® 2ì¯-©Éé¾™DKQž†¸Šf ›Ž õ‚öoÏLý©(e£Wðåþ R.ÏGÞƒÚGEj*Fq©OíVå_ç1ê†)½_Œüq’ SDÍ߇©*üw#x¹¦|ú?¿’ÂÏÎF+W3·ÝO­i½æD×gL$hï*M¡ã¹’bÐ1h~ ¥7uX™ Ÿ›‚á™wijJDMbþÉõ£•nXšKñ8îÀð,êÀ×õ¢äì¿•¹D‹PÛ”P÷u|w›·#ÇÌ i4ÏÛ5O>:µsˆ[Ít³Jó~0£5ŸÆ3ð÷æßÂO Iþ)Û$¯Üà"òƒlãü 7¬:ÉÏ8µ6ƒƒµáS÷™I‹ïUˆ7ò.d€Ah÷IZüóöþhÍKYn_ð^®(Qd<Ô2)§“[|–Gp=úÂûüêŽÛ)ï0¥æÂ¼÷¼–"1¬–ýUZÀ1§óBƒÃå ÿ(‚öoÊK8꺞âéxºÃå=Ö½é5Ý…+ø n-à#(­ øUž¢¼‚v¯€:OçaÉÞçÝ\ ù㇗7œ¼›úÞûºNBõ;Ååîè¿UÑâ¥ÌVó‹„·³¬Ø¶ÒVÙ!6&¼xo¾­"½‘kÊÛzr‚Ûò4N!×Qò¯hà oë–X­qcr~‰öË&ƒ¨‹Iå9™ åÕ³s¤‚ô?Ùy6ÐFŸ–Ù{Û6‘˜’’‡sÙÊ·0òr™¶oëgÕ…üó£~¡+Ðí<4Vâxim2o*rÇÙi§Û?l#ûÔ:ö'inW€›Ûä[ù‘-úw¸ÁÒàÇÊ÷ÎtÌE³c ¢ž¦«äñBy«‘ûn"«Õ±?Zñ.zÚûÁ+cëp ¯ øÞ[ÊKŒÉûÆW¡Š¸çäÿ‘óÏ©1ê]Ïzí$UQÿõüÝqʸ'ÜŠúOË-¥|¤p»ÛÜGîñ+óÇ6g£û« ‡±~ÓÔ¡@]L¯W=ÕN½×Ô7ÑLJä|_UOë&¤<4Ì$£´€ ˜_M^µNÍ2¿á ÜÂw(C#tȧ‹û—¨ê‘ÛÎû$Æe<Êð[­h%<†øû3¿€ŠÿõEç×®p¯éŸð/ãð xïÝä¿e+]šBþ¶trÒ7ð,¯LrBÚà,5k¡’%Iq-¨V#$š8ÔÙx14¿¼q>@Mo8öZtÒ B‰cݸPäPæ]t õJćRÄç<œN|Zó J/À»ÀgEáLtê3e:ÿ<G† Bû(#ÈÖÚ?”¾ç(\šZÀå^D{NGBF|NS]ßå™Pÿ$ȵ‘$:ã¹Ü5Q¡ûŸ:ÿc¦àŠy„g¹*ùã7°·-ÅD©‡Q?²"uB‰÷x…âYAówÿÄsï~\PÁßð/q;˜*È0Ex“)#/B†‰"ƒ$À¾–lÈßIcY„ûöçïnâN|_ŽZ~tÒ‹Ö ù©?æÙø±im?õ`-adwö÷=”pö }Äû¸¾<ã±ìïUü8È}¹µ¤ØîÂ`ühuÔÊÅ“‘{Pï–}rµ«f‡Û {]½±r«A¡Iê¢Mæ ;Í¡ŽÁ‹Ä ¶ÿÕ>Ý¡ÎãYŽãÝt’·Édi*GùÇðV€åŠ7?šˆ²Ê¡7îBÚ:ÁdŸ7ñÞ–WÌɪJ"‡Oä«T ¼ªbv˜òBÚhÐõÖ2Éη¡lR{Û.¶Èo(·ˆýQV ¼Iœ)ɸÙ{ç×&RgÜ@ʃq5ˆ2Ê>©[ ÇûÐþl—HqémÉÛe×Ú»6­+óì.IIòð`N„\ó„Ú˜<¦õ{üX¡ýw5Ñç.³ïo›!cUfÙoí9µ³Uì){Ù­¢mo;Ȥ¬&“Ï•¼BÏe¶¾åÇpõ\_731BçÒjjoZJ Ïñ¤«\¶lyÉÛãÝ·y¼Rv(çðãþǂδ™w¡Š¸ãLð9äÿ×EÔþ]2»ådV!)Ê箇Î(õ\€­ô}•Mùû åw÷¸›\Ñ{•U_·;äg“ÛÃÄ¥„tÛ4¤+:Ÿ^¬f«7ú®©fÒ˜dú7ÞWÕ3¥›ŸÒQ_“ƒÆCŸ²›z&©z¢Î™.tü0?ÀKüñ…û':ùUdÝ6ÑiäáêtŸ:ÃÖ§z žÿ5šOGÍÏäÐzSO¹8gûDw†7MÏë ‚›©)4´ ê8‘<^ÀëÿJÑ)4¿¤Éb ·8+Í"P² ÅâÒ|ƒÒŠ›‡z•âÊðê•y˜<šÎR)Zâ.”ËÜ¢´•*RPäžÆDÔ-/EàL G¸æUàÐdœÊ¨}Nr‘?Âö ÚVg–ÒTùc!ÒÕEú–âQ ª RVb£\º½“FŒj´cª”¹ûÉõƒW°ú,òGŒÉ`ØÏÈEÅ)u‘ZóJÞH×ø¨VJ.£±½µAï6ÙÎr˜gJ û®âŸö‚´u—J?žfÞíû]ÁI¥ÚQdî‰þ[©'¿9jþ–g2ÆÆ³5d” ·Kí)½`ÛKK¹nsãÏ ¡¶pN?<½ËþÙÔ7gá+ÔÈvj«»P#nmcxßÛYRY&ØÜ^€=dïÛDv’L‡êG°@áôàpB™ÈÇi–ÉöAþX¯C#íf¥¦HmoL 'â °±¼‘6 c·Ù’ö/[Ìžµþ>¾í*Pn—ä’ïÙ?±¼9=71h“9ø–›ÕSýØÌÆHŒ–ml¦I2Ï?a°Ÿ,–§2%]´ë¼Õ¶ˆWÒ.áÌ^»Ì.]îà_\3P‹ œ’cÿGÎÿH¤ú¿·2õŠ“A½úï¾ü¿¹®‚÷Ô&7³®¤o© ÊŸoÛ]à.u¸‡Thõuw7Ï™îV3Bè‚)Cótý»©æë-&«yªŸ¸ùÜŒ_ùù•}Yj²Sè•2#M u[Í0?Ñ6sÊd DTó çï*UH=v;A?–a<Gþ›þJ²ú/<ÿДxÐÄ«fºé¤G|Ayþü«šÐ–èè[› ÆYàwŠA¯†Ó=hâ-:@™Qb$zhú~Áúóg§ 0©‘"pb¸ÞZ(9>zØ*ÿäL.б_‚ç"A·§•ô]v„Pâ\7;¹$¼Öq(VꇼžÁfĈ|žl€ÞF¹)Ê“FþøÜÎÇIê¥)Ì7Q—î DÏD”¼ªø?:{ßmع´ºEcñ¬â¥?5wŸKß49_-W@É3ã× h¯$Ðû4¦¾62ÿâ¬Üî µŒT©A}‚q§qŒâ"HÝ8! EÝ-;ím©({¸°’•AêœßùgÞ>¥¤_L×`mèj‡R@]ŠóvCÚÁ]ŒáûLðîƒe‹ÌmWÂ×ïæ:ÐìþГ” ÿ·-B?Qwô‡Ÿ7¹mЗé.n ã½tˆ·È™Á,Ím?›Ô{n+y¿#?ÔD¶¹ç•°#›ðöÒÊìüAÿôÍðA»—õà‘¼ºzSæJä™—ÁkóÛ­ðå‹ä1 N‚Ò5¸)Ò–+wúðæ÷>¿*âäQµ(øqJ£v%Ì^ÓZ\¤¢gRCÚ‚‹lD[ž³klKùÞ?“툚v•JÈ9´f_d¸žoëEísâ·>€k‰/¿ÓDí¯mÃ{iì*é,Ãl2ïøa½Ä¶l´Çüw-[R!é%–©|Š&™æ:¼pë×&/Ƴ¿Ë)à¢Ø^ëy5mV[µºl‡ÙÄH4O‘ÝrX׫,Û$½TçPÈþµ1’_˜ýfÕ[~ŒTõ³Îf ä³Búzgmo邼Í«YñzlïWÛ”¿E n§ ÝÄ:„üñ ÁÈi`¾ä´ìÿéë5î½õwÔÿzÿö«Î8Ýîæ×…ô]å¯î[á$p§¹cÜõî1í+÷oŸëLu¿7¡) ]6YèS7U?ªEzIhîèPºäWžþZå¦)&”dÓü8¡&àÙo6+L<8벺ù•øÔÉ­¢ê–P¶yPÓïi7Õƒ£oHGàjÓ^êMá ŒgA¨úzBÈÅ9ëÜÕº1h~QÐûócPöá(ëµ¥+ÐÃl ÇksÍô0¿‡XÃÅÎx3ß$Br9Ao]F‘A·¥Pé|ðêÇ('ÏGæ Å­CBÜæO7úu ðè j’€ü•öß’EφŸO@!§‘•š·Pzz¡Ó}vþî%gšznŠð Ô©¼o ¾ßˆ&!AÆiÏ?ò]8Xÿ]ÿÜù…šç4ÏÝO?øøÐ„‚â_¤òÈHÀ xÆÇ î7 ªj–yü§â¿©~´Díч²bþÕÈ ý™óBÙzÀ½ŸG½ÚrIð»æ|Ï# žÌxõàGXðd&(7€¦â9]Ñ7Ô…`åuu›™H=¹ù·4¨.ˆSjÈa ö í) -,åàœkà¾cáïZñz$ˆ”TÛt Ö†aôS“-U f%Ÿ?SFÝêƒòÖëqèéýÈSy-­ãk²JêËÎõFØ”Ö_§1[®ól‰g•¬BZ¨Ë×ø:[I‰¼4×¼ûÜ£š“QÕ£HHNw©/æÊæ´©-aíPÊV“V2ÕBz«oߨÕàÇ_­î‚dó—QÀQôäØôî³ãhê°Ë\ŠïûçIÊš©"ñv?ò FÝe¨}içØÐùD¶,€·a"Ùåä1œ5=OËàZß}^~ÖÙ ~ä šu˜·ø{9HXïwð£‘MhsØi¶‡‰Ä`_¡¶UìQÛù0½4á0‘m):~l7SÞòc˜º£¯˜¡‘Ki954C%½wΑ!2XÞH?›ÏÆñvƒÁ™½Ö¶=gôŠ!ÌÆ³ºèï1jv£Ä¿ùÎk¾d·ïÿé+‘šôÞû‡Nò½þã…3C‘;×-¨Ké7Aów€3‚ί݆üñuûïp¹%Í‰Ž™4HGÖuUQµE/5‰LAgu3}U=C¹Ñ¡ocL(Rwº©ÿ2ß©5j™©M+ÌJ“ ][ß³îÓ×K§ˆŠ©{@åP_¨ÞVªÃ£J·ë~Ц£p¤§MºeF™š_´ÉIw‰neH…Q·Êšz˜|8݇'¿ÝnDi)=1¿™š!Öp¥³Á,6IÑ·Ãr>‡¾©à7ÔrøQOS~žLOMP¡]uCÚ·¿û=ík!e¦t4%g!âÔø‘z1váo6C[(ü}TM}îü%gøQŒ/à>;Ãûæ¢8èûíh>5@’©F¹ ?‚þÏB]×Aã»õ¦dÆêà³cýëŽJß5¡Á±£ø·ð•©ñkZ´˜®n(ÓF'•IÜ‘³ó4ògBý…,{ýiÞ'óÇbg‡›ÄX´Ð*ð"DfiBíŸX_#gUÄ:ÇÓø"ßÖÏ?&!ÓL#nëíYßÏíbšâ.‹@Áøû òü}¾6ð Ž& dž=.e ÎÁ£à¦ðÿ{~|JHuMïòÇk“}®$ر—gñŸH§Ã9Tn÷’½²T.Éû yã'üÙxŽÆ™ÁÿmJ_.‰çÆýðü¨kn¤ÿ¬_ßáätŠ£^G‘ZšÁß&ö‘?zÈyn„Tòù#9¯f%;‘}àsò[ÿ±_ 0|‹žRd´Á´›ïÉ)ü]¢@ûòÚƒrØDIó%¼½ƒv¬ÇµøGWò õœoþU~'‡ªG2å5F¦(Ž,?IÂØ¬¶…ä°wøQÀÞçºB¡•—ùã×DÛ¡òs;ŽKãßÖí³× ‡zŸ~¥"H“ôDjÎmD/•],ƒ¤½äí°›­öâÛ^2É>’dv¨$–„< õÛÀ;ƒ>¿*÷Þ,£m:*\]C×T~MY ¡½66‚WÍ&²®mc@BJmwYeÆ'm$Äo¥ GÁ¯Do hÛÍâ÷ÞŸ?Ò·ÌhZ…Þ´œê›q’Õ{i§ãN»IÛÄ&Gɽ¹6£×Ùçl^yÐiJ¼‡µÇì…>4࢜ˬùô°û_½8ƒÕ»••¡T½â§-ý 7“nª/«,Ê?4™;ÏÝà^wo¨°êÀW•¶Îê–3þÚÎ)ðq×u\½AµT3ôbSßd6It"7¤“W?¼©Ðã2U†>…3…M%ÕJõ5•i®ÙhS­ƒïY÷éë¼G=pK“C]Jeª GÝL _¶½ê®©'¾Òü¢¿äDɹî] Z”žÖßMʃú¥‡ru€¯¯D7) g@iþJüæ&äJf8+ÍR“ *Úµ›JÁ%'¤nàÒ_T^ó6Eå pà]è8U§S!îŸø›|ðwÙûELFÑè6%à üØe=毚 :0!¥4ôÑ\¤ÿº¦9íÕ6S–#ð!Pöe ÐØbÔ‹üÙ¡ù¡<õ@<uú\ºJáÀ’Y¨wsäO½??íÌr·Ã%À£*àGð++´-;+Ž‚Ö÷ç_ àbÜ 5û“~7N˜àL¼Oð£Ÿ3Û=¥ ;“òfjEmà4"q7n†òê E-üüh>ÄÇéßG ÔvHP·õYœp#Ýñ¦ÊHÉ;ƒÖ€ß@jŒ¹‰¯p|Ù/›í~É!G¸((² ùä ¥þ:ŸäœÔÇŒ ö\¢èG¦,õ ¨ß|žÇmè9ýÄF’ËLþSK¹…2Ãø{ÁËkîïPiá42ƒÐHJâNþ Ä{nIŠ–™ý¿&ñ2ÚÊÇe­Ü¦×´»ma/ª×Òë‚ßç–ñòË!Í.㘲 ”ÛŽåÑî°2W è–#oÆWì⛲B:ɾÏá }ß#Ì·ä%ï‘ײ…qUn‰¶|ÂÏfòÃ÷òGn'‰JMÏhz@iÞÎUÌaÓA®Â‰§³?H`ûÙ7àÇ »ÜÈŽ|S zw¹;ÊÝá®Qö£Úþûë¼³Ó­Í G{ S+è6P3ÔI=;èüÚën 7¤Ç?¼*ºQèšlRBgJaÄ'4UJ÷„ùV›u&6šÂ_xþù=§´J¡Øœ]ÍC¨2¤´Wû{²î¡öôÚ$ óðLÅuß/(o½»G7‡ ^ASi-å†ÌJ ¢û¡yðÓY)rÓT0UB¬á=g™YdâÑ÷P»¤àGUôÊÈ\ë@òq>x°B<N|þ$7qÍ ·,ùd¨†¼âïX5ŠÊe›ôœ–c#5ø+‚,‰y=§«æÎ¨"¦Ì#Î:õÂdDš e^‰£éG0x-ZÐ?A;Míš»÷½_Õ™òšÇî§ÎTV*>4Õ¢‡0’×Ò8ʇºå¥Ó”–S³TG’qÜ›cq<“¦ A\2ø9¶~rýà!7y‰šŒ†ÚGàóø7Àš|H05 ‹kð=rCÛgøŸ ‘ðthè\|ÍPä£ZÜà+T–¸L}ð¥ïçÝh÷‹øÚµTéæ5'”­ÐÒãRê\D²Ê8fùc× š!tX°6–³Jò|]þÇ?'Å?[\6óx¹(“$‚hŸ@‘ý™¬ãðlrr"9Œ<Ò—+ûû{ÿ¡tkÐh/4?7¯@ÆÚH‡y?ê5tëýûƃêy#äW–žr›óp<^µ_Šï~½§T°ÕR¯àžB’·avÁ—¯’ÙAù#£Dð†ÚÌö4òÑ9ÃS$’}ÄõFþ^ÆÈQ¤?¯17Þ–UÁ)«ZRlîÌ7© èVØœ35å± µ·¤¢ô•È÷¥ˆõ¼õ¶™ “û6“Í#;¸6R YËÅ‘IߘYoËË¥î¸á91?ƒ‡ /[è˜îN“9}f !¬?Þ€DÓ¬ãÅFþXnwˆ‹_•øïÏIðê†ü1ì=—}RÇ¢üèïMh?7çhœd÷~µQ½!6ŠÝ#]í;ÞVðí) íEÛBöHÉÆúQ xœrôÔìxoýàm}Î,Âû³‰góyGAÄ–ðÚö°ùm ï‘wÞ÷jÙÁœÅËi÷ÙN2DÎ ¹Ÿ2‹á4s"mÆøœ_ûÀùë½9C©LPúWÒE§¥Ú¤ú¹FÒû•ÿ^v¦ÉìÎE9 M9öU¥8]‘?¶›7f®ÉOtQ}œ[­—˜Ææ•Ž¡ã|%?ΩgFSSóÒTÅ(Œk2šüjZcªÓDÓ®4ý¥CþtÈ¿´J¬N¸™üÎ@ þYÞ|–ºÒ>=ŠÒ6èá“‹æ™i¦…^ýå wèÌPªä¼™êpêÝß´êâ%e¦‡æ‘9c™Ú!ÖpŒ3<ŒCEð¯só*hýtøín¨ë|p®ÆP<äW¦?í¢Ÿè®û¹µ~ÿu•vCãž~A¿G’@ÏRbRœ— s&öû¼N9ƒiè’y®9ü™2g9?ª‘&¿;zÒaÊ4·®(oŸžLð5¨põK@«µ \MÊb^¹G?QZVUFß6è¾s#$¿> [)äÀ‹T”÷P5sW§•ÙüòÉ`Œ°_ñ#4øæŸ?8å“û_-q0Ï)´þ;¸÷×`ÇP<•ÔÜ ¾6"Ÿ Vô=²Ç,ÞŒ •×Ò$°íg®-ÖÝàk{ºÁÆÁ”Ÿóp.OàÏx+ÎÁ ‚²WÖÚmRn<ƒä’+\”ïPгÔyg¡öfv°6<æš2ÈXð÷¡”ƒ‘W7sx¹ Þ ƒ»€ü1Ú>åcÈ Ox §A¦y†,3äŽTr¸zW@‹_Âý•„k÷ß4\å‰2Nñ72À®°i¼6)òÇ䙉¨¡ƒL6‰Ï Íá«Ô–¾Õ®¿ oüׯÑçzðvèþÞ)p‡û8­Ü´ln»_öÚ ²•×Ë=ä™h“ÆàÛî ]ªp7sñmY_U ðã{´Js´HSäéárJ–ØçRWúã×qÖ@›=o¦­+Ó%ÐfµùÀ  ¸oOæ wà›æÝç™ÕC×@a…gSlÙGKõpÊÊ-¬õ²Ú ïk¼ ÉûŠ=Áî•gÒüH΃ù·æMЈRæÝù[qÔ ~â[ÿ½"_6=h¤öFØ,Þ6reO;ÒÖ±%ìûJzIsü®±‘¤’­¸=ZÁ­3‹Þæmêø1 yv9\ÉlsB ¸“¥¨Ì—‚h»ßmKï™wÆÆõ²ÙíÉûɶe¸Ü tÖ,ÃÓÈŒgÊ|݃ÿ3—VýÔ»Ïý_;Éþõùƒ¯œ.ꪪêÞs/¸Uê ùW ÝÑn]·»»D…W›¾ª´#Îðc‹¹aŽš &>æ–WíÕv=ØÕõ~÷^Ðwøò+XLrð#6íÒeàåûÇMYmÚ›Çf‚‘/<ÿãš“^ÅÓµ ¨‘ÊC™+ò@ªJguZ•nA‡MBÚbZšxzÔ”7Ím¬ Ò4$ÿõЛ!tŒnÒ÷Ôª}›F‚Û¡±Q( šŸL‡kxÔée&™PŒ»ƒçí"›ÚÐøý_¸ ¼srþ JÚŠSFŠ¢CjÅqn¬RFQÐ~U~ Æ ú|$-?Àß-@2Y†D2 œzf¶ëL*ÅgÊ<ë¬W§L">åí´J4Ô£.Ú¬:˜Ò˜CQî#ùóšVáÇP|§ràÇy7øìXÿФ雿0Zk=5ƒwë‚4XL:…Üõœ’¡&±ewç”< (µFÍ ~üJó?ÁEÎN7­y=m‡4 ¼ø“Z‚5 apBÞ‰üR ny6Ô1§ãWào{àkšS€–×À­gJ£äæE(¡(r_K8ïädKvÈpèiA¸ûTò-œs}~‰6ý‹kB±zð%“飙v®~`2ƒ%fF  ±ýóϯi“¦ ÙV6:ô¹´¼Æ×dÆÓ9ÃþnU­8§GêÉF÷Fi{()˜5Šÿ€/¾Ì3d•,çRÃŽ·1½ã6–·\¶sy„T’™lŸÄ½Là}H^q‚½-<«ÓºªýÆî¢¼GH3¨y-¹f‡ÛBv‡¬°ëdÈS '}¸,ÿÌ{QûSàGîd¿-맺jGO©1ß ßx*w5Lñ¯ºØo?VÊ2;ÆÆA‰q¼Ñ¶"RÎ%d‘Œ²‰«ã;‡—ñè™Ùù©iû¶¼ðê‚õ¿€ñ•RÓQ=ŸFsy{ Z''¥±}jPÇ—(òÇQàÒs0ø~ûÝLMä÷ò©Í: ¥E’ø‘öð-Ó‰æJ"¯>xÔ Ya§ ±‡lg› ¥Æ·Mä;ÔöÇóùVÊ#y¯¦ ĨÇ3ëƒýKŒõ™ð@³èO3Yü³jgHMÙ/)mm[Þñîy)½H^yÛ€Kx¿Ø ¶­ô”Ó4•6˜Qð0 Øã¤ÿ‘ýß8}Õ»O2ï99>ûö3¤ë¦3XW¿ºitl½#hï NfwžÛÏÝêSé?JøÿýµÂ™ìV7¯Í]³×ä C:«Wú¤Élîè—n¨WNx%p£Rdê‚[ù'‘š°&…z¦Î›F4ÁL3‘(åûÂüqÖI¥.¹•h6ÆßO”žÎRž ½>¤ýóÃ@aw˜ tÜô4tÏ‹sÜ;º ÊŠ4¯eUæT\Îf8@–yH·PßäÒ Sô ößÝãLCj‹ Ý D¢¹²®ügü×?· ?¦jHñà%­¡|tÌýÜ»ŠÿºZ¸i‘/ªQeäðMAôô’RB¡òsXŒ­µ ÑZ Åû)]3{µ|vµNw`ÒÂ¥®‚ D¤©(èØžÊ}¶0 üx…? o?¿n¦NPþtFëà§kø×'Ð]jNRdÞṙŽG¤bh©]”i¦¢Y¢ÓÉdŒþT<ül€ç’n˜ˆøÎ?ÁþÎF7‚q8´¹‡ƒŸkO]Á‡hÐLðÁcÑZ…ùÏçý|“"ð|üÉ@”ÚŒòÓT}ä£Þ}Êm@_BËG±F{IêI9@ŸKœTü½Ì7J%yÈÍ$ƒìæ,ÐïxÜz,xãRå>©$ýw0eá…ÜáîpÛØ•—ìÏ¿Ú }VFÙ7¨]=¹•˹ }›y7å2HeoÞ[%ì_‘uK$Óóp™x(;—x…•™œHúØõ6¿ÚËæu@¾i ‹‘?,Gá~ü—â~æ£o¶ûK= mõù»¸µ‹žóAÙ,åä0Gí-²ùíÙõ¿ŠüáØs`rEüÜÏÀdò5oËJïäQ­P³îHËyy+×7»ÍT¹)kl(èf'錤elQ{Ãö±U¤ƒ\±qmÙˆÞÝ›C‰ÚJ-ðcèÛò nr.Ž´<”ÒÈH*¯ë“ðÏ6¹×Þ”Ö2Ñ~ã³[m$/Ž] »mTkmU¹Ï @ÌGxzþšŒ¨¦ÂÛû] Z†¦T}ê.…[ë)™¼Q6×܆¶d½nëÙlöŠ}ŠÚ·a½2M’HN6¼ž3Uñw€xËŸ™“f زŠvPÓ]’zì_’GzÈ@Üã@[ÀËêŠýÉ«ggr6¯œa ^¢y´Æ,ÀØ,ˆ~Þ¼›1ðwÝqz¨Žðãs§Ç…t]rz«+ª­I§ÒÛ‚>¿šå¸îtw»Ç½ªâ|%?æ"3gM8:mRÓ:YOWÔB½Þ$6÷õM7»û¹]–>}y®Àí1±áw»“2µMAu@í0Ui…™t~miýý—•¨’«;nèÇ4ª‘¹ž:ñbú…Ö"OÆóŸ@{L>ZiÆ›æ_´þ|»ùãwxˆEЇIT„ïB§.Ú†!4 ¸PÚ³fðG«>¾F9SÍj ÌyC™‚æDÍEÚhŸrÔ†¯.Ǔ覙HûQî}7a%Vw3iR%l LpÔEýyºÐ±ÜP(‹:/¦- ‹…Šç¢7F™ˆŸ±ÝùGÍ1þ:à‘Ðæƒ”T¬‹7Àv¦±Ü>üõE ›núûÝM¤Üæûè¥=s»›ÌJ‹ìò=­ÄSM‹ãÙ@¨lf€öàvÇøDÀÓù,ȾED»>û?ú9»Ý(Æÿt¯/t-žAwP·%âß¹-x²O:ß…z_å§—WâÆ"ÝuA6ëó}:;Äíej"ë¤àAïÅ/£¯LÇ8_ϯ8³È{P*Â×”²P¾Öì¯äëÇuxŸeM•>š¿{Ú½^: fÿÆã¸#|‹ÚEL™ü±]¦À3Ï·ad%7”ÐðàIàžŸó9hy.Fµ(¦Ûïƒ_¸MPÚQÐ7Tw(¯¦ó¼M.ÊB'½QR!O¼BÞ|YËu០qÅ„š¾â5¼7âÞ+év”¨—ST¤CÔD;A'‘3ÆHYãÏ1öØìv»ì±›¤O‘èö wãÒÜiìßæ”¨¯¦wŸ{ä?j¢µ»"Váe\Ä\6 屌°‰íÏò‡L¶«mDû-2Ò"[>ü òGN´bžÌ‰ehÜ‹óÓ‚·u‹¬–¸š‹á)?fQkÝ ý7ª}l»Ú2 ü˜üÊþ#«íiIïó ‰e8x´œP\ë»O'bªúµ)L•žp3“„æH2ï;›Ôc£ gu° mðí¸Mk+I;À6“ ’]ªíß^8m7“Þ[ÿqAŸ5#á™ÒIjkþ”,Þ ;ô¸({¤!’Vqï™÷ÜÆ÷ÚØâœØ+eÙ>ð —h‚ͨ>Ü\Qóu'¼þÏ\oà |Û2çìêso?Cºî:=ÕUÕÆ ü±Mùû‚8ìsû¸ÛÜë*¡ÚðU¥­s–¸yÌQžvš´´S'׋Ô85OÏ?NèGn䯜¿{IYJIýM=¤" €¡Ûf ™b '93Í*“Zþ’ŠÁÖÓÒ@Çv­?ÿD©ÌpÏt¡íÔšÒëv©é¦«€;àìýùWÙÑÿÃr¸½o1"—ÂÅú»¬û§8å§pÝ|«ž~¦¬uŽ?ã-ø8}þ òÂp¬|y6Ï5¨çm:ÒÍDmдð"ªhý©qï9‡?îQV>Šo¢N lŠ.%EÂùÖô?ÖBó¾åáÈþlªow^Àç…ù?ú:+Ýèæ6~Ô< hØÄ~t€ú?@üF±ùÏá#ü ßÁß%xø7üzUßTÁwèjçþašSUŠÈK?ü«Ó ¤›5A;–ï…æ[TNpi© Ç\ÊŸGr+ÞÊ×9U6ƒ=—Kîy“wQƒ¸;œþ #±d,w’+2WÂÁ•ûŸX5‚s^»ÎÀ|‰ÏC…‹¯1Ýî”xÅ­t–ÒÀ A¶‚“e§„ž·²¶„g¼ï¼ñ`[I™(wù{N3ørœýµ¨Åô‡3Œgè ùã²äO›x«Lƒn懬¼5¶Œ= ËíJÙËkä ·€Ë#ìãgü”s"õ\0ÉÞ–WÈI§¾EkàT¥52kLy¹ƒ\TÒöÉ2üH†ÌqÁ®²íñ=vƒ%þùQÍ@÷TøµÿÁ•éÝjº8j©{$ºŽgIžÒrÝŽ~æòàO{I~‘>6šwÀÛRGÈ{Râ%OÅ³Ú /1Ö6¥ÞÖïµH‡¦¼peµé8[ŒµÉÃkdo©ÍdoËiû7øQ üˆhûK{Òþ ÇVÊq4Þãçäùïñc±:«ï™îèõ³1Æj›š’É»h×I}ñ…žÚÚ¶©è…öJx5í$Îìµëz€ÎwÁÿãèÏ Ðæe8Çdÿö—ÎDÕòmËYð#äÝ¥üë…“AEÕàV!KîÌ+éoº­[A펀 ¡<7LÓP/û‚ò¦ºsA£äòº õCþþæÅh Íúÿ÷ß}F Ë¡Éýö‡XÃÁÎ2³Á$„–?¦¼ðoUàzãÐàÇ|*Ž1{™ªÀ¾1è(T5—ÎB‰ ÜoqOMýóéúwÊG™ Š©¹*çBMçâž÷Ãý§ã½Pï¬ßÿì' s¾j“)É÷i48t£è©ù‘*AÊÁ—¥nA;æÆï'"]£‹´mÐßkó-°äpò‡“rVZÏÖ€:—–²³p\xòöA'b„§úí¿{À 4ùÐjß#Ì Ú¿äB©3d½#±m'q$ Ø› ê µ4%ß[{Ej ~nòÀ%¶¥|Íd¦b½†6º7º!ãì¯v­`OØäÈ e­öüt Iy&ögä„/\eF½åGòÇðcLЉÍp¯ì9Þ"Y qìy9‚ÔUÚ»àÝÓÛØùœÜ«>-’eò𨙎љ…óq–ÿÈü«›Îdõîs›§Nš}þ‡?_5v£è˜ú¸ò÷ÅXêÄ?–»÷Ý7_ýþc«sío…¥+¦E3ÙtDw…: /˜† éPn¢¯Ì…))ø‘îv åC:È­Ö©%¦4»ÑòSë/Ü7´J­âèNÐ̵èù sðêF·ô8ZG·„¢A¯™^Èó¾ ¼Õî]”zB“×B5×À'=ƒúoRnACqd.~8PÆùfGˆ5çœ6»ÌK0÷…ŽÖ“¢@ýÏ…à"ŸQmÞ´õ†¦æÑ!½EúÝ- rt„×:‚;õg ¨k1® HSh*4~%²ÍúüHgò¨ûŸ)kž3Zí1åX#uAnË Žý„ºM 8×£üŸ….Î÷Ïà¢ÛHPÇ ¿SLý©9åW£n€yBø(ÚiÔ9e&&†Gîj`&ëh²ÚÿôŸ§½‡ï‹Ü‘bÒ:|ÝÇ¥Fš‰knBµphïMd‹Z¨edîß_ÃsíD–ïCi/‚‰yî| UVSXcÜàOº›û»é Ÿ·ðAðã89ƒrÃq‡’,rRظ¶Ô¹¶Ô‚ûnÀi8+ØôCx‰F¿}t~í6÷‘ùŽšSzG¾€{ éö?rÀÉ÷—²GÒÛ ö ¯äfrI&-'F:yŠ4³Œ‹BaB»îè{Þ­~\¥Œœ‘ÇòPxŠÃ¼PîɶÒÀn³e<Ï+ìõS\DúÈY®ÁQÀ·PÈ'{yt+©þ0ÏÓ»(úêÊGy)Íç“2AšÉ ¾Êa½%¶òÇ*»TNòa{q• Ý†Y¢J6YÂËÌ»ª:éU”6Ê]Æßüè"‡¤‹M掖uö ÍkëÙsv³ýGZÊ&ü®JnŽì˜F.@KësJzçÝb#ÜÇhxEí(§¼¢Åºž`AÑ«†DTM¦ØlÞe{ƾ±Iì`fÏ"Ëý#FÒ"½Æ•­ü”~1åÌ;•L¢F!䡺HŸ,q(#5”3¶³äá§bgÛʶ§Íò2Ù)RÄ.FþØ/e¤.‡â pœñÁYfþ[~¬P'õE3üXˆÞû§é,ѽÈÞ\ˆ–?*{m)›Û;âmEþ°×9º÷·ýÝÎB{Ü‚k:f¦Ð¯H‘Ñ9™Ùø™q÷¿z©©ï½ÿ¸â¤ý×û'>‰®«¦nZHßR±QÊZ'µÛÓï^vCCí¿nýùç”Ûé#]5•é)˜t[­TõI“Õ\ÑoÜ—êëÞDr @¯FÁ™‚‚Ä7¿™oÕ5Ù4§yf þ4 5øÂó?©J*‰þòÏ8-J—©+ÏÄÿÝÇŸM¢4² Q^7ãL7ý%o´¶ºëun]G2š÷|ŽbÓ° ¹\å(ÆdYze4´/Àœ ±†³œS¸‚V>Dö?C%¡ÅÑá¤wÀ'âÌ| h§u‚šn…"qþî ÷; D- …¾€׉²ùó`9/sö —"ɬ?NS $¯Ò¦¨ºý™²Ö:cÕ3“+h6S+Œ”¬ÈTåç—"Åæ|Ô›Û𠤙 È4›é:عßiˆ‰¬?QÚMç˜{À„‚R ‚xÃA·ïIAÛ2ðE*dºèP2—‡qh}/8ÏÁ½«&2rçÞ wö»qÌi´¾?‹8686鯘Ñ/h>ÖE$XAùc?DJYnø»·ûgV‡5Tð7]CÜn¦3Z? ˆ±mu*Ò4ÊÏ;9¢¤–soZI®rè×,þ…=ŽÊ£Á‘Ë|’##ô ö\ܨ”–ZSjžE]ÁcèµgW,2Vy,›$±=eOBÝk€Ó8gínóShj>*EÊñA‰—ÝŠ4üHnÍ“VÑvž-Ç@Ü;ÜÁ>°?€Õ½¿å@Ž?Þàùòa$¨ÝйøºÏåЫ¡É/@ÿZàÛBÚÊe°T޽äÐÞv[×nEþX'/y¸(ȹì6ü­#±e&{ïüóJN<Õ„bò@ÙhŠA/ÛB+ƒ›íB›ÚÖEVÛÒ^.A«»ÈQnÉÝ8ªœF¨Ê ÞËyÕ"×wz€'šI¶@MÚÒq®lÃz©‘7æÉB›Ô;oŸØ;Öße,’Rh;^ÂH*ö ½ýµŽ)l*¿­_h5V‡¥\ÈÏÕé!Ÿ5K¨·dòüõ$ ìIeÇÙv:ØqѦµ£?®Û¶rXrKY0ØŸ êѸ÷òÇ2uV5ý1RçÑFjnI o’#Mp¯Kp·Éð4ŽyK‘ »Ù©Û«i[€Kó$vÒ63ów£Kd¾î ÁÿÌZM{ofß='ëgß~†t)µ@ÝU­Üä:£>´à„“ÁâÎv¯º¯àÙ¿îüó-pHí…’ž4Õé˜~æÎRsÕv½Û¤2—µÒÏÕ×½ÿˆî–ƒúM4¡£s)¢ie ©j§Á(2JâS«/<ÿ<º*®Âé!PÎmÔºz‰êÁá6¢ýz<4lô$´â¤„ü1æ Ê[ånÓßÑO—Ó`”Úªü˜‰,ûFøiÊ}i„Ö½·†ésW_g7òÔk“|Ø9Ôd…A݈z}ÏþÙêßÁý ô{'¨G‡tþ`·}:øqY…ÒÇèOòã ÆHÙÙO2 Ñbéàí"Ò]ú†oSrSSûs“ºq‡»í†Ÿñ)-³µü¸´ÑÎ=7•y„0‘‹sXÔ±+UÀOzý#?¡ƒÔ,x“&ŽR*ž´bWüœ@—t,wz°òþq[™6`cÞÄKP‡KøÿH#û¡HYeŸ´‘myÙÏ•¤tÐÉGa8RÀÏpëù¦øÑIa§Ü§¦òP!ž‡Îát‘ÚðkŽ~L”7 ií~ðc·{ÐÜì``(yÄPãL¨ûõa¢9ëÖCÝC¥ ðtîÍ›è /’ó2|ëUô^ÙêÈW¸*|p WD"É/¦öóF´vdýá|àz"zð:I½x£å¼C†Âsâ$ÚÛe‹Û2ÛN•× ÔkyÅÉšòvù2ÈX^oÞ½ãúÎIªª‚Fã ÜeÀ«f’É6ëfÅAªÙfGÙì¶‘½ŠÄÕü8mó#—ìÚâÈHHYñSÐà·å%PÃ]ÿdû[p?éäÐ-‘ã*[×K ?\fØdÞ {ÍŠ—Ù’ÅöŒ<)¢¥ ÷äX2ɺ¡ÉaÞ­w1jˆvÑÛüùçùúp¹MOíU±á¬c‡ÙZv­ýÖ^±ql_)ŠzÖ’ƒ’WªòKZ^éš™ú–kÔe}Ö €™‚‘ÔØL’´ÞYgŒÌ—… nR[Ì;ìí´%¼¾v9ÿàµìlY$‡à„·™Åp‡I‘l¬ÿ™q÷¿yETÃÔ»™x7tÿqo¦UÕ¶ß+®ëZ›îîîR:éI•P¤TDéî»»»»»s€ÿ¹çû^bÞ÷9ž= ÌpÝk¯½×ù;ÏkýëûQÕLuVõÔM~ó@ù+m¤ÖëIÈOU õaWçÖöë_lcþº­JÌ}=ZuWsÌj›ÙÞ0‘ÍCõaׯXçòWÚ†®úov[Ï6TËU/[›:!)Dƒb7ÏûQU%ÍüÝ\D?¡æ5úý¹@˜^𬇩%E Oé¬ífÛ™ÉïQoƒÞkJQŠŒl»gD¨r^¨á|:­¾†|Sˆ^ÚGöŽcg†ÛÂi]Hû1áURq¨`yÿú (²¯~€o!+ÎCŽí*õ¢atÊ8úé ]Ï~ê&ŸÏþüô_Ò$¤´ÍHéå¬ìt/¤¬?*Ë6þüH *üÌ'Áç¶­mûçwÙäà@$ ©hE;:Šüñ‚SÉ&÷e§$uûÝA^ŠDs™# ÇI ÷ñûœØÿêíDsL²K2èê(p{ø±D6¡ÇX†¸Ó®œ—ÉkëMD óI¹µg|ª‘#¼š7âx'2½Uï U,¾JþгAèñÈþÚLÓ9™D ¹~uÊ|Fnq;yŽ*½ÐË_†Ðô%'—!¼Ê¾~kès¨RCð£?F2ÇߨI¶ª¬”Ðæ2Ž|™Kí²‚r»Üò£lty]3Ù Màürœs ¿Ë½1I5HGÂÙzÇ3·œ¥…æJÇE\Dä‰2 ‰£„wÜíuìÅv#e’»*Çd¼$·âÌ8:W¨®­ðÆû)ÕTóÄæwüîñE[–~•`×Ü¥B2 —ùã›é »®¨ë$UÝWüÈ$uÙð*?÷;ͶKÞX?ê†Ùc‡ã¼ŸA멱í.é¼;®‡Œ‘ž²Gºe½mÞ!÷‘×Ûæt^e×ÂDZzŠãpÄ„»K?ß¾Ïj§ÿ×[\ÕS½^÷âQ ó;W oäƒ;àGJ“Ýyÿã`àSÝZ÷×;ô ïóǺÀ%ÝÒZhß›“˜Kúõ»šiFÙøö”‰€ûaׯ’é2”ƒþÆQÿ¹]Ûol-5GÍ?~°ßÚx‹ÚšïU1‚*¡â™æ Ð úŠòÃ}· ™aiƒù¾z3|î›Ôëkÿx¯ü±V/4Å©5ø±7ÁŸïCU=ƒª×è,(rÏ>·í´¬J÷Ïmj`3ø€;º^ø3øÎÇùú--¤®àI~$’l¼ÎÛ.´î9¶ /mv?Îã ýzœãßdA_@¢O9+?„§ž‹}ÞLùy/RNdŠf «g卑?ÐQµ¹ù,ö­/ê¥?êA¥'SIVœ~ú>A»‘>üÐÏaÏgâ“:Û—:8Œj§Oõ&3#äDVûdËM±Ñʨ| 9(?ø1>ŽÝ[SSŠFwáVƒ1ÿ¬6Ž<Š}„ý˜È•9?ƒ×¯>¤àŽP#ÿ=—$””ã»{ù9EáñØoîÄQø:g”ªÞ ÝÌ6¦o( ¯ãE¨°}8 ¹eüvR¹('á¥3Ê!.%Åe,GO¦FþøŽOñ5ÿfz-š}Úÿ~Ã1œ_>ŸÕ[òMdŒ¥È Ö-•TnSÐëÊò ­ŒÏQ8’\Cb©°ÿwTŸ·*^Ñ߀»)-W‡Nái´™gË*(ù}îâ^:ï[oƒŒçbÒ[Îr)Ô›"]à< |Og~}«Þ5³€2ñл@ïìBþ dZ˜Ð›ˆ„°ùc¶ôáá,‡¹7Æõø?æ§A¼ÔšWõ2ªßÑÃàIª ý…í ÛšÞÌM‡¼á¯UžØ•v‡ÜB÷¥ô—m.þ¿…[ gÒxçò¾‘?>Rsur¤å»pEeB[Sq=ðâ#7NfJ$‡ n¹»&ùï,‚Ú×RûëˆÈ:¤†m[ÿçw‡=ªR3ºÉÓmZ*²Gl¯žÓî’´E¥Ù`Ç —Óu–Ï];WPŽJ©Í1Ù_5!}OCììWü˜ªö L€¢ŒÇy_Åv4Þ#7P¦Èh°ök—ÛÕòöz/\N¯‰›É¼Ÿ\w7ZæÊiZJKíŒñL“ØyïwÿÉ-6øÑîUÏÜ $ù×ÏᆲT·ÕÔ”4;TTYÈ®‡ëú¡¾«"}àýMÈm๣ÐA[šfešªªj•YnsÙû&®IîÊyootNðc”M†c÷=1_ÛŸÕ|µÄ~E]ìdûÂ&¢F¦þ{U|¨¢nëžHškQ+ FL¥Xg‚¨òC=ºiSÃév°?˜ÐW5ÂÚöê¦ õ¦H¼üX …د;œFÐhë¸þ|tÙ¾´»íPÛ)Ü. ¬µçmú˜nA»ÎPiÿÝ>´i9 DFȯ^ˆ§ƒG-ÐþêDáÞ?ÓFjH 2vSz¸øÜ È#ÔÊË©0"çÒVò¹—·Àm3E·ßÉã?Õ-[Z9J¸¹J!Õ§iT‘_R9ôc=xûC Æ<|w/D¯\¡oíí0ùq)ðL°w)ö27­ô×4¢O ò›)r—²5M@&rg.ÍC¨9>¯Ú}Ø:ìwX÷?ÆŽëTö*ø1Úž³ÃïÈ#½¹$'àqøWÑù2òÌ~¾NyxNÈúçÍ H¿ÑIСW· ÷ó5ú-/ãUP´k!ïàÙ¬¥°lµîž”£ü‰“ÙÈrŒÏ˜ÁÍx;_å`[ûó—ÒLm ¥,æÜçÅäh2'ÈY#™Ývw¬ª(7@¢¤H JÎóEîÉùýëôjà[¯‚@ÝŽãJìÕfÚÃ+ ›ÃQq¶Ûâò{½zÞh âš2,ä™&…\ñˆ·‡ á““˜¦oÕ»iSb~VUãþ8Ãöó<*ßÈ"Ž"é½Ñ®ŒÛ+{Ý À%º;ËÍ‘¹¾ç}üLŽ(óy}ýÔ^(tsJÄ#ùU箜É^¶‘°üü‘YzÉ&7:]Êt+]eÙ(7\÷‰l@ïõäx²½Ý‘‹R¿Wm‹£f踜žŸøï˜ ´=MZz9ñ2»•2Y~†ò¯sóÝ#—ÅuEnœ”>r9¦/'‘üˆ†ÛœöõÛÅVÍ2Ñp¶U…WìËßÙ¨Fàu{Ë^„v~knèrªÚn¦Ú檉nòê¼ÔÎæ:%¸?ÚÆ¡"T‚Κô¶¹J¬·Ø/¨žmNݰ¥ßsþöª‘²¦#ƒÊÕB6ØH¥¹å¥Sfõ¤ ðÂël°]këÙï5ûV½Ûä…|½Ms »(”s$4±r€2ÑK{ÍnF†nn ÏFØ•ö©­Šz…yœç"ŠA¿àL›I¹8¼úC¸‚s?{5Ü·V†"×C‚9M  `?A«óëÏıÇóA¼õÈ`þüíE¦¯›l*ú;jÞlT_yν+ˆ–ã¨|ù<úûü+ôПÿj ME"YŠž\A?Ð0Êb¯‡É*‡Ùk¯Ql^OÅi 3‹S:¤–˜¼‰Î˜æ>ûùã#î½ýƒ#\° pÜ–†ñþùºÀEý‰½ ~üÉ_CiŽP{ü«¾T Z\Ú>gOn>ÇS ò)"rrlCУ­51tè÷GëZàGmÊʳ࣓‡¬'²ÚºŠéßÿèïv˧àGfÉ ÊÀ':èe¥·ÕÏØ/l—P}øBGÿÚƒ´þÝŠn<þ` ÈFž ½Û*QÝwü¨$/xÇ…úÝæK|™&Žô=õö1Ït¦.t’€ý¸ ’ê!^, e Ç!n•ËèE÷>õÉb./íd''âHØ‹ ábÐyE4ÕÞª§lœq»éÕãV¼•fƒFc¤4²U*±Þ`8ñ}rÞu“q¼TÈ]‚ÖWä6¼yk)¨ô·ycýÚšjªÜO7ôJ3îÀ9m,ºÏ›¥¡;#ÕáÉÇ»‰Îº.Øus•¤+òGA—Wfr}ôŒ'+8'úñ‚÷ªm)Õi‡ã༠¢ò;å°Ç(‰4qëý•5?&$+ÜtwÙE…럃üqùã2gáîüGvÜj3ùÏ¥ÿϾªyF¨ Ü]oêÀƒí / ¼ÈCœqIQÉx-Ý×Pyí~”Z®‘« ú¥”L¼g"S$ZoÿxãþG°¹m‡Â‘ ¦²È:§½îù­ÈŽ:Eçmöž¹—ØÏ¾”:àË ¹qrÅNÆÏßõØü7Ö?O~¼~þêf Û;Woo{X¨´ž«ó˜ÒæŠÊ­üª+é¿õr}J_W Ôüªv4pS·…“>dOÚä´ÂÖMÔwê–Yd‹Û6¡‰ÿëÆ×Å(*µ·°6%¶yì·j·:gëR›y!µ}Ïçwc![¥7Íi"Ž÷—Ð@ýÁ ªB/ÍZ(ì68þA6#­Eþ¨cú¼G½Óú¤)CS\öW¯@%1ú>Bþ˜~T¢ È7éèŽ=nÚÏl•p[8%°? Nü ”ú0Z¸ žüZ —Ÿ.ò<•àñtÑÖ„B—¤½:¼«•_#¡ÏªCk¶Pr¸øÂ HVŒ­*¨Æ<Ø †¦äc!y↉÷ÎçwW©Mösdí1Ô†öAïƒsþõ«†Ð»ž´”ÿâç`Ѥ6ÇçÆïËÙ»úrÕž‚õi{’2ò\ú{Ù=ÿ9ŦKø›$v°I /:†?ãnÐùAªd´9sÝ ƒýwu{ôË 8ïÑPG?­qNÉ¿aÔge‘Q|ù0/ëû‘¿BTsZ`¢êÐ3õ·Ò]mø‹¼šG¡§ö†¬Äò SI!¨ÉVwPÒÉ}®½ p|Í5BÖ6¿fkØÐÏ>ÔÏmd¤¿y*öi ËqÌiÅ¿¾2FNÈ|qn‡cü©¥D’~Ȇ~þ8Æw±7¹ÁÕóêíÙîéàãjжõÂWårIFÀq·G’)ï%õJycä,ÿÅ>÷|»‰½þK©M™·êí6ëèiÈl;Õ}ÆÐ‰÷?Ë,N*ѼN.ŸÛ%ÓáÆ§ð&î ¨PlŸÈÇÀ«Ü–ÇÚk¯jdW¿R:ÊO©xþ…}bsƒ@¼Òù¨§{"U?º¸2²Zθú.¿L?:0É\𣿰¯³ 5L§ãâ|Û_;L~£†vâöî™ûÄ‘)2Éa´[ì.ºο»²HöHGd·XÜ<êÀi†-ôÆóWQÕlãÁ…ÖÇù1šóØœ¼W²CÕ#z ÜYÙŽö=DjÈﻼ®%øÑ­<.Éä#ä©pbÑÈ£«vä+~¬/öóÇ<8§–4Ù¦u™½!®Ìé’Ø]–®º7Â»äØ«ãšpD¯Ÿ¢þüWe( ¸ä_ѺgV™œµ+Äè;ª‹/Æ~ÇFO¯ ƒcktû’ŠÃs~Ê)øZæó#3O YÕê$Ìòp£“  —(*<‰º#ý‚ã=Î$סçŽè§ûÙràYjž ù³»|*æçmü‚ Ê6 r›%ž\àüRYrÑõ{‚ÉAP߈P¸ÐI3¢ydS€§ùQïo$†Þt‘ÆplÉ!‹Àýp£Ñ]SwwqI¹ÍMæ)ÙÏ+É%©=Ro_5p@mé Ú—‡à“×Cñ7Ê>9̱¤§¿b…—ÄËåõjÊxÙÎAýa|˜çAó×#Æ7o¯e¶ÚÌF‚ºC7© tÿ8Íäù`ÚÏr‘ó‰x#Àm²×µÙö‰rÁܘËAï×òìñø†Vöõ÷¹%UäÊ |Šòð\Â>³Ñd•4vìš ÕÌw³‘ª!/ôtärÍ—.!¸Q‡"‘ÍGoäöõ³+1Õ‹ó³?i,GGÍ:ÀõÜ.—ÉM’ÞÒÛEð¶»yøóKé‹ü1_IÙ²þÁ—‘¦ÖS7›Î¾ž%0 E ¨2¾ö   ’ ìˆ} _0ù£6rÃYËuÒn «) $“äà`¤Öš8ëóÓ:;õ?N©³&U–Ðx|5µÉ}·ÒõG²Z)—¥£KìÚ#$ðn»´îö¼n²›(Cå"FÇ »£3ÎÐ[濱~mFðãõsGOyþuþˆ¦¦«8z¼În’˜=!ü8øLÏÔAú >¡¼¼~u;ðD7´÷‘@NØç¶½¹ Û«¾ê™å¿j¢˜x:˵³¨N¿ÛúQGýÉcR7Õ.[žÊØÖö<{I¾:‡lª–J€ÑçÏPUª2ôo »`ü'ðÆR\Zm£"ñ6µiÍÐ÷(7C¯5å¡T(ðhœÀÔ—úÀ]Ô‚çŸIi {'íj[ú=Ö¼XbƒìS[n0Ï-ÇRJú^~*eá¬ìϸ:y¦>”?. wýîº ö³.ÜóV´'#ÎÕLØgööLœŽo„¬Y°ù#5?·LIù5÷&ªË65A?µÇ¿ú>¬%}Fkè[6ü3Mæ¦|5dEÜqK{iÔy •·çõ¾0ª= $2Gì!èÌbèãú œ-‹amf Õ‡Î<?:¡‚?'}'îC—i?ãD²ŒGÀ/Ï–8n™;À ¹ŽÜ„ŽFű¾ru¨„›0úíµžé/f¶‘¿NHGøÿ-t„gÊ.YÀNz¸™® ÓûÍûù¡ŒtBŽÉ‡;û?)é|NTóÍ[õŽ›Qôiù4Õa¶Ñb^$så[d«ärÕ5s»Õðåí‘çÈ3±Ò ü¨…ÞØ"åÖÜòüQ!PYu„GÄ×0¶p^ŒÏÄr@êºëÒª亻¬®ˆ;æÚ»’ò—¬M>éõú;+'æƒvÚ«z1Õ:„?â‹ð|/x:3Ýi§uÇ] ×UZI'÷ÔÍr“ÜUÑu–>n»\Àß$-êãœ\Eím1;êÕþFQSÌs›†¾Â¸XÅKlWê/ ½êî‘kížÊ9¹áî"UqÏÁ»NR•{ÈI+¥ù&|Ž¿þy-:i§½âÇuÃ<³1F»Ã;Õ²³Dyû]oâ´Dr?ã«§·ß‹ï¥ó2¹Vì¼bn«#Íä8<ÌQü»Fƒ?ú¯\¿J§AÿçOJåyçìÛámF-P¬'é,&©Ù¬²£Ê•À'z¸ž¯w铊>pþ«G1í%ä2ÜGW³S©†ª€g?²ÆÆ7Étîjçw:/i ~4¢Õ:[[yz­oÑÄf¤`[×T~¯ŠMT ÓÊ6©£Æ`Ež ~(;ú¿N=Èf£¶½Mgz¿G½Yú„©­ŒÅûÉ?‡ ñèàX½þ:äúU*òW¼rV ·…wãí çv.z1œ÷(²Ô)dåƒâŸEýAØÛ´ŽÒÒvÞó»ÃuY´£,FÊvp$ýŒ RçkzÔÊÂ÷qEÛD)x+Üÿ]{Ødzçü»ëSÕA›hý‰<“œžÚ¯‘çWPe~ýŸÆ¿ðSä¿¡Ì+é:3tþÜÞÖç¨ö"Ìl³;)/¹VRäÜ`íAJÎKi§Yb€]‘”ü™ÅWTp83tEü˜¸¬³ÛT’»…\—;¢×E¦ù^¿&ŽLJJ¹øçíø^ž®÷—Ú£ýcM@‡¾:;DgSsôözî‹D³“~Ä¿(ÌÇø9øqXÁ§~$縨ÿ‰¯¨èÍÑðÚ x._¶Em‡P}Õܵ©ñyþó¬¸=÷¤kÔµü™¤ËyY.ñÜ·ŸöÜãs¾‚ìàê\ ÌVo¯ã™ß¨ÜI2´­7¾vÒ^.d1ç”În‹Kå)¯Š×LÖó·2@ŽsqNÈÓø&¯ßö¡_℺ÿqÖŒÃw†žSìï$:Ïg¡MÀŸ|ËëæÒ»U2üØÍëå<³ÊA™7"{á“\›ËÚÛ¯jÕ |«êRDì§æÏx9ç³+me¹%­] ×\fÈ<7 J_Ümw \mé& \—T¦ò×Ü‹ TNNÅ›íë©Í:ÎØ{Èoe í6½¨=—u×\1×N:ÊPä…•nµ;çb»é2ÖÈHJWP¥7Øö#¯ 1¶Às—ÆW£ ˆFá!ñE;™æ 1TsQ¼žhÉ39ì»àÇ9õ[€}ä¦d“ôçcDÛB´çõ?öªSæŒ ¢4£´‘"9½µn!2å 9(¹šî™›ëÝuù½ì®+§©&¸Á2RÎÀÞ³sQ1&_÷¯„=ìþ£[&õ—z}eïB Ð¿~þ*¦Z¦z‘Îdršã!ó'ž ä@þX¦ïé3*’ú°Ù镊czÙh‘.Û´´Á\ÖuU'uÑì¶ylBÓäúÀç¯êꊇ†Zÿ ¸”Ø&±ßª(ú0ø1Ö.Àß&£/ÞóþùÓ@5•ÖŒ„ª.&ùOHUáÕðçñìFÏCþL&¶³m)Ó÷=êmчM9ê~l†BïCµm!s ޤÍHJ×è&ÎÓØtßîÀ9Ü.ÜÞ L³{mDTˆÊE฾D¨ôCHN(ÃÙø•âÑDPèMH¿‹.}/JÕè§$!ù#?¼rqTÏW=YK«àÛ7€¥wì1“êO€¯ôSǬÿþßÔÜÍ'Ö4ä •*püh×Gû6Hþ³ÑwÐ h5U´wô¶0ªEViÌa{Yh3}òÞfz* Öî§ô<‘6šU&¶Œ†¢$ã8æÍ@,¢S69ص- ~Œ\Յ샼Q™££}Àà?(?÷çRH†M@¦|•ÇB¡ãXùÏ#Œ—†ÂÌ2OTèëWƒõïö;jŠ4¹\Ⱥ~3¦0/ᇜ ¾r·;.e—”ü2*“s€  ÷ëùŽ-eû„êûú‰èvA^Ì=‘hzÓm·ý-,—dޤuËÝ*äïå1ö!¸ å:Ôùkþ”>¢Húí;òOu ôÊV䣯¸Z¸—îó9"Ë9…´w»\Vï™Kéý!Wù'Y!GA£x<jº‚7`_úS”PO»Ÿ73é£[Ô \åÏ+è6ÊW²™£Klðã#·[&Àí¿¥’ºë `EnÀ;ù 2Ò}nÎì•Wµj*ªïCÖ?@-y:7´ûl;y!mÝCi'+e¢îîIQwÐus¿Hw9çR¸"èËoÐF¶rfNËgíëëåñÔV|~„cšNºÒ>³~äá.¢:ü'òL oº›æN¹¤n9øÇ¥såûçÂS¤½M4Ѷ¯çN¯†˜!³­u ÍdÓByêz»{î{ÏåFï5q]\9ä£n ôÿ¡ë‡‘Y²°Enm€ó°’ðØ7Ö¼`ÎÛi8ó§"Ÿ4´Û¤·Þ62UŽJ°«áÞo–³^9·™Óy_»a ñB¹…3ê>èõR¤æ;æ¿qÿ#žóÆõ«ûÂÿzýÁØj%ýÏ|a.ª‚ÊŸ17x²^?Õ·jæ†_âí\À˜6Å¥+¶&6ži¦~§ÛâàG“_'ü vÒßRVe†ôÑ~m¿R§Õ[ÎØ£¶¼ëOï¹þy@}ª2›!8ÚkáÆ+ñ¼¾AþØ—¿¢ÐgðülÍ÷ZÿcÞcÊ€Dþûç+ügeáâ2âLN—È÷ûe'/dýÚºö×p[¸*°Ö®° %eøèËP·é”­[½.;M5à¯Ú.hQº©„Sñ+ðc*U šàÇIŠœŸòQ4þ<äþÇ9d°E¨´º¶…ò ‰MðÎùÚ« ¶´y$µÆž¦¥çðèUA‹²ðߨ´î í†&O„3¾2b•¶‘Lè§›üín ©¹`ÏR<^€‘¼ÚZ„ ¡ß·áoŽÑ3ÒÄ’‘Ü‚3qW¤„_@—ÖŸ}1=ƒCçuË â®Æ‰ÑOíÀÖÈ£á”`/«Q¤‡¿á™¯Ptöçž‚ª#§¬1Z‡¾v0T÷±_øi÷ñ,. X{•ƒýù c€û]$WZŽp.Pd —?ÓAû›ñ d†èTÛ¶Õ‡GµG1Ðûùx5÷NöÍû²•x2ŸûÊKY/Ü6·'sy†}HÈ©9¶ä4wçºþlÌêíùFnb<´ yn®çq`ð#>ùë“ôñbx…¼Îøs)™,7¸ûoâ??¶ðG…ÍWoÕ»l⌠¦ô3öw6?J}ä—€Dñ&¹Ìn?”ù°æ Iéîƒþý| }C:sûúÑ*lêG ¦®|‚Zó®awÁ“||à;ŽÄ‘¡»_ð\¾Â1¨Í?Þ?ß £Qdø€B<ªÄíé,õ„6GÃ>“DzCR¸íî¾ûÜ噜›“pyˆŸðçoÿž^ªé¡Þ?ÿ}².ÿ0g“>È Ë]ò÷?¹îÒTîAa›¡/F^È€ÜP •£¾±~ÔãÀdŒ„|¬O-Ýè²YOcøwÝ+â†KÔËéísûÜðcŠÌpÏÐÂñQ2òlN" àÂæÛb¶À«ö¥Fþ¸g3`TýJkyˆH$®WÍi¯G7"äÍøšh_vä˜^îœë)$¤ÂüãðOŠ@É :¯ß?_®¶™ ¶7Îa´™ºÛ>ò‰·Å­ÇÉiår" nò¶ºÄ^K7–S{ A¦ÒEîA-ÎÙ©ôÕá ×.|ǸûOnÕ,õËù£À¿¾ÿ‘BQVÑ›ÏLL]DùÏk¦?æè(Ft5郪m $1CldŒõÛö'zlšïUKµÂœµùm*ûP§×1>¨…uc(ßû1\àÊe»Ùrj„Zg mö€M çÚ)ÔŒ>ïÚ’ƒcùÌt8äýð§ŸÓêƒÑWŸÎƒËè*ÆVBè~,n¯ùwOèƒ&Õ¥¤¼ 5Ñ|J8:w“JÓeJ€ñ´ü˜n ;6Û-ö’›ÀKŸ¥/¡¬q†­¢±H¹¹á¥¾äUtÜvÄß× Ç:n8‹èLÈþ,뇱¿10b²ã¿áËKr2~LãáEO`TøWÆJ‚K1-«Gï¨u$ÐJ ´UAµ!p‚»)9=³Mу3¡Š‘ù;êÅ­0V‘¿6ìzŒý_ f•?N„Qíe ¢¹oOá“7"m§ lqnòÇfJf«# æœüh Òÿ…,{ÌÆë’„9ÿU “Ù£âÈ¥9_¥Áèý–¨5ƒ«#q¬¦èH]y ~¤H¼mN@˜F´ÇŒ\4›_r'·ÛòRx¥½¡PÏ*2M.qeÖ`Ó}ìý)žG‘7Ôü%7Ì9JÄÌó‘Îvóu9. d,³çMpyÝ™ï†>KÒ¸Ûàdy®Ã{øIÈûøCxª}}Õ3_ hHþè÷ªÕ³'l#ä©Î¸O¥³lwk\&W*:ÇU“ÞrßÅu€ÂMy§—› âoí ~Ôíq~~ß’D*R$û‚†qK÷Ò}âú`ïF¸xÈ‹]À+äFËw_r!—\G‚Ée&Ÿ§¥¶”Móª}ÙUïÕè+"Ámæ v2Ý’|^´§¹»-³v¹ WÅ]Ã^•¿ÝW_"ºtÈÂëá‚íGtÈŽ{Åj¹9G7<ä™Îãv©Ôö6¹ùRO†Éjù{ZÚÛå]t½¶®§÷j»în»l“‡tš®€Í0¦ó#¼Ïjÿ×[LœW¯¯_]?þíü‰ÕQwÑéLC)äíŒõìz»^£oëx:Í>¿»>Ût²/lº`‚1L ÕBm1—l+6¦I£?lÝüº3¦¶6Fñ%ÊfûØRª«Úe[Ó¸›ŒPž~&ôœuaoiÔO*­™L{¡ÀMÀOê¿}pÒ,†Ç? åONŸÁ+ε̘÷¨·K_2%BVŠ8ŒŠëáß.A gCEwCÁnÇ…¡ØWímÛÓ ·…­»ì&{ÍÆÄøóç7üŽæR|¨ÿê²~ÔQúœgÓeÛ ý=Å0±Ã©XPgGRhâ¯hî&§_(#%¢\”¿æ\ßcÐÒ½´1dõ+=Úøöiàâ;jm ÔS#l%>o_©%&=Aö/Aó¨XTþâ_@¼ƒ çt䎓øDÿÍÄ/ìU}<Œj/Ïõs$†ÜÈm)Ðsp,>‚·»My'%±Ÿ›”2œ{¢Áߨ-¥G/Fiò†Á?lÒÚÛTúü%òÇC¡"j&çáÈ#WÀ¸Dð×7¡(ç µ‰?ü÷½Zá'ZÓ sCm U¯3Òs]úŠDX÷~Õ¦P~äØʺÞÅt™å—‘¢2ƒ«Aóònˆ´r‹ãÑ÷¶M¨ã2Uè©-OéQa’Ê8ýÞH±d•èn'ø±Øä9\[X18'?žsôlSŠ¥ß^Qäòxsôn|.ËPq Ýäãþ¼OüŒÛºm.ƒ—ÒËå‘)\øŽ·æ `Ë>Áü»tæÇ·ê]?"òº@íxO¢U|¹¥‰LäXòÐ „R)nH„$qþ‚yí Ê0^ôÆú祅UgÐz0hô=Øöƒ=l•GÈ/ Ý'àÅv7×epõÝ3–) Ê#×ù£^Èõ«³èÉ,4üU=¥f鍨ƒ`jOÉe4Eµ§©wpQ½ün¨,‘ÁÈ›ÜfwÝev£d‰»'•\W1âÏ ’ =BCÁ××ëÒ©¾æ±MN•À#ÜËN§­ÓûÜ=?îÊ´ó”›äj;ãåŸúƒvÍÁò’—=Þ^Wð›í¾WüX_¼ I|ôc1¼Ã\Éímv“¥èqDʺjî+o£wÁåõþt9RÎwUÖI0m óv>øQG;¹]óŽq÷ŸÜ"© êõuÿà@ÒýþG|µN=S]tSÖhíÏŸ¸ Y/Ô+ô)üø°§“w^êÞö1”ð®mOÚZøæj¹`KÛç&ºI¤ã|P;ãéß©<õ¶)¡#»(‡mg3«Öj-ôkŠgS:ð£ù{UŒ­j©f<ôw?j„ï GÖ*2*v~<>)*M²MÍ´ðË‚ô“üˆÆ{BÞ¦¨ž)i!m£"tŒ —¥¤PÚmÈóÃmaëÀ~»Ç^µ)ˆ8B®Y²Êønp3#´â4ÕäytÓ¶Á¹×€<ÞÑN­‹€õPçÚ’”S6ì[,.Œ1ú1?æ†\Éó×Ê­ï”Īw^=øN±¥ùõ¢o‚ê?°¨hÈü»¹¸åÆ|,~ÿî!×<?®è°òÇ]ðãª=ƒ½ZB©Ð‚¡àGVò@9‹„ÌÖ4iÀÖ¨ÜÇ©)ýŒïÇ‘^æú-‘‘?žSÅßq ¾ 2”ůh<Ôe079Eå;ð «Ñ«qÄ{Ð ìÅßHR§Í9zí…¡z„ýlŒË[ »ÅAÚÚÔÓ6›_€ ‡e§S®œìåO¤á¸ØHþŠñEä¦ÿXpŒŽD/mJ˳y7g_{¨o<™ÃE»Ã’Éq—Á·êòŒûƒÇI¡ËOù1ÉçH1õˆ·*îÐUÐzd@´m6’ÏzºÄ[å(òÂKnÇü±—Î+êM’1\BæCåоñÈ»?Ö#U1o·ð޹IÑY!‘¶æ%D{y·l”f2-¸íº¹ÜîŠLvcd“¨î.¨\ƒ¿áèË]úñª7æ/)~ ¢È<ü¨…kbwÚ/Ѷñ.š+!½渜®² v³¡Ê]ä*XÜ@–ƒÂ#8¦\ä‚ÈqqhØ«¶ÅS£‘?òptnGéd(åµGÈJ}—ÄËâËDéâÒy{ÜwÑùó'þí.IIî.§ãqœ@Vó}èÆ§öõÛa©?ŒÂùP£á÷´i§”òª¹ˆ^SäC2Ñ]rcÝWîŠËêºI?·Åý Ñ6?F ¶ÐŸàǧ´É®xãù«™f£mGÓËR»[ò{Ý:©#«ä®¤wU]so‘÷Ôåö~u8–÷•ëá6ÊZÑpNÇ­¿–gì]æÿÊüWIÔ Uú ~¤{çÝÏð¶Èàéž:¦)b^*?íä=–éû:‚NñÏï*•ËL[|iOÚôÐ\ÔÔBuÑ쳟Ù&‚‰¯P;¿Ôþóÿ¿Û þÜÉTĵYÔuÙ~FÃíxP%µ õDû»¶¸ªúüØ%j‡ù”Zñbúœ"ÛÙÐÒcÔ>± Α~¶ü{åíúòG;äŒåðu» ï{)²ì (Dä™ÇT†žÛ{àh}Û5Ü® µìu›Ê믌Ñž& ø±‹FÑ'œ›Q)žÞüÈFÛõ•pêÕÖehý@Ué2?)Ô2+Ô:)çãêàÇ}hÿLìóZòŸÊ-AwíCÝ{G­}Njý~nFÞ*´ëŠýYm)ø‘•ëÒPnÅçÑáÔáón ‡÷R-»O‡5÷f•Î&µÌãöY³šþÀ÷Ò¸Æù È?«õ ÌWö •Db)ÅqÀ±ŽÈ¤¡ÿ}¸ ß¡‘ó‰ù:Ôø2RDÔœ„ñÞ‘:ƒK‡Í.úÙ—þº»ý g‡ÏIP´SH{“)¯å(’N®È6÷RòÉqÎ-áñK³…kÊN«ù„ÍóçwWë`ëσY c0òÇX¤³Ö!ùcwv§Àî"OåZò‰‚#ô z‹ÛpœAÉõÛçÎ!]Nx#%ÁÏÍ„R¯¥'¼\Ëq¤=òGA/šÏë:•‘qðôÕ9-ÈzYj'4p65ߪwßhFx¹{vé+~lWAf—mòÞìvê`WI9o›&-d%ÒL|÷‹kãÍñ^*¯†Ê¼êàgL•H+§ :ߢçÉ~ØJÿ7[,5]½¾v"è×Õx½ÅS‡Utð#žÉfD' ¹ÿ‘JÖ‹ô Y'W¡ß°úß·m¦¯UÄtÎ~GÍ#ý«úS-3{l~{ÚD5>0'}¬ÛRIúÛæ„]M™ì ›KuR»í÷ÈÝ025 •Èßµ%Q TZ3 >wµFM8U^HM?†Â€¿¸n³Àëµ_š©ïQo>`2ÃCÄçÍÏKè>CiàÀgÒªFñ÷y) =´[ì»"ܶ ì±WìA—^R¾‡sk t³ÄÙY‰d¨2Ÿ."ÓmD›šwÍuø?[1ýyÈsf@ ã ìÈF%ý”K†<¿;çüaè|r°¤:zlÒ«°îvûÛíÀOj©-ÂÇ©/ÍjŠO¬ÿþàªÌé¹ ãN|\™C³Àªkt £é ýh/è°îÈÇU±F/S"^GYBÞ,F•жã“RfÛùc$· fP•öÜLI›)cù£OÀ˜Òöø±˜+B+Rл’Ö4.ÄqrQ¨ñXÞŠ^MÎs©Ÿÿ®0ý-¸kn«Ð3õÏÒÍì7hO,Ô›†Ä1X Êna’DðÒ»œ…¢Fþ¨Tç'ƒGCQ÷"Sì·¿üãI»Qà‡ñסÅOÍä þ“n‚V¢ÈP$1Ý>I妸sø¬/$˜¢?ýÕ®ÎâWΆ³Ëè·óÂ]™y9%·‚ð3ëè&òÇ>ä…;ÜúœÅ‹àð&Ê\.-Sä2YDîÉFvòAöMùP³ýD¶{);_½ûóîB[ø„Ìñ¯à£ÞM×Ýr« Ì3d<—î)²LEnÎ;8 ‡°ýy§}}Œ«Š DA__Å™1‰+Û•¶ª<”¶Ž\i){Ü—ü8ë¹’ò½°ÏU“U¨×—ÓÊÐ8g¢¯êi5ASjÅ¡T@¾¡gf-uç‘Rº~HWí]6o•[ëî j_™áîJ×GHRƒ«)döª©-ùƳó¥To£1¾€'9Á5ípZ+Y‘ ®»]œ<ç¢zо!óÊ·vKÝç’ȑؿÂ×2ä)Æãöð+~ì®­ ÉãçØnRÅÛèKY,ä×Ñýé ó»^×›Ó‚"ÝÑ›ÛÄl—‘?Z`ß’qvûa+¼þßl™ÕÕèUÏ<‘Kú/ùCU¢ûê´&Ÿy¨R‡Ì_’_OÓ›ôí¯ÖñaׯnÒ˜A6òÇ-[‰n˜mº™š¨˜µ¶¼½a´‰î›Óoouu8È.ö¥©dKØj—:g›Ó8°ä#ŠMÝMè9³ÃÞbªîªžL‡h6RÃwtŸ~ãT–ÄúsêCàS¢Ó[Ø ¿\`ƒ¾dR@ß’CÛ×ÒVªÃË(-Ô~t¹ ªß¤òdá™/Ø&o¼Ãô®mnàˆÝ‡ŸÍž/QMøíØ!Ï_D²ÉY„§Ñ%;ù©>]Öïškä¶&ºHYŸjÐyÚwÿ=¤Ô•Ëp1ø³'H5³èÔ¾’Ã÷tß>2qÔÕwÔ:誎Úò|Ç •?‡+=ƒ7¨ˆ}®½ûžzAíƒé-¤E ò$¨e$ü•Ýæü%‘UjsÇž‡¢nC’Úˆý+@Sr:ºm¤m?S¦q´s:Ælk|¥¡Ó6úãQùcp žùÂÞ JP¶"œ=äÉäÊÔÒ"Ô`‚?ÏM©ø4åß¡¦!C Gþ -8cÎþcu‚±º¹­F_S<^}®Ý¨‡tê?•L²É3h uÃ×—“’he%öææñï¼ ¹e Ù¡Žô4­È㹑ÆIþü%þúQžÌæ^Ý]”Ô®“{ÌK¹ž<ç PЂøÞðc(¥KêýóCº2zd?œk¸öÕ¼üØïìgŒön³ËîEGé#˸š •\žSƒ27°÷[AçeT5ÔÝÂ`s2dýÚûPæÁ<’ŽðY#߀n¹éú»Üu™è†‚•ƒ%¢;Ís5nŒ,óœƒÊ¹‡}=Gfé@UÕ“"áóR 0¡œeª~ŒBf++Å¿;Õ}áÎÃå—@þxäœûJÖñ<ˆãÊVìùKÿ½ˆWõ¬Z¤cc?ï‚ù‰¥&¥°E¹7ÿíÄKïzÁã·ÃÞî@æ:ã¸)2Å)pd´œâÌheréȇ‘ JÚÁ¯ö÷ ÕÅƨ¿þùF´n5ÅržWÊÝð3‡\’îšãZâïr¹îò'~ÿ“Ë$…YáÌü ¹»+í´;^ñã‚Ze–ÚÞ8?FÀU µAR×[Ž$ÔMfËY)‹_Ùìƒr ÜlŽâUr¿º½²Dž…<‹>›~ ØÈ¯‘ì¦wŒ»ÿä–@-ycfµ—ìÿšÙÔ%ä ºœ©nâ„<]{&PPé½Ú™˜Úüã ñÿ¾]ä1 m,(çM[‘®š³zˆZ¯ö™Ã¶¦}n’™Ô:ãòãgèK{›£fÕ²um~¤îÚ4ÍŽ°Q(u{ÏùÛc«¾ª¢?~nüs ¦ö¼ÎP[õ°£põgm×6¶È{­ÿqI› ÐÞØ¼Þû5ƒ«ÈH“¡ø'©4\x"ÎBÁÖÑFÛôsø]ÛÂÀ9ûО‡W½­Ù3𢅼=ÞŸJ³ÿDo2Ðî<Ópé¬~N½ÚÈèú‘Ng àu2…\¿*翗Ɔ瀙ÇàœnÓJÊQqÃ$T—ÞQëZ Ÿ:h«4ÃéwPŸ?ñKP}Uãä\†ò¯È÷ǽ&Óðí u§–±ô®0ªi•ü¸ …ß ~¬¤aT !¦ˆ¼† ؾ&³,á_àF§R#¤‰”i?Fé…0翊~\¥ÌРÏ9?á*à\‰­®É)à¹K‚÷ ÞK@å¼äôׯmJµi¿9¦&†ª·TÿiÒW Ûè}hn3ä•”H3"…ä²,sϤ€äo‹ÿcý©ú T´&Ìp$ŠÑ<“ÎÒ¯ðöN¦ry€äÐõpGñiåå<§å |iá+. ®FÔoŸ;'u °o3¥àŒ<{ò!Úσþà`þú”zÍë –ÖàǧYîzc:¯ßó…ºÿ‘Ö_/“å&p³hÉŸÒùãßrí]1·ÊÜ]†ñ9'§¹>—ä†`Ñ!Ô{Âíxôü¨¨¨z?_üj‚T‘þîoÚî¡$“^²ÖMsi]5·Ëõv5dœ¬wE\VYÄuQçoDþHÁBc_Õ‹¥fë'” ù£)±t‡»@›å÷Â¥sÓeªôt)¼µn¾;ì»~2ÒÍ”ø”ÃÈØ¡Å[¨»-j;¿Úß"ª·¹iÓ´¤ßy¥-Åc¤†÷¥Ûë¾{ÎÊ×kå*»c.ž€üÐÌå”`I~hÔjB¿.ÛMo̵Çl±h(ùóRϱ7$‘Wdk Ûĸ¼¨ÔË›ïÅðŒ—Ï]eñê¸%nø¡¡£çWʱ9Öeýóœj†zýfåÓ@RÞïÚ²¨ƒÊè:/øqW•Pþ;äEõD½L?ÐwU|z…ÿ} ä2³¡ÃQþ¿gfÌ.Ý@ÍTçÍb[Ú›”&»ÎöAíüYפXÔÆ&§:Ôž6·­£Žªû6å´%ll䜦Â{æÁ*“iÍ\Kõ©,R¼Þ;º]¦Ì…J „Sý˜]ôW¸-<Xm·Ù£àÇ-ä=Ti+<òð#/|Ù.8ØÞ8{›ãoÒÓ±pßÿh¤sÐòWÒ;†ÿ§…‚¥"ÿÙ®büܺ½ }8Iì2²|üþ3{@Ÿ £ZLUØD† ×¼Œ>"ÿyÚŒT5¯‡Ì[ÿÔÌ1ie·‡òõ‡þ„WôׯM‚ñ¶> ~Ì ¤4 í9*ƒð9Gå‹Ô™j€s¹y*Wãd<™ŠÐ§|š¶ ªæq(×Ç¿ø·Ö¼T¡ß¯[ÚvèwÿþÉ@.Îç°“÷Ã!—”²Øb*„ed8HìПƒAª¹ø:nKÙßC—ÑúzÈýóœàËHžÌ£Àó^ðö) ðýå–œ˜®‘Û²|+O¹/ò\z¾Ê‡yj–¡bUx«â ]‰l!9ü¤¿nøe:Âãáå'sDéè‚\L﩯›Ìá/¥¯ãl)áÏÆ×JкX¨û©ìš~œóWãÄY¶’g"·Ô’!Eθ_\zwJ‚\O¸ù ¹"WÀ˜:ÜÉgúן·§}=ëñÀÈÉÁÓgT‰à"6'ERÌm&=eòG¸ò›ÈEd‹lvÙ]Tð£öä&ú¦ÎËÇo¼[-Ó);ß§žK²ƒ]ù±tFâˆå~“¿e„‹âÍu‹Cô~¤Ì‚6Ÿ‘Ir©°;?Æçï Ö úë÷÷K«æ.”©e~j*sJ÷±WÍMw?¹{rZž¹;®‰«ëŽ»˜®4Âï*Ë]I~Ó2°ã \Ó±7îŸR;ÌFÛôˆsê¥}.Y¼ân2Õy(Õ\cWË›î%ó6»,n_peÜ 7Ù$Îü§vÜQtŽÈÊ~Øÿ7[R5ìõkŸ‚'Qþ%?¨ãÊém:µùÞQ唽;‡Þªgkk"Cí?ìéäGÈlt:m³Ó “Àü©¨Kf­Ín[ÏdÐá½¹ðöVW7…oþ¤ø‰ºQeû™-¬vª;ö+*lËÛ`(~/S÷=S™M¨Û*°(?öBÈî§´“*ÒŸÎÙ~¶†~¹ÀnÅš"gì¶-§¼˜2C«…èöß·€sÞk«¿Çõ«}‹öŠ=dSÒC*ÁË‘`¦AÇ&€mY¸<|f>L'l+TÏM—u’p*V×eÁ‡ª!wàOSTj¯“ÀãUÀWt´u2ÓlÊÈGá×OÛ'FÔwÔº¬¶ÛB!o´FÿŃž7€J¯£ºàÇŸ´ ¾ùzÈ•¨ù`ÊqäÉ L){Q£ZD•Ú<°W ZÛAŽ™`Ž¿²UTð#ß#g§™,²jR‰»¡ÕßC-“‹ħyt$ ~ô $7µìI*„„Qn.˜úS5êæÎáÆl¸ØT˜ŸòD>ˆ=MÀÃÀô¸ß”–˜ÿxºpîdE$âÕPµ,þsÓ8ùøGáÇfwS²Ê).-dçâ甌Á‘Ïâíl‘žBß?_¥ýk˜ÍÑÏS@‡‰Üý3…=ÔØÌ½äªì’Äpù›y·€ôåøøÌ;|úܘ«¢íñõ¤·ß×€ŸêæÏa‰$9Ÿ¼‚®ñøÝ©IÚ¸.©wÇE÷Êb.'å RJ<ðí,/â |çyžP³5ă{ŠÁ7èµ[Ñv^$å7Yp]\~·G–@­{òt¹/¸9 ½_‹ö­å[ÜŠ{Xõª^¹@aå¯PÞ ýîÏÉþòt!9*MÝ#Tì+ÓÜ\— ªüàÿ÷pV]úð­®:çTãîîîîÜ-, XHàîîww‚»» ΃»»OßÝE†áòíþÓóCfæÞsKé®:”.üŸmÃÚH`¾jÜ‹CÁ7d†sx?IhµÔa.6êþèAáÍZŒµtðEáˆFÊÇÝkwØ‹6– —´VrÚr.¦?øco¢‰¦Ü{ް ê­_š¤Tý±™q4NÒ»%mmjÅžå^éÿÕ–†pIuä•$“ð«0_™ütάyˇÕN½ÃôÄh~aÖI ÷€Ý }䙜•ìöw°Óf—ÜØn~ÛÏØDv‚í&Sä!P↙N *Âpóu'„ÿï\éÔxõ.oàKôܧNûÜWUqá?²êfú™Ê‡(})œ `¨Ðgá>Rhÿù:îË®g™ÈГ'€ñaMR½XmR§ôSÍ$4‘uÖÏ*篢N¸øV&uî×7}L(5[y{Û;š††)+MþÂü% T{•I¤c@àv”ÁŸ±á4Õ£+zðÿ8FÕz“ ¿»i©ƒßéÚçÜѹð9ødØè¥Â8Z€O(M·) *^Ô7ý?[Â~¾æ´ Ö<ÂqÄ]AÞ™YË^Åý:8¥Ý¦!>« ]sÂ|&âÏN!:÷Q5;I1Qã|—ñ÷е¥ÙÇ[Áxk¡þ¿áûÐcM(óÜwû±®ú:ª¦<_üÖKW̯”lQŸ³r:¬x>‹º¯¥—¨ÿA°VóÊ9B´H*¼öÑ#ÿ)'Iük¶rÃ#<7Að ¯(Ù£‹Ë*ž |üËÊHoðÇeøE=„õW#}éu}?ÌãÊþûW¨üE f3/·úµ?â9À»cPí“ÑžC¼“Cáð.êý*ø³Ë à_¨za#ð¾ŸÏL£R|ˆcK6hé+à2Àþüò­LàbìeÛïœ Ìw(×GçŽq,Ü_JÉÓ÷Ó¹;]£>üŒ“zû®å²ì‘Ð@éM¼‚-£á>òð> ÿQ—ë¢&1œQæq¾õŸÁòš2óX¸ªíÀÝ å—²’vƒMàž±iÜ’²‹Ê 9̉ÙE=΀ßÖñEèî¢Áò—ÄD»ÇĤŸx%ÜÑ^)c  7ñU¾h'A3AöÙÆ3¡Ð¯r'.εùÍN|bgôÞúݾ|ª#½¡^|ZrG®eŽšÂ²ü¡l+°Òh”¯ˆ­gÚº¶‰|_óBBÉð¾·"í0§çüÒ¼»£˜B-sˆs ÚHŠ,](ŸÙM{¹™Ýk3Ø®ðHËm7œyÆÆ¶Ke°Ý'Im¹ÃÑx û¤;ôÉ< Î»»4EÕpýÀ$£jà‚áÜÝüM$ƒû»½b[Z¶ÉíU[ìÑØ²ûJÚH};ÖÖc#H"ôòjëÏ¢ðÞóãj·͇nHýÌYIàn‡ ê/d­ ·ulXw#ÜGC·¢íÌ®›ŒÒZ&ÈUÚF·à?Â×FàXfÛ'æÝÿå•HMTÍß¶Ì _^þò‡UÇ”ã¬p éúÚøO—=àKäìw:1t$'ÒW®¿ºíK©—™Øž˜¦Ó$ÐëÔ uGG¦²&• ¥s8ŸºËòUÖ •ÚÓä‚®ÜEMM“BíPLcªiºš„Tzéàg¾…|EPT1=‚.cöµ†Û°Ü™BOŸÑ¡uMº †jóEù7;7tø—ÌPo{™Ãøb6bú?£@ì~ÿñ«™ôÙN÷Ý3'ÍÈU3½F¬ ô\Ì.Á™À(¹x68y8ÔýOôø³üQÍ) T¯õÖfFFSS"2`¢œœzj3Ð7í¤þ“/›×:¼ é´Yïºïë¤Ö˜|–f¡¾^Fóþü‰ ÁYù'šÅøÿ øÍh‰ç`æót‹Ê™—!æo¦aÖîn `q”‹RP$ðOR~DYÍLYq?”r4|ÂÏÔžBÓ#±}!ðÇ@_Ý2 дGgÅcàݺR*^~>Ïæ= |?µ¿4ê5ÒŠnè£jn°xv¦=5–ì@çò’K¦pU(íØ<†æU|ŒCSÞò_õs^™ÐiPž< l{‡:ÂEâ÷kwHxÛÕn…Û©#{)89¿>Ÿåö\ƒJQT§Ïo;•¨ÔJôäXžÌ[è,üÇ24ÿÈýe#¹àÊBñ_…CŠ„×ñDxë´ŒJèZÄ‹jv¡­®ÒêŽG;y·Œª2†ó9Ûßæµ»äO;èÞªú)÷á:Ü„7óÄ{Æ?ñHón%G._}5mì†Z¨Ë·æ¢É,7¥‘½+¥å/™`ù·ûloÛPþD[:¶¼,ƒ‹ÀáåFy>~ú„U«œhûëðà©d0¥2×i±'m&Û_†ÉF›ÖÝg¯ÛCÀþ•ˆ~YÒÚ Μæ?p?­0ÕÍ»»4¹U_ýÚÄEï¡}¼ØŒ¦™Ân»Ó–¶¥ˆÝjÇÛy¶ª}hCÛñò#x©²D€CJˆQ5cQa”žxïþÕ.µ^/2á¡'CÝ 4ó$—ëbÕ]VÉ ék Ú¸îNwMä~oçó#x¹–v¸þm‡›Ä)ÇÂQþ•õW1UõNw_ðúÇçŸGWGÔk5Ûɬ[ë0N6婨Ùâ,vÞ8¡œø=aüÏ×_|½j1.]3m)œIÿ1QÓ.}kâ›×NŒÏ>ùýðÊá  ¢ÔÍ$‡º=Lšh«!ê¤iAãM'¿ë©[}¡ÿè¨RèÙÀ¶Ó ùètàIêDõ2(Ì3Ô}Z^˜©¦‡žÿñN;§t:à|vàê!ÚOøy§¬z •ƒÂ5”¦pð¼§Í³î ö<0Ì5óЄæ2|¸¿î¥&FZ;ÊÍE¡¥²óZ:k&à³ÚSxý9·™Ç)Þ¨ÿߙ体¨Qb r(:ųÀK»áq*ÂUTƒëJožøn|"V¯…ZbŠ'@3í€ÿ8`ZSEàð7@»<Ô#Êaøøù@ÇWþŸC/< ñþ©¨ú’9 Þ]D Áãá!³ÁöAS_£$¦‰Ž%óÀ?ðtj„þi-òÐD‚£ÉôñÅÖ…Ì%J-^–“pÐõ;x†Ä<<ìe¶,M‘ù4x<\àÀ(8?zÂyÞÿhýn§­i‚ºEFÎášÐ¾õàXÒBm‹DÇÜ?a£ØÒ²sJM¸¤Jༀò.xœ(Ð7]ƒõËGÁ7•£L@çµà1/SgW`s,™Ã#€N—%Tù^Í-ä9X.5gS=¿ æRT‚¢;ã>ˆxЩv<@„×-Ðyž ^ëÍO¸ž=ÄrÜLî÷pHá#îp)(ÜL@ÕÀáÅ”G÷ý ^(óŠåÆlmx¾±4>cºÔ–n|“_Ùé6Ÿ €ÿ˜)‡xJë=¥¨^>Ì,o8 ʸÈÈÛx¥|™UgŠÆíÀÛu¸'—ÂØ‹6kmŸˆ·ÿ|–Ý íb÷§ƒÝNÚ¤¶©ìÂèÀ‰ä:çgF¥wÙ ^ùf:Ñr¨Å’ß(­yLk¸¾½gcÙ2^ÂÜ·÷á‚?ÚSòžëxh,‡–¹|ã´Ì{ç×fU=õãåßí×ÖÔŒ¤¹’Â-g/Ûšö¦d³“m/»Þ–·Ïlb;F2 5SH ›K2ù×ï†ÿxj®›Eoùc™Ú¦÷›~PU“ÀèãÍpqÝMvj:AFI'›Å¦p÷¹mz·ÀÑÜÜv˜Œ¾º ÝdÖAÁ´„ÃMò¯Ü¿Š®Ö½·~÷¸õëž+¼»¢©]*¡3Ø)®kèTŽ·ÿ|§/9ØãoÇÕ´ÿÚûW©õdŸÒöç/¯V¨úz2Ž £ã|ö䊯N7ÿÉäÙ0ëORÓäQãÕ&ó=ø~>' v¢Á§®ª¥*®7ÐEÚGÝ ž½ýç³P»ô<êEÇûB…émÚ~ÑùƒÎ6H þ,FD}`W" Ó8 ]a á°HºcŽóf|¶„¿ûb¶˜°àµ<H5 ç£¡”ëüJ¢ª¼‰.˜.øI+zê|î´—lN1ðä/˜+ÇÐnq©¥…oˆŒñšƒSí§Ó:ðÇ*J íY™N™Ä†”þDÌǾf*Ðü€ú G¹öÀÍ\3õ©bxç_$À,h뿇·Þk7Øêm¥ *a8§BˆSEÓwÌ5ŠÇ»ýëçƒ?Šbn‘-™ü‘P–@çá)Ô˜ZbÞf¥ë&Ì'øc¨/‘.mRA(ìr5kEeÀrÑ!U0ïçP!ŠÅ÷¡†oƒÿbóph…ÉÔj¡5=Ð7?ÚÛÊé oUˆ¢‚æÁ_QŒŒt¼‘£HB¹ÍüJêÀ”“2÷ >j:ÿ»ßñ¨…¬ G9/Œ‚ÃËÂKx4{Œ4ouPðÇtÑö’d´ÛmÏåäø#!<”Ü P¾ÅuFq‡SÌç­¿ÊÍkà6Ó]+»¥ ßå.@¿Ln87ë˜ö„+²…Á§á‚ *éFÄ{¨ïP0ëjÀ#y&-áÕÒW*Êï|‹#¸½€÷{e,üÇn,÷ÅÛÿQ µ>àÏ¿Qñóî®g_^ø°àþûô ÆDYó̤­ÒÀÞ‘¼`³ãv-f+¯gÙŸdŠì¶®m.® Œ'93—ç´ôN»i5ßy…ùõs?¶Ô‚»K€Ø]ì-ðEo™&«m6÷” ²lZ;Z†Ûò¬rÌÚ|4~s¦)ýÞÙŸYUýʤ€*ëE—8‹éN›EÜÒö üÇQqìH{¤ž=o“Ø>’ݵ©äº¤–"̼Šã†Iÿ±ú-œR{à¤[Çõòd›Áß °³¤#Ü ðGJ[Ô=ênÃßÝíD~l[Û&ö€¬OkÝ6 1RËrÎñ¯ìŒ¡f¼—÷’/Jþù#Š TqþNVÝRGñŸ.»È—È™ëÌs"hŸí£ ¥ÿùÚï‹¥Wšè”Zù:«;#ÔµNï6EŒk"êÄŸ=9ïëžÓ³¯»)$ÙÛØäW¡†kS'3̺³þüéÞ•L5¬ ÎˆyŠkÕ¦ez$ôÍN m€ÉLÏMgÓRü‚x{ã:‘§€‡ÃSM>ÿÑ»‘Š@õ'猃.™Õà¼àYõ>¾:ûN›3p ¡éåâsˆ04Ê4.71gà£@ŒhšQÐgOQ)ád§@ªŽz€1CSJGQ¡ Sr6hÜ›ÐL«QçùTˆ)tÆD3w}Ás™ÿÏõÀ×V0uù p·>‹?eRYZB%9g§îÜ‚Ÿ7€AÑ}ÚK»ðª&š !šQOœ‡&þc5%¥¥4 )´áR›J:™Låîà~ðà@å‹€¨CàQ¾¬ú{@©á¾ãD(‡—¸¶wÒ ×ŽM¦˜à‚«< ÿ8~:Zñ/Ä„öÃè¼üÑé=_M=*O y "ÔB‰~Ä;Òóz#)ü÷¯^H-ÙtþV¦ñ·l˜€»¿ò>~þøÑôÖ/½œ°P?‚eæu÷¡½”ˆÌæAÅÆŸ‰v-~[F¼ìR¡À /øû¤Ek»ÁÖ_sj@ý쇓ÊÎû¹7ï£ <=ˆÞîµ¹Ýèn!·ƒLçJ2Z¼ÒxDÜ?~/ìn¯…wK HMÀ—ch6ÿ,ÍPŸ[ð à?fØž2‘'ƒíNrG. ¹ÄZn£”#xÛ{û+ø ?âpgŒ¯¦ÜŠkc<»²C~´Ï%“ôƒÐß)mE þD[NªÈ)pñ÷²­Ü‡S€?²€¯ÓÓ»lP¡ÔG᧯ !¼üí» ¹*üGLÛ_æÈ›Ô]mwÚk6´$Sí.‰e'¢eAKD‘ Þ~SÝT~[ß\ª…¾%R\ÐÇh‰âֆߨ†ZÞ“)ö¨aôû›RͶåÁ*É$û ßúÑ3ãÒ1sè-ìS á?ºá7C½•.æ©„rû« D Î’ôÞZ3w¾{ÏÖp+Ø®¬Ü¬¶¥ýK&‰—«ú¶YŒ~¬®Keþ󣫙ïñÇU ãÍ)¢Ú¤¬3Èɨë긎ÇB[}©ÁcŸãÄýÊýƒ×})õh“ˆpÆÔ 2Ïœ¾ª½Ú§M cMFâ+ÏÌçt¥’àäe~úÎüa¾A¼Óœ†›ö&xjìÞ¿J¥Z«œzÒýõ|F°w–Æ ½ (íy’‹æ;zhF‚?¾äþÕ!ç(üG- ×Qè‰%Ô®!-M¤™@ì<Ðþ÷(#…®>iú˜±Ÿ-a[ß5sÃܼ¦T| åÚœ®·Ñ*cΞ€¿ñvÐý¦jMÏ?Ëá?.#«-ςץcR2.•žžÓx”s;Ô) je(«xæ•ïÑ'b]óý¬–Ã\’Ö‚oI?ИÊAwUe§ÁÜ…oÃyÌ¡PÆ7é."_ ræ‰s6„h|®~àß±±œæ½’zÿ¦yä+15uYÊ8+B©G¢ƒæ±YFIBà?}ñt``^È%9ß…6ø-Dþ¬êxz:Ðn.ŸEÿÄá¹4†F—5D»^Õw?:ÿ£¹ÓÄ4 bäòVžá>^ƒ¦z¹c8£‘rÕj[:<7õj®Œ–LÿQló†“PC3 X¿Œt^BåüHIQž•ð4½è<õ†rO Dî& üÛN·x'·ž#ê €û^‰‹R=Šç, vÿªu—j¼n\Õ.:Íãe³¬?4…ÿˆï:nQ· P¹„ü%§á?bMo‚»N7Qå`þ㜾Láø%X­!Oâñ´ŒwË ©+½ø9øc–Mÿ1ßv£Hàá\ly’ bÇ“Y|ì½çµÐÈÂ#< Ÿø/.jž˜$rIêÛPþóÎ7Ù)694ø-;ÁV‘•r ßÕ‘½Pc8’œå\pŒÙéÝy§¯|cœ”.²%–>ð/h$±·ÁB½Ðƒl ÷°=c_ïgÈ*x¹g¨óKŒœ¡à5è”y·»¸‚j¯Ï™d˜U­h'0£h$¶_²%ì}y%+íÔ¸Š7‘ 9ìU›W^ §òƒÁNÃ3©h¿9ö–?6ª¥z=\Ì2Ì¥ý4Îô’Ìî;O¼Ü*+¥ X©‚»Á=d3»Ýì`ŽîfF½GÈ6 ’6^‰ïÁ%ÿ•ççÑÔõnWÁ}_Ú|þ` µ[Åqú8)t%Ο¿ý /½3ß™é“7ƒ.S]Ô*ïᨒN.Êqø"rœ‹KQ™Ç…ø Øiÿ®¹Íá¼õí¼hÂb´¥Ú¯çcãhÀÞþ"ö¨¤³ãìU^Äu è‚R±•§(m_þšR$g·8ù¡ ¼ó£RƒfC»œä rXÆñKþÕ®´i݈nwœlà<ÀÒ#pHáäWྎbT­¤¼ÁöŸßÒ÷àÊnÿZãͣõ¼R¦HE?s~!§="‹€¦ñX¹)‡¹'—FÌ|¢¥?ï7ïFbE_qÕnfâÕ§~kBQhpncû­ÕOìj[Ä–´/Ò9Áy§l4[RÖsS0Î3Þ GU†³Ð»¹Çj˜ó=ù"œÄ£F¦‡’Þ@ùä¶“¬’6‰{Ìnµwmzë=M¿"Ge8ZÑ;‘Þów‡i”)øÞІ‚ª¿~nbƒ?FÒ~®ÛœnøÒö޼‘ö±k›Ùçˆ×M²ÁÄ…+É*Þ $ÞIA¡WÌž·ü±¸¶þÃË¿»ˆ·Lòº‹à?£®{eœÍm;¹Ë\ãVpÿ´CÁYìÛGþ–[ä݉örï•…OfVbÞý_^qÔõîܤs¾$êëòÚ¾»â«Ó*¶ÓËI¤«è'*÷?ÿ˜æÌr®;aœèjßWE;ï‹«'ÁÔǦ@S€6ëãÎjºZ§šôæšN¡S:™¾ªœÕœæÐ§cLèÀ!Í”5ÅÕDµ×T f¦¥‰JoÌ`]á ÷ôRYõj:ˆü3åF6äÙ@Ø-º5ðd#U¡½`©+f´)§Ç~>œoŸ³Vg‚“qÁ[h •à ð}kU€æO/NÐ,WM×îj|| ñ7{Í1ãÐm*ÆÇÀ™³Éþ^A(.TÊ.`Øt”®5t~ºå|꬧ÿ¹Ê9hôk9 ÃYðG]8µ¤ôœbqnŽ ´_I³üûVRÊPy¤õ'ÈSßïê€ÉÈÞ}¿ÿÊëøÔüg3ã_ÀMù~žÚ‚x{Á—ð›mTÙ‘åB©èðWPŸ5” m5üQ˜bÀ·„æMôFÿ ÃBÙ÷äò𩵧ôtÞÌÐ0!žCWåâÉàÆ|‹¡}ºzwª¸ÜÃ@*Néù.0tŸ¢4<n¢ý¹Û†Žir‚»ë>Nó=üPBàý,¨÷T ã.oä’Rd”j^9ÊE¥‘Lçj™£­šò:>ί1"ƒ÷ô0ç9-Ôš_° Ä.å$‡ÿ8Ês¸”<Â+âÃ<ã[üˆÃ´$×Ì”¦^tý˜uÅ»)ÇÉBÈ÷¸—ÝD5nFwšÌçÒ!?Úd¼ÄIÞî_sW>X¶Ç«^ï×âμ‚¶ðé+µ¤'?ägþü%Ûd–&y´\•;ܕ뢶ìÈEöò=®5ïÖØñåSƒÈ€ . ZSÎmbQdpnu?ç¶€Cm“€AÛI¶0JwȰdÿÀCàev£ÇãrTšø6^x5ÎyAÉá)»ÀÔÁìI[¹º=a3ض`ŠÖ6’»ÂζÇmû—Ì?”>rÌŸ,,âP7“ݼ»_—]õÑ×M°y}ÚÍÍÍ` ¾¸Ål ýÓžùÒÂ:n[ñ"ÙfRÂ.³…$´M(Åù5–{e¾£Óæô[þXþXoºÒ<Œ²-4Í –°îf8Œ®²L–ͺöøqߨÔvÇvóÚQv°l‘k˜™Ïýù‹@-d7!eùù¿¾B©Yê³j•ôÿÇùç›U4§Ÿ“Qÿ¨#úó—¬ð¥t¦8KÁÑœˆ_¹þj“/™ži"Qhå ôB_w©òj›^iJ˜':™v¿rÿG6§'äH“H2‰JšnàÖê’©Dš6ÆÛ¡7I7ü¢ˆ±ÔP•IOñëñ&@ˆsÔ‚·I.koýÝAê•›È8×Ôÿ¢ókw:÷t¨Ø„àÕøª‚ãÓèú+T Ÿq ¨þ㤙ôç×vð™;&ÐøÈÇyÀµýüÑŒÓ0ø/S%^D§ÿ ¥?çâ²C§.£_ñÚýˆ‘˜B½»ÐÊ)¹§Ç|˜F‹à¢×;Ѿwá c¨OåÔºêk§Ö™¬xÁAøS¦.ø|1ýÀ±¸Mç.(ßZ@ói'…ïY—רœq.†í‘/´¾f.À¬¤Ôˆñ7e§˜›—Áe÷IL#F¶q7hÿIÔŒ5¾é¨‰O{P‹£õ÷%ÔÌ9 ü$®ÍÀŒÁÍ(/ºG€Þ/ or—ð ~F‰y&ê= œÔiå쯷ÓÓÔ¢¤Á7³ ´OC Œ¦¬|‘#ûùã‚U6pE)+Ó€|¡ '?woŸÂi? ³«sˆõ=j;žâ0¯‚ïí «‹¼’í’ÁNµA<[J™É‰á5£ÀX™ÀU©9=V;>ˆ¸ß)Ÿn¡P@ž]<ˆÏÓyž+§d8¢7·[l"7”[Ü"K¹¾ ‘KàÔP<‘CË>»•¾ vZÎ }JçTK;´ùtZÍ{d*¸q28î¹íáçö¯Œâ™Á¾ÇÔæzð2¯Áq)e0˜wY›ør«¡ÐSÃÀâ yüGxŠ $mhÃÙ–2J¶Ø @æšö|My l¼HF9Ä5¸;Çî‚7NKý߯‹£9á»oÂ…â³àV/Ò )iïÛBv Xn¦ån±«ì›ÊN–åöš$³Þš³<Ü‹½ìúÔÒ”|/{ Õ\ß3É(?tÉo¼ÀLæIRÈÍc÷Û~P›¼µÙp­ì#›Ö¶—¾öW[Iî¢§Š±¤hD/ÁÇÌ÷önÑM¯4Èd¶aÜBv‰ü(çä–¤²åmEw©Ù=zver3Át’eòÚõ¶™DËÀ98Û¿tþà0Uû½ýƒ ÿqþÄäj—z­F8iuqýPyÙ oùò:ÛMÎm'”“ú£Žÿù £²è%&º?GR~z¢o9=Ô uWo4ÕÍ]VGõß!ûò«“Ó‚rÒó 8~2Õ1MZuB7 6³M*Š@ýuµ/ŠQMPuô|ÚŒÙçís¸o¥oɘq´œN@³>4¤íMŠ/:ÿ#й­‹ß˜µÐsàÄÀšeþçÖ¡§sÓsÞÔÿ‚ûWG}GÌEsܤ T˜÷q–Q$jJÇi.‚³¿@}Oà–wRfºøÙSÛ:€ôÕá¯Á”É©5T|FŠí_• naMš,†6?rÁÖñ>y~íIßPuÂä…~ï ÿ1xî@;GTúnKsŸ7i—ÿGè¦Ï¨MÁâ-tàk!#oEÄàÅV4î&€£KA9-ÇìIIí]A*É |âS`À2n,߯V=Tðx—ÍcSròj¸ Ô‹NÑxx™² üñŒË6²;x7•ûÜ ˜…ÃÈM¾ý^L˜%Xþ« §,õ€&ˆÍ…ÁcÑ'x™l”Mà·ÖvµîeÖm*k¹ž –\’£ ùÿ¶HùuÅâ)ø¸¹{¨‘ÿ4õü]f‹·_0µ\²Ím(óm;0Ey.wÁ•µ¸âû`ԇ܀§šw÷(‹ø©þ(ÙŒ†JÜ–Ë›&ø£“}$ýd¼ÛlÄ«`oÛÖðóe»iÓ äõy< Ý7‡ÀH}¶„ã|'Í]³Ç„¥'T€Bݯ£pT¶ÑÊL9HÙy™ßüÙo;Ÿëí?œàžÚô#}pºå£@袜““ð ”x=~¾¸M —ôX‡VŸÚÿqÁ÷‡ 4yà:ÒoþlZ×PŽÚˆPz¹: ãüœöBÙ¯C;\CÝ—ÂóT !©”ú¬¹F1ñÉ™Q¿%”nТÕâAíç0uYe•‡¢OÚ`ÎFE½]ø.‚ÿ싯+š#hÐÅ‘QŽaàÃVPÁÓÀ•—À¶ÅÁÏy!ïªELBµ‚m@gô¥ÖïNvê?Š ¥í3rtçLJ6ñrŽì•Ýö¡ä– \FJÊr.¯ Þò÷p+9*Õ6mBØ?hÑùxo‹-RÀO9œÌáQòP¶ŠªîÃïjÈîÁ 9;rƒ¯p+þÆË#Œ?Ž¢_›£­,Úçoþ -¶gɸ•7ÜÕî²>÷¢Må~Í Å,…Gñm¼vXb< öü#2P4üÂ9ªÎÃy<íä¥ÀನÉ];Ô¦·Ûe0øc#÷”§rœ{¢ÎMÀ–/àAž£ß'¾—?±¤/j ŽîÌ/©·æ æ©!Y!ÕÁMdÌÒgµõPÊ?¬Çn‡½–,OÀQåçãÔœ„z¿—PMtîS:¾‹9EÒ™æÁµ¶“*öŽj»ÊYk“»ëìQ{¦´‹e½'áì:Ù g6 ¥ ní`²¾wvtÕRß5‘1Þ›Ð`ždªòhIîÖ·›à‰¬ÍbïÂ{t³¥ì«í0ùÖ¾¶¹Á™‰%-ÇeïùÇ5S Îûè{矯Õ[ÌŸÁSQÂI&ºê涃¥ŽÌD­§Û:ö©ÝàN´yÜ*vß„—ûÝŽ·Ü¦tÃ,dâ8œÜ?CùÿÅ•T }ïùÇ_ZõúFŠª‚Ô%5Ɖ­‡ÿðøcµ/“³Åéì„ÒâøÊý[|áõH†BÓS›öiÑ?éÖëË&žIf^91œ§_/ŸSŸ’П&ý |Êdúšj°ÚdiZšÐ¥½¿pýUR5\%ÒS0÷è¨ñ]Ô•×S[ðÇRôþ*F{LT¸¦Q¦“žùñv8urúb;­ñž¯ña ôRšæ(…?Gñ>ºn–˜vfÂgKØÞwNå0°æåËT<·˜ü@Åx1á}«ÓÍÏîÿ(æd$ïdÚútžÎÂ14CÙ"£¬E8%„ê™éÇø•”.?6Æ<ò}êLþj‡ñÎïÜ‹Ó-ÓnÕâè\ˆæpK”xJ¼x}H?„¶C-úB\¿«Ñ Íi°äøµµðn©0£ <ŽQtSC§”Yà¤<ì\$ ‚»‰âþ˜º¨ .â Ž /+€å¢òd º ¾ˆZ_áy|5Å h¾šÐOT’öëeWáÔ7õ©Þ³(äÄRÚ2/âÇ– øÐ¶ªìã²`“)^¾qŠÃý òÇ€?5{ï´¢ÿºú97  ~@„qÀñå<½Ñüá“‘½Ëý`Õ$ç9å‡[îJqd-0—©¹ÔÞ[ÛY&ËR›Þ=hwÚÇ6Ž+ãìyy&}å2ø£üÌxpëxSÕ4x[ß2ª½~m[cj ¯1x¦Tu›£ýKÚÛ’ìvÓ.±ÕÀGáP㜈›üSÒs$>‹2¼4áÔw¿åùj^mÚ`̆Æi^Jf·Œ*õÀ㤥-mw™»ÖFv»ØþlÝðƒà¯`–<xÏ?"s²åùG ò»õW|•ûý«cêšæ¤Ó õUQæø; œÁŽOûœjéWE;âK¨GÁ±ß5»MnZ£_8 TG´óv“Ôyí$ýÊü%¹ß)ý†^/dHcº˜ª·:cjQ4ó¹¦j§›~áþÁf*ºîï¸ó2+p¸CÖK ËöÙè@ÒÞæ÷/òC:}L:D›iUá3`Œ4Ò;û(ê­.bzhÖšî_ðü¼“o3܇·ºð¥G¤ÚÀvg®ÄXÏÇ™àHròXÚnú‚Q~¡óŸÍB™ÅI ¥[så|FXø¬l…^‚/2x'LÐt ýzŒü|ÀŽo÷•ö)õ‰˜7|íÔ*S õìO¿‚bÓyó=ÜZ¼;4g¢>Ü”¯£ ¦ãÑu0Ì80jFA„-’ŠªŸš3”™7¡LhU¢2˜O—ü뀚ú:±Ì–àéÔ,Õ‘„®…ˆqBà!¾Ôú;s€Òð [4ÿYCЫéx6WFéá])€ŸÓ€x`•4 ,XŸY€v‚?‚ß;hï´7?S JÈ«Á Åù*úr¼Òb¶OÉûZª—óJ8ˆ|ø} î†×‚&O5?Ê´ÜÛyn½³òî낑шÁ-,åáâ³%²a/ò,.*÷üüÊþ¢5äïð¾ÁÎÚêóï?gø!`ÙÝ@üàNàÇ.v#pD7‡;þ!3ú8ÔÂ#êÅ—à?vC-­¤ºöñ¬ÿ$–ë赦(á`ZÁ ô5¤:ïä0î›Íž–Ù@ëåþü%—¸ükupÑaðá-Ì›Þã²¾¼ª+œQ öq)xŠ敉.Û¤ž}.I¤Ÿl°óá?¾³×í8›GæËÆVô??o/³‚3s-~cÞáÍ=ßlçtÆs(õˆò'¥0ÐË#ì›ÐvÆ_i3ºv·UnÛ_ÆÚÃre?þè‡öíÎ'i…)mÞ­Î̦ºèk&6¤&-ä^f*í’nAÄûÆ^°vƒÝöòÃç¶Ý¤±}n£Ë=‰%éÐ'©Ý6qé²Ùú–?V«z­ŠñÑŸæÑh³X²ùÏê:“ºˆšüqØfw[ØÁüÈfw—Yr ^ý–™„QZÑs\æë2œÿï\1U_õRªÿxýîaÖã¤Ð?é'*¢¬÷¥tf9ƒœÐ:ŠW}ÝÓó¾8zŠyb4üGfÚ¦Ÿ8=üç×nƒ“Œ`ëÄŽùªr¦wjúù#Õ¢ðÝL)5N6¿R6Sj= uþÂçç9T;•Z·£¹´ ®#æRm ËtI¯¤@ûPéèо®øñÎ:«tJ(Õ7PÞG¡¢ëòŠ t ÄÎïϲUž ”óÓæ ò'¶õÿ¸ tžr€?*@ÑÔy9Æm!No“’'Ò9ó#ø£2Ýr"vÿGÚþùxuœ"‡3Pz@©€;Þ)K³ÁŸ[¡ƒÒÅSÓ6s_‡Sa?ó&øc¶)ÂÞ¹Puð®tÏÔëL¢2“³R_nÚKÓh¸º@¼bø4¿¹âùJE„ < Õ»Îg Ck„_½”>IM ˜Òš“ñhÔ¿&˜Ï¡3àm?ÄýƒÑumsl4üXÓîÏ;r,¾†ŒF  è»q\W(žDS©•”¥ú´ ®ý:½1¶ÊÂ/¬æ¾à°½Tïˆ|(qe³¬±g$#p9d–p<Gå®\X~œŸ›?:ÿ|˜ãP(Ÿ <¸º‚ÛÒ)jË/ø g Ôíx¿ìiü¶¤<kFæØÞN?>ɲ·NÈ8#>ˆxÄ)EÂÝ)¨€®(áºÂ=e·ü̹¥]f£¸olwÔ÷7ò£KÃûóíÇ—ÐÍ?ˆgÌ Ï÷ y¾å¼‚fð é*u¥oà¶«MoÉpÛRòP9x àÉ~äàÙ|Çónó.ks1_ÕƒBs¾KåàBò›ä”TŽJ}¨û¸ò“¬²“m.[Èž±cmaY(Ûm›U–r]`ýKöüGŽDSÞÆ{ä[î\¥lüã.¡T¦ð&*¼T+{Ê&²¿Èég#ºì\h“Ù¡rÐ…?êÏÃ8‚•Œ…ßšoʼ·ÿ£€ê¤½> ÖpMÓvJ2·®½b²Þ*v‡?ÿÕmÏö‘’vŽM!ÑÏ ác×Q›ÿÞþŽ?×v™ö4œF`ÜÏ6HT7ÈŽw¬”µŦ¶5Ü™î}›Â-o{ð% obGÉa¹€¹wÑ,ÅÈ*Á‰9Ú¿rþ‡÷4ø]ËÜôÅSŸ»£ñ©+‚ T± Nb]VßRIe•/‘3Í™âÜtÈÉó•Ï?¼õ»ƒÌkóÌDk¯ÐœÆêOµ<ÏÜÖ¯X_¹þ*£óå¤?Ld`IÊ…ZJ R{¡㘊æüGï/䪿J¡‡U½³(3¢ÿà•ä=£Ôß ›ô¾l&}áó£Î‰êô¢?o`Eèóøþ“Q@¿ž‡^NÝ íÐä Ö_uñ4ÛÌQCÞ¹Sìe@™ä« LÏÓ7<üÑ ?©H¯Ÿ‰—Ðù¯ü…ªÓ9:þh–ˆMá w pZ~Œ_‰–ØH‰ÁUÙ€Ï÷4}rÿÇ]_'µÀ…ÖNÜH)¡ž¼ókWReèåBô·ãÐÄÞÞÉ“t¯G»©ˆ¹â*ãXè…—æ&Tï2´ÐXÿóóbž®QDo‡Ÿ©©£ËLÍex(Jߘz¢ïLÒú«!¾º¡¹ ”Y¾ˆg幋fÞ*®þ˜„ÒF€÷Ɉ žf4jQάÔÍsµ$X¼nNó'Z8*oåIœ—/ÑwÔ’Â-ĕز þ#HòÉ:. %exã ÜMü»xûдþˆ?†8MXðxRÎÃxÀHÀ,/x2üG\»IbÙ‘v 謄–!Záøã,Ú´&Ê6Xþ«Íè×NÐ@Q9ÚÈ;ÿü O•ÒŠïð»ÙÆrïÙ„n/™Ä9¤›Ü„[p¦'Ñà?6R™àÙFp<>Gé'ø]4•ÿ–áRKZ2ÉÛÁf²+e”í þ+/ä8«4×ãm|ˆ7Ûð2ónßrI_ Õ—0_•âV\Ý„&…6kcQ:Ë6`}|[ÖÞJgEéŽÁd—ìeNyÁ«0Êóò]3ám¼~ÿ‘¯ÑOÚR9ôsL)…÷§‡Ž_*-¹‹ír{Ǧ±#dš]/¡Á#— phŒ¡ý4Þ”4uÞÖ·¸êª/Âü.˜ËíÌ'”y1`ßYã Û€ž}öùyZèÔ=`êt‰nR,ŒþôÀè(P·Y€POákÁ!­§Ü|hù }ã~’?Îûº¨Å¦%?A;5€öŠÑÿœÁª —‹r?”xŸ?‹Ëeb ÑI°AIsÏ !Úß+çŽ9 íµžbÐZ†¿³ ®÷Àá?*ë$2ÿÿ|Z÷jO‘é5ôÃÎï_õÿh`]Wà (ô…Ç:í(‘?o( w“ˆAƒM…÷Nôʧúišå'jEgy(\ë`ùÆÍ‚x=QË¿å*œG[ÇÏGÃàFÛ:ߤ蕓@ûG¦æóÙ·ü±YmÔûLgš‚µ•¦šéÁík×J9‹’l—F¶±;Ýâ^A+¶…ÿÈmßöÊC¨ËkæX±$Çàæë2œÿï\¯}‹U“·-óØ—ñŸ_ëíÿˆî´prèÂ:’?»ÈF_g¡³Á¹ïˆá+Ÿœó%ÖcL hÆ SØ|έúª}ÈÿHGÔá¯Ûç˜ÞéH¥hÉ Ï9•j˜?ÀÓÕMS~q¨É > XF†O]1Á;åôzàé!Œ…\˜1]xä…î4 \1™€ŒÓÍwzÆÄ;ãl×à7’c¶¬rþÀ§)P5] "t¨Ÿž"‘÷$hŒ™øÙòÝ1çÍi¨£ØÐÍW©*p.:Ðó4´MQàØ}ÊÿqÍôÁO~%«?u¯é®‚N=0eCè쳨qB(à<n# ât@ÒE4L°•òÂÔ PdM¼Ož?xË×Y]15 GÁ¬¢dpßß#òbª t*L£¹ߢý´€–ÐzA :–øgsÀ )§N,•@_6/¨,Ü_:´üDÊ ¾ KwIÀBUL_F–ñ4®Á£¨µD¿Ä„ÿðVj…ÄÝ|‘À»)àZœ Îj}‹÷…÷¯45|31?äÅ|˜/ƒ¼c þ±Ížüá´‡·* LÝÍ+á2Þ?…Òâ»p’ZË`a9Æ…¥¾Ìæ*ü˜’ð `½·›.6µúhýn'Ü_EŠÏ[x!4ö`ôFO¾Å‰<%ÑíVIn‡Û`¿rr¸—¾"’¼ çJè¿ÁöŸŸóï<‡š€ƒ™ Ä¿ ÿ±Yfñeîb·Û8îm›ÆíèåV‘aÀ䜈½½äGðDè»`n=>œ`\hˆ4å›@sx£Ì”Ʋ”_óu;Ħµ'eŽí!ó ym?‹ësC´õc”d8o4ïÖÃTö}«&AOuƒ>©ËsKsÜäŸý͆²?ÈB °‹ ÄÛsvœ­!­ä.pº†¬G¼ñ¨ón¸¬liê{ãn¦óŒ¼lÑ-)±Œ¤”fâBö5|ËY.ÃmZw¡Ý`OÚØv¡¬²O% ðù&gGÛE—©àË^¦ò{+â¾Qõ Ìñ_àiwó 3–æI8·X£—½"ëå†}iûØþ6¼›×’ïíF[VbÂ!¥ã0Ñ5à?ªÕv¾å5j1tñïžßîczJN÷¸] }áÓX±}í(w›Õe·ºÂÑÜ à©q²QÃ^7kÑ982§6Ás°ý¿¸D {ïþÕ=_¼|~mXµO±ÓÙI¦³jíçÓ¾¤Îç¸sÛÑNœ¯ä{¾4ºŸIæ­ç7Á7j¾:¤O›ræ¼¥#|åúݲN* ‘Žºí‚?òªê,4ⳟ“ˆzèà{¶B¾R«ª¬ÞŠ™âí,JÀ›¡TÏé~´œ2*¼(ð~¦© Ç|A¼3ÎZÝÛ€y¹èÖã5%ÆÒhï¢ôŸSüqÏÜ„ÿòÙô1×ÍE£ýëw¯Á!ÍÞÿ3ü‘”½|Qÿå?ŽÂ¿vÞ|&^3§&ø£â\£ ¸­?ÀI(%çã`£»´”B.Æ> =–¢™ÈêS÷Ä®øÚªæ{¼²'5Aý@‰µ¢JèêPÁÕiÿäß.Xd{JaðÝ ªkN;§Cˆüñ̼¡RÀ¾Ô`Ûå`t®Í;I¾¤i§SÉbî’NG©ÿD¥'¯ØBáBàž¾Ôº¦ ¢ ¼–ä°|¼|ÿí(&´ymv¡Ë‚[¼¼ã§À” x.øjM£þp>IÌ¥Îìçü mR„ò>Ïå8¾Ç+3ã»P’ü`}6Ü…º// €á¯Ð[Ax5XÚ´ÖÓÃCšjÁmêîæAPø´û8#[Ù¡ò/ó|®äw˜—£Š÷û1\µOæ|˜Ñ÷ŠSµÛ •Q5^ÆÇè9Ï]ÒŸßÝž¶éÜØnzw¬Ìáü2.¦øc.[ ÿ^ŒÓ£”/˜[c.ST°ÿ!̆y<“Öó^™$ÕàŽBC÷¶ùm ²ƒo°Üoæ\ ŸåÈs~¦i¾UüÑцBŸT‡hkΚrYÛ‡R@fÈ5»Æ–³ì-; Ⱥ&+dŒÍàîÊ_±ÙÀ³QÒ”v Z1Féò:jgr›wëŸ «¶Ú`¤y'8.âÖæ Í–¸Àö[¶Š½#—ä‰ïްlh7›í#ãìrpG8ôvrðG ºjÚÐ!³ã-RËõFÓì1Å[wi&Jvw©Ý!ýe¾8¶²íg»CÜn÷;Û“_À…T¿­ï4Ü{f)´kl0Sì…?ÂA…—xÛ2W|©ü;ÿþÉGíR¯ÔNJ?õG9á‹ëÌqæ9Î •\ß¡ûŸ¯ë¾Üz¨‰Eááô Ò}Åi­V©cúˆI ç÷̱_™?ñG§=å¤ &;µÞU5­MuA0•©¿™e¢’K¿ë:_1’j«jé]t³oUN·ãÔ™.ëÀ”c Ÿ…FšÜzÊçÃùv;›á?êBž„ÿØLõxeê/‚C¨C÷)燃xf^›žfôgK¸ÀwÑší&TxA¾u¿ÜØ?žªayù¢–€Ýúxyƒéþgϯmåü@ÞÙyUQš ”J6þŽË¹9æé Œà©@ä5”TÈÅÄR?ëžoŠzhê€ÕQ3ÚD±è¥i‰R줪*y4ÿÄØ g2ƒN‚=¼Œ.¯¨Ž9ä\ !š«Rë7F¸¯†/:Œzæ£L†Ž“ÁŒOb~ÑÑdw„OšäÏ„Ø,Ô-œ(þ˜åK¤š@ðÇfnÊá8ú¡íÃS¸2Gâù”вB›ÿÍÛøEàq~†L+ñ'¦ ü(;èp§®©GÞ~¿³¼üq-7迨žB‚äTn¹À…¤°?ÿUhhæ=< u›cyã3X¿ pî›PpDYü»?v?ÎSk¾Ç¯€¯£åµ<‘Èм§€ñeåx(-¾HDyÁ£¸6Ø:J°ó9U1R÷P_‚CéÈCßË_’ËWRõóvÆhhÀc¹½9cêÈ ibŸKU™.—ìZ }Màý›_jÈIx9ogIkxÅ8rº&;4ñm¼Ë¾…ކBy OG:Ñ}¥lhï€?ºËje³ºÛìJh“Ûu2ÞžÿnÏÈrDÂk©«)nz½·ÿüWýÔD÷ô(å9¦/më–¶l5ð#nw¸mm]7¥í"ÍìB[LîKF)ÅÏéõ ‚ 2gÞ˵Vï7í0‚gcVŽ2ÓÀ«íDùMæÈuim‡Úæî ×ç&tˆëåž'ÅÅL~þhC‰8'0>1ïþ/¯pª«*þ¶ežøÒ«tÿ?««ê¹jï„×IôYvþ”Î"g«süó£ sÿùzæ+¢'›0˜ñ'Mr:ª·8uÔZuEo3ùÌ mu 'ÁW•s¢ÓÆŸÿ*+µ’Ô2…M1õP]7Åi„k¡O»›Ÿºb«Iª‰^Eg€ö¿Py²@½­T’"™‘4 ¢!ým ƒ÷ú›øzÎÄ;âì´¤Ð@à ´Ÿ~äƒY±öiNÅ͡럛‡¦Ñøã¾ãæ¤Ùk¢Ð-ÊËÞ3Ž  øy˜&Q Ì/wÓ4ºe†; Òiçs»}z;¥(êÃ\Ä;RsŠßð’ zs1í÷À/dã}p)OÍ=A}ÊÓÜòWšÊð9Ì¡ÆxOBðÇOÀØmøY þ‰ò/ü.Á•[½¢ð|¾©¡ p‚BˆW}ø ½̰“fQ90›Ëùx9e6ãtXG“‰G)»¡ßã7ó@á aÿù _zÝʆ›™Í5¡ïÓ_pQ†Ñ\ênÜM >4[Æ¥\~_ŠrEd6§ÕÉ`ñF;ü÷æâopy¾ µ?²C½‡“¤rFV[²™%“H.Y&…?«¹-oçuž ˜Ázz¨sÛ¼4¥ÁÓ+ø4$Ú©üGhYÊ£€È×%‘mk÷ñt.,FzbÔäõž\CáwåO‰W„ÿh …KÃMÁØ»d_ƽÇ}íNüÇýѽ S;Á€‰xœÂy¸•óð›ßÛžØÜ†» ¢ç(Õ<ð÷Þ&%·Œæðrþ#‹½ ½lO·(Wà㾃§9O» Vþÿ|oýU _]Õ¯/|`3°L óÔä„kikOK)Ç€È9íïö¨ías‚£6¢-ËÈlþÙŸ/wF¹ÃçÞ{p×7Ûq8'¿¤™^ÚPs‰vr {¼3F–ÉX›ÑÝm·Ûãþók{ÙóÓö“‹œ}NÚóBjkrš©oë[TÕÕ7MD´j_jÌÓL^Þ.ñÝ:ˆWÝÞ„ÿ°oìt”ï‚hH#;¥‹dJ&¸Ì}‡/MUºþÞý«=jºÞiþ¤ùoµi‰‰òŒ²S¥ø˜¤³Ím ·ŸûÈÆpËÚÙ|×f²…ý«³¼S1|w+Š¿LÿÊú]Výüg•ÿ×õØ—E%þ‡ü‘@Q/T'†.®Ÿ©DÊËW‘Йéü ÿÞIú•ÏÏoú2joÓKsØT£ :Ð)£fªmzIþxåÈg3xuqºB/ 3Ùh,m¤š¦™É¢þVWLyêgFB­G¦a_¸ÿ#žš¬Šè•àU@̪@˜|È;ÕXæb‡£ ÐÁÃL9=â âítîèøô…ƒ·] ,þÿfò?—>‡|âs2t ¾›úÙ.öíƒZÛb|¤€ðç1¶¼Ó]ëUÿ¢<œ? ϳè®éˆV¨ þxö™x52¨iY0·ÿ<ø#â…âÂ`œ|4þc)åBÔ æ…Ž¢B:mÖ»®øÚ«K¦,X¡ƒ×y¨§:Tþ[”¬< àª|-¸\_wnޏšÙäÜ !Z*•A?0w½­äJû7Ä¢–·S.ó³¶PÓ¿qYx‡vð;))FS”õAü1Ó—Sÿa΂½l#Ñù–÷T<'s&O˜œOxkS1W_ƒ ¦c$õ§.Ôž^èãîyÎwæW L¼~0úŠNb°•rRvÚ°6«p~) áïRRžÉ½á~ö±J}”·£sͼÁhMÅë9=££ßá—@âÙÕ>ÌàËðÕå9ç$œÇCn¸™þpv%)¾óáy›œ’ô;í¢È\e §w”'Bïvæ›àM6¾+n(·»ÌâÜÒIŽíSà“®ñI°ÍIŒÍ<Áž¦ÿÈÑõ¥Å3i/”!RVz£„wP²ÜöªŒ±d0wBíñDôK}x™ëˆx ¼9À¼ë㺾ïÕpŠÿqš"Ú&Èd’ý@ö'’WÆË `}A[ß^2ç“rІ³¥d úº+Ò~8ª¨šÞ={|ä›ì<Æ>‡ÿˆ!Ý©¾y T~!†!^Æ’¢îQ»åÿ#î, ¥8Ú­=Õ]¯ îîîî®A‚ ,X°`Á=ÁÝÝÝÝÝîîînÿž¹ëG‡ dÝo}Í"gjª««ö³wwW•žÔD:Zëy‰‰??Ê©P^,€ÞÔÏ´Û¯¾©ŒžΧ-æévMõ¯ß~M‹‚=¤Ï;E›€')´ø1Y³KXM$IáÀKEh—Ý÷f¦»È6DŸêd7Ö.”dàÇti'Kå¬4ÓÚZß»Ð{OÃ{ëèüÁóù,Åä4‘¦@?zRozèüâùG{§mˆzleßî¾Íi2®åL#1å’lÖ´šI¶s6)(“9?d¨‹´r_ÙrŸ¬Ö÷?G;çº ÖÆ!Vñ@‘T¯sH8ü¿$±>¸:J·#ý$¯yG‘CÉcüÄd.HY(š3å³O8%P÷íp-ùñÓ£yæn2_ZðAn§Û5–÷~·‘éœ^ÚÃÓÿ Mžrí…Þïǹ7p[|V^bûšR!eÝ¡®`Ã,ä 2TJIGd¶ÛÚJz]Fê`¨qsy%—¹;Üͼ™<ä×Üù³÷w‹{~1S)wƒâ·FÝjÙô«ì“6ÈÙd²ÛJ §5ôœNÑrRüP-+‹¹÷Ey§ýOæbÓÂå=õôq® ß¿ïãH+úɆæ¡\Ioh$íàË\šÉ{@êMMŠü1IÇ£å<'âÁàÑh>HÃmvûñyÏ咽{×?p­?ÖÐ\o)¤¶ÊzZ\p(¸wÖDù¾ûW…t¦Æ‘V g¨)\V^ºn×}àÇ>3×]e[ ËO§4ß‘$Þµ:M!c,—‚ÚXË‚¾=é[é?ü mYC'!™XЈ‘»;S \ï”ÿ•ç±ÁâZæ¦'«‰ö/ù‘ÑÜ5MwТ–ûÐäD){=Q©Îç•óÞÄýÁý?S ¬C ©@çÜKN-3Õ,q·ÛäÖ±OœhγoòÉÑÄ™B¿P›J?jÛÆ6¿`öÛâTÆÖ±JÉi\ ©¿v¤0ƒLw¸q}¡= N¼ ÚÒ€=N5Ñ7Ò@c;ÛßõüãŽsÕ@¥¡zÛáæS{Þ‰Ú¬¦åà\ZzQ™®ú’=`‡Ú߬áTÏMûÊΰOíSÊÅÇèW(« ?¬~fäÄ`Sží¤S¢ºßšžË) ~TBÛc#É$¢(PõZp婸%(·5=H9¡õQnDüþZa¦“¹ck€­QÎj(òEð£*þ«(jVšp5¾ˆXŠn£{ÈL'áô+Z{-ˆÂ¢˜ln8zKÉAïàHSË)3i!³œ X¶ŸJ†qö­•;ù£=¨Ü¿oî—¥uñDv{ØÓ Ñ®Ì!qfƒ¡ÖcÁŒ!Ð#ËÝQzx>~Ìâ«”eÎÄÈHãPîKwŽ ¼SX;§´m„„—{=ÿ„óꄘŽ0Kl *оƒœC²È<.м“žwó?þ1"Rž/Þ¿jâøæÎׯÙ.‘Öò`´MO~}[Æ}%9|oRýK×ðtÎj …öåæ'Ðîû hm3c üqÜÉòmE/ÎbNðL¨U;äÖºI_éq}£•‘RJ_¹ÀÑ#‘?ö!!Ý@>lãVþ¬¼ö1%åÛtýw Ï!¤.™,Å¥=ŸæcÚI èé¥Ën-/åOà\\¼ÉÇqÍyÕ'÷¯J{~3Ó@îVü„š¢þm­PU¤–&úLrIÙ ‹5—V×:HËH Ù¡áQÓåè“ýØ‹L—„cqZô¡<2ãœ÷”‚Ãr7äÎpQPÇ?õ‚ÿÁÙ²Z {¯á|ïk*Ý(ã‘?¢ë(Ù·5†]Áki ýÅ~T‡?LK÷…O2˜–ð|»IoC=¥åõ©¤Ó=zD7h%} 1u¨T@þÈ!±4ŒÄåØè«è‘ÍM7í¼OöÚê®´mЃ§a´.´;$¹w5²Z&Ý¥š–иÞuÞ™ÝÛUǃƉð'#d·ÜF~¼m§£þŒs‹ù_Ù¿VÍÀÏø‘ö_ïßÜ2ïL?'¬[Ê}ìßÿcŸ'š3Ï„DÁ‰öƒë·¿ðTqwÚ®À›q¯:ÍJ³Î]kS[½íDþæÊMŸ]œUЃ‘6;FñLúÍÖ´)ÌP³ühn;X MìhFí׎¸fº©én¡GPûjPˆ`ШTƒ^¹ËàÎP=zisÒsÛÖÖw|GyÇœàG>ŠÎ»á>¶Â…o§xp†3üüx])H‘nÙövï7k¸Ðsiµ}g•³`<ÿŽZ¾·åáö»DÉ1RðBzlû ·–§·Žós8™È·3Ô¯t ½5:µBñ­_ò+ÆøzRÖÑf|G"¨Ê`}ûõûWŽéaNÚ*|j^Ÿ Olm”½˜Jq$NMm¸Ør ch5þöÞuøÙ*6„Ôù„¦øqŽ|1®žo6çO” $9D)+‚ƒü1’{#¬Bjj‰¬-‘†áÚ|YÚ`Ol·‹ÝGxWáÐül(O= b#¸Çl8„DÐÂñ À}d&j½ž†À‰÷¢»Èç´sJÂQþFQ(æsEä™ÈYI ýÏ8¦Ü•EðÌåàëÓHN(_+¼}ÞÏg8$eúb¥Î]Þ$6ÒÇ&Ô¡7ò`¾Íád%÷“pzAÂh/]ºóï_›€Ó é\æÇðä•)+¥ ôþÕa'µ ð9˜3 ™ð*Ê™.]ø27Ò³Â{UÃ{ëÊ|Î#ä,Wà0H27y¾ý8λ®[î³òYæì›­TI{x“ô’È37¡xÝ5™á:Næ å°>öÝ•â¦HfÁ¸{Ü—~’? y*™hã¦Hm ¹׃Ê ûåOd˜2Mvê6ͨmõ¼Ó*ÒT¶id­„,×ù5ªlcH†>®·÷Ì3Ú¹æ?‚ˆ ¨‘½HËù7è}0í! d½æ÷žÒ+È ét¥ŒÒ+hÏQ² ©-hï›3˦û$–3 Ý'ÐŒrh‡)¼Æ®¦ùã¼þöÄA:Z©[ÀKÈ7CÀõ5šM¢h4ñ­’»jÓF£3vã'üXãîÀH˜íOóKì!ïl-=e´Ì•ß5ŸFónôŽÓŸ½tçðÆÐÞ:Ö·C»o”Ø…ÔŒ*r8Žg~eÜý'Xpá?á\Å¿~þqÓ¼4“œxîïîS¥ìñDr&:½è®:ñpÿó[ž_Ý=6Ôê†mL'Ü'NM3Ü,óÏ?c½nÆäÇPg8ô ¯Íæw]í?¶,ø±Ó–¦àÇ›ŽZ¸í¿«ÄìfŽI鮃¾]ôëàEèÞjôŠSîFhôxÄó6”êOÛû»ö¯}îÜtÛ,)f#´¸Ÿ¢84×Ï¢4pËQØ·þîk»ÛN°K¾YÞgÐÈ¥ö¥}DYùºÿÁ`TÿJ™¡ø{¡a  ó-i!ýEÆMø«;•?Ê [ìÁ¹EÀ'¥ôšJs6¸)mC2ÙM!y òü›Ê†0o¾RVÓΜ±ùøz|e'"òG¸¸UT†ƒqQjÁ¡g0Šv¢®![¬¥«Häuÿ*‚IŽv;öÙ@± å«ýù#]ÀçöPÛ× #c¡LiÀ—î¸*#9]²Á0æ‚Zw°'–ÛÙn¦ Ðæ¦ð¯ïi$óï¹5ó1ñÞ·SÆ^ˆúOÀ÷­¡ÈUé¶»Ó,T^]§‚mŠTéEVXÅ%ýO¢¦¢´ÅPËÈ;õ…T–œA2ÉLü=s hs ^=õP¼/Þ”¨å\Eþ¨I‘x¦?øÞßè̘d"O”°zM"ëXݾ?†¢=áï.ó-®Ë?£eRšÿqÄ©@=}Ù”3ƒiƒ‘Ïó#MÀÈ¿u•¾…;ïýYVpnèØÐåá`KAÿœMíÝzŸ•—ÒÞBÖºŠZ5CŠZKxµŒDþhÇ×øÖ×lzRÚÃ5/ævr<Åå¸ïàó¼Œ_pm>`?Î:-é©aFQ(ô†ÛT—ÿæ†ÐÛHðÛÍôä–Ž²[—hV­¢û´‹6EþØ´CŠ«À]ØÊ9ôòºœ>ÞQ|á㜣püÞ1ŒüŽŠ÷J ½¬µ—Ì—½ß Ûõ)RÍ$鬇ÄÑ1`{R°Ë•nà%SV›íÃù3-Ü6:¼ãÄÕí^(©½õP«2ºI"é\i½׫AGJ=®¡å‘°øÖ€Ù¿ñÚn±Gíôüg@×þ¤14™ÆÓ"yƒi©'Se’”Ô ú^7y[k.ðã0¯Ðºú8wH «?±‹áÛzqxN÷_™~Ê3É|L¢ï=9ÿõüÁÂæœÉæ´v"ºq]rR ”ä‰N'góÖÈ;$üï™2n'ûº~Þ†§ÑîJ'§©h–ºƒìAw±ÜÍåäÿ¡zwšÂ‹/°iá [ƒ=lÒ¹cóSÛÚÞ¶'ì¯nà5ë‚>r™e¦ª;çó¤U ®Uy¼\lháP¨bMÚl½tÕV·IÜïY³åš3Ü}m…<‚dÔ‡r ã&F/Û%¬ =ŸŠÎÙCv°}ö÷¯Ù]øŒn@Ó}kãŒ#ßî†× ÒE0"vQTöíRV€NåÜLß(±˜S»*ô~J0àHøx—ú”‘£âf¡Þ+èþ6;¸tÂmð՛̬6ÛlL^‡RŠƒ‰à ¡†‡¨˜oýÀ½ø‚Â/¥-`Çjå¯kÏùü¼°IæúVCTî¦Í¥”žrSäÂð|’Zb|^ã9p¹x,X9-› É06Îfmùc‰' úÛfŠÁC82ÒÀEêB•¨+ݦ9\™³r4îOEù>4ô?¦4þgUC‘jªÒ?ôÖêÜ T^:'¯MM*ç# dñï_;×v'‹D—ªÁ5·G~(ÊUÃøwáv+#-̆––ùâùyç=ÜT)Ð(Oåpø¨59Êóx¨D×·RD—êu° …D•upàÑù9Xp”;s&ßžõÖo?àTÑ–QhœÛ0nÉ[é:——ÅÒŸïpw=¦I½W4·³¬ââRQ.!Å1Oás¼Ç7gìôº¿Z¿d'H~›ž€jŹ3|ùTé+õ%;rF;iT$¤ÑºM¸‹M*ÍøWPc/ê·—ÏâºûdýÄ*žjf(rw'¾KýÀ‚v8óÐàG:½!)d¥¼ÖåšE ÃßwÓ¢ ÛbM¯‘d?¼Bg!‘BžÀI|œ/pÃ3ÈYEwárSLÉEËlröHl¤˜,Úåu×:@çë}-¢Óe€“ÐÚ.Œ+\Ú mÚ’vćóÍaŠº÷áÿ¤þ´Š[ÚM´MÄ›œ¨§›e¶¬Ò‡zD{¨×]ÛK7î9 É$;üÞÉ µ8`—~²~â÷Š­DP¿´Ú6‘¨Þà ‘o_—ݨgz-àíá=¯•½yõ ßÕvÚIn®øÆ·—f ÙÆA^&ûc+Dýßï=ÝLÞ-sËSÈû—üHf6v~u¢¸éÜ×~zƓؙî¬uî9aœÄfú•f‘ØDhŸ;ö/Jm­»À¬2¯Ü¶˜}å¾uþ`NjåÌ£xÔÖFDkO£Ñ6½ iZš76.%·ùlL8´™nÚï\¿¤»ií®¡Käó¤!ฆòAè}<{J¸£r‡MO÷m3[Ëõíâ<‡n* ÕC?į.|J܆öû×ß=FO)!=µÁ„nöð7kxÌcè…]‹t}“2ñfèéB OµlÆS5ŒìÇÈ7 £í ·)„û­VŒæäBúŠçššé()çá_¸ |ùt”@Ûñ';(Rùe7‚ùÚžê+<-ÌB[^¼¼ÛBJIïlCÐqU†fw¢yÜ}sj})~ Îþ$MBV,i¹þUÊÚDÇY¦ÆO.§ T¤½NÙùU·Ýl²„Û#=ÌÄHïˆß^¤ý0´,þ²´®ž0n+\Á¸< ŸˆÆÏÉ7k}8…ºÖÄyÎÙ§ç‡< <¸¥œ¯Øù£o%/w×Ï?Ú8õ›ëÀEOá ðøïÑ‚Óü³ÿâJ.ÙíÑRri!òG&(^xnÇ¥ñ³cùŠÍöÅüÁ–ŽoÅ¥N 4Ì#yúÇX"ƒ,âúлð½­ô,’I¨}WŽÂÉtNvÕ¹Ô4ªóùÚÍÛœ´ÔŠ‚rwîÁûé(/–yÒ‡ßsÝ ïQ}­å—“Îr†#r$n­ßŠ|¶ íRÃ-ûYyE­â;OÓ3ꉟXHKyŠL“bHGOø¨6Ó|z^Úê09ÀÝàÅs-.‚ß›‘¹VÊ xÂ'ó?ÊÁáÏD{ÔAO© Vþa¯ÛŒrJ&és*½dº®ƒÒ×ÔýÚV;K9ª±Tdçæ6| <ë|òü#˜™ê<¦’ŠGPB™M+íAzÍ™‘?Ré䙳šÝ{Ì|¡ñt‘LÐPšNk sEDyÏyFw-[ô“õ;šæî;£¢?mäs6€úÊOÞÎÛFEÄõÔZÚGC{SiO)§s4‡DÕð"H@sÑžÛ¡të“ý?|óçc$,€ÛBKí ‰í]¥[ådŒY’Qûko¤`äýÝ[Wñ9Í«µŒì”3ð0§ìß=ÿý«€¯Œ»ÿäÚô0Õ>´Ì}OZ“ã_¯_òØ<0­œçN)×qrúß¿"g3ß¹êDtš]?TÚCOQw\txÚ?èÎíc¶˜-îyÆîuŸ8Žócë7qúc4wCžéŒ‘_ÑŽ³±Íã›Û^Û6´¨(õqÛ}W‰)Íd“ÂCWµÛè=ˆ€ÏâS)-ùÖN j'¹©¡ÌC¸(/†R¶Â¯´ kXÔ8d÷¯†{RºííJ ½È€4àá9h;ßúW#¸,é%  Ì|‰f®S4žbµGþl€ß—ÜÛfn ò::¿ÚÊp%~¬‘.â§ÇSl^Ë!%ÿówRºœŽzh| mÚž|/ƒ"ýb›º.?9û­‹¶ Îsy<~¢[Ô‹¯s4™ÀÃ%®–Äð¥Gx÷ÜÚo‚—ùOÎw=Ðó­Näðô´ˆs:MÜÔ8žJ»yLDrñ½uY;ÀCŸ’Q:^nÏåˆQýgïùœÃuŸôÉüóêž"f.øQ—!càFV)©ì‘êzOÊË"YªÛµ¾ÖÖ»:DËJ-Y¡ 568ú+Ë”™š#pbú¸¢Ì=ÏçEBš@1¤U²¡ÙJKݧᵵŒ—cZÐ{JWéAÍ׿”z'!Ï$‡Ÿy²›úÛüŸ¼ÑÐÔTsÛÈÐÈ <ÂΦ5Ò›­–Q/"/Ü× Ú]û‚Á9À’:]óK$¤hÃÈOl5:a|àÇa³Èmk ·è˜iIJï|Ý #µ¬5Kk$ïAoXüª¡sù¡fEÒé'å=ràk; ×1 ‡åØöÇvXú¿9"™Ÿì?xÇSØ„û—üˆmn™Ëf¦Ãî¯î+“¥ñ¸Îg˜ãq9IðýݳžüîAžâÂÓ6¦».¹­ÌS3Õ½m³ÚàG¨oî¼úùQßéüÇÆCk/¥rv”o†›#àGI[Õ^Bàþù]%–0£M:wzÂ>ú ú!2örü×qw!M Ôð-÷lÛÞýíâ<÷÷½-B>I+iýÁÛ&Ð $ˆòô –‚ÂÁ¯¶“ì±ïà‡¿ÙbCÒ *À» 8›‰© ¥¾T”ÓÀGgäɨaЩ qO¦?=â8)¡2µ­BÑÿŽº=¤ªœ‚³#ûfÑ §óí¬Nç-ÛÐ&¨ÕF|‡1µÌx[€·Â1•‚E¢Ó¶%j¸ˆr°Ë¹h׿ë´Éd¾ó²Å¤¯Æö‚ÔŽ†ÑLR÷…Ý‹v[LÉi&­Ç?s‘äqy;Bw7©Œ€¤ ÚR ø†(¹aQzô øñ·'±ÛØnEBµÃoi xԊ߃ó²L/ˆ¤³ƒ‡"øæðO?zSU´LmÚå2ß´ëè4¶õ‘#㬢¥ž µW¡„ÉJ’ÉAÙ~Ô”­œ\RÉ8pý5…D]s [läK¶ mèJvnض òÂpnÊ}Á¯#4znd•¤Ð­hÚKwáóÙä)ùÃ÷´û0\~ ÊMO͘ÏJ\ãdBR^D†Ó#Í åÚÅ#e¶”À§ë G~W›£n±¤/øá«a{ÞËy9¯ÆµËãVù¬¼JàGF(ô)š€Ä6™ÖƒF½¥”tà£|O[hn$¤þÚHzóßr ù£çäj¼÷ól¾Â y…ý¸ëXuOV³­™õpo¹øÆÊ-;99'ø‘è¿2ÿ<ÔðãÎ(Ƥ5?¶.ÈÇ#­¹i‚9½n!÷½ÉˆRxÂ9#áÎ]',øñcwç^xjºK¡‚±é2Ãlw—“×,6Ý…6”=åq^™Û?ª«3 ð·õÍ€kEme›Ò47lFŠoqÖ¾´ÿ¸=_ÐG&3ÞTtÐ1äWxÔ£ù' kûÒðÁÅ¡Î+ÿ´ ¾ëþÕAg­ëúß=ô±Zê[+c< Aù9ñ-‘83½³ínû—½ðÍ®÷Ĺìc{B?A~F„€GžF= …Q}+{ð@ôºfpý(”û­»•œø(¡>~‡þ 3EFÙù8|Þmš=>€³Ž…-AÐ87’ùÚþƒï<5L;› ~®=ø±¥G*ŽÄQ€CrD0©6Úà(è1µ;‡$áË`Åíµ ×/Ic º±ÁE÷Ø›KÛp®%‘µÎ¢v“é¬ÛÀ}Å}¸&'á…ô·÷˜t£~= âþÕTO2÷w»›bñ<ŽÏ¾XG¡¼î”<‰ 6vÄÙ…å½ÜÚý×j,¾c$hÚŒÊÑLwóo‡4w*ÙÚà‡Ã³¸#GçÇð-³(Üñ;Ž_¹JSN¶qR) c¹0 í¯à¿?¶Ç¦²½ÌÏÎmûÌVEF£•¦ðH¸‹Ðú·àÙT‰£ñ{”®Ä—+#9j}êw›qFß¾ðöZéøî‘.Cýpë(]æŽàG.¾ÇÃáï_ûvÃðV“©UêÁ‹ÇaáF|É¿ÔnNõÝ Ÿ•—Ó¾¥8È ·©Å4äÒHrIy€âµÓĺE@õÖr'¹-÷q5Áõ Ü6¤¤Ê<Ú~¼Æå=…ÌP$­?øµB6©jÏÛÐÒœêj)ä…U:V³i)(~K-)d†Òp²™+rO>Ã[Ù7Ïâ¾ý8ÿ㎧sRáí(¢ô¤¼ö>íå?Jkci&«5•w/J»„3Vúé ­õüï·á;È4;À4öãì⊦{ß:è¹ÿà<'؉ÔI^iyÝfÜÅg#µrHí$yp]ò#s…•ÔìK Ðïk+>Y¿d2´Î÷þÕ8(ÀT»BR{‡êi*—ÑS:i+ïFï-àÍ­cøŽ¦ÔjÚíq™û¹=+ÊÊa펯Œ»ÿäñÎ3Êüü¡e{Ò™o½‘óµ#¾¹gâ8Õqqß™ÌÆ·¦Pxg 3Æyå„t"üàó󳞪î:k?žø×¿Úì$6 Ì8w¦fﺧôßœ9ýùÑІ‘Þ‰æO¨|ehqù#%Û»mQ7ðžÓA©Í(SÖŠ‘²¾¾TþÞ€‘Ø¿’Ù:(ì› igÿú®ùÎ&äÌð´›iúOÞDÑüobì§lÐæxœ’Bѻݵç¿YÑž[ö­]i¯bŒäóg‚ÍôÒ–‡º@¥£ðJŒò™tÓöA½[Q"÷[ë'>59è4Z®"üînòÏs¤pþUC sFŒ‡é Ó1šG^¸òtÍF´á̉¯”¥¦‹l‹#Õ¥Ô R:iË¡×PYN—\ƒ[ñ%ðx3­ tÄ:@¯¨‰}äþQ‰M47~*!¯Ó¦cdæ£THHWéÆÕn¸˜Pæ6œž¯9ξ=¾ï©+ÔúW=‘Üöv¥…Ã.Ä©‡¦Qe\O ož‹Ï€LY(4÷Ïÿ°œ™÷ƒqc‘iZSS:äîùbÿŒN5[Ï÷Ü×ñR.ÊÑï&RR¨[4yáY/ågh^É/‹ÀGÈ£PÛu|™ÂÑö2£ö¡ýbð8m òÏ j ·ýÀ¿T\} ñtœžYê Ì@êJ ºÜa•žœ‡òS2çóµÿ×9)¨øaáæ ¯œ¤»ÜS¦J§nU7@ãx;¡nE?NÀ-„‚’>åCàÁFd¯VÞ¿Êl-RÛSz@Mp£i»þ`5©Ï»ùô4!øÑI§ÉAî-ïå98YùãØq•ŸÃç±÷>”UÚ“ÏôAò¬ÂWPÚ0gÛ,r\ªûùÑm7Vãj!] £‘rÊuM¦Ùe;ÊëÅ$·8Çà°ôQMo‡(‘ÿÚ$Ò™ÛРX=¬?ii'Ë5w=ÔÿŒfñÏ??*ùµ•l?z"ßMà‹ÔÙf±Å>œoÓÄ=o‰JƒsÁH©x T¾±o/(P8-¡7AäßþCí6ÊÀ+@ßý«qhý¶àâ œç\Õ* Õ1ž‰ñ€"óÔr*ÊO»×]f*ïWð£¾o>#o„g/Ç7¨—Œ·pH '{à¡ÏJEÙÉ9¥ ŒãRüŠÂ@Ç›ûwdcÛÎ_äCöZ+ ODBZÉݳò-~š “úZÂë Ý].$"Ë  )ù_ç‡ÜsSZJhýÄ=Njjé{·g»„‡Ài\å!2X:"4Õ½úVwè+m ë8ƒt“\†½(é*¯õ%°q õÛ Ù7`¥oþ`[žÄch¯• do>ǵ«¦Ð}Ò^—ËQPêµ\Åu)<³5¼Ž3.Ï›?™ÿQÉSÁL$ƒï¼OÑ–[Úû6…l“JzMJÈ4Y ~ÄÔºº .¿•4”½šJËËz”Òyì"'Äõ Nߨ~â€ü‘£a4¹àGC{…<ò§^ºÊ Y¬±¼{@ãZPçÊ%”>¤ b¾„ØM£lúOî_Õ0µÝëþ§Q½i!ϱ3¨‡ÄöÖuKéU°|‡¦ÑiZFïªÕžCßëO’PÊâ*/GŸaú.Ú5ø1ÓÌr—Øê¨Ý0ô‘¥v„ôNÔ ò'< ©->ÔeÞQÓÛP8ª×7÷¾¿‘;´‰.zw9xšèÿ•ûW±LïOÖß}àÉãß9ðßIÍMÝê$wó»âøJ9 õ™ælqž9a˜fý•ÃtwÏÙ ”ÚY€®»[RfÙî®±™í3×7£ýÇæÉ/pR)êeïK½èO[Ùæ4­Ì]›†rÚÚ68<éÀï^ÿj»éëî§Gt}¡(Ws8êTÒ®EɾY7m:8ñú¶û=çüÂÙç¾µ…á?Ð6(çÏÈi¡÷+¡ØYÁD\£Ì¶¡=ûÍöGJØhC!#ä„oþÚÎT žþJÇñø4%àÁôÚ6GZ.L¡ÜoÝ­Ì~Eþ¨K‡Q»°pOQ)&ņ¦VÞÂÁ®BŸ_]ó%¯G6¬Íl‚Ú­Ãw¼ñt±³óZdò4Yá‘mªïò¯,Ÿ•Úp}ö¥ºUøµÛ¿_îv¤‰òörïïæ2?»è ´| ¥AÝ–@­s‚¾7ÖÖÐcw YúpNÏ“0Âþ÷ OÏ?æÑ† øÑÇ“Ýí~dæ…\îý=P)êGᡆ¥Øá¶è‰áù0þoT-!ø± äì‹߆NºÛLàµ#|ó?þ„+HÀ«y>Wå«T5L‡ô]âÉÙ ÍuÎü1‹û3ÍJèÕPäŽ n{º.56oZ”·¿»¡gôáÛH+“x DïM—¿å—GrXù__€Ì1(‹óùŽ†ÓŒ`ê6z íYÆ“ù(=æÉÈ¿!´ÐÙúBŸëYm'ûÁ¦-7~ŽwøöœE»ôtËZ¿$.ÏzH#Q£Å´™çI)'‚.h3Mí¯©óå2דKrßX=hèq TªÌûì¥eUò40³ÈÃ5ø1ýÆ?s›¢É^©¨$— ”Ùð÷É´’.ÕZ]ºÊZ ¥%dZ¹?[ÙÍq8"{>y~þÎ3ƹ‹+û”R0‰Jãl&]ô˜ÆÖ²F–hqï>=‰ó¡›e¢>–‡2 Ù0fWþñ¿¿›÷“DØÈ´Fþxb‹ÐšÁaì ¯©¼™u‹þ¬'$¨¶Z×#FyÃq]vhZI $ ø±­n(½· >ɳܶòlo¸½ÔtDJ{ëDé,ceˆTÕŒšÍ»É{Z£y»Ã!ó†Ñœ:L–É3Œ¼·v™ï@Í‘í¾¯Œ»ÿäÙô7>´ÌSO}ÿ*½ym²8=ÀÒn*Ç÷Nð~Otgª3üHá¤úb‡èÿý`Ó ù# e§T™\à”7óÌ|w…Md»¯Nˆªçrg=œîP[ã~"µ´Íl&SÍ\³©”-kŸ }¿sÿÚŸÍN3Ù݉Üá[˦8Y®5)Oì< ~T†«N†þÑȶpW~Gyœ½®ï…Âs¯ByË)¾ÿNÖ *@¾µ–²ÐK{Ñî°ìåoÖp•'YZh¯Ú‡àÇi(NAètQp©¥†']E©x=@þØ u‹äz¿Qbfçg:Nþ %?N.Õ"¡šs€ I‘š‚O«Ð¦ ùU ‡6¤Mg}­03ÈÏ(¯ t<]?êÀçäÔœ“rS~ƒÌ±ç¾¼ò€&©ž]äó,&¯›µŠÉý(1x³ç“üØ…Ïm¢÷n'7–Ìà&Ðæ¡Èœ­©<Â;$ÚUH__–6Å“Æn·#£MÅ'’@ÏgQEêˆü19Þ´Mħ (ã?b£§€=h8óÔÝùÅê<5ò¶2‰Ã·×ÅCä”h¥\L|{Y¬SÍ%{8™ä‘霛C€Yë¸3ðn~k“Øn®Kç¬ I•PÞ n;¡käsÛ¡—}%‘Þ’äÚBƒ•ÅÊ hhf¹ŸèÌE()%ôüc“µßŽÞ–g<Êÿ9fšÔágÜÊÊû !‹8«´” \ž~6”~ï?†ÐßÖ/ÉmÃrLPò&uä><ŸÖóBélÕ”ÃËyí¤ñô¼tÓ©2‹ûÉ ¹ˆoü[‚Wø.rR5Þb?¾#ÑÈÓÞôGŠô­ÆÜ†ëp ‘ÂÈi©~¤—²î>…þ¢»t¸VO–iX­*[ø\+’]èKa9<}\Íã9øq×Ì÷ND)Dkl6ÞÅeÀxÈÇeŠfñ =\Õ”ºIÆéiy*p:îëo¿õÔùããz_ÕM]÷Š}Ï7æs{»‹Ç›K7ieÝ%e>ˆ±Të ÑdÖ±’C'k)‚äöÏCõ½UIxö~L3ÓÝy¶ Fæ]FgíNñzÇ"t’1ÈphQÍ;ßk¼9¼et3ßÐXZüØ"ýÜAR¯K¹ÐRd~mÜýP¾»ùŸÌ?ÏlÿK~¤3Ɖíôw¢¹¿»qßóóuž(ÎHg’#n 'žù±»s/<­Ü6?t+4ÚÇ­kÆš™în;t/8‘óCõìåœöݶù  㨳kS˜Ææ¨_ÌV·wldšà6ù®³˜¦§{nô:õ‡+}€³“ªQ\»dÚ¥:‹þþĶ°Ý ß.ÎsÖ9í¾‡/öðYÿÞ­õÐ+2ø÷p}ByàýÓpòÒS{ÙN¶ç[¥?"ÒL{ɾ¢üP­*È1–ª£œ Ò‰xñT:aÑAê@ÉÜðß8çNiht ´ÝY:IáÀÈà‡—krA. M™†sÞ%Íɇéw¤éD6ÉW矿ñt7çl)ÞˆúÇgbÒQ[5\Hå¡=i©'ÔþRÝFpô ¾íÜìªbùþUl“Ñ€ŸHÁ‹(¨± jƒbû÷:ŒÑÔÁ '“¸=T`´»ÿ¨6~î]ù#š;ÂnEëÌô¯5­”Ÿ Çãá”Spp8©ßíOçg`Ö(Pn õĘïOïÜ%&ð³Ëß?þ¢²ÄØÅUð™n~Ê®…óM.çe½:ZAîpAðc*Ï{ŠÃ‡?ÎóEv)© ü.y!ç¼ ‡^ßïcÌJßê¨OЧ…DÕg]×[<ˈÈ8øÑ$ü’ókîŕџ’;Ÿ¿µÕID¶…^RF^é.!ÇÌ‘šøþŽºH_BM­w€Ìå|Òœ+ ¢vó¿|Na: u‹}V^|šãó^ß[}< ®bÏ•>àG{”·O›k$¤^:]&pGy.WyR]]ä¨+|µ¬ÃÇ?{þQÕô¦PÜ<êÄ­¸—Jqe·ÔÒ§’ŠºŠœVëê6í£?˲__HY¤ÕùãçAoŠüÉûW3Í9AÙзFRTiß’ŠÇÊ/HXQuˆl–îZÐ{šA³ê™¤÷%¬Ž—½ÈÄý8¤LAob |²ÿ` ÓüˆBEh(-â~¶Ï”tÞ‚:OKê9%;ô þ»2Z0­öõfj*¤’0’óíôyêŒ=úËÌBw‘­H“‘fWÑv{MÔ›ZGI{™!…´ƒ–ð®ÏSzÛèx~ Ù´¢öÇ÷<€^¼´³0&bÃ9ìÍø¿9bÁ~\ÉæŠ'ß¿^¿=±q/¸5ÜW&JÙâ‰z w¬߉ûƒë_yL÷ŽÍI¹ …è²ûÌiföš9È$)í}÷£ßÜ9ïóc‰³‰êQä:¸JÕm-«æsÖ |¶}lј@o$~íHhö™æî) ξ}]S"…t…{,Láíhé:*Iûl|0¤­áÎüŽòn8·\K9)$o¦ÍPNßþçÕÀíô9÷*g>ÿ,Ê3ÈL·¾YÃ-_>Xn_Û7T˜£¤õ ¹xMEÊMÀ(¼ëÿþQ5)¦û­]q2€=é7ºD§Áò¿ Â1 íÕ¸,ø!<™†C‘7QbÞ*<¶ál¶¯Îÿxàé`NÙdÈYõèghP$?¨H cµ ƒã|„$±%àÛîÒRþÍ^übv·ïo ºoìm|v6……nÅx.„ëq$F íp7š,…ÎÊ ¨ uBVŒì[¹çYüøüo·AYfseö­õ=åukˆ3NæÆß]ÇßNâç Ì2škÔߟln¹‹¿x~^ß)ˆŒWz¿„·Âã_¡–HUi1<YŽÉ ®ùå&ç€òMãBÿay·¢îåW ðˆ@×¥žsÚ†Àuˆ‰ï_"aÛ‚ñe6ÿ-‘ôŽ$Öªz´ª$O ô19=9ÆOà¡K!¤vÊ™àNÒs>÷FþxÀãeŠôàç~~<€ú]Ðv2ž–AâÛ+JºÄx ~Hë%?+/}KÑqePKüÜZƒüÑS ƒàwÁàÇsi¥ýd!O„»¿Ç]¹¨ºtÙ̸Ÿødþ`3OC35«Â7঺pKtžH)},eˆ,Ô…š]›ÂïwѼÒQöijM"k¹Y§±½s´žÔDÚQâèÍÂG•H×0‚žØòp2[>áÇw1܆ïý«q´Ûî×ÛJ'K[Ù/×%–þ¥½½ ¼!¼‰½Õu8[o2í+s@®`l{?Ú#5‡âXÿ%~|ºímOz“ò_ò#’ybÔéáŸÿÜñÝ;è‰êŒw&8oœÔNÌ|~îà]·Ùá(½ÇÜóNsùc™Mn¸÷¹ù±ý?¦;ë #Á‰ð]åm#Ê407‘?rØ\öž}jGçü¤æ4ê¶ùú µ Ìйf¼ƒÊ[ߌä¨íz¨ÔyÛЖrÏ* êæ^›IZ\}¶Ò/Ðä8ðªk1ÓÁõ'äÐågö˜me~³†K=‘)mB¢"þÏS%ôȰ`æBä®ÜP•eоitÝ6„æW£àî×´þÿEœ¼þy’eýüð"‡Ä¢Œ”ˆË!ä…’®§9(iþd'øqËZû«ïï¾ö´1;áÖNPg*ÖF¢#¶ 5/JsJ.Dcá8ŸÓs3Îþ Ý£Sô‚ÙcÎÛ J‹m²¸!Á™P8Ÿðn»©44>)>c‘pÒØön™ÁݹÏÆwÁïðt9s&½‚]< Ýap yòF.q6ý…õòXühî '—ñ^ÎÐn)M‘Û£U;Òw— <Ó§«SÊþIÙé=Í„¿¯ÌQÖ|$˜EVÒÈiY /MsV)&¾o|MIx"·æàÍU¸ÝÀ÷¯ò87ü;NçÐûÝ<Weè]Öð §W%5åW†ËÅQ‘=.à':°/—% ôþÕV' é&¨tÞÎãàô!1Œ—Ž N#]®ïô Òù£¤ô‡ @¡úñi|ó>¾ ¥ká–ø¬¼ŸìKJ J^£¡<”WÓ^$ý¤œŒá÷|DÛkf=+“õéÇ#?^ðŸ\ dÒÇ)¾Å ¡ÂïQVö”5Ðrµø.5â߸™-I·ù¨ÔÆYVÍfél(}Y(þx-( ehV–q=œ«GV!ÄFš]ñ¡¼—žaN€Ådå±}c£Kci¦çñ¹™øüBÍæ½ˆüqHë|Ôòžx´¯ì‡ÛêÅ® AþèlËØ±η“)ï^° §8ºsh›š k!¯ÑíZTOI€\ÑÇÐüÚàGzí&¡µ§&ÆŠ-)Ñ»7PeŒæ\tÑîýÀ È ­ïùØ@ôªztY2y[èT©'ÛÁ¤(©–÷°7¢÷±ÓY›PG %7É]ßúÉv5'ß)ìþ¯Œ»ÿäÜŒ2ß;º ~dû—üHk›ˆN['˜ÛÐëäñ¿Ëé~¼wâ9ñÍî*í§£{Ì&£ †òÓ ÷€ÓÇì§§ÚöŠûιóÕ»$AœùPÑN61TæO*iÚ`¦´Ùm‹Sl›Ù>²†Æº ¾ëÌs˜u¦¦{~Hå ¥èwö­¤ÑN€Ý„?[a“ÐeÛÅÖw»Ò Ž3ÎI÷‰-HáøRÂ2ªÍ+ tóànwÁMoÊK.úÛYû·½ñÍÎòDGþXloXãÛŸ8‡ʾŠÚRVŒ«”ŽÓMøþÓpä1Üoí¢’Ö)AçÉw'æ]Aò¨Ki Ö1ösáÂ@ÿ—P ¾Ê<±ÆF4A­¶î;Óü( ÿÚ ”]EQÑJ5ýk;VçDœÊÓ#l­D.?ˆ±q, Ë­ì'¨'*¡?Â#E%æYþùçûÁò¼8÷sô„Ó[·µ\|+;åeß ×ýÀúˆôÔz¡ú‘‚x·¿'±;Ô. Œ<•ó¡6oðs%¨…࿸¨öyYŠÇ—yOÇ™úæŸÏ£AP`ß¼öî³4PyõœJ¶+åCª„‡Vž&ßþrÉy'œoX9,Ûôä’+œE~årð{k<üîJÞÆçmºOVËøŸã'ç.òGŠ€D5`2!@-#Áá·«·%¦VÒ#ƒÊgÃøw ø[íPðÍ.ð¼´­³·ì ªÌ¾µá¹¹Öù÷Œæ¿5 >¼6ô¹EqƒšYñéQØÉCסñõè´Z‘Ý2ú×/)Ë?q1fžIc‘fR,”\^X?Î}¥,¯ébÎÚ¼íFQlº Þ¶Q1ÿý«><üØMk>öÒä±Eô†~³'ƒ|~×vÃÂ…Gåh¯MH~Ñ[âvaù…³ÜH2y¡OÁuê×­ ?™ ~ôòdqgÛÍþç59 Fºo?Üö§pèQ/° 9ßãY<]¸û 4 ã½;REkzç®øâíÂN6ÛÉ?gd ¯æê|?7cG–´²_ÖêC©/g¸ªTÆ€RÆæeÐÑÝ`”P¶/ÖOüÕ9†º—¹-@yÇy<Î| ;’^s ¯·$„N×(¿±¸H 8þö?oŠ‚Öqœñæ¤Eí—Ðkðc Dþ8Ícd‘ôâ»Üùã üøKð㊄t‘¦P#·Úgåýjƒqj~DWéoÈë(€·I_É‹Tp‹/AA3èviª-ä’àzWº<×çÃàÛEä¤?9À~tu=UÌtÊÉMÀí\»ÚŠÐýR]oHCü{)òÇOú«.ƒŽ¶”ùrüH(¸wEºÛ‚«—‚ãÑDZ§f€s–|ûŸ/$‡ÞÛW¼XÆè%¡ƒ¡Ò«5·÷0Ô¿&Ñe²dwt€ì†ÛÌqd0¤n6ë'w[™2î-¤ÁBH½ÓÙ±¹8›¦ñfB­ŠªG£#»¥× ZR=^¯Ž’(zù#“$ž÷¡/Þ·ù蜽þ Ì"w­­…Q4I¾.]”˜ÞŸÀÚf2F&HW­©t½w›ñVÖ›l½¹´‰6’“òcä¡]†ž]#;ÅåþUÓó“çÏãýëç7AÚåvußø÷Ä]é á,r&9ÜäN´œ?xùãˆMD‰èmL/Ü×Îts߬r¯Ûä6¼}ãDrM¤¯#}ÐÒ¿lR´ö4jh‡Ø8¦±¹ŠžÖf²çlBé6ü®3O`f›úîvºG' «9¡ò=x¨Êž§á€^µü¸dÛØ¶ßÅçÎy÷†ÍD>mß þÀ!o £ÐϬðá)9zÐ.Eþøöþƒ}=áHh&òÇ;ÊÅ7¨<ÆÌkäÿhvvøêõ”Þõ¥m€V¨Kä~ë-„ N1ºCõáÞ¯m¡á¶c@£rE.è'g!4~´4:Ï¥ÂÐçà6ÄW÷ÿxëùËœ³éù,5çSº`:KéÔ¬,͆bÜCæðÝÁò=SñéÔ~Êo¹ÿySÎõÐm|óBJ'¶êš•¢#%Åâs”Ðv3ÉR8ñ‚øû®8ûNHu»ÀÖ¹ à—¥µõdr'ÙJß ÚkxxÔ~:j•†G¢'†ÖÍá‰üß0 õŸ\Ö‚jÑewéû6q~µ-©8Eæõ¼Žã+ÔI->òGrI*eƒ¾’Ÿd?ì2j/œ¤©ËËáÉߢGN t]r:lXø€p<œðVžGÇi¿çt`E uí¨wx—Gþþ¥‚6_å;Üd.F©œ±Ÿ•¸ÛIö­%BŽÜÄ}‘?.ðXY ý‘?j!<Ò£zUGËU.*íå6’™á/ů3H}ܺŸ•WцàL8ËëÔ†»ƒky¦Œð?ÛÙ‡üÑD3é!ä‡r;È9É­òªƒÕw8¿ó¥OÞ¿ª ~Ì¥d ̪ÇÍ‘?²Ð[^ èU)*]eŽÎÒ4ZNê ­/CdŸ¾”²²?ÿ7‡Â¿SqÎÿÉû»QÍ@Ç÷ñ:®˜G2Òo´Žóhs=¤á‘¦Ê2ÍéݯzBãê™§gÁ÷Ù²}²7G•¼—zØRŸ¼Q]Óüé¾B&òñãNo»ñÉàÍ©3´¸Þ—ØàÅQ]€„tHó¡“êv½ÍÑ‘?b᪥ft‚sºõÉú»Ëݶ.?ÐQûR\ïe%Íe±´“*šQsx×zwkx™iLí .½è¼}Ù÷D%#‡ãÜöÌWÆÝò Óþ“õwÏyR›ÿš÷ÀÑàG÷’ñÝÝàw„óÈñ:ÉpþGÓÁ=ncSdzf‹Ð.÷­3ßœ6kÜ‹6‘}ä>vô÷ÿ˜â,„sþË&@RhA•l5ÓŒ6OmY n#Ø#ÖP÷ïäGz³ÓÔs7#w\ÄxNDO©GårtÉÝI¾·r’Ðxki§ýÍþî~Ï;Oëî{›—|k,­?òZª ²Nº(’ˆ³S0:`·Ø:öÈw<ÿxaCÑûÀ>ö¯_’ó¡íL«Ð7spf°)2€û)òÓ“ºßzŠ”Öɉ T5º ~$€§ƒË@¥¹~Eaß>‰¾ûW¡A¦ø´Ù0¡ùZ¦yíiaŽØdðâM Íó?nØôòFl(vkÁ=0Âv€xûüybȲ†JÚëAî5Ãdw#£½BóJŠ‹–ß~e£TP°(¼œÙ‰n:™Åàj©-~õA_º?yìËÒºz¢»Ã‘?B3²säið­(&J( Nö¡´È·y/Æß%àþÝ›€¬5h»Ål TžoýÄðý¡x.˜SJØW7)oáX’BŽÊ ½.Éà™‹Jq -½GqðMµð³›ø±MýÅþQ¥S6*Xƒ'ñZPf¡àGYƒüJ k)=Ç{¹µY€,ŠßE _ ¸œÎðÏJÜà$QW"EgÁwv?öñ0™.AÍ«ë<½£§ ‚õe;×”6Ðû ¸Ö£À5¼ YeFËçÏ?!$ãÓ¾õC}?G›3zCÕÇ€a'´½æÐ‹ÒAËd"å ·=êñJ>ßwÁוö‡²{þ0 è-Øqá'ÿ²Uè.¯“šúHrÊ™¤S4™V@ýZj6Y!ûá÷ƒ#wÔå8çe8÷à•>îHÿÒ3йFéØò zÉ1šfðaé¬û Ì}_–i.äÕ~žL•UzD\!›áºú×ßÝâŸÿñqw‡z¦®ûÈF£Š4ºB· ñ))å-¤sµ†îM2\_ëLd£ãKÛJ"í¯o9òGpä³MèSçmqd “ø±Ô,tWÚò4•úÒ8:d/ #iô’²O¢é~É¥½»¼oÕõ¦Ði|i«»6•«rüFËà]Ó2qF{è+ãî?y$7-ÍÇ•üzrþëûWiÁ¯3ÇQ·†{Ñøö•8åQg–3ÖyáÄu"üàþQ®iãØÄêWŒNºwœEæ˜ p·ÛÖ±!Ýÿ1Ö™~ô°1©% ¡²¶¸õšYæ ®Zt›Ã^±¯l/÷¯ï*± Ùaj¸ëè!o (Vóê3ªœ‹æÃ)Þ°µl-wÄw”÷̹äÊO{ Ú¶ùc3•¦Åø¯ƒø÷è}z I‘?Ø5ßõü< M¶wm$xÆ#p÷+Gú¢–³¨(þd¥átËÖ†-òëïfsêÑ;x¦Úþ÷w#QP"-=¡òü ü^l8ÍYh‡ðí¾w½®Û‡nDÔÛR¾ã©§ÙeÓ¡VM0öæàÚÞ†Æ6‡ò'CI½h+„·?ˆT¾Dºˆlq%Dzל‹A”–Ìäq]Ô)ÿùùL|.®FDä¤T¼©åœ›G–ñ8Pn"®ùŸPˈt×ÚãËÒ†x²¸s¬¯&ƒ97'ÆI?S?è_®Á1Ñf•¨$;Pæe«¡y?–:‹üAOܹ_Ìÿ¨ê”ËúVsÊÀû¶³BÏC#ì’zI2Á×—Â2‡ ƒ/Qy2ÿ:çàÅ t]Ê8ç,Vay64|=ÏÕ'ye÷–7rIBh=~t•H2ZžùãŸæ¿øwÊBùœaŸ•xØII½ÐòpÆ3¹#ÿÏ‘2’ß ¬Fö8ª·õwÙÈË@9Íù9<[6à ®âÜû»U?+¯„¿þÿŠ;ë0+Ž?ëß4îƒÃ0hp’0„`Aƒ N° wÜÝÝÜÝÝÝÝÞÓwŸ…†ò쾿æìNÝêêªsΧ»«ê8\í/øÇYšÇsežT•­_ŽŒÒÃ/'hÔvžDÔ«Ü…+Â56ò°Ôeþ‰·š·kôÿâ+eMDnj R­6éj~‚îêzMšËx™­óõ;­¯×´©–“ðD,Wùã>ü7 §f õüܵÛWÉÛmy$Ê)DûMÞ)åõ–æÐ12M–ƒ?VèF=ŠZ.Åß««½Á1ÞÚË*MçBÌ·æí­†Ž·“L1Œ«^ü3ÑF)þ8­µ5Ü町ní­w@I#@]ƒán±õ R¦b¼´‚D¡çfÅÿXoÍtV™:Ih m6ü«iÍIè'ä$Ø]êŠ{]¿Ñ…¼^ÜUëÃ…Ÿctòö®«:LùY¿=¢ÕÑz»Ú3PħÞèüØ‘Æ:m%ñï•×ybe¶¼§ñYì©öRû²Þ²–|ºˆPG«*Æstú š”•sÝÞaݶ®:ëÌ׿œÃNL;áÕ³£=ÿþn:h~ªeþ2dí³˜JPz“Ö\‡´ÿÌùƒ9¬åÖPç4”a-´lDí1¶š›QÐÄHês‘Mvšº&Ãg­ŸxÙÞ€]ãx?òÄ\ª„$ÿúÒNqºJüûdÜ0[áH3>YÞpôØÌ4/°·þni0{ê†ZŽ¡ÂHÖ‡)=Ï=7¤mT–Äù˜Öÿ÷QÌnîíiÏž…VG ”Œ¢ƒD sN¨^\Œ­±ðº9äÍl¯‚4䘴}~þÜ7Êzb²ñy$÷ðZ‡Î™ßáLkÀ¹ðßìÀ]V£Ä­ ¯ûH³§¨š9æû»É­ìÎKsŠú'zÉp8NV”š„Î!­£"f›S™ttÊ[c¤'uŧš˜þgŽ–6ЗÀ™fV?Æ#¿À#†P5Œf‡ÇpsÎèßs·´u5â>ŃgB ÔW~ËO÷rÛÕÍ/P˜D<‰‡sqøC \Ó¼¼•HjÙ ¼$)‘ë2Žƒù1¾y tt=oá*e¾w¥ÛMxôÝ8<‰}Ï…òÿÍÑ$»„ ÑßÑDÔªºŠÜA¢#õ§†ƒˆœâ{Ü—‹!‡$ïþÕY»0ˆì(¨í4nÏ7èˆa#üâ×…>«{PkkYÆJøGI0ØH¾úà›4“ª9%Þ)/‰!PÛ:Fõ¼÷´hÏ”Yò‡¬]¬×nZDÈpí £¸¯}È#¸|ù0J<ŸëÌ+Cí¾Z *(²£· Ú¤»iFQ‘· B×»K'Ù r(¯µÔç6Õ2÷vábð1å†ÿ§ 5ð®o„}$y)ãg£µðZ’úþ“þ#e¤fqwè ðB ®‘ySÓèH9Äià˜¯¸;zS;SÐ, å¿87M2ª žÌyÌ z$YÝœzU;é}´a€«î_ÚCº:H:€EJI)ÞºŽ»Ñï˜2t"ÔóõÖ|dåÚ4þ±Ž¶˜þrAGê<™!/å±×ÚË]ë¹ÑÝL:›÷Ã;ëjyY-÷‘Übb´üAY9çøÌd«›UãMË\ñe²ÂÿKÿH }mõ„TwÄNgyë^Æ·gÙÃí[v4;¶µýÓE„:ø*: L%¤{&˜ž8/ì!V{³³Ï$37á®ýeõjOÇhnc’"A£ê¦· ²X—M~*jòÁ=lúã3çf¶ÖYm‹äã}PÓbÐ8oþ`3ºèxóÏ·¢ü&ø£®ÉçLùŒòŽÙ'…eäCÐÍ T€·A£AçnÐ÷ œKô½0×ÌqSËÌþd §øbPTZcJ“½'4Ë(<ÒþêO%8eçäYôÌ´òÞ”!u>õ©‹]›nRúZsŒ"SkðG˜è'øG vQÖ8èÿ4ÊÆ‘ÆŸ2q¬°fûùk°‹òÃ'[@›gƒª™ (y#»V§íÈÁÏá³0&Ó rý»Ù–ƒ„µ¢V\«œóÈ\C]Æ¡FÞüóïá áPÏ|—J˜aNqðÇ (ßt°GoÔ<63_¡¶‘Âàñ¾lγœRC%spJðÇXÊG-) ´­Úí4ø[(Ýläå{“çÑZýh¶yîìø`w‚öv Ó–¾¡hðŸ¹à‹`®•à IÒƒê)ˆtžKrÉT0’Å Aåxïc… zïJçµÏ¡V†s ‚Þ¯â¾h™ÎìH™Âíħ'ä¡tÒ=¼ÿG†Ã=ÒòcxÁ%dè ÐTö”wJœo OÝKŒL1Ìuþ1Q–Aߟp'hi÷Ž:ng9ÀÅdŒÜ„Ö‡‡šÞò×ï)t¸ºSòòj›ðœŽO£t…¬¡õ¼ZFKuÙÈ×ù°öÔÌÈåõuŽ\âBzƒ{¢MjòQÍn&iÅÓCÝ¿ªî+jÍ¥ðÜ’R}îÏuŒ Ý?-5ô‘´%²Z'iYÍ£k´—þ"Sä4|åGøÇ¯ÈQàX¹9)'¡‰oÊ‹myë_Å„‡w• ¦&3»ò»ÞÖø:]–ÃËó»[uµÿý«2Qãií${p>SpµðZä΂æíý¿zVYçFØ÷hÁ%ÜÚÌ¡ËRüqTój$ ®Ù¯£µ’OgJ}­I%¥H~žÝ©©4ÞøÇk¢3Î4À˜ÿ£iºY#‘Ý:Ü·V¦Ë0m¥ Ü©p¸òniÝÉì–ÒÚîì­ÀgÓrôÀü>öŸðØV×Pë·{ïï~jE½àÛØ“ípN[GíB(e̞nßµíD_Èç}¿8kLJ %n@IÍK»‡õÒZëœÀ•|é<³‡ùNçÇ¡ö2¤ún&5¥!TÑô7á­ÖES‚Ê˜æÆ¢ä4ü½'‚;R[{­Î&zI×Ñò#%׿(õ’³Ê·ît®ôßPÅ÷å½¶Ÿ9>o}W¨ý*$ o5­dЦ tyú4=‡·Ä¤ f›ébf}²†½|Ñ¡¡›Á+‘ù¨^i —Û‚¬\Z±ž ò4:jº£äFôÂþØZUÿ}ü ÿ®ƒú=¦; :¨[4ŒíbÐå`ôÚHþËÁ Ù¡ª 鑉h¢YaÝmò¶ZY§MqÞƒºTÄÏíG+6+ÆÙ¸²\wÿúW AqÇè!¾ñ>Ü¡œÙ滉­BÎã­e¸–â€ÖS6ÊM‚œtpRÊîÅßñ0$´vø•>Ï›ë†ôô}åŒ0{áƒã¹2§â˜<m×úߪߑ‰B?çBïž’wÿjÈ®›ÿý«HæÃùçÝíl¦=Z-´„k#I7†>¤áÑW’Ë)Y£á4¿\ãïá"3ù[0 oúüñ˜S öï¯]Å>…º—Ï,åY|Õ¿ÿÇ`dûXøéÞEwI í¨§Á¿Ëk’ÃËiðG/ö/‘=ìWØYá~«èåC §‚NóH™+Ýù<·€2Gu¯è+m++¸²tóh“” ŸÛ| ¿®#%·r~z§¼ÊæåB:H¿ƒxÖÒ2Þ(ƒå{ó¹¡Í5½ž—ÎþûW­ÄѣܞY þñO@ó;ò¾Pû”õå¶f#ÿü†PŸ›pyS€óK©­W$£ ‘¥à£dZMÏiSøÆ 9©ªÙÀšÍà­ ûÞÊÐ%B½ÝêþHÆëÿˆLË Kné­—4– RX¡»õ˜æÔ àçIÿFyYyGÅì¤~¦´éûæ|ÛXœ‹&*úÇ@Â÷—h°I—è/àÛ²Qèl­¯4ƒv“_ñ·p’N£JöVFøn@×î‡âÅð©à©(錄URÜ­ªåO™#gÀ Í4»Â=OÿUÇñ9´e1í-Gä%FÊ}³ã®2r1sø#ãîÿòP«µUíMËœô¥³¾ì¹ôÛ#±õÈzbõ·“9ÕöóÇŸ ÷˜c_¶Å´6}Qi/| œH‹i I(м²g€nÖ;GLNðÇcûµ•à Ÿ,£`n²R$ûN¦™±­¥Ö%SŽê€EâªMtj~V‰©¬ëwg ’Û^dÊé*5€"6¥§Î8LûPþcó 2OSö³ÖO¼mv0£ó Œç]T4D!ÐÁ»8û[dówžt õÜüÉÎõE¡ša†*] ­ÆO×ÚL@=ãñøÇLÔ° þ¥]´O”ØØ®†zÔ%\ Å¥*”åGåâÈ¥˜x;˜iÈ; Z£!]3b"Y§?RVëo+2|ò:µ§Ú4…€Êùß¿ÊÏi¸ðöƒƒ®ByéÎü=Eßf_£´ëgç•ñÖ œJñá‹áåß‚-ŽSa93ÖI-A4™ýó»R[ŠA/7_'¬çÃ}™œáf#ßÒ>ú³L•]jivYÉuyÎy3ç稜…Þ>{ gõµ¯Q|ðG'Š/ßQQSí\úž^ÊR£±Ýº~”YÊ}(1µ‡¬uãhà ÔÁä1½ßœo«c¢û÷`ŸÏס~#}Ž/pt9Ê$ªƒô@®áRâÈHœArŽ,Áã¸2úQ*{Ò;%±óÒ_´‡¼UÒÖÃoŽÐe*3À/¸ ø#†kÜpîp™Â…¤›àŸà©Ã‘îoò5\é‘Tÿ½õ+™ç`·èU-à3»á‹e¨ä’1(µ~¯¤›Ž”IÜY,=ÁƒÑ;ëÀ -yÀ®4ãÅæø›²øòYàl øýÊõ¸tà&o‘VH÷Á šºB A«÷ë0Í*å€Ñ̲ŸïÅñÀåá AÔïMy­¿áIpM§Ò+Ö•ÑÚ 5Z.+5³»Z—ëY(ý88ûI¤=áGA ®ä2S_“9ÔûW•­ºÎ}é ܲšù—Kn7­îÐJ8Ë#²î;õ;®µ…ë(M(Ñ4–¤g-ÓŽ®›L´ÛÅœÕ h˜f¡I¢Ï´¼þ%í$D¢£ŸÒbî"÷¶&pê> ö¬uåœ\ƒ^¼4¥šÈ9ÿ#ï_Å€¼~Ú÷õ¿¾Åz`ùì‰ö»¢óÂÊeyk‰?¶fÚmívR;õ®ŸxÁWÉ9þÈAÍ/tÙ¹i—°VXÝœÅÆ1wŸÎþØSÚ°öL8ÿP“×| 6Í·r¤7ÿü'Sj›ˆþþÌç癬•VKgòL3*Lg‘ëÁ?Î;£‘q—C«wƒOšßMUgög”wÝ>,MZO§éÞD iˆ¡)%ƒ‹ç.gäû´€&C»C(7¬1É ôý+cu¶n™ÜП†T”–Qt:j¯J³àFAœÊSlâíëx˜¶‚ë,¾ /(g.‡¹~I«°‡"svž‹:ÆXÊ…| ΉgQJS߉"}¡È©y,ø«ýII謉ÍL†ôòås†™”´P?£ ŒÒh³øÜƒ @ý'âJðržÅsù%G™Þú»íá =HÌéæ4·K¢ßæ§T¼\Q ù¾R{FüüN$»d©Š¦“Pç‚p¹H¦‰ñ¹–p†“œ”‚?˜?XÂ>`|há žÊ{À£q=:òN&3x˜D† KkOâ_å%O攜Ùù5;ÒËÁwrØóß)q“ ég…GX 5?OG¹²|[¸SoðGøGwÔ³üÿ(á­uÆÏA »ýó(ú½÷ü<¿yM @£G©J[B+y…ô“Š2my 2ÊvX¤3d<Ö«øLQþðk~WêÌûÌÛY§õ}E¬¾þ™ÿW©2ÿ….FOù„üu.$ƒd™ÎT×+:þ1IÖ#‘§”­Ü”ÿì@ßLÉñBñGj«…}Œó1êH,E驙˗¤ü"•vù2CÓº[4D¯iv!³ôŠŽs¥àAà™¾`ö†æ[óöîv9«žsÁeÅõïÆ%У}PøÈ(¡”—ƒ¨¹Ý´%ÊÐVQ;j€ü×ü¯òž”šŒtÞìyãK­éÎ SÆ‚’ykGÈ+ F ÊÊÉ ®–Ñjîb×ç>ƒ âHní«чž‚µ_›Õè¥U‘2˜/{Âü¿sD°†[o÷½¸uüö_¿uÏŠgw´ã9ÕÛÿüc­/À`°¯Øvfës²øÛã’¯ ü#e¡¦"qNÛ¿X#¬NoðÇ3Çu}RùÞ=Ø+‘B'›4HÉáµL UÅÚR(jÊšû& õýÌùç9­eV3g]«7¡`(KU^I5Áýp%gP1ZmRAïÛ˜ Îç¼³|Ã>çøeÂó)ÿª»™Ø{²<“æCùóÑAŠÉ9é±¹`öš¿ÍÊÏxþH÷ÍóÐÜ¢ÒìÍ©ûTð3t¾å‚J/‡ô¯[¸ˆJ’í¼úDyåí’tƒj@KBÕ¨1Q,x]0~!.ñ×úêªyîD²Î|¤,ËúÓÚa óøl~ÿ¾ºMM\™P혜)ªü#N°ˆ6Ñ1º }D¥à—Ã(-‘•Ö  Åç… ®õø™ïA«Lè5ÜòœìD–‰ðü7<½~%¢S&6­ “?ÚøÒ;}ÌfJÇ+¸"ÈÊðDðG?ŠLû_D>(_:ƒl½þæ™ žø ÿþ'Ýwn~0»©ª]×4FïˆËëxœü6>;?7™U\dÔ㪚G¶€FŠËÎ ¿J‚Ov‚¢^â¸`®÷ù£˜ß?~† ΂†ßäitžº°HÀƒÁW$‰¶G®ÁuÀ944®\gŸôãj`¯¸öâwJœmçõÜ¡ †'Üä®2]Zñ#î«+5º{AÝߥ+ç‘Nr‹{Ž š9ȧÇWRÏ÷žŸ§5‘8zðidûîÈù y¬ü#•¤üè¾v†Âo—ÚNÑUîÈO!¸å6~ †Š#õø¤Ùÿ¦¬Ê¾o¬öô‚ꢼ²\Œ+˜ïé_•‚zSÈ0Ù¡“µ€–ÔÛ:@3ÊÙª_i ¼¸ ·Æ9ï…Dçˆôvï¶§¾ö!8ùeè½Jºbîò:©®·´¨Ö“F2 Éþˆ.ÓÓšR§ËH=?î JÊ=ÙcؽÔþÑýÍùþ`Õpn›hÈ_ hšˆ\Bó¹w ~ÓKÐüWÚ_‡k}¥‘´¾ä„Ú'•¤[⃀֡ï_6Åé‘9Š?–:3MŒø>¨áe³E¾s+ê:i.ŽžÁOvÑ,î6÷¹ßi~©™´…Ö”ãò€v“ muò¯ÿSØ|Ù‚ÿ#5Ö*jý’´VÊ鹬[Vj»»Ú)éı½õwwøíöZIr;ý¾EÖoÎ>“š¾Ê”¤èf³ý—õ‡µÈ™hJ›'N$Ç|áû»#ìù¸ÚLa8üjgª˜DVëŽÉKÍO&¹uúgÎüÆÚaµrÎÐèi]äè½ôFTeŠiFCo6ÃI<þ8iþ2¥œÏÙ‘x§½Óñî¥Æ@>Z‘YÈÓxðÇ^º W¹F99=17Ì0ÓÖOÖp†/:úÔbs×<ìõ¿¿‰jC!åçãx÷¯Ž›ßh?ý@ÃTæÐG»y+ß×§“t \‰âƒŽ¼÷m«adÇæPÅèù©AæeQO‚/|þàPë’ñÞ!n.š­¿‰lP>YŠý= ‚V?§u8óiPù£þõ¯PmsÑ>Fi©¬LN|ºN)yâó³q>E)=¤ˆ¼ž9œ²‰´ü²ÆXO|ê–‰‰2Ã…á#|AÎTs­?uI µl÷öžŒñ?ÿè †É µËA#1x D^l ÷hOÝÖÊ÷Ê+gW1Þ*ÃAp…©\†/¡÷Í€ƒ¯á’D."‹?–¢r–óù×ôöŠÎ‹àvÛù+ýðÁü`ûŒy¢IÂØÁ›x ]¤ÞeÍâžr%i?=Èó¸µ(JŒÄ™A ø>÷åšô+¥¶§¿Sâ^ðGGô·gÐÕ´û>ºÁÝe¹ô7ÕE’&÷¨Fr[Ê*®+ÍdçEýúó Þ 9ƒkÞò½ûW©÷®ÃY¸Z5Ú!ZÆSÁ?Ëd¶ÒzX:Â?À:òÙ¾#ˆ¦Î\ÁFšðòPüÑÄWËBÏáDwÁö¥¸…ÉDQäŠkdèqGÙ¦K4Ÿþ çµ«––¦²AUe#7änpÔ}œ ×Ë¥‘oÊËh ·O!áÜ¡^(?R7Ã}έ‘ì»H™§<©»ô„ÆÕ©2__I:í-kÐ Âúñê`²„Zÿª®ýÝH+Mh×7Kh›Äp¿ÖUÚz¿SNÂÙfk#½«QQßßt±æ–.IÀpG0’®˜ÎôÜ<|ãÛ­ÑÎjÓ=x0ÒÓJ3YÔÝ V«%Ïd𴯹Ör瓹®Aàœ†rZÂ;"#´¥Â¸:åþ#÷¯bY½¬¢oZæ¡/›û_úÇ7ÖU+ÀîgíTq¢ÚÞ*¾G}iíAöAû•ßNiÍÿ¢Ò"X]œý&§ß?ZSFóÄžb±N:Í/pî¸ø†Ä_TÏéöjðGwó-õ¦9TÃô4w}ý­«æGeš@\‡qÎû{.„}$±Zœ“P–³Ð¤ÒÇ]9×§LfâÜé²ÉM‡M{SÙùœ5[îÛ—do(Ã!ä‰=ÐÒ=Ðû]Pí#”iÚ[¿Ý¦;æ„éd¶}²†|Ii8ü&á<ê7ŸâÐ0ä¹T…sòZ(äºkÚá»~ ×1Ÿ(±¦Ý˜˜›QEÿú»‰ð{.J •¨ÎUË#ñšEKÁÉáU¿‘šTÝ)ì¾o°uß”Äúõšš¹jFûHáGUh&òãS´ÀR?Ó<@ËÂùW7»í°VÔJdev¼;i¼޶ü‘’µŒ†ZU5«T²€ÿâ <ƒšcdvBOºbƒ˜ÂÚ¿¶¯/¥3Ølƒçnà9ûxxª ®ò ®Ïàyè?àžÞa´Ž†ÇÍ'wCïŒl6Xï¯=TÎ.mZ­Â1æsQ~A¿C­³òj~ÍÞû»Ûõ¥”E/'…d¶%ÊþõÛ‚@RPü£’}Ÿ ÉÔ<… ·¥Ô“ÃK°LáЙ[òRénÞí$¦ŒçDðÈrŸèÅqÕ ¼·~â;'Înü#7J눾|Š¿L¦òcn‡,nÜzC+AéËJ9‰6‰ï /‡ùtx&õvò¾S^Nô·x|×­ xMæ}2Q*È Ž${uœf€²vÕîr»À XFqYô Cp¸s(µïŵ}¿Zcàk]ø5¤"·71È’ RIŸIW™'[t½ÖÓ¦êÍko.ÉM¡ÉÀrMÙ[íw-Èæ%¥¡·s¯"[½íë”m܃âJWZº6úDãé é!3´¨»n´GÓéjY¢i4'üc7Z°;'@ûí1ÓÞœoøÇ+­Ú—Æòzs“æH>·±^Ñ5–FÔ{ú“NÑ*j¹qt¦|ÚþBL"‰ù!¥¿è:z†Ðí7þ±ÙÚàl4õПFÓ?tÄÌ“ÛÚGÇÃ;zÊ ù¥:î|w•æuËêiŽëfЂÚY¶Ê3pvøGúž£rÆÿXm¬·oRÜõåüÂ÷šÞé¬Ç–ØìDNc¨{”rÐ'ö|{¹MN<;‰5çÓE„:žø:9ÇLv*@‘ô’˜˜Î2+½Ö9e‚Í ç–}ï 穌¶BAú›ÌÈ‹;¨²l®ú†ƒ?JSÓ É.5v~ù¬ƒ¬ÃVKç2EBíƒÄ‘ç(\›n9Þ^àÞ»EWÍ×Ш¦ñg­_rÍ>â5%Ñ¿O¢fÞl’HòÛ0¯@á_‚Š‚ n™Ýð¼O¯µÈ\šnž‹¿ÆH/ ¢ „Ê¥ ”Ÿ¿â”—'Ð+ÓvRU²°V }übÿ¯BÕ¡W7ÜkSF ‹Táò\½v=øf1úp$ØštÞÜt‚¬°hÁ;žùþ°âA¯¼ù¥áQðù¿ðç5…ópÍ5ùêµDrôñþqŸ*˜Caî_›ÌÊïü#‡PrPËj*HEP·#¸2ÿПfºó• xkT¢Î·Ié’´0çt÷%rÆo·®éеìlñ*†Ÿ‰„jp|~ þÈåîÇcñ1x0ÆîjŒöàÙHföóÏ{Ú™MOPV:ÞÌs¸”£µ–ùlIR9#›õªÓüd—iü<é+MhùzøGðÞ•.cŸ0‘A¹ yoá«ü7ðï_›@&p7±t“8ZW/³·_ù#žÆ¡~Ñä?ã®pæb”ÌóN‰»íô7HÏáÂ8ãù|•Îò8Y Ý¡ç5t>ëµ»á`i$g¸*Á?îòEïÛÁ¢ï”WÏØœþqÙ­s€È$É';ÇÇô/$û“ÒP—Š‘?å9Ê _(ͻؑóLR•C̵7eÕô•´F¡å›£Up'†sÆ–kRNoJ Bب¿jÝ©CõW©'{4½þ(›AÄ£8'+úD*zûì1œÕÑ>K àáÃ)–äôÞ¾ÄUi®àÃdŠÌÑÒî ݤ§@I»e®FДø÷œ~”A†òäÎt¡Þˆ«b•vnšðÈ£h:§3!C3¸Yt!|ã<’}züQOOkFí#9uæ“ÔKba¼ìËß1ÁtÚã+­1Nˆiþ˜ 9mVJ+w–Α2 RQ‹i.w®»M½=Ö·ð ¡¿éïr^ž"eF@Új‘™Ó˜»ÿË#®U×z»nù_ëS+zìHc=·Z3íôNÇøß¿Úì{i­·'Ú/í@;ùîõÈ×À¹j‚(5²wWŠj8ƒ,¶;ûp%¯;7ì‡ÖãOêcÏA>îa’bÜo ¦³¹ïÿ(6ílžÂ?f~æóóŒÖ~«‰s‰ÂCÀ?^ScV¨ßKg( …þw›æ@­Û™†Îç¼3pÜ~àŸ?å-£Íàö ¥õð’«÷Ð7*P\:cÖ›ÌõOÖpˆï‰yf†šæ)•Åx.E5àÀ=¡Çÿ ?§Â¿dC:¿cj"§7£Ç¶ï%–µ½9(%1VöÐabÐ÷+ãñGÃ÷ …“+Á]‰y+<憉lžû>¶³mu³.šR¼¼•¡ƒfΚ”„‘ãÂ%û"?‚,MB™’ÍEÍûI¥%µ 9 ª5Ü>* =DÎ,oz9¤· DBk6MLÞ~÷ К–ö/ž3Òìók¥ÁO•ÆXÏ=ù~?oHiy÷@ºöÖOô柯¤ŽÔy!¢9üÁóÎvaÓþ‘š—C«‚¡¹íqžA<ŽOVÊrµ5—l€>å”ÁàâX<‰[!‘†öÿ`ÿ²ö6#þý¨ñ^|j¨­/Ÿ^nç¡BнÄÚZ÷s®!"38§†6?`ƒÒkRaÊüÞú»ìt4Îíp~^…œ}”Îð('­áu‹Fv¯ëem.*M土5' Ä3|”Ï€±»½÷üÏq@Χ@ãmà½Çy¥L[Íâ 9­ýõ+=.#µ§ôåaÂz‡ÿá¸2¾æÒ†÷˜·o}×öU·ÆÒ7hûÔlTÁø(šÜ”FPçâ2\fë*(óozMGjV)-‡4µæ…Þ7ÆyÄ–œ^œ“ÞîÈÍk{ûè<¢%YªÓ8•ÓJ^ÿüÉþw©¿swAå½™ÝKe>‘¯µ-|È»• þ±…ÚšïL«7ç[ßjäÜ7ñîFÒîböÓDÉí¦×YZGY·Ë@=®ý´x&P;HU¤ßJÆ—Ôà©uÔ’Ž™o‘dÞ>?Ÿ`-€Ô¥1Ô<::!Üñ:KË)øÎ#ÉÿXç>×ð§þ|Rë`­ÿ{…Ò^›µàÈ"œ˜³›µwÿ—Çs´ÆÛçÆ}¹¬/{®ðöHo9vTû;¶ÓÎIhçC)K|­ö[$v–ÞÿŸk¾Îu“‚r@{R “ÞYm]µ9×LZÁÜ·£Ù¿¨¼^ö6ú“þ69©?F^ 3ÎóýnÝ4•¨®im®™¬4ì3÷*hí±*:‡ y·¡/è1ýÅé¹%E3‹¡|Çõo˜DtÏT0œ÷w ë¸`ßr¢Q0Òöe¸Ç!(ó)ª÷ØAw(?2ÿ·\ntÏ,0Ì«OÖ°‹ï rê øÇ%Ê¥.Ôéû’r}äÜ­(o ºêZ†Ôyþ‰òŠÚIÐ^?#}oAIéWJ ÞK• ;8&/ó¯\8–âñ*Œ§Mæ¥ãZ[ôµ¯uÜ|Ë' ÅÁø¹¤pÅßàH‹¡Š)8˜†C  öøçÁ̇y{€d1‡?20­“Œ|ÈÙ«(2mÂgKSJ‚Z^¥!”Ötvb‰·£zr2jVÌLûM øKâ0ü£‹/Ðe¶Pv^Âõ8"¿D,6Šº,Š+=Ù?ˆ÷@Qz£Ž<þ· Ü -Õ̳Þßé¾±]Ü4‡ng€{¬ç"|×`*¥=ø$ª’ÃúZ¾FºO+i PÁÈÆA ›Z¼›²šÞ»ÒßÛ—Llô‹¸p 3øÔP8Z'dû2Œ»J8½&‰´¥‡”Aù@H)ø!þÿ&ÿÍeáÑ9ÞóÝvV¸ß2zDÁ=}áÔÇøo }?…d¾Sé½­õe8ç”^r ='Ïàó¼¯ðyšHãœ‚ï”—Ûø8Îrê‚¢&ÓFž(3¥ˆŒE]/ëÍ©«e¢vBm[€”.øçT…s=æGAšðEóvÖii_9ëoðx]øöŸè˜(UöH%½/Õ¤ƒ¬AºÿQKÂßúiaé –K®‚Öû“Ãɰlþšv¼)ÏX#ÀÑáá“É‘’tÙâ|’Ywi~í*]À3åÜ;ðãð“µ2B_úçî¹vá„2†/b<‡ZÿªªUËylâcL §¶Üg>Yʸßèm§~¦‹¹à›k=4_SSÕœ7Þüó:Ÿ¹~Éj«†ãí¿pª”Ÿ„ãÜ•™Õ4 *û3íÂH¿d*š??kÿ¨mön¤™<à˜­`ѽÞ*áècó¼u¹.44GB'ÌDSË<þd 7úöƒ?¦EߊŻ€‹RxhçJú¾ƒ 좔<Žî›’´ˆ ;ŸºÚÙíP‹"Ô”¼Õ¹^™:‡âá,ƒ9›¨Ðê-4¬0“¾¢sÃIðÑ÷¯lëOkÉ€:ÔC­†SBðGmèò|RäåÜÔ‹‚Á6€%V#YmÆïÃh.e7Çì°ÞûÊÊïÄuDƒZ¥DˇÀ+ƒ)*Túõ†Ïtâ@ýZ¡ž“pîýѩъÏÌ8ºÆóѾÔÎx³‚2ópU¾A þíàl=”wÒ$ª \Íñ`öA Æ!-z+à7D+^sÖ|°~I »úmaÔn.OE §A*)O„c$–£…–Âàô’Cñ7|"á›ó¡ô9™¢›ï]—:ð(àÀ”¶„òTô¾>|ü±”{Il=/‚Ä»”Gqñæœ+|ó&o«Ô¿&£’v‡wJ< þè„>âpÏŸ¦+(§Ÿ´â»\ZúX—èKÍ~øZZË!ÎÊÑý»ë®æMÐáa4Ê ~§¼"æÎn3úk;nþX ÿ'ßË@xØví€$¾[jhSYÇÝå¸<Á•.‚]çý/¨¦ï7o³>’ÝPøZ[8u ÐLCsϼäE¬w¥²ô—¦å´²nqÕ”ö2JÃiY€2çW¨cV´gTz; )•µÈ>OIÀ H¤0-DlU |ðxæg÷°žÐCšE—É,xñMüë"NÈ#9’ôá 4Ãä7-ßœo[«½·8l2÷5³i†tKiˆþ /$¢ž‡Ÿ‹<ÑH ®pø=•¤…Då‡È9éRÌY³ü¬°æ:ó‘6ÆÑ?´¶šyäÎÖaÒ ¼V~Òªz]ºó5½[Woñ ®ÝÐ’!òÂ…´§ÒüŒ"ýGî_=ñu°Þ®Ä|þñeû¾=âXO­¨vw;²ÓØqm/lðYöV{ª}˲³~áþQ·}U&e¥g¦>%5¯í–eosîšÄæªsüñeû6µW#…v5™@ˆ+à“Íkß`ë®)‚|ûƒÙ§÷™üQÌÚmÕvÆÐ]hrdÔGÔjÓŽ2™eȬ‡¨ Rxb0HKÓÖùœ5[NÚ'{&lƘFæÉgÌ |K_ÛïÎh_ÿè 6}Aéñ-Á[7y¤,•Ò|„Ӄм½úü± ü1R΃6ŸRk¾ÀQâM0ܧÌ{÷¯ˆc£ÝÏR-îɽ(„×Éh)%uá`·µÆ×íÒê|[ ë%øp0Ü2„Ïò>¶¥øãÌ›²ÊùjX sò5$ë² î6·x»”óÏì+‹u±æEAÆoÿX¯‰5?Ú²&J5¨qÎÅCíÿqÅ×ÓÞ+{W œ¤¤Xð¦>R[÷hDí,q-ò¸'õ†^ÔlºI–hdøÑ\ÙÊq¸# ô6yÌÛ»4¥­êŽGƒ?Ñ_Ô‚k›ïyšäsóé-„TV—ëÿ\ÂS $½¸q$¾¾ðÏ*ÚO½èŠIþx»ÿù(k¶3ËT ‘4Ég‹¹*IÝjº N9RÆJÍ­IÝåîpýÊm¡øŠ&ÒŸµ‰l—+P‹Ç&_•#pºÿÈþƒq­6V±7-sþ‘ì_úGF릕Ünd§u‚xþý"r޵Ù§ìTv"ëcwÅÃ>^ø:« ª)ȦFÓܲ{ üÍ`1Gë¶ï ÷ÿhçß°»I†OƒÍH#V?ë"x$±Éf¶›ú8µ?«ÄäÖ*«­³œÒêN…è&5C¯hM)Í\(ÞfJGkáç@8õ÷ïj„uœ·—;@´ îØ€LûŠŽQ&”´ DR”ÀyàgÍ*ÓÁ\ød ‡ù|Ä4Â\4ç¡rá™eñ÷Ftþ _¸o¸ ‚®àí´NŽóúåE²³ƒ<êÁAŽÑnRoÎÆ_\Œýø——AG—¢Ö1y+ÒövóĉóÑý£X}ÁñÉz” zÞ-è­kž’ãÓŒÿ𼆖Bpþ»Á!;)›yæSšVf' Î" È'æ½u Þ¶“"óJk:9‰e:wç¼`…µõ).ƒÏsÿÚ©¾@§‹ÙD_Aí¿WEæþè/õÉ1TAíFãoIy+üh6?AÒž~4úQßzÐÙý³³›ªp4/ôçÌЮ–øæ,¼‚KJR9&«ô1œc'gGFŸÄ¥ ,QáMMx¯ç¦€™øÁû»GŒE•Ð'F‚ˆæz{ØSgf‰'Ëx DÕKðAºþñƒ<ç ¤t|‘wCñÿà‚”2ÛÃß)q³¹u%8¥+Úý9ÝâžPüö|ùŸŸ_Vv;‚r€?.À}p™› †µ|×¼§Súò²˜{÷ —4@iãh O‡ú•‘æü”Ïzó4PÃv:^öqW¹-Çá ?r1¸ÑÞâiÇB­UÝWßBѹ6<« ÿÌšh¤HâÅõ¶’vr@Wj m¨t¬Ö–&²F]- ÿ¨ BºÇküûG…§·oÄYÖ0ûÊ»æ"åéˆIÍ¥”nÑ8ÚB6ÉýüqPok&Sô¥Ü‘¡²-Óþ<g5Èä uÿª„UßÿþnpØþÇÜ¡%’ÌýNçéw8Ëëà™µzXëƒC¢jùFÛkj±ýÏÏŸC3þÿæG†Ú¿v¡³ÆÔŸŽ %´Ó¬Û§cdîoɦ)µ »Ä=­9ÜZºoi2Í¡ýÀ°Þn"OÍ*0p!ŽÅ¹þ#ïïÆ¶úX…ß´Ì%_z+è_¯uÝŠew´ÉÉç¨Ýïö{¤}ÕNb'øÂùç/|5œ£&¥¦ë¦,=rŽ ?¶v:L*³Ã¹g_ÿÂyòÞüóÊÔÅd¤&4˜º™î&ªÕÅr yIMyl®›ÑNÏ*ñkk!òÇ0ŒßíP[H1¡þ'¨/(7;¯¥tÐÂóæWäôŸé•ý)ÿ´¿÷ÔBÛyÏ%bàOé)%Æb^ŒþbHéSiüc¨æ$ÈëŒy ÿøØúWúÚR“’ÏA—€âÇC óîm œœŠsÐxnÏi#ÈÈ[ýë B Ÿ£:f›}+ŒÒR[Y˜ ¶D<5Zj)Cù(|P—Rf¸“A&€¾å¹øoÿóøHkáÁ4¯Â¸5Ü—Ö™nVRbÿnÉ8¡Ð|ŸTcáÔ˜²òA}FàypÍvèM•é´³æƒçíLC¸í-šÎÞþOðý ñs!YbÈ.Y«·¤˜ìd‘‰Þ^OÈǽ €s½ùíæûP«eü×QÕ>º×‡7öBy‹y ÷>ã Ç]$¥EÕVzš‡r yÄÿÀÒò5Þç¡æß¡¤|ïùÇ&û;0ÙJ´V6¼I¸½ f|ˆ›ë"èžÕË:¥ç‘²hàD‡@4ëy®ù8§È;åÅ1ÏÁg—éùá¸ZøÇŸp±cÚšwF:ë¨qK¹,×à?shýøÑmpçfóv×ʺ¾*Öß8Óßø>µá:<yì2zC2ÊïrI¿ –ÕýÚ]‹‚?Vé) +Áýà— 9Òx¤PûD²¦Úûy.Ór$¥ÁHh,­õ˜Bß—È@ÍînÓ]zRÓéég@M7ñWhÇè“[é“Ût}s¾µ­Êà$‡a­Ì¾"ÁnJðÐz×v¼h±þžÉˆü^×i §ñ%?@"jŽ<÷+\bo¨ùƒ‹9¦2Ü£;<³Ï={_HHïô H ôÐ ½÷^¥7¥¥ RD± ‚¢‚€(ì½ ( ¢¢H»(UŠXßgææóý¾¿?Þµ~k½Ü•psî9»Ìžyö3³gï;˜éÿâß ¥ÊxÍ%Ö×ÿù/@Qúÿͯíkù¿?eÿç}O·Æ=-*þ¨üÿU[»^Kj×ý¿i×ÿ¿ÿÛÿ¶i^+¢Óo…~ö½ù¿wÊuù'}’òùÿɵÿ÷ß¡Sjéÿ1ÔŠ6ÒÚEaIéÔ‡:Rs¼wøíó9êLáÄ­ø¼?¡hªBQWÚLyAÉ´ˆÖs!ÿ‚R*ÑHjÇói4ž­Lå4ÏñdÜAÓénndæ£ô*´”æP¯¦XŠ£~´¾ÆS ›©-5¡y(?¿¿ãw¹î¨L·›v¦µyÜÄ£ü÷¨5u¸2Ê1æʺÈÒž¿¨½wŒÚ™ÔüóúxM¹ ʼ‹3c¼‡Ö}N7ÑþeÞŒšÎc©Õ¦Æô0m§—¨Þ=D¯P'~ªQ2œfwš¥Ü’jÐ&ú”’ýi´žjÑRþ—«˜£œ…gù,úÍõ©5Iiƒi9®¶¢^tâye£®^BAHñ>º— é.Z;úQ}Ê¡™TŠßM¨Œ¾¤Ææ<Ly4‚:¾³¹öm» ÷¥s²Ëw'Ì(jGÓì&šç{}¨&¢(ã.ê„Wü?7¡;h8ýD¿Ó2šD½i*-¡Å˦4—gàwmjˆOnÇèA*BÍ9´>ð–ßßîôkÑlªaOÚ;оN?ñËv¯k<à77ó’à6*˜ïZð½´Ô|æyã¦3䳄^æ®<úr ¶©T¥ì£þК6T=|ò̦öhÙNšLcèÔ< OfSc•ýÖßà§Ûh {Þnwgì2:G¿»‘îŒûÜ=™.s“Ü ÛÅmä7yiû»öWΧ¼Õžöw@‹:CZø<DÍÐ×BhR{Hª-­‚Lo¤z‰6t ä²ׇ£Msè?Ö¶çŽTLºŸm’kên¢|ò\Ž[ç‚®+žØaO¸ê®ëñ<ê}iÿµóLc”u]öŽ™VZ[ê ùþŽú æMЉµèUChñxÔW™§P"úX ÏtÇõHXOK<Ñ v }^LUͰÀhÜA i¬àBS£ -Ï¿˜{âÑÒ<eDážj»(×#ñ»=EijƒÔ—^¥LÈ?õÅáîÜ!V• «ŒÄ+ú”BY¸"mÈÄ»D¼¢ñ> ýLF=鸿Þêg±è[">KE­Qh_ žO@‹£ñJDUpG$žÊ¢ªxZÚ‹ûŠðSu¤¨uG)KÙÕÕz+ãz*^Q°Ì0èI{”¿‚x¾>å¢vÁy6uX\Fÿ¢Ðv/©5 ×*‹¤÷9¨± Þ5¢GèqÚ†g"Q×0 ʘßbÜ*á®Uô4å¦âðÌ'À«M”Ï1(i-æ¶üúIChÏÄÌ!øÖ‚&q¸Y€÷4…îãŽfZE£ IUy©ö© }…qï‚w±À«îùy*õé{àUKÔU…35M'³ÛÄáÙh44 YzoÌ~ØþCÀ¢hºN}½O¨ð*¼âõôš°`×"þË ñZp"ÊÜMiÊ¡ý0B×)‚'cŠ ¹£g{¡%ô^mø !Ÿ¢8Ý>anä4hÏ#t†JüI×f°þ$Sjöàz°è+ s.$8 íïGë Gå°ÙËT‰oEéPÏ ü\E  Ý·Áê@{k£†Ùè è|;:LÍW|úÓŸš~´IöÝ‚»¯’Ýi3–9ËN4‰<Õë}9 ¤ëAwãŽ2Ô¼µ´EË&Ã&OÓ%`ÂXXÏdZ£W'a³ÐÚb`ëPØÎk@èèP"­ ¼æ²úEø¤ºýÙfÛ~ö(]çWíýîšûÂÏ7Ûx[p«­¬áòã´Éüä}ë½eº£ý·Ó!Ëý1fíч©°½úÀ¤!*ݸšO_ÀÆ3ñ¾”v`tÇ Þw`yµ ÅŽþR{οϼO¹‹v1}K~pðê.÷,%ð:·È­´Ü&~Š×ÙÀ«gí.¥Qü´=ë? i.@¿Kø ØDPîxÔÝò] ¹Ü„ö4FÜDwÒ“˜O†ã¯I´Ë϶]¸ ÷mv—lU×ÊÍýÖŹ;çZ£µÙã@¯Nn ðæGïkKn‰ÉÜIz_™ÖŠC]1N×ñ=Xå:Èu%ʯ ž‚çÿ…†ÇÂær¡Eí€_2ÿ¶Àø•£ö(¯ÃͨÀPµÚ©Tîz¸Æ°ÿÈæL 诀~†Až=ùŒ D6žž ͨËHF? »­†÷iЀ½ÕèŠW µÞ(¼ ûp¼¢ ‹ò| ¬1ïcpCÛškiqŠcÍ0&IúlžÎ„5F ¶Dô®ª¢[<%hYIq± J¬Šûcð‰ _]ÅÆHŘHŬpÔ”„ö$¢ÞJ¸·ªÚwl³&l=WQ­ʬ‹Ö§ã]eü•¦H“‰w1À®ž ×çǪ Ìl­' Øÿ =ƒQœÉÎÝ€>DàéÆô7fÌÎèa8ÍÇ,¼i| {‹êƒÛÄQ,ä0°à^šÊ`Á‚«Ýh"Ç™)¸1ZÉ#ÌLÔŸëš@µy JŒ„5]‚µ÷E"éYh4¸ZA³èäÖ*óÕ&Ñô2»L$Ú|üê[SÌ©¸¿²9Œ™óU)¥¦ÞTË$âþ Ôüª½âØ]|Ú ò:»ª€“,¦®ü9ÚÐýý Üh0t8 –ý(í¡ÿ@· €ØÏQcÞ}¨A±\`ß07q-èãnàj/àÕð•©\drÍcœ$³xål d-ŒÃ( Gô4]­ä*UAkÃVcxʺŠyq4äyúVÈV66Ú,¬§>½O-Í÷|ã1†:.Út{Ø>†rjrŽËv˜‘ƒ[ìJ“É÷zƒQÊ1 P°½n` iêí«[ «8I¿¯Fà¯ñ@ó4w÷äY¸_Úµ×µ=$Ü zñ`à€?ÐîöëÛÒWMí ö :ÀÏØ‡Ý·î˜_l^äóÁ§mN°ºËãÍô 9íý«í Φ×x÷CI#Ѓé@¼" á1etM¡ë9`àëPG|ºÒîú.ZÕ Òíço±ýGÀ¯î þîûwÅ.ÀÌ•ì ¼Úâ^ÅÌx§[îÖÚñîa>ÀwÚEv¨ÛiÄhæxöeHOfžFü=‚§Áö‹¡·-Ñß¶ÀÎrHAd[ YúËÐʺ@Œí~Š-fÁ¥'Ýï6Û t³1 Æ%¹Õø» Oì°—\žëêFâ½à•ïÖ™ŒÖRºâ7-!·|Ô2„.¢ Qï­ÀÉU*ÿàJ!¥ðxôP¸@!ØP+å6%ЎΘE¢¯Â€W3Õš§Pg7Ôu„þGÓóôCàÛÀBµË𫕨©²Zo+H­*ÊID¹í0zUÕFÒ1¶àÓ |R Ïç(‰QTMY‰Ü“ªèRY¯ †rTÂû¸3CQ-#R„´ËT!¥H+êâï(ÅheSŠG±¸š©Œ* -Š@IñŠ«‚ŠÂ‡£’Pguíae<«h(uÕ®W×+‚‡5UNa¸^ WÂPŽÃ« z"­Œ†Žò‚À.ašéÚó(ÍÓµÝi›q:×tƒngaöš‹QþoI)ç?`uµ€WáøëF:Ã/rw ¾4ɦ‰ÙcäžËÔ—W±¸'`BWÞÑ6·ðQ¡É¹Ü+÷º°Èv_0#¼æ,¼î~”]ÌŸ¡ÌÁЭß#ƒ¡wÕ¡s;ÕOctrá?~uòÍÄçöE3“›Âö€Mö§À#.£q\hJÌ΄>VáŸ`‡g1fíÁ¯zÂY mn ®vþ€÷U}ªÌ7C‡ÿÇYĸv–›n€šgASD÷;@ïÚ›s| ¢Ö 6Íî·;QNg¹,wüj4õµ÷›~x•IÇ1?vnj߶Ö#3ÿ·FÿW¯`Æ''ƒ»Ì‚4K[¥þg)|¸9¨ó- D¡ÎéÞðØgýB`yº=k›Øö‘9bßrGÜ ¿–yˆO_±µ‚y®&o¤×ÌwÞ?Þ àUCxžoñ àW…@ËR°˜¹hýŒH?´¨…2ÔÐçL-l‡|Â{Ù§ ¨ºùÚkþ2ZÒÆí^ýjçcIv¿¸çàVånš»ÅÞàå=¼ÒÞb{á¾o¹ ç'ìeÿ”= rnÉ?ðPèÍCÐÚÆ@ûVCô<„WMRs Ÿíø{´m:=í'Ø:,>ãvwx5ØÍÄ]Ax€kÝ_¶ð`» k¹.nzqÑ;n+»Õ¦,úvºæ5Í\9@ë~ô+4¼Z³²]„{ÂÊÆ£ '!ÿTõ¶ë@Ö]TŸË0B­0†‘°ªÛ€W£cÔF¦Ðd×Ç5‡uÆC:‡_fÃ.„³ô€’ ‰7†ç—Œrb0fƒáTųñ¨£ú%»ŽfÇ`D“”ÉÄV0,ãêÊf¤œt¼wp#\IQ¶T å×ÅsÂ2” e)§ŠGë³I¢0aj«b÷qZnžIÄÓ±zW-õè¢*]¯’QN.î–˜RŠú§ÑŠ{¹oMµjiQ}gäþtżxeRáÊ…_UÂû0•™Ã_‚¸Yúdúr/pçQõ¯ EÑáf­`Ç`‡òÌzØb&£Üò\ÛFÍY8ê´„ks8 ¼ŠçëjÓtþ†'k=h7Kù¥îªÆ‹uȇ­_ǧÒó=ж–°(áZ³è<ÿ‡{)»|Ç$˜¶æ àU%èH9{^. ­¼ZGq2ž¾@ùÞ{T`Ç.PO¯#ð*ï'òÓÃk0i&•ÃDaÚM¢QþP´ >li'xUKŒÚc@ÍŽðËr!ÇްOÁlŒñ|Ì`?-oGã9×42swW`S¤Òÿ¯‡?ÚŠÕ&ÑþE¿˜; ý¸?l¼kçæ@¶¾Ët«Ü5+èÿ„=ëjºFnðæœ÷¥5n…)AßÔí`Ó5€~c×õ!Õ$\/D[Ú»bPWkhÃ$XhäR„ÖtQ;mÏUø•x7«(Òô^ w˜o¸»Æéœœ ÌQìª?b±âU¸ö¢ŸFR„Ùt¥Çq·ðŠ<Ìz»pOžr!‰UÅ Ìxõ #”TÁ§hG¬Ú}&p CË©ŒÊ´4ñáÄß,‚ü¤Þ|"è"[4&ý'â5 TI}±heHñÊÁä§@¯ÆjbßA¼ñyž_/«Â{ŒT°«â[ŒúƒMµE!¼„IP\ŠÀµ(åWV}Ë0-ÑÇO²ú’‚œ…Ðà5°ÚE±›0¶MÔcl†ùú+ÌbRæ:èu>¬žìgДM˜ý%6¸šîä,>¡-J÷ò诠`#šÌçÀ7{Ó˜»õÙ‘˜ ëóƒ«+†ßT™Gk|p/äßV H=™.ñNî£e>iÈ40›0ÑÔ€+{‹¬9¹ê þƒ½Ï©†?ñ ¿jÁ2jÓù3ÔëÅ2?ì³iö'Bw›‘1üˆ~M1xån0¬¦Ð¸GðkàUUŒ¾c²»ÌBn„ë€Ðõýé°÷Ö4³À¯Ž°D2£À›–Òihvkô«´r)I,«ýl½cÙ*ñr°­K`íQ×€†dãh„hËGÔÂ|,̓‡Z/pÒ&Ûgìvȸþ`¡;cFãút[f˜çz}PÛq<Õø$ñá†ðåGm[ÛŒ¢/€ÿÓðlw ðj8¬ªXnÊ.~¬„e½þÔUL^øxµÉ¯ŽOòìw6Þv‡?¸÷Ú‘î’ûܯkvósÁm~°šËç'èYó¡wÕ{VÛ²xŠG¯jc…¹,Fo&cv€µD 1£Ý…Z›[wÁÂG¢Þwp_#ÔÜË_hOûwúsÁ7ÛºWÀ¯ÎÚ[èoºì:¸OÜ7îÌ«Ü(7ݶwð<ÏŽrm±çÁ¬òÛö¼¿˜T9×ãïxì  ZÕhØ ïj£-âŸ×€”†A$* ­,¢t—ÿ³_ŸÛ=ïpÛ(ðªù`€ÚjnûÓ6‡Hü*Å5‡?˜MzŸÙìM¦4ô.¢ÀQÓ“ì„-D¿S!ÑöÀ«žÀ®HÌèü“úÚ@Ú‚Q€UÍ1"»^D5ÍøÀx—§RKWîšh ù º8˜…÷Éi/¾¥sÊê ÓØ{4¤9Ÿ¶’Ìпš†÷ÐÂÅ“ ¶$ê[a×)ø¤´üªÊ¶¡ÂÐê2õ¤ߪAnµ5†ŸTo•‡'³ÕO«¬Ñ÷ÅñS1‚!¿LT-å]QÊu"µô –!µ _ª†²«*ÂV‚æwQŸNbl—ÉVŸQVíbôw%åQ9ÊÝBئñ«ÊzWUÜêW7ÌaÑ‚i°â^°¿Ê¸·Œþ¤¯1ÂcÄ øÜ ëíMÜHÀ¼ºŽëðÅóîÔ¶ÑK¹YÍÌ \ýôÕÜÍ< óÅݘZðhs,tê"Õà±*ï—Зb°wa”óè~Ž;+G]iâ€W»ŒàÏ~<ù½©Ëâ_àãû³,õ"Uñ>¥l#òü•:{½½¶,Øx_3ý½rõc¬ÛóWx²&tç*üÐA°¡$èÔ&̿ϣ¯éÐë©¿‰‘á³þ f:çã“»Ðáþ4ô¬Íc2ÍÌ{\ ­ä ¯‡Qb7°ýþàíë0>õaÁ><çõС¶ÆËà}þ‹:º¢¤ÍhE>䔎±[ŒêÀBrèSjh>âÏ¡{£©Eà+[Õ¾b÷âþº\Õå¹Ì$Ì7Ùá&•WxðÔI´º|©Ž§¦@‘ø¿ ,x}«ñ«QТ)@”àtõáߌÚ2ѧÅÀÓvô!ô¼®Î¼ÞôGÛ~=`]ž=f³íPû!ðê%ÛÛÕ~~µ›7Ÿ°Á —É[WG¼¿¼C¦ ðç^z‚gbŒªÃšJ0Ç-‚ÖϿꫤÚÉÜ“>7¿j†6¾ñ“Ž ê᯴ßùÛ}Á’ÆîUàÕUà•alé¾uŸ¹m”Ê·»¡n±íp/¶ƒ ›íE°éÉ@Ó‹À«ùÐߘ]γԟ^£Ï-!‡b̽y@ÎQÀ°» û6à~ –÷ø×ý¦ð{Ó=îŠvµÜ<ŒjÀ¯þ€?Ø„´_ºl×ß BÏ.zGì_vøUUÌ4—½¦-Æ( =êýi‚z«AW›á§“úƒcQÿÌéèw:dÜ#$ >é€ë‚3«(ÇÌ ŒÓHÓ Ôþ`{[¿F?)^%ÀnëQo^¨‘©(íÅPXe$t5=܆ëqê»Å<›ª¾“Ä·C’ÔƒŒ¬@põkRªF$Ž•ªVÏ6EijûIÀšÊðâ4Ö¯w‰(«Ÿ‰CKT>­k|ñÊÚäJ˜ò¦B}²Š¢b„Z¸øhŠWìJÔÕÄeJ5íÙÊ œŤPô>U™T¸¢dœúƒ‰ÊМâX„ú¶1êuCoÖÓËÊâ`wý iÁ2°•ËÀ+Á®Û1×ã}ZóAXäpv‘ÿÝô—ñ$k…ƒàwßÜ©¢ø&¾Ì´çÝi=·0ÓU’½¡AÅ|Ú yüCyðË„½î_Ö/}™OçxwÑyái“gŠÍ#F8ä÷Ô”/šÔ'ó ¬Ï7Âv¯R¸w€ÒŒ¬0üJe^W¯Dó¦ð·¦·×‘e½á š í~2¨…Yø<ìz ø@2,ý1zxÕ òzž_{àU$S™=û–™Ë…ñðïâý!™N(3Êt^%`ÖŒäßÁ:?ÐõôQÐͰû,‰>€ñCëŠPzÏ^9Þ…ž7Äçë4›­ñöºªû5Á¯ÊÌWü%ôe4õübí>û8äXÀ¹`_õÒ\ÛÊ$óOb_§t½k=îh ör°@rAVàÚ)Ìû3!ÉÚ°×åãØTÏÃï°é娿9Úû˜ŸD!î ¼è³ÏÁ¼…ÒìÛÀN¶ŸÐ ðç¸ñÁüÚf?|Óþí2àî¢ÝšÏð‘éˆú¡<”»¡õƒÑe>ìïK¾·Bm™Ð—5ŠW è)ø¼Cïc®*õ¶þrû«¿Ñi”¯žv§ìBèBx°™;去ÝT•ïuÝM¶•ÛÈïò;Ò¿ú #9­ûx58ߟÚò<5—J!=‰¤×†$Ú²k@Þ# mw ­1>õ1>ìÿå×âö`f[Üeð«zn>«)/tÿÚÖÐÀÁ¯jºÞn,dô=üÁëv®É‡Í­§?¼/LSåÞmÁÖ®btëÃv7`ÎY4*‚eLB_ßkJ†leÎk¢ñ«p´l8b´bÉrJ7 SÔÆ§RW7Àµ€'c¦ü.ðy`ºr*h´&G9@ôLÖ…ÂqW,é>Xw¼zM=ð¾šfˆÞ§(*%ªß«¬"ÊQ¾$yyÇ•ÙT3!Â7š¢¡õÁ`BU<¦L°Æ6®‚GÅ*wŠR~V Ø©±vùÉQn§«™ ášÁ‚ËJÑ AÐ|àJ*ÞÅ(¦‰N&(Ο~WIóªéúŒŠQ^%ì*¨^cuÍ‹¨‚–m¨¾¦­I‚þ ¿’|‹vð.¾ªàW·Ã®kóg*‡0^÷Q‹¯·žâZð®$b6úñ,ÈQäSBKù7p{¼/17hÈÊ3ðJ𤄢9ú&¨þì¬1ìIçMàM[€u‚ÉÏš4SWñ*\»œÙ«Éâïþû^Iÿ*fþFü*x×*ð:{ÍÕW¼ê®%Rß.«Íü!ÊχNÿ ÄêyKfšÍðŸÇµ zXó¯öC¦E`–ûüÁú¸ã. Î3`7㙩œhê›\( ò™CïB~¡a“Ë1NÍÀ¶®Àw]‰š:‘³·äÇqGS`˺š˜‡×l])C]‡á~ÉGñ×(ê8ccía . ¿9üê3 (3ÑÖ4Q<Ûë¤ëƒeà1·C®`3÷CŸ[¢Ö5°Íè×DÌe˜}ç@ŽƒÐÊ2^ ‹©«vµ6¼sLu´3• |äw±OûµàVµ—lc;üêE~ÙÞâÎø Ì~ øªýÓ¥º ô`—yËû,£³äÐ~žÂ½Ñ›þèÈ&}û¨ÜŸÖµo„G*«Íå@ˆ}øT² â©…‹ýÁßêO‚Gßþà³î{; £ vwgÀ¯vPop7Àìåà7y©aÇ€_ý†Yb(¿`/ø»Ñ»4ÔՊ硟 yÍ„DJPûtÔ7 ×ZCV ©áÝPôy=~•Á­Q»_WuÝ xïAÊ«Ý5+Qóösøàm]_`ÏoÞaë¹%¦LãWz‡MÅ!ágq­3,k z4Cyn²®«r¦á½D(%N&V[¤y$ãt¥m5åšEÔþ'P×Ï5P{‰NÞÌÐ8NMð«yø¡Q¦b<™ ^ œûÑŠõ»êЀm¨)]ý¿Í•ŠUd E–$n,YUYÊ£‚xªºÆÕÄ×KGkctQ²áÙªÊU2ÔþSÕw‹Ë«¯+~Ѧí‰A‹ªj=aÝ ÅÏ#[b”YånÒÁŸjµ îÔ€²4ú#« ™*ifE´¢_eõ³u-S"V1Š<ÂÒ„c¥éšB¸æšm ûšö¥*ø}™sp_[XäUü%˜¶VÛŒ?U<<Y­¦|`E2­¥¹\Ì>ËJBšÆ²j#Q·º¸~‚ªô:ÓXù<•IkY¹á%ÚÂ\ðþº41,´'9xå@‚Ó¨£ðJxp°¥QЃhå(ôëoXëTpŒiðÔ%Y Æ8_WökÁg[ ‹:ˆ9¦H#âïú]íf?žbšýx5Ø ÿð.ÛÏ} ¼*2{ùîàû¯‹uùàWƒ_òÞ¿j‰Ú?…?Ø­‚²$Ÿ¡Zÿ5þj€>ே`ã9°°bHµ®¿d =Î^-´§ü èÔÆ½aw¹v8©ìì~uûÀ¯²øVð«…¶£»‡ßæ•ÀѱîQ{3ÕlàÕþ`a–ò««˜ïÒ …é¨õŒbmHUæ• h•x¡3à•>Œq˜át/ð*•;€§l>EºÆn&Zè4Þþ/üÁúô¸=ì²\37-=ã}l·7‰ˆ¯§¿½ã¦=Æ7¥@k%'6S¬}o+s/äÞÚ0ú“ŠvÔÆ˜tVÖÑH#ŒÃ”,Á¼:'0Võ ðª¿ò«xèàáÀÛàW‚ õ0ï/@=ašÏЀÄ7 רÉÌN¢Í Е!˜3ª©§§9O¡(Á¬õ‚¢Y2Ô« ©g¢U±ÛÊB ±ú„¬–`´B™™5ôÙPöA"t&Wñ!Lñ4B½áQU•ÿ$Tä4ä(Ũ/­H'ؘ¬9bâÍU­@7á™5!«ŠSß2Zr?*ÖCíJTdŠFër4~TÞ#ïB «ªFâÃq¥>m…ì^ÐR«B:½R~ÿ ¶%ïïDKø 哇!«;ÀÙmÓr®Ž»b”_-á°Æ*šóv/Ž$øÜ‰fqªY îHŒg ?¨}m*ŸÇ©DŸÆÈ—Â?~µÞÞ#Ü]åô¤énrÌF|௩ÿij‚Û„ÓyþèÀFf•Ëäyû(Ã'ý—Ò½Ö^ –º¦ð¦ƒ×Scï[0ûðÔ5š}Ñhš˜X"•ÕùÍU~Õ¾@w¼–Böm ¿«ô¸ƒà˜Ä¯‚L¼ŸIútÜ-¬§–T¤¨`ÉÌ'à‹Ù’µ ~•hß²›Pf]΄'ö• ék•|Ñ®š‰)˜¸ ’n‡1z@×e˜$û•$¶}[×5= ©ÖC­ù˜“º£¾¡çõa)´,ð†æ·WŽåØÀ«‘ö#úš÷Ù¡î@ðßÐlåÛ‚ íð«b~‘Þ1Ÿ¯Þ1­¡Ù¿Ñ+<žû`^*†¶Üˆ² Á ËÑ·"_€…ß‹û: ×Û ÙaðC÷a Š¡µ­ý¥ðéÖú²†ÙνhŸqßÙùx8ðêGwÄ=AE¼ÖÍpKm·…·ò<;ú°=Ϩ;ï¶×àÎB?GQ#¾Ì}!·ÛÑ‚FÀ«ÖøÝxUNR:(yÁI$¿]øßþ?—ÛB›Ý9æj»Ù¸ëš­æ»ë¶ ÚºÕžpµ\{'eý®üj‚©ƒ^ÞE—¼7€WY(»3tøgô³ålÀ}3ÐoA€‰˜ç?!‰Ç G¨‹–tT†Ðµ7D‹VP"øÕpÇL£¨©î 7è àÕƒPGÌrYj/èÑ`h•DyÒ ³wiÄZ¼²I`ޡռÍNKÑl…èŠ|§LõËâ*r²ªáÞŸ˜ ]TÜ“8|K]U ø—ª|,=ÊÓ¸U¤z…Uä}ºúoâ•JÜ©–úw¡ øP¦B˜fvæêJdP³[“õé 4¤5ÊUô‹ÒœÀdug(†ÅTÄØ³4«âãí¡¬*ʯBù¢µ¡OKi‡¶( 63]÷·žœïœ¼ƒv‚}ªÒ8 »Ö/ˆ7𪘯(Ö¡Q|x„´´”næëêFc|qSÓGû>ZÕ£«+éàWÝ´µOjãG˜åºÈ;x˜Jé9SÇ40[Œ0Ò3`?ÇM˳Æü~õK®ÂüóV<Úðeyͽ6,3Ã>`Zk,+¶3›jò{(}J…?غ\„6lƒ7øö?ÔìÈCÓ멳ì.³‚Ó`Û÷ æ;ý©ÏRÌïL's–«á/ÃWi¤‘©ù™= ••íVÀ‘+(1JOüAŸoj4„'£ô>jµ³µ$Æñ!•˜“üƸu |oÃí>»w׿ïŽÁ“îBcíeN㛽ÎÐShSOô¾;úЭˆú›bÂü 5ŒÓ¬‘9hÛÔñð¿ ,«rËý\¬>À:øƒ½ì“š•aÙÎv8üÁcü;Êížòë¯æ‡Ø\øÕÓôˆ9í}ë} «m,ëÉ<‚»‘$J= óì&Z4ÐøU|ë%ÐÈvÂ6\Iï¯fkŒº½¿ÊžõWù〓­ÝËö9õ/ПnœûÒýì¶S.ß~5Õvrñ³¼ØN³ÝÜ#öƒÃñ«öwÿhÊ@ô®¹ÆHó4G¶!P¤¬¬L󡦢ÇÍQûÈü1]¿­ ¼ºßÿׯÊåhÅ&÷£p¥N|åë6ÑÝ ~Õ¶{·ýÞa7'ŒèªÆÛç›lÈüx‡/À3ÌEßÛ™Ïc‹·¢‰_ÕƒfM†$. ¦8Øat«=ÚR º'þ`‰æ‹F¡kn ŒÒ¬¨i`—å® íÅLy,püª*>)„±V¯ù R’Çžè ñ›4ôv~'èáOáÊ™¢+rFÅî²5Ö”Zá7¥)¾D+ç©Zr•Hü*WwÌHŽDºFï«(šÕCÝÑÚþ(E“Êš1§è§Èƒ»ò•+Å+稦ŒÈ)ŠæTįRq5^‘'¨+]54—,L30„‡ZÍTˆR~åk¼*CQ×jî¨Sœ j½ì,Bk­‡h.øS(J?ÖÑ\ËlG9Hë½,¤%¦óÅç˜Ùf¯$J¶†¦r9ÿ£mC €WC´ÕÍiŸâ~¿ê+Ï6S5Æ8xUÈwè¬ÐÙG(}sdkh¡p³™4¹³r¹ÝÀ«ºf«‘{¾§^Œ)›£°‡ ,’ü™|ï ®FHÖ¡×ÔkÅ"¿ù}ÓÅ릹aOB[ó4´´è$«æhÙó¨âU?èûãècGÞ‡qJ£?)WãW9šíqŠ&ûs4"1„™nf7°º&tö0a,²ì¥ ~9æ€Fèïð«…šódx%Ð+š_ï*º¥÷×ý{s wÉgÈóh`NA¶É@™ö“6Á¾jwr8Í帣f4Æ`¼½ÝÄó"¯J=D(‡ä{ '¥°€®°­æÀ«‰êçND)’k´ ý¨þ 0»º¨w ¼š–@LJЧ<´tCà=¿‡}Ð/@«ÒìO¶%üÁè ~Åö ú Ì6¾/¸Èº`5W‹ï§uæcï’÷©‘uÉÇÁpGcŒjkvªÄÊjAÂ' Ç"´ªh±¾KMe<Ï@æcè=Ô|£fÝÔñ7Ú¯ý;ýéó–îYûªû üê:yÁ>îk÷¶ÛIq¼Ä t7Úvî>ÞÏËì\;Ð=dÏp"õä—ì/þ£`—Rs+þ‡£æ6(¹¡Fó¡§ !±šY2xµÞC+Ô_$ŒÄÿÇOãvØî2üÁÚo¿jë¸eîwÛÒyÀq5”_Õ^^Í¿Ê@)WÐó–[ <1Œ;㙂Ô ·Gc[-0«S摃;K©³Úu)f°¦šÏPv”mn^ItgøUW®üè%ÚØ¸I=»|ê 0WyH®ŸæºÇãJ3ô;U™Qºd5jæfœâZ†"Kœzy1ê7UV^‘ý”ª‘£8õ³¡ÑÊnw£Ž4E¤ õ SW%¢¨"j•¤ûr*éûÍOˆÖ¹ä9äTø qŠAU´Þd””G‰Š3IŠ>1ê÷Õ‚äjjV…àNm3ÅÞ%C+NWƒÊ¯„‘ùêVÖ~˜âUUÍð¶U –´˜žRl®ªk9åŠÉ‚W—`]‚”ëañõù„Êê3hÃZü%˜³žîà"ðÙ÷4œFó,Ì=¡õÁ…ü#¸ºøµáÖ4‰%Þ^Ê3)Róxër)÷ОoÇlS­¶Í ë¼¼KzµÃD™L³ÍÈr†ÊùŠ©Á’—å™Ïh5ýÍ2¿üBçÍŠ1"“?À¯¯5ÿê#ÓÖ+սϛaSµWqÐÜÖ@¸ÓhÕY퇧¸S°ï£7QÃÏlXOüÁ¥\Z;8É4"æìf4’šfæ?(?÷\ƒ®îÜ[ ïí1‹.‡L›¿Ÿ§ãÐÌ:¸^‰WãùaØT üXè{/èB&žl„Ñ“ø÷¨Žùܵ*dÓ:ð­³oØ=`P9œìê¸Cf¼©íS™'{‚²³ðª—Úçý_/Fycà1ƒ&BãÇC–Ó1v Wsa1¹¸c9¼‰Öt€Æç‚Ã÷^÷{Û‡ü|ÌVÉöŒÍ³ãí;ô$ﲉA|Ï/0/ò†àã¶r0Óåð.º×ì÷ÎÃ,G¿¶Ñ{¼ŠGhÁ}ÐÆ›1ôǨJIäºuÈÎÆÝèez›ÞBÿdí¼/øÕjP×Ã1†¿ÆØHé·CÒ…|Låù)$øå¨_¶ŽÖr5¾¬=AsXr~ßJiŸ×|Éo_ÄÍ|å`Ã1ºe¼F{ۘג§*~? ݪ”5ˆùt‰·¯Ä{~Ò\çdóˆIB¾~^0uXÞsXrbXâZ?Òó%ñC\Ó+ñÊÔO\ÀGLs¯œe·‚µµ†?(yåðš~F?§£æú`»–í!cY)ì°6ðê*U³›%œVÞF¹È—µ­ŽÔxÕÒlNJÔ%ÌåÛ1½ ¥â.Ñ̪AðÁ~EëŠðÞñÍÀÐ(Þ ‹-œçj¶–dñÌ€vËZeðŽRsPñj2µüd“ìøƒåTxUèNšá°ÌIv  ð-^'Üÿ >ë >ÕS÷ß…’Û œ9hÃWhÑàV”´@÷–·X®º×?„;å|†ÍUÝ8à÷³Û|‰Ä×´m™j‚_=c/ºŒà¿™ÙÁ_±qÁt—Ë;èn³Ï»î½kÚ©Æ<Çcyú>eÍ×üö)ÀKÉ¿ÎXÖ´ÖõîÆøƒïa ê@Bý‡íU_<ìÕÔÛÉiçì<`ÿß°ÞËî øU¯s£Ü-¶‹ÛÌïðR;És;ìåWOÚ¿ý=´v0œZÀQˆÞ‹?Ø£R›n~L…–¨W|?ü¦öšC;îöÿôã¹%¸ðàS©®®“ÜÒ?l-·Ä]³Íd÷»ýÜe¹ŽnÆé²÷©µn–‘ÝK÷Ó%åW’[ÕÒ¿ m]˜¡x»ð«(xuÁo«…ç¡M¡áº×c$Fl´f$-¡L3#0™dÏÅ8j dl®ÙLoÒ›§³ê+¿ª®«q¹Ð¡É£0§D”ý,~ ‡Jƒ•>ƒO“¯Â•B;ÃÕ_‰Ò¸z’ú\±·SM10[÷ãȧÂtJ5ŸAÞU×èUŠÚ~®f©ï®Q÷ †k¦E‚ú†1šƒZ©âŒ†TÍš•HXkz³óËŠÍU!‡¡˜™BëƒxzÝôý:0Ö<>¢Ìðf’ÍÔPsî¡¥Üx%c1ˆfòbx²>¯ž¿åÑŠÊÃi.ç˜UZÛ4Œ]¾SQ¹q.O×XÖnÌ’&}YH?óÃÜK%°Ùx& þ ŒÑ7ÔŸ›àUøƒ‡0§_ÐÜõ_è¼Ã ïÝpª—N%òŸ°¥×™Cüm eóWÊ  üWЫ>@Î:²‚ ¤ÞоÖgx…ÚÂLÇõ<®dŸ¿’•®­ËÝü¥Àã"ôª³ékÞ€åäP2{¼ž¬¬œO„eöÃXæ0ð«ß'¿ªÌ‹è…ónØf´~F¸3Æ* , £*;kÞ¡BsŒAS†QÿÀ7¶º} üª •¯2ÝGfŒ¬sÙ‰&çyåÐÀ“¨©/Р—fG®^µ‚¥Þˆk16ã•ñHÞÑ·ŒlˆºëÀŽÇ u‡ÀjòU7¯:ÙÇý,´­&˜D‰f?¦“üªMF߀?ø_~b« \6?„±øxõ©é[|€žâqÜ]Ù”ìœÞLÅÊZB#õ>Ÿ¦eèy2»1Òã“1š`Ü{ùÛíyøÕrêã^±»ÝoàW—)&ØÓ]s‡ÜnJâ•n¢[k{¹‡øE¾ÕN·CÝÓö:gÁÜm^ÍŽö¡æü=Ë®ª®fSصȡ#ÜX–ŒÁõµ¡vêN¥{ü[åÜ„;ܯ6¸4²¹j *òÛËè{(6̉—{Ú;e·KL]hĺæ³Ì”½üãØº±õÍÃø—R„î°ú5É:VI¦qGõrŠ0-0"2‡®¦3,0FYÆ<êá:¸2Íï~ŽŽ¾ LWD( v|«²‰*@¤RŒsž2˜ªÐÒ{uP¼¹¡ÐÜ,ŽWUV’¢X£(ÚÏ'ˆò¡¢4>¹‚¥¢5)Šrâ'6DOR”Ëäiä)Ys’tWªú€ÉŠxáŠi±k©_C/Cç2$i-‘?OB­¹Uï6UKÜ–x{Mõ²*á§@ó-ªè_ªâ•ä?D)ÚI,«RsŠ{š¥OÖ¡G1G<®x&9´Ã13UV¼úÑUcV÷cÄÒù#õOÀ"6R=ÌÙ@Ó¸ŸV?qÝð&m)¼1‚'¡9¢+¸£¹IÙ¤¬6àÍ*ÓbŠã,«˜¹WONÚ =[E§ø÷ÖLÿ§Í).¿®uV2ÔMvü/°Sr¬Å?O_¯*éá,¯‰WŸe\&óϦÌëª{±×BÃëðç$§Þ”ÿü‹Ö†\‹ Í{a[m¡»éyjÄG!—Z”¿ú/™…\„V=AÌÆŸ«1ªeèÉHó.Çßbtó3×¾°A@›åººßù ê«¿byt;ŒŸJÕ‡ÔnEÙ=¡IYÀ—–ÁRŒÛAªmNh½ã©y਷ÏÛ'©ü×X—æö™q`lS“Ïý^ÐÏaoQW=»eØ—ä_­@+>†,¦¨Ï9#6 2­‡¹Zò aÉ ÀÛÒ»¿ÊG î¼å7³÷Á\Biö´­l{Øýô ï´Ýëî_Çìå=Ágmµ`’âÕsÄûÇ{ÙtFY+À¯z±¬´KvêTà°œçò)ÚP[ѱ=‚Þ¦‘ìgÚ†+c€“GqWèfk™ýþà ŒJ÷–ÝêÎØùrÖšëâNºEn %ð-nˆ[h›»ûø%¾Ãεm€WçÀ¦»òV{ÌÒÍE¿ ù0Bmr—ìÇé9ÔÖø)üj(zvüýÖš9;ò­mÄ€÷kݼš…gþµ…n…»j[¢›ìG®:XìøÊ;nÿ€?XYÝGç¼/L™z+¡Cç1𥒯® 9Q+Qsì/µ’tÿ`-Ìôm)tÎÉ@´h‚Úórøƒƒ4†}µtí\µçèjàl`‘ÆqꢗËt}PbJÑ‹D4¥A›5" «‹ÍPƯ|+VyUŠÚ~È‡4Ín’èO¦z’’#•–Gªß­g5Vìñ©¡1ùäŠø|]\OÒÒc•M…©-Çê=IêJ½…Ú“*ÊEB»nœ2ªB>UQìIÖ§Ãp­ƒîg”¨˜ ]vÅ©Y¡œ9óÊiþU²Æá­b•ø‘aà]òDŽ®äI¼}9Æû^EÇÈ{XE>C Õïºì¾ÒÍãÊ-‡ÁnWÀ—KÔýƒ÷r þRQs8mã™4A[]B·ð¯ 0Æó`•ÊèT;Z©÷,Æÿ)÷U<ÖœåFæyÍ]ÿ…º±ñª³D=ó9¸øQ–ûÏÒ¯æÌ[²îj¸Ø+ö걌é>išzÍY$´ÖZ“Oª„Ë0—ÿÙYü²–Àê70»É9 »Á1êþÁ,|ní«fK¦Ò}tŒ.曺Òî¼:Ê’çÍWÀ·B~è Æ¿ WÛGÎÓøH’äyðWƒ@hÙ›¼r+ ®Š³dšSþ`¦y‹?õ1T8f#ìð«ð\†ûÁÜ ú¼*áõ^+ØÄ‡¿ð«îY[àÕ0üß ²›­üjJ)Ôu19ª.•òZÍJj ¬\¾¿‹±l¨ñöuçýnöa¿.žM³'¬gûØè]þÔ®q ðš§x]ð[Ìrùü½b>ó®zo±wæ'y0÷@o„;Ì‚t àí}Œ–Tœ¶µ¶œG‚O ÖQzþÕT´"Úù·¯Öúãd­þà`‡øƒ—]+°«¯Ý£”Ê+ÀqæÙÖî~×À,w{í˜ñ.{Áx•¤Låý,™ë5Ñ‚Æ`w娭,·>Ï×ýƒ3hS2Òål™û|²¸ ¤w'8]ꛎÙã[(yÕ–¢µÛ€ÕÙ®©“ü‡ËÞgöšedo}ã6MuçJw”{­k¼µÌG}EÐÉqèç!šTq~^-Œ`{ÅŠÝ0YÈmÀ«Ññš/=ƒr]'×@ùÒ ôwàŸÀ$ÝýR€9ææŠØN ”9ò¬¢þÝè|(~žŒ«j„*Fs ÒKb5†£œ*B½ÅlƇi6@FJE{ã5;]ò" *ο¼Êѽ4U”/ÕGS5Š.û*²É#5¯ùRB¾FÓBþ`•ŠÌƒDõÝsª)Åèš]]Ýï,('<ªºî «ÈÈÖóš}/Â+é…«ˆ`%j.™´­.Fc;R¹ÙtX^sÍÑ’µï‹z¾h4k1e¦dô3=}© G½—¶òP>¥ø?îá©Àý0£õ|'k™å4kk þŒ•|›Î#…ÐúpIØæ^<ݳ¡pàµô ­þ¼Ó\çf‡¿ûuæOM–ÌZÏ|ù儞Ýw™¾7'ÉêâUÊðêz`&èÿ8Ü]â5aY­] Ž®Æ`¦m‚^%tÓ=;¡+¯ -¹ô$½­9ðrrE<_ö_77qsܽž¢x”?öÞ œm¼™Pb¼¥Í¿*Fo€E vÈ”.ÐækŠWà©Àì0¶¼QÏgx=,„…äb´n‚íÖÒó¡ŽRžy?ѳê‚_ÅÚ—ì0…ÆçâÜq3ˆ?ÊÖ7¥¼Ìë„§¾>u¥;1óÊJÝݸäa=ˆÿ¿÷„6Ã(ÞY÷†ÎMáåx¦ÖµPÖãàý®ÃÕêÐõ»Ïø]í~>‰·'m5Û˾OÏóÓv¤{"ø!ðj/Þg ƒ.Ÿ¤—ÌÞ§Þó¦;u‚¾¼Ï ¹'¤0E#Â7Ë,úRãÜr¢R= ÄÝFSÈojM¯C›Æ@RqÔÊ_lÏùkü©hÏ·ÏnwçíDH‰ƒÝÝçîˆ{˜y±»Ñ͵á¾Ákí<ÛÝ=g¿†g߃·Øïüm`§Ù@R~•‡  ¢µõP‡È¡ |…VÀ¯ZЧæhÓ]$góŒ€to G}¶m¸í_çÎÙ$WìÆa´*»twüAÙ-½Ñîw®µ$gæxGìu;Ï4ƒ´VÓÞ!¼KÕõÁ¡àÏ’u—©×U~Õï'CÊ_ÓxõØrð¼øÂIZb—S¬dì6Š6#£u}m*º^®™ÆáŸ%ö LÑL̆˜—…_Eë¹ ­ÑÏDõã’”÷jÌ'£×ü5EO¼KÒ¿£•ÇÄht;F¹Gšú‹IÊ{RñW …ÎPÈ„^&*ÊEkì£6%©]çèÊfèt¾XÝ•§|#IÏ{‰¬ÈkEö%Ο¨¹Q+’• CgŠVÓÜ­ÊŠ'Éê¥Ê¾ïz@ð|Ý$gœæi¦C¸æÀ'hËC9WÙŠ»ÁŠØUͦª¤‘õ åir¦é `ý£Ú¢ThbwŒ[˜âÕ Xv{åxkÁ.2àƒIôëØÏ”UqžÌjÉ?kÍ#i3ÆX ¿ªM«øO`‚È¡l¦‰ú†â3N…'¹A3AJé 9g£0@­·èø®¡Ÿù3Þ„™2󘑓}.¯.À”<cNÑÃtšEn?ÓU —Õ|†ß©†W þ ì€šÄ›"¯Æ¯BãùH¦ ºõð¨Zš ¼x¼‹$pøU ø¼‹&ްïà,î^\éOrw‘óLÌds“0ÎWðZEÛõœqzžÌ2ŒfmhïøU²;gÆ€ÃL±ßrÞáµG™À`Ê+øU# œäÕÇx‡…ŽDû§€ßÈH‡^„ZJðZkiN/aì䤹4Z°“}Î¯Ž¹(Þ~eØþöSÚÏÏÙ–®wðK¿Øìä;‚+mB0ÝÕäGh9êò^0å°Ã%ôOÖüö±º{ïfàîdÍÌ?©={h”¯+v;P__zìKvùÅQ µ5v…?moã^³»ÜÏv:ý¢ëá~uºÍ`ÂËÜ7ßö¿z…×Û¡À«gìÏàW]x³ýÁx”lÌá×0Ž5uws9M¸ Y|ÝiŽfSçÜ@O9†Aúé?ÒvåhåmàSY®9üÁ>íÝ-ŽìØn»\W°:}ï}nÿ¶sŒXÖ­tÆ; ~%¹Û]t¸Ð)X\,ë¨kÿãÐןÐGÙ’¦ãÜA¢<Årš¬¶°Žª_R¼šD™ð€;éùOOR‚_ÉŸ­dÉ¿‚µ)_‘³_zh´[°¤ð1IcõYº7'U³Âc5ê¡9籊BÿÍoÏ…8L¶2DµÁ]ÍLR»ËD;Cç3DkþU5úïÙ %Ü,tîqè ,ÉñÊP¶UMk3ŽcÔË áULÅœtÅ+y_U0V±'£SWñJòQ³ ÁÍ×JÑzâ4‡¡Šž˜¦åkþU¤î|®¬«ˆéмž—U9g5ŒúHè·ÄØ[Àú 2t[dÏà—Ô§> ËXK–UÏÛ cøSmÑXZïg¨bfsZÁ׸¿® H¼½©™©üj:´¦¬WøXàFÏQI<‹1mEÛ4Gk}LJc‚ʘãð%×ñ‘ÃöŽ˜v,÷T2Çq÷,þø:fŽÑïºïæey…^_Mçý¦Ôë©kˆw‘ƒüž\ ø x5š*g=IOaä›j¶ÄÛß—Ìuøb¿øÍJÎW°€›ø’7Þ–&òL³ØìeÛ `s aÕÑÛñÐáFžž'sŸÌÞ•¯Æg“`íáÓëÁÇjCßkêy2E°(Yù„òÍKüFpµ ·IöU+1â2ÎPp4¬}®]mø.¯ÊÿèZÍï 6nµ¤ Ùé4þ^I†Átà\á…ÏZÍy˜ Z76ÀÒ2i¯ÛÇýz@›tû¯m¯ç3ìçmöo žð Ìv~%xÜ&k»üí0ïx?zo˜Î¨})íÅ<5åÕ“f¡ÌitŒ®>ÚT ?[À¯òPsxp3àÅ[h÷È9•Úû›ìUÿv0ÖUÔѽd_q?Úäqd°;çö¹­un´»xõi­c;¯Îa–èÆì5ÿEp¨L S ~™£¶=[t´žÖ‰æbœnÀlQ‚6Í:o×ýáÕø±¶„e/Ãøƒ)À¥É¸7ÉÕqkœïÚàúcökWËus²Ûó„wüj¹‘lý[è[ïUxÂiš*'aÔ…”säÜJô½¿å<äÚË)ʪ¢v9ÇB¸JŒI™ÆÛÃa7ÎL„?(+o3©È t•í¥Xÿ/Ýï¥ù ë4‡Aì±=dš¢ïÓÐK+N¹Ê„N¬ÑÐc• º¥¨……ö¥BñðXzw‰ý¡çÆœ oÍ!ŠÑ­ëTßËöJYÆb:gêyXxëèL,D½rçïô¬}¸žæ¿…ž^·r<¼ªì4ù‡œ}ßÜÊõ Ÿ÷ÁáOÆ’/:ÒL2ïq&îúìp)žÏ=ŽJõªËê.hŰÞÐâhž ÌOà'4“òà›Ì»5 û™zŠ{SݹÒÚátG\qàg›eÙ=`sÎt9zžL/šaG™š¼Ó댺>×܉Uð+Ëa‘w×µÀÝëáuœW“óúJ€–›1ß÷C ]ø&=Õ¼,jµžß¾Aó¿²iSà ¼}ÅÏ{H±—lG;ÊŸ·Û†£ƒŸùõÌFþ!ø—Í^¥¡¯˜×¼ËÞ“FPá]¡ùW…@‚õû&ÞK®§;Ïêcx@ýíàU#XëÛ`_5¿½ÿ˜ýÝ¿Ë|ïà^´¯ºŸìàW•W^p¿Û ݺÝqË€W›øC¾ÍN±Ü#`˜14ˆ·Ú3þÀïª=åò'À+ÉéZ€Q¥™Îmá-ô„tëÁ*â¾ ´[OØ“Vîöm!·‡ÔŸr×à¶Ôx{<À¥àWrŠØf{üª—“Ó«Ï{GíïàW²3e5]ðŽ›æ°ÖêЃ¾àôµ5N÷¨ž<&ãDÂÀ£ßÉ„ä;¢ìÅ«Ô'?q%…™zþÝdª‡šêêZÝsTÉÿ&p£f'äR+^Yq^_U’s%SõªA§6+¢Hz_¼Ïг¥â4;!R×öâþg·Ÿœ“¤koáš#š­ßM!ö•&ó¨z’MÞD×#5w"SKj¶“œ¯ñðx=û=Jñ!BãöñÊ’ôŒ˜Ðnxe2ÿ=ÿ* Ú¯™ž)ÿ(·wÒ3kBùùºO0Bwr‡9xÕÒÌÐþ ^ÁCyµ@ù<@{ó¬fÜ¢÷ßKGø(wUI¼b®p+³ËÈ,ñ<¤ý¦‰žJæGÔ}åú)úɦ$#ž÷%*ô¼&,X?†2u¼–šóp3fÁhåŨ÷*úÕ™¥ç3¼A/hÆìÌiÂÇ ƒê@˜€}Ý,áf¸ã‰¼ø3¡÷QæD3 üªîçJ¼Š6êŠó ÆÈQ¬¤¸§å™z&n$ržZc¡÷Ð|]?ÌÐïÇ‘˜êßõ5XNãIߨT{Än‡íÕád—î~3£P~ÛÇäóVo4äC|«vº¦*çµ·nͧ€Ý“²Ûg;«7z;”WC²Ez²ÄÛ÷ë™6ò Ûý!ö%¿×SìY[ÃŽ±ûéþľåþt§ýfæQ>ü¦k¸\0ÄÍAÏž¿*CM¯ò(Ïs2PA¾×¡2þ¶U‰U‡-‹?XÒhD¯ly ìK8t üÁ;í?þÃþhù¦÷¶}Ñ}cçQ2øU_wÑ=å^¤l~ÀÝèà ¼ŸßâUvªíåž°?av*ç‡í9·ìV“˜ù–ÞÖ6—¢ŽNgcpAíúÀˆ1À±»€)­1—6U¼úÓ¼ê¡ç·Ç»&î O´«îäü¾2ÌÃL‡ŸØH|Ê;b=·Ú´…Í­^í3ezj\Hü'ô³%ìøQÝ ÕcíG߯d….ã*ÑEñ¹šê‰Õ‰¬¦HÓ;0\‘`õvý]©fm>Aqþ—ùý~µZOà«Äï—œ˜ž¤gÿÞ§Y²›¦=¤+iQºº—¡øж‡vF«ç–Wq&CvÅ9Æ’ïP€~&ꟜñÞÒKÔ²5[++“x{žz–©¡„¡SáãtÝ!Rs¢ÿ'ƒ"”¹^I£üµô|ÑJêÆjt¾2ÚÜ?‰Êµd'Ou[EjÆC´â¤U5Q÷ãHîhPË ÓÝ9 ŠàÒ†"èþ`èw„æZtÒœ)¿%¼«d°gño†n5壚wÿ‰œIr"î§ç¸¯æ_U–µ?Í Í)7ñÜSû>s®™¥h:xVƒ)«mˆYʃ¾ _z µ ^‰¯½š¾áýÀ1‘ÈN“f˜GL²Æ©Š9Ü«ÍÒ»ù,æø3ŠEŸÐu³Ÿ¢ŒŒÆ5ªçÅ{m5~"¼Ç¯¹b×èQ0ANMmCg”ý¡e²j+üê)È øÕÛT—?×Ó‹ªp¼Ýgq Ü+}Eüé@¶n4Œš‘f«î+Œâ /§MÀ„Ž°Ø˜ñ–ifw7úOˆ¿Wx<^Zo„í£„Жî(_rÙ‹ðjŠ?DCÌa>„QB ?Ù<{À>Lhɉ®¶û×HjªmeÒx³×’ý²?° ^ 5⑵…÷5N¯äü«¦˜6âz/Éâe°a9ët…œ—Nïh¼]Öï ì÷GÚ—ýÿd{ʦÙþö½~u» €_Õ‡?øMðM›¬éªóVzxåo‰Wß^=Žewóõw&ˈƒy‘Mõì͇rÚ®ìÐv±¨?-N£2½%»ÝŸíéð5÷«o=%8Ì]r[ÜNÊáûÜ,·Ätwð>øƒãí·Óž‡?Øüêÿy _´?z2}¬ ¹6µv„ßÛM¿e¬×fA>ãú´i=áûVοêHÛÜuàU™›†Ï¢ å;€_͹Ûíy—çÊÁ¯êÑ%àÕŸv¶©ÛZE缃¦ž#ÕØó•ž%çŽÊ™5ÐËX´©-th’ò%‰Î”êêB´~?…D×Bçñ^çq¹™DÝá¶Tîñ ]|¼ŠÑóEÛhü*RùOçŠýƒÑšÓ>ëüÁ>Êæó”_Åêο8­¹JÅi ‘š[ž¥ßé¦^\jEä;ôý8¡Í)oOW»ËÓ{’µ=º»W=ÉÐYW¡Ï¡2+Öc4V–_q6V´F¿Cßᕦì2º"ÞžXñmd•ѯré‹W'Ö_K¿ (tÞ{<…¾ GV’Ô´ç «8_´rÅþAÉ[hŒ9÷ |ha¦âUý>¯ªì«?]?Žùþ ÅÑÏ ·Q=]ƒÛH˸_ÐÖ¿s€ÄÁj£®óõlåÜÑ3A[ Ÿ,~•ÆKáÙH|Gf„=ðÀ$#ß—±†j ì¥Èþ¼Ù¼zÈH>ê%êjÊâ±³ù(ó³bѸë$—¬„\¤MŠW]}U‰55ôº³dÆÝ†Vá7 ½˜û_£ïIv½6Bv‚Û=q•u÷—©©»¢$~õYÇMa «1ß7ñè®yÜÚL0¯±œhÁ×0?i5ƒ6öAÿoF™mÐß/ѳÙЦ®ðÇbÎMåÙ@˜z°hÙcÝϦi$+:_"þµ9†ze½ºoào[Ë~fŸ•=Ì\ÓºOÍDàÎ2ÛÀTå[à–b$ÚÀf$ÿJòÖƒo×<ý52E›gàúÜUsõ­Ê›¡­+ÀÈvë·bäBŸ õGÛ÷üZN‚ýÎküê ?cïv§Ý!¿Ô<Æ_¯âõüöÍô‘yÏ‹l†ÕJöÄ<ˆå4¯1èע‡ê@ÂûÑ7Ù¡› tب~gc´÷=Kï3ðÂ`ÑqÔÒ_j¿’ïójï¿úÁΧHN–9Üæv€>àF»Ûìp·™_ç{ì¼ÛiÏ‚Y÷åö_àÕ$ýÆ…"þ˜{£/5tÿ ¬>¶ƒLd'’äO s˜‹9âQÍ öMòɦ³è·œãÚ¹‘\øÔmÎ89Åj‹ýÁå»®´ñœ·ßVróLkôéVúÝ;€wY¿®èÙŒ\gÈpZ2 _èEàÎh=×3[wZ•kîw=Ývƒ®Í­¢ <(0BßßH3\O×\3ž¢³ß³ÔG«GÝy-júï÷Ô•1Yÿ[ƒv¤j>|6j½M÷ãÄWøŠQšŸ ßz®~J6ÕÑÝÃaËJRL q­FzŽ©äWäQ™®Ù…ëÞš\¼…«¯×@sACèWMm7I¹Tº®'„²ÚÓ%Ãþ{>C¬zVº]#£ž\µŠ‰ázþU(†/8‹º$úŠq%+ê5ß*¯ÄŠØû¿'tþU†^‘oÐY”y]ùL<8­dóTRð f½Ã_[lÀ¯©/|PìÞð¼ûè!îÆok¬mõf‰ñ†+^ÝÈ¿òõ0GÒ­àW•ßvEM¥¼]åÓ‚¾…¿4Oç '0¶²Æ%8¼–¾æOy‚Æ ß7I¦Ä»H ¤ BB‡$”@ ôÞ{ïE@@:*‚ ( TDQštEÅúŠØD±‹{Çö9÷úÿ^¯¦ÜÙ}Áå2¿ý^óŒ}6ø7xÄj¿Ô?¨ß>œ~ ;=̆Oa¤ ÏRƒš÷b5ë“í¤7ô ~;–iZ„«Ü/ìs›éèŸrý;n!f×FÛúý—þì“kü?Íõò·_-¿â·º_°â:M‚?x5æn(˜úp¼æR4FéêÀÎA˜KÑø°ÞÀŒŒÁ*Ÿc¶‡ÃÆ¢1ùCþgê!_ßEP‹}ÄëiëN÷ØVKÖþ¼æ.»)VcnkÍe*fã:£qµ xφ°×'¨N¡y¹ðþ­ñý$æ9Ua}awÆg”ùõÄßèÞ½Ö”³#ˆWZë°ý¨#¦løvd«â-oÂèvÃÊÊ%æ¤U´¨Dÿª*VÀvAM¥7V…§t•è–%&$qW¬ÅÊjÍGÏ$”å \!>—Å<ÕtXjFÁT°<±¢,sQ¡ª =µX<½¬‰©ÑTkœ*ãªÁÏ$Ù4êe<ª û¥j=`.óÕÓ™o?—ç†Ê…ҨÜJ4Šux'Æúã¤ÅsG£Ä9WG®ab}-Z˜›ðÏf²­òཱkl^ë‚¿3ÝéA®Ä<Ô’·ø™7ðûU`Iêg.1wJ;ØšF솘‘2+VÏÚñ¶Ï$'˜õ`%ã‰û·bç/bç$¬¬¯aÏŒž3îÇ>Ò†z}š+õš¼#ƒÈB7Ø?¤ØÞo•çž3Íäà•Žúri¨yõ‘y×¾k’­ŽtTê9AuæˆN’¿mAÐUÔ«_¼Ê‘ã¸ïpæ·¿ƒUÐV¥ÑôÍqü· <âc¦ïR#ü·ù-|ÎÞ,š¹4¼¥J8ØÄ,’6vŒýD4^,š…À;õ€&⺣€éÕñõPS Þªfu¦M:VÕ@í|­FÀ¹V®¦RZS¬Šs¦µ=*g€!ÃM£ÈGÀ«ãnž._ÊÀ’>µ#UãÇ ²åÖ  þBóI4VÖø©õΣð\MÍìï›óì›ZdØ‹^ãídëLëcoÞ<ÔÔHM³9ò\Ø~Ymö›øÍUtÜKfŸ÷56úzØþà ÑS®d´‚¯p‹}4ˆFvÚöÔoPË`\eÞ`²F%‘Z?¨Ê5ÕXï¼vÐwÜI‹}‘ñ«Î ç»Ø/õfÓÆ¿àvûOÝÍñÑNþ/ÿø•öàg¹V~¼*‹ÜÕn ßI°¹r—¸Wî\]^Æ:©‡426;c¾Fâ~ŠbMÌp¡½˜‡!ëkÍþð«°žôÂóìô?¹Š¾®Ÿ…Ù_ͯðïŒÏÝã^öY¾9ðªØü¼¼ºÆj²[Ì—À«Ö°±z°1X?êo憚kâý'`œÃSeQ÷³HÓŽ{qCžL¤¿°Æ”´C##ML7©ï¼R~ò‘ð|dÏí¼!®Ï y ƒ˜­ Z 7µ¦Äý¿+±^«s¤ðû4"Ur\9!‰ˆ˜É|÷ÒĨªñ8yiæ´ÇÎüT{J3jÊñÚY0u:zͦÔëK"¯Jg,¹ñ­j\#° 9U]Þ³41·,½£R¬S¬÷ Ëó bÚïz2þ_Õ¢ªmU'¯+É{êùŸ£˜ÅïU9•ë—š@O4ÿ턼€õ8Z7©ºsmy¯fð®¾ÀxiÜìFöÇy,ð´f†b­”åyßéÞ¢±»îfˆÌ€•hüj€¹FþÆzÖç¹Ö,…•Ïg¼ñ ª”Éfbòpæm'ïz ÷iI=äR` ïÉyê_%›E¶¢mŸPk¿ŸÁ<· ™#ú­|~õ<ùÕWæ{Î$X—©dÕXƒ3C.؆Ažî„gÊ+øjžóKøkC`õª'£*}G±:µ/³ৱ.jqþ ÛeÒŸXi¾5™á<Æ…VJ;ÎíÞ]x5_¹GªÇ´ ?í‚ëþk.Q™¯?¼œIðWÓå>ܵ¾¹‹Á½ØŸnîY ?Ë¿ê`ɬþ¡¦(ò‰+ï^t‡p"IóµØ~ æÚØ&ð»â^obã©TGØÉVÖ#´ÄüLÅl}j®b‡­kùózj'‹ðnMQlm Ÿí.<™Æ_·EN‡CÀ¯TY!×]‚:ƽ`¶ËCn/^µ¿Zýйh¾¯"šûí‰ÀD°Ú¿ïsJÆŠæwg¤æk^ dî÷ÓúÁ<0æ™N¸ã~°:Ío OØ«7?\â~ w†W`d»ùîÿÂÍ4FL´‡ÿÚ¯ò÷›,àÕ4¿Âuö[àñÝê®^Ýï.Õv•ݧá.ìz±ÆªÍF’=Þ€ýfìAvnŽOg­Ó@ðÙuðø»«¶þf{øaX]ºIîc=Nž¿¿+ï«ú[€Wð´»Ü>×·öš)öUpÖY?Û6ÀÎs«ù5xÍvÀ]³©þ÷¾V`Ç_ƒ˜ÏØB\¿üöJö¯ÌbT»-¾!Õ;&“…¬5™vø•âØ,ÓÏwñMÈ`4¿FÎEÒk~!f(¦Õ ì­q¬®±5®Ôž{ÙÏ…2ìrZ>\Ùxý`YrŸLf $“'ĺB§Ó3SmŽ4ÆæU?*×õC­É8R:35SoO¡GVŽ1­Ä8ÏÊbnj 3ÝS©£“DÆñ_V”õ˵˜óY‚ê71=š(ûMd‘*®Ug¿‰’&ÖM± s௪2Ã,‚¿M‰çŠ:V ª"JLa¦,qöé$bãV0ަD´ææG“5©gK°"ÜCùØYìCM¨†Ø­f <…™2ÜT‚ß7üªƒ/q)ó%f›ðï–¹U ò<ðQß·3;1 ç>òûnâ¸,oš$]ÉjwÙÏä{9D­ã×L É Ù?¢Õ!s³¨rΛÀÎm7«kàãƒ#AmQe×~ò†í´e›`a=áC¦Ð_{ÝD€‡Ó0NEÀé•@ÑŽ§-æ`é§TWÿ×´rØ›D+J›ßLÇp ëÁ†KÛ ·¬Šþ ‹é ¨l®¯½µT«c ù£r«èÊŠžÔW”DZ¾Tgl*®Ý‹]¡rÓÞ¢¯›öyþ`rä;Wäžuûð©Æ’0-k ¿d¼l Tïý±'f©uÃWÁŠ «Ÿ''˜ÑÔ>Þ›ˆ{öÅÚoŒÚó|°#½oXͬcÿÁã¡æ‘Tr¿ºÀuçÌA0˜Ñ¾_ôTØÇî’ùÑ¯ÝØh_Gö™öµàBpÀjýà ó¢\'zÒ9¶:¸Ð÷? ÛÊ'WÃXlÇ¿{p(dlë`[OŒP^¸i}8;Soþà—î:°Õ/ülÿ®Ûïg¿‰QàWýòœ¬q7º.ÔC.ozÈ#îµðð8[¦åc¬­Œ¹{ì D[ö6íÇÓ×à47c\¶a–&â©Æ™má…0Uºag¹ËÿêÒ|üÁ~&Á×ð«ýN«1÷¸×|¶ïé§w¿‡?ø»[¼*‘û3xɶbM^/Ì“êõá»xÃYÔÑOÆ ¤?˜ÎýƸZgr=?Õ~©zR·Ìü"ý#ã¸Ï4íüx_Ìs¯Íß‘À¯´KsÓ{Læ—V{è„Ñì¦\¼Íž·%±—Ò*zy)Æ÷Ì‚uöÃûhd¾˜ADZò¾·àçòýè`ŸwaÔ'¾Íl”|)Áó¸á¦ƒ,1“8Vá'^%·r䦚éRÝn mÀÊM¢>CYÓÇüj~j¤¯úc×[L?z¾y[^”AÜk–Ù7%ßîµz3X­¯Ú¶¢ç¡ËËÌUú»ÙdÓ¥ŒUŽ÷£IêDcóäEÛ.è':óûpÕ\êK¨"S ßÂr:alš¯c•ÕǘísìÜК‹L9>h×H!#CU¥I8 ÐÍŒ––Rd‘ª°’ñù«ÁÍšaÍŽÇÛÀŠÕ®ÂM(¿ãÓÚƒ.M4" ˜>+øúƒýÉãg0~UÄøU[{DNbÞ°®#ï»Zî%÷°æ*H%ìõg­ê,\ãêÙl™tÇ:zO>vØ|b#f£Puõ¯¾Ä¿G2¦òùU} öd< qï%øü“˜³BÆ:7D^e¾h}=i¿j7Í yÊÝå{_€_½ýÊUˆV÷Õä~sؾð€Õ¼úåæ˜,£¶ç(fÌÇõ¯À¾5÷*¦zùÝÚ£’õƒ›™i®ù k(g:‡›àÞNÂÈvòGÝÿüïnVÚ¿¾#üÁÇü=¦¶ÜágøÕ®ß,ϯÆAt_cV»Ènöw^ K?–7d4Þ­:0£H­åݾ£¨´UŸ¹œ›0¯€áÕñõÎðǰ1ðªƒÙìÿrå|+?6TÁ×ó›|I¯ýqö»7ÁººyíŒý^pÊEü|Û{“¹œ°-Y¿¢™©RŸ=|iÖ¸0¬k Vô'Øu+3Þ®ñø®ô}šó¶Ä%Ò,g{EÆ›X?úž~¸/d ä“–gÒëjdÚÉ&vT?nÞ&v’¯*_K¡RÞ5¶”Mý…òÌ%e¥§ÇãMZ\™z2±\÷rqQý¸úx·ŠÌi×é¦T¢Šåb¥Ó.Õ'*ÇhEÏÚ’É4Ⱥ’ãêziô+WéÇ'á)Ä–ŠÔZO§rEžþ•fü+k:ŸWÑèu>ób>c¬$ó¯²YoèÈtbZ}ž8¦1»4b©*©è®Ëë_m:Ò,¥ùpRE:Ó'Õ~©‰rŠþì9ÎQuÆÛW˜…rÀ|ÌÓ€IæÓÞÎû’WËî¸o8× ;d'Q{<ÏJðŽtÜz`ÖÏ‚hlj콘’Ž×sQæaïÖXßAûœ”··±ÿàŸ@‹öA6ñ'´_à‰o"w*þò¡I=äïµ¶%˜-ºLôÒ¸Ö=ÚÁEþÁ˜vÂûéIãhìÇ™xÎ-àˆOa¯.äÊn+_±r¼„TskíjÑ<啸êâp6;q5áA9,YøÔOXŸ3L'ÑÊÖÁxûødì¦3Fh °ZÕjÒd¶é%Ÿ›ÿ‘õ¨2p]Ø´ªh'ôJÔ?yÛt³ïÂ×Ö^~õ#¸îU§0ÚI]_ì±zÎ7ÐÛ92*€YùãªÚ˪`“‡ä ÎØNÜám<÷tUìÁÛîb佉$7Áõ<áFp²b°…`c¹…ý²?N®ûÛÕs#ÜYó¬<ï¶ùÛ¢ÂàWË£é¾y4ƒzȳì³Á¹àí;\oÉÕðukÃJën^ûç B-ü³O jÉmñßbž>‹]±7VrQxëgÀÚ»ù#àW—ÝøÌŸûyþþ`Ž,ò³àò[å¤Ü¼ê¼ú lº­lrgÂXYófòžô£w;#9=®XqKýÁ†Ôj¸3Ü–ç…Sà~ÖÆŠnkÖOUòmàv1eÁ¨nô%|üíýîC_ÛõšsûuðÌæf«™BÌ¥àyÛšýàúáê_ãúÚñólaU S°žÆb÷˜AÞ¡õƒš9£ë¹±Ñhبxlös)ŠŒ VL5-ü8ßšYÛM‰°T8•Ñ¢XþU%ª¨Tg-C%þ<x?›yïZ;3l+‹Z©<ÁK"ÏJ‹kŽ&ðl®23!x¦V‘¨T–q Ô“ˆñ+õ[+1b¥ŸÍdäZ£D­X˜H­GÀÒÌ·¨@ï,èTäůZ†>n3;3ËW¼Ê¡"rëq4âë’U’õƒEŒÃGyÞ˜Îüv­Á©Ïl³¾a’‰õôô SM¬¢°&vå¹àëÊ1³‹¹útmáyüŽñRNxFôWxçê_C¸kJ³4î+‚«‡=ˆ0 Ì\½Àäën#kìo†Ê)ÙÍ÷ík™Ž{T`&ÔJ Å,ë1«k }Ã%ÆÚe$÷¦'`ÉÓíz«_Z†Év û\”²ùÌ<#ÊÍÆËv—É´Ê?7¯Ú$ÛHtËö;L4>©:HzžWkº½‰J±hÅ…ªul¿zãžmöâ:Éæž´“§Ã/ìFi.±ÕÜ-ÉáRXûl`àC`m;%£ý1°w Y!pC½Ë)XAªñÓÃ\­eÞ{E¹^ìëf53)wcŒ´+·fÐkže.•ŠÏ™zöq9‹eFF>r5ÝQøƒýÁ&ÛøZþ´,OrJsôÄ|žaÎézÜU;¨¯Â舻.V|kþÀSŒÁïç›cFs(”_ÝŠOUSÅ Ìr;°ž%x¿|¬»E‘·ÂÁnOØ?Éuߺžn°;f>“GÝ"_;úrØÔî•}ÑÀ'Ek_í7KìcAÉÈ.Ûkâ𫘣<`¢"´ÖúNÂHŽfœ»ÞLõUÁ·ÜVãíG±šÆâÎLq¸i]x%¼£ÖþQw¾Ùu&üj¶—èÿ„©#+aÉ‹]¿]ŽÊf7ÚõÆç¾ÇÎÓYV»Â}x·TÕˆ‘càáª&v-æc,p³8ð ÌÓXêÚt1ëp­E”fKx6T=™žf56íòÌímr}M›/ãµ_öNwÞçûA~(žùtð*óEµ§áróQ°Ó6çé˜*=¾Ž÷,Ä(>‰ï4RÐëmþ9€u ¹˜50ò­ðse'Åxûþx"õMVÁ3(ŒL!"L3#|ßœ6u·) ó1"iÌç,ƪɢíh¼½ý&ÍgŸB¬« œ\ìŒå‰¦2Ë2Q–4r¥dV"ÆjpJ÷T+P OžÂȒƸ´KS%>gâ],w+ƒ1Ï$fÄ¢ñ‰ôÉÊ2g"¦]£ñššqtL4±>©%˜Ù©½ËÒ“ËGÎ`”j2Ò•À|Šº¸»ò¢ªD€ê3¨nƒâ[Ï¿J >CÈöUx©c² óýÏ$31ÛÚ1  cP/˜*ÒœìN³ö~‰Øõ~ßû¡úÚ÷˜å ìêÊè®7×Ë ø\ÌW].a·Qdl–ÉbYÏÑìäX‚«iÖHK°ì{1ê;? Þ«v£^ì*“aWJÆÓž±¹6ÙÞm56ø+øÕÛGôý+ØËæó1u£RγÓñûþ`§@µ#’à…^°óƒÑÔ½ìâFù £Ô +ñ[ÓDf` UÅŠÞn–TéöN\±»œÁ˜ãå×ðˆ½YÔ«ØŽwï%ûöx¹h;Ú{“õWbO­*5YC? 8±cÚÿ¼ L¿“™¡y¸ÏPùìgV×ðŒü´~7³Wƒxõðj¿<…¿ÿˆ¼ã2Ü>wHcRRxuÑŽÖN{n”-IA?üÕy\¡9ð°/þ[{ƒ‘ì¬ ¾úPk(¾_”¸ ÝÊŒ^5f_¨Åì)½O¦ŠNYæÆÈ±p¤[ÖSÕK÷›ë~õº9-GÝ%pª·Â|»]6EKú±Ñjìï¼Îž Îm_U¸6¯Ê@Ö«žË¼Më8,VýÁÚx«ìçÕ¶~'Ïîž1¯i‡ †‹ÝåpC8øžïw;ý%ð«Dù õžÆß^¿Æ_á§»þ~“¼%w¸Å®øÕ%ì8Åì“ÁôKÃ:Ik —òÈ>æZin×sÜz€ÏL[‰Q­ñ×Ï™1ÄëG¨“¹”O4Ï| dßñM[ÁV³÷Z垃¿•òX?ø«ü ɶÚ¶¢ìþ0…Vîçfwp> ú’óä ;7.ª;º¶q#|ÒD\½ød\iŒ¯ow<Š9(¤r__p!í”!õÝ~ð«¦X+p‡Ñá|²ðl§L–#¢çÕ—±f¦'zn> C³5[¡»ñrü¦XNeÙdÊÊ÷à«0ÎÇ`WªãÖ€µÍM0S-1?o›fö„¼¯&š¦‘K®ÈrÏë³I'ßП´3±N'¹¯¥–ô :âoß„¥ô¶wa=ÎZìíU×N€Ç;ˆUl4ûbk/åvǺi‚½ùfv=f m|Gä9àÕ}aMxW.ôÝ]?Üw—¼~U})lh×Ë™èEW9ZÛÈýæ¸=”C3²”©„Œ·kdÍQ_4…¹ ŽÙ£UYË£'…Ô£oרÚsrªÖæ¬I“žäu·ÂÞšÉ/|†Sz¾Vd¿Él‡ßWŽf”Ñ.§[øÔàC“eŒõMrÔ³«‰Çwj·)Y×˺\a4£mG1`eš©q§ùGn-h\k›ý\ªÙÔgxLå9ÛXôTó_ùý•(²;¹+(’¬ÇùÑÌ ö­ØçZùÙN zƒ=†Ýu´|gÙëG¼Ëx¬ƒlÌÜÝXÏDZ櫑_u’“¬b()¥Ý^{‹4£ªü³fZ¨ëRýÁ^ðP—*˜Íϱj'Ãw)Àˆ ÔlYXŠú€}pý’²ŽßL™ð1X§ÆšVSO¦>•5¬QoÍ"~×´°Ï'U›¥mä=—GaM¥¦o¼R¯ëi›É´@íý"îÑOÛÛ¨Zà 懶Ãçƒ7^ÆLâùཬKÑzœ›p§úÌ{]†Ïb' Õ!_9Žs÷‡µ`EÙî;×ÛwgÍ×ò¦{œêù°üê¡èo®õ8;Ìû\à#;˜ß~ÒÜ+ãe2Þdc33p§§TP×øÕ=Àèj™6øª p]ûy]‰±/g††Ûܯáòp*Æ£§È§¾hº\ö“|$ú¶?bªËÝ~®¿Õ ö›å ¹ßsC€W?I&ö™Ýî#ð«E˜¥1¦½œ×zç¹xÇñXÉÚ9öVüFõEµWÚgÖB*‘©u›Å»êä¯Ò‰EåðF h±¥ˆ¥ˆVÊþ2Ù)º®qŸ q/Ô1g5ÖÃ"çÿ|À Ʋ…cý3óI¯T3žËšïÔS6®×—E¿/Æ”B¥På\ž•C5ˆÃÊÀ6bDwó=ËcÖuiEg¬þ éEövì—õáO)ξŠÙ_jrYk¼Î”ú’ÀóÁÉð§`•êÛÕ7+eãW¥aÇ×Hž]ɯ{aÌ[ÊZV=68ebùW°ÆZÁ_Ñøüæ}9(}Õ{Â[P1ù;°ŸÃ¶¹¨O.ö]<ÓYÖæ”–AÁ_¦ˆþàfF°襸7Y>¶Ãƒ¡ÔjXŒUÕ„uŽm€Xÿ˜Z2ë 2fe‹ÙoTƺ~Ü4¤n^C``Š{Àn’FøÍæSsm8 j²¹N,þ·]T‡#U>$KìµÞc,@ë;Ç2D«Šëšš2ÓÔNºÔĪ¿v4w¨ŠÝ¾ V”vy;a:ØóðC+«’Uä]—íþçžÔÎ}RÕ×óïÙIÚãÕͰ…23è­çV°D=¡í†¥1®8^k 1?£ðöQ™`TÁnVóõøImXøRö›hŒ½e%æaü[{çš"/…ÜAö¬æœï¼zż$º“>þ`‘½Ož‰z_…_*{Ì2ûZP*rüªp` ›Rä<æ·_gžgŽZªAlÎçÄuz´^é9jo¶Àzlnr„káa¯5}üqwÌ_t MyàÕÿ¯Ð5…²Ö_ëoqƒÀ¯^“õn2<ÃûÝo`Öíe¯û4Ü |T‹m$çÙ£G³Ùcüû±vq5FøZ£nÇcVc^;U¯2÷„—Ã"Q}í—ZÆ7öÓ´ŸŠ¯éo¡>CKsÀ½ïëø~^•ž¿ ^wÆÏ² ac+Í·Á)Û‚Ù’ñÎ_ñ|°V°æ»tÆ{ªÑ +EOʱ¦G¼_j±"+lFUŸÖcGG&3’=Ûô26eæÔNãÃ_Ù^{¼÷ÅNŸI‹¯ ,ÉœO­ºlî§ÿ•Æj¤Ýq¯.™Yç)ôübÙî)ŒŽW§Æ]±"“8WŽ\,•WU׺æ^?)ÞI+“˜PŽê·iŒ„•å_Åx[YªjU ê¨ÝÄsJc: )ô+þ_×ùÔ8M'ΔÀªë?O,IïN•¢<[LaöÂüª*ÏCzˆ ôô|yшY›ßÊ€¡§äZ³Óžú1këXmü}®ó°ˆÛ^I<ïØ$E˜?0×DÌ bEK³NžfŸÁÒÀ…Yð¯ã9ëU°¡Øñ˰~ðQó!~«ç’›À¶šcÅ+¶¯0ïɃ҃ø¿Û^¿ÚÂü«÷Á¯ž·ÝE¹oh?fÏNM+#ƒÏÀQ”ƒýj&#‚¦ñ8ü›vd<_t9l²†\æù]ó§©<œ¨gU@ÇàjÇË{Ì“À±ó@”Ú¸f–{Èî”ÌÚsÚL 'àù¦™I’`KÛ{DOqå ¬Î@´sæ ŒÉ8ìúÚÏ«pCû:«Nru™n*ȯà©ì¶×®ìSÙÏ«ëå%ÓÕ~)ïb¦Fš–‘WÇÜ#˜…bÉñµý9;´ƒaserиð 3(¶ÇW‹U5 Vs;>õ fL³j1u&î”oZÈõxcÕñZŠÏ¶Ç;®Àתpz[ä©pšÛVÇ®Ÿãþr­€Wï›çåq·Íà/„-ðþwD¿rµ¢yÀ«ÃæûfðC°Ûö¥nç³rµ\ ž¬˜¹j˜Û'ñU0Qãs»`ƒZïÜ~{{ŒÜ+Ø›¦à»ª¦Ux‡û9\Ì|ÑáþwÔí®‡?xÙñ&ºÔÇLÝ ¼ZéÚøurF¶¹ið ·¹¿àÙ·•îóppHÕ ZÊÌcóÛ[p×(&‚÷À>¢uŒ£À3ï2ª…?†Yb÷…ÿ„¹¢¸÷ùK®²oâ烥ùº~…ÿÛõÀÓî^Õò=üx<çGÁŒÊ5V»sÜn>^µ¤¢fŸþ`ôÄ¥vçbØF|]ÏÐ?ŸCMsˆ{â“ÊPšã9:ã”ì6¿Ë¨È8FÁgšð<;²ßÄ!“þÀ8¼êîj?¯LâPŒæD|]йŸý°Vcù—å°[ ?˜ÌvnÜ/Le<‰qì\*q¥Tˆ«Ve0'ªuÚÕ.*Pÿª"1§2{±–'Æ–ãÉur<~•ÏèÊ *V! +Í3³+mb]SXSÚ5)Œ:U6±^Ð%©‡Üu:ÉäN5™÷•@ÌI!êF™·Pãa™ÛPÂÄ:Ü—bæi•8ÓªÙ˜ƒõ¥<­O› ‰‡ÍׯÃ/Ó{­ÀH·–w¸œÅg–ƒ9(V¨¾èHùŒ>é$s³ŒÏ¡oÙÀl³²”oÚËL:öæ] „]É]ü|XñϘ{Å™ŒÂ\Ã3”5æsùðJ=ç§íÒÄÞc57ÿ ÐÿlgÑ9ìû¸÷NÆ©þ1ÅÁW¦6kv.™+‚ÞA±èõÇÃ{ìôeêEªt&%$‰}->'ë]XÕ4v` <ƒŸU„…?|9ÃŒ@/UÝq»Q´ÍRx`™°áf®dÙ:v¯h¦i9yœå¬ÜndWÁÖ5¼+F¨„,ÇÈ1UäJÜë³—àë1nz¶§§5qOõGUO¦ýXÞÇjeúF¾u•Üsn—ê½K _Õa¯T¥P× üêê`0ìàCíø„çîùo˽Š=jôÿ[ó“Fq±*æ3ß„¯Àßd泀烳‰W›XŸk6GN„ Ý¡ªÑUuÿ¸‘ð».˜—å)7Ì—Š^â=—E»ÚÑj¾¾ì3ûìWÁ¿ÁaÛ WYm— ¢*çWàZW2«A{1¢’©ê!oǧê˜-Áò1:/˜79ÇMûp½û1¼ ÞÏíàWÇ€W—Üt“Íxûþzÿ$Xî ³_çºú=rR6¸kðÕ~÷3v‰6r¯»Ãû¥a fCÈcç2´5»<®Ã¸\Í|Ρ@èÍðŒ;cÕåa‡ØF\-Qµ†‡àƒVôýµZã‡]a©¿ìZáowº³à´c½öÿ:|äÄ/´W_c¾^µ­ð•*¼ŒÁHkïÊL¼q>P·ó¼¯Â=ÞgþU9Ìl>îÚƒv^ŸçÓ¡^mþ‘9‘9<ÉŸbFù¾=sÊ÷šŸ"E’GU7©•Àü«¼bãÖ}ÍžxÖ¹ößA¯$»:g™˜²hó6ËÒãªÊŒ†,ëƒS%^=X’ýRc]ÀTͪ€¸‘ÈS½LÖúÅr ðܱ°t¢QIÚu >“NN•ÄŸÕ'ïJ3¥ãù£%؃>›‰ÊŠ²ÉžÊCêbvb5‰ŽÙa5É´JijRcù¢‰ìð˜ŠO”dL*‘ñ«’T˜ˆõV.tvØÝqx5¬¯=?×Éùß)Ÿ¼ÙÁêx“8x3À䋾ó2³VZʧäNc°/Œ¦¦q)Øìò“Ìc~×xf}íÕDýE@‰v²q»¾à-—a£º'ì lCP{Jþ"ÏÂ_Sox›-k íf«;ÇàÞQÛFªàçÊ9xrûDÿögS'øx¥û«mE+&ÉC¶EÐQtǹÖTM¬è)x7¬*'Úß¹VèFsØ<†•U€ùøò.O‰iì^°[Á¯´¿Ü§¦x#vUÌI°yðÓÕûN¯BTa>â áFŒŸFŸß6Ið…ë±Ð8#ò/Pb(î0—=p‡êÿq `Ç㦣ýC>Ä<ÁçŒüâ*»7Üq­ù—º¾’?cç€ sCl™PñJc°[ðÿNøê&úƒÅð­ÆÑÿf=NSÜi ÞXõEËöÄ,Vj'ÑÇá©5¦ׯÈ3áµîXXŒ¤–ó~˜›èÞ¿zÊõ‘èé°:xäêè1×’ý&v™ì‡ÁÁøƒÍ±^’a¢Õ‚£¨F<…zxÇ™=ªý諃­n§¿Ý6ÖÏø4F%¦ÏÐ%Üæþ WaXgû'Üaøf7¯.û™þ ¿ü*O–€ñÜìzû;å-¹Ë]ï¯~Ŭö’]î›p7øœâU‘¼Éx»®ÚÖ¸¿ö ÒUÔÚÌbÑGÕzœÖ<—Õþ8À+ÍÑzØÿè2}[¿+5ÅWó«á¶Tµwèu­×*ŸÏ‚sî7·ÌÖ*¯6o¯*ãëÎxËËìw_™úízòQ@~ÕÜdOk&T.ûâv‹ë ÂSM%†¬3ßÊÜȲ˜kÌàUKÖµ4ßE>‹Ìc~S-0ƒÅq…©\<«ªŒ%R ¡ö¶JÄ+Õ…<ÆÓ¼$¢Y¬Ž/™¾hF¼¾¯&u·ËÓîôç±.4¥Ù'þaiª/W'"%‘U!’*z4 Þ‹ÚTEzŽ¥mEåSXјÁÚ˜dVÔd0ã"Ö¹2óX“+ÏŒ÷ŽV?QWF.ÕFˆ¦åã7È¿R‰LeâQ4Õ“I':EÉ»Ê0+Ö¥§5|¢y`8éÄÒFuaõÌ¢˜A"ø¶Æë–™‡PoÕõzûä.“K~µÆl‘~ò-#ý#LŽ 6³é¹¶5×Ë2‡±¬1fºÚ™|íP×xUš÷}Ä2‚¹ ;‹½‘˜ºÊ|-Ë0ŽÑ›h›ÙýV9ðÇf¤¼e‹7ûCÞÖ>QdÿÁdMu›J°P‰zÔåiÛ:èÀžõwéŽ,F4{¸ ÞàO¬¡™˜Xqû0󚡼˜œ,'Y±^JrÜÀ¥Ê<=}Í´õļ<Û¥¡}AT=¶üÁÕðŽ«†â½†c§Í4íÀÎÎ5JÔx5ÏŠæ«+bh¿ Õ­Ae™\¬ºB0ö/¹€Ÿ^}ëJ1¿½Ã8“ˆw&1°È,ÂZšÅ‘ëoI}{#£r£°Ó5‚?¨§š ÁÔ’‰W‰àÕ[±ân⸬=Mc‡lE[l·YÍJûÈŒ’3¶‹èøü _l›ùй ¿›RÀ«,«»Ç/¦EPx¥g‚Sä>Û4èÊüÒÛá7U^¥`MµSûó=ó£êL‡ÍsÔ⾘œ"§˜{[Z*»§íQMÝ…øt[vŸ‰k?™yÀ¢·@¯Ñ/×n†ÚOO€ûâg¥D3¾5&•ùÑ$ÈzæUþ×oBõ§š!Çûxõñ*xÕ:¨´f¾è4yÄàk•ûà%¤HI)Ká‚y»ó0fŸldG¯æXÛwáŠå-ž]’ê^µ·Kc|úV­˜ Gm¯~’6vhßùùVy+SÕBF¯j`}õÁõ 8¤Æí0_šJ²‰ú Z…Y›z}5áA5`ˆBsÊÙ/¿•aq##Ÿºˆ{Æ= §´’á+øï­zxÜ0ÛB62_ô ¬·1˜³¾F»{ÝJ/Kû¥7—p¯ T2ÕÜ…Éà ÁÒbçƒZÕ|#PðYXp>¹ÿ¦È‹áPw(,‚å`±4^½ð 7÷~6´»eCô)—Íðu€Wì™à¯àe«õw›ÌˆÝIùUCÜqþ½ÀœàwͨVs7û·a­Ç9_Fµ²*šžáZ÷{¸!œB}†çÝAÿ»Î”•|âÕVpÂ;üT?Þuôwɇ²ÚM‡g¸Ãý(f°ìsŸ„Ú°’F"ñÛÅl¼k+úƒš“°ø}5,C;MÏÁslÇÏ´*z¦¹;LršÝÞ쀚æøiŠ)>Õ/#¿ji¹wo†‘Õ~^—ઢÝmæ›àuÛã–‹«3ß‘¿å€ã«´ò«ܳlc2õ ôœ¦5U×aKVŒŒå~½Ñ$Ø•‘IôºæšaxãV¬e>l^޼™Âs=0pÌYU²­ëÆ pÍCè…1-O?1;ÃÖÞİ"–K™ÉïK›Òñ¼¦LƦÊ0ÞSÅKaN}æ±§‘_0'Aó‹rÿïSI¬+¬mbzS©ümL-=‰šÉ¥ÉŒ”wå“‘¤ñ“¥‰°%yÚÍx{”Õ;Ä«’Ô‰«·§³¢¤<=¾ ÌîHcýà]¦cõƒ%è/Fãx•ïU¿â~Œõ“¼c*£•ãñ«I£>CI¬¬gMCزâìë`¾7‚m)o[kÖË\‰PS}8¬´ŸÌ3Ćf¾<#ãˆuÍP)mñµÛ}|%Ùi²à/±Ï vãîÀÝ6™ä8Oßå9›lëÛÝôõ>î}g[‰î'¿Ã¾†W¨¾Þ%LªU¦ùµiTFé¾6F¶Ûºqmäµxæ <§æ¥kÞþ»@v+Ü=¡vuèk†H#Û8–‚Yøpª¶›…'Ÿˆ59Æh—K=:mþ†_­§dQ 0W±Bq™MÕ}=ˈOêš.€W×¾'Ÿà§ªßþüÁgÜ£<¬‰ÿc{%˜Ó WÎVA/<ñY¬á®˜§!ðbë››ÕžÛüÌ| ÜCeéåºãn…²k¯1íjþû†Q$ÕÚý;#G€W‡õ¨ÏpɵwSÝ«æ˜<åZøg£§ÃZàWk¢{]„õƒ‡ÍKöÅààUÛ#qÈ< 3À½5ò_ºï:ÇbüêV«§«ÍÁ)¼¹úOqµÏ™^‡Úô³0ãŠWÓÍ ó ûJ”¥ÿÝ’Ú•)x¦!É´çeX§«#h “Wí}Kž‡=lÎ_Íd<»¶é(7bì4NžôMf¡Ø¤g‘1%Ñ,<÷fæ3$3Ž“AÏ$ÙVÉñúÁ¬8&ÄúVŽw~V.ŸQ)­ÛËæ“V".U¡öC:ϼʰól}Òÿò×cž3Èâu´J§€ø˜ÄO–1±Zé Œ6¤]²âúíe˜ÛÐ ŸÏ0±^;±NÊ‹*’‹•û?~¥ßÇ4db÷X~{&s7ô^€Ú“±šRõZÕËi¯(ãW‡±SŸã ã[˜™u¦º(ά7wËxù‡X;ÐD¤+p@sÚƒ‰”a<ì ¼úK¦GbôÁWR^¤úí‰2†~ðx]ªª¤×\mþ¿šÀ¸âc6ÑæÙ{¬>ëàɧl¡(þн¨gì›ó£qÀ«$«÷úÅ4 Ê™—5U³5‚v|Î-`åå_üå¬ÄÿÁ§ê‚5_kênsÖ׋ê ™zÀ ·GYs»äýnV…cñ¼=Léh[ØE+ßïºö •›#yB¸óßèuÚü‹¹®^}gªÊ“F;¯^ÇzçÌÕŠ•®Ú+…øt ûŒœÁuÆ™îÀ«TwÜVµ7©à“ýö íæ¼­!K­T;Í\ĵø¿öŹs×WŸ‡»_İÏQwZ‰ÿ+ë,Ëp—VxÆùÀ°Ö°¨;c­Ë|ÑnîÁ°‰Vý»Ï\7˽nŽÈI7ÊoŒž ›ÚûeGt¹û^i5Ùn>±Ïï‚etÂ;í–i2W¹‚9Xsñ S¼£©_ ÙGÛWyÌ´ØÇþZ¯a—˜|K^Ýî.†‹Ã9À«nþ˜{ˆzÈåå7ßÚ¿Ãzœl¹Åó3˜ß~F¹1®ãWi¦—ìq߇‡1ŽšýQW.b}Vg>CK¬J·çÁCîHýö&·ôÛaÖb¾7†ß…ÙÒYóÄý.É7òó0Š¥¨×÷‹Óã»ÝÛì?8×ÿ48í¿ÀÀV6˜?€Wm¨¥è÷£œéÀ«:Øe;Åûyµ¿K´P?®'ìHó–ãIÛ³o”êUfÚyàQšýt…éê»úôÙ5GÞ\Ef“‡·\×XÑ.ÕÃãq¥ ¸ÊÖ¸†LÞa+kcúí9Œ°Pi‰Œ*‘Ÿ©ÊòXnU3¡4&\™Š Ùñ¸¼v3ªN¿5“•Óã¹VšëõœL‹Nf”*nRˆ‘zïFÓËòKÓ<®Q“ŸŠòì¯<ñ­ k£u'KûŽ9Ì:M RÅMcÙš•Bí¾dæ7”äbâ[;C·†?4³šÂ û0ÉmÚÀêÀ¯ôš ÌS¦û5”½,‚÷Q“ñ«;€W3ågÆßúâóý1ŽÊF[™™²¾¤ú†ÍDùYFЇYÍ^)ž4e§«+yzH÷Z\5+K´çd 1}¾jd·³?ÎûàÉÚ.¢ü2´oÙ$Xõ™ÿ4¿Û/ñEñÏLÝ %h#Šÿ×âÓ9A¡èž²¾fŠ„¢y+Åx—S´¡ª\t ?ø|°O°úóÀ%O…‡í}¢Ú2ñ®7„ñÓØßslo»ZÊãSߘOð¬·c©BVê Œ·ݾ lÐZŠPFc/Ζ#¬Ñ¿>Kà•vWšÂÈæN¿mjØ»å5Z`¯È9—âvûñœ#%Ûçø·íD°ÒkÝ*›ÇþÎõpm¡5ëV¸ÖmxªV¬R}ÑÏTm Ÿ™‹\û€Õ5À¯Z²ûÔ­˜Å.àW[¸^«™•‘“aW·!Ìdzfº]W7Ø¿zÔ%Eoˆ¾V·‡ä@ô{g¢uàn7ïÚÁ—Áۜݤ”k¤pé jMLÃW“˜ý›Gï³6ãíUöLÞ£»—ywžÃJ¤žá*÷e¸$œœlësO€ëÌQ…D_Óæò{Me¹Óö³]/¿I“Ý$7Òß ~UÉL’;Ýá^j1uäð«Ä¢–àXzNÚÈÝÙ¨§ª•š“èå·Ågµ+ì–ðr˜"€$+ý÷ÎùúÔëK÷uü*ÙµÁßîpçñ]}?oñNð¢»ìf¯²0Bß{lKªwÆ<½‰yT=ä5°AE£úÇúÛŽñkÃý±°"õð:‚wýÞSñö±x¾,¹¿Õn-s1—}±bjÃÂkàZï|Ò¤Ù7åÌýøƒ¹À«°¿6Rþà+v28Àgl#¹'‰§?y×Îä=™á¾„YMEÀÍÙð˜?ÓLÂw×ÌÁ§ à3­ã)dsØÖ2\õEØ”F¢k˜‘WÂ1n;üÁy¦ŒûÚMt£ÜSæ19çRýîèûaÝ!F¯u)Ѫ¾ªìƒ?øzp&8dµúç|n¸cMöåVý–Bì8O¯Ts¢.FdÆFk~ ± hÝ+ØçT¢‚éÞç~ W†“ñì¨Ïð¹SõWíÏþÎ{M¾¬¿šæùÍòЬuÓ]gÿ€û«¬•ìt€_-ÆLöƒÇ|xU‡]RT“º3ý×âÿ³xNÙ?ß°¥†g¹ÞlÿµãSs§ÿoÙÎÇ¥€?®òηüïug}u_쵊ú|ð<û;wÂ6šƒã¶OþÃ÷¿ˆ,„ǯ¥Î«ö›ÈÃL剿Æ:cÞ!4vU›Q? ž…½*rÏØf𦾳oN»Øm>Œü ~U†þ ÖãT¤-Ô4Úº*#ËÕ¨ë[‰Œ§:y•»ÓãÇÉDŠ˜:h2í:‡6^žñ™,fÄtֳȜ2ù É£ªc³ù阊¨æ‘V«2ü§ë+‘MžòÌ|OÄJJ'wJ¤¯V†™ìׂÏ+;Êf¾V ^óPϯHat?3~/µè”¸?X ֑ʯˆZQꎖà{&0¾Žy{Ïý¼æRDyQ'ó¼¾>D¹åXu åMŽÊ°xô¹î6;dld¬¾ ðê€Ô±»¬þü7ÓZ¶Ú+x&hìy¬ cé5Ú÷€W:ÒWÑ )Ï'É“àW=EÑ ,ê[°9Íki^¢´ÇjRp“yHT„yÓºÜ\`²žÆ7”oÃsv—è.½O<9œ‡µ?Ä\!ííü\;À|iÎÁ&÷3oa,bŒêH‘ûœƒ¿0Ÿñ«’2_§ÉƒX³ùøÙ5XÓâzÈooë\€?øŠœÆªazD>pIî°S=Ò.’ã3ýi{•o®„Ý4—û‚>ø›WY£¸^3JñÜ7ÃBZcUoÀ›}÷Rýöšð—ÖP—©¦i ~Õû¿j™«2òC@¶|Vomˆ<Ns{Ã<ðÚÊî[7Ó q/›—ä.ŒvŒ¾Ö³÷Èöè«®b´ëqŽÚ“ÁÛÁ1«Q¢›ÍS2Aºá:ª sÞKcÛGÅua›ÚWqûZh¿‰{ðÖ¾A…õJ¦Wxû=œNÃU:û£<¼˜þ›ê¿õoúC&GÖûn~Žèï’òÁ-p­ü!÷T6íåv÷yx#©z}µ©ëX83‹yJݨ¤¾œiÞ±6­šª»™O¡ý06…?‡ Áú»›»ý¯.ÝwòS16™>Ï/^5Õ˜ûþ`‘¡ç¶Á)÷›»Þ6ÂÌ,3ßGm êõ©õ§ì¥QÕ<Àª &TþÔ7ÇÔ /VŸZ¥ˆWƒ™õ©¾Ør±·D&‘SÍ5ýá¶d,è^ó{$1œÂ¼ÈZ¦…ldT[5zaL³ML‰x4Þ§2YN6ìl uñÊ2Û3¦àï7ëlZ…]%2LLƒ%¦[¥¶Ë¿Ê&eñµ}¶lÖ)–£7ËoO! ÅúÉ'“%•a^|,‡*•9UÉdWex—4ztš¥šCNe=@:Ï%˜ûÚ }/ÏÎ1,õ”V| ™Áú_çDF·bˆe R)Fµ`­22gµ"F¡/ó3¢`Y—MYéÁ8Û-Xçùr†ñ«w±:Wà;åpwšÃ²M¾#*4‚½k&¯S`ÆËQjX•ÅlÍ’ß±Ë+ÓªJj²‰18íLõ V–òÌ#Xím€Wúæ›Íey |LsÛŽØ#Rd7Z~‹}ç Û¾^`Ï™ÿ™Ÿùõe#Á»ÆS_ôsSA±(Ö”½6+,•¸¯Í6¿ÃÏ(ÍøÒ+ø\?òœ–`sOÁm†‘}ï˜ì­ ¾\WÎ…çíí¢'x{aÃé@1füÁ)ö.©€¿ˆ€ÝÝ»®4ëqP\3ªz™³æc`€Öì••¾ÀÓ Ù žµ]1&sÍóÀ+ÍÕ'šÊ~Ê“`­ý1…x¯<à•ÖJ¶–ÀX ~sßI+âÂ5àHK`+˜ÏpØŸuóW?úFþŒßíwc¼oó#ý<×Óo“Gäwµëç7»o¿Zé¾ Â*ËÕsVx‹W` ‹€ªYÓÅtaüª›™Do{¤QU­xÞé©ùfkøW˜/¶¯YTù•bz9_×ßÂþ8-ÌV÷¾+ðc`]§ƒ×Ý/÷|*.] ±-X³¢§ÁgYOƒ]^3«4ª˜ÌÌÃJº’qëªñþ8Š3Í13ÚC=¦›M†]™L U°­oG»Øm.FÞ¿J "`[Ù@[VWí®*Œz§c¯#R>¥uÖUâQ®RñŽª™&¦M\†çj9qÍLWÔ¨@ËÔÌ«Bžó%1êž‘ªB;­ÂÞeèÕ¥±j –‰ë%Q:®2šÉh{j<—¾!c\ÉÌH61EÐŒx犬¢‰Õð”fý`1Æ¡ó—4êëXÏVŠy.®@£hR ˳'X”ÿ.落ly;ÆÓäŸXÓZϪWhiþ„Ô•,ïÕ0 žp"¼¸Å@–ú¢]‚î2ûå€üÊñeþÂJÇ“ŠB3Vþ'C8ÎÝÍt9\Gk,6[næ.Шad6ýêƒT^ON¹8ôŽL¦×üˆ}Rš¯’ÌϦ£²ƒÙWÚÚO`·³Jïºd?×RüÿÄ4 ~·í¨Û0L¶ƒ¢XºžèW¦ ðêZ¬ì—ÁCz–´ãÖ`—{•Qa{ oõ6w¸ær:| öªñðÍX?3C­¥ÑÌŒ?e¡]#ºRB¹kØ…9h ”h´_q=Œ]_¬æW.4‰¢]5*ÊVVÖ] Ä«õ—îukbÚa_…?øðJ÷Ïþ‘S®‚Ûå´U?©î«úWí4¬Ó)®¥Í”åÁ`\åE û`x=ÝYg»BuIð. `)ß'gàÓ é-Äê™J²ˆY”zn0÷{Û?Ï5ë"'ÃÑî¾°)ƽŠûλ±î5ð«]îþ2¬a7ÉWÀ«äh Ÿ+ëÍSö™àãà«}æƒWO·ÉÇS4Äu¯a>Ã~^^]o[ð] ‚?˜‰qìÝé$kº³ÌØàpàU!Öó5xï1 åÙ{ª.Ƹ-¼ˆç iã·¯D†3Æ|%Þ¾9XÚù.s6òAdí±ÖÛ æ_i=KwöèP /‡õ1šÕ7ªëÞ+¨*…™ Iä11E¾2äšU‡–¦|&‡9É&Ö»Y£ë™TÍçH*óµ*0û ‰~V#ælý5™dëðë–Ä| öªH41ýИr¼V&פ‡ëÊñFÏݹ€¾eLÙ+;žÁ^1îjŽhiz®IÄ®Ò<ü¯CN¹8¿Ò^Ö¯cÍ?ͳÎ*Xÿí`¥˜HسƼÂÆëÉYúh¯±knuaÿeó lCL|»L¤_;i90ع8»†|©ð,Oná¨BçXiú6;°s(¿*É3ß¿ä G ö·?ÁÿÒ°ã¶3'ð¹ô–Ú¥ô|Pëúï‡eÕ’w©!Y_^ OÒïë/ªž†³‰ÅWH–]dïg«ï÷kfÇkÏÉÉ¸Ú êõ5Ã5ß5båj÷Rà˜ŠWÛ©­·+ž2~“‹¯ÃÿúæS¨| ó4Ð Š¼íÊ»½nžo°Tñ¹þ˜ K¼ÊÛtYôÆ_½„; Á ôb½Ü²x>ÃÍX¿Ÿ“g=ÛRÝò¹¼S¾,ħT¿ý&f~?¿T}ªšìï<Ùí `ܳÝ{®¹ðyÜñyÍgØ&‡£;\åhð«µæ{<ø.Øj{ÀF—‚_ÍŸÎXœf®k t(yGmvs\«mM…À6X¯cÝLÇ“dšÞàWÃÛB*´f?úOÝbSC~òµüWþ&¿ÇÈf?ÈÏvÍýVàÕ7Á ñ[˜/:R¶ºßÂVàõÁß¼;ŸêÀÅxŠÎÔC^À~ƒuñóÞøÙÌp+ö<›eî ÿ ¥“æ1ùï\¢/^õ3©ð7øŸWíÌîY_¼k$ÆëBð2û;×¥?øEð¸í@kêŠÝé êkå`§kÜéB¿h6=ÕÕ–µpµQôË´¼u¿SWeìÌÈr é¦¥oíÛЂw˜ó‘“‘Ù¬Ö3’5¸ú5¹F»Qg’dâ-瓟(^ äj«Dî“ÏUH£Ö]¬úXãTZG‘Av’׿RÎP“(V™X”I0‡×Ï&J%úhÿåšÌ…(CDŒeÄòçËóŸ˜^C³¸’â¹æÉÄ ÀÕ6±~©•™–N«Å¬ìòüTj5Wb¾BÅxÆ{Iö£¯B¯4Œk3$Ä£Xš±U‰H§ÊïÚoäIÆŽÊ1´Á¬ë}{'éÇ܆U`á*2¾ƒ™× Z½sÖ÷ É­ojÊËXâmm³P¾·Ð8X/3Y2ì­Äðš$·‘QÖâü„Cu§7·ZÃ_ÒçÞ Þt<_ãcÛퟻ±êI_¿:`G2ô ù¨s™Zîߘçí7&É*¾}jZÇlUö¡.Û ÁpIgls¦ùÑ|§×,›WÁ€´ v2¼É³À)Õè¾»\¦|j´÷Muù>|În”"¬õk€t­Ã9X³C̉ÚëìqÑnN¾‡7¸«´0¢ÕáÔïêCé•XwõW€!‰²¿Í&OgDBõ¯fQ'ª)þý¼)°§à‡fãú“"\E÷˜»ë´»h§©g¬æ¬qù¶¼Üh—çÙO/ÖÏ«ýÁf°W¿™/ñ´Z+·33wÊ^ÝÄü&øÄŒñ Ìgе².r:œ~UoVÎ}íZ¸Ñî%ì?ûÜxß8z:l~uwôW…úW›Í£öÙà—`;üÁvX%ÏÊdÑ®~}`‹3yøÿ!âUfÓß'SŸ¨5˜V ò+=ëïµÙ'¼Ý}n 'Ââšú'ÝÃþ}w#Füw Å÷~½»Æ?ÃOwýmrB_õõûÝߨzÈ^w)Ü‘ÌÄëÉ9QµÖjÀ Õëë€ÔOR=ˆúx.Õt¿ƒx9Ï5xUÊyøƒ­ÌƒðxÔT­åðW¿»¦øú^÷ª¯í;PùãàMgý,Ûï¶ xuÂS³ öwõ$ßmÅï´«b1Öülüä=6­¨I}2=¿.flvs×±s"xj7Ûtö]}1ánó~äÍÈ\VåUÃ:_Í© ¸J<{¶‰õzèÍx»ò´ê`kYï—ÄøQžü¥ÄÕAËëjédTe4=ÊÆZH!“J$^ÅTýR™YžFÆVŠYõã'Š1}åÒŒª§³ãN£húÛÆT·JŠç¨Ær>+R1#…Ü)‹Yi&ÖWZO¯bùö©D²r|Ö4²µôx^h,â»býè=sÜ+Pׯ4¹Ð2¬µ‰Éå03mâçƒÝL²””äuËðûbà•âáŒà-&z}·›wd­4åjÃLiQ¥‚²¬)_É0âê_•³ãˆÇýɯ»j0¼Ùàê°¬$ÓÜa¾—32϶Ç&Øúö>«¾ê¬évõE?‘㦬U”ÿÜœ·_™«¹»_˜¢`-Ë¸Ö yüª›è9Èlp‹ÏÍ{øé|¬€Áç°ý`HáÝ´7üàUyy‹þ`‚÷ü¾|®´_Í€Pó1»™Y@ϹöÑ:†’ò¹ÙÉ çfXÁªìµs¯Ö˜|ÞÊZû/#à£VÂwC±c/Äj®Åž 9@—ÚÜqÙ¶°gqßLxS"_¸d÷ˆ;›*–T_ÁŸ°ca™ý\g[ ¼êµð¬~l½3ûH­Ä•ÔÒVãvk6|}¼í È`=¹Vv`ÇšExwõ…ïe%P5sKäh8Ãíë‚yUu?»W^“‡¿©y ëyXÊqÙe~†p%ß¿-góí½V+¼?Ôº2ÛE”ï~%—ÍÛ&烘Ïí9Sšì Ó*xÂVâóô“¶|ÐAôüt¶¹ÿõS»€_= ËêÇq{Ì`ñ:’Áî ä5¬ìðõʸýöfQ]Ûù@gÃøtGx¶íÕöð¹6|Ùaq[Øsç àѳ„k¡Ví%`S|>*ƒðL•d¥ê…beÏÄ}Tª¬;ŸÙÅ`¶ì99U3ØÌ|äJºcîg¬ö&’â+ù·ìbe®±Í“A+ú-ðËX+WëT}†f¸ß<ó °q ì©8ÆzØpw‘ÉrÓŠj×SŸáÖ|£K#Çá €y5W­ÜUð—·ÜJ¿-z.leï’ÁÑóî_°¼"9hŽÙƒÁaÛ6zÑ<"sŪ>¨µqÚsg¬yH³õñ~;065ñEŒð3ÇXÚ5>xµÖ}®§áú³Þù}w5ÖÓðÃ>òOûØ5Vû+ý5®­ßøÿxº 0+«®{ι÷=ç2Ét03 C Ý]3 ÝÝÒÝ]J—” ]J ˆ¿€¨Ø"H#Š €Šèg·þk¯÷~ßãâ̽ï{rµ÷Ù{m0¨GíxÛÅí¿ŠSh‡ýÞ“ze€•€fíɧ` Æ2û§,·Un*°6÷ÃÀ‚Ƙ±Z·{{qº-på»c£À¤Ö°>Niæ;7Fk¯Ê²ÎW¾º ¼²nŠ‘|»Õ×S°S°Û0§£¥æ÷@Ì¿Ä_MC_·à-‰ÔˆªB ?¾}(ÖÎpz¬¿Z ¼Œ¥ÚºF®>³÷¨ãÁëÔuOÌYÏî²èW'Þ&&²"ÐlêuJ}‰Ø-©d]ÉÌbI!žÄý|ÆSŠºEiô4¥ÐóO½”lÖ›ðUÙ3éo/NöT‚1Yiá̉xI G”'ÐÞ‹ãî̦ÇÝif}œ¶:’‘ìôY•ÆúJ"nd1Z=‘v–ÔúÉ Ç3Ë WH¢?>™Q 1ôú'S9†ö`ˆ:~!â[$‘³²Z}‹í”L>É’ϵÃ>ËÐèI[,ŒüJâ1.€}Ïb}ç8¬ýwôKºƒ–7vãèÊ<)©56@ ûë[©±° Ñc×+WN|‰å(‡ýÔ?²žµG'e·«¿õ!=˜}Ùmª˜jfvS•Õ«ä&ªoõOêð+_'ùs‰õè‹ÂjxÚdká¯=õaè¦S™+1 þžÒûüì.X¢Ð±Ø%UrÑó-@ij×j`‰ö„Y¬«`UÎÛz üjvcÝÚÌ7/ê$|æõ)øý&¬)Ù=Xó°n0žáö¢D¶Déî°QKÂ&ëŠy2u™šRß{"~›‡Oׂ][ÕÜ ^_5.ø©¶ÇíÏhgNr%ݳ£ÖËV2YzC@b„ÞÅïš«eäÁÕñΡxJCì„àW·`…µÂ>ƒ–Mä;“ÁíI!F@nÑ>7ªÊU´<øøÕq¯¼¨ìÚïl#;Õ¾¡Ãìäž ]õš›GW¯YJwõ~uÔ¼xx%ª[[ÔI=YOám§ÜÎeõá§•ø}c«`F—c|[IŸ@k¿„÷7Á ñ³¿z»Á¯Ã8f¸kv¼ª®ï¸æî®{ö`½Úql#·§Þ2;Ѷeþ`2Æä°ýÙ;È} ,Ô—¨‡,ùÎRå¯5c®– —xã}¦Ã|‚jy¯$0 xÕ„ö`´«A½¾ ÔJð+Q?ÜnO¸ò®…Ùù&pÖþi'©Û%ù8§M+ì¿\àU¬³Ê˜¹bX3US¢óO ®xK1úf*á§]¸§jâíå¨× [<Âl Žä>šª ]Cð+©µS½<~Û¹Bì–2šô_•`xÖÁCäIr—'š„©ô³§1Ê21|Kç׫¢ÿ<‡¸!H#Ü©w D$øùα¼+Ì {Çcè+ÂG3»·o}‰,ðãÛ³ˆ'¾',ŠõnŠí"Âuç=ZÃy/AÛ.…ÑTó¯Hk6"}ŸA›75ÊRÈÍ|•_Ÿ!Š0?ƒ0‚8KW ëu,ðÊ¿Çܢd±=;ª:“5åÅ~F5щWY¹*W w]©ÎèuêPõ‚ýØ{:Š6æxý…îÅ>µ×úQ¯¡ÝÚAª?êG8®¥Á<`šôgVz[¬.iÿ6p¥g€WrJì3ðg«‘QùyÀ`ãï?k£Ïᬽ OÔæS`—è~} ¼zÀøµ0ú¯‚>Zž3 à:ð%MÉmü›°å”ÍÂ>•¾ýã§ÀµrõGÑ<Ð!àÕ\] kPê(¼â-£Rú0ÝÝ,AëŠaäUW€­ª:Œýé¯dÿIÔMkuÜëaf5Gc >WÙz8U`Þ[kj+N¢Ÿ¸:Vú»àW_è3øY75=ø‰µö5{ ë±®ÎÂÉ–t/ÕÏF™d½: X÷6f¨ÏoÖ½šV%˜¬þbÆSJ€É­ÇhÊý`ºž§±.ër°®FàWÛ¨êRB-žôFÚƒ^-ô!Çþa Á¯ÞTÇõóv{=ôøÕZ=$tÔz¡rÔë{Ñœ œ ¼`Z¢'›Õ[z¢÷>ÞÕÏ¡GùŒÄ^ÉMÂf h9fdb-Õ«ê=¬²ÞX›ƒ¼µöo»7#Úüêc;gãW®ìÁ×`æ¯FºÀ«ú=àÕ èvûf²>h¿õžaæSgàÚUÝO/'KEÒVÌŒ‘zôc™ÇÛxÕï•:6Û½4¯ÅN{Þ}cÓ£ÑB±t?³¾óN{ÆUv­ÝôàNà’ý×Î6W,zȧ€W’ÇÜè{›ùƒ™Àm©MÛ »;Ú”ºH’ßZùƒ¹wê¡e¢-žšXÛ‡s—ORu]W¶Ð.õzðƒàDzdrU3½k#š>¨|©D‹.³¼€÷m1< 2r"žç½Ÿ÷œÎ\N'fý¯n©_9§=Åâë®D—D>G²Âü8?c'˜–JI*16;ׯ'áçú¦ñŒ·ðmâô›Ç£’éé(J½´°¿M¼[¥©ŒǨ‡V­/Ž›÷k—YbTãmEŸ!š^8߃U„ʧьÍ(P‡1ʇhõf`5KÆJõÛãtØ3bK.Á.©©o³mçÁ¾¨zÚÏŽ>¨ßÑýhõƾ쀕)UIÖïR;+ÈÐ_ßÒ}x·ØUò`ëIi}õ§¾xã¶á7j)qìqõƒ~¶†pÝmF›2f‹þùjª×šAZFñ{}'v¤ÌüR]7§TФ1^´)øUýí=ôs&)ÐzÈ÷ƒ]|d(ªä¶ìmX„m0ã5ñÎ'ÕQüSûê Xy#}ŠçL)ý§÷¦Y©+a6§c—¬÷ƪë no˜çÐßšê'´`pAXÒPê?D­ŽŒÐO1ñ·;ØÁ×ÐK©d·k[Ö»ø8G²Jä¼£J›ÏW%E“+ø™M¶ÏÛƒxJ+؃;Åþ©ãõö@!Þ{øÔ«UbjS‡¡ þ¶ÿý á%Q³pÍC‹ªã ™«$ÓDlDQ#8‡³¡*ýÁK‚§¼±v›W™öà¶µi߃=øŒáV†ÎzUÌz=;ô¤ „ʸ²z·:hޜƮ¯Ùbð«Ñ8Ë*à‰•ÐûYÌ-Þ d·*kI.f½‰:WÑ8ÅuÓ ;¨··Ñþá=îAK Ýóö˜» ¼JÕ?¸nîž{ÏíRyz¥ë¼jÏzôËíýàW{í÷8©:é§ìŸÞKà4%1ƒ¥õGÀ«Ê`Ã1&cñ“æxûüWâE+c”&©uêoê*ã¬xÒKµF7F«öÁ,æêGµQÑå5î+~¹]öœ«àZ9™/ÂJ^d$ÃîaõCàU0KÑ •zôw˜w”œ‘{ÉfØõ TœÜ‚–e1Z o`d¿U£Gq*m¨uX³«Á¯Ä–zƒÉÐg²S=<;Qv{•¯×â)¢ÓR ýi‹¾ÆÐCÝ5R=DŸa>}ÓñäS–’ÃQæEɯ¢È–*P4†‘ %”_Ñ=—Qæ%ÉW„uUç·ãÈÆŠ…Ÿ’ˆV—âÝ"«}òö/…V›ÿ&ß"ŒaîcQÚq‘ü¯U1ì¿ Ñ3Ï/÷ƒ Y_”õåÓx[AìË¢ß,D}†lbn±£.¬.*ˆ•J]‰wªƒ}6F ÷t5!#y¯¯©Ï…qz¨í’{žéØÙâ•[©ÞÐoèZn,ûã,ïŠ+1«uÔ} \]Ư“š ¿„]$=ï‹Ù×Sù¦ºê{ìäNŒøØŒS¨¥šË°*dÖhÿ.xŸ‰0µÍv#|õ3•~UÈÜŸ»ú`Î?ZÚvS}e®á;‚ô?€_­"¿ŠWÝõ1Ô£þÌb ìUp‹Xì«BàÖq¬%Ø»8Q÷À{m)«žÃª©¨ß¥‚Yüê”™ªËbÞæ Å+½ÅXó=ÕPý€Ùav3k¨{`v›p~—¡W®,Ý%˜ƒzxþE´c.ý'¢ïõ)ìÁ¥XÓ1Šs±Î;1_A9%ð.𲌹©/c>»«ÙÁ6Ò>gc•ÖÔÅ\²» ¼¦:ØŸu½7O½¬ºXÅK¹;³›dÈÌ@çy(~õ þéƒü¬Ö(ñzÕb4ESp¿•ª ×Êšà[àW/Â\ ~õ›í`ÇÚ·À—_µóݨÐu¯ŽY¡ç…ŽØß]9WYïUï™K—±7Oª—ôXÖ›Ú8ò™J¢ÌªPÓ«‚Ú¡–3¢¹¬ÄêÄ«w^L ö6Á\~µ"¬×wÝNÆÜÞs]ÝWîuð«òz•ç¦Ø¦î!}V/^5ƒ=ø=¬ü–àW_x; Ù`/åõeÝuÑ&àßÃXßL´¿šc=K>Ž0›`ÍRA¾Ðr¯{°9VšàUðjž’ä²Ýj÷«•›’ÝÀ«Ê®¥“¬øoç­qóa–ÆÌþxÛÔCëËPækz¥.ac%˜W“™!5ÁÑ'rßK,KS¬0Y{µWÕ0öbÍ<ª²ÍÖà8ÚSãUW@ý«x|ï`ðCÆ‘&¢åÍ™ïìç¶ÄJÍ`Ul—¥a}„,´{ Öoqò«z¼Óx÷æÇÈÎÎa¤B"oßRGGSÖw\˜‰%Q ¶4yH6ѧyKÖiÙ°^_"1&%üù’a«Ó×,G¶Cf•BärhUÞÂ{½4ÞÆ'K’_%ó1Ž Íy´3ã˜ùÏûÁÿf1:Þ:Æ­‡‡•Æ|BÁ«BìÙ)XO2žéuQÙ•>¶R!­À‘¢ÃùÎUaŠe{ësÎñí­Q/êݺ7õ<{¨ `Qƒøù&j"1J°z ðJ›1¼TTÏ'‹l.ñPôÃdzo+¼[Ú°^yæXPÒ“í&ÑT5Œüü#U]ï7íÈå~Ößaç}«åÄøB]0—”e>Î?ªuà!#±aà{úu£ÂZ +°[¿V—ІNXEç€X=”x#°š×Óèq ¬ëèÁŒ¼ÍÐÿñNÂÌêŸ;ô!o¹T_†=8ÒyWàc³°ÿªVÖD¬¶VŠm‹óMü*µ1¯¹@5ÁŠ-*x5‚Y)ƒa ·sͰOí¾ªâé­®õ’Ãõ_Š^°t2£LàÕVâN<ùÕ âU"­¹,Úd1Œ OT¾~q9¬¯LFT$0j+=ŒXÂý’ÂïŘ͔M<Ê¡w>:Ÿ™¬ÅìÇ_ ÿ;–<É×oO ûÛóˆWñ|wz8®>“÷Ã)ô–§„«CËý`)ŒS)~3‚veIò·b¤0=Çš8™Ä]«ÄÀH"וbøMÉô€S>…Ül$U+Åj,„5SF·¥Mº§c#}ì2oÓEc* üâ°Þ¬‡Qϳ/N¿®øøÄªª`v û¯úÂìD”íôJÒÓ˜kTYt,l á–[ñ©ÖØ7âûÚ bÍZØŒ2¶/™8àÕÆ·ßSÕô à•DñþªÿÏû•ñ¢ŸªOÍ¥Y/õkU7°È”aýÁ.ú¨ªÅ¶eÏ/pñèU3 ßÚƒ¢×·ûÿm·½`÷UÁ¯DC2Sÿá1Ë´ ÊUG¿äÍÄ®¼O ÑãÀööé’X¯_‰v£åå±?F g÷£$b¾¸xß’,½{°<øUw¬ÛùøŒèä–Æo&â{¢ÑTx™g>Ö@5¬ÇIÁ/l ìÁ}he¡ÎrÅÝ'¦/P`†M^m ´ÀçO1Gq)óqjbÇÜ“]3Z)ýfj ž<X Ü¡†*¢¥ê`Eúà‡³¦ä“̘)¦ õzÚý^U K.vf'ÚƒRßy{;ô¾W ,÷áÐA e¹ZúiuÊ\ ¼xÍ´A«W¨Ëú=£ x!ªÃyàXƒGUÅoËQíb V¤ä¸ÄOúaý\¡g:SM†=¨­Ä_-VÝ +\gš*«oºÎî{wÜí†m¸Á v³mG·^¿§—‚_us{ì·:CuÕGÀÍáI¥D{YŸÇyZïq£ ȰÐ_%÷^u1&ë Âõq6xéö[z°Ÿ… åê;©ç2Ý÷ìÁBµß^ve\''Lô‹Àeûe¤?ËÔ÷×Ï ð¡`ÖyX3%ÑËżªŽñœ‚ïï@KŠÓ%öbKz¸%Û:?N²R¥›çÁ£R©?ÓÝ5„=(ëÿ€Ú|?8š| {k‰ÄÔÐÞ*à½Pskºb'™¯0ã/Šþ¤4åW L¥âe"=Õ¢S†qòÌd.É›ÄÞ]&†+K$S°8YOIÆ*ø¹3‰¯R´+5­bÂ98¾:C-¡d¹Ïᾎ¥ C¬KçŒH¼hïMà(DPm®lX>ùÖéäo~¥ùú¯¢ÙŠdbTQÞ†ÓÁ?þª9Õ=/3ÁC¤ê¤ì¿jÔ» ž·#>ýŸ~e=ÝßÜëîÙLר-'¿*íֻ߬ÜÕn¶×Á¯:¹i¼|×þa§ÑX®$s²-ët`Üd–©ÄSÕÇn/Vv õ—®!XË»ôÇðy•x?ŽBMP¾>Cl8c'·Ž D¾ÆHEðùÑŒD/ÇZ`EèƒOû¯B¬f^%¬,˜À8«lbr=_©Ä¨Xê$'²6}4ýW¬EX„Qª~Íû6Ø¿CÕKäBۧ 0YZ‹§fWXÙ4õê"yßû8Ë—aLm·«Wõ“ú>ò«JjQö%Gª¤æê7uk~¾¨ïè¡Ä:‰RJÓc8_M°—¢õ²ÉƒøžxÅc'9 [±d̘«º¤ÙÌØõ»ào»M_Ö˜ø[ÿ¶ô3c¾T›W‰]Õ4°Ñä1¾‡~ÙDêPOf9Vø7À‘œsõЗ×ÊֱͩY½ –^ (µ½©¡Oc\r€W—¼ f‘® $xDUÑ3<Éè鳦Y;)«ðX¢+q~‹"ÒpôrõÛëP_ô;à¾Ø)FÆç*é©Ì‰Ë¬ÁØÇ¥ßž‹1®ÜM6Ïcl31:ƒƒgmšÝÐVµ×Ù. xµ#ÓÀv0Uôº@/<åU¼¡ð¨1fªÞ9h$QøSXob~Zÿ7÷V`!Š>C%ê' Åç¿#lD‹emðoë;/Se­slwû–úXß²eC•Cg½ªf“>úÔÆ‡j»ªz'ðê|à«×Gÿ¾ÑSpÖ”¢vü,ØZ5€›±*â·’9¹S=ˆ]ÚïÞ„ÖÅû€¬éj–·Ûí2oF¯›;dºï­¨¢ýášÃ|ËíWÉz§á&Ú^n>¦—ÛY¶ðêG¦:ègíïÞ+˜Íj­¡/鎼+÷ŒÇh¶Æ?Ë0vr¿—Gíó5àÍí<ŒÉF/ÞFhñÉoF¦¹÷0%ÑU^ýdás;í%WvâpàìÅÀû«l$d™úìÁº˜·*Õ¾À«*xŠÄKLj3Œn"Æ §ß(Úw¢‡(ºíÌëN4«j…*cÇÑ–¡Z¹°OžTk‚Ç’g”³~”ÑÜÑŒ¿jÁŒ`±õº`¥1BA°k>Ñ¥(mËâD©d~*–;G|òe©Î"wj¥YågëHÕ‚XZ’²{„‡–P~ÓbŒr_½hŠå’EEÒô#»ä¦0‹ïó+&Jz²"xè×çÊÂÜT"þ8Ö=ŒÿŸÿJâüÚ~bñÈ×ü/§*EmRñ·G†ãE#éåJ!F ^5VǰæO†ó"7a×çošª(MÿU˜Ïœfâo©ñ°Fò¨E¼KÒu'-Ïê«*kÉ]—ü膰O½¤§€WŸé‰DYñJ§éIä´•ÀBb´ÖlF ÚÅ?¹VY³x%þ¨ýæ„‘úüj£éÃz‚¿i….Š“‚QçÌ›êGß{ÃÀc¦8y—ø¯¨Õ¼û÷3u?m†þVÏgµÂX6FO uy¿MÕÕo3´¬¾ ¼Ú¨¥:Å ôu¸7-¤Féêf¥yZKÞë è:ìÊ\¬¨AŒ9_„u*{ô,8Õ| F)XhƒÕ-ð«Y8ja— ÃjGçX¬è\*ŸÂ>¥ÏãgýÔ}ÁsÄ«#@¤.:Ç•uï›±¢‹b›™’z_ ãÛ»b_.ÆxåSÕj$ð§h4 ÖðOxnOÌødØÖñŒªê%•Ȥ*à2|²¹z;¸6+<~5É>íU`üUÀg¾óM}ÐF‡Cg`®Öß…´K Õqyzúȼø ,£fw¹zE`îžäüH¶Se`Ävô@üÜÁ¶Ÿ)‡ñ­+ª­°ƒßSç€*ͱ.yÏYkçyôw¹gía÷³£Jê¿\÷§;ïöàÜÛ{p¢íäVâÔ[jG¯ö‚_¥¨Aú%àÕ3°zs0¢¥°®Q}PbfÇSÉ»öWœî¸úmhAkì(—ÇT ìÁÁìË.“‚?·€3M/2½YWúwý·ú\ ‘6à{æu¥ÉÁ¾U5«M¶Ž!¿:`’M‰¥Rká+ô3«¨!l“½¬¶”Åì¶·•dëUSÏâïåhÖV™úOïc³CË™°Dů`Í R“t3³ÐÔ™øyŒþR=$ÌÄzµ$µb³¹JÏË&anj«صWTŽžËÊ1ó©Ü–º“±Ã˱êæq•mNëOñœ^jtðs›kŸ³;«­u WÉ3}­³l X¹›Rô}<¡Z%jOÁïîã¾Å{‡±ÂÖT´e¾W ˜*‘91k<Ÿþö<æîo¾ç°{¼ª@ä²6äzÙáöN‚ƒö÷‹»àÕ7ëôÕÐ÷Ö…jº²z¯zü*>xx%QÇõÝ £&ñƒyÛ9sØ“º”¢€µO­ÈØÕÐÓê ΉWMP3¼íoÞro0µ¥;f÷¯&`íüîZº?ÜVê_mucÝ"Ûüê=½È޶Ý3ö{Ìäýœ½çW*}Ñnd2{5A4¤ÑW‰šèÏ Õ1p¢}€$Û¼hëtK|þ¤ûüª…›‹ï¤»<·ÙýmEuo¯ý lk ½‡¯ç€W3X~‹ÔM¬Õ ížê2£}3ÑÇ:˜û&ÀìX´©ÎÁ!ŒKÊá½COîòº¬ 8…QG[±¶ N澟¨îsƒ\cæŸìSû‚çƒ#É‘ä~p!íAñ_5Ç,æ2*ª8öå&F¶ä3›B%•>î8²«dF„ÈwJó^'žþ«z£‰?¥Ð6QMeLºð«T~;‹ÑèYŒH£UŸŽmˆ {Ü£ÉÿühÑhbVµðd4[[”÷yÅðÖª¼ï+βN$î”À§óè­‹¤=ïò-=ynˆ1 ~£ïËrÄ¡"dj¢FAœïŒ³o´ú?òºLõ"ïØ%÷§¬Á"ºŸ? ÖTMý9™æEÖ)®¬SɯëEºkÐôP¢æàÇîboê3ÌwŽEíÌdÚ†aó”Õ³‰úí±—’tOÚ‰Û°«:…7nR¹àW‰i› &Ùo'¬T©Pýxœjýé!=¼0G/Qɯ†`.›+¤Ú°ä˜UÃç©jæ,žU-š¼fSí!û2žÙAga'1ð3gØZ&YïˆþÝûÑÁô··Æ –X”Œ„9ú~#U¶Ä%zȵaq?Œ]\Ù‹²“/€Ô¦þåZÆ·K>Îcª„ý˶°Cì«ê4¡§Ëƒ=ØØ<ªW…^´¡PUð«}ê;süêMÓ{tž:©Ç+ä,oAeäÍÌ’=™ŠÀq_Ÿ¡lQ(øv¿ž×𫟼G½ÁÔ¿:b_vL^} ¼úzÈ•õj7üªÐmÕgõ\;Îöqûí=0èÞúI{ üj +ðÕÕ·t_FëfVðÍ`u°©<•†`†¶á\Ë’ǽL[DK5ì—ܛ욺£dWÚ­vYÉjÚc¯¸êÀ«nRöà_ö~#Ñj«¯çMÌQ ú¯>£-_û ãI¤nèt¼õ„Í;´\zû;-jñb£”6ª ïe/ ^µ¿>¶[í ^NS¢èTxõc®b˜Ú‡ÕæE‰¸f*•jÅ0î˱ßé3 {©è÷‘£(×W%bK$ÕX|•+ñMÕåÝ`,ïï$¯9ƒ¸šÉøÓtåçV§vq}ÞÑÊÏôýí‚@éÄÅtê±åý¸_Ϫãž%Zs.ÞXãTS½¢*šs°µ³%1ø©-f…ëÑ'ºbî´éVN³L¬Þh»6Øï’ÕzÀ­¡Œë–8÷ÿà]c¨ß> 'ÿT¼³ŠJÅéЈÙn³¡µÁ $§´h¤OzÃì+^Æ·ÿ`ëÞo:d'»f¡k^3³RÏ µI¡Ê®¦~Q4—6ø†iÊ,¦cz6ðJª¿ ^ͦ~ç¬r¬´Y§ÎÉÜÅØÄþ£Þº™‚ÿÏT£½­ÖÙ%°—«6î {ÈݵóTU}×µv7Ý>÷,VÈrwŸ›i[¸ÇYg:ó›n­Øï¼'пÌ`ý©–>Šjl}Ñ; ¢Ì"Õ–·5âSÀ¯Ä_×£;J=å³Zôsº{6h1UjAQmt¿Úº¢‚c¯»’®¿5³8Øg©†½èu ÌR|.…áø«†X¹c}Ìf=¯´©f~ õE3ðû6Ø;²k«cF*«…¡lW fEpc†«î®ƒkÁˆ€½àWׂãi¯ÉýàR* ÇQ_¬?ýK ÔôØODqÀÍäZÙ´ãé±.Jz}³)åÂyÙ£°ÛšI†½&± +°››cOI®Âò›§jh‰PÛ¬.ë­º·`?ÕY·‰‡¬²ªßf`æmš¾ ‹\úÕÏOÛHgÜZQ] üMÆd ÖP7œ‚1¼Ëû[o×C‰ê‡Ìߺ¤Ù®%‘§3/ú£þ]]S?17çž:eÞ^ÉHÜR…Ý&šWô;&'Ї|lâ˜I"³¹ßSO£%’¹˜¼z }“Z½O‰nŸ>M¥Öcï˜e:õè=ÝÚ[´ê ämm晀ÏÕñÓ[Ø¡ðé¶è{¬+©‘Zèq¸)DK+¥Çb —¿oÇóè¿ÊÆ¿§µDw¥žzMÕ1õ5¬–>ÀÉw>aŸ؃Yî ÓãÝ×675õ#Ö¬§Ó£,ª¡-dr?ØýX€9üÈ:› ÅSñ{ñÍÔT m©z_ s&¾ø+˜³êôl žð:ØC^¸Pqë¹rv¼ý?õ¶~Û®r=Bg¼ºæ1=)ôøUqàÕ~؃7^1­±ŸU/éIZâ¶;ãÿü:c„}€W/¸ì© }¡/`O§½BÿY1ÕÙÛiÿöÖx¯ÖÚ½fŸ×£rõo®»äî¸í*M¯q3ÜXâ•Ä3L³½ÝNû3VY+}üêI¬Ø\àUž¾Š2ýŽ)uµD¿fìhjšˆ/k=ZÒï¯kt—i³µÄ„½èn¯ Ý$Ìj¤+çwÿÚ¦hë“ö*ãÛ‡ƒ×Ü œ¶¿Ú°+`Mþ8ÍøöJÔ¿ºMŸrf¿:ëJW£>C>ÎÝÉÜÅy.õ¤¸FEZöÍ #I}çA®)ïÃö€_] NP¢É’ ;B´C#*`÷´ ë·gaüÐò× Ï mè׈fÜhoi§¤¡ ÅÉð¢Xs:˜IÄ"¿B…DVå]ù•ä&Ó•Ž}RYÅÿÏßî×aTjF8bJ8GYâ—ŸK(vaF^øù8‚?éa½>á<¹a¼ŠboÒù'ŽxåÇ…Âz}ÅÃxÃÑ+Â|ç"¼ãôñ«:z2F,žÈ,y´Møóvà3žüý!užþváugÀþ—`7 F®Uoé° äɽp.´ÀÙ#ãSNÍÓŸ‡cã;«>:hš3;¼'¸tqj³ÇcvÎÂz“q؃ߴÅ9/¼WâE7ƒçËÈ?grL¶Ùiä>õ © mšk9³¾×?*‰¹’ÛÑ/ÕMs‚üJôE›ÖÒ, ÛᓨÉüÁÅÀï`yeò>¦°†f¬©=êãáìÚ¥ªë«ŒKÒ!û™Y¥K°ú‹‚=øÆ©ìÁæ~sTç`/þ Äܼ+ƒu1‚:ÄÂÐEÑä ,³y˜ïfàW#¡‚WmX~ ã¯JПQž•쫃yäšwõàÞ}jvð²´¯ØxW¾N^1]°ÞgØš¦º~8Pj°M1Š‹ð ©ö¾ ;¡9Pu6Zpý¡º±àRìU©]MÏáMhMŒÁT´â,Άʬ¶².øº×Ëð*‚=dÛ{¶¡{ð5½ÛÎqýB{õÍF½ txUÑÕÐ{Õ«æLàOZEõ±W^Ö#t!z#ÖçìÕ2ÀÍç±û+ó¨:XÍb¼Cðêeü_/°á÷€ù˜ÕþÞ2û¯÷ ëMttÇí^wÃŽÇêú8qÛv{U ð«±n²mãÓïêev¦íåvÙ1“ôqàÕ65Ctÿ°®hQ°)‰'7B+ò©*H>‚õipRb5=ÁzUÕ0uÈK²ÑZXØÿ¹Ïa–qs±ê\¶[ë¾·øû&û¹+ïêÓu/pÎþÇN5¢®¸Dý¸¼’H…BœL_1º®4øUMÆ¿ÕÄ”Ñ=Íú8²«=;’ƒ4`øXò™GUq³ø[ÝžVòfªÏM&æ?¦ŠšÕø¼Üáî6©¦’ÙLݘk`?»L+-#ø¾«>V?k·;êŽ9¦R©'ó­j8d2ˆQô1“Aý«Dìj¹|K¥R‹å˜: ÎÒsUˆ}õ:JN™'ñ÷ ú-¬‘2*VgØÕº&÷æ—ªx%z³`>bNk©+¡¿TGñdѽ•ê΃1Ž¢ÙÞÛ¯°÷r1‚W—Ñîi¬µ, T9Ø %Y½ª’lŸ°ë˜+°µEyLðgOÚg¤–žNpéîSÓ#3Þ˜*ú¹@>Ús;A´kÄU'ÉTÖÉy m¸£>‹è‡¾Ì^Í`¼h¬^ ¤B±ôcúû!øFÕÒ6zýìa¯~“g#][;ÔSÂ|ÒÍ]ðòÍÃzFèm•vôuØ\üB«¨Þ~X/7®L•xË*`ÿm•NÌ«Ôßy\TKYPüí#Ô›¬Gß30ÆÛb=»Žõè;¸í÷µ¡*鯀W×Á°žÄß7‚yL±-Ý#Ìwž{p;øUªj§OØ/¼§1zRo¢6ìÁ^J¼àR+Ul»Öxß|ÆŽ–e®ð ´c«ª£D}ŒÚàýåýÃ{ŠgÝW6Åw±jS‰WÿÚ&èÉ{ËÕpœÔÈþx%úWuð¤%Ê¥¾s³»ã ªIæmÔU•x©ýÔ'Þ8òŽ´{rýKv©d[˺]£J˜ÿcüUØîXžMÉ©v¨Gƒ—ƒcUu,ëëpøº—uxߨ„>Œg¿Š¨éÌ ×£gÜd|ØïKïøyÊ2ï¼µ^Rq—@ÄÿUu¢Â±¹ô~Iähñ*–vHåplg±)BùQó©äSþ3EÇÆm%²ÅÓÛ”F5èzË‹ñóq´sp¾–&šº0:fó[É´aéo—[‚´plCÏñ~°o.#Èâêb­÷ÂK{âYQ­ yQ;ðrÑ¿/×|õŽj xr –÷<`“ð¼ êM}DÏÕr×ÐC5Òû+øV–Ó+º7{ØRuvõ §ì­ÇßóÀ[rug߯Žuߊú¢‘àl‘f=u!"ÕàUðJîNoªÊzŸ)Ðr6ý¬ïoý¨Åö¿£¼ÀqU„µSïÂ|ŠùƒQª§~ɤ±þ—è·ßÄŽ‘ ÆêmVžêÄú-Oàäß•]Fm[Ê¡þU9•¨‹ÚÍB-JäSÁ¤ž^55gÝÁ,4oj©Cwè ñ¢ÙX;Y5e1õÛ`„nceIU ›ø[ð«èyK%‘Ÿ¢)*QÇðûrTX8®j›õ§Œoœ¼Ž½ü’ýs ‹Û¥ºfP ¡­o*꽉Px­nŒiÌxî¥Ø‡Â*faG|›W|Ú¢µ'}[ô0 ð¾]â^G3¶Vbq´mSð¯«= {p¹ªlÿ´v„=¬.è/í›îHè¼×öàâÐ6üªš~Q½i®^^å3+ñ=½PËý~{îXÉ>‰ÕÐýý«­jÖakôo3PUÏÏ2ž!M òVÙŸ½ÅÞP0¡îˆ}Î}f‡S¹ƒ»¼Ú¬Êê‡Ý7Â6r«ôkzŽ]bÛºö[]+ìYûïú\ ³Qö`W¼¡,ú^“þ#‰ñ˜Ž‘H]E`‚è!×ÇÏ*â¼yö`¬ÎG ÷»›6ÁUrcÞ<—ëÖ30_í±w]-à•(±^‡=ø»dJc¥.QÿŽ›FèQf_ÝÆóE!jú6ï«];ï_¤Æ{H–a#%úo!FÀ—Q£ÉÖ©dózp(‘e‚麻Bîû§ÔÚàMê·gJ8q™HZý>¿ÊÀÊZÄŸËýc;fVû‘–‘´¡AK\ôµ2©Í¢?*“7sÑŒõ¬ÎlÄxz÷K‘_E0R3›·b+‰ÍX…HOÿXD8ë&.¬’—F$‹£Ÿ*–Ì1Ĩ _£¯ qLì¸ Vÿò«©Šo·<½uáxÑ⌠M¢Çï¿õK3’]xZ¬ ò¾Ñ×ëK!Ò‰]Øgô8Æ‹ s[ŒZQ¥­TœÅPùô,°úÖŒ†µ3øU“5³¶©ƒz‡Æøö¾ª£nf.¸W æësÌ”:ô]Ö?ÂΛ„ÿ~ÆËÖQÿªŠºOƒÝÿ¬! Îc¶¯„>a~×Ùf£)†ß|{óiSÈø„?ô78ã¾â½ä'*&p6¤ðÛT³À&SZË8÷ѯ™ä@+jˬ³¹ œJ¢oú-0¬þXÛ™X{€{Y)[òqD¯OüÑÚØ fº–;•êÕÇ›CÕWO6«Ì+¬£ú9xÔ^ð+‰ÄìB‰šiˆ>Þ .q%fŠdiÑv©†Õ6;¹Ö~_‹w3•?•̇[©Ñ4"xöàKvŸøœtI—èîšØõíHS\?ŒÀ hywÌ@kFÇ?ˆÒ kZra¾ÆX ¤8'ÊLjÆ£^ŸÔŸ,k–)D¢–¶,øª×Ç>ë•Á3Òì×¶ðꄺ¬Ø?\­Ð9¯Šy\¯} ~•ëªëÝê-s!p-pÑà) ÕQ=ç‘ Fy¬ŽÙ´›÷K)³}¤Zöbü¬þv”j*€WqF¤¯ÖÛ¿½‡¨××νlŸ^IÕ¤;®…ûÂr›T¦~Ä p Á¯$^t…b;»-°Ó±Â^°ŸxOà4ÈóªëÀ«êh…äãLfœ3´¥=°Sb*)W%üo›÷ÒR¥p8]1œ‹D£ xµÜ}kÅ'°Ý^sea'N¦}xßþh§™\%á¿SŸAü=Ýõ9fSî%æm•Dü‹>L#¬ I´ÈJ ÏRÙF0B¸U5ì0±ªÖ¨óLÐçZÃT/ t>UîžU[‚Ç©%Û`ÎJr¯•†¶Eÿ¢é'˜È]šƒ‘]ʈ€DÚ'Ùô!%ÑW¥|¨\Z„‰aË­$Ði'V¦¦g½ÜÕù¹¨pŒVqFvvMVUTÿÍôï“/ÿ¿¨«òÌÐN ûÍcƒ ª§åÂúÆ‚2þ ¢Ï¯ÊóÛ1¡bÌ3Šdd} £­£Jò–2DÛÐÏlj"SK&ÄlD¹i!'இ)Âøv«cÁùEƒk¶ÚFuŽ6ÚEð °-–ëzõª~JbÎK_Õg× "ou5Z_€­'í领êïXÿ4Rj{ÁœÂQ—ûÁJXoC%qÂ]Ñé÷ãÊš-Ìå‰TÌEbvéóUOï4Myù£¾s–§·U\àÿTwˆ7T»Àzà•Ìu7ý–I 4f|ûãèחꤒê# a›H¼h|·6vï VÈ+ìÙ{ðÆ»¢*¢£ì‡f¢.EȵțH}Aú>ó°yxUìê:Ú½ŒŠìC±{F¨G¸NÛÂüIÝϪï!-¹±¹z&õâç³^j3*©I†ˆD×TçT†9‡þHNØ àUe_´»$¦Jg¹4àUW<{±í¼ÚhŒqz-‘Êzí±#Z`÷Ç“›`û‘_ÆËbw6vFÿ>ÆžÊçýà" eu†z29¬ïü®7Ö>á•ÃÊ϶QnˆcO«;z· U ]ôꘕú@èª¼Ú ¼ºø,pÖ4GËW¨Kz)Î2¹¿’xÑ¥Øß}[½ñîzÌäÞ$ÏadØ3øT_õ.«0õÃZ¼Ï;hµ}Ä%1,î(ðê+ê_ý㪸Ûî"øUqàÕ@7Óöu;õúA;Ëvtûí÷:gÐ[ökð«Yx«øK/Á¬‡þɃø»Û`læâCëS½ óÚo® \ÙêEÙÈi÷¸[6ÖUuó1/i.Ïmu¿Xɸßloºò®µ“ØÏ¯çí_v¼‘êdËÕ/3`–©è_s¼ù¬#¹Oyˆ8)úñ8òÕÓj,sE-¹>Ö‹ì0‰ª¨ ¦'ÞᇀWGaÊ>ÆÉâzÔ{¢gDÝ'8‰Õp¢i©®Ç–Æ´¡£™Ó<¶G:m±âÑG#žÀlæâô»U~õùbK.Q!‰ÿŸÎäôÊSöÅ[B‰6Ì{½KáÓ)¼¿+Š9®DT-¶¢¼“˜…Ì0Îù÷†eÂy@‚ˆÉa…æc%0º3…íM ǃ5 둆¡ïãUµš£åD;²™eÉÁBôÚ[¢Q2ýí¢ÓÞ çâxð§XòÀÉÔgp­ÖïDo¿ýÝ[å ¢µr¯Ø=î®w¡vÀ« n'Nun„›eÛ±ý*;Õöp{ì˜É~ú{Ï;Š3Dt.*ëϰ®ê`œG3n³%}Sò–¡ÌGnÊú8[0 ƒñ¶Í‹·ž–q{Ù}g“]¾‰ÏKüÕcîoÛ­Þj﹊®)õúä~ð;ßÔ`|û7WL=ì?ÑÈŒ“Jj¥ õñÅ/ùË]ñ¶QÔÿ/¶dÉí\Y¬9‰¿’}û˜J0χÑG=R =XvÖnµ9x•v¢|·ü*‡~‰òêö#>Ç 'Ó?–YžKc_O4“l,»:šþ"ñSÉm‘—Äê\¾–BÌK*‘LbäÖ'‹óÒŒ­òñÊ×ëóëœ&±1ÊWŠOa†áŽ/JŸZRX#4•ún ´ Yý&†¹59À«)ŠXÔ è>ƒñíâ[Ç['Ñqh¢bôŸÔ ŽÄÙu™ÜC¸Ü%¬ŽMª.ýW[Ô =E÷×♃Å„Á§*¬uÝž÷çhF2~~ öL†^@[´@ý…gvãÜmĉYÅø«8³IßÇsa—)nÍ#VòÇ`O™æa{ð/õ†ú€ÚV_«ÏÌ1õónîªêÕ¦s»èƒÀ«¶ŒÅZn£ôI´¿'Ö´THíÅ{´@Ç7èa©¥žR{À„>ÁºÀJÔ¿zW̓À¥ºj:ìÁ^Þt|¯»¦ ̃°Ó%FMßOÛ‚ùÎG¯[‹„Å‹¾Ú‡À©ÉÌUQz04GÏÂÛêb…£r6#:«àß°’_VMÍ›ú ¬Žjaðc›¼úAt%u¶+á>53ÕµÈö6zc =Ö×i nQôaþàC¬ç%Q’â–z^-¨0#\‰ðw h!ÚR6³ùo4%Kmfðuo¨}Æ«@½¾ßm{Ÿ=ª>Óì!úÈ«…þ¿zÉf„ʺ*z‹ºaÞ |xÛ4Áé¹ çÔtpà&Ò_zØÔïË^­…}õ"¥Âg%ýã¢Ò´±çÁ¯‹æªUWo>F{€š©™¥æ:,“šêWX_{ÐÚX™¢:«:‹Þ·Q3™Á&¸õUJ‹Ý!µ–PVîïÇÜå»jª×UYó’¾L…ßÉàW‰öˆýÏlª‹a'^áç¶½©¬4Å·ÞEËâY’7Õ'¶øÛ¥¢B´ç3ì‚æ.Fˆ¾è¯°ºšÐ{z?=;—XÑ' +jMX9Oª³ag6²]í›ê¤Þi‡¹>¡7¼Úf~0;Ì•aüÕ'æl@šÆxêtu¼ºoíËc\ºzá' ±Sêà x#Ùÿ· ã0Šñ ãЫ 5ÐÛe¿ôVxƒÑ‡Vî„ݼºë_€WWÝY·ó¼Þ ßëè6ë÷õLØ©}ÜNê‹ÐÏÂÜŠ÷gbÇ‚_õasQž†YÌ××u|±Ÿ©¬ï< x=Umñ’©×ךx¼Z±‹=dAý]öÖóš‰yú3pÎþh‡Ñ–z©Ò•Á¸ª/šF)Ú[M¨(5Ž‹¾F· ~Û½O¦Ÿv >=™Ÿ¥Ê™}Á´×†¨î>׈|lš<þn~ˆ‘SQÌþé…uGy'ì»Dî©Lü}}C¼Ë&FÅ099ìW—|À<>]j˜f¹d¥MüŠ6i¼AÌ¡ï+ßH§>Có+†ówRÈÝ|í÷ø°Úº¯º,Þ•Dåëú7“Ĩ²Ô…ˆ M—F=‰Æ3Ôa£(%Ç3ûºžn©m®_Å{ÃäpmzGÛ1‚~|»Ôç’ê—ÃÔK´‹±òä~PžßZEëDæÁÊzEµÖŸ‘ÿ\Ä9=L$޶Û%½A ¿½›jÉøvyjm5[¿ËXÐH¬¢úâOfp¼JÖãÉ«(£‹ëŽŒmX½×’úí1ØOEÌcÚŸÓ&hJš Ff㲪¢7þú«þkFê;Ǩ›êºy–ÚÈr‡Ø(ë‘ñW=õ[À«æÔÈZŠÙ½E¯ÊxÓëêð£F¦öÕðËv˜·'[UÀ!åtHÒž½lVé,|b¬»«àW§{Ög˜„§6fLBX<ÿ` ê-ĈVÑ_±í籯æ‚KE3á²~HObüUÕG‹RA$sÆÀìB|n§¦kÏôe_;c5%2ŽÎé*À+Á öÜXF¥mUßëõà]‡w™;ZêM“½…w.2­´ÜÙþª”jöF|_·ÕÏŒ\º£ kM:c´:êLD µÖ?¾S§0o£ðÞ·ð§%yv=0­÷ðOŒð~°íŠú,k $ê8{Á,Ô%¸þ‹êÕÞ,´°›§ÇšI樾ü3ÐAôE‹3g õD'¹#xÎÓ<Œ‚Ó#Õo*üª¾/›¹´âEÝD2f›_e¼ˆ¢áÁë6Ö>kÿƒOÕ×i.Ó}bbÔî³q¦˜Þè,ø¿k û¶ðª*0Rjå5¢®èmpÍaØ5å±+°Wŧfg]`ÊXÌìÇèeUÆê-¾âu±Oze€åÅí][Õö¶'Õ)0˜î•Ð؃Ëô؃?Á*­~uÜ\ œËhŽ=ºL¯.¤ÚW-0¼ðïa`RÉ]“Ê^{WR¶Žx ÎÐß^ýë­²?zó`>{ðEû2¸Îàê°Ãn¹×ÜfŒÚj7ÂM°­Ü}J¯´ãÅ“eÁl´Ô‡í o'˜L5É‚ÑWtoª˜ŽÇ{&)©„Ú‚™àãXÍ£ XÍZµø$ÙÕA¯”MÖ‚ò/#³\S·x‹Sá1؃ ÃõèË»²nžôUà=û·d¤Nòƒø¿w¨/*úW½q.J>u zO¦Ò MT’Óþ,Pßæ’§õ ž4Æçë°Ž°Ü}'šýàQ ƪ¡®™Ë'»Ùª6ÀCK«¼j¡RCFôE[á©þý]1ô`kXÉ%Ï\ŽÅôÕYÄzñ½Oq¼ÁŠ"[Ê «Ü%1¿'–J~™@ÚêåÅRÍ´ ï#I‘DF(v–œp~-Ã8îúD2¸xÖôoh÷ú7‡±¼;ôãÛ3WO[.#\Ð×ëkÁ¸¬xúÑ¥m9Ô­’Xû"äTA|»-Å óqа-¾BC¢òkÁJŽõbôþ52>QŠªŽ±–HÒ®@–,Æ·Ga­¿‡µò1å%¬ÊùÔ“I^]ÒGõúŽä¶¿>ë¬E‹U¯_^ k«ú‰Æ»’zÜ`(*VObï«©¿TuÝŸPâ“íŒU'=Û¥"ÌF݃cò¬ùIW2[Œœ!×Um½Ñ´Ôrªü«%÷äÖ꺦"¯“ þ©Z6™’Zî,zêÿ3éžZl|ÑCþT½‰·¶eÍЗ€Ã­0® ÁªÞgF®Ä_mW%õ%j­Á¶7Ì] û`‘ÊÑs¼i@‡ÁèáB3Ál…MZØð.öþ#Ô“†~(ÆNbx›«OÔïÂ@Ywu$p²¬žÇÚ¥K€RR•P*‰b¯Ä×vúx• L¼{ðe»C0HKDãMÓx3À>¥sõ¡€ä_¤"Ê|´§ žùNˆ¦@„Ç•(Åß2ôÆÈNd¼¨ä,–¿ªGÓE¼q? ¾"oÍ_÷:Ûg€W‹UI{Ó6¶ý€W'õ^;Üõ Ý¿Z¢g…ž°‘¡WQïQ'ÌõÀ§WM#êÉÓ X¾#þ<Õ”½èey¼MêÀn¥\ZjšªðÏõª:‹ñ늞óÖ[mW{CéùîâÕ8ŒÑ-×ÒÝu‡Á¯JënøU·Q¿©çÛ±¶½ÛhÇ*k4½á=Aýö°³/ã\«‰÷ Jû÷ƒMq¶°¾sYbØàe>µ ìÄMž³Qõæ;7rrËšáÒÝR÷§mŒýö<×ÂI<ü§waŽ3¢û³PI¥XÁ«ŠèqO ¾TL§öá8UHÅ9é%Ë4‘>óz´E$ƒ'º»â—0°G“Y`4\k×€êûWÇ©3#ùÎô"ÖˆÇÛòY<–~ï^X?錸’Z•c¹ãc¹gRUÑpÎs"÷¨ìYÑg(®üZñ©¬-è«‚æbvŠ3"^8RjR âd³2Z"Ù”Ô£ßxQ³¨úoÕ QbN ç&_%𿱌=H¢¿Zn8K2¿¦Ux“Âó‡½ü‘Œ—Ïþ_²‰‡îú iÔgˆå}¡_ß9’j€Q¼ùìö1[ Dz®ÂîhDØk(x%휉]Òö Œÿ ÓUKËø¯Qgõnð+ñ®õVt¾F[2_MÒ7tâcouŸþK¡}Ý£œ¦'ÐìR9¬/º«  PQ¸Ö>g6ëä™›Œg2ÍF0ú´ª§×˜6Z²ÉÐ?€M|¯e$oªèÀ)|Gìö_TëÀ6êÉĪ®ú°I´§om+Zü#P*'ek ÔI%*“R™y+ÕeDéV´ëéËX‰5©©ö øUIŒÅ4 Î$o2Vf}ôd–™eŽk©3ù,Ô}âû¡–Igœ¬K9'0VEô ÖŽùWI¼hI=o«wOÃ÷ h/§§Sò©ßÆ™û¾þ«¦—š¼`“ìv?P­ñêªé‰ïδ—u)ý\@”wÏa¤Ú)É$)`E:¹†!•Y¿z‰ZøtàÙ‰PR!ê!WCë—£…±ë°E“peð°×Ë>Ïz©¥Á$ZØÁö5õªÞiºÖ¡+^=³\¯ =d£BeÀ¯ö¨+æjà|àýíÓÔëzš–웎Œ-š„íÕŸjŸƒµ^Tj°“óÁ^cU¼7E›“Õxo ÚõÞhÁ\÷²= 옥2ôŸ®=ðêˆÛ ZãÆ¸9àW«õqàÕDÛÕm^ea…½nö4Þ'™‹ÕôY=ãZ‡úWS°b[‘7^×a=q˜Ó}Ì·¿øj/Úþ)‘¸j§»nã\9w¿Dcº,·Éýma7Û«®žëêÄÓv-pÑþ¼•ƒêÀû@jÑgȇmÿ%cb+Âê­Å8†jØc³1‡1)ô5剎÷T%ªÚ#ŠlTY°ïãà5ojJÓ~µ"ø2øUQú„šê%Dšx`Wú¯¢sÕ «-÷ f¯'Gò½ìqál¿²ir¼ FEÄ)¿ZDvX×Xb^ãQÇlÅ\*ä‰ê|.µ]"‰QUhãFOR¥ž@ÄM Û1|r.ßžÈ Ä”pDºØ•å¯îgý%1^´Þ/úíiê¿Õ{2È!#Âþ«øpÝùâ?¾+m)BÿUzXÝ&'’äc% ¦ªÔ.×ç\‚îF욃=Ø{JâäžçUW ïÜ€u{TÏaroØÝ…jx8Fn.kx >wVõßz‘["ÁcõTƼæ«€W=9;°Ò °Ò¤ý»aãoÕ½‰½ÛM¼)f¶¹[üÒÓš|éGð«;êk^|£þ5o©¢¬Qø ìÁ°eæÚégLÑ@gÞ]ÎÅj¾~%J ¬5Ü »¹>ú¾;é)`tu öØ)a·U˜fϯÄG8U%ëYžÜ>5Sãõ³x%uÛbô‡à‚ÒK3çÝ(ò+©7ñnoøã·*ü^øÕbì«lê­”æý  HUõŠ*i>¯+®î£>ƒgOÚ_ñÝf:Ã%¹æ~ ì\û™N^õ@›/ã `‘5Á¿›âcð·|Ø=Ô×Ìžp?~?ÊI µd„Væ½™T xL¬ãE×Ox“ì/³Yx5ÄN±/ƒ_°³ÜøÐÇ^ó Þ:l=Þ>£n™ïoΉ·œ¯Þ€=Ø«N*‘N>–Gߎñ¶°öq âJ¹™G?6al‡bìO3Ó1KMô6áø\çõÆØµq'íw×öÜuSÜ=wÊmPåõ7ϳÝý¾~ÈÎ^ùþöŽú½éme‚«U×±>%Z{Fr´|ûªîú5¯¢púQñÔjý+¹9Ã݆Vä³¶ˆÔŽ ˜-ºmÿ&Ö”4kM}SÕõfÓŠš ¯î©ŒgøJE^VQ¬õüjxÒ£½£~Þ ß®D‹ï©7ð7©Ñrºc=I¾óFœû0;å“›À(?¤fH²Úkfž®ÄÁIú€7xÔ[õÑ÷›•æy-•NoÃÂÙ‰ï×À“ ý£X¦VÕÇêoìñâxz zYÝ+x öTf­4ÖÈdzzj¯Ž«ªæ}oí§Ö¯ƒ_´RÓ¥…Îr©îšé¼šeïé ýT ŸüJ4—¥Â}Þ9Ž ×O…‘øçE3‚zYô_ÕÇh=ˆ‘.Êû‚Õ¢¼DFØB%èÆ‹FbÏ^Rµ±§Š0jÖb3ê_mQoê=z–Ën<?Y5µBßÔ]‰o-U70Ãxß)ñ¤‰z:¹cuð«ŠàQÉŒ?«f|£úS?§{ч÷´É5Ùáz^wÁƶ™ÆZìGÏÜ‹ù¾ô¯ÕoæUaó¿„=¸Û”Ô¢ÖE¿hÒ-´h[Kå¿oÁªŠ7©WÁÛ¥zŸx¶/öQ r'þž§Ï²>NŠÖöŒ™¤+à3ãUq=Û[ ÕèÕh=ÜÔE­b|û[vöyG“ÿº(•¯í?:žz2ÕÕy´µñíÀ¥V‚C€AH¬æ `òý`rÕ°ŸaÿŠžÌßè{SêÖ,Ä'¥–Ù&ô–w^Á×½Áö؃«`þa;Ù¹öðåMv´úÄ«{pyèëB9.OïWŸ››/¹™»qÜÿõðQß÷wf÷Í,!@5ôÞ{ïé½ ‚€ˆQ)"¢R¤Wì;b;vPQTEìÿsÏÛïïÿád7»ïÍ›ræÜ;÷žKí©^Z—jª30r×PG¥ ž]ëÑ«µØ\à)GÊqòòn˜›C‚uî\°%˜œlï_qýn"ö¢Ÿ}WÿµÃo–³Å÷¿êêW›·Xo¢›_ÏúƒÍ>w*xÏ—‡k×2Ÿ­;”K$ž…çí†Q½3n"ë¬wøüª°¡ðdcðw`MoÌìÇü)—è«ûYÚ"ì Ëü/àW ažòe}gàUMùöàU7Ç6@_-“_"ÏRÿªÆw¤æ²2îk-¾3ŸyçYxþÑò:ëѧ°¡zHõ$¬öðú¬GŸÊúλ¢“—>NÆãN­/½SÕ}¢ãèiRý«%ŒýNG«[¢OË‘ i6æZúÔ5Ö½=v„²dCa>N1ù_%ú$zp’¨ãVŽzéÉŒ3/IŒj)+º–¦·IÕ—0¦4•Ÿ±CñOõ³$̳I V•à‰` k;'òyªñÔ05ž”Ißx6æB]Vꉑ+eý_¼hCâg¥‘YåÉß2ãúía>NFý¯^jXqÂÇU“‹Ò·ßëx.¬¡dÆ‹.Ũ˳Œ¶<ì@Ÿù\àUUð+Åá¯^K€Mêãß#Í^3Ý(ŒOt£®~zd…9æ­ýÖCÁìC¤ï‹±Ë2S¨{ÑH®€ÏLb/®‡%Ѩ™Â|ç?Ì.úÛ5ß¹¨­iW³êiÌÏmvë{øu÷½$?ÛWðÅû_¥cdìAõƒu^å2žA½r!^eÐÞ=!O¨:%úO+¼~¥5šU_´ºyc_ Ü÷Áûöð¨BìËMoàÕ,àÆdÓÇ®³O›r“ŸÁ97ãz5éOî‹ÏÝŽŸµzð§àUŠWý¥˜†“kx$úyÖY%*F•v¨‚R}ôõóRh_4ïcu••Ñ]–{ĽÎÔö`ž?iu•Oq™6ͬ¨2Ü1ž ÞN_M{¬€éx¢Vè»q` ¿¥QŸAõEûãÿÆ]µ¾s¬cE°·Ð¿µcv{ôp0Úíj³ž×U׸pLŽ›\oß'öAPhï¿zÐEbÕ} ³EÎÚa¾a[a†ß%Ï›kFê÷ÅÝ&âi´þàZÖ}×óÉ:¸Ëí̆®¼¨¬ ˆ5 k8WF€_ý¬ &ÓzûçÜp Rßüfó«Éï–šf½Ÿæ'¨—ݼlV3g;6ÝÅtg‚G¨××»ËGF+\”Á~Ñ ­èÄgZÇl:«}ôÛ¹Oö£Æ¢ sdKàÜe¬ú6²ÝŸqI¾Š=" ½¼Áÿì4Šm½û¯:áý:òuä-wÙÍ·ªG¿T~‹¶m°f ©'ó +/–g,Û fI¦ wÇÉ›x¥Ê'•ñ~s kÔg6ölF#m4»/z ™Â¼jG;g¬Šf½‰4ú¯–SC/zÈ=˜ÕœÆ ±«¸â3x>¸ ÷ϋNj–&¯*AÆ*&$¨J.F¢ •J“·dqtM:õqªà·©ÄØrÔúL¦O¬®*õ…õèCý…4âFúÿ±ª‚x<|ùU*=P%¹‡:ZéôFe·õÌ´2W»úÉKò (:—m/Bû/,PýWÿ¿^ªê!—`ü•âê0ì¸ó¨Ï \n5‹ô»­$fþÀ¬P–6]ž¿z—\SsÔbÐë5ò†Ùl–P¡—44=écÔØ­)æX‡Úoãd¨16ô«Ã¨¦ƒÃkï`¬æf(Yäzæ;ßÌ1ºO~%^©wm½ýÛ”·k/ªº,OضFw†+æsð–«Œû‚ehÉFûôªt‹ë‹&Õ½jS#­™¿³VÂðªæ;¿(Ï0š/»×yüª9ÖÛvü©mN0û-ÃX÷ž½ÝhN¹ò«Á-è•‘ÒxµÉ09˜Ï§äì‹éUžþ4 6Y.æ|à•3³éHfþ` £ÚyêUšÈ(=·™O…¡Æ¬wSü­ŽYû¹Kt¹ß€WÝz‚¿µªí0Á]×ÝQ ï=bâ|B+Ò¯DªòͰ&Ï»UM¼Öæ-x¿Ùš›¤ã÷g±òIô¯fŒU–Û`rû‚äW¿ºÖnŠÓúƒ»À¯îŠ}Ô·‹Í±£îwŸãk›å'ûeä©Èq«1 +ä 3£]…烓À]4jô^QÅѦÄá¬$Û­Ù€ž½âU<}WôÐØ`50gc0÷íê_¿úÆÍ”Fæ¬oî¿õÏø RÁÜëÇøá®µ¿Ã¼dæ»›]¿qv¾ýîÛ`/æ_<]؃#™k4™UzÚ3\ãÛo4j0q'ëã‚® ÜŸ¢ùÚøï\ŠoàWSR} ؃\ÌÁµîSð«v~6®ñ}ä8zå&[‘ú ?G^·­èIo‰½õ# ¡ž²-ç½ÛàNÙ@¤Þ˜Y£¡¤ŠÐzŠ«§fõ˜Í8‹™Í’ {p"qe‚ ñm| 2–ûåÎèÑëÈ\*K³œ9À¥ÔóIQ©$fÓdôXiò«RÔø-¯î—É(ÏPW4´¶Âz{;fòãŒYÍdµÚæÄ®’b*Ñ¥õq^„}ò)[ÿØõrigåwÈûf·YIô^ÒË´b͵$Œå ó8ðJmºŽ2̼jÚ¯`n§ÁFJ¥ÂN’©‡=Z#ú·QÝw-ä5’lwçëØí¶El%»Ùê¾ðXÏaà•æ;_5ç±ÇýKÛ𬜴G¤ˆÍ¢=Ø%r'ðJ9msÜVŠÔ'ïº üê æt·Àê}ÈÔ‹u–›a½ ¼ÒÓéTͼ‰YIþãŽa½VÃL›5?4Ðxña2Àô°÷Ú‡`Öƒ5û=zíŒrcÌÈX“KYS¸ ðê[êõU“ˆQÕÏ£¾àæÀ”‰Œ~Ð/o×óÁ¦ÀÎÚöeó!^ ‘µÑ/`>ì^Ñ:>&×gúOí( Áõ.j3ÍvÖ›ø=¥Zñ]óºžq’mE3~¾‡{°ðC±±ff1s+u<Qq´Ðnf“ê|Ì>\ãÕ3îN»NÀ«ä³ÖuðÓbïÍìÍfJl£û ¨YÃì‘oíÇ‘«Xµíq½EòøÕžV:Îg5Ž¢õUmKÏBçãÿÖèá=¸û0×±Î[aÞݬ‡Mw7øÕRiíSOf†46_û¶þ3Ôov­^MuMÀ¯Þ6sÜXêõiŶɿq÷g°³´4¥ÐüŒy¢žªk€×1Û¹úCë6dDç0’-è©<Ó܈ûsÕß.¾Àkžz‚Ï÷w2ß¹›lsÇ|UßÅÇÈD¢/º?Ülð«rxš‹àW]©¬¥Ï€Gª–yî3ºñi`´‰×“”Ã÷kH/ò"Õ ª ÄÔu´Kòì[щd£` wðm¹âwÊ‚èI؉éÌnÄzôcPˆçÀ('eDCdqÜ•w§ÐcBVU‚Ì'Ä£f÷ÅOUã\ŒþùFB¤ÒsU‘즯Y³!‡ %éãÊ!çQÿU-zïy‡„xt|2Ñ*X‘Æ\Ä,^3™ŸJ§*³¢23vŠÅ­×LòÌÒ¬S"î S=®ò´"‹“ßeÑúKŒÇ‹†õ‹þ¿*ÊìèDZ£Ñ[Ãå £Y³0ªÍ©'£u™ÓL:öÐæ,¿–ú ÙáGT·lÍX‚õòž¹Õ¬b 'Ö鄱Qc;YlŽ™Þ< $}Ìw¦;1t®”mFÑg5–a%؉zÚ°»e?\Uó¬×JQ»Ã à^q¯Í°y@Íý>!ÕÌvÛúW¿™ ò¶\¢Ý÷ƒ¶/‰g=ú?Á¯¶ØâÔëëd^‚=Ø”ùƒ›°¦~”¸“ÆèìÃ÷ÆlÊd|øëXQ Ðó»qçÚ°yéI5'ì6S‘15ÅL—`>3XƘNöûÚЖÖ9ôÚzÚqʟƃӔa†a—Í¥bÿ_X)ZÏëz E}¬OoïB>UU#î”·S¿}Œ¬ˆžre€W€vd¼è³À«ž2Þ•±µÌ°kÈQjÆÜ ¤èŽ~¾›õR5æw˜ü"—ª¡ÿjðªÐíW´ª+ýú«Ñ½Mø½Fî,¿ç¶uñÜ•œñMÜd÷øò^w½ßÓú8+ͱÃîsðºæQ9c?$FŸ³ª¦u·•&+IŠ{À³%¬L_Œqëã”N|Êbd¨'“Lõ¾Dæ{„5O‹óÙ²‰]úºø“A_V/þÑ5\ŠL+TmP$M—0Ÿ0ƒ±W®Ã) -ç}Z¸R\/"™3°,ãR›Å˜«bTfË¢*C"5eBV1j{å‰fwÙ‹q=(aýÁ±´;멾éÃ{Í«ê¼R,Òú΋¥M¼ýûæN³:Ôó.…ñWÅð¬ ÍaÓ—¸ÜE›w€]Ú?ݱ~SÌ0*è´„UÑ ¤â× Z÷¸^ß]’`÷™AŒðØjc6ß®"wzxµÙö4š{pÕü ¾d¬öÄ%y x³Ú¯¿H÷ÈZë©ÑÕ¼h a*ŽÝ Fð3ž³+ìÅ íÐh©Õrl\רÅæÅÔA/‡í½¦<ãz²M·àn<Ó0°ÆÀ«ÏŒV²¿ >³_O¨1_Çã)'o³Ñwª‰wì¢6~ê3”53Eór‹æ¥uaf—êÉTf½‰§€W‡¨‡º_¦Eߎ£õTQš›ño2s–›à*9´úÒñÓRzçÓ0Ïzb„‹ÓžÁÕ*U¥3‡¸×NY*‡–àYiúµBf“‡–'0RwòÚÌÂIaNON<7FñJÏ”“ãW +y…ŒJmÈP±=‹ñílEX¯>‰Þñ|Ì…JR‚±žñú8ÅX#£ £M‹¯ÊÒ W”‘båˆñ+BçÅcMC¼J¤7*Æz^%yõtîÍÀ9Òˆ·ãi%¡~{Ô$`Õ«ÌÇï[˜S|æ0^`aäWÛä¬Ybæ˜4~¾ŸiËúÎE5ÃÕl'æ$`µM0ŸšˆËÝ1ž¥Ìžq6“ʦ>“…gØJ]²©ì™ûDìýÀIíÍ-ökSÁn²ÚsK®9`»™RäW?ÊËbY‡â²±¯aßRÌÿVúFÖØ’Ôãêi¾°Õ©Ï@¼º;°4ã–0»z036À¦Ûƒ6vÇnᙂFÊ3çƒçí*S}?e>ðªšÎMð«1öS½t¸Mkaa½Œs˜†kgñ¬î$˜×Møf_ð½IòµT0ó¥/­¨iÉÖ´oÅßêxOíÁzöó9Fv¤Ü=árÝî[ê_eûòþe;mé l³$¢1ÚÿG¦õ×áßv¬²0xu«§3c‚£Mš¯ÓÀܔҪË73çðZ\ªþK£o}WùZu+3ßwÊý°¸–ûÂØ‘ ¥]jnˆsa7Õ7ûåKûQä¯ÈKV™Ã9dfÀ–¯B%„™X;•П/ñ®ëþlÅœ©(뤻ÁD؃G©dPxu¯; {p4lôæþ ·X±@ª›Ÿ`‡ýî?ôÛ¥ õf»6~³yöàx7Ìp_ 5¯»_ƒ=x–xª†æìw´ÅUC´-={š‰0Œú M€c÷ÀöoŒöiÌÿ¾àj`4Ãa—ÿÑ9_˯F ÿsõÁ¯~uŠÿÛÜÛ¾‚oèU ñ\ä°Kôƒ­ž¯ß#OZU¾¨‚~Š֪υx¿ö…vÊ÷“p‡æfž*•xÐ £žª•AÝç+•pÍÅŒM‰{•Ò‰!*÷·W¤å—(¡r&³vÓX'ƒñXz‡ZŒ ýùŠ>¹Ö¬¯Áz°©<Ë µ'ž3¦óÛ'D ÷»d[ÁìŒtÀUß*ŒÀ÷;b´aöIc|Z+«Ÿ£žÌ ´VÒDúBt1§"°ûÚqj¶Á³” Õ”´…O—";é‰g.ÁsÁ’ñì¾0º=•üB×N>SXã&3~n˜BßZ=Ú²j÷iµ›:Á¼ 4èʘŒE㉴nê ðÀ_qÝaô–Ü…ÖôA+¿Àÿ-˜ct°º ØÜ6*CT–»¢gƒ©nOPEVIU—áû¹áîeùÄìt—ügþ •eöɱ²àW[å5»+ò}ä!«(8 vcOs s㪢%Ê¥FaUk­‹ÎÜ›Wcÿϧ>ÃãÀÕ)r íÖÊWdhð°»,¦cvòGÜ^ÑÝ,õÍàT?ù‡ü^ü|;~¾Þõöw˜7Í-®¯à×€_åÊHóœû1Ø”®†^è‚Ý£ú ëyMÇ;R_ôz´¥&•§ÇM®ÅH¨†ády<¸üÊSD­)]Ì·ðÇ›žu§ÿÍiôí°É2¾¾Ÿˆï\Œ¼+yŠ­Õ·\ÎDN؆Ìî‚çøŠê¥yØ{Ç1Ϻ.c`Fæ‰æõäš«.ªc1>~>˜gWEgg¦H7?À×c|ÒVYýx¥˜P¶ñ"ü›B߸FOd3þ(ˆ»‹ÄihÑ ìñeèmÊ "DÕžgWRŽu.C+P=W¥Èm’“‘ÏÔj‡ˆxôÉçÒ¦l©15rè 10›>ªâŒËŒÇ_PU4due‰WžõKJX‰+lQJ¯´Î[}ÚÉ<Ñ,AÊd»2ã>+EúDz­þW{0 ÏJ¤çN1¿5Üý¥ÁfªþWOömÓ9ËÅ0?ßVæKž|Œ±}ªQ›ÅÛC`OzF0Õ€õ¼Y—å±.ã;¼}(Û={q]3†±Xuä/Xœ#ÈuïÂÚROQ:sþ1w²va‚ì°ÛM¶]O»ï'ÌãŶ9ãÛý cç-Ý4|,ÉÔ“9-½"]" sÕß|oÛG Y/u9ì¦,Ø\iÀâXß3°,ó_ãP+~?Vr9ð­½VÚÄÜ«v¥)dœå%y(˜N3 oÓÔîÇk ƹsôý zv¨5—+SÿéMp¯Û°ŽË£måw)kæÐ ®5ã+eò1—f“_ÕA{^’|{}›§jM°3Ýcn¿r“ïsýÇvzmöùæ@D+¤¾ƒ'ÐÈÁŽÌm†±R5Ñ÷`j y0_ãÞ5ZókàF •ê!ÂS‡§:½š7G_†¯4:¡ª+åû»ÑîyùÞìp¿ùé±3A»ÄL‹wù1µ÷ÈötäÈç¶5ØÄ yÈŒ ~{+ÖUTýƒ‘¸§F4feëÍ@£|žŠ>Š'‡é¸_/æã¬sß7#p•þ%àÕ%w½Ô3Ÿûñþ‚Þ¯ÅÏwúy~ºëçï6'Ìb·öàýN#ì®1GW;X}¨³T3߀-5gv^°óö´ŒàïXÖ­‚öl’Ý¢U›T¿ý`ðWl´šÍApº$ßÄ«†Eš¯âïö8ÍC{Àý⫯¡ÿÏFŽÓ´^jUôòo‘çl#¬0µ¬a쵂Gæ­FWµÃ¼OÅÎÑ ;ØHršÖîF~Q ³£õ&´ÞAe«ºÇj¹ •É~¨oɳ2*z%:•çoU¥­YŽk#^µÅøjL‚žéŸÍ˜j>Û!ÿ«Ô ¬$¬2‘NÿP ñª,+¡fqçÑ2 Y‘ª(¥PûXUµòyÆWœ±êyŒ/ÆÑVÔS.ÊÑ4žÌ…*X9D—’qt,”PÏ&‰ˆ“D{°4ïÖðÊ”Œ¸²‚zÞ›2b"‰qe¨ £íYHè»Pd,{j·;FZ•ŒçIw-ÂÚKcöÒfFQzÆP55à9Šr3­Í·ô»}Èü‹úô±ï”Ìn³šõhúÀ2kBý«dÌÐVæYÓŽ}ØY&›Ë˜%z‚Ñ«¨­éÍgn$‰&bÒ×·L­>fšêK¬—"ö3…ïï°ÆæÙµÔf?'5Í:Û’g‘ƒ_òV1þ©9&VY癩©kÔšîe>°½#9¬ºJVJšQ½>­\~Ñ í*‡\/O3#·¼æÈKEó6õ¯Ê˜KÁ^{—Qå9ز9XˆQ*CÌݦZëΧ˜S˜£÷á›ÝY t- ºÌÑ»€oÕÄ+1äg)4s±Û¶À샱QF’ƒoR…R-ÒRö ð«<\akô-WÂívÕÖ3Y>ӵÀ@õ\/[ÛlŽ´Á:| L¶'îÕ‹›ÐãÍð¿F0|‹–§\+‡MbF÷O`:êo¯´¼+ùk ruVý¾öà`·%¨ ì+㮸n {F>4oº?ýÀØÇàWË̘ØE‰•÷µÌ>ùоy/ò>ðª¦\”—ÍDÌ =S¥¼›˜s³ -­ç¬ÌÓÈYýY}] Ñëï`-_‹^3Ö¸SÁlð«åÒÛ?ãðÜ ôÑûÔë{Ùo…m¸Ú÷ó“];¿Ä¼ofºiî¿Ý]ÅßÕsçƒÍ°¬ÕmjέTýß ŒCÕâÛ³Âä0¼«z=ÃÁ¯63¾¡fÞæàðJ5.–úo\€Ý@=j—] ›?çšjn¶{ÃWòüXüüsämð+Õg¨d-}Ë6­ãÖóà4ãÌ4ž¡ Uzêcn«Fÿ‹2•«7Ÿg¿È=Ty+ìO-«û¤ªÝŸ'­ÛøV´èvËÀ«)<ñª†•¶93IÌRÉØQÍJì‡u’#¡FVúÞK2C±8c¿Ó¸‚Kð{IlC=FÆë9ZNÜßžFO{}2²0n³"ãEÕ¦+EÍ­°†i:«ÿdüŸ§==~Í´xÅúlúáµZEˆV©ÌwN¤_]µ?Â,İN2Ù‰Æç7ä5•ƒ¥’G–bLiñx…{Ï÷Ë22Ô¿ ȱBÑ"¯âIWØCKåºæY;Œ¯ž#vƪ-`¾s1¬¾£ÒÉ|Mä>Z"-ŒÆŠ¬•¨}Õ,bœy_±¦ öPÅâ:°Æž5Ýùù^²Øœ¿J#›/ÍÌV j‡ý10cé}[‹¹Ü‰ùΩXOÅpÍDî-öShWZ}ê/€WslO£ŸWͯX·Q«=ù»”‹¼+Å­öÙ2!R=ÒÈ(#îd~¶# ™Ûxð0Á<‡¾¹³ù„<Œ§ÓƒFXïÏ`¶4ÀøÀÌ®l>ÆZ® ötð„½Õ”E_Ü.çeEp«*ªË-féÁ|g­”õ3Åɦ?¹UvòXÏëS9I{3àÕd¼*onf>Îí¬òÜk'ê*œéOŠÃObDʬè1çÜ&wH£àLi_Áb}œ®•-aFšáŽbgè+OÙUg´ÿZ\£-VNg0ߟ±³ À<ŽßOÃ'‹3Z›JWÙmXKÑ‹»©ß^ ×Emܺ _- ñÙn°;,˜î/ÿ¯5h~y(vÜý틃_m“ìð«G­jvM“'ÍHŒcU¬¡JàŠZ/k0o?ê!jÓ=´ÃóÁæ¸óó°œõ/W&·¸/‚yÁTà[{ÜmñgܘŠ^Ðú83™Ï©z20.Û±§6ä>1SV§éoo.«ügî?0¬ÉÓß]¿Ôᚣ­›Ü_Ηõ¿õ=ó§Zë]%}ζ£žŒêZ}Š9¢¾¸•¬ÚÕVRƒº'Ðqsæ´âB#úÛUã|¾7›öÓz©gŸŒg¬åéàkP¯/ {å¤è êÉd«ò;ã¯Òx>Ø€Yë d$zBQ–«¿<0s®”`üe*£<3ù&ÏéRÈMʳn\IÚ_©¬îjͨƄ֤ÑhˆRd¡a´i.5ýr%ÔËj@½œDr­”¸%˜L¦V’ü*)î§ õNC¼J`œy6½Áéôe¥Ó¾Ì$î䢯*“Õyò¸‚8^eÐÒËŠcT9*4xj†þö0G+Û‡‘¦°æ–ÈÞ8Ï»cÞBÂúƒMcÑO/Ià•öáGý™`IŠ«wË%ó”ÙD>Ó«SµÛ’h³÷5¯ë”ku^ýhÆÑ¢í…uÜ6’ÚhÕ¤‘IÇûjßÍZzSùì+WO˜0N~§}ܤÛ{­ê9ü„}÷6ÛžZ—Ì÷XgŒžáž—üÈRÖªmþµLŠTŠ´7Ê`;˜ó¶Oœk݉?ÉæY)ÁÜà0‡û²6B̰×ðªfÜ>¬äR°5‹¡ˆ¹N!z±*Æ|fý<É`Ö…©‡;lb–CKÛâ]ÕoŸÜ£-žrt°Ì}, &â*üëî ÚÍ•ªæ3_üjß+uÌ2?ÚÏwýRó޹ÞÍrÝý÷¯É‘Þæ°û/؃Y¤ö` sÁ ¦_]Ue¦S#OÏ:ƒëÕ£ºØdŒOÏ >v¿±×¶¯þri~fíUWÞßë¿w]™?xÖaEàUùŽõÇ[­±J®F©µúr{*OWe|»rשxG#š`ÏÚ¯õ€é'×l¯ÌÖhÍgPËm4³‡£“¹æÇJm_è;Ò‹½UFF7F'Ð].°ŒñW‰Ì†D¸2¢‰˜Å%‰uy@»Œ ÏþÊÐ Vœ×J¦w)#R“ñsÿÊÅßÕZ„…•Áx€ª7ê)OÅ™ÜxN_}æ,ÇhM&2¦!…ÞkÕÙK£ú{ãÛÓ%)U_œ¨¥‘R¡BMQê_•$K$â´§Ær ½aÅé+ ëjë5þ*àù`YúÛcÄÊúÚC{Éø={˃˜[ûâ¾´-ݦ¼~G©bòM¶á&yûýÄ“03çJG£~¾»ä²y 6’ž`ô0KÆñ> d°y›þ«4¬šY°𔠻̂3šã¢ Oå•ÔÂìÔP 4Á¾ˆµ =¿Õ>oRì=ô_}е·Âvä™à%ó›¼"ßS“ù¢‰¼/)V±ë7ð«àWúÝNæSàU-£ñ¸êMÉ0{Ñâ‘àuËÜ­/ú«9æ³z ›à™·cÝ–7ïb%k½ÔsÁ{›©Qœ+EMóàv—‘ÙæI3Ìn7£õ/ØÜrØ’Z5böÖ‘°¸´o¬Í?É8*Èè«O¥œ™)Š4 1› ȯr±W¡¼øU1Æ_UÀþ97zöà÷¨«) ¼zÃŽT.èrl3—úW‚Äótgá:Z¸­ñº‡|)¿â#0‹”ñLEÏkNÕ Æ·×b-Ïž@ϵd$ŠW‡ƒkÝþ@}M…îw×ÜMt/ÉÃf«»Åéß :Ø{ÍM±÷]QàU ³]Þ¿ºy̪æü\yÂ,5ªóÛ×Z€ñ«Œuõ ã¯ZI%bóThj€V7ÔÃŒ'Ÿ¼: ¼}²ƒÞíó?º9˜ ¿'¾ñ+üNì…wùkýB×ÑßkÞ4Ó€£ƒü}î̲ka­þl•¬ÚÀ\5š-©Z35n¶ fQ+ô‰*MkõÞuŒ~Ÿ"€WWÐõ l½(piˆüé Á¯~tªó¼Ûð9¾ºŽg<yËýíF؆À…•â£ÏÛ0ü|ê3t•a¸vÖF`{`æÓƒñ/péÉ3sEUØoǺ­„} ú ªö¡YOKù¸=8L–DºL·Ýé™Z;ð«lÿ®†k¸|›cî‹heƒ#@¦ÑØAº¯š1‡ñ9ðጜÅo†âÎ3¨ß¿IÇÜoÉ*Ÿ Yøc u "æb؃£ÜÆ f~MwÅ5pSÜËrмï&ûÖ±w‚6v•¹>öŽ‹År€Wûåû~äBä=°Œ¦’ k‚é…ùׯT ¢"ðú!¼ª´(Äz½ï¢åMÀ9ja;‚?Ó©™?-¸×ý, Æ ¿›ûgÆÌÆ\øÕ7öïúýCÒÅÜíGù9®­_iŽ›YÔoßì´"n ó´»<‚ùš­UàÁ¯®eÀk°¾4/I£çß'/ Ð?#1Ÿ‚O€ËhU§àŸà_V¥ØãϺ¢¾„Ÿ®d`ußE}†&²Ó½ãó|3?OõCäU÷ƒ›bµ"à ‰D_°ÊUcxlÌ£¼ß;p+V §|[FÐ ®žX/5®ŸÎsóµÒÄ>Ǽ¬áÛúöôÝ/ý¢‡¢èë©„¾¸ßHŠçãŒÆóiz>XFBåbÍ?®M´H•PÍ´[Iuš2q]¬Üô€õ¬ct»±¯˜ŽlÏzûìÁ•Ôi?%õÌlÛÏ(7ûÇü€•÷/1ó’¼+©Ä«_dj¤8U*íÁwl‡H%r­-¸jŠy@4»» °yó«ËaÖÝ!¯cwk€5½ŸJ3obÑÛæRð¡]dt<Ji³:؈ö–á&°7؃FãéÎÊWÀ²èw]ƒ°fî¤_´ìz  $b43 üjæípžBF,UשLK¦*ð#Õ~`Na& ‘Ñ®˜;èvaž¶6¾Œ?n‡àŠý\ªÍ4ë#Íñ“`¦]Nš?Øk~0Wàj¬ÕŽ]¸&Ðp!þöÆû0÷àO!Öø2¼ó¶×ÝâèëàWû‚:ª8 먹»Î=-{ÍA7Éψ šÙ¹fPì„ €W ÌÃò¦ý<òJä¨my·Z™™¦ Ÿ<ŸÕxªáù_VÖb–XÌŒ%ä’`jÍÏåV´F˜Ž^}¬‡=¸DšúWÜvÿ¡›"5Í9¬Þýq»ÆB?Æ_çúú;Ía3ßÝä¯~ÇNÕxõS°—'±ÀÉ~0ª¡Ú•9IÓqU¶W­†1è­?ŒffôÖÜ$¸_°´ͱNò•üÍhYÄçûÕþ‚k ¼Á}‰W ý4|æL䘻ê¦Ù*¸×"1Ñg€Ô¡ÿê¹L}sìo Û[õEKaUt’—Á¥”wä3﫱£ö*eéÊD6J_ûdt$}Ôcå t2–}Ò?º6:Q´²iFþfÜ3‰ù8MÑÃxJÞAJbþà}´)m?¦)¶ï¶WM)»šõq¾Ã[n¯¡ÄàÕò }h—¥h且µ%ó0%R$RÛ(w1¯Ú®‘RŒÑZþáÍF\S+÷®2iÕd¡ÙLÿ•Æ@î•U’iÞ¡–m¢ñîúÛ«Ð<,Çó ‘ñ¦ºaŸEªÉy؃K°Ö5þY+‘öd……ÆøéÚ1™5ÿþÁ*úx5•øæ`æV‹×›˜†‘©ÂSï§$ݾj¾Åu&ÈŠèÇÀ«‡Ü ˜í­MŸ{p,Ú:Õý`2Íý¤úœ'O‹±ö»à6ƒ4ªûf¼>~9ˆ5ág/Õl&æVÖK­OÌÅ~ñO´nÂÑ#ÁH· üjƒT¿êíf¹'åi³ÝðÇb¯­ì3:öûÍúfæ œ²ç"¯FNØf赕ò²™f”Iõü›Ü®õ÷(ss[0VciË1wcŒÃ~÷ žoæéð`›C£Ðß}ýkn›?í®“ÆÀ«nþgÔï†=t«ï».þìzsÝhÑ÷7v‰kÍ÷K°óUÏY››+FUb5Ž]kötÀœmTl…~®ŽO¨Çq+FWó¥ª`Ö>uhE?æ¿tÖ×ð3Ñ_E€PýÏNÙÙN÷‰¯ê›ú‰˜#o»ÿÜÛ£z§\мK8SÕpÕï相5ý«úW7áýûXQW£fµõâZ¨¤, ¿*ŠõÒÎ>,a½Ô1°z›ÑÚ; ½¢{ñ~Qúꛚ›¨¼¢5ûêáªe¹w«òj\YóU»ï|³,OìŠÓ^Iây^2#ÆcôcWÅw²é /EK/‹¨“Í졲ÌìI¡…[ššõfP«mW="PX55îËÏ¢ÞB:YSqÆ_%¥Š’Ù#.Uf­‹¢lC ò°"ı†¬N-KýÒDbZyI%^©íWï+« ˜‹X”˜U„Vl:‘(sé ö䇊Wíè¿R;®†Ég=úD®ºöæ'2ͱs/«,Ö3:jž1ÛÏÐVB-Æ‹j,Ä ð®6|ÚÀ®ã¦¥hžãäg+Í|çö&ÇŒä󄹸7Ò®_%Ùö]3m[cÿ5å€Wê[{Oê˜é¶?õ÷.›ßÀ3~3iŒsH• «qÂ?ËèHZ¤!¹_àUëH¾ÑH‘ý˜Ybvˆª:vÆ<‚•ÔE4*ánì‰Zñ¸ž|“T4‡˜%ZÌü¼‡õZȈ̪æî`³<›¦vš}Òh¤çÜù.ìßåXÏ«fÐ"jZö„¥ú%¬»þÿ,ù`‘q½’ܾ3þÖ@–Ç¿€$OKž}ܵ<¸ç-ÑO\†{Ð=‹Ou1Y>׿f'aÞÏsï›àWíqß“Ôo_È(Ñvè¹±Xpí>ò5ÖÑpVI¶h¾sC°Êφh—Æ·wÛNíñ<™= rëƒê@óŠîw×à ¿zÛ¬:l=4¿š{Â]À nŒ~¹hÏGŽE>Àª­ì{DOJÔñ”S€I•±þÖÂT•#­v¸U–¢7ú`Õ>€×#áï²bO™Üí>VSð‰.þ9·ÏŸqÓÑÇ¿ùAþ¬ÓƒC˜•~´¿Éuö÷š7Xob¸ßæþ2ådðêßà~Ø|µU-lwî2s¬feµ¢ÓMÑ5xÞ1 ãsü|ðzy(pî?Œ{}9€{õõ¼Ö<+êK¯~rM´;À¯Êû&~$ðê×Èî7ÃjÜï*¹ÌüAÕU…þÓXyª3ϧ·M°.µ·±fJqò"ÍWÿvŽõz¬7J-ûTôz"‹ê!÷ñÍéïzPúDߌŽç¹~<×"®ÚôV-êõ%ó䬇ÜKö¦j=!.Ï,L&C kÛ„ukÉTÈZ3IŒGÈ¥í¨öK9¼ŸDßzOø*ÑëUתB\Ó8„ Œq5"Kj\‹!=ž«æü¨ÏL™S•xÌC câSÉ‘J㛈WEi¦I¨!XcVÞ÷b<Pmž"ì•2ô†i=úDÆ&¦ÓßžN;0¾=™önŒ–g[yœv?ñ1 ,Cõ¯ôy;¯Ê›^ÄÎëÀfº™Ó´Z¿Â§o—¾F}iÛå3óìAEñþ’cš©ª>_O¦™gMkQ­Ñ2Ä|nº•ûëy°HÏ>ëih3š~­{'Ýßž€Yœcß4íhùî±ÿ™òv•U{ó'ŒãL;ÔèYjÔþ.ïË£y£g$)ò–dÚ<+œÉŒ4¥NrOóšmɦ~7øÈ¿x6UÙn#»ÐîÁŒ8o™ø4ž]}J`ͧš·è-.nŒ;io1•©²—i® Và§îÒß4²Kì^£g¶Ÿánëef‚æÕêyãJ榫¾èw˜ŸªÏþ/úês) ~Õ÷Z„Ϩb¤ŽÉ TÕ5ò‚T°'ÍY|w¬ªx»÷€ûì!Ûçù¯íbˆwem†ÙшöèÑ¡¬‚Ú³ù. pŒá|ð‹³ÌwnŠ98\n:ã¯2Ìb¼£ºòÓ±¢[‹ÆÙÖÀ ɇ=øxÐÛmj¢÷«ºˆà†'šSnï{7hio6·Ä^r—|q_Í<"ïÚ3‘#ŸY=…K3šY°ñ YpxEM¬¿GY‘§~®„²¾º¦ZÅxòþÌ@‹ËÊœà~ØtË­HÕÝ?ávÀ6›#ÍÌßÙÿæù]Òìòým®Ÿßd>2óXobìÁÒÒѼ¼Úƒ«WQícsÞŒ¢ÚÖ(ô†ÖlÉØ‰¬GX†q¢w#Úaþ6~o RÜž«nò§\\ZYPÔWô÷ø‹N³¥¸ÏÁ¶:zXªr%òŠ»ìn°ZÇåù-ò‚mMFÓ;ü·<+©ˆv4ÅÔœªà³–ù8úŒÄSÌ)ÀÓ—Âx+ÏÙ"Uí«À%ÕÅ'ÀWÉî‡=ø2ëM¨z]+s;úN÷új¸ÊHF£k@WŒv zÎUkt.k£†ù2¹´XR™!˜M>¤÷-`„BW{)âMr›× ãÔÓxò§˜^žjÆÅxª™É˜«âdM «Ü¨ß¹ >U„Tžö c|{ícÍÍIŽç:‡55þ*™;è¾s-ÔŽxcÞ„‘YíÀÑË›®äxS±s·7_°¿Â§o‘î´ËT¯ï³Ã§ÿ<Ñ´ÀØ(îÕ—ÌK@/=Y!½ÍYØ)Ìý –Ôý—Rß”^eÒ®¿ óhs–J®=N~UTvÙ"6ËÞIýö¥…Ùf»e”›Uµ…zȧ$9r6•î$ßɘHø•òâ¾æ1Û0’K{ðA̬¨Ù~ÕýÖì@ì¬ZåXžÀzUªûa•2ϱÞcº‰¸oílàU  Ð·rõ¯Ô¬mçÂ,‰÷sÚHŸ•žåw³­áYa_9†v\Ïü²ñ›/¥,VU7ôëÆ3´&_žI¿~SÜùyàóÇèÛòÀšeÑãàWûÜe¬ìö¦Àgû³vúlžëj‹›]‘þÔgèÜ[€UÙ׺¬OOñç'¿‘‹X©mxv?wè5•eVÐ{Õ+f6Vç·xÎúTZ=tr{W륶² 7Á=&GÌVW$vÖ¿´¿|>vÌeÇ*Â<$ŸÙï"g#ßÚ¶¸Þ­ò~Um©¶s úrˆì^Õ@[ªµ61G§/žz^ —#òZ¥‘Â`~ÜŒFh½‰­þ[w=v±_};ÿ‹ÿÐ?€}i™ãº>þó´Yâ®w=ýf÷§¢¯~ öâÙ ð¼-W×0c(ãÚP¿f*þjs:U…±Õ§§È® üJO'„=¿Z Hô~?ëZáç­°+Á.UMös‘×WÓ­F“-z±é WEÆó¬èX€QÐóAí‘dÖ$ÚWz’¦•-µNa:yÎhÌ‘±d ›¥¡}1:…¼h˜ B7áyúÒ9º3:ŽeT_t m$åTMÐwyÌF)Þ]×C(ƒ±¿•^¨4"L¨S"®öRŒ8P• K“#•«¬xvtI<Ö¦)M¬†'Êæ _=à9æ/צ>CR<ª=?%ñJ™D·°Êa!£+2$¬GŸJ.¤×/¯Q<~.Y” 5©ï—÷r•#¿Ò^ùŸVC@U?}¦ýWžþ«X¼nN&Ÿ* +i=Æz?9[ìB­ö¡q¤ìÁÞÖ›øP:ƒ_)ï;µ¸H:°6Í&9mŽšÝŒqê-%L]¬ÈPv–9À˜ö4àÒ(óµÜÓ1»ÇJu3„XÙ ü*Û #C\±mM b`,yö3ìÝÚâÝöìÁUVùدRh6ÛFw‰«æ 싨ú™\¶ïJ 5gÎ˨Hz¤9õº™7mƒHæ>oKú³© UX¶âiÕV*‡6¬¿Ù ¶¯< Û¡¬y…™%Ìùà{ð ­¯{Ðg2ìÁB¬ÈL¶e÷ì)sÏ7®¢ñW=0›îA_«÷÷}ù}¤™YbæÈ'¸ªê%7‘åx ŒBQë¤}Yå1©l¢oó`;Þ}×¥Á¼ÜkeÊÁRùÄÎW¬s•l¾¹'Òóè=ð¦Ñà‹Áš¡ç†£õmðz&îú=Ö‹ÆkjnžâUôÎ|V½¯ÿGá~€ Uç|½'út0É=ÌzôõÀ6z»Éî|hNºƒþ¢ÿ0hcWš“±.'VÕ·4ËIûaä\ä+«jð©æ°™fzbmµÅÓL^UÕ³ÒXÕfèË:r‡,b z àUSê!JæSFn vsÖƒ1ÒÝüón3°â<í9_ËŸñ¯:˜M~”_ázùæmð«Ñn4ìÁ«`ôCͳîb°›uÑ:¯® gÕÓ2ç Ïô¬h6zxœh–ò@àºúÛ›SŸkšì¿ÓÌìð©"¾²_…B­ó?8åf÷¯ÊE– wµ¾óU7Ùæ²ÞÄ¥ÈQð« >ñ(ìUˆË0?&³"‘ò«A@ìkéåÉ/j„§ÏàÊŸÁøàP—²™=Im¥a2Êð¨â²Oº‚_ åKpâÊô#ÕÄUaV)‡ÉÁÚYÍ ›Æ3Ì'sI¢Þy–„Z|ÙÜýé;Êc†Eé¸_=7®zœH=™,ê”*zÕ ¦_¨òYþöD~¾&«£”bL Úš%è?+ǬjlM½èaÕyõŒWçižbT‘+þð,j(fÄ=lyÄFG÷rdwò¨²¬Ð,*¡–ŒFÍ—¢WKaðYø›B¾÷ ÷üDúÛëÐÔoÎÂÞÝÆ|CŸ’Ænß.®gëäì¾mFm×®XÁõsR W˜¼jE]/Xf/â:Ьƒ´Î±ÀÞí {3ÕLdlÀìVEÅöÕRÆž0èÜmÍ·k¬î ßIe³Ìöà™àsQ^•KÌüL~²¯KÖT=-#¥"Ur¼®æ­¼b̸¿0s³éHbžje—ØñžÅ,ÓÀ›làU Ì¿4cÝgöVØ}äfqæá` FpÖK9{ƒ}+§†ü,_ƒ{­FOVeüUgÌÞtô^9ŠßÍ ¾¤Æ3|+å°ªz°ZË4Úƒ¹˜Z«š¨/è%©d¿Eßj”ö-Ñ÷]²Ûï~×\S§û÷¬VéªYožôD{Ž¡åƒ¨uÐ÷Ü€= p)ÌÇù ,¢ DíAÍ(l,ÅŒ*9ëL¹ë¬#mæ“®»[£¯ýÜãA9àU!øÕ@7Ö=Žýç%wß{;h~5+¶ß€_=-ìבWÁ¯šáŸ®-0ñ#1óæ£5 Àq6²^jôTp®y˜Ý˜¡Y–Ò‹¬çÕ=´8Øå~ î ÆÓºø×܃ÀбÒÄœñmýiÿŽß¼ZçGøW÷˜}æF7 üj«ûÇ”Å.xÒvaLJâY:›ÌÆ §®¹èßLôÑ0ªµÅˆm‘ýÔHnŠ9¬ü*À.ÚYžFþíjù;0û“€Pü¯àW-e§û—÷]ý,ôÙ©ÈQ÷› ¼ªˆ'üö`WÕT®áJ® K9-Ðõ½A íkÑQ\we‚ä[2‚àIàÕSŒo/¡Š‡°+JX߯.c@’‡Ùl><ŸË£F}.ñ*<L!ÇI%š¤Ð·_–ª.eèƒÏ¢·ý6cú¸‹ó}UscMsèy/KÔÈF¯ð»‰ôY%JX5•Ù}I´25’¡ùW*9e1"LŒü2T«*¯·ÖKÍ¢—8¨VŒÑô¹äQéÔÎ)¯7QžuyTO¦8ùT,/*G¡ÿjzóúßSð#Œ›~<ÀTÁª>±ä i>¡–ìgܽ[˜¸Â£rʼ`vñ|p ä¯®e¬EU™j^©íÜV›çLCúÕ£PÅ´b_ÕÃ>’ÈøöD Æ|î6~~‘dÛÀÁô)7Û ¦2ëy“+À«;m_ò%±çÁb~3ÅéOó‘#Rœõ¼NÉHJ$Ÿvbó¢­)i´¿6`†ÿ «°p¢#˜Ôƒ˜KÝé©Ú ‡€90ïö詼y}ZC2ÌÏÁÇX¯ªn1ؼ ¸‹Ì¼“én'Ñß^ ýð‰¬b–¼úL4æ|9zµP䘜‚ÕÇÕ¯ƒ¾”ŠfæxcêT"NVÀl«Jëzàwö]óÖ×(¹ö`I·ËmÑ3?“ã+ø£öZôÌ,÷œ)c¶FúáªGO½d!®Ó mZ‹+kžï=ØE~b k©Å¬çÕ–í2´©>VÍm<ýèT³²œÌ„=ØÛm êá5•I¸AîyÛv½}ÓØkÀ«EæÞØ“.%Öxõœ·_E¾ˆ¼m[`%> ‡Í\Óí¿è8 =§ýô,×Êñj‡ ÐÍoŠý@³´^•×D3·+ÈÜ`ƒû6X ¾wöO»íþ´›Š5ú‡ïî/ûWüCØi6û¡þz×üês“冸-°³eÐô÷`3ž%wîC¼jD=dåWm¨ÏpþBWÅ«ÑÀÐø„êbÌíA¢û½ÖIî÷§\š¯ê5O*Íçûûü§êYÛÜgèóÖþ&ôØ™ÈkîŠf5{ê6ù‡•4¦²fú׌1Óê,Í0+š¢wµ²%ìv`S2£ˆ4Þa(=Fu0çs1ÞºÏÞ+uíÑèžÚ –A~¬oɬ½íÒ?z8:•þö0ƒùÔëKaÇžô=•`ýÁ›1^”öàTz¸ˆ 9Œ¦Ì&›J%“SžS‹$hÙ”f>Nóq ¨ÖY–g‚Õâu–Søs>ãÛÕ·Þ€±)ôA%JXq§8­ÏP>‰~³r’FÜ k¦Ðw]ŠõÃ3ãUäKó[!vÕWO [¡ñd•1bôÃçCý«|F[8j8xÞ¹ñªmkµãÚbFM•ñsÌCéFDµîÀ‡ò¦ÕjæÉ©g¾"Š¿‹ù9Oºí§½òŽy üJµ¿†ÂŠjÉ|gR]h6›6Ä·ŽZ%?ësõÕLTÓ•ÏÖF*™¬¸¿}fDwÌñ¢Ìñ©c?2ýÙ·ìS-ÏpUš™[í5<¼b.Èa9c´7?^–Læ;Ÿ–þ‘r‘*F™r/ó¸­)o”ރ뫿=›ÕévÀŽëÃØ ÚÀ«G0‹ºâçýø¹œyƒ*geÍÅà¨]ŽRó¿„Y,çIÍPÓÙŽ°=áûH¹X5ßYt°h5Õ$;˰QµPËeænd¯úãû‹¨"Óó"x¦šñm©ÏÂúÎÔ?}ÛUpûÜÏz6or}¡ËÎK˜äšÙdàÕ`|ÿcÎá%¢q›€˜Ý¨ß¾ ÷?Ä ô*ƒÕ±œùƒ Ę%¸V̾[¨¥sŒ£6Ú\UGŸ †ºý°ï’|WÞ/sãÝKrÜrG|JìHÐ xõB,ÝûXsßÈÓöläÏÈûXµupõ§ÌÓOÒzÈ‹ÐOƒÑ«aýÁê¬&}#ON›Py¸¼?7 UW¹ï‚5Á8°…îþ˜ÛéÏ»iÒÔøXcocGý!`×z?Ú/tÃýZ³ÆÜâF¸aÀ«ßÐëSÌqw9¸¼¶ P£¿I¶C©'£uZçáêÝðjðH• ËcMí¿=2-#û‚4gŒbÚãþ'—è›ø»ð™,Ÿí÷û?€Wíd—»~Õ ö`Cy'òãô칉>lc|ëãjå8í¨\ÖKíL„NF/Ì#^• ‚F¡õ¡W§>ú=¼WQã؃/ƒG)æ –©~¾oKßÓ>©}):‰žñBim4ß(‘x å$¬ùÐ÷Èá‰_õlKÅ=L©ÌYL£eZ[ºÎ«ÐOUœë73^[5õ¶ª1‡'v_9ÚƒÅù™Š¬ ˜@ôi„g*JÄJÛƒ̢ɢE—L—ɨ‹¾ £F=ãÕ«RGT³þJP]0ô±gaÞÆOÝʳfY1-¶a@]5\×Åc­’Åå©F“I‘žðÂjÞJÞV«WãkÔ3ßL›Êñš\Óä þçÄ­¥0_z“·<{ðEpv=m$‰FcŒ4?¨9˜û‹¦ ??Z˜¯±k/vÆXW6ÝÙÞ@‡¬d‰í˜ 0Ó´}·Jið«Ü6ÚË&ÓÞc“ÏI7؃½ŒZÌ¿£-ïÉj˼'9‘Á¯o…=˜©O]÷¾f·­©lŠ3®u9¬Õƒ™Yé˜Ýñu<éXÀ[hÄìË¿ª©&Í´sa÷UŠ^•…Áíèë)2üj±=L~1'p÷blZPQ}úëµn =ÅhÄO0²/𪌙€ÿkãùf¯4žnœT¡ÖyUyBòìÌÇ!«¢'À¯^5ËÈÁÚ9KÿÕL7Ø&˜]‘!Œgh lšOïr‹¸êBG üd´è<}TÕ€Wê“ì©uÌÍÔ¶m€½y^«^_cÌŽj2ŸùƒÏuñÙš.ÙßàÆ¹Ãò±y‰ýã?Âþ(ö­‹Å¯—ïìÏ‘K‘sô·¯•çÍõà6ÕyÊ: ܪ&˜äFž6d¿ÞŽ~ÓjÑ+MdøÕ;¢*%ej𘻬 ÆbLúøgÝ6ÿS=µ‹àW?ú·ýãÀ®M~š¿Õ ò÷šÝæVw‹ëæ7À,/£Ì›àf÷S¿¿ô3ç±ß)nŒ£»³®õö;¡-ê»iÏKµg2ª`wé.âe?~U×/À¸äÂÜì^©=xÕçùÞ~1žñËÈ'îÚƒù¸vrôYÛ€ù¡ª(z×Smgm§l&ª'³PîÃë*R…ŠúÒ ãªù¢êyK·/E'rµ_'‹ü$êÉdÊýÒ:º9: «T£9›€_U 2LPC#F©ó0–P3‰s°’îú¿ ])´“ˆ;éô))M¥–4Út™d9¡²UiŒ*þåQÇ*QZi´ÊòY÷;‘ñ]íY3¢W•Rɼ ¨Å)ŸÅ˜‡Ð ½ò1æ ÆëÑÇøÉTF h,Y+ÆN$“w%°¦úÆ‹ÓSž¦âû¥ï«Hœ[iLCYZ¥j{¶G/O…e—Æxþ-ŒÖQ{µõÕ»Ójœ)'€^_°M_ƒ,‘žF}ƒÉ—æX~j‹]#ɰÓÒ­¼Ú¶¥5;Éuæˆi aŽáh©`ÚÓ+Xüª,ñ*khöÄ¥Äêå°>¡>CQÙ{°ª]aÕV=G=dÍwN”¿Ì%y,KÇçsI¿Jµ:¾_ȵ‘Ò‘ŠFq¯»yÅæEJÝ4"ö_ R·¥< ¦¥jwš¸lh+ÏîÓjæi¼›/™æà¸aª`õÏKºüª£ò°½[a– ½„žØYSW‹Õ£çƒ\Á¯K*Ö‘F ü‹Ýñ,úq°£.fô8VЩ†{Ì ži~ÍÓR`?3_cD†Èêè'®˜Ûï~UMvSÊg±ž×x™ïZØD³;Òß:o †]Û¼ªƒÜíŠ¶Ý ¬¸,?blÚaN^ÌÀê­-ß7Ú°’ô"\§'ÐnÖXY̨åàWc܃AUÕtvQ›¼úÆìsË}óØwA»ÒÜ;æòbÕ|Ks¿|c¿‹\Œü`›âZse¿¹{ŠVÕpwbvÃø a’bÖÖ|î„Wë°Æ§ OÞ¢âKE¹1Øí¾ î®7ìì_sý—n¢Ô7ßSñø¤‘ÙˆŸg‚UÝ‹Y¤õRûûmîoì‹Ì3îB°ÈPW+”°N\}<¹Úó0&½"ªß®UsÊc¥kÆÝôÈLŒôtÙ¤€_©êýÿ³‹ù:^³.SWküŸ®9VÂýî‚/ð]ü´ù'ð«ßÝt«U±î‘ÿ"OÚæÔœkŠ«Ž5©§¬+oЊõqfc¯ÐS]¡eðÛ¬U =2=1•gî÷IeûFtqe’Üêoô­y¢÷€´‹>BK H~U@›Kµr1JA=>°+…õÔœAø4Æm–â)]q©×u1ê$„1™ÉŒŽÏŸÍåà}ˆOáé]>íÁPŸª"ÏíC¯vmúÛCšô¸òT2µõ2ã­Ìx>NèŸJà¹aU誗ã§Ã8Ò&x¶L^­4Uòâ*ËåñnIƈÃ5û(ŒmPkËÅõdJ3^L³£‡Â"YˆËà«c¢óQ1­ ö¼²ô{Åî5-ÌäBg(s`­$3þímó¬¹×h‹{É_¥ô7¶qæ ÓŒ9ŸýÀt#Ò÷ÅXW6}x§A°“ò̵䢪ZÛX®ç¸,–,û%Ö‚ŽõÛЖ·ë˜Ë|Zj˜{l£~Ã_ÌEyJ¢Vîò·={P3;¯H÷Hf¤Ü¯¯Ù¼ªe4Žôa¬¥¨ÙŒ¾RELUb胧,ƒg]ÜÛˆÜvøÕ³¢giFÜ[v¦Ñhº°©žnbÖl/ÓÞΰ/›²@£o0k×a]V¬Á|¢•óÆÀ„7¥¸™¤qÊhÏ  ZžéMï9ÌlÂ3äX%G39ž“ªösó!õWFOº,÷´»ªµ$Li_Öÿ`oÒ C®²ýOôÁçã =°* ÕMÀïj¬ÖÉ\ùmÏsö°’n@_7ƘÌg-Õ±Se¹/©/ª^ˆõÑg€WÏzÊÕÀ]tƒÝ4÷Š|a>€mxGì« ½]b6Æî㨠~õ„üh‹Š|Íz©—åIs;ö­ï\›ÕY«cµ®GKµŽhu¼·œ¤ ýíð´£` ¾Î“´l¹-¸ic  ]üËnŸ?íÆS]ñmüþ¿KÚ™ƒþZÆ‹®1{€WÝ@¿Îýaòey‰z}·Q Jñj8úM=5ȯ:àΪÛw-O»àÿ¸+ìõ€™Ûƒt÷Oˆó߯šø;ÑGÅ}Žß›´)öˆ]îøU; Æô—È{îO7Ój”Ñù3ò–Õ¬f­$1cZ•qs0“¹¥ã‹±ÛO¦ýS=S£¤óVùU¾Ì ¢hnì³Ñ©w¨ŸÓrRŠ™<%ˆ!É<• •K3¯0œJ=öZ¹+¼f9žreL{>cM}¼6NÑÿËÇ)G{TÛÓBžÕzr*QÀžXœªùOGz½fÊoàWïÒ^þã²¶™ú”#æ1³Õè C_ LSÖKÕ~¾Î^).·ûÄ4¢ Þ¿¯dÚ¹6›É1c¸Cìй‹Y¯x¸XrìqÓc½Ï–^Ýmµ^ÐOØwÖÚîÌÁùÏüŠýú'Ú†ßKJäyIbNôçÒ'’©Æ3Äîf¯­~¥ç­›WÉf k µû~”Ñázê¼IÞÀ®× ó|fv®9Œ þc"î5;˨ßôf ì†`)æépØhÍí\{–IXV_aþ­GO6&÷Á¼Rÿ•ÚƒG¤¬™Ìª—YÅ´4ØbGÜkÏá3òxãô|ð0ðê}à•Ö—»?ú‘ËqO€_õ@ûËø|ÿ9ðª,tÖ˜‡Á¯4þª.î1X׌b%z´9Æp îtN~aäWs°¢ç`ýµ‚ÝÂßZè]­¡ý!Ú\ú¢·Fß®¿*‡v×ÀÊꦺW/»vþ¥Ø± ƒ½Û¬ˆ=ãþõ…Ôo?~õrä3«ÚÑ«ä1³ãX -ȳ¸Ï5Šz9Œ§hŒQœÃŒãF@Œ:øÝ‹èg­XRn^}ÜŒGÛúÜýþ$ðª™9ï;úËþU¿Mª›5°”f¸!~½yœñ¢½ýFæ*^] b­†ùÒÕ\Å<©‹Ÿ‡².|+\¿+ÒMÄ*,ÃʦÝÑ–`8‡‚ìÚo¯#‹—¡o}¢ß¼ÒøÛMî4lð¦à]-å›È›î¼»ÁjUø¥r5ò¶mŒ™T3çðØÄ«;É5B6]nÂ~H×EfZuån ö§ú¢EˆWZÏk&}=d6ñJëÔ’Ñ=ÑñôD‚'ÜŽûå)^]<[=9yÀÖýŒTÒ³¼îØeJ%Òy^˜Ì3¬°J`­¸ <á+ÉS´,Æ®§ÒjT¥‡0PmºÊÌ}O¥Ç[µ­ÊÒפúWUU"Ž„ ñJaÅýV½Q¼*.Éñ…d +D”â~XœHS‚¬/™-Òšâñ™dWåˆGÿ¯§ë“ªÈºu«ûUõÀäÄ$2Ì !3ä0Šdò’“€ * IP‘ ÉQ³(Ê‚¸è. ?*"ˆŠ ²ˆÿÜÓí~ó‰==Ýï½J§Î½uï¹iD·\j2D£\“©ß^–'Žq1…†ª±¸øŒÌ èÍ­±\ì×ð¤Q}†®¦­T£ÆB<ðÊIK9Á“ƒ3æ6ªî)ÝaÞ–ƒàWiäW—±¢9S ÌHÙB{0óãzÙ! Ø'TÅEŠ™ „»HuÆ_¥€%¨¾ï\bÝÝÓ3|_õdÚf°“UOž¿RN{Uþ0ÿ1›Ì<è¸Ð^ì[< … ù™øtµPãZ×àÚW˜-: sZsÊô|P¹ý´x³½¶·*Ë~£1¢ñòWðð*Ÿ¸ÃT“-Á]h[73Hn´ì{¢¹P¿ƒ«,'«Œo%Ò6X.ëM¦N_!~®‚ý\ÀUÿæ¡§dÃÐïÅ<œÎšð-0Ÿ7Mí'èÛ*øëjàU®ÛëþT%ÉÆ^ÚÎÄÊ\ì.Š—GCZ½ê}FÚÏåz(†=XŠ¿ß€Ù«•¤ÏÂ:ÑÕ3;Ð<‰>å`•ªÏ^(~­bvnìÁw‚~îÙ ºVÌqW\/؃ÿ1ŸÊ>WꟆ=¸@–EÞ …ÔZ^3ßÚÏCo…Ž1p£yVfH\¥ž[ýíE`oÀyjQ¹Ðq:óÛ`lë¯öbŸ»ø•an –¹#ÁÁ`öÔ¿ÊåÚ×ø«Æ6¤S鸟,5fÏ¥ã29Uà‹êPD£Ý£™;QíâòôϪÆr˜l,걊çù`=ڵшûòøT"ýíÙŒã(KÿUuªDÄÑÓ¯ßòD¬DÖµŽzæ:Â&º£šN,ÝÍX$åu]Íu’%7’kÍ2—0‹NE?Çü\ˆù¥h»Ê|'¯ÀTx?X\ê%PŒÒø«×¥1±¸«é-?0¶!óii S{ºxG¡”ÒŸ·ÃLÅÈßF;ùN“oßfžuð*díV÷—ŸLªÜo‡‰ÚÏ?Ê÷æùµ$>6×ì‹&Ëj>ä93 ”j&¼—ÏŸ±Ó€°}\û§Ùê‹ùû.î4ì¥Õ† uÂÚ˜|øO: m©ÃèÑÉT¦‹—ŬԣÙÖÓðŽê·×ãÙõýáׂnWP8[ˆÕ[àF»Cf¿¼ä\$ù¿ ðêdäuW>Rà›Ëóæcûaèdè#ÛW;`öÊl´ª öùèÛex®AfÚ§mRÝ‹…Ô,î†Oläùà>رSÑ7¹f ðêËà¡` ð­›ËmôGÝ8SK.ùfÀ«Ã~·)’‡W‹Üõ~¥l‚=8Ù ô8c«˜©ò†û6Øû®žFèÊŸ2÷/ªƒûi,IƹÅ»Zgo"øïf̺9Ì©Ü\ ¾7Zsv³?ë’aç.ź÷ý ò«–fãEkx½ÐÙýê&[­mµØD¨×§•TJÐÊ ¸¿zªïaÝvŒ¿š…ñ}½®ˆQ›*'ÝyÞ­ñ¢ª¹£ó|™©m_O¦§{¸éî»ù¦ŒJØ{pcx,ý=u`×ÜE–‘ÈŠ$}U¥ÑŽÌ3¬À¬g|%µ ÕþLãŠ/GÏR y\ m¶êÌÔøÏr¬Ž“N¿q.Ç?‡è•ÈÔ,âRªVUá:ÍÔÕù?ßW6Ñ*•ؘǵ•W-Ô4þ?‰6^ñ*‡~³ Zq¹ô;¥wòè•H óJ'¦«=èèÌ`í0Õ™©ÊlÉ€^ÿÏë¢u'*¯4úáúÛ·’7fa숫ÆSc¡Ô%n¨^ߨï?!&Ÿ4wá§7õEwš#À«'Y{¢¿ù/Fy:ѽŽ-Û¥#[Pb:Ë»ô_%àõ SìŠâU!ðjÏSv˜•XQ ùDs`~ ¦Öê{UªØeVÏE/aN/µ}DGCõ™“äuŸš¿ìëÔo×þÀ«ÚŒaè)OØÂPk¹¾„«^£bP_<ã´¶ÿÏÃŒÞ~³ÎhLѼ_vV%Ìï>±£E÷"Åê)Á"àÌ(3QšÚYÔ“iKëàõcèÉŽÔBèìÒ¸à>°T3`æcÆþ‚YyÒTUÇÒŠZƒ1‡ÚSY{"FU£ ZaígÅâEÿaf„ßtÙîy÷®ßFR}ÿµ…+Nw-ìæñžœÄýúàZmèƒ[…uÛ×Ô\ê_ÌyŒB ®;¿ÏÆziq&õdZ`ïïE=ämxƪª™~%ã^ ªá¹ë8ñ`w¿zÒmðgýÇAàÕ"G]z¤¹o!Ïš#°¿ µÍ/qöà0¼ê‡MƺÍÇ¿³·Y¼ŘSÕð-±h¼æÛà±·¼›<â~¢^ßb3Ü¿ ¼:ïf`®]€ö¹Á?ñQ?Î/tCýRY ~u»ëáWƒ_sbñ ·°JVùMÆ uÍѯ-0{T+±³~†Ís)A®wéŒ'«ƒ÷®ª'ÓüꬋóþôZði¿èTQa‡û}^äçb´¿½~5‚ù8KLnøUÛ˜Œ¢æÎw¬aœ†Ø cß”'n3`qï¤=˜Æ(42Ñú}ê½SuwõŬ5íÛŒ ÍçœãGúvŒx§ of½ Ý-‹ån U¿Ñå¡åKsļ!jKž0eC{LÄjLȦG( 6` ã¯6Ù‚X=¯70³âä!ôâPàðz³¸Õ½Ý¯¨ª6úN+&Ë›À«`j¼;{°Ö›ž» îÅ jn“.ö6àU:æ©•ÃX «1~}ÁÙûbå>ħ;î–)ªp™ ¤S¼Ê=Ø«aØg!®XwÖ=WÙ[[ó2°ökù}?öàÇ.ǽì~Ue_©Û丌Øõ² ²5Ô³ÿ¬ƒÁ諎ª™Œ•¤zN%ZÁŒïk3‚ùΣ1¢óß~ kµ™ø}¸{Wà×6êÕV2†ÿŒƒ=XÇü`‹û>X ‡å_ê_q[ü/nŠi(¿øbÿ«ßà_À¾´Á^ ôe³Lw \_à•µyæv9á>vàJ5Uax5cØ kºÚ©JñíГѳ!à|Zýhžk:ð*çƒÍÌ~ÿ5øUuÆ% üj½¯ªÒ°6}Ž¿ÁÏĸœ}à~wã¬ê/1á}¶=fa#Æ‹~öj4ø}Áqø^CÌÕÙè…IêÜSQU`LÂDUUåjØ´¤~»jìM43ýTߎ¨³É´ ï O ©‡•¦z} ŒÝ*BŸV¢7½#¼žlª,aö—²©Š<¯‹yš¢\-¾êôd'Ro!‹È‘ÄXÓ|òµ,Æ€V¥·)‰ß®Î:ºe;ZúWQß{&NrÌOži¢5 ÓgõÛ§ñAíÆpì\2›–\:U¶¢žøjf˜hµ±LæFhK–§uÕ¿ªËüAÏ|œ²ŒJ ï=ª£íê¶1È“ÂèZ®kE°“© Õ¥„žÿ)æ˜i%ÇøýsýYàWZGZõdž–=ô ÀzÑóAí­¦fŒ<.Å|²f8X#¢~?­Ž'mø™®ØGšR‡!…õRõÌ+w»Ã$ÙÓÀI}ÞÇí%¹Î®°!{Ïó‚í+Ú;WäsÔüÄ×gÍoöMã˜}Âô EBùôqõ”WlõPëãì…Íò'ð$Õhµ˜À¦xÖæŒ¾ÞÕ}ù¸Jšìaïrrö੎½h¶É–ÁR|º¯.Mìlû¾`ž‡…³Ñl ]ëMôPÿæyp‰D…žoŒþW­ì>¹ˆ¡þ«êÔŠ¬Œ9Ñ (vÀ4²?Â,ÀU6…ßw•Ýw™Õ@s°¢>±óÁ$».àWëBݱ^ŽÐÒ˜K¼j0˜:u ižÇnßšüj:ž»‹FþÊv³y6HvWÐíÌ þ”óèÝ%ÓL_ xõë€ç|Â}w{úY˜_1pªU›ænS=ü†mdz/­“t÷WÌ_ˆñÍ”tð«a˜Y7‘+ÔÇOKŒ¹úXj­+›‰´­1UÏ Œã&sŸŸäÛ’¯l5 Ã{—¥Ñá-0fùô_©ÒE)#àS˜…ùîY‘Š}° +Ä¢1!žC?U<±Mc½ªÑgUŽùtš­—C3w‰±\­íU“~¤4Úy±ªi|?…þù$¢[RÌO•I¤ªã]ÕM´JX:Ïùâs¥6f¥˜^h }cñô‡ga66!KKŒIT /=“ü1ǪéÌŒâZôt° ã¾¢9ÕS±R')¤ò´ræ{¯ØÑ4b>Ž~kìÁöXSQýö©ÔgPºÂ| [eõdz𝴖ý$¼Û’mŸlºÊ«r=ùÕPÆ‹–’‹ŽÓj/ƒÉ_7˜¥X]·£ï2­íGÒ‰ízÄÖ´Õí£VÏpÏÁ®ÚiKY_þG¹j›ËÔ¹:j~µûÀ¯RßÞ6$¡ú|™$½›•º„97»0j2ßY㯰jz1ö4UÉ~ ½¢ª;•ÌlàÕñ`e0ýÕÖt«ýn,Zû^÷ºßнðA‹_;œë&º›ü:w ½>E^wßÏ!µîl'¹"Zi°¾.Z¬{…΢æ`@Ñx†aØ6âþÓÉÿÖ»†>k{ðkwÍ5^ 0 °Wúof(kþ`ß×OÇg.†ÞÂgn²êé^f~ýËvÀ¼UFÜ{PÜ%õèGaF¡ŸÆ7³×ÕÇ[ ó@ëЫýR—µ¦Ð·´ÑØWÃ73^j„™àøÎŒíyÆt?MOv>˜Árôc"í­ÔgHdC?\$ÙÇ£Li‡9¯|s“ÙM%[­ì1Çt²J¶k¹-¶ö«Ñ¸gL¡¬´ÃDãë.¯®‹N›ÓöŸ±ØÑŸM·ÕeŒÖ@Ùn†ªÐ·öðÊË2Ük1V÷ƒhí@*W7Åî{³¨ ÖïNµíäU̘z&EÄ}do+TOÌ7f~° ³t"#ìíö0ùÕ_@îií¨ÿªæÕrê´õ—øóS}éO™  u #6RÑH+TNå9Æ·?gšØãèÛêøÎ½á£.Ó=K•q­?XÕŸ¶³°úîrÝì¯æ±zØ?'ÀÓû®øíAüVBõæ;ó VA'´e2Fu,Уl«¹ø·÷ZŒQîŽÑÛÌ<Ø*æÎð¾àV·.È׈,çÛÃÜoÉ.g#u#ì ùx•©íÉóæ’=ú#t¶ã©äN!š‹ÓKZoyÆpYe]Üa ¬½|<¡V¤Uîuû‚ªgÀ¶^åÞ Vƒ_ÝkúøÝö` ¹ä{¯Þó»]÷û[ý×Ñ? ö>ÇqcüZ'¶‚™,/¹ŸƒÍ@Èò@Ê"qàW…ô¶d¼h[ê|µ`ôHê·¯áùà\ÎÌM°C¢j»ýW°ûGÐ{Þ×ð+ü7ÔëÛâNûB?Ð/@/žeþàM¶ë¥~:h‹i'©žÌ9ŒºÆ;ÞÅŠPM5Â;á&ó>P±<-«fŨšf >9~§µ¦¢Ý¥(0Æ ÃÚóì0mÃï‡Ç1«¥úb£ÒX b,íA=áÓ|œ\žæcN¬dÔRVÌ.J#¯J#:%Òo¬§:µÇO<È¡wK=G&™J©´™ó˜ã¬ /Õ¨‰ǧVè,U¼Š‹ù½?_ŽwL¤­YßDkãdòü/ª‡\‘þ†,bQ Q1™§}º®¢§FiiüUY>¯F U¤FŸ*[ä³JGÀ§M"ª+‡íV†8üb&iÛ½£Ûz5اy>X–Y,Ÿšfò¹Ö§Ìþ@¼Ze~u°ö”õõ5Vš`Ä3¦kˆ¼Hý«²x„ÆÊW›·£Ô\ÚÑ<ì$#xr±)j[æcL?Ã}Õ~_m/K%{·Õ¨Ø3&OÖÛá¢>½äKóæ0uù¾2§ì«Æ3gçsCèš­ÅüÁÞ°UŸAc~_Âÿ†›qîŽÿ?ôiMDYtY¹¥ñí«ÀàÞň]Ft98eïýÄ|’±ÁbŒÂhX¹ãívŸh\̯æ#¬ôÇÑïê/QŸÒR´¤1Pâ]s³¬+éôÇG¸šª&(^Å,(¦‡l"G¯ ®³ÇT³Gå,fËàÕÇ.×=é~Ñf© Ûä;—ñ ]-ž?ÔÏyQŠS½¾6Xóª×§Ö^°¹‹x’6ô-ϤZd¾Çžß^U­ ªþöµÀÍ¿öà0·<(Ç,pÆ×r¥îUs\žr›ü5ÿAÐÅ.–W"Gœ‡=Ø xõ•=ú•ú¢MÑÒýò”hmOô×0Öê¸ó*=MQÍx Åp ªàWEžp£ÏoôwâzÇ€WƵ“tøÕ^ÛŒ9.mÐããžu±vâ>ýÑûux†Þ öÞ¤Xþ`[´ºý*±3ë …zx—þgø®á1fˆ/õíiaÁ’ŸO ŽaVÈfG¨9¤Õïâ˜i¬^É âFÜu#É·¢>ðtþ«˜0ã&Ÿ^ê$F¥ƪJhr]ž0&Ó’+¢×*øS…UxhÛÕÃOª‰}'‰HõzEcT“xÞXË$ýïïi±óÁŠÔ,Íäë$Fا0>¡"³e3cÑ©<ˆ£«ÞËÅ\0g'ˆÅ_E£êñ-“§­°Ñv`v?Ë3:ÀóýTðÒlÖw.CŸóõòñöæÝTp&eqÛÌ×ò¼<#Ê—úÂ+W|/6Cåå˜~û(ÖN-b{&¡Ÿ¯ƒ­§m…}¤-óq²pUkšËSÙGLcûø•"÷ok€_éç‚_m¶=E«–]”‹æó¥¨ÇðksÂî1qVëâUeÚƒmäÛ(T9Ñ{Q—qåÍ2÷€i|A ¬¼uæ0Õ Ø…×©ò&ëŠäÊoÁ‡vš¢%ó€=á{¤ŸmwÁNlbŒ|„oìÂè܈¿èÉç Ì‚X£GÍUà‘îmW±ŠÏÁ&+…Í t©×Qó5ž´fón“bß’“ø V|ø—î^€=Ø,C=ÁïØi`ec\Sû“yüª¡9†8ÄÌeÔh+ð˜>ŒÊœ‹û_ÂÕZˆñ¹œ¦XUs™O…Àfæn|æz´e=f¢fCÌ`½‰õÁu@”º.ðM\w·ÏüSžt|È;A7»Dn‰w À«zò’yÇþú1t̶f•Žƒ2TúcæÅ S½ÙúxúÑß®ú[ €EsñºžRùÍxX±ÿŠÖÊ<3ƒe°ï^-3­ß~ÞÝjZʇ¾¿ÿÖ¿ìŸ1me©ë¸ÿìÁ…N+ål„=˜k†É÷gðæ£*·’k2žØ;’qrª.]Œ9Ö&–ï\‡š˜ëÝñW•].P¶…Ù~¥úíÊ8#°wWÂ>l†'ßâ>@Ÿwôsг_†Þt!?ÆjŒÒærèê!«>ì̹š\•ó©³\̺ìóÀà¶Q9•ú¢M0£5V©fzýZ™À«ºv/ø•ž3| ýW º_‡Oò}U?o~•ÇÕ_‰Ù?™÷¡š sè‹Ò*˽±»—§u•c1ñ¼s´j{YžÖÂÓæ˜hÝ«\ª¶dÑj¬I‹²¿[Ÿj  |¿m³þ4áYž#%q½Fíʨß+“6 rÇô˜²h’‰V•ŽcO +šÊ¢=[ mZŠ»ßv¶ kI5Ÿo ¿ôv«‚ú°ck;çKȯ^–•îf?0òï ½]&Ã#Ÿ»¿|ß^€Åž …=؆µ ÷ËDé†~ëvjvu=<åË÷fŒ‡©®š£Zp9Pd ,¥w0Ëê²^êz÷n°('jåº]þ´ÉúƒýqØ?¼šïGúi®»_%ɧ‘î`V47Ë‹îÛ`-«g÷Ó«Ò‹'ÿ@›æã>ªõªþï1˜‰iÔ_4n|«Gý«ò.]´†ŽÆ_‰oH}Ñ?\eâUôç&w­mî5{àlècwŶª)´Äüz–Pw³-îv׫‚÷ocþ`F3ÞŠñ[E~¥YyE˜½¹ŠÕU›Z”‰x–zöÍðTú…Æ™RßÕ·ãéÜ3$ü|x8™PmŒ¼êߨ×FÇmFKu“ªaÿy”Þ.Å¬ÞØÿ®šS™Ê¤Wéoõ±V º•ÅZÏ%_Hb¾^ží¥Æ¢Pëñ,/…ˆV޶aô|°jÌ×\O#S”©hâcú ÙøF:±7ÓDÕ_â¨0‘ÏHù$Æ$dÅOUS¢y¬æN´zX>æGÏ+ÐÏõY0W:ÌZ„q1Ž¥øVªŠœ=ÑËQ¼Ò|Ÿ ô_é;2þª1笺(^%™Ï0&³MÑø´MÀ«#ò‚he³€M4‰é_50ce½´&îö2€hmÈ»«-/i;·Å|ë-C˜7¾…qKØÿ÷˜lûðJû÷1{Iòí=´õΙ-´ƒ¨×§z2ï‚eiDɗƇ^0©ô_}~õ§­-ŠÄ=å[5TŽ\k3vØŸTß ÷é¨ÞªÝ)¢<„ÞÄštƒu••ýôF$É}`ç€CªRf ÷±æÛ@¹Ó.²¯‰bÚ—æ8æßVV1¡jX£¹˜¿=ÑW¹«VõúF_ÊÓl…^œ‚1jͳ«1¸^¾~Æ”=xßfî äÝVwIc@¥<ðꜽëa’˱×ÌòPôì1¬Ç®°~ZQ­e)ú]«½Þùˆ5 Ø÷™…»iåÛÆ²”Š À¸îÀ÷N—›0îy:ìÁîAð«‡LUwÕutCÝAð¦M®“2rüj®ŒŒt‘H ßTöbWø=t(ô™ÕLuàaS¥;Ö“æšÌV(¿Ú£jAÌ”­ ¦1-T‹T+†^½\ë€>Ÿ¬s'ƒÅŒoïî÷Ãú¼à†™Úb"ýýÀ?i2åA?ÚÏt½üjÙ(‹Ý4×üê¿`µÃ`j=¯™—MGùû]>KëKÌ.• '¦cgõÇ:è›øiÌjÛUÅ]Š75OŸÊùf~1zÄ‚_mÄïê×Úå>÷…¾‘Ÿþÿ)ôÎú‰VÏ"óWè)êõ5ÄÕ‡cg.ÄU«_£% Ï4œcIdIªßГë-Z£q&ó_¶˜ú°§ñdk¼™à‡RŸ!«®Wø•ð(òŽÆ¦XîÃõ“‰Q­YÏKýÝÕñê^z‰ÔÊ€6e+2­L”‰úÂËÊS“!›(•GÜH#KªDÿivLÇ*ŸÕ¾•‡T¦e˜ÉøשC;¯L “hm&Ré8‰>ø¿óq¢Q¨e‰jž:…¬#Gæ­OÞÕ³#›©DæXV1ÑZ‡™ô==”ƒ¨p²ãÝ“õÿÖÂÞÎÌáàWªU ³!ªR=ó:™ ¼*3(ÛYvµT¡¾è! Ü:F¬Ëéû¦Z^bÞ3"·Ñ¯ò úê3SV¯fþήբ߬ k(«+^U°ßˬï¼<|Æ•uO¹ŸÀ¯:Iš¯äOØÀ„Ùîs‰Ès!­ªxÕY½]ðýûYk¡c5ÿ&O m«µpÔ£ÕÜä_ázø}úø ÚYLŸë½áƒÝfàÕý¦¦ûÃõs#Ý~óL_äHÐÆ.—Ù‘íî’Ï÷äYXÝ—Boƒ_©h§9*³¥+®Û׺óAýÙª TýPw»;D5­¢ˆµXOõ6øñèårfF°xµ$¦*µþe§Ø1Ìtÿ¼ìõ|°©¬ñ7ù;Ü`¿FvËr7ÇÝàs¿Ãì-ÿ¡~ûÖÇé ?Ë ¼jŒû6ŽùÛõä¡5¯€»Æ˜j½‰YÔÀy:p.,ª¯·™{ð Þ5—ç7øï*ï)¿*ô-ýl\Kõdþt7_U…-ðWhŸ½ë¼*Ú4 ,UO\ªã´ÀXt¨d€sÁh&ÑŘaê£h„÷ ñTúz³ih? OdÄÖ›ç;1šàIÓ#|(<ЍRñíÕˆ5ц~ŒPÅõRŒ`:½ïzV8šõO“LTõ3•ºQEÐò™î‹hUý­'ª?•è™*O”ÉŒUÿ; OÕækŽïg1j!ÖPâ]:ã ’þ§4S™^ü$Þ1š•£Êz×1JKíÁŒ˜Ö²¾Ÿ•WH®ÕýkHÞÏܤ˜žL"uÝ£µž£µ¼ÊÄ|X¹´xÍÿ£3˜8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run009/bold_events.tsv000066400000000000000000000002461323370031300255660ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 face 52.5 22.5 chair 87.5 22.5 cat 122.5 22.5 house 157.5 22.5 scrambledpix 195.0 22.5 shoe 230.0 22.5 bottle 265.0 22.5 scissors pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run009/bold_moest.txt000066400000000000000000000212041323370031300254110ustar00rootroot000000000000000.0016849 -0.00212397 0.00155954 -0.01306 0.0630536 0.0207171 0.00271437 -0.00212397 0.00155954 -0.020452 0.0486308 0.0173883 0.00331709 -0.00212397 0.00113727 -0.0254651 0.0521038 0.0396388 0.00330134 -0.00212397 0.00155954 -0.0241235 0.0297951 0.0116672 0.00313622 -0.00260832 0.00155954 -0.048082 0.0297863 0.023619 0.00296884 -0.00337518 0.00236895 -0.00307257 0.0439306 0.00912928 0.00242439 -0.00201065 0.00100093 -0.0324419 0.0598319 0.0111766 0.00269904 -0.00229019 0.00115779 -0.0399966 0.0296092 0.0180219 0.0029507 -0.00200913 0.00115073 -0.0394907 0.0296324 0.00152845 0.00351226 -0.00191349 0.00174207 -0.0430928 0.0297307 0.00421232 0.00242645 -0.00301802 0.00282611 -0.0134265 0.0297521 0.00443276 0.00284711 -0.00282203 0.00263509 0.00625889 0.029761 0.014764 0.00326899 -0.00289603 0.00128694 -0.0445044 0.0294531 0.00205885 0.0031118 -0.00242186 0.00162954 -0.0455772 0.0295186 -0.00182412 0.00322415 -0.00242186 0.00162954 -0.0468533 0.0174945 0.0179505 0.00268294 -0.000646082 -6.59448e-06 -0.0306833 0.0293381 0.0125183 0.00249968 -0.000901517 -3.69366e-05 -0.034811 0.0318088 0.0178188 0.00336612 -0.00262937 0.0016394 -0.0295358 0.0610114 -0.000632652 0.00408899 -0.00087944 0.000779165 -0.0155694 0.0559995 0.0299296 0.0033782 -0.00179154 0.00139765 -0.04437 0.029493 0.0349936 0.00365955 0.000219694 -0.000550299 -0.0156499 0.0176919 0.0347234 0.00460039 -0.00220151 0.0015178 -0.033418 0.0186138 0.0559658 0.00383333 -0.00165698 0.00146992 -0.0556779 -0.00206197 0.0350744 0.00539385 -0.00247412 0.00216302 -0.0594308 0.00630713 0.057235 0.00538838 -0.000760947 0.000293673 -0.0378307 0.00612681 0.0529343 0.00365808 -0.00218656 0.00127395 -0.0388104 0.00614219 0.0214877 0.00290238 -0.00216744 0.0013963 -0.0446498 0.0364579 0.0215786 0.00315101 -0.00183885 0.00107849 -0.0389945 0.01294 0.0326864 0.0048619 -0.00294909 0.00125258 -0.0703385 0.0461965 0.0775757 0.00289416 0.00015796 -0.000473219 -0.0233262 0.0440238 0.021362 0.00279129 -0.00263392 0.00151723 -0.073958 0.061644 0.094972 -0.000653509 0.00421976 0.000890826 -0.036775 0.0613506 0.0460375 -0.00105298 6.35958e-05 0.000119362 -0.00433128 0.0612937 -0.0299203 0.00394819 -0.00166542 0.000119362 -0.00425653 0.0502745 0.0406164 0.00230298 -0.00187268 0.00183162 -0.0555011 0.043582 0.0243338 0.00217613 -0.00245528 0.00183162 -0.0833104 0.0441145 0.0244946 0.00279878 -0.0025932 0.00183162 -0.0786748 0.0335387 -0.000290285 0.00240418 -0.00250256 0.00123704 -0.0970747 0.0152586 -0.00445286 0.00282674 -0.00257398 0.00135465 -0.0777735 0.0106517 0.00341953 0.00250307 -0.00206422 0.00125126 -0.0570853 0.0106274 -0.016376 0.00248137 -0.00159127 0.000835354 -0.0404618 0.0105723 -0.0164846 0.00267177 -0.00221839 0.00142127 -0.05795 -0.00186758 -0.0111946 0.00316724 -0.00177708 0.00120448 -0.0494825 0.0106647 0.00141057 0.00346015 -0.00154098 0.00142127 -0.0433728 0.014069 0.00136258 0.00284565 0.000204349 -0.000260756 0.00427765 -0.0162008 0.0110569 0.00375821 -0.000426414 0.00024318 -0.0298455 -0.0161528 0.0259475 0.00370613 0.000511909 -0.000909886 -0.00439331 -0.0162689 0.020112 0.00377586 0.000148032 -0.000317153 -0.0077908 -0.0111327 0.00121212 0.003666 0.00135932 -0.000882685 -0.00666392 -0.0258278 0.0304576 0.00407444 0.000883777 -0.000854264 -0.0263348 -0.0360445 0.020758 0.00395018 -8.63904e-05 5.34065e-05 -0.0285964 5.11817e-06 0.0013067 0.00318981 -0.00114772 0.00155365 -0.051194 0.000335848 0.00162166 0.00373752 -0.000606196 0.0017348 -0.0462834 0.000385999 -0.0011466 0.00400569 -9.45162e-05 0.00151496 -0.0461382 0.000350893 0.0013608 0.00419638 -9.48357e-05 0.00132693 -0.0652806 -0.0145449 -0.00480114 0.00411356 0.00117547 0.000244397 -0.0192229 0.000236028 0.00127093 0.00300606 -0.000243015 0.00148032 -0.0653298 0.000356986 0.0015487 0.00335522 0.00111514 0.000423117 -0.0372582 -0.0232306 0.00460128 0.0035453 0.000784791 0.000899531 -0.0146095 -0.0231827 0.0191139 0.00290018 0.000784791 0.000813785 -0.0267437 -0.0232151 0.00141004 0.00372014 0.00140919 0.0004629 -0.0146209 -0.0232185 0.00552647 0.00419201 0.0009666 0.00072748 -0.0324071 -0.0231825 0.0161911 0.00400711 0.000683654 0.00114077 -0.0465239 -0.0461032 0.0284728 0.00427286 0.000784791 0.000951334 -0.0538247 -0.029745 0.0226261 0.00347366 -0.000461208 0.00171693 -0.0598416 -0.0296418 0.0152252 0.00333312 9.74395e-05 0.001421 -0.0574228 -0.0260247 0.00154923 0.00382357 0.000355484 0.00160259 -0.0578208 -0.0296998 0.0196804 0.00377863 -0.000238692 0.00147731 -0.0694486 -0.029669 0.0224188 0.00331206 0.000348967 0.00114077 -0.0721527 -0.0297668 0.00147512 0.00319448 0.000271934 0.00144424 -0.0487644 -0.0185968 0.00147813 0.00316174 -5.47447e-05 0.00149735 -0.0731108 -0.0154053 0.00160979 0.0032552 0.00204311 3.44457e-05 -0.0488718 -0.0379209 0.0188529 0.00359992 0.000686988 0.000787908 -0.0597741 -0.0414449 0.00143055 0.00403025 0.000384838 0.00151214 -0.0643569 -0.0239673 0.00145962 0.00367037 0.000491489 0.00151214 -0.061416 -0.0311152 0.00727952 0.00388438 0.000545911 0.00161016 -0.0472843 -0.0225131 0.0158666 0.0034978 0.000587081 0.00151214 -0.0382365 -0.00700665 0.00148923 0.00423519 0.000495409 0.00151214 -0.062773 -0.0310938 0.0217021 0.00362312 0.000467159 0.00151214 -0.0701494 -0.0311128 0.00145492 0.00368028 0.00108926 0.00104063 -0.070187 -0.0311317 -0.0114918 0.00336777 0.00148537 0.00104063 -0.059424 -0.045427 -0.00310135 0.00297331 0.00273898 -3.8528e-05 -0.0425109 -0.0361096 0.0177375 0.00297331 0.00166555 0.000892878 -0.0618775 -0.0311615 0.00555788 0.00297331 0.000585298 0.0017063 -0.0677867 -0.0311069 0.00618265 0.00327791 0.00123658 0.000866654 -0.0618697 -0.035562 0.00989816 0.00304332 0.00123658 0.000866655 -0.0618697 -0.0311609 -0.00206846 0.00310695 0.00081188 0.00199585 -0.0550146 -0.0310801 0.00550939 0.0021151 0.000208406 0.000994852 -0.0638529 -0.0687435 -0.0404009 0.00303413 0.00114433 8.73283e-05 -0.0479353 -0.0042403 0.0118634 0.00223802 0.000644907 0.00168162 -0.0677221 -0.0230958 -0.017393 0.00291193 0.000533451 0.00201352 -0.0517172 -0.0179578 -0.0173732 0.00267184 0.00148475 0.00119742 -0.0449153 -0.0188507 -0.0174124 0.0022347 0.000561061 0.00197609 -0.0636588 -0.0230716 0.00626941 0.00267677 0.00145273 0.00119742 -0.0636806 -0.0231046 0.000445797 0.00248556 0.0020812 0.000294883 -0.0636876 -0.0231631 0.00224877 0.00254875 0.00158826 0.00124916 -0.0287664 -0.0231279 -0.0174329 0.00292321 0.00129456 0.00147134 -0.0727356 -0.0231087 -0.00233835 0.00285119 0.00142109 0.00113159 -0.0416662 -0.0231202 0.00729527 0.0022347 0.00174045 0.00126902 -0.065279 -0.0231424 -0.00418467 0.00254631 0.00145208 0.00147134 -0.0830537 -0.0503921 0.00146192 0.00237958 0.00125872 0.00147134 -0.0677242 -0.0321558 0.00310678 0.00255753 0.00156048 0.00147134 -0.0754979 -0.0503945 0.00594339 0.00277138 0.00193305 0.0012525 -0.0542487 -0.0411947 0.0242236 0.00286949 0.00198447 0.00147134 -0.0640877 -0.0557083 0.0154185 0.00282183 0.00196153 0.00102112 -0.0542502 -0.0827282 0.00439508 0.00264962 0.00168591 0.00102112 -0.0724596 -0.0295641 0.0015525 0.00360591 0.00142044 0.00148972 -0.0806291 -0.0385368 0.00122309 0.00321575 0.00200637 0.00140668 -0.0674437 -0.0549997 0.00746516 0.00341276 0.00130517 0.00205732 -0.0487963 -0.050023 -0.00621646 0.00301999 0.00164141 0.00191436 -0.0528436 -0.0474548 -0.00107557 0.00291863 0.00155577 0.0017206 -0.0641294 -0.0308663 0.00782456 0.00306889 0.00184694 0.00151511 -0.0641374 -0.0630985 0.00800128 0.00276476 0.00149338 0.00101442 -0.0716322 -0.0827779 0.0195019 0.00336744 0.00148161 0.00157622 -0.0620165 -0.0762411 0.000247221 0.00316556 0.000962898 0.0018187 -0.0424473 -0.0447629 0.000258823 0.00302498 0.00142708 0.0020591 -0.0685347 -0.0581158 0.0165805 0.00292766 0.00155576 0.00151348 -0.0511711 -0.0515454 0.0154788 0.00249007 0.000266344 0.00172276 -0.0710093 -0.0429499 0.00326562 0.00192368 0.000999815 0.00172173 -0.0443347 -0.0414235 0.000245623 0.0020331 0.00109998 0.00143548 -0.0443346 -0.0358541 0.00918402 0.00242376 0.00119113 0.00189483 -0.073069 -0.0515381 0.000247337 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run010/000077500000000000000000000000001323370031300225125ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run010/bold_1slice.nii.gz000066400000000000000000003212631323370031300260210ustar00rootroot00000000000000‹Ä|•W×å÷¹hqww‡âPœâVÜÝ)î®ÅÝ‹»;ÁÝÝÝÝÝaÖÍ÷M€4 ÐùÞ™'?Z’}®ÿZ÷‘TVž8þôXObOxò´ÇßÇׇõüâÿÿn›êÖÍŸËãiþßbçúúû–äÁ÷äüïO‚yÇËÔ«å/]$CÊÔ?Ò®ÿ»ãs?þ«Mû÷·øÍÓ-ÔVßßÑÍÿûûü¿îøúäûöÿúž¯¾èhš,Íÿlcð¸ïùS… ˜žëžè*òÍð?0꘺­êêǺ¤¹­R Ê&ÏCUK'×Ku(]Xíþ©jÏ=¥Ìb›ŸŠS4*MmÍ ÝV]PõÍh»ÈÌ6ƒôUuê§êùé…4„–ØìT’êP{Õ¾ð4RmÚk¬íd÷Û¦îõ<µÚ¦&›ý´•ÖPK*JÛ©-ßÃßâØ¥´‰Q-z`Ùí6µe.ü@½Gº¿9`ãÑMò£-´šRñ ÔXA{èU ôÒPhÔ¼bCÓLý½js<Ñ)­°ÏìJÆ~”—zÓGÛ‰NÓ|ªÌQx;½§‰ôÆ–Â+´ y&úwú]¡3T:¢Â^ AÃ)#•¥“Tˆ sf~KSPç¤<•ÊÓ{Ô„QŸ¾Q늧‡:f§r”‡fRLzdû [(Çâ¬4…ÇóŒÂ´u*聾ô’rØ+úiÕ"¨¦$§k42à{oS j‚¶¥`¼ŽrÚº&´ŒåJüï¥4”úa%ÝÁ§èôÏjU=·õ»‰bðÎÊÑ8<ï¡?hÝ¡fœ“Cñ>ªNù6·áö|‹~ã-4þ¢ÎÔ•Ï›ª{ zÕt";ã–œðr®Ë†‡ÑQJÄ 9¬¼æç²Ð¥q¹eg“è2#y„{ruîË3yœ½hrš—°ú°N=Ñ·¡<š§ðP´l(+yÁS¹‡„pgÅã»ex­¬ò„gq ŽÀgùßäZ‘âÒU竊Su4êOKé2¥áí܇oÒen*Ã%ïáú®¯ÛâÆ¸I®œç¨ÒLsIŒIÔÝÍ›yf<†ÉðU½C¶'áKØ qmžA«y™ü%å$-ŸæI®­‹îü¤€›$×¹•”ˆ2ë§ú±Ÿ·ðlîĥ훀Z­£*üŽšS^»ºz z}͆  6…göÿ@½wº¹yiÓC¶ëétæO:17¥ƒkSúdoÚ'vÚwùqÑ㥈´Ê†¤Ðœ›wR~ªŒì‡:‹©"gçÍ‘ûûe#µ¡U&ÇwúœS7¢'Ôü8ÖEƒff‚J_¤J\Œ³a§® ¨=:¿jyÈžEEûš7=#ÔqŽGbF³ÓÊGôh ÍIÀï©máa|‘vƒ'hÆ××a2Ù‡úNÕbª•¦8¡»4„ݱï ůE7@àÝpC ÉnÈ™xtwõ¡¨ô 33ƒžÛV«ç¹¨—Ú íÐ$PË•T?ó=ÍÌ‚q‹~<æIPoâØ¼ü~ £ºXµTÛ@õjè”v$z—üØ Š O@Ë’ð&N/Á Y3\(—Wvs1I-395jb\¸,Å+̱{Lž@cUo°‰¡i8Z0”Ça… å’@Vq7 ~|Ðî$Ô¿¸Üâá‰ãó5ÞÅ×¹§÷­nùUÅ:2õÀ¨§ÔàG(îî C%ßમè1Åuw ä '–¶r= u^Ä«x¯¦ÍT*ÐʹiÓph> 4³8‘ð<ð£”4à‡<ßUwÉÝ^ùÍ1ÛÊaùÈ㸠W?`|qM®d¯ÔêቫÎP8މÕÐ l«j³QR¹%­Üô·•Ìt ]IWÉrm\MI!“Ü>‰#ÓѾj¼4Ò|ƒm¨Eõ×ó)2GÆj%QÈCÑ9¼üîÖ;¯ë%kä¤Ëí}㎺ÓàGp7Á”?]Ï)¹ø[s_϶°%úÛY50ïlX*HÇh×´Ñy°äówÑÏÉò^Ä{×­v#\doQ·Z»¹.§Ôtïù4vô8ÍÛ¶'öóÈ~ŒWÍx›ú‚ç÷±Fwȯ޴îŠL’™RVÚ`6xý¼OÜÞþn7·OR‚ÆGä!æá9X Îg° ½íþ£G(ÕJ%™'žD*Ü¿äG4u\‰ž«£šßMUv{"èѺ•>¤_«T?©÷ÁTO¸òBpªé ,·Ì½Be×óÌ<{Ýl0ôõî§ê]Ò‹ Ê+±ëQ)úÃ6·—={SjŠ`£Ù…ö ­ašýPÏó©gêžñð}Z…©†S‰ïRa*e`ö@ÅžØh4Ëæ¶3Ìd¤gz¹`óÒ[¨å¨q^>OU¡WCßA#Ò={ÂîµM¾ËQ™á6§[¡°ðÑs°Æ'C¥»Ó6´¶ \þQŠËC($*¯‚Š×ý‡Ï |TÔMè ÄÚ~ %IrRm$’:Øó9¼èbx¦…pÿË‘ìNÙ§&ß7gæ¹g¥zb£ò*ª‚*“(½·µ@¦-‡Ã€’Ó¸#¿DK7#Û-DJZ‰ý´ŸÙ'úeÕò¨¦(ø!pö)@œóèS]dÕ»p—ã© |Ft™Í­øWÞŠ™ï€y MmdCƒàGO8³×î£H¹9 È8ã>Œ ú™Ÿm¤`ÁužÍ#hó,0s6Æeµ¦Ý¦ƒ¨Þ@]ÈŽF"‹Ï>#õ<ÜO¹ —±¡çe–{ ™ä,’¬2™Óó °e,ÿ‰êù¨=õ,A_± ÁÁÈÜû!ÅŒEµ>là»gr{äÇÉ¥p~H•‘ospNÅwøŸ„J—%¢ðºËWGi'u£•޽ §§(?¢®H>åmNÊ$W‘îI*-»ÜFWÁur³\}WFjÈRÑÅCþ¨ÊÍÑçY`up~a—|nœ¥/ gÅäM”^Øã–@ÙNÈQÝTÙ/‡]~ï{wÉqÝCñs¡Ùõe0|D>Ç­y.°ulÕ€þPCŒ¡RÀÿåøv)-”FÞ î°kàÈNÙìž»5n°#o!7_ú¹*.=øñiJƒ`õ°—KÓ»,€óÕtÓß&‚šƒÜýÚޮn»ôH]‰‘ÞÆyW{Cz³y[¸CÜÕ5reÜ(9.—±úßÚùØÝy¡FÏÌòoì»ÿäñÜSSe ™Gž¤ÿúý«8j—Š«›ë}º2òG&T™ëy¦šéZú²Îª£©?Um‡§7T5=üsDêF÷M³R}TÌ2»Å,1Ûô”'ýö±\_¥á4Ú¦ p¼]íY»Ù“Q*N' Û¥ÖCãMåêyIuH­7ÁùöJ)Ê‹ÿ†Š–¦pví ËØ•/m\:fËÛ£æÐÔ»¨G›ù6ªøÁ•gÀ^ÎU~€¯TEN ö3{ -~`~—=<™)9-´÷ìK*Š9h²|aÔGÕ9!Öozž~4¤¹pÇíLèïô9·®E–;Áù®Aï>ÙšPýThY-ìþœPÒ)ÐøÝÈ2Áy;ôöƒmã«çߨ¥Ôõü؈VeBöOEWmWxø…””G¡ÅГG´š6Ëi^q ô¼¡}®ƒÑÊ”ª•)ƒ×¶<Ÿ2£mû©U ,`¸ãÛ”Ãv3"ó¸ZzŒZ!{ö€¹dCc$2ñþUó) ÿÅ8‡çpC)ô#xqFR$~w»ZŸ>r¾2Én=5³ÕÀ@õþÐÅíT8/¾<¬ãHhÉx+Ç‘òšÏå“-\J È4.ÄÏ(*÷B[WBM÷Ú4_¼[ò߇>f#†{ð|LA2ëÉÉåéÆÃ¤°»)ñ\Awn¾ø1ċȗ@îr[.ìk‡üUÅAú¾í…½B›¶ó ¾Bw¹;ø‘…r7·ÓÝt« §àêIc¤âHÑú=¼B·þ25¿ª7ÆVáD¨r˜f¢¿~´›×ÊùS:ðUÞèæ¹\ÈýÝXÂÊ qÒ}®Ž4sˆ×2Éß¼Ëê€z-=‰ÕZzC0ã1ƒÙ,O.I-p¢„L—Eh[#WÏpÓájÈ—Á…”mþkòòQÌW ÚÐ6§zê-X'¿ F“ìlª"Üf—üX#g]yo4ïqwËeÂ8.q§åWNF"¹vå°Ò‹/QS[– h_;UÃ<ÇÏ…ºŽØkä'5½5@ ®î8ç¼[‘>zº0Þjn¦TvC])åDž"=Þ†7ÔðFìÞ~LPcÍ8¾±XMÓ‘NnK1ïd$Œö² ”ðs}Ý4ïMon´± —Ýwcä¶\Ã<¼²Ãeƒ“‹ncßý'0ªŒú5`d®y~U¡þ%?B«ëŠõ^À”5Z—F•cžàú/ÝIïÑT!l±9ì&sùê=ÑÍ5¸PÍ5Pϧð y±2î@{jã¿Q¸…@ÍWöœmó]~\÷¤C˜gC@i2ñ"¬ñbX«åÑÖ¹TŠÃ¡¥…yý×¼ßׯøNŸ[ëH­ÁðKpÜQÀÞx fT®Ã%83[^K3¡ÜKáùWÂY]·MvõþµŒš¬,ù|ÊCÙh%¤;¶5‚öWáH\æAÇna ·ù3i3þì¡ëô»}¡ŸQ-š~\ ÷£ìt–®‚‡%@¦³P‡ô«Ýn"Êx$š¤¼ή'8¯yì|ù£½Ç™“vR[+nÀQ8²[E©Àp®¨‚OEÅWc8ÿ:”FPÚ`:«ÉêMÑ¿ÙÈY‰ è~ m0þ©-&ü{AI#¡ Á]Q9Ì$¡Œá ü ÿÖYa!ácHqõÍK}k¤ÖÄ48ö™Pƒ4†#Hxñã±ËÝ.[È;@¤ÇÈ0‘9ŸÅ«çº\=£{}U±—§sR ¡#ú÷ùcŠ„E¹-ã&»ü²-l$»ÀŽp\Ž7ñ^ƒ|<“ꘪ_Õ;dK!E]§cÔƒûbì.ó2™)È )>_žÜí&®»Üâúò\®ðp΋z‹‘h¦‚0U¹‘½P«.2þŒqq8ö~ BuøH’kÒÀ=’Ä2c·ÎÕq­Ý&7Ü•–ºÈo$–¬Cëó~r~¢ø´> Þ/jŒ>J)9*O¥Ès–‚7K]÷Ø…pã嘜rxCy/¸.©{"ËÀ´®®LàÄ܆ŸpÞB-á«ôw’ªlÞÚ§6­¥IÜ=ß!3½õÜ^÷‡[*ÉÜ'ÞY®š çMƒÏ+`“HowŒ/Ьì¦tܶEnXõUþheÓ"ÕýDûÀVqÕ¼ñ‘\zÈŒá@ü|MïVïjרÛÈ]áE®®K€vßBþØG/ì"¬Ì´Ìlì¶oì»ÿäñÞSTÅ ™‡žl*οÎ7Ô/z¼nòšW*ƒ??<º·n¡ë°:¾ÚþSÕ>xæ‚ñUÀ_¡ ŸÌ/¦Ÿ*«™ öŠ™d–!|Ëå}3g±nØ_¡›¨±eOz樻6#E´qìßöŽíhJýPÏ‹¨‡ê„yHÿu.¬*½….ϤB”Ю‚æBu†În°yíßæðÔ»¯§›ýp3oiÚ¶™îÑ.¨ày(çsÐé\o1 LsÇî²y¿Ëý:̰„ŒP€w"c…ß)•ÞŸòÀWoB¾™@QÁmT*šøßés ]¨6H¹ÎÝwþ#•£`ÐØ‚œ ùcM¡íþüXFµ°3ž›dß|ÿ*¢š¦nÙ°xý\È•S)²z;$¡mT€Ãr:ú‹ÛñSÐh5m¥u Çº¿æãGP^¡ šjJ"ùÜ‚o‹‡ï> ~U™Žƒ—ÁÙ&²ŒâPƒÐú¡ H"ºicÒ·ƒàGwOl³ÚÎE?ºq*Ž~L§ D(nÊÙàhßPaÊÁ—¡ÜCø1E@¿Ç#}ô™ÊÐ.ðcR z?ÆPYŠËË‘YòppˆFá}\RRÊÙé^If9À…%¾LÁL=ƒÍ¥ðg1ß´wþy-‡>dSQ;´g÷C¦Ãa´ãPçC°qàtÖsQ{ˆöIkov¤¶ªnœœ—ùî¡[íªƒÁÝbêºRÑÝã+ô +»=]„kŠD+øá§™N6è1ût¿õ¸ÞÚn«t2CR£R+ï6ï—ÙÛÔáÙ T8¼Î9†=òüèB™ÁLe7cßý'¯ª§>_IqדNEý—üˆ©î«PzŽa*«ó£ÊZÏc¿ª>¡célêçèxÅÓÌ\µ•‘Ø3B‘¯›PÈË×Uw³Â^7«Ív}ù›*ôñB_†O]̹P.»ÛÞó4UW@¨”6“] ¿>Á´þ¡žçRÕ*s†„ïc-T‚¾×áð\‡ÒÚ-ðÍ·i½·Ièø1Öœûzõ,sÒ†€7Y¶mCî8€^Ÿ‚¯~ mzˆ_ŽÂ¥Gö²mñ]~\òćN.µíCªÌG('UA{ZCáûSi¸êÍô+O$uC[;#„ÿNŸ³ê¬Pä¦Ô-YOa‘C"aFvS-hâ¯ü.|‚’Æ„»j ﵩՋoÔRj´:c##­ýNé0Q‘ [ Š.y(´Âw~'ÍqŒÂi0+×µ»‚äG\ÕÍäÁ8=Á¾KŽÜ¦’ÈY}{ É FßÈ$nÙðz}h0(Ÿ®#¬ Aœÿhï‰h¶€a¡A0pøÕ¨f¹)§„ÞÏ’ò9Ë#ñYjäQà}wTnGL'5=P½:™Œ~ÆåEÐç2üß„âC- KLÙ#sà} ÈÎ.ye4W¡Oä&¼‡Ï€¯þñ¾¢ÕGlRðà uÇ»x—ä63….÷w%‘ –­n«Ë&tÃ]V).sÇ%—­Üëç:oátȱèsþ£Fêí”#2ƒÈk{ÀÆâ¬ò«{ê’»Þ²Sö¸âÞëàÇ1ä…ò-màªËtäÎ>L2„÷Sû»ÍÐßaª¼í'[„æÓ .`×Ó)~\p]¡ëe– æâê"w¤r“¥›k~Ôpwù)>O½è´­Fæ‹ü1Izú8é~ µW$»×÷NX ¹ W¤ìí]ç î å-ïVòWÎev½ä¦ìÆÎZCSEŽÉñìêoì»ÿäáT™/®¿zíÉó¯ÏŸGS7ULð#É~ü×õWÁõ Ý[ï×oTuð§ªER}ÌmÛˆšÁ÷դ榣¢êföÖz³üøÖ»ìA1¡øÃiƒ­ …®A-mgø?õÊ& j¶±=c=ÔÐÔø¡žçDþ¸a^Ñ=:O[‰"pM¨CNúùc%¤Ñ‘r £²Ìé¨wG¯3çlB8ÝåP˜ppG¨Aòx€Þ¿Bî.~ü lµ¿Ë'žP“fZGŸ¨  _©;öb­çv€ƒ)Ôû”û7“æ;}®¢«"4ÂÊ~ˆœ?.*Þ¥zØ×‰ù#È1jï?ÆÜ²ïMuûµÞzÖ¨k6*¡ÜP´ÁŠža†ëAÅ"qpÎåiǹͿÞ~ä1ˆWÅžÔA½#–]õ70ÞwÑ»T³›T•r¡òN"îEiì ó‘ÇCó2`\C+»«olvÌѵ òG$Ôµðr x(ÄnŒ~ÔÀÎ MOÈÁx²f¸Û©ðöï0WSÑï‰4„Æ€K·LK57P½Þº˜íæDçyPÉR,¼i*ô·¤d–S²À…‚öæ<’^†r^0) /Fÿ7òf¾jÏ›6æEë3V°Úbàõ§ñ6A»¨è]ŽòX‰Mär¹Õp߈’‘³óS¾ƒ×à\ð ©tû@çÏÉï8½¦ß(ú€ád‚L“\Rú¸µÈ›Ý>WW–£…Ýe/˜;ó%d…|.¹e +ŒwÛ*œêx T„Uv†§É(©&S9†œpMàôHw×D&òhy.·1Ê…¹2èq¯ ½ìù€ZMDÙ@ÀE”\>ØÃV0n¡ÝK—Ì •rü8ã¹C ÜEçÎJ;Wc˜ ëç? ‡#|~¿®³êoûÞ¦ƒ×YÅ…ìš-U¼YÜ~7Ô­••hß}7ÁµtÏ]&‡Qp5ÝoRÉÝç[d°#{BòRdšñÅùIfVæxŒ±tÖŠ+æíâöJEù É\0P©½÷€7¼×w=×ꊻø®ƒœ–kt{h~® öI»éûî?yü¢z©l#sÏ“V}oIÕI•IÏÒ‘M9“Pçò¿ð­Z¢Çè :ŽNþ“ç?^yFš·¶:´!ˆílh³AÅÐKÍÂn3Gôå~ª·ôS¬úí¶t¤ U±‹ìÏHõØ&£Ê¶‘½mŸÛÞ¦ÅUDn×{Í{ ƒ=7ˆZÀÁÕdÅe©¸AS¡c«))U„2·CÍÕ)hö‚q6|÷;l£´¼‹Ê!‰ì†"…:~¤òðüQè­Ýg«|—‡=¾÷w§ÛØ#ex;•¢ œZ¡Þ4ì È¼R‚±i2]†Þ71Ù¿ÓçêºHÙ+û>jD1sQj¬ÛÆ\ŽS@I—Ðbx¦YPÆ‹ÈuÏlp[T½ýF­WpZwl´¡4e¢I ØMÛ³± örnêßó¿†y^áÝÀ~S\Ó×÷ƒ¨–i´"íóÝQG)ÀòsT^#/½¤w˜—äv<øÑÎ6 ¯ ®þg@RÓ+›?ñ&~tõÄ?fS8žÁ•YCµ¿è-µäßðÙ ßJ„ÒÍ€>½D»ÆƒËi˜ÝwæÏäúººíK%8fò>ÿ|1 }Š~¤‘¸Ð¬½Î‚ǹđ>ÐHËÉàÄÛBMñ {ÑÔ 4/N_´Á‘KCsW>ÅÛyªua#±e>÷”5³+âVñt.%÷yxö@§ï å(ÅÖÿª8TGDzÞ ’ŠOs+~NVúËD©Ä¾;ÔÖº;n üôHp¥Ž\áß9:ÿÅG@®½ü®n «MúØR§«ÈŒ#x¯£=8 †ì¦'ôœ‚sNnbwéGAT‹¡Ê™üPÀ÷HV‰CRCô6Å.I)m-£e27ç4¼üâ;¾½Pï_5ö|Ћà"ó((V ƒŸ*…• ®; üìð">ýtÁî~̓;`dÆPL;FÍ T¯¶ÎnÁûDáU¼ÎX#m¢„È©$¡ì–Ó.’+%áîóÊx.ëþc)ø¹ƒß°¥Ø6ðõWZŸ³1‘Ęè×>á$œôä.Ü]‡Síëv"í”ಈã"C}à›Ð¿~œ¼Ž¨§U±›êä»ÿ ëÍwÿùzËÉÉÁ×¹´ô¹[ç”·ªìãÜÒB΃p¿€\çÀ¿Ûp {©~ „4Øæ¯ƒâ³ýÏî¯àÉÈ3ͤ3è¹ËwyÝiïúÈNþSžÉ-ŒbiŒÊ*ŒèpnØ998±ý¹3Ìÿ3‡U;¸âê¥'ÓÿÅõWgU^=Zg0ÅL6í{·ð‚'¶î©'êý:™Nó“Ï/ùè™fÙJ4Nµýboé*‚^f¦Ù—f±y ßªH?ÕÎ7ú1-?Ð*@½ì{Å3Q]7Ò œ··ìˆ<ÿñ›RúžÑü‰nƒlåè´t3”«ˆí­>ˆ”ž²Ñ[‰æâÔ{­g™6}ÀnÞ õô]•šzŠÝjxJ’?„ÖÙü?pýnB¼þRûÂ>¥\¼ZY7ùA¯óú?•#1O¡'¶3ÒD *iâ}§ÏÅtºŽdÑ ª¾b@…SP ÁE°ÿ“ðcß(p@£ð•C ÂcûÜPòš¤æª[6Ï/ÿ•|ï¢=´­Q{4,6ǧvÜmÆaj+¸uŒBre{LŸ¢ZFÕÍä#ßû¾d± ¤m@(#¡7ðÇ1ì$Ã2‘›rR^F"'ü‰Ö?µñüïÙýgµ®žd ø\ŠÃã¸(§eâåôV_î‰4r›îÀ¦†S^‚hÐe*΂ó€‘ùdF«…ê5Öem*FÑ ö áÞ™‡ y'—˜Øûë\HhÔbN.ée§ç‡•Wr¸ç|Ë^3Õ!é#6òGlîÕ]Ç“á=Û³¯Ìâ¾ÒÝ—®‰[Ç«¹œ|àAm|Êg@fœÄgÝ㫊ÓupjŠäGœLkÂçé÷I’—_pkççî¢++{¸€4•“œž¾-_Bú8Á‡‘¼ò›2_Õ[h+qrPè! åpì[ÁRFzðK>LíÎC±ûËin#Çåªï‰% å>dŸU|™«s{- VO5凼ð?¥iH5M ·^9,¥Ýk))KÀÞaPç²n…ûü'+]p(ô6®ÃƒA¸åœ¬‹AŸÏ„SõIЇ9]DYä”BM9®tvgØzËTYå’x/¹=n—‹çŽËßFΙÿòpŒa'^M]lûùІ¦ª–yfïÙŒð` ùµ¹F÷¤¬·ˆ[é:ºÓßo9з†³Þ0nž4vÛ] Éë®A1žÁ5£¶ ½ûâþEðÅýmšÜ<Ÿ>ØRÌ;ÜMDþx £å¼kä x7y¹<ÞÌÎÊ<ô<”ëŠQ|çûe•âÁ~N\ÿï«:ª#óÊ“Meþ—üH¤nª´z®.` šøÚwOÉ%¸¦– ÊAQ'U?r-ëç#Žšo®Øbp€¹ KÏÍ.=P…Ô+Ì{ ~ý²~ ÿT;?aM§¶Ô¹) °m,©ê™Eym){ζCLûªø»ú¤ŽšàÆu¨GcÒ\üÈEØÉÐÑ]ÔœˆRbT²ÍÌ·Î|yÜÒ+Íyøâp¼éÜó6ÊŒ³‘.‚çá8K!Ѽ³ЯØwùñØ,Í·í'*É[©"ýŽÏË`¥?‚ã+)yÒó@8ü*”ï»×ï–ÖeA²H07±öcB£ÃÃUƒ+Ìe~bÎE›'S ÞAu麽gª~óüyµLݳay¨–9-yP·5úš™Cs8jo}ÕÖàã<øq4~M?®Q-‡ênÊùî Bσ7§ ÷%);ZëA£Û)Èc¡Q¹°ÿ}ï¿u£ØØ›)|ÏÖ ‚£<©Ì:ð#,x‘ƒ²E†)‚Ÿó@‹óCýø"ƒ»~¹FÓb‚qlN×Ì8µ6P½fº †ó4.…Ÿ™ŒñËÂǸ”$…—Þâ¼.Ÿã’Mú##½¦¸p»Íy¯á3 p‡Ü~ÆA‹ÂñT(äVž€~02ÌhIâž‚åÜjÞÍ¿ËC´1ÒÀ´÷>ØP”RQxýW ûÏ“"®£·û¹Ü‹ßB¡;Êd)Š4ÐÅmuoAv»Šr„³K#¹~RÊ)°f;?ƒk¨èúÝÕÖç'N’ïŽÎ`ï|ž)ýÀšQº~.Û'õÜßrüØ#7AÁ¢ å.ÞÏ3Q³÷²—juñôWgÀSßs†ƒÞµíïô/JQwU²ÊJ9Ị®ZÙÉÕ—®2Í}’ìâçþã&Ïç¾wiJ@½ž•ú6Ü”ð\J('mlj‚Ü×Ä=t!\9/Û\|ïAwÌF+wÈ$wS²¸Î²Sp¤±<ºÙܶÍù£¶yÍø Ô#Úc´Wòz³¹m®¨;(ÙÝ ×ÂpåÝ+çÜxiãÆº4’Ù=æÈÊ›¡fÇlwèþâ~¬Rák9ü¯ŸH·íCIííæ¶H7Y€ÞíE_ {—xW¹¬Þâî5Ïs)?NÊIì‘°´»3/2Ù•ßØwÿÉ#„ꤒqÿy•á_óã¼Ê®ÇètæwYûª\ô$Ñcu/½SGÑ™~òù%!Ô_æš­Ç•ŠÒ>³L×QïÕ3Ú^7›Ísýø'ùAfÔ~ Vâ(j[ÛØ~ò¬W'm$Šm“ÙÝö„fÚþàýƒ^}üx௫5 r¡PY)„ÙßJµè• N{leÛÒüÈ=“·õ.sÜÆ…Ó=L‡èo¸îåTZsü¨BW ÕURŸÛwv¡-òçÏSÓ/4 ßm87ï£ÂÐB::¿ï» Á’ó †L·ùÞ(6ÒÅè1’JKz6&FºO¹)„LÆ÷0š¾«Ž—åãø®› { ÔÓF|GpµYÝ´ Š FRàG%j‚¶eõ±¦VH w‘svÐRüÙ6£kÚkúnÕJ¨ö¦Ç{S|´í,(Ykå2Ër$ÖQ†d ×E–ðCoûC-SÐ3›ùóXüîÉh6Ú™P­1œãƒgk)Ü‹†›.É©y;|c ¸å<îöþ{}>2ü»a–© êuÖYlW´()ÏÂG1hÇ$äô|˜‹IBy- Ý{É#{9³ä’ Ȇ³/-͆š_°ÁlŸÜ?x «ª*Åä¿x³üèÉ^ ~ “T¾;è\q·puy ßLz„üq†ƒ (šþúú«U:6ý…Q»KÉ àø}ä®2H~ç7Üìx7½Ç5Ëhamß}*–¢ÿ;‘¦®aÖ‹›,_Õ›bËÁ÷ŸñÇr^Lx¼ô‘üÒ„CÊ.è|&wJª»±ò‚{Ëmä™^È5Ð#¼r9®o/Ôêê§.S|äÔ) ¶ME!å¢Tqw$® æB / vU¤½Ì€ëO$˸wEB\ÊÑù’挀z< õiÌÞ+ÌWpÑ” ¬Ž(%Ýçqmä!ø‘ü؇î¨,FþHêÚÊTÎ Ê=B&žJímAûùþËÁª±yioa--¡IœÅ^§)’Ã[©­ŠÛ(eµ;ïö#!=p ‘?Џå.þû¹õ%4£]±£HÓö~¬ƒ®õ‡2ÆGG´ü†¤óöqgeˆ¬@o›º’®ªw½÷>òGEç‘3øü¶L‘crÙƒh-Vv¬/±×àÿ‹#´j¬>{О¬*¿äGHuJ%Õkt6SÖÄÓéPå '¾¡§ë}št4õ#Ïü²]™ë¶8eFhà³M÷Raõj3ÒzìsO?û⪱9>ê#4ŒVƒH¾gŒ¶5í/j®zßËæ°7íE;âÏŸ'S¡õ9s ºµšR>QA¨K1*jçÐ<|m=°©é‰­~üÈ3VØ\5g‘^߀=~´>Tð(*݃·=>ý~hhþF›éîÿO²Õâ'üwƒ•åðyU¸óñàG>~ÌazÓŒm“ú;}®§óÑmjRú’At¬ïdpÕ‰á¨ó±/ÏLó¿æx|öY0悽d**þFM§f©‡6Ϧjxí9¤mŽÕš A± ÓnÍ×Ám´äØ6ìM ÛÓ:¨kµS½ÀË¥±”ßé»k¦ÜÆ Á(üÀ'èh]Î~´¢^xXôÚf¢YVî‰aæÚEÙÿ)†  ¿ó@ï¡Äð´9.BJÂ7x/Ö¾GêZ Ö…7£³f” üìºá:›í€ô ia)‚vu¥Ãþ×_‘ÔÈórÃÝçò ƒs·àÇ8n†t1›ØÇ¦U 1ŒªØðHÎÑ‘€ðJÌáIêÅ9šìàQÚ=“èP¿K¼–‹ I._å ¼.>'%¢î?ŸªÁŠðeJÏë|÷9Ð-îÅ*ÆO¹›[êNº-nÔÕy©\?ÂpÐc 4ÿ2Öii“û«zól~ä¶ tƃ‚Çh7O’NR-qÈZÂÙ“ªnÌå†rUöaTór䨃àõfü­}P«­§:O¹‚﹤œŽ›Ú¾ô‚σ÷$…ô?¹l®:Ú×Íå—52l ŽÖëðün ß#üB~Öú€R‚R‡¡ÚÈ4‹ÐÎ|Ž’â«Wí4›ÒSHó½×L—Ëšƒ”¾'Æ'ã"s½‹~?ÂB»ãß§Ñs°3#MF6Ì­¼ÿ‡üñÄçÅ·,Ô•Ùªô'z]$ªG=á\ï£Úd£`È:$‹Éî òüG.$T_þ°<—2£—áö‹ào')$ï¤Üöˆa ÷˜‘·ý‘@â€qvÁéžLæ½J  ’Å8Úó7•sS@?2s0ÞŠ$—žOótžÈŽ_"iÎA’é‚Ê…h«™¢Vª7B—µ±*Ò"OÌáìè×_ð©ø—•´rH¦»×â»ÿ#…Ä—!œÔÿy#¡©#ðúÇí Ó2ÐÆ×‘)[‘&!¡Nä 5&Jw[¹ÌnòM yš勸ì ô·¨U÷þªâJ¶ó–„Ç# \¡7Üß÷Ž“tv«Ü=wÖíqµeg•šàœ/»¶?ÖóBPb!•tþ|…M‰üq…P'nŒUvŒgø?¿dÇ’3®œøéàÚËÑŽ„tÆ~¾¢á“gƒ¾D1ØGýrÎF¤}¼ZÚ¡Á]oÙ"+\|ï.dš+.­Û-«ÜaWS`…ß*#c÷´…¾ zwÕÞö½Í‰qË1lh~#í½¥ÜZWÂm“çrùc¨ëëBx£»)’ÑÕqw9º3 ëæ4õ£C¶"…§M_ܾÐL°5°ÖÿÆšúd/Kxo>·ã~JîI^×Úýá]àõx·¨;Äã\>¼N;™%· ñ°¯ÇQ:~Maì<íâú¡z« _<¿$— ñ/ù‘M½QùõtÆô1/”ïþC/ÑM‘?¢ë¼ÿ8Ãø>œZfnÛpâ/‘®2µÕY5Öl·oÌ óD{‚|&ë·z-Tp„ N¾sòÅíRNµV‡laZc”ÝŒÕ0þ¯¿* öaý,¤‹tDÊI«¨öV}ßó“É÷T‰4؆BFmdþÐùŸëÓÈ1‘?.!¬‡Ê/¦’P‡upÒ•Á“Ý”‰øqè»-œ~§õö•½GE JÂoG H¹¨3¯§„<„^Ø*пrô^ëïTL®³ 5¥šhÍ2P°,H„›¨,§ä|P½¥¨³ê.-'M°OMÈožÿ£†ª½6–ÿ5ðÙÑÓ¨Ðó:Ôä ‡¬B£¸=¿ñ¿m^íxµ½WvŸÞD5ŸÃÈDwV!ÍÄH•¤¢HG·ð••ä±Í3(í`N Ô¦ÎÐ︠°C{ƒúýQm=IŒŸÝIñ‘ªAËC ©¢öªYã¶dúê4†7ðUdžqØíS@ö²˜ïËf­Z¨^E×öö={ š;ùã1Rïx„Ãùcµìp7äWÙÀ¹%Œæüø÷PÜš?þÙC)mí¼µk·!yÀé¼gƒ“Ãø=‡–ÜÛÿùí¡¡Së@–:òŒ Ž~_†2‡·¯E-)¤^úUÅi:Ƚ®Sr(nw>éÿþÕÉÁ÷x€Ûà|Ï3èm 3¹¨t‘ýœ‚?Po´~_Áü]¢jžÐÕÉFãø|Ù±7mÿæ2É¥#ZqÍ @^8eî,C¹‰ÜCÜT.Ïgè†óCîÅsíçû‹›y¨åÊH£¾Ñ/”ú· <¼d—&²Ü­€Ó/ïž»¦.µìÉî¥|‹jrs¼Ú*ÎÚ…¢ÏO”yâ¥w`…~ !È/,Óbér —Ù\Ž,˜ÒûÜ-qǶÊf·B¢áë«‘?FðK®Ëki¹-h ô·­jh.ÛÇ6M¢ÛfáGRÝÏÍuÝeÐ1±wB7Œ_x×Cjº.nÇr ½¼Œ¦Òa´@èp?¦©YÈ¥h ÀÚ¿a?{Sº™R[!du-\Tïvï[ü˜ËÝ].WØ5Ä¿\‚Gô€8Q{ÌOùÿ/çÏYûâüùO í_ò#‹ºªŠë1:‰)gD'Q¾gÃ'×3ôýXÇБ~’)à.÷Â-¦ðÎþ³L·SkÔ13Ά°¯L]'ý©vÎÒ‹¨1-¶i)/´°™­dc«¹ê•ÍHÏMT{ÉÞ²3ÿqÍKÐG-u]ù™ÕЩ¨T^ùìÖÒ”ÁÎôÿ… ¢oì ÛÀ&3?’(#™íæò@8>̱‚ òt(û:ÚˆÊU¡Š/¨0½·WíFd¦Ýßmá~OpºoÚOö ¥ö¿Ób<Ôu倯>A‰yݶÒRŠ…üñ½÷¯â몠Z(á3¤åèPþè.* ç‡:¶Äÿ÷>AjÈMwíz“÷›wvjµXí‚Îl3 [ÃÜ6¤*èg\NÎÙhàÛ ÔÔÛ‰WÛŽÑœHíÔïQ)¦*˜¬ø®0ÜÉg*4-塤tùcÝ1kLY 'žÿÞ„º¡ wbCõ‘?þö”3óÁ<Œ³r(×Tªëÿüö¡\€Sñ êH¿Aéó~HÁÁ¤QPÁTªÑ1sT~Ò@1]Ñ–CR užÅ¹‘?záûÓðnŽ! à*§¸«’FÖqÉ„”TßQt¨x%¼Ú¾a#Ú.ưö={¾ÅÁñbž¾vç˜â ð=%Ü}2×ÐíåùÜ@BÊ`‰>Üá¼i Õ@þøúþÁÓ:¼€ï·Q&³ñe &õd‘´å\ZúÒmv] ¸ðúRÍ÷EŽÉÁ–e¼î~#%6E¿ª—Ö&e’É(~ pdO’nÒHêr(YçÚ»4È}]_é‡Ö>‘WPårø¾c¼œ§ñ&ü­žý|­{#OU5#ßTmʸ«IVCIKq™?ÏerùÝ>èuA¹&3]L÷ U*rod®Ðý{P᩟§¦èkèçy¬¹8²ÍZ:Ác¥¸Ûî»æ`ùX÷Ê­tóÝnÏ-•õn¥„qÀö̘Ë`ÿßÔÂfÿâüGq¬¼söŒ-ˆÏÀו÷†E…Vèå 1Þƒn¹+…üá\W䜈.®|-aø|a[ð£&E¤ýü8¨¦˜³¶<è1>è­í+âí…TYf¯¤pÍ\uï ï3ÅËå¨\ùã¸Ü¦Íþõ/ÿß¿fíÒ ·Ýôˆ¨qÿà3ON•ò_ò#ŸÒ:³ž¦“™þ&ŽÿûWû=QôlD›„:†ZóSÕ¬oÞÛ¬P„È qí9ÝI SûÌ›Á¾5±ŒÓ1~ªËôfhHG›JØÙeÖ£:ªK6å²  ö–þàýƒ%ÔEµÞÜÃλ€™Ë Ø€S+J`WC›nÓï´ÐÆ¥‡¶¯Íe‚òÍú°ùh“Âéú®èÚL%xþnxú×Ð٣М’H»Çì;Þžþn —x’·sA0Ã…ø·^§ÝDÖ®Oº ùf*]³­é¼s(ó½§õÑÕárZ¢%¾´>>52s\®ÀY?¢"ÛO£­´ÜÿúÝêtÐ~4é¾™?HRomvø×T{%"=³õжô;ÒLiÚ ¿÷Ö÷ÞÐQä»´¹ìj½7ˆjéT “Êÿùö ‘,ÖàçjR.ä:”ø#ŰÓïšœüO¡fpÿ#)%^/&h2ˆüÑÓÎ̳Ά½úÎÀ.ÙúR<¨f ŽÂ›Á ° yT-2^s,“Ê /ήUïí§+ØnT‚ñ\hzô«ùQ6>Áá$£ì‘•Ž\~ÙÅù$ŸLð~I\¸ð:H»ù¾f¿•Aß³¿`ÔÂóH0l ÷Å|Œã’ü(„4Ƶv›y-×–‡`LBd¨—|oqu®F]é ÜÒ—õæëÄpã›éZ8å 9™.»d ?ánn{ëü ¹äW–žàGyþ…ûB×ó~>C(M w{»ÙHxÅs RKn‰”»ƒB™ëÉt~Ë[в”n§tvÕdr‰ÇÝæ.\ iá _ëïØ÷´ŸÏqµôT+É€1©çà”Pê¼Q!g4” rÒÍpÕ\$¤â®&2Î^§]Ù„¤Ò—Oƒï¾ûœ‚Ñç'ê‡RôQ÷˜ŸFnÛ£¶87”†î–K‹|ÐG–¸°Þèó—Ä–Ñn¹—b…÷ãÛ`Ûjg‹Øzýí„•wÇ^·à1s4{ÎI[o.wÀÕu×%œ ãÍà¦#5¤ò>—ÍÒÏUui%– +aYñ)ß{`E:ýÅýÓÌ$û;Ã]Jwì~‰æý )¨¹L•òFï®›å½à²{“»gÜ>!†ë çåŽï7`{Âs¦àDÿŸ®ß¡>ÿfÆ'ž”ÿúù‰I•Ò©ÁÈf„Iáýî~Ï 5GÐït [ýÜoǺáébnÚ”î¹}2ouIu[3WÿqofÅÑvkïê®G60¸ÜÝ=Hpw‚$x @‚kp Ütpwwwwww?kïó Ãäz¿ó6 3Ïn©ZkÝÝ]U6–½æ÷­ ûUû¹ÐÙƒ8×¼2<¾…]jÙnæ$®¤ïýÝÖ¥Ù_ÈeÍ)ÓÇ=‡”{ºS.$àúhÍè¥;œ†@c[Ó›I·µ-ï.ù‚zœ[îpP°ÁEÚEUy/Z×QÈY°Ò#èD Š@Gía;ÝÞûìö÷Ä¢<þõÏn±—* Ý?·áݨ,2äÊÊËΚáoJÃ?ަ^9ðGLn¥¼O‹FM(3¥$âJœ‡+Bg¢-†–fâ ø·­öŽ`>U3®iožÙ‚P…šð£ ‰®ÚFp%T³qš -¹ŽZºŠÏ{€Œýˆ2Û@çJ(Õ¢™¦n¸Ld^J1qÞNS°_þ NœÓ6v³@ pI0RS}°ÉU›Œ—1ÿhçIëÚÅp£ü”# =tF­VH I¡™…pŒW Ì'ø ®Õ ÔFýÑšþ ¶›>;ÄÉk»b’r ­¿€†Ï¡¼‚“;6È|½#¾õ?ŠI!™Ž}t¡yCÀSÀ8Ïí¶ýGó—\²D¥ÈðPö½¥;Y£?å2–{ˆW·ÃCC—qyΣ8Çä0r™Ïr_®ïze‚>¨8Îù×t­oNxZ> …&3¥6áîÐÒHÞóêñúÖ+Ï)ýU9’ýðÌU´û‹”=ÄlqÿØÌ8kçÐf‚"'Ð/ƒ¤.xã:ßÖú-òtk½(a¤!èëü£ ·ƒ·œãÉø=‰Ç½7þ¼±§¼ñÍ„\­aÿÌí7TPŽKs}$ye(xf®fЬºEûki)/[õ¸¤“©à•Þü W ™!Í Þ93Å9~L3(¼ÜƒÆà‚RP/jl* PO½+Á45­ž”þ`¹öÚD6àóGƒÿâ…ô·-gƒïò÷3µÜ»ÖK iåäÄöWÞ ½iáßëCQÿH’åZIÏk, u«–ƒ€Ñ_ÎR?Z‚V‡Ž¾7û w’ÔPü[j:lShoq†#Û"-¥£–ÄÕòîT¯·®p 6T«óä€\A/‰HKÑûŠs>Îg¿n†¨ÿÌöÖó« ^Yëº'»ùÜŒ¬ŸÚ"q"ƒ6"»“ÜäþñƒHN3Àyâ¤w2¥Üó´pïÛBÈw)A‰™í9ç{³ÛŒuWÛö±üyhs"}z;äœñÍlÓ¡×/ >v1ø£’¹dËQa[ÝÞ²‘á_öüÊóýïAÑ×ÇÓ 8So g§›Iá§€í'ŸXÃßñU¨õ|¸ÑRN)éÁóT‘J×s^É!ÓàoÀ“ùÐÇE~c ÙÏâ"8×ÐF« µŒCÅ«Ü穳xä(=(Ù´®ÆÞ•FêÎI82Hä)¨æ´N×™øAÅeN"8Úò­…µŠ‚nóß2Yª£v']¥®÷™†ñ¶‘5\TºÉy8`œ™s|Ž´nQ!·üõÙ4œdyTÔ†ÿ¡óà>ðŠ6|‰hk-¢¤«öCªo"wäwGë¬ Z¸OþèkƒÇÚþê)lVÁ)CûÅM9‹DI䪴Õ’®4OWjRßX í¥Y¥;ü#Œf‘=Ðû¾ðÓkÈ6‰8;|Wï¥'Ð9B~ˆžŸG^ Ý¥ØR*ŸNÛÉ&xyxïFxÒ.xÒ*Y¤k¤‰~/Û8ƒo-ù›wQ[Æ{w¼½M)÷}d3"­ãèö$m—ª^Õ…ZJWÈ.Y¦Ot½ÖÓ»I;ËTPR.É¢wù˜êõ¥]¶yhç;ÿX†<:Œ5 yÔ÷vÇk)çíç[yJ®ÈyIª5ô'ïPï9à­ªÓy¢VÑ¢ð½r‹.Pp÷DôŸÄ ´õŸèwÿ›[€idÞ{“Û$1Éþ¥ä3/L€³ÌÉì¶rùýㄇ½ÎøGr'ÝW®ÿL§Ð½Ú”•PTûÄ)bî™íî&›ÜÞu;æ+ï_Ýuвi®ýÑ¿:jgÛÑ€èïÚ‚ÔÉþeŸÚ¨4æ Ç5ÏÍJ×Å{I]‘£ÃCõ¢Aa«ÙùHãà)ÁÏm5[Âý¢1/îeøGhòE´Çµô’öQu:Aéñ*Roèö5ðÇý³þqÅó hešý¨ú  Èúð2¨o–gÆßãqd©ô6et#}æ˜Û;Í¡â Á€—A,©ýo1eAæ)É…9;Róÿ³•ÝHÖÛ‘ÅÙSniÚÛ¶¾ÍšyÆ!ßV‘ QzbÆ1.A¿ ”ÜÊí{m¹í¨ãp‚ƒtÙa¹Ú8þ"¦›ë»[õ’&€×VãxJR~ÊŸ àî”ÄÎt_"W7ƒÌÀÑþ–ÈI/l8ͳPžôñär§Ú9”„{ $åE©y¡†éÙÃAþµ v ƒâØßip½‰Ôôñ'Ø‘ÝïT·­A01xÏárügn Üdç—T²MfêI ;ƒsË_pâ甂ǣ%MäÅüÂ>ûˆ…Ó:ç¬b¢ƒ¨Ö€h†Òa(µ#™ÈS啜‘4ZA}Ïê ÊmÿÇôü¼ä›»±2XrçÉÓTþ5`^Ã1—skd—צƒ{Ã>¶¹ $Û9¼ÝO›¥š7ü¬ Ï×Ëú—¶Ñ«UÇJýYI9}ÈOÑn®R/Úi3!;ÍyÏ?F¸Cm]$–ø}Ð^”ï¼­u¦T•5âÂ}Êhjïï}}ªÅuijëp0ì´ Ú±”ÉðŽûߘ?1žib‚Wf¼ë)ö¯ç¿*h'›3ˉíöw‹ûÇõ<3‡‰¹ œ\_9Ixèz‘tëQèCvûÀ)l.™)îZÙ^so9±Ï)߇Ûuçµ§™¶0­„–³3¬5ÝàÙé;[×^¶1h Ûõ‹*V5ÆYþˆÄ÷¡u) ׿­H†¥l Ä äê76½²ßÛºîî/ڳˠáTHÍ;°gËУ7S.´ŒítU/Ð)*M‘¡y[ìhç ÖL‚4¾Ü†¥7T›ãü• ð¨³ŽÃ9"ðJ -|e[AGKR÷s£}Ú8…é4ü£>øc!@/#ÃÑS(J6ôï@šA¾wx#°oýñö‰›Ù<ýD-6ÃÍ}“×á;KÂÏ¢Ð[JQâo¸µBâ< çX §ÚîŸQwx?©Ý*d5mÜÌøž»Htéá:Çp¤y(í/ ¤Óî/îc ÊÀcÁá ‰è¶M‹ štó$r§Ù5úü-GåÇhuÅá»1¸1'ç+஼`¬ƒ<„gãºÇó B¿­’ªE¯ÝÁ?ïåÔ´-qÞãBur~0ËP\×,à"SŽÉtõhAYÇ9%¹ôâ8“ÉðåÀ ëøR³×%sÀ†¡ŸÈ7Šo dZZ_hý 8ÆñêU‰œº†qayÂ#hRòM>Îû µ)…u~ø¾­@mpÖ\ÎÁÓùW´‹×ü» øc™ÞÑýúLkÈÎ.äûÞýî7Z‰ŠqÅsº•?¨×̮̪>‚öÚÝ·.-íå‘òü( Yå°¶Ò,zºÚQZse¿ü_hÊ›áy77äfï?oé)o†"ÔƒâŽã‚½#ܺú@ ¡ê6¢Å´²ÕnZ@ZËßzSÉ œ½^¾§-œ™6ìÖ,p®Pb‹³–CŽÛ {‡âIdÝ©ôwY ³4¢÷¦ùçÃÚ#}t‰TLç‡Üž'Ò_6« ^ïÄ÷ü㬽`!G­æ¤ö ­Â^GÃÏ.Êqq¼=tª6RõhWÔK­™%³¾ÿ¸ðé^´Å椰4îl1ÃÜá¶6M¢a4‚öØKRÆû³®”ròD6‹Â"z§yOiLo%]Âý4“¦ïmƒ\ p4ùº<‡ãpÿ•ùŸ{~zoÆ’«žD_9®;xKa^š¤Î0'±[ßMïøho¥çµÙêôt^:IœÄ_9ÿnbøG8*Gu(õ&±§A0SÌhw½ g/¸œ_9Îñ¦ƒ¼Fsl9èÓ(êa{Ú¦ª9 QJ}Ì¿¿ë:»Ý“Hª7‘)«RdðòzCyÛšržrÅfÅï*öwçÔ»ï9{Th¶Û ¼L”W!¤V‹~¦yðØœ—þäßÁ`ëPÍ·ŽÊQ:À®uB›û&·ùÓ-î@O m>t^ËÿnñSpà·­ûüÑúè1ú* ´ép†ï„âÝ=ß¹Av&òý$U2ÿ\{åÑ×P#޳/•¡tÈËã9Ð÷®=/A¿ ‚/ýI¿ÓM·‡™¢^çû;•Åy O(íðÝ7MÅ,(1gjD-)38‡ä“É\„Ãð¦ª<•ð){ú£µ09ûíÛÞÒP^ Ÿíhϯøüf€D‚nÅÑ.: ,QE.‚y¢s*¾À—P­)ÿ@Ù( ÄøUN"jê_µ11Ïs¥Wð¾’—EúÂ;^è ç­-›ø[ù‹@}{Cé·à³÷!{äá-m^$Š‹t‘zƒù‚èÏ—NROJ Þm­u‡´Òî²—»ÊyÔkÏ5pµwòìñaè~“÷žŸ7L£°\áh‹qy¸~d9*õ‚”åðášNëêv¤üŠð¨ƒ8úodWƒ+ÝÀçáŒüÊN}W/œ rP0à|Š$WÑ׈¤ž^Ðo´‰Œ‘šÈ»_×Ã?òºê"©ª•e §Å•»ÿ‹¼YÀ¯wÒÈ4qoÙ×peð¸$¶>/”Þ,:I¿‡“eUë­¢[A\wõ­ŒÏLÖj’[ÃÊuxâaä¦=6ŧIï?ïëÎFO‚~¤A?O§¼ù4HÊÊ2*›µ*öt™w¬ÆñV–ÚB£h ”¾{µ´ žÓlù¿²þÇmOSØ•Ó|Ý}¡à-)ø#¿óÝíå~çdG•žf®Óι .Ij¾nvÈkž!î}[À7õ§tö˜Õt6MÝuH¸OÜŽ:_7ûpç"úïx[J0ía—Ía˜³ðr¶†½iÓÜÆl…¾47ÁAûÁý»h ÒsX$ÔCÔ9y G îtÿrAsÛü‹æß½ëlGk mÙOëá¿ónxæ6èèsèÏ1ÊÄ•oÛ=vƒÍõYÿîI6^j_Ù×ôúsU¨ó [œvB?«r<Þ@•ÎþØý(øãÏ}óï6§ÚtL”~£,Ø›GT !§ûÞRZ'šFÙù¾kMeSšÐžvû¶f”ÙeSó ªH¹á<)éžm]ž‚\ž‰#SKîÈ—á‹ávûà¥wèܹˆ=àÜ¥Z´†¢ønå ”ûv„ªkÑ9É.zêætU&p ÿó®Ô‚:£Ïžµ)ð1CyþÑü±ØAïÇ€'á×4*ŒsžûqNðÈhú–Rñ ¤ý¹8ÒX<­r5Ãw4%ÇøhüGi§¼íNEÁ33ñ?ðk´»p§-œPÄÏ=Š–’íp“*2 ä-Eááøÿ<>É·lÄæoëÜðTndzx†«wæ—ü~6ZÒ ÝGÕ!z_ÕŒò?Âù6Î@!ÐÞ[3ôÃùªœäþõ?^S|fW>Ao¹»Œ“ÌpaºYßêCäç@YÆé¥‹ì†øf"¾Ì‡ø2È>*büy+›œvíu7áY´–§Èh8OYÏpBf=#Ýô¸åŸåø£—‡Ïæc ²ã ¯¡6øÿâ)a†@këóuú‡+pô§xò@êë5ÿüW{Á ™´ŒÑ…Z^ÚË=,¹d>—å|û—‹s|Z÷®^x3ÙY t‘\’Ë…êr~©#L©ýe«ÌÖÞúþQH÷ÉXÝ µô7Y…ä1 ç·+/¢ 6³Íöîx[šzîIûØæ†-á´–øñ¾BºYRb¯éIýU/iRýü1_3IR5ò=Ú÷r›ÝðÞøóÞîß¶ZT7L×ìy©èýQ'H5Y)eø%w–w ü¼µÞæiÚÙcŽÓpëpèß#ÐsbpBû%iõ?½Å0Lúwgæ•§Ð{£A¾nKjÎ$'‘ûüÃ7Úf‹'’³Õ™á\qÂ9¿òþU3Ö}Ý«@ùÛNf³ÁLtgÚøö¢ûÚ ë|ÝsþuÎFM me\¡Ùð¦6žbÚÔð‘HvQhÄúGøäA÷zÞjO?Aê#‘•¢*vœé4®æ›…žÚF¶Þ­ÿñʹ澴™Ð¾çƒ^6ùgC)u÷ÍMTõ.ÁC"õß³³m–ÏúÇIO _›²BÂyy'5G£*HåsÉ7Þ.J·ó 9Ÿ ”ËýÜÝÊêN%:‹vݘž€ÜÒøÇfDíRpß*KkiöqÅä=T‰VÚ#nóúµ3ÆÜ²éñ3Uà“(ݲ¿‚1×QN•k'¾¯¶@|³'žƒ]¥ v‰s:”jÙM{·ú£‡ûúç¿:J* w»ÿX@ÏÝ!nXέ9üª3H¢¥#ƾOǧ~\­' ²É:8Ã8$Þ¬ì CW >¸ºí8”§ ~23ôxo+<ÇQO¡ÉÔZƒŸ^º}ͼõš9Õl\ǰPôñðÚ×4RF^Ãi•·I^•„²•‹Hr ôÎóÍ¿[ü1‘ïÙSn£×%¡sÊF·…áx(/¤VÌF‚x˜D2GѲz {W@¼â›?1?‚:ï„'Õ¢TÓùpvžIŽ/ l£WàÑEàëZ(¹ø·Õ•újz\;ËbÎ)eûÆýö˜Ãkù(ü½`ÿèb+€?®#ûÞ/^HÛy‚´“ªò=_çãZG³êni ƒ|o4È>yÈÍAy]y+Ÿ‡¬Åq×|oþݺž®f%Zÿ÷|—zp~Ά¤ïÑúzGbÊ(9¬ã4‡Wß¼¾ùe ,Ð7Yr-8Ò%^Í Aí´wõÌç.øÃñ¯?xÈÞ±/é5'Õ³šJ[ÊZùNyJ—àë¬ðÕºL*i-ŽÀF:?zÙJï­_ÛÞttQþ±’ærtëðv©áM¥«µ¶Î“èWu©6×§SÿÁ•n¬q%‡^ãKDðéA´Î~‹ÖÔÿ½ùw'¹#À$ãhu§‹ö¾Ôô6Áž”‘u2[ Ã{[xgz¯jbov=Àƒõ'Í 3e½œÇMAR àp6äÿ/62MÞ[ðŽ'ÿ¿?ø9iJ:n7—ã{'xŸGÅÎç¢ÍùÎ|Ýì,‘Í÷¡ý½³ÎOB»ß)iÖ˜™î Îu_9¯¿r?w:ëу§ÛJtZ:ض³1Í/ð”TÔÖµ§í;ÕíôEk˜fƒ{† _Aú¬CYÁá[¡\Õíl ¤ãô²Endþú¶õ­_ËÝé^¶Y)€}k~oEFÙNyüó9 ·¢{””«Â?̰֦û¬ödG›Zn-¹Hx‡ ÔU¡šµi²R dÒTœéµmý©L…?;ÿnC§4Ü7Kà}üDê€ôþ½€êC>‹Ï[ í^÷ÛÙk/¸ÙÌóO3KÌs“W€ €ÕâÒ#[̰˜Š°—ËPn„>v=b îa:OW襱ëC}~^Å´tð­àÉ£(§¶ûï©8eBŸ¾ÿ¹ár]Í¿AÕæ‚ºãºÄÅ¥úÄý«^žÌî|ÿóÁÈÚi8OÆ5íI‘¦Só8PaxÉQÈ#¡jaÁ#ói*²H_úƒî¸½Ìèõ::µípVZ¨ó .ÃðÝ[áÝkù{‰$»À%>2n) þÈÎ)1ȧ1Üf)_³wÝÚ!®K*çœIõ)T|¯äaÈž8Œ„“Mðˆz¹7§næ\YnC÷"s6dçÛÈö¿pi´§(N¯*.q"ÂQÐmðÇ\´à}$Ò_†K~ÁtŽÞÑ}ÐÓæ2‡3J=Ùƒk€c?Ã{áH‡p$…ÝjÔ`+Á±Î#K àV¼™öðT)¥Ç“ÝÚPÓƒhcéË]¡°÷¹ Wã¦à¨cø½ nÒÀ¯qߨSÛ̦ü3ߣÑhg ­™Å£ ô†$“ ²Y' ÞzN;h2i* õ¾$–•pÊßø ö/?¢Ë6xžÎCÊ…´3²Êj{ÊãT`¶½šV[ÉY®äÝ®“u?”z ‡Ó5ÑŸe"\}êùæoï`+Øà™F;›æîy{,;v±×Þ¢ †¸ê[ç}©“ð@­ †‹®cd¼VÖ‚RB_ñ-òòä¦s¶zôðwþ±Æts'ÀSF¡•Îl“¼mt§”•“2QªáºöñÎð>Uö¦Ö]Ü^ÖüºDvÈnp¶Yi$ø=*üWüÃ5LðØo=éÌçV¤ûÔ–ÌÜ0¹1N4·Ž›Ã¿~íVOg‘3ʹãÄtš/™ *xK ÿ°ðŽàÔC)Š=‚Yjf»6ªÝåÞsÈùºùÛÏ;«‘<çÛ‚Ôש‹íÿèl.‚?ŠÛ:H$Jã¿püGQcœåî}z†œÛùþÕã ÐéÊv)Èæ<ª¿DÕ¶ªýÙý’9ëŸ8çܧ6/ò§/Ç/–.¡ôþñç÷éWôï'à„ÄôØ>ƒ¤ø¬ò¦ø4YõòÛb(õLŠ JZ‡ÌX z¿Ÿ3‘¢Ã–!ùþìü»íÚ8ÎfÈÙ—ÁD ©R|ôƒòÈè™YàKhŽùžEÍÉ7slã~¢¦˜ùæ®MÈSì+ÑŠkA?b ÝÖ¦¿¡#WÑ'VÁvÁKá“S~{Ð9JµÒf”[ŒòÜŸÝ7+;ÎSÊý|ƒ {Ü ®o_‘F'€#zÂë#AURÑj:Š ðdrwÚÕ{qINÎá¡Ð•‘#?ÒÚÒ·”’OÀ=¦Â ,φ ´Å¹¹æö4ÓBÔëâT¶­àqá À÷‘^v œàÔ¾÷®d™^—œ²™sI*ñÏ+JòùÞ°˜ïÛcnƒüã&®iuŠ ÿØÉ y<Ž|Èkâ ×$æÖµ< É%J Ê >:.þp>lݾç Àwœaÿ î‹(½d`O¸#´ôÔð°þÿÈ#md( ÷†nå|W'+8óýzƒlQÎÂáÝ=¹¯§ÝàqR éýoÖ&šyº¶“Ž 7‚ÃuæÒ ßü*sA5¿sY̘Mà’DÒºÞ\:N«èQÉ¥±½%u¡VÕðµÙÒûé•dz—_"ôÍÔf(ÍzïýÝÁn/[ >0Œ„ZÑoZÛ{@K%Ù † ò“ÖlïLMá-¤a¤¶×:_Ö‰oµ®˜Hšc¨"¿¥ÈöëFØýg¶f… ¾“I&¥‰ü/ý#“yh ;óœªnW÷[Ç7 ÊOg³sÀï)̆¯ª–Ì´u·Û¸˜ŠR4»ÖÉf¦˜îJ[ÅÆ³Ü,Nî¯ÚωN?ªKm6ôšn4Ì‘ÏL5OûsØJ6 éŒoŽ˜A®ïþó¨R(|UCúÎ.§´žRÒxžÞÚÖ6…;á ê]w^Á)Ë!YúVˆÝK5@3©h;ÍË4¦}ø”ŽŽØÕ¶²ùÙ=\ç9n¯ÛƒÈª7)5o¦z4ž¢¡Î&´Î2ÐÒíèGÃé”­ ŽB‡œO±ÂÿlÄä¯ñ#Úê>´Ö†àÁøÈ†éP+GAŸošéŸE=-µKÜŒŸ|ÿ*¼kÖÚŠ¼}ä{ðO8œõTŠfQ~ŽÃ?Ò@îÂgqf‚gvÅ6!‘#ÿ͇Ӛn":J¾‘y ïs@«9(ü7GùÐ%þ÷D‡ ·7ÆgƇ '£É´-ÿäÉçN³ûL§p$X‹³”×76Oƒ=G›©DÙù)χ\§Ç8«#ükþ€pÕöÑè¦vN;û‹ÿž×dH9$éFPŽ|Èú1%¹l1Pü²‘ÓJÃIùeà\‰ûãónÛp?/èÓ‡ÿQÅÆDk¸ Wû›kñFÚÀˤ‡ü,5øï×¾šAÏËŸÚäáqqŸ†¯ý ÛÉÃà_¹Â{ã?~ñ40[‚ôp*Î’{ËÛ¥¼¾ö½í,t’&Ö:Ðÿ†Z:»NILYÇÕpö.Á]}ï__°sÞճ˹CñPm%–­qé§{5‰6•¶2IÕ»F—Ã?bê!\™Ã’[[Êxæd¾—›Imy|þ*šÞîEûÔV Ñ4œ/º)8šV÷ЃðŒàuPü=ÚZŸáÉ4üù;I¨oüïØm@‹>n3 '­zç›ÍJw…m¢ žC뤘·âìM€Ñ´ ™@o>ÆŸXzigͤƒe³Ü¤=Á¿þGñ7ÿ•ùK¢™Ù&˜•zҘϭˆý©-ž¹k 8‹œôî0·’ã[mþÇë,tÆ9±Ü„ …¯;º“žÜ6´ï¬mL1íC§Žf¹gíw6­-àæq¾nœcig0Rh'ðÆ÷Pæ¾v¡MhšškhEltKäÐB·×ULc–›ŸÜ HnÛ‘OÓ@ñÿ‚tDNžMÙJ驉U:oÙÒî—̨¼Ë¹êFÃOÅýûÆ8¶äCð •ÈJǨAêM Ûf7ÙªvÚg÷°µç®}b—Ù‡ö-~r?Õ†OD€sn¢~TD¾x6í³eP?+u^~¦ž8Yé5\ƒ$†%Ç5‰ Õñ½å™×@Wƒ»â g¡yö‚ëš{Ÿ¨õÊÓÅÌ·%±W¨|1]€2”AޝZɨ?â›`°¹èçKq&7Ò@ˆµÛœÐÞ½Pó›”“ƒ(—¶É¼ÈûápÖ¾Í|k[»Ùd†v¤ŸÀ&Ã(3í²ßà¸S‡òþUgO|·=ø#²§áÔƒ*RwŠ€¯kpA\“ïÁsŽ E?þ˜N}Ðoëá˜sÒ#wÅGs¶´rêÙ†p 0ðƒ!ð°»È-s)S$µ,“¹HºåA i¥„Ìâ¼|¤Ò ÒçòK›õ½ÕRÿïÖȹmÃPKò‚FòzG‡ÀkôtÒÍòVúë (|-±Òüƒ¯à«ü;ÿA=)šóÏ9y¨²Ïã8nÎË¡ÐA‹{úfÌÒ¹ÈÐç4‘wŽœá"2J!ÑG‚Ï,A;=K‘C‘Iþà4©5ø‰TÓÁ}l£Sq´Î1ۆDZ¦ôVÔùà‹â꽤‡´™z¼áuŠ4ÓÕZW'¦(ázøf{Ë>·Áó'î3óÝm¶5œÃ7#ÎU{@ÊxÇê9øÇY(í5…¦ñŽö^×äÞ z™·‚æêël™)o|÷‘ÃÆRd¹ÜöKž¶þ§·ðfµ &ÛûPÇ;ÿUn1§ªñÍßžÖÙälw܈NB3çó%ÞÛ.z¾swA‡_Ú¶2Eµ®û› 2Ýó¶>zWy7¯óuï‰sÚ@EºÛPÔÁTßÚ8f9eÑ_¶¹ML.­w»QÅTfŽIì¶G;H I¨ ï¥ÖtÏ‹ø#øÅËWèÒDshrb´Ìùt{„Rrv"0ïÛÒ†ðñö‹ç‚õÐVxÈ*„^|³CµCÏC•9=o¡Œ<šöÛÚ`ïÌ4?Ô‘yïoq\PúzT Gv”,T3E%æï™}ïïNóêGÃk¡¥Sí"÷¾çÓó'62A6F•º´¾Ô;ŒàbŸ„L5Wh¿ÿþU/Èuw¨ÚÈÚ8&µžNAg|wâæÂ'ÓÀwgÍçÄ•l37½øV+/À]à,MáE™è †þ>ÿhöÖÝ.€õFîLÂ.¥òà‹(PײÙµøãÔn_£»ØÃ>È#µQ3øã€ y‡m€ÓÆV‚C;¼ˆÇpfìQ]0K žEJ&³d>T*9ø#¥|'Sáo)wÂçv癎j½7ÛëÿÝ*97ì_Oàð£Å<Ù¿~­Ê3žÁCå±Ìþ¦»À:uä.\(ˆá oç5\ÛЊbþ’íNF¤Ÿ­œ2™[C[oðY.½øÿ|ÖûþÑO¦pfé jHÆáý3UæðÒ³5ÄúçíK´Ô½Ø«?‘–Ð:ž#S¥… áû|Xûke]*#u¤ ärV®òOPçz|Òß?çúoïÍ_RÉSËL¡„ÜÞ¿~m*Îlë“GîJ5}"¾·‰7À?rh!½ºy ÿ»õÄ‘¹\g戦 ×?ÿ¸å¹â£ø £‰QÆÛ+v _‘VPùìÚS&âOtöÓ{¤‹¥øã$(t"h±9/¤@›Ã¯ÿû»iéÞ´QÑrP¾ï¦eÕ^Þ„:W`§ì“J×û·VÓ›ú {Û@ jy"™üó'^)/´ì]{üì5“Ü…¶žŸ>êQRš%Ù½•°ÙpÌQôGõjOïï=¯QõoÑa:P኿AŸŒŠž2Íÿf~¾ÿÊû»áÍ6ÓñƒûWÿvüGrsÇÿþU)·¯[Ê)Š*k=™œ%Îç¹ÅIþ•óïó$t§XƒŒ ø´Þyõ™zid4jB÷ÀË|s!ÇD›}@q¡O@Ísé8Ô$zH+(M°ËݰŸ|~®¦™e3ó-ÛO¨–ééwúõóAaó#O·ç; º@\¡- %4ÚÐswžÚ<0‰L\7è/>¯¢Rpi¸E("´-r«Ú ®•åüWãîÐî&8þx´-j ÎæÇÕ&xʺ ìdèÜ”“³‡;@ý;úý£0´s)œ"´uâùV—êwûŽU’θGLÈ•î;:]àùÀ/ëŠsòxÍJÎ{á‘d†ŒÒm’|M~‚Æ–åÇ;•û@ñ_Úê¶uˆsØÃ¹‡^ ô8”§ðR^¥îï›|Ô‰~µ<%ê»_ÕÈ·Æ8h!!ßC²_‡¤ÿ²CgÊO;qtÛé)Žx*øã ]BCҼЉY½'´ž·¹¬âÐÀH áyŸ‚‡¬„Kœ§H!ø#µ}F¾uÇ÷ƒŸ+ð< â2PZKKœ¯­Ú:YÆhk8æT¨âìÕw\αÌy ®×Ù>{W«º§žéCé}4A¸W²…)±œ“ÚúZ*K[٠ÉõºÖѲF6ªGÃÊzÊ8~ÉÇük‹„Ï?nz¶8g‘ NÀ?"ËU;Rq!Í×(®¿Ii¡Kt¬УPê¹²B§Ê·ÚBÎ#yLdþX@½m)ÛçÝñ–4õÜã6U¢Þ šÄö&_—lÞdØ«NúPÎË=¢ãµ‘†÷;uƒ—§ Îì — ¦C `¦ãï=?Ÿæ®´Í‘p¢wݶá5Ž7’®Ä±>“;p·æZÕ;Êû®IÃ?&kGí À3—):òÐT*Á©9“=z·û_Ý2›e¦×{ü‘ÝÄü—þ‘Ú\5YœmNwš[ÐñÝÝéIàlp¶Â?"9©¿rþÄ»žRîF›ŒèŽ-Eaí §¤ùÓp×Û²6™Íå–õ;Ô—o¿:©õ·™Ñ‡S3dùtf‡yjkRsü9yh•Ûü‹*f4‡L5w(]#ߊêU‘“ë#Õ7¦(vÍ@Ì MMoà)Ý£BÛ®:±lZªˆ¼uþ±ÝO3Éá#³ñ u‘0Rq KÇá íçWØ] þ8c÷Z&åÜP…f4‡"à¿; ñµÐ¯ÎQNðøNÛN—š69Ÿº×ô?ÛNiaèýmVTjNéáñÍr²ïyü6xæZìmJ^O•Qw‹î“ó_=öô3‹l~ìÕ0ÿصľ·œáÓ©çái&²ÿ[dbß:lWp.vÒ:B^;É9Jµ¦°ŸÞPZ¸d&üf*†DT˜˜¯Ó7v˜›D6CQêpÐÓ/PË tÓ?~0´ùK=Ýïí!xÄ@®ÂéØ ×)A­(ÏAžõò:xTY~Žä¿Œôî;ŠÆ¢fuxÈ}w×Gþ±Û©sì›Uyt°(zú/8άPôdÈ• Á{‘H·rn©!A\ž”ŠGBQò~f ÛV!®t?ç2AMTÂ÷må¾t‡FrbI*³¹øc~Ôøé~ò™><ÐÈu>éŽóýÚôÿ â5§ÔoZIjðQ;ÞM¯x2È`üí/¤ñWzF3x+Ëin!#Á YÙ·ï]ÐÇdkôÔ)÷A½ªÖõ¿¿»‡:"¥Ì¤<[æKsPA,9®Ó5•n‚’v– ¼Yü97ƒÚ·â;Pûy|'ðOï­_[ÝÓÀá*öB^oÅù9‚KÑå¤ü®O¥¼Lƒ_*ë÷zHÒRØ»—ºYJËZ®w‹"g¹’Mõ®ÞiÏ1çÏ%ôüTrÑ®·1¹†´Õ·O{ƒǪx§è.Ý¡‰õ˜ŒV‚¯ü#‡qÕsu‡ßè`þpß #f)ÿÑmD¾,M½EÁ/eá@Åu³ö!ÕÖ˜ÞÛH ô´V“¸šI¢²Ev ¢6’ØùwþqÀºkl;¸ü?È{—ìðG&?Êt™#;ô[}®“½C5ž7¾áÉ:EóëZÙ ç‘•¢ O£r8÷™lh«äüoo¹Í"SïÝ™yø·ã?â››&“³Ó©ïöt ;YPå¼'žsÎ9íDp£9ß|åøóp¦®»Ó棴=4“}æ´3·Ís÷¾mhsÙÌnçsož~¸õu†À?†ÛŠÔ ŠÚË–³qL4'b«Ýd‹Sdšá†Ì|¡oÑÍRÓÚCÄ£KÓsú‘÷S9Jh§#럓·‘ƒ‡ÛoÜ©Ÿ/çÙ焳 ¡ËÉù¬ÿÝÕßx Zæ&ÚòhFo©8&K'à™ìçn¯çª=f·Ûø=ï4tzùÖÍÞO3©§ä«È*³èŒu )ÎÏÔkï”É4À¯ËH¼‰à“ ána¡™ÿ¿\> *¿ºëÿ½Ò.p™OÝ{âbÞ‚?. gu¢õ›®Ù–”í¿ªu§•HþÏhÜcÜê >o>”ϵ#Ðf„O`*¸‘èEý¥†n-£`ÿ8n\(\!»ÁM-ól³s?ª>lç{cóÓ,ôЫzŠº­íYäÉÎHÆÁüó_ùæ¯ú‰£ó*H¿@ï|«™ŸÅ• # ÅqÔ„7…³K?òNÛ{”œ·ûŸŸ?=ìq$—u2B·K¨sn)+“ù[Vö½YU Ÿ6…£SÜæßýÃyvú‰|sÂÎäýì;C]XÁ0«àOe±„Ó_ôï/Üà~¸Ò™9ºøæOlãÑ&c9=?¨xÉ)ÿ¸H9/ލ®žV-…FþÐYÁûZŸé08G pÄ.‚¬°†oóÞìŸ# º[òƒzÀ9øÝ ~ÐïYt‹ÉX°ÕD+»´ƒ–ÔÛÒ™:6ôþ’œâ\¾| Ž4 ò{Ï?JyZ˜ÉÈý‘×Gãœø× RÜû“΂'Η™RGËk|ï8ï<½¯-ôÔÖšDçÀG¯Ò!dÕèP9…ý’Õ"þÓ[Vd‚Ûê5¤ëûþnLs þqÀ)ëþãñÏõܓ޹ëqЏI€¯\0ŠùÞ½d3 Ï»Ôƒ¾µáÜ&æçºûÔ¶µEl7“óuë´tþBOÿËæ 5P¨1öë˜ÈÎy[…¶Ùp•l´ÈmóESšÍ¦¶{¾ñ˜Ú#s@_ÖBGÂZߊ¦ÇákmJBÃlwæçËyÎ:6"H#µÿÞÍn$ÖuÐißx¿Ûô½¦*ü Å€¬·Ùm»Ïîá&Ï!{Ý.²áÈ‹zy¦ÚØïàT‰ƒ?Š@+.‚–WAkƒ>ûü£ª“ |Q{rNPøGD¨õ * }ʆ=öÝe:ßÌ€½.@sí*7î'ǾðL4—lN> =k×Ih ]žA9-·¡ÞÈáwà¡ë¡ÎÇéÒÕ(ô)kG9¡Íì“Ýüà&€«YY¬„ƒd¦\pÚÅ8ò%”Ï®u¿‘ Hß±y*ü£%z¦o˜ô¨}"ÿ˜äÉëö´›(#´·4²ö ê…LЊâ£BAôúåØÏ¢ÈýCx‡Á×Ãüo`µÂ÷”€ÃÍ1!ß”ØîübCºHÌóáùP¯ H- øâ;‰%Û¤Ÿ”¸²Œ³HǹØåôü®X¨ytŠcCŽe­ã<°aðiéxˆf%ÿç{Göóp$úKKëlxK)yÌíáx¹ø--Õæ¡T28®hxÃ)÷;ƒ”‘†g@Í‘Êh ’öÐûºPÃÁ?Ô[׿BIgÙÅYPq ‡®€·n¢¸nÁêÕ³‘p¦/àªuáú¼Š®ð*„Èå ´´ —YPåqÜGöÀ•þ€K·-Ƨï⎜÷½ñƒ<¿šÙèí¡øùŽ þÈ&÷¥Ô½´ —źX³k}PCcM)Ë ='ñe×;>á-ø2>k§«g³#Œ7ž¾‘[¶ü#‹¤ÔšFGáÌMÒï^­{5©n•a ™Rú“láþùKòDôåâïõ½v¦±{Í:”•fÓ<Ž ç<"åà Àåæ•NÕ¾z $3@ãèsK þ¸ Xa‰¼´ôì7ܹ¶-^wꉾ¹Oªy›‚„ÊÈüª¬94§w÷’z½…t-¯Öµ²NIrˆÎQ|ä¡¡”_’þWæoÏ`V˜à'C=éM‚íâ”tÖ8?»KÜZŽ/œö$\u’»‘œ”æKÖÂÞšþQ¹Aý(©}íT6ÇÌF÷ˆ­g“Û.9·u’}åû»1Miw‹EÉÁUèžä$5³Í6wµ­kÍàfó—oãœ_ ‚ãm1h×RªkcÙ¼æ‘9asBí÷À§,õvë}QŸf¿ùÃJу{#ß?¡bà’ ZØɬ½$¦6¢ôùrž3Îèà›ÏB;Ry(q*(hoß «`ä\mêÝlsÛÏÏ0dzÛµ»m<ºG)ø$ýFã —õ‘öGQ ŽÄÇ sè‰í GsœO­õô?[#§Î×Ïô ]ô­5ŽãM„½{@IàEqø.|)ˆV£%ä­”—¦Ùan*ó쵞zF˜Í¶Z}gèùJJ¯m*'IÇQ9ø¨?¡Ãèå èŽþ¼ïb;6TÿÈb*á¼#E¾Nˆ^´í¤}¹@ƒÉØ.îEøG#NÍQ5ú\è[ÿ< M¥E¡ðÇ4O>·»]KI¹/aÞ!úVS©tÓNUGH ¼ Ý苲Rƒ?âþWæßMkæ¼÷dí9üãß¾¿ÕX'£³Ù)èNv úï_­÷<3MŽº±œ€FèþÿoO<%ÝàÖÄD4€Ûsp Îf½»ÓÖ²)mJ7åWÎ_ÒÙ-þh‹ŒÔÖ¶¶¹Ís‰nŠÿˆKÓÜÞ_T1½Yg*»(Ô1Ü?T5ÞGMÀ=¡[ÇÑ>®Ú²Pü¶Ð­_»ü‘€Ê!GŸF®ÛE-ÐÆ|+4 ¢›Ø×[Ðêâ”À¿~Ô/vèg÷p¦g‹½d×#á<¡"| Lj}©‡¤9’júù£0ÏFm‹äžŸ¶;ŸÒúÿÙŠ;é ÌM @'è,|}ŠCÑé.eäøP¨ûÐúqP¡Å”¬Óþ¼Ñ`n¢–5]Í*›·¡ŸÔ¡eà*—¢‰øéœ\ššBy®Áé&ùב÷ïŸúoÝÀPÇŸ'4¹Ý×ö:…å• ¬õд"TŒ"Âyî£OY[Ù52ˆ;pbî€OiŒk“g1-è&´÷wÇzrº]íFÂHP@|~‹^Y®‘ù>7|x ®IfÞ‡¯¶‚%”}ïj÷‡¯–¥$· >zw¤SÑ6„Då¥PȼP´¦8θ<ŠŸZ–CUI)ÙÈI$ úl°G Ô?Ì1(ƒíâJ×v®YF6ñ\À[xÝ¡Á|•­Lã y&ûEtšž„‚Ö—§ðÀpœŠÃË9>Îpd‡ÄÎä*uŠÀwSDÐÕîˆvqÊ$ù w×úFok oM9À…¥‡ÜÄwEľßàíPü[ð®T!ÖüÞ¾E†8AW©ÿ::ÊK¤§ü*mù ?ÖÞZH÷C™Çƒ<ºÈ 8ÜoœÇ7[ ?o]â<à½ûW5<ÕÍøGc~H#ù'V@ep„ õ™dβLçi<-~è ßK39 o**˹œð©hÖCÁ3ê[³Ö±HèОbË3;Æ*G”õІÓV2M¦hX¤ûSz®´E:ëyé äËsA‹m9ü‘ÛÏÐÄ4q]´ÝlH{c9¹ÏÇ%…7›aŸnJ]¤S øô†¾ö¯¶»þ‘@cIXû-šMÛ‘‹hû;ÿØhf¸ l‹jB;ìc)êm­‹A¦sdºøF >ÑÙÞFzž¹‡ûiU¦“džýÁ4hù#ègðfNr šÿ[3â½ñƒO<ùLÀ¿ô4æ™ÉæœpŠ»Cá9üÏÏS;÷œ}N7Š“ÄLÿªjÑL ÷è %Å v”Ôîƒ_3{Ý[¶‘Mg“p¾îùÇbg2Õ a¶(ôîõ´•mFsÆÜµ¥i¢]WIA“Üž_T1žÙc:¸+( ¥¿ q}k‰§· Q—¨ݳ… U=mV÷KŽyŸó ¥y,½ŠvЯÐ×L4ŸæÒs¨ì-¨!þÍž|kv{¶Ùcv¡õM˨.’rtèœoò*…OQ)Oàu«à™óœpŸ©XÓÉçÿÑš®ÃSÃQ2eNç÷Mèë¡ø©°×Eq~÷»YÌÛOÔ gzš6†–6¤É‹îØz”n‘–ÓpøGIÿ3 ™ø›ÓèÇñ=ÃÀkO§}[jSÝW{JIêŸyÒ7þ< í§§¾µqABÏ Èu }¨6ø£Øä©ÍFÓBw’'ÛËn¥ <–+s2øGøkgøG7Îů|sÔQÞ YÄ—pMFSO¨r'´©jôÚýÑì 3œZ¶%U‡c,@ºOÅç‘F€ÚVA¹Èn•Ê\Ÿ@bÉXÿøˆ`¢p¯¹–ÜžÔp®ÚHðª„<§Â“†£etå{ðˆ<\¬“ˆÈ¥'ñiÅEê𽃠ÿØÇõ¹³oíDçÃ;b{œ\ÔÍà³ ÐÀ1zÅ}e€tç—ÜQWêK¤Ý7PQß ]]ä è(¾ï2ön)ÚÐRÊbüGëå$¼£74âYà– ð£g|VÿЂúBZètøG=Ä5þ•+Á?.ÀAæò|õË{ó·×÷üafƒÜšã¼Â¿%°J+g¥ ’d2RÖê|M©å¡Ïmµ(g¿n•´²¾åQ¹nƒ/Ùàñ§u¶TãîîîîÜ‚»;„`à.ÁÝÝÝÝàînƒ;Áí­î÷.2ÀòÝûþÃ7È0½»tIWÕ.w;”@JŠáæòghüñ§™ƒù;‘òAS^ãž4‰Â:ãœÝT‹Ò&JŸ3×ùC9Ç_Ý!˜yWy8øÃþØÅÍø¥Û×{/¢ü`½¿ €7þ@<ßúqJ!Gyp°5ôt¨é‰@ÐæPúo;2˵¢ß-á0Ïßt–Ð[z´º „›ÏÁ¸âNsD•Ýü ðï²ÿü`¾`B~'b2ãË^‡Ãàü''ǘ½Á)¡ë“È[ÌHß')“8²¬à2<™Îº¿™¿=ºÓÝ™E™ñ“ ¡³–r88µºþ›@ I|IÀ1Wo¢¤{o/ŸDkLáÅìÐVð•h),n8¸Ð2 1vðAx¸¬-ûØÈ2NL™]Ò®RZt$تÿçô Êo'ÜÜ—ÑFzÒ¹]hðÙ—­*‘™Æhˆ^)iä1Z1%Ç”Í`—µò}5³v ÿv̆œv;34U¨9ç„K]¼/ Áa“8šÌ–°SWéD{QÑGÓè<)&0ˆ n—K†‹á4 ˜§þ#1"Œ—-xÿcÜ]ˆè8­áíVÿq^Ki ïE„×T½Äï,ƒ¡i˜ŸEÜc~Úñ¤OÎé%øŠt67¢wFñ¾°é½-u0øc°4´Ç|¸…]rü±‹3¸¿|¯½ä¤@Ç«Ü*`o–ÙàVà#x [Íf·×t‘¦Ý¥¡¾…Cún¡øï øð<v-}ÜÉñ«§†3–HK¹ƒh$%%`ѳZÃZ›S»ë6»ÀFeÿ²y ðÏØgš^®šŒ@ë^–Ú‚ñÄ3ZÞõ,5Ð{¸?gÖ›t€j¡ÝÊÙ«6®íª«ÁåÁ¼Ëì"øp€.´›µ€mîß5mØQ0 Á÷+·t¹(§àñ’ŽRNÂHo¼[CðGøè˜¿·¿ê?ò¸£h=8w¸Tp¨YoxÊN`ŠÁÀÎ`Š8@Ú½Òlð€­LE«øò'VæP³¾È.=ÊÔ¢¶h·PPí#Q¯Kp@ àFfábé-A£ëhÉ*¯Ñ‚Ó¥$øc•Dæ 4(P¶1A15ÁÓSÁ‡d(øµ§<ů±Òˆ|LÃÚºöœ ’œÐøö)à?.Ë)ùS:aühÿ;Æï8x¡/<á=¨u ü#ì ûÈÞ³Ïmm!å´‰‚? %Ëä´¬–­rý]Ú-üY¼’ô^-ˆÖ]êÊ">$CÀ;ﺷ¿Ùøö¡µuQ×¶ÀÄ p¥½œ 2M¶Á#ýN=f O3gÚúw‚ËMŽYKoiy{[ãksðÇR8‡Òð¿Û¬ºDgÛ«àäµþìaAô”äÃȼùIþö›ž-æÇ•'P‰ô9í¢ŒRJƒ?HhÛêhíŽÚNG7Ú$v‰Ž¶‹5“­“­)úüÇ ÊIM>Y?ïâÞ Hœ=:V‚Ó?¼[³yÙ5¶–Ý£;á]h›Û£ö18tœWr5ö©¼[Ÿóû°ž×|à}ÎBðG[è‹.ܯÑYMâýËöÕÒð\Áì;ÍnëygxoƒÒÚeÒß–³ lk8“ǘ‡Ññª\ê#íúú´û_}RÃ|t¶Ï<…œŸË+õñ‰à¨)¿QÃêV7¾lÇ·=ñÍ+sÄDtÕ„r¶ýT´NAp|ø‚×Ô‹£Ó9“ÄÙáœtS3ÊMÅÜ¢¦ØO•ó°éÁm¹å6íåô+erŽ8w¨4ÔÀ.ªÈ©x»Ûã‡"¦r^;º[Rg¡ªòs®!; }#ÑDõÛ–¯"jdîü#û¯š·nx.Êa rOòV~ÈÓ9 ÓwB±!üGZ)€Ñv”¶Qúþ W×ö%·Ügñ~ŠÆÄŒ¸Í€ß`sY§cµºö‘dzÈÖ´ñì-Ýa›é0饷Ákͤ¬´•³r@þ–•rôqÕ¬˜§«3üÑ,>Ê:#äèúDKÚKZV»èf;ÎFµì?¶ŽM]hÏj$]?3ZXWJ~øØSŸd£½ä¹jîAñ\Ö†Õýt‘ŠË\xŒS6mxí °®= –[¯ýí-mÛëÉn{N E˜‘š~¨o§©{lž£ ·„¤trSõ¦¶}m6{@ïè1û|4ÄžCy€Ê€åÛGèã`Øe¼žVPTÿ?v9+Üsô;У3TË]º§±½%ìJÍ­KÑV)mA›Ì;ÅûÒî·IíijOê¦SôV\Ôi<×ôéÿÈþÝHÎTç·-óÆSÄIü¯ÏŸ¿pÊ™%¦Ž;ÅméwÛ=‘ÌesØDpSšäÎÏnyåéêœü1˜ÓÐYDœêœp×@…§”ûÉüW Íxè­Á” huŒ§Ñ0Šè´s^ÁyüE(ñ®ŸgwN9•Üéü†cüá[ÜJ®Ãy¦¥˜W¾›@ÖQr&FÙÝÙ³|Çp}8е0Ø­§g—²Ôþ|1J=œT•˲…/ üIeQðGMp÷3žÄÏ ÿQº ð=•FÕÚ×îÓĺUBjf)Ùå+ÝÀTe“Pü/”Bs‡BA Ä€&ž!Kdø£³×ÒQÃÙ%[Ôž RXßâ÷pÞä(°¹©tá6Õ|žQë–)…Q±•ߣç&Á¯lçkÒ[×éŸp,Uìl¸Ãö™m¢#¥ˆþ®W%!n/8…Ù`¤Ëhõ¨òïÆ¦7àí‹àó^Òˆ»B¦éHmª¾;—Ùf6¹½ ½mm!£ô¨¾—À×yÙ'íü_ ?ÉUÒó«3„ƒû³ªtƒ¨I–_È ÍgŸj>m¾˜o3Ú*ö²mi#h]b]N©8zç ÊWR2Ê«OòïÞóümö£'OÃ{²¦â·Zjê/v¹Mà»gPgZë]ÿ±Åƶt¬Ý¡iìzCrJ ¦Íà¦&Q‰Oø£šSǽLAáI7qkÉMd§æöæ·“Ág'u›·çí2û'X$”í #ñ·R表Kžò¨ŽCdø ]üdý|¥{–þtƒÐMæmc×¢õŽêB}¡qmï$ï{{þc¾,²% æ¢uÿáËÐD‹1›jŠ•‚ÿ‘ýW!œIÎÇ\Ñì¤ý×ùK8œ\fšÉî6usú?¿Úë‰höšY¾t“ê‹òÿýóÔ“ÊB/(߆úxã^1IÎà•”œº±Üøþ^?þÔ0¹üG ÌøeÜœÕÙä<§²üÕ#/uúæ¿JçlwÚ¸Ù·ÒÛ ó"7’ƒÐ§é¨)”ó®ÏóÁGÂ=(âå/9iöºÁ€ÏA !vñT.7ó 0ùo~ þ¸€1â;·.©<þn 'zn;ÃO9ÊÕ‚‡s4î]¸.7»ì†äÓT—àûÌ·îêø¯'»iÆ'PŽŠ|5MŠHéà?¢é¢Kl‰"Ë}ù¦1'ÂÊZ.ÌhŸÍ‘oÄŒàÌt6PZ¿oàËFË`XažÏ€Ð…y °â:œÄ2Ìß.Ü¿¡ÿÇrdša.%Z'+üÇihúÅ`£hù¬ðIaÀÁ¡ÁBµiªRÇKwè×¡è¥Æð2)ø%o½ù Lð¤v'Ó&àóàO:yѹj«2OJC{ŸÀ̆~Þ •yàÍ‘Ü ú¡6”ß9'p†•&•·D–epyP¢¶P©ä#‹.ÐöMá[—ÖÀèJ˜ÿ±dZu²\” \&|q~ð NU àhé Õ>‰_A›‡Ð(`Ÿ!ê…Ò Åû\P[C ÞqÐ7ÏÁw£Z ¤ÙÌç{/Lz Ç5NúÊn¾³^è¶ô€ÿˆîUo,owõ­§ ×+RP|ëû×á>Ö VsF7ÿgñÒÑŽ ñ€‡‚æñY­Ë´¹Žœ·Ãl^{T·Ø):B¦¨cE»H)x_þöž¨qOéýɧ÷Å<•œilpëOÉL™9‰^ÿ ÛYÇë»Öþjk[ò±iuª^±è¼KjÁË܇7«Ž Îo„¼í™bް¼7 q˜§Ò@É¥­ì ›ÇŽ„ŽgãyØ)ö´fWëlû@ëØFzDRÈ0 ª¿Étž@™èãéâ NY÷ؼFçdIEV ØÌÞDv=<ÑÝ©ûí[;ÕŽ¶o\ëÛ-ÖÁÖW¶q5„¼ƒsÅg)4ÌžOîÿ˜âî¡Êq}1?Ê{Ù­úøã¹V¶9m-øÞC¶¬]$GlGÛí0]=ò·ï x§¤x¤}-ËèÿöË™í|¼‰ò½'õ¿^?ììw’™‘¦€û‹Óø\Ì}OnóØœ7ÏLp ÿÏÝ_›ÄéäÏ_’ŸQE.HáÝ~Î[‡è>5¢°”ÂMá¿aäÇŸ¡fЯ…à–üÏ£Pʹé(Ö^4ž²KǺM(blg¯3ÐÝÌ®¬CgNª†UsÑ*è‘`©¾””ÃqwJþCû¯.™à”xUƒ‘å—sn û>¾‰²Þjgg‡7ÓJJo¥ûò¹àyF.¯òç¿Ê¤. ÕkáBÖð®"YÄ—~'Ÿ£&ða.O2῱¾©”ù<ôœ–̇–œ˜”•ü˜² œy [6àû0+9ßÊ¿»3哇˜wm-êUþc*çõã±RŽi Zq>xá$~b,„iéWO©¤v2¹áø.pfgæ…¼—“sNôã&|gפsn| ­%´LåÊà©ÆõŽË«Àr_Fî‰ë¶§£þýº á?^¡ok£WBAƒún'Y†¹ä0”ýz¹ƒw舘 1®º“¾È_2ÄüA-Ág*«1…œƒÿ˜/¹˜ŸW€?Nir½(Y4­ŽƒS4ptÐcÉT‰Î·Ýaú¥§¹FѸØr|À 78W^Êñå¿z kTmM ¥®Š¶?¼ öXá?QsšÏo¤:fRƒ}Ÿþ¥áÒ[Îò# þ"ðÅcingÚÐÞ'öŽý]·IqªûÁï‘àöÈtÔç0aþ@ëõàw³Ë)¾Êd±låY þ¨­Çä­<²ml~(óÙ¶‚n’^úXÏHs)"5О+¤ X¹’T¦>Ä*éiìŒFM»J·ÇOåñaµžÒáö¡Ôqð3Kln[Ò>ÇW ü{ ¸).x´ Úæ1ÊWD*Èuúˆ7G<Ì#Ž…‘0ŠƒiRÌÔðVûØÅÎÒQ@øÞkv®ÝoCBõw°›Õ¶Ôí’l~ >iÊû¡›Ws:j|%Zb'ˆ.%>ø!ŸÿÎÛ<`¤ðàÇ|ˆ[Ò@7”}{hú>ÀÏðqÀ‰=ÒWö_õó$uûÒNôÂl Yb ÔÍ‚Ú2þíó#A¥'š,]@µ‡(ó(á÷Ùù»Ó |Sq&S’Ê?BÈV~¸ŽŒãxø—jLÝ¢[m€fÕÕS é4ÿíâQ—ÉàAKT.B³õK=óªµ$ð~ŒL”2õl ‡ñÿî ÆîWkGØM`–tê@õjðÒï?êÉÜ›3™Ïó'7yÁ͇¡‡S¡t‡®8)ýu‰öBýzÚ•Öõ¾²ñ½euŒ$Â^ßZ×_ð=‹ðÿG 2ºŸçOŒBoà.cŒtF´%¼Néh­ QŸÓ¶§ÍhÏëûêÚO¯ë ¸¼ÀûsàÓþrYË"ºø!VOyg&GAß=áÒRþD¯=’]ZÖÞÑbà¤}vºÍ½nGÚ¼ZJOÙ³šO×€); ë>©,Y1š¦~ˆwÉ3Ñøòü¯Â,u5Çàª2A+Ú6„mß ü±žf¿ \îfÏaûëcÔ¹·¸àâ<þããy—ŠNu7€" wGcNå!ø(M îXn Ù»Õžµ±¼«lûØµí´‹Ýl ëK¦±ä°g0ð! XbÇ'÷ŸÏv7R  G¨Ï tYƒzkÛ9ZGWêjÝmÚ ÞÞD­mOÈq¸,¶·.××à/TV'®$1%Çdÿng¼óqgÁsÏ¿ÿü*¼óÆÉeV›nk7‡Ÿ?.y‚›}f‚ 0ÑL˜/2ý÷Ï Onw …¿^¡Â|Ú½oÒ8óYðyщ(–›Áäû©rV6¡ ûQr`ÂDþ•†Sg«ó7UâNô)ߥaî÷³ÛúžÌΧ¨Û‰_a r=â2‡»ó3·)·îÕ⥔þôOÊøCç/›ÛîS*ÎA šð þJ>Øc`4@gãè@¾íÔ”ýÀçW»(€vPd hd V5žÀ¡¸:uÆzLèŸð2›/£ÞóÀ·M¨ïDÌj²²o¿mShÕKL’íÛ«A2Båúî\5L¶ÝVÒ!7å7ýGh§½s€òÊ.ŒøÚ¼®á9ÕãÂ<…³ÃÄæÆ’C|»„çC׭ー ü1™ÃÓlóè+Ñ;)ÝH|½²59¿VŽÓ lçà?Ör1*ä¾`¤d2åo/—ŒÿA»Ìã{_ñ3=ÙÝ´Èï?J¡nd0ççVÀÄyRîà çSí–>²ZÁ{Îa_¶³?€!åXi¯s8P¼á¦ U@ÖOB„›ìË¢GÖI0_Þ+cOk]/14»N⽇_l%Eñî{å1åÿ$[øÿ} ™“Œ‹sPñ}Ê·J|ЇÈ{ø±2GCÚ#Ä.¶¤ŸÔÔ×2~!<°ï¾ì WãöœÆ|~¢ý É…±î9µô•pª·e°®R_Nªîv»ê}c‹y»h)¥ÂE¤à ‘Óxç3²#?²ûùçÇEè'³\C©ÊHG>(+ÀÍ´›œ•‡¶Mm·éX»Zÿ”úPoJ-ÉŸwZvÈ09‚¯¡tûC¬Êž¢Î~ '~ƒÇÁõ$¤p[oh{_}·‘œ¶£m ›ÌÞ³Ólví '­Ø$ºJ*J¸¿¥ä”ø<ðC¼ëž1æZîåÈz‹P] ²ö¢g{BÇ·°oíDpÑèú¹p7»µŒ­£ &ˆhYÎs(Ñ'÷GÕtʹ‡ˆ97æÖyê“X6ž7™]a‹ÛëzZ›Ú8Þ¶ª}þ¨ všf›ê MªÁàjÏ  »¡NÑÎü±É™­Üú¢F|:>¥]½#ìb-§3Ñ#ÕÀj­¼S½—mo;Mb{«ƒ?‡¢ÜFör(ÎöÀ –Ìôs+ÿ3OtgÒ'ù‚?¾w#ö·ž„Žk~5L÷w7‹?;ÕOX³ÂÌ7'Œkb:?÷éÜ+Oyw=ÅóÝ• „yê2Á>kÜ1”‚\Jå¦1¹ªœÃL_`È8JÇy87¦ŠÔÀYâ\¢<††PLðÇX·ûEŒâlqʺãù¶o­+ßK@ÙTá¢äÓyÞ$ß=xÝ)¶û#+ZGÍc7 —bßE{0£+ÉvN ]Å_—ïbV–€r>CG¨ô¬ŸÿíÙL÷h7Åá÷œþ£P+*ðsŸÿü‡ v2¸¥gÔ’wpj¾oìw"æ6À‰5á´e$ü-9'j+a$¥Gä hÿ)þSàåáÌ÷¸É¿™¿Äq::ë)ŒüÍÍÁkK}wÍRx†œA‚H"ø¸b˜ã{sÞÏ yG§i_½%1ƒ“ËMÄ7ÀãÛ};À Å9+bàˆŽê¹w€Œ•%)˜ ¶ÿňàh`¦Ç_Ý•ÔíF[¡Æ{ÿ"É;È¥ñª°2hôž‡-rÈé%³üûw§À#Fë–EÜptØ œa¥‡)ºùvE¬:æ’SøÙ™œM¶ˆ£é€ ýíNÍ­œZ3À%U7p›}¥ôý¹Ny)ð]˜%Í-zDÅÀþ£PÂâË}8±<:V¦ë#½¤ìpðÇi¬!t–DƒV0ú܇Ö.%2ŸŸh_oòîâçœñúÊ!öèdèÝQþü% €Uìámn+x´$Ó屬—“²mÚ-þY¼üôš}«DWx”Ô•á|XÀeuÒ9(Å-ÛÂF²t†í¤SeØî•oU\ZÀÏ]“…r%I³þ—÷TuFcDµJV]bSpNÕê¾²Ò•v9¯}h›ÙDÚ^l›A7à'ÇÈS¹„¸ÑDxþ‡x§<³ÌuŽ6Éqô1u  ’¸þÚf³ctŒ¶·í´ÞI õ4°Ü#´@½ÿ1^|gˆÖñJüÉçWÕîMòrFßIW NÁÅkS{S€¿› \»u"/°µìûì6ßí¯lãhLy‰ù<‰P~~E›>9ÿÑ×OáL|+ 'éž¶òŽ´35‹ÞRµÑÁJɼ½¾5ùlvŽ\†élgèR -82¸¼—•`’¾vÊöûIáLûÄ“ÇÉñ/ù#™ã5…ÌSÑíå¦ð£ûO sÜ\1wM“Úù¹ÝœßÝkp ÉÑBµ8,­C„ÕÎ w;Õ¤ˆ”ÕÍø“ëç»à?ªó4J‹ö^Ê)üÇ çeâ5´ž²C£OrçŒøú“ʹîôw×Bq_…þ>»ð¥ ×¥Ù@ˆ]àgTñÚÐsó#Žò¾ ‰±X‘S@@•?‡¢¨Ì^Äî ¥ŸY*úó·sŽýn C;Çè>Í„£zÇEä<ø­2ØgØb —¦làØ2†QgÞÀÊ[MÐïDìlJ€{êÁ_ùvFeFÉR$ {.I"ñ¡Ägñ(´èzNgS‚·ÑZ7Ï7ï?çY윢8ðu ÆÇcïRUàò|x¯HPÉÝÁÄQïñàºKøuﳊcÓâ¯î+ï”vcECÈtN uŽ‹°oÝi7œ×Ÿœž¶¸÷€å%¢ v7âpqAàfð²¯ðÇ6O%wmáè2 ¯‰.Ï|Ÿù Nxèû¢¢ðY-¸0¼Á)OÁÍ“x*~uCÜ&ì¡_œÿ˜`JRCxž²]|ù­.qôk¨ã Ki7{\ÓèIþ-¥%þTi&3À oéøþÁ®æ=§úˆ7 ?³u:Å3 ŽÃèQùK]{FcØêö<0¾*8e”$gyõ J\MÚ£ßr™FŸE¼jRsOp-IV¼o'ŒåºGèB f3»×¾²w ïë i¤ãôš¸²x r ¸™ÁÍúY¼bBâ`¼ùVõ[ÉJ¾)ášèvÉ©{mW×>†çêˆøóõ)JØœÙÞ䈬Ö“tåcÏz8c9¯t‹O—‚R’¢sMMdÛÛW`‹IºHÀ–³Ïm›½Ï¾Ñ$º5$ä˜TE­¥wŽ©³Ê<‚>»ˆ©Âƒ)«¤Ð<6œ7‹ u¼ í]hWÙÝ6ŽÝ¤ýlDÛ5?=LÞI%põbø^Ÿœ¬äžÃ,Kµ×WRPÅ›Þ=§ïsÛÅö²×Q®1:ÙÖ´‹4‰ §Aå9føX¾…Wò'ùw9sÜmÔ#³úä4µe¼óìR-¤WXÛÝfôŽöºÞý`á² .©<œÜZøuƒçÀÑh; œƒíÿÇ“ÜéêTùÐ2O<9ŸË òñIì¼ur›&¿ÛÛÍ`Ê:¾Óˆ±ÍsÍ7º ælý©hÉœ6îJÍÙÐBc¸<Ý1eœkÎ9÷$5£è”ÞÍf²þT9wšÅP½ ¨0ㇼ”*Ñ{Ïiç9Uãctz Ïp;üPÄ$N€3ÈÝ¥z ¨Ú‚c@“Æ”Ò\ˆA‡Ÿî„€‰ÅC)š»ùâ]0É)ÿÊq0êωÃÈøŽk¼ Љ=À–²š/ÓÊG›¾[§žÛôŠQ(~Ãåä$¸·üG_D[Í $–¿YÎ7iïå¸|Ù˜ïD¬n Å[qW°Ù3às]ɾSe|+àßZÅFpA `G]>D‡|÷B|#&;ëœÓ”ª© u•?ŸzuðÇbhÍôÒ’ûKq8ß-\³à>8}l…V|õü`¨À(ü”½¨Ox½œj#&˜÷-á ´Ó ©¥¹Ä†þ }ÿJÿ†²ÂÓý Ìösgœ ôpI .–ëŽöï þxŠÖ«Ïéå°ÌÚ¾«ËÍã~ܱãÓ'ðÝ¡ƒLjWMÖ!b.ðb ÄÈ.ûá8Âbîµ'5üG2M¬ÓQo/ÆÐ i sàP"òwZ 6ìn.Rxn?QV EÛ ÖÇÒÓÒêö®Š­koÈ<©£¤ã$²d‘PzQv@é÷à\h³7ü ¼#œê{9©›u¼—Æv«}dOÛs¶’. Õƒ(aT¼ëiÙ$'Ð닸D óç("Tÿ8Ó>R_¦ñ ¹¬×´nA ÿ¶#¡œ¯éhøÙ2FÏë=*eáöùùè 0º'Ýø«’§ƒ3åj M¥"÷59¨í©³u£d³ÛŠ6ÀV³ùµµî´§}g%ÀHÁ¨'щäá'§éüq•ãËežÎo%4/„άMloUðÇÌÑüùK i“Ó×néüß~¢;cæZæ±§ ï_ïß bÊš&·»Èmhj9¾}×aŒº&¶ÛØŸ\?átt_S>ΆWrGJë–u‚›îjC¿P7ÏOžÿ˜mÖóÿýQ9œ¬¦‘tÏs¹Båx;Âw+ñ7ðg_"9Vî!Î&÷¡%ª‚?zËi.ÉÉh9pú0p'4×ä´ð:e~èüÇC“h_ Øòšó6ÿ:z:Þ„¿Å’Ö˜ßÕ¥&çÛà.йߋ¶Ïs˜ÞÑŠÆŽÿÔs0HLnÌ;ý§ŒbË9ÌË¥ü˜Æ€Jó…ïúò&|Gk¨ìW`¸@Áhœ±óß_³„§q2Ù —²Šî¹)¾¹þÑê주(ÕpDÜÀÉø%0¶Z,¸¨Â\½&X†™tLüŸ†¯HFsÌ×nV å$qƒ LÁeôõq¸¤¢\%ÜÀ®ï>ÿþÝÒªx7Eùq ~M)y ´ß—ÑÆx"¹ChJ2¸• 1|Ô™_óÿúù ¸«b@ÚPøOðÝ^þ󀃹Z8MvŸýmg QWß©R°Ç`e·G½RÉɪ.øc’½ç±W"ûó—ä†ç™,eì‘è¬xÿU[ó„âÀKF‚Z)gd$Ÿàžâj=$}¡SOjhÞCx})õê …¾vôŽì”6Ò®±´éõYĦÚýz2)xaˆãÛ²Q·èðCC»ÆÞ{<´µt¿äÓià¹EÆËCx…k`Óu\>T%# ä,úc„Ô–ÕàºW›éFy%û ç3ØËÚßnÓËÒKßÀÏtÚW„û¸ /u¾k]ÿ«z!ôT'èõIèÁFT„3j0Ôïž6к J?›-jOÚÖ¶²öÔsv—VóÕôÝ"WáC2Jdþ8÷b8;Ì)Œ“{Éô í¢mU‡Û76£ÓÑñ¼«í"{Ì&³ÇÀ&¡l1Ûü‘,çÕVâË8’퓌ÈÝöîcÊ„‘»…‡Èeבê6™7º]j+[¯MßñÄn± à߬þØiË‚?¬Zxá@³ôst×þXç¬v7Q7žÉáAêðnmà†’UAÙVj_›ñ&{G[¯·³½'l¼Ï~ݯAä"GA_Là²B’„~ÿ™'œÓï“õ[žüÿzÿU\‡LA³Û”sWºÅM ÿþ+¯yGÍMdþäçW¯=ÀÓeàŒ-^œ¹•ƒ{‡*SJÿñsû¯&›µÀ¹¾T8D&Óx ðpîS->dÎÅyx­ûýO‡|Ozç ÆÏ`Á9à\)èäö’Aê±—&€¡ó$àSe¨êTÉýZÞñÀÏUšÂÁgE„F½5Dö×ñl†¨¯à"q$¾N—á¼þþn ×y.Ë;é-=ã*rÌá»?ªj݃JBÄÎ/+ùpû8óûëyL~`xcpÃU¾Í©¸Fl(D+,‰%3fÃz¸‡5àƒ˜²Ÿçm䡈ÎoÄ æôwöPj9Vçrz~Ou9˜-8ð©<û”þ}8¥¥ð3§ùê~›pdø¯íèJá$vãÂ$”­àÝÀ†ì»Çe'« äÊ4Ä döݹؙ+rmp{j¾K ÁOôþ˜áIæN§M@­aRœó Ü‘†GÀÝŒ‘ð#G8+üÇ^é ô¾ þÄ“ý»[suŽHÓ¾ÈßÞÛ”¥vP!d1Tl)¹ Ÿ2‡3-ók ],=¥Yõ„ÄÔŒ:Y|+S1ÁL5e™œ•hŒôy¼¦æ!Å„–Qp(;d¢oG„(¼Ì~¤^°‘këÛ÷(m}ŠŸ‰,É%´Þ€¾ÿËŸ¿¾p ü%ÏLIž Ö%¨ìI@óãüFëj]!7¥6°Ôë} |U_Oè%´A$™ /e«\”[›UÝJŸÅ«Løcœi_©#“y‡lÓ=ÚP}©öÚþð Ï´·©[e¼¯´Òž£¡È}Y7” Ÿìß­ëéæÌäxÒZnðX©!¥QóÌѶÏ5§vÕ%v´pËv´¥´¯^†Jϧ ¤úNõغþ$ß·³ þ#*ú`ÓH|²Ë ij7;üÁ*l£xgÙeöŒ-å¿?Ê>·CI}7zEÕŽ2Ÿ÷S®OöÎwpº»/)zc-É/¹QâU`º…<ŸÓ 5êÁË…¡pηî¤r1ÖÎP\hÝÎÜ̇=à°ô<…3a po(Ò·þÛ¨ò~Àwѯ8 m0_kÇÄNhWù Úm+gB»mE} q">ËïÁoe¨©«:Uzàš‚?Sƒ7Ó r‚¯æOŒåŽ¢½àÁÉRWbIéÇÅÁ¡dÐ(¼lDƇ6Ÿ*›äFÐHÖlÏÍÁLYh–s*P¼rà(•¥²üç6cËF‰«±u®?{x‡Øš[EBJT`i°Í‰Ë‰hj ~©fn“ú¸ ܰ[NÊBøè@ËX:_þÔ à ¶™½úC­ÎD\“]ÒGZ¡×r˜ÏÍMSîé<Ú*»lÆ;oäW²A7ê*¹.MìfðÇ#KÞ®ˆô»Î‚kðå´ 7à¥Ë#ô]u·ÊgñòÒmN$Wà?ZH}YÇå žÕ.ºRÞÊ^Ûþã®ö³kt–ÌÓàö¡ €×¬-ÇÁF‹à:Ë ºû!VÏïÎt´q´ô©,Í¡ïR©ÚzVl~í>ZkãÚ_íÛÏf‚Ç9m -—¢Ÿþ‚çº ÿXAâóÇ»?ï{›è‰ëiqõ=]£úÒBYõæƒ?X¦Ýl ï<;Ýž²ìjía_h ;ž+ýüO´õø Ÿœ?¯ïž¡ðkx´D¢Ì e½áÚªÀ!Ö™–½ûá–.Ûh¶£´Cáã’Úä½|•Wó&ºGÄ?ðÇzgüGCh’¿Àûi‡†óÖ´3´Øã‘¾Ð46Ÿw­w§ æ­cWÉ2[ÓV·t§zäšïŒìŽM*ÐùoÌ»ÿÍ'±3å“üW÷=¹ÿõýçqp¦‘9b»›Ý~þ¸á e®›E&¤ßÄûIþxèi Ž/ÂE88z©)9n'ÀÙå– ¹9MúŸ*g³Î`‚N}ÏShñLt.Q`Þ Ê ž:çöû¡ˆ)œçNw‹ÿv‰PÏO¸•?£“‡ºÂìážü„Jq|C%ÝÉhvÐDõÅxò‚ïCÍÿ…œ_kø ×jÿ.Å82ŸƒKêDÛ¿[ÂEž§ô”|7d†—\ˆXþ#1Ð/Fæ¯X›GæòðÇ6¨Òûæ[kÿõä5ù2TvÔó'LjÄáø!´xj âŒÞµ@ü‰ì;ÕÑÊê×yøX¯=cÛ”ªr¸fÜ̪‚ºNàl(k&&Åä9Jºe½ŽzƒÚŸã´ê«ù¯b8ÁÜ(à_æ­4(ÃIôa 0í1hê³ÜšþtcÁ´†Šì‚ú7·ÇcߎŒƒøóËhÃ=ñÝ!´Ã¾¢šÄ–÷`‡BÜ(6õ /ËÀå¹åŒL\Àòù1øÿÆh‘°4î‹ý»MM%ªn |œ&Êmx'–U’M£é&l/jA='é´ŒúN¼»àö‘PùËÁ É9áŸ_55÷)2Z-:Ê·.`A?y-qô°´Ñt¿F°í3Y61:J7©ˆÞB·“nÜŒ³šqΟ†Ò¹ ÿæ;qßîñl¬„ǨbçÚ ÞÛ@Áøw3L.„ˆsÁ›åš¼öíèvË~¯¹ÀÛýè…ŽROÃÐ3þÌïA Ç›ØŒöøc‘Ζµú¾¨'C¹$çPãÒA&ÑÇ]{U=œ9pZ½ä Oƒ7i@A9‘†±M­Çþª"ÞR›Ú–±‡m[HÇéCûZÑÕð}ÅêyðRI ÏÛ?Ä{ëYeördÿç5>_¡¤ò‹VƒÿÈgÇèZmc­wªþÈh×é°Tûâd’C{ÊÞHYèãyûßœ6î%Š}1—{H)Š#·4‡7›]g«Ú›à£qh¹Uàk6ˆíª Àr4• ©!%(¼ÛLðÇ;zF›?Ù¿»Ô]C͹æY(Å­šÔ;ÙN×vz\ûDóÙŠÞ¹Þëñ6´ëåðÇm;SWêkh%ß}š£¸9ؽ$ÎÁöÿã‰ëÌù$ÉO±í?¢;aLE³Þ”v'º5Œowß1›]ðoMB“á'ó—<„ÿ8CéÀÁ ò³ÒÓܹê¬t×SyJLYÜT&ÕO•³‡™Ãóx*å„f<Èm¨/]š£Â<šºPx ãA÷û·køž‚Χª» ãû-ea(®†rüñÊmÁÝ€¦ø(øˆx Õt$£ò óÄÀ9 £-ôÖL®.›Qšmì;!VÑóC™Gà#t”ÚÑáï–°—Gø-£è"½å²ð쑸PµW•`ÐRÙdfP ^ þxj¾•k俞"Щ‡¡²ë Â{xÀ{ËF KIŽù½šn#œ]VphsÞF–";·¿ëg°sŽr¢D£–w¡ºJ`Vg‘‚’ÈSUÞñ´êBà›¨ûIü™†¶~uÿU"'¢ L–@–¢õV£|¥øÑ ©ó ŽKeÝ:è™OúrÌÌ.pOO)5>ÇWø£§'•;”–ùï+ÿC2È+°ZqôjX™5ëÊT.ÉåÐ{Tv(ƒY;;p îÊ…išxí²¬©O•á*CÉj™ q>““È ‰ ñà?¦ÙcšT/I- “¤z*†Œ“"Àr&æˆ_dª)gQD´~x”`Í4Ô³¸šXçJ[}¢4œídÁtQ¾+*Ð<´>”cÐöÍÀqyùC&7÷åC,èÅi@ó#ìÑuд¾;j[ÚÙÐæ7lto'uµü‡?æÀ{¬âß×+ëú,^lb epÿ‚cÁ‹d«Ñæº |¸×¶³ùì=fj{™ªÁk=Ð×äj²TÀ7LúÄ”÷Töç/i.ÿpW°ByŠÂA5”ílƒÚ*Ú~c¡ÍbãÛpÞ6¶Öãö¹Æ×RQ߃ZB‡¤åûu^zæ›#ðûÁ{±ô=¤:RH³‚?ªØÎÚAûÚÇv–gOØLv•®B´ê¶žÞÁ(# ´æã\Êÿ Tvš»×) çáÍð€¯\X›Ã›Ðî¶c­ÚsßË;À¶²ïÀDt¬ík‹iBVhÎu¼‡Ñú¸ÿj‹³À=Mõàh€C’ñ-ácwh]pæ-g'Ù®ÞåÞ ÞPçÙrm9ÚÎÒ}à£ãj«w‡ÂÉùùü*˜3í“õógž$ÿzý#“ã1õÌSÌéþj|·Ëœñ3{ÌÃn÷‹ sÿýsüqˆ’qQh½Êmãlt¶»[¨&Å£2nj“ý§ÊÙØÌ€âHÙ0ëÏñHZEÏ«¬#ñkÏŸ²˜^~ˆU ø´/ZmtJMÌÚ,xU[¶ÑzÊn°á@nƒ13ÂËùt~N8›2PHŸÉoò+<Ü–ñ°ÓíðpoÁ ì[NÓØxGH<9ûi/ÿ„?9›ÜýÔˆCà4OSz×ÛZSŸêßZüSÄ;Ø{|YÄN—K¶¤]aûër +g€ Kðºv’>èGV[ÿ§ŸpÎzçcÞÀžÔÎ÷n„øÖÓqMQ³Òüî.wûó·ïò„7ûÌvÛMoüäþÝ3ž&®oQ¾E¸ sk;›œ=îEª ÿQÓÍþ“ùÛ šq˜ï](tèexŽäqF:ôC¨…ƒª¾ï~?;ˆï TÅ ”zÈ“€X¾ü%W¡B‰º@ æ–|†2p(xZîÜhÍ„"¦ù2¢_‡¯|MtŸ†ªÅ»8¹dæÐ|œ.Ó@ZõÝ6ðœ `°Ûtªþ"J³ˆca¤ŸÆÿ­¹–ƒŸžÀ-¯æš|Û|+×ú=ÑL|Ôé0Èe¾Í‘¹1Ø(X-¯Ä—´@½¹ð ëx(P|,ôú"r(œsý±‚:#œuTZ^¢µªùýÇsðGpf(Æ$ì»ùïüÇr_ŽÞ ž_FJk¾š?1­óÒ„ƒ Ï}X>hø#3Ç®Z8„zÔþc 4“2 üÑ<9”_,ðSö¯ðÇ Ov·'-âp²œ“I|ŸPB½ƒÑ+IHèÆŠàã›@¨]ò‚ƒÉ ðË(xÙ hŤ´Ä ¬ýª˜bTÂÈn(쪨³/ÿU Dw5¢Î€ÊýG‹èq‰‡ß}÷F¹ ØŸQ&Êa‰¿ø.³–æÁÿûüj¾ì•»@èÓÜEBÀÃLV*öôùL{ ïÕJ]â_O=!Ç¡ÆÛ•RšÏOÇÞ1üûw_¡í7I'¸Çk2Tê|y*~Á½‡mRoyÝ+%ô/= ÇPã'ð³çå&x=…›ç³xÁáåoô[;°åÞ.kágjÁ–ƒ@ÀLö°·-uÌÑ—ð3Ъ5ÁE×¥ŸÜ“A2ê“ûÏ›zê:óüçoñ`‰+Q{oTmÖTûé9;ÏV²¥ì>[Ã6Ö­zц²qu¢”‘>â…·©(m¤<¯ÔÙbö± g Ó%4Œ½šŽÃzãØÚNÙÞµv­=hÛ5:Û¾Ô"¶‡ž—ÔèppL‹ø$•£òŸœlêPB¨¼¿¡ž¹¥¨màÍ ×VÔ†³1íU[ß®²uì{OÇhnß½èx¿8 þã 8l'ùnÚú?v:+ÜÃT*¯æVoNm3x ÛiZ]WëA¸«ßí];»Ñ:ÞŠ6¸Þ¶í6;\g«Ê1vï/î,¡á?6cÞýo>ÉœåN·-óΓՉó/ù#¶óÈ©k6‚?¦»EüÙEžy²ƒ?r£™?yþ<¸SÃ]NÑ}÷©!;tÆ4qn9ûÝ}T…’Qq·”)úSåüôá:~ÿQó¸õ¦4Î%ç:æÒô½#ËK¾ÈY÷õ'²³Á©ï…Bþ›‡pÞÆµÊM9 Fÿ¯ã<…^Ò jKéÝYó 0/Üdœ³ï6ïƒ¢É LN ®É7ý*}38ô>í¦5”ä‹[…¾|æ{.Ñ+ÚEwá?âËn(ä¡ÐÝåxœqv¨”~¤¿M-€~y½ ýˆMf^”l}ŽcBm'ààPÕÑ$)PÖÈrΛxXtÿÂË蜛ØyúXÆ™á ÜÐïÁC»9>å&œL Ž”¤üçð}6ʼڟ¬ æFd:l¯NûžäN$7ûj¹Ná $;x$:ÅÂ×g§n4!Ý%‹ôGUåpN§) ¢~íþÚ‘ž4nGš|ž-­ ÝEúrN¼&ˆ,B©2Ë .ÅéÀs墸ÖõÇÀÇaߘ*áéÐ÷Ÿ×0õüùK‚ÊßÐí‰Ñ·-ðš_d›„Ö”ºFgÚëð»%™–Óiàõ÷øÉÐÚ#eƒÄçT41P¿´37É·Û P|!Ê´~ðO±DJ}­'Õ±Ãìq™#õÕ£á ãÊc9)k¤© á¶œÑ|>v®™’~ÿñÊd©-ûù–ôÓéºul`ç€?®YöúnQª­mu•¤‡£ .X|Ë9C üW±È—/g?_ÔBéfÈb¤•u0Øá¨ínÓÛÝÚÚŽ‚“鉲ޓߥ´tn‘ah¡v2ô³Ï¯~wp\é ÏáþŠIgÊÈ‘ô”¦¶—´¸þ®;Àoém6{ÈÚ@çèûL èz©õVŽÉ/(­‡7ˆ÷ڳǀ'÷ó~'aÐsµ%—mnÙØ¶½ÓI6ºw†> i—i;»naŒgŽG¼ße ¯¤LŸœ,ä´w¯C¥U…v*/)(Ü_poA;ΰ÷õN´Ïí[Å>¶¯¡Ùê6“º6šæÅ8šÆ‡ã–N|à=ð{èôÇP( TÃÞ·ïñÊ:Y—iI”2©·§w¥}e+X«sQòÒv ø4¡ÄŒ\ µUVBH¾ÿÈý)œ…ÎGfu_þõçWÑœÛN³ÞTs[»¿šÌŽ/Ia³×œ5LDö …öß?aœ¢îbŠÊáÙ5®´ÅÔpn:OÜñÔ„’RY·²)÷Såb*sYîCq€„͹/ÆCZ'ŠyGI¸!Õ¤4ü’–»m(b8ðXs·Ÿâ•ÀÎ2ÐâÅd;ÆRjêñ¹sñ_”ŒŸQŠä.ú~8ÏyóÌM J x (\z¹Æø<¾Äøãtð ÇÁ I¾ÈŠôåsÇs‘®€?¢ñ¨äCÜ‘’õ·‘òBQ‚bšË7©2P[yíwﯭi*éëqu”æ$ؼØ(6œQ4I#ÀkQgßùÁвm±žÖº%œ'߈õܳŽ/3æñn –Hâ¿0=Ïô¯Æÿ ÿQCÁqÍï¶­ÅÏô‡ºßn¯NûžÌN"—Ádñd5——ÆûgA ïÁCœƒÿØì†ÑMÀ¨Ò¼ò°>?¢¸h×9_áuž\nÚ„h¾lT‘à1&@tðóÇïÐòWðú_噬–Sð‰A¡°‡qÿçp…ø…»ß9(^SÚ¤‡”@µ”(Qwߨº×<ºQ‡@Ç×s’V³ët`ä{Žõ\ˆ5K^QHš¨_Æš·Ð$¿Â=·*^ Sù,w‡:Ž£Û¥;üÇe[ÓÞ“ÍÒþ£¿„•tÂzA–K]é–I(ÿÕuS åß̬Æ<ÏeŒ®ÔuðGÕìKÞ¿ tŸ4Öæþ»À£É 9ˆ¯…(ë (ÿn.ºÎ)å$\QK)!½x‡ìÕ×ñpAûlO(û“ÚÙöÖ#2X/épC ©#‡PÞh¡jÒˆîˆUÇ3ÙY_9 ®­FFaøsÕ[š×^ÕB:HOÙÉ6­­mïØª6'4ú6{^ÂG+ãrV*Ht¹ûÉm^ç’yŠž<‰9ðF*'‚ÄÒ¦PõQl¯mím;Þî¶»lPøÑö¢&ñŸL޲=†ƒÏk(Ë';âÊ85ݧ£®·—*\ÞkNo]»Þf´çôžŽ³CáZÛ—(o_f{Ø ц԰P%'1þÎÒzôÉúù%çoèâ¿0¢q7¨›«ZÔ;ÎîÒ(ÛJø—l6“·«w=ø#‘=&»m98é:SŸaÔ /B?€îŠüÉ_’Ý™îÔü8œ‚NôÉñœN>sÎTp‡¸ÙüçÏoy’šçæ² æ†6ÖYðSÑÂ:uÜC@÷hÚ>…tk:¡Íð~uÊKÝ_ù ,õäu;Ñ~N }ßFâÉcpX)nϱÀ½ÁAwÀ¡Õä=ÜÁ.ÌÕ÷`—ù`M_fÆrliÙû¯æšŠT ÜS–J? ÑYøEÀÄS@®Tz@ÚÇà‘Ë’]sê,É-ïÐÿ%?Øj¹Dàçî¸@m8ÁÜ%æšÀè‰`¸¹èÃî%a4£înú\÷©ÚöGK}%}Ñ3™ÀvÇd Fg7.̹ý'z?>/MîË×Áoe‚´£ü^&ê.½"AÕw~ð0õ¢í¬O¥‚vÄ{üßóƒ[À^+…d ‡q?ßÿ˜›.qD9€ñÚ nf>–ºP«AÅGÒ£¶•͉ú¶´á?úêY½(¥œÑ8Á²UšHIú¸°¼§³³ ãdôI}¨”4ÀøÐÛÁ¹ tƒn±«m2[Òž·mmU]Žø·4+X¸œô—²ü‘EnÐÇýW/<»ÍKôäYôÙ ñín*qµ1ø'ˆ ÛÁåѽ«àؤö¸ö›1¨ùy?³úΟOåu”ñ“üWUœú®o7\^Œ€Æ’ŠÂÊY-ímŒ%lËŸÉ÷í`ؘð1µì› üFÃÈ>ãÏõäÿ÷`VÑî©®Ú{×Áapww·àBp‚kpBàîîîÁÝÝÝep 0ƒ»ë[}¾w‘ax ùî}i>B`fêTWW­­î®ªñùqH-ÕÇM'ôú~Ô–N™ƒ’Ô;Ín—fhÁ%’ ¤|dç‚(—lU{ž/ÚŠvŒ]%Àã ©v84"îèÿbýÝp¾Ü?*·9@1ù ]¥a\š·Ò^ž&¥¦,ÑÜyâù?ÛŽ2žËeq爗ÅÕ¾ µæ S½Ïö¬î)¥¦R 0æ:ÍàjœÅT§Hâ/?ƒi¤ª¬³KlA›Çžž¦IÈÖ¦÷Ý¿êÏwA£jp6™éÓþƒ^µÑñ§7便›Tn˜ò(µ´íi•7®í„³ëaíf;šŸÜN”Ñvޤ±Í}ï_á7ÜŠ§ûÞ¿úý³ûW]u ‰IEà*ð}šoËÏÞ,v¡-$tYþ¶ì9¤Ág–‘¸þ²MmFßúí à®ÃmÆèô7+>›?¸ù£% ƒußµLhßY?»E~ÅU}#…lZ›×;Ç{ÞÆõ–µð q?;ηÿùMðc5u œìÇBò¶çÿö‘^-TŸÞ| žüÛý£Â¨·Èrz£.æü©Üw¨;ï…ŽÕQœÄ?¸í}O½ŒO/M)º­Ãé$j:‚üQȤDþ(ådü¡zVpšQd‚$PÂqTÇt5‰•¿ºŒ¾ÔÆtóqje×oO¬6*h ôô®w £ÃÈf3 <ÙL¥i‘É e²‡èþÕYÇšTôÅç8îè k) zæhð©64;&碸tÙœ2•Ì÷ß[åÙc.›Ýh9BÚp×)Œ@ }ë—”åXáÑy"]4õñIÙéÄwï_Õw*ûf6¥{8ßdpÑ (:=„jÇçü¾ïw"hv äüý:Õ7ùñÄ3Q0Å  ƒ‘?öà¬î ©i Øi97„¦ÜGŒ„G;ìÛ¯j Òb\³Å î®x*ªŽBî¬ç½`Ðòg*L1ÀÃ(‡i¨µŒñí?ØíX—ºS,ºeâàs%~,ó¤ÕuÌä¨YÜüÇé"RW4ž _™0 ’ΞAæœõE­¨’M(³U%ÜD§ª©¯›·òp.…¬Ú癋'ñäˆÌ³ÿHnñçR)Çn‹Ž†'ßÎ×9e0“‚\—©ÎuóÎ4 $<LÜσɟ†3‰Gæq/ñ@m¢Ú‘ö4ÔABË\tAƒx=¹;ê˜>ÈþƒÒ4©ôú[O(õ)ú‡{ËéËO¸ÝiÅ{ÃfñV•I\EºÈ´r\žÁ¯Á?¤»ãä§¿Ü?!²[¾@'¨|ÅPÚͳe”Ô•žø™S¶#øqW6ÃÕ»ûמ‡6ÿÊ4ç åßH!ƒ¹õgë—óü¡FãL{!é´Å÷ù™(ä'¯¡¤g%§´“UvŽ`‹€qmé„rCÛÔ²š«€p„ÜPŸKò;ó÷Çò^yV;÷AÞ«QDÓp“†óÈoàOjÛü‰$2ÊN·{l;id®”µ-ä Rá4Ô¾9X½Ù¿ÞÇó­®þÔw0ªÐXÐ2«~(Y½¡íb[gyRN!)Œ¶ýíûµüPNÞKT‰ÃÑù(X¾ËÜ27ÍÚü8«Öèsf8F|wšIçÍ~©èi·¡g\Ç’ÊV³Q¼S½—í- ÞEì@piøq }Ù]5©GäèÿÉóTj¦ô±e•ý_¿•XyœÎ§ˆÞ€üá¶ö)Orçšs 'íÎ|ãɦwÂÇ'£WИÄFéj”:¬O› &µÉ­ë8Y¨žmœ>Ôœ&˜œð¡‹©/¼|TuX=1uh¡™i ÃUÏ áüÁ„jŸ*¯GûÞßíK¿B­Jƒõ)²™Ìpc5ÀTºš!ºuȉaŠÀÇçtüiÊ›(-‚*?AnxƒlšJ{ü¨ùÕ[_Ç<ÍY³ËćÆõí_;šÚåNçƒñxÝöÍ?ÏL»œoÝkúŸ£=rÛ%ß*(7è)¹œ‹N ñ™9*Çã›(w%Í¥…”‚/¡ N˜»:ú7Ÿ¼ñLV/L>C]p-Và¬^›fTã&;Üryê ¥>ƒ$1Üpg‘ûC§ö‚ëœàV†‹«Rj/ÒYFÞx5É‹”¾<øQÄŒÖ$“¡AI¸¼E´DJzê[35V0ü˜ì)¡;™½8¯EЬÄü I«êÍ7Ÿ0<ή2Ørù`9»s§##Í Î H'Êd6}µ~{ç7SÜM‚0›+ág~÷í²uœcJFøÊö´ð(g—2œsó x&ùv(jzŠo¹.Ã[&"Õ¤´ÐÛ)Èîú—ã õqdtÿ%T+4\é^ð­¨Ñ‹cs6/OA£ <µLþÕþç ~gè=Îx÷…®ç‘²QæòSîiÛÞ[6·¹¬áRÒÞ}ÏØÝ{ ‰æ ßAÛì¤XúË÷ã›ÛàëqÐ{$—çI´…GÉ"i) 8¢\°lVœïÛKð9'×¹ —á|ïó$ž–\üýXVaO5 =ª>©J‹ ¯JnKU{_ªËP9aWÚTögëõÖ·i¤¿L´’H–p-\¹ØÈ6 ‘ãîšOÙÿ©ç€óíë®Mç•'f‚‰Ã‘ÁÛ[ Z{i%“í[»Ô.ÃY'¶›eŒÝ(YmC¹é[¿$¢´?³vøx¾eT/ýÀ¤ ’ð9 Û>%‰¼áÁŸöö3öˆj‡ZÇû ühÛÙœB6’$â@ËéÞ³ì#?ö¨Mú°é?⮇sÌ“ŒÞ¡pµ$¢=ïãÇs;Ï«¼ÈGCyjý‹ kärà;3 ~«ø×ìþƸû¿<2¨ÑªîÇ–yé) ~l]©O‡WÝQœ]N5=HçrÜÕ ^y’—¯'é¾¥UN½ÃÄCþxfÊRDóÌ©¨îª@} üHcò!üØüÁqNM8Àù¦õ†B52åLjιaÊÁ ì…~ǧ!ºGˆJŒ îôÕ“è>¹û)ÿF/©¯¡Zóãàܵj½pâ±h€I®CrÎwœp ZgJ ¹@Û©9¼jVŒÐH8 èòG)$ˆÛæŠ)j¾ÿ„ÿ’ç„9lΡåÞR®ÞGgyŸôƹÍ`#×m›Ûž”i¶±ìã>r \는Ò,òç…|Æ·ÆîãeÕõtUc(!¾Gƒl‘8š)Céä)eÏH øîÈGYl{Õþg¿myYÊÉR®ƒ3ñ“c\}â¨ù´wôSÏç9¹ï@Œ¢w¼Á 6óP«&ö©}‹ô2Fþ¶a¼[í*”×.AþØ%Im'9Ä?üÏqífÒ*hΟŸÍì¥ï›èäö¥6|E?¢¸6®·¨Ý‹üá±Eí5{È®µZö^“~RÛv±űQ$|ˆ?\ÇZðãégë_TóõyÓ4>R–I:ïÔ¢|Æ~éj˃ƒ‘µz Ùs<ÅÖÆç,‘ùòþŠi:õ¢üÈVáþ“ùƒéÕ4õçgüÈñ¯×/ «nª_“Nu=Dÿì¸og„R?9¯Cé0N,µæûE|vDQ©õ¸è$äC½¬W!ÁÜP‘ó~5IÌOº¼“í‡ê9Á©O•èo“:2ž~E†É¡¢8×1ÆGšõ&%E¥ú¯•OíW]ô0zH{ É5(cz!êßtõ=›ÿn˜\‰Z™(z~Ê;ïD4¿R7Jí<€ù+o¡ŸdFat·€RÇàè%ÍnÇ4ün /z˜c&Ðd¥ˆp þ ÚHJ¦¹»jdæ|¹d]1hJóÝùƒƒW›«" ÝGêȆt•)ÄzDáX|õ]@›@2±;ÿ{‘Ù¢“«ß(ë¡g¡òûTf€o7¥Ôä>*†¬U˜gC Ï˾}§Ñ5riºµm¶8AŸ.¸G•NûQN€öª–»û–E™']æájôÕÿ@\föÿZSOJ ÿí;ìþQÉu s #q \l\äž R{òãq\¾q.åÀ9.ç!î :r× ˜„8„©‡.ÿjÎäL§‰)¯å†ÚÏç’è#yJ÷í%NUk¯H9ÈÑ$³L矙9+J¯ ý߆üñ^WAË{kÏ‚|tT˜EG©'ßàü}”¼†&‹ía¯ƒAeäwæ°\€CáÿÖò_Hå)›Óî‹o:eQûKäpNžý¾N¹ŸÌ‘üž»Ú56¬7²7¡· —)b;ÒGTÔïò×.~„+”<ÈüÁäæôxæhó-t˜WHG)"-¡Ô·m ›ùc¤%ÛrNÊîŽüÑ9êø¼•ËqéÏøQØÓRõ¹Ûƒ9'4èsâÎʸ…´6F6ØY6øqÝþeóËHYb·Kzð£6Å9_â"‡W™ÙË»~xqM÷aä?å‡f«IÅᤡ}d#Ú&2UºÛ»v9ÿMÕî`wJÛTþAŠ™„|TÓ2äOêPZ5ÑWq5ra¼gâ°&7_Bbø ¦Œ½!Äßž±;p5ìcðc™mm+Ê{ #ÑqUܾyÔÜ0ÏÌÐüðW‹õ㾓Øy£y(‘½í©+Ëe³°µl4ïïFÚ[Ì®äi¶º-b§JWyBÉf‚:0Éü˜Cÿß9r«åŸÍ?ç)û¯ùI=W¥›N=IWöÍ<ëIüq̉¥£9ñÕ²*- Üå“›ÒSè~8sÈɪ֫Ãz·ijŠ˜Êºúæ>N;¸Á…¦®ù|joJšTêŠzåcFÀßä I!|7–:£êéñPö“4ó’Š¢gV¦Äf.òñèÄó3…¦n&{ˆö??éD‚+nm¹Nþ™Õá§Ó!‡,§+Ô¿ßRŠNg)²š^ß­áYÏ?p7ŠbûÞLºƒÿÿ*?‘~áx|rð|zhºÐJJK¾›?š8 Q«æÐß ezôñÈj/(gâ$pé›áÂW‚véÑUh›¹§³ª·ß(ë϶¼ Æ’»†I;Œykf©kAÊâü~C;푊 Söÿ×/I,ñe«Ì°×$¹œçL’S†€-à®Ó»'½ÔAï_s =2Õ© o÷(dŠ+Ô׫mï"wä°Dƒš^‡7WÈNÊaå1ïæN<ˆòQ"§Õ%>pJÒpºIÏ‘FC©Ñsðc²PTéi7Ñ[oLoo𣠔j7Z9!>÷:ÒÂQ~ê²_9þÒšëêx†ÚseÞLy´ó7Á±å–m†¼p ùc´,áþrüè‚snΗQÚr>Ï ¹Šù´ÇýÏžj4EG­˜Û#ù$2…)¸½.ie˜ìƒÚ§´5í[Ûü8!í3I ×€Þ‡’³(¹$ï5ŸÞ÷|è9äxÀ¡k4DΙ¹f#{¤­ ´il}ù[zØWv™]`ÏÛŸìzÐè€d±õä ø± ©*òÇ óÓgÏ?j¨®ú©‰~Œ¦nüN¿¢<¶ˆ7Œ]Ÿ¿(d±=‡„4¥F²ô°‰A÷x’þí"-¥cÆÝ‹øSþ¸~œ7Ý᪺£†ŠVKQðc¯T–órܬjûžŸ?3Wñ[ÉN´½}ïïž¡ˆàÑ|*Ï¡9ʲÿyZuP}ºïÿ“RÅû×ÏÏï«ÚÎ>§–^¥Û;înóÛ?ã¡Mßû»µQ£Lôü(NÑ’ºÂëÝ9gA»O#OÐjd<Ç,tSZ eu,P25¡üø©ÕHmE)HúÙÔÖ‘¡)îÝ”~øJMê p„¥½øÜ¯Këï‰ü±¥mâv¾ùƒýà[ZQ4žˆZ)Þšäƒ_^}¿AoPÇIHŸ]ÀÌÚ”Ò¬üjý«¾NgdÛ¢””— Õ};± ¡$¼’#Hv™ •zϼ™SIm™ÌyØlwÿœËW8/•ýêùy7çq¨‚ï­Öµ|Ç!¡ çø[&ÁÑß’•ÉŽ±'ÀªF"2gIâ®»S+Iï|ùîÅ!§(zÄ5\É RgÞCþ<ÉÝo?5Ðn·á½lïjè}é#§AÔP¾ýóIøœsàÇ—Ï?"÷ µ?zI?´×,šÅã þ”µø™Çv°Í ?}î¾?j~Ôå_¹%?áÓ<2÷3ŸÖÈ,áùM¥Ð<®z<ÿÂyLqºÃ¥„}Úv•cvøñ 7Å&“ðû÷%’M üDh¹Îp#ŽOó>–'ê˜s<Úƒ~].šf2÷qÓŒmk»"%µ³ìV;ªŸ¾~,Õ6”œW;’ôäЈªæÓzÃ…To}ÁD@Þý´|¬óp\[È({‘‘®þBÍæ‚æ¯í+é&ém{QÂØÈ’œg´š6!=6?Û¿v—>jšÐdèG 4k$’·¾]%…$¬-d[Z?ÛÞ»ÁûÚz¼Ùìb~cëØ-¨ç8¹‡16€b¿c,f5?ö†ÒÿΑBíR½?ËÙþõþƒ^uCU-zéúw';JyäÉíø;7«£;Qðþ•¨"z=rk"r¨E4¢êœº¢™àG}]ΩôCõìâÔ¢Š4Èä‚ßA=My“H=SwMvšhÆÂßd  !|þEmTèЩ3Ô‹òb þÂk 5 M[¨ëhþ?&…§&~ˆÞÈþÇIhŠBçSAWÓB*ó)+zú(Ú…Þt†bq:øô‹æ É‚üqÒ³ éø€ GO ]ÇÀ̉ȸÑz¸›BP•-î fºhþ„ËOL«œWß)¯%tf,Ú¬hv›â!%!Mšc¡ÇfƒÊΆ6mõ ¨”™Vš­ÈßÚ?ê®g–ºoÒCe&R=Z‹4ã¡jÈZC¡«)9 5àÚÐæƒp·®:^D’ØŠÑüneê„*¶Nî[w ¹k< ‚ £ÅÑ ò3 ‘?&pä>TíÛ^ä…‰+t#˜ü1Û“^77§(34£'ç7`CAjRÌåR|5ÊOià”‡ðj¾ Ï0ÝÝ €º‚ •)’Ù«‚>»œéôƒê5#T‚æv…·Œ fä7œ‘$²ú”üȉÏËÈc¹ Ôt-{(ŽéäJ÷u^ãš¶§ÄH@ÛÁ°éhü d1·K=(Ží`ÝùåäàH8oÿwˆ[qoÔ#óåÝÙNY†VÏ‘+~‡¯xÄ­d¸Œ‡3ojçÙpÞ³6³·(xRAÈAð#’Ù=^óyŒ«âè|_”—иû²]ò­U’Ój^)í¥Ž´f%§  )ì)i«CåÈNyÊmѪÍù¾€9åÏ÷Ùú%%=mÕ zO½ ¶ÝÁÔ¢¦iœcJxòtÒ ¼XfóÛ ö°mb–y2Þ>²”Ë"W‘bÓñ¾ÏÔô½ç’sýÞ}¦øžo˜'¦w–†v—%[Múî_MG¦ÙfcÚÕ2È®”(vrLQ´õ{®¶^üñé.ÕKß4±é(wWN`òð)‰ëMgÛÔö’Ä·—ì »Âþi_Úó2 ­ÙÇf‘@‰(I‘2o Qûƒ'>›ÿqRmЦÆü@$Þ[æ¼µÕ‚JÈTÙ.'ðÿ)½=¼;¬Ÿ7•}Æ íL[ÀòÄ]Kܬ€ eFò3ÿÉú%éÕ~ÕñcËxU•è_ò#ºº­Ê8[À©ú'/J9áÉéœ?HGr¢ü`þøàɧç`´'„"üNQÍy”¸E]ÓM?\ËÆ T…ªgCç7h_o(u;š~43Ôu =s™j~¶\ÔÃB¸~ÉfUMw…N¹käÖ¢£T·RsJoFâêo†2î0áù§š,:$kFîwîéܨ[&ô­»4—~ƒÆçô©Ó-”}ÌI¡À¤“ÿ³w@¾ulñ6þæ$´æJ¼œÅoŒZ¡GEÛPë>‡}À\Ö©ÔÍo”õÖ3W1Ùø¼{Sè}Ÿ7ÈO³)/T¢€oÿÚk¾™ò£ÐºWA}´’’›•Np+ÃåP‰uhøçü¼f?Ë £·œ£p|‰u¤+‹¸)(׎JQqd¨ÈtϤ Å ?z²è?ÍyÊ ®ÃI˜x ås"¸úÌay ’F¾Î“ø,´þ ê<õ*Ô¤¤fÃW÷¯&;MLUªAÙ¡Ó¸&ŸFîE‹ó^8ä4²^&ÛsÈG9‘”— \ˆŸSrЮ:>}Ǥ_­T3ͱôÞ4òí6»òDœg;~Ä ¡½œù廈¯Õ†ï&âÈâîWÞIª#¥sº}Qb SzÐabNë›á²—H:ÈBðâ9ÿiÙ°ÞK6¡·¶œàR_óOhƒ5|ôØÍq]´Î„ÿP$¾ŠÜØšãet‚×"4’.ü‚ïºO­¿t°­äEmoqwœs{į¥`\.i>­±\Î3PM@òs×OìÏ™9­)FIä6Ãu)Š4tÅ®³lE{N¼ŽŒ•]ø÷Ÿe7๡ÜÍm3ëcy<×wŸÊK4˜D®™ &®B^4C-–càéÙ¤v§Œ±×$¼ ×PÃiFšñ4š†±÷iþ`1ÕBû›èèuóh$û™ÐüLry‹Ù  Ú}IdçÚ‡ö øñÞÞ@më"Ù•W’T²ÅŸOGM<ºôÙû»ÔF}Íü…1? 5 0Û…¼óí¤·²Ez‚Jé¼½3í3[ÂÞb÷Oäœe`‹;£7”oýÝ\ŸõiÆäÿGõ·úôdͨ¤*æ¿äG|uO•tN;uôý‹ã®î|Ó“ôØå¼p¢8Ñðý]£Šé5ðñî=òòôVŸuÒ©Ýê&r^Y“ÄäÖù|„ ùÑÃi 6 ühuja™têzj~CßiRÓ3+„÷¯b©ÓêO=ˆÒH* W£¯1%ƒƒ„ñÓ }#1>+½^‚òv:ÑM6¸Ýø}[áæKòJÊE^C/@¥·ðæÉÒiP¡¼ úTõëc‹nŽ¢åÞQj>K-i8Q›ö‚#U )î:¤ÓèšéˆDŸ}÷ýÝáNq:24Eþ¸FI©2Hbº †—ÀëÂï„ÈÕh½9¢³«§ß(ë…g¶zb òŽD´Çwo²oÿÁüð·ùhW„6í@ÇC¯ù柯G’Xê\ ¦´8*øç´•  Ž{©*þLˆŸŠƒDRÄ´×^™ÈÝà¯û"Ÿ´ ÖȘLÚHw‚]¿$•nbvSNžÌ8>@ê* æDçp Ñø¥ ‚àÇ\ÞÃ÷‘zVÃ{N?šá â›m*èÚkŸ}kÓçâ.åÜ yšLiùG“l²\FC[²BóHäÌüž"B­ª€[8 …ÿêNådç­ ?‘ _ßÎ'|óÛòðc%÷–²A¢Û^öoãÊò„{‚€‰áÅïðUÐÁ]e>‘Ó8ÈóóBÔÎà-%³€ÛOx–L’ÙüŒ›Ú¥6¢÷ƒéí.[PÃæ²—‹pL^‰ó?Âç8×Û£¿\ÿ:£ñG»EÿïÆ¹@¬ ¼ZÆHY™Š¼h›pÎcå–SàÇH¸û&|… E·ò_\õ³çç¥=ÔDô°>ׯ‡‚_/פ´=‚œ1YöØ6—-hoئöi"[í&É"ÛAß¡hÝ  a¾`>éŸZé¼AŽß‡ÔøŠýà"<ÜSjYö†µ=d&òǻʺO-ÒÙuÒ ©!ƒm#œD÷J}ž@‡MáÏøñ«j«ïš¸ð+ãÐ_’™æ¼UŠzóÙ¾YödÇØØÞ=¶¹}> •¹vøÆ&•èc|%¹wÐ?òã¸Úª™Ñð#Ý1¶Všg’×[Õ.–Z¨Û^p.;ø1Ò»ËFó–³GyòL6;OæÈ+\¿7f2FK>~F1þ“ù…Õ’Ïö¯Õ*·ú±}ý>‘ÕcU¬h¡ÇëüNYåúÍÜÎç¢F³“òßß §²èÕ&!…¡Ðô…1—ÁåÜÖL\Ëbº‘“ó‡ê9© eŸe !#t§^&»I©;/L%Zd6›ÂpÕ“C¸ÿyhu^5ÖýèÚN=©½¤Ž|€~¥\f"â ”ö¼ÉÜÖDÑ«BPÞ.'–) ¦Åk>„DZ‘…ËÐZ‚ÞÑ•@™ Px:„ZF4ß¿Ãö̳Þ\4gLJxä"|„ªÃõ Þ(k ¹Ï÷À%ºûGÕOžšß>Ó)G»A¡®H(³oþG¨NJöÃøúà›­±*oA½\4άӹ”|£Ìgž-êµIÆ×AŒv´ŠìPEü·òG n~ü ~,rÏB;F©} àïõ'¸EÒ©T:,òA|䵢ȻÉ}Û".Cf[CùÌjýާrWŽÃ}À¿ê()R\°kI0üØéɪ[˜£Ðû àG4~E})#øí>?/429©0ÜüH$+ô Îs2øÑ çQ½sýWïïîw›êTŽÒð*¨Zt†ÚÓdŒ]bÊé ÍK~D–t2ž3 %£ð,pf¾;2=ýj/š5ÎSCHâŇæðž¥Á/9”låárQ¶IÛØž[ÊÉ=øð¨ »#y-˜ì>?Ïê4ÿ¢ÄwÎïP¿ó ß×IàÝä)Фü–KÛ%ö9ܹñÖ9*J9‹”B<J?íñ.Ç«³Q^Rs‘Â#eP'øÿȤ¿Ô–üAKÓÙ{ÒË6‘å¨íd„úœ:¿Ÿ÷q_^Î58Çgû×–ôtRý‘ÕÆªc¸Ç11(³Üƒ’ž“Œ2@‚oQm{Ñ–·9dЬ°—Å+ó¹®È\¯œ¼÷³Ù¡Õ1' üÎ)ZHá$ ýiS4ifOÛȶ£LD.ºn'Ûyö¸MnÊD»CRÛ¦àPÅOQ·!´ÆäülE€j”~bÀ_Ì£áœÑ\¢C’Ì[Åž²Åí\‹ ÖëÝkÛÙóöƒô”ößûWŽÄÀ˜¹çqÜ7O̤ü¸ª6és¦/Fj?ô‘ƒæ¤ñͬ‹²BÛĶ‚Íëíê=ˆ|”Ånä f;;KFÉ}x¦Pø‰¡`íIz­ÿ‹ùÙÀO-ã¨|ÿúþU&õ\•un95ôb]Á©ŠR<9?}Ú «?¨h*$Zúéõ“Þm¢P8zkêRtÃ:‹Ú…üqÓÔ7¹LN])Èú ß;::呦™¼pú«i òGVå8oL ši¶š,‹f†pþ Ÿ:©òëF{îê„õÈ`,øÃ…¦E˜«MÇLvŠ@ÝM<’wÎÖ8Ñ«@øva-Çëè'ðcÕž)§…Ò2sMŒ uŸÂ·Àæ¿i¸W lÎB·ôö¯ö¯Ýê´ô­ŸzÿG„÷mˆŸ‰6’\–Éð#¯ì?rË4¨ó°)2Cw5Eüj¥³%Ž­U f,×FFšH—i$¿àH8ÇVr[Nоô/â2òŠ{ÀƒÄçÐç\ŠÂå¤u¾¼÷itYô4Rªw伟®r™.3ù6×±ëÁŽ@›ÜÛÈ]]:‰?Z$*‚ÚÏE y ŸY97µ9…Çh÷¿˜öñ$é‡ü1 ãòG:{VvÛö2„ÊA àÒ\œC[ÖíuWSülý’|žêjδ'¿AÆ*Ä MTzÏG%³=&%¤ìµÓl›Ï*ïï6ŽÌ—¿í; ~”FÖzÆÇ¹<§áKæ³µÔ^ç¹>cE—tÁ\¡þ’y!¹í,C¥¯ °ëìßüÁÕ2 È ÒE&žÈ‘ gÓ*Sì³{ÇETwh"PaäÏÂ\Ôã•RÂ[Ô.´U­»Ëc{ÅN·½íëµ½ájÚ‚òRX"ph8º9t þNѼüا¶éã¦' ¢Ž [Ì=Iämf÷Iyy" lfð"”w’÷†½f³Úù<ß6Ä•&#å úy(šIýá=ï™ßwÿ—GFµVÍúØ2¤ Céÿ]I T §ŒóÔi­ê_w-£žØÎ3g§Cú±J©B²—ë§ãª'¢^fÜôñÌ4§»:­6ª=rÞ9\É<¦®àTû¡zvò`4É¡%ç©¡™oŠ© ê¦q×Ä ýŽ ~|ÿî{„VËTƒÜŒ»Re¨|m^ŽkÿX÷_Þ W²Î¤ÁueJ„èþÕ ç‘Î r×wÛ)ŠQ˜ŠÜ:عát9 íZ›Æß­á`O/s $’‹®¤!ü|\jU‚üÁàGFÔö<ï;M*ÊöC ™Éù)’€»n|O|~XŠôÕÊINXŠ ?üjÉó ÐÇá}Aé<@îÊ ¹!Gí žÏÕä1øü¸-]ÍM¸%¼BVçËw/^9á(®Ó=ŠÇý¸êw™‡È<†ú µó¡Xþ¶·œÌá<2LÎqd²Qàç$0ä®T]ê‹òR™¥¾÷5NQNˆ¶–—Êli‚lu…Úá6›Ý-Ûm3q×¾/\+ƒË—ªã¿ý¹¿ù”1Ë{j©~”Ì·ÿywNÅIÐ[?ðE)n¯‚Hîýª¿m"›É>Bþ(,·‰!¬áºHooxwG#ÒúåÝðlq®ÂŸm‡'cyfr`¬Bþ¸ÓQºÊ@(ó;˜ízVˆJŒ©¦«x:+Æ@AVQE^ˆ‘Þ”g]>MÁ§xi¨Iª„ ¼CÎv”Öãø!Tªtaå„_î@/áw!d?N›Ëæ·¬5ßã® ùÜģ׉w@«!5ô…& Ù$ÿøá÷-ä)¨ã%ç{«õ—pÒ¡N @Åœq"ÔÓKáù‚'¡ùÜÔ0äo¤°9¨õb³Møæ 8ï<»Ôß&ŸË:Òa(o(´Ö/4ž²ad}0•¸|ø>8ûö(s+˜\…òÃW výÄ\j·sÍ졼‰*Ñb…òªQF:F¨a9S^oäÁ\spS”ó'õ¢ìä®z7,þº´åžÔ:òGX(d!ŽÇ‡Q‡úhÿ—´ºt“æR1Ê‚ô0„÷ð)ü+’Æb¼—@‚ò3§¿š3YÏ©†×¡÷´zŸåÕ‘²B/CIh,ùìPI YIIq×ÇzÙš3s;ÉLv37HFÒ~hßA䮩ц—ò(ºCùûóan+çáéoÊ,k‘hjÊ}ï[ÿêå ü;OÂ'g2tM¤+wæL.axýÃÍd­ä(RÇöµÏì~[ÈÛMŽqUi(ÿ€GIx@y›}ëìœq2}QÞYí®Ì¹‡Ü7¦’p?šÅke¬´†œHÛ–6¯=,{ì\¹Ìã ¥¸R^'¾Ìk¡ÍË~öþUO5’rpW¾K}¸$ç†[F¦¶%Žô‘Sv´}$I¡Ïlaé/«ðï÷‘´êà·•S<€k°¦Oz_]s¶Ð}øœ%”üèaB#W´ÇlY[WF˯vµ­>i£Û2ÚnŒ¶²¼DŽ™ÁAºþ´Ü7ŸÞ?ˆ®úéÈTÞlÍæˆæ8•¨Þ¨¶­mne‘¬³‹í%ÛÉÞ´+@»-¶m¤—ž(¶Ùì2–6äÇiuA+j‹ÞÛ†f.$¹÷¢] ¥åµ„¶À’Ÿ¼ƒ¼Á¡·¸Gì$[ËÂH¤™¸è‡Íé'ŒÄ<ÿÉú‰¿ªuê“*…EþHþ/ùS=Q8au½Hÿæ»õÚSÒaýÌyï“ì×OôSIõ4#P˜w&3=ÐçWžÊoÝÞülë¡Îï?TϦÎOð»cQVcŒÂ¶&Ÿ)£²9Ú·ZîS®z®þþêèîÁj·*ˆÑw”–DÕ %¿òVüù“%ÜØi SRf¢èÅß/γÎñ3y1–£ñE:*÷VÌ·ÔSèþUºEÑÌ1Æ|ÿœß‚{ÌS‰ÞQT(]äŒÄp('0v*rT|Fž ßß*}ßLr¾w·r“ çÙ4»…2RCãSrº‚²Ã@eÝÝ:¦¡ä9µÎF“Íߺ úÖ;]/=ë’Ô}8må€{ª~¬¤Ì‰ËS'.†nÂõ銯ÿ·Å(}¯×9Áíh˜EÅ×·L|åFðã,½²Lßú»(µ©¡£]867åR+ð妉†Ož ?Ny¢"¤ì<”±ˆ1©¥3Å‚&Õâ8<‹’ àÉàÇmä±àñh´‹»Ç ×\øjͯ¹N}ó‡;Ÿ?ï>ÿŒ²€ÒòNd†D²B:Ã_¦öHZxôbì¾'Ñçß ŸŸ„’šAÚÐßñCë bðÄ}¡·ÓéMà[FV œuçäÉ$MVóoòeDàìH‡yj?g’×iýE‰J7ÇÞ/Óó_àǺÂ3ݵÐ9¼tóí_ûܦðN•ãàG9É©á=ùVCYÀ“ãY¿$´Y ]ÕZ‚Ø+h/—%ò»¬Ey—mg›Ùa¨=!¸£¼”·Ü”ãÎ|iá/P¹×þŒe=mUoô‰ž¬‘(’qX—’ûœ¸¿”—éàÐxÆÆ¶wm;[I.Én»K~–¹(q.x¼ɦ<ýÌzN;oQ»“pw¡äªi ~Ä“ž6eŒ”ÒÊ^·=ì{ÊÆ±ëdˆ½Õî%W8/øq‹Ëq'Úcò›Oë‡eR]´û&_~ôã?˜Ìkº%Ù½¹ìr[é#²jŸÛ5¶™}mo íر¶Œœ’—Ãòu$åÝæ¼ OË?òã’:®0"Ç#%·‡z’Þµv‰”Cþ8/ mFÐhœw¤½`³Ú«¼¤+ŠzŽ–7´™¢8½(=H›Ðü˜Cÿß9r©­jþÇ–yæÉú¯ß¿ÒêUùé´Ó[uk§ºrï Äuüôdå¤ùÁõÛý=/œÎ&4ùùî_“@;ê/µ[_2uÜu t{'d«|¬øÑž†›¬Ð‘…ÔÌÌ6ÉÔ%õiDwŒû4 mÒA× þxíY®¢èŠÈþ‡hU†ŸÄûi½Óµp-7ÓLze*P&šeЇhý«j-×ï@ûFQxñPå¾ ÀèbfÎ…^rÆ<9;~·†½=ÓÑ;_Âû†áäè­îú»ÅqÎðçï¾5²ò:ßósw¿¾-ß^¹m5u@·”Ô *–ü¨H<~‰ó@Ó¡¦–gS.ZkÎë”*Ü7ÊŒªªå&=?£¡Ô›v£´pPö¼È4i9%g£pþoA«AøêÔxFT[ ÐkœàvƉ¯ž; ÍJ6EšY Ûö#y]¥²¦~'ÚüèIUÁ©¾àÇs$ÍÅÄÁ®¿ëÕ…Ì~pq t-5ά-•Gz‹)Ù]Sxøq†ÀE?OFȨà9f_ðl®%y§à„ì@÷g@Ÿ§áÚçòü#Щú_Æ™ä¶äktüØ,[ø6W²Ó €mrow™Ä¥ ¨’…Ýy†øô­è§7ˆ‚'…¿K&[Í^—|¨Íl;ÏŠMiÉÛͦOÎÚw’ μ2Î;†ìÅ5Ö>­]úܳǹ¶ ýÎ#óMÂïä/Þû“í&½¤¾½j{ÚÁÈ#QÝÚí^Ék»K()Å3IžBLúÏî_åRÝôeŒ°_‘eáKú"‡·µ½Ú.´5­Ç®G| ~4··ÀËÈ3åfnIFIÉ¡ù)FÓ3Ù<6ŸòÇNuT_5#áÚc …¥øÖ¢f %»ì‘ª6´Ín£{Çx£~áì`žnÛØ%v ¬ƒžV@%êp".ùŸìžnzÝÇ–ùàÉû¯×/Ñê´ªéÜwšë½º¾Ó¥¬÷$v¢èõŽ£ÃÁçnü¡ÒÎxÞ8|ó?^˜–¨“螪j¡>Œô‘ËTÐã‚ì‡ó½#™“*3N¿5¤Âf½É¬Ö«Ý¦6]7MQ\·õ!äGL5V%Ñ•)Þ{9”é*U‚ºô§[º(°®T!ƒÄÅg•?Ž9§tv(t¸· ð„I‘p“ÓßÐ ç|’žPIðãœy`Zµ+Ä×ÇhÏ ³Ý<79è´æ*µôÍÿ¨‹ºN¥È ( ~?3 h6üÓ'ÉwJ¬âä¥-Tü1Óºë»{²P(}¨Î|´Á|œsd^m3Wt"å÷2•¤ö˜,|œ¦PÚ…Ò"B¥‹¢fÉ?RSsNÝW×ü8d>×ìŽÞîÜ ¦´ê–ùÚ«6ò£žQèoþyXó›¾~4âÄÜ þ»´>9Ý21Á÷àø±ÈGÿj »Œ„ŽÁ¨UG* ˹ ?ÇõMŠl²,8…,ñ­7g=ŸØ€2š_ñ£»Ó}­4¥á½¼Ôw¬ eR^È× I“¤—]%Åd¿çÔ2~ùÈ5Žs"9àĔČ Ò†³œHã-(5²Çb¨î4:G= ¿ZúrgÙ%Û䊲o7*É+P.*VNƒFyøž,Èþµ—œß¨ô’Òñî tž'ƒB»ø1ÿ /Þk¶³·¡,ä_¥µœÃ•‰Ì+ør’ŸÐ52AÖoÐSÈ]ð2µâL¼”V‚K¥­,âG|Î7ÿü¤œ³]e/…–¾à~`jGô0ÚûÏãÎæÓLÖ"žRª3j6 üÏy8½)OÑå©”±÷¥†´—v¥%ðãòG> DþP6‹¬ç H+±%Ù¦){?»uݳ߹„4¿WŒd2h?ö—%Öñæ´îǪö‰èîoãÚ©2Ê ÿ®¤OåÜÙs…‰÷Ùú%YÁ›&ŽoåèTüJocMïÍ` ¼’¸Öß°ëlðm¯””z¶¤-ÂÇw½QÅGhYlN6ÿc†Z«M ø¦¦ˆžÊ3[ÄN“Ô2F""m´D>Zìݦ'·=øªmjÿ±ƒä/y×Á7ÿ£<‡ãæJðÃîÿôH¤.¨%Ÿ½¿›ñ_¿õÈsQýî\rëÕº«ïmó9ž$ÎEg%ò‡ ɳ€OÇ^Ï{g8Ÿ˜Þ›?躎¢=ÙÕ ½É1yLCÝøï_ÅsŠÀN“)O«1>‡˜j°Ú‰¤pœÁHOF{õ÷Ÿ.¸G5EÅÕMéí€ÊUFÍÉè½ÖA­«OLÔ{Š©¢ùçcœëÚU¾P|nzÅⵔ§œ7éwrWÔ(HšNš³¦ƒiúÝþå™bö›@ãG)»+0΄ÞW„+ïJ98¯¡¼šüMi¨YZöÝ÷¯9ñ‘Tªà×EhuJœgFÓ–‚•) ~îØôBûé@Åõ8-BkJ‘ ¯™èhÙðÁðc©'šÎü‘œgò $·«P×’8Û8<©èr×[ ÚÞ…· սŨîuÀ÷¥fz¤¼~NmS ܎ûxew/{÷ýÝ©üŽ|:²Â&I'*Étxl¼0•óq”™’5p–oÿóA`ØdÞä®:HÇ©%ßAþ˜Àd¯ìDþXcãÈ2Î&7pñÀÀ(òìú‹Çº+o9¾(ñ¢S¥"7&ºñºÌíd‘ÌDÙÕ Yì}h+yÝûY¥¤9øáæ-|-ºß{””®üEyõtpû(Ú¾ç™4‡—Èpi"ýÁËë¶>Ô~›¬°§ÈyÄrin‡¶8Æ­Ð>S¸¶yö±¬œžª Ú¸ߢá\€3™w&¾œ—Ÿì5)½_`GÛª:Þæ—ŽàÉq© Û¹Ú&˜Y‹€ŸžŸß÷lràLWa ø‰zñqht;¤„h¶¡´“Ú6Š?Øž¶~v’ôµ3 Úã$¢äYCK'œÍ,äOë]ÄW½u€aôª¿àƲšhhûÞbv˜ÍeJ$;Ôz¼[lY¤š}ÒRºØ©6ƒH‰Ç–ïÑFÐè€9o¶|öü|¹>fz Ç ¥{æ¸a3xS"Ÿ&•ÉÈjÝ‘ŠžØÉÞ`R{ƒçØöw;JÆËk\¿¨(¯75DþøÅœ ~ØýŸ¹Õõé]ó0*Ÿú±}™>ðƒª©óÐé©Gê NiåÞS.ä8wð빊¬~ì퀰*Žžd"Áõ…¢ÜðöûœO{uIO ÏnZé¶N³ªg='üäB“žê€#˜lf€ ã˜_oÜUÜ…–ëá!*щí7]®|;üGMô󆼄*QyÓ®z-¼õ óÅ?"èÌ™ôw^iw¥>/?€Ÿ.Ä)/‚·=ƒò®ÐO\€Þ˜KÚgʇ`þÇ,³Ñ<5ùà‘#ÃUv¡iи^Ðâ”—còiÊ€Ú˜:Дkf ó½Ý^ú;?ã;[Â=_G9©e¥ÔôŠžQD(Š»BÕ` 1¯¤ì4Éü­ }sK¥–«]&1FÜ™úYÕëR!ê‰sNÌ•¨-tö-ÃßGÐ䈵¸b?“cV;0³Š¬µo}âm¾UÖ"•)Zí!m£0¦¿€¶Ö™S9´…£›&Í vþÇnOh]Ù†ŠŸñC=¡¼–hÃùH–ÿB²)È»áìwóº 嚢Üä1Û¿Ú³·¿S®¤òÇNäŠüpmÑRÙy#¿ãð2Q~‡¿Œ#W8ª‘ 8oA^~âá•r˜ÕAÊ»â<4^䡸H“xODîíý½ËîüÁͲJ^Kk‘zJdŠ3ÈÃ^9lÅs¨²ÿù{§)ê”ÂñOPݶ¼^#ÇŒ“ È ì4Åk½¼}dþµGÏIÃëÀwïõð oœ_ÖÐ, $¿BÝ9ûa> ~Ô”~Ìr϶†3evŒlär]ž¡Cê9Í˸Zôþõ³õ+zªnäÇ}ø=CÛÄ5ñ(£D³ùÀŸÒYÙÎö‰ä³m]›[FËF{ Z»„¢e^##6âT|Æ|ºå(ç%FÃjŠ(M]84Ò ªœÏö…F×´+lq°h£d×Ë(»N Ú&¨c9´Ì}®É=ižIm¦|<ß4ª™>gR¢ÿΣüN¿£G’Þ ù£Ž}–ϱ—ív[Íd°L·±msœsq׌{Ks鈹jˆ}äÇnµ@_7pu›ã×usPÒxçÛÅRXnKl{X’ÛÞÖÞÝv“h—ñZÛ <ž$³ÄáM”åõ¢<üˆ2™àvÉù¿>r«­ê“n¾÷äø×ûD?ª;ލW鞎ëNîzJ;É´Wíq¢þàóóh*¶^j’Q2yµè8j¼ mž˜™¦–é~ÔüA~¡ÚàG^´÷~8€\& çjMÉÁðnðâëuÐ{ÎÁï<ûÁ†àÆ ÷M.äâŠ|ºZÍÌGÿ¼gj|«rL6‘B4ð “©h0”ê5C ï@¦’È1‹Hó(uy. ºÝ?¢†àù9Ááß4¯LI(CF(] hXLháø”Nð¹·)#òÍ=Ó‘VÑS3â»Ï?:µÀÖPß{äB4¥ˆh¯W”=J[ Ut÷?Éî[c+Ì2O…þæüÁuê–ÉÁi<2÷jd…È`y~šN?cÄ·¢Ñðšçh†Ó0:þmJW¦§zq°üH©Âë»ÆãÎC'Q‡L`Qp))_¦öfŸvd÷æøü(Ô猞™L42Ø÷¯Ö{âëZÆ¥ëtvw½‚ï/Žß‰¡ÀuXñ|ü­ïåipá7(Ùcj×¹ìgŠg檠+<ÎBþ¨ þ¹OÌgñ/|‚ªÑdJ¯Zâ˲…Ç€°ø J»bì—=¢ì_öüü_òŽû!äçrŸÝœ—Á'W²~ɧrÞ9d†¬<;‚Á—x¾,‘×pð•í «¼äàm+G¹© @jÈ„ë}„y"/둟þÒg†7kè=¦û4ó:ÚÊkdµÔCrÉ#Ûm[Ì>— ¶¥¬äirÏ·CI´s€ïÝ«Ãøü*Ÿå"pŠ­)÷„“ÎÅ8¨_HžÊŸö–ü&=d–]hcÚ 6‚·‰Í(½e‡½(Éd®ÓTd»H\yø¦ù´Þ^(uډűávÓv÷BHÌýQš.œÌ–¦öhçÚ36!¿“=+¿€¸øñŸ?Œ6šâ¦ËÇó-¨èwP’´ sl³ÃÙRÞdv™mhßÊAYŒÖ›g'ØK¨×8ð£¨í&¡lB‰ÅŒº“ΛÓFѺϞŸŸÕÏÍ`ŒŠ–С‹æ'›ÝÛÔ.?ÎJOûù(µwˆ÷2ÊOo·ð\[Åö±Sd’’`,Z'“¹=ïòü#›Z Wø?{âÉ¥¾÷Fç·V÷T)ð£>¡ûùÜÎAOX'оæDÒÏÕîuÙIO4‰(-½3舩®sªUj~‹üQÞüB5ÿ¡zfqJS{hz~d†{4Ü,7¡Õsu©1 yAý’´[}ç%øã½gJ¥›"ûƒE®N·AnMQM#×[@§c"㤅˭®C’¹–;Öd‡Î§àwpo ¨6„îA‰À½à2‹pyPôœ¹muWãëc¼g-²ÊK“†^RV¾N­ ÇI¨ý®5…⟤l¼•®šºÐÙ‚´ÌùÖ\ÿ9::…àèÝU¯ÐMôî.”‘ܵ}Ss¨ìhüLßzU–ÝõoG˜pþ[ï_5A]3.Æ!«oÚkúƒòÐ ÷.ç¡Aøï%䈑pb[Í7âÏ?)@/rîSZ\ðã½yI™pŠ€a )JL‚Ÿòð)jdªéPÒ—Û¡– òMñ™I}Ï?æsÿjžGt5s­3 n8?÷­­ÛÂC“Ãq †TŒ7óxðä*Tr9ƒ{èLU}oÞ­ùjÿÚ^Nð£9%ç}<ü8‹¤:…bAýï#L‘aö²¤•Ý *1‡ËÃ;DÀ'•漟³P"³4Hnrž˜Ô fÿ Å ¯Ñ›ï ¬éÜBüeŸÜõ6i¤0 gÀ·–ùD¤šM¸B¥‚¼õã¡?]FR³»Küv:ÏCÁ3¨o]øñwö‚èýUærQ~äæÐ¼”¯ã;¯C/RÔ üˆ`ÖQT>ƒ^Ò DG{x‡,’¶²̹`GÛœö„œ‚ŽîæapÕ/¸?rE~Î'pÖþÈ|#ÍËe•ö”TÐò#8ãj„2oLzy%Õ3ZKYc×ÚH ämc+J_y„²3¹ožñÐï÷⾜€>­=÷Ú³Á Ã;Að4òÁ41ÑÁÖÞÖñ¦¶ý@Çf6w¡e/ÚLv¹ ±{%—m Æeæ¹hÃúàïIóóó;èW&=®ý šÉ±Ìz*i½‰ìj[Ðzm {ÜájXãÝ-CQÞ[U´M. Ãm0ýÌ3ø›ÿ)o:¨/›öày_øÈf­¤öN°%·,DêúÃÖ²WíTï Ù[ÜžCþhlˡޛD£'FÆHéJUØËeÍ®à‡Ýÿé‘CíQë?¶Ì;Oaû_òþÁ©ä¼vºéz„ïí¨³žHNd}à ¯Å)úƒëïú{¬^hbÃO¾1ã©„)£#©ÿ‡¸·¯"Ù¢¶OwÕÞ»î6¸»»»û .ƒ»»»»»»ww<¸Cpþ­>ß½Bxæÿï7Í33 $;ÕÕUk­÷twÕfk«zªÛè º¾eWÿ­v&µË@Æèâ`/ÔWï×Q,?ë¢î@þúƒn‰,qX- QÅPÖv+Šú›>Ò%¤Ð¢ô–ê`dN¥/ª’À~ÚFa ×9‘Y*«Ý!¨·Ç¯KSC̾ „¹ '(5ÃìVÜŒS›Ë{îŸûé†!Øp´kŠ>­?éÌøîXü ž¹¥Ôx2*%Ãçá`äÖÈÿ9i…ÜÛ¢åí8täVîá‡ß“ÒS8¸dL¸°7tÔÙµwÅ@£¹úŠJôKþxâjomÑ)øÃ<9 šñ×íq…'Q"N_í»ÿ ­ßãy_ÑY'ë£Úmµ"£Ûz`ßÅÜÍÅ·ÁÎghÅp5"ÁI\¼“ê„ꔿz¡ þ¾(?#=×=ûÁÿ\mª+¦*«OÂÅ'#¿ÆAòí„lÐé`)”ι÷š€BO&òFxÜyœ÷x…Þ­BÅ©ˆ^a= To˜Ý\ר uœÁ¡¸ ¡Éá%ŸYË8dNJ9Ä¡ñï9à.œ´þ%çÔ”\Ï Ô‡Ël -èN‘<ûŸâEðnü„ßð4n*¾²SžÉróô¾´¼ç‘œ ¾`Ë=vÞ^ô‚n6ä·íÊpÀ½y¸#·æ“ô˜'ÊÙEooV·;²ûO÷l¸Sa%·@H¡y߆{ùÀ[/QJUêÇ÷IôŒà“È;]9÷eÕ•Y|™}Lg“ÕÜ’#f®ìäAòÖ³BWeîÁ¯á–ƒù,Îi¨þþtEWN« Eæ¾üçX•Y+Šÿ¨fîÀ'ÊÃ'çc²™ð¥p”—扵\gq9¶Íihï·zÚÚ`ÙžÂH*—ô–]RÕ”Grþ1Í„–ÜJâÉdN õûÂ·Ø *í…ÞþÛþñÙï[v}N( §á!Ü}ø’×À?vð îcÖ#›?1¹Üe*7‘¡âƒ¯JÆø=¼pFh¦@ïhø‡A¿?¢žðšét”÷Ê~¨çJ(ðK(hjsNÞ™Ò•w‰˜g¸2Á†_àVSqC¸E€ç¯J¸:X=(>åG4Žór4m(‹„n>—z2\vƒ¾Hn×=È$?œ1~`9çþùŽ ‚êŒÔð&@â:a?¡Pàú)ANë¾:'õÜ?)mÈdien›¹f¬ÙmR‚?›}’Ït‘k áiðúÊ<žöèlºÇ·ó-b R÷u2Ê9Úž?¨Pì2ÉÜÆÌ1MsC›'p¶~f¯9-md®©dšÉGI,)0_cdÔË4ÑÞoþ±ÆÚ¤èfH+1ê¼õnÉë^`VKAù Yà%Lz÷X÷IsÕ‡ñSL2B¦J8Ì–¸H63‘¼>SÙeÿÚ<ÖáŸ_‘•ó—w?ƒ;" Ï7·ßÛÃÔ%5Ëã;áÉÕ+;¡ ú½õwﻢ©Å:+¥"ËY¹IçRI­ÑÖyå¯'ë:º·`·ý­v&³kA•&é"Høh²³f‰uÓzòpÞ§îíñUóCT1šµÍʤZ#åÞküIÞŽR7Ѝ{`<ùxÞéiA¹i¥þ[…ä™åCžõ»‘³ÒMZ•?e]‰ÖFä^øÍÅAWõ]]VwÁó»kõYýZ§$gGÔWPÀEpŸ6äÌȸ')'oEµÐÛ ´ÜŽ6ËÚ¥é29;ˆß¤ÃøŽE* Ï‚dÖàœµÌ“ófÊBÓõÙR¿¨ÊZþ(ŒÔtŠæMù@ßNOM‚Äâ,ÔŠãA1ÖÓhÐÉ9ºJ;@uÉO-òýÁøÖ;Ûñ4𣠞BrS9JŽßErÎR7SŽ.uáLÜI± Ô2Î;ZÌt¥W ôr2ç0NÎo0—+¢uoi7a?8yÊÀ¡Ÿ×ðwþ´¾¹ -ý‹êP~íõÓšÃ}펺ÕÏøònfiªJÅ»¡™ÑešŒ6—á‡ÙB¢žÏe™96/éLbo.þð Ô‡«l…qÕÿÖÃ7"MâWVfs¹+»ä¾œ5þh} ¤›Žã?qOä…5TÁþ‘]ïÚE@bW0Rðt'É ¹Ì~ÜЬ4iç®&ë¸&üã*ªÅÀÙ?ãU|¬t•2«?ÞOQ[)Ÿ†ôáÒ¼óÙ,Uä?äKÈËEÌ ÙlZºÈcyêø›[ðCÏŠ”× ÓËôÓoµòº*ZÓ()XïÍâl\XW¡ˆòZª˜‹ÒVFÈz³ JšË¼7õLa¹.>æ¶ä9•ÃwØrüÑŸÓÓ÷ww¹¶ÛÏpÍBIl¹©ßèáÜR—;­é%…¤3hk¶ÙlŽ™Df¡ÌFK³Â?^s°§%Îó»/tï^²ú¨×:FÛrŠÇïT¶MBwJ0G×|o(üzÓ|tBjKGÓܤ„»ÇgW€¯t–ÖêæúŽþ~ÿ|­uPÝÕý–Z;{³é7b»{Âk ÉhQpÍšf­™ "‰îÎlú³—©lFÂ÷ËÌÈ´ JQ‘Ý\ú_áTÖkÞ·ž±­ŒVÌè_\7¬ºö-»›Z¢ºyV§ºêJnÛê„ýÑ~b%úÍϯîº"¨ž: e¤Ï`„W*œŠd-€OÓõ‘j¨!¿¹þU>;²î<] 9ð$•Ómtë«uB7!g/â ð©9*ð3÷Aʨjƒ4v#QÖ¦kô¯‡þ¿WUi0fõHMjJL#Á!Ùp3øã/ê‚ùâ‡Zã(3¢ž þmõ¥[T˜¢Ñ-}M×ÔÁ3×z×R}HÒÙ( ’ÛT™ ½ì‰vM¥ZЀóHÔ+‘ÀC=’Ò<;F0›ØÕ赃J^qeDŽO?r—_Ql~áYÊYoÝY¿¤0ÍÒ¾*•ç55˺¬Óòeš <Õwvô. 9ÇC–ËÈ7á“©/èä(2~k*O§•wÏ鈴D ”í®ìeZ‡ PóÏv†*éêê*´©.ücT¾®Krrö úú¹ÚRWLU]ûÀ#Ær_¨ï3ê²èJ1‘ikÁ+·Ã?ò!OF¦IŸA1Sàõ©!\)›^üÓš‘ýíF`Ýj”~°‰Ëãœ[€Ns‚îñWž%]ÌÉ'ç8‚d–yP>ÍÑ ýy‘ÆçpQÒzm >œþˆ…ÉMÛËG@{¾4<ðÑÝóþàmäÞøPÑ¿å%'áhr„gq3\ïáTÒ³"Ý÷ãŽÝ×à*¨·ÏåvèÃÛžý·òK®of˜Ï湩è^‡«.]å È0 |ëüm=<þ,iUñÇû)j3%ä³ô‚:ƒ?6Ò^.^RîæÏÏM{“ÞÜ”m`{|[¨‡`6oýæÛ­à™î ËždèŠÖ&”»¬™)Ie©Ü”¿Án~fˆ{¡¹hþ6kÙδÁL•)ââK øy4žþæÇTá_Y?1³u!Àý蛺í[×;«³}Ån§6©žž÷?¶¹RÙí½¶¿ýÉJù›ïžEBê§ê·ú†®M7U(ÖêjP[u.]XwT½íæ¿ÕÎv"dÙq:Ròbª¡;è¬à¥ãº Ñcu8g¯Ÿöœúˆmm±þ€Wl§=4‘2AïJ"áõ¦ª1üc%•!/ž¾è%:kˆÖOÜ ÿÈD­0“ŸÐ1¨›³ël^ϳ=7 O¦c“‹öëÓú/]#ØrÍÐ'õ y+6ï‚Nãv„3 §Âœ /ìåìg€ÑšþÜýóv)Ú€¶Ô†œ¢˜1Iœ}˜0»ŸÁñ^ÐxÁNôÃgü.1 ÕGÁ‰¿z¦‹¬ÅÖZ:Iú"(+"² ²}:Í6ü#´iT²í—‡‚çî òýÁ¨Ömû«~BñÑ_µh+2vNªN)P7œ¸°.¡®ñln¨GU© ('ù@ƒ§’þ±ÆOÓ'p&BMãòCœiiÌçø¼ ‹×Q|ÐÃ)…î‹+ã7è‹¿/FÕÞ?íùÞÔî¬ýØ…ó2.ŽsnZÉõ}.˜,}Í É]þÂd!ÿ ‡ŠßJÁ¡Y±(•¼ÛrÛ¢ppÛh`ª)|ÂY!Æp$±d ý!Ù*—d’qÉn(ïy'ℬÄ=Ð^3þ1ø‡ŠíF4ŒN“ÅIy ·át‹GËjÙM¯mú˜Ðn?“ýªÜIzƒ"bsx^Ìç@*;A§)ªªðC=·ÞJ1 gO e)á¶+y!®¹läGüÌt2Ù³o xñRy"áU ó÷@S xÎy°þ¾eiWmk4¸~8'àìº-…“ËRœ‘IšÊ^(´BÖ·Ý#MZù(GÍ[‰ŸÔîkd3zh"' à×]§ì+ôÊ=œX¼ôy=†ý¤¾ydŠ"Ç•’f¯éhz˜}Ðþ9²Ýì¨fº„’"¼£Jc^BgtAý}w¹VguFgŒ¦:üLu`eJ¹®[Õ|‚æ—@åÕ¦º9lNÊßø9MNxfzÉÆŠ?;«Åéúµ~úÍ?V[GÔÝÒ•*Ñ;}Cüв£R@K1ccj¸‡»/˜ã&ªYÌwLóÌt i0gUá0ÜNû=íþ§GVk·µ"ÀûçY¬´ÿÐ?ÂYW¬Nö+{°Ú¬šzÖ¿ÚïÊm»Ôû©íMÙ|‰ÇyWXÕV»Hè¦ÎGáuUÄjm=SGÐ÷t?ÕÁîô[í$;?Rè,œj:oèÖð{–Ÿ®„L:[çÁU[«f†¨¢mͱR¨|PÓõ¨”s©:;ŸÇü¡Û@£6æéÌ £$©Z‚z—íçª(FN|(òQhfyÌå"På™tÇó9Nf.€T²GÀy¿gïh×6í§?ë$ž÷?v O‡â÷¤+Ð㊜›÷QX'»êšÈ-i!˜ŠÚ5‘6»À{}Ñ–äð¹4È<x!<ƬµFA¹çRDÞ g>¨«t¿$X×Bk±ÎÂ@Ðo©)4£0ͧBл"4Œë€jö€Á:À“îcft††E橬köí¬ïr*ÓÐ@.ô[ZÐR6~ÿè¢,YÎïkBã[ÑXJIt|ôÇç üc±+½*©·à*L䆇mnåùÔë¨ÛHøÉœÝ_|—×"Ÿ_EÛVÓrøÇ`* oʤOüô™];{ .M¥àþÛï›ãœk`dä‚›h‰*}¥§Y‚|ùz×Tæp% ^ƒ¶öã œŽrü´~âVxex\…t<ŸÇñQ^@¨Ç’x²“ÛɨÖa ÿ€ÛIL™ÕÍ ¶ñá܉7ƒÍªØ?®ýÅþ zu~™LUIß—GÊ~¹Â¸ï¥9f2»»Ë" ãäçGÅ8wÇ??Â%Rà:¬wG£È| ´Ü™³ ·,ä9 ™žhÝ[$æÞ¦,ôðŠé!ãx¯ˆyË-áCøoäp¥ÍøÇM±L\dîÙn_sÐÄ3+xi VŽÞÍŒ”“ä=œêsLnñ¯¼ÿQÂÚfMpÿ<‡•ùúGBë‘UÞŽ :¨Eª”Ç?"Zåìxê½ýξmEûMÿmEWÃuL²é¡.HnV5´Èþ nìkÙCõ³ƒ_Ë<àQÝNF™i”Îk4žºël:—ÕÜfÌÈú”®ƒL=_õQÅ(Ö«¬ª EÞ çÿ‹QAÞŽ¥ÇÒ"dœ>´¼‰êö‚à˹NÛI@A#)9æðqÔ,Ê{©Ô©b2Æ[lNCaè¬>§Ÿ«à÷¦÷w-ÓWõ{] ¼îì7z™žFm¡z\'ÓmÝ^wQ7¶SSñ¬]ßÛœÑ+¤î´à…$”5þ@¾Í‹4µ:à|~•’†ë=ðù_}~åïºfÅ£üìì¾4ž¼)iê]EåY‡Asʰ?þ|0þô9«Ý5AÛï¨]vPoÖÆµâ«·Z!ûP ºI³á9(¡Üü†zë*,ÒóLNæyþª#¸#;}Ò)àN^AøÇ.©Êp£ôHãƒá¯áaÎó»©Ù‹{BÏ!m6@^^ɾ¸N>¨2¿ ¢ÄðÀ{fͶ›éŠqm„²]£z`–œÐ`?NµïkfHZyȉ¤Ô>ø#T¯ñuøÇîÏѸ(‡Œâfƒ©f ÷mÖ‡ Ÿw§p{¾þ˜.ë$‚|æ*f´õ¦‰én /¹— ÷Ü?OÏ»ø2˜`GçôG ýÏëÝ †£ÎžË È#tžWËl¤ï›p±óf€)e®I?3mÛ(_ä:¯ÒÂeÞ‡?„ö¶°ÿG3W'k8¼v®BøGiÝŠ²‹ŸT27Жé²JÁ¤2MÓ {Óœ‘”²‚ ó<¸ßpH]~`5AFÒxD.ä²ÁäÇ8¹[f¬¹ŽKdžô2Ê=ÐÌ7»Qu·ô1–‰dÆÊ[¸ùT\ñ2<ˆëRzï·ó­m5Pt:ŒÜAH/õK¾$áÜš¹¦Iéìñd¾˜mð’{`®ÒÀô5ÙárÎçWù.m¤#ÚKºõÍ?[gÕm=cjòÒe-æ”IjÆHQ+G¥ƒÉeN˜™îöæj?äfŒg€îÂ⌠½Çœú@Ùÿ•û¹­ÍÖŽïæüÇë—|t=° ÚOì¶à¿<ë_Ýt%´#©“öKû¹•ú7ýãœëÝN¿Cæz¢«ÒkUP°îX¾à¼Ò:·®¬†ý¦Ä·ã#)Îu6…F7Ô“tB«ŠýXw§ú–ÎNÑi’Âçw§[ìBtº9Êt‡jòFèô 5×ò´³æ!ø#&MÐÙUHîù¶ßªBP†|†Aé˳/CRGÂCé…âìä¦ëúÆpµ`[¸Ê5Yûh¯d$Æc·L/z„ ê¼ÿq‰s1˜®--$h©ý«{Ýÿ=†Ûåè6t¼&=§»pŽŽPý4î ª÷÷ÙC³@5+)/˜ëJðË7Pßºæ€øò#5Íö|B•zÞßµš*Á?úЮÍo=+À œA´ßWƒ\?1¶õÉ>®ŸPhs-ô»H¦0<ì4fSxž§×«8²—gqîFíàA!ud´5¨ç¯6ºB©Šúƒf«Ú½~¨øÒ®AÃ<ë`æÆùõG®xÌ+d/ôþ1—3“ÍgóÖ$uÏ”ç!Ë¥‰ìáÏ|Ûô1•Í Yµ¾Æ;$œyͽ¹*wƒÿíäV|‚‡rßïŸWpýmMóN†tçbœS×§òHÊ_i.]à+Lh“Û» ”ù²¸ÜW$ƒ,㚸V¡d+øcøcé·z÷]ûm?rV žH.9£Ïë³|DÆvç0Sd’t5M+3Ü6 Œ—Ì0¶‰kúÊ'8ð~ÀMyÒ%¬HVÆê¢¾ê¢HÃÀ¤_T®jr¸ãƒ9Ššø`¤]æ®ñ1uÌ-óì6Òl4È+´0²Î]ÚNtSýHßüæ'¬ãêŠîG]‘ƒš‚S/Hhw^3]ÊÈf¹!)MIÐà"÷Ró Ì´‡˜ føc¯8»áFÄ|‹ùškü+ü‘izâ·žy6 nGÓ_]>V!xE5]eõ<õŕʎª.Ú—ì+V†ß\¿äë†ÝQEd#•P³žXwÕ]_'ÑUToÏ ¿!?²ÙÑ ËuNÌ÷YÔL7€4´éðû+úO EÝU—òÇ\+µªEç {£¨ |¤·%ѽ Égh ×e), Ñ Õ¢Ô;`ßW%A i0¶.Òúó?»N'‹'Ðk¨v&¤ŒKúžN®ËÛ³®ÚüQ’Üœó¹ -Æ÷/G>wü#1rfžOt7x]DšjÿŠþ{Lµ!¥6§Ýq¥ÞèÅ,8˨ì¬ü}¼5Ê=þàM”›ÖéM*©•ø5¿ºX%Vmùï+ÄBûŠ¡×Â#ñ·£õà£×˜_sh(¤{ð>ð˜ jwûׯ¶ÜêŽö‡ï)À9@z+mKŒ|<$”PæAI’r+ð\8s|zªÿ t,ÿØîŠ£šèsøÞYÜ9ñ!µ¥úÔžb`:q,xTijýÜÁ×àï¯ám3p¥G᫪S<½Ò²óh»¹® EˆÂ>à |–Z9o8âûßrLY€Té…Ì|‘“@W¦ó_ð§øH»•y:/ãrQoT&þð<¿»š'òz^‚±2‰?B/·qOçg9+mÈYn ¯Á'A‘å6ü®øl,U³|öû-®ë\ºL¡öƒ¸{ÓøÇ28…Kª™Ù&”ûø£ŸœæÆPØ[HÉ<ç>ü#¼‹2ª÷ÿ «·zV"»MCqÓ øÄJi/7Ø-ÌSÄóþyÙÈS噸e²BK~ÆG¹4zÔߟ€.âjf ¦0ø›w4Þš\‡£PàŒj ƒ*žý>˜ð šPî¦&¸ë´ñ“ü²_¹ÃÊ1|ß`Ž`ýÝ›®cöä&çÜpbQ#•óJ}PB 3GÆ ß”»?xä˜IhVÊsVŠ™¶òÉc¿çÖ<…|tžþ‘Ç£¾€? RjÇqtþ IÜYàõMtsXꚈîæ¹^%SMg´ú¥¤’4È5/0ª·è)ÚåìiôŸc«å­évàÁN4šÎêÃ’Ô=ß³¾æyÔú$ÉLf÷T·/x)ÙÀÌ_ðϲÈéh õ¥Ê”Ô.kÿë#¥µÄZø­g¹Òþã÷?ÂX7¬bðzj¶*èy;ã"R¿Q>v(uüñ{«Óßv½·›hÌ÷Ûº½UéTYkuKùêòº€.¥úÛþæûƒè/øG!$Ñ-ð~:™•Ⱦª#Û¿×å¡¥ÓÕˆUŒ¿£êÒÚES‘Ë_S}hiz©Z"“î…šžÒù§èüj]ðå\ûìÛª2ÔÙŸcNWàóÔŠ<–žó”îNYé¾~­kxäWÇ:Ïó»ïu~dä$Ð÷´žb êdþ:œÚ—³ÿµvÞÿNF‚}þj]›| }u ÐçáÍ(;%¥ãžçwãòuÏ({àQIy ¥§õúªŠgýjMß®õÖcÌÝhO/ZE9 ˆÃ¨ è%Eâ 4ÊãGÛp}z +^¦M4†J?É©-£üõ[hòC´n?fQ^$ÂDø],^Dô(õ†ç"ã&ƒ·7¡Î ž$d£/fÑ ÷Œ©ZÁ?Ò:ï²­üP«Zƒçxö¯=ƒÑS‹ïA=wÃãžÑZ\Ÿ)øÕ™1ƒa}T¯¹ÝR—A…|J¡§*ଓóZèóGö’öЙPçð’Kæpcއ„¿€+­öpeŠ ·êö¿v£·²ƒ?–@ɧÒQš€Zd7€wl—ÒÎ(¸I}‰"3À‡y8t à´„ÚÚoí±Ý€FÒuRœÇqwxðe^'ëeûsCdqqû™Œî‘¨ÞLFÂòsV°Ósx×IÏ:;EU•@÷ÏÂ?Î"MuÁOžGëx­ì–pÈÈòÚxAíïÈ 3FÆðzy+Ÿy8×ãü Ž<ŒÏ–ð2®¦ÖPä‚‘¸ ³¹ §Ñ ¨ˆ|’ZƘžÒMÖ"éÿa²›âîž&½t”#挔”íÜþ‘@NÁïÇqÆë'>t­·¯‘AªމH­ÀÀq$›ñ7MÌÒN§¤ïçHRŸ'"q”Õý¾o9««bqmŒ©îœCGcIæŽe6˜Q&Ù'KÌ;³ÌÙMØœ—¶rÈ47Äþ‘ çd§Mz˜~€?ÖXûÕsíì}Þä}U‘˜î­f¯”•Ïâ 4ÉÜKÝ>f‡‰c†òy°\]ÓK¶‚?.Q44Â\¬û¯¬_ËÚ`-þÖ3\Ù~¹{\pÇC×-«¼}Þn¦æ«êžÕ©Î¹bØZ¶Ã¨ËVLë÷ž.;íº†÷QG#?¨qL]@·¶[§Ô}ý·Î¯k¨~¿ùþyZ;#òä ] 3Þ›꩚¬´öMÝ‚â’PGJMKÕ€UTÖ$+»ê<îì)^ZRãð(z š •„šúƒjÒBKKª…!¨·Þ¾¨þ†2$áGt kðPìrŒu9ߥšÜÉú5X¬¥®l —»–ko(MI$Ët|ùx&Rþxº²i‚?¹ÚBtxU~øGpë_u¶‹!1µA¿ /s>¿ÊH‰é%b†Ê^ƒÍ€Í T¼ŠÓ*í«bÿrçù+?]þ1Úáç—¡ÐHèÜ¡hœY.=r¸ó¶Bo¸À ÄDø³7FÐþ ªÅ¶ÞصáB8§ªt 5s€3œõ¯œµä+ëê%÷…F…çTÉn2¥¤·: þk¹ÿG$UG_¢Â¼ÊóôëjN¢u‘y,Ôý&=¢Zpvg-«Ãðùžû>³àC©5•Õ“~Ú°]CW„kålÜ…ÚLݬæ+lÌG›]’EŽB]³Ê"vòc&^Ä-àO§¸ÅùéýAçýó¤Ð—Œp„í¨1 g<”ýØ–)ÜF.ÊAñ“å&´ìâ?áÓÑ“8.tz™³›+ͧÆîŸûÙ­Ðú›ô™ò¸fòUzÂódµxó®bÆr_0UÝMeW!r*ž¬`ÐV_¤¥CT$ÐçWÔ%Ïú»W¨7Ègüch¦1hàû™…¦’¹+>f°¬á•òF^¢—ãÚ|áû<™ŸàwSÜÿ¨äjlMF ˜Âoi,wå$:,e÷RZÚ_úB‘—›Ô šî&¯Ì–‹æž”–Cè½ÝœZ΀¦rBúþìüI×:û½Ç¨@‘$!µÑEÁÀWõÌ©(]q¶3áIWM63KÆ™«Hý½Å–2à¨Ò‚ÐiCÿt»€Õ_…BŽªBƒ¨3çÒŠ#›”î\æü(½y!»LRoÍ}IzÉ 3Ó4•¯È Ñsþ˜-«õDý@?üæà¯=ïtìÖs$¥{ºY$Eá´_åOSÈœ0KÝKÑÞìf!_1¥M73Z6I(E$$ÃaÐŒˆÜI•²þ×Gk£õ½gÞº2þ2=wˆuÓú˾k·SóT5ÏçW÷\©l—óö°ýÜÊlí ¾D€ã¾ë‹ÝEG 0ôP×E¶OªrZ§¬cðê:³®®FzvÈ ù‘þÑš^.Jë®:­UÐ>¦[ÂÁÓSKJA£Ô´U c-°²¨¶t ^± É6<ÿÅë «U\ý“ÈÏàQi’.¨–_Îuʾ©ÊP$ÝktZZBS—"‰|Â?Ï(+WDr~k‚ϯ»úë=:.Ò‘?4ýu‡'þ_‚‡Tãø`›T¼Õú¡Ò˜`ßìbç†V:;hÜ'x5¦äp‘»dñ´ï­o-¥é”ü‘Vê *¹•û5?»–Z7u´j£ð¯˜Pèâp¸„˜Yé¨)4ô|n*hìjoÁ|ÏM>ê¬}+ˆjI-¥>iS]…Ö;|•>’ ¹ü3ذ¡n§îqO®sî'èèY¿Ä¦¨è‡ ö?ßè §*é{”—7"§ÅÙõ@µN Â \“ß“/Ú™ú4‚àçÝÃÌö<¿= <[\{ýô©ï@»!¨¶#xæ6¾«1?¦†¸¶ix:?†&Ízm’û˜¹Ð*Þ*s¥Ž8Ïlù™Á&·¹! Ì1¹ÆÄWÞ N\7`9|ü35”rÕ´ÆP2žŠÑ‹rB…âÃ?Êšçò·ô,7Ú$3Ì$SE6ËUðGe9 ¢ÙÀ‰å7çÌ´ê[½ã®]ö=´î ÆU(¹¤7ê8RHF±2Ã?†IóŽ¹Èøš ‡™æ¥ˆé.¯9œ?´tâ tEg°wtz«z§sxž¯hÄt:ža ¹ÃÁ%sšÈ æ¹9jÚ™Kæ‚L¡ð•ør´™˜£bBЦ_þàÔ-í¼{Þ LØ“öIn÷ ³þ1}Õ­ò3³ÝSÉoöóESÏ43SAw‘áQ BÓ¨>Çà¶:¨”õ¿>þL àñÿñþƒÏ]—­:ö~ðÇ4Õʳ~ûWRû‹}Ö>cûY±{ÿÁgv äèÈôóðºÒ*•5×òQ ¢±tµî7×oÏj§‡Š.Ö¥=ïÒeÕ=u&+†íþð‡Kµ dà!ªh¬ VjÕif t³½¥ÊH(]骪ŒyY/3t#3-ÐåC´ÿÇR{»Êo‹Á1æƒ|¨4 FÅ7 ÓÛPꊟžhMuƒ`[Øß5KÓ²öê žÚP1NJÈþx¢§Ó&ÊJSƒ}ÿ£¢¶b\פëð ´pÚô³Wé9½ƒ¶ÞE{GÁ‰ÆQX^ ­_­/ª˜¿ü”­•Ö “}=ûœ…ÏF‡ª—9ÄbÍ‘ÀqE {¡Ì]к›˜i‘ú¯«CöÍ ª%´>Øô[œÏI¸Ú1Zâñìh›×××Å•7´³1Ⱦ3¦¾4ÞòÈsÿüK÷?þ8@)Ù þ‘ŽÑúÐ7ëò'Ú‡vf„žLåËà§p¹EðNgôºTN/³(Ð97·ëë¬Ô×à ¯C…ðàÙ”‰—‚D†K[ÏûÈò’YVr.ü„¬¼–+â§mâr7ˆ÷Ï-øÇ\Ãͼ‡ñ$ºLý‘ÜŸðb#GeŸÜGr'Û9·¼çIœ’órJ¹‹Ÿç¬Í¾ˆZúüê&ücx7&çç¹Hì—ÈÙ™cžìÇù53=à/L÷$´­–tG;s‚±½ù&œf·gï¼Þ|­öPl\Ù»Ô üÑ þá…jMd2?঱)hNÉ~³W–ñD¹ .šÄmвk|•ƒè:óL}ê[­ü®¦Öß̈ö\ þñR'©Žl_RêÉQ3Õ|d&¶{¹É#ÓäŒy-eA^eá„áå$wã&œ™¾¿{uεüámRò^Ôùø4.wNèðt$ü󦿄”Ï,€‘,¦‘|DÏ,ãXÒ’½hŸ. ¿?¥šÆê¬žèœ¸òÃhGÓšÅDw‡1;LqÑl—–æ¬9hj˜Ëæ¡´’ÙfŠ)&û%¯æÈðÞ­´]ÏÖoô—ï¬W·ud½ö ÚëzÄu¯6류lGŠd2¹g¹ÓLäSp©Îf€ì‘$|‡RcfẨÏÝìØûÿîHoí·¾?ëñ³2Å?æ#VCÛÛn«ªê¶³ºÚøÇMûŠ}Ò¾cÅ´~ou–³®ÏHp‘Àgot-º¤ÞÛé¬1àõº…Ž®«©vvðZðˆn§Ã ž¯ËQoÚHUu;ðG8û¦®O1è¥v>I¡‚ßÖ9Èêg¥Qè<ôm*Õ âÙüJCº Øf/T%&µ‚,Ò©B´ÿù){›Š…¶Eç§Hѳ¨&ÛÜžœ½Ôß#ß¾¦D\ÁYqJÑ uðÏ Ìq-Õ>Ú†:;yƒ`–€fæ{v¦ªŠ¬~‚¢òFº£;Àý’ÑûK0õÊÛ%AT]¨>ôü¼£5Å¢¸ÐþPŠ#ðKZ_Z·‹Ë‹àrÛô&•ú—o}r-³6è H©s©H­ÒAGÊ ö§Hœ É5 ¿¡ÕPÉðagàþPþëjµxuçHd=²êðT™ÀËsÿ<üã3ZUA·Tx€óé·ÃŸwCS<Âã¯ás]qÔßú9«P€ž¿Æl®ƒ–ÅâÕ\ê> NV¿æY?ñ1®ò<0ÈdÌøz”Y/úÉ?þ¶+è‚ð³8H×Û¸ÚØi ÆÊCþÄ+¤•Ù-1<ëïf/®eIËóÀ!x'´/¢öTo»m0ºÃßÖ@oóð`ovÉ8Ĺ'‡ä­´7‘å—ôì?˜S.Ãzð.¤ÚÆö¬*^²ÿ„£…×pvÃåCäÇÓe‹\b®eÆrß6©ÜÁU¥«ÜàÒœ|ôŒûüÀwŸìßEz¦ÖBñ½é9½7¼x­¬f² m ìœß\“§fžÌç ¥ha9´ì3zÇÙ1«×ѿժájf óŽ„>.Å×µÖi©0˜àOóYjJ{9h–e ™lî‰&4”Ëæ1´v¸cÇAõàœ›æ~«wÛåk;ûxÃù†–“:màæRÀ¼1uÌh¸cGóÖ Ü0±Ìd‚–æ4%´”Gß’TäÕtZW×ßwI*hµUnÞ2)»µ7§1¹Ü.3Ì‘ÔÌ‘uæ‹mš˜ fún±ijšË5ðGç-Y¤·Åºµ^¤oóåÖ)ðG+ÌÕ.Èf¹I› î™f«o‰ÒÊnJ¹‡ºšÅ†á÷MTŠ ü‘#¿5à¥ÔU_ zÚýO´Övkηž m¥ùÿଠ¶jÒÞÿ8ìÊn¿²ŸÙ×íkVTëÈoU»âÒª½vö< dßÏ*‚ÊlM±n¨“èû”º±jö›ë_åµóàê¬ËtÇ8ª®{è”V4û±vÖü vŒA UŸU gÍ·R¨æt£g6ý þø‹ÝÜ“ÂéR´°™¢â'%Ä(É¢ý?¶ÚWTq°‘ö>4ƒ ƒZ¢Ò0úqÖG-‹j÷à¥t™`[¸Ô5UÑOur¸Oj(]{xGzäÏ´ŠšszŒ¸Œ¼Šnèöð84ÂþÕ^åÿ=ÛåqFup |¡èA2)yCï#q,ÏþçsÑÖQ#8/üc§*fåÿEÍH—u6¾âYee Dh_ZLÏP¯Íä‚èƒS4…z¡¯ÐZ¸K>ú ŽÙAÍŒÔVhå¯çt”šÓE|W&h|6ôaXžIõ uþQàÚTB¥¾ð§: úfþ±Ú•DµÑg)/ÏD~ÆÂ½à:]‘©§Â?ÞÀ/:àJìÅÿíƒ8ûöNÙMÀukDÙõšŸö|/e—÷ì?˜©ý¸ÂYÿjþo5?导Zï-qå +É(Îúî¼}~Ò\øCvŠóÓûíO:.œ55¾â'×í9ªIíÖf£Vð_óÁL3ƒÍ3s­[nZšÊ¸:)%5fÌSÌŵº«>£Õ·QxÀÚ§®é&P¦%~z§äs÷7$»<’?Lu3Wb‚û‰Ùf¢™±ìg’˜z¦Ÿ¬•p| ™ÍŠÖ §Ã¿rÿ<5ü#Àº³Vn8È?«ɺl5±}íÖjšjm×¶ß/`?±oØ>öC+±õ{«Ó_r}²[é×:}€3ßP¡á³­óÊ[WÕÑt=ÕÖÙÓ¶ÿ=JxîŸO×ù©f^ 0lN+“}F·¡p$TžÍ áçW‘¬ÝVbÕ‚œÕ‡RczŽÑø üµÇ@÷ÖB++è$jEêí°O(g_¦Ô|ŽÃ‘’ó1$Š)H#Š§Ò ŠþøÄðDÿ‚ý£–»fècúÎçIÀG zÓ)¸èTºÇCíp …ëèÓ9ð…vø`*6· к³Þ×G'$ž`æÈüí{ª3i9êÇåiÐïUú *üëd¬}ÖAí¬Ñ>ŽsÊ¡ïS̨‡8Ë8Ô‚só]Ú‡Š]<î<Ÿ*S!º«ŽùünZëí§Q*¤Þšøúyà┟NÃwÇPiÝP]çA\æ¬ 1ý™Αw>Hÿˆ¦ªëƒÈ÷óÀ¡ñËq1úV ×w=¼©ï¬Äuz«<dzRW]*EÙà÷llW×…à»Ñø";+ûù‚S†¢—ÖóðÇéevJa9ĺ2™ yV£\„ÿŽäiœþq-P½õvxJÌGØŒÄ>ŸnÁ?ók´·—Ü—3rC-g9Ÿ<ç±pÕTõGqKvV¤ldÿ¸;ó#û/ðÇ9²¸( @¿‡~ÆxŽ*¥²y úè.§Ìߤ7ìnkJ¢uÌe‰Žs­þˆbjË5áßïŸÛÖFû>øyÆHXy«ïê\@:˜[¦œƒ6Ö€ÒÏ'7qÍ|inîIÓEÂH9Ðâ{üü1ä¥óê£ßÎ7»ÕB}Й=OÙ7਺0¿—ìîô¨ÑÅ$4WѾAf;þ åÞ.d h¡ªÜ–´’ Îûã{µ^¦oéßFáVë¨òÕÍ1W;ÀAîë#’ܽܬ“œrJÈ”6µÍC3Õ}ÌØî¸æß·6­d¶„ç”×° ZáOƒõá_L»ÿå‘ÊÚcÍøÖ3l¥ýåÛÃÁ–õȪlßµ;ªªÇ?®»rÃ=.ÛWí{V”ß¼îízk÷ÕÎg¾ounòV_íÖDë’ÚÿH «ª†¿é9ì´ô­Ô¨yQ9ÝO—·ÒÙtCÒôJ!›„ðý˜ÖB+ª*Ä»êYÊ\‚×Qo2º&òÈQK/u9hö̾ÿ±×>§2"‡GAÚ:µÍ‡|gPúŒ_—”¤Pü—8óÁ¶p‹kœ>¨ßê‚ôŽœ»å-PÑùtì­ ç)ÑÔ­½­.INƒ]¿¤‰]äR—ªcþùPvêŒÄ zÿî…>fC[ç“ðÊAcõ2•ç—ïF³6[ëuzöÁ×÷AO•W9«ªÏ@K…£bâ÷´ º6‚¶ÓøH ðÄ=µ+Èûi­HꎾBΚ À”‹©\® Zù†Ó_º¬:ÈC¸,'egõùžPïäôH‡¥At0ÿ8æJ¨ªéSpïáPܨümpö#ŽÂK¸2ˆi³çþÇzèÞb¾ó_ êš7­LE)¢Þ`îÇ6vä‰f”ô±.öãn%á| Ì1Jê™% vIYÁùáW‰ Í)¸ø'EÖ;Õ[n@ÛûR:hÚB´c!òË øÇ=žÎÝåª_YgDNpqyÏKÅðs6À?Zð<ŒFvÿ*^WŽ¢“¤A*3¹·C² l“¤T›Wñgôp'nÆÉ¼ÿqݵÀ¾ÆÝ„Tö…ÃÑ]]”Ÿ0éÌ@(Ýà$CÌsÉ~™t6þ’þ 7„T…'B72x¢º´UK}AqVT.Ï™PM›îìf²Éc¡æ>Ó܆ÊßÀ9÷‘Ñf øÃGrHZþŠù¼ŠŽéyúN€ûK­ýê†n9Ñ4ûQï‘xîIføc˜xË\T=fÆ»»™«&¿ñáã¦&é¹)ѹ¾zjËX)eH1¹Ã¡$™,à\¬àí“¡•#y§§è?}~µÜvö”ìLÎg*cù8ÏÆÕÂÏù¨` gÿ¨k2ÇdA Ï+/q1Q3ŠøB[9«RË@óå¾Ý~vüQšG€ª.Ñ"“á8¸©™hî#ófC~öåòHüg9øhÎ¥Üëè+k ý?¢è­”#ØŸºÀ±gÓðÇøÇ~ÃMW“Ã<=yL’ÇòBí;°䦼†Ûñh}û[­®VÖ¸Q/ôÚ@ÎÌ©u6J.Oå/óDœ»1[ÍZóFâšPæî²_v™‹RP¶ âr#k¹#æDüã–kýŒœÕIÇÐkþ¬/鱜SZ™W …Þ2^~Ý 4ÃÍE“Ñ,•Aæhn¢D"hÙTNgt½ýÛù¦¶š¨G:/’Ã0ªÀ‰tCŽg¢¸SÂ%3˜8&’ ÷½`šBõïIOilÚ™$²÷?÷?>Â{·è¦ú¾ýmÎ³Ž«“ºF\{$„×ú¡°{<ÆG€dPËÄ„ÓÍw/0—L5³–¿˜Qæ¶™.­%ßÂÜ>D­¨,®É}"èi÷?=ÒZ'¬ïû^ˆ•ÝJþýƒ¬7Vû…ÝY TÅìÊþÈa?·Û[l_‹óþù5—Ÿ]]?¼×±h¨úd¿sU³Ö©i:¥¯«©^žgî¨`‡†Ò™¨!”4‰®£»Zµì«àú¢Eçtw5$D#[^ð¢ÿY!¶9{f÷€|PYh To8ø#- µ×QB¸~É^•i7:ŸCÊUÞìyÏ»5}…]¦×”›ÂÓE}Îü;/Ç\õn­¨=…Æ .hc6ŒÌ ® P)gÅՙ䧛 [¿Ö«ìàÒ»-¿Ô…^w¢4³wA7wÈ þX…$¾žF¢j?É,=CÕùåýèÖ-늎Ä×ЦÁЮ Ëö¸k‘úýé…nÍ{ ?=u댟õVßVgí7ATËd¹”~Faø"u…o/%ç}½JtÂá¼é:j3Ô®'áÖTó²/ZC\©AøÇY×'»¦Þ^Šüêì×™`…†&5àèÐ×bTIy*òíd†uEcA5•©8eÑ'¬,ι½]c­ %ãͼ­¸¶m§”HÈWù-÷— f¤–Sð’¨2Ž‹ñ[Š=M ¯jÍ‘(´>¨Þ ›('Úä<ÁåXŠóœˆZ·xª’Ór[z™´r—ÓŠ?C¥ü€·rh³οE ý?Œú=|þXîÑIã·“²|T¹ÞÇì2‘ÝK@¥¤†Dµ,<‡×rWð³ýêÇ,QÏ =ûÅO]Îó¡ÌEe<â¤if*š»Ðùûà™ñr\>r=®ÎóÁ¹T‡C×çÖO,îêa ¦8ðg4ÜÓR÷¡ððÇâæ¬– rÌ 3/$†yeÎ"dŠÙ µ_‡¾› Gï«Ï/õ÷õ’Ž»NÚ‘0¶ é<æ‹ÚO?å©ÒÇ|6 Ì8xfq³Ó”7­ÍÕŒ—Þ&š9 #ä9WmÝär<ˆöéÒúηóMf5Pïu}ÐÂÊâëq“ÙÛ,5)ŒÛ\‘vhÙ1SÝx_i/ ÌnSŽ”MŠs4œÑ6: ‡éÏúÑ7þ˜`y«ÇHÉ-¨1®T:#_ÍX3\JÊ,‰dòš&”»{“çý¾n:›1ž÷(óƒ?ÒÑA$°t|ˆŠXÁøÿÝ‘ÏÚl}'³®œ …VéëÕÐVªÚ¬*zÞÿ¸àÊekuÔ>c?´býæþQW@Ø´M÷t: b+²YÕV]P§ÑÕÕ;øw±qìPèçU:f2•Ó tMËmßÓ­éˆÞªãÓ ú‡mͶ>ØIÉ£qï9*à A µÑ)äÛõ:>¹iHŸ¿ZgßVh(Ecç’Pˆsô'MB¶ù‚yz4òh4$çÛÃ%ƒmájW?ðGX¤bŠËW©#Ô?.jÝÒW–^€N-§ÛzÒsDšfG¦b+»0æ]cø¤so4#RtNüû=¼í²ú':I3á“ Ù³)M×^*›•þ5ãXG¬õ:߃óο•£8Ô*ÒV*ÆÚóþyqÏÞv3Л«hœ¸…¦=ê”}%ˆjq-K]Ð÷)6ø£%Ü|•Ƶ-H¾”ŠŸS)=@=âÜ›Sssüy{ê…¹öD»@<§‚ðý®°ªŒ¾Iiy8òkdThGÎ' iàÝ¡ˆý)1úï/æPÉóH‘›qu:yž«—[ï#õ·«é h—“ÚÇ€+®BV€`œý5¢È`©nfJ>ðGTÉ# 9'x'6h)ha,ÇÂXZ¨ÞM;²³§%øc1a5/B²˜ÎŸÁ/û¹ƒì’MrJF™tp¤ºòžGƒf²ð+>7l ÿèMu}~ußnƽëV3Œ/ÓYhê&èûW¨á㬞Í=M¼Q¯/($*zzð2¤†5”œ°Á?4ûÑKêÈ)Akóy¯¬•²†µœ3ÝM:óQΘù²gÊy‚>þ›»ðe8rK¸Rnàý¼®†ÖôÜ@Ïú%U9žNJoù©45¥–´’f™¹‚‹âneòHÙiIl™‹*^hý.ø ¶ió·z—\;l?z ÿžF/9ÍÔ™9#|ÂåN”?Wª ß7s1‰Œ— 0×DLK %EÁZ~`Ç%tE§ÒË<¿ÛB…Ƹ­ ž)ËñuR¾%qÝù@E¹QṌ6 Ü ò‡Íqêš—ó–t’–Ãc¬£ƒº½¾©ïóqÖuåì(Ýi¯%ùèãòß3^rÊq)§Ñî±î f)`òSþ>Q¦K8>‚̶™³ ·ÖׂžvÿÓ#™µ5Àûçï\yþ1”ÎÀ¢¢}ñÝ2syšÌå¡£ëàl½@!ÞΎ훪cöã ªE·üì»ú*%åShßnœ§³CXh{VþJõxå,:„q7* ¥ï‰v_Ö‘i(äçj›]ïílú¼g Ô'2ö`T‚ÞZÉ}8|·´â0σ>}@o.CÍ€¿T¥"Go³":çv9y:¸ê"üh¥†£Ýsô”æf¬d–³ âÅù¡”á¡§ Ac8#ÉOûG¹” ßžA%<+’,ä9àÁ läÚ3XvÈ9*]LXÙÇU%²Œâ˜œžŸ¡½=¹&ïC/7³\ç-üc"®A8νmÿ¸Ádœg y|€¹n.™øîÉr’›Èü;Žgý«-`¤ùhëlÊhÿkjÆÄ Œ‘ÿûùÕVÞ ÿh"'ø o7 ¡Wä¨Y!+x üã 7ä?q¾çAOÀd­¸·¾ñ}̹ªXèÐÄMjÁ•9©ŽMJIYóNJsYjæÉh¢ºšT²Xžš/ž»Hõ@H/x7åI޾?»òŒÿ’œOŽfÐWþ¤éœèµ–æ#òüd™$%á–õpÎ'MbøÉsXÂ?qÏÛžUyæKºû¦´Z«Ï:?5§~Ô‡Së³ôL>š ð‹ü&©9)µMh÷^œ³9‚¤0 ^@HRÉÉqqFûh£® /Øÿü°å£îÂ?`vÍ£óz¼7¾f±T—…RŒÑ$svoä3syŸqö÷j/½$*¨6Ò×0ªˆùÓä_Y?1³µÓúþ®’²rÿcþxíºh5°ŸÛ­Ô`Uij:îqWÛ­6ÙgísVÔß¼îë:k7ÔÏà7uBš¢¢ªO®nÖvµô‘LV;~óý¤¶¿þdŠ?€Ò鶺€•ξ¢ëÒ&½GÿAa©¹ê¢ŠÚšeÅUeèÿ÷PVÛÚ§»kËÁ-¸»;îÜ‚Ü}î®AƒÛàîîîNpww‡ÿëóÖƒa2¬²þwoÏ !srv—~Ò]U{1pu•¥Í”ÿ‚ª}áÔƒªÞM1bRxa²8ËBo½Ë)O‰øÆÖ0°ÆÊ ììB÷É+"f¥(ôŠ¥¼ þ̯žæ¸ù‰òÒMwµ”üðDÄ™GÙ]a™Ç!Z G4¬ÿèaçƒnsW€cÈÿ‘…RÓ]8[Àžð&“ «Çûr•D£Qf¦“ÓÊþ˜á­£ÖAshx¼KѰnK¦ççø÷0. ïî&錘;À+ÅÀœÛãvPÎ<¥õÌ~jÎSXø¶–à›éô Õ¡‚(g\8„Ôf´sƒ{sCŽÊ5¨Þ]uß„lrÿ ãä6‡É}‹Ý”£ð”¡¸&ô¾tãT*@ex”ý&Üï%z}z¿J˜Ø,³¿Gªn7ÄX뎚-áþœšÀ¼˜…ð) jw`V7 Ê9~ 72–óƒ‰#Âd‚*ïÀ)ÈùÇùW{0~ã·óñxüLáåtíõ d67µ²üÑDãÂd‘—`ÍX@¿›¼lXº¤+µ³¿=ç„]næ&Z/-ж _ £<@†È^ð[vm¥'t½&÷Ž–Õ\H:"jdh鼊+ãÞOi ¥w¾ÍópÕ™@¯àQßQ;D\-0^ƒ?ÖòeÞ,Í­§Åñ.”¡`©à¶ð=ÍxOårˆÛˆ›ðÝ=嬎§]àgzq!.oJÈ)É¥w¤.PuüÑ{I i½ 5)8o^‘¨(iôÎ Å ¸*?4_÷îF°–ÛgàŒVAÜàdtÖT‚;úU7Ã/ô“?$›ЦÚøª´®”ÒP,)Íãø8ÿÊÃáX“Ø?ßì<1™ ÑÒ/œÓôçs’ÑÊi(ý,Û4ªw„6†_X%íä/ͨYÁð¤‡ÁØßE‹ ^Ï™_øcuÕqOoF*K‡Ì9¦uÔ_2Én©®½µŠ¦ñŽñ^ÖUGðZ0Ýx&3$z-taWªÍ©‰ Ê¥ÿ__ñ¬]Ö²/-£˜ûñÿ%¼ñ´šÛ—á?Æ;å}ü1ß“Å~dï´ÚçÀ?öþã€g'üÇcóÿD§‰Îûª'…µÛl~1ñMM'ð~Úà.XS–Ö›”Тí)¹©gšXO­¦8FÓÌôÛf`÷|ð ³þc0~.ðc+0g5‚f,”ZJci¯É@mÒ„(í|{£SnáŒï=ÈN(ó®À¼§¸Ã^Ìð\n™WðÁçZàéÿƒ*ÓàûêD“))ôçšOØ=«Öð"ºcj¢üÑht°û?jٙ᪚õ£ã@è?(%÷xJ/à˜Îûç Òpzø¬-¢¸Ïž†óC¾FêöØ*[d¬F–]\RžðŽÍÙÁn¾]?ž‰’Ö³G~ñˆ]‡ÃSÚhóN\/Ò}(ã âp1m¦{tŽó¶„ó('~rž")Zf=wâŸBïÄwJ~ïüñu°Z7NÅ=ÉŸ7È\ çP¾Ã‡µøc“ìT7ŸÔxy lnƹ6߀›j‚µàö ð²üÈÍkõˆÜJ¥hrKrjX­,µd±Ž„㈯¯´†”²FoˆW–#â¾ÄkÁ%ù‘™ù%ÞOÖ<ûæÃz(GüN3 q_i ×µ¡6“RZí‡3£èD駇$º6–Ríx £a ¾‘Ì|]eËêî¼DïVÄ,­ÆÍL9¾(Y¼EuˆÖSÕÀù!ºQ«ê+Íe”vÓV²lœCÃ1¬¡MfŠ9jáuÖç†ù£¥ J¸Ë앟¼t6üé-‰­ƒÁÏu„w¼Þ¿Mà„`ÍñZMˆ-%æQcÊÏ67ø¯œ¿›ÅÚi}}²ÆÊÿ7!½ê²’}ÛníLtJûN7ÜîIcß²·Øgì›V¸Ìÿ±ÏsÌ®`Þ›PÐŒ hœcœsžTÖJg”Imb™zŽÿî gè…í&#þìGÙLÓÀzfí2Uào6 ¢BÿΚa…s’Òx†ùTÎ]ËÈS€`1L (Ò=@šs&3E¥1&µ³:ñÖØ{Â@¢È˜Ã'ñí¸¼ƒ*ÁtLjŸ€nq!ŠD¯ÍMS+ùÏ—x†˜Mhµjà£ðp-áAÑ_Þ•ã$˜ûÏA›Žš¥ å6±«]ˆÞˆ~£Kt”²£ž¹á?ÞÐ'xÐ|êg&-€ÿÅ áyÖ™åð¿3,´Ê%“£~Jt¨µ¬Ê‘X¨ °Ì=w(týZøˆ©`­ttÊÙoß "Z ßùíO)-Ú­6íwOGç„o‰„ßd5?;WxÐ)»gl Æ£cSo:ô¼²1§)Pr¾óelGîSx¯ÓòŠC¥y#O„K×p¿Å(ßܱ¥„[œG¥¾]ÐäFk¥F.çJ|÷]7² øì‘?¡+K9Ê1Á"³8'¿‚ÓÌàAæstŠóóÛ·Úø¹å‡MFNñ=¿ºÍ,«¸—“ rÈ—ަÜåaœŽáˆ?ø·å¬hýÕ »58ü(FCNîέù&]åQ2FNðs®¬-¨4²w¾ã"ÒLΣgÜ7A'áæƒ%¶Q('Û7ñ¼føã4˜µ gå‘àípEUe;¿çãÚVÓéu§—ä6*¾àÑÜNë>Z³3\]'®€?~óÔ¶:ctF©†€ š°” ž ’Þ“ÚÒ@æëïI àO­ ]¯§¤˜ì@Ä9ìÈaø–¢üÂ|Õn=‹ì(Ý:´_lÉ@Õ0s#}¦éµ—t‚¹ ÿ1Ž+¿§>0ø½JQ_>Ãvhëù&½Y`ÿG#ç…ÉEà?Úqó’nK$ob]©Yñó ýàñ^×ZzH—J™¦µø½âyÁˆëè¤Ùn™W_øc‹uعiÚ£?ZB2û$¢w“.‘‚¨›ŽK€x³½‹/‰nåÚZ‹ƒçH\Ìï(@œ®Tc²i€4ÿ¹+‡uè›ý9­_þ%¨uÛªcÛΟÎt§žïüö‹ž‚ö[ûº}Ѿn%ùÁó¯^zÞÙí{Þ¶—²Òiç³ýÔÓÃ:å¬4MMfÓÊéh‡ì´‘ÿ½ Úñ f癜P•Òo¦º©c¥´úÎO|k*Ž Ùû¯5ÍJìd‡â] mï¾ÈÃÓч™M#è²½À釦<úõ/“ÐÙ‚x+í;Nißù»ç¡ð§Qv‘p*FÓ{`ü¸›|h…Ûæ³ÉmÊ[ÂËžþð¡êmþ‰ÿöåÿˆKÝ|ëÎãðñy9=0­i:ê<4ØçWƒíbñî)€69¨5üG2ºòÎè-Cà^v÷¹/5KrÖ÷Þ©D…¸lÝ ¾{êQàlªÀ³åaådpáIPâÍpnþÓ´Ü’Œn8k‚|žÉb¸~Âw®ÂC_äƒ6ps“$àµTÂ4qŽ‘ëptnAeÁH}ÀE·M|°ÓÆ ßŸ¿¶+š»”ÿä!Ÿ_Be4A»EàQ\ƒ#òp°pY`çÞ¯t–Vúvÿô%7v³çùÏ;ÛEÁÝ(5ãÍà³`£EàºyP´¡e´”ÓàìÅŸ39#¸>-ð¹6og¢˜ÿX¿{ÙJîs0K€·Ëi×h0ð÷%8­‡l–ƒ@åÞàãœO^Áw%â2EÎÂÍtá¥ñ~æËKÛ=ãà*üQ%ܳ_ ë<\&ÈÄ,¡}€­w4‰wð¿”´‚Oú™SóV>ÿµܺ’9ß®Ò3 zâ |¨›1p)mäu2KÊÉJþÈg´«þ¢¯e¯Î„?¶»N®€RÞâÓhïMü;Ôóù/±JyÚZ½)!Zþ1šBçœ0{„¼ÛuŒä‘¿$›¦Ôè*ÞqÞÅð„It!Z³¾–ÓqøŒye„ÞêDyù0íLÐÓîÿôÊfí±ö}i™ûžÔVpM¿wÝ÷œ· ÛŽÓÑÙæ´°»X®‡ˆk¶Úí VTëÇvGn‡Ãv÷ŸÇÖU§³NF牧ªµÙÙfª™\ðýðüÄ4v$hè¥èõöîŠ7ó§©h=·öó£G«Éæ:ãB1Œ5 ÈUŒ.C¦Ó¯ôœŠòJôûG§)†ú]KÎ6)ÚÔú9ùÛa‚‰ØÙ. þhìÛ~‘~O¦ÅÏ-°ÓC Ï.ÆM Ÿx2Øe¹9褴¾·K…­%Ön“ l"tÖ9ðyLÔ²”3£p"jÂ)}EC'nCû®þæ¡ûΉ ß$±ÞاLX`¯r#ÌÊ¥ˆW™ŠÐ>Šãfp43¾'3±¹=z¾7Ú ê ÷¾ìó'»¹Fî)ê“Á³O}ë¯ü( O‡:Å=)¸`øc »™|÷ ÖÑßmÑ6¿˜ ÿà¾`£¼Ð“©ø(o²]-&úó`R?),Mu/’BsM KtžÝ<÷KÏÀç'^µ 6ü±€·ñö§¿á?žBG/àf`Uò@kbÙÂÅäÿÅ8GLá6ì>_lf{ºô5»œéU¨òLðT]€?‡x’L_Üâ²:ìqNKyÀÝü&á?²£ Vò)8›ÕP (K çWWáäžç÷”šc”M¦ðs¥â½à³ðÙ«÷t¹,Ã]®Ëkþ÷Rù)àn¼LÒ9ÀÛß"žRV÷ô~Fc¸§7¯Mhq×_½”ÊRGfë ø,ÓÛMsÈT9¨%¬çò(] ðHöc‡¦}‰÷Ô3Ͼg´ô3g¥U&<ו_ÔòæÐ±2{•ß >!…Α!zL↗Òè-Gšò48Ö”æë)‰¬Î{Ÿ탑›ÆÔåã’ÎWgjy¯7¤µFò.ÔÚÀû]`»‰ÚFÝLP™¥‡†öØK;M=³ÛÜ p~âç¹éêË^”Ö›òÎj5ËZ© Ñ4•&ðôîÓšH‡ò{ðÇ=m+-$)Üz8áTþ£s€Ðÿ¹+—µÓÚÀäøþéÁ\¯=W­*¶åø9‹œÊv{d³£:Gì[öi+ýòÇßžKvsóÁĺ¥5N\ç™§¢µÜYnJ™Œ¦Š3ÔîðCåŒjGº,6y€ +(£é`ª[bo35)2}2e(4õsB¶£DÀa_¡sWíKK‹óDjEŸœjP+h©{n 1™œ¬9[n_§@=wýU*ÞMh xî»V3¼ %¡g楩‚çWk<#ÍIøý’ø^ B7ÄHHÝÁ™ ÁL1x+æåºg:ócÒŒ`óöì'±~Fë¥Cin“Ai-¨ê¨ï i  T šk¶;Y­\߉ùÁ³ÏÚkÒƒy¦ÒH:HÅ|ïÏËàû?óg¨ë–œï£Uÿ„ËÙ…Ÿ©TŸ2À}~IJë üã3JÔjŽhÓ¨0°<'þ ,YÔTrŽúοŠÿQþcŒ/ÿy ôYPϯÖ{B9¹Ì)JÇy<»3³3Ð7åwP é€S ç7ðmºŒ2ÏÄOojD )¡ñ·¢ªsW»œ)âfKBîå*À\?ðaJ_FíÐàeuº¤—Ãl$‘ÌçÊÌà¹1\Ži2Ǧ·Î¦ðGhè€)ðGËÀ`»|ïÏçók¾ /ÒQv˹&4ªläÜòœ—¼jÁML‡®€²­i뮟Úîîé+nÁh~—^ððÇF¾ÈÁ7õ„óŽ–Eü«´ã`Ž h…|…æS”@ùÏŸ;c|câ.uÁÒJ^-›¤)â=tÐÔzRByçÊ$þK.Š‘Þ¨sK¾Ê{¸3°9ÿ ÿGFOaË"s â`°BQ“˜Ék©¦o¥ƒ”‘¥:þ#£fööÖL¾÷ç%®,áª``•ýð6u™è«v;ê™aߥw=ég¡XÐjkÁ?wà:€«è1m§uŸ&E¯ü¡%œ6‘¨khiÄ“hùÙŒ°ÿ£“óÔd¦ßá“Sq!sŒoIXo8¤Ýá`.Ê}©SÀG'á?š‰Ÿ6КrH2IŽÃ¯ÁÛÌ0øc_øcˆuƹešÐøè,´Ï<…ÿ¨ +$ŽÜçJ¡Mõ‘NòÞÓõ`’ìñ–ßý&]% Ú;"ôR{ú•oQes1èi÷ze±6Z_Ovq¬üß}úÜõÊsÑj ÿÑÓYëÔöíÎXæInøã†}ÂJj…ä,Á¯×qÏ»¡ñP ºo Ó'¢sÓÞZêL1åMz_þ¨[•þ£¸= æûLJm›ÊÖ% Ye²é­)Ia¨÷°5ËJàÔ¤Íø™NZ÷8üÁTª^BkÈEï4Ëä‘ÿXÿQ N8 ?€&B×hu:ðëXeÅäò`£Óàæ&øœ'ó=ãÌa dI8„¤|åj¼÷ƒšŸAå9.»™ç?:ºÙ¸iª/˜ˆ=íRt„:¢ž×ð“Î %¦·ô^P é*òšÌ¥ˆ¼˜\ewÂÉðÝõ»¼î“ú}øã•C¼žðZ ({9u€j¾G‹àúb®ŸGÔŽà„ýή ߟǵîÛOÀyø=Õ·MëÖ¢âh½hð]‰L)ç 2Åã–`ù>˜ëY蹉ß‚?{ÞÚ©Íq>»ç·¿‡¹úÂCÚà¿ÜÕ¿¹€vãø0ß¡û(ó¸?ßÉÄÙͤä?¯e×ÇXk>º„o&¯fÌ Ž"*½€ S$Ü>’™¾uËñ€£%|øœ ž+ðûóGðî³·\àŽ…¼ŽçÐI/ã‘‹ÜJ6ËV9&“5!ðº â‡_(ÎàF¡ô €L¿ûž|½nÚ.;Þ'ÚÿÁ­P¾óþ8§þ2™gËyyσ¸>\ÇKÞ Ö\Æ ¹Gþ(ë)iõ¤èÜwjÅ…¹€ICå¾WKÛÀÌR?’TÖÛü1UÖêyÉ/[Q‹éì•SÜ;r8úúìøç ýÎh#ôÝCø¥&Ú,‡~ÒZÚGKM½¬u²n×x: .î°¤Ñ!à2(ÙDD'L¦ü‘Øæ¼4©¨tK^ÎcªòC±½‘á?iL=#«á–Ás]ÑÍp ótªæ—‡’CJ?.ad¯7ÝÌysñ ̵.9·M¨‘žÔ”š-òN{èÔô‚Dðy·':ûœžTÇð]uù½¶Ì–ðÐo±À]¨)"· ðé?w¥·NðŸ<­DÿzýÕe«ýÚžî¬súúøcü‡ã<´Û—¬ÖÆŠvÄsÚnk¢`Î<7¥é™͉m¶®;ûMSSÒ´qüàûpà†´ ®³-¦J¦)n=´þ6mÈK/MEŠKSCȬ%VR8†½´(R8W…7cfÇ1õ Å÷À¸%NHóM6giðá<àW°ÑŸ”–=ìæÌÀÇ©,˜©üÇ_tZÉÍózß¼0%Lí`K¸Ø³ü‘ˆJÝSðyðÇ4(çÀ×ÕTšSóèºõtþcxez°ç'v´Ë¡NÝ©&æß-úã;ÄpX¶ÌîN2‡¤ä¹”‰6š]NÚïžßþÉsÄzdòðSZKcé,•@ï¶€W› •žº°'ç†qqù´î ZGÍ(3ísNØ×ƒˆÓz`¿3^ÎÞõ£Sð@y¨Êp˜bóeêbz8wy÷u÷/S̱®à½W`Ö‰t+þXåyg2€þ@´ŸùÚ¬x,<ÿvÐnU©ç¹|‚?Aû/ûùÛE šUVà<*ÕíßL^Ü5?Ú7Ó¶…ú…ñ Ž$ƒ¤»Îæ]äðÀ÷ý‡ œ ¸4üÉB.Jaÿñþã¶ýÙ$ÃýJø2èî…§¸MýÙ–Õ\O¶É.9ÿŽ£’|ä?Ñ7¿rXðÇnÁ{À]å??mWEyÎÓJÃà°öÑ=#cå)üB. tæ÷v—Ü\üä8ÀØÙÍWØW þ[(«“ç›xœñЗéÕõå¯]ÿ±\êÀ <à½ú§Ô²RûË=ž,}gXÎèظŸË÷°ú´¸§¡ÕÌ;NÕÑJ‰ÓÉqÏoïåžé«cÕ£éô™ÖÑò`©KzIòÉÔx!øãˆïÔôuýÕmÏ&û6}ĘêIw8 ù›êÜX†èkM£“¤ŸÔFmÇèNð‡¥ d<ÜL$*^ÉÅKù#×áY´üñõüûTÖç)Õ⮿ŠirðeIï-¢ËQ¦„š^×¢|[ámnë2é-t“f–Ë’AÒÂeÞ‡¾ÙfƘSòG­¶.8ï1#{aŒŒƒR\/'u–.”ÂÒE>²ê}ï¤÷´’^å}ÚÞf¬—(|¸µ£¬‡âövÐü箄Ö6ëë›!ceúîéEÁ]¯<'­òö5»§3Éià{~Îó³m9—ìgö#+Ž’\J_¯Ýžkv=hîPôØä¢“N'¦5í¼Õ”6YMgðž üQž 5€®-gº›²VBûiIŸÌ+SˆBÓ$'d£ZˬN!Ú=3ž*Ñ1ÊÏ‹0’‚…&Ó~Eýþ˜jb8sCo¯}Ç© þ‰mr†&PÞ ½<ŠFÐ3 ÔøˆÂäžùöÔTÁþÁužifŸ‰ÝþŠâð _þÁ îºwàrY¨”ƒð ËèšqÏUŒEóƒõý휾vjBïÞB¤Pñi€:ÑÙp4¸æe(ã,ð\K©h¶ÙäTøî ί=‡­‡&"Ÿ¦©P‚‡©yHÿ³n`,˜îwªN¹Í˨Îuì¼&>MÎg Û«CüF³)=¯çËÀ¤áRGËÏrj? ø£Ç‚ï)ͽ„3QÀ·µÿs¶ošØÙ ±W£+è8øö?çµÀÂ¥²RŽŠû4ç——'¨÷Ïàbœà¡Ü’ç£ÿz~uØ®Ÿw‰¼Ð÷ù Ÿ²–Yr“ïrAm£u—FõnÞ7bDÏd‡ÚÀÍx<\Á2J(íeg¼ÌYxæ&îJ-ú‹×Ë(©-+ÁŸÛµ©æÒ²A÷I™#W%¼t‚'«ÿ´ ú~%ÃsüK¬JžRV7¸™P͹(6%)X§°~–2RU6ëu4­:Þ!Z¾k‡FÑŒ²‚kñ|pæfßù»1iΗxÑ­yö+røFÁ#O{LC®×a¼™Áh#¤¨îÓ‘ÚGw«ÀŒ×;ZûúÖïÎÿ¨Ï#ÁYÌúϯú?òB;ö¡¢œØÔaÆõfÕ5ZV£ëii¦õøã„þ m®ã´ ø½¤ä*yJ3h·…9úõüö#Öyç¹é‹×#æ„9 ÔLVÞ*4êOã{g{Wé#-©KØö6ÒpÞAÐ 1ùÆô¸Ü²?m¬@øÏ]é­ÖW­#Ö÷OO îúÿQÁ~dwuf;}ÙewzJØoí;öûšûÏo¿è¹a×7ïs¾râ9±¬ŽÖUg³©o’›VÎ@»ù•3‰X?ÓüŒ?çQQÓÊT°Ä>ojB“Þ2E)"Mw‡pýÕD+¢“ 챘U™ŽPa^¥üÑ©Œrw¢ß1€øÓL*gIðá<ûí[NðFßú+W‹o{ Ì~ Vº@‘8EEÌ÷¦HòìòL6‡Lx*@é'ðG[p\rà ¹¤›#órÚ´5Ð,!M³ï›|°‹á»mPÏ‹ð0Ù©¥ dà s! ¿…ú™AsÀ!Qy1°û Ùîdÿ®ÿxí9`2© Á–»NQ1Š©€’dƒ÷ÊJ8+"îD[t‚ï: -V²Ò-gÔ̈b½´¯˜ÏxÖ’¢éÑ·9Áçñq‡?Lkçâvœ€;RqÜo8>j¢.ÁÛ<í´æ*åæp î±:P)!/æöœW ñhõÍ|½âî`™†˜-© %Ú^ÝÅ.ar£ÿ²‚?vr1|¿_^ÃÏ8´Œ”ú:^ËiŽ*9e:°Ù·Oâ ¾ý‰‰Á÷Ÿß´ßù%ùxüÇZž E0œ¼úv”é²UH{";¹†ÏÉ8ÜÉÄl w<‘j:¿ý®Ý å!ú1\ZM¾KWx$üÇA¾þh mAS{ÇË"n Ýå ø#6Øã&æÉàÏ ÏÉýM¼{ÎHúŒ‘òÙ÷k5­`—ÓjÈ.xŒµÚüqVžèÁ3ä–|Õ³Ýåc<õéÌ#d?êä©ju‚žêEåϹø#)üG}$¤ˆ,ÒÁúP’kV¯Ÿþ,d-|CTðÆï<›þ£¼M4šô%^Rkµ}³i¥»&ErR(ôÊ É£7ô7ôB3ðÇ.0æ@ðG8-3u§DÔöò½6›#J}(£e&‘™þ¥¾±­®ÎÌñŠPU©¸´Yʧ%­7–ÎÔæJ_ÈbõzÇi3ÄÛ.¿‹ŸV¯ßlàpðÞ‹hµ`Îï—Q¸Ñ:ëÜ7€­0»Ö™¨(Y[õ\g–ÕüšÁ;Ö{ ñ£è,~¡ uþ>O ÿ ó¥”MXnú_Y•ÎZg­ ðü*Õ¿Îʺd5±ßÙÍN~_þ¨ýžÒöðÇyûºÍZ|ˆ×MãT1/ÀOÍ/tÖ‰ì$°Z[oœí¦±Éh:Ý|oèC~%³£S™ÌÔ3¿š©aª[?ÙïL[ C÷Múlú‡ÐD±¦ZYœT´ 2 ùohµPÀqküÇl`}EŠAýL<'${îOÙÏœвñøÐx|û^ààĶx:P4çF´çæ)‚õ»§<3¡mÂS"húíð¶“(>PÿüRm¨Òc¾÷ç/¡væÐO4#Xþø :u?ø£>Ý…;ÊDtýGÌÃX ƒ§Ó|ÔÛËKáN–› N™ïž``YW­¾üƒóáXP!Ô«+Õ¢µ”£rUÉEÀ»€k=àyŽ`¾7ˆÔ”ƒ?·cw»¡)Gý¨¸‹ŸÀÊÓwî{žµÀL#}åw#IäGJÌà|üp|*î4 |™í⽲ߘñùÞˆ‘qß •ìæZ)ëe Ör–«Ék(÷”œ&côÖÖiRYÊë=m­Cô€zt.~ª¿Ÿxå7žËŸÁ­þ´Ô$ °£ó¡g˜#¾ÝªУÉL7øXÞ²:®!Ÿ¾ꥋµŽ¾ÕuÒ lRK‹ Î¿H>xÌû˜KÌ"s<Àù‰=¬C࣮pÆí0Êv™rÌ6TòË{I¢U´²^Ñ™ÞÅp¡tŸÇoúko™/qx4Å:¸–òü‰ªþWö¦¶vXG¿Ž+û¿^e¬ÛViÛq:8[Z>t?ï)`«sÙ~`?³’þ`þÁ³ž×v/c ãŸ˜:ôÆ)㤵F[Ïœw¦¡)iüœþ¾ #!¿2Øñ¡t'›\˜Ç[©±YmŠY‘ìW¦Ý3§Lyð¾¿3:„ü1ÊêTÀÜÛ‰ñØ€¡÷6C©Óæâ·³é,ø(=îUÜ™|8Ïiû%ø£;%‚ŽÞ‡ÑUÿ+ôí@ ”¸œ‡âB3ß0Mî`K¸Ù³Êìëf¢G 6rwwåž¡Ö8'[Œ:·þ%£¿‚=w†]ˆÜ­v$5Æj JBQ8¢ç„kÞƒøî3¬Ø¼’òÓTsÛIñ]ÁÚn½1©}ϨúÒð‡‚?ŠáûÅ€9µh1°ì‘ï<Ÿ(í)¨Üz”Šþå?â?˜°ìæ3lDÛi ýBUÁ7‡)-ÔX53É#ë nÓ²›ã© F+^1i$½ ‚?6{Ô)aÎ@™N€f=ÞwoK)€ÕC8@íÊûýy/_#wÙ$üL%?8³Ÿ-ù£—]ËT¢ÆpVGáêó98Ôô‹/£]8é$=T™®Ñ¥Œ,@K~B Nå’<…—rÙ ÷üD)¡|Ü7(sÓŸîж%Œìã¶²CÊ¡–œâ^ Œ”ü¾a2T¾›‘«‘Ýÿ›ˆoìZài7K!‡u‰ó"¸7»Uª/ôˆFó¶ußTÈ(ð\ZŽÇ»ø"œÂ~OK)K ówÙið».³¶„÷YK+y¯¬’:r™-¹¼sóGMÑy¢à¨çòLYÕ]—oÖƒñg™¯kìÚy ZÃ))á;Ô…Ks4S†,y,•À½¥=üÆ}*9õ‘6Ðêr]CópoþàÌ#üj”‹|‰—ËZj_…ÓÚŠ¾Éu5=¹ª ¾ÿ¢óÁå­ÀD~º_÷€ŸÖÉ<µ5–ö7×|XióèœÉdþ ðüjãPiŒ¶và·&Ç×ìÞ¤ºD3j!M wpFwj==¨‡dˆ´ÖûîsE0\:¨®ûûËM3sË<ü‡¬Î3Ó|Þóa¡9 7tŽ€{›&¤Ý4‹ÞÕ¡Þ.z .n?_ÔÌ:å›+áø0E‡ÒjE58·ù¯<¿úÙÚàü«—žLÿš?ÞyNXuívgŒSÌnæÛ?XÒŽþ¸nŸ´¢[[~(ÚeÏm»&pPè“ÉI×LNvk¡Ù¼3õLnSÓéñƒû?Û¡¨0ÍÔ†Z®mÚ˜\V>Û Ïø Èœ“ÂçWjÍ´R:Ùh3­Âx¬ÅU‰?ÿc›A´œBß1¥("1©œy!ˆwÈŽi* RRþØ7Šæõ¦ÕMÉŸnW²Pø§&«Él ¯x6˜sF¨…c÷|œÞฌà´O´ƒjrV8ÞÈ<‡?´Bb^wøšb7÷ùft.P8ƒìàÆ‡(U8øOð`ó‹Ó(Ï¥´´ÀlsòZ©¿»þê†eQ&àÏ|®, fëϰÞ+1÷£µ\ˆmÞ”l‹Òî†S(‡2îsÉI,rî™7`‹ƒ(ßøµÜô;墳”ŸÏRsÁ‰$‹ùOèæ¶PýÀÇñÁ› à‚ÊuÜc;EÍmʶŠºÝ…g«oýÄËyçÂL-AÕù0ðÿ8>» ÷6&¢5:£aÍÒðÇ»½)KÝÀy>¾ÑV@àÐÈ‹¤®Ž–„r‡ãJQ™ŽÏmŽÉA@ü¢ÄfO xŸìÏ&£o§åt”a&À%Ç?IÙÅ-É£å°Ôׄò›È[p`Rx¯ì27‚wêF­ío³Û¸ëwýÉ=µ± ÷åÊðGWx©lG j½¨×•¼Óô=WÀpiÀo1¿BMò:…¿‰wÝ™Ao0BQ8†£´Ñ–HÔ0¢œ×>šWïAÙ/вE^É3ÄiŒî‚ ð 8‡^æÑ—XyjX }ûßSÔ£2æGZ¹/%ô•øIY ƒôµdÖçZ]+Ëey¥Ï¡îWr”-,üX®ÍÏÌ×Üm‰­ö{^‡‘u‘“PfªÇ·äO} þ+ƒÑn¶·8i‹ZºVÜ,ã¡ÏoÐ2þüˆg7ceóÕ¿ÙÖpçƒÉG•Ðû)µ¹Î¯$³7³NÐâšþc”¾×“Àýcú7Úξ$’\’ôR}|ªh¦b.a¦üo¼]à·f00À¼tÈäÓkZ㣠¼U,pRðÛ\ïj0\1Ýε­nÓîà–¨P5ihFi8ärÿ•ýçɬÍÖ׳>z2Z©þ%<öl´~³ïÙƒœÑN!»)¢óä·#:×ì“öe̯ËλËsÔ®`^™ðtóð’S¸4×zïœ7•ÀíœnvÏ*gX›€M¨†µðz£Ml+©ýÈ´§Ëæ‚ù™BÑ4§Oˆ"†¶úCù–ƒŽXMÃÁI§©¯€fþì4ú»ïèΙ<ÄÐâB”¿ö°}Ò© -˜”øV¡fçCÀ¤¿àfßa¼? 0œŸ"ÐóÐT Áûó%³ÇDÊ{8Bš ߈7>)7U€=§L-pJRšlS0‡Ø¥é(¢ÔBߣ,ࣂð¯ànÞ[Ÿ æÓB°A(ž?³Ö÷þã{ü¡ðºwMzxŒµ@ÞSTê©9øc%†â¯H³¸<°iø¨Øe;Z % ËÎÁ ÷&°nÙÌ3ðÇq÷Ôkšv«JÙÐyø90s•¹¾³ ]Î냘iéº > jÿà Ï{;§¹Nɹwôù¶`£¡¨çlà\tôI ãEžÇ§ø8jøÃŸFƒRQ\³Ö ¼³•ý»Iÿ‘êz"çE¼–pi3OzJ èË(Ðõ  œçqf~Gѹ+ç€vîÃ(Y(Þ h4`ÔT¼’Çì¥s4j;ŒÌçvp“àêj9ÏuÄ##à˜²Âé“Ôá½4‹jÙ}ñ¶Ýå?ÑœB¹_¤³qk®‹Ÿ¼¨¿ƒÛñóõŒå|ž¢VKJ ÿqüQ^òwʞȪ/¥–“å:Z M ¯›ñä®ÔpGV ¦‹ø/Aìrž¾j·;žUö rØ]éú€#AEôâTÚRohaø>R^k€Ž‡Ox!ce•Þ—(Ú,œ½ýÌ=Ÿ‹æ˜”òG…·;Ÿ{ZçT#šEüRxãè`­ªÉô¨”ÒˆÞÙð't—4”?Кå”d””@ù›àÞÕf¥9 íFë–cÑxŒÐ&TüñJŽk]&Ùe§tÑäúVªz—{oéyø£|[+ëßàÍ©ƒ·QBÌ£¾T–#°Ÿù±Jÿ®ÌÖ~ke€ý™¿›½!¸ëç"üÇ=»½3Щb·µÜP…m‚ÿØcŸ€ÿ8|ˆ×)Ïi»†ydÞš»&9ítR?ÆY/í¦ˆIeZ:]|wùÅC%¡ÓÑoàùbf ùÕÊ`_6Uè„YkÒÒ}3Á颈QÀñœì´¸7‹*ÒIÊÁóá;_8¿¶¹{õLzo›øNHržì·÷;å1bcv@%'ª(Oý¡øŸó/q6ðÇ!óÌY:ë¯†šƒÆ ®áàiµfáÚ ”½)'§Ãzë[Uؘ”üí¨Áîÿ(O;©#æÊ}º çÑ‚òBÇ_§tˆwüáïË¥DpùqѾ›ÑO™¾S¬ Öß&•ïÔ“áˆZ„â@Á5ÿäcå4œ‹‘¶%ÛÓìÆÿ“\u×ÙäþÁXÖ]û޹ær3@ïB=ó‚?òÒ JÏϨ¡ië|‚sh ÜkÿÑý’„. LÔù‰;<í2æ¥c?|'"_!÷<Ô.“§q/Ìο¡>êó>ü—»ÿü9j0£M«ÀCyÍ~+t :w´ë™ü(W*Þ Ï ÝYÛ·ûo>Ÿ…FÍ;Dr]IÒB1çå·p>.´š'¤Tp4߯{þH‚Ñ‘l4H¾Øß—m±dW“ÍÐú‹dœù›+ÈgÉɸ¿wu…¶wÏ—)c÷ú&¢å4Äè=M¡á}âÿ¹MÇx¨Lÿ<âÒÚþcŠ–öÖ•s\lw„ã#â^ÍÍx¸n/%sÒ}ï‘ãX'àÆÝS 7ÑDö—9ÒßüÌ»µ§þ¬‡d«6” <Nâ3WãZ@æ½hJàÜÊœü«‚§œÕ žt,?¤žàÿB¦>Å’ð¥©Ô“mPú1á>hu÷HìÑwþ£|Ù'”± ¼Mhúºvž­5öGŒ("9jŽš–¼N&€?’éi¾8£èD°È ™(£á?¢Cß¿b÷iãk°ÑlZb ÈHþÃ]ã®ßÍÅÏœáð…½tž¦Ól ¾£'B}¨J?é W5‘•’‰ÃB{,£]f‰yb~…k¬£ÎMÓ£­ ¢Ô~¨³N—Ò_Rê8ôÆCî¢Ï4–>ä§ð½µ–L‘ȼ3hœrMþLÿ+þ# üÇáoö÷Fõ{×cÏ«–m;œ}N9ßiѧ<ìÐŽ{~Éq+ñžŸ¸ÇsÜ®k>½5yéœSÐImýiísΘ_MYSËùƒï?ÂÚ?Á+Œ2)€¨s©Œ™j ZÉìS¦-]ÞæBwƆ,¢5Èúh§€â]ì,N·0†V`f?pFAïÄßNÂÛÚ4Ë”Ñù»Ëì»NðGr~ -1± Q»©x]Vç¢t^¬!8/¸hë<“à?~!”oÕPK°œû”è$Pºç£¤†S8j:SÒÑt;]0{ÙEèøã7rWeÀXÍ ƒñúŠ2r8hÛiˆ<ÕÍ“x Ì5'ÕwýÇOÖAë¼ÉÊð>àÊ2­UüSŠÃs šÊn†Ä=ø]o¸òÓ´˜ŸN9gƒÜ?ÅzaŸ5¯Ð/ô{Á:¹1§³¡ 3rTn`8^YÊC€f5©üŽüÑ]óÑ ýNþÚvZsŒÒðdîÍ?Á 6>€c¡i;"Æføú|è}\r&‚ÛÇ€å+‚³¢˜E– Tçqv5Sœ‘Ž7ðp®ˆïÔ¡Iˆ¾ž¯Ã5ô’æ:YÒCíG”\²Ÿ"›snÁS9%þÇû·vt´ÅdÊÏÛòž¯:èZ¶qÙöX'“5&ð¿¼$F_ßõ#-Ä[Ø#½ÿ¨pÑ·°›É‰nðtÙ$Wø —ÑzR7k*o7¹Ç Å<——Sñ:Ô½-ïá´™2z~%f>üèuºF-€ø‹iŸÔs?JxFûYÉ"ÝT!ïå7…×lÊoÑ:ݱ%ðþ#Ÿ§˜åæQsóŸÿÎU9–IEŽXP÷–6’J⯠õ¡ä4×úÐèt+Zq Wñí÷»Ì=x' °0œµÈ ícÀ‘4”ÂDâì§´˜.–®R]ÉÛ\7BÕ'Óå2 %M§ƒå'É ¯÷í·z«˜ùºÊ(©ÕÏ G5¡:PÎkÎÐy‰àýEg"^!x¤a@úýÚB×éqé.ë´œö—ƒRPr€?^ÒZfšAøòüjŸuÇynºÓXÌÖY´ØÌ—ºm•nÈÖÒ_ïê8o=¥¹ÕŸÿÖºLI{ø+˜‹Ç¡tr4îo~L¡ÿÿ¹ÒX{­#Öïæü×ùÏ?xNZÕíÈÎ(g‹ÓÉwºÈO ;ŽóÎ~cß¶âýðó«;vmÈùZ9¥©ëÔ°¶Y–yi&™ÒÀ†yvÈž6})•Ìw~bn`Òß4ÃÌ1‰¬\¶¡@še¦ÕΈE|ï ÿñ+ôøJšOÕéÕcEdfÅÎm•ÚQ<ò7%C´ÿã¸í1u€ ¿ò9Ìç T…¯R)ZôŒ•ù3о8G 7œÅXú#ÐzÅûvú Ž2*ê:úÿ$Ýá ²["ÃÑä†~¾¨4™w®<L‘³œ<³‡ïr?Þí{šWÄùV%\v&C±¢;Ôw>L³ø€–V¨aD9 þ(¦ª‡t‘¼æEV_p_n§÷–÷ÃÝ]EÔ©òŸ·ðÔ³SžÅ÷iæb¦•–pÚZïK°Ù&]&)¬á¼­µDÔkzAª…‹ðvއÓGqúzÞEbë€ýŽ>aLM¥+|Ü$¦œK÷ªxËè|ùSšèm¦sõ¬FÒͲ\/Éu™%Ñ¥ü‘# x26UÍŠþcšÜ•8ÑúèÄ”Ê^£‹5­–Ñp:D£z/h}=¡ÇàgÚjmM.§$‰äFË=‚ÂÜhÚA ~}~uȺè<…ÿèyã)ƒ¾×„:K~•q`ÉòpC÷t®w½ºnåøÞzNw ÜÙáÃÑ!hΦ˜}ë¯þŸ »Ñ õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run010/bold_25mm.nii.gz000066400000000000000000003017171323370031300254230ustar00rootroot00000000000000‹¤½u”UGó.\Õûì»Ï`3ÀÃÌÀà Npw—à,$¸»K @ ÁBˆˆHx$!J„$Dˆ¾q¢ßSuæÞßwÿøÖºk}œ5Ì9ûìÝR]õôSÕÕ=ƒ˜þ/þM§YªŒ×\b}ýŸÿ©¿ž%ºÔò~2[üŸ÷=Ð ÷4¯øPùÿ«¶¶=;•äþß´ëÿß¿ÿéÇÿjÓ­åDן ý\zúî”ëòOú$ÿäûÿõO®ý¿?‡þM®[OGR:G«è Ã+œž¡FTNUðº‰úp&w†ªÐ,ªÆe| ßÇ¡Y;h-õåhŠÆ“ó~„cðM_jù4“"p6ÝÉǸ–Ù:ñ܈¢pÏCÜOÆQ!ÝÊ“x ÅãÓ´ˆZÓjm‡2vÑjJèf|z£ØïkÁnÅ=КpgÕE] iÆèG´"­ˆ§Q‹~;߯N©ÌÆ»öv¤ý}‹í#..ø¦_b¦ò`’k¬çŠøQºf¾ô÷Þ6­Ð†Õtž{ò@¼k…²—Ó2Ô´ 5õ§Úè_mj‚VÍ LȤ”Ž ç#éÆiîM¢yþjû››3ÝFÜE»Ç]µÓ©„ßtãÝûî1÷¥óf7ÆÝlû¹í|‚WÙy¶³»Ã~ÉÕi°lÒ-¨¥ žù•»@–m©5@Z@2h"5§±ø„Ï£Qû=òL´t=ì³çrjIºëö_›á–@ξKuk𹀺Ñ1û…«éj¹é°¼+ö7;Ù¤ ?+‰¯š"”™’ÆÐT€ßµ ýz¨¯ô'º°Œ Q$ºZ€–´¥ÞjGõèv|š…«1tŠF˜·Bkãi8 u­]'JÀ§]Ô7p50÷$CJx%«íd£ÝPk,^é(e#¥R"îÊ„/ÇûX”‹º3q-ZKÀ•(Ô‰û³©:^ò^JHÒ{"¨$–L)¨Wž­†^¤ªÍ¦ã}4î Ã} èQ>®Fãz,Ê‹€m…©õ§à'Lë‰ÂóÕњʸ_¾À˪×E{bñ®*¾‰C qxW v•‹pW%\OÁ§ òqW´~/÷ð]¦ö%€Or_eü®ŒR«ªªà]´ìZJg´§ñô4¯®†apwýU iõ¹¬m4À«…Ôãз—é>>Èg€]‚W]€WµïY´ŽÏ—ä}ªËŸp!Ê £a4€²€qhSÍäu<=¨J;è)èøríù@J6—¹1JŒ¢©f¼I2«Eñtb¸‡)å Üó'¿NÓg‹»®Ó ó…Á·/h°÷—)àp\ïÎM‘W•ãQÎ,šC¼ õnD='èOèl3ŒgcÚƒšïE[Êè!`Y!ŸÆÕúÇž}ËÜÁY¸cåò'þ]Ðà@ÞLWs׆6^† ΡÇ0þÍa}Nk1…Ф‡)Œ‡!jÑi*¥q‡v¶¤ÝÐôš°´,ŒÛ­Ð’ê„O‡µñûûi´#ðk7Øoa9çÒÝi3—ºÓQû7§ñq¯)Úv õuÇóak…tÖЭYJ=é,]¶µÂ7cPVo\-¦/-yx"c6÷üLwAI”FÏûìR¿.dPfÓÜ0;ž¥y«â6¯ø¥¦'þnÂe.— w̯޳Þ˦5°a=ÁãxzØÖ¼ö\ hµcWr-‚Î:f¡×Í0#Ô£qô"ä5O¦Ð =ðj™?Oå¹³v«ûÈ΢2~ÇÝì8ø¸»D5x‡妨An'?Êól_;Ðí°78…Vñƒö'ÿ^àU-ÁkŽ2aßùèu.f¼&èq9tµ1j*Aí]h0z{½Ÿ©¨ñ”ÿ‡ïs3HýaàSWìÖPg ºd·Å}¼jGûm0˜‡ë³!g/ðŠe7¤‹6Stà¢i¹å@¦cè'hLF{-ôæf”Ÿ »XˆY÷„ê¤Ý=ﯗoŠ £h÷´ÀœLÆØGãÛ©®·kIb;wPI`w`¬%ÖÞ€W=Â`¡À.Ì„‰Ðà0Øq9Å÷‰¨!½¥$àYÁ“TüDQ’~ŠQĬŠO‚µÔò…O$ ] ø®jH@ësb¡uµQ‹àM*ú™®wTÂçBô  ®VÕö j úD)n„ãÙ*úMîÿ_wÉ÷•ÁâQgZ)Ø%ØYYk¯ŒÌ€&ÆjyÒâZR%-9OÆã~‹zk¢ÕÀ1_¿ !V%|TW¤›B¿`n<‰+aÐâû1­”Sµ¡V|ƒºâžª4‰¢¹&8@î·¼–ÝœÃЂ‹tŠð À‡HŒÔ8ÎÇlSå4¦•|•ÛâjÚ‘ÍOz±R¹˜CzÓIÞ¼ŠBù{ñ +ˆÅ]cÉš§€i"…å&ßT5ëLîzO–š|pž$ú‡?N}ÎUqÏKàW§(ÞˆÌÜÇ‹ðJжJTÌw›Þß\mƒýð=¨÷èô!Ü×ÜÚ°›ž »1‹µj*?ŒÒÑ>þÇÿÜì.ÕUl>áo<:RoNòz˜‹èg þi`ÁØ`0m0$µZпÏQl9{ ¸’ÆñÜÒi d…Ñh ®ëNÃè•Cß>ÿÎáÚPZxÎÆÙöS̪œêê¸Ìt`Â!{Ž-ïô@·>BÉ`-ñ ¾Œ®)l¨½Žïúcôª£ž[À¯ZàŽ+ð8²ñÊÅ ¦~VXݯF3Ïùýí:?³{±MtSÁ¯ž„LNŒ ^ö‹ÍDž`P>¤w˜ñ$ñ/`Ëaü¾íÛÞ9Ö†çà¾ñÊËË07?N9à¡5£iCà ðjŸý ÒÉàðT>4ÓÀ‹2m‰yxC µ¿Cû› mPfmAÙ7áýhü|IAŒ«9@¯eðc»£Í/9d®¯1î ü¨\F‡.øcìv?¼ È¦ºÎvŒ}‚þ ¼ê̾æ÷4Óxsð îÈ÷Ó*ó¶÷¼÷iÙ-¦‡Á¯†¢¦rôx-´¦.zz+¬µTñªî˜ ÝŒÞô†§úý)ÇhŠ dé¼JQ ŒC-iÊ|*+®%©•‡C× qoºúƒ©Ê®¢QRÐ:ñË£‹š£}±ú. ×BþZlU¼úxܥ覌-\=ʸ§X÷ÑÊzĬŽZ+á•„òS”/=ååÔŸÌÂì]›õp²¶'-^W ODáj†ú†íŽPÏ6åÈ3UðTú:žÕØj žIÃ,Ôš/þfK T‹`埇eTÄ‚ªO96𳜄ò»ƒ‡´†JËJi2fÆ®x2ZP—ßçöÊÛb¬ÿ‚^É<ÒŠ&ð §rÜ Ìì*¶ëCé ^ >&’ºÍ”šð+ë÷(œ'™LNF žùöøËø|K-¼Ênâ4~5Ü›íõ`á„}ø¸àYf„Cà>ùÈòyÔ~„n`æí…VfÓ1èó1`X ¸úôøQŒYcJ¿zËä°ôÅT›—û³!ÕÁ4ë™\s7üÐ"x8/BWŸÁ˜µÆü-X°ã\ù=HOÇ»Æð´o›ä¢6<xÓú/ (xÖ:x¾leó!¬{< ¼dSìû9ææbÎpT&Cº §ÐýQ@ågq¥z>Çßa¿õ—úcÀzËÝKv3°cz{Íõu×ÝÓî ÊçCn²›l‡»íüøÕ{³»Çú¦ä‹öwÿ$j*@=ã¹xÕ2­˜y÷ÆûQè÷(´1ÕsÑ6ŒøLÜ5“ñlnŠÖ=€:­kíVëØ%¹­àxñþ^,t­Ü\´ûWï² ºÕЫš˜³Rÿ1aaY×ñ˜kCö5À©Êàë¶À8†Cw€aI *6×­è ?&ˆ3ø0[-ofàOÁ¯b õh›èÊÔÏ9D¥çãaE‰d ð«ºÊBªáÓåKÑÜH0÷t¼¢ð3óOJÒD+^UR?0 V©8‰vg Å•g„¹„©g–¦ˆ ‘(Á¸Bõ#M2ð¾ºzz БxªŠ¢ZUåTÑÚŠDØPõCÅwÍP–SEñ"Aq2¨~h<^•4²«x%q¼$è}¶Zx+%)ò†+•h›à[˜jªà›¯\*VqK<ÂX-) Oõ£¯1÷ܯœ*vÐm G]Í)–ù¯r¶ùÄœÏß+Îý m˜K]8m}„Žñ¾È"£>Ô xu»"n>üÁ§xˆ¶s;ÆÝÔïM r+ô&´‚—îãñͰ§>ø?u „ÍÌãv$>Ý\ÓÚDš&å¼FÕ¸Ÿ©ÅÒî¿øXÿuüsêáUç4#’ýŠn÷nñZ³ð´N|ÖLö"8Qõd-µa‰‡ï®ì€e÷†]‹6ÜMO§Z+¿º‹Òù Œk.%±µo˜uð=Ãk òOþXÝtp¹ç ‡8óç«ðµæåêÂf'zÃ2â1"­àûDóhXm Ì àÅFB!ÏMÀ:¸^€:nFíõ &¨5Ìøæc´m8ݸlÃí~û%JËçD—îίºÒÛ×Ü ^k<õ,¦# ÞO)fÙ©èQ+´ ØñXhö"XU+” -ï5òš Ýÿ6UŠ6ס¡—üv®_^JS°Žv }˜¾ä-öˆë|Áobæðtð«ð`ðê~zÌüìÝ~Õø7NñPôª.P#òÜIN¿…ººâ}ÌhãðíHíPj0q F¹¬ø[ì[þmþ$H¶¾{ÑÞã®ÛÛ0ÿ½ã†»Ýe÷Uç;Ü 7Áör{ùQ^agÚQn'üÁšt?oðŸDý €Ö£¹†é‹žtB¿ €Ë1•ƒû7‡t›À.oB½‡1`öÄÏ:áû6’K!—Cîp§znÚÿ“­å6¹ÿÚ6`DÇíw®†+…?XL¿_ýi—˜Ès U |¤ŽÇÈ5Æ8ý«*ÑU“F°˜R’hÇrèØó`Ùá¿j€ïû(>dCo²iµúYG¨›9˜ªLg8mp=]´$׋÷¦)« fp+Ð0\cãup_roNOÀæRa§5ÐãmÐa‰‹żÅÿI®X9“øv ¾©¤qžHE-±ßꨡ*ú‘¡ˆ˜¯^e¸blª¢¢Dâ1n¹«\S¿M•D’õÉå7·ŠÒrÓPŠæ$£·±øÎj$)ªÂ¬‚çrP¦ UbÔÃ,uŠ› ¨£’¶´š¢¯Òª\;«¤Od(ߊ·r`9wjé`¦Í!}‰¸5¡®œÂ}”#£–\À(¦ÝÀ\1ŸÊ8\ñêq>Àg5îÝ‘qè¤àaGZÆ—€uRçøãÏò@íYoÌÿÕ¹žŒ†ï^ÍTfºþBcX–HhE›û¹¹Æà–š^&Ël2‚ï/?[™R– ßü 6ã™[^£ŽÞCTÛ¤¡OÿÒJo¾×Iñª51=½d·€µóÔ{v½|¾'§têt`4®,j?|°g ÷:àW_û—Íjð«´”Úòz-Þ#üÇ 7篮 E;€W¥à?Ó`¥}G™(±38—£*ĸ½„Šà…ù°!XdoŒFsèz5XT èdGèõú‡¿æ·1ö¡­KÀ«Ýö±tŽp5¯ÚÒ~û1û|Ô“èòu”ÜVR®^ÞH¼-lw8Pë ŒÍ |—.@Íåxÿ­OÁÆâÛ_Á'›C+k¯õÛÙ~6ØRCK®‡j¥ù.ÛÃí > ¼ÉK‚/ÛÈ`ךÒ%ó‹÷ˆ÷Ž)Vßë,&×C›ÅÓÜ ›‹;Ÿ¬/j½ý9%‰j^€´f Å5h°¿È^ôgûCáe•»'WŸÚÀ«·\;÷•;¼ªË;Ü7Åvv;ù>¾ÝN·ƒàþÁ˜Ï€_=A³PkG ¼ê¹Ã´%xg9zÙíh)ô‡¼aìÅ?lˆö<äÿãÿwÝè°{x•ë6àžm–ÛíÞ±åxúNû!8m{àU6üÁW€W‹M4tüÁ3¦5l¯:Fxx|1$šŒž@£›’xs¡I[Ñã8e9ð}oåT©èw:,F0du1—cqGØî 7̵@MQ`ø-w +ÊNšòí¸ZE±EbsYÓ®‰¶îFé2¿gA?¦C–ñ¯ŽÐØQ”úrñºb'ˆ%ëÕQsÈcLTv£ˆP ¡¬©ð"YcÛ©Š\iÊ~"õµ$áRñŠ…Q‹SLÍRï'^k‹T”¬¬œ®²âU>®&+.EUx•”_å =1ñ°,´;[ï 1§ †ÕH\.>[õ ÃñYZã+†V.# é× ‰õ©dÌGo‡nuâ$صøƒ“©—ð;S2<ˆÕ8E'é%Å+éQwj®=UQµŒVñ9ø€2F½Ào/UÄÏ[¢¦ºðõÄ›.§mð%g(Ÿ]–SŠY³ª¶'Æ|[iz˜X³¸ß½w4Ù,ëœdþ‚‡÷5‹úuõŽQŽ‘8ä ZäÍòº°<ÛO›ážÇâ‡îïkÄ›0&GaK;Á[@£jÁ²ÁSÙ­+mGÀ3Òø’ò+ËdŸ1ËX¢‹aKû|™qÇA"Öëcv€w5…v¾ †pTׂfA7{ÂîÓ€ýé<…¡J¡ká™NÆ|0¨²¼'Oq2 M‡æwÀ¬p˜’Í ÌÀ°=gm„½Ë~¤Éå(—àÞ6³qÏ^;›ÿ cÞPà§h_{X`[ÜS¶4 l¦ *xò·êw¯æÂŽÊñº^Q -© ‹Kþ…êú`&Í¿fWû…˜©Øí ;ÊÞ ÎzèÐ=xÉokfòÆàÝ6>Xà:ózÃ|íñÞ4s[OOðX©u@ÿWb¶Ë…N¬„%¯óÑ–ЄÈ¢ dŸ‡ž] Ç`·]Qs¾}Ù_èOA›[¸§íN÷±A¥ü­kâ~rç܃`¹[Ý(·Ôvq»ù žn'Ú¡n›­Œé0Ÿƒ/ù0°·.úÙÞy/ÔÖõfküªÆKò úâZ$=ŠîEým jhÏãÀ«tâp:ß帕ÐÚ_m4üÁ«¶¥D ìט#z¹í½ Ö¹…н´2oñ Ê0Ãô ï¡9¥Ðâ5±(¯v±hµ ¬6B³Úáξ1®ƒ±®†ñ’(öbÞ ŒÄÝâ×ô¿jŠÑ© -Ê ìLVÏ®š:² ÈÓct*#Ö}ISD©/Hú£ßDèa´bYtEö@Uô¿†bQeG%ªS¿%_'¥$+;(©`Z•ñ9=ÊV¬K€ìrt% RW+©¥Q´$-/Rû™¥5Fè3‘ºº&|©:¾IÔhVTÅj¢xŠ ³š©¤hîF%å]‰Ú;Á¨H]½ŒRì «È¢ñ«,]1•ÞN^MOˆGûÒu½¿¹Æä›R!ÇpWÅÀIðêñ5õaæmÔœ…§·xüAYUèÖÚ"54¢Ûùun«=éEøS.Q~ÛšÕ‚j/»Ñ ^Å·¨»Ñö.~âxØï)î¬Ò\`²MüA‘Ék@“¦¦X$k¾ú‰%nÿuñFXêWàWÓ½¶,þcs~ÔŒ^Iù‡ÐÃV¼’<­¼ ˜Û6ßHsz~ÞÁ3˜ÜþàW©[nÅóüÛ0Êc¨7GzÍ^ÎÅ¢E;áåôº'^› eÀ¾óʯJQú»˜õ#9LdfGé]uei ž+…¬c¦È2?¯j€<~Uݲ;qǺZîÓOì²§ùWøƒåñH<š«*€?ŸnÃh $û:Ýz0=„ÄÃùT×þÅ\ëM¿a./…VÔ¦IKÀ«¥~øe¡wCìdð«÷ø~;Ç¥Ïùef>`+K]Gð«ÍÞkÞuÓ²ZJÿáÁàÏIËïAù·½û=:+fÍÆüŸ†^4®7^InØ-hq5åo²WýåÀ«MÔÔ·€Â~tÝ/îy÷8Þ¯vKÜ2ÛßíáS<ÛN±£Ýnû7Ø.üCû=üÁ¥ÊMûr}øƒÅhÅhØÙ ŒƒÄ¯æ¨ÇÖ²éƒYb/Æ^¢¦õоÓþ¯þOê%?à®Ù€+r‹Ðâ¿l$üÁ÷m{jM‡íWÀ«.àWuéCï-æ6šTÌrÛ))pÁ4‡dÅûCßA¯V£ž‘¨¯:6 }¾s‚DsdÕ­ ˜">Xð*³EÕÃ!æR`¼âK?ZY#N'¨(p(p îHDÏñŒX5ÅÃ$e*ñ°¤Cø_bGÕð~)þOT-®"G K¹WUõÀª¢Üšê†)GIÓøt„®ÖT†– 9Åš¦9]š­Q§†ÊÂBñ¥Dõk5Vž wG©?§±÷¨Š|…x͘ ùƒq˜­x¥1ùdÈ)G³ÍœæY%âiÁ±8e/™xçãz-Íy*G eQTR–'hŠ¸Ð¨ð Å4XO™®ú½þ\U}º*‹".⫊9ÿÒBÑ<àU4lö>汀 ûP Pé­©ˆ¯Z(§ëäøüJÖMº¥¯„˵¢¼ÌW惭°û6ø_Z7âÌ£ðERëL±‰7묦^3ëjòÔü—¿/ù†E–W¨‘wˆ²¬þ@k¼ ^–ÜŒF|ÌŒòþRt¿³Q3Þ†þõ@=KèwhvkèA}XÚ“ÀÊæ˜gîÃJãói¥rû–YÃÕ5ÞäU¾DsçÒH®åMV~Õ8ù,,îNŒN9Ч#J^¯Ù3½è%òÀ¯ !ù7+‘σñm3Ô38QÔLÁ ŠïÛÀ–N£íáæ\A^¶Iö¸ýVÉIÀ«ÿA™-v¸ùîóº£üNå°¶@Þ†ð=ÇhþÕ`õ¿Çï6ÐÇá°Îaº^ö*+(R o­3®ÿ ¼ª£Q9'üº>oÎfºÀ«Óéa›ü¯;p¯ ¾e Wmù6ïz¯x߃_Iîék<Ü["Uuào‡$§¢Æþø®;F¿˜Ç4´c¾?ˆ>j=Y´CÏGøëí+þb­…?xÆ^Í›üÔÝä~w/»3àWÛÝín†íçîæGø6»Øv[­3™´‹Ÿµßù§Ðû\Ha8Âl€ÞB+”_Iîn Ì e°ÔîÍaŒpÔÜÂÿÉ'n†ÏÁu®À­…Öþckºíî+,u—½îê¸îî6ŒÖÞëö†]b£VRqàÓL×K‚ÿàZ)Þ¯@¹“eÐîà©’±"œ¢ÚÓ#RY×Êg@§æ*ví§‘æ•À8Èr ån¬«qÀ˜Ô ¬«À«:ðÅÞTOÇ2Mñ­:Ú÷dÊÄÈ.WÛÒxuš¢E‚ƼCñíª¸_ÖéjhT(Iý©Ðª^d—Šÿ™BN©ê³%knW5å*±š/«þl¢æ,Déj¡pš8õ:CY¥©Š—‘ZcŒ®ð ^ÕµDMEhô?N9Oʬ£%UÕ¼¯d]ÓlxåW’·P[ýAY ÓõN¹ætU3Qq22¹)ßWá?„'Z+.µ¤vœK“öÏ‚uâ÷+?™ÏHÆå=ÇÏÂóKÐ<Ïr®”ûsè~N}ÀJàZmW-µ­¡Y-á'Æã}.íäx¶bñnðºRà•`æ(J2Ïà)™i [ÞhdL>€O:Ê4báÿð`1_jÜìmªï=¨xUz´Âæub‘]g>nyÿB¦1´ ^ÂëQ×°õÅðŠúâwèÒ]àWÛ€e@êCàUHò™«p¼}Ã,fÉ _DŸÐ!6îF ¸º·Úlâ´ö#z¶pšYóû@Ì—ûQ—ä]ÿ‡ÂÁ¯òPæ°’XNä!šé½ö\ ؘÿ§C Qf#”QÍÔ4× 7}èdàu[Õ>h¿¦¡ÀÎ4WÝ}bƈm‡š·è¨7ú÷&žé+i ›jˆúçàw+hõ|°«/!ß¶hÅ0ŒÃ8ÔTŽV® ÉÒ/Ä•!°äé8ú”†r–.úí¿ÚU Ÿ¨¡f¡·ù%ëOº«~S³Ÿ ^±õƒE®Ÿ “æ=ï„÷)Eý–/ð ÌeE`p%à§ûл‰Ô`ô­;~ú@c&J¬ mØV Áh½$i ]æ/·¯ùóýÑ@†î¬ÝçÞ³«Á&ßsýÝ7î°{ óÒ7Å-´½Ý~”gØ¥öf·ÇV5Y´ž_Tþ#¬wgš~@ŒFV6f¡0š| CH£>ØB/Hî`H]s˜F'}²?bÞiE'ÜGÖsùn3¸ë¯¶†®J„ànûKuÝ* ÍÞ›Ö€_IþãfÊ œ3­¡ŸvúS=µ ô ²n鯡ŽýÐâqÊ8jáù&([xOmŒu¾Oè.êf®F¨4Œ–¹‘®ì¸*ðªa`/ðJ¼®<ØÑDH¶²ÆêókiߩޖÓŒ*Á®›4ã8­"¶ž +~q˜©– KÓøU˜æ8%é1h[5ҰŠÌÖÐ0Í¿ÊQ|“XJ%:Añª²~¥Q$‡÷¥¨U°/¨™[™èE%E+vI~{ZW€ÿʰB¹ª’=ZE¹d%å?áΆÕÄiûAÎMÕÃìHµù/ÌícŸA\ÆïèúÝï˜;çÁ3’ž\¦³|’ÏrªÆÒ‡p=詬ëÕ¡C|>W„æŽ6á|“® t€åb^–‰æÀ´íšß¼Ú|\Œ6…c|’ÍãÜ\Qy›im¢Í#¾ç'Ðãþð#¤÷æK:GçYdù"u^åYÑýüj¨WÎ"¿Î|§¦ëƒ‘Г…@ßUа¥ÐóÀÜ~hKhõÝ@註>DߣùF¯%Ugc?7K¹Z¿•|ê/ÅÕÉ4‹ëzûÍ:Î€Ž¾E/Ä­4½ Ñ|áWÝÀi"y²®]ÃÌþÅõêJcwèOKÜ•…™¿F¦ lç(Õ4UÌç½~t,pÙ&ÛcöؼqWýe¦Áú×ÛÎæU:è 6 ÉuR¼j‹wG06MѧþxýDŸ+Ûªv¶ öÐ÷¼Ù¥Žú¬k%âvíÍÀµqgü®v“_cßxÕÈÞ ~õ)?`¸ÇÝ ~¾YÁ÷Ÿ°ÅÁÚðï¤çÌ7Þ³º>Xÿ,ðj#tZ²½6b>¨Üœ„: á!€É­DKÒУ†@ÃBÈç)èÊ\Í¿šã¯†?¸Ì>Úxu§ûü*?vÜgî¨;EɼÁv·Øîn?¸ûR»þàð«4ð«§íOþ3t;jmI¹–銑ƒ'€:£_=ð~6$?ŸÓ k1B{!§Ùh©ÄÛöo¨´pW-»l·vÿ«­æ6»×­d…´@æÝÝØë—ÞÀ«uнêàѳ¦“Æ‘ËÀÃ8ÔÄX®EiC•ç&‘VÑY§Üµ6Zלú(RY20 뾇F˜·CÕsLÜ(×@#9'©n`{`¶úùʯò5;˜ »_3=%†ßV©>K¼æ=Dª·®ÑþhåTéhwM] dzñŠi⟥¡u1À©pEµx¥i쥦f`¥ª?•¬ØÊtQlŠTî–¨¹¡‘Y’£èXUs¼"5Ÿ!F×e/¨¿c´çrw}ô*NY›d¥j$.¨Y‰xT¯7$¹[¾æqVÕL2§ÞhŠ2®Hÿü™{u^HrÈþ6ÉghƒþgÌX²61N~Y9Ø_ºS¬K&ÆÓðïáû¯zÒ8.Æ,&óB íå7¹›Ê¤ üÁÓFù•¬Á”r?mu+ð«e^Ó£MS–ØaÀ¼AÏÓ‹,žñyjë£4#rùüª›×FóW[ðCf¤WIýÇÓ°•¼ m¸x² ¼g ,¬&´x7xÕdtáø`§5fÁÿúŸšEàQ` 5x¿ ¶0•–p²w·yŠk¡'oÁ<ˆ™·>Æv´vð*óbx¨©˜!egÁ5<ó/¥¹û@³ïļŸyÔÅˆŽ€>Ú¯$Þþ1® £ƒçl”=`?…–p2æú¯àv¢­¶1üÁÃÞHèÔûhuw]µonñPˆk_Ñu<×£8Ú,±£Žôšì'B­Â|èâq<—K˜¸ìßd7ûùÀ«6ƕرö,]çÇíz÷¡{Ö/1ËxYð[¬çZò=txõ´÷¯i R{ÇswŒs;”µ³MÝ ÷F=½ñ}?¼§ÜX÷ضŸÃ·‚åÎô—Ù÷ü[W{¨³{ÅîtïÛETÄŸÁ|Î]wP>ßáÆ¸q’ÕÎò»ïöXcÒi ÿxõ°GòFpºŒ6 g²§±¤\]nIÖ‡–ç½õ·Å¨çC¯÷ÿô=.ÅÜç®Y몹MÖ6 xõ©m…÷wÚO\ºkã–¢œÿzïØŸìZx¡²˜¼j ­­ $냙¡¶r—eèߌa4k)jyR¼ÊÖ¨|'øÔÅµÚø®ŠòüÉàWãÔwBÛÜÍÀ+‰]ÜK÷¦+:`ná…ø¿ŠîY+€ìª)vUC»ŸÒx»ä*HVNª¢KŒúeUu•.”=¡H”š“¡…b¿™š{®Ü)(#ë-ÉSª^$+šd)‡ÉTûM%ɇ­ª]”2¤¨ ÌIU%U¯KDJE†Ue͆¨¤XW ­HÓØ{˜®.F«Ï%{ó4kVüAɵHQ^”„'d‡c%ÝK˜ƒ§“ëª(:5z®Œ­ªfCŒ£—`U§´¤H´,Kò¦šÂj}îªX=@#ð+‰¢ýyñêÆ²2ù(8γ|BsœúÑèÂxõ¯Kh?_⎺ÊÙüên­íl +*Áuá¥=¡}óxª²Ì=$;L7)¢Ž§xsŠÛhëVƒyDšåFxá5”3ݳ0Jïè9ºÆ2_œ£VÞJ4âc~O˼~^+Ý}?¼2š_z?fäbÞŽ«‡À«ÖÒ{ÐÍrH»>fßGÀÊ ïǡ۩| #>¼úÎÌ.Õ‡®¦ó-¾XÃxð«Dï¨Ù ÞUoðyàÕ •äöô~nÁ(*FTç1A.˜ÖTøž)<V,Lc4¹¥®“ Cíµ5æ‚bÌïü9´eݸpýÜ „\²{ÏÌí²¥æ7:âuÁˆ¿ [è¶È>¸&@Û[PFhõú5€çcZI7E]?cni€ó`[ñܧš/š½-ð¬ßÒ®÷³1æ l”kaGÛ§Á¯î´¹ìàó~©™Ç#ƒïÙ¬`‰ëÁGé?æð«Ÿì\Ix#÷‡Ô:£—à A›%ËUñªPr$Ùm;€ïÆÀ‹=VµC/—øëíþb,Æ»Ì]°Ü'öVøúŸ'^u/¸‡¨¯q#Üh;Ø¿ZlWØn¿½Yq/?l¿òŸZK°gA¦rÔ#9-1²w°¡úh’ß>LPòëoG›¦Ó£þ/¾s~uÝ\žÛˆÖ’Ëp»á6Á}ûígàWÝl”ñ¹wÅ~k7›Hk%Æœ›Š>5Òü†òêa½fëÌ ~5DzÒÙI÷ŽR¬_ï—kIjÈ8ÄÙÊ0†…@5‰õ¦Õ<ƒCsÍA”Ôv­þ`„ys·ôe™ifj¯Ä~þé8SÀY¸çO~Xð% :Ÿ¥öÞ=T͈žüI«¼^^ ôïÂÇM7ï;å±AÃsyjm]–Ñ ’O{=)þä÷´)‘ÿƒ[‚QyöºYÀ’¿}+|•ð[CJƒ¸Ä[kŽq&Z{xµœ©!lv¼ä¾÷jaô{ƒ_yàWõW€P–#à÷¶l‚ËÙ9–¼½¶ºÏ:ÓüÃ×5Ú³ü*üê  1§º4÷‰¹ÔÕ~ËßÑ!Ò&Õ½ÏJÜê<Φºîz=´ßYòEçi„®5xÍLÔVV³¸×–v -®k·^õ;Ø-~dÐÈ:×ÍN´Ñ÷ü’d;_öÁ^ؼ úÏ4ÏëàõR,mƘAÞ ÝAuÚTü*ÚÕ<ç{hK¤Wm~µKÌqp­ ŸÓ8e<ßð?0+¹.ô ü“ý¾dާþœîm4[¹&°àqx„» AE°Ù@åîàWq°žntxu³î|skRì ý’ü«î(½•Î!s1Zµ!ƒ–˜3óÌð«aîD²ƒ·%®7 34Y×Ç¢ÞO€#r"BuÔ:ßÊÉ@ï¡ýÓbø+Ã#ÿ‚”Àî2iNà¿£Ýáç¡ÿùÖ¸vüÁÏù»ÐÍ ¾è7^/ î¶6XìnâCô ðê^ï;Ó£»¼zú(ùW51{FùÓa½ÃHNeÉrܦYG#P×!Íy|è> }O¡ þbð«ÙþhH­›;c÷¯¦Â×ÿÎuu?¸sî°Ûín’ ܼì}º½ÅÞ ~Eð÷òû—’êÎÅ›8ÅLÐý’-² ¥ ‹ ¨«¿}_»t?Î,ÍCÌÿÃÿïÚÑ)pº*®ÐmÀžKÐøU ð+Ì.Óµv+ч߼çÁÁn7â;­¦jÀ+Ù“žÔ1f Jˆ‘~µ ,n%æëµÄæÐ©›ÔV)kÉÄﻋš‹©ºê6„V»Ñ®‰ò£ð7÷f(ŽÕ£–<º!öZX‘/*ö’ د™M•ôý\Í5Ö˜o¢2œpõ£4²«¹ Iʼ"5¯+Z_AEÄ8E—pÝw#çODkÌ;ï3Õ·Š&YU‰ÓÈUhE2L3b4‚.l'”Y_C3(Bžh´F›‚š§þ]°"‡B¬WxW=|#Ñ0«-–úB9©êZ=OF¬Oâí•”÷T­ÈA ÓslBùö“é;]G‰Ô×'1š-uŽhEEàW7Qhÿ`4çðÛº6ù7­€†ÂšP÷eºÌg+üÁ^4”›(^Éœ²‘ÏÀ§ɵý/p}Åün°˜®\¢9Ýh%wF{/í„¶¬í¤êæ:¸™`Ñj“g2Ì #\ð]JæN¦œå2?Ð;ôK~ȓ伃àW²ŸúºÍk­ùíá`€÷š®ÞÏ:’û$˜w õOÁŽ÷ÒÛïLèu.4èIð‹$h× Ì~µù ZÐÉÛþ‡f-çBoÁŠx…¿z#'PÄzKá­fãú)zÖ° O¦À;ÀfÖA¿ŠÑ¯Wˆy8Ʀ Ú8ï#9ß¶R©J¯™‘)ÀSÁÓÒ̇àWé°îÍ€W{ì—(¥1ǺÚî³’=jç´Ãñ!~ZbDã“`-íW½Á¯^ƒ´Åœ< 3Ì´,Þè<=S 67õý ü(&iÿ¤À~/»É/€<êÛlàÕeúˆŸ±ÝÝÄà3~‘¹ï n³øU>@_˜¯¼{¼×À2ò!©gyX€dmÖFÉGPæX«Ä‘ÚéÏ {ÚÑß ¹¼ZÜL¥[üÍö*ðj °¾…{Rãí³áAßp]Ü7îm÷$Åðføƒí·‡òTàÕX·ÏLàûìßþ]ïk¼J3= ó~š§ºòhœ‹:%¯>Qýæ¨EΘ)„}?åWµÿÀÛÒÃîst àv!vQn{ÛvÅÌzØþ /±‘[‰J~{¤›mò0’+¨FàQ#ehO¯¢çr"Êôm°²ÆD Ò&ôw˜Æ7$ÊUD¡9:-*€• GÚKÝÌz>C"ž[íº†šÏtðð¨î+”ü«2^Xo€Oý4{@§?1Im6=¼Yw¨ÄT°§‰G)„Vþ25c4Mñ'AÏcHQ°†žØ’¦¯ùWÕã²Pg‚FÄÄg”šñ£Þ`˜fe…öVÖZ"µŽx}I¡³Bù¢ùšT, EÛ%•¦k‘¡s¬btwc õ=ãWS•ƒE«¦þ`ewNqÏ¡E’‹%ŒMN¦‹NÕÕµ ù¦µæ¿À‡„_MoXȯi¦Å_ÐŒ]àìÂ,¢x#¯á”Ú–r#Ü)òªOógº§FøUSþœJð°=¤Ÿ ,JC ÚS_žÃC•Ãî·*£Eê­.¤æ,¸™àég‚fƒúz×€8ÝMGFüÿ ^ò»ÆÕ_¥ÍQ`œä‡üK“¼rÍoÀ¨?`zx¬ç9ìƒW×7¡¦®zÕè]6$:¯o tKÖŠwP? éåSÿà_3‹áß–‚åÿ@ëü•@‚ñ4Ÿwšþæ9\o/úm´õXFsȯ»ð{ Q.pã"d4¥çÑ&¡MUÁ™$^Ö“‡ÑZLËo‰ÜKUÍ+ü2äßVÎØx{Ø~‡¹¹S€WŸƒAt§¶ŸÆÛ‡â™÷€¸í€’½ÞˆF´„N&¼YHüª&,d°QN¦ûDWåò•_ „uþ£x•[»5pÆïk·ú)èw›äØáöðå‡l~Ð ^ôKÌþ4xÍæ›¹®|?3Ï{½k¦œi==ÄóàÖÓ«MË5e*Qü²A?Ìh³ á^ÀÒ°ç1š%g2¦Ò"‹}ÛŸç ÚºSv·{ÃΤºü'ø_qG!ý­n¶c‡¸½¼›ØÛì·ÅF™:´ŽŸ¶ßûê£6ÔSd†Jô®¦Æ¯úèù.-!çz°=ù,ùWÍIöL¢Ó~ªýwÜDÏ‚ÓU.m7–<¬=üƒC@çêø¼wýã]o2!«exÂHîAJš€q ívY ͹õA?…]=¹‹Ç“¡2Ý4~U5g@ÿĦR³WÏgˆ^í^Õ×5·#T;0;0Q3œj@SgC“$K ¨1HùO p p-Y±" #¾ ¥¦éžš0åK•uæ¨X”ü«"=í R#MÕÕS”V ÊÓ˜Q”®@fkùQšS¯k…‚OÅhwxÖÅh©‰÷ŽÖ:C§ó%i¤*¦b?N¼²!û©¯l(ĵU¡°zº—9¬â¼¾hYEh‹â•_ÉýÙzOP¹–Õ^˜fc%ª‡)mgøƒ“0…Ö¶@Ε¿•K†5wÖ<Š9Ðó2~W}ÕO•è K¤í<=îô4‹ÌÒf°¨UZf}Úϯh>C%ØHw¾ÊÍôz7H?8£™j¹—îwŽ‚È)sKÔ7œM‰æ=à•Hd‡ù˜£Íf#<÷cªÉŦ-ð*œœ¹ÌyGÏ^8G¹ÞQŠ5"³Ïh¼W×ËåÍgxÜtóÂXFàpŸLÞŒ»%Ž´VÜ#%sÙºÞS)=‚VDòY=c¡ûöK3J÷Ý,¤¾Ý_-ŸGËùsÜÜ뀟ÿþíB?º†ë>Y“é ‹á~$gg}@£á{Æ£7ƒÑ¿M˜!³5_´:¬*¶-'W= ¼z“ßÔóv.ÙÊv—½4Ïçd—ã~0“0B›locù¤×IóÛ[jnEs´¡h7QóØá«Ò—t–Û ?­ œ(GíóPs¬z |•öhõaŒ°Äb§þã´wøÂLêÚÊ®ƒ`ÏÐ@„gÜy÷œ_ǬâÅÁí6KùÕ1ºj>óîó~0rÚÃVzžg³œÓµ-P–y Æ@ØH{Íoß ©.^­œ®v+ûq梥I4Ç_n?óo÷G¿ZºGíîC»”ªñ箣{Ý=å·¸‘àWcÜÞÆsÀ7{»­ö®MËø„ýÉ? ¤ËU½rFN°iù¢HÏu香ÿÍINmHEÛF·ª¿Þÿ‚_Ãþ«ï@çÜû6Ê9ÙÑp)n½û þ`kÚn¿sÙ.×-ƨ~á½Pö;׊¯….6gá|gèU~ŒO²ä¢u‡6 ï Ó}‚GøUî¥òë ÏæKîªï[Á&ëp[Åú~4Š'òT•ï6ÌKÍÁÄ—œNéæ]n¥Ø»ÝÔ2•ÌF#>ú{@œA¦©ò«?ùgx]uð%ywQ’‘xñ¯Ìk­9ZÍxðÊè~çr–%ïAN¡+áÇv†Ä$"~óþZ¼/¦¡ 7ðI|ú:Ìös3ƒ‹p}'}Eý[Ñ¿~´G›;Í>®ƒëéÌÝw`¦ë„Ùs Iò‘ê㾋” îQãóðêOÈNö7+¢ûú%ky®žR,9Ÿ‡É7?òUØ×Ú¸p·ý íËáTð«_Í 0§-¶ÜDó1o”ƺ%ßhÆG"îád@Žž~ ¥2å÷Ç·ù¸{±®-¡#Áw¾l® |Eàq=â×B» m´ke‡Úóð±OØ¿Ý÷øÕr~+ø‘mlîzò½ô¡y üмeTx‹wÛ ?+!ÁHg>ƺ6ä›DXœÌA}íh;Ú<¿„6µ‚Ö-öï³ßùóõ<äöî´½ X1žø®³»î޹“Þ7ÑM±£Ü1ÞÏ·Ûå¶—Û¡þàA>iٞƓrŠOŽ0£4Ÿd æï·€¥4ÅÌÑN×)ãõ|†]¡&²: ¼zÔ÷WehÝ)øƒ1®©Û‚FºêîN÷ží¼×r°®Ïƒ¼þðÞН6ٚǞxÞ4†žÈJ?ºŽ¾I¾ÒzÔ=uf o2n€%‰'TC½âêgå]VCíÂöR±y?0NI?Úéæ»"=eá~ª8˜¦XPÛš­¨²žhÐC×Ñ*ãÿÖÐÖdÇå<À9šÅ]±›9N#Sa^a¸î»‘ü«Pì)Sw2ÇPèܘ\ÍiOR)Õ¸Dˆ2pw²âU%==¥¾ÖY‘µV‘Ù­U!$Š‚~%(ÞVÑø{˜â†œ±›¦˜ãÙBÙA´±.´$•ùƒ9ŠQ ê ¦*¿ŠÔý8ñûþµìÍŸ—õÁÞ°˜‘t¼b÷õJȹ‰F¹ZÁ³¸ƒrËiÄÜ’/Pèü«Y˜‘‹XÚ!9æÏðvÖ×s==_Tv}ïçsÜ[cï- Wgy€¢c7ŒR*¸‡°Á64…'ód´#™îÆsÍôì÷9çÍ|¤ÜÛg²L5³ÕH;¯Â']dZ±ŒÒ_üæ¸t/óËô•¹‡âu¿ó4À«PòEò}¦£—‰š§7ìl“fWô‹¿kÎÅxÀš.-‹õä¾À»‹V3´ñ3ÿe3†s5»4È{€W]¤‹ø6³Þܼj võ*XÛA E!ÚÜ=[«k~Ýé9Jäá‘Fô&xÏLS"Àka·²CVœnÇOŽò«ãhûOüt¨mü M¹)‰u,öwÛ·üuþŒC;÷„= ¬˜öþ¾ëâÞwçÜ1ªÅÛõüö‘îåÉv¾ä6Yð>~ÒþãŸFIÂ|ÛsüAñh†C®ËЯîê{6ò ê…z÷Ò~Ü9AÏë;¼ú‰$oá¤îÇ)q;ÐÒ€ËwkÜ;¶äu‡ýüª­[бóoÚv…I†-­¡¬ÀÓ 6*ÈßL6RNBK.lKÝC2 r˜ƒÙ?VϽkªX©±‘Ѹ÷Vå0›¨¡y=0DãÛýi¥›á 4‚ý µ<P"àoŸƒ„Ïä*æ§Wä«w¦&kIw±Æh.|´žÃÊMÓ½×IzæU„œV¨g)Ë™ ¶¢/N¹f¬r½pèûùI ç¼ÖBùd;ð¢jšU…¦ÀfËaS‚9Àö—€½²ßGŸÂï;ΩK_ÎyÐXápÅ´ ÕNûÛóÅsÜD×:B“r¸X1µÍæÛy´æüï„6†þ ›¼úϊܶ›º&Óì62|¿jš)aÙWþ-ðê ðJâi/Ò_f/üA+Ë£½Ú^O½ˆ÷››¼•Kx6ïDB[—Âæ{ëÙØ €W— g¹hñ]ÀmÃÏ@ZÙÁ?ùï™qÜz»€¢àŠÕŸ&ñIs»9ɵ`/1—bö–¿6:}=I¾VOàÕÀ Ùíó&¬'Èñ`”²ê-ñ«j(1ãy«þ=É¿:D1æW~_÷»m\°Uì1û¨ˆ] ÷§™Œ‘8`ñïtÀ ízÏ´¯Ø5ؘž¢ÑAžŠ÷M¼†cžÉF[gêyÈmè ‡D×鎾îô3zÙ@ÿ.Æ2ð«Qö˜_Vg}Ýï|šÞå6Õ^52‹xKð°ýË5p½ø~ð«/½Þ{FøáJzŒg±œ’Þ£¯ê¢Æ@åºz’jÜqlm z}—žIõu&¤–IÓüõö5©?Òkæž²Ýe;‡jðÇ®™ûÑ=éÀ7\íú€_uqwò½<Å.rm±•M:âíïþ9È»!¤ÒƒÓÍPHYVGs¡=5GSÎ)ì™$ã}? ënàÐ"´iôÃíçšýñ üAëj¹íÐZÏU¿zÁ6‚Tï´×ñ©§îüÇ{ÅF¸U&š²–òÁ¯’ ÿ2Œâ5Ík¬Žùª#ß½NA7ãgŒz75p­Öÿ>Ÿa‚~+–¿xu>0^óFÑ®„} Ŭ¡>ïNŒg3åa-À¯J¸½âÆdú—Šù%Å|ibþa9[â}Å×ø æw¡ñÜc)˜VN+ùA¾IãWý¨¬¾…ö»LÏ¡k ]J.­ãqo@‹ï€=¯3ê‰É_™¸¸³A}Š#t'žr®ó'þu3‹%tž¼Õ_!ù°4„/™^fxW3p¶TG›¢·Kð­øƒy°£ÁàoÓPÝYð2t5–#W7ã®e@¼š$ç ×ÀõZÐ'ÙÉñå™/ùe|îMÇ/ÙD{OÅ~œ0WÇ}j¦Ùt€?ØO¾KíH‚b²KûÌ%rJépôè Frú'§kÍl Ëüþ`=]}_gºéù¢’ñ~õš?ÙôëB&y`}€WÓÛüŒ]íº_ó똼=ø¸¥`6ðê]5_{‡¼ÏM}”¶›å¹:í*H± ::ý‚z:¢C0º³1Æ}Á=¶ã®­ @z°º)þ{Î_ìO”ܳö0øÕ"Ìb_»FîwÆ=½Ûâ&¹ñºßùnžn§Iäü*•Nð=ö†ÿ´zÓͨ;×5ã07ÑzeÇTw=_´¤W 'xöÑc[´¦xõï_•Â×>ä>°³ìw¶.Õ­w/Ú&ºç|ð^n>žÿÅ» ¼ZcdðrŠ œ^%bTëk„²@Ï._£gÙˆ¿ ˜‡’G+¢ÔÕ˜Vˆ_åB÷d¡øiwSgs9Ð_ã€Wc\CEœã”ؘ Ùêu`[‹õÌϪ(#}ÉPlôŸ[Áo0νq=Cñ$”5¦|)Ví)ó{¦F©Rõj¤fGª½Ë×0$I~B!¾ÉR$ÈÄ7éÊØd¬šDQè”ö(…üÂTE¨Ð•ý®<'t6UUõ[ëèþ§-JÒ§*k MÑÞÍRô«†WPq6U=BYO”,³͸²¹¢U•§…ëÚfmót0õYô¶-Ö)³v(Ÿ¡.×Ö3e}ðü«×‹ Ï€7SÊqš7ò-ŸÁ(¿ö4þàå¢MhüĦZ_GXÞ5.Q”mŠ1ìÄÍ5¶?‚–ò£RÜŠçd‡›øÂ#©ºùϊǼ xn6‰a^Cêbš‚_éþ†žÆÿ‚“ïÒ7f3%‘ŠÏc¼<¯£æe5禟wC盇ÑÃúÀ«XÍ£ß@O‚;-ƒ­ž~I6ïa: ly£×œ2øð«ÅðJ[êiY‹ý%:sßÂÏšáæ4Ë^ùwÀä¤:9Wþ’Uàm2´ª,ó5])+ÆNöEqw|nŽ»;èê«fkêYlñìaJ5¯ðŒeOÚxÅÆÚƒö{”V—Ó੼cÆàúaÛßüNÛ¼þšß.»ÇA^ò—^„7@9a+ÂøâÛà• œœDð.¸H1j*€=K6É’›¨±Î…§üv•Ÿ+§ƒÚ0×ZÏoŸÛ]Zð¼Ÿ~õVð¸M¸®|ˆÎ˜W¼Þ»¦r[Gçxæšz¨%ýÚŒº¦ƒE F¹Ý4rs›Æ˜ä¯_lÁýÃWçq¥ Fcš¿É¾ìÏño+kçÎÚ=ðÍVQ.ÿîÊݧî~÷fÆ•n¸a»«?8Á.¶£ÝN[ ,û8ßkÿðŸC]µPcG®nÆëy2Ã5˾ ð±p³XÝRè‡Yc–ì,Z÷¿óohöǽî]+yíÛ`õ¿ÛÚn³»~ÕŠî¶o`ŽhëÖÀŽ¿ó®Ø*n±„XE)ðèŠX#ŒðuõB“¡9%è«ìljDï¦hÎl’žDW=ê£W×2ÐY?Û@-Í•ÀEQ4Ûõs¥jå§©j`s`†²"*çy°eA 9ça˜"’ìÙ+ǼPSyŽœ…55Ä©‡_‘ B”*ʶ$ö•¯«˜AÍKOS$‹Ð}~µ)Z=Á˜2oGj¶–x²:%±<­ü*¦â,±ÙDõú"toä_…V£ÔËK¤Ðy2IqûJú\ZÅ ¢ìqn¨û£Ã42-X›­q¯DE·ôŠ|-éqDÅß›ù¶¡üöÐß´ŸôÝ]:9Aw4SÕ†R¹€{hËÆÓ÷Ô€ßÕüæñ¸«‘æ_ÇyžŸà{_Zp’ÆÖš¯.skÅœ^°¼ËÜPýn9¹6lC¢†Óh Ïãñ:gCü˜uÊcçÂüHsãch­yÃÍ #‘µË”Îý€W²ïñ7~ \â#9}OeüAÙ×\xUÇk§ëƒõù~øƒßë¾i9O¦.oèôDV Çt…$óïeØMuýë5»ÐãW!éF”Ä_ûŸš[¹H°‰¾£‘À+ø¯4_6sÍnÎò¼ ¤[ »i›Ã»ë Ú¨1ôAøFNw–xÀ+°¬DŽîõN­=çBd d2êÎ…ŒËè…¯^ÇÝ=hæ‹Þc¿E;s9Þ¥¯¦ãúÛx5ד¿ºsöÖQO o ¤z ¸/;LúÞNŽÁwÉÐñ9À¯æhÏ+èm>¬'Ò•(Úo`‘’U“æÎû#ìJ_bxµÁ6òì0û]áÝv³ûÐ=ï71«ùÞàn›Ìw}àK?eÞôžð^6‚}wèß› ݺ è´ óM1£œa“# ZÏ왈÷]!×µzÎè x-%‰.ñWØý¹þ( YK=¯ïªOiü’+v¹uî,øìVXò,;ÀݼšfØán— 7ðB´ú—1©Ð±Î\ÍôCßrÀ¯ õoÕ”‘ì“óe$æÐíÙ‹Z$ÿ*WþfŠÿ‹ÿîèJÜG@ènÐõ'›ãÃ?l­ç²ËsõÝ ôñ/ït3L5Ý%ŸxÊ4Ô¼ðbèð»è‰œ¼c0XÏ”¼ÁþšÑ©¹JÎÎè£\EN¯¯od=@]Íç‘jÁ#h P¹±ÆrŸ ¤ÀÚÀ< HÕ˜çè ÇrvJc<¨L( åoPÄódºA³’4C!VO•P–I¡óÑ#¯R*-LOTÎRV''äS¸â…”Z¬§sG*GËÐ5ÂP>C©îM®¤¾^åŠÈ—`c²¢bŒÆ¬â4+"䃆bó•”×åiTÝ)/Jײ+i\½Ð(´k§ªFük«™ ¹î©ú¼¢u…!®"~å…CxK¡¿]û~Pž'©"=ŸAòÛ{p5î­;§Q 7ƒM Žý‹QZAÍXzø]çóü¨æ8õ )àW3•û•‹.qgÝÐ ú÷87Sɉ&%Â×ÎÜ‹nç<œ"t¿ó"Øóråf3)þQ7e…[L„I3ë ë ÎXSÂr*™œo÷øÕÿÃÓu€YU,Íé9÷Ì\`3˲,9g–´°äœs$GAA@DDD$ç JQA}Š<  `BEÁœõ™ÁÌ_]çú~ê¦{ÎÄšêžîjÍ”üΜµKðµòã2(¨´§þU¾ì´í‚+‰ó®p칬®ö`CÇ©ã[}U~¥#yŒYËó¬³UX~ /ÚÙRªëlk1>7Ú,³v²}BªïÞ7GÀÚî7?9•µH7ÐÆìƒ§ŸÅÚªìz;%CR¤+Þ×ük «ïTe=/ÍSÔ(&Õ¾/—ñÞfMìesûaµô4$¶ÉOv ç,Wņ²Œöàe£7ï7`G(½‚77Á÷£—À¶ú2zqV³rŒ–ø把rZa«Ÿùc]—ü{~ì¿á@wX[ûÇÕtã`¾$»Ý4ß5þZØÄÞ+7ÇŸq.^Ç_'ûÀ¯>î Þ·š »Þ“¥Œq1F.ؽTQ?ÑŒ·cl4ïºNØ€ô·«FkŽ™ ¼zöàPØÍüQ·×ŸwsMž|î›'Ïúã@ê{üt?ß ¿Ú+Ýí@®u.nK™‡åðêf³*Þ3@JX½q­¼ªGý«ÎšÇ ôj“_ ^mÄ(ÏÁ8O2GCqŸk9à?¿*â×Âü•úí—™³ß}èË7—`N]ì-çü4«»r±©Îúƒ9èŸúÛ?ã[‹¢õ‰Ê¯ £ÿ÷ ]£ˆ]e8 ýÉ‘ª¹U?H×ö3È^^é¹?ÙÌö×yõ@ÁyZ4¶06•{²†i)³¨[g>ÎÐD–`q´|5u  1Û{2£È“iýI¨$”JD`¥0ß¹óÓ‰hexó—D¿x..ƒxU…w‡UP•™{¥ˆFYÔRH"ve%¢­ÒiÅeÒ®Í"!¦3ÿ-Àx†’´H=PíJe ˆ¡ž}šÁZ‚ñ]EØ– ”£_«:ýWžÜ¥0£<¿Ê`[Òqî~‡•´›xU#Ú…õRU«ª±4nè×`GÔ•sä¥Fæiž§¨Ïp¿¹ ŸÉAÑŠÞfºÔÇQû´¹Y&û¥3{ÜÇ—Ò±¸-°V®aõÎîv³gôdrÉû¨ç{'ï:Ç™Âö'iDþ¹Ø¶¢]iõ>å´©* m ÑŒ¿Ð–÷MÌêz8o~·+Wú̘ÜTZŠŽPžÜo[òt:ŒU\ü*ÕSæ`÷åmHÐè8X½ržƒÀ®l9†‘Ë7åäçðk؃ZMo­i* »€ SÍlñÁ»A4úç>yv£F'ÞÉ\µ¼mék^4çèY/ÃüÁ4I­Ü© =X]U=µ˜ƒ1†}VΞ—Kô·¯Š½îJ¹ûÝ'š‰'龊¿lµ^׃r0PÎr‰ÍØ­•/°†V{ìæc —æý”ÃÎÀÓÚáoÞn4c>ŽFõOÞÇœ±ræ&؃£Ýưvt]÷»kë&»£æÙáòüºø[ô_Í=ø7øF/ÙkŽÛ‹Áºàà•jŸ‘i28Ø-º«¦v¤Ö<¬ÉüÁë±{gRª ø\àÖIðáYzój¦„·ºóáÂpV^WÒí^ÍwþÎwó?ùã'†,öãü7Ðï“ír‹[î†ù-Œg8(GÝÕð4ØcMŒ]'©nÇàÍMÁ*ëu[0ž~:ú=˜w ƒ1ëÁÝ»S/ëFóHø[ø Æ¢›y6hŠOñk”qºòþ^ÿ>ðª#Æùð«æ~>æé»à´ûË-²ê©¾ËäÇ·xƒ®·ŸaÅh¬äj~ׄÚÈ 1¿3éo/ˆÑÍÇO‡™HÓxfz:×ójÓÙ¾É(Ì1fZ¢þ`2άò±y±i—Õd½TUî,D/Y?*úiüy?fÔ—ä×Ãð¦RŒ-Á¬âH‘X½Òh‰©N{}V ŒbA‹ó6.L¦ýÛ¥ŒjçÕI¨a}œæñ%3Ÿ¨–‰”¯Š)¢(‰âäWÉ ÒªÂ‰Ø°Tæ÷ ²^]byÙYF"ËZwjmzÍÒ™Ë\…ú§©D4­èéɨWu¼!LÔÅIIää"¿ŠÞ9û{ƒ)+°#[—ÛK’~¥lô,ÚÓÞ6”rhÃ9 Lø’ñWï˜X°’ñ¢)æoÓ?¨tÅúúòŒí¤oí ô ž¬D×ãô]jÞÀÎaMñ­è½úák›4fVN2ª¤¼ü^²ZU¬>öbm¹#¼gõuf¬üjÇØR‹yʇ1Zû°«cŽÁ>½gcúû*0t×Ëò«4ÉÃ÷ŒVc©@åÆ*À1õ,j¾óaSÅ~(bUö7›€WÅa~¦U¹$ÓWôçìT„p“­‘ûƒø«¹ãnÀ©Ò­>†mÈø†~`s¯cÇöÂj§±MÔKþ”^nõs¯fÅNS~¥Z(sb/„£Ü¶°2ú_ÇyßÝMqÇÍ)yÀ¥Æ+ÄO†uí|¹=~Ñ„=ØYv›Cöí`gðºUUÛæ9™*ª:Õ+l+,á<Ø7‘^_Fp.bV Ç[K›æZª÷ƒZg%ðêÞp0­©ÅÝïϹù¦´¼ï[ú¿üQÿ_“BÿÕ4×Û2ívÃý Ú2f¯q…/ଫ‹Qé/¥Wª¶¥–éæìµÅ[ê£ùT,†ód3ff&ëý—zÈZ•耿ˆ—ô+U{öàÉuÅç÷¸ ¾²oãoÒÿ¼ë úÛ¬ÚO÷˜j±#¶ Ö†úù‡›o0çZ³c3㯚ҢYŒõq/õEÕ[¤c?ÀD5g0úKwùVÓßž‹Mä}úï»úzŒ½<{pb,ÒVj@ÿUú¯ËshãUÇ»y5©øíH`vibH6yV*½K‘o<Ò6(†”£2V¤ZŒv™Ö}¨@ïUqZv•‰ij)g|{EúÀ3©Ž›NÎéf¥&øX¶IIÄae°ŸÅøW…ù—™£]‚•*Š$ô¬Š'""ÿUý„—?±ùµø©,Æp'¿*Âl¡tÞ¦Ð#W€<³q3•\t2vùõ`¤…™Gð4g]cqÛ“êS¦€™b2¥¥œa;ÿ›Xg°ž× sZÞ–Ý¢ölw3^T«Z稦Ù.OKT×¾ ÎÎ=°+[cOfK;Ú¡ƒÌj™(8w{Ás:á¼Õ3åSÖ^“|žM+m¶­c—Xå¤ï™:2ñWéæª|…ï]ûÀ|`7™ æD™dMDsšêÈÛ"Hýì½ý…=¨–g?`Ö{XKõŒf–l3Gµ> ¾~ aQ9B¿S-ð«Ï˜ï¬ë“d øU'¬Ì¹ò™eÿ#¿üÐz…VŽÃÚ¼OíÔ ¬Zßù2V™F¾©þ•ò«ÞX_Íñ^Õ/ÐxƒJF=ªÊêñJÛ3òw÷ªØ‹.Ûmuߨ=!¾šÿȪÖòv×ßþmv½ñÉ ø¾õ¯ºâͧ0wª?Ž^•—ñßÖ¬?8óÑïüÖÜŠ•^ÿΧëg¾G‹›ceV6·Åž‡¹åa J®ËñMÜ$w üj¿ËŽÿ㟠«ÛeòjüyW1ÞÀw¿:~õxð–ÕXµæE¹Sfò,h¥Q0 ±«õþS£6{áì™Dý«|à½Ö¤z™·©­pŠßB=ä%á|¢-ìÁíÀŽ¥°õ¯ùÇ¿ââ|»ÇOóuõ°< ³`÷kÜ?RÚ<*ûœs/b¯VÂ8ö‘JV•ëãùuxWwã’T¹!#fÃnø×5Áì¿¿j4=| Lk0"¿»Zþ.ÿÓœ©Ü_ ¸¹c÷upÞÅü]VõQVƒÿ²yô%7Æ:xs§;n9æ¯'zU+Zë;÷ÅJÈâm\{ìÆaÜ©ªSX®ëͦ—½CÏ(3Çö¨õ8ðjylã”_-Ä’x‹W}*NS‚UF*á”ÇÜve™(9‹{…i™%‘d\h9²ªdª_e™¨2M6­²2l§F§Vg~²ªìEŠI‰øöš&Ò­Ê$ÓHanu:ñ%Š¿*@ž—C>ÝKFµºrXI¶„‰jÍg&¢,’¨DX‡oJfÜBUò«BäWEXßYãK«²’™£ï*Î;´ ‹°5jëÍFÇH*V”ÆJoŽùVŸXg“,yÒ‹^´ uÁ¯Ôãv…Õ êˆFÿk-ªK²UŠÐu'xÄ(Þ-Ö1‹åjÑı·Àt¤q¸/æZñJ±r‚Y(md4ãóâíû|¶q¾©j—VÏeöy)c7Y=wÞ4Y2Àv÷¿äUì€X÷ð‚y›ñ¢Š¥šAÉy´è^ \{<ë6œ¹}ñ]M¬¤¾`oñ½ª´\*(Éài£yÚ sÔž–àTÆóµÆ~Öz©gä}üuG³!vüj3íÁZ°+û3v<ž?Öu±¬úáSÏh& Xq+êñÀºÕûÁxûëD¯žXÓ1cZ¢3¬hÕ®‰µ{f¢“ùˆ]ý-oŽt+ÃZŒgHñ5ÝHê_r¯øO€WU`ïŠÿו‹7÷íå€y üêÅàm[Ïúðj¢ ¡rLcXKK¨/5ƒþ+‰<ë°/õž›¯N±*s¶™®u—ÃÅáõNþ˜[ë?v Á&¿ðý~«_/õ·øy®/øÕF™ {°?ë–¿Úí÷*ðGýWÝ¥¨ÂjŒ£Ð§…ÔeP-ý6ª ‰ñ4Ú÷wdþàó,ìÁкf?ì?»Ú¤>&_ïòŸ;U³ØîÞó%|ð«Zæ‹à gýí¶"uùJÆž²õ‰ ú–säWÅÈéúã_UKšc†£Çð~°$úÝ­H'#Y»ü!+­Ÿ}16–6ÒàÕŸOŽñ ©Û›e4F¨V߬ԗA­”¾¼³Óú{ch˜J-̫ɠª8í¬¨jMQúÛ•3ÔcÜ}o ËSß*“Ñù„tÚXu€XÅþ®òŒÓŠÔ^âÓ‘æU‘DÌiñ§UâK0Z?ÊÇÉ0Q®Hóʳ^X9zé£(Ôl"‹¢…ÞÔ¤óoÒÙö²D½,¶>‡õ&T;¢¶É¢=éÈL0¬" Ô,;ø=¬µý¼(ƒ³¶ãÛã¬ËœOŸy!¬Ä˜´–s´£¯1¾=_”1¶ÌÖïmn—FÌÇ)ˆ5´^Nೊ¬ÝXÏ«[¹ÎgÓÑfIËQÙì’Í´o3ÕíÖK6«ìypþ5Vÿþc´§›í%¥Ð6c?7—Ì›’FÿÕ»víÁt­{Äm[2ì×GW†±¬û°âJÉ*Z¡­`ÉÅ«KUà-`C«ðu>°w³ å梾é †>˜#ª ·H×;œ‡ñ˜d–J°½ÍROyÏ–íÃ_hŽíh ÆŒ_uàÇ[°žrä?ÇxÄ%Ez`ç4û´ºg[æ©ßНjálP»²}c[#¸(ö¬+ {ð;Õ–,_öà<«‹«aKËæ +fü8ñjve+|þ0Κ<ÞLƒy8ÙÏ´èÉßÊ(ñœgö4?‘–ÄŠº;öx8šú¢kL]ìÌÆn°{Å|,ï»[üÿ<ðj©Š¿êªÅ»û²Çv æu™€¹«Æz©+DõÐ#­r­Z7uY+Hk&ô@ ¶bíO˜œÖ*»˜ùíî‹pQ88×Û?ë6Û,4åXGúü1|½ÑO¿éwË:™éî‚e¸ÍýQ_)¸BUV®ü¯-WE‘ªú«uŒÔÏÞsÑͨª{ ¼mðj3£ió€c‡ÅÝÿ˜¶œ.Íç_ 4i`TÛü7® >·Ç}á«ø¦¬çõupÇü,« ˜‚àWõY“XÕKߢ¿¸ kWÁø6Ä^˜¦¢9¼­oƒ7ö ûQÅÕ*h²Š¦¹ýOl}M“€W | úʘ^±‡b·QXõ–3²ª>Ûxåký×é ~’qŸÀ7ÓDUSig%%Eýê9xR¹Y±*‹;<…17Ey;ž’ˆ(cþ­ïœI¯V shëškÇ&Dº Řõ“nRw–…9‚Ñ; iŽGIF/ÅyÍ‘žŒÞÖ!ŒÓÒ«ÌIÏXÌLjl©W½"c<­ÒÄ¡Þ'fƒ 2ní˜Æþ Ó°{êb¬“¨UÕZjIþü6XJ=åuöå0ï{À™ô=ûÌù^–‰"ëufœÔ B?áNpª~&Êq®Û°3¹¤fäH¶º›i,­d(Gel¥¶˜oíå]Àž_¤=Çc£MµÀ¯ŠÐ̓ᶳè ü(ÿ˜oÌÛäZßšK°Ó¬®“@´¤FVYikEÿpÎûØ4%p v1#ƒ€Xªß¾ ko'=÷a}PV¹¾ÄÜOv–h”ÏðÌ÷Ã;ÑöÁæic7ØíR…öà)pš@œÞ`^Z~5+FwÇÏÿÀºÕŒØo`‡=î“r#þR?©u—P¿¡%FêISÞ~#g™3ö wÝ/øû2’í‹x &a÷Ïql!¹/ès÷30‹nT!Pvvü¸!¾Ÿ‚O¼Ûvk’ŽÃO{`ÿ65¿`<›°¶Ø|œLCÌÀ«ÆäßKcǾîá°6zQÎb}ç§Ì·ò [äŽ_ óìb™ÿËU7ö½W¯Úï‚Á7¶Öã]æd8vµfÍRÿöêrÌn.3çºã/ô´;Z³ƒøy«ìf£õ©o ÷»Wc€0­üq·×äæ{þðCü—þ¼çÒ? x5Îï•Ge¶›ïºÂü³ºQÞp…c¥”ÀhåÊ2oËf·À›±ª‡ÞáèõèñÌk{ÌOp·’À«æØë‡À§B߯oÁê, {0S£Br¿úÒ¾øUEãc1*“­f°¬7UcGmczZ`¦/ЧœÅº@ª]£ÑôzW<óMoŒæ˜w宂µ Ñ™´ËØçbS¸³'˜EþVð+E‹‡MŸØƒÌƒNÇ j"³W ç~#¬Ô,z«kàëEÌtQ_z[꺫ߪï 'â¿sh—%S›´ ³£SÈJŠòîQc ʱ>N )X©g#ªÛUš „Eè+Òz^Õñðйx?˜Ä¸ü¢ôßGJ6åÑ£iôaEuËÒ,ʪ æÑ%Šª.Dj G ÍšÏT€5R‹’›i½‰djd0¶!~«8ëæ +… ÍXOû‰©æNŒ}Kr9ðiHÏ‚Xë×LOy“øs3³Ø¡Ÿ>n>”d­( 2÷&òUóg-˜|gbW{`ÛjiC`Ìè5üDß^¼«&ðJy¯*rwÆ WÛ­¦ŠÛ.Œ1Ûk¿—†v#õ®`ß`{ŠFìþ)ƒo]§oL©`‰‰[夿™þÁ϶%mÀ®²ÕV <¹Ö^Øe%z«šçP¹ #E¶]¶ñ”9 &pÕ¼ˆ¹¨‹ó;ìÁqR+m˜Ùäð6¬Ò1f´,z®4=bžÝCe³™XµC€l=ÒOüŽ–Q} ÃT`W2zßµ;Eëã¨_á6f>7ÃOOš’°_ÇZén¦ÄžwqwØ]ѬaIÅYŸ ¼aÆ»?$]î ú¢Åï¡­°Ûòþï)Œ\cý$þÿ Æq,³à'c×ö¹Ó|jZXÿÞÉ;¯Ðûæ¬M²&v8äž •SWvWÜ7Ð=g¾”WÝX_*~2¬mÉÚøAW:Þxµß|a¿ Ö_Ñuȼ%ä:ìIµþ}ƒƒ/EßuýWF{îiҦ¬£üêEôY+$ß®wÂeá´¬­ÜíóïºY¦ª|æÂ=á÷‚oðãýd°ª½ò€Ü ~ÕÓoqÆ–Ö¬TgÝ @H@ª)ŸI_Þ&Œ$¿jM;s«~Á àúX¼}pc>Ú7Úì ¯„¿1›iìAãÛ¯úš¿]Ž_æ/;µªw¹Ï€WÕ¼æ^ >v×ÜHð«J {Ѷàý[+pØ·ÑkõÑìÄ{z`-äáçÓ5ëƒzÈeC®wÈjÑ4`®ê4òœ¥¦ª=EìR~5Å7"n27Å^ˆÍ RT4 åvò¢ì[WÞÙ©ÆrKô¡(#ôëŒñL5‘þUF‚_Eºš¯WµæKaï§Q9¹$™Qjˆ¤™¢‰ü»ÌröüyZfºO5 ¬w~2™Z!~¢`"z!R»ÒØÖ²T¡ŠtfÒŒH5J‹3¾=θÑbäWê«‹¢ú8Éxzúè’èãÊdä‚3©ôÿ§›€¼*žÈ£Ž2{ÒL¤ü׳±#ñ7ÍamMWk“%Ò\ðìÀ&Ô¿*h¾Ç|­é5×ä‚l"^ 4«¤1ø‹bZy³?ïÃwvuõ>,E=SFj~!l=å–M(Í€‡ÊoŸÂœ7úO§?­ªýÞ«øú¸=!É`4ÊÁŒT^õEè_å2vÞ»¢ÖúeS8Xk’­r×oMûàŠm&êk-OÙ¼  ë=F{p­Q½êvÀ¨óXÓÕ™ù¹Å¼ œÒê—»±Çþ—Äß4ŸÃ/ípQ…]@Áiá ì±f–t´»í6)ÇȦWp¾ngNÊMT”YÇ÷ÁæMSD°šÅÏÀ‘L!Qïh#ð÷Ì£t!õ¯:`÷üÇ䨋r+«ƒ;â®…ûÀ¯Ú=¤ûÞS0Þwº†6EÖƒ1›çÑ&åWªÓ({ñkþê(ž5xXëz*kÅ4AïÖ37$ÊwîŒÑÚŸfb¿Ï‡=8ÔÝÖÅl–tW]ëóƒìqßúýɰ¾Ý('⟺rñz~€4ßÂüOð6ìAõÝ•»0w¹Ø“u1o X‡o*P»6ÚR ïYƒ¿)E}âûÐó›Œúgð¤®p_†KÂá`Dm€Wü›nzûoí?ö÷ùǰîVøQþ&7ÄͲØÍu¨ß^Öl—g]¨Þ¿.àçß0,½ÏÃi§õRÛÉG`LJ‚׌Áün¡g´1ðáÑ0ÉVª0ë?qâsý*ÌVª/çWø/œêŽ*^•òeaÖ6W‚Ë.îdz¾ó& xåÎäãóçWz ¶½W=SõlÝ n»ë “¾ ­…Û•žèzZ™So¬°–šÊöPlw÷ s“ïïÐ.;hn=[J¶T ûåÎDŒAi´»‰êÿà ´„lJk„µÇNË¢ÝUœ¨”š`@E¶Zí»ÒŒ×LJÔ—H£íV†ñåá•Å8ýj´úÊ1ò©8Q"“÷›I‰ÂòŸÈÒŒ¢F‹4O2ª‘Â''‘•`­®lFNe&Þ³±^ëóžOýêÙ¼ˆ¢¸Š… òN°"#Æ\B 9ŠÍð&9¹¯7޹­1°’دiÌóPŒn ª!ýHI°ÿ>1½yׯšÃ˜£é„ûl¡»Ÿ™ ~5†ý« æþ˜t¥ýØÎ´’ý@2űNZÿ+Fç´¢éDûöAzJÒ2žejÚ‚¶-Ú‡ìq©o×[屘t™@ÿU’ùK>G‹ža|ûæ7ûðJïyt ®Úæ¢gGGyÐV ß6`Å”íxofÀœG«´:[êɬÃ×ø«ÕÆË«˜ƒÊ8áÞÿ°ƒ%ûm…2ÊðFjxζv¯]-•±Õ\‹Oé ;ku³%ªa}½†¶¢*ß÷8o‡E؃‘H«EÚ˜5·g0g£ öùQæw_À̶Áª={ðû {§¾öý5; H´Íµ°² xUˆÓxp ³™›ÀšT~Õû¡«yüj0íÜÉøiwü4£³ÈV _-ÄØ÷ã»ïÕ.[cGÃñîë¥VÛèïÆ‚_ý {pº¿æ_síJy.~Ê5Ž7ñ}€W?Ø‹ÁÉà[«÷ª÷˜³2“¾£6øn¾V£Åʹ}¯¦y§èç2ì_U·h¼¨ ¬8 NÙƒKÁ¯>ׇ0Þ}ýÜvÿ!ìÁ\¹êëÂ|Ø?aÊÉ60ØÀþ!Y/ëÝ×ÝowW¤ŒÙ*ÀÔJÑZ×£Ž|*Èn®Ç;ça†T»pãÌ4ׯVãVf ÌÁ8Ï¿*è~Âìjó;ï›ûµÊR¼Æ‹~K{p¯ûüª“×x‰_‚×Ws¬²˜åÀ«£ŒoÏàíÁëœÃ8Ëê‘9kÕLô¿%Þ¨|©4ygîj­>­v‡r” ˜ë±ôÜ`û›}½Ý˜›coÅæÅT‡Ý±Œ~ï4rô^äEZ‹f0ÞœÉX«²8±zñf1™ì)Š­JOdöäa%Ff²Ê{+{e°m¥Ð²" ?x6ýE•ˆs¥ˆiÅÈ©Š3¯0ƒ +=7©&ÊqŽ*H¤˜Hµ´8yHä[â4g©4íÐ8ý÷Ùä}Ê»êbÔ áÔÆ®FœdV¾Éb|i¤'£•6BVÈ)Èç:Z‡E·›éØ ÏÁþ?@„.¯áQ˱‘‰I-à•bÎ,ó¾i¼JeŒÓà¼Æ Æy~U.Ê£¢š®}Ì]R{BG®!lã¬ÑǾɗ¥.ýí]pæ} dÒwÀ9RZ&rðJ{ü‘)/ã€WjÇþ{ð[¼[£ã.›«vðJÿæOÓ3øÎÖ¿m-Û²Á5ZÌ; e5ÆWqq«ùû¬FF}ü/±ÆM50Ìm&”ÿâ§5±b> ¿µãEã”7¨þ¨'ô3BšØµvøU+Þx݅ݨUšç¢ß#€lz:ކ¥øUÌU[oÚ”&2ã¹}¬Ó :VÒ ü«w\ ±“›ØÏå-j„¬Œ½ë2Ý“îOÍ⤞Ì/vfh·«n¯šýAo¬ü·qrw0Z¿µ->ýøD}ŒëxŒç Fµ…Qõ‘i°R†áiŒjjI>=ë5B½2Z¥YÊKLQûPl(wösƒ¿Ë7à3¯NÅn&.¡g2Ÿz2êWi‡}é¨WÂc䔿ïdžNäkÏ"†e&ü@Q%÷$z‚²éiJcœ@©„oJ#ÈSèÏWë¤2«~EØS’þù‚¼OlÀºÉÿë˜a¢ÊK+Å}±(B¾‘Â'G§â»è]ú7¥‹Uqõ©p“Î8ö’ÔP,ÌDõU5úµJ‚_%³%˜ï\£—DtƒwƒÙDoV)¬3õâj›˜ÂR–5# awüŠ]{š-($7á¼ÉÕÂy̼#ÏÑLÁZ'ê}T[¬Y ëH\mjÈR—vn;ìØÂŒ­JÇ{»K}ÎþßýÕL •ù8•­±ÝˆØ+ÁÞÊ$ôE?4•e˜í-êŸüKŒ|¼Jg<ÃgÀ+gÓËÚ+øÒæS'¹³Î À«÷a‡–ÆVÇNºt·Çý£X ~UÊÿio0ÍB××þf6¯ª™3`S=˜Û¢õ›áIª5=||w$ó}¯º1û d ®Ê;°Þ;˜ÿaR¿}9øU_·‡þ«òî7—æ®wGÍ»Œ¿zÃk>Îr!þº+ÃxÑÍe{.x*¸¼Ò‹óàW×ÑT%—ôQÍ5êýnÆÏ«x£ÐƒUbë¯^DënÁ_—17„óÝÑpY88×€zȹ9Àž/}kÿ«ßê÷šLYægø)®‹@vË ·ÀõóëœØªæ؃;.£tUä™Â¬ññ˜Á¹ô·wÄ Ñã¬uýÚaNôFD•¬µfë±0æ”Ý·30ß¹¶× ©¾,ìÁ×êµîqgÁ¯šùÝÿgœó³±öjažêÉä×õ1gñ­·«ê/’‰ÞÝŽ7Ž~*ÕGË5ý˜{¢j‘¾h&Xi»/6„k{¢™„nË»òÃfðêÞ²Õ4me1ëȧ²vx·„g¼$z¹0¡k\(9h”CìH£U–Îõ¨®—"G)꺔IDT$J£=¨JÇ•¨XœU2k$rvÊ&ôsÔKi-GÑ ©&ÊŒbÝ 9r½ZžžH×Om¸ÒÌjêMæMaZuª#kþ­ï¬êWå‰GÅ>.O˵ZÕµ¼÷!}bQTE’‰ê™¾€“ñ¾„mÛVF2s) ÜP®5 »³¥¼ÆÑø\–:c5aùÈYy€|¦Ÿ¹¨4*1G‹À¯:ñæ »i*_Jn5Þ»%s Ú˜’'#éËÚ,P}=S暺àWè3ÜiKNB_ô#“!“€!šåô›¼ÆwšuÄ>5¿Û&Nû¯¦wð¹Í¯Vò„­üÁú#µÂ øUaô³-lßKx[.óTwbmeÍÓñÿÔëË5-äõð';Zªc­>`ªËàðNœÄÃÍRÍnµŠÆÄ]ĸmši–Ö­è—âU9¬ÓÁ«@zcä[K§ Šî¤ú`cÃYQF•Mg`^òX‹è˜©hŸ“·±»™e±×]²Û«Eëãdc'ý ¼`v¸Êöš¹+P5‚÷Xt:±.m˜Æ¯ÑØyª‰7Šñó“ßÞˆü‡ÑZzÕñ¹Û©™ô °¦µ<Çž ¸aE½'p_¹"nŒS}ëGŸø3a»\ŽÇ÷¸Úñj°ï3ì{À«—lc3OÊ œeyà$Zßyë9,3Z¿§Þ5 Lb-²°ÈTƒó%´m.ƾ¸Þî^ o G)s^íðÝ\pð_|®ÿÔßç÷Ã\ïGÂ>¼Òz \¿Á]¿Ú%»ÜßáëÀhŒ+!ßÈ(²ÇIX³w`†àßIŒšiŠýÙ£±ˆÕÞ¾æp˜á®â7Ì.ÿ_…ù8©¾¦_îßtª¾³ÝÃO[ø;€±ßgÁ¯Ô,Ìÿ3xˆñízÞ 6o`þõ~y'¿ÓZ}EŒªÂͦ”dv\s<¡;÷y#´¢¡™ÂÛ÷ ¦ìÁaôO6“a·&{ØtŽŒM§]Vû%«²ñÁ ©Ê˜éÛX±9 ëlV\ æò§Q¹*ÕDUK#T9ŒQ­ä¨–MY|åA—e>r9zÅŠ²Der§¨:`&ÙT´º.­}Z6m»B&RDÎ" LeŽtI©‹¦S˜õ§¾¯ÈßîM£j‹$2ÿÓ•A+­ ýþ)ôœEŽ÷ƒÕÑÎ~UÕ‰Ó,ÀÛ‡$¶a NܪrÉ›KõI4&nt/O¡^_óðXÒiŽÿU ûS‡>íWÌ59)Dcj{›y¢Ú‹Êý›írYÚ²Ç]mK.™cKÌgš´b ¼*ƒý²:öŽ+äu¿ã]-¥¨¯îcÆ .så`>tÀgUOF=ü-ð÷a™L&îÅ)~¨0 (VßM×'ào>À.R…À†À«¡@¾¯¨(‘ÍxÑcáX÷ýWÕݯ®º鎘÷e?p¢|ü¹°½WvÇ¿ªG~õ•};8| ~•„{Y&Èõ¬?Xo˜I•§ùÔŽo¯5vöVŒv7´aðy Úö"õìJ™‰áRw2\ŽÃx5õ/Á< ¼ª"?'~÷gýS”úí³Ü¿MÂœë†øeÎÚ³Uw×B¬†y,/ÖŽ£w Þ©6\Vµm‡5—·w‡×Üfxspì™°€»ÂüÇýû®Fw˜X’/ïWÃì€3Bó«‚çÍÁùõø•õ·ØâôÐ%_5bÝy>Ë8€r¹:Àæ|Öœ <™ÔN¥mÕ„UÕ—T›öà4bÂ&SÍþ76„È2ÖLôS|;Æ2WÓÇ^Í´^U"O¨‚vô'/ÊbæÄâÿWí‰ñÎfDyQú ›¨æDrB»/…YY<­SoWŽŸÌf>rT/Y}^X¥cÆ¢¨‡dÞªÿ-™9¼&-_•L_[Þb¦±MÈVˆºšÛ˜”È4*ÎüÁ#Õóòæ_mÑB‰|œl¾#ƒ÷àã1«j§ª=Ø3ªžøVÆI)éB<œe>1 WÚ¢_ð7·šZŒ¿:b{DfýÁžæ6àÕP¾£.¸Öyâ•æõ4’ ÒŒöèuZm^²ßýÍ@i+#Ø›ÝôÉlà\Ï55íßÔ“É^½)¥ì:«¾ú &E†Øn¢çÂù;/dŒèæˆÝ~¥¸öà‡¶²èiÐTŽØÁ¼ËØ¢Ù!²}^ƒ~íê„5¦ Ÿ2Š*ã´»ÐÐß^}}#üÚÞ$•¨áQSö†+°ÿUO¦.øÕ£R{ã-ìÁ;€u5±æçàßáZ¹žuô.¬;Ö]UpÂIÆKéOE¦åÀ ]Éz†h…9Í ® †TÏ—W0ö̦Ø[λW=À3} ÿ5øU'³Ùõ¶Ir_Ðö`tkß‚5…NPÉ]õºƒ)>‡V´`=/õgµv|ûº5í°¦êG`˜y›½öà·3¬^TÝýå*º°´ÎÊýnºï%¬iï%ñgÝÏ>ßwÝæ;û~°ìµ&öè½ø»y2kº7㯴nèd³}¯ˆ¶äbžïF *`Ž5'Ìîζ¹hqŽ™.v/‡sØ•¦þ˜»ßânÇzúÂwñ_øS~—©-kýíþ×Óß/É,7Ï ô»ÜŸ`Ö{¦ÿ„§X{§¹)%ÞNFßÊñîv<}(ú:–ñíª+Õ£± óڳߘúhøwø >×Õìñ—aÖðZÁ¶ j¥?Çz©Û` ×òÝü]˜+À«þ6«+KL¡ØÓ¶÷3<ý ª—•6a¾y]¬¬›Ð‚)˜‡z·Ûá§½LTïFµÐÆò~øÕ£±ôÇ 47ú©¾%c»5­c/ÄÆñïsMàUYúä«Q“>+Á‹f‚7DúÂå0“˜õ¢ü*‡ê›Eû^”{ÔÑ'_Þî r›rŒ:u´U5‹¯*±.‡ý(A{³Æ´ ™“æ æ‘ýDõ¶Š$b33ˆV™ŒßFËa¤ÓgeÚ8¼³>ó =c>K$j@«¢qZ¤ö¤Úw•©µ¥ŸˆüW%x#ÕK-ÄÜœd²©¨þ`!Ú¢…8†C°çãÔT¢ã¤jJ?¡òí?1‡ÊÙ¦›¿L3¹@ÿ ˜³6RYÆyþ.Ûeñª»™-MÍTú¬òÌFùBÚ’‹ö0åiBÖØ ÈXHZpŽú›A2B®çi°Ïl‰U¡¼h.æôé@Ì\gÅÆíFê·_‚Ew½mÉ^ßÉ׿g“̸¬Í‹v¯IbÎŽ•Ág¶‘hjË£¶Q,›rVliY‡qQ¿ÎÃæ[ôK­éÀ«°oôÎî àÍUÞTM=ù(#ÐÚÁfTŸ!ŸjOýу»1êðWpþ^Çx…/qÞ¦¯úáo´_oz’4ßùfv¶¥ß>ßž–71{ýÌÒØË°wÃjiiêKIŸå¯Ù›q>,t©6C6°Îc_vÀ8êý`mâUC´mÞ{\í:ÆkŽA?{P­æJ¢þ Ö»‹¿ù -nÈ̯¹À«¡n;ø•Æ·ÿ઺áî Øƒ¸6þxü0ß®{ãO»¯|5ßC˜OíÁšàœÍÅS7™s2_F3:´:Ðz)Ú5ó7ßuÂ×]`ó¨@˜“°1Fá ½Í0ó³` o‡b÷æùÜvp›LeùŒõqŽú­àMküL?íØ)‡e¦›Ïzl)ó v?‡/&ô¯rÁ¯FQ=uÖ,ØøjÅ·ãý` ¶iÖj;ÌS=ŒØaà•Æ_µ…=xXTÛoÄijau¯¿ÒzÌ;Ük¾´oÂ|翃׀i7ZõÜmJÆ^¶µ™-ÓŒêj ª2E}œA 0¢™°QáÄMŸOEjŽuä>¯E/À$îÆ¦=Ì[½f¬å›±¢é1Ó.v 6“ØS;íì[å4Š„£yWÿíK(º×/…>ÌOÄ·—bLf*£RhÅ$Óò+ƒ>çðæ°==%\¨$#×+3âI#Ë2?1•Š2ey/©Ì+Œêà¤ÐL¦_=ƒZ ‘^»ÆD”OTÙ)B?T cDKQ_«yK#2MTÏ«Æ%ƒ7IŒA¬ÆØÑ"¬Y­‰žZñÿõ¯ÒxKXèÿó³Ø.Õ ;¶º›x^‚œMÈÂ:Á*J¡JõÛ“¤…œa›Ã_ßeª‰Þ.œ6ß˳²\rhWN’Z8I•ûÕ7ËäiÏgvÁ~?³Xùd+Í £¶L*ž9S:ËT2Î'Á=:cg©×n©cÿ‘æDí{WÅì*«cr ïì ¼Òο€WW±zÇú9owš4«våoæºàÛŠþ´<Ùië%D=ˆÛ±š²eZ<{èØ’ê‘­@/ûY=ç ;j¿ƒm•b†ü×°ç1p±&³Â…ô†L•Åv!ðJ}éÏàooÇç«点 C˵¦`W؃¯cU¬]Š9ñÒ §Bð¸>ôdjLÜíø=NR|wÌÔ°'1¶eT¡5öªKq¸¯Õ‹()Ø;ßÙ™@™Ü똋ÃÀ+µCó†^íÁàT#ß0ž{ŽQ¢ Z:ímƒ¯¿¦ŽúöoÅïb´öc~Kb¿/ˆ 'ºÝaUpÎjî3×À tO™Wä pâÆø‘0×®•Åñ%î¯z2{Í%ûC°5xÓÖ 'îu™-½ðÔfŒ]ˆ~ÌÄ4žµ=Ì‹ÐCE`U­É€¨ÉXÞÜÎqo_W¥ÿ_·ö`eùÚwòú—€Wed“ïç€_í¢¾è\w½ßêbÀ«¨/zX¨Ì·Ž$ÛØÌÌä=Tƒìbf0ÂJõˆëcîÃ?z?X3ñtøWø;>×Äì>%ùŠ~)0àOWüê¬ë„Ï+¿ªàÛú;0¶W‚·0uÓl ôr¹)û/ë;7À¸0¯±rM0ÊÆŒ‰m€ßÌÆÈNQ½3£ê­hÉ¥±J¨ª,ÞÈz[ë€WOƒ_©­7ÂŒò7øF¼%ÙÛKÞUËt¿ªÀ¿©ÆêÕ¥‰Zƒþæ ¦Q;ûFª¹d,@6=W…ùw©Ä«dÆ«—7‘ zzµSÉnÊà™iøM&ýðµxŸE*Td&³ÚA9Ôý·¢N!UtNNDvæs 1ž53£šÌ=í™YÊ\ŽúÆY¼ÙSû¨ó,2MTï¾4c«“¨!S‚ …UŽ5tBÞdƉµžø–I>¨}È[¥­´S³1ŠZ…AÛÖ–LU`KßþPÿ9àoØ ËÁߵݧÍ7òŽ,büU/ð+õÞ(š×2Kå$¾Sž¨7]OHmö§µjlHcfy÷ƒýØUF³»±ßÚáôÑx°Ûa¥ÚîŒ3[kŸ–êàW:Á.dÛó.ÒØËÀ™?E™ê÷æ„ÝaŠ2þê3,x×ÖçÆòŒmXÚ»€Wɲo‚öì1âìÓ¼•Æà–'ÀêóÑ2­LG5~¤¥¼^´÷ÀÌ7«°/¦…÷‘†š‘2ÑηDoµ5z`!N¼Z˜oõÜh¼¶ªå4ïÄz®ƒ÷L41)$ƒð^ÕŠï‡uÞ˜S Ÿ¨Ž‘îŒQ~Ñ”µ‡äU¬#¬ÇØ)WÌ=ä~Þk&%|®¿l§c÷¯sSlŽì®s½ˆ§4§~{;ì×Xk¯-ÞÓ êØ¡™s v®ú·~ÂþÍ£¦ÞÞuRo£vú¯ž ¯s[Ã\=}`ÖrÃÜQóš<‰…V'~öàJ9?å$ž {p£yϾ<œµªvy[n‡•[½© ö±È¨Åœµh ƨͤBN+°Ê\üîàûÝõªfv¸Â½΃=¸xuÜíö_:àõd’â'ý}&SÖùiþ6XÛå™~5Þïv¼Ú!OÀ^~x¥Y®•%üª¾…‘Ð|U¯¿ÿïÈœîæXmÛ0»MÁÇâ”=þ­Öø øU:xã2Œ‰ê¸¯Æ÷Zv‡;ÇxÑ9øÌïÀ«x•ô¹×=Ãøöª´:_@ŸTwh-ÞÞ•u3p‚ŒÄ\Œ'÷Pý«êøN×mf3Î2ši¼Ú´²cƒha 2Óý­À+UJxÚ”Ž­%¿ReÏ–2Ÿ1çê}n®œEÛ¤$VÖ,FS¦mFÇ"™"¼ŒòZþ­îœÊøö’Œ~HâM^q¶Fµ”ë­:Lï~]*%Dù ‰H®dæJ×&“ŠÔb¢J¥©‰xTeb5P‚Š©‰è¬‚ô(y¬„Èg6ñ)zsØÉ´|ƨ{¬_Ìy—ãr{c‰i.:JgµÈFQͱf9èz¾£ªY(¯2g0E³GäXŠŠÛ4žNZòþµ)žØ^Ð>}ˆqq‹Ù“…¦©½ÆZ«…`¾&Uíj‚s·í ¥éoÛ””+ŒoÿÁ‚=è¬öîÓ68bsY°¥p¡mXÍÍ`/ŸÀxÖ†å)îg؃U1Ÿ‹M(÷†wàÁ¯®³»ì2؃ÕÌØ÷àd¬dšÊz©[0ÍAga)öf}ËŸ°k­$Iwú÷ïÇ_•gvL ´G1O£V˜Jö‚\Æg‡š%±ç±w¹ïÕc,™>Çÿlçbm.vmmey(è‚u¤Z€ª„Ô”‘rû`嵡"]OsØ7=Ñê;w¿:â÷Ùrþ²öÕBÌm/ Ý!Ö£¯iLJ¹½amœ>€WuÜP÷_ó¼lp?ûñsaž½[¦Ä¿q.^Ï7GÌ'öýà`pxUÈsZfÊ<¥‹V®À?Ma‡­Äó5³RuS· å1§ªJ‘ 9cŽc·µÂ Œ—ºs°G¢EMüa·öàlSO>ö=ýWþ¿ß”¥~ ýíûpÒÍaþàFwUŠ›ò¸+à2–BïÊÊg2o«›©6Þ¯j§-±VÛQÿª,Þ6 o×ûÁцiæÑðZx…j÷»ý°ø•øË¸¯â—ùw\GŒâ÷XWGð«V&{ÃôclQÖí*{üª8-½¡8%j3x=}s‰ª³? çEYjI5`•ë¨ÞÄxüÕbËÓÄ>»~ ‰fˆìÛ/4}cÇ&ÓßS3¿OÑÝ®µ@)Ò¨—:Ÿž_e!}ñÄ¢¬¾¥¾­â oTáDü•F”¦W-‹û±­Ætr#$( .Îȇ\Ƨ»*°šNã rY°¿Ï¦9=ÁáŠ$ÔR¨¼á[:[Õ‰Ðx‰’´Þ4ß¹§¨“¹)ɤÍ\9‘¡˜•PtvŒ¹*Ý”B°ÛQˆøãø¤8¿ë^q=öl*ó‚†ò,.ÈÜ™êRKzÒç?Ç©B{0ûOÕSZ³Véa0oÍaÑèû±æNüf ?ÛĬ‘¯LT«» £)q£XÈ ¬½hg:ʳf£;vཹÔCNÆY]Çþ mi‹ï°—ågÙlÕó÷-ÖgÛ„õ—|‹3éQ¼?eî·ËLI«3sÕtíø7}å€í~¥y{°j[Ê´—ƒÇƒï¬fŒ¯ÂØÏ­>¯µÖ=5p 8C=ªÊ·Ã ±û /l¬ hß »ªì©·æ¶pƒ»ÞŽ2ËLÿŒ»ß_v7¯þôCýïþ¤ßlÊÉ*?ÝÏvãüyLnuw»Þ~³ lq3Öê÷á~ô¾†êˆÉ碕PÒ‡7ƒ †m©´33Zs4k{7NihÓæ@øOJÛí?qÅ|k/ZXÐ×õûý»®5°w#6\ _ß«·òÏàœ üäWX™±“Vï‰êá7šï\—9ðý4ÖU+Œ÷ÏC¯gð¶«,«´ã¾ÌÅÚV›î½5¦&ìÁëŒ*¶L2·ø¹¾Œ˜±±WY÷YkUä_•§·¹&ú50±ç³ñÄu‰ ̪ú¸4·”C)µõ²˜[˜LÞÅ3”%ÛK¦å˜CÛ­ ¹S1j`©¾&ãÈJ0¾L"çúy­ÒY„ÉÜýEÌ©üº ¹]¤Ðézž…èƒ*@;4º7,Äš†%x?X€Øªy;ž9;Ù¼¿ŒüíŽ §JJpEGW”ùÍj£iU„ûÉöT™£7ÆH1§­¹dêKòÆؗȯÒÌ—˜£¾¦†(CÛ‹5sJˆbEœÍÓpڨ﫾i#•eÇ¡+xÔ|éC^ØËÜj~ǪVWsóÐb4YçNü¿Ö¯feßjZØ¥#o>ÖÙ!Rß®³Š]¿ƒ· ·5h~"EäAóëò¤HÇàsÓÌjôîצ`Ð9˜KÿUyÇ ®q¼vaÕæÊ9ŒµÞ]눪æ3"a/#”À&þÊFCL{‰¹ÿÙR}] Ü>.À lhšÀB>/‡Eï™_ÅHM“ªŠŸ÷ žš£·ž`UŸ€qUÃêú;;I.á÷3[èÉhÂL„‰ø\p„6xBuð«7°¶˜E± ®´Ûä~Fë:J®¯í?µ7߸–6M¶=𙳼œƒÿêýß>î—¶`3=1Ÿ±ÎP]´e$þQ5b+w`¿æ2¿N#¹^¦}¦:]Ëbo‡“Ü£auX;u]šïäz¸gÌûrÀOˆ¿¶¶óå‘xŸ/ëódŸùÕ ŽŸÛ<â€Ö£†'ub,äl¼s2X÷`ÎFûb.5^TõúÖ0Æà«stÇι%Üã^ §‡×á é쟆=x üª…|ïûø ~Èï3µe£ïïgºëüÙ+ Ý7ü*°å‰W1wBýßZkV~Ç«m4J¹6F¤=Uo>tÅœ”Ãè\9ÙŒ6j=è›ÌÁð‡ð@²¦f³ÿÞ¥ø¦‰ûÁR~“ÿö`có ¸eiXáóÑæ?‚õ ¬VbXb’cÏY­[¬ÑýÌiæ¹ÕÀêé†qÖ Æ4ì¡Møz ‘¥+õ!'iˆ^×f^a*V@I»*6†7f“Í,»o ÔIg>αÉôå€ÁÑ•A{0})’Ø›+0‡‘©,ž7‘¬*òDg gyÛ¿•‹1"³ ½BYŒÈ¢¦$zåÕhdU]ÖHUë«,uÔKýä0g+RžÊ `!²­ŒD>пµSs˜k“n"}†dúšÔ¾,F5‡ô^ešH§´ÞU1ñ´4F·#&&¦e&î+ÑJŒâ¯Ò]ȳ‰Ä·°á f~Ö”*°5Wå;YÅ:€ýMi‡YÓx­êf–œF©½ÜÆL”£Ò™·Z‡ïoüW±«xÿ›Ì«J†=ÕhÓh´5¦%¬À¾­MÖÛ v»UOâÏ&.lSÑêŽWå/Xr¡UÌ|×42%¬b×Gft0&è$Ê{É);(Hc=è­¹"¡Zø,¼öeE•¾àWZ=üìäÿ™ÿ¢5PŸ‡?Ù‘R c±(v}8+x¸¹^ÎÈ{H´Êï{XµëͳTÿ½žµ„×`}¨òE`ÊÍFcç5 ­ÖÇÑXú¡Tx×x½»x£ì› ör–ù¬[bÇÝïáa÷+Ö;FØ—ñ&PeˆÙ®.õúÚëÞÀSúcÆZ`Ç6EëÇõ´2ËÛæSœÚê¿cæâ¯:꽕܎™Ô±Å˜ÛÎæ}Œu>oÍï‰=ög}çeàWW]]7Ì1Çå÷‹ï?¶µódc<ÉÛxeßPvš`ž >c½ÔÕ°oÄœÖÂÙS‰µpôìA }Mò«<¬©øM/Œ¬Öÿ›+ö5¬"­t1#¼Ó½~¥ñ•ü³î>ÿ¡›nÊËGþzÿ¾?ï÷˜"²ÂOð£]x5Û-rý€W┘,¯¸oÂx_CŒsùVÆâmÐwÕôiŽq舑o¤¨‹ýÙ8¶55à&³7ü=,.-©ßþ¡s¾±_«þV_xõµk§Ú‚îàUu?»àZpÆýíÆÚ˜Éå¼ÌcÞp;VNÓÚ 0ÿ Y¹;kïVœ¹ó€BêwÕúpªÊ\w|CÑš›ÈPÖ™Úöxl4Ïýif¾Ÿä[“]ìG+bV™^&攑KáÛ¸ÔˆpÍ, •õ3“¤€½Ç>(ª óyp’ûeö‰j(õ6ï˜sX»ÊÁ~§ñ¢Ög_ÖóêƒUЄúW‹¢¼jìî§pæ^”óT_Y;ê~÷ºŸ0ú %ÝgûÌ`žØÚ³"[ƒÁøÔ+Ü—ª-Ü;SµUô¦ðœ!ïËÆIË‚ch°5ð¬7Ì[²UÆQ“®&°s5sŽ5{¸æµ&Þ¼š·êOZC-¿Ó°ßç¢ïe̸p»ÞŽÃîmâŸrüI7 káßПõ'ü&ê·÷õS\7؃ËÍná×;~u;ø•q»ÖçkgêÊhCÚ3žüª FYíAÕ3Ôœ£°¿7‚õ´@ßóõ<ü:L’Vhó6XTÙ¯ÇÜÅ}Y¿•õqZÀ¼äkúþnX§ñ7ØÎVrì„­ÏX¡¶xê8‘UonF +Ždáù3qâL2‘ö]+êvh|N¬…úØaÊ%îÂ\¿»^êafª¿Î7å½ùaÓ#vx•BVÔgLIÚ’ùT'-N?pIz-‹›J¢×ÓLg4TqÆ`¦Ñ6L6‘gQÆmª—:…^«bŒ8HeŒòÔëKçÛʲ†N2cR‰?ÚþfhwF"‹9ÕDU5/R^.c"íšÒŒ½OåÞ.Lµæ;çûâô±—!ë+À؃:Ô´ˆêPd0^Ô1Î!•Ì.† S ƒÚ}IÿZqÞ”`½ú4Œþ Ì6Æcdâ„hË|ç‚zS-uaƙ㥼Nÿ ó2»?“q¹ßÊßX¹ÙŒ­š&ê9л„–fƒœ`½ÔBXåIÖ˜HÂzn ‹”öj ã™k°öLœPŠí‹M{•ú¢if«ýE*Úû­ê…~`*J[Û‰ñW?ÁqfCVÁ‹ óÐ×–ø¯âÕ<`âDú¯ª2þª+=ÈÕÖt½ž%pMûTl<}6ÃÍ$£oI†ò”©Û›LKOuwU ïu{±V»* R=ò˜,Œû4Z’ŠE^¢´D,z:Q ³ø2éçÉfûdbTiV©(G>FÜ-GvTŠž¬²Œ…È`¾v?›Åç¦%¼íYÔ‚ÈNxÙ#ÜË0Q¾s&-ºb̂΢)ÎD‘ïÓ•Ëx†ÄÕjÌý‰Ó6Í!^Åyo™Ë¿.@Œ‹4ûTO&›Z_zK9ßÇ| Zg¤z •¿µËH¦ÿªÖÛUÓŒF?aä&Œ{®è›˜ä”ìfŽ^W3Œj2Ùc#s¿|'M‰ìÃtßH}¦QÅ+ÅŸ;Ì©-È™ä›{è?\lšÚoa¯é¸ßm?‘d»Ø*«ýçnÛŽñ ¿ÈŸ` _SOæMó‹ÝkJXµ?ÌÔ Y0Lôlj.§ì”àW²àÍx[sYw-ÃÙ{ؤƒ7æ«R6,Ñ#ÌPÉ…Ý·Ÿ +±&Øãéð3{uÚ×™j2/Ôû·ë€°-í»IÔ&ºj.`´’QLÄïúoUaYÕ½?bÔÄo>÷H’ÂÒ1SëðŒ²àEZAévÖ£PÅâÿ˜VöŒœÄœõ3+b¯º w¿»‚Vv–b¾†·àW#Ì×ß–Á|æUžæcGh…œgXï  öÃ0sÊüVBk¬¢É@§îÃn8‡ŠŸùÀ”ÑøÛ/Ñãf¬¦´*v"œíîk[jÃòéå†0ßù ;ís⯆ù°?‰[ŸÏ÷-dùÙž^ ¾´¹¬ýþ¼,UꜽvN#´`ð"ˆQ轜õ{Ç6ãmcYÏëâÕêp§;.¿Ziºø'Üÿž›cÉO¾ƒÅû'p.mô ý|7Ñï’‡äV7ÏöÛ€W%Ì6yÞ…°Zg£ýMyñàWš?8Šùέ±£Û2Sb cÌúbL¶˜ ­[™/ôTX x¥¼ôÆ¥ø:^_3Á¯¶ú‹®%ãÛÿ‡ï†ø;uÎY?ݪj˦Dì5Ö›ÐhÈÁX%Z'/Û¨Ý8„º>…qæß¾Î¤%WšJ×íéõÉÅš/‡V©'h­©cÆF“L4³ýL߯èYØ´‰=»™žñªZŸ—œGµÜëh<“Á:Ñ×ϧ·©¤fë’sd$ôe &üä9 “îåRøÌ¿QKH¦7ù¬—Z„¸Ô‘æQÜ{z§ ò–R£ì $rbÒ_*Û—MÖ”NÔ¬ÄÝ[”û6›l¨>[™y@‘j`YzÊSy˜OMßBäbX>‰ùÍ<•›+²þ`H¬*ÄŒ OË2;q†9} c}€(˜Ñ“AûØë&[zq$fÀÒê*9Îà08«j1çIXf¯ÈAÑØ’^f¦hö–úŽrÍ&y_¢<ÄÎ@Š7¤!¹“ú¥ ÃSþ3È,’F2–¶ó.<±&Ö¸¶p…i”jÇè³µ°ËÛÕVýsŸ˜"ÒÞÖå£_K ¯˜«<í+ó¥]eŠYaøÂÌ C©ÏÐHŽÛ™A@í¾õØ+Y²Š˜Ð­. }1ã%©ó0vp+|½ (|%«¯¢|~5MT£x³ùÇ £OcÍ$éj—Ù=¢Ù WÍ;8ïÄü·Ç~鋾-gvYoó>xÎ`D æ;[Œâp¢Ê0¨jÀ­rÔ`)ÑëýqÓÍ~ {PãÛ·ÆN»÷0ðªGa_Ýÿm§a¹.¶¢ TQô£è·ˆj2ÍPcXÑj¶¹ m?Š6¶ãýàÌ_g­¢"ŸQQ‹ð©@Ò'i+U2+cGÃ)î¡°0¼,Ÿ&´/Ê[®£ï3ll—ˆø3®@¼’o)ëÍûap1øxUËün΀_f½ÔúxÃR|¥z2ý°ÃÚ2å^œÿQüÕz¼}‚yüJ«`§›»Â…îpExýÿ1õ`RÍ÷pWÏÜîÍË&âÂ.,9J\²䜣 H ‚DA@EA@@2(9Š¢bÌE#æˆYÁïÔ¹óþþßò³sC§Ó§ª«Nyù'ܽ°Ín_ÿÑ÷÷ßûÓ~—i(ËýMŒoß"ϯnpCý=°+›òëMÌÆ|(®RÒN`mÅô&tÀ(tÃsÛ£Ÿ³F±Ö£_ÏfQsõÁ ¢SO@[ó<02Å7ô·§¨Jþþ#§±pÛi^éçâ½}TõEG[Õ^Ñø«S¶˜çi­1ÂÏã©õ±–¢_5&Vµ fU®¾–k¿:mðA\uúv5Y=> ïÒÔ>Âu?ÆLñc}+Æ‹5Í¢¯w©&z °û¹ä?i̤êE­=QS¯`&ÏÖ+¢g¯×öÊbüf ÿdpE'ðr©0ÖÌR|*øÔú5iôf)"j ¾´Ó¥ ë;GäL0 ßdÈp;ÍÞ'ª.ùù kd'Æ_ý3ƒð÷.Œ¼æ°}d>Ǭ5ÂÎaÿcÊÉô¦zîCýv­Jqýñ飦ðùmÌÁ!fmô-—厺 ꣒,Ÿçÿ¶S± W¹.¶¤‰tÇ5ãªbð«f¸¶íÁBÖ» æ(~jŽùrðªÙÛ?ô_)“¼oؽµÇ´`¼óÒèÁMîþ VAwÞuqÝ3æ´<è ý‰Ø+À«»åšØÝ`µ|[Ùo¾°g#»"_X<ºÇœ•…2œžõ\æ ªþÁJÖ+Sÿ™Æ ߆6ˆºX6ɼ ?HRÚÌ ¯Æã.­ý·öàDÓVÎù^þWÿ’ÀÔ–Ûýl³ëç·Éc2ËÍq×_)^­–Ü…`7ÚR ¸XÜ[ë;75“Õ¾eì[0×@”B<½³ênŒj[à•Æh Ê g[âû÷Müèó˜Ï÷«€W­ñ=o/€=¨¶åyÖ ~U ³'7ú.ù•F> ¿Ò<áÊ`Ìuå¦õ¼fbíô4×sM©¡>ñJkqaýAek€W‡£“xÎ5É õS`j¶ÍÓ¦gôpt$™MMÌÜ[©ª’FOof3«Ÿ¼ z0Õ˜KcGJßT:ñ*ƒè‘Cô*I~"™JiªÛ¤RG4‹žbåFU‰xi¼¶+§*:T¡…V†6`6UüB•ãô¸âC­¸0B!Ù„µCõ…L²¬4Fˆ:Æ/V`ŒDϳÿÏÿß,žS‚èûÿüí9¬éfcç±®´gÎ`ŒVaøßZ˜Š3CÁ0&™}qÌœ‡»’Su1•¤€ñ¢©‹ßWgˆcÑRoÀ†Çͯòø•ögos·4äù`î°MÞ–öäýÀ¯ŽI=žcvnjΪi+†š[¥P&óï5ªc´”ûÑ×x†Ë@¿«µÑǪSˆ+ªRÿJ+}6æ·µßËû¸v„Y}Ñ%¹GWLSð«*þ_;8¶Ö“ʲ#¢YÚ§Xg>󦊽ZÁ«+ÖI_ Õ#@ÍV´}沯[€Îeg!ž8 ïvøX›ZiwDŸ Æ»ƒ°UÿêœëáÆ»ãæyÄõôcÅv“Ì‹mv?ù޾“ì5ŸÙŸ"‡"Ãl´}GŽ0¾½Ú±€qH7€_bþ ª ¬Àæb-«ÿ¯Þñ£*0­0_§+ÝGÁ²à*à{Kÿ°Û ®3kô'?ØŸ÷øèý•~¼¼Ú"‡d’»ÅôîµQ^v—‚ƒ¸weÕ,“t;Žú Wóôµ%æ`;à@ ÌÝf<§ºóY­ð9øÎXóH¼êˆßõŸ_û•·àÕæ¶0ÝØ#úú9èÿÄè{À´ 6 ÷¹Ý4ˆ¾cážÍÑçz¢RQÜó±W Áuɯ´:ÎxFU@¨–a si‡RLÏÇW¯ÒÕ}µ¹ÖßèÛ/=jŠ¢[£ãÉòM™G{0OÑ7õ e3'qQÜ×TŠgeˆ@iô—%ÐÞL!‹*˸kÍÄ+ËHÒdz­JÓÿ”@…©DúØÕC^J^IqEªlÞIÙ_Sž!”ŒûÂÂê7¥ø§<ã’o‘KäM!ã 3p’ˆ¥ãy@©´ ÓéËÊaÆlYú·S鑨À“ÌlÆh•%7KÀ{ª§[}ì‰ü¯2Ô³…JÓ*ÎRRì  šÁ]ªm^X’!}hÎ3L?ù¬ïoìTw˜¢ç¯9^¿R›v°Ù m±Ë&±Ÿ÷ÈÒ‚¶jk0/QzÿVÔooÅSÑVfœÀ¾bNÁƒXaE˜Š™‹M{žuTK™{ìRÚÞe56ì7SU®¶íyö÷—œ3ÿš‹´ O›Ÿí“M÷ïÍ´È9Û™˜ÖLŽØ‘³´Ü· ]U€Wê5hŽû)Þ£°¿HùØ‚j? ËáØŠZ/µŠüAÿUÖÀJó‡YÍzW‚Ýhï¶Ûa'¶„…¬ñ¢kpe?¼ý•À«{˜ý¥9zßÍ®Œ^Û3_2é>`JyFWÁÌ«NÌV˜«-ì9ð«<Ìü9ÑWœq{Ü_Xcuȯ2#“ѳ}ÜH[FtÁ,z3½]ü|P« ¥fîMX“oaç†Ïªc./¦rSì ±v`c w¯ÃýQÕÛ¹ÂÝ`ƒ_õðçüI؃udí§R¯ïë;óëÜÉ1Kå)ÚƒKñþ½W;žç#ʲT“¹3ús>uF›0/d0ØñfôÏlü~Œy4ÈwŸOÛ™#þàUC¿ ;H¢¯î×€_µSEE÷µ¯~µ×\ŽœqQƒUUºuàWØÆ\sZ¿í æÝ-RäYZ)ôÁf~J§Ò2çþ<³ÓšQªÏ Øµ cýfôž¶]oú1¾×ùÓ"zot™Pì´ÓˆI¦!£ûBÆ£Ìn-“˜ÑyysÜKã cj<¯8Ì'Ô8­G_šºèŠWyñ,@µ+«›BŸS ò«0Ó¯,ïž×g¸Â„š¥a,hz em™G¨‘9ÔbÙŠç·Ó¼ØeŸ„=ø+Þ¡•yÏÌ`½‰þ°óýfp¼f¸j›ûŸ^å— .zÆ¥ø©VŠW˜ZѶ91°1žò"žYãx'Ú×}Û³x"#:Æ3’ —ÞËn´¦*cMÕÆ Q/Ï=¦È¾½ŠÛxs—Ÿí5â? V}ÝèîèXâBMàÕ"àˆÎùFÄàŠ\#•ñ$Á¹Ì,B;³h›e170™±íåiÅ(úĨ YÀ8¨R<ƒ«Ào§Rw4“YÙé¬7Qù‰ÙÌÝQ| k£êù`2ñ$9^Å"Ñ„º4™q~UŠd鸚_¥Z‚z25©z£Ÿ*ÌJä[S+&ŒS(ËÊ‡Žµõè³*Å~ ýWIäa±x”{ ýW錃Ú.½=e1›:Á%ɯò%EzÐ*½Á|gzÉÄÆ øÎ"ÓM4žÿsI^=¨gpýÍJQ¿¯¶¬¹Ù;±+ßíj𫟤ÛÕ¼#KzÒÓ7ÖÌ–b0å“{°Ê5'NYíÓÊ~;T÷‚ÍöÉ^©'ñkSV&Ù.|–âÕ_æ ò¨Ìïv›)ký^}kŠâ^ 9n‡Eþ#¢?¥»‘l Ÿ²'Þú}0³ff°r‹Ñ¬ˆ°ç¾gÊÚæËÁ¯v®Tb¾ó)ð«Ix¿k`ÁµË˜WØžùŒëð§2VUµ†àz=Ëí övÖ g<ÃßÀˆ@JƒEöÆ{1Ó Ð¿Z'|- µAÁŽØ3˜)ýÍ¢èsιýîw¬±ô·Ÿ³7â¹#Ýh›/wE´žÃKhAoFsëùà3`M_3“ù(þ«zË#€W]Yðkü¦ë,`}çsæ~|? 3gðª¯Ûh¶Iu—î뻫݃æ+ùнäÿð/ íy$ö®kkèÛÉ>óŽý(ò\ä’­ „øÈ|*dîÒ ˜µxÕ2+TOEë šëVxÑœ 1Þá ¼ÝTæÞlwï+­Ðüê^ÿ¥›®tÙ÷òúuþA“-wù‰~²{PãEosƒWxuŸ¼áþ ÿªh­0¹,#ÑÞ†ìÍðT½¾©˜¿ýè£SKlìÁNx¾zV Ê2“¼Ø<î¿5.iþ`EýííÍ}îàU7ð«Ö&5zöà̽jÀ«ÊÑl+ª…jUÖwMuÌîÀ}G°ÂF&ž1(=†1Ý¥1®­‹¨ÕucNá^¼Ât´G¨sU#µËß¼ROÕQð«û¢³¸ë™F2ý¤«]+ !Ò*Ó]±J+ò¬ª Þ/Œýì¡Ú{ibœ#r¤3±2UBÓ?T†ü+ƒñ åˆRꩯ‰?ÙŒ_/ÏÚ¥ãùÎM¨IŸLK43žç—A ´"-ÁPE¦jõrȲÂ:be©°TŽÑ)Œ°O5a]‰ÆT^KäÓʱŠN‰¸>CõH£FókÐsåè¿O¤ç,ñí¡>D:ì†]˜oûãñ`c0ßš1F¶›É“,éÅûÏSè(gÈ~ÃN5}ªç/›ÿäÖ›HÄÈ@¶$Úλås`‘öb±i ~Õ–|Xë.Ä0Ï5¸¯,µeO5ž£‚íBâôRÆ‹ ¯Ûf…=¸ÎêçšÒ2ö ZËåàÀïÄ«OÍv³É´:*çÌÕ‘_lÆeµ^õ‹$J㇚J²½·£~ ׋µÿšb< ;M5Ç÷a÷û;gp¤X~ "cK cQéÜÎLùR`wÙÇ¥óèw¬Áè»|`Úµ@¿áàn¥™ò>ÞiƲ=,É™°1Ó¤/®m§üª9kÍ‹Ç34ÆkØŸåuŒÈUffô˜»Üç~Æ·«K ëML{ØëúØ<ÙéŠk>ä9ß,ziÚcg¾ë¥™ŽžU}UU©w™ñÓŒ¸,YÂ\0UÕ» â;Œ´æ/V1+¢OÝZ؃‹M>øU}w•;nŽËv·È7Š^Ý)«cï¹&±:ÌÇy×þù$ò‰Uöt‡ù@®—0×û¡E3iÝŽ6šÝRO­9µoTo¨õqàɯâíT“§´™¬p?w#Á1;ûGœÆjÞ Fû£/ôŸùoYßù?Îv£ü¹Gf»¥° ·°>ÎyÙywØ ui åñªˆzȋкT}lúbå©3³ŠõgPAý ¤³¢UÎöá™oìïÔœdàÕZ؃E¬çõ—¯ã‹˜ï|9ò¶ÿñàWU0'ó£¯R¿½1b ˜l]Vî»3hžWŸñWsÁ&ñ¬¾Þª• kÔ2j7OäÚ×\³Ç££Éx®5k™ï¬kþ!S}†ú ªØPæÇµV´>Î`ªMe°ÌZFU)žtB{CÔ(C{*™Cu† ZkåðŽ&‡Ñ ùñ̵êÊ2;;Ÿø™ÊúÕy¶¥q±eé+StkbŠ ‰<{L¦ÿ)™'‘åˆ\ÉD¦|F¦2¢J¹âL-å2äHÔ¿ õ³´:q#zB\U\FVeóþ”‡ÏÓÉ»iÍ…þ«Dæy‡\oìšÕô_éiâ­Tî õú¥2ãÛ“1Öß›6òýáã;L+QT}Ø|,ïÊjÑØÓ®f:ØØ$>§«¹_¾„-©÷mËWÀíÛÀ‰X½éª ü| °NDí¾Cþk؃Íü2ôsžÏ«;ëZ`„·¹‹¾‘ïÞUh.D>pâÙ2XÏw˜ÒÑçl êHbœ`¶³V^l€]¦ˆ =×c×߀ý^Où+³6Q_rU3©Ï52`¡éd_Žcç³ÄßÂ|gÅ«nÑ÷¢ãh¯Õ€=¸3DצzX¯ŠŸäUÁêYŒVeÕz`„ÃøöÒ´§Ò¨Óγ¸RôA©þi%âUí¿ Ä±dæAgQY£ë1ÛB­»\àG╞6ÀLK£mX*îqO¤÷<¶g9–j唦w*ƒ(‘J{°ÚÆ<>Õë;o^A50]ä³à‚½ö` 0°"9ÌÊŒ4Þ[ì´·)žõ:{­QßûX½Ã€]ê·è…Ùü!ÐKã*À,N”tQþÕv§ê·7ÀHÕB+5^cs_0…ö”¼Š¾ï{ð¤·Ëý¡9pÔ¿ŠD´Êûƒ®¯­*ÏDºãêÓ´ôæñt°1Z6‘—ã G0ï•aT…}´ýÙ¿7²離Tó`÷^=€Oóȯ^®‡=¨Ù5U°¡ÍvƒW¿Ë£nŽ;Ø•òBì —k雂_Å"¿FVD$¢ù8«Íç2M4¶¼;ù•Z§7c½ö£~j}¼±žÖb½ÔµÄ“Wñg6ã–;€W·£0‹:ù§Ý.؃31G¾óýüoþuÿ¬ñC~†ç®dýÁÙîf7öàyôúyÄ•tÏ+àɹò‡\ÇÊZêµÓÜ«©Í×›õ¼*/i ýV¼Ãõ̹>T€=ؽµö º ØSÖgú þ[àU'³Ï]ð ɯ®0çÁ¯"~¬Po¯}É6cÙfèéñTÍÝÝ<é…g«òèx´gí>õÒ³¥1õ˜³tYËrpé—¢¡¶ÌH³ÀOðE´1¢?F'™Tæò4—•˜I1ê^6˜•ãùX>Z¼ˆÜF}PZ¹%‡šê ªÌÏÓ¨¦WÒ„jz¡ÿ¼ÙIYú½Bÿ¹ÆG¥S‹8Öj5ü[™Z&Ѫ;í×RÇ®´zí·&xÕ]Ôê¾$ÌÏæoja1¿Úí&…z2¿›Á‘l_Ñžë.¯Ú¶‘óô >Š‘Î’ûpe+Ì®WÍçXñº××E féé­ž:}ö’‘ª'oÚI¢õî^- ¦¢_†›~RÊÞiwHM¬“øîB®Æ:X±Ѷ;©E3ܼg>ÁŠU?ϯX%%$ ì²?î´3.•ñÔÇ]‘õ›ƒ¥µ´_È[ø¹#øÕKîb°ÏE¤ãE+øÿìtô÷÷›Ô“=‘˜]¯Uôý¤)Æî%`¥zv5G륎b÷Æ‹jÌâ›ÀÔ–¬!²{EwŒÞ~ôž.Š FºÃAuôMûÙug½Ôÿä”ëë'²ÞÄVÙ‹øËXÁmä€IŽ|9‰F`Ž?fNËéGµöØ nÆœ‹]­ZÝŽz}w1ËY‹°¦k€ß¼Mtïˆy¹"¸×½ÜSý“n§ÿØ ô¹ïëðÏøí¦øÕ$?–xµG滩À«•î²TÆ.ø<øÕp‹|Ü»28ü0¬:X» ß®±h£Éâ›c,† 76ÁÎï¢þ ÆžàB ¢y7«ýp§f~µò}؃wøw\3¼ë6wö`#¯ñd6ú®+éo°jß'¢'€Wٚ݇‘~‰*å1еYCL£½¦ •·áé©Ì¯+d’÷î>ÌwÖÓ,­ï¼7:˜ë}Œ™ «·£Ÿ3·E¿ŽNad@ðj1ý<ÉT<êO+L-¸hGh•EOŽŸæe2Þ2÷LÚo%¹+2¿&ÔŠÉe.a×}EV|/Ë3¯ ž—‹GœWavr¨Ÿ¬V@˜ï\’Ÿ¥ñê,zžKÆëIçG…çƒD¡ÌÇ©A+0´óÉûRhéUAkÂX¬,Æ3Ô / £M3‰Kiô•$ð|0…h™M‰ë’&aŽÝ‹¹¼9>™Ø4 QŸ[lþ1q}†›¨™yš>¨?`ŸÜ¹¢î°I·ÈbQ=œ^æqÌà0ß¹‘Ù&ïK1ÏG` ÉsÒÜ„YÃL)iË<Ìþ¦«TÁÜe4Ô,r¹¦µý LM9è^{V²í]V9èOÆÉU¶³(š_’K°a ÄOÍ[v“I²š¿ýµé9e»1~µHž´]#^ÔÞ?ˆ5•&;ÐgÓ€4ÇÁ€º²}S`ÈQ`µ*ïÇlú íTEÖÆòrpÖN=ï[a¼ÌnÂw¶ò¬°»Dc[Þ0ïš•°3 0ƒ§¯´Ê¥žb¿tµ©E»æã”–‘Ü…·/ X¿¦&8j5àb+¬ógMê3h®ÐÍÑcX{X°øUñê³Þ ²•å0ìÁzXùCÉ–Zc6AÏM¡=8 ÷~\q$«K¨r`Ic“,·±¢t!úU£Z¿_lFí¡¥Ñ§‚þn/õÛ+¸K®¾èž6È~ÄŽµÀ¯^‰9_:v…ï{ðoû^ä±ÈçVka/6ïÈtŒ]5ªÇÌ¡rè ØÃÇ©~¹»Ñò|j?j=¯qàçO3&¬¢™,sï ƒa@^þˆÛí¿¿ª{°žÿÙ¿áï7ÙrŸ{p„¿OÊd7‡ú ÿHY³Ižt{”çƒL9ùFÆãùuÐC…x‹6èå.¬¼Ñ…õ¨±Tÿª‹êµwí þQu÷¬SÇ/Ÿ®ñïѵÁ}N[Ã/D J¯ý0[š' ÙÑ·­Ö©ÊCo^…T@{kz¸ãEÓÁs‡£…ÃÏPÀUÔƒœ£žÑ*!×Ó&Z§¹íÄ«LŒÔ0?•õqô|pnôTt1 –i/‹è³JÑ\B̤lÆ·ktÈ­Ì\Q}¤µ‘K‘é$ǽ@áé`X§:™Sè]ªúÿÓu) ¢` ó_ê0o;~­²ñè*E(õô‡ ™DаžDšÉˆ+/‡ç’¹zS‰­IŒ´H¤/?ßpĮʌ‡WŒªÀ¨rqíZ­È÷É2a-2O†|âd”ÚÈ!³JˆW2Ì¡w>]G sm-ß§"£SZò³V[®t!ºÝ;©¿¼G|û”•AóD{â “[f…(ºö7ω®¤ÝY`6ÊkÀ+#U"?(µ‰ÃS±ÿ$KKöí`3H*áÔï÷ UûoæIÂ:ð+c‡‰ï·OI5{Õ1ºˆ•ßÝö£&Ãò/Øß7¬yñ¡ùÀ®7Ù¬?øž9c»Š>«Pž¿ú›;Õ~ÌætÁ·ÌÍÆ3Ò*Ö­Y/õIFèäµÖà§Ð¯XoÀ«¯ì-À«V°”€WÓ1ƒ;˜Ñ³·Ù=¢¹4ß9±jáÝUCa z%—âïà7ƒXÑóì¹ÿáɽѸEkQOOJ4ú¸FðÌáçÁ¯´Zß²è›.긱¦Šâùƒ3±>6º ¶ìˆ( }«0¬GßžÕVç4¾} ,½CÌÎÑêQ Mª%2ëXkIÏc=¯ïÕ¾¥æÑºèsÁà•V)p—]O7–Öûò ûÍWŠ ®°›äbì’ËŒ5ö­e¿ùÖ¾9ùÖ6`4è»r³ Ekº óÍMÔ—Zf”ÿ©sOs´*~[¤ª1ÀWÀIf£½À«5À«Á5@½þE·ÁŸv‹M5‰ÆÚ³>Î!S^Öûü,w­ß!‡äF7“ú¢Æ–7[d7ðê)à•Ö£/+ŸÉ ¬«F@pG*F¯wÇ{¨Ã\‹“±oÅøL#Ã98ìªzÐæb¾©_…7LõÕüZÿ¡ÓÚMÛÝ@Ͷ~ în£o»?ͪ6ð&ö`CÖkþŠÕëb¿nÈȺº˜cÁ˜Æð|°<æF•´åÜn k¬õN°V˜ZöPôjú‘†š±°;š0wJô=؃%ÏÐ\nç)œú Ú£/Ã]ó`>#ªô\®F3dC!¿J‰Ç#…õqÔS]‰gŒÖTÁòôÚ'âóê¬D‘Á¸ôÖL`̺z»*òNYèËj¼2˜èMX}0›6§Æ×'Æýí¡+…Ï͈kŠÖf´WŒ1 ñ ˜£± a”@Œ~7UºÒg•Ž«:ǨÃPÏ ëѧñ*Ϩö$Ú¥¡š¼ê™/Ũ¦2›z+ó)'lg ð¤+-É›°Ž[Ër§12;¨×—iŽ™_åYÚË=Íý°{¦Ð§_Íì‘`Ó¤1¦½‰¼G}˜ÌÞ¡šµLŒnozK ÌyµÀbªÅÄ´ù¦‰=Oÿ|²Ùd_–<»†qìa^kûˆf ü{ð¬yATßâ+ó¸ÝiJXÅÉÏÌȶ½¨ÅÝMŽÛN‘úç÷ã®ee+úFëÁ>~¥µ®ªòôï1àUCü{?ðê_ó#§»É±àœ]ƺ];|‚©¬tƒ\”Åv¯Tv}µ «¿P` Ðb«ïªïæ$c¤4²å¬˜‹`©ý1ÇU ¢«Ôë)ó|êõuÃZ{Öt°ÏRÿª§Y}ÙÅÜàUسɾªÿŠx5Ôu°Mes¤/Þó9Œ‘z[[2Îèiú¯:Ágž¿Òø¹|àÕ"`£Ö›øÈØ–•ËnÁŽÒüj®«€·Û¼ºÒm ´¢F]÷—«ê®uÇÍwrÚ­õ‰±ƒB»X^rÕc…¾X6›³àW'"ÚúxÓàa7‚{׃ª šƒYÒ—çýµñ~+ðiõÔWá³qÌÅžC}†YÁb÷^°*nV›öþ9·ÚŸtóÁ¯.ø–þ{¿Ùï75d‹Ÿí¯U/»Ü+ÓÜBàÕ ÷ŸT2d½»<ƒÕ_m/'ŸËd´±2ð°z¤=cͧ£ûà-ò0§®Á36 ½“ðû©æpDåÖ>æÿÜ©©_+R}9¿ÜçZjv–ûÚ×÷ÅþN°¢#ï9ã'YEŠÛÁ¯^±WÐëÛ1®¥zQ[Я¨¨ªçƒ³1ÂSi3•Ç[5ÇstU7düÕòU¦¬Ý½†~¤‰f ðª˜çv÷›YÑg£SèÅÖj½K³T 8§ö`ižÎU/£{ k{ÍÀ„ñW™qS YNó®õ «1w$™¬->ªdÆ9Ôbdz}Bšñ“Ϩ„òôgKe²zTùM:‘-•Ü-›ö`ÓP ß®÷G…5“ˆWª ‘K?¿ú¯rée+Ïen•_’V¯Fo…yÔ¥ˆºž±XyøM*¹V"¹U æ–à9h½l]`ÙLƒ•¯xž‹ªõÛU¯ïOÓüJ}\·ªŠ ùUŠù3s#æ”òÁcæs9%«DmÚ`ëÝ03ÚAëäiéLü,¶í¦ìÏnXÛ‰Œ#ÍÀsÛK¢Œç=Ÿ4cñ½õôÒ-25l’À^ßf_”v-ë;ÿkJK7;PT)öìÁ_À²¨Õ`ŽÛ{MI›NÍ™þ‘÷msƽÉQÛx¥ý¼»½—-xcÕ5xÊ|Ä þºô·? Ì©O¥†»Á(_g¼[y6øÉÞ!aůN²)˜‹yzµ!ÊZ{XÔêÿln)f¬ææÝ@­¥5è?Õ~:a>ÁÏê·ÿ³R¤$,§°ÒqÌ–´$æ±Î®FH½djÚGå8~ÓÛÜ ¼ ÜA÷‹žÒK¦¯â?‡=8ÜÜçÊÛFrw¤ž¦z}ÅÀÁ6¬{wˆµÔ:«wømæÁx®ÚîZ™M3ê2>i,Æèô…ÚJÕ̪葠/ðª¸X¶ûÇå¹!î%ó²<àfú;b¯5í*Y{Å¥Æùæ°¿²oDVENØFxÞfó–Ìkl@~5O«7º;®ïUOÞtª Ìl¥õаÂ_c5ì¦XS‚Ùî`Y0œ¾¥?ævúOÜ “/¿øöþð«ûL–¬ö×úin˜ß#ëd.ðª¿ßà.aä7ÄõÛ§¡±ó}%×±þÜh´o‘QvßïÑEcßY«hps'~žïL5‚ËÌß{Ðb7XËøö*~©ÿØu]ãNùF¾™¿mü5rÒýëFØRhÓ&!ú¤mBÒãq kOu£vPO¶ˆùÎã±ß‚3=ò¨9Ö›ë\+žV1ãi•­0ÕÏÁøö~ðJëlÝofÜ̈p­~¹ŒJ[ièÁNèËJ&ÌÝëÔ +áä¢ WQ]/¬ûEí¨œ¸bCÏéMJ3/% šIÿŒÆŸ—¥¯*±R5{BMÐÒq®Uk Vœ_•ŠG`%Ç㟔åó¹ª'“Eæ•-IM†á²ÜSî~£ú¢Uýwvî¾ËåÙ2²3Òsí¼I+\ß‚™DZ&[#F1çe֋ڶ׃ëtÁ§Í°»,b æÆ@HÕVý-n´*0k£Ï׸ÃA}àUY÷›ë膻Í{òŠkèÆ^¿Z'wÄîv«ç›ÁüÎþ¹õ¼š¡ß’;aË×cìül­Á ™¶×›«ÊÌ|šO%Ômè¡IÀ«g1лӂYî“`I0ýÕÑq`‹M7¹âcüyÿ²ÀäÉ}~’Ÿã®^Ý'³Ý7Âou—aoµjÁgp%Èï2–ûÅulŸ*¦w2´3Z—£"ž}Þãú¯jáïÁ Çý@}†Cþ+—æø»Ù>Çoôߺ6вî,>íá5Q`:?Áj«Ûaµ…ôØS £&3J6S뫌e"ØÏ$Ì‘,æã4bÔªž}×G¿WÒ(§Z {pwt(9Å03¨Ü„¼å135úFt&D5¬—%Ãú³š}X#¾³FÊÑ&Ëcþ`9*ùePc&ýÿ˜VrœÏ”¡µV6ι*ó™)ô·çS!¯-ºš¬Zn¨çæ>«ÊFX,3©•É•šÁ(Õ°¦W&ÏSMJÜ,gÐZaõ­ÿåU'òŒ :óÂK1N¾®­B¬È`””ƹFãy:¥ð/õe©‹ÿ ¸ô4¡9lÁÅ`Iligj«¨¿½=,¨éFÚ­°{ÈYZb·Ôú–zú˜Î[²šxuµy5’q­•Ífy“<ª$fO‘< ~¥­.µ“#6o)”>lÍ\K·Ó6œiêÛs°ÕÒ}È~)9vC¼jŽ\e»‰ò®_WV>$úÔüd7˜,«ïðéùÜvmYG9b[Gþæ^öVOEÚƒ0ß¶Ábëˆö•ØlVnâ Þ¶þÚ©±àÍäbð'ºÝ »c&ðª Zx³Ô´sìF؉]ÌÏæm\±šŠ¢°OvéLí Þu–þ«:à„L üjO¬öj ®ªká¹ X£F=h¯šöyƒ;÷¢èûî¿ài÷“f-K)ŸïÏÛê·pumyÙéŽ{b$ðŒiXQÅ­cX'Ÿr4ÖÊÓÉë¨9< #ÔU3V`-/Áœ¯Dù•øÝ×ÀåFœË÷_ vu°C”qg\O7Ô5§ä9w—¯;4´wÉ»±GW |w9`Þµg#OFÎÁ¬ \|–ÚHZ~À©åX•³"ýhïÖaíÛ9x†ê|®%»xȪ1vÙfB°Äî FalíŸtë©'SE.úÁþ’xUUîò7ùÝ ¿OvËNž(F‹ßÙóÙ9qMÂ~°ˆf`͆±²xê¤÷ï[¢>¸¾ÉLX-ämòÉsè©Å¦+ýí›Tëí=Ô(îkvKÌÌ>uµ<[R9d‘i.¯Ô7Õ»BŒR[úÌ·Ê<L5ß1úñ6"èJSd/KoòÆMöq©~¥#q vÂÕöjÑX’óòÐëˆ(Ž}lÞ¶M2ó?4À¯Ú2þª‘þ·üjøÕ¯¾£ÿÜ?è1²Åö£À¯vÊ*™éÖ»n~£»{p#øUÄZ×A[ÊÉ»Ô8Õx††Œ €6/ÄSâçŠè݉@ˆhï èë)æþ ’;‡O;S¿=êµÞÄ•&×W÷·ùÏ\!Þn½ûèUÈúÎ#Ÿ¹€z2êáË‹>m“…¨öÖiȇ׌êÔ ŒÖ›Ðjv×S£³s{ûqí7ÁøÕ&ïJA‹óíáè(®×Éf”Ãz© ˜‘ë£ÏEg0¢¨:fî­˜ z†¯Z=˜1¨¶ß•˜5¹Ì7ΣmXŽH–NŸRJ<ú*Ý„º.z†XõLK7jÄYZ*ýÞÄ‘$¾©æ‡…ñó¹<§+AÛ°Ï“éñÊ6¡&hÈàÒù¤dúœ*òô0Œ÷*E&”@í劌1v6+î9/M–f8*^W§o?‘§©´=™cµx¾sÉ‹ûáÓè“S+q‚9‚»Å„š\£´’‘­­¹ Õ˜9 «ª“¼Å÷þ6Çb£˜m›åY)š#ÔݬÁÞ5xÞÐ,“OÁÍ´UÝÁÎHFY´ÆX'Á:RL`K9ê3¤€côE¿Í'VßfêÙ¤G`ƒ}ŒfƒU›îœÉ”mÑS…óòpïMQõ±OÍv«q´¿5í#_Ø–Œgh#Gí‘êc/0)²Ÿ®g=ú·0 4ËMõf5Äš¿Èô…y{ä ˆÌ“ª¬PX(ý‚å˜!}Ítɵ‡ícR}ô-údƒ9€‘-Âܹû¬æ¶r@õf<Õ9¬¬ËxÓ.Ø%á }¹ÇÔÆnf½z`9ìÁŠöe9ÙÒÝŒ¾{gŸûkª¹da%]²Ó迪aódw¤ÆüÜ¥'£¹µÒà!ôc} ÆuhÑA¬ŸáÄ«ë°uÆŸ†æ?`I[à•Æ3\ Ôü¸¬y%5ÌŠè1ð«Ý°5ç?WÝ]$8%ûÜ Ÿ;T\{ÕU‹5õÍY/õKàÕ×¶cCßý°Ùë2K`u f™;Çõ€Ž5€¶jæâ4²¡Pôm´s®æÁ\â>ÖÃavó»ÍàWó0GþN|ãß÷b_ÚëG¯Æúý²Uf¸n _ëþÂî±[8TŒçh<Ãûræ¯'šÒ›ßŸqIðÿÆ´ëÇaL7¡fã'›'ƒ,÷=³.ø\‚ò*¼a9_Ù¯ó_À,2;ÝÏø´×“ÌQoŸÈøöE¦Zôø•ê3¨Oã½ÔØ•ñŒAh£æ™ÜÈ AS˜—W@¹žô™×Újd&‘Eܹ½ö ²¤fŽë›ÑJ{È n¿Ò˜öj˜o‹ˆ.)Œ‹¸*®ªúÎ7Ç•®Ê Si¦Ð‹ú±r¸þCäHfT…jµ'0¢´<ãÕþÊ£O)¬Ì\‘úíxUëM„§}©x㺌ŽJ¦=TNÕË2†!…,«€- q-¬:¡<*Œo/ÉÈŠ\ú¯bôÃ×¢ÂMÙê;W!Úf’=fó,PQ¶29¢çU‰äwÑÿÓ‰P{Jëßbv2æ6W£ÎÑ×—Û Ì >°E”ç‚_õ“wxð;fÄ2ìÊÑ´ž×¯À«Læ®Ä·¯¡ XÝl•w¤ˆýÓüä5iBûSñª<¾¥¬³ ¬®4¹†í|;cÌwmñ\ÓØFm²×­àW-/š‚uŸ!ÓmOj³+¿ºl¾Íú+i—I§=ø©é9i»ˆúñÚìñ¢ç’‡ÑÂð+õbÅžû1ë»Gi‰Þ†¹ý-Ð@P‘¼ {pŽTÀ \eZÉÁMŒ„¹FjØõvŸhÜÇû`f·âÚÊ@*­Dªµ9+R]æMÜÒ~PýB12¢ù8=3WÿFÏbkôõqSŒí-Z’ó£Ï¹¨Ûå.bµ‡=˜íÿ±sqïÍ®¡Í–}‘.˜_еm°.ZPïî\‹ù?ìÞÑø\«±ÞŒþí‚ö½o–0K± >iö=øUsz6FW¹AM­>êþr­Ýuî9ó‡lpãýý±O‚v½lŠvö ÖüÇ~ÙùÅ6¤~ûÛ2AÆcN·Ãn4—™Ìøö¶xÇÞèËiŒ¿j‰5­ùÈ/™§Xãµ´™¬q˃¡x³"ð«Uþ´›¬Šc¾ƒÿÅó‡M%àÕxøÕÙ ÜÝ®¯¿Û«}X¶:‡·¾a¾eÈÏ2“Š £X;¦³«z@9‰êf6מÃ.Òk[ùÕSA’ûZ•̓þŒKòõü:̇làÕFüÜ×mwßø:àyÚ{"͵š|«Iˆ>Åzµ1ŽC1ò5¹*וڒ±LÄŒÇ3tU5ƒé‹h„½LÕl4IãE‰ŽákfûQ¾%ÞSó[GF÷D'1X«ÜÁ³þTîn=¨y•ÁLúid&©¬ŽVN >–kSåЋ’BßKYæ5×àϹ˜]eˆJê!ªuVÁ„u(jQ÷(‘;•Ç©x¢z2õø¯dr‹’d@aŒ»ê”Ž[¨&TñçTjÈTç飪Wéù`)fë8<«>ãE3é1*ÍóóTƃ…Q]%ˆWª)‘BFž†ñ ‰ä` ÌüéËæVÖKÕsÊ)¬Ý¦xXdþ5 À˜”SÍÁþ8 ™ñ¢Z9®k¾? äøTn¡fBs§ôÀnÀ3ÜÕr\ÚÓ¾kojÉÃÒ€Þ¸b3ÖQ1Y$VXÅSˆ£˜ë1³Õf½ÑÚ’¶?O¶Ú³ÒÖ®±iÌ[Ì”^v˜(fþ+‰Ê¢våsÆÞ»T½ŒçLÈ ¶XÔû×[î·U#YûVk†lBû4zò€ùÌhUòz@‹ýXGk©Ôº­úL¿@ã†äXð‹½H+¬æþ2 ö V a¾ÞÕ{ìIÜu#sRg`e\‰o–¡—õMóf±Î„¯À~Þt8u©Öa5Ue5ÀÐß^€™®Ñö-ì#ÔoïgfE_vÉî>X-}ñé>ßÿegãÞº3’~êõu¢ FÊa&Í$çWÔ*©Uu-èù+¬’ߨÏPúíׯ¾„ÕØ”™b«£O£ÜÆà 0¯j°û»ÁàW_Ãâ*ð›bo5ìjy*¶×]ð­| Ùg.ÛÓ‘‡#§mæê½&SÑ*Õ$Ôú8óÈoæ£}µ¯:¬4Ô“)Ä.t…‰Þz ;Q1ž¬ú¢o·×¢?Šý£n'¸ÎMÀ«ï}ÿ³ üª´<Ki¶æ·ÊÝ2×-pCý÷'˜õ~Ùᒜީ6žœ!_ÉtŒKì…ø¬¸NoV@R/l.Ú=vƒæãÜÀûAšû=ÞÉô_ÂÖ«æ—á›Ù°ºWÁl„þº×}~ÕÉß‚{]¢ò «Õåo7Éч`f1çs 9†6ÖÀ;ìÃíÊ™”ÅS¨‘X9ôµbd‹æË\¤>Æ_-«ÛÁ¥¿R>2ÒŒö=}1™Ô`Ö{ÿO¿½•¬Äô\¬5rÊÑÓx—ID‚zïF³öLr§’˜AÆG…ñPåˆR9ŒÿÌ¡¦z*Oçò›ê6dáßMYñ/‰(Ê0Ö]ý]é] 5÷ÒÉÑã±èÉô¥¹ò‘ψµ‹ËàÊ\üÎÇýíeˆ]‰ü¼Q/'™ãg 9´(Õe|{>¾%F…Ñí‰ÔñKç¦b¦?‹~XCþS(ÒmÐw.6ueìÙ`@WÆõÛÿŬ¸x¥×>m2ì²9Å}ÌNikÓ Í9JMÑ’ÝzÀ«:äf°f*I æ˜O7Edc^FÿwÁŠJdlj›`¯b¿Ük’N@Õ|œÎÀ+µ€/Ëox¿Dßó¤yÞn6IÄ4#"'lQÿayÆæÑß®óa¶‰É:ôËÌÄÃæ4k+kßivaF7ÁÈÞ‹•õ£yϨ¿¢§<üaoÍ,Ùgòez0ï7Ì “F°N·a§/†5x è·s±#Öë@ê·W¢ò[À«>ÔCþûm —ðÙ•´,»j6+æy>Öx%ü»-Þâ%ÓÈ>*/£ï{›‰Ñç]IàÕò«ò>×ÿaoNîsËmuÙBû  AW¬Î¶ÔHÕLñÆ´5ža/öþ6˜“Y§î~Aõy°s6š Ç^ôº æSu³8z<én ªé*r\{×Û5Ê:‹µ‹½äÛUbJœvÙ±6¾Hî7?Ú“‘Ç"ßÚfhÉróžL]‡ê­ºؤüæò«NŒéXƒOó¨!¿³a2XäQìŠz&;=XîÞ#±?©þÕ>ÖÝlªÈ·°Ã~õOû0C¶û©~®ëãÈ}r››~µËY›gËv—é^…홇çdÊg2™Ñ>c©Õ£Û ÿîÈx† Œ#ÝŠ¹ªª!õ±ïô¬êQ®öß»¾_Ž+[Ëý‡®1ús‡ûØ×òƒý ŒÒEà•æã¨ßå“=bQ¥®yšµH €†1CŠ€™é™@”±Ä‚ ÔVëÍõ¨Ñ÷õç“ ~•cò|0{=ãc6WEߌN žT6-äîx5˜š¬ªKU£Ïo§côú`FeÓÌb|{ùF YOBßò©S’cè{O#÷kŒ»‡:Å9ôÊç²ò_>c;³âœJ½²Iôɤóùéô”gñÿÙÄÄ$V–È!óI! e0R*¬ Æ3d²6}F¼B³ÆJgÅc$4î¿j<0“­¨'£Ñ¬)¼Ïÿôàã± éñ|œöXu·‚7§Ñ§L¬µù|£+±ñXÍä âÛ9̉&úW‡L vá;¨ëÒÍÜ'ªZ§RÕÜ$?ÐÔ:†õäxZmÆá°º²ÝíM[i#ƒØob4ÅŒS;u>ø†µWÍ9ÚkJ¦Ýlµ¿W¥@ÛIɯΛ7Ì;’Ið»Ç”¶Ê¿3Ý"ÏÚA¢~ÅÖò¦m)!ºw^••ÕŒß/^½„¹¤•jÂÜi6P—x‡Ya’å3ú)¯ýÁ);E2©çû­™LaF)°›ìFQuëÏ€” ©ð¡Úà#°ß­@ßb&©¿}8u/•%îÄ^ªÛ-òcì+çbõ€WÛÍWöÙÈ'‘¯Á2 ÕÏÉ@ïzM`ç,ü î3ï×+´+æÓ<£'Þb=>™l^À®¨9ÚÙfR°À½¬†'ûãnl±ù&W¾ô…ÞÆ–û}ç­~ðª'ìÁÍrðj„ßá¼­hŽÈ³NÜÓhâDEùK¦1 S£úo¡.C'ôDGF«äñ4Zã:`ô›¯ .y˜•=Ì*ÿ•K^­Â7K¨]Ì쀷ÞëÞóµ}¯,ÜGßd>N´ç6S!úª­Ë<¦V@Š£¬GŸ¼êŒg¶0zš4´ÀŒæþX•#;€vVSŒ¾Z¬Š%w™~ö.ê·{ÌñþF_ÈjO™öÑÕÑù´´ê™®r -®¸Ou¼ayf&—Å,»Jª“Ð?…6`f¼ji¨K¬97aFqYÆYe1‹8 s.ÌLfüU® ës©}«1 ©´sɰJÐëÖ£œA^“NL5a]Ô,2­ì8‚äÆcIS™=VdV~½OÿY‰ç]Ú–|ê3dCë1?®£Õ3âv_% Z*ëì$›„8f%ë³âê ÍJVO ß©9Ïšƒ—çJ'¾¿Æ_õ•×È^ú…­Ló˜)cÝżã¾f*¾j˜ò– ä“b•¿&íÈç`ìT J÷‘ɦ¶ÉPbÚk˜gª9 ÷_m:Zg¯&n³ïJc»ÅªÌKkûˆæ,}#_àçEÙð)ó ]cŒÕ~ýÝ´Š<`;Òfì ~UIäâ:¬Ö˜8ذ³À’š¦‘|œ·S%oµÁ¤ËÕÁu¬"‘›™©«3©àÒ”^²ø[}?O¿½3¿Ÿm^U­±ÂáJû†ÌÌñ•ü2`f1î¨õqªû>^³;³£‚_©þ•ê§FÁÖ: €CÇ1Zõ0ëYr¼>Î$ŒÓHžk5šZŒsQ?ªÖ¥oÎ8‡LàÍ\ûz´y‚ê·ßá‹i™½<\]LuΆ¦)ëÑ'Sà®é0ÈÁ̺‘u¸Òéë¾ usˆ aÝ­J<¿Óû—W³Q¶RÙÙ ä¿%¨6ZŠQX¥qf‡¬4¿Ušú ¡½±%‡úW¥èK¡+‰9B´åÒˆ^©ôug3Z4›ç}aå›R´ër0&Õc½vzºŒ¦µýfz' ƒb×ÓÖ¦ØÑ<÷Üg÷Ã\ËZ¨`åßî¤øsYJÈEÐNC¿•¢Pº ‘KÅó˳59ŒŠH%9“gÈgÖTÆœçPÇ&8VV#aù}G}uÆ}%2F6ƒœ*0‰Ä«tÚƒ)dG%ùïó¿ÊŠZBÕ6’û•Qu=ôR Æ‹þnÐ÷œŠ¤ ÏU#½5Xv>kâ¬3•íiYÆøö.æNQ&j§›òµIS´F¸¼' ˆ¬Ã±¥K["ýxS^ožÊ¾Ž{*P»OùÕy¹–ûËnXJv£ÕS‰ï€8“l?Ѷþ!—ñßó\ò}sÈ®ÏÓ~µÒ"òªí!êóo./Û¢ˆíõ]˜)åd#úñ´k7P©=£¿Õ|x¥šçÛÐ?½¨ÎE#9¼š&ªë¿89)˜Ž €Å›e·ÙÝ¢*¡ZUâV\[÷š¥¶GyÜi0äGF"µÂý& C»5¾}3㯴eõd”©\tëm·Ëóûîf$ðê×à!؃L ÉðU|Rd2®žê¦Ùº²€þ«ÓxRGÖvo‹¿OchFÜt3Åwº–yÜãðfáù`YB•¼¦èÝI@AÍÇiE]” Ñg‚ng •eJ»s.ÊóÁgå§* ÏÕñVÇŽ¹¦±z¾+øÕIû|dWä[ƒZa'åj¹ôDÏMÓ=x°›zÏjIô1›Àwª¡E…f=kisÕd9°g¹—‚%fIú'Ü&ÿ†›Yñ3pñÄï¿Zí¯óÃ]ð« 2ÙÝ äZäÄV4›äQ¸'ÐÖò¸wŠ|~U‡Ñ˜…ÀLÍ0î‰èÅx†\´~8ï½è­±VÐ?Áù Môdx‹ÿÒ‰/í—aLÐË›Y°Y{°ŠÏõZ}¨dôm؃C¬Ö½ÕÔ‰>jë1†¨O>NØjX7š/S lÊšLÀ÷&Ñ ®ºMWò‚–Ø™53HWþJÓÑn‹^M g®÷c|Îÿ£fvtQt ™™ÖKç9M©OTž\¦"fÙZ¼AæôªýßÙ\yZdd2eȃÔo–!>¤2[º‚ +`•§©"½A˜IZ‰ˆ¤j¦YŒ4Ò˜­Qæ>§£J’ÛdSI&ßÒ'VaÆu)~–Ç(ÍÛ(kÂ\ VNÍ îäRwG{'¬7‘ÏwÎŒ[œš?˜Ì¨÷ÚƒáJ0."Œl«¶/¿ÖìdtF9îÏ-øÍvæz®íÁÛ±.ÆÈÄÞ?€ø÷€yé÷3)¶¤] ê™ëeI°5åquÌ4ìŒÅÌC즰FÒæ-˜&K{j”šZ’/}ÙŸo€ ôÂSôž·ƒ_•´×c´/Ë»Õj/ýƒýt„í/Z{ÛÚ¿pŸ‹äQ§Ì vƒ‰ò|ð;Ó6rȶaaŠæþ½kÞ1KÍbêñÎÄoǧ0~ð]Õµ"tR2ÿUßÓ¨¶À+­—ªžø…ŒƒiÊú­í y…5åšE_t?{鿪!™¾¼O¿ºÚ¬q}m)ò«š¸{ ûXFÒ÷Âûª7·0cFã0~Òz©×ÁúÑ MÁƒ×Ç+Þn®A/Áø+­§õ›¸µA´"ÕýéøÕ1ó*,®îþpìõ øÕ±Í®Z¬À÷“=æCûBd^ä}Ûýv·9&‹d Dë`å܆93ý8Œñ”µÐS»°Çå2u3×ܫ洹ó½xu&X ‚–÷ÇÝFÿœ›Š=áS°É÷ðç~ìK÷ø+ý$×ÍïÆÌYèÁ\ †Y`ŽËÓÀ«ýŒíê,~üª>Oà®@‹5S¦oÓšñ¢¹˜ÁÃ0SÕ¦ùÎÓÀ¯> þ¢:ÖÆýë¢~5°'øt‡Û)-s/ù:>‘ö`‰èkî‚e5+f­Éˆ¾ÄóA­Ûl±6yÄŒwWŒ„ÆVÎf= DÍUEA]¯Õ”º£éèéAöP´½ÔCÍ`?·çPO˜~ÑÀ«’¬TÑVnbæO"Ï_ÝR‰ÐW`UmëG«TF'Ç£9óMX75‰þ¨\ôvyâRU\Q–gyе0þyT ÎEßU'¦à³ù'ÔZoÃ6•4a¥‡4F£&³ªN&#ÛúÏåãÑí¥ø†iñ¼›âš"MYæ>—ŠÛ§í9*%ÉìR™”̰Ôx\}Àˆ~ÍwŽ»JòOíÁ’qϾæ;?Íšôús¬ö`mZ•¢•¹lÒÀ‘ôºi`@åEb‘­UOôDâ0ã_Ì\=Ÿèa–ˆjñkT~c؆ÏÅkÐ0½`vfl•êõE¤7ínp ÉR¼z cÑóWíÇ¥¦"ãÛ•×°û¥ü*<—¬*ì`Ñž¸(Ÿ˜’°µ·^7_ÚÝæ’d‘ƒu‰,µD¹byØfýD}˜EÓuWß;Ý—Íy—–´°äœsÎ9#HV@@$ƒ "ˆ( 9AP0*Š b@’1bN¨ïkzUÌÿ©3×ïx”åî™îžîÓ§ª«NÁÔùpˆ’ ëÑâUxO:â6Ä|xseõ ¶“_½Äøö¾òxð?;xÕŸö—kƒùhy?3NºÙ3¬G_˜÷ Æa-fl3Ü}(vÖUT÷Æ÷&•Úë‚ÍÌ4Ã"l4iLÝåÊ´—*cD«ãïvøÎ9SÑ®‘ãÀÉ^¦{ôI÷OpŸ»„Ño'Îø´Èdð«­îC)#«#×âª7¸£ÜDk°±yØT÷½sùY âXôO½·ÄëÑç‰Æ}«ŠÞmø´Fhú­–GŸƹ5A%0“L÷¥kæú¹cæ-9论a±³A!úy”ÖkÕ ¨Šô¡iM†ñ`‘Gjª-?2˜ä~c0^­ý㌿š~•+òßù—ýð«-~(ðêZ¿[6È8w§äׯvËc.âŽcTk¡/9r^¦°êÊXÆÜwh&eOž–ÇÓFP¹;Ú¢ú\‚ƒDiL}Ñ\ªOð땽ø4ð«Ï\g\µÖ½í+ùš~0èJäuwÅͳz†²ØdG±¨mÕ#ýú¡zœûyNÙ†y¼°'ÂΟKS£Ð‘U±Âºè>¹ºØôµÇ£½ÈzÆ›üq~õ”™}(:™ûHUÓˆñíêË-¤VX­«æÐõTîÔX…>˜g%¹â3çžA¤=]™ŒmÐèóòŒ‹PÛP#ÝÃHòRD"r†F8W ¿ÉgFNí¨Ê3»4ò¨dú¼“É×rèK¦«€½M#ž¥“™#^UˆÛ€YÄÌlú²Jb¶6dë“È+2Ò*‰ñ™Ô“‰2‚£<=ò1r¯Dj"'ÄO>•Ï Ç½Ù¬cžOÖLGÆ3Ä0×Þ1…qû<¬ñ¡ò6qøW¬Že¦¢dRWÁÙ6ã¯î•æø¿>©²™È3Ae“À¯ŽJ}>¯‹e®bîèyÆ ¼—,Ö£OÂ}à¹+É?›6ÉcÜÇ&¬™zvÕ1ù/öàñ¶kL¨¾h²\"wzÝ|~a ü¦idµmÇz=-å¤-Šüoi%%I¶`ôVaÏ¿×|Šÿ·aÎÌ•ÌÞ<ù l§‚VÕ“—‚¿íÜ¿ é:™,fXkÂF-ÃÓ¸sX©1¾ÀFó×°¦°ê·¿K{°µw®)Ñ&Xía}œÉ@¿ª ÞÑÖ>¼*…u6.zÞå¸'Ý_À—vRÜ—^Ͳ?ìž‘º²üªîÞkDñJ« ¶Sw*[>Äš@½¼IøwgªlÉ*BÔÁ'ª‘ÿy-е%z2Xäî ª¨r1ìÁaîZ÷¬ù ¦·ï{-¨e·ÈéØ÷‡oê›Êƒ¬7ñ@ä[ #±^OOUFÍv¥Õ„Uƒ†Ó7´Ìt·£ƒÓ8ÎŒ÷ |{ډϯžŒN#k©Ž™»,n5UÄÓzÓ2Rßòüɧö”ê·‰WÄÉd„x˜“—CT #Êü_=ÁtF¢¯ùâ¬mX™þj-«Ný«POæ_ ‡t´¸™J*c ÔŽ -¿â¼w­Õü8.…‘Y\ɪ'óÿëMèùA>=O_Q‹vs?ÏfƒbŒeÍc |1¢c!Z–ÂÜç°ŽWR<Æ=%î©OÁüÚ†™´“l+‡ yÿv`¥aÉ(—»Å¼hFʧlѯXŸ3À¯ÔgþœI´ŸËVÉc&ñrð«9†ÕÌfàUâr¬þÃØÕ;2ß¹9s™Z˜úRG¸ߧð~;i ºa´uv0¹Ùv{VêÚ 6‰± 1™fûŠZ»`Vò£ù^ô]Ÿ7gì>cŒÖL×Ƚ¶%1­…·Õ# ¢Ìz…Y^·Ï]Uþ4z1êã]íÃÚŽ×Ì<û¯ù#VÇT—7‚a–Ãï@‹wbæ 0d¶}ÐîÅçu€Eïƒ_­ÂL¨ Ûg¨™Ž•©5xUŸAõd*U~Á¬úíî‹O[{P)¡fÉ\fÆëÉÒ13ľ&/á7=ÍÜè»îà ûík.Å|y/‘˜Ù Ü$ôjkDÕ¦^Ã*ì…UÙ’Õ¡a­ÖŸނü8ú2ŠzË7R+½êMÉTÂw5:›‹à`õ©ù±5úRp³{,¨‹ÕŸÛ(Û p˜ä¨»àcÀ+µ¿ŽýíŠÇšR¿ýûNäÕÈ·VãÉï2ïÊÌH«"̆éx곞ñWšÒxµ˜þ«æTol?…6uÀü½.Xì¾6#0zíüî^ÿ‰›mʉĆúHìÿ pè>¿ÈOpýü²G溅nŒ_ï®HÙkõÏà0ð§<æKš|*°²* gaóif_[¼‹v¬G_ ÏUM²-øæVÔz&ð.Sšªr´ÿØÅ€Ã+ñsøÔvÁµ^ípoùʾ«×üm}Çy?ª}¡I޾oÓßÞóà9ZóEØ­tìÛ0p ö›˜?˜Î¼÷ÊŒDHÆh]ƒQšÌS´»Ls»7:„œjŒ™O=är¸ö˜™};:‡¬¨ŠiNœÏuW +¼™Œ*,ôÆP@K«$«aæ0Ž11ÙÌDÎŒ+`©]¦™xåèOåypŽ s–K±ªMy¢P¾ÑHÂ"®Áü¸Ç=‰M½i´wR#Ÿfš¹<Ý ëª¿=þdÚÌúÎÙŒ=Ê|œÌÕMÒ=~>XØõsY®¿{œ=ø³{0öFÐÔn“=±)å»É“æ¿öËÈîÈVs{VÀn¼Cñl´fÇ\r¨ÔŸè€O{a\fÇõ¯¶¡E7ÁÎ~mTÿÕÈà&w>XLëmæu{ý›n²©$_ûAþoö`–l‚¥4ÙõñÊ6™ênqƒý—l˘}ÔC~w*R‹^¾iÁjÀl=ÿT¼êèÉÓ2øÍ_ŽëÓÁ¯²ü@[Š5ŠG?²ŠóZ)»VCyâÖ*ëÉ™Tã?Y5b¸>ËñÍö&·o`1âBYÏFÓÔ®Ž$ÜhFûy¾%ãm›¢/Do$‹¨ ~¥úíj_éŽ6(«Y«g!½U ôÍ"NéïB¯SµüÂ\g=Ô*Óåø›TâS£˜Tϳ6ë¹åÑëU&AÂúªù&¬šÅ“ëTZ~¡’K¨Mš÷µ—2aFuñ8÷û­7tŒòÓž@»³TÜÌ#^é<Ÿ¢™Ý‰dfaØbħÊñzô1óoµ O¦™J}†TúýÖ˜MàæI´6;ÑŠHd<Ãg&+Mí»Yæé'°MÿàËßžo4ÙöMÙ ªý×Ëì•®àzÙÁ¬”w¤-ßË83Db–(çŠY}Ùôá;Õº„µx˜nE_U”ýÍ3EöªŒe„ìû„4^©=ø9ðjŽíÏ8Õ_å/`ÓeÚ¡çÌQû8—âUŠ´‹,´DýlÝå,øÕÄå#èA xU3¸žö>ZØ‘:T{Ì3`Pê3¿¸uѼ‚7XXq4øÞNUY¶5*ëà  ÄÜoHY\ýpi%F® Æìfôl*Ö¨žÙ†þö¾<ü+5¶düÕ^0 Ìý) ì¨ÆÜœZ`®mí~Ѹ¯¾fjô ðêi÷§ªRK vþhd"l‰»ÝM¶¾l Ç÷Ïáßšï¬ß;óuÌw¾\âÞÒPæ'NÆêmOeëârXU9®çë1òÂlƘMÑç‚Qn[P #žé¾w5]?÷¤9+»_}Aìå ª½_vÄÞc|{3yÀ|mß‹<9oëûÞ”%2Œ^¤ŠŒoo‰÷¼÷¯Ëýn ¸êÌÇnxî:j{¾~ÎŨ7“ƒIî“`ìÁ»LGÿ”Û¬˜ð’oî£1­“"»ýd?Óuð÷Éfð«›Ý+¼º_‚=xh¬žþùLnÅZb”ÛãîM°kôeÆ~'|¦ùʯ6q?ÑŠðOy¢1¬jz_üª³IôùàW¯»Nhù.wÞWñíüm¸>ˆ¾éýxð«šèabT{®çƒ Y§æC%¬œŒ¿j„Y¦ÔÓ1¿3éOÒ=¢3-œšø~#à•®¸Õ¦Ÿ=Êuz£ë§{U`LÀž5;úrt½ÏUM;êõ¥_©·-¬ÚUO¸•>n$èˆ;–d&K&U]rym:ñ)´œJ+JÒ.Kg|pAœ/•£RL)2¸’Œ­©D¿Wqú¯Â©ù@åªÄ¾dFA$Ä-Î’&¬ü•ÏÞ+ÇX åH¡Ò»Únª·\š?'ifÑFñì¼ Ï“ɯÊ3,™Ùˆê ýíE¬aáÏH°>«=V¯j¿$“ó6ƒä;r§ß1–kCŸ5É`@[˜ûÜϬ“v˜Ú_Íw~S:_õ6mÁµª±ý±Ö.c¾è»aÚHMéAöy3»;ìEÓ¦½ [CŸõˆ½ uìF«ç,?hehâUŠù]¼\6ßÒÏÿ¡Ùmwçé¹Åߦ{d©mÅ<­G_;r™ ÷Âfñ¢öšîñQÚaT%’{À÷p7Þ&ð™y—ùOµå\ð›½^*ÒZŽÊÌ`!fes½Ül÷Ùä]_Ù­ÄU5Ы[Ð¯ÉØ=sqÇ!àh¯1“®šù;{D~Üî‰9«õ«2ž¡æÈjô &°BUü6bLT!§ÆHcI_† 5½-i&·»wƒ;‚±ØõT¯ï^àÕ\´ó7ßË‹Ýïw`—|ÈÏò׃U=~5Ë-p#ý6àU¹OžtÞ=‹ÞëP{p,+ªa†’rÛ@òÞDòòø|(Ðr;Z4›Yƒ_¥‰FÙð_»b¾±_ƒ&_m~5Ælsïù¾­×SäÔèywÙ¶9F#>Š¢ïØÆ<[Sû¬s]ÇøàfÔëÓœÍaÀ”,fù6bUHÛj¹5rªMµÉ´´»¢ƒÉX&™q~ó“€å#hªgHãEÑK•'4ÀýË™dF¡÷Ä8ë›ÓÕÝ»O6‘,‡jfºJ ˆ%I´LÒxP1ÎͲ©’ÀÈwÍBKedV&«ÑTa­EqÆ”lrxrL•ÏÆI%æÅýî¡=XÉ„Z™&¬ŸúÕÕRNevM6½üiÄ„âx'Í?ŸÂ»hÖ1>+Ÿ>¼b̼ÑsŒPæßÚÎ ŒmH‰ŸC¦àm®Æ®°ž-JÇüÒl(Õ"íŒYv‰ÞeÞÐpyòæÃlSÀºZêoÿHÖ3G¯ŸÙ „Á'•7äv²dÆ·w‘M¬‘ª1𣑎ôeu15¤‚\Ã1|žºQóÉ÷Ö˜ÚÀ«!DáGì7ÒÁnç9à/XùCm7ѽé7)& #ïzüh7›Ö¬ÿÑtެ·m™‹Ý\^°5"9Ô{ß‚¹“uxó3Y/õ}£m¨†9õVùn2éûÀ³¾ÆºÒóær"øËN„Û ˆTLžƒ=Øót¤Ú'ì“RˆÏ_.ÍÁ l†U2üi~®„jÎà7ñŽËÛo0Wñÿº¸ZO;èªBͨ*Ô^©g^5]ín9GMîqQÍ{Â]R|“ _Â'Âinuíl5ÙѪ†¯bUhq*9=g×¥~ûXXÕ£M¹/`üU[ãä|R=]‹¥ýíÍXsisôxÐÁmb½Ô’À«|؃ÍyyÌuõÏÄ^ jÛ­²6vÈ%ƒ_µ†=ø‰ý,².òµÕ:dÛð½W¥+³›k€U,ÂûÓ|oU%l‚{Â|šBý‰Æ!­ï¬ùƒ/xM0Ë},¤žLÔmñgÝM&üªÿÊä7ÀÜå'øé°ï‘Õr‹[ìFÐß^ÙÜ#û\¦{o³æRž¼Oý«"pª†TÐé…vL5ª ªLa6°þàdêË?ü¤KKü[9]àQ¿=Íø=þ}§:ÉÛaVÆçKÐö ú¶‹_i$öí°U_TýCm0ÆGñTÍäÝÄêHêMH¿œ†»MãÉ^ |Ò­PR}Ì…ÖÌÓÉ+èm7Eûn0sýÍàWê÷Œ~½VRUÓ{L>­¤RÌ](NT(…™5>~ÊW÷Á:©¡®K zòÈ^ òI̧ώ«·¨†W>ñJ¯­L}ѳT0ÔIHcäAFÊ'0ë±6OÿÕCÎàÙŒh 5‘Ór¿‰…SÅ™Y™m(C\T{­,¹w÷®çªÄLö§÷ÏåwTO¦Ð¤ÇõÛ‹ñ³°>Nº ëù¤cüg›»1’aEž6Ô2/Æz©?_©Çk¬¦Áò!c¶þÒº¦ýÞϘ{Qî§¾è5æàÕpÚµ`ªF_Xß¹¿Å«q&÷Ô½LXªÈ£q/PÍi•'´vÇv'õÛï±ÊB¿n̈çãü.ÂøIÔ®¨IûyW{ð°9'§]3Ÿ;4Ü»ßÅZúæ²ß|j¿Ž<¹d«áyk/: øÜ+v¶jÂ/W¨õ·º`œoåù`Sì±¶Þ5'Ì\î¯}ƒÙî—`)ìÁ¦ßç¶ú7ܦ´|ï»ùü§~,è ~œŸæúû]² üêN0­-àW¥ÌzyÚYwwª‚g••×å: Gs<[ó[b”UiU³ÂZ2†_•Ĭ›…c R]9ÌÑ&À«w]²/òKñÝ ŸåU3°%®Úì>óu|}KÕdÂLöc­fº-6¥£Ç¬ªùÖ§Géõ¯j`ÆÔgV=§Ÿ„=kÆX½Iiw!v4Àçz>¨§ôw›vOt½ÔÀ7?Ï·3a]¼»£ç£SéÇ©{ðVêS%µ½{ÓþRF4 ë.ŸñPZÃé&ZpaõÁPµ=—ø˜É'%ÒGU†vb:ëJ’Ù$Ñ—•Ië0´ ›ð7ÙŒœ/Åh(0h€ŽñŠ0b4¬]ª¶Ú7¥ÉmòÉß²â¹:ŠZšã\œc“ø‚,æigÐî+Ä<ÐuVŒ*Vù¬!Lî”kB=dG¯[“ÎX÷Ô8¿ŠÑÚ £»²x®7¶Ñ6ÌÂøk•sÅä@ˆLéE„»Ù¼{ð3ò¥¿Xi¯¦(Gzöಎõ{˜ý¢Ê³:&-Ì6쿽hŽ4=å!iA–:ÿú sI½x×›"IÒq;‡9×;¤bô]¦±ýA®!b´/I5»Áê©Ç—&IÛá¢{É_‘ù–¹9GÍçö^“Èú8?¯°õ™ïÜT^µ5#颻“Ö›ˆ¯ °Öº`Ç=޵Lj©æçc@ª&ô¼ï$¿ÒÕžr1øÓö¤îñàä¬`«oŽ‘6ö="°¿.­Ã5g5ýº³·m’×€ÉýÆnimŽÀ(õ|°)p±æŠæU*W#^UÅ·›Ùóò~ÓÒ\Ãú8¸´ ¤$øŠ>+2 ÷¸ö`yÙ€«.5.QÏq[ÃN¿™>Ž;À+žöÎg4»Æ·÷Óy<{1-´ÚXsÃÐ÷0^Tk=m^©=X×f:ã¹î¨ùNN¹Ï}bìeàÕ.)V,×ÆÚøöàW—íûÔ­Êš‰ïIÆR½®:ýíM°þ–˜¾‹VŒ8Z 4*Ǭ§µ‰ÙèåIô¹7ãV“×#ðý¶þ)w¿àæÐìì%ö•¿»ÝOó‹Ü¿_î”yn ó/ƒ_m£>ÃÃÀ­D^NÎÊ(ô¾ˆ57¦‚Íõ§n`' ]æ–BlÁ8ÌEf˜'‚|WÀڪחé[Òß^V÷ƒþK×µÓýä«Á\ˆ^IôU—æGb¯,D¯}Ë6¤®p3°¹Y†™§}0õ°r&§b§Ptмz­ ©>U­@Ò¿SËgµéodlÃD3Ãïò0J›ùÑÏ£SˆUM3™GΓLôïÇ3?Í Rúlæ‚WLdíT**ͼ°vCXs>‘‘åynèˆa%ùítzˆTÛ©€<)ªy…|nÏKóJ¡õué£J¤~JX]"…h–INa´{y2«þûßʇy´,Bí÷tFuew•a}â<âö¢ˆì°Xüî9ñE´„=Ï cäW1zô3ã9ÕÉ<í[žžA´Ç¨Ô¤«¬¦,ìFÉäßÒÚßa<»Íù»xÛˆ|?£6+˜mÀ«©n#ìÁ%&×ý躺î„ê¹Þ¾~ìXPÇn“s±“®y¬•o&»M±ÈW‘¯#?ÛŸ9æ9ÙÖXƒZu·±ttn6¯YøC€ÝóØ×FÔJ¾ûÝk@°ö˜£Ëƒeîr°üj“éàŸsÁuf`ïŠÆºø«þ¢×ú´ù™~¬À]r‹,q‹À¯v±þà}òœKr§ÐÛBô*_Þ–©@âjT¾½^OaýÁÆ<·‡7¿­š†Ÿ§™Ç€WUõä•õRS}c¿#Rà‹û‡ý׬7±Ã]Ę+^56W"/¹¿Ý$›ÃŒîŒè³V´ ê`ó<Þ³Fbk¾sj!åb¬f–®ìrØoš™\/ªVØ(ª dìÁýÑá´œ¦šùÀ«>ô6wEÿ‰Ng¬geÓ 6|¨c¬yˆ½‹¥¨9 ýÎa>^!ÞüõT9N#>çª «með$^s‹¨ÑD©*ñH­CQ³½Ï¡òéå ³Ë2ƒ'‹ß)‰1*gBý«ª‡Uç‹3¿¤ «–%ޤÅõ°Â8Šú;’©a¥öf6Q4Ƴ¨¦ô¹Åx—’ŒðJf¬F&ÑIs ©Îì©5ãŸÆbéiB1ú¯ºµ§7§óœTYAC2°ÖX™ñø«»À;†Äñê ,¿åàïŠÚ_½'w‰¢l³è6–²™Ù{¡3ŸÓÏt—ÝÒ”½î üwüVÇYëófyh$Ú3`òÌm´©§ƒ_ýO†²ïka¶·Û¬ŽÉOX÷óí@Öi½Œ+0cDß5ïXجIqÅ´Œ¬±«æÌõ·Ÿ~µSDã|÷ ¯ûƒ‰ôSõ‘<»É¾ [õ&ÐZu¤uåè<„<ó| yv`_Vpûsû óqzÆëyUÂêUË<ž¶ÂXŸ7ýpÇxO=ÌTìé÷”û“U:R}eàÕt=¡w­mUàUwÜSkak´S+¬“fæqÍÂCo¦b*¿ê‹Ï 1†wbž«öó‡Xkm5fx5³ü´¢1Þs¡Ù=Lp»­Ïœå®¸!àWG€ûçÜ@&v2hl×Èñ—Üwà!m䈹b¿Š<ùÑÖ@Þ1§e§  h&Ó Xšq2í¨çW^l4K©6Ó˜Þí9eNCÛcÖÎ ît?Û‚1°nø#nŸ?ïÆš âcüŸþU¿Ý””û€WÓ€R»e5øÕ<ü´Ã[Ѭû ܃˜±ª¨âUMÖ»oŽI‘Dõú:ãù ©™w½ÙŠþvaþàMæá ÙUʶ6ø‹®˜oÁz^u} àÕ®3fàv÷?pÚ.^£A¢Ñ³Îû16—ñ )Ñs¶:Þo Váyœ>åŠ@ܪ¬®V³x„Ñʶh—é¹^ ô^}ßuÑŠNêÁ^fÚÚUÑ1´«&šY~«ïÂŒà£fcô‡èdž¹U7­e Õ_R+Ó¬BVgŒp*=L¹hß(fé¥r¿/Å™z¤RˆP Ìv.Ëè"Qz¢Ôî«Js¨9£hU’~¡|"V˜Ýœ‡ÙZ/~žæ§ò¿<ž&ÓCžDÓt^›J¼Ê‰ÇV`Ä|X=>Ÿx¤v_zSgaAeXI´sˆ—±ÿ;L%¿JûÚ˜?}LÁþ0ߨ‘®÷Ò¬Fß–c[ó‘É%0¾ý´*8>ª=°X£œêyàÕ‡²I2˜_sHÚà­)Î43kä(kÜh à |£ãbWPo³zš ŒÌ—lѬ‚\¬ýVØéæÒÞÜnªÓß®#ð}EºÂÔ·p+ÿÛ›uÿ„=øk¤¦`½ÿl×›$«ßÿÜt^5ci+yÝE ˜‹½o:*ëð–4žóz£ùÎÏð€yI#CÁ“ÿ(Qí.G‚¯ìTìèõñiw™ÌÆ7†›vÒÐî´ŸŠVå: þy›Ù7®tc©jŸÇ]õ,iÕ“i¼o~ ö j€5<-h Ì)‡¹­ñ ¹óžé…^žÁs˜9Ñ—]Ô=î.©/]R°×GÁ¯†›»ÜïRJöE†£mo³~Ôlü§ Oà]hdƒ*‹¼Åzô“ði/úèävz´êbÍ ÁʽÀèê3‡=x õ™ ÝWnëã™ÿÈ£®“ï;´°›äpìe÷Öu9hR#"ÇaÖd}œWñNû£5]±6ç2ºâ:ìj¨‡\ c¼™z}j‘®D{®^C;á½ÜÌuƒ¥°7+^tÛ©ß^S.ùîþŠÿÐoƒ=¸Ëö3ÀóvËrY ¼é·8±Zuéi÷Oð+iw7ÙòžÌˆëÕ×3š‘>X9*pº/F[Õ!4ÆB5õ&áß3W ®P4ïfÿÂ%ûN^-ØÊ¾¤ßîrŠ ›Ý¾¬ïæU õçÈk.ðã¬Ö%Özô¯ÛÌ—i 6÷0>«ƒõ½‹Ö^k|–u³ÑúæiäBª^Ûk'X6ýϵ¿Þ´°k£CÈ[æš~£ïÀ<ä§Ìšè—ÑhqÕ1Mdfˆ¢E5÷Ã*8•VÜ*Ïø«ú­2X5Ì ÌŠ+$kæJ9Ꜧp=–äÏYDº*ñ˜uf40~ø¢‰zªò¸¥'³âŸé]3LXë0;GZ&n§¥›°DXǹ:ó‹1Ϊ,-MÅ–2xGõi?& J…%°ýIq}†DƸfR“áßüžX\±/‹^ª ¼eo›MXaº.îYqZmÁ„JI/^s;vÔkå úìµ×*S ýÿœ)f_‡=¨þ¶~f‡´g[Õ“yHŽÅkÊ÷2ƒÁ¯z¿õÁ“.cN©úV-“#•¤ùð‹øVÖ²×ÚaMí_Ò›¾ýíöO؃«»þ«I‘ɶ'}eÿHŽüf¾!v}jNØ]&ÍêûýÙôŽl¡þUºé"/ì.zB{?fqDîÂ,¿–ùÎÇ1—š1Keúðw“CøYäuf¬·‘7ƒ‹°u^ ¤Üƺ=¥“ÝcŸ‘2@ÀU–`5T¡5¦5'6 _ é¿:ƒ]@+Q^Æ*¾ œí‚ç6Às:ò¤®’꯲>a3 Ê«f¨}[Nc¶ô†UpÜ%¸S°‚_åúZ>%2ÏéÆÙv²#¢u@ßÂkAEÏŽøï!ðªVøéàÕc@¯±¸cMì ë¨ïÞ ˆ9/ÎêîÀ o‡VoGoÕǰ6úðê¾ ,ëF|+7Â6Ÿ‹fàÔ^u°ëäxìOÄšú–À«?íÙÈùÈy«Uæ›—e#ë;«zÍì=µ±SÝÅzô-XvлùÕZªuÀ˜¨2U3)¸Õ}¬¿ºÃtôÝÿ™»ÁTëæócçÀ¯jÉ^£_VµUÖÈ|؃#ýNàUY³Bº?ƒØ÷ ò©ŒÇHáùÍ1oZÇñªñªÚ4íØ‰OÁw¦˜AàÊI[Ü…=.-Õjフ¿ö`G­–~UÉðw`DÀu“XÏ«$,ÞÔè[¶ϾÚcão­â§µÊ´æ¡fl¨òp ŠF¨òo]À7ªû;Üt`=úd´»–½5:Š1¢“a®^éšÊÌŒ^ŠÞDl¨eêËmTaÐ:ƒmXo¢õ©ºP]+Ìõ«ÔÌÇQf3Š=ƒ~¤t"T¨Ÿ\)®ÿ©hPȳÃÞ³ã¢R‰•ɰԖÔÌ™ÒôŽilC}´?1ä©<ÙO£-–ïÌáJ0—9‰W„1á™`âUŒ­.Mn’ÄçÖ§þU ýQ©Ì~ •›³MXÏ+jTÿJ‘:Ô“qñxQ×êJfïTs6æwqµ ÕõþÍ×dW?+¼Ÿ|Cï›*ÝÉz©)Xeì)YÏw>"­±Ž”û57›ÁÕ»“#]föœÔçø Ä¬ìpjÓö3e¥&ëfò|°=f…ò´ù¦Š½$C8F[ìkRx¥g_)GÛ¾¢þ¸?ÄʯæëÑdž³»MŽÕ7,ÜgëñóvrÁV”¡­ºÖÂUìø˜ÁÌ~ð¶̣i${–`u¼ÝýÀž«Œg¨ ¬;|{°ZµŸN æbÕ27È(û(ðJ+Éä¸6`Sìçß> +³oyxW˜ï\h1Öü¦º‡Øãbíô¢ÞJ%jFU§vp}¬ã±À«3zrf–D_qÉÂ=©¾È_±Óq¹n’­-÷F†b•|ìkà U-Ð õ=×EÛaå©/n8k:L4ªôÛÏÌ‘›ñ&õ,ùv¬ö°žï¡o§’Ù}&¸ö`‘YmÊ»ÿ¹jnŒ{ܼ!{ÝKþ?þÙ -ðêÃØß®|¬¥o$ÌUûzä“È'VkN6¯É éÃÊóèý-Ì9ÖèõG×Âèng-bÍzÚ†ßù’Q•–|s{0Û}ÜŒ¢µóϺ-þ#àU%Iˆu÷I±}~=ph›Ÿì¹¾àWKä.·Ø 󛜷°ŸvWÁ¯fbVÀþõ¾¨ZaV]Ôh õNj}œ>¦ ý%Ú¦í Í.Ÿl "®†h´CàWÞ·÷+pEŽ/ð먇ÜÚlq_¯yÕV¾y6ã$«gk Mzô}êõÕ¡šës¬! û”çƒÍñY}†3–zJW‘•ºR79ÅjÓÁÞ{0…zY·øe¾=WúsæÖèûÑ™Œ­dêÈ­ŒÐJD«Û™ÎD ᜄu—÷{7CßJa¾eò”/‡,!ŸXF¢;ô¿<3h7Æí² æUf2kOÏ5ú*¬]‘õ¿J±YôB¦Òiç…Y&c%WŸNM˜lFmæòŒ/…:0ùÌYΤ L&­§\úÛËpËa h2íÒŠÄ®lFµ†z}‰ô_…6l¨¢\Œ±îI´W=wfüRÖ¦I¤®` ¼„h„øÒô ^ß ~ÕP>&ªF`ÃݬQ¼:›ìýíéx'û¤-u_“T¿[¾Ž»@º³R“ûÂ(Ì\#ÝøN'÷× õúô½,'F-2ì2’;Ãzû½”±Û­¶ýu“!7¯tWQý«?Œ±Šó_˜ÃvãE“€,}#÷ÛúŒgè*§l­HŽè¾rPЃeçS7ø 9†9ÝŠçƒÛñó^r­°’Àª*ÄŸ¡r"øx¥1¹šb²$¸³¹§™"ãì#ö Q¯òXƒ+ÌVª§LÅ}g›Mk­Xö>Æmõ‘~Ã*1Ò‰±÷`•cõòêñxU"yÝŒ¶gäžÚÃÜ=ýrð¢û÷©¼*éÓ`Ž6m\W[GDÔ‹ÏêÜoÎ{ 6pwp›1ælZœ¬ ûk%ZØM=…À«˜+Í7àwŸaRCu[ôd0Ðm´h%÷¥Kt׺#æùĵó]©×·]VÅ^t>VÏ·^}d?Œ|ùÐjý÷Óæ‚¬”aŒ>ªv3…xuÞ{uüV+pìÐÚ T´Y‰O¦›7ðŽç` KšiÁL÷i°öàbÓ öà=¬ï\^~ñ=üþ ¿ÑdÊàWS\7¿ö êõ ðÛ/z»<é~ D_*`ïK—e㛕e©ò`ì30“FÃTŸÕf°é®À‘šhã“A–+‹Ù×Úöo;ñÀ¯ú™<Ÿç·øOœŽçV÷¾¯è[ùÛÐòŸWWÝt«êÆ·™Ì軬—ZcÚß<ÃSµ*ÀÕZƒ¹ø{:øÖ²ò´Ù;Òšj€=dñ*«¬‡]MÎ2ÎLñ·øä ϘyÀ«éø©4«ü[/U=Ôƒè3×x¥kU© §Ò7w+9R*c¢rãZ¹q¤Z…¬•œE6£±þ¥èsJcLWZ¼ZNíÁrqvÙ["ý]™w¬zÅi…ê%ˆM©¬–Îø¯,"X® Õ˜“˜ÓWDÿ•2£¬xüU¨‹U_÷O¢š2¯|VîJâ¹eùX”ù8¥ÖL$¶…L-—žñŒäL¼ëÄÞâÌW­ÍÖµ2ÿ1%ñvÕç5kpˆ|Âþþƒ÷µÉTfT=—û–ò¨¾f´ÂN§£ÒÑ<€ý·/cÆãÊõØÕ2‰{“Ìwx—:ʳLii'atÉk˜C}𷕦ý˜¨§[­±ì*«ïE½ÿÓèoO3߬,éVÇ è`ï7ʼnW¿›6‘í¶(—k.Çln¤ó0 Àr–2 ¨#Z}‚j}Zçês6•VN}ØìB?Oþ6r!¸lGˆæVí6Yrc0ŸUWfÉ|û¢=.ExÏ›·±Ò÷0kZíÁñÔoW]•÷€ ½˜x³ÒKLTQ¼¾;”'>:×5£¤cÀNšöUy™õ&nŠžt¿ÇÜ÷š-9>ßgFnD›§¸B›*ë"X~î|3ö“Öøó¸ÖkÄ ‹õrØ:MsL˜ÓÒ$ÉX¯µÁ¯aì»b¤÷2+¢$°ñDÐÝ­ jjT;çr€W™Sò°«åçÇÞ ÚÛ²1vÆ¥Ç*ûVò¸¹d¿<yÍVÁhM^©ÿª&ž\ lnkgm’ÖÆÔÀXmÃîSÄ,‚õxÞT òi´ +fçÈ`¼»l…=¸Ü´ð‡Á¯Î¹ñ¦Šüê[úßý¿ÜTe~¨_ìºøÍô·ßæzø•° ÍRyÈý<€ÞªÂfI9%ã`c4À¬k„qPý«ÎTô„OKcMÇLÝFÝóº˜åß^OÔ¯þìAï›û•øf®Ï†=øžkжîrïù °ÂçaŽþ9çþt³l.«åF_¿Rý«Vè寱^ê`¬m=Mšˆw2c¬™%å˜ÏÒ…k¸žú= Š%«L»2:„¹É3Í?Ï·¥­ñŒYý0z=ý]Á –0V]+¶Á]²èÅ. ¼šF?T2ãF2+ƒ™Ð¡¶z jç¥q}å³"i+ŽjT|ÆE¤0>4—,&÷¬Ëʯ)ñÓ>õŽÅhE5¥½[ŒX”Kþ’Ì;gr½–0Éñ+²y*˜Å˜ª4ú¬4Þº€mŽ1«¹$=>š£'M9q_Xu“L¨û—çWZ•¢ó#DIOï•çÉd® «Th5ª1ŒÕÔÖhµ‘Zø¦ÃÛ¾Õ“>´[ÀbÆË{ô‡[pŸØuÌŸ€eö-vÚ\Ú}›¥ fˆžÕ66ÈÃ2˜'ׯVÑLƼìϘ·Á&WZÃÔsÆ3ø–ªiטö;\«#ò°-f{ØõV=vߢ5ÛmÑlîo%"ùò}h™afXe¾ÿ˜f‘{msÆ94–ƒ6ö ^»sÉË*ŒÐbàEXÏ«…ªobõ¾ŽÒov/ðæ'°€üÜxõ_{­”ÆÚÜfÒ€Wª0ÒÅ\+ØÓö!Ѥ— ‹1ZÇòFì S°2‹S“÷,Pafv ó'FöªIêÆûðÍòÌܯ ´Ö¸Ëö©·0‡_“˜Q=Í¢èq÷wpö ¬rÉ^ÕˆLÁ\Ÿè:Ø’²9ÒwùŒZS™ÏÜìa&Zß ïpZ¤j£ZáHu5»2ßYd3[aÍÄ, W4£Í»"újp­[TŽWqß¹ún”;j^•wÜnŸû,èc×Ê–Ø{.3VäÊ>ó—ý&r(rÙjÓó·ìÆxªzL+ô|£ÓîÂ;¬Š©ÆùvªuÅÕàœÂxÑiF½5‚Eî³`~0žùƒšó®›jjË%ߨÿæŸók1·öøëavòÛñ”…n;~Úì¢6sïI÷ ìÁ[ðæ&š‹@×Äü©ØíƃqõÂ8/O Ï«=¶R%QíÁÙfsä*‹ÖÔÞíß§>Ãrõb”W¡ ‘·Í½ÌúÎz¦ú}ä]ÀTe¹-æ‹ÈA«ÙDõ¨ wýÔ8½Gqß¾¬¹” ¼~ˆX¡ÂKC|³ý9U¨¯8†(²öàRÖÇQûT?Ë÷dìåàÕÇÑž<ÝÏ1µd3õ5.´#þä™PW¡7ÖX9úƒJ㎣‰OéŒÈÌãù]† + †zêeÑÆ’qÏx.µÜó¡Uˆ÷“Έ­'¯•1iT4žû4þ¶:ë>¤Òr ýOaEœ4“çR©qoz·™H V\ÊŸÄÙQ6-Ü0*L+7¥ý˜À'…õ‹ñºÖÿŠ2RBµ[Æ0$ÐÊ s sâú)Øå·WÓþÊÃ8«r³Æ•¶€uô—éA>¶À¼©1”ô·ÿŠÏ–ÁZÑ8Ô£&°ïËêFµæûJÄŠ¹OÞÃ*Õ±dFÊiJ»wfÍw˜UÕßÃäK7éÃŒ§÷X­mó­6šºö’\ÃsÕcöu©e7°ªª3/´]DÈ~”ÿaG¾B«OÌ7àWVýkÓ>²Æ¶ÅüÆò²-)%jkïTß•,CUŸá0vûÌïC;±’váéeÀNö Ç'XU­|üeû‰VW_…O cÞ ^í±/Ù£¢*Hg°ö·0¢?0c0ÖÄvf3Àßk­€»þY‘TifÕÀìGŸ•_ÕÀïnÁ(×dÕ§—L_𫓘‰ýÌÑ—a—si¼ždøÊ¾lD•ø®sÓ€W;"×âÚ ø^{ªiª¿ý~ìMqßùhÁcø3Œõ൞¤V9noþ6Úò*¬[:‚úW»ð³úÖFŸ^m j€[ç:ë˹aî˜yIö»?ü?þ­ ¡]!;c_¹üXMßQö‚_}9ùÑjŒèróÜ%Ch–rhÍÖk˜S•*ˆýÀJoG[UelóqÎc¼4–µ¼™Lrÿ Ö€“­ü³Ns'›jâb­üÆo€ »Öß ¼êâ7Ê^¹ÕÝ ~µÑý ¶;Y¿zØ«u-.›gEs;a´;0"­;Z0¸ß­ÈgÔ•x«=Á¯jR¯/ÍÕ×mdúÏ]¢¯N{6j»?ï:ªÅî.øßËÏA»‰œ‡=8ÛªGi™Iˆ¶M14?rykRí­]Œ¿jB­óë±Jfá)YŒ@Òç^´Gê2BkýiªyL®e{4‹å^üœN]šñØû³}m1/{ÂîSnv«L«m+n¯5ÕíO°Õ–|ÑþG:Øå¬Õõ·É–Ͷ354ž¡Š\ÍxË|awšt«oê;؃«¨é§ñí§l™H Q.·^3Û1 J­â{,ª+£¼ëÀ |õ&êb¯Ü|~m¯ ¼ºüd{K9|~ÆáÖ`.Öú pÌåö°}\ 0_.‚GiüUUž•_ƒÖo¥Ýß xu8¥¾ú+øûŠ ¤=F¡1¬R­Ó„qš?XÏm€çw±/“_u†œuWƒçÜß`aõ$Ë—ò€W×›‘î:[\ÖDú1žaÚ>‡Õqƒ-M1ZQo¾µ×<7Ù=˜Dé >Ø–éBŒ´VåYBu¨ h±ê·—b<à wøÕ\SÂ]Nrχw‡ýÿNPÇ®–wb︂X=ßEvaWø r2ò§Õz^ÍyY†wWm¨v9…ѳу*h[Mê_- ¾h;s'æïTŒÕs@ ¼s3+¸Á},F)“†=x7ìÁ ¦üä»ûÿùa£5‘;ý(« ~µG¸%®ßÄø« rø•Æ_©zhLÎÂrÒ|Ì!)ŒUé ôìÀª)%ñ·æÅªÊÍ4Œó$³çƒð­}þ#Æ_-ïÉB­ôo“_Ýë¾ðE¾‰¿ wÿ9ò¦ûËͱŠ‹LjôIÖw.M‹ÿEjH•Ö¡^Ÿ"™zÃU/)“yÄͱ޻p¿®…¤=ë;gbnµwDGrmßfæøÙ¾ãž1SW;­5™ÈJÖbH§ºt_VÐRŒ Þæ–çKÒ7ê‡QL¹\åiDš ¬DÏ/.‡§•a•Ó,zÒÕ7W¿I$–¦¿=)îÇ."Fdò\3TìK㿲ȿ2ˆ3å‰?Yô3…õ¼ÔÇ^y@1j5§o>F™ºŒ¿ ó©ó©cô}Uü4þ*ön¬AgB¥¾$ú¾BÛ/-鎽_ë†9HšE[“>·6°<þ1÷5×¼j:ÊŽa0ìfpVíáSÆØ·åæÅô2J æuzÌËUrßÓ§2ƒåyiLÛS•þþ‹÷˜CW)i%ý¸×ã Ú bûͦ¾ý¼+™þ«—¥’Ýf_?‡]µÂv§¯ìoùͤÊÇŒgøØ¼n÷R Kk~uЬµ­èoo'ïØò‘’¢µ…ö¡‡¸-ÖÜ»}`‹±žµ¶ínà…ê34ûÙj~ PåÈŽr2øö Žñ@èVÅêý}†}Ǿ(%ð/=ÜĘöàƒÑî Ôá Œxœµ®¹ÑhK;ó¬îðŽò@)ÝÓ¦’—×ÅÞpÖ´c;ƒkÃ<åþ žp¿â=Ôõ—ŽÜ ëêØJ²ùƒçxÞ4Uèk¡ÕãqGU|‹~=†wÙŠñHëðÛÎÕ2²}U+mã ÞG‹›²¶ÀàU_·<¨žSÒ}ë~Û:{ðy×ÐÛØÙ ½GNÆq5a¶“{ÌàÕ‘©/ºÝœ“õ¢Õ/4Chz£QIÆséªð|Pc¤Ú¹êaV¼K%‰ö˜¿c‚‰´'`}7^m÷»›ÐÛo?ú}~#~Þä‡ùÉ®«ß¹5üj ßà.ãmÜ {ð«à £A:btOÈ\ T `EG´¡ «„_gBµürTqYeîÅ{›ŽÕ7xõ[P„wÑÚ¨ àywc¼’anA:²¾ó[Ô¿º ×ÿ9Ö9Ùª|¡ñÑ#¶>Z_„ž4ÏãîUñ³ª÷cÄY:v¦i`Í“¹©ùššWˆµ ü»5pQÏ’›á´Õw|“¹ÉÏ÷™ßû¤™}=:‘šÕWwâþIôk·ÆÕÊa4y6îŸÇxÊ<ôp"ùT:ýÞ%èÊ1¡r:ý0Y 5TRÈ$¥ð·¥1ï²™O­vœV!ýWTO.Á^«lÂz7™qOz[”×pO£'¾ IÓù>·ÙeùxŽsf¼þ`R\ÿª¶ÉŠsª\¶(™\+ŸñMaL{EÚŽœ*ÆßÇLXm":X™X%1“v†ö`=ž'¶Áº»„[mÛµ‚|H¦i¥;fxyQžø ±@”mÔëëiöbïM,nm¶ÊiEž6Þ ”¥>û3»àï˜[ŠÏׯªÁîÓ¨‘ÓX}íð65Nu¾©i×%\o¿^­µúÜÁ¯”Çþ&W¥ÂsÃ÷Ì«vŸI´ªTñ§é¹ÓÖcüªê!D"¢#ú vÈtÙˆ·Q³òqÜ«£¼« ß§¥±»Œ—Ó̯j(‡ƒO`–lëÚhÎ~@Þ[í{HÊct.à.+q­ªÓÍDÏa'W×PX¨oc÷S<úc›„¶vf¥©‡1÷ªóä¥f^u Uüÿe3Ю——ñŽ{™iÑ7ÝïÁãÎJÓBò}¡/™‚Uw½«móen¤7öóWÀ¤š2B³3þ> ”×ÌçÛW‡Ì#X¹Mу©X§0ÎÍL 06¬\¶k©;ðj/+ŸT3Ë¢'€Wk‚ÊŒ¿úÆwƒÝ!sJº^þÅØñ ™Ý.b/¸|UßBö›_í…È=‘O­ªJ¬5gåQé‚u:#7J•ðæD/0^µ˜Æ_©‚„ž¡éùàqŒPwÌÍÁMîÃàöà:Ü¥¡Áíô¸ëÀ×~üàÏû;Le¹ÛOòS]¿I6Ê|w+~Úí®J3W޹KÁý`ËeÑ¿ ySãyªm¥rKÍ¥@/»a/Tí—ºÀÐ%ÀçîÕ}20®¢h›vŸ¢¾‘_ÙŸ{pìÁ6àD÷¸W|mßÑߎ6›èq؃S¬úØç™bÑ“¶6V™*¼ô¿*ÂûÒ8ÒšxfKÆANB/'àézþ_­Òú«Š]u0F=jê-^a®·›£ƒ‰!³Í¿üJùÇ‹æºèkàW‰Œðj-wc݆çƒÐÏžÓUA/–ó”O³…{°žG6S F„¾ðl"EO2ËQ]=Ñ„5&òâ ¨«Ú”7¡’ƒæ•¦?»€>ýRÔìÊÅxÕ!{Hb[ã«4æfÐ’ÓƒB®êt²ºõd4B??»•CX=Q…¬l2»Lªà”3aÕÕŒs Ȧ é¹ k§zj·3¡6Dh!Ä›ÇXÕøÁ˜kÅjÆIR¼ÆÍT`×@y‡­^7t›©!õ±Ï$Ø+²’õ³ÔîkeÆÑb–Ëk´éRñÝr\êð”õuÜéÌbyŒ§3õE3ÌkXÝ1Ÿ‰7˜¦ö2šž½sö5im×Q7¦œT—]¶¥èp^>þ¤X½Ïë¦Zd­‰±žW†4Šlµ­™ï|­¼¼J¥ï}8@–lŸhìÞ~à‰Öú,Ĭ:`NàßÕå°ÛDå(ó®úËéà#ÛU”k­NNnÀ ég†Ê3ö5{¯TÂZ¸ˆ]önp3Í`‡ßÞ‚ŸËàçV@Ð3ØOUËö*ìĈ\¡-ÙxÖ“þ+ÍôœKUäÆ˜…ï›îvp²ÖÎ(¬‘ÿûÝŸºoHìÁn‘ÉXµa U‘•‘!¸æUß'a=´ÄPÕª'ÞÊxàá#¬ç¥ìm>Vm¬ºîÀ«†è_{pÙXiÀîmÁ9{gôhÐÒÍ¿rç\¶ëçN˜Çäu×Ï/‹½Tµƒ_½å|¬Žï&¯>Šl‰$Djàý}`Þå2½ÎÞ«öÔhF‰èÙ æØmÂÓÊâ©íÁÜ•9.~7¾UÑ ®w?w¯6›Öþ·Î¿çÆa~ã{ù¯ýi¿Æ4“5~´ŸVµI–È,·’z}[ÒÜ{ðïàaŒuEŒx1yYÖ2 q+µ¤RŸjðuçnÔ £¼üª+Æ£‘™…]G\s°þnf50RÀ£–Ñ’|Ž×{=o½×½á¯æ£ßG^¿ZhÕŸ½ÊÄ¢ûY'È£‘¹ŒÆ½ŸÃ<èNm¾lìs€L7ñä½ kÅuà*kôì¾­jP«Í ûHôÚnsÍ$¿Æ·!âœ1££E'Ñ'TÁ4•;¸–3è=èHÜP»ýÈå‰\ÞÁP´%/ž+œOTÊgÒlþ¬ñ ¡¦¨Ú8yÌÇQË'“± Yq åLf–¦½U6î“O䵪R›H›1ÌGL‰ûíCm›Ìx|jèoO¥?+Ñ„Š iÔ…È ždÒ·ªùeÑr ÕFSh»R)&ô„å2ïF=v%‰tŽÜÎ3¾ÝÑ -eBÅ™ Øõ5v/8Ü‘™ÀúݦækS$½Øêæ”™(Ÿ0Nâ ÌåXýŠvGMªýE¦‹ŽQ_Úƒƒ‰²å0³a'Sî×Ë —­R¼±7v*ÍÔó X%@ ÿx¿šE¯X¾ØTÆ=ÇÿwÛ§e@¼ÞÄ?ÆÈ|ÛEtÜ~–?ñ¯lž~nÞµ+MíÁL¯È6ÛL´/}ä;[1’/ªm¥Õþ@K±âß3°äÔ]³~yxUÈ¿x‘—¨Òüê¢nÖë-O &1 ±/Ù#¢ñL¯šÑÖ=<[ž|º›õ&4šðp‰¡äãk:͊͜aÃ1“ÕßR}-dzÿò`Ýíf9Žû\cFÏ9ç»?ОRÊ÷¥"s´z³+nëÊ𫺰e¯Á G_3 Àl´^óž¯1Ïš'ÀZ[£mÓÍ\Õ¿%ªä^µÔhêÏÍ=hA60sKôÅ`°[Ôb>Λ®–ëåž6å«çÄÞÛÕòVlû¼§©0i‘#÷FÞ²uxÖxït0ú 1XXób,ð»ŸÑj_u€WûÀ¹Ê2¢bµQUÿ7V‰èŒµ18˜â~ î Fcu^mvÌ0e¥X¬‡ÿñW¹²ÃÏðKÝõ~¯,`|û`¿üªœY)'\1÷ëGôÄ螻гkÀ@[€åµÆ®ÐØØ¿Ó˜ØVøl-,SÅ«²ø|?øUÑš=[ýw.Õ7ók±[Wóiþ~ÿ£k¯êîc_÷ðzÿÆ·¡ÿj‰V˱EÔYéŠ}àQîv¥qo=5n†ñÕzô‹ðÔÉ*1_¸ÙI]àLì#ÊBVšÁv'ìÁlž=ð›|{Æ'½`¦F?Žç¹YMØða¥,­#Þ‚¡Q™Ë1Ú™qõàkðvÃ*Ë™ŒH¥+,$TH/ûÚwÊ£*2—0…¹Ø5!¯W”ÃçUèµO£fU>‘G5gš²>Nêÿ ¦“?¨‡>7陋VaTD:OÒÈÞbô·—&F%Г—Ï®ßVuJeSaµ›RŒÛµéi=9U!ë•%ÐãžÈ¶‡5½ÒâQ§i˜_7bD7Å{\o³ÛÜÖ|e*Ix&{'ØÐ$ÖÇI¢šÓ|“Êz^/.´D”SõÃ\o~–B Ü,¥'Ya3Nîf ú$Óšù8]É"›ÊÈ8òÈã¦ÕôÕ··ÎÔ³ËPŽÐ.{^zØ­VýTÿ5™2Õª&U¦¹ æ•ýð?šOíf“K=äL÷ÈC¶¦è~ÐR.Ø¢H}æeoA¤>Õ\¬æÇ±zºRg­&~~k]Ql/lC+gñÞ*›Žò,ìÁqRÀ,å"Y,à‰ÔP™bC+Ñï­õ÷°êú4쬋°B5;°,Å0³ô,:"×ã¿?1»¦ái1Fe°sÕ¥¿½*óqšc &£ºÍøèiPáî7”L_ÁÛÈT0—¡.×V—õ‘xã/a¦ª¿]íšàTªÜ×H8ý8 ¦Ñ”ÕÂÖ™vìáa¬µvÌT\‚ötOVÅ®R@™ Ñ—‚¡neP ¨›ç>võ\÷‚ùìÁ†àW¯¯vÉöØ9wvS]yÌ\²ïDŒ\´5°VçÂ\ ¼ªÌ­ T˜€7«[Ô¥ÊOm`[/Ã,Ð FÕ@¸~Wõ ^Íqßë‚á`|mýQ·Ûén€ hcý},ö¿ÞT“M°g»>~·¬“…n>k½û £~³<æ~!¿jŽ>“³`"ªÜ2Ï™†6\‹§÷¢S(± ï¯=³5¯.U¥£¾SÆ_©N;Z~µÃâ4Òi«ûÌ—b-Öü9åRüuV3Çš$؃°¶áîý0êꃬ…ª«¦iõ§áûZ‰žß)¿êÂS·úØ»zR_4ˆ3ÂÞíËøÊ¹fðªõSŽ›¥Ño`&‘Ý×A¯ŠÓÓ‹nŒ(-ŽþŒÂŸ<Ú efꆕe2âZ ©ÄŽ4rTÆBTbìSc㋘m˜Æ,šª<ƒË¢ç«æFèãÒú8%éåR­u<¾=éÿ<îáÝÃj‡%É»²™ë—jB}@åbŠ9ÅéƒÊ0¡f{YÚª Œ¥oeêÑúM&Ææ³ž—bZqúÛø…Bž?„õ}\±Ï1N+Œ|MÇxÆ\ÞÀ~æaŒµzy"}Pê1êM¼º {÷ð+õ#]Â7–ÁS÷ˆ)n/Ê ú²z›#@·iÄÒZf•¼n–Æx†q²µS0£oÁú ë¯õÅþ˜%Chž£÷xyìnÓÀþJ=™Ds¿=ÌüA³MšÌ°Ã÷õ‡qb­æ@¾kÞ³;L&¹Ö×àWÏnZÉEÛ4R]ô ìÀì0² «e,Öø“¸¦;Opê˜ûÀíöp? þ“*o0n¹/Õ›v,¸Y# Z1,feÌqr=c_"´÷Sø¤!VÝh´â& e.£Z£]¹ökÅ»á=oZc&Ú¥ÑAÄ–ÙæF»ïÌ~ÇÍLæãd1¹¥ÜÉšËÉÜ#»ÇOþJa§c…–ây_g¬¥ÐÌä)\2uó2â™9©Œ ¨È{'˜P˽±šê#oÀüÁl¢O!£Ñõ®4cŸÂz©ÙøNež3‹³©×åÄÿ•Å“·|æ ¦ÆO)Sé©÷Œ©-ÅøÏ*†«´¦%OzRx­4jf°ÒXÏ“cŸÎø«Œ¸:CŒ,+™ÒбЦaÊ$–¶`u"m§ê3¤Kþ<vÇù†¼ FtEßË6S`¯‚³«†^wàU¼³dê3¬—·¥?qù:3BöJölFüg|SùZXJjo*›<‹žh=/ýù!Ó öàâØ>{JZÁÔ]C+¤ÞlG0÷çùÇÊ×¢Lø=ó†ÝÊóÁ`C—È“¶ÏËÛ¶F¤¼è»Ü |øCužÐ“Îà9ç0—£Ÿµa¾†µU#ÿ°yÀ\ÁÝ´žv[Ù|e‡Š®¼°¡†302MÌ™lߵϯjšŸ€zËpçÊÔ0…Ö¯£Æö ó¸ÄÌ„ Àæ›ÐßËXµÏaþÞ‹¿Ëký^ÖÇ©I_VKàUk»TŽa¾Œ4Ý¢ÇÝoÁ^؃M±Ë&0¾}*Ækœ+wmdžvë³%+<´£Ýu£z©ÌDüwH<Š÷œ€•Ñ’–ÊIFjEîÂŽÜ–ð}@4Õò]}4èéæeðV2Ü—°Ñz¹ÓæUYévøÓþÅ  ðêXì—«ã;Èó=99k+3/ïÞi_ªþV¥2A3àGê34¥7ðp‰ò¬—ºh~#¬gÅ«NèeŸà:÷ãE—™Öþw§ x•/ßùjÞÄžôKÁµÖú!~žëå÷ÈT¹ÛÝáúûUÎØ&fƒq‡TY;MŽÊbfÒMd|½Fröâî€6æ£ÿ3`o¡oºÚ¸#ø2¨¦ßÀ¬ñ:ñ1¿ ïKó÷û7æ/ìtoûÞû9héÕÈY÷—e³YQ#+zƪšs}Œú@sˆ5öê2þª/õúr°cŒ£b±z¤K“ev宎qïÊs¨TìhcíúÛÓÑÎa~–ïÈŒ•#fNt_ôFÚiµY§~c`ëÌ•£çƒ±ºB}UÆעʠV2óðãØ ˜PG 4ò1ÕíLaCëg´iIÌÂÊÌ0Ö'—Šg2‡þ«j|nxM6‘"ŒU~T@¾U’ú¦ÿF†Q¡Ž¾Ñ²Œ¿*Fä. /«Ï:0k1Œ•׋$zú³É·B}† äWšïœÏÇI"Ž¥°êçé‹qX‚?ilgSŒtM~¯‰yÑœðàUM؃ʻŒôÀܯÈzûM1{F6CúÀìl²uíÌ&¹æ­|o¬&ïK ž¨ÞÆ?˜ÃéäWN*Qs&6N+¬ú…Ÿ¦‘ý¯ 㘯µ¯IqÚƒ)`-i°{ˆfük0C~dzæûI§=ø›éyÂ6e°mäuÛ0’C툇qo‘¥½Ù˜]¯Ô¬C­†ÇXQô~ ÓïæãVšÊÁà‚í/å1Æ;Úc`ªŸv°Ì³ÛÇD£>…=¨Ñ=ZƒOëÎF”À{î »4®¬šoÔ“¹‚ñP>·«©<ùGi¬¤JüF-àOG;W^Æ{êcE¹¯èooŽY›‚•¤çƒã̵®½m+«"=1ûa?bõT°þ<…uZ+òvò«}ø®2ù)f+½ðÍMU¹ßÒZÖK€s]Ñæ0k³>úJp­[~µÔ”pŸ»7üêŒìwM|Ø»A»öàÓÀ«j¾³ì7?Û7"E>²µ©…pZ–°½âòPðаù`ePõ÷·ÃJ^‹§¶Ç¿V1ÞCcïçaíåƒ_cýÁQæNÓØ¿ì¶ùsî:ì>1<ç’RY6ûa~¦ë ¼ºKnq‹Ü¿Á9[Ú¬–½°÷ƒid£¿Iò´hEø<>*ÚÕŸzȪÁÒ€¹Q“x"Ò»¤ê·?ü”ÄÙÖÜ>•^¥úWå|q¿öag\·Å]¿ªÉxÑË‘—ÝŸî&›k13£§lzÒ›à ?Ç3Þª°uk7ÚP‹s$ÖÑ2<%µ”›ãÓö¨>ŒÙ·su÷¯K»±VRŽt%žô=^—±öšê¬7qØ\‘d5<{›'¥=ëy%cUm‘w°“%›PŸáq©ÏQoƒ_pO=wí>_QFóçÓôÁÜÁwt‡©jbœC’Ùj•æô·§€ÏäÊÖKÍ¿ú ï{Q|»`¾…=XŒz}¿˜Î‘=¶…h_»¯ª³ÞD 8Åle½Ôùª.i^¤'X53v›W°Êµ>ÎN͆„]V¨gOr(øÏÒ¼Ò¦¶,´ÂÓ5¦¿¬±¯¡MÕ0 ß‚.ĵU±fg5¯rßþFnãN^ý~v{o.Ö›ëËcÖO3ET»Süéj˼¿~¦Gô”wxÕØt^åûÜȬˆY.Ñ–•õ=§Ñ¡ŠLGX&jv›¹ýzãÛ’qÝê5êŽ~u•EuͲZ€÷<€úíÍ]¼:z"èïV5Ñ‹’îWà®q/€7rÉþ‘ع ¾}PŽÆv¹ï}!øÕ£ÆF¾ŠÜ {°*Õ_•Õ°Ùk°.ì ÔÊ»ìN+¨jþq'pÉ»0’íÑÊUçñ“chAŒÊ¸`Œû&XŒ¢5õ‡ÜZÿ®Ã]䊯ãõ¯úÕ&[vøá~’»Ö߼𠼿WSy©ìpÿ žÀª5²äyY‰wØcЄ8Õ“§Ý0Î °n”nÂ[ÕL/måS¸,ê‹>éϰ¶ïÂìOñ¥üÿìÁÖ°?öå|3Æèräu÷·›có¨^}ÉÖÃú«Œ±ïžª†Yú¦ñ¢ºÃgáY/2–ÁÐóšÔgH÷†¶Ž¥ÿg¥égo^Ë52ÕÜàWúN<1;a¦G7EÇ’GU0`–á~­U€:3Ö]±kúÖBÎC‡ÓŽ 3K™P19Ý„ZïÊC*Òg•Á¸­ïüÿzºø(«ì{ß›ùÞ›tBBB$4éeAZ ôB E:"Hpm(Eš Ò‘"ˆè‚¬"ÖEP .ÖUt±¬Š¨ÊÿÜóÍüD2™™ïÕóνïÞs+Å_×<üÐw”ÆÈ­šèI:}øyÌH •bš².| -Ñ0RKíÌìx~sU2ª\âR¨˜ÎL›$ÞEÖe5‹dæ;ç3O Y3¨2o*²JOCÆ‚fÅã2b¼¬I$ ˜õ˜÷¶‡ü*ñXꟊõ´ˆ¨µ­¶ÉÄ«SÒÜtã}è|0Öæ,1ï2xƃX+j/’ˆý'­ö¦Lö™–2€cÛ@¶šm¦„ºXÃÌBS—w"°“~f½T½Ý,oš›ÞìéaìóîÀÅï;€W¿ÑŸ,›ÁÞúÛUÔýüj®dÇ.ƒ_eÃ|ç/å´]%äW¥4²…ùÎÉÒö`͈7ª?½“Ï]F¶­qæGE£m´zóVX*»ñjþ¥÷ƒ¯c¼Á{>øÌ5ձæöà¬Rü1›íó°kÃÖx-ºK6“chýÁÛ`æ‘ë|(ÿÄŽQÕ˜KXcWÁ#Ç[3ž¡ Þ¡ì|&#\´þà»R¦•ßñ›ëd|ô(l¥çÜUÌA±Éôu|µÈ¬÷ î “oDT!ïM´© ëy•¢Ïcî€J`zŠWáoU¶œ ”-a5­Úf>sZóìW~µ‰þv­7q(éÖµcYî—ëFºgäyÔÕñK€WíìÃf[l“û…ñWOÉE{,²+ò®U…«»å°Yoʨ$ªÕ•oD‹FƒÉ ÐjTX‰ÝÑ’EÀÍÎÀ’èñxôr?F¨3zY{ðcê3Ì“6þ Ûê» RÙüêÛû þ-¿”z2ƒý\ð+½œåæ¸a~¹K¿Úhv¨k¤ ÖUŠ9 4®ËÚ ß®¾¤à@Œ~Kì^õ·¯bõ†5Áˆ=œ ²pZ¶—¿ùÏ\‚¯â—k5ð«íhC1ú°Æ½{°¾×Ú«±èq÷››dõÆn±TŠ¿Ê$“­Åhãµ Ù€×7°Žm:•Ћq‘Ìü‘!è÷ò•2Ì.Ž%vM–‰¬£J ‡eQôúÛÿ?ß9…óVÊý® džœA®“‹•Ô‹7oåháeÅoËÇ=غ /šN›%Ô–I'GªŽ>d0C:¶[˜œŽ¿ÃÜäDzÎ5 4T8NcNO1-›Ö›ÖKMc–OeIWã™wS‹q Ì%Ì'‰Çšc„+Ò·¦~6õœ%2Ã;'®Rã迪Ê(Ñh<š+1žï\NÊÇùFÏÀjq²3Îìæ|ŸÆ•Ãì*?\ dn>ã=B¯­Äo*1ÎÍÛÌLú‹É ¦½Æ ã©ue»yÉt¤ï½7ðj«iJVØ,ä2#JÒ0"åM¡ k§e ½[ÙçERÏþdF0vc»=bÚÛû¬Îǯ8wo²ƒ›zÕ\–4sÉäÐNÜj×JžÕy¼$#{lojÝ”šÓ¶n$‹õ&Vá„ýSóä/ôw`T?Þj¾ó!X‹ªîö8Nâ«ò}ÌÓ°G€_u \’ÑÁíÔgb–ÚöзˆUW`÷×fæãh`×*ì¢&øæÓòž£ÙbÿÖVÊ:ñêo¯gi¬álžsmðßÛ2Ê®0/ᩃeXôUw xu£ÓÆä⬯™¦ynµmjVE4’á=f€ÌÞ«‚èp»6XÓëjã'õmÕà ´·E2Ê,ÀþÔ8Ö…øÓ‡ú¢­©‡´.z0èíM`É–w»,àÕQÙa¶» ÞÆÅö!ó|ì Ë‡ÖÙì–Ïík‘"Gm}<}±3‡Íu¬ð§JxwáI“0’eTh„UôˆÖ쓎qýö™°_GŸ•+t fÀ\ŒUõ(ð«‡èo¯jbüeÿ±_/aüUÿ°¹üj®íWƒ_Ê2ó°û#؅﬉ÑJAcÄ‹±“Û2gPl"zÞÏ­ÄȰu@Ñ®À†šhÃîàç sÑQ4F5ðÕü}ZÌçùÇÁñŠ1N«abÌý"Œ©ê3\tc­FRÞ~õ>õ´Æí`Ù«•1—ëX[[o(Ë£ ³€L“¹÷«²jmwF|7ÂüuÂèh4Ò éc·DGqÌ–2?Ó÷¤¯üEY=$š?Ø«o>‘ #Ø xX‘^éÌðdf.§2V|«Ð¥2G¯HVÜ#×^¨Ï\je'ùTåKãØ_-žGµ—ü.Ÿþò|*Œ†ùÈX>0å%¬~£Y:ÉÕRË•ÆXûÐLåû2‰WZ•°€ù8 d~yôD'²†EÛ¸žC6#îk]³Y]UcÚ£øù*éxÖžH m—@«05W–„žÇnZÏî†YkÆçv”O¨Ï c»»s¬ù”ýý‘¹h™ä-/H²=gæ™4Æ32ÊRµ uä~óŒiElï…]¾Æ4â BGÌ’ªAé)ÑRRÁzsS-sû¾IšÛK°5Gr—Ýgú¯ÏÃ3ù€—Ì%É0ç«ð¡<¼Ê¤¿ý¢ô‰²}Øž®æ_¶q$›ñí…ÁóñTõ¿Êx†ÌÜFyû\¹ÖNìñu5~Èü38k¯7Z-p½|!ƒÙxuL2 ì »Ëh½ña[-Äž«„žOÆšü+ðJcñ†ÈGò†¨ÖJ}Ø ³Î ÂÎi¼*a=z­h7ϩɺҧd€}Àœ$¿*¾å®ϸßТv&'}Ètæãô´ Í؃À¯FàéÊUJðÿ'yS¨Q’Áÿ޹ì„6Ì”‡X/µ,s!ýûm1Ãwbw~"Ûû]E6D¯ÖÕÑ‹,÷™KuÝ+òœyÜÍ÷±ØAk»Ãœ‰p•cM}k³O¾·Ç#'#ïÙ:¼|Õ¬07¢5ƒ¨Ó;•5»žc=¯¦T´ßV£×¤=ØÅIàÕàH%éLtß«ƒ‘hQ/ÀmòŸ‚_Õ7A¬Ø'ÄŽø‡¥–¹ßOö \_¿ÞÜ~5‹xØjÀ«}î×àI|SCô4üj#tÕ:žE¥©¾´ÊÔ¥J®q²jµ[1ÓåÅà¿AU£Êgê¿Jó™~ ¶º¯ê7úOœªâoroÃJ¬A~e£Ç\ÌÏ´jÝÝ ¶u”ñ ŠÖÃ0굩ϿQ:R“Pýí×ó`:÷wež=i!]+c˜ó¦ÞâÒÃ.&3¸Mú9¾+-¤—dEô_ÑiŒFj mÍrzµê–ÖT,OÎT½¸Ž~ÕîV…þöL¢L ùN=K©ñèQE£²•ªÔMå}œbWz«Ò¨XŸˆÖ[.`ŽO*£\k“a¤Ðþ =Gqe¾4âVZœ=•ç.s YK¢Ø¨¶^KÃØQÕ¿*ŽÇ³f3g©*-¾ ªµh¾ê3hôj9Æ6„ºWIüÎdŽXª;ïwò©ÙãÔa?|$¿à·Š]K0CÅæKb÷o˜£›¥º©@ü(ëÑk<ÉÙc´¾ ~¶‘¬7Ÿ€‡)Ïé/cÌ^Ƌƀ‹j—u£Õ[¼Ê6%œc@ͶÀÍ}Ú- ìwfÇ}—}Â\¼RÌÿœîV؃z~ý`.€½jô~õ]yŒúWj1Ÿ—~‘'lgjdµ3Ûz‘ò«í8!Òzôª‡|ýê†qm€Ów?ø•æãmÔ uüs >[]ôVt,}Üù¬?ø±|Ž¿U©Ã ñù¾øl âªXëÝÒL¬‡¦ØkõÁõ®cþ`Ú66ˆ¸—€W­¤¥IÆÉŸ™‰³y†ëc[’_5G ÇPïJëOµ£š€}ÙûòFyc7†;eìÃNXë-¼w¡}ª{ºˆõ>ói†R?^ßySPœ·2,Ÿd7Ô—Ì·Ì— Š`¥>Kö=ˆW€_Š|ùÔªE´@Κµ¦¾e,Fq zÓ\n‚mÚWÔ³§ïØ~¥ù8W 06§pF܉Ÿòåzð«ŸÁ¯®‡}~½É­òçÝÍÒØ\õ½Äžôk`Þ<Ë ÷Û€W‹Ýb7دs[(÷˜Á^ÖÛÞ|¬·òàWªþ¥ú¢0í±1ÿ C+c|UWgk>×ÅšÝ\ ê­+´™ä+Âö,“ àÕ&ÿ¥ÓjC;ÝYŸ~5=ÐûAñ#mEôénɾ~¥õ¯:€A¿Êš!…TçÎúÎZOp6Fr,£Í5ÆEõ´”4Àœtš«Oã~kçD˸÷o—©~¾oO¾ô2ðê—ètîð†Òœ8‡{­¿Tº¥™@ä…ô2iüS¹…~¥0ö=ôÂg+ÈR¨ÈP‘JÉ)D¹ªñ»9õžjþ³ÆŠWfÝŒÞòU«i¥Ò—¥>aAº„•´Â:^•©g“O/Nn<0…Ÿ «Ò{zák0v"%ÏÁÈOÕ(flk*ùŠÖmMbìh.ÑÐÑß^@õǘöP­/‘Ø•ö?ôì]4óšÉûÍmNÜÓ {¦;YÙ=ª\iÎÐç¦Z'‹¥šÑH×GD`®¤¿} Îæž˜åHÍU¹ÜIçëX’÷™"úoÁœ~L õ¢¦š@ ü­­9ìË£ÒÐ~oÆ•µO™v•Í¢VL¦YmKLõdþƒUýÑš§å»AbVýZ¥sä ínô¤‹ùÀæEri3>†Ý5÷ãYªõ7`„æ «‚úvØ¢{¤1æo7VßÁó0fíÍ›Á7àrµùøl neÔô³Ã¾I½¾VÀØ3r‡<ý¢V€V"_‹¹o LþœífÄþH{„v²j/Áµr]ƒÓµ1«aµÂ»‡Ù'Í ¬„~2 z{ùyw ë´­É^åEfà»§»¦¶¦Yé…Õ| }è€Õ^̸Ÿ]ŒDí…Ó}&¬”=h…Ö_˜,ÐÊlm̪B¬U]´bNXªª×§'¯Æ·r+™?˜ã¾uåaþS>6ϺR¿xÕÜ>lÅ®¸Š±†¾#ìÁoí§‘]‘o­ZÑ+å}³ÇhôB ¬ÍqxF p›‰ŒUÿUgÆ‹æSñf³ÜßÀŸ‹\UF#ÜÁò`´¯Ù=ì¿pcpþEcüÿ®×Z¼Ëü8?Å ò»ßìt#ý}À«f²Ð¼ ~õ7Œ^kŒJ*øÕ@ß–q{G¬ÞÄ«RrÈ–ŒCÛÎxÞ&À«¿¿-ê0< ~å¼ó+ÀR*ù\Æ_©þÎ6÷/°«Ú^kÌþ9âþp“ÀÛkaý׋°M©= YÕGÈŽëÈfàb)uR2¨'£¥u?°rw)=AÑRU¼)G¼gQ—/íã—_)_9, ¢?R¿]=áE掸ÿJãüzòŽOkFÌÂÉUHVH»f­§1æb;š,éñÂd¶<…äTu€]ÿ`°ú¯4žáÖK-ð«?ÙþFý“Dê‹êÍró˜ýÔ¾~ÕõçS©bÛTô~:Zž…õ«ñ¢ïàÔ­‡±·fÚ]LdFv5pE£P4†ùVú¯4Úí˜ôµ»WêŸ=ä®ϺïµV„É…mR%2E£lÝ]¶ŽYÈø‡ë°›4ÿºµqfbtÇóƒß<…]Ó‘õ—ðdnÖk¬¶ÖêYˆ/’÷ñJú¶€_õsƒØý¹î¼«ãú¹å²Ùé²b;´²;Í–Ø9W=VÇ77{åœ=Ùù7ìAõ‚½ß­i½ÈÓ ˆyQP4ûg7ž[Kº0ßYý.ï`œÿÊx†Òà^÷Y°xµDZùCn½×Ý€¹ÕúƒAìŒ_/yf³Ÿäovׯ暹n¾åW¸ðbyùÎ÷¢Oäüj ÎHò"zö¦`±zM[¬½²#~+Z9Qž~jÕ¹z|*ðY~9ZTÉ×ôëý9§ú†«€W•|]ð«nòkämõã¬êÏ-šÑwÕ7À/ã©õ0kð÷pÆfàûÕ¯2U²©6¥·¤%ÜïZA§3«Cd Ý£ìšèPîµÙ²À¯õ¥ä*‡eRô‹èÍx]9s/ïé2EïbËxï§@üJ̱©Ì»°Niz\a*äR¸·•w]C”Ê —º½ê¡˜6çÒÇžFȵÌÌ¢ÿ*‡ùƒúS1ÖuVC~æfñÕêd?9ô<•gÌzRÜóåycP‹ñ I´óâqòù¹b¢^ŒwŽŠ Š¬D¨òŒ[H‰çãxÞz u˜C{0Ìš.§ªä˜ãeÄÉŠ`]âù8m`×T5½ÈÙîÅ*¿žõqR±Û`ŸV2Š!ÏÁüÎÜf”ëö“UóH Ö-4W)Ä«¾À«n´pKq]¦±þN5å`)ésaFû«æ >±Hrí%Ö›H“Mv¯énWò~ðœÄÌ:Æ‹fÉoæ¿àKß½}GÞ¶¯ôôÐúÎ{l/£í,3ߨìH]ÞìÃ^¹ŠýQçmöõ[èµês6 ø"pª)^ÝŽÓRÌÛªG+%æÉà;ĨæÛ:É6·s±ãód¦Y`ß±ÏÕ–<¼ZˆßÖâ}œ*O¬Ã:R­¸Ïå=¬O½Uº‹ä[ Ì09„ϯÇÕa|{-¬¼zZɯ¾-ƒícæ¾}ðê5w!Øí~Õš ÔoÏŽÌÆÎv#lÙL¼ s+«¥*.LÃ-Áއ^`%¾XËóq.—âI÷˜{ðNU‹Zlí–mÆþUÚèÁ`´Û\ƒ£z2M\wHN›Ü^ÿ¾?~µÞüûÎÕˆµðíÍzùÔžŒœŽœ·ÐÇUr̬6m5+l,õ¯&àéªÏÕœlnf³žÜŽ‘30KÿĪ)Ѭ’`®û&X ¼Z*%þE؃ª/Z`*ĺùßü~¿Eê²Þ„zÙ×™f6ðjø•^¬5GÜ÷Á£¢ñœC¥¦9~Õ;z25 :`G÷¤ês_àJU Ø8àÕ6ÚˆªQöLðKC-ýíþß.ö úÖêúÊ~'ð«ðûgD3¿¯_ŽwWÝ-8¯jGÛŒ>oƒY< Ôh€½®¹‘eø\ ¬ÏaŠžf­ñüÑ{µú¬\;’>sÕgXNßì4¹ÇoðY…ù-™}3:™ÈÒ'Õ|j³§275ÔgÈÄwÎÃìV!^äa•à_í²îç,þœ&a}ŠBr¦°W5jRepÿjþ`£¾’©IUÿÖ|œZÌNN$¦h½‰lbT:ã'2‡É'dü/®¾*‘'‹ON¢Ÿ+ˆZ“Y‚‰DÁ ì­æS+^Uàm¡þ]­J¡vMzÆx?X‡wA¼Fj ‘+´pÓøí‰TÇú8‰q}¨&lg1FÑà4ÒhˆÅàW½`êëZO~²T1åé¿úÁ¼n–˜ŠŒ¿ÚmJ°bõ»ÿ"ËÌ[¦ã"FÀ²9‹HG]µ®›”Sõƒ}Wx¥¯¿ï†=¨cý4µ?we2çøÕz«ÑøŠW[ì`r¹ÍEàÀeÖ<)'ìVI¦^߇2"ò¤mgtfÚ˜wmÝH5r°ç±ZÅþÈAo;ÉÓØ;z·¦ãº»üQª»mžü†–b‹Í˰¯7Züa ݰà¬øA2 ï8óqº¯ÎB~56Ñ:úcµ&é›8kë⛢æzù†zÈc0&z{^‹•éj1‚Hµ”ÚŽ¾F¿}ßèëι'ÝïÀ„b“å }:ðjˆLsÅ`[#}W§ñ»¬^¥çºæþ±ûxp­g¨‡\ çÏBêõµ€¯±µ°Ë–b^Käß@gÍ+¹F6E?&‚_i½‰ À«kÁ¯öKÄp9¾FìHÐÎn2{c¹ÜXKð«§å¿öÈùÈWàWõÑï#f3¸·ªkuÖYÔPï,ھ漅߅o­Uß ø8£L^Ã~ë1üxµ1ÐZñüóî>ÒM§rÀ«?üy¿8´öà<°ª æNs›»ÙÝàp ö/²Å¼äþ¶3p8Öࣕy†¢×)SD&s3þë¾æàÿ“ÐÿG0ãwY§ËîàÏ +º›ìô¯júUÿ_Õ?â¿r0¢kÝ/¾Š¯{°§Ø¨ÚƒSɯî‘jÑ7€—U™Ù üª&ó©46¤;+db†G³¦Ò­±‘MðºþµòVWKËm¾ µÛ¢#·©õ·ûbÞß¿*S¢ODÇÓÒj íÌ"rFëõæ)W& ßèÖø®±ô7…J yÄ’0Ê<¼­K¦/½€ü*´¾²âqïZo"?šÉ¨å*üt.±0“œ!C4û;‹1Ùªj…ö`æ …µŸ+2ǧ|<î!™öc@îžÏv$ðV3‡•ĺéG‘B.˜CL •Ù“™¿£Q êMK×óJˆs«XüÙ‰´©{bÆÃVIb¨«ÕoÝ®¯ëí^“ f¿ËðÇ^ ZÚ5æÉØwÕ·õ™?øud_ä[#w?øÕf pcX¸5À.5çzúÔ㨙(í€WËÑ¿¶hÍ:´pFü-¬µLo V€#m&`|®õϹþŒ {0ëëÿôgüVihvúàW£üCfšYâ¸a~³¶=NÁ½îWð«;1’#±Þ0waL%¿›Ý ZêÑŠFÔÁ8h¾soœ¯Ží .¦Z·ü*õ[‚_åúþ'§÷†œÄûàWÅE9ñ3­ÖY$yÑlQ˜-»÷yê›×_º–ÚËZoâ<­LážÊ£jÐÆ 5Ä9§þ+Q_,ìòè(îþ‰²ÊïñݨærT–F?ŠŽç­žªƒÌ‹G(è koƨÎÞhŒcEò•Ö›¨DåÑ dKÉ´ï2ã 3º¿5‹¢*kE$3k° ý[é¬á•û¬Ä§‘EùMª‘¥ªÝåhÇeÓŸ*iñ˜… j,¤3ª+ïþ«0cFù*:W£ß?…± yñتBŒo æ>Çâ8yñ<押eL`>N-Æê{ò+GŒÑ. 㯨à ¹–xX﵈1×z.t”³à]‰KåYìÿ³´–£¦ .×(C|Èñ1ð*ƒþ«}¦óÒÐ׿mSF»vˆŒÂÚʸ…XÓßb/ë³zÊŸàoƒ8ÎïaÞûc÷ë¡yØf9ž¥ÑÐÏ#´"æØïÄïÃYÒï&¹~¥ù EæT ‘áF5òWJ¢™ÜÌì¸2sȾiŸ5ª/|\e1k6Œà]”úú¢7ÿFµŽŒê·_Àçµþ\sp±ôlTÃÜi†È5¼…9)#ì1sœõ0GD_uW‚ýîŒ~3“ì«ùˆjHÏp½mM³&2 ï?à ™Ìœê ¼šŠ±ë »gŒ¼T¼ÈQ€×–¯TŸ¡‡¹ïÖz©K‰'a©5£’Ζ苰Õ5K²Ý‡®ƒàÈ sl¦rìTPdך×cGÀ¯Ú³¾ó§ö«È!ð«FhÃò¡Ùh´Ú Æ_M%Ç» ¼u 5rcMm—P}†–XYí°ÏNÃgSÃgBpŸ;<ŒßÒzkü'n‚š+þ:Ÿ;ï×ßwøÑþv7Ä?j暥îN7Ð?èb¶xõ<ìåGaÝWCóÍA0ÍòP+xµƒÛa©^ŸrÍX…õÔ³*~¿'øxÕ?¯÷ç]9ß üªŸ€ÃúGýN+pmr?aÌ»ù%3=᮸™V«V™GOÚÖ¬9£qoû1Zôa೪é_oŸl®Àhòvx­Œû´!ïGFÒ~Y~uìA[˜&÷ù5¾‘ãuY=Ǭ“F8©æ’e$ÐcЗìIësÝ„~WaÔB!¹c>óo²ŸšN«,‰Þì°®VãfrˆW•ÑÞ<âf ©w©{-sÔ±tƶgôƱ%ú"a=ú´øMaxGW޹ÑiD¦DÀ0B+)ž'˜ÍÊ›9Ä®LF4„:¥UYo¢R<ß0U =ëêäñÇú85xŸè##7L Öh1Q÷x õ‹Ö7r1ÎíY0†ï>#ίw›<%Í9bžbØt©eCöÈó•y€öWà•fÒ©?­£l6™hGO¿z CùÏ |Ó˜—î@«$ìdåK'0»Ã›úþÅÀ« f,íë ö#Sb×Z½CQ5ùgìÆ©~oþræ<ë¢î—Ÿìß%ÊЗ¤4²‰õÑó¡ "õŒŽ÷>|wÄ,á¹§+o %½©è²á¾º.ã7uð§ö ^‚կǷfà½dˆÙ`?±ûÁ-[Ï‚±­£~rÎ6À˜<-o¯F¡•½ÑÏiŒYC=ä¦TƒPl^M5Å«:ØgÇѺyØëµ¤,˜Ž´:¸øÙ öàbÿ/76àe?Ðÿî7Cr̓~,ów™9ô·õ«œØÚò°Ùé~†=¨~çÑ8¿Žp4ŒÜÆ_©¿½5Æ¡=Öt¼cëÆîÀS§àœš$;À¯ê‚õâý`šïé—b,Ū¦Æ}®s_ú¼~/ÖÆ•Èî’›lõÖl±$G_¿ÒhÍb`Ï>ª-VĘ*^©Ž~9œLC±Ö§I¨>Ü8Ї{¿>Z¥ç•Þ1-– vj´/Õn–»ÐÛΘ õ·‹žN¤¥ñ óãNZÁ½/m¨ ä±SX?§ãçÇÒªJ¡)Œø kÛ”‹GƒWc}ù°|ÚYéô`UŲys˜Äx†Ú¬[šÂØ«<îÌuFêH¨˜Ö“ÿÿÚÎi|BèuW{°<ù]j • ©®²Ö=ŒÑUH{*ñª%oÚÂøŠLVRL ³ ëÿ„œ*Ô½Qì ëã„9‰ì_Œ¶nS¬îåXßd{-X³EÑ­|ˆ}WÂwß+/Jó?ÿžú€hœ@†¼$Þn6K‰WdÕúñëÈ*ó«)¢MÛ¬äSÓ-íƒg]Áç5v½…xóf²"íÁ¶¬©§˜ÿ 4²ÿ1“y¯ñ«ž]o5Â÷’¤›MvˆÑظK°$ÏKšUözBNØ]’d•~-½"ëW:BÝÌi[ö ŽÆN|·0+k8žô¸Âsû1öd«lÃo[²þàq°Ë4ÂöZóJðµ`Tûh>9$P=Ðþ`ŠØc°«P_ô3 „j2hýâ¡xÂ*ôª%õÛÏ`õj|•˜Àçd£•˜šÁ^ì'†úí³˜¯YïÀ|œ¢ŽÖ Ø WƒçÜïêù1}¡¯™ Î4õ³Íý‘ÞÙÓhyÞ ª5ù8Îõ6@¦5Ø€Ýêy®Ní¸ÞXé­Á[æ1Š ·kµ7ž3€ÙՓцü½ij͉X3u¨‚±|KãEaõÄj,€=¸"ÖÒÅïwký7nð*9ÖÕ_õüj´y‡Ÿæg»Ñ~«™bþê&»1~·‹‚eo¿ú%Ø…±Vë(öà"ÆßŽÅþ‰yÀÚ¬‰Ôª×:gÈãÀ²[Ж¹²7ø%¨²Tž>¥Gõ“¾2ì²ó°‹d»ûÚ×ð¥~ðÎG:çÇ[âžëðô\}ï]ÐËýT=Ï#¯ËúÎÍ±ÆÆ¡«©×—B­'ÓÝÖk¡— 'þÜ+×ÙÅàWúž)r#ðª=Ð"h>#úSô&ú¬ëH1Θ²­kߟ~WŸÉèäŠÄ«v˜áÜx”f6R…8Ó ùK*##j0¾A¹S½¸§I™U3¢Vf<"!Ÿú YÄ™ð=;q-õ“$¬Ÿ÷æ§MÒèÕÏ`NMf<»0TíK -Y“õR¨å^ƒ¾,Å®jÄ– ä3yDõBFWU ÖW…xL{ F¸z~S¢„Õ&bìCe¶"#“¨ï3‹²í/ªïjG=™îd€+ÁIÊÌgÄÛŸ±ê5^4“yÊÉö„Yi´ŸÀ¯ºâ¤SŸ|¬ÃZêI>×E†š ¦>9ãõÔ“éÈø«bàUk^Çö(÷ù"òχ¤óu öÚwMW»Ñªí|üj†dÔC÷_؃å‚Ñ»…ãrØ>„v¨Wò?Ò5²Î¶e=¯æM[-’ÁذX?átSlkì«÷¢]Њ`ôûX/|'q’y sÐHº˜³Áv2p©,>g6Zõ}„Œ1[ì ûøUwùÖSO¦ FpVÓFj õ¢žL=™ZðQ}щ¬É×W«51’x#Á[a>’iö íÁ2¹1úž+çŽ9QU9£áÄÈT`ÝWfKÍ<Æ_½Ê U Ö 9ÓϬzË#1OÈ<Ö­žÀÜ›^ÔŒŸÃûÀ†Ø+­˜cµ ÿÖ;œÑwƒyî© –*ºoÜxWÂx†Ï]žŸ;ÛõæåØNwÕ·ñ­€WŸÙï#ßE¾¶ ¹Gäólv¿ªÇóîZêN• Om˜g´Mn'^um…6ÂÙ6¯çʤ`­»l F¯:ù—Ý:ÎM•kLJ¬¿âÿá7J¶yÌÏõ·Â.ÝnfR¯o„ß¼j$ËÍ‹8z5PUðrÌ)s ãÛobTŽÖw#Ù{¢c£ñ¢ªÇÜ­Üä¸zXÑ]åYàU–/ñ÷©.¶¯Üøžñ¢›ÜŸà´ã¼Æ¬¹èI—ä'[ÕËœ/ÑÓ¶X4v´«*S2š¡£[OÓÚ]éô.©ç?¬ï\Äw*¿Ò›ŽxºÚOË¥Ÿ]½Žx5^–€×u¡åwDîŒ&c ¡7à âyÇM™?˜ÇŽ’Yq¯»æ8׌+r%ýO»Ï3¶-f(ŒiÍÁ«•øžDzß2è¿ò¼IÐ÷GéËJäkIq¥‡ð¦óÿ_p2ó8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run010/bold_events.tsv000066400000000000000000000002461323370031300255560ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 face 52.5 22.5 cat 87.5 22.5 scrambledpix 122.5 22.5 house 157.5 22.5 scissors 195.0 22.5 chair 230.0 22.5 shoe 265.0 22.5 bottle pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run010/bold_moest.txt000066400000000000000000000207431323370031300254100ustar00rootroot000000000000000.00165247 0.00129126 0.00308834 -0.0235373 -0.0513139 -0.0423286 0.00289692 0.00214188 0.0029898 -0.0143341 -0.0512618 -0.0282953 0.00239017 0.00274751 0.00172831 -0.0145991 -0.0580338 0.0202106 0.000157259 0.00134128 0.00315378 -0.0626663 0.0115469 -0.00965069 0.00180469 0.00242667 0.00191726 -0.0259808 -0.0454651 -0.00103111 0.00123985 0.00255414 0.00200612 -0.0211897 -0.045483 -0.0186333 0.00123257 0.00378191 0.00167007 -0.00296648 -0.0688611 -0.0107502 0.00177608 0.00192335 0.00341676 -0.0133823 -0.0461845 -0.0185478 0.0010979 0.00343657 0.00186082 0.00544163 -0.0688267 0.0080826 0.0022246 0.00287087 0.00227562 -0.0219518 -0.0687112 0.00796271 0.00208432 0.00147703 0.00331092 -0.0451105 -0.0801473 -0.0182454 0.00231997 0.00293946 0.00215428 -0.0229315 -0.0686143 -0.0183248 0.0016154 0.00304724 0.00171738 0.00876514 -0.0686707 -0.00455794 0.00193025 0.00304724 0.00156821 0.00876948 -0.0686459 0.00201005 0.00246572 0.00297476 0.00129075 -0.0198725 -0.0728296 0.012588 0.00264734 0.00211709 0.00303612 -0.0256483 -0.0705603 0.006434 0.00280776 0.00372279 0.00189221 0.0123831 -0.0684889 0.0236322 0.00263789 0.002122 0.00341031 -0.0436194 -0.0652972 0.00795395 0.0032575 0.00338072 0.00152171 -0.0119832 -0.0802572 0.0211256 0.00320217 0.00251921 0.0031069 -0.0244597 -0.0668471 0.0177747 0.00262765 0.00159219 0.00319309 -0.048517 -0.075566 -0.00659478 0.00278985 0.00177422 0.00315801 -0.0291642 -0.0860139 -0.00262218 0.00322314 0.00297167 0.00271833 0.0088608 -0.0842901 0.023375 0.00333954 0.00289855 0.00289301 -0.0106595 -0.0737362 -0.000190466 0.00282486 0.00246403 0.00266092 0.00474502 -0.0854256 -0.000177088 0.00254848 0.00143399 0.00372038 -0.0303588 -0.0852832 -0.0175243 0.0036146 0.00357277 0.00228065 0.00423173 -0.0951702 0.0103305 0.00324288 0.00313566 0.00313505 0.0208865 -0.0802877 0.000898249 0.00325398 0.00350391 0.00252747 0.0208764 -0.0751793 0.00637157 0.00308589 0.00357228 0.00230478 -0.00025365 -0.0737936 0.0296292 0.00451552 0.00316654 0.00164962 -0.00914716 -0.0839308 0.0384403 0.00437689 0.00130618 0.00335699 -0.0229788 -0.0879128 0.0177859 0.00426388 0.00160034 0.00350727 -0.0156355 -0.078673 0.0307804 0.00422889 0.00120501 0.00335699 -0.014825 -0.0617489 0.0308415 0.00465878 0.00184048 0.00266245 -0.0199637 -0.0837778 0.0345154 0.0046253 0.00326516 0.00172353 -0.00268911 -0.108996 0.0498657 0.00513311 0.004086 0.00263736 0.0162978 -0.0904091 0.0412364 0.00510204 0.00263029 0.00291591 -0.0101509 -0.0868023 0.0457622 0.00397571 0.00334624 0.00141979 -0.00258473 -0.090077 0.0469648 0.00429687 0.0019395 0.00322345 -0.033243 -0.0905762 0.0285804 0.00449065 0.00304711 0.00169758 -0.0212303 -0.0920283 0.0441886 0.00406817 0.000895807 0.00317271 -0.0306576 -0.074619 0.0202596 0.00560751 0.00311413 0.00211721 -0.0143656 -0.0937727 0.0419793 0.00589801 0.00389596 0.00241337 9.78716e-05 -0.10109 0.0419604 0.00531761 0.00157335 0.00308932 -0.0180632 -0.0823733 0.0188773 0.00291388 0.00187912 0.00308932 -0.037888 -0.0752363 0.0076473 0.00480881 0.00306328 0.0012093 -0.0273304 -0.0424129 0.00760394 0.00388711 0.00197638 0.00252749 -0.0597388 -0.0823874 -4.6228e-05 0.0036525 0.00156036 0.00320015 -0.0412251 -0.068336 -0.0200824 0.00346593 0.00216027 0.0027673 -0.0329742 -0.0708867 0.00174296 0.00464268 0.00335406 0.00121809 0.00879897 -0.092568 0.031217 0.0046429 0.0030868 0.00182038 -0.0178447 -0.0979872 0.0384452 0.00544962 0.0013645 0.00238878 -0.0278696 -0.096776 0.0207329 0.00422123 0.00123368 0.00299082 -0.0236552 -0.0941772 0.040365 0.00422597 0.0013245 0.00356189 -0.032251 -0.106353 0.0124845 0.00520551 0.00178779 0.00356189 -0.0322901 -0.0955593 0.0222847 0.00390259 0.00178779 0.00356189 -0.0512385 -0.116136 0.012107 0.00436373 0.00139678 0.00390809 -0.0540735 -0.0972563 0.00230152 0.00436373 0.000928938 0.00415474 -0.051801 -0.096744 0.00232136 0.0048739 0.00177277 0.00177992 -0.0370729 -0.0897153 0.018782 0.0045743 0.00316419 0.00177992 -0.0311662 -0.128571 0.0271206 0.00475272 0.00240938 0.00126985 -0.011301 -0.0978497 0.0211112 0.00497398 0.000883932 0.00359709 -0.0259755 -0.0831972 0.0183877 0.00523371 0.0016046 0.00262529 -0.0165212 -0.0964033 0.0355354 0.00487251 0.00197652 0.0029129 -0.0152988 -0.111742 0.0436984 0.00464607 0.00332041 0.00159593 -0.00820169 -0.101679 0.0373938 0.00516167 0.00332041 0.00159593 -0.00796485 -0.121527 0.0452779 0.00548453 0.00307542 0.00159593 -0.00380998 -0.103578 0.0400981 0.00462586 0.00155782 0.00364311 -0.0218985 -0.0941611 0.0202023 0.00579044 0.00196861 0.0022745 0.00738889 -0.115953 0.0643041 0.00565428 0.00231206 0.00268101 -0.00404739 -0.1145 0.0423099 0.00525888 0.00235121 0.0022745 -0.0180502 -0.131143 0.0202272 0.00541904 0.00256711 0.00143457 0.00710188 -0.109033 0.0815339 0.00551138 0.00234373 0.00213197 -0.00656626 -0.105391 0.0426552 0.00601963 0.000644455 0.00412273 -0.0337362 -0.103968 0.0397147 0.00583136 5.13912e-05 0.00293478 -0.00374462 -0.125763 0.0688105 0.00629281 0.00243161 0.00119931 -0.00397252 -0.106057 0.0394954 0.00535156 0.00043534 0.00445826 -0.0314941 -0.0812029 0.039777 0.00560978 0.000544409 0.00407979 -0.0226223 -0.0755535 0.039748 0.00562631 0.000441001 0.00418864 -0.0278812 -0.0814239 0.0493023 0.00582701 0.00278552 0.00187711 -0.000820682 -0.104936 0.0710792 0.00657752 0.00249988 0.00187711 -0.00809111 -0.113752 0.0801261 0.00556727 0.000739579 0.00374796 -0.0396817 -0.0994476 0.0631803 0.00576998 0.000291742 0.00409506 -0.0353224 -0.0938982 0.0729397 0.00494895 0.00204791 0.0032651 -0.0313667 -0.082683 0.0396956 0.00652695 0.000775458 0.00354671 -0.0504107 -0.108136 0.0693107 0.00495905 0.00140487 0.00354671 -0.04923 -0.075721 0.0397399 0.00498302 0.00140487 0.00460919 -0.0414461 -0.053479 0.0498022 0.00616101 0.00157648 0.0036171 -0.0404268 -0.0800681 0.0596544 0.00669275 0.00282676 0.00145053 -0.0151873 -0.102051 0.079 0.00508648 0.00110812 0.00293505 -0.0531937 -0.0696101 0.0459386 0.00543363 0.00257995 0.00254059 -0.0371244 -0.082009 0.0511644 0.00493843 0.00200199 0.00310472 -0.0465272 -0.0864963 0.0451001 0.00569396 0.00230559 0.00355005 -0.0688929 -0.0959287 0.0303239 0.00489706 0.00174274 0.00281095 -0.0571523 -0.0825084 0.0407607 0.00435505 0.00230559 0.00323308 -0.0798302 -0.0713463 0.0466995 0.00435505 0.00134687 0.00292295 -0.0713407 -0.0849324 0.0726954 0.00472435 0.00224277 0.00273608 -0.053401 -0.0825387 0.0428378 0.00459868 0.00191226 0.00302765 -0.0711852 -0.0850538 0.0343625 0.00437539 0.00211272 0.00302764 -0.0640773 -0.061286 0.0427275 0.00472004 0.00191226 0.00302765 -0.0717622 -0.0377012 0.0507861 0.00465833 0.00164299 0.00239755 -0.0528004 -0.0727785 0.0256707 0.00526512 0.00120345 0.00340247 -0.0340096 -0.0544554 0.0527552 0.00561249 0.00191226 0.00328459 -0.0601563 -0.0816487 0.0615667 0.00497769 0.00202563 0.003437 -0.0432115 -0.0617319 0.0458373 0.00577411 0.00109493 0.0032846 -0.0431069 -0.0552907 0.0626347 0.00487957 0.00131708 0.00343378 -0.0614494 -0.0634061 0.050012 0.00578788 0.0023931 0.00279682 -0.0446847 -0.0581976 0.0604929 0.00561609 0.000970459 0.00391184 -0.0602845 -0.0457383 0.0518889 0.00555775 0.00152176 0.00302026 -0.0461757 -0.050316 0.0434358 0.00541091 0.00116658 0.00386269 -0.0474804 -0.0511746 0.0576731 0.00606276 0.00122351 0.00269691 -0.0631176 -0.081574 0.0704175 0.00565502 0.00139006 0.00240468 -0.0659496 -0.0640075 0.0487618 0.00568104 0.00152176 0.0029958 -0.0642307 -0.0518342 0.0618035 0.00546317 0.00146945 0.00240468 -0.0274208 -0.0518526 0.0623425 0.00584779 0.00109848 0.00307902 -0.0609012 -0.0672554 0.0735902 0.00552797 0.00177176 0.00251886 -0.0236763 -0.0558696 0.0688116 0.00552797 0.00152176 0.00307902 -0.0567494 -0.0585548 0.0599527 0.00558295 0.00152176 0.00300791 -0.0490418 -0.0573268 0.0513166 0.00593012 0.000652587 0.00307902 -0.0831537 -0.0532239 0.0743903 0.00640833 0.00106794 0.00291921 -0.0747218 -0.0492084 0.0643914 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run011/000077500000000000000000000000001323370031300225135ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run011/bold_1slice.nii.gz000066400000000000000000003205171323370031300260230ustar00rootroot00000000000000‹Ľ”UÇ­}JÖZu€àwwwîîÁÝànÁÆÝÝ5¸»»»»‡7Oßw;@šA“wóÿ›Ñ!Mw¯]U»j~snë*Ê„­•ÇzyÂ{”§>|¾Ü¬'´ÿßÝ7׫—?§ÇÓâÿ~ÄÊùå÷-̓ïÉñ? æy7_`{Ë_¦hú©‚Ò®ÿ·í¯~ü§M´Ìíér›ïÿÑ-ÿý>ÿ÷ß|}ò}û¾ç‹ûjk–4õÿ¶±Aܼª“êpxÞ{’ª`A:Âßny*­Ûêú©^¤Š¢ÊO½JwÖcôtWíù¡j{<3u4{Ú½²–òšà¦‚šªvš5ö¦o®ê4ºÔµ³‘¾e³ÑU[€jSu:o†Ûªþ­=´¯m8Z`£˜zAªRåSéÍïÔ…ºQKjE·¨o¡ÞtÀT¢-t’PBÊO'ì0›ÄLB½­º¸ÉM“èÍ£‘Ô‹_¡Z4ž‘âõôŠÎS%ÊD!égêcË|·…û=Ãìdô§ÚƒPG‰¨]¤sÔšSòŠÉ³È‹ÖO¢øtN§þNÅeº<­Àˆµ¢4›ÒQ*š/)*GåxL<‘–Ò|šJ÷É"Ñ);ÍTQå¿US-U¯­æÉÔc·ƒòP8jGƒi;¥äuèådnÍiM¡Q´ŠÆâ{r£çæ‰~H±Èª¸yoO`Ä—Q:„ŸÉC娠D|„†ÚSæ÷æ™GPš€#™ÞZ5£^öïÕ6xŽë ö~¶6ÿÂoè&uƱF)¸×B_³òJjÄçy¯å·wÐìq*¾« -7—T‚¯ú\E§·e°ß¼¼šgsI~„>_ <¼’Ÿ³–ÒÚm”üò–ÃHDYŠV GÇž2s nÏ/mH;ó«zôu52ð|žÈ‹x Ý¥U¨uŒ×ðY!}å®´réäǼ€r ÞÆ3P/w£¢”Z§ÿ¢â]Ýã|ˆ ÿŠ6µá«tœ—®Ò–ßq×Ííu³ÝG7KÞs.©%O9F`æü;F·½Ò­¾¨×NÇ|=Goh ¾g4íä12[ʉ—¹®‰KíNÉ·•:É&‰)ƒ0Î¥Ðö>\†paŽeÏÔšáùU ¤ð\„_Ñxò¶5–[ÒÎ}”ŽRF~w~îgWȽtÍ\i&Ý+yq)ÂCù(ÿÆÕ¹.+ÚP/ó€>ÐqZI)ågûrhÉï.º"n“üŽŸ¿ëƸáî¡{†¶-u§%™K.+8;úúÇà™tÚ³—ú›L­5í¯X ch1'°g)Ž+ëÍîÖ¸V.Ú²ßíqË]w÷ÎÝ–Ñ2ÁÕwu壘›v Å|©E…é®Ôõp/¤¼—®‹+æây7yŸ¸”ÞZnïqÁ] ×]FH ^ ­¹CM©9ߢÐvû7–Ý¿¹…V=Ô€€‘ùàI£ô?ä‡R3”GÑïtx³MUR>ÄÖ»ô@ðc±J¬þPµ=žõ:‡=fƒ‘¦TÁÄ6UÕluÐl°/Í2cLI]ú‡ÚYE¿³…0òBókÐ3ÚUE±&ÛÐ;ûܦ¢6ži¤Š¢j©Lf0 ‚ºt„®þÄ y>VÔSü¸Hë)e¡;v -k¦¡ÞvÝÜ„š‡ây˜½( _‚FÏ¡Yôõ^Ð1Ì©ÌJ:ÚVün 7{üì|‡ŠÐ=ŠÆ‹Ð×)ÚyŒRUNËû)=O¡h˜©ÃÀ+:ûw*.Ô•iô¹)*¬Ç~§T—ˆ“rD(ÞG´{þ¬@;¢ßÇía§šß¨J­Qm(^jôÀ8夈¿Þ´ŸòaËÑLn€¶f`/ Ñÿ~”-½c^éàTL¤JšOv/ta<ÁAšKy©!U££ ÑMêi·›[<†«q4ð£3¦î‡'ÖQU°åïÕ6xnè¼P‚¨8šù'¾ŒãÛ–†SÄK¸2öÝüȤ¿¤úíÓ«½Ðû‚¼}¾D÷ÙO†J6RÂÕv»ÝBwÃ-”W\@~“c\3r?èsžÊ¨YÓõ‹zIìbŒÚêÍ•x$mçÉ2EêÈ&™æ¸äîœqkжærLBÉDŒjUŒåpô}Úž ¨5ÓÓTM àÀ+šfµ‰ËÉéå>H[i$íÝ@Ùåra¼]g)=Ýk±2‹‹ó,>VæzL´, ^ ¥Í5ÐmfU|ID›myN&¥ÝWÒBsÜ(ðÒº²Í‘p®˜ìÀŽâ“gÓ[Þèo µÁ¼´¥¨f@onn£óQ)åëæ‚¿¸Pî)*¯umÝ+ðhœ4w½\m!÷‚?atöRkZj§ÙÛöR?*e¯ØßáúQ.¬!ë{·¹ÃRLË+™áÊÛ½W]|oK·Ž?a}]{,ax5¼á8¯æü€"Ûµ/»u ©Ú« #óÚ_…ø‡üxãñSÏU-&‚¹ªŠ¡ÊjO8½XÖ“ô*ä3ß/ñÙv Î7F9 Å¥ñ&«ªfªæ jW˜·:§.ùCíL«=”Û,Иf$vÍ¥¢é¶5…¢—6 Ý´yLÇ U §Š«t¦5|óXj%¼ _ºº×Ô£%H { õÅè¾h˘5A¨·^·1qðóÁy-æãXhó5hÜTÌ´?áìïa~Ô¡_èH:Ø6ÿn ×x†ÚI64´ô*ÅG»êC“¡Ç‡hÕ„‡<G= ªÜzŸ†îè¬ß©8Fg7š@çÏÑVð£’Mi ›–#ðsÐi­AÆ9‹ÿ‹K×ì1SF•ýFÍkž9ê¶ ƒTÔüZB¹)5B¢ù¾|'?øÆÇ´ cÐÿ:`#ÓKóH›@*FVaMx:M^dª:t ÌɆqË]MŠ\eךXÿÍ’úƒxý¸¢ÒsdÍŽ´2~¬òœ€â¯ (ø‰l‘¢3)·ƒÂE† ¯„ú‡ó߯…Æ8ŽEûÂMf£e榊úU Ëê2¶Õ¤8È+s¡„·Ð£E”‰§ó¶2Gúº’Wr"‰++¹<”27¥jrOŽDaìЯêÕl&A©y&2L|NÙ+§x“•Òw°‹+Ç9¡<ƳA÷Žó*0)·?Ré/ÊÝŒ&Ã|¢´`ZM>C÷xˆô–ßÙIE×Þù¨ûà6È.$-jr€o=y,Øð;ï¦öÓLü¢ž²×œïÓ#š.Ì¢å<)«žLEÂšäÆ»ŒîŽ\u3ä÷•Ë[f#Õä½ÈR¥‘– q"û. –Ÿ§¹ªM©=ß ‘܃ëÂß•·ÒÄ…w-¥ 82ÿWÀÅðŽqM¤òC4]ÆsYžÂ§‘fª#³D§õB¨ÇúFn1\YzÉB“ím²Rßs5Üé&CÜ ·ÁFžy.›e­;/Ú%•CHEãx'ÃÜ|dóÙcýM­&›‡6eÇñ˜Æ½ìaš,•¼¥ÝHWÚt?¹›î‰áZ»sN»±RÍõq9Ä9'¡0>{ápfØö©=Àµj—¹k{Ò8–Èð'%§w¥;(Åeµ$vËܯ®÷¡7š—?Nƒ´kÖGæ ÈüW±rrŽl·¾ìþÕ-¬¤–?¢«°ÿÏ=Õ ÕS³ mŽª ¨rÄó“^¢è^z ­vÿPµƒž9:™=lÃ`ͧæ&šé÷ºÔl·bç›:óž¿Ê«Ø‚³;c3|娾µyUy•ÔÔ~ô‡š6 ÛÔ’§Â;œ5¹àYO@óSøëý[ج B½…º£Iƒ¹ƒçÐtšHáø6¼øhÌõ7ðà/Q±0¥%¦Ÿh¸mòÝîôtµSm88÷÷ô3VLxÖäÐ׫´›špj>@ y …FËgPjz¡³}§â4‰ >ý…Þ âøA‹ªl±8–??¦AcçB¯¡½)é²Ýfª"ߨùÞ³D=@þX zuCÕ̘ý-Ñó“T„#׌‡:½¥&a]Ž@;T™“²Ouè@*ÆRiÌ{{#´ «nF,7rH9´$>ߥ]v‹¹i„”Ô {§¢· k 丿WûÃsA°û(&7?¼|Äé‰<Þ¼9>¯€µZ…Bÿ7¢×qøŽóô¼-U¤}æ€JòU +Ꜷ<¸› v5õ=XsÒA«¯Â‘/În›ä‘«C"ËBøå—¤*UíïÒ®üª^}ÚFE›’#SÌE¾˜Žy7YáÒÈHÙ(cä ”*ŽÜæPr{ÌÄ)‘?Ö õ9¸7ˆŸVçøŠpìŽÃABê‰Äv‚Ëxéǹªë‰ì1*8M(WD*Ä9yò\a$†cðÐïu¿/ê…°‹è5fÙs "̧ݼ)«¦¬B{æ¹þÐÕgrÀ-Eži(û%™Læ_¹-ŸD¢©ˆ£”£Ú{µ¦xªžH‚ÍøÍàîÜä¬#bÌ´«*e¸à!;÷ötݤ‰ôqO%“,7fñeT«‚ òÖ^ýl¦ÜÑw(2ŽÙ<Š-ah¬ÍÁç¹±{àÒ¹}²Xê¹ýn˜[鎣ÎfëH1—Wö"ÏøòG:Þ 7XÔÞèoV5Ú*6˜¦s»–žKYo#·Îv?»˜î [Ñëæî"Í“6ÎÏ•“`î‡ArÝŠ±[e[Ù½v?V©Sæ¤Ö3>9]GšYæŽIné–Ÿs•]ïï1÷“·S²Ø%v¹Ý$ÎXXÍÉá_kR5dBkLaÿ7«–jìgù#Š Ìëe{ê¯î©Öú¥gvøŸßë £gévzœ^©b«Ã?Tí´g²NdÏc½¿²a©œ aª«µj¬YhŸšiæ‰.© üP;Kè»6+´é±ÞóÓ3ÂVRIõ\Û„®Ú»ðöGl2ó[*ô-–é~ &ø”¹*ûÁáï6åh$…æG§,ôØöµ%ÍÒ Ô[¡›,ð²x#´~8……/Už@á"9TƒïAQhJø±Æ3ÐNuKÒ hü!ª5Nƒ”´ŸvR$òƒPÄ©¤h-€~ßÑ9¿Sq¾. ÏTê{Šž=ÌKUHÁÕGçü­\HkÑçë4½>o˜Êê[Wi A>´À¯–È[kbR-ꌖåâPÿÞ\ŸŸa…Í9üо±`UVzmnh¤¢W•0í¨Ö2ðã~¢ ý ¥<;C#à2Î`ýWL ¼Ý(>y0Ž­h~ üØì9¥s¡ÚÏ\ó@ͯRêŠùÎ*5ሠ@_*È»¡ {Ðëtã:=16Ía•ì«ÖÔ…ljì½b1T÷ çRCᮀKe [!å ‡–à2—‹âëy ƒfváàèóНêµÑwpTû"-ÌCþÌÑÏåü–€%Se “ÃÒÂEOâÉ d’_814r·€6÷Ǹ¤üÊ)ÜÖ¾3‡{q$sóvnÌé—qÒšßqI× üXâ<Þ6JrÁñ??3 +ŒÆ8Œà½Hfõˆ/êÅ?>"ûP¦ £Èc¤rF™ïº» î*þn#¹£¬—02ßUùc ²Ww.ÉQìË€Zã=uT3dܲðëKx$W³I©ª\'´+"¤§ë —_Õ]ÅGi-ýÜE)€Wßû€;rm´áégn<„zªQ>O‹)«¤¢ö#½çZî¡KŠ„5Iä¬[à¶€'â6ŠŸ;#¹\>$»BìÇë‘´—Ñ ›Þn èo\åg^Û\”ës·³ÒbÉâ­ìÖ¸ê.¢‹î¦»¡îŒ+뮡]¥‡›àŠ!|@ª5|ü˜fkÛ=vÝgç¯Î˜ý¶!¼c[Ìß3öƒDñ.rÛ%­ –ÐÈ‚µ\hïFï`ÉÛнáñ.µKæFÊX‰Áû)2dKjÎá‰÷¾ìþÕ-ŒêªæŒŒRI•÷òã­g„Rz”fâš-ª:ªlòDÖ;ug=^¯Åú:öCÕ6xÖêŒö¾eza?ÚÜ&‚I¦Fª‰føqù£¨þþµäÏ·úµÍIkm|¬é"tÄ4·uUb½Ú6†·8g£Óq›9ˆù#œª¡’˜6ЃQÔú|‚Jð ø†¦&ˆr",”ìòG ³<õ¶êA&-t(8/‚K—áÇ B_ÇÃYÌGŠ?‹,‘†Ôoº­üÝ.õŒ±ËAÝ\øÉ¨¼Ž*P{J€y¹†ö ñy%;$o9êÖ¾Sqž.ŽŸ­ˆÌvŠž>>Æï-(š£ñk´p>’Ìòòä™#öŠ©¦ª~£&©yê’^Zö¡õ bXj¯CËVêý ö/À®øê*Ú‚6–A¯/e^R-®Êˆü±…<гƴ cWªRy({2$¸Šv¤9 =i̱¹Z?#GÅÇÙðc«çš.‹jÁÒìø(˜ÛüHÁc¡G‰8ç§||Žg"ƒüÄÄ[pœ§á£xº/~4Õ¥1·ª /,äñÐÇ» ÑÐdÿ$!d†4….Ç‘X²_´³4º.7àhä± ¾ª7Q?·™±·dHÓñ1„›Êàà÷ó4¨ÔhÙ$m] ¹ÎÑ䓎3ó´¶gäî¾§Ó|Qñncyz_mªÿzûÊtéÊi¥†kânÃE¿€ºþ,奣ÜäšàÌ0î´0†#yŸ×_ža‹e×ï\Æâ{§ÑF'£ð³C9±lr-\fwŸ’ÄÒ_ŽI0³ض ]Ž;Ã釱wjuEþh •çË4Ù¨¼MC•ä½ôw¤0˜ÔÚõr¯$§{ï¹á Ûoî¬dGÅJ<‰¯#Ñäæn|×þu½õ'õN_!Ç›h%%’„ÔÛþÄ7¸†»Žü±)©“»ì¦ suo?F¸ÍÇ•”óœ ã·™}<=²Ù?ãGFµÐܱÙ(‰ï® ®gÐ:Éì-éºR.”ËëN¸°ÞÛ®¢[æžÈB¤¥Q® <‚OPüóº;ùÙRöâgüX«®˜S¶;æ{GÊIGí{Iêé.IJŒ•4ªê2z7yºhÞºîoqq]z×OšI$¤ö¨t«¤Vâ-s ðe÷¯n¢B—ÿûÙ;O ع‚ lÏ=ÓÕŸj¤&ÒìV¾³KË=‘ô ÝI׋T<µó‡ªíó,Ö)1Êéƒý`3™—:©ª£æšÉöŽYhÞê\ßU¾/·òÚP6:…5Ø€²Ó*ÓÃæSaô1[îqh¿Mdº©b0UI%2ü¯ïvÁʼFù¡Óui—©%=]މ#zߎ·µÍü Ô[«["Œ£0àÇ,x`Ðøjð¶@€…ôŒNS1ú…BRlm¿ygSÀ¶Ç3Ï?ÄJNȻѾ9” ¤ÛdT’SòVJÉK( ¼çÊC7tõïÞUÚ\Ÿš€Œ+À±a NEºM‘9<œ½ÆÚš…5±€ˆg‚ísSN}«æ'ÏRuÏF‚ŸëßLé)œq#ÚHéÑÒê4ü¸ nô¢©Xé+ Þu°ÇFL`×Ï㨢†éÆëÕFï¢euÑßSÐØ ÔÄ®2÷ÁVœ”Û"=ù¡jrz²ö ”;<'tn{˜¢qsøNŧ´zâ#9·?ÒðÏÜŽÊñ ^ƒüàá°`Ö|¸ÏÉp­è„9¥R|Õºº€-O5)/2ÀNTxèÆ® >{Æáe‚tvËáìo"-Ä?*€ÆÙáîKrkα)˜óU½AúºMˆü‘ Ùb>2šnÐ2yÀky‘ì€V_–ª.Š\â\ò„¿ðU$‹6È4qÄëÜ_T¼§»cVœö¿ÿj3öz™p/m8¢TwÍÜ9wÌÝw«ÅˆïŒÑn„3zZûÞ‚Ñ|£¿¼ZÓn†º…48üMçx,?ÖqYâÏg²ÁÍ‘gûIzy—º½ò‹ìB_ó¸’®„wªw7xYÑmå.¸«éºãˆÇçК˘ý­áiâÙõ/»u‹¯ú¨a#ó cæòC#Ç|Pcõý¼(„*G‘?¶h?=]ïTÑÔÞªvѳYW±GläǶ GA5Im2󭲇Mp“WWû¡v¶?ŠÒ6[üH­¯fK¨²úRãsû¦ C6£é¤ŠV5U…ÌDäƒiPá8~EÁ²tÞ4€úŸ†Ž…E }`{ÙlfRêmÔ=M8ÙHX—ñ'4¾Öö(º í "Õ¤,ÄÈ mm±ï¶ð¶g©k£‚`óœùJ„ªËsK±oÆ%Ò{¡D“áí÷êïU<«Û •Q玿âwÇG9$£¸P¼Èðᾜ°Q<œºa/šªß¼~þ“:ª’"-ÅÞ{ÐÊŒ‘j‚<¿ñTjF3¹¿‚'^€6o¤M HeJHOÍCý,j UTû‰7R=:‡ä–#U~,r}m{ÈÜåp¯ñ¹'Ø4i"½‡Sè@#áÇ^(j}{y£—å7H•ÑÆ1¨Õî<4(ÔJÃí¯âS`Ák´y-ö¿úS—®› êëûêëü¶8’Tnc\ûT;D… ÕÀÑÒüÈõO!qe&Ž”åH uy4+ =3__ÿªo#;¢œàÇÅ£ÀÍüž£þTùCVB•sqå§–iœîù9o?ËclKS2¬ŸÏë½Ö#h0]¬+ƒTÕœÿ¤§~ÅO@;KCù3ñj`gšP㺠Üÿ»¼úRtúó©Í „+iÄ#èï@š©)+9¹lu]N÷Fö¹aBÒü!«ñ]ÍùX8”Ç"1$²7jMAþðëÆh÷‚B£ÎÖõDΨ)ÝáÉ:ëêA¥[¹®ÒJ¦¹Û’ü¨~„•ùH±ýø¹P/´z®}OCñ3J4Za“ñnã»pù³‘?λÑn±»ˆ6žQî’dseäá*>Í©Àg¶øg‰0Zk Ò{^ÌР[tÞ/½iÜ,$…d ÅA7Ôm€î¿qçdZ7Æeüáż9Biª-f?}vþj±:onÛ^8àÍöÛ˜.¯w¢Û.Ù¥›ÄBê(éÂ{÷{§»Ôàå%ÞçÒº¸Èó%¤ûë™z‡Š¥ÎýPµ=žƒ:£}'œBSKcLj5^­0ã­Çn7!M!´§ýþ»eБ?Ûüô£s¦‡M«Rë¶ò‡‚’]¶yL÷ U ¡*ªºfÍ€÷ ¥Aå õÁ¤þg”·"ß”%KclE3-(=Õ-LÐ(Ï{!gŸ¥Š Ç"úT¹ ÷_œ2‘N|¶ýõ»-ÜêÙl§ÛŸ©0rLv>„ù8âQ¨êªÊ qâCó-ÜõRðtÇW®ôïÛaÝ™ª%æ».“ÊQ€J"ýÌ9„~®D^˜„ÏgRvºn˜_¿yý\©*%å•Ô +e%Ú™‚$(r}nõða Jm£õøŽšèù}¨@*&VM|d´àHUi7x˜½ÍCW±‡KTÍö7÷yÔ1 ·Ç^üÐãäôÈFÄßëáÇ:Ï-$† àG7®Šu~Äi‰ã™ þ¸Ç×jƒr'x.òÇ[ô=z½Ùk.ê;_%þª…5tY[—ZQ6Þ· º¯0r«(;Ô÷<òZéâÖIyÄIàœgÃÛÎ65çþàG²vîWõfëgp£)=¯çë¼ ý–F²“«ø©¹²]fÉMiãb#Ѥ•»<®9#4r ÷€ªBORè/Ÿp|ªûb®Ez+݃ïÓ[$ƒ±25»ÐÒ»Ž½³$“fhgÎÌ«Á–¼ˆ…ÁL·/êýdäW‘¦rkžH;y…̺²ik›ëáò»»²šKúË …>7äÎ áJÎór<{- V'OSÕ“,öùˆ&p.gsPWäÈ0ùA³ ðù!\g¼~nô‘‰îŠdß]nS˜d2âIüþ37\ÝÕ(¢ÿ5«L’˜–Yæ'\ÁÝp%ÜNY(-A’1ÎÏÝ?ŽËN·K¢ºŠ`f$‹ȅ£é“-gô7‰šo> Mh­ãÒöm—ÊÞhnx͉^»S®‘;ë.Ëéæ»8É…Tþ<É@›Ï>·Wø±Tí5ì0Ðí7Ìá½ö¡”CþØ,I¥—„wPµ”w»÷œózº‹ü ôÈæ†ÊI°¶Ÿ"Ã7EBÎkg¾ìþÕA¿€‘y㉭"þC~¼ðø)ÖôOÆ™ËþÏŸïñ„ÑK‘?FêmÈ?vþj«g©ŽioØà¾±†ù€üÑVM3³­Ø9æ'“Kín©ÿn©µ”8e‹€Öµè‚d3©¸z«­‡|óÚ¦Gþ(`ú©bUJe6“üψ ‚¿J¥y2u…Î¥>Kk¡Sèmë› Ü‘½OW5¹ C^^E‚œ} = úþõŒRèvD¤¦Í¶Gî¿:=GÞRj$šº \Vü÷´¢!ø±“ÂórŠu\Œ$ñü»wAoÔ hµ¥Öt &T°øË¾, Ró øðõàž†#·±¼fj}óüÕ ÏJüZƒ*­1NEÁÈ»Aà³”ŠºCë>Ñ!šµ÷]ÿ˜†\‘ƒÞm»§<²Jg>ڇЙ½Ô ½ƒµW¬=IIø²ÚTsü¨Åqøw´ŽPrÈq]é@ø1ßsTµ{):òǯèÝy®Èƒñ¡sM8-‡á~” J;ž€q?#áøøákcŠh÷ªt_µ0ŸÎmó!÷øî—:ÀMùOŒøV¤‘%üˆÃÈJiçÖKyÏñ%¹¬B¿#qlž Oî{Æ"'½1 ¿ª7D·éÀ騼üX…¾~„”›<‡g"Ì”‡RÅeEþˆ/Wx#ˆ”Š/óVhyEJ¥À/ï´»¬ÒdÌVËåy/wqr?"“к® Të¢óxÏÈ'."ÐΦœ“‡ðDßÙ0¾ƒdfß—yƬŒ»Œ â»f?Ÿ–ò*™(UÑ·Øpà-\÷RN»›à]ÙfnæjH=GQ­&˜YŽãØ¿ÎQŽò4QáËZñ3Z ¦¶µÕ©Ž0òGHWLè~wá\9¸r?×BÚ!1DpIÀ¦È xŒïŠ¿´½ò#”bs ~j'’r"¹jwز ku²¨;Ê…ÚwuýÀ“à`ÇîDpä æ |$^D·‘þz~0¶Ze^Ú¼”kk&G´é­äð&u ]5Å=‘~àÑI×9$¢›$½\}WR¼."øñˆöS?ä¦ö¶=À­j“¹nûÂ36„jEüïß=$)e˜Ôt­]FWÝ»ØûؽsÍÜuÞè²×.ñxE¥;¨X‹ŸbüÿñüyÕã³çµŠ¢"ÿC~¼ó WaôÇXsFåW¾{"£éz€ ~¤TG¾_â³í¤gƒNh¯Ù(ÐGÅÍ{äï†j†iß™å&œÉ§ýP;c#ÿ%ÊÃïVBVèaË©dz—­CGrÂûßÕ?H£«:*‡}†,Zë¸4ƒÃ?kr£áß_IýlY3/õ¶é&&-’°ƒƒŸI]àmQAi"=‡B]êd§”äAfáþݵž¹v¡ F¿"¹¤?ù º•ƒÚÑC䊜’·S<^…D×Z”‰>éÂßåG-(zÌì Y"(u*ä=( Ä Bm鿇§P ºašß|‰R›U8Þõ GküT!¤ïÖTšöB™RjúZ÷$˜Ž²™R%»÷˜ÀÞ‰S%2á°z>Ð&ªB¾ëÙY©Öô»þ1ÖÓZÕ§×ÈË×h>¾ÚæºòL:ëjJŽ$ÞÕr‰½c\# üXÏõÁÒg<ù£>ß°>苆ÑjŠ'±‘?ãòΉ|¼(~t£\_wùf¬w[%$òÇY.…<³ãóH$–|öz@“ªyp.™0ßGÒ"nh¯Ñ*ÉíÍê–cÜ~v;¤FnëâιG2­­âòŠq"‘á·ŽÀoL¶£í%û"€ ÔasÙv¡qÔëö™=%ɼ;݉)ó¥®à’ºaÞ?¼^ï—Ý=à-èmf×S~—”X}é¡?© ߦDöPàËî_Ý«Ejùg篩PÿoO[›ÖQQ~l’ãßö‚¡°·v²Ía6¡ÞÝË‹ÂðRd‚apòÇèòÝq3êÜJCl8aëáúÇvòG$—¼ú<é¥!°ž~…–£¼™®.´/;ÝøîókÀ“ cCxÕ£ä»Ï¸ ÚóŒ"r8ŽÀ–@é7"w½Ç~’Ó{ÈÔýæõÐjŸúhÃaÿ]AÞ¥”ù£-þÿ’ÒEJ@¿q]~ JÍ„vûž*ñí+*=4ó1jÑTZÚÿŒû1…íÐÖ¼à\Q„ðeµìt³‹GÃÝÆá¶øºF69½°Œü¹1ÐóW7uN» ?Û êã{V œàDŠ n€uÿ 4É ½›µ}K~,B+—À‰W¢æ¢Êô·û¯ò!ëÖËVð6(å'0Ü÷œË"¨º–ÑÒÔm’¤H Ñ%–L‡Ú+øÜPç–܃SP(»êoÏ^Á,íBÑx:oâŘqwh*‹ÜŸºÊ,™ Ç¥§ó½»$¶\äiHLÉø&öÝ”S€ì5)óWo¸„\9Œ¶!/”cŸò> ›ÜüÍNr» Ç—ÈÛQ^sfi„ÔP<oÿ+(r4~¡G}Qï½Y†9põ†À·  <[ÆJM™‡Þ†–fs÷äŒë$w¹#øSÆ‚Òí12ã¸FüWNhoÔ‰üQù£¿¡åH)ím ª(·ÀÜன´‚£ïŒ4SÜ…ð6výñù(÷F”,âz‹³¿ðO>»7”"s†9u %m°!8¸tu—\I·m,âö¹n„»åîËN™êæIN—SöC0Öy64¢„=ÐßÌjòGz¤ñQ´+Úû´K yKƒAE]*—Þ]p3Ý×È‘w‹¬öÈME¹àš?Ò98·i¶›}a·ðcŽÚiÎÙß"??²×$ø³Bƒ>%ж¦.wŸ÷† å-æÉ|—9¬«Œ—„üÅÛlêOÚçæRàËî_ÝBªjrÀȼõ$ûÇ×?¬Z¯Âé9:¼‰kÎ)ßÝQ[=)õ =^ûé*æòã„眮€üñݳÁ©–!“TUQ£Ì8Ëv§‰þÃüh®CRYÚl³ùÞD§M[ÛR…׋lSzl/Û4ôЖ7m‚T1†j¦ò›^pÉ u±+ð ¬Ð‹¦Ý9Z@!àø_Ø9¶ŒYöýržz¤É^ø±ŒFPpèa.èÝz ½¤[ IRzgCÍw[xÄ3Õn°aÁ§”„×Á™Ï¦x È.´³,|õy8êeä¡ßÉ—Në,ß©¸O—€*Ô€“Þ%…‚¤2àGxÔ Å@¼…pâ³ñùDJHW±*Z¨\ß|þc©Rþ×Ï{R}ô5#¬˜¦ô|ùad6H  ²ã‘r–coãüß_òÜ<ÔHŨªŒyaR0>Þ†ý-/LûÑë”Öö3ëy(øüøãÛÓ]ü˜?V{îëêö,Ň‚W`Á1ð=îGIñyKN%Ë ì婸x Ư¤YàÇXê}ž2gÿÆjº€­Ü“Šg@Å ‹Ch7ú¹‡qY"}Üðã'’(ÐÒìÈIx8´´òD, ùÙÝ>ÿÙjèë6%˜–Èÿí‰sxoÓ$VâcÄ4Y¯ úZNs,ñ=÷’’³"§¬ö¿oj4Ž_Ư®tÖÍ@ÇíÈ Åýùö‚žp_&}8´Tr¾;ZO»î‚ĬPØ«ü Ã%!{”€¿?ƒ^¿Ó“¿¨—Ö®…_¹‰œ;óp_:ÈK@µ 2™cÈZÔ+ê®É ÷P"HWÙ&"ݸ·‹ç’`\ENdŸÔjáé©:ã¸Ö©"ä·)“¼–.Ž]1iŒ¼Ñ 4Êîž!‡ ”ÞàÉy¤’µ Ðb¾Ê“ÐÆ^쥿øqÃóRŸÄºÚ#Y­·ŸèWqW\:·DFJwÈýæú¹ιí2Ñ—˜îWð#;Æqòç¸Ë‚öx@Kªqæ¦-€ù´í«hÃóÉmåŠ#dp‹1r \·Û•¹ úX—Z";–×`þnøA¶>øñ×óç«ÕY³Õ•QI:jßIJïHw ó£«<‘ó.H¾Ö{ÔÝ7ïð—”)~’‚QL:ƒ5ÔÇ/¤ý±7 þo¶jŒš02z¨ÿ˜T½DÇ4Ì%å»Ò»Æ“AïÓ³õ2½ ©æÇÎ_íö\ÓÕìcû3E¤v&”É_»Ò¬²qíÅTÐß×ÒÏ·&::üÂF›JX€.!”RõÛöĦ…¢1ƒƒT1‚j­R›!4~¡j‡¯JÕh¯é€ìq:ŒúhGÚºA:µ_7Eàžc²ï= (ðσé 4þVd~J†ü‰zÙï?sųÀ®‡Jf"ñpd9æy;¤˜mPŠè˜qÙx)êÝOI'¿ûÿ ]Žƒ?­@‘?Àß) <’團#3óLÿûw—ÒO¨š>í¨© ¾uMå±g…òPt^ôÑ…6 „£ŠX3¨6øQ‡zscðãÈ9­Þ\‰ç‰aó)jQUbäË…w¡—>ÚäDµBtšâð%*hG˜³P¼v¾÷ÚRu½+8úó©7- 4¼Öeí °§ ÔÌòIŒYk´$#w;Â"¦ãC<—Ï!‹XÞ ¶ERêùtÊýÛõöº ¼IMJŒ,à»#èæÊF*¯ÏpßÃáJ—K:¹Îi$•Œãl =´ëΓ9òÇ×篆è«þÏF¦ò: > Þþoæ 2_úÉiiãË+Î.çà›ã¡ÞÞÎÅ 0Y¿ºÿêOÝœæaV<Ǭ˜-¿DØO&KWäZ®ž{è»àÞeðõ¥–\æRPÓ±¼cуOanÞÓ_^-Ìjw"E¾ÂüÿÓóx:Îó¡5ä$¬®–ûÅ]•knx×G.‰–8Öùúì{/J]Žn/Ôjåé¬: W6ç‡4©¢‚­J©á৸ג^êJG×Á=EJ éíáJKá^K ÁýUÈpüzðû×û¾ßxÈœó?µ”R‰Ð…£IEwÍew«¥¯Ôv;]oü9ížÉ9Pn²ÔDb8ŒÄåǧ}ý†/*nW|Æ æ5˜–0­óò"än˜«íÞÉéç"y·ººnø1Vf¸Ò.¿„pŸø9}€lIlûÊ^àǵ׵á'máqÛ`.™w¬[‡y2K¸®€+êç}æ^¹ÊîvÑ\F×VFH|8§Øt+¨?£ÔvKàËî_Ý© jþgù#ÍÿÃóƒËUX½H‹IaŽ(ß™–9ž˜ú°©—ë­*ºú±«;W={tûJøÄF£ê&¼I¯*©…f½ nO›`¦ŠþÖ[^ßjh uÙn³b´ËƒÃlCMoµýé:¼@xzjó™~AªOÕWÉÍdוÔ^|UçÉÔ˜›ÖptÇiü%e…¦×F+cÀ·î¢T³@§“ xëiÐæÃ:Ïw*þ~œ‚¶wÁ'¢_Ý‘­JÐ;ò];Oˆ²éc!2WhöC¿÷Øã¦ªúÖ]bÁÕFIe&öÞ ¬LFaáÐ[Ò&ªÆk|gÚà–ÿ?†Ãsh-Æ %òþü} Õb©æ½½DŒqkH[¡†© ×¿ÐQJ7VØ®3 N]‘“Úú¿?±7Fñ®Ž5º"Ð÷—ü‰Ä°‘¢ù¿Q\ñNä•. DnîÄØËš‹R >ÃËá™ ¸¹ퟎã5 Žñ‚Ùª2ÕçZº´-Nåp –ðZèãCdÕmô üìmU©í¦I|ù“ãIl™ëÿÆß¤pÎE¹#’ƒÂؽ;uìëK)y!o…N£›´˜Ü@õ‰Èå°Twå.§’{àfrÿëçK@ÃÜ< ù¬äWIó¢®j;Èq~$ªN|îñ0pm&‡” ®‰{ޅò€ËH39oŸŠÇ£…µ‘?.ÂEh3õ‹z¡0v¾â{ççà ;³dŽT’å޾&\ùeQÞ%²›»B£–ñÈšÍù0ØZˆûq9Žo) ^OOÕž"`_¯hÚWÁv¦rrN^¹ Y ×ÑW®¼ƒ«‹6wCnˆ ×ãÙ|”«€þ ýu¿Î+O(sˆ~æ³t‚ É.»ÂÖáôHYËAµÕðñÕÜj7Yæ„»#;d“[#é\e9ˆ£2cóU¨äg÷ïWóÌCÐ<µï,+ǰè½Tðf@…_]BÙã=j·t³Ý#' \^—Ty„ «ø4|D?[ؾ´Kø±ü8~øîk¯ƒy§]ï·GÂÈViˆ¾–s…¼û½¯ÝU´w t]f×G<,Ã=ÑAj€õóŽîš£/»u‹£F©¿Þ•ðÑ“ú¿ÿ*„ZE^¬Ã˜ôæ¤òÝ5ÏGÔ#ôB½]¥Q?ötýÏ ¬À3ö™½hƒƒÑM!•E-6+­Øó&’©£¿ÿ.óÏ·ÒÚC¹\㫦{f m¬>©­¶!-µX·ÅMŸ UŒ‚”Ä´¥ŽÐ¸†`Ò!ªÈ¾;'™Jȳۨݲð1À–5«‚Po‘îjòSz Ï=9$:´+7œïX¨ôt¸þÈ1é¶}d›Øï¿³~­§·]bcùî5£ø˜ù¡s±ÐÖ}PØp†(ÏCšñ½—7%-ÿîûÛèÌÈ¡ò‡?rPŒ^izC1’sHž~,¢ùhç ¤‰¥v øQç5½j•ºiƒóP£5z›ÂÃå·§½T \«K3¸=ø±üèM³i5X•Š4í2Ƽ ¤ZL•É8ôò!mF"òÝœŸŠ€¼×)ߦðv‘¹Â3¡Œi¸9ôÓ÷®ÜàÇ[ÂmžàÇ:л2œû'd®þϦAþ¨ËÁôl”Ÿ/ð">Îp¬6áXÆ÷tÄÿ0'þöþÄúºŽ­E•Ñ–±H iù:ˆ¹–²@íïr$üÑC’ËCN"‘eö’}w~eãÈiÈó·÷'ŽÓÏmXhK<z¹+’׎ü1ûÉl-G¥¹‹…D[î@?“pJ´Ô÷,xjîñΦ“Qñ±® Ïr®< ûž¼»I×x<í ä£J®†;ã6#L—\^ZÉy¤„ <€ûÂtâ3HÇÚ|ù„¼±Û¡Ž×è#µæÌ<›vñLP²‘Ì&»ß ¡Çä¢!{¹£ì— tEd£½ÝDàGiNñÙû¯Úyº¨È¿aÔ¶‚•l&*ŽÔÒÄ}’šøÓÙuGRHî"{¸2 ¹ëŽÿ•Jë#<Õ&²¦“õy¢ßu¿ýð9©$2m²×ðwN7×+ê ¿K]_×ÃÝs—d›LpS$ŽË#+Ñç1à}Fd½¶ìgg³©Yæ¾MEy°|ïßý@äWojׯ5vI]w×-t“\uwÓ”‘2ØesIå”<Á1~ µImèÚª~lV‘?|gK›"\¶åïö‚²¤´›Žü’Ì»Õ{Óiovw–û¹(.ú=DÒò!ŠC·ñS¥ù%}2?v†ç³ÅVSð翟S©•û‡ü5SE×CÁæÿï€Xëɨ×ëžzŒ^ "üàû¯NzÎë_ìu¬÷‹ö”Mf^êpª,ø1Û^7áH‹éï¿ËüóíWj´Òf€'ŒBÛÍo¶ŠŠªwØrpõ“ì[»Îf âûÛCªF*§iL¾+辫+©÷‚‚7MáèöB3®ØÄ´Ëv´¿éù󽺻)GgÁÏþ'ï#F_ÌÍðÔ×h 7§ ›Šºöµ3·~`ñÏ9àÇš†v” £Øê4Û.¥Ø<¦W*ÆQåTZSÆÿ ‡ÝáxSzîH5é‚©‡uµ Žÿ‚ Gmo[1HO„®Ó]Lj¹µ’f@µÞÓN*µéK‘AúîG¥èô£ÐÜ~ÿõ;<íìx)ëEòÿý£)ÊFøúBŽOózm[ ~ Úª¿u­û¿ÛH‡–AŸù¿™>æxn0ó [ކ1í[ †õÃhÔ¥ˆ4ÞìW_Ÿ¬«ËÚüð*qx.÷âRÐçþÈ,9üCED'å]WªpäÅÈÁØ÷þö$ðÐÙwÏò×ù£¿ÞüÑ<ȃxw?æ°–ýhÑ8™+Ýe³´uyQ1‘œÃ÷ÄBæ9Às¸,þo&ÜD|ýeBº¡K@ÉöÓsÊ ÚÔßÞqhR䮬Ûåö‚Ç%(÷~dößsAn‹±éF§ô˜/ê9»ÞÒ]̃ÎH¹«h3/C®+½ÙAA}ïß½-sÝ5‰(m‘” ÒBTÚË­81F8ëÏÎ_uôŒUÕ)8ŽÄSlVØV¥ôrOšB3ȯRŠzJR¹+®•ë&+Ñïë’C¦aöLãÜ•Óa”Ï}öû ïy"™# ï1Ì”HrÁ®²‘8¼ü†„UÀ-“ÞRÅùÞÐÕËíqÏÁ¶¥HJ¯¤žlæB<¼þ:*iw´¯„cîØ8X—h—°·hµäñVpý\qÇÈncÜswÒ•q³ÝnYªvÁäœÜf/{à Á ›ª¶á³÷ïî6ûío4ë´\Ø. éæŽ`føI(°-‘ å]ëÝæN»b.”üîòùß¿Û\BñŠGç¡ø>½2?ö„Ýÿf §Æ«Y#cT"õÓ?äÇ+ŒC4=üˆnŽùóc¥'¼^¬{èzŸJûƒ¿ÿã0t5…=ŽrÓžµ©ÍŸ:/j´3íó‡ gjýàýWÙôa›6ÛèФŸhŸ©a§ªpºŸÍEýílhóz[ÄôRÅØªºŠm~¡öðÈ­ ¥3 Wí©t®˜²Ê}ʧ³¶¯-e‚Òçzˆ‰„ùˆ¦A3ûÓŸ˜å¥¨3ôë4<øA8ÝŸžÙ¶‹ýþ3÷û=UìTk¡ò—(,Ï@ƒyî»Vº^: A*™F­®ûê­zßütbÿß_[ TÛ@‰Ñ®¬ô =#ÍïÈò d¥¨½î#ÏD§ÕHåõüß}ØöɳL-³ïiÆ®=ªf¢h_wô²(ÿAÙ¨%7‘ö½i F£9ZøÒ^2Ïuô@*&T‰ÀÍp¼‘;Ñ`ÊCA¡óé!žmoFCg}ühG 1®¾ß?xÆz‘ÈúzþêŽNk7ÀõVæps¾ß‘äû­…¾óWõ@Ê pé=¦ó6þH^\×i:ÑœT_ÿ•šº’-ÝŽ-ëpj½Ž²B«osd™*ù\?‰-—9œ„”éÐæO }+ŽUíÌI>{[ß¶‘˜¿QЦðèS;iÝ‚v½AšYÁ~²\ZÉFè~FyÅ1åà˜`Òz ½OÀã@Õ:Êïë’ÈdÛA¡Ôp쵯žø??ØC#TvÜ÷J”+,‡¹8gCêiĹ¹¦®tOúêþÝÝô‰î€ ]°ïÍ´–g¢Z-éË$ƒ\K—À]µnŸüÉàÉc‚+u‘f–#m%BÎ(ÀÌ_Ï-÷?*bŒkó3ê„4SÕ–'–‡ÒÁ}’(RTª»òn£üâ”·òG/éÕþE– uãx ÒL^Œøû×5³ÇžOz¯®_O^yoÏ#'—"î*òÂDé#ÅÝPWÑ5p;Ý èüJ7[âºjàG>ä™-86S‘þËÚµí+¤ºšS6”dµ?" k%ñpS]÷F<È!Ý!WÚÍG×ËXWße‘Ýò–Ã²ï ™4Öf²>{â"µÔì´­üTR´MÄÛÝí•h2[Ò»‘.+ê]à}íÞ»Øî)·vé]N×íŽÕœ¾®Uæ×”ÌþuÆîÿ»-ŠZ¨þúMb¢b¨Ÿÿ!?¼j¦ «êð&‚Yã¯!‹=)õ2=Nw׋Ulµíû%>Û.{.é_ìEûÔw§´u挎„l´Æt¶Í8ÒÂ?ȼ: eG2H€#ôÑî0Ulk^ïCþ8dר4˦7A{"1¼fÓ>b<Üg øÐÌH¸Ùé¾ñý®ñ= Ê]›”NÛÑ6MÞµG×6) ˜fAå!äßàÂ/@CïÑÿ÷D}²!©™ýÞÙ&ßuà)v”I¹ èÉx>r‘/ô€Oß ÷“PJ^L¬ï¹H´C}ßé×ÛH]ŠæBëÑ"!Ú—:ôÅÄ/Ñûe Ób´z4ý r®6ÅU•oÔ|é{Ó Á+© ²ÅZ¤™PPó¦¾ë<:<›Áqï*/Çײ¢æeóQß ¤ZR•ß$ CÈBk@¡ÕàW^ü]ÁÿެÛtÓt3Ç µ5á[`&ÂÐ}û3Öhï@ø±Óó^ç´(2~¢(zvêÿ÷`R$K»pWfFD6î,în‹Ãâ‹»û"‹³Øâîîî:¸»îîîîîÿ[ý݆ÙágØçž{ºŸf˜ŽJ}¥*3mÖ=œœÖ’#óZÊ@E€ÖÓy߃‡Û€:@õgÕÇLê\B…ÿhAIïù"?F­6S^Íç8<´ ø#†\ƒÿˆ*“¹‡æT܈U“û²¢ÐÿÈ¿;O݃öéO)x"o/ŒÇxñãr7RÖÁ#l—ª6/£Öe^LÃçÁ ¸ÄhŠÈ¼Um}÷¯Â€as;´˜…‡+ø3WµMÛl(ïz ^-©!×ዲñžÍ%Á"{P—SêÛl£©Ìaø7ûD®À³i#O—þÒTúÁM±ml{Q>ÚU²‹GË^ +#±%þFªÀaìÿhçàô“·ÄøòswTš¢TR>J#–FMÛØ:v›°‰½l5!Íí=‰-³ÁH+Ṧsy|ªóK¼««¯R2vO@ ' #-:7’ìv½md'È`Éa;ÃÑt·Gì9.‹í<Ék‹úžŸã=œ‚‡ÓSÄúRßÎtíf#ËvÈÆyLo>-u½Yá3ºÛHöƒì´€ú ìv뮫ž6.)/$‚Ôçu Qæo™¾æ/ÙçlÑL[Jõ13ߘ¤6-ÜÌIAoÂs[Ö÷®ðz¼›m4»•‡Û”6¹í%½%$ï¥äÐK¨ÆOLóß8ÿ#’³ Àþs/pþßž?¨œið£U,^_sÜ}ͳ=iÕZðÇLµÁ‰û“ùÛ÷zö©,æ’±ô RO³Îç„wèÉ&²9¢#éªÊO•3‹àð“ø‘èÒÜ´v>8«MCh‹‹&5y‚¹ÿ#ŽSÜÉ­ÛA{LÂUÊ—à èyÇT¢%@éy¬rÛÌ4¿ëEÁˆ·UuÕi¡=¬oMÏ,è®s@Ân4‘ž¹o PR†ºãþ•¿g˜™lÂS¨Á,<ck6tRø7KH2¾E½~¼/®•†vÿ?†©@ò*`K¨[:¸–RîîHrOÿˆËà˜CÕ-!6ˆAÇÍF]õ»ëw?yÖ8›Ã ¡Å[Cg@š „þ”Ÿ¯Âã¸+e߀é–'—­z¡¢ÒCýN} "Z<'™¶tü±ì¶5Ê]”ŽSb>C‘ͽ:¼êÜ¥„6ˆB0oÛѲ øcç ôÊNx¶&ÀH¼=Ò.( ¸6‡ãEà¦@ä5¼Û·ÿcn¹'ñþAÛô‰ðGUÙäŨHåæW¢=­†-ã»ÌÀé&¾ý8¶Ä•¹\ŠCp& žé ¶I‹ÒÞÿ1]=4±Q‹ø<‡ýyO¦74•C€¦soY&å†4´ñäÇ—{<‰Ór~îÛþÐüoÊh¥ö3U åF]ÞÎmø½á2L&àóEl3øÍ6œw¢ïüÚær혓ç‚ýÜÜ„wÐ?oÔÌ@÷¯ÖÓC¸4 µíK«y…Ì“f²’Èpàj!ûXÚ©r¥=Ï5¬Ñ“oÂûÔ#ÕæØæëºvž~NC0Qþ@S¸5×5©¼<D´}QÓ>¶‹}"¹­×[ÁÖ“‘øþ±¤wmñ*¾È3QÆ–|'@þ’kž0z…ÇüZF $­1Ìï8½=o;Ùݨ]q»Ø¶µ½ì%{[6Ë4{J²?6‚ÑÇ€~åY´Å ¿$“3A?Eo$VœÍµÌ#Ú#ù¼±ì,ÛÞ¦†GÚ¶›aÿ²Oì~™*#møOòž~†íHSLOó3åã­uvêë¦3­»Òã™9.é¼³ì9ùMŒÍ–«e {Wz_Ú_¼©íMžmãØDà>j09ݤFT‹oн#èi÷}ErÆ;_O‚yèIô¯óï¾÷Lr4üG_þD7‡ž¿'¾Z¢†ƒSÜýç»~*ÚQÏ•ÕÜ0ŒüÂäÕoT"'úm"üÇ*\¡€úÞ.ç _*Mé€)„Ö.@ÇõpÓÙ‰¡˜–tÑÜ51¡0róþUx§¨“T»Ù†Q{ôøI*ƃñ÷]èêz†d”›ž›±&k°Ö_ù«ú:õ!/p}æt¸Ò|@ØI`ŽIÐõÁ{ñéµ Mƒqÿꀧ§™Šú”®&†Ó¨GS0ÆÜ·»¨ »kã ãäîùµç­Êùçk¡ÊI« ê[—wRjꉺÕv…àˆÐd å–G$à TÉ,Ñ»À59:»§ôüFà?ëÓð øcƒç2ƒ?üGy¸€0|ú â×ãFŸ=ü•ä“>ô6øÿ-h?wPwTéûN‚ì÷+þ(O¿áhOÁG('/àcxßÖ®•ŒrhF–qiDLŃàZ x)Ä?öŸ·W—à*ÛÃÌ+øñ ôï #nF•q²\¦ËQùËÆ”Cn÷rpf8un6ðG)Jh¥Ý3UûüG5Þçs…îñ ™,ýù#—š^€zfï@1’EZÈðPV7k¼ï´ŽSÔ•N¨aßÄ‹d–úž| ¡\œ§Ñr^$£¥,á$2|TÌÞ”5v–¼áŽr@BÊôL+\y6WGÄÒü^¿þ«­§¿Só¡\îpK5´di¹)--Û:î1Ûß*›øÜض•ÒÓ>—²¿?ì<Šks®›3_âÝ÷„Dæ£PBÑDÈßxQËfvÐ~£Œ—ºö„íi'Â5¼—Ã`»=’ÑV´áÞ ^ŸN[M.sâK}K‡ÞùÖ_£Y\Ö¼£Í@üúðùí/àö3Ü[5{ËîBOw´cmvy&"aà?λëÔMKs*øã-u6ë @¢Ñ˜§Ð ³_Üý;%žŒ“—âxÛÐÞQÞiÖzËÙPÒßæ°¡¡>†HÞ mxs¨(8=L€ÿ¿{Er¦¸¥~Ô'Ï|'²Z¡"é„ú¤oÀO<µì±@ítÒü¤ÿ8í9¬*šPÒ¯LúCkÄÉáŒÒL(sJÇЪ?UÎ¦Š€Fþ&'´h9:¦[™nލ)¦6Ý1/M<ø…²Á\¿Ã)å$ÐÍᦗj1rp/ªMuI_.? b.zjÆ›RÁÚ¾Yõÿè%¸1'BÙïF~£átn¿0üñã=“û<ÝÍ<y—"úöŸÏŸ5öoJ‡á“nF&ÒàƒÉ”’ö¨ô?ˆ8Ae"÷ª¿è=9=/Ðè>E‚&Å÷á?Ü݃‹¡ÈC­6tuç{wÙ^÷ yE«¡ì]ÿ‘ˆ ¸èOÄÍrå¡ÖÐÂPÒѸÊZþÈDÑ膾£‚ÚÿÙɪ5fÏ'7ƒ °y$\_YúNS>HM{½ XRcóßÔÿÛ,ü,ÜúïŸÑ6z©LfTjÎÃoÉÝãÐØ·ÿ¼ \AH~·–‰Oó0Þ Ž#ÞnŒÐ¬´N?qRªs7•Ïä‚ tϯ]|¼ 6ÚGî¼[@ø5À¹’VÁÄ’q¾_‰¡ì‹«úpHJ`6Š7P¹g©µ¢”à‹ ¼„¢&q9À‹yø<‹ÉM…包ë(-5¤“íg¯IAài[ÛMÚK?{Y²É,.‡tÛ—‘±ß3W¾”íªGk÷¤¬ÓðÜÑäžébBñUþÃ^·Ù¬{òVM»Ë¶¶#ìûINÉbpJ,[Ev ½x?üëH:bòØÑYÅ馟›”OƒÉK˜÷ä/¹¼¥í$[ԛ®µŽw“-gÝVÓÅÿÊ$/äÜÔSèf4Ødæl °~w¿>b#Z-ª@÷ÍŸÿØ&©d„C´R6•w•÷¤½g ÀÌ·™p±2X¢ðaJåôæ‡Öü7ÖïÆrÆÈßîžÿñoó_}ô,"û©È:™>ê˵ƓHmRÓÔ:µÃIö“ÏÏÏxv©Ê桉@÷àjÑñœôàýéÆšã:„®ô“çÖŽÈJ}3çtsÓÜ ©6šútþ#!=6…ƒ}ÿªº_÷~̇¬D7¨O¦êtXwÞìÃÏOšÂôÁŒ&ìTÃur`eH>EëfMÜGEñ=æ(¡ë`Šp ï̸ޜÁxþ1À,4^*LoV[P×uÞB¨'âC”‘—·»øN¢ýñú«~*=í{ü \^EéÀkéÀ¿Ñq¡ìßÒTàünß:ÐI˜OGÐ7¹œ’ß]¿;Í9g>ûöj´¦Í`ÙPè¥0«Ëó&ðú@èôg´ ÜÍ·¦k•¦ØtM¿’?R:)u$°ZÞèÛe?lS“JcÃÁE3£õ&îu™[Se¨ÿNà¢+ÆeÎÕAðÇv jsˆâp øG:Œö„ÃLȽKïÉÝé[€òXÞÂ׃åÆûÖ;§•úŒØÇuQeLYðV2^Ü­}8<—þ#šÄª4†Ï 9D?.À^NÁ#¡Ü»ò@NHPóâ Q×L4ðn žV˜ÉãÜÕÝZÎðA^!³ánH{^îqj ,MÃø&ïáN\’ÇR J¬Š}ñ¹j‚‘±þ6ïä.|^ó™'8£4´ÍíE{ÍÆ<æÒð·¹§å¥xÿÜNCé¤ú6[\j´Ý;ŒÖ×ðù¡%vó2”ªüG!Ùd»Ø„ö\¶«å¨ïü(+Cá?ºÂ!-Ú÷åÁ<ý«™§ƒÓžBóßà£)\—sÂ5æ“÷ÒÝ:6ƒô”à·›RÞF÷ö·d ú¤”Ep* ø=¾Ê£ÏÞ@Ókžú…¯ÉfñR›ÙþfÛÈPñÂ5&€bmJMY8Å%I,gb€ý<)þõóíÌrª‰*ªN­;}ÏÏc?f¨ùjƒ“ÒÙúSÑNyŽªâæœ GÏLdª¦CéTN,g‘žf›ó:Œ.¦¾‡RA¿Ê(Kùi—ÉX•.ꞦŠ^í0­€¥¯MF:oJ:Ñà{¯øðVéô@ ýbjĺK•x/â¼îŸ]¥5Wåè¹™l*êÁˆ·K Ôîs…¼fÓ ŠËW×Ãñ~Nó|矆6MᨫùÞʦ¯¯ž)fª‰T{GéØÝ±>c ðð(• b<ìÖs)ùáþó ª(´}=ªK'é¡¢s@ã_¡øƒ£ò'D^„R.ÃÕüà?›Ãº¨ó½“!µ³Ä¹fÜ<‘€â›( ‰ïùÇ þhëiÀ‘gPh½hø`;X/?bÞÐoTPçŸÇwrúø#$øãZAýà/ÿ€9MIy+¥5Ëõ5½œ þ£9oÅ!7ŸA{š¬ô|â4ôñÇAêƒßô£lܸšoA)”ç³P·ø´ìZ\Ñ]wÖ#À?ˆçõT SíV€×±›«ü*Zn1•á•ü 2AºØE’]ÞpdI&¸¼\°B\m('"à´‰ÿyU·M\-¼Çv|õ£g´ŒÝój×rOÙçpEZØ$@ú|r'û²òCß“¼<ˆêS´@óåŽúü|„^Á•ä&|‘>ñ|™)=9¬T°½ì-»ß¦ôúÉGvϯ½ –å›ã;áê2tÒ%5õ›x‘Í2ø»tFs=ö£ý¼HVJG™Ãqd©ín3Ú‡¢¼ e7÷•sF&Áiµ:»ŒÔºÌ»/±šz:9Á¡¥Çr+.eòREy,ƒÎÕ¥´±Ãím)„òu´¥p•.ö±$÷÷5üŠW?ºñ]óõiÀ1Ï[uñŽBñÅ—¨4ÎDãˆRÂ^µ=ì|é#5¬[Âa`Ìײx?UòÙÒpv9}»EÓq_ºm XÑË™ªïšTociW5Oé˜ö¦D”‘6 |Ö^ûÑZ¢Áݸ§J•{p^¡àÿ`$ö3%0—}áÎv}Íô£™#%é²¹!é½SìQI,QmaÛÆÖ¶½½Ž÷-hñ*›Á·Me€„áS:¬)Õ„Ë~û_ÙÃYí,úÒ2ÏÞE·ºõùÿ"‹¥·õ—Üò–A9Oâ¢àÌpy0Êœ’b˜mâ P§Mr´ZžÍ' ±ÝÑ1•£ÊC pñ&•;œInòd¨ælü™÷qKxš¡¾ó£¾½«xMĨ8@Ì•À2]ù6=ç©2Rfs$¨ïÞö¼]o=Þqà£êÒRžÂ•¹§¹®¦O¦;jÆ7ñ”ÙCߣ74œËòlÚÃ[ݧ<²‹ÃÁŒöåo?dÇÈD—Ü-}Ž—¯Ý]:IÍ×g\C=íF-ÿ«—O2Ð’í*ݤh•Ín#z{GçH_ðJ&D®…Þy‡X“{ñGsâK¼ˆŽ£OPZŒým”T˜Í&‡”’ö¶me×Ju©fÙv„=gŸËQYm·JF þÔxŸá”<„.šlfÝ—úfw¦Á$ǼšÍ“Íxø¬õ±ËìP›Ê†²ÛÁ#³mkðÑøÂѶ¼Í-Ÿåè­ËÛ}LyóÜøÂ+œÍú¶éä;U­æØIë]lOHZ°Nx;Öµ©½à?"z+Øs¼ÛForsí§àC”ˆ®aTTæ„ÛzÚýG_aœ¹Îð/-ÒIü¯Ïÿí,u"©Ñ*µN®_9îI«Û=É•¿Z£ö¨óNzçìCxôÜS…ÍÌwºÏÒ!u}§™³X¯0éÍL—QõªœU\èæUæ7jƒ™üV÷6 œˆj¥i-þÚd€2­©{+b8çO§‚vu÷`RezH y u£»º$@oÎ…£ÉG–昪zC0âíVtf¨çHд  ¼cB Çßéþ¼ GSÊù‘!êŒü%›=ÓÍDø|P–IÀHmÀA‰èoÚOK¨Çã›”Ìwþ`ošF)èÔϯ¦r÷ê@eŸò1ãhDÎFÂIùWŽé[¿;VÓFú…gŸO™ãºæwŸ¼‚S?eÂòÌ“Žh§ì¼ÔN$0©õ޼Ç_è{þ±3­ ¥¡×ú±ò1“@'A©Bó|v5õGÉŠ æÔ{?u7kõ1`q NÀ=¨õÀ;=5ç35ÈõW¢ó?Œ“ŸC‚c{{Çźðßl"#¡Ôïùž?DýÝ5g3iu¡\t@?ùÇùƒUU#“›ÊS"¸Õ\ þ£>‘—òMðÇhè’EÞsbøE\Æw…áÀòŽð))y€Ýjÿóê¥îšˆ‘œÇð.¸˜At üZî3Éfé'—ÀIq÷iÄ‚’q&~¹³Ït¦,êÛ{ŸwU)(©ýƒÓƒÓZð5zÈãÁ³ø—²íC{À†òö“W\TZË}0 {7g>Zg$¼Ø:£¾=ÿã¥Þî8Jh$ÜÖHÚâ[ÕT––ÛÁ¶´=/KìXyÍ#Átdx£øx>×çñà’˜ækŽ7Iz‰yõ„fÍšâTXÚÖ†¶€)çícØŠö­mk{Ëx™o“WªˆÖ} oVÛ3ÑWþˆì¼Q‡)ïÁhM*ÍZ<ÓÙÞqõ¼ “úvPz>øä©ì÷íLmËÉq. ®>Éx:|uzóõD¯’ÎP}ÊD§´Ðs¸Œ¹E›%•·’‡x!l%{Ú®‚)oïÙu²T:Ûé6Ø/¼|¢äroGSÛ\4ûä¿Z®/úöþéj3s_R{—Ø’ýÎz½ÕlïZï&ÛË™oSÃåôƒ‡ •KS9örós;´ÿï¼”3ÝùšÉÿ³'á¿Î¿«ácb¨®*¦Ž‚ùTÁljÀ“ÕJµß‰éìùqˆ¯ž Ll¿ 4ì¦?©N)g¤^fsPÇ×õ~òüÁŠê¸c‹I>ªA/õÓÑ «–˜zÀ¼óÐOÁÁËŸÁiìdÑ ¤“|gn£ò<xxWÀx:BS),åBÏ0e‚Å«á?ÜÌÜ.®.‚+ps”€Î÷£ûPàè<ò€‘:™?óYãéj¦›°ÀÑ›””W-]žhíóE…árσ§V#–»úøWºñÃûWÝÕo´>ëø‚Í(GO`t!(ÍÈ Ñ4ÏÇœ\òhšŠ˜­ºŽSâ»Ï?v:»ÀõAËùÃÿ‡DûuûÂL(Fý  Êìž,?1‚ñÛç*¨ü»‰œXZ¡­>ÒDY .ˆÙWœÎÀ3\LÔ‡x*4ll8‡º>7‘.óiK ‚ô×U³•¢ps.Â1¡X×âÛr|°P]ÊÁgy¯ƒŠÞDÓñGÝqÅ}ú™“9PÿPåL.0øƒÕ@Ô{Ô‰vS~`õuðÇ ingI: i Éà{òûúx°ª÷çp”Àl ¯/üG,´~rà·{ŠîxðÇ$`óUx‚~²@&É©esÈÎ —yØãW¾ çÓ÷CûPßž*|C•E+ƒ“ü.¥¿†ÿ˜ ¼È¹Šýþã² ç=¤Ï-Uä—DÄÙì†ïÂ;ÀÅïÔ¸oâ=ÖP%`¡ÇÔŠ aTìã%2SêÈ<ŽÞè d½"ëìYé%{%48³\Ây߉ê=á𒘯g7ö4uÊÃy׆k…ßûËd£<â[h[TZÈTÛNä7ûɲÝñý à~zðG °ûc”² 7åÛV#½ò¼Rû1¯vaŒ²„ æ#ý"Uì›Ûn@ËØ-`¸.ö¾ý(‡Ï[$¥ÏáÞ¾ó'Ñ “Éø)_~§«¾äãñT‘ë›{:ñÔ4•P§Ówwß*OVuDÍRKÔA'éO®¿Úï9¯ ˜æ½ï &Ztl'“³RO1QÌIðGõ÷O•3³R”™–šdЄ%é¡nn:8Ϝͦ í4Ç13o˜FÁÆë˵16áiÞ(7Å¢Wú­zD´_œDúƒ¹Å»™ªãS}PºÒøÄx†3”ÙôÕ'€µ­€ýÍ© pÞÍ_â>ÿèLÓ¿sþ`³­_‰K3¡º Œ)!wåªà“Ó`Íœ¼›Çñ&¾¤ôGûM à¥ütH?wÒªss•Ó£ª”€Ç‚sŠó Ôf-̾Î- í I \Ž$Qd,ça‡WhG¢¸žÖþÏk‚ºhbãjIP‚Y< ÿ-æPrx9^æÈ`¹ÜC®Ãw¥àT¸Ò:¨û4<¸”]}›U湪€^Ø •ÿøí/¾L§ácFËt&)gëÚ+Ðä1¼kå)’–r üáîgŸ/Ö…Óº¯F~/¼™H.ë6uàÌ<Ž‚fâ“‹8¬L·-ÔOä‰õ*•£SÜ}À álzàú±ÌÝ/±‚?ªcDÕæ4ýQÌd¢4òRZ?JÈÒÝvƒãøüÖÑV?`M+ñûëù8¤>üÌ;ó5›Gç½:Aî™ÃÓ)•Ä¢ÙæE–üv™Ío碌ívÛÏögž‘í²Ö®’˜¾õW¹y&›|]—Þ™¼ ý3°9A#%—7±i‹Úöª4³Í±X{@úJ;[Æ&cC‹átΤianš…üÇQ}ȸ'‚6‡:nHï{J¢ËJil'X”Æ»ÕËÞƒ6©=Á“lV›Þöò »;².B”qïéÿ†ÿg\ÿñ þãß®¿zå™ë„WÃÔ/:¥¾ëËŸ8Ë_-V#Á)û1¿~nwäQÏz•Íœ‚ÿ8n>š:Ú脎ãŒÕƒ×׿èÂ?™?1¡ºg²Ð ÌÁœÀ˜Gºã\p¦˜’4Ï,21eõð`òG#'œ. |þ.E#¡ž'b†~ÐÙ w@µ>6ñè¾éo~×›‚o¥§súöŸ¯# 6¥rÀ»îôÞá$Ð;ñ¹gzãüÁÞVfÆvNºC1¡ôÒ\àz/ õvŒ²Ì¼Šz½3µ¡!ëæÀ¯*!-Ò—ÏZIq€˜9é7”5[Žþ˜öpÏRzÆ‹ ÿ± üQü;1•3ÏYh^ëÛ@¯E½¢A;µÅçóòu*Lî>²à»1Àî9Àî®” óDßTAi–Úùþã ÚkUBË ¢L(evÌÐd|ŽšNz5°»°¿ ÕÃõZ…ÝõWitëwÏ«,f#Eàš@ŒPÀÈv¾ýƒ‰¹#É'”±e棾Óÿž?—C¡ ë!êf}Ûɨ„mTYS­ËÅw.˨?”@ažÇç8 ‘?íxI%w8ŠD’ÑœWˆÔK ¿Ð€½Éœ o†:g"ÓPJÉ£xàPúÓØ€?VòqÏß+mtyÁq䮼y >¤)üW7ø ßÔ·«n©üл«è)¥Jþ çpƒ;Ê ÿQÜþeÙå6™·‡É&Már qJø£!\ås÷ÚÜV“¿‰gÌB¸²ëÐ;õ8.!ž&ó¤ž,äèÒÚ¾½,Çl[¹Ë}e³x¥ÜB3Þ‰˜¿rpIJóuß@ Oš mq—Ú Sb>%²7²o¤±´—ö¶½'¥ Ç«ÙN²|ò\¢É:®¿y=TQ?™›_ÊöÔ£õqŠŽ>I±DC?\$¯T´kl6_þ«Bv®ín'Ù[ö¢l‘)à”Ø¶´s×+Ž1~É”4›¿”¯°3^_šäwóìpðÇIïmªnÓØòv·†w%{Û.ÉÒÆö´)å†(ø䮿šeÚa6o pþà6}À´´t÷éš]`ÚµöˆÄ—­RÖ^·µ­×»Ö{ÂÆòf°$½mFû‹m.$Ÿ ÔˆØœêðcŒ™ AO»ÿè+´3*ÀùQìÄs¢ÿKþ`g±]-WVÖ{wwÆOvuŒ2ImüéüW§=T^ø[æ˜ylRè7*¬ÃY¢g˜ú¸/ÿÕÏ=ÿ(¬ž›¸´È$¥ ”’¶êú¦«Z­6i„Yfî˜-¦”¬ˆ¡–N4]z²µ²Î¢ Ü™jÒqí®š: |3ýŽ`2ëÁˆ·WMÒù Žÿ‹@'mVõ¢Q@Â1P~ÀŨtÛÜ0õMàS¶ÿùZígf™HT”®RX^KuÁém/¦ XËðã¯Lè È´A¥þAD?U˜6‚Ï*âó Á8½¹…€Þ ÅÝÓç¡Üïm¿Ð&³L—únþ’PÎ ç¬ù ÇÒ ²õ íÔ¼Y3¡ãZüLçæ|nGiˆáëž« Î¯ëäÔOÌ`ùNðÆ4\ß}Þàæýr÷ŧ1Mõ>àóî9Ní¨)Zñª >ìóœQùÍiø7Ó{ßú+w=]&ðG Ôô}4éù$”ÿ.¾Eoá™&S_pBE´îJýÔ ÜŽUnS¾':ðl(øãl|Ö|¾ÌQe:Я·$‘‡øw\ÁiÁ› ¹-ŽkWãÄ<,—!ÐJí7ÊÍÀ¼‘4ç”åWôþc¤ à—\ Úù€= ½P¬ä–Šrœ³á=ü‘}´¼zF}»[*‘™Ž²]£ËÔŒ½Vð(äê2”_ñÛÐf¶WdµÝ/Ÿ¹§l“OÜ­Ú…pgÔ¹57á4æÙ—X½=œÞèÅæü’zpaÎoÚQ4¹ -~SÒJyéfÛØ’Æ~°íl9,#ì;´âRøÄé|˜_ýîÐ×û ØÚ=éý,m rÓ|6y¸<ÜÚðÇT”²š]m[ÛàÌ'`£ív=®UK¶òïhéÍ Ç5X&@FäÎ8ß‚PRó¨*g5YÁ•E¼%íPp†¶qì*Kð Uìø­1Ò˶²,…Å5‡¡1›:æ9ø…?–;×õuãfë>¸nË=0¸{~íTùÅ.¶ålFðÇ~ð[n{ÇÚâ¶¢m%#$ o¢ð@œÊTÌmÿ+ù¯":#¯¹>?¢­ÿíú+ræ:ÉÔBMÓלʾõ»1Ô 5E­T‡œLNp´ø××!ÏR•Á\Àû¢ñPeýYÅs":}ôóAßÕiõ_?¹þ*ƒ:câÓZ ¨•€NéŠf´óÙ™i*Aö3¯Ì6ÓX÷ VÄXN-'ªÎ‹Þž ½ 8’üQ‰žërÀ0j@½L,:m¦˜2:8gfíV uŒœPìæ¿êÔ? eÓH}z޶±£—ÆPSóãœ_›=]ÌZ d>ºKI±9P?#”ü& b>̅㔂瑗jàçñéÊó'ú©Ä@úÚ¾}ÝnþÝnà¶ÂÐüÑ0â³̃6_M¯ðwrŒýݺæw×_…tŽ;»‹.ƒQ¿åðÿì;pUヸF_nįis-‚ï€VåË_"ˆˆ±Xú¥9þØMÕQ†^è‹rx¥x|>ëAz‡¦OÿQ-бža,5£Aú*®ñ6þ„æSˆ×}œ‚{Á‘„ç¡äPø|eÞúG ƒ÷–èsÿ8?ªŽ*dò¢\q€AS€â Ù—Ã=¬â똕׎’ä¾óÏãƒ?JÂËežæ:wçDõþcº:o~çGƒ âOŽåpp0‹y˜,—þ²G ~ågæOA­³¢´þ\“ó¸Æ"ªÆ7ªrèƒmèÉÔ<Ò·?þ(ôÞ§ƒâÝbÚwv³x¤™Ô€ÿÈÌéÙgqô‘{6ŠGÎ_2#ø6JåîxßFÛy¨Œ“2‘=âgÙö¡œäùr®¦#8« Ÿåžp{máR˜¯g÷ôôqªP´ÇkÌ!¸ ™ßðX\×ñ»”¿o»d³‘¼]mM¹%=íK‰áã…¨ób®Ì=82}Íʉ¢`^ÂHŽ/ 0ß÷óR8_Ä®†ÿ(k—"bG»Ó>’C2ßNdö/ÙÀÀEÑ/è¤)`ýÕïÎ4ýÀdÆD“Án—IÙBÞè¶½ýÛ†°¯ÁGoÁHUíT{þ£1êžH®KhqWñĨiZ™žlqÎéËàYèßæàæ#b½£ìn‰OYÀ¶ÑmBïdïu»Ñ&±G¸7X¯‰í þËG) æK7°X~¯¿®ø÷ŠàÌt¦iã$vø_òÇ3Ï 'š«êú°ÓQæzb©ª·Ú v;I~rÿÇvÏF•Õ\1¡è†yfrÃÄsB;óá?>é{:ºþã'ó·çPšÒ’¿Éˆ^ϯÐÇ´pŒZi:Ò6à­¢ æ`ŸÿQÖɯ;¢·ý¨3°t FúøÎ³ºðätæ“•^›æ7=5ñö«¾º0FUÞLêA‘1ûòmºAåNþ?§#e#‚ÒøÛýa wyVš9`ÉR¤ ì6AyO¥hˆuº¾<çÀˆKÆK…nþ«,´õ‡ë¯–ª*(Aeø«KÀ餸\nè.âH±é« PæMࢼˆÒcž]Òåœïe&{ƒ™òÜ„ƒ+êíÛõ‘BÍ›Ãü LjJ33l4Zc¹OÊS*º¨Ÿ©WAD‹ídÒ¡Q¯÷PÑh1J–ìQŒÎRf¸˜ÇzŠ>­Þ3‚?jƒ=ÚÀ<…†häóõž{>ÿ–›Bñ¾ ý Ï2œ²snÈ šˆrðE^ɧø}òåoØÞg£>ÿÿÑL5©>åäÕ<üpÞa;•âð‘d˜ÔµÃÀ—9Tæ8¿Ðwãþœþcy xkÕ5¼›Ü1ïît‹ÖqxøÕÜU&×JM>p>hñaœ êù2ïsý _Û’âÚ?èèúpO‡¡Ê“ó (ýKô *z¦,AÌÜÐÎ[ìÝÛª¹ ä8åÜðNëá΃ 'Ð…@ÏÏÉìǨ¸M¨#gçU´’—È ùKÖqhðG›Þá0Tó;'çÀã¸<·C[ŽáŠ`Øfœ8ÀúÝñž~N´\3¾þ(þ(GÉä¡t·¥¡´"7´g¤2T~IÛBÆBáß•T2‘ÜóÏ—ƒ?FósèK¼8N|}Ì{vP9`&š°h÷¾ö„­o—J5ཛ¿}š=Ž87e¤])¿ÛʲÕÇ{8÷…ÿ¨àùG~g®~gÒBIÍ¢)Ï<¤ÝRÎ[ÕNA”´6=œÛT;ÆV³gíY'«lg[FÞƒÕÃb\£‰4Ôä1Q0®ÿ7Þnç”>eºÑ ÌÓ&˜»$ªw4ø#-|Pnø\öïJïu˜'Ùbà‘ö2MBóŒéSÔ…ÊÀe¦1—‚žvÿÑ—‚ÿø:^¡­#þKþøà™ä{þSgÑo|ùKV{~QËà?v¨ƒNBççN79â٦☻æ%8DQ íÕUœ´Î=ÝD5Wt4]ñ'ó'þÿŸÈÚþwÒ¦©åúèONiâ‰×Ù3Ì©Iap¥×4‚[s-“‚JˆØ6Š­ia»Ú·’Ý>^’á² ÜTOüi%ÜÝ"®€OF¢ë_Êæ`¤ôeµ™Gq%5õ0Ïéw°À“d(˜h§uŸS»üqMæÚÛRÂ6–Óœ‹'òqο~ÛT ‘,™3\?$§a4ƒk›´N’z«éëØ˜¶°eÃzW?ŽØm²UÙ¶¶¼–P•a6÷§™¦”y`ÿÇVg­¾iÜÓdþ†Ï?böHïV{LòÉh‰úÍfõÎón°Wl:û™ýÁQQìxp}b>F±¡#ZQCN ÿ+÷¯B9“._Z&<|¿=?êgš#jˆŠªãë[Ž»/m­'‘ڬƨùj›“ÆÙòSÑz6©æžym?Zj«K:eœez»‰bŽè(ºÐOž_›þ#?í4Ù¨0Ëk›úNµÓ  'æ‰É@7Ám‚1²ó'üÇ (ÞYPÑõ w+ñr8‘kºtøc`J<à¿C LN½.ñö‚?r»+ÓÙØ9ÕwNs~(Û%ôlòº¿ˆ»ã‚âÐó½Ý__þw=@ |&»û°ÓLJImé”OcÎ –× ±ºxü‡ë¯f¨2ÀæÖÔèÿ¬ë ­Ÿ› 'ä”ð7¡ 4Ý îK(<Ï¡’ôÆÜÒ:ß»'öüa€ÈûàÓàû(5E@ä(Éüm¹‚[Áœ ñ¾•A·%å¡§Ú£ß-™C¿4(o¦ªà¶±à£2`ÚËàÔÑøë‡<›‡s"n‡^’„>›ðpxþAðÇ:ÏuUÐ\@/ôþ)”¢ØËÝÍÙ ü‘œQ™êòCÞϧùƒoÏâ$ Ñ*š†ž¦:¹Õù/ø–i)ù(׫(!”Ïê‡Z,¢e|Z6KKÙ¥?Ûv·E-Ù]v6üÌh9/QeJÖ‡O𠸻ð|IÌ×¼Ã<í¬v¦ƒQk›ÂÔHbÛñ6²ýS:È$ðÑ©`Cy[ç{Ê ûü±=µˆ?ñ2ðÇtöÐ/e‹âX}šg+­¥Œƒö™„\Yj‚«Øƒà³Jö¤íÔ¿lŸËYj_Hû‡BËø¡·óóºfŠØÑ™üñÖä…S˜L#¹²ÉÌ—¥¾÷7;í–Î:¶/˜m³m ~z$‹QûÁp3%š„Ã(º‰4Ò”²ù«uú²é6êäúg#6·£Ý%°Urøv•äñnñÞ²!½åí[^ÿÃNDä@оÕõÍ8üÇ• §ÝôõÞ3Âéþ¥e´ê_ß¿záëDT=UdY¿ôÿ±ÙCmPãÕ µÛùÅù¹ìÂ'áØ™ &) Gstt]Ïié,‚ÿˆkö鄺¦úÞ)©A¿Ò¨W¦ÅlJÑ/f˜éàÄTþ˜ãîΊBôÌ´ æó(N'®çCÍž`нT™çC1?Ôy€(÷håÂOcÐS?X'J®Q}uRŒÄÈÐÑKà8BòiŒ¢ð7ðõ ±ŠïþUlšeºü°„»=ÝÍ Üð‰\Õ\(‘ºæm‡ÿHþÈěЦh|Ä‹ž>We¤TüqÚ)+ôv1h¤; þ#?ûX„/¤à‘bôÔ<|ïžØ'Ïç­±¼ó¤ °77…‚2nŠùù®1ŠkúNh›·0ÖÓ&ß ¶¡ÌTNè¨N4ÌâOPä;á?ÖÐÄ+‰¯SŸïR_³X‚VoÏñ¹+|@\3=2‘qåSA>ÿ8© ™”Œ»re>‡ßoŽǵ ¹“sdnE%ø"ðî ï䬃¨ïRšNîÚX2÷þ±þªª*‰ñÖŒ~å%àœ*ü ce#¥ÇçqxY.-í! Ê#N$qe4î J äsïÜÏá‚”ÒœúÇúÝëðÎ}(9Ïêî`?ºm®ä¾ï%ë Â_IQ›Rr&¹UŸ‘óÂélsOSç±T—r:/窌–ØK¡9;/‡K¹G·y„L„ŠgÉÿqÕÞ²½{å—Fò€K²[¾Åp Í0†ú“£G}ïŒ^1pŸÞÓ`´×XÚΫd»´“ýKæÙÞ¶°ù˜])'¹Ÿsºw™€ ¡mº£”©Mø/ñZ{;¥ Úñn©mBR9!ëžü_Z€?ºØPÐù±½ãáGzÈHü<½,伞ßòH®ÈCù£¹ø¥lÚù¨Î¢'OÒhJ(î<ºåÛÿqÏ6°Kd˜üÿÑÛö±­Øí²ÚžC ä4€#<n÷ÈÉàùy§—~mr`Žõ£yÜÌ¥ÕRÌ[În¯½‚»j f[ikØGöÝ0[Ϧ +1ù¹çÊŒ2•ÍÅÏ?ü}üÑ£­9ô^³C²y—Ø#’L;ÕŽ´Ilï,¯xïÚ,ö o±™mU;VÆK"÷n4=Ä(«Ì^Žn~.ÃÇÿ—8£œ¯#á£'‘ù_òÇ'Ï,'ºê«¢ëHú®ïÆO\µMUÔ'áOžuγQ¥7àbzmBP#AgrŠ9Ãô4Ê2ÚO¯ßͯhòƒ¦Ø£!½Ô“L+'²šmÒ[ø›´tÉ4Ö‚ñ§Ž“U£‘À¸ÖˆuˆJñhŒŠ{:;ôánxˆß¨"yiºÉ£ƒ³çe‹j£ÓÁo„. ÷\ëÓ™#ð¯p#¡Ã]ÿÑJCÌ÷¼ø{Æ™™ÆQokVQ{¸¤ôԂӪȱy?~êÒµ¤¹”˜®ª\?ä´Ø^Ów,ê™lû \q4(q?Ôw3xî=͆Ÿ¸këúNùïÄ|âYé\4N¥=pw¢E€?jJ»¨ð¸0 ò=ÇÝKînþ•øÿÉTŠ’Ó'ýVuÿ*•“D‡‡ß#^ÿ±ý‘ŒX-–º,‰é¢7q_ Sî‚^ýŸˆn™°ÀñuAðÇjÏ=UÁ¦4Ü ø£øú²5çFß7¡t|ˆ²—‰CãšS¡ç¡µé~ðýƒàfj`f»w¬6ûöµtúý|–#ÊTik·H*àrI.nÆ?ãžþÄ£9)Åþ‡ÿ«Î7{ejžÄ{xO†œÉ‘äþ=TVʹ$¥m<¹Âiä&»Œ”ƒoãÊ­á?&?rÒ[wUM0àa¨òj¼›Û©oñX™&~ì•öO{n!¬w¸\ü%÷Ù½÷9¾æOêNgåßý¬×ƒ…ÞR/0ÒZÅËeøc+‡–)¶©ýÍ^‘SPÍÛ¸§ì“xàÚ܉/£¤MQçZÙ|Ý#:ÌSÇ©¼ÿ ãk"—ã&%÷í ¿QQFØŽp3EloWðÇ0ðÙßd%—¼C7“< p~mç¥:]¶c*®0Í6QÁ¼YìÛÄ.—ÚRÈ?1/Ûײ_fØS’Á—ó¸òd>ï96𬿨—úf=6©)•;8Øè€üæƒ(Cm"ë÷Þ°kÁÁOÁF3¥­hóˆ×F9ç0¯‡™æ¦9ñ…?V:gõEÓ ÿÓì•9þX+%ÀrSm}[Ë;ßû|”Æžç¹6·Mlýd¾¸!SBG4¦ ü†™ŸÛ¡ýçÎéè|ͪDNêýü#œ3Æ §©ú¶Zí»‡qË“WmTSÕ|ë'Ÿ|ô\Å ¼eÂÐc³ÝdÔÛT§ƒs@÷7oô:°Iqõã{9_ý•އÿ(Aé²N`z;ÍÔ SÌñÙħ…&½n¬ˆ¡Ðbõá?FûÎDýøžŠ‡BÛF0%|!zS úž›®&„žŒxkÕ]èŽç9GÒsò§ÒÀ»Ép3è|C1¸Ôæ“Éi ý°„áf¬‰ EÂÛÀ–C(tÒ °R vŸ!Æàh p8̪Þ¿:¨ê‚j=oû216÷ùwÀŠPö€‰Kðµ Š|,°þ°Y®»}wÿà{ÏA'xr.uƒ,F›E²µ…¿©OT…ÆGÞ ”ìM«ncq¥dÌ5u'ˆh¹œv:øãM„jÛ…ßþ*¹oS"DKhÖé@¦&“?»Ã'$ 7&9z¬füqÄETóxßÈû’Îb6w¥ñ jrX>SNb4ýSp¼?­ð}2×>­xeuUÔTÅU‹ò_þ’Kèƒ£äæºÉÑd«4°s$£Üá’T¦Á#„âB<ˆ9œ{s°_àççëá?’¢×òñ:8 ‰Ü‰Ñ\þÄgÀ“ r§Ê9èÞÐòŽÓÉ-)ÈônËx*Õ¢øªÎ7•vœÂ»ëq¡ÿoÑ+žÓŒVݺ=ÖZëýS<ò‡t’«ø­B¨É6´F¸»‘tI}›m4‹Ù %| ½1*`*íá²AÊÊ2Î'Km›ÕÞ–U¶«hé+gñç ¸”ž| íù7ê\‹¸û2þc$…~¿¡éÜK›?iˆ°h?IM-C€ÓO¥†}gKÙ.à¼)ö±””ù\üñŒ7p%.Ì'Ì’/ñÂAi¼¢H|‡öPJ‰FSM2~Ç=ì ”j‹ ‘.ö,Øc¦ÝkoÉ5™f/Hz[PŽ€yÇ‚?RqSšk2šÝøã°ö`´çƒÊYÆUŒâ=@üv=\Vr[ͰÑÿÅág–¢gÀåä“«Z>]ÏC—Œ1L4Úü…?Ö9Oõ3³È=â’ñØŒð/ë$‹ •”ÖxkÛÞuÞùV¼íCÞiK‚/ýdœ¸OtâЪOÅYsH³<èi÷}±3,€ÿïDù×ùK>zæ8\au|}—ÃÂßó‹š«†¨Ùê üÇÏíŽ<êYª~5' Ñ3óÂTÑoT'­3D4Ÿõ.JçúÉõW• w«qO?*EguWÓÁñª¦9Ý4¯L:`*êöÁŠÞêWÝø>ØW ê;Ô`+º£ó«‚>Àåxh²É©·#ÞZ5Xç…ÿøœvW=Å+ •< #c¾vÑŸ”ü‚›F?,áqÏ`3ßwþÇ{Š ,®È©}§?£š>:ÐÕúð;]þ¡ÿX®Êúî_Õ“í ,àÌÜðÏ¡úÃsTö°›{wæ•2Ó sD×úîþÁ(ÎJç‰ ïË-ÕÝ—×14Æ~ZE¥ùª›³Hýþc!ZÁ=+nU<ÑTPù#:Y4?bòjDÛÐö¨,Zî ÅKV1ô>hy÷|íînnFðG"ºnBÃ3•?q¯ç¢*lÎQnÇõá7Ž¢G» ‡ãÁ´„o»EE)ŸçiàO¤ÁÌ3h Æ@j@õå<ói¦²˜‚à­‚¼“—Aµß¶<Šï&òCXÉùRøP^p«ûò·G¡ÿðƒÕ-ŒÒÑ”…Wúv1ކîœ's…çó Y {MšÙÔòŠ“ˆW&pFþ•_ÂYtâ`öš”H}»÷ôšjè˪ùm¿ŸÃÜà12\摲¶0ðº ïÝ(!¥„4—`¶<ðN~@ó^h›~ô,Ðó0f>4Åuĉ^œ@kx3üGÙÅ1eŽoýÕ'Ùi÷ ƒJ\Y‹6éÆûÐ6 ¸#Wå”òïö÷´vjaD5E©ÆâÊuMVúKÂÚ1öƒ–z2Øv°o¥Ê×ßvD¼IÐãÅe".dÇwg¬?pš+;ïÔ%¸Ò9ô™cÑ †cIeÔ0zÁ\~ж±]ì5kì YŽ¯â¶†œâ2<©$jsÄd1_³ÌfwFhM `T•áF¦5¸2·7¿îHfØÍ6¦w‹mmï‚3çÊ; Ñ>JŸÿ83Ý´0OÌŒçnÕgŒ{¢B;̈Ã&£ÍîjÏH^™#Ùì&[Ëæð.ôÞ°ì-k¯Áüj³ÛY2 üqŠî¼û|í™þoœÿ‘ØäÌýÒ2â$s‚Zkœ×[Ï<'¸"¡Î¯ùöŸ¯÷dS‡ÔjµCí/mù©hç=§TusÝ„¥Û˜7u4ÇIï¬Ñ3¡®ëŒºâO>ÿ¨¬¢SvZirR(ɺ£©âÚnÓ-ðS.údZëvÁŠþ#½ìð&• õCÃñWt],AacahžÉ¬ókO«…:7”¥À_/ I¤ *~£¡˜Ý×ÀEWè$Êü—þ Fþömž%ÆŽÊÍQ•‰ý}ÙAb÷Ð!”3>ï§´<‹^šþPøqiûÏܤªÒxƒ?è>êëÞÏWðšÜìWaùï)»þ*/ øtßÕEœïåԲΠÇKx™o5íJ–m<_å®k¥ª4Êñ©/ïn°æ!´peJHOõcu=ˆhÑœ|Ú‹V‹Ïí[i¿¢7²£´ñù E\·â8Üý1„š¡®˜Xð6[ƒÌ_òI1Ç(üGU¨¹‹¾ëãÁm¸,¿GirÛœàÉ@ïëàÏ%ä‡Þ–­Oôi'q :÷Vå›õ%#/âµ\Ÿé¥‘ÿ¾Ça óÿ²³å8…è’D&qþ€+OV 7¤£fC x3ÔÚ53\ÊjžÂíè2ü‡Wñþè+WäoHŸ_Ã9çâ[p m87¯„×Ìh¾›±&žŒxGÕxß—÷j®oEð{:Œ±9\tußåÒ¿FKt3ùXÂížùf‰‰uôœRYËÃ$F„Þ/Á)ø~>XGšG©‚qþàø]Tüq„¶€Ç:Ãe䡞#ƒ?ÞúöžÏC[„à%” úþ.î”úN̈ÎLGSüf`ó rhð[;ø\ðÙifþc”´?Py7ÞC(˘ëêZÑb;ôGóˆ¼|ü°Þ÷ü£ „{ ÏçÀÝõßù‰¸*zg(¢&†—„k¯ ‚?–xÞ©¼ÆÍÖ8äæIí…2ŽÛvÂO>¡T•Á¿û¡pwòm\sïþÚt s-º¤ï;Õ¹¹*k²£Õ~å ¼þâ<àv0Ð\¾Îð“Övd‘ãGRÊx`ügôÖ`jËñ)Õ?ί¯žšhýÔðKàTzÒšÍ,'Á'ý}ùKžÊpVîpVx’±äoúæàiàÌxªq þh‹¶¢âÿ×ÁU\§§<]&Ê+Bߟ¦æð¶”ç\{ÕwOhо1JèòÇ-õíj÷dæY~ææ!àâÜ—ÃÌ’ºp!d…íg Ø+rȶAÙʉ&îI"ƒáüÀ£À1Ì×{”“==¾ÿÿ’FqmÎl2Riy -ÀͤŒµíí#ùÝ’·‰­/ÃdšÕ6%œN5^Á×y¢µäGæë~³NT}£â$æSB‰JãâÜÈî³í)Þ=fÿ?â¾Lª£Y{NwWUîÁÝ-@pwwNp÷àwwww×Å .‹»»»Ûÿž¹ÿ…e³<,y¾{ï™'jºût¿2§»ª·fÚ»²MÚ5’Ûæ’³œ,w‚³Ã¿-5ùÍþ/ý-ê,×!( åŸOåªæ>m“’Þ²v¶meSØ8v·í‚ÿ¯h½Þ`öAvØÍcÃïøÐ¿¨¿éo>™»êG¹Ï?z9:Aì5Ï%žw–]-iá“úªÆñ®ð¶É½ ­–]pMÑm#᡺¢Ce¶¡ŠìáÔfsÐËîô ç w¾î;ò:±ÿúù¹›?q¢Š¡S€?ÜÓK=Õj5SÍ‚ÿˆëœú©h'='TóØ8tÃx©~¯:y5zøã¨Ž¬óªF?ÕÎ’ÊÍi¾Ã¤ÊÐÏ·tÓÒ ¥6‚?Žšû&îZ}Ý5X£9uœ’z œ‚«>kÒß”·=ÝÖµ©;VäpŠà{þ1Î׋ƒÏ_õÖ¿Ak‡f? ñòð*Ž?‰žA«Ü€ž.ñÿ?¿úË|/³í×ëg²™mÂCù>õeJüc@íÂVäÄ|†¢ñ<°‘ë–“Ó±>ÿX© €7jc^Ÿ¸ùw Q>zG‘˜¡ì_`E΢•PN¡àj2¹\¬«}—?b8;gÆ=gßx¾£†Rg¨Â¢Ð¿ h¨¯béAšwY×*þF¿S/ƒˆÛ)«#€_Ù·w/îFa`|9ô;9ߤŒæ}ú±§çöPh}pobÑ=ëw~ç¯«ÂæEöšŸÃ}ìNJÁý€t‰1eáSpຌì¼ÜóƒU鄾úúƒ5U!S‰êSRx€`¤GàÉ p3ÛøG†Ê­}™E®s,ùUÆã™ÓÂ5ç®Ð÷I(q€ÓÎÿuDA›2Cc¯‹  ‹4—ÿjøc°ú¥t¶^ }¹Ü‹ þ¸ îêÅéx$¼W¼@õžŸ©VhûIÜ·¼¼šÿàKt qÆÈà}àóe{ÑF÷.+…¤:ÚY•3ñ,øžæhå^0ç¹@çÛí˜Áàž{rQ¼£{þc:øc>G‘¿m{[Ü>²?&¸+ø#|N 7ëÏãZÜ º!†yò%Vgϧîkk¾ 7S›sƒ‰«È[éd?Jn°ÙTðÛSIoŸõÿ’a2×—¿}øc%¿áMpq­ø“Ùö%Þ[O$íî¿:ƒ9ò›D Þ˜ƒ[¹Ž½móâ.L–fö”íïpÜ> ²®!­(¹4å³\€Ç’ŸÉeÖéofg”Vôfg[Z˵ÍEÚ-ѽÅí*[†ÚϵíðÇ{#:ÕþaÊm /Qø ZðWóÑìûÂKÀWÌ_XI°^/šs’À»ÝnÇü˜ qíS›Ë¦ð®òž·Ê›ß>ä5¶”ÿnáÀš»ÔœªpHmνìþG¯Îøûw­Ó‰ò/ù#¤3þ£ø#ž¾äû c›'³Z¥&©Åj¿ý'ŸŸïóœQYÌ1óÜÜ3oM }O¥t²; õ£Í1íÕ…Ô÷vù}åS)”gr`L!º ;˜¦Î{稩E;ÍY`ó!“IwæùZNfÝ–¦ãÕÊüä>T—Îè*P{1Jü™dÒèÉÁˆ·_ Ôy€ ^žëžg%7w_^(‘átË—ÿ üÿáPHê`ïýçµÜ3üA¾}Hax6ùŠO-ÑʵT€£`Æ%àpGm îSÐõ£ˆ3UaÚˆ(µi p>3 xâ%Z’£Ã5/†w3` 0#0;à?¾w²Ó8ëœ&*/§nÔ”–ÁeE¤ÖÃupp7·;7CÔM4ü²€æés çoµÒoƒˆ–ÂɢÃ?,ïkøÑÄ«Š~_£ø|ž²˜ú¯#'åTüÑ\t^¶iùÛwQËBC'–•fͧ  þƒýÂp¿ð°SF>íïp|µ¾Æânõƒ›Ý¯o8Iõ¹µªfJ`Ô²ðl Zn¾éû Ñ­ÿqãÊLhéWžpT‰'£8”©»³ªPµ‡?û1ê†/ÿnjx‹%ðÃé a¯œæ'‡e¤<”F6ž<æôPÎ8¾/»[ #ð¯9ÅUßÖ{¡ê‚?Üúç™Ñ¦6>ÿ1[¦Ê`%m{Á^³‘¼ëä6?äÿÎ)yZX—ÿ䨛åOd³š>bÆ> þÀ若”×Ê\x…©[VÛf¶°½'kí.9Ä£å¨ÄYÕ¶¼ŒTœù'§ À =:nö…¶ìæh©ÀeL^*$¥ |Ffé%³mKû þÃxûÚúàâ©6ªÍ!˸ ä»èsYîÀŠÖ|‰÷ÐóRÝòñÇ\Š'áiž ÇŸ¹²´],S¤¬ÝFj þðÚ=²ÓúÉo¶‰ìãÂàÊ]h_oÚ` ¨ÿ‘¯ߘ˜½i—3OÀõ½%í:[ÕŠul{×îEOÁsÍî¶¦Í vÏ¿~Ê©i\[ »Ÿ¾nzC1öÀ ¾o®H"ïrŒÕo²\²ÙQ6ƒ­æé=…;RÔ>â½ðr-íPi ÂÛ(6ÝsŸÂB<Ö_OÜÿï]‘œÉÎÂûw“üëü‰¯<ÛœTj¡J©³é›Ž»Ûcƒ'©Ú¥fà{‡4ÎÏUW<å›Çì‡7¸ažšÜú¥ŠëDp¦ë¾æ½>¢êêªíOµ3¿:e²Ñ“èW ᦙæÄQËLUšnV£–›Êzd°"Æv8ïTWGP;xƒe”‡;Q#º¨K;¶c­Þ0éºù ­^öãpžíª¯Î@ƒ0öÓ|`'ó>8¥ÖÔ‘®@Ù_£Íà(ôÈÜ4탑ÿꈧ±™ •]k9 ¯‡ºŸFéÑV?ò§œà#«û­©< KÇUàÏ]_“TfpDY0È~_&­žTHú‘>Á'Eâм챉fÐ hõÈ´Ø,Ôõ¾[ÿ#¢³ÇÙc>ÒV_6ªµ”Ψ ¼Ñ è§Ãès Ý':ÿÑï5ª9!½17ô[&ˆˆI4úˆ9IohÜÑ:qªßuüq‡Š™qz#农œ»‚Ýc$R“ûyh=è¿F;æyªJ™›«q8ŒCh×`èì”ÐÓ=ÀAçÜÝ]¼Ƚ®ë#í‚Z‚W}ðÞ5ýêõk›ÀÍ”B»RÓf€ܪ¼«àF¶Â¿üœ.hGHR9þ'ó8°% ¼Br®„1AqÍÎ@ñ–¨Û&?-0|&8d] %¬Ä=‘2ZVOJ-›@Þq4¹ÅÁF‰x?O¦&àùT‡ «o³¼SU  ÖP.Ès1JOè(w—~2‚ßqAààZ»ÝÆönåó·8''+ ºg ‡ÐC5÷›x¡Í ú -ü¨ƒ×Ð*"+¥–Ìd+#¡Ë³ÛÛòÊþ-§¸…¬“hÒ‹+ƒµþöåüªÄõø7ó5ÇroO§1îDm~ MQŽK˜rK.Á'ìó£ß·è6÷¯â°ò»­m·MCzgŠ•ÒXZÂ=ÕÁ£¸"Fô8œ×{5á›xdVAQÜÁÌhÆ…à!óL-ÊH´q¾­o³Ú›rÅön/Û% ¾_…;a,‚¿zù ?qüGJ Wr›ÆCÿ3 ©”Ü•:ö³Ô”âÒÓþe/H>×ÛÔV@›ÛÛ·KfûÎû”æþü&@6¨ˆë3ºl¥–¦ª Ïo8¹†'¥ ¸Ò͉ré L¶[%¡ïùy´î §à¾Pƒe<ÿHïŒÕLFhÇ´’ @uì„SèoµíÓ;Žf?8`²lµmvy&Ÿáj…/bìfšô†éðþØíü­/›4³ÉÝÏsBÄ» ,–CîIy;Ìæ´É½K½qOØcÜÝ&Oý® G«§åæ9ÀŸÿ½K9Óœ±_F&Œ“Á ê¬op®—žÙN"5AÅÖ‰õ%§ŽoÿÕoàj‰òs~ýÉüíþž*–¹m^sÅäÕQu 'Ÿ3G5ôi þ£áOµ3‘ºTß W œ}Kw6SØj›© 5°Å¼3~Á~~ ú:Š.„ ]ž¸ úíÔ€Qbì0Éèv°ëlWÝ´{’5¢È¼Œ,ÔõtŒÃÎÖ¡2£špÞK}™à‹€3ߢ•Ça·¸-Gyxý~^®«9u¿Óq6;‡wÁmu¹þ£¾oÿn9 NMš ì|v™îÖ(÷îwëžÐ¯• "b '‘~ïûÔd'î 0[¨·ÊtÊõ e0côQ(æPÃÁRÀXñè¢ ·ß7ÈçÏU>ã¢Lm¸…uÞ†Úâ~¦ÊÕ†œ“:­âü–žÂ,¢áˆÙÒÐJè¥À<\GÕ5E¨Åå9Àç‚|«|5eçµÀL‘¹Àè¶à' *g§Bï“p®Á‘È1ëÅ[«ž›ô˜sÉ€iCyO€ÖŸÃ¯Á~ÜW¦I_Y"Ím&yñå#àxà¼mp*¥ð÷r´#k §ùY5¢ÑÐ&!8/O~ߣKÜI:ËpþÈ9mY»Ñ½ËÁ9¤\NNÏù;çÐУà?¾]-Êl wô s¶"n¢<mª.«ÀCm›Ú~­]-Oy20:ºôu„—뉸!&™¯û>‡{†:µ)îÄ{êÁ)¹ŠH)ä°”´Ú6ƒ4‡¢¿-)ì'[ÉÖ•Ó2Èž–¼2Neå.\g#G$’D`Àœég~5wÔ¯]膟iƒùô'Ü})Ú/q¼Ýì~ŸÿHho}Cx—yØðÞ"Väª-mÚQðv‰€‰±þÀÜ¢hæç*„ÿg.v&9_•Äg¬Ê_p y’Š«Óé£NQÇÝÓ’Zù©ÁjŠZç$u~îÓ¹#žU*®Ùo™3æ¼I o¨xNvgŠnc^jR×ùIÿ]ù›”´ü‘ œ½GW7=ÑÚÕ¦<1+ÁS~&0óï†uJ;u.àÁjE…°–q] þ>ðG[`D5Úg47cLÖ`կݡþÔY¡ßÒ^`ê@ ñßÐÝ  Á/@!î’f XôÖ<1=ƒqþc­§“™bba^…ÿ˜Dui<¥ÄœuÏÞã_0ÃñDb vwŠIû˜¿}°Ê Vk„^"w‡î`ÊŽu£ùÚžß¡ÅëàÀfÐ3 }8Zofè?¾{þüµgƒ³Õ^çË&²~!&¸±zø;¯§ê4˜›ð38‰Á`—™4 cŒž˜CúƒzD´dN<ðÇ`ÖNúmk‡~ÖD¼““RLÓIûA/×&7¡¸Wƒ(4]5#Ò>þØã¹« ˜ÀÓ²à4v 0Ò8Jí¡Îãñ1 A…ù$Ôÿ~B/àyVÀñ s¥¦%ðõ¹™*a b~${ âü|Ì»˜ÒáN³•±RÄ6•¨rŒ½Ðâ“8­»\—ÚýG‘ÿñüc³ºmâ^&Šà¾<îÓ$Vò7/âa2J³¶Ñå%G‡[èƒÿÊû|;¿âó|paõí¾˜§ª%FøYðÖ® çpŽ[JéNJk‹ƒ?vØKv¥¼å¬RUƒ³¢½Á õágÓe'Ðó ô’îÁõ×ì¢iÜ]ú¸µeù3¶-m~{GØrni$“Ž\‰Ûò xŒˆX—­¹ý%VuOðG$nÎÏÑÇ<\þ#ž\“Fö£x¥¨Ô·Mì )nŸ£ËBáw´ïáâæ ÊtÜ>¸ƒõù†yý%ÞuOíÖtÏì¼æ&:¸é¢”ðåoŸ"=¤’ 'ÒÊ®²ÇÅO¦ÚÞ’Ì6»¼*©/-3UÌÅ/ýý üñÁd†ŽêäþÝŒç£Rþc¤­^»ƒö<·»lM»ý&ÓáHÊÉQañbÕtŸª™&"4ìÇÛèœÕ÷M I zgBÑGynóØS’AŽK7ô5†Íã ÿ±ÛF²wx’í†wê.y$¡[' zË=e$œÎüÜ¥ÿÌ%Î@gHþˆú¯÷_½õ,râ©Q*œN«OøžŸÏó$‡÷¯¨MNòŸ|þáï™ þØeN›[f£I¬«H;ËuóYÿ­£ëŠ?™¿$…ºW°ÝD†§ÛºŒéã„V‡L9ò7ýLL7'¦ž£ ïävâêÔ¯¦Tx—„Pzï-£4‚¦›4tÆL0)õÂ`Ä;¬šûê×zØýÌðÝlÔXñ(u…ÎPJJ¯¥6¦ê[¸Ã3À,4..?¤P¼”šÓDrŸ®\¥KT³AG'ç¹ðõiE¤ƒ?Ì¿;I¥yÀçš´ô«Ï”¤Ðü’¢™CñF_Á@Ži™Ž˜…º…ó½V¾…Sße¢böÕÌIà\nëmØ…æs7øð¿áèz!â´1xó¾~¥ž-“F?1Ix'üÅ`yQ´²(]§Ì’ßèeú ïâeäþàõ^Њñé¦ {60þØí¹¦²›“àÜ¥°¾ç}0F9¹+^i¸%ÿ>‡ÿ8Â),¼âF¼ãDnHkô'ð>è*·É‡ŸÅå%< tž:ƒÁËð>Î)ùlOI)8†d”¥\ë?°´4·fy(‚Y(žŸºæ;?˜–ÇÃM÷åß] ä(\Æ0#Ä_ÛXb¤œ„—ÅPíYÁv{ñÎyx!p)™úvWœèhÿ&zOyÀ‰½ø2]åA²LÆqI…»hêõŽ—pÒDºÈCðZ1ž‚÷­ÄÍÀ­Ói£ú6[\³ Lþ*¨Fë­çy²@ÚÈtðÙ0[Çæ¶7ÄÏNÜé/ e7ÂÝ>ÆÃ¸&TCø¯5†z:9 q'ZòkÃ9Ÿ©A™Ä±-ld[MªH]ÛØž“¼Öñ–· e%ƒ…¿|³Œ/€3 Þµþã…'¦ö'7Í: /ŸM7Sœßs.{^a%ßÎÅždê”Z¨æ¨íNÜŸ¬uÄ3C¥6WÍgóܵÕQub8£Óz³‰aŽâ«b?yþ<µzkJГZ´#E4ãL{çõ ¬ÿÚ¼7¿á'åtð"j§ˆ“LÿI ñêÕ¼ŸªðJ(‘óX‘kù›€²¥ÉÐ,“.XÏ?Ž©Nº8˜#)秊`¸|ƒ*)üHñhº£ÀÄ4Ð%Ñ©—ù^fô¯×Ïb3ËÄŸ…rƒ#žF‰È=-p•Z¯»õ®é•q+]¥¤-*é"nPué"0·6ݤ]à±^à’’à¸ÄÐeYÙBÛ®¤¿i)¸j˜å¼9¬Ë}×hg«£(ú9l±Œ²Ò/¾*±«©)Ãzdü„w™¶L¼ï…ë;ê^Ñ";¹õ)sßW¯±m¥‡û/KÇ©4'åzæ†+n¥ð¬à¦4ž™_p÷§Áë=7U1ø4@µ†àÅcˆ×‹FR*n½_ʱµìãKà þ˜Kói9ع-=Ð{œúÜCU5•Àx%X¬?ðåÐwŸ œåHP¥Mì|I+o¸ˆ$–yP÷ï)¯ï,voø•d&ÀnÑÿ_ÕKó+\TN0Ø6`ä`ºM;8²Ä”Pô“e¼ì”z6»(D} ß•êù ï†ÆÏË0 R«oÏžZ]‡&cn)¼÷.îÇ·è9/•@Íp’Å6´þv¿%ï&‰(î꧈S‚·ðz`ýpüî:«z~ËGf>} [à‘Àïst€×Àµ×œZ&ÛÖ¶¼}%sìCùzÿþÜ´ïÎ×À®õ¸?œChóæK¬™žÖN'JˆŸ? é¸uÜlòFzÚ2L&JÛßzíoöx¤— ’ÝÀÚâòÆ*þÈ |ùo˜¯ù.îzXß]ÀúL-µ5/è.w¶oÁj{e‰t²§üãíMûRÞʰQAÛHÎr¸Å]œ‰‡Aå5œÿQü1FsZsVK6ov{ÀV°9l&»Ü¾±KmðïI9+ûíB›W” /š <=†Fš¢ÆCWԯݦ/™©˜QÝàŽ¯ùÅ;Ïn ¿˜·ìZïf›Ð[Ëj¸¸B–ì\.QÜlÚtî²?¥hæÿ¢~”q†9S¿ŒÌ{Or'¨\Á¹>y†95Vi z¬¼ãæßM¥Î¨ùjüGŸ¬uÁ3_¥4—á󞘸ô‡Î¢Ó8]uz— eÎëúwUö§Ú™G=7Eé )ÚîèùÐò)ÕfÓñ=¾ÊØ¿3Idô-–NcœÍ©P¡<ÖlÔõ±"ݧ¡©<ÎtSYOF¼ ª»ÎA‹É=M:¯PÀ§¢¾J0£®“{$3…#ESƒqþ〧¿Ù ®©¾È UßZ10úœs Î]’çÑ 3†–P>Z§ç|ù©"@ò²˜×ÇÑ’Œ¾SÕÁ%‰°’°b·úà6ŒDd(âŒðrçuç{™É>zv9aˆ|^c,Ôx~ôª!uò}²vo:½ðe üË—_j$¼bJ:ªCê ê×Fv2éÏæ5¹5yÿ€‡Þ.Ké$zx—º˜Sú à{MûAۥĽvkgüá繪 ›³àN@ñÏpknýaèg|•cr%ªÆ‡yïçgô„N;–Ò"Œn3º¦79iõ¹¿*cJae—áÕ¼Øû„Úá÷SásD%}û¯®sr‰&³¹(pûJàh_` ñýWkÕ“¸]‚çÅWó(zA³ø%_áu‘²6†·…­#d–½Öœß_ÈïàªóÖôož{>¨“˜'ûqRJ*cÞ“HV{ÊV´[¥'øc³d;Ûöžì•þv³ƒÏ9ËeѺ#pSS莩jf|éog¬þhÒ¡e\lÇâMgÙf`¸§²ÐFñ.¶îþàu2[¶Ûº¶ª<‘0³à"M ~&yeVÈuRŸ3±"ÛPUz`ÞKJïx{]’㞎Wæ³½[¼‡í›ÔW?*þn%3%Ô`Ì÷?©0œš1ÿùKb;C¯Ÿ…w2üëý»¡ENd5Y±f}Äqw ]õdSGÔxµJù9±~òùùKÏ%Uü!tÃì7Ùô)ÂãìÒ ›“:´®¤~¬Å^Í•ƒû}N#7Å  úWÓËé£Îbf^5÷MØQø™€Ý½?×ukøÙ}X•ïM^ºkZ™¨zB0âmScuußùÁõà‹ôŽöYÿ‚Ï}HSÉõÜÅ|îóólæGÕÊݬæÍpÌöØçÜïOq©3\Ñ.ªÈ1€Óxtÿh÷‰‹™­ï; |Våhô}+ºG”’zûNY<„Æ{èfþ¯F«Çì5Ëu§úwbÞóœtØwvÂÍ<¹þ# µÇì÷£Œð1eh(4ó ŒàlðÝ|ðG*O^z¨™?1ó‡N–tx<ÀVà}*ÞÜ^O±Íz}ž³[¡+Õ‚v ¨ÀXÔ„JÁ;Ç¡ÄO*Û¾úçq¡Å‡Ã)z¹ÔnðGN,X(ÞðG°n%ÞÊ‡àˆ†À™ºõÏýÀHce©Œ“»ÒΦ’kn¡/üa~Áþ\“óò\ÌÒ„ªP Ï¯a®Âl¨ _Ñš_Òî#]¥)þ+Œþì4˿ĻâI¡?Q$hÿ WbÑðÇ;noÏÚHv&F®©=jÛ€“ÎÛw²ÑŽKd[ANƒyÇblq}:n²šE_ú[Ü9¤ÃS*„û1ˆk›0¼S y Û¶²`+Á‡„ò.´5ì{H–ËX»Äæ” Âò>C¡>æwàÚŒ/üqй¢ï™>4 k¡8]0Ê&ð޳G$“ŒÇÞ‡Lå]àÝm-ÞÃ#^of[Ì^]>AzÉj,?ÖÍ#ýõÄËÿÞõ‹3 ¯ÿþêµ'«á_òÇsÏ$'¦š BëDðónµš…ž4Ê_õWÛÔ'éO~~uɳ@Å3Ç}O¢Ï˜hú­ò8 œ•zyª¡jª?ÕÎBê¶ÉIçL&hû„´]77­œhj›©ûuÄÄ C&·þqu ÷ |L¬›=Æúî÷lrwˆBŸëFÀÅÝ@½k`¥ûfˆ)­§#ÞÕVg[|€¾ŸFé\vqDîŒõèæCqsÄ%C¡hˆù^eñ¯×ÏX3*»$=£t¼*!rtà«[M£'€‹Åéµé@)­úaþĪ-G”òPÜ›)X"?¸òÄpÌÚé´Þiøc$Ťmæ°.õÝýW<ë'&2oDß:º§±I€ìm1‚EÀÁ¿CÁnwtƒR\n) Ì? µð"ˆh‰á?B‚?Âúªô.øgöS9E1á²>ëú÷JÅäNøyo¬27 ც_»ÇsSå3÷)>ðª2zvæ>O U[î`;%§lð« ÖŸá^ùá^MŽs?ÁÔëÿ‘¿¤ž* ¿Û•r=v#O‚1WQf_E»h2Iþ°£à?®rà}^þ›û`Üop?é+-áZŠŸwØ¿íg»Anr1iŸTñóR®çátJõú&ž×ì„#ºÕ2™‹ðÚÈ+d‘4–ðkm+›Ú>£v%˜¨/°4’ÌØà]y"’»c*²9ý%VeÏ_NGŒqc~J0úYL*'¡mWà{xš^¶ بŒ éíg+Ã{¶w$£¸Ux7ðM´²wå[òïîôDÒ—(Àý !7MkSˆ£J){ÈÖ¶ë¥ørmkÛÁ½G›§Øð&uå$çàñ|¼9¾ºhFOâLÕ¯L:¬„i4‚“šwô^ x'þ´|ÏùÅ»®c£=…û²Ø6·yäŠÄpìás4“&›ü&­ü‹¡‹¯›àóÎp qiŸdóŽ´g$µ\–~¶‘cË{'yÏÚ 6–]ÇÓmZ›Þ¶·Dd Cw¨>•eËÏõÖ —ÝÿèË™ þù3OF'Ü¿äw‡jŠJ¦ó苾ÏÀzªƒðëÕj'µ³î§¢ölP™ÌMðô%óÀäÔŽá|ð,ÒScnépº¢úžÊ úJ¦Þ‚;üL`sV`RÓÄùà,3ui\Nt:`ªèàíèŠnL©kB›NU¡””»S:…ïõðÕQ½nrÓs3'#Þõ§.@½0¿·#VàòA*…™4„Ð :ëúhÇÆK½‚Á;<£ÀQÑ®‡ÐÒÛî¹ðö@å=Tªt?\Éúlz’“ßýÇ,•¿YÂ÷\a3%C$wÿóM¨ÃOÄpÍ ŠáA„Ç‚?Bõú®ÿg³sÖ„dw¯m°d^ЇqkþÈÊûÐÇžPÁ¢3»+i ظФ-ƒó«Ž†^†C/kc”úúÎæ¡ó@žýn5H½h\cs{èï!p ±è6ÖmZ¬ó<Ç|;A)€=n¾öÃÀûÞàØ”Ü_?…Œ.8ÿ°þã<âû›·…¼´“‹p†Y ì—ãõç£Ð$Wåogsüq³bàÑ´Œ—É ©-#8¢ÌƒºÏnËaÛ^îò89-!¤´B¾Ãã0ºC¹6Ç2ϾĪåiç´ƒ_hÇ÷©+@v“ŒêËséh•-+Mðwm0Æï6„·üÇ` þeI&3i9ÄxüßùÉ|Õ«û<áõ 8Ék˜i‰$ƒN¸Éíìm ñj*µ€ü­í,{è¿JÛÙRÐæ“ó\'ó=NmsÈ”3 œÿ˜å’«´;Mã æ ­÷ÙÄZ[ÞÆµàÝf"bm{ÌN‘2ËŽ°åäD“Ð,¾½ÏÓLEchE€ü%.t—mB¿ÓUsV¢Á¿ì‘àÆÜö–-bã{ý¼ËlhobûŠÚßllÛGzKB>Mô÷±‡b1Á©–ýŸ¾¼Ngb€óƒ œ¨ÿ’?g>üÇ\•DçÔW}ûwÀœV3Õ|µÙIõ“Ï?Žzöª4æºQO¡âÚ£½`¶z¶ gÎëxºy |p?º¨O&+m7ù¨Pæœnjš:!ÔS›.›;`–Û¦ºÞ‰ö„Nn'¾®ƒy0’z=þ¦RÜ÷ðº®N9„Y–J÷&˜¢zA0âí‡ÿÈM}°^V9Ç£GbÞÇŸ×è å Ô¤( 0…~ØÂÙžñf ø£>4üÑŸÒa*ÿqÑU°ä_m¢L´R¥ùAľ*¾úy=MAýàÚó)Bc#B‰Ï£9`¥†gÂÏì4~º‚ó½ÌÈ=뜣&ú9Ü—õÊ­_Û„º• ù¦\H½-þ17cLJPlº ·y7ˆh‰h:&¢ÄƒÿhAÛàÜr€i³ÂÓGÂ*MiZëP¶Í8w#—Ù;Àw>6ЃeAÖ?¿¢²#q7èWËçqo›`üSrK.Ï‘ñI}Ÿ_­…që¸5OfƒA†SU(‡ãNàúõTÓï‡ý¡ÚËò%´`ž¯Æà%V²P*Ûù’M.pR‰þÈÅo( »ÏÑ[»«H@«ÿº6¨+&#úý»MÕï¦$Ü_nßÓîÊ|}š ÷°‚¯qd™&í‰-—8¾$ä㜿W‡ÿâñœ‘bþcÿîlõÂÄ€ÞMÿ±9š.Ð þvšÇn-ìîàz6¤\g—CFs\NÁ/ñÓÆœ~³/øãÛÜnþÄ tj%+xáOðÇSž"#à ÜVÓ^²—m ïyÊù¥•œ†ÿHÁ›ðj‹ʹhÿnŒ›ßé2 „£YEÛÙOæJ ™ þX ÿ‘Ì>‘Ëð\Ûárƒ•&:²[©½à6×<ú«‹§ƒ3ÄÇäO©·âlP~yå³üéËÕB:Ùžö¶T±‰½½maô}¼MNYÂÕÀoÏ1:•ÀqwÌ×ÚŸ/é¸è¾Þ“]]VsÔµØÿsùKNz¶(øLÎà“ɧÃèNg¯^h"›§:¥n¦ªýT;«)¯/ÿn `Iu:£››ÖN"µ×T¢óæ¹Éþ¨ÌýW1œºNR݉fa6v‡²ÛEx,b^Ó-€ùÁ‘ ÑCÓHSXO NOÕløXÉ롽§‘—·ãß÷÷ù1txšØÅ‚šš¡½»ÿjŠYbâQÿ«~TchäÄÔb•–ž¢ß GñÇRJšúÃϯ֨ßi+•ü> Ÿº¡m¹è&{8?;-ô dŒABÌý]ðßÛÍŽŸã¡È௮˜ó á¼`¶îà¥ð$i$´èM(û!X—›ðnÃÀ)qè¼v‚ô œü:$ô³[?ª~$ÚUrܧ×ugíìoÄɸx0u¤dôÌ„qq<ÈççUis*µí§¿¨9îgJ¨ä`Œµ”ˆ²Ã{,„¦AÏѺUx­ï7¥«zŸ8qkUÞäà}|ŒËñnêÎ DòçP2AºÛ)’B®p2I)cT8åçû,gç pÿàeê)«'h="læîèç,~Ï×y£/ÿÕ4x¡VägæàDð"‡ØÝ³½L˜$ÐçWïUGÌ#«|œp–®ðThñ>ü†ËÙö¬ÝfÓyÊ[.þ8Ë9Ýj2`¸ØùOU÷oâÅ2[0ãnÓcÿ¶“Öñ*_þ«‘FvØö6­½*l´­¿œ”ÇìæEìÌWÁHÙ­[œ(@½ÙžN Ëý0Ò"Z6SüñüñTªJn;Ù‡RÆ÷Ö²5d…ÌÀW‰e"x³lÁ(væÇªñð¼U×àóãÈ9ÓÇÄåäˆv 8¼}nlØ!vž½hoÊVYl7IV[Þ09Ï䃜Š;ÒSØ|ÍXÊ™¨_™$”³x0‡7‘ø¼”ô–·l Ï–·»mw;ÕÖ°·í"ñ“õðriÄ=áø’>`¡Á&‡!Úô…?üCú”éÝÔ˜*“C—$:œÕN‰(³%¸­‚}lý½+lXoT«d¬­i!ÓágPt:ê>…Åj g‚S-û?}E€ÿøº/´“È‘ÉO< œxjʨ+é>ÿ±Ä“Iít?½$q6ýT´£Ðå¹ÀB÷°nëˆ:™“ÊY­g˜äæµÎ¤ªçòx%Všrøò·7¦ZtK·4ݧÎFÓÞô¶IJ÷M»`æß éTsÒèj4¯îPÈ)£tü1‘öQBQNzg&›ò:8Ï|ލ©: ¢hPmó¡g ^R_C¼3xåò½2±©›iüÃ.ôL7ÓÁºe°’ã±›ÍÑ­ÿÑ‘v€çJrÄÎ žzfÜz™á?ï; |ÍQEïU© dF¤ x½ò== }¸Èç?VPt^vÙlŽêJßÍß®œ#Î=“Žw€-ûÒv`}Djüÿq‚ÊRWèï'´¸Ö|°cQÌyN¿PAñG2ø¢·ChßjÄü•j€INÁ Ý¢„¦Þ ·Ð ­l‰UÙÃÕàts©wõ?V{^© æ¼K7höðìfj@Ã)=÷„{Ï›)2¼Ä9àÿ1~‰;ãžyYH#ð*†sÏÇ~¯ªmòÂéæå=Àç*|É}îâ˾~ˆ:MjÚY’è_âÉlþ5g:çÀ»ñé³^(Þ\uÍ„…[ËÄCo.÷¥»4—•œbWѯ•ÉrVZجòšSÈ#´9*gà¼xŸ±;eTéåŽró{íÇXe†hqÎ}e¦ŒãH’ºü¢}o£xKÉ/]å?ÚÈÓ16Mù$M¡ÛêÛlq þ#4xöõàb¼fóR™"dXl‹íeóÚ»²Îž•°2üñÙW³¶_Bçà®Ð ñŒþ¯Ž§¿SÑšó#r³!ç6(®<’¦6”ÍÿÑÚv³×%±õÀ4BÏ·!m~ðGežÏÑçðpÚý¥m»=V_ Ðþ£(¬„² WÔÈ^µ%í|x®ºàÊA`£Ö±d¿Ý")m0q6žÄ—ðþ#é£É`ÿnVg¸¾aÁëv¡œß„â}’Å[À®±eЬv–ÕÞMð\»íE9$íU®H|IÉïȳ½¯ ÿ±=Àùó™z¯iE× 3ø´ñ“pèÙI¡ÁkYl\ïï>{Èæ·oÙ}VSß–n Ž*<ö”`‡þŸœ?ÿÅ™î|­$öÙ“ø_ç/ag““EíRiuvýÆ·w™'‰òS³Õ åï¤qŽüT´ëžU*™ñ7oÌ%°H>ýJ™œÑz€Ñf¿Nª+«ö?ÕÎê¢)F'M Vz¨«›ÅNbµÐÔ£%fÞe­©®û+btçO'¼®An¶õfTœ¦Sàã¤\@×­XãOM8zl†šDzQ0âíV}t*èãX—3À#1ÏKmºa®Mjo§"”1ß›¾æÇ'ä÷xšÅxÿ"tâòZÌð ÀÍþ˜e»¨Õ~rŸ?¼5hÅ£3*ð¹·ÀוQŸªÑrk<õ  ÏôŒ<?ƒ[–G'Ó;0^jZcVéfÎ÷²[ç„sÆ„„_ °†ÒSR_e‘TŒÏÃ=t᪈x#Ûžf*tUrø®úCõkS9‘ões~mVРa_nþ#ÑJ›Éz1â&Э1šƒ1žq馉‰¾L òüù+•Çl¢P¯Åá΀?ºãÿm^Óò3pg9(ÿ¼Š_¡ïÛàûôÜÑþ‘?±¥*iÒÿâƒæp¾Œ>ÍñÕ<ÀVÆH;^"@ã²Ä‘ñð^ø¨hkuü†â˜£â­Q/€Xm€‚〣xÚ0†#ÈEÞÁSd°úºä·‰ä ÿ*×y§9Á+€ÌYy Xºˆ*öMÄOªFlîdxªŠü€Îp3™(sØHÛÜž²ldï!ùÈ%ä9Í…9O.W#_¦%t\}{ʇÌX´È}2Ôl¸6ðY&­/™,_Èm¯È!{^nò0Ù# eîuKÞžTàš\èöK¼6žîN+܉|Ÿ†rR®nSD¹,%ìx¶6ðY=ì#ÉhÃx;ØÊ²^î„“u¸Osø†¯þ`e¾ ÉYxËpG®W&ÙeF™Ì\HêÁ/äµ3€Ñì[˜¼q¶ûö靈%åæÁD°A¬î¦¤Ù÷¥}Eœ6úŽÉCE©ÜVlóŽ®H~oi´ª‰ k/KAk½+ï"Í—#v°­»“Fâókº=·Ø 1/ÌÎ/ü±ÉÙ«o÷\sCúƒ’Ð ðÇz{L2È~ɇ–½–ªÞQÞö„ g#KÛÞf.|X|ø¼x´.7+œHÔ;Øþ÷.vºÿû«Ožÿúó«·ž©Î§ƒú¤¼ú°“ÒqÏd¥V[Ôt0ÈZ'ÙOÖ?¿å™­b›Sæøc¥)ªÿV)|Ž¿îaÄlЬ+þ0sì·W2uÕ$ƒ>Ž×<¦ˆ©ï¤SWLuÚf6¦M&±^Fådv’ê:@æTòÁ?fâén}WÝ (v˜ÚÓv Ç]ÓÁ$ÐcƒÏO5‡ÿ˜ E¿ d(¹5:ÊâïµøÎtº S ȨœÉŒÏ¯f˜I& þÍŠÍë ÇgSJ õ):FmSÇ))MÃ÷#ÑÊæ/­ª@7Ww?óƒÆO‰S€êP8 ]Ÿ¨·”–ƒA–‚­ÆÑ/tÀ,Ð¥¿{þüªg¶sÕDa÷¬_ŒUhúVÀàíP™þn]YîÂnf©¹`Ž9Xñ~DOõ'u5ˆhÑRðg€X+Ñ¢Íà¯LT¯»”ƒßRAs\ßç)<¸7¼Òþ#)¹ÏÓ:Bþ3ÚLÏU l¨–‘C:á5 £õ·ŸÇH6å@§ƒ@IB{ÇÓH°i;ðÞ}Ö‰¨ÏÕ¦ îBžÀƒ¹ŸEŸ¶PÞÌÏáæó–K*yÁɳ9/8) »u@š@ÿJ)|Zò_×lõ.¹?å†÷C›º¡çËÀÏy+Ï••𧤉èË_CÆrÎϯ€§5¸(æÕ`J¬¾Í*ó\u…VÙ‰žàMà¬=t›Êràz$ù~áÐ4±w±|âF2RÎpzŒÁ*Äs³æÞ‡O~¬þü&^³Ÿ£túr3^B»x³{²[vr9aûÙ\öª\¶“å Ï—7J†³Úí‡ãïq\Ÿó8ýVÍSÒE1¹_uáh&•”÷2ÄF¶¹¤·Œµ]í=©h#z[ç{ÉûI¢Ër0ÿ:~ÆøI9}­½sÚóBiŽ 5›¢HjŠlîë?"zëØ2HºÚ¶³ÿñH¶ÈN»G*!îC8¸)pHù1ÖÓM s<ÀùÚ’ûùUÚ™Íyº%5¼5ì;Ñ’=‡öYï,ÛÈ>·‡eøÛ±¶Š<„òù³6˜oL\r¾ÌÂÎ~ýÌtõåFËÍa)ê]þH×ò§­¿ÑÈ»Æ{ÇÞ·qìa>dÿ§Œ–Áâî< C/0 +C-t4Áɶ÷Ÿ¾’Ã}Ìû22=)þõþ]í,sb©eêW] þÃ=ÝwØ“Q=ƒV{œDÎʇpóQ¥ÌóÙÜ4ÙhŠÎ¦;Cœ—ú˜Él˜̺u ýì?º2(%¢ùXƒµ¨9E7mLM'ziÜz_gLNziê3ÿnô-žn ¶Wžþ¦š<ŸZÒN= Ýwó¶É …?É”ÔÂï€Z¤ÝL:Ix#¼Â< Îe*Lch"ôÜx:O—ÀQ©é–yjŠšequôV³ÅDÂÜ~Oq€Ô €íñ€­Ûè8U‡¢ÚOù GŸ˜ÎÀÆØ4Kýˆ‘æ©¿è\u0ãV¦ÒšSrN™žÛfqx|Î6xÃÌÎ÷žò?öìrü4Í„Xw«©í |”zÑ(ÑÀ´ž@îe`•N”üqI¿TAÕŠèdÑŸÍ-ß¹âR¸}àgŠ‚C.c_R³F‡‘ÑÜž«"Zß‹:Pº¥0„ÖÁ‹:¦Oÿ£êóTõ§i6KÀÓႪ ÏÍá¸Òñ"¾Å1d…ô´‹ ¥p"É(Ó93Fs"g{᜘ŸÏ®SLÁ¶ià:q‡¡Ÿóàî»nªyœÖÊ^.? ˜š?Àë”,†“Jèó«ª-Æþ…ç,<Ÿ{òºÊÓd­ŒaGŠMߨ[6‘·¼Ls ôQDK†wZ 'Õ>¹ùzþÇƬ¸J÷hîâ4:Ï;d¦´?ðÑ"ÛÑæ|²Íe)¯–ûFÆaLþâË<È7„KpbóµFq9O=§9|e·Ò@X†ZÊ3÷ùŽm‹ž"?¤ôÖΗ5VÛ¬²÷m!Ÿ_—â™liú—xW<ו‡#⌤”’š#ôÛØ«¶ŒÝ,“¤!¼ÖJ;Ò^°1[íßRÆ–“{pƒsx?fzWèœÂ¦Kÿ1Y¿1Ñ€'mi3ÜÑ6Ú!%½ í6ô3Š}) ­Ç;®ã¼ÈX¹iØÂrV"IDVðµ=h°‰b@ÿw¼]Î&ío†aÍ»5!™§RÆ»Þ%ž…©ì=éeïsû«Í~6•­b[ÀqÆâ$X•Ý¡ cqrós'$þ3W8§Ÿóõ$^L'¹“à_ò‡×™á„RSUdý|áž§"§²ºåûk¥ßÙõSÑØ9§Š™kæ±yeΛjúˆªæ˜ù?yZ9uuwýÖ ä eä@:éK«€÷]èï‘éa>ªñÁˆ÷·š©‹C;Ðò³!ï+M>½ö¿¢³@ň¾Ï¯Ø®r÷Ï+¢3×,4ñÑË—p C¨64ëo@ºCtú9ß¡ø<nfpô”óÃü»ÇT=: }߈üi¥;æ+ŽÁ‘8*_Î/ðù÷n­>šgêÚß}þáï¹íüJ‘x¸«\†»·1tùF*ɧТå\ísëúu!·.UGJ‡q<¯¯©óADKë”Ôáé6\Ú4Ü…U`›³Ãå W~r-LÍky6ןÞC_nªVßîÖ{àü.`¾ºÏœþ¦ýà‰ùRËÇg;m›É~ݶ/Ú;SnËgn‡qnÆÇÁ–x(F8N€zm±ÂZC=µA«Üóø…MYª ÖéjoKnø¹¶f+ÚèÞº¶šÌ¿y!©e&Wç¥`÷èQ-Þoæ‰÷ÌCÆãÔY EMGÞ̓ím›ÇnƒsûÝž°SlëoßÉñs‘ÛV’SèóxÞ/S‘öš æëSâ¼Î|}-)Æag4ÌÙl oEx¶z64˜m¶á]i;ÁÁ9gGÙŒr^~GîÙ™>f€ àùù)ç¤~dFÒP¬³ŽNI%ï »N2Ë")f'Ùœ¶–w«÷ªeov{šWÚ¶”m"Ýä3´«ƒ{8€Š‚™âšŸSèÿ™K;CœÿPNt'ô¿ä—ž)N4ÕGEÑ õI§€ãžÉrÏŽUkÔvøû½?í¸g¥JmN™Ûx}0¹ô;ø²Îr=¸°CÇÐí~òüGDðG.ÚmÒA?Wt÷J™vð~¦í1›L<ºj*sÿnD§¨£u ¬å Ô s%ååÎÔvë ÐÀþÐ8GÁÌTS$XùwW©¶:)xì>m’¤‚@п0×FÒu:¼NF ALñ¶p©§±mÜ ìÇ(¯ úÀê߀s;ÈE8>p,!Ïõ6ƧsêGQš«è@úšTÎj=ÅE«râõ€˜ »ù|æ€óæÑr¸¤é‰®˜•ºÊwë>÷LsN˜·ð -¡î—ïP½zN<õãÀæ-ˆè>Ù æ+ †y£ïYÿ<©V¿4þô¨¼/ÛI°fº †:EÙM7íþhı٭QÞ=NJÆ;Î ‚?Öxž«Ìf5…öda‚ÿè†{0’’qs®ÕyÓW¿vÜ@+Ý ”Áqëô ß絯b`£ Ô\6 hŸØÕ =Ë 69ÌyŽ4÷ñÇYŽþÞxD1¹>üGi8¦”Ôl o¬ºd ÉÑ‚á<àÍâw`´YcOAß/— `¸êr,”.e"4~wø½QtBÍú&Þk½˜Þ‚Íßñ›òDZ£eŒ4–vèí ÛÁæµçä…Ý%ëx„l“èRþ£)Ÿã¾\ˆ{q]ŽbÞ‰õ§çw§=¡&µÑp!ÅáóÉ%©gCÀgT“aÐùÚæ·)¼#l>é.=ìg 's¡>¦²?8³$æQ(úšö¶çŒ:§åæ¸ #EiüÇ ŽÏÑÚN—ÁRÒ.´CmK{Ìž‘Å2ž¤”Í— ì¶•óóPZ`òØ¿›Ù鬟2ÃÝ×án&¯‘ŒÀöyv˜ cCÚi6–w ­c_Ù½2L¶™ªÈ~‰#Qáb/Qgšdš{fL€ü%«ô5ÓžÚÐ2s^~ón´×$•(üÛ%6‰íé]è}bïZÝÇK1–Él3ùKbb5Gâ¸YÖ¼ÿ¸·“êøÒ‡ûVÕ9§'¸»»»»»œ@p'8 îî>¸îî®Ãà®A‚Ë÷ÞÞoÉ0 ÿÝßÞy2„aúté+]U§ø¡þ¿XÿˆŒ?²9 þ%¼ó¬q¢ª©*†Ž«Ïûò·/ñdPÛÔ85A­s’þàúÇÏ~•Í\€ê¾mΛÔú²zë‰Þïcè­:².®~ù¡r–Pø²×¤Çg£}ºŽéêü¤¶›Ú´Ñœ4áiµÉ«û~WÄNu'nLƒá?:"ÚÊÀÍ¡NŸúî¯=_òïòÈŒ7¹´ß·Ãy«ÎÚ]—~ ”³|XÕ cé&MƧÁ&)é­‰BÝ̷ϼlðô1c ²Ëa.Gcª •™ÊwÒšœñ JÀ‹)4ô¸~~SeûFÄÁ*'˜¡<ú ?#0µA©Þ€AÂñ=ül"ÍëM§tÝì|í–DqV:› ñ"Dé×å¦`à®`¦ P¬±¨3W3꯳-\¿aÌ3õ „hîýµ‚Ù£y“ïþóAh§*(éu Å1z¯+éC¾“Í)¸o•¥Øï•Q˜¥ÃCà­ž'*9EI¹—` ˧T@Íü™—òñY°?øC¡¼ i,þ½ ¸u§¾ýü‰UY¨æŸ)=¯å\Šï ž+©þÿk™ „š|8Á‘%šÌc gàPο‚Šb‚ᅳ©®ùø#+üÇPžÄ½è †ÿØ 72Vöù÷Hwû‚osrhü™œtÞ¤5p8x,a°ùòTµÿí‡G- FlÎÇé6÷âwçO\Ú6²»í ßÛZqAi(Ç|÷Lg?hü^|ì<ÿnRs\t¬6’sóh:ÎÛdº´–aUÛV6#ðp·ínûCN‚3‡sîæ[ÿ¨X þãï5®ÆžVN[ø†àÑÜŸÓšÄÔN<`¡wRAúË0”ïžül•·šmw4Ú>‘¢²\é~º¸–åAò—\ò¼W0NÎÐtJ$i¨¡Ñø½ÎöŠ-d×Ê id—Ùú@ýãðHKe*Jšˆ®qoålpñ+MA³3ˆÿ¬_ 7òbTùs+óœöHlo»Ú–² mfðлÙÖµŽwÜÍJ»ÑÖ‘ÛF"Áì…î\jf›?ÍæÏü±ÏÙ¯M'ø–ðÍ~Éëõ³%³ìÖz[ÛlÞ%Þ=6‚7Š}Ä meÏŽ‘±Ž÷Q\º÷]ãë‘>ò´û_}¢8Âäß œÿ·þã¥g…OÍT tQ­TMDYáI£6ªùê¤Úï¤t~,;ËQÏVUÑÜB;?6±hºöêØN*g­žcÒ››:‘®®¾–e)ä'¯"*Iþ&p¹yMO3Úyãl0­èO` Ó}ÓYù®ˆnþ«Äº)|Ç2xÑŠt›Êòxh€°æàýEZD/L%øÊ5p4ß“Ñl³š¦K1“Ãwì ]Æm{ ßÝŒØ  t>˜HÔÇ|ûÌË|Ï 3ÅÄÆ¿¢¼6‡Òƒ-öÐ*Ï©ùm ø£7ôsºüS<=T" en(ø}t”’… áoÄáÙ=M{º)œÍj Ï˨,˜‹º/÷rHOhg³Ê„çup]Á»yÈ¢7:ƒŠCÿ–¡À‘[xŸi(Ýv”w:jžüaô»¢…u’ê§æ<ê³µôÇì+‡!7Óê5Jeúh×-¸÷GýFõоÀP÷à4ûСøc#0&‡9¾èeü ¼Ô¬3šâs'nÉ¡ñÙ( ßà¹|šï‹6 ÿÇ£¤ƒáÌÎëkÿ¸ÿ¼­ª` ½ó€?scÔ¯­…œÌŒ,~ÒÈ•Iîr:èÒµ\ŽCqx“*Ü “”¹-õ¿žyê ¸¯ eF´Ù<ŸÇQ â0ðËy°l”Er :<5œB& 'Ó8-ðÞ?ußYÁïÿx¤ê /·ÀoåeÜ-v‰GÊ\ˤ>tùMûÐÆöî–RÒüQ:ÜÍýÕmº £ô„üE¼HÆ"ÅÞ@ÔàtWËLøU(ã!ø…t@ååöâ¹'åÃÈ´j~6nÿÑ€ÃÙ/UÂÓÄé@1¹âõ£¦4Ù¨ž°íý þcŒ þÈaŸâÏV2K¶Øi$ÛÀ‚Ë|‰«@7$£#Ÿã]õÜS·(žïîñb(É o6ØÚjv«tG}ÏÚöv˜= þØ-³ì)fËÔx _¦™DM± ùs;mõsSŒ2ƒ?æq³Ÿ>J>o"ëo‹Ø¤6«jcx·Ù¦v¯}¥°ÖN´Ù%²&aP7Ú0ÓªøPü»‡ô^Óê±³{/§¹ ɽ»íiÉ"«%!¢¦±‰¼Ë¼Ûí[Ôãi`©¸v*Ú1"üG|pvKêÀa8ÙÿIþö°ÎÌ çµ“Ήñ/ù#”³Ö‰®6¨ º ¾ã¸ÙÕwyЍuLmR{În¹ê¹©ª˜Op®/L2¦cêâN;'@29ÇÐÕײd„üÔUÑ ê7b$Žf…5L}'ºoz‘¦˜@Ç·¦ÝwæO§‹“NOf®Ç ¬FÏ©O¸¡G«ÏC '¢úf˜¬zê·ÃyŽªõº°Òu Ë€Æ÷¡ôsb,Mðå´}þ¨Féè¹ù‰š›oÖðxö{f™Õ&,üÂcJÃ;P³V({íaªÉ™0‡røî?ž‹M UªoDœ«ŠùîT¬B§hKJB9ÀMI8)[¾ ì_¯ À¡ùà©sæ ®ã|íS6w‡Å›w’›{i=%£°h)÷ù˜Yhfþ(´ h×à‘ø×”ä1oÕã¢Et k"7ûfðÆF¼*JYˆù2º—6Óõ}¨ÛvPâ•©&˜½/Å¡hÅ^!žÿØìy Ä¿G)€.ì¢ßÈ=š‚ûÕLYŒÊp /åsÀÚÛ´ l0ýÕe Ð÷þq~°Ÿªfjÿró:> Õ~ Ãó{Ä„2ïaJB¹ ·LÆqpq^üfmðË$Î@™Ìö`ñÖ¨—&Þ­0ôõ!^Ï=Ñ àîñ!›eŠJ3 Þ#±oÿnbÎÎa©àÜ,]ƒí¿ «Ý|'(4Þ÷ÿÿq—GÉl™ÊY¥&”þy{ÎÆòΔ—\T~•[\‡sñ1¼W'È4ó¹Í&¨Š›ô'åjÜŸy%¢ÕÍxý:ÛÚ³rÞ.BÙ&É1 %îžæÞü ìÚªg‚~U=M nVk¾Kãø7 cj/äûAÒJ+e{Ù‹R(ÝÓV—Aâg_Hqó^ù3Ë.ðN=O+?Ç»âù¨ÞÁן“N*±)›‰Ê¯¸†}fËÙð•ì.ðÇPpæ™#S¬Ÿ”†c¸fÏwáãFÓBSÆÌÿ\ßlÎdý§ÉŠÙП‚?ŽÐe)àM ×ÑÍ:öªt¶ä]oµ—ì) ü&ÖwüÁü®oŒid™³AΟC˜q4㥭2¤ Ø"žê„l·õlA[Ëëç °ÁÂx¥M7×Q†J ¨š$ô¬S‡ßSô Žë?÷Äu¦9ÿñþÿáü9;«Áþ*‹Îþpݲ¿'‡:FÙ¡¶•~Ì\ðV5ÌSÈ…zë:·ÓÊ9ª·›ÔæN§ÛþàúGsZv…ÉlFïôoàLê”iO‰©X¤öwî¿R(G>pÅ$°Ewj¼/…×”ÎéÀûËÐ¥©¨!½1“LE=÷;âmTSá?Fc&ï¦Ï¥Xî)`çÌÅIW¨¥E¼·¦© ~Kê?Ÿmžf¥ ‡ýEiùÈÿÿÇ( êªÿq?]EÆÍ¼@Éiã7ϬR5 R¦æPN;Á¡ðóÒ#ŠÍ‰Ø½'v!ZÁ厕–€Ž›@]ë«ë玳Áù`â`Ô@ËùSj°lk´Õb â>ú…úC¹>¯Œn/GyݳÝi‰ÍGõ$„hQœB:,ônl> çqí•L[‚Î?NÁµLÐ<ê5)wAœ!ð)ÀQ0CÚµÎó~÷6eã¡@Ÿpìúþà¤4ÜØù Œ‘ ñ~øcà¸PðP³i˜u&b¿ÐW »¾Œ×SU61*òñN|5BO´‡²( E>N:Úð·9𤖿dâ<¼ëòžÃE(å?î¯Ý žÂUv¡œ`™óð]1Ò2É)žÇSáÆÉ9a Ž&­œ…‡ÉÈ9´œfc÷>ÇÁîÿPºC[®ˆxí­Wy˜LŽ@à6>ìÛg«x;É ® ¿•js~ÞÊ[À4ƒù14ØCÕñ‹x ÌvïtOtŒ¤ã¼X\Z–±È6ÛÊfG¸oÛ¡Æ#ä”| ¶‚ïxOÓ‹'ƒ¡³ùüÊÍ¿;n¦3?täÌ&>5 …µµ¤Œ¶ƒìc)a#x…ÿèzß—r2L´™ÃËnŠWF¢¥Ÿã]ò„×o|ûâ]þˆCýÍ;zÈ=ìÛüQMjØÍv°iïYm·?Vƒ›ê¢% ƒíã{?:`йÿ<«3R¿3Å¡£†Ð\Ä惒Û[Éî·#P¸v ¸h%Úð¬Ý)óe§íd+È ñÊ;(ÂÓ§CLA®õ¿ãít.ë‡f<4d`Çbónf•Ý-Y塤µmU«¼»ÁHÚÃ.ã6…Me[¢W,FiºFݨ1ôBV³1äi÷¿úÄp¦YÿxéIõ¯ùCœUŽ£6ª”ºž~ãËaáïI§Q®©?|þã”ç"øã­‰MwL!š¨“ê|Nug7üGaÊdÓ pÿU!• Ÿ)lJõ8ÓÊ «Ö‚?ú &E vºÇwEŒà4r²ëP¼‹i Õÿ¨ÍKÐógõo@ý@ÚJ¡èWZm~ý®õósj©ÎL=᯷f±®Á)M¥ap¡¯_Báfƒcˆ@}M¡o–p…g¥YdBQi8—4`¢:´„âÂ3Ÿ„®¯È©ø<4ðZ¸­Þ´ؼî›ü1CåÊTßÀ;…1oÞSbàröòpÇZ`~X^xÇÌ]䫟_yœ¥Î)“~a 4Ó6ø/Ü‘»ÖQ˜ÜüQŸ_e—Ñïð5§1Ûº7/ê0!~~ÉI­CÑJv«ã»?*\W>:‚²Ü£,¦‡>ÁàqãrðŸ{ÏazlØ)¤Ï¯6x«,æÚltl(>†m‚þM Å]‹=|•¢ùr‘ÌàSüŠ>À‹Í'7_€›ý…>ç÷q½UuSåÏ u¿›CI·¥” È~œ1E~·k$7ð=•Ä–¥Pºv³£4Ä»Ïà*”Ðlo*ø#<-4öN î8݉üŽï@#ÿþpQy øã9Ç–i^SI7vQuÏ¥¾<•sGýôÛA µ[Ïu‰žòLø¢‰ìH`ÖCûȦñ%Õe€\…ƒÊÛxn$Ÿóÿ®¥]¼üÑTÖqÙc»Øöެ´³ÄÈH9+¯áã9nò2üö`pXÚ ÷Ÿ»Ÿ_u¥„`ŽÔ‡»sF“—JÈ'éŸáf“Ÿþ¸'iìGÛÁ¶–î²ÁÞ”º²Za.ê¼þ±G£¿õêÏSu óë(M£òÑ43Ùù1²÷m>»TúK8áv28ó¥Eô£RÁ6”{ìÞyþc"0¨€Yò¹¾9úŠIý3ùÐO6·7»]?Õֲ뭛ÿ°’=b·ËJY>‰/OÐÏ#ç$TÑDSÅ<4G?óÇzgµÞe†€?»™@Íùٻخ’ø'oà@ÊÛ¨ÞíÞ•è‘Röϳ٭±cÁLñù$…£‹èÝ“ÙÁöŸ{¢?¦~nv29áþõú¹¿[­QyuEýÂwþc¹'½:­f©­ê ÷ùã¨ç˜ªf^Ö¥ ~:¶.èäw¶Á$3u^Ý\Õý¡rÖPI€©{Mn ×0øÞðÑÔ~ôš\Ž,5×|WÄŸœZNݸ9úQ%ºEUx,µ¡ížþ9 ]ŸŽjQ$Zfª~×úÇy5V†C°ìbÒ4r³ú—¦)›÷Áè¼DjðGên¾u[‡{þ|‰™ ®©Þ‰Í êÁ㶃ZÝOµ8;»§—áÜûksÓ&õ-FòSÅéìWð‡{mðG.(Í(@¨¸ü%^åËÀËP¹9é´¹¬+8Å¿óƒg—óΤñÝö;ïŸ-߸êf溋¹3h§Áypø`Òýˆ[²ÒsmõÛ¢Åv2èØPt)à]ÊÑaKEQëÂh¯Ä|‘ šñúƒþNÈíÐÁÙ鲉Š÷>,ñ܆ÿpwô_þ’.4˜2CÕ6äˆ|…2ÃÜàé¼ üþ å› ÞÛŠÿ:Ò_úŒ|BCUÓ”dçø*ËçPσ`“@®0ÀûVvƒ¤ŽÆ–Ä2—  Þ¹yJ;”gqqŠDíþ×3S½5‘ 43!Â9^̃àKgp(y >”r÷_5°é%ÓɰT|øŽ|š[À‡¬ë§ ¶ÒõZu+9C¹X±'_¦—<ˆ?ìVÑÖµíe à&yÇÕ¤"Ö€£Y æê?v3è^0þ0æ…C/¾$÷dà:Ì«ež´EœXVÛö¶Ãa`âž gÀpëàdºð30Rm¼{aNcÞŽUþcEá¶ü'4E;Îk²Q9y+µÀù¤¥Ì¿Ý”\6’÷7Û@†Ê|ÑV“ˆ8ƒß߃nO>Ç ð¼Wo?IÉIÍMxÔ¥¬ 2ûù5²«moÛÝž°Ï䄬ä·î™û`¹@ÎÇ}é®)fFñcô_&ôh_ZŵÍZÚ'Y¼…ì\ÛÄÆ·ìlûÒ°eí{Rf‹¿ígsÊGÑ‘ŒÌI4Âd6†þ^?ßælÑ·ÌP¶uðµÑœ’œÞ=ö%Î.¶…ÁNK½û¬xËÙC¼Æ¦Fì±hÝhàëÐ…½©9Fys&äi÷¿ú¼óÌt†YÿHø¯ó_y…Nµü‘M¿rÜlmÛ=ùÔE5ü±Ñ‰äìü¡h‡<'UUó üáf§ê§#ëlˆyNo5iÍ'^×W_»%5ä'‹ŠU¿ÅTóÝ ô^w7Õèê¬iL/U$C­¿;{-'‹àûܦ•2Wc÷ì º5ÆF ͦD@í¸´ÒÔÓ ¾#ÞMðG.ÌHpÐÍr˜ú®ðn$=Äx¿K×}ªÚ‹ˆ½¾#â2Ï!3Å„†cydÝTvïìIûh§ï”êÊ·dPÊe”˜6|óüÇbðÇZà`A0ã>`è°N>z ÜIÌáù5J¼-±š2¥’P€ Ô%¿zþü©g«#ŸÝ³âm€½Ù žšÃ¸ëçW1sÆCÝþEÐC“h×W=ÐZ¿ !Z|')øã%%Ú-ƒr †/*¹îãH¦Ÿ¾Ìý¹‡æFh÷ó«ÄtßDÃïm ?ü=¢óš3pCC¯1+RW_¾ô߸Ð}z5Ÿá9P¤w‰ÀÌKà×?ZÐM}âûw©&¦,x+9â½\OA·¬¤”@þKs¿ƒ] ¡ qSH ü œ?¬Å+¹ÁÓ¸;xr6[¹ ?\VË4 €jŽ>I(çÁ›¹ÀG?Éi®âËFÕžò;oûPu¢Ñàh MábùQ àaˆâv«d›Y÷Óöx^¹Í%¥‰œàÊð3»x+¸´?Tïz­†/Š9‚X—é F{- õ<¥ê%Ç8¾ìE¼Âð'ìbÙÉ å°t|GO~Âë¹)ÿÁåá1þα\ÓÓÃéF¡¸\錉\¦ÕÇö°Ê•N2ǶÕµ1½.2ÿ…¯m9ðG-^÷´unÏ‚äo?éqôŠ ï=ˆ Iªþ¸À…ìèù­2 õþègÙ§²\üìz8°Šr½2=ž™‡ÐnS(Hþö|ÎPýJ´(æÕfNe¶ÑnIëÍgwÚž–íu©nËԶ§ìE(…m¶Í-/Á™†…ÀåÃMIóÉœüÌ{}ÝL€jjŸ¼Ã“ä`‹’AöÊiÛȆ±U¼k½ìuמá!6¡-j[€™âÁ%GÃxïAYqBówƯÿÜÝ™„¯ÿþ[8'ÝÿlrÒªE*£® ørxïö”ÿX®Ö©]ð5?ÆG€«•à? =4‰íŸ€t%]zIo^ëLºÍÞ^Q¥‚6Ý‘Ø ¸pO·15œðê€i@×ÍSŒˆj}gþ’(ίN%=¨¹É·þq“*ñPú™®è߀7'¡ƒãSuzmf›2zÔwÄ;§Æé2`Šà•4>ÛÝ™4£â'÷Æä@Z¢„Ôê;î¯ÝäÙe¦™˜àÊ—P»‹€À )%pg0þgNÆg€@[m7-­ùæý«UU dEø„:†nËWŠCq4~‚¨+á$6R°R:´å]ý«ëçŸ<{œ” ¬6 Êíü@ê„\K倸åh 0åZuÊ»†¶¥âŸ‚?®…-–“I'£”÷âµÿõùU#”î:Åâ@:¡»ë <‰›p ®C5€•}(]1îÊOHë þ8Ç×ñ®༖¢eÆÝÏè#NðÌ•U3SüQ·ðnpÃi¸ª5pKù*‡•ñÒ Z<Ð?Ä—Ñð šKò&àøx‡”ð÷ú«Çp Ã¨ÏƒÍ†ÿ¸O3™a.÷’…PÑÏägûxC®ñTN‹÷|‹÷®ç»¿vÅU_®½Rͦ'( ‚ïiOõˆ‡“F²™Ú=ö’Mâ&‡¸ t3\:|)¯âj<8—ÕØ/â‰ÙO¯1BÞÒH®€Òm楲B:‚'"ÊrÛÙf±gÄã#Kx¤sŽÃ{vò¯Á#;ƒ¹ø9V'O[g<…çßù>ƒK)lbPey*íì©)dªídoHQ›ÙÛü1U&÷sÉVôÛL~6¬é¥iŸãÝò~@1á½RIMƒÌ_ô‘³Ú«¶µ)¿J ëgGØ>Àû§²YÛmRÌ—¿=;ODogãYtÀ” r~0½3K FfÌÿ‘\˼¡-’É›Ân´ÝlLûQN¢í–ÛÆÀûíàÁ¶¿Í"‚3 |­»'ÿSü1K>óÇ)稾mâ_ša o6û$½×ßHvù åí$¸šFÞ-ÞWö©Mgñ+´e û3¼bD0b,: eR‹#±cüCžvÿ«OdÇ?Èýµ'ñ_òGg­“NmPytAýÞ÷ùÕRO1µ_ùƒ?6:‰?íR óÎxè­ E?ë÷ª¸“×9¥çÃû½×EuõÜURE£’ð†yÑçmé¾nþ§Î˜út˘ŠtÓÔѽ¿+b"§ŽSX~,ÆWc”4¤‹ðSè M£¨T„˜å¦²žðñ.©Q:7Fv$àú(ï|ˆrÒ¸Ò‹`‘›Ðáå0V?E;›à·LüóÙîYæŠÎyD‰ ÌõÝ‹Ñ îcö­Ÿ§dŠ@ý žÓÆoæo_¨ Ã)ÔFý.ЊéË’‘4‡å0Pö·à>üi4 Ï¥8tÑÒ¥œ¯ÞLïq>˜Hà7oÔz(ú8àò^´ŠŠ€?RR'®ÏPÒ1ô;Xi Ú 8éO=Dÿ‘ȉ¡ãÒ-°ÅÌä¾ü‰U¨#÷–mºè< ê6>ÿþë´ÌDO€Áýhmü±È£tis Ѻ@ñ2¨˜f†oý£9»g:«P.>ô<¯äY ·ˆÞŒ®ëkNp.¦š‚Pi|÷Ÿ—å{à£ý”“—óQV2EÚÛÕÀ‡ p ie&@[º÷8¹ê~4磤fW°x«Õ ¨‚ß(//‚ðŸÝ¡éPÛW¡¹{@éO2þã§ 焜‡ÿ346/BÝ ¿éE7ƒ €*¯ÞêOq>fž T†_8`·Ûôàgð]å"WšÎå(áv5ÒCõånÅú=¦+ôž†pUEsxÌó,ŸY mŸÇî—ý¶¿¼d÷¤JXƒžéÀ7Àtõ¸?{û?ê{~wzï»ðSŸ'­j2SVùKÛð¶®4– öWûRRÙ—¶ªm/á?ÞJbÙˆß\ÂwЊM¸3‡¦¿³yl‚ÿ8Dîn¥Y”TbŸ ͡Ľߩœ/µ€Ñ+ÁpcìûÜ6ÎnR6?Z1bÀœ™H'Má ;28£ô› aTùq ó‘NHFoE;ÍÖ³1l&´Ý0Riû§õ—Å2Ó.Ë96–8ìO¡Á¦Žyaž~æÕÎNÄû оÜßœ•ÜÞmv$—éÕÞ²mvïFï ΛÌ>æq¶ˆõÚNðŠI0›ca4¡ÆðéÍ!ìÿÌó“3Ï÷¹eÜüíqþ%(g#øcµÊ¢ éÛN-Ÿÿ(ª¶=¶©Mà»ÿ#ÐsZÕ4M÷Lxª­½º°SÌÙþˆÿ‘B7Qͨœ…UøÍm&#°°6üG/è‰Ðj¯©G‡Ìs“–î› ß¹7¶ÓÂɨÛÓtòÃ|®¤+ÃÓÑó7tOè²ã`'‡Òà 5Uõ÷쨻¢†úÖÏ…7‡—RXÌÏ‚ÐùS“èí¥|À{—Gÿ0e¾YÂ5žif„‰~“¢Á4Ï¥B9OýËqà`^NïÌïà¹ô´[}m­â¿ŸQ*ð½ÕOî‡cùrÃ7¸g‰“ð]”w=˜É¸1¾k9ªk;_+e(g‹sÅDöÃÌÛBYÁ´M¨%"”à¿PË^à[`à~øZvLe( üG„ïÿHá$ÔÌ=ú‰×£t›à2R]ÊKGÀ—)½é¯·?Zr\nDå =ÀVçMðœÏ|PeÍŠÏíà7Ü5¨Ô¯J”ëÈéÀ Àgx0ù=óež ¾qAßtJ«sCßùóð »}Šø*Zne€#8ÇQd“4µ³¡™¯s`é8Î ešÅwrº/Ð4…3Ç‚Å[¤ÜC)?ûó)^L{NSõñâ/£äŒt¶Yå>Ç”+Ðß±9“owl]Nþ@Ńí7¹¬ÚA¡œ¡wäf=oÌ7À#€ÅÓø')m[Ù‹6ÐFóî– ÒRNsMÎËn{–Cù.C'I°ÕÂz…ƒ{|E¸8Ï ù< è×J–r"™g{ó.Ç\”в\ܨ‹à?ºñ!øªÜí“-ÈçW¿xz;=á+ÛñcèûÊ\Í´§ÂrWZÚ7RFÚË$ÛÞ>”tö9â£àÍ—R«ð4CWGìPAΟWÁay3ú,²<0«ÌŽ,SìC(ù™¨s= ~kø@ûBÖÈp»CÂÚ_äê1sz ÇZ*HFäÎ@}פ£²pÑ9Æ`x›Ò[Í®±ÅlT[Øö²/àßjÛ{ZÀ5uµ¹&‘$>TÄq8î1¦­¹i|æÙÎa}Òt¬hˆ¯wf¯DöúÙM’½*ö˜M'¸À{Ð~²?Û;ü¥n þh& 1›?Pm~C9‚d üÏ=±ñÎÌ çÿkÿñƳÐI¡«´:“>ï¸7u€‹ß§¨ùj5¢žü¡hW=GUhž˜«æ©I¡ªTNQø¼i&”¹¬Óéº?¸þQþ?=m‚þÌܺ¨ë˜NuÜüJ+ÌqCøž]wú®ˆáÊN݆ZCÍT¤üàŒ¬Ü*Q8e†½ÇtÝô0é¿ëüÇ5L¡ñ[¡wGÐ_´ #³f÷ šƒŸn‚nŽ —tÙ43ßÊ–ëžÿXif/‡o‰Éó¨£äÐ<h•ç¤à¦D<n¦Ð9­øæþ«Õª$Tvc8@ôÌ`G7Ë:06æ÷r|¹;Y_ÃãD²Ÿ®[:_;%ÿÂsÈyjBÁ_ £­ÞGï6§]TÚ°,€}ÿ1sÌÝÖï™›ú…:B´hNžÎƒ¹VSu´]ßúGaø¤4@b¦è#À»¶Àþø÷~`è¸tÅüD-¨Gˆù¯ž«"æ\`c®Æ¯Ñzà‘æ@ï÷ä_8Êœšªñu(Üm¨õc¸.?š ÎjŒŸoÂxÞ3½U1SµË…=‹‹úî-õ§¼èO2CªÛA7’$ôå¿úD‰ùwôOI`Ÿ›¿}c°xÔŸ&)bƒ­æ±èË4‹c€+6òh Ô9$ål4yʹä1‡RHÃçÁ ù9/póžËßþIuFé/À¸÷ŽÔæó-Ý|ùÛÛ“@ÀPÞµòžËK'q?ÅÉ ¬È¥¹¼Ù"zìþDf½¡kèa¨ÃFðÇ`(äVàÆÈâg›ÛÌö¼\µ‡%€'Ëz /m|™|w‚R‚ŸkpRø9V;O+g:Úª5¿¤I\Škš¶”NNJûž­²tD¼ ’ÃFö¶´ä’Œµï%šLûÎâ³ð^eP‚‡æïýW=ôkŠÌ{1VãËã`¤íBk-³yíxé#•ì"û›m‹:‘•²Å® Ÿ³…sñ ôvîAãL1ó>ÈçWãthèò˜ï˜Lk>+%¼Ùí$[߆µO¤˜w¼ÈYxˆ¹2Ñv´ïøª<çȨÏAŒÓ¡f˜ùhèó(tÏŸ_ÄŒ†9cUÙ÷pX;%£œ“Föw{[{×yÿ´§PÏ+<~¤ mŽr'çíàëPM¹ÁÿIÍeüŸyâ:s¿Ï-óƓډú¯÷_­w’«…*¥.¨œš¾ý»EÔ^µJíQËxÎÑo‡òœñ,U¹ÌóÐ\Â÷ú•Jã¤r.è¡&¼ ÔYu õí»”‚>Ô3“’vÁuæ¤xдL/'º`Ôˆ C Lý}Ž&‚SüQÅ·ØÍÙ7…’óè†ÛºðæµÂh‹ W3Ê$Ö“¾#Þm5V¥^dàæBÑ„Â8/‘9ˆîÒZº ßP%¾'ö‹©öÍõŒ0›à÷ËÑS ÃKéWø¤”@ä3tšê@ç€ÿ˜ ÓåO'Õ·>[¦r‚7Ó/t ¼–œFƒ1+QD¶@¨”W@ƒ»9Üÿ…¡3à¶Î×2XgŸhbÀg;î¥b”hÞŒQ—wQwÚ· yJÖÃw»cÊB¯À¤/†-©SP?6îÔ%øMw^æ„©ß•ìÚlÖg¡{“;€£ÀñÄõåooF}CàÞWªŠ9Mq€j5Á'ÈÍz2z÷áXPz ÔyPù1T»›·e A¿ç£•ú´|g\;UÚAy’‚qú@»ùP)ÞÇá9úH ÛM’ËmN(Ie&§åW”üQj¼ yÿ‘?q‹øÈá”þcœÊPzAk9*¸b÷vïòµ³ „¤¬„‘‰ˆ†7ƒ¹ró|Ô>—úò†v¥û‚öÓÊ—RÒ5½;‰CIA[Èn·óÝóyK:À\ çóeÞ*þ8 &¼ì>Ãàtã` ൴†;Ë|öÂ4†f¾$klkY$ç%¦ ä_QÓÃàŽìø³1Ç òéKO7g˜·?…ÿ(ÁMÌpJÿñ‹û3HÛn¦„õxsçÂI¼ƒ£qWÚ𠞉ÈMù­Ùþ9ž81ô30Û^xÞ0²ßL¤8òFæÚ ðYs¤€Ô´s€ü=íMDÝ.³àIbÛê`ºb¨ñNNÁ#h›©cž~®oÇO2U¨ͤèʰ4·½eídÛÆÆ²Ñà¶Û ¶ýh'ÉN_¶ùÐ(}hV|ãt®énÂÒ“ÏþcsU?1¿Cå5¦;fýlS{“€Å2ÈIo'Âɤônö³Q½Qí'î —“ÓvFg`÷F…Û˜ã¥Ñ)Í!ìÿ̙̓ä¬â?¢;1ÿ%¸÷ÆT§T]Uq#ÊOuQ-WûÕ*'í®ŸïöÌSiÍ]óºû©OS º?P¯5QcRëV?xm u¨ºË$¢BÐÏOuo3ÑÉþhK‡ág#ÓiSé;×Ï#Á[E×Õ€GS€}Ù iÜ|?mh‡^†ñy¸?ßĤkf’)¢§};œç„š6O±¡³36ïBGÜ74Ÿè4u2øC­Ì·ï<¹àÙ`@©–Ç«ã°pØg*€^­åîñͧ¦7M£84[åÿFÄýª.^[ç(-¨˜{ƒ ‡åˆœ‘Ã)Üè ÉòlàóN³K7p¾Ö3îþÝ×&!ê7<¹ ì¼ÙžÖP; ÅZ:Îù-0mm-­·d‚CÙ¦c„¸~ÝI¦ï™Ëwþã /ÿU¸˜‹T’qóJ¿áõ<:¼5Za8ú+!@ÏtAÿü3ÚNÏS•Ñœ÷­wÔc×Éu˜=©84è4 É[7[7¿ç@ɵàÍA`Óß©íÔàû »¨Ê¦La ý|´ûY°Íf`â~¾ÔŸ'í’I¬d–xâ^ÿHéx:ç’väâôNû‹wQy(ÆGZ^ò ã.Hsà^~’ýÜ_ÆJ;ÙÌO“?ÌñP漕Ës´w_Ê£¾<á[w§ ð †3ð Ôø㡲 N#´¤±Uì^{ÎÞ°;PÆ2T.q^ÄYŽß,ÊÝ€Ué†êþE¼(füò=ºCݸÜÑ*^-«¥™Üçx2Ý6âÝ—yÀçÌâÞ_û5häËŸ8œéÞ0ï5Ï?Çêèié öÜ|A½¹'7q(•¼ƒ* ¤¶´²]íuÉmßÚ¦`á²Áî‘ü`¾º¨ï9x®Ò<ß›]Ÿãi'¾¾Aá RDIHÍ+zÌm ÍWöZÖßþbÇÚ}ð7î§l7%­­&×áÌ‚’ó@¨˜¦f÷çúfrVèp˜¥ /†ðσK$·×ÝsPÉfº/²‘¼ûñ¬ ”²È° 厄‡Éwwü“Ø„§ýAî¯uσmMé’Ù„hìE©"c$Ø( ÿ±Óž·Eì[ž`ËÚäv¸L÷6êXt½[9œù±Úÿ3vs}n™Ož$NøÉÏ=“hj—*¦ëè玫”÷CõßWkáIÖ8 ËîuȳQe5/Í{óÔÄ¢ž:›îâôv®ëM&¯ù¤SèF?øùUxõÖd¾åÖ¦0f¨iíäU7ͺk.š4tÙT×ßV÷îÛÉïÄÔ51vÖB_§ÝÀ÷„Ö^ížZ8 T¹lrÐs3Ö×Ó¿#Þuå§KÁyD.†îŽÄ16Ód0ÀB¨éÔØåà«¥ùÚÍ?'=kÌ"“ :ü˜hJ8Ž2=O#N=øúËÀ©¥ôÖŒDìää§‚ß{üÙ¢ÊÓj F;îÛq;Þ¨}$áPœŸÓßêùV¸¦Éð3»ÌR]ک𕘞',¸g¿»hZî»#u •Ô˜oÁ'…n|G» ÃF‚=ü¡ÿó¡¤ëô B´˜N(ßú‡E}Z¢0Ÿ?.SyÍmÌUí‘pѸUF{ö\†ÿhNKCà=žg*»oý£>׿ðÀÜÖ˜—£á:ãâÉR¾ÇÛùÊz×wÊq,þ½9ê°z)ø>讪¹)‹reã¥p Åù4Ê·š²ò2>Í‘e¢4´½$œ<áM¦‚‰ÿ¢ð)9€¤93½×Á÷ï>T¯LV0k>^Ísx.Ÿ/å˜ò‰WrO™"u¡ösØðÐá±$»sLàý]÷, §çP#%Uæ/ý‚náæh.ŽhuøÝá 2[Žƒ?²Ø:À¼Cà]JJ{9 7SNj$—åž|£ôú2[ý–žÓŒ×\†wÃMÒ*>ºL¶lû\vÚ±nnGÙ/ïPÂz`ê{ÜŸ‹ð´xô ë<£ž`òßÁT=Ñ"åLsŠ®i?J i"-À·¤¢%oE[[æ#þU‰ §S½ãÞ‡R ¯™¿ñæ/Ob}‰ÂóAšG"æ°é¯UÝ^´5ÁÃ¥ŒeÛÙ~Ö½ùã,üÇRÉlKI ‚©÷pj ßZÕìÿ\ßÎB­1'˺wÈq:S€ÉVóf²›PÏPöŒt°¯ÁE-ðßFÙZ÷°qÀ™Oá>´]hÒK¯œwÎëg¦'F}ÊC)é¸Ä€8-ómsÏÖ÷nñ^‡?ú$ϸ—-gKÚ~2XÒó%h°}Ô#Þraó÷‰—ÿÜÍñsæ~nlj÷¯ó_½$RUa]Qß÷å°ð÷T§ÕµJm…ÿØñCÑŽy6¨ÄpÀá¨šŽ¦;A÷ïÒKLZóTgÑÃ~Ð$d££àFîîZÝÓLpR©=¦+ý…wÈDMÕï¼ÿ#²SÊI¤k@-,„Z¨ ÉÀ#¡VÏé–ÀÀ+´±Š“‡æ˜\záwÄ;¯èÂPä‘Ys€Ïaø °?é6*ß+PzÇÛÇÔüf x¦›Å&ó%ä@Á ”*ù 2¾cß¿6s3Ÿ˜¿Ï+Ÿö¤ÔW(FÅJJ+‰¨… ÍG¹«}lÿ°Ë¥"M±­í8®²S&€5›Úœr‹óƒù÷¢æC ;™ËŸë›Î™«ß˜ÔTÚ`·Wô@¢x«Øå`ŠT6²Ýj×ÛͶ¾}j'Á·ƒm¹ Q%2ÆÕ]øÐ馼Ѵç3pêWæ7ê‡1Üè±\²y÷¢½ÉG)`7ØŠ¶´×ß{ÛÞ÷ñÇb›×F±½e´dáónÎ Ìñ¼à¥xA×î‰ïÌwFnëÄý×ëçÏ= œÔj‘*©óë7¾þžòêŠÚ²ÔIþƒŸ_÷ìQ9L(RšZè·ª‚“ǹ¥—›œàÔºÙž?Ϥ¢Ev™ÂÀüŸÉ1ÝL'…ºnºCW2å’©¢¿oEŽÿ#»îä\ ]ÿ ¾8ϦVtYÿ ”¹FÛ)ÕÞÏ3ôèïˆ÷PÔ•h"Åâ->MüQú|*Ý‚²¿G¯0NоûÛþc¯g•™j2P9`|^I-9 ¢]¥‹T•Óñ5°ÝVx™1(k|òÿ¦ÿX¢jÀUÕE=o£“ƒ5óPAúÔNÄ^~ n™vXœMè¢ñ×-œ¯µã]Ïç™Iþê¾]_åžgoé;™3Ñ—qõ Pû7´â§…ë×êRÑâ8)4Ñ)èÊ•pGîý…y ßJÃDâë”ÞLÖ7x,·àd\.¬7ø) ]7±ÁW£BàMžWª¼¹A‰ñŠ2üžÎB[¶„ÞO.ï@ùÆS& þ%(õ†À©ë”Š×“Fé×R<Úª‚ß›üY¥ŠÐ:´O ŒÓÃÀûT¸ÿ‰brRŽþXZ‡–HÄSásŽšµºþWÏŸ¿òìvž›èh­?Ðr»(#E£øÚˆ¼K]áùŸy,ÜÇßNô¹'ò?nrþÞçg®Eù«d:¯¾ãà žŸÔ>姆« NçDz³ôLWIÍ%ž¼”Œ:ƒ?Š:åÁû“Ll³M'Õí‚éŸo=ùÕcpÇ9SÎÍ@áLw³ÈI¯V˜6”šÒB¿šªºíwEŒíž¯Ö›þÔèñJa¾4§Sp~ððG©"Õ¦È4ͤÓßã¹ö¨:žÏwCÌ%ÐÓÀ»ÞP‡îšò(–¦”ƒÂS Œ»~ß,áyO[³^Žÿ#'oDI&¢†½)s»§…‡ÏƒŸ†ö-¥tþ›ü±VåE=ëP3ºBû('"eGkÝ¥#€?V’»k¥ëÜýMþºÝWï åsn˜PxÿßÝÝVˆ”Π ˜¢0Ÿ€’Äø˜`@;lÀì¬ /wW?VïCˆ–ÀI¢o™³ŽÝü\;Ы9À´•¡©ãc^u“-æ>\Ÿ#qôÒ|”Z ó¶ù…¸þqMD´,ÜúUÁcôÁoN/¶€æv˜9?•àÝà‚ÕüŠÞƒ –á_ýPÒ:tUŸÿ‡ÿh¡Ü¬MõP³E¼œkòŸ4e, >Ì?‘+Øé_î]cùвáìp îÉé>Øì o–ºaR¢ÕRóß:öºI~¾óƒ‹y‚,“?䘷1å!'”§<‘3?óp_^Ñ™[}¹÷â™jî;L?q1ÞÎ-Áx7xm%X'»­owÚÃVy×Ë®/Cà“j#â<ßJû@´îºª:ï-øãÆÈk‹wœJûøŒ¼€ÿ¸ ‡5Ùþb Ûײˮ—ÇÛRÞI Ï¡ù&ÆéxÓÉ<3§‚äß=¤ÝOBFÁ·¦f»ðî±’[ŽË:pef[Ì;Î{ü”ØžçÙ6“­egÛ$Ç(ÍN¨3øªÉü˜BÿŸy²:ãœ~AüGjç§É^g†K­Rt:}Ú·þqÕSF=S»Õ\µþãDz³s[Õ0/M GD­ô}UÀéï¼Ð[MQóLgÒÍÔWO9‡ø U1©(]1¥¨/Ô*›œ¦¿ÓR¹«V9)Õ «¦®ÿ]ÙiíT×ÓËþð­èàñ”›žÃ“,†po¬C¨œhzòwÄ;¤–ézxeDÞ $ž ôÛCî~¬©¤y =?‚öµÐêMð,Kÿ|â8sÌ“ÆÕ1Pp~Ô—e=Ò‚³‚?²ð°Û$üìžöÍý»§UuZŽò G„M”#<•¤‰‚Jä;ççe™§PlÚf¦ëæ_åûž£NtðäFŸtóÜGÇØoƒºWå(ÑL.ùµËUhtÜ,'åà”nêW*¤“QizZ£uÞ*£C(ز&x2 o¡Çúš> ïÐ s¶ðsÞ)zÙÝ1Ü.þØíyªšk”’7^Ñø¡¶pBYçîìÜ ¶­Ç‡xü‡{ËÅJš‹>ZW‘—öêƒNÆ`uî¬J›ºˆQÞ·ß64{w:OÅñÿרÊTijÇHD kð‡{?ú*ÄsáSúÁd¥0AVkÿ빢܂:–{A=ðqŠm¦éSÜî! üGc`ewJ@÷á?úÑÄøc½ç¬ÊaðÚ^ÐÚ†O£\íQŽ$p]ø.@Y€?&òZ¸®›@Þ©(ã,üFiÚ¯üƒ?:ª&fv.Þ*Áç}7f¹§ Á5Ì”ÆðÉäŽïü¹°ù#¹çóJss`è›ÁâÖ‰wËË ¡Š§ðôÇTŽ*çx÷„oøCv˯6‚<á´Â2 µ.Èwø(05¯qó.[?ÿ¨zaôÞ„j©ÌK¹ ÆÅÞ"«€ÂŸ8­-~ÑFðþ&ϸ‘Œ‹T…«X‡äž??^½­º}Ïšõô’žÁ/»ùK:ÑF¾.g¤±ì†Ãòä·· ¥ÛÉ_¼T9§ÂÕuãËü;üOgpXTów×ò´uêPlüûsÍ=¹œ{ë—|”Á`†ÒKZÚ¾ö¦T‚?ªcÉ ÙgŸJV™ o´ u^‡ÖÀ7ÍêÏñyÂêcpZ{0æJêl,kn=ÞÂv ÜU3ëæÈ]lÃ#‘eÖƒÒ•‹œ|î_]%ȉœlÎTý§ÉHe¡ªæsUKvo»ÍV¶¹m5{L´Å¶¯–à£=¶ª°&ï0KŽÃù6Ù¡‹|æÎýH4Û·gã¢9.©¼‹íNI‘Ð>²í;Ë;Ѿ°i­GîÀËu´‹e¸ÄáCÐ`ÔÍwÿyÄÿ“õópÎHçÞyÒ8‘þõþ«ÙNL°E6][?öXèI¢ÎªIjÚå$p~¬vžŒ–ÏŠôgªJ„߬Aà“7éõ‡ê*‚Øá9[ðÇb(ñÕøþ"&§ fµ®òÕý»?9;œ£˜mþ4µs×?¢BÿÿRŠáÜpIhÛÀú.huø³&ŧÚê‡!öC|ýÑìÎl§à¶^(WU*à;wŸ²˜©ú0p¤%GæÖàó^èõ8ôÌDOÍ ?Öxîª|f?^Ûš ³æýèÑ_à€Òsw`p>ŠWççS¼ˆ·ðÔør$Hw ÈNí÷û«Š¦$Õÿláqœ}Ú5Î Í}‘Ì—†v®ÄšÆ•È2Žsó¼Ó4ðG#îȹèšþùÕVuþ£¿oðLÅîéÒð ·x O „{hjsÈN!ø¸¾Ï¯v¸û%P¡`ù?¨4húÞõYY ëd9³´Õívð{·K$(ûàbœÊ~WóíßíGZ÷ý"™•P,7}YUÜóPëx7Q ÙÈe±ýÅæ´dµÝ#Ñ¡›oˆ#£ùpåyŒ:ÿÊÙ8²yó9V[Ï §#|jþ“†£=j™¸TKïµeÀI}íö¹d³ŸlWÛ]†ÊV»O Ê2®Ë+ø oBÿâ§fßçxO=Jßõå·A1$­Æ¼ÎÝíM[Ö®‘ÁRÚ®²ýíིWd"bç´…åâ¸Ù2sñD¸‚†A2"çtëÛp%0NÇqs‰K o9»Â–· l^;Ìt ®a¯Ý^YfÊ#ïä' Åÿ1†&˜Œæ…9dÿÕ*}ÁtƬhŠYpÎ,Þ¥ð1éÁÜešMo#yWxw¡GJØì¾K»LæH2¸Ú$ÐKáßNn¶„<íþWŸØÎTç÷ þ#þßEzåYÿ±^ÔéôY§€ãÞUS]P«Õ*ø„Αo‡ò¼âÊcn™Wæ-Úº¦¾­²;õœûz®IbèTºÕòG%”‡NšÜè£jôVç6ãœz˜“máo,ì¨)­¿/bx§–SR÷ wlKªLW)ª~Òã Å€) Þöƒégbêáß/PÓÕà¬Ý==~p ဇկ£|û¯.ÓY hBú Vê;Î>ðÌ1‹4?ÓkŠÂsPÛáÐ(Ãà?0ÊâóuJË~þf*½2SUpÝüÙ­Êúø£!°fe†ÿ(Ä|EÿqgfÅÑmíÓUµ÷®ƒ»»»»Kp'8!‚k‚;wÜÝÝÝwww×àú¯>ÿ½“a†<ß½÷ððåËdÎ>UÝÕë]ëtWÕ'ŠU½ Ï´JºBñ(Š~¸ß_}kg¯»ž½Ž ‹À³¾ç¯’`ìwFz)ɧ© ƒ¾A;ѶŽ8«?rã8ÞÓŸTpë_%vrêиz OD:ÚŒ÷D;k€ç‘fRšÕúìï‰ãŒ÷€ÒG¦;&.øÑ<ØõKÞ«²æ>èÚˆ‹°âý¾õK&R&¸ã2àÉ>\©¿ Lâðê/|ë¶Lƒh‡6®Bþºåª1rsSq3T¨,ŸÂ‘ÛNîŠ|gÀypÏý%ªÜæ¸PÔ¾œžßSAd›>}ÎBaÍÒ¯žßu@ïáð*둦ðPœß©àÇYèåD™"]dŸÔ³ñäoN"ÎÑ‘”¬D¢ËÏ'Ð÷TA¾©Œ®€î^ñ¡ºÐ?F•‰PáR:µÙž±1¼K@¸ÚÒFîƒF9‘¤&ð­qŽ&ÑcÕø‹zaÌŒÕÿÿüUCžB{y»¬”Ö²„\okÚìÖÝ iÚ‹¿ÐÒ¡ø­!ìîðU„ÿÄßö¯ýÕÓÉñƒŠOšË­¸ª©G­$RÇÉ*d¬íb¯K)+Þš¶˜Ì–5ö‘ä— \ l½Z—B¹lþÙ;á '©þ@1‘?fQ‰HMm›vö®-egÈ)og¸$²gí1Y”tNòØHvù@ÌýœŠûÒ~ók eÒ9ë0ò2¯ô&΄Qó@bzóÚöOµÆ»ÛÖB½Õ2YŽÙŸma¹."Ž NOAþhaRzþj§sù£/2y#\gg̉ã]bIR9ˆVöµ‰l5ïpéµv1¯ðeœþ2LÜ;¦á¡-¨<¿¢LfQð—Ýÿè+”34Pþ 'Æ¿Þ?Ê͉ԕCÑ;î\ŠežôêˆZŒŸ­sÒþ`þ¸Ç•Ñ\6Ìsžêëh:?È6W÷7ñÍMBwW ~ðû«¦5Y¨<Ôä³ndf9J-7Mé¥ye#¡– áýóhN '¡þFC[SmÚ ~ŒúÝÖ¿"“œ…š†£\ôÎŒ2ùtHfôœV~:5RB>KË ×{Eèêc>Br(é®x‹ª=Ì÷WèZêém– ±…ƹ+íþ~¤Àß}Ð岜WdB^‰43„V@ï7©ïÝQ¬’Ðx÷fhÇ6JMÍâ{þꈚ«?6áÓÜõOš¥º¡óÍ•‘ÎAãðIß »îú‰á1ö›@•ÐçZäî¼ñµFžsÐÞžè…¥#šƒÝ0™C6‡A‹ðù[©+å? ‚s±ù %4ô6„Џ5ĵÙxa"ãœÍ †û~Ä€–Î7ÞùøQŒÿàî—ïá¹qi6‡—óø÷ŽP©¿ä„?îqr¹ OŠðŒ· /Ù0 ÚR… + ¼S-pL¶á,þÄ»Àóôžgøör¿¿úÙ´§¬×»B>q-é-×Ѓ‚àÌPÉÝëv&ÝQ_®Vý\/£·t›^!1Ôä9´šÉ)é&k8’Œ² á¡ïËk»QöâSÎI<Æ-ðç4Gjh„þCõyº DâNü˜Fr3ng2R> ‡üÞ֗ߤ‹í`OIa[ÐÛÓV–Ñ2Ó2’×ZPc?dwÅfü(Ðjg=ô¥ÿÚú9§GîŽÃ-ñþǶ‰)]¥²G}ðãŒ= ›d=ƒtX}.Ã3ø¸9ˆ|ñýU.gª~mrR!ú n¬¾™Ä'¤°7›uïó„B?çÙûv¾mfÙ²BnÙž¶µ86”Dà·tždš©i>Úÿ|³F¿2}¨ÒGXzd^IloW{Â]_Sþ°sÀ‹ÆÞ9^Ç»ÚF¶§y¼Íj‹Ù‘8WIøeEÞˆ+Ûá¸æÇfhÿg^¡ÑÎÄ@ó?þýüóçž¹Nz5WÔùÿkþà4OðcŽš¯¦;Ñ~pþàQð#òÇSó7òA mu>톞i"›:õƒûŸgT–*Ðã>=T™é†fÒÒÓ‚›{&63tíUŒçTp²ëîÞcÐÕJБ4Ü5ŸèNð7îú%ÏLJ(Õp“FO A½ª“® õu×\Z„­à**@¹Ü½?f€![é'Ší[·ižß=ä[¿=;ôŽrð4ðc¥Åß P¼œ‚Ïà:šEŸÍ$¨_š©§âlU=¬…¾EÇÀ±Á`ÈOÈÏ -?„Îφ ŸGîLÂh´Ú,ÓõœVߨùÒsÒyeÜ]§À¹@µx`DCÔ/®µ¦\èÊÕæÌhéQ&Øõ¯Â:‰ôss‘bðZôr¯ïɰºH~§À€+tKÏFþhM‰Ëµ©Ú=€âÐð£®ß¯«móÜQ…Í]JÂqQŽÃ{}O¤¬Ðónpw.}JðI¸ÛÝ|´<ê»>×nE:¤wۼɇ ùx“o^ÇjB(;¯Äû?q) çKPç^Frn~Myx4¿þħÐfáW÷Ï_B±FQðh#åÎ Pé /âNHýd¿T³±ä'’܇cp9þÈ芰KäTªÈµnÞBŠ,¾5¿_ñBhñtÖ’ÁÖ³Ëí›ÔÛIñϨ}‚3CãW#¸óÏŸÂ#]òüãk½câRQ7¿Y´†ýåt?¢ËHÛØf±—ä¦m/»y T1š¸^¡ á+áˆWáˆæ´ð´wú / Ãøê‡YÌT¥_ä ¼øg©åûþêO{EJØ˜Þ pö7 ×ÖÆ)àÆ2¾Â×r×X1ÿ|w|Ö“@ß'×·ô¡pâ¥á¦3ç†2_C»FJÉd§ÛßlðãŒo¿Ùs’Ü—‹œl>‹ž¢Ý¦œ9ÐßÌÎ4m‘ÃK"}NáÌ&4GµE¼9ìRÛǦ´„#·ÍŽC½¿í|Y#Ól;›U^J\ wt^n¢©mÂѱ~œtÎ`$ûQ7¸ÆÁŠÖ‰×;ù#'ÞUm«h yý¼Ïì ›üxaËØ¹¶ƒÔwGÞdt†êSeŒŸ(æÇfØýg^‘ñÎ?;3~‚:þÛçw?{&"LUÅt ä÷ê"¨ö^5QS›¸?¸íqÏTÍÜ1Á·&;'¢³E5õUUÿ$?ï•N„ÛmâBeò";¶5[„j’ñrsм3ÛM^²‰ÑœRŽÑE‘5§ûæûL DÜšÓuÝ ÊwˆjÐïšéf2…hýö£ª7ªùÑGøÓ©H5Ÿh7øÑz÷˜¦Ñ dšT•žš‹æóý>ïö47 MfúWsL^ w߇ҠêQèrhé>ði€bºÌ‹L%ù*Üþ>´õRáB¸…QT‡²Ñ}ÆÉ¤Ï}U>“^"9è1Œ Âß·‡sA‘®rdëµý$º¼AZˆ&ã9%¿¤LÐÒ8­8%Å‚»ù²ÞYõÆ$YSór´g¥Ë4‘CÉuÞÆ# %ýe‹Tµ%”¤{P愜Z:)$ŽÏX*dýöúŒŒëDœ ŸÛˆïÑAphµLÝRÙ’v½=k­w‰D–_¥‡œæt`ÜlÔuÒašO«†_Ö3Cé<ÅEú“ÓÀ¡,á1èeSÅae´md3Ù²ß.’H2$ø•j£;¸ ê6ó­_âÔ«~´ÂYìÑÐ4OiR¤¶ý$‰$»üGX²ØÄÞßmcPÊÏC¯ç¢óøA¢ùƒß›3m;áy«.RÞ‰ã÷™SSc†7s-{œœ*@¢YögÛÞúÛ;rP&ÚU¶Žl°ú0çå Ј æb@û²9ƒõGð#Ω×2Wi™ÄôV²+l ×F´}­ã]i›Ø#v§øËxTïûÎ.63ŽsšlJ™ðô*€Çœ#àG{_ÿ‹™Ï»ÌúKnäÁè`e›À;Ú{Ù^°©ìcžd‹ãŸCe‚¤€ëJgØ€J³—sêñÿÞ+¡3ÀYpd”“Ê õ/ùqÛ3߉ªªäº²¾ë{þj¡§¨ºåÒCÍrÒ:?¶:ý)Ï•Ѽ6@O¦N ‹8)Kz±‰g¼&™¢jýP;ã©&/í1é©"&6ÍÍ8'£ºdZÑAs Îî¶©ÂõÛ;Eœ›*?ÔcÆON\K‘×ÿ =…6“?’Ó“^šÑ¦Œž‚zÇÕ8]Ž< ²Á2¸îè|†ÜUV†ÐßàÇEøô_)>¹+Iv4¥¾ÛÂãž±f.øQüˆÎþÔ”ˈ¶î‰êÃC¥,híßfͦ$4^EýNÅ ª0´üW(áU,Æw)Ðí5t'‡å÷hñj(é$’¤i•£«|sþù[ÏAç¦q÷W‚¸³ã@£[ÃÉWA’éDóá ?!ÁƒÚO¢pcÉé­Ù¯Ÿ«+ÁT íD×÷Í=(ôQ´n=ÒB!ªŠ~Ÿ¤ ðy…ÌíîÃ7™«1僷ëD1é”q¨C°ß_­÷<@þ¸I)¸Ü¢= Rnî‹Ê')Õ†ö/áíüÈÇÒu8Ó#ð‰9i>í]ǸúÅüºdá )/+ÀƆ6—-ìì=lÚdö.÷Gê*l›!+Æã‹àÇ x»Òšóšqÿ¿÷Jä v¦âG<Çþëùó$j«Ê¦KèãŽû,Óä{jZ£æ!;ìù~‰@¯Ëž)*‹¹‰œwÅ<3ùu"]Þ©æÜÖS ™:žn¡¾¥RÁ¿2«[†ŠPzª‡?§®zl~£Ef³ ‡‘S‡ìŽ ;eœˆº"ÆÎhÌOÈ©Ø=ó»ôPšA› þ& ]1½L=(õ®¨¡º$ªDáSÐúàÈ´°+Ôëƒo…Ô5È´Iéydš˜ «ô}ý:ågfÁ¯ýF/)!Ï-烃i-í¢œ>8¡æ/dùw¦¿JõŠ UYZU®½ÚB™¡™ÅpŸû,{x¾ºîêWËè3ŽGhškÆêZNÃoÔ´Î' ¹ë·†žo?â‚Àኼîk!‡bl…/nO³p,á¿ß3Ûõ ÜÚáœÂúqW»Úó°dˇ^—òå§H˜kõM¤ú…ëPu×^ÈG»MD7WÃ-žçªœdÐ\©ù ÏâÝ|,]K ¨ ®ø”…6ë_}Õ@•3qeçãePµ|Ikè´Î÷=¿ ´4 Ô4’oÿÁ$ü祧çêÜŽsQd³"H½*4räxrïV¬åIÜùcà È#£d¸ •ÒÃzå9»s@º€íùŠï“s‚½©Pùƒátw$¶Ã¿±Ã7§ãòÇÄzZ×n¶Ëm:okyʤ²ŠfãéàV^n‰Ô9•Âê/¿¿Ši&Ò#ºM7‘"Ëñ/â…ÒMêÊtöÊTxûö¡Ü²íA¢‘²¹«øÑüø•ÿëRzþª¸§¥3”ÒàL<¥èËϦ$å’SRÒÞ–r’_ÚÚVàÂÃzËÙ ÒWƒ&aec!sõB~lÇ·ÍŠ€zk<áõ-¸©ƒSï84Ý4}¸°ôCƪ`çHùÙη£m?{Ú¿ZzÙy’–— œ na)’Ü_>~ü³~I:gºþlŠÃ;tÃùHgºr|›Óû›i«Ø„ø³ÕÎDí:öž]/KäˆdS#×x%4ûMäᦴÑô2Ðüóúºé†úÓ}ó@jzGØe’GîJy[ßV²íbïAôWÛýü—MJU‘~£*"EZÏÊ)»ù±^ÿ3¯ÔÎ(üùï#'±ã_ßÿ˜é$V»U]~Ìu;§=åÔ5OÍQ㜘?xÿü±ç”Êgúî~œ3Å´ù£“ó@O7±ÍK¤‘&?˜?r(Së±› Ö¯x6Zú )«6÷äËÜ•{ÀéÇ7'jõñôr†ã,¶AÒqŸ'ÈnÂPM¹$í[I&¿IxûÛ’Ñ’·²­/£d…=!d.ŽÝ6>£Xgì±Pï¡'š¾>»O†G‘ìÔ΄¹šÚ[¶ ŠüRÓ.F Úö°œ–±v«¤¶µ@Î|8Î{|ûî1?›ÍýMï,Ði°4ø1“«˜7´VRz Û¶˜MkKÙÙ6šw1tÿ¤.e‹]j“‚Q% ?ÃxNƒMN“™nðãºsA¿ÇÃo  æ¨dóî´û%›Œ“OrÆf´á½S¼K‘?âÛ;¼é#¢& %’wl»%U†Ik–Ùý¾¢8~θ€##Nä½~»r:é5òë Úñ­ö¹ÙSVEþ˜§V:é~ðþù1Ïz•éã©yiBQF—uò:×ô “Ù¼Ñ9u‡|~7žú` Òq“ª@Ab™¶fª“A7õÉCîÊX×M Ým„J¶¡=¨Ü›ªAµÏëwêi0ÕR >õÍ?ßmvïOç„7È_UJ›ùú O†ÅàÚàÇä¹Xpž¡pdç;ÿüÊdN€½àŸ£ã8ý…ër(hÞŠŽÏQ|*Ëç  gù"ÒÖ:PkhwÔ>¦7µÿyiUcíwJÍ«y,Íeä³å” Š~…YfIe;E¢@£2I ™ oÿ¤Æ¿rîÏÙ(’Ù¤Þaõ õP~ž‡6L€¦¹wª=pÉ+¸³Ì”ñr >:…¼ã´H5áJðÞ-/Ä{À Aîw?Qà8»«‡äQ8î‡é”2•cJ¨éA{ÓFò.BR(,-å7Hµßü˜Hõà/ê=ÕK‘IOÓkÌ%y(-ã92EÚH?ä¡i¶)4ï¥\°Så•  Ò8þ…›€¥Ã0&ÿëâ›7µšzú9î'?~Lcp>ª¡Ÿä¡üi?H©(CmûXJ }õl%i/£¡ûÉdÎÓ|ÝÉèq~m–ÿsì<޾„œºúRtÉOíM4^Éùí#[Â.–±ðøsl#äƒöžì”îPî¶:ZšGúgántÅ”1‡ú›Äé ßš“Öð 0ª’{ç°‡æÄæÇVˆúϼÂ"}üóüUX'žá_òã­g®“J­R•}ë·—tÜkòwuVÍU“Ô '³í‡ª÷ìV)á¹?CD꺺“Çy¨gšæ5øÑM…lµªÿ~¥TŸ@‰k¦µ.%0ƒÌl§°ºhB¡ÂS:kj…ðþG,øëØúWš ß<걟ró,¸ßÓàÇ: •H/ýÎŒ7…õ¬Ô»«Úè¢ðáË—A×£ðIð£Tõ)œý]øü ð:–bÒPóýŽ;=«Ìð£'?A%ÒÒd$…3TóðyÊȳ)4”h¥ MßÝp­ªAKОßà.ƒD>òÐ øÌ¿A:wýD÷ù«¹ô‰&.W¿ná|+†rn9OMj¸¦‘PæíTõ#³o¤_ЮŠÐŠ_ù)ùC—ûûŽä@*‹|þLkÜΜ±­Ÿ#1Äãô+ÞÕ“ @¯ €Éø%U1Ëôqßþç±¹ Îø`\·Ù齉OíƒÝp‹ç±*ÅöÍ7íÛ¿¶Ú™˜ÿâöžï𕸏oþß-ðc5¹³ 6#76 »úæW÷?*¨âHµµ8Aw °;Kx-œÆ:>¡d’Tµ3% |xdI-ÍÍï¨8S…[ Í¥(±Y¤ÞEõÒd„_ÉÌKy=c?äÁ‘ì•3¼•GÊJ-—¡ƒ)å§—`^J|æ3öGż$.d¿Ö Ñö³™g´üãn2Aq)lµìÕ»J”’¶rÉÐ]¿dW…žß?Þ™ÿñN/Aú¸L‰¢÷¦Åì®ð×Ù*³¬³m:ûBŽÙerùcŸ$@.q÷ÿ8Í£}³5ŠqDó" ViäÁ”ˆ{c| Æoýb½ä*2›¶Ù¥¦Œ³ml[ÝF÷ö²å¥¿ ›ËJPz?æéàWm¾h6öjÏu‚<È÷)¬”¦Žæç Ð÷rv¡Œ”üv<MO$®Ç²]Úí’Ýþ.¸X´3#Mm4ÕÍÙ€þ¦uFh®°ºPü…ü'FMO‰Œü±¹-´=--ì+;ÓöŸÎàÌ,±m>Ð/„Cʼ_2Å 7›SüØâœÕOLoŒ:pB»Ìt‰ä½‚÷æÇ»Ýg ØŠ^?ï-{Ûf°ùžMeóØ~2Tbˆ)è"|dâÿ'Ï_ÅEú˜pd'Žæ_òã=ø‘BmQÅtQ}Ï·†ÅFßþQ«Ô2µùãÇÖ¿:çÙ†ëù ü¢ŸoªcëÒ¸FŸêù&޹­3èZ?øýUõÖT¢û¦5ƒÊh3ÔLqŠªSæwzibB§N˜\!œ?˜^3¢îJÓ¡ÀM‘eNSaž‹ó¾[»;^ ÒAñ_âò†(ÜSýthQX>å[Ó5,ôµu†æß§ÙH§û©8ˆôÙD?*}·…<³Ìv}|@yx5µ‚&¢aðóGáRÜŸÓñBŠ^Mih½J÷ŠGTp£uùö›-J%1fß1à¦Ö@—€!Q5)Ý2‹t³oîþÙsÞ‰E>> CRË Oߎk!åbj.×ãHJ3AŽe´¿U ŸhG·þUl'½¾gîûö‹¯läGù@ótíº@±Íb}ŒGp+ŽÏÍÀ—QàK:z ²Ž¤åÁðc»ç£ª`.SRnÍ5ÙÉÐçÔR BÖ¼ɦ"ï NóÐsræг'ÆÓ }î«õw«’&7>·Tw”èŽÜbðÃ]ÿ*|~}»TÂÉmN‰ü1 õÉb*øÙŽ<E€»ù²Þ2õÂ$õ]_ˆüÑ—nÃû¾ã[ðÜ“e¾ ’3RÜ&’·œL®"¤€Wx‡ìÓˆ3òV°3…úrVçÕcà( ´{1·D¦ºd0G&p8)m[Ù³v«Mî]†üQùã—AFš?^’;c ¤Sªßõb›`ÇCxž‘È<óhÏ’¹ÒI¦p™k;Ù¼ö‘¼?öóx9%aeŽj >Æîn…­QUÝ?¯ïiåtErëóÐ t)gÒRðã7û·—úÒÅvµÏ‘?²yûØ â'~ÖcÓÊV® :?Gšª‹qôÐ, ¨·ÁóVÝ€ÛÙOU^™Úƒ‹Û¶¼+Ý¥¬]eÛÎö!òÇ™jwI&äšk ïœñL<‚Öš"æ`@ó:Ýtx\••ÁóÙ§ÕÛ›Õn´-mxûù(Œwœý<:,[eh[!sE†;z§¹Ð´5Ì…~ìv¶éS¦;Æh-$ïX´WÒy·Ù“RBŽH9d£¶ªwžWy7ÛXöϱqlfÛZzH|vçà^Ƶ^˜?SÊ@ßþï½â83}õÉ“ äßURÎj'‘Ú¦ŠêªúŽoÀ:Ï/ÈÕBµÒ‰þƒû×>ôÜT¥q”£#$¢šu-'­óZÏõ­ŸXZøÁüQO%Äù¾~L àG[3Ò)®n™–¤(ôúƒ)B~$q~÷­Ÿ8ž· ÎøQÊÆ3 6ûôPàMƒ*V§H4Æd×cBPï¥Z¤ à †åsP˜>m*ã›ïö7͇Ž b‡ÂP\je‚î2ñõë¦g¥ÙdbÁ} ìÐôÚÔíé~ì¥æœžO£µKqLÝ];RÑ¢ïÎ??üáþ4‚W=wô£”nÑxpÍ‘Ö#}l Åsà…nš%ºšSÿ›ó?n8Q‘üi8ø±Š†šàØ»ûì¦jÐÃjPŒíÐäÞ¸Ò7à˜”£xôJ‹>LµN-àuv÷'9†÷¤†(Nç(*ߦOz…¾/ß”q%äÁ‘¸nãÐ=¼Z,?Âèšæ.xÑ>6 ßDËÜgŸ3rüä3Ò[ ªÌGáÕOóUºŽã¹ ¬_L=Ü' ôIßz=_ÃÔÏÆÝ=/ˆ3š‹Â4gSãý¡$ô¾¶.¡å!Ç…s‹´ðÒâ÷Jp;îÈ)ÒWó/©ð8òîó`³á°GswœƒÈGø–Å2FIuVîp*9‹ŒŸ³CKW"¤â q² ëUG×õñÓC`mqP¡Ÿ¥;<ü„¼PÝþfÙu6¥w È‘OZ åää伟\Œ;àØ £ÓAöÿÈlV…ŸxNÝð™ÃÈ9c´FߊÉäö¼³ÝeÍJºpCnŒãÙ‹Kão%ä]µ*{9‹q<úb4´ç6œ I®²\ÆV!ot’±ðö÷¤-æ-k«€œCÀ¦„²Ü_È×ЛšüøñϳþžOê5EÂ9N ¥52Q@ñ öú9HÆú£öCï—Xw×,rÉl_‰Òpðã\@³8C´ãµ"®ÿ¥\Óœ¢ߛʮD†Ij?È>$›ùvˆõzWË&Ùk›ÛÌrCXâñkº '6ÉL0‘éj?v8'ôC3ІøÖ¿ÚeŽJNï{ùã™TBþ¨bÓzç{Ÿ¢½±ìÞj#ظ¶¶ –ì¸jÒÓ=Œì üž2š¬¶÷Ÿ~EEúèþGì½~Ihg›“GíP…uùÿâÇF¤ø=j…š£–9Qœý?Tí¡g—*c›ˆôÞD¢ºÚ£k:™œóz–I‚ü‘O÷Q!Sûÿ~UWÏME¤ wÞ_ú ;šuN~µ×4‡¦0|î%SNw QŘNu'ŽþÙu-5?6QNu¸¨7‘K’Pyzc&™,!š?xEÖ¹ð.×ÀŸ PâÓÐÍ¿ ž?Áë—¢Ìô I¬¹ùþ=Ÿ+žQf#¨[ú’–WÒ¨“mÝΕGþ8ý^ºMÄgÅ¡=*Ùw*VÐCwÿk¾ùƒ½áðËÓðã ZúÚà[÷ ÜSB:k–ƒÂßj¥×¹ë¼3¡Ø]!qí¢´Üu÷Š*Ïû©4õçò¾;Œ“àë& f?\£±è¾þ¤nS-“Q?2û)2o%ÏBÉ‹£Faß3Eç(¹Y 7rOn ý¬Kî\9w6û}g*¸õw¯xޫ¨– n¸Gá˸Î[C¯SAÏ;³;_²‡š,ãSPÉw`êr0i ¹s¯éÃNÐ!;ªò& Ú“Ę¼„3ºÂ7{ã¼»£+ø1CâÉSßú‰97?í{qE°ª G¡ˆ_í?xP=Eªì‚3 9–‡ÓcÇùïäþ2[ÆËiio#Ë3Žç<Ä·þîy^ÿpZ^…¾gR_®JAÿJcá¼PÉ•îJ†t“ûÉh‚tô“mf×Û]6wWHšÊ)¤™4ÈQ.?:¢/Cè®òE½ðf2üÎmzÄP‹Ó ¤¢éRÙ*œÌ¶li{Süí䣾²WÂËp¨|;>F@Â(ÌIÍ­€ZM<=¾oÐä¿Ö&e—Ãò‹eð£¼ôµ] ¡9áò«Ù:2D:ÙÇ Ò*®Ï |+26F¦ycÖÔ;ã §£eþ4”HvZm—#X÷.T©e§Ù¶¶¯½lo!ŒDJJh‹È.‹üê#9šÖ™ŸÌù€þ–sºhzÔ™à L&)ڛȶ¶Ým´e²Û\û‹u¼[dµµcìOòIŒ„‡K¸Mi™ékÚhýÄ+úi‹+µFþðC¼î -q¹Ò£jqÇ;ÇûÀÆð¦´—xÒ‡¶È(I~d…³iLè/rúåà/»ÿÑWgV õKB;)ÿõüóמýN u^•Õ ô ßwþžRêŒÚ¯üÕ6'ýæž3êwóÊ|2ÏMbúCGÓ?;ùœ3z¿Én¼îwMê[ß’ÿj¯¢P!ÚbrQ3(›Îf©SB2-è‘ym Ò-ó‹þÖº_¾Ò:5¸ºÍ 5p ¿àó€Mè„ C(Ùk3ÖÔýBÒS5I—‚Œn¬‚ïŽW_‚ºA+.AEoÀéfŠ òGÐU^¿~ñÌ5îüÅrôÚ· ck 81n•„Ï=B‰x&}6#¡¨±iú^¢Y­*ÒA$ä&hÉy¸^hMvzÝa~¦Ìö­t¸•"ò\pó„ñ×u¿9ÿÜãœq^˜Ì|×q¨iF´ u¢ÕðO—Á€¸bÝõGB·ãSûáCwõ{Üú%î÷WwÌQŠ•ÇYèJ©ŽüUð#š™¦Os7nÄѸ!ÎRü÷ä8Ëá ãSƒáÇQßú‰|¼¨Èœí„+}(•‚ÿm†Ö¹+eÿÌÇàþý‘?nƒ~Kp¶'ã·ªÓ~½Ã šã©ªð*UÁ£¥<”³òy|þzÊ E?ÂQe‚´±c%6”>òÇh|düÎpðóîÃ(ÊWùc¿b$Д > CšÊ¯ø><÷_ ÇdèkKÞqt¹Îƒ?JòS¡6g_gRº ómcb÷£ã‹sñþí»‹ã'=ù ²-íi»Ý¦öö+…¤¹\弜™ûæ#vç‹è÷õåjÕ‰Ìx•[`H?0æ/ZÅëP­ 8ad|y {]ÖÛ>¢Ð÷càæn2\Â* Æ—äôÖo/ëiètFòëÆ/éO•´&*¥‘ãÒȾ“2Ò@úÙ®ö­d¶lUèh'ÍŽ-˸2Úw´®<õÒü3ww—瞺Œ¼¼ü(œä£~æ=çöˆ­ggJ inçÙþv–=o ²Ë%rÍU0s(ïâÔÜ™  YŠ8½ôgS ¾®5M?Óx‰è­ õµém${ØŽ´«ÚÕ²½^isȤÍÐü ×t_äúæm ï¯V9WÁ¾p`5à«Všƒ’À»Äî’ò@$ªnw¹w·}o?Ë+^c“Û°¶.Ž£û$cj(Nj€„×üØJÿ™W2g´3-àÈ|ô$þ×ü°ÎV'®MôŸ]á)¯î©-j«ZåäùÁçwx®ªZæ)òÇ[šêˆú7'rÞf“Á¼×yt»œ^^Ŧ’¾ýÏáÏ{ÝÉ,sr©c¾üñÒä¥k¦V¿¿Jî4?j@7WS;ª UHÏ#©×£¡ÕGh…¢< ÒXSIA½j–N/Ž÷€I“á§PŒ¥îÈ2+¡Ú‡©(%Fþˆ@LÐoI¾~]õŒ7{ÁÊHIx ”s*%CjØM[¨g„ö%çå Üxð#-Qß«¸A•Dþhæº{`$?ÊR^h×3zO/é ­ƒw÷ÓPï¤9 +óþyDç s×$À¨ ¯å~DÂlGs(¯§ŸiWÓßæ[]q ¹3B £æ^? ¦Z|'%RÿyŠË;Á·c¸ò²!#”¡ ¾™4±ÍðcÒDn†ër z†‚ƒ¾×óBUBµàÇ/,|’Z õ¦BÐËæüU!%à™|”ï¢çàÆáØvÁ¨ÚªÁÛ|Y¯ªiJàX¥‡¾Oâ"¾õ|WP&äŽ(c¡…s%³\âäCF‚}û懪à”Á¬ùêù+Æ(èîÛp:È zAø-_çµÐý¹2 ú:º3ÚÃÈyÔH_Š_‘³ó °+cûçVÿAƒá)"ƒÙƒy.ÓîO;’?p û»ÝgOÙÞ–ðõ©¤%ˆ”::=)Ì=ø Ξè/Ÿßµf݃Ÿx…V•àn´‡·É©#Ã8†l‚Þg¶À‘¿ ¢ƒÁ’¿øWy+wåœH 9›¹PË]?±¿o%²×Ȥ]¸\_¹+õíKÉ-•‘³ú؇RÐÞ³lwé £í I#sPqø1ç¯.¿6ÿ|ßáïy§®Âñøãš!ñ¨™)Å'¹³=g3"‘vZ¸=þ$»d¢=×_G1+äCÈÃiŸ©dnâG{ íwœ™ü“¹Ddã{ËX?›ËÆ…Ú³»í6[yf‰,‘àRvyŒÌ)á ÎÅó»¡@ëïîp¶éWfÆèïóÌ!ùͻͮ—,p^P¨’}lgxGÛ'H7§Á46”íæî ¥ˆ "µ¢*l9§ n—µÿéW]@ÅRЮPH Ì÷ž–òxîxú›Í8beé H±Ö]a¹ +Z¹ ú—Ú—‘•gº÷ÕUÆïTÜ¢’=Õ©©o&Jf¨o~dæ¿ÉÝKí1Ý=6"1,¥î ZeVê²NùoÔŒàœr®á½èÝXp"uWjˆ£Vž7ƒtm¸&ÿ¼5WÒ\Ô F¢#ú­zLµN4ýÚœ-ö Ænøº\8nÅéEà ”ÐŒÖ« £97 ß¨#>355^ð*¸ýÏOƒãùP-oÿZ ì…wô¦”P¸Úì…¾F¥|¼ùc?@ÿ7À=LÄg¶GVܦw9Awöê¬Ê›èS&žÂ£9xÔj•çÂsâ¹RËŽ–$È)ä=Ï‚6?£tP¾Ü-ÎNŸtÐõ¯ªwp}pöÆ /ŒâN®SaAäðc€œ‘z6¹|âr…ý8¬»ï ¯âZpÑóöò¹þ^ÕÂñ=„Q— LlŠÄvžÊ|ðÃHaÛÄž´lTïrñJé)—9ø¶ˆÇsQîü1‰>ªA_Ô‹~hõu FО#³¤¶LGÚ¶6 ¼ýV»M‚—å(T;ñßþQ8=g6ÿx„_=ƒœ! e¾ã»ÿ‘ *]®Icë“/&lw#ýd{ÛšÒB&ÛC’^fp=ßÚÄ8Žâ{3' ÞqÏcu Ië€û”¼d¥öH s¹¤½bóÚ‰ÒGêØ­¶Èiä›­2×úK [DN ¯Óy˜>.›BæŸgs:‚%Ž;×5gh¢Xo^;)+¶Mb'#)œG6 Ò,Ù®¤BŸ½ãêÆÕdSÁ|2çø±ÕÙ¤Ÿ›>4„À³Ì7§$»w‡Ý#©ÁóPÈYl8ï,$’[6»½Ê«mxüiÇg">ÆAmú•Csîÿ“ç¯"8£åO¸*ÃþK~¼ó,q2«•*Ÿ.¬¯úÖO\ïɨ¨©j¢Zã¤tv}¿D ×I¿Êbn#Üñ®¨CëbÈõ8ÎÜÓ‰ô@õÍUƒ}eROMA:a’ƒ•èµnfæ99Õ^ӌ&1Ý0yuȈË)í$?úÓ2œí²Ð»d<à¬îNóp6‡SD(£ƒ”ZZ‡dFÏ}Õ]§Æ¨zG{áãG@ýöRy¸å~t‹ÑS:Gàû‰"#wÿ™³}ž‘f‰ æ<¢ø¼ck4¥ð­6u.%#Ÿ¦T¼ - HB›TÐu›‚¾&©BhE}(ðq¨M&({.¤«ô~.ß9Ö‚!ÛNûòÇBÝà›ë·¿öpN÷ùd?ône¡˜pùA¶R¼‹ªÒ`nÅ·h‡ïîº͆▓®k~LµØND\u'  îýýMÐú¨Q8_¢4ÈÛ¡w‚Í© ”¾5ZÿÈ„§n4+~¬ñ|PÌiШ%—âÏpuÀ¶á”mjɱ¡=q¨ óß U{ªÏCËÝý£ Ð½Ç º²LE¤™ŒiY@Œ‘\žo«nñ_Äg9´Ì‘ªpα þQ%®ûŒ+Xœ´ËÉu¸-ǧP_íÿqã7&èìXÌS1â®Òh~4´º¿nôˆT´)ä9ÇFªÊñÁøì¨¹."wëåµj|¢²»'{#>K§ÙOúƒ¯9­aר–¼cEIAi(W¡ÉîlˆþPû6èÿ2zÜõ>éeðOÌ:ržB›x¹L”º2†ÃÉÛÌf²ïe-x¤ìƒ–ºs}Úò dŒlàD~NbnÔúÙÓÝé‡däîûØ ‰¬”©@yä…TGþˆ'%¥§mcïHQÖÛüè&îºî e8¿š/ƒ¯‘@^Zv“Çè;8³§1®"HfjjºãظŒ,e‡‚¼eì$ÛL3}û=m•ض¤ìy§ðFps|ÇoæR@S;=á\ŠS]hÉL®aŽS(´%¾<ôA®K3$…¶©Ýaw#¬·ýl"ä°’_á@ L3ƒÎðc“³Vß4]‘»kã*:aöH&ïQ»¤Ü.5l=©†w´÷¶}j“Û‹<›Ͷ—å’ŠRRrwÎù…cpŠÿ“ç¯b8£YG&tþ{+"}ëõÚ³Ðɪf«ìº¨¾äûc•§´Ú¯Æ€ «œ8?¸~âUϕʜ6wÍóÒdÕŸU!'†³A÷1ôaï‡÷ÿ(¬šìtФ„²–¤»ºµYé¤WþæÚiΙˆP¾B!\¿$•SÕI¡«¹k7Ã_–§%”™{ºþ\7§éPÅötÁ$Cjênòè…ß/ç¹§:é,;îs»ཅ÷A»€H—¡ÜGð· %¤Ç iwóýgÎöxº™ÅÆëΘš@mÐÊŒPŠ´™òr èDtßúW½}÷»W©ïíH5YeÕj`Œº+0¦ƒª¥‚tÑwÝK_ å^-½‡Ç¥…f–®ã|kf8çžsÍDçc¸Ž‡’?åÁZùî äå îÜ[¨Ý[|Î$ülR[pî‘Ù¢M°ë'Æwê7f'…áuÈ)Ûp>rQ=ß÷Wqð 7µŸ^Ç}¡RÑùOwn >3%2ŸMMêìþƒ«æ…qÊÁÍÅyl‡³âÞéÈ/hÅ¢r`ÇÞÅAõmÈŠ~ p[ÊIkõޝö,¥Šƒ5)=4ܹâšoÿÚ,p´GXÉ xü>InrL‰"áQ¯ÀÞÐÒêÈ` é…ÊÓê½É£–*>‰ÅmßQm·“©2P¶H›Zîs2ù u×ß=Ëó¸2òŰ3½*dþG3ß.óa¸0/GæºM·¹µt‘¾ü† ºÏµÚEÈ3ä<’¾gY‹Æ½ðÛ­‘î&Ð]Õá‹zoõZzMçñwh9Ž–ƒc¤ d’a¶‘Ího‹ã Ëx²¬•pâîrÛiaÚ׊ssóÏg5=^H{í‘ôúqiþ¤rXJÚç’×½]“R6“·¼-ˆŸw°÷%ª ùžËx>¿¿ ´ÆOX}£u3ß¾hrÐ6´bŒ]hkÙñò›d´î*S­ìe{B–Êh;MÜýDr%'üG?:oê™»ýãÌÒ£·3®¡JœÁLàD6ƒ7¿íˆœÕÆ·;AŽÕ¶12Èb)½lnë‘eQ²³g3–Ö›’ÆÒ­@û?úúÖ‚KcûQÊx;ÚM’Q.H_»ÍÖ±e¼k¼í%›Ðîá%6”b«ÉÉÅîŒ,wý]wýÄÔ&¸U~þ§_ÖùË ´V‚“ȉö/ùñÂ3ËI ~¤ÐY´ÿåÌj—¨ºª¹NÒœ~Þ3EE7›ÍsÍl1õG•͉ïLAn8­ýu$ÝSµü¡vþ¤ö˜DtÆÄB6ÈOÛÐ\t*«õ¦0rÂ,sÞÌ0ÉB˜?b:«Ýûúæ«-€‡ë'rU7„_=Hµà y¦I§W|¿œçª¥³b$Þ  P¹nô ¼ Ôx oÿÁÃ4 c*Ý7§LkóýŽ—\ïqø‹ ðéï¢æ!Ø?ê†g®Yåjz8¼<Ž’£Öi:J•93Ÿ‡†M%Ÿ³Š¸ZÝ÷(èkžú™–ãJ©bì¥dx_ ô™ùÚüØ@}{€| …6š™º¶Óâ›Ïï^vž˜ä`˜ŸïŽ~nðÈ]ÿj=µãÝPëyÜ‚ÿ†ÊvÃ]I[©e¦§æ$ÜÂÝ`ªEs2é·ÆÝÉ}Žz9uÙÊ#\¢,֬ѷ¡µ9 —ö­6R€ÑÁ…þÁî?øüx@ñàŠë!†ìD“© ·Ã’9´g—NöŠ-ƒüÑYpMlÛ¸{.ÊiÙi÷Jzøûkèëä»<€šææN@9óthªk¬”vQäªî¸ž¶£e×Ü{G¾oŠ6Ó$Í9è{7ÊFo|ùãb0ÕØIª ŽOÞŽÖí¢Ž”´,‡~–ç8\„6¡eÜh nIuAûàÇ)c‘ÈÆ»þÕMðã"øÑù# »ühƒsœs¾„ÔÕ“ßñ2¸úGô’Ñ*x5 pW@Ó[¾úþª†úÍdÄgeAbíãGwÚ ÝÚÂw9ºøI8Èpò i!¹¸w|?R&Ã¥ ÎíÁOzNz0VÓƒgùy)ÔŸ'ÐMð6¦„’}Ü[úHS™…L“WÂHq -ã8-zñ˜×BSÓCe:R:U)?¢íg(2Ïd“t'É|TóJèý»ÈÞ³k%šü!Cä"g圼¿Y zþ»¥Ú~Qï&ÜÓC$æ'Ô–óò&šÂSe%´ù:øÑÇ6DÅËrÕ®?¦úžeƒãÜ•‚tÙÀ‘jËœ ¨ÕÃÓ×é«j<¨Ú›qÓ™2ÈibÃÚîRT:Û&PéŸl,o[]&ËZ‹ÓŠ£Xt¿Ì=¸"¨äÐ?üx剨oS8>‚«*,øqÚ”æ.Pæ¿Á¡-ÒXrÙ‘¶Žíb·[Ù)ëìÔÝ0ÒânŽÉƒh¯ihîô7 øá&|÷©ÄzÜØTb)å-o—ØN6Ž}!"l¶­íq»FŽÊ.d¹lòg; ¢“ðF“M9ƒÞðãšóD¿1À:ÃÇÍ9¹gGÙ åd£á6¥­äï}cÙPöožˆ,×ÁÖ—æ’žÏP:ð£#RPDÎùòüîGdÅGæ'!È¿«tÅ3Ɖ¦¦ª¬:~ì{g¯'“:£f¨È©Û]q¿gŠjîš«P÷ç¦¡Ž©;U{z‰±æœNªÛ©oÍrþKÝ0¹è°É/Z¢š f¿SZ2-h§¹bâÓ!¨}Èž¿Šâä?êøV_íà[?1Ï¢!t\ÿ%uÇÇ[ðãéj2…hÿ¨‹ª­.ޤ™ý¡ãÛ/¢cA’çðK§hT;9Yúlº›ïÏP¹îm#eUAúHÄë¨\rA0ä*’L$û ­ýdF€ ÑhJûŠÛUuhe3\+W饇 –¥Ê ÅŠÀ±ù¡oï(w¯§'жp´ÃLÑÍ}{¿÷b皣À¯kèm?ÚEŽnO¨ßFÏwûfzoGßÿ¢ 8®}©(Ý6GõGõ$˜ja0úyJ1௛“?Ô08—”KÄ®ê'ú)ý_pfmèWœ•^à夸väìþ7Us 4jŵq5º÷?šá¬¦„õ.LMùÏåmÐÏghóšBkÀ¸´1˜ùƒÅUI“ ¹(3~—ç»ÔDÌ …µŒ’<¶•DAzˆ'±eó$Á\‹ǧ%$óÕúW—ÔM¸‚aàÇ"ß:"#?&0É]𤾉L•´6”XIªƒ9˜u´+Žÿ·g-wý?Þ«v'1ÚJ°Rںģ‘Vó{Žf«Ú…v¬ýd[¢å¥5òGY. zôGZiƒüáGƒÌß½§'Ðm¸”kôWÑ—ñ*Y"ud7øÑÁ6°í5™o[€˜}å,¼ø n •?‰ìñ\C hþÇHOWÞŸv›Úà7Úš–”TžÉïÈ¿H}ii[ØÛPÖpæUe´Ì°Ÿþ_qofűw{ïl,NpÁ‚Cp÷àî,@€C ÁÝÝÝ]Á!8ÁÝÝ݃«÷ó½˜ —!÷œ÷6OÎa†™ÚUÕUk­_K•¤9Uã¥à…¡øÿ–|ãûñ÷}ŽÙK–·£Þ$©iŠíË"ƒáßêhsn]¦UuªîÂW+e¼Þ•Äð¥kÞ8pž ÿ¨bï·7ÓÃ(•£ ÏU\É> ˜šÎ_TWkýZ+êr=¤3àHWt©ì’¥øœBçw ßÀ¨nO«lyûÂÞ öÓÎyóÖöÄm„ätÅN—øþºUŠÉd8Y$}M þجo5úeèã í#ã$ \?§–W¯(‡=ú´û¯âŒqƿÉœ8ÿÒ?îûf9Ià™L^sÒñÖßÝæ+è^ p;1>qÿÃH¾)û×*Ý·eMx“Ý)ëÜ4Km,{U&Äz ;r¹¯m!Úg¿EF­N>;ÈNrj¸·l¼ëchšÍFþHæq¾1ÃhJ`ÿÁZtsº'2ÀfÓZzßµHÁçl›ÀL Cywݦ6-£ˆÈGá±ÁE¨/¤G4ŽnПTÊ÷ÌÆ ìÇwØ=á[m½ëgÕP^b^Ž9)¾'æõ!úSóEJÈÞ ÁCèwŠL›?úþà ·¨>ˆè,(9t?/xȰá¨ü¿D½½¾n5ƒ¾¢ýàúÿ‡õKž:é ¨›P§~´žrQ\ê m[Kà)i#ÅX‹–·C™+Ñ»¹àš§Ìs÷h(¥%qR˜—ö%>6…üJ…q6òÑ%xÀiªh·˜;Ðbïýð•apª¯17Õ£ŠPüc­ï±[ÂÞDí:Bÿ"af6 ¬¡Ÿ zÙô-Ť&|þ±‡½Õë7€éæ£õ­PÞ!³ûÏïÖpsÙ‚ð"ì­\~Ô‰Ö i,äle†”ÕÎP”[œ(°T>”ï]-© ÷êÅéÉoW†(ïªë£ô4©|=i* ƒìç%ÜKK?YOJ.Ï9±l‡†få<üŸÕ*¸½œ)Ä“M+œ…£œ²?u‰.s_øÚ4¸[Z-,~ù|’ø¤´áSŠÁã~‡wUä.ðšqô,Äó\Ž ÿ¸F÷©Z1ŽæñR™­ŸÀqd„ÖÕRúœ°@"‚ö‰ŸÓ=}ŒQg½'´_Ÿèêëá 7ç§ä]Mle«Qvy"­Õ…‘nÚŸSÅ_^«ËZ™¬÷$­Ìáêð‹<u­Ã×ìüàòîøâ˜KôŒ:†XÒÑ1›Ÿ«Ë÷úT3¢F}ä;Çì®›õ zq–‚´°ì…÷ŽAoÇâ´Ú³·ß¹>ÄRTmd‚Ü–â?%½?¯nÑ<`…¯µ§²6Ö½ºSÖAïÿÐ/å¾D•8àZo„¶6r̳`ÿXéœ2m'êñ[‘.Ú?å1ˆhŸT‘®U·k6Màæß«G5•>äèÍh:ç<)È2f}ʦOc?m‡¾ÿÌáwº9ÞñXNøéù¦9IÝ™nSÜœ ¬g½Ú—Û] GâÎr"âþƒ‡|¿¹_Á=Ø—6"•3Ž©ädq¶™ñð}&­iþ‰ïVtßÚbtÒfÅŒ/G/L]í¤w·ÚvȤ¯l~INó¡Üüþ‘ Þ˜Ü AêžNA𢳠Ç{LK¨Þaš-ÝëoS™a(ï†ÛÓT…ZÆ…¬DîŽÎðû]‘5oB—OÐ|•„ÿõ°º³ð÷qÑ7ÛnTƒ2$Ñ´@Ö/ Ý9šÕCz¼I)x…£9ÈÎ)iÛG÷:íVEÖ®‡™òÙ)2R´ù1$"Çä{´užXÿj*þõ¼]dþc-óÿ9¢:wø”s¨ÊÙIѦŽÔ$T$=ã†ü€¶Ñ(ÛR¨íªKèœyàÞ ¥´N:sÝúØ»wØ5èÿ(CÅ0ŸóªŒÝavq?°Ä\ÊÂ/¥8ô ¤Ù›æ†â|¹…ûŸÿÂÍà‡éòvô‰É} `áÐÒ¬T^0÷ó3z†>Y·_xä,ü£`ˆ67u ØLè·ŠøùMÜåy÷yrð>ÃÏ‘ô+kßÀúí‰Å'ñ·LPü™Ü„ð(ðG»1Dy»Üç6¼¶ÿÆÇx÷G²˜È/ð÷5<ºß I7—¦¤†+Íà,ÈôñføQ.ÞˆqZ4Äõ^kêc„¥\%4…ŸæQ2Jæq$)¤µt'tËï_&$夵\áºÐøÍ< -ù•ÏÂ_¸]CÜÿŠQá]Ùóž˜ZMãx¡Ì‘²²ˆ“È$ðG }*Ût¥\äa²G>—UàŸáÇËáÎ97§zçþù¾¾N'ÔÌãa¨[y[¾Ÿ¶Õ'’7À-õ¡Ö¨þ6ZU&Ê(©Ee6ׂ;;2n]…ïÚ5ïœÛˆæ ½¡Þµ\‰OßÛʼ—kè--©óÑwytø£Z|E–ËDÝ"Ù´„E9Cñsy>¶%ìÞàö¦sú ¦-ƒs:ŸóÙtH"ø“éJxFd}$AúþÛDè ôÁbí¨Y䱈Ĭ£Ö…fÛ†öŠ=ì3æ‘í‚iˆwÀ®’kðœÍðÅÒRûÝÊúÇøoê~M®ûy:¨+›Žâ­&‘ ÇœJd?m…ÿÌÇö¼ñ}ñ¯÷òÖOLXÿªøÃ»»¶Á—ÅÝáÎv'Ã?b:Ÿötòqß7 øã3º‡ä]ØD6uœ4Î:3Ã&°×M Óå×/©æºP‘“`æÔŒ®˜NHxéÝÕ¶=ü#rîM›;Ìû×–u¾2ÞÝÕP¿Ú´‘¾á ¨ßÓ„FãlÎ%ïÚ(Ñpû†òN»ýLuZD‰ùO(Ì èþÊÊíI÷p/‚?Ê!÷Ç@þíl?ö´-ÜÈ7Ö.³‰ñ;o)ü£6T.Ê:þ( ßC)á~|wŧ }ÿãŒ[¿Y tc?3|²U¢»(=.GD>\†ræÁCþ¢pƒsv¹iñÁõ¯È¹è¤¡x¼&ÖoÏFIáo­A"¥x›·/4”Û»"6œ†¢×㧪Ó[d‡Ðü#¶“ÙܱQÁTûpF÷cæåÁü˃þR8Š'ÛÅPâç\*£_[¡Õ7íà€y¡øÇnßm·º½€>ëÁ}ÙŒí¹ÇÊ‚iv.¤ÔTŸ÷ñ"ÞÅ÷‘²ÇŸ™`¥~`”gæ¡“9D›Û¸ùmIÔ«*xå×äà”­äÝCØÉŒìXDGJ9ÄŸK|™þ¸C¹x×ÃgOà"”éæýò¶º¯ìWpÔ’¼Šo‚†ÑòÖ–º‚¿÷ø³Ñ»? ÏÀ7y8س8g/Ú_}Û‘ ¸ß+Ño:€q½÷óñvâtŽÇÉPYƯ9–ÑuºB¿ö÷’\TZÊ%”’>³TÐÛÿ£û{åE³Ó‘).£g~Ä'/£e¼D–HÙ þ˜„Äœ]Ê)xæ6"'$>§Úê=Ð=^3¿Ãå}-œÎàÊîè•N “N¶e’+RO­Oj«?ëùJßj1­ «¤¯FÐt2·žù;¸%ŸgÿÚ¾›î!ºMÛ‘1nsfŒû–<½uSèdi·˜¦môGÝ 7À uÄÒÊèÅâ`»Óœ45ڲςۛÂùüQ­åæv*ß,þ¢:Gûh øÇ]ŽÞ« ‚[(‹d€vÐ rmŽÉá1’:Ò|;˽zgý’«æ®m‹”WD¾Î¾’Ûú½Î•,rLªk'­þåßöFÐ=¼Ò\[JøÇ~ÊÑœñKÊb?íóæHæ |çþ‡ïÿbÿZq¶;_¸;Ý"¦š9x‡ì ¯ˆ»Ù]&™ï$üÄõK®ùž¸µì=ûØ^…¾×0oÜ '§³Ë̵‰í3“Î4q?þ,Ò»Ç`7 TùˆÍ‹³T•®›êö¢SÈ]þØ—*IÏly¶7Jò;­œoÍ,Z‡¤ÜŽ`TfâAPØf4ô”?*4ög ˜Qa(ÍZSŽÆShû4ÐÂKÚ@… ¦?!¡Ĩ߅1—RªeS~´†¯|ìž Ð+JÍë‘’¼ug‡C»V{Ï"ççá¹ôÒzª•f»[mù²[—.P 0òLRêEi@ †cðgÌ| *º‚fÑ»*èºÝbÊ9¥>PfD笓‘òñ^¨nøGnpPSÔpTöú­2îkôg_´{ í…‹´À\e¬¹Ji)œHmá‘´—ˆ¼5Qrbþåƒx»=Ý5ÓÍ~(SÔ³Îx0JºkýhAhûGíôÅ2ÍíMÊf©ÌOÈÛ¯ãGèuqîu}Dûè3dÿ?÷?.¶–Á=&¡§R#ÚhN;!9îŒÞ¼T}¾´P žÙ5Ë„M¾”qÒXgJjèrb /“½kMTÎДó.M1ìôå­v#ƒÛRe^Ì÷PâP:O3áDù,ñö•mò³úÁ ä1!à7ðºÖÐæpÿœ!x=¢iÜFÑ ö«AWè!O’™2SIUmì¼]Õÿ£D‡^ÉI.ÍÙà3ëñÇ Q¤«Å%³³0r/ÒCòîfŒ ¼WæI}YÊßÉaí¬ùõ’,ןQ^_9$oyXÀ—Ïòx|ö û×6óýâôÆè ÒkÂe¸ˆ-A®8p{R\~–ÚCÏI1¤üÚZ9|²ú5{€?fñSžæ¬Éìäàò^ú^ºçà”û0?#Kbêj»±È,ðG¨ô,i¨ ´•.Ö£úJ¶Ë|=.©´±ÀY™ZÌÅKi§Íj·÷køÇÐe%Ìú©\Ön!G ùSêïšUcƒvêxQMð´u¨>‚¯«ÞaE.9Š1½Ä6°/ìý`ÿ8ã2Çl_ŒàZP”ßíÐÌoºDªÊt!½ÿˆê_5‡ôbJýRƒ<ň‚,WŸê¢ìÔï×ÿÞÝî îvR;¡­–#ª³Ì‰ážv ›ŸÌ¹ìôup¹ºÛÜ…N4çÓZwÅ'¦µeèð5›ž~1OܾN>'Š=dó@ ™JnîOòvn^hË›j× þQÍ.w ¸ÇÀ'¬‹DU̇öí~ÿ(áüèä1ci)2oúŽnÞ~kA«Írš FîJ{lÔ»¯ÍgZ„¡¼øf·)ˆ†Ñ0•·`D „â¡QÈõG‘t¢Ñ *Û·-íªï¡]h_Û‚Ä ïßÁA`—ß:_Z{оæ…ôÈN¢UÚ~ôúÕy·Re}¨ä : ïhO‰ û·)<ÇæWø—U¤VSzøÇWàüæ[§âïœsr‚Ö¼ç`ÑAøMtêV[L  I=i"—e}9ŸFÀ?.¡ìJÐÌ[æ­Z²úÜÉe"£™y#tÚó¤œÞz·t–b€?|v¾y -Ì× TâÝ¡JŒúEÆùÙŠlõÅ0Uíc*À=¹Èê ú­ý bÈuØ»_Îà“¼€/à«'ðûñ+˜ÃBW˜Íÿ¸~5È­c½ÝØ‹ó~¨nQÞê*e‡G$–ÏeüÿøR^ñWUFqZŽZÇ‘Éçr=Šfçþãþ¹¡X ¿âPñý¼™ûÃÍǃ0óAî.K¡ª§‘Ï㉕xÂÒþ^’#È:nì­¯ ÝLì¾ÿtH4S­»I~Εlqq—g£œåœC*jw¨ÖC¤Þ5â—ÂÒ.Uš¿æ-¼–k@Õ¯€á’›÷¯_}i7gñ"õâïx6Mãup£:2“+Ê6ýÊú@¶èj‰‚ï^•<ÎÖê¼€ËÁ‘ò@…7—äëéL 4Ü›¯Á?ÊsE[âÊ-é¬w¤˜¦—ÔS’K¿ðwÖ†²AöiFÍ!ÓÀ³à ýù[nÃ~ê\ÞS°¥ád˜W£)žÜµ[ì..#Õç/¥3¢'µNÒkúRvÈ9½*ɵ‘ìôޜዠYtÜVµ·7¢3ÊR]EŒâ1llr&­è¤ µ2Ø ®ŽDß­ ¬!vAãLŸÓ ìèä­çí¨;h&:= ö]αÀúíž|OOì1ùÚ?D‡¡ç—H\£é5ކÿ¨ÞÕïôŸËUÔ2G,ÿ*~뭚Š8¯ú´û¯1œYNPpÏ„sâýëëWõNF÷77—IiÖž¿:îkÿXï.w§9Ñ?ñþÇSß+·&øãž}eoÚæ¾;Ë©í»ÜƶÏMSýùc¬›ŒrÑ.›ŠZ‚Κ¢v•ÓĽj»ÒŸö™-F‡l r ŠÐTNSç3/°ÿGkhÌhçøÈ3™f—£ÏØ\tŶ·QM—0”Þ¬6Õñ›Þ³áóà±øòôOHá‡ÁJ@!y‘}-ýe³Øh­áßN»ÞÆÂï¼¢d<5M©h9­EÞÿ޽•¡²ñzjGÐHzm‡ºé>RâC÷:„V6 Ó¨Ij¤÷l £; Xü5\xŽu5Eç!ø×v‰)ûÁûçœð À$¼­ü™6R øGæÓf´ùÔtà)¸n C©;@M%¡Ú× ™ÐîŸå5Ÿ‘`æ,…{o£îT†ªPQº†ï-§Sæ´¹ê檉yÙ”ÿ²‚ç§M(þ±‰¼™½GY¸42 rbjŒz¤åÎü=ßEm RK(÷<è÷=zŽ6Ï‚ƒ,£1TŽ–˜#ÿX·¥ÛT[ªƒ¼]ÿ¤–´žò‚`.ó²ZÚ@"É Ž'Id ´ù-e…úÕ†ãäªóë·ßr,Ö•*ñz¾ŠïžÉQå&è¡4¹¯ì’¢Ynqz‰)}pvÊ‚?Ö"Ýg‡nv¡oÜ÷ïÅ0AøîŠËUA4%ù6=áAÈ»k9®äÐŽº[7ë—þ®(¯Ž´’cp·ô(m|¤ÎÑ@JmÞÿ\à7AªO(­ÝÿX!ä™ÅI‘˜ÑœzMÂùûÉfž/Çä)àÜ}3‘«ƒ²s~û÷ûa½}£‘•Èž‘÷lï`;šrËM)©á´Œ4’nÚþ‘OSúKhuY% 5¢F•%Ü}s‹§ Ä"|Ó ./Šü¨˜ƒÑW"xëNó])>¨¯“ÁHEt‰Ð.ºW·ÈzY¡»%švàÔÜ“VÛröqp{c8óÍçT s¢)ý¹m/øGj,­m5¦^— ð¢ß´‰ÒE2[ëlýR"éKЇbþµ¢!v¼Kßáçæ±¸ßWJtK.k>*¹å(k¦&Ó*þcþ—Ó^×ò£¹µœìoÇë¤ôé.ˆãpf–·•ÿÓG^œÏ1 M)¸E^‹,ßãü8\d›ã4)p§6'E ûHÎÃpýê’o»ÝaxO.hÖÁ-'Á?z€b¶REèÔQ¸Ý"´ùg$üè´ÐýØj™'ÝJà¬Ö(ç²efè~!$¯HLü%ÕYN+¡¤KcçBŸÙ5èÅ=‡×yèÄÿì„.w‚âg¥˜=ÁF¥ø"ôz&ÿOÚF¨M†Ú¶‡#ø)¢uB½~•ÄI`ž€óJª %÷žß­LÙÁIñ[¿°¿›Pû_ { ©êííìvžEËCÛÿc•ÏojÚŽSIñ<ýWê†ÚöâVh­÷LCU¾Â› ÿé>ÎôLøÛ  =XiNüãýÊnÃÀú‰9xOàJÐv¨c¨ýMŽ/³¤ ²x\ñI6I'£‚£&ùºÃEŠQF»0Dy‡Ýðþ””²•gÃ?.×bÊ ^Ƀ‘¡{Ëni©1À¹ ù¿rb®Â·ÙÛS©,o@Öù6ÄûOÜpþ«ã%øÜ›ôœ‡ÉJY w+¦­õÔ5¦¿§D‡{ ”s (oåÆé\ž|­Njº½WÞs3 îq c¤¥w݇¦ðfÐL øE™ð½2I;Á3'ÊyÃ#à ø8Ú\%–àlöïõU»øú9Cp½õwÛqsno«QPË÷j´”ü}n¯¡úOµ„¶”f2=°í”²„¯¡·ËÂíÚ¿÷Ž~î{æîÇLZ·ÿLŠÐI[„«ÀÁok!/¤’NÐfºZ/ê1Ù"“•ð9uägàáðê‚<ŽÆÛRÖ¿žÜb\$´ê=~°©y§|ë/§Ó´¤ÆÖot­ÎÑUÚܱIa½ÞÒäb4\àý³ÔÆÙùV1®ÿ§¼½ÎMsI¶ÆH)šc·Ê#ÔhT–vNïhýÖ¿Ä¿Iz½Î{A[±´C<Þƒ4÷©©?¡GA,A µÑyˆv{ûU,å?Qº÷ÜÙüÀôCPî~sÆ ùf·¶-E¨RûhôVòÞÃü†wrøÆé cÄÈCÎ! e ÔÞ"í.…ƒ7”¡tvvˆò®»±PƒæT…W!e¯â $‚©Q¬ìãÎ2\úÈf)¤qÅ‘Tr ÊþñŸÖY|j™!Äz?Ñ‘€F(¿„êŽãÖ|™žñL¤å]œAòkK=¥gõ/-‘¥Ž´•Ó(%/o€>×åQðš^ô™yŸgüv>Xù2¤g妴Ÿ·À)~”Ã\JvèZX/Ë6)"SÁ>ŒsÝ^<tç½?™Óþ­|œq”=ÿ˜:€'òÚ§6ƒ<”fúBòƒifh÷Àþꯤ¥µÌÖøšBfÂÖ³o7÷*ìÐèàòŒóؽEŸñfŒ¨T’‡‚,x[À?ÊèY!5u³»Ó#²SþÔÇ`› ²…K¡g.qpËB[ÄþÜÞ„NóÔVÂèìHǸ™ÝH·$£Ÿt©6ÔÏÐÎNÐüu`›z<³,—> ⥓ïóí@äâèÁ£ð¨s.°ÿùäÀ{®}­çFÛu¢xïÖW†'}­ý‹ý×àG¹õ4ŸPÑäÚü‘ü‘Ôׄê²áomXv«ûOIœYÎÔàžq8ÿzÿsvN9)Ün-ÓœýÿïŸ7pϹgÜuîb¸Ò§=]vËÉt´¯ìk8HFa’›…N'¡½dkÛØ¶¶iì†|cëÿ|ŒpK 9¯AYžÖGÀœë”sÏÙaôÚ†Çw„j™°­ˆ’Áié”3¿ÓF:@©þ7ï‚>]1S ¤ghh¡ͰYÍð0”Ål6Õá#ó%Z×Þ˜FÓ1‡“A2ÏMQKK•íÇ÷f¹ïÛm·ÚÏ‘Å-füJøGwhðj:GÛ©rî^h˜wÿc2êFºI>Râ3ðÇ%j„ÔtŸNCÁu âï‘ÁQùèfMË|ÃÓÁ9g Ú%?xÿüsç‘S„¼5€GÀ?¶S: .¨ŒbñA|gR`ÿ¨½àøÑ¨ñq”[óã•ñ™¡”ÞÉm^ØØÐÝM¨Ý´3ÎFv¨tb^Fñí:s ÕþQ”Jã Qº`câLíÅ?ÖøbšÚö a T< êÏìJ™PF#¾…Yú%5à}Hà§ø TrZÀ5×à,µ£C朓1D›{¸õly$ÊK!´€ã$=X‰dÞ]GI8¹Ã)$ŽLåð"ø·Ÿ Î ¸¥¶;C”wÌŽt£ïx?ŸæÜöÐ4öÉÔi ,”NrH¾Ó×ü˜£Ê^8^"øBDÙ g(ÝœAyCÜ?m¢—÷ å—àÅÜ|tÇÈ4™ +åí‹?ÑýÃå> ¸@i¤‘øÉúÜYwE Aë)ír0^Po.Î+h ï–9Ò\–pY$ðáZD¯ÉY¨Þfž(ÊupÇ÷Ü‘Ïñ\ôöxÎø;=wöýèL“ã{àŠ\Ø6ü¾º$•¤‹ Ñ>zC hr5- ‹eªÆÓT¨y[ô4Ë(nŠ?_Ò¸àò.øn».zx#òX"y`Ø«ø¹¦ðâ:YFJݤ´‡÷ÌJÛ¡û%†V“íœþq™³ð4ZaKÚ»ÁíMïü`Â!ã•Åü_Á—ÌI* …ýñu²v€“í—ázI§jÝ ëAš3t¢:O]‰?<‹¹4Ζ·†üÁ£ð¸sÊœ·ÞŠwà i—¤óÑÁ’UŽHQ­ÚÈá_ãO §‹ø"ü­˜vå“÷Qú jÑÊ?vmèÓî¿z¤oýöðNzçãרC?":Lî7Ÿ©bþ\?å+¯g»܉NìOôG¾3nùÀêWWáÕߘ/Ls§¦óƬ·ì]“Ýüò‰ï®rŸ[oå‚lÔ à¡éoO8Ý ¶¶÷lrZo“˜°Mr§«“ÙLƒ-‚nµƒ¦æUøÿõf fä!hNx$ñ¶©¦ç¯žº³L½ÀþµG0ÏÇG×Q3äA»´WQb~JA¯PËa¸~•Ø™d7Ú¤Û/)6’ÓÐÕ´´€NÀªq8¯ËSè3$ȾôÐör³}¤Ä„¦®wçIë4H+-#•˼¤×(é$4qþ›†¯ZÁå¦ÙQ¦¾SéefwcawA9 à‹1èWúÚŸs´MÆ\½†ï N £É˜ÉèŽ]kî‡úþG!§¼9e#rŒ€ì„¶æ4DÝbóbJa/™ÍШºüœ¼ý½½AÒ_U Å?.úüf ½KY Bß³ð8o]IY¹W`Ç$?G£šüÏG*þ )rêéÈP*A§‘mB®õ³[Ú–ÄçVç­¼Œ‹‚‘~¢mÈÔKø‡-äÐÊàSü™¼á¡œÜ:š™;ÃõÑMrý«»nBxã/TŒ×ðAžÄ#q>–ðÞÆ ódŒ,Fú–ïÁS.¡ é9߇ÛÕàÂèï*”Î}?{¤0]Pû]ô9üe;WB›.ñp8Å Ž$…µ ²tyÆÙ¥•l\¿ú Ÿ[š;ÁMëѽë¡dF{LáAøÉ9ô;¯••eœNæimÍvX¯ù„Á3»å8äšè×­ðˆœì]}IøÎêm|S™”^u:‚%ÚÛ)‹œzZZJé§?)i.uýõ'*}t§¤Ñ”æ©p¤và!|Åþ½wÂ1_JsÉn ÿÄèoÅ뤣…2/ºào‡Ýn ®Gò»ôÖhz[‚àtùàrkÁ }Á‘uÞYÿ*»3Õ„Ç<ÿ‰ú!ül⥒ÖßX»jVM2¶ixQs}Æ\ˆÖÖ(òN5pýj,m°OÌוּ̉lÏÙvÔ›šRºj_ÈZ­V+&ýq.2jE£Óü³•ý1”å{Í‚zw“ùà=ÈWó©}‹sœÌN }ÚýW8Î|gPpÏÄt;{¢óCGg­SÒÝþÈk.;eÏ÷;ºÇÝcîwªÝ9ðI¥½Ô{Ü·7í[Ò\s+9DvŠýÚ>75LC÷ãïÒ½{ôÅü+Bûljëí{g+ÚÝNׇ™ð›ÝbóÓ6›Ç„mEßN[§®ù³o.®5òr&ž åŠhGÒRòö¢8o³ ‰··áÍà0”瘱¦&Jû ib, £ç´ê£änPüMÈþ+è+ÍeðGZ2åþóð;KírIæ9i:ô­eÝxª†bL§pä©Ç;û£ë'îwÒªHßj¿—’JÑ̇ÃóäïßÀL«àuÉGÛíÓÞùЛ91SZdûpµ•à•he\<´½uçïøœ`þu-Ü͸f›·îñPJËá¸æ¾=FʳÖÂϳ£Œïè<˜m…·ÍÁMÄK¢þ#©=%A/ >¯H(þ±!0Þ®ÁÉZAÁ½sО9”RòDnÆ/ÁCõ¨2Ÿ„Æïƒ›xë'Χ1èÃð9àí÷?²»el,8PvÞX—ý0´èf»ªRP‡Jd¹ËáäKéÉYù-å„2‚š7àè×.Q^<$Þ<Ôœ74Š;Ó#Ëoy5æŸeƒt”Èѱä1%GÁLÞþžÏ”7,…g~‚?"›îèµ=Ü3Ÿ«ƒnrm(“¹¸dÐt‘.Ñ›$¯¸ºü [Å ð´¾87Ç9êFOÝ÷ŸVÆÝp¾2ò>»<¸¼'¾f+r9RÚKNK‘é'Î(Ãt¦A~•Ò:N3èlݯ§ÀFãu‡\•²ŸópOœ½Ø<˜Û<6²ûwycÍ×i}¼Ý¸³-Í$–¿„¶E}H¿@ß Òmú³îÐå²HâëTI#‹ƒùryi—jcÐÛ`ÿØã\4¯ì¯ä­“Ðg­Dò¯Ó‰’FFºh çïè_x>ØÈVÔ:¦¶Ý%ä Hsw¼jðeŠgW‡>íþ«GgÔ;ûŸGwâÿkÿ0Î';Ü¢(Ôýn` ïݾJîw;Þ]æDqþø¤ÒÎùaþe¯ÀA"RcMo§€óȬµßÀ?Êš±Ÿ¸þU7÷µÍ3—.ð,ê¶¹=ê”q÷Ût„“9·”i¦“:¦q`ÂÆp‹ƒ”i° í2ƒ0B=þxd3‘¡~6“ ËuwÝñ&´(ÿ5C‰‘}Ë#óô£4ãm+e…Þ‡#KìÇß¿êk÷#e Òh ü\´å´ä„ì%ΙôÌŽ…ÞG¦Un¢¾?X I·zí òsf´® EҌȆ£ƒÆÐbš '}¢‰ ÿ˜hj}?â8O¸” ©i`à”4+ð”Ó&*Ì@Js–½'eGCkÇBŸ¢L`¤3æ…Úú» 欽„š,DÎ?@=¨\³(¥/ù>UµGÍÄm ¤M¼½q|tÒ*?´õKúžƒw¢÷@÷ñQe Ô3 ”®9'唜jó^žÇø5´È{úø\ ÊE³Í'×?Þÿ(msà,dà…ÄÞš-ಙùwhf . u”$FºO(ŽŒåoø1%ÀÏeÃg·é¨Ý¢¼sndø_WÊ µïɃûGç§|ƒñ0™<,µ4‹üè˜).¼è ÏæìÐæ5p¼!ô>†©…>ÙG‘á]=¹_§kÜOfÉ,xR^-¯[u³ÞÒ%ð¸JÒœ”•SñXøRÔï$úúMˆýÏ“ÚYdò„š¡5ãi5¯—ÕRK¦¢…3¡¬yô²LÒ-OºÉ1ÒdØš·€RàoY8‡ý{ûξ gœ¼+ߤÖAráä8úìô×þú—¤Õgú½¶EÛÇ@aʸàtÐX.‡ß¹õÎûƒ|Ý+tÙnP`ÿóîö{ô\+5þ4:=W]çÃáë!½þX§×å¾T@› Þ?OÄc¡ùìÓàöftÚ¦J˜­i0W²Çé7Iä/¬ 4‡&Ó×ò‹^…7ÕÕz^–¡õC•ä²ø$<{;¤´§•¶.xãïõ9—ÌI[£©jø›½,¯à?Ó¤(ø#®Ôä Éþ-ú§~§ûx²¾”ŠÚHfK|PGf(N*Ïg)çÿ“õwS:CÞ[7ó¿Þ?*¢³ÆIîîs š2fo`ÿÚ}¾FîIw®»üç÷¼î»è{<´à"i1 ‚Î+³Ì²ul^ÓÖ ÛjëÿsttÃC‡·Â?ª¢ÏϘ–vŸSÞ=i EvŸý®Ÿ9Œ÷?’95¤æ'¤/“–sâN8óËÌP-¬†”›˜ŽÛ~6£ù5,-u™øÍÈȨc «ñø6”Ð{ãj7ÒzbºnŸÙz6ÅGkxÞ7Î.° ½•QâpÌxʆ¼¸³§Çàm“§ÑKÛ›Ããz¹I?Râ.·~³,’ÖšM‰¨'FÙÀ67ðßE|o9\o½}Zfû›*ÜÿÃïìrbPBÞŠÏöV½JÿhÑ?)}!¨f øã>>­3þ̧™èÓ¸h÷AÑ„Æ_9ùÌu»ü±Œµ Z_>WœvPxÞÞhBê°Ÿk ìîÈ}±éø£Õ Å?þôE0uíYJÅ ¡>oèOê¸>‘ž½7 /¾RžÅM¾K×Ñî¹hq¸_JêcNücÿónI› Ü“)°ÿG60W[Z7šÂËÙ{Ò©¼v”²› þHhÔøj;¨tU|~\ríœå]p_Ùo(ˆ²BÅ{Á?#Y,æ`Œi<@¦I[Y! ô-_g¿œEcÁ9.ðpOrþ ç?{à‰–¿×nj¿ƒ>3 ~®r'”Ò ¿•Gkë£áýµåg† l†'|5õHªòÍŠhj¿WÞ3 }ƒ^R+ÍdZÉ d(¼§G“9ú‹fÑrPK‚dÈ.¹ÂÐκ¼ÌíÎÇÞyú´‡ï{gR@k¤‰ øyÛ€R±ò€a¾‘¦ÒA›ÂI ©ãϪyd¿tÑûòW`ßÁy¼”ÛsAïÙ3Û/¸¼GðÛtLÛ‡ž?ŠÒ0¾'}t™ÆÓ®2Qªé,í©õ¤“ɲF×Cí+Ë9[ðbD›l-{5¸½‰ÑÆ{F¦&æE.a·óqùÖ_Ž‘Y#i9ݧ]tVÖë:CzKm Oy«¸”y9bŽmì-< ÷8wà1Bê‚È×ÚÄzO«é@É(;¥|¼Œ^Ó™þÉÓÿ¹Îàð·<úô“X¼ ìÒfQ~DYÞYñëïøÒêÌ~Ç?R:áþ¥8ðlî&·°)bNüc½¯Š»ÑíãŽÄp>mw“½¾mnN{Ñ^\±‰Ì[ŒÿüÎ&ÓÙ>6gM^ÓÉ ÛÛ~ÿsÔr¯ÙT´ÇÆGŠ‹CÇMU{Ò©æÎ·yhˆ]b?ƒÞ§ãú‰ÙœZN4Sçº/¨£$5<׃Bô‚›d‡J}žéhš±a(ï¶;4ü3]C’ ¼E.„1щLà)¤¯( ùPb•0¬_rÓ÷«o£ÃÎÓš µì16¿’²1C»éð©m Eµ4ï£ë—,psAÉËQ (ôjJKÃ(e K¨åÌÈ?i!-€{,@»»“3£·©þÁýk#8œÓ–‘‡{á§wÀÏ£Cù[áwSóDJPž[(³”»¤Å£köOó<ÔëWqœæ±ÝG†W" nÂo•ÄŸ¨ó>bÛÁ¬G¢/ËQ¸"ÎÎøGb:dŸÚï©S(þ:6EíŠÅM¸æùAü|èÍ×кëYOlAÞʽ‘ÿ¯Ò3|Þ$ükŒ‚ä4ÈìÿÇþµ•Ý65¥ø<‰=xæ'0KZ‚Ìý†ûK^ý Yü,“ÔVÚ@ºKcõkNi¸ûîÝ/Ãíßk_oðÝqw½÷(­”¡?l.-e¡ñIt8jYK{k%mÝ?)ÃàvÃÅh¹Èyx ¯€¿õ£ à¿ß?Oèt5wm$ѦԛÛÚø<[>÷gÒŽú-jâèpÛ~”¸N4îVP“É$ñK~I[À,ólMïº|0 w ÕÅiÙn?zèo’PƉ¬•Gsù‡ûwéM¬KyžfÒ¢ZGºHJÞIñi¤Š µ ï×ÿÞÃYàŒ î™ÈNš}ýŠUN~w­[ üqÐñVŠçk‹¯ç»ýÝYN¬O\¿ýšï´[Ì^‡wܵ›m*sÓâ\ð0]lL{Ç3->ñúU37 tx‹MîüŒ®šrv¯“ÇÝakÐA»Úæ¦ßmñ0¾?שþ¨P¸zH˜ó‘€[P~Šk{¶@QvÚ|tÑö°IMï0”wÎk2‹ª7ŠÄ¼z×óžn:‚QŸ†bÒmkè{ûñgÎŽ€?cl¥'NÑ)9)rôN8Qnd©]Úãí?8†^Ù¹n²”8þ1•jCåÏ@ñ£á÷²Q>zº Ïi-!o%%tœúSD´|¤iõAþp½Îƒ·V3ÜBßÒ˜íiø{H®%—„6¯Gm‚óM£†8c÷ìC£¡>•ȉm^Ú p1o\ïúU~*MßÑ)ŠÃ멇 2;øWä[á"T!àIqé¼}cë‡úþào¾7n!{tÔ :îò!´'õLÕlÄ—á ÷mQ(òH^ÅçÑúE8ïqÖÃMûa¼‡ôá² çD ¨œà•^œ7°í"ÊÏùŽ$ƒ%ƒ¶„>à¿8¼ô‡oŽWHÁ%à±(¼¢¼ËàoµÉ´¼5Ãc7ÆóøÇt‡ ÝOJºrS῎ *zˆg £óbüÞç!î¼pÛB«–“ þÏåP¿ÜR†H]Ô¨˜æÓIºX“ú[‚?2IÙÏá ýàǹ«³¦{!öz`æ‘÷ìÜ-êÊÕx:Íæ…2@ICøÙD­©9ô„Öšr•ËñIg¸GÞ ÿH†ÿRs¢wø£ˆ¯½ó+FoUPQw.ÎCì Ê/7%¿>””RXZh-ݯ.m$Ç¥©ZU™Šƒ»¡5áøØ;w“×ø^º‡àùÞê@çùíCy$³N…C~­Ae´¹·žF©Sd¤þ"÷å;9 ìÏ¿cÎô¢¶š}õNÊn^ãl4ôVóá¨6­4ƒ¶G‡«¥Ô§]èd]¡yõœŽ”òFÓ{¼$°~â_§h³=ú(Ø?F8ÇÍ ÛI´2EÅèO§±ýod¾s}§óáæñüóý«ô±~¦ÃÙõ×ã´Û%ã ” %6¤3Ö/ùÿï(“Ü õpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run011/bold_25mm.nii.gz000066400000000000000000003016341323370031300254220ustar00rootroot00000000000000‹¤½w˜UÅÒ.^Õk¯î “ó09“3L†! qÈÉ9çœ ’3JDEsG=&PAE³Çãç9ý½U3ßý~÷û<÷y.ó ³öÚkw¨®zû­êêÞC˜þ/þͤYªŽŸÄúó¿ÿ P¤þ]þÑËmÿç7£äît;<Ó¦êEõÿSmzwÍoÐèÿ¦]ÿoÿþ§ÿݦ…¥DŸ=[ùûò3ÿó¤Ü—Ò'ù'ïÿ÷?¹÷ÿ]ùojÝÆú7ŒÊé4 ¥ÕŠë,šH­©×!ÔŠVP WèõB:Gõù Ç«o¨-í¦†œDQ´—Np#nÌ1A(‹;ÒZ<BÝi-·æé¸N³¨‚§ñmxºëó4âp­¢cÔƒ¢ñÔyzŠÓ ®C¨„÷AïÚrCjŽÒn§aøÍAëG ¤Ïé5ƒ“¹Ý OñþtÈyÝFM¨¥ã½QÔu6AÍר©yž_¥zÅ¢Àk6Ê>c¢!Ô”ó\3—á ħæÛÍæM:äÝFyô%u†|·à·9>¿½éLÅ4£•À5x GùsèIZ„uÁHÝI…”KE´„S{z…6SÚ™B3Ïûƒí\¿-§tû“ͱQo¬yËîsï»§üæ sµ[¶~°™kÏéUó¹wÃûÌRMŒÅE^È£Qb>Z1cW€~•¢ÕyÐŽFË}´ê@´†–¢ÏÐëBÔ;ÉŸe¯û›üu´Œº¹'ìNwÍ.¤êü­›â~v¹íé^7Öí²¥n3¿Á‹í {›»ÓM6­äKöªÿ$m¤64zpˆé…ñE“¨!äЊzC3p§?êmŒû£ÑŠ»Qëh´sÝåÿàå6Ô‰îpŸ[ϵt 0Ž©.Æmq_Øþã½ö+—âÚ¸xþ=ïeû—}À¤SÊœ1­)¥£ô÷ÑÏLªKwàõÈ7z8ˆvb4fèd*zÞ º-nÞ÷§J}ÞO͘À J€NΣµî€krbè9:ÈðWân8Ʀ/,§®"QC ª D|6÷ûc ³pŠÏ”ãóÙx& µ%á'uE¨-Åàé|6 㔇‹Í¦á:×ѸÎ@›kàN<ÊMÃèÕF™¡('­ŠÇ»aøD,t3¯Cñ‰Xü„ão^E¢ö”œ¨w’оÜ‹ÄçâqU ?eç@ßôUœ–Ï©>Ƥ%>%¶™€öd öjÚéC |Ò¢õY$öjØ"‹ô$¨÷S(¯å§Æu8ÆU¤’L=!‰ö('½{‘nR?” 9.Üı°Å.t‘j+Â` ïñ¯TÈñhE?Èh“ÖPNÓù6H=µO¥!üà­<w#è ùš¯ð"…R?§züOSœ §¿ø=:LŸ—ˆy²7Ÿo32ŽÑD/ÁÆáhà þÁìö³Ü?I³°%œÄl¤ûì»3F} =t/°+¸õ7êÆ×!íÆT‡ßñ_7§ÃƒÑGýüÁÒ>šÅí”»Y°åO|¶7uà|ô|Ðâ6Ú†1/EûŸ¥a|VÛ”jðHÔõtz0,l5zœé%ã½ÉÔã×­ùšŠÌ{À«l ÐìÀ›6Ò>eaDšs–kàRWi®Ýn¡}Þ(<õ¤ÛxÕºÜvA¾¥°Ô^@âHåY@…Ü;ƒ ‚†¯µNæc kcLßÅ'òa ©´>ðª?Ô.ðÓ'yöw›l{ÛG)ÂÙg?õû+€¨]Ýy{·ûÌ. (®\äþíλMÔšw¸Én“måvð»¼ÐN³cÜ[ÝäÒ~Ç~íŸAÙí!¡ž4ý!‘˜ š¢–Ös Ñ˨‡«©´sU{ÌKÍÐÆ|crkàÙ.wÓ\}Ĥëîr·¬hþ1û5^¯êÐ5ï5û›}ÐÔ‚¶ÞNñWM ô9¥U` jA‚ÉÀþv¨¥j€. §ÿ‚ž…B£3Q_'h˜ØxFa(ZŠOï¤U¦o`´ÎéSip²=,7–vW †¿Ïģ䞘­ë(nd G©eÆàÿô(ô=–”ý»ÿ 6Ea~Êý…TÙs¬ZyžOÅ;1°¨P\eá™\Eào]ô(Aí.å×QÄHPlK†D¢Œô«&‰…‹Ågáž`¡ÜO@¹QŠ^áx¶ îÄ¢ÔXíuê AÙIЀàF5”˜­¡ï4Äøã©Å«l<%õ†(FÄ¢Ô|"ú†ÿ-~b™ÃPŠUÙå¡ Ò¢æÀªa´eWC9#aÅx¿Æ .ÿ†1 Eù[!é"¼©¼ ûœM¹,h}”.ó?`"Ñ ô ͇uˆ´Š)Ïñ \…B‡ ùO^ˆ6…‘úÑuhsJ¬òï¥øýä6¶%sAgð«Y¼UGâ€É3£Í|ûßQŽô 85|ÏÍøg‘[.àOx0ð*¶ÿzËYd¾•Ÿ1¼l–ñÛ‰Ù(”Û³Øf[hû‡èg9$0 ÖûЬ®OÐ%Ììÿ€FÖ£þÑÿ»yÏ÷^¹™?Ö„Fq[¯¯æV°‰Z<º:‡ó€@“a}ñ~.°c Ù_ЦF°ÜXîƒþþïBWàùfдZxN®ä§˜¾¥ó¿½)§IËÀgíi”—Èi®Ž«çõƒ¤jÚ¹æ4Í÷†¡_£Ž¶@ë®°„|Ìð³€GÍPëBò8Œç²0Ë?Dëé«kƒ¹­ ˜oS ÊéfxN‹/ùÃí¿žÈ±غv€=Oáæ‚}ØeÏú]Ì=üXйêÁ\WÊ÷Òzó®wÙ{Ü´„¾Ï¡3¼œ¹9Ú߯–:¢E·á½"ôd-Ð3þ¶C[7áݾô8fƒÁx"Fûsì?ümþBÈ£­;eïrߨµÍ¹áΞs»©¯q#ÝFÛüê#^`gÚ>n­2µi1¿`?ñö”`;r$øUàÄdHtj«@kf %vcè×BÌ!GPë´s.óÉáR¼¾Ë]·¡.Ï-Å8Fº4·xÕHtÔ~ër\W7 Vý ø•ï¶%3Àç"°ƒèÜ2h”pà‘ô*O¹ï5lòWÒÞïÀeÒ½iÀÉP2æKÌÛNFR5ÞF5ÆÈ\óõ¦xý€câ~j–xõX{#JoÀið%‡aÔÒËèq[ôv,¸Õý¨½ ´û0½„¾ÄÔÃ³ßøÏš—ѯþtjr_ðô0Íãvæ ?Ä-1{ð&ô ;7Û‡¶o˃~ ¤‡1ÏQo-»C^_9úÂÂf@Fb×¹Ðe™•ó ­-Ìü î­S~õ²=Šö5æF?^wØÝ@ÛÀ|KáÖzBv›{%ê™/Äß6¨}>p$ä6š0>þZÜëŽÖoÆ Ð:º-jC¯aÌZ(;˜8ïw±KýÆÝû•Í´}ì 5Wm;¼ä÷0'ø«àa›ÌsÝù~úĸÀMï/Xm ÏEžÏÃÐþ¶@¨e`Í…É~À«\EÇYð¶áx͘ëÆb.{’^Åß.¨w´?×~åïó— …ÝÝE{À}e—SƒsÝ/î·‹ZòN7Õ­¶mÜVÌD³ì;ü*þà>g¿ðϯŠÀ¥ÚÂìƒÞõJä£ÎRàs4¹£&ö6 ÷¶(^MÂû‹hŸÿ?‚ÛB~÷¸OÁ¯Á¯ºR¢ËrûÝ×vJ:e¿q®—›ë½î½ Ÿña“ ºƒ¢Oš&° ,ô©?]QÖYÖE-ùÀ‚8ŒØdhÓ E‚ ”ÌiQÐÉ6JO´Pla-?8Vu{ðj»k‰„Á[>Hó× ””Ø3}}µåºÐ¡þŠQ°ý®ÍXØ|~‹¡m©ZN,4§ÒcT«Ä'‰á¤ò+ÂQB.ì=QŸH…®Ç@÷`‘Éhe.ð"NO >“­^X,ʯƒ²Åf”E«ß2ÄŒÑRk@¢ô~bϪäWi¸Ö;}6 ÿ OËÆÖÇS‘Ê£„ãe¨çšV¤â¹ P*£§Øå[#­„k –FhßÊ1ÿï©$`̯ªãº”ž€ýwU¼] }‹&õ~ ýx²YÐz+=Ã(× ‡EŽäþÐ]y¦#xÇLž«=÷„nGk,køÙ$íã80¹P¾à¤ð‰³`mÂcÇѳÀ«ÙЦÛͿٯbÕ,ãoŽr'Ï|6öšÆ¦"xŽ7ˆhŒë:Mñúxå,sÙr¾bVz¹,:s5wälø†Óa3›é}ô² Fp°ê ~[C’÷Ð[À«›kÊâëþSæynˆ¹q;%s©/Öp„fr'ó˜c=ha6Ÿò¶âèåXàô,à~"Æd0ÊkÏ»¡-)Á|òë‡:&â)aTéÐï ømëº ð~ãÚ–ÞP~u ¨SÈy.ÓÅzSacísîõ†C®bÄú‚1–Á6ó «õj¤÷Oð°ÙT\ƒÝ¦{*DïZ ­°µçÀwš¹ÒiUà’_fWû5Ñîlû£­fûÛ³bžµw¸îüÁ|3øw›lê*à¾`®zW¼_M hò&zŠ—ñpÑÕG ³¡÷a•Ò¾¶èù*Ì›ÑÃÈc%d> õ¾Ž>€=ŒògØëþøƒk©Ä]°ÝÇvUçÜx÷³ûÂm§>ꆸE¶­[ÍWxŠo¹;mðj+¿l¯ù§Q~kÔÕš«™N(s´§ p[üÁ¦@ŒRÌ#ùÐð¡Ð½`z]ñºîïó?ör´s |Р uwhü*Émv?ÀìD÷Ø\ üÁ¹°§ï5~uÌ$ƒl ¸Às@êxhG!äú-Þ¯ k¹½_]¨í¾ µømì3 í艈Å5ÇóÒ±…}4ÁtL$‰÷ΤÕnë¨XpÎ~lR ¬‹y dœ +¬ …e ·IÆ8¿¢Ì% xØšÎk(¬ŠIE«YÇ?(?ÙG E ™™D\‡áé&êUÆiTH𪖶3¥%i4M|»öêU«ŠˆÅªg&¾¡ _´r¼èYMm}˜2¡8ÅÉêx/ òˆâÓ‹{[a–©w„w‰—¥þr2JMÀàU(J¼tʯb”+9eOÉÊ÷„ÏtÆÌ€H›R _1nRŽD”nÁÎ$î´˜.b¼¦­¾ –ô eÀöcp×fá¥=©w†e ª ÛyXmu¼+¿ º-òœ›} ÖªñöÙ˜§»¨ß{ ¬jôZüï‘ô<ŸÖ‰ 7™ÿp¼™c¢Ñö›àÉìÍg‘•gnÐô“âÕ_4ÀkÆCMœò«àW]Yxì"~ÍlöÒXÆåhs'NW!¨€ù¬7ú—£üê4Zb.GÀ¯Êø3H±1°è}ÿœ¹È5ðün çþ Ì÷ÑîbBÍn†v‡ðIØL>¸Vhãl¼¿ cY „{¾â^XLŠçÑô;}€9²;ꘈg@² …S0~-ñLàO]ó?‹×å46ð²ÐøÕª0ϽŽÈp;ßœ¥-^0à2ƨ/zßAýAXÊh›˜I€k.C-™ä]´c7€·l‚²c”›áOaŽi ÖKKà¶^åñrí÷6ÄVÀ šs¶…k<í·6wó}Á·m|°kÏ÷Ñ9ówÖ{Ó4@VÓ“¼™%JT‚^Ά~´†ú5k-êB öcþ¯…y«¸5½…ÇÒ ÖÒןdÿîïö—A{:»Çìv`F›FýæÞt; Ó=n˜›gÛ»%àWãí,;Îm®Â«§ì§þEàDKH¨„“Ljí…>×j]o/ÓøºXútàÕýÐç hÇ<Úá¿ë·c‰0np?‹¢ÜZ|6Ô¥ºîK+LíˆýxU¼ªG¿¯È€š|Nœ7­tž/ƒþ߀]¥A‹×B–³tÍ!óì@ØËha å01.2×7G;á©ül¥y¦e`”F£–Ð\·x•Š^,Ô(y=êËË¡2§gb¼‡*‚Ä£Æô´zRÀ¡öвlKÄ+[ñ#Zãã5Ôzßñ›¤~hšr˜(õ“ ™tEy¦å&kÔ+w5â%>^G`AœÆs*±-JñJúVC=ÐÔ$£(«‘½j꽉?˜Wåß%(g‹×wê ®BE?Á±\”QS±Bøb Åd‡Wu«»5º%ì*¨Oä(â‡Aã–ÚWiÍ)³¾êJé8üšŠ™ æ¡ü…ö÷4óapŽD´i+½À ¸' ä>4€{@å™RZ ¼Z¨ñó¡4†wòkõè> ~•¤l ƒÕIŸNb¥1É(Xçcü7¾]YèÓßD+^…@úðM3‡åúß|-¾zÃ1§5õÒ¹‘ÑúІxýÀ¯D† ù¢Ùäe°ŒÒzô±ü* Ö[d<.…T)ïAí%ЯÀ«.ü.¤Ø˜jð»þóÊï¢úcñSÃ|Åùø|Ÿ†mÔåúÔÌ®³Pn6î÷EI‰¼C£é!Ü“>³ë*†ÉŠZ¹FȦèÚZ!ôñcj`.i¼½õ¼ncí“öQH³xU xÕeO±)æot§7­û-ï;¬ú4ÞŽGýí€ 3éÌ)sa¿Ú û,ÑdÞˆv4À|¿XŸ|žv¿âñÌøƒ}ì?ÖŸe¿¶ ípû ]†Çõo{[ð!¿—y˜Ÿ®¶ÕƒÅ®Ÿ Í·àW¯AÙuô¯ç@¾(mêÊÇHîCKk;£¦C°ñš¸WŠ–6^\„MN…'S?ºýÌ?æËºa±{ÂîwWí"èÓ¯n€û/÷øU{¾Óum'·üj¦g§¸]6Ò¤Ó¾d¿÷Ï£ìlô®%W7½1žyЪ|ÅL‘ÉtÔz›ö¹7¤¼-éŽ9³x¶Ó¿æw…?Ø‹¹6Äå¸%²>íâÜ!øƒ‚WW‘ðÇB²ßyϯñ—ÖSdà5S ­ÊÄ8×—¨u*JÏB5EÕ³èkŒ‚Ìû9L7Œ´ø€2OõÃL%6u€f˜Ò€ÌÝ £9n—k¥ìæm <X¦¨úÀ«¥¸Чj¢–‹‡ÖtÅhG“ÄCÒÑ×£h‹¬‰ êäéJa’Æ¿âÔkŠ$á…™út¸®&ë;‚]Í`ý±ÊòÔ—MÖ‘ ZŠúhÝ.@ÑŠPqºb®Ü& å¥ëÊ`¨²¼\½G©”¬ŒD¸Sm]Cß0 s´ !@¢"´:ª*Þ.ü±–ÞOÔjhŒ]¢h±ŠhNñººF¾¬²Â õf# ÕÅ4hw“ðª ðJ¢ke˜™ªÁÞ¤ýËà±%ò÷êAþ‚g¤t–OïÊç¶à!˜çÆrfa¦ð¹àÎQ^:™&ðªØ5Xõ8Iú;3ïEØ·øÂ`<»kü*Oã¿óbmï.SϤ™%FðçkjÆ7}€“à©ækhûM6ú9µñòxPÕ3^¯WÇg§ócfƒ—Ì‚c‹`“ÅœËТ®Ð¾ûuæ×܃ð 0²÷Ã,‡Ï›‹¬ÇÏùÏ™ñ|oØw·÷E÷ï¡õ¼Êä˜{¸9J‰æg€?¡ÜóõLôIò3êaDúÑCÛ>èp þ Oèo(e(ôv*~š¢Ÿ™ÐÉ)¸Ê‡—R¶©yee…æÞ´©ö9{Ú_ÌY°¨?MwXß2»Õ¼N'½øäÛ°úþ|GõBr%ø;ý‹d}p”ä*—ç +ÐÓzºž_€Ö]†')™™´-ðªßÉn^­ të\;ÊÞKsÁfmð¤ßÐeƒI/>Xä y?=kÞö~÷^S~µxµœGi>FŒÄ\àCÔ6 Òk‰6n‡e­‹ë -Ú ´GOЋha{È| ¿È~âßíϾ—¹GìVwÙ®„v¹`|Ç„Ÿ·ÑMrÛmg·š0ÅαÃÝ6àUíå‡ì·þ3è› esŽtzA²þ· î‰Î‚N õ¬ALÆs ú*ñöytÒÿÎ/â`ÔàSá®9øUWŠÔøÕ§v®ÙŸ]¬~Õnx¯êú`.°}#ù3F¢êiðw‡ÒGèu&ll'Fy¢ò†(Ô9Š^FašoPw»¨·Ñuѱ¸›Hi¹é诜g>mrÇ\!ì9ÒY8X¡þ`Cø)³añÂmaÌú¨= —è|ÌиS6F#®e-I8TeÜ;L±#V­.÷rÐò­+NÑ+¿QF¬òTŒ[=eÑèY ´0C1*r¬«ÑöHÅ’e‡Õ«âe”¤Ì(ŸÖ¼Á‡à ‹§³:ÑŠ]qºæ˜¨¼K²[ÚëJ  G]´£¶ú_Iš‘!msøLMÊInC´ânˆò«åaŠ™-¡M” &w…ì+ñªþ åîÚŠµà÷±ðÅ£ý^u0—“Q«Ä1ês5õ¹z!zàI¯2øƒyžÖ×÷—ñí0÷GÁ „Ç@ú‚W‚?÷á±°™G&ÑÝü¿Ês‹a÷¡.Át_Ø.Ðàmö+¼ì¦“ozoÚÿØ#&6·lëi#3œðÇnt}Ë‚µÜ…¿ó ÛfÐÛ!ß÷0#E)^µV/vÚx=ã®ëƒ‹Lq`¨zSóhx]±ò `»ûË5’äÇl¥‘òZßàªRM\Ý£^^þdMN¼À,`E”zl‘š¥6(YÂI*cV²¯,, 5†[JѨE®fäi,=©Š5FBÕ߉Ð5Ç(ýl˜²°pÍÈ’øU m[¸ÆÌ„¥UÓõ¾,”«è#¸˜©«!T[ŒPdU^DZTéAJ,)Qckâæ¨¤ž ×Öûʲâ«VIÃ1b`Åë5ß ÖZÆÏt¤Gà_uUÌY ßð_ô¡òÌaÁ9¤¥ké4ƒi±`{?Å]1׆*.Íç¥<[¯GÀ\Âc•ŽÄ¸I¾¨ø€½PæE’xc X€ä;.V6¨pާ¨_¹Ý›ßy¹Öù%åó‹f”æNó=læ­÷&¥yÍy°æ‹Þ¤^^±WÌâñOãÇÍdP¼úοdŽ—Ê€äY¼ÝŸ4}vðJÓØ¼ °•_ý†ÏB¯¦ïÀ˜ˆOòÅófÍVð¸?tø#ÔÖ óìHhs=hZtd*4B² Šé3ji>á×1Rå´0pÅFØì#°ÆLð«LWÍë ž0Ê–™3´Û­}%uC]]uòp²•FŸçп1¿Ì„õfÀN`$à9‰M—(ëY îD‡ž7ÄØ§ÑŽÀE¿¯Ýí×Ǭ“a´Ñv,øÕÏü°-p)Á³~Gøƒ;ƒ­ ÖsÝø^Úk~öþæ]6õ!­%ô8¯àÁ𳑅q[†~ÈúàP´¯¶¾õ߉^Š6m…ŒÀÜ÷ ú\{輺æöÅnåÎÚ;Ý{ð€WÃܯîàUCÞáú¡ Á¯>çùv±å6ÙSüöp³K“|°™æaz`Ë ýf´ýë‰ö,@­ÓÑ߆à]óÐÛS¸;5Ï Gü[~n‡–žtŸÛ(°×å­0 Ô!wÓV_öÛ¯Á¶ºéøôÏÞ{ö{¯&°…þò^7%šyÙýüZùU*fqÉíh‰šc0Ã)†§j: õµ‡´eKb‹’!&¼e;Í5­C”I>Ã]®¢È9ZX~WèE¿’ìÉBÈ.BãÖ5Ư+F…¨?xÿ'(N¥Ve|Fh¾S„23ùlºr¯ÊµÅ‰¦*'¼ÊªÂ™èFŠ¢Z4ô¯†z!º>ØJs Â4rV¹N®ñö]ÏOÕ§2ЦJTIÐúªéx‰Yƒ jŽEjNg™–Pÿ×ÅomeN‰Š°)ÊÓBcÒ#áWq·“h{@ŸÊR~‡™q*ìm³¢g Œµ¬kÈ:]9ðêØ·´s3l0”?S¦y÷v‚ëHÍ;໕a ‚up94I°® ðª3/T.£ñœ¥¹£aЭ9ô,ð*U}ç#ô4tDfˆÁާàWd>Ž6òK˜a¤Þí¦¡©aæáTßÒøƒcXÖMØü„6|Ì2/|Oµ½ÆÜÍÈØýJ=¼f^ÍeÃçÌ8/…EڳЃ&Ümn Œ_lê 6Û\èn V}¼:O«ˆ¯@Áš~óŸ2ç¸)ts˜Y†æ=à}&Ï<ë6szx %u†í̇MÜÙ½ežÆ{k!ƒ ?ø} »+™li Ɇ.LF-M …`<íÍóÀ«šëŒÀ{pã_¿~UË%»¯ ôt¬2—WCñY<™ ^5†Öî6ãg(Zð/°”%Àû4àÉ}˜í‚€tRÏsdÝè¹Yãï™t ð˜_n‚_­¤<û©Í¶Ãìô_§46xÑ/3ññàËÁf®€¡óæWïuïºi„–~H/¯†ª¿"Œf5l »ò˜º°ç:hÝ1ð8‰ìµÒxûXzã>Iׇ:ø#íUøƒ €rÝ9»üj!Eð¿Ü\÷{ÑmÅÌr‡›¼jå6ò;¼Æî?¸ÁƘÚÆ÷ë.¢%s#®~Õš7-‘œÕžç4ôw¼²×ñhÙNH¢Z ùýÇüýÖ\„8é>\Ë­–G¸àÆ—¶;äzLãW]Ü”÷ƒ÷ºý—=~‡þPà’)…¦6ÐŒ•õI¥mêٷ«Ì]+áó.ÐK¦æŽ´ÕøpKŒÍHÍ#zn4CcU·çÑ:·Õµ×XÒYÚ p.4; íî¦ù¢•ñ«:ÃDµÓlôô°20ñ [ î4EaL©OŠP¾©V®x•ªÑ´Å­tÅ¢PÍ ËÔˆ¿°¥æºr ŸÌѬÑýt ܯ[•Q£5Æ+ˆ­Ê™ˆQ«MÓÏ„©Õ†*žTænÕF]‘ê&ëS‚põÈšL¼îaIÑ–e)¦¥¨×XÉ΢À(“ðª2ÆVå:åWQŠÂÑš‘=[ó<«áS!•¶ê¶‡7þÆ:LóñÇ*‡Ÿ0ÞÛ(Erhs4‹œzÑp–܈ê(§+-äR^¤=˜¦“Îý­‡c<‡E‰?Øvýø•Èáhù<Œw¼ò«ü8¯Sl6!&ÂÌ1‚‡·¨ÿÍLÓø›¯0öäx¥Üß$¡®ß¨³—ï(~ÎàWÌLO|Õ`ŽàU>žï O÷âÿ¶vo åx„M!µcð´ŠÐǚа0þÝÒœât<±žjr†?Ú‹Þ¾iÒÁ;Af_ÃëoO<¡©š² ÚÕHó(ù¼•Y ¤W…õáo+<3úÞõÖ~5м‚Öô u6¯ò«åž45pÙzö%{ •Ãy˜ùý™¸`7›gh›7 ãù!Jè‚¿X3"öaì pg8zU#!·NЖùtíí¯QÙ; ãÚxfl¶ Ðsf3äÂB.ùíZ¿¬–ýÁÖ´ƒíYªfžµ:/xÎïn.ð#Á×­léFñ zÀÜð^^5„-o çy%°±®æ3¬Ðœ‰nЕa^+üNBý›ay¡]ë0¢cè°WáW¹4Ôooù{|É.s÷Úíî†Gáü“›é¾w—Ý=T ¼ì–Ûîn¿ ~µÑös»lÐdÒÞ𺵠£mº W½‡M5­»æ-H>C1ìd0d³üªfÉf¸¾Ç¿áwâVàT‡Ý§6ÌÕq[ ©0ª=À«Þxn¿ýÈE¸Žn>Æñ3ïyû«=o$Nµ‚üÀS¦H£4Я0 ¸/k3ðÛ<ýüµHÌ*3J'Ìd‚­¡CÐa@Gi¹¦üjÝá¸õ™ž ù šÓ]Bå`iõ5^£»Š’5R“Ô;­¹3o _4­*T‰ºVXC±0TW$³ VmP¼ÁŒ*îTã’¡yê‘xZâêÙêæhNV%òÅiD7RËŠTÔ S¬_H8\†zˆYød´Ö%ˆ“¦Q¤êš·.k˜²>˜¦+ñŠKu0.ÝQk‚ú„YšAQ™Å¦Ì.¨ž_žò-‡Ÿ¨ªõ@ÉmÓ¼±põ [A–“€@‘ÊË¡c%AkéÄrwå—sqΟ(š~qÝ0íÛÌèʪ¯7ˆÊ¸#+¥–-òy©FÌÆR_ð«¹Ê+`5çÀ3¹;¹žÄì!õžßF¤3þà3àfÒ—¦žib¦ÙŸt‹ºòÏf‹TÿÍ_¿¹Ÿ%ïãSJö ¹ÌHÛ¾¤2¯^É\3‘/˜‘žäµ†ÀžvQ67^-–(ô¦¤*þà½À©SоLüÿ5å ïÆ@¨ÿò߆?ØXtÞ] ,píçL¹9ÏÅhýŸ@ºItF÷gÌ„ 'Ê[@G€¯ýÆ!Øõzõ.xOsà‰ä‹N‚nõÂØ4…TAËãî*1¯óÛg¥ñ÷mÀ>iÀÖÂLqY^”ÑÏÞn^¤=Þ`´ô}Ý;·AýÁ¦hÿbÚĜ ;G×ÂŒ»{€’Eª÷«Ãet#Ý¥¤Ñ–À3À«;ýºd6ðêx‡—0œ±7Ü÷_~õMðC›¬ï*x=h>ö®y_™&hé2zƒ1e×Ř/C[$osú×﯅´ÖàNh«Ä¯FÂ|UwʤÒ`ŽýÌ?è/ÆEîŒÝp)<©[nŠûÎu{© ¯‚O¶Ê–ºýüwžk7Ûþð£MÚÍçÁ¯.`fë†Úšp¼é 9Œ„t[©OÚv6-¸MóÆ@’ÏÐs¦àÊaÿª_¼êJûÜ5ë»<7Ï\š»Û]±= ûGí'À«Ö¸ß˜¾ò^³¿Û‹¦,h¥¯J5«R²I¾žä¢/›!ˉºº¿mf´y꣥B…˜Å–K!•¾¨],}?­7caŸ¡xòv·×uPæò<õ <X¯ #Ÿ¯šà:RתoÓHº0àŠ©jß‚WãÊÔHXŠÚS˜2£Hͨ®{v²•G…(¾¥jì½r- @±6UWøJ5Sò¬2sÒª²'šêŽ [Å)‡ŠQŒŠÖ¿ñ…J­ÊáŒQ ÍÒz«i¶¨äƒUÓý8w‹ÓÜ×\éI +óÞ…1Êó’A!8 ¼Š^ei®i°Š¹U×kñ£õuJYMZ«µ&Àúzè>‚0ü³^wmõ\Øe ®sÄ/°¸ýTƒÅ¿ÜE'¸9gëþbY¯é";CñTZÀEMrײS`ÑýÀÆVC?žW£-]€v{4ï+“ÖÞö»ÛMàWk)Ã~^×Ó>Nßðƒ6ÇMÖü«Ó|.¸ÞF¹>DϘϼǼk¦9`9=Íó(Ô_‚²6ÐVñb åèU~×Ð(µ!ô³WÑ– ô F¸'fƒ¡þBû!øÕ2|ªÐ…?xÕΡTþ‡+w7Ý+n#ó.×Ç­°íÜ&þˆGÚ…Vv?ǃéåG«ò¯ê@*Åg:Bï3Z¢-0W4רþpÔÛ OL^”}NšÏ°Ï¿îwdÉÄ?ä>‚×›°+…Áë>ê>¶]ðÜnàUŒk릠<É¿úÑ>ƒþf¢?a'pƒºÚèþÁõÆî@'’H$ u®¦óè£ìNјV'ÕçB Îè¼øƒ¡ÑCÔ¾ÑlðºÊ‘^¤Ó¥°–8Œe/ž¡;#QG>°V¬Kö¾ „ÆkD*ú·¬*Þ£¬¨zU¤=F$Lñ']×C4_4Us¥dßGf™8܉Ҹz‰æ½J\+[ËNÖ({¢®&ª?§xVUj\U»Â5Â^¹×&BóEe_Qenj=Í£°§’lÖ$]wÈÁøôÔ•O%AOÂ4&£œ¬ºz„µ”“9EÐ0Ý+#ܬºò²0½SÍšIH{’ cá±aºgýl’ ˆEðqÂù Å篡wQ"'¨?~7âú,e ?ï«‘6´§Uð§+7ë~Õ‚W+O‚ѽ$qI¼ê ¯ý îHüð>0žÅ`AâNE™÷€_Ei>C™I53LÚóµã«f8§â>™_Ñêëšz‹ª{œo$®~ƒÚ{-áJÄp*ßcÆz),sÏèmg»–îæ©?˜yõ†Ÿ{¸™Y>ï´ _…,ëP¾ ð~n¦»+r/&Ý +YÍgMøI­ÑÃÏèaŠÙ[vóÍZG-M!›ÁðѪñzÝíû=¤ò>¸hhl \Áxt…f4^ÕÒ=nmÀ›Wø=°‘.Ô;ðºžÏpriÌ.Û…x}rcì¯|üJòÇßÂs½ÀY:Á&š þ‰À¢b Ôd_ÍÇÓIÀO‘§ÄÛ_Õs ê@ï%þ^†OoƒuIó†À“~OàU-X]ªýÒ¦Ú!ð¯Ø Þïw‚?|$8R3דѧæ¦÷²wÙ4‚L–ÑY¾xÕ½’L‚U(¿-潡i)fÒÑ´õå¢þÖ˜Û伄‡Á°f Å™Ôןaßôï^m^³[à›a´ávp×WÛ¨Wºþnµmé6òû<ÎN^í·Q&ƒŽMoøÏÁǬ'=g™^b1¡>¤ßÒ—L\ÙÝcqXì.ÝC1I£l‡€WåÜò;ì®ÛjÀ«x/Üùn—ûÄv‡D÷ÂŽVJüþ¿¼7áž1ͪøÕ³¦ôVxÓ@õk¡¯«PîhÍè—xûz,7Q3)KôÄ ™g%¶(øÂöÐÓ?0Hcòsh™»×µSÖó <X®<ª€†¯êª“úÆ)EA/‡ÂHV$3Ö–ªý{â¯ÕÐ5»x|‡k¤'Ÿ’“¢Ô›^˜®k[+TŸ.N±¨@OJˆÐœ‚hr…(Éžø0µÙhÍ`ˆR®¥^1UëƒÅVÿ1º*'«2Þ^[3YƒÊÓj誀à•dIwV‰HI¹UÙ[ÕU^‚§’g™¦UåÆGTÅâ*ýA©+T³6$þ<–Ö+ðã&Ì®•ò„>z=3GðJP¸kˆaÉõ½“.q.dá¨ý©6÷SŽ×™vrKž¢è>šÆp1WÜoï"lW$Û£ô æ*ñßêdÿ x½ÓèŸæõšK²Ó¤€_M3øìç#3E9™ïiçÿ«¯iüêg*õrÔ¬~uÒL÷¢õ™õx¬ÆÛËQÓa e]Ýå.ù94ãï8f¹Nð3džß÷_€½JŽÞFªÏ=ü‰(a­v5G¹©ú‚;>9uŸ™Má’Ńèòy9f±<ú ϽB™ÜøS )ÆXöÁØ4*7ÓódšÒe*4—ø%ÍoxÏÆÛì]T=ð«ºÎó:Ãfט×i½7Èó6Ú× xÕŸ-Ò̵bü É8À¡ßiš‹¿}ì‹qÛ{ª­ç­tÄÈ~€~äë á–Àßànñ… Õ²?Ûúv ½HÿäwíM<ã77ò¡à“öרuâ{é’îw~Í4†¬®ƒ_ÝÎcÔmŠ™c)ÚÐ6Ù[w|K;p¾¦ÆBwÀvÇÂ×~Rj ë믰ïù‡ü•@Nî´Ýæ>€?˜È¿º ÷»»âP ïtƒÜ¶+øÕÇ<üJòÛ#M-:À§ìçþ“èS0 >g˜¾ºËcZ±ØX®xÕI²mu¿óLŒÙQŒòpŒûº×¿á·gá«ûÜgÖ¹¦n$ù‡Mq‡€_]Ѓö;x‡mÝLXëOÞëö/{¬*3URàUÓFãÁ­06cä²Ð9Of(úÞXu{%¤=K}³t]û-Ôl¡îÇ™¬¬b?­5c#4‡j&muû\1l;š74°7°LÙIK=Ÿ¡©æöÈîêQŠ$ÂÙa&LÒ<ƒ ’“›Õ¾b4ϳr×LeÄ=¨kvéõ<”W¹§¯†f „(RHCå‰ qzC”bCºúhYšã$û¬ëQu Eid>RÑ¢ò<™(õ¢uÍ.J³KÃ5" Ä©†þÔA]qŠ3Ѻ# †bBúR¦û«©÷(~¨ä\Åêi4éðe÷M–â’¯Ÿ וÂʼ¬$•«ô¶lí60¨(õH»h–„ð±`¿…ªáþ|\‡ñ?ÕG»‰Zï¦d=Ÿa#]æ†\›c¯JÁ¯6)+§5ܾ‰ô÷66@ëÍ} ræ:Lë,JÊ<‰úÒbÅÓYÀ«øNåfwšú&MýÁhúüÿŠÏâwÿÁ?Ófz‡%7ö3 zõ¹@1í'*ò²¼æ,óÂh>e&yVñm5ì'•Ó±‡1Ò+Á&;k^h`Ë=˜ûëCKNÑkTÄ×!Ç|øŽû/›“\ ºx€’¸Ÿ?V²Ûé0¯0­Ì£ÜsùÏÐΑ¸[Ÿí› »/F¹C€Qà‡’£u RyHß¶Ó ³üÔ)þ`C [-èd1êý˜š›gáæÁé ~UÝ>aBF59Åeºš.Ðöqvªy–îðB»Þڕ„_ Õ“¡a 6൰×dõSç=U·hF½œ§2ýýŒö¢%M ³—À¯_ÝNéö;b{Û3ô ?n_Ï9ã7¿ü-xʆ›¹À«GÍ;Þ»Þë¦6ôq½ÂsyšFÔ›áÕ|õW¢—²#©>°JòÛâÝbx}½€¡Ñ›á2èc¹?ßÞ¿Z‹ëëî±{Ü{v5ÅòÏ®—ûÃ=çŽC¶»Én¡íàîäË<Ë.°CÝcri? ~õ<к|Ý|N4’Ý\ xµ ¸Õ ­™‰Z‡%škLo7𪗞¡0›ŽøWý"î {Àé¬kä–Ê:¯ËuðºãuÈ~¼jî$~ô•÷‚ý=l ›É ¼fŠôħVšß.§3d‚½É~çŒH44{=ß&7G»Ú( ÉG;ºcD$V¼‡æ™òÀ(èL¦åî0ø•ð•34!°+°ZcE©ÏC{)jC–#ªö,gIûðt¦ò«VàÉ•gBEéßPåV‘š[^µGÎrˆÕz“ÿ×ÎÀݽ*ù£UO‡¾f(¿ W&ûú"5;³úQÅ®*ó BõÿXõ‡’4B¼¸ÈªœÒHÅ!‰S¥£Œ V‡èÉʼBQ~t6N9[ t(Q[_­ ó4§=L™Y¬^Ç(+ W«äQ*·Û`Ac5Þ.þ`èt™ÆùKèïd5¿½:ôá$¬ö íÁxb o‘èõEnÂ!šÕ™šr98†Hn4ÍŠ-RÌ™LƒÀlè\³ Ÿ81Ä^‡÷4f>ÙËs(¹AýÁH<±ŸïÓódÂh½ù–™ÙFbb×0Ÿ¾bnã \ÿÀC‡.°à÷gàW¹‰÷ßTìå½$ê8‘_4£½D=Ïa+úWƒë±°í.°«ƒà)hEpȽàWï{„^§æ| ²Ë§ ~xuŠAŸw½šú07 ½< êY–ó¦nÁ‡ÂÚk~ûTàÕZÍZlgžƒ«Lúèõ2dU û§ã½z>ˆì¹k ìª%]¥Ts‘_Ó…ý/ØH{ÆîÁ“µWÙî'Sûnç˜K´xU‹ÞC-íH<ñÅÖýƒeºWî?D,q´,”~¿½–'ðdsÍ›«g(¼‡~´VofUàe¿£ë7KN³ß[ßö°Ò|Æn†ý>ê76Çùƒà1¬ïÊùøÕÛÞÞ;¦!tküÁE,»ôä„•À|ؤø»¹Éúàwa.“Ü2Øh õËô,ZØ Rï¡ù¢wús0‹T¸Gì^÷.ð*oÂûÉqwa^ÚáÆºE¶Øíà·yº]oºÝ6üj;±ßúïé¾ñЇDÓ-(FçWå€ v•kž{ ‰ìKºã3’^Ewûûm8rYënØ?lCwGUüj‡»fûB3ÂûM«-ç`€_±»ßH†Ùbøƒ¥šMÔ²þP£Èq˜ ò1Rr¦N æ®>èõtµ«šó^ª8Ð-í¯]¢B[i¡é ëƒ¡Õhw—ë¨Ö{–¶NÖ*KiN½W-ÔÖ²ñªO•·W¶²VWá$VÔ蟭ñîhÍU”Ь:ï*B×éâ‰D½+ëÁ9ša)œMòâtµ0 V^ÉÁ¢{â5C"B½RAµJ?4Añ(BKWĉ¨Ê2«©¯¢ts˜¢•ìÌÑ“­‚úé$eLâ£å¢ÌÎÿªÌÔÉÍ‘ˆÖÊú`˜®uÆiþU¬®Ü…ëZa¨¢r%·Å,4r®ÜïÜ ³OG͉mÔ—³K“WàÚãOÕ³ý ²Ú¶"~ëNzœã8Ms8{Áƒ‘ø•Ü/£Õðgjì½äÜ[z,ûIhO¥ÿxlg¼ú}÷Ášöcž—xàlº‹÷”èÝvàU"üAñ’ Îü¹™Êr>Îo|èñ Çhþj ¯Œ›™In_e{-5ÿj?a&xÿQL^Ò³8“aßí }‡uÕ_ØÁ ¼sRª ßôuj0Fbµü.ðêQ–øÒ6ÌãGü¥˜Û&ÁËjZšÓ\+ùx5xU ýŸ Tžn,¨ëªrâ[°›àÑÜ}.À3CQSÞ© |«…™´)´ú*e›»ù-=Ù uà%n±‡ÕÛ‰^ýËt„E”Û~æ+Zâ ‚v½ ¼éŽÚÊÑþ–èÏè\+Ÿý Î7sOJ¿ œ§'¬ñSØv[Ý?x;$^ïs·že'üêI¿µ~µ–jد-Û¾ö<}ÏÀkvð Á/÷Ù¸`s×—ï£GÌUï”wÅH«—ÓC¼™‡¢eÐþõ@,ÉÕ\ECõÄBY?Üÿ¬>¤Üx?­º6=5Wîw¾æïõ—ÀSlï.Ú­î {;Eð·ðîºÝQàÕ×ÍÍ^íá7á.¿Úi“L]ð«‡ì-øƒKu_CöM/Xt`v}h^)GâÓ¥˜ƒ[ãþ È`³ò«i¨y^uÄØu¦u¨ó/›á€’Ktrf`9îßeß¿jèf¡gßyoà™½¦ìr-EÁl¥ç‹¶Âg®èîÁLô¼ äÝBÏ–…x›¦©M¥ã^~„Š?O³”#쥦DÏ¿ªŽq?´Hý‹K´:ð·À*e ©+O€T…ÛÈ ¡ÃÝâ1†]0»&)¯{¿æ?E«%§©åWžëW™/*ùí)øWìJÑ5žT½Ÿ }‘܆ͳ’Svk)CJÕS>3#$ê_y²L%2Id*¶*Ë=*Ï® W Dhû£5—"\1J8hZÕ~çX=5¦†–)+1]×䜽hm®z€ š[•Uå÷ÕA[c4ò«žme¾ºî€¬lœ 3£]yE7Xh{õ7ÛÒûʯ$þ¶€ž§þAsAoA3÷S$ Þ®¢¿q7`iï jÇzžLìd×„Í B Ê£T’’zsøÛ£ÀkŽÀŽ…qž‚f/F-‚oóWxÎ/»Í›\fƉË}Cmø+³ˆå䉿ø[X仚[u‹j{u¹…žõ øU®—Ï2Œç'Íp¯šžé·¢†ž#Ñm[ì颣œîv]Ò‘¿—^CüׂWïøO™'toà~šÀmÀîBîãu¦pLÎdøŒlÇU7½É:z^ÑýàW3¡é{¼{ xÕÖU¼êƒ™¸4!º§X-0W×1Gùy_µ ¼m=û Ý i¦s —çÂÁ©zSKû <ÕÞÔð.F¦ G,µØ8N#h²õ-ýj´h*zµxÙ žû"E9åª-ÆöØLîn°©í×еïÛ?ýNöEúO[rEÁ‡ýÁhÕÊàJ[=X× áGé¼ùÖ{Ú{Å4@Ðc¼ºQÚ#'—JÎj{Ô±KÁaÿåÚ»+@¬»1Îk\Wøƒåî.¾¢þ`ow'øUmã³ö Í¿j 9q¨é‰ñ’óšëIŒ’{? µ‹?(k°3ÁhBê£5/ëÿ=¿3—oÖƒOœÏЃœ‹Ÿ¼eG£{ÔÌpËðé½×À¯¯ 1&ð¸i­T ØÒzâo:Jo®k‘©è×(ôþnÌ\±º^ײ—u«XmiåW Ð¥q¦æ·‡ mÝI×^󠞦]—K4c³õçÉʯ„…4¡AêÈÉ ýä¤2A%¢üYУX-UvÛTF½#ÔC©šW¹9ghŽÓ@ªË6‚¼õi·å)ºæXJýÀ¯úhlª4ûQhŽH®<„Gô|³Hp›)Àe*)YÜÅÛq·4Ÿp´oD†¿PO~ÉLм¯ÿð- Å«,²ú†ê{9ÜÀ¤ãúj¼jÂ2LãGÍTà•DçëŽÇzœ‚ù¶Öv ½“"Û¡é%´7léj—1Ô§Vü¥ÿ&ì5:w'¼Äx,íƒÖnà#¦‘9Â%¸ÿ|äÉÀ Ùe» j?NÉöÃý8žJ²Ž&¹àIa†-ƒŸ¥>RcŒ–œ‡\¯Š1W'™ûøMXwwê¸d=oe?eMw™.«[hg§šïh©w›ž^¬ù ¨¹z2¯åTÞÉô°”°ŸT\ƒMWhVë:”+gy,†æ—Ð;àÆÍôŒ¶9 ~;ǯ–n·é¶·}Œ®Ã¼è.¸ã~üÁSÁsÖ[‚_¢ãæŠ÷ž÷¶i ù,¢GyÔSêé~çfrf?É~¡Bôk.PqþÊÚévôe¨æÚ-D;²¨½?Áþàïñ§•µvÛ îCàUßr%î;÷ª;F%ð{¹Õ¶Â­ãgxž½ÝöuÛl„ɤ|¯ýÑYÏq~õ&É9™ˆ–ÜNœä\ÂÎ迬½†FíÃ<ÔúÝ“õÁRŒ]íq—m5çV`4Bñw§ûÒÁܲß~æ¢]‘o^ò¯nÙS`uW¯8cJ4û±ðç]KÁ¬Ð#_ˆÒÃõÄÉ—0{$TíÇ)Ñý8‘hÙ`|bªfJ Õ¦{`€æhÍ ©nø•¬±] emÕŠùÔžeÿb¨ævÀÏŒÕ<Òd;“•/eaÄ÷(¯ŠÐl¯Ìª¬ö8õ®¢”3$ëìR›ÊÔµ¿H5Æ{)Z¯Äjst§s%‚$VE¤¢0ÏÔQ ¬<¯Ò‹ÒH“Ä`j("¦hDhUždzIŒ=^q2ZÑ.NÑ4E¯³ugr„ÆÍ3ïkU­!VfCTÓø—àj¼bTxUŽj5=«!IsÖÄn–0“fWEú{éžúõé.Ò˜‹ä3‹á†‚Óˆçù+jÝD9º×x'½Éí8Ks ½\ë–8[­ÃýiŠ]½igÔž6=1•ü×bàƒÄ²„‹>ŒÝ®{Ã1êÇù(ïV)0—8ÜL2"³EÞ2Ó”ËýÁ?ç?Í’sòåx‰\Ïû‚:xõ€W"ó|ÎLô~SÙ.¦r&žß=Z=k;« Ý;®üª äñ½~u£×~á¯þû°WÁ»¨6¯¶ÃÞðHÓx%–ñ=Xá,`z±æ·/‚ wé1ý€?ÂZ¿†ü.P·D³Çê·JÈ iÓ©F° Á—˜Wù X@gêxÁ:û¬Ý ÝÌáÍ¿êœéd‡š«´Ö\½†ÏÑ<Ý™vЫ•îYÿ¼n¢Jw60s‰ÄïÁo×?å{*0½ IhdcAàEŒž‡¼žrí¶¦gŸ¥¯ù {Â=êžô;›ü]ð9›lázòýtμï=é}hê‡ç€Woåᔜt¸½oˆº–ëy|íГMê È•‚EÉÉ×"Ý©ºw²ÜŸ¼:àÏ ¸—ìN÷†]MÉvqßj¼½9ouS€WmÝ6~‹ç¯*Üzeri¶?ùgôü座sv9ø“œ§]¢Œr6tx¤æzHöÌõGAú èAÿk¿ ·E+Ni>C-_9—ävƒãõöî¶?¸Wæ&Ãn~ô^µÚ‡L#Èó²çt}0Ow}®çÍ¥ ó¡ÁÂQ䬉ú-bEéoo§þB+=±yŠêónšc†ƨÍ.¥En³+Uöô Í lÕýβC¦Øy3õGdeF¢'Š>ýP_´žR7²ãªrÅ+϶Š×øveKò2ªV#õ$‡4ÍÜ ×½6©Êjä ™†úͱêÃJÞi¶Ú¬daÔVnVµ ¡Ê³ˆ%òž ùR_ªîkŽÐ¼®(½¿,Qù^ŒÆs’´Þdõõjéú ¬=:õ>£4c5DW åÛ4$Æ›L®:O&ZVˆÆ¯Âõ™JïT²ìfaFªÌ«ïV•ߊYëØ[Eµ•t–ü¡^ÿ »z˜²YÚ¼žZõ ϾT‡Ëi…ö° -à®<_¯ûÑ8®Ë]•Gu”ÌX˜p¤6(_tXÆN¾ænÍ—óEOð~¾Sùíó6ÿÉSõüö_à¥ýlæ²Üÿ7ÿ^´…kè>è:^×7‚¿ßSkOvÊJÈ(¾h&xÿÖu„åÀ’Ú\ Ï?®±êÑñªº1ï…–•hþÕßቼ뀙û:øÕ –üß-°Ÿ€¿öЗvó<ÓN×› d¯ñ#@ HOÎëÛˆ±ïŒþž¦ ‡'†‚ƒU•ÓY¾o¢%fù…µ.“\xH²‹£î~NÅæeþŸíJoYk·'0& ¸6l'ÜëÙ´µcÍMZçõ×õAY3X¢xU†;’l­ñþOº¥¢-bÌzÃ~ÿ [+C[êA#ñä;ÀÝ–:ßÎ <î÷³«ýÚàœ©ö[û/˜½D_ñ3v,ðê‚_ ~ùJðílàúð1züêoÞ禅ÆÂÎÂ|„X¬g-÷†wÔí¯lFg5ž“óv •C1K½Œn-èîO±ïû‡€Wë©‹;cïpWíZJáß\'÷Ž»¦ûq¶ºqn¾m ¼úþà*àÕ& ½‰Ø›þ%H»$”Ïà•¬±ŽÑýmP_K=ÿjšæœJ¬ÁŒÒX^ Œ}ØÿÔoÆí …G€WÚn $Y,v ÚÐ8vØ~ o°ÌMƒÄ>÷^ë|ĈU®£y¯êI MQúPúòÌÆ8nÇsK4w"£4>ƒ,b5oJ¼Á–ÊyŠ •þxOæñ´Dó¯$j3ŸV¹;\µís4/p_`•ò¨FÔþ`=õîć¬c zÜšš¦ÑžôõxÕyÈqšy©Ìªòäâ8eUe8…(ÊPŒ Õ¨SS·'*v5“Ótsd}0\ù•ð¢üª³³"t§a5ÍÜ Wµ£µæµêHõ52UMýÁdÍD**&W½#ç··­Úg¤‘µšš ¯9Y©UqõZІÕu­0R#WÕ5%÷¾ºÖ•ya,ôë¿ão]ñÔœÏóàW=­kEò5·‘8NQ,sÇ1:ÉœÀòÙ>ŠWK•³µ¥…ܞ穯ڕr3¾CÛY†’^ÄŒ$Ì´ìùh¶ì”-»iµ®_L¤ƒ|·(vm1?r‚¹McS¿ƒ'ÿh†h¾hÀünü†îǹAy^8×4"•¯©ÔkèÕãPÍoÂLöj©o¸HNVƒçš>R.+ÛÀ‘\ý“ûÀD.ArÅøû4üÁ!oÉ¿ºê?eq=Œíf*âžþ ’3©¦ò8“oN±ØÈ'øÄ(ü–êé$ö×TóŽS8/†Æ€ßPLaÙ/S‚§†k”ªtc IÙm´œB ã[hCgxÕ†Û ö2°1Ÿã\]—èM ´ð7xñÔkú}^³Pž¬A„4[¡”¹°Çïõ<ޮІY`…‹•+„VÉUrNð0Œé;D]-ZxÊ/²+àn û£e;þà7ü¸­á6Ïûíà¥>œb)ØÜ ¿zÓ|ç= ~%ñö­ôoâAzr]ÔT¹×x9ú';Eò ›t7¥d|mÖ3/Bʳt-ª¯?Õ^õwú³Qo¹{ÀnwŸÛEÑM×Ý}á^sû1 [ÜD·Ü¶s;øžd—ÚÁîcjƒyßcoùOcÆ©#gs„é¯ßÐ3ÿ/Ôohì’ý8rú˜¬AìÓó¯f Ï‹é¸ÿ‘_¬{©ÀýÃf¸]huÀ…¯®Ø^Ð΃ö]°­"·Vñ“÷2ðê~SK¿Ï«øUGhjcàO_àRµ¹;uoC{ J¤zäÏé^3‰-7'9ã_ØM =)y¼ò“ôÌô†?˜¤ëƒsÝ ×F9Ð34&p¯æ_% ÄþXßL°Œîr~ JÍâ6ºb5XÜH¿o"‹äæêhÖ—Ô%¾¼zÞ&Øóö8æÒ|®å?¦°n´ýN˼AЮ7Q‡X`O=—áQè³ä7È™@·à‡N‚m¤‘÷ M2–o¢U…zBÓR”SJW€_!ÿTZxÁb·é÷ãdÛk6ѱçé|v\7xÎïd仂wÚêÁ<×—Ò æš÷’÷¶úƒkéoä!°ª$ß_¸\÷;/B§j¶÷É䆺‘÷'G£/jŽluðç_í‚Do§–îQ»Õ}d—QÿâZ¹[î ·óÃn˜[e[¸M|™'Úiv‚[g#áãûí ð«;tõ¯€3ŒœcVF’i¿HÒ¯¦áïmº·r¤T™/*ùW‹ènÿ3¿·—8•{þ`ª[‰q´.¨ùW½åÛ9ì[.VãWMà¾LÛcêè÷ãD^7­5zÞšþ¥Z|&´ªl§¥G«E·çjÔ:WO§k£ü¤4BV(Å›ÙN³MçÀHõ§ÆÑ·þ Ø‚ìwÞX¢Øö2õËéx9¨oPÕþ½xðÄCŠt‘z*óvÔŸN•'Á$Qå©.qŠZUëƒÊs•åâé Å%9_´ro³øƒ-toaŒæDé©x•™%zâKåY|ÉŠaÑ^uÊ_¨fžFê÷……SXŽÅ*; Ñ“ÖSÕ— Ѹ˜x²ÕÔ·•UªXÍ‹ÓQ3•AÕP„IÓX}¨žíUõÕÕ‡®®,¦†Æ¼-®Š m“ UQšÖNçÄP=Ÿá ~sžÔ»ü*”oi_¾Õ“oCYøçAzáí%á³}á#ö²E«Ï¾’Kx’ây á:<[ç ŒçËÐjÉ¥(»½Í9œ„¿v'˜:ž^mÑ>n1?s”0üª ß2ÃYzó†yûcåWŸS†—ĹFrP¿^5÷š±ð±qü°™î¥êY‚ó1ÕæœM÷ õ PWWØz Èï^èóczÊÀ}ðÜZð•Êçø=ÿesšõä–,näO½ í<ÝdÇšéê©à•|/j9z5ö°£Ð »ìs¾æ3|Ý~–ráŽÆhÍAoeß[- Î\=¡Iòá¿ ææ¿”ÓˆÀ›6Þ¾h ¨Ï®¶ûÓÈ7íu·cÌ›ÿO×fE±t»{ît_Øœ€e3qIKfÉKÎ9(9gXr’ "9HÎb@PAAP‘ AQP0‹`Æìóùž>ÿSg®ÿǧ›æÎôt8}ªºê”Zà Àh^ÁŒnÂÓ?‰‰|8%è9=ÿ ¬¿‰hIÖé&\Ñ3üC´¿ ýW °?KýÁ5xï<ÜçÁЛÀ«e¬7‘c¶™v€=®nƒ_]v?ºg/úBø+,çš®øÕAsÕ»å3¢þ¾@ÑKô`Ü©îu?ú¦ë åùYEðŽm}Ѧ@ŒþhÕ à¶ÔªÍP=ü‰öc؃sÁ¯j»Ãv=l³y*Sãº8/|É=¡êënhÄõ¦žd§ØÁn•M0åÐÿ‡ìOþ+`o °ŽkèhÓç³ÃY°%P^ò;àoÕYGk æÕNôŽè÷MV/ø7ýFºÚ¼|*ìJ¸EølQàÖ6ê!·ƒ=xÝŸjN4Žï€_‰^_yâ• 0R=¯*+¶ÝÄ[KæV|A_Y2õ&Oãé²zK3ߺ×rÌ›ÎØ£eÕ­S³MûP?FuNTãÝvà•xŒÎ¨)¡÷W²«©ö˜=y¼¦Õh2É/2$O›lE¼Ïâ)ÎfL{"sU[R{¨‹FQ]4UùÏ©ü)¨–¥ÑÇ.ÑuñŒl¢OyNI¨þÉìL$Ʀuÿ9,Î(Ïb|3a˜A~M `Kž#J[Ôë+B¯“؃>ãÞkcî'0"•ÕÃ$¾Âë’èo{° kXœÆFbºÂ<ÏŒSAý޾ôíìŒmxŸf°>Ãâ<÷«¿Áp·ÿ¹ù$°©8î°[½¦cu)Æ ôV uG\)­.P‹tkp*AÇNj¨ÎÔ½håväJ?ÚµùT²ëÇÞØ‡hpDÚ8YíÖ+ôBÆË.7_êŸôH#VòϪ‰~ߌÐÙŒoÿ Ìè”ÜÿPU‹*oÄ:ÿQµ÷*EôdFèÃf’çSëfŽÌ,kÆóÁÍhUf5ì¿:B½à겪Þ–Ž‘*OÿÕA] E"ã[øƒÕ3j•zJš8sDK´Ñ÷ÀŠÑhE#ÌË‘ønÖ}-*%ì‡=9;’sÞ·¢–úËÏ0Y¸YøK!3êßUmÍ}žõê&±þà9» w)£3\9çym€WÍì=æ#µÌFóc$ÛFÔþž¢ª”¬ÞÙØ]þ‡U0sq2+.ŠVð6%¢*Ïû%:ì*u^r1{ òÚuÌw.oÇs‡ÛWÕÿô{Æýǽì×3ûô{a犄k¸®zŸ:e®y7½wÀ¯*ŸÕèAX[õYWqÖ·XŸ[V€§=(ÞEÚƒ­Ðóc°¦O¯Æq•õ§#íöE£º­;`7»ì\XëÿF wûÀrº‰níåVÐß¾Òq‹m1XfôY{Ë?‹'6D¯ÔÒÅÍ}ôZÁóÂ^+¬y ¾Ž wpú{ugô¼èù=ãA}†Nj»mÿ»w±Äºt·˜Ù•õq®¸TÖÇ©~uÙzn©ƒ•¶\%…ޛīǪ̈ÆÌ¸ ÃÉTY-Žö ÆÇŸI%ÃÖ\Ã2WDW—51Õ$Óö`2kσÚ˜^§“»¡äHuU7=‰Ù{%ÐÓõ€tAtS.Öâ³ô`Köù@·%\)FÅDbÜ‹sÕÅR'&ƒ¹{1Tg(ÉHÖxÚ˜ÖŒ°–Úü>š™8ÅɯÍãzÌjFSAœ O0À«D>«\$’4ÜL¼üaƉ¦•øÌSèo/Nß{)ªàµ K²zX.Ñ(…Q ÙÄ·xÆ_%RË=Nu_ÃÔux£`Hó¬¦0Ö! ÞSµæ·êŠ>¬^ŽÕú‡ú„Wü„}h»ªª‹ó\ï1¥!W맪ëô™ÇŠR·€Íx†¾À«@ÿªfÍIŒl2O.?¿º—^½ýÓ'Õ|òáIjµ^ªE/¢ˆzÔ|¡ÖcMàço£2ƒ¨Ñç™ï±"Vjéá÷TE/AW£Íø¥jéåyåɯ†éÀ«±KtÛª°>ŽTÅ|k¨;ûµ%ëM¼D½m‰g¨ ¼ÊÀ,©¬ÿç_…•V+ðQð«\<0u¹:¤û›lóðª+xÝshëãT£ ¾?+4Ÿ5Z^T©˜q•0&wa™\‚uXˆØÝЂ2ø¿dÔV"Sú@µ1Ÿƒ×å¢Çç‡ÞaýAñW¢¾¨çuBßt±SÍ'j!íÁ›x¢ø ;3nýîT€÷âù©_Á$¤^kc°V÷“xÛ¦¸w5Öj ôÜ„VŠbí,àUg»üj øÕoÖÙûì+À«‹v›»åø­Íý\ø†-®ê:é'Ô³æ†÷–÷¹©†µô :¡çê¬Îž‡ŸDç¹%ž<o&õR§ª°¥l5V¯ÞÀÛWÅlìã·ŸøËèo/píÃî†]¢JêÝ÷…{ÒmÞâF¹µ¶…Û~Uh—ÚžnøUEµ^Ÿ¶?øGð¼f™z: üª&zBs>~× 3o ðk$롟ãqÖóª‹þxÜ¿ {P¬ÆÝîåâÝ,\û·Ms+Üg°«§À-K¹ŠÀ«jêïMû‡}ÒÔÆêZ«²B§LK¬¬*èÍþØ«*cþ”“Xúå4o$¸ôdFÁ× -,¬£ZÚc/k}#ðªW¨÷å‘j‡{üJØÅquèÛÐFb@eð«1ÌljeÄÍ(úÕ¥Né`u”«[*+7R»è? êÑg+ä%˜ÇËØõLú†ƒÑ4ôG*í¦b¸w2ýHru=úâWqžÆÐ›.1ÆS ²ŽVq>-†˜™ˆ§þ“{ ZñçÉü 5ÀÃ0f}UVÞ |VÂ˨@K0yƒŽá•© oyVËöu(â¨,/m‘èà1jñ$Cu¥wà¿:¥þ¤/KòŸVEõ‡´–EŸa#vÿÆënv¥“#þ«nŒ¿ŠÂX-ÐMYS>–M\ÑØÞ«æ4ž&>Æ`ÿÅâî›–Šyr0»è:½†=õˆù öàX#ýyWuÒ›±ZNHþ¥æ¼ÆóÁ÷U /U—f=úŸUg¯ŠW™ñí£ô3Âû™=ºö`5]¶áZê|>øÞ:RoöæTM‰%S5™SK¬ÿœyVKàFüv²? W S³ôp“gŽêz‚žÆì܉Õ_§â¿‡©y4’¢§3>á  øe•¦å”GN¨FãI}ð_ÌÖŠÔª¬'•hÍý&~×Bõ ]¶ ö¸Ý ü©¬³€WÑž¨à °ÝÌm5ö`yõ6ÏYfb H5°'YK¡ÏÿÀûKŽb ´e=P¢Vʇ@“Jr”¥Êr+°³øYb'†^ô»ØüÚ@–t{Ë&ÚþöŒúN¿dÛ»ñáÃ~¼çÃá369\öà~؃ßxÏy©ê³šùÎßÞ½µüª ±zUj£‰Å½k[r»V1Zòõdê'»ø#ìmzt½êàŽÙ5ŠëŸÜ½ÀÉónØí27Ì-µÍÜ&ý¾ž`Ù>ÔÍV»ô1|ö%ìzù¢F¨=ÓÏk \ª~UŸüjzf4kjôS’¥¾¿-DK§«=þ—~pÝNj‹ûØ:~ÕV)WÌmp¯Ú©'í5WÙ•^ÕTÿõ^·ÿµûñ¾¢K™:kZcnˆòPoì •Xu} ÆpŠ’Š× xn?jÔ ^ˆ?\¼ÿ2÷êRs<1aìÁ¡AôNS‹ÝC®siϪ…¡7BsÈ\êªzù•dWÆLH¦ÿJê'=Íüña×Eïcy m¥hF $2*ˆ‡J§VVqbM&½àIÄtŒK6¹—Ørù¬¢CÞOâxÆ4 æ$Ò‹– "ˆ•¬b#öÚ¡¹l[LÄ_„±èi¬Ä‘ÑÜ+ÁjÏâ‡/Ïh½ ½Ä‚¤S“Pâ‚ ñ"‘óÁ¬ÈgSm&ÞïÃ>é‰õ0£GŸÛ½ô†î5Æ ótW%Õ* ÁB’õ "é÷±ÕØÉ—«§ueÄœâîªPi<ïÓCÍÐù¬ÑÞ{ðjßYbêNáyrB;+õßÜâÕ^ì…+À¬ëF«Uz%ø•øÉ—˜‹:ÝŒ£¾èwª­þÝ Öå%K‡ñ:@ݘ›ª‘§"öà/ªµ—Ëøö5öà8ð+镸ºš®Ž6·—¨¬r©û&ª›ûÀ«Oâ»Zøz;öŒcž*¦ïúçÁ/jà]·¨,]ËŸ‹¿? fëM¦²yF×EÝ.Áêo©#ñõ0΀lÿ6 {úWœ„=Y|)3{ æ_wîKRq¼&+@ÜRµÍ«ú Ì öªcè’µö¤ÝF}†ò.Ó%{m1:}ì&󾺟ñí×1W pÿެ}Ü®XšT¸û•x5wšˆ6¼£'£D$þª*ÚX«ózBb)³±£ó{Û~؃YösàÕ û’úK¶·\Lø¿¶Ù«·†¯ÚØpžë~uÒ¼çòÞ3yÌ}¹¨—éÁŒ « f#>ü.ª-õEeg^‚Ý Þµ#úoöÃd¯S𶩪ƒ?É~ê¯÷'aiåž·kÝ»v>úèK×Ñ}ãι-°Ü¹~nmíÖð|p øÕrÚƒ{ôS; •%Þ/ÚôdÍÙBªDä“ÏÍÂØÜÇüÁnÌ-ŽQ@5Á«Û~5ÝW=ê¾f½Ôyø>ìÒ˜Ó#³Å^pÅa…ÏÀû|絯5V©4ð«ÆDˆ&¸î³Ëâîu0›¤?“Yÿw/09•Þí:¬N˸èŽhÏ8®òµjŽéº—|a° {°€,â¬ÚšGÔ¨‹ý]¢óÂŒIúƒA ˆ,àäºHLB Ö¡M'vHdBP§&ð@G3›.†>ª4ZPqÌgÈeÌy}biTz‘ЭñsiÆ¡§ÑÜÍ6ÇRã9Qµ¯{q²•(þœ¤ýšt~&†^´ð%çÿc>‹ueÒ&§m÷ÿÏÇ.ÏgÇÑbdOaZ„¹Œ‘øÇßËSCŸïTCLÄKáù¼‹Ô¼Í~QŸi –úùU4æÀÖŸñM~Ä8<ÎFx xe´p›®àWЋr~ÚHMÖ Wâ«ï«º¯p¼ú1þj<ãLš‹Ò®‘{î¡rítöøDµxµ½ó¨9¢‹™¡Ìeþ·j ~5Šú¢è`ñlÖRïú†ªâÁÒc}çT+¯šWŸõé“àWaÖÅx,©²®8­/dŽFÌ ©Yööþ<Ìï½ê<˜Ôôo%°Ç;þe³_ç¢wvâ½ |Ìv´{«ž`ê›:»ç7XƒãxÞX w YI¯Å@æJ|{C\Ós1U‹&n \3Š6R.V¼T Îãùû{*ÏÓ0b-U³ÐE^]¾•×e]yWÌ“(ÓÛϼ¡fyc0ƒ¯áÎíÐW°NjÓ‡Ö3púígŒÍ8 TÞp9žÖ³ñ{°Ÿ¦ŒoŸ$m´Û!çŸXQ…°ï³sýJ@—û¥ý Öáõ¥>h_sÜ ~#àòǰ¥^j_ý4ìÁ·¼ëŒÍÇ'Îé™°ñk DaãÆ,ÏìŸXÉ‹€W­ñl©ì:¨ý:µ®Ì0¶½ãoôg Ü!âÕÃàW߯¾tÝzàÐj××ͳÝN} üj®íêVÚ&Sm^Ýò_‹]žFºˆéMñ0ôèLî´5ñ”¦@xÑøê‹ÞØŒqUÛêÔ¿ºí×Õâ•_é>²>x”Tq´.É-Aºàóëíu W¾“z¥ÿõ.“_‰¢ø2•º`ª$®ºûx>(J ›pݼ»øÛGcNቲÿf²‚I3ž˜ÉI„(Û˺^£fš!À«žƒq‹Á¯Ä{sl÷™Ð ®JXMZê¿ cÊÅó†ò Q)À»¤“ó”£.[&£×“Éhâ"z›‰´Ââimåà¿À%Zž¥èaOdÞlň×Iâ s˜Ç—@d©’“ÄȪÚÌe.ʨüdZˆI*&¢-QÒJe$DpBøO<ƒÃW¥UZ$R/5Y;ŽöLwª Æ0¶=‰vb4#~ö"Œ[¨Ñës´ƒ ¬!>9;Ï uAF€_%§õÄ(·eŒVº„ÙÞ†Ÿš®v+£oÑžýûù£*F ><ªŽ‹5¨=«|-™r&ØEÍ×]ô(¾ß Gâ•øbL‡ó-Y8]HŒÚ/¶d Fü1ýã¯RÔR³œœ‘=å.VðWf€–·ü“ñ '©åþøUmäL÷kâUu-6ò }ÑLöœ–Ñ^…«ëèšÀ«ÆÌ]Y‡•”ÏìîÀÞÔ¿Ú‡ÕP¿>¨FuÅ?cžÐep¬<=‘ÖËj„.4mÌKº*æà×ê%¼ÃzÌÖºÀ†‰Àˆ%)Q}x%•%*â {¯JèÖÌ2ÞtfÅLÌñ*˜Ëùês•aVè·0ömTãÐëÀ«£ö=ŒC] ;}È;cŠ­gþ§àû °/aÄ$"²ž} kµ 5NÆ­¾ ZT-[Æ×ëw/z¼OË i¡\r×#;X:íײ3üò˜ù¥ìWö?~;ð«?õ ¶˜+ ï¡>ÃÁð`؃uÜ=àWÌÞ³Þ;¦Ú°V½¬éøNÎç`·kĬÑ“iŽ97 Oy逿/•zè…³`xµ°j:øã쇰%ž¡Š;auWì •¨ï2^ô’Û¬*éGD0´w{ôE=Ò> ~µÎÆšêÞjóÏc¦ˆ×ªªŽ¿Ê§§6ømKÑÁúnÉÈØ4ü¨ÚŠ™Û‘ñ¬óÕ6ÿ¿¦n…¿|JÃò{ó.xµ6é½èÿÅö&lð<7mÿ—wÑ~awñj/UygMKÕØ>àÍ¢‡’F]õ&ªaJÖÍ e³†kP-_æv#Ö¼Ǹ‚uj¡@¥©aj0ž›O¯ÒëÀ«màWA½‰.ZâËèã•ó›82¦Dd+„›»Îz¯zÙ\÷Nx¯›šhõ õŠ^­{ñÉu€s”dTÀÚ’¸£<`Õv¬å\žn¬GûE¥ñz©-zº•?ÍÞö×ùb?¸gífwÓÞ <®ïþÄÚ­jè î>7Ëöpõy=ÍÞoûº]6Δ›†õ&DãYôcDMµ£_p6ÞîÞ~ a$îì°˜Ÿ#x¶Ó¿ã7ÂX´…=(z}ßÞV…¸Å}~%ù8Ÿc¨î¦ã­þ ¼ú vx+Œ×ÃʽÅúƒUX?âcjdá÷R/5ý™€¯í±Lá ¾DÖ5BÄ7Õ³¤;FÄÇzÙ¢&š¡^ô ƒ=¸Ü5%8£††ž =ÌÓþ:°GF30†ú­iCÅà‰]Õs‘AÑ`ßHt‰a´x¿&òóñÄ–XÆ_•`ìV<‘¨l¤nDæA:-¹¢ÌkN'ÄF²ËкÿUfÀ$F”Gãs•±Ëâ"w-C Œ#^E‘_aµº4ò¼¢üt)Æ‹¡ÆmgZƒ‚.ðùrdTÉd›Ù‘¼›\¢p˜š¢ÑÄò‰†9DÕhž6 ÃlN!ÖuÂOí‰xÍú·ð³ðºÔ.åëo‰Üß`þ¯Wñ¬ù¾Q}¡“tbH7ê·O'f¶P³u]ÈëïQ#uU=”\ë>¬ž3Ä+Ñô»£þÄÌ’>ÙGýô™Äà j¿^¡—òúef‡vàWgò*¥ošI´Cÿ‚mº]=Ëx†wU/K—§¿ý'ÕÒ« ~%c6PŸ6C½4j Š}Rö` ì¡M€«17å£ žú8ðJ|MѲVúSŒN`ÛUÿuØ}•€×+U¦®êOaÅ⺩É3gt}°ÉÏÑ?ƒ€ͨl5kb ë÷S/2®  žð)Þò9ÖT„”*…eѣ⿒ ,Âz¯Ê‚±]a¦Nsð«8{ÌnÇÊ«¥Ó\–û륯êf‡šoÔêõ]¥ŠË$`¨;@oŠ:ó0¬Ç»êW¬Ñ>˜r: ÷ë´\ʳ…|°›VŒ¿ZÁ|çÒjðê^»Ì¯ N±ŸÛLÛÒQ±æœÝížrü&À«káWl‘p×öàusÍ{Ï{ÛH»ŸVÏëu_Ö¯Ž;‹gªðªÞBðjÕr©/úz(úêZXk¢›?Å~ã¯÷§‰R³;j—‚Û,T À«Öî®{Ú= ¼Zã&ºù¶ƒÛ¡ßÐÙ@®À«\õ8ðêkð«yÀL0+æÖ”8ÖK-ÀVG[Ú¡D½Upr9F¨-°Dò ·ùŸú­´¨dmwŸÚ8àÔC¸6½ü¸ûÒö’sC{Û¥»¶n*v“ß½wì¯v•óµ*zÅÔU TýéªÞÇZ+‰^Ý„çNÁÖÄê©zc,§òœ-} ºL²²E¹óúÁ¯f¯pþªInƒkÌ(¢WÔ؃Ëë¯:ëÉèYÁÑ›è§â,VG)IŸwÆtñ*žµÊý$DÐ$†ÿ•"³Iåzß{iFÄP“¡8íKQcèLoSlFxIÔœ.ªºœÎ!ŸŸÁxѲêýXñ/¢ý5ÔØ¿uõèÑ|X$¿ùŸ˜ƒºk-fèrþ#XùK€WÝM sŽùÎß`–= v ·DÃ{öÁÌÂè‚7TØ!ËbÎ~Ï*Ù%´xµªcFOÅßC½¾ñøTEjßPÍ%ð+ÉÇiÎx†×ìÌðò:Ç•uñ^#ܽƒ-0ߩ垨ÜÆ§ºã:RøyæÍIÍó!`ÃÿU“YÿiñÞõ>5U1§f‚_-ÒÕœVÅ“¤¦˜Ô…H{9ÜQôE+S­vúPê;ŸaäyŽjíÏ´¿ûO`X©šº—íJ÷¦ÃÓ:ÜÌÝp_¸ÇU5؃#Ü4ÛÆ­ÓWôƒvëã$˜RjÞa¿ð¯jH…4ýìMpW©5‹µjëð$bÛÕ߯Á¸öÀÏù@Ëíþï~]ì5½Ô÷¡a½ÔΪ˜Kt;Ü]Ûý$õèÓa—J´ÉOÞ5û³Ýhb¶nP&ô&õEE•ÿ^ê3dàß6´cýí‰ds)zRÄ×$UÞZѬgô¦=ûL2}BÉ2Æ«ån›kHnsL=ÚK}ÑD‰׳èíN`ʈH½ø’h÷ûD‚hÖQ= TÌ%J•fm› 9%»ÅŒ›à÷’£\Šê¡bJþ†¬¹lTg­È“À Š+1QoiE×?zz¢VÛ$¨W‚Œ§8cÑ“"X–‰SMePqÆ'”dvc ‡\޽ zO 5l2h«¦5•Z…pUež †©ÉMŽU„þöD¼k *#ʲ…Øcã˜çØ«¦q¯-vD‰Ïôdöb-|B,úÙÎ!>¶MêE¥£˜ÓˆÐùéQØq¦èžzß´ð* {q Ï ç–ËNÉDIÑ#hG~<ÃZöR~“Þ W?ט³Ú3£ðç/Tý³©EQãý“ÔµÑòŸ«J^‚®h$–÷Wð«J^-± ýôq3 ‘¾Ô)€=˜J„˜NÕŽ3®°j¯z³½ðò,¿›Ÿ@ãŸý›æi-õ¼D¯o¶?훥f¯*‚ Éê¼[lpPòÇceH½Ú¸S/̤/ðÙ·î2+™þv©ä9¿mÁl ÙÁ«b5çîlf.³ÞDÕ+t üê¼½.™†¬7ïÄ÷ím#؃{£0j(©Î3ï!9'OcìÒ Œ‘ùOh‡™XìœEm WÑ«R…§þ"±²Á«0cQè¸?Àn÷+‚óV°ÿ²­/ê› ¶‘+ ‹>Ã.½,¼Ý&ÂNë¡÷©Ãæ{ï´÷±)KÕ!ýî‡ï¤z×4ê‹vÛì¯ryy?öxKQS[µÚ¶ö[¬n®zû³ìçþVªzüêˆ]íÞ±31Ÿ\¸-Ðê5·KUÔ+Ý÷°måVè z–]m;»G™ï¼Hï²_ú§¨×× ã¢ fÆh}üMзbJM5Ñ›“xÑõè¡vèíÚhóóþý:Zô4žpX »om¤¾ó&wÛöCïl³?Âìáæáî€_i÷˜‘ºÇ©èÐk°„¥hS0» GâEóUsr öŒÏ³x>X­ ôúbzb?K`¾ó$S+Ô0A­w›é¿JÄ^¸(ôHhWo}ÕLÏÄóåú<%ÊiÉŒ0(äzë<gCì™ÔFNŒ(I ûI¢·IØF*“<'†êe"ñ Ùhm jWŲîwy\—ÀëÅKSšX—Ìê–I‘÷QćdÆZ&«@[¦4‘î†M;®$댕ŒTµI¥vM˜1õɯ’x¾)§‘•Éœ œ’<[”7NýÿU ™b˜ÑññÄHAÍÚ¬­"ZÄr²Ð+,ÐCnK挧pËùXƒNßá=~ÆølR9:~¡Ý:GÇiñòõV ´ÔÊ’1ª©–énz.q¹“¤“õ0úʤÅ9̨Tú!¯)«ÇÐ÷.*k#±[SÕz½ÞÈÖ®6wt¼¹ñWRð.ø•œÑþ S[EÛßßRU½Î¢Æû—ª£—ë•ãùàPý‚ë•¢6òýhiE]í¬L{p=z®F³üãyìn€þOƒÔÖ·°ÊªÂòüÙÿԾ݃9ÙY·õ2¬b±Þlê™ç€cW‡0;eõwzÈß7±²`üþ]p©š˜ßÓ•˸Ðe"~[³7›Zruˆ"õ±gv4ëkXmUŸÐ5mÏÁì¥*ìèŠ{W=í;úkµÁë‹ö¿‹uU@_dîNɉþ¬ˆßÕ/äy%a­¢ÅØ=»˜ùÎMécjŠq܃6ˆÞ×ÈÐÝíKedñ_Õ²ƒìEXÚ‡lEW.ü¼_Ïì׫ÃmT¸®ë¬ŸP§Ì¿½—½[¦Õ½K&[­kë!jGö^•fvÊlµ 3ª*õ‰Waf DŸ\`Îcq؃cì¿–jc؃Ýe;G•Ö?ºîîKwÖíË]l}·AßÐÓìBð«…Ö™lìd›`KžF‹ói15ýÐÃm‰„Ó0“»âݦâ-‡¡ µ/º6TOÚ‡SÔ þŸ~¾–Šu;€W¾«{ðUÔùÀ;V*‚ì²·\)×ÊÍÀèü ~õ·ÝiäÜlµ*zô!/hŽ·¼klÞq#8’Ð ãcã¹~%g^êÞÇÐ.'#°xÕ44„:CÕf·ÌµbüÃKjeèÙÐ,f橎˜/U#±yx‡âDƒLÌÙ#¸sPG*åJ¼BrÄVŒÄ —àw±‘ì¾dæ8DzÒsµ³Ä>«I ‘ó¬ ž®æ0òªÕhrTPÕ¡9~N!¿ ¬Áþ>1Û(ø‰>WÀæâx·8bN*fr _„畬•¦¦D+F‰DBT Êg»KFôÛ˱žŽäãÄ‘-y‘Ø…ÀÒmÀ˜ù´âJª°µ"޵ÆJþW¯f«§TQýûù7ÌÑíª$ënTGuæ'`¨©E%T>[W×½aÊYÀ@¬÷ ™°¾vxÎ2Ü"`ºª$=–öð^FÌæ¹èµWo×KØËÌuaF™úÒëëOÍ -ýÿ—þï ñꚪãÅê2FªÈ~£:y¼ÊZ¬ßÁú%3È‹f¬ûpŸJº¤.É•;ó¦-VyÞôið¦—0úÕñõ"v¶ŒuÏÒø_›º8zax]wÖý|؃³LMÖ©og½¤ßŒ•ÑZI•ÒÞ´€êÐüˆÊ|eÀ¯úà§T}ÖES\5€Y…ñ"'\RC¥p¯…¹©/à¹íÔ¸ÐàÕE»«°ª®{0Óë‚õÑÝN0—ÕJožð)£è'`5H<ÃsÔëk †1 xõ7VMêÉ,§bràÄrfôÕAÏ·ÂçÞªÖbVé àUo»Ò/OûŒ= Kû„}ß]w¯²þàáC6-\xµO½dÞóNxŸñ©¬U§ô:=ŠþvñŒÍc´‘ÔÙËÆ{–g=ðe<ñl¼¿=~†xUñWSíûþã¾h84‡=¸x5}ô£ëí~p§Ü“°ûW¸nxÞFý&ð*ˆÓÙ ·Úoý—ÕTê¸æé(ð+©;’Ù€™GуÑ7y¬—ºó¤+õG Á¯nû5uSôËv÷‰uåÝ|ÿ·-ëV‚ãu—¸,{ Vb}؃UÔÞuû‡}ÁH&Ë*U4tÚ4¡ÎAcê‹VbÜö:Ì9暴U8oýóD$º¨Þ¼>×—dŠ¿]ÖÑ:5Í´ ÝËU?P-t ]SjÞ½¬&…¶„"‹¨¡:iɆ\*‡;w'ÿ?yð« æGgaÌWÑÚ Vr*8¿+F;.PÅÊ&ÚDí*¨@¿½4ú)•(y|XÝ4ЄOeÔ@,ãšE´­¢é3f ‚ʨŸ;šüª£ biO “õ1 E‰mÙÔD-B.ב-ôE¥…abW25¨‹Ä·;؆A6¢ÔÊñ‰ i<%Œ•XtŒ÷|î 9²—£/ÂŒg8ý¢#ýü31ê_ƒ HžÎï¶!u¨QOëhý;±¯ƒ’X¼ÑJT—E³}¤MÜ zÓºÑW6«þ%Ì(é™Þ`±´÷0°>Â7ƒ{>¦"¾=ÛK™)FððKÜÿŠéG{Й÷Õp;áˆïªj^ŽN32ŽŸªf^E/—ñÃõi3ÂKÖbW.Á*m©Ëëd¼O+¬ÏD²˜¡ù¯æÝA _}ý&kÕÕ/û?¯*àê5ª†þOHÚ\5W÷6ÝÍËZ"·ßÃ'fQ¯¯>ÖϬ‘•ÄŸû€óŸ=äí°æPYrÊE'j<ÏH*âßdÌò <ó¾­òpÇ«˜ãÕ¨ÐYcÏÚ•°[èÒØë1-$ׯ.5ÔZoFÿmZ­ >åçÀL›ã.=уßò¼u8î>ÜEôÛ{`…Ü&'‰Óè§¿ ^ċΠðï±Ó|ÉNN·w¬¦¾èú°în¸çü2àW—ómýp ×N?ªšw¼+Þ#Ñ;‹Ô«zP¸*£­fãýë`ü0ªMGWb¾<Âü‹Æèû™xƒW%§xRFu%¿ÚêO½{wÊ>ì޵ةôÏ®ƒûÐ}ëE? ¼zÀ6uëõ=Én´Ü#6lrÕfð«ïýwðέ€W¢ßÞý0„¼õ`g?ªöt`LZm ÔDàÕ>ôëPÆËî^åh©2¼Ã}jC®‚{ßÇ»4·Ú}l»âs«íeàUðªšzÏ{Ã~mŸKº.zÑ4¤îxs<åëç•Ç[ÖS–œ¤8Œô8u=‘̪ R±OÑ 0ÓïÁ|ÖŸ­¨»ÁzYˆ^¬gšê昖èÈ÷ðÙ©j#%ç ‚Q”§ ïõ#Þ¢:Æà;¬`áW2cë⪠^j&æÂt´¤>U5Ì>ýÕN;†®Ú0ëÑK¶@yWö`É˳åÍ»j‘'å—Ñò&¢þ;6^NÁŠ 3`½ÿ-½ûKÞÜ4Œ]wõæµÄ3Ôntšž‚‰RsŽšzÍïb×ú¥… ¯lo{Z}­÷`•Îf|ûSzs¸·-Îuíõ~õ¢¹ã`üU-|â0ëVÇ Ìc-6A‰XQ¨Üº¼3àWÍÑ’vxoÉÇ™ÊL÷6À«OýMþ \Õܰ«€W³°ÿýâzºÏÝ1·A5ÐkÝP7ݸåú’ž`çÛûÜJËl·^k¿¿šÅú8Mus•ņS7O*æ«›2§2(5HóÆ@Ôçª]þ—~UàUgµÓ}hµ«I{”‹rÝû¶ðe­½ä2\#'þ®_½Ë`‡Œä<Š~û[¦E>î÷=ÞS2†£/ iÙ' ßûaþÍäšÊ¡’aSîõRi ®ÝõGÕ\Ó+Ô—1G£U¡›íê²NüQ59´$4›hP…õ¼ªÐ·OŽ`RqÜñ<žZ’>ó¦¢ ©‚Üä’ÌËIbôB y‡ØbÔ˜ ¬ªbô(¥Ñ‡-1sé¬P*öZc³‹Ê2Z>¨?(uriÅѦ jyÅÑ[•NÿS|'‹ÒM` XVr>Xžj|E/Q‚þö0ýíõ‰W)ŒvÏSÿÔ˜H¡O+˜&ñmâñ·ôÀE1ò,Èw{5š>º^@ŽÁ˜Å ä‡cĈ6‚`ý'Âúc¨~Á>ºRÅkAãÕàB:^‹W¯V˜DF vUct7=œO«ºëÝ›½1–Ãà…`ôpõh‘z?fÙc˜Qâó¼Z®W°1‡Àù‡ÁºÛª‘þÌtÖ’‘à™Û@ WµØìï0þª´‘ö«ÚzÕ¼ªZzs ñ*‰ñ ëquNÓ©àV’˵F‰ªHŒÖ3øw¸%ʧ±R>ÁxVVôÿ ³^‹_s#öþ:¾Ìƾj¨žfòÍ-q¡7q½èâ ÎÌ:ô£žÞœçO¤šá»c.¥'`OÈ^ÄÕ-ð„2xתd=õX/õ$pRîÓ?tvÙEû>F¥®NqÙ.Å›‰ï'ÛÍ[j©7³è=¬Ž6Xû¢â^=7žgcЖßÀ}Ç2^t4ö…‰ô_}.*éT”“ÖŒoϧWsaè ¿Ý ¼Z¬2ìO¶˜ík_T7ôAû®K ökE·‡_·Éáš®­ÞªÎ˜KÞIïm“Çzô/é-zV¥DÍæãi+/*Õ `e>‚¹×ý¼#:DSWÐÒ¾˜£]üEö¦¿ÞŸŒ+š»#Ôg˜£õO®­Óá·Ý&U]¯r#`6u«ôE=ÖN¶ýÜÃÖ3eÕ³zíAñÅ À|K6}±[ˆþBeÖ›èEݘæÔoÏ@Ÿ —ø«è©Éjÿ³_{M{µÞ}f}Wà –:—îV_õAk·Û“®¸kå÷.Ù_í“Fâ.VEB—L}¬ÑÄxÑ\¬°2X55PùŒÖ„·<Ëxi±­äœ´#WµÔAìÁ|©‡>™z2báªQ°Ó¦:­†‡¶†fÑ3TKݣǡ£xj&êï ´ï* ÷öE²’³ñþk¨“@ °4±¡X„%ñ<-ƒž£TbŽøÀËE⨤Æ}À€bY·+‡1W ÌŽN£=(¶^ÚƒÑû2–«TV[˜A%É©É cTPáâ}†’¬ƒ‘©çUw-A[¯<ëyÅGøU%*äDG00š˜f‰¦™*g‚ ä‰E™ñ𿠦ؽ¢ø¢–óÉi¬ך~¶Fê5¥X'ŒQØ®¢õZÆ?b>¬P%´X‹Õ›:_‡™¯×AIìðL¾S5QwÄ*«w XIq=÷œ9zè('«ãÕ¿Áü'3aÎ=¦fqo£öèz!O:ÀŸd¦ùþÌãMo-Ùêé/°îžÐ%™ËPß‹×ep¼_Tg/x• l9izÁ”3“uÀ«:øV o7X­Å,/‹hl9 ž$ZŸÀ³êêÑs5TyàÕ·À«*èáͪ¨Nxœh±¾ÏÔc]ÂÎ@‚£¬BÖ€µ¢Ä—¾œ'vañÞÄO¢cð-ÕûRu}îðSñ7Q¨)Cý«|Œä³|¬êš«ÔaÓ ]³öàÓ@¿ZàWeW1ßÚæªZè‰ÞûxF'pšÖøt=ê_5Ã÷÷ uß«a/è¹Yˆ6…Ê'[ÕCDÈêÔ`i ¾µŸ—Ó¡u¡cþ}àWqm)ûx]o{Ìõ”}ÎuüºæIý.ð* üª­~L‡=xÙûÀTBÎWGõ-šÎAõ®é¬UÚxQŽ‘†¢¸š¶a3|÷ Zu³I²bJ©îþ û9øÕd|.ß¿ºn—¨ ý£ëê>v;ÝØy[Ý07×6r{ô9=ÎβÝ`&šRêI½ Ÿ}‰ÖpUüªÈVA”¹:@Çvø›ÔEœ€çnFÿ·ÇWQ`ÝéçWÔ$nøä»ÚnZçJ¸•°{£ŸVÛ·ðS]Öü¯÷ùU5¬ eàW—M#ÌB‰°»œ¸Yòrj›6ÀoãˆWÇ­[š¼¨.ãÛÅ—+1ØÃˆ›ÕTs_è^f¾LT³Ü®&m´WÔý¡#¡Eôä`7ÒSчqŒª…û¦ñTB¯%‡ý«VhS™QIr¥ ^4‰gyA@)fñ‹œ­eE´_$Ö4ŸY}©´ÅÚ1_F>‘ͪ69ôp§R¿=žÜ#™ü'зJbKRȨ%Ï÷Ja«¢ÿ¿>Žð7G¼ÉdOÁ+©?Ø™™ŠÑ|N‰ˆ>CPs'–Ÿ¨YÈÙAˆ¶a 1+¨7‘À“†hFÞÄxÎáßSÑþÎ<ŒåZþø%8¿»ÔŸ@ ñMÝżØÌóÁx¬Ö§uý'í»îø]·HÎr+5]÷ÖãÈ»ÓßÞ‡c×;1öî UÕOª±Å7H&ŠãÒoCÕ>½x%Ÿ]iNé¿uPoâ'àÕ-3T‹oј`ÓmÕÂX¯«^ ]Žz}_«®^E¯”fÚW¿lFÀ¯áBì÷ ui-9e1ÃÖེ*ɶyÏ}…ÑЇ±¢ê€_•½ý£ÿ•Ù .WŸ• »ù3aPéÞ¦‘yŽùÎ7K³ÑÂ’&)9ÜÄü‰¸ã÷¬ÈR ²¬Ã4=_k`•ßYÐ÷/ƒOÖ ¢uêõЗIz_è¼ýÛ?ewªnª’NuŘïÜGuµ]Íeð+©ó®’7™µ“k£ý“1¤¾óx õŸä2™ø~=Ú$q?·FÍY~%þÒ h·ïT+áþÐ)¿§]¼Z Ê°^jo{R]×/ÚúÎó+à=7†—Ø‚pe×Z?®N™ÛÞqDm¼ãúAÝoØ?MEÿŠvä#à¹xFô¯à•Ä_µÂÞÖczIÄu}¤ú–?iƒ? «½¡{É®uWíBúÛ Ü;îŠÛ†eìÆÚîn“¾¢ íÛÉm²Údªz‹ýˆz2U°Žë¯îCOUa ÀÙø¯'Ö÷tf¿ÔÁÌï©ïÜAI=¿ê)ÿ?Ì쨞bº$ì[íW¢"!ÚPÿ‰Äº/BïÄè›J2µïb¶? Š1¾}-l·ê:™õú¨<ÝIMàÛ¨GtKì±ÌO¦“t?ögÌì7€%Ȭ¿Æ9‰öïA‰>ÆÈ'ñ|ð9½Y/ã9Â&sTÇšñFxáת‰þÈ `¼èŸú0¾“äuWT5X}éŒ)ýüª‚—ÍßÐ/™àWÒàîWI‘<¾õ˜uyŒý;„ÿ+^5Ô 'sUiý½ÿ9ðª*pi ~ÛÀ 4¢–馺yüª ¸Óˬ[Uw™DßÌfÚ]÷¡n rqÿïX}¢¤n t¬ þ8•þ3ÉAŸN~Õ¿ýXÕ*_^µVCìŸþ«ö¦x®ßžà Æö¶¿ëƒ_¦jX ü›ÊjÀ¯fà™õÛõÆk8VS*kõHÌ ì–Çñ¦R¿èK¼×^UD·Ãšitë‰ùÞ’ùƒ °Ö+áî50÷ëØ=Jj¶¿òí){WÖÕ%]—ãÂ|ïk§›¯T!ýWŸ`¾µ£×Jöõƒx›6Ôª™F¼ç—•Ú+øÚ3ü&P¤ëÕÍeüèÛÀ+9ÑLWB—ü;ݯ€±Ï°wlŠíh/«ßõQ{ÝUõK›ôÓáÓ6®è ônuöàAï]ØGùô·¯äù`[ôâ¼}SŒÿ|êÉ4¡ŽÝ*\#:-±×‰†žÄ3Ìe¬EgÖwÞêKÍ¢ªîøÕ ;ÜùkÚƒgœd"¬vÃÝ$ÛÆmÐé vŽíçVØ¿u¶zBï‚=xo—9V üjûTôÙçá¥ZÎHà~ôl)Æ]I¼hwf—ÏUû¿øµtS´yûĆ€K›Ñ·)À«ÀL±+ž°¸4×À‰¦Õ/À«?ìã&ÏzD¹ÐYÚƒÙÌR¼‰÷ÿËjÆÛ5`tçP¬¢}`v‰ôWf…g±)ª­ºQ_4sv½™EÅ’¯in+`çYÕ7´-´T%Rñ³-,“àt.÷éGOS ñj-°ªäK¤0ž33R‹!VEÃŒ1(ÃÂDzßS¨ØWœ E|²™Ô“u¾¦¬M¬KÔó’x…ƘÑÄxâPb$.+1’‘ÃÈõR´Oã¨àC†!ö`õ¶Âô©õ&Š2þJüIê½¾dæYÞ¯Xú¯—ò¨=h©ÝäZú°’¨Ú,H×›•i§ò}Ó±¶Ä,‹Ágë3S·;1s”Ú~òoÚwð.ëé¿JÆ =¯Ûè]’ö`“ˆÿ*#7N×ÕCé9›ªîÑRÑJ0g%0é5æ8Çã»[ªŒÍÑØ6?«Llϱj¿Þ¼^´˜ÑÐŒ2ÒŸªú=3…ñŸë/ñ™«Z0ð¦*ðªèR¬?ø_ÕÔË÷*ÓúéæŸ—ªåÜs‹œÙëIÅñ)@©jSóúYX½'Г5a7¼£ÚéÏ0Cªbõ\÷?4‡ñ^­Á,3ȯä|p¡nj™ýàW]Ô9Fêo§Gc*pbfS̶á@«c¬.üª+P-NKÄd>®éßv¥¶Ç\Ök­‰¹~Ke™§ôyü¶µj:aìI»+»@—r5œöša?éoG™ÔbOôðnâ­ÑÏ­€ €µð&¢8Hvc)zÈÑÚq˜òôeXÇõ°ž¥^{Kú¯j³¦ïôЫ~_{¿ŸËz©ßÙlÛ ö 2í÷½;ì×7OëKáWÀ¯êÀ|N5o{—¼SÀ«rÀ Sz•BýùêDkQÁë…•\ ë¹ ÖÒôy.£ÜVbµNU§ñ¯?g¨¾þ û‰¿;À"ÕÞ=oWºwíb•¥ÿb½Ô«nðj…éÙ®n™¾ªgÛûñÝ6eÔv½Ù~ãŸglè@ì.€Ñw$¿­Ï:ÖÑž‘xʽØD7W2Ûwc¬Æ¢¥3Ôÿ[¿‘nŽ«VŸ4pi¼¸Kq›Ý]žn·»R.x•§~õ®¯Ö˜ŠX]«” ]7µ1W+âýúc¦HUÂ4àUUì MXK¦/ž¼»–ø%$j6˜)õ1·uGâÞdõðêùÙÜ«£´0ÓyÀŒ6À±dƱ7×=°× öSêp'Á·aj¦ëa䟫0GOcæ3ª>Œ!>Åê[„Y.}5KíÕOèuì•f—î¼’žúˆsÝ,bÔ»À«ÇÔ3ÌaüXÕó¤RŠì,?¯šzµØ¡}ô‹¦›—Å:>KEQ‡-)úÛ³™ÓV =Ûhµö ¬çð´êã¾¢‘VG¿{ð<ð­,›Jzµ? ÷˜¦Vë.¦ØXâoãMúƒ=ÕaŒ³Ô)}”ÊVƒÔ+@ÁÜaï /w€õôÅ.\¿“úÇí1CÊ#jQq±!p¸bDŸ¡jzÍÖl¶ZÜå¸ßYo¢¢ífŒžìI|ÓÛôrOǪ«‹v½%N²Æè+õvù¾¸Ó$ì$”()?†~mFʸ®90V,X±÷ÛÛ~e©~k?¿jc_Ué7í£®mx·_¼:~ÍV7tÝõuÃ\òV{Me¬Îê ý²€·ýöyX§ ™­Ø—úP¢öüxœœ¶A_ÆXŸS§ÐMÅÏãÏælñS[»v5ðêÖ?¸6°_v«Àg׺ nžmëvë+z™]`Û¹•¶¨)§Öë½ö®s¤žðHýƒîÊè~‰f“˜ŠNøis4ê23j"Þm›ÄáFôú¾ò[¯:ª¥î+vå݃ø^òž7ƒo Dëž±ï»Ò.×M§žÌuû_»Þd³þ  0u˜Ø }ý&ÆNØÅv J_bc2ÐñôÄ4ZP™ŒnNî J¨Ýci¹QÝoz„zsíOP“é¿Å…ÓêPèóÐÃ*Š™‡Ý´ðhaU™mTœŸòXI“yz&Ü©9Þ)G53ɪi ùyñ̬)M*BÌÉ`ž ¬)©7Q’¨*ž¶fäÄ“Ùeò.ޏׄuœ rö"gŽN_<ñèÀàD2¨–*ÿÊPÉ&Ðd(Á»fÓª«@m¸$òÑH¤.DQâlT¤æ`kÝ%Ñ,áWޏ•D¼ÄjQ€'¾º|ߊñí->§âu[FMƒE•­oóó?áÂR”¸‰­˜·´ÑIôS5ÃÕAÝ¢nj‰n©gÓ?7XM×Qz2ßhFþ20MCmõ‘Ê*¿ŸÛ©‚Ð)û—ÄnÂõW¥c>N[û.,àyÞh|ö&P 1s[ò©Ï0#Õˆ0Q]‡ý9OÉÆÞ½»B3¢áR¼em´r?FE4·1c¦´:âçÛB¿.ëž³!ÛÎîUÿÒOÛ¿íwîI¿¹y\¯ ÚŒpM7F?£.™½#ÞQS‹Zqõ£àÏRLÔUg¢7§áÿ}°¶ãMîJ¯æÞÐßµÄJ{E]ŠJfm'ÿ^û›¿ÞŸ‡YÔÄ=gºwìRìEw]»ã.»=ªŠ^ ~u¿mé×/èùv,k…5¹j“ÞI}ÑiÀƒAª¤þxU“Uï+–ðŽNÄ«ôÊxì›Á2¢§'©þg~{Ø¢×÷5®xT7•è,ìÁ[ô·o´o ÏsÜ(Üÿ{ï’ýÝ®4Õ±–3¾½í¥FÀ«kô„gª5è^Ü/⩌±Š5SR˜é•y!žï’Ÿ€Q’µ¶AM0mC¸FG©¡nµkÈó¶WÔ‘ÐÙh]g¾óXžÅR“¨'Y’è ÷Çf«Ry £R"§Ž‘ë5èqô;%³eV$Ö]XPqIìAÑì*BÿUp~ ~°xž@F36µ>ÏOñ³)b“P£(v›3@¥Î´Ñfc¿Œ^IˆÖM0ç“´œLnQ€G¥0÷¹êª›1§FÎDæèîzïßGÍÒ¥õ@òÆžÀ«+Y©x&žæT=‘öSXÿ«1 £‡©Çõý(¯_oöê\3ÖHÏý JÃ,d]鿨uŒ5/n¨Ö^¶.F¼úF5óêz•´¼k?ýªé-QRã^ôEs€]Ru 8F`G£îö_IÕÈgÕ% îô_Õ€=ø ž]3m+¬Ã†þ0j9OÖ÷™¶fÎÚx(;öV9Ü©m/ÄHí‘nêU`d¬eÑõ„²úAü¶>®–Øó6x‚x‡E¯¯ ®z_¥™g€W¹è÷j¡3ÖÙ#öy¬5pFØ&I^wæv5Ÿ«¥žäó¼‡Ý «¯ ϧšcEŽÄNñ úh"8\:þº+GÐâ"k_•¥~n'|ò ¬fP)µ tÂiçøå`1³_Û²¶‡=­Š˜kvŽ;íŽøa¥~~ÃV 7qmõ^õ†yË;ã]5Â&U¯èG`J¼Gcj«J.ë´´2™Ä•/§öJ+QÅ_^SЪF¢`âÚùküÙhI#÷‚]á.Ù™ª¼VáÚîkð«ÇÁr×¹nPj½>«ï·‹í=n¹u&G­š~í_ÄHTb>κÞRÔUk²þO/ŒÔwÁÎÁxî*õ8ÊPZãOø_úØS{ªíî6øUŠ“*C).Ù=æ¾µýÐÚMàW™®ž“s‘Ÿ¼“öG»ÙHÜËR属—¬1yÊuô_yôâì?…x¾DH^ú+×dæ; ·,à¹^ŒHw jQžN0cB}”Tœ¨¸­®9íŽÕá'CËûYKuÐ ð>±´¡0¾=š±Ü÷áó)ô”‹ÎÞ"êÅÄòL¯ñD8HZD/!ší©Äš8Ö›,‰>HG¥1ßX®:-°xÚƒiÿUµL+U;3N Eˆ'× ò€õ†ØÈù¤ J:U!’7UŒÑW%ɵä|°3Ñ/ZU¾Êò÷Åiï¦Erœ+Ó¯&98:šðÁ[ÆÒ›V‡ºE«Øæàjê‹Ũ¿jÁ3Á…XÕô ¢è/xŒŸ–ö>¦.éÎúo¶¿‡j¢[³æi4z{¶nGý+ñÃOÕ¹z=r`•œÅì>š¦­§Ð¯µ s É Eÿê¬pÁœÇÍËàWRÏ+FÝUõm3EK¬©2?âÙ;ú¾ªåUÖ™Ô“ùVµñjz¥Xsp~x•Ëxѹ°Két`×ÌÊi<㮃Õïx”ùƒÂ´ÞV ƒ™ÀŸZúÿ{sT Z‰7ÀŸ+u'Ô#º¿o^ÐuðûÏð¹É@Z‰‚›ï†ây˜›1kÏ`öVÁs~À½ScMmÃó&W*0ï¯48^eVŸ|Ks\_Âü詇.Û8{Ù>+ø¦3\ãu®Ôß6¿©U°Ká}«2ú-ã¯2–» =ŸÂþL¬Emæñ@«îê; Q[Ì ‰¿Ù­”×Lµ<ô¦?Ì>êWûÌÄêíeØÃàz'ì7$|¯g6é·Ãï¯j¸¦z‡zË|ì=ëÝ1U™»ö²^Ž1ͧ]-êõõY³ª0JÔ–vK¼hsêõ‰|Œçƒõ1/;ûÛïüÇÀX—¨¡p¤R¬,\‚'–Iä`åÁœT–ˆÄY•cü¬O0š<ñ=™’dfÑ× jö…Zºb¶!æ4‚Xð+áy`ÏÑ_m¿Ç|øv9«Üªéz:“õ&úcþ´ÁÌ•{æ«Åº‹Oü驺èÊúbuO<猟؆ÕÔë@‚ÑDîgÁ –GjC‡·O/ãõÛM9S üJì¾ïT'ý‹™¨™§mî‚çÄz^7T9¯†.e¥o©Æ^c¯ëãôÓkÌ /]K_ÏT+`&‚fauÏ¿jÍ3²&xò3x7±÷¯ZéÑ/ù`TŸø×ÌkºÐç)Õ^7ó'PQêA½Ét†Jýˆ×Õi ÃÓ˜ý½°.Fs/¯ÁüÔ£ê<~mº_ПϪ"zð¤vÔadQ’¹x?õd °Úo©Næ}•ÙvcCWm¼}ÞÃý«ëWöàd0Ôö{ýZîMÄ®~ˆÛ³½>æl´}2•,Çà7Ÿ¯Gà“%°ràgÑ&<…7o†UU ìF¢7Õˆf†šºà÷¶«ý\ ZIû¥­nûÚ×T‚9j˸?ÜA¿¬Ôká…öoWËuÒû`~â½Bý+a‡/¯Ä[%^ÿÉÀL‰Ã®ú¢}=?_í“Í:©7Û¹‚#©AÝÂo¯ùû3±º Ü1»Î½G}†_Ý<÷¼ÛK}ÑQ®Ð¶p«ôy=ÜÚþn‘M=¸C?nv ý] s¿¬þ“xÕ Lªðª9z³þÖ3¬Þ°?Flæ¨äVæI]Kÿ}¿9Æ´§Ú‰gWÅÉYÀŸ6Ή†ü@©Sgßvé®§›ƒ7ûx幦-VÐå‡.¯$.¼%ýíÈv3–¢.í+Éî{šù³“)¹RMÈDë§7FC|0›ÔxÓ,4œ+»PÍÇs[2ºêyõdèDh1#Ç먎°séû­„ëÉß“úΫ¹ºåªŽ<,ÆóÁ$Öæúç¬-ˆíŒçœ?q˜~ž’Ä¢ô­µRåXuYâ¶—ÊÑ?–õÿÙ6’¿#„Amå8~êŸ|ç„H¬W\u‚ß5飉.¢Áè·eç žÆFôÛ“øûdž–hÔÈ³Ï ­+M»c¬gÏ(ýì©ôEq¤›’ˆ›}0ê-i¶UÇU¬nǶ-Äü+¡o©@G]*øEk—]ê¬nJN#»«ºõdŠbŒfèNz>9¸0˜ÍDÞ¿'žsVMä^P l Ya”Ç“˜ËbVÈyÀ8uP¿¤s_ØlÞ×uÌ#ýñ­Ê×WÌxú¯¬ù³ý$k¡^¿j KÓ>†=XÇK¥}*õïójÑ6œ©ÖÂâÈÄõ’µ1ó¬+£Ì›=_Àlµíg€WíXo–¶>éaöëJ˜Ãb]lð—â]Ç©õz¶™ 6T•õ_­.|R"º¦3úX*,tG¿]ƵRëòæØó꿘¹C±¢gàšª°›¤ÚÃ<¼>Y¶cžY¥_êh¥Æ‡ÎYmÙ7q—ú: ¶É7f8fûT;Æü¢æyƒ1·Þ&¿šHÕ%QqžïÄŸ5–âX¹RYk-è„þþ[=„ûVšŠÕ\½ ¦Fç†ÎøídàÕ"UÆÞ²ûíQõ¶~Ñnq›ÂÛý<ó˜~5|ÔjÖÇyR2W½¼KŒg˜Ž¾_¢G(Ñ©¨"yàhC7ŒßžVr¯g¾³èõ-Qrbpè>?§ª†@ÉwýÝþx Z]÷’]åÞ² T’þεt·Ü5‡ÏéÀŒi¶ðê°eg€_-±±&KmÓ+ì¯þ ÆÝöUéúwìmЇ…ô_5Å앳ڞÀN±»Sgõ Úëuðý.ÿ†Ÿ ~ÕÌæ30ÊÊn-æAìÂîC+õ^×ÚÓØ#$z×;oÿ°[Œ(œ<¢~õŽ™fX‹RÁl ºIöQ÷<©‡MÁW9œÈµšM¥ ¦DŽŒ‰è_ÉÊß F›Æ¡î´;¦ªB·üJ¼äÇÔ®ÐéÐ Zu5À¯FßÉÙ}yž.£tÌ¡ÂH|{æÕDÆ1ÄSq85âg jäD;²ø/™9/YÔiÉ g*•ùÎ9ä{’۟Ǹ‚xúÅKF|òÉXy«/™œ+!âóN g*ñN¥ª@+Èlj¢ÿ*ð¶K Á"Ô©O':ˆ~{mðÌx²¤zµÒȑĞÊz^’×\ž¹ÛE‰²E‰°EéýŠT§è ~èt‰=(¼® PÄèlÅ"¬Ö$ý-Qô{ŒÄJÃôO©‹º1x‹`×@Õüj±¶¶Z©{S_Tr GÂìÃSŽfØ÷/`·Må9ÂØIÇòÄõ0pl=Ú H=ZÃ,]ÁÏn4ELEÖóŠR_«æúª™¤%>Ö7?€_#¯ûDUóêè4^ójäէ쬟5ý¼Òô_ÍÂLÉÖ±:󦱚­žÃ¬«Aä1Wβ–Í.°üFúS*oäéKþÇæy-5kÖ«>º?¼dŠš„{Þ6$¹·Õ ÌÑ]÷NÙßìS«SøÕÔo¯€uÑO]¢†fŽÚƒëé&SÑç9Uȵ›MC#âR-ÚƒAm‚-°›…ú2—w´êéqíy*wBm ͥ啯ÚhÑÒˆá™`=ú¯bÉB:«¥xï’Œ;j‰ý½}? ÔЋä 'FØUJEt«2¨þ]‚m(ƒñH§š¨ ÄŽ•büU:se2TPuU⯂ÌÁ8(\%ò$!ˆ-N|*Îø®¢ŒY4!D±/ñí Œm(N&•A¼*CÛ6¨ú•‚~L!¯‹¢LÞÀÒU–íê;‡i…:ò®”ˆ¦i"zDêÏg{â1·[`|…ç´ÃŒû }$>«EØI|؃Qøô-̉màWÒ–ÕêU¯ÿäi@ÕD‹6°BÁ«!zß²½£+Òî‹ÁØ>|GžZë«Å6¼€µ¾‘õ¼¤ÞÄy½K¯ã±ËüS_¦UÕE}ö¹ï=g˜f˜a†¡sèΡ»îî–ÆÀîÏÂDEABDB»ýÌíußïÿÿÇGfæ{Ï=±ÎÚûì½ö’d'Zí³ÏL ¹¼Òà/ùÙÜaþ#:.ï›JAC)iµ?¿j”#§!ÚÉA%jsiu›J’†6çSqäq²Uííy}ÙLKãÛ¿ÆS53uäð²}\êc½m6%¥ØÀ½˜‹[ešhŸÄëÝÍæeØwʯ´ródü¾ƒ§-½1û.€y©ºÕ÷ØÛϪn†Ÿ§4—ö`F0Õg t-ð«zöiy—~û.±#Ä«¸ŠÆ·Wðÿµ€r½Üuö]SH}ÑsD ÍØÓ|çç̪P-C.QßRõg‚U5Z¹*QnÆçjài l€Û¨dSxõbØÒ- ó™ïü±û$¼Î=gNÊn?äŸ ›¯žLxÝ•K¨è»À|ÉN¯±ž×Jì)ke8ž =#›¦¢%=LCðŠúÛu÷Ùˆ{vÇ\YÚêûÛ30³rMÛp²;îçá~àWk€˰~ã üe¿Ço»Ý{ðF×Ò¯—7dž›¼Rý«Rf<â¾ €_åêË¢*0åqÿFÀ«Ž<œ DGßk0î›1s¯E¿WGïïß ë€_õ2»À§_Æß‚žüÇ•ÏÑ|œæ6àUq_Õ/¸|¼éþt›lì®+MÑØa[`T¡¸pðcj˜•ƒ­Y =Þ =>–y-I'óRÎÛ†¾¬Ö¿žø”Ú ;ÍtÛ>6˜«v¾äWúÖX‡Y˜1;bûbkù]Õ¿šƒu«s¾Fy@\Ã3WÙMÆ¢ü­-öϨÎDùLtÒ–Î;¦ñ”gcN\¿½ ó™u/‡–E™‚Ìž*‹gId¤F.õ“‡Ð‰õ ™ “A/{±xaiim%³Qôh Û‘h¢zµèõW¼Òg+͘ Õ¿›HI´85Þ+?3ã±Eh5VåYœž¦’W£¨Ÿ*o"]@U­ƒ–B¿½ªXwỚÃX݉p°3|4P_ÖeV6¢Xt§9,e%ªAs+Z9©(½üd"ù•ÆKÌ’š2‚XÔÆÜŒ½©~À¦Ìw.äwÅÝžfü•Úõ{e±êé<`‰µ£¬žüŽ}÷¤Çú§ZÏë^æãCK5$Û¦3æ¡EÐ5&’Í(9hÇÕ¨9£L½ª“’h_F/v ¿jjžÇ:ÚϬûç1ÛZÃæÍVæ*ï…ßÙ'¤–dþ`*¹Qq,=®ØÌ¸Ðªô[%ñ÷rôd§Ð‡ß‚¹D‘{ ¼žÇµŸ¨Ja¼hSÖ(‹ªÜ§Ç#Ú3ÈáJĹXO2èω*ÒGÕ!rã1­ŽúZY´ü”)iôPgF„ibª;!׊¢àýTùÄÏZ`ÅL¤€U„ç£Q%× Ô5Ô)ÎXÙÎD,¿jÿ#ù•Æ_ÝoÀ=ŠÑﭵϼ(/º󶶤ˆÆr ^õºQ¬í`n”þ²€Î:ìù°µ2M;Ö£ïY­À½æ ó$YÁð[=ù’¬«®\¯Ø½°yû(k’ÖáôÑl3Qn³ã.Êh.¡´¾s*LÃl݉+ÖÄ“yVQ]º:ðµÑŠAc±¶jÒß¾xµ–Zm—ý±–_3ïå`´»¯Þ ï §azù—ÜfÂ-1å%Hèêò¯{U®Þägù9®_'oÊl·Ä öÛ\[Åì”ÇÝ—áKFëm]ÈØÞ¬ï;‰uZ£ ªâÚ‰ö`6Z3³êa G!ëØì/…¢qY·ú]¢¯á·£E!v…»ü§®?æý-î(XW[?øCðºûÁ톪=”; ¼ÒsxÍü˜eÑ—5Áåšð|P3Í_¿ŠüEÑš¶ô¸41ƒãz}à¶ýmëØ®‹Ùfœ¿Å7Ã\HÇŒÙ{*6WÓ »x"@>£Œ“‰-å1ï¤Úú¦ÚãÉJS;!Ò@ˆTZRxÚžÏ_þßù`"}Weh÷%ç´fMYÚv/ªšÔ"ÕJ†Iô/5Æ‹ðÎÙdU´÷”Uå?“øZÅxì}*½ïÿÓ¿ªÌZ÷‰<áÌ!^©]–þèÁ{#¿J¡.Äÿôrø™DêÉdP9ƒH›Ä:Š;yqK·€Úã7°‹³–AWâdG°Ýß°Cêóê‰Z†|KNûæÄJØ8ŠíÛÍA©.˜¨Þ„Æ3,aÛÕ¼Nfó úa•ׯÜV<é†ÝïVŽÚÛ Ìà1…Äì§0ww°6tÆç¬<,›Ùº=ö[)m§Ðß~VÚE;Et„þ–o°Wí¥¾èYS¨TÊê8~e:µ‚ò¢H-ö†mü‚1«J;êÆR4`þàXŒï3ÔœLf Ÿò¸(^t4Ú5’ç};ÌÛ66žäÌR¿ÎwåJ}Þl‹=[NïysÓ‡ñ êQÅ!ô_i$g?ðÖr´µÊc¬%^¥Æ-®Zf)ô®Dþ¦JŒ-V}*9—"Æh-ûJqåªæ;—c\eú½+‘KåQ'(›1 ©¼z q8Šmˆ"éSȤþßù`Z<þª,#é3iæò5‡'Œ•è+I'”`å ´=‹ó©KQ‡¡™õd¢Š†ÅåFq`Ýç·ŒOZ‚þöŽ´%[agúï&3^ôA0ö¯˜ùóVÇzSTqך7¥¡¤Òþº<¶Ÿ™ÉLîÞ¬71‹}7L§$ìAÅ´ ¸ÏYÜO{ =Vs™ÊØŠg°Goc×ÏL‡y·leïo²ŸI>b·ú¯.ÚBÖtþA~Æ}Ö àWyÀ+å‡1iTÅ_zAò¸N¼JÅÊØŠU ƒ£4 À:´z_Ej漎¿Tqóap€Œ¿ª®º2áoöy©€9¿ öÉÈp&8å$³N¦Øqö%i¼;?¼³žv&ùÍ­Ô–Œµy† ½š?Ø{±•žèZøÔHæ«Tfþ`m¼ßž5U[Ãò<Ëz©ÝcoºD÷ª»l©ÎóÁ0Ш¦®®µýÍldýÁKX‹ÝÑÝ ×z‘Q˜°ç EO¼ÂlßRèÍBð<͆ù ܧ5c‹SÛÁW ”²hÁ¢ØKa[·)¬†OTu—\šëã^5çåWÂoNx(ì¼Z’0ÏåÁì!˜#öíAÍzœ`^—ça‹ÕÀº©ƒ¶h®O7 Ô Vø¬Aµ Õ“é€{ߌö 6‡Á9àyÕ5Á}ÞNÅ;õüsn…ÛÍ1¹ò‡oä?ò—¼*í¯…=¸Ôuñëå5™îæ»á~ƒ+¦³KvSŸa>Öóh0Ðïå:žœLD›–³†jÆE1ƒð¹mÀ«~øYw¿+ü0l,¯;ü9ç}àUW“~µx¥µ]·º¾‚¯ï×)~ ޹Ÿy>¨ñW±ØIÛ„QZq9ª?X»•Vfk…«§âž“ÍÓf-4­Gß‘q×é¬ŒÑ ï*rì2}l¯ØÎùYfßì;ò¤ñEsol_l>Oæj‚_ͦ/Z-&UûË&RTÄõvó|ÐãÙšc*Íó¹ VL%s‰ô’‰QyÔÌdœC=î%øz%V.ÈeNM fO廢è\Ún%±Jª‘«EfT©4Ò‡Oc즢©*󥛨}2ýÓš]†çIQ‰Œ«@ÄќǮÄ^GÏW‰¸D&íÌ\r*=E,K¬s´ SÈœœ‰ê¶&òîݨ½ÔDÕa»cNwâ}›cn{éD r¢ÙgÊb-+^ý‚=ì“N]©[Ì1àRH—~@ˆî¸Žb|3MËjò¹©f¶ôÆŽQ‚:+yN¤Ý h˜%sÉñÅ]§Åõ'™e㯒Í{IZÛ!Ä«/L ‚å¢gÊeàË r§ ¦Sð‡É²ª²ó¯©”r©Ù>F^µCƒ¦Ô ]–f‰jÎÏÄÓ—Ꟶ0ZÏ¡<ϪgÍ!Ó^~FoWn}~j_–zhå3\J…³°ÚGšIò±ÝÆ:_í»àyÄj¹èpúèŒL3ÌÎ}°Ù¦ë€ö3o›¿°¯öÀ;“ñžV¬{܈ï©Ú{àY\ñÆ©‹¹6öº+기¡K:VTÅ`.øU WÉfÊrð« X÷mhÓvÃ:é¼ÏŠçÓo£Mã±NÊÑBEí„/ mñD-ÕVÙ½øVÖÇyxµ(Ìó(ãÞu]g÷Œ¹*o¸î¾V a[{§ìLøk’ÐÄ“GÍÏöàÖàC[ýv'ðj¬\=l¤J¸ÇÜ©?ÏÅjRá ½ñ]ñjŒéIð«ðw¶iŽGÚ‚Ý ¼zÞm÷o¯òå{ßÍ{ð>ì»ü?íxT^‘in…ëáW3^t³ìt߇º»ÕÂh”•KÀÌÆhÁ$ôÆ3ô¯ÇLF=O†ßÕÔÞQ5ê'ÃߦÒmÞ鯰ž×:|2ϧú[ý%w^ßæÎ½ù…x²ß€W_»‡mUú¯~ NÚVÔCnƒQ<ƒÕ*Æ@\joÕÂCí 9<«*GvÝ.~ö4ˆ`:Ÿ7™…vu¬×Úh³÷mÁ8È—ÌÈØØjú„ªbž/Æ¿ºV5—`µ‚Óñ[ìºL¤AÕý[†çV‘_¤ï’AÛ-û~-Öâô@©¢_5z»´ÞD=ÆD V Y£(}V¥™Wª÷Í&¿*FV•Á3ȨNÛžÁtõx•ÇODµ“ãz}åX 5ªç•Jd,B$jŠ‘H£^.#ŠÒÆTœž ÄŒª|):k¼hz<2Ò͈Njf¢Æ¢ïVÿ³`*_P›®«yÙ”ëV­Ç,¯$ß3vìÖàþ‡qw™Ó`ß³½ÃÀ¯QO&c9McéSö0¥öÁ4úµÖGòl²®9…ß&³?¦z'??ü%ûeÑÐt*ò¥Ä£"ÏUqFŸFÊ2èËä:Êæia.ùUEÌ»D2õ|i]ÙRD½*ô¶—#S¨FÏxÑ8nD¶^&ïÆ(õbÌ¡.÷³Gµ£³ÅÊŒ¥wŒu/¾(E_–æ;w ãJ¢Çª4µO“øüY¬Q舕é³r<ñL¢÷<Ò¿Ê$&¦¡ÇÅXî$³ËbE“x6ãmV½Ù›Mbì¬- Å¥^Á Ô“É2`§›À(:Õg˜dnÃ3OÞŠÊZѮň$¯ºÚþ±aô]O0÷úçWpýçÌã±ßc³x¶WûûBzkÒXýÙ’Æ´ÏÁ^Õ}/ÍÊÃå¨í’JvÙRz<+'‰™=e{P$;šGµR˜‘^Ÿj¶kÜBi®ý<¾W†þötôe~÷¢(ÑTÆKD*Yéq]ÓÜxL|?™ÊÏ$ËUb—#À:Åùö¢ °Ó­^çÆñ»PTÏËØo1WÞ£žL “ƒ!ÒÀê¾rÉ̦uE²´S•>p'VÖ| ³RÏïºaDj³úòãØ%U/ø)p‘&ઠÓ[N†¿Ú7%“ë­¯ ‡òls¹”°Éö~©‰Ö_…U<˜®Îc™#° 3¤þz¯âšÍxõp‹ÅŒ?XNW½W>ŸšD+Õg¨ ~ußílæÅN°^êmÀ«¦RÂWößÚX}#Ýß°ºwƒ1úgY)JëfÔÅ ¸Ð: /…µìír8á1ç | ¹ßœ·?ûƒ3VëJï6Çe ëM¨E[hTßNuûÓªNu/zC«?1ú¢UѺ¹hge3<œæ~ 7„Ó€hׂ_íôº&O~ó}ýÏþ¨_ošËÝ~´W™-ò Ü俏kÀ¯b¶”Y"«±õž0šß×ß”–/™í˜ý]5¾†òä´pQõÓà÷íù.ª N¶;<¶e,›W)¾†_ƒ~N^íöŸ¹þÔCþ}ÞÀß„ëŽ8ñÚ<æ;ÇbÛæ˜ñZmrö£´†öâi{S1Òw2j7‰gï-è]T´På›k€ØºŸÞe®µcƒèµžcnó;|+æ$?fÎŪ†ÓÈ\ê›ö²㬫³îÖ…¤TÖ«žo/Ç ¬ªo•?LaÜh:#9ÓÉtJÇŠ3“OqH#1‹‘_5f zýlÍL züS©>“J…E»¦¬…Z”,/›QIôoGùƒQc9æD%ËH6Q¾sÆ‹–aôTf)V&ÒÒkiÚ%˜W­VcQb©¶¤d<§2ï¡¿§ÑZôq}ÑLb²ÚY­`©Ç4ƒxØ’úíÊ‘ÚÁRJ“lÃBôhEù†qh¿c>Üo²uæ÷p)Ϻ¥ƒ4ϸ§m(0;e­ÜD?Þ3AÊXž› Âê:¬=—|«©-ìgÁ™oa¿‹›2—ð9`å~VZ~  º|Ç=­…|~m_“ øÜƒ¦¦ô `o0 dˆÍ¶wѯõ_ôÂB f ®Ô%°63Û·?Pø2³ŽóÁGÀ¼Ê˜=¡«+¯Ój.5¨óRß\4õìëòÆOëMv†Ïº-¬®WÒWõ%ƒ\½«»½6¸ÈsWjñꂵ¢ª¨3ñ@ÎÉ@¾_´Jzw 0Hëy]>u=fMÑ=°‚^A‹µÎje3)öBØÉÍ«èI“»^×Þ½Œž½Ïýè¿ñφuím²>á W.¡ªo%™CöÝàxpÖ*cŸk^—9°uõÖĘÎgÞÈà>Ön¾¹ûÏ£¨ÞØì@MfŸ‚Õ6³® œî> W‡³ÀúçÝfÿ†[fªÊ羇ÿ ŒcXî*½Ÿá üv9*7¸®Ÿ_å,˜ÎRÙí¾ _6• 4’¯À¯FÑU“êZjµO‚ŒÅ=ƒñh<Ãã<ÐŒ­á'aG鈱Xë?u1_ݯÂg_Ú¯§ÿª;ìÁw`ƒWõËÐÏWƒ£îw¯­µ¤ñí¯Ûf˜ñå¨ x=Z ÿíÂXLÀ(46Z¯yŠÙG=dUvRü–ä UÏ-J¢ÿêzÛ16’kdŽÙä—úެCó¢y:v!VH §šé*‹Ð‡ḛ́k€ÖF^VÒ­X¡%ßÞŽçƒ%GPžøÌh÷Ô¸^B«|•çªNgîK.ë8§Æë;çÐZÌBßÕ¤~V ÆæRSK½D­ð„)¼RT#,‰ç'“¤*î•è*BÏR­Á"|5—¨T„~ê2ñê|Fï¤1ƒ0²óØÙ<ñÌf^sžcd2+º»ò¬}\%ˆªj÷µÇŒ[Ádcï÷··…Ý“nÄœ)X­eå"c<þÄx=l2W°Êœ–kag)GêkFHûx|û ³HÖÉRöÛ43GVÈ4>§ê®Ä*WÝœæmð¨zíÓèÃ&Ò{ŸlÁâZÌ3‰›ícRÝN²Ú_ƒq\µ7‹~‘aÉ­£nü3!h&U­r¶ï̤` ø•ÚÈ“å¼]”õ Þ .Ô\r%ƒ¬çAsó´z²f³â•2•GÁÊ'±°ÅÞ ÿkŸ’Š˜u·™\éÎÆú[an–Vu7 w>^ÍÅŽÙ#>EmE!ùÞÃõ·ïšù̼d4 {)ZÐŽõ&fâ>­Ð§q¥Ÿ`öÄ=æg±¾óo#­¸\¯]§<‰‘¬5QÅ,‰í{¸Å¡V ,í>Ç}¸—Ì»òˆ»Ï^5´÷È¡„S®ìÁ~°¯‡a6òÕÔ¿Òª­sqW­<±R•3½9U1›šc­«æêKا¦â sL›p¤»n SúÝjÜšòÀ«zþ´ßãoÁþ°Ú÷‹©‡ü¦Lq‹]7¿–ñ¢›d¸ÙaôvI¥—ÿ2^4½­^Õ^éÄŠfCÐÛ¥ðÎL­ª‹¿gQô>Úƒ­õ$ÓŸu¿:Ílþv™~«¿èz µ[Ýa_ íX„çùüê÷€ÕÓùUÆÅŽÙ6\¯Z÷óñ*`NÔG¿k^ž±¿ÖäªWLhžHd<ƒª5Ž#_ÚfÆÚA±á\‹sÌ ƒoÇܘ‡Áv÷ÆV0;¯.ðjÖ|29I}`]¤?•ƒ¦x•Íón¸VIr-Uà«ÈxQUWÊŽW$M¦{N\¯!‡(’Íõ«þöâq®•Éè«2ô‚嘨*}Tצ#>™¬)—ÞõH>•wˆj¦¦R"“Ì.-O¥õVšõ3èoÏ·KS" mÔ•Q—ò¨âÌUôñ<Ÿìx=úºôÀ%˜€ö^½ZщeirºTôç4ôæJÚ¡š ÙøU”üê1“H}Ñ$쯮á>â9H ѨÔ]æeé)^ô:ýÍhQ-<õ’56+eS<Çypl%ðJŸxîõãÒÐ#Ÿ€{ ¦íað“uñZö³ÍayüJýNwØ£À«V{äkÓQ\0ZÔkøxг—\ëc3 xUݪïý‚ô¿Ò{ ƒõ¸*(AL[ »  øU°¸Îhõ1¬3eXí€R`WlõüìAìØXËuL}ù üVZ6žDµ(…3YÁyŠ4²íiˆ«|{Yõ냷LÃ…Ts´/8Ì;ø»Ðâà•‘ðĪ:{±fPçcƬ ¿½5ÖÙ9ÓØ> '±º{š^±·\’;àÞc¾s9_Ægµ†„kl˜ ÁXÌ…³¬úWÈØ­&ÀÛ¡¬?8=ÿ%lÔɸJüµÌŒÁœî¼Ú„ë3æbeu&oÇsWÅ|{9î¶Æýíç\–ä^0äu÷—»1á¹°#ìÞ;†¸2Œg¸ßœ´?woZÕøZN=ä‘|öºDÇ–TæÎ gØž®MæÍxÆQXÉÇñªâÕÀp»î µj!ëM¼ën0¥äàÄxUNnóËü2×Òï’weº›î®õÛ\¦-ivÉýøîó¸_žVS^õaþ‘f^ÏÆ»ãþ3pω·ÒZ·í¸¦õëçR¿={jws¿âþqù~ÐÀû"~øUwÍmw'|Y?vbóßà0øÕ#Ví–õ&!ö¦mŠùœÕÑ ü¹"Wëv<ëtô¾V7€V<;'3¡!ã‚t…5Çzé‰ÑP•ó›Í0;86€qì³Ì@¿ÎwãYÚsÀ«Wb3©Uϵ}W”qò ±”àç+³6Z.ý?jo.gÄg*5¯òˆ-iDâ´^jÇ£Õ‹Ñß^†Y;IÔèË£PIžKT1Q×LÆ™'1Æ@Ï"Ý­¢äPDš Úw)´Ë’˜?X"éij2µßr°‚ÊÅu²éÃ/E¥ãêäWjS&Pµ!‹qïQ}çlúÞõ0Ÿž»æã#¶%2nõÕ SXw2ØeT¨5#ÜõÕ þ =­\k!¸Dù’-û+òQSŒ6 æ;HU)C?ÕtѨõöµ4kdƒLçyâ@3T–an+ntÆûç±îÓi‡þ «r"íî‡1Ö[1£”QŽ2GåyYGžy·ýTòÀ¯”K{ó+;J4ÓÈÚ߰ל’£úyàWjSnF-ƒô§=¸ŠõèÓXý -ð* ³[£ÇÎbÕFowV½ kTkå< {°²ü€q®»ðk𫇥2óûI·pxÖ\\s°íhŸ6: \R¼j‚ßÕƒ3ŒBsã:Çð·Ö1ÿVÂ`©Õ;ŒU3šg’5ðÞ:ü¦xÕŸioÈ)V›{Ó9wĽ¯Y&’ Ë$#˜”Ÿè~¢mת[Vï83­Ï‡£'[¢_ ÍipÍIx²Rxw1zY+I¾U}¦¬ãÓW°‚uO­dÖÆ^^m +‘óÜ®’é7e?ÈxÓ„gÃÖöq¹3aƒËH¨á{ËÀ«¯ƒÇƒl æ•°uUŸ¡°y«\/AK«ñdiúbµŸÛc65ÃÀa¢Um0Oû…³Ü¥ðþp.ú ¥Úm×™Æø«Î>H8í7™|ÙîgûY®.øÕi™¼êë·º$[Ù< ϸ—Ì@ÜØ]ÄfØXê_©¿½žSõ tMÂøÜŒ¹Õó·1ZùxøwØHÔþ0Òú†àW}Œø$¿Ù¿ïtfì^•D;4]ë;ÿêöÚÊÌw.;e›0G·sèCžªåà)ë§Z ÅqÏAxÊ™dª+¥YRºÞZàþ°W©7f›Ã|gµõ†šI~­ï“º—5z76‹wµLoæfЧ¤Ù‡YÄ‹*¸Î½ôv§ÓOº‰±ã)ô9•6©ñ¸Ëâñ¨p=£,Í‚EM¤´^‰x¥þízô´§×¨#õÓ™™Nޕʸ,­hPÌ$Ç£¢ÚÎIdlQ=ú$ƨW2Q힨aùU.=S%hjËËÇq©ó£:…šÉA…ø"¼ks¢5_°ZÜW˜Hý8ÒoOf¤|¤Ñ‹õŽV™¨ ‡ÆÌGším1·ÖzÝøk:v©Lpš¢ŒÛìÅê©Q\Ó{ÒV2Eó—ú˜û¤öu—NæV¹Kf‘­Ž3e»Œ£%=ãù9+lgà®E¤¢L¡û$Æz=Z¡¸=Ã| OËMDñ]ö‚x;ÊjŸ|ljÉ9;6ZŠùmÙiÞf½Ô÷LO°¨|~æ30è4Eûò–]”£O~3fJ´³¼ÑS ›RMžÈ=`öbw+ ²ð‹¦¶|ÃÜàºòVø»}Z4þa#ÚÙ*¼žX;_ÊÛ^°52ý Çh³Ÿo€½r*æäfUÀŽCµ^jSØ»£€ÊNnÀÛOv=ë‰V4ó¤þö–Ø?Ï›Öö”Bkú™yàWÞr©– õ¯~±SÑ›SÜPû²Yhê´µ#zRëˆÕ5Ï…ZâӋкO€WQ¦ïtX?ª´Ò¬q Õ˜<+èú¹!æP5³1v4ìïÖ„5XÏëk—íF¹‡Ð§÷aÍžò‡ö.¹˜ð†+ŸPÓ÷’»Ìy{"8±Õ1—˜aã«nÖ×VëÄ K­ ¡1”{°žT;§÷ë€~ŠìÁ–ª’ÎqÃ=áÚƒ¯¹ þ¤[h²äGßÕïÿãW£Í·øá~¾kçwÊQ)t7¸Q~£K±eÍNÙã¾ þUôeñª%î£çZÇzµÚ»£×[cÝ4GoÁÌí…ñQM®»ÂÆ¢§÷ù\Ì——Óz©¹þð­~èÕ]îÏñ]üRôâWàWßÂTý¹µ&ö`sž¹uR^ä9Vìa5p¯¦F•ü†á¿¸c«6¨7 €|@­Ôþ@5ŒÚn¦Ø±A|}¦YD=dµ—^2+cc‹¹.™N¢xY”ÖYcò+¯Äj?dOUÉ[s¨#—F¶T”VV #Ï‹ò^9|=úDizسLTw¾1cÙU—©,ZY ­McœT‰x½‰tjÀÕçõÉàRâQ왌)r”Sãê3q~U‚L((Y¥m\–þö"ŒtéHŒIa´{:ž"ªQXœØ—H¿z>}n‘ÿ*‘íâÞ3 ¯þ¥vô®"›TŠO‚ïNõ+ÆSqr)v©<Ö›H†ÕqÖx&ëMÜlJ#ù‹B}Í6ðˆå&ÒC^%ë±Rt\z™^²\+™9;ӱʧ’§¶{+#ÓˆÞã{;ÌM¼þsEîa=¯Ds¯ýW2ìx«¹‡ßšöò"šåø»Yož½æ§¦qÐZjY=gùÒŒ zµE??XÚuAiÖ"\¼j%©¢Õ’ °ïe6jYü¯Õ&öRùîIsÐ4”¨ÅY_΄¿ÙDu²·š*2<\ˆ>X€§ªo[ÛRlâ*¬¾è#µ 'ï‡T…§è¯fbU7_až~mŠÊfâÎÖ¨*ôp%ôýMF뎶Å?2íì1ð«rè÷±±c.Áƒ=ؘYÂWñZõÒOp]íIsg þúóŒñZÌØ­æ)p=‹šþð%ìÝísÑËjvÁü¸ ¼mOÛ`1ÕVN±>Ž*~lˆíGº a%Ìü²î#g]_·ûÏAWÓׇ=ØÁ>$ÛVº´„:¾ìÁWìÙà›à”ÕœîmæÆTÕmº²úü \¹iÖo[<ãŒæ}3«ñ¼ªŸ_‹ù83Y1)™6PSV‰L!¿̈û4æãLg &ÀÊçšÙ÷ͽÁõ× <•›¶kuèÇÑ›­°f§¾ˆÕ”‹ö¬†Ñ¨÷pCõEQŸ¡¬²[™ïVɬˆ½öt;ªZyÓ]q©ô_’'\†ßžðBØ x53a²KM¨î;¬e{5xx¥ú¢ËÍËr«ŒÆo=˜é3_U1WCègVÿÖ.´ f}›¸>Ã[æm̲^xíºp2ðJëÑo4õWkü;n®É¿Xoâ]¿Ê4•À«Õ®À¯•Ã2˯Ö_U4·ÈîJø²Q{iv•"v®YŸÙškè)ª½·+ž´ ÏÓfƒ…ß¿g£¯gš{Âoâ½r¯ÿľžß‰o'úâ~0óôÎîŒOõíWµÌïÁ»À«Ç¬Ö•Øha¶Âl«ÈzÍ_Qÿ*ìºF¸1v© à¤âX¤ï‡×»¢'tu6£¾èt®¾ÈŒrÓ&™¥þvà•F(¼lÇžÍ#ú`VÈ\ò«bœOc¹Z”M0P±Xq¦#Ʊ$-<Õe)ÍUY„É&Êw.Ï*‘þU&­´\b—ÖK-EQ ë®Vf~_:ks•d.¡¢CúÌ‹ñjÙô{'Åõ²)ª¾#ͨNû¯2¨ñ¬>vo¯FT"ÙXqž&òÌ´¯’Híö,FL$2Ã0z2gU—\/d¾s9#iÅÆH!YãW&bDñ šQß…Ù†m1·KIOò«B Cm¹J¼Óšz»À¯Ô6Ýû¡Ÿ”õ…õ7»¥ó§4Wz½L¿JbÜï¹^úóú£q§÷1Â:¦}©K]{áôÏj¬qí«ùæCÙ'ë¸Gì¶?‚9M·Š1ŽŸÙ ¢~ªï¨'ó:ëMœ¿J”jV}ߘîA¥ sûÊÛvIJÍ™š5'íìÊÓЃ`YmèeÐêƒûŒÆ=€Y£ñ Š3uä|ø£}RToãV3@Ú„ã`ai=úeözû’¨fûs»é=XÑæX?»0RÇx kz¾"ÏHsÖ„2‘™"ó1s+33«,Vq}£Ê,µWìkÌwîhúÇÎÀ|ÃÆšª&åÁ’ƒi` ÃÜ›ò†ÙLÁ§.êLí½ü÷(Z¥šûópÇïÀ5'0GëEùƒ1YŘƒºÀì xå ,¤ºøD%³.v(ìᶆš”í>peÜ0÷¢9#û]_xÕÆÞ#‹ú»ì„ú¾§J»FP>‰ßrɵ.±|þmŸá¼¨Ý#Š52ËÜ,l/ð«X?˜ã@‰]TlŸ„Žßó1s‡`eªÍ«u¿C_½\ˆÏÔ¥¦ŸêS–¥=¨§„Z½ï}؃Gå¸ÑX¯Q±£°Ë»7«U% ö`^0ˆ?Æ ±o›Ýò³3Z‘€ yõñßÓ¸j«OÃÓ_2ôÁ¼…ëd½‰Í üÔØ‰ÅÜ‹Þ3wâû°çmí ¯¿ª†ÏæºÁëzÃüXîsýþ¾°¶½W.&¼èj&ÔóWí{Áñà4ùÕ"sXöó|°#žcF® £žaö«ÂŒê¥­Ãšï‰¿´þápôÕ[XaZ«¸8Ï}ÞjÄ–þEw‹?ên0¥åOßÚÿëOû¦µÜìÇú]{¿AŽÉBàU?¿Á¥Ùjf»Üã.‡¯ ¿ó1kkJ2ìÁ‘F#Ô”?¶Â}¡gºà§jÒ zl Õ‹z2Zþ|ØTô÷nÑó•üV è¿.¸qÉõÁ¬ÝáÎú ßxU×üwâ²Õ±š–™â±Ìw.ÍH³K¸¿Z}[âZÌ/:¿Ý֔ΘLnÕÖ­¹–àªg2Ï^ëÇýzž¹Áßå»E^2‹bcsèjhz€_ÕâYye£jój7yFœm$£ÑÚôm±#åÑžI,+?íôúô¾•ã”Íóú’Ä´2Ä®²—\V`N¢žLuæ÷¥ñL¯=^z^׆ÏTÌDz/)´Ä’éÍϤ —Lo}¹8K#6Eõ¼4^TcÊ4Î3‹¿²ÄÕJíÃF·>+’ûe3ÇH=Jʤj3o !®Ý^ŒWT¿VV<[;Ùh}éün}ŨÏpÄü‹žÖ3»yæA“{PñðÌÿ{è¿JeüU7ù/s û˜ÕÒœþ«¢˜¥[d,$¿ºÞ —1ñZÏj9½‡µÅóÁt©+ÓùüûñÎF³½°Àü*OKt^ù=¼šj•×}ªÕ¶ìTÆ©þ*ß  27ð¬i’oõšWL× FP™¯Ãvv'/±Ö\sI…ÝZÀºðªÏÐýÝ¿^5Fÿ= ¦UvfeÌ•¦r9 ƒ½¢9Èw‚é” 'au5H';8¦µ¾Á\fî¢JùxÖB½•žôþÔ"(Äx—a½åsèÅA¸oSôâ|ºÏ@V1ßY+A6ÍíÛ°+·ö‹½æ~€_õ1x _ÚÛ@c!†»‘öMÖ›¨IÿÕµTHQ´{†ú–Ðkc`¥|FÕ«Êxm%•Úa_YÎ|ç&`w“ÐêÓè·ÚŒ‘Y{°»»‰zȥݷî¯p{ʼ%ºÝþ€6ìh”{qµjùÞr»yÛ^ŽÑlž8)«Dkh\Cµ«©ZE\f5ªbåÞL=™nÄ«h›ò«Fk7 'º`.T…=ÿ·Ô¿ë–‚_ý ûìKÿ“M~¢_ìZúòŽÌt7»¾~½Ë^­‘'ÝÇáK¬½7ÄT‘oežN+wÕ§žL?Ú}Ðc 1'°æö#Ômç¿/ü2,õwÜâÏ;çKùm¸J²O§ÿJõdîtoû\ð¼eèŸï‚wÜ—î«ÕA–›R±wmkfÏi=úËxj£\‹QžEF™Žž¿ž“’yŠX}ß––L3´¦/ë&¡‡fÙ±A<ÃZh6ùM¾«>gfÇîŠ-"ÞÔ1d&ÆYK\{OÙ´²ôHØYÌÛ- +a'-¶túªsâ9ÎÉ&RÕ5[ºîYÜ÷£ØÑ¬¸¶Bsj— tÄçòø™²Œ -Kw Fªf\å*-®0iò¥ÒO–Í+åâ9£Ø+eB9DOÕ†*ô_%eÊ2!‰>‰®dŸsU…'ž•M­Ñ2ÌŒê–`¾s-¬"Ôî‹"¿¢ˆ¶°úgQWAãE›³¡âZKìˆ1é@–w#Vs¹DœýûÕ=&‘fÙ/€™ô_Ý íau('ìd–Ê ryà s ’…¼›ÞéÆN,`ÝK)j¦_õ1·0÷0ÿ~+Ñ,f¶Ú÷¥ŒE}†ó¦½|`ç‰ZÄ¿ÀÜÃúÎ)æ#àUPM1ê'Óü*Òè.'ìÜ "5îÐj\RF2yö_.Õ=£ULVj½Ô6@­—Á!¯¢¿ªc‡û<4ÁsRó~i)ÃÌCX•K¥µm ë­žðœy¨ñÕp'†âuñ×õ¸âf!Ïä~ÀžxÁüΨ¶fX1#¨ð^… Qù<û¯÷_eëð«ÃýÀ«^àƒÅ|E£™Î®½lÖª/uŽvà\ô_cF¹NÀ÷áÚ³€Žï¡%m1c&ƒÝŒb…–_ãù8 02c€%ïâ9ZÒû:'vöàÍa ´¥´ûÌ¥¸þî5óŽw½üô„'Ãþö>Y—°Çõ¿ê/Ošwì—Á¶àm[•õÏÈ)ßôp øk3zú°æOUôÅfzóº m›ÐÊIØû²Ja¦éÎwß„;Â)`auü^·ÝŸpóLŽ\ñmý;þŒ_oÉV?ÐßàúømrT減\w¿ÅåÂÜ,»«ásx–ʸWüÞÞŽö`jœj³ÙXÃjëõ‹ó«˜SñÂïâ‘b»À§؃w°Þ„ó÷ùO\/ê‹~â³| ¿Oö ðêg÷ ìÁÒÀ¥â±S¶!f›VìŠ=»s\VólR¿2ðsPyF\õ®÷}åMÑRåWj_l7 ìõ±‘ôÍ3«ý¾ ý!/š‰±[csY;µžé(ÊÎÕ¦Ó2$KPsöaÖðÒ*Om5Ê—ù~$3N*“<¨X<§*m¼Hs8‡Ù†Z1«9LTÍ9‡u9²M”)]Žº£‘²UcÊéAŠ"ÜÓy¯ä¸‚i¤æR‘wN7©q1ªáUÚËQ ù,jœF•$´NÊÿ²{´Æk5ò¨âôÂåЯžÈÖdð·(¦>…>übTÊIf{:2}-û6#^oBq¦À¼‚ݹ-¹Öl؆å<ûásÖÔ‹‰jîme¼èoŒmí~¥sWíÊöf•ÂÖÓ\¤ñ°Ì†ËæÝè>sÿ+66Ã:N‘DçW`KlÅŒSþ9Ë|%/ÈR¶ò~û”²Ó­rÑÓàWÚÑ¢qbŽOêµ–†ö ¼£Ù}ÏaþëjV=Ý-”q¨‚ã3ñ[L¡½.ùrUù>ߎyqo˜é±§c³È„4þjÚŸJí”úÀ«¨ Mð«Íä%©¬ô»Ž\(™1¥â9†Ùñ<éH7¯,yò4õƒT‹{€J1«$Ù“Ö1¬JOy-ÄR<ÙKfÞ~­¸M1ZQ­ eh9ñœj½REò¥(f4ªç•@Í¿<Þ«}éehocÎ}w¶N9U*z%×Jæµ"ÿU>Oô¬0ªôšB‹0ùÿ«[Ý ã7V-túÓÚcN÷$&7ÀZ."‘Öèlìã•ä2-Èñ]& ¯{…¹,嶺»y¼c.ãK›‰LŽ×Ç™`®‘±2ƒ¿÷ÆxžÇlR U+…þ¹®è¼¯-¤GºYlþ¤¿]ýx÷ØO¤žÆøö«¦…|jçŠúÿ’ÏÁfîeçLÀIiÆ‹~lºQ_T-ï~rÀŽ*0çNÍ•‘rÀºú˜¹ZoBñ*3ü àÔ ˜YñÛ>ììßhuÓS‡¿—²!Ûa%6 µ¢ÄLS(cíX¬ãºÀ¡ËÔ"~#«Ù÷ŠW·bœê`o׊;SÑ¥ÌX/š¿ðt#?cÙ³¥:žRu”›ãßË&Ç>.G¨Ù&öªKp/¸3X­$xU$˜•0ËM¶W̆`2¾ÏШÞ?{™çg¥šL3©/:Ï•‡;-Çìî‚×uÆìh†îH5Óõ¦óMoí ¯s«ÂºÄ«Ë®¤»Æ=‡àSw¿ßïŸ »Ú;äç„/\Å„ßG2ïÚ³Á‰à¤UÝû·Ì›²¶Xõx4û\S½F©ÔZ?o{ªvª‚Ь͌oo…Ù{}¸Ðýn §uÚûGÝÆ·—“„„6þwÿªßcjÉ]¾·ï®ñÊ^Yì–1^4w¾Eî‡=ø"°IõâóåÊýv Ú±hت?qÿæxÂq¸ã-Ø×ú)›¡ÇoÏ…±w7wø .Íצ~{¦Ï=xÙ]ƒÞºË}æÓ|s¿˜õqô|ð!«Z+L±Ø›ÌwÖê@Ћ™·“ú×Q½Ô‘¸óài\ïMÈä5 )>Ñ-Ô•¹Ý,¿J+n¶™çóíhk¼jæÆÆ–¯j˜^²óHAcs¯ŸÀ•ÅœXÏS.Çšz•¸š3ɳþg«û¨?žC[2•ÕèkÑÔÚÓÕí® ©"«ƒT`”y%âN%rÕ ­GOxr<Ã'=®¬•ESöÿ½s&‘*™\ªýl%yYÂDõ¶¢lìHcª.fCT{µï–EK¯„‰êòøx½Ôjg…ô+¥0Õ3®,—×O¢-4s'ò·ПU„:¯˜ éÊ{-¿ª-ñïcþß¼Òs5æ=ð«ù\טµ¢±Êãš•2 V¸F‚t5dºŒa,D7Œéø¿”Ñ*4g•™Dïdªa O³Á$Ú½²xõˆ}[êÛyŒ¿úhò…](ºý"?™»ÍQÑÈÚK¦1¬¾êÉ\0m‚:À+å¢×Ê); ¿k{Ö™›LUIÄwµ’æóæl'úÞïÆŠÞ‡~lÔzq xUß=~mŠÆÍÝW Utª#`¾"jéœrŒA¿Ôd}ƒÉÀÝT÷€×÷S1 ÀüŒ9ö*žr žM­¢þ@µ—ÔS„æøÌeÓÆ>)o2ö­;ð*ÑqZ°•”ÂNÿ¯U¬›ëºØ3æÎ`$æÖiÖù×ÓÚϳN+¬Y=yýˆY8¹ø}õúº`G^§¾{Üi+%aD¾Fåm‰ ‡ºµa%Xl%±2;¹ÞîSÔ>áüℽak{—<•0ß•Lhí»ËƒæŠý-x:8okâj…àWwÈHÌ@­¢8O«1÷ZI´:«ñ­ïÓxÑöŒo¿ Èqм ”é‰U7<¼ÉýÞj5äþ%·Ëèf`¦%$tòß‚amŸÝíxUeØ~uƒ[èÆúuÎÁ»Cö¹OÃç±V5Ϲ¼ü!éþ þ³%Œ,iŒ¶ô@¯7Ū™ÌüÁ‰Wuñü†?†]Es„ö0ß¹±¿ s¹”ÏÏùÅ dþà÷>ÛwõÚ»¿oÁf¼ÇjìÒ*“;dëS=¡-ö†£uѠ蛂‘_kfÒ»] Ï®õuÅ5Âøõ5˜¯±Í,´]©•^[éùîD”Ím±sàWzB_ßt“9Œ¿Je4ý€xDf9ôîŽ8•³Υ§'B„üD £ªÒãøQžqM‘MiÆ·gÒÞ©Œ™YžßÕØQ­M™ÏØÉd†MTsYýð©´§R©C“L_P󢓩c“ÆxŠÈ2Œx^1Æ|–"B• ç)‡>ÿHÿJc»ñs‰ôWE9ŒƦÅñª8fSyÆÆÇ5ŸDK2Æx†<žU¦²vÝ Dózt¯îÁ8ŠFXËa]+—+vUÀZÖÓ‚«™Ûa*?\a^ò{âZ3NÚ³žQ"®p¯L•…´ÁG€ß”lgOàÅ|FŸMõµþ‚ ¨zШOb>{eøÆ3²…\ðV[ÞÖaýÁd¬Æëä¢EœüG¾2÷™sÌ ºhšEÀ¯t6­ƒêAs¢‡Ê}vj/:^ÛYå&Ÿ¯µ>VRWfT´Þ¬ƒ5ø”ÆaÉ—è¯|ÓW>²ûEkÝjfI›p4ýkÓe޼ÒÊ W˜a²3ª;žhúðvÌâÊÀµ§Ìa¬Å#åW/'Z)½-^‚Qkņ̃BoT/õ‚égË)Æ_];âëyõ2Õ¤øU±`¾ÕΓ‹æ®@#žNÒbŸ‰¶«ÁÓ¸oKžñš×¨ß®\QµZô|°Xã:ŒpÆ3h}ÕW€#M¨Q´1öj8Ì­˃_©^_3×Õí3}Çýíþ¿êmwÉ ‹]ñ„V~„<`®Ú¯ƒCÁ«õË¿ÚnSóZ•\æQãt8v*ÌÇŠÑYO}†vÀ«!hãAê_µÂü.‚=x8x¥õR7‚ë,4éò£ïïð—ü:SSn÷ýüÆ·?#kÝð«[\ðb³<è¾ _Aï5f=ñ¯e0ÖwgôlìwÍц6V?k†õ½xÕYÚa/Øèϯ´¾sªOð»üw®·ê$¹+¾¤oáoœ¤ÿª2Õ`‹ÇÞ³ÍèyÖz7§±ãè ÒÉ ŒoKÇÓo3±Fy ÖõÓQ‰â‡¢_Æ‘Ûl63mØ02Œ‘üJ#ÒŸ5ÏǾŠÒÏTxµ8®Ü©*G2bIOÔâYq„j‹U[†HRœ5g¢*™ÿ7ŸXk^”‹kKéy¥Z¨å¸â31JÑç¥OP›ºîEéuŠÐ(²ôZ2/&)~Í\É)ôÍeÒ_”–aÅx¼hä¿J¦ï¨=ýÅãö` æi¤z-ŒIOž-*ÊeC Ï3ÈÛŠ‘_U×.tÄ÷þëp·Rôç«íÖsmª™Æ¸©,ÌmÍ¢ÖXµ¦•¿Y{¢Þ}ÆdÁSŽvw}Êcí¿›€ÝågbuO³sa¿ÛÍÌ–Ù²„X4Âô—Á˜Ûúù>˜YïÁvRü°,ìDÅæ#ÔIšÇë¯6E`ÝÌûn·g¤,ðJ9í%ì»?ÙÕ¢™OˆªO=D¿ú‡¦mPŸR üÅ´¿ª)º7 “ãvTMŸü­˜)ù¾»wš‡UÛñ)í±ûîƒý¦j‘jÖ•¯1"ù@Ƴá/ö€4À|¹Ç4“Ú°^îw¼Q®±íìâÕΛ—1;U±­ìX“w`&¨=ø2yŽF’|Ïj„ÐzјÎi¬ÏSsa!Öyæ;+¿zQÞÃç{Á<èbäW½MÉðe}b0M-;7Áž6˃)øÎÛZñ +¶³ŸÂµÖr‰“¬—ÚóEµÑ§0{ïP¡=-ÏE`MaÉíÀ ×ûm±g¾îàÕr“ã>t)®‡;`~ƒYåo÷Ï„íí9špÈ•MhìÈ“æ {)x7xVY}ìSÏËn¹žè«ž£yŒš1­J c1î² ïtFoAƒxˆ©õ臄sÁ¯î 'S[ø}n‹?é–¯ú^þcÿ°_kÈ?Í/r­ýv9{ðFwßè2l³BîÁw÷QuŒÉ“+2ˆ•Ó§ðüOgnSÆ‹j YÜ }£õû o£O$^©bÒ&ÿKôµüNÕ"¸ÍîÔv¯;ïKù–~)æÀWÁYàÕV«é-0)±·­ž”£òÖ‡x6õmdÝìhæ³.¤þfæž´åzS~5 ÿ«wx»™fĆ“µš¹àuÈZö™GbÏÄæÓêšNRˆûëgôô¢#àÕ'6vAUóدٌ…(çW)ä{XWÃKÊ…Úƒ»££Æ‹~dJÈ|öÅËÌwžÇÞÙlBØG«xîðˆýPН’€“måŠ]¼ſäG´h(“üÐÔ¤”Õ^ÿÒt ÓÔzûìø †dñš·˜:¢± ó‰W/cu5aíTU½z¿·4âg}ùŒÞ¥òuøP¤Ößí¦³´ cÝ6 ¤µíoo—F¸Ê‡XƒË°£j´øt`ÙXs'>ݨpÀ|lÆc?ée¾Æwš?1“‡ã£U‡z+UÑßõYe«.®Óξ¼ªŒì{Åî¤;ôo(Y¾‚7àW}Ì$×Úž3 ñ{5àdCŒÊBôe¬ŠGqg­¥«—ÀA'á½´gfwo¼þxNWê·/5zöÏÓŒç@À¯FPOf­Ér_º2N륞“'\Õ?ö´÷˳ ·»N ÍW˜ìgÁëÁ[V­Øyæ°Ü.šÔOTŒÐ\˜ h©ú™«ÂVÛ‰ûæ¯V£¥£0—ÞFK[¯f¸¯Âà ˜=í€W+üi·ì=–ÐÂæðÛMcÙ¼šçúùÛå9YæÖ¸^~…K±•ÌF¹×ý><ÌG_–‘d=hZŸG+zã9g¡†£Ê`ŒÇ›=FµZgR·á?áOa+pÝ®ænÿ±ó¾îÕÛ8_Üo÷W]wûо»Ÿ¾½œs¿¹ÇlYæ¥ÅNƒß¥Ñ'7{nMÆÜîÆóNcdåWóлÑÜ.Ëz^8·5^tÆ^±b™o»Åp-N5‹ü]¾3ýÈ/Ã:?[J°&ó#Í„<Ö/IgüyôîS¬N‘Âz©›Ñ‚ÒŒg*Éìåž³¥Æã ŠÐg•ëg0V,l+‘±¥É4ÿ®>#I‹3O'ËDÊÊÅ—ÅV¥Ñf eó{êqÉ¥U÷¿êƒ%é]J >•5<×Ë$šæk©–WûxÛ2© •k¢š_%y²Y”u%ªÓ¯cüU"O‹Õ²ãú¢ièÏ^Fk+¥Ñ¦Õ;òÎMÀBþa.¡žeØ ‘Þ2–OÝ<àSŒp.ñê ð«y»W1ÛWšÄÏ›Wd±ñ^û–T´s­Ú݃_}l§3>áOù–Üë¬ÑsÞ4¿R{P5: ™3˜‚»¾fG2Ö=hµÖTb^öZÌ¢%X=™ãÜ”ÙÎñ³"æÂ3À«o£×^> ÿjf€í?Ÿ.Åž>ÈÌŒ¿jŽÙx ˆ9Ì­>ùU¡¹üª æÑõÀ½OñœZið7ØgM £°fT·GÏ›1’t¹ª.³’ùWŒo?Gµ¨ñ±“κãî}|¾@Jú|ŸLòŒvíì§f{0ãy\(YkF½_cPôœÍz^§W8ÚÄ=ð™_€"]pGµ—ÆP•ð!Fʪ=x ¼Îm µjBiàUE7Ô½f¾×]?9aØÑÞ*;ö»Ê 5}7؃Ûσ‡‚Á¯jƒW—MÓº¸G>ïݳb+Ïç”mL“XÏüLkl6¾nN±¾sq30œã®„‡3ÀÎëû§Ývÿš›€ÑùÓ_ë?ð§üJðÙ{ü<¿¸¹EI¡[ê®^¥Úòf«<ê.‡O{UM»*ìÁ¾è©š¸~ …r‘†À®ÖKÕ­éh‡ÖšœŽ±^hž ¿Jì ùœó ½ž]ñ¹àWß1þj½»ì3|W¿=öSpÊ}çž²ºê1§>ã´êýyfæå`ôÂlÍú8#1Ó_ÛJç¹[uuÔë«wÒˆuiô‡eÌC«‚eß¶ÃOÁN'^uª‰|ìµ±œt#^7o¯¾dË>ÀÊ|ÁäðÜm#öãNÕSîcF‰æº¤›í”B‰ÎJF™2VÆó¹”©¿m¦0¦­)Vµƒ¥®ýüf÷úê‹‚³$‚Ù즿mµ¶À§ö¦‡Ä‚Å¢¹ßj>i>–ž æ˜\«møÉ´jÁÔ90R^•ÍW5ñ|) ¼êÅÚí/a–wÀÒ‘Yƒ¯b¦çÁnxÕ´^UÕ¸!9~m÷‹z+v› Ò>œBÕã¡2ʆµª T§ÁâÇ™{ñéë€ã©×—‹¹0×ùœ vWý°NCYAm½ÉÀ²ê˜ÅùÀµùø­1ó#sÝ+o¡}̸Øk®ìÁwp·–’~U:(ÄŠä^“×ÍZêÉœa%ƒÙÔ¿jdž êB ¬“‰™÷˜ýœ ;u1vuõÃ_^°Šéb£ÜÐéÙ˜;p‹ÂŠÀ ÕCÎwCÜaU§w™>'áyð«Ûå΄%.1¡‘ï+÷›/­½œ±ÕwsÍAÙ~Õ€±s°KuÂŽ³w¨I}ˆáØÑ´^j{ÌЕ`—ãañ¿„¹OÙ#ê.„… 1æ•ý î6ð«9¦–üì;ùŸü ؃ Á¯¦ø]S›ŽÛƒËWx>x5|챦jóÈeàÕµŒPi„ýD3™â÷Žÿ‡§ë“¢ØºUÕÓUlλl$ç 9³dXÂ’s’ŒäeÉ9JD‘((ˆ>fAA@AŒˆ€9§çóùŸ{zÞÿí§ÌÎÎtw¥SçÞº÷\ÜOôú¤ºÜ½Àç>¬Á\¬ö/ù u'üþ„ûÀþÇVw÷¯b\)w¯»f»¢Ûíç.Ãu‡=XüêŒýÓ¾dÄ˳xuÕÔc\¸œ÷]c͆\½F§9Õ«EØý&ÒRÊÂsHî¤DNÕÅÓ $^E߯™Æ¡AŒŸ,¿ZçZÒ÷ô²Úz#4•žè*ª«ž‚ë òˆæPfØOé ¶Xšþ£,̧»y.M?TýKQ*Ðpüä¹ä$©*ÈL– ÷2d(yÌwÔý²¨-T‡ÎTAe­À.y:¥ÈÒ#ì*6â[OaÜV,.'’5‰•*ÁÜj©+ÂSÊ$>CiÆØ ¿jOœ‹aþusp‚z÷‰ŒÑ’ɃxѼ®¥¢LZ$¾=£;‘jorß,ª‹¶ä}ëEþb½TÑB<¤’õ7lïm|æ_Êi¹Ï=˜ßùZ1Ö½'v¿V¸N4cäîÕ €Q‚?ýa™¤žL3?ÇxK¼\[õVòlF«˜.‘,-Üùnoèì½°+™)&Ž~³ºú‚§%·ò/}C=ªnQCþœjíýW¥ñ~¦šzÕ¼<Æ3ôÕ‡ÌD¼N¸«¦¼Ž^‰’Û&Ì«ŽŒBi­ƒU÷$ýNÏ‚•·Ò_3°Ÿ~ÖÿÕ<­%oõ1u‡nà÷AËŠÔ$ð¸AæŒïzÕwãzxòÑ`/÷ón¬:N5 ã]ˆ<öæ_°¸GbVçù™dóI‹Ô'lÏ¿¯Z˜'õŒ`5#ôª²gí©m£“\%Öw¡´=Í«ê>àUY\]œf2§ž]j¿4õ§©‹ê&p²/fã]ŒwïÀz«yÇÆx"Ñâ< ü•JåÕ؃ýí<_N¿DO&Û²GÔ5ý´ýÈýå÷ë˜múçð [%\ɵÕ©÷Íï=ï˜ýœÍà¶Ëõ0fŠ6ά;d âq©y±(X‘,v+ÊÅsãy*ªÞþd{ÅÚ 먞;lpçíB•­ÿpÏpÒ-AïvƒÝ ÛÊmÑÏ‘_ vwÛ“§¶ëì_¾DãŠþUºþ˜Ù=+Ê6³0£áî£1g¿rÑÞ)°~ŸÂ:Ÿƒ¿ÏWOú·üÊZô«%'äj€_‰¿=<ç ðª½zÀžv)xŽEèÝO¼·í/öySë –Zè©Íó+ѽÀ8(اô‡7¦ZCôºÄ‹mT™~•öŒc”s–ÞèñÍnUw™ö¡^ôGMV3a¶eÆÞ‹jGèùÐ\ò"ðl½#&ûuYª/§ÑGT×X@¶#¶aWò«d¢H9IP!'==ψÌÀT’Õ%6KðÄ—K¾’¼›š´×â%ŸÊø­’Ôm¨JŸT là€JÕŸñ `ŒŸSFËþ²F]Öuô¿ù ˜°“fs2¾}ïÙÈ1NRA­Ûé¬ë$6`M\= –º°ÅWß>ý¼XÅ™õ}äiûÌg:ÕL0ÂcoÀZûݬÔâwûže«ÚG]¾ÏUE¯‚Ž3¢«ÿ¹jëÕõr¨wÚx5ÆËҲܫ¨¢þú»7îðëMˆŠÕ> Ô+h«0•çTð+Ñn§/ú·Ísº4æ§èÉtÄꚎ¹@×5íÌ#º.Zr–ÙXÌÐú¬×9µîò0Gû¡Î€ÔÂ>þêìÁÑx-ˆÑ—ù8åp¹ø{mVÚüDu1õ9¼ÛI ¿zÝžÇ|”úƒ•ÜoFôú†ÚVf¿šç ùˆ;¶f¬xCÜù%Ú#m‰¦×q­±Œ+» mìÍȤãU{ÆÙÌ£ªùYôsCü^F­^Í÷+¨*Í~aÿö;Ûcê‚Þo‡º³î9¿ Úù|x«­® ¼z\]0—¼KÞ#U±«3úMŒiMÚš¢(5\7bÍVÆ«Z¢•Nÿ•DÞ¯cþà1õž±Æ1xuÑßçáÍÜA»X1WåÀÌwÿ¸U°kêÜx·Ð¶tô!]d‹íh·ÞF¯6êgíÇþ«Ô½S5Ò¿ÑÒ®@½¾Ù´Åkcï-À¾ ñíÃ0«7a¿éÄ|ìàWŸùù° Ôƒîc؃•ÜýXAa— {ðÛ ýtŸ=é\C·­úÉ;e°[Ø3+”’úƒñÜc ÀqËa­”‘¬ ê»ÖÂÝF-a4b¨Õˆõã˜ï6£?ž¾˜­jºi¢D§w†ºË­wù\©ԼбÐF"5ÀÌKU‰ o‚V$Ó"*‡VÞO Oüc-Y/5…–TéH}œŒH´TPù!›ë—: Á©^f]bäL1‡ú¢eÈ[²¨‰—Ë5.~ì**bÕ cé“ô·/YcÇbUPQ:Þ«´¼*ÁóΪ9Dã]ñcÈi¦¼_‰xU’Þ±TúôݘÊälAÌU ¶¤+ƒÅó)Å«%þu©–Àxñ8t¦ÕØ»HìAÁ8ñ·×Ó7É:?íUaÀóÁKºöX°P¼Ñô_‰>Ãl=LO V€=X ‡“MöÁÌùk[|’íÕ÷`ió¸3¼Ì:L³ÉÇÖ¨R@ŠMìŸÝæ¬.4£M ujëŸÌr-±ô?é0ÏR¯ï#UÁKÓIFö?ÀµÊy•"ñío™aýöûS¹ú¿èËJéUhèÔKöûø÷a`XìÃ/b|Ž~­Ëóœÿ¥9ŒëwÀ'jéþd Á]j¦®`ºšgumê3¼äÝMF1si(Ök&ú{lŸ<‘j¦~Ö¼ «W¼ãÍYßYÎ¥6ÈBêæã¾×T{ó°~ïvb>N {ö`!,$©—šàMÃŒíi[š³ê~o(ží¢’ŠTE¸N3êKÜEûp ®þ1úBÔÊàY(QÞÌ«Y‹ñ¬I”n‹o¼\Ÿg£³Cï¯fùÕæ™öîÛxõ©~ÂVq{aö†=¸0¼Üúኮ/ðꄹéí÷.˜êÔšzMo׃X­º6~›ˆYS€'è‹öˉÓpžVÕAŒgO<ð«YèóTUèO¥ÿj&þRýhï^ÍVeWÝ÷îœÛ~µÕMsslw/ëÑϰýÜ›eÊ«%úq{öàBÜGê;­‡`„ª±æÄbÆT4G´¡æjžFôE÷`¾NãNùˆÁo®[K]TØ %\e·ý¬Y/õ+ýµÙ¿j~U[}ã]°¿ÚÇŒpŽ%*>tÉÔ'4g½Ô \Ý+Ð’û#uø†`oZq³²rÌ íLÞÒ£Þ8&öàýj¼É';)VSÝ.ו(sDm }šÃHÉÇv. ~û^ôƒ‹9­ÉãÙœDâLDÄã$þ5.rž˜INø *Ð;_Š>üªÌÇ‘¨ö<žŽ¤R©*ƒž¤ *Pý«‡^M%îÅÓï§‚ú†‰ô='Ñï$È”L/WrÄß^2â¿\+AíЬHžugFWèh¥ð4 ‘0…ÏI¬ ôúÒ"±XÑ< ê&DÔ»âЯƒ1¿–¨ Wº=f[Þ«…zSÅéÆ,Scý|Lüyóa½ú“98«ÕIà•ÕÒö®ªX7WS‰‰UÕB=BϦeÛöx=•öfg¬§ë˜=‚? Ô×*F/æû‡„»¨ù<íÜ ~uB¯ån°ß\×Íd#üíkÕP¿cЍ½ü³¾®žV 3ý@ÕöþQ©F<‹¨n^ž—ÍsÃ~ú(ðªõ×Yst ð±•Ø W£: 4TOƒE¾ÊœýxŠºÀdÑéé«ßöµ÷°í¾­R·«ë^Q‰ÔcMó’eÐ Xƒ“À¯šQj2X§T`oUÕ *}Ù|\Tj‰6Æ à»Uñ³HɺoŽ=çkÕ–çiÆ· n¼MýöZ:ÙUpÚ›‚Õ8Íþ­¯©åÞhÌÑw1Bm˜Õ+ñW/â¤rÔ$ü¼ÇXÜö˜/R{f(ð¯lîµh«Dq.Á(·Q'Ñ¿õ9W6„ûíd¿Vz{ƦÚ>öUõ¶~Æ]Óð#~G èúð|®åúèÇÔ;æ ï wÙˆ.ê|u\oVÔÀ\©‡•7-é{ö!”óÒ-¸_uÜOüíM°Zb6ÍãY@ß×Þöô¥~[àÕ:wÎöûѺ»«n)Fá^7Ú͵mÝ:ý’žo—ؾn­M4¹j¾Ï~çŸ;­ ÈÓ?clÏœZx/Ÿºb̲èí |bPs/Ff2QuøU}ð«®ê^`dÈÕ=X J¸°{À]µ=vÙ7\žkg¸öà)û›}ÂÔÀ:_¢JÁlµÔóºÀÕ\žÕFú³žG FxÖÅxFƒ—¡þyf”4ÃÎ=›8rŸšmÚ…DôúÆ×å^Û}34“̬®j•SkGN°Ñ·#¾š!˜5é´É¤nà4•ˈÐj‡± âK m™ ôÅ‘'¤AË© .jV¤},ãê2ß¹10¨¾xð›cÎ*1ID”dTfå«ÒÄLÆ}ÇcUPWUòsxP’ve*y[)ÚƒuÑó <£L£b`i2¸T«(Éø«ÊTµ øUÊFð*EýO/°7ö¤Y‘ì¬ 98M±#þ1Uå™àóô·K_GØN Ì;Þ¬ÎéÆZó n š~5ƒ>²jjµž¡§‹:©Îº‹CݘBàÙ5ô´ØqÍ\¥ôzøb¬×©¹Üƒ6©t³_oäó¾hn벬7QJ}£ÚÀ\ÌxªÿèÔNØ.iÄ«Þß*ú 7T;/×+«åúèWW¢‡\ óvµª¬gdR}‰rÅ<•ÈÞ†ÀáXK’óö/ÉËÑß3Ú ·¾àaŽj©Ë½C5ÑÝa½ÚLÑ£M¾yA7.]ÆSOÃî-J—³èoßÁÚ#=€ÐÎX§_£WŽ‚EŽb\å$êõ‰ZkµÏ ¨«àW²¾s'U@{ðMûŽœzétWÕ¥x³Äïe‚_Ý뉾Ã;ÌH˜Æê“M1£q•vè÷)ÔC…ë—Á7¤¾X[ÌÌÿ µ5ë·8á6ª–QÅ¡Á¯æúUD=Ó~bcì{J‡Åõš{ß½è÷2»ôŽð&›®îúéGÕ[æ¢wÈ{ÛÔömTGõ=ë© D¿]²´úñD«&úbÖ¸Ä_µÂ¸jPç€$m1{›ùÃí—þ0ÖUª–{Ù.uoÙù*Qÿàš»oÝ wXî=®?ø•Ä_†=¸ÌfüU9àÕnû׬Œ––Ó×õ0´7БYÈJ¢#Ú†ñ éàU³±Ë<†Y' ÓÕNÿºßŒçƒ܇ÖsåÝø†qÙÔg芧Ýlßu©°KåüñGïmû³ÝkÄnY¡bBMr™fhÏ;‰az#9…'¾irŠ«N3G¼ÌRÇ»Wuc`Õü'¯7«"Ó04öà45Êmpmèí~Y- =šOyÕMÏÀý{*b„q$^}kâ¤2¾\ꤕýïuñ*È;N%㉢V^YbEé—˧DúðsX "žþö\ÆsÆ1®<•þ|‰¿j‡Uñ¸'“±EW’xÿ"è"¥G”!™Àg•ÃXy9Û+ÍX‹Lâ¶ÔÇ)ä]%:Uô¯ò"ñ Ú_ f,Ue4–#êDó³Áù`ÀOd¿KÝ*ñöI\nžL¶À^¯;’SMÃ>^MߎäJ¤¢^_±º\ú‰¼´PÝ©Û)ésÑRž®ÇééüüÕIçëÅDáÁX³WM¢ÊÓG½~5“ûËX×EØ=„ÕîT™àW÷³ïwškº9õ“Õy È1SL­­oõ 0£S¬)ö.ìÁ¯€q²»ü©š{i°ÅVí ¼êá5ÔÂ6Åû›Î|œé5Xµ1"e0÷ž€½v¹-/•W^IÄo?}Åÿ (’„O< ;´«?„5äŠtg3Ç<¤¥Î‡ê´f+P£x?3r FPj¯¿LŸ÷³Ôد¦aí4¥ßµ gw%ôwMÌœfô_53ë7ñ[+Õ+ô²ý¯ÿ¦}½s‡Žue]¢'8Ù׎4Ÿ«ÕÞdŒúy̱VŒ•zOPG¥5~Ÿ½Œ'îxp¦xÆõºµ"æbÕ4Eå„@4»7„^ñØ9~%àF†ýØFÙîö¸:£Ù×ÝóîI¿¡yPß ?oë‡k»ð«óæ‚÷¢wÞTlT—õip›*äWs0?ÚR¿ë¬)Þ-B¿¬çj“øvñI¿ÎüÁÎX3þxû#øÕ p]ñ·ïtíB•¥M¸ûƽæV©Æú~7Öͳ­Ü}LϱKm¡»Û†Á¯¦ê‡íÔ¿ªÈóÁËàx¢>1 ½Z„'è{M†öd<à Öà}½>™xõ°ÿ©ßCW؃ŸZçj¸ÍàÌžKt÷¸Ïl/Q´ï¯Z쨾^ýjwñ-Q&tŠõqò° ÁN^“öÓFü;ý/ú Ãñ³Œ9°â_ªÏ¬t™Ï¬C±ÂÄ´]5CÃÉF¦ªbðº.¬Íð´Ú:K˨ìÁÙ!±›$?³#½ÙIT*šA{ϧœm¥O’‰IÜõ£XÏ5ƒ,!–q 9DñÛ7ˆT›O} æãˆ;‡žúL²šÒØ+‘¯Eó4–'‡q¼J¢Â_*ïDÿ8ˆç øUq&…§€¥É„ªˆŽ¯Q*rÖhs%ïÒè§’|çtè·'ò©bÛQÉ‘¾íty^’§©Mñ¤íÉÓª·TIà•ØÁj#„×]’ú"*°—«/ôxà˜ôTo5V‹F¹àL p­)‘ú8ÃÁtzêa´Ç¥"ÜY¬œž¾£4v’ ^®3Æ¢˜ç«0›ûhï4çtSâU¼èœë_Ìj-}ó³þÌè!ÎøÕ,ÏêT#ãôðª’WQKdmWý–ê•×=²ûlºþƹ>#ƒ_W½€ÊR![òqŽ£¥ÞÄQ ÓWŒ¤ßñ5‡ðÝú@„¶ºœ¿‰Y%cu³À¼¦«RIJê<VòGbOߎ‘jÌØÈ臚¸ÒïøÖAõФ ÈX Z|ºªTÿ£Šn|ê ÕÄ<¦Ïâ:ª=øÕü žW}†?Ö““¾þ¶ùNm¿ª |nL…À|Q¢+œ‚¹ÛסÎûħ.§ ë0¢ñ‰¿Ðö|Æ…mÀ'š¢§w²RlUzÓomgú•,éöCû­ß•çƒ[ì]îˆ{Ä/¿ÚÞa‡„+»þz:iÞõ.z—L5F’½ª×ë¸nW´`"•ÙûbõöÂ;ÍÀ=:»×Ñöm‰û·b}g9ƒ¨/:ýIögŸ/±çõ`.p—ìL`Ï\wÝÝrëT%ý î¦Ù¦n›>¢§ÚÙ¶‹[oSW+õ.û•¿h\½YZ¿ Ž'J¢ã˜o#J“¿Ù–ñ£™<±Û ~Õ ¿×§¿ý¿%ðªðê3àUU·ûH¼‹uÝǶžv£½ä2]c'þ£ÛÔ¿zÀˆÖÝ2õ,á|%ùÀ­ÑÊkXÍ¢ÏpÚ:--ƒQ@ë}ÔOãùÆÿª7ÂÜ}Z8Æf5Ý„“/ÍT³¨'#1—՚СÐ\r£Zª£ž©m*}=˜<$ˆ3TÝÃÓÄÖJ^LݨxÆA¥‘ýÄўȳ¼D«,ú½…›•ç}âèªC¬M#OkÈø«R¼J ¯Ã÷[±M±{2ž¸ûeIcx¥lúáƒë¦Fò³÷žL-¨O‘Eß{eF¿¤ð1Q ™ô §ídFâØ«°…6i)"•‹è3”ŽäÕÅ~1ˆõR¥ÍõyÚÍüÁÃ*Ew`ÄDu\5Ðñ3ï`< $›v‹úL÷ÖÑG×] Ó²Ë m¨–êaØ%$¬£7ø•´ºV×ûYùLàaˆñíÑà6Ó±K/!‡¼üê ÞÊ{=c¾ÑMÌD#cð=pão3Eç2¾ý;ìI[õ¡ªäý©âÔ©ÿTµòJ{Õµ<Ïý²é~%ϰ Èš¢}ÇháW1Ër¨ó îÞ³a«¶¾E}ÑîúœË<§…mU-ôx_2ýáu7³Í-Ñ5ïªCÀ¨}¸žpÑ@ƒ{1Ëkñ”è:V‡X]¿âoÁ¯úßê¡ÝCQ‰+õȵêá³µÌzý6ž¦³j:a­=¼êtŽvy®4ìÁ!êN›c®©=ÞàÁ»Ì¤ƒÕ)Q«OáÞÍñ3kóŒº dhF}†Åx¶ŽxÿXŒX¾R§¦7úÿ-¬™:Œ™:„Zä×Â'ÒìU؃íiõ¥~¬bVø ßxõ\x‚Í ßáè©Ì¿½}ÞèçÑ/ëÑTź‰èÉn°šúq­"ÐçrÔŒçƒã±+œB››²ÞÄ$û“¿ÙŸ‚þêì$ûç‚¢ÊèáNîg؃°õ7ö`!íÁ…v:ðê^Æ‹nÐûì×þãên´h ìÁÏô \³6ñh.zDêND ЉŸCâEÅ|žŒÙ6Eíóoø-´àÍ.ê!×p÷ƒÇf¸x·ø%5mwÛ¯\Š«âP¿ý¨ýÁn2™¬—zÛ4£Ï&W¿@µƒÒ@\‰jÍÚ cqç%÷ n¼6•!ÅãR£Q¨Æržß¯&›®¡ä?“Ô$w€þö4ôÎ’Ðk!É•Îb½ÔyÌwާ?´'‘ ‰bPµJ•diTàY]<#œ‚(Ï$âA•­»Ò6œŽÙÖFMny³r‹òµX[ÔÀ¥Æ_õQut3òá’Xµ;À©&pŒ:«æº¯ÎDÚb]gíHÙ#SžžEÌ>Ëiî"6ë UÌf7ŸòÓÓ ¿Fü#ìúÛfyÝúw|ûC-¸zY•ö”Ž3²Ç|®jyY°%–”^húz•µœ¿,ÿHÓÿå9D#ð‰WYUC²žUÏ©ГõÔ^¼j~%ú¢½õ»þOæ]ŸØ¦&êŽþŒàHð®f”yFWÇN~uÑüî÷N‰v§êmúNj«VQc°ö¤jÉ8ñãžë¿BUeÔw–xÑóøTñKûÅö:ðª˜õèÙÊê ᎘²_º5`–[Ü8·Ðöƒ=ø¦^fG¹ÖÙ’¦XûÓösÿiXyåÀÛkè[zz­.ëyÍ:÷n]iß?‰±^M{03¬,,®-ÄëGM SÙL!¿ºÄüÐk‰û[«žTW駺¬*z?©X#cö­jê•÷rY»§»Þm{ ´ä;‰`ýuŸò±–_Ä\*@ß´„Uù xd>fÉ“xÕŽþ«êª¯>áÿhž—kDª®ú#±òƪѺ¾™ t©>zO=JþJ}€A˜‘[ˆ†£Ð®ÑN©ËðvÖC`‘KÐrAµ>K‰†…ÝZT#­Äz^GõIŒ^o5ö`”=n?n¤ã\%÷§)ƵGÙ"ð«M°+`åK•÷iT‡ý…<Ñ]‚Þ{ŸþöƘ¢×7 XÒBEé{¢û²”YÁoRïSòE„Îúì]~EŒY ,mÛÚ—Õmýl¢ãîa؃;õ·á 6;\ß Ô¨ÌEï]ï]S›1´§ô}º/Z؇zb©±U fEѿڈµ\ÏÕ »CeÌŸ¬ÁÑór„?Ù~ì?~µR5tÇìÝÀŽ™àJ9áž.>Ê|çínº[`»Gò§Ûn“6Yj¹~Ìþè¿ÆØ£þª‚þTÄÊàÊ-Àù$RA¼„ñ¯ÔXì Nµ³¸/õ¹©Çý/ý&àWýÕKî{ûó~ìÏ).Ëmv_ÛþøÌ.ûøU 'ùÔ¿x¯Ù?ì:#zâ+TÉÐQê!ó#/uˆó$+ûSôo2ÐdÚνXV½ÔXkE/tÌ…~ıRÀ«"ÓŠõèã€=‚_µåú^-b¾³p€šªƒ^Àzô±ø¿T·HãûyàuwÓbLaTÌ2—$²4¢E:mÁXh—gŒh*YO52È…*QO&ZŠÆ èùŽ'J|^r¥E7Ž^©t¢YBÄâLŽÄ.Ä0Z3PŒâ'ƒê%èÕ*CT ^/ƒñQÔiO$-Á8R¹²Ä*$¦—âmC{<™Ul$Î!è&J-€:“K VjVßžÖ+Øèμï,̶<}“=ñ)ÖÁNe™G¼N½« `CÉÙb¬öF˜!be¶R÷èåàWÒ–èÿi°‚˜‡ñê"FVxkkð=Ìñp1õÛE»¸¢9ÎüÁ(µË40UÌ #ã{Uè£f"kÍÿªo]®PÓæ´Êó ùU<°°‘WÙˤ X¨7ƒ_UçgVaÆåP§«%#‚^ÄœîˆõÔ+ïYõ2ùÕ+xU 6oôìú´o¼=:-Ù­ªêù`õ±*æëzfº9¦%ŠëàÜTõóþ¤úà$f ÖÂjxUÝÂg¥Êߨ¿¢—¢_ê3¦´<ùGYð½ÚÌ}n®¾y™z2Õ°Ðq²¯Ù XÕt,øÕ/f0o”í`ΪõžÄÇŸVÍYTÔÛ›£ßÆÓ.ì5y^}Ôj¼{p8ÞëHϸc}žáµnì ×¬ŒZ:î÷°Å~|"×^²ž-°ÕŸz¯ÍqeÂûü–°EO&;\õ^}hnxï{§T§ž¡^Ò;´T¬L`εd8õÁóÕÇßçcØÄº&À–b¬ðê8O(sÔµ}ðþf؃`—°«O¼“ö'»Ã¤¢K” 3M0kk+©Õ-ÕŒDo ½’Mð*<÷^ìMw‘©T òjú_š`vˆöªðŠ{À¯$PVöµÎíqí‰@¯¨õ¡3!9ŸÊU;-ú‚ÙèݾT|øóÉØs‚*ÊÙhãz²õ—œˆç)–:-%èÎfìS<£M3if« tc~3…q Y9Cr¢Ë0Ê+@²ò®x®ÁàÊÑÄÂÚ¥IÿŸCS‘ž¸8ò«2 ÇÇbìú•éý¨J÷°náåyå´ððúˆéïUÕi´[—`7þ•DZ¯NRÉ%G5SO«ý'ŠÑy¨Y6¯xºéÏüïȯšaŽuÕ“üà%cT‘nmÆ™çtsì'·Swͨ¹4 ­z•æGaeþþ#±3¿ð,é?èQ›¿tôwYZTµ±$æá–j~u3¥º3t xõ¦Ý)§^:ÏUvq^{¬Âî¶øÕ^Üá]|§ £ŒrOÇ l“ÔLôç—X­ýp¥Qà“£jÝñé…ø·0jÕ^ïiΪ”kC¯úSíZ¿þ’i/ØÒÀ«·Ôçúv‹ÃOúÌf½.¼Ð¦¯šéÇÕçæWï%ï ðªóïÑ£XU¡ ðj:Ï('Ó<ž ¦ñ Vq;ÖCkŠ¿œ/œ‹'ˆW}ü»€9ù dM`®qWì|UYÿẹŸÝiâÕj7í´Ýr}ZϵsÀ´î¶Ö”…eþŒ½æ?‹of'ªêïôHÌ£2¸ŸxÑÚ_Ifå]蛪˜Ë31j/àÃñ|‹Õnÿ?_Kñ>wxU\®‡Šqñn‹ûÂvÄ÷ïµW\Ž+t²›H}ç¯ìnSûÎ\å‡Î›Ú\³ÍXß9ðY¯Äž#•¶ïÀ<kÿ- i £·ëˆ„~â@Öá%ÉÎۨƙŽÀ+Y Ej…{ÒueÁó2¡YJtÊë¯`ŽÈšàÞÆÈŠî¯öF”[Ò1çî¥/+ð±g’ý$ò;ñ‘Øñ4eð”->Ây’É‚Ê3檴 ôHGòø©xòh>E#jz%D¬ÌÄÿ•Äx© ç93RÃ"&r:Y’Ñè/*zËŽQâó/Mœ©Ê̵$^)Qï™*¨JnÔ£¯Ä¨ÕyWP¡,ˆgHÄÄʉ}[ôg‘ ô¸ 0âí#šÆ¢÷Ò•;I½¡šèëä?×1®Û•¯É[Nê º$k’šÑ-1zb#7W“õd=ƒæ5FwÖw²Møû»Sé«fê68ÏLÚ†o2‡¹ën•iNé ì‡ÇÌuÝÑŒ7‚ïŸEn™eZ,øïôÀÌKÔ¹º¢ªzŸ«RFtÀ¾Tͽ ð+Ù˺릫WƒõqVIǯ21ƒbæžÀ oËxÍý¸÷QŒ~Uê!7ÔRù¤¶ê£¯øß›µèñ?äË÷'cÞH„Ùh³Ø¼ Åªû»éTõ0æê@ÖwCáÑÃPß¡w`µþÔ8ˆ¾šŽ>kÇx´V²D¯¯"V·Ôwn ~u £\¨F‡NØÿúíy \Cîr]²7 «°¯ýˆ¶Öƒç|Ÿþö™äÁqÿñ¬ )z¢ïca¦UÇêXçe³-þöøôJÎ%Ö¼ šxï«$#£ú ð*Ý+ÏxQ©ï܇þöDÌÙª¬þ/z©7Z´Õ–ª ±ÞßoNOÖÓ¸ƒÄ‹ÖP}õYÿ¦y^§v©Vºº?F-B Çé¦xÕß8µ? OQ{ìxð«-ÌOKñw°}áW?aÍU±z¸*dMÓñ#ÑC®6YÑ5¢ÏÐÓÒ'ñÝ.jB蜵ö=û60ª¡Žsy.Ý›û£½cŽ‚_Ã÷OsG¹ ë´.³ˆ¤Ž³`á,0ßOÑ·í0O'ái‡£¥ù@sñ·K,ÿJždï‘øöÊØÑßó‡Úm~9àF¦ýÚVµ½íiu]_³Ÿ;~Åoc¶êá7lB¸Šëª·¨Ì{ÞQïS3c¿: ·è1¬8_ÏÔK]‚µU›Ìf$VîÜCN(—£¯ïÂŒyOØ#ÐÞŸ ~µxµFµ¿ºÏ]¶³ÏPÈz©Ë°3>à&»e¶Àmѯëé¶öàê3¬Ñ‡Á¯^NTF?WÒ_À&5Â"¬ò¹¬g-g…mX(ý6ñ8ðBôЫGük~CÆ_mrÛWÑ݇ÏdºÒn7ð«Úò ½¶Õœúíß{¯Ù/ì&+|¥J ½M{5êÉ^Çæ`%nÀ}&1Ú8ãß]êF‹T`ôU>W¸döÅ ®°A2BCè/*VË`¶AK0“–„އfpÝVVô’H|»XÛýx ('jc1[s™W’¶n §>Pa/ÛJ&ÔŒ%N”cŒ‚p§òT>ÜzÀú•xêëÑVŒ¥í™ÆhôxÚŒí¨XЏ ö*J:2ÿÏäÄ+–H^T¦e²™«˜HœI¤Âa.¿[‘ñ7Iô£'0¾=ˆS bÆ‚šƒ1TºHâYab„¹…#ª~A$™œðwŨ­VA5뎌b;´¶ú@%éî}ìe¬¥Zþ(Ìù¾¢Œl¦Ç$bó5`Å|« úoëym`ŽÍX à÷Àm‰bÿƒ¾ÙXÝý*Jr£ÈtDû{!þÔüLu€=(ù8]Á¯Þ°Æ¿j‹þNc¼¨œªõ³ËÍ1µÃ›ˆµy@EÄØ¦ÀËá1‰°~5ù‰“ñ¯Ôl‹~ «\5GôÀï籂›b‰=xÐïoWùñ‰t{ÛÆØB{xõ„½á>tϯvèƒá ¶j¸²ë¨÷ªëæŠwÒ;cDƒb¶zR¯ÓÐWùhñTê_õTëq‡ªTT½¾ x- p9új"Ðêm {'¬œîþtûµÿ”_$mç^¶w» ¶»É\g÷§û˜ùƒ÷¯–ØÖn>¡çÙ¶‡[aK˜Òj•~ÞÞòŸ“ "Ü£¬¾~Õ«r õ¯š¡û`&uÀïrZ‹:\’3 £1[íõ/ùµ('Üç>°øÕvÌå2Ý£î³ÈùàÖw}ç¼·íwv¯ÉõÁ@Á¯bEKN„؃Rwª–ZA=9éMÀóôOŒèÖB?´¥÷ºæMWü5ŠºF³Ì¡Ad Õ\ðºnܯƒ_]MeF\5ÕQÏa]v‰g¨§z« ¶ruÜwÑÿ+§‹rS&Ñ*QÑôA%Ñë("ç0Ò<8eË¢7ëuk­$1B½£"bŸÎê[2_Ûˆ¢M©O¿~-Ë•Ña–z÷IŒ}J¢×.6ŸP†Q­%ÉÎRh &T£Ë(øZŒéäTµ™Ñ=–Z±ÔM"ƒ*A»²ŽxÿS1ãÚaŒ§½©ñÔw®©®©°îÈçŽU[[ßæ9Àu|þ!•ªEÙb…úRÕ1Ìãë {­F!ŽZ ƒõTæ;Çc6wѱ« sŽñ!Vmã~Ì`Dÿ«˜É¡-(¾üꤾ‡¯wš‹ºžM~uE5Ó?˜¥ZÆëý…zB§_ý²ªã}ª´ú;•Ï|gÁÀÞú´éå%ÓÁH—Ñߢk`V®Tðÿ–ŒF¸#ùÎ Ô¿¤nª¾‰} š Ïøß¯DqnŸª¥{úrâ6BÒ Ì ³‡ùƒ×Àœ&`÷®Éd&V!â¿ú¸-.¿b¶½†¾*Ä,o*õ*ð‰NÔ¿š‰{VÆ{u°+´2¯è·ð4½ÔˆÐqëÛÓàWÐÚ—å²½©vª9¯¶x£ñÍ‹Xm‰Wùøï9p‰ƒuó ¸ï8ŒC9êÉŒV¢¤y6D{ê›,£-Pg°4a”…¡S~O»À¯Ì|çl)Ûüêký¬}̽á^ñ[™½úJø¸Í ×v½õCêCsÎ;ë]75ðýbõ¬ÞÖXƒuTŠ#X±€ú¢uñŒã±£mÃ]%·KâE'ÃÅ0ó­«?Åþèß ~µ^5v¯Ø…*è\؃ϸ5ª)ìÁÙn¡íà¶êSziûÁL0i¬çuÉú ãeF꡸f:ðI4#š‚áß‘óQŠ/fß‹}­õ#æ¨íþm?_·Ç§6¸Oíß¶¬Û ˆu©¬ÓmyØ^vÉ®…›‹–}æ½i¿µûäÝ­Paò«z¢û` T¥Eµ­•ØÔêx<ÆïQƦc${°)Wp=0¯.*ÐÛ¬›^¡>ä 3ÔÝî!WH¥„ƒ`Ö‡BKUiÜI/üœ9áèý¸rS©´ŽÊUšÃ&.É–I%çú_UÀ؈¾^-ÂbN6Ïx²xv˜ÍÓÌÒ´_²ðŒ1N1Œé’ é<ÚPi´ã¹fSÈm‚øòxþD§Ç²–Ÿ‹g\APé0)R£9-‚KRÛ¢õ9ù\r>Ç8ùdZ£%™3X•~6©Ô›ä 5“ˆÉqT™"R*šq-#ñWuÀzþª^Áª«Dýö8usp‡ŠÒÒÆµ˜ßCõoôGgëF}†ê.=KO#¿šþϳB±§a¬'0*¶«º¥J3¦4Za,Ü2À¥*Ù¼¡7Ñ ßa¾Ôw0þ*xÕVoŠGñ7¸Þ3êkŠ]Vµ¼Û*žñí¨¶^/GË3D4ýˆ]‰ØcWâ^¿âU/ÌÜåø®øé$jPêZžÂÌn®¿FUU=õ àÕãÀ«zXye€WS°w‚=(ÕÅžÖR7ð"˜“¨º7àœÊúƒ’÷"¾šhuUÜáGÜï5ôUž”‰ÿJÏ+³‚A5FnU‡}œo‚_•«!tÞÆÙ³öœÔâÒ¹ØùS½±@¤á¶¯yU­÷Þ£ý7…ySùhI_üÖm {ðôm7Ö•|œ-qW’ï<Ÿž®ójž·2>³6tÆïk×øÕ€hR/ÕÚ®ö„:¡÷Ú¥î¢{Öo{ð“ðN[;\ËuÑÛÔ§æ¸÷¼wö œ¼ 7iÑxîŽkO¢¾”TýîO”®¦¼ hTÞ…-Ì‘9¦^‡Å&§aÝüÙö¶¿ÝŸ†Ù“ï^°ë©•«ýp=÷‡{Ü­PUôv7É-¶-ÝNý–žkGÚn¥M6Yj›Þo?¿šQº<ìW=RI²D‚-F/´C¿‰¢Îú¯:¡Å[ðT¨uñŒúŸúµµÌ÷­°ÿ<Ö£ï©R]®Û뾂=ØIm²g]x×BŒã·Þ1°ÎM¬­Å*1tÜ4Ū)‹+÷Äœ«­DIj)kK×güÕ`Ìîmªˆë¶ íâdõ0êݱ‚dõmRMûÐP®ñ©jx][²£ƒj^hoh.OõªªîàW^ÏÝ‹êVQÀ–Á˜Å©ôY¥£‹˜MV”A䈷)*bfÓÇÍLÂ\ªì¥²–k:W²`EVT–çuQ^ŽœjÖ¡÷(ˆTM :$ð1Žl(>¢Å—ññGÑò,EeÁ ¬º*ü*q™|?1ÅA4W £(ÊÒâ ²©KS£OxW.mIA¶’¨Uc󢾈Ñë©ú‡ŽÚ’À««RC繪. üjˆêmû™Ëj¾'ß¿€¹$Ö›ƒšªgqß|¬ÔØ ÞW·Y}"“ñ cY³¬”^LM½Fhõ<Åiìñw`¼ÊÂ9å÷ ~ûð«ë°Ñ ìquVµ]ÜUwÔïnÒÂ[l£p ð«mêŠ9ã]òŽS¿}•:¬7h©Þ*Ñšãy>×ìBªÕHe•Þ@«¯òy¿ñ°ºÏ1ãÎ…þ4{ÝßæÏ¯kì^·Ý »@ÕÔ¹¦î/·Ý-Quôn,ðª¹[ {P↸õ6xu~ÉÞô×- >[üj³™z}ÓéßÚëßðk鶘©ÛÝÇÖ¸ î~ôyŒ+íö¸/mg<ÝCö<8m=·-ûÖ;m¿±øwÖ¨”Ðû¦f¼œ!ª/X/CÑó°æŸû5rÅß^ýÑšþ ÉÂøöD°½i¦ ó0æ»M°%Çß í ÍáúnH~U§c’[>^õèЂGÈWÄûÜ -Ë¢%—Áø«¨ˆ§)-â‘/ɬ”ze2§täÙªRM4IuÁÊÒ©V˜¡‚œé¬h&Â%‘× £IÄ× BE&ó¬cˆÄ |–(ò«læNGEN53™Ë,•›ëc>ÄÑ#G%åìH¬{ Ÿ»$9U5Æ·‡"ñí%é™rDÁ2ŒY;®úzùj6æ_ Ïƒ™wC%è¾´‡Ãfª~%ÜéSjB•Ôé<ãxG÷Ô±Ô@h¯ú¯¦3{Šr00JâL&©Aºq Ñ@«…ë»Øç“”§3`JogŽÇB2Ê{Uió‚ÞÈ–í0—t+ò«õ&öÓ?Ì4-LöKýì´O¨…õžªäldßѺ¡WÁˌ؃^ -;Àên•~•Ò+é€êÊÜÆ`ŠG°»5Ç|߃µ/õ« _;ëSþæ‰÷ï‡=¸ ÖKo‰Щf€9¬kaÞ¾©N %S‘ +ãN장É=.æ`V Q¿£çNâÎwS™i>%uÊ+`´Ä£*ÞŸÀØNæa}ó¦3ðê´²ÇìÙÆ: Àóf 7ÚæuµÚo½ÅÚï3qÑ_xüª%~æcO¹ {p3ÂFá÷!‘F`•Ëð9ѽ›µ(Î4cíßE¡7€W+ü ûD{ˆlwû–zK?l¸‡ÃOú}Ì6=7¼ÖúáÊ®§~xuÉ{Ö;j*a†,^íÑýÐÆþŒ$˜†>ëÛ´7Ú'õR{»Wa®¶a¾sSÌ¯×Ø[’ÏâO`|ûDÑÒw¯Ù5î’ û—kínº÷Wõ`.uKlc·üj–-¶½Ý}°˪ÕúíÁõà‡#k?ëªOŒa=Ôh_c¬o©+ÈØ;Ä:pëÖûš¨žöÏû µèQn¤žL®{OªiÞ´ýð½=ö˜Ks Ü<´çsïuû‹½ßˆ|±J0­7Ôsç}Öª„ÔÅ~Ä0MÆÚY‹6Æ“_Õ#g\ ꥣ—ú~5Ýô æúŸ¯¦¹\O®Ï—WûC“h÷ÔQ­±Ç”£Ï\òÁ ilj9íàDÆ$tEÛr#Jɹ†ÔO¦ÍŠƒIÝ›*Ô•óúò¸v5di–c¼A½N¹*‡ž{Éœ«ñƒ%2:†Ö`}÷qÔOŠÄ}E«@_4™QPA¬WV$¿&!r>ŽÔ›èDì•sÚŒ|r“¨cSByJT“Eá+„o'óþQäf¥h5G3¦¢õ®‹è³Ë  \§¿ºª|݃ל€5]VG ò#|þ ìÛrç™ê”îEÿ•Ä‚ö×­ÕT^½š¡§GÎG«¾º…B6ט$yéŒSýEeëbòº×1*ó˜+ƒ1Ï0ô¢öó§®k¦ñö}„ü³YÎ|ç_ð,O‚ $ÑN¬îý¢âX“Bé¶^ªW–±aCõ«À«rŒ/}+,ü*³¼%fûAfy‹•$z2‡€aÀž‡=x #[YuÓïú×ÍËZ¢g6½ÚùKñÔýÕlÝÓô1¯hQr9Ä*ÆSHTä4êõÉù``Ò;À " a õ=Pã-«Ç 7@ûÆàê¢ !õ&ê°º\ØÇ­Í3ú$Þí¥ ‰WRÏ«ØC2ð*üª·ªoÒgÔo ðà"UðŠX×Vôp†à÷|ªñ\ÃÏF³S³€ŸÂ!õr´¸:Fu½:'ªu¨Ï°"ôš?ÄÎö+¡oRí;àu…ö´:©Úlßð~¿‹Ù£ï´¿»Z®›~\6_xoxoQe_«ÞÔ›1¦•0n X/µ>žøA0šjTN¡vƒ=U¢¶ör¼3†Uˆ¦ãÓ)ª?À~ìßïOãk{pë¥æé?]G÷·;ç«z…î–Úfn•¾ ‹íàÕ[Êdƒß¾b?÷‡5 ºþR‹J^9ôF]¬åf’«Š¶7¥O/Ï2 è_d£•€ûŸûm´TeÜä®Z¼Ú´‰q n‡»¼j®¶Ûƒ.ŵuK1ûoxoد쓃ö¬Tö`}FŸ·þö<ôC ”øÛ…_u—›Aû)ï7CoË~];J?â˜ÌCÉwÄ(ÌYj¨›íÚÑJ{]M ½šÌó403½có¼FèÓ$Tí…].•žœ `ðZÞ5¨}“‰0HäîT7Í!«JˆÄWˆ¢L6‘¨,õdÊÐ žI»9—ñÙdR¹~sÐÕé«a|TÑ"޾›4¢S4cSK3–4A™;¶¤ò¼2¨2˜F¿[ÚtqߎôzÅPÇ4•ç†ALiõE ôE%Ћð+A¢Pä|0–™Ò‡+þö ¾X[ê"–dNÍ{ÊênüÆì•€ÒÏ×0®Á”8×Åê=XKm/Ñ^§ÛÑß…•2GO£>ƒÄÑ ÒÝôh¶j xÇ{Yá¬Õ*ö ø¦àfÒŒQÛÁ¯ÞÐ[ùZìÁÆf¸‰f^s'ý‰Y¨¥}Ïð”ºA,:§*z7Už‘”ÿª&^®—­¥·ºècf„WZKOoÆz®Àøöæ¬s”úí¹øíYìüǘú(^Õ×·1Æ•€uïø7KyxýøUGX/«1ïVè.f¤yS·d5²7±gïb$ðD¬Ð1x]•üý,ãÛ%ýG Ékª„ÜëuF-Ÿñtóù"YWÕ@†SxÕM ½eµ=n/àõ:ÑUrñžD‡w´w™·Õ`Wy\]¢)¦c…ÓHÝùvô_ÝÀµæ2?q4VÃ9±UizƳ*pînj½þÚ€ùúëÁ¯:ÛÉ~EàF–½lò»¯ëÏì‡î²Ûë÷ÃS}Þg³Âu\ø•Ô£?ê½i¤Fú»êˆ~V®œøÔÇ51«{¬•è |O"Z‚SÔf>×Iê‹&©Þþ0`Îf’dbSÿêÖ£ÿÑuváð·JUÓËÜàU>ìÁ7õB؃R>ÙäaÜe?ò_ÄÞ–†öÕc¾s[Ìä»Ð3ð_'žV¶Åo€YÒ£ ù8=1³êàî{üýº#úe»{ßF¹ÊàWÕ_6Ãír_ØîøÞCö-—áòè—^^}o0· þv‰¿JbŽzou•êPeЗu°×KNK:ÚÜs·˜þe‰ÉlÁz1èÑȽ~ƒZdš‡†»©±àuméqzEÍ¡~{¦øØõ|FkÆÒ Ö—x!ºžERÿJ$@>s(ÓxvTŒ@c¸¶’1 x•NTcѳ™ÏR×ÌŽäȤÑßÄG¥i˪@CO¢c#è—JyŒ ªv¥0 ?šùÞe@ͬdZ_a"c^¯RiøÛÅ'цˆ –«èæ‘%sˆW±è×lú¯lÄM_VPK,šQ°­™Ý4Öa 樿…¹/¼«þÆkÁÌñ˜o9úSú¦®`\÷¯Ä6ž­ÎèþúöT¡ê¥[¤:ªb=WÏ%7¥ë‘}Ñ¡Ø!ÞúI?¹ÒôDž?œÀ [†+¾²{Tž Ýj>Ñ5Xß¹XKCý«YCíÐßô·ÀÌ#äQWUž¥“Xßùߪ¹—äÅQS´§>lyuXëy;®*ù8™è§VX'ÏãîÍ™þ8¸âIŒ`2­¶úvåÊj ~Á¿–—–´ü|¿ó}„«Ë™…æ9-Þš˜e¢CwktŽÀëÍÔ=kð{Ì-Ñù7fÛ~X©C˜­2­¬ÁúƒUÀê2ß¹.p¯ZuOÖ]u ½dÿö_²gé¿JqÙî;3Wlg Ì¿Õ o8žù ®ÛÑ‘²"^À>Ñ„x5ýùöÑÉ™Éwn­þÀ_Ú±¶®œJ}œmø¼0¼i¡Ã~S;Ô¯ $Î^ýâ÷´çÕ%}Ò¸Ü+Ô}$¼ÎÖ—wýõÓê/ó™÷„÷š]ÛçÔkz'¸·(òݶq—ÛAý«ŒÚ‹PªÖÇÕ[àï'Ñ_³ð<Ùª‹?Æ~ë¯÷ç`i ¼ZæÞµÅ*Cç:¸[î=·LÕÐËÁ¯Úvn‡Þ¯‹ìlÛÓmdýÁUú)Ø’OaÇ‘x†Lý lÒîX•R¿y6sBe,:áëbJ”æŒkª‘ÝMÿÕH쩽Խî²Õ®*õú2À¨vãuÆÓÝ{0Ûµ^Ý¡®x'ív‘‘ØðõÊ„›f̘ËG?^EÅ£²ˆ2×Ð\k?ë¦uš3^4šà©Dn›Úlú‡†‹ŠÕ(·ÅufôÓq5?tüJb2±P_T|5¢ÉÙ7¢@\«g‹ø»Ûb„sé3I ʉàI ÙØ5yD„4rŒ\ª0$óSYO.ƒqT¯*1/&ªÊqäZrnØ -‹SA-Âd^³$-ÎlÞ!™÷tMƒZô¥"Ê5¥hæò|°Ïý‚óÁÔCîH\ÜɦMZ‚Êì)E-_E37Žñ¢)*ÐŽ—ˆ†zÖ‚J‡R/D´´cˆ™µ‰Wr&Ø”ú$Öèt¬Íhý±÷cüå õýkËÔ{º¥ÖZT »¨àãkÑHÍÒK©½PcÕSþHÛcàgãxg©J»Ô£Œ½*ȹÞ¼:¦71âã!ó—Î2Ó òGª•¾iеx Ó717®“k}¨jÃLd}œ/UC/ÑKÔÂW W¼æÔo¿W4ô_膌o?€Õ.йMÀªá·ºhõêEìl70/ª©ú´Ã쿪¦ÐZ·ÁêZ ˜§™9`uÐ/—±ÇHÎ!æ–Ô£ŸŒZ+xˆº þƒß¤>ÎOØ ¥à nŽ6¢Ï*õ&*3^µ®úJåšôFƒ5 ³>ã¯$¾=ÉUp%¼‰øÞRû~W­õFáé.Sy*#Ÿ:¯Da³µKS ±9fÌD¬NY?­Ð¦µäWuØ-Y5q3Y±.ô.˜Î _´™SìE[öàQ0×=ö}Û&ü¢ßxõd¸-Îw}ô“ê†ùÍ;è½n¤Ùrõ¢~T§ÂiÌŽ)¬g<kK¼ñ€;°¶ªRéæð‘qØm.5šb.wóçÚßü þ8¬¸B÷”Ý辿J×6\×ý㮹{Á›îuEn½íè¶èÇ`Ù¾î›hjƒß>CÿÕJÆ•géëZ²'Û‚Á4¡†¼DÕMÅ¿#"úí“ÑÚ}¸¿d,Tø_ÃlO=ê.Ù’À«­Ä«d÷/÷‹-€õºÇž^5v‹Ð²O¼sö»ÎdRÿªìAÑ­Œ» §—~åÐÆØ›Ñû>\õGïNQAýÒè6œÿ’= P"`µ›^äWÑxÎ!îEð+9[?¦&‡®„Š?u‡*ÐóX'Š~Ç‘|g©§øÙ˜èv¶Æœ.Ã\Áxª|F3j3‰§v1\³e¨ØžM?¹èÉ”'ó’¨òrŒ¢Ô(Ë,ÚhȤÑ7Å“ÑgôES¸Sø ÉDÄøˆß*ˆ(CUyÄ;^W,ÏšA¾sfDÙ½}ñdaÉ´KÓ—•ħ*ÍÈ…hªØ$à•‹ U"¯S*¢¢%>«Úhû5ƒÜ)‘U8;Dòß?èD.7x•‰ øUHË3.fŒ¿´í¯úëV¬)úWcx>(XÔKõÕ…àQò¾ð‚sÔ¸–H‹KØUG»Sç{Ÿ`£Ê0§™ï«¿ªmŠŒôçwÀ«ãf¾›ù7àʳê}-ìôŠ*çýŒïÈžuxã•Ñâe{°/ø•ؽkqõrúßèá´o)æGkŒTÖÚsx}ˆµüž6Ô_P§x¤¾êmžÐR?âiàU5_¢Ìûª¹z´™`žÒy\e,ð &Öè*öIu89½>­”ž†W-©o!*ÓT1óG2†¢<~–1¨fçMÕż®O*É­î: {ð”}k¬¦Žqå\²7˜7ÒÎ0ߪÞH`Áûø\SªÓÕ {ûA+¬ÁèÿsØ ¦`Ë`u¬Åší‰×[ÑŸRß¹ ÆJñ>ò>¿* „{Yߣǡÿê²]â3’zX½É*+½÷Á¬LýöUhõ(Xà—€=1;'úKÁåvù`÷pìZ÷¡-Âì ‡¸ŒðU·A5ЛÝD7ߺ{õn½Ì.±=ÜZ¼š¥Û˰Ї‘£?ÐC¥~8ÆATä›`®5e-Ä!èÜ ŸÛ„êÌz©³À¯>ó{iQhyÄݲñ.xÕIå_=Ì”úλím—ãÚ¹yøü{Þ1û“½ÏCX©’CoÀ”ê€qÇ+ÀñÁìBŒb°ð«þX%w‘µäaVäcŽÉ ®O½¾‘\³;ÕLÓx%œd™Ú¼jEo÷õ`èýWâ1í¢¢ãhqÖÅUKGXÔ8`¹V*Õ\³¹î詊‰ØƒRq)Fvf3æ$c˳ñ©<>O1!•z£Ro"ˆ{O$Jç™]ãšjðJq<› ìÂ8bqrÄBŒ¡W!ü-жeɈrO$!ˆ˜Ï!†Tâ™L<í¸ *aPÏëñWÿ³³ßn‰ˆ±¼Šã™A ‘.à«1Ú)äWXemxý†RÅVw FÍD¬êΰ•ä{cü&Ô=X¦Þ.}@ß]O°’†RID‰*Íbݽ.8Ó[üZô½G¡—§«70O%¢­‘º¼šHL; ‹a0žA8ؽª¢yMo'r?iBf BzíÕHo©žø³þR=©žbÌꪒ÷“J3Â÷¾SU½,/]Ko ÖLGà•ø×aÕDW“0‡šãõYX.Ðg¢‡|Xr#±®^P/¯®c¨ {ðœѼ¬…×?¢ëzþLfè-ÒÝÌ"ð®ºøö5Ö›8‚Z kg,øÍ%ZÁ}`ñþD%ÑfàY=©×7˜A“°›WÀ|—óÁbêÚÕÁço©®æýÞ+€=øºý¯Èžƒ•SCg¸*.Ö+•ÛbóøÕhÜë<ŠÈ[FS®®~žzÈbíMÀÌÁɇY¾">»š1Gñ”õé^:ê± ýÊøK:˜D9ÛvhسãÝ ÷œßÏlÒ/‡Ø&á®@ïU—͇ÞYïCSII„é½Xf„~m¬X©OS€¶bÍêÊÀ§XKTbZïÓÝEè©´Ò&úEàW»ýij…Êw¯Ø5î‚]¨òô]O÷±ÛéV`œ€=8ζ†=ø’^Èzôóm’©®&êWì5ÿqp¥fÀÄê°Gã ˆGsˆ¢ÙQÀˆ‰xÒx𙬦¶ xÕ3º«ÚênØðj3ž9Ù%¹ÝÀ+9yx•á*ºYhÕ°·ÛMÖß"U>ô¤iAÒ ;Ò±H½‰û0ºQYêã ¥²i}Ýuh wj ö7€yjqj·šcf„î$·)V{Ü~ê3ˆøC¡ïBËé1¿ƒõË“1Ue„[iržTêÀçÒ—"YŒ½#,'>R›+&wÁ@É%™>ótÖ THË]“‰n™xºªØbáH ަ]™‰‚'þ¦ðÝò žæïgG"ë£T sE¼Ê¡½T¤¶`NÄWV…;x<½æi‘³ÈèÈù`&óq£*ÒWoÛËï…xº˜F$–Ö¶Á8 ¥îºøÌš1+QlÆz°.’t'æNÄZ®¼’hŽÏðù-êwöËbuA/×Ì-TÝuS5½ÕUMÕE°õält‚ê£ûèI\Ç Ô©ÛÀ«g¼ ¦&ž|¶:®7ƒK.ZŒù,´£ Ög´©Ï÷ã¾ÕˆW+ð,ãÁF/e:IÔ£_ ¼Ú ¼Z¤ºÃÀ«Sv<ö??\àn¹·Ý2ŒóV7ÁÍ^m×{ô|»Âöqslœi¬Šõ{Ý yP øÕ`ž=ÈÝT¬†BŒãhì§}™#Øè»XoBêç<êßô[‚_åS_Ô€½n”˜؃[¨'Óüê{üVÏÍÇû·¼wìŸöiÖóš~õ¼iˆYUwé…¹XïÖ¢~{gf˜Ç¡¿ûáÅä99ø[-ÜG|Vß^H½ñhôÉBÓ-4‚«všZêv¹6ô=P÷„NQŸ!ñ K#Õà+¯Ò¹.ª³ªq&m2QqÏó¾Þ-3b“%Ðã^Š™+åh'¦Ò^ jħ‰D?7ƒL¬õÚj2»&&¢šÉÇi†ç"#ây>­‚êÑÕQ̦O)x†(â´x›2‘Jß{ óqÒˆcÕXÛ4>ûšCK±uc’È+³Ÿ«ÒçféoÎu°’#YC1xúTÖ‰§ÝÚ‘þ+yºúà?Jw¡Ÿ¿H½®*³žWvñBpl©%ñíGõh]B‹·¬ìî–@'‰ñ¨«¦èº˜½×CuÓ½À¯$š¢®tëVÎ4ï€e“¥ïR¾¨( SïVeÍI؃Ïö¸ñL¾gÄÛw[µÓ¿™YZFïgýðå }éÀü\%Òü ¯S¨Ù.ñ ûM/æJL×JUEÿ‰gè„ù¶xÕ3¡Fëìm‡yÖö¤Ä¹kX—XoÝa^3k©{µ –eG"ý0cõxšÃº®rß «´­³ÑøÙ†OKìÏ •¨§`|òŸ}0·ãu!P¥!Ú8†+µ°×Ìe^°ønÃ|üJNFEìÁ³ø^ Px5\ÚXó…ÚàÎ\Å\jÎÒ‚úû°r›P‘`"xÝð¼ñ hãP Fkð«•À«d•¢yy íˆÎ\µf¯Þžcwu]wý/؃?¯®˜XE+ÕAý¨îMzÑË(˜;ÑCRí«žø ²ìu;ž:Ñ•$^I’Íöôy3·=õ™wÆ~o÷˜2Xë‹U|è°‘øÏú¸Z?uŽjÕÕŒ§¨Tõ&†aWšB«IrôZQOFü-cÁ;'¶¯ Á¯$® XÍvÛ\>}×’ï|8TÌH$ŒjD9–úÚƒy>(–ÕPŒTýÑéxnpRbG‡‘éAš¼ºd15P“É£JH® ÔK³B—X]™ŒJ ÔÛ#ªËÑ*¨@(Þ¬ ډ腫¢è¥¢=˜LtLd6`*ñ*¨Õ%ñ mi¿ ú”£¦_˜~ú$ž;–¤~hæ…©ÕKŒ,E]÷äHµ²’X¹mУw« úk~¤>N,Fø¬ú($'ŠwÂî)«¿æÄ2îSQZ¾=G}¥ûêØ£½/:‹XÝ^ÐÅÀ¢Xj)÷¦Md/Ê9äUz“0ºŸ¨2z,Ÿë+(Ìd_/UÙæ%½hý㯦Á¥÷Uý³™BÿùŸú6ðêÚ†’?ø¾J6âsüªï•^IÂ`ýªéçUÕ2¢¢ ›¡ÿ@/æsdz¼9­÷Ý@©#‘üÁ爷X§³>ë_0h©{¹–YoóbÞÚë¿ñ}~‰ã;ÿê:kï³÷ÚÓXçNVSPN¼x Ø8™‘GSØ¢b`Z%³ «¤@k)¼%ëxÓK½¾nI«>Í}ï’Ý0÷6ì¼½î”Ï? ¶»Ì…س®T¬øÕ.¹bÏGÞ„=¨yFkä9³ÚôFßagNEÏTŸîýíšïܬt5V­ªè¬ÆØN=Ç\¡rÒ/˜Åú830¢Mýið«nº”7‰±.þ?þe¿öàê!·óKÌa3ÓÍvãýƒÀ«ò2Ï<én`|û8©O=äžÔ',d}ç>T;í|hÂûÁÉhǼuoö·‚BÓs„‰³OѹŸw1£$Ì%œ ^Ò—÷¯-Å™òf8íГX[‹éó/–dÛ}f.ÙßAû«ik[åœW¥¹j½åøÖ\Á¹yÎè \’Fo²¬¶þ†´ˆdFÏÐÏ¿*gtœŸÆžÊ6ï2~WUr¢UI[G³Yo¢6,˜=`â×05d˜ù9øÂn1 °WH3*˜ö4J¦›ê¶‡ý³Q…Ï?ƒ_é=„VA‰½:”•Hóñï?1ç¨*Fá'Ø$×aõ6gí¿1õíTÇ·f“iåÓ¤ƒ=f.¡eE2>zÞ¥ºwÜqìþ“àÓ½D4þjºëdÏÈõâ_Eº2n¡%ðhVnG|Ò ë÷ÆVÕŸòÑžG°g‹ðôÇEù•æ¡iM™Nè«úˆuM퉾Œv[`.“ŠîcWÝõsoÈæ”ËöKcÏ=íF³;V {°…/2Ë%ûUäLäŒÍÅȽ&‡ÌLG´¿m˜Ž¹«ƒˆ¾kü¾*îf<ƒV]Üt™Š~ }nƒ•9<˜ë¾v±®•.þU·Ú¿ë&jõíX;oboù…ÒÞ,¿šçúúf·™áæ¸Ñ~•«bËÃæðj?NœîÙN¦„‚õ:è]O4G¹vÙ\f$·Â›f‚QîÀ©?¾˜µ/ø6¨bÚã[ûü-؃ücxJªÏôûÛ°‹e“»îËúŽhCEù8rÙýàž²zcµRªDÛŒRꆓö2fOãŒ4¾}ÆSsƒÇ‹V/¸?ž3W—7Š9ͱ§ŠY>ûfŽí·-~·/b<ÕÒ%º#:3î§*6‹ý¤·ûõ°²2âûU£_ËIXq°£Y‘êÅidFeä¿jũ֨LUưvjùxüUX¹&oü²è‡R• Ä·ú´scPŽg\X)°4oK±ýÄ«4 u!²‰Kq›L¢[z¸ÊS_´c¬*Ó—¥1óŠWa¥4Ž_®”¦ÿª#ÈJ1§£ö]‘úÄ®ç°:ry/Ð{f,—"*pßÿŠü#ÙöGiÌûÁz2Æ||g×Qß ~UÜ.9Z4wÛ‘öC£q’·€KSåUó&SÆâ›õ°J‡ƒ±ý x¥h¨ñ¢§Á¯š³jü=øN5ìgXˆoæÒß~IÚÚó¼l/ó`–pgÜiì‰|“ï3|Bd:ž±Ä­·ËÎȽhóøË.x^Sæ?ô׌õI˜ÃÛrˆ¨÷£Á‡ãm‹€`Õñö•hi1ìÁ-è­V\Ú=tu+‚<ìþŠî¯.Ïu¯û»yÑýàoú§ƒb»Òœ‹ýÉ•5ö}a¾eß‹ü•ù8yX-/˜‡ÁŸ²FÏ|ŒhV)½‹Õ7´ÞÄ“@©:TŽØˆ¾Þ‹Q8ÑÒÌÅÁÁ}îÇ`k0»·µÑ=âϹ¹RÙDb}ü¿ýeØbmÌ*?ÒÏwwúÅf§™íºa~˱…2ɼän‡d5;Û™ÿå™z7[ëG•Ešã-mÁj›³†ÌTÌÚv úæëì ~ êÀì €=€Gm²¦ûRÔgÐ쥭î,ðêN¯Ú4g#o‚_íµª(¾Hr¢{Á¯’D#ï†h&ªZ/Ç,ŒÃÿ °Z•]n¤þ•ú´ë’_)à7}ð¹2‰2Ó‰†ŒéAyÊ€=¨<áðê ø•Zn…àa†Ê0c¥€úíáý˜VŒ+ËX Å«eŒ® ­ÏrdKá ^Œò(Uv ýW•âYƒeÈ»]2h÷i5%õ§òÎ.“Þõ;ubÕ·¤¸·*&a=‰4zçã±çÙäpÿ«Ï ET¿¯@0Ƹ…¬øÏ+WãÛSØwµ«Ã¸¬XÜË_‰w|ê…ÒêbŽþ«,bmçê<ë=B Ê}¬£­ñ ýé½Õ›IUø;¹–Öw~[2a³h>æ ÌØï%Éh_6Ê‹¦¹Å;>œ"¦­L§Ïª®Œ5÷³ž—Þ¶6ݰ®ô¼è‹Y:§éœÖ^Õ¥¦_ŠìÇ_Ï£ÿ*çdU{Ð, ž¾j¿7õYoB뢶7_ÚaFGôó%vÄ:jñ} Œú\R­>ÿ†´^•4:æ#UhôoŸÂ6B;³ðÕ2ؔǛ’`HÏó¦p/~®k¾Îä¡õ·ƒÛv›©Í:£uM¯`6ìÍÇé ¼zÖ4T=7X±‹åUÌkVðU à0[ã5)e&á9-äW¼ï‚T2šU¨ž­IøFgÌH>½ÃšÖü«}üª&vüè1q§Ü)¬õ“å+ûìÁž²ØÝooɪÈ(Ìç5 €V|Ѫ^Å…b<£)Þ3–åeÖÍјե84{O•)ÚÓ3¿žšGñÉ¢=×FOÃÜÊ »®Š»å2]wB¾2O¹YÀ«½A»É<[àJÆêúaÀ« öväëȶ.ž?U^6‹LÒ¼P ŒÞ•Î=x—ù•ØÒüJ«¿)^u’‰f¦Í‘›)ÝMÓ(>;ü}ì&½×%%M-Æ‹*ˆï=ÈQY$¹ö%³œgÅFëm=;›ñWâܹj½ÅýÌ|†qŽz}×¥1õß¿—ÂHr$Ëè©3ɱő Ä´@ÃZæ¹z+쟗ÐGUi ~r lKk-¿Ë!Rñê.óupÑ®6ªPµ]Úš1VXŒ^ ·óíûègKp9}{'-’@„ºÔ~¼tó<Á§—`vÄï›â”ÁJ€zë8‡ú£Í™‡XlÏÍ í)÷Gßq¿/Ú]š›DàU*õ¹dû¶l‹Üù¼Ì{¿±Ø­±Ãö©Ô›¦À×Õ‚ù0+0Ê©Ú>|£ßy+°ØÙ&êwW‘íàW#ݶ &Æ#Ç}áš»þî-û´«ì;ÄŽ0¾ýÙØp—N¼Ú+³?END>´zN^=nb¨·lN;°¼CãÚPãëiœÿZ/µ Þ»xö6ØètàX9™LsÖi<Ãjià¹Àޱ˜´Ø0ÿ?è—J³Æ«‡½ñjš[âù‡\&ðj½yÕÝ‚=¸=¿¸±÷à}ãðO=VtlÉÛÂÖÀêvXíƒð]¡nø]VøàU£wûü_\ üj%ZæËøíþcWŒ=ºÕ]¿êàB®DÞv7Ý[xõ;Ɉ°­$>ã¡À+­ï®ïÔü«–˜•DpÈÖÄ«4"@mŒM1÷i!Þßó¥`ðjHtwâ\Ùä·úb2‡—¥gô™èxZr5³‚þ«dfc¢e’LÕÖ˜·dúŠ4^4—ª0iŒ#6ӸˈQÙôh§R»/›îé´•r¨íYŽ—C–_Žu³©àPíÉÀÊ©Í8†4Fe…µãoKåwº}¨ Œè,OŽÖöʧnŒ—€q^ŠaýÁ zøcô{À|Ï¥',GuÃ1‡Úûºr<¡O\Oæ ©g®“sþcµQJS×e…¶Å~kZ±¾sм¼ºB~•$ÿ„=ø”§×iùXÊY¥a¤ìAÅºÉæ¤íI¥6òY­`¼Ò3¡3Úðö|!zÛ+àu •Æ8¾ž•{P­ÄþæVð©Ýlê`4ÖJmÓ!Kµß^f:ZsÔ4ª½‚Õyj(c5N§²úÛU›à¼XؿհGþ…Õö,Q­ŒWŒ“<ÖyfüÌcÃFX7¤ìÁw°žºÊÜèÛ°ÿì.`UO&ÃW‰ÌÆŽíVÚÃòDd(žú>ÚÔOjE5šøYã$5·÷C ‘V~¨ùZˆs¨;O–%x·VÛ€µÙZÎ0^T+싞 F»5A|£’ûÎ5pÜaùÂüÅýä#±ãÁ]v•Ù{͹X ?ÐìØ›‘Ë‘‹Vup^–WÍ63ý褟ÕܰnXUðIMŒñNÆ&©}¶–üëuŒŠV4­(÷óÝí`N€eÒÒr›üî~¹Ã˜X‘b§ý4éaÖÂ\âºùÕf—™ét#ý —fëË#æ9w)8ü¸'\;óo3õ–‡Ó?Õýk€µ¬7x­±OæYÖ€ö¡~¡¼D]=ØÝe¿¿~ÕüjˆdùD¿Ëè:à™À¯R}_¯zËWa~éYõFýNÊFÙ¶¼«ïˆñ¼¹«^0»dpRµWTýb-V±~Gkí'ц*Àû»à+EÿÕ$Û#:7jÈ6¿üJÕðNH³èÎè îæÆà¿Ã<+М®þ’ßÕãh¦3^Tsè*ÅãDÃZÍ%™Vß*Ř„lF‚†j,9äWÊ‘TÇ9#ŽZ×µ­ÊÒd\i¼,ƒÏUg&™ü0jï™ô~‡‘ ä{éÄɤ¸ß>¬9¡Õ!*2v"w{i|s9b—ªùv!î%PÓ/›>«°–D:õbŒþ¨ÊøRLjö$¢X ¾¯ -]Í×Eõôt¢X ÌCû˜'§€(í‰!SÁXÿ–z¿°ä?ˆEOÊ›fš9GÏX7 ;i,¿ÓZÆ›3X šßÔWŠLeÓ•ýY‰]u?8¼ê!Nâ/F±%/£ Ó€)êÝ›{p#ìAµ ß±Öö±³¬²Ë_pîüÇN7zÂ| >2Wö=¾“Þ‘k’cu.¾“;"Ù‘ªFǹȼnkDò©‡¼  À|Ê{ˆ–Ø][˜9¢ÛSrs¯{ÀÍô«\žÍ•MhÝåàˆž>è{“f5ÓºV]#¬ïè (b¥Lü×(àæ¬g«z…‡ƒƒ¶¦Z÷¼ÿÄýâTŸa¸$û,ðœ÷*hlsç}š/ôK°oNF޹oÝVïÖ6H…裶 #!¡ŽÐ¦ªÔž4a®ÝxŒñ"jäfR¡Æ$÷ì#ð7ã¹ëvÉ;”þ«T´gp²ˆùrg%?º*:ŸxUx½Ä;µúϸŽq¯DÏx6«ïVd–p2­Èîû¤ßvv)âF5>¥ Û]¶¡ÚPÕ¨ìMQ zSK“kåuéþÕú8ùDú°Âºaå‰ð^NÿÉb^srÜwZƒ¥ˆÅ˜ãS‚ñª™’Ïl Íiy&±š`Æ»–"ʦP;BùUmö%à½`ØvOÿ½þÚŠXãsa§rTZ²²G)Æ´1?Ò÷^ßSö`YØA]°æfK—Á2[nþFÌí%cnsØßŽRÍl2 ‰¾cÁtvágõÃOÂ>:‡¹Óy¬óQ™å;ý»èûÒz©õí5³˜íÞbÚÖ°õ^ò´ô5oÛIÔèûhøœñÊLωDNIºÕÞ\¿JˆX£(3Í Û)Ò‘Ú}‡på› ÷‚YÍýX³yŒÅÞ/ÄNj€ŸÁ¶Ë¥ÿª¦ô3—‚íVÓùΩ¦6ðj Æb¥ùÂÓ͇›é*Øòhd$ðàqö@ <±9v€Ö7j9‰Sÿ]ô³ ÖúhìœAô_-@KZcÝ·ÇYQßz­xU^–SybPŸ”w»R®È’wÍNWKäåàNð«‹±î.x5xõ™ý9ò>ãÛë©?“úWZÉ®.VÇd hW¢—ÖYT~µGu6X…h¾=cr –©V¸'æÄmçý`ÿº[ê/P_ôg_ä?÷«ürð¦Í~’Ÿëzû‡ÌsfŠÛì†ú•.Û6•¹æ5w‘ú¢íUËÔ|b&³þÃÌÂt`V'ê_3ÛêNà¶Öóê†õ]h¹'0°Uí~ýWYþ1|3Ã{ú¯4m³;âS|ðªH®ÃüÄí²5˜í™~Õ’úÁEÌwVÝ“|ŒrcÖ«‹ßLÀÚZ‹9΢2B>«ÓªMqÕúÆ“¬—ívø•r§Å2Íoð=h[‘òÑ'£ ‰9 ¤µY TÕƒxòPîSe3ã1‡Yü/Õ¿ZDãðæð¿Y…©q%…Zk)ŒÐè¥Ìxv`˜¥\ÏÔÏëãMÕh{f“uçÄùX!~j°‡‘a.aJ\i+KŠ…•¨ÞPš¶ZXI:ôYU!ÆyÆx•çí¢úù»`´Â¬²ÄßòñøRE¢ÊD¨dú¯Ò˜“B$,ç]åãÑü‰˜c­M<ƒž°²@ó†qM†zò=Pª3™æDX?…Œ¿RQ/p†€ÚSk€W󌧆^Oftµ(—0²ÞD"N…ñæØ}:>c`ó]ÁÛt,€}¤3¾]ëeô™«¤¶=gæßþÞÞ6Ev¼Õ{k˜ÇoìSžñ 7Wï± WÁ©®HiÆ<Ü’V‘’‘,£Ø8Ò¼a;S»/ »Gëã¨~ûÖ›x«®–¨µ·U3§€ö`-Ø™Zë·y—õëb4¶IC3x¥µ€GšŠv™} ¼«¬¯?‚—>Í ©¬,¼™õT¯ï>ÉÃXZôû})a´Z\3 õ`F-hž…x»®éöò±Ù×Í»ä@ZßÙ¸ƒîœÞù™$Ÿã+E´JÃ×Ú^”]‘iXEW°/{cFÚëºkÚÑoÓ‰J¦¯aÏ´B+Fãù¨'³šz2ŒÛÔ»Ñs²}Rž¹"z"èêæ°>NŽ»í*¹bw–ö~7ÆÏŒíZ°™Øçcµ}O³[~²ÿŒ¼ùÄV§‡ý„yÌô`|{Þ9û¸+µš4§ºÞ£1RõÐ£æØ£wc/Ÿ@ëæàórrw°Àý#ØL•ÒÖwùn”Ô1ÑØ0ÿwÆÏË]Éz^ÃüÃàW³Ü´è؃d9ä®/À6×*˵̗f ãÚT)b6ùUKVYìƒ÷–Å['À*} ã0m[(»ƒo‚ÖŒ¿Zïoºð(­G_öàÿëÏŸv·|i_@}ÑÏaþÕí¶zÿ¿B’¢ûWIŒŸë[“ŠRšµ~z¬{{ªÖ±Àÿ«º"ZÕŒÙ')ØùÃQ¡ÖÑf™c3Gã¯fú'}?ÚRGåîè»ÑqŒÈ^«o*ñSM±®Â*ƒåðŒ¥T÷SFu70¸*¹YÐ!Ô'Îâ]^YB2(­fZ‚ö]-ò+µY*Åc2ÕóTãR¨—ÄüçtÖßÑ›É6XEÉD $Ú‘¥É‹’h†Q©idmêã #ÑC%åPY}ì!î•#ê=`5®‘LâC[—ÁۿЋžÉ{À$ lÆ‹–$ë óÈûtÚºšq®qÀ’Û$a®UµT#UË×`@½øÌÙò–Ô4gNÁ9¬‰ÝÀå¥ä¶o~ Ö©rGÖ‹tØ‹ÃÍ23‰øÖlåaØ€iŒg˜ÜGfÙÌ"ÓŒa„È똕ûÀ½tœ7¯Î˜GˆÄíO¦•½ßê}+mÍ);‘õ&¢ös¬Ã/¨…uU #?H2¿sUZDÒ#‰ÌÇénÎÙ~‘&Fý›47ÑÜæ=j3œ‚O¡Uu0FZç(ìºFøé,ºæ[úÛï3‡ƒÏì3Fýçúiëà^¬Å^2ÁÔ²ìYÓ¨pYNboìa6ŸÖF*ë°wõ¶õ<,³YŒ¿úLè<¬êÆØQíñíaÔ#Q¾˜:X5¶È5Âg}dBô÷sð:p£Øm¢Ïõ{°XîvÙ/d~®†Ô;f Õ¯ÚÉ^fPµÔSˆpŠ^ßZxÛ|VïjǺ]°" Wðn­Ó@´êÀcÑ£Ag7>¨ DËtqßÜëòƒ9à~ñoø§ƒ¾v½¹»íÒbu|7³K.ÙË‘‹‘‹Vë3®”£f§é†´¡šÎTú&É@VÙ¨¿ˆ½\ƒ‘¬kkoÖÊËåe|0 i%ðê!iáOºþœ›$Ìç¾Øÿìw{ YÁüÁàWO™E°‡û àW`¥æEw%؃gw¥¾èÇÀ«–À«èÓQ¥Õ .¢Ž|Y¼[ëħ3¡ûxp1`Tám‰ÿÔýêîðñݘO÷úkN±u³»ì3|¶_Šù}/rÂýÍm^UE]ô˜U}˜ꋞböp>ð£ ÞÕŒêzZUâQ¹›ñPU˜UÚ‰HÓs¢«»$ã«'ۮщܩKÀ¯õ¹/ŽËŒè•èLb@=é ~U»1}BLH¥m0Ÿ•4§¦úS…~öT*µ'Óÿœ*¡UibT6ïïøýšäBªÃP 3V­)Ïô~·,ã%²ÉÎÊǪUt’ˆM9¿ùÛ“xO™"aúrô'I¨½U‘–•>©ë|• ÊT ŸJu®rY—<1ΩrÈK÷R÷U‚ØUÏ ãÊÄ3¨Z“¼1MÆ|@ßg0+s®•ˆô™Må+ùÌAèSú3ðêk¶ûöúx½Ôò•™cbFã£úËÓ…ùSz?8x5i´ 4cÍ`ž Cðžëx_yf*^•2&ÔÂ:Á\ú)|×£R`ß1ë‰]ÛÒ¶=ð*ƒy‚Åæ‚}Ðè Æàz{å–Qfü‘Ô¿J§Æ»ÖóJˆ¤íë [¿¸òóhil½Dé]¾\^ÂÛ5¦!ëMcFÞ>ôª.ëãT;|)ø›}ÚTÁÞÛ# Ì=Á2ð¾2Øt¶Kéoo ›à$Ú¼¢7ê}`l àhy{d*æçù;é¢8££‘:ñ¼;û€5µ£·¤ÝhÎâoIïèa÷×`¿SÁ&{'¹W#nÁ¯>•¹UD8‹¿êɽ_ÌøªnÌÝÛ÷¾‰uÿ­Ãq8ú3·Ð̧Úh:«ÿ8vpKÌ}®,Œ ê»iZ5IîÞÛ8yÐlwå|“ØóA?»ÃlˆÍvɱ\ßÛ<#ŸÚë‘Ñ£¶ µ\^1;0Ûõ“…¬Ö#û†hFa[jæ<…÷U'b®bò)Ø ÔÖ¬&ßÀ|`´:ÐXŸ…¼-B ¦ÑßÞ”NOסñ‚Ê8ëòPí±á8«½É£Râótb•rª*T” £ÊRóª,oòª2v,…qŸéŒ”ÎâçeɆÊsÏfSI²40…j5‰q>“%a¥ÕTfûT¥Ç?1ÎÉJñÍå~ãW1òø°¾s) xVlY"h*µ«1w&5ž³£þU5FUÔjHa¯bÌ/Ê&ÑŸñ†ß«gRCê_Å0_Ê ¬BÕtн™l>§…ù«¸[æ…=8¼K#,Šdª)b UiŒæ]f½ 5–ï“¡f x”Þ-,Å{βžW28Û×’ÅCµ5u&‘z©äÛwÍr³%ö}SÕαÚãw¤=,¼ÅFs¾7×€'ˆK¥fä3É O>Í4‰dG2ÎðDóðª¦Qü3g¾ãËèí~ ªúQÛÃ2ÔÊÚ÷ð>Í¿RÝï‘æ•àû„iƒù|ö`nðÖÚ@™bÚÛUà]º?d”Ä“ô°OÂ(Ž“ßÓ>š‹y•Ùó å' ØyàU} LŒÄHæXkF‹FæáéùÀÿ2öàUм[ôyð«çÝ1Ͷ11ìœÿ±óðì!n¼ýRGTøOxwoâU7üó,Z¥@£>ÃiªÕÕÆ“fáL×è‚Nf6PB¹ÞzÞϑǩ•+‹£§À¨&yÔ“¹­ðj¹áöúEþ@Ðx}>¶ËEWCÌ9cÏFŽGž¶ZU6´¹nÚc4Gàc€Žõñ–SÌåkH^µ<¹:s×R«ø8Ðl.-ÑnÁH÷cðX µ ú#À«+n†äš|]ÕÿÞO ¾hG?εò›aNtsÝ ¿ÂU°ÀປÖK-‡Þµ4Ÿ™aèÖ/Ów´Á{bMv¤ry*åm‚Å®ö`]Ìú†à<ìÁŽ˜ûýûÎú$¿ £÷«Kô35.dµ;ª6¸_Œ§^‰u7ÜR«zAоi;bÝV¥§îCƈ×ÀsÕÊoÈú #‹ÇÈ£rXõ«ƒæRc_h†VÞ&1žax4´)f`‘Å̆9"=¢‚_©O¨Žt1Ñ•Dëz4ã Jâ™sµVý`Z§|3M"}?xÒgIX+9{'‡þ¨tþ\‰3žM›Nõ¯*_•aDM^Õ²;Ÿ#a½Âö¬;(¡.Mâoì&‹x™Ïà©*a­‰Ú™¥xC˜ÁlÅŒßôEs⚪íÜ‘ž;µ]+RCðÿëMä0Ç9‘yNa=ú4 <(l/AþËœ„8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run011/bold_events.tsv000066400000000000000000000002461323370031300255570ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 cat 52.5 22.5 scrambledpix 87.5 22.5 chair 122.5 22.5 bottle 157.5 22.5 shoe 195.0 22.5 house 230.0 22.5 face 265.0 22.5 scissors pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run011/bold_moest.txt000066400000000000000000000210361323370031300254050ustar00rootroot00000000000000-0.000918558 0.0017061 0.00137944 -0.0526088 -0.00803995 -0.00963686 -0.000607333 0.00198156 0.00152062 -0.0458932 0.00296003 -0.0272593 -0.000622896 0.000888226 0.00230505 -0.0611172 0.0197251 -0.00944957 -0.00023589 0.000678229 0.00239939 -0.0551919 -0.0305948 -0.00941745 -0.00023589 0.000866262 0.00220244 -0.0499267 -0.0193449 -0.0256147 0.000650679 0.000990751 0.00181 -0.0379916 0.0120417 0.0073376 -4.38163e-05 0.00155401 0.00181 -0.0546348 0.00361469 -0.015577 0.000332061 0.00332957 0.00134838 -0.0333546 -0.0307534 -0.0157533 -0.00023589 0.00250662 0.00181 -0.0568359 0.00234622 -0.0156278 0.00012774 0.00234084 0.00181 -0.0454374 -0.0117503 0.00366906 -0.000628913 0.00149482 0.00232798 -0.0666254 -0.0135093 -0.0138231 -0.000301866 0.00190091 0.00242563 -0.0699824 -0.00270865 -0.00422156 0.000481665 0.00190091 0.00231693 -0.0613132 -0.00752423 0.0167638 0.000947841 0.00190091 0.00209601 -0.0567305 -0.00829197 0.0167732 0.00125136 0.00190091 0.00181 -0.0493523 -0.0037217 0.0376549 0.000617464 0.00190091 0.00231643 -0.0589461 -0.0199772 0.0376534 0.00112516 0.00190091 0.00235955 -0.0380312 -0.0304605 0.0619661 0.000236531 0.00217458 0.00120413 -0.0362093 -0.00370207 0.0307309 0.000413435 0.00167107 0.00219933 -0.0519463 -0.0225603 0.0476242 0.00108406 0.00162728 0.00282506 -0.0540715 -0.00172485 0.0482736 -0.000306652 0.00254583 0.00138552 -0.0389211 -0.00878237 0.0320294 0.00080637 0.0023067 0.00185979 -0.0466688 -0.0353662 0.0320828 -0.000144518 0.00190091 0.00180868 -0.0519038 -0.0306837 0.00598983 0.00110132 0.00167537 0.00218841 -0.0458651 -0.0164833 0.0351374 0.00148692 0.00214953 0.00200622 -0.0283045 -0.0169463 0.0350613 0.00062441 0.00190091 0.00200622 -0.0384747 -0.0254038 0.0350793 0.000432728 0.00190091 0.00259942 -0.0519825 -0.0312061 0.035074 0.00127773 0.0014983 0.00200622 -0.0415945 -0.0312429 0.0351672 0.000286206 0.00124065 0.00242832 -0.0471275 -0.0312419 0.0379151 0.00135527 0.00179405 0.00242832 -0.0503323 -0.00725975 0.0560659 0.00137146 0.000414012 0.00293274 -0.045819 -0.0261897 0.0802138 0.00154407 0.00177191 0.00203255 -0.0196095 -0.0199808 0.0555742 0.00172133 0.00127343 0.0025297 -0.0367065 -0.0146853 0.0770037 0.00146281 0.00187695 0.00214862 -0.0316555 -0.0230058 0.0630955 0.00120431 0.00127343 0.00276028 -0.0647786 -0.0406208 0.0560304 0.00118611 0.00148462 0.00228562 -0.0534689 -0.0289632 0.0394908 0.0010037 0.00127343 0.00277229 -0.0631208 -0.0524006 0.0395317 0.000511364 0.00164856 0.0025297 -0.0575069 -0.0287635 0.0109247 0.000341074 0.00333675 -0.000736733 -0.0226146 -0.0263434 0.0333658 0.000463724 0.00182013 0.00215529 -0.0572128 -0.0260436 0.0258884 0.00195081 0.00220901 0.00200278 -0.0279258 -0.0216954 0.0500306 0.000558452 0.00250748 0.00215529 -0.0476253 -0.00767177 0.0434274 0.0003778 0.00179318 0.00201392 -0.0444179 -0.0165664 0.0435398 0.000636187 0.00195604 0.00181521 -0.0403356 -0.0276157 0.0372553 0.00138392 0.00135189 0.00238798 -0.04679 -0.0429162 0.0655673 0.00131205 0.00135189 0.0021553 -0.0443459 -0.00605125 0.0494514 0.00152267 0.00135189 0.0021553 -0.036517 -0.00561793 0.0494441 0.00165582 0.0017448 0.0021553 -0.0342275 0.00179953 0.0578065 0.00104719 0.0020048 0.0019053 -0.0417585 -0.018624 0.0493072 0.00136 0.00163184 0.00192829 -0.0414854 -0.0493091 0.0493793 0.00166024 0.0021496 0.0021553 -0.034503 -0.0284339 0.0317704 0.00141024 0.00370753 -0.000465382 -0.00384488 -0.0161084 0.0140865 0.00124998 0.00233141 0.00187123 -0.0294962 -0.0129599 0.025056 0.00177081 0.00215391 0.00187123 -0.037115 -0.0220541 0.0531138 0.0015455 0.0017774 0.00187123 -0.0430793 -0.0164815 0.0450076 0.00192708 0.00209506 0.00187123 -0.0366026 -0.0227813 0.037864 0.00191047 0.00264922 0.00153253 -0.0301408 -0.0246076 0.0491117 0.00257131 0.00209506 0.00245364 -0.0535575 -0.0155399 0.0625437 0.00230714 0.00113994 0.00238673 -0.0506477 -0.0352304 0.0472197 0.000424165 0.00296678 0.000870991 -0.0405293 -0.0493241 0.0683468 0.00385074 0.00229709 0.00152307 -0.041588 -0.0133512 0.0342349 0.00204761 0.00403956 -0.00129589 -0.000584789 -0.0494832 0.0391746 0.00107967 0.00190789 0.00182071 -0.0523677 -0.0146932 0.0291165 0.00100342 0.00183859 0.00182071 -0.0265362 -0.00985042 0.00903768 0.00208145 0.00121015 0.00235049 -0.0495623 -0.0324131 0.0672087 0.00315719 0.00266917 0.00163223 -0.0265931 -0.0300637 0.0325029 0.00160892 0.00260609 0.00182071 -0.0265881 -0.0489844 0.0486293 0.00294212 0.00143645 0.00210107 -0.0534119 -0.0487973 0.0488881 0.00213044 0.00212163 0.00194946 -0.0495142 -0.0489048 0.0487453 0.00279964 0.00248065 0.00203535 -0.0436322 -0.0372648 0.0486759 0.00227902 0.00289444 0.00182071 -0.0265998 -0.0489221 0.055266 0.00253621 0.00248065 0.00146508 -0.0528945 -0.0489583 0.0486769 0.00235458 0.00230807 0.00182071 -0.0509355 -0.0217907 0.0240205 0.00207166 0.00309135 0.000924033 -0.0419948 -0.0283993 0.0429232 0.0025167 0.00262085 0.00133234 -0.042322 -0.030255 0.0582439 0.00347465 0.00248065 0.00144112 -0.0352905 -0.0593944 0.0807936 0.00379217 0.00248065 0.00163282 -0.0316803 -0.0486202 0.0842969 0.00311902 0.00248065 0.00143666 -0.0383709 -0.043642 0.0697081 0.00270826 0.00248065 0.00133234 -0.0323872 -0.042387 0.0658262 0.00339652 0.00248065 0.00133234 -0.0381311 -0.0649234 0.0475726 0.00205335 0.00202673 0.00241327 -0.0599893 -0.0402402 0.0394086 0.00355723 0.00501484 -0.000573274 -0.0125983 -0.0562525 0.0632831 0.0034661 0.00258021 0.00159864 -0.0384752 -0.0488474 0.0637166 0.0030468 0.0019047 0.00185654 -0.0457555 -0.0465763 0.0638343 0.00345857 0.00396823 -0.00011542 -0.0164309 -0.027411 0.0635582 0.00316048 0.00226421 0.00223641 -0.0475804 -0.0412421 0.0661937 0.0036267 0.0029397 0.000697167 -0.026317 -0.0502694 0.0778284 0.00343951 0.00166864 0.00140873 -0.0436681 -0.0558363 0.0639789 0.00467738 0.00230865 0.00193741 -0.054676 -0.0481881 0.0845543 0.00446764 0.00276093 0.00130548 -0.0455774 -0.055728 0.0844931 0.00408486 0.00312172 0.000908011 -0.0362968 -0.0347359 0.0844348 0.00368753 0.00405351 -5.37527e-05 -0.016454 -0.0393657 0.0843388 0.00423025 0.00297766 0.0015208 -0.0523191 -0.0556275 0.0684857 0.00372209 0.00224232 0.000862091 -0.0505385 -0.0558098 0.0664286 0.00283968 0.00264435 0.000924893 -0.04655 -0.0495063 0.0472289 0.00283968 0.00285511 0.00071172 -0.0163472 -0.0464858 0.0829402 0.00283968 0.00207863 0.00119127 -0.0450353 -0.0551718 0.0473274 0.00388895 0.00207863 0.000758158 -0.0432172 -0.0547363 0.0815342 0.00334296 0.00207863 0.000680755 -0.041987 -0.040303 0.0808652 0.00331725 0.00198739 0.00151933 -0.0503957 -0.0385297 0.0745928 0.00242173 0.00239051 0.00108446 -0.0552936 -0.0462265 0.0666535 0.00252721 0.00240645 0.00109735 -0.0358694 -0.0234597 0.06666 0.00208877 0.00207863 0.00109735 -0.0405325 -0.0291571 0.0530112 0.00333088 0.00296577 0.00068991 -0.0422063 -0.0376083 0.0972944 0.00348923 0.00296577 0.00109735 -0.0462506 -0.0735099 0.0936584 0.00343049 0.00204893 0.00118083 -0.0473699 -0.0735022 0.0618499 0.00343049 0.00281581 0.000608784 -0.0425714 -0.0472028 0.0617096 0.00304258 0.00224437 0.00115924 -0.0480114 -0.0735442 0.0618056 0.00327537 0.00249972 0.000677132 -0.0467968 -0.0471118 0.0617568 0.0033873 0.00235374 0.000677132 -0.0454666 -0.0521699 0.0732602 0.00431155 0.00289405 0.000259821 -0.0326552 -0.0692158 0.0816428 0.00260752 0.0042653 -0.000718303 -0.00877255 -0.0626752 0.0816179 0.00306934 0.00157128 0.000451328 -0.0453121 -0.0616051 0.092411 0.00393559 0.00246731 0.00017782 -0.0353251 -0.0734937 0.0789071 0.0043105 0.00258082 0.00030755 -0.0361049 -0.0491047 0.0817829 0.00357236 0.00363546 0.00030755 -0.0182798 -0.109182 0.0817884 0.00408156 0.00349846 -0.0012946 -0.017307 -0.0874379 0.065482 0.00300942 0.00219391 0.000821839 -0.0556232 -0.0530393 0.0594926 0.00361966 0.00328004 -8.43442e-06 -0.0388714 -0.0562117 0.059511 0.00366773 0.00270531 0.000688549 -0.0502583 -0.0194221 0.0595885 0.00383522 0.0031904 -0.000363139 -0.0502808 0.00574291 0.0595587 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run012/000077500000000000000000000000001323370031300225145ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run012/bold_1slice.nii.gz000066400000000000000000003212201323370031300260140ustar00rootroot00000000000000‹Ä”TW›µëÜóÊ)Ü%Á!¸»»»%Hð$8IÁ5¸wwwwwwww‡wÏL'tš|ÿdÍíÕ4UoÝÏÞuoÝ®f|Ÿq´ô‘/©/ŠÏø~ÁwÀׇù"þÙi}½z…óú|Íÿû;^Þ· “ç¿ÿ'”ïAÂB!½Zá %3¥Nû9íúÿ;þêǵiÏžù}Âm ø;ú±áøóÀ# Oÿ¯Ç|ð³`GÓéþwû™G,3Ô4 šž°&ƒ‰÷Y3üÏ£”ylâz#½ˆ6›ÝgJ ÊC_qo•7×;æí3±Ìæ/ªÑ4¶ýè-¾G xŠ}áM53Œ¡ã–îYŸ-æ¥ý¢vn÷ÚqvžA¸÷åo¨7-4¼ƒÔ‚ëÓjJËQ9—­ûYÀˆu±;x-/âÚ\—Ïqy™ÌmùŒ]Î=ø äÇ”…ŸSuÊo{F½d¶»Í娓<ƒ'qYÎIñçL>ÃMø%¯ãlü”îÒYªKŸîóFßeôg½£ËüµŒãòÜýÜœ×ðtþ^ÞñN,㙸?çp¼Ãûæz y%àÊ|‰g3s;NÌù˜%©D'‡1š“ðï«ù+¼ViÞH§m2“÷#5ïøšG_Fp5.Ž~96\‹[ñX."ÓÑçÞRLózE|˜‡aT[pD e÷…P­²)k“àѸ3çäí<‹ssjþ†/ðkü4·Ïe€Ô•Ò‚«pSŒA\>M1y¡Vî«eÛÓ2N/гˆò’{£•?sé-%Dñ]ŠkÊ +;ÅH8™Æãy(ZׂÓr/Æ‹¬ÏY½FT‚Sa6—J) g¸1/æo䜑 ês3\xWZ·KÍ $³¼âh2\²Ê@% ¸6Í V¯„÷œÞS$N.C¥›L–¾ü”Gʹ%³dµ†u›5³[éNËb)¢w¤¯„’´r[¶É/˜©¦èË Ó냊'¼bhÑT).ãPó"ûtˆ®ÖÌâéJw×òÇô—ô7Òý’_;êRI‰>‘£2¯w =Ÿàõû ^i -qåÖ7i"£ylÕñÚHsK&ãŸæ¹Ó:À­V§sô²ž–Úò½4—K2OÊF)#åéBP­\Øc8—´“gØ[ͤUe¿nЖî•fÕeºÍÍs…\Q÷Þ tßëJ´÷ª–Ð9˜£iòó“UHTo¦ï¤÷€ßcEuç{ò˜¦P ¥­Ý—ÑuкÌÿn7ÔÅœ¬ÐÎn¹FÅÏOJ<é.g1wðÊBßõ÷gSÚž§‡T«j‰D§8rI£úË»ÕhÓ|-îv¸ç¨ý›{ãéHåæº¨zV#ixôg7â•ÔNPWû?õN™yö05äöÜ ë8ÏÖìþŸÝzm ³´5Z×Ð%ò¯ðop ýEÜAYã~pñÜ §Oy#ߤéü+7–7üή yÛý«‡š©¦qÐÈD1iMŒÿ%Í]“Êëàe²ì SUÎù~öf{ ½“Þ Õlû¢j¯±Ÿ{Ÿ=hLdžjÏy½LUðã(…¡ 6™Íîåü¢vnôzA³fSnžÊ?qB@ÓMIï"5á†4‰2AóËÚzŸU±š`ºÚ}¼ŒW@a~äËœ_”î…~åüˆRóCjO¹lÏϨÅö°Q8/H±‹ÇA•N¡rÌSx'VÆÞÃYѺtŸjS¨O¶p–ïøq‚^ÑaŽ/c¸TѺõ<™¿“Èrœ‚vש#^!9/ôâ¢b#ï;^À5ðušÎÜC %£|Ýp Ä›Ãó Ý"³Áç-´Éæ6©?Ró‘o‘¹N_ÉŸ\‹€‘ÁÅù[¨XAÙÂù¹T’;¼›»aŸOA‹‡rM:ù잪3ùl\ìÇpÒ’K‚a£9kð#<7M·×e´Ô‘TңР”‰Ì[¡Á½y}üçk`GÑ6N$¿KtðÓß1rƒ9Ôµ$~’Zjs9&Óe—°¼æi˜«Øïßq)icücsz­àJ‚›¥—ä–sà×fÎ([%³f×ûÐRërëI¯iuŠd‡Þ§‘aRHFÊ\qü#Í Vï[ï-vCŽ.³¡áËd,ôðw‰¢7e,Vëh>(àqÙ$uõ” –ðò<•ãÒSòJuÌÑ]3郊·¼˜ËÍLRNæHŒ»j?=©‰%¡NwÇ\Að#·¿µN—Ÿ´§nBµ2CöËŸPûí%^ïêU¢0ò‚/b½v>2‰Ëxí¬Í4…TÒ'nœKîé$7RçÊy}¬· õ5¤-wPÚËDi-UéxP­r¾êføÑãÜQêI;út[¯åÜC¯Ûõ°ûÊ_ʼn¤Ë§÷tƲ°®–ï0;¡õ•ÆR‰GÕ[à;ìæ°rûé¼¢ƒ4ühé^»,®­ÞÒî ´€;â"»:Á­Õ®‹ž‡Èu),ƒy'e¤ÑãÇ÷ö…‡Sü…ÇK\*%ô­+ìN¸bn±¾Óé;翯cµ‡›í’è1Í¡ñä6%‘EXñuˆ"³«âo3¹˜ì†Â¹^â…Ë®`ÕF!€9è™·%„jùM.ëCžz‡,U-˜B¹¥8ÌÉ@²§Ðâðßm¸"’ÄPizü˜ç«f[Ó1(|w°1¶Üjðœ^¿jÄ–ŠÜ~y¾_bŽæböÿDúú #2цõâëó÷^]*‹I%‹(JÊ^øN0RNÊ#É©û´·{¦Iô¨¤†s^$ùÀ«$x¥òHs$9W§¡Áêýâù‘#‹‚oKÀ˜EÈÏy’|¥¯dLÑ':Cã»_Ýe¤›êú))–$ÕmH"‰¤7VÕ3öƒŠ7¼ÚhÑr¬ºJ²Éâ"¿’©z\ˆÓ¡î¤Ëæå²úC…†Úù#ŸDAòØ„Gö–“<ÎãÇê¢wîd÷Ãx­ä…²[ûèïÚJÊitÿp—Ò×…n¡®ÓjÜ[°£ü&—eRÆ*ü=7í ªUÄ׬æ8hûu.“~â·r‰á‰ÆÖÝzÒMui¡¡/]_—]Év߸"ºü˜-¬»¥‚—T<"¨ÞDß1ï¿áCHÏïå:œXT]¥],×[!q\qÓÝ/`ˆu‹t&”;"òÇÌÈy 91~c(M êoCSÜž#«­7“hÔOj»ôþHm•ÀŸÚÕ‘‘kŠTãs£t¸ëâRêmM¤,÷Á¼ˆ®¢ ÛƒøqÈL¶û©VS3ì³Ü|EsùóºIÚJ÷ë^íàʺjþîþ›à]!·FιVnŠë…tò;ó=­ã6\IÂH@ilãϪXÔt2Mìfèß °¢2ßàÌp(­ù¼Ëƒ‘ óaú ÙB¤<>‡åçëÐÂÐÀ‰J·©¦˜D£’Â=j uv¼ÍKð‰ŠÓ¼_ù×ç&|Š:9#²}ZðãTv>y‡‘iœ’ï@µ ›©yÉ·Ùø9‡¬FokÀ'ä·T›[@û+Ë:øóyð'ÐÒ ÂxãNHw?r{4„j%M{‡®p™]]”“sqfä¸èòiþœ½%3á¬ó"Ÿü€:MA¾+”Zº8~ÌôU¶]iòF¤ ç;ɨ3'úÿ&‰ÁËŸ¸…Ü€†nÁ¿E–€×ë‡qm‡‘™mc{_ëó^yªÌ™81²ÂdÉ&ÇÀÄyœ^NË}ÉUínèWºO je ð¤$Udø•›ÒØ`õÚ{1øåå4¨7CV"Yúd8òGh'ê5]®‘]7ä«REïBQ0?÷ñjc¥´tGK}Þð*¾ôªBwf¡J6YTqŠCëLÝ màà¸C®¸ÿËão ~TÓ_t³¤Gþ˜ vŽ•…rs·ÊøA½’t‹CcöÎòùI†ójY¤s¡€ý?<ÿ<—ßmÑn"Z{Vhmvu‘[²[ºÊi$¥è\P­ì¾Šf:ÆÜ=çúò³T¡œMk7wMkê)=âÖ¸Tðú™ýM\V¨\4—TGæ7rDêK'Iö·ü1Ë·Æ»Wq{!¼Þ¢›´C®ieçùK¹îèsðr¹„ÿ¾×M:ßÓü®9Øž-8.e_ ´ô×û LE¬¼DP’ÞÜE|4BJºüPü}®”Û£¡À ¿¿½ëéÂû¸¾Öwå4Œ‹¬±á·Îs]äÞô„æñ㌙kORCð£#vA,~¤­ý9Ü|­§/ôŽŽB®¬îè‡T“έ”[®5RcûûÎðb<§¼e÷’?²˜A¦JÐÈD2™LÂÿ¡Ì.ΛçE´aí4SÄ0 ƒ·Õ;è]ô6›˜fÇUËuèMoé=¤3ÔÓî󙵦 m¦¤†ÒÚœ^¾/j§Úï8 ï@Ò¨ÃI8%§•f® ¼oK“¨Ÿ£¯l¹Ïª˜×Ì5‹ÏŒ‡nµî§’­œ…QÀO¶q1žO9ø4•§[^ûϨÁž²É±ÃEÖãù‹¡úÓ wáÀOb==…£ûì GîzÿÉjÌE:~$äWœ@&@7»óW ÝÔ©%‘åtªÈѤÚCý>yþãº×‘À©vã‡<ƒc@ùãÃíßåt’AâÃoN€*.‚Ö¿CËsƒ\3me“ø£ï_]78†…–WåIðÓ©ôw1°<[,ßÊ5^ŠLÓ)dOæ_¹§§ÛÞŠªU0­í{zÈÅÁÞ9 GFðã.ÒQ¾h³’_§È@´²màù9.ßGþÄBàÇV_;–ž#³5†{uhÇPìôáœWºÁ!ǃsü ZqFÖÊ!yÈQe:ú=ŒéŠl3ׯõ"ëó¯^uªJ擽 XvÙ Òlà"xö-ùVïéwUcéu) ùt™çHSa’ãš´,X½A^häµJ¨°m˜$Sù Ï–QÈ =«Ó5žk~•š]‡ƒwE$¼^IòÉh¤¸ç¦ÿŸ{µ¸!²íK®.;ð(Oâé ݪ$9øU—Ò/~ò9~Ö®º­‹#唌kžðÃårt›ð ~Á=¤¹¬âó²Mçiô­½ÆôO@þ8­]}äãúNÏ"åýˆ|q }i"f“pt0¨V!ß`3+¬-8>EšIkjÇ©õ²¶u—µ“zn‹î ƒ±ýù\1}¦“\x—VçË2Q^#›•„rþ:ÿÑÑwÎ #áQ:òm Ëã8²†v]Ý;WÏ—¶»àG·ß½Ð:ÏÝÓ(®zs¿ ù­¯ ô¿3¥íCz-©Áq%55Ò¾®¤?ŽÛŠø åí¦æ©ýçu»ŽAkÓè×Χ¯ù&Võ¼›öÐkšÄÛf¶ÝE=¹=WGÂ?Kí]$¤  ÃMÕjî7išÿ ‹áOìnȤ®‡Õ›¼„ßÑ"¬í"pr7mH»äß>R™¦}ÐÈxÇÿôüGsÓ„?RÛŠv›ùU®ûª3½Þ6ÁÌü¢jÏ}el?&8ùØ<ÚÛ×t1Ž®SX"ÛÅû˜J…|œðÚ@[&P~8朌FÓ&ÓÈ;Fí¹.ͧ‚ ~Ûõ³*–7M{Š·øfþ”±ðʧìxÛ“È$W) Ÿ¢6Tè³Î$°‹m,´)’5æa®‡SžÂ3ù8vø 8ë üžÓY*Ná>ÙÂ#¾´üEO* ¸”: Ý,CN¨!ïáî3€*Ïi φžÎ÷>•h¦x•ø*Ö’oAçÃðï`OQ6’TRKxÙ…*³x,4ÿF£<Ÿ¤36¹ùX2|æ[aò‚¶@í: Dhô«:x;^s'·âéR Ú´­eÞ‰ÚC áa(¦ÝBµô¦‚}M7˜¥7'æ} YN…¿­åðàù+»Æ~÷Ûû¿ölOì²Dp ¡ÑÞi!ðãO¬·.tù£œ»OèE@‡,Hí Æñ%W”Ãpß'á¿=Y ºMç?xæh¾}ñ«NºzMзrȦ›e¾ä‘sèÉtÎ ­Î©9á*g¸»šUL“AS³ÈmNdS¬Y!¥ù[š¬^m/f-—”%²”Å÷y°ø4ª‘™zFg«ºéîG } ½$&æÇ$2PjKG´òžìüG Ðh)\ya´o˜\ä:U7#$€âí†Fð'ó·Ñûò”j™d–²FÖ!­•=<—OyžOù–.ð#dÔ;Ü º?ˆOÉ*] =[ºkTð#Û }Üb½++5‚» g_U:"!mC[×Ê÷ÒÕ*ëklrZüwÄ#+B¾ÑãÚÑ=ÕZz[Wº±.·Ëî.¸æ®ˆvÔGî¥æBþ¨‚±S=pÆG’ð€ z+}û½[k¬G×伜òÉm䞺làÇ!]ã"ú—»~‰Wé‚ÿVq?éq‰%ƒå‚’!PüTT'¨¿õMM{•|Øåxš§r²Yãúë¸ ®´»¢ß:ë7þÕîG÷Â×Ý Ó#—O/j %סy ý_<(ˆGÌj{ˆZ`ͷǾ?IG4ž?“›§0#í‘_š¹gn²¦‹ìOë^ÊQWß%v?ë½Çkø6MáúHÆ1Å£Å!o»õHbF™æA#ƤÿóG$sÍ„õ{Ym {Ô”äGï°·É»ä6b¾ìêgòØàG8ÅQyˆ½êu1¿˜XðáqèkJcz¾¨g½ .K@ŠPýÔÔ€¶™NÞÌZÚJ…áªsÛúŸU±‚búÛ#¼JW_WŠŒ‡Ã}e·BsvcWÞ£Üü„šP Ûõ3êűsmx䘲*¨±˜ÓC™Fò:þ…ß°“Üüëí%£¨Ÿlámß#ZO("ô>¾,B’)ÿ¥˜ÃÅ…±÷ ß<¢}à‰å™^ìOT\äÕàí`Ð|ptpÄ'q%¥¼ä#pó3A¸µüœ7q!ä-6ÇG¯¿ºéÛj¾æÄ2‹FÅ h—ƒ+…–U’eØW}¤¤œFîÐæÞ|>q:˜”‚"Ú®½¨dÊØ˜|ŠÓƒÞey#ªäÀŽŽÅ{AΕLtØ>–AÐþøR 3Þ&@;øEG{W†Àå¾úXo'@מ’F¢É]Œ}¸‚2JJ‹HtIÁ•¡þãd½Ü㈠Ô\ÌÔ…›ñrûÄDÖç6àG^.È9å8ô¹ŒF–ZÈ™d'ˆ‘zßÚ’I÷K­¬S%‡<…ß^­_†ú…¹ì?Οwô²`¬òáß'ƒIù2wQÒ+²Tê|M亻ór@ÊR#ޤ—˜z ­/.=¹3;ïÏ*z¶æ`#‡tíSä1GÓ¹ÐÒŽ’N»³.·?†?…¿¹î?†è"ø…(èý}™Þß÷z¿~P¯â|éoºü„tvI¶ê`m¢¿ICøñ8PÖÑ®‹î‘] Ý1°¡2Èdš‘èwE)ô·óY}mÌvŽäñŠ› ñd£œ}l它¶»u½›é’ºêÐçÚàGg]§×¹RCV éQ)€q|F­‚êMó?"ÈîÃá4>O¦}rSB× ¸ŽÈ‚Üy7Ä r›Ïíѹn›w•õ VÎDð£ üŽu“†jõ÷'ÓÞÞÅJ* ×7SâQJiáûS»5®’ÛªÏu•»ìV¸ŸÝçÜRÝê&»rÎ%Ò÷pY{¡ö“i(Ý¡‰Aü¸hVÙƒô32~øÇK´_GùuµÔY˜×J.§Šsþ‚nø‘Í•pÝt¢^„Ó¼A ‘àKT$¸å!o»õHc¦™A#C&»Iþò£yjby‹¼6¿]iÊ¢Êc_SïwÁ3ö¬‰ö…üHi~¶c)€à)çÛ;Þ3Ùd¥k”¢Q6[ÖËúEí|æuâܼÊC7KqNªE3ÌÏbg£mT{³œmøY+™©fš½näjøº~Üå‡Î‰ïáš¼‘ ñMjMImßϨÛn±‰à¾}r)atav6Tžº+?åÓ\š_Ð30!Åùd Ÿøž¡?›(,Ü`™‰J59"œüP©*Tå4ôv ”t¼‹ð¢Oæù^dîšÜŽBÙ“AQ…3q$“„“3PÐñ¼È ›ÁgPíj=ÿq×wÊdE«Vߣ¯¿G/%~´ñ3—"ðé‹0Š3ÁækqÜ–Ë‘ØÎ•0Uì7üŠ£Ë.Ì›y øQˆS má¥=Ç¥{6œN‚ÇM*çQ~ŸÂ¼:7~,ðýdÇÐ}ôk (öï '0zÝ©è5^¥67•‹ÐÏCòœ#Ë<ðj~àUXÍxµ/b°>7õ?‘­rÈ>0'‡œÅ ¯á$²G h1½©“œ¸øzVJkF]бô¤¼l—FrLŽJ=®Ms‚Õká½£×T„‹É&|c|–ûЧ~=% ô’.Ó<àÇÙ%ùôkí+‘ÞqÒë`M9Î}ù‰ùðŠàG^IŒÈz$©ÒÐïr•#¡Æ\­~,r?üþtþúº[Šk ])Ù%ì—G2 éz½-Øõ»%ɉ"A_âyHCy‹ìÐQZ[ÿžúÜv1ÝíÚê&Ù©õ²ôAZøê|B#Må•\t*¨Va_;³ë´?¨Ú<ÿâpN}£¿¸ÛÈgu9ø‘Ñýàž»¦®ÓÉÐ鬠p%d³zÕòŠÇeÿ!¾Ã^X8ô-Xc¡5+¤ï$µ&t~Y×KïêXTšìƸc.šÛ­Ý ÍèzèVI"“ä%r\ÞGé©QPk˜Êö&½ÅÚý´,Cå¶&õ§qÛ]]·^×h{$›…îww×½ÐÅ: ú_X#ºê“'pE?ñRÚB̽‚øqË,·ç©c8ȃtTËû€<­õžWÚtýüÇÝc—Ò­•³Ë"®«.Ð ¼~ÿÎ5Å/Oíê·Ý¿z$0³þvý™œ}÷úSGóÂÄõfzßÙ2ö©*g}õ¼ÝÞ1ï÷ØøÌº/ªfM[;¢p$ŽÆùx«`W™î&½ ”ü¨ê}ì*ŸÛ^/.Áó©<í@.ISh‰)ãí£ÖÜ“ÎR5NÃ5m“ϼ~w˜doA§ÎÃÓ6‡Òä— ˜Ãwvöé9ìJá’ü–zR‰ÏâG»ØÆåºj<™7`N…·»½‡Z¡A•||Ÿž@=jRŠO¶p¯ï-¡dñìäçÏËaµA–™Ïä}ÀÕÀ2›^c1§æµÞ§*Ž÷ò#SU€ß?ÂqS~M)ø*\£¤²'âk1ª¦‘\üx‰üñ±™yèÛb’CCbܪ¡Eáѯo¡ý38蓊ÛK.ŒÁþ)~+ôq9öÆ0ÎN¡ìþªå2lä³Ì2 àÊa<'+¾¾áC ç>iÇÛ{2DšH¼ÀëwÃ÷EâkIìhü˜€üÑ‹î!!,GZˆ'7Áü fé e…ä+©Ì%¡ÎSeXð2Ü^ÂCA­¼ÓzÿàGao²nf.*»‘ÊÊEôxÇ}Òh)½­CÝ+-u. ç<3Ee \ù6¹$U¹þ?ÎT÷¾æ(œ‡‹È xç]ð—x(ôü¬?^ëZMⶸy¨‘Y/¡ß>(~Xðc¨|'ý1Û/̈`ï_ÕD*=Ç1¤¸0P®óS©+µš$Õ)î¨ËãgEZè}Rm© ¥ÜÂRy‡þ¯[ã,Ïä'ëá4VF/é,Èá²MjCí%?è{è}j·Nç¸ÎHKSô–Þ•~H ÍåÒÙb9(u¤&] ªUÐ×Èì ¼îw”Ÿ¥}Íeô´6wÏ´¼ž×ãn4µ¨»çZ¸ïôÏ¿¯¥u–Ô—¹È7@:»Õ[í;à=AŽß Ö§Òðå%¶Vvï\*×^ï#Äó¯w#ÝEç¹5:ÜÑRð÷{%…Œsèù >…üñCPKšö!E†ó)Á+¥(}-ç4»¿øÐËrîš{~”táü×t†Nsë\QeN#˨F^B£é%ÍâÇ^³Ä^¥öÜnv¦Ý¨ÖÕMÖïÁÆéÚ߯¥ñOóÏqéýÅÝQ9ï2»ˆ®/’Écì¡k´Š{²a?¾LaÿwޝÍlÓ.hdB› æÓ7ä#·yk¢{k‘?*Ù»¦4ª\ô5ñöz‡½;ÞUê ¯¿ o†Øé”Þ9ôs®}å-3ÝLTº'ˆòÚŠ^²/jçyo òæJxÂYÜsÓÏÈ彃T“ÇÐij€^ÇÖø¬ŠíÌX3ÅÞ€›Ü MúÚ™WÆpK¾k×€&‡¸6Òncð£=åù¬÷¯2Øe6làçH6cõL‡.ÍåŒðõýyê“D”Â|—Ó]*FÁß%ùçqÐ'¼‚–“Ÿïr|¸äªhah(Å xéÒòŠò;¸û‡Ô< Ç+½DŸ¨ØÓ+Š|QÜ8·*P~còŽ+‰±»×˜Sx!ª¦Gª(Õ|Ö¦1?š?6šh Ú<®"­`å+T—+ƒš9d§çàõÎñªÀ«¯–ðIT¿p< gç†P-±)j³H2ä‹4Ðæ)\€sqRäÂ`ÚÛÓž†’Õ—°H5¸æ& # ¸®-~Œôµµ#è<¼ÀDäPò ü(‚ïÜpÓ9äÒaüÛj(ó9Á~$»Çþè=Þf|f¾ó~§ÒÎð0t·žÓ)ðkð!;Çi¸\ã’ÀãæÒ¢:E I$ä„#RÕ÷J}nA“ƒÕkì½¢ÇÈÉÙàÖO!© Ïô÷¦¬—êÜ-à¸uP÷¢z­ ± §× €y £ù­™ìú«Êð,[1~…Á˜KÑ.ºZKÙÏr]1?ùsù[èI®t6Z¼,Ód”œB†;èuÿ ^zÂO0ö‡x†ü&½ù ÌÓ>ú“VFjü£à™÷Á‰wÑé²_ïémé$Õ¥•Ü ¼Bl)f© ýåŠú𛥠³÷€B ©Aa8¶^Ö–î¡FÔUºYá+—Çyþ¶.¿vF^r.#F±¼L—z\ÒHEùêoü˜â;î=@*ÝŽ9­y,¥Â¸r·]a7Hê(wÂÍqÐën.ô~©¦rtŸ|-cÐã¿%”öoï_ýhšÛd¸vÃv©Fïx¾ÆõçwË]m·P7iwwÝ-quÜ}w tûd*¦ï4®Š\cYùc7=§ÑAü8aÛ3ô3t©ÖýQÚªYü]Üä¾:_›‚Jßúûù÷¹ðþ¢n¶Dô§p5\;T¾ÀqZwXmõÓø·Ý¿zd0ƒÿöùÁ¨&ÇüþUsÃ$õæy¹mY{9ðš®ã¾ß¼…Þ6ï¹÷Ì$úÂÏÆ7SíxŠÆ18Üå»ÙëmJ™·v#}Cá(½-ê}L¥B>.y3Á¡yàÇ(IJ*@«M.o/2hgZG•8—ùÌüQÎL2Gí)¨ýaxÊ8àœë@þž£ÐBn…ŸÖä—T”P3ÊùYù#«]d_QK~ËÇ Ä3ø¾ãq7hÓF¬Ï—ðº¹ù4¸y QöO¶ðšÏãe´.<’FE¬×ÈXaóy<´ç9ï„òOcæ~ Õ Úç¥üDÅÎ^<§ 7á›ðøaÁ‘W” J€]z‡÷ÁÏIpRÙÆÙø²eÌÇÞ{äÛo¾Õæ£Ju.‡¹j|#{$fÑ›ÚÏù\]µ®ªý¥ D–âH*U‘nvJ1nMƒÕëã= WTŠ !í—µ2‚oÛ¿‘{àÉl} [´š[ïvB‹‹é&á%½ÄÒG2EJ€¯½˜¼ùT|í•€;Y‡üVN¶BÃïrxí«ó´Œ¤×ÕîKíé*ù‹ê|)«?èÐ(^éuž\?^z=>¨—…HžbßâqÒM†ñ*9©Ãµ9xÔH#ùǺDn rBw'ëô4þW$Ãnhý™ƒ~——Út ¨V9߯fF¾’^ä§RT–¿s›¹P.;þÜí¹Ðù£™Ëªý‘¾rét‰4Dï}zOrãë5ýToï¨÷Ãmøk=B3) Uuvç\=$¢…:Ývº>î˜{£St¾[«ÀÍpHãA¸" áÊFÝ‚ú[Øühïa}´çirÓF‘lH0ÅÜ×Ó-ÓWzÅ w³Ñ¾§îºÒ pù@xÖgld7ôa/ÒG<^Äf©=0kn ãmZùc°VQ‹¶lwU]UÿDÿ9¤0n ÜsÉ@”_u’^æE|‘ñï l\ K‹BÞvÿêÇl4Ý·#¢Éb¾Ì×ÿud3Lo¬WÆÖ´O¡õય7É;é½ónšÄfÙUÓÉN¥TP¬PPÀCv—×Ó¤6¡é œ@8JnszŸÖÒ¿7¼E˜™±àÇT(svêFÛMNä6<„¶Ð÷œŽ[Øß>«b3ÓË ´÷y?vKnÌ—ø[’8:Å?ñqx}ÃÅù u¡úvàgÔ+dGÚxH-áá—â *Åq¡¡cù,ËŸ±HÂW‘>îSSúô{vû?–ÐJzC8“,@ÆÃá±.W ßÅÅÈZ.&‹ø æÕ`æ®O¦¸ö^qÆs¸ ”áC3ŽÏi9Œ$¯õÐâ€Ï©¬Ç:Î#[¡°·éòÇǘôÜ·ÂD@«æ"”@bPä ÚH^Ó¹ˆ¬çÜHòË^Î#@·í×ù<ιŶ‡C¨–ù#_ç¼¼ ;/çFë®ó}w†e/Ko©"ßH[Ôn†1ˆÀçÀÕÙðlÿ¬6ÕWÕN¢“Pø¡ðÚÒv@¯;r.$à³ÕÐÊ“2HNÈy0kÆsz?+`#øüÎŽZPûâœj¿¾Nc6æö¨<•rúBÇ;q9u¿Ò\:C2`,3CŸë!Y’2Ü›†«×Ð{Ko©0Éðì+¤?øÑU„X!«ô¹®×ÜPýͲJ¾×›2XDRI=G/í0ÂOÍ®*>Á¼6CÒE¿ ß=d/¿’!ðÎUåŒu\&¿ßÍ_J_AÛèÐÈÊl¹~,M×ñYïÃV WÈ}û‘A~—v2•7!tÓ_´¾äUëŸàâ»Ý:ÁMÒ«²ªxJZÊÒT®€§Ó‘¹êƒ§ƒj•óu5»8­4Gþè)m¥áDzXë»çšSwéa7Ï¥rEÀF®œÎуÎï #)U‹Â¡Ï‘cp— z«}»¼kQv`Nãè7¼“jIt­å^¸L®›îÖqÎïŸã&¸Ãî¾®ÕÙî®Æ…>o“¯0Ž·¤Œ æ…”‚:õ·¦©h¯ÂÛV@‚[+…)Ž\ÕþÊn‡+áöh~·Æ=Çw÷Ê]ÕÙú8ü°jóyÞDO):\ÇÿÔ»hfÛÓô ¼Ò­´Z³úÿ@’©ª£1†;]y—Ù?Þ¿Ì}å/çŽÈ WÜEwÀúpvçiÿÌu%D¦]!o»õˆm–›¿Þ·ñLºÿ˜åÍ+ä‰^I[ž5ÕùÑÄ[íí÷ÂÚˆžýÂóçaÍ» nÊßñ1{Ï[jʹ“STÊbËy龨O½iàÐú»xg¤´ÐdóvPn4YêPÍÖü¬ŠMÍ(Ó×^ãÝÐÓ’àÆQ. ~Tæö4Ý®Áï(7{Ü’êØnŸ.çKk§Ù°Ü}² *8‡“È*NÌ“¡žg±BCÉ9ä¯Ct.Qc îrÿy,ó…åàÇ#z e]‚\Ô—SÞ½++oyWB}æa B ÞöÉ÷¯:xõ8à Lmôìæ¢GäÔØ‹ù$¯D‘€; Íæ­‹¼²)å)ݰYÍשy÷ØDáD²i¦ràûWW?#1•‹B“òq) 7°ƒº‚ Ëø2\î°¾E³!팜&·Í„|Ñ©c+/æ àDJŒÚSŒâQ;ÞÞ‘.Èå.‡W¬Å±ù…¡¯„ÀѾ¶]àXðœ¹À‹;Ü“sqN U”ëErÞ}d$ó5Ž-ÃyOÂc: sηq½ÈÁú\ÓkIy8ç“M2 £u-XÃé亼”¢zL§¸{šROÃݧӾØýw@šµR]Ê)) ~¿~·‰÷’#œFÈ.¤”™ùã‘„ÖÉÈ×u…fƒƒ>#û$^GJ &½—»2UÊb|ÆðÅ`üxèåQ×òcôj#’À5~!Ýu‘V·àÇA—Öïó'ó·ÔõùcfûÏ„ÞO“I|ßýA½2ô_!‘ïç_¤;ø±Q¦k­¡Åáô_¸^.ø1À Óåøù=(?J5ðá,ØÕ#ÔLZþíþWßù:™X']ñšm¥µÔ@’‹¤ç´¦»®QÀ¸mÈ™]I÷Èuw%¡£³\ —TgKe™ ¢ )%qÿöþÕ!ß>ïsß$ôæxel]ð£r`þhïö6€ OáI7|QµH¦¥KaÙǯBÆØ]ޓѼµ‹)=³ùlY/˵ó²7äŸNéA*œšÚÒ“ß[Kµ¸þž‹cr ûóg¾5Öt´û‘·¢R (sèt-C«áÒWAÃöc½?¤ß¨„ýõ3êe°óí×ØË  x8‡–…œÊÔ»»_Er€{é&ýDŸú´FÀùóçt 8žÌCÝ!H }x8WüØÅñî½G­áúÃñ©Ü·)ø1Ì«ÌÛ8àZÏÐtç‘äkèÉYTŸ‡v.ã¸2zIçmYó±LÉ,2qàð€á¥x G@2ªÁ?!q”€s,màÓŸ£Zðc*80Žìw®EÆn¡Zn“×zù• æw#\r·ùc’>—ËzG¯È÷`e¹);è6K;ùþºGM9_³Ž¤©¼F«HkêÃd«Ör0f+tòGW.¿¦«¢Ýtð#…N—d22WÀç?KRþëÚ•S¾“ÞIø² `x$}pO$é¥}Ý{—Íu×U:ÌÝáú#…iT¤dlxß`“Õðû—é(í§ø$ŸlasæÐRèäSN.³¸t0*ÿ®-âbò–Ïò7Ò‡êÏÁJü놂‡½zpöå±¶`µ&ƒfÆ„«N ¥ Ä—ƒ<€§ òV•äC´ÔVþèo¸é»jŠ@ïw ÕÀø½!xÿÄe\?ëÌáJ¯áç‘Âð^¸ÜŸ‘rÐ;o~ÕŠÃaDFxÿ*ïÃ3Šr~NÃ/0‚sø¦Iau¬tC+ë`϶ÂH¼¡5=è?–øªÙ?é2g’¶àÅS¾‰×Îî–1ÚIxy…×;–ÉAy-š€6Nàa˜¥Š¼ÌÆñ¢ëó(¯9fµ Æ|£Lƒúîi6qȯÕᥡÑÐÂKR@Óèä“°àñ©-!¥¸ VïÏbçï¡ßûð=ŽOq?‰¡©t§LÓúZS¸Þîü|m½×SJIdÝ Ã$3ÜMg¾l>¼"øµ÷-ÖÜ~‹ü1}~À¡uÔÖ_Ç».‹ßïOáo«—¥þ¤›$›D©VÊPî6è~ÃkùA½Òt†/óaŒ[)-ëy·ÑÁÈ}¤´†òq‰Ýâ&ƒm ô…ÞF2¬.å0øÑ‰ª®|OG‚j•óõ3+±«ú£U¿ Z.ªÆIõжu‡4«Ðõn¸{~å¾w-õnt \Œ3MîÉI…rÕÛæ»íE“¸²›Çpj}Díù[‰îþp1ý™Ü`ð¨»Û ö¶s‡Ü pø Ûª\oÝ,Y¥òbbéÅ£)×ß>Ñ™Ú4?^RV8jŽ^£O)ýÝ÷Û¡1\/$£y®¡{ŒzÓôÏ¥T㈑7¼=à^ÑäÁëüõþÕM³Ón#û"‹ÇáÝÔIãØQ }=¤cÝ·®¸¢{>–…øÿvà^} /‹ÙòìÍ‚’C^Ù/»ÃÇÿΑÕô47c²˜OÆ ä#ƒye¢x'½ö';/ðþ‰÷}ͽåÞïøÅ|Ù§ë3š_ízKOé}~Ü÷6™_M8ZEq(6¥·u¿ðþ%O½nœŽ‡S&¸Úœ‰ªÑNÓÇ»Lµ¹ µÆO£sÅϼ{]ó‡écw0ö¦._„'¼Œ,ûÜæn¼¶œŠðjE…lϨ—Êî¶ñ°ÃC#ŒàÕ|/à|2ÖÄPìîÚìI4IÉ·À=ð@Ÿ¾Ék_DÞNs‰Áoà’KÁyGCRÏKáòcÀ;¦ÂOßÐïP¾34ô¿·"ø±Ëë€ä‘*m‹Ê푘s"+å&¦D¿Gó4dT|!ÇåմĦÿè; o|gLžÀk­~Â,â0ü‚ªCõ§sDP²…'½ ~´ ¼&ø8ô­5^Fr!þfƒÔ¦}DVÊHN '½¾ ?òÿ ŒäD¾*‡ÕåÒÿÞãØ,އY ‹ú³BàÇR_3Û—®!!ü"ÅÄåꎖ äRpWÇ€ßÎQœëÀ®†ŠÞ£–‚=A¥¦XÓ¬ýÇùž^dÛüàÏj¨PFhW8<òHÊkY=®¿¹ÓšZ_J^ý^gb$j5Qò@ŸI6®ðûï.ôBc´²sIY(½‘A~åë¯èàÇU™®t¹&tSÜ (r_ht7 nøt«t@ÝÑèË%d¿¿×K`Ë€hs™%7ÓÎø½ŒÖcÚE2Á™ïrÉýg\& ½'MµR ¬™² j?©`.oò>ü}"è¨z#3J èûÁ?µ¥v•:úÀqIÜaãÚ€võ±^1ªa¤Ï#Ký& ;³Òù Z•|}Í^ÎŒ^¼åîÒK2S¤£3àÇk-¥;uëââ•߂ž–×Èrï5¬Ž1gËs9„üQ@ÓÄ z'}ÖÂzáÃøÉ¿QrI¯ýÝ)÷ƒë +µ'òÖ$¨þaç‡þÏsk´²ûQWH ×0Ž=y-夿îWÿ­i~$æâX¡+%#VÍ5-áïèV ÞqŽ DùݱÿºÊýê*¨Ï=’sp‡ûz¼”öRÄ'f¿=MÝdëaŸÎ¥ýZÃß)¨–:·Bu]D?ÿ —ËÇ-K®˜Ëãjè$=Â+‘øÎT ¸[¦Ýò¶ûW8f€i42áLBé?äG^óÂ$ö¶{…í¯özà9ùÓ¾†ÞVï°÷Ú{Œª_öéH2mí"ŠÀï¡„uØP {È47qA“"”…rÚÚÞ—§Y釖ހ'<ߨŽþ¤K¦’÷„:óÚN?B±ÛÚ6ŸU±ˆÛ×nDRß[?ð€ùpøwìUì«Ó܉ßQ6Ü•êØ?>]ΗÓn³á±r¢Êa8ñ9Xcë95òÁ¾m ·›)õ §²ôé÷/û¢ñu¤´wô–ãÈ"´ïŽ®|¶¤$‹\Q–ÁÉv†îÇàåÿðÍÁ‰Þ÷ð•5 ¾ï??Ø ÏÍ ‘º”TÞƒxÓm¶sLÙxžÿ¤Mb>ú[®Ì6“œ ƒŸè[ÍoéÕƒ§ÀUŸáA¼HÈCŒá‡×Ú Â åæœ”ÂØM!KkJØ«tƒSÈPŒ×fP¨0þ •Ž%÷ùò(¡nôþC‘?êÞ?ñ(½¡%¼+Äóu?Žá¹ýàåZ@G#Ë…‡gž%ÙÁuR…›Ò„`õºAȬÐÈᲚvƒGJX¯'¡ûguŠ&qýÜs¹.ô®Œ”¯á› ¹¡/rMèæ#³üƒŠ¡ù± Z;Dþ#üFfèn%i´[éúÃùãû !ÕÑáÐÒlZ¿•—Êux°íÞ‡Ÿ/E§ù ã3PüÊHG{d³.Õ&:F*êy7Ê¥s—t€;¦ïe ¼ø9Ìti%7@ËÆ²^ªJ zT«òÇ,øŒ_å.ÙHjR^N…„ÕcVW·‚³\¨èm÷‹k¨ót¯{¨%tºT’1òN¶I•€ßšÅ£ƒêð½ñÎa'­ÄÊJ¢iuD ìþ¤tƒt¸æóO}OºˆîŠNs‘åþÐ= d}ƒjýù"U¢¿înÔÀübŸP|xÆV¼P¢Ð3—Ó_ÜÈížéÏn«{ï–¸ÖõFݼÅ‘ÞÁÞ>'³ˆúà âdzݞ ÆXOu±Ÿòñ|­íŸäþÔV:A»êQPò‚è%] P褫‚¾G¿o#{<§pYm¤ Úñqÿݤf\à½Fþë “ÕÄüù‘Î4±‘7ŠÚ,ötà磘nÞiïwÛÛl˜Ý_X­•EáØÇ±9ß°Î>0wM%²\ž¾¢Ì¶âž?¿í5„ÿœF¥@~Ü‘ ÑF3Ý‹±ÿÎþG(OûãgU,⎷· Sǹ"·À¬ k¸‡¡;<?+æU?šƒym?£^t»ÜÆ‚“‰.ŸaØÉ™d&gåYÐ×kü+”úgæStœ“£›Ÿ¬Î\ ©´‘¢óKŽ'« šC82öÍl8æ$‘<â"pç©ÏäuÔæ¾9ø±È+oŸ ;e?z—Œ;p,.À‘ t$"ø1Š'Cñ·q°*?o¥?m ó±³4‡±S²pB$•6ÈK0F¡A·*<Ÿ ÈAËÓáI¯ ] Í«ùÚÜ º‹žyKB¨–ÙT¶¡ñÊù7΂j381fùéh$G¢TE'B?JkÌI}:&ߤÐàŸ!Þ¿¤–AgA†è—…Þ·ç’hg*ùêp•RQn&{á¾÷Àe?5gâ¿ÀADæáàGð;#ÿîµ Bp¨e0à¾ù­x§“µpÈ…4àwñíVÖ}’O“jwIb%‡^æ•QÒ]ró·4(ØNðÞ“b½åßúÈŸÒNv„¼Ð:^&èI¸ð„®¨[…ÖeÔ›ÒüK#çd™ü$Q¥òÞ óáù÷˜×fð(ž¤’AÒí‹¡3u¾þ.a´«;=|ê^¸êPÑ\ÚTK8ŒJÀ™—Žxý;ÜŸ×{|P¯]Gr>ÈG¹‡Ô„C9!Kàkh_ɪ÷\—ÊÑá®.òÇj´ö Ô üüà!‹$2 t E'ƒj•ö0«±¢:Ê3þQ¾•ðú ô°–uç5›nÔ¹n4xTÕ…òWvÙÑê™î•z:ü˜.w‘ÏKz9ü·Ï öÝ÷¬|%[à[¢h\D ЪŒn»Ëëú ÎuûÜ<×Ãíuwu¯NpÛ5»«ŠÌ­Û‹=Ó—S úëîªL'{J”ó»U*ËZmâ/è¦Cß7ª¸vî þÞÓ½uGu2êuv‰ô>•—ü I½/¦c”€ÇñãŽYl/PŸÀ³}3xÍÐtH3;Á×zMw¡]#ÿ@ÿYÇï¹Ý2Åq…ÜÏ:L"xXù]¸8fùŒý¿øýq̨¿Ýÿ*´ÉýÿþÚ"æ²IáMóJÙÒÐú€ßÅtÓ×Ö[áí÷®{W@¥/{ÿŠM ;sô€Þb.µ¼Y¦žIB7(1½µÉmý/̇½Ž\‡Rqìâ‘`PGºhÊxè7nH A•˜Üà3ùQÍ´2ìv8äƒ\“bWi˜ùÇvÒçä4•ågôRR—O—óŶSm¸’P²N|¨1‹SbýÕÖ®ÿ Ôñ>èq„*Ò§ï¼ÙwŽ6ÐQzEç òc¡›u¡©Cy á–ØC{À§1|‹ÚAµùãc×ÚþÏ1È+Î å5HV­9 òPì­¨W¹@góT°4 ø‘‹÷Ò›å£÷¿b³Æþ*øë9,[([p)—,8Óøû×p_ìˆxÕ?ñ¯Õ9 © ií¤1ßY¹#¬t…Ï_=Ï‚¥Æ¼œÅÿµ»ìs¨qS¨IS¼ZSì[‹öEæ<2D~”°Ð þÚ›”}7XüÎu-NF—b\FvHàTw$fªWÀ•<œ›Ç[ýÇýÛëy‘?RãùóA„Dr j=‰ËI¦qô”vs‡5•n–„šD‡IîÀó翃##ñ•†[Sÿ`õÆxoɃãÍ*ƒ¥'HO¾Ë½‘…ŽË*Y®÷áÎã»n9¾ ^hq2¹#[ñØtÒ2ஜÁÎÄ´¿ye6‡–Ì2i`?¿—VºRKHJçv¹ ~ñ믤K%¯¶Ô•à‡?Ë8™G³žgz.?Æîßç<#Ø‚WÊ,0­±–Aºé&»ÐÃ)®‰®—ùú@oÀÕWŸå F§eàoèJNg‚jåò56Ó99øñ˜Ç¢¯•‰9“n×BGv»?ÀLÐçJ®NG݇Zþ¿¯ß}ˆŒ”FJ‰ÇCƒêmðÝðŽc,I¢©à< ¯¥Ý)—ÔuÒcÚIaœëåöƒstÛ \3]‹äpÿ’¼2Œ—RFúë.åeÍÿ#î-à´8¶®ß§ºjï][p‚û×ÁÝ‚»C ‚îîîîîîîîîÎ]ýœ÷Ã2\†s¿Ü·ùåp€™=ÕÕÕë¿ÖÓ]UUô]xÛ‚ÔˆÖsiÃ|\’¸µíT›ß— v£ewòÇ;{DÆË0äÂ|²M|ò–¼·þ½Ï¯.šp4ç“ü±^ß0©7ÆÓÚhJ!ä¡ÍRÂ{7YÈ-d“ºÝÜó6ªû£½ÈûlÇŽ’âãuôÔ, ÖÈôQØþ¯¼¿›D ò?ëþÏU¥ý¯÷L§n¨øÎt'‘ަ©ŸQå½ïOç¨sÒÙãìEþø>:æW¥ôóÆÜÂØym†èeÎÕC¥ÁŸ³2)tÁïÜ¿6¢®DQh†ÉC=¨e1)Í%5Áñ!ÃÏ2§L1zi‚»ÿy^ÕUõ×›ü«3Õ¡¸yÔ/‘9 ~Qž›BôÊT5/¿‚Õ²…:4Sx=¨±J5üµ9 *)> ŸóÀ=4å8òöt(÷v¸Å-T€v˜©ºðWßÀ¸ã;¤B{;*5ü»áÜgíÍ™l­(„³]EÝjvÐ>JR 0J•̳ªú±ÙGÌíÀ·HAY(HrWd"ÒÏõ ¨ý/jV?± ZÂÄÂÚ<~¬ñe×ý q¹ ’Õkœa7P§üþŸpÇÞ.^ùÈ[ad DFzŽ6ÏEûº#ƒ¥IÚþcþymçW“gWªÛ´=…ä6ƒòñv~Œ„pCÚÛƒ^snI)Þs·”:Zˆçâ©ä?æNu^›¨o¹y¼¿ò~Pë^þ7¬æð:¹-S$–mcðz®à_]* gãWÐûÑPÓîT.©‘ŸUŒ¨+"{¯§÷ ¢·ÊäUJ ­Z'õ8ª,´Ûl7œÏ­$Û¸‰tE‚mKy7áü†Óçó'4Ì%º@'Ñ3ýA¯‘t•¯Ë8i%¥¹©¼±]m<{YÆB­÷ð)y%çüûÖfo¿Ýž•8àÈ6ä™°¶œ …üQHú÷¯M$3^'ñ3Þ̱ÑÖãæã½·ùÃÅ8ØŠÜBÑA—Ã#Í[Ðv•-2Ю°ãm[»Á¾ý2Û^”²HJ[Aýñ|ýؘ֘œfü‡ó£és&4¥‡{èÈeM[œkNäí`ÆAÙ%Ù£vRÈ Tš)ûÐÚh}lyÞÙæì5ïLZú¸Ô3µLŸ4màV~…šhÂØÂnw»ZÊ"“Œ6“­ì¶vO‚r1ìV~l¶5íé'WáÛžš YEqg?Öó‚¾íþÕ#ÊgûŸ¿Gßü·ó?Ôq•ÀáÔ5ôc?“¶úšWsÎõ;Ÿ„V ô(¸EÏuýLõg“Ê«¢šg¦€±&PûÎ÷wW;#(+Í3™éõ§ºæƒzÎ=øéµf¿iFñ©µn¬Š•UKÕJ_)NÁ׃§( E¬COõ)èô9ü'Þn‚50™ž¯cAE£ðEšC£é:´3(·€n@õbqÎGçÌYóДÆþƒk}÷Í2³Û¼7Ï) φ‚UD{Ó:xò–ì=cÉÇké±@K)<tÂ~£b§¾· Îô<(‘š#1'ÕâÀ×:PEïÅ$ZLÑyTÚÒnõ« ö…ožzn’òÜCÅñ=.œAMÊ5*ÌûÐÒQ\’ÏÒ.Ôüqîxu¦LæTþH¬²ëgf;%æÞÐðÕ4üHE? ܃.é%ú´§)Ç_jÃk7¢ØtÏÄD¿n‚‹?zùçö÷¯Õq΢<®erîu?¥Z¼ÿFþ¸ zN5ÿò¿qÙJ /w=(ã´2éÁœt¼ ™çU‰/#ï…¿O •šhC p*ÿþƒ%ø¥Dò¨ÃK@€$ÔÖŒù¢ÞPÇ%ƒ¾ÊÉËyÏàðúCøy‰D³Ž~9tf ÝšTG`V,oE èô$D>›KWÕºÏ+ê¸^0¾òðDnÎ)šlF»ê£}ì1›ÁUnN÷YÁõe¬lábl»Š³ŸÉ7i­øâó«ôf/˜{wÃXîʽh ß•ÒMšq{yjçÙXö¨\°íe&Ÿ±/¹=Ô¾òÓixü\ãú‡Z¥}-Ô2J:¯¨+òÇïæµÉ"ÎϱEeòÇ  *šÔíd³É0ÙaCÛ42Ë[7ž£ÈC$›4™ú}¨7Ãw˹ Ÿ±ÄL$i©‹ `+Ù­ãÖ·#¡Ð£í^;Ív±g-ÙíÈ>ÛIé$òÇP~‡L<›F›$æãz‘åUKýÂÄ£JÈ ›‘?||[2¸±íÛÇÞBûVÛËHHíC{ùc=øÑL~áîÑ[º‚ïÙj,î½ó?^€×MKÿ\Ôñð`3$¯;Ë®”긦—¤²m~ôu/Û#6’À·m6ÛÂŽ•ÉÈ3ÞŽÒq–ƒKˆj‚zKñß>¨Áþ¹âÿ9^ú’ÿ×üȪ®ª¸Îl'—.®¯û÷zäûÝÙèJ5¥Ò¼ j¶“ï@‹†#ãŒíÛ!‘mÖ®£¾8ç*N]x•”ü€¾º­Dö;ÈÉ$­œ—¡Ð¼Ô²‹ÓHFÿû»/)-/⪼‘·ðOÔáüí<‡kÍO ‘KÁþôš†ò{$E¢Xpï rð^(qÎÇ'‘‹Æ‚[‘¾¼==:"¼p‚âGfUW¿3žv¢\øÚ)ˆß3Ð!:ö†2ïõîÍyY¸9l'Ð =1i¼wº‚àÇ_ dAŽ·Ô£Æ´² %àÈwA½*T“7ñ8(ôKœÃpü«¨t%\Ó uÅQ¡ _¥„²]É Ž‹ltüˆéFq›Ên d)´9:¯æã`ܾĸÇùüm÷sÌ=KïáÚ#aîdÇî•Ò†«H8×[áð.tz¡„–ƒò\ëÂe¸#êíFOF'7×8+å¦R®ÞÜ©fòR}1ðô%òÂ);Ó&¶yíyÛÌÖFÊÙlH  …Æ#‘m­ 5÷?_á;æ$¼ýÔ¢H ªg"÷t³Ñܬv ì×®ÙEH7ì{px¾`²­e1'ööE‡§1þý®ÿO½‚ªª~`BÀ×6¡åœ×¼ H6Œ[Õz+S½”4`Ñ}»Æþi}îY +A“ŠÎþ ÑCÀ-&$…£ÕøÎY¯O›þ¸@O&›ëÈsìl©!+e‚L±il·³»Ö¾·í ¾c+Ùôv•Œ”[P‰'ÆÛ•7?¤wAβý·„ªÿ'Ï?¢«Ô_ûòÇOê’Jì¬w2èØú‚*¢¼ç¥­ƒàÇ!çòdž殺I×cá¹ßá:% ±z©Ó[V‰ÌQSÚ¼Ñyu§èwµó¹Sú²É”õ¯ßžÁ€C¦-]ƒWoB©²n¬ŠyÕ$5T_¡PäZÔšBpîGE(†Ù~œ‡æ¤j‡¦öƧÛ£^½JÇEBÃGà§QJžbô‚^ƈzCWáª_˜H ?˜·ß¬Cí0sÌ.íJ‹‘ÆSl´k3RD~‡š9ýëï‚ÿ¿b†9ߺÚ+œò´„Š#uß?¼}vP>hv\$æP ÞxÑMè‹ø¼Jzʬҕ¿ê@îúž«˜çW¿VÒè¥FPé9TÙ«uáìpœ« Êci;ð¯¤Øˆò‚¨–O•Ð ~î5yë'nòâ÷ ÐÕÛè;2ïô îÄ5üëïÃO©EÑÈãêê?ûŠéæ4T«G!Žâ®¬ƒ¯MÅM9‰#4W¤*P»I¼ŸoÓS(Ñ G½©+• :ï?Þƒnê44™Ðoù¡#ІSÈË(/oçGȧ¥…½ ‘ä§—„2–sAñ²Â‰‚Fá,ôû?Öo_æx{9׃R,†Á\£q,r mZ,7e…$±Øc¨ŸRn‚yü#{ñÓsòdd©çêó÷m­þÝÛùŠBqižÏíø,Å–åp»Í8ØvÑqCºéÜæ²†«IÙ€+™ƒNS¸?ø1…8 ?«—}w £KqgÐk måû²CêIOn%>·ï”,„ZïáÚ>;ês[ÿóQ<çé“ý£ªùú©)Èjcù yë¼WC’ m;Ø[ —d§iØRȵm!™/Û‘?‚|åÐ3>´8øññý«Ó¾ûŽp8¿G‰)É©©Ilj¥–ê–µä” ¶;ì ÛÎî³oÐãí)c›ËvŽôv lkCÃMÚOˆžZÕÖo K•½·9·¹J7%½[½ÖÆî”Ò̾´Sm[{Ó^“©rÈ–µ%„ +_r#q‹‰ï´ð?«yúœéJ#•÷£­füìN´¥Ž¼•°6Ÿ °•ÜvîÔ‹a÷ð[ç=QË=èÅ[³ &ߢGzUзݿz¤ÿlÿÚРÇ;0‰º¦¢;ëœôº°>  zUTwg·sÔ9áìRŽ ê̯ÙÁøéæ¾7Á$§z½3RõTÉÌA“Ç„39u%'ýwµÓÑÝ?Vš<ð·=?Ì.´î–ù–›G¦…?~ VÅŸÕ5XŸ§ƒPäJÔ™ž!i‡ók¼ýÍöBÍ~¤jä@Dçùùz¿Î‚‘íBCçÓ"h4€&Á«4ƒ:^?˜ 按k¾õ´Âû<òŠYbŽ˜tš¾£µ.ÅÀ¨ÜM{¨TÊ[ép>ø1–&"-Œu¾5£d½Sƒ¶PYhÍM¤å”àÇ{“.3!|™åcä­#¸ Õóv*M—ͤ¸¯}ÊöÔwKÅ ¨<­ªŽŸž\´®η o¡:s>®ŒóöÃË®@Fê~Üq†Q-«ª£ øáÀ_ M¢ÔàGhvžúBÓŸèв:›à>ÿ ç é44}4ÔàŸÕVúòéŽæTëNËšoR{¤Èa” ʪíÅU¨ÊÇ ÇËøEâàÇú‹šãLÖ"è/ι³S®¹ø±Ž‡rF>ˆ+¼Þàg“rDÚÛ{’LŽpZ‰'ã97¿¦ìÞ³ ^5MC5̰/êMwž˜ç¦)•A½õ`L7œùXVò’Oò,hêr °Óí^Áeä1ÿfâPàGNŃыÕÌ/øQ ©d9E„vO†o¿Bé¼' 2€3Ë8»ÇFtßÚ¢n^YÈåoYÆÙ8 Ïà]àç`¾„>Üæ|þ´0«9¯s®PnΫè8+{@ZIn#/l›Ôž“9ö7YÀÛä¡\;êsW>Ã;¡ÑãS}òü¼”¯Z„ä6„ŸP-ôaS‰Ò"µô´—¥òËV;ÜÆ„Š>´Õm&¹,s¡ûQdÿº‘æ‚`ÝUóqÎ-Œ±Öd% 54ÃùG©m#¸ÍíPÙ(ÙvŠíh÷ÛwàÇh{,n'ë9 Zp 4H½Mr3ýÃùæPô-Ÿ²ÃMù^R&›Âm"Þ“òÒ®³ólg+î *ClK[NbÙðÐû'ðE5i¯yfâÑôüx©¦!ü…Q[#~®Ù#åÝ!v‹ü†,ó@ªÛ¾6¹û—{õbØeüÀf°•íd%ç >Ü-À·ôLÿoì•ZWù?ôLxÇïÓåG uSýèÌsRéhz—?„S]œ5ÎMg«³O½÷5ìëG *~„ƒçzoÂSð£'òG sÜd6wtvÙÉõ]í|çT¤B´ÓT†&4¢Ì&¾¹­¦8M]šd.™ßðSòèòÁª˜KÍ€_ðæúmÄõn‹|PˆgÁ…&?þ¤ãPª0pâ–þ0·œàäú¸ÎŠÔò#ø±^?!Ï„‹ w{:À^¢tן?"ß7[˜R5«Ì{“ß™BŸú×/Ù]õö¼Héx ø±€FÑ13ÁùÖŽê{Û6Aã[‚dë)ú.!ý Ö%æd‚OBI 'S ^ƒ¿¿n |Ioq§Ä¦¼Õjâü¢£§Ê¡ç Mûñw­áÃÏ Ú \£ÍtêÖ›ÚP&sÁ™Dµüª°¶tçÙéÏÛŸ7e£,px÷pn·tTsÊý”´+U úè‰ðh_jü[ƒ ø±üèc¼5';qzðã\FI´#wñ§Å¿S]øåI¼›ïA)û!yy{r ¡ò4üørÖms§†)Qš;”ÀÅÎ8§\ÞêYœQ®IKûX’ʨuF™R\Šçò/ÐÓIŸJÿcý«eN8ôVeÐc!4w”z4‡“²‚§ Þf‰oGÛ5лÊàGwœu6hé!¸û¼ÜgÿVÿ¬¢Öu‘¯PxÐqÿ󫘨1OFph%Lí>°iÝ8HH¤«Ì¢ó*œË(°ë9Tî°Sæ‹Ï¯!•ÝFÏ GúÙJ›øºl—ú2š›Šã·iíIiÿç|CŒ=J×@ÏîAÅŽàGIÎb¶~¨UÇ×I-…&ve—ÛsM.kàÉä>2ÛYi&çd³dSÚJö¹-në@™7Û§èßÿ|ˆº´¶¼Î|\ûa±ïªóÌ_†INÂ_9ò‹xë¡Ç±ƒÀò©ö*î?žË!¤¤Á¶òöf+OqfnK}M³øÃùS5õu–²ÂM æ{º"·°ÜRöœÍoßK7Ôaw¡­‡²WKw»Õ¦•(–ä1½‚>Ô¢Ýæ%îÏÅøqO-ÒMŒ©æ }’\n;S*Ê™,PõýËhp³Ú§|ËÖ²9í\#gi”a&u‡/yJ¯ÿWòG\5Ò¿ÖÈŽW¾*ÃÉlê…Šï¬p êjúº*‹*×}-œÕH —œKß½ÿ`dÄÁ ‡ƒ_éh¸>çLUÕÕC}ØÄ4OuF]ø;óÇe§ Üé"SÙ»5Å1uÍzÕØ9išSO³ÓT pTK7 VŪª»j¯ÏÀÏ{ûVE²ó8‘Óz#þ¼— Ò ü‡:˜„ºï·Ëùbé :=FâKÚISi2îé%ù£)ü~Uz@18=5wÍ “ßÄýf _øž™Í樉IÞ^¬S¡u•{‚£à]?%hç@÷¦“¢Íß\?qƒSÊœùã9¼S¤«7&½¥8){+® ŠzO»x9•B¢Ù« |5Á²Ú«(./Á=T—Ö‚oÀó¼`P)Þ€¿ëÈÙáí½y£A¤ÃàJð#мò󫸪¢öV©Å=)=ø1ò VvÚJÁ´{z»¾m€vzoRµA¾ ‡üÜZäóRúxè¸ü+§æWtšZÁ´§¬P¹²øsBN/|”ûðr~æß?jZ7©¢- âùÇ8ç7S€~¢´¼Ø¿îRŒE”Šz3×ä,´ð¶$–KœUʈwÞ¯ðoƒ¹¯äYz™?¿¨·Ðyi,ZTÿ>§r/:C=ù9~árKfK øÔ;¨_U®r_°**'y&ò_èÉ#jøgchoeÿÕ‹[mø8½ãU²MZqRéaÛœnT7Э‡ÓTˤMÁ™B§Á符ùÎçi=ÙF>¾}ìä=Ǧõ¼ÚÙRÚp+ycGÚìö¨L²ƒå<ï•gȵ¸"ȱ·"‡Lå*œã“ý£rø«è¹¡|ŸšrCNk¢ 7\†ßö˜+«íX›ÂfƒJWµ¤¯¬°‘m|™Æ…A7AnðÖO”OÖOÜê»ïx{ÖoÅõŒ…üQÍÄðÖ ³äæ´ÝÁÞ!v›]lÛCç_ËBðãˆün›ÊŽËƒø!RÈß4Õ$údÿ¨rêw}ÕĦbTƒvq A¶—0n{Àþb\óÖÆDÅÚ6¤{ùã mjëŠkcËdøcçkÌ ñ~ÜT«ôYÓ.¯1Æþn3Y’ºýÀnrg[Çæ¶Ùܾî&g._·5l];Q†!Ì€ï‡üQé0ÆÿÊûWñÕdÕùCϼã·v¤ûÚ‘B=R±cN ÝB_öÏÿ8îkåìCþÐú’ ©¾ŽáÕ/z‚ †“/M—ôUg›ª©b™½¦®e%]Áù¾çüç”VšòÐè>TÙ40ëT]ä.´Øñï_Û4˜û–S­Te½YÝÇ…i ÜSXnJ·õ 8ç«pÏMuŠ.åÐíƒQ/ž>©#Cžw:4¦2o‚Nô¥¸›“‚,H7ÍóØT7ß^[f¥Ï"Wì…N^‡"ÍF¥YàÇjÚÿ*a”¦l<^𡸛é¸ó­‰³œŽÈ,%¨Æþ>Р޵¾L O?òM(ÓdÿóólHU‘kNèÀ¯>ÿøA­S!( ¯Eµ4}ôÚxë'Ž ˜| .j×?æÁ‡Í_ƒôã¡ÑÙÍs'¨w÷b©‚ú™¹C‰yø¶ ”‹‡¤BFBJ -“¹rR*KõЗšÎš”èáãAÎ, [˜kÈý¼O ;Paв8Üq%&(YªÇ7y¯ãÓàÇäHµñ5›uLçÝõ8ÕL1J®®BZÈ >ÖEž*?û– Èmé…üSnr1)‹V¦€L‡ÚEy 4:9µ5S¾èÃÅNXŒ«\”šgsO^Ëí¡Dc9ŽXY̳åÁM$„ c~¦÷.ÒŒÎÁW·Õ¬Ï*Z]ŒšÑœI.¡ï¥û¼XNá;Ã"¶I]ÇMìV’íü‡ DNÊ‹«½ç?ôÚA«h“Óú³zÙÌ^zÌè­ÊUt;Æ»e7´}‚ãlb{JÚM¶ðry-÷A…ÊÜ–ï#M ãªðÏŸ¼UÜ×Jm)ð~4‘¨¼<‘Þö”­2×N³alQøñj6?ÒÑvÊ& \=øŽ÷÷¥9. üPï ï,øA¼þ¢’”þ4ù‘Üj#uÔ¶õd ·7mO;Êž²o¡×³í#ilKÊ&Žƒ¬u |@Mvóñóº*ªš~‘”ʽ­{K×$®[Ì.³mí69(]ì ;À¶·ýó?¶ÛàGBI^óuúƒV›ý&Æ'óoª½ú–éŠÑÔ„þÄ¿®•Ôî8»ZJ!S&EÊoó»]ÝýöR× ¾‰ôÑÙŽ–ir÷ð3³‘zQEŽÁaÌÿÆóójžú¸2˜£²|õÓëoyÔ3ÅÎ~'î­_+o·à«¾jÎ3çŠYPæ;矇UuôZ8ÝðôÊt£(&‘ç PyM*fM&]ï›+7}~ìv¦ÀÎ19¡w»0‚V˜Õª™CЀæiì­Å¬;«bYÕãç]Ï­THØÀ¤Óú>ôîÔ/<¿C™òÁâÇOz‡NïˆÁ/‘<6RyÜË?á÷•ôšn7 |ú]sÅ Æó ¾x´ü¨hfdï­Ñh·ÆzSN‚üQ {ߌ€j'¤‰Î·f”ÌqÑcPòºKGq5:#5¤ƒk-„êÑø6rÒLyåáÅÞusO'U_Î…ø?Ç3ß•œ2òNòf„ÏFµ‡èùJ4ÊòYä£\vîò Ò9$”)4’’­Q-©Ê€»î%Åã‰_;”H…ì·‹Âñ)P罎!ã Ýq¹%•?º å;àHæÒÅ ÷¯­ˆüqÌÂEø]£Þ8ëúHk½¹ 8Y‡ S >ƒ|p–ïQXžLÃýÏÏ;ÃOž×Æùò®i…üQ„2"¿ìAÅ|”ÒRJÃ9¤dù2Ýjû£á Ê—ßRN^À™ÀÕÜ–º˜_Ô›íDó‚¾ãyÖ Wc:¿æd²•ûÈ>Y#Qì$»šop)yˆÜÜ 'g¡÷¹y>|ê}õù~O!ôÏP¿=$PÝÕHUGˆ ÷ûd*RK»Ú¦vÚ¢n\9Ú ‘å Qð,2Ábvx-sº|V/³ñÞ[8 ¯ÑŸë@q·ñi8ñº²–ËÊYè}z{çü‹<æE"ö.¨Pü8ƒ¼Ô?¿ç7ç>Ô*éë¤æR9î†TÖ_Uܤ£Üðâ=íCùYk»…±yl8üö©$Ѩ8#É.6e Éêmô]rÁŸíC*pvœ@ ¤°CeŒ±OíF»À^²ÑìéoÏ Ô•çðÎÁC1b~6ç»ü¢~ÓoÍOT£j+W3Ï途tÿ´»l¸‚öÂZÛÆFu¯àºÌ´Sl I`#Ë+x¢ë`Ä3ü˜û·Õ>}Ñt I¨7•–šéèN²s¥Ž¬„/hd«Ûívþ&Ÿ[Ò^æù¶¬ ´C¤Ÿ<ĽòÎÌôïÿ›]³!èÛî_=Ò ôüÐ3¤Òÿ×ë_¥UÏUg““Jÿ®ïûç$Þñýîœq68OœÝ*‘ ê̯o}Åôc 0÷MYÚ¥êÍj‰JjÂBOb™¤ºÆ7ßúüØæ4…f?zãn*a›•êoç½ù‹š˜¦ ”§¦n¬Š…Ñ_ôZ‡|P s Šï­Ÿ¸EïƒÏ»Låé©I ¯ØÚÖú»ôRØ[]\›--žêº Ú ©{¢Úi³Áä1_SæÇVß ³Çl4¡Ð®< J=›ÂÁ#ԖãCYSó$z„´<ŠÞš‰ßüüj¦ˆÜ‘‰JÑ8÷©+Ø–N3j¹PûAà“÷´;4#7{uÚ¯>ÿ`µAņ"/…æÖ¦ H3!:š¢Âϼú: p¤ëƒ¶®¡Í¸Ÿ¼ý壟ÞDµTª’¾c¼ý£F°›AšŒÈ!Éè0½‡/KcŽk+}¸5GäVH° á¶cÒ^žF#…þ³Ú"_AÝÚœô?/Ï…¼‚3õòGjîÀÕø îдOdŠl¶Çm!¹!ŽDB*ºŠ„àU^Fšç‘·ëÉ,¨Ò}¥æ;ß6uÉDå Gsð1:ÜS=ÿšÕEðÝ5¨œÿ1èòÜIÓÀ‘fH=9éäÊpqU}ß,BÎC™ñÕ#Áµ´ Ûez‡?…4;õeèI}¶Ü™¼]ª~?i\j‡û÷ŸÕ¦ú²é–fÅæ®­<þ©Žÿx{ûÆ'å*ÊÛyÏÇ 7œþ€ƒ/Oùiª~£¾|¡¾SÆx»!†G:sJ>‡0 Ùk9ŸƒG^%Mí‰/»9–¤”Iœ Ê’„!Óuâ霂jýcÿÁið:±¨EG :ó0îM7h8´þ2㉲GÆK\ï TžÉÙ%r×ï2oÃùg‡þu¥»jÄgï;EÑ#‹ÁÚ@Tl—ò„›ÈÉÏïy”Ýcsº/m6·ªÌBBªŒCƒ\'ð³òŒ©ã_Ì?Oe® çÏáW®ÍÒž'-¤¤ç¬òس‰ìq9iûÊ ä›bäg0£)_»:ƒ5¸Œ¹ò¡VQ_ µ½ííÿÑ ¹ñ#å´—%.ts£icÛüð÷õlbé!Ó?DF‚SÑ#§9 Wá04àC½éÈ;™7áŠ=ääPèG¼½o'ó¤·]fWÙÐymç€rs!ªËމž9ìØ’–›ŒŸ¬¿[PU×÷pu+`ìÖåF¦“Hnn;Ð6³'å1ÚsY¤µ½?u”Y¶‰-'WÐÂäÃý× ão´‰HàÇ µEŸ1P­’ònsAòºmíA©*/ät²?Ùbn÷¼ ë&±ƒy•Íi‹ÚNÒUãzlæB{Š£­>s(èÛî_=R«õŸŒ¬ˆê'õ}Ÿ }<Õ#•ÅÙáÓmôså½qØ×Ì9ììqn;‡q}ß§s¯}¥u{ó¿ž›ô4N+ÝAª0H#iL“S×r²}W;:¿Â¥Ž…²·‡*d7=Ìy´öŒéNÝÍl8Ũôk0ŸTVT!=º¹…ªâŽ>A9x$”ä–^LâOt<ºg˜‚º]0êÅÔ tl|?ó!ðc¥á•pæi0jõ¦PíXtÛìGb*Œý?vúNšMæ ‰@($OÁ3ŠbPÚ÷[žÃóAJ€¤ðÔ4€óŒý£º8i#å¥bt ¿GÀèÿYMDq9Ÿ„jϦH&ïê~ …fÎóÕççï|kÔY…‚uQ-.)$öŠ8眼•JPg.ÆÞ sÑïZZ¥)¼1úlÕ2¨Ôú¡ñÞöV.YAc(¢” Ý}ZOõ<}Œ‡r-NÈÍžêP[ C;‘?z¹~â&_FÝù#ô*€ŸÑ´± ü`~¸î:pówÀ‚âàÇphòsœÿTšO#Ð (+MÒïÕ—óøK81Ö²{ïðŸp²»á[fP:ÞÏRNI[øñ¸²œJb™†Üñ”’‚T<¿~¤êfôõ¦: ã<’#´…®u¡g请|šÙîv£Ä¶cíV´0›\áž f,üÛ$‘$ü;zò¥úüíNjLké%åBµ÷øoxû?X § ¼TÝ’n6®¼ô’µƒ9j9÷ç¾¼tßå|þžM4s€®Ð]´ª·äÁ´ü˜ õ¥>?ØdvŸL·ud/—[r›KqnÎWx~ŸÁu¹ü'Ï?Rù©yþüqƒú‚m˜F6K{S Ê~Yn‡ZùÃq«ÙÒrWÖÚëR}YÙè¯çܘú¸Ô4ßçY^ƒ»!’$¿{ ~Ô´WѪ¿e—ô²Oìx;Úî¶dZyQbÙ&r4ŽþÌÈÓðããûU }ÂĦr»C¸‚ÉÈ»ä‘÷LÛf±7¤žÝˆ<3ÃÖ°OíiôAe{Ýf‘³Q4ô] Zcz™©×~UKôS#®6Òñ ³U²¹ÝíZÖÚ ·lITèâΰÑÜ|ö.·#wM™à®~‚üÑοósD³'èÛî_=2¨Eþµrÿs„EþøoŸŸ'Rž"ïvÊê”ú² Ö¤jsÑyŽÿŽ"Õ|ßú‰yUE=É„€r†€K ç;]Ô•>¼’IdJëfNéïjçE§tt­) g_ƒò›æŠZåD †4Æœ4• ¥etÓ`UÌ¢F«Qz®­‘¸â·)}^Ja6Ó¨bj:f’ÐMSÙÜs‚³m}Vç/BÀ—Ï•’ó4Êq4ÌÏo¦¨¸Ïœ0gõ·×oO®ö˜5æ(´ë-…B’©ƒ´õ#´uŸ7‹ƒ½5¶¢ó8ñ^pù‹L÷`Ìÿ(‚‚Î{ó1â '¥€ÛLÑ (ÌWüí‡ÚIÑúœ´ÉŒ×5UÒ¯Ô¼ç{¢BR"^O­A†ÙŠ"¢ÿêÓBÊÊûñwý9?Ú·îä_ݸ•…§7 ÞÝË£²épá!¸?m¦S>ʃ¯¿@—@µ›ú…>Ïc¸&(÷ øòîuMWÌOàr¹ ø±Á—_O5O@#oÊ3:Càû¡eààã礤2¼w¢ÏAÌ™8÷Îhu!¢“ýãýÝšN[SÊ‹ü1—ãóQôàÊÃ[¡p‰åüj— ÉiN&Ò›s° †ŒEþòvLL@Eþ±ÿà>Ç›Uƒ2ój¤a<ˆQo~ƧæÊa-áms{Ñû¼ENr¤…@~Éû¸ ~ö8åÇŸ|Êà¡tMä»5‘sâg6æ[ä“¿d¡Ôã$ÒÇ.V½³áÜŠ²™K‚3@Àð¼‚"µ@þNkœ_?«Æì"ï™à}äÁ³§Ðª–REJOíŸ6šÝ+=mÙÄ+府“k¡m§x2Ø1JÞüP«¯»ZEIÐ×O¨(ÓÛ”£trLrÛ imißK6{Ë–¶yÄÛ±#"rÈ.È£‘îf˜OhŽù˜?Vøž9/)øÑ)+=­2±¸ÔµçmJÛ\6¡]Ëì`ÛÊn³/e,´ë%¤í"Ë8¶?1צAàÇÄçWµÑ7Aó‚pAc¹›%™[ß.·yq–¥¯½`w€ì1™"=l5›é)Œx»ZnÁˆßaÞ™¸4ñ?^«ÅÈ3}q= .5ï$ƒ[Òn”¸®+¥˜MbÓ¹ÍÜ ö®Mh×ñA[Ж³}¤Ü€‡ñÞßmKÞŠ;wô¬ o»õˆ¨6«+Ù„SÙþëç)Õ•ß™ëTÕôU\yŸ¥tpV9ç›ÎEý;ŸŸ?ðåÓÌSóÀ¼Dn®O9UåÀ…g0¡M9ý³Sñ»Ú9Á)§8 úñ‡÷©¶ùÃ\R)œ£¦)µ2“M1zeÚsþyõ‡ª­g+àkÑxÔP¼0¦œÀ.Œªý&;94Ô$Ô¿]ÎQO×IáN_"û/…–FçYÐéÐýþÙ%û‘›ž™#æ*Èù­Ý:|¾¾]f·¹bÂÀ fâEÔL‹ -ÜFS©Te%doÔµ÷vý£­Î·f‹Žt*Ó^*€tpî)%e ëÙK̼­ã§Þ3+2«u)õµ•-­:¡Âм NË«Üÿ¬?¯¹}ÙŽKB›7P7èö|èãÿ>·ÆÕAí“^ÅÐÌeä©‘ ÆFê ê¡ôèµ»ÞŠ\z—>mý¬ýôV+F‡àû†Óì Ÿ¤Ó5ÍaJ ×›•‰¯ÃgTAÍäP̆üô,HY Ç ¡ÏH¡¦ãÜ{ ?jÓTîﱕpª™ÔàVbÿþçE‘-«‚9ÉPá'—uRÍî’D²ãINʹÀTHÅx<òN(j`f}Qo¬óÒ¼7…ÐS3y$Tw Ý£nF.áÏ“å¤Ì–ðÐçA—@¹ÆÝ‘ø9_ÅÏÎÌíq}}±~‰«‹¡o—QXöVô­Ëgéw„ZÕd%Û…Þ»§¶”[N¶rVùEÖà«"‚TAá|ÙMÎço›D1óè =¤§¸ŠÅx.m@Θ \ó ô†Ó_g_If™½ƒ Õ†[ñCÞÖ-#RçC½ò¾&jz®’Þ¨Vüˆ$¤¶›M–ÉÛÇÆ±éàòkÚŒàÊd݄ޗãeì“Sø=kZþ¡m[|gœ½`þNjO%>u4]J#4·ídœ´¶óm_ÛÞAò˜/CívIŠüqî…´Xîp¦‰þÉŒœüª¾fRÁ›U£ñ\ÄÜ¢ãÞÍdWÙŽöŠœ—v)*v·®»XúÊ ›Ûþ$Û‘3#"ež†þì…ûoæàÇiµTŸ4¿ánïWrÀL펱¤š¼“£ÒÊþj¹õÜ=6´Â.â=¶‚-`[I?Q¸ÿ|¸ûšÓÏ™ïÛaéÿÎC-ý„¡ÔO_]½è[GRuR:+œ:º4ò¼—öøš;ëdGç´ÑwU{ïË£›™ÐÐu‡â⽂ñO¹f­Ia~05tm§øwµs¬Sþt¶É]h~´3÷Uç¼ù“˜C¦!… ß‚Éüªª¬Wc4.EzùÊ’‘û÷ô¨ÉQo®xôÜô0©ƒ5ÿ<±ž§½õv#ñ^8ý±Ð˜ Fêýùéµ¹a|TÆ„þf ÷úN›u掉 Å…ÊU‡ÊE –Ð×…TºxÅû ž˜a4‹ÂÒºo®5Ö©n”¥’þO…baô'?@A½U>v‚Nóh1ô:*ï¢LtÕ,Ó…UÚ¯Ô|á;«ÅòÏãjH[‘‹"‚uðý¹y5èÓóò P¹uEÅý4î¾4®U½%ˆjITRýÊÜ¥4ÈSÕÀí¡T œø‰ŽC×Òk½R_çAÈI¹²GC>žýö14#~,ô¥ÕµÌC¨ÖpøX‚ÇnƒÄиj¸’³S¿æÄ<ç=?³îúu:Æ?øQÜ© Q}~ ®¸(ò‡·|VèåäÃÒÌ^?s|I'“x^P Oç²¼˜*|âvÿsxë—ÄB‹ŠƒG˼UÞ‘ˆºA-oð:.gd1ø1žæÝœ Ê׎½\Id~öšB¯Ôçûu°öö>[ îáEPêûôˆû te’îv‘Mã>²YÜjha i mä¼™‚È#ÀÙ4ÉùüÓÞ°f=£kÿ¿#[ì¤I¼QfHÔ+ oì,(ÞIée'Ê!^'ä÷äß@ê'Èc]kzrzs÷C­ú¾àGzî‹«P ü¨izQäŒ_ì%ÿÞ¿«í$ë‚H÷l}[4ÚgÃÚJ²ܘDZÄSüŸ9â'ï_m÷]wNÐkв'½aC Í<ž"-í#›Ív„²÷‰†Û¿íAûLÉX»GâÚnàPz°ü•þå“é“!+û÷ÿH‰{«9h`ªs ›ÚÍgÇ"Ü‘Rvµ ë®Fþx¼4?g˜M-û%¶ÄaÅç¨òÇóÚ,ÿäùÇ:}JÔW¤#]3›@£_ìT)#e’¼FÚ¸kwG ^F{™·#}Õ±¤¼@¢½gfážÌÇa8šÙôm÷¯‰ÔÕãCÏDRiÔ·ž¨~툫î©8Îa'¯®¡«’Ê[﨓³ßÙæÜwŽ*óëïZUD?|ôÔÄ 6ú†Ó_5?˜Ô&„)¯›:…¿«ëœ¦”—všLЫzôƒùÅ\PÍoæy?sÜTG¯Ìç9U[UI¯‚O> ïYšÖ@§‡Â=ïÕ; 9»ègÒøO¨» Öþƒ!ô—:“÷ÃKLG¦Pü¹ysêÑ´û¡¹g^™²æù7«½ð4«ÌIß™ª\—Fƒ@¦E” ºx€Jò4¤£ñà‡K³œÜß8ç-N:ˆÔ£Sø= Î0¥ ‡Ãr$¾Šzo¤äMðÿÌ]à«+8?ñíWé(8Ù©cò‡Eû~'Šñ:ôds΂ü±iim—'ánªF)ŒOµöMt•J4¡9!ú+#ø8™ Q6´í zr³N?á~\ 9© œƒ÷¬[褉Oãh|ü˜æË¬›˜WàG7|Ï+òò‡·wcjð£4|p,¨zEÞ÷}½5·F‚ãÑÎþ Óí:_®9ÜÌ©nŠ"åçõÐûhQ]\>ÀŽdÍÒΔprIjé ­¶¬æ"øÚÕœùcÒõŽ:!é©@…ÁŽí ÍXºízÈox%ýa~ô±Gy-—†æïR±ÈAd•œÈg‹é†šþYÅðºzwEäÂ<•ñyºÌÓd©ôäÐÓ¹6þ`#9À5¥µNw<žÏÇyæ ЭENÏêE5«Ñ¢›%-À þç³@ž.\PÈl3Øs²ü8À«å‰<;þ@¹†s©Ç³À»lŸÌ?Ï᫯FP°ú5y)¥ŒiKÞš÷Õü{¦,“•h_›Ó²ë­åÚ96‘ýQpy´Že=@kß~²ÿÇßç1…ÀíIZÑi(þDidoÙ¶µ’v¥bÛ‚C®]#«ì~‰ ~ì†óηÀö.4Ùd6Ý?œo&U]ß7‰pw–Æ5Èo¦ó#Ià–·;¬÷†Øiaø›EžÙÛÐÿ–ø¹å™DoÑex¢-f ²äøü¸¬Vê ¦1œH#$è9æ(7‰](uÀ6/Ä·¹ÝvîQë¸)í:¾`[ÛÉv0’ÍäÊWf"î¥TðaÌ÷)ìÿ#¯:}òùU2õ­7:¿vDRgU€sÄɯ‹èÊS÷—¾ÖÎNg·sÞÙ¥Þù¾ou–¤*h÷Y¯½Þë´PµU ³W2²É¥+}çú»;’ÞÞt&'(Ÿ›Òš$æ¸ä<0õhøQˆ sýÝ ª¯ª¦—âÚí£ÊT>:BÍ÷Úó7ð7wL $††æŽÓ$õ¢é“:ž;<_…¯›B¡y4ZÚ‰†ÓjèìCð#=Ý2Ìc̓oV‹®Ž˜Õ`M:äõÌì­(?:=ˆæ‚s%9¦tðÎÞúWÓéŠYè$øÆ9_B¿FªáŸ‘c<1å § eù,tt,œø:JÈó .™%ºÎWóÇ{ŸvâCÖÓÜE QÍ{þT ºZнµŒ½•¦nÑ|ô⟴ék5£â”ÞÜv‚šY›@ý¬ï˜[DèýŠ´…¼÷‡K€$çvÐ[í3¯x,wภîÊF ˆ÷þUhþ€ ø±Õ—Pw4o(àþùƒí‘fúBÕûqSŽÀ¹¨>_á| ZûòÖY™ÂÔ¦e:¡óå›qurkeá —ðd$šCÈT«)-ŸâœZØÑ’èr–ÓJ&Ãi˜A©©PÀMàM:je}Qo§#… Si䥼™â f%QdO–­2EâÙöáròš»rhp!šì‡Úç`oFæ/òGÝ ½»Ž¢ ÏGC¿oÓCµëË?Ho»Ü äv+È^n!=d1§æXÈ6WÁÏ|ÞcÖŸ'0›A«`ȮʗhòÇi&ݹª<†·DÞzjÿ”)|CÄ>òïÿÑ–ïò.PÄ›ù—Ö||G»Œ¯•N9‘LîÒ¯\’K˜Ù”ZÎK-{Fòâ\—ØQÖOê²ù%‰ Ý!³ðs'ñ TÌÀIø¨õ¡ÞßeðÃðdO–£f®‰%7åw{ßþn»x{öÚý`o»Û>‘Ý2Å.–4¶?Fó>ŽË iôâ#ѳ©ªú²adò–ÔƒOêN\×ftCØ- Å{ sÂö´]oNÊ`ùÕ–µ™‘’BÉ[zOXžV›S&múdý«Õú„iO½á–jâßoJ.7¶] å$¢½/5me›Òë^²Çm;„oÛⶪm/=å:î•Wf5†Ëy Ç4'èÛî_=Rª‘ªÃ'óÏÓü×ÏÏ£«+*™sÆ)©«è½ªªÜò5O¶;½*ºú¾ÕéC«=Ò„£ûæ¹ O]ôUg˜ª¦4œuhߤӿþcÇžÿ÷c¥S?Ûd¦nÐÂX¦Œy®z9GLsªgÖ›žŠêšÁªX@5QÍôJ(Ü>¨RUhH8”JtBoƒØ u½dIѯ&l°ÞßM«×êþõ¯®’7Â`TÄ£aPÑõŸ7À“ÔôÌœ1§M@0ö «®ú?¿ú‰ÞQzž‹ñX‡¢‘·Û‡7Ë"Ÿ¡ ·Þy6ôtÒ7gñŸCn;ý­Ow6"#D£Ì¨º†ÒTœÿR´9&/Fÿž0kt¦¯îÿñI=5h»gÛÆ{ÒC!éw*‡üQ†W¢càoÒüÛpðà¤ö`MŠ`Þ;Aª°~i^# £\ ø °#;x«¬ ]w‘êîñxîÄü+5Ç•©O‰èšInŽ ‚ýïï>ÃØJN|™ºÓ/ úOþ·[£â\£C»/"læèÛ© òTŒ¥àÞ ýREþÇüf¦ ø‘‰ Ô÷8òÏ ÊÍ'8Ä—cÐè#’DŽÁW‘ᜉ7ÛZ¾¿ŠQYÓ÷‹z{üûŸ{ë'.Bú˜ÃýáT†ph õ‡K*±íH»‡ïqyÃyñ¯ÇàÈ !«t¡jÔg#4Cn ¯ëÊ5À·wH ›dg¶v!´ùµÍîæ‘CÜXºËf$£08÷+<”»îÌp*V/tì†ÂF\N#”ÅRO¦r/ye{ÀC”ö7ÿþwåwæ ÜŒ–]AÄ ×\øP«Ž¯¥šˆD; ¤*Ã?szÓŽbÀ××W–“2Ë´al6Ê-a‹ÈqYj_BkGr\ïW &ã{Î|²~âVß;ç2ój@?ÈK“Õ4äèÞj(HE]dô²×ìp´q·}ƒ6/·{ЗÝe'æ¸^…¸%­Å½÷qþyfÕN¿0‰‘w«ÐbŽe®Ò] ç–³«Ñ¦óÒÀ݅ÐxÇ='Óe°­gÊY !oè ®š·bëxá“÷¯îªcú¬éæßy>í1óåžíf—Iu´f†\¶,¹Ý±Ö¸ñí^fÛØ\v4ÃèÅM3 £;Gçúã'vÿÿÙk?îûYeAþ»J1Õ>•ÂYïÔúœOGµsŽ:çðk £¾ïéN\•[÷4‘è‰q vsôYg„ê¥R›³¦°‰eŠëºNÎïjç.§&to½Iu*OULsUt\éc#/$¢@°.'çp|þ{"tq·÷dwÓ%³^—øêºé{¬RŠ~‡Þ‡üŸõwçQa(þXÉÁÐ¥PîÑøYàr‡ ý?Ÿêý«”*«¾‰ü‰;À zO£Òt…"òv"¤Ô°²>7×'ﳚ‚î¢_æQ· ×ß ?˜ãq7΃lõ˜¼ªíÁ“ÜÚIœŠÚ#{¬@~¸~Ì÷¿µ<"Wl׉þ‘?~uš›\àG!$ oFû^xé ø1É…üá½ßYîsI) ~¤G¾)„¤R ´YÂ¥¨´™÷÷¯|hC(ÅbÞŸN© G%y¤ì“e’ÊÖ·çø!ÿ&Ϲ'Gä|l-]ˆÞ~®>ßQ=º®ð?óÏs¡bä>’a²ErG‡âì­¼ý†›Ûfo’†øþ¶“l”NvÿýÝCHKA§½Ãv•œçz4jM{Mnóq•ŽØªœK<\Ý:Ôš}f/¿—”n€mëØ ÁβìF;ØÞµ‘èzØÚ6¹¼?\~AÇ0ö·™a&.MþÀr¶ë§f rDχš"¬]$5q=&H+›Û²ÛÕÝboÚ¢vE½Vv‚L“+Р7f Fj~ŒØzEзݿzÄV‹ÕÇwßûÒ©/W‚ îù#ÀÙç”ÒÍõy?“Žø;§œƒŽA‘ï\?Ѫäú/…BA‰‹Ð[ïVULóÞ4™L>Ýô;׿šàT§¼´ÌdƒRïšþf“jà\4ƒh)´¹”§~°óGWÕXŸ†£¿A¥¡LÇ){댯ֻ1>oøŸŸ—ö¯¨ë£^½K…f&àûP¤éÞ:H” :nîw8ý#”}pÙÜ0Å̽oV»æ{fv!­Ä€ÆòDªŽŠ¡¨œæ:ªU9Cy R]/èh(¸Èo­–yÒiA·AÇ ä=íˆúƦ´’3rJ$û‹H+ÑÒuhýÊDÍaßÿîvPÇsß{•‹Rñap±m¦Hôøû3j”coîýxðãþ¾+õBž8öÇ=ׄÐsƒ¨SeÒÏL(NÆã¨8m‚¦åÁ¯аØ|ž´aðc ÷ãÜwzèw"ÿúWóiuü˜í˨š÷HCàȽùm?ÚS6õù9ÅàìÔ ú¹ä¨îíº89©·_¿ùǬÛÚÎàGnÊÊGýû[lÄ9¯ÀŸó;εhoITè{ É~xë—¤â=\ê·ùãW3ê‹zëoµûRT–g€1¹/89CH,ÙÉcd¥ÿóŽàÇ)äûH<q…BÊmð£ òÇ4º¬>Ÿ‘èêªTü‡¯›Í-Ðc!dœl–El¤òG7Š[Øí­$­ð¿™ÀÐu|™‡AñŸƒÕ¿X?Ñ1;è*èq—#¿£%¼]ÖÉ2‡óÊ3;Â&ÅùÞ°Ãd4¯–WH!Á…Vü‚óhÞÂ9µ¹ö¡Va_;5䀤׈Krm3™bÊ8ûgRŠºjÏ–µ)ÝŠ6·h;ÓÆ²ieG.‹ WñÙ¥ûG­ó½uaÜu¡‰†˜QÜO²Ø'¶ÒÿCÜ[€iqlQ»_uÕÞ»š`A‚»»»‚[pÜÝ×àÜ}`wwwwwç_ýý÷`îÀ¹çÜÓóð ßì©î®^ïZÝ]Uv ô“¿ì>»ÖvEþxä>_‚§8=8ý™x¤ýóë½§Sh¡4þYsN“ˆCÙÌnFÔhj/Ë-ie_ÚYàÑ[{RÆH[ÀÆ““GÂñ;ôên4×,1LcÞóã¢:¤›þP¦–èÅ«Ì(¹ F¬‘òVÊ(o,w°{Ó>±qí(¾a‹Ûñà^äÝôÌ,GÏ*Ñ9¢Ùüe÷_ÝâªU=?««o×ýq¥ã*³Þ©¬›iŸã=K8áká¬Q:÷‘ïw|Sµû¾xz ñ!¼29i¥£×ªjê¼Þb2˜Ä¦”núÏχ8Åà'W™¬Ô_ñM{ó\wV›®´Ö6e)>uÒ­¾ªbQÕIý¬GÒZï\‘ÖCñÿ†ŠÕà7§Ñ§¼wfòê!!—ó…ÖKt ü¼áK´*™WSz¿†î@­kô„ ")Ü4×LÒj³Þ˜ÿÉf?r›Á•œ†—Á±Ž¦LÔú:.% Ÿ"ÅsÁ£®H ¡iuˆÏ?;©]šR :Œ¿cÀë$ƒJNz„å‹þñƒs‘ļûWEè¤Ù¦Ë|ñ ­Î+¦ÀŠáPç% Ä[Ij6\újL½áoàxcJ‚èúOªŠsõÂ9Lµ¸*±¾cî"m ǧ¼Yär¢e)ÐÊÐ|”Þè]ú0ç6p‘-üó·¥ïi|ߨ`ÇŸÏóEÕÌ)ä¨ü3Ò•·vWøÔ<ŠÀ{GâBÐ ŸÐD|M !øTÚ ß©4Ÿís^§XUioüu5´èWð&1ÒÈ]Î.¥5”&ƒ<àô’QÆpZ †LAV˜Ìó¹Õ1›?«7ÏAþ„[ÉÃ39J>j݇_ðK^Åcå Ì”ïmëÈ9.†?Ý8gäǼ“Çp…üÏùôùÇ\Mýùã'©2ÕE$Ðw‘Æv‘MçÆw ¸ãå$7”êÄÙápg€p#qLo o^ûlýïíÃ{Èâ'q…—XÆ3e„´”?9‡œ¶ÛÌö®Ì·ËAŽ rYnpþ ­<ÃÛ¸+øÑ‘‹™Ûïk5òµS©øòŠêpynhf‚;¤˜}&$P‚l›Ä¦F~èhKƒF[lD[I¦â(Ïã¨rš«r]Ž@³ß×Ûì»êìói<òǤs–Ã2ÌÞ†²”YÒÙî¶3Á-ÖØ cJ$¥38r³ù²ÑxÌìÍG5Ö¯L¿?© G1¸òZJ;ÏæÅ^–Eö°î&Û©á&hW°±eH®ÄÓ‡³Ø\6ëßóã¦Ú«/› []*†^wPÈMc§J}d£•rÕþnã»mÝu6–[ÚÞä(n;ì÷©'ßñ>øÔ­^¶Æ•œ þ²û¯nÉÕ|õáMîðQ_ýÒ–IUœcNyÝMW%”§e-9ÎFç¥sYÙo|ÿê­¯†îbÞš0ôùc ~êìPÔhbš´&…®ç|Û}¶îNJHspÖÃ$2ÌIUüh ¯wÔ¢´TC7ùªŠ¿ TÕ´É£•ô?ÿ u8¯×ÃKŸ¥|tÙüDïLC“OÍøÁøú$øÑžþ2Í4J ~$Bûã»2ô‰7»üù~SÈ„|nöùv «œ1aé*eA.jŠk&>ª­Cвæm” Jï@ùƒ{œFû,qŠ€=¿¡Îi??ÚQ¤£Û¤9)ªí†Š.†£_ eœG…é¶9 «±ôP>J‚«è/8­…^ššÈXƒA¶£¸nZs^öV÷æE_韑½}iZ7²6® §Ÿ›‡àgw¢%I) \á%ŠÄ»è°Ðyh–½Ù~ëƒSB[MBšJ»‚áÇJ_ ý›9@éy,·‡'¿F-PµökWFâ8 ŠW?æ!Ü‚Mõú‚EÞ“•Í:¦óùóŽNmó#RmFcôì*Îå$J…ïžrjÙ'Ýícqå(ç•L2Äòæ[Ÿˆ¬0™¸õûÇúƒ‡ OðåÇ¿{shM†?è·^ó$¹$“$©ml/ón)×¹‹·¦H2µG‚×·Áîë‘.Œ+a=EîY†}ÞC·¹?ôj,òGG»Êfr·ˆ;BÖ"ÏÔ–Uœna²Ô`þùc-p†|R¼&oÖû ´„ÿk–óP%J?.!/í`ðã¦l·Ke4“;ò–›s}ç ë<ä©¡\ã£÷wKúšª)Tƒ{ó[ê¶ýe–Q!Ù#Åí=É!A2Í´oðuÛÚ2’Õη…lV0®>òÂ[œŸ8c hîûz7}g›޽9nBÉzøÑÒÐv²Ç‘ú¡^k»Úþ ½ßa¯Cï—ÚMH må0ÎÈHð£8X=üèô~3«–àG xÇ™ŸÓWæ¹ Ü;hWc{?û«}7±g½g>’×Þ‘D²SÂH"ôî‹ÐŒ¥æ„ EýÞóã™Ú§¯›Žpz•p­§ïÜð¡bÛÒ@É5ÉjVqû»7ì^ÇâÌnt$ÒGB±·¢Âä–’ðs‚%õßÞ¢ª‘êøëp*½ y‰à·<êµbg©“JwÔ•wwôˆïOgˆF?Pq¿‘qUS=ôxnn™ ´\s^«‚êžžo¢˜¨&³.âÌMŸn§1ð¦#?ÚÁÅ6•ÌCÕÆYh~¡P¦…Iî }UÅZjª wÐR:DS.Js:­#¡h´Ñ¤£»¦‹©£'|E½Âú„þú ]¦±ðÝxô½3~CI8ý“pügá™6™º&df^õÅ Gf4È» Z8›Ê¢Ê÷àÇho>Y&ÞN9x*Rï@ŠpB"Ò§&9ÿ8zj($¬ä”^S NÎ)ù°6Ê™þ•½§ƒ§Ì ]äÏ’ÿµ‰:¢RP¤øúT‡¶P´ÔãGȶ˜*SO\«/h9:Žy”¾M¡Bæ½>˜jÑT}Ì<¡ÌȱáÂfQ!œá$pÀo ­'õe}Îz2gã^ {#ª£º\ñÏjó|•uOäDH ­ø%EÀOòB/;ðkŠÍ¿PYðc+ŸâGtŸ&C‹úzïÿƒ óuÜÌý§SËT¥<È3›y çD…ÆÈSy‘¢KY9÷ûP~„»/#…d<´> 'íòðJh`bêm†Vo¸óÚå–ñ.´q>zË@ú¬Gþ8î_?j¬]χ¹•ÚKËy«L‘†2óÈ èj»×{’,ÏxŠAõá§î˜Ñ´‚|´Ø éŽØq§3½¥¢Ôû»‡,®½·&=£Ÿqfä'ÈAøÚ‹TsJzÌœÑéUâ/Ô|뻡êR>àŸ·v½2÷LyxôPÙ­ Ô\èÞEPj2MÝC«Ò8°>•nîæPªŠ>m\hî,ÊŒÌA+S!¹¡QN“Ì$•}¼‚«€upDƒ£GL äžÁðc¾ï'=Ì\…>ÆùŒÀ—© •ÆŸ2<­ÊËé¹õc+Gàp_â¦aàæhÿX;á>çÇN=SûVˆ7A³òœ‰åTî¾>øq@XŸM OÚXÊAùòò=o^®É‹x'§ÚfÔgõœª 4r ˆÔTÄðÓ¡dx4_2ÚzÈOFâÉþõÔENóL¨jwjO—ÕˆO*¦ÕͰwGqnäñܾâ-Ï‘« QvigÙ(îûÀ6GFê/=e#çæ˜¼”Oøïž=£¹4ËéøI½òÆãöqÿü‰õx,ã-²V†È2®)×ì›ØF°QOd¡¼•ºrIä…£àå0¤ §5§Þ×*nQy$¿;ÔŸp1“2È)ùÝÞ– ò·Ì·6‰mo}nqû›¬–­pý)e —çQàó~ôò^‡F¿¯wÐ÷ÖÑp&»qÎrKFêd²ðežb•û³íê=ó±Oí<doZ×>ö²Ôµ­d§@½k8w#Ñç+}ôü¼‰jÇWŽjâ®å2f;‘_ÜòàD=d—²ÎÞ·ûPïòÒa™j+Ù_$—ý^®Ó ðµÍ7MÍw´ò=?”sZß5CЛÓÚl‚¤´»ÄJGy.§‘f ÙDn÷Œ}dkÛý¼Ã–Á×D™-Op•\7AÔ‡*€™Ï‚½JþÛ[b5î£õ£^ù²«Dÿ6?^©Î §Šî¬û×?÷æo7:¢N¡ï¨§¾o{;௹ÞäñÌ„‡2 2ÃõQ§¢ÓÓ”¥¦†É¨+9!Ïåññ¶Þ B:˜brÀ-6;ÍtuÚÉ–™¦' ¤á_9ÿU𶬾„äï­)TRÂa&ä¾ä˜¨¼ŸÞ‘7º¢tl¸iª‡}E½úŠNH])8ù%'ãòPÐÓÄÜšRs$.HçÍedÞJ&ä±9W}éðéæyCIyZÒ>z¤7⋆Âç]¦Îð®7ͨYJZôû.ÿPÖåØŸ””…â7z Í2މ%£¹#Çæ†”‰§öwúϺLþè+¦[˜m›»Ãq:È‚ÁÃ*™q ä¬)<…Zñad‰M| d ØÑ -/޳³J‡úÇq,ât1Ù‘‹Rƒ½ÔŽà÷O@2ÚŒ„@²O–ÛÈ6ª¬âäüÈÉ–S²—§ñ,ÎE˜ÅŸÕ t~ ðT‚ò‚o‘úÑehëŽ,óøO¹ˆüζ±A Kz¹ÇcQ/:ßæ@xøTàç0z¢>ÑþØ)ƒ4sù#—ÿ‰Ï6zÀce• fWZØõ6¹{Ѧq“ËVN*­$„$³e<nâÌ,øìy|xs=î<] .Ü™(üX& e,g–È…ì)™f«É)ž"7äŠ7ã.7å}¼ì:BçúèÝš¾vj-eEÛ¯¢Ïö?’P TûÌ-.[d¡]n;ØZö™­ŒŠc%оp2½g22×Jn€zqiÆûz|gkØÓÔù£u3.ün÷Û¤vX>•öÛ­ö }#2 IeëË\-ùJGÞˆñƒÜÂ<¡Ià6·‹m.{\ÊÚç¶¥Ýd»ØXîyY$] ö9¹H4ŸC>«KËÌX³ÏÌyÏ3*H¿õϞטfÑr³Jb ¥žÌÝîb/C»ÜE¶ [Æ^á³¶”·¡ŒAþXO/Í*\%åø…ùŸŒ?¨&¨½•N…¼ÆDð[.J8Sœ|º’~§ª+o5‘†Î.g¯sÑ9§Âãý+GUÐ=Í=pÚÁ?®¿Ó»ÕqÉhJgžèXº¨“ï›Ú¹ÀéD©‘?²Â;­£ªf6øÑ×ydzÐPèmJ@¾rýUg•]/£Õp²å¨2=¢ªP“ÖtRO‡¿ xjÒC›˜,zÄWÔ{ãLÖ ¢·Ð¦Ñthó&èÝ0(õjC4:;Ý7{ÍnÓÜd ±…Ë}+Í2|:zjXžw\ î.M§Š:Q—Ñ5ÓŽ†ƒÌWBœ¿½¹“{ZuNÐЉ ®œgcÁž€÷Yå^úMD«ÏšÕºÐg0pÕuÙDF^hí ˜ŠT ùÒ»§ ɨ(o§- Ç$PoõçšS#úp0Õâà,\7¡å£AŽïíXÊCññs/Ñ¢!f™¾ µ/ íJP§&…¢“æ;xÆ Áð#È—A÷2;("T-¿¥û4”ŠQ3(þ`8ø7h[oªÀ;¹7ü÷"þ î½%¤e¥¹:ì?î¦6s™Ò”žâAq;{ý릀3N ‰ä0òÇ[I*8 œó ÿü%¹ §áa<еúÇü‰;¯MìCRhdwð£7]£?ø1âU¼м^’ÙnP—)OÎûç/‰Îçx >[+‚ž—>Ë?Ã¥ÜúDnÇ»ÀÁ²B~áX2Énñ¯?˜Äm‰äñ£Ô‡§O…Š=‘¼ñgáã‡9=?©—.Ü€’Wh ’éäÅ2 XëÉk;ÊfŸžhç!m{âHœ™æ|Yª/ˆÙ†Ó}´þG_Oµ˜Òòº;ÒQUœµ¤²^üŒÄ” ²<*f3Ú7vm$ãežE¦#ÑŒývaëqšü¾ÞßqðãúqwŠ+ÉèWó’.r»N~€\• Pûm¶£=m¿³A²Ò¶¦ìádØãƒœ›‡Ò^ó£ùà.‹«šúII%©=ñæÉäN¶‚ä&ó¤ö´"øqÞþà´§ù­gëÛ!ÒQîƒãWÌúŠrD~®¿m„öfK }4³Á÷*ï¿ýü#£z«9«"º'ò¼÷þî9_g‹sÆyêÜTaÔ·Í.¬TU=ß<5/Œ¡Ÿi›~ìtRT8÷ìÆgòéÎOßÔÎÅNO¨Ë_Æ{›hU3CM ªè<6]h¤™n ’K­uû¯ªXQõQyõT¨éfô jÞê®<Í™¤WÓDäÓzPÅ,ôÄt4Åtÿ¯¨—R¯Ð?ÀYº|)f=‡&ƒ¦vƒÃì~Ü@R¾e®›3¦µ yÎÈ]¾#f;¾ Ý£X¼êì½OÜn•æH¼6©·-¦ˆtÉ éne§(ú|aœïi]ð#%‡vÅ`ƒ>{‚ÆÒšê­eÎkü#ïéÂêKïÇW‹ÔuI¥ÕFV‹€$PªÒLxà xõÎ\Ç`õÂ×*äÄq4/‡q‚}ÿ*­úE7ÛÁÉhÑ:èyjüš¼y4)ºY«ƒ•Aƒþ8'u¨uÖX°iy°ã?Jéæf òB?¨ø[\é=üÏ?R@ÿ óKJÉÍp•îM–òCŠÉƒÑº^`LmdÐU:²óê³zµœ¦&7¥gƒà SúGWΣäàGrI,{e°}%¹?âÃ9ââLÌ<Z>j~ß´úÇó¹N ä_ÐŽ¿Fá÷{ó—Üæ“Þj¶r[‚$Š]ü1™sÊU8÷Ÿ/ñ8èÁ®tþ£§œÞZW‚úÍFzËŠßØwÓ;þK–Heðg>¼x|÷ŒÍ聯e\Dº¡IXs>ÎÓyX¿ˆ¦;u>©— üðñiºI¸ Ï¡=¼G¦HiÈ-ÅuGØ$PÖµ¶§æ‘òR|R ŸªÇw‘—þ•kpsü}­ª¾6j2eã®è ½¸þ--e³ò»½&9À‘mpúymQð£òÇTYgOKÇ¥‘õ"Ë®&£qïëíó]qNãŒzïè%—'æW“—µ4±—lf;Ù­»½hרYö¶uÑÊqö†ä³­eÎÚ(>…ªCè®É`>Ì®Z ÚtͤõÕ6ñM}™nJT·²i ÛsRµžØ¶µµî´n„ °•EÙpò =s®ë¦¿yl¦}ôþî }дDmDƒé{º(Ü vš“ÙðËl]Ùíãβ߻¹ìY¾akØLv–ôK8üãË¡÷¼ÒÞXþÿoK¨ÆªoR¼òåø·ß¿Ê©|NgSHwÓŽSNyï=ÔqŽ8çG?TQÕ¢oªöÎ÷«g" 9*8·ûú©3LµR1ÌSÐÄ0ytÃo¼µÖéO?üyhÎa33Æ,VE[¦x¿*––zéÏ×ì ~û ÄM­ƒÈ{Ó´&ýJo¨2®—tI¯§?GþÐT6v2õôȯ¨÷ÂÙ~T¦w Òÿ?1€Ó(èò!ªOÞ¸ÙBôÚ\4—Moò ]ó}ÍisÐDB_MΓ¨Zh¼9þ Å…8 ï _ðçµFk(]ùǸéÏ·îN1:HE “Wpý1U#7œ£øÈ2¯ü³¦Ï#o-¥TPÈJtɜӹ¿øþî÷j¾?̃Ϫæ¸tÔ§|4L;D‰¨â‹ø-ƒA¥½tIÄ{ÊùãZ0Ռʤ÷š­y&X>žr¡VJڃ찂ʘQú&¨&ÿÀíàÐÚ‚ ñÑ›B#ã†ÈÝÍèóœ êû üÈ ¿šÄ(Ïñwyä·ÐøÙ|©Â›;Ñ=ØÈ[[GsÞ~V¯…SÞä£xp+¡ÎÅ¡¹?RÃkgô¿ÍÙφ²Ie/Lj2Ç¿âzh>^À[84òDzώáG‘¢¥Æ§p€·¦*à;|~¬Ü•]RÀα§x ôÿ492'ä0ÐÀù\›[a_ŒóiþøA燳XFO¨8~gä§@ƒ ùcè©@?PSZÏüŠzOœyÚ Rx>M·Ê>ÆÿÌ»!òGbÎÝ1—LS%ÄÎó­0KÍ.ðãeâYT þÞBõƒ óùÀ¢õPÈEäÝm]GÙéjˆãÿp*4å©,ø±–ÂÂ=iÊ@·( ‡å¸Fùß·ÝB ?JÓesAgýb‚¡f©#&¯ôÏ\ºùçžiŠŸšL9ÑÒ4Ô”ëó9c0 C::„?¨%Å4¤ƒ[™3…ÊŠüq¼D¹i)òUa$5/‰<ÏÒ›úskŽË-pæ½u:"ƒa¼µ»ƒ]ÿ#…nkŽ‚‹ü럟ŵ\ ÔIÀc9Áßí© Tg8Oá””gƒôÞ›“?Ž#<ü¬ÞïNI“™2R^Èã‘`S3¨u6^Ì ‘?ÖHokm Ù~ä‘¿¹‡çä<šæÈÉ©Þ?Ö?_é<ƒ“ªNA %È4=q&ñ>‡¼AîËJÉbØ=HG…ä%òG<ô›Èrš_Š»ÐtK}ú¾íçgìÝtz‹½ ôóã84KjCgÛ6™{Ë–u‚E¥ì㜠\Ôt5øvÛ›½Åùt´Ôf9> •î6L£m¼i¦‰ôàöÂî_6µ½$í`ʳű·‹Js[Ðï 4 ÿÆ?~4úíg_;5‡2àì]¥8yLJ#7‘?ÎK>9)«ìF›DJ —^P:ÈxûXrËrn ¶F›JsCŽÿÑú|gœÃôªøWÿK"‰kÙ’.^þ¶÷í*;Ò^¶m€Ì°Aò³m'—8-’ÙC.Ë£é•Éc>Ìò”üpÐçJÂ_rVó”ÖCñØ1¶¹½.ÏåOÔ[d‡#…<’f8šMlE^äŽö õu¦™yf>Œÿ¸¬vé¦=ÜHKú‹¶˜‹’Æf×K~¤–+Ri#ƒ;ÒÝg¯Ú|¶'Ÿ9‹Ø*8+÷üóïΧNT¿ãwú1{"5⣕ÉHåù·çO̤ž¨ÈȹtGÍNmå½ Téc» ù#ú7>?£*ëÉæµ‰KOL+:Œü1AµWõU“ÚD2™tƒG.|º-p:ÂÍ/)6B—3ƒÌ$Uܹ êï7§üãÏëÏß¹~ûWb&½•îÐ6øÚÊôš~Fþè ÆÍ÷¯ù4 ´ÒÖ4Óã¿¢ÞsgŽ•ˆ«o&MEž @kÆC™C÷½uH³CùΘ{¦³ y†•ù¾ef;öÈE»bòbªHµàóÛ¢­S©(ÕFJÿÏHJ r®9_Z«ü_[k§ òGÔ¹ŽD…×Qpû·@;ŠrÅ?ûlh~^F%蔹®S}‘FÍPÌhU}|ͦðpÔeÀ¦ñ”wRjÁeCŽ¡mãÁƒ­ ý4êEQÀ³ÁTûAeÔgŒ7Ç0-×Rv\Ó‰ñsѦX&@_Fþ(ÏÙ»3PŸÚ 7Ý1QÑâàÆÎð¥×ÍÍvJÁ]¸ öÍ[°:µ§ôð¿Åà¸#qä·`Áßø."OáÇâ¸z d‡~­>Ÿ9ŸSÓ䢢àу\u™k.EJrY' mx›O¶‚ÞúðBë Ýìå´Ôð£Ñÿw[í„¢0hQ.ž¿>—û£w b•ÛÍ‹ä*òGZ¨ê^Ä堠úÒñK¾ë_Ó°#¼È3õé±0ºzÆ\ÿúƒëqœöÐ]! ¤ '‘©vøñÄVt‹K –¾²“S3¡m×ð›×€Ÿ+iËgãÏ_êµþùwoP®ÅÑ^#£¤üÉ5Àq6³=#ëm9Ë3äRKèrÞ"åCü;—þèùG=_[5¤ìÁ×éO|ª,ÈY ¾¾®=+Åä¬ì)³Ù¢ö•­eËËHøý«’NV âdvå0øU þ0›àß^ç,’Ör¸ŸT’Š* 1œãjþç£d¬@Ù`§ÙS6‘õž¦ï—|¶¡œƒÇó#öîN_4™L©÷û[J5„Þ§EÞîNþhŽÑB‰ézù¯ˆ‘ز5í;ÐþàÞ’ñRÃ.¶uäºyŒ„¶Ç{7ÄôƒgòÑóó­ú†iI}©È<Áläȳ¥Œ,ƒ{¡ê;ßaS¹ìQ~mËÚ*¶¥ô+ÈÿçÌ"ôíºüœŒù¶^ÿ3[v5Z}xnüÖ—Q…´¢é—¶¼ê™JæltrëÞ:¢SÜÿþn)ç¼sùㆊüó_…Quõ|ŽáOUº«}º¿š¦î!d3‘M:]ÓÉþM휅üñ;M5ùp—RuÓÝL?Âÿn4WLhO+Ýã+ù1RåÓ è<íF2*‹„P‰·@EŽê9P”“øÃèY‘¨©òUãÃèÍÚÅ>†á}è=³È[•)#y÷×Â3;œž‹!A<@þhþ÷¯Öúö˜5按Oç(”º*4'rÑ*xù‚-ÍŒ´düó·Ç§½NHoÿáü„^ZØ¿No Å¡¦hIr\‹Ñ8k¾ *̓ -CÖY?¶Ýœ×™¿øü#¢ R—Mx÷fH ?žšJ”ÄÍž‰ð¯þõk½g*ëAâÉÈ!ƒ)‘yà÷ü<©Ê O€?ðŸ”m›KùaRÒ>´n4bŒ¾Í#¹Çà!þ™ŠêR ºdâ`¿O»~m]Ñœ¤ÄHÉ94ö¬7ýŒ“y£Ô= W§Ò|ÿ:›Ñ÷<gêo¤ÎÖT…i×yùY½ªN-ãÍæ˜”·AÍóñ o~aŠÁ»²#m8[R.p2ä™\‚ çàé`TB*j†}v W8áè)EÞœsÀ¤èi=ø>ß‚@‘—H:»Ä^[òCû¡ZbhéEäªÈ*õˆñŸ?/‰¾±.#¯‚†ï¥<¹¨%'€Ÿßic¹ÖMâö’cœ]zÊfNjŒâ‹È k¡êÃé†Óá“z¡L Ôñ"]¦!܆WÑb^'C¤–4ãZòÎŽ‡g¾!ìyJ=“sH<9¹ Žçvþ5á_ÍÉ÷µ*€c)+wà{ô7àªèÍÉ‘;êØ“’ Ik§]‰<“Ý>°½Àž2ÏF.™~Ìe’£œ ù#,}Xûó¬ï¨sžÑjH åº)obã¬4´7P¥Ÿ\”%6”h‡Øãø~‹,°»%“mfÆ‚W¸ƒìø'½0±?ºö²«žú±ÉHÞs¥ ü\Ÿ¡mÏMg§‚j·%xñƱ]‘BÈö‘1¶§M+¡l$¹è;ЋM+sÇ|˜ÿê¬Ú¯o™îÈiÝ5Ç$—;Ò.‘J sÁ¬6’;×mÅ­g—ó[Èf±ce¾œ¦MtüèF-ù…7ßö†Òf‹ _òaþ+WåWYÿíçWT,g™“_7ÐᜲÊ{šRÙ9êœr^;ÏU$µþ›ª…VUôl™4Üs5: o:£@ºÇú¤IeBƒUœß˜?ºSMZb  ͤڦ¾é¯J#4§Ùpö5(ÕÖC¾ªbQ5DUÓ‡è,œ²ÇǸ¦ç⿞èÙ4„NASÞ!å¼3mLµ¯âÇcgŒâ܇£œ gŠ)€î‚:ùøeî¡•]?ÊÐ_ÚVø6šõf/Ž™Ç£]MÁ³6 æ|Ê Í?D…yþO_ZLÑèŒó¥µ:þµ5wÊùß® ½ òÏ_BPé£PíèìƒÊÎò¯Ã„ï©í6—t.õ¥5 _øv‚ay)¼xì+!}×›ÆPröÞ9kÍÕø,²Ì4š¯xµ€|YÍS'¸ççIURí£#–Ç ͦE”‚¼;FÛé.~ºŒY¡½÷XksLn Zyë¬'ÄÕæ‚NÛ‚áÇ"ä¶æ%„ú¥/NaO½ú’ƒ…ù&Ô¬\Þy8Ò¾DQÁÀ¿É[±º zçvÓáÏö¹¸SŤsCÁÿæü|õÆ!¥-áô’]6ÈûƒÍ&Û8¥¤’Áà‹@ïGp&å_?ª¼ñY½ÝÎSc‘g’‚2‹Qe(Gþx€D°ŽwÈc¸è|v¢ÝÁÞ|…W¹7ÇæÐÒã MîJ­è±útEÃçNAÐq51rÏnÏGHÉ8äoýó@{ÌÆu¯Øün#™Î?IYËÐÂ5|äZÁwÐKO9ŸÎ$×8j7©Îâ ÚÌSd†4‘~\_¬;Ê&°×e“-‹xžÜ–ÇÈ?ƒ·ù0C*r•žŸW÷uð?ÿÄ·¨øWÚÄ ¬rS#ÃÄ•Mþ÷¯ÒÚbPé?mðd}‰ü±©c[9 ×f¡ÉïëòwÎaOPJ-iéWs¼½oÛþwá.H“ìËv!òG€¤´Íeöy_EÇÏ4øèýÝŽú¾‰F¥¡(»¹†¹B3%‰›È®…²o–­ÈIÏìv0ó…}*Ýe0ÒBn¹#aýëGm‡>¬2£Í}Óç#~,Ó—àa[â:K£Í.Iãαµ.Krͺ¶¦;ÒÝ ~d·Sy»ÍeóÚžHwwà„šéÔ˜*°å;úÛž0ÿg¶jŽúÈw«/_ý!màŽÏ™æ”пéþ·£ÎgœÎ+ç¡JñÏ?Þúªè¹ÆPXxÔj´_?pF¨†àÇ “ÆD4t''÷7µsŽÓš5Áü¥YFÅÌßfœŠã\Djœ¿^ ÔJÏüªŠEÔðc+òÇFxÚš¸bÊñx‡ãz>u‡Ê¶£W¦8z€iñUoÔ…× th•á«pó‹¨8o¥ÈÐ÷1H5@“ÛpæoÍ]sË 5íBlálß~sÌ5>Ð- σGšOÑáköÒú‰™·¡þfø©¾øÿÉè‚ó¥µÿµUwjûǹÔó?ÿˆ†¾š:ü ¼x‡ï§ÑÈL?¢ñ¨åfsSçT_šù…oƒ:h’ó2d¢²þõ?^›êØÇy”mŠK¸¼9á½5EFùóG óÆ9Lµ<*ž~àãvZ´zž,JBè j¿ÓÝô.îÏuá雂~u IÀ4’ÎÃI¾ìzŒÙIɸ;'ãP`Dü”·ªð®Ä¡¹-ý̧¡P»¡j>Ký›z㚯Œüõï_esê¢ßæ¤tàÏDðã2òÇ:ós~Ë“yÔi;”æÝ͸ vÛœ’9ÏS¹·Âq| &|Rñ†SjµôÍÈ›¸Ÿ£çÜž¶Í»ËÆqߨÆn!YÏY¥ T?Òæ|>Æ y(±†9?Ë»qÜoÒu¤"ïýÝÕ¼F†J3éËÉåõÖ¼ l_$ÁòBîr=.ƒüqÿà­ ISså}­j¾šj"ÎD'¾~üÎLJ&—äg{YŠÊbÙh—Ù’¶²½`;Ú* Þ{N¢Ér(ýðãCõHôáÙãßg…ãôÞ¨’ŽæšgÔIªÚ»6¢,«‘¯ÙMvŽ_B;GºØC’ÁþŽ–ÆÁ¹;îQ üÈn>¬wR×ÿ“ŒŠP}šÃELzž#1Ý"àw6ìeiÔ9c÷Øæ6‚{K&H»”{*¡å-®›íè7ûÍdóê£ñƒ‡Ô*}ÑÔŕОd¥Y'âæ·“¤¢ü-Gä¡­k“º3Ý6­[Ü>à [Ê&²d¢\ÃyÓLBütf¾Maÿ3[B5B}X·UTfõ¥ÑÃ!m¹Ô•ØYâ@þx¥¼7MoøJ;œ=àÇ •@}Ûúƒ¢ëAæ{ŠHßá<­ÓOœ6ª³º£™Ô†M2]Ï)óMí\è´€?^bòC[fQ)ÓÞ V™óЯIf­)Da¨‡ýU󩑪²^E Y… ƒO)zX-rÌbhÓ>x½gæ(t{SJ ¹œï;=GG#$Z%žOWi+ŧ¡È2À"øQÕŽ›“¦­©b çûΘCàGLòV\[Ý,#èÍ <—Ê‹oCk"õófú¥Ë!ÎßÞÄ)†v•@޹Bø‰fä£Thë÷¨~j÷"¨}Þ÷Ê\Õù¿8ÿnµH4ñy*U räÝE{‡ä÷#8‘‡O ÕôáÎð¶kü‰f=ˆ7Y¿;¥5ÏœóÁTK¨2ÁM£(Ü $\‚*Ùp>¼õk/ÃG6Ãô8ÿß9 ÷Àïkã_GëªT † |ugð#5àtL|…Ú¢}):÷äÒìÍþ]Éí(÷ƒÚ^ ð<¬.{3±ƒ_úüý«rN“ G$ oDÅü|Ø?ÏpFÞÆ9$µ¬• ö…ä’H#yegåÇøMÓ €sxÇ£úÿX?j±óƄ¹ÌÍË¡á‹øOœ¡|þøÏ?Iz;ÚžFë~Bþ˜ÉaÁ£ï@’9\–›Qº­>}»ðreYÚI±8-Gþ8My¸,”z]ÆÙänV·'ÌÒB¶r(ÔJ>>!ÒSçÓѶ/õj$ñ[t††pMžHþõëËï\j8ئ´7e•]/gx¾¼’ÛHyÕ¹_BþèºÕÁ¡¯‘šI‰ðï—© øRÔ0tÿ…T²÷%žÊA;ËÆ´åºØr2U–ÚÈ6‰Ìç 8ßä0òbQþŽz½¯·Ýwȹ~,¦Î”X2QsŠvpa{Î&µä¼ô·'íB۪ʮ•Iö¸äµí‘cbƒü¸<ú×%¸ÖïÎWQ]ôU“€~F¦ÝÃÕÍš&¡Ý¬vŠ-mŠÏް¯ìf°í rQw™bÿ²°Ïqå*Ý?ºÐ:3ÑD¢±ïùq^­@žñV8ëun¦Kw’L-Ù ºµ±¹m)w »Ý~ç–¶kø>~KMû'ØâÍWqÝL†J”€_ˆð?yþGV\mh•ñßž7¥º¢Èï$EþåüŒ*{|?;»œÃÎCÇqâ}ãó׾º¿ybÞšk¦0mÒ÷¾ª°z ·™læ±Î£Ë|ãøIN=xñ‰&-h=ž ›nf¼ ãœ0 h†YiŠSôçÏ,ƒßj©®*™^ÛM?á<U˜HM鹟wâñVïfŠé¯9£oœ¡Ú¡Rpn¡‚Sýóï&§4ù£݇>æ€f_Aùô ±…s|{Íñµ9á½- Ç:®3ÚµJs"Þ@©8ÐÿFÖb(ö“×úÝ)BÞØ…ZÐä@Š„eCnМ ôËçÑÞ±àÇ"øØÕ8‡Íës™ÿk{î›¢Ž™PÈõé0'Âÿ“?†R!hr6êÊMù&…ÇÐÿûW­p4³šWÎÓ`ªÅS?è æ t×?ƒþ‚ZçAŠ9K÷h3E7ô>xóšðö½Ð²®¸:cÒQ\·SèF0ü˜âK »š™%5ÒÀ5üæz¸žãóþ <¹‹#Pú9Œó}ðc:x<_AÔ“:¡sï³z œš&#h–Œç‚ ø >9ƒÒòf~Çid‰Œ²Öf”CœZòËß\ˆ_ã¼üÁ%áx×qxjùùg;7L*  Ç'‚x$zFG~Ìwx6ˆc÷J;ØÞ/ Ê-+:Îõ;>ÒTåÔ“gúgù#’Ó*œ·D¼Ÿ?O÷x"øQ©e¤ÝÇës˹Ä«×L6pþùè&ø´ùc7=øŒ§õ!÷kä­ØQ÷Ñxò)Ò^zsf¹fÙdöþž&ø/y~4åÊÜ•/ÀßOãkø®“ùðŽDy_~5-ë€TÔG¼‰OaÀê6‚Í%³cfÙÄ ¹mli$Sm|›m¬ÆÓù¹Á¿pÎòÑø‹¾5ÎnŠìöQQ\Z’Ø«¶Œ%Óex½?k].3Á¶©G€ ùoZjb™Úï÷7³j¢¯ƒ5©5à¾f­—„n60£¹½!÷e¨½ŽŠ­íœãÆ2Æö¶U%¬(ÑÐs.ÁÑm7O¡lïùqX-AžiCÞ{È£%©»Òî·/J(ÛÓæ³¿ºÃÜGö†EÆáÃ6¿­dÛ"‡=Çù» ~4¡ Ÿ“™osèÿ™-š¥ú¿?2áT®{ýóÔÊ:Q5N=T§rj¡Êq_AgŸ³Þyã('® ¹ÄG[8UA/„‹ŽF/M7 oꪋ:¥/{«¸š,º|ˆÎùÓm‰Ó“šãÜ‚6í§žf™™§b9‡L šg–šÒ”–ê©_U±°¯²êôJUêw‡~â5è™uÈ´®ô>RCšé¯y¢Å:H[8KoôÕdšZ¼‹7¿áQôŒ7”ó¢ÚesÁô3!P™ë;jž›Õæ¹JI é•Àïéw´k>•GfØ ª(ƒð}6Š Cš¥®Sóæ¾O;?zúÇè]¡ôœ˜cñ#šŒò·dõ«†L!ó 5øÖ©3ȸR*ÑR"º…¤V5rð3© 7@Å•4N} Žî\MË)ƒqôÍ`ªÅV±ô~sº» Çkö§ %‚ØM¡xU7‹ôiÿÌN)ùÔ®Oµ½µALxš@w‚áÇl_äÝ- ÷8Îð|•úP>ÿÈ¿ÂÝ¥coíc< ùà˜5úáÃA¸ß鲎â<þ¬^5§°©K)òÂb.ÇÛýoœÅ‡W’G¶@ó¢Û‚r޳IqÉ%Ø…ŽæŠ¼šOsJªcf}v G8÷ü3¾z÷ÃÁQèÅà³®¬Dnx('$•ínŸóÎ-y0§€¢¼;{ëð†ræRñ|Á_Hº¡9—7›£ÜšÔ™os_»Ú†w¿sã¹å$çvr66]Gý]è§kèœóéxÄHpááùÒŽkÁ¥¬Õ¦K™Z¶ClvûPÆÚM²—›Ë¹ƒÖàPçÇØŸÕ8ï­Ì‹÷µšùšª>”iôuBµ¶& E–KÒÒ^•²F¶Ù}¶€­hoÙ?m%éŠüñZ H ×F­èr“«€Gy郚¾?¶ÒÚƒD›FrRcóŽr ûÈ&°£±Ï£‘lRH»Õ.JþH³ý©&Wt–ž=ÖT5õ-S”ŠàªßŒ–/¤‘ò)aþÜ‘(v‘ýÞÝ~„rcÙaHM“mJ!JÂÁ‡œEÙhFš[ð7ÿªwH­C’î Ú}dòÇc;Í.’ßd&ZÒÊV¶QÜ!H$9ݾv?µeñÿþ”1rÖ‘¦‰p‡-9"Ç1Á½eòßÞb¨^jØGù#¯ é‰ê—¶¬J;UàÇ@}MÕð¿¿[ع ¢ýZEÿÆûWŽj¤W™7þ„õh²þ^oRsÕSýÔD0aL<]Úù¶u®ö9ÃAþ‰&4~#å3ãÍ•Ã9`ZSE³Ø$¤XÔQÿù•ãgª<ú,m9 S58û üçp‰^ŒþtšÊÑ]—ž™6¦„r9ßc'P‡†|€zÞ=‘«´ >z~ UE¯ÎD'ÌE³ß 3-CláBß1s ùã­9 ò̤òøÒðÒÞ¬„Yø{^G1x%]3 ÒIéaˆ«È?ŽRV»ýþ{Á½'E2Ȉk!,_÷Ï‘;-މT“Ÿ™[:ÛŸµ\}Ežæ_µv. ”üWüÔTzEG(´¢>*nÀ÷3Põ0h:õó˜·Npã?â¨ôú°ñfÛJQÑ‚”‰²Pü×#»¤fž>•jˆœÔDZ2T4ÚãÏ·‚]ÿ£”žhVPløûÌ Øÿ¯Æ”*VšŸ#GÔ§rðóÃðu“,öá/ÿóóßm.éïþqÿª‡ó»ižÅ†êNáh8îµ°?Ix'•Œ$ýíÉ%»8>”oÔù;ŽÊáx'CñcQ53ûÏ?Þ™ìÈ9Qo *þªƒsÁ‡y2ýVIkÚýÀyå:ö;GáGø·¹œ›C—Þ¨OWy蔄GÙ¾ýÈó¹-|Ånž"ã¤ä£6µûÔ&s»ÉTN(íd#Zö†Fó>^Àóø"ÎÏñÏÆ¤5(øqŠz½i;‡úÕ—6\BîØ6£= ŽÌŸºƒv×q^Š#•ç<D®ÉõÍ÷µêúê¨@øœHE5q¼K›û&”B‰OJ:Pi5º¤Ía_!3dQ–ØP6Zú+ò‚•kPüœœ>¬YùηÅ9OÏг†Pb)O Ì6Ê.¹ìß6¦íâ­™e•{Àö°Ç¬¶Óe®=(Élo9Œ=ŽÂMÌ¡]&ýGïÎUõõm8ÑŸ‘¶ò³‰Kb7ƒf‹Û]rE:[ë.°M?^I7™lÚ,¢myCOq-u¡µf¶Q4û=?ö©ú¸iOí©®¬if™ÄvGØ©(ä°²®êNp/ÚÈn ;÷Ú H õe’<„¿znV—ÝãÿOòG"Õú£™Cÿîø,*¬ÙÙáä×#ôYå­%~ÖWt»!Ô,r¾t¯é_[[§ ’Pèýa¤åHÞŒ\T‹ =‰%ñFj,óóc=å¦}æ¼ÎñÅü`ƒ‰€¤ò+öl6øqÙT›†PA>B9© Wâ“´ a8*zïñ6„sNgž:Á¬M¤bë fÒÆ,ŠŸZ·Ÿ—⢵OÀöº·>ÇpUŽ­­‰+³1òÎVçki0üãË®k™¨ÖÝ?ãu¥BÔ9ËÓ¥ïø%¤Ü|”@ïÎ!N?¢fu$Çu:Â?øQÕ©dÒƒÐay!÷âœ|IÕç²óHZ9(Ãíðc-Ç“,2þ‚¢¢vZ(ÿZC¿™éŸÃÙà‡Bøü'Ï„/BÇp¼4œü^,Ï@¤Pv³]Ê+¸¨Üâ.ü¬:´ÓâªÔÞ©ŸTí­½¼½!%ªÕâ tÉ Prñ+þË.³Æ}l »?Ëf.$-%ˆã±â>¼{?Ùl íqZ|R/žYà­Þš›ñ:ÀËdˆ4–2à™·þy2{AfÛ²›'Èm¹Â¿p1¨üYìío¼“«q•Ö¯mê«§F “Ö?ê#§”5yˆe•”@†É*%i!¥Í ½¯mëÊ&äškò«LAÍQL.‹ü‘Œ¦¾¯w÷ÛÙNi®|oýZE?ñhidwÚ$vˆl‰ÖuçÙ¾v¿}‰ã¸” oûÈ60sßåRØ›#&ÅG÷¯*©Nú<Ò`U$†œÊ ãÕ’Æ­i§€j¥²Ýmc¸»ìoö½/}ñýEûüWÌmx°Ah&˜ÛfÔ{~\Q'õiÓ g© ®³“ÀŠ[ÀŽ•2²H–Ê=›Ó>³£Ý!È3åíe>jËÙÒvü%W°GwýÏÏñÖü/濊Šüñûû#cUê{þÄLꊊê¬t²è úªòžn_ð5pf;ÎCç†Jøã#©jº¯ym¼q×õ×G–ª¢z ×špƘ¬ºªómœ›ïüNÙh<’F/p$™©n©LÎ9S’bšz&´¬ÜWÎUN P%ô_H1T5úRÇ9äo5 $J\éL]“QüŠzõL zú8ºtÎ<.D?ÛÕ»Có¡\Ì>³ÎT0!ϹÖwÀ0‡w"ùÇô&¦?À¤I”=x'Zû7=DîŠ}Þâúƒ­‘?¶¡u•Ю­-r(9¼\8vù)˜2†¦z‹)"Ï \´ÒìÖé¿È¥6¨s&ຫè_ð¡ÿùùm=Ô¿®Õ£àÑ8ãå´iˆOF1¯‚åGv•Q+œ…°<J¿´ÉŠ’­õ! …6ãõM(wuŽÌÞÓ–æpw†v‚ìÃåÇ2_ÝÌ£XÜŽý1œyÊG­¼Õ©¸$¿¤8=àÓ<’7A?Ÿx+`øW"«ˆ0E?ûÇøÁÊȹѮHí DTƸ8·¤€çí?žSÖƒi¡|É‘æ"p{ä”!Þ=|jjÆv : º÷ yï”6áÑ<šîA»ÂËMT ’K2WÂÙiöOã"rŸ;phŽÍW¡÷ý8×D¿¼©~vÿÊ{wpçà‰È}é÷‡Z•äè2þ>­û›Ãm'\PÉN¦ä­8“y­¥Î§ÏâØD-oãN\‚·QO”ÞREªp ãö³éí™bÇÈR”ëò‰«2È^žÖ­âÊ\æ£çE}ÕÔJÉàOjsa.`Z€ í]qe¨œ´Cm|›Ö±mFy Óm<Z¦q~ŠDvµ‹ƒÁÆînôpÞÁì¦&JNš‡¦=_”ööžMg;È!b·Ø‰¶t_ÙYhå" Ý´vº-lÈqdË`Q5ûȾ>Ò IDÉayJ¯Ñ_Û€ÌS3ù£ù¯ÖƒG]‘½sòÄ’$nT»PJË1Ù&¹AÊ\n;7ȆusÙéhëÙî¶L#¸Fn™iHÁÕø-…5ß6Ãàf‹¦FC—ÿõ]T•ïÿÓüíyœõN]\¿T•7JgµsÖ¹á\PñÕ·ÝË¡Jé! ÇsÙœ6ÃôT§µj©Â›•&>R ù£ê7µó°S–’AÙcBIRRÙ,S5&3eƒ¯O Ž×Ö!®ð¶Üj¾¡'ÁÇz³ƒä¾§àQ”–Ò›yPýQäÒÃtØ7¤|E½Øz›ŽI  ƒ'h:Ôí -„Bw¥ž´ýý£¨tÉì5;ÀÍ×fqÕ6æ|öC\Ï#à‘rB§ÛÃÍ/¡L:mýó·{óïî2‹Cœw²SjQžªÐ5Ð-*Õ¦g&iǽ9Û°¿“qÖÐw¼9i£™ ««/Ý{æ{¦î™dÐûŽTÍioÞ™_‘mæQ^Þ@ÅÁZ| ú?D™¾ô§N¸BsškÎŽ`ÏC6íÐn8è^`ÐZ$=e¡xàÜ}üô4}G_S¯Ë©Ù[í°.²Bx:fbƒ3-ƒáÇ>_ÝÙ@®êË7ÑŠÊ8FIx ”Î[™¾†ÿþÕ^—‘?¼;­ðÕn$@ï¼þ¬^}ä˜ÈCqІ¦œNÚ^i!“d–­p¿§%뽃àÔÿ¤ž1›è.ÜÎqj‡c¾“¶ófé/å¤~þœíaÓüâÞ̪#‹Ú¾uªöÞuqw×àîîîÁ%¸Cpw'ÁÝÝÝÝÝÝ·×û}–æé&ÿÌ3·Ÿ™ ™fß:uªÖ»Ö‘*{H&Ùr’×AñŸ#ÓUAòØêKgã8=ñåù«òž¿Õ*Êýøá¨ÜÈÌ ärZŠÃÏg•rõÛö þS]ü¥Ÿ})àniœ›¨™Ãñ3ís½Ëžç…ãƒ8Ÿïy“9`Öñ9b/Û2¶©,†Þ¯¶Cí0»Ý>”¥ò·+O¤ø‘ÄÜ rö¡¥&ãW+$Ríu€I€Yѕưcêr|ð¶°mkØsÈ‡ì »Ø6³í%õlü+¯è mGZ¸bî™°Ôï3?Þªãú…éA½@‚qH´g%Š7ž/%Åc£×þ°µ¼}¼Û,yžà¶5rNwœ+?¸¬{f´" ÎɳÿÉþQñÔõeݧP*§ ê€}²©ª³ÖùU·Òâ”ñåvÎ.ÇÏyãøÃ“nÿ©j!TE=.ú2H,:§_8mUßÜ5¹Lt“ü(þSíäô¤â4Ãä„6Õ¥ºf Ù¡28¯‘[™>¦¸ûŽ„î¬ŠUÕ,Õ\ϦëÈ MÜÝî¡Ëóá“#!Á/õ­õ±Ð$óí_›_ÿŒz)õV#':CJ˜FÏ1*’€D‹é2 @Š8Kî.Œ§Ìó«Éd ·y>™æ– é[©°*Å…£?­(ޱ^\ËŸ AºäýŽ{ç£úì&´:&Žø½Iå[=1 üÙß·Éð±‘yüÿ5s_çU?z²!„:¥Þ™4p©íÁ÷.þkS âH+ði|Ã2nÃwÉÝ• Wâ¸ÝBzRFŸ ¤ZB•.p?òÔPðc'Ú‘:/.Ô?ŠÙ£ß@ïºpnŠÖ¡-0QPyw üXîÉ¡û˜#”ž³ŒïÉä~È£á æsgh±â¼T›?ðrÀBóTÔ™/ÒßÝB‡r¾ß?ª„ÓÄd€»ˆ …ìE; ÒÌA‚¹ÆE$»ìsŸÑ‘ âÞíÎ"ã8/XœŠç!é,G¾INUÿ‘?ö8D0ÚÒ±»#ß<þj=œKL$‰rE‚SíJ¾½~Ãm‘>2±Aýñ¨Ù$~ýÝúíaumjˆ^3øÞHH'è)‡Ê-ä˜ÒÞ®µ±½m:oc¹ÌåÁãH)ɤÉì¾IzÚùv-ðàÇ;0í.5AæÛMkx®=Ž­£\‡6çµe˜].¯xªˆeqW9éÂwq´Íy5Wâ’æË=®ž.jÆX/~Eí¹·7¿Q<ä„öŽ—ÍrêœÑBþ¨m•I²Õ^sß AŠYÍŸøÎVavèËÚ¥g<—œ¾ýk[‘GÒbÿ-ì#›Ê—F[뇚§­Ç6ŠÍn‡ËäЩhaYL‡LVÓçóñfQmá\r¿5¨—5›‘©rx³£× Ûû’Ân´ÑAßVö¥}D·Î¾±•åƒD—p,˜ãÃfV™fþWë—Ñï D1/ªÒ"Åz¼•ì4i&ÓeªŒ·ÅlLo/ï0½Š»Ã=’R;IÆÉeÚG÷;Ç«ñkŠi~î ¥ÿÌ'³Z¤¾¬,iUŠ>}Ô'—º£R9+œb:‹P¥|ù£©sÚyæø;÷UXõs»c%SUôXøÓ—&E¢Úß™§¶©æ¢ÉdäªN¡Ÿjç§Ôe›ÉA}¡ÕMLa³P tª2Øl2åé“©©Û«bð£“>Ž\°^¡!¦œ<ç=ŒY‰üàÞóö3Y(Àt6‘‚uýÊÑGu>„\°‹– Ó¤“Oî».tœ:Ò+º@9讹m®` }ýÊ*?s‰-6fs(^ß=‘â¡úЮˆr€Ròúh¦ƒuºä•6w:íÀ2¨ó É :pf$ }JåñƒëŸ -€ÎÅ|zjîê¦?¼~õù#¾rE[ô^´ ’ÍF*Ìp¬kÀ‡àÜLÐóÈÛàŠC°»ëÉDa0õ¡‡:–c¾;æ:N-“ǽRÊ›y"§å“HRK(ÒÂ;.&»¤5òGR¹ÊY$•Œuµ =—ç ðÏy¨Ú?òÇ&ç…‰êæ;f ¥Œƒ×ïÉìãt¹­Nb·gùzÀ#d®¬â0ÒÖnµI¼ìàmŠüQR:à;Òp¨ó)žâ{Öw ]sj~Sï‰^‚wÙ·~{c¤£UÈ Íaš-á¼Éì1Û®àÈtÙ¨¿ýdwŸ@;ÄV’—^^✆Ó}W¯¹S ã¶,åçu< Žø2´a!æùN#Ùä¡L„7w_@2ÊÎÈ/Ñ/3¹"¯à#œŽ*˜Eßõá)Gã8r‚2ó80á6õGšy þ[îËI 7~|Ë*wAÍPàÇkÔÉEyµ¤ηëï†Ð¿ûö „£À-ù8=ã>²m‰/ì!ä6–·¸,âÌÒVÖprœíù ßX´òÆùþïò¿{Ýý£Cñ›óFxͲJZ!gT•CvÍg/Ë"ÛõÝýkŸã¼Ô9nòBnæRæðçZ Ã÷4WÛSîøîFÝæßx 2éM»ÏÇ[^ÕÖo»§s[ÚÏÍZ*/ì/ FZd—üv—ÕÞ½öOä»2L†ÚQ6‹<’hŠßÃõ¥³f3üà¬oÖß½n:¢u 0æ§š"Þv¼T“2ENÙj6Šw€w ê¶—ù,Ø×¶“Aò£þ¶Y‚V”åÛ”Ôü/Ö¿J£†áçÿýɨÜÿúý4*ŒÝÙë”ÐõvÊ+÷š€ûþÇ>‡õ=eÕÏínòÄS^/5¡ ë¯MUš¬ÃèVªžz¤/àL†3¹uk§àOµsÓšÐS½žR›f‰*íÜ35i®{g2QÓ`îÿQHW)ÀÓt•Ü5Lý(+ª]Ñë‘@Ò@°£¸×Û” ?Âé“:U®CzEO@8Æ(J0ßÃçBš¹o.šÁ_­!ý£Ï%ÏYsÞì5^ÔI¥®HP­Ts ø†7SLÞDÍDh~:$?F8Õñ›¥ÁÞ›86‹9ðù[)"æÉN§1ÈÛ)1ïF6¹jtîò#‚Ú§›˜¼Ò·þÕjŠ£ªEEaâƒk©©-fì üûð·ëÁ«¥Hbc)—ñê TË~\2(6Ï _𻳨 %EBÚrÂé›qúœSŽÏÍÀùƘí‰èš‰ ìý­žº™ÙDIx8ÿŽc» Þ”¡:PõaÐ¥£8Þ,T™/ƒÓù.˜¾¹kâ>!¦Ìk¥¾;æNUŒµÜèí5<ùâ(ÎðlÐig‘¼2T†Ù×Рœ] ÊxÎ~¤æÉ\ùã§¥ßÿñþàNÇ ~T£_ðýc ¸ƒ‘ÙFñ ´è<lv®=É»¹˜\Çox9òÇe¦8·¤A”À™õME­›‚|ëÁœ d{>B7x¼Ì?¼îdðÃãÍám UN+ä$§ç´ õÖ‚_'1NŸ:í¾©—ÂìF¯\À˜í¼¶ùc…»£Ôå²b½-lû\ÖÚ‰²ÇH(û˜Ûâ˜{ò Þ´²‡Ërwsös­Êž6j)øÑŸý¨7²Ñ¯ðúáåº4'"É$Ùe§AA‹[?ÛÜf“Ú2ÏH2™ ¯ð7ÚZ Çœ¾\¿ºå9OȨ)¬ä¢&€žp{Õ&¶­äˆû,µ]j‡ÛÓ6ž],}íaÉàãG*¤­§\×eµIýÕþƒÕ‘?Þ›¬˜­¨×5xºÄó&?ªÙƒrAÆÚ×öŠíbÅëAýQ¶£­ŽÖ“Xø’Ї]fžùôÕûƒ÷Ôa$éÖpžàtf˜—H3ýí*ÙAÙ/Emv›È;Ò»ÞZoi;ŒýA©&¶ƒT—{¨vN°=l(Ž`¶>íþ«Ÿ”j¦ú²“˜?~/Ÿ_Ô3•Â9ïTÖêwªœïúUuç–sÛ‰ /ªP?¹þn"•_¯0À/|ò~}Êi¬&+¯ÙnŠ˜&þà ú^òןsðÑ•i›)8žÊ›Õr×oÏŽž›‰s˜‡2Ðqzš|Òûô-Íõ9·‚v7 ?ð}gŒ»¿Ô‚@ø±ÏSV÷1×))÷ã¼üÁ}»üh½Ë¥@ŒÈ` øX°ˆ/Ò[´pÄ|ïº/µr^W¯©ÓДÀ¨HÂ;Q1oÇ1ÇHÙÌFRÈ1éoïIJ9Áq@‘ÞPg§åiðºËy’N¶ìuÔÑ üÈÏKಧso´p8ô÷ãMòIn€}í^ìËÝ™ðù4χo¾»~Zÿ†¼¸š_´é åé~T‡´lïS›Þ[YVq i.ЋÉã4êÏägãÏœºßÔ ‹3ñ™ü1 @Ÿo¡í|P&HiÀéÅ-K^ž±md“ò˜[CåÛ ÏÄw/á”\þ«õwó{†«•T ùÃjq;þÝä§dpðE‘ R‘o² l[zÚÐþ"#àðŸJ™ÄÕy¿á휛“òM3ës½Ó˜ýÏ@J÷ýÁ’‘JBñ Œ8'ß™k†=iWØaö¨ g×âÌ”Ðð÷{ÙÝkÞ}x(kR3åóñ6TíõGð£!fé.nöÒGyo½È0Mí¹*»mx4Ò¾³¯dÒM%›Ã·Ô+´Á}¯èœo}¡/ï_H•Í3M¥qÜU/ÿ4›0ÓsPW=8X‹«‰ªªžOçè<´£$]ÆÙ›‰ìyK/‡£Ûݹk éw7¥õÌ Ëybë5:9ær¾휅Y¸ßõ¶W¡²Oé6%?ž›ã¦s°ö¼c.ƒˆ\ÒÂ%Wƒ‡Ô°Ü,ƒü±–rð:Œº±ðöiédïövê@ËëùòÇU#údbÒ-ÐNqX¨Î$T^€v'æõTž6š×:‹úáÊꂺd²ðôSCÚoðýÿ+´8 ”"2u‚\¡`Æ\(Û 0a2\~fCú` ÅR«Xú™9ì2r"#-¥,8‹Ii7è¶•Þëú BþˆÅm@©_©5ÅÆÌMŠüq1~ÌòäÐ-ÌYôÎp¤ °| g (üjB8øì®+[ýwÛ·ÚÆ) ÿ?†ú­@&ýD=þ®^a§©ÉLéÀ£ÍP¡ŒàvðÃÝw"©ü"»¡yŸ¤€ìçh’HÆrŸI\z¿ù£„™ðçwŠBù)üÿ4´©ZÔ ü0йQⵇ$£]gW¡uy$€»pNÌÈ&S¸øÙ™^|·~û§tçEæ,`b#>LϹ£¬@^ˆ$ÀðÞ;¶”7‹ìá¬Ò]vs"$¤yÈcy©o–‡Î·oK‰9I¯èùã,VƒŸÚÌk@£&҆ˉÇû·Maýd³û¶÷Ýÿhï®ëˆzðO{ñ7zš/kô—ó´S )7wCmÂ]¹‘‰Mñ䄳÷¥ˆl”³v¦Me«#üasá[[m#ˤ·ü¯ra.ÊÑhðçzÇ=gëôGÛœRHm*j^Ñe.k¯ÛÐá2Ý^³+ír{ÁÆ´3pôK$­'§8æû\ŒGÑ!“Ì4ø|¼UUíqw|p×Îäf?*Øy6—=VÞB.Zl[ÛˆÞ;`h/ÛÙf’óòŽë9?Î ¼5“>óÃOÃHv¯_uÆè]~x½sìJ©…q²YÖ Õ<±=½m!o.ûOØb6H<ùc’Ñ|êJ58 ¿Ó?÷„Òæ“jØò«ëW©~øô~PŸ|ÈuNUÝUk_:¸ë©é¬wv:¢¨jÏOUóª:z¾±P«·&/Íз®ª¹z£šø&ªÉ­[8EªsœîPÒÕ&豄ò™¦fJíÜ5µ©›YnŠP"j¥‡«b ÌÄzí¥ÃÈÕè eçII×õw[Pêê}4=ÐÊିYoÖI p>A‹àæ¯Á™§…z ‹*Ò = E7ÍYSϽæð1ÏU$•c&2Ý£¼‰êCÕC`Þ줉” ròÌFôê0htð#¨Õ–‡:•@š àÆ:…äñÒUt´ÊËE9Cî{0îŽÀqÝÕé¸9§‹ªešê¼zb¢òBèîàx\znê!3L}®&µ¹*üÙ*‡^Øz΢¿h ¥3ÎÝ@ªeQqµ¿9C¡¹?ò‡»¿b:Ê¥ë8¶º¿¾Ê¹òÿåG]:<|dÐn{ û×fÒíÌQÊÂrrÖü˜záxúQ4žŒVi~„,‘ny(ÜúŠÄ3èoŒÞm„pI‡ÿÇú‰…V`Uw }œ™B)ø0g–d²*¥ }‡8®d?Ò /„ç ÐòÉÈñ©Ö?òÇ6G‘Ç‘Gp“y´ºßáë|’—‰±'$³ko e’ÛÜŸNÚm@ks±{íûç¯9eÐö½’s‚[mpöîqY(õ8¼ ²;mLïkÍÛJÖs6P`;úä-õåõ¾{/Gh =v~Sï…ÞI è5ç¼¾|ŠŒ‘Ö’“«É]ÛÇf¶Weš]ŒÄÕEnÊ « ¸¼y«ˆX‚k˜óŸkU÷ü­¦Qz¨÷mj Ê44¡)&2Ûoöh;YöB³ l[[VÚ /E„BOƒûï‘ÇRs~e}®wéí<RQ'Ê înÓ|Î f›ÊQmÏ£âð#š+sÑ—ñ‘KŽsv´à 2±{ý*áWs/ª¥_˜ø8ûmh'Z¾ˆfÉ›Õ.²yí ÙàÑQÛË>ŸF£uSlI¹+!%  5££fŸy`ú~õþùøâÈø0îç™iÚ;ÅnD¿O“™ÒÔf´I½½¼Û-{ËØ-|É«Ší*Ãå¹;³/@+òóKz£n…ÚÿÌ'ŽZúÕþƒ!U¦½~I^õZåtV€thŸº_ðüîìqv ¼S¡ÔúŸªR5Ðs Ã)¿2¹i¡>ê´T%Õ½üˆdŠê¶?ùüî_àǯ´Îüþ¢æ7³Z¥u¸03y! ÐÝ‚U±¦š¦Š‚G?êA!c¤/?^èÈÇ[ TÇMQ 0­L=6õÂèå:65…{;Ok¡˜¹yhÖãìôâ:(½pÜ\1}LÅ [¸ÔsÆœ1GÜûÖ•¯5vß?ß /Ÿ™a=x4¼Ô›n9?Z«êÿ}z9µhz®Fþ1ŠŠÿH)‘ BsH(ÊiT_E^ g½ßuÅ<ѹ~¸þ•WíW×M ¤¢vàÇF¤™¦!Üp´t øÑ–kòA|ÛxßuÀó4Ÿæ!ß”?ÛÙ9Ь/Ãõ&ä~” Þr%FñâïÝ¡MtWÑÇá•ksdþ«û (ì®´x>~,õÖ­ÌAŠÅ£¡¸š`V–¢¶zYô8Ny)?„ÿ^Ãw}ë·OÆHúƒÊâÌ]Ðâ¼ø®^§-²nrÀAœž¢ SFvCá Èéo_K<9Æ À \g&Oä¼PÀƒŽj|uµäÿ|–8!¡•Ñž‘<mú‹."¼äK ÆZù(g%‹î{ÿ¼€\7cr&Ù…¼”ŸÐðãÛýkýá Üdù˜Òñ_ÜŠ¯Ò#î!ë¤"|O»ÞFõ>·‰½õdòG3ð#?£Ñ|¦ïýó×¾R¿|"™#pøO‘Ê{pk8„ì0šò™wÔ~8!´ óâOši.HTo»EJŠû [%ÏVõvô^ïÒÚ©Û lj!}?¶cD¯Äß)†ñ²~{tµá«õÛß{Òüë÷K¨wªòGM=HGñ=uÈSßÙíœv>:ŽKmü©j^ÕD/0ïA§¦4íÑþÎ •CyÐóL S駯_sFQudô¾÷~3ýÍt¥œë¦:µ3³LyJOƒyÿ¼„¬Êètšõ;†væeÔ‘ê•ÔŽ®í1•($õ5Åô° ËyRè%:¥èpo;¡‚Ù ¥¿ÀÛŽ„Ëoˆé] 0÷Í Ó×” ²…ë=Í%ðã…y ®ÍÍfÁ·¶€O¤|ÐÒ-ùãµླAwœ v+nÙ‹ Sî"e„D‹¢‚ îªòaø#þÝ´n©f•†¿ÿ  Àƒ^+”Z­"¬¤f¨¸zþÀ”Ã?Í?P,jÿ²í ±ä^]»Š¤¸ˆVS^óÉ ìÊnäæ4È5“Rã÷–€kY‘1ÑMÔ¾¢{ësОÖp‘m}÷[º‘@`Îù‰ž‚º£9îÛÿ#;fãdÉBðƒQ Õeù‰/ ææ[¼’÷"„ài`\Oj3Þ–žèÎõïêåwꘂhQÞ ÅÏ%, ßîø=2ÇxÞG’•Z2Ê@.uNo*ÌKx'Fþø~ÿÈp2òn-˜@Yä øñ<ïyIbWÙƒ f>¹Ì}ÙÙ ¥¡÷å¸ͦη«K?t*P+ôuHÎêÛåwié'k¤¿áav‰ì½`Kx €Ù¥=8}°ü˜´ržéîwüx­w‘ðYŒÖf¾ñ&ð£“tåÄrÓƒ;?%Ëlo™ÃÓÑÚ§Ü™c0?àíÜD®Æ­¾ºÿQÑSWMG¢íÂÇ©%RJ#“‰bËm)kJ^™$Çìf›ÚæD^h`SÉa™j­& ¸>Oã·|dªÌQ¾zð”g—sØ·~b/úùã‹CH ûÀ–@‹ºË0{ÓÎGƒ£e ð -¿žÇàÇTÌè¦Ççã-¥:h‹ÜÜc—1'h“ÄòæEÿ·°å­øÛ5v™ígCx¯ CGJÊ+7$¾X~E'1³O™±&ÀløÌÛêˆ~hÚRWx‘ ´É,Dþ˜e'Jy)×fêÛ¢ÞÞÍ6¼7©Ì¼ií@ÛLzJF¥Ÿq¯}”ãw”ôÂjºú²“q•Sµ¢÷>…Ô'•Ï™ïÕUôsUÔwýª¹sÔ9ìÜwîªH?ùþ`HUOw6ÌmãgÂQK}Îé¢ ©+z·!óVçÔM~rÿ¨-ΟTƒ–™tðõÝ(«éhŽ©RÎÓ„*˜ñ&1ÎC#ýýž¡~S“TC°â(¹o<ÔÄ9LÌ¡ˆÚtE¶ÃŸ3q QMLJ=2èrž4z²Žã»Sî‡:›®@ã€r#¡„]À­È8ÌMsÂ4Æýóž£æ°¹`"Ð% ÏéŽ:!tð*òF&>¥ßEŸLO(?‘¿“#ˆŠS‚Ðò¢Pùƒ´›ŒÕ&=#ÍŸè#\ù8ðÓÝ?*ŠoªõÆO×þaþˆ«N¨—&4òG ´kÇ[Ó©ee‡&‡¥®\„Ï£W§Óhi ¼=rRZ¤Z~Qß6G‘§â3hÔ:åB.üˆYXÔÌÖ»x(Wç”ܽ[šP2:d¢P?Z?¶xrèæf+ÎeøN½ïƒcvïÌຠe¤œ’|ž'óf¾~ÌG2ç×Gâ¯ÓÿcýÄ¢NQ““üè.BVMYø0G‚’¬“¾Öc£Èfü)±Œà|üÒ÷äWjä› ¬©Ñ?ö¯=â„AÕÓœŽŸÉ<£¥²Â >À‹DÛë’ѱ»o²É0Ær4Ðn72M ä~ô@}{ÿüƒ“4Ú…ÞË#lÀ'é>7‘9Ò tsóGï›Ý›MVpùC¶p,‹ï=‚|3“obì/ûîù]YAè6ùSSœÅM´‚WÈ|©/5ùO¹dÿ²ùì(ápAÊc1Ò i¡_æMÈJ˸W0_2毞Žj2eE2ñ£Æ\šÛ˜æô‰·Iv{½µOŽÚ6¥-dÚf¶¸œCbx/)‘?*áH>ò5®Á)¾yÿü°g·sŠîcœ Bþp¨Ÿ)ÀѤ®½bðãˆôºÙAv¯ c‡HûAŒ»¯-»ï]‡‡Ò|“Ù|¹ºM5КŠÃ)6£­œÍœ¡=àG%; L»(áí ;Ê.ÛÄ{DºH+»Åþ&w?Üýk`LÝ6×Ì]3æ3?΂î@îzϫ耙$Ïìr»ý¾K¶É[ÄFò¶÷.·^oû†¯Úº¶ªí#­ä6Ôæºí[Õæ=Óÿ‹÷ÏQS¾ÚÙ2øñ£·‡ƒú$UäÄuN:ôÔÿûüÕ¸× Î Gô-¥ÕŒ K|õyïɯçšçæ¥9oRÒ|ýÄi«Š+ ž$3 LfÝÊù¹}Ú'9­ Ã#L48Æþ`ÆŸæ„*íÜ0í©°iWšÚê~ÁªXVMT©ô$¨é^Œ¡|´º²ÎÁOï¡¡´‰bÐDÔ{cšš<ºG0êEÐt:ª‚Ùw ä˜A¯á»ã«þMg¡Ö—IÐ ä®­¦ž úÝÎ]ž 椹 æ>@FXFµà¼ß‚îýJÐ÷ñrºlZ@¥Ñ'R:¥é"rE:×$¤£àÅ;b~HKáa×Ð ŠÄë© -5§tÊ^¦ö¨ó&øÕÜÝŽ\õü.ƒ$T„Ï!; @þ¸„z£@¥u¾g»Ú㟙箟[%Ö{áý¢ðjPc5rV.Ä]ÿÊ·F0ãõExåÚŸÛ£õ  õ^Ú`¢£j`ûŸ/òd?NQ*n Åz µi³ÛŒ2Áq7@n{¦—öéçQh=óðÃ}öª>غ]GüÇú%ÕR¦e§4PÇ>œŽâwSr>Å‘;¶úž¿Ê#O8)þ´˜ÓƒX±¡V‰y/æˆTÝ|ÿ,à:ÇC¡p.3ƒ ƒA…Að½ø!È+ž!/ä„Dµm$9É…ä<}dŽÃ7ÑÖu`ScëÞwû¾D®lKûÈá<<ˆ›ñmºÅCdµtàx2þù“}oóxÿ’[\ZÚÈ:ßbãy2Òh>€>>ðÝú%1ÌxŠ»%àØOÒ^+ á {rMye /’Éö1Ú6DžÊGþíj‚4¶‘"s5æ¦ß<Õ@MÁ8í‡ÑP½_Ê4¢§¼JØ ’[ËF»Ú&²1íd††rS¦Ûp¶€Lç øoÁ¤‚œ…£µÔÏ>ç4Ý‚Ó냔•ü(ε¤¹½a#Ù²[zØGvžjØv»¬°OÅ_fËuN€÷U§"äùjÿ⪅~jª‚]h.ç3qжÞ* n>d—Èv¬ @Û:Ù6¬]$mí)›]ŽK ÿæ®kp óÓßôừ꘾ Fö@¢G+Í*yúÌ’º2FH>ðã™èuwÙ­ioðV[ m&cå mF‚_ˆ‘‰ùÕÿäþyJõ÷×;#«Ø?|{8¨OjõBer:Eôpí§ÜÑuÝSÅ9ã,tÞ;7TøŸÌÏ=EtWs9ï¨IBô§¯ª¦îé}æµNbRéöA:ço?ݜʔ”f˜˜Pún”ÆÔ5‡T-ç˜iHÉL}Cpøuƒ¹þn.5RåÑí‘VS¨ßBÊè{Ãw«^MÝáªÑhó-oh’ë¿‚QÏÑGt j½¿í[7Ð]-.RnGÚýºB×ÈM3‡ÌLSÜä ²…[< ð»~H@—4¦Rk*Mš:Ñð£(Ç€£{Gé¥q÷Ê|oö:‘ƒ¨¸ÂÉNëÁ’t ÄL€ãô7ÙÑÒ°Ìð¸î“²› ‹+}«2ÆCþX£Sýðý÷žýê‚IÉ'¨3~¶¡§Þ˜j”‰¦B+Ü{ôÓ¸ »»÷ ¿ÐÆC>}þƒÂ›ÎÎ@ª%RQõ1sðF*†´â¾u™…’ •ŒYšÈlÖþ<Æw7¼)(Z•Ò~ }?–!䃓LÇ]ø7~ 샣îN)¡èp÷}nj =žÁóù…á¹ha_ð½&¤:Ò?Þ?oå42ÉÑ®´¼>;y $¤dH ñ@ŒÍp¿»%µìæœRT†rn~w‚b „>5ùÇóWŽŽJa¨zj·âž< ‰rè¡ä4Ôë¼~8;Ðîä½\Yü»>P<¾î»v–üBÏÔ·wTBj÷îïvú„öäz¼.±ûünGŽ.Ú96oý«J²žóI ÙÆ!ø9ý…りgÀøuN­oŸ6ÛÀKtšZrQÞB‹x4¸¥4àÚrÍv?"‡ –ñ<^üSä8ŠÞiƒ4U“s›kŸk•ó4SȽ{}ž§9W5…éï• ö²$GFZŒöE³É­öþnSÁ£÷´ÆZ™è{ÿ#€Osv8€OæË~<|Ï_rw E›d>Ñ%)ŸÛ6•%2Ô¶3‘eöØ™%Ãù{l÷ÝNîÈwPu0Í—UÊ˨f::•R[îhªðJIëÍâÒ 9ÐOØ7v­mo_؛ҽù‡Í+gÅ+Ñá<Îã\\5£ÍkÓã3?Þ©‹ÚuR1ç›Ó sD>Ú2vžT–{ÌÈl£yûywXë^¿ÚëãGo!þàÇ#p»r-ñ‹`ívúŸþ¤Rk¿YáUjüü»JÉÔC•i£ºî§?)wuÜ‹žzÎJg¾sÛ¹ª¢üäýóûž,º½¹in™ãFh€¾çtVéÔ½Öˆ‰c2éÖNÐïÒ}ýé墜4¾¼’ÞÔ1ìäs¶™úÔØ´‚+u¨¶î¬Š¿ªþ*·ný[ m.‚|„gÀß¾ÔîñH93L,ºo€rÁ{ÿüN€‘‚Ý'ŽÆB!ö@Íp~ HòÐn³ÁT0A¿3¹Ë³Ü@f EÏ)2OƒcLÉ¡tÛ ô9&fösï–éMÃáǯ¹ W_'/ÚQ…ª¢%ÛàîÛƒm™IÁ ~Ü•n—»Ï¬“ðË àq“p Ìó–¾;7gLäºmðc³'¦.oŽP,¨iE~O÷h UÂÑÆæ5Ü Ü½…óꮞ;7ðc ÍKQgf|úöhÇùð]½rN{Ÿòâ¬çðÚ{ñý‹‘FV°ÇuŸ“µç|ë·»ëïN€cÏ¡¡ú™¸?~hªõûçGœPŽš Â_ Üw LÂ.=Ö#\“¢¡ª[ð§ŠàǤ™Ø|íÍyÁÞ¤¾{ÿü¾S-Z‡3™Ç׉í!w‘uÒ”Ÿp;äÈÞ‹¶”·¼äòò§ìã„ Èp䯩H!îN0;¿[ÿÚ_ÏÇȺ ª5ã²¼l[)S¤±´Eºm'AùÎÈ";Tö³ÛÒø287§y-ú{2ƯæË<-U/Ê…å‡l_[›ôžwII{W2É"$„Õ6–-mÏÚÚ¾•¥¦Ù÷’B–!½Žä|ô¨ ·äKßyN8;éœIwzʼn¨³Ã#‘÷¢Jd®Îöµm'‚¡ìRw5wd÷ýÁä8¹O¡K&·ùò¼Y%ÕJ{àH:ƒ Ý8‹IÁŸ$¢·ªm³Y©lWÚèÁFÖã½#S¥¬`‹Ê*‰$qÁãÔ.šñæŠéö™Ô}Ý´€.5ÅÌ8bJ€­nKM$¸%òÄ–B¥žÞþ6’·8ò‡ò²=íJ"oh#ØpœÇBü‰ÞèÀvYûobªÙ_]ª²ÿðêuPŸ$Ê_¥vN9etýT¹ïñü žìp;7UDõst¼ãɦ{™Wæ!zÚKýõ#§ÚöFo6qÁ¬ºÒOÞ?èÔ¶L†/¯íÊfZ˜c*sÔÏiCïßšêºU°*–STÝеÚWs0‡Ò<Òk¨ÜxXc"¢^“X·F½Dú´NE¡zGi´3-/†‹Šœ»Ó½¶ך„î!S¬1eMÐïælð\2Í0÷誌 >—Ÿ‡£ò1ŠŽTrÁ´þ)Úì„ ¢b§<”¼ ÚwË·mð# 2ŒŽ\ÁΣù4dùˆþ(L«ÀTêG™æçŽú`rðI(oCßõ+åÛ }ZvŽŠÓD(Àcôà´u/4j@] gn:í¬QÅÐÏÍuß[’5ð·QVœôh§F»ÞëÙúÏâ۠Nkœ«˜´ÕD¢™´0Ðç¯2èߌÅà¾\Œ#òCxÔéf·?ÞR (ã]žOƒpx~Z¸{OÓfýL}ϖȉÀœh`XWv×®„~*ćøç’½ÒØn—8rˆ³"…Ìãçfg€ƒ^Åqè·Ü?¿î¼j‘û´mo¨ødºOÝ¡–x)Ï?fA•'Ù“Pä²~8ȼ‡]ý0šªißT|ç”Å9Ý~dá~H47è’ÁV™Î^é 7ÁûÈ–ðÖ–\P†ÉZÐȃ$vékòÞfŒœo÷|®Ó+z‰ÔÛdØI›‘VHéƒüòù#x9׎Tkµ4äÂè—K¼ùc<×åâæË=¿©á—GñEjÎM¹\Fj¹,Uíid·‰²Îö³QmZ¨~u(óvÔµ6ÌÄy :ïçâ\ˆï~µþÕZÏYÇ]sÿÎVx EQp&ïI+{߯¶ýd§ô²ìÛÇîGÕ²Ð^HJ9ZpUGÓv“È|Ye¶jŽ‘—™ê!ÓÖäÈæ‡µ¡½9ì&›Ï^DvY~ì· ì{Ðd¥Œ´ëlM9,¡%2¿#wöËf”íËúíþj£¾ ~üá[³óƒÉb3xãØ)Ò{®ô³lïHï"|GF»šwÚÞ Ò%Oi Ý1ã‘#óòSŒø¥O»ÿêç5ê«÷Ïc«”ÿúýó´ÊO•tv:¥u5m÷JË=O7çœsÍ9ã\P!òýAV%t£èйl›yú€SM•VááÂ3˜&·þÕ ú^òןþàGšcÒÑ(ISÂPuç¦ 2#M(tÝ`ò#‡ê¨Jë¹´ºWÊÑ ŸNW ˆfM¤˜ã MäÊÖ&ŒîŒzIôvi@ñ=Zqx5CGü›ƒÔ…<Žé¥9ŸtÁàÇ}Ï㇋~$㹑 |îzR©8òÇpj,Ý6m‘®™­NP;ŠLuÒ.(Mº ï×}N€2P(¸å8þp´~ÔÛÃ+¡ÝÇÌv]DåúAMQoÕsó rÖPä]<ª~,¢òð¿­h7†no?†Òa÷ýjêAµ)®yZR•H_5W)1xXžÜµó³Qú.3 Ôð–~©_Ãíà”ܘêà{jS$ºjRÑlZ?vzëFæ ¥?J@}o“»jo7J ¿ßé`5¤¦àÇtÞŒ£ŽÈ³‘G¢Íîþç{Y·¢ÓÀdÄèˆË ¡ÏéÙ}Ö{å?ÒJ™-<EÙÏ¥¬LæH4YÄ•y; ^Z´öÑWü8ì9íÜÆ|X÷“LŠS_š{K6{Të,G¤/òLg0i“uì\äÓ’Ú6•ë¾Ý opB‡Lóeuîüª§ÊîË´+ù3‚KzoZ;ÝÖÀY=&Cì%;Ï6±wí)Ù^¶%èSB±A?÷Ƽ;l^˜áŸùñPÔoLSœÝ Âr׆ñÖG j!7d›$²qmoCïi{yi>ß°µlc;T ÏvßLÆÏÆwÉc6>íþ«Ÿtj¼ðUþH¥‚Þ£(ðO  ’8œšº9ò¼{¥å’§‘óyâœPaòùݰªnÐøæüaýÉé©*¨°æšÉlš’ºõO®Ÿ8ÉiAeÁ\ÐÑñÔÂt1 U~ç±iIëÍS‹bQÃ`¾ÿ‘W RMõJâ0tµ.=DÆ^ u i¶À1ŸúÝÃxIš„ÁâG4½W…REå;`Ò:hÓFnÍ…Ã š„ጂn YMÐÏ <õœ0çÌ.</C «SB(Ýi:DUà¨ÎÂQ/ÆCõ mw‚Úmr•ó;¢ßAÅ»àGXŒð&-ÒGxÌÑ€9¹ÔÛÖo„ž7'töîÿ¡ÔK‚²°»FX;œ‡_àÝý— \×—Cî#uýMcáÓ.B¥Üw,âÒí•D%ÔÍSäÙÈ«hòe.JK[Èòa ÐaÍ'8Ûœˆ;`ž·ù"Òuã®ô¾>~lódÕmP- üuI ½oG¥‘Z~á> š3ZQ+øïMPÑ›HSѶ¹à{?ÌúKú•úþþG=§¹)@¿R >}ÎéÛ³wè´­$CÒ*•TŽs&É#C¹ ûS^Î5y˜—œ*ýãþ‡Ò¡@ÛÆTùdHó7’é$¾Ïø•K²YbØvïåÚòºŽó³G®BQ‹qoŒÎgß½ÿ!º)ÎåIvTkÏÀq²XÆq io—بÞs6—7ƒlB~$9[PË­·çj>r~ÿ¦^€^ôq“¨7G"ÜÉ'¡}¿Êbn$·ìP›ÑÞ”µ¶RÂDy-y Wà¶Pç“8G»Á°Ê_í•ÛÓQÛ~´äÑÜÍxÉ}¶®=%U东µm*[ÞúEкö…ä•=³Ñ»WqÄX}õüÕFÏ ç9òjœÃ0R™R™wô‰Úç6¬í+Ëe ½ƒÄ5Íî•æ!œ…fw—;áãˆÿ?’›?>oQÕüÈ€9ÑüøÓ¤=¢¼¿?¥íI`¯ØvòLxï+-mä[ˆÝ';z#L3OL§¯Ö¿:¡Ÿšv8Km1+'š’лÒÎ}ÇËY™a[ÙÇvw•âÍe§ómP¯¼-ÅcýŠ™¯™þãµþ_ì_›ãêË›ùTvüü»J ‘?R;ÛÁbúʈ*áTwç•óÉy~DW~ªZ:•G÷6ò7÷MDZ¦O8CÔZ•Î\2õLL“SWp~nàíNw•VS£h0Õ5éÍF5Æù€ÔxÆÜ5@K«êÁª˜NQõô,h¦KNdà.gB¹"š54º×þ¢ õÖéŒz¡õ!]˜Q > ÅÜêî˜MÅé/¤›KÔ¾þúkPô.ÈÆR{ÍlóÖd‡"ðZdâŠ|c­8TåY‡Órºh8A=ѵÑ)D+¨"”+I+1T0,å3C0CU#;ÌG›AÅwQ)øûmºøß?÷÷(¦ä¼s¨ ¾? EEoÜIÈ' ï} e§¡iî»ÝûÀ«e4 3*¥¹èýóŒÈ7Ÿ»B.ZµGTù#øsŸºRóJpo®ËQ¹³oÿ’Úhùc“©¦s ûFÖÍÍ*ÄC¹Ží&jÔ¥èÅÞP·§PëRô+Üýl¨Ý;ú@sкUÈ^³q§tDçíwõê9åLd¿üÐ÷9œÇ× #/ïGþøE®À㟒Èr”SI:äŒüŠ ðjj¾!+43¿ëÃPZ¡·:P%Þ‚ßγè6 á'Pàó< Þ|§¤³ ¬„Þ;Ò…£AE•„úfç1T˜Â:=¾©Hºyžb"§,äî|‰BC‰Èxζí±Ñ¼Ñ¼a¼ åg—Ʋ‚‹Ã-läÓ<™{¡oÆŸ“÷›z~zúý=&°—Ó.¾(ý¤´´ávòÀö·¹ìuøò r—Ë3ðã/®2Ÿâøí!8þØæË˵<}Õ J‚Üöœj#¥ô71(·hÔ8/ÑÆ}ö/ð(³oÿó_e…L‚îç–ù\†çó;^ËÉ1ò§›/Ï®ÜñÁØpƒg‘Ùm?R*ž‹19.¿/]€zUàPüü¼©wZ‘.9A=m×Ë)‹VU†“>ƒÑ1V“C£/IAIÆ¡7—!G'ÊÅ—uIõ£UæÃ¨cê‚Iˆßì†ã=B©Q¯.•²²û§ÞpGQk~vÒQäwGÏäÆÑíÿ‘A…Ö·ÍUèÌB´n;ò@*BI1CݧÂëú?b³û¶{œ¡DtÉćòŸ „{=ñt-s)`(x’o@]«áï„ã)øóm²0RÒ>èÞ086»ïÜOB:ß»«­sç»z…œê&¸›’·‚ùy?tczi9?à0²LšÚcQ¶sxI!ùWþ„䳚«òð) Õ1߯¥s̉†óÕ€Šñ2ÔXÊ=è9 å—|”çÂÑßðÌ#ìyü¿ù‘?&CCsqd¹Â‹¹4C9‹¿©øÀ©ãË€á9/â®È„O¹»¬“>ü‘ÛÙù6¤÷™ÍâýC¦rUé$»Q%ŽDËfä£Kð"g¾{ð®^‡ñ£®7åù´ˆÏÈ^é.Ý9ø1кïn\·ã¥Oc#É nÈ=ù ðzôh nõÕý’žÚj¨oçùÛ¨Ö‡šÄ”IžHMkl!;í"æ± ½-mY+S­Àáo÷×qt ÀùJÇB_Öž;éÙá§§hu}Š!õ)¦‰‚äÑ>´Õì .­í1ô]{؆¶Ód¼Ý+©m{ÔqW{†ª³h‰ÿÕ©<ª øQü(‡üÑØì£‡rÞF³‹mo㨬A²™iÛÙ÷öT~®-l›Ê I.‰94üÑ@rß¾l}æÇuä'¦#æBkÚLSÌäyv¹Ô‘öžT´lqo_ïQÔ‹kûñ[È–?æÈ]w•j³®¢0H+ÿ“ý£«©_Ý?ðÿƒI?r8{œJº£ŽâPîšØUsÎ%ç¦sF¥U?·»ÉsO"ðã-\÷S‚vhG·WaÔ;(F£L1ýçOîÕÁ© =Xf2ÒDŒ£<¦ŸÙ®â8L/¸›¦Å Aº°*SÝá|ÿ‚O^Gî  7‰úAEÆÑhìTèõ™ú›RzpÐå<œ-:5ü}$¾€L³~ãÃÈÆ³}ë'ö¥Oðºù(&½?™ ßí\îÙæ~0ñÈr|8.w×»D³—àlÜý£nQEðCAQ¶¸Ïº¹þUK§2œ} ôÝ$%T09Åvy1¼àÇèñ"$“dø®B´ÏœÖùxÿã•犺mbàø†àèvP\ Iµ¨(òFnT*?]žýÀ‘hÝ.hÑlŠn¼>Y’B½pÎ"ä㕘ÇkÁí\àyRÔ}ŽYˆ4¯/u8÷_Ú¡RTºk¢Ã;Ÿ tÿÚ$º¨9½_Èí9Ÿ§ŽhQOèë4nħ‡Š#›œ„ob÷Zú"´z5ÆÒüž¿~¡¾0‹S¾§O çò¹¦B¨Ÿ»:à‰£Û™ôÜÜ5Åhš§;¨ê…öÇ™Œ~tøÉëWÝߨ ­0Yhm¢df(òGç&øqÙ¼1(µ¡‚S)¯j£ê©t’ÜÕ «ÒyèÊ4œÃ ˜AaV/„«®‡ÿL4…ƒ™?æë7¡ø)i!ôpåD+ûÒ=jCÄa81=2ÏMWÔjëîsDÌãNº;;ì¤fPáh4­]Nå¡¥w‘uÑ-3ôKIÛœ8ATìíTA«Šúîó܉Z"ý…ˆ”dM™–À=ïc®šúõ£§Œ½êŠò7éñ›}©§ìGXY«0ÚUºr)¾Šj#À—í¾ý£Æ"D7‰u`ïÆT¤qî(£ïzßp¡ùã!ÒB*3UßäþнHܾ½ ˜37Úú&Ð÷#ë6æ%Îå 0ç]§.H]-Ü;åP7/#MÀí‡÷?-šƒãžMÀ„éôA;ÿxÿ£¦SÓTF»rñ (dièF}'1ܶËÒÞ‘œr†cJfY€3@™àÃk!ƒá|Tóû×Þr|®MU‘>6óJîvçwðÇ[ Èd“Ä·+­?Ÿñ½?8Gš#úòG”ä8s¿©øÈiFƒ ?ñÀ¹Hûè<÷]2™ 7/ª7´·°w¢äJÒGŽq!~&¼@²Ù†ü±†}÷þà-=—~D7¨/·†ânä­²üαä­j ØÓ2Ç^ÑfÊ[xû 83-@Kø§èŸæÊçZ%<ÍÔh¤çÞèéšÈ¿š>~4¶ç%»LGþ˜aÃÛØöœmc‹ÊdY®”“% ÒBŽ"§¹8È{óeí¹=žsÎMº3_ƒŒô ðæ]çböMh;ÉBcýíÿGÜ[€Yqlk »ºj­UwMp·ÁÝ!Xpwwwww—àîwwdpwwyïw/ døfÈ»çž/çÀ ³vUuÕ/ÝUk²ƒì.ÞΓÙöšÄ°Ýä'ƒ=z˜ Ý‘Þ4ôþ¼·MU«a-O4Ëi¶U¼Mdø¨«ì㬞ð ô>‡o9å|}ZꢞÇ{ ãÔ¼°–ðY/Md —t±Yà·®Ú¡2’'É3yS•;ðE_†®uè>sís¬ß<•ÕÊu“jãÛâ®%‘kRÞž— 2|ñ—MT%og›þc– g‹ÈV8…©þ£8øø¥éñ9ÞNÏçfÅF̴לŽÒB'Ä“xö<\Q_Ù#Cìn0f{Àz¡ë‡ÙÃ’Ú¶Ûü >ûøcí4qMùÏýͦúiÆ|uß âæ­ãÍ„(½íE9 àÞ–ãnܱ7¤§L´ÁÇ$‚Dì§þtÊ,47í¿º ÿñÉ4ôíå›F»ÍT‰ã`·IcŒT€”±O$·w¢w½jSÛÖ|Á&¶Õàä†ÉMðdzXQ˜?aõ–ð?}ÅWkÕÈ@ü‘î_çoO¤nªLÎ9§¹ªÃ;••ë+:œËN(}UÅÿÁúƒ·=‘tc€Å—L~Ú¬Ãè6*œº¥š"&Ž)¤û;Á×r |UwòÃ,1‰i4Ю”ékv©øÎ ӉΙSÈXO÷ QÄßTW[·¤Ý´÷»<¤4ü7îáe=±ýh½4Å("M5ùô´Ä»çì×™°–#ð=(ý™@°M@âш€¨· õ³Px8†Û¦Eê×îðÌ6{Ná%çƒÔ“…¹õjá?S^€YןÐO´× Ž‘ú;y𛕡|/C[þŸ‡Ü½]šÃÀ]2Íί2®¥_1÷/è¬*×wb¾„ÒrÏŸ»Uo»Ó.ÊL°fòù ðuªB½¹,þ-VùhŒî´| ´£ƒÊßž\=s¶™'” }ú“6CÝçÞOC{àÛ¶Qh³@‡[¨Ã±¹8Ô­î:2Vèí øc©'¶ÎfNµæ×´£U¤Ž´tµ?å„Cpëu/JÏ!·áHhønôZ¿ùÇùŠNMó+fGÞ¬,Î'm %ä³|žã/éd/Hjèúø’ü‘“=@«MÀr—?’S3ï›1<çøÈ¦`ÿe¼—r?zMƒá^áÏ“ä,°:,üÇ%°K!ø‘ˆA® 75ÀC)¡3嫈Šð€G),|Ê NxÂce ¿å¶ˆÙ{ÇÖó·nk9Ç©ÀÃÀ ÁPgÄOœ¯w›<€#†Ùz›êrkÌ… |RÖIgø™trÝŽ·íeÙl[Ëaž'OÅJ?´«7?â0ÒanÆÝÍÓϱjzꩾ«®ð·Àß­ÍG“N®Juû\þ„_XoçØ¶´½lËÙ?¤­¬µo¤¸ìe×›ý,¡¤<83}yÞqØsÖ ÀzØ®,}(‘9Cg¸¬½i£ÚáÒ xÚN°Sð¿‘ìRéeOJÛEX2ƒ©?q'ðÇI“8Ð󫂪‡öRiðGuÚÌCÍZZ ÿQ>ãwûTŒ]j;ÛE¶¶ïM(…Ѷ¡­+»%™Äᨻià©æ\ ó×ÔyýÜÔšt†ïm:Kxï.»R:È9(}álÛQ`”8nŽF>h‹ákœ —Oàëf6X¬Gc¯Ùô²û^ÔjÕ4ÐûüÿúüGTuŠþ®ÓD—ÕÚq£DRÀ¡ô#g‹zá ê Ø÷¯ä*µßúɼ7‘i…>á´W[Unsß43L ½øó·¯s²RF:dJgQUÉœQ‹œˆÀ틆¨…£rºvˆ"º;žëèIPÈóñ{0/å¹ÀÎ$Æ=½q¸óÁä€J¯b®:ÝCï•sYçôíô¹½±Žrû2xœ Ád€¶¿@§¿6ÇÍ 6ئWKÌf£€¥¡9%TecB±i8^—äDPt¹x4…ÆZšNÍp'e078¥ñ/Ë}ÏA;¥¢ª@á_š-¾Üœ °"ŽáïS~ZoþÖu¿{þü¥Çq¸° Ñ¿ˆX n!¥^W嬠AhïR°çBx¹Z”м 2ÿn• nô*¥Àú®¶M¡”_'è%MÄÝx¢/û[pLnApŸ[Û<0hu‚?N{¢è–æ8v4—à'¾}t©'e¾•åûð#¿Q} ÿbÞˆ¿=ËÍñe ˜ ¾¦ßªoó_Õqª›tøYV¾Ìn}Z7¯ÿ4ú÷òkN$[¤ŽÝæ¸Ëi%¶LäßÁ%Ì x çlËLÿ&^ŠbdÜý»kÐÆ~À~÷tôM0Æ\9/û%íaoóIN/gá?bb,Ið$.Ãáñ¢;_ïN¬ÛbîžÁ¬ƒõ|ÎS€Í³9–t³l\¯ò²·˜£°´‘Uœšã£m¡ð‡òE"_Å;¡ÓuºþèÄÝMÛù,–‚2ˆóÊ}ÛÈú :™<ä¡hí3ž‚þöä«àŽÉ<Š“qò@õk«zƪy{Áã6›w2 (—<”|³Â2 <4Õ&²ù¡ï+ÙÒ²B†Ú+ø¤…\™ç0ƒG§G›Ÿãx9Ä^p~ºË ©š  K\üÞö’y2Ê~,¾6[c×HûBÂÛîÀx Æ3·¤&•ùR+®j¯£Qa°G ªÅcLR^#Ê[þ#·Õ6šeïn;Q­]$Kìh[ 1‘„ñŽíIn-Ñ0ô%¢q΂†PC0H]šaü%‚w…Ý-]dz×ÜÆÛß»Ì>DŸÏ²Ÿ- ²HFÊè—f îcÞK7ô— \ÿÿ]qÔ¦@ïÏê *ø}A_IÕ5øSN =Z'÷½Ýð4pžÂ9‚ˆJ)}Ñ÷þcƒëpw©f¤ÔÀU…ÌlúëG@Ïúð­ÉÍuן`x?ŽŽÓf*qÜÝa6êt~kÖ8‘ƒ‰Ø×ÉK˨$¾ö‚w£ú² ÇF[ã2¬”è2´xø#"/ 4ô·Y¥Ëªïílˆ­.¨Ó& .7WÆ¡ðˆWë:3Ÿ̃‚<ƒñ6o¡åøß à¤(ðAíßM­Âé]æ$ú3ÏÝYG@Üá,t8¶™^è%ú”]èæÖˆÒÌ‹®€?¦Óº øc£'ª. 7“ûrôì¶ïäþJÿQƒ_ÃaåÂøùMŽøö_ý…ž»µ?ª"öÊñ~ÓçìN}“ }Ê|Ÿ <; 쟂¿àëàRÏ®? s™¢Àc òûòpŽEuÿñþÜê˜ø’`1ú5˜.So6âÏ«ø/9)ûÄÚ~ö~VDð Ç¿²’=PäÙ¸>ù­ú:â §®/‡LL|æbhüäÇ}å´‡?êd'[÷Š-ím(¹”t–- nsŸÆ§O„GÜ@w¿9?xX/£ç˜±©·‚ƒ^ž˜)¤ Ö5;üqVžÛñÒ‹§É;ùÀM¸wùëÖr#îhÿUmO#5l=Ò—¿¤'·3±(º‘l6@’I[9`·B“'°)¼llY+Km8SVóŸha871§åÈôåüÇqÏç݇"©N¡d 0)¼ïœ_!;@:Jüišíù6i·I4ÛB®s:̯À†ci¹)(£~*Õw£”/;ÛJðG^*‰¼)í>ÛÅÞ…<¿°Ê6³Æ{RšÈt[ßÖ•³GRÀ×§þÐ/gÌC³4Pþ’Kú½iLî9@³ÌNÑÞuv#ÆýœhÄlcËyGxýágRÙá|Îf·uí&^^AÌ8Û´ü–â›ÿFýÁäjªþydÜúÁHþÞ•èð›³Õ© “èK¾ØáÔ0ç´sÖÙèìVÏâË雄×PVêMáÆ@Ñ­£Ÿ0ãnš}æ.[®ë'‡ƒc½”gy1TwwD›Dn]¿\ðõÇ):‚jq3vm6#œàª…ýí”ÿ-‹™}mKŒÑK‰ñû5÷ˆ4”øLšO‹¡Ä/£âÑ\3£ø½ýWZ}R/Mxôo ¹õ«Rª þØJix=8`"â³ð%}Ësñó”ÿÆ1çƒÌ_’R¥Ò;Ì)ôrtàf´¤0D¿ÀL$k>è˾ÌJQ¸\b/`‡Å]Ž‚ÏÉxbëÉæ6%úýn ÀÝ­g”ŒQ“c §%©>ðnÿÍ×ÑÿÕð]nŽäªð<‡uRçÛ“ œª¦F+'/åîPćq'–Q~ÞÇ÷8±l•Òvº$—œRÈ`8Åw”ûó{rcNJÅÍÚoâ…×}õt«ò"Ííx$|ïD¨ã›|˜@›ï¤9ÅG9¯<çæ Ÿù„÷ƒ3ðh*MQœ¯«£‘® »Ãõ…K;Kˆ4ZFq<éÿáõ^·Ñ½)e?W1>þˆ Ÿr‡poøäÉtê›ü×·}ï?ŽÓ+jËÕ¡Žó%™í¾­àjrËö·Yí gkH/—÷òŠÛpnËÇÑú®`ÌÜœÜø}ŽÕÖ3K“÷äÔ†ËsÓˆþR 1ªËFàó izûÀæ±UÑï)ö…d‘)`é•<’ó|­™ý9ÞSÖ÷é5æÔúÄ%07óîjoXkGÉAfÙˆyÐ>–àOr]ZÊއ–â\Ÿ–/6}îoVøÈTÂw~p<×6Ëé–<±Õín›Å¾—‚`7ã]Öx¿4GØá¶œl–Ø"ü’v`&Þ1çÌ«@õ?¢8Wõ(ºJ˜#Kè/Ó[žÚ#v¾´Àoo“pÞÚ–¼-¼c­öþa#ÊuÛÍ6;©-/htïhß»Ómt+È]Šÿé+¦Z§¾<·‰¬~UÁU¤ûÞVÝP¥Nuý'ôXIåžÛ©îœs¶8{œS*âú‹ž7N%sÇÜ6—Ì;Óþ£šÊª®ëE&±qL1ÝÌiúCílìD„6]e~†âuëGµ2ª¤`ªÓxø8tÂ4нC1‹¢ÜÝ+ «5)/„z ¬y¨û‚?–óv™ˆt×t6)õ„àÃy^;3t& ?æ!ÂïЂnn.tsí$m¢dp3;ÌSß$¶…+=#Ì¿ó€b€?j!b ßùÁ TZsøc*݆ïLÏÌæ`ߟwv²Òlh­?ÈEöÄÐäi1ŽÀNï¡]ßc/¤¥Pÿ^'m4Ëuéï>¿ «üÕ XÚê~;e'A¼"p™x7<×t®G³-ë…˜›àÉ~ƒ§y¯Ÿ9AD‹­>8+Í6òòF°ÛF0p~*Fé€aïÑÖôf†>^›“²»³¾œXb:àÛ«=/þ8â]ßøctjýÏùóЃÃ)O&€žOC%}ùgðE0ÔBšE}àÿ BtTÇr¾}3UÝ)a’bƒqzs^>ÿ±–Rój>Çae™T°ë$±œZ'’¡œ•?P"îÁ‰|Ù£QM³ê›x¯œH”ƒšQF°Ç 8š±ð€ýù2¢­çQ Ûá?ú[#Ç8—\òÆã8|‰7ï‹sO‰¿Ù¿{×iqÞäùÀ øÓž _4’Ÿq3ÛXõÀ&ðv”\@Èv°ÑGšÍûyzã•|û›úm—48Îì&ÕáÒ¼^rµì”VÒë¹`‹Z?YiÖÈcñJ ðGGðÇnnÀ+à«›sŸcñ4UƒÁäƒø ¹>¥©Ca¡àÙëàÜî²ËްaíÏö™ílk‰ÇÍl‹É>øipd'àKq šô9Þ Ïqç(¹•eªÒkNKÙMiŽ øÆ&¶½d¡ô²{lWÛØn·;Iæ‚¥>ÉpñHV°ï ®Ê“ SªHŸUuÖn%µô'MáŒæ<Ýë-dw‚ÏîÈ1ij_Ùˆ÷Î>'÷±Ím'Y) % f÷q¬ÇÛf¶9aÖªuZß2µ¡pZ¹gqÍH8¶)v‰4—¹²Tò §I½í½[ì{[Úîàkົö¤T—P^ͨØôùdfwÐËî?z¥Qkÿˆ 2|7ûDpWuQvœúºš¾§ ÊßžºÎ 箳ÉÙþêÄ÷¯ÓžwN³Û`¤o˜Âú±STyÕ=ÆD6÷uN]ÛiðCí,‡õ— ú86j-ŠwpPUsv›zÔÕô5B+ÌŸ!ôùTket h™TÈ:’sKªGuOêJ;)Í4ŠnšFÆèÖ!ˆ^OÖY1«ž`†ÏGÌpÐâ™©ÐøýÐà/Ì8±!È_rij \Ÿ2ÓC`—»Cl(¥öå¿Ú@Ù¡"O‘áôÔ4xb6›?qÓ=¬{ŽúögÅ×]àÄG ‹Y»È=jüÐ(:m3ótUò;1ã©WꌉÄàÓ JAáá‚òÑ ÊË{ÀÄó¹"úK{`e,ÄjÏþøíp:ˆhÉT}МÃx-ƒß•†ŠÂƒœGOP<³JŸó½ÿÈÉÕ°ÖÛÁ+$ [&¸iHùK"éJæ,%ã\h~Á—¯3¥ºµàøÀÌŒTz0ô!Øs-€;i‘)‰;Õ‰öMŸë;MRÌŽ4<ú>/»y5—Ðoà«F&Èïv‚D–SàÂÒóðŠÃ]€åy?1ÅþQ0üG.ÜÍb¾ÝRãÁ·i,ÐòïàpK[Ͼ‚^®,×¹Ø#>i Ô}n ßòª'p¼ðº.z·—bqAžÉø ùs `éxþÀõl/{Åž°©½=e'ג޾úƒÑà¤vq?îÀûi tŠã?F·ïÒ-ÄùøÚ6[¦KCÄÙå¢í`³Û£ò®y¼TÞJX©´o?³ ¿Ÿ_Üü«¼§®;Ñ®¨)ø¼–iAñÀ¹¬¿¤’þ² úDRU[Ú r@æ[²a¹0ãOp`M8-êý9ÞnÏQçÝ€î@Žu1­ù¨Ô·çl,Û÷¢«]÷ÐÚž²ÚŽ“IöŠÜó=†+Ç7¸ ÷¢9æ—@;ª³«Ö:1îgK*G8ºiÀÉmhol;Ñæ¶7äŒÌ¶¯íôù½ meسl’Ÿ$#‡á3ԟΙ]æ¡™ú™?Þª›ú•)ã«&ÓˆbÓn‰à-cgI-Ù-yÁCemø£v½dçò.Û÷§´¬¬ƒÎ‰ ÿÆü7êG%Tev§Òþëó1Õ5UÂ9àTÕíõ'åfÇ]ë©ês;Gê'¨¤ß¿.{¼º˜¹`\¯÷ÈtÖ7œ:ʪ[zœd8S^ÏûAþ¨å$¥´Ù$ 6T™rš†f7Øî¢iE‹ÌbS xßQw QÄLª›J¯@),ñ½Wv÷ïÖ]ÓC€þû s·™ÌtÏŒ0quïàÃy•öáëA®Ì×°&úaM¡=¾zÐù)šyì•?1± ¯÷™èÏ.܇mø­œT,tšú<ÔØý„g?“³›W¨Ÿïüù}x‚ 4?Èü%o2æ²µªq(¾­ïzÀÔÀë~@Ïwˆ\Ÿo»§ù41Ÿ¤e¸;á@›ÑUíuBÿÔ2ÉЮä¼нð¹zü~û*Ç’‰nŽ[‰!'9®d•Àðwô3ÚZ”ÇðdöP3ã›x üì»5\źG‹8†(Ùßà/»$øãØ­ ÔýpŽÍ¿KO€A‹sgšLïÕ×áß:u0ºû0VI¸;Xö"]á²Y–ñ+neÇÏŸëËVðÇ`9gäf²?‹.ÝG«¿©ŸðR¥wôŠSw® 5°‰¢Mmd ç“{¶“ÍoÏÈC;Lfò,ù Ñ×ZÜþi\ÆjnÇ%í¿úÓÓB _1·Á]Ø­$},d/I#/ÇìbÁ¦·Q¼ål:Y!s,Û¨² ¾g>+¹’›™†}ŽwÊsιŠyñ7ô},)GÏô;zÆIÁÅíx™&ì^x·žv7üÍDe÷I[E^ByŒçû¸wcà Rš/õãó©ö¾ý»µ©úY àÌÿä¿jnßÃÀèM·“l,oF`µme;À‹%•Ÿàׯúò4çÍÚÏüqUÔ/M5¬±:®3ÓDyWØ-àž»àÚz¸¯ ¼½¼·ìIû›íÌ'lUÛÎÀOßAe½1«Àcyù Å0?¶CéÿæJ®f©/u÷¢bíÿÛúçñÔy•Õ9åÔÖ…ô]åî®5ª§sÑùäœvŽ*ýƒû¯¢ªèºya˜k晪/9ÕhÏl25ŒcééßÖ_æšêdßlrIP“ÕœV“œ×¦:]1×M}ºl*†0ÿUJÕOUÖ=€3€}- ¸’òp*C¡Í4škDÏ¡%î»OÈœ.!ˆ÷ÚÙ£aV…‚7pŸÚ¤áÍ”ŽafühèúƒP¾ºc^2ÁU›u«*m2‡¡²sâ!R#Dú•FÑiðG9`iq*……‚œK—ÌÂ`Ÿ_]vš¡MÂ_]Áï¤Z&+ŽÊ^ŽÎWL‰Q^f9eVëúßÍ_òÚƉ­´Æ‚6PbŠ‚¹_ÂWÁñ2µ¥%@€«àa¸Gkè"˜©½[µÃÜv‚ÊÌ]ÅÖ[ÍUŠ–lƒ¶ ñåß͉ñòÂÁýj¢™Û@ öœ[‘뛟˜ônÆÜ ù#üÇs´äÿÍŸx#WƒzânŒ€:~ v¯G ø ôòQö‡W<ˆöÏöÕ°mNuÒÔQiî”T¥Ì¼ž'@ïÇŸçQ!>Š#à K%Žàäÿóüê=åç¿€¼x4Ç¥šfõ7ñ~bÅÆ•â9<ÓNPO¾ÃOy/ûØ*;Äúñ-Î ¯yÜBq~|žNšJ)ò7çýbiבí¦ÈœûƒA®Òeî)óe;‡—Jv”ÕÞÃ6™7¹øs1(þíÅ„èû-DÂO¡¶“ÿážž l¼ WÔž;ÃMm…ÏX!e3–K¶¯u½Ã[ñFÈGyÅ=0Êýø™ Ç’Öû«™§@ñy0?¢vÜ”G˜zT^nK1{ ü±HÖØ¿l|wG—Í`KÉJ™eoK4YÊUyk0ÞžOzÿqÓsÉyîËÕ›" Ö§&>Ä•ìC[Øö“îÒÛ^{ ·{g©´´ç%¦­þÈÏSØ÷¦#­6‰Ì—ýk?«šZa¶µ jàð¶fm•³¶=l›ÂÁ„³GÀ¿“mWÁ»­ˆ?u…“H-iXñÌýëæmÒgþø öë¦.îRc¬…±f£¼Cއº)ç¤¼Ñ ÛܻӯñF¶Oø ­m³Ù9ÒDž/>™9˜ý1 g^üWò'fTsT×@ûwU?VWüËY]\uªéQú•︿§¢sÃ9éÖ@Wa?®{Þ;5Ís|Ý3©›Öº®Ê¥nè]p’¡LQÝÖwB1äW'%ýAá F@‡2ãÌqUÚ9mÚÒ]xœjÀûúºmˆ"þªú«º­†î®L «Ùy2µ¦}z8bûõÞ™BôÑL€ÿ|8(Áåº$ù{8w/Ó,òõ‡@ËõÆw‰Á@¾WðÁàYc¶CYñix ðÞ=í1ŒÎÀE#9C¯ñ)Ìxø§(P‘ƒ‰xÈ©‹>•AOoÑ1pGúâÐ5¸›@‰»hï|¸ñŸUœÎ›KúÏï>¿Š¤®(¢Ä|¨;ÄW©Ñ‹xåÒ™à‹rÑTh½øþPü|;à ê&6õ© ¢ÅVqõ&ókg \Ê^pd1*LÉá’\¯U×ü¥¯{pfn‰ÖwrÏ’Ó“¿)Èý»ï²æ5øb×€¸ë;½Ê 1Á¼ ¨:ç-àÓdyz¾üÑÓ=¤ß©Hßô¹ŠS^· eä…` ÐìÕñIyŸæ9±}U) ðZžÅK¹«.|nf×?Y'ªçø¼/É´8¿ãë<Š«@Ýô§OªÏWÃêºP(.׿ou†®ðçÖ²@ú¢u)ì<ûÆ>·i½år„Ó‘6âó&€½ü ¶~“÷ „¾ŒY2ã·Ž–òz™+Õe§•å`6÷ÍÀ:ø‡+<L÷ÑÇ=ÀG×Á[ð§*ò·—öÔTm)=wãÃàI\ÍD H µì É)¥µk‚AžÙ^¶¨ŒŸÜ”l²œ‹Á&”GP!å9j üí§<›œ»tÝ—¯Že0}ÒtšóØOÖkGËl)mÙ‰vüÇK™¼)ñà”âJfpõ.‹ñÛeÒ™/ã—F5ÖD•ðUšð³‘VɛŵY­Ø¤p!Ÿì6[Ç>µÒWVØ ¶•“’óêðáŠYn˜¾Þ\ÕŒû<¬:Fv¢é!Q¼Kí*i,£e ²¡ìM;À;|—Õ.äk¶-¾fJey޵rþ£>4áyrþ+õ?Ò«éêK­0àï©Çà®°êŽJç8•t'ýÔ÷ü꬧¶sìqÅ9¤’ü`ýÚžWN=óÉ0½4)¨·vt UF=ÒÛMnó“)¦:!{[ñ¿W3'´é“ªq(¥1-ÌZUËqß#¿1šÚQ}Ý3DÓ¨v*–îInw½»ƒt¼ça=jü<Ð9f–óà—íß £Wëâ4îßÏ·—é=æùoXÛà“ƒu[ÂÓk#TÑÄ ¶…o<+ÍóŽÿ6°o3]Úä)èd~£>4†B™îÆOåwö˜¸_1¨ U !¤TÍë&´_îÎP÷ |ªC'uwàÉ! jÄ‹A}LüåO| ÿQŒºQx~ìœ-±‡R§ÓEø†;ð 9ég`ý+ÓÐoü=“Ì“”²Ñ¬@7âŠå{Z´ r `wX^×;ì÷ø#I0·9Y€{eÐÓkèiF´+)%7½Ç/èšñÜ ŠÂ«( 2‡uYõ½;Y=TŠ¢ó>ôkø,#P3*B“ÐÒ-”Ž:pøÝXå½ ÕÀ7¦rËh½'ˆhñq6÷,ßAèʃˆ˜ÊRfðÃx;z¾ÞÂÀý©¸55ÀJoÿñž`8m‚?¶zž8ÅÌYŒþ0àŸ`œzâÓ{€ír#~1HM¹øî6p\žŽ^wÇt¢FôV¿Ußî¿*áünbBŸ¦:ç"|*q!¥ãUÀ̰ÒOJÚe’Zü8ޤ”q\œ_Q< ÌGÅ͸oâ…b%À§•âÅPäA±Ü§‘Pïçà †Ê (Ùþö90¾øc<'à_ù3g7ÛqhçëŒZFWÆJØ‹»‘ŸgpŒûqn/3á>p-ÛϾµl!oKYÍ•¤«\„‹Å‹ø,ݾ…søçÏÓ[`ôcjü^Gsx®¬•ÖÒ‡ãùvœæ‚? U?gÈk‰ ]¹&wâG¼ž›óJÜ¥BæúçX5=åU7ú®ä&Ô0%àöK){[ È0Yi‡ÛÈ6=8®¡ýEîÊûF²Êz.Å+8”Ü‚ÿ¨Ào̬ÏñŽ{v;Wé´}zΊbšæœX†Ø÷¶’ ¥ˆíaýlh;ߟ+imwy‹»1•ïçæÐ Ë|A‡èª«MâžÎÑÌ#Š ¿ö‹Ýh[Zk•]eÚ¶} &ê,£áDjËrÜíL¸Ë¡ /wä°Ïü ®éûðµ rÆC%ŒÄÞ±v†Ô“7#WNkøã‰Ml{ðS[ÏŽ³Ioy ÕtÇÌG;²‚™B™ VÉúJ¥ªliUÖ7¢òS9œNC=ìêŸïôTwìt.;ûõDz{õ(]Ö¼‚’~bâQMÍ:ŸŠ¥nêE&‰‰jŠèßèŸà® Nr(Ü&-°«iÓÀ¨JÎIÓœ.˜¦2}4êŽ!Š˜WuVÑtuàÔ2øŠnVîÙ¬@ãî§ÞðágšÔ!:þÑÙ¤s MÆ— d6Vàn G0Òê•ùºÞ‹yòÈÔ Á󫇞9æ´ MY¢ ¡Ì+SUðÇ0(ÆÅÐÖ±ù0°o=4î©qK+´ÁDÜꔇnsó_…?Ê@]ÀŽi¡4Ÿã¿ûì_€qØEþXï€Ù¯ ¨B߉Z=R7MB>8#•\Ô±'Pn8¥T—sC÷ïÆöÂgîê5qëAk>D´Èêƒ³ÃøSFô²>äËå$º îù¤GémÐáu85W ë„X¡èœ‰Fƒ¬_»ÝóÜÉg.@ å†>þp3O¢ÄÀâʾ÷é–þäkð;}ç?–@'ŒDÔÞàúÊ?ž_UsªÃë” î@+ ðüÛÙ”—Ý÷ 1e¶T´ky—8¦ä—i\”ݧ“¹0ðy§¦ßíý¯P:%ÃèçËL‡zŸDi?ã“üŠÞ ÎN²ï «KÈp`,8†·ø[o÷<ü§ã|]ÑPt3jM—Èr>ž…ûÓ5î!«¤?§’ªv¢}E×ÛONq}i’þh'ØjO—ZC;œŠ_Å»ª§Ð-´é µãjp“Ëx…L—Òœÿ”»à£ ö„Ì·§áˆ–Ëy ƪÉ}Ñö<›rÑ@ç+xšª¾ 7©×ç*Pyéä†ÔÆï§!²Ä޵/$¶}j;ÛÒ²YÖØRΦ œY$|BA®ÅÌÈÏñÜ÷çw ÄÖ¸s@ªSY“€;‚5>Ùà‰2ЂGèl ÎLfOglj¼ŸÃîÛøÉtĤ2_ò}¥WƒuDÌŽºP7C¹²IÆûåž-k·ëïH~_ö°e¶…}dÏÁÑM²m}Ù!iäWŽÀÇh47£°Fûæ³ê’~lZa7Áº˜efË ÛÑN“’ðZ›%À°ïloï{žËŸOÙev½„Ÿ¹;ן™ÙÐF¹ù E6?¦Ðÿo®„p_ö FP¿þkþˆ Îƒ?.;mtwÁçzZ:·œ‹Î焊«~ì霿çü‡COÌM‡fè—NK•R‘YkŠ™Ø¦Œîç”û¡vrRQ&Zo~Á:JùL#³[•u™®ôÜ<Àüdj¡Û„(bÕ\ÅÔõh|5úš+3¹]×óñ77àS ºI¢Còþ\ëɺ<œK4øŽÍÐÝx?P°9Zy 8úŽâpFŠDWÍmS<ïÏý<›ÍvØã°ûÄw ¼[íã0ýÁYø Eâ5ôÞŒþ…¦µÁæ¿ÚèÔ‚Ê© rŽû|Q.wO-\Q$þDo ©Gc]n+-£ß)ÀÓyTñïÄ|íy¡>˜t| «¤¹UNb@ã—GKÊò´t,ú Tb_h´MÀ¶q¾ýWŸô» Ÿ_yT}È\£T¼+ï ¦Üà —?Âñyúͬ×x.4nr.ïË´Ý•¢Ñ5Q×Á;<ïœüæ6ð~§»®¸­3øc&Ôl~N ©ßç¿ù2»'WÑJðÞ8ü›Þä¯_¨pßô¹¶ÓÒ$ƒJÁ»ygóU‚\Ayàr"hÞà0ò„ÓK)qëÛ¾Å'ÏæŠ<~" U7Ó¾‰[ÿ ÿÔh=f¿:ïqt£á?®›œ´B§Õ½UÆ\2ELL“O/s üP;+;¿Q%úÛd…®ßA…ÌsL5rî˜!tß¼7¸•TC˜?±€ê®’ëN¾ÌO¡šïSNž¤Ù§'“/Ò pG°Ò`“)Dç?Âéåº0Z®%Í¥|PÏáG†™Â܃®ŽL}ùÛƒ?›³Ï³Î0á„ãñ ñLʺˆ^—çÄÀçlðÍBZNáiƒóK07€?ÖSh£‹tŽ…³S_öDÍ1€¤+ÁOká»"ñ"`ý!³Kÿ¦Š|'&«k*ù¯.ÔIðZh§Ò` t|}^ã;¾ ­>ó,¹§WŠ“Gû-œRz£¹‰xàvaSâ_§ÿ0£úfµ&™Áí|mំ¸»T袉OShoϯ^:¥ÁFi}ï;4Ÿ³¡>`áÜ ë>g£ú|úû ?¡‡´:d8záf†¬ÉùöùÕN-“þô îH.ä{>[ÈW9ž/«Å2ùIör‰'#8= Ø<ŒÝšK}•ÿ±ÿ*‚ŽI‰àÌŠñß!t‡F@¿ß£ €ÿØ*¡mû˜OqJ9…“ð[>ÊS¸÷ƒSŠèŒú*â]§=Fy/Eåbàv¼—ð@¸˜¿àJØñ6œ÷½Mìíü/)õd›[ÊÍ\fš ÜD~NÁ¯âÒ3}þã 5Äøm¥Y¼M¦Ikéʱä’fKÀ,°Kżò@žr.À}Ðú}Ü–—ñ›™/9ú {j©Éãv™šÃuÅ]‹ O$—}(9s§csÛ$ö›×WÊRklÙÀ¥àdÂÉ0biöÒ¨Ïñ¶z8nõ³Ý@Z¯Ô£ðk93 ÿ‘Ð6G2€ùp=îEGMÓ"Ðó«î:5¸¼ \ùîe&Ðx¹kÓØ ¶¬ m­]bÚÕ¶7Æð"8`®­e›ÈjÉ&ñø%tÜLßûSöïÞóÕÿ¨ç«r¶<²§ìvi*ãÁÁ#mv×ÛĻӊ7—Çgm[ÛÊ.yCëè©™…™„_SLóc>þo®$jK çW±Uõë¿~~å¯J:7œ®ºþÙ÷ví øã9‰ûþ#¡ú±ÝÇ=/œ’æ¡y þÈHsõOºž*¯Þés¦ø£‚î÷ƒù¯Ê:‘(m2™¨;Öq!3ÝìTÁ}è#>£,½5u‡E,¬Z«ˆº;òúÈtì? vL†Áüp ÃÐ8“&Dï?>9cô¯Pßa¡ÚVÝ ó* l‚£ê½$Ëéá?îš»p^l {–˜Ý&:œÂŠ Lï4NÝu33§àkðkéqß`Ç¢¾ÎïÁD\â4£ÍhOY8«S@è®”²€K~N¯è:ÍÁ8¬ÚGá•p&›Ía]BüNÌèê¹ïüàEŸÃ8A áúº@£Oœ¢ü4˜ ó|ÚDêvÛOÓ1¾ î=Afö‰ÿ±ˆŸ˜w¹uÀ·¿úN¬ïºo§lf¥>4®>w‚“è­8‡º¹ÿj­çSÖ\£4¾ü‰Š/Q-°fWðâd ÛK܇4TØ?š7³»ûl…oßprsÃßÐU˜oúœß©jr ý©ùo´¢4ïƒëó9 ’²v‡°œçH’^FñÞÓ¯ð9éü£8*•6s¿‰EG»jBî3þQÀ573Úh¨cÞÊ‹e‹l(¶±½Ç¸<ãþœ1?ñîåË¿;…¢:_W·yæT§Á´ýË ÞjÌ'é¯MãÇÜÒu÷žÚôÞβ’KI ~f¨‘õ|‚§"b´È‘ovîÓ) ”ÏMjÌ [ÖóY$ídg“›¶+ú¢Ü°ódoD’n\”Ë€ÿØÎµ¸T ý»E<õÕ@J'vœ]k›Šô“Ü”‚À÷?|õ£æØP6§ýÉÛÕf—“²ÞF±™e——f³\Ž›rZü9Þf¿ó„î‚-;Ñ'ÎHotVv$‡½g‹ÙY2SêØCv”moØ÷@å.ö°Dµå=g‡÷y~CgMÎ@OÓªÞ:´A ªMs9ŸÙMwå£gÚnð{¥œ5Þ¿áhîÙ›ÒKzÚz¶6îOJ‰Ï¡Ñ£étÝT3GÍÜÏüqJÝÑOLm*NZM[à?´w›Ý¦¼7ÓÄÆ²¼=¼`›Ð®`å­dýí\i+ÏÀˆ c^=ü7ÞŸÇQ+Õ—Ê2±Tú½7”:ªŠ:œÆºº~ê«!tÊÓÒyì\rÖ;‡T|õcÙYžy®;9Ì |ù™·¦¢þä”QyTh³Ù¤0SJwuBö¶â¯ÊNhJLÛMbª ¯ÏÔ2'TS碩Ì;ˆï7õB˜÷UCÅÖ5 ¡Ç`•ÂZJÅ}À#uo„9Ú„üM8 tGJw A¼[ÎX]ˆéf¿žÙ‘S^êLÍèÖý5:Mééµ¹fΙ|&nö_õ3s¡× !^4`z ê þC‡0×ò@EîºN‡jé -{Ù v‚«6ÃÉ‹V§òt”Žï[Ãe$…ö½_ô msó@-“>q÷øÐ³P×R¥¾3‚ú ž˜ì†èŒÏGИ¿ Zs o0ô÷IÚŠ±hêËéÛ<‡B›—Α ¢ý®>:[Í98„yø—›ð[€åYѦhQ3UŸ‚Z®ÎY¹&Zß ’Œ.˜HøÓ¨ ÷ï²ÎmnQ2îÈáÎ"¦{ö2*Ϻº•¦sS>äÞÆ7èøc&Ø£+˜«=Ôaÿq~°ŒSÝÄ@ŒL¼n!?oB´ð–+ø‡‘Q’Ïþ% ä[I#Ã9#§ê§àæøüTÔ,þ&^.™r¢=e€à3 Ìâôãç`ˆ- Úw…;KÝ •ì{É®·ù¼ùä W’úrŒ#qx^‰Oë1uë×ns²}︆¹€Vµâ|œÆÕ6H™ÀIåía3Ø3rÞv”“H8©·Ðí2¬¬ç²œ?PõîÆžj¥—^@ð(S¾á’³ç¥€t—mÐöío6¼·šÍ*d«}-qÀ%y5‡—ëèMq0_òïî÷uÎBëlu³ÔqI¬Ô0|{YådKimÙ.v€=moË@éjOË'|Š‚ÿ˜À×à“:#Ò˜…Ÿû›R Ó±ÀÁèqU3šÈu[þ%«},»ÐNAÄvö£]#}¤£ÝhÛÉnÜíŸù]F\5ÝÍÍ@ϯž«»ú¥i ½Rêg–iÿq£Œ“W²ßV²½­½‹í#Ížàó¶—]lûK9¹ ÕôÀ,ÀÌŠåædû¯ìßM Ê_QÅù×ü!ê˜*å\tjëú¹oÿÕ6OC犳ÇÙâìV?«{:wÞsÉÉb˜+æ¼y`Êë—N%MÝÓM4£LnÝë›õÜUÄy`RÃD÷å˜Ii›s¾ýWuéo³ÀD¥#¦’®¢ˆÉU'õÔI½;¸T8ø¢štF7…¦ßC¥i§ ûÚÞ„ÓýCï˜3Tg‚EÅã):Üq°Ps:Åz³>.½3gÌiS5õÏ÷y*š%&&°æ9yx5в/%‚Ù úö Vù ´®9Ôç³ Øóç$4¸\ Î{3~+ÊTùœ¿ãMͤô´ÚŒÖå¾ûþ<¼zªÖ˜Op“ö[)ŧ6ÁÅT‚Ý=gCø¾d9 ú¾ýLáà?î;Wƒˆ–X=vfBûÅbWWnÅýÈFP>:@šQ³Do„RoÅ?qKàFWÄLL§ ê˜ øã–ç¶“Ñ“uç:íhC à“âÃ=´âøü¼Y”/ÿ—²›çiø­?8©"뺎àÄü¦ÏõœbàšÐs¹'°ò5×f{œáÐ2D Ù ’ þ#Ф–þà8â˜à´\—[p(øã%ßÄ# üØ“ Ïúã¿ ¸ýøßŸM’­rHÓÍF‘3œS.yÝóâgy Ø(Aï:_ïNÿèTÆ8o$â|à·ö|š¸³L—Ùü”+ØFöÔt|ï¹À%Ä­ø+‡wná.ð 'hý¦þÎ=€ÂózD}¸ŸL–¿¤™L·lnë/síyÎãä™D“Ž@ûþàˆ8ŠÛpö@ϯÊyš«A`òApÕ¹·0}(º–Âö‚ä—¦²ÑŽ’&²|•a÷ÈDÉ”¥ü'/ÃØž„Û«Ê̼Ïñ6y8~t‹öá~Þ;·5•x˜/âϸ K¤ƒÝ·ÐÆ·ÿªŒµ×%¬&a¥$œÙcx÷w¢@!“«¶pƒîù™^TŠcš üH^Útv-`•}&ìEß^Þ»ˆÔNfØÑ¾ü‰9$tÉešF·Ìh³Ë,ÿÌ'}õk=º›BÑ yg;ØUò§,”2Ú¦²¼àh®ƒ3³â­†›ë,áàj?ùò·'åk×¹Ëä?|¥TsÔòÏ#ãæ¿ nGç÷.V'U^çŒSC·Ô”ûþc»ç¸ÕÎVg+üǽÿØ \ÍÔ¼j.˜÷à‹Ðº²J¢öë~†MX“UïþÁóç¹&=6°¤%%2­ÍqÕÄÙkªÓb3ÓD¤“¦Œn¢ˆ©T (ß4ÈYŽ õãs/¨h?ÝZ³‹ægxn&Lˆøã´3Wç€*¹õ6Í­Èë|ï©ÛÑ)üí ¾›”"Ñ}ãoJ‡àýù^O+³Ì„*vÏ. ¢$4üà“2SN×L§»f~òÌÌq‚Ûm7Ú)†UWsô´QRêNéè¸Wô–BA—/’Σå`—n––šÙ:çwßÄTÔ~ø«hÓ_õøÈ¸…hœÑj|Ât¬ûðC€ËCi)Õ_…¥»ú¡s"ˆh¿(Ò‹ÍJÈÛ©>í¤”ŸJ ß;ñƒø­¿õnžÌí8W¦X™M)!5ŸL{ó¼u šS”lÑ q ãÓ Ü›”'r/ÅÛ(%Uå{¾úƒþPÙ§|ª-ÔHy:¤_A}¯¬SÔ¤Â\HÎ ¹¯ïü`UZIYöÇÁ]%»'±á"ÈïðÙù|T3ðG ªCùþñü*Œþ ³¢ÌL°ÃžJþ4‡CÉ ÞÀ#à?VÉS(ݼŸÿ»@Þððš.:÷?ôöÿûUÄ÷NU_–J‚ÿ@‡¸+Pn&·ð¿WVåæÜlR@«ö§¼¦¿¹êÔU·Lô擇n™ººS¸"fpZ9A*=ÆÁ, GMèù <jä‚î÷p 8uÇ䣦³É¨‡…#Þ5S»ûº4Ä  R _F}è&*È}îþØ\6 ±ÿ㘧‘Ùa,tøkßJÝ?¡ËSÓx°ÐaªH?ðlz†Q7ÚeúŸ_ Q…ÀÕ¡ì]ÿŸ˜SÞ&2{96'ª¬Âw§Á3¼ƒºNHÓÍl]Îù§ÌdñÁ›Í·P•Ó ¤Àɤƿ-À@¥ XÑVðÇ̉žà»ñÐÆîÞôxôD[ý(Œh ­gñãðúì8 Ìö3ƒLÊ)› ÔÁ@¦!œ•ÛÁŒ Öà#p†]QÊÏ£õÜQùMüB[nêË_Òó²/¥€¦ÉqáGòP¾ D>Í÷὎¢÷‡A:¢¿¯êWŸÍšª´J+ŠÆ D]~\îö-)’Œ|v‘¤“N,iegÇ¿Ã}ÒBÝûqÊüÙó«˜ú[øµá” ÖûA_ßF’ç`Œ^²OæÉubß@/—‚à8œè|Þ—“q Z4A¨÷碡/ÏPDü^O0× ë$Ù ‡ø—¶CU;l)5GSãn<}µ–ûVÈ|¼.ë mr™j€ Ò|¾,þÒIvr!9k»‚?.÷;Ë}ž.¬#ƒàRÚƒáö‚»Vs.ûÉùçµ<5ÞЃùåÆ@èæôêW 1êºÉN{T°€ÿ áK¶ÙRRøÎŒ)Ç0бCó_íõìT'Ð^n¦ÚóÜ€Ò˜¬ÜníšMl'ÈFéiÏÙ¾v¾F¶‰Ÿ½'ñm/‰/ùy.Ú° £fàoG³8½tlŒÖP+¹yOWÅãíi·Ù6ªÍe§Á¬꿱Wej½Æv•E’I2ò7|3ü’idN˜>!üqÌ—·°¤`‰ñ“û¶·]%­eº¬•½ˆxÞöö6«äµÛø¤e§€IÛI 4X€™ÊÉïIÌÇßÿÿ]Á“BZ&º“ÁùrŽ×°/Ç9âQT[Ý[{|Ù{Z+ÖûT°Úí¤w–|U´ýà批mΙ¸ÔN'Óu‚NDsÊ”7‰M =é+ó'æT±}ùÝ ä(­lö8µÔ¨Ñ«Ðë…è©Nÿ‘©ãDÒh6Ø¢U†#ÍÍu[ô_øÎ!hÒݦ8\h/“H·G¼{jš®O“ý¡äÇQÌšÂ@}÷ ÷Pß©ã¥Á§Á¥%L´/–ð g¶™iƒÜ5§+0"'S:èýKÀÕºÀ§“(mẆ.4‡Þ›iêK'ŠLQµh5U2ßÅ£FÀôBô ìô–bñk¨ý54m™Žö›5:ïÙeX—×¹ê™àÉ)PÒGà<5ªÓ*Êý݉öaæ?FÄþä¾³?7WŠ’ߪcaD‹ê”d¶‡x% ÿŸ*ø÷žÉe~ ©ob§«~mj‚~¡þ<Ë\¢kò·–½bKÚè–ì D>m{Ø÷¨ópYj×Ú¶`æLˆçÖŒYò‹¹hF…ðÇi社oÚb$u†GšmFIï,{N:ÈLÙ"l6×;л|WÞNç ø™å(gg¹K› GÃ]ç€ÿˆõ_90øããZs¯“ö_ïŒëìqŠª›ª£þC¿õ=Ã8ài¥žªkð»œHÎÁ/‡øä:湫ʚæÜAtúEÇÐ œ¼Ž1KLYÛTÐÛ¾2ÿÕê±ù‘vwÝ]/JgþðñG ù^˜S#¤•n®ˆ_øº>4ÝRjH%ÀyÕ¦íz84ðš GSþc¨I¨»…#ÞC5^ׄ* ¦ûˆ8ºë8|q+`hôfx Å'FJú)ûç×1ϳÉdF„`J„¹Ò‘“¢\Û0{Špz¾DïÁ(OÌšHL³U¦/Dœ­ÊÑtøêjˆpÈ·:/¥EŒ»˜J|¸c"-£G4RÒ9³I—üÇü‰Úyé<2I kàV íA¿Fy2ó1*<¬Íî)‡©1Zâ8î՞˜*¬±#N€ÚéÛñ·“üh°!7¸-øÇòFª`æêË<Xö#»,ï¾Oú–n˜ø¸ó²0øc…ç±ÊiÞP&`FCÎŽ«ŠèW0ÿ/@ÏÌðoWxôþn`÷0þH8vô½Àxú}·jà;«¬ŸäÉÐлÀlc 7ó!àúX©agAáî—d•>_˜‚ÇpeîÏó9-ØoI¨xt<¸µ¾T¨?¯ew‡þ ¸Û¼ ˆ¼MÈ+éb¯án¹å +*ÿÀ"×}y¦¦ ¬1ÔпE|ªZ ~'áÕ*€1‡ðfÚÌÝ\è|‡‹Û1ö¹=a y[È."]e'ãïx;øs€›“¸u8ÔùçëᾟÓmzAЋ[hÏ÷½Ñœ@.ØÎ6‡½ >L†ñ|¹i…ßêŽ{mãø[›ë²þ*‡§¢3€¾çá|‹ê€Oÿ0 À§¥€õØlÒTVØ9>ŸÙû§&Á'A`á5œ):¯:øš>Éß~Ðã¯ÁnË¡"p&z¨³ñ+μ¯ þè$íí\Ûɶµ'QÆNÒÔnȶ¹hÉŽ¾¿nëqÑ ©og ŽÅØze:g3+è{v QžË&™`Ø•¶» ¶G¥¡,´m+Ù-Y$GAÛÍ6Œ‚üøüêŽ>j½ÒãÊC­%‘wF{pfDpyV[üáo/‚5Ûðm[Ì6·Ãexy”àrŒü¤üŽbþWÎ?Oä,úäd™¨N&'ó¿~ÿqÊ©¬Îªöº³Ž¤Ü]ˆþžßÔ#uQU‡¸Î×±ã ÏYUÀ<4wÌQ“úêˆúg'—£ÌvSÉ$1¿èAªîW•3³ŠK9ÉEÖŽ˜÷yLsÄ©¢î™ÎôU™žšðî?Ïþˆ¨[Óþ¨Ž9“‘§c4Öã1O€ÕL)zkÆ™$zx8â=Q“t=à°»†u M¢¼Øåž%ÉEÑ)È@ñ˜Ð«|>¿¶x¦›•&9U‚;HÀ€nc€Ò~`¹uT’³bü¦ç…t׌¡•ˆ:ù‹ùÇ+÷„¬Êð@géø£PúG Åk …âÛøÙh¦éàªàƒ}æ´.þù¯"9¯œ“’ïÐ| ïA },ÌÁrÐò9øe¡‰\œ/‚‹zCÙm#,£”žk£ÃÊßNÎ uÆ<ßî7ìŧ ‚å ‚ÁßÓ*`†é+@Ïzœœ™üßI„VŒI£ÃÌ_²Ã¨Ê˜×”hÚóüе%ú÷<ãˆPŽñ©_ÄO¢Ÿ.£Ì«cᚺÓ3ýÒ }Ž|^UÛdk•äc<›‹ò6Œ”±”—óyŽ%ƒÁ³%©øï’SÁesTFüyœj™e¡â%Ñ1៻QÞÍ‹x.w‚ÖïÊÁ|˜9V6ËFy+S­‘œüщãrFðG ùÏì>«Œ§ºþ=¢nŽ69ŠÑàîÄsè»gñ­àû\Ñö²À ùà?pèà-œšãÁé¼å™¨ÍU´ïYõ÷]¢ç}ϯáJ ýVÑlÞ/뤂,â4rÞö…2?'ëíX¸ƒIpJoñ;µ¸-ßâ}<¾¦7ùäüüžšN8Áþp:ÍÁª-Ì÷T]nJ]{KJ€Íöï“ÚxÖãmkËÁå,ð­ËZš,çx„Q”› M‰wÌsHÝ„gÞ‰þðʺ«_ÓB.Ï'·ýe†ô_aÛÙSö© ‘¶öšD°ƒ…Ä=»ø\aöOòïæwº¡7j ýJÑîfVÒÙeóÚ ûkImWÙ×v£íj½Þ Ò~fžm þÈ+Iø=fÑ÷™“¹fƲðª~ê{~Õ£wi)Ú»,Öþã¸\´ålTo'ïv”2…]Àþ¶µ­hW‹Ÿ¼Á~l– I¡w☯ËPûÿæŠí¬üäùU'§“ç_ò‡qŽ;%À=Á‰|¸tÀÓI=Sê„ÚìdøÊçWþžsª¨ñÐ-h’ÑXIׂ7bsÀÔ0ñLCÝ[ÕþªræP1è'ÚmÒR |Yó§ÙéÔQ·MŠB ãêüGãpELþˆ¦[97 ¿kÒCÊÂ3¨×£h]²D…£ŒJ3LRÝ:ñî¨Yº.°("pu-þ- <, äê€Ù8s2¢oÿù#c¨™‰ðÅõŒ3ëLj8†w”LÔ‹7ñ6Âd¸¹›ž›ÙÐÿ1è¯/¾?Ÿ þGEÁ çèý@í}Ùƒ|oÐÝl¢‹ÐÓ0Ž“ðJ`ýEsTWuÊÿCL¯óÞ¹n²Üs3NP8£àÁPý—Ž=9üÇZÔÝ};âÔsïÅ(½=Œhï<÷Õ>c9´}”`0eD»O>ç6#õ^ CðG ðq[8…dtÛ¤Dì}aðÇ&ÏK•Ã| ò<‡»øÎÿhLµ 5bsWþ…ïÓRnÞÄS Â£W–âŽóá½üÀ€oá?ìgïÏŸý*òe¸…’¼„aÜ%áYP´(UÒίlâo%“Œâ4¬Á1«áæñbþ*¶þ*‡Ïô£jPëkð›ÝàºÏ6ó*.; z£Cå߆;Ê*—€ÌѸ<”ÿc8‘<wޝþ~:ó+å:'0ZžÆ}àáü¹Ÿ?^p%ëgßÚ;6«·©ìã’Òü‘ƒãó5þ€úOF_­¡}¡Þl¼ƒ+½E~Ü ;·È"i"#9³\·ƒm{EÎÚɲ„×€?¾•.hÕáìAY—ò:þ•+}òö7›çWÇŠd*FkðwW…‰²µì=ßþÁð1lQûÁö±¹ÜìÀö•ä”­¨ébÔþ!Ø(7Ç¥¹¯Oy«û³Gùx÷âÞ¦-ˆ^’Ï?Wb®>B{ÎÂ8ry°‘‰¬Bg&k¢J›ô(W~>´¯É[ááÆPZ ½?¿d?)k·Àyìàä’E&pN~¶ŸÍuá,æq*ªnևЗUG@»÷ :¼Žc÷õâ{| ‡Ê.9$^;ß^„ÛÉ&·y'æÙ+Wx<ûü*q¨ü‰±u5¸Û=(QqpÚtpðIî*«d.?äšÀûWöŒmï-"§¹ˆt–cˆÛ=¹—ÿBû<¢m´Qý=Kÿeíe7Þí·‰¦ð:™.Me('¶††¾,WmmÄ›(¼R“{r_G¼µÜ˜‹›€X=õ”‹GñKª >ïh"Rr¹-._l°Ël4›ÏFöÖ²Ue |×kÉ.«PÓùœB ¿J²Ð¤x{à?‚Ñc1îr/z ³€wÿij=¥…´´'í”ñ⌑æv§¤µEKQ´ã ®Ïci£ùÁ ©o§‹Žâ[Óמ¹ÙLQín[Ö^°Yí; –5p3‹À ¼[À½ýì8;-›]²ó3ºCÃáþ—˜fÜ'ûσôsóF\[ÚOëÌHÉà]RøÉHy wÔÅ>±ý¼«Áé)í~þ`ÛÛFv´ô—·è‡×f>>—Žßÿç¤r|â?¾qÒÿkÿñØsÊùI«ÎzøÃ}»vÄÓY¨Nª½ÎÏ×=¿:幮ʘgæ¹9erÒ ü‘͉aŽšz¾üW+U¯*g>rÑ&“Š|!øÃÏìr*ªë¦7ÔyTŒ+M½ôoኘ̩Ü\á{L)0C[Ð =Èwhê“—&™ÈáÊß~Y-׿à“ßB{¯÷½ÿpùc ZŽžÀ”!¢ôÔÔ Çùç=ãÍrèµ"äp2¾ˆ1>åéôßÿ‘ˆÂ7,¡{f-0?MU©¾q„*Ü« ¥užnBáÿ ׃è)=&Ëî›™>ŒxyhÙ®KúΞ ë"ç”sÁdà0Ã:@ÅÁ´Ý)â§ä»øô(.‚6XŒÞ膨µø€Í[ÖùQQ§j– ÷ìEùüi$ôG0¢@ýüVÂofÛO¦J{{ŲÝíËv˜´FI=ö71Àûqüšñ8:er™»‹ó:ít2Äjñ9‘{˜M´QöÚœÖß–G„W2ÜÃËt²Ïm t•±v ¢m–âî¿‚ùdú€?&|â?.iuGœîl/ïí»A:É$Ù&Cm"ôEgïR¸š\v+o](…iÒG@³=0 }«Ä(º ë”çÿô•Ô™î|<Ù×:iÿõúÝÎi'¯:¬ëî:’ït²žFêÜÇAµÉÑ_¿ä²*e‚ÌMsÒĦî:–®€²½×Luó)¥÷«ú_UÎ,*¤ý&;d*e6Ýá?Ê©k¦+½5/L]2Ô&œü‘Ôiè¼T-ÁB }#è2¥âiM[á?†@åL¢Ääæßb†+ÿîi5Qƒ*‰ƒÑµS³¯”ïoÐ*Sè]^ ½ÅßúáØ¾ÕÓ׬F‹¦—൅Pðîy$Ýé,múŸçWx=‚jYIïÍÌ/濬J åQ£ãðÿéÀ?âëED rh¼‘ÑZK©èœÙ­kþãþˆN°`ñeÔÖ³¹ÅGùJÒhJ¤HKý¹4¼Äzüì7póYöÍC±Œ£‡-ª¨›W”™ÏÂ?îDIÊ£‡3ÃgÒnŠ`†êCܳÿ{®žïE=)=DËŒ€ ý<Ú&Ï#•ÙÜ¥bÐÿíØ= ²æe3°÷pþ•?•åãÐóûù8ÜÖðÔ\Œ¤¶øó ã=tþ«Òª‚É„ûæÞÏA½v"ÖŒ”¹¼¾ ›Tµ+%ª—¤–®œƒpÇ h݉øššZ˜¡âÅ×ÑQ‚¶T•ñ2D†À÷ù /áɲ[¶KÛÇ>Dé2ÈaÀqOä)…§™†êýù ŒàaP»ßrnž€v:H—x¬±ˆÙĵ¯íq[ÊÛHÃÏ´—Sœãñn~¶šÌA´†òÛug8Û+pfí¸=_ ià‰¹RSºð÷òÌö²í ùÆ;Púñ0¯TF;_å‹<e®ÏÕÌ¡X%=%œnh«‰èÙšà—¦8e’{RÁ>’ÜROöÛ961´~VoS›N–É"ûê~—Aé÷ NifH¼žíê2ÔØj@ÏxøƒøoouÛ^ÚH; ÿ0û'ðù‰ –®v­Ä€ÿ`©‚v|o4–™ŒŸ¬¨Nîü©cCå´‡'ͽÌÚ ;l\»×ŽB wË_öžm{ÛˆÞ“ÒQ&Û:¶9J™Eò°‡oAÝ2óÌÚOöŸ;7õ Ó£¥)¡é¦¥<±ëìFùUî‚Éš£í²x‡xwÁ~g‡ði[ÍÖ¶ãÁßð*8êÕøT,¾AôcýUBgÉ'çÄp2ÿëü»äœqò©‹ª­¨½¾çWÛ=¨7`”ãj«Ëùºì^—À¥Í-`.™´ÔG³®â$v>覀Ѧ°ð•ï?*(K9i­IŒŸMYLãï”QçL7zeîšFÀÒáÜÿ‘Ùiã|P ™ó¨6ýBA@°ñ@¼Óz$¹O¥gëk’@G¤ ×ó« uF× ±sx ´xqè[w¥f[(Ì~õÀ èœXz•èç×NÏ ³Å$¶WP »¡j\þ¤_MY9+ÿXH÷ÍT8‡ˆôåýç“UiÔ³UOúÓ(QJ ÷ñ– ¿†Í¤ep K¡— Ô‡Ía]ΩôïÏÇ&-_…r *@ßcþ„ÿˀÁÀÙ½ðäî™~KEsÁ Õ(¢y£…-‘£0ÞAáï‹FËB9SÙŸÒAJf†ëìǕРîSÆ&Ôƒ’Ð ´ÌpÚæûó UļÇNb½…ZmK­©%„¦m ÿq../ðnTx~ºÄ÷ÔnüG_Šcìgϯ«j&øï'> ¼/ÈÛ©ø#'´ö%pÆ0©bK9Í1$«ïùÕ{Ôc —ç¥à‡ÌTÏL/•N€ºµžî-e?8¢~üna3’ýøãª^.æ…ëË1ÀŽ‚ªóŒø8êïÙAߨÆP¨¸k÷€ï;Ãýá?–q×>°ûl o&øÊÒYÁ$å5ŒßÇÀý›BåO¼­GÀ‘^§»ÔœãÍ´€7~—©œQÚ6µ=+‡mÙÌ ÁÑeÊÕ~æ(ør5·âÒŸä/Éë)ä Âhí ¦®È#¸®‰é{~UΠŒŒ‚™icÚ²ö•­k‹ËrÙeßHSY‰Ö[¶"ðGuŽI=Bâíñ,S·|™ÂeM Ñæ&‘Æö=ðx$JÙΞ¶áöÙhÖOºÃåÄÇ÷#KžÉJjó0:iršù‹ 9-5<"µ¡ÊÐÃÍ ^$/à=ŽÙ|6–Mi—øþ´±‘¼Ç¤ŸÌÂ÷{Á!f“dl¡GÑ3ά7CBø#À Òo€AîÎfw÷qtûÄ6²nö—±²GÖ/m'ï`ø­lv ?ÀÏFÚUÒX®mn˜¿À;i1&Å|Ý‚ÿ7WgÑ'ç×&qòüëýçÑœ³ð7T{ÝBßsÜ÷ç7ÀÔ1µUíp"}åûÏSUÖ—=ñº‰DMõõ“SÂÑæ Én¢˜*º×WžUTÅ¥ô´ËdÒ÷¥ì¦–9êtVîÉçÁe鹩Îü‰‰fÎ7ÚÝ1=׎3–­vµÜâùpA¾sBÝßDû®‚K,dއÄ*î©çôG[õe77)üŒ©O }ï?N µú"ÎûƒMðlS—ÐþðᜅҚ¡üô´âe¡ÎÃm€ ¿pŠ!~öš<î¿G Nâ÷\;Ó~Sð“üW)N:&ÆœËÍ9ƒ)ÆÙì9›Íž²¬²Æ.³Ú{Èv¿—ž2Þ¦2ú'•¤e÷Œ¸ÁtÝô3>yÿñÖy¤Ÿ Žî Þ锚¦K¿ÊïÔvž©F{|çºn¢ï¸?Ðo½žáSÕ¥i'ÓSÓÃÄÓíÂï‰Z¡Ý=ÄiétRv`hKð‡ûÞb1¥%‡Þšû¦z8øcŸÇÏì3Ñ©½¡ì¼؈¢éÎ!Na`éQŒµ™ôÌl¦ þâûMª*>Y3åš»RšÜBÇß¡×ôä&¼Œ»’kyy~ºÕÔ…þ1b\ç•#”ˆïÒ0xŒsˆc¿ê\š¶Á\= ÿÑ^aí‡/i%&–ÞF4vÞªµ&"çf´ÕVDÌ M˜Ì#@ø(f±>íÚŠpc*†YÛ>ìªIÿÚœÆx+d^Qyèá^,P¾­©âþè[Ï«à “P>p¬ù¥œï5É·ÄøtV?c¬Õgçù\•€§`¤f’øÒ[êAA&äÀ×Ñœ‰ŸQF^À5x ÔøàÐçׂâMük… àhºº»KÁø:Rφÿèm t¥å7§f–öã&<Z!z¨ü%Qµ{:ï1ŠŸ2’GûöŽ’¥²‚@ç÷µï5[ÊÛGNr~é$G9Úñß; r€©¿g9;¡»Ð}ŒŠ Ôw ¢¼NJKðGkðG[ÑÞ”{@ç9¼@ xn ×ânpHÇqï­Ü’«|r~mmOU§7åãþü”ªcLün†Ñ·rE*[)'~2ÉN³q¡õ¿÷6²?H»ÒF°9e#ÜërŽnªÊu9. ‰wÃsB=÷åoïN9ÝÐ9‚´±m.ë®hlر¶ÝmoK7écI$ÛNXò¢7‚¸&¤=&ù˜eö{gˆ?ü0ë§r\³–<ö:øl¿­dƒå®´°q½îþûöª4Îp"Åd­¤C¼wt¬}Æ4æÌáÎ ø¦Ðfm€&oMOym§Û™Ò®å†4€×úüqеilC¾bµóí"ùCîn˜•P&ñ8ÌeýUgš3+¤eb;Y/Ÿ1öÉÙéäSª‰¨¯úò_íõ´RWÀGÕ'âWîÿ8è9©²ûÞ\2 ©”Ž® :©œ‹z•Ia2™úp¨óϾteT̾ÎdÆt¢oЃgœúj§iESŒ»ª÷¦©§Ãw"ÕÎ/Î;U–F;kP9ðH‚‘4Kôíª.K+R7M+_wG¼'j½vóµ¿óåÛ |ßÝÎæ0ÐÉŸÖ÷,5ÛÀœï¿í„g¢ñ7q©$}€v^·5ŸwOºÞþH¬MÄS¡€fà{uW_ÊÖ¿B¡%`£ªt¨‘’ºÁ åBYÝ•$_ó=½šŠQÿ|—&šY:/|bر>xn;×L¾>ëO'¨ %ÂVûc7ïäXèt7'ƒûd~µ å Xt]+Öó«˜ÎkµÆÜ¥Ô¼ónX¨ý çvÎë2yÍ|à;»#!7€„¨週`æÙaðÇzOÊfnùVýtn¥?ñ‰À×IÜÝ3Ûß™êÐû3 ÿσ9Ð4_Ž™^Ðg´óÙûʪ FU]8«Í<‹sñn”q1¥ãõø|$#Å ÅŸcIzøP¦±y&gÿÌ…©¨™*^:ªb ðt.ïä!<ˆh8ÔñKÞË~²]ÉS™bO­òúÔ½»ß/šl÷å/Y„’:¡ò·;º)§+ƒ³ñ" þ :Ãe¡,ä·\Þö¶Þ´m¼?É®,ä R Þ¯Ó±ÏÒFÚ¢òý-^€žB¡1.S#nŠÖú‹7Êz©# øG9o;íOË% r/•7òõ,†² u:ÁÔà‚æVH¬ÚžæNGÊ̽ÿ'ÿÕï¦:‘3ðפ‚Œe(Ÿ²  òóÛºâ/+íy0Õ8©¹`¿;ˆ\ï›±!ñö€? ;PSµÁp¢æÞ,Íí5û½í /ØÍº{ºÿ´{ì}™)CínIhJD)Œž{ɵ1»Ošô¦[H}Ó9=uBÌ϶˜eE¹µ™Ëûå‚miWÙ¬ö•T±kmï*[×FõÈdé&i.I&œƒ~9ij˜s¦ó'ûè÷æW_fðr4×Ä÷Ë ®­#cÁš»m}ûÆŽòN±om{–÷Ûþ`»;RY,¤‡fbf~B¯ôcÿGrg¹óñ¬å(N>'÷¿äøÎI§†z¨Úêfú±ïÆ-O;uŒ²ü‘Èù:v¼í †|h®›sÇtÑT=§¼ÃL3¥MBSUO µþüKW9E”‚v˜x˜Çµ¨œ)j.;£”Џmš’ljè®áŠ˜Ó÷ü*·/b=Ä:Oqy2tòø™t”úâ.Yèéh¾ÓÃïµZ¨«­<ÀÐUÐÜ™x3ø£ôòI`T´n8…KàÑæé£ÝöŒ2ËMR*CŠ_ÐJÔÖõž íu„rŸü)O¢»æw`øYóûŸ_-Te¨ÕÄL9Ííæoÿ‘rƒ?îCß1ÖÁÌÆO£î1iº¥‹ýãþÁo¥.š| åñeFÉþ¤B´({Ì4 8òÈ·“¼/Í«ÔÅ]-=×ßè°rÿ{çj‹¹Hî)‹h "æ¡jT¾%:üG>¨ïÂ-4æì\ ßoNí(ù›8ÀR¿0øãç*nžûΪ‘øu ßÁIx\„ÐS™Ži }êZ]ÕÐdB/æà]ˆèænÎÇ[ø'‘A’ÍŽ@ç”RLzóü†²@Ûg&ïÊi0>Cï,ªSP>¨‹Š¼Œ6އÓSêµ}…·ó4Ù í±­ìk0\7|¯ B`—ÃÀûŠà!3Ôûó(ºØñEwuçvy°x#•€Ïwì#èûßá†HOÙÇQ89¸ïJ×þcµþj›Jîw踉s4ƒ7Èø¬!\¼ñ”þ;ÙnGÁÉ\±ï¸2p¹Ðyzh¼H•O²Çóø9(-˜ô*•ã†ÜÛ  hàÇöº¤‘²å{/ù¬×[¾Ã·ŸçsQ^ŒÙι:_4SCâíóÜUîy5[Ñ_w91ÝÕ#ГS€Ò©mw0Fk»Úþn»Ú3öƒŒ“Év½D³ƒÁC}ùwsÀë3y>Ù‘“Åé§S9:£O'òf e²÷l)`ËÚòX¦Ù—ö°mkŸ¡\ƒd ­l«Èøx˜1—i"3í ‹?æ/Qꑎì[ËÙ-{Õtíg—¢¦kd§ä°Ùl*o;ï|{ÎVµ3ùj¿Äî”¶ò êí……O&ƒ’{¦†=íþ£×7Î gaHËDt2ýë÷/=GBê‰ê­‡ë˜>t÷÷ÔW/À »ÔG9_÷tn»g·*e^ûò_e¤:»žç”uÄì3à%Õþ*|ÙFþ÷bõȤ£½&9Paµ0Ì-§“ºiÚÓsóÞ‘¨§n®ˆyºÎ)•þc:U€^8LÙy 檞$=9~ÝäîM0éÕÿê²Ú¤KaT¹«—!‚»‡® õÀœ¿ï{ÿq¾é­yiž™&t–ŒÏ¯U?³×$£Òô–óJ(š‰”–fÁ½ï¡:ÀŠˆ¸œ‚Ì_4‡^šIêKÙÎúªâøÍZPöÇè ø£#˜)¸‰¡—cñ3ÚÞX dÔ<‹’ÑZ3]ÿòçG=ÇLÙc¢²‹¾nF࢔Π8"ãçps› \ŸÒfàr3´Ä&ÌÏ"@my¥Ââíø«iæãBª†‰½›˜WƒŠ#^=Œ—Â|’ŸrZ Jq»@¾‘œŠzç†2Í<ÍÊ=x$g§šfçgþã;Ê@ÀÛaî~q´Œ$'x$PoŽ<îG–GÜP‚ỢrN~ oò'ê¿íIÿ[ÄÛР ⱫóEžSì”ÌÀéß íïØ´ÞÙð2Ýd˜KIîÛÊ¿£”÷¡E®„Ê?7Oÿ†ñz®¨7ÃŽãY²Ìs‹È ;êþ¹œ³[å”ÿ+‰,¹Œû&+Bå·çZ&8$VSO§9|x_0UMîÃM7Ê''¤‰oU;™j'ÛĶ˜îýÝæ•CPè1mJY…Hëáí.s}ðQTšïƒç¦º}¶sÿ>¦e&>Ÿ–òö[oV;µ+c÷ÚÞ(ã.”q”Œ·Gı¿‚ÝKð°}]MûM9³:¤¾iœ©:#ÆFgà}eîk¶ð6±ÞŠˆRÌ>–ýRÚÆönED7Ÿïh™ü/!Û¤0ü̺A茙h.›!üqÛy¬ÊÖ ³¾ Í4Éíi[Òn¬•ܶýÁÖõöAÄc6¡ÝÍGlC;Ãî@Icñ.R˜{m¡ óeýng±ó13g 'Ý¿æåt ¨ ªµn¤?8w nuWVGÔ'ºÖ̾Îyv©Ìðp1¨³N«95œ÷z¡ÉÿQ\á WNu ü±Þ¤„G…Ììø©3¦ ¹'kd¥kåWÄ”NUç*PuÍ&T§î3xÏuº4ðŒ©K¸K 4FÜpñÇq5Zžzø,Ps´Ä^ªèË÷猺LW(FÉ]sÎëËù¯özº˜Õ&U¥ä9zÓp þÌøu¾üW7áæáÚc¬Þ|iÿàU.¨"äòåo/A?±eáoùÐ~ý…ˆþ4ú~¹Y¢Ë:Uÿ!f2ç¥óÐ$*Œ‚û9 ¿­U ÌQÜÙ‹¶y^ÿûã.3àQÚƒRÓýV #š8wÕTs…ÂÅ·kž¬ŠÒAhnbžk÷´òœ—kB'ŽÆß˜¨ñ7hÙYaðÇqÏUü‘ÿàš`‹³pÍ€)xžïYK ÎOíø1Ðû(ßBŸlÆý ¤õ¡!néŸñGsUÉTBçôâü¼ #d ħ9ª —*v¼$‘‹œLªÊ4Nǯ)"P4ûU“SµON›ø¿W65è ÿ±~¦7÷ÄȘ þðÊî/«e‹œ“ö ùyÌÉqøð´7pz,FU”PóÅ«Ý÷ùW)çƒ[©$:Çcd½œã{\ÌöžÞ`ózË¡„e {hÔ}~w$J^*ÉqíG ø!Ô‰Ëûi¯ÿh.;9«œ±Ýln{MÖCíßåíò%l ÏÕ ^n+·iÂÙ?É_RÕSÚiU6’ƒ(?jÐÆ”¢8¾÷¥¡t•evø#›ï¶$¼×l{CJÈ8øÆ5pOG¸Wcç“üíw=kÔ)ôÙR̆GÜ™èót†›YÇ›ÌN’iÒÍÞ²}ípëo¯ÊékJJÛMÞ‚ÕGƒ?Êrºe ~²¢!«ÓS§Å8jã¢=5Ci¸±›}hóXcÓØM6÷°m ~;å2»]l;€ ÒÈOPG×1[n™!æÄ'çDPÁÚB‡ÔFÄ“´Û´–@”å€üö9-í6šw¸w¬}kóÚUà¡`ã5Òþc1=0îÌü»O=ïÔ(sŽâ£Ni/MB¤²à$ŠÒÕ1Áú ôãhpfk ü(ôÐ÷tÒD', ƒ?zNùÞdãžÀ¶7ðZ-¡4úRz¸‡¡`äŒQÈסÁ7ñez]„>jMuáŸÎi«¾Uç.ªœÉŒû¦÷å[ÿ‰7øVZäâ]Ą̀@äúv¸Ä•@N.9eÇkˆÇ­¹+'Bé—‡ŠWAG£¬Pš¥P§.<™G—Nà‡ü å™,[e¥¸çÝ;U‡‡èËßq*~ÏÛ¹î= ü[ø[DÒ­Ý0àÇ\à¬à„Kzºé$/íQ”d8ZÐc+ÚÂ6“·w¦½i3ÚüÁÇ'{¤Šxøpf2F28î÷ÿ•õW‰œYΔ–‰ædø×ùw=ÎV§°ºªéÎ:Øqwí÷´P÷À§ÔN'ÊWòÇ~Ï •üqü‡~ÖñõÏÎŽ˜µæG“þc×Wž•T1eAÏå.¢lf 9é4W/ÌôØ0Åè‚)îýçMœ{ªæÐhçºP Pøw«Jsè<Í‚ÿ(JOL?\믨yº8Pþ{xƒe4s Ž£#ÊÜ¿H¯àr¼ôÐ<2µÌ›/FÛêiiV™,(™häî-šÿÑ—C×ÿ ¬8J·ál˜YÐ÷qÁ_Ú?8BeúÔÄÌ»ì¢ ³0ú=¢w¾31þ‚·yƒz'§f•.àüÓ›)vÞ;'M¾ŽZºûÏóÃÏ´¤ŸÁšy#ýA˸ÓVœ\€˜½À©)XGÐaåßeç™Zn¶R$Þ‚yw œ†Êƒ+×’˜ú!lÎÊînþ’$tÅÄ„õüê ç†Êc.AÉu¢Y:ÔE»}Ïc€c¡ rP>ÍÓùjýˆ6‚?ÆÒ´G%º¨ŸBý=^UU½Ðœ~à•pUxÕA‹gå½Ðð1¥ää€Ú)Ùe°ô%%Å~à¸[Rúé³ýç9u÷„FÊOÕ‡×?®ƒ?žÃ-làA²DfË]`¯òYð‡–¾¾ü%/y¸°8OÇUCBíÿhB] É# ÍGƒoÎÑuî cd:“ä„¿a·Ú,Þ³öÙkÞ „Iè=@B Bï½÷*BG@DŠ UªbÁ^À†""6PÄŽ"Š ~ì½Ýw&çó½÷þñ{žû¡ZGmÔ<‡rQk[\=MæK>zûÓÓ£Ö³GìyEµ9ÞÕp—Ì<ÕÀö3ÒzožüÏt…”Úà§í@©­ñjÍFþ¢‰THÙåšDe(ÿ!ŒHkªi¯ÄØ–Ðkt5§T´tAà´ß×Þìç ‡‰6Öµ¶eöYz‹Ù-.7xÐ/1³ø†`W3˜ãºð#ô½ùÞ{Ä»d𢴻èžÂÝ©jhƒ¾ÎC­%4­¨FùèYº™¡­=!§;Ñ’átýœƒ»«Ñ$…ýÞŸíOÃ=ýÝÃö÷Ž] _vÜWîM·ƒ¦ð67ÅM¶mÝn¾Ê‹í|ÛÆÝj3LChØ{ÑO¶€TóxzÓ¯B+[¡‡ùøÛ‰úáoH}*m¡»1Ê 0JKèÿ[?Û@zÛÝGÖsÕÝAêE—ánwWmoêL;ì—ãj¹ÛÑNj޳ök»ÞdR&ÝHᣦ%bìZÓxzƒê¡üt;äÚõ6NNÅÏ-t蛌m3´+:™¯-›M§;(Òl ŒÃÉáÅn¥+Æ«8èòáÀ_I¸;R+äÛ0†‘x—Iö¢$<›„×ýi-îŽÄ=UPöüŸ‚w1xŸ…ÏåþJƒÅãJí…\>Q«€>@9Àˆîô8d4%^ž¾N›ñt èòÌ ºèo êµîÍGü&ƹ'm pâS÷Š»xµÅÝàFÛ®î Ò2»Ì¶s7ÛTSóÈ~û™ÿ­¢úÀÀü˼Ó²/ èd\ÙVÅã0Þ÷`¬§ÃFo¦íþO~—BjÝáêûQ¼Kuw¸m/Ü·Ï~ŠwõÜjôì#ïEû]ÝË…ìÇMKØHcH{(¬¡z’|ªK£Q_]èíD¼º5‰¾ec^*DyQøi/‚lÄêï¥l³%0Wã •énšk«8±—v®Çb¯c¦¯¬8Tì‹¿2ïWG[W¡tÁÃÊèóbhPªÖ–†W‰¸š„×1Š%ñÐÿj(7v†z“qp±µªÀ ¹_pGô ±¾ŠÃçIŠFR[ 4³î §ÅÜHÅŸhÜŸª¿©z=x•Š»bPC’raŒ™hÔ%X”Œk©!¼ÊA‰mpwðGÐ3Ÿ†á“Dmw’bT JÌü?ð*w^ òÅãÔÕ¼a%t6VQj0tª—ÞÛš®S&D;¢a]¯R¢ýý–°›|`Tf÷k¼…#Àa"Á+F_•kïÐV.çzêË›x4ú{G_À–c›âé#}‘ÇCжQÐ4éóÍnNáYáišï¸±™kdþ¢v¼ÈÌç*¸ëWþlâ,WàØ"/w¥ã‰+4Ç›~%÷Oâ§L¹—ÄÂëVÑFð•,\3Çôt¶šÔ–«FC–ÇÀ’ùc B`ó?þŸfúØÏvçb t¶=µçRÓÍìä¦þ{ÐÎ)à+ —€DC}¹èáÔñУú€MGò«ÐåAç KÂØÂÚ¦Cÿò3tž’ÍÛ|cÜ›¶ž²ûÇ€WÝ©€ÓW¿›y°ƒföSŽåÞhá%´¶(Ð5·ÁŒ1 £RžE§èg´£Ú(¼b&æàzX)w6:4A¯Ï£• ÑÇtÚxÑo7ûµðI’ýÝ.´ìIú”OÚ^®,øøÕ<¾)ø™m,r]W¿š_½cÞ[¦9Jûœ^ç%Ü%åc`T‹€Èð“‹Zj¢]7£Ôj¨¯¤T‚~ŸDÍSðª òo²?ùËý‰°ö÷˜Ýç^°³€W¹|÷÷¬»fó7Ê•Û2·‡?ãùv¶m ¼Š7uÀ¯¶Ù/Á¯ÖOúSS¾ÄCQC!кø†0§Bàw)ª9ä;RÞQíy4†fÞéÿǯ —ÛÝyð«·hèbÜZ÷©íŒ¹f»ýÖeºB· £wÉ{xµx•E+(:ðŒi¥üªðç,úX –¿å‡ êAÓG¨Í€-&á“bH©½2Ž&¸¿Z óûNJ2›p= £:ÝÍr-Qz$Ædà›ÀħjÆKQ‚ð±ð2µúèÇHº²¢N:ú°²LU„« ÛŠÀO JMTŽ ŒGªîûLÈF9‰x]ó\ žMP\« 9¥àUîO¯Ìúáø[„ëqú¬ QŠÞ+¨•¬×Rð* ÷æâo¬¢ˆ´#Zq)=¬¤86VÖë5PW)êV Ö –†ãžxeNÑ@%ñ…±E£¬ò-¹êà ÆãÓhÅê9ãÊçâý0êe¶ 0®{‹Â}Óé#*÷y~öÌAèQúƒpÇáõ`àRG|&ܦ6-âI‹´~¡e^€™D\ÿˆfy“½.ÚžÅüðª†ò«-ð3¹6ðj/ôí0³p¹ŽÚóÀ¯6иÀãøk´=ŸúðÏþ·fçáú”ÅÍý%hi7È “™ ÞUZø,r Z^×ÇAûFàyÁº>À«/Á#âó(ŠÎo‚̓eÈüß 5T–e öØ×˜sÏóxß Zû”ýÑÁ^„ÔÚp<ã-AÉ#íhÃü 7 ºð,´ð·F¨ˆöAjíð3’¦ÁŠOfÃj¶Â».…f…ÑVÕ¸ÛVñêÔ+¾ÂÒÀkþ{‡_ ²©nÜrÛ þ ø²­üÕöÛ˜%|{0µ Öse|?Yï²wÎûüª)Ê8ÆáëÖEû›@¦BfÐ’áh_]hqwHm!,¯ -XQŸöúúÜÚ6Ö¿Ãþì¯ñ瀃µsOÛÁ¯–Qsþ xuÝ·™Ã¹‘n¼íãvñ‡ðgÛR·Þ&˜z”ðsÿI0ü M}~•‡`<Aš¡¿-¡¹- ùÖàya# “ÝtŸ‰ëå´þ`<øUÚ >îZ€_õ¤4—¼úÀöÄõ½öWÈ<ß-T¼: ßl²Ð§5Ä»€Ôi°b©í¤\×7»ë| NWÎ3º‰ž7E ía;±Ð ixf¬"VVÕܦ1–‘´Ì-t•í£=àWcq=¥¶äÕh½`N6F¬TÙp¡¡Ð· õ+£§3^š"T"ú™B¬ îœIÕºÄ Ãëü&ëëL o©¢¶Ã“Ò¶DeN êãÆá‡2òÔÃtÀªHü¡Œ-ˆ×Ê+¡®1ð_–뿪 ËŒñ–{›AÃjqO}føU)_W|ûÖp¥ÁçJõ_á›àН×üª#t7 Ot¥µ|Å«0èOsøƒÓ´O#àõ}ƒy" ¯'îÁSÒßÇ€!½Y‚Ý›©¦¹Æó4†öù„'šFæ…/¨„§›ñêF›ë°™ëÀ¥xúøUPMzýMõºzО´æˆ™æÕg™ îDã¹g¡¯eø}HÑ:]Œš…F·†Þ=Œ¿9ðykCï‡ð+þÀ¥*°ÆíÀÛR1¼äÔæ¡æ0×ÂõóÀº‰`yÙ(k2°i´1(2 ~á·ÐÛÚ¸ÿgh¥Ï€.}Q×4ØkXO]ü?#S8ӂΡ¿Ïñ èQ:8jcì{VÐ…Ó\U÷¦Y€rn³ãÍ?ô¸7£üPªŒ¶¡ÍMQÛ¨·%,c 0ã4|í)ø´Ú°Ò,š< œ4†‡®Ñ2áWMÑæ,Z8í´ý:À«lãØžö]æÇ­Œ ó[™rvaÉ®c°©ëÌÓ¿æ"ëŒiŠR÷Óqð«ñÀäæø‡1n†NÂhÖrå@‡Ö“ä ¯…À«öÏÓ𡦡EUé7øÕ:2˜Wk÷¨ÝëÎØ•TÈŸƒ×\ugÜvZʇÝp7Ývr‡àñ•Ûù`|ëmœÉ é¼üó$´,‡R=þЧ ÷ 14Ƶo;èjH²9P³xÝnèX'`Y4`‹ÿ»Á0^{Üç6̵u»PJ®KrÛÝu;3Ònû½«éš¸å£w½Wì÷öèU5in^IÛn¦›àë¥p5Ì&­0׿Ëê‹×--÷`vë I> ¯´_Æ6V|æaö¡®Bp³z¼ÏßÝ_Œ~˽ÍË,qæ hÿ  ]uÜ3Ú7ŒöèÜ5å_…&×Â=ÿ¢¯?€õÝ­k†»&ÀŠdF­ëª¼j~uŽßÄ8õ¥àWúÛ7ÀrÛqŠKu—Í,à{¹n.ÓNo$Úü>Jè¼hó‚ \¾þà§ÞÞ»àWuÑGx*÷&·ƒ.AíùhÅhX‘H &ê¿6^--ÓËÁû§ÀþnÀçi4üê7ð«0*Åîq{Ø=o—R+¾ ¼zÛ½ï¶Ò\>äF¸Q`Uwñ—À«¹¶§»Õ&›l°öö²ú’œ(àŸ€™ Ó!¨k!F³4o ú;}¬‘ ÝGÂú‚ýl÷¿€?( x—»lÙ5u;ñd4üÁMµíöwWÙÕv7B^_yÇì×àWé(iEŽ›|´¾¦Æ¯^Åè «Y…ÞÇsyÐèi˜c¶ÒlhžÄ¡%bØQ}¨ÐÖŠcQø<ÍÜ %V?šV¹›¯0s¯ \ ŒWtÈ…?¸ v+óxä;¸£v?Zœ øQ#[´‰U IQÞ«1ñD\‰Q»–xvÞ‡©?—¤>\œr¶Z·TT¥ ý¹¯^Yº2·TÅ4‰_ÕÖ##B¯”ß%*VÄAÏò´eÑø8e9A¦U ů56Ÿª¼%7į„UÅ©7˜‚;d5 .Äâ,ÊÉÁ³±xå«w¦PÏ2U1-»>Ã]aHV}ï­¾g{ú ¨ÔOQs1¸VCþ¯ÀsfÑ.x9²Vp'½Á³8’ÅîMC¹>Y€9rOÔØ{È'æÁ8”)xõ3,;M× ):¨?ø$¬h>ÆZV¶R–y^c_‘ô„É3¹¦Üȳ_ÁCZeæp*®ÿÍ?ÐaºÆ‚‡_Ò0/œ›Á¥÷h´× x%² ~5׫Å"UèA*ð*ª Pò2z7R@÷‚%ÄlR¬kUá0%`T×üïÌfð«|ð’z<È¿WûRG·æšÀ™W€KcÀÏj‘G@kGó3ƒQÒXO-ØÅ_¸Jð1·Á. Ð÷QÐý2ÔUHWõÂÆ>DŸã×1ʽhsàøÃqû–Äׯ>4‹Å׳™æc:êõʃ=¶…‡Y„gKPç ]) Û|8)ÑæLÌ(²nØ×_*tÀŸõÁ3—€d²v– ~õ²?ÈîñkûRì?v²íh_¦ |ŸMv ƒÏúíÌ<ž¼Ï¦ë¸6ü8ýbþð^ðÞ0õÑúÍôßÂÔmÔ³+ÊwÂø E¹ùÊ,×A«r íÑ÷À«géyÜ× è>Ö_n¯û+ýÙéŽîˆ=äÎÙåÀžo\+÷µ»2w¸ nŠíè¶òžg'Ún“7µh"²ßúbnk Y¶çoxtª xGc\+Rû¼Ž÷5qÇTÈG¼ýyÕ|·{ÐÑt·{Ç]ð«>À«·|k0d¾Ë~¼*qË€oW¼ãö»Þ¤¢+é/ïS¨ñ+у70ºq_ ë«L73ÖHèä$õ”jB mt}0ÒŠGèjÜnJ7·¯„댥ynž+€}&‚óÎ ¼˜®+eyÅ*”-Ñ£l”ÒMÙKb4¸jþJÜ»:…×±ºªWUýÁdòü×/O­ªb]^'iÄJl³–úÊqÊÄ5Ú˜ZüïÊŸ¬zµFÿ•*ØSt(’§\#=Äàj ñäâ4F&xâ´Î ¥Kœ*Y×%ƒø$=ë®Ñ½0-ET¼½8e,‰Y0Sy¯ÑûHÅ« z–‚â“B·–€ÕÄ+V‡”Ë×ZÓ/”pF¨”¯)–~ ^º›2YÐø½Î«Xr"ÁXÆr[hf¸ràe<›Ç(3íAx Vÿ³ 4K|‰™·†½ï„ç(‘ÿÇèF0ŠyÚKŒ‰ù˜Ëu&9lâLK3ÏÈ*ÂÏÔ–§˜Xäöÿ Ÿô’ÆÛ/Ñï'ªodôU`WG¯ ßÁš‰^"K¬p ¬§'áþ;¡IÑ;°®vººõPó~ G[zx• ~%kÑøWÿWsüÇ<<;“»ú‚éÃhg™þÀ«:xöeàÜd<] þàPXqlf§wÛupÿïÐááƒtšÃz†¡¼žx6zÝWJñ{žj™ø ]|0pÌìKö F¶ˆã]š»bgÚ³|‘{£¡ýç¡ýÝàõÀ¬Ž†Í´B £0F×PG[Ô1¨4ãØÎ@¯eÅ®Æ8 ®w?F'–°$pÒŸd÷û¹˜+2ìOvíg_gÝnû¹jàWMÍ Þ|ÙÆë¹~€~7?yïxo™fà$z™—óp´¦X™Ë\hw+ E7ài3Ô6ò^K(ƒ<Ö£ý£ ­À³À«YþÀœuþ p°®î>ð«WW…üƒ+p?¸€!óxŸïæÚ¶n'ðjøUW·ÕF€_Íç{ñìó˜}ê£Ôºü…E |Á#‰%µ£™ÀÉ©ÖL†¦Þ‡«ó€( i§OÖq{Œýî-€ç·- ¸8·Ã]³½qßnû™ËtýÝZÈösï%{üª2Fõ&Š ¡üª&JÁ« âN´FÄœ"n¢ö*:¿ ã±QY_ ´º-ä,xÞŽGq/ek À¯šòWŠù_@3vR‹o¾•NÁüLýÙîT†¹k‰ÖÓšÖðøt"‡ÐÅÝj™êf®ÆÛ¯Á‚W™Ñê‡þÍ_b.Û¡yV©…—ÄõŒøÅï¯Z{MX$0„↑©ñ«[0C&WS4®pœ¦'Ú›Ž×û¡Ï‡¡ÝÍÁñî¥pÈ¢iü øÕ!NÃk)’GûÑërp¶03ÜìáºÚÀÛ˜½e…{8Ðv”DSñì:FŸÁjªá“߀P¿µæÂróÑ÷©ƒ®Šq.Î56¶_Ê>¿«gá+°¯I䘓WÍ|Xÿ8;ÞXÞêõGùç`›a)…x¶-ê…¿­‹CÀÿ£<. O¬…­vÆ'OÓ2ÍÖh[j‰WŸcŽÉ‡ü«ÓœÀ+þ0{ЯŽñO±ÿÚ&¶¿=FoÃãúÕ%û%fï :—¼jðwó‘wÕûÀ4EicéAž°.j«ƒ¾ŒÓÜŠ‘hu}Xju`ÉZðºªJøUg •ä3LAciª¿Ô~æßèO€Ï\àž¶ûÝY» œâs×ÂvkÝfàÕ67ÉM´ùî΋m¹íë¶ÛDSŸÜo¿ð£ì:¨3Ÿäib Ì 0íaÅíš­0k6…üKqýAŒnÍu(§m¾o‰%‚ý 8¹lw'dî\ ·Á½g{iüê W͵¿*¢ËÞ û™]a$&½œO›°™*ùPÌÙµ`o2—bL›cTÒà#¯£g0Æèwê—ÖH¤¸ä"QMA‘mÐí š•-q³\±"ʽ˜=NªÝֽܬž\”f‡ RKÇëñ`‹¨IrºbH ±©]ËKÔw jCQoB$(šÄj|=E=·êÐ…jŠ]•4Þ^KãíÒ³L]k¦–½oбÇk”)RK‰ år ­AÈ—‹ÕVÄkœJV+++G jdª"Ó+LãWmCžŸ¬÷UäeµåQê%úŠî™¸ÃÃõhò;Ë—™¢k qÀ¥Å`{4N©—¢ÄmEÓ¿4Dsfbž® ŒˆÒ|Ñ™t7°LøÏàÕ  šH¨¢³Æ âðì\àÕtÅܾð§¶ñ•c7`’ä‹ Z·¤“°¶žêW?ý^ ù ‘2æ)à•Hëy†U¼²àW…¼ÀŒ‡KÂÜK(}HC¼©†Æ¯Þ†?˜ï±°Ôaðg{Y,+°aµ)œ†g%ºñ ½‰9¶?4®8Ò^ V{èÜ#h‡>æÈ<ÀžýÁÜÆÍ[©÷ò×C.“Qf}ÓÇìçZxòu ÜdÌŒu€ãévüÁ[mÐäÒ Þo¿ôŸÂü“6´?8XýÑhI90¦'ä/ñ@·—¡Þ=Àç´¬挽þ7¾ОîuŸÚ?mM·-úÓ&ºmî]Û2ßfϸª®©[ KüÄ{Ñ^³kä…®£¤À1Óš—‹qŽ[¨T½”Uàö(=õ6NQ\>[îÐ-m‚Oź6SŒY PxÇHšå¦h>C44rdàåÀ]C¬OżeGª÷Y€¦(NTÅ·@Ãâ•Ùô€ôª*»IP_¯"Þž€gÂ5[BÖý“ÔO ª'—¨^šÜ­,iA’ÔK«¢+{)ÊžÒRÑËZêÿ%(ÛŠR¨ˆ‘¥jÔ,J½ÒZÚ¶°P¾h´Æê…_eã¹ 0$^£íéºÂ(5uRôf—ªë—A}2E멼’¬É̲@¬hõ#4®¦W#õÙ^з•× V'Y¾=5f^HÑ?˜›¢4_ôÅò׊ó×a «(œ%η‘Þá2&Åž4‰K ‡;ÑàÕ­o<,o'RüéŽÙï7h‘ào+z HÑ3”uPpzÊ«¨¦yx%8sØx¦ðJðükjÂsM®Ž{~^í #,Q¾Wh ÷3å‘Ä{àW-½æšç0žŸ¿ª¬ywc&Ì¿Š×¬˜}ð!KÑ?™Eî£ÐèBh†x§‘ü ,®>üÁßýoÌM¨«=<¯\ì¯Ã§Ki:ÿÃãͽàWmÀTžÔ¼æÊ,†@¯öCO%}\°¸×ˆ~B_ÿ ˆž·C¢>RuŒó\È >žlB§)Ócü}ßxØûüÁÎÔLóE?1å(=ßv3ﯣ†Ó°Ë.W t¹Z5Tó†C²oÂóœKÎÂ+ÐñÆ^À+Éj ›“œƒO!‹|Ô]È+~7»Ù¯+Q`û³mlÚðóž²ß¹îe¿¥™ÏÛƒ—l^°¦+å»é‚yÛ;ç6¡yÇè¯æ¾(·?ó M5«£fiÔBÍ Uâ‘A³º‚Q?¼Z4‰§Iþ2{ÉŸáO¿jç°‡à›­Âœökà®À3Û¼ÚèFºY¶ÐíåË<×α}ÜFmêÐb>h¯ù'àÛIl¬ ÿ «‡†–,Ѽ´öз6è{3´¢rØþJüªžÙàÿàÀ¯ºÓýî¼­äâÝh±uÉî&wÑöDk·Ø7]‚«çnAK/¯¾€?˜ÝX ¼zžpšÆÑG@ê‚£ä -4÷¬1¬IÖENC‹Å÷ÊCííQžd!5UMÏš8Ѭ0±èÏ5jÌëM­÷àÕ~º‘E‚¯SOàU=#>æ;À«¯™æ·÷àÃf‚WMñj/ð*•Óq´í>°ŒÎà¦)èû~Ú‹j ? d ðyŒXufgÿ6kYr6Qîéß ]™K#9ÍÜ`Þ`Á¨èQÌwwBW{k®d_”•M žó°­.Êü^×C£x¬¢Ë\ô¼¬%£²ˆ!«Œ-Á\ÃÍ«ð³!ù'­gŸ?ØR4øÕ'ðGÁ¬gþ¢­žD¸Ïkîa{À½joÄœvÉ5rï¹ón/ÍàÍn¶›b»¹;ù—Û¶§»ÙF™º4›±Wu?N>P£+ÿÁS4‚4 r_¨QÈ<øgí5«FbÆäj-GŸgÑ>ÙKæÝîû‡­âvBn^÷&wÅïÚžw©®>8^]ó^¶ßÚÛdà}àˆi§k_ñÌgèg4e…âUH6}œ„™jœF{ªAF)_£ ì¥-fáZ›©¶Ùªq­ñ4ÇÍt%{z€†ž×ü«d”ÕœW-¢5/¢%t+5´¿f0ü™ÊZN*$¼Z¬¢,¡"çÀ)ˉDûÒp‡¬ª%ëºcfhÏNŠ®m¦jÄ(£WW9R>OÆ]ÿ-©×ãÕf“5ê¥>_<îÍR¼ ×È\Í ¨¤¸™©Ö.yVUÐÿDå<­ÊÐì¥0à•ìV‹W ‰eÁWìÇIÒV‰ß'­ÎRÑiFŒ¢U˜âxj(ÎU#¼HóE£4ÊÞ¶"õ¶‡ç×sh¸æ3¼Heü¹bï%Ìè»)NãØwÑ+<~–ÔØ“nçÖ5É›ªMëxOÕq).NãQ:§”Á~¿„¦ wm ëÚ+RïÀ±ñxVrÀVP†y'«û Øü#þ]€«óRÓe~ãïáÉÑ=AïQïe‘ÐIî5÷Z±¬^ åGÍ@/…iÞ O`üèªÚ~xl=ÑÓThõA¼Û ««CÑ6øƒŸ(ÏÈAû­ÙÂ5 u¨ˆ‡û7¢Ïch0w5Ì6n‚§ÏÒýÐBÁ«nФ)ø½ÖÒøñ½ ‰åa4¿Ãõë”Æý`3ùÀ°ÐýŽºÃªã’ <)€›n.i>CwÚxцÙãöX1ð*Ã}cfKö¼½ ¯{¿ì+m d“K+´ûX_k”3ììCú öÒå„õŽFMm€N ¡{²7d l¶-ú~ç›5<=ø–M æºüýl>†?ø)ðª>¸Á£¼³S#´¿jX†²K’C`!­`Q[9^÷B]Û1K¦×¼Š¦Åþb{ÑŸå/ÀH—€_pgìBôö×Ä}åN¹ÛißOi–-swñ»¼Ð.·]ÜM6þà">b¿ðÀGo€º:òo<}+‚„jëBw‹hºú… Ïv¨w¿æ_-C›Ò&ÿ¿üÁ2:ìÎÙ¿m#w7ìþã6ºmW\ßoϺ$—ïÖ¢¬¯¼WÀ¯î0•a¹¨Zà¨úƒ²?a¤XÚ“‹v4C_%7 ý7NñC¸Dc´BVÌßë~œXhH¦Ù¬\e$•»É®R Ç|=þàXXìÇiÂk1£Eéî¾| nšÆá%ƒãFžÄÃÖ{À^ªheš®Æ+÷‰ ñ+A¬LÝ%š¦6›¨q« Å–ÊèCžf8DiÆgm-?FWÕ÷ÎV€ObuM3FѪboNÅÞ¿Í…¯¤l3Eï‰P¿­’r¢dÍüOVœIÑ‚âYYÝoÙ-WÕ|Ñj¸ßé ¤Ôî+_ÊE™Q«­1L3Ü#C‘ºh“ßë:¤è›)ö„æUäP}Dµ¹·bã,0ÝVü©æ¹}ùl7%©?¸‹.ðJþW™fgÚÄ-¡5‘ʯfòDpuñµ¡Y+I–(^Óüþ"~„ú)ï}3á@x¥²ž»sÐ[<_½ç£æîdf™!~¢†<ÏôbÉ3æ3Ì›O±¬—ž¡AÞàdÂÇNÒH¯ø•ôl8Ÿ2ýW2Vc¤£à&h^ø̃Ý03Jôå`îš!ð$xV_Ò}øKÿWs3çUöQà/Ç“Ã1¿§™yæ 7„}ž.-Æ5G)1À6VA¯Æâú{Ð\Y ¹­úŽ*ó`0f¸{¸fÃKìc¦®+¶‡m¤8s’߀õ¦›'lбgay8N×CÞÛmwó'íõÆãùÓÀ€2X` þ–ÂÛ‘ɶßpú#6¯k½ ²ßùFDüƆ@‡2ÔýØe!êªLs/øáÖ^¥Zϵ²PïIð«°à#î(øÕ >˜ªþ£¬êe*°ŸD)~&k\,Rq)V£YÑʹ$BVCQ£q"­*)Û«ª±w«,]ãéaŠb5§UvlWÕ6„ëý1ºÃ¨bÿ`uÅI«ù ú\¿Š E¾dOßxZ Ÿ V‘µ=¤ÜYó"šÃ_óÀ¯Ä+G/P6_ÐxûeØæí`+)xb½È}ø7]…èM‹Á¯¦ëýÍi./åqÊæzÀ“\ÌÝ©»Á“ø³^ JjV}ôKZû<¬«?òìLJ5…ÎsxÆ\å,Í¿Š¤¡ÓLO–Ø¢ìë¨:øU1,/R &[]£47¢“PW3èáLôþ(ú(ј,ÍG몺Í(ƒ‰w52w¯dîN·¹y®®ë=B]Æ+ä`äoD‚ ¡ýO’u?ÎvEÙÓ [MÙV…?X‘ë^L‚2ʯ’BXT%Vä-déœ ÍÌß0+³ÊÔè}ºzlIj^ÈŒÑ2£´ÞT…E‡r â€u‰¡W¸îÓ©XLÖõGÉgHÖ,«xå<"±2ÍÞ¨Ø?˜¥¬%\cIƒº§¦Æê%ö«ü*¨>c%ÊGëzDt{Fµ¢_Ý`5]÷$\Ÿ{*g+‡Uµ„M‰)kæû)Œ%fþæãIº'ú³”ó1–ÒúƘ 'ó0mgª©{s„ßõ†t -H]D²§f„fôŸD FÁg“1šJYæmž¦húœù‚;šFîÿ¼Ó¦ ËþЀùhq^÷¢aÀ«t#:p†ºy9^Cù àgLW/KóKÁ~*£’mÖ–ûtºdÔÖtüJ¼Ä‡À<ÂøcàUm~õ“¹…sðz+ç¦þHiõç 3Á^µ¦WÁ —ãÁ>g᳑@6‰ÕCé_@byøä[Ì_S ­+BÏz¢<É™¬ 쪦¾…¬:䘗ùdß—–À ·OÚ3¸«§¯>1 µ§m´ù›vzã !gуΨ¹È×­Ôj‹1 É~–ÑZ:X}Oɽ6UªB+teà,¸¹Îµ7Nù­í.à•øƒÿØE¶—}ƒþämm×3xÂ/2+ùÞà:[=ØÔõà}tÕ\óÎz§Lcôk å%<VÙ¿óT²>8½ÌCkjáï.´¤–úg[¡Oé9 çJÍ¿¹Á_i¯øåþdŒC_÷”=®³€êðßÀÏÝkî˜ñA7ØÍ´ýÁ¯ŽòàUo·ÎàÕv´î²cQŒ:ÚrŒ‹šû£fÉAoÝmÄn‹z„_uÂõÝÝH¾)j¿Ç÷í_š½v?ø”ÄÕ÷ Õ™.ÚÝæÞ·Ý!ÝöK°­fn9Ú}Á{ÁþbšjZvÀ]¦¢‰¬m¼±ËÀXl„]w†N5…~NÆÌ€~ËŽd‰M6Ä'ašáÔ›ªkûká;ì€?˜¬ûà6¸5®P-þ!* ¼˜ªÑ¢ZÀ«ÕÀ”Jj½MPJº2’t þœP4¨*F},þÏ EvR1"•?E(óˆÒŒʼbt_*UìLÆU‰‡§(Cj†öUÖœ«tE–Êúl¢îªªˆ4E…"]±š#£Yõ™ŠWé¸'Amå©ìqšæY­àBð«8£5À¨áÚ÷žÀ™[]»Â~¯b\e®iKŸ‚‘ôÓ|üç4«p©¶o&åš÷x±JëaÊÌb#÷ü ž¶ÈôeÙkiÌ<{š“PÒ)*ó®Q†‘¼Ù3ÔÙK?(Hß‹ï2¼LÍm8„ÖiþUG°‹ô"z9ò’øÕôFÖàŸ‡fñçš×6ˆ¿ð¿5ÁÍ:€Ÿäñl%$3‹Æq³Þ<À’«p5ÞÉêýhèÏPàU:z>šž¢‹¸73ů¸z…2y­®°Ëy+²#LΚA²—Z|º7)þà[šù~sàeŸÐýƒ¸ŠKvï™% ²ÍëtŸ'ñ:l¤+ð°=)„=Õì±¾Àûwè{ØKt}Pj¢bòÝ`bíñD1­fu§=ˆ»«BëÖÎù#ì6¿>úhÙÝ`KìkðM÷‚c|ìÎúÌ2¾üÓÖ ¶v­ùýjÞòÞõ>4-Qþô<ß~UeI&ê$Xdg`¬œ'ÓRó6A«jâ}!Kò¯^‹vÇÓ|ÿf{É_âONŽtGíawÉÞDùOWä¾tOºi(ßOiºêöñyž¼êîn·d²i ²ßûgà4 ´c2ãÑ»6°ÝúО¨· êj£õf¢ÏÁŸ7AÃç¡}‹h›ÿ›ÿ7>mOûÝ›è²ÝV´9ÃåºîÛ×ï³Âòš»Exöï9û‡Ý Þ^GF6pXóÛóPò$̵P~]øƒ%¿z”É×W›ÍÆ•šm‹;Gý&ë:Ú^øƒw*CD›Ü-®´AÖÇógóÔÛªG¼z"V,guWF#> Ö•©ÞU<=Ú–ÊáÌúŒŠ¡F”žé’­ÞW¸zaiÊ€$_´##ç5J5þŸ“°2€“ø•œ‘¥k÷Iÿ¯85¦rhÇŸä3ÔнÌ£éº+&Lã`ÊÀÄû©¢;esÊï¤÷ ¢V×ûbBü-!oF‰²2Z³ ×=|û ãC^k Z¶PÏgˆU,•=ü½”ƒ•À"=¨>Ú|p­Zü‘¢ã7°Í­ϲZpáÁL,ÜMø•ìɈTn¶oáyºÆWBMxOÕ–BÊW0®‰z~×'´MbéÎÙ`ïߺ÷½;êî¡Q¼ÅÍv“m·Ÿßå%v>^m±•Àt6ÀüÄ}©‰²»ð?`®-u_]Wè ™ÎМðV°ŽÉ¸~£Û^ùß ÚâW²>Ëé3÷Ãÿ‹.mG)éðw3eé~û£KwÝáÖ¦Ÿ¼S@ñ&#sÕ 3Eº~V ¾{Ÿ‹7¶uöÕÄýÈ hëMõuE¶§ê°dßw¿a'eší?AÝÍNöÃ$B—;ί„-5Äü¾ ã,LFv÷ í©‘Ì½]zÎp É¿ÊÐxN¤®ÛUœSqæKEÜ»šžõP±³0C³b©â¤¼ͲJP¤¨§ëyb/‚)º 'ûmd?N¢®ðEë}ÑŠ?)z²BE +öSCãî1º2™®ºp”—®8¦qõÍüªð«k†‡D§’•ÍUÑõˆxåz)!PâÿɺÃ9N9\„æºG©_­‘µ6ðÊÁV£TBCôT7‘¹ìl«Å4Gb^÷àK*Ÿ¡P†úbÐ ¼‰,ñö±°æ2`N”ælåEÀœÍioÊ«ôÜ¿Ì~ÃÁ'†)·«‡2€Ü…w=»—S …ΧRó#¯ÐuÃûMsÓËÌ3² A\ÆëÍxÍO0æú’N°ŒÍªíýNiFVr/Rï’©©û‡ó.“ïÉÚe8d±x°ðagAÃî‚í”`~΃– »:¤ga=‡»¢ù ]=™Á_û—„;ïÇ»ŽþZØúšÆëÌ+æ–•½O€ó0W‡VrõCI™èÕzX6v\ ëu_QoA?›£îaÊÆr¡£ÓudJ€!¯Qž¹Äo@¿ÊhüAßµ¯ËÊǺD÷ŽY*»oà }MO{’oùÚÚÖY›,E_F¢-%ÐþÎðP?f´†–Ž÷7 WÛÐqضdy5Ï*A>çk–˼À ¦Ýèçaì3í@…û&]åÛì(÷¯{Áoió“ÁS¶R°…+á=tÙüà½æ]7ÍÑß©ôá¡zÚf3Ôµÿ÷€|¯Š ƒ!˜!–Á.d}p+$=†žAë– '´Ð_ÌYä¥uÔþàn÷®]…Þ~œøÃ=¤þàn„›cû¹»ùeàÕrÛÕí²S6ñû¹ÿtDÎõlÁ?ñ$åŽc`]ËÑ–¾šoÞõCRýÑ¢°ñÖ§æÀ“Ûý `É;ßê>°a®#ðJò¯RÝj÷‘ÖÝa¿p5]w ÆýcïEð«œ~°üêQÓVSCÏÂxcX#¶åöÔ=IâÎÁl=CmKâ²»W¢JauÑ*±ÀíaÊ“ÔFFÑf7Áå+g9Du¿³¬äÕ¶,¼¥.Ƭz#ë§™‹ûq„Ñg¨M%(sªÀŒ$e"‘ú¬`@žî5ŽBK++~E*å)ê$+Ï©†:R•Kd(ÓJa%«ÀY¡1âmÑ¡Ø~´f]‰gY]cüaúL²F»*ΓÉÖýÎaŠ’§sI^V H*F£ó²ÆXM÷VGh>“ä•Vä0dkÞWPsÝÃÃtŸNüÿœ¥ÚLz=$£H)¹Ò]µÇmàZî×Aõsù}Å»?a!·R8gœãzœ—ÃÆ¥ =i3—@“¢4·j'ß©gîÅ@‡Kx'OWtl {:§Ü¸Æñ#z &œï(ìoÆZò²–Sos3Œôø ÓØ45«Õü>Ãf3˜³Pêï|•ž&Ê”㽯냱hq{/Ê«¢üªøUg/GùØn° ³XrKð«—ÁÚbTŠè>ôá î*y wUâwaqõÀÍ~õüõ\MOr²ÜÅß«žM‹y©9iañäÎÁï[¼j똪X»õ Åaô4}9È:£œ—ðd%»È €aãðy;ÝÉ1 YÖÕvœb.òè`7Úðÿû¬?Ÿ]Uð«%(¼`<^ë …v….ÉYm±î‡ÏÓAÏCžy~ƒrå¤:Yù®Ø üpCÎ(ÒøU{º|o­kC3/û£íàÕе_Ùº¶7üÁk¼Õ>ï¼àë~ð«ƒïÚ¦Á&àWûècó±w6tò|z’gó`=ÿªØ‹œ/Õ}ŒšZA‚ýtW=hR1˜V+ŒìKøY„™0Š&ùóìE¾?ZTß=kïpg€W…üøÕ÷œ;p7,yXÕ=ð—Ø›m{·ÙþÃyt3ßc¿ðŸA_ê¡ ù ˹­íð:˜Y‚ò›€Ùë6Å莄¶í^uNK¬Ñ³±Ü%|*èZ;É ûÃfÂ/{×ö®ßaßw®•[ úÅ;m¯ÙMF♫(6ðŒiªv-±Â·õ ³=q,Æ¡´µן@2?fëÙeºg¶ Z'§F­¦Úf_`¬ò™´Øtmt¿Ü#48ðZ`LhM°%¯Óó¯¢5_de…ÎOè ô­ØG—d^ ‰S'A× ÿ»'*v ç¡%55Ë!J³4Ó•%b¦ª«’¢­¨¥;`$ž-‘±4=Ù*J÷A×ÑW•4¾©–\±“0MóScB9¨‚BU”Õ9E¨ŠuÉÍMÑÌΰ^Å+FEèJAš¶3^Û•¦yì‘x2[ïwº:¡žžUT®Êª{½v*ÿª Û¹)BsÞ¡4î£'g+åñEå«ß—îlq ^”kõ uÜ |8Z÷.^Í×2‡QW^ÍK—Ú«ÞÀø Gj «¾ŸÆéŒpeŽÀü+’^Î|)”ÏpŸù˜¥Fpÿªœcfưœ 0_ÒáóÛÏPCïð+‰~@í¼`”Äôºós¦¿W›eýwì;š«r¢®ñï^É™ÛÐõChÃÝÉ÷$¸V_ÆX4¡‰ü†ÿ³Y\’ýºã¹º¿ºFó<³ÕÜÇÂ+Þ¦c`I›aEº7¤R]÷᾿lF§ýÚü Eq])›£y]ôÌŒ©Ð“úhKSz—âÌ›| × ÁÀaµ/Âv:r¼«ìÞ5²ê¶ÔþŒYa‹7pV×ÐçB–ùhõàT”3%¾lœ›ÍzI~{g´òYØ‘œ²%çÉÈ™/’Õ m«BóÇü‘v“_=¬l¿´l™}…®ðz›ëŸ¿ZÆ÷ï³5ƒm];>H×ÌÞ‹Þ;¦%ä3—NòTøƒõõløyèY íô²žžD2Zw@ÕD[Šâù;‚o >K¡Ùþ ö’¿ÊŸko~µX±”šóûðÏ~qûÝaÇ{€W l7wŸär»Ñ–¹ýÖð¾Ã^÷߀t›Bc ø7žL2FSôü«¶º‹`&~‡AÚ™z"×!Œ¶D)Z+v€_%p+\ßâÞ³Ö»T¸ w·Á?,C_vÙ ®†ëä–aì>ô^²ßÙ}¨UöãÄ2MÔê;`Lß×ÄÒÀ—ŠÐW9c5:P†9o¬fbÊé ’]!ìDN*¡ jÙ[¨•Y¡2…ƹ±®Xñæ>8P<½:T‡oJ.z$Ö*N®ªçjVÑÜÌ hÒ=uQ2L3Cqªxõ‘*öKf@F Nñ-N÷ö$«MUÑ|Ñl<%¼¦!êËV/2CÏHO ­Ù5 3¥Ü&.ĵ’4vUqV»¬ÎÕÒ스P6i‚æjfªg™ q§˜b‰¿VEOXJЕÃ8]ÌÒ{*ØUŠžÒ­±Ýн<ÿÝSI#èÑêÙ†iËÆÃ?¿SW-#5×®Lñª-]†ÕG¹Þp†ª°eiå/¸Þ£æ8¢Ej†ÑMÜUÏ“ ‡}¬á½¯äEõag1k9:|3zÞÍ—}àé Ï7ÍA=zŸî=lS«‡ÒC{e?õ`àØ%XT}ÈòÍ¿J…?Ø–;¨Ru5@suïN+Üó:e™oùŒÆÛ%_Ô³/Úw Bs±î 3’ígGš+´Ý“üø·ôìá…šÕ^„6Œ5” mãÖßµ$³{¬søU  ÄXXØðMšSñðªú”JÓõ<äí~.|·4ëÜXÛ8ù6´‘ÁßÝó~³w¯ØªÁ<×xuÝ\òžò>0Í «Ùºg„î“«¼’ZËЧAjau•_-‡dº£…[ ›‰`Áoêy}iàW·ÚýÕþLð«îQû{Ý®¤Fü ðã;ð+pøƒóÜ\Ûüêžeo‚g¸ÙþYbøÕ×þàwå<}þ†‡ë·n A;ä¼ê2 ƒœ_8@¥0V}$ÔNWSçÒ.?Ò&q)ZuÀ½o#Pßv´4誹Íî-Û×wÀLq=ô<™½Wà%o2=¿²/˜bHMøãøäõamU4Ï~(ä)þ 0ÛØ*é 2úuõ+cÓNס℘Û}”õ ¦in¦+Òµ´'hXàÕÀÅ•º>˜£Ö˜§¹+ ÊÒðÄí7ѳ³×hæ@œbLµP.C’f…+¾U׸µÇ]§KTnSM3óÕ;”5ÎêºâWqÆ{ªæŠ¿V¤¹ QÊà"BX¥X•¤1°8]¬¡ç'h -F£W¥ Å©?˜¬9óIjË™=HÐû"µþ¤Pü*Y×*r®ª…Îv¨Øï©X)Ôƒ8ÅÅæúý&›¨â[8J ‰ŽŠj­à]%qwŹYååÏ” ]Ç,º lEõàÕ&þ^W<{Ó<.Öóú 5«x—«Ç)'£¬ç~ÚïXÑiè­°Á°êGÀ)Cùí4~U L¨–ù˜è\ð¸ùžëšEFdàF|›é­|É3_ÿØÅÒ‡g©¦÷%‘åyêä9/eþÄ÷›^&Käo سátNÃlظt$»Tšê§5ÿê9`v*¿§óÀ0þÎ÷áJÞß-äxðJN˜È}Í3æn–LÓ€˜S€W²b4Z;Ú˜ ž!ñöaÑÙìøä XÛ ÀŠæ(a€ž®%{9ÊQ{#ýv™7©®ùˆßÆ8u§»ÏX²ÇíyÁŽsU€W äiàÕUºÍ‰'_Á3’Z¤+„’U=˜æú!ë ’ŒéQâ8ȶÈ|³ž8Ú >‚Þ¶Ò˜«ÄÛ‡ÙÍ~SXcšýÞ6·}ì)z‹ïÇ8ïN©?x*ø‡-6vá~m>ðNyWÀ2$£ýUžÏÃtGP>Ðcšž¸,+úy@ŠºÐÛF²>Ø(>£þ~ìh™â/°Ÿú7û“$Jïž´Ü) ¦Å_Â?ûÚÝê€o¼ÃMsslwˆ/¯–Ùþn½ý«cÜ ð%ÔXYñWë*§œ/z?Pl!ZYNwû±6Ž…±<âÞ±ÿÚún?æ ¯{-ÞË·sÜa?Å»b·}øÔ;a±wÉâ^G8ªç!KÑH·Ë©t[PWÍM@ï{@¦©ÇVSyf™zV…›Z4Fãáг3ÐK±k Íq“]åOÐÀ)ÍgH@ÍMy#JÏUß6J£E9б5º’&k‚=¡aiŠOÂ~*N‘‰ÕØR„–"gg¥(‡r¡ìøÊš£+AšJz}e:âo¥ëZ^b(^vÆ…âKñZ^¤–¯±úЬR9 UñG-Aëj†h¶î Ó¾¥‡öæTìQŠÕÌ÷xõF3BÏU`‘Ä©¢ÐšêÚf«YîÑêI:ÅÍDE¥8Ì÷÷e6+wJ‚Ìeïˆ Z[ÝãÜMQs¼lØ”øÑŸBÿ„s¿ºŸ^}¥míß=”/Ú”6ãú4å¦=¨¯^Ék9IûÆOrAºÒGt”)2?§§K-U©¬¥êæp3ᡇMŒ)Ðü«8ú“Úó-f8Ëž©?ù[z^`Å4ªî}@‰šßþµñ½*‡ïÎûMà•¬¦n@‹ž××Ú½ ¨P¹¯öÁc(Àœ,ßë• ¼ÊÅÍæsþf ð­mòÍð×mfÓ(ni^¿ª©=VOçyz&Ã@HåH[öë*HþU1]ƒ%}.ºì§V6ºÒEÇdj¯û•s•k›Ó|£×ž°¾}ƾ*ßãÄ.Ù½o–›²½Ð[¼áЄW4Ö<mnŠšalZ+†ƒÃ¼…¹dŽfBkÇiÌllµO4%É,:Þ£ß% ç3<ï÷²€Wë(Õþd[ÙþöeúŒØñnTð˜ßÐ,æ%ÁGmõ` øƒ{Á¯ÞõÕó¯êƒ;½Ê  ‚¾Ñ‚°Ø.òÍ"èKͽ^¦œýÜ ²ï¦ù Ç¡e²j²?ß^öW¯6S}àÕ^÷²èº+tŸ¹'Ü6xÝ[Ý|7Ývt{øEžn7ãÕð«\ZÍ{ìçþËð…d—K þžGé©ÐÃ4~%yiÂbå<ä&¡ð½Àç]eY¼ªdùlý€{Í\m·¨årÜÍ}Ûí)—­ùWuéUï,¼ä»ìË]Oq»L‘®ˆ•B²§ñ¹DZ¡¾rhñTŒïA]㟮…~k‘ G3ŒFšªóõªiÖ†hœi:•»)._ϧ{”&^ LQdªCù6=9R÷;÷Ѹ´ðªa˜…’ÔïJÏÖˆu¼2 ÊŠÑÊtâ4£˜QG³¬"uu­reªâj’~„üŸ‡š*ö,ghfDeåf $QÊxõBL(A_UüfRÅùí5Bü+N±)R¹PÍsHPŽ”¨§¾¤ªßTcV¬û–Ã5UY³ä#(!´ 2LùU–®ŒVœ5Z‰*¾q',ÄÇ¢·:a~]äþ•Ô養PŸî"åqÅY£3`%-ù¢úÇß@‚wQåWÒc¼ƒ,1¾~4‰;ë¹dòýƒ‹y¦æ0DÉwÂa.­cQ†1=Oc•Sµóx£-q§g0…H‹VQ²¹ÂËU ˜÷¹Ô,1ÒÚßÑ‚Uf0 *s pŽeíõyªå¡eF<÷Á¯¬—˂ۃø)ÓÖËÒïîÙoÈp&ðgôh¦‡zÊ é> ÖÙc žv˜ôª\XÌGþæv–µûõ˜Õû·妀_-2÷šC,Y‘gáGŽÓd²g°?^ßIò=ÃÀ¯>ždCÛ$÷ãK°Tñ[KëùWÕ¡isu§i;=O¦¾y‘Oê·Éì¶ßP÷k‡½HãÌ?ÃB‹4Ò¼•Óëöé>9•j±~ŸŽàU¡î˜xÒg7úõЇTû‰b{Ú·éï·E®Jð9àÕR^|Á&ëºö¼‡~0xǼL>d2…^Ñ󯚠-µ€sð·›fù×B»ª‚µÜŠÙ'WsþéžÔ6W£©þtp¤uúýƒÍÝ1{ȱóWW][wÝs›Ánw¸nšíæð žkWÂ3\ ~•K·ñnû¥‚V¨ÏÙ‚Ž5Aù#•_µF…Ŗᛪ?8óÉ!ÌŒs0FkhŸo¬ÏñØçÞ´Ù|·-×½Æ]°ýðÜmöœK~-‡m½£ç3Ü©ß7±Ž"ë÷6Ä( ¥ àW×Ú©û‘ó1ªÉ|opØqj£éúíB˜3P÷è ׺ƒ ÌíðûDo§Ð|°ÈV§þà¬ÀËÉÊljS¾Uù•d#ÉšgŠÚB2æú©êÉÇê^ ºg8%ô4QjËQºêW‘i™¦Y+izšg|(ƒ@ø@e_e†òêüO¾heÍ‚ÏTO†Žä*†D)>Æk™±š¯žDßo­ù󉡌÷(-[¸PŠîŠ×Xyª¾«8˽ ¤ÔY-?\}×*šWÔ²+ò¬fßçâÿŠï󪤽 j+âÔó”|Ñ^@ˆù°èE±îºVòQ[¯R5~ÄXœ•o{Sþ wl‘Ìýè5p'_sœ¯Ê E‰åÓ"¾U¿k5 £›Ï·sÅ.ñã/¢FAÖ–(é1à†ðŸ#`ÓƒšÒã…TÙ|Á+Ô¼Ç|ÈÍÍl#+>üÁõ¦KÜ?àtO¯d¶yššxg)VÏ¿:E=òš²ì“ìÁ™öºß9zµ˜‚ÃIºú½_¿Õ«-É·I„>Ô<óGq=‰?„¦Ô¦‘|ÖÿÝlåjhå.jËýrèû8ÀmÍ!s'7‚Œ>„ N&×Óoç©»ç%Ûmfßk°Y“û×?¦tXUê£þ`=Ýs6ž“ïNmLg¨±y…_‚} ¤­àWÿúOƒ_u¿Šq™ðWÀ"VØæ;ÚëÖx{lu¥î•ÎM‚nµÃMoÀÿœŠË7Ã,E›ºàžç4®#8*'Ðt¡Ë˜kŠ•, õKíZ¿¶ÄÝ쟶Ôö°¯Ñy~Ü‚¯»ãðò—Áïl]øƒùÀÿ"ê+à­*¾ïgæÜ3sáu'ÎGw?º»»KJRºSBRBD%L”0@Ä@DP±Pìö+êíu®¿ÿç}Ðûî»÷œ3µfí={¯­~=xÕ»bªa%®S—õBÆ‹Ê ç4ܵžiÆZ”Á$¾}“èÉ)'zE*缆½dÖz:óqnúsýá`ÒµÝq»xµ{ÑŸ®¬»ëž Ñ›Ý07Üöqûõëzª~µÊþ£sÕàÕ÷þ`Re cMý“ÃSÏ!Ôë«Ë(·1@å®hopi0ö‰”‡^Y¢vø¾ý= »Í]·Ûjn+>“€^^E{°‰zØÞpéà]³ÐÆ<|̈íŒ=4ôñ* WëÏóÁ’Œg¨¡²±§ËùÝ0Ú)³£yÆ×— ‚‚W+TI³q ˜'Ý`ׄŠO¨Þ° U@_lTEUPcBbWRè]*ˆÖ,!>É`wÖKM¥ÿ*5°bˆ‚Iän;‘ËšATe«%f0v¨c]3hke±vj&ó á©Ó¨˜Ë<É\æõ$ÐâK$_Š%fÈ¿BDÉëN°'ÁÄ|ô “+ù-‰þödÆ´Äš0^+šjE˜éh BúôÏe Ç\Âò¦0ïœ@´•'éÍÚˉ”Y¬?XŸ¬F%Qw Î1¢W¿ÍÓ‡Ÿ0Þ[U)-\tuÛ>c?tTcµÄàˆªŽº_¯Óy‡þàíKuâhsðå7ðO|JõÁ<Ž»„WÆ8^ NÏQæ6ãEã‰Wyf¡nö*§—š~¬{¨Í§°ÞÖ‘;V•½»*†þ«Kª—IÍöd؃'M;Ú†±xÞ%*¿ÎÂ랸ï&àc{ô]i̳X¿»±‚ ‚ãí>ßB¿TWCõyßóVë˜Ý¯’üŘk÷©1ºžyÂ<¡¥VÓu|c4fhEÌè·¡ÂöñÛ@`ÄÄ«ªê{´ë#àÕxÎÙI¸‚X’å1r³8~ÍðoªràWoâ÷njwèõdÞÂÊk§3±’n˜¹x¿¯c<½Âë‡9õ"Õæ3šAìÙ‘ÀÎxÑlù «@vÆ!jvãfX¥ÏãU3Æ¡/¦Xòqj1 ~vèŒßÏ>èWI³ßÙf¶-ìÁ÷ôûv£»âNøåÌ$ýJø5Û0\Á5Õ[ÕsÍ»á½oêàùª×ô|݉5XGê-÷g Ôe[ |—XþÆj þ‰~»(q‰nÏH‘ýÊŸçsm {ðqwÙÎQuôß®ŠûÒ= ¼ê«w¸ñnœííÕGW+mK·É†L!؃›ì7þE%úPT5؃# ¢éR‘Þ±nÀªI¸K7¼WO53t?³÷js6ùö àÈ~ð©|®lÏ®*ËpkÝVlÉ-öº+†çXˆ•~ xõ5ðJÎí—ª”ÐãÀ+‰Pj„¾B~• «Wrª¥Gâ…}c&£V”{H3®ÚÊXQuñ¾XkëT óh¨½1Ãh6b<ÃÓª_èlh2×Qð«¬VKÞAŠìÙOC6K]‚ñT¸Še.sQh)dreÅsÍ`wªÇ˜Üö0ícªéuÓ_ûß›¥àuÀ>ë¶àW“1#ûêQæU³[KÜчøüd`T)|f$Ðj õJ£u'`Šòq9`ûàlº^ÀZ€èn‰)†kI&z\ç]UÝ¼Ëøö&jKè˜ýÉž‹•Þ\‡]A÷µ™#'I6½Í‰uò6pªFD´”[¡¯DTH_ÇýF)ñˆ …­%ùεa±/º©ŽWË1¢­€ž’#‘3KBçüNv­_ ¸‘b±=Á°^R¿êõ¶–k>ç×5 õæð[2\͵×û”çýì=å}j*3c𸞠{° ý²Y?¹ž¤;+º”FoÀ.XhлƒDÖÂÏ¥²é¦½î/†=¸xuÌ^Áž„=ØÀÝv§ÝÕJoóm;¸§ô%=Ýα]Ü û¯.‰j‡ýÖ?Š=­:p¢¹þ]›Ëa,ê’ÅNä™]MfDßþ¹ ý0 }5G=áÿãÇÂ褶¹7€W5Üf^IëŸ1õLð+áK©ÊzµéÈô¿k¥_T_è@û=×{ŒKîû®jì}fJ°FjSý¼©íÅñÙžÄZùKÝÃ^R #± ¬£‰ê³›ÇÔ´¦)ÖÕóÀ®(ý>«6Ñ_úßÁ”y·Ïßßy9+©»9‡÷K€©œW¯2ï² ã!%ã!r³QŒg˜€YQøÑU}¡Jh©fߟ’œÅæÔ÷žŠðÍ:àiµÍ§úÿ²1tÔZ{ξƒ~i©ó¹î{àU/µÒ^Ô?ª¼ÞÍ7iïL¥j¨è_õejѦ»ªþNÖÂS >Å(ÔRðJT êˆõ…v~ƒoÔ¤ïu~èm®}Ò/ dÉ^ͳÝì«à©[l;W6|Õ¯gæêsác6;\ݵ¿Jòîx—WYóúE½J÷G ¤Í´¬*ž¸?ã¤ÖP3¬¬ÅÔ˜©þm ¼x¡œPRÓý¥ö.ñjjïž¶Ï+¦ªz:îê~to€_µÕ»Á¯fÀ|\¿©ÇÚév°ÛnïéÒjƒ>nöc¾ŠŸ°³þK߇¶µÀ.™K{Pš‡ ­]ÐG$?ûQ3<_E5]=ê{6A .=înÙhWüª øU‚[énÚÖx‡ýœ¶³“¼À?½—­rËŒ¬Ð%ªTèUàUÚ»=y>Xkk.ú´736ã€TmÑÖ ´ŒŠŠª1u¤{Ör4Y£J™GB]é ꩦ¹).ØS*/ôyh O÷¥ž×RÚƒ)Œ(nO”JÌC$î1Rɽöõ‘œšÔˆnB ½CqD€Æ2䪠Ɵ(÷¢ (˜Ë˜Î,Æ4•ÁŒ*D{.Šï9Äœ¶)†P)3žÿªR¤Dî[âÿ<üÑ/V˜¾Ñ²*¨‘GFšÎ¬9¯KìŠ!û“<§ F+¬+ÌúÎÅ©cÔQ tò© ÂXPÕ5 3jfÜj"b v¨Æèç|ŒoêyÅó|ðe°›OÉ5¿Á¸î¿Ú À«±:ù8Rw¾™šÂ«V”šz8í÷öXïÏèî´ë;`æ¼­z3Ž£:Võ!Ì5a©'©~ÔZ®Ú˜Ïõ âÕaSÌ”¿’ãg¬û¦‡–X^eþ’ œŒc?¬²¼”3â§:§šx¿˜l¾ßV‚=˜E-Á5Ø]Sÿà^=°Z7ªÇ™÷&‘¡{^¢*evƒ Ý UÞEÿàÿU³s™JÕüÌ, ¼zÌìÃûõ€—Õpz0:Óû&Ñ1¥©~û õ¯„wÿŠOü¬2uc L=¬¨®¸¶Äz‰’nò«:˜û-Í/°E¿ý`èœÍg/¯¤ªP,óga¾/´3Íßj«×Ÿºˆõ7ˆ«³žî1´HªÚK~ÆEÜk3}áúè¡zܲæO# i[|óæ ¿ZzÓŸe÷û¥ÑÂ,›êî£~û_úQûxŽäÎÔçÃ)®ðª!øU’wËû ìµ2k¿¿¤ÇcÊEo–ƈ `­Ÿax–rhÄ·¯ÁÁkR_TøÕ9¼Sórž¿Æ~ç¯ó¥†NMwÈîuo2ð×Ãýìv»½`ƹî~ÛÖíÕ¯é)v©íìÖZßäª-z¿ýÒ?˜…Þ*Oÿ¦S5UóôBCFÛK=ÙZJ´úûc?y­žÆó†~¼×’exØ}jµkèvË® PêMH}çíö.¬Ã~Nâç¿÷^³!·ÂH]Ôõªd蔩ÉHP‰o‰*wE°jªPù±æäDÆDM¦uS–±}-h›²–g>N”T¦5kBýˆ3CÕv7Ñ5àº?¤„>bþ`ù•Ä_ g(Év&Ñ×ÉÈîlè!÷Æ$#(Š–Y6½=Yø-ðE3¾4™ù21ŒHWA¥.É¥)ÇÓº4ú¬*³VU @•C¬‰£ÿª!cÑcT “ÌxÐzÏ‚ŠÎÿñ«D^G.Gz2é‘óÁüDÜ FuEó餺n Ã '¢:ŸÀÐjâXúÁ¤6gýí d 3÷9W;®6æúBð÷à\²5÷á±ÍÔ*úW’ƒ| üêC¶åŒÐZ£…ƒ>®îè9à:A½ÔáØ»Fª@Ûa¼^¯Ç:ªîz'õE]k"Vù0ö]Qõ9óq¤¯žgµÍ1´§«†°g2‹h¯©d¯Äþ‹ª W™aZüÁ}CýFœ<§r¼»*ŽzÈïÀüÚäð|°£>izw± |Äh‰qí†Yý8˜QkÌ®BôWÀOKŒáq¬¬} ¹§¾ {p›Î#Ù  ê9þ*¬¹ûÔ ÝÇ<Ëúƒõo§¶ ;àÙÅï'\«fó›À«I³Šàt½À±’õ\ÖZKþÑß(‚—‘ÉÃ\ÿD52·ô[èÆjoè¤ ¯¤~O#{ðõ§ØÆêƒÞ¬—w胊Ux°ÏPý:÷=:†h4«sÖK5u¯¤^z-°¨¦ŒÊ#.ÞÛE¡Kþ@»Ò/ÌͰ¾ë {ð8ë2;Ä­ Ÿ^MÑ—­ Wv­õAõ»ùÜ{ÎûÂTe>Ðóz¦î‹^‡=Xm›„g(ÎJÁ×W0®¡p^2//€_MÄÚÍRSü9ö®?Vwyú¯.ØYØ /»vîswÜ­Wmôv7ɵMÀ¯^ÕãíÛ×m`<ÃF}Ð~{pÏåšê/õ0´­9z¨,k87FëÇâ™:à]Ñ\‘zàï“X¯~“ïl¦n*ձݻöoÛÀmX—é–¸÷­T?ÿU–kãfo>¦¿}¥‘ì“õ*üªû­ð÷e ä /¤¾h=|ZüWµ±'õès©´Ó†öZEFu åÞ½RU43Cé³í¦Dõ¹í°CªøÕ(z«Kò|°?_†ñW9D¨¢hÍ4¨ˆæ`öŽg>N¬ êMÄ“×Åó¯ATSãÛ³ÈO  7R#¾¯j2¤Ó’zÅ©þž@?X#„¡åñ !Lf‘ÄØ(•Ñ®‘§I <—XœG±_ùˆ{%óMÕ‡4ÆcDᕜR˜™ÂHÒlbi"y_íÁ<ÄÕÿ‡WEh‘ÎSIiÕD5³*žWj‹Ù݉Ÿl¼JÔ=è{Ÿ¡^cÿíº+y¡àWâ¿{ó{¡þ‹Wíö!'1âÑ/«æè'Ãëu^ `¶F¿ƒÏHÄG.ÊI¬8ÓÃÔ7¸Ÿý9Aõ4¿a‡?d*›<Ö›ˆ;ª¼¥ 0þêO¬€ß´œUœTiÞð+ñY½­êÃÌÔ2]ôs¦…WŒg—saÁäÓq:†±ÆÛÕ³XËõx漿=†ÿ7‡Å²Lê&ýàôOþWf«–ºâëU–îæ/F÷QcõZó´yJK$Ó%ð¨©x·ýW}ñükñÍX%§ß.q¤¿1ž!½Øý€–QVΖ–²ÎafµÄ·_Õo`´Q†ŽÛ?üöVz½þ 3ßlg˜¯Õ*oæÖõ^d•ˆW÷Q§a4fóyð¹±XY¬2mj&°”U¶ê?¤–È5µ31£.úíÝífàÕC*Ö~k;Øæö<øò:û¯ûνæW3Ëô«á_lz¸Œk¬w«ïÌeï’wÕTA¿-QÇô4pï2hc âxò'ø£ÄïN‚_]²‹À)®'n»'Áyšê-n ¼Ú­/_M·½Ý&û—.ªÔëí7þ ´¾:0°¾þZ‹§ª>õúÄB–ó‹ Œ•SúžèƒÍÀ«Ž¸³Ä¿oõó3uàç*àÓ?¶º“ÜÂ{¶ØÜ;¶%zk·½ê²]-·×ûÉ;mÿgç©ã¼R¥…^2õ0ã+ò|ð,õEs`óÖÀ]j£G’éo߀ÿ¦PÃJz©ñ£’œS·AÔm‹™­¬3æ=× p•‰"GUÛÐÐdrp}½õqâ!Ø—ë9ú³ó鿊ã뉌˜Š!‡)AŸ8þ¤0š +š$1·W<òETPƒ9OV€Ñ ‚Q¹ø\!Z\©ô¶ ÿ¼Ä”ÅG[‰5OßSiæó¬«‡B‡íßþ){ 먑NÆ^ÿ¥™‹+¶·ÝÍÿÔRo fÝy|n£Äù$õÊãþ}E·À¶ZRYs1îÕÏv¯šã~õÐÒæøÜM G-jËO ñû؇üJÀÙ4û…-b›ÙÔÛz«}Â¥„Oùàµúxø¶-®é°ã¯Þö®{WLEVð:«ÑXP¼ïó.õ¼ÊPù» V¦Ø4ræ¶ø0óç0pM¢¢û ìM¶?ŒõRŸ±kÝÛv1f—ԣ߭w;WëÜh7Ôæ¹°篺_y¦´ZªŸ¶_ø§™ ÙGåêÏõýÔ0ÁzôR^ìÁæ`@Õ°û`L¶¯šâþÔlµÙÿÙ/®[à©V¹`”µÝr [> ÔÃî*õúÖÛ×\Š+á$þwï%û«]d$*`¥Ê1¢„(zÈ]°gT ŽÇ#îÔMÆ8ÔÇ\GP£ÍxV1ÊRû&=]Ù, ¾h"ö¸~°S×óYÕ=ôMh -¨rª†^€+ˆÿZ*hô¢ÏGÖýpÌÅ@Ū îú3yi[e’ieÒoÍ%¬£ÚcÃP4¢¥ ï—am/©ê,±†¢V•ŸWVÄK$vV}´48 2šƒÌœDæ2§D²¢¯2i‰Ê³èÙ¢ª|1bQ¾ ê¥D_Õe\B~zÎÒèˉuO!FEãÙJ1—ÐEì½(¾/±­T õÜÂtàU€Ã;Í"v÷-UB·§÷ÿ¬Á¦°•ÄçöVÂApÁ¼GÕ+z/øU2í¾aàWCxÕºê½BOfÿõ†e6GbËEMíuÆK]©8ÚƒÏ}€Õæó»ÓTŽùRÏãøî6ßë6fª‘]å®j¬™ º ÄŽêÛX·×µðÐcª¢÷†Š2òúUKŽœì©O™<¯mÕ Xaa ¼’hØm˜¢¢^3íIX‡;1;ë`=m‡ýûÆS¢1^óïÁ”Õ· ¿Uð„e1ïsÕ<ª«`&½+v ú­}ìRcïaÆb@ ¯—KßnãÝO”Ó=Á³ê5¥ÞigÌ’èÑ2ô*U‹6‡ôy¼ÛF-=iÿñÙ‹xÝR;Ö£Ÿ†ž]f•ùC€=X ü´&C}Ƶ?‹±ËcEã>êªú”Ù„e#þ«ÆüûžÖÁ\—µö.úº£ˆÇ…^ô;À¬ªT…í×¶~ÞVè5¶¢k>è—53õúðK¶`¸<ìÁ êoóµ÷‚÷6õ'ª zƒîŠ;5Äúšƒ{HÍà*ÛT |g;öÀÒd±k°KM¤>Ãbèó1ÌÝ-ŒûWÀ}䬭ÿ­wÖþi2׸R=C½¾p¥~Ø+‹ñüm=Ú-Êe•è‹VÇï#‰&ðN3Õ€~ª*¬â:–ž5ª‰ÙêB®2\õw£\®cªoèÇÐ8Ú=’³š^çLê!·£ÏJ2jFƒ#¦© ^j'Ö›(IKJ2ã‹aZ²~ G¸P}àY‰0Ž {ûïhM*F¡!Xù ¬ÑžŠÙ½—xU<à˜Ú§’ô îõç¾ç­×ÐÃk±.šû[À%ǨÁz˜9fkQ ¹ÀˆíMøDkÌàîX­{¨#ÒLâ&—Äqýƒ¶Þ¥Aìø¢=˜zo9ÔgÈ%©NTĜ֗1_Z¨¡gí_þQ{kª‰ŽrEÝwFâzºÙ¦¨ÞçuÂ5_óÂx ¿ª [v4 úâê—XÛ±ÕÜaT›ãÙáù;ðNk©‹,x•GoȒЫ~{»xµF´ßÙª¶#xÝ'úí2Â/ùµÌ"½3ü±m®ìZêmJÃüxU O¾¼zF»q$O¤zTôdJÑ/(9^kh©Õi <;ç•áLàÕLÆ‹JýÁêî˜ÝâÎÚ…˜]?¹Êî¶ûÔaMëGÝw¬À½ú¼ž ~ÕÍ­Ã,¥–è#øî)¬Ûê˜1Õ€f}V­®¼ªG}Qᛢ™É q›±#Éýë`^íõ÷Ëbïh­äL2Úwe‹‚Å.^I”Ôû±}äyhÃ/Þ{è•¥¦íÁ¡hy2Ú.xuã Û0ÞÃ"ñ¢ãÐëXûIòëª2Ú^æyŒeŒ·ØnkU£HzH)ñí…ñì£`#Œ¢~{eôÀËêC¬áøù ßù¬m½êFmŠŽŒ§ÌÁÜ›H=dÁ«TyàÕÛxšæjeè„ýŸÊ^êuÐ1X;wÌ|àÕDkM>½×Žñ|Wh‡ÙÚ=Ø#0Šõ;ÃN`/–¤ãõ ê!×/ÓK¤Ör¬kÉ1Z5àÉõºÐk~3ûˆ_–[šýÌ´=Àë¾ÕËm9×*|Ò¯b¦é]á“¶d¸6øÕö¾ð^d¾sY\ëeý(ðª*ž¢že*ý#ÉëQct=³$¸6á®ã°7½Êú9)ª¿?Æ~ãÏg|{=wÄ>Åø«êúS×ÄÝtgÝ.ÕBoucÜ8QÕ'ôh»Lk™ýŸÎUë½ö{ÿFžv^ÝÕ#p¯XûâEk‚÷*à^¢é]=5 Ìt;~:`4Äç¶×ÿÃϯ›`,¶¸­zŸ(‰^Þê>eýÁu¬SÖ-Âç…_ý~%>Õ*>´ÛˆzW9ªkÁÿ¥âÄ:à¦hæTB»Æáûè§¼êT’õ^“ÚýCÉ[–¨fohµ}¨%n²Ë#Ž<£††®„îãºÍ…m¼Šqñ<ÏhÎì@Q3˜,΢õT8Û‘›A¶_AZqüoŒ *‰–`ͬdîûY‘˜ÐüÌ¥©A´JeÔf!Öw¼ÊRAíÕXzÑjbμ)°Ö‚ë§Ñ.Kà¨0¾R̲ÎGYPs"й>%"õ&2ˆ3‰¬áZZCéüT<-¿,FP±]‰MÑ´1ƒxÑ@Ù/ÈÍIå™d,u6¯6E"Àº`-4#¯«K%Yw¦U:N]T5èoe¼èn؃bw>£>Óë`Šÿª› ÛaÄš­¡fë­Ä:‰sh¤7Ñ6ŒÅ|žŒ3ökÌàCŒ|çèÿyìýª¦ùL/"{Ýo|ÓÌÌ0â)üEUÖóÍ8Ö¶PæguDý¨%Çá*í]Qž‘>;¼úÕTÐÒ–Fú€iî•ÐæÃ ¬ÔL<„Õ»‹çƒ\ñO0P\àÿ…aófÈIž>ëß^UGÿí­ÒÄ_¢¶¢'ëæÙ©séGz 3h-í²áè“ûè¿T;¥¾Å *…¹ûZuö` 0©ÜÒïJ´Nq¬®2ªª.¯žÕç1sÚª¥àWÿ¯š¨N:¿KwŸš%‘¡ö~ð«=À«R@CÑ5–ÚXR þV‚ètdŽÞuZ‡¥Á¯Ä+É8ÚŒW­˜Ï½s_âžKæÅC¡Wü^v§Ÿ Ü(dÿ²½mû®º£¯X…ø5˜?ø‹-Ïøö-êKóºwλLý«Sê’Þ¨{0j@êML“´ÃõE¯¯qx3õEÅÆZ…q?Vøyžþ§«þû­? öà<ÕÒ²{W3€WQÀÅ;À«}*Oosè's@Öãa¶w«í¿:G-ÓÇíOþØõŠJn³¾¡Gâ.ÕÈf§±nYWŒ‰(0Tã¹ýP؃¡ýRp¾ZçïGk9Øé>³aWحË]ã>²ýñz“½ŽßŠ»ÙøŒÔóúÉ®«“ÜËìЦ6z­6fÎPõ:F/}º¿‹fŽ¬Ë¡TÍÉȧÂ<5nIF#‘øÕ0zjV«úfMh ½×CÕ wõ±WŽÝ M ”Qõô:<¯ @iêvZ ¢û®,kAr·&’UÅÐDyZÅÉ\¥ù©ÝžÃßD‡S¢t‚Hò‚ÀôtªÈH ® Œ$M¦/+=râ(ܬ>U“£ˆ ŒS¥O>9‚ž1ôh•"ê1I–ø«ŠE<åræ(yKr~W”¹%É*¨–Æ\í¯yF!¸$•±mÒ@K&žÑ ùèãÊâ=äÔKÍÂhXÚ–Y±‚W5aù¥3ž!ûÓy¬ÿÄØo1B[€W‚¬ûÕ‡z…þ–' UX}£É"+ªÑz'¸º´¬%Þß‹Hî-'5`íJë+a¥>KõÄXð¬ö˜i3i{Ïàùàtöî2µX^ê–ÔëÌ-öó=`ä!u’z2‡UìÁ|Œo ô”—­å»íõ+¦¶WH‹ÖÅ\X ¿«{Àèf¬ày@êÏÐÛø(~ÛÅš}`÷õ{Ø*©¡ú ÿ;³|¬þ^B·ô7!&ª±º‘yÖ\Ðb\r<ËÅ<ï‹=|Ö¨ä;÷—øˆÊcû¥æ‡eÜ–ùƒ}ð^SföÏ¡žŒTh¾9| Ü5=µ"tÒþé?kßBo´ÔÆ•tWÌ4\c¡ílŠë]^_|ëÏÃ&±jsCÌt©G߸8Œï£ ƒ_=„Ï4ãyÂzŒg.ÖÕJükD{’ ^õ‡=X1+³½m~õ£~Ê.s©Ô=ä¶T¸´k¥7«ÌUï6ðªúgú~žnDj%Öñ¬Éè̬ÉR¸àdQ*5oC,=ͪðÀ«¥öøÕXðºVî´Ýî®Ø™Ø vÝWîC÷(ph¿ëFÀ Ü¥_Ñ“ìTÛö 1¥a7“ÌžZ’s£¿Â+ö À]Eý¡Ú6ÿDù«8a$žc+~›B{pð*6@'؃׬“Ú ^\Þ¥¸‡Ü-ÛO½üª°«áW¯Ùß­Ôf*)µXGtn[c•xQÑ—’>mÇj´q˜Õy¸Çd®‘"T®hMVR £.N‰ÏY¯ª1PNÉú«9n¼kLÞ³OM }OD¨¨êê‡ *xU #›ÉµY½8…O |©=Fº(±+‘™-1*PÒKbFqùL"m³húÀ³¨Ó’Â8¨2ôÞ'ÐÛ%±5AÝŠtîbiÄ–DÜ·:Wu ä’±7SéwŠã©c<ýý ¼W4#P£ˆ.¢Sšç}ù"1]ٚċÊu\$«.™|-ˆobmƒxÖzŽQº¨‹D[$‹‹5kÌœ<ÌÆØ·"¡=hÁ‘„ãÉù`YØJ‚¢ßãû°²Å¦~B]Ôs´!Ÿé¤úè.ØGâX«bŽ>@ý«|¢ÿ§wèaÄäÖÀÆÛ)Q ÏS—ÝÈÍŽa$ª™Äé骞¹©§±·vš,SÙÌ5‚Q?€'/1Sµèˆý Œ<¥nÓ7u\ezߨx#sã–ªïÝ3%‰cõ>ÓÈËÐÂ’c6ÇéüxÝŒõ`5@UÇêݼĬ¬¢úcêôŒÓïø˜Íº8°a5öþþþCè¡qjîn6šZ¼©çC¤&æÎ@¬ž˜Ep‘X›Ÿâ·Š˜ w5Ÿ¢G ¤–¬Ô?nʺqSXoBìÁÛª¤9~U˜¶$ô‚ ÙöM‰E×q.Ë]6sÀJ§Ûú&Gïð¤îú»¬{:׫‡‘ÚU™äêËHÜ›¬7Q«c1ëyÕ ]‡Oå’#Èyÿ{@èfÜS—…ÎûCìV¿,°-ÉþjgÙ¶öêW0SôÒð ›n@=äÍWÞQïMS3ïyuAOÓý/Z {ÐxàR_ †œJDVGôÚ,¶ú6Û{½¿[Å’_SŸêYÀ+yÚî°¢ZcÌâÉýë½Ìljœm©wé¶´>ûaÎ~®†ó´¥úP=M.§N9zaVÉ3ÅtCÏe0÷t5³ˆzÈiº¨žkFk‰EûŸþkæ{-\ô¨*åÝR‰F¢TÞWµ=ß+Ñ}ö`2õdÄbñô_¸b F=¹$'3•U{`J´Éój¯ÊÍ+yÈÃô_þ—f½ý¡ÇUÝÍŸN1 ¼k¶ÙežÖ¢ar üjõÚb¥ÀLÝŠÞ–hæÐÆû©+µ„>ƒU=ŽVÃýØ™å|° ú|6îR‘HóŽjj®êsÀWí¿þÌÇi¬S]wÛÌÇjœ`G™-z}eÐkµ±cLÅõ¤Ž×ôfc¬HÉw~K½Mý+9\Jýöj`¡‹q—*¸Ï ܯ5Ðn/Þ•ÜøÕ¡·ýž°KbìS`.¶mìõ³ÞmcÃá3~}ó€¾6®l¸¦k¦w«ÍûÞÞçF"æ¨Sz·îÉx†*¬ #ytýð%Nbónƒµ—Ëø«Mhñ4uø>…ú¢#üÅöSð+á€MÜ‹À«—ìU_ÿé:¸¿Ü·ö÷ã°ÇØžÀ«#zškû¸öv‰yz«ýÜ—lÓúØéë´(]I]Ôr¬?(‘±;%Ê’•4 ÀVª®Õƒ qÈÿÃéú‹c°A«î¶cÖäùà+~ø-ö+üÖxUV}~õ?»È$¢?Wƒ_6•Ð 3õuÆÐea·¨ÁøváW÷£u3ž!¹ R1(•ñ¢}0×G3k­ªa £]Õ[­q“\CÚSÏ©!¡“¬7‘$U›ôb¬åhfM‹·-¬¤ XÃC*PXOAOObF³ØD…¡ÃóÁÿüH1Œa/ŸÍXú¼sTP#9w(–$Ò¢+ÆwSYA'üJ0ª:õd‚‰4¨¶^¤tÆ5D3þª3RòGlÈhÆxŠEZ˜ü*?ï‘MËStD#:Žš‰äWETP:8ctÌê)FžÏ(Ñ(âP 5šÑøŠÂÜN³\{ÚQ'_x] °ƒLÖóŠÆL;«úâüoÌljc=ú}ê–^\gÕ_7Ç ‰e,ĽZç>ÒCµÒKt'Ú}í1s¯`·»¯®:{°9ùåiÌ­Nj<9à,ØGï¯$?úY“iššqÌ üóx·¥ÅïöþÌák^‡=ø± ›8ææÔó ðJÎ[ê#¦¦W”¶árÌæ_a JKÅañó×`äÂ^úÛ«c]=‡••__Ç'*—>ñ?5»´œh¬Å~·Ò_AÖ9º—9fNëJŒó<ƒY¸ ë¥"v;ɆÞÅó½À$>S’9S[ý…v}‡«¶•øOp¢®XÏÍYÙy*>Y’,ï¦* óM̾ŽjøÕ_þq{ƒY—1.Ãý`&ãŠ5l¯×z]1×ÎáY;MÉù`=jÊiÁ@¼s ¶¥ä;—À Y¼’*e\­±z¥Õ¢Y| duÌ pð«¶v·_-Ì´Æu±í»ê®¾hsÓ`¶4‹ôîðu[+\˵ÓÛÔMsÍÛéÝ6•Ðk×Ôy}BwdÄjM¬TÉûí…6w•hG%ÕÎ>– }¶¶Ëqðáø-Qõð§Ú›þr FEÎw¸WíBpØ]S÷»è¶b½î„=8Ü6q{õ3àWËÁ¯æZß”QkXðkþH=¯[Ø+³òa)ÉãÂꮃÙÕs®«Ý G«·âþÓÑã3ÕßÙx-'™ûÜ;6–ßÃ’Aä¢Ýw›ùÎkì—® «â–ã:¿xçíÏvºÉ@›V«²¡“&«&‡±n²èºWáé_U¬€1•ÙÉh)ƒqª‚þ—9/ú rv*ë}žji–„‘; W›ÝdâU"æò àÕýÌ–)/:$‘™šøéK~%ˆ1ü¬í§4V³,Ñ÷L‹|:ñ1ä6Ñèý‚̈Ô¥Š¯¢éc/ÇF©BSÙž…h)Ä«tú£$ ±.18žì*‰çùb³j}ÉŒM¤Ÿ?‘(K&G¾!>°dQa~2ÐÍ/‘ ¢¨šœÉÙ ªX5&JPëÏÇOýWQôÃDZeÑjŠ{å´ÄƒíˈÒN§!ó°>OÊ)fwE ÞV`uôð Ì2ú+®«¾ëÿb6蘷˜«zªÿýÃuaó¤yI‹¶Ã%¬ü•°Ç*’íK-– x·ðù4žU”ªÆñ€×Ö3Ñr©%; ãÑŠgácñJò‚óÔu•j>Ó_`웪…¡ÖR¿½3ú;kçãÖÛÆ×PŸá]¬„ѸVC<[ ìà•ŒÙàÿwà:Rm~$¸‹Ä·×j¬ÁóI”ÁÖ›ø}Q‹§6‹W-ìf¿Ú-çƒm{M6'í‹î¦{ݯmfê£á¯lýpS×ö`²÷÷½÷½©‰ùþº:¢GQ_´dä|PžET(ʳ^j+0‰ÙèN@U©È1 ({³¨&æè<lº9Œí¼zÌ}c©fÚ ·pŸ¯«z·{p0ø•è·O·-Ý.k pR¿doø¯bŽT’J:d¤i%ô}1ÑýAWÄÞ!0µÑ Âz÷«'ÐÇã˜ï¼Õ/ ~U (ú‚ûü*×mÙ‰^^ã¾²ñý}ö;—⺻¡_½×­v+M:xÔ2U(tÌÔdF^3XŸ7p×â<5©Foz9ÌhÉ8z)Ô-È¥¿=ÌÈÞxš¾d(ëU9³=Ô0L­s \=|Vôú„îP_4 ×’ú8ÅéË•úC]#˜“uó0Ú)`샙Œgˆ§½VHÅIŒýŒ¥R ?eW (X$b—ÅÒJÌ$JŠ/Jvê Ú’9dcYdJñÅjK-¨/˜À;¤ÓB‰ÿ¿|œ’<¹‹DcÅ1 !›öis•D, NEWºº ²“èY+ÈþIPA¥×£J±–£#· …‹‚z®Ÿ¬.Z>ì!–wFµ]ÁɺêæÊ»Ó`-UÕ7·ÿ%ÖÇ ™œ¼¼ê ¶ÖIµ€Ý3œÜ°*Vö>=xßöà«Ôãió‡?±Á«ƒ1íÁ苽{÷ :a·cUwóƒ~€ßÝg*›*f†‘¾ú ÷|Ìôcþòßúpê2õÛŸÇJº©¢øð/»®¯â1›_0e½j8¬ÇlͯE³k"Pa‹:O¿€hW?Š9°+º Z¸Ÿ¹Ãê5íõ?À«=ZrsÖoNù“Á÷‡‘'˜ÇÍa]3ð}Xf£ñݘ—ƒ€·]|ÙX«ý`þ€U“‹1ÿùK•Ð3hgOC“(ö’XÁ^˜S[ÝV¹&Þ¼î¦Ö‡ÎÛ8û"p£'ð6 ಙ{“-k2ô1OøÙGøNwÖÁ}ºÔ¯‹ûVÔ-ÜA¢î: ×V'€\µð‰*j1Ъ ¾½k9Km ]ógÙgÀ¯6¨Â6Ÿ;`;ÛSªºÙoÃnuø¢_ßÌÐ/„µá¶®žÞ®¢¼½Ï½¿ŒÄÍQ/ëéº5÷ÿÒ·ÑRcÏÔ½W +®î:s¯[ 'è$ÆF¢¦ ¨Güçí¯þtÖÇé{ðY÷-ã¯ò…º|á³îYU_?åVº…v²Û£Ïë™v˜Ö>{O—PÛÁ¯¾õÏðì`j£‚»5Áì)¯âêmX{º69O Öo}„x5ŸÿUžÍ¡ÿê202]½5Ô¸3†öB!|N§Xi•™å>’kö!UÓ, !oé¤w›]úzN«Æ¡ßC£èï.Žý}ýí)ôv£çFVwOXÿÉŒ›”øöéô¼ÇÑF+Be‡$Ƥf’³ÄP?B"ÙßÏVA]-É%”Zбh¼"c rq2‰:QT†½¾|ô`ýÏO 6fE¢rɵâxöŸÉÌä¹abÄ—Øù¨×W=TÃH&Š wJ¤ç+#RÏK¢¬ƒóÁ@1>L,$ΦwIÛ7 w2,™Õ7;0n³¶úYeëî‘øö3ªžþŒ~µ¿0Þ›`) ^íTOéñÚÓ Œ³ª§³Ž­ÔK§wëáTì¥êçôbõTìt·©%z}ïaí´¥õz , 3kJ¬Ô8óµžMÜÛoz™†f¡‘>ûã¸Ç Ö2^¿èÿ_ýAm«çU!ïS•߈²Î؆·Maƈ¶ÐÛMO´FóÁ&‘|çXp­À¦}àF ±šK`?ÁèQ‰¸<ŒWŠõè‹©Aº°½cN赕ª¥^åÏÁz©úêc°ßÔ¢ ù6fÙXµ‘~óQ@‡Aj#O@ éé@£*àYƒ”Ö…`÷¦Ç{(sêr¨‡,š[M± _S=`õ¾yÐR ]³Yö}{½ÓH'¹JÍKí]]]?ãuǨ¿Ëz©rBŸ‹õ¹—\¢9î:˜ð­!Éwž‘h…OîÀ^“‡'lD5â&èý§ÝXD­ õWÛ£~q°å`gl7û¢jbž²÷¹¼ðu¿ðêPøö×Á5×[•ïýíÝòb¼ÔÆ{QÏÔ¸*+°rP.z¶-ëi4f4ýQÕ®6ÀéŽ~ºtŸ€þÎP;ü§`Î÷ÇàµÝið«Ïí,X¿ß¹]..|ÑT•`®q³mw·K¿¦çÚvŒÛmÿÛ]¯Ù¯€WËÐ’àa÷´(õuRýYõ¢>î[‘¾õžôÑ Çl~”¹WÓY%ñ)¿ºÖ Ð/WWÉ®§Ûˆïu n¹ûÌŠBö>›.àf¸ù÷ß¼ 6äÖñ1oTB×M}¬Ð²¬Æss§(~€cø­~R0ÃbFÐ’•Y ¨-þ É’X!Ï¿ŸH!ñ¢3г…Š‡‡3>*ï·TORßJ¢”Úa6 î•dª!Bý§DÃüÁŒò´ú¢SPL•þ²ß^­rôˆTäébþÈ b ·‚9U†VP´ 4ªâ"õ¿"º Œr¨Äø®ƒ2T ÏP”Ñ^iÄ™DT ”¨O±kyÅJ– †Å»ž@Ì ù£\Kâ󖾯 ¦+À´>™Ø¹õÕcX[T—=“™|ÑÔ`·º¼îO«t†zSõ׳<-Ùaèoxõ˜þOÝxÒ«BXa55U/ÔciöUMõJp-Á±Î˜ÙçÁ’¹S½®aŽ×{ë.¨µ†%ÑÅ|G=‡(õ¸™jÚ›YFÎþP]ô~Ó™xõ¯þßý™\ëÊð~RQF¼’WUïSŒ6càU=¯´–ȵ‡±&Ã3§`ýä‰Ê k˜‹šÿÓhù> d®¬Sÿ*Ñg(§:ê{×ìÕ…°Ö£Öú«Yê~½Ïì3/袘;R=q4þZ ¯G€åôC?Н~,Ÿm%0š?¡­¿õwQêãú#iõÉ\Ÿ‚O–¥ÏümÕÔ1o¯N…`ƒØ×ì‡èª:Îvï™iRyÈn2ÕôÞ(¸\¡‡[Æ©š¬0ôimÖK¡^õÓæD½VQ<ƒ'¬y[l¦㯞§ii5 öàýv·/•¾’,ø…mcO÷w‚Qéð-ÖK•üÁ´p5×NïU_šÏ½;àW•ðäËÔ«ß¾Ró}zY*ÑÔÁ³HÔì}èm˜£­ð|y˜Ã;ý,›¼ê¨žsÚ8×ö`/ »Ô]·]Ћ;è¿æfanüî½mÿ´[xµ×_½ijÒ³Ý=û®.kuíAÉIJNÎĨʜ—¼¿"ôl‰o©2Ïv†3'y­J3+Bx*6P`½T©qR ý{PéX'ýÔËêw¼SøðÐËè4½œú¢KY?¦Yþtâ™Ô<ý@7?ë÷¹gîd¼èIûîÕTÇ»÷‘™55Â&›½Ôþr {÷ X8õ0ïšà©Ñ.Œÿ¿´É̹aX}©ß~#Û€VÚƒÌaü -®COìèÐàÕC~.Ð'œ®=~N©õc¶k>ëW0‹ôSáë@¯ò\Uým¾õNzߛШ“—¨Óz–îB&U c'šS€?}©SWR*âª%€õÁ´âi/P9PªƒNòGÛËþ\àÕFUÑ=m÷¸«v¦ª¨¯ºÞî'·ßíR5õJú¯Ú¸Ýú¸o×i=lÿ«ÝÉúÎbãJµízúw=’ŠÁC°êæ2ö¼î>˜ñWÑK“ðû"µÍ²¥us<é`äß¶žÛŽ©\š[æNZ©H¹Ñ~àŠ¹înúùð«{öQ#§`ëTáÐiSUeP›¾?ö…´%Qê©UÄüƒY¿Z#*ªD5º}×RåºÐL8 Ìí½¡aŒ v¸‘®s‚…_}Ã|çt|³ýW²×K ðdQR›¾‹ðê}JœäVBeá Î=ñç)É(öÌH$zF<ðFÃâ#¸'Z%ñ©húás˜gdàHh «KOZ?ŸHV¢ t—“éQÿåQ ÿñÙU,¢m•@‹0#ß^ë,¨)ÍORAåæ –Ë™JQëϱâ'ŽÔwNeÌ—`Hôt_Øùñô¬õ¨µ$FÕP_©‚‘úƒ³±âëê7Ù–ÿa¿Z¯b¨“pX½¢§êøÄ°ßÕ‘§®¼Ú¥‡Ð¢ª:ëWÀÛå¡)fú5ìÇr6PE}¡ýx»€}ð¾<ÏxUx5“g™{LYSÃÌ1òlŸ©Zú„iG¼úxµ³WÎ^PY^~ýucn©Ú^8•<[g}ÑtôÊkñ®V ûñ4Ú{@½ˆûvàùÙŒ(lLå¾]àŽ7©*ÐVßõ¿0µD˜<ëã/€·€_í7`ådal!ƒ½˜Õ{y6p©'¸èÏè‡âX¿?b%Åê=+§C𪅪L6 Zlb‡¾¯²ÌúƸëMh{Ø^ÿ<øU¶»i¦bE4³§gy½0êç0—¦D`=‹+7ÄOg Ô5u˜/‘3²÷güÕ£@Ôº˜{u`qKþÑç@çFTíX:ç÷·«ýJ“8ûµ­jÛZ‰i{Ù¾íâÃ/ù¹f~/ü‹­®ê:ê-êæ=ï-ïs#§a'¨ÏÐ-/IïÐ$² Q²“ÊŒ¹hãJàU.ë-‹FÔ\õ*Öä\Ì©$5ÇÀ¾çÏd¼hž{Êî×Y®šëw][wÛÍ^U¿åÚ<÷¤~Uµ‹mg·Ùz&C=¦÷€›‹/ÂúÎÚHæ`6³¼šƒv6f%šè=ñÑõÀl~”šÛR {ŽÚëÿíÕ 1îÛÝ;À¢ÊNÎïÙ"n¡;oÛb¯³ï¸,àÕbê_µÙíF8ÈV•:{Pê—7+ô“áM6*\ĵÒ¯þöz_š*xîõê(ø•øeªÒ%õ¼¤*©àqÞ‘¸ûÅŒA—óÁ®X›Ç€³sñijº?É~à/^­PÕÜA»ßݰsTiý‘ëê~uϸ­ªœ^»p²m {ðeà•äãlf=úÇôAê3ÌC/öļòÌ`;ò«éxÉÂþèD~%uT%?T”]ËOÖûÚ¿j«öÂþûÃV=ØME»|n»bÛãýuö‚Ët}€WµÔÞ9p° FrØ×«ôÐæVb.Á‡Xy¥pÏÅADÆ3L>ʾ”ÂØQÝéHŒ*D« ^VæJÕÀ¬ õ¢Ÿ¨¯šèÆ8Qÿ‰Â.Z;t+4‰NÕ±ïÏ¡RK4Ï~ºÓ3"çw­“C.ÔȘC4H‹è!ÇQé%¨CÍÊ ¢“Mü)ɉN *ÍóañçÈùP¡3ÊŽÔØÊO[²|Dë8¸Z 㬒¨û"§‰AÕèdÌá$ò¹("JýQÙäžéŒ‰Š§'=‘¨“AÿGcâék+À3¾þ–özÈñyŸµròÑV óŒ0…H'[½.º()*P«O{Е¾V¾îFs:våòúóÀŒ|D…µD§=¯.êú^$v½¾n†U"ýSWÍÒ‡1ŸÛ{cï|Q÷£ç¯#FôfQ}‰70‡›“!>…ûv'_áLàÕ-=ƒÖò>SΔ23œ³ŠZÄzà•ôº1!½A}ª¥^U‰^HÇ3þmÕÄ+âU¡ÿ_ôF0—0‰§ú1Zô¯ªcv=Êx†6JÔ¤ýÖ^zï§ê1÷Ê›oûWÍ|^ê}Æëþ4 ÏxÕ x5ÏìѹøÆm°Ëþ°v$ð>fä¬ÃTbö¾Ö3˜‡ø>‘¨ãõ *A­Â+Æúν S¿]ªÒÖ7¯Šcµ ^]€=Ø/Ãå¸OÍDÜù>;üj¥7W•x†ê¬(QÞ:„;7î€t ø8†Õ›G¡‡¡MÕÀ„VR;®в>žâZ)*D…Õ¡Wý>v³_¸QÈþdÛÙîö8út—ýÉ• Ÿók˜õ†p¼‹ —^mT˜+Þï=àUU´ô(ö©.¬6XØ<wêˆ'èË6•bÖåƒ<[hL}Ñé蓳< ÈPÃü)öº?ÍOˆþÕ^`Åpço\+gÃ'ÝUFosÜØ¥;õe=ÔN³}Üzû.¡è½öÿ% _E MžŽ6}>÷šö5F_ŒÅ´Ä‹Bk·¢ÕSð·ê ß³iº%žô1÷¦ý üj=-¿+áV¸›¶>ÿˆ½ßÚ¸eøüïÞy«ÝƒàW•À‹Š‡^‹Ä·Kú+èQ±¤¤¦c/òe©!Õ óx,m‰uÈÃxÊœ,‹§©¯¦Ð›³^5^ àÝGqý\mFyžQÍB1ß9CbDõrà~4ã"Êbd 0ŽIðj7Y’ø—Ú ½YŒMø¯‚ªñœ¢haåð”2•>™¬HU ÏÙÊàÝ‘˜©jÔÆ»Rù û¸*õTL$×&È.NSAmœ ‹:5¢‡œŸ/À÷ò1Ë'—xe‰¡©ô°‡©ß^‡¿…w‘É8 ò Dðª$µ¥Ÿ:ˆgpŒsHfuŠhbÈ Ìœ-|¶Tª7'¶ ^E¯Ä‡6IÎíõ昇O<¢µ=S—õhý5ïÙUåê6@yþ<5@×£ÈûaõŸ×iw&}Œ½Fì5©àwõc€]°p'™®Ê˜/`FÑL7åÍ´Hn èÉôлDms›:ɺ]ÇTÈ kßHŸ]T½Š^)Öl¨_7÷áµ´ylž¿$±¥ªxkO<ߥNͳj»* ¼’Àzú#ÿ²Ù¡Eh‰úCMôç1#¾/®9ÓÓEõ-,œþ°¶JI~4æp_`WóŠ^‡ (=«ª_ðn¬ŽÑKéÃXßJ£oʯ*Ðb¨ Û¢–¹ ›Zü‡^^½a?b}œLWÜ5“E[ËÎ1JÏôúc&¼Ç ñ_ÕÄ5cˆæˆÄ3¼kO*?Á(ÎÆ>!™¸Ï`ló ôæfKpÚ­TI(®f…^ò{Ø ~I0¯4û­­ ¼zA}D8å ìÁŠf‰¾þÑf¯öªŸÌ-ï[àUU`Åu\?E_w- ûØ[¢ÙÞ퓜HÑm݆û–Á4 ~ú  Õ1Œ½Tļzß_è¶~µ\g1æÎX½&¼ÚmSõ#n²m»Gõ9=Ê.²ýÝàU!àÕKö_"¹ª§êüf(îØž+Š}‰ÌÐô¬^¼’ûJ–yKös4öªïÁ©:é&Ëšf½Ô8¼ÛQ-I§=xJOÖÒ2îþ#j*Ò+µÕx½š5&$O°†Þ¢Ów':Ö_`¤_+]NR=1NíÁŒnƒ5, oºþ”¾‡æúÿ]Ø}Rãq¡*¦×ú 1çg«^ú‚™lãýN@‡]X'ë•ÔÊ´í WˆÕ›^‚å: û{yõÚš^7íl~5šœC2²žjSŒàM•>ù&ž¦½Ú:ccì›ö}<Ôw.è.¯Ú«N¶=ìÁ Ôg¸ÀúzP­¯>ðè>¬ ©á9O½: ë¤vùUxžÆXÁÏZÒrœGÒ¯äœkñj©_ŸM¶ÿ³Õ`^±­Ý“á—ý f®ž>bc•\#X´ÿš;Þ1ﺑøÌ—Õzø³è™×ÆZM~ÕO!ù¨ß¾x%µÂ7ãé¦c¬Eu½¡DøÓì;þL>S‹üê’ŒúöàoîœÛ~ñˆ[ì&á9vèSú~»üJò ©§ô){Ç?‹™"u²ê3w¬ÁúÎ3ˆWµÐv‰ ¬ÇÈ\É9xŒ‘ȵÔ|µÏ±ž®'|ƽî”ëvcÖ¦ºx·Ü}`¥ÒÊû®Kr `ÖT÷¼—í¿v‰I£N{±ÐIS¼$»Å»h›ä4‰ÿª?s¾“as@‹Fó|^b#k²ž—èôgÕñ=¤ê™í¡ÁÔQªæ»û]]*]WuB×C“é{ª†öKßÅp¶VDŸfE2‡[Š]Á‹VXIèaJbfK-¬¤H<‚ Bqêg‚äN‰Ì=–ˆ°"ô”'0Ú¢4‘&ƒñ¢ T¦eS±C‚ªÎ <ЉœA *&+I K¡5˜Ÿ~59,„ž)E}˜¨ˆo*…ö`¶¬+â^~FÓ ¯slY—h¶c<ƒÏóAGÿ·å•’É“#gvóÁxƒÈ°qTƒ““I‰vÌç—|œ‰À³ú3öùX‹± %ÊëQõª^£ÿ&.‰>m3Æ_‰`-ý˜Iþ6T5ÖO€_ Ïì;åKŒ@ O ¾nt$7Û9Ý O!޽ʙ;ŒgˆV;À¯j›ÅFþ=•­§™NZúêž¾ Æ÷!mÃÓ*ÆË{Pžç†jæöJhÁÕ–úºà•fMÕåjð V#ÆJr„Ïà¿r’\W9Ž%uŸþä^ÇŒiªñß2ÛtI ì<Õ]÷óç‚=MVt‚7ûÿ1õàVVÛ÷ðškïw­ ‡Ó ºáº»»;•’’îR@B¤[iA T0@ÁÀQAQ1½b+WýÆ﾿ÿ÷ðÜëá°÷û®k̹æÓ>(UWŸ0-ëO¡úÑú²Q²e×Á5Œ˜¨håã&ÔTÏÃi ™Zs€fÚ–F`™Íí—r­élvÞ½ÄûÁ’áKú­úE¦¸£âdC¤?öÈ'øfìÎÆñzñÛà­ýÁÔ>¿mˆ'Å»nÁoÕW§üª6óq´¦ÜEô²>׿¨èñà·&¨‰>d»oÁ®ú»çÌr/xM£ØëAð«•±·\V¬ëÑÿ`Œ¼¼ª <šƒyŸ-c©BP‰õRë õ·`÷WC»*ƒs¬Ç{ó0J­Wz—õ´9 ÔP¥À›‚Ѱçã€ÙÍü!·Ý¿î–€_}çúõ;LMÑJWó]¿_^–©nµëëW‚_•6ûå÷=õúªã]-pJ©6ºÖ»¯†uÓ+·£Þ_s1¢Õ%ÛpTî^ÝÒDUðà]ÃMàSivÇlÜí>ð…}S;æñ'àUà73¾}3ìÁm#² U¢x“5Ù²É YW—q†M0¶#i5)ç®Ã<ÜtæÃ7E ÔÖXoZØàWa9ØÜåÇûVÌ©9n:DßN¦Ç¼¶©!Kè¿JaÛ^&›þ› °r¶O”; Áä2f2“Ö^:}5ÿËvÖѪhweÆA%² s&}NÉxBMæÌ¤1N½ï+Ò¨kU’œ'Tc¨ß‡J¥©ñ§†±ô™D°Py+ÔZ“é×R>Tœg¨×—E¼JgLT.F©1½\¡ÿ¼³cô¥˜°f}}»YĨð­ÛP£šÄ–iôß<ìÙtF…Lr´%ëd*ÁxÝÝ‹ýs‰–ëu¬UäWIà&e%ìDEö8ÚâÜ×ûªf¬ì’YìoÓ]öÉ4úÞÚ€£|Êx†BXçocgw`îᣬ“0\k*ìA­{¢Ÿßnómò« ÖI>dÓÏÿ·ü<áÑß2"¿›$«møØ´ŒŽT§Nr_yÖŽŠÔmÃm8Ùb“’ŒØaŽb ÆœµÄù{ÐhtTMó$VŽ\ÁOÕM3¹¼{0£°Òˆ faÕM5ãäG{'~_ ¿¿jžÃ>\ì“¡¬—º 3^ ü"ž£õ›Ë›ï€bN2å¼A•'3@ñj!Æ]÷vŒBû…œÇ¯j…ïÖ‡=8’¸4û÷ò«ºh…VR‚>6š¯eÑú˜3UÿhÝÀ¨®ïœè @ŽåAU³Žz2åè¿z_ö¸Ëþ?þTP×®”§c}åXm؃ÛÌ{1òMä#Û8^~Œ ftFeàøDÆ”¡½Û˜ªXk€Få‰W»Xcë4Έ%˜íLÓ7X쮳ƒ±xom¿×íð¯¹Õ¦‘\ñ=ü~…?€óm‹ç'¹þ!yEf¸5®³_ïŒ-evÈ.÷UpŒüªXp’U>Ù§.z¬ºöÕ¨3˜U3<o?B~§z:ç²À¯›àS/å7`$ `”—ûO]gð¡Mîs_ÆW"^i¾óOn•UÕ”M¦dôI µfévÁJÿ€7k¬aT!¢ÖÛtõ?R;7Ú²Íqæè^®¶×-Hæ=u»;:†þž!fìPÍO6˜ÖÑgY/µ(žÕüª­2µzsÔŽSUþ î]+³išDV1󿊦Éÿw—W–<'¬Â•ͼÃÂq»­Öf 2±ŒcYjm¥3¦´01J#°ªâ_’ÉprLX'v[XÝ"Œw×ø°ìx4CÆ‚…ºÈ¹ÔVÖÌ¿Âô‹¥¯²y>gðÓ!',¨J%ßrôWi–ZïÃH­‚ÌxVßYÑx4XKì¢àW©ÌâfºÄë;·2Õ“^¼³›§Ê¯r™ì?X ·_iìÇC° ÊÄîÁ8ïô~PÛ^Ç´‡8‚ö]OÓE&ƒ_)ö3û3¥œ'èò,Þ¦q¬‡Éæð»ËLQð…üî[ܶK¨Å÷©)*¯ô.á¹fΙ+ÔàzÊ$E KÌê¹ðžiùÑ–e©ä-Ûx¥ã­uÿüÍ6ø¨9Å\•<â•VÈQMòã`y‰rãž~õ]ð†Ý$ê÷Ù;ta° #4ÂL”©×Wxõ#°@ýWšy;ÿ6§peF/žÞÍçÉõ ýWéÒ=¯QIï«æžÍ¢~{3Ö£/k?—·À:˜Ñãîà÷Ч½¤ø,ÿ©ª‘.Ï~n6E`s›óTEšÃ z­3½PÎh ÕìVÕ ®:˜>þ—°Æµ¯ÍÀ ÷—À(kr¥-ŽžF¹ °×›bØ™-À¯ž7ï¯êù)±“A¾]!ëb‡]ÑXYßAö˜/ì_‘“‘ËÔ½ xµö¾Ö󬼚I]àx~uÖ›è&°míCµ±ØÅoš³À誚UŒw׃ۂÉ@þIwпêî0å ßÕÿá_óûM¹Ûß꺞~øÕmn%k½‹Ø*f¯p—ƒÀÝêa¥µ’T;–C1–³[=•YˆIq%­Ö•c´‰Áž¸UœñW±x]‰Læ>'0÷§=£ÇBK®">ڌ錘ãEÃz1ê3¢;¬SŸJÌPNØ{n2ë¥*OÅênCŸU- Km s 'à3Íaj<çT|Oåy;a?xù™Ø;Ú$ÃBÉÑjdÊÉ~™J†8 Hó;µÜ á„X ž3šþÛqâžÇZS„>OõÆŠR\fÛ©ŒgH2wÛŸ¤·I¼úÕT–í¶9ßû¥ü°SÔvn#k¥®äZeÃï™n‘f‘n¢ã7N>° ‘0÷ù»‡]–ÝÕ­N‚UÐ óTß<¼S{PõUÕëkf05“wÁn—2…`HµƒéøïBœ|ÚJ²AòQ?âÍÍ«TýTè¼ÓØø!8ÑoŸÔÜøŸð/?›0Í8á×G*‚q”ÄŸ%ÔñU½L¾=-oàw}Ì¢è‹îŸà§9–D+MÙÈ4Œv×ξgÖG4Bó]<«§VZá·d|ukŒþpÌ×y|¶ ž4†ê‚_¦{»9ë;ßÁø†OY¾0VòŒèSÁ@·9¨€ve¹¿Ü7Ƚj>”‡Ü×¾dì|PÏÞ& c߸¤XàÕ^ó”}/r.rÖÖb¿×eˆ¨ºs;Þ’M徚`4"«þ½ Éznç[ƒ]¼lž–jS;𫯂ۃ À+­G¯ üª–|î[ù_üÓ°ÑÈ?ÉOw]ýƒòºÌtw¹°[Ѭ“£îËàE`¯Þ›µ–ˆ†QlŠþV"ÔÇHä1ª+³Þj&aV÷`Æçb¯,6»ÑènŸ²¾¶¿VtàKS_´=¾sûÂñuÁ¯òÌÕÈ›î·Âj6ñ“=¼R¯K[ŒôËØÏª°#;‚ŠB©ï[Øã¹»•ÙTÃø+sP&X‡¹±±JÚÛÃÑÄÍwËz©™8uZFD'Ñî« {x%ž®vMæW§2ƒ%í^ÂèÐDª"M‹s¤tª„žö̸ZqX>Œ>HŠÇ3‰ÛSé´_˘P7]Õ6J'³Y‰+#nû5a.sAÚ‰ &T“ óË™$æÿ¤òéYäW™ÄÁ$bEFH$3!•h—o¯gZ±Š ¢HyþI Š×àgï‹óÙ¡f{^Œø–@¼R ïÄÐoŸ‚s±=õd jU50ƒÞÄœiæsÓa{Šz—Ÿ4ÔêM뻪,%é“x59Ò™º£=å Ie|ûµöå/FÙ*¿úÌtf¬­Ö—9|iˆU¡u³åCÖáj&¯Úý¢zV‹Miy*˜3v’é#•l#»OÔgòÚ?»¡öåô¬?ZTŽÙï™Ú¯?ÿU™(…Eµ‰[‚_ƹÜÿR(Ró¤ñOLCðÉ·1÷ýÍöè)çX¾·é'E`›üm'‘Ƹo¤¤ì‹¨"Âû:ºÜ•õð¿F ÔÜüê0™F8¡FâùCñÎ&Ù»X'§6㺚¯ÑûºXO¥Íäè™`œ»;ÐjÍ¥Ü/®¯ëÞ0¿Ê^×ݯ½4´wʱØÛâ;ËVã"×"ÏD¾±uóTöÊMxSSæBÞI¼ËúŠíxc·óX–ñP»½Ó€¤ÏkQ_ôv÷I0?¥yÿ¼{È¿ín3 åªáôg/ºÏ/ô³Ü@¿WÎÈ7×^%Øòæ¼à~Ž{«™›°"Óí@¼­ÞP…>*ˆ§ÅñSIpÔþ8›öcEÏÇïg¯²Ü?¬Íqö`Ä×ó[1n©>Õ¯ó]G­dà~òÙ°Kcnþ޼ìþp¬Æˆî05£Gm5Æ56ÅÛÞ qàSuÆ3¨îÀTàÕrà•Ú@ñ¾Æ¬ïœH«¸ë¨&*³G¢Ã¹{™¥~ޝÎxªçMÑè‰èxb@>°{yN"ÞR g@?¯q§wóÎ/•w3S©•H묱"1™FN9Æv¦ÑŸ•I—TfÆTŒçãdÑÏ]‰ê‘z'XŠž°Âq{Pk ‡ÖXŠI[™éßÊ$…\§B<‡:É„õqbŒ -EÍÅœLêò¥72˜Þfð]9dNqÞÖ¬€þ'Ækå2aUžÑ·0ŸŸÊ|œ±f;ýlYøY«¨è¿Ô0À«¾lçdØ8Ýä?ôŒý‚¹lE‘õ>ó³,“4 #ãÕ5…÷ ­a9åý`AìòÑòž£X¤•3/b4ž¡~R]:UT}˜U.çð3SMaû­,á|¤^ß,«¸~Å4–¶ƒè ­³WÍ.ó}þ§LßÈw&Ñ*Š¿g&GºFZ?ûËöÖHq!î©å/1ƪ ä èÃPúN÷Ã^9ˆ••ÿî‚•{ ë« Þt5x…ñ¢ Ÿ,sÍV}Ñùv¹Ý!ªÙþ¸Õ,0ô\ªQ ÀÞØBþ@ p#þªƒ 5¥ˆl§mvx@IXå°JÖ`VU{¥9Ö~}{™ñ¢ý˜ókpÂ}ª±’гþw«‘ ÓÜ[FvD0ž¡1Öú"ÌS¶îf¢íp¼ÿ+p_U×êËÑÚvTXJõÔ†@K=ß¾Â5äýàÜèGA_·1(¶h˜í"Œ²,Ù]Nì +šæÒªX…—L%âO6=PšûœËȃ4FG¢5¨8“G«2J|¹¬\QˆÞýÆq¼ kâZÆs£X–h=aa¼CYǬç0Ç3v=›Ò ´çê2'±1ª8³ã‘ ì‰ÞjjäZ*j4×9ˆìñZŠQ¡©@°#Îû‚Y´ 0ÇJ”õ¼ a_¾kìkÆÏÿ[ån“*ÊR7—e:>¥¾zÈîfF{k›ùrŠùƒ±G˱ÕVͺ‚2–·e±†ŸÀ>SÄ}«­f\G|&Π àWzZ°…mq{»Õ±úümƒ:â3Æþ Kì ÑxÇM¿H‚dY³zßLˆtŠ4Åü›å¸ɧ†ÃN¬Ö2à%¨¾²ç™VY¬\ÝÇXßÀsäcÖ$i+ƒ·í6à¡ê!W—ÞàW£qJ’{ì-v“è½Øy¬2#/ÒÊ0C1*¥¨&ù–©,óYÕê;ü6 üê*«,À¿•rUÄç–òÖJñŸ›û¢œÁºéh&¯~ ÁTµßlŸã/Ø™šƒîþ «red8U-j ó±¢òiïéé­ ó€ÖçX§4þvð¿žþШ9Ö}ìñjøézÙ”ÑMÑcA;·öà*“é¾s]]'wÒ|(O¹’¾Mì1æã¬Œ½âŠÇjù°?·—"ÇWµÑòSæ™-]43£5:# `zç©ìsìÁ2¬°-œ„; 6Ò«}J0×]¦Ã¼Ó4ô¸{ü;n©&Ÿ‚×\õ/ûGÁn×û ~ñê)¼êåW;o˘½À«oƒãôÜ0­äÆßѺâð®.øï8V £ÐnÆ*ÙOÿU-`Ö¾À¹4iƒñ\ ô†kÌxÑÞùµàW­4Á]ô¹°Ââó?FŽ»ÜV3N€_Ñ—lcæ‰×C?Ïãýå°k—cìo"Uÿy/FïêÍ{ªŸµ¢uVQµbY—0<­­ÝíO m¨‡ômy¯ö’é}’ú¢z3×LVÄq£úÓ‡?«ï¼VXaF"è:^Bk/™þö¢ÜõÙd@‰do^‚ì…h÷…ž-åfÙX¡¢±¢V-ú¯ÔÒ+Ì „%È~²¨™–C•cÂj©Éô®e’…Vc6ýê…hq"~„~ª¢¼Œ1V!‹zŲX·5〙TÌŽg2'ò-¡¿« ulk†<1^ùÚ¼j·ÞlŽc®×Åó¾gQs[ýfšû—éM<œbŽÆï“ÍïØKëMMâÆ½æKYÞ¢øßÛô•Ô4NÂN/'d&Ï—1f¸\—‰DÐÞ˜·?£•ŽÝô9xNX›ûIØý)Ú¯%¦¤ýFæ‰ï³ŸJk;Ã*¦]6½d#Záö¿ò ¾{‚:šV‘ˆäXõ±Ÿ7£"å"µßÞWž·£#¥™ï¼++]´öD_Æ_ÇÛk€u4f”è>ü\–“Ö¼BŽQòað‰½¸ÔVbgé¬ÇÊŸnfË{§]+Õ0JŸÂ¼ jãYZßù»˜iуκ{ݰ‡¶°³ýÛ–Ê0n¤M—e‘!X»/1âk1f)»å!à¼zJF‚Ã|Î7»®(¸à"œômÁ7î§ŽL5`ãÌh[àÕ!ì/å~«£O=ܲ ìÁ"`­][wçÏ)wÁ?íì 9ûÅÕˆÕõd—ùľy;rÚVÃŽzÒœ’™Ò›y>õX}H³êe\­ègß û³ì²V`î]Ô?t'ZPÅŒ fºŸ‚±Á|¦#ðj+¸Î*“/_ƒ×|éwø‡Áä·_Mt=a’n…kç×±óÍÙ¼:ƒõªzõ±®ÆâZU<˜Ôï×ZZ¹'ø3H•f˜¡]þ¼K‚¸£WØök€Wmú+Ý{¾¸¯àcŒ¯EN‚u®µO´É޳ÌbüþM8i«Pa=æ»÷v Õ U3[õŽôV¾ž§xU £ U{”ó¯6ì}Ñ›x?5ØŒñã}cÞr=gZEF'ÒU c±‰ÖÖzÖ:´9&TaŽ9 ㊓O—¢Öy2ïú2øœDFgf³Ê²…éñܾÒÌf«p•%>¦åZ…‰Éäoň!Šuš'Y#žÉÖOdŒ{:1-‘×½W•h™H,+»¼T†¯F|æG§Po!†ç7ÂzM‹{ÅŠÑöTW˜1ú¯Ò˜Eþ?[²« £×3É!3É‹4 esœ_ÍÀiÕ>ù¦F`éõ ªM3o˜Žò[ùÎŒ•¨o¿ù@¶ÊO­žÀ“Þf?߬’çã1W#Á¯®ËtúÕûÃRù{Uý]­aÙ< Æ¥±ýO‚ô1óè5„ÕÀúƒzGù M´ ì<Æ_}m:È}v$yÝhËq³Q”ï>dºDþ†M¥Üñ]àUp*½½è!'íˆHMQÌÜk(L`FïÂYßë  ÆolÛCôL"¥5ãrü\µ;`æc­Ö>Vnš`ÆÊ(»Ýî—RØ#`L–bÜJi} ¬ÚAx‹ríAèWðYoBïÿÆSwßÔÿ¥*È­ð/0Îw©õ¼>4ö%ùóÜÝ̉uO¸‹x~SIÃIÉjUäùnˆm";ãúW5ñ¾Å˜Ÿ¦½Ç0nÍél>3_QŸ¡øÆ:ðŒnhÍóèyGª¼¬Ä¬ô:dè’fmôE Ç&à•ò«_Ý×Û½`~”mn²¯;T´+器{®j¬‘o%Û¨õcä*ëÑ/3Çd’t¤Îr5œA#ÐAèÖT}QÍÂN?Ò6ôx6¸èËTdÎ6“‚îç`.㯺úCÔgX6ùøÕWþˆ?ÂüÁ9~´›èwÈÓ2‡ñ¢+œ³yf§<ë¾ Žbµäã}ÍåÑø+­îWƒõ¼´žôxV`nL¥|݉هv-1{ƒT—ÁÚøO]!_ÛoÀSJø¢~‘¿ìzàsÛÜßø[#öÖß‘çÝoîv›‹w­1Õ£'Ðsõ¢´Àˆ¿Ç|à2˜ÿ&¬¨]»g:Þº-ÑXí²dé]é+®M-ì‰Üã«L3û(ëÑkþà&?ÝסÇèS#úbt¹Ye“'‹ñe0š34®£^kvCuŠaÏæÍ2¹RḦh¦ Õ`”#3aýå}\%˜½“J»& ­ s¥óˆºóË å…¥¡GÕ˜ËSˆHÖ”H'R昰F½¢V²­4æQ'ÒƒUŠñgD¯TzÖÃØÑRŒ$ΡU—Fü)Jû1¼%È`,„¢{ÅxnN*Ã3¢ÕOÙ¶Ö°ûÂÊÏ$ÃkTÇZ9UsÝ””îĸ¹° za/+¶ÿ€‘Þ ëJßü¤y]küõ1#¤½Þ‡ÑÜ&?z€]ÌyY–5ùkœD9Ì xÏ£×[uiú“á&16µ¢ýBpبífY¡ŸÁ8¶ØQ¬Õõ—\Uµ'úü7Ý#_bÏëóO™¡‘¬GŸ~õ²íi&Úë;À2DŠßz¡¿ÀQÚá}%°*ÀŸ±ëb‡þ«²X##åÛàšÝ%3²È×=X‰•==Yk_°Ï‹FQ}€¸#Qžkªú¿ O¬ÏüÁ·_Uø1øœ&ë0f`ÅôǪéÄ(ø©ø×ZØiõ`ÃV±å”Q \{ðà˜»Ìúƒ‰àWŸÛÛðô¥®¸M’]àWåÁ!5âë6´¹&ÆóÎ’†øôX´ï[sÏU}Ñ@ÙñØ—0:K¨3ªx¥y;ãMñ®òfMô™`¸ÛTÄnÌu¿¸¥À«×ÍrŸkëÄÞ ªÙe²/vÖeǪù–ò°ùÙÞˆ<ù,C£ó?”E2„÷ZùOÕ™»¡¯=Xá« Fc%µù•Ö勱:…Yh]4>XŽ4?˜¡ê»à: LCùÞ÷ò×ü/ì¼ÕþV؃½ý^âÕf×Ïßé"¶"N¨ƒî‡à,f³ Сü&S°ÖÒß®842S¯Ûa¿•Ä g6»ê_åãíxÕçÂ}xgÌ×ô1kÅ1Êëüg®3>wûüª«×<›Ÿ"§ÜÝÝVõBï1Å£OÚÔh‘>‰1¨ŠþmfŒj3ꋎB¯óî;‡÷ƒµÏ€7w!ŠêºÍ4±'£#é!eÖù¾p¨ öAËèëÑqä"ù¦ ÖK1î…*XÝ9•ÍøŒ¹DCõ怒‰.¹ô¤¤ÆýÞ©qÍö2hG.±$›Š3‰´± “Q•à­£Þ}VcÌ|!Öe.×™É {Q*ŒJŽç*fqÒM˜KXŠXšÊû€4z² Ò®,GOz@ïU6ý_ZoBcæ3ø© æ;çáªÓÅOŠôYÌÍI‰Û !^&’¦1žs;Æn ýHifþÞŠvhC°ƒFŒgÐ|çgÌ-ÔCŽ‘_m7DíÉÍ9Ù/ÉŒècn—&8k5Τ‰Ù-å&bòp3PK{¾¿NýÏ©/šŽY> ¬OƒÇ±â{âÔNbœp}{Mî ~ï³)¶‡½úí?™rÀ½ÿ5ö?Xÿ_¯ž2#‚_iûaGEb‘:¬—Úö`çˆj^¥¢wK¿cT´ràý¬?Ø ãÚÜj?z¡'¤êÊ—/°«›!òøÕZà[C¬ø2)¸{a¬'Gí û ìÄvæ;sغšºU£±z1[¢¸Ï9àÕÞè^ß_@Á@ªFÀ­šÓÞ£ù¼_ÒŒåMû¹¼ŠuÛÛl>îþž…=ØÍt¿*î·³´²£›m3åþˆÆ7½ƒyïìÔÇö´@ô†~ Úw…õè5"jNòaô·?ÀxQ,½ k ´ÛŽþ•ÕZTÑ‚ÉàW5Á{2œõý\7÷²ù^v¸"±+þÝ Š½]®Ä¾t%b|ôà{1ò.ðJ3÷§˜Ó°5¾½>vð<Æ·G ú°þ ÚB›/ª™(÷0Sü5ó¢Y‹Q/aF°þàbð+´Èw;ý[n°Gñê?þE¿Ìr ˜Gè¿: {p£ëêïrÿHEœ‚»Ý7Á 8'ê¡MåÏ>Ía&™F,·`žu¼}$æz/Þ: }Ÿg 8‘–µmþ#÷¯«à×a$µ*í:ÿžë‰yÜä.û"¾¿]«ÙE^uÿqÛlIÌÔSüJkx•à™ûv•z°V°Ê`ú¯&ÀöïÌõ_œê£šê/ªU§1Êr‹©gŸŠÞĨÏaf©Ÿá›‘©œ0£Ç`j¼g%SWÖ2ƒFïÂT·5—Qå°†&uÔjì§–ˆïá bHóÓ¹Ï4þSí»¼¸>ž*=dó‰1fËbÕ÷ ú½K‘1dÑB+Å(rõ‰i¼khÓ…·ŠaDƒr¹tÞUf±ø·tò¼˜ +œª_ò«‚¼³L¦Mê™­›Ç膼·(E¿YŒ1]ÙŒ´ð¼%Èÿ¿øöDr´‚Åÿ?Ö çþ`ÚƒÊþú`öÛÓÂla>3èÊVÌľè)ïÓRý#¸{Xí·Ìs²E®ÓOÕßL”6fc]ëš•8ǰ—7™®rIð3z û V·rž|ó6æ©=­×ÃŒ¿ïÒz^_Ë<>ç1[Òö± ­ž;ߘêr¿íDüùMþ¦ÏWçê˜iùÓ$[µ’ϘþiA¼ê"oÚ¶‘¢ý^‚ýû—)üÑ8€ÃøN´´>vþƒØ¿±²òÁšT¹ÀÊq]äJpÉÞl¬Ë»…6ÁÝ\™ƒåû¢}TJbÕ^‚õ¹+P34F¡õ·ÀžTÍ×¾è×—X½éõðÊI"ìA½Ù¿ƒUT;™*›K³~d`L-ð«sÔÝ{ðWàÕ—øTGÉô þšƒ§OpÝlQÙéƒÕÿ6öâ*×£–õ8Æ3Lb}ˆ›ÆÛ¿aèçpŒm]´rþ›‡7­Â':˜Ë@°Æô|¬‰> ^Uޤ¸]žëëN˜7e¯›ã‹Ç^ òìry2ö¤«+îÛÈVó›½ù&rÍVÃZ¾Ý—Ù˜S­à¬õ&¦i…£´F¦ mVUzn¶£•³ÁHžEÿ[©æa0ß] î¤þUEÿ”[éßp·™jò³¯á¿ô¯óÔ– àWý¨‡|\&¸EÀ+åW¥ÍVÙã>ŽùëhÎü„5¦ŠTCL VZœ‰}¡1UÀ÷nÆy´¿ŸÑ_`=èEOªþ}wÃ峞WAø;ýëàWZðCŸâÛúEª­Á|œ•V«'l4e£ÏÛ†X«UX;í ³Š3Î^kjÔÆ:œ†saëCäݯò«4ò«øÎl²Š ¦=íÍ}Ü×ÜéGø–Üù/™jѧ£cèAÆø’_bÎZöf.}S¥Èš Óß“ËzH¹q4È ÿ;¾«tîódF^jm°úX cuûº‹“ådÅ«áäQW4T'-ňQe5E™c”·èÂLŸ4âU“I—šÊl}¨‘Æ›¼‚|JÆV 5X8VœUO²é/ íʲä]ôe3^TãH5ÏÉ‘k…:Ì¡NiXLÙ^ÌädìÕlZ{]Xí\}t-±Ö I?úîfàœj!׈´ßá3ëLk•>a.È q¢^ºfµ´ÃŽ,Ę“õrJFs:‚_ýÄûÁdê \ÅÎÎfTëêõ)ÊÆÚêKÍXÕOnc¯àó:&mMÛ x¥œöSLvÙÁ´ï~•yÃ\c\èK¦vämà•Æ¬½i€Ô—°{Dê3Ïqví?ÆH1¬cµ‘7ªŠ«wu;aÅ©þUÖ!,)ß2ï¯5ðê´Ý.%0Ÿ‹M®ŒæaÝ 1ÝäIû¨}Vª‹>„%7#Q‘ñþý€w›bÔ)x×ÜÀŽÒ›Ž¿ñ­˜‘;Y‰oöOEîð2°h4ΫM˜E`ÏÊÆÔlŠ>‡i;î>6¶^ñŸÙ¹j‰ºT›&«#}wçñU”jÆJ¡GX_Xë¨3ñ¬™¬3Š‘ÖZSú´Y>×ÁžÝ€¿·^Ào‹à9ËW7»­A´%LBóqN1ß9Ó/‹iþà"¹'¶Çýè«2þÊD>Šœˆ\²•±Øi¢Ñ¡ 0׳è5ëFµºJYÍ\‹(OKtvëLó ø•Ú°EMÏ`¶{öà$|¦¾¿ßô§Á¯êË7¾žÿÖŸô›0úËýT?Ãõð÷Éi™ëæº1þnWöàAX«¿OáýÕÑï"vvA£U½fRÁ¥6pKç ëÏbp;æm.2»q‰¢þ§]þc÷·Ëó;€%}’_ëßq]0š[ÜEŸé;ú¥xÞ_‘.êç[U+Øb*GÏÙ¦ÔC>±/ X‰ÿ*6êÝÿDŒîjÞg^mxÃg˜é¦lóÊè)àÕFò+Õ“iï:¹WÌyÙç®û¿ýsA}{§ìŽ}çc}Ùb¾µ§#DÎRŸa‹9 ¼êƒ§6Gæ-a òþ³zÞ”z2ÙÝk¥Úö ÖÖ¶¾)XèÞ ¦5ÇË?êøÜSSþô ¼ÄŽù=¦¡lôýL×Ñß-ϰ}_¿Å²åÍ*Ù¼ o ìFù‰Ûƒ=ñû[ñ÷èyœ€7óîŠM!Ænƒ=è¥æh¯¿äþtÕY§ýíﺎ˜÷õî}Ÿë»ú5h÷·‘Ýn‘-Â5P:zÒjžxªi–V] tÀü–ð+€Ͻ\ŠQa¡V@ à[]´@yÊ*ÓÄ>íC>2ÚLð·øv˜‹<¯Zôpt<£ÀÌä.Æœ'1÷¾?½Tj}õÁæß´òÐtâL2õ2‰YÜãÉćtVk.A>“Fµ¿Zžz3׿)CË,‡|&—ØS”ÚìY|R&•˜ Ò¢K¡.mÎ!K‹ÇnidZc³BN—N]¾\êõeÑ– £Ø Ó¦+ÆZàé&Ô¼*N Mˆ×pÖØ€98¥Yo"Ä«0š¡o ŠñSíÖîèùXÌj[Õ3ÒžH×XI¬ÉÆ32½åÚ°?bþo79¢Z ÷™WeP-‹Üiµhβò±æøù°L%î 6ýåcHîÔ«éç4 ãñ£3Çú1­VaæsLfš–ö;YD»×V^-²Ê—¾7e‡D½…ß%Kž7§©|Èœ6™Võr>4"mmÑ;Ù–rÒvˆTc­œEØ=˜_1FZ©à8ð±f_×Þ~à”z8Ú™Giù]em†îòkðª}PÊ`Æ×™?Íè`1¤½™"kíƒö~)Qýlf>vn ¬Ü ô•lEÛâ¹çMŠhv—úÚ‡cåÈ:VlY€^–R,W´Àÿ× ’¼¼úxU|`Wôe÷wpÚ}Ž1n)ɾ„¿hg¨ç̵d]d0ÞõºQ…̹ÔlƒÞ÷§:ªÞP~iÎ2’»øÕ\ú¯šUW¡ÇùT׈ÈwÁ¤ëq¥-¾ô¥^Ÿæ;G|žëæ^3çd‹{Ç_ðgßþbìŒ++ï[Èsž†õ‘Õ:dÓÍ+2k£2õEG/êãý·3¶½Z›É<»aßî„; gâIÕ?Æ~,q_ó‚QÊ6`nõoº5¦Š|éûùk~‡¿ÏÔ•~²Ÿìzú`é·³ý&^m“ÃîÛ@cö«~ øÕxìèæÄ«ÔOm–®¹¡M¨äz³¹|²=ëAÏ7{‚‚ˆ´Ç(¨>ƒñýVŒd_ÞÏõï¹V¹5î#Ÿ ¼º ûõïÈKîw·ÌÅîÛlÊD_°°«ª`¬{`œk2²ñNÞ‹ª“Æ ¶3ÜaEÒ*TØQ¦R í©‰1Ê =ØÌ>íKûH3ÓOðM©èù„©= ¼RöSxuóÓÐ+­V"ó9ï+Ì}”œÏ›ÅDZb¥yã_Ô¤ÆsX˜]Šúê‰ô·a´V sœk3«'™\,Ÿº8úûbä0¹´ôŠP 2›ˆ•fRã7sIÌŒ ñ1ƒ~ôÊÿ— L[SýÛšcY™>öf0fÆsœKà™õÈÍ”9–§o?ŒÛ*J£ŸªmIÏZÏaýAG¼ú_ÎQ2Æd%æ{SÜoß×tf<ƒâÕO¦¸ôd+n¢t…=¨ãóµÌTe GÌÙ+ ¡~‹™„OfÞ_žY"Gd"¿ÛÒŒ’wd½nÁä¾4Ã8&õ°wžÁšÒÑ£øvO¬÷tÚnµì7à'êÇÛoKÚ6v¹Õïþiòe‹Èx†¿å_ìóOEÏ…çL¹È›¦€ÕÙxÅô‰|j+‹>¿‡œ±Í#åX‡bvëuó>]«úh\O¦ÖÒnFŒvÆ8=M=™1Ö5Lù üj—h^éJ“)3ƒu8U'šÛe“}l¨vÄ[àQSðÜ2XG£¨®yÑ»ïÎ@2/3¹^þÀª*()Œoo\‹ß¶Ä ­>YïlÎøö<{N´þ`³ö Öǹ¬DóYþøÕ3Àµ²¥ä¾H?|ó4>׉ñ¢M™ÿ8ê 7ƒK| uö‰z:–PO¦΄嬰ՄºÈ]ÌÛøFMfjÜ}:èí6ÃÜfRaÕuÜ æmàÕz؃¯ƒ_-–±\J¬²o{ðªý4òtä}âÕlsXÆKg£ú`•±G'3ïWkÕÀnPU÷ ˜ÇòT8ÝŽ¾k}gòS=ä~Á÷U0;˜¢Ö”?æöÛ,ÄÜ^ö­?~ÕD–ÂRêºû]ò¢ÌtK\/¿Ü%À\öw5xŒz2C1KƪN~]Ìe>ÕµÚ=§á-=ñ¿Ší!äW¨ÆºˆzÈ…âþ«óèq%Øž}Í¿®¨_éÏ:­³r;{°.ðªŠù!ò¬»ê[NØm GŸ°õiÝ´Á\¿AØLô²Æ_óâ’€U-À&Ð>+KuÙ.Ä„ øDì0]ÛëLk» vŸ®É¡f™¿Éצç[ëÑŽâ­^ Sö`éx U#œG¡—* ȵˆR­Ô¼ºïÙ³K™÷ŸgÄùUAêÉ”dìS*ýä¹Äõ)U3‰DIg(t)G<ÊeØ,ÞjZmÆb¥0ö«­¦PeYq£x<ò½T<¶!!ÎìÂz©¹Ì+Tÿy«ã¤3'‡5XÿõfÿÄØž âZ¨‡ò« ŽW)diªÀW„·¤Š3­x—³Ë„ZõÝ©z¦L« ÖÿuÓ>Ý3yòOmœ{°³ÃZ¥Ë<àUýíK¥¯¹•ÕÐl—säWß>PnÈd¢sO¬¡ïœˆõtXÓ…#ñ8V”Ö+HaüUgû™L§~¿­`óíR›BÿUMYf‡ŠjUÿWþÚ}š­O™ò‘3&ÕêL½nÚDÞµ5Xs°l·–‘º¬¡³g»‘ˆäPCæ$°©=vx.æä>ìßXƒªÔù€)"ŸaåWU_]pÞÞ+¥±—¯wà§ñ@Þ'íQð«bX›€±‹c…EÏ›MŒ$ËÞ–Ç7~Ç~H„½|?¦1Dk:—Æ¿­BKj#}j ¯ÞÂZéaG‡½ó¤û{§µä¯>²óðÄ›]›+Û#º//˜¦TnÃüÁ€S-YѪíÁéÌyž;Œ‘ïÇp&·$2®6¶¢ÝOÔ(kD_ zºmA àFŽûö`_w öàzwÆ êÚ²8ö« b•|Æ_œŒ¼g5+`ªyN–K7Ö­JVQxu+ÆcÇßnÀû4b¿¾*=E_6Ï£ÿ°6‚_]^M„õÔÀ?æîV,† xÅ·õ×ý það‹~¸Ÿ”Ú!¯É 7?m¿*ƒUõ°û2У²ªÜ-ÊHª#Œ¥ÿªótú²>ŽÖ}ÞöÜXVÿ»üêƪƒÙ¼ú×5ôë±¾c¾¸_ã/Ð¥ú¢)¾‰_„ïÿ9í~¿ÒìÝí¦DôÛŒRjm¾MÕþòXZÏ« Ŧa&žÃ¤Q™%ãГ‘UX‘bÏåͬ71‚¨Ò×LôÝ}kô$;¡rtTµ³ŠéªÊh}J<ža-Fõ©÷‚Ö¯Qýö5Œ—J!&äÒÊ¿gÄ#:KQ9&7î3/ƘÒLfâUŠgõ%Ñ.,ËŒÃ÷Òãõ¿2ñÞªqÄH¡?ÔÔJã§2ã1é™ÌL¥…W0Îä `Ö5¶+‰œ'“V£¾É3®¾­ÐP'9ƒÚË{¯xô¿úƒ%LX›>\1!^0›ú¥Ê[bÝ ÇêÊà{Ûaµa|{+X` ¨/ZˆzÈCäobìê—„m¦Ÿ~6ÙI¦O©—Y!­ÍbTm³V6ÊŽm؃‡¥/mm ¸ ÛE™k¬á¨ˆ“Î8¬nZéo[dZØ/`êÝÀA›`[Ú;l"ñªŽ¬³í»þlÓ7ÍK’‹ßß¼:F{°êÓDÎÛz¢>·Vò¬m)ÍØ°%XY?›kØYXO¡—ý™!𠾿}m3n é2Y[ËŸÁÀ+SZ‡Ï –†›ñ²Ç>mwJIœäßÂÆ™a4Ó«VcG¬ÛíèWô÷#°ë¾çý`&Ö_|jØgeì¢<Ìójü¤Ú6ª'SÆž†=¨9÷ë¢/ºÁ3î3ÕO–Â8뿲sµ®º»Å‘õ‘¡XÁg±'»Ò»¬•1°öz3 ÆHsÉœÁê®OýöeÀnø—3ØÛmÑÆæ@ÈNøé#ôX£Œ«˜UÑçƒÑn}PýÎÛh䆸—0ŸÝ÷þ)*¨gï”S±K®B¬¢o.»Í‡À«§#ÛÚxëJóº<?ŸÕ§if XÇ<ÖÇiJú øLàG# †Zúg0Û Ñ‚b¦o0Ï}, nÁœ4õGÜÃþ´[ Nño~uÀïÅèßå§ùq®£ß'Çež» LëµÀ¯c}œ…Xûƒ0B¿Ë­Fó§aLUÁ°;µ5²¼>öëŒ÷6ðg¯W{ñpPÐÝ`Ôìÿ!,àÊ~ëãäøµ°©Xí>ðÙ¾…ר½üÑ­´Yñz©G­V#«Îz^³«UC¶ásªlÖÿ¢ŠÞC ]„^ãh—ÚqUÑÿx»"ÂSÇ>íIäkVúq¾9³ŸÁówE'ÐúÊ×\C~•¢?£õi|f1Þ²ŽëóõÇŸâŒ`ÈåÍ`"3cÒâ*1 Üù¥ñ¿06*…ÑU¡oKmÀÿÙuÙèC>}béôM¥©èXm΢¿:Á„õoÒ•˧”ŠgÕ” "'ÑOT(î/B•ûôøÝ_3¤C­ÑFÀ…Z~™dªa½‰4Ú©¡+™Ì4“Q¢a^tŒœ-‰÷ auŠ6TvZKæ§YM±ª=c¨ùÕtcK¦a7×Oh+_Ç)ºÂ”büÕ}æiY ìPߨ3B:1° úzNÆÛÉØú›ÑòK¼öDk3 üj¢ õÄ>Ä9Õü8v`pe™³MIûýóIæA W¾]ÌØõ릱¬¶#EÙé¿ò%0î>É ÿª[d—)f5¯ù]ð+)+zŒ×l»HÚZ ¯€dQ¹¾ñÎUÕAk‚§ÔÚŠ˜Ûc@.Í,ƒì$ îœÝ,E±Ã› éìÃúcFÊû¨}Z´Fê'À½yf'«‚ÞÊÃ÷ò®¸/vf*ìÁJ8#¯Mbbe 3é–Q³ãbEëíZcàwŽ}]Þ¤þÕ؃ׂcî}ŒTKIõþ»sÒÅR/ôÆw^ÇþèCëCóª‹=4øô2ÆS³}Ë¢¥ ÐkWÖØ¿Ö˜áÖÀ‘ øM}¼¿¢™{°“[T#^]w \w÷ŠùHt+ü9ÿBPޮͱ®U¬ºo#Í_öjäTäºUÝ®õæ5™ CX'LëãLÀJƒÿˆ^5 ïFë¥V þÕVÖFüÜc#óÙú#ÜÁúÛ›ùÇÝ6xUW>¿zÇ¿M{pµŸå‡¹¶þ1؃“Ü>ê_‰Í¿Úé¾7·ãÍC°¯¿Eªvè«æ6ÇŸ68;4«.3gFj•J¬è9øÔ2s((à’p¦¶2[ýEø²~£Úl¾„ß¼jÁø«qF4õ‹Ñî_"gÝ5ð+­²·Á”¿ªOkMoj^g%ÓJ@ÜfhG=œʯÚc%æî¯Ì:×my¾ç“eÎ$žl3#ì)ê_ec¬öã}KF‘¿hjGˆÞj RO¦ ìÁ2ăŠÔ’Í åV ?­¥FŸú½{áÝ¥¹ÓÕ›TÞ„* ¡ž»ZAù¯%ÿïN°yNŒv_Eê¤&O«Bä ýö¥iu$zÔbT"qª(££B„ÊeN`1z}Ò•¿¥Ìæý]X°BÜUÔ„¡5;º(ãkŠÄïsÈCÛJä íAUÅ õ“M˜ëedWQÞ (÷hbîÀ~{œ6l¬·–أʩšš/Lið"µg`‡–k|Æ·øÌ"“Å<—ÇÌ9Ù#ÒÛv3pIçRñªŽ™+Ûåf"ä ØƒÏÂÔß·‡Mõ5ýí)X×GÀ¯z¯ÔÕÉLç 1Õt²ŸÊTbÝa›jÛ€_iŒäÉ£À+cÇ™ôŽèYsÜ¿*dõ÷§M»Èo¶Ž¨%ÝI^±­"5‰o+Ñâÿ˜¨híµVøæÖg-ŠÕöðê1ÞH6»a~‰Y«n:ÊwÁ;v ìͺ8½¬b=ú àlcìNû(xW[ð»·0n°²Tݳ?ðìn¬º°A>1¿a‡”Ç:¾¿9I‘ÕxkC æMÔ .Á›ðü¸¾è%Sƒ=¨ÑJ+£'h^ÅHu‘D_Øb¹Œ€=XOvFzÞº`ÎB}†#q­—: xõ:ðj"™Åô÷&æã<Ühƒùh ´Pûñ3ðõÔ†=x*¸ö`M´¥°»êZºnîŒùRö¹ÉþÁØ+Ae{—<{ÍÕ^0‘È'‘ݬ7¡÷Ьžècümì½F䟽™ñV™^«»xƒÐÒhNñ\´ì$Ú¬‘ÃÁ¯.ó‚±hQ¾?ìvùwÜ`×ò«Áþ€dUÙŒÍ2ÿ¯ÞD¸5ï&‹š‚ ´ ‹Ç³té=-éJÇÛ*yeÑOžÅTŘVׄ8£É"¿ 3}Š‘/å’ó$'“ÉáÂ:7Iô«ç².a!Út9Œ°W~¥õ&Ä#CC^X„ŸiôlgÆëv•Å3ÓÈ—’X?5Ô¨I$¯Là bÌö\œBaWOÖÇ)À|œk8Á†c§˜Wa ýB<ÿ ߸ËEåÝXß;ÁÔ†ícæKì›DæÝÌÁzîOn6Ê «LÖ+[sêÔßÕ«þãÛ 5ºcµÌà½èÓ‘ù8Ê1÷Ø_ä&ð+ß¿pîl´ÓEÏkEž3ß‹ZÒÇL‰È^p½‹ýxõžm,ÇÛUÞµ"%égÛŽþ‹ù?•ÆJ­ÄòUðŒÝ!ªï´}ÌÖìAÓYÖØÝvuGßÇŸY`ÕÕ<”µrªðÜÿÔüŠõYëÜ ß¼nVµVé‰ß¶aÍí<ŸëaŸ¿‡5|HNµ1o‹£þÕE|¾›¨¥ò‘¯µæÝzÛöà´ÿM샞Ôý©¹Òš­ÍðLœ˜#õ¨µÇJ‹ÑcZ­_¶VÂ>Þ$iºŸˆYÎÜ}.hïVš©“éþr}\[wÎü w¹Ÿ}bì¹ ß.”3±Rø¹Šo&ûÌöíÈÙÈkV‘`ìÁyr£'«bý¨jü jÈç­ÿ\Ÿõ&*¢- À@;0þJU«²ÞÄb÷Ep{0xÕÚ?åøwÝRÓ\¾ö=üuÿŒÄ4õ~²éúùûå ™è¸^~=ìÁ|³GÏ›¥ôÕ’¯Àc+¢ “0îSX­*óùzP½â|æn³ ýŸ¼šmöÉÒ^óõɯªøZ_Ü—ò+ü×N=!;ÜEœ ý|<ë÷ÈÛ°’'â­š×\"zÚÖfS ¬œç¨œPgYMÖw®‹U¬`ÃÀî’é‡ÖUÔøPQa|ûZSÉŽŽ"ïaø‘¾㥞5â/G'sß‚¿¯rx—_–¾ÉRqOÓÍéœxvp/ô¢Y2è'OÇ„õMˆo­×^ëB§Òÿ¯Q›%™¥—FßDéÿ_—NÔ*@;³c> ÐîÓo¨MW£Ô*…È sé¿JŒgUgÒgU€¹µéŒmH#^%±BN"ã¾Bݬš…åÉð9½5øœV@–EY]ouäGž×°*÷˜r’Å<å/åNù‚ž¸>fœt6ãÙêšf…¼,“ø¶N湯íÕÿþ¯™@/!Oi¬hÍzü¤½™Ä6ÜfúØ©/šlØ$ÛÐ.°Šå7Lž= mx l±#³$j›½Ì0k…}'qiù {°œé+Ÿ/ÁÔœšUF¤[°ŠjJýe]Íø«&À™ó¹´z† ÷#©ö¡¾Þ7ñ®1TtÀ+­svPS³„zv°’+ÂʬŒO4Äs¾0íA9‹·ö0££º_‚gÜ'šS" >Û_²·á[í\ ÛB¦E4Þô4s‰–S›´5,ò‘Œvzv…FB•G/ã3]±ŸÑ*Ì@^ \kÚO-»òffôù —[T‡•Rö`-×8yApwû^ãÛ—ÉéØw®H¬˜o+{Í ûjäLäY[ í?hNãœR=™š´'—ÆáÝ}XcN+ íz«²z3œi}e/K—âó¹À«Eî‡`!ð*ô·oógÝrSY>õíý×~µÐT•Í~„èúûûä)™é»î~…û[*›µòˆû9xOR•…ªÀ«ÉT僑œ‰QhÊØ…fŒU)‰ßB;î¥~{¾¹Óì þ ’DÕî7ù]’¯æUÕ¶$N…þ3ê‹np—|®¯àµÚ?‘Ó@ñ6ß]eJFϲž—ÆÀŒÂ”ÇVgTʬ¨ZFõU{ ùN)æ.t¦¦Õ)[â õÛÛƒÑÑF×äD3Þß ~¥|å34ú|t‘¢ Öù†¸N‚z¯n.…KZ±1žò¢X‹éOb>qQîú4F;d˜°Ž³êjÕâSùœ¸g«0Ú]4~?X”*"…iõåg!veá›Z¶ ÙV¹T¿›Ë¶5aµ‡J´3xƒX"îmÊáÞNcÜTvÜ?¯ßÕ|Ž:ŒK  ›M Õ½÷ D'Ç<¡ÒÄ«(3|Ô¥ê^¨¡cØVÍTìµ4ú¸ºb÷u&kj~0ÅÁ¯Ô÷? g÷(¹Nìý˜¶Î¥è!ó‘#Ú÷^f’¨'AÛÓÌ,–ûpþêù2ØŒ•c@2eŽ}ð¤+ÔŒM™s?,˜0žá„QïÁ âÕ]¦­ýLîäiqÀ~/ý­Ö¬L2ß#׃_éŒü ìü\@c^š’‘Ã&ÓªÝ~Ñ4Œµ _Ñ_NÙZÌLÆz› {ð'ôZ«/=²=ì%Ux´^j`Ø&0©s˜ƒÊ°}?ÎÙM’‹¶Ã$É´` Úw³)wÙGWåÐÞóæ,°u+æI÷…bÖVŒ½êhÀaxzs`ì0`Všlµ2 ±rË1 ߬Bý*g(eŸ”ÓXÍìèSà¸K—V’í“ýe; OnçJÚ²¢õ&*`&4ïd!XƒÆ_éi º…ØEçX½¤ÑܼaZc}ÝÂ|\ÍÇQö*®žÑʼªÕÇm^m1ÙîG×Ãõt€7=ìù ±3A={‡¬Œ½ïÊÄÊûÆrÈüj?Šœ¶õÐòçÍK2[2rA#ʧpߎæýgcFeíƒ,ÍüÁ=hÝÌôK˜ßzXuc‚ùîj0+˜ˆÝ× üê^ÿª›ƒÓð#ßÑàOøû©/Úßßäú¯ÛÝ:àÕj±ÀÙí®/]ÖÀ8W“‹¢•æcEiLX ÌB+àF £¹ËjùïÀ\ψ/7;‚ — ZSUñ)Á—õ;•¡Váïz»¸Å½‡ß&ùe¬ïü‚»á¦±>ÎS4ú¬­Ãøö&×—Á|ªàÏJ̽æ;+¿šŽý8†v_úâ5²E±¢ðZÇH™ÈݦšÝK64ÜLöC}[Þ>czEO‚w©W¹žÆŸ±b³fÿ´7ˆJ…±5™[B¼–Ffúeq…Jéá Z"wxYFïèwSˆ %ù¯ºó«2V3‹ª%У¢Œo*NÏ[¨Å¼ª”ÊdPJ<^´dœá¥ÉÊ2Ö"•]RÜߞè‡ “Ïœ.JÏê3¨’v*óþÂÛÁœ¸½VÞq´Ëc¥ñçâU°+ˆÛƒ…È?+cÝ,Åé›Å[ÉZ‡’Ÿlû)î¼™Ô½P_¾fÚez–óEùå1sJ6Éy·8Ät×GUÎŒ×Á1Ôêm¼úJ:Æï'˜ωÙÜoÞÀŠÖ»ÅDZV:S4wi±ie¯Q_4Ù<¼j¼R½×LÉ— àWÚÎïåÐâ}Öw>l2"š$â•ÖÇ9gkS[¾Ÿ¼n›E ¯¦ƒ_Eä/ÌÎ4쥓àó­Ñ–<ÌÊcô¸·Â™s(\AÞŬjÊàÕ*ÉÆï—âìo¬gÆZÙo³ˆê0¼ÅÛ¸-ô%ŒÁi?ÌlF¯j¡GïÇÐòû/FÅHŽlÆk…åA´‘µÂ\eêÉ|n2ìSÀÉ2ZÇ0ú»b|{G)àÓý»(ß˵´udUDó¥ß@:˜ùØQ1G÷C½¾qèÕèic¬¢ñØ#Юšhå´£>½3Û¸ñ(V±Þ­‚=x«Û ¼ºË¤agÞê:¹·ÌDz×=ïÿòçƒÊÀ«{c‰>7–ïkÉó•}3ò,㯪ò;#“eb>Ðj,Fgæo0vf3¾m38mXßy3•ÝÏa´î ó­Ál÷m°<ÇxÑÇÜ}þS·¶Ý·¾¦¿âO¯êÊvßÕO^í–‡eŽ[é:¯x5G¸ïY§±¾SÎÊtV­MV3ê×Ìç]=¬ü!X©[Ì>Æ)OÞr¿3îw§ÿÀ9_ÌoÆ'S}q¿xÕ3·Ú}ê‹úêÌü5òøÕB«Ñ ÷˜2ÑçÀ,ÕÕ<ûEFÏ•{«ÇPã¯&¢¯»MXK¥³{›P#´+æy(ïÏ6šúv;ã2€7·¯Z0ŽóiÓöàx"KySO¶ÐߤÏi•U˜XPoXµ*ʈ–b´ÅB}À¾+…V‰Ä"|V}J…Y•FTQîW”þvµrÔÓVÞ„5¿2ˆ©©ŒT¨…>¥0v+7õI&Ô-.Ç[É4bŸúÕ3©¬FÂ'2™·˜×î+Lö—À8‡&XYıP×½81/ÌG 5¯’éiË ¿*ÀèÐ&¬kŸI¼R.§•­çb¤“‰Ö#mxŸØüªÎPÅœ©Ø M©ßžl.ádÛjJŠúÉ6¯Ér±¢¬°7MÁÈÃSj«nÁ{3e++x®Ãž®J­ørèeMƷ׫oÏÊ«˜©ÞfEôIÐâ£îSìª.’†õ1ìÁ›M?×Å6’»#ðO^ÃŒub4f½æ}q~¥zÒ/=EÿÊ£=šÝÜ{åð_+Ä7¡NC{؃Ób+kÖFϯî *¯þtÝ]÷&øò.—ûÙ¿T±óåÃXq_#VÃ×”ƒæ'{6r)òŽ­Îxªã²]z37<H1m¹™x¥± yèë*Ôk¶Ä^ú¯ÞR.Àï±ëÀ¯.«ƒ ø{ ÿøÕÛn)ðê†ïàó»üàЋézû=ò¤LrK]O¿xU†ù8׃§±ÊÔ;UV>“™ÁÆí¦ÀèÆT(œNT—ìyøÕ}ô·kî}u‰¢²÷û .»Oëãdù2àWï;ÍqØè¾¿êé53ûjä ¬äÛéo߉¾h›\²¶¡Ä+åÇ+ȯ´þP2눩ê˜r‡rÀêzô·§zâÓx¦o2•í¦è`Ú£Í<¼©ý!'`žNg”,1YÁ›=õ>7À:-FÔ(…¯¡wH㬺áM¹ô±g2þ*%žíÞª%3¾Që/g`ç'ñn0ƒ˜Åû;½›©If™`B]÷\ó¿z÷Š“aŒhiò+Ïz^ž>ìíÄÆ˜é˜ À)q«æ‘ÉeÃZìǶ°Êã-M³$útp“»'¨„s»«®žæÎ™sr¯;ïðoµíy2ö³«+å›Ê^ó½=99ië²ýë¢ÙW¨&z+í±¾`1ƒ‘]¿ÝƒqÓ›üF°ÈÚÏÔŸËxÑ.ÁD÷ìÁiZ5Âu{ü«îvÓö` Õ¿êwšj²Êõ°Oý~yTæºÛ]7¿Å¶¼™-+Ü×ÁQØ|•UëB^—‘¼u«Å1"=ð®h‹ž ÅY+g°  ýí ÍCÁ¯AÖh{³ü*êkûót°Ø;ý×ó¸Æ½ã«øFàWMÍ€W×Ý"«úØw›ÌèËèy&U­†ÃÚ¨@Oµz tEգΛ*ÙßJkMó5*NïÍê[Zà÷ŠL »-:’lhœéúÚ¼ï?jFü<]¼UÅ×=÷ž™ ¯“xnÝÝÝ)! H§ €¤¤€4( „…‚ŠH(‚”¨`a *‚Šíßîoíu®ßÏŸúêž3¹fí={¯}?W»§Îå»á¤>jÃ-N/RIàÕÜx´x1¬€QdFéäaäh ùDȱbÔ‹ÉçÒè_”4¡úhyªb3a…›ô¾'˜°jE:9F{5ÂúLçþM%GJ¤µ™N]®$î_Ÿ¾/“ß%›°Žs&Õ—Ó¨óPŒÞ¯ÿüWM© ŸIWýû1r°Ð3¦ú~‰WïˆòN°0ÆØ¯° úS­Á5 ça˜'= VD{Æš¶4?›T@¼‹õÖ^~"û«ržÉå„Ûa?l’?‰ÊZoB1GÇ¡-V–æ*N5×Ë+àWŠ¿£1Kß`VÓóp—9‡}©íxXÐÉ„š3KMoû•Ìåh=`mcgÑ7õ“iL½>½'ø\ï¸yJ”Ó>i’"ÏšL«ÖùǦu䪭G™.rƶb¼h8ÛLóƒùﺫê¸fCac¥= –÷ëlÀiYö ÞTσ×í)†5¿Ÿ»>X¥õ„a.³;ìv©ŒÙ| üsP ,vÉ­ª¡xÇøö³ÀäñØQÀèú+i2_7ÅßCo­F+k-™zÀØZq¼ê`fGÃ|Î]ÁN×ø«<ÙjfM7×Ͷ–¥‘øä+ø»ž¼!« ì»Ø ã=#û¬.Õ¯ËÇÊ^‰]¢µ5ίZ1KwxY'ðœqâ«÷u^ô$ðj+ëy¥º«®À rÌyYÆóŽ?4´ËåL,ðEb| ¹üêýÈ¥ˆ²Œš@š—äfÆ·7cu¯Q°báÀˆ¡r´×bÕjU õwϘœa…À\Ó'¸Ù]„=¨ÕŠ›¯î×¹öà—à5¿øÍþ^Sx5Åß ”Ú%»å6·Àõõk\’­fæÉnæ;/@/oÐfQÖnXWµI¥y9ªAÖs1ã°§bœuð™{ƒ?ƒâ¢Vñ£þ]ñµýjÌ[ Œò Ñuź×zô%ˆW5Ì7ÌÇ™c5Róv؃¯¯Š0:u y;U£Œ–b ©úBuzRZÃM¢>ƒ²–¦'YO}"ÙòœÍ°ý7E‡2Bs´¹Á_ï›2ráyÓ'úJt*=ÈeM%YMŒÒØÕ¤Ï!¯ÈÃWs¸ß5g¹vZ)²ŽâCfÜB‹Wþ‹¿ õÛéõÎk÷©:U"yW"ótÊÑÆ”`©r©ÆìS‘2y|¡nC Þ&æÅ±± =щŒø_åSQ&“_gÓ¯žÍ¯Ë`˜°æXz<³Çó9™ÄİŽsYzî#­Û¨7„‰Œ¢Y\S£7Ë;9*éXå]±ÆÔnl JscÌÇ9eJSÿ* ö\_ìò,æ¹ì6ŸÉ8úµ’ÀºúÈêõ©=8\}2q·«.ŸÉ ¢~ ¼ëw¬¬tZªk±¿ºÐzÞ§û“×ú®þöS™Eßb#¶¦]fuL~1•Á¯&£~‘³æ ÖÁ9e‚È“&Ùj ØË¦eä2õdRLoyÉ6Š´!ך¼ €·%Œ*sFµ27FN=F XM•伿o™~òEpö ÎÈ ôõá`=VjgÓAÆÙ»ß®:êïÐßžÇÜÕÂUí¾6XÍ™ú®ñ2^ÆàßDÙF5š{ÌrºjŒg¨Èz5Mcía9ÅzM+W¿/¸Ï°óºJ"öÎ%;Ÿêêúƒ_i¼hyà›ê¯ âG/ÌÛd<¥3þ; «þÞìWÀï¤ÿª–ùÖh¤kuìßUŒÞ|ÑÜ~«§bCôðjG ÷-Yî×Ìõvo˜gåN×ÇϽT·K䦨{®L¬4ùÕ¯öíÈ‘§©×7Ñ<#ó¥'úÐks öžZ=˨'Ó‚ŠÒwá}%ñæ¦fþf fé4¸u3ì„Á ÷>øÕDU»óϺÝqý«+¾·¿êϯêÊ:‹ëÚûò¨Ü ¼êéowJu³\öºŸƒ=˜Írèo%ù@T)¦X]gGÞ™NÂ[:Ñ‹Ös¬uBÔ¦úíÛ‚¿‚lÁȚݰAÅ7ðwa”Jù2þvÿkƒµ¸ŽxUxUüê¼ûÅÝd‹a l6%¢¯ÛzŒhj‹¹~#ª<|5ùF¨d± Ϙ1që«,ZÑš|Fï[¯TUóàÕ’èpj( 3ã|wß_'¾œ}-:™yÀ5Ý‹©›§¾zUæ/ÎX…\¼ií8äê†ÏîËa­ÓÐcžÂJ N”‹gËÇW‰dʵê’_+zå1ß¹(¹_É8^%ó/ëþ¿_Z<3æ¿X÷ÝÒˆTUÈÓã>³°®´Þ–c]U#2ãy:M1&Eâv^#öÛÍ1 âñ¢ÅãùÎéÌ'Ldþ`!ú¯ù¹jÀ˜¥æÞxÛn ª›r¹Væk“(}Ég*‘ÿñë«Ø%[Mqê¨Ç9»P~$GºÞŒ‘î¬ïœˆÙ.d9R؉z£^;ÕAù'Qï>ö_zÒïÿ$óÆÇ›öCYÈ<ÊÃökico·ŠŸ R\¶Ù ’Á|œ:ŸÑÖ{ƤEöš$«Øø¦iyü*›ñ ŸØö‘F¼ Xl¦›ß`ߥÔ!­yƒa¥©jûC¼ƒ«¯‚¼GuÌ®òYpüª$ö“!ƒ…´“Á3ìv»_´2Ñ%Ø}c°4âYÕ‡0µ=«|ü¨¶!2 üª´,$V,ÃUf>py<µ€žb­°ÕÌ>E=™>ffôi÷WpÆ}ª˜$Y°?€=ØÍtr·Ùj²)2O=ÃŒ©ùxNC|ú>Œf <}øÃÓà|SXqy<Þ¥úWµ€©ÉZ•:cÇ'jЃ¶$zŒú¢˜ýt÷™kãú¹×ÌyÌýäc±·WkduÌù„Xyßx‰œ‹œeüU]ÌÜa¹Eú¡Z{of½VŽÆ|•ǘjá­™2Ì܆öÝlNMgá»T3$¸É}~5mÔüÁý)àUùÞ÷ò6vÜ?ìZí'û °·ÊÓ2Í-tCý*gmàÕ.÷ ðêv¬žA¦ø•F¶7B ê ç­ŒÖ¸™É¬œfØ¡ZM`ødkœRj>ü¤ŠÆ:h½Tã«úMÀ®L_‰õ;åÖ¸·|9_ß/ÆsþŒ<ë~tÓ¬r*Å«WYÏ«®ÖUÁZÑ: 5ÑËF@¼6Ñ¢˜ñ8E&3<Ÿ2¸†±ðcéñÙ`ÚuÀ+õŒ7ÓüPß óž€5Ü-z*:û±À4•ñ¼ã̉,I›%ìm:oÿ3ðüÀçä)鬆š÷ñ„±L…¸Ã5‹¿rˆJaå2xj=LÉü¹æEÇèE*Íg'Ó'ßšú IÔ§*÷NéÏó‰>9ü+ŽOg¿Râ^ù•aR1;iŒN(B‹0ŒœÊcœZ6£ÝÓy{Yœ±©´d•j ¯²ô‰Ex'Xˆö\"•À²ˆWš—]#¾#ª4÷ÂnhAK±ùÔ”’ÞôüÏÁj»N~ ~~¢u%M1Q\Ýõ½Q~%ö6#¥ó1““äANÔí¼zNnbtH¬¦¯E¢þ«Ç€/Ý9Ú°Ú᳊É+Mwð«Ûyûú¸ýVºØÙV=ðj·-µñ—$ÈS°]TMúS8ò°I¡Íøðê’­A{wyß6Ô$ךÖö‹ùc9 +ù`Tg ŒúZîc½ Uû~«­z\¿½»|¼D{C lLz‹°{˜¡²ØÞ‰Ÿ—Ä:ýÄ|ˆ§®aˆñ4­•Ã\÷ß^\X†³Òd+Ƭþv4ÕÞ«aìõ~° òÇÀ«—åeÌg3!zÌ9wÌ}Œ×OÒ|qÿ•Õ¨ø.®‡m&‹"ª˜~‚z2  ÑÆìj%–i°5F/ÊR7¢«ñ}ŠñlÎ8ôUhGØe÷Sq¦¸Y}üj#øÕ&SÖ}åê»îusZ¶»³þ7ÿðj¥œˆ‰¯«äÈnð«#Ežµª6Ý¿êÊÖjôÀêY¬®Êˆ÷Úá Xyz_·8<ÌO£ÕÚb¾sWëƒiŒ¿:Äøö…àÎ_ø®°7ùC«üT?Éõö÷Ê!Yèf¹n~¥ó¶‚™/{ܧÁãà˪(UUÞ’±ŒbS}«ÉÔ“iG%Ãþh…*a¨½¾ñW´‹ŠVžÜë/8œº“xUʯôºŽ˜¹5î#Ÿæ[ú…Ù_#ϻݫjV›M±èk¶!s…;a¦O“_U_ª‹s¡!¾K'f.‹Ç_•Â<5Á,éZSÖ›˜Ì=½ÚÔ·›£×+›‘~¬oN{î3"ú~t<-½S«¿±£:ï8Ë’Geâs0o%øW¡r"}æ)ôÙ§Ò" óü”W”#*e™P´tœç$±†S6=_IŒ{/OÄÔ¼Â0:‘1Z °’ÿ?Ò*%Ο2]•nRãì¦ £P“ùù°ê³gðû-ìM>VAo<5™ú ï€EõbßoŸo%qÌßÃNØ &¢öëƒæ¤ì’ïÙƒ¾°À†Ò¯¨ªñ£å ê·§bu ^#r÷ĈP[o 0ð4u’Àzb¬%ó¼Ç4µo±þ`²¹Û>~u‹ÕÈ'Ud—Å;Á¿åUOmÏYó•½—ñW‰æ%Ó,ò¼­D½¾.r1nêýæMÀ1–}€§Q}ñFôÜcã»ÆØa°o«ÉFµC'É©àC»C4†y5¸âò`+VåæF™h°Iy¬ç×1>Ó0nåð›AÅAF£fÔ?ú°q*VY=àÖhð«$ìö~d#âúíZo¢ æF=â—L{PNR“{øU!÷$ëã •Â>ÇŸ²‹`ÜâêÙ:ro¤öËKÀ`ŒÍ¹#îÇ›Ô5»è9ün¾®„SÛ¬zr˜º š©¸-è{p;ÚX-X}xµ$¨ &”宸–n {ß¼¼êç7Æž ªÙ2?vÎ¥Æj¯v˜ŸíÅȉÈI«™°‹Ì‹2üªÏªÄø«ÆXCCðOmÖÇé€qY†wôÀ*ÚÀJf§ÌIð8­—zC0Ù]ÃÀ’Úøn»¿è毾ôÝ€W§À¯jË&?ÅÏpíü.Ù!sÝׯowbË™E²Ö}œ65ÂäËë²»¯ß?£Ù§íæñiFh7ŒÆ؃±Öªcv9.QÚâ¯vú7]Ô—ôw`µçûb~ øU'|fµ;ŽŸv÷ 0§ïDNºˆ_m5›xƒÉŠîµ0Ge€j#Àd«¡—•ÁÔõî£ ýí£Yñ÷FÚgå‰W=‰%-07™§“s¾’]HL˜`&úa¾#ód˜aÑÏ£ã¸{«cj²îÿ*xFOb‚Ú“‘M;n8úVŠ{'‡¨J?úÁÃX¨D¬®bÄ“0ç¥,ÙŒò·|*¤—bU’¨‚Ÿ$Ó?S„h’bB®šôÕ'Å£²’MfÜ›ŸK.òª²D£°‚}9•gÌCfqŠgㄱX¹¬7P"Žnú¹<úÔ‹™³È¯Ô립 sŸ 3F¾0}rÙÌ[Jdüíl¬µ»ÉgÒ0ß=°U ¢ ,¨êæãÌÅ©>ö òÉ+˜ÿ5¦´(çÙo^•gÄPÃsp©5æK}k•Ì­²ñWZ;u¢l•i¼1è…µ}ÿ*¢jø70ûÚ~ÍwÖSPGt©¹öà\ŽÖC¶¼í{PÏŽÂR Ûí8úÍ~ßÍ«æ]Æ‹>o’";M–ÕÛ‹·MÛÈ>«õqL_9m«FêPGb6fúGóž¢þ•ç`ve¾h}óvô£ÌF>¼*)€9UMqS4Îw%Xæø` Æå`È1»Ï>,e±ß2ÀWjú¢owQQ«;~þ‘žþÙŒò«TQæÑØ2³ÑšgÈbü¾㯾>¿!çñ›öÀ+õ_=í¾Æ·‘vÒ%» ê:÷­4–‘Ø ¯¢­ÍÀÛá³aÇ+£jþuÁ)ý”Q=¨âxû:àfOüÅ3‚½Û-mwŸÅþ­‹U£õRO7¸{‚j˜Ít÷¡k{ð¼yMV¹J~TìlÐÈ.±S.)VÁ7‘û€WFžŽœ˨Š^’»e9deÅq´iö¤âU{úÛïÀûÊÆõúêao½ ¤œ¶PÔŒ&¹«Áê@£ëÓ|Ç-€ ø ìÁoü ÿÖ‡ñÓý4×xõ¸,uó]'¿Þý#UÍ2yÄ}~u;Þ:<ä ™G{p*Æz VZ'Ö¥oªÕ1ÊCðóu°]Û­¶½ üê— ¤¨jòCô_Uõ›ñušO^½ïÔŠ\ç^÷¹¾©×êŽ_GN¹?Ülêõ­1e£Çl ì¤JøÄâUIÆ‹Öd6sMôk VSoÌF&+’*KoO?’FÒÖf]ÎT´¡†]׿¨ù‘¾5³`ž5S¢—£ÓèªdêÈ*檤á)í1¯9Œ×Ìיּ[ãuNSi¦“÷$Ó DnP†Ù6!+ɉG¯§%ª0š4TI(ƒw„Õ*r©¬PÜ„µP ‡¡ç*Û„•¿R…Å*ÅLX?¬ßV²I&³+DOZ-áb]QÖ¾ÉÃÞ¨Oû4ƵRÔo‘¦Åi®˜éx7è‰aÝœâÄE4­Š1žŒÖSíÊ3QóÛ€ U’ëøÉ9æöÿì×5 ‹æ;g3ïïyZ¢ôi57IìµOëš9ò€Œ"›¼zDƒ;ƒ‘¼U”Î\Ƀ°¨zpœc­€´¾šöÀ«Åd¬ìÒßη:^ªË°õ|ù œîªyŸ±ë‡M^d·‰R3Yóï·õE­üÞò‘­iĶÍâþÖ“Î\Ü7Ì#Xu=0Cðæ§ðo=àÏìý’òwÛù,¸`W°ýf“$#ƒÕÌž OÙçì~©ÆÊ §ÍmZ­žÚWŠf[1šÿz˜<‰‘Ãÿâ,,9@_¸¾Ç¨~UG¬‹Ò{„QjˆÞ2Õ/Z˜6üêÁ îSÌAKÉ^ý`—hlšëcÈJê!¿‰‘ê¶Ð h×è3_µÃi=«þÞ–.®C;T_ôZØméŽPï~–šfì”6 ¢§ƒAnìÁe&Å]t®§{üjûÇçÏ ìR9ûÄ•ŒUñ-ä~ó™}5ò&ðª°b¼9#Ó¤7ã ÏP=;¬ µâà-ë°:âÝ›Yé,N¼Eø]QÓ#˜î¾ V#¹ aÞëϹŦ&ðª½ÿÑ¿êw›¹ƒõ&ú‡e¿L¿êàW9c+›Ù²Û}&ÕÀ;˃·O5À›b k¼†úªó¨Šü8œ!ʯnaÕ±ûa–õþm^%¯îªÇ`®ñÃlo6¯*øÎ~9Æöð«¿€WÙÔC.}ÆÖ£÷¤΄£X½ùØëëÑïÞŒÛNÅ»já7ÿY #SMµáñz¼Úã·ÊB6˜v]tïÆÆšQþ߉Ù.‡ÍðèÅèhâˆÖw^ÊLfÕÎR¼*FLJg>N&ã›rÑîaŒƒJfÖ`ñ8¦„qÉ&Ôôˤ¶p"yH‰¸®‹Vt¨gRÉb;ZÀ‚4*Õ¡ï½0³‚Ê1_&™zz)&¬]˜CMÓtbljœ¿…jlj|F"s…2¨éUˆÏQZ12¥\ê‹fÓ–N=ö\j8d‘·…2a]×°½ãç<­ÆÌ¸ª`"ÆFyu<~U3wk³_-±ï’¤}}3°êÊE¶úsìÁ{Mæî=aÈNy‹v¦Æ_ )ÚêýàqØtúLÍ+|Zn¦ Ü«æ"N|E_ƒz(Ã8®ØQwÐǸ gÐGžGÚ—¤«½™±Uÿšªr¿½UÔŸgìWÀº ¢'ÁI¿J°:žï˜‘ƒ¶º(Þö‘`¶e<Ã|ü#HQ®®7Á 5óXo,`—?€Õ\}ºVî'Œ§›,O—ìZ©žlÛ ‚]¬ô7I–ÛgíQÑúXï›×`{ÜÍøŸUå‹ñWõð†w€ZÏ«–ù(öIĸŒÃ“Öõ—wÁJ¨‚ö0VZ=âeÀØ^ÀLu5‹£ûÜÁ!÷1Fs´$ùLÿ2ìÁáf0ðª«Ì‹\Ù½ ñWõ|£WMÍqìëN8õÕ›ykåqü?\q'Pø}ÖÁì,Ÿ/Ûõ¢ l™I“©ÁÖ,Ûƒv—Tƽ¼½ûRë„à*¾HQ‹5ß¿¶i•[ Žù/PÖ®ªÜ 髚'ÀÌTñMë;_5ÕìAÖóêmFEº_ƒƒàW½MO)â3ü5«Ê{m\Šm!s"šE}ÐF³Âãõ2ÔwÓ=œ€Sÿ(ëyåcw¬‚vÅÞÓ3»¹--Ħ@‡Ð'­D°0úxÐÑ-ªâ¬JtŸ¹š®£;‡1Ýãjûi±ÓA]»XvÆ^pY±2¾¥ì1ÿÚw"û"'­Fˆn6Çe‡4×ÊgèÍ8´¡öíÂx|»ŽÂÝà$=Ô£Úøröà\¬×\ÓVè؃“ñÞjþ)·üj60ê#ßÚîŸöjÞðJóq–‡eŽ[æ:ú­î_©iæÉÃÀºÇ©Æ3³õ‚¨gª.saÆ£wz¡*ñ}xë0+m;s¯¦Rÿêᠰ˽Á½üêWà7j}&؃ë`“¶ÁšØâÞói¾…×Ùù7rÞýêtí•DKÓ£ê¹Ëd%ø¡ÅŠä;ðÞÞ¬šÍLóÙŒ…V;IO«¶ÜÁXm1;zî¯0ÝìæèuÜ #Íl?Ú7å}Ú3!úzt0½H5À/o¥oGýÉõ±¯Êš°*üõ˜ÝbÄŠ,ìªÑ¬Ù¬H‘K•äT“G”ÂÄ­›X1í^”Š[I´Ñ4Â+…±¡W¨c'²Xo"ƒõ¼Ô3U1T¡—=Å„U-2èõs Óø“ ñ(¨D"C1ªíÕú²ŠÇýíÉÌlŒÞäš°Ža*ïˆÄ9Ü÷š×¬ž9Åßc¯ÈÛ¢ô½çÄãÛ5öàz33’Éû€.ÌQQ_ô¦¨ô¢·k>f¨ ë;6—q>-^éØì1ÊóÀ« Æ·÷“vf$}PõÁDöÊxŽßpXWOb]é­fO¬š˜?¨ZwbÏ÷â çqôE«ðªMºÐ4Œ×›H0{ì%éiçYÿM yÒNÍ+0ö"øÍ1ê´Ÿ þUÌêë{¦MdÕ˜öD°¢÷lÕH )Ê|œYÀßІöXÓG`vÇ~.†¢Öà£XáÍZÛq²}Γ¹ðêmØCŠ9ŠÍƒeøÛ¾à˜OØcÔ¿j–ööÁÝôw©ÖÌõô·7Áú} H?‘ÜÃÃ.,I8/»cgoÄJ/ƒÑ-Ào£f}œÂ×LUê_•Æ'§D‡=xÌ}Èøv­7‰ÌÓ–ºÛmY‚}z#Õ3¢{³vÌÌžˆ}ú4fiFRŠï¡þUMüõüuê‹¶d-³ûÐö’ªé}*èà–Õ±‹ÒÜ5×еsçÍ%9â~ôúsA »P¶ÆÞc}œöÀ«?ík‘'"ïØê؉š“2]†ctš ÷CÎÍT-Zsdè9ªoöbv+©ZÂ"ŠñÙœb&cŽéŒq?‹é¿jà÷¹mþ=·Ð”‘/|_àÕ3~3ph¥Ÿê¯s=ü£ò Ìv·»^~³û¬öVÙá>  WeòÁáUuª#°Jó[ó~p&5}Z`T¡hNÅî8%ëàD~0ø>¨Âz^[ý.Å×ôk1§Å¨/ú¦ë‚µ¨ñ¢E}5?côgäyøq¶,ö÷&“UK¸h¼êγ¬Y}lˆÙ©4Ìf7ĸϠ¤íõ°Ö/Ú­šÂ8Æ;Íp»šþ«°®A~²oÏøö#fzôZt,=D•Y'‘ìZ[§=µT’1ÖCÑŸ"ôkgó£8QGøJÑÚÌ$‰kÑ”bÎaF<¿¦H¼´"RmFqa C>f¬¬ ó£óã·wjc¶Œßñ%áéô=§Ç½\IŒ@H¤7½[VüRN¡UŒH”Ä»ÂPë=‡Œ/ˆRƒÞ­°ªacSxO˜ÂXõ·—'ôŒu|KX+'›¼L£íëcnÅH&ñ^¡+«9ŸÓÄ|ýÖüê°–ò-Ñúk¬IRý£æ²Ø8 Ï« »ƒú ]Õ6þÝø\Y¬ž ÑcÁH·üj•Ip?¹.®»;m>…=ø«ÆÞ *ÛUr_¬¤o«ë›È^ó=9§ÙhùLó´ÜÂ|œÚ˜Gõ_éý$ô½<ãU¡]zsÚ•x¥Ñ¬/€Chì[¶éÌpß‹‚›€:íüãn°clý¿|#ÿ‡ÕïÄ©q§ŸâG»QþÙÍø«~…ûx5KpŸûÀyk©b<+7Q¥D­í±ÍŸN»fTr‡VìÃϦ •Ë̦àJP TóÔ輯ä×PÿªøÕ‡®-Öõf÷¡/ëëûyÓ¯#§Ýßn¶Õª ŠW/©³h}Äùªêû©)¦\NóxGb,Ö½cÒH&­»Ñž6‚V›neœÁõ¦£]G~Ux{£O=™4àßø¨ ÆÑƪ~ÖwVžÖœ*ZIŒÊ¼ãžI&¥õ¼f0Û&¬QœWW}XÅé×Ê"ï)I[/¸¢š8%™­Sˆq¤5âÕÀŠ0j=“6X6ýíéñ8ŠP³4‹¬,‹™gIå‰?äX©D5Ï Ã2&¬Ì\”ø™Åg–aLZ6ýíEhy¡ÿ*%~ÃðN°?#×JŒßÆLòÿë3¤aÿÜóq ¹VQÞt5!®5þ+.=øÞ[°7ÛÉUڌ緘ê’MmÏs²O¾!Ž Â.ïl&ò-ÕÀ¯î“±Ä+=-£é½ëdü¬YuÎàw°«²™ 6þlÚ¡ËMSû¾LæÈí·§e€c5G)Q*Ëi;K4ŽDýWo›C¬…zÔ#^)ï=oÚGöÙÆ¢vh9okDêSf0ò_X„E˜s©š*=u¥²^êAê_Ur=lª_UÃ×ÓåÅàp)¿Ù[¥V ÙƒÌÙ`ÙíR­}«ös/0°%ÖÞu¬"«õ&z ‡ƒõTÆJý¿ù¨¿«º.ž¤7j­€pÕU›€õ&êá¯ëÛçåêÀëýàßÁa÷ž?ö`Qÿ‘]Œñ妣W7GF2žAWR¯¯ æNu Ú0–à ú¿?/ý¹ ßk<ÃA£ÚsÕ©Ï ¤Ö÷Ê3+£ƒ¡nEPíÊvߺ®Ÿ{Ý|#÷»—ýÛþÍ º] —c¹¾ VÙ×âÚÈ›‘‹‘·­*¹Í0ÏÈõ2}¨‡M¿lHõvõ}ªÂŒúD7c?+^måíåÛ˜ã…@Î<Ó'¸Í] –Á\nêƒ_mõ¯»E8)þò ýï~¿Ç”“Í~"ðª‡ß+[e2ìÁÎÀ+±•ÍbÙä~^[®¬weò’L3¡^D#üÛ»¸˜kŒvŒt;Ìú]¡.øôWð#ø•z¹îô»(ìÀmXi¾„_ã¿wíˆWï¯òý\Œè»àW?¹eŒo¿ËdF÷Z ,>ÃùZÀÚ€c_wgU6­Ñ ø8΄z}Õ06]h¡)/ï &®ûhim7D{eÆ›‰@å–8;’qbN‰ú`2óqª_­'Fh´w'<%¬ ˜‹]:&î¥.†4ˆJ‰Ä˜¢d a5›­Y+µ\ÜSžÍl› zÁK3Ê3¼ï+nÊ2‚@ŸQš¾ôP£¯(ïQBU«ð&0‰H˜Kk-íÿßUŽXªù¥ 1ž¡"1ªo3‹r''ð,oL¤*Wg+Ìg÷¥ÓS¥*ª%ð¤(cÚ ÿt{xÇ™¡½3°É„Ua;ó.8F¼ºhÒ¥;1äVìð6r™m¼‚õwãÛ“p¢¿ \ºbÂ|ça@·ÁìcU3QŽP¿=ó9çà0ö¾=Nˆ7±ÃÔ3˜ováY݉û‡¨e{3û=Ý´¿šÎ1ßm¯Ê@»Ò*GŒJ) Ðj‡þ%?AψZÓÏ_9«˜ùŠé¹ËVå½äŠ­ {P‘)zð·V´ÇÊ©‹³þQp¥ÞÌBß ”ÚǼÇìÄÉv‘ÖZw9¼no—«¦###ƒµØ‰}\‹À¯ö¯š7^ÅswRåázœ¹Z°f¤»ùÀ|ƒÝSó“1°B“e3ƵN×áT-À<«þUÆP}lÚÙ'Á¯ÊbÎq¿/¸µê¹dùÿ½‡Oõt£l;Yéö¼†™iO¯r#ÌÕö¸>ÃD¼÷ú?•öØ$jÅkÜÕIìÓ¶ZAýèÄVïÆTŒçã pwfµIqŸ»Z®/øÕë²Æu÷ec'ƒÚv±<ûÊ•‰Uó-ä ã"oGÎF^µª42Á•qÌÇ©gßÈzSÞ½°K›Ò|Xcèo¿“ùƒçÑ’ExÓ=á¾ ÖQO¦œ?{ð97\éOØa_ú·üFSIÖÂãúøûeÜL=ä9î_ð«UàWW‚Z£k¶¢œ¿Òx† ñøö¶ÀÇÉh_OàHe|7 ¸©w€3ñ³Yæžàß W4ïf»×_¶g7“ç3ý2Ñi»»Üû@¯ÆôøÕ÷Ô¿ª Ì-}Êjuâ Œu;оUDÏ70°k¨OÀ¸ÎE+”ýTfŒ{z–«a¥)^éz¾Ã´·[¢ƒi=4üßk& üjQô“èpÞê•2õe÷r •.ºs·(#Ó¸£°º{6sVóLXe"—ÑêaU‰P+7p™TpH¤]X”÷Š™ôkUæ=g •t–¤=V;²½BÊÍ4~-;ž“Ŷ‡•%2Ù‚œ8Ò”‰Ç¶§¿’ã•Î< ÿ´²Y{¢0ÚÐŒ–h&íÄ|Æ36amúÄÿ·ËÑð~0ÆXõP¿=ÔRÕ¬BÕ–žŒ36¬­¡·J툇ÍpògJ?þõ S[ð¨dâ•VÞ*Bý«ýæ=¹G~ Þ€ÓUë#­—:]„½ >ÆîæFyJúÕò¼fn¡¯®6V’æöè=è>žÄa‰˜Ó×d>ýZÙˆ~¥Ø-RVöÚ[EOžßÅÈó#s‚N›‘ù&B=ä×Á¯Ž¯ô³=ä²­ uo ß›ËhÙtôîyœ‹š}Q«òAóñª"˜ÒX%W0’•€ug‚3v+íÁ8ïºóp¶2Må.û= ZÛæEóÖÏøëž¬´0;´ž88¯ù8¥" r#p6UfSñòœ º‹T¹avzMÞð~iØ}r멟Y{ð¯à¤»H~•æKûÏì­À«º.ÁV•Õ‘þhçsø];ê·7¿âMM±3´féSX÷ãx“Ú5ˆù8_€ç´aýÁ•ÀÛöèû]˜q=SwE]Ýz؃kL®»ì»þîmsBN¹˜Ÿ»Àz©ëcï8Ë÷õä~¿z2rØÖÀSOÀ¼C®g4[]ìÔ1ŒXÔVu—²Ù@AÍøn‚–tV¼€¶i›sM/X¡Wƒ•Áð«*À«ûüKnŠ)-?ûfþ{ÿ:ðª²lô#ýpX{äa™ènqýRµ¥ÍÙ Ë/^µÁÊ_î^ëjàWc„ÿˆu?ÃÏÆgך’Ñ×lêØuÄ,ahpLkA†ú¢cЦaÌÝHÇž«Ÿµe¼A àUk°¯0/¬µ]ƨÌáfŒ¿Îw¥ïú˜Y=A–Tñíåȵô&¥WÜÓ\Âèí{z¬µnÓ0²›dzˆJ˜°nizœ‹¤2þ*úT…i– âU&9UõøwIä8¥YK+“÷‡%Y¥þ.½Cø/¦*Œì +æÂÚ¥ŠÞi&¬F_ȤÄã4n¢ïò ñ™ÙÄÀì«Æ¬7* æó¥°—aĘg¾`Õ8^Eé½/L/V!þU&[–FmÊi˜‘°BO_àK[¢ZC I¢ú‹ñ”Éæ€iÏúƒš?¨»%]4âlù^v¯R˜ÉÓN:áQ»²¥¹U‰kýM6ã€Ws;Xõv¾Úƒm±–®°}2vQ/Ö~V|žezØ÷dq~›ýGúÚÛ¬Ú­?˜*²ÛN½§øC~^\ëgLvd‰±VÇë²i9f늎nG¹`ëGj“_­„ó5pDõ_;cÇ?¡úRÌP´:€¾6ï¸O£y?8PÎ'í}¢º ›Œ• Á4¬ÆëñÌåÀ«‡¥ õÛ/ o»0ÍX ~$vh>0h¨yíP%ÐzÄ«B“F«²l®©º,½)˜Ã_×|bÚÚ‡ä$ýWS£O¸ß‚çÝ'Øq}$Åó_Ú¥ZYö`kYÑì“3h{SÌ@üÓ¸0šuoô®û¨9˺ÏyàÑ¿ŽxÏq HSV¬ÙŒoŽOodÕ‡RfKô™ …[0£L¢¬ëå^_>ë¾ó…bGƒ*à—oÆÄ—ŠUôMä1s;9ÙKýög€W+d(­Ûj@ªAxþt´¡3tªðÞr õšâÿ]ІX·à»tÓ.˜ì> VZ#±Àu;ü)·ÀT—W?ûýþ.SC–û›üX Ô¬¢Iîf××/r-c毮ûÑËjª}(§d$½Ýš»7miƒïf0f©!Ú6”ºÐ;ß^kuwðm%Zyr-øzæ×£åå}®_åß¿j ~uΗ÷Mü"̶êÉüên¶ª(¾Æ¾`ëñF® öÈafãäh~ õâþó_73¸K‘c6%ëÐ 7-ÍÜÕ«L{õúR±f&•»â™)ÀÿùÑw£ãx³^É4–e¬œœ ¬k‹ýÆ”B&2 «x(«ÿ%Ð/ŸK¼Êfí¿Ð. ±§ µ§ÒÏP„š/%ÉœBE™’¥òüM:õ“sÈÂI]‘¬¥ õÒÈgŠÐ;•ξ¤ñ0T3N1‰ñh†Âô™•7aŽtŽù¯}ŒÕUÐ×UˆEEâU 3ãPíÁV¥Nc<ƒf=+Ö:Æ‹æ°&b¦*Ÿé=Jª +0ÿW/µ¥¹~Õ›7«­ ø•þÍ5ŒÕr“$êÉÛ ÌØ.Ó7Ö ;LóR«š¹rH†•»š‘òì;ý¬êÍ\¥=¨õïƒëÌÁ)ÕŽx•‚3¨¿}Eæp ³Þö±‹™ø»É‘Gì Qjìïæeó ãêŸ5‘µñ|gÕgxÍ–¦¾hyÓ6Ôg;gc ÄÓ3ªVÛãàCC¨úx•Väk kj£i.—€WeÌPy7xÑnƒ½YH•[ƒMôCô’Ñv‹}8V›Õ³fà3i3gî( B>ssÞ&¥ÇÕƒƒD%5xkcì˜AÌŒ)ÀSÓájwWMsû€œÂúèa&E²>ÎEæ;ÆÉÿ¾g÷v¶›, ~ûIìÆV@€fÌÃÙ†ÓFãÛ§ã¼>ežf¼hi¬ëMhm7´á[ŒrÆ—m uF›fT¾Ù=´v›ƒÊhw¦»àj¯^Řît­|µØóAM»QîŒvµbe}Sð«¿ìið«=¶¦F›'d‘t¡R»ÖÇ™@ßöJÖóÒÊ4uXç¡ æ¾99ÈM°COãSZ!¹s0Ü}ܨfsCØ©vÞ|“'ßûºþ’Ïß~uŸ¼ê{ð™áæ¹öþçl¾Y.ûÝ'ÁÃè½ÖX,-'e-Ò©èáTVvjdæa%uA+`&âí`ÇOÃ÷ʯ~‚=Øãü ø”õùÀ«~&öà"ÿ‘ÓléUî]ü´&ë;ÿyÙýîÆØ¢xö“Àz^ÅS6'^UŒ`es7ær ÖNM£z¡õÐÃéd<×Tó¯öT#ò«©d+L_»‚ñW‰³)èegF²?oæD¯FG“wT‹_H+1ÆZ«ýȨɆ˜Éñ8¤\Ìü˜x¯4f§P'9-žï§Ì(Ÿ~ïÿô÷ŠÒûžÀ˜ùšTYP/w1få³mʼnwEi£es3¸¯‹ÑJ£«yQўȸØL*†ww1ÚƒiŒ@-dBÕõlbfw[#æ^¦LÃzé¼õ´öÊ1–L}ï!j%ò¿aýžÐWW§þTÁaï;ñæ]ŸßÎ|d Ë~={ZíAÅËX ·›Ö©Ùg.`E}Ã~õ7×KGbïµïKiìÿoÌ›èÉ6Œ=œu½ñÛux¾Þ½ &7ÚhLiD†€i½‰¶djƒ°‚ÚÒ÷1Õ™ë÷®™–öi9UÓÓ ‹wÿÀ|Õüª„¿ {°¿¹ÑeÙV²52ˆõ[ õ ˜µÖün"ÞÙ3xFñ(Îñ–¼\†§Q“ŸjV1+“¬¥.é³° ë1*oKôñ`¦»;¨®—ᮺë]7÷¦ùP6»$ß)v.¨hÈêØó®B¬™¯/˜_íë‘ç"¯Ø¬˜©àWO¯Ê³ªØÞQA›zò'ª“sF&T)Øt½Ìï83ûòMßàF÷C°.PMÁÖÌwÖúƒU%1Öü꬈x5ÖOtCü²_¦¹¥n€_çþ•|3_žv_Áš.|®$'D#G+°þà8¼Ksõgãß®T ìp3ãÛ'¢ÿ‹ÍÖà× [Ú`\õï¸ _ÆoTö1¿Õ {°«Ùyû+rÚýæ&[õñ¬1EXÏ+kÌã\…5g·2ZA}ÓªÓ¶Áxú‘ò¨×׊ûLõ[2¶0CkÖROFmЉf˜ŸàÛ³2êQs[ôËèXÞ¥U1M`æ‘ •Ǫë¯3¨QÀ㙵¬8€³V`¨ßžK­ô̸_)ÔÍSªjqßP.ùI# 42¬c­«0³P^œ1![ÊdžUùOÁžL^‘÷¥…Ñ£ÙŒ Má_¥ó÷Šu¹ÌL%‚e3"¾(yHÙ¸ÿ*¬»šIO|"?*˜†õè+2¾Ìñ®Ðñ÷±x=ú0nUãiûâìYÂç¨×¼u\ a?| {f ï(g©×D~¦ŸðSôe³)ÉZ¥ûÍ5Ù!ßÑ¿w½Y$íXÏKUçÉó2Œ=îbfËëÒ(ÚçÏX½ŠÈZê=Ó‘=8Båܙĺզ«=M=ä$sÄ^•vv–U}üBRhq+ïû~‡=ø¾y—üê€É‰ì2Vçñðj¿­D Ò>rÉ6†=¨gŽVôüH[om›è©x½Éšæ1ÚƒZoâp‚Rò%c¿{ÉÏÁëö~àU=pøB2#ÐZŸÃÍ 9f·Û¬?xѼ~µ³ÜŽõ&†€Éä1ûâms«·FÁc ~í¼ýlĸž•–KS¼ãE¡Í]í»rsÜÙL^ýœvŸâï»HvÔOàWCLS7ÞV•íÊ‘ñVóñÖÆh÷ݬ¥Õ¾¼Àj¡å±–7²‚u-X¾·“5‰×ózÞì¡¢_¶Y=Œu»­J•í¼×Ì/rÆeÅÒb 0Ö/ÆÒ}ýXßXö‰¼y!ò¡ÕÛ‚ÝæEY"R‹•¦ñCëÇèIº-Ð[‰fæ.´òàÕ+æ6ô°ˆÌBW7Âì츻ý9·6PB¬—w±3~_<^t<ìÁ`æ‹ÜbàÕzglE¬¤‡ÝgÁ#À¤Ê@ÉÒZ­龜þÖCÏ›`ì[c-7£VvàFœŠX˜éÅæ‘ êJˆz.÷¯€_õ1|Q¿ÑîÚbN·»`%vöšíôcä%÷[bµFÒjS=ú:ðJ#»;ãÔys«Q¿ªu¡Êü5°&Qëk"÷B)Þ…µ'洞µ¡5VuÏ®1µìÔèztÆ›Å~ŠoM}ºãfqô›èH"QÓ@–Pi/ ïè‰=âE ¼á6z»ÔçÝ»¨q/ƒ·–…é¿ÊŠÇvªåT†ñq^”ÇÜ™Dò´Z&'ŽYTñÊ¥ÂK£KC{2^ȧe!SãzZi7•­$zí³èÕú¯ÚEc$4ã2#^‹P«mÀÒÚ¼],Ì¢ä{…™5”F¼rÄ«âUÀ·'Rå!Ê‘¢ñ›„\œÄ7ƒ©&‘óu¢ç[óžZ›¯ÀIúðS €W °—•‘}„߬7Ù¢ã´Ç|¼ºÄV †Õ›çH2Æ|¦¼*SibÕ¯F—4^ôй#ªÚ㩳qk­5sÓ`%´ƒ¹™½ß¶½ì$ÆVåHM9Š=¤UÇ~”¯ÁK>U—~ÚTŒÜk­ŽÚ[¦ðª$ï.‡É»¶b¤•¨r.vÌ/°R±Ê›ò¬ï…U¤ÙÃàZOâíU`Ûj½ åW5Mù2¸`×K1¬ºåægœÌ;Xél¨¬³س¢*O¯À"œÁxÑž¬E3Ìl!×ê ~õxŽê™D°§ KŠh TìÜéß©ˆß-aBUúÌt·À¯J0žAïRÿª•¤ÂüÂÎc|ûõ¶±ÜN{ðEjÿ©=¨Ïw`O6f•…aæsèÕx2Ø8€™¸ß¡ýmYp=ÚÙ‘Ú ±ŽË˜µÑÁ·6¨ŽÝ˜í¾wÜ wüên7Ù‰½Ô±ËdnìW.VÅ7ƒ=ø“½9yËÖc˜aÞyÒ™j›èÕ¼uaã*ï¯*£7ØÃð÷¯¢Ýó€Õ%`Nt_kiÖ÷ϸ-þe7ÑT—Ÿ|ÿƒÖï4õe¥ŸÇøöûå1¹Õ­smüZ÷€©?Ä|繌ú*‡3qötÖçtì€÷/Åèôc”ýp Ç6àU'Þ.ˆçöÆ8ì¥>CMP½¤Ï¥^_{ŒÓ*÷6¾SÿU%óMä¬ûÅÍ^åõJFOÛÆôÌtÅž8ÿëýÖ}×!TÓNGj3Û ‰÷qå0݈µ´rÎqը܌µ= x¥úÃÌR?Ü·¥ýsÂL¾Ç:_E1žõÀ¯riÛ©†Wçx|{>uËs™W›ƒqŸJÏw%šÇš°RVé*:T1a½æñŠƒIÜùšW”O„)K¬RÔÌe&uùRª˜åp¿+¶„UãÓ©PSÌ„µ-RèWÕ­qå… ú 1g0‹œ±0óqZ0 ‘UwŠÑöL Ý—ç{Zå¨/£m#žfNtѸÊj k£·È ~uç­·Fiµ1_š éFV6vDoà’²·+ø ½T~ëû°¼ÁÏŽ4#D• ÔŽ­jfàç3‰WƒÌœƒw;Rÿj6n¬èÏLööIæ˜ÜÄù]nÚÛÿ?'ß¶3¬ÚàFªÉsv*smþ•oÁÍ®Š"ÿ“¦lä>“dõ®äÓ2r·­@›±·¼i+Dz‹Æ™Ý†ø“Fœ%Ú`u<Š3w¿&Pê(X¢z‚öaõU”¯Ð® f€|ÌüA­ˆ´ÎÄdt°„*»-ä”}ØåÔ˜—°wñ™S´*,ö†êÉô4ï`oÞ„§×‚ ;ÿÆdíЭX¹Ô‡*‡^V "r-ô£“=!g¨Œ53ú¸û9xÞ]Å<ô–d_Äÿ ~5ÜÔp]l/Y¹ð&³zRQ­%ÐGã¹;`7Þ ä~ »¶ÖÔd¼«?륾ˆýÛœ}›ÐçÖæ$ZÜ »±Œ¹=z˜ùΪHXÌ]pU]/÷¢9'O¹‘þ6¨ao—-±×\v¬"ìÁ‡ÍöBä@äÖóºÃ¼{¿v¨ÖœÆ¥êo‚þtÀJo ×莼h†Ñ?‡ÑZBÿU»`õ¯†ßêûýn“ÅM^}íûx{6Z¹Ãó7¯”n¡ëâ·¸ˆ­`&ÉFw-8ˆTÈPAÉ-ªÇÉz³Ú¸¤ÚU½™OÒ§ÔNÖw¾ gÓ\³3ø!¨+v€ÙäÏ»˜¯í7cNó|Ž_éßs]ñ¹åî- XS¿L‘>òœûÃÍ´ ¾É>o›­ðÞ 'óêõåSë¢ðJ#³4‡r0µ¾‹c*£]ÝYѳ­j‰Öé^ØlÚÚ[¢chçŒ1³üh؃šç÷fþJt™PÓç[¨¯^Oo¯&‘‡;–˜¢6ZscÍ“L¨ÿ’DɤVT˜+SœÏ*FÌ)ƯÃÚô%ÑÎ’¼Á uÝËQšÔY|ºb_ bpX/59>5¬R˜ÎßT ˜Ì·&óï 1³:Ÿw……i½þWÏ« ÕH4ú^ýí9Œ÷JˆW Kfd˜gÔX1æ>;Æ3$ò/¢l}Yi̯Ÿ„ý“À“¡;v^bšV΂§vèlsÊtŒÇ‹~Šñ_¼R¿Û^ó)xÔ›¼AèkI«ë*º×7cä,8’öb°¹M.¹[a‡_…-“K.y±Oçë0kSMãgך¦VëžhïØïd°½…ùƒQ©'ÏÛÅŒ£øK.ã9/ˆz™ ‘Ã&jÕ ~üê[†9Î}ä¢Íô§mxÖÑŸÀß<Ö©yÅ£®Ú-±ÇG{ p6ÞgjÈ'ÌO#¯¯6¡Õ±›³¤z JÝýÀ¯¶ÛsvŸhÝ®Wñ½-/‡‘ƒU<xUhÔ¿yçi%œ°™xïoÀ<½¹Z‡ï*³ÕâT…­ ¢·°íI9¥Y@fTô)÷¿àðª«é ~•í?² aEvvCm™郶½ŒñïŠhÅŒ{¨(ª–O? ðÓ8{Z²ÞÄ&`GìÒ Ì4T/ñz£ÜÏ¡—Íñ}9³0º?håfªö›âÞs ®ñj“;èßõgXð騷®N¬Œo.{ÍÿìË‘ ‘çéoŸnž’e2ëU=p7Q›áߨQµ1N)»›#Óž¾ƒNýszg65-ƒ>îÛ`e ^ üÓn°c‰)/ÿóü·~½ßfªÉ?Õßä:û½² öàm®¥ßèþ–J°7ð~pUEJÈã¢v:NGjŒ¶ä­ªÄwåO{âç›Á¯ô&§¶Yd¶¿y¢ñé[aòõüj`WUŸêWøœFÿÏsoø°ga¿Žœpß¹96‡šØéÑmCêÛu›~œ5CÊÂBhŒÕœñ¢#Éñ&0ò Y_®ù:ÌÇA~µÌô´ ¨×—ާ€Ç‚_•Æ×§Í‚è§ÑiŒuº‘µÄ"µÖúà)9´¹ŠcŽ'1/Eن敉sžzç3âÞ÷”8Δc V¨å®ö`§0µŽ³È|ÒxK˜Ov¦‘ %â9ÑaQE²¢Ôx-ç0æ ›QZ¡W?ê:i´C½¾´¸Î•ÖÍÉ ç©$o,3È“Ê1×4ô®g±mEÈmÒÙ®4úÛ“YC#z}ÉôªÅˆWaTi"ñ¤4VÙ 0Íd"uwÌGsÆ\51ß•zÇ–`ov‘ËìÖÞbŠ3çå>óœÂÏ3»Þ=š_WÀÊ:$ã8ZÀµNÊ4âãu@¾ŸÍmdz›ò9ãÒW­XgZ{}»ie?‘Yô_=f¿—ëíL«<5CZÈ+öÑQþïƒÖ_†ÏÏÀ›4г"Ьã’ñæá÷0þj…é`oŽÞÀ;»ÍX rS¢Ñ)³(úQTµIsôn„z2ê“Q¶Ú‘ F‰V¤-Âh¬"Ìð ý>©Ä£DVyÎ RþVžñœaÕl(Å|ÀdÆ*d3Â4̬Ælžlúã‹ÆõgŠbgT¢L}d¡–rÙYv<!™9u™dZÉl­bš'þT$vÅèçŸY+·vSSQ=‡ñ é´Ó‰W‰Ì"W=™ýía%Ö€W$ÎöŠSocU<»±oËÃüÁ±"úOÎé-ßYÏb^™Dú±÷›Ÿ`ë}È÷3ÝD­"å`eÍXü¼+²§Y~5˜v±Þ }…YU͉öxçwØCª·ðF­1v™ŽÕRÓÒ^9ìýöðêV«mË“zpŒ‘…°6îÄ.?»¶Ý°¡šÈ§ô£ö—gƒ—ì)ŠQ^oRdp0×h½ò¦²Ñº”Ä|ž1ç1.[雇µ4©?ïÄÜ“‘¼7N’¡àW‰à÷­ð›õØ)¥ðUE¬ö…ÀÈê¬Tð‰ih·Èszsf†EŸpŸGÝeŒËuR'ÿŸö6¬÷n„#›"ƒñÔ´°žWìF­Úø7_Ÿ&ÛÒ›¤ñ}OôïΖX÷­[šÑö",¤¦XÅUË4èànƒ=¸Ù$¹ï]5×Õ½a.‚Á\ðY±W‚»P>E½Ö,‹|yÎÖÂÜhöË|¹žõ«ãŒêÏÚYÓÑ?=E+Sgzz¤ ¸wiµ$ŒÖIœzm±êš7¸/ƒUÁd|ßxµÕ¿íÀ´äßÁåÏø{MQÙåûán(ìÁír³›ízù;Ý_RÖÌ—{Ü•à1œ>eÁ‹ËaœkuZÕk¢ÑJ]j7ꀟ)î{´:Þ¶+¸T­¹Å~UÓ«^ÑçùUàWm€ ëÜEð«^³¯þŒq?ºÙV=?ËM4zžx¥üj€y„9 e0Ê5ð–Vx[ãগr迪Ç{«fµ¤þ•ÖKm`—E“}Œ0ía¶¦_û„Yý):Šû¥’i$˘—÷·gÒgU Ïɨ½Ëëœ «I¨âh^ƒÞä’Ie0‚5ÌÌæïSé³J¦•˜Êx†BäVɬ?˜Ê;†0ÛP÷áhœ¡Ú;¥#J™ÏL®ô%rNÄž¾N¾"Â]Ƽ.’)‡Ü ~uX.«{™ÎÒ‰þÆDì¨ñàêc‰ÂÃÍRyYÆ‘ß %^ÍãYÐLê[ì ÿ“Xs­šŠ{‹`¾$ó9VÛíéMýöDð²Jò¬]+ZÅú7‰ÈæQ¾}Ú¤Ev¯Ô“÷¾éyÔ=9ºÊg¶ Ò™¾¬ExöWæÆ3´3:޳·ã°wƒÛ?ƒTedÅ«o€œ¥L_؃ìâ7y Èp؃ŠD­e±}ÜÞÃ8Ò³Àóeæa¬šFX‘Zû\õúÔÚøH¦•»Ú²>öæwìÙvTþJŸNM3v xµD¾^•Õõµå1“y3r™úWZkæ”ÌÃyT–¾›±h¡ÆÌª’D-úÛ¯B/56fZº-{™wš¦C06ïúàFÌ3ÐÝé_vóMùË·ô?ûMþ~؆ëü?Ì]ç·ËVYànuüÝÎXÅ«G€ç{ñ$Åä\¬½ñècð°õÔ_6ÿmÇûøžÀ»¨g3ã6Û<\ D3Îî>¾‘ßô©ä³ü:É©úûj÷•/íëûÛ1Š¿Gžu¿¹ ¶„Öæ¿z–pæ¬#fxÞW£x'VE[|®&öÓ(ôº?Ö™Vƪ@žÙžžêøûŽÀ+=÷W™6vetïá&˜Q~<ìÁ’Ø…Ï™MÑh0ŽU"pŽÉjÆ‹ªþUGZ ꟩ rp<Ö*›ñ8¹q-á"q¶Tâÿ•^’‰EÅè ýW¥·Y˜XR‰R¥M ½ðyñšÎaÌ{±8ïj‰s þ·P?!Ù¤Äs¢‹›P“Y¹\yÞ&†‘I¼õ,Ì:‡zç™À¼æâŒWRæT•yaéD&ÅÖ¼¸æU½c©¼L¤¦W ïSX…0¬GŸÀ>¦Ä+ÖÁ*_nBUÕhK&Ö–_¹8^-à 0€ö`2~ÚkÂ3ÎüqsMž’øÆþ`4ݱoÃX‹™òˆÜH&Û¶á^™I<ï5ý9X‰úšjÃýBóMñéƒÌ1™Fì]mÚÙ‹r ¹ß.ëíXÖwN2iRKž¶‹‰?ßJTÞ5ß‹âÛ9“¹x¥ ô5Ó>r¯Í–dúÛ?°U"ÝDï gb5}¡ùÛh¹ê!ïÇZ€=Ü'åAàU3|u§_S¹hT£o°¼ {p‡èÐR“%ÓƒùÔÒ%;í£öšè,ŸL;+™èƒSp0ãE;¡'¯aoŽÇÈOƒ%yƒùÕüfvðŽn»Ìz^jqÞŠ_-h€S¡ƒ}@NP[~\ô)÷W𬻨º>’è‹øoíB´´•ëdk‚_õÃŒŸRÜÄÒšÔ­Ì6¬ûÔS¯Ê“@MU·šBÕ§^س¿a<»°*ÏzVj ýW%±×VF}Ü.àÕZê·7u­Ý+悬wƒýêØ‹A3»JÖÅþtxU]1ßÙ"G"g­ÚÎÍqÙ$Ê!»-´Î_3œy«±‡Õß¾{³«ÝÉû¹ÑnU,aܧÁVð«Û¨µÃ¿én‚=ø©ïâÿç_öwšÀ«ñþz×Ûï„=¸ÔÍrýý:ê3Ì—}îë`椢rUÙuÕˆõ¼êÀ¾ê€Ö4.µc…Ø*¬!³üªF§ÞvwððJàÿ©û×UñšÛXÔõ·£ ªz±Ö½ï+ùŠ~1Æö÷Èi؃sm>Vó “=ekÓ'­•q¦G½0¹z§ú¢ªUs0…^ž<¬ŠÚø¹î¨89ºÄïÍW¯ÆGÇÆã¯Æø)¾õž2£IÁXúºÁÌdã¯R1Ûýðüâô«Ãê™À[@e!íè¿Ê%J«¢§˜P£!ŒåÔzƒyÜI¬Ø“C¿V¾ªN¤QK±ïKÐ&Ë¥¶gr•lrò0÷9¬Ÿ÷‰£`è=*¿L{°ˆ?ÄœPS4“w“)Äí&ŒÍ F_+`¤AsɵÎ`2Ú¥=wüºÓÇŠ1JL«ï”ZMÑœ öW«Ö5¥¬­ùÞäH¶®yœã3¶ú2Õ—‰WO˜å¤|AL ~¥*bIŒ¿šƒµ4„X×ËL¦Í%»ì€'ýبù}eÀÜbtIº9Êè™äTkL_ûø•¾k—͵£í\æ&IÙÌšËiæOù;ñ*kåœ6%#{€Wz;zÙÔ‡=X‚>öÞrÒV%^¥PŸás C2þß\ñeõgc×1û`¢x?øQ ù˜uä‡Ë›ÁE»S´áSX·QÈ{l¨ ÖæëÀ¹%8i+ã7£ŒV2[K4ê¢ÙuX½ª3#¿2²ªbkh%ªDU0­W žÚL7{@Na­ô1c£Á=žqW°³{SÿJñê:SÊM·åê!?ƒgiÄn+F¸o¦V^G°À©@Üc°©ãÉÓÀ{¡‡ÕðöM@·0þjÆÿ¨¹kQÞvEÝÜú¸òWÏõ‚=xBžqßø´Ø›A{›øJ±²¾Ž67ñϲ^êͦ²|ë»ûïý3~‡)+«üd?Âuõ»¨/:×õð‹Ýß°GÊ^÷mðžW Èœ%Ê<*DL§±juÆ[Za$›c 6ÃÏׯzÃ~¬…ÏÜüT‘n˜ûm°pIU£s}º_ëßwZs‹{Éçøº~fIýí߸ÕVcöš*Ñ Œ­Ž±ˆ‘ÖURÀ\¾¬ç•ƺjª–Å[· ÌýÓX£šX±/Ô|ìÁ™Ñaä7šëüß·ϘÍQ ô~Põó*Ëz*.$ã }±êŠ“aÕ¶¢dTÅóW†•"rèÓþ¯ÊL:ý1éŒX(Fžò+­9]*®àY@T† +ùT$bªKQ-‹I½Ë&¬!VÑÊŒß'£™C¯~&½Mi|g‚ «¦Ï¾´ ÕŒsïPŒÏ¨Èz^ÅØ÷¶#´sˆÞÉ´5šµ(Y‹ò«À„õq*—ù>™¬?8³œÆ©–RkÚ£­Í7`æÝÈEoÅ *׈‡ª-¾Øõí6_ÀÖ{çÈìrUöW+³À,‘}ÌÁIר"ð«‰|f¬œ‹¬“IÍ0×jÁ*hÌØà0†^ö²L&v°ÿÈæ;k½‰zrÔ®EóŸåKàÞ“¢ï}ÃäGv›t«ó‚iÙj3D­êþò’­iϻ›ðÞoÀ¯Š2"è8vm_ ‰f`>†=~?+ƒ3în¬”°ã*b_|{pë;ßn’e[°ƒ™=ä~{Ⱦ¼jÆð,Îí‡p(VõÁŠ\‰'ÖÅ~Ѽ„ï ð$‘~èã7@–Œ¿ƒu®Ñ›yÊ-ðÿFØç_™¶vëö3c¢‡Üà•æhö’Â>Ù_µ· k¸r¶³l‹hõ—Á ›_©žæfœ50®3Áa¥¿½5Þ1¨Ôˆü+×ס¦F;ìæÇЖ:déË¢G‚îΠ.%ŽíJ»nîœ9+›ÜRŸ;{p¹ÌŽýájÅÊû*²Ãü¼z$ò¬"`8.c±6´vu´o4«GŽÅ\kî *~ÞoîÅ[Úâ«-œõósÍmÌ1m€W×€Wa¥WöÇÜFÊÍ4yò•oãògüV“¼ºÙOq-ü}²Qæº;\ð+õ_Muî³à æãL™¹ç ê_Ý„÷D?Ûsá}eW–?_‡–¨þUMœ±ÛïòEYæ#þ-çaùmÁˆhüÕrÿ1ë®roù’¾¦Ÿ‰Qü$ò"¬ä¥V}«MvôE[‹Ê ½°Žò6¥#Þݳ’ Ë¢-øÕ æš”Ãjç…¹iª5škþÓö`îð‘fê;‘­œ0wDßN W½¢©)+âüª«´+ñDoáúcýdšPÏJQ3vUz´“ã7v¡Ÿ)…¾£âT¶ c±ŠÒ¤ŸUÓdzâÓXݹ}ûÙŒ¿Ê¢m—­*DÛDÆ:„·i¬OQ„mH¥«2{ÖûJ3¡&C.ý`ÉüºÙ_ŽCyŒBeâU¨ _‘7)¼?L‰çà$2ª-÷ƒ‰q%™ðçE–HÿÞ0¬¸;Ø6bèÆº´þ{ÅT¤þ•ÇxÖ !JdýÁù&E÷›‹r•¼Kã¬FH;ò«´åV9L ödÌç\Uaï5þêú¯RY3ôG¬~;†ýÜÖLãi»Å^’Ùô·ïµÆN°·³Ö|*ìÁƒv)ùÒ/rÅ|kÞ`½Ôó¦bä>0ç}Æ3äŠâù 9o«ƒ_©7p:ó€TµVõsèMwô"«íÖÞætìÁÞo›·¬Þ˜¯.ÛÛ©Ïp›©Êúƒ×£'-ä-»×>Ž×üê0Æáü}ô½óU_´Zt;¦<ž…Mü›ùܧ%k0Œ`¼¨FˆÏ!ž©=¾j‚_åb]>O=™ËêU”B¾˜ÿx5ÂÔu—¤‘¬^U5¯©Z1*²5ÕZÂúƒ3€W‡Ð³ødEìÓ€ýñŽw0ʽߊ÷t0cO4^taôhÐ xU»1˽㪹Þîusˆ )öøÕ\™;äc%|}Ùcþ¶ïGž‹`=ú¹æ´Ì¶ÒèòðO3ü{³QÿZCõã-[±4Jv-óTÎ2[ï‡%¯À‡Ñ«ãŸt[€WS±Ò~òüÿõtàU[wϹ÷Ì\ ¤H !”¤WéH—* ý (J“"HQªA@Š *Ï ¢ˆJ—&Pð©(EPôYß³üþk¯s|_>åææÞsæLY³öž½×þ͆šEnº›~µÍ<Ìø«Žn©ý»Ä$´î’ÿðªð*É<‰yR‡ òÍyNw=žq6Út#~¯‚U#^óqnC¿Í•§üÿøYF¥JÝ[öw[×­Êd¸$Wâ>²í€ Kí{®ªkêT+ìZäuûƒçe¡?—Kð«dÝÁŒžÃõrðz+z¶?u3S¨ÑȨù|Ô1l#Aý©!hÕP®‘û¤±7-:ˆ|i˜Œp`ª5´[6F¿‹ÞJD¨#uWYDB\½[¨gWµ2ééÖú΃¨šLΓÅ5ŸBlI G*Ï8¨ ú´Sù‰|" ê|Ö¢g>¹ÉÊçrxº˜ƒÓ«—á7TÅ,!Ì–I`$j€ƒ©<Ë•@9'ŒÊ jB'†¥öp࿪ÄÊ)´ëT{°~¨ÏB®–Åó¿À–Ú}ùd[vŸ£Ï>¨K˜.W‘®Š~˜¼J!FvÂX·¢¢_k¹ >ør¶™rDš™kÄ«Ï0þˤ"±b¯\5¥æSâÒ(؃7²æ©béBsšõq”wM6—M€E7a¦}™“L-Šeò3ÖžöÆKÛæTËPënÞgæ.Úû¥Þe3Ð[à)§™šæ€7‹øó§ùR¾‘—¢û)©Ù$ÆÓÞ:#­#ÏxFw„~æŒW-Ò…¤š‡ú=þª*6­äøwOÑÌø–X¿/wZ Ÿž‚Sl¾¡\öàJØ›MÀ%“ÌP)ðh ´4¼MÞZ£¾¬×0k‚_©‚›žŽ$^5ÆüúXÎ’­€Þ´³€1±^ûõŒ¿º…z ó™ôô›×0ú˘è~û£¿Ï~ŽÞü*‡ù8C%Çöº™’È`ŒøQü­ú® ®¤q™Ã¨8HµÏr ýíS=ðS»Ã ¨ÞµϬZÐÛð´z s_ô¤ß×–øõ€dq`Év°ý@^7ÏÚOÜe÷‰_ìÝ {0ßå3^ôIùË;ù"ò¼§µ­×Ë3LEÑ©>zf8úc4fÉM¬7¡•UŸ¡öàÃÔ(~{Ä,ü-Mzùcíæ;Ï“Úî»ÚýËÎÄžð£ëå¾sëÜ:°úÅîw»½Ám2šù°;¹6âi\ÜZ{ÞWÊ×ÑN1­<ýíÁ“åò4ü>{2³NšÓ#ßVÎK–Dlœ#/Jó9mÞÓèý{€Wjƒî’³f9϶ À*ïŽÑSL+”!æˆÅ8¯À«CfûJÕÂÝR²‘þ+íãçÉÆÓ¶]ÿ<ø˜¢òïUÆ3(#N7ùÀ«;˜ƒõþïî%^—Š‘ "žúáOIçÈcžjË—‡=õW3Ò‹u¨g`tÏÉ%¼Ûxu¡ž±U½$~³»ì—¤¼MëÝö6_À,1Õ1÷çáÎËüûp…AÒØ,ò‡õV€>zè0«¡@zQ•uýí-qåÓà@“è×,g†‰g"°Œ[cõ”€‡Ò›TˆÕS„Ñn€w¿^í6ocõ•ÉàWúo0§Ÿ‰ÂüÕ›‡•ÙÞö÷ª›­‘®øæQÖ­Zþj‘X…û¶¡>Ã-ò´ìd]UÆ3ôÂH6’aÅvbÖâJæÎàù *¼-Šñ»ØýY$Yö›C}Ñ7a¹±wýÞl3/vÄVˆUquÌÓR&r6òTä õE̦æzfòÝ‚^Š^¾™š^šU¸÷Ëaoo`fè1ô³ZjiÒÕd/ø›ü³ºgíwÒŽ§øÙµu¿º}À«¦ÄMu·ØnYo&Ûé¶‹[o1¹2Ѭ&¿š/Z+Ù<~ÕÏ2ÿŠ>V­ÉÙèÁ´ðÛ¢Öa„ú e °S>æ_ó M7Ue¥^_÷°ª6ºd·öae«öÞmàá¹®DŽÚíýžÆ‚/‘”¨**võ>ñ x¶&TÆÕúÎã1–ãY“.Ðooê_ÕA¯t‘ä= ¥üêV¢ÎXð«Á®-­´—d]ô¯èú³‹À5—;‚Úô0Ÿ2ÉB*2ß¹b¨«Ðü ÈŸI¥Ç:™¸‘ÎXƒ8®ì\ú¨ÿæ]•©6•@~RLT¨‘­•iÛU"[Jä÷+`–H Ã\·A·ÆÓ=ÔÊêìÂÞ¶‹ +Oƒ‰¨²êrw3úg¼¬Gÿ¤˜þ ÌÏîÒÞì…=ø¸©Œ÷_“°Ÿ¢®‚r¯Qø~%fi¦Žª©5cFƒ_EÍj*l=LÍxÕ-D‹´ò[Küœ•Þs”‘=ã£/Øû¯Ù‹Xy½uÎD怹Ա‹¼žfmDò^E;T;¬ ¾Û­KôNàÖN<É C.ìÁmh‘êɼ«šX€Æºíçù V@,‰¾ä·g<Ã:I·l®`ÏÀ,¿²±“~!úzøUåX%×Ül–Ÿ¼‘‘#^K`Ã4µo°ªBU"GÆ+ò AUÝ·ÿµ6lc k|þ4úy.ð*IZøƒíUÿ´jT¸v; {°ðª«ûÞs«©/:Ó¶}Üf™kÙön‘ýÃÔ–éf°îyu<î1šÖà Ø Zc•7elØ8YƒqÕª˜ZAm›ÿ•Ÿ‡=µ“lv§ì_¶Ž+Á‘‡^žã>¦¾èýöCpÚvnfÆ‘7íwv±—ƒç¹_’£¯{±ö´~äpôt¬ÉÀþbæX«3‚\“‰ ¹ôžµ¥‡X‘´Z¨kd™4ôæEÇqÍŽ—›]×½T}³’ú ‰ÌùkdV°‚DîÒ—_–‘·b…¤“'¥3µs÷2BTJ%6” #Ê2ž!ŸvY"c²YÙBãÞRY!…¾&­^—͸/µ+„ªx©è¿âÐ+•HK§¬u(ª„ƒÊBµ5$¨w¡<)‹gA¼hPo"ð·ç1F"¨zšju•¡%šÍï[²¤JŒ!óÃzåxŸ<µñJcc'¡ïJï•ÈõÖ’×iK¥*uAËbfíÂúù˜¨z;÷làUã¾7À gúÉ`píŸkÊ ³ö bT ¼ºöïP ãU j¡6ÂZû“£Ql`æÁ,öÍéï} ûQ‘}‡÷—¼Ò,S`^óî¦òŸæ¹,[ˆEg¥~ä‰ó4á¤4£>ƒ2ÅÞæ-¯~¤7µ°fa†&y&ܳí0æõ`UræìÅS´À:Û¾×\Qã¥û¯>ð4™µ{ÐÊÞþ2ÌŽ`êÛ¼íÞKFýꯂ¥­ÄÎXê=ч+ñM=K[ÞÃJ©†žL^ý*ÿÅ>Ü™PƒÑ3ªFU€Ý^íåZŸÃþÝmN`wë'£a¾jÏ©ÇÃ$b%}ï-DŸ¶#½þfnDò^e^Æ·«bÓÌáFX‘wa½<+ûXÕJõdžâÎ\[>e|{u|z%p® ž÷ÑP_ô¾è ~7ÖóZ/IÀ«ÛÓž”7Ì<»Ö]r‡ýë¼yæÅ˜¸Ö±Êî:ó˜ü挼Ý@£0‚ÛÞe´’¢êõÃj‡ÌÅ~Tõ&šã.QA¤zµ-Vñ1yƒH’)-ýqö[©?}PäöÙUîu{·š\KÜ÷5ð«Zf¥¼êé5Ì4{'˜Ö’PŸa½½èo*×ÐL SŠyRÄó­7ÑýÑ{k[MÁÓ«6Æí@Põ_]ôuî&O2¾]ýíè—é–»Om;Œ×ÀꪮØÍG»ÿyÝþÛ.ñrè¿J޾ ¼ÊÁÝz¡§K1_ª£wŸÅ=û²B[ ÞUmÙ;yâ¥úíZ}[×¾æ;·Ã¦ÐÕÉ›CßômÒÏtm˜µüЬ^ŽÅ“›5^eqj=úN\ïêƒÒ=139¬&M‹(…¾ò8®èT *Ã+ÒT£É£¥(%gòTN߯IÔªHþ“Oÿ•"Qã2iV^2¿'žʾhyF=$†~°DÚ}éa†tàõ*ÖÄQ¾§ïTf«ÒÉ“r±²š°õ1¢[EÚƒ‰a´k<£C“å ±îùY࿲ôŽUYÍ{4Æ5•Ý0çš0H+W£^_yÌ´}Ò×\ ¿ëS¬½ÅR™ñ ÏÈ»°?'®+.õƒÐjÂúƒƒ‰Éý±+>kneO·º„ÝV÷€ö˜ÉW±FÕÞËšŸSè±Û(-À¯¦ð|öïM3Λá©×ð7© ~u·Ñç‰x­þÏ ßg=/˘Ҥkäe¯&5¯ºšÏ½:‘NÔFž œüB>Æ7ã¾a›ÜÀº -]ûñ_=ôåV0Fææ2ïøçWUÑ;ópßYþ¬ƒþÒÅüÓ{Â{Ú¨ßfÃNîcðcX+GÕÙÞ‚Í6ŒqÄeÌPðÂ?±¶Ô×ý õÛ;²VÁTÚm0›¿‘®¸Ó«è“~2=ºÇþ䟠~û?L¼Kr¼û€Õl ¯Ø¬ˆ ÄÊxY:ñ„V½WÍÁô,L+Çê9ìÐø§XQª@QO>„-s=³`$öK`>Mð‰lyö`G»ÆWµß\û­-°íÇÀ«ãv¤[{ůëÍ5+cçlðªÀ”ʽã‘mô·×Â33±òkán pÏÛ©¶3««wÑœ£MèMͦTÕú¦À²“ø¹—z"íü¡àH«üÛ°Ôr»ìCMª›Ÿ\wÑ€VˬrwºQŒgX¼šmû¯þ0U€Wì/ãEI’y <¼6Æñê1k^’žÄub¾s.ÐQó(gv¥Ö|Ü¿ê'˜Nô·Ÿµ8õЦšËrKÝV³yVÛ÷\káT“õr丽h—{š±²x¥ÌRã–:¯´¾suô¾Æ_ú¢ÃÑ/݉KÊYjc½wâ:l@ÈÑ´Ë–H+oAt ã&ÊÖ£O¥_åÑè×ÑaT0­oÖS@÷}ÐH£wªØÛ®æê!÷ ×vPm¾|˜I˜@ŒT†T™±¡ÄŠ D¯úƳÈr²è'Ro{^XÏB9wFŸ&èh±ÖKx ˜D5‰d 4«þæWi!²ec4â!—\(F}Ñô0—PÇ£9YR92ÄLò±²ŒuW»ÐgÝ®|F¯FY'8´ü7•WO$þõÂl_Éø¬tô~Ì2…h&g$ü*ÐÝÎññù_˜ ¥¬ tÎ›Ãæ3òÃþr—éŒ5¢¸¶áN|7™86Ålþ(K êW Ÿ>yÌé+ŒMÀÚoʧíÃ÷>23È!·{§Ìpoª§ý˜k*›ç¼©FãÑŒ÷ÚqÖ(3}[D63Z7‘S^}£¼ôfs ö`{£¾Íyëó`X™Ô@~÷kþQ‘ñW;åEF²íRe;`²î×CÍ9ÿ]oQ…¬µg†ûs1‡`Uð6{¥FùÊe0†™Àˆ|ÌS­Ä>‘õ5žám Â8¬ÜzbÍ(ù?+-YG#´òX3q½ZŒ<ÿ\zyOšc˜ 7À|üj¿½¤1¦¼Kqßx3±+Û9^'3+r3¾s˜qÜKÐcª¸[B>Ñ×–º›1yÀR­bÏç[ bñtÍøìÛ0kr0GÖFû]¨ß¾öà×¶±ík¿@Ÿ¾gOºª±ý~±7Ç,5pi±jàW›åßÞ±ÈþÈ“žz¬É>Xj½‡Zkq,úcú§Ïk£¶°ÞDkÜQ9ÌLy]szñ„¹ÒÜ¿Ë^ö7øãÀ›ºgß>Gê˜_\[÷óqjšen b{»ÇÌ3•þ«ûÀ¯È­flÉÁbš¡/“Á¯¦«¨-¦šÓ×—šQ¿=í¹»ßÀ¤ ô¹mô¯øI†ñéî–AUp¹þ’í*üd»àûKí°;Ífø9r”õ&4ÇyTоGý«|­š ÔhÑjèÝ&Ô3©‡ù9–•œGó,« æÖŠP¯VxÓ¼e*àºÞü0^t„Œq#\wzÀ:¿D/PëyUáêÔè‰Îôï(çÑúŽè½tÆøV Ë Õg‚ó «9ž¶`¥0S¦wá@³8—Ñøé´q²¸kæJ /•FQh—ž”¥GÖF ‡¾ót¾NfVt ¾N OȯRynøÛs­•I–”‰k6bäecJ³xv©OY…v_`Ty_B¨ÕT¢wŒ²Ob´–æçÔCÞ®·éïÒ8ÊäWÍÁ¤RL/ž ÌÖŠÈæ¯~ó¤Ñßþ”|Š=î#¶¿7ùÕ8r¤b̬}¬ç§±½æ YB>ܳé\­"Ÿé~¬ùôÆíanI }½H®óÞ6ÓyÞð¨wÚŒ^)þÿt?lEößÍ÷@‹<|S2#;$ÅÓ}ç éù——c{5§0ÒÇè¹ç]àtçäKÜW£ _^õÁ®W³m;ðjæV>æÞZin.3«p9 ¼Új´.÷½â›6àWMÁy:˜EÞzoQ?ók¸ó"ÙŒyÐ{k_\y æ^ê_B?ÔÀ«2æf`òX»º ¯Áî[ˆ«âgõú®Ç^’Þ–P_t@/úþ2À”ø öà­Òüª¿™‚Y¤úWýSmXgâaÎ}ÑWý¶v¡_Û-xUdo°gäc³Æ>åj’_-5{b ®y¬È50[åwïHäËÈFOkx•¯™®ØÿõŒz$ž¶=Väl*B´ ®×c°2µgZóÙ§£¯^Çøªè:ºýüjõdÙÍîm;;Á7®“ûÔuÏJ%³Âs7Ûnîs?øÕT¼Znÿ¬ön³ÅžõÇjà~Ùàð¨Ó:¨p+ëœif’ÖKmŠ÷UÅe5õ¯&3þJãÛÓŒê0<æ>±ÖÕp«4b µÊ]´ZÙ|¹=¶UÏ-µ~ˆ±¿ØÉÔC^*qÑ7ÏP+dcB4.à!ܧ;µƒµžW<áDZCUÑÐ™ó¹Ž ÅH §å³TÚ_ ¦WèàÕhמ¾ž}R½Æø«<êõ­fĺ®ä¾¬—šH.4WÊ&7¨ŒgÁ*õ"ç0v=¨‘LT*K›1™˜$I¡ C&m:­Z)ôrWfdE 4çó$¨¶¥üªÏâB;³O!S?dU–hU~>ߣŸÍ1ž,9Ë1žý¥’ãÅXÏ 19^9^#+ä~éô»'…}9Œµ!¿Š…ç†qŒ“/O«´ûÍ`G"­×ëvŒah&g¥†¹‰ç‰ €(ÝÌ×Ô²QßmE£±[å}³üJ{èFo4jRO'zÈ(ð® lÙ™ ›qyæYÜ™Ä^¼[·èCô~†¶Ê ¢ö*©â}h&Ó®ßèí3ý¼Yžö\“oöy÷­$ù¹$ŸÈE£ýô®dDJ¥œ§ûÊûÒ;²ÛË2Ê@Ç›¯½ë€W:/zQ¾Â+­ny \ª=fW=ŒÜ øÙÎUöøO+óãÆšÓþwÞã&‡º”j.Æé{Ü[ ¼*b¥¬÷qÝç9œø·ŽñWÍÁK½ÔSåÌhùü…ý_ëˆ-cT–z¿5â ˆñ Í€gõ¼šã¢50;¯þ¿Òú8ZÏ«¢{Ï› æÔØz½ÌªH\õU¬ÊŽ@ÊëéR¼ÒÊywàçYضS0+òÁgJÑEÆÓèOUži4U{P­š<}ÙfSÿ*Ùž³½lûŽ|eÙD·*vЯåÝcžˆ°…±Æ®¦yFŒF3Dz€P¥ò®yÀôD/4ŵLJÛa¥NŸÑÖÜyîÑ ½¼Ÿ™„VÆLhˆUÒÿÍFìŒoïávX­U3I Ìÿ¹v.;îv ¿&^rM‰YhØn-ðªÆtýÖ?F}X^Œo/ÀÓŒeÃ| æÃØîÄþ²@ñök¯†È÷‘Muµœª0Öpén£ûÖ¶Ó:ªöЫ£›±¹L½¾{=UZY%‰Ñ½^cž³ †åÿ×|6vñÆÔ3Q~¥ñªÓ0Ò™DB"Y<ϳzÒ¥Lh9ðjft4Ì8™æf¹6ŒHÚ¶ûcôNžò7’†f9ÏÐÓƒñD¹T½º¿e’›U»ÆøöžGf†ù2ia_2?“Nzõ‰sYÓFôD0‰‘QÉ´‹BË,“ÑAlBeztSéUJüß `<±%…g”‰ä‚•Cû.5Œû*+6{>cÔËRO&ƒüJO›âÎéô;ÅÑj®ÈÈÑ4fÚZ4hž DÃSA½^ œÆ;é{íE#aV†>°A`­øÌõäš”£>ƒVÁ:îqüLÏÅ×J<ë>ù½Û|Áö÷’®àÚØšQ2Ïœ1ãÉQ—É4³ßLcÛ 0ï€Kв¥˜M×0¦ŠÕ;ðo;êÉ”>tñ>0³ÙCÛ½JÞPo²§1fMC³Ã›o´·Î›ÁK>¡†ük’ù'ýíqòoi9~¥ã5לôjDúòó¬¥+̬}ïœd–}>æÃ.¬à}¬çµOUث춤ÿ£·ÙTÂ'f¾Õ׊æÃ¤¥yÓ+õž3U°öß”ãè·˜›+Ù³x­Ífà4'0?Uà/Ñ|ó¯‹V‘»5€öyT,ÖsÈ–hÍØ'͘-=ePôeû‡ÒªÆXOð«B÷oöžö´ém ƨ¼Ãº ˘›×öÎxê#ߎù€÷mpÝ[±“ôcúíh•žHva­¼öèuÕðÕ<¸EàWãì_¾ÊÛKv–íbß—˜·ÉvtÙ±÷üÆÞl³=vÑV޵‚=¸S~󾎼k»kp5w›‘xՙޝ3k0 õSUíâQÕh­ ¼:+yZ‘!7ø³íoþjÿŒ¿æ;?ìÞ³3¥ÈüîaCýÆ='™f“›{pŒÛf–™yv¾íîVÙ_À¯î4/دýxæüWÙî¶ÙÿÉo`T‡£ûÌf¹ºnöˆÆ®œ+qW˜?¸ÆþŒ>ïêæ`7ø)rÌþaçzš½ü T‹¾ã5$6Œ‚%º‡ú¢yÀ+®jM`>ÎJ c#8kÑ:Õ8­Ð££Ys÷JKob4д¼Cº®ÓÙý):><¥+6÷3B)…5t;sÊ)Ðk®l§fP% ´û‚Š£©d6©aN<ùVU~º &ŸS^SH?Y*ýZ:3‰péôv1繬×hÄ ‰ŒÈ&þ$2vAyFóX‡ Äœ2ôgU'ƒ‰…üJÄ¢4ªéÖj1=›˜– Aîcê6äñÉ£a¼h<ã¯[èõ)÷ÄX/• ¢tư¨2iXPq°õ ñ^¬énXËŠ“û]]Öd0^ôŠÙ n m"ñéQ¼Gc`Ô!3Ž8,þ]ØwÚ?+`~!K¸i,ßÏèwõÕk>V[â•ê‹¶òÎð|0^y?‡z}°åÁ¯>¿Ò~úÉ| È ¬•sHªG^Â:Ó>8-"›¼L¾?ö`H/ÚŒs€¸_¯4Gª5m“`ZÙè¿]`%;ÑÞ6à¤1l^æ¼Å|à ¼JÃl[ I¦½?¢ìÁÍÞóÞ^£•Žá*«åyô{#¬ÕÞøëƒ˜S pý“ò VP.fl‚ÄúÎëѯÍpý‘ŒzÖÝ÷^ƶd}œÞžæ4UÅ*Ýi÷ÐßÞ×D\š»{p˜´³=¼›Ì#‘AØ­ßÃ:ì«Z,ø¶îãYga<ñ%´iãÛï.õǸJ£-ëж`‘ÏP¯/K0þê¿6®‘b²ðó6ìêUv·ûËö ½æƒXžëkêŠM©”œŠ\ƒµ­ñíÓa‹O4êAÑ8è¡uU(}X'sç ôM ªmÀk½‰7Dsg*È`Šý•ù8ó¥£;jW¹svF÷w7Æ]tgÜVØy¸n¬½É•šUæ;—zÈ?˜z2Å–ö|‡çƒ}Ì;^ÍHWâÕ½XMŸÃNËDËÚÉ[ØÏtÍçá·cýj¾sü»òæWu`Åqÿ#o«Ñxõ€Ú·ùwb~ö‘|süꩊÏ‘OƒÛ1â©5u+AǤ/c&På*ÃÜ(¿ˆÕN¿+¸ox&˜Ö¦§„zÂ÷…´övó³É¯vƒ{ìµ_ }CMY—é.À-×Ûˆ×ÛLŽ Äx¾uÕ–ªì=>‘‰Óг/Â:] 4ªŠuú‚¨ÎS}°ÆŒgëѫųO¾êÉÒòèa íÁUoÏÚ›lWÜ÷?f»MrõcoúEØJcWm,ÖÄÁŒ‹|y9rØ«§ÚïàWÏ™ÁT)¯Šõ;”ùΣ€¸ú|¸ß´¬íj*ZËlXð~êÉäÈ@¢½ä¯¿Z õÜ>»Õ½Å|œ_\_÷£;è6HuS↺ᶟ{Ü,7sìT;È­³ÿ1šåµÁ^õŸÁ•êÉ-’n^2©PO_LˆÐ'Ó‰ãŠÚƒ1£¶„úíEhÃF؃u*s<è>¶×÷(µ\’[üRïÞ{üê·×ÿ/õ§yjI-^÷®ã ÕP[éo¯$kpÝÌRHÄÓ+ÇGßlV¡éL[£=ÓMÆÑ¤þ+ÕCÖu1B&¸‰®#Qç€<ñ"_®3KˆQšc§õõ‚œ¾,ôî-\-ŠjЊ\ž¦Ò{O;,ˆqªke³v} 1•Ílçú¶´y"ÕÕ6,¢þUbÈ»*J ¾—†¹Ä_ÅÓ~K c YA"5D±$úÞ’h«–!·+Ãø+Uz(O®•ͳ€ ¾VŸo¡c[SX;¬ #Èâ%1ħôSi}çäÿùÛcüTPÏKã]»c\•5½;ú]ýfM°ú³`ªnãÛÿ ½¹Ÿ+É´³vÊ%³Ë|JOÞ@{ð6²»V2si8O'&ÉBsx¥1‹±z¾c½‰¼ÿ€ü€Ñ×øŽñëY[$cÚÜ;m²=O{Ÿ›AÞ4OíÇ"SÅ<‡=___1¿É)¹hÒè¿J‹”‚_%2Ö¢dWÁ(Çi~ðjG:ÝcæâÚçð4ܯ9ÖÎnžy«=¨úí/2‡e§F+¯jj­(ó–x•½{1,ºþLìÙ°°Ì&ïI K5|ã0¼…À«ªô}ÅzyP*1ÊàKð«Q˜uXçw í|j_nš×A¿Öb=úb¼nÍ|çÞÞasïõ^=gU»ú¯Ê»*a½ÔVv¨×Ïü#¢ù×±ú®i¬ìAÕ“99Ù†U[\ôuóŠÑ3…ÖhÑDFQŒßŒêÄHØÍ°T«³BëÖþ{ 6òTŒr†ôòï ¿‹±Ûe7ºQÿê²ëà¾w¸RI3+Àµ†Û^îI³Ô,¢¿}•ýxu‡yÚ^ðŸÅӦöÎ2ÛÌ-Ì䛀~œÄlçnŒßÐxU¸X¼ïNþ,’õþ5¿5𪿬pg­çŠÝ:´¸¢Ëƒ]vÉ^þ)^Õtí] ùÕ+VÜ4¯2ë;§F_õŠÀòi÷>OÿUz¼eÏ‚ö4€mx =3ùÌaèÎu­~õîé™ÿBìMwR9q´ïš“³ì“­Ñ äWYŒ]É“½dÜåFôgP^«JŽ hÍ±Ï ¹TPå4…~¨ŠD„x"’ê•·r]•BßN*ñUgD¼æDW!;+Ç«d†>v‡®Gu†xbh9 j7W¤×)ž5·’ˆW)ŒµH¦•—@û+ƒµÃ’CmäJÿËTÎB/€Ž~ºòº}üʃ,ãªQsÂgtCŒíõ©-“Díœù÷óF8pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run012/bold_events.tsv000066400000000000000000000002461323370031300255600ustar00rootroot00000000000000onset duration trial_type 15.0 22.5 bottle 52.5 22.5 house 87.5 22.5 chair 122.5 22.5 scrambledpix 157.5 22.5 face 195.0 22.5 shoe 230.0 22.5 cat 265.0 22.5 scissors pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/BOLD/task001_run012/bold_moest.txt000066400000000000000000000211601323370031300254040ustar00rootroot000000000000000.00124277 0.00368678 -0.000310871 -0.0228079 -0.0263045 -0.0443509 0.00158621 0.0033486 0.000381373 -0.0199683 -0.00191436 -0.0443198 0.00185955 0.00390723 -0.000310871 -0.0236908 -0.0262626 -0.0265848 0.00145848 0.00366438 -0.000310871 -0.0242733 -0.0451591 -0.0206229 0.00225225 0.0061472 -0.00242511 0.0151035 -0.0720281 0.00180121 0.00233242 0.00334186 -0.000425113 -0.0214722 -0.0564615 -0.000576556 0.00273683 0.00449027 -0.000425113 -0.00186767 -0.0402549 0.0295098 0.00253497 0.00459409 -0.00138124 0.00115017 -0.053473 -0.00163745 0.00287414 0.00362997 -0.000498042 -0.021232 -0.0473037 -0.0100846 0.00343084 0.00371905 -0.00083953 -0.00966729 -0.0392182 0.011892 0.00257289 0.00399962 -0.000939706 -0.0122004 -0.0418099 0.00628383 0.00246639 0.00371905 -0.00063024 -0.0317007 -0.0485192 0.00537048 0.00255385 0.00339486 -0.000533468 -0.0285821 -0.0672023 0.00456572 0.00320555 0.00567503 -0.0019247 0.00579789 -0.0445866 0.0363896 0.00257088 0.00328067 -0.000207249 -0.0278865 -0.0372986 0.000845889 0.00235861 0.00484089 -0.00234767 0.0148959 -0.0504905 0.037071 0.00288126 0.00411889 -0.000821381 0.0112753 -0.0764932 0.0525961 0.00351394 0.00257189 0.000248777 -0.0208427 -0.0808064 0.0280129 0.00406399 0.00578056 -0.00199868 0.0262447 -0.0939315 0.026647 0.00300615 0.00358971 -0.000531538 -0.00650431 -0.0633964 -0.000475938 0.00236574 0.00532743 -0.00229216 0.0263456 -0.0701732 0.0219458 0.00311943 0.00305541 -0.000229161 -0.00550325 -0.0613926 0.0178914 0.00306424 0.00392814 -0.000685443 -0.00990375 -0.0907187 0.0282878 0.00239847 0.00502751 -0.00241303 0.0188746 -0.090908 0.0341203 0.00269429 0.00554533 -0.00234176 0.0143162 -0.0772444 0.0243 0.0032884 0.00523061 -0.00200512 0.0150728 -0.0848087 0.0383295 0.00261338 0.00527453 -0.0026279 0.0111832 -0.0939772 0.0303034 0.0028495 0.00361352 -0.000414521 0.00752404 -0.108434 0.0304898 0.00327754 0.00374116 -5.39675e-05 -0.0145896 -0.105798 0.0581132 0.00378612 0.00310233 -0.000211114 -0.0190364 -0.116001 0.030577 0.00296639 0.00292016 -0.000153359 -0.0149692 -0.086241 0.0210434 0.00250654 0.00307473 7.26813e-05 -0.00545183 -0.0776905 0.0315472 0.00317752 0.00280392 0.000273037 -0.0153086 -0.0692627 0.0142729 0.00410656 0.00507935 -0.00314426 0.0411976 -0.0782602 0.0481137 0.00314707 0.00269609 0.000463277 -0.0153143 -0.0789252 0.0193124 0.00360796 0.00233884 -0.000121913 -0.022216 -0.0788596 0.0164976 0.00406584 0.0034552 -0.00079921 -0.0109548 -0.0868127 0.0406996 0.0033907 0.00510474 -0.00125028 0.007894 -0.0784575 0.0424624 0.00385272 0.00377138 -0.000602024 0.0201611 -0.0864202 0.0563633 0.00344304 0.00480671 -0.00186865 -0.000231929 -0.110328 0.0549759 0.00376204 0.00309024 0.000131354 0.0034027 -0.0875093 0.0676633 0.00375447 0.0020456 0.000691109 -0.0139908 -0.0849609 0.0213836 0.0034709 0.00260649 0.000131354 -0.0162537 -0.050856 0.0392287 0.00282858 0.00286314 -0.000219179 -0.0121686 -0.0642209 0.0392512 0.00364449 0.00292438 -0.000221288 0.000981049 -0.105392 0.0581806 0.00470168 0.00286314 0.000131354 0.00592675 -0.116345 0.030265 0.00327604 0.00224893 0.000131354 -0.011768 -0.0979876 0.000217134 0.00311863 0.00243291 0.000131354 -0.00672708 -0.0785435 -0.0362099 0.00299481 0.00223741 0.000418291 -0.0167531 -0.0672024 0.000462868 0.00347578 0.00160209 0.000592114 -0.00666431 -0.0761851 0.0137067 0.00283214 0.00225289 0.000995427 -0.0139598 -0.0656452 0.00338062 0.00293525 0.00204264 0.000975146 -0.0116632 -0.0853573 0.0114119 0.00333458 0.00225289 0.000638298 0.00596986 -0.0857241 0.0113971 0.00264272 0.0028228 0.000131354 -0.000791972 -0.0849973 0.00772591 0.00301222 0.00252502 0.00102965 -0.0319153 -0.0765341 0.00871507 0.00294286 0.00225289 0.000345161 -0.00758207 -0.0738585 0.0256326 0.00231964 0.00181761 0.0012519 -0.0366182 -0.050894 -0.00738256 0.00307738 0.00111618 0.00184486 -0.0296653 -0.0945767 0.00342996 0.00307808 0.00182175 0.0012519 -0.0072083 -0.0866436 -0.00261056 0.00370738 0.00168237 0.0012519 -0.0174354 -0.0768479 0.00508026 0.00330163 0.00284653 0.000702978 -0.016127 -0.0635581 -0.0105613 0.00389894 0.00431335 -0.00137111 0.0307335 -0.0735856 0.0304466 0.00376085 0.00260037 0.000354636 -0.0159793 -0.0733344 0.0176359 0.00360819 0.00380637 -0.00156126 -0.00528498 -0.105623 -0.00827524 0.00398206 0.00361167 -2.36196e-05 -0.00755526 -0.0987236 0.00405674 0.00372032 0.00190091 0.000610716 -0.0159857 -0.0879574 0.0029724 0.00360584 0.00189014 0.00048852 -0.00355041 -0.0683738 0.00744384 0.00396586 0.00357209 -8.82371e-05 0.0191089 -0.0914678 0.0400907 0.00397977 0.00207449 0.000828592 -0.00993294 -0.0873678 -0.0036111 0.00393969 0.00207449 0.000398144 0.007876 -0.0801184 -0.00361258 0.00322417 0.00252441 0.00066034 -0.0209086 -0.0698271 0.020175 0.00407971 0.00207449 0.000642817 -0.0274568 -0.0792505 -0.00363963 0.00276758 0.00226469 -8.82372e-05 -0.00146125 -0.0893112 -0.0100435 0.00440676 0.0016343 0.000723635 -0.0173528 -0.0640801 0.00469583 0.00429524 0.0020745 0.000918715 0.00256371 -0.0584459 0.0131434 0.00391114 0.00132045 0.00126346 -0.024278 -0.0678678 0.0136452 0.00422005 0.00203214 0.000474215 -0.00556312 -0.0642089 0.0313937 0.00392369 0.00269748 -5.34595e-05 -0.00352056 -0.0671697 0.0259398 0.00452937 0.00271306 -0.000213942 0.0160625 -0.0961125 0.0121581 0.00492273 0.00450283 -0.00229329 0.0247816 -0.0790062 0.0253844 0.00335317 0.00193831 0.000536429 -0.0290883 -0.0619716 0.0119317 0.00457962 0.00145402 0.000536429 -0.027687 -0.0751474 0.0254003 0.00450961 0.00152189 0.000479589 -0.0238007 -0.0731069 0.0326192 0.00501027 0.00193831 0.000867396 -0.00195501 -0.0770714 0.017752 0.00496805 0.00088001 0.00111413 -0.0217694 -0.0760535 0.0287232 0.00468364 0.00419718 -0.00272346 0.0184783 -0.0958005 0.0540699 0.00501226 0.00168361 0.000579356 -0.0293872 -0.0729031 0.0239533 0.00426256 0.00209209 0.000133112 -0.0115122 -0.0610747 0.0227965 0.00405039 0.00413781 -0.00244783 0.0263549 -0.0732363 0.0326 0.00389834 0.00124635 0.00080779 -0.027279 -0.045859 0.00785155 0.00318563 0.0015605 0.00105431 0.0402227 -0.071863 0.0521494 0.0039096 0.00159164 0.000624722 -0.0171831 -0.0509491 0.0310494 0.00501012 0.00360884 -0.00169816 -0.00252325 -0.0889288 0.0347019 0.00385673 0.00126117 0.000267431 -0.0173095 -0.0612002 0.0177132 0.00462254 0.00209281 0.000331528 -0.00435073 -0.068113 0.0133804 0.00445089 0.00139026 0.00103374 -0.0260998 -0.0588375 0.00806011 0.00463043 0.00111464 0.000882502 -0.0118516 -0.0556172 0.00808996 0.0049463 0.00182875 0.000879345 -0.0180686 -0.0660575 0.0508986 0.0053398 0.001481 0.0014038 -0.0280159 -0.081029 0.0536527 0.00462437 0.00182875 0.000267431 -0.0226191 -0.0638011 0.0272522 0.00451702 0.0015779 0.000952642 -0.02581 -0.0509609 0.0292315 0.00501063 0.00182875 -0.000184656 0.00156313 -0.0543332 0.0349739 0.00458055 0.00110134 0.001184 -0.0219319 -0.030089 0.015193 0.00415498 0.00136679 0.00110101 -0.0140179 -0.0542762 0.0305559 0.00505293 0.000631293 0.000702909 -0.0213927 -0.0542278 0.0217468 0.00597753 0.00136679 0.000614152 -0.0225876 -0.058952 0.0447103 0.00533522 0.00160027 0.000570504 -0.0242096 -0.0482602 0.0489392 0.0059162 0.00136679 0.000267432 -0.0264053 -0.0541827 0.056331 0.00586067 0.00129299 0.000267432 -0.018188 -0.0367119 0.0523197 0.00478166 0.000478364 0.00046589 -0.00798624 -0.0685305 0.0431916 0.00581342 0.000984646 1.74316e-05 -0.0106131 -0.0700983 0.0320283 0.00533889 0.00119006 0.000267432 -0.0274608 -0.0620021 0.0247823 0.00539903 0.00115546 0.00065462 -0.0200615 -0.0535764 0.0349359 0.005323 0.0022451 -0.000481983 -0.00619324 -0.0821894 0.0456937 0.00595141 0.00126951 0.000524377 0.000859616 -0.0551295 0.0494783 0.00532219 0.00179417 0.000292285 -0.0141448 -0.0521009 0.042293 0.00509735 0.00231026 -0.000548656 0.000729005 -0.0459288 0.058814 0.00635956 0.000541398 0.000728293 -0.0235724 -0.056099 0.0833559 0.00538392 0.000875803 0.00055035 -0.023061 -0.0632625 0.0598766 0.00585732 0.0014733 0.000699482 -0.00956358 -0.0493799 0.0416319 0.00502719 0.00110317 0 -0.0118915 -0.0514267 0.0320944 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/anatomy/000077500000000000000000000000001323370031300211525ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/anatomy/lowres001.nii.gz000066400000000000000000000044021323370031300240260ustar00rootroot00000000000000‹ÍX \S×ÅQM}â …k„!j ˆ"yÜ{ÿ “ˆòÐ$h¶äBP@kñ>À (Vm‹Úú¨n®¿Ö‰¯Z;|Ìv>Ñ9%u[Õ©uZõ§sj»º› €´Z˶~÷ž{r¾sòýÏÿ;ßùÎM2¼xÏ ž7χÇg/¯¦«­ôæ\]²ŸÇ;B}[Ú‹TÕªñ³ ÿ7¥‰G {+<šbšÇû¼ÞSŽüÞÓç.n½»æ8•xú›Å­kÝö3BÌYÏäóx]ØZª(´Y‰fG¾ÅÎÈBÄa¢B!çK©XÚhr:–¬§9ŸOùfkŽÑ’=Õžm– &¥¦ SUI£³RÓô "¥Ã6•ÎŽNdRÆ Ø¡uŽAmd lù2AÔH±ˆ»ÝW”»—±sì›LÀ~˜æ°ä ˆož΢\EÏÂ3Óš¾“m±™™@ìn²ãŒŒÉƉWë ɺT£&Ù rÛ!éEöé$cŸaK¦±æ,B2šGˆ+‘8r2‘í0ç›l¹V3!Ì.,*&$£šna®Ãœc)$§ÛmæpÖVx˜Ó–Ζ°Ñ)©0iÕÚIcÂf[.!tØXg‰ÆlrB “ovÙ&§);+ÜYà´;,&«ÑÝn×â&Æä c,–°iž4¼™¾œÿÜ®0¤jUzƒN­‰ó8"B©N2Æ«(¥‘ÒP†NQ+‘¬T[ã|_,t&¦’j^â'×U­ë³àYg[°1mÁôPi8,ŠÃñ ±˜«„ÑÑÑßù잉­J4Š=‹‹ ä?]I§Ûu;I¯25T’ê‡b"ÚZNÖ©UƒQ¯UA«FóJHøDä3XϱÚMOµ§Öpf…Q’°QîEæ*¡§î ¥*±)†$nÃî‡ä9-‹%í6ĸ£!Ù¨T#9©Aä‰RQ¢¨…™§[ò#9~ßLŒ:•ø¿N»ÙÐ:5ØÜDôÍ!!“D>KÔ<-14G»ŽÒ$pÖ#X2ÍDZÝÏ4ªc$6«4zu²ÆÃ&ŠÅyÊó‰;òwn41z¾ èÈjlb2e0ÆRh^ŠÎ9ãTIÚDö`S…¦¤ãÞÌÏ•tÚ3lÆA¥íÌùÒ©U²N©Òµ91õ´1V­ÓwÖ¡ìñ8›æ=¾ uªáUêD–D“ñ9ím77šßåüVï›ãƒË;zǽ%KV8넊özŸØ ´®ÿ‡tkÝѨZªÆnñÈh8ÚÒwãk3®ÌxDŸ>€ë_çÀ÷D¾ì•ÝòÐîƒáƒT½üÁËœ[V7‡ûc0®:ê†Øu3n]}ÐгÓçv[pD? C¾ 8ý¾—~E~SDòǦá*}¬Í|>eÒeÕê­äûqÕ²¼’6üè”yÞ±|Y{^Ýíé²q³Oøb®×X¼_‡Öº‹«_açmÅâ¹sùYuK_å¥ Ü»‰õÔèBZ9}`×Xª¡ƒåªyèš1= 8ý’ãw¥Ä&ª•å4;–wýcw¥É®äWs€<;ê¼9øGºg¼rÂËdÀ­Ò*GUD -l¼ÔÂùßu²õ¿¾./«×*˹5›eòã¸dõ8“1Ч…WP×ê6kšq<_þ¡7%ïYvJq*%™×–`ïGU¼ñ5wPY²bH‡Cz¢?öiãÐïÞl’¯²ÑÂkFŒ¶pJgãçuË0ðá1:öw]°g‚B×@_ƒÁ›,#D¸^‡:1‡O à“\ôžJãÓ%<<8TBo¸^€K·ÓGDE8w¾ þê-TÄí½rqÞqúLÜÿ|ëMüáÖWmÖ§× Ã\{߉»Ò¿ÖS, ú¤¥{«Ïnq}ÝH›]‡ÚÄÉÁ¥/a ;?ņ…¶(O_fT\fV˜7VB-¨Dœn(j/?¢ÿ"ÐÒµa(]‰]Â?Ñw.zÁú†¤¥p¦;¸É kŒ?¼7‰ i˜ˆŸõ.A¼ï–$7X1)½/—»èoêPjФ“ßKÁcÿ—±&`?}Øï0Ù«~õÛ¸èzE#k«J 5ò”IŠ`[º,ÑÖö­»ÉqÚéªãâ·Fí+Ëû¬N–Ý}¾|s«½:àÏ6rÀå@”®ï«ÿá–ßÓ#F:0†©‚c9ÎĈýóɢ³~Q‹0K>ƒW.ÀíúA ný¯›WáÞC1.®ŽCHã”§¡8À„3‡ãŒ^‰*Ÿ4Ä¿]ƒ¸³Iøx›/&¦Ë‘ïz…=+pS1ýWcé˜GԱȦ£ðB!tQ fËišœ×•Ôú'Ñgû ¤o,LGº–Rkž˜­+÷<£Ý¹¯M¬lâÝ^zŒ¯ W+çBÉî­“E¾ßÊ ªvs9. +ŔբÇ;,¿ñïRYç.Ó#oÌA1³CÏ—¢úr 'ܦUÚZ:ª‡%›ß‡›¼dí_ö"~:ăjô;´u¯Íµu=±MèDι5ø×dDvKÂ0Ëë¸>ÃÄíƒÔïÜ•X;sÎóãtWî®"kÓIÓº¥P_ÂæÅ9OäÖ"B×EÒ§ûi²µîÝi.úxþ,d­ªDF:C{•…’®iZ< »&³ñ\þ&*7T`AL0Ì~'é’$‰¥:¿+V,BÅæ¾øàf¬èRÅÚ2\ë¶©… Þ2ñq§ñ¾\ëx{eØ}³N”s¼¬v—lëB!ÎælĤ®Ëp;#Õ'ïJy[†Ë½3ýäÚoBÈú;?ŠëwÉçä0*åþܳ-Âô £[âü…Ìì!çã}ç óœ — BrâÞ/å³'\ ™"`‡ðmÔlŠÀvsa‚ŒY~‚?É ±ï;ØÈ'°éêJSf’¿÷p½uû—´²a?]3|-º:„ôsÕ)¦œº+½—ñwjØä£üWõÓÞs9Ÿ>ÖSSŠÈf}å¤(¿Î&?²Í¥È* èðìÿ©ˆomÈSã¦Úš.ÛØØq^øÊ·ôP> pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/anatomy/lowres002.nii.gz000066400000000000000000000062171323370031300240350ustar00rootroot00000000000000‹½V @ÓGÖGÖ«ö«ˆ,`9nã½™ áHD9b "!ÁP× ©Èz ‚·h©X¼o h«P´² +*¨µB½ªè†«[Ýî®ëÇ÷Íù3óÿýæ½™y3³úi|@Pj ÐÐÖÐUÇ~=ñÝ0\ƒÑU§žÒÐ(‡ä÷eÿNèÿ!Ìÿ—¡GTurïnIF ƳݹüLw_gîlכּtJíîï m¿—»ƒÜŒÙ…~[WCCS]OvOŒ‘1$Ê8©Bîj´´6a¸»éNO.G(R©”Ò°x•$N—Áˆ“È"„Rq¸B,q5  ’¼€DÛOÙK|çˆYr[Oª‡r9ŽPçjhoδîJѾ³W.F(”1®†êH¥">ÖñBe÷UR¬š…¯¦—Göü#–ÆH䮆ÌNQ=N(Ũ‡Låð<ÿ !—'`wâ0 gÊ¥áÑEœ…¯(Šh ?¥ÂR¦Éœ1ƒ«H`0Lg–ƒ³­5ƒeÍd…0lÄ‚8•HŰˆUJ"¤‰Œ0…L,Œ‘ˆä–r©´Kêü°ŒLž%Ÿ™¤ˆò+Î AT<ÃSÆ`©ñœœmìY6x¶xJIœ(&V&aXˆ“’,»žÔË`¥ˆ‘X©±¬,U1±Vêlé0#ˆˆü8~ŽV*IL,ÃB£68ÃG*—ˆ” ©ëîü±DÌ?²[×ýÑ£ÑÇmŽ?Bõôá@è „ßsŠûÄõtc«[7ª¡¯ú6í#¯Ö íÍ àùÓø”¾º¢Ù¾~>êkLíÙ€ôøÌN_ôQ>óý[Rí0‰/øõ©™ƒlµØþï\ø>|zrüùÿô¦èzŸ§nºï¿sE¼¹ð:¸'IÊúi‘ÃGF‘‡þ_ÂôíéÏ…†UèÎ=ˆiËPøY4ݰ[‡`ÜỘ U¥“ÄÐõx£ÎrW9@]Éœ* &ÎO—Fµ¬nL†C“|Av™OŽg ×Ž!äÐÔİy'\«M†yƒÇ‘à„ódxàvÒ‚ûˆs-|½e6pž¬ÁœÙ$dL*§Ã;wD [e²_0ýQ.y>ª„È ²±é>l´¨vâΰUdÒ£Ó¤Æh Š!–mòƒùC‹±>±ßÚÏ Óe‡pÏçyPõs ¸nÊGqúj2åê:2»²_®Ë‡·W@K´)Ñì ãÿr ËŸ #FËWÁþTPïC¸ˆ­E×?®&¡ÅXV—öÏ.÷sªúI‡–¤sBŒiåñMœ-3¯(ùK~©lLwÈrIÜýsPg£‚[g^ÁþP²ô$“üàÖL6ènky*”ìˆ'Q€¾æ°É4Ž­÷Ú^‚@`†'ÅÚ Ôep6Ù÷ù2È(€]÷“çLšµŒG[I†ï®<¦<µ&ùº„Vä’ù56$ÐòìÄhŸ¾¯ïEüóF•ëq4Ò^§õñÚ\Ðà‚¹6i<ÙwÎŒä/Ï@³æ(;š< ò:}3™¼’H'm¬xhû*›xýp’ž{º÷»"bXaŒ ?øc§?)?ŸMD®û©×7m«Y†ÃS÷àæÐíÄÉ݈nmÒ£•®µdÑ}'\¼@‚?O’_šÌ‰ß«v,>ïJʾ‡«Ë•8»î®>zÃZoa‰Ñ2­¨?rÄåñ{±6šIBv/ ¹m™î†ƒ­(V¹qÈÊ¥-xà ҿ#˜è]¬Â¿ùåãå§hZXŽúo‹ðqˆ!øl¦È̱4æ3ôs)zÞ™‚CŠ˜xT'M¢áùWÒzr õštŸ|‘LŽÔXá´ô!äÙÜ/ibÀtùòsôÓŒ:Z•EÉ ß,¼H¦Ü¡Y¾Í”±Ç‰VÞ«GþÝmXz°š–thÓÌ1é%¤' Ñyb…f$)JËÀà 1ê—ç˜V’‰õ¹‹ñ³êù˜Þ<”ˆå5XåŽkEøBykj0#Ÿß›Eœ×âôÍùhyPϮ鑛ãJÑöäf<þ&ó3¤äEs%&rÊIÆ8g%N›0‘L³;‰‚µhQÅ#cKÜÈä™r¬É„4ažªÉ¢)wOPá/—è'›¿¦¹žŽ˜o9–LÔú–Þ¦û4+éŠÑßÑMÙ©Áþ3)¡­<Ú{™ì¯Ã.t©¦ú²WtŽË=é™GRTväú£/¨…Ã|zöÊ|:ÃÌšjJ£Q{\–¸ $®Ç.‘ƒg ë\)8j<“­è󧉨ÆÒ!ŠOHãC ôÞVŒ³mŠÓÙ¸ë¾ v<[ƒŽ;àóÊtìçÄ"‚êЫd–MËÅÒ¯Cqêr{â ôZs ï®5'’­Õ‚§í“1/î앤ÕIßSãeÔdx1m ¿†ŠdÑ–úÓëz*4zFWÌh —¼;pƒÅ²Þî 5°~@ŸUwÐK/ŸÓõomIâÁLò¬ö QøŽÉ®¡.m¨?ÿ"iÓþ\_EǨ¡í’‡4C§–îªyA õÐãÈ9RWKbNÒŸŠY3¯ƒ\Ãðö–||ãrŒüÉd Å e¨Wd‡f§öàÕGqW›)¾øJƒd8ÍÃ?k†ãìRýfL}˜†•µ•xwžÌw¯îDqm!úühJÎ~1Œ™¹-¿¿;B=ðØèvœºà(ás–Í\In´‡cÄÛt„°§Tµ«–†4ц‹÷¨ãल|^ýæM4¾C5Û蜹 ôâí,lÐ\‰£ýji}EƒÿÚL]x­4af;²‰PÔ‘D÷Mÿ‘æ‘F:±?‹6ˆ‡#‡¡¿*†^{[lEßä¬BÃ…7a¹~Q”‹ÂÉñ͘re˜~ee†….:˜Wp¹ÉiXèøWä.T`ÎUÄeB“ð¹ f‡Ì|û=^5§ áìFc,Êáã¬9fåáÁ%28㺫}°}é9lkXŠ+E7‘¤ˆÁ{T"\1LvéêS‡ÖõTÙ|ÍkVfRÄÖ\Ń…i5ÿ!-1JBIê5«³ñÇ“±åÙ´8i-õÙ[‰ë6gB¸ÆV¸PÀ ߬#UYZ¤|ûDÄ7bp,’“m4âeáöñ§°ÒåøÜ Ÿ¯ƒMϵÐûB¦ñ MNWá¡Yøæ,†- Í0jI%¾eO"R7¬‹Ù ÖkÀ"ý½p¶~3dU^ÁÖ…píÓ ¸™œ!;r!lë2H >ms¡ñU $&‡BÀ׿@Éþj¸2aÞâ]•~-ö‚Ë o¢ƒÕõWà‚ÏFȼ­É Ü_>iîxèÑ-¸¼ût|»œF$Aâ–ó°Í{ê›éáÓ!ðhÂ\H|» †ny ãï>€(Ûëð³ÛMˆ¸ç߇΂Ԃïàz< ‡´jáÈqÀÉ” ùîóÀ«<J# a¢þ60ýT²ó‰pcË<¸ùt;Do=º'acäkn…õ “!qŸ t½·€Ÿ‘Ö-æ›>©'‚xBgƒîˆ í ævcÀ;Dd£ŠáZÅ@ò¦™ïÓv-X}i$|kŸS÷@šT™àö‡ÉJSH < Ó²\Ðë~nÌËò– ˜×Æ‚ýù»áè @“ó­°oãOð·•®0÷•3Ø{WƒöÈÛp±¥ÊfVŠSÃÀ«N ü·þ‘8^§ fÉ…†n)GVBf—ðf^ h7þÔÌ^šƒ^Ô^VÓ=[ ”±"‚¢áïº • pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/masks/000077500000000000000000000000001323370031300206205ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/masks/25mm/000077500000000000000000000000001323370031300214005ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/masks/25mm/brain.nii.gz000066400000000000000000000015321323370031300236140ustar00rootroot00000000000000‹ÝWÝrš@Æ¶Ó ®ú;ô"­ ˜˜˜‰IW\“ 0mìÏlIÅ„©€ƒ˜Æ\tòfö*¯Ñ7éÂb¢Æ&ÆbgÚ³»¬Ë®ßw~–³ð>Ã- ÷˜{Êñ´d’2-O¸gqùã®àM›•41x´ó*%±ã’Ö=vç¢Âq?°võÍE-ºõ±M—l~,ѽÉ1ï…£ä#ïPË÷ÎÝ8³ƒã{å5)'®½]~ÖTL¬0 œãahxv¯KœÎ'¿c—…£ö[R!>ý2*†›•úÖÚ ÎŽB t©Š»&&ÞД…âKIŒ+-ëѤ箸eþ8 üa_7|[Žú”Ä ìÞIòŸŽãÚ^Y¢!]G<Ë¥K°ajz›¨š‰" ¼ù§¯<ÿÌßæéÔìc o©´](n¶€,Jë@¡ØËí÷líœ.€¼‘Ôl?°»Î9ÈŸú®§Xù\èöó´å6_·«…[G[ùÐvû ¸Ô@UAÖñv:VhuŽóá0ôÇê‘h<3Š/®5øLŽËñržãäN.~'?vÀ.¿´3Ìv ¦ŽÕ}æŠB7É‚UUh¦D‚«ŠVEd’ç®Í&gŽƒ|;²¥8²‹ð9^8M¶5Mf(H¹`Ì%ò@’â.[*•~{MÅά ‘˜£ó0%ÿ1\9uÜÈI2‰ ›èaà·‚P˜FÖtŒT“-¤àVÆ‘y°¾z·ç[÷âïc5†ÍåÜFä¸Ë²> Ž*j${HŽ€£‹¼$²$Ï<‡ubj¤Š­yÍ ²]ÊÌFñÚ26-ÿ¡wiBtWm*:Vê47AÓ¸~xSH ã}®Cµã"ÜÄ„‰ºÓÆ|&š¹‘j`Mev)ŸÈÚ²DÒuV6Œ ©aÝHë8f§ žùZx.¦ \Gí7Ôˆüë,öx0~MÜåWøZüÈäWÊü/–Õs­F‡”ÌÌeV‡‡j“™øõÞÌïŸè0gQ®4½|W¹ÛþuùQfºppymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/masks/25mm/gray.nii.gz000066400000000000000000000015411323370031300234630ustar00rootroot00000000000000‹íWÝRÚ@Žm§¹ê#ì¤^´@Åm‹¬BÂ$™Vl;ÛX‚fJ&¸èøföÊ×è›t“M(*ÒØ±NO²Yö‡ï;ßÙÍYø°Â,`>ó”yΰäZ‰¯i{Á€¨>ÿÆ0ÒU™µm8Ñx²ó}Z¬ãœÜ»´g\f˜Ÿ?h¹øNÇÂö‡u¤éœŽ'öM¶©¹¯„ýË0ÏH½½;tºàÌòû¶ç–V…,¿ vwØm©ª lo«Ïзºl·?{m«Ä¶Žð0o‹Ç&Û ¦É6§Ét*—qñ,„¨Ê‹ÅkŸ©è¬KeXÇÕ8 ƒ”âGqÅÔqà éÐÀŠÔ€wÿmòÓȪ† b`½ eTEr²" Ö@ït=óVü=¤D°™‚˜]9ª2´Nƒ£ëñCàð!.‰,ˆ3/Äþ6T\A²Ú¸dàé.¥rø˜‘¿TF‡Å?Ôx“'XƒRýïº3ãMYCòÉM’¡_¾¼)¤„dŸk’ráæCÜXÂĽÓú|&’¹¡¢#U¡: „§eY"a^¤¢#V´Üv˜‡Z­«’«’œ,B:§l4ëä IA’ãt¾ÆK¥›Ù†ä¹!5Óô·Ü2 ªU 6uVÖõ2®"MOë8¦' žÆš{ɧ |[üë,vÒH~&î°÷ø³ø¿=jKþë<6 u¥¡-ÁxÈqšômžŸ·ÅbQ)×é¼i|Þü»¬oZ{jK{?ßÖ—6ošvWšÿÿí_µ_¬îÝÑ pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/masks/25mm/hoc.nii.gz000066400000000000000000000015571323370031300233010ustar00rootroot00000000000000‹ÅWÝnÓ0vbS„¶ à &m“t+l¬nên¡mR’(?² M·ˆ&©Òl¬»@{3W{ Þ'n`í %lÇMlŸÏñé±ó6ˆfÀÀÑ”¥q¹æ¢öð GèW™”'xlÒË MTiÞ`oÊ|ÿÆÊÑWÖ–ð}ØF:²þXÂwÇŸ™¸ÄÈJM€Ë´]ÛØwzpÏò¶ç–Åœ°7Ö¹5TUÒß~¿XÂÕë»óÁëX%þUë5©‘~Ïõ‹›hoSÄÃ>þäIúsžU•®©w×”øâCQˆ2MRØéÚ¤ëùN‰§?¶}o·ÏÃ_|> û”Ä ìîöhNÇv,·Ä‹á#GܶC‡l)†©é-¢j&q ÿfèí“àj~>jfÃjfæìñç-?J¸YÖpymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/masks/25mm/vt.nii.gz000066400000000000000000000014611323370031300231530ustar00rootroot00000000000000‹íWÝrš@%m§\õvèE.ZИ˜Ñ¤ˆkBT°À´±?³Å‚ ÑQ/:y³N{•×è›ta!Q›¤Ö’^t<ì²îçì÷íò-|Ø¢V€O=¦žR4¾¶âkÏ(•—_)êJ¸ÉË(ùʣU”±—8’–Y•¢~|'ùêé sØ–‘M—¤?AØ6_'p_pû'š¢žà²|8qú`lùCÛs+Û\–݇tY¨Ë2‚À·»£ÀÒ ­~ÙægÏ´*Ìiçš»'ÊÅi/˜°ß3ôZ'¯õzLÑøZНq<¡@Tž~¥¨3á"Ob^ª<˜Gù&ûqŠÓiU(êÇw’Ͼ‘¾0‡íaùtJú„m—ëî3.bOSÔ#\nl;=phùÛsËË\–][›ô†P“%doïk@0°zd›<Ó*3{í×H3uQwJÅ‚»êëÎGÿs~·Ç1x¨,ut ¹CgPfŠÏ96JáU {]u<ß)3øáÀ÷†}\úd@pÒÇ*–wâߘ¶c¹e† «xr Ù‘4]QÛHVtòæÍ‰×}áz‡Þ:лCP³ö¿ ¸Òz¾¸¾R<Ë­¼yÓ·†ÓïY cŸŒ_ˆS¦ï[û亞cå0W.8ýÎÙÕWmÑhI­½µ\`9}ñ Ë c»+¦æ~.žo=Ö'jÑÍ1ŸÐQ׬¬kÛÙƒCoä’lÒ Co· ¦«’¼MB‘¯JM´…*dAOIDªŠJ¢Ë:W­†45«B2ɳfv=Û ÆÅÖÆÅ4Ê‘–i±4ศȔJ¥™÷TülØ@ñqtr¤?Â˧ÎIƒ:’…&¼ù/“gVT Ê:ÒZP”j’˜ÌOƒ•9Ø;=Ïø-ÿ¶$G´™"Ÿ-„“R¦¡Q…x ñ!qxãdæø‰âeé ªJ¢Òä]¸”P*LWÂ;7”5I‘‰E¬Ç’¼¨7-Rщ{´Ør˜ÆZk(‚Žj‚˜LB:§l¶øÀ›‚ ÆÛMø/´ÝL0x¯›B+M{+m*jªcgeC« š¤jiÇ$âxƒ'±fž²©×a{;“™äN*Éwâ&}ƒßÅ÷¸Çÿƒð¿]’§µO¶ÝÌëSÒ>íyÖ˜ ‰m³|»®í³â6OünWÙ8Ù—vÜnWÙxì¿Ç]ÆOƹ- pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/000077500000000000000000000000001323370031300206025ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/000077500000000000000000000000001323370031300221235ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/000077500000000000000000000000001323370031300234365ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/000077500000000000000000000000001323370031300257265ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond001.txt000066400000000000000000000000151323370031300276270ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond002.txt000066400000000000000000000000151323370031300276300ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond003.txt000066400000000000000000000000141323370031300276300ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond004.txt000066400000000000000000000000151323370031300276320ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond005.txt000066400000000000000000000000151323370031300276330ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond006.txt000066400000000000000000000000141323370031300276330ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond007.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run001/cond008.txt000066400000000000000000000000141323370031300276350ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/000077500000000000000000000000001323370031300257275ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond001.txt000066400000000000000000000000151323370031300276300ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond002.txt000066400000000000000000000000151323370031300276310ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond003.txt000066400000000000000000000000141323370031300276310ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond004.txt000066400000000000000000000000141323370031300276320ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond005.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond006.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond007.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run002/cond008.txt000066400000000000000000000000141323370031300276360ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/000077500000000000000000000000001323370031300257305ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond001.txt000066400000000000000000000000151323370031300276310ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond002.txt000066400000000000000000000000141323370031300276310ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond003.txt000066400000000000000000000000141323370031300276320ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond004.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond005.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond006.txt000066400000000000000000000000141323370031300276350ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond007.txt000066400000000000000000000000151323370031300276370ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run003/cond008.txt000066400000000000000000000000151323370031300276400ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/000077500000000000000000000000001323370031300257315ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond001.txt000066400000000000000000000000141323370031300276310ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond002.txt000066400000000000000000000000151323370031300276330ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond003.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond004.txt000066400000000000000000000000141323370031300276340ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond005.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond006.txt000066400000000000000000000000151323370031300276370ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond007.txt000066400000000000000000000000141323370031300276370ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run004/cond008.txt000066400000000000000000000000151323370031300276410ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/000077500000000000000000000000001323370031300257325ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond001.txt000066400000000000000000000000141323370031300276320ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond002.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond003.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond004.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond005.txt000066400000000000000000000000141323370031300276360ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond006.txt000066400000000000000000000000141323370031300276370ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond007.txt000066400000000000000000000000151323370031300276410ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run005/cond008.txt000066400000000000000000000000151323370031300276420ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/000077500000000000000000000000001323370031300257335ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond001.txt000066400000000000000000000000141323370031300276330ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond002.txt000066400000000000000000000000141323370031300276340ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond003.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond004.txt000066400000000000000000000000151323370031300276370ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond005.txt000066400000000000000000000000151323370031300276400ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond006.txt000066400000000000000000000000151323370031300276410ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond007.txt000066400000000000000000000000151323370031300276420ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run006/cond008.txt000066400000000000000000000000141323370031300276420ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/000077500000000000000000000000001323370031300257345ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond001.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond002.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond003.txt000066400000000000000000000000151323370031300276370ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond004.txt000066400000000000000000000000151323370031300276400ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond005.txt000066400000000000000000000000151323370031300276410ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond006.txt000066400000000000000000000000141323370031300276410ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond007.txt000066400000000000000000000000141323370031300276420ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run007/cond008.txt000066400000000000000000000000141323370031300276430ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/000077500000000000000000000000001323370031300257355ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond001.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond002.txt000066400000000000000000000000141323370031300276360ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond003.txt000066400000000000000000000000151323370031300276400ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond004.txt000066400000000000000000000000151323370031300276410ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond005.txt000066400000000000000000000000151323370031300276420ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond006.txt000066400000000000000000000000141323370031300276420ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond007.txt000066400000000000000000000000151323370031300276440ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run008/cond008.txt000066400000000000000000000000141323370031300276440ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/000077500000000000000000000000001323370031300257365ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond001.txt000066400000000000000000000000151323370031300276370ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond002.txt000066400000000000000000000000151323370031300276400ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond003.txt000066400000000000000000000000141323370031300276400ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond004.txt000066400000000000000000000000151323370031300276420ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond005.txt000066400000000000000000000000151323370031300276430ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond006.txt000066400000000000000000000000151323370031300276440ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond007.txt000066400000000000000000000000141323370031300276440ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run009/cond008.txt000066400000000000000000000000141323370031300276450ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/000077500000000000000000000000001323370031300257265ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond001.txt000066400000000000000000000000151323370031300276270ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond002.txt000066400000000000000000000000141323370031300276270ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond003.txt000066400000000000000000000000141323370031300276300ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond004.txt000066400000000000000000000000151323370031300276320ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond005.txt000066400000000000000000000000151323370031300276330ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond006.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond007.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run010/cond008.txt000066400000000000000000000000141323370031300276350ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/000077500000000000000000000000001323370031300257275ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond001.txt000066400000000000000000000000151323370031300276300ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond002.txt000066400000000000000000000000141323370031300276300ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond003.txt000066400000000000000000000000141323370031300276310ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond004.txt000066400000000000000000000000151323370031300276330ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond005.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond006.txt000066400000000000000000000000151323370031300276350ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond007.txt000066400000000000000000000000141323370031300276350ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run011/cond008.txt000066400000000000000000000000151323370031300276370ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/000077500000000000000000000000001323370031300257305ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond001.txt000066400000000000000000000000141323370031300276300ustar00rootroot0000000000000052.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond002.txt000066400000000000000000000000151323370031300276320ustar00rootroot00000000000000122.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond003.txt000066400000000000000000000000151323370031300276330ustar00rootroot00000000000000230.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond004.txt000066400000000000000000000000151323370031300276340ustar00rootroot00000000000000195.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond005.txt000066400000000000000000000000141323370031300276340ustar00rootroot0000000000000015.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond006.txt000066400000000000000000000000151323370031300276360ustar00rootroot00000000000000265.0 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond007.txt000066400000000000000000000000141323370031300276360ustar00rootroot0000000000000087.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run012/cond008.txt000066400000000000000000000000151323370031300276400ustar00rootroot00000000000000157.5 22.5 1 pymvpa2-2.6.4/mvpa2/data/haxby2001/subphantom/000077500000000000000000000000001323370031300206505ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/haxby2001/subphantom/README000066400000000000000000000001061323370031300215250ustar00rootroot00000000000000This directory contains no data and exists for testing purposed only. pymvpa2-2.6.4/mvpa2/data/haxby2001/task_key.txt000066400000000000000000000000271323370031300210420ustar00rootroot00000000000000task001 object viewing pymvpa2-2.6.4/mvpa2/data/mask.nii.gz000066400000000000000000000003051323370031300171230ustar00rootroot00000000000000‹@"Med_.nii‹ad 103h0ˆ00Â!*`aÓ ûÓÒÜ  Xˆìxƒ3„.†Ê®Øls ö1Ñ3 Æ]”„? n:s¦Ð‰¡ïHè0u`q0ù $ VÀ$Ö€nvž¶!ÕÝK @lqEšIÈ1Ž)B¾iØ µÍ#ÎDâL"ÞDêšGši„M$Ý<Üf’g.iØÌ|æ1ó¨aÖH4Trð“ÉÕ pymvpa2-2.6.4/mvpa2/data/mask4d.nii.gz000066400000000000000000000004061323370031300173550ustar00rootroot00000000000000‹qQGWÿmask4d.nii‹ad 1°0h0ˆ00Â!ª&°@Ãþ´47†(VÒ ö¼ÁÂ+æbø ì f¡nÁ>&zh‚4à‚| 720œ9SèÄÐÀwÈlúã°8˜ò@Ô€™¿24@9p*OÛΦ'C0Qy0QâhD\ÃLÁ!Î$*t½ØøÄ›Fœy°ØÅo.6—àÃoH·^l2„Ìæ¿~ñëÅ%‹ÝL\ª‰Ç4‘]¸ÔP×4ˆ-¨fâ²™xqj›‡šº‰wn•È.Ä­Šx˜yÄëÀ¯r¤™ŠadI*S pymvpa2-2.6.4/mvpa2/data/mask4dfail.nii.gz000066400000000000000000000005611323370031300202130ustar00rootroot00000000000000‹ÛVGWÿmask4dfail.niiå”±n1 †MÅÔuàX*UB­ÔTS·®QÛ'È#ñEÌ< Ð\ráÎw¶ó#….åâØ¿¿8gtŸÆ 鑯4 ;?«Cz÷»Ù¬D_õœøÕÍ›¹[F;ˆïé4]«óX¼¿Îž;Î+l›{T5ßoäFo:½_Ãþ`U÷ò#j‚ïJ®Þœ—íÓËÙþOƒw‡ï.«#æ6Oª;ßöàÄ&K·pZ¿™ŠåLÍ›'j™²?Ç“³,¯M´2õ˜ÌÔõùHŸ˜ÏÑeiñÎÔÏF#¥yüŒVaéÚZ:4–x¨>§»5ïpºýuרƒtß%/¶v»Ùÿfcœ¨êÒ¤}iöþ¥Jt_¾F=WŠäxRŽí³‰v®•™šñ÷‰H–¦)K‹§p¦v2î/Íãÿn¼]Ù®PWá‘ÄÃ3lå­ñªÿ²n¨ à pymvpa2-2.6.4/mvpa2/data/sample_design.fsf000066400000000000000000000531631323370031300203740ustar00rootroot00000000000000# Automatically generated by mk_fsf.py # FEAT version number set fmri(version) 5.98 # Are we in MELODIC? set fmri(inmelodic) 0 # Analysis level # 1 : First-level analysis # 2 : Higher-level analysis set fmri(level) 1 # Which stages to run # 0 : No first-level analysis (registration and/or group stats only) # 7 : Full first-level analysis # 1 : Pre-Stats # 3 : Pre-Stats + Stats # 2 : Stats # 6 : Stats + Post-stats # 4 : Post-stats set fmri(analysis) 7 # Use relative filenames set fmri(relative_yn) 0 # Balloon help set fmri(help_yn) 0 # Run Featwatcher set fmri(featwatcher_yn) 0 # Cleanup first-level standard-space images set fmri(sscleanup_yn) 0 # Perfusion tag/control order set fmri(tagfirst) 1 # Number of first-level analyses set fmri(multiple) 1 # Higher-level input type # 1 : Inputs are lower-level FEAT directories # 2 : Inputs are cope images from FEAT directories set fmri(inputtype) 1 # Carry out pre-stats processing? set fmri(filtering_yn) 1 # Brain/background threshold, % set fmri(brain_thresh) 10 # Critical z for design efficiency calculation set fmri(critical_z) 5.3 # Noise level set fmri(noise) 0.66 # Noise AR(1) set fmri(noisear) 0.34 # Post-stats-only directory copying # 0 : Overwrite original post-stats results # 1 : Copy original FEAT directory for new Contrasts, Thresholding, Rendering set fmri(newdir_yn) 0 # Motion correction # 0 : None # 1 : MCFLIRT set fmri(mc) 0 # Spin-history (currently obsolete) set fmri(sh_yn) 0 # B0 fieldmap unwarping? set fmri(regunwarp_yn) 0 # EPI dwell time (ms) set fmri(dwell) 0.7 # EPI TE (ms) set fmri(te) 35 # % Signal loss threshold set fmri(signallossthresh) 10 # Unwarp direction set fmri(unwarp_dir) y- # Slice timing correction # 0 : None # 1 : Regular up (0, 1, 2, 3, ...) # 2 : Regular down # 3 : Use slice order file # 4 : Use slice timings file # 5 : Interleaved (0, 2, 4 ... 1, 3, 5 ... ) set fmri(st) 0 # Slice timings file set fmri(st_file) "" # BET brain extraction set fmri(bet_yn) 0 # Intensity normalization set fmri(norm_yn) 0 # Perfusion subtraction set fmri(perfsub_yn) 0 # Highpass temporal filtering set fmri(temphp_yn) 1 # Lowpass temporal filtering set fmri(templp_yn) 0 # MELODIC ICA data exploration set fmri(melodic_yn) 0 # Carry out main stats? set fmri(stats_yn) 1 # Carry out prewhitening? set fmri(prewhiten_yn) 1 # Add motion parameters to model # 0 : No # 1 : Yes set fmri(motionevs) 0 # Robust outlier detection in FLAME? set fmri(robust_yn) 0 # Higher-level modelling # 3 : Fixed effects # 0 : Mixed Effects: Simple OLS # 2 : Mixed Effects: FLAME 1 # 1 : Mixed Effects: FLAME 1+2 set fmri(mixed_yn) 2 # Number of EVs set fmri(evs_vox) 0 # Number of contrasts # Number of F-tests set fmri(nftests_orig) 0 set fmri(nftests_real) 0 # Add constant column to design matrix? (obsolete) set fmri(constcol) 0 # Carry out post-stats steps? set fmri(poststats_yn) 1 # Pre-threshold masking? set fmri(threshmask) "" # Thresholding # 0 : None # 1 : Uncorrected # 2 : Voxel # 3 : Cluster set fmri(thresh) 0 # P threshold set fmri(prob_thresh) 0.05 # Z threshold set fmri(z_thresh) 2.3 # Z min/max for colour rendering # 0 : Use actual Z min/max # 1 : Use preset Z min/max set fmri(zdisplay) 0 # Z min in colour rendering set fmri(zmin) 2 # Z max in colour rendering set fmri(zmax) 8 # Colour rendering type # 0 : Solid blobs # 1 : Transparent blobs set fmri(rendertype) 1 # Background image for higher-level stats overlays # 1 : Mean highres # 2 : First highres # 3 : Mean functional # 4 : First functional # 5 : Standard space template set fmri(bgimage) 1 # Create time series plots set fmri(tsplot_yn) 0 # Registration? set fmri(reg_yn) 1 # Registration to initial structural #set fmri(reginitial_highres_yn) 1 # Search space for registration to initial structural # 0 : No search # 90 : Normal search # 180 : Full search set fmri(reginitial_highres_search) 90 # Degrees of Freedom for registration to initial structural set fmri(reginitial_highres_dof) 7 # Registration to main structural set fmri(reghighres_yn) 1 # Search space for registration to main structural # 0 : No search # 90 : Normal search # 180 : Full search set fmri(reghighres_search) 90 # Degrees of Freedom for registration to main structural set fmri(reghighres_dof) 6 # Registration to standard image? set fmri(regstandard_yn) 1 # Standard image set fmri(regstandard) "/corral/utexas/poldracklab/software/fsl/data/standard/MNI152_T1_2mm_brain" # Search space for registration to standard space # 0 : No search # 90 : Normal search # 180 : Full search set fmri(regstandard_search) 90 # Degrees of Freedom for registration to standard space set fmri(regstandard_dof) 12 # Do nonlinear registration from structural to standard space? # Control nonlinear warp field resolution set fmri(regstandard_nonlinear_warpres) 10 # High pass filter cutoff set fmri(paradigm_hp) 100 # Number of lower-level copes feeding into higher-level analysis set fmri(ncopeinputs) 0 # Add confound EVs text file set fmri(confoundevs) 0 # Contrast & F-tests mode # real : control real EVs # orig : control original EVs set fmri(con_mode_old) orig set fmri(con_mode) orig # Contrast masking - use >0 instead of thresholding? set fmri(conmask_zerothresh_yn) 0 # Do contrast masking at all? set fmri(conmask1_1) 0 ########################################################## # Now options that don't appear in the GUI # Alternative example_func image (not derived from input 4D dataset) set fmri(alternative_example_func) "" # Alternative (to BETting) mask image set fmri(alternative_mask) "" # Initial structural space registration initialisation transform set fmri(init_initial_highres) "" # Structural space registration initialisation transform set fmri(init_highres) "" # Standard space registration initialisation transform set fmri(init_standard) "" # For full FEAT analysis: overwrite existing .feat output dir? set fmri(overwrite_yn) 0 ### AUTOMATICALLY GENERATED PART### set fmri(regstandard_nonlinear_yn) 1 set fmri(ndelete) 0 set fmri(outputdir) "/openfmri/staged//ds018/sub001/model/task002_run001.feat" set feat_files(1) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf_brain" set fmri(reginitial_highres_yn) 0 set highres_files(1) "/openfmri/staged//ds018/sub001/anatomy/highres001_brain" set fmri(npts) 300 set fmri(tr) 2.00 set fmri(evs_orig) 13 set fmri(evs_real) 26 set fmri(smooth) 6 set fmri(ncon_orig) 8 set fmri(ncon_real) 8 set fmri(evtitle1) "task" set fmri(shape1) 3 set fmri(custom1) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond001.txt" set fmri(convolve1) 3 set fmri(convolve_phase1) 0 set fmri(tempfilt_yn1) 1 set fmri(deriv_yn1) 1 set fmri(ortho1.0) 0 set fmri(ortho1.1) 0 set fmri(ortho1.2) 0 set fmri(ortho1.3) 0 set fmri(ortho1.4) 0 set fmri(ortho1.5) 0 set fmri(ortho1.6) 0 set fmri(ortho1.7) 0 set fmri(ortho1.8) 0 set fmri(ortho1.9) 0 set fmri(ortho1.10) 0 set fmri(ortho1.11) 0 set fmri(ortho1.12) 0 set fmri(ortho1.13) 0 set fmri(conpic_real.1) 1 set fmri(conname_real.1) "task" set fmri(conname_orig.1) "task" set fmri(con_real1.1) 1 set fmri(con_real1.2) 0 set fmri(con_real1.3) 0 set fmri(con_real1.4) 0 set fmri(con_real1.5) 0 set fmri(con_real1.6) 0 set fmri(con_real1.7) 0 set fmri(con_real1.8) 0 set fmri(con_real1.9) 0 set fmri(con_real1.10) 0 set fmri(con_real1.11) 0 set fmri(con_real1.12) 0 set fmri(con_real1.13) 0 set fmri(con_real1.14) 0 set fmri(con_real1.15) 0 set fmri(con_real1.16) 0 set fmri(con_real1.17) 0 set fmri(con_real1.18) 0 set fmri(con_real1.19) 0 set fmri(con_real1.20) 0 set fmri(con_real1.21) 0 set fmri(con_real1.22) 0 set fmri(con_real1.23) 0 set fmri(con_real1.24) 0 set fmri(con_real1.25) 0 set fmri(con_real1.26) 0 set fmri(con_orig1.1) 1 set fmri(con_orig1.2) 0 set fmri(con_orig1.3) 0 set fmri(con_orig1.4) 0 set fmri(con_orig1.5) 0 set fmri(con_orig1.6) 0 set fmri(con_orig1.7) 0 set fmri(con_orig1.8) 0 set fmri(con_orig1.9) 0 set fmri(con_orig1.10) 0 set fmri(con_orig1.11) 0 set fmri(con_orig1.12) 0 set fmri(con_orig1.13) 0 set fmri(evtitle2) "gains parametric" set fmri(shape2) 3 set fmri(custom2) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond002.txt" set fmri(convolve2) 3 set fmri(convolve_phase2) 0 set fmri(tempfilt_yn2) 1 set fmri(deriv_yn2) 1 set fmri(ortho2.0) 0 set fmri(ortho2.1) 0 set fmri(ortho2.2) 0 set fmri(ortho2.3) 0 set fmri(ortho2.4) 0 set fmri(ortho2.5) 0 set fmri(ortho2.6) 0 set fmri(ortho2.7) 0 set fmri(ortho2.8) 0 set fmri(ortho2.9) 0 set fmri(ortho2.10) 0 set fmri(ortho2.11) 0 set fmri(ortho2.12) 0 set fmri(ortho2.13) 0 set fmri(conpic_real.2) 1 set fmri(conname_real.2) "gains parametric" set fmri(conname_orig.2) "gains parametric" set fmri(con_real2.1) 0 set fmri(con_real2.2) 0 set fmri(con_real2.3) 1 set fmri(con_real2.4) 0 set fmri(con_real2.5) 0 set fmri(con_real2.6) 0 set fmri(con_real2.7) 0 set fmri(con_real2.8) 0 set fmri(con_real2.9) 0 set fmri(con_real2.10) 0 set fmri(con_real2.11) 0 set fmri(con_real2.12) 0 set fmri(con_real2.13) 0 set fmri(con_real2.14) 0 set fmri(con_real2.15) 0 set fmri(con_real2.16) 0 set fmri(con_real2.17) 0 set fmri(con_real2.18) 0 set fmri(con_real2.19) 0 set fmri(con_real2.20) 0 set fmri(con_real2.21) 0 set fmri(con_real2.22) 0 set fmri(con_real2.23) 0 set fmri(con_real2.24) 0 set fmri(con_real2.25) 0 set fmri(con_real2.26) 0 set fmri(con_orig2.1) 0 set fmri(con_orig2.2) 1 set fmri(con_orig2.3) 0 set fmri(con_orig2.4) 0 set fmri(con_orig2.5) 0 set fmri(con_orig2.6) 0 set fmri(con_orig2.7) 0 set fmri(con_orig2.8) 0 set fmri(con_orig2.9) 0 set fmri(con_orig2.10) 0 set fmri(con_orig2.11) 0 set fmri(con_orig2.12) 0 set fmri(con_orig2.13) 0 set fmri(evtitle3) "loss parametric" set fmri(shape3) 3 set fmri(custom3) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond003.txt" set fmri(convolve3) 3 set fmri(convolve_phase3) 0 set fmri(tempfilt_yn3) 1 set fmri(deriv_yn3) 1 set fmri(ortho3.0) 0 set fmri(ortho3.1) 0 set fmri(ortho3.2) 0 set fmri(ortho3.3) 0 set fmri(ortho3.4) 0 set fmri(ortho3.5) 0 set fmri(ortho3.6) 0 set fmri(ortho3.7) 0 set fmri(ortho3.8) 0 set fmri(ortho3.9) 0 set fmri(ortho3.10) 0 set fmri(ortho3.11) 0 set fmri(ortho3.12) 0 set fmri(ortho3.13) 0 set fmri(conpic_real.3) 1 set fmri(conname_real.3) "loss parametric" set fmri(conname_orig.3) "loss parametric" set fmri(con_real3.1) 0 set fmri(con_real3.2) 0 set fmri(con_real3.3) 0 set fmri(con_real3.4) 0 set fmri(con_real3.5) 1 set fmri(con_real3.6) 0 set fmri(con_real3.7) 0 set fmri(con_real3.8) 0 set fmri(con_real3.9) 0 set fmri(con_real3.10) 0 set fmri(con_real3.11) 0 set fmri(con_real3.12) 0 set fmri(con_real3.13) 0 set fmri(con_real3.14) 0 set fmri(con_real3.15) 0 set fmri(con_real3.16) 0 set fmri(con_real3.17) 0 set fmri(con_real3.18) 0 set fmri(con_real3.19) 0 set fmri(con_real3.20) 0 set fmri(con_real3.21) 0 set fmri(con_real3.22) 0 set fmri(con_real3.23) 0 set fmri(con_real3.24) 0 set fmri(con_real3.25) 0 set fmri(con_real3.26) 0 set fmri(con_orig3.1) 0 set fmri(con_orig3.2) 0 set fmri(con_orig3.3) 1 set fmri(con_orig3.4) 0 set fmri(con_orig3.5) 0 set fmri(con_orig3.6) 0 set fmri(con_orig3.7) 0 set fmri(con_orig3.8) 0 set fmri(con_orig3.9) 0 set fmri(con_orig3.10) 0 set fmri(con_orig3.11) 0 set fmri(con_orig3.12) 0 set fmri(con_orig3.13) 0 set fmri(evtitle4) "outcome gain trials" set fmri(shape4) 3 set fmri(custom4) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond004.txt" set fmri(convolve4) 3 set fmri(convolve_phase4) 0 set fmri(tempfilt_yn4) 1 set fmri(deriv_yn4) 1 set fmri(ortho4.0) 0 set fmri(ortho4.1) 0 set fmri(ortho4.2) 0 set fmri(ortho4.3) 0 set fmri(ortho4.4) 0 set fmri(ortho4.5) 0 set fmri(ortho4.6) 0 set fmri(ortho4.7) 0 set fmri(ortho4.8) 0 set fmri(ortho4.9) 0 set fmri(ortho4.10) 0 set fmri(ortho4.11) 0 set fmri(ortho4.12) 0 set fmri(ortho4.13) 0 set fmri(conpic_real.4) 1 set fmri(conname_real.4) "outcome gain trials" set fmri(conname_orig.4) "outcome gain trials" set fmri(con_real4.1) 0 set fmri(con_real4.2) 0 set fmri(con_real4.3) 0 set fmri(con_real4.4) 0 set fmri(con_real4.5) 0 set fmri(con_real4.6) 0 set fmri(con_real4.7) 1 set fmri(con_real4.8) 0 set fmri(con_real4.9) 0 set fmri(con_real4.10) 0 set fmri(con_real4.11) 0 set fmri(con_real4.12) 0 set fmri(con_real4.13) 0 set fmri(con_real4.14) 0 set fmri(con_real4.15) 0 set fmri(con_real4.16) 0 set fmri(con_real4.17) 0 set fmri(con_real4.18) 0 set fmri(con_real4.19) 0 set fmri(con_real4.20) 0 set fmri(con_real4.21) 0 set fmri(con_real4.22) 0 set fmri(con_real4.23) 0 set fmri(con_real4.24) 0 set fmri(con_real4.25) 0 set fmri(con_real4.26) 0 set fmri(con_orig4.1) 0 set fmri(con_orig4.2) 0 set fmri(con_orig4.3) 0 set fmri(con_orig4.4) 1 set fmri(con_orig4.5) 0 set fmri(con_orig4.6) 0 set fmri(con_orig4.7) 0 set fmri(con_orig4.8) 0 set fmri(con_orig4.9) 0 set fmri(con_orig4.10) 0 set fmri(con_orig4.11) 0 set fmri(con_orig4.12) 0 set fmri(con_orig4.13) 0 set fmri(evtitle5) "outcome loss trials" set fmri(shape5) 3 set fmri(custom5) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond005.txt" set fmri(convolve5) 3 set fmri(convolve_phase5) 0 set fmri(tempfilt_yn5) 1 set fmri(deriv_yn5) 1 set fmri(ortho5.0) 0 set fmri(ortho5.1) 0 set fmri(ortho5.2) 0 set fmri(ortho5.3) 0 set fmri(ortho5.4) 0 set fmri(ortho5.5) 0 set fmri(ortho5.6) 0 set fmri(ortho5.7) 0 set fmri(ortho5.8) 0 set fmri(ortho5.9) 0 set fmri(ortho5.10) 0 set fmri(ortho5.11) 0 set fmri(ortho5.12) 0 set fmri(ortho5.13) 0 set fmri(conpic_real.5) 1 set fmri(conname_real.5) "outcome loss trials" set fmri(conname_orig.5) "outcome loss trials" set fmri(con_real5.1) 0 set fmri(con_real5.2) 0 set fmri(con_real5.3) 0 set fmri(con_real5.4) 0 set fmri(con_real5.5) 0 set fmri(con_real5.6) 0 set fmri(con_real5.7) 0 set fmri(con_real5.8) 0 set fmri(con_real5.9) 1 set fmri(con_real5.10) 0 set fmri(con_real5.11) 0 set fmri(con_real5.12) 0 set fmri(con_real5.13) 0 set fmri(con_real5.14) 0 set fmri(con_real5.15) 0 set fmri(con_real5.16) 0 set fmri(con_real5.17) 0 set fmri(con_real5.18) 0 set fmri(con_real5.19) 0 set fmri(con_real5.20) 0 set fmri(con_real5.21) 0 set fmri(con_real5.22) 0 set fmri(con_real5.23) 0 set fmri(con_real5.24) 0 set fmri(con_real5.25) 0 set fmri(con_real5.26) 0 set fmri(con_orig5.1) 0 set fmri(con_orig5.2) 0 set fmri(con_orig5.3) 0 set fmri(con_orig5.4) 0 set fmri(con_orig5.5) 1 set fmri(con_orig5.6) 0 set fmri(con_orig5.7) 0 set fmri(con_orig5.8) 0 set fmri(con_orig5.9) 0 set fmri(con_orig5.10) 0 set fmri(con_orig5.11) 0 set fmri(con_orig5.12) 0 set fmri(con_orig5.13) 0 set fmri(evtitle6) "outcome gain parametric" set fmri(shape6) 3 set fmri(custom6) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond006.txt" set fmri(convolve6) 3 set fmri(convolve_phase6) 0 set fmri(tempfilt_yn6) 1 set fmri(deriv_yn6) 1 set fmri(ortho6.0) 0 set fmri(ortho6.1) 0 set fmri(ortho6.2) 0 set fmri(ortho6.3) 0 set fmri(ortho6.4) 0 set fmri(ortho6.5) 0 set fmri(ortho6.6) 0 set fmri(ortho6.7) 0 set fmri(ortho6.8) 0 set fmri(ortho6.9) 0 set fmri(ortho6.10) 0 set fmri(ortho6.11) 0 set fmri(ortho6.12) 0 set fmri(ortho6.13) 0 set fmri(conpic_real.6) 1 set fmri(conname_real.6) "outcome gain parametric" set fmri(conname_orig.6) "outcome gain parametric" set fmri(con_real6.1) 0 set fmri(con_real6.2) 0 set fmri(con_real6.3) 0 set fmri(con_real6.4) 0 set fmri(con_real6.5) 0 set fmri(con_real6.6) 0 set fmri(con_real6.7) 0 set fmri(con_real6.8) 0 set fmri(con_real6.9) 0 set fmri(con_real6.10) 0 set fmri(con_real6.11) 1 set fmri(con_real6.12) 0 set fmri(con_real6.13) 0 set fmri(con_real6.14) 0 set fmri(con_real6.15) 0 set fmri(con_real6.16) 0 set fmri(con_real6.17) 0 set fmri(con_real6.18) 0 set fmri(con_real6.19) 0 set fmri(con_real6.20) 0 set fmri(con_real6.21) 0 set fmri(con_real6.22) 0 set fmri(con_real6.23) 0 set fmri(con_real6.24) 0 set fmri(con_real6.25) 0 set fmri(con_real6.26) 0 set fmri(con_orig6.1) 0 set fmri(con_orig6.2) 0 set fmri(con_orig6.3) 0 set fmri(con_orig6.4) 0 set fmri(con_orig6.5) 0 set fmri(con_orig6.6) 1 set fmri(con_orig6.7) 0 set fmri(con_orig6.8) 0 set fmri(con_orig6.9) 0 set fmri(con_orig6.10) 0 set fmri(con_orig6.11) 0 set fmri(con_orig6.12) 0 set fmri(con_orig6.13) 0 set fmri(evtitle7) "outcome loss parametric" set fmri(shape7) 3 set fmri(custom7) "/openfmri/staged//ds018/sub001/behav/task002_run001/cond007.txt" set fmri(convolve7) 3 set fmri(convolve_phase7) 0 set fmri(tempfilt_yn7) 1 set fmri(deriv_yn7) 1 set fmri(ortho7.0) 0 set fmri(ortho7.1) 0 set fmri(ortho7.2) 0 set fmri(ortho7.3) 0 set fmri(ortho7.4) 0 set fmri(ortho7.5) 0 set fmri(ortho7.6) 0 set fmri(ortho7.7) 0 set fmri(ortho7.8) 0 set fmri(ortho7.9) 0 set fmri(ortho7.10) 0 set fmri(ortho7.11) 0 set fmri(ortho7.12) 0 set fmri(ortho7.13) 0 set fmri(conpic_real.7) 1 set fmri(conname_real.7) "outcome loss parametric" set fmri(conname_orig.7) "outcome loss parametric" set fmri(con_real7.1) 0 set fmri(con_real7.2) 0 set fmri(con_real7.3) 0 set fmri(con_real7.4) 0 set fmri(con_real7.5) 0 set fmri(con_real7.6) 0 set fmri(con_real7.7) 0 set fmri(con_real7.8) 0 set fmri(con_real7.9) 0 set fmri(con_real7.10) 0 set fmri(con_real7.11) 0 set fmri(con_real7.12) 0 set fmri(con_real7.13) 1 set fmri(con_real7.14) 0 set fmri(con_real7.15) 0 set fmri(con_real7.16) 0 set fmri(con_real7.17) 0 set fmri(con_real7.18) 0 set fmri(con_real7.19) 0 set fmri(con_real7.20) 0 set fmri(con_real7.21) 0 set fmri(con_real7.22) 0 set fmri(con_real7.23) 0 set fmri(con_real7.24) 0 set fmri(con_real7.25) 0 set fmri(con_real7.26) 0 set fmri(con_orig7.1) 0 set fmri(con_orig7.2) 0 set fmri(con_orig7.3) 0 set fmri(con_orig7.4) 0 set fmri(con_orig7.5) 0 set fmri(con_orig7.6) 0 set fmri(con_orig7.7) 1 set fmri(con_orig7.8) 0 set fmri(con_orig7.9) 0 set fmri(con_orig7.10) 0 set fmri(con_orig7.11) 0 set fmri(con_orig7.12) 0 set fmri(con_orig7.13) 0 set fmri(conpic_real.8) 1 set fmri(conname_real.8) "all" set fmri(conname_orig.8) "all" set fmri(con_real8.1) 1 set fmri(con_real8.2) 0 set fmri(con_real8.3) 1 set fmri(con_real8.4) 0 set fmri(con_real8.5) 1 set fmri(con_real8.6) 0 set fmri(con_real8.7) 1 set fmri(con_real8.8) 0 set fmri(con_real8.9) 1 set fmri(con_real8.10) 0 set fmri(con_real8.11) 1 set fmri(con_real8.12) 0 set fmri(con_real8.13) 1 set fmri(con_real8.14) 0 set fmri(con_real8.15) 0 set fmri(con_real8.16) 0 set fmri(con_real8.17) 0 set fmri(con_real8.18) 0 set fmri(con_real8.19) 0 set fmri(con_real8.20) 0 set fmri(con_real8.21) 0 set fmri(con_real8.22) 0 set fmri(con_real8.23) 0 set fmri(con_real8.24) 0 set fmri(con_real8.25) 0 set fmri(con_real8.26) 0 set fmri(con_orig8.1) 1 set fmri(con_orig8.2) 1 set fmri(con_orig8.3) 1 set fmri(con_orig8.4) 1 set fmri(con_orig8.5) 1 set fmri(con_orig8.6) 1 set fmri(con_orig8.7) 1 set fmri(con_orig8.8) 0 set fmri(con_orig8.9) 0 set fmri(con_orig8.10) 0 set fmri(con_orig8.11) 0 set fmri(con_orig8.12) 0 set fmri(con_orig8.13) 0 set fmri(evtitle8) "motpar1" set fmri(shape8) 2 set fmri(convolve8) 0 set fmri(convolve_phase8) 0 set fmri(tempfilt_yn8) 1 set fmri(deriv_yn8) 1 set fmri(custom8) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf.par.1" set fmri(ortho8.0) 0 set fmri(ortho8.1) 0 set fmri(ortho8.2) 0 set fmri(ortho8.3) 0 set fmri(ortho8.4) 0 set fmri(ortho8.5) 0 set fmri(ortho8.6) 0 set fmri(ortho8.7) 0 set fmri(ortho8.8) 0 set fmri(ortho8.9) 0 set fmri(ortho8.10) 0 set fmri(ortho8.11) 0 set fmri(ortho8.12) 0 set fmri(ortho8.13) 0 set fmri(evtitle9) "motpar2" set fmri(shape9) 2 set fmri(convolve9) 0 set fmri(convolve_phase9) 0 set fmri(tempfilt_yn9) 1 set fmri(deriv_yn9) 1 set fmri(custom9) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf.par.2" set fmri(ortho9.0) 0 set fmri(ortho9.1) 0 set fmri(ortho9.2) 0 set fmri(ortho9.3) 0 set fmri(ortho9.4) 0 set fmri(ortho9.5) 0 set fmri(ortho9.6) 0 set fmri(ortho9.7) 0 set fmri(ortho9.8) 0 set fmri(ortho9.9) 0 set fmri(ortho9.10) 0 set fmri(ortho9.11) 0 set fmri(ortho9.12) 0 set fmri(ortho9.13) 0 set fmri(evtitle10) "motpar3" set fmri(shape10) 2 set fmri(convolve10) 0 set fmri(convolve_phase10) 0 set fmri(tempfilt_yn10) 1 set fmri(deriv_yn10) 1 set fmri(custom10) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf.par.3" set fmri(ortho10.0) 0 set fmri(ortho10.1) 0 set fmri(ortho10.2) 0 set fmri(ortho10.3) 0 set fmri(ortho10.4) 0 set fmri(ortho10.5) 0 set fmri(ortho10.6) 0 set fmri(ortho10.7) 0 set fmri(ortho10.8) 0 set fmri(ortho10.9) 0 set fmri(ortho10.10) 0 set fmri(ortho10.11) 0 set fmri(ortho10.12) 0 set fmri(ortho10.13) 0 set fmri(evtitle11) "motpar4" set fmri(shape11) 2 set fmri(convolve11) 0 set fmri(convolve_phase11) 0 set fmri(tempfilt_yn11) 1 set fmri(deriv_yn11) 1 set fmri(custom11) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf.par.4" set fmri(ortho11.0) 0 set fmri(ortho11.1) 0 set fmri(ortho11.2) 0 set fmri(ortho11.3) 0 set fmri(ortho11.4) 0 set fmri(ortho11.5) 0 set fmri(ortho11.6) 0 set fmri(ortho11.7) 0 set fmri(ortho11.8) 0 set fmri(ortho11.9) 0 set fmri(ortho11.10) 0 set fmri(ortho11.11) 0 set fmri(ortho11.12) 0 set fmri(ortho11.13) 0 set fmri(evtitle12) "motpar5" set fmri(shape12) 2 set fmri(convolve12) 0 set fmri(convolve_phase12) 0 set fmri(tempfilt_yn12) 1 set fmri(deriv_yn12) 1 set fmri(custom12) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf.par.5" set fmri(ortho12.0) 0 set fmri(ortho12.1) 0 set fmri(ortho12.2) 0 set fmri(ortho12.3) 0 set fmri(ortho12.4) 0 set fmri(ortho12.5) 0 set fmri(ortho12.6) 0 set fmri(ortho12.7) 0 set fmri(ortho12.8) 0 set fmri(ortho12.9) 0 set fmri(ortho12.10) 0 set fmri(ortho12.11) 0 set fmri(ortho12.12) 0 set fmri(ortho12.13) 0 set fmri(evtitle13) "motpar6" set fmri(shape13) 2 set fmri(convolve13) 0 set fmri(convolve_phase13) 0 set fmri(tempfilt_yn13) 1 set fmri(deriv_yn13) 1 set fmri(custom13) "/openfmri/staged//ds018/sub001/BOLD/task002_run001/bold_mcf.par.6" set fmri(ortho13.0) 0 set fmri(ortho13.1) 0 set fmri(ortho13.2) 0 set fmri(ortho13.3) 0 set fmri(ortho13.4) 0 set fmri(ortho13.5) 0 set fmri(ortho13.6) 0 set fmri(ortho13.7) 0 set fmri(ortho13.8) 0 set fmri(ortho13.9) 0 set fmri(ortho13.10) 0 set fmri(ortho13.11) 0 set fmri(ortho13.12) 0 set fmri(ortho13.13) 0 pymvpa2-2.6.4/mvpa2/data/smpl_attr.txt000066400000000000000000000000571323370031300176220ustar00rootroot00000000000000# to be ignored 2 4 0.4 1 3 1 # also ignored pymvpa2-2.6.4/mvpa2/data/testing/000077500000000000000000000000001323370031300165275ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/testing/fmri_dataset/000077500000000000000000000000001323370031300211715ustar00rootroot00000000000000ca392f5b038b1f0420243405abe7b77b25fb3c43.paxheader00006660000000000000000000000326132337003130020376xustar00rootroot00000000000000214 linkpath=../../../../.git/annex/objects/8M/m1/SHA256E-s871744--d92afbb08f9edee798e7b1bf8f394a302b7bf4e60ca271ef0648acb99e4035e1/SHA256E-s871744--d92afbb08f9edee798e7b1bf8f394a302b7bf4e60ca271ef0648acb99e4035e1 pymvpa2-2.6.4/mvpa2/data/testing/fmri_dataset/mvpa-2.3.1_nibabel-1.0.0-4a39eb.hdf5_failing278000077700000000000000000000000001323370031300403322see ca392f5b038b1f0420243405abe7b77b25fb3c43.paxheaderustar00rootroot00000000000000ea11f32f6f54fcbcfecb4cef6245400ef64f9688.paxheader00006660000000000000000000000340132337003130021017xustar00rootroot00000000000000224 linkpath=../../../../.git/annex/objects/2z/9m/SHA256E-s877824--3f28dedbf414ff487b2515989a0d95914ff4ad630e5712d5c8a56563805d211a.hdf5/SHA256E-s877824--3f28dedbf414ff487b2515989a0d95914ff4ad630e5712d5c8a56563805d211a.hdf5 pymvpa2-2.6.4/mvpa2/data/testing/fmri_dataset/mvpa-2.3.1_nibabel-1.3.0-bb182d.hdf5000077700000000000000000000000001323370031300370232see ea11f32f6f54fcbcfecb4cef6245400ef64f9688.paxheaderustar00rootroot000000000000005cb065f7155173f3bf03f49eccbac0e081686c3a.paxheader00006660000000000000000000000340132337003130020553xustar00rootroot00000000000000224 linkpath=../../../../.git/annex/objects/gW/gp/SHA256E-s877560--20ef055b36d06fc1eaa8ea0cd41137ca61171451f305199455186df608c589cc.hdf5/SHA256E-s877560--20ef055b36d06fc1eaa8ea0cd41137ca61171451f305199455186df608c589cc.hdf5 pymvpa2-2.6.4/mvpa2/data/testing/fmri_dataset/mvpa-2.3.1_nibabel-2.0.0-ce6355.hdf5000077700000000000000000000000001323370031300365052see 5cb065f7155173f3bf03f49eccbac0e081686c3a.paxheaderustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/data/tueb_meg.dat.gz000066400000000000000000001405561323370031300177650ustar00rootroot00000000000000‹S1¬Hvp02cf-3ffasu.datíýÍŽ.»²5 µ‹«àj)ýoÓ!:@n¤Õ@ !qÿŒa;ÂéˆÜgÓA¢QŸ¾w¯Ss>ó©L‡ãĈÿÓÿåÿñÿü¿ÿû¿ü?þ¿ÿÿ×ÿ_ÿ«Ÿç'üÄŸô“ÊOýi?ýgüüaø ñ'¤ŸBù õ'´ŸÐÂø‰ÏOÄ¿‰?1ýÄüËO¬?±ýÄþÇOz~RøIøÊô“òO*?©þ¤ö“úO?ùùÉá'ÇŸŒß˜rùÉõ'·ŸÜòø)ÏO ?%þ”ôSð@å§ÔŸÒ~Jÿ)ã§>?5üÔøSÓOÍ?Ï[jû©ý§ŽŸöü´ðÓâOK?-ÿ´òÓð:í§õŸ6~úóÓÃO?=ýôüÓËO¯?oÛúøÏÏ?#þŒô3òÏ(?£þŒö3p< ǃóxp NäÁ‘<8“‡òàT˃ÏÍcÃçxp<9ÏŽ‡ÇÓãñáü0Dž/>‡3 8Ä€S 8Æ€s 8È€“ 8Ê€³ ‰‚Àçpœçp 'p¤gp¨§p¬!SbøN6àhÎ6àpN7àxÎ7à€N8ŠŸÃ!œrÀ1œsÀAœtÀQœuÀa‡Ê;€Ïá¼<àÄŽ<àÌ=àÔŽ=àÜCãeÁçpôgpø§püç € ˆ tÞ*|RC€ ‰QÈ"@Òƒ×÷òˆG„<"ä!yDÈ#BòˆŸƒ<"ä!yDÈ#Bòˆ¼Ï¼ÐóFãs¼Ó¼Ô¼Õ¼Ö¼×¼ØG„<"ä¯>>yDÈ#BòˆG„<"ä!yÄLÁç yDÈ#BòˆG„<"ä!X¨Løä!yDÈ#BòˆG„<"ä+µŸƒ<"ä!yDÈ#BòˆG„ydÈ#CòÈG†<2ä‘! yäA§F¯·yÈ£@ò(G< äQ y”@÷‡ÏAò(G< äQ yÈ£@%ÒOâsG< äQ yÈ£@ò(GIt¨øäQ yÈ£@ò(G< äQ2=/>yÈ£@ò(ôÎtÏôÏtÐôÐÓEãstÒôÒtÓG< äQ yÈ£Túr|ò(G< äQ yÈ£@ò(NŸƒ< äQ yÈ£@ò(GyTÈ£Bò¨G…<*äQ! yÔÈÈŸƒ<*äQ! yTÈ£Bò¨G…y4È£A òhGƒ<äÑ y´ÈXŸƒ<äÑ y4È£A òhGƒytÈã/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâ/“øË$þ2‰¿Lâÿ?3‰ÿÅÿùÿöÿø÷õóûüù?×òú/Þgþ·ì?ÇùÎÿîŸõ±Þ×Çz[ÞËúØþ–÷Ÿõ±¶ÿ9Ocþwÿ'¯QÈó¿a}Œ—nþwý1u`þ7ïŸÓþXØ›ÿ[öï.û_•ýe¿ü¸ß ï7Èû ò~ƒýHy¿AÞoö¤ýèûKÓþxÚoöÄýûã~ƒ¸ß î7ˆûÙ×OrzòÞòÈòËäcû žýÏ~ƒg¿üõ~ƒg½Á3ÖŸuZûìöQî“Ý=O}‹`Kd hËkIoËr‹vKz ~]ƒ})öÙWfß uŸöíÚ—mß½}×ÅÜ×tßÚ}‰÷ž|ßö}ù·.lÕXвÕfkÑVª­cKã¶þmuÜÚ¹•u©îVä­×[Í·Ö/°-Â6Û^ló1mÉ6,ÛÎl³³­Ð²IÛBmƒµí×6g˸mS·-ß6„Û..+¹mæ6¡Û¢n»Ìí6¾ÛoÓ¼-õ4ÛÛ†o“¾-ü6øËüog°}ÃvÛs,?²½Êv2Ûçl´ÒvOÛ[mçµ}ÙòlÛÏm··½àvŠtøKâºÑqÝʸ.ÖRЏÄ—„â:å¸jI#®Çë7ÆýÏ–.ÉÿÎçŒK—âÒ¥¸ti‰2.]ŠK—âÒ¥¸ti}ÅÒ¥¸t).]ŠK—âþa=èÒ¥¸t).]Ú¿éR\º—.Å¥KëÅ¥KqéR\º—.í‡_º—.Å¥KqéÒúK—âÒ¥¸t).]Ú/¾t).]ŠK—âÒ¥¸ÿj=èÒ¥´t)-]Z§––.¥¥KiéRZº´®~Z·=­ ›Ö¥KëÞÌGKKz)îŸæƒ¦uKmÒzš´¿pÿáÒ¥%¯´t)-]JK—ÒÒ¥ý¹¥KiéRZº”–.-a§¥K©ìŸÖƒ.]Z³t)-]JK—ÒÒ¥uQÒÒ¥´t)-]JK—ö¶ýŸõ K—ÒÒ¥uËÒÒ¥´t)-]JK—öë-]JK—ÒÒ¥´tiþ¿¥KyéR^º”—.­“ÉK—òÒ¥¼t)/]Z÷;/]ÊK—òÒ¥¼´(ïÿÏ™×uÌëJåu+–rä%›¼Ž7¯#Êë-ׯڿk|éR^º$?¬]º”—.å¥KK yéR^º”—.å¥Kû›–.å¥KyéR^º´nC^º”—.å¥KyéÒzŒ¥KyéRîû×ׯï[º”—.å¥KyéÒ~‡¥KyéRYºT–.­kX–.•¥KeéRYº´ ,]*K—ÊÒ¥²tiýÑÒ¥²t©,]*K—Öá•¥KeéRYºT–Ž,(릖uÙʺ1e }|YG_Öé•ue¿ÄzŽýUòÓzÐ¥Këß.]*K—ÊÒ¥²tizéRYºT–.•¥KKæ¥íÿ¬]ºT–.í_µt©,]*K—ÊÒ¥uaÊÒ¥²t©,]*K—øuéR]ºT—.Õ¥Kë®Õ¥KuéR]ºT—.­—¬K—êÒ¥ºt©.]ªûçsÖ¥KuéR]º´N¨.]ªK—êÒ¥ºti=ÌÒ¥ºt©.õ©yÿÝúa=èºJu]‡º$ºT¤®s­ëhê~¿ýˆë›ö—.Õ¥KuéÒþ³¥KuéR]ºT—.­ÿ{éR]ºT—.Õ¥Kûû–.Õ¥KuéR]ºT÷_­]ºÔ–.µ¥KëaÚÒ¥¶t©-]jK—ÖjK—ÚÒ¥¶t©-]ZÿhéR[ºÔ–.µ¥Kë6¶¥KméR[ºÔ–.­chK—ÚÒ¥¶t©-]ZW¹-]jK—ÚÒ¥¶tia[ºÔÊþi=èºàëÛ×5k릴%í¶¶Î¿­ckûÍ÷ÓïXß!ÿYºt©-]ZÂkK—ÚÒ¥¶t©-]ÚÿjéR[ºÔ–.µ¥Kü?ûÒ¥¾t©/]êK—Ö/ìK—úÒ¥¾t©/]Zצ/]êK—úÒ¥¾t©ïÿÏÙ—.õ¥K}éÒºs}éR_ºÔ—.õ¥KûÖïZºÔ—.õ¥K}ÿ°téR_ºÔ—.­sêK—úÒ¥¾t©/]Z—½/]êKoúºû}]ßuÈ}]¢¾îA_²ìKëÓûPö{ígÛ_¿?±téR_ºÔ—.É_­]º4–.¥KKºcéÒXº4–.¥Kë{ÇÒ¥±ti,]K—Ö×.]K—ÆÒ¥±ti=ÓXº4–.¥KcéÒºWcéÒXº4–.¥Kë…ÆÒ¥±ti,]K—Ö¥K—FÙ?­]º´~ÿÒ¥±ti,]K—Ö…K—ÆÒ¥±ti,]ZG9ÚþÏzÐuµÇºKƺ#c‰y,Q}Úë_íwÞ½5ÿuø «òVå!¬ÊCX•‡0+aUª<„Uy«òþÙÿxv¦Wå!¬ÊCX•‡0+aUª<„Uy«òþÙ¿™šVå!¬ÊCX•‡ðÏúX^¿+¯çõ y=èþa=hYZÖƒ–õ ë÷—õ e=h]Z×#®oªëƒu=h]ÚÖ¬?këAÛzж´­ÿw_Ú׃öõl}}ýú¾¾t¬ëAÇzÐýWëAÇ|P© þ•ÿÊ¿åß¿òï_ù÷¯üûWþý+ÿþ•ÿÊ¿åßõ?åß¿òïÏ_ù÷¯üûWþý+ÿþ•ÿÊ¿åß¿òï_ù÷¯üûWþý+ÿþ•þÊ¿åß¿òïúá¯üûWþýù+ÿþ•ÿÊ¿åߟ¿òï_ù÷¯ü;ÿæ¯üûWþýù+ÿþ•ÿÊ¿åß¿òï_ù÷¯üûWþý+ÿþü•ÿÊ¿åßù¿òï_ù÷ç¯üûWþý+ÿþ•þÊ¿åß¿òï_ù÷ç¯üûWþý+ÿþÿ¬üû¿ø_ÿïÂÿ ?$œZ@8þýeé)"Sƒ©G@²þ 1u!„”æÏÉ6ŒJÅóÊ?@ê/òÔõßÂø%"ocÿ äY°ƒ±VüœX®Âeú„Ö¿ÈðB¸ýµÍ¿L) pó¯#=&Ôörþœ™1"KA’1?Ÿè:Ôõu‰fªøŒõû2Åë€G~Ì]SŒòȈŠÚ8²õ ©z¡›hu?‚ùu A~GĽ|Ä _ Ú®L˜ÿ"3ÏF\¶ßb@‹j)m?%ÄB~$×ûµ ¾®A|ÊÌ×F€c)CþÁÓ‘õÃN„ý3âØ›> 0Œ`Ô?`ú†/ìë¤êL¨<ë…> ×/&ÔJ…\A„‹»ÑèËæÏö9dWò× ÷† d+‹<4Î-#Ø®M>QKŽðg¿EiÐDmÿ ¨1Ò1!àï;±ñäö}lˆs#Þ<¼ ’ø¦Opß6zZiöõÁq\ŠZ.|¬2ŽvUñy`ùÊ#o…ì v÷ñó"àpíì¸Þ…ׯÈKànÿ>&(m­ çC—cu·ÙþÊ -HYÎÝkù£‰$ > >_µü>jck¬èœÒZÙuD¡0•1ç¸ ¾‰%âÏ»åì35 Ç‚“{ô‘¾vgtýƒË„Ûë‘X£Jøƒ}°…Nÿ¤d1ù·ÙÀ3 ÊäÆÞÒ·?[ãWpÿpFù™Æ_Pb$xîùšS‹oÑð`ÌZiû%ðO24 òŽòVÌÊpËG’û„§lMnhýgºÈ&ÈuẢÃì)‰ìÊÃÐC_éÀȈÇUÀ×µ·5…mD¢ø/Ö3Cïq®ÙÆØ–&<¬}A÷ÿƒì2smè\—O@T! ¹È˜ „txÈg+~\u‚·‚«×áÙ†~Ãíüó1(bîz#ïsºýÐ|û:ž¼‡ÿ²0Ñp§51QÆ;•f“m ¬;ÍìX””úˆ, çélùúéÇ:lz"ÜINþ6q^3#ÎßQäïEsÜ:àg¸¯±h ­jûJ:oi+1™wÿûûÆz-ìÈ”Z5šcNT¶¨,Í[Á™õÂ-¨3»î‹µ‰e?ÑÜ$ ¹] µ&–>WÍð-kÏ1…‰†RˆÞY÷Z!4„pUNíuÿ®Š±˜eV¼@‹Ê iËŒõ‚óžÖ";)þZïy¿PòJë‚E<3YH"åÐðƈA‡ƽZ»ðkßÒjµ÷¿¸<‚Üý•Æ[¶~.[9ã…GÂ#§yL6*²/‰0 €<8·OGW™ ±†“Elw¸ËÆ+=xDIÞ¦.;õÂt<"Jû¶×8öþOBrWKH’XܶŒ‹•úÄ¡±ì7W¶ }¨ˆô½2­ß_à{÷ñR¸9paÉC ,1É,V–êc@&ñ­Ÿ&? fí1 Ô¿½ñö÷Uªl$Q›Žú]¡Î²ÜZ[6ɦsïàuš¨ÊÂCÞ?göij+¥Ë‘½S>~c 2òSö¿Ïˆ ð<'¨36/³¥Êº¦zÙ’"Û?áËŸ­DËøõ€³¨¬ÐîGâóÁFe¼Ó&„•Ñ<-ë¿;öxŸIþH1­‘srNì¸'ÖßõfÜñŠ ˜™&„c•äA+ó¸<™8û[v‘Å ¼gLjí]ºç¿.ªq7v°0ƒ~vÆõáönSq+òJp. töUp­ÛØjfÜb…÷‡ˆjzºÏSûHåY·j°Š×"ë*îN¦Oëzÿ{áXkæ-¶½° ¸e°]s‡ø­–ßN¢À;Á€7‰7îÏ›Cqr©¸@ j²^Û[±‹Z0&éQ‹lŸÐe7wPå=1q 0ã'yÇ+Þ•ÿZu‡:‡™ß?ù?DŠþ¤Ý—ÚŒ>°Ñ ƒ¶4mÂn-‚UÅÛÌÏ´ðN5¾‚ì+%ÀN ˆjw gãchþ Â½j*{Eõ1ÈýÈ8¼ 'Úýði<<Á§»M„™†íò‰ °”Ê>VDRX5Z6© T¦e¸ózÌÓm‡)8ŸR|Å(p½%4­cŒo\cÐ hÔ.²Pù ¤ŸZ¸o¤kfé¸E8Y­K¼Ë?¶Tˆ,€9«¥©;¹êG®vrçªVVóî(š œ<‚ÔFîG´¿Ò}£M$m-ЩD$†OPþƒ‘þ:Z$;ȂĢA6Tï" ôÖúd. ûx>kš¿Õ^{‰l…Æ–"œ[Ä)ŒÆ@óÛ ºؾ¦½®žmÍK  Æ?—ÿFZ]d% __b Q•šÑÛ44é/¼'BŽÖÔ¿2Íd½Oú±eVkw+Z0ÛE¯`FìM ™zÄ€8 ‡–޹2nëbm"è*„¸ƒ8Ø•–×ÉV7ð}#ˆ{¹øßÂè$ø$ÂTøluÙ]÷ž¶^Dl)â±îª¢-e¸)²•7fg¹/ð¡™ýUž$3)ÄJWª«;ºüt!z%Œ$ýc_løôë:,¶Öa3!ë}*u[,ó?D¬°ÿù³;Õ8!‘ÒüÔsãŽlÜŠ<<}Ò–Ü áUzÝMÍá£1«ƒZŠT{L‘˺\ŸÝf£²ÈÏzuþ)¯ ö”`mXêkTW̳µ ŸuÜÑ–õvÖ>[ׄ—„]Q_H+ŸŸqtê©nëyk°7T6ÿ°u:´qô®¡×[ÔS?ã3Mî*äÎ&U—b—ÁÆ}Vâ+…6a¼ïŽ36åþ¯.ÄGB6ô¶ eoF"ú•ò±k÷3˜|â#M¾cX6ÂþXÒÎNÆúj—²¹“‰©|{õ6@¦QéªV-lÃ¥4ÿß´¬ï»d“ÛбÕÚûWú€ê×>³ mÏNÍh¢ã„fo· ,Ê?ZbKâù®pÈónuøB̈¢UR_¨´ÝÉû5æAâ®!œ~Ä]š(ÌÕê3‡5kB¶ôŸ6&·ZôßdÚ_8¸Ìú˜± ÒЦp¥˜¥ôçólí9ý7¦Ç­Ý‘‘•ŒÃdØ(ÂÇ6~wµ}oGl ñ_?ðÑm¼3ŸÌÁЬuV›Åøt‰¾ñU€±H•èA”¶ui±«™:Î"ÔH˶¢î0Ù-\(òk-™B±ÏÛ¼ö-¦ê¶ ¥l¿Ã6 l×éÆua·).v%t;ÉÝÊg_Ù¤Ó¶Fgã{MmVá* þ ïfà+Eßµµ{H™ŒÎ¢m/È•<ã }.ýkSÛ_ß¡°ñ.¢§•¬5¼Ë}{wy£Ì¼¶÷ΉíV—¢ÂU@µr$•ËýH¿.‚µáš5ÒmNeàö÷Ï›ê‹Nw,Ƽ”­/ûÆ‘…Ïÿúÿ&Û ç‚(£¤Ðxw³ì,MøØâw.ƒÏ; "Ñ^÷àŠoX…þhêZÔä uñõ«™€»îíš=þ+¾³ÿ<»?`®èçÝ+øˆ¶î€*€D%!A~ÃåKì±|Lîv»È·9Õp‡%b¼C ¸+À¾ G>B’+"emÊ*¶/ëÝJê`6aºòjgMÄz[à5–ÏeÞî >àªöp;;—cc\vûo/†1",ç‘™uEÛ ¸-[áL2c„¦ßà & ü#5vÍü;²ÖÕ>x¨å×·Í^Û´±õĘÀº-™-Ü»›aõɹS´™´µ¶EúUÏ´5RS vù“Ó9«a}»këxX™Iðc7W=ÀÆñ…Ì><ûGõ­³6AsõñÂ]ÈäëôÛ9ÞZº<®ûêÙ¸Ï ÷£fn28û;í7ÚÇ—«­Vº©›»æî¦Lè:87‹˜.Ÿ¼5Ãö±Œ ìžæ3…_{î&›úuÀ¹ðJJÝeôã„¥bÊ6¾¡bŽÔ¾6îÅ @£8g®ß˜ñ àSrýþWJ¶Mwµ\ áS_‡ï±¡çöáNC\Ü‚<¢Ãž¾kg¹àï+JºÃ9ÃØñ=±bÍw,wñ½H·ÄTÒì~!ŒïÉFWû+ AQYë?w©ÚÖX]ÖÎL¹âùŒÐ@“œypèHƒJ°Þâ#u€.à¡o:ÖÃßÓN…øžgFœr%]jpç[•aS¶J2!ÖûônÑþì'DÍ(¤‹©=^À´ï\ÁÄ´Òì3;늃C×ϯm3órà¶“!I•ݸ`[7õPI[ôóé_Vèï»”ÚÂ3lo°ÿ}×=ƒuˆö+䲈.ŸLZmÿoSŶ]ëJ%NìnýYUöåc.âÂs›‚øØÂš$k=lIû×öW\¹ÄÞã¯äÑ oÙÙüóe‚×&‹›Âënc[UŽsáÊ}w¯iÔÙ½•5#.æW8÷î¡ ÿíäíÆF]ñ6ÕD{á½:T:|¾×Žï¶:öÑ€2¨÷Wåòk`ÀÀD¬Å°˜—‡zõ´S”)ðñ Ææ”IdÆÒÊyÊkrÜŸ€[«uçm— ç,®óÈÓ¬øì`‚ív–ÉÑXËÖï/üµeø_‹·ý3 G3†ëâC×øuÀއ01‡‰{?€·)ôãCÎåÜ0 ¶x¾äÔô¥<]¸Zº=7›cØâ¸‹ƒ>òƒÛ¹ôÀS,Û§1¶ºèðÜÞ!åþxˆ;=00£_G¨`óÅÿV²ÈÚ§Ùö:e’…áŸ-:$’ÁG'² AöÏ%´_y··>¦(ê19í™Ì‚¢)Mø•ÃV~¤]®{|Ä?ŸÁ™A®Ún&ì`…ÑÊEG `Ãw½Âj56#N€O8Þg2íˆÊú1ycÚÐ.k²`¯¯Üùèø§Áu#-Ò9ר(«Nt¿µÇŽÜöÂ*³5aŽðÈšQûоéÊ"kÚH¾(~¬UµL>'·]VËÕbæú]Cçù}ÃalÄãò0Ôü´›±šQ0¿½«uä®2PhED”á?„6éúðw˜æ¦ñ?î†sÈŽXð”çÚÇÖ™ÝØ®#ÄrU[³57Ð?´²}–ßÊøk+\yÝùa‡O²²E½7òwÂÏ?öÉïaQ—|d(™8¡Ñ©Ðrü X3ÊãÉM¬¾ }.{´`1"nÊÒL¢»òû½Êu=\àèf>f®M|뜻§¾±ãÌ·#väd{ßRÁ=ëò8÷+¾šP`ç’ä`‚v6ɨ¿gÔ3e4㸼ÛeÉÖ»9ë»f눰>°&Äy>BV׎pâ6)ÓÁ¦Hæ²â¯Æè=h}®¥Õqµcë ­[²#«.e¶ˆköliÐ~¡›ôôÊlR7Bu…õžÊí½m’~8YÓ°ϸ?¦aïb‰óÒ>o¸sDÓâwZœ¥•îèÐ9àN!À>YêUâólP¾ey×1lžñÁ¬âðÁ.ô5™¬Ë]|ëÊÎ…ÜÞìŠvÏ;[ø/àÒÕáwç‚eƒRµ—õcìÌ ßÌœNÃáˆ`¹ŽU½wÎâ1]Æyº$¦‘Ë=&üƒï¢öÇœ²±–~ÜôކíÐíTÂ"¸Þ³™!t(,GQbËÎF»†T&³w!ͽ_8¾éÒK‚zÛkOºf!?êj÷ÁØþ±õà^6ÙÑÅÜБ.>ŒV¾ˆžþgZ Ë·õ}™c»ë,® kOÁ<¿ê¶7—¦Õ3oQï´çƒÀäî&Úðß5 ,ƒ–Ëì˜ìcŽöŽÞ-dÃV§ï Õ½}¹òwCÚ>¿ú]qÂrò8ð°‹(? ë7}Iãöö]N)ÐVm “ªt]•Q­[1}ÌâÀ ð`ª®·0L2øtsVÆŒ *LÎâÊþ³ÛÚäþã­|± t=¬ 3Gö1kr÷é>‰L¤0¸¦Ÿ"¨ËÅÝ‹~Ìñ¸±»¸âJÿÖ&9¨’#2JiE_ÃÝUPÇ^n‹¹Î–;ð›ÓOçP,bõ¿…i>_û"°PxÇbǪÜÈÞ§Ùo¨\7‡âp“7É•#¡üÀ¡›˜Ú“‹Ý>Ç™7aÇ7ýÔ¯KØÇ?4[©v7˜|w”.ÂMÜx7—+ Ar³>ôLmdpÍ Œ]øÓÓ.“u GIeÓz?¬åý/,¢ò¤fªë•is;”‚1¶•Jë0[ìxÛ r!¨á0p3‡(œS vŒÕžÇÙÄÂü‘~+Á=•c…hCtGÑäàqóC~Ø";ï|‹Øàœí…øV¨±,Ío ?¨1Éφä*/üw¦¼Á~^V~CårHÄ"á?Ü|G[fo¾ÅºŠÊmÇÝ.ù˜x¹è l‰Ã\Ö}~ÄãF½Í˜Íöì0°£µð„½wTñ£²Ü­l€VÎÔ:˜¥3÷øíÔÝaV¼‘ºßÃ-[ûXëâHn­úX2qƒ7\ðú?³Í÷¾;ˆaúª.Ñø ÈµüøwâѸSˆe¹cÈWaqO¶¨äJ%nÒaÊ ×#víü—gÔ° ›TÀ¶7>x™- à p½ÕÓ3§¸©Pgù.ãüAýkúH n»íŠˆò™z³ÜYw¥Î“‡ß7Ö?Š1vpãN½œæºC±3=®ct?qã†Qüúvî·]pÍ*÷"1 m4Q¹ð´sç¦&Ú–â†D|˜·{ˆÎV’m¦þÁn|[/7éín¦…Ž#ÁKÀ.1:$Ú'ypô­ž>£þŸwX8ŽÁ;e´Õ=³9o¯à&Ø<À`ã]Ïň¡çlŠÉU?V\FÁbé]—«p<“›¤é°Lý¨ÊàLp‡šd}Î[Ö©5Ž•Ï‚ÓﺠUL‹Ør¬2®üä-Ž0ñ΄|·Ã\üê2Çôwß{W:² ‡ÚƒAãxíÛJ…`bšwꀷ€­Ñ´ŽÂ²4ºPÔº&{’–ÈÕýlÆÕGl¨ÃŸ÷Qj|á´n#çZ€•…|RͤÿŽû¬Ó¥öÞšã:ÊÖ®} ²\çà’ÎÆÇiå,L35k/>,³Ù}çʾæ ;dôÇ Êçv…áe9·ýø`u4vеð<#÷)!øº»Ÿe¹Áfn<Êf;ž(în×;dÛtð8À¢ mý`©âr¼¶ÕnÑm7NÄ×Ïmvd}ÐBvÜÜ¥Á%»=ÎyÛ¶ …XT­·;º +tw¶ñ±´­?Ÿ»wa›ñ_=æ+÷ë”ìe2…¼ÔÙÁŒn4 5càh‹<ÓÍýö±AÏ,±Ò´oåèyÝô¨§Ö·|’7â¶Grç ˆÁ áØN[ä®9f.‡?p͵,¾;K}ãt¬¤lÞVÙ>æ™Lvê%~NçŽvlÿÈmä1¾Ï™ËÚn»9ê.ŠYJ²zS;lÿ„¹ .¿@Ì&A¾ï§E½ÚXÈ‚5m ïbH[ðdÒ÷uúØSäð Ümb¿ב ¹¦¶cö¶…½{bÆ•y>lî•Çäùn$׳X^²qO[7)¢µ jôQ¿ë/~xO¦}ƒú¸»”`ﳫØ!ŸáÇ‘÷?òÖû…ºvIÃ]²q»ë~&ï ï»T·úX}GÕw×ý$ízC€à3¼ðfv2×c7]á4îªì¾T?‘vˆ]{—H­Ôü¶i³”Ç:r+ø°\""Ã’7ÙSÿ‡?ËÎ6:`÷ÖÌøö–©#8¨üÊÈ"ˆï0ËføAzn £0¸|Œ ?æî\£þN¨paq{à%ƒ¸ò;_²¾¿!\ÁóÃŒü«à[É÷…H|lb¾#,ûïmËÍv=‰ä•'øzÒÍk)úÜĹ©É{fî›Ñ¡’}ÄéÑK¶Þy¿¡)>ÂËÖkjfaŒI¶m/ò‘"#Z ²ÌŸ?[ŰÇd×`ûrªÇßfÖíËu¸v‡.ô¸ÛPÛ•êŽ÷Òzq[F±]{¬­èƒ­Û½ùÞ¯™¡srs#m7<ÙSƒÞup™w ”õ,¤°w{È%H‹”ï©43÷Á¥à@¢7Q•®Œ=\öú®…þ|¹s·Çzð¯4ñžû÷›~ìØÿˆÛR©u%VÔnÖõ#*¹w·`kM=À6 ¬íucL 3·þÄëmiñÃTÙ¶zWûûú5Ùï!Э˜žÿãný|mÞeêhÛÜXö»è wÑÞ¨µu޵ÃÞ¬‘Z7îiél¬S0›(}Ð`6CÚ<ýF)ÛBó‡ 0Þ×Úgß¿ëà{Ãêâ»ÅT¶zal™ó<³p{7ìã’SÛ°ÿ Î½´üƒCÿª7ø%†ŒÏ¯)¾ÑnFС½ÿ+?œ'Ô²jþ±Bún;ú¿,ã&SsÿàcÙØ7ë }Šm.åAßíP?˜8À•¼}À¿ï´ûƒ;pµhÇÅáë%vÞ€Ìs ÇLåŠD.а9ÅÃüm‘>(Fí öØ9T[‚#Áƒ;fÿþ íÿsÿØväí|™kú»1&öºy¶¶ÛWZÕG‹Ä&î`Ó,剙<4hX¥¿»¶üöiTÉ!Þ? ¤–Üàn?i¢x7<î®Í¸-¿˜w, @e˜Ù(û’/úÞØÕ’·×Öî‡ôdÛ]|»ÖE™†ÈÛx®]Û©0¿Ó/µ´3¶±eËlnƒ·ë­Ùö¹óŽÅm 5e‹^8Ë[{¥)e»ÜÆ%d÷õµ‘¦Ñf7`ÿÀfœÜ f–ÏgÚwdù¨^ù-=礋=Mšìæº\-ÝÙ~ð"Ü3vúÄ×oÑ[;è0»9wgÕ¢íRT—ÕZ¬Ýçö$ì†-4;:@ãcý^ºÛÒÙõœ®qäÚ•·$]¡ñ£öm·Ãß’öûîR”ë^»(ÑÅì¶>a‹¼®Kbº[.jp+›XÓfÁžÚÚhÌmŸ¿Äíç±³ªæ>ñc\–écCÙj|lxÍ,ìø: ¤XI×3…`IæüH蕸Jö‡·¿ÓR+¼|££a5¢#}ùž×ðð;ùú_ª€îÛ·í^[KLgI\ݘéÍÑå7Ý:ŽøÛ”X-²<¿ŽìŽ€lfõQè¼#ç´È fXø…•‹»6Ýs5b;0@rÇòÀz¦]Âà_…ÿˆ8ý ¸³w1¸mb|08Û©u»¤ì~Â’ÒÇõ½±$5®º`êŽõ# v¼ÆÀAãc”zàïv³ÖMµa]¾gJ4Q®Í”žÏò©ùÕ‹ÁLSî´è moÞ!žðýn32õÑ•¨¸ÐV²Z7c`ŽúèƒË^"CfæÆêœ*ÙZ6.<®Kä £‰4Mî9º»‹i©1lÂàð¶Ñôí©m™äcqŽéß¹ÈöÃù;Ü™)®9ÀkƒMx8Y©kÙM)öcÚ ×¡^îßl?¶ïôѹsRßúr˜ï;ötdI¥ìIYò±ÎÉ9= U¶9¬[(ã¾xÒk›µž÷ò%?%kjs®Üà·ÔÜžÐÊÎO"yr­»¼g«sŽrÄhÙtʨL^8Óù?²z»fúÜ­wí3pÚ5Þ³Ùe´—U³ßÇê¦{PóÓØß« Ø›½i±lz†õ¿2ÿÚº·›o²éµ5|¶%a¥mÝ¢Ë\OÃ<’Af|ì­Û­~×IÝŽX éD$?'­èõ›LΆZR{sæ d³[‚wÏøQˆq,=vWTeQ…Ñ‚<Ã÷u¼Î®ëç×͘ßÙ –ÿ¿ÜV¿ÚÞtJ]·Âm7uõNßÝ]ý但| Œ-tÇbn‡÷1žw»9Ÿjc$[!µ¸e›’zt·ÖÓmvÌó~NÅÕŒÏuÒ"‡qw܆hºŒ@! 4û3F¶!ój}Lû¸ïÇ,äÝEpA¯//GîÙ@¯ö·ƒþ} :MÑÆ0.ÒC"mõÙ€¹>ÖʛޠÛl,Ÿ-`Ô9o#áñ=&ÌrŒ9ÖÔY°ÖÇlG1ëlĪûrƒ-r1×Çú»Üî´ó×ÿ3½G븞§¬7à_ÌŽÁÆ––¨Â7Ÿwï¼›}ö;¤LùóÌýÎÛÿNeeÊÆ_•™÷½wð‡˜¸+²_|wõkï·Aܸ5z·¸¬ËiŒôTíÒÈô»ñì΄á™$dønïïøý\³™°a ­³a®Àå)›î’ÉG“Ó"uoé_ê®±}@询ž»Å~˜Ú¸m„°ÈHŠáR·Å×üÁ/ÿ•öØ2žÀï`‡þçœ Jä` ‘÷¸r› ˆ>2›”Ûó·ý—™ —ò8P´_Ýá’^ _²‹•™á˰Ó-–àËqà8þcGaã@÷ªi f-°Ùj·=—MÁF÷ÿëIþ7–Ö_—U5(JçF„“ß_ñ1Âh#{ÓùôëÛ rÚUÜì²PW7ñ|7~ÖÕØ>Ø«ì¶4³ˆÌ¹š…ƒõ5Ø–psëHÜ$‘Vsßù|ƒÚñÏ/fŒ¡¨:“_ƒm®ždµ…,#ô}®î5L¬ìŠ>Î=ºq@ë8Üs»ÉS;îúQ½wË-<ž€5è\¾ÿÉë—%S·  ·.Â,iú˜,q<𦯿•]?Ç@V¼%·xÝÒ‹0NÛ´ûÜ@à€`·ÓÚËWX8ß}í> ‡÷3yšMS9·*ç°Iüä×HY@–[3ìÈCm]ÛBÒ-’Ñ‘ÝÅ¿]ÍPÊß°É/Kãl‘C^½ƒDCw)ÜSdݳŦmM¥µ©ôAlvÇÁ.(u`Û×ñT4sMÁYH«”û5 nÞð.”~ì+¸"FÛœ¶” –ç\zö1`az—…OðÌZΧFºpϵ¦=Y¾á-ú k5ÍM‡®jйläéQÜm\[ÌqÕ"Woty­+ÖÚ âXõ?xÿMÆg‰ |¾ ש–õ5‡myÑlÿÑ”.Ü":ß57÷ðÃ[ßø{W2v…O³áÖMö{fÊÕ„ÆcÙ³øïWÆ' ¯9ÐÝ·çþØEk ÿŽ2ÜN­š¥.»ðÁkhCdËI;Ÿ.ÚU[ø¨»Þ¥ÿÅÿáÿ¿ áÅܘ“VcÙž¹7<º¹Ú÷-èpsøÚ¡M1n/ìë-´1]þäê¬0ù™A¢Ï¬PxØ!È«õXne© g¸³q(";øtÍ¥a^a«žy­Ï Ô®"íA@@Ä?S¤ó—"ˆÆi…¢O]) ýDŸöç)«ÍrMãB·þ=Upté“å™áçЇl­sÂ;¨'xà¬à”{¡v¬æßj÷³èËÍmòŒh!•Úä×¶ë‰*«›Ln,Aø!¬xp³§µ¶Ü§@cëƒH““t„%Y{e·çY¯ˆÇŽ£~šüB\æ'æÑ4áA^H _×’ê³öïJ*#ñ0¶2­lå¼FðÈ]–öñ7"°Jì­ŸÌ!´¿<ò€sÈÿDZfÐó:Uc;.<¢øg~}™õÂ÷¿ŸÈfdP¥'}£JÞrܘÃB{@œ»\ièÌþóè<&T÷G¾éS,¾cFëw¶0ºHñ'\M‹ŸD8vT!T¹×6N˜vÕ}à=‚èi?Ëø.îAdC8öºß®¿r zCÈwö‘P;N¤AòP°»øëQ¤÷ü@=¸{Q**pƒâj““ÎDºçgü+É9®—"˜ÑÁˆ$GAïA&/äÐ"‡ÜØåˆò„°Ú­nS¾î?ÂÂÔûÙ×E UV«|b âYâ]³Aˆ‰ ëß²Æó»oñ»‹¾ÂªBNâ?9æslÒ¥A„Œ_PO-Üñ“Va¾‚‡ˆ»ºc8T¢5˜•ìƒìL¶KT<Ì +y’ƒÐèØª ÿ#QHœbÒS@<àD‡Zö€Wª=n—ÍS€uƒåšÞaŪ·§=Umêý[ɳÌp©w T`ùf&&:6˜-¦u*ËìB>›ƒÛ;ê}ß7_‡+Ô£žÐh& a ø· fæQ»Y9êýQÑ=¡'­Æu†,JÐÀÓüânºE¤Ry_ÂÀ$¹—}TD!Á»ÄµŸ#-ˆlY ‚XÆ#X].M›¾¾-!keÈTÿˆAl‹ªR`ãæ „‚¾/»Ç¸+އ¥m ³^E˜Æ¿;Ÿ¢i‡rILü°@w`"ˆøZ¢¸0ª 2tÁ;< ôŽÁãõTÄÀj!±¬Z˜&fª£Rq|·õ7óNâß">êÂÛ0`Œè/$†¨ Ȫ~–‰ÂvpœÁ$uɳHÅ1ˆ³$œe òïŠ~K£Æ´]Ìêÿpž»äßP„­]çL¶‘÷ï/¬ÇA^riøxÏ y‡þÔôôóúÃ`“w1üOb-;cshÜyD0¿Še½3dáÈbÕ}°$—½¹bìëá„’^)<Cd9/.™€£êªÓxßÎñaù}ÓØgå°º­7¬ÖÄÇÔ©teõòv-q¥hÈÍq'³ø,›ÏgÔ@§5Âc£|ÈýŒsXw'K„û5x=äï#N£Ã¦‰xM$H0W9°öóâŸ"¤ëUìú]õ˜*õ°„tF2c™0¶Õ0#iz+QrkF`±Ù_Ú)¹Œš-Ä0Ý›&YŒîÓ2×Bd‚ Q.дÑj´ã"ÄEè ?¿­žÍêE>c—ìALgå@¢ˆA^Á°¦!êG ~§ÀŒñY éºP ™Pâ?8R8û'. ÚkÌê#ÇÁ@ñÚ.l\Ù¢Æ#öBe\–\‡Îý±Ä’Ú*J¥¿Ø§D=òl~ç!ÖêÍ,n4D¹h.ÎÜ^Xî/ hÜö H§»–M ÆOTJüQ›žæ˜¸z­§?9ó[÷yY¯†Ãkô*¢Ð ºÉÆŸÈ£ÍJì*ïÏÌp°¬å©“ç($+œeSMªá㇜å 6bß5绊…­ _Ô`ÔY艎rá8J§ºÕg0-Y¶„ƒJÚÒ.÷ðÏ«Hˆ”P›„0öº³.ʯ¿’‹òO‚5I!eŰӘ–.5J„a`8vrÜ»h@¯K èkŹ᠞…8˜µ¨Q‘–r¿$R¶ª’ $n¥±—ÂÝL$æ¥5j5ÿà]N˾$i³ "bé:Sß±DÌpâxǨ+ŽˆƒQÐÕçì£Â³ Qû»TàR †nŽ`º}$wèbsqj>¨R§*ÌžjÔZR\.•‹Àµãp&Y4÷¾ì!Áï!ÙŠûbtËÙTÚšPr ºXÖ»EXzÒ¬˜cÓ[¸úõPij™ž2ÎRwÔÔ˜uF“]¬0 #¡U ½‘‹Àt5Spì+ˆÖãÁ û¤úõŒcð²êß©¨«áôñ®DYh5ö²[ôrðú ž*« J-µ ÈA,¢†ÊéiÓ«l?6 A‡S¬U‹'‘«9ðµbØ!¾¢ ìXŸZªÏ¸;³Ù%o\æ0ƒ¾!“À–kTbŠ·!wÝ ÇKŠP¨j£°D Žˆ&|¡BE爵­ºKGËš’šHöakb“@1r±?YÞ/A<ˆkQ $3È-´TÔâw3a‡GyõÂLí»Z |UU?‡Ë…е´v¿N& ŒäQHb¦ò©Ýxxº ÄIåóiebk3içìê9™D4XPÙã0`Í¢^ÇÙ^|$Mu}|^ž½’§ILÏ |;kTˆI íœ 2š*m9Ï""LYË„È27zhLÞ¡NÏ£¡8'+›d·%H, #<êYChÒëäXÔƒ^aÙÛVIyÓñ—ééò8t&ôù2c«Œ¶JJ$S<­¯]–ÖWöS ™e‹Š2˜–¸71ΰL ƒ´­ýýÖéã穎I»&¨ÃùAœ)hTEŸÝšdÞ¶`þk£Ø™›#j#¶ó çJýÚ®ðu¦Yû 2ãjºDMîo òa߸ o!‘ˆ Ħ!i­û„½Œº«ÖCÙH„ ¿¡Y\sÒc Ђ¹6ÝB|!¨Iž]ÓA \‡ßû.®—ÀåMOR+7q#Ë]¿ko¾h»2$D#þ Ï€kC•…È&¡I`Ù O¥íSÖ±œÖ‰ük éRLK¾iKD þ:«Y* 3 {b—<ɲï ο°‹¤o/ü¯-æ²öñÓª©‡åŽuɫ鉂OØ@PŒ*gn÷A!¨DZ?އ½SÛªæKí!IŒt©åÑL‘©9‰RÑ>!‹ÕP“¨²=¥Ûä:&D™Cbp*ÚԣĿáÉ@ÈÚð¼.UÔÁ!hu®§ù.QGˆ‰îºþ>Am“6'^Éëjùez¥¼ï#ÂÜž§Úi=áÝ£^äC´#¯öÝË&W¾âÀO!%‰ƒmý6cïY™äFt«rÓ ©þRÙõ˜ „«ˆ-¨å¼kˆáÀ‚:áP°:+0hÓO+¯ñö)Zóa©zl÷5 Aí ?u¼þÈ5¨Ì_6¬r†š³+äV5¢ùp¯E$w¤jûöWM¶ø|ÊþlOó7öª"yßû©)%9ŽÌ¬ï´Ð‚‰÷‚µèÏIß}=›Œ°=1ÃM„t#Uîþë Ù=Yåxh‚ŒÕ„Ýf¾Ã ‚B*XËûëŠÙ‘º‹Ë)ݼÙ5H|øÌvÕ¹‡ÜYÐkŒ8jºdõ6ø&›'ˆ¥Œi 9üu7µ%½u·4…è Òô “|¿mÚæéÑíX”AˆÂÐ2Ë»h0“µgpEYæx‘ZK•×ÁÁl6$Y» ƒ˜Å"®ò#ı1Ÿ·ò—E ÿ'µŠp,û¦ªeΫª•ɇŒ­Å“À¿ó+ßCrÏfLV÷p§ãö Î+Æe©©]0nþ/LÌÎÒsÎBVÂ2ÅrqöÿFÛ#ð>ðélx)Â~-þ§Ì©X¢Ýݰ•²˜„ ˆ »Ù`_é#e¿ŠkTã9B¨è›‚³ŒýÔ¬‡ŽC–¤ØÖâÉÄJØuÔ✵å³TSZBz¦±¼ '¦ÞÈ.Ù\È-s‹¨µâ á"ù~‹-»Ã`‚Fà]àR¥ ËHE^ÜY¥,òþýˆ„ˆlÜ}[€¿õ#í Å×}'´ Ú’C(â.ïd‰Ç„/>úD…$e’ÔÚüŒcc2µöù³GšÞ*D+ƒ‚SîÿüÓÙ|©3…Ãw[BvÛð—¬kîG,Žšš ‰KCù;!¸½q®ÉÂxœAÜ™O'_ Û©šœLlæÈ”Ê–aõ>$>x¤¤s÷¢~mË©L_ÃKkX13H8{/˜ä§ÑÄ 0Ï<Þeê?„>qªº d Гªˆæw¶¸rÁD—þ|ª)ÝÍù^¼E9ƒ­‹kë 6¿4°ÎÎÐ5I™q#ôr¥.@‹ú1J¬wIÃÿˆ!¸ÎÈ{³å}É>‚–DD(ûÌ""¹bEIË“0yƒµV­ïÂ9ýÚHÎÃam$HA:¤‹ïÛœüqU{½Ú×»šóë`ìtBLµ$œ+¶Ý™±MŒ­$¯Bö6iÄËâW„&¢¸#z2åÁBÀûï.ƒ߈ˆt'Þ0Úȼ[ígU">0CEguŽCk”¯â„…D§°6…ÐM8îÚ^äo“b!N¶þèJH¶PçÒ6[‰OÌC“Os5x2nýqM7€gІF{ÿe(À¦Ç¿Ö¹üºƒ·ã6.·þ’|Ø2v‰–âÿ„o%ó¦ôÄïFº­_ð.ÞÉŸ×ÿ¤Aÿº‹Rw‡hšÊœ ã6$:¼--ÇΔ±\jÀ— fÜí½äò‹k²WßVg' Byz8 6˜¤Ù¡“ĹC W¯„»v<¿¯¦Žþhä‚’ÿ:¨ž…rÙž«QÓ\$ÄÏY’p5²œ ³åV‹ö¥=™E­›Aàñ¢zhrcþ¨u´«Æ;>ÂF±Êï‘Ûs±x}7áAÉ)^˜”m^Ü´ åFDkš°Ââ²€©ÊÛÿXõ¶èaè"×B Ü¿Á†Ú&J² ¸ÿµ•5éYdŽ;Ïÿµ6Ж»lmðö3Öž4¬¡Ë]¥-@p¨ Óî°uú_[Wÿý¨OÁ¢‰vÃÛhûï¾&gü|˜ÍüíAûÒ:ô=8.•i—âÜîï×NÜÃWŽ_ oüµ@ ¶ùÃųXÜ´Øœp”üÙN׆6ȶU_kºœCrEšEBS{:ƒl+˜e¶jx'I6.Øl^t•ÓïÒËaÅ!qÄ>ê-½{j³·Â¹Œƒh7\ g90{"Ñ{­ãx7•}ÅÑþDcBò£uZÜ–ÄvKØÁV,|Î^2Â9/“F«°¦,l†Ðd5EQà~Õ6sËú£qÝH‡G4èþõ®om†Åî”"{I]•üо `äÖ RéxàÝö›€¯/ŠË«ù?Ǥ g-gtìž#ð£ Dã@µÇÓ5“¹Uφ}.±™䑦ºý»tfÐ5Íçö¡Ä{–ÊÆ#\ Érùåïq…ãëûݱ¸Æ•kéX,§-Yà…E… ±.7Ô™]E»_;núkq&’C’kH©|¤ƒœ/Ç…ièÜe.ëé ãSÕ {¨„ó9•eê*¾a‰´àm¤CY”ú>[áÄàj _3kqI*~ž§sf=ïYN[¼¨0ŒrEôº½t•Ö¦ó±!\6Eΰù®¸‡pm&‹òûµÐ¤9çŠ++xõ_[f[䜼MÆÒmj’´Ø¢UØ»'û};øŽT-¸ŸgFÇPPŒ” ÝïˆÈÏI„ÌÝXOÓè•ÊÚ[Kz¸Ä®>‹žuD…ÿZïÎÀ­røüwÑIjIj ÖßœÙBbÅ*â6l…¤"0ö ¸mŒÃø¶F ŠœUÅï_[µü½†Ïüˆù‡“|Ãç‹Ã¶Øù ¶×ÎAB5Ãðƒd+ÏÙñ ›3Ë' u diè§µ;ÎÂû¡ÒÊä¯ €²c®‡Ä›…»O–K2yE˜róš€ ç]9€8Ø)Åpã rè]uä¥D+ ‚^ |gF÷ÔŒ³Y®ñeÚ‘D,‘—Qy$YbS>d^Yš .ù¢REvÜå¢X4õ/.Y³<q+gÏh ⳇº.…ïh‚rD¹œáäÉçíQ¾†Á°Qh,ÓiZCãUã™&?’€ lñˆq‡X¢v{mË;@èÂT³:«ÓÖ,݈sv‡;äöh7ô%Ó &œ‚&_¾ßDê¶ûl ðÖ¾|1/\0ER>â áë¶y°ùð\ÇÝÓM‹„°¡•`¿zH7I$øIË0ÆO×ÝÁmA›¦•Æ • ;`)êpÍkÚéÆá®–Σ×ûç‡4eJÅŒHO×5öeó¦æ8´ÚpU|~íPƒkW[@)daÃÞxý ¯uß]Œ¶Ó6T*2Jg-H@Á@Ð Ó âE6–ŽËI´]Mžg‚ràcäï è!#˜œÙ ²@#KH`‡(¿ÆÝ4JPp»ÝNz»gf[Go:W6´óqPBv¥GѲÚͰÀ¾)•ºq„L‘ªX[ª°ø¹»ómµÒÞP¶Òòö¬m½™yÐ÷ˆ„®æ½­œòÆ0M2)ãêl¶Om0ÊŒ ­Þ¥kÃ]q„Xr½!¼ö¼G m\ÊiǤ vBÈŸ¥óhû‚–ÅUÍìФmE ŽY?âzl*´ÚT„6EgÝÃ&Lºñݸקä‘9R*ãž2ÉN‘Ñ´¶ÐN;÷#¥4ÅÏ€ËͶEr¡âgÈ=–cÔv*‰³NE§H¢Ç ƒ¿W:i؈쥸»Å`^§(6iâ-iõ ßs.„ñÅWK«á‚öûâ–µ»ú‚jÛ·2HÌ |W'MÞ1²X¤wTP>:¶ëi±}žü"b‹ë{*¿ÿCZ¾S~u_´¾‹Î-¹š -S}€Ï3ÿuÓa–;°¡ \¸¤ƒ»5‚@ ¦Í}hϲØx ´Lfhdl›z–˜¹ *ŸÂÁÖ±è„SÍĦ…¶qμŲÐ$ö¬~Ž”ßÏs°8¡^Ô¦ß9. XîDLµ£<ï]¶¬ŸXQgŸ*JåmòûÎfÁºñEªpw™B‘{Rñ S'>V¾îB°:˱ Yc]¢cápqåm ç…1:7âÛ‚WmKŸUHÄC‡¯îñ'‡q÷©Gg"ÎHFÞˆ@C¢…÷ï¿Uœ]à€t2U­8à>&ÒiŠm»rOàÂñ,®Šù´Ä¶ i*6h…@ýBIÞQ«+ëi E¥­Q–`âéä¿ËzÓâ¼xBæðÓ뤆š“&vHîÓdºA²ŸúµAê¯= ß.˜e®¹Vý'ÆßXÀÊò BÁ<”E祤ùƒ`°§É-¾“z 8´¥nËTå%Á_ѪÖÒûãy¿Í¾A´àX^*¶_ä~¤ /CƤqÎåxèÌéLûÈ”ìðŒ½›þ^vgÃvöÜî î5¾Êá‰ZµOl+è%ƒ»ßN\þ¦æ±³>“´š*¢$w°ä‚Vçl.j9´lǼÁ pN>wýüe–©¶„äô¢øsæîý…òabƒ8³‰žÜL.rà'¨†cñã¬O3–QÜ¿R¿»˜õ:›”uÖ:·iºƒ*;µåÇhozf‘nÐ)^"G;r‹ã­ œGÓ(ï¦k±[Ç5ࣥujùüµ¾û›¶—mQ¡¿þÞßù–CµÞ,²ž»ÒDî F&Е«†ôûNð§–HŠ’}þ¡Î’ñ#prΑä´ùu3,9®l8"….Ædѳ¸ù¹ôûF™a-?ƒ0‹d½u­Ê½úž"ŠËÄਪÌJ³©…!Øeÿ{RÉàP¶‚@¦GxŸûÝ®ÜØ! ÓqnÆFC¶ÂabÙúw–2ÒÑXz ø}†²Ë¸™CìûÑu¶-â»Ynšl6Ú°Vçæi[J ’v §qûäSKhp»{Ø–bÔu\—Âí|ÂD ñ(2ÝfG Y«f¸Yuìfܳ7nàÐB·<Í[~ØÉ5=H‹Íí·Aû.7BÎ’ç·4‘WÊú†Bù xN> î!:КÝ~qÁuÅjÕ¯j¾íÚá9ß³¹óæ».êö×MÎq2iCžNf[!—JZÄb£ ä²%‡‰s#²ÂaM€új¹«Èö[#ÿkøk­l<%׿ 7mVåÛë6©˜]\4XªÿŒ@¹ª~}¨~¼mñ€Ô …;1†Ôö«¡idQæ‹1‘_i°u&óòV–<Ï‚ˆ †:ˆ[‹p#|•·üZû°™ïM³`i8ìP§u¶Rép§p|c¹]Dæ9O| =¸6 ®y3ÛìfiƒQwSZ!ºŽXû#è@CÓti=W#Ì1 ±DÓ~Ƶ$M²²¨n%xõˆ yLîu>'–žÇí83Jø±œ7ž_q,m'Ñ@ÐûÀ…èñ?¹ŽŠë÷®Èâ+§²S[Xá …®¡m'Ÿ]q…¶€¦öI„r˜´0‹-³ùµ£ý´ÓÓ_³¯/5žÿàæ¹ôÄšcL°ëÿ0æ#¾i–]ÿ°>˜Sü™j¯] CFe¹DÝX¢åõŸ°j[)µ°+?ÁtWݽ¶ßÍE–ðÄãül‰ ï^£m¢; ¬ë—Z2jÞgr1MVnvG{Õ¬ÅsE¥ö 'È®ˆB³d•:M‚ÉàÞ-?ž¦$N)3Þ–”˱žÛxèK´w‰øÎ¥‹ZðiÑ 3™Ut"ßž§t5´wÌå–o¸ Æܯ勲ÀÁc í¼e±=~=ùè¾Ý—î×s¶®“zâ .ß¼:¾QÂБeTZž‹Å„lý±Ïž­šäS{6V»¤Ã›CãÄdÇì¡{ŽoKÎq×"=Í×\†!–1s9Âù¡õ‚aÙÔÿOÄ ÷Œá¯¥÷us–n›ôžòVj¦Éà´Þn'U‘§<í‰6vcX¬ß`!+3˲þkˆ5<–µqy(ü:atOw[v*‹|ùš6I«E\9ç`hÒ“µlóø×™ÛØô;n´€ÿ-v3^u´9ó«©æÛ6zÖ`š]Ϧœ¹h™–Fý÷|ä¯e]üµ,¿n0†}Íȃé›ÿLƶآË-Äз0l‡Ë(Âh‹¿¾µj¸8îõù“Åç&~õXš»Çþ±²àmw ýcCòçDÆ›zÙæ6~¸Æ-K²3Pô•ÜÖ™”WÒ3üÚ‚æ¯%„¶}}ú)òiWÅÞ|´_=è›·ý‹ÏÎ"Úï†Ø¼uLˆ…îå×glÀèãæ‹±˜Z–Ù˜™t%xµà·»Bá\­#íst>Öµ$øÏ[ß#q_Ó.w×À‡O¾1fÁËW%“¸Aì†ɳ6Üefo¾Û©òƵØû”ì➤µ£¹v›+€oµm#…t*iEvð†@#´æbÎãngÙÔÁ‘ÈZ>®É÷AkŸÅ“‹Â‰—lcÝÞô¯ÉNgi³åÓú9 ¸c¥Ÿ7¤W™Ä¿ù_ÝøhÛâçΚmèý7ÐÀû|l…¬œ UtW-Œ4Ù‚ýu¿†zñ×öØI©³wNÃR„š’ˆ«³9µü˜‚7…“Þ¸ÌsÑ?¸øÏ-+¶-eØudvrin¶Eè:û;)0…*‡KžcIÚ¦åVhûAù]Iï$X²¼»¶îáÙB€5ç~ Îîi¹©’m9Öã -ÿ,M”±îiZÞK×½§#>" ;ÂÍ0±±á!¿ðN¶³È„rÉÙˆnໞ”Õ4ßåc¿Ñ?(IãüVÃß¹c}Hßó+ìc·YÔ0],¤v†M؈†íKåµlî"¨ú㺠™nŒ€ r‚÷³Bô”í|¶">g“üák#L!fH•Ó“²QR¶—]aVûÙó¯%÷¥[þŸ@i¸šO$wµ½LÑcÞ”ë–lÄÂ6-`ÏFS…äEÈ £`ï*{ù@EºN•]vcÏÍÎ,Ùʾ¥Éµ®„ÂçÞôræ{pwÙ&b„ìú}ßìÆÔ_W•ÿ`¹¸GtÜdGÁÙŒÏlöÍûÛ²»ÙÅ_[÷$ïv(+8öF‰âpö%´CquC-‰…ûü0‘÷î- Dqk¸mîk·_Ù%ÔÁÀ]µ³5–wÈU =ê9XúË3ök'.l‹Å©m–ÒV0.õüÁ½mÆ­Ç´[Òìòƒò¬\¶ðÌlì!qØ87Ì‘¬¾G¨Ú+8Š ÒÓÂ4Ù„÷k•“yf ÙîÓôèà(2ìÙPÛM¨LÈÑ-·…èîfø©ØˆG$Z§ØoÄé¯;y/hÇN¡®dm,Büt9ÁeÚoÄ»e·v3ã¿÷Žðå¬çPFP¨ T¹£àY!­ôbÏ7EC²Ë'WÌI2f¾î¹ªo*’_;fýk±jŽ«àcfé=V®šå,®Å%ÿZsøëÈݹq6ÓÛNÉî"¤§–³¢ *,ä‹ìÏB ¡“xÐ µ{ß/iýÛá¥C€+7ô@^ÈbÔ¸HÌ`¶”¹‘t3zõk× Nå9`’›Š‚ð mÑÚ«ëBXöfK^ñk1M¿–MÀ¯Ww¶ãŸQ{x4$»™¹íˆÒ¯gö1I™—ÍÉ\õÑÕ“LÂeÇ:ýUwåKwj ³yÛ[ÓëùÒ»yi¹X|šwo0{¶|7Î…¢ÎÖ¸Þ¦­hÿÚmU¿†¸õ×~펨_»æ×n®ù`æ0Xc‡!~Ž» Z{=ø›ÝÅŽÐ)=¤((!pƒ=o­ýuàÏúÓ›ÑÂèÇ{FFaC®J{Gñ÷BLW÷¼ êW›ÐÖ?ìq“ª¿†»š,™«Ó‡ù.<™¯&þ:fé’±ÝÁ­­y•Û¢t{WW8`€¹%8ªå´ÌV%¹Èj'm“;3dž®Cfou aYdH–± ƒ]«Ýaz`ÎìôÍþæW¶\=ŸÉÞüÙÃóî¾!£ðï›ì¶ø0T—„~Ý@«e¯¿9ë4Ö1m8¢+ëæ­3ó+cêä‘ zˆ¦“mOÁ…´~=×]/»ù÷=B Èîh¢4ߤ¡nRÔp¬2!âhÆ££©¶ÉŽÜÓaÇn}Oû%rU [Ò¶’.êêYÝŒqºó7Hv";l{_­Åúò^á #ž]á^S`‚oâÇ:AÏJþ{Wœ[r‰¤;éóïÇ!cI¨®®gúˆ©n¾bîØVé‡c»üªý 7‘kZÔöÐ ¤€H¿Uq"6ÿó¤–¸;tކ ×frª|`lo¾j[­³xyÂû ä©|w[ìýý€7šåë÷¢JG°ûE”v9(‘­Ë´O é Ay¸ Ð-×¼œïïÍ̘ýP‚Å›öÝÝ®uòë¾Z"d»y$ÓŸ³KšMû§¦ãÓw–c³LÖÝL^ná³M£<ï”méÝ,Ì߉®JŠ å@RSt®±r…¤; ^eõ¯¼až@ãá}Å­Í¢¬ÆY~pÙßTcn÷­-y¤·­ÖÜC‚ÄßLJì$ á¼¼%·‘–áÍ«²+bZËzhé½lwÃÓ0›ôËÑÚ{ïhó>6Yš5>¸ÀÛ KGЄ̭Ã{gyÙuulRné©íÞ[îó˜ü Q`JÁ®‚úkÙJ\-‰-PQø›Ìò«°£^ÏÞT¤O‘3\û7ú½f,:q¦QMwÖlzµCÙü ÎoNGÈð$Ü{8BôKíáœA]Á«³ýŠ /$Ÿˆµœf6?ñøö»2JüråµÓUu÷Γ¾#èpÆÂu´ÁÕ3ÿ®0­rëKs`®ej]£ÈÌ8ÖFÚŽäº~8&?S °Hbïð—¸}Šçˆ|á‚beJ¸9ËX—bD“»|¾vFÕ]^„kU·žÕ@ û}ìû‘À– µìuºÇüH òÈJPH‡CŒ, nw‡›Tdùlö%,ÏätíÛ4DR~m0÷h?¡Ÿ‰ù+>µ=Ÿÿ¿o¿]¯—‡"vqå6Ûd2÷t%ë…I±–¤ñF ù¥X÷Þú 8HTÍuoïnGS-ÈÙ‚ læáDzkªÅk?/\é¬ÕWÏŽfpØSyw·ÄE\m)S(·D¿€ì§.nŒ-G2Oy¸1+‹•¾i´üÊmdž̓„fáã÷àÊa®…ìØ­–àÝo¿ÁÄ–;Öšwßñ5i¾ÛFkãÃ_Ë`íå󳤑”`9F#朙ØÈ¿¿¢ýTñ íùˆ(ïĮİŽšÀ€®cÎo7Cj&{I€#°ð8¢üTÝÃy/Gåt%\Þ÷›…).ÌA³XȦÌlœ«¬ÛÕºÓz7‘ÜÞjÇØÅ%CˆÐs-šõ¸nàÃAœ‘º§‡wKn^ä_»ý×.¡ó»¡m•Ê‚|~Ñ¢; SZ3Ù…›Ÿ²3â¶€aãE“ýºÖ¯]¶lÛ–àƒ“ƒMQaWk°¡¾ßíó&Cšcá/R?’欶?þEÑwÛã_K å %vŽÆíɶ[Év öJ~p‘85¢{<ÃݦCÝ ŒÐ$¶œ³–ÂÈ/2² m·XRX»gÏb*ì¢àBË9š-Û â+cà†˜4ÈÐàÝ;µIºiŠòÌW÷ý²BwINiW ›Ûµ&–Ðm«³< ¾©mÕ†b}ì™JŸ’:R8·×ù»Ìò±kîÚ8ëò6Ú•>üÇÞvÄ¢ü³cQ'<çÑmÆ7,ÖsªO^‚b6/mW7ÙÙW­ø"ƒ«”Úû÷cñ÷ÍïòQ¤ª4å°0áëù·æÞg÷B»uá×@0çü,÷‹”ƒ44ðF;$hK V{,dÆdÄžC­Î2ì£|˜±@¤é&¹k¼t#F0‚Ð"bôÛsŒÞµÝý×Ѥ}¬Í6’ÿª#©õ«’ÌrXÛÛùZr´üÞ~q÷sî±H·Ðr<Þ£{ÞÜ+œ}‹ìε|MwŸïË›Üýr;ì`Ñ=~9ÒmÖÌ‘CIÔ«›),ÂÕ:Ô{?æW:zš~ížgN±‰–…Úõ,v"Ÿ -’¤ÖtåÍ´ùkIíC;Ú}»oÕî†þµäÕ¿–©æ×Œ¾9š=·JÁF;¸·‘üÎü-¸Óo 5 ­­üÿÚ5²6 ÷ì‘wçͬê²+¬øÄܤ‹`@•š™M"jEþ æÚyÇë—ìÒÇàãu˜¶xÄüÞ zç<'c‡p€Üd'àS­ÍMiýk‰Ÿ~­'µ„Ò4ñ¹Ëñ&üüØÚbRË×õk«³{ðµ·ð²·uã¡îvNþÜ{WØ'êQ4ëX*£‹búײÝš:îhç&DŠìïз\Y/÷¯WHqèx‹©\UHbPè0´ëto÷³^Ãèí—¿Ãì'b•VÙR'Õäþ<'"Z~ô·“íQÓyš«æšIWËÅŽg7Ík7ä+dA¶+ùkZ”ë9ê"WÝb݈3C*n™}JèˆÌ/yB'ïí tñc¬ãî72L׸w½@;~øëö:.õO=œ~IgSŸ])r+-ÚÇ¢Ç=™ùV2¹j)W ù×r!Oä+ÒLR`Êk$Ú³ 4f™54ˆo(÷;¬M^Ï-÷žmSñ) \²²(ðñêk;4ôȱhŽô¸Äçh1‚‹FrJ}Õ›Ë~®ãC:4ü§i(Œàߤ-WÉÛ–ýÞé«+%d¿òý rS*ü"aÏýäf¿6ÏG2ƒw 9»³×,3ÁÄ,d…¿Ý ¶\M³þà”[×^ÁµÓ²³Ø´›Q¬qp?ÛV»ÀÑÌ–TÊÎÄZt"±D0>£)ýAd$6í5Þ…éÛºùÞˆ…tÚ]Án:É"îÚIöÕ(ËÆdó>øæ¸bù³’½Ýkoų¥ÛZ·ãxVooSà<öN•׈ôÛs„Yj<; ®…»,bÂÅG‡Òo2pK¨ÆN¾Bé#.Ô±ÝSù5qA1Æ`7ký¾1ä[Çé=ÒläÏlGUzqo—»Ææ_P÷^Ü õºá ŽGÀ5!L,~¯' ¾×Ю'œ¿aX‘r <‚ÇGw×Üè#[G°ŒŒ¶¨Œ@yÂÃñ-®1;Ån[óvÉo³’œªg¬*,•1á?3*`Ѿ¤v­Óà\IŠEl[*' Î"~£CÖQɬîaE¦Ó¬Öó6×hƒ-ÝZ~KÛ ²x·ÙÞn†6ÇãÆ¥=ÕüÝüf·G—'±ÙŽûU†B‚Íòs¹¹±¬ÿÊXj»In@Û‚|øq+ø b7eebÅð阥§r^¬ð­S–s™©cÇÑ‹•Ô]»MMŠ?ºÀ¡«îñW-·fÑ—aïU¸ëééoL°=/»´â÷cõ d ¶]å=ùo=“ñ¤õ«élÚý–ñk(÷Á¯¤ìœÛÖɯeñéû=¯þ.4j‰ž!XÁ)pÙ%t]×ëxÙÕ§ Çd‘Sùî=DVwÜ~Á¿öoÛŒ›|Jx:¶‹åæšUÓ8šÈÊ´4îïù<»t˜%Âñ’:x8»ªñ™q»Ú-#„mNY¬]»eK@=É-YÔ=r, /‘Ž?/ò ]-zn@Ò&ò7›,…†™ísÃþxSÜÛ»%@ûµøµÆé×r"ÿ~Tnˆå>® ­A•º¹½Öôx„<ûH䪺ÌNfÝUy7Ðjã:j„Eã0¹ÝÃZ®×í6ïüZÒq“¿û!:+ÙDùâµã9žÉî2´ôãÌ»È2‘Nùâ°ÈOw+ªÝ1I6¦BT…êɽÇ®|ñ Õ,¡ë=dÉŸ9/º¢®_+i>Úâ¶Ðä@.6³²|E Ù®¯f ö>fÈï>½¥Ä°Ôin4Æœ–Ç1’8 ´K¿ŒÏM…±†,Þc5ž›ížÑ¢½‡ˆRîÒ­¼i]ݳÝáôAlHÉNp_cwŽ‚Ï@ ÐÒÞÕ†c£‚'mâ]¥P·ÍC²›ŠsTà¤=2UM_ïä9Ä]ùOå›4Æ#•o/YÈeDG©2bä jdÙØmIÊ[¶ØgõÝæÿZö¥›]©ÚÝüòÕGvŒX|Ôò WwïwÙè>é‚üûk‰ê¯>²ÃYþnAGÆàÖh¹³BʧJÈçKåÀÕ¿;!¿ î–ï÷ëâ¿£Ìé­Ìq ðùývlïסÕnB>¿}_‡ˆ5该¼ñAÜЬñ¿\l|~æ]Aµ#ížœÓ #,mAÙM/7,ò‹=¾#ð¯õ &#œåJv ç÷Ø>¶·”fdÑ.Žáü,[ØUù’nV@Ëåöè¤ïGóÿ¸¯#Œ<܉Ô'ï}Ìw8¯öhùï}_–|ßH|Æ ¡¡öXàMù9pö‚É|…·EÛÕv€é׳°Ä¸¿¬©+„û…-j`€·T‹é ëƒ<éÚ¸‰— ÍÔ8]ÝÄWàîS>»«î¹³ÿ‘7z‚g®¸Ð®øØÙhÊ7ï4«&Pˆq²îûq-¡÷XÆiÏwúèWuÝÀf[U° |‡43ñ o¬7ÀÂ/¸ÑuŒïl–Mn¡kîËÓtߨU;ðs›´ÿÅÿöû¿{âÿŠ/…ïäl'þü™«{C«¸ÐŒ¸žºÐË¥ýxnD¹¼Ãû¸—:Î🇹¯8ñÅ×wÆÖ¥tý¤AhО6~`½ÏO„9ŽRWÿl(Ñ,1ÇõE*™gYeþQ¥…ÜÂy=ò(n¥\^}ÃÃ̾N@ÌzÌÄÚ!LW–!è6Íä{ý<8H™gx}Å ¼Hm¾'9ØkKû©ÉŒAPu™?ÓÏL£¸~CföÊ,Ó¬£ìD€=½ËÏ{&Ô§ïw€æêÆQöï£FÓü÷­5Hpñðä}óLó[­âíëÜ÷&jS™ª¤jõ¿¹É£;™Q¢G3ÈÊÄ£†}Çâ„©ä*ÉÁ¥ÎÚ‘ŸÀ½vi«×yNTFT[CKÑϹ°6YFWÝOäïŸþÿ!qp¦Ö^åó3+¤[Ócaát¦ÚÛ±zF9öŽ|éAΉ¹)Ð'’­söÅÁ™u^ý¸-2ã ¾uØ—mH®o{VçTá&uŸ|cßZ=§4j`Œñ¬Ü÷a g¨½eÁ$õ¡š>qN ®?€9õŸ5Øu½H8ÿľµ‚ÀßÅÑq޹ÆYÄ?Gü úÑ"X ¸=«—€ñœÓÛçÏ>aê*i¨-®è´s!ñ¤ºIò ò¬HóVÈ:SƒÚ7äîeËKA‰ÉàÓ‡Þ_®Õ›PÓeÏG¯CÇÆ:}^û—ãd=®=E­²MÜ×ѫȅ%˜Ér ÿ¢sÅIÜ—ó¬!§ëž5‹p**<Ô÷²LšbIU~ÃäF>ד\ýéч[RÇ6óö%'„OÄ(·ÙèÇö–ÿR;öª‘«h=YÏktÑ@J gŸ²Hfæéa䪗 ÏD~.u–¤xŒW!´³K€@S98†:‚—âÿîõË“¬}‡0ƒ´¼8¤„zô @ sü¾žu2=à`»(ÌÃz6nßrž´¦,á‹‘˜`ƒµFAhË„\ëK!ŽbVC»¹¿¶Ïɯeª`‹¹*N~'cDmY$w«ûÎ×Lìa–ÙH; !Âa~©ÛV2À§Ç .çL ôžÃîêáùíüyˆÆ‰@1èKáC‚Ë(ïü_òˆy%q çíÅR‘9 QÂþ|a/¬õnÙC!Øê‡ÞËßÏÖÈ“šZc~‰¹%ìáÚ£´È—`f/(ŒepîHÉ¢Æ*ßa•Q V]ï¸(MÕ”ù*éÕA“M|æÇû-†šyè[9bßADáïœìáEÞš«2Ë“U g(¦ãÑ31¡qBNÑ3•ݾC€ÊøµÏZÑúøvžlaî,é1_Ä/TÙÀEpl.l¥IDk=ê46bû©rÂ<³à´U‚a ÃìöŽnQ_aXÅI²hÃHW³®uÖ²§xØÊËCÒ½ÁVcçI-+ÎvrKâ?mNIÈkÀ¹Q\}‹׃ֻ腠UÆ%mœt9­´õuúÄòÈɲÁ¾‹í%ñTgçù…I5­ñv•€À…œ4ÉxФù“ÐzT\|ñ²d¦Âqš‰KXÊV8í¼–;ï1±ôÕ^åH¢â‘4ÒŒ¤!KÕ³ÛÅYÁGHùH8E}xº¼¹Äž¾ïÚ¤ZÀùTýýl`#cÉ*eÞ´\Do3m.’¹gØ !•M¢ŽÀRM_®f+i€–M¢Â­$„,¥i] –ÎH¢ª­ …áÖöCfR\õ´ÞÃJ {}߬Á¥/«>7¯bc× ëOžÔdÖñÉÐ ˆý`^÷ÏêàÞ‰r,39q,¤Ñù•ÁF1)Z^wp{CgÙR«Dÿ³ŒÙöå"õnÑH˜V˜ÍÄ A"‹=½í°¿`®.ׂ^áðÎ.>XÀER-al‹\÷X+x¢´ˆ>–Æ!caáôÑ£ÇíeÇìhù˜kts?%ï”`ß÷‹*_ž9b7/«V•9ý#ÏRt—“#®¶fa梢÷À¾"Ž¥L4Ê4™;rÉ sÏÖõ Uyk}4&#QZCÞzxˆVfIy•EÝÅ'ëÒ3yÂÄ8õ¤.Òïœe=`½A Xô³°A*bSÀ¬eJd6,¸£§h5'Óe¸¯L? ¹«R,ß#—çDóó/r=ǰ^к¾÷órö5F}ÕΚq'‰“{ û¥!x[VØË!KM  d©3²ÎaÔ’Õ ²?È>_ݺU-™ÕJ9–ÀލT€ã-Rטš.q¯½;‚3*ê1êüFÑ…ß h"ì]ìîS·%5µôæ. Iøá§„óÜ0ÆZÐ6føEòJFŸ„Å%y-Þ:¤CR.l›å± -oD˜Öš:öFì~¥ø©î$BÐxÕÕ/øp²cÊÉÑ6Ócªí榺E ‡!çxµš1‚aˆÞ=¡ »“­msݙٶ½òký†Á4³4}FD/œÊË88yÇôødP‰‰§>YdƒsÄ b‡ ,N±«¸Í/—[ÅÖ’u›ñ²ó±@jÛfð—N–ÓÞµ%å[ÑÚvåcûµ*Ûa ´“ªæC§뉈¸uuüxF&M!_I:]Ž.¨p Y/«$0ý¼³®Ä nåHU*„P§Ò¢¤yðò“»QSx‚ ¹ ¦êo t–,?Û>sr–*;%¬P‰+åýÁ/ÄB–øÈ#—Gœï `ûal º> e+Ä|¨·ÀýÏ=Ka[ ‹¹ˆBˆœ$Ú’!p4cV¹.3¶oôñÐEÃ<Ÿ™ Hâm¥¡3k?åxDϵuÍZç˜HÄ­ZàÈ¥F±H±†lÈkÂò °YRhá¤Îef÷Uí9?˦ò–¤ynQÿI¡o ìKÓuR%ã$ÀÕ¾Üäú±çÀÑu—ðˆ“ {ž‡z9AïÍî’X>£‰1+ÿO 󩴇ˤ/­ƒ©¢ñQ›»Áö ÎqRôV©ÑggÒIÅø²òhŒÈ©—Fà‹X ÒçK¬Ë¶AÂåH-m¸7‚#ÒÉÄ“ÎÍ’«'À½Á¤3ÑëÙ(JUüôÏ„ä(ï쥌ӜfâAjÏ”ÅUâ^Ž9,cFòrs ­xr7Xµ}άøëMLRç ="h_.]¢vÏ¥$MÚ‰äÿ éðpª¯¯zçj]_1.kh0+Ì´ØÄô0h*6¹GØlNA¤B6|fôÂîÀ‰) G?sÔÂá¸kÐr}ak|á!}¾^9%ºÊŸS*Xκõ¥Î(‹Ù‡Z2ú įYõ…8êg¨qºœ$Ú‘šscs\”šu˜‰*ÅÊ M[TàëÙÊ.ã‘c&Ä( 1ø¸yÔ½˜‡0Pà™RЍ,´­I,w:mЇe7ĤZ@`O§‡tMSf_E[©e._ßÀ3|ã(Ú›÷|(`‡ö ¡zÚym£´²X SÖ“ô•Xæ{²ÄW7dµç8˜õ<Ò=#ΘA-ýq ŽfJcJڲ᜜æa…"VJ'ª­>êÕódÀ(I2l“¤9»i‰KÚEáÙf¨Y¢ŠÌù~á4ÕV˜¬f-˜‡K‹yHÓ|†¶öS0/¤¾^ãëÛƒÆòOÕ¬™›Íú±s‰×E-(1È ¥qR+V™i8Æê°¦s§d*) JÖ—å žî8`Èãiâ¨=!©K“›‹ØÑ?˜0¶W¤ãLdwÖp /'^Æ©¢±ÂvZVËP$ˆ ¸†¥¥Ýc^߈kKBôÆÖJ;Mõ‡ÄÿUãvÉZ§%H߬–¡i¯49…˜ÈÔvŒR$Í< í û®µÅ:‹ÈÜ]ïXNW”oz@k¤u†pLb‡f(@¬N¨rŽâ¹×„Ë´ÚAØ`ÏAO)²]€3Å9³VŠë_ú,ÓŒ• ¶µ­lâæ’¾TæärÒ¢/~g¯¹­½ë-q1ÎÓ£Ÿ¶O‹>7À±M¿Éáͨ ´Y#` K\ ¡ÁZm%áâóHa’é&!+éžÓmy¦,Aµ¦sÖ;Ä :Áe7YaÖ™-L¥9ÏqÊ­ä¾Öò-=m$ÎûQh #ãœ4çaHȲ˜l\EÂOÃáIhåÔü 7²Vµž¨ô²bÀÕo?8ñ ñCø}Móá1 §#jtÀ8uä^O±-¢8´2šÉÂRbgMŒª!Þˆs¢e¶ÐS5ebG0‚ÖSȸ‰ð¾…c.'”¾k"‡¸±qÓêJš• Åm6Žô¢Äg†2Ðü»«ý‘ù§å™É|SB úÌ,ÅuÿaÖ ²D¥ìÀõѵxÜØ·ìs… V¸i›AJ…h,U–>¸®RC0Ûðhó†ÃZì£ò5ÄÊrñI°¡³ë!~/ºº>ý³‹ÈñÉ@ÊìtÍŽóžg8ÀƒD6€t"ü0i*%Îd茼²Jo“‘7á<ÂÆGaÑ…Ó&ì¶6}í‡S†M£žÉ{Z'c•aH’¸¬Ýz—æ8~!›IR’gNñ¸ìŽC'(‰ìó¨Á'{øƒÎ—ââëz3Œ” •X¤l8zm•CUÌñ[ [!)ž†eÜƒÚØwÎEiˆÛ4‹“Á úm[³sι×r°_$ß©K–ÉÌô>éɱ·îû¤!o?ñ/;0!¿Å$¥hi™ç˜âžÄ 6…؈(J.¦'QïÛœYÉU4*1,ß(Ì:æh—¤1y°Ú'5itŽÀDé[A*´Œ]Z´„‡ðŒ$,caš°Ô­1³w6Hö¡·­s4y-#]ç̪ϫ]ÂJ!U3ïËÀ@“j}À…Ïlˆ?ZšàŒ)©T¤^ŽçáHVÑÐ .‚—^LÑÜnÀÔEŠþ„ðÅ 8gÖ3!Ë39@'(-Ü…!0ç´cÇYSúw—üÙ”žÓÆò øn·?>‚œˆNœ„ŒšÂ=8ûD2‚G”„Ž‘ƒX5¨ë$Оkδ Åe¸IZ¡¼ò´€ã Šp,³Æަ³Ô㻚\˜„îZî,öΉü¾èÌ€ò̶Åƹ;´m5™ÿb¢À¥\‡®L÷,îa¨“ÖQáÚHe,ïIkB$‚¨ˆlÒ„gÊ*ÊÏ;Š(Šèˆ®7*Ì¡šç‚€vu2Y/ §^ÀÉ$’¨ˆ1¨$ŽHã” ‘ PߥŒMl5‰ˆÇPgIé‘%ÓäŒ/§ƒjlåƒ'9,tM›kWÖÇrÃä;ÒRqäò»^Ž e“ÌÒÔé<U". ¨çŠ“  ¢e¥Ù’ì t2Cj…´=ÃýDÄ£ç| Š¥K}Õè8›¹AT¬½²þö4+§ïHª,Ò'œŽEˆ*†½6î‹Ñ?ÈÌr9­Î“bDCΖ¹ˆúÄÍŒâagЉg‹[òê.p|¥ç¨ ŸìÄæDR¤ªeîAv™Ò4¢'Å04ºPŽøUM‘Èúð¤srŒI¬ìy¦_j°Ý˲› –Êb¼LIá\ìcÖVtš(²“¿¨Ùw9”¼^ÐpcaŽl<‚omÜEÆþ¦èÞR?ÉÄôL ëS6‰^AŠ}Ì@r§æu\kýäG @œÜ$möÛ‡›ød¶>[.:ÚÇ mÎL«õàÝyª¨:Ã1\—§>[µ™SAÇJ<Àcf¦$vUÐDš^UíA‚4ÒÊe ¨3Wúº½]f•)LÄþ¾äðmi‚;Ä,]jTäñ•Hò Sk†vôl° I`l&:IL&Žt=õdáÚ)þ³qôl`<¹RIü7IøV(”¹fæQ¼6K¤ ßžþºäY€·õO*yû±W}q&~“Ð-ä“`“ÿƒmáàY˜âVÄŒœE QSvX¢¸«&„丵Vp·ˆóyê»ð;k'•H ¦×‡]F˜EÓÎÁÚ$U%ú| Aêù,+вÇ,ÊNFŠª™Û¤M-[gå-¡”m³.>{F6Õ":ÀúIêA¯!ÔÂå4ÀœC¤–åG#6OœyÝH‚ Ci~3±b2'9s› M¥Õ¨3/sxÒð\¦b…mdéŸÞÏg=;ÍGzXž‘ Ã~ÂÔ·&iý¨§˜ŒûžÃ£-³™pìÔXáìO –*6÷©#!V6t™@%†€Öª‚j€L c•ÝL&wP|©ÕÙ*mRãð’¹tk9­Êr_tÑŸ®‰/QÃNF¿´ eaY8è?‰¯—€BuÂiå–…·:$8‚)c-pHë”7m6C÷Ç™hâ‰KÐ(úhë•AJ/ÕæÐn Ïkv@9Xd­Ž#”$OOÕÚÊŒÒrª1b%=Ö ´LG÷ÈàÇå9pš“ÂØ&ìµëÏóýJ®ar$?COÕ.kõæÎ’æöó‡ü[R¨›Cq}õF'G§ºâ#H ¥íá…œbÁªæ=¿0]çLnwYvNrRt-I5Ö˜Hÿ ùæÇ¢ 8.¢c–L(' ôÂCç -9£Ei°´¾°r(lj”–¤Iôߓ̃“vah$Î ŠÆÑ‘Õ;Cš'Md'£y¹- äZ;3`•9¢‚?g)2 ʈcêspnèe @ƒCÍÄd°¿C›VAá -`Ê Q®(豨!~, ļ¶ts=p«‡³óÐLqU–øh±ƒú²WWñ¹MB؃|šüê"&T«ë½œ=“#zl9dÞ¤ À)NE´EuO…6”ç¤èÜT3A”Gé©R|™ÀîUì ò+çz˜«–²IŒ’šÎâ=\¸_àîIðoY‚#Ö™ 'ô1§¨©ÆÝDïœÝGžÛ‚´¼ 7ã¦G|g}‡ÉFóÈpCe™³ßZUnÌ*uþŒ¨¾ÉïÜm€0ƒ~Xœ,Ù@°¨yÆûU>³¶¡)¤ÿ—5¨ò\0sæ‹&¯fB€™‡0Xˆ]íÐ1µj•‹½oüA³@”Xø!Ž3eÖãSÓñÕHÊÕ gªCÞ¨æ˜ÆiÓL¢C|80y_ìf[í9ò¸Ä«ÈPòÈ»š¸6±¢5# ”õç*UvÃÉnžOõÅ4'ã—½ÓáF3–KI®RJœñœhÓ~â SNz4pì%œA»D åÒÎ<ÍÈåR©×DJLÌê5s*-*MÚ'èLTaoà3‡×ˉ™S—Gg-&¡`?V™¦h¤®pVb™8¯³®R âCžƒ·­LÆ[÷=`M.Ñ,R½áPŸç5M:)hKÑ\—\\®£5Í@2¸§¿ü/Ig$QI“Yó@’Î’ÛB3tîSãÔ²”húÄ—Ó€è¤õ[Û|—Õb«sÞ¯OÀy°”^5m$‰&ͱ<Á7{‡ú2¤(ç®â3{Ç%Q@sÆŠäYU'Å‚-jîéÃfͥɃv®Œ"Úö‘â.êâþ[ yÍ|©À²æ¦Ñ Sì.Óåô@„ø'}³ CD°ƒ,‡ß×Zó¤M¦£¥¬ žžY8O2¶xj„À’ Eýô5cÏp‰ôpáà–øy²†î^Pˆ3' \ÚÛW*‡¯–SõžÜôa‡®³dÃÑYÞ5° 3'½Ì)÷Å¥ñŠÐhósfPñ¤ðRp‘¹i,ÓÅ|3N0W8hH†„I±á•ã8…÷V?À2R- YÖ‰,êó#è¡£ùÆ!ؾOe††ûl[!Sœ`>ÐI*Å8N8ð~À>íŒ3cØe¡I&Iºà{H#‡sãp;©¿µ‰,ˆ÷-Ï"–ZÜ9•ñmÛ5‰¥f0›Ôèã¥IBYå¸,y^u\¥,hü FÏÄvù%dHœ°(¹Ä/¥”O­y*B,g ƒ@bæÎHCž„qw…¬-$•(+-ƒSà‡¡‚ONiÃoÃ*,}›± Ñ¥©)ò€°ÇØú.Rñ ›´3ÇbPs´n û®$ÄÎæÞ8=òwíyêJžd:©èáR‰#NrTø%W¹ž‡Kf!Vî!*ÈH¨¥9V'Ûbà_ï™æ’9±¥úöªÆÉ³‡âÚsœ0wÖ¤¤s …¬OãøÉ€2'å+YœndLùsÊnd>·€ãÐQ„>G숥$·€¼˜¤>ÂgR> Fø–¥N}øîUsÅ1Iě־Hq“÷H ‘Lÿì ‹ˆÈÝžv "‘sœQ<$8¤ëlR¹šsâœ`KC_¬=“kûõbÜ`JRš+ƒ‚&D+åÉ¿r ´SçÒaÒ!õ‰DN*}ÕÜ&ÅAc„ 8›;YD }þgƒ‘d=S-ÒH Ü%ì„!î ç{=Ã7¦ûw²¶“sW@uîÞ&¥ÉéDpà»ÊHû,Óq®È‘3Uc;-†½‡U¯šòãàÿdQõüV§|ž³$_š<Á»¤Îre~%¤ (É0¿eR‰âÔ@PÏÆ,ìÃèƒr áÉÁM’(N·jZAo"RºkjòðÕºr:Íø·1Û×¼€U™§%©œÞŒ3Î…§V (}•qw_ôëÅæPÞ³«â³¦g™ð8K|¾(iÜG˜L8nH9¶$óesUIcz^´Ì78®ódípvÍÚÐZúè¤æõ塹†÷àdû”„Tç6–Éà!Ž…Ëë8¾ú#Ò8·M×TÏ”%7IqûàÝX *2£ÀÂÊxpج«å¹:~WŸ,/O¨’Ãs]yÌÅ)sÊ“”iš*”m¦¬ò¦†“"#C3kFKÐö¦¬FžDbÄ>ifÇMÈù€½’°GR ª¹ÊÔû,}Óe ¹Ò¤Jb¹‰tXÜÁ+©ïÌ(µ€ã^ ÙLgÞ*s}nÖ.Ç$ò’ ¥»Þdz|I8’,VlÃï¤tO}äãpÉóÆ>“ºä4w©u ¹ÙKãT‹ÇœÆgýLƒrR-Ì­¹û¢Mn£pê ¸d5¼ðÚÆíÜlFu+Ld7Bß,Of{ `˜LÈ-(ã×]žãïDÂÃqý3ËmŒe2àݸZuÓ<¹8“¨(4‡X”*h$Ì;½,5¨¿¯-ÜÉ,ˆÚÖ œ¨Ó™i)Ü ³+§êšüNîeä à!ì"µoé¯úlD|¤ú:ç%3› Çæ—õdb˜×õ8‚Áª‰|! ï9?Çe±.ªBúXQh¬ÆCþФpÂÏLüu+ç$螸Í\±ë rÃ:ÜYSær Þ†LfÝÄ/ì>0ˇï#L\ðkŽé™¶N&?æùšÄ>#̘í XrÚÑ¡Màô--U“xŸkØšÜ9nYk±Ÿ©ev™SOa¢§ù+ ùPEyÀ8ºÈ)m=Â`Lš­ePáa™%«tX»)ra[I‰á‚ês£K ØÖ‚ÎÙ¥‚x?k_y¢ 2Ù#O{©rCVîg&dnå®ù°ëqyÒŠÚðLòl!! Ÿ£ör"²™õÖ*‡In/Äl]ìL#E—— &dÚ®þl Ë 4fsýtÜŸm³hÇ`á5•S9eèÙS,›SŠØ-t«)núX?‹Évc&êç°XÎm{¶²ù Åb÷-UÏÌ0·ª7‹”„¾šîq ’j1ž@@wˆ-ɯÃ˳#¼öZšy¯H…2¹ÓöC]öFF”áŽÅà\cÊq°Óƒaà>â3rÉFß#s=Q¸ó÷2í|ú´ÈϪOŸ†ƒžˆÜ­Ìy)X‚ì‰Ä®ú¹«÷ɇœ &÷±(Ú‡d€|õcÎíåz§¯’ìÁC<\æ{À›&‡£§õÅ&Ê4¥&%‰.y6u°³0’ò627`¡ó¯œZäi40›0pYÝëµ'¯}Z;dÊ•6M ¡\yáÛܬ÷P ý”Jóäv.6§Ø#g‰ÄÉ`–í™’J¯æ³ß9‰?åH† Õ>0iß}Q (玛VÌe¡ÃQGÇ ù‘k9‚`ý´¡‘f,toE8nFüya¸à¨å[€ñ"<¡¥©Ü‰Ð¼U"l4hD\ÓÏv¹©«ãÄIË-€‰Ù>›k%^•aòÔ áu›lÌ­(Ù\3”ûE³jKiÄc¼ “Ë*œsÞšÿ_>c3êI*3“°Œ…ݤhK¸tD/]-*‡âG¨‡'“%ñ\vàÈ1W¾œjê5qÈ*)RžçðÍ ¢6‚΂V¢ 8•±{õà €’VU ?„ Ö›þVÎ[sÿL£p µ¶ X‘@>MTìè,õÎYÂd1q²ZqX«º|s2%žÎ1!ºÚÁa>“Ú_i½_T{³‚G¨s ŠWaö„PNû›È]žäøÒ×DÏAÂÃB@Ǝɯ°åÉrTewÛîçá0‘ÜêÌM¤é”MHóFvÂ8vþ{éš9ÔÊ•¸âlhEç3;LÒR¼è±Ìíñgæ“Q›3ŠÑf2ÛNåeZ¼÷kí³ž°ß‚T×äOŠz¬Äé<ºå¦3ÕÍg²A;9]_óÍ´35epsÄ çZr§Í½¶<Ø g˜F;ä^áB=u0L[ƒNÎZŠJèBæ>¨ÙcZWû ² ƒÆÜ¤i,A#Ê'B*“@°†¯q¸·=ÊÞÓÉ`7ž–¿ Y¨OÑ&¨;ogà€‹5ŠŸçÜ+îWŽMZÕD¨“‰\; Ì÷¸©U‹\ óhhÊ…¤h8Æ>‘½'Kæ ÃYGšËÌå¸Gž«?¶aÅMé9ÊŒ?1 \™Ñ‹„p„D*WÏ lYöeÐ%rÉïÐÝ9Ü„EN…8&-߉cB¶~ð®sb«Ýx ;UÌ~ºLE‘MÅ}²`b9¿7“…ýR7W™ppRŒ —ûÀ/xI®Ãy¹+®Ø=°÷Ǭ) ©%/ð©És|ïŇK^Iò×ê/ Õ&¡±–³+1{ùˆq¸˜Ø%4_GɹJq¡ º9F›4KŸ¢Ê**Þ ®\ŸAä›}s† •fbºø 4û£´#yV?5Á \m^½ÒJ*©»¼‘3),B“ÎPùG]zA.,d¸±\"Òvž5; R>-Mòø‡®5‚}‘ î4ô( =-;Èð89ìrR4[A+h3"§¾ðb²üH~Ùªù WX2§RÄc ²Ônç^ÈH‰Üé‰Ý%B¾H˜ݵ2Ú Õµ©Áì—œ`}K&ÐÔëLö¯ÝÒ3 1Hÿõº[ľ 9Õ ë4ubÿËZ}xªŸôHy4­vqÉ.ÙÛä)]½²×ã«;× ÓÈ 2yéÅ*§‰og•¬–D“uñcµsoI>Á÷Ã¥ý5·F *²d(¯ )Ç“tBÉ3ÉE©ã\ÒF²Í”÷Ÿ‹i£–c¹Ò†wL;òá±·'²˜°íÑÍR‰Xš§+17^˜ ±Žõ%¼Žý#…3 =Á•k7Øç’ˆò"û¾ø7w(C¯»2È5âŸ[Óì±sZ›IÅ~çgŽ[ÇÓ‡¿á‹å“"3%¯gmS«úþ“:7‹qGÖ rò`åH˜Ù9³À‰BÝb8ùÑp‰ê;8a@Žò ãî“0­ëüÉDÿ ‚š|'d:(šÌ©¸ØuïÍĉæ|–e KÐC­¿ÎX$¡häm#õjÕŒˆÔ«Ïk”ô¦¤`4Ùö.ÇcÏ:ûÍedø9ópšæ…<|1ÚÉ1gÌGÕ Ì…Š#(ïÝ›CqEr÷æ¶FÈÑ´ªôÐcy÷߯cñ­½Æ¸¼•Ç¤ŽŠClýžü é†O#7Ï5‹;ï¿«:}r–à•ÜÞÙ:æŠÀ¼þžhƒ4Hé£ Q™læé¸o†Ø3IÚçtï¹äÚaB J.ó=‰Àª¾@ûg2òæWT†{ø¤M8­Yd ØS*ÊÐ78è¡‚z¸i½. ß suŠ»GêLÄ{iݪ®pä'díC"†'ös7‘P°Éã‘ðâ^sF˜ä\£!uRZKò8¡°× ³ò –¹¹1æ(Íä xé29Hž)’h8̺_|”b.wèúc =c¬§úËbÒhIFfîîÔR ¢Gáéœ~©\( u®ä”§¦EcÎ6Öƒ3ZÔÚ-3Õ…ëòBIZa1»‹c£__ÈP—4êô÷M-Å5֑Ϙ|dšMº³}HOŸ€VIj¸,DÅ]Ì››¸KYK œ$#€þÌrsŠª¾0:Å\~nÞ²I‹ù•lœ%ƒwª;šÇóâÞAï±È=šC«†v ÉH8 $8Y&–ýh\\Í&¿•…S‹- çjäü2[i‡}Αä€ÍÉaä ;é£ëÜ vìÞ–3ËxÓsMÞíD‚ö*–!(tCZ˜´Y,’ŒtzJ7…{Fìr Ê|ªW›½E.d C:ZµìBð)Né§NK´ŒKiýLI0,kU‚.ó7ÂfjÇ`ÏÇ石í¶r³\mÖ_ é uÁî\?‚V± ýáA’±fÌEYùX1nïˆ-žyKî„OÏ8œ»4I?ž:ϨŸŸóœ¶bÙ8aƒG^w…`֦׉,)+_áS“(U³ æiÊÁqBßú©52Ø<ÚXc휛·Úé‚r›‹-µ–Ém’Œ6¢Ø±‹àŠÐ@¨+GöÁ^³]¶kÅéHx§0Ü¥2·f¶ÇÕ¦D^N™‰¢3$³aR(· #R9œ«s:¢„x²°4×xIOŸœ$ŒçŠ’90kË%ëˆw`ïÍâ-_‹–oán£GSJòà"ok‰ùûήײ"²8 ÑW ±áp LŒ(FÛÃ9ÂðžY"&óÜUzædVÝËÉΙv°¶,JÍ õ“$Lî;‡LêHB–YÆä¶ÒJ+ÉŽ¬œ1)Qç]k7ƒˆ}FîÂ+š4rsM¸êÛ ©îr$Öe’Ùõ¸ƒ;RB8W¸MœàbùÌÃb,ÚÉÎa#CÛü™ýˆ°­3«îƒãáE¸Ùgg‡(»2ÄOÁpèªMÅš”a„‚öë\æ0-ׄÅ!ú„3ý¨ í‘‘hfw#[–k¦3¯êòTÄD±À\u¹n|&ì¡¢âpp]}œé»©Icg»‰Å‘gÆÚ«4EÎm16ÐÏä¿J° íP Ñ)P“]Á@|¢rU]\ÀvM¥]ÙE$6—êÊÌvôœB×=GÊz`æz¶“ieî¦mIªè,UN!¿¦ÌÖžpZbLPáÓÿZÔãvènùfZäèÊ›œÀá3V uOH+ôdOvĦƒ®æÖôGÀf/ýÀ£k1žI?$yʤ,aQ]j “4gJC»á!Ój*Q 笚çG'¬ßÕåÛtá\"À¸FÔõ aN“=ãïü·zUÈWÅ„ uQ 7;&]‰Ç!c7—ÇôjcC6Î2‚Î.‹´2©ƒ†´“ÈHs”κö¸Ô5 €¾Î…‡sp}!Óûnûwp YgIν¿š±6éÂáAà¸þ´³S÷‘CVCò&ަî,oQ9mýÔƒM SçTÌñË%—§¨ÁH“?4œðºÌòRW[ÏMœ,YKù®5´ßÕ™g¦¾4‰ Xü¾( Ð$"Ä"JEŠ_|éÓÏä‹Ö׃äf2š0'ËrÎÂ"î›éº} ¾¯¼†„Ÿ›d³¤ß›dlãEEa…Ⱥãñj§Ž­š×ŠM飵•ÂZW(žmœ÷R°FªŽºmáÈrŸõ‚>†Ã“¨l¼îøl½¼WIï¯lf®ÄÄ¡œ6›Ërh"Ó¨ºz(ÜËVÄ:·Ÿ“9AbÇ{ÿ4m`ç9e Áu%È.X’¸Ê:r`ô©€ÖÔ¸ZO(ùù³àþÚ¤H§ÿÄÓç$hRä]#ižŒhû"grë³áHË\Á.ï4›ÐEË/s枀y¤?Èòý¤ÑÜ£¾ÐÒ¹dœ]²†¤wê ¢§“¸»±ç¤£3còb—³&~pKÅs–^Töde+…-ÒƒxV%L!a!ÜzpÊD!ü»2N¶Äȧrá ÌŽðM`ÐWJÊç*~…ÛŠágr=  Äv)¾†–dGÔ™ìÚÆª ŠFXˆi§…”)bò@äúœõ(LÞ‚ÐáNúCܹƒæ‘Z<ɰZjA™‹—0®/x59XÊ#Ä`«<ÛÖ…‰)h”&³Ç>d\©:ÇãEî¸7d"P®›ëµyV¡Ên¿þZ¦PÞ¤‡Í¡"ÂP™*XGàØm<ˆ_–êËóâf&ö…ˆ #p?UR¸’þ¢)^†\±ï=‰x®ÝÕáûB âgŒuÜ*z¦|&UMQu!1Ëïü…Ƚ97»v`e)$ƒÃ‰‰³ÉI#mެV#j,"³«ti.û:-e–V8: bxÓS¬vY¥ ;ë=Ù†(uû#x6/txq<ÁçKyG,(WAC©wå3¾ŠC[$äƒíI‘ ÷ú<òЯ”³ã”€BžNRVµüH¡·Ž‹7œ<•äe:-bî Áe•v\à6àuáSâ Â@Ä%–·r9u^.†ÎõŃK¤ çÈO5“¬GmR5c¯«Ua rlB„Ó=äzV¦•™½!£"Y? êÒ«[±Q”9gÒ d¿OþÏZ+‹æøíåd++UAߊc°©×ÐZ+øQE:Äu³X±/Ü,2°ÏFÔé‰Ê-έ"¬:hšˆ9¨QúÇe¦ÏÜ炃͕lm²2omaç,>gˆ+‚[E3B2©p*è5áÈ5Y½‹3˜ÎÚ3!X§ÊÒË'6$ãЋÑ&ZGC«ÀYÃç”ó9žLR ÷°ØJ`¥¼pšã\A—ÌÝiù$Â&4±ìðÏ!êf¤CîX-/‘(Ì­5:‡0C€\$8{ˆ(Që‚„ãrSΖ i‡S*ÚÄÄüjX“¹ç®O(Žh<Ñ}#[+—Pp"æ0qÖ<¡Ñf™<³9ÿšTN$È?ÀQÎúͧÖÿ„ƒ!ŸE~„€Óepný)RÊd§ú‰M—Lqÿ ¹ÜNʼ–ni$ƺwðHg™·€g&¡Þ½nÒÏÀ÷È4 ‘;Üã(0&4¼¸Q†æ,Í!lj[àý¸t"_Y!ŒOSU¸j³tIüí8vï¦qŸÃKì-mßBZ®½hÊNO:Áf1u²bsk: Ž$ æ¹ïæÌ>Ï$ ‘${Wx*%’‡‡fØr(¬.sI¶µ÷ ÏBÍ3ǯípi4.Ü’óÂúSÃ$E"#5K¨ÅÁZÄ5#y•<ùU¥Oúk©<'0Ä( sïëc¦^ŸÂ4.²Ý¡}y8 ˜¶™¶ Që$öÒ=‹¼³ú ø!ï )Vä î/§ñèLáP²{¤Y0{ÎŒ+r..b?#ÈÜ [ÏÂ?ȶ7Ù©c«Œ®ŒDãYydÀœu¡‡mu5ljí"ü»s‘@@Gô­°-j‰Ûû¾ZÉ„1Í ªAd“ÈI]ÎA2S‹ôF1ÊßÀí¦¼ÔBÿÉ©l•ˆ}›ö‘“ÙÏkØ»³7•p”(8$œmëM$ E¬§N¸F¹”Ã:ÁEßýµmÞLÄ ªîSRîæ}O=Û®»n¥žÂö œËLönNG€tù5üÈUjiuûÛŒó"DuSà¶Þ!ƒû\ÞŒÏÝÜÉ ¢•0Q3S¶šOE†p„”eÊn ǽ¥C (\ƒ(Ë ìê.“‹šbs+q8T¨nZ’EÄN$ˆäȱ†ðÂ’>\†ùªè2–ö}æÎœ~T ÎÈДL‚®¡‘·´ktF¼×svÑqº]*圕 ]©¸f¾—9¨ÃŽäº˜P;±.œ”Uwå˜q|VFa–MUwã·o^—Òd2 MJjÒf*IÍ…SÇiî6Ùo1§<²4NÉ}HÊ%ù0R~6þ^ó眥Kgro8q [ðx™Pt6ÛÖØ[Êä”âÆäj%¿x;© c'‚4Õš±ÝIƒ¥•Ö<§JîÅzôa¦á ®)Ë~#‹VôLlÓ'/ûäõëH-M2ìé(^ÈxDÒ ¡$ŸÛÖžYÇ<í”R=ÛOHR•²ŒÆ1Ó¥!(Ê>· Qô>²ž g\¤Yº Œ‹ žÒÁMDôÃ{ÕÛ I•’Ýu¶µ Ø˜/=gÍ"‘ÕíXy&¦m®o:]3òZä~æÊTîµ8eN‰1¹Z“ä.v×`2(ÅÍï1ɹ‰*è²çŒþdlùW2*.M|jÔSzO;0y`Ñòµóú=`Ø|‘}Fäk ‡:‡KrÚÓ†’ʼّf=“°ïpÆkÝíð+WQ5¡Ÿä.Öi_d°w)ÊïÚ˜ƒ˜ñÙ5ÌÉÖMQžgÚ «ôrEè Ó:u3•)I)¯IL‚siþ]É÷$‚L–ÇivP1oßp‹8wÎlËQeVgÿ»èø^ŸºÂ9¼üµV޼\Dp–…#KÛŸµUËrpÔtRœÈ‘’#7No«ÙUšë6ƒ¾‡åcngw*DöhÓvƒÙñkb”k=n s"GXF©HÀH}ï÷%ŽÃÍp ×~8‘^C¹uO`ϵM¯F6âU¼*iü¸úYšnŸÒè÷ö j;xÛ’yÿl`'mMB^Ö“–AGÐBÑÒM&£#l‘Î5q1SíQºˆC=hÙá©s•OQs*Gô…ô“u¢eÞ‡*Ä ÂC—&¿c8=}ì‡wmr1„p†oâÄîTÁz•cUÖ1Žªà,:'»ÒäÆýwÕÐovÝ0‡.fþ!¶ÍL~ òGfÈ2†‡¿g‰y‡áu’a§ û‡g¿—Ã"²_xbß8ÿB¬ ²âyÐ`/°-… ›y¤™a‰ó/7Gi/v8Îö6·Àûžh0Î9JÑØþ™±à&g0¾LÊç;×Íô®³%÷ C–¤˜ NË"X'ÕcCÙñÅÖ>ä9¡âÍOJ—ÁIçWìÉ´”ðÓ3ëÅ}7:[ÏmZ„-J[îâ`»ôo8žËŽ 4ÖˆJ±ê"÷{}Ù„ûL—å÷5ªÀ¶9õJv®¡ ä°cƒ˜_™`ó”?(*KÔõŒg2úéé5…ÊÕn¡½b<öG7&c¦Ff«ÚTÕÝHÐŽ¸zXe¶ª»$ç$X¹éœ=çÁñ´ð!Áu–Î2M×k& º˜Ï!ÍØèn’¾´ÆMñ‹FÛû2cD-åÓ !¶®ëe–á å\+uâišß¦Óœ„rüWõ ¹Ž­¹š‘>/¶3mB"²³!"aâÔ¾shD.óÌÞ•>›#H¸)uÕÚâdÆeÍJãÌÔ˜¸ʦ»%1­1¥g‚ˆQ^*UóˆÛñÅIãÌm“ŠÊ¥ÛMå›$ íÏkœû›BŠ÷œË¸ŠhLá|éT¸sf?$ƒÍ¶úÚ#Áé~xŒC(‰Ü'1¹9ó…EŽž) HÚÑ#Ì%“µg¿iõH½«,}þûçÐ'q ¤’ØyˆcÑI›[erZ’ãBOjNjø¤Šx!®É´YˆÜÍš¶N ã“FBëËK+!wœ¹´âp9¿\•-›L}HŸvnxäô„ø`n£WݤʂG|N¯Š›ê¸_aÝîC!èöÅÑGp½šíeZƧœ™¨I9Æ z8w‹P¯ Pa"Ús‹Z[äš!ÝwGGZÙµH’ U ­êšåì9ä9=#E¦jEBbdÉ”Ÿ•GfƒäNâaˆbáêTéÿ´Ù,/g+Vbn£ÔËʮޛ¹‚Š#”2>ÄÑ\"HZ×€z®­(¯£¸X‡8}ˆ-M:=ù ‡×LlaªQYHáÎP'Cé–_t*†Ioñ¸yë@»:…¹ÞwÿNrbÑÀ-é3‚!ª-é|ü3¥²•€µB*…MÙ¢ÀgÚä`Mõƒ‚8’¹ZÛôÉkËÏiµTãªÏ´Iå@ =¸xú€W'›#Kª"ˆˆ  ¯¤ƒ§c.|ŠPžEŽq™\%iÍÃóÐsÄMâò±×‚oÎëŽ-ZR]Œr:ÔÄ÷p_‘+hšß=Ü›™Æëz=Ü—¥ë^gM7.ëóçymOšà¥> ,Ö?ÂÇAFú1UE¥8A“³Žäq<ˆëMSIÃþýßæNÉýs Ø$<{Q,a¢sÔ½Ö—¡#Çu;xÈ÷>š/“j÷Œ9sƒN•1 Fäù$%Ô­‰ ÉóYy§¡)çPí•IS°ßxfå›ly«±Š®u*»:vfÝ$#êz/üÀ/÷×Djd0=’&ݫ똔c Dµ†»¸ó{±m:û}ÓîÆMÿ‡ñ àÊ@bû¡È{òïr<@ÂØ9@%¬d3ª°Òÿœÿf-œŒž­MH±ªÏ<3Ù<–þ™[ŒËe°„©BÖf/§4ˆ*;Åe®²mâŒ̰ÆõBZ0Î1½œ49ƒâ¸=—\ÓbÊó NGË™sBƒÕ4Ï¥Œœ>”\ËEzŸzí žkÛÉ>¡ôìÜï†êÕ‚aÇ®”=ç8ÒœÑ?#°nfšsPømn};ݰÁy™'ËÝÍs½}ÓÈãN^©íÆ~˜­:a;¡Ð !7TI£®}–•í[.£Œ‚Âyï\Û¡f¡@ë‰\ü—D;ÉãÆ¡)¥æìs%/ή‰ru+DZô lQ†× b³!€3E¥y~bLä;8z™ñ˜]ƒ”¯úd#»ø–©‡.±9Uþ•þaeƒ°kŠôf¨^=€Âµñ‘XœNöW´R}C58•E êó¢_Oìi¤Ñ!Ý\íø›¿ná]c‚`‡:Ñ_‘Â%Þg@•ã$=²æ3L°OœKz.áÔÍæåIû¸œ•cïBÜFLobPzúb¬E’þÔhz¸ÀüHçÂ^2)cT4×®†AžåHînm´’*“)„D‰Ä*E'Jç^íÙðÓ1Îͳ,+ù(ok?N! „ÛÇ ‰ÏNC4†­Z¢&_ˆD¶î¢F…¿–ŸÖ”ãqTÒ1)È"™g‚zöB1¢ Q©CX@à²+½\°ãØc.¬ŒpÌ=¾œhdiy³“i‡Í¾«-™Aâó⫦Æ+¿õ¾h6Ÿ6B˜ÌpIÓ.Hï¡´ Ðy‹ðžËÌ9ºœcŸÏXOÅ‘ †∭ºŸšØ”NÖ¿ª) 7r¬õÜÐ9™NÛ€­æ>†º~Ç}JŽB³$Ë Î£î¹Ö¥ûܯÇŒ-‹›±yÎÊ$îƒVlÉ3™uE«0’ˆñ!dI]'"ã¤k|í’$¤;œ’œSæ,ÐéãðÞýìì$XuÏAçmy¹m{ÂÍC;”7šewÚÆê0‹±!ñ8ñš§î©G4SRÏ‹ª|N8é 2çhÞò UaÆ+Ä ²%ÌoZ5Ò4ðJäQd–q¶Gp%GxY¬o£É{佸˃\`§#S9¨Ð´½Ë-rpM®C†'à.‚ã\âÜ£sÖ—²œA„ýùJ÷èåT4HJö>š9´~ÁVI'Gï¥á$Šr%pÛ#¹rÃãÚ‘ŽÃÃ.’Ž´ÄjÅŒœ:Iœ[[ù°#²+ý°†²€Ñhâ‘ rŒG‡T&n§#¤‹:¶ÀL á¡J>žþéÅÂG֬܊NB¼Iúg‹¤MdH;6wÙ¸/öe^”šÌéFì‚&âN¹¾»SLošpiφ*!·²ö”ÅÄâQ¦9+o%y§5=Iä‘"!ñìÿ;Lﳩìe ú7= ‘!“£©KL‡ªšeÖZÙ¢˜' ës :wònýO%c3—Ÿg|EÙkØ­MrNE-e޾–Á‡]¾ÿ\9‹uâmÓvšÜ0в+ 8£rÚAEärAÍsú©dfÁO` dÕä.à3õp–ÛfLê åC!ä­)"¤Ãó©‡ú¿Ði§73µ]—V‰ÆõÄžD²)®ã7Ü¢@¬¨IàÀr+§PE,“Å$ü ZÂ!³ExÅToV˜•Ù]´K…}C®¥:ƒÆ…yÛ2M­§ŽL–<± ‘«´àVÏ€:ǃ›ÐÏýƒÈÊÐbo›ít޲ƒ†kÏD',9){+»O’ðΈ ›¬"œ è&¦ ‹çͧˆªk:·Z’JêÔzÙ ‚_=+TIM0yä ñúC’$òˆp–\qD×:½‰wlAM™&´÷bÈ› … ŸŠQòM·¼Y†¦¬ãdß<ž2OhýkÆž[:ë.™¯ýG„Ãbèpð©@`ÑàœBèÚŠóÎBvòÄúå¤4Û7ÃìÓ˜Ý{8d›5é(0üãËéšEî="XÜôäV Ë %Xë®§³4‘|‰Þ^G‰3‡â´GQ§x¢”Þ|Òm–¶Ùí]i,X!þµÓläñá=ëŠçìZÝ…š‰#Ä àȆ¾¿Øöä´à¶æÓ+#47>kÐd¾T‹$ü:5‡¹cUŠöÌ)²úÊ7ÐrsïX€n{‰³L—U +fõÑUˆô€Dù‰æž˜Îúâ1S³á”þ’(¼ôqM—”ñËB(vïþZ,ô•ý>í¤çν š‚ô ô9’7Òãs[¢'¸z%þ…sap1«„á̘QKæMÊ0 d‘!tg†(²(Ý닞×9·0!ó©áZ<ã6/Fí\u­uhjLÌsV´Î~x>‹4lXßäè|¬•%Ü@à¶À32»Ïã9|“dÂIO>‹ÝHB<ØV—ßÁ]Jõ”žú¤íŽg7Ü•’“ Ÿ+u^¬A†Î™#äÈøN‚[eÖ&^–ûI'•Ñþ>.'¥¬ˆ2M}Ú c0ÍÀzî¦;œ ¹Ó_• Qà­JúB¦ˆI‚¯³¼ä "ñ”âßX̧L9°•Ù¥aVYðÅe=×—CŸU7Kq8€?Ù™2hÈ9Ó­Í>+Ï ^öþZ†Ò¬³7£¼©ìQ¾º¨8ÓŒ™¢ÔæIå-…Ê:žBÊÌ«„ßYN35’¨ä¬È¤ó!‘¿LPÖÉ“Ûu$Š[ ‰ý‘™(®@'œW£€›{.z䜟’ïrBçÊ‹ª0sþ8H›„ „Þ£îZcõ(>í¹rÖ:Ë\· ÷I”‹÷,Úo"ºŒP­úH×#N§.µØ9P‚ð¹tç«'ŒN$CR[.*T§Í1ªÇ+z~Øø—ÍÈ,tr»ó£”¨„Šã™tΛ»gbF¡6©Oxé%]ný™­uù…ÜÊNü¤´ qQ8óHdq­R"±>i $£X,Èi'¨Û dÎíeÇ+µ¹ôߎâX¸Òd?÷”ôœ9ÏέìºÍ\BqT­x²¼À¹pù*7®ª’5Å&˜´ýqª·¹LJÆC8s¯…ùuKèTë9oßÙ…Ó¢yž‹Ÿ%Þº±ä+Ä›Tåmì® âáFŸÃL‹¿R7­?É=Õýs4r\–Ùl¢1“xŽ:ÆZR8½Ì4ËìùdÇ\Š˜b–B?Áh<è`óµÈqÖRØžö‡æe2§™UaŸº-O×µ\ç¼½86 Bí&åºú[%(q2gÑΤ*ÇmS>eºòúڼǭÂDužP™›ì«ÎàQgÈ&$N„Œ‹UÚó„Ì>Ïá>çÎc¡E y^}Fòu“LZÑBáy8hVöŒÉ(!(GäÌet ûâÑùò°·™_4;™x…°¡cs¥Ë§gQÉ]¾áP-UÖl‚ÁÂÊì-y{¤6N° kXZÉæ±—¹¤@¦8-tFžè2)èå$ I(g›=½0aMÃÀc{mqäTÀ\Ä÷ïÎ.ñV± ¥Ù sL=Õ¼ÓÃ4]‘\÷ÄxV1Ê\w^Äd…ž´ÇcÉðòD¥'”Ëé¤ÉÌ ¤ø:ZΤ0ž‚qœübŦ]¥Â†eë!) 7!§’óÍrxÐÔ$¼fõô‰áELÎx©mÕ„´r°Vê $ `Yã:®¸/º•0qºspšøTŒ"·@öC¶¸:ä“I’ª€û_víïç œ˜Æ¼ž’.ÛQðkÿ‹ÿÅÿ¤au ùpymvpa2-2.6.4/mvpa2/data/tueb_meg_coord.xyz000066400000000000000000000210521323370031300206030ustar00rootroot00000000000000MLC11 6.43309 0.670899 13.4402 8.20804 0.69133 18.1158 MLC12 6.02874 3.34062 13.2801 7.75956 4.48484 17.8306 MLC13 5.39823 6.78026 11.8691 7.15929 9.73255 15.5017 MLC14 3.21363 8.61391 10.6813 4.06879 12.7677 13.3322 MLC15 0.95648 9.74185 8.79292 1.07282 14.5277 10.2404 MLC21 3.72035 2.14294 14.2558 5.11451 2.71475 19.0247 MLC22 3.85707 4.97217 13.5194 5.24876 6.75771 17.9789 MLC23 2.01625 6.9622 12.8764 2.86362 9.90188 16.8328 MLC24 0.150434 8.55218 11.4194 0.366156 12.6471 14.2826 MLC31 1.36801 3.98749 14.5124 2.27763 5.21968 19.2734 MLC32 -0.627059 5.97007 13.8514 -0.537318 8.6004 18.1042 MLC33 -3.24143 4.63291 14.2881 -4.4373 6.42974 18.7997 MLC41 1.3048 0.94737 14.9523 2.31824 1.11305 19.847 MLC42 -1.15389 2.67507 15.0747 -1.22037 3.46685 20.0125 MLC43 -4.00963 1.35956 14.7879 -5.5742 1.82642 19.5151 MLF11 13.2971 2.31383 3.15653 18.1465 3.5344 3.22999 MLF12 12.0735 5.18245 2.75578 16.321 7.81514 2.95661 MLF21 13.389 0.547957 5.8523 18.3004 1.05079 6.65094 MLF22 12.5779 3.7323 5.79963 17.1043 5.71197 6.57773 MLF23 10.9342 6.41337 5.20067 14.3995 10.0088 5.47705 MLF31 12.2649 2.2702 8.5339 16.6119 3.43185 10.7172 MLF32 11.0349 5.27666 8.18054 14.8047 8.00571 10.0118 MLF33 9.0207 7.49213 7.24406 11.5437 11.677 8.30899 MLF34 6.70453 8.82803 6.43962 8.85636 13.3163 6.92759 MLF41 10.9874 0.472447 10.7135 14.603 0.53096 14.1684 MLF42 10.2774 3.7256 10.5787 13.6676 5.3659 13.8694 MLF43 8.5787 6.63851 9.85316 10.9998 10.1559 12.4568 MLF44 6.1882 8.28856 9.40097 8.27662 12.3434 11.4527 MLF45 3.93468 9.67336 7.86596 4.86126 14.456 8.99736 MLF51 8.6925 2.04293 12.3176 11.2202 2.62519 16.5936 MLF52 7.74505 4.94581 11.9293 9.83169 7.12761 15.9166 MLO11 -10.6637 2.25014 6.732 -15.3931 3.16358 8.07787 MLO12 -9.2542 5.66291 7.07295 -13.4733 7.97569 8.43785 MLO21 -10.5418 4.25006 4.40446 -15.1684 6.0996 4.83642 MLO22 -8.71712 7.0638 4.47767 -12.4433 10.3657 4.95283 MLO31 -11.3332 2.50767 1.43071 -16.2279 3.46638 1.79954 MLO32 -10.0558 5.70851 1.76321 -14.3255 8.2826 2.15824 MLO33 -7.98397 8.33461 1.75274 -11.1541 12.178 2.18978 MLO41 -10.9907 4.31508 -1.06132 -15.6057 6.20352 -0.676544 MLO42 -9.2975 7.15523 -1.04352 -13.0713 10.4091 -0.614928 MLO43 -6.8026 9.26602 -1.07131 -9.30956 13.571 -0.629918 MLP11 -5.86214 3.17431 13.5085 -8.62626 4.27807 17.5277 MLP12 -5.12474 6.2357 12.502 -7.48496 8.94491 15.9808 MLP13 -2.55228 7.69497 12.3121 -3.43919 11.2986 15.6648 MLP21 -8.26949 1.84841 11.5154 -12.143 2.49476 14.6124 MLP22 -7.39821 4.57366 11.5478 -10.9638 6.24941 14.6286 MLP31 -9.25909 3.66496 9.27152 -13.4634 5.12296 11.5542 MLP32 -7.44854 6.64877 9.62921 -10.9382 9.51258 11.7818 MLP33 -4.88893 8.3254 10.1346 -7.0294 12.2863 12.3123 MLP34 -2.02824 9.40274 9.60955 -2.64128 14.0937 11.2319 MLT11 8.6119 8.10479 4.18194 10.8829 12.5483 4.51446 MLT12 4.68265 9.79876 4.84144 6.10382 14.5807 5.19647 MLT13 1.74361 10.2468 5.86873 1.79731 15.2272 6.32163 MLT14 -1.23692 10.4511 6.66823 -1.56995 15.4262 7.05632 MLT15 -4.25098 9.65316 7.19067 -5.87866 14.3207 7.9504 MLT16 -7.02166 8.12138 7.14954 -10.0117 12.0122 8.11575 MLT21 10.1314 7.4154 1.60863 13.0674 11.4552 1.87678 MLT22 6.53594 9.2105 2.4837 8.56757 13.7704 2.78775 MLT23 2.71556 10.983 2.99684 3.13757 15.9502 3.39922 MLT24 -0.307514 11.253 3.69686 -0.38345 16.2335 4.14546 MLT25 -3.37249 11.0274 4.28335 -4.57388 15.8464 4.87185 MLT26 -6.15779 9.01815 4.43457 -8.55371 13.384 4.89429 MLT31 7.92398 8.757 -0.177182 10.1259 13.24 0.0820664 MLT32 4.4619 10.1523 0.553291 5.77901 14.9667 0.868532 MLT33 1.06829 11.3852 0.736023 1.15405 16.371 1.12042 MLT34 -2.12556 11.5306 1.32146 -2.66397 16.4888 1.69418 MLT35 -5.27191 10.4136 1.66851 -7.09323 15.0522 2.09199 MLT41 5.79559 9.91298 -2.12984 7.83593 14.4674 -1.80332 MLT42 2.6779 11.383 -1.90355 3.31433 16.3307 -1.5454 MLT43 -0.584949 11.7246 -1.62847 -0.574255 16.7111 -1.24482 MLT44 -3.92685 11.4394 -1.23133 -4.97304 16.3117 -0.808614 MRC11 6.21769 -2.19372 13.3144 7.95556 -2.87797 17.9539 MRC12 5.44419 -4.7393 12.9214 6.96079 -6.54262 17.3328 MRC13 4.29595 -7.93743 11.1834 5.65095 -11.3622 14.5669 MRC14 1.8635 -9.31441 9.88533 2.20135 -13.7488 12.1732 MRC15 -0.509474 -9.8942 7.92446 -0.986795 -14.771 8.92541 MRC21 3.31778 -3.35588 14.0095 4.59469 -4.48621 18.711 MRC22 3.04587 -6.04371 13.0407 4.1599 -8.44387 17.2846 MRC23 0.940487 -7.68634 12.2308 1.34229 -11.1007 15.8631 MRC24 -1.13384 -8.86902 10.679 -1.47794 -13.2229 13.1158 MRC31 0.726879 -4.81547 14.1332 1.42428 -6.62335 18.7438 MRC32 -1.54256 -6.50936 13.3101 -1.8362 -9.40981 17.3738 MRC33 -3.91024 -4.79024 13.8456 -5.38908 -6.75822 18.1991 MRC41 1.12218 -1.89037 14.8375 2.03148 -2.6034 19.7034 MRC42 -1.60708 -3.2178 14.8056 -1.76942 -4.44994 19.65 MRC43 -4.20643 -1.50156 14.662 -5.86477 -2.14258 19.3366 MRF11 12.8344 -3.89177 2.89762 17.4602 -5.79025 2.79548 MRF12 11.1932 -6.47897 2.22351 15.0168 -9.70273 2.20064 MRF21 13.1615 -2.41637 5.72507 17.9518 -3.66274 6.44057 MRF22 11.968 -5.50113 5.42215 16.2076 -8.09881 5.96082 MRF23 9.86615 -7.73751 4.57047 12.8038 -11.7849 4.52853 MRF31 11.7709 -4.16883 8.2679 15.908 -6.13432 10.2763 MRF32 10.1103 -6.94094 7.61327 13.4821 -10.2662 9.22145 MRF33 7.82553 -8.68062 6.53342 9.71209 -13.2633 7.20594 MRF34 5.32681 -9.64965 5.64713 6.88249 -14.4026 5.68813 MRF41 10.7996 -2.39653 10.5441 14.28 -3.30234 14.0196 MRF42 9.58512 -5.52483 10.1649 12.7289 -7.86256 13.2736 MRF43 7.45092 -8.04023 9.21968 9.42407 -12.072 11.4252 MRF44 4.8546 -9.30636 8.61867 6.43061 -13.7475 10.2935 MRF45 2.4373 -10.1768 7.01155 2.78194 -15.1236 7.66208 MRF51 8.27346 -3.73547 12.0659 10.6485 -5.10803 16.2478 MRF52 6.88668 -6.48305 11.3884 8.65736 -9.20069 15.1952 MRO11 -10.8754 -0.675293 6.58978 -15.6837 -1.10274 7.89778 MRO12 -9.97506 -4.24173 6.64643 -14.4451 -6.16784 7.79597 MRO21 -11.0467 -2.43461 4.08018 -15.8504 -3.78167 4.43088 MRO22 -9.66475 -5.52537 3.94068 -13.7849 -8.3551 4.1137 MRO31 -11.5425 -0.372808 1.28347 -16.5168 -0.752355 1.63668 MRO32 -10.7389 -3.79488 1.34943 -15.342 -5.74082 1.54341 MRO33 -8.99111 -6.54759 1.10855 -12.626 -9.98162 1.19738 MRO41 -11.436 -2.08939 -1.36915 -16.2994 -3.21649 -1.06866 MRO42 -10.1452 -5.16246 -1.59278 -14.4425 -7.71387 -1.40293 MRO43 -7.99941 -7.50194 -1.79859 -11.0985 -11.4269 -1.74295 MRP11 -6.29115 -2.90911 13.2375 -9.21765 -3.94225 17.1593 MRP12 -6.01772 -5.93669 11.9547 -8.73637 -8.58155 15.2145 MRP13 -3.69834 -7.72773 11.6083 -5.04758 -11.4434 14.672 MRP21 -8.47255 -1.059 11.3807 -12.4114 -1.45617 14.4369 MRP22 -7.98497 -3.86918 11.1891 -11.794 -5.34002 14.0771 MRP31 -9.68174 -2.51387 9.00168 -14.0754 -3.57787 11.1409 MRP32 -8.35637 -5.72725 9.07802 -12.1879 -8.30593 10.9971 MRP33 -6.11621 -7.82427 9.45043 -8.73285 -11.6841 11.2581 MRP34 -3.47443 -9.27031 8.76319 -4.57786 -13.9783 10.04 MRT11 7.35783 -8.95613 3.42973 8.96071 -13.6931 3.36371 MRT12 3.18528 -10.2006 3.97731 4.01894 -15.131 3.88416 MRT13 0.163654 -10.3113 4.95292 -0.291589 -15.2916 5.00034 MRT14 -2.80721 -10.2037 5.73537 -3.67394 -15.1293 5.75371 MRT15 -5.69846 -8.93087 6.40139 -7.77051 -13.4726 6.70471 MRT16 -8.14655 -7.07335 6.48481 -11.6537 -10.5794 7.13316 MRT21 8.9223 -8.21674 0.92677 11.2664 -12.6331 0.810166 MRT22 5.08976 -9.67627 1.68012 6.60893 -14.4385 1.51832 MRT23 1.05293 -10.8959 2.0395 0.997696 -15.8966 1.98687 MRT24 -1.96853 -10.8517 2.74041 -2.54508 -15.8195 2.70371 MRT25 -5.02706 -10.2577 3.38722 -6.59675 -15.0061 3.41225 MRT26 -7.41965 -7.86832 3.6667 -10.3938 -11.8867 3.80759 MRT31 6.59421 -9.10791 -0.964231 8.17209 -13.8518 -1.10127 MRT32 2.92409 -10.1208 -0.340806 3.70329 -15.06 -0.439392 MRT33 -0.581357 -10.9589 -0.245669 -1.09681 -15.9333 -0.296408 MRT34 -3.79206 -10.6467 0.34972 -4.7993 -15.5451 0.288299 MRT35 -6.71049 -8.9923 0.812736 -8.97932 -13.4493 0.829584 MRT41 4.39355 -9.74924 -2.96818 5.67052 -14.5828 -3.10546 MRT42 1.1087 -10.8346 -2.87428 0.939914 -15.8321 -2.96821 MRT43 -2.19632 -10.7572 -2.61693 -2.92289 -15.7052 -2.6713 MRT44 -5.4643 -10.0776 -2.17081 -7.26274 -14.7443 -2.19027 MZC01 3.80106 -0.609105 14.278 5.1994 -0.942972 19.0682 MZC02 -1.44037 -0.281826 15.2444 -1.44856 -0.505828 20.2406 MZF01 13.5483 -0.843879 3.22514 18.5374 -1.18422 3.15103 MZF02 12.5461 -0.970928 8.48035 16.9593 -1.43099 10.7878 MZF03 8.8011 -0.885649 12.2682 11.2482 -1.26282 16.6135 MZO01 -11.3049 0.892652 4.24027 -16.2624 1.26524 4.78533 MZO02 -11.6667 1.16014 -0.982373 -16.644 1.51473 -0.645077 MZP01 -6.47856 0.137594 13.504 -9.59148 0.23432 17.4172 MZP02 -9.84413 0.586053 9.37474 -14.2462 0.789525 11.7397 pymvpa2-2.6.4/mvpa2/data/v73.mat000066400000000000000000000043001323370031300161710ustar00rootroot00000000000000MATLAB 7.0 MAT-file, Platform: GLNXA64, Created on: Tue Feb 9 16:41:23 2010 HDF5 schema 0.05 . IM‰HDF  ÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿ`ˆ¨TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`HEAPXÈxy@0 ?@4 4ÿ80ð?@@@@ƒÖqK 0 MATLAB_classdoublePSNOD ¨ƒÖqK 0 MATLAB_classlogical @ MATLAB_int_decode pymvpa2-2.6.4/mvpa2/data/xavr1010.dat000066400000000000000000000030041323370031300170230ustar00rootroot00000000000000 Fp1 69 -0.307 0.946 0.099 Fp2 69 0.307 0.946 0.099 Fz 69 -0.000 0.672 0.741 F3 69 -0.516 0.637 0.574 F4 69 0.516 0.637 0.574 F7 69 -0.805 0.585 0.099 F8 69 0.805 0.585 0.099 FC1 69 -0.313 0.343 0.835 FC2 69 0.313 0.343 0.835 FC6 69 0.853 0.327 0.407 FC5 69 -0.853 0.327 0.407 FT9 69 -0.883 0.321 -0.342 FT10 69 0.883 0.321 -0.342 Cz 69 0.000 0.000 1.000 C3 69 -0.672 -0.000 0.741 C4 69 0.672 0.000 0.741 T7 69 -0.995 -0.000 0.099 T8 69 0.995 0.000 0.099 CP1 69 -0.313 -0.345 0.835 CP2 69 0.313 -0.345 0.835 CP5 69 -0.853 -0.327 0.407 CP6 69 0.853 -0.327 0.407 TP9 69 -0.883 -0.321 -0.342 TP10 69 0.883 -0.321 -0.342 Pz 69 -0.000 -0.672 0.741 P3 69 -0.516 -0.637 0.574 P4 69 0.516 -0.637 0.574 P7 69 -0.805 -0.585 0.099 P8 69 0.805 -0.585 0.099 O1 69 -0.307 -0.946 0.099 O2 69 0.307 -0.946 0.099 pymvpa2-2.6.4/mvpa2/datasets/000077500000000000000000000000001323370031300157515ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/datasets/__init__.py000066400000000000000000000055621323370031300200720ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Data containers and utility functions Virtually any processing done with PyMVPA involves datasets -- the primary form of data representation in PyMVPA. Datasets serve as containers for input data, as well as the return datatype of more complex PyMVPA algorithms. Most of the time a dataset will hold its samples in a NumPy array. However, we have already seen that not only arrays can be used to create a dataset (e.g. the first example passed the samples as a nested list). Actually, the dataset implementation supports multiple samples container types (benefitting from Python being a dynamically typed programming language). It follows a simple rule to decide what can be stored: * If samples are passed as a list, it is converted into a NumPy array. * All other objects are tested whether they comply with two criteria: a. It must have a `dtype` attribute that reports the datatype of the samples in a way that is compatible with the NumPy array interface. b. It must have a `shape` attribute that behave similar to that of NumPy arrays *and* the reported shape must indicate at least one present axis (i.e. so-called zero-dim arrays are not supported). If the above conditions are verified, one-dimensional data is converted into a two-dimensional array, by considering all data as multiple samples with a single feature. Otherwise all datatypes that fulfill these conditions can serve as a samples container inside a dataset. However, some useful functionality provided by a dataset might add additional requirements, and hence, will be unavailable with incompatible containers. Most popular alternatives to plain NumPy arrays are NumPy matrices, SciPy's sparse matrices, and custom ndarray subclasses. All of these examples should work with a dataset. It should be noted that the samples container is stored *as-is* in the dataset (unless it was a list that got converted into an array): >>> from mvpa2.suite import * >>> import scipy.sparse as sparse >>> mat = sparse.csc_matrix((10000, 20000)) >>> sparse_ds = Dataset(mat) >>> type(sparse_ds.samples) >>> len(sparse_ds) 10000 >>> sparse_ds.nfeatures 20000 """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.datasets') # nothing in here that works without the base class from mvpa2.datasets.base import Dataset, dataset_wizard from mvpa2.base.dataset import hstack, vstack if __debug__: debug('INIT', 'mvpa2.datasets end') pymvpa2-2.6.4/mvpa2/datasets/base.py000066400000000000000000000603221323370031300172400ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PyMVPA's common Dataset container.""" __docformat__ = 'restructuredtext' import numpy as np import copy from mvpa2.base import warning from mvpa2.base.dataset import AttrDataset from mvpa2.base.dataset import _expand_attribute from mvpa2.misc.support import idhash as idhash_ from mvpa2.mappers.base import ChainMapper from mvpa2.featsel.base import StaticFeatureSelection from mvpa2.mappers.flatten import mask_mapper, FlattenMapper if __debug__: from mvpa2.base import debug class Dataset(AttrDataset): __doc__ = AttrDataset.__doc__ def get_mapped(self, mapper): """Feed this dataset through a trained mapper (forward). Parameters ---------- mapper : Mapper This mapper instance has to be trained. Returns ------- Dataset The forward-mapped dataset. """ # if we use .forward, no postcall is called... is that # desired? doesn't seem to have major impact on unittests # BUT since postcall might change dimensionality/meaning of # data, it would not be any longer reversible; more over # since chain of .forwards do not invoke postcalls, also # forward would lead to different behavior #mds = mapper(self) mds = mapper.forward(self) mds._append_mapper(mapper) return mds def _append_mapper(self, mapper): if not 'mapper' in self.a: self.a['mapper'] = mapper return pmapper = self.a.mapper # otherwise we have a mapper already, but is it a chain? if not isinstance(pmapper, ChainMapper): self.a.mapper = ChainMapper([pmapper]) # is a chain mapper # merge slicer? lastmapper = self.a.mapper[-1] if isinstance(lastmapper, StaticFeatureSelection): try: # try whether mappers can be merged lastmapper += mapper except TypeError: # append new one if not self.a.mapper.append(mapper) else: self.a.mapper.append(mapper) def select(self, sadict=None, fadict=None, strict=True): """Helper to select samples/features given dictionaries describing selection Generally __getitem__ (i.e. []) should be used, but this function might be useful whenever non-strict selection (strict=False) is required. See :meth:`~mvpa2.base.collections.UniformLengthCollection.match()` for more information about specification of selection dictionaries. Parameters ---------- sa, fa : dict, optional Dictionaries describing selection for samples/features correspondingly. strict : bool, optional If True, absent matching to any specified selection key/value pair would result in ValueError exception. If False, it would allow to not have matches, but if only a single value for a key is given or none of the values match -- you will end up with empty selection. """ if sadict is None and fadict is None: raise RuntimeError("Specify selection at least for samples or features") assert(isinstance(strict, bool)) # Let's be simple/obvious at cost of minimal duplication if fadict is None: return self[self.sa.match(sadict, strict=strict)] elif sadict is None: return self[:, self.fa.match(fadict, strict=strict)] else: return self[self.sa.match(sadict, strict=strict), self.fa.match(fadict, strict=strict)] def __getitem__(self, args): # uniformize for checks below; it is not a tuple if just single slicing # spec is passed if not isinstance(args, tuple): args = (args,) # if we get an slicing array for feature selection and it is *not* 1D # try feeding it through the mapper (if there is any) if len(args) > 1 and isinstance(args[1], np.ndarray) \ and len(args[1].shape) > 1 and 'mapper' in self.a: args = list(args) args[1] = self.a.mapper.forward1(args[1]) # check if any of the args is a dict, which would require fancy selection args_ = [] for i, arg in enumerate(args): if isinstance(arg, dict): col = (self.sa, self.fa)[i] args_.append(col.match(arg)) else: args_.append(arg) args = tuple(args_) # let the base do the work ds = super(Dataset, self).__getitem__(args) # and adjusting the mapper (if any) if len(args) > 1 and 'mapper' in ds.a: # create matching mapper # the mapper is just appended to the dataset. It could also be # actually used to perform the slicing and prevent duplication of # functionality between the Dataset.__getitem__ and the mapper. # However, __getitem__ is sometimes more efficient, since it can # slice samples and feature axis at the same time. Moreover, the # mvpa2.base.dataset.Dataset has no clue about mappers and should # be fully functional without them. subsetmapper = StaticFeatureSelection( args[1], dshape=self.samples.shape[1:]) # do not-act forward mapping to charge the output shape of the # slice mapper without having it to train on a full dataset (which # is most likely more expensive) subsetmapper.forward(np.zeros((1,) + self.shape[1:], dtype='bool')) # mapper is ready to use -- simply store ds._append_mapper(subsetmapper) return ds def find_collection(self, attr): """Lookup collection that contains an attribute of a given name. Collections are searched in the following order: sample attributes, feature attributes, dataset attributes. The first collection containing a matching attribute is returned. Parameters ---------- attr : str Attribute name to be looked up. Returns ------- Collection If not matching collection is found a LookupError exception is raised. """ if attr in self.sa: col = self.sa if __debug__ and (attr in self.fa or attr in self.a): warning("An attribute with name '%s' is also present " "in another attribute collection (fa=%s, a=%s) -- make " "sure that you got the right one (see ``col`` " "argument)." % (attr, attr in self.fa, attr in self.a)) elif attr in self.fa: col = self.fa if __debug__ and attr in self.a: warning("An attribute with name '%s' is also present " "in the dataset attribute collection -- make sure " "that you got the right one (see ``col`` argument)." % (attr,)) elif attr in self.a: col = self.a # we don't need to warn here, since it wouldn't happen else: raise LookupError("Cannot find '%s' attribute in any dataset " "collection." % attr) return col def _collection_id2obj(self, col): if col == 'sa': col = self.sa elif col == 'fa': col = self.fa elif col == 'a': col = self.a else: raise LookupError("Unknown collection '%s'. Possible values " "are: 'sa', 'fa', 'a'." % col) return col def set_attr(self, name, value): """Set an attribute in a collection. Parameters ---------- name : str Collection and attribute name. This has to be in the same format as for ``get_attr()``. value : array Value of the attribute. """ if '.' in name: col, name = name.split('.')[0:2] # translate collection names into collection col = self._collection_id2obj(col) else: # auto-detect collection col = self.find_collection(name) col[name] = value def get_attr(self, name): """Return an attribute from a collection. A collection can be specified, but can also be auto-detected. Parameters ---------- name : str Attribute name. The attribute name can also be prefixed with any valid collection name ('sa', 'fa', or 'a') separated with a '.', e.g. 'sa.targets'. If no collection prefix is found auto-detection of the collection is attempted. Returns ------- (attr, collection) 2-tuple: First element is the requested attribute and the second element is the collection that contains the attribute. If no matching attribute can be found a LookupError exception is raised. """ if '.' in name: col, name = name.split('.')[0:2] # translate collection names into collection col = self._collection_id2obj(col) else: # auto-detect collection col = self.find_collection(name) return (col[name], col) def item(self): """Provide the first element of samples array. Notes ----- Introduced to provide compatibility with `numpy.asscalar`. See `numpy.ndarray.item` for more information. """ return self.samples.item() @property def idhash(self): """To verify if dataset is in the same state as when smth else was done Like if classifier was trained on the same dataset as in question """ res = 'self@%s samples@%s' % (idhash_(self), idhash_(self.samples)) for col in (self.a, self.sa, self.fa): # We cannot count on the order the values in the dict will show up # with `self._data.value()` and since idhash will be order-dependent # we have to make it deterministic keys = col.keys() keys.sort() for k in keys: res += ' %s@%s' % (k, idhash_(col[k].value)) return res @classmethod def from_wizard(cls, samples, targets=None, chunks=None, mask=None, mapper=None, flatten=None, space=None): """Convenience method to create dataset. Datasets can be created from N-dimensional samples. Data arrays with more than two dimensions are going to be flattened, while preserving the first axis (separating the samples) and concatenating all other as the second axis. Optionally, it is possible to specify targets and chunk attributes for all samples, and masking of the input data (only selecting elements corresponding to non-zero mask elements Parameters ---------- samples : ndarray N-dimensional samples array. The first axis separates individual samples. targets : scalar or ndarray, optional Labels for all samples. If a scalar is provided its values is assigned as label to all samples. chunks : scalar or ndarray, optional Chunks definition for all samples. If a scalar is provided its values is assigned as chunk of all samples. mask : ndarray, optional The shape of the array has to correspond to the shape of a single sample (shape(samples)[1:] == shape(mask)). Its non-zero elements are used to mask the input data. mapper : Mapper instance, optional A trained mapper instance that is used to forward-map possibly already flattened (see flatten) and masked samples upon construction of the dataset. The mapper must have a simple feature space (samples x features) as output. Use a `ChainMapper` to achieve that, if necessary. flatten : None or bool, optional If None (default) and no mapper provided, data would get flattened. Bool value would instruct explicitly either to flatten before possibly passing into the mapper if no mask is given. space : str, optional If provided it is assigned to the mapper instance that performs the initial flattening of the data. Returns ------- instance : Dataset """ # for all non-ndarray samples you need to go with the constructor samples = np.asanyarray(samples) # compile the necessary samples attributes collection sa_items = {} if targets is not None: sa_items['targets'] = _expand_attribute(targets, samples.shape[0], 'targets') if chunks is not None: # unlike previous implementation, we do not do magic to do chunks # if there are none, there are none sa_items['chunks'] = _expand_attribute(chunks, samples.shape[0], 'chunks') # common checks should go into __init__ ds = cls(samples, sa=sa_items) # apply mask through mapper if mask is None: # if we have multi-dim data if len(samples.shape) > 2 and \ ((flatten is None and mapper is None) # auto case or flatten): # bool case fm = FlattenMapper(shape=samples.shape[1:], space=space) ds = ds.get_mapped(fm) else: mm = mask_mapper(mask, space=space) mm.train(ds) ds = ds.get_mapped(mm) # apply generic mapper if mapper is not None: ds = ds.get_mapped(mapper) return ds @classmethod def from_channeltimeseries(cls, samples, targets=None, chunks=None, t0=None, dt=None, channelids=None): """Create a dataset from segmented, per-channel timeseries. Channels are assumes to contain multiple, equally spaced acquisition timepoints. The dataset will contain additional feature attributes associating each feature with a specific `channel` and `timepoint`. Parameters ---------- samples : ndarray Three-dimensional array: (samples x channels x timepoints). t0 : float Reference time of the first timepoint. Can be used to preserve information about the onset of some stimulation. Preferably in seconds. dt : float Temporal distance between two timepoints. Preferably in seconds. channelids : list List of channel names. targets, chunks See `Dataset.from_wizard` for documentation about these arguments. """ # check samples if len(samples.shape) != 3: raise ValueError( "Input data should be (samples x channels x timepoints. Got: %s" % samples.shape) if t0 is not None and dt is not None: timepoints = np.arange(t0, t0 + samples.shape[2] * dt, dt) # broadcast over all channels timepoints = np.vstack([timepoints] * samples.shape[1]) else: timepoints = None if channelids is not None: if len(channelids) != samples.shape[1]: raise ValueError( "Number of channel ids does not match channels in the " "sample data. Expected %i, but got %i" % (samples.shape[1], len(channelids))) # broadcast over all timepoints channelids = np.dstack([channelids] * samples.shape[2])[0] ds = cls.from_wizard(samples, targets=targets, chunks=chunks) # add additional attributes if timepoints is not None: ds.fa['timepoints'] = ds.a.mapper.forward1(timepoints) if channelids is not None: ds.fa['channels'] = ds.a.mapper.forward1(channelids) return ds # shortcut properties S = property(fget=lambda self: self.samples) targets = property(fget=lambda self: self.sa.targets, fset=lambda self, v: self.sa.__setattr__('targets', v)) uniquetargets = property(fget=lambda self: self.sa['targets'].unique) T = targets UT = property(fget=lambda self: self.sa['targets'].unique) chunks = property(fget=lambda self: self.sa.chunks, fset=lambda self, v: self.sa.__setattr__('chunks', v)) uniquechunks = property(fget=lambda self: self.sa['chunks'].unique) C = chunks UC = property(fget=lambda self: self.sa['chunks'].unique) mapper = property(fget=lambda self: self.a.mapper) O = property(fget=lambda self: self.a.mapper.reverse(self.samples)) # convenience alias dataset_wizard = Dataset.from_wizard class HollowSamples(object): """Samples container that doesn't store samples. The purpose of this class is to provide an object that can be used as ``samples`` in a Dataset, without having actual samples. Instead of storing multiple samples it only maintains a IDs for samples and features it pretends to contain. Using this class in a dataset in conjuction will actual attributes, will yield a lightweight dataset that is compatible with the majority of all mappers and can be used to 'simulate' processing by mappers. The class offers acces to the sample and feature IDs via its ``sid`` and ``fid`` members. """ def __init__(self, shape=None, sid=None, fid=None, dtype=np.float): """ Parameters ---------- shape : 2-tuple or None Shape of the pretend-sample array (nsamples x nfeatures). Can be left out if both ``sid`` and ``fid`` are provided. sid : 1d-array or None Vector of sample IDs. Can be left out if ``shape`` is provided. fid : 1d-array or None Vector of feature IDs. Can be left out if ``shape`` is provided. dtype : type or str Pretend-datatype of the non-existing samples. """ if shape is None and sid is None and fid is None: raise ValueError("Either shape or ID vectors have to be given") if shape is not None and not len(shape) == 2: raise ValueError("Only two-dimensional shapes are supported") if sid is None: self.sid = np.arange(shape[0], dtype='uint') else: self.sid = sid if fid is None: self.fid = np.arange(shape[1], dtype='uint') else: self.fid = fid self.dtype = dtype # sanity check if shape is not None and not len(self.sid) == shape[0] \ and not len(self.fid) == shape[1]: raise ValueError("Provided ID vectors do not match given `shape`") def __reduce__(self): return (self.__class__, ((len(self.sid), len(self.fid)), self.sid, self.fid, self.dtype)) def copy(self, deep=True): return deep and copy.deepcopy(self) or copy.copy(self) @property def shape(self): return (len(self.sid), len(self.fid)) @property def samples(self): return np.zeros((len(self.sid), len(self.fid)), dtype=self.dtype) def __array__(self, dtype=None): # come up with a fake array of proper dtype return np.zeros((len(self.sid), len(self.fid)), dtype=self.dtype) def __getitem__(self, args): if not isinstance(args, tuple): args = (args,) if len(args) > 2: raise ValueError("Too many arguments (%i). At most there can be " "two arguments, one for samples selection and one " "for features selection" % len(args)) if len(args) == 1: args = [args[0], slice(None)] else: args = [a for a in args] # ints need to become lists to prevent silent dimensionality changes # of the arrays when slicing for i, a in enumerate(args): if isinstance(a, int): args[i] = [a] # apply to vectors sid = self.sid[args[0]] fid = self.fid[args[1]] return HollowSamples((len(sid), len(fid)), sid=sid, fid=fid, dtype=self.dtype) def view(self): """Return itself""" return self def preprocessed_dataset( src, raw_loader, ds_converter, preproc_raw=None, preproc_ds=None, add_sa=None, **kwargs): """ Convenience function to load and preprocess data into a dataset. It wraps any given callable that converts data in some format into a PyMVPA dataset. Specifically, this function does three things. 1. Provide an interface for pre-processing in raw data space. 2. Convenience functionality to add sample attributes to the dataset. 3. Provide an interface for sample pre-processing after initial conversion into a dataset First, data is loaded with the specific ``raw_loader``, and any desired raw data pre-processing is performed by calling `` preproc_raw`` with the output of the loader function. Next, ``ds_converter`` is called to yield an initial dataset. The user is responsible for passing callabled that are input/output compatible with each other. Afterwards, any additional sample attributes are assigned to the dataset. Lastly, the resulting dataset is subjected to another pre-processing step by passing it to ``preproc_ds``. This is another callable that can be any of PyMVPA's mapper implementations (or another functions that takes a dataset as argument and returns a dataset). Parameters ---------- src : any Specification of the data source in any format that is understood by ``raw_loader``. raw_loader : callable Callable that takes ``src`` as argument, and returned data in a form that is understood by ``ds_converter`` (and any given ``preproc_raw`` callable). ds_converter : callable Callable that takes the output of ``raw_loader`` or ``preproc_raw`` as argument and returns a PyMVPA dataset. preproc_raw : callable or None If not None, this callable is used to perform initial preprocessing after loading the data from its source. Must return data in a form that is understood by ``ds_converter``. preproc_ds : callable or None If not None, this callable will be called with the created dataset to perform any additional pre-processing. The callable must return a dataset. add_sa : dict or recarray or None Additional sample attributes to assign to the dataset. In case of a NumPy record array, all values for each sub-dtype are assigned as an attribute under their respective field name. **kwargs Any additional arguments are passed on to ``ds_converter``. Returns ------- Dataset Examples -------- Load 4D BOLD fMRI data >>> import nibabel as nb >>> from mvpa2.datasets.mri import fmri_dataset >>> from mvpa2.mappers.detrend import PolyDetrendMapper >>> ds = preprocessed_dataset( ... 'mvpa2/data/bold.nii.gz', nb.load, fmri_dataset, ... mask='mvpa2/data/mask.nii.gz', ... preproc_ds=PolyDetrendMapper(polyord=2, auto_train=True)) """ raw = raw_loader(src) if preproc_raw is not None: raw = preproc_raw(raw) ds = ds_converter(raw, **kwargs) if add_sa is not None: if hasattr(add_sa, 'dtype') and add_sa.dtype.names is not None: # this is a recarray iter_ = add_sa.dtype.names else: # assume dict iter_ = add_sa for sa in iter_: ds.sa[sa] = add_sa[sa] if preproc_ds is not None: ds = preproc_ds(ds) return ds pymvpa2-2.6.4/mvpa2/datasets/channel.py000066400000000000000000000042661323370031300177430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dataset handling data structured in channels.""" __docformat__ = 'restructuredtext' # # # THIS CODE IS OBSOLETE! # # PLEASE PORT substract_baseline() AND resample() TO WORK WITH ANY DATASET. # from mvpa2.base import warning warning("Deprecated: ChannelDataset has vanished already") if False: # just to please Python so it could parse the file ##REF: Name was automagically refactored def substract_baseline(self, t=None): """Substract mean baseline signal from the each timepoint. The baseline is determined by computing the mean over all timepoints specified by `t`. The samples of the dataset are modified in-place and nothing is returned. Parameters ---------- t : int or float or None If an integer, `t` denotes the number of timepoints in the from the start of each sample to be used to compute the baseline signal. If a floating point value, `t` is the duration of the baseline window from the start of each sample in whatever unit corresponding to the datasets `samplingrate`. Finally, if `None` the `t0` property of the dataset is used to determine `t` as it would have been specified as duration. """ # if no baseline length is given, use t0 if t is None: t = np.abs(self.t0) # determine length of baseline in samples if isinstance(t, float): t = np.round(t * self.samplingrate) # get original data data = self.O # compute baseline # XXX: shouldn't this be done per chunk? baseline = np.mean(data[:, :, :t], axis=2) # remove baseline data -= baseline[..., np.newaxis] # put data back into dataset self.samples[:] = self.mapForward(data) pymvpa2-2.6.4/mvpa2/datasets/cosmo.py000066400000000000000000001016251323370031300174500ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dataset from CoSMoMVPA_ This module provides basic I/O support for datasets in CoSMoMVPA_. The current implementation provides (1) loading and saving a CoSMoMVPA dataset struct, which is converted to a PyMVPA Dataset object; and (2) loading a CoSMoMVPA neighborhood struct, which is converted to a CoSMoQueryEngine object that inherits from QueryEngineInterface. A use case is running searchlights on MEEG data, e.g.: 1. FieldTrip_ is used to preprocess MEEG data 2. CoSMoMVPA is used to convert the preprocessed MEEG data to a CoSMoMVPA dataset struct and generate neighborhood information for the searchlight 3. this module (mvpa2.datasets.cosmo) is used to import the preprocessed MEEG data and the neighborhood information into PyMVPA-objects 4. PyMVPA is used to run a searchlight with a Measure of interest 5. this module (mvpa2.datasets.cosmo) is used to export the searchlight output to a CoSMoMVPA dataset struct 6. CoSMoMVPA is used to convert the CoSMoMVPA dataset struct with the searchlight output to a FieldTrip struct 7. FieldTrip is used to visualize the results Example ======= Suppose that in Matlab using CoSMoMVPA, two structs were created: ds (with fields .samples, .sa, .fa and .a) containing a dataset (e.g. an fMRI, MEEG, or surface-based dataset). Such a struct is typically defined in CoSMoMVPA using cosmo_{fmri,meeg,surface}_dataset nbrhood (with fields .neighbors, .fa and .a) containing neighborhood information for each feature in ds. Such a struct is typically defined in CoSMoMVPA using cosmo_neighborhood. Alternatively they can be defined in Matlab directly without use of CoSMoMVPA functionality. For a toy example, consider the following Matlab code:: >> ds=struct(); >> ds.samples=[1 2 3; 4 5 6]; >> ds.a.name='input'; >> ds.fa.i=[1 2 3]; >> ds.fa.j=[1 2 2]; >> ds.sa.chunks=[2 2]'; >> ds.sa.targets=[1 2]'; >> ds.sa.labels={'a','b','c','d';'e','f','g','h'}; >> save('ds_tiny.mat','-struct','ds'); >> nbrhood=struct(); >> nbrhood.neighbors={1, [1 3], [1 2 3], [2 2]}; >> nbrhood.fa.k=[4 3 2 1]; >> nbrhood.a.name='output'; >> save('nbrhood_tiny.mat','-struct','nbrhood'); These can be stored in Matlab by:: >> save('ds.mat','-struct','ds') >> save('nbrhood.mat','-struct','nbrhood') and loaded in Python using:: >>> import mvpa2 >>> import os >>> from mvpa2.datasets.cosmo import from_any, CosmoSearchlight >>> from mvpa2.mappers.fx import mean_feature >>> data_path=os.path.join(mvpa2.pymvpa_dataroot,'cosmo') >>> fn_mat_ds=os.path.join(data_path,'ds_tiny.mat') >>> fn_mat_nbrhood=os.path.join(data_path,'nbrhood_tiny.mat') >>> ds=from_any(fn_mat_ds) >>> print ds , , > >>> qe=from_any(fn_mat_nbrhood) >>> print qe CosmoQueryEngine(4 center ids (0 .. 3), , where ds is a :class:`~mvpa2.datasets.base.Dataset` and qe a :class:`~mvpa2.datasets.cosmo.CosmoQueryEngine`. A :class:`~mvpa2.measures.base.Measure` of choice can be used for a searchlight; here the measure simply takes the mean over features in each searchlight:: >>> measure=mean_feature() A searchlight can be run the CosmoQueryEngine >>> sl=CosmoSearchlight(measure, qe) >>> ds_sl=sl(ds) >>> print ds_sl , , > Note that the output dataset has the feature and sample attributes taken from the queryengine, *not* the dataset. Alternatively it is possible to run the searchlight directly using the filename of the neighborhood .mat file:: >>> sl=CosmoSearchlight(measure, fn_mat_nbrhood) >>> ds_sl=sl(ds) >>> print ds_sl , , > which gives the same result as above. Leaving the doctest format here, subsequently the result can be stored in Python using:: >> map2cosmo(ds_sl,'ds_sl.mat') and loaded in Matlab using:: >> ds_sl=importdata('ds_sl.mat') so that in Matlab ds_sl is a dataset struct with the output of applying measure to the neighborhoods defined in nbrhood. Notes ===== - This function does not provide or deal with mappers associated with a dataset. For this reason map2nifti does not work on PyMVPA fmri datasets that were imported from CoSMoMVPA using this module. Instead, CoSMoMVPA's map2fmri in Matlab can be used to map results to nifti and other formats - The main difference between the searchlight approach in CoSMoMVPA versus PyMVPA is that CoSMoMVPA allows for setting feature (.fa) and dataset (.a) attributes for the output explicitly in its QueryEngineInterface. Use cases are (a) surface-based searchlight of fMRI data (with .fa set to the node indices of the output) and (b) MEEG searchlight of timelocked data that uses all (or a subset of the) sensors for the input and provides a time-course of MVP results for the output; where the input data has features of time by sensor, while the output data has only time. .. _CoSMoMVPA: http://www.github.com/CoSMoMVPA .. _FieldTrip: http://fieldtrip.fcdonders.nl/ """ __docformat__ = 'restructuredtext' from mvpa2.base import externals externals.exists('scipy', raise_=True) from scipy.io import loadmat, savemat, matlab import numpy as np from mvpa2.datasets.base import Dataset from mvpa2.featsel.base import StaticFeatureSelection from mvpa2.mappers.base import ChainMapper from mvpa2.base.collections import Collection # ArrayCollectable from mvpa2.misc.neighborhood import QueryEngineInterface from mvpa2.measures.searchlight import Searchlight from mvpa2.base import debug, warning from mvpa2.mappers.flatten import FlattenMapper def _numpy_array_astype_unsafe(arr, type_): ''' Helper function to deal with API change in numpy. Rationale: prior to version 1.7 it seems the 'casting' argument is not supported, whereas later versions do support it. ''' casting_support_version = '1.7' if np.__version__ < casting_support_version: return arr.astype(type_) else: return arr.astype(type_, casting='unsafe') def _from_singleton(x, ndim=2): ''' If x is an array of shape (1,1,...1) with ndim dimensions it returns the one single element in it. For other shapes it returns an error ''' s = (1,) * ndim if x.shape != s: raise ValueError("Expected singleton shape %s for %s, found %s" % (s, x, x.shape,)) return x[(0,) * ndim] # dictionary indicating whether elements in .fa, .sa and .a must be # transposed for CoSMoMVPA data representation. As in CoSMoMVPA a dataset # with .samples PxQ the elements in .fa must be ?xQ, (only) .fa requires # transpose _attr_fieldname2do_transpose = dict(fa=True, sa=False, a=False) _is_private_key = lambda s: s.startswith('__') and s.endswith('__') def _loadmat_internal(fn): ''' Helper function to load matlab data Parameters ---------- fn: basestring Filename of Matlab .mat file Returns ------- mat: dict Data in fn Notes ----- Data is loaded with mat_dtype=True so that e.g. data stored in float (in Matlab) are not converted to int if all values are integers. ''' return loadmat(fn, mat_dtype=True) def _attributes_cosmo2dict(cosmo): ''' Converts CoSMoMVPA-like attributes to a dictionary form Parameters ---------- cosmo: dict Dictionary that may contains fields 'sa', 'fa', 'a'. For any of these fields the contents can be a dict, np.ndarray (object array as returned by loadmat) or ArrayCollectable (from a PyMVPA Dataset's .a, .fa or .sa) Returns ------- pymvpa_attributes: dict Data represented in cosmo with fields 'sa', 'fa' and 'a'. Each element in pymvpa_attributes[key] is a dict itself mapping an attribute name to a value. ''' # space for output pymvpa_attributes = dict() # go over 'sa', 'fa' and 'a' for fieldname, do_transpose in _attr_fieldname2do_transpose.iteritems(): attrs = dict() if fieldname in cosmo: v = cosmo[fieldname] if type(v) is dict: # copy the data over attrs.update(v) elif isinstance(v, np.ndarray): # extract singleton element fsa_mat = _from_singleton(v) if fsa_mat is not None: # assume an object array fsa_keys = fsa_mat.dtype.names for fsa_key in fsa_keys: dim = fsa_mat[fsa_key] if do_transpose: # feature attribute case, to match dimensionality # in second dimension dim = dim.T # transform row-vectors in matrix form (shape=(1,P)) # to vectors (shape=(P,)) if len(dim.shape) == 2 and dim.shape[1] == 1: dim = dim.ravel() attrs[fsa_key] = dim elif isinstance(v, Collection): # from PyMVPA Dataset, extract keys and values attrs.update((k, v[k].value) for k in v) elif v is None: pass else: raise TypeError('Unsupported input %s' % v) pymvpa_attributes[fieldname] = attrs return pymvpa_attributes def _attributes_dict2cosmo(ds): ''' Converts attributes in Dataset to CoSMoMVPA-like attributes Parameters ---------- ds: Dataset input dataset with .sa, .fa and .a Returns ------- cosmo: dict dictionary with keys 'sa', 'fa' and 'a', each for which the corresponding values are np.array objects with the fieldnames corresponding to the fieldnames of the input dataset Notes ----- The output can be used by savemat to store a matlab file ''' cosmo = dict() # go over 'sa', 'fa' and 'a' for fieldname, do_transpose in _attr_fieldname2do_transpose.iteritems(): attr_collection = getattr(ds, fieldname) if attr_collection: # only store if non-empty dtypes = [] values = [] for k in attr_collection: value = attr_collection[k].value if isinstance(value, tuple): value = np.asarray(value) try: if len(value.shape) == 1: # transform vectors (shape=(P,)) to vectors in matrix # form (shape=(1,P)) value = np.reshape(value, (-1, 1)) if do_transpose: # feature attribute case, to match dimensionality # in second dimension value = value.T except AttributeError: # not supported data element, skip continue dtypes.append((k, 'O')) values.append(value) if len(dtypes) > 0: dtype = np.dtype(dtypes) arr = np.array([[tuple(values)]], dtype=dtype) cosmo[fieldname] = arr return cosmo def _mat_replace_functions_by_string(x): ''' Replace matlab function handles (as read by matread) and FlattenMapper objects by a string. Parameters ---------- x : object Returns ------- y : object if x is a scipy.io.matlab.mio5_params.MatlabFunction or an mvpa2.mappers.flatten.FlattenMapper instance, then y is a string representation of x, otherwise y is equal to x Notes ----- scipy can read but not write Matlab function handles; the use case of this function is to replace such function handles by something that scipy can write ''' unsupported_classes = (matlab.mio5_params.MatlabFunction, FlattenMapper) if isinstance(x, unsupported_classes): return np.asarray('%s' % x) return None def _mat_make_saveable(x, fixer=_mat_replace_functions_by_string): ''' Make a Matlab data structure saveable by scipy's matsave Parameters ---------- x : object Input to be made saveable fixer: callable (default: _mat_replace_matlab_function_by_string) Function that can replace un-saveable elements by a saveable version Returns ------- y : object Saveable version of x. Notes ----- scipy can read but not write Matlab function handles; the use case of this function is to replace such function handles by something that scipy can write. The present implementation processes the input recursively and makes a copy of the entire input. With the default fixer, function handles are replaced by a string representation of the funciton handle. ''' y = fixer(x) if y is not None: # x has been fixed; return result return y # x was not of a type that could be fixed; see if it has # elements that can be fixed through recursion if type(x) is dict: # use recursion return dict((k, _mat_make_saveable(v, fixer=fixer)) for k, v in x.iteritems()) elif isinstance(x, np.ndarray) and x.dtype.names is None: # standard array or object array n = x.size # get tuple indices for N-dimensional array idxs = zip(*np.unravel_index(np.arange(n), x.shape)) # only object arrays need fixing. Other types, e.g. float arrays # can be ignored needs_fixing = x.dtype == np.dtype('O') vs = x.copy() if needs_fixing: for idx in idxs: # use recursion vs[idx] = _mat_make_saveable(x[idx], fixer=fixer) return vs elif isinstance(x, np.ndarray) and x.dtype.names is not None: # cell array arr = x.copy() for k in x.dtype.names: # use recursion arr[k] = _mat_make_saveable(x[k], fixer=fixer) return arr elif isinstance(x, basestring): # anything else, e.g. __header__ return x else: raise TypeError('Unexpected type %s in %s' % (type(x), x)) def _check_cosmo_dataset(cosmo): ''' Helper function to ensure a cosmo input for cosmo_dataset is valid. Currently does two things: (1) raise an error if there are no samples (2) raise a warning if samples have very large or very small values. A use case is certain MEEG datasets with very small sample values (in the order of 1e-25) which affects some classifiers ''' samples = cosmo.get('samples', None) if samples is None: raise KeyError("Missing field .samples in %s" % cosmo) # check for extreme values warn_for_extreme_values_decimals = 10 # ignore NaNs and infinity nonzero_msk = np.logical_and(np.isfinite(samples), samples != 0) if np.any(nonzero_msk): max_nonzero = np.max(np.abs(samples[nonzero_msk])) # see how many decimals in the largest absolute value decimals_nonzero = np.log10(max_nonzero) if abs(decimals_nonzero) > warn_for_extreme_values_decimals: msg = ( 'Samples have extreme values, maximum absolute value is %s; ' 'This may affect some analyses. Considering scaling the samples, ' 'e.g. by a factor of 10**%d ' % ( max_nonzero, -decimals_nonzero)) warning(msg) def cosmo_dataset(cosmo): ''' Construct Dataset from CoSMoMVPA format Parameters ---------- cosmo: str or Dataset-like or dict If a str it is treated as a filename of a .mat file with a matlab struct used in CoSMoMVPA, i.e. a struct with fields .samples, .sa, .fa, and .a. If a dict is is treated like the result from scipy's loadmat of a matlab struct used in CoSMoMVPA. Returns ------- ds : Dataset PyMVPA Dataset object with values in .samples, .fa., .sa and .a based on the input ''' if isinstance(cosmo, basestring): # load file cosmo = _loadmat_internal(cosmo) # do some sanity checks _check_cosmo_dataset(cosmo) # store samples args = dict(samples=cosmo['samples']) # set dataset, feature and sample attributes args.update(_attributes_cosmo2dict(cosmo)) # build dataset using samples, fa, sa and a arguments return Dataset(**args) def map2cosmo(ds, filename=None): ''' Convert PyMVPA Dataset to CoSMoMVPA struct saveable by scipy's savemat Parameters ---------- ds : Dataset PyMVPA dataset to be converted filename: None or basestring If not None, the conversion result is saved to the file named filename using scipy's savemat Returns ------- cosmo : dict dictionary that can be saved using scipy's savemat ''' # set samples cosmo = dict(samples=ds.samples) # set feature, sample and dataset attributes cosmo.update(_attributes_dict2cosmo(ds)) # remove elements not saveable by scipy (e.g. function handles) cosmo_fixed = _mat_make_saveable(cosmo) # do some sanity checks _check_cosmo_dataset(cosmo_fixed) # optionally store to disc if filename is not None: savemat(filename, cosmo_fixed) return cosmo_fixed def from_any(x): ''' Load CoSMoMVPA dataset or neighborhood Parameters ---------- x : basestring or dict or Dataset or CosmoQueryEngine If a basestring it is interpreted as a filename of a .mat file with a CoSMoMVPA dataset or neighborhood struct, and the contents are returned. If a dict it is interpreted as the result from scipy's loadmat and its contents are returned If a Dataset or CosmoQueryEngine then x is returned immediately Returns ------- y : Dataset or CosmoQueryEngine If x refers to a Dataset (has .samples) then a Dataset is returned with .fa., .sa and .a taken from the input (if present) If x refers to a CosmoQueryEngine (has .neighbors) then a CosmoQueryEngine is returned. ''' if isinstance(x, basestring): x = _loadmat_internal(x) if isinstance(x, dict): x_keys = x.keys() # remove private headers so that CosmoQueryEngine.from_mat won't choke x = dict((k, v) for k, v in x.iteritems() if not _is_private_key(k)) for depth in (0, 1): if 'samples' in x: return cosmo_dataset(x) elif 'neighbors' in x: return CosmoQueryEngine.from_mat(**x) elif len(x) == 1 and depth == 0: # case of using 'save' in matlab with '-struct' with single # variable; get the value of the variable and try again _, v = x.popitem() x = dict((k, _from_singleton(v[k])) for k in v.dtype.names) continue else: raise ValueError('Unrecognized dict with keys %s' % x_keys) elif isinstance(x, (Dataset, CosmoQueryEngine)): # already good type, return it directly return x raise ValueError('Unrecognized input %s' % x) class CosmoQueryEngine(QueryEngineInterface): ''' queryengine for neighborhoods defined in CoSMoMVPA. This class behaves like a normal QueryEngine, and its use is intended with a searchlight. It differs in that it contains the dataset (.a) and feature (.fa) attributes for the output of a searchlight. This is implemented by the method set_output_dataset_attributes. Although the standard Searchlight can be used with this function, using CosmoSearchlight automatically calls this method so that the dataset attributes for the output are properly set. Example ------- # ds.mat is a dataset struct saved in matlab using CoSMoMVPA # nbrhood.mat " " neighborhood " " >> ds=from_any('ds.mat') # PyMVPA Dataset >> qe=from_any('nbrhood.mat') # PyMVPA CosmoQueryEngine # alternative to define query engine: >> qe_alt=CosmoQueryEngine.from_mat('nbrhood.mat') # define measure >> measure=mean_features() # define searchlight >> sl=CosmoSearchlight(measure, qe) # run searchlight >> ds_res=sl(ds) # store result >> map2cosmo(ds_res,'result.mat') ''' def __init__(self, mapping, a=None, fa=None): ''' Parameters ---------- mapping: dict mapping from center ids (int) to array of feature ids (numpy array of datatype int) a: None or dict or ArrayCollectable dataset attributes to be used for the output of a Searchlight fa: None or dict or ArrayCollectable dataset attributes to be used for the output of a Searchlight ''' super(CosmoQueryEngine, self).__init__() # check and store mapping self._check_mapping(mapping) self._mapping = mapping # store center ids self._ids = ids = np.asarray(mapping.keys()) # get feature and dataset attributes attributes = _attributes_cosmo2dict(dict(a=a, fa=fa)) # see how many features there are for the output fa = attributes.get('fa', None) if not fa: nfeatures = np.max(ids) + 1 else: nfeatures = len(fa[next(iter(fa))]) # make a template dataset, so that feature and dataset attributes # are stored properly (with slicing support through Dataset). # the method set_output_dataset_attributes uses this template # dataset so that after running CosmoSearchlight the dataset (.a) # and feature (.fa) attributes can be set for the output. # # Note: a Dataset is used for convenience here, because it provides # (1) automatic checks for proper size of feature attributes # relative to the size of samples, and (2) slicing attributes['samples'] = np.zeros((0, nfeatures), dtype=np.int_) self._dataset_template = Dataset(**attributes)[:, ids] @staticmethod def _check_mapping(mapping): ''' Simple checks to ensure the provided mapping is kosher ''' if not isinstance(mapping, dict): raise TypeError('Mapping must be dict, found %s' % type(mapping)) for k, v in mapping.iteritems(): if not np.isscalar(k): raise ValueError('Key %s not a scalar' % k) if not isinstance(k, int): raise ValueError( 'Keys %s must be int, found %s' % (k, type(k))) if not isinstance(v, np.ndarray): raise TypeError('Value %s for key %s must be numpy array' % (v, k)) if not np.issubdtype(np.int_, v.dtype): raise ValueError('Value %s for key %s must be int' % (v, k)) @classmethod def from_mat(cls, neighbors, a=None, fa=None, origin=None): ''' Create CosmoQueryEngine from mat struct Parameters ---------- neighbors: numpy.object Object from scipy's matload; must have been a Px1 cell with in each cell a vector with indices of neighboring features in base 1. Typically this is from a CoSMoMVPA neighborhood struct. a: None or dict or ArrayCollectable dataset attributes to be used for the output of a Searchlight fa: None or dict or ArrayCollectable dataset attributes to be used for the output of a Searchlight origin: Optional contents of .a and .fa of dataset indexed by neighbors; its content is ignored Notes ----- Empty elements are ignored. Future implementations may store the origin element, and check that its contents agrees with a dataset when this instances trains on it. ''' neighbors_vec = neighbors.ravel() mapping = dict() for id, nbr_fids in enumerate(neighbors_vec): nbr_fids_vec = nbr_fids.ravel() if len(nbr_fids_vec): if min(nbr_fids_vec) < 1: raise ValueError('Negative index for id %s' % id) if not np.all(np.equal(nbr_fids, np.round(nbr_fids))): raise ValueError('Non-integer indices for id %s' % id) nbr_fids_vec_int = _numpy_array_astype_unsafe(nbr_fids_vec, np.int_) # store mapping, convert base 1 (Matlab) to base 0 (Python) mapping[int(id)] = nbr_fids_vec_int - 1 return cls(mapping, a=a, fa=fa) def __repr__(self): ''' Return representation of this instance ''' template = self._dataset_template return '%s(mapping=%r, a=%r, sa=%r)' % (self.__class__.__name__, self._mapping, template.a, template.fa) def __str__(self): ''' Return string summary of this instance ''' template = self._dataset_template ids = self.ids return ('%s(%d center ids (%d .. %d), , ' % (self.__class__.__name__, len(ids), np.min(ids), np.max(ids), ', '.join(template.fa.keys()), ', '.join(template.a.keys()))) def __reduce__(self): ''' Return state of the instance that can be pickled ''' template = self._dataset_template return (self.__class__, (self._mapping, template.a, template.fa)) def __len__(self): ''' Return number of ids (keys) ''' return len(self.ids) def train(self, dataset): ''' This method does nothing ''' pass def untrain(self): ''' This method does nothing ''' pass def query(self, **kwargs): raise NotImplementedError def query_byid(self, id): ''' Returns ------ fids : np.ndarray vector with feature indices of neighbors of the feature indexed by id ''' return self._mapping[id] @property def ids(self): ''' Returns ------- keys: npndarray vector with feature indices that can be used as keys ''' return self._ids @property def a(self): ''' Returns ------- a : DatasetAttributesCollection Dataset attributes for the output dataset from using this instance ''' return self._dataset_template.a @property def fa(self): ''' Returns ------- fa : FeatureAttributesCollection Feature attributes for the output dataset from using this instance. It has as many elements as self.ids ''' return self._dataset_template.fa def set_output_dataset_attributes(self, ds): ''' Set attributes to output dataset (e.g. after running a searchlight) Parameters ---------- ds : Dataset dataset with ds.fa.center_ids containing the center id of each feature Returns ds_copy : Dataset copy of ds, but with feature (.fa) and dataset (.a) attributes provided to the contstructor of this instance. The .fa and .a from the input ds are removed first. ''' if not 'center_ids' in ds.fa: raise KeyError('Dataset seems not to be the result from ' 'running a searchlight: missing .fa.center_ids') center_ids = ds.fa.center_ids ds_template = self._dataset_template if center_ids is not None: # a subset of features was used as center; slice the template # dataset accordingly to get sliced .fa center_ids_arr = np.asarray(center_ids) ds_template = ds_template[:, center_ids_arr] # make a copy of the input ds_copy = ds.copy() # apply dataset and feature attributes ds_copy.a.clear() ds_copy.a.update(ds_template.a) ds_copy.fa.clear() ds_copy.fa.update(ds_template.fa) return ds_copy class CosmoSearchlight(Searchlight): ''' Implement a standard Searchlight measure, but with a separate postprocessing step that involves setting feature (.fa) and dataset (.a) attributes after the searchlight call has been made. A typical use case is in combination with a neighborhood from CoSMoMVPA, either from a .mat matlab file or through a CosmoQueryEngine ''' def __init__(self, datameasure, nbrhood, add_center_fa=False, results_postproc_fx=None, results_backend='native', results_fx=None, tmp_prefix='tmpsl', nblocks=None, **kwargs): """ Parameters ---------- datameasure : callable Any object that takes a :class:`~mvpa2.datasets.base.Dataset` and returns some measure when called. nbrhood : str or dict or CosmoQueryEngine Defines the neighborhood for each feature. A str indicates the filename of a matlab .mat file with a neighborhood generated by CoSMoMVPA. A dict indicates the result of such a neighborhood when loaded by loadmat. A CosmoQueryEngine indicates such a neighborhood as a QueryEngineInterface object add_center_fa : bool or str If True or a string, each searchlight ROI dataset will have a boolean vector as a feature attribute that indicates the feature that is the seed (e.g. sphere center) for the respective ROI. If True, the attribute is named 'roi_seed', the provided string is used as the name otherwise. results_postproc_fx : callable Called with all the results computed in a block for possible post-processing which needs to be done in parallel instead of serial aggregation in results_fx. results_backend : ('native', 'hdf5'), optional Specifies the way results are provided back from a processing block in case of nproc > 1. 'native' is pickling/unpickling of results by pprocess, while 'hdf5' would use h5save/h5load functionality. 'hdf5' might be more time and memory efficient in some cases. results_fx : callable, optional Function to process/combine results of each searchlight block run. By default it would simply append them all into the list. It receives as keyword arguments sl, dataset, roi_ids, and results (iterable of lists). It is the one to take care of assigning roi_* ca's tmp_prefix : str, optional If specified -- serves as a prefix for temporary files storage if results_backend == 'hdf5'. Thus can specify the directory to use (trailing file path separator is not added automagically). nblocks : None or int Into how many blocks to split the computation (could be larger than nproc). If None -- nproc is used. **kwargs In addition this class supports all keyword arguments of its base-class :class:`~mvpa2.measures.searchlight.BaseSearchlight`. """ queryengine = from_any(nbrhood) expected_type = CosmoQueryEngine if not isinstance(queryengine, expected_type): raise TypeError('Queryengine should be a %s, found type %s' % (expected_type, type(queryengine))) super(CosmoSearchlight, self).__init__(datameasure, queryengine, add_center_fa=add_center_fa, results_postproc_fx=results_postproc_fx, results_backend=results_backend, results_fx=results_fx, tmp_prefix=tmp_prefix, nblocks=nblocks, **kwargs) def _call(self, ds): ''' Perform standard searchlight analysis, then update feature and dataset attributes using the queryengine's .fa and .a ''' # let the parent class do most of the work ds_result = super(CosmoSearchlight, self)._call(ds) # set dataset (.a) and feature (.fa) attributes queryengine = self._queryengine return queryengine.set_output_dataset_attributes(ds_result) pymvpa2-2.6.4/mvpa2/datasets/eeglab.py000066400000000000000000000160421323370031300175450ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for EEGLAB's electrode-time series text file format. This module offers functions to import data from EEGLAB_ text files. .. _EEGLAB: http://sccn.ucsd.edu/eeglab/ """ __docformat__ = 'restructuredtext' import numpy as np import os from mvpa2.datasets.base import Dataset from mvpa2.mappers.flatten import FlattenMapper # restrict public interface to not misguide sphinx __all__ = [ 'eeglab_dataset' ] def _looks_like_filename(s): if os.path.exists(s): return True return len(s) <= 256 and not '\n' in s def eeglab_dataset(samples): '''Make a Dataset instance from EEGLAB input data Parameters ---------- samples: str Filename of EEGLAB text file Returns ------- ds: mvpa2.base.dataset.Dataset Dataset with the contents of the input file ''' if not isinstance(samples, basestring): raise ValueError("Samples should be a string") if _looks_like_filename(samples): if not os.path.exists(samples): raise ValueError("Input looks like a filename, but file" " %s does not exist" % samples) with open(samples) as f: samples = f.read() lines = samples.split('\n') samples = [] cur_sample = None for i, line in enumerate(lines): if not line: continue if i == 0: # first line contains the channel names channel_labels = line.split() n_channels = len(channel_labels) else: # first value is the time point, the remainders the value # for each channel values = map(float, line.split()) t = values[0] # time eeg = values[1:] # values for each electrode if len(eeg) != n_channels: raise ValueError("Line %d: expected %d values but found %d" % (n_channels, len(eeg))) if cur_sample is None or t < prev_t: # new sample cur_sample = [] samples.append(cur_sample) cur_sample.append((t, eeg)) prev_t = t # get and verify number of elements in each dimension n_samples = len(samples) n_timepoints_all = map(len, samples) n_timepoints_unique = set(n_timepoints_all) if len(n_timepoints_unique) != 1: raise ValueError("Different number of time points in different" "samples: found %d different lengths" % len(n_timepoints_unique)) n_timepoints = n_timepoints_all[0] shape = (n_samples, n_timepoints, n_channels) # allocate space for data data = np.zeros(shape) # make a list of all channels and timepoints channel_array = np.asarray(channel_labels) timepoint_array = np.asarray([samples[0][i][0] for i in xrange(n_timepoints)]) dts = timepoint_array[1:] - timepoint_array[:-1] if not np.all(dts == dts[0]): raise ValueError("Delta time points are different") # put the values in the data array for i, sample in enumerate(samples): for j, (t, values) in enumerate(sample): # check that the time is the same if i > 0 and timepoint_array[j] != t: raise ValueError("Sample %d, time point %s is different " "than the first sample (%s)" % (i, t, timepoint_array[j])) for k, value in enumerate(values): data[i, j, k] = value samples = None # and let gc do it's job # make a Dataset instance with the data ds = Dataset(data) # append a flatten_mapper to go from 3D (sample X time X channel) # to 2D (sample X (time X channel)) flatten_mapper = FlattenMapper(shape=shape[1:], space='time_channel_indices') ds = ds.get_mapped(flatten_mapper) # make this a 3D array of the proper size channel_array_3D = np.tile(channel_array, (1, n_timepoints, 1)) timepoint_array_3D = np.tile(np.reshape(timepoint_array, (-1, 1)), (1, 1, n_channels)) # for consistency use the flattan_mapper defined above to # flatten channel and timepoint names as well ds.fa['channelids'] = flatten_mapper.forward(channel_array_3D).ravel() ds.fa['timepoints'] = flatten_mapper.forward(timepoint_array_3D).ravel() # make some dynamic properties # XXX at the moment we don't have propert 'protection' in case # the feature space is sliced in a way so that some channels and/or # timepoints occur more often than others _eeglab_set_attributes(ds) return ds def _eeglab_set_attributes(ds): setattr(ds.__class__, 'nchannels', property( fget=lambda self: len(set(self.fa['time_channel_indices'][:, 1])))) setattr(ds.__class__, 'ntimepoints', property( fget=lambda self: len(set(self.fa['time_channel_indices'][:, 0])))) setattr(ds.__class__, 'channelids', property( fget=lambda self: np.unique(self.fa['channelids'].value))) setattr(ds.__class__, 'timepoints', property( fget=lambda self: np.unique(self.fa['timepoints'].value))) setattr(ds.__class__, 't0', property( fget=lambda self: np.min(self.fa['timepoints'].value))) def _get_dt(ds): ts = np.unique(ds.fa['timepoints'].value) if len(ts) >= 1: delta = ts[1:] - ts[:-1] if len(np.unique(delta)) == 1: return delta[0] return float(numpy.nan) setattr(ds.__class__, 'dt', property(fget=lambda self: _get_dt(self))) def selector(f, xs): if type(f) in (list, tuple): flist = f f = lambda x:x in flist return np.nonzero(map(f, xs))[0] # attributes for getting certain time points or channels ids # the argument f should be either be a function, or a list or tuple setattr(ds.__class__, 'get_features_by_timepoints', property( fget=lambda self: lambda f: selector(f, self.fa['timepoints']), doc='Given a filter function f returns the ' 'indices of features for which f(x) holds ' ' for each x in timepoints')) setattr(ds.__class__, 'get_features_by_channelids', property( fget=lambda self: lambda f: selector(f, self.fa['channelids']), doc='Given a filter function f returns the ' 'indices of features for which f(x) holds ' ' for each x in channelids')) pymvpa2-2.6.4/mvpa2/datasets/eep.py000066400000000000000000000132721323370031300171010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for the binary EEP file format for EEG data""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.datasets import Dataset from mvpa2.misc.io import DataReader def eep_dataset(samples, targets=None, chunks=None): """Create a dataset using an EEP binary file as source. EEP files are used by *eeprobe* a software for analysing even-related potentials (ERP), which was developed at the Max-Planck Institute for Cognitive Neuroscience in Leipzig, Germany. http://www.ant-neuro.com/products/eeprobe Parameters ---------- samples : str or EEPBin instance This is either a filename of an EEP file, or an EEPBin instance, providing the samples data in EEP format. targets, chunks : sequence or scalar or None Values are pass through to `Dataset.from_wizard()`. See its documentation for more information. Returns ------- Dataset Besides is usual attributes (e.g. targets, chunks, and a mapper). The returned dataset also includes feature attributes associating each same with a channel (by id), and a specific timepoint -- based on information read from the EEP data. """ if isinstance(samples, str): # open the eep file eb = EEPBin(samples) elif isinstance(samples, EEPBin): # nothing special eb = samples else: raise ValueError("eep_dataset takes the filename of an " "EEP file or a EEPBin object as 'samples' argument.") # init dataset ds = Dataset.from_channeltimeseries( eb.data, targets=targets, chunks=chunks, t0=eb.t0, dt=eb.dt, channelids=eb.channels) return ds class EEPBin(DataReader): """Read-access to binary EEP files. EEP files are used by *eeprobe* a software for analysing even-related potentials (ERP), which was developed at the Max-Planck Institute for Cognitive Neuroscience in Leipzig, Germany. http://www.ant-neuro.com/products/eeprobe EEP files consist of a plain text header and a binary data block in a single file. The header starts with a line of the form ';%d %d %d %g %g' % (Nchannels, Nsamples, Ntrials, t0, dt) where Nchannels, Nsamples, Ntrials are the numbers of channels, samples per trial and trials respectively. t0 is the time of the first sample of a trial relative to the stimulus onset and dt is the sampling interval. The binary data block consists of single precision floats arranged in the following way:: ,,... ,,... . ,,... ,,... """ def __init__(self, source): """Read EEP file and store header and data. Parameters ---------- source : str Filename. """ # init base class DataReader.__init__(self) # temp storage of number of samples nsamples = None # non-critical header components stored in temp dict hdr = {} infile = open(source, "rb") # read file the end of header of EOF while True: # one line at a time try: line = infile.readline().decode('ascii') except UnicodeDecodeError: break # stop if EOH or EOF if not line or line.startswith(';EOH;'): break # no crap! line = line.strip() # all but first line as colon if not line.count(':'): # top header l = line.split() # extract critical information self._props['nchannels'] = int(l[0][1:]) self._props['ntimepoints'] = int(l[1]) self._props['t0'] = float(l[3]) self._props['dt'] = float(l[4]) nsamples = int(l[2]) else: # simply store non-critical extras l = line.split(':') key = l[0].lstrip(';') value = ':'.join(l[1:]) hdr[key] = value # post process channel name info -> list if 'channels' in hdr: self._props['channels'] = hdr['channels'].split() self._data = \ np.reshape(np.fromfile(infile, dtype='f'), \ (nsamples, self._props['nchannels'], self._props['ntimepoints'])) # cleanup infile.close() nchannels = property(fget=lambda self: self._props['nchannels'], doc="Number of channels") ntimepoints = property(fget=lambda self: self._props['ntimepoints'], doc="Number of data timepoints") nsamples = property(fget=lambda self: self._data.shape[0], doc="Number of trials/samples") t0 = property(fget=lambda self: self._props['t0'], doc="Relative start time of sampling interval") dt = property(fget=lambda self: self._props['dt'], doc="Time difference between two adjacent samples") channels = property(fget=lambda self: self._props['channels'], doc="List of channel names") pymvpa2-2.6.4/mvpa2/datasets/eventrelated.py000066400000000000000000000641651323370031300210210ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Functions for event segmentation or modeling of dataset.""" __docformat__ = 'restructuredtext' import copy import numpy as np from mvpa2.misc.support import Event, value2idx from mvpa2.datasets import Dataset from mvpa2.base.dataset import _expand_attribute from mvpa2.mappers.fx import _uniquemerge2literal from mvpa2.mappers.flatten import FlattenMapper from mvpa2.mappers.boxcar import BoxcarMapper from mvpa2.base import warning, externals def assign_conditionlabels(ds, events, label_attr='targets', time_attr='time_coords', **kwargs): """Convert events into a condition label attribute of a dataset This function is a convenience front-end to ``events2sample_attr()`` and supports the same arguments. Parameters ---------- ds : dataset To be labeled dataset. events : list List of dictionaries with event definitions. label_attr : str Name of the sample attribute with the conditions labels in the output dataset. Note that any existing attribute with this name will be overwritten. time_attr : str Name of the sample attribute with the time stamps (time coordinate) for all data samples. This information will be used to match samples with conditions **kwargs All other arguments will be passed on to ``events2sample_attr()`` Returns ------- Dataset with condition label attribute """ attr = events2sample_attr(events, ds.sa[time_attr].value, **kwargs) ds.sa[label_attr] = attr return ds def events2sample_attr(events, time_coords, noinfolabel=None, onset_shift=0.0, condition_attr='condition'): """Build a sample attribute array form an event list Parameters ---------- events : list event specifications as consumed by eventrelated_dataset() time_coords : array sample timing information array (typically taking from dataset.sa.time_coords) noinfolabel : str condition label to assign to all samples for which no stimulation condition information is contained in the events. Example: 'rest' onset_shift : float All stimulation onset timestamps are shifted by the given amount before being transformed into discrete sample indices. Default: 0.0 condition_attr : str Name of the key in the event dictionary whose value shall be used as as attribute value for the associated sample(s). Returns ------- list Sequence with literal conditions labels -- one item per element in the ``time_coords`` array. """ sa = [None] * len(time_coords) for ev in events: onset = ev['onset'] + onset_shift # first sample ending after stimulus onset onset_samp_idx = np.argwhere(time_coords[1:] > onset)[0,0] # deselect all volume starting before the end of the stimulation duration_mask = time_coords < (onset + ev['duration']) duration_mask[:onset_samp_idx] = False # assign all matching samples the condition ID for samp_idx in np.argwhere(duration_mask).T[0]: sa[samp_idx] = ev[condition_attr] if noinfolabel is not None: for i, a in enumerate(sa): if a is None: sa[i] = noinfolabel return sa def find_events(**kwargs): """Detect changes in multiple synchronous sequences. Multiple sequence arguments are scanned for changes in the unique value combination at corresponding locations. Each change in the combination is taken as a new event onset. The length of an event is determined by the number of identical consecutive combinations. Parameters ---------- **kwargs : sequences Arbitrary number of sequences that shall be scanned. Returns ------- list Detected events, where each event is a dictionary with the unique combination of values stored under their original name. In addition, the dictionary also contains the ``onset`` of the event (as index in the sequence), as well as the ``duration`` (as number of identical consecutive items). See Also -------- eventrelated_dataset : event-related segmentation of a dataset Examples -------- >>> seq1 = ['one', 'one', 'two', 'two'] >>> seq2 = [1, 1, 1, 2] >>> events = find_events(targets=seq1, chunks=seq2) >>> for e in events: ... print e {'chunks': 1, 'duration': 2, 'onset': 0, 'targets': 'one'} {'chunks': 1, 'duration': 1, 'onset': 2, 'targets': 'two'} {'chunks': 2, 'duration': 1, 'onset': 3, 'targets': 'two'} """ def _build_event(onset, duration, combo): ev = Event(onset=onset, duration=duration, **combo) return ev events = [] prev_onset = 0 old_combo = None duration = 1 # over all samples for r in xrange(len(kwargs.values()[0])): # current attribute combination combo = dict([(k, v[r]) for k, v in kwargs.iteritems()]) # check if things changed if not combo == old_combo: # did we ever had an event if old_combo is not None: events.append(_build_event(prev_onset, duration, old_combo)) # reset duration for next event duration = 1 # store the current samples as onset for the next event prev_onset = r # update the reference combination old_combo = combo else: # current event is lasting duration += 1 # push the last event in the pipeline if old_combo is not None: events.append(_build_event(prev_onset, duration, old_combo)) return events def _events2dict(events): evvars = {} for k in events[0]: try: evvars[k] = [e[k] for e in events] except KeyError: raise ValueError("Each event property must be present for all " "events (could not find '%s')" % k) return evvars def _evvars2ds(ds, evvars, eprefix): for a in evvars: if eprefix is not None and a in ds.sa: # if there is already a samples attribute like this, it got mapped # previously (e.g. by BoxcarMapper and is multi-dimensional). # We move it aside under new `eprefix` name ds.sa[eprefix + '_' + a] = ds.sa[a] ds.sa[a] = evvars[a] return ds def extract_boxcar_event_samples( ds, events=None, time_attr=None, match='prev', event_offset=None, event_duration=None, eprefix='event', event_mapper=None): """Segment a dataset by extracting boxcar events (Multiple) consecutive samples are extracted for each event, and are either returned in a flattened shape, or subject to further processing. Events are specified as a list of dictionaries (see:class:`~mvpa2.misc.support.Event`) for a helper class. Each dictionary contains all relevant attributes to describe an event. This is at least the ``onset`` time of an event, but can also comprise of ``duration``, ``amplitude``, and arbitrary other attributes. Boxcar event model details -------------------------- For each event all samples covering that particular event are used to form a corresponding sample. One sample for each event is returned. Event specification dictionaries must contain an ``onset`` attribute (as sample index in the input dataset), ``duration`` (as number of consecutive samples after the onset). Any number of additional attributes can be present in an event specification. Those attributes are included as sample attributes in the returned dataset. Alternatively, ``onset`` and ``duration`` may also be given in a non-discrete time specification. In this case a dataset attribute needs to be specified that contains time-stamps for each input data sample, and is used to convert times into discrete sample indices (see ``match`` argument). A mapper instance can be provided (see ``event_mapper``) to implement futher processing of each event sample, for example in order to yield average samples. Parameters ---------- ds : Dataset The samples of this input dataset have to be in whatever ascending order. events : list Each event definition has to specify ``onset`` and ``duration``. All other attributes will be passed on to the sample attributes collection of the returned dataset. time_attr : str or None Attribute with dataset sample time-stamps. If not None, the ``onset`` and ``duration`` specs from the event list will be converted using information from this sample attribute. Its values will be treated as in-the-same-unit and are used to determine corresponding samples from real-value onset and duration definitions. For HRF modeling this argument is mandatory. match : {'prev', 'next', 'closest'} Strategy used to match real-value onsets to sample indices. 'prev' chooses the closes preceding samples, 'next' the closest following sample and 'closest' to absolute closest sample. event_offset : None or float If not None, all event ``onset`` specifications will be offset by this value before boxcar modeling is performed. event_duration : None or float If not None, all event ``duration`` specifications will be set to this value before boxcar modeling is done. eprefix : str or None If not None, this prefix is used to name additional attributes generated by the underlying `~mvpa2.mappers.boxcar.BoxcarMapper`. If it is set to None, no additional attributes will be created. event_mapper : Mapper This mapper is used to forward-map the dataset containing the boxcar event samples. If None (default) a FlattenMapper is employed to convert multi-dimensional sample matrices into simple one-dimensional sample vectors. This option can be used to implement temporal compression, by e.g. averaging samples within an event boxcar using an FxMapper. Any mapper needs to keep the sample axis unchanged, i.e. number and order of samples remain the same. Returns ------- Dataset One sample per each event definition that has been passed to the function. Additional event attributes are included as sample attributes. Examples -------- The documentation also contains an :ref:`example script ` showing a spatio-temporal analysis of fMRI data that involves this function. >>> from mvpa2.datasets import Dataset >>> ds = Dataset(np.random.randn(10, 25)) >>> events = [{'onset': 2, 'duration': 4}, ... {'onset': 4, 'duration': 4}] >>> eds = eventrelated_dataset(ds, events) >>> len(eds) 2 >>> eds.nfeatures == ds.nfeatures * 4 True >>> 'mapper' in ds.a False >>> print eds.a.mapper -> And now the same conversion, but with events specified as real time. This is on possible if the input dataset contains a sample attribute with the necessary information about the input samples. >>> ds.sa['record_time'] = np.linspace(0, 5, len(ds)) >>> rt_events = [{'onset': 1.05, 'duration': 2.2}, ... {'onset': 2.3, 'duration': 2.12}] >>> rt_eds = eventrelated_dataset(ds, rt_events, time_attr='record_time', ... match='closest') >>> np.all(eds.samples == rt_eds.samples) True >>> # returned dataset e.g. has info from original samples >>> rt_eds.sa.record_time array([[ 1.11111111, 1.66666667, 2.22222222, 2.77777778], [ 2.22222222, 2.77777778, 3.33333333, 3.88888889]]) """ # relabel argument conv_strategy = {'prev': 'floor', 'next': 'ceil', 'closest': 'round'}[match] if not (event_offset is None and event_duration is None): descr_events = [] for ev in events: # do not mess with the input data ev = copy.deepcopy(ev) if event_offset is not None: ev['onset'] += event_offset if event_duration is not None: ev['duration'] = event_duration descr_events.append(ev) events = descr_events if time_attr is not None: tvec = ds.sa[time_attr].value # we are asked to convert onset time into sample ids descr_events = [] for ev in events: # do not mess with the input data ev = copy.deepcopy(ev) # best matching sample idx = value2idx(ev['onset'], tvec, conv_strategy) # store offset of sample time and real onset ev['orig_offset'] = ev['onset'] - tvec[idx] # rescue the real onset into a new attribute ev['orig_onset'] = ev['onset'] ev['orig_duration'] = ev['duration'] # figure out how many samples we need ev['duration'] = \ len(tvec[idx:][tvec[idx:] < ev['onset'] + ev['duration']]) # new onset is sample index ev['onset'] = idx descr_events.append(ev) else: descr_events = events # convert the event specs into the format expected by BoxcarMapper # take the first event as an example of contained keys evvars = _events2dict(descr_events) # checks for p in ['onset', 'duration']: if not p in evvars: raise ValueError("'%s' is a required property for all events." % p) boxlength = max(evvars['duration']) if __debug__: if not max(evvars['duration']) == min(evvars['duration']): warning('Boxcar mapper will use maximum boxlength (%i) of all ' 'provided Events.'% boxlength) # finally create, train und use the boxcar mapper bcm = BoxcarMapper(evvars['onset'], boxlength, space=eprefix) bcm.train(ds) ds = ds.get_mapped(bcm) if event_mapper is None: # at last reflatten the dataset # could we add some meaningful attribute during this mapping, i.e. would # assigning 'inspace' do something good? ds = ds.get_mapped(FlattenMapper(shape=ds.samples.shape[1:])) else: ds = ds.get_mapped(event_mapper) # add samples attributes for the events, simply dump everything as a samples # attribute # special case onset and duration in case of conversion into descrete time if time_attr is not None: for attr in ('onset', 'duration'): evvars[attr] = [e[attr] for e in events] ds = _evvars2ds(ds, evvars, eprefix) return ds def fit_event_hrf_model( ds, events, time_attr, condition_attr='targets', design_kwargs=None, glmfit_kwargs=None, regr_attrs=None, return_model=False): """Fit a GLM with HRF regressor and yield a dataset with model parameters A univariate GLM is fitted for each feature and model parameters are returned as samples. Model parameters are returned for each regressor in the design matrix. Using functionality from NiPy, design matrices can be generated from event definitions with a variety of customizations (HRF model, confound regressors, ...). Events need to be specified as a list of dictionaries (see:class:`~mvpa2.misc.support.Event`) for a helper class. Each dictionary contains all relevant attributes to describe an event. HRF event model details ----------------------- The event specifications are used to generate a design matrix for all present conditions. In addition to the mandatory ``onset`` information each event definition needs to include a label in order to associate individual events to conditions (the design matrix will contain at least one regressor for each condition). The name of this label attribute must be specified too (see ``condition_attr`` argument). NiPy is used to generate the actual design matrix. It is required to specify a dataset sample attribute that contains time stamps for all input data samples (see ``time_attr``). NiPy operation could be customized (see ``design_kwargs`` argument). Additional regressors from sample attributes of the input dataset can be included in the design matrix (see ``regr_attrs``). The actual GLM fit is also performed by NiPy and can be fully customized (see ``glmfit_kwargs``). Parameters ---------- ds : Dataset The samples of this input dataset have to be in whatever ascending order. events : list Each event definition has to specify ``onset`` and ``duration``. All other attributes will be passed on to the sample attributes collection of the returned dataset. time_attr : str Attribute with dataset sample time stamps. Its values will be treated as in-the-same-unit and are used to determine corresponding samples from real-value onset and duration definitions. For HRF modeling this argument is mandatory. condition_attr : str Name of the event attribute with the condition labels. Can be a list of those (e.g. ['targets', 'chunks'] combination of which would constitute a condition. design_kwargs : dict Arbitrary keyword arguments for NiPy's make_dmtx() used for design matrix generation. Choose HRF model, confound regressors, etc. glmfit_kwargs : dict Arbitrary keyword arguments for NiPy's GeneralLinearModel.fit() used for estimating model parameter. Choose fitting algorithm: OLS or AR1. regr_attrs : list List of dataset sample attribute names that shall be extracted from the input dataset and used as additional regressors in the design matrix. return_model : bool Flag whether to included the fitted GLM model in the returned dataset. For large input data this can be problematic, as the model may contain the residuals (same size is input data), hence multiplies the memory demand. Off by default. Returns ------- Dataset One sample for each regressor/condition in the design matrix is returned. The condition names are included as a sample attribute with the name specified by the ``condition_attr`` argument. The actual design regressors are included as ``regressors`` sample attribute. If enabled, an instance with the fitted NiPy GLM results is included as a dataset attribute ``model``, and can be used for computing contrasts subsequently. Examples -------- The documentation also contains an :ref:`example script ` showing a spatio-temporal analysis of fMRI data that involves this function. >>> from mvpa2.datasets import Dataset >>> ds = Dataset(np.random.randn(10, 25)) >>> ds.sa['time_coords'] = np.linspace(0, 50, len(ds)) >>> events = [{'onset': 2, 'duration': 4, 'condition': 'one'}, ... {'onset': 4, 'duration': 4, 'condition': 'two'}] >>> hrf_estimates = fit_event_hrf_model( ... ds, events, ... time_attr='time_coords', ... condition_attr='condition', ... design_kwargs=dict(drift_model='blank'), ... glmfit_kwargs=dict(model='ols'), ... return_model=True) >>> print hrf_estimates.sa.condition ['one' 'two'] >>> print hrf_estimates.shape (2, 25) >>> len(hrf_estimates.a.model.get_mse()) 25 Additional regressors used in GLM modeling are also available in a dataset attribute: >>> print hrf_estimates.a.add_regs.sa.regressor_names ['constant'] """ if externals.exists('nipy', raise_=True): from nipy.modalities.fmri.design_matrix import make_dmtx from mvpa2.mappers.glm import NiPyGLMMapper # Decide/device condition attribute on which GLM will actually be done if isinstance(condition_attr, basestring): # must be a list/tuple/array for the logic below condition_attr = [condition_attr] glm_condition_attr = 'regressor_names' # actual regressors glm_condition_attr_map = dict([(con, dict()) for con in condition_attr]) # # to map back to original conditions events = copy.deepcopy(events) # since we are modifying in place for event in events: if glm_condition_attr in event: raise ValueError("Event %s already has %s defined. Should not " "happen. Choose another name if defined it" % (event, glm_condition_attr)) compound_label = event[glm_condition_attr] = \ 'glm_label_' + '+'.join( str(event[con]) for con in condition_attr) # and mapping back to original values, without str() # for each condition: for con in condition_attr: glm_condition_attr_map[con][compound_label] = event[con] evvars = _events2dict(events) add_paradigm_kwargs = {} if 'amplitude' in evvars: add_paradigm_kwargs['amplitude'] = evvars['amplitude'] # create paradigm if 'duration' in evvars: from nipy.modalities.fmri.experimental_paradigm import BlockParadigm # NiPy considers everything with a duration as a block paradigm paradigm = BlockParadigm( con_id=evvars[glm_condition_attr], onset=evvars['onset'], duration=evvars['duration'], **add_paradigm_kwargs) else: from nipy.modalities.fmri.experimental_paradigm \ import EventRelatedParadigm paradigm = EventRelatedParadigm( con_id=evvars[glm_condition_attr], onset=evvars['onset'], **add_paradigm_kwargs) # create design matrix -- all kinds of fancy additional regr can be # auto-generated if design_kwargs is None: design_kwargs = {} if regr_attrs is not None: names = [] regrs = [] for attr in regr_attrs: regr = ds.sa[attr].value # add rudimentary dimension for easy hstacking later on if regr.ndim < 2: regr = regr[:, np.newaxis] if regr.shape[1] == 1: names.append(attr) else: # add one per each column of the regressor for i in xrange(regr.shape[1]): names.append("%s.%d" % (attr, i)) regrs.append(regr) regrs = np.hstack(regrs) if 'add_regs' in design_kwargs: design_kwargs['add_regs'] = np.hstack((design_kwargs['add_regs'], regrs)) else: design_kwargs['add_regs'] = regrs if 'add_reg_names' in design_kwargs: design_kwargs['add_reg_names'].extend(names) else: design_kwargs['add_reg_names'] = names design_matrix = make_dmtx(ds.sa[time_attr].value, paradigm, **design_kwargs) # push design into source dataset glm_regs = [ (reg, design_matrix.matrix[:, i]) for i, reg in enumerate(design_matrix.names)] # GLM glm = NiPyGLMMapper([], glmfit_kwargs=glmfit_kwargs, add_regs=glm_regs, return_design=True, return_model=return_model, space=glm_condition_attr) model_params = glm(ds) # some regressors might be corresponding not to original condition_attr # so let's separate them out regressor_names = model_params.sa[glm_condition_attr].value condition_regressors = np.array([v in glm_condition_attr_map.values()[0] for v in regressor_names]) assert(condition_regressors.dtype == np.bool) if not np.all(condition_regressors): # some regressors do not correspond to conditions and would need # to be taken into a separate dataset model_params.a['add_regs'] = model_params[~condition_regressors] # then we process the rest model_params = model_params[condition_regressors] regressor_names = model_params.sa[glm_condition_attr].value # now define proper condition sa's for con, con_map in glm_condition_attr_map.iteritems(): model_params.sa[con] = [con_map[v] for v in regressor_names] model_params.sa.pop(glm_condition_attr) # remove generated one return model_params def eventrelated_dataset(ds, events, time_attr=None, match='prev', eprefix='event', event_mapper=None, condition_attr='targets', design_kwargs=None, glmfit_kwargs=None, regr_attrs=None, model='boxcar'): """This function is deprecated. It is kept in order to maintain API compatibility with previous versions of PyMVPA. For new code, please use the following alternative functions: * :func:`~mvpa2.datasets.eventrelated.fit_event_hrf_model` * :func:`~mvpa2.datasets.eventrelated.extract_boxcar_event_samples` * :func:`~mvpa2.datasets.eventrelated.assign_conditionlabels`. """ if not len(events): raise ValueError("no events specified") if model == 'boxcar': return extract_boxcar_event_samples( ds, events=events, time_attr=time_attr, match=match, eprefix=eprefix, event_mapper=event_mapper) elif model == 'hrf': if condition_attr is None: raise ValueError( "missing name of event attribute with condition names") if time_attr is None: raise ValueError( "missing name of attribute with sample timing information") return fit_event_hrf_model( ds, events=events, time_attr=time_attr, condition_attr=condition_attr, design_kwargs=design_kwargs, glmfit_kwargs=glmfit_kwargs, regr_attrs=regr_attrs) else: raise ValueError("unknown event model '%s'" % model) pymvpa2-2.6.4/mvpa2/datasets/formats.py000066400000000000000000000132671323370031300200070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for commonly used data source formats. """ __docformat__ = 'restructuredtext' from mvpa2.base import externals import sys import numpy as np if __debug__: from mvpa2.base import debug from mvpa2.datasets.base import Dataset from mvpa2.base import warning from mvpa2.misc.attrmap import AttributeMap # LightSVM : def to_lightsvm_format(dataset, out, targets_attr='targets', domain=None, am=None): """Export dataset into LightSVM format Parameters ---------- dataset : Dataset out Anything understanding .write(string), such as `File` targets_attr : string, optional Name of the samples attribute to be output domain : {None, 'regression', 'binary', 'multiclass'}, optional What domain dataset belongs to. If `None`, it would be deduced depending on the datatype ('regression' if float, classification in case of int or string, with 'binary'/'multiclass' depending on the number of unique targets) am : `AttributeMap` or None, optional Which mapping to use for storing the non-conformant targets. If None was provided, new one would be automagically generated depending on the given/deduced domain. Returns ------- am LightSVM format is an ASCII representation with a single sample per each line:: output featureIndex:featureValue ... featureIndex:featureValue where ``output`` is specific for a given domain: regression float number binary integer labels from {-1, 1} multiclass integer labels from {1..ds.targets_attr.nunique} """ targets_a = dataset.sa[targets_attr] targets = targets_a.value # XXX this all below # * might become cleaner # * might be RF to become more generic to be used may be elsewhere as well if domain is None: if targets.dtype.kind in ['S', 'U', 'i']: if len(targets_a.unique) == 2: domain = 'binary' else: domain = 'multiclass' else: domain = 'regression' if domain in ['multiclass', 'binary']: # check if labels are appropriate and provide mapping if necessary utargets = targets_a.unique if domain == 'binary' and set(utargets) != set([-1, 1]): # need mapping if len(utargets) != 2: raise ValueError, \ "We need 2 unique targets in %s of %s. Got targets " \ "from set %s" % (targets_attr, dataset, utargets) if am is None: am = AttributeMap(dict(zip(utargets, [-1, 1]))) elif set(am.keys()) != set([-1, 1]): raise ValueError, \ "Provided %s doesn't map into binary " \ "labels -1,+1" % (am,) elif domain == 'multiclass' \ and set(utargets) != set(range(1, len(utargets)+1)): if am is None: am = AttributeMap(dict(zip(utargets, range(1, len(utargets) + 1)))) elif set(am.keys()) != set([-1, 1]): raise ValueError, \ "Provided %s doesn't map into multiclass " \ "range 1..N" % (am, ) if am is not None: # map the targets targets = am.to_numeric(targets) for t, s in zip(targets, dataset.samples): out.write(('%g %s\n' % (t, ' '.join( '%i:%.8g' % (i, v) for i,v in zip(range(1, dataset.nfeatures+1), s)))).encode('ascii')) out.flush() # push it out return am def from_lightsvm_format(in_, targets_attr='targets', am=None): """Loads dataset from a file in lightsvm format Parameters ---------- in_ Anything we could iterate over and obtain strings, such as `File` targets_attr : string, optional Name of the samples attribute to be used to store targets/labels am : `AttributeMap` or None, optional Which mapping to use for mapping labels back into possibly a literal representation. Returns ------- dataset See Also -------- to_lightsvm_format : conversion to lightsvm format """ targets = [] samples = [] for l in in_: # we need to parse the line entries = l.split() targets += entries[:1] id_features = [e.split(':') for e in entries[1:]] f_ids = np.array([x[0] for x in id_features], dtype=int) f_vals = [float(x[1]) for x in id_features] if np.any(f_ids != np.arange(1, len(f_ids)+1)): raise NotImplementedError, \ "For now supporting only input of non-sparse " \ "lightsvm-formatted files. got line with feature " \ "ids %s " % f_ids samples.append(f_vals) # lets try to make targets of int, float, string until first # matching type ;) for t in (int, float, None): try: targets = np.array(targets, dtype=t) break except ValueError: pass if am is not None: targets = am.to_literal(targets) samples = np.array(samples) sa = {} sa[targets_attr] = targets ds = Dataset(samples, sa=sa) return ds # CRF++ : http://crfpp.sourceforge.net/ pymvpa2-2.6.4/mvpa2/datasets/gifti.py000066400000000000000000000172551323370031300174370ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for surface-based GIFTI data IO. This module offers functions to import into PyMVPA surface-based GIFTI data using NiBabel_, and export PyMVPA surface-based datasets back into GIFTI. The current implementation supports data associated with nodes, and node indices for such data. There is no support for meta-data, or non-identity affine transformations. This module supports node data, i.e. each node on the surface has N values associated with it (with N>=1). Typical examples include time series data and statistical maps. Optionally, anatomical information (vertices and faces) can be stored, so that FreeSurfer's mris_convert can read data written by map2gifti. .. _NiBabel: http://nipy.sourceforge.net/nibabel """ from mvpa2.base import externals externals.exists('nibabel', raise_=True) from nibabel.gifti import gifti, giftiio from mvpa2.base.collections import FeatureAttributesCollection, \ SampleAttributesCollection from mvpa2.base.dataset import AttrDataset from mvpa2.datasets.base import Dataset from mvpa2.base import warning from mvpa2.support.nibabel.surf import from_any as surf_from_any from mvpa2.support.nibabel.surf_gifti import to_gifti_image as \ anat_surf_to_gifti_image import numpy as np def _gifti_intent_niistring(intent_code): return gifti.intent_codes.niistring[intent_code] def _gifti_intent_is_data(intent_string): # exclude a set of intents not_data_intent_strings = ('NIFTI_INTENT_GENMATRIX', 'NIFTI_INTENT_SYMMATRIX', 'NIFTI_INTENT_DISPVECT', 'NIFTI_INTENT_VECTOR', 'NIFTI_INTENT_POINTSET', 'NIFTI_INTENT_TRIANGLE', 'NIFTI_INTENT_QUATERNION', 'NIFTI_INTENT_DIMLESS', 'NIFTI_INTENT_NODE_INDEX', 'NIFTI_INTENT_SHAPE') return intent_string not in not_data_intent_strings def _gifti_intent_is_node_indices(intent_string): return intent_string == 'NIFTI_INTENT_NODE_INDEX' def _get_gifti_image(samples): if isinstance(samples, basestring): samples = giftiio.read(samples) required_class = gifti.GiftiImage if not isinstance(samples, required_class): raise TypeError('Input of type %s must be a %s' % (samples, required_class)) return samples def gifti_dataset(samples, targets=None, chunks=None): """ Parameters ---------- samples : str or GiftiImage GIFTI surface-based data, specified either as a filename or an image. targets : scalar or sequence Label attribute for each volume in the timeseries. chunks : scalar or sequence Chunk attribute for each volume in the timeseries. """ node_indices = None data_vectors = [] intents = [] image = _get_gifti_image(samples) for darray in image.darrays: intent_string = _gifti_intent_niistring(darray.intent) if _gifti_intent_is_data(intent_string): data_vectors.append(darray.data) intents.append(intent_string) elif _gifti_intent_is_node_indices(intent_string): node_indices = darray.data samples = np.asarray(data_vectors) nsamples, nfeatures = samples.shape # set sample attributes sa = SampleAttributesCollection(length=nsamples) sa['intents'] = intents if targets is not None: sa['targets'] = targets if chunks is not None: sa['chunks'] = chunks # set feature attributes fa = FeatureAttributesCollection(length=nfeatures) if node_indices is not None: fa['node_indices'] = node_indices return Dataset(samples=samples, sa=sa, fa=fa) def map2gifti(ds, filename=None, encoding='GIFTI_ENCODING_B64GZ', surface=None): """Maps data(sets) into a GiftiImage, and optionally saves it to disc. Parameters ---------- ds : AttrDataset or numpy.ndarray The data to be mapepd filename : basestring or None, optional Filename to which the GiftiImage is stored encoding : "ASCII" or "Base64Binary" or "GZipBase64Binary", optional Encoding format of data surface : mvpa2.surf.nibabel.surf.Surface or str, optional Optional anatomical Surface object, or filename of anatomical surface file, to be stored together with the data. This should allow FreeSurfer's mris_convert to read files written by this function Returns ------- img : GiftiImage dataset contents represented in GiftiImage """ darrays = [] if isinstance(ds, np.ndarray): samples = ds elif isinstance(ds, AttrDataset): samples = ds.samples _warn_if_fmri_dataset(ds) else: raise TypeError('first argument must be AttrDataset or numpy.ndarray') [nsamples, nfeatures] = samples.shape def _get_attribute_value(ds, attr_name, keys_): if isinstance(ds, np.ndarray): # no attributes return None attr_collection = ds.__dict__.get(attr_name) if isinstance(keys_, basestring): keys_ = (keys_,) for key in keys_: if key in attr_collection: return attr_collection[key].value return None def _build_array(data, intent, encoding=encoding): is_integer = intent == 'NIFTI_INTENT_NODE_INDEX' dtype = np.int32 if is_integer else np.float32 arr = gifti.GiftiDataArray.from_array(data.astype(dtype), intent, encoding=encoding) # Setting the coordsys argument the constructor would set the matrix # to the 4x4 identity matrix, which is not desired. Instead the # coordsys is explicitly set to None afterwards arr.coordsys = None return arr node_indices_labels = ('node_indices', 'center_ids', 'ids', 'roi_ids') node_indices = _get_attribute_value(ds, 'fa', node_indices_labels) if node_indices is not None: darray = _build_array(node_indices, 'NIFTI_INTENT_NODE_INDEX') darrays.append(darray) intents = _get_attribute_value(ds, 'sa', 'intents') for i, sample in enumerate(samples): intent = 'NIFTI_INTENT_NONE' if intents is None else intents[i] darray = _build_array(sample, intent) darrays.append(darray) # if there is a surface, add it if surface is not None: surface_object = surf_from_any(surface, ) anat_image = anat_surf_to_gifti_image(surface_object, add_indices=False) for darray in anat_image.darrays: darrays.append(darray) image = gifti.GiftiImage(darrays=darrays) if filename is not None: giftiio.write(image, filename) return image def _warn_if_fmri_dataset(ds): assert (isinstance(ds, AttrDataset)) fmri_fields = set(('imgaffine', 'imgtype', 'imghdr')) ds_fmri_fields = set.intersection(set(ds.a.keys()), fmri_fields) if len(ds_fmri_fields) > 0: warning('dataset attribute .a has fields %s, which suggest it is an ' 'volumetric dataset. Converting this dataset to GIFTI ' 'format will most likely result in unvisualiable ' '(and potentially, un-analysable) data. Consider using ' 'map2nifti instead' % (', '.join(ds_fmri_fields))) pymvpa2-2.6.4/mvpa2/datasets/miscfx.py000066400000000000000000000425471323370031300176300ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Miscellaneous functions to perform operations on datasets. All the functions defined in this module must accept dataset as the first argument since they are bound to Dataset class in the trailer. """ __docformat__ = 'restructuredtext' import random import numpy as np from mvpa2.base.dataset import datasetmethod from mvpa2.datasets.base import Dataset from mvpa2.base.dochelpers import table2string from mvpa2.misc.support import get_nelements_per_value from mvpa2.base import externals, warning from mvpa2.base.types import is_sequence_type if __debug__: from mvpa2.base import debug @datasetmethod ##REF: Name was automagically refactored def aggregate_features(dataset, fx=np.mean): """Apply a function to each row of the samples matrix of a dataset. The functor given as `fx` has to honour an `axis` keyword argument in the way that NumPy used it (e.g. NumPy.mean, var). Returns ------- a new `Dataset` object with the aggregated feature(s). """ agg = fx(dataset.samples, axis=1) return Dataset(samples=np.array(agg, ndmin=2).T, sa=dataset.sa) @datasetmethod ##REF: Name was automagically refactored def remove_invariant_features(dataset): """Returns a new dataset with all invariant features removed. """ return dataset[:, dataset.samples.std(axis=0).nonzero()[0]] @datasetmethod def remove_nonfinite_features(dataset): """Returns a new dataset with all non-finite (NaN,Inf) features removed Removes all feature for which not all values are finite Parameters ---------- dataset : Dataset Input dataset Returns ------- finite_dataset: Dataset Dataset based on data form the input, but only the features for which all samples are finite are kept. """ return dataset[:, np.all(np.isfinite(dataset.samples),axis=0)] @datasetmethod ##REF: Name was automagically refactored def coarsen_chunks(source, nchunks=4): """Change chunking of the dataset Group chunks into groups to match desired number of chunks. Makes sense if originally there were no strong groupping into chunks or each sample was independent, thus belonged to its own chunk Parameters ---------- source : Dataset or list of chunk ids dataset or list of chunk ids to operate on. If Dataset, then its chunks get modified nchunks : int desired number of chunks """ if isinstance(source, Dataset): chunks = source.chunks else: chunks = source chunks_unique = np.unique(chunks) nchunks_orig = len(chunks_unique) if nchunks_orig < nchunks: raise ValueError, \ "Original number of chunks is %d. Cannot coarse them " \ "to get %d chunks" % (nchunks_orig, nchunks) # figure out number of samples per each chunk counts = dict(zip(chunks_unique, [ 0 ] * len(chunks_unique))) for c in chunks: counts[c] += 1 # now we need to group chunks to get more or less equalized number # of samples per chunk. No sophistication is done -- just # consecutively group to get close to desired number of samples # per chunk avg_chunk_size = np.sum(counts.values())*1.0/nchunks chunks_groups = [] cur_chunk = [] nchunks = 0 cur_chunk_nsamples = 0 samples_counted = 0 for i, c in enumerate(chunks_unique): cc = counts[c] cur_chunk += [c] cur_chunk_nsamples += cc # time to get a new chunk? if (samples_counted + cur_chunk_nsamples >= (nchunks+1)*avg_chunk_size) or i==nchunks_orig-1: chunks_groups.append(cur_chunk) samples_counted += cur_chunk_nsamples cur_chunk_nsamples = 0 cur_chunk = [] nchunks += 1 if len(chunks_groups) != nchunks: warning("Apparently logic in coarseChunks is wrong. " "It was desired to get %d chunks, got %d" % (nchunks, len(chunks_groups))) # remap using groups # create dictionary chunks_map = {} for i, group in enumerate(chunks_groups): for c in group: chunks_map[c] = i # we always want an array! chunks_new = np.array([chunks_map[x] for x in chunks]) if __debug__: debug("DS_", "Using dictionary %s to remap old chunks %s into new %s" % (chunks_map, chunks, chunks_new)) if isinstance(source, Dataset): if __debug__: debug("DS", "Coarsing %d chunks into %d chunks for %s" %(nchunks_orig, len(chunks_new), source)) source.sa['chunks'].value = chunks_new return else: return chunks_new @datasetmethod ## TODO: make more efficient and more generic (accept >=1 attrs to ## operate on) def get_samples_per_chunk_target(dataset, targets_attr='targets', chunks_attr='chunks'): """Returns an array with the number of samples per target in each chunk. Array shape is (chunks x targets). Parameters ---------- dataset : Dataset Source dataset. """ # shortcuts/local bindings ta = dataset.sa[targets_attr] ca = dataset.sa[chunks_attr] # unique ut = ta.unique uc = ca.unique # all ts = ta.value cs = ca.value count = np.zeros((len(uc), len(ut)), dtype='uint') for ic, c in enumerate(uc): for it, t in enumerate(ut): count[ic, it] = np.sum(np.logical_and(ts==t, cs==c)) return count @datasetmethod def random_samples(dataset, npertarget, targets_attr='targets'): """Create a dataset with a random subset of samples. Parameters ---------- dataset : Dataset npertarget : int or list If an `int` is given, the specified number of samples is randomly chosen from the group of samples sharing a unique target value. Total number of selected samples: npertarget x len(uniquetargets). If a `list` is given of length matching the unique target values, it specifies the number of samples chosen for each particular unique target. targets_attr : str, optional Returns ------- Dataset A dataset instance for the chosen samples. All feature attributes and dataset attribute share there data with the source dataset. """ satargets = dataset.sa[targets_attr] utargets = satargets.unique # if interger is given take this value for all classes if isinstance(npertarget, int): npertarget = [npertarget for i in utargets] sample = [] # for each available class targets = satargets.value for i, r in enumerate(utargets): # get the list of pattern ids for this class sample += random.sample(list((targets == r).nonzero()[0]), npertarget[i] ) return dataset[sample] @datasetmethod def get_nsamples_per_attr(dataset, attr): """Returns the number of samples per unique value of a sample attribute. Parameters ---------- attr : str Name of the sample attribute Returns ------- dict with the number of samples (value) per unique attribute (key). """ return get_nelements_per_value(dataset.sa[attr]) @datasetmethod def get_samples_by_attr(dataset, attr, values, sort=True): """Return indices of samples given a list of attributes """ if not is_sequence_type(values) \ or isinstance(values, basestring): values = [ values ] # TODO: compare to plain for loop through the targets # on a real data example sel = np.array([], dtype=np.int16) sa = dataset.sa for value in values: sel = np.concatenate(( sel, np.where(sa[attr].value == value)[0])) if sort: # place samples in the right order sel.sort() return sel @datasetmethod def summary(dataset, stats=True, lstats='auto', sstats='auto', idhash=False, targets_attr='targets', chunks_attr='chunks', maxc=30, maxt=20): """String summary over the object Parameters ---------- stats : bool Include some basic statistics (mean, std, var) over dataset samples lstats : 'auto' or bool Include statistics on chunks/targets. If 'auto', includes only if both targets_attr and chunks_attr are present. sstats : 'auto' or bool Sequence (order) statistics. If 'auto', includes only if targets_attr is present. idhash : bool Include idhash value for dataset and samples targets_attr : str, optional Name of sample attributes of targets chunks_attr : str, optional Name of sample attributes of chunks -- independent groups of samples maxt : int Maximal number of targets when provide details on targets/chunks maxc : int Maximal number of chunks when provide details on targets/chunks """ # local bindings samples = dataset.samples sa = dataset.sa s = str(dataset)[1:-1] if idhash: s += '\nID-Hashes: %s' % dataset.idhash # Deduce if necessary lstats and sstats if lstats == 'auto': lstats = (targets_attr in sa) and (chunks_attr in sa) if sstats == 'auto': sstats = (targets_attr in sa) ssep = (' ', '\n')[lstats] ## Possibly summarize attributes listed as having unique if stats: if np.issctype(samples.dtype): # TODO -- avg per chunk? # XXX We might like to use scipy.stats.describe to get # quick summary statistics (mean/range/skewness/kurtosis) if dataset.nfeatures: s += "%sstats: mean=%g std=%g var=%g min=%g max=%g\n" % \ (ssep, np.mean(samples), np.std(samples), np.var(samples), np.min(samples), np.max(samples)) else: s += "%sstats: dataset has no features\n" % ssep else: s += "%sstats: no stats for dataset of '%s' dtype" % (ssep, samples.dtype) if lstats: try: s += dataset.summary_targets( targets_attr=targets_attr, chunks_attr=chunks_attr, maxc=maxc, maxt=maxt) except KeyError, e: s += 'No per %s/%s due to %r' % (targets_attr, chunks_attr, e) if sstats and targets_attr is not None: if len(dataset.sa[targets_attr].unique) < maxt: ss = SequenceStats(dataset.sa[targets_attr].value) s += str(ss) else: s += "Number of unique %s > %d thus no sequence statistics" % \ (targets_attr, maxt) return s @datasetmethod def summary_targets(dataset, targets_attr='targets', chunks_attr='chunks', maxc=30, maxt=20): """Provide summary statistics over the targets and chunks Parameters ---------- dataset : `Dataset` Dataset to operate on targets_attr : str, optional Name of sample attributes of targets chunks_attr : str, optional Name of sample attributes of chunks -- independent groups of samples maxc : int Maximal number of chunks when provide details maxt : int Maximal number of targets when provide details """ # We better avoid bound function since if people only # imported Dataset without miscfx it would fail spcl = get_samples_per_chunk_target( dataset, targets_attr=targets_attr, chunks_attr=chunks_attr) # XXX couldn't they be unordered? ul = dataset.sa[targets_attr].unique.tolist() uc = dataset.sa[chunks_attr].unique.tolist() s = "" if len(ul) < maxt and len(uc) < maxc: s += "\nCounts of targets in each chunk:" # only in a reasonable case do printing table = [[' %s\\%s' % (chunks_attr, targets_attr)] + ul] table += [[''] + ['---'] * len(ul)] for c, counts in zip(uc, spcl): table.append([ str(c) ] + counts.tolist()) s += '\n' + table2string(table) else: s += "No details due to large number of targets or chunks. " \ "Increase maxc and maxt if desired" def cl_stats(axis, u, name1, name2): """Compute statistics per target """ stats = {'min': np.min(spcl, axis=axis), 'max': np.max(spcl, axis=axis), 'mean': np.mean(spcl, axis=axis), 'std': np.std(spcl, axis=axis), '#%s' % name2: np.sum(spcl>0, axis=axis)} entries = [' ' + name1, 'mean', 'std', 'min', 'max', '#%s' % name2] table = [ entries ] for i, l in enumerate(u): d = {' ' + name1 : l} d.update(dict([ (k, stats[k][i]) for k in stats.keys()])) table.append( [ ('%.3g', '%s')[isinstance(d[e], basestring) or d[e] is None] % d[e] for e in entries] ) return '\nSummary for %s across %s\n' % (name1, name2) \ + table2string(table) if len(ul) < maxt: s += cl_stats(0, ul, targets_attr, chunks_attr) if len(uc) < maxc: s += cl_stats(1, uc, chunks_attr, targets_attr) return s class SequenceStats(dict): """Simple helper to provide representation of sequence statistics Matlab analog: https://cfn.upenn.edu/aguirre/wiki/public:m_sequences_code:mtest.m WARNING: Experimental -- API might change without warning! Current implementation is ugly! """ # TODO: operate given some "chunks" so it could report also # counter-balance for the borders, mean across chunks, etc def __init__(self, seq, order=2):#, chunks=None, chunks_attr=None): """Initialize SequenceStats Parameters ---------- seq : list or ndarray Actual sequence of targets order : int Maximal order of counter-balancing check. For perfect counterbalancing all matrices should be identical """ """ chunks : None or list or ndarray Chunks to use if `perchunk`=True """ dict.__init__(self) self.order = order self._seq = seq self.stats = None self._str_stats = None self._compute() def __repr__(self): """Representation of SequenceStats """ return "SequenceStats(%s, order=%d)" % (repr(self._seq), self.order) def __str__(self): return self._str_stats def _compute(self): """Compute stats and string representation """ # Do actual computation order = self.order seq = list(self._seq) # assure list nsamples = len(seq) # # of samples/targets utargets = sorted(list(set(seq))) # unique targets ntargets = len(utargets) # # of targets # mapping for targets targets_map = dict([(l, i) for i, l in enumerate(utargets)]) # map sequence first seqm = [targets_map[i] for i in seq] # npertarget = np.bincount(seqm) res = dict(utargets=utargets) # Estimate counter-balance cbcounts = np.zeros((order, ntargets, ntargets), dtype=int) for cb in xrange(order): for i, j in zip(seqm[:-(cb+1)], seqm[cb+1:]): cbcounts[cb, i, j] += 1 res['cbcounts'] = cbcounts """ Lets compute relative counter-balancing Ideally, npertarget[i]/ntargets should precede each target """ # Autocorrelation corr = [] # for all possible shifts: for shift in xrange(1, nsamples): shifted = seqm[shift:] + seqm[:shift] # ??? User pearsonsr with p may be? corr += [np.corrcoef(seqm, shifted)[0, 1]] # ??? report high (anti)correlations? res['corrcoef'] = corr = np.array(corr) res['sumabscorr'] = sumabscorr = np.sum(np.abs(corr)) self.update(res) # Assign textual summary # XXX move into a helper function and do on demand t = [ [""] * (1 + self.order*(ntargets+1)) for i in xrange(ntargets+1) ] t[0][0] = "Targets/Order" for i, l in enumerate(utargets): t[i+1][0] = '%s:' % l for cb in xrange(order): t[0][1+cb*(ntargets+1)] = "O%d" % (cb+1) for i in xrange(ntargets+1): t[i][(cb+1)*(ntargets+1)] = " | " m = cbcounts[cb] # ??? there should be better way to get indexes ind = np.where(~np.isnan(m)) for i, j in zip(*ind): t[1+i][1+cb*(ntargets+1)+j] = '%d' % m[i, j] sout = "Sequence statistics for %d entries" \ " from set %s\n" % (len(seq), utargets) + \ "Counter-balance table for orders up to %d:\n" % order \ + table2string(t) if len(corr): sout += "Correlations: min=%.2g max=%.2g mean=%.2g sum(abs)=%.2g" \ % (min(corr), max(corr), np.mean(corr), sumabscorr) self._str_stats = sout def plot(self): """Plot correlation coefficients """ externals.exists('pylab', raise_=True) import pylab as pl pl.plot(self['corrcoef']) pl.title('Auto-correlation of the sequence') pl.xlabel('Offset') pl.ylabel('Correlation Coefficient') pl.show() pymvpa2-2.6.4/mvpa2/datasets/mri.py000066400000000000000000000422531323370031300171200ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for magnetic resonance imaging (MRI) data IO. This module offers functions to import into PyMVPA MRI data from files in any format supported by NiBabel_ (e.g. NIfTI, MINC, Analyze), and export PyMVPA datasets back into data formats supported by NiBabel_. .. _NiBabel: http://nipy.sourceforge.net/nibabel """ __docformat__ = 'restructuredtext' from mvpa2.base import externals externals.exists('nibabel', raise_=True) import numpy as np from mvpa2.base.dataset import _expand_attribute if __debug__: from mvpa2.base import debug from mvpa2.datasets.base import Dataset from mvpa2.mappers.flatten import FlattenMapper from mvpa2.base import warning def _hdr2dict(hdr): """Helper to convert a NiBabel image header to a dict of arrays""" kv = dict(hdr) # checking/mitigating the problem on Windows with nibabel 2.0.0 # see https://github.com/PyMVPA/PyMVPA/issues/302#issuecomment-99882488 scl_slope = str(kv.get('scl_slope', '')) scl_inter = str(kv.get('scl_inter', '')) if scl_slope == scl_inter == 'nan': warning("Detected incorrect (nan) scl_ fields. Resetting to " "scl_slope=1.0 and scl_inter=0.0") kv['scl_slope'] = 1.0 kv['scl_inter'] = 0.0 kv['hdrtype'] = hdr.__class__.__name__ return kv def _dict2hdr(kv): """Counterpart of ``_hdr2dict()``""" import nibabel hdr = getattr(nibabel, kv['hdrtype'])() for k in kv: if k == 'hdrtype': continue hdr[k] = kv[k] return hdr def _img2data(src): # break early of nothing has been given # XXX feels a little strange to handle this so deep inside, but well... if src is None: return None # let's try whether we can get it done with nibabel import nibabel if isinstance(src, basestring): # filename img = nibabel.load(src) else: # assume this is an image already img = src if isinstance(img, nibabel.spatialimages.SpatialImage): data, header = img.get_data(), img.header if len(img.shape) == 5 and img.shape[3] == 1: # hack to allow loading NIFTI files generated by AFNI # these have time in the fifth dimension while the fourth # dimension is singleton warning('dataset with 5th dimension found but 4th is empty (AFNI ' ' NIFTI conversion syndrome) - squeezing data to 4D') s = img.shape newshape = (s[0], s[1], s[2], s[4]) header.set_data_shape(newshape) data = np.reshape(data, newshape) # nibabel image, dissect and return pieces return _get_txyz_shaped(data), header, img else: # no clue what it is return None def map2nifti(dataset, data=None, imghdr=None, imgtype=None): """Maps data(sets) into the original dataspace and wraps it into an Image. Parameters ---------- dataset : Dataset The mapper of this dataset is used to perform the reverse-mapping. data : ndarray or Dataset, optional The data to be wrapped into NiftiImage. If None (default), it would wrap samples of the provided dataset. If it is a Dataset instance -- takes its samples for mapping. imghdr : None or dict, optional Image header data. If None, the header is taken from `dataset.a.imghdr`. imgtype : None or class, optional Image class to be used for the instance. If None, the type is taken from `dataset.a.imgtype`. Returns ------- Image Instance of a class derived from :class:`nibabel.spatialimages.SpatialImage`, such as Nifti1Image """ import nibabel if data is None: data = dataset.samples elif isinstance(data, Dataset): # ease users life data = data.samples # call the appropriate function to map single samples or multiples if len(data.shape) > 1: dsarray = dataset.a.mapper.reverse(data) else: dsarray = dataset.a.mapper.reverse1(data) if imghdr is None: if 'imghdr' in dataset.a: imghdr = dataset.a.imghdr elif __debug__: debug('DS_NIFTI', 'No image header found. Using defaults.') if imghdr is not None: if 'hdrtype' in imghdr: imghdr = _dict2hdr(imghdr) else: # fall back on previous logic and expect a header instance # we can fail in glorious ways further down pass if imgtype is None: if 'imgtype' in dataset.a: try: imgtype = getattr(nibabel, dataset.a.imgtype) except TypeError: # fall back on previous logic and expect an actual type imgtype = dataset.a.imgtype else: imgtype = nibabel.Nifti1Image if __debug__: debug('DS_NIFTI', 'No image type found in %s. Using default Nifti1Image.' % (dataset.a)) # set meaningful range try: if imghdr is not None: if 'cal_max' in imghdr: imghdr['cal_max'] = dsarray.max() imghdr['cal_min'] = dsarray.min() except: # probably not a NIfTI header pass # Augment header if data dsarray dtype could not be represented # with imghdr.get_data_dtype() if issubclass(imgtype, nibabel.spatialimages.SpatialImage) \ and (imghdr is None or hasattr(imghdr, 'get_data_dtype')): # we can handle the desired image type and hdr with nibabel # use of `None` for the affine should cause to pull it from # the header return imgtype(_get_xyzt_shaped(dsarray), None, imghdr) else: raise ValueError( "Got imgtype=%s and imghdr=%s -- cannot generate an Image" % (imgtype, imghdr)) return RuntimeError("Should have never got here -- check your Python") def fmri_dataset(samples, targets=None, chunks=None, mask=None, sprefix='voxel', tprefix='time', add_fa=None,): """Create a dataset from an fMRI timeseries image. The timeseries image serves as the samples data, with each volume becoming a sample. All 3D volume samples are flattened into one-dimensional feature vectors, optionally being masked (i.e. subset of voxels corresponding to non-zero elements in a mask image). In addition to (optional) samples attributes for targets and chunks the returned dataset contains a number of additional attributes: Samples attributes (per each volume): * volume index (time_indices) * volume acquisition time (time_coord) Feature attributes (per each voxel): * voxel indices (voxel_indices), sometimes referred to as ijk Dataset attributes: * dump of the image (e.g. NIfTI) header data (imghdr) * class of the image (e.g. Nifti1Image) (imgtype) * volume extent (voxel_dim) * voxel extent (voxel_eldim) The default attribute name is listed in parenthesis, but may be altered by the corresponding prefix arguments. The validity of the attribute values relies on correct settings in the NIfTI image header. Parameters ---------- samples : str or NiftiImage or list fMRI timeseries, specified either as a filename (single file 4D image), an image instance (4D image), or a list of filenames or image instances (each list item corresponding to a 3D volume). targets : scalar or sequence Label attribute for each volume in the timeseries, or a scalar value that is assigned to all samples. chunks : scalar or sequence Chunk attribute for each volume in the timeseries, or a scalar value that is assigned to all samples. mask : str or NiftiImage Filename or image instance of a 3D volume mask. Voxels corresponding to non-zero elements in the mask will be selected. The mask has to be in the same space (orientation and dimensions) as the timeseries image sprefix : str or None Prefix for attribute names describing spatial properties of the timeseries. If None, no such attributes are stored in the dataset. tprefix : str or None Prefix for attribute names describing temporal properties of the timeseries. If None, no such attributes are stored in the dataset. add_fa : dict or None Optional dictionary with additional volumetric data that shall be stored as feature attributes in the dataset. The dictionary key serves as the feature attribute name. Each value might be of any type supported by the 'mask' argument of this function. Returns ------- Dataset """ # load the samples imgdata, imghdr, img = _load_anyimg(samples, ensure=True, enforce_dim=4) # figure out what the mask is, but only handle known cases, the rest # goes directly into the mapper which maybe knows more maskimg = _load_anyimg(mask) if maskimg is None: pass else: # take just data and ignore the header mask = maskimg[0] # compile the samples attributes sa = {} if targets is not None: sa['targets'] = _expand_attribute(targets, imgdata.shape[0], 'targets') if chunks is not None: sa['chunks'] = _expand_attribute(chunks, imgdata.shape[0], 'chunks') # create a dataset ds = Dataset(imgdata, sa=sa) if sprefix is None: space = None else: space = sprefix + '_indices' ds = ds.get_mapped(FlattenMapper(shape=imgdata.shape[1:], space=space)) # now apply the mask if any if mask is not None: # permit 4D image mask if time dimension is 1 if mask.shape == (1,) + imgdata.shape[1:]: mask = mask.reshape(mask.shape[1:]) flatmask = ds.a.mapper.forward1(mask) # direct slicing is possible, and it is potentially more efficient, # so let's use it #mapper = StaticFeatureSelection(flatmask) #ds = ds.get_mapped(StaticFeatureSelection(flatmask)) ds = ds[:, flatmask != 0] # load and store additional feature attributes if add_fa is not None: for fattr in add_fa: value = _load_anyimg(add_fa[fattr], ensure=True)[0] ds.fa[fattr] = ds.a.mapper.forward1(value) # store interesting NIfTI props in the dataset in a more portable way ds.a['imgaffine'] = img.affine ds.a['imgtype'] = img.__class__.__name__ # stick the header instance in as is, and ... ds.a['imghdr'] = imghdr # ... let strip_nibabel() be the central place to take care of any header # conversion into non-NiBabel dtypes strip_nibabel(ds) # If there is a space assigned , store the extent of that space if sprefix is not None: ds.a[sprefix + '_dim'] = imgdata.shape[1:] # 'voxdim' is (x,y,z) while 'samples' are (t,z,y,x) ds.a[sprefix + '_eldim'] = _get_voxdim(imghdr) # TODO extend with the unit if tprefix is not None: ds.sa[tprefix + '_indices'] = np.arange(len(ds), dtype='int') ds.sa[tprefix + '_coords'] = \ np.arange(len(ds), dtype='float') * _get_dt(imghdr) # TODO extend with the unit return ds def _get_voxdim(hdr): """Get the size of a voxel from some image header format.""" return hdr.get_zooms()[:-1] def _get_dt(hdr): """Get the TR of a fMRI timeseries from some image header format.""" return hdr.get_zooms()[-1] def _get_txyz_shaped(arr): # we get the data as x,y,z[,t] but we want to have the time axis first # if any if len(arr.shape) == 4: arr = np.rollaxis(arr, -1) return arr def _get_xyzt_shaped(arr): # we get the data as [t,]x,y,z but we want to have the time axis last # if any if len(arr.shape) == 4: arr = np.rollaxis(arr, 0, 4) return arr def _load_anyimg(src, ensure=False, enforce_dim=None): """Load/access NIfTI data from files or instances. Parameters ---------- src : str or NiftiImage Filename of a NIfTI image or a `NiftiImage` instance. ensure : bool, optional If True, throw ValueError exception if cannot be loaded. enforce_dim : int or None If not None, it is the dimensionality of the data to be enforced, commonly 4D for the data, and 3D for the mask in case of fMRI. Returns ------- tuple or None If the source is not supported None is returned. Otherwise a tuple of (imgdata, imghdr, img) Raises ------ ValueError If there is a problem with data (variable dimensionality) or failed to load data and ensure=True. """ imgdata = imghdr = None # figure out whether we have a list of things to load and handle that # first if (isinstance(src, list) or isinstance(src, tuple)) \ and len(src) > 0: # load from a list of given entries srcs = [_load_anyimg(s, ensure=ensure, enforce_dim=enforce_dim) for s in src] if __debug__: # lets check if they all have the same dimensionality # besides the leading one shapes = [s[0].shape[1:] for s in srcs] if not np.all([s == shapes[0] for s in shapes]): raise ValueError( "Input volumes vary in their shapes: %s" % (shapes,)) # Combine them all into a single beast # will be t,x,y,z imgdata = np.vstack([s[0] for s in srcs]) imghdr, img = srcs[0][1:3] else: # try opening the beast; this might yield none in case of an unsupported # argument and is handled accordingly below data = _img2data(src) if data is not None: imgdata, imghdr, img = data if imgdata is not None and enforce_dim is not None: shape, new_shape = imgdata.shape, None lshape = len(shape) # check if we need to tune up shape if lshape < enforce_dim: # if we are missing required dimension(s) new_shape = (1,) * (enforce_dim - lshape) + shape elif lshape > enforce_dim: # if there are bogus dimensions at the beginning bogus_dims = lshape - enforce_dim if shape[:bogus_dims] != (1,) * bogus_dims: raise ValueError("Cannot enforce %dD on data with shape %s" % (enforce_dim, shape)) new_shape = shape[bogus_dims:] # tune up shape if needed if new_shape is not None: if __debug__: debug('DS_NIFTI', 'Enforcing shape %s for %s data from %s' % (new_shape, shape, src)) imgdata.shape = new_shape if imgdata is None: return None else: return imgdata, imghdr, img def strip_nibabel(ds): """Strip NiBabel objects from a dataset (in-place modification). Prior PyMVPA version 2.4, datasets created from MRI data used to contain NiBabel objects, such as image header instances. As a consequence, re-loading such datasets from a serialized form (e.g. form HDF5 files) can suffer from NiBabel API changes, and sometimes prevent loading completely. This function converts these NiBabel internals into a simpler form that helps to process such datasets with a much wider range of NiBabel versions, and removes the need to have NiBabel installed for simply loading such a dataset. Run this function on a dataset to modify it in-place and make it more robust for storage in HDF5 format or other forms of serialization. It is safe to run this function on already converted datasets. The resulting datasets require PyMVPA v2.4 or later for exporting into the NIfTI format, but are otherwise compatible with any 2.x version as well. Parameters ---------- ds : Dataset To be converted dataset Returns ------- None Modification is done in-place. """ # only str class name is stored if 'imgtype' in ds.a and isinstance(ds.a.imgtype, type): ds.a['imgtype'] = ds.a.imgtype.__name__ if 'imghdr' not in ds.a: return if hasattr(ds.a.imghdr, 'get_best_affine'): # new dataset store the affine directly # it may already have one, but the header might have a better idea ds.a['imgaffine'] = ds.a.imghdr.get_best_affine() if isinstance(ds.a.imghdr, dict): # nothing to do # this test may be incomplete but it is cheap. All NiBabel header # instances should not pass it return # we still have a header that is something complicated try: # make an attempt to store more of the image header in a simple # dict(array), but no moaning if that fails -- some image types # don't support that, e.g. MINC ds.a['imghdr'] = _hdr2dict(ds.a.imghdr) except: if __debug__: debug('DS_NIFTI', 'Failed to store header info as attribute (src: %s)' % (ds.a.imghdr.__class__,)) # when conversion fails, we need to kill the remains del ds.a['imghdr'] return ds pymvpa2-2.6.4/mvpa2/datasets/niml.py000066400000000000000000000366441323370031300172770ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for storage using the NeuroImaging Markup Language (NIML). Supports storing most typical values (samples, feature attributes, sample attributes, dataset attributes) that are in a dataset in NIML format, as long as these values are array-like. Notes ----- No support for 'sophisticated' values such as Mappers .. versionadded:: 2.3.0 """ __docformat__ = 'restructuredtext' import numpy as np import os from mvpa2.support.nibabel import afni_niml_dset as niml_dset from mvpa2.base.collections import SampleAttributesCollection, \ FeatureAttributesCollection, DatasetAttributesCollection, \ ArrayCollectable from mvpa2.base import warning, debug, externals from mvpa2.datasets.base import Dataset from mvpa2.base import dataset if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load _PYMVPA_PREFIX = 'PYMVPA' _PYMVPA_SEP = '_' def _as_vector_if_matrix_with_single_column(x): '''Helper function''' if isinstance(x, np.ndarray) and \ len(x.shape) == 2 and x.shape[1] == 1: return x.ravel() else: return x def from_niml(dset, fa_labels=None, sa_labels=None, a_labels=None): '''Convert a NIML dataset to a Dataset Parameters ---------- dset: dict Dictionary with NIML key-value pairs, such as obtained from mvpa2.support.nibabel.afni_niml_dset.read() fa_labels: list Keys in dset that are enforced to be feature attributes sa_labels: list Keys in dset that are enforced to be sample attributes a_labels: list Keys in dset that are enforced to be dataset attributes Returns ------- dataset: mvpa2.base.Dataset a PyMVPA Dataset ''' if fa_labels is None: fa_labels = [] if sa_labels is None: sa_labels = [] if a_labels is None: a_labels = [] # check for singleton element if type(dset) is list and len(dset) == 1: # recursive call return from_niml(dset[0]) if not type(dset) is dict: raise ValueError("Expected a dict") if not 'data' in dset: raise ValueError("dset with no data?") data = dset['data'] if len(data.shape) == 1: nfeatures = data.shape[0] nsamples = 1 else: nfeatures, nsamples = data.shape # some labels have predefined destinations sa_labels_ = ['labels', 'stats', 'chunks', 'targets'] + sa_labels fa_labels_ = ['node_indices', 'center_ids'] + fa_labels a_labels_ = ['history'] + a_labels ignore_labels = ('data', 'dset_type') sa = SampleAttributesCollection(length=nsamples) fa = FeatureAttributesCollection(length=nfeatures) a = DatasetAttributesCollection() labels_collections = [(sa_labels_, sa), (fa_labels_, fa), (a_labels_, a)] infix2collection = {'sa': sa, 'fa': fa, 'a': a} infix2length = {'sa': nsamples, 'fa': nfeatures} for k, v in dset.iteritems(): if k in ignore_labels: continue if k.startswith(_PYMVPA_PREFIX + _PYMVPA_SEP): # special PYVMPA field - do the proper conversion k_split = k.split(_PYMVPA_SEP) if len(k_split) > 2: infix = k_split[1].lower() collection = infix2collection.get(infix, None) if collection is not None: short_k = _PYMVPA_SEP.join(k_split[2:]) expected_length = infix2length.get(infix, None) if expected_length: if isinstance(v, np.ndarray) and np.dtype == np.str_: v = str(v) while isinstance(v, basestring): # strings are seperated by ';' # XXX what if this is part of the value # intended by the user? v = v.split(';') if expected_length != len(v): raise ValueError("Unexpected length: %d != %d" % (expected_length, len(v))) v = _as_vector_if_matrix_with_single_column(v) v = ArrayCollectable(v, length=expected_length) collection[short_k] = v continue v = _as_vector_if_matrix_with_single_column(v) found_label = False for label, collection in labels_collections: if k in label: collection[k] = v found_label = True break if found_label: continue # try to be smart and deduce this from dimensions. # this only works if nfeatures!=nsamples otherwise it would be # ambiguous # XXX is this ugly? if nfeatures != nsamples: try: n = len(v) if n == nfeatures: fa[k] = v continue elif n == nsamples: sa[k] = v continue except: pass # don't know what this is - make it a general attribute a[k] = v ds = Dataset(np.transpose(data), sa=sa, fa=fa, a=a) return ds def to_niml(ds): '''Convert a Dataset to a NIML dataset Parameters ---------- dataset: mvpa2.base.Dataset A PyMVPA Dataset Returns ------- dset: dict Dictionary with NIML key-value pairs, such as obtained from mvpa2.support.nibabel.afni_niml_dset.read() ''' if isinstance(ds, np.ndarray): ds = Dataset(ds) dset = dict(data=np.transpose(ds.samples)) node_indices_labels = ('node_indices', 'center_ids', 'ids', 'roi_ids') node_indices = _find_node_indices(ds, node_indices_labels) if node_indices is not None: dset['node_indices'] = node_indices sample_labels = ('labels', 'targets') labels = _find_sample_labels(ds, sample_labels) if labels is not None: dset['labels'] = labels attr_labels = ('a', 'fa', 'sa') # a few labels are directly used in NIML dsets # without prefixing it with a pyMVPA string # for (dataset, feature, sample) attributes # here we define two for sample attributes attr_special_labels = ([], [], ['labels', 'stats']) for i, attr_label in enumerate(attr_labels): attr = getattr(ds, attr_label) special_labels = attr_special_labels[i] for k in attr.keys(): v = attr[k] if hasattr(v, 'value'): v = v.value if k in special_labels: long_key = k else: long_key = _PYMVPA_SEP.join((_PYMVPA_PREFIX, attr_label.upper(), k)) dset[long_key] = v return dset def hstack(dsets, pad_to_feature_index=None, hstack_method='drop_nonunique', set_empty_value=0.): '''Stacks NIML datasets while considering node indices Parameters ---------- dsets: list datasets to be stacked pad_to_feature_index: list or int or None If a list then it should be of the same length as dsets and indicates to which node index the input should be padded. A single int means that the same value is used for all dset in dsets. None means no padding, and is only allowed for non-sparse datasets. hstack_method: str: How datasets are stacked; see dataset.hstack. set_empty_value: float Value to which empty (padded) dataset values are set. Returns dset: Dataset Data combined from all dset in dsets. ''' n = len(dsets) # make sure pad_to_feature_index has n values if pad_to_feature_index is None or type(pad_to_feature_index) is int: pad_to_feature_index = [pad_to_feature_index] * n elif len(pad_to_feature_index) != n: raise ValueError("illegal pad_to_feature_index: expected list or int") # labels that can contain node indices node_indices_labels = ('node_indices', 'center_ids', 'ids', 'roi_ids') node_indices = [] # allocate space for output padded_dsets = [] hstack_indices = [] first_node_index = 0 for i, (dset, pad_to) in enumerate(zip(dsets, pad_to_feature_index)): # get node indices in this dataset node_index = _find_node_indices(dset, node_indices_labels) if node_index is None: node_index = np.arange(dset.nfeatures) max_node_index = np.max(node_index) # make a stripped version - without node index labels stripped_dset = dset.copy() for label in node_indices_labels: if label in stripped_dset.fa: stripped_dset.fa.pop(label) # see if padding is needed if pad_to is None or pad_to == max_node_index + 1: if not np.array_equal(np.arange(max_node_index + 1), np.sort(node_index)): raise ValueError("Sparse input %d: need pad_to input" % (i + 1)) padded_dset = stripped_dset other_index = np.arange(0) else: # have to use empty values nfeatures_empty = pad_to - dset.nfeatures if nfeatures_empty < 0: raise ValueError("Dataset has %d features, cannot pad " "to %d" % (dset.nfeatures, pad_to)) # make empty array empty_arr = np.zeros((dset.nsamples, nfeatures_empty), dtype=dset.samples.dtype) + set_empty_value empty_dset = Dataset(empty_arr, sa=stripped_dset.sa.copy(deep=True)) # combine current dset and empty array padded_dset = dataset.hstack((stripped_dset, empty_dset), hstack_method) # set the proper node indices other_index = np.setdiff1d(np.arange(pad_to), node_index) # sanity check to make sure that indices are ok # XXX could be more informative if len(np.setdiff1d(node_index, np.arange(pad_to or max_node_index + 1))): raise ValueError("Illegal indices") hstack_index = node_index + first_node_index hstack_other_index = other_index + first_node_index first_node_index += pad_to or (max_node_index + 1) # prepare for next iteration padded_dsets.append(padded_dset) hstack_indices.append(hstack_index) if len(other_index): hstack_indices.append(hstack_other_index) hstack_dset = dataset.hstack(padded_dsets, hstack_method) hstack_indices = np.hstack(hstack_indices) hstack_dset.fa[node_indices_labels[0]] = hstack_indices return hstack_dset def _find_sample_labels(dset, sample_labels): '''Helper function to find labels in this dataset. Looks for any in sample_labels and returns the first one that matches ''' use_label = None dset_keys = dset.sa.keys() for label in sample_labels: if label in dset_keys: sample_label = dset.sa[label].value if isinstance(sample_label, basestring): # split using sample_label = sample_label.split(';') # they can be of any type so ensure they are strings sample_label_list = [str(i) for i in sample_label] if len(sample_label_list) != dset.nsamples: # unlike node indices here we are more lenient # so not throw an exception but just continue continue use_label = label # do not look for any other labels break return None if use_label is None else sample_label_list def _find_node_indices(dset, node_indices_labels): '''Helper function to find node indices in this dataset Sees if any of the node_indices_labels is a feature attribute in the dataset and returns it. If they are multiple matches ensure they are identical, otherwise raise an error. A use case is searchlight results that assignes center_ids as a feature attributes, but it should be named node_indices before conversion to NIML format''' use_label = None dset_keys = dset.fa.keys() for label in node_indices_labels: if label in dset_keys: if use_label is None: # make vector and ensure all integer values node_indices = dset.fa[label].value node_indices = np.asarray(node_indices).ravel() if len(node_indices) != dset.nfeatures: raise ValueError("Node indices mismatch: found %d values " " but dataset has %d features" % (len(node_indices, dset.nfeatures))) node_indices_int = np.asarray(node_indices, dtype=np.int) if not np.array_equal(node_indices_int, node_indices): raise ValueError("Node indices should have integer values") use_label = label else: if not np.array_equal(dset.fa[label].value, node_indices_int): raise ValueError("Different indices for feature attributes" " %s and %s" % (use_label, label)) return None if use_label is None else node_indices_int def write(fn, ds, form='binary'): '''Write a Dataset to a file in NIML format Parameters ---------- fn: str Filename ds: mvpa2.base.Dataset Dataset to be stored form: str Data format: 'binary' or 'text' or 'base64' ''' niml_ds = to_niml(ds) niml_dset.write(fn, niml_ds, form=form) def read(fn): '''Read a Dataset from a file in NIML format Parameters ---------- fn: str Filename ''' readers_converters = {('.dset',): (niml_dset.read, from_niml)} if externals.exists('h5py'): readers_converters[('.h5py', '.hdf')] = (h5load, None) keys = [exts for exts in readers_converters.iterkeys() if any(fn.endswith(ext) for ext in exts)] n_keys = len(keys) if n_keys == 1: # single extension matches key = keys[0] reader, converter = readers_converters[key] r = reader(fn) if converter is not None: r = converter(r) return r else: # unclear extension, try all readers and throw less informative # error message for reader, converter in readers_converters.itervalues(): try: r = reader(fn) if converter: r = converter(r) return r except: pass raise ValueError("Unable to read %s with unclear extension" % fn) def from_any(x): '''Get a Dataset from the input Parameters ---------- x: str or dict or Dataset Filename, or NIML-dictionary, or a Dataset itself Returns ------- ds: mvpa2.base.Dataset Dataset instance ''' if isinstance(x, basestring): return read(x) elif isinstance(x, dict): return from_niml(x) elif isinstance(x, Dataset): return x raise ValueError("Not supported: %r" % (x,)) pymvpa2-2.6.4/mvpa2/datasets/sources/000077500000000000000000000000001323370031300174345ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/datasets/sources/__init__.py000066400000000000000000000013071323370031300215460ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Datasets originating from code outside of PyMVPA Contains wrapper and adapter methods interfacing data provided by other packages as PyMVPA datasets. """ __docformat__ = 'restructuredtext' from mvpa2.base import externals from .openfmri import * from .native import * if externals.exists('skl'): from .skl_data import * pymvpa2-2.6.4/mvpa2/datasets/sources/bids.py000066400000000000000000000021731323370031300207320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """I/O support for neuroimaging dataset in BIDS_ format .. _BIDS: http://bids.neuroimaging.io """ __docformat__ = 'restructuredtext' import numpy as np def load_events(fname, as_recarr=False): """Load event specifications from _events.tsv files Parameters ---------- as_recarr : bool If True, return events as a NumPy recarray with field types corresponding to the columns in the TSV file. Otherwise return PyMVPA's standard list of dictionaries with one dictionary per event. """ # always load via recfromcsv to get uniform type conversion evrec = np.recfromcsv(fname, delimiter='\t') if as_recarr: return evrec columns = evrec.dtype.names return [dict(zip(columns, ev)) for ev in evrec] pymvpa2-2.6.4/mvpa2/datasets/sources/native.py000066400000000000000000000135071323370031300213020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Loaders for PyMVPA's own demo datasets""" __docformat__ = 'restructuredtext' import os from os.path import join as pathjoin import numpy as np import mvpa2 from mvpa2.base import externals from mvpa2 import pymvpa_dataroot def load_example_fmri_dataset(name='1slice', literal=False): """Load minimal fMRI dataset that is shipped with PyMVPA.""" from mvpa2.datasets.sources.openfmri import OpenFMRIDataset from mvpa2.datasets.mri import fmri_dataset from mvpa2.misc.io import SampleAttributes basedir = pathjoin(pymvpa_dataroot, 'haxby2001') mask = {'1slice': pathjoin(pymvpa_dataroot, 'mask.nii.gz'), '25mm': pathjoin(basedir, 'sub001', 'masks', '25mm', 'brain.nii.gz')}[name] if literal: model = 1 subj = 1 openfmri = OpenFMRIDataset(basedir) ds = openfmri.get_model_bold_dataset(model, subj, flavor=name, mask=mask, noinfolabel='rest') # re-imagine the global time_coords of a concatenated time series # this is only for the purpose of keeping the example data in the # exact same shape as it has always been. in absolute terms this makes no # sense as there is no continuous time in this dataset ds.sa['run_time_coords'] = ds.sa.time_coords ds.sa['time_coords'] = np.arange(len(ds)) * 2.5 else: if name == '25mm': raise ValueError("The 25mm dataset is no longer available with " "numerical labels") attr = SampleAttributes(pathjoin(pymvpa_dataroot, 'attributes.txt')) ds = fmri_dataset(samples=pathjoin(pymvpa_dataroot, 'bold.nii.gz'), targets=attr.targets, chunks=attr.chunks, mask=mask) return ds def load_tutorial_data(path=None, roi='brain', add_fa=None, flavor=None): """Loads the block-design demo dataset from PyMVPA dataset DB. Parameters ---------- path : str, optional Path to the directory with the extracted content of the tutorial data package. This is only necessary for accessing the full resolution data. The ``1slice``, and ``25mm`` flavors are shipped with PyMVPA itself, and the path argument is ignored for them. This function also honors the MVPA_LOCATION_TUTORIAL_DATA environment variable, and the respective configuration setting. roi : str or int or tuple or None, optional Region Of Interest to be used for masking the dataset. If a string is given a corresponding mask image from the demo dataset will be used (mask_.nii.gz). If an int value is given, the corresponding ROI is determined from the atlas image (mask_hoc.nii.gz). If a tuple is provided it may contain int values that a processed as explained before, but the union of a ROIs is taken to produce the final mask. If None, no masking is performed. add_fa : dict, optional Passed on to the dataset creator function (see fmri_dataset() for more information). flavor: str, optional Resolution flavor of the data to load. By default, the data is loaded in its original resolution. The PyMVPA source distribution contains a '25mm' flavor that has been downsampled to a very coarse resolution and can be used for quick test execution. Likewise a ``1slice`` flavor is available that contents a full-resultion single-slice subset of the dataset. """ if path is None: if flavor in ('1slice', '25mm'): # we know that this part is there path = pathjoin(pymvpa_dataroot) else: # check config for info, pretend it is in the working dir otherwise path = mvpa2.cfg.get('location', 'tutorial data', default=os.path.curdir) # we need the haxby2001 portion of the tutorial data path = pathjoin(path, 'haxby2001') import nibabel as nb from mvpa2.datasets.sources.openfmri import OpenFMRIDataset model = subj = 1 dhandle = OpenFMRIDataset(path) if flavor is None: maskpath = pathjoin(path, 'sub001', 'masks', 'orig') else: maskpath = pathjoin(path, 'sub001', 'masks', flavor) if roi is None: mask = None elif isinstance(roi, str): mask = pathjoin(maskpath, roi + '.nii.gz') elif isinstance(roi, int): nimg = nb.load(pathjoin(maskpath, 'hoc.nii.gz')) tmpmask = nimg.get_data() == roi mask = nb.Nifti1Image(tmpmask.astype(int), nimg.affine, nimg.header) elif isinstance(roi, (tuple, list)): nimg = nb.load(pathjoin(maskpath, 'hoc.nii.gz')) tmpmask = np.zeros(nimg.shape, dtype='bool') for r in roi: tmpmask = np.logical_or(tmpmask, nimg.get_data() == r) mask = nb.Nifti1Image(tmpmask.astype(int), nimg.affine, nimg.header) elif isinstance(roi, nb.Nifti1Image): mask = roi else: raise ValueError("Got something as mask that I cannot handle.") ds = dhandle.get_model_bold_dataset(model, subj, flavor=flavor, mask=mask, add_fa=add_fa, noinfolabel='rest') # fixup time_coords to make the impression of a continuous time series # this is only necessary until we have changed the tutorial to # show/encourage run-wise processing ds.sa['time_coords'] = np.linspace(0, (len(ds) * 2.5), len(ds) + 1)[:-1] return ds pymvpa2-2.6.4/mvpa2/datasets/sources/openfmri.py000066400000000000000000000635451323370031300216420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helpers to build PyMVPA dataset instances from openfmri.org dataset """ __docformat__ = 'restructuredtext' __all__ = [ 'OpenFMRIDataset'] import os from os.path import join as _opj import numpy as np from mvpa2.datasets import vstack from mvpa2.base import warning def _prefix(prefix, val): if isinstance(val, (np.integer, int)): return '%s%.3i' % (prefix, val) else: return '%s%s' % (prefix, val) def _cond2id(val): return _prefix('cond', val) def _model2id(val): return _prefix('model', val) def _sub2id(val): return _prefix('sub', val) def _taskrun(task, run): return '%s_%s' % (_prefix('task', task), _prefix('run', run)) def _id2int(id_, strip=None): if strip is None and isinstance(id_, basestring): for s in ('sub', 'task', 'model', 'run', 'cond'): if id_.startswith(s): id_ = id_[len(s):] break else: id_ = id_[strip:] try: id_ = int(id_) except: pass return id_ def _get_description_dict(path, xfm_key=None): props = {} if os.path.exists(path): for line in open(path, 'r'): key = line.split()[0] value = line[len(key):].strip() if xfm_key is not None: key = xfm_key(key) props[key] = value return props def _subdirs2ids(path, prefix, **kwargs): # num_ids to separate sorting of numeric and literal ids ids, num_ids = [], [] if not os.path.exists(path): return ids for item in os.listdir(path): if item.startswith(prefix) and os.path.isdir(_opj(path, item)): id_ = _id2int(item, **kwargs) (num_ids if isinstance(id_, (np.integer, int)) else ids).append(id_) return sorted(num_ids) + sorted(ids) def _stripext(path): for ext in ('.nii', '.nii.gz', '.hdr', '.hdr.gz', '.img', '.img.gz'): if path.endswith(ext): return path[:-len(ext)] return path class OpenFMRIDataset(object): """Handler for datasets following the openfmri.org layout specifications At present, this handler provides functions to query and access a number of dataset properties, BOLD images of individual acquisition runs, build datasets from individual BOLD images, and load stimulation design specifications for individual runs. """ def __init__(self, basedir): """ Parameters ---------- basedir : path Path to the dataset (i.e. the directory with the 'sub*' subdirectories). """ self.basedir = os.path.expanduser(os.path.expandvars(basedir)) def get_subj_ids(self): """Return a (sorted) list of IDs for all subjects in the dataset Standard numerical subject IDs a returned as integer values. All other types of IDs are returned as strings with the 'sub' prefix stripped. """ return _subdirs2ids(self.basedir, 'sub') def get_scan_properties(self): """Return a dictionary with the scan properties listed in scan_key.txt """ fname = _opj(self.basedir, 'scan_key.txt') return _get_description_dict(fname) def get_task_descriptions(self): """Return a dictionary with the tasks defined in the dataset Dictionary keys are integer task IDs, values are task description strings. """ fname = _opj(self.basedir, 'task_key.txt') return _get_description_dict(fname, xfm_key=_id2int) def get_model_descriptions(self): """Return a dictionary with the models described in the dataset Dictionary keys are integer model IDs, values are description strings. Note that the return dictionary is not necessarily comprehensive. It only reflects the models described in ``model_key.txt``. If a dataset is inconsistently described, ``get_model_ids()`` actually may discover more or less models in comparison to the avauilable model descriptions. """ fname = _opj(self.basedir, 'model_key.txt') return _get_description_dict(fname, xfm_key=_id2int) def get_bold_run_ids(self, subj, task): """Return (sorted) list of run IDs for a given subject and task Typically, run IDs are integer values, but string IDs are supported as well. Parameters ---------- subj : int or str Subject ID task : int or str Run ID """ task_prefix = _prefix('task', task) return _subdirs2ids(_opj(self.basedir, _sub2id(subj), 'BOLD'), '%s_' % (task_prefix,), strip=len(task_prefix) + 4) def get_task_bold_run_ids(self, task): """Return a dictionary with run IDs by subjects for a given task Dictionary keys are subject IDs, values are lists of run IDs. """ out = {} for sub in self.get_subj_ids(): runs = self.get_bold_run_ids(sub, task) if len(runs): out[sub] = runs return out def _load_data(self, path, loadfx): # little helper to access stuff in datasets path = _opj(self.basedir, *path) return loadfx(path) def _load_subj_data(self, subj, path, loadfx): # little helper to access stuff in subjs of datasets path = [_sub2id(subj)] + path return self._load_data(path, loadfx) def _load_bold_task_run_data(self, subj, task, run, path, loadfx): # little helper for BOLD and associated data return self._load_subj_data( subj, ['BOLD', _taskrun(task, run)] + path, loadfx) def _load_model_task_run_onsets(self, subj, model, task, run, cond): # little helper for BOLD and associated data ev_fields = ('onset', 'duration', 'intensity') def _load_hlpr(fname): return np.recfromtxt(fname, names=ev_fields) return self._load_subj_data( subj, ['model', _model2id(model), 'onsets', _taskrun(task, run), '%s.txt' % _cond2id(cond)], _load_hlpr) def get_bold_run_image(self, subj, task, run, flavor=None): """Return a NiBabel image instance for the BOLD data of a particular subject/task/run combination. Parameters ---------- subj : int Subject identifier. task : int Task ID (see task_key.txt) run : int Run ID. flavor : None or str BOLD data flavor to access (see dataset description) Return ------- NiBabel Nifti1Image """ import nibabel as nb if flavor is None: flavor = '' else: flavor = '_' + flavor fname = 'bold%s.nii.gz' % flavor img = self._load_bold_task_run_data(subj, task, run, [fname], nb.load) zooms = img.header.get_zooms() if len(zooms) > 3: tr = zooms[3] if tr == 1.0: # Many "original" OpenfMRI datasets have a bug of having degenerate # TR=1.0, so let's check if it corresponds to the scan_key # TODO: there is no lazy evaluation, so would reread file over and # over again. At least should be cheap props = self.get_scan_properties() prop_tr = float(props.get('TR', 1.0)) if prop_tr != tr: new_zooms = zooms[:3] + (prop_tr,) + zooms[4:] warning("Dataset file has time dimension set to 1.0 whenever " "scan_key.txt states it to be %.2f. Setting zooms " "to %s" % (prop_tr, new_zooms)) img.header.set_zooms(new_zooms) return img def get_bold_run_motion_estimates(self, subj, task, run, fname='bold_moest.txt'): """Return the volume-wise motion estimates for a particular BOLD run Parameters ---------- subj : int Subject identifier. task : int Task ID (see task_key.txt) run : int Run ID. fname : str Filename. Returns ------- array Array of floats -- one row per fMRI volume, 6 columns (typically, the first three are translation X, Y, Z in mm and the last three rotation in deg) """ return self._load_bold_task_run_data( subj, task, run, [fname], np.loadtxt) def get_task_bold_attributes(self, task, fname, loadfx, exclude_subjs=None): """Return data attributes for all BOLD data from a specific task. This function can load arbitrary data from the directories where the relevant BOLD image files are stored. Data sources are described by specifying the file name containing the data in the BOLD directory, and by providing a function that returns the file content in array form. Optionally, data from specific subjects can be skipped. For example, this function can be used to access motion estimates. Parameters ---------- task : int Task ID (see task_key.txt) fname : str Filename. loadfx : functor Function that can open the relevant files and return their content as an array. This function is called with the name of the data file as its only argument. exclude_subjs : list or None Optional list of subject IDs whose data shall be skipped. Returns ------- list(dict(array)) A list (one item per run) of dictionaries (one item per subject, key is subject ID) of arrays. Each array carries the information loaded from the respective files. """ if exclude_subjs is None: exclude_subjs = [] # runs per task per subj tbri = self.get_task_bold_run_ids(task) nruns = max([max(tbri[s]) for s in tbri if not s in exclude_subjs]) # structure to hold all data data = [None] * nruns # over all possible run ids for run in xrange(nruns): # for all actual subjects for subj in sorted(tbri.keys()): if subj in exclude_subjs: continue try: # run + 1 because openfmri is one-based d = self._load_bold_task_run_data(subj, task, run + 1, [fname], loadfx) if data[run] is None: data[run] = {subj: d} else: data[run][subj] = d except IOError: # no data pass run_data = data[run] # deal with missing values max_vol = max([len(run_data[d]) for d in run_data]) for subj in run_data: d = run_data[subj] if len(d) == max_vol: continue # XXX WTF 6? determine shape of an attribute from other subjs fixed_run = np.empty((max_vol, 6), dtype=np.float) fixed_run[:] = np.nan if len(d): fixed_run[:len(d)] = d run_data[subj] = fixed_run # make sure we have arrays run_data[subj] = np.array(run_data[subj]) return data def get_bold_run_dataset(self, subj, task, run, flavor=None, preproc_img=None, add_sa=None, **kwargs): """Return a dataset instance for the BOLD data of a particular subject/task/run combination. This method support the same functionality as fmri_dataset(), while wrapping get_bold_run_image() to access the input fMRI data. Additional attributes, such as subject ID, task ID, and run ID are automatically stored as dataset sample attributes. Parameters ---------- subj : int Subject identifier. task : int Task ID (see task_key.txt) run : int Run ID. flavor : None or str BOLD data flavor to access (see dataset description). If ``flavor`` corresponds to an existing file in the respective task/run directory, it is assumed to be a stored dataset in HDF5 format and loaded via ``h5load()`` -- otherwise datasets are constructed from NIfTI images. preproc_img : callable or None If not None, this callable will be called with the loaded source BOLD image instance as an argument before fmri_dataset() is executed. The callable must return an image instance. add_sa: str or tuple(str) Single or sequence of names of files in the respective BOLD directory containing additional samples attributes. At this time all formats supported by NumPy's loadtxt() are supported. The number of lines in such a file needs to match the number of BOLD volumes. Each column is converted into a separate dataset sample attribute. The file name with a column index suffix is used to determine the attribute name. **kwargs: All additional arguments are passed on to fmri_dataset() Returns ------- Dataset """ from mvpa2.datasets.mri import fmri_dataset # check whether flavor corresponds to a particular file if flavor is not None: path = _opj(self.basedir, _sub2id(subj), 'BOLD', _taskrun(task, run), flavor) if flavor is not None and os.path.exists(path): from mvpa2.base.hdf5 import h5load ds = h5load(path) else: bold_img = self.get_bold_run_image(subj, task, run, flavor=flavor) if preproc_img is not None: bold_img = preproc_img(bold_img) # load (and mask) data ds = fmri_dataset(bold_img, **kwargs) # inject sample attributes for name, var in (('subj', subj), ('task', task), ('run', run)): ds.sa[name] = np.repeat(var, len(ds)) if add_sa is None: return ds if isinstance(add_sa, basestring): add_sa = (add_sa,) for sa in add_sa: # TODO: come up with a fancy way of detecting what kind of thing # we are accessing -- in any case: first axis needs to match # nsamples attrs = self._load_bold_task_run_data( subj, task, run, [sa], np.loadtxt) if len(attrs.shape) == 1: ds.sa[sa] = attrs else: for col in xrange(attrs.shape[1]): ds.sa['%s_%i' % (sa, col)] = attrs[:, col] return ds def get_model_ids(self): """Return a sorted list of integer IDs for all available models""" return _subdirs2ids(_opj(self.basedir, 'models'), 'model') def get_model_conditions(self, model): """Return a description of all conditions for a given model Parameters ---------- model : int Model identifier. Returns ------- list(dict) A list of a model conditions is returned, where each item is a dictionary with keys ``id`` (numerical condition ID), ``task`` (numerical task ID for the task containing this condition), and ``name`` (the literal condition name). This information is returned in a list (instead of a dictionary), because the openfmri specification of model conditions contains no unique condition identifier. Conditions are only uniquely described by the combination of task and condition ID. """ def_data = self._load_data( ['models', _model2id(model), 'condition_key.txt'], open) conds = [] # load model meta data for dd in def_data: if not dd.strip(): # ignore empty lines continue dd = dd.split() cond = {} cond['task'] = _id2int(dd[0]) cond['id'] = _id2int(dd[1]) cond['name'] = ' '.join(dd[2:]) conds.append(cond) return conds def get_model_contrasts(self, model): """Return a defined contrasts for a model Parameters ---------- model : int Model identifier. Returns ------- dict(dict) A dictionary is returned, where each key is a (numerical) task ID and each value is a dictionary with contrast labels (str) as keys and contrast vectors as values. """ from collections import OrderedDict props = {} try: def_data = self._load_data( ['models', _model2id(model), 'task_contrasts.txt'], open) except IOError: return props for line in def_data: line = line.split() task_id = _id2int(line[0]) task = props.get(task_id, OrderedDict()) task[line[1]] = np.array(line[2:], dtype=float) props[task_id] = task return props def get_bold_run_model(self, model, subj, run): """Return the stimulation design for a particular subject/task/run. Parameters ---------- model : int Model identifier. subj : int Subject identifier. run : int Run ID. Returns ------- list One item per event in the run. All items are dictionaries with the following keys: 'condition', 'onset', 'duration', 'intensity', 'run', 'task', 'trial_idx', 'ctrial_idx', where the first is a literal label, the last four are integer IDs, and the rest are typically floating point values. 'onset_idx' is the index of the event specification sorted by time across the entire run (typically corresponding to a trial index), 'conset_idx' is analog but contains the onset index per condition, i.e. the nth trial of the respective condition in a run. """ conditions = self.get_model_conditions(model) events = [] ev_fields = ('onset', 'duration', 'intensity') # get onset info for specific subject/task/run combo for cond in conditions: task_id = cond['task'] try: evdata = np.atleast_1d( self._load_model_task_run_onsets( subj, model, task_id, run, cond['id'])) except IOError: warning("onset definition file not found; no information " "about condition '%s' for run %i" % (cond['name'], run)) continue for i, ev in enumerate(evdata): evdict = dict(zip(ev_fields, [ev[field] for field in ev_fields])) evdict['task'] = task_id evdict['condition'] = cond['name'] evdict['run'] = run evdict['conset_idx'] = i events.append(evdict) events = sorted(events, key=lambda x: x['onset']) for i, ev in enumerate(events): ev['onset_idx'] = i return events def get_model_bold_dataset(self, model_id, subj_id, run_ids=None, preproc_img=None, preproc_ds=None, modelfx=None, stack=True, flavor=None, mask=None, add_fa=None, add_sa=None, **kwargs): """Build a PyMVPA dataset for a model defined in the OpenFMRI dataset Parameters ---------- model_id : int Model ID. subj_id : int or str or list Integer, or string ID of the subject whose data shall be considered. Alternatively, a list of IDs can be given and data from all matching subjects will be loaded at once. run_ids : list, optional Run ids to be loaded. If None, all runs get loaded preproc_img : callable or None See get_bold_run_dataset() documentation preproc_ds : callable or None If not None, this callable will be called with each run bold dataset as an argument before ``modelfx`` is executed. The callable must return a dataset. modelfx : callable or None This callable will be called with each run dataset and the respective event list for each run as arguments, In addition all additional **kwargs of this method will be passed on to this callable. The callable must return a dataset. If None, ``assign_conditionlabels`` will be used as a default callable. stack : boolean Flag whether to stack all run datasets into a single dataset, or whether to return a list of datasets. flavor See get_bold_run_dataset() documentation mask See fmri_dataset() documentation. add_fa See fmri_dataset() documentation. add_sa See get_bold_run_dataset() documentation. Returns ------- Dataset or list Depending on the ``stack`` argument either a single dataset or a list of datasets for all subject/task/run combinations relevant to the model will be returned. In the stacked case the dataset attributes of the returned dataset are taken from the first run dataset, and are assumed to be identical for all of them. """ if modelfx is None: # loading a model dataset without actually considering the model # probably makes little sense, so at least create an attribute from mvpa2.datasets.eventrelated import assign_conditionlabels modelfx = assign_conditionlabels conds = self.get_model_conditions(model_id) # what tasks do we need to consider for this model tasks = np.unique([c['task'] for c in conds]) if isinstance(subj_id, (int, basestring)): subj_id = [subj_id] dss = [] for sub in subj_id: # we need to loop over tasks first in order to be able to determine # what runs exists: that means we have to load the model info # repeatedly for task in tasks: run_ids_ = run_ids \ if run_ids is not None \ else self.get_bold_run_ids(sub, task) for i, run in enumerate(run_ids_): events = self.get_bold_run_model(model_id, sub, run) # at this point our events should only contain those # matching the current task. If not, this model violates # the implicit assumption that one condition (label) can # only be present in a single task. The current OpenFMRI # spec does not allow for a more complex setup. I think # this is worth a runtime check check_events = [ev for ev in events if ev['task'] == task] if not len(check_events) == len(events): warning( "not all event specifications match the expected " "task ID -- something is wrong -- check that each " "model condition label is only associated with a " "single task") if not len(events): # nothing in this run for the given model # it could be argued whether we'd still want this data loaded # XXX maybe a flag? continue d = self.get_bold_run_dataset( sub, task, run=run, flavor=flavor, preproc_img=preproc_img, chunks=i, mask=mask, add_fa=add_fa, add_sa=add_sa) if preproc_ds is not None: d = preproc_ds(d) d = modelfx( d, events, **dict([(k, v) for k, v in kwargs.iteritems() if not k in ('preproc_img', 'preproc_ds', 'modelfx', 'stack', 'flavor', 'mask', 'add_fa', 'add_sa')])) # if the modelfx doesn't leave 'chunk' information, we put # something minimal in for attr, info in (('chunks', i), ('run', run), ('subj', sub)): if not attr in d.sa: d.sa[attr] = [info] * len(d) dss.append(d) if stack: dss = vstack(dss, a=0) return dss def get_anatomy_image(self, subj, path=None, fname='highres001.nii.gz'): """Return a NiBabel image instance for a structural image of a subject. Parameters ---------- subj : int Subject identifier. path : list or None Path to the structural file within the anatomy/ tree. fname : str Access a particular anatomy data flavor via its filename (see dataset description). Defaults to the first T1-weighted image. Returns ------- NiBabel Nifti1Image """ import nibabel as nb if path is None: path = [] return self._load_subj_data( subj, ['anatomy'] + path + [fname], nb.load) pymvpa2-2.6.4/mvpa2/datasets/sources/skl_data.py000066400000000000000000000062771323370031300216040ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrapper for sklearn datasets/data generators.""" __docformat__ = 'restructuredtext' from mvpa2.base import externals if externals.exists('skl', raise_=True): if externals.versions['skl'] >= '0.9': from sklearn import datasets as sklds else: from scikits.learn import datasets as sklds import inspect __all__ = [] for fx in sklds.__dict__: if not (fx.startswith('make_') or fx.startswith('load_')) \ or fx in ['load_filenames', 'load_files', 'load_sample_image', 'load_sample_images', 'load_svmlight_files', 'load_svmlight_file']: continue fx = getattr(sklds, fx) argnames, varargs, varkw, defaults = inspect.getargspec(fx) if defaults is not None: kwargs = list(zip(argnames[::-1], defaults[::-1]))[::-1] else: kwargs = tuple() args = argnames[:len(argnames) - len(kwargs)] sig = '' if len(args): sig += ', '.join(args) if len(kwargs): if len(sig): sig += ', ' sig += ', '.join(['%s=%s' % (kw[0], repr(kw[1])) for kw in kwargs]) if varargs: if len(sig): sig += ', ' sig += '*%s' % varargs if varkw: if len(sig): sig += ', ' sig += '**%s' % varkw pymvpa_fxname = 'skl_%s' % fx.__name__[5:] fxdef = ''' def %s(%s): """%s Notes ----- This function has been auto-generated by wrapping %s() from the `sklearn `_ package. The documentation of this function has been kept verbatim. Consequently, the actual return value is not as described in the documentation, but the data is returned as a PyMVPA dataset. """ from sklearn import datasets as sklds from mvpa2.datasets import Dataset data = sklds.%s(%s) if isinstance(data, tuple): ds = Dataset(data[0]) if len(data) > 1: ds.sa['targets'] = data[1] if len(data) > 2: raise RuntimeError("sklearn function returned unexpected amount of data") else: ds = Dataset(data['data']) if 'DESCR' in data: ds.a['descr'] = data['DESCR'] if 'feature_names' in data: ds.fa['names'] = data['feature_names'] if 'target' in data: if 'target_names' in data: names = data['target_names'] ds.sa['targets'] = [names[t] for t in data['target']] else: ds.sa['targets'] = data['target'] return ds ''' % (pymvpa_fxname, sig, fx.__doc__, fx.__name__, fx.__name__, ', '.join(argnames)) exec fxdef __all__.append(pymvpa_fxname) pymvpa2-2.6.4/mvpa2/featsel/000077500000000000000000000000001323370031300155645ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/featsel/__init__.py000066400000000000000000000015451323370031300177020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Feature selection methods. Brief Description of Available Methods ====================================== * `SensitivityBasedFeatureSelection` - generic class to provide feature selection given some sensitivity measure * `RFE` - recursive feature elimination (RFE) * `IFS` - incremental feature selection """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.featsel') if __debug__: debug('INIT', 'mvpa2.featsel end') pymvpa2-2.6.4/mvpa2/featsel/base.py000066400000000000000000000631231323370031300170550ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Feature selection base class and related stuff base classes and helpers.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.featsel.helpers import FractionTailSelector, \ NBackHistoryStopCrit, \ BestDetector from mvpa2.mappers.slicing import SliceMapper from mvpa2.mappers.base import accepts_dataset_as_samples from mvpa2.base.dochelpers import _repr_attrs from mvpa2.base.state import ConditionalAttribute from mvpa2.generators.splitters import mask2slice from mvpa2.base.dataset import split_by_sample_attribute, vstack from mvpa2.base import externals if __debug__: from mvpa2.base import debug class FeatureSelection(SliceMapper): """Mapper to select a subset of features. Depending on the actual slicing two FeatureSelections can be merged in a number of ways: incremental selection (+=), union (&=) and intersection (|=). Were the former assumes that two feature selections are applied subsequently, and the latter two assume that both slicings operate on the set of input features. Examples -------- >>> from mvpa2.datasets import * >>> ds = Dataset([[1,2,3,4,5]]) >>> fs0 = StaticFeatureSelection([0,1,2,3]) >>> fs0(ds).samples array([[1, 2, 3, 4]]) Merge two incremental selections: the resulting mapper performs a selection that is equivalent to first applying one slicing and subsequently the next slicing. In this scenario the slicing argument of the second mapper is relative to the output feature space of the first mapper. >>> fs1 = StaticFeatureSelection([0,2]) >>> fs0 += fs1 >>> fs0(ds).samples array([[1, 3]]) """ __init__doc__exclude__ = ['slicearg'] def __init__(self, filler=0, **kwargs): """ Parameters ---------- filler : optional Value to fill empty entries upon reverse operation """ # init slicearg with None SliceMapper.__init__(self, None, **kwargs) self._dshape = None self._oshape = None self.filler = filler def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(FeatureSelection, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['filler'], default=0)) def __iadd__(self, other): out = super(FeatureSelection, self).__iadd__(other) if out is self: # adjust our own attributes # if one of them was not trained, we can't say we are trained if self.is_trained != other.is_trained: self.untrain() elif hasattr(other, '_oshape'): self._oshape = other._oshape else: # we can't know now self._oshape = None elif out is NotImplemented: pass # for paranoid else: raise RuntimeError("Must have not reached here") return out def _forward_data(self, data): """Map data from the original dataspace into featurespace. Parameters ---------- data : array-like Either one-dimensional sample or two-dimensional samples matrix. """ mdata = data[:, self._slicearg] # store the output shape if not set yet if self._oshape is None: self._oshape = mdata.shape[1:] return mdata def _forward_dataset(self, dataset): # XXX this should probably not affect the source dataset, but right now # init_origid is not flexible enough if self.get_space() is not None: # TODO need to do a copy first!!! dataset.init_origids('features', attr=self.get_space()) # invoke super class _forward_dataset, this calls, _forward_dataset # and this calles _forward_data in this class mds = super(FeatureSelection, self)._forward_dataset(dataset) # attribute collection needs to have a new length check mds.fa.set_length_check(mds.nfeatures) # now slice all feature attributes for k in mds.fa: mds.fa[k] = self.forward1(mds.fa[k].value) return mds def reverse1(self, data): # we need to reject inappropriate "single" samples to allow # chainmapper to properly switch to reverse() for multiple samples # use the fact that a single sample needs to conform to the known # data shape -- but may have additional appended dimensions if not data.shape[:len(self._oshape)] == self._oshape: raise ValueError("Data shape does not match training " "(trained: %s; got: %s)" % (self._dshape, data.shape)) return super(FeatureSelection, self).reverse1(data) def _reverse_data(self, data): """Reverse map data from featurespace into the original dataspace. Parameters ---------- data : array-like Either one-dimensional sample or two-dimensional samples matrix. """ if self._dshape is None: raise RuntimeError( "Cannot reverse-map data since the original data shape is " "unknown. Either set `dshape` in the constructor, or call " "train().") # this wouldn't preserve ndarray subclasses #mapped = np.zeros(data.shape[:1] + self._dshape, # dtype=data.dtype) # let's do it a little awkward but pass subclasses through # suggestions for improvements welcome mapped = data.copy() # make sure we own the array data # "guess" the shape of the final array, the following only supports # changes in the second axis -- the feature axis # this madness is necessary to support mapping of multi-dimensional # features mapped.resize(data.shape[:1] + self._dshape + data.shape[2:], refcheck=False) mapped.fill(self.filler) mapped[:, self._slicearg] = data return mapped def _reverse_dataset(self, dataset): # invoke super class _reverse_dataset, this calls, _reverse_dataset # and this calles _reverse_data in this class mds = super(FeatureSelection, self)._reverse_dataset(dataset) # attribute collection needs to have a new length check mds.fa.set_length_check(mds.nfeatures) # now reverse all feature attributes for k in mds.fa: mds.fa[k] = self.reverse1(mds.fa[k].value) return mds @accepts_dataset_as_samples def _train(self, data): if self._dshape is None: # XXX what about arrays of generic objects??? # MH: in this case the shape will be (), which is just # fine since feature slicing is meaningless without features # the only thing we can do is kill the whole samples matrix self._dshape = data.shape[1:] # we also need to know what the output shape looks like # otherwise we cannot reliably say what is appropriate input # for reverse*() self._oshape = data[:, self._slicearg].shape[1:] def _untrain(self): if __debug__: debug("FS_", "Untraining FS: %s" % self) self._dshape = None self._oshape = None super(SliceMapper, self)._untrain() class StaticFeatureSelection(FeatureSelection): """Feature selection by static slicing argument. """ __init__doc__exclude__ = [] # slicearg is relevant again def __init__(self, slicearg, dshape=None, oshape=None, **kwargs): """ Parameters ---------- slicearg : int, list(int), array(int), array(bool) Any slicing argument that is compatible with numpy arrays. Depending on the argument the mapper will perform basic slicing or advanced indexing (with all consequences on speed and memory consumption). dshape : tuple Preseed the mappers input data shape (single sample shape). oshape: tuple Preseed the mappers output data shape (single sample shape). """ FeatureSelection.__init__(self, **kwargs) # store it here, might be modified later self._dshape = self.__orig_dshape = dshape self._oshape = self.__orig_oshape = oshape # we also want to store the original slicearg to be able to reset to it # during training. Derived classes will override this default # implementation of _train() self.__orig_slicearg = slicearg self._safe_assign_slicearg(slicearg) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(FeatureSelection, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['dshape', 'oshape'])) @accepts_dataset_as_samples def _train(self, ds): # first thing is to reset the slicearg to the original value passed to # the constructor self._safe_assign_slicearg(self.__orig_slicearg) # not resetting {d,o}shape here as they will be handled upstream # and perform base training super(StaticFeatureSelection, self)._train(ds) def _untrain(self): # make trained again immediately self._safe_assign_slicearg(self.__orig_slicearg) self._dshape = self.__orig_dshape self._oshape = self.__orig_oshape super(FeatureSelection, self)._untrain() dshape = property(fget=lambda self: self.__orig_dshape) oshape = property(fget=lambda self: self.__orig_oshape) class SensitivityBasedFeatureSelection(FeatureSelection): """Feature elimination. A `FeaturewiseMeasure` is used to compute sensitivity maps given a certain dataset. These sensitivity maps are in turn used to discard unimportant features. """ sensitivity = ConditionalAttribute(enabled=False) def __init__(self, sensitivity_analyzer, feature_selector=FractionTailSelector(0.05), train_analyzer=True, **kwargs ): """Initialize feature selection Parameters ---------- sensitivity_analyzer : FeaturewiseMeasure sensitivity analyzer to come up with sensitivity feature_selector : Functor Given a sensitivity map it has to return the ids of those features that should be kept. train_analyzer : bool Flag whether to train the sensitivity analyzer on the input dataset during train(). If False, the employed sensitivity measure has to be already trained before. """ # base init first FeatureSelection.__init__(self, **kwargs) self.__sensitivity_analyzer = sensitivity_analyzer """Sensitivity analyzer to use once""" self.__feature_selector = feature_selector """Functor which takes care about removing some features.""" self.__train_analyzer = train_analyzer def _get_selected_ids(self, dataset): """Given a dataset actually select the features Returns ------- indexes of the selected features """ # optionally train the analyzer first if self.__train_analyzer: self.__sensitivity_analyzer.train(dataset) sensitivity = self.__sensitivity_analyzer(dataset) """Compute the sensitivity map.""" self.ca.sensitivity = sensitivity # Select features to preserve selected_ids = self.__feature_selector(sensitivity) if __debug__: debug("FS_", "Sensitivity: %s Selected ids: %s" % (sensitivity, selected_ids)) # XXX not sure if it really has to be sorted selected_ids.sort() return selected_ids def _train(self, dataset): """Select the most important features Parameters ---------- dataset : Dataset used to compute sensitivity maps """ # Get selected feature ids selected_ids = self._get_selected_ids(dataset) # announce desired features to the underlying slice mapper self._safe_assign_slicearg(selected_ids) # and perform its own training super(SensitivityBasedFeatureSelection, self)._train(dataset) def _untrain(self): if __debug__: debug("FS_", "Untraining sensitivity-based FS: %s" % self) self.__sensitivity_analyzer.untrain() # ask base class to do its untrain super(SensitivityBasedFeatureSelection, self)._untrain() # make it accessible from outside sensitivity_analyzer = property(fget=lambda self:self.__sensitivity_analyzer, doc="Measure which was used to do selection") class IterativeFeatureSelection(FeatureSelection): """ """ errors = ConditionalAttribute( doc="History of errors") nfeatures = ConditionalAttribute( doc="History of # of features left") def __init__(self, fmeasure, pmeasure, splitter, fselector, stopping_criterion=NBackHistoryStopCrit(BestDetector()), bestdetector=BestDetector(), train_pmeasure=True, # XXX should we may be guard splitter so we do not end up # with inappropriate one for the use, i.e. which # generates more than 2 splits # guard_splitter=True, **kwargs ): """ Parameters ---------- fmeasure : Measure Computed for each candidate feature selection. The measure has to compute a scalar value. pmeasure : Measure Compute against a test dataset for each incremental feature set. splitter: Splitter This splitter instance has to generate at least one dataset split when called with the input dataset that is used to compute the per-feature criterion for feature selection. bestdetector : Functor Given a list of error values it has to return a boolean that signals whether the latest error value is the total minimum. stopping_criterion : Functor Given a list of error values it has to return whether the criterion is fulfilled. fselector : Functor train_pmeasure : bool Flag whether the `pmeasure` should be trained before computing the error. In general this is required, but if the `fmeasure` and `pmeasure` share and make use of the same classifier AND `pmeasure` does not really need training, it can be switched off to save CPU cycles. """ # bases init first FeatureSelection.__init__(self, **kwargs) self._fmeasure = fmeasure self._pmeasure = pmeasure self._splitter = splitter self._fselector = fselector self._stopping_criterion = stopping_criterion self._bestdetector = bestdetector self._train_pmeasure = train_pmeasure # TODO! #def __repr__(self): # raise NotImplementedError def _untrain(self): if __debug__: debug("FS_", "Untraining Iterative FS: %s" % self) if self._fmeasure is not None: self._fmeasure.untrain() if self._pmeasure is not None: self._pmeasure.untrain() # ask base class to do its untrain super(IterativeFeatureSelection, self)._untrain() def _evaluate_pmeasure(self, train, test): # local binding pmeasure = self._pmeasure # might safe some cycles to prevent training the measure, but only # the user can know whether this is sensible or possible if self._train_pmeasure: pmeasure.train(train) # actually run the performance measure to estimate "quality" of # selection return pmeasure(test) def _get_traintest_ds(self, ds): # activate the dataset splitter dsgen = self._splitter.generate(ds) # and derived the dataset part that is used for computing the selection # criterion trainds = dsgen.next() testds = dsgen.next() return trainds, testds # access properties fmeasure = property(fget=lambda self: self._fmeasure) pmeasure = property(fget=lambda self: self._pmeasure) splitter = property(fget=lambda self: self._splitter) fselector = property(fget=lambda self: self._fselector) stopping_criterion = property(fget=lambda self: self._stopping_criterion) bestdetector = property(fget=lambda self: self._bestdetector) train_pmeasure = property(fget=lambda self: self._train_pmeasure) class CombinedFeatureSelection(FeatureSelection): """Meta feature selection utilizing several embedded selection methods. During training each embedded feature selection method is computed individually. Afterwards all feature sets are combined by either taking the union or intersection of all sets. """ def __init__(self, selectors, method, **kwargs): """ Parameters ---------- selectors : list FeatureSelection instances to run. Order is not important. method : {'union', 'intersection'} which method to be used to combine the feature selection set of all computed methods. """ # by default -- auto_train kwargs['auto_train'] = kwargs.get('auto_train', True) FeatureSelection.__init__(self, **kwargs) self.__selectors = selectors self.__method = method def _untrain(self): if __debug__: debug("FS_", "Untraining combined FS: %s" % self) for fs in self.__selectors: fs.untrain() # ask base class to do its untrain super(CombinedFeatureSelection, self)._untrain() def _train(self, ds): # local binding method = self.__method # two major modes if method == 'union': # slice mask default: take none mask = np.zeros(ds.shape[1], dtype=np.bool) # method: OR cfunc = np.logical_or elif method == 'intersection': # slice mask default: take all mask = np.ones(ds.shape[1], dtype=np.bool) # method: AND cfunc = np.logical_and else: raise ValueError("Unknown combining method '%s'" % method) for fs in self.__selectors: # first: train all embedded selections fs.train(ds) # now get boolean mask of selections fsmask = np.zeros(mask.shape, dtype=np.bool) # use slicearg to select features fsmask[fs._slicearg] = True # merge with current global mask mask = cfunc(mask, fsmask) # turn the derived boolean mask into a slice if possible slicearg = mask2slice(mask) # and assign to baseclass, done self._safe_assign_slicearg(slicearg) method = property(fget=lambda self: self.__method) selectors = property(fget=lambda self: self.__selectors) class SplitSamplesProbabilityMapper(SliceMapper): ''' Mapper to select features & samples based on some sensitivity value. A use case is feature selection across participants, where either the same features are selected in all participants or not (see select_common_features parameter). Examples -------- >>> nf = 10 >>> ns = 100 >>> nsubj = 5 >>> nchunks = 5 >>> data = np.random.normal(size=(ns, nf)) >>> from mvpa2.base.dataset import AttrDataset >>> from mvpa2.measures.anova import OneWayAnova >>> ds = AttrDataset(data, ... sa=dict(sidx=np.arange(ns), ... targets=np.arange(ns) % nchunks, ... chunks=np.floor(np.arange(ns) * nchunks / ns), ... subjects=np.arange(ns) / (ns / nsubj / nchunks) % nsubj), ... fa=dict(fidx=np.arange(nf))) >>> analyzer=OneWayAnova() >>> element_selector=FractionTailSelector(.4, mode='select', tail='upper') >>> common=True >>> m=SplitSamplesProbabilityMapper(analyzer, 'subjects', ... probability_label='fprob', ... select_common_features=common, ... selector=element_selector) >>> m.train(ds) >>> y=m(ds) >>> z=m(ds.samples) >>> np.all(np.equal(z, y.samples)) True >>> y.shape (100, 4) ''' def __init__(self, sensitivity_analyzer, split_by_labels, select_common_features=True, probability_label=None, probability_combiner=None, selector=FractionTailSelector(0.05), **kwargs): ''' Parameters ---------- sensitivity_analyzer: FeaturewiseMeasure Sensitivity analyzer to come up with sensitivity. split_by_labels: str or list of str Sample labels on which input datasets are split before data is selected. select_common_features: bool True means that the same features are selected after the split. probablity_label: None or str If None, then the output dataset ds from the sensitivity_analyzer is taken to select the samples. If not None it takes ds.sa['probablity_label']. For example if sensitivity_analyzer=OneWayAnova then probablity_label='fprob' is a sensible value. probability_combiner: function If select_common_features is True, then this function is applied to the feature scores across splits. If None, it uses lambda x:np.sum(-np.log(x)) which is sensible if the scores are probability values selector: Selector function that returns the indices to keep. ''' SliceMapper.__init__(self, None, **kwargs) if probability_combiner is None: def f(x): y = -np.log(x.ravel()) # address potential NaNs # set to max value in y m = np.isnan(y) if np.all(m): return 0 # p=1 y[m] = np.max(y[np.logical_not(m)]) return np.sum(y) probability_combiner = f # avoid lambda as h5py doesn't like it self._sensitivity_analyzer = sensitivity_analyzer self._split_by_labels = split_by_labels self._select_common_features = select_common_features self._probability_label = probability_label self._probability_combiner = probability_combiner self._selector = selector def _train(self, ds): # add a sample attribute indicating the sample indices # so that we can recover where each part came from ds_copy = ds.copy(deep=False) ds_copy.sa['orig_fidxs_'] = np.arange(ds.nsamples) splits = split_by_sample_attribute(ds_copy, self._split_by_labels) scores_ds = map(self._sensitivity_analyzer, splits) if self._probability_label is None: scores = [ds.samples for ds in scores_ds] else: scores = [ds.fa[self._probability_label].value for ds in scores_ds] selector = self._selector if self._select_common_features: # must have the same number of features stacked = np.vstack(scores) f = self._probability_combiner n = stacked.shape[-1] # number of features common_all = np.asarray([f(stacked[:, i]) for i in xrange(n)]) # combine the scores common_feature_ids = selector(common_all) # same feature ids for each element in split feature_ids = [common_feature_ids for _ in splits] else: # do the selection split=wise feature_ids = [selector(score) for score in scores] self._slice_feature_ids = feature_ids self._slice_sample_ids = [ds.sa.orig_fidxs_ for ds in splits] super(SplitSamplesProbabilityMapper, self)._train(ds) def _untrain(self): self._slice_feature_ids = None self._slice_sample_ids = None super(SplitSamplesProbabilityMapper, self)._untrain() def _forward_dataset(self, ds): sliced_ds = [ds[sample_ids, feature_ids] for sample_ids, feature_ids in zip(*(self._slice_sample_ids, self._slice_feature_ids))] return vstack(sliced_ds, True) def _forward_data(self, data): sliced_data = [np.vstack(data[sample_id, feature_ids] for sample_id in sample_ids) for sample_ids, feature_ids in zip(*(self._slice_sample_ids, self._slice_feature_ids))] return vstack(sliced_data) sensitivity_analyzer = property(fget=lambda self:self._sensitivity_analyzer, doc="Measure which was used to do selection") selector = property(fget=lambda self:self._selector, doc="Function used to do selection") pymvpa2-2.6.4/mvpa2/featsel/helpers.py000066400000000000000000000410671323370031300176100ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helpers for feature selection (scoring, selection strategies)""" __docformat__ = 'restructuredtext' from math import floor import numpy as np from mvpa2.base.dataset import AttrDataset from mvpa2.base.state import ClassWithCollections, ConditionalAttribute if __debug__: from mvpa2.base import debug # # Functors to be used for FeatureSelection # class BestDetector(object): """Determine whether the last value in a sequence is the best one given some criterion. """ def __init__(self, func=min, lastminimum=False): """Initialize with number of steps Parameters ---------- fun : functor Functor to select the best results. Defaults to min lastminimum : bool Toggle whether the latest or the earliest minimum is used as optimal value to determine the stopping criterion. """ self.__func = func self.__lastminimum = lastminimum self.__bestindex = None """Stores the index of the last detected best value.""" def __call__(self, errors): """Returns True if the last value in `errors` is the best or False otherwise. """ isbest = False # just to prevent ValueError if len(errors)==0: return isbest minerror = self.__func(errors) if self.__lastminimum: # make sure it is an array errors = np.array(errors) # to find out the location of the minimum but starting from the # end! minindex = np.array((errors == minerror).nonzero()).max() else: minindex = errors.index(minerror) self.__bestindex = minindex # if minimal is the last one reported -- it is the best if minindex == len(errors)-1: isbest = True return isbest bestindex = property(fget=lambda self:self.__bestindex) class StoppingCriterion(object): """Base class for all functors to decide when to stop RFE (or may be general optimization... so it probably will be moved out into some other module """ def __call__(self, errors): """Instruct when to stop. Every implementation should return `False` when an empty list is passed as argument. Returns tuple `stop`. """ raise NotImplementedError class MultiStopCrit(StoppingCriterion): """Stop computation if the latest error drops below a certain threshold. """ def __init__(self, crits, mode='or'): """ Parameters ---------- crits : list of StoppingCriterion instances For each call to MultiStopCrit all of these criterions will be evaluated. mode : {'and', 'or'} Logical function to determine the multi criterion from the set of base criteria. """ if not mode in ('and', 'or'): raise ValueError, \ "A mode %r is not supported." % (mode, ) self.__mode = mode self.__crits = crits def __call__(self, errors): """Evaluate all criteria to determine the value of the multi criterion. """ # evaluate all crits crits = [ c(errors) for c in self.__crits ] if self.__mode == 'and': return np.all(crits) else: return np.any(crits) class FixedErrorThresholdStopCrit(StoppingCriterion): """Stop computation if the latest error drops below a certain threshold. """ def __init__(self, threshold): """Initialize with threshold. Parameters ---------- threshold : float [0,1] Error threshold. """ StoppingCriterion.__init__(self) if threshold > 1.0 or threshold < 0.0: raise ValueError, \ "Threshold %f is out of a reasonable range [0,1]." \ % threshold self.__threshold = threshold def __call__(self, errors): """Nothing special.""" if len(errors)==0: return False if errors[-1] < self.__threshold: return True else: return False threshold = property(fget=lambda x:x.__threshold) class NStepsStopCrit(StoppingCriterion): """Stop computation after a certain number of steps. """ def __init__(self, steps): """Initialize with number of steps. Parameters ---------- steps : int Number of steps after which to stop. """ StoppingCriterion.__init__(self) if steps < 0: raise ValueError, \ "Number of steps %i is out of a reasonable range." \ % steps self.__steps = steps def __call__(self, errors): """Nothing special.""" if len(errors) >= self.__steps: return True else: return False steps = property(fget=lambda x:x.__steps) class NBackHistoryStopCrit(StoppingCriterion): """Stop computation if for a number of steps error was increasing """ def __init__(self, bestdetector=BestDetector(), steps=10): """Initialize with number of steps Parameters ---------- bestdetector : BestDetector used to determine where the best error is located. steps : int How many steps to check after optimal value. """ StoppingCriterion.__init__(self) if steps < 0: raise ValueError, \ "Number of steps (got %d) should be non-negative" % steps self.__bestdetector = bestdetector self.__steps = steps def __call__(self, errors): stop = False # just to prevent ValueError if len(errors)==0: return stop # charge best detector self.__bestdetector(errors) # if number of elements after the min >= len -- stop if len(errors) - self.__bestdetector.bestindex > self.__steps: stop = True return stop steps = property(fget=lambda x:x.__steps) class ElementSelector(ClassWithCollections): """Base class to implement functors to select some elements based on a sequence of values. """ ndiscarded = ConditionalAttribute(enabled=True, doc="Store number of discarded elements.") def __init__(self, mode='discard', **kwargs): """ Parameters ---------- mode : {'discard', 'select'} Decides whether to `select` or to `discard` features. """ ClassWithCollections.__init__(self, **kwargs) self._set_mode(mode) """Flag whether to select or to discard elements.""" ##REF: Name was automagically refactored def _set_mode(self, mode): """Choose `select` or `discard` mode.""" if not mode in ['discard', 'select']: raise ValueError, "Unkown selection mode [%s]. Can only be one " \ "of 'select' or 'discard'." % mode self.__mode = mode def __call__(self, seq): """ Parameters ---------- seq Sequence based on values of which to perform the selection. If `Dataset`, then only 1st sample is taken. """ if isinstance(seq, AttrDataset): if len(seq)>1: raise ValueError( "Feature selectors cannot handle multiple " "sequences in a Dataset at once. We got dataset %s " "as input." % (seq,)) seq = seq.samples[0] elif hasattr(seq, 'shape'): shape = seq.shape if len(shape) > 1: raise ValueError( "Feature selectors cannot handle multidimensional " "inputs (such as ndarrays with more than a single " "dimension. We got %s with shape %s " "as input." % (seq.__class__, shape)) return self._call(seq) def _call(self, seq): """Implementations in derived classed have to return a list of selected element IDs based on the given sequence. """ raise NotImplementedError mode = property(fget=lambda self:self.__mode, fset=_set_mode) class RangeElementSelector(ElementSelector): """Select elements based on specified range of values""" def __init__(self, lower=None, upper=None, inclusive=False, mode='select', **kwargs): """Initialization `RangeElementSelector` Parameters ---------- lower If not None -- select elements which are above of specified value upper If not None -- select elements which are lower of specified value inclusive Either to include end points mode overrides parent's default to be 'select' since it is more native for RangeElementSelector XXX TODO -- unify?? `upper` could be lower than `lower` -- then selection is done on values <= lower or >=upper (ie tails). This would produce the same result if called with flipped values for mode and inclusive. If no upper no lower is set, assuming upper,lower=0, thus outputing non-0 elements """ if lower is None and upper is None: lower, upper = 0, 0 """Lets better return non-0 values if none of bounds is set""" # init State before registering anything ElementSelector.__init__(self, mode=mode, **kwargs) self.__range = (lower, upper) """Values on which to base selection""" self.__inclusive = inclusive def _call(self, seq): """Returns selected IDs. """ lower, upper = self.__range len_seq = len(seq) if lower is not None: if self.__inclusive: selected = seq >= lower else: selected = seq > lower else: selected = np.ones( (len_seq), dtype=np.bool ) if upper is not None: if self.__inclusive: selected_upper = seq <= upper else: selected_upper = seq < upper if lower is not None: if lower < upper: # regular range selected = np.logical_and(selected, selected_upper) else: # outside, though that would be similar to exclude selected = np.logical_or(selected, selected_upper) else: selected = selected_upper if self.mode == 'discard': selected = np.logical_not(selected) result = np.where(selected)[0] if __debug__: debug("ES", "Selected %d out of %d elements" % (len(result), len_seq)) return result lower = property(lambda self: self.__range[0]) upper = property(lambda self: self.__range[1]) class TailSelector(ElementSelector): """Select elements from a tail of a distribution. The default behaviour is to discard the lower tail of a given distribution. """ # TODO: 'both' to select from both tails def __init__(self, tail='lower', sort=True, **kwargs): """Initialize TailSelector Parameters ---------- tail : ['lower', 'upper'] Choose the tail to be processed. sort : bool Flag whether selected IDs will be sorted. Disable if not necessary to save some CPU cycles. """ # init State before registering anything ElementSelector.__init__(self, **kwargs) self._set_tail(tail) """Know which tail to select.""" self.__sort = sort ##REF: Name was automagically refactored def _set_tail(self, tail): """Set the tail to be processed.""" if not tail in ['lower', 'upper']: raise ValueError, "Unkown tail argument [%s]. Can only be one " \ "of 'lower' or 'upper'." % tail self.__tail = tail ##REF: Name was automagically refactored def _get_n_elements(self, seq): """In derived classes has to return the number of elements to be processed given a sequence values forming the distribution. """ raise NotImplementedError def _call(self, seq): """Returns selected IDs. """ # TODO: Think about selecting features which have equal values but # some are selected and some are not len_seq = len(seq) # how many to select (cannot select more than available) nelements = min(self._get_n_elements(seq), len_seq) # make sure that data is ndarray and compute a sequence rank matrix # lowest value is first seqrank = np.array(seq).argsort() if self.mode == 'discard' and self.__tail == 'upper': good_ids = seqrank[:-1*nelements] self.ca.ndiscarded = nelements elif self.mode == 'discard' and self.__tail == 'lower': good_ids = seqrank[nelements:] self.ca.ndiscarded = nelements elif self.mode == 'select' and self.__tail == 'upper': good_ids = seqrank[-1*nelements:] self.ca.ndiscarded = len_seq - nelements else: # select lower tail good_ids = seqrank[:nelements] self.ca.ndiscarded = len_seq - nelements # sort ids to keep order # XXX should we do here are leave to other place if self.__sort: good_ids.sort() # only return proper slice args: this is a list of int ids, hence return # a list not an array return list(good_ids) class FixedNElementTailSelector(TailSelector): """Given a sequence, provide set of IDs for a fixed number of to be selected elements. """ def __init__(self, nelements, **kwargs): """ Parameters ---------- nelements : int Number of elements to select/discard. """ TailSelector.__init__(self, **kwargs) self.__nelements = None self._set_n_elements(nelements) def __repr__(self): return "%s number=%f" % ( TailSelector.__repr__(self), self.nelements) ##REF: Name was automagically refactored def _get_n_elements(self, seq): return self.__nelements ##REF: Name was automagically refactored def _set_n_elements(self, nelements): if __debug__: if nelements <= 0: raise ValueError("Number of elements less or equal to zero " "does not make sense.") if not isinstance(nelements, int): if int(nelements) != nelements: raise ValueError("nelements must be an integer. Got %s" % nelements) nelements = int(nelements) self.__nelements = nelements nelements = property(fget=lambda x:x.__nelements, fset=_set_n_elements) class FractionTailSelector(TailSelector): """Given a sequence, provide Ids for a fraction of elements """ def __init__(self, felements, **kwargs): """ Parameters ---------- felements : float (0,1.0] Fraction of elements to select/discard. Note: Even when 0.0 is specified at least one element will be selected. """ TailSelector.__init__(self, **kwargs) self._set_f_elements(felements) def __repr__(self): return "%s fraction=%f" % ( TailSelector.__repr__(self), self.__felements) ##REF: Name was automagically refactored def _get_n_elements(self, seq): num = int(floor(self.__felements * len(seq))) num = max(1, num) # remove at least 1 # no need for checks as base class will do anyway #return min(num, nselect) return num ##REF: Name was automagically refactored def _set_f_elements(self, felements): """What fraction to discard""" if felements > 1.0 or felements < 0.0: raise ValueError, \ "Fraction (%f) cannot be outside of [0.0,1.0]" \ % felements self.__felements = felements felements = property(fget=lambda x:x.__felements, fset=_set_f_elements) pymvpa2-2.6.4/mvpa2/featsel/ifs.py000066400000000000000000000152721323370031300167260ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Incremental feature search (IFS). Very similar to Recursive feature elimination (RFE), but instead of begining with all features and stripping some sequentially, start with an empty feature set and include important features successively. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.support.copy import copy from mvpa2.featsel.base import StaticFeatureSelection, IterativeFeatureSelection from mvpa2.featsel.helpers import NBackHistoryStopCrit, \ FixedNElementTailSelector, \ BestDetector from mvpa2.base.state import ConditionalAttribute if __debug__: from mvpa2.base import debug class IFS(IterativeFeatureSelection): """Incremental feature search. A scalar `Measure` is computed multiple times on variations of a certain dataset. These measures are in turn used to incrementally select important features. Starting with an empty feature set the dataset measure is first computed for each single feature. A number of features is selected based on the resulting data measure map (using an `ElementSelector`). Next the dataset measure is computed again using each feature in addition to the already selected feature set. Again the `ElementSelector` is used to select more features. For each feature selection the transfer error on some testdatset is computed. This procedure is repeated until a given `StoppingCriterion` is reached. """ def __init__(self, fmeasure, pmeasure, splitter, fselector=FixedNElementTailSelector(1, tail='upper', mode='select'), **kwargs): """Initialize incremental feature search Parameters ---------- feature_measure : Measure Computed for each candidate feature selection. The measure has to compute a scalar value. performance_measure : Measure Compute against a test dataset for each incremental feature set. splitter: Splitter This splitter instance has to generate at least two dataset splits when called with the input dataset. The first split serves as the training dataset and the second as the evaluation dataset. """ # bases init first IterativeFeatureSelection.__init__(self, fmeasure, pmeasure, splitter, fselector, **kwargs) def _train(self, ds): # local binding fmeasure = self._fmeasure fselector = self._fselector scriterion = self._stopping_criterion bestdetector = self._bestdetector # init # Computed error for each tested features set. errors = [] # feature candidate are all features in the pattern object candidates = range(ds.nfeatures) # initially empty list of selected features selected = [] # results in here please results = None # as long as there are candidates left # the loop will most likely get broken earlier if the stopping # criterion is reached while len(candidates): # measures for all candidates measures = [] # for all possible candidates for i, candidate in enumerate(candidates): if __debug__: debug('IFSC', "Tested %i" % i, cr=True) # take the new candidate and all already selected features # select a new temporay feature subset from the dataset # slice the full dataset, because for the initial iteration # steps this will be much mure effecient than splitting the # full ds into train and test at first fslm = StaticFeatureSelection(selected + [candidate]) fslm.train(ds) candidate_ds = fslm(ds) # activate the dataset splitter dsgen = self._splitter.generate(candidate_ds) # and derived the dataset part that is used for computing the selection # criterion trainds = dsgen.next() # compute data measure on the training part of this feature set measures.append(fmeasure(trainds)) # relies on ds.item() to work properly measures = [np.asscalar(m) for m in measures] # Select promissing feature candidates (staging) # IDs are only applicable to the current set of feature candidates tmp_staging_ids = fselector(measures) # translate into real candidate ids staging_ids = [candidates[i] for i in tmp_staging_ids] # mark them as selected and remove from candidates selected += staging_ids for i in staging_ids: candidates.remove(i) # actually run the performance measure to estimate "quality" of # selection fslm = StaticFeatureSelection(selected) fslm.train(ds) selectedds = fslm(ds) # split into train and test part trainds, testds = self._get_traintest_ds(selectedds) # evaluate and store error = self._evaluate_pmeasure(trainds, testds) errors.append(np.asscalar(error)) # intermediate cleanup, so the datasets do not hand around while # the next candidate evaluation is computed del trainds del testds # Check if it is time to stop and if we got # the best result stop = scriterion(errors) isthebest = bestdetector(errors) if __debug__: debug('IFSC', "nselected %i; error: %.4f " \ "best/stop=%d/%d\n" \ % (len(selected), errors[-1], isthebest, stop), cr=True, lf=True) if isthebest: # announce desired features to the underlying slice mapper # do copy to survive later selections self._safe_assign_slicearg(copy(selected)) # leave the loop when the criterion is reached if stop: break # charge state self.ca.errors = errors pymvpa2-2.6.4/mvpa2/featsel/rfe.py000066400000000000000000000574021323370031300167220ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Recursive feature elimination.""" __docformat__ = 'restructuredtext' from mvpa2.base import externals from mvpa2.base.dochelpers import _repr_attrs from mvpa2.support.copy import copy from mvpa2.clfs.transerror import ClassifierError from mvpa2.measures.base import Sensitivity from mvpa2.featsel.base import IterativeFeatureSelection from mvpa2.featsel.helpers import BestDetector, \ NBackHistoryStopCrit, \ FractionTailSelector # For RFELearner from mvpa2.clfs.meta import ProxyClassifier, FeatureSelectionClassifier from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.measures.base import ProxyMeasure from mvpa2.generators.splitters import Splitter from mvpa2.mappers.fx import maxofabs_sample, BinaryFxNode from mvpa2.base.dochelpers import _str from mvpa2.generators.base import Repeater from mvpa2.support.due import due, Doi, BibTeX import numpy as np from mvpa2.base.state import ConditionalAttribute if externals.exists('joblib'): import joblib as jl if __debug__: from mvpa2.base import debug # TODO: Abs value of sensitivity should be able to rule RFE # Often it is what abs value of the sensitivity is what matters. # So we should either provide a simple decorator around arbitrary # FeatureSelector to convert sensitivities to abs values before calling # actual selector, or a decorator around SensitivityEstimators class RFE(IterativeFeatureSelection): """Recursive feature elimination. A `FeaturewiseMeasure` is used to compute sensitivity maps given a certain dataset. These sensitivity maps are in turn used to discard unimportant features. For each feature selection the transfer error on some testdatset is computed. This procedure is repeated until a given `StoppingCriterion` is reached. References ---------- Such strategy after Guyon, I., Weston, J., Barnhill, S., & Vapnik, V. (2002). Gene selection for cancer classification using support vector machines. Mach. Learn., 46(1-3), 389--422. was applied to SVM-based analysis of fMRI data in Hanson, S. J. & Halchenko, Y. O. (2008). Brain reading using full brain support vector machines for object recognition: there is no "face identification area". Neural Computation, 20, 486--503. Examples -------- There are multiple possible ways to design an RFE. Here is one example which would rely on a SplitClassifier to extract sensitivities and provide estimate of performance (error) >>> # Lazy import >>> from mvpa2.suite import * >>> rfesvm_split = SplitClassifier(LinearCSVMC(), OddEvenPartitioner()) >>> # design an RFE feature selection to be used with a classifier >>> rfe = RFE(rfesvm_split.get_sensitivity_analyzer( ... # take sensitivities per each split, L2 norm, mean, abs them ... postproc=ChainMapper([ FxMapper('features', l2_normed), ... FxMapper('samples', np.mean), ... FxMapper('samples', np.abs)])), ... # use the error stored in the confusion matrix of split classifier ... ConfusionBasedError(rfesvm_split, confusion_state='stats'), ... # we just extract error from confusion, so no need to split dataset ... Repeater(2), ... # select 50% of the best on each step ... fselector=FractionTailSelector( ... 0.50, ... mode='select', tail='upper'), ... # and stop whenever error didn't improve for up to 10 steps ... stopping_criterion=NBackHistoryStopCrit(BestDetector(), 10), ... # we just extract it from existing confusion ... train_pmeasure=False, ... # but we do want to update sensitivities on each step ... update_sensitivity=True) >>> clf = FeatureSelectionClassifier( ... LinearCSVMC(), ... # on features selected via RFE ... rfe, ... # custom description ... descr='LinSVM+RFE(splits_avg)' ) Note: If you rely on cross-validation for the StoppingCriterion, make sure that you have at least 3 chunks so that SplitClassifier could have at least 2 chunks to split. Otherwise it can not split more (one chunk could not be splitted). """ history = ConditionalAttribute( doc="Last step # when each feature was still present") sensitivities = ConditionalAttribute(enabled=False, doc="History of sensitivities (might consume too much memory") def __init__(self, fmeasure, pmeasure, splitter, fselector=FractionTailSelector(0.05), update_sensitivity=True, nfeatures_min=0, **kwargs): # XXX Allow for multiple stopping criterions, e.g. error not decreasing # anymore OR number of features less than threshold """Initialize recursive feature elimination Parameters ---------- fmeasure : FeaturewiseMeasure pmeasure : Measure used to compute the transfer error of a classifier based on a certain feature set on the test dataset. NOTE: If sensitivity analyzer is based on the same classifier as transfer_error is using, make sure you initialize transfer_error with train=False, otherwise it would train classifier twice without any necessity. splitter: Splitter This splitter instance has to generate at least two dataset splits when called with the input dataset. The first split serves as the training dataset and the second as the evaluation dataset. fselector : Functor Given a sensitivity map it has to return the ids of those features that should be kept. update_sensitivity : bool If False the sensitivity map is only computed once and reused for each iteration. Otherwise the sensitivities are recomputed at each selection step. nfeatures_min : int Number of features for RFE to stop if reached. """ # bases init first IterativeFeatureSelection.__init__(self, fmeasure, pmeasure, splitter, fselector, **kwargs) self.__update_sensitivity = update_sensitivity """Flag whether sensitivity map is recomputed for each step.""" self._nfeatures_min = nfeatures_min def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(RFE, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['update_sensitivity'], default=True)) @due.dcite( BibTeX(""" @Article{ GWB+02, author = "I. Guyon and J. Weston and S. Barnhill and V. Vapnik", title = "Gene Selection for Cancer Classification using Support Vector Machines", volume = "46", year = "2002", pages = "389--422", publisher = "Kluwer", address = "Hingham, MA, USA", journal = "Machine Learning" }"""), description="Recursive feature elimination procedure", tags=["implementation"]) @due.dcite( Doi("10.1162/neco.2007.09-06-340"), description="Full-brain fMRI decoding using SVM RFE", tags=["use"]) def _train(self, ds): """Proceed and select the features recursively eliminating less important ones. Parameters ---------- ds : Dataset used to compute sensitivity maps and train a classifier to determine the transfer error """ # get the initial split into train and test dataset, testdataset = self._get_traintest_ds(ds) if __debug__: debug('RFEC', "Initiating RFE with training on %s and testing using %s", (dataset, testdataset)) errors = [] """Computed error for each tested features set.""" ca = self.ca ca.nfeatures = [] """Number of features at each step. Since it is not used by the algorithm it is stored directly in the conditional attribute""" ca.history = np.arange(dataset.nfeatures) """Store the last step # when the feature was still present """ ca.sensitivities = [] stop = False """Flag when RFE should be stopped.""" results = None """Will hold the best feature set ever.""" wdataset = dataset """Operate on working dataset initially identical.""" wtestdataset = testdataset """Same feature selection has to be performs on test dataset as well. This will hold the current testdataset.""" step = 0 """Counter how many selection step where done.""" orig_feature_ids = np.arange(dataset.nfeatures) """List of feature Ids as per original dataset remaining at any given step""" sensitivity = None """Contains the latest sensitivity map.""" result_selected_ids = orig_feature_ids """Resultant ids of selected features. Since the best is not necessarily is the last - we better keep this one around. By default -- all features are there""" selected_ids = result_selected_ids isthebest = True """By default (e.g. no errors even estimated) every step is the best one """ while wdataset.nfeatures > 0: if __debug__: debug('RFEC', "Step %d: nfeatures=%d" % (step, wdataset.nfeatures)) # mark the features which are present at this step # if it brings anyb mentionable computational burden in the future, # only mark on removed features at each step ca.history[orig_feature_ids] = step # Compute sensitivity map if self.__update_sensitivity or sensitivity is None: sensitivity = self._fmeasure(wdataset) if len(sensitivity) > 1: raise ValueError( "RFE cannot handle multiple sensitivities at once. " "'%s' returned %i sensitivities." % (self._fmeasure.__class__.__name__, len(sensitivity))) if ca.is_enabled("sensitivities"): ca.sensitivities.append(sensitivity) if self._pmeasure: # get error for current feature set (handles optional retraining) error = np.asscalar(self._evaluate_pmeasure(wdataset, wtestdataset)) # Record the error errors.append(error) # Check if it is time to stop and if we got # the best result if self._stopping_criterion is not None: stop = self._stopping_criterion(errors) if self._bestdetector is not None: isthebest = self._bestdetector(errors) else: error = None nfeatures = wdataset.nfeatures if ca.is_enabled("nfeatures"): ca.nfeatures.append(wdataset.nfeatures) # store result if isthebest: result_selected_ids = orig_feature_ids if __debug__: debug('RFEC', "Step %d: nfeatures=%d error=%s best/stop=%d/%d " % (step, nfeatures, error, isthebest, stop)) # stop if it is time to finish if nfeatures == 1 or nfeatures <= self.nfeatures_min or stop: break # Select features to preserve selected_ids = self._fselector(sensitivity) if __debug__: debug('RFEC_', "Sensitivity: %s, nfeatures_selected=%d, selected_ids: %s" % (sensitivity, len(selected_ids), selected_ids)) # Create a dataset only with selected features wdataset = wdataset[:, selected_ids] # select corresponding sensitivity values if they are not # recomputed if not self.__update_sensitivity: if len(sensitivity.shape) >= 2: assert(sensitivity.shape[0] == 1) # there must be only 1 sample sensitivity = sensitivity[:, selected_ids] else: sensitivity = sensitivity[selected_ids] # need to update the test dataset as well # XXX why should it ever become None? # yoh: because we can have __transfer_error computed # using wdataset. See xia-generalization estimate # in lightsvm. Or for god's sake leave-one-out # on a wdataset # TODO: document these cases in this class if testdataset is not None: wtestdataset = wtestdataset[:, selected_ids] step += 1 # WARNING: THIS MUST BE THE LAST THING TO DO ON selected_ids selected_ids.sort() if self.ca.is_enabled("history") \ or self.ca.is_enabled('selected_ids'): orig_feature_ids = orig_feature_ids[selected_ids] # we already have the initial sensitivities, so even for a shared # classifier we can cleanup here if self._pmeasure: self._pmeasure.untrain() # charge conditional attributes self.ca.errors = errors self.ca.selected_ids = result_selected_ids if __debug__: debug('RFEC', "Selected %d features: %s", (len(result_selected_ids), result_selected_ids)) # announce desired features to the underlying slice mapper # do copy to survive later selections self._safe_assign_slicearg(copy(result_selected_ids)) # call super to set _Xshape etc super(RFE, self)._train(dataset) def _untrain(self): super(RFE, self)._untrain() if self._pmeasure: self._pmeasure.untrain() if self._fmeasure: self._fmeasure.untrain() def _get_nfeatures_min(self): return self._nfeatures_min def _set_nfeatures_min(self, v): if self.is_trained: self.untrain() if v < 0: raise ValueError("nfeatures_min must not be negative. Got %s" % v) self._nfeatures_min = v nfeatures_min = property(fget=_get_nfeatures_min, fset=_set_nfeatures_min) update_sensitivity = property(fget=lambda self: self.__update_sensitivity) def _process_partition(rfe, partition): """Helper function to be used to parallelize SplitRFE """ rfe.train(partition) return rfe.ca.errors, rfe.ca.nfeatures class SplitRFE(RFE): """RFE with the nested cross-validation to estimate optimal number of features. Given a learner (classifier) with a sensitivity analyzer and a partitioner, during training SplitRFE first performs a cross-validation with RFE to later estimate optimal number of features which should survive in RFE. Optimal number is chosen as the mid-point among all minimums of the average errors across splits. After deducing optimal number of features, SplitRFE applies regular RFE again on the full training dataset stopping at the estimated optimal number of features. Examples -------- Resting on an example giving for the :class:`~mvpa2.featself.rfe.RFE` here is an implementation using SplitRFE helper: >>> # Lazy import >>> from mvpa2.suite import * >>> # design an RFE feature selection to be used with a classifier >>> rfe = SplitRFE( ... LinearCSVMC(), ... OddEvenPartitioner(), ... # take sensitivities per each split, L2 norm, abs, mean them ... fmeasure_postproc=ChainMapper([ ... FxMapper('features', l2_normed), ... FxMapper('samples', np.abs), ... FxMapper('samples', np.mean)]), ... # select 50% of the best on each step ... fselector=FractionTailSelector( ... 0.50, ... mode='select', tail='upper'), ... # but we do want to update sensitivities on each step ... update_sensitivity=True) >>> clf = FeatureSelectionClassifier( ... LinearCSVMC(), ... # on features selected via RFE ... rfe, ... # custom description ... descr='LinSVM+RFE(splits_avg)' ) But not only classifiers and their sensitivites could be used for RFE. It could be used even with univariate measures (e.g. OnewayAnova). """ # exclude those since we are really an adapter here __init__doc__exclude__ = RFE.__init__doc__exclude__ + \ ['fmeasure', 'pmeasure', 'splitter', 'train_pmeasure', 'stopping_criterion', 'bestdetector', # now it is a diff strategy 'nfeatures_min' # will get 'trained' ] nested_errors = ConditionalAttribute( doc="History of errors per each nested split") nested_nfeatures = ConditionalAttribute( doc="History of # of features left per each nested split") def __init__(self, lrn, partitioner, fselector, errorfx=mean_mismatch_error, fmeasure_postproc=None, fmeasure=None, nproc=1, # callback? **kwargs): """ Parameters ---------- lrn : Learner Learner with a sensitivity analyzer which will be used both for the sensitivity analysis and transfer error estimation partitioner : Partitioner Used to generate cross-validation partitions for cross-validation to deduce optimal number of features to maintain fselector : Functor Given a sensitivity map it has to return the ids of those features that should be kept. errorfx : func, optional Functor to use for estimation of cross-validation error fmeasure_postproc : func, optional Function to provide to the sensitivity analyzer as postproc. If no fmeasure is provided and classifier sensitivity is used, then maxofabs_sample() would be used for this postproc, unless other value is provided fmeasure : Function, optional Featurewise measure. If None was provided, lrn's sensitivity analyzer will be used. """ # Initialize itself preparing for the 2nd invocation # with determined number of nfeatures_min # TODO: move this into _train since better not to assign anything here # to avoid possible problems with copies needing to deal with the same # lrn... but then we might like again to reconsider delegation instead # of subclassing here.... if fmeasure is None: if __debug__: debug('RFE', 'fmeasure was not provided, will be using the ' 'sensitivity analyzer for %s' % lrn) fmeasure = lrn.get_sensitivity_analyzer( postproc=fmeasure_postproc if fmeasure_postproc is not None else maxofabs_sample()) train_pmeasure = False else: assert fmeasure_postproc is None, "There should be no explicit " \ "fmeasure_postproc when fmeasure is specified" # if user provided explicit value -- use it! otherwise, we do want # to train an arbitrary fmeasure train_pmeasure = kwargs.pop('train_pmeasure', True) RFE.__init__(self, fmeasure, None, Repeater(2), fselector=fselector, bestdetector=None, train_pmeasure=train_pmeasure, stopping_criterion=None, **kwargs) self._lrn = lrn # should not be modified, thus _ self.partitioner = partitioner self.errorfx = errorfx self.fmeasure_postproc = fmeasure_postproc self.nproc = nproc def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(SplitRFE, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['lrn', 'partitioner']) + _repr_attrs(self, ['errorfx'], default=mean_mismatch_error) + _repr_attrs(self, ['fmeasure_postproc'], default=None) + _repr_attrs(self, ['nproc'], default=1) ) @property def lrn(self): return self._lrn def _train(self, dataset): pmeasure = ProxyMeasure(self.lrn, postproc=BinaryFxNode(self.errorfx, self.lrn.space), skip_train=not self.train_pmeasure # do not train since fmeasure will ) # First we need to replicate our RFE construct but this time # with pmeasure for the classifier rfe = RFE(self.fmeasure, pmeasure, Splitter('partitions'), fselector=self.fselector, bestdetector=None, train_pmeasure=self.train_pmeasure, stopping_criterion=None, # full "track" update_sensitivity=self.update_sensitivity, enable_ca=['errors', 'nfeatures']) errors, nfeatures = [], [] if __debug__: debug("RFEC", "Stage 1: initial nested CV/RFE for %s", (dataset,)) if self.nproc != 1 and externals.exists('joblib'): nested_results = jl.Parallel(self.nproc)( jl.delayed(_process_partition)(rfe, partition) for partition in self.partitioner.generate(dataset)) else: nested_results = [ _process_partition(rfe, partition) for partition in self.partitioner.generate(dataset)] # unzip errors = [x[0] for x in nested_results] nfeatures = [x[1] for x in nested_results] self.ca.nested_nfeatures = nfeatures self.ca.nested_errors = errors # mean errors across splits and find optimal number errors_mean = np.mean(errors, axis=0) nfeatures_mean = np.mean(nfeatures, axis=0) # we will take the "mean location" of the min to stay # within the most 'stable' choice mins_idx = np.where(errors_mean==np.min(errors_mean))[0] min_idx = mins_idx[int(len(mins_idx)/2)] min_error = errors_mean[min_idx] assert(min_error == np.min(errors_mean)) nfeatures_min = nfeatures_mean[min_idx] if __debug__: debug("RFEC", "Choosing among %d choices to have %d features with " "mean error=%.2g (initial mean error %.2g)", (len(mins_idx), nfeatures_min, min_error, errors_mean[0])) self.nfeatures_min = nfeatures_min if __debug__: debug("RFEC", "Stage 2: running RFE on full training dataset to " "obtain the best %d features" % nfeatures_min) super(SplitRFE, self)._train(dataset) def _untrain(self): super(SplitRFE, self)._untrain() self.lrn.untrain() self.nfeatures_min = 0 # reset the knowledge pymvpa2-2.6.4/mvpa2/generators/000077500000000000000000000000001323370031300163125ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/generators/__init__.py000066400000000000000000000011531323370031300204230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Generate multiple output datasets form a single input""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.generators') if __debug__: debug('INIT', 'mvpa2.generators end') pymvpa2-2.6.4/mvpa2/generators/base.py000066400000000000000000000210351323370031300175770ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Repeat and filter as sequence of dataset""" __docformat__ = 'restructuredtext' import random import numpy as np from mvpa2.base.node import Node from mvpa2.base.collections import \ SampleAttributesCollection, FeatureAttributesCollection from mvpa2.base.dochelpers import _str, _repr if __debug__: from mvpa2.base import debug class Repeater(Node): """Node that yields the same dataset for a certain number of repetitions. Each yielded dataset has a dataset attribute that identifies the iteration (see the ``space`` setting). """ def __init__(self, count, space='repetitons', **kwargs): """ Parameters ---------- count : int Positive integer that set the numbed of repetitions. space : str The name of the dataset attribute that will hold the actual repetiton in the yielded datasets. """ Node.__init__(self, space=space, **kwargs) self.count = count def generate(self, ds): """Generate the desired number of repetitions.""" space = self.get_space() for i in xrange(self.count): out = ds.copy(deep=False) out.a[space] = i yield out def __str__(self): return _str(self, str(self.count)) class Sifter(Node): """Exclude (do not generate) provided dataset on the values of the attributes. Examples -------- Typical usecase: it is necessary to generate all possible combinations of two chunks while being interested only in the combinations where both targets are present. >>> from mvpa2.datasets import Dataset >>> from mvpa2.generators.partition import NFoldPartitioner >>> from mvpa2.base.node import ChainNode >>> ds = Dataset(samples=np.arange(8).reshape((4,2)), ... sa={'chunks': [ 0 , 1 , 2 , 3 ], ... 'targets': ['c', 'c', 'p', 'p']}) Plain 'NFoldPartitioner(cvtype=2)' would provide also partitions with only two 'c's or 'p's present, which we do not want to include in our cross-validation since it would break balancing between training and testing sets. >>> par = ChainNode([NFoldPartitioner(cvtype=2, attr='chunks'), ... Sifter([('partitions', 2), ... ('targets', ['c', 'p'])]) ... ], space='partitions') We have to provide appropriate 'space' parameter for the 'ChainNode' so possible future splitting using 'TransferMeasure' could operate along that attribute. Here we just matched default space of NFoldPartitioner -- 'partitions'. >>> print par -> Additionally, e.g. for cases with cvtype > 2, if balancing is needed to be guaranteed (and other generated partitions discarded), specification could carry a dict with 'uvalues' and 'balanced' keys, e.g.: >>> par = ChainNode([NFoldPartitioner(cvtype=2, attr='chunks'), ... Sifter([('partitions', 2), ... ('targets', dict(uvalues=['c', 'p'], ... balanced=True))]) ... ], space='partitions') N.B. In this example it is equivalent to the previous definition since things are guaranteed to be balanced with cvtype=2 and 2 unique values requested. >>> for ds_ in par.generate(ds): ... testing = ds[ds_.sa.partitions == 2] ... print list(zip(testing.sa.chunks, testing.sa.targets)) [(0, 'c'), (2, 'p')] [(0, 'c'), (3, 'p')] [(1, 'c'), (2, 'p')] [(1, 'c'), (3, 'p')] """ def __init__(self, includes, *args, **kwargs): """ Parameters ---------- includes : list List of tuples rules (attribute, uvalues) where all listed 'uvalues' must be present in the dataset. Matching samples or features get selected to proceed to the next rule in the list. If at some point not all listed values of the attribute are present, dataset does not pass through the 'Sifter'. uvalues might also be a `dict`, see example above. """ Node.__init__(self, *args, **kwargs) self._includes = includes def generate(self, ds): """Validate obtained dataset and yield if matches """ # we start by considering all samples sa_mask = np.ones(ds.nsamples, dtype=bool) fa_mask = np.ones(ds.nfeatures, dtype=bool) # Check the dataset against the rules for attrname, crit in self._includes: attr, col = ds.get_attr(attrname) # figure out which mask and adjust accordingly if isinstance(col, SampleAttributesCollection): mask = sa_mask elif isinstance(col, FeatureAttributesCollection): mask = fa_mask else: raise ValueError( "%s cannot filter based on attribute %s=%s -- " "only collections from .sa or .fa are supported." % (self, attrname, attr)) uvalues_ = np.unique(attr[mask]) if not isinstance(crit, dict): # so that just a list of unique values to be present specified crit = {'uvalues': crit} # now it is specified as dictionary with more restrictions # XXX sorted/reverse here is just to guarantee that # "uvalues" goes before "balanced". If we get more # cases -- put proper order here for crit_k in sorted(crit.keys(), reverse=True): crit_v = crit[crit_k] if crit_k.lower() == 'uvalues': # Check if all of those values are present # just to assure consistency in order and type uvalues = np.unique(np.atleast_1d(crit_v)) # do matching and reset those not matching mask[np.array([not a in uvalues for a in attr.value])] = False # exit if resultant attributes do no match uvalues_selected = np.unique(attr[mask]) # use set() so we could compare results of different lengths as well # and not worry about sorting etc if not (set(uvalues_selected) == set(uvalues) and len(uvalues_selected)): if __debug__ and 'SPL' in debug.active: debug('SPL', 'Skipping dataset %s because selection using %s ' 'attribute resulted in the set of values %s while ' 'needing %s' % (ds, attrname, uvalues_selected, uvalues)) return elif crit_k.lower() == 'balanced': # guarantee that in the given category # TODO: check once again if order of evaluation of # these restrictions matters values_selected = attr[mask] counts = dict((k, 0) for k in np.unique(values_selected)) for v in values_selected: counts[v] += 1 # bool() to guarantee booleans same_counts = bool(len(np.unique(counts.values())) == 1) crit_v = bool(crit_v) if crit_v != same_counts: if __debug__ and 'SPL' in debug.active: debug('SPL', 'Skipping dataset %s because selection using %s ' 'attribute resulted same_counts=%s while balanced=%s' % (ds, attrname, same_counts, crit_v)) return else: raise ValueError("Unknown key %s in definition of %s" % (crit_k, self)) # print attrname, attr.value, uvalues, uvalues_selected, mask yield ds def __str__(self): return _str(self, ', '.join("%s=%s" % x for x in self._includes)) pymvpa2-2.6.4/mvpa2/generators/partition.py000066400000000000000000000643361323370031300207110ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dataset partitioning strategies""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import _repr_attrs from mvpa2.support.utils import deprecated from mvpa2.base.node import Node from mvpa2.datasets.miscfx import coarsen_chunks import mvpa2.misc.support as support from itertools import product as iterprod from mvpa2.misc.support import xrandom_iterprod import warnings if __debug__: from mvpa2.base import debug class Partitioner(Node): """Generator node to partition a dataset. Partitioning is done by adding a sample attribute that assigns samples to an arbitrary number of partitions. Subclasses offer a variety of partitioning technique that are useful in e.g. cross-validation procedures. it is important to note that other than adding a new sample attribute input datasets are not modified. In particular, there is no splitting of datasets into multiple pieces. If this is desired, a Partitioner can be chained to a `Splitter` node to achieve this. """ _STRATEGIES = ('first', 'random', 'equidistant') def __init__(self, count=None, selection_strategy='equidistant', attr='chunks', space='partitions', **kwargs): """ Parameters ---------- count : None or int Desired number of splits to be output. It is limited by the number of splits possible for a given splitter (e.g. `OddEvenSplitter` can have only up to 2 splits). If None, all splits are output (default). selection_strategy : str If `count` is not None, possible strategies are possible: 'first': First `count` splits are chosen; 'random': Random (without replacement) `count` splits are chosen; 'equidistant': Splits which are equidistant from each other. attr : str Sample attribute used to determine splits. space : str Name of the to be created sample attribute defining the partitions. In addition, a dataset attribute named '``space``\_set' will be added to each output dataset, indicating the number of the partition set it corresponds to. """ Node.__init__(self, space=space, **kwargs) # pylint happyness block self.__attr = attr # we don't check it, thus no reason to make it private. # someone might find it useful to change post creation # TODO utilize such (or similar) policy through out the code self.count = count self._set_selection_strategy(selection_strategy) def __repr__(self, prefixes=None): # Here we are jumping over Node's __repr__ since # it would enforce placing space if prefixes is None: prefixes = [] return super(Node, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['count']) + _repr_attrs(self, ['selection_strategy'], default='equidistant') + _repr_attrs(self, ['attr'], default='chunks') + _repr_attrs(self, ['space'], default='partitions') ) def _set_selection_strategy(self, strategy): """Set strategy to select splits out from available """ strategy = strategy.lower() if not strategy in self._STRATEGIES: raise ValueError( "selection_strategy is not known. Known are %s" % str(self._STRATEGIES) ) self.__selection_strategy = strategy def _get_partition_specs(self, uniqueattr): """Return list with samples of 2nd dataset in a split. Each subclass has to implement this method. It gets a sequence with the unique attribute ids of a dataset and has to return a list of lists containing sample ids to split into the second dataset. """ raise NotImplementedError def generate(self, ds): # for each split cfgs = self.get_partition_specs(ds) n_cfgs = len(cfgs) for iparts, parts in enumerate(cfgs): # give attribute array defining the current partition set pattr = self.get_partitions_attr(ds, parts) # shallow copy of the dataset pds = ds.copy(deep=False) pds.sa[self.get_space()] = pattr pds.a[self.get_space() + "_set"] = iparts pds.a['lastpartitionset'] = iparts == (n_cfgs - 1) yield pds def get_partitions_attr(self, ds, specs): """Create a partition attribute array for a particular partition spec. Parameters ---------- ds : Dataset This is this source dataset. specs : sequence of sequences Contains ids of a sample attribute that shall go into each partition. Returns ------- array(ints) Each partition is represented by a unique integer value. """ # collect the sample ids for each resulting dataset filters = [] none_specs = 0 cum_filter = None splitattr_data = ds.sa[self.__attr].value # for each partition in this set for spec in specs: if spec is None: filters.append(None) none_specs += 1 else: filter_ = np.array([ i in spec \ for i in splitattr_data], dtype='bool') filters.append(filter_) if cum_filter is None: cum_filter = filter_ else: cum_filter = np.logical_and(cum_filter, filter_) # need to turn possible Nones into proper ids sequences if none_specs > 1: raise ValueError("'%s' cannot handle more than one `None` " \ "partition spec." % self.__class__.__name__) # go with ints for simplicity. By default the attr is zeros, and the # first configured partition starts with one. part_attr = np.zeros(len(ds), dtype='int') for i, filter_ in enumerate(filters): # turn the one 'all the rest' filter into a slicing arg if filter_ is None: filter_ = np.logical_not(cum_filter) # now filter is guaranteed to be a slicing argument that can be used # to assign the attribute values part_attr[filter_] = i + 1 return part_attr def get_partition_specs(self, ds): """Returns the specs for all to be generated partition sets. Returns ------- list(lists) """ # list (#splits) of lists (#partitions) cfgs = self._get_partition_specs(ds.sa[self.__attr].unique) # Select just some splits if desired count, n_cfgs = self.count, len(cfgs) # further makes sense only if count < n_cfgs, # otherwise all strategies are equivalent if count is not None and count < n_cfgs: if count < 1: # we can only wish a good luck return [] indexes = self.get_selected_indexes(n_cfgs) if isinstance(indexes, slice): cfgs = cfgs[indexes] else: cfgs = [cfgs[i] for i in indexes] return cfgs def get_selected_indexes(self, n_cfgs): """A naive selection of indexes according to strategy and count Parameters ---------- n_cfgs: int Total number of configurations to select from """ strategy = self.selection_strategy count = self.count if strategy == 'first': indexes = slice(0, count) elif strategy in ['equidistant', 'random']: if strategy == 'equidistant': # figure out what step is needed to # accommodate the `count` number step = float(n_cfgs) / count assert (step >= 1.0) indexes = [int(round(step * i)) for i in xrange(count)] elif strategy == 'random': indexes = np.random.permutation(range(n_cfgs))[:count] # doesn't matter much but lets keep them in the original # order at least indexes.sort() else: # who said that I am paranoid? raise RuntimeError("Really should not happen") if __debug__: debug("SPL", "For %s selection strategy selected %s " "partition specs from %d total", (strategy, indexes, n_cfgs)) return indexes @property @deprecated("to be removed in PyMVPA 2.1; use .attr instead") def splitattr(self): return self.attr selection_strategy = property( fget=lambda self: self.__selection_strategy, fset=_set_selection_strategy ) attr = property(fget=lambda self: self.__attr) class OddEvenPartitioner(Partitioner): """Create odd and even partitions based on a sample attribute. The partitioner yields two datasets. In the first set all odd chunks are labeled '1' and all even runs are labeled '2'. In the second set the assignment is reversed (odd: '2', even: '1'). """ def __init__(self, usevalues=False, **kwargs): """ Parameters ---------- usevalues : bool If True the values of the attribute used for partitioning will be used to determine odd and even samples. If False odd and even chunks are defined by the order of attribute values, i.e. first unique attribute is odd, second is even, despite the corresponding values might indicate the opposite (e.g. in case of [2,3]. """ Partitioner.__init__(self, **(kwargs)) self.__usevalues = usevalues def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(OddEvenPartitioner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['usevalues'], default=False)) def _get_partition_specs(self, uniqueattrs): """ Returns ------- list of tuples (None, list of int) 2 items: odd samples into 1st split """ if self.__usevalues: return [(None, uniqueattrs[(uniqueattrs % 2) == True]), (None, uniqueattrs[(uniqueattrs % 2) == False])] else: return [(None, uniqueattrs[np.arange(len(uniqueattrs)) %2 == True]), (None, uniqueattrs[np.arange(len(uniqueattrs)) %2 == False])] usevalues = property(fget=lambda self: self.__usevalues) class HalfPartitioner(Partitioner): """Partition a dataset into two halves of the sample attribute. The partitioner yields two datasets. In the first set second half of chunks are labeled '1' and the first half labeled '2'. In the second set the assignment is reversed (1st half: '1', 2nd half: '2'). """ def _get_partition_specs(self, uniqueattrs): """ Returns ------- list of tuples (None, list of int) 2 items: first half of samples into 1st split """ return [(None, uniqueattrs[:len(uniqueattrs)/2]), (None, uniqueattrs[len(uniqueattrs)/2:])] class NGroupPartitioner(Partitioner): """Partition a dataset into N-groups of the sample attribute. For example, NGroupPartitioner(2) is the same as the HalfPartitioner and yields exactly the same partitions and labeling patterns. """ def __init__(self, ngroups=4, **kwargs): """ Parameters ---------- ngroups : int Number of groups to split the attribute into. """ Partitioner.__init__(self, **(kwargs)) self.__ngroups = ngroups def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(NGroupPartitioner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['ngroups'], default=4)) def _get_partition_specs(self, uniqueattrs): """ Returns ------- list of tuples (None, list of int) Indices for splitting """ # make sure there are more of attributes than desired groups if len(uniqueattrs) < self.__ngroups: raise ValueError("Number of groups (%d) " % (self.__ngroups) + \ "must be less than " + \ "or equal to the number of unique attributes (%d)" % \ (len(uniqueattrs))) # use coarsen_chunks to get the split indices split_ind = coarsen_chunks(uniqueattrs, nchunks=self.__ngroups) split_ind = np.asarray(split_ind) # loop and create splits split_list = [(None, uniqueattrs[split_ind==i]) for i in range(self.__ngroups)] return split_list ngroups = property(fget=lambda self: self.__ngroups) class CustomPartitioner(Partitioner): """Partition a dataset using an arbitrary custom rule. The partitioner is configured by passing a custom rule (``splitrule``) to its constructor. Such a rule is basically a sequence of partition definitions. Every single element in this sequence results in exactly one partition set. Each element is another sequence of attribute values whose corresponding samples shall go into a particular partition. Examples -------- Generate two sets. In the first set the *second* partition contains all samples with sample attributes corresponding to either 0, 1 or 2. The *first* partition of the first set contains all samples which are not part of the second partition. The second set yields three partitions. The first with all samples corresponding to sample attributes 1 and 2, the second contains only samples with attribute 3 and the last contains the samples with attribute 5 and 6. >>> ptr = CustomPartitioner([(None, [0, 1, 2]), ([1,2], [3], [5, 6])]) The numeric labels of all partitions correspond to their position in the ``splitrule`` of a particular set. Note that the actual labels start with '1' as all unselected elements are labeled '0'. """ def __init__(self, splitrule, **kwargs): """ Parameters ---------- splitrule : list of tuple Custom partition set specs. """ Partitioner.__init__(self, **(kwargs)) self.splitrule = splitrule def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CustomPartitioner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['splitrule'])) def _get_partition_specs(self, uniqueattrs): """ Returns ------- whatever was provided in splitrule argument """ return self.splitrule class NFoldPartitioner(Partitioner): """Generic N-fold data partitioner. Given a dataset with N chunks, with ``cvtype`` = 1 (which is default), it would generate N partition sets, where each chunk is sequentially taken out (with replacement) to form a second partition, while all other samples together form the first partition. Example, if there are 4 chunks, partition sets for ``cvtype`` = 1 are:: [[1, 2, 3], [0]] [[0, 2, 3], [1]] [[0, 1, 3], [2]] [[0, 1, 2], [3]] If ``cvtype``>1, then all possible combinations of ``cvtype`` number of chunks are taken out, so for ``cvtype`` = 2 in previous example yields:: [[2, 3], [0, 1]] [[1, 3], [0, 2]] [[1, 2], [0, 3]] [[0, 3], [1, 2]] [[0, 2], [1, 3]] [[0, 1], [2, 3]] Note that the "taken-out" partition is always labeled '2' while the remaining elements are labeled '1'. If ``cvtype`` is a float in the range from 0 to 1, it specifies the ratio of present unique values to be taken. If ``cvtype`` is large enough generating prohibitively large number of combinations, provide ``count`` to limit number of combinations and provide ``selection_strategy`` = 'random'. """ _DEV__doc__ = """ Might want to make it smarter and implement generate() generator? Especially for the cases which use xrandom_unique_combinations All needed machinery is there """ def __init__(self, cvtype=1, **kwargs): """ Parameters ---------- cvtype : int, float Type of leave-one-out scheme: N-(cvtype). float value (0..1) specifies ratio of samples to be taken into the combination (e.g. 0.5 for 50%) given a dataset """ Partitioner.__init__(self, **kwargs) if isinstance(cvtype, float): # some checks if not (0 < cvtype < 1): raise ValueError("Float value for cvtype must be within range " "(0, 1), excluding boundaries. Got %r." % cvtype) self.cvtype = cvtype def __repr__(self, prefixes=None): #pylint: disable-msg=W0102 if prefixes is None: prefixes = [] return super(NFoldPartitioner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['cvtype'], default=1)) def _get_partition_specs(self, uniqueattrs): if isinstance(self.cvtype, float): n = int(self.cvtype * len(uniqueattrs)) else: n = self.cvtype if self.count is None \ or self.selection_strategy != 'random' \ or self.count >= support.ncombinations(len(uniqueattrs), n): # all combinations were requested so no need for # randomization combs = support.xunique_combinations(uniqueattrs, n) else: # due to selection_strategy=random they would be also # reshuffled by super class later on but that should be ok combs = support.xrandom_unique_combinations(uniqueattrs, n, self.count) if self.count is None or self.selection_strategy != 'random': # we are doomed to return all of them return [(None, i) for i in combs] else: # It makes sense to limit number of returned combinations # right away return [(None, i) for ind, i in enumerate(combs) if ind < self.count] class FactorialPartitioner(Partitioner): """Partitioner for two-level factorial designs Given another partitioner on a dataset containing two attributes that are organized in a hierarchy, it generates balanced folds of the super-ordinate category that are also balanced according to the sub-ordinate category. Example -------- We show images of faces to the subjects. Subjects are familiar to some identities, and unfamiliar to others. Thus, we have one super-ordinate attribute "familiarity", and one sub-ordinate attribute "identity". We want to cross-validate familiarity across identities, that is, we train on the same number of familiar and unfamiliar identities, and we test on the left-over identities. >>> partitioner = FactorialPartitioner(NFoldPartitioner(attr='identity'), ... attr='familiarity') """ def __init__(self, partitioner, **kwargs): super(FactorialPartitioner, self).__init__(**kwargs) # store the subordinate partitioner self.partitioner = partitioner def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(FactorialPartitioner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['partitioner'], default=1)) def generate(self, ds): # check whether the ds is balanced unique_super = ds.sa[self.attr].unique nunique_subord = [] for usuper in unique_super: mask = ds.sa[self.attr].value == usuper nunique_subord.append(len(np.unique(ds[mask].sa[self.partitioner.attr].value))) if len(np.unique(nunique_subord)) != 1: warnings.warn( 'One or more superordinate attributes do not have the same ' 'number of subordinate attributes. This could yield to ' 'unbalanced partitions.', category=RuntimeWarning ) # make a fake ds from the first feature to use the attributes fakeds = ds[:, 0] attr_value = ds.sa[self.attr].value uattr = ds.sa[self.attr].unique uattr_masks = [attr_value == u for u in uattr] all_partitionings = [ self.partitioner.generate(fakeds[uattr_mask]) for uattr_mask in uattr_masks ] product_gen = iterprod selected_indexes = None if self.count is not None: if self.selection_strategy in ['equidistant', 'random']: all_partitionings = map(list, all_partitionings) if self.selection_strategy == 'equidistant': # we need to figure out total number and/or all partitionings # ahead of time so we could randomly or equidistantly select n_cfg = np.prod(map(len, all_partitionings)) selected_indexes = set(self.get_selected_indexes(n_cfg)) elif self.selection_strategy == 'random': # if no count is given, just return all as "random" ones ;-) def product_gen(*args): for i in xrandom_iterprod(self.count, *args): yield i ipart_selected = 0 for ipart, partitionings in enumerate(product_gen(*all_partitionings)): if self.count is not None and ipart_selected >= self.count: break if selected_indexes is not None: if ipart not in selected_indexes: continue pds = ds.copy(deep=False) target_partitioning = np.zeros(len(pds), dtype=int) for uattr_mask, partitioning in zip(uattr_masks, partitionings): target_partitioning[uattr_mask] = partitioning.sa[self.partitioner.space].value pds.sa[self.space] = target_partitioning ipart_selected += 1 yield pds class ExcludeTargetsCombinationsPartitioner(Node): """Exclude combinations for a given partition from other partitions Given a pre-generated partitioning this generates new partitions by selecting all possible combinations of k-targets from all targets and excluding samples with the selected k-targets from training partition for each combination. A simple example would be: Examples -------- For a dataset with 3 classes with one sample per class, k=2 gives 3 combination partitions with 2 samples for testing and one sample for training (since it excludes the 2 selected target samples) per partition. >>> from mvpa2.base.node import ChainNode >>> partitioner = ChainNode([NFoldPartitioner(), ... ExcludeTargetsCombinationsPartitioner( ... k=2, ... targets_attr='targets', ... space='partitions')], ... space='partitions') While cross-validating across subjects (e.g. working with hyperaligned data), to avoid significant bias due to matching trial-order effects instead of categorical boundaries, it is important to exclude from training chunks with the order matching the ones in testing. >>> partitioner = ChainNode([NFoldPartitioner(attr='subject'), ... ExcludeTargetsCombinationsPartitioner( ... k=1, ... targets_attr='chunks', ... space='partitions')], ... space='partitions') """ def __init__(self, k, targets_attr, partitions_attr='partitions', partitions_keep=2, # default for testing partition partition_assign=3, # assign one which Splitter doesn't even get to **kwargs): Node.__init__(self, **kwargs) self.k = k self.targets_attr = targets_attr self.partitions_attr = partitions_attr self.partitions_keep = partitions_keep self.partition_assign = partition_assign def __repr__(self, prefixes=None): # Here we are jumping over Node's __repr__ since # it would enforce placing space if prefixes is None: prefixes = [] return super(ExcludeTargetsCombinationsPartitioner, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['k', 'targets_attr']) + _repr_attrs(self, ['partitions_attr'], default='partitions') + _repr_attrs(self, ['partitions_keep'], default=2) + _repr_attrs(self, ['partition_assign'], default=3) ) def generate(self, ds): orig_partitioning = ds.sa[self.partitions_attr].value.copy() targets = ds.sa[self.targets_attr].value testing_part = orig_partitioning == self.partitions_keep nontesting_part = np.logical_not(testing_part) utargets = np.unique(targets[testing_part]) for combination in support.xunique_combinations(utargets, self.k): partitioning = orig_partitioning.copy() combination_matches = [ t in combination for t in targets ] combination_nonmatches = np.logical_not(combination_matches) partitioning[np.logical_and(testing_part, combination_nonmatches)] \ = self.partition_assign partitioning[np.logical_and(nontesting_part, combination_matches)] \ = self.partition_assign pds = ds.copy(deep=False) pds.sa[self.space] = partitioning yield pds pymvpa2-2.6.4/mvpa2/generators/permutation.py000066400000000000000000000271141323370031300212400ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Generator nodes to permute datasets. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning from mvpa2.base.dochelpers import _repr_attrs from mvpa2.base.node import Node from mvpa2.base.dochelpers import _str, _repr from mvpa2.misc.support import get_limit_filter from mvpa2.misc.support import get_rng from mvpa2.support.utils import deprecated from mvpa2.mappers.fx import _product if __debug__: from mvpa2.base import debug class AttributePermutator(Node): """Node to permute one a more attributes in a dataset. This node can permute arbitrary sample or feature attributes in a dataset. Moreover, it supports limiting the permutation to a subset of samples or features (see ``limit`` argument). The node can simply be called with a dataset for a one time permutation, or used as a generator to produce multiple permutations. This node only permutes dataset attributes, dataset samples are no affected. The permuted output dataset shares the samples container with the input dataset. """ def __init__(self, attr, count=1, limit=None, assure=False, strategy='simple', chunk_attr=None, rng=None, **kwargs): """ Parameters ---------- attr : str or list(str) Name of the to-be-permuted attribute. This can also be a list of attribute names, in which case the *identical* shuffling is applied to all listed attributes. count : int Number of permutations to be yielded by .generate() limit : None or str or list or dict If ``None`` all attribute values will be permuted. If a single attribute name is given, its unique values will be used to define chunks of data that are permuted individually (i.e. no attributed values will be replaced across chunks). If a list given, then combination of those attributes per each sample is used together. Finally, if a dictionary is provided, its keys define attribute names and its values (single value or sequence thereof) attribute value, where all key-value combinations across all given items define a "selection" of to-be-permuted samples or features. strategy : 'simple', 'uattrs', 'chunks' 'simple' strategy is the straightforward permutation of attributes (given the limit). In some sense it assumes independence of those samples. 'uattrs' strategy looks at unique values of attr (or their unique combinations in case of `attr` being a list), and "permutes" those unique combinations values thus breaking their assignment to the samples but preserving any dependencies between samples within the same unique combination. The 'chunks' strategy swaps attribute values of entire chunks. Naturally, this will only work if there is the same number of samples in all chunks. assure : bool If set, by-chance non-permutations will be prevented, i.e. it is checked that at least two items change their position. Since this check adds a runtime penalty it is off by default. rng : int or RandomState, optional Integer to seed a new RandomState upon each call, or instance of the numpy.random.RandomState to be reused across calls. If None, the numpy.random singleton would be used """ Node.__init__(self, **kwargs) self._pattr = attr self.count = count self._limit = limit self._assure_permute = assure self.strategy = strategy self.rng = rng self.chunk_attr = chunk_attr def _get_call_kwargs(self, ds): # determine to be permuted attribute to find the collection pattr = self._pattr if isinstance(pattr, str): pattr, collection = ds.get_attr(pattr) else: # must be sequence of attrs, take first since we only need the shape pattr, collection = ds.get_attr(pattr[0]) # _call might need to operate on the dedicated instantiated rng # e.g. if seed int is provided return { 'limit_filter': get_limit_filter(self._limit, collection), 'rng': get_rng(self.rng) } def _call(self, ds, limit_filter=None, rng=None): # local binding pattr = self._pattr assure_permute = self._assure_permute if isinstance(pattr, str): # wrap single attr name into tuple to simplify the code pattr = (pattr,) # get actual attributes in_pattrs = [ds.get_attr(pa)[0] for pa in pattr] # Method to use for permutations try: permute_fx = getattr(self, "_permute_%s" % self.strategy) permute_kwargs = {'rng': rng} except AttributeError: raise ValueError("Unknown permutation strategy %r" % self.strategy) if self.chunk_attr is not None: permute_kwargs['chunks'] = ds.sa[self.chunk_attr].value for i in xrange(10): # for the case of assure_permute # shallow copy of the dataset for output out = ds.copy(deep=False) out_pattrs = [out.get_attr(pa)[0] for pa in pattr] # replace .values with copies in out_pattrs so we do # not override original values for pa in out_pattrs: pa.value = pa.value.copy() for limit_value in np.unique(limit_filter): if limit_filter.dtype == np.bool: # simple boolean filter -> do nothing on False if not limit_value: continue # otherwise get indices of "selected ones" limit_idx = limit_filter.nonzero()[0] else: # non-boolean limiter -> determine "chunk" and permute within limit_idx = (limit_filter == limit_value).nonzero()[0] # need list to index properly limit_idx = list(limit_idx) permute_fx(limit_idx, in_pattrs, out_pattrs, **permute_kwargs) if not assure_permute: break # otherwise check if we differ from original, and if so -- break differ = False for in_pattr, out_pattr in zip(in_pattrs, out_pattrs): differ = differ or np.any(in_pattr.value != out_pattr.value) if differ: break # leave check loop if differ if differ: break # leave 10 loop, otherwise go to the next round if assure_permute and not differ: raise RuntimeError( "Cannot assure permutation of %s with limit %r for " "some reason (dataset %s). Should not happen" % (pattr, self._limit, ds)) return out def _permute_simple(self, limit_idx, in_pattrs, out_pattrs, rng=None): """The simplest permutation """ perm_idx = rng.permutation(limit_idx) if __debug__: debug('APERM', "Obtained permutation %s", (perm_idx, )) # for all to be permuted attrs for in_pattr, out_pattr in zip(in_pattrs, out_pattrs): # replace all values in current limit with permutations # of the original ds's attributes out_pattr.value[limit_idx] = in_pattr.value[perm_idx] def _permute_uattrs(self, limit_idx, in_pattrs, out_pattrs, rng=None): """Provide a permutation given a specified strategy """ # Select given limit_idx pattrs_lim = [p.value[limit_idx] for p in in_pattrs] # convert to list of tuples pattrs_lim_zip = zip(*pattrs_lim) # find unique groups unique_groups = list(set(pattrs_lim_zip)) # now we need to permute the groups to generate remapping # get permutation indexes first perm_idx = rng.permutation(np.arange(len(unique_groups))) # generate remapping remapping = dict([(t, unique_groups[i]) for t, i in zip(unique_groups, perm_idx)]) if __debug__: debug('APERM', "Using remapping %s", (remapping,)) for i, in_group in zip(limit_idx, pattrs_lim_zip): out_group = remapping[in_group] # now we need to assign them ot out_pattrs for pa, out_v in zip(out_pattrs, out_group): pa.value[i] = out_v @staticmethod def _permute_chunks_sanity_check(in_pattrs, chunks, uniques): # Verify that we are not dealing with some degenerate scenario for in_pattr in in_pattrs: sample_targets = in_pattr.value[np.where(chunks == uniques[0])] for orig in uniques[1:]: chunk_targets = in_pattr.value[np.where(chunks == orig)] # must be of the same length if np.any(chunk_targets != sample_targets): # Escape as early as possible return warning("Permutation via strategy='chunk' makes no sense --" " all chunks have the same order of targets: %s" % (sample_targets,)) def _permute_chunks(self, limit_idx, in_pattrs, out_pattrs, chunks=None, rng=None): # limit_idx is doing nothing if chunks is None: raise ValueError("Missing 'chunk_attr' for strategy='chunk'") uniques = np.unique(chunks) if __debug__ and len(uniques): # Somewhat a duplication, since could be checked within the loop, # but IMHO makes it cleaner and shouldn't be that big of an impact self._permute_chunks_sanity_check(in_pattrs, chunks, uniques) for in_pattr, out_pattr in zip(in_pattrs, out_pattrs): shuffled = uniques.copy() rng.shuffle(shuffled) for orig, new in zip(uniques, shuffled): out_pattr.value[np.where(chunks == orig)] = \ in_pattr.value[np.where(chunks == new)] def generate(self, ds): """Generate the desired number of permuted datasets.""" # figure out permutation setup once for all runs # permute as often as requested for i in xrange(self.count): kwargs = self._get_call_kwargs(ds) ## if __debug__: ## debug('APERM', "%s generating %i-th permutation", (self, i)) yield self(ds, _call_kwargs=kwargs) def __str__(self): return _str(self, self._pattr, n=self.count, limit=self._limit, assure=self._assure_permute) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(AttributePermutator, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['attr']) + _repr_attrs(self, ['count'], default=1) + _repr_attrs(self, ['limit']) + _repr_attrs(self, ['assure'], default=False) + _repr_attrs(self, ['strategy'], default='simple') + _repr_attrs(self, ['rng'], default=None) ) attr = property(fget=lambda self: self._pattr) limit = property(fget=lambda self: self._limit) assure = property(fget=lambda self: self._assure_permute) pymvpa2-2.6.4/mvpa2/generators/resampling.py000066400000000000000000000215511323370031300210310ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dataset content resampling (e.g. balance number of samples per condition)""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.node import Node from mvpa2.base.dochelpers import _str, _repr from mvpa2.misc.support import get_limit_filter, get_nelements_per_value from mvpa2.misc.support import get_rng class Balancer(Node): """Generator to (repeatedly) select subsets of a dataset. The Balancer can equalize the number of samples/features in a dataset, or select an absolute number or fraction of all available data. Selection is performed given a particular attribute and additionally can be limited to a subset of the dataset defined by more complex criteria (see ``limit`` argument). The node can either "mark" elements as selected by adding a corresponding attribute to the output dataset, or actually apply the selection by returning a new dataset with only selected elements. """ def __init__(self, amount='equal', attr='targets', count=1, limit='chunks', apply_selection=False, include_offlimit=False, space='balanced_set', rng=None, **kwargs): """ Parameters ---------- amount : {'equal'} or int or float Specify the amount of elements to be selected (within the current ``limit``). The amount can be given as an integer value corresponding to the absolute number of elements per unique attribute (see ``attr``) value, as a float corresponding to the fraction of elements, or with the keyword 'equal'. In the latter case the number of to be selected elements is determined by the least number of available elements for any given unique attribute value within the current limit. attr : str Dataset attribute whose unique values define element classes that are to be balanced in number. count : int How many iterations to perform on ``generate()``. limit : None or str or dict If ``None`` the whole dataset is considered as one. If a single attribute name is given, its unique values will be used to define chunks of data that are balanced individually. Finally, if a dictionary is provided, its keys define attribute names and its values (single value or sequence thereof) attribute value, where all key-value combinations across all given items define a "selection" of to-be-balanced samples or features. apply_selection : bool Flag whether the balanced selection shall be applied, i.e. the output dataset only contains selected elements. If False, the selection is instead added as an attribute that merely marks selected elements (see ``space`` argument). include_offlimit : bool If True, all samples that were off limit (i.e. not included in the balancing input are included in the balanced selection. If False (default) they are excluded. space : str Name of the selection marker attribute in the output dataset that is created if the balanced selection is not applied to the output dataset (see ``apply_selection`` argument). rng : int or RandomState, optional Integer to seed a new RandomState upon each call, or instance of the numpy.random.RandomState to be reused across calls. If None, the numpy.random singleton would be used """ Node.__init__(self, space=space, **kwargs) self._amount = amount self._attr = attr self.count = count self._limit = limit self._include_offlimit = include_offlimit self._apply_selection = apply_selection self._rng = rng def _get_call_kwargs(self, ds): attr, collection = ds.get_attr(self._attr) # _call might need to operate on the dedicated instantiated rng # e.g. if seed int is provided return { 'limit_filter': get_limit_filter(self._limit, collection), 'rng': get_rng(self._rng) } def _call(self, ds, limit_filter=None, rng=None): # local binding amount = self._amount attr, collection = ds.get_attr(self._attr) # ids of elements that are part of the balanced set balanced_set = [] full_limit_set = [] # for each chunk in the filter (might be just the selected ones) for limit_value in np.unique(limit_filter): if limit_filter.dtype == np.bool: # simple boolean filter -> do nothing on False if not limit_value: continue # otherwise get indices of "selected ones" limit_idx = limit_filter.nonzero()[0] else: # non-boolean limiter -> determine "chunk" and balance within limit_idx = (limit_filter == limit_value).nonzero()[0] full_limit_set += list(limit_idx) # apply the current limit to the target attribute # need list to index properly attr_limited = attr[list(limit_idx)] uattr_limited = np.unique(attr_limited) # handle all types of supported arguments if amount == 'equal': # go for maximum possible number of samples provided # by each label in this dataset # determine the min number of samples per class epa = get_nelements_per_value(attr_limited) min_epa = min(epa.values()) for k in epa: epa[k] = min_epa elif isinstance(amount, float): epa = get_nelements_per_value(attr_limited) for k in epa: epa[k] = int(round(epa[k] * amount)) elif isinstance(amount, int): epa = dict(zip(uattr_limited, [amount] * len(uattr_limited))) else: raise ValueError("Unknown type of amount argument '%s'" % amount) # select determined number of elements per unique attribute value selected = [] for ua in uattr_limited: selected += rng.permutation((attr_limited == ua).nonzero()[0])[:epa[ua]].tolist() # determine the final indices of selected elements and store # as part of the balanced set balanced_set += list(limit_idx[selected]) # make full-sized boolean selection attribute and put it into # the right collection of the output dataset if self._include_offlimit: # start with all-in battr = np.ones(len(attr), dtype=np.bool) # throw out all samples that could have been limited battr[full_limit_set] = False # put back the ones that got into the balanced set battr[balanced_set] = True else: # start with nothing battr = np.zeros(len(attr), dtype=np.bool) # only keep the balanced set battr[balanced_set] = True if self._apply_selection: if collection is ds.sa: return ds[battr] elif collection is ds.fa: return ds[:, battr] else: # paranoid raise RuntimeError( "Don't know where this collection comes from. " "This should never happen!") else: # shallow copy of the dataset for output out = ds.copy(deep=False) if collection is ds.sa: out.sa[self.get_space()] = battr elif collection is ds.fa: out.fa[self.get_space()] = battr else: # paranoid raise RuntimeError( "Don't know where this collection comes from. " "This should never happen!") return out def generate(self, ds): """Generate the desired number of balanced datasets datasets.""" # figure out filter for all runs at once # permute as often as requested, reusing the same kwargs kwargs = self._get_call_kwargs(ds) for i in xrange(self.count): yield self(ds, _call_kwargs=kwargs) def __str__(self): return _str(self, str(self._amount), n=self._attr, count=self.count, apply_selection=self._apply_selection) pymvpa2-2.6.4/mvpa2/generators/splitters.py000066400000000000000000000147471323370031300207320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Split a single input dataset into multiple parts""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.node import Node from mvpa2.base import warning from mvpa2.misc.support import mask2slice if __debug__: from mvpa2.base import debug class Splitter(Node): """Generator node for dataset splitting. The splitter is configured with the name of an attribute. When its ``generate()`` methods is called with a dataset, it subsequently yields all possible subsets of this dataset, by selecting all dataset samples/features corresponding to a particular attribute value, for all unique attribute values. Dataset splitting is possible by sample attribute, or by feature attribute. The maximum number of splits can be limited, and custom attribute values may be provided. """ def __init__(self, attr, attr_values=None, count=None, noslicing=False, reverse=False, ignore_values=None, **kwargs): """ Parameters ---------- attr : str Typically the sample or feature attribute used to determine splits. attr_values : tuple If not None, this is a list of values of the ``attr`` used to determine the splits. The order of values in this list defines the order of the resulting splits. It is possible to specify a particular value multiple times. All dataset samples with values that are not listed are going to be ignored. count : None or int Desired number of generated splits. If None, all splits are output (default), otherwise the number of splits is limited to the given ``count`` or the maximum number of possible split (whatever is less). noslicing : bool If True, dataset splitting is not done by slicing (causing shared data between source and split datasets) even if it would be possible. By default slicing is performed whenever possible to reduce the memory footprint. reverse : bool If True, the order of datasets in the split is reversed, e.g. instead of (training, testing), (training, testing) will be spit out. ignore_values : tuple If not None, this is a list of value of the ``attr`` the shall be ignored when determining the splits. This settings also affects any specified ``attr_values``. """ Node.__init__(self, space=attr, **kwargs) self.__splitattr_values = attr_values self.__splitattr_ignore = ignore_values self.__count = count self.__noslicing = noslicing self.__reverse = reverse def generate(self, ds): """Yield dataset splits. Parameters ---------- ds: Dataset Input dataset Returns ------- generator The generator yields every possible split according to the splitter configuration. All generated dataset have a boolean 'lastsplit' attribute in their dataset attribute collection indicating whether this particular dataset is the last one. """ # localbinding noslicing = self.__noslicing count = self.__count splattr = self.get_space() ignore = self.__splitattr_ignore # get attribute and source collection from dataset splattr, collection = ds.get_attr(splattr) splattr_data = splattr.value cfgs = self.__splitattr_values if cfgs is None: cfgs = splattr.unique if __debug__: debug('SPL', 'Determined %i split specifications' % len(cfgs)) if ignore is not None: # remove to be ignored bits cfgs = [c for c in cfgs if not c in ignore] if __debug__: debug('SPL', '%i split specifications left after removing ignored ones' % len(cfgs)) n_cfgs = len(cfgs) if self.__reverse: if __debug__: debug('SPL', 'Reversing split order') cfgs = cfgs[::-1] # split the data for isplit, split in enumerate(cfgs): if count is not None and isplit >= count: # number of max splits is reached if __debug__: debug('SPL', 'Discard remaining splits as maximum of %i is reached' % count) break # safeguard against 'split' being `None` -- in which case a single # boolean would be the result of the comparision below, and not # a boolean vector from element-wise comparision if split is None: split = [None] # boolean mask is 'selected' samples for this split filter_ = splattr_data == split if not noslicing: # check whether we can do slicing instead of advanced # indexing -- if we can split the dataset without causing # the data to be copied, its is quicker and leaner. # However, it only works if we have a contiguous chunk or # regular step sizes for the samples to be split filter_ = mask2slice(filter_) if collection is ds.sa: if __debug__: debug('SPL', 'Split along samples axis') split_ds = ds[filter_] elif collection is ds.fa: if __debug__: debug('SPL', 'Split along feature axis') split_ds = ds[:, filter_] else: RuntimeError("This should never happen.") # is this the last split if count is None: lastsplit = (isplit == n_cfgs - 1) else: lastsplit = (isplit == count - 1) if not 'lastsplit' in split_ds.a: # if not yet known -- add one split_ds.a['lastsplit'] = lastsplit else: # otherwise just assign a new value split_ds.a.lastsplit = lastsplit yield split_ds pymvpa2-2.6.4/mvpa2/kernels/000077500000000000000000000000001323370031300156045ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/kernels/__init__.py000066400000000000000000000012601323370031300177140ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for PyMVPA kernels/similarities and alike """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.kernels') # Just base kernel implementations from mvpa2.kernels.base import * if __debug__: debug('INIT', 'mvpa2.kernels end') pymvpa2-2.6.4/mvpa2/kernels/base.py000066400000000000000000000322571323370031300171010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Base Kernel classes """ _DEV_DOC_ = """ Concerns: - Assure proper type of _k assigned - The same issue "Dataset vs data" in input arguments """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.types import is_datasetlike from mvpa2.base.state import ClassWithCollections from mvpa2.base.param import Parameter from mvpa2.misc.sampleslookup import SamplesLookup # required for CachedKernel if __debug__: from mvpa2.base import debug __all__ = ['Kernel', 'NumpyKernel', 'CustomKernel', 'PrecomputedKernel', 'CachedKernel'] class Kernel(ClassWithCollections): """Abstract class which calculates a kernel function between datasets Each instance has an internal representation self._k which might be of a different form depending on the intended use. Some kernel types should be translatable to other representations where possible, e.g., between Numpy and Shogun-based kernels. This class should not be used directly, but rather use a subclass which enforces a consistent internal representation, such as a NumpyKernel. Notes ----- Conversion mechanisms: Each kernel type should implement methods as necessary for the following two methods to work: :meth:`~mvpa2.kernels.Kernel.as_np` *Return a new NumpyKernel object with internal Numpy kernel*. This method can be generally inherited from the base Kernel class by creating a PrecomputedKernel from the raw numpy matrix, as implemented here. :meth:`~mvpa2.kernels.Kernel.as_raw_np` *Return a raw Numpy array from this kernel*. This method should behave identically to numpy.array(kernel), and in fact, defining either method (via defining Kernel.__array__) will be sufficient for both method calls to work. See this source code for more details. Other kernel types should implement similar mechanisms to convert numpy arrays to their own internal representations. See `add_conversion` for a helper method, and examples in mvpa2.kernels.sg Assuming such `Kernel.as_*` methods exist, all kernel types should be seamlessly convertable amongst each other. Note that kernels are not meant to be 'functionally translateable' in the sense that one kernel can be created, translated, then used to compute results in a new framework. Rather, the results are meant to be exchangeable, hence the standard practice of using a precomputed kernel object to store the results in the new kernel type. For example: :: k = SomeShogunKernel() k.compute(data1, data2) # Incorrect and unsupported use k2 = k.as_cuda() k2.compute(data3, data4) # Would require 'functional translation' to the new # backend, which is impossible # Correct use someOtherAlgorithm(k.as_raw_cuda()) # Simply uses kernel results in CUDA """ _ATTRIBUTE_COLLECTIONS = ['params'] # enforce presence of params collections # Define this per class: standard string describing kernel type, ie # 'linear', or 'rbf', to help coordinate kernel types across backends __kernel_name__ = None def __init__(self, *args, **kwargs): """Base Kernel class has no parameters """ ClassWithCollections.__init__(self, *args, **kwargs) self._k = None """Implementation specific version of the kernel""" def compute(self, ds1, ds2=None): """Generic computation of any kernel Assumptions: - ds1, ds2 are either datasets or arrays, - presumably 2D (not checked neither enforced here - _compute takes ndarrays. If your kernel needs datasets, override compute """ if is_datasetlike(ds1): ds1 = ds1.samples if ds2 is None: ds2 = ds1 elif is_datasetlike(ds2): ds2 = ds2.samples # TODO: assure 2D shape self._compute(ds1, ds2) def _compute(self, d1, d2): """Specific implementation to be overridden """ raise NotImplementedError("Abstract method") def computed(self, *args, **kwargs): """Compute kernel and return self """ self.compute(*args, **kwargs) return self ############################################################################ # The following methods are circularly defined. Child kernel types can # override either one or both to allow conversion to Numpy def __array__(self): return self.as_raw_np() def as_raw_np(self): """Directly return this kernel as a numpy array""" return np.array(self) ############################################################################ def as_np(self): """Converts this kernel to a Numpy-based representation""" p = PrecomputedKernel(matrix=self.as_raw_np()) p.compute() return p def cleanup(self): """Wipe out internal representation XXX unify: we have reset in other places to accomplish similar thing """ self._k = None @classmethod def add_conversion(cls, typename, methodfull, methodraw): """Adds methods to the Kernel class for new conversions Parameters ---------- typename : string Describes kernel type methodfull : function Method which converts to the new kernel object class methodraw : function Method which returns a raw kernel Examples -------- Kernel.add_conversion('np', fullmethod, rawmethod) binds kernel.as_np() to fullmethod() binds kernel.as_raw_np() to rawmethod() Can also be used on subclasses to override the default conversions """ setattr(cls, 'as_%s'%typename, methodfull) setattr(cls, 'as_raw_%s'%typename, methodraw) class NumpyKernel(Kernel): """A Kernel object with internal representation as a 2d numpy array""" _ATTRIBUTE_COLLECTIONS = Kernel._ATTRIBUTE_COLLECTIONS + ['ca'] # enforce presence of params AND ca collections for gradients etc def __array__(self): # By definintion, a NumpyKernel's internal representation is an array return self._k def as_np(self): """Converts this kernel to a Numpy-based representation""" # Already numpy!! return self def as_raw_np(self): """Directly return this kernel as a numpy array. For Numpy-based kernels - simply returns stored matrix.""" return self._k # wasn't that easy? class CustomKernel(NumpyKernel): """Custom Kernel defined by an arbitrary function Examples -------- Basic linear kernel >>> k = CustomKernel(kernelfunc=lambda a,b: numpy.dot(a,b.T)) """ __TODO__ = """ - repr/doc sicne now kernelfunc is not a Parameter """ def __init__(self, kernelfunc=None, *args, **kwargs): """Initialize CustomKernel with an arbitrary function. Parameters ---------- kernelfunc : function Any callable function which takes two numpy arrays and calculates a kernel function, treating the rows as samples and the columns as features. It is called from compute(d1, d2) -> func(d1,d2) and should return a numpy matrix K(i,j) which holds the kernel evaluated from d1 sample i and d2 sample j """ NumpyKernel.__init__(self, *args, **kwargs) self._kernelfunc = kernelfunc def _compute(self, d1, d2): self._k = self._kernelfunc(d1, d2) class PrecomputedKernel(NumpyKernel): """Precomputed matrix """ __TODO__ = """ - repr/doc sicne now matrix is not a Parameter """ # NB: to avoid storing matrix twice, after compute # self.params.matrix = self._k def __init__(self, matrix=None, *args, **kwargs): """ Parameters ---------- matrix : Numpy array or convertable kernel, or other object type """ NumpyKernel.__init__(self, *args, **kwargs) self._k = np.array(matrix) def compute(self, *args, **kwargs): pass class CachedKernel(NumpyKernel): """Kernel which caches all data to avoid duplicate computation This kernel is very useful for any analysis which will retrain or repredict the same data multiple times, as this kernel will avoid recalculating the kernel function. Examples of such analyses include cross validation, bootstrapping, and model selection (assuming the kernel function itself does not change, e.g. when selecting for C in an SVM). The kernel will automatically cache any new data sent through compute, and will be able to use this cache whenever a subset of this data is sent through compute again. If new (uncached) data is sent through compute, then the cache is recreated from scratch. Therefore, you should compute the kernel on the entire superset of your data before using this kernel normally (computing a new cache invalidates any previous cached data). The cache is asymmetric for lhs and rhs, so compute(d1, d2) does not create a cache usable for compute(d2, d1). """ # TODO: Figure out how to design objects like CrossValidation etc to # precompute this kernel automatically, making it transparent to the user @property def __kernel_name__(self): """Allows checking name of subkernel""" return self._kernel.__kernel_name__ def __init__(self, kernel=None, *args, **kwargs): """Initialize `CachedKernel` Parameters ---------- kernel : Kernel Base kernel to cache. Any kernel which can be converted to a `NumpyKernel` is allowed """ super(CachedKernel, self).__init__(*args, **kwargs) self._kernel = kernel self.params.update(self._kernel.params) self._rhsids = self._lhsids = self._kfull = None self._recomputed = None def _cache(self, ds1, ds2=None): """Initializes internal lookups + _kfull via caching the kernel matrix """ if __debug__ and 'KRN' in debug.active: debug('KRN', "Caching %(inst)s for ds1=%(ds1)s, ds2=%(ds1)s" % dict(inst=self, ds1=ds1, ds2=ds2)) self._lhsids = SamplesLookup(ds1) if (ds2 is None) or (ds2 is ds1): self._rhsids = self._lhsids else: self._rhsids = SamplesLookup(ds2) ckernel = self._kernel ckernel.compute(ds1, ds2) self._kfull = ckernel.as_raw_np() ckernel.cleanup() self._k = self._kfull self._recomputed = True self.params.reset() # TODO: store params representation for later comparison def compute(self, ds1, ds2=None, force=False): """Automatically computes and caches the kernel or extracts the relevant part of a precached kernel into self._k Parameters ---------- force : bool If True it forces re-caching of the kernel. It is advised to be used whenever explicitly pre-caching the kernel and it is known that data was changed. """ if __debug__ and 'KRN' in debug.active: debug('KRN', "Computing kernel %(inst)s on ds1=%(ds1)s, ds2=%(ds1)s" % dict(inst=self, ds1=ds1, ds2=ds2)) # Flag lets us know whether cache was recomputed self._recomputed = False #if self._ds_cached_info is not None: # Check either those ds1, ds2 are coming from the same # dataset as before # TODO: figure out if data were modified... # params_modified = True changedData = False or force if len(self.params.which_set()) or changedData \ or self._lhsids is None: self._cache(ds1, ds2)# hopefully this will never reset values, just # changed status else: # figure d1, d2 try: lhsids = self._lhsids(ds1) # if ds2 is None: rhsids = lhsids else: rhsids = self._rhsids(ds2) self._k = self._kfull[np.ix_(lhsids, rhsids)] except KeyError: self._cache(ds1, ds2) if __debug__ and self._recomputed: debug('KRN', "Kernel %(inst)s was recomputed on ds1=%(ds1)s, ds2=%(ds1)s" % dict(inst=self, ds1=ds1, ds2=ds2)) __BOGUS_NOTES__ = """ if ds1 is the "derived" dataset as it was computed on: * ds2 is None ds2 bound to ds1 - * ds1 and ds2 present - ds1 and ds2 come from the same dataset - whatever CachedKernel was computed on is a superset - not a superset -- puke? - ds2 comes from different than ds1 - puke? else: compute (ds1, ds2) - different data ids ckernel = PrecomputedKernel(matrix=np.array([1,2,3])) ck = CachedKernel(kernel=ckernel) """ pymvpa2-2.6.4/mvpa2/kernels/libsvm.py000066400000000000000000000064671323370031300174670ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PyMVPA LibSVM-based kernels These kernels do not currently have the ability to run the calculations, so they are not translateable to other kernel types. They are implemented solely to standardize the interface between other kernel machines. """ __docformat__ = 'restructuredtext' from mvpa2.kernels.base import Kernel from mvpa2.base.param import Parameter #from mvpa2.clfs.libsvmc import _svmc class _svmc(object): """Locally defining constants for LibSVM to avoid circular import. """ LINEAR = 0 POLY = 1 RBF = 2 SIGMOID = 3 class LSKernel(Kernel): """A Kernel object which dictates how LibSVM will calculate the kernel""" def __init__(self, *args, **kwargs): """Base class for LIBSVM Kernels has no parameters """ Kernel.__init__(self, *args, **kwargs) self.compute() def compute(self, *args, **kwargs): self._k = self.__kernel_type__ # Nothing to compute def as_raw_ls(self): return self._k def as_ls(self): return self def as_raw_np(self): raise ValueError, 'LibSVM calculates kernels internally; they ' +\ 'cannot be converted to Numpy' # Conversion methods def _as_ls(kernel): raise NotImplementedError( 'LibSVM calculates kernels internally; ' 'they cannot be converted from Numpy') def _as_raw_ls(kernel): raise NotImplementedError( 'LibSVM calculates kernels internally; they ' 'cannot be converted from Numpy') Kernel.add_conversion('ls', _as_ls, _as_raw_ls) class LinearLSKernel(LSKernel): """A simple Linear kernel: K(a,b) = a*b.T""" __kernel_type__ = _svmc.LINEAR __kernel_name__ = 'linear' class RbfLSKernel(LSKernel): """Radial Basis Function kernel (aka Gaussian): K(a,b) = exp(-gamma*||a-b||**2) """ __kernel_type__ = _svmc.RBF __kernel_name__ = 'rbf' gamma = Parameter(1, doc='Gamma multiplying paramater for Rbf') def __init__(self, **kwargs): # Necessary for proper docstring construction LSKernel.__init__(self, **kwargs) class PolyLSKernel(LSKernel): """Polynomial kernel: K(a,b) = (gamma*a*b.T + coef0)**degree""" __kernel_type__ = _svmc.POLY __kernel_name__ = 'poly' gamma = Parameter(1, doc='Gamma multiplying parameter for Polynomial') degree = Parameter(2, doc='Degree of polynomial') coef0 = Parameter(1, doc='Offset inside polynomial') # aka coef0 def __init__(self, **kwargs): # Necessary for proper docstring construction LSKernel.__init__(self, **kwargs) class SigmoidLSKernel(LSKernel): """Sigmoid kernel: K(a,b) = tanh(gamma*a*b.T + coef0)""" __kernel_type__ = _svmc.SIGMOID __kernel_name__ = 'sigmoid' gamma = Parameter(1, doc='Gamma multiplying parameter for SigmoidKernel') coef0 = Parameter(1, doc='Offset inside tanh') def __init__(self, **kwargs): # Necessary for proper docstring construction LSKernel.__init__(self, **kwargs) pymvpa2-2.6.4/mvpa2/kernels/np.py000066400000000000000000000624231323370031300166020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti and # PyMVPA Team. See COPYING file distributed along with the PyMVPA # package for complete list of copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Kernels for Gaussian Process Regression and Classification.""" _DEV__DOC__ = """ Make use of Parameter Collections to keep parameters of the kernels. Then we would get a uniform .reset() functionality. Now reset is provided just for parts which are failing in the unittests, but there is many more places where they are not reset properly if classifier gets trained on some new data of different dimensionality """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.state import ConditionalAttribute from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureFloat, EnsureListOf from mvpa2.misc.exceptions import InvalidHyperparameterError from mvpa2.clfs.distance import squared_euclidean_distance from mvpa2.kernels.base import NumpyKernel if __debug__: from mvpa2.base import debug, warning # Simple stuff class LinearKernel(NumpyKernel): """Simple linear kernel: K(a,b) = a*b.T""" def _compute(self, d1, d2): self._k = np.dot(d1, d2.T) class PolyKernel(NumpyKernel): """Polynomial kernel: K(a,b) = (gamma*a*b.T+coef0)**degree""" gamma = Parameter(1, doc='Gamma scaling coefficient') degree = Parameter(2, doc="Polynomial degree") coef0 = Parameter(1, doc="Offset added to dot product before exponent") def _compute(self, d1, d2): self._k = np.power(self.params.gamma*np.dot(d1, d2.T)+self.params.coef0, self.params.degree) class RbfKernel(NumpyKernel): """Radial basis function (aka Gausian, aka ) kernel K(a,b) = exp(-||a-b||**2/sigma) """ sigma = Parameter(1.0, constraints='float', doc="Width parameter sigma") def _compute(self, d1, d2): # Do the Rbf self._k = np.exp(-squared_euclidean_distance(d1,d2) / self.params.sigma) # More complex class ConstantKernel(NumpyKernel): """The constant kernel class. """ sigma_0 = Parameter(1.0, doc=""" A simple constant squared value of which is broadcasted across kernel. In the case of GPR -- standard deviation of the Gaussian prior probability N(0,sigma_0**2) of the intercept of the constant regression.""") def _compute(self, data1, data2): """Compute kernel matrix. Parameters ---------- data1 : numpy.ndarray lhs data data2 : numpy.ndarray rhs data """ self._k = \ (self.params.sigma_0 ** 2) * np.ones((data1.shape[0], data2.shape[0])) ## def set_hyperparameters(self, hyperparameter): ## if hyperparameter < 0: ## raise InvalidHyperparameterError() ## self.sigma_0 = hyperparameter ## return def compute_lml_gradient(self, alphaalphaT_Kinv, data): K_grad_sigma_0 = 2*self.params.sigma_0 # self.lml_gradient = 0.5*(np.trace(np.dot(alphaalphaT_Kinv,K_grad_sigma_0*np.ones(alphaalphaT_Kinv.shape))) # Faster formula: np.trace(np.dot(A,B)) = (A*(B.T)).sum() # Fastest when B is a constant: B*A.sum() self.lml_gradient = 0.5*np.array(K_grad_sigma_0*alphaalphaT_Kinv.sum()) #return self.lml_gradient def compute_lml_gradient_logscale(self, alphaalphaT_Kinv, data): K_grad_sigma_0 = 2*self.params.sigma_0**2 self.lml_gradient = 0.5*np.array(K_grad_sigma_0*alphaalphaT_Kinv.sum()) #return self.lml_gradient pass class GeneralizedLinearKernel(NumpyKernel): """The linear kernel class. """ sigma_0 = Parameter(1.0, doc=""" A simple constant squared value which is broadcasted across kernel. In the case of GPR -- standard deviation of the Gaussian prior probability Normal(0, sigma_0**2) of the intercept of the linear regression.""") Sigma_p = Parameter(1.0, doc=r""" A generic scalar or vector, or diagonal matrix to scale all dimensions or associate different scaling to each dimensions while computing te kernel matrix: :math:`k(x_A,x_B) = x_A^\top \Sigma_p x_B + \sigma_0^2`. In the case of GPR -- a scalar or a diagonal of covariance matrix of the Gaussian prior probability Normal(0, Sigma_p) on the weights of the linear regression.""") gradients = ConditionalAttribute(enabled=False, doc="Dictionary of gradients per a parameter") gradientslog = ConditionalAttribute(enabled=False, doc="Dictionary of gradients per a parameter in logspace") def __init__(self, *args, **kwargs): # for docstring holder NumpyKernel.__init__(self, *args, **kwargs) ## def __init__(self, Sigma_p=None, sigma_0=1.0, **kwargs): ## """Initialize the linear kernel instance. ## Parameters ## ---------- ## Sigma_p : numpy.ndarray ## Covariance matrix of the Gaussian prior probability N(0,Sigma_p) ## on the weights of the linear regression. ## (Defaults to None) ## sigma_0 : float ## the standard deviation of the Gaussian prior N(0,sigma_0**2) ## of the intercept of the linear regression. ## (Deafults to 1.0) ## """ ## # init base class first ## NumpyKernel.__init__(self, **kwargs) ## # TODO: figure out cleaner way... probably by using KernelParameters ;-) ## self.Sigma_p = Sigma_p ## self.sigma_0 = sigma_0 ## def __repr__(self): ## return "%s(Sigma_p=%s, sigma_0=%s)" \ ## % (self.__class__.__name__, str(self.Sigma_p), str(self.sigma_0)) # XXX ??? would we reset correctly to the original value... model selection # currently depends on this I believe def reset(self): super(GeneralizedLinearKernel, self).reset() self._Sigma_p = self._Sigma_p_orig def _compute(self, data1, data2): """Compute kernel matrix. """ # it is better to use separate lines of computation, to don't # incure computation cost without need (otherwise # np.dot(self.Sigma_p, data2.T) can take forever for relatively # large number of features) Sigma_p = self.params.Sigma_p # local binding sigma_0 = self.params.sigma_0 #if scalar - scale second term appropriately if np.isscalar(Sigma_p): if Sigma_p == 1.0: data2_sc = data2.T else: data2_sc = Sigma_p * data2.T # if vector use it as diagonal matrix -- ie scale each row by # the given value elif len(Sigma_p.shape) == 1 and \ Sigma_p.shape[0] == data2.shape[1]: # which due to numpy broadcasting is the same as product # with scalar above data2_sc = (Sigma_p * data2).T # If (diagonal) or full-matrix -- full-featured and lengthy matrix # product elif len(Sigma_p.shape) == 2 and \ Sigma_p.shape[0] == Sigma_p.shape[1] == data2.shape[1]: # which due to numpy broadcasting is the same as product # with scalar above data2_sc = np.dot(Sigma_p, data2.T) else: raise ValueError, "Please provide Sigma_p as a scalar, vector, " \ "or square (diagonal) matrix." # XXX if Sigma_p is changed a warning should be issued! # XXX other cases of incorrect Sigma_p could be catched self._k = k = np.dot(data1, data2_sc) + sigma_0 ** 2 # Compute gradients if any was requested do_g = self.ca.is_enabled('gradients') do_gl = self.ca.is_enabled('gradientslog') if do_g or do_gl: if np.isscalar(Sigma_p): g_Sigma_p = np.dot(data1, data2.T) gl_Sigma_p = Sigma_p * g_Sigma_p else: nfeat = len(Sigma_p) gsize = (len(data1), len(data2), nfeat) if do_g: g_Sigma_p = np.empty(gsize) if do_gl: gl_Sigma_p = np.empty(gsize) for i in xrange(nfeat): outer = np.multiply.outer(data1[:, i], data2[:, i]) if do_g: g_Sigma_p[:, :, i] = outer if do_gl: gl_Sigma_p = Sigma_p[i] * outer if do_g: self.ca.gradients = dict( sigma_0=2*sigma_0, Sigma_p=g_Sigma_p) if do_gl: self.ca.gradientslog = dict( sigma_0=2*sigma_0**2, Sigma_p=gl_Sigma_p) pass class ExponentialKernel(NumpyKernel): """The Exponential kernel class. Note that it can handle a length scale for each dimension for Automtic Relevance Determination. """ length_scale = Parameter(1.0, constraints=EnsureFloat() | EnsureListOf(float), doc=""" The characteristic length-scale (or length-scales) of the phenomenon under investigation.""") sigma_f = Parameter(1.0, constraints='float', doc="""Signal standard deviation.""") def __init__(self, *args, **kwargs): # for docstring holder NumpyKernel.__init__(self, *args, **kwargs) ## def __init__(self, length_scale=1.0, sigma_f = 1.0, **kwargs): ## """Initialize an Exponential kernel instance. ## Parameters ## ---------- ## length_scale : float or numpy.ndarray ## the characteristic length-scale (or length-scales) of the ## phenomenon under investigation. ## (Defaults to 1.0) ## sigma_f : float ## Signal standard deviation. ## (Defaults to 1.0) ## """ ## # init base class first ## NumpyKernel.__init__(self, **kwargs) ## self.length_scale = length_scale ## self.sigma_f = sigma_f ## self._k = None ## def __repr__(self): ## return "%s(length_scale=%s, sigma_f=%s)" \ ## % (self.__class__.__name__, str(self.length_scale), str(self.sigma_f)) def _compute(self, data1, data2): """Compute kernel matrix. Parameters ---------- data1 : numpy.ndarray lhs data data2 : numpy.ndarray rhs data """ params = self.params # XXX the following computation can be (maybe) made more # efficient since length_scale is squared and then # square-rooted uselessly. # Weighted euclidean distance matrix: self.wdm = np.sqrt(squared_euclidean_distance( data1, data2, weight=(params.length_scale**-2))) self._k = \ params.sigma_f**2 * np.exp(-self.wdm) def gradient(self, data1, data2): """Compute gradient of the kernel matrix. A must for fast model selection with high-dimensional data. """ raise NotImplementedError ## def set_hyperparameters(self, hyperparameter): ## """Set hyperaparmeters from a vector. ## Used by model selection. ## """ ## if np.any(hyperparameter < 0): ## raise InvalidHyperparameterError() ## self.sigma_f = hyperparameter[0] ## self.length_scale = hyperparameter[1:] ## return def compute_lml_gradient(self,alphaalphaT_Kinv,data): """Compute grandient of the kernel and return the portion of log marginal likelihood gradient due to the kernel. Shorter formula. Allows vector of lengthscales (ARD) BUT THIS LAST OPTION SEEMS NOT TO WORK FOR (CURRENTLY) UNKNOWN REASONS. """ self.lml_gradient = [] def lml_grad(K_grad_i): # return np.trace(np.dot(alphaalphaT_Kinv,K_grad_i)) # Faster formula: np.trace(np.dot(A,B)) = (A*(B.T)).sum() return (alphaalphaT_Kinv*(K_grad_i.T)).sum() grad_sigma_f = 2.0/self.sigma_f*self.kernel_matrix self.lml_gradient.append(lml_grad(grad_sigma_f)) if np.isscalar(self.length_scale) or self.length_scale.size==1: # use the same length_scale for all dimensions: K_grad_l = self.wdm*self.kernel_matrix*(self.length_scale**-1) self.lml_gradient.append(lml_grad(K_grad_l)) else: # use one length_scale for each dimension: for i in range(self.length_scale.size): K_grad_i = (self.length_scale[i]**-3)*(self.wdm**-1)*self.kernel_matrix*np.subtract.outer(data[:,i],data[:,i])**2 self.lml_gradient.append(lml_grad(K_grad_i)) pass pass self.lml_gradient = 0.5*np.array(self.lml_gradient) return self.lml_gradient def compute_lml_gradient_logscale(self,alphaalphaT_Kinv,data): """Compute grandient of the kernel and return the portion of log marginal likelihood gradient due to the kernel. Shorter formula. Allows vector of lengthscales (ARD). BUT THIS LAST OPTION SEEMS NOT TO WORK FOR (CURRENTLY) UNKNOWN REASONS. """ self.lml_gradient = [] def lml_grad(K_grad_i): # return np.trace(np.dot(alphaalphaT_Kinv,K_grad_i)) # Faster formula: np.trace(np.dot(A,B)) = (A*(B.T)).sum() return (alphaalphaT_Kinv*(K_grad_i.T)).sum() grad_log_sigma_f = 2.0*self.kernel_matrix self.lml_gradient.append(lml_grad(grad_log_sigma_f)) if np.isscalar(self.length_scale) or self.length_scale.size==1: # use the same length_scale for all dimensions: K_grad_l = self.wdm*self.kernel_matrix self.lml_gradient.append(lml_grad(K_grad_l)) else: # use one length_scale for each dimension: for i in range(self.length_scale.size): K_grad_i = (self.length_scale[i]**-2)*(self.wdm**-1)*self.kernel_matrix*np.subtract.outer(data[:,i],data[:,i])**2 self.lml_gradient.append(lml_grad(K_grad_i)) pass pass self.lml_gradient = 0.5*np.array(self.lml_gradient) return self.lml_gradient pass class SquaredExponentialKernel(NumpyKernel): """The Squared Exponential kernel class. Note that it can handle a length scale for each dimension for Automtic Relevance Determination. """ def __init__(self, length_scale=1.0, sigma_f=1.0, **kwargs): """Initialize a Squared Exponential kernel instance. Parameters ---------- length_scale : float or numpy.ndarray, optional the characteristic length-scale (or length-scales) of the phenomenon under investigation. (Defaults to 1.0) sigma_f : float, optional Signal standard deviation. (Defaults to 1.0) """ # init base class first NumpyKernel.__init__(self, **kwargs) self.length_scale = length_scale self.sigma_f = sigma_f # XXX ??? def reset(self): super(SquaredExponentialKernel, self).reset() self._length_scale = self._length_scale_orig def __repr__(self): return "%s(length_scale=%s, sigma_f=%s)" \ % (self.__class__.__name__, str(self.length_scale), str(self.sigma_f)) def _compute(self, data1, data2): """Compute kernel matrix. Parameters ---------- data1 : numpy.ndarray data data2 : numpy.ndarray data (Defaults to None) """ # weighted squared euclidean distance matrix: self.wdm2 = squared_euclidean_distance(data1, data2, weight=(self.length_scale**-2)) self._k = self.sigma_f**2 * np.exp(-0.5*self.wdm2) # XXX EO: old implementation: # self.kernel_matrix = \ # self.sigma_f * np.exp(-squared_euclidean_distance( # data1, data2, weight=0.5 / (self.length_scale ** 2))) def set_hyperparameters(self, hyperparameter): """Set hyperaparmeters from a vector. Used by model selection. """ if np.any(hyperparameter < 0): raise InvalidHyperparameterError() self.sigma_f = hyperparameter[0] self._length_scale = hyperparameter[1:] return def compute_lml_gradient(self,alphaalphaT_Kinv,data): """Compute grandient of the kernel and return the portion of log marginal likelihood gradient due to the kernel. Shorter formula. Allows vector of lengthscales (ARD). """ self.lml_gradient = [] def lml_grad(K_grad_i): # return np.trace(np.dot(alphaalphaT_Kinv,K_grad_i)) # Faster formula: np.trace(np.dot(A,B)) = (A*(B.T)).sum() return (alphaalphaT_Kinv*(K_grad_i.T)).sum() grad_sigma_f = 2.0/self.sigma_f*self.kernel_matrix self.lml_gradient.append(lml_grad(grad_sigma_f)) if np.isscalar(self.length_scale) or self.length_scale.size==1: # use the same length_scale for all dimensions: K_grad_l = self.wdm2*self.kernel_matrix*(1.0/self.length_scale) self.lml_gradient.append(lml_grad(K_grad_l)) else: # use one length_scale for each dimension: for i in range(self.length_scale.size): K_grad_i = 1.0/(self.length_scale[i]**3)*self.kernel_matrix*np.subtract.outer(data[:,i],data[:,i])**2 self.lml_gradient.append(lml_grad(K_grad_i)) pass pass self.lml_gradient = 0.5*np.array(self.lml_gradient) return self.lml_gradient def compute_lml_gradient_logscale(self,alphaalphaT_Kinv,data): """Compute grandient of the kernel and return the portion of log marginal likelihood gradient due to the kernel. Hyperparameters are in log scale which is sometimes more stable. Shorter formula. Allows vector of lengthscales (ARD). """ self.lml_gradient = [] def lml_grad(K_grad_i): # return np.trace(np.dot(alphaalphaT_Kinv,K_grad_i)) # Faster formula: np.trace(np.dot(A,B)) = (A*(B.T)).sum() return (alphaalphaT_Kinv*(K_grad_i.T)).sum() K_grad_log_sigma_f = 2.0*self.kernel_matrix self.lml_gradient.append(lml_grad(K_grad_log_sigma_f)) if np.isscalar(self.length_scale) or self.length_scale.size==1: # use the same length_scale for all dimensions: K_grad_log_l = self.wdm2*self.kernel_matrix self.lml_gradient.append(lml_grad(K_grad_log_l)) else: # use one length_scale for each dimension: for i in range(self.length_scale.size): K_grad_log_l_i = 1.0/(self.length_scale[i]**2)*self.kernel_matrix*np.subtract.outer(data[:,i],data[:,i])**2 self.lml_gradient.append(lml_grad(K_grad_log_l_i)) pass pass self.lml_gradient = 0.5*np.array(self.lml_gradient) return self.lml_gradient def _setlength_scale(self, v): """Set value of length_scale and its _orig """ self._length_scale = self._length_scale_orig = v length_scale = property(fget=lambda x:x._length_scale, fset=_setlength_scale) pass class Matern_3_2Kernel(NumpyKernel): """The Matern kernel class for the case ni=3/2 or ni=5/2. Note that it can handle a length scale for each dimension for Automtic Relevance Determination. """ def __init__(self, length_scale=1.0, sigma_f=1.0, numerator=3.0, **kwargs): """Initialize a Squared Exponential kernel instance. Parameters ---------- length_scale : float or numpy.ndarray, optional the characteristic length-scale (or length-scales) of the phenomenon under investigation. (Defaults to 1.0) sigma_f : float, optional Signal standard deviation. (Defaults to 1.0) numerator : float, optional the numerator of parameter ni of Matern covariance functions. Currently only numerator=3.0 and numerator=5.0 are implemented. (Defaults to 3.0) """ # init base class first NumpyKernel.__init__(self, **kwargs) self.length_scale = length_scale self.sigma_f = sigma_f if numerator == 3.0 or numerator == 5.0: self.numerator = numerator else: raise NotImplementedError def __repr__(self): return "%s(length_scale=%s, ni=%d/2)" \ % (self.__class__.__name__, str(self.length_scale), self.numerator) def _compute(self, data1, data2): """Compute kernel matrix. Parameters ---------- data1 : numpy.ndarray lhs data data2 : numpy.ndarray rhs data """ tmp = squared_euclidean_distance( data1, data2, weight=0.5 / (self.length_scale ** 2)) if self.numerator == 3.0: tmp = np.sqrt(tmp) self._k = \ self.sigma_f**2 * (1.0 + np.sqrt(3.0) * tmp) \ * np.exp(-np.sqrt(3.0) * tmp) elif self.numerator == 5.0: tmp2 = np.sqrt(tmp) self._k = \ self.sigma_f**2 * (1.0 + np.sqrt(5.0) * tmp2 + 5.0 / 3.0 * tmp) \ * np.exp(-np.sqrt(5.0) * tmp2) def gradient(self, data1, data2): """Compute gradient of the kernel matrix. A must for fast model selection with high-dimensional data. """ # TODO SOON # grad = ... # return grad raise NotImplementedError def set_hyperparameters(self, hyperparameter): """Set hyperaparmeters from a vector. Used by model selection. Note: 'numerator' is not considered as an hyperparameter. """ if np.any(hyperparameter < 0): raise InvalidHyperparameterError() self.sigma_f = hyperparameter[0] self.length_scale = hyperparameter[1:] return pass class Matern_5_2Kernel(Matern_3_2Kernel): """The Matern kernel class for the case ni=5/2. This kernel is just Matern_3_2Kernel(numerator=5.0). """ def __init__(self, **kwargs): """Initialize a Squared Exponential kernel instance. Parameters ---------- length_scale : float or numpy.ndarray the characteristic length-scale (or length-scales) of the phenomenon under investigation. (Defaults to 1.0) """ Matern_3_2Kernel.__init__(self, numerator=5.0, **kwargs) pass class RationalQuadraticKernel(NumpyKernel): """The Rational Quadratic (RQ) kernel class. Note that it can handle a length scale for each dimension for Automtic Relevance Determination. """ def __init__(self, length_scale=1.0, sigma_f=1.0, alpha=0.5, **kwargs): """Initialize a Squared Exponential kernel instance. Parameters ---------- length_scale : float or numpy.ndarray the characteristic length-scale (or length-scales) of the phenomenon under investigation. (Defaults to 1.0) sigma_f : float Signal standard deviation. (Defaults to 1.0) alpha : float The parameter of the RQ functions family. (Defaults to 2.0) """ # init base class first NumpyKernel.__init__(self, **kwargs) self.length_scale = length_scale self.sigma_f = sigma_f self.alpha = alpha def __repr__(self): return "%s(length_scale=%s, alpha=%f)" \ % (self.__class__.__name__, str(self.length_scale), self.alpha) def _compute(self, data1, data2): """Compute kernel matrix. Parameters ---------- data1 : numpy.ndarray lhs data data2 : numpy.ndarray rhs data """ tmp = squared_euclidean_distance( data1, data2, weight=1.0 / (self.length_scale ** 2)) self._k = \ self.sigma_f**2 * (1.0 + tmp / (2.0 * self.alpha)) ** -self.alpha def gradient(self, data1, data2): """Compute gradient of the kernel matrix. A must for fast model selection with high-dimensional data. """ # TODO SOON # grad = ... # return grad raise NotImplementedError def set_hyperparameters(self, hyperparameter): """Set hyperaparmeters from a vector. Used by model selection. Note: 'alpha' is not considered as an hyperparameter. """ if np.any(hyperparameter < 0): raise InvalidHyperparameterError() self.sigma_f = hyperparameter[0] self.length_scale = hyperparameter[1:] return pass # dictionary of avalable kernels with names as keys: kernel_dictionary = {'constant': ConstantKernel, 'linear': LinearKernel, #GeneralizedLinearKernel, 'genlinear': GeneralizedLinearKernel, 'poly': PolyKernel, 'rbf': RbfKernel, 'exponential': ExponentialKernel, 'squared exponential': SquaredExponentialKernel, 'Matern ni=3/2': Matern_3_2Kernel, 'Matern ni=5/2': Matern_5_2Kernel, 'rational quadratic': RationalQuadraticKernel} pymvpa2-2.6.4/mvpa2/kernels/sg.py000066400000000000000000000201041323370031300165640ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PyMVPA shogun-based kernels Provides interface to kernels defined in shogun toolbox. Commonly used kernels are provided with convenience classes: `LinearSGKernel`, `RbfSGKernel`, `PolySGKernel`. If you need to use some other shogun kernel, use `CustomSGKernel` to define one. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.externals import exists, versions from mvpa2.kernels.base import Kernel from mvpa2.base.param import Parameter if exists('shogun', raise_=True): import shogun.Kernel as sgk from shogun.Features import RealFeatures else: # Just to please sphinx documentation class Bogus(object): pass sgk = Bogus() sgk.LinearKernel = None sgk.GaussianKernel = None sgk.PolyKernel = None if __debug__: from mvpa2.base import debug class SGKernel(Kernel): """A Kernel object with internal representation in Shogun""" def as_sg(self): return self def as_raw_sg(self): return self._k def __array__(self): return self._k.get_kernel_matrix() @staticmethod def _data2features(data): """Converts data to shogun features""" if __debug__: debug('KRN_SG', 'Converting data of shape %s into shogun RealFeatures' % (data.shape,)) res = RealFeatures(data.astype(float).T) if __debug__: debug('KRN_SG', 'Done converting data') return res # Conversion methods def _as_raw_sg(kernel): """Converts directly to a Shogun kernel""" return sgk.CustomKernel(kernel.as_raw_np()) def _as_sg(kernel): """Converts this kernel to a Shogun-based representation""" return PrecomputedSGKernel(matrix=kernel.as_raw_np()) Kernel.add_conversion('sg', _as_sg, _as_raw_sg) class _BasicSGKernel(SGKernel): """Abstract class which can handle most shogun kernel types Subclasses can specify new kernels using the following declarations: - __kernel_cls__ = Shogun kernel class - __kp_order__ = Tuple which specifies the order of kernel params. If there is only one kernel param, this is not necessary """ __TODO__ = """ - Think either normalizer_* should not become proper Parameter. """ def __init__(self, normalizer_cls=None, normalizer_args=None, **kwargs): """ Parameters ---------- normalizer_cls : sg.Kernel.CKernelNormalizer Class to use as a normalizer for the kernel. Will be instantiated upon compute(). Only supported for shogun >= 0.6.5. By default (if left None) assigns IdentityKernelNormalizer to assure no normalization. normalizer_args : None or list If necessary, provide a list of arguments for the normalizer. """ SGKernel.__init__(self, **kwargs) if (normalizer_cls is not None) and (versions['shogun:rev'] < 3377): raise ValueError, \ "Normalizer specification is supported only for sg >= 0.6.5. " \ "Please upgrade shogun python modular bindings." if normalizer_cls is None and exists('sg ge 0.6.5'): normalizer_cls = sgk.IdentityKernelNormalizer self._normalizer_cls = normalizer_cls if normalizer_args is None: normalizer_args = [] self._normalizer_args = normalizer_args def _compute(self, d1, d2): d1 = SGKernel._data2features(d1) d2 = SGKernel._data2features(d2) try: order = self.__kp_order__ except AttributeError: # XXX may be we could use param.index to have them sorted? order = self.params.keys() kvals = [self.params[kp].value for kp in order] self._k = self.__kernel_cls__(d1, d2, *kvals) if self._normalizer_cls: self._k.set_normalizer( self._normalizer_cls(*self._normalizer_args)) class CustomSGKernel(_BasicSGKernel): """Class which can wrap any Shogun kernel and it's kernel parameters """ # TODO: rename args here for convenience? def __init__(self, kernel_cls, kernel_params=None, **kwargs): """Initialize CustomSGKernel. Parameters ---------- kernel_cls : Shogun.Kernel Class of a Kernel from Shogun kernel_params : list Each item in this list should be a tuple of (kernelparamname, value), and the order is the explicit order required by the Shogun constructor """ if kernel_params is None: kernel_params = [] self.__kernel_cls__ = kernel_cls # These are normally static _BasicSGKernel.__init__(self, **kwargs) order = [] for k, v in kernel_params: self.params[k] = Parameter(default=v) order.append(k) self.__kp_order__ = tuple(order) class LinearSGKernel(_BasicSGKernel): """A basic linear kernel computed via Shogun: K(a,b) = a*b.T""" __kernel_cls__ = sgk.LinearKernel __kernel_name__ = 'linear' class RbfSGKernel(_BasicSGKernel): """Radial basis function: K(a,b) = exp(-||a-b||**2/sigma)""" __kernel_cls__ = sgk.GaussianKernel __kernel_name__ = 'rbf' sigma = Parameter(1, doc="Width/division parameter for gaussian kernel") def __init__(self, **kwargs): # Necessary for proper docstring construction _BasicSGKernel.__init__(self, **kwargs) class PolySGKernel(_BasicSGKernel): """Polynomial kernel: K(a,b) = (a*b.T + c)**degree c is 1 if and only if 'inhomogenous' is True """ __kernel_cls__ = sgk.PolyKernel __kernel_name__ = 'poly' __kp_order__ = ('degree', 'inhomogenous') degree = Parameter(2, constraints='int', doc="Polynomial order of the kernel") inhomogenous = Parameter(True, constraints='bool', doc="Whether +1 is added within the expression") if not exists('sg ge 0.6.5'): use_normalization = Parameter(False, constraints='bool', doc="Optional normalization") __kp_order__ = __kp_order__ + ('use_normalization',) def __init__(self, **kwargs): # Necessary for proper docstring construction _BasicSGKernel.__init__(self, **kwargs) class PrecomputedSGKernel(SGKernel): """A kernel which is precomputed from a numpy array or a Shogun kernel""" # This class can't be handled directly by BasicSGKernel because it never # should take data, and never has compute called, etc # NB: To avoid storing kernel twice, self.params.matrix = self._k once the # kernel is 'computed' def __init__(self, matrix=None, **kwargs): """Initialize PrecomputedSGKernel Parameters ---------- matrix : SGKernel or Kernel or ndarray Kernel matrix to be used """ # Convert to appropriate kernel for input if isinstance(matrix, SGKernel): k = matrix._k # Take internal shogun elif isinstance(matrix, Kernel): k = matrix.as_raw_np() # Convert to NP otherwise else: # Otherwise SG would segfault ;-) k = np.array(matrix) SGKernel.__init__(self, **kwargs) if versions['shogun:rev'] >= 4455: self._k = sgk.CustomKernel(k) else: raise RuntimeError, \ "Cannot create PrecomputedSGKernel using current version" \ " of shogun -- please upgrade" # Following lines are not effective since we should have # also provided data for CK in those earlier versions #self._k = sgk.CustomKernel() #self._k.set_full_kernel_matrix_from_full(k) def compute(self, *args, **kwargs): """'Compute' `PrecomputedSGKernel` -- no actual "computation" is done """ pass pymvpa2-2.6.4/mvpa2/mappers/000077500000000000000000000000001323370031300156105ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/mappers/__init__.py000066400000000000000000000064421323370031300177270ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Algorithms for (reversible) data transformation. Mappers are objects than can take data, either in a `Dataset`, or plain data arrays, and transform them in some specific way. There are no general limitations on what this transformation might be. it can be as simple as selecting a subset of data (e.g. `StaticFeatureSelection`) or more complex data projection (e.g. `PCAMapper`). Mapping algorithms might be unsupervised or supervised techniques, and any mapper might implement a training step that has to be run before it can be used. .. note:: Classifiers from the `mvpa2.clfs` module could also be considered mappers as well, but they all are supervised, and only provide ND->1D mapping (from data samples onto the target labels), most of the time without the possibility for reverse transformation. Modes Of Operation ================== Training All mappers can be trained by passing a training dataset to their :meth:`~mvpa2.mappers.base.Mapper.train()` method. Mappers that do not need to be trained will silently ignore this call. Mappers do not modify training datasets. Forward-mapping The mapper takes a dataset (or plain data array), transforms it, and returns a new dataset (or data array). Mappers follow a copy-on-write (COW) scheme that only changes/copies data that is modified by the mapper -- all other information will be shared by input and output dataset. If this behavior is not appropriate in a particular case, the input dataset should be copied manually and only the copy should be given to the mapper. Forward-mapping is possible via two different methods: `~mvpa2.mappers.base.Mapper.forward()` takes either a `Dataset`, or an at least two-dimensional data array. In the latter case, the first axis is assumed to separate between samples, as in a dataset. The method will return the transformation result in the same format: either a dataset, or an array with at least two dimensions. `~mvpa2.mappers.base.Mapper.forward1()` on the other hand only takes plain data arrays that have to be of the same shape as a *single* sample in the dataset that the mapper has been trained on. It will also return a plain data array. Reverse-mapping If a mapper supports reversing a transformation, dataset and plain data arrays can be reverse-mapped with the corresponding method. `~mvpa2.mappers.base.Mapper.reverse()` and `~mvpa2.mappers.base.Mapper.reverse1()` behave analogous to the respective forward-mapping functions, and also have the same requirement for their input data. """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.mappers') # do not pull them all -- we have mvpa2.suite for that #from mvpa2.mappers.mask import MaskMapper #from mvpa2.mappers.svd import SVDMapper #from mvpa2.mappers.boxcar import BoxcarMapper #from mvpa2.mappers.array import DenseArrayMapper if __debug__: debug('INIT', 'mvpa2.mappers end') pymvpa2-2.6.4/mvpa2/mappers/base.py000066400000000000000000000443551323370031300171070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Basic, general purpose and meta mappers.""" __docformat__ = 'restructuredtext' import numpy as np import copy from mvpa2.base.learner import Learner from mvpa2.base.node import ChainNode from mvpa2.base.types import is_datasetlike, accepts_dataset_as_samples from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.base.dochelpers import borrowdoc if __debug__: from mvpa2.base import debug, warning def _assure_consistent_a(ds, oshape): """If ds.shape differs from oshape, invoke set_length_check for the corresponding collection """ shape = ds.shape if oshape[0] != shape[0]: ds.sa.set_length_check(shape[0]) if oshape[1] != shape[1]: ds.fa.set_length_check(shape[1]) def _verified_reverse1(mapper, onesample): """Replacement of Mapper.reverse1 with safety net This function can be called instead of a direct call to a mapper's ``reverse1()``. It wraps a single sample into a dummy axis and calls ``reverse()``. Afterwards it verifies that the first axis of the returned array has one item only, otherwise it will issue a warning. This function is useful in any context where it is critical to ensure that reverse mapping a single sample, yields exactly one sample -- which isn't guaranteed due to the flexible nature of mappers. Parameters ---------- mapper : Mapper instance onesample : array-like Single sample (in terms of the supplied mapper). Returns ------- array Shape matches a single sample in terms of the mappers input space. """ dummy_axis_sample = np.asanyarray(onesample)[None] rsample = mapper.reverse(dummy_axis_sample) if not len(rsample) == 1: warning("Reverse mapping single sample yielded multiple -- can lead to unintended behavior!") return rsample[0] class Mapper(Learner): """Basic mapper interface definition. :: forward ---------> IN OUT <--------/ reverse """ def __init__(self, **kwargs): """ Parameters ---------- **kwargs All additional arguments are passed to the baseclass. """ Learner.__init__(self, **kwargs) # internal settings that influence what should be done to the dataset # attributes in the default forward() and reverse() implementations. # they are passed to the Dataset.copy() method self._sa_filter = None self._fa_filter = None self._a_filter = None # # The following methods are abstract and merely define the intended # interface of a mapper and have to be implemented in derived classes. See # the docstrings of the respective methods for details about what they # should do. # def _forward_data(self, data): """Forward-map some data. This is a private method that has to be implemented in derived classes. Parameters ---------- data : anything (supported the derived class) """ raise NotImplementedError def _reverse_data(self, data): """Reverse-map some data. This is a private method that has to be implemented in derived classes. Parameters ---------- data : anything (supported the derived class) """ raise NotImplementedError # # The following methods are candidates for reimplementation in derived # classes, in cases where the provided default behavior is not appropriate. # def _forward_dataset(self, dataset): """Forward-map a dataset. This is a private method that can be reimplemented in derived classes. The default implementation forward-maps the dataset samples and returns a new dataset that is a shallow copy of the input with the mapped samples. Parameters ---------- dataset : Dataset-like """ if __debug__: debug('MAP_', "Forward-map %s-shaped samples in dataset with '%s'." % (dataset.samples.shape, self)) msamples = self._forward_data(dataset.samples) if __debug__: debug('MAP_', "Make shallow copy of to-be-forward-mapped dataset " "and assigned forward-mapped samples ({sf}a_filters: " "%s, %s, %s)." % (self._sa_filter, self._fa_filter, self._a_filter)) mds = dataset.copy(deep=False, sa=self._sa_filter, fa=self._fa_filter, a=self._a_filter) mds.samples = msamples _assure_consistent_a(mds, dataset.shape) if __debug__: debug('MAP_', "Return forward-mapped dataset.") return mds def _reverse_dataset(self, dataset): """Reverse-map a dataset. This is a private method that can be reimplemented in derived classes. The default implementation reverse-maps the dataset samples and returns a new dataset that is a shallow copy of the input with the mapped samples. Parameters ---------- dataset : Dataset-like """ if __debug__: debug('MAP_', "Reverse-map %s-shaped samples in dataset with '%s'." % (dataset.samples.shape, self)) msamples = self._reverse_data(dataset.samples) if __debug__: debug('MAP_', "Make shallow copy of to-be-reverse-mapped dataset " "and assigned reverse-mapped samples ({sf}a_filters: " "%s, %s, %s)." % (self._sa_filter, self._fa_filter, self._a_filter)) mds = dataset.copy(deep=False, sa=self._sa_filter, fa=self._fa_filter, a=self._a_filter) mds.samples = msamples _assure_consistent_a(mds, dataset.shape) return mds # # The following methods provide common functionality for all mappers # and there should be no immediate need to reimplement them # def forward(self, data): """Map data from input to output space. Parameters ---------- data : Dataset-like, (at least 2D)-array-like Typically this is a `Dataset`, but it might also be a plain data array, or even something completely different(TM) that is supported by a subclass' implementation. If such an object is Dataset-like it is handled by a dedicated method that also transforms dataset attributes if necessary. If an array-like is passed, it has to be at least two-dimensional, with the first axis separating samples or observations. For single samples `forward1()` might be more appropriate. """ if is_datasetlike(data): if __debug__: debug('MAP', "Forward-map %s-shaped dataset through '%s'." % (data.shape, self)) return self._forward_dataset(data) else: if hasattr(data, 'ndim') and data.ndim < 2: raise ValueError( 'Mapper.forward() only support mapping of data with ' 'at least two dimensions, where the first axis ' 'separates samples/observations. Consider using ' 'Mapper.forward1() instead.') if __debug__: debug('MAP', "Forward-map data through '%s'." % (self)) return self._forward_data(data) def forward1(self, data): """Wrapper method to map single samples. It is basically identical to `forward()`, but also accepts one-dimensional arguments. The map whole dataset this method cannot be used. but `forward()` handles them. """ if isinstance(data, np.ndarray): data = data[np.newaxis] else: data = np.array([data]) if __debug__: debug('MAP', "Forward-map single %s-shaped sample through '%s'." % (data.shape[1:], self)) return self.forward(data)[0] def reverse(self, data): """Reverse-map data from output back into input space. Parameters ---------- data : Dataset-like, anything Typically this is a `Dataset`, but it might also be a plain data array, or even something completely different(TM) that is supported by a subclass' implementation. If such an object is Dataset-like it is handled by a dedicated method that also transforms dataset attributes if necessary. """ if is_datasetlike(data): if __debug__: debug('MAP', "Reverse-map %s-shaped dataset through '%s'." % (data.shape, self)) return self._reverse_dataset(data) else: if __debug__: debug('MAP', "Reverse-map data through '%s'." % (self)) return self._reverse_data(data) def reverse1(self, data): """Wrapper method to map single samples. It is basically identical to `reverse()`, but accepts one-dimensional arguments. To map whole dataset this method cannot be used. but `reverse()` handles them. """ if isinstance(data, np.ndarray): data = data[np.newaxis] else: data = np.array([data]) if __debug__: debug('MAP', "Reverse-map single %s-shaped sample through '%s'." % (data.shape[1:], self)) mapped = self.reverse(data)[0] if __debug__: debug('MAP', "Mapped single %s-shaped sample to %s." % (data.shape[1:], mapped.shape)) return mapped def _call(self, ds): return self.forward(ds) class ChainMapper(ChainNode): """Class that amends ChainNode with a mapper-like interface. ChainMapper supports sequential training of a mapper chain, as well as reverse-mapping and mapping of single samples. """ def forward(self, ds): return self(ds) def forward1(self, data): """Forward data or datasets through the chain. See `Mapper` for more information. """ mp = data for m in self: if __debug__: debug('MAP', "Forwarding single input (%s) though '%s'." % (mp.shape, str(m))) mp = m.forward1(mp) return mp def reverse(self, data): """Reverse-maps data or datasets through the chain (backwards). See `Mapper` for more information. """ mp = data for m in reversed(self): # we ignore mapper that do not have reverse mapping implemented # (e.g. detrending). That might cause problems if ignoring the # mapper make the data incompatible input for the next mapper in # the chain. If that pops up, we have to think about a proper # solution. try: if __debug__: debug('MAP', "Reversing %s-shaped input though '%s'." % (mp.shape, str(m))) mp = m.reverse(mp) except NotImplementedError: if __debug__: debug('MAP', "Ignoring %s on reverse mapping." % m) return mp def reverse1(self, data): """Reverse-maps data or datasets through the chain (backwards). See `Mapper` for more information. """ mp = data for i, m in enumerate(reversed(self)): # we ignore mapper that do not have reverse mapping implemented # (e.g. detrending). That might cause problems if ignoring the # mapper make the data incompatible input for the next mapper in # the chain. If that pops up, we have to think about a proper # solution. try: if __debug__: debug('MAP', "Reversing single %s-shaped input though chain node '%s'." % (mp.shape, str(m))) mp = m.reverse1(mp) except NotImplementedError: if __debug__: debug('MAP', "Ignoring %s on reverse mapping." % m) except ValueError: if __debug__: debug('MAP', "Failed to reverse-map through chain at '%s'. Maybe " "previous mapper return multiple samples. Trying to " "switch to reverse() for the remainder of the chain." % str(m)) mp = self[:-1 * i].reverse(mp) return mp return mp def train(self, dataset): """Train the mapper chain sequentially. The training dataset is used to train the first mapper. Afterwards it is forward-mapped by this (now trained) mapper and the transformed dataset and then used to train the next mapper. This procedure is done till all mappers are trained. Parameters ---------- dataset: `Dataset` """ nmappers = len(self) - 1 tdata = dataset for i, mapper in enumerate(self): if __debug__: debug('MAP', "Training child mapper (%i/%i) %s with %s-shaped input." % (i + 1, nmappers + 1, str(mapper), tdata.shape)) mapper.train(tdata) # forward through all but the last mapper if i < nmappers: tdata = mapper.forward(tdata) def untrain(self): """Untrain all embedded mappers.""" for m in self: m.untrain() def __str__(self): return super(ChainMapper, self).__str__().replace('Mapper', '') class CombinedMapper(Mapper): """Mapper to pass a dataset on to a set of mappers and combine there output. Output combination or aggregation is currently done by hstacking or vstacking the resulting datasets. """ def __init__(self, mappers, combine_axis, a=None, **kwargs): """ Parameters ---------- mappers : list combine_axis : ['h', 'v'] a: {'unique','drop_nonunique','uniques','all'} or True or False or None (default: None) Indicates which dataset attributes from datasets are stored in merged_dataset. If an int k, then the dataset attributes from datasets[k] are taken. If 'unique' then it is assumed that any attribute common to more than one dataset in datasets is unique; if not an exception is raised. If 'drop_nonunique' then as 'unique', except that exceptions are not raised. If 'uniques' then, for each attribute, any unique value across the datasets is stored in a tuple in merged_datasets. If 'all' then each attribute present in any dataset across datasets is stored as a tuple in merged_datasets; missing values are replaced by None. If None (the default) then no attributes are stored in merged_dataset. True is equivalent to 'drop_nonunique'. False is equivalent to None. Examples -------- >>> import numpy as np >>> from mvpa2.mappers.base import CombinedMapper >>> from mvpa2.featsel.base import StaticFeatureSelection >>> from mvpa2.datasets import Dataset >>> mp = CombinedMapper([StaticFeatureSelection([1,2]), ... StaticFeatureSelection([2,3])], ... combine_axis='h') >>> mp.is_trained = True >>> ds = Dataset(np.arange(12).reshape(3,4)) >>> out = mp(ds) >>> out.samples array([[ 1, 2, 2, 3], [ 5, 6, 6, 7], [ 9, 10, 10, 11]]) """ Mapper.__init__(self, **kwargs) self._mappers = mappers self._combine_axis = combine_axis self._a = a @borrowdoc(Mapper) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CombinedMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['mappers', 'combine_axis', 'a'])) def __str__(self): return _str(self) def _train(self, ds): for mapper in self._mappers: mapper.train(ds) def _untrain(self): for mapper in self._mappers: mapper.untrain() @borrowdoc(Mapper) def _forward_dataset(self, ds): from mvpa2.datasets import hstack, vstack mapped_ds = [mapper.forward(ds) for mapper in self._mappers] stacker = {'h': hstack, 'v': vstack} out = stacker[self._combine_axis](mapped_ds, self._a) return out mappers = property(fget=lambda self:self._mappers) class IdentityMapper(Mapper): """A mapper that performs an identity transformation (i.e. none) Passed data is returned as is for any requested operation. This is a helper that can be useful if a transformation with a mapper is optional, but code needs to be written that is capable of handling arbitrary mappers. """ def __init__(self, **kwargs): # by default auto train kwargs['auto_train'] = kwargs.get('auto_train', True) Mapper.__init__(self, **kwargs) def _train(self, samples): pass def _forward_data(self, data): return data def _forward_dataset(self, dataset): return dataset def forward1(self, data): if __debug__: debug('MAP', "Forward-map sample through '%s'.", (self,)) return data def _reverse_data(self, data): return data def _reverse_dataset(self, dataset): return dataset def reverse1(self, data): if __debug__: debug('MAP', "Reverse-map sample through '%s'.", (self,)) return data pymvpa2-2.6.4/mvpa2/mappers/boxcar.py000066400000000000000000000224101323370031300174370ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Transform consecutive samples into individual multi-dimensional samples""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.mappers.base import Mapper from mvpa2.clfs.base import accepts_dataset_as_samples from mvpa2.base.dochelpers import _str if __debug__: from mvpa2.base import debug class BoxcarMapper(Mapper): """Mapper to combine multiple samples into a single sample. Notes ----- This mapper is somewhat unconventional since it doesn't preserve number of samples (ie the size of 0-th dimension). """ # TODO: extend with the possibility to provide real onset vectors and a # samples attribute that is used to determine the actual sample that # is matching a particular onset. The difference between target onset # and sample could be stored as an additional sample attribute. Some # utility functionality (outside BoxcarMapper) could be used to merge # arbitrary sample attributes into the samples matrix (with # appropriate mapper adjustment, e.g. CombinedMapper). def __init__(self, startpoints, boxlength, offset=0, **kwargs): """ Parameters ---------- startpoints : sequence Index values along the first axis of 'data'. boxlength : int The number of elements after 'startpoint' along the first axis of 'data' to be considered for the boxcar. offset : int The offset between the provided starting point and the actual start of the boxcar. """ Mapper.__init__(self, **kwargs) self._outshape = None startpoints = np.asanyarray(startpoints) if np.issubdtype(startpoints.dtype, 'i'): self.startpoints = startpoints else: if __debug__: debug('MAP', "Boxcar: obtained startpoints are not of int type." " Rounding and changing dtype") self.startpoints = np.asanyarray(np.round(startpoints), dtype='i') # Sanity checks if boxlength < 1: raise ValueError, "Boxlength lower than 1 makes no sense." if boxlength - int(boxlength) != 0: raise ValueError, "boxlength must be an integer value." self.boxlength = int(boxlength) self.offset = offset self.__selectors = None # build a list of list where each sublist contains the indexes of to be # averaged data elements self.__selectors = [ slice(i + offset, i + offset + boxlength) \ for i in startpoints ] def __reduce__(self): # python < 2.6 cannot copy slices, we will use the constructor the get # them back and additionally reapply the stae of the object (except for # the bad bad slices) state = self.__dict__.copy() badguy = '_%s__selectors' % self.__class__.__name__ if badguy in state: del state[badguy] return (self.__class__, (self.startpoints, self.boxlength, self.offset), state) @accepts_dataset_as_samples def _train(self, data): startpoints = self.startpoints boxlength = self.boxlength if __debug__: offset = self.offset for sp in startpoints: if ( sp + offset + boxlength - 1 > len(data)-1 ) \ or ( sp + offset < 0 ): raise ValueError('Illegal box (start: %i, offset: %i, ' 'length: %i) with total input sample being %i.' \ % (sp, offset, boxlength, len(data))) self._outshape = (len(startpoints), boxlength) + data.shape[1:] def __repr__(self): s = super(BoxcarMapper, self).__repr__() return s.replace("(", "(boxlength=%d, offset=%d, startpoints=%s, " % (self.boxlength, self.offset, str(self.startpoints)), 1) def __str__(self): return _str(self, bl=self.boxlength) def forward1(self, data): # if we have a single 'raw' sample (not a boxcar) # extend it to cover the full box -- useful if one # wants to forward map a mask in raw dataspace (e.g. # fMRI ROI or channel map) into an appropriate mask vector if not self._outshape: raise RuntimeError("BoxcarMapper needs to be trained before " ".forward1() can be used.") # first axes need to match if not data.shape[0] == self._outshape[2]: raise ValueError("Data shape %s does not match sample shape %s." % (data.shape[0], self._outshape[2])) return np.vstack([data[np.newaxis]] * self.boxlength) def _forward_data(self, data): """Project an ND matrix into N+1D matrix This method also handles the special of forward mapping a single 'raw' sample. Such a sample is extended (by concatenating clones of itself) to cover a full boxcar. This functionality is only availably after a full data array has been forward mapped once. Returns ------- array: (#startpoint, ...) """ # NOTE: _forward_dataset() relies on the assumption that the following # also works with 1D arrays and still yields sane results return np.vstack([data[box][np.newaxis] for box in self.__selectors]) def _forward_dataset(self, dataset): msamp = self._forward_data(dataset.samples) # make a shallow copy of the dataset, but excluding all sample # and feature attributes, since they need to be transformed anyway mds = dataset.copy(deep=False, sa=[], fa=[]) # assign the new samples and adjust the length check of the collections mds.samples = msamp mds.sa.set_length_check(len(mds)) mds.fa.set_length_check(mds.nfeatures) # map old feature attributes -- which simply get broadcasted along the # boxcar for k in dataset.fa: mds.fa[k] = self.forward1(dataset.fa[k].value) # map old sample attributes -- which simply get stacked into one for all # boxcar elements/samples for k in dataset.sa: # using _forward_data() instead of forward(), since we know that # this implementation can actually deal with 1D-arrays mds.sa[k] = self._forward_data(dataset.sa[k].value) # create the box offset attribute if space name is given if self.get_space(): mds.fa[self.get_space() + '_offsetidx'] = np.arange(self.boxlength, dtype='int') mds.sa[self.get_space() + '_onsetidx'] = self.startpoints.copy() return mds def reverse1(self, data): if __debug__: if not data.shape == self._outshape[1:]: raise ValueError("BoxcarMapper has not been train to " "reverse-map %s-shaped data, but %s." % (data.shape, self._outshape[1:])) # reimplemented since it is really only that return data def _reverse_data(self, data): if len(data.shape) < 2: # this is not something that this mapper created -- let's broadcast # its elements and hope that it would work return np.repeat(data, self.boxlength) # stack them all together -- this will cause overlapping boxcars to # result in multiple identical samples if not data.shape[1] == self.boxlength: # stacking doesn't make sense, since we got something strange raise ValueError("%s cannot reverse-map, since the number of " "elements along the second axis (%i) does not " "match the boxcar-length (%i)." % (self.__class__.__name__, data.shape[1], self.boxlength)) return np.concatenate(data) def _reverse_dataset(self, dataset): msamp = self._reverse_data(dataset.samples) # make a shallow copy of the dataset, but excluding all sample # and feature attributes, since they need to be transformed anyway mds = dataset.copy(deep=False, sa=[], fa=[]) mds.samples = msamp mds.sa.set_length_check(len(mds)) mds.fa.set_length_check(mds.nfeatures) # map old feature attributes -- which simply is taken the first one # and kill the inspace attribute, since it inspace = self.get_space() for k in dataset.fa: if inspace is None or k != (inspace + '_offsetidx'): mds.fa[k] = dataset.fa[k].value[0] # reverse-map old sample attributes for k in dataset.sa: if inspace is None or k != (inspace + '_onsetidx'): mds.sa[k] = self._reverse_data(dataset.sa[k].value) return mds pymvpa2-2.6.4/mvpa2/mappers/detrend.py000066400000000000000000000360611323370031300176150ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Polynomial de-trending and regression.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.types import is_sequence_type from mvpa2.base import externals if externals.exists('scipy', raise_=True): # if we construct the polynomials ourselves, we wouldn't need scipy here from scipy.special import legendre def legendre_(n, x): """Helper to avoid problems with scipy 0.8.0 returning inf for -1 Scipy 0.8.0 (and possibly later) has regression of reporting 'inf's for negative boundary. Lets guard against it for now """ leg = legendre(n) r = leg(x) infs = np.isinf(r) if np.any(infs): r[infs] = leg(x[infs] + 1e-10) # offset to try to overcome problems return r from mvpa2.base.dochelpers import _str, borrowkwargs from mvpa2.mappers.base import Mapper from ..base.param import Parameter from ..base import constraints as cts class PolyDetrendMapper(Mapper): """Mapper for regression-based removal of polynomial trends. Noteworthy features are the possibility for chunk-wise detrending, optional regressors, and the ability to use positional information about the samples from the dataset. Any sample attribute from the to be mapped dataset can be used to define `chunks` that shall be detrended separately. The number of chunks is determined from the number of unique values of the attribute and all samples with the same value are considered to be in the same chunk. It is possible to provide a list of additional sample attribute names that will be used as confound regressors during detrending. This, for example, allows to use fMRI motion correction parameters to be considered. Finally, it is possible to use positional information about the dataset samples for the detrending. This is useful, for example, if the samples in the dataset are not equally spaced out over the acquisition time-window. In that case an actually linear trend in the data would be distorted and not properly removed. By setting the `inspace` argument to the name of a samples attribute that carries this information, the mapper will take this into account and shift the polynomials accordingly. If `inspace` is given, but the dataset doesn't contain such an attribute evenly spaced coordinates are generated and this information is stored in the mapped dataset. Notes ----- The mapper only support mapping of datasets, not plain data. Moreover, reverse mapping, or subsequent forward-mapping of partial datasets are currently not implemented. Examples -------- >>> from mvpa2.datasets import dataset_wizard >>> from mvpa2.mappers.detrend import PolyDetrendMapper >>> samples = np.array([[1.0, 2, 3, 3, 2, 1], ... [-2.0, -4, -6, -6, -4, -2]]).T >>> chunks = [0, 0, 0, 1, 1, 1] >>> ds = dataset_wizard(samples, chunks=chunks) >>> dm = PolyDetrendMapper(chunks_attr='chunks', polyord=1) >>> # the mapper will be auto-trained upon first use >>> mds = dm.forward(ds) >>> # total removal all all (chunk-wise) linear trends >>> np.sum(np.abs(mds)) < 0.00001 True """ polyord = Parameter(1, doc= """Order of the Legendre polynomial to remove from the data. This will remove every polynomial up to and including the provided value. For example, 3 will remove 0th, 1st, 2nd, and 3rd order polynomials from the data. np.B.: The 0th polynomial is the baseline shift, the 1st is the linear trend. If you specify a single int and the `chunks_attr` parameter is not None, then this value is used for each chunk. You can also specify a different polyord value for each chunk by providing a list or ndarray of polyord values with the length equal to the number of chunks.""", constraints=cts.AltConstraints(cts.EnsureInt())) chunks_attr = Parameter(None, doc= """If None, the whole dataset is detrended at once. Otherwise, the given samples attribute (given by its name) is used to define chunks of the dataset that are processed individually. In that case, all the samples within a chunk should be in contiguous order and the chunks should be sorted in order from low to high -- unless the dataset provides information about the coordinate of each sample in the space that should be spanned be the polynomials (see `space` argument).""", constraints=cts.AltConstraints(None, cts.EnsureStr())) opt_regs = Parameter(None, doc= """List of sample attribute names that should be used as additional regressors. An example use would be to regress out motion parameters.""", constraints=cts.AltConstraints(None, cts.EnsureListOf(str))) def __init__(self, polyord=1, chunks_attr=None, opt_regs=None, **kwargs): """ Parameters ---------- space : str or None If not None, a samples attribute of the same name is added to the mapped dataset that stores the coordinates of each sample in the space that is spanned by the polynomials. If an attribute of that name is already present in the input dataset its values are interpreted as sample coordinates in the space that should be spanned by the polynomials. """ # keep param init for historical reasons self.params.chunks_attr = chunks_attr self.params.polyord = polyord self.params.opt_regs = opt_regs # things that come from train() self._polycoords = None self._regs = None # secret switch to perform in-place detrending self._secret_inplace_detrend = False # need to init last to prevent base class puking Mapper.__init__(self, **kwargs) def __repr__(self): s = super(PolyDetrendMapper, self).__repr__() return s.replace("(", "(polyord=%i, chunks_attr=%s, opt_regs=%s, " % (self.params.polyord, repr(self.params.chunks_attr), repr(self.params.opt_regs)), 1) def __str__(self): return _str(self, ord=self.params.polyord) def _scale_array(self, a): # scale an array into the interval [-1,1] using its min and max values # as input range return a / ((a.max() - a.min()) / 2) - 1 def _get_polycoords(self, ds, chunk_slicer): """Compute human-readable and scaled polycoords. Parameters ---------- ds : dataset chunk_slicer : boolean array True elements indicate samples selected for detrending. Returns ------- tuple (real-world polycoords, scaled polycoords into [-1,1]) """ inspace = self.get_space() if chunk_slicer is None: nsamples = len(ds) else: nsamples = chunk_slicer.sum() # if we don't have to take care of an inspace thing are easy if inspace is None: polycoords_scaled = np.linspace(-1, 1, nsamples) return None, polycoords_scaled else: # there is interest in the inspace, but do we have information, or # just want to store it later on if inspace in ds.sa: # we have info if chunk_slicer is None: chunk_slicer = slice(None) polycoords = ds.sa[inspace].value[chunk_slicer] else: # no info in the dataset, just be nice and generate some # meaningful polycoords polycoords = np.arange(nsamples) return polycoords, self._scale_array(polycoords.astype('float')) def _train(self, ds): # local binding chunks_attr = self.params.chunks_attr polyord = self.params.polyord opt_reg = self.params.opt_regs inspace = self.get_space() self._polycoords = None # global detrending is desired if chunks_attr is None: # consider the entire dataset reg = [] # create the timespan self._polycoords, polycoords_scaled = self._get_polycoords(ds, None) for n in range(polyord + 1): reg.append(legendre_(n, polycoords_scaled)[:, np.newaxis]) # chunk-wise detrending is desired else: # get the unique chunks uchunks = ds.sa[chunks_attr].unique # Process the polyord to be a list with length of the number of # chunks if not is_sequence_type(polyord): # repeat to be proper length polyord = [polyord] * len(uchunks) elif chunks_attr is not None and len(polyord) != len(uchunks): raise ValueError("If you specify a sequence of polyord values " "they sequence length must match the " "number of unique chunks in the dataset.") # loop over each chunk reg = [] update_polycoords = True # if the dataset know about the inspace we can store the # polycoords right away if inspace is not None and inspace in ds.sa: self._polycoords = ds.sa[inspace].value update_polycoords = False else: # otherwise we prepare and empty array that is going to be # filled below -- we know that those polycoords are going to # be ints self._polycoords = np.empty(len(ds), dtype='int') for n, chunk in enumerate(uchunks): # get the indices for that chunk cinds = ds.sa[chunks_attr].value == chunk # create the timespan polycoords, polycoords_scaled = self._get_polycoords(ds, cinds) if update_polycoords and polycoords is not None: self._polycoords[cinds] = polycoords # create each polyord with the value for that chunk for n in range(polyord[n] + 1): newreg = np.zeros((len(ds), 1)) newreg[cinds, 0] = legendre_(n, polycoords_scaled) reg.append(newreg) # if we don't handle in inspace, there is no need to store polycoords if inspace is None: self._polycoords = None # see if add in optional regs if opt_reg is not None: # add in the optional regressors, too for oreg in opt_reg: reg.append(ds.sa[oreg].value[np.newaxis].T) # combine the regs (time x reg) self._regs = np.hstack(reg) def _forward_dataset(self, ds): # auto-train the mapper if not yet done if self._regs is None: self.train(ds) if self._secret_inplace_detrend: mds = ds else: # shallow copy to put the new stuff in mds = ds.copy(deep=False) # local binding regs = self._regs inspace = self.get_space() polycoords = self._polycoords # is it possible to map that dataset? if inspace is None and len(regs) != len(ds): raise ValueError("Cannot detrend the dataset, since it neither " "provides location information of its samples " "in the space spanned by the polynomials, " "nor does it match the number of samples this " "this mapper has been trained on. (got: %i " " and was trained on %i)." % (len(ds), len(regs))) # do we have to handle the polynomial space somehow? if inspace is not None: if inspace in ds.sa: space_coords = ds.sa[inspace].value # this dataset has some notion about our polyspace # we need to put the right regressor values for its samples # let's first see whether the coords are identical to the # trained ones (that should be the common case and nothing needs # to be done # otherwise look whether we can find the right regressors if not np.all(space_coords == polycoords): # to make the stuff below work, we'd need to store chunk # info too, otherwise we cannot determine the correct # regressor rows raise NotImplementedError # determine the regressor rows that match the samples reg_idx = [np.argwhere(polycoords == c).flatten()[0] for c in space_coords] # slice the regressors accordingly regs = regs[reg_idx] else: # the input dataset knows nothing about the polyspace # let's put that information into the output dataset mds.sa[inspace] = self._polycoords # regression for each feature fit = np.linalg.lstsq(regs, ds.samples) # actually we are only interested in the solution # res[0] is (nregr x nfeatures) y = fit[0] # remove all and keep only the residuals if self._secret_inplace_detrend: # if we are in evil mode do evil # cast the data to float, since in-place operations below do not # upcast! if np.issubdtype(mds.samples.dtype, np.integer): mds.samples = mds.samples.astype('float') mds.samples -= np.dot(regs, y) else: # important to assign to ensure COW behavior mds.samples = ds.samples - np.dot(regs, y) return mds def _forward_data(self, data): raise RuntimeError("%s cannot map plain data." % self.__class__.__name__) @borrowkwargs(PolyDetrendMapper, '__init__') def poly_detrend(ds, **kwargs): """In-place polynomial detrending. This function behaves identical to the `PolyDetrendMapper`. The only difference is that the actual detrending is done in-place -- potentially causing a significant reduction of the memory demands. Parameters ---------- ds : Dataset The dataset that will be detrended in-place. **kwargs For all other arguments, please see the documentation of PolyDetrendMapper. """ dm = PolyDetrendMapper(**kwargs) dm._secret_inplace_detrend = True # map mapped = dm.forward(ds) # and append the mapper to the dataset mapped._append_mapper(dm) pymvpa2-2.6.4/mvpa2/mappers/filters.py000066400000000000000000000242271323370031300176410ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Spectral filtering and FFT-based resampling.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals if externals.exists('scipy', raise_=True): from scipy.signal import resample from mvpa2.support.scipy.signal import filtfilt from mvpa2.base import warning from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureChoice, EnsureInt, EnsureNone from mvpa2.base.dochelpers import _str, borrowkwargs from mvpa2.mappers.base import Mapper from mvpa2.datasets import Dataset from mvpa2.base.dataset import vstack from mvpa2.generators.splitters import Splitter class FFTResampleMapper(Mapper): """Mapper for FFT-based resampling. Can do per-chunk. Supports positional information of samples and outputs them as sample attribute. however, only meaningful for data with equally spaced sampling points. Pretty much Mapper frontend for scipy.signal.resample """ def __init__(self, num, window=None, chunks_attr=None, position_attr=None, attr_strategy='remove', **kwargs): """ Parameters ---------- num : int Number of output samples. If operating on chunks, this is the number of samples per chunk. window : str or float or tuple Passed to scipy.signal.resample chunks_attr : str or None If not None, this samples attribute defines chunks that will be resampled individually. position_attr : str A samples attribute with positional information that is passed to scipy.signal.resample. If not None, the output dataset will also contain a sample attribute of this name, with updated positional information (this is, however, only meaningful for equally spaced samples). attr_strategy : {'remove', 'sample', 'resample'} Strategy to process sample attributes during mapping. 'remove' will cause all sample attributes to be removed. 'sample' will pick orginal attribute values matching the new resampling frequency (e.g. every 10th), and 'resample' will also apply the actual data resampling procedure to the attributes as well (which might not be possible, e.g. for literal attributes). """ Mapper.__init__(self, **kwargs) self.__num = num self.__window_args = window self.__chunks_attr = chunks_attr self.__position_attr = position_attr self.__attr_strategy = attr_strategy def __repr__(self): s = super(FFTResamplemapper, self).__repr__() return s.replace("(", "(chunks_attr=%s, " % (repr(self.__chunks_attr),), 1) def __str__(self): return _str(self, chunks_attr=self.__chunks_attr) def _forward_data(self, data): # we cannot have position information without a dataset return resample(data, self.__num, t=None, window=self.__window_args) def _forward_dataset(self, ds): if self.__chunks_attr is None: return self._forward_dataset_helper(ds) else: # strip down dataset to speedup local processing if self.__attr_strategy == 'remove': keep_sa = [] else: keep_sa = None proc_ds = ds.copy(deep=False, sa=keep_sa, fa=[], a=[]) # process all chunks individually # use a customsplitter to speed-up splitting spl = Splitter(self.__chunks_attr) dses = [self._forward_dataset_helper(d) for d in spl.generate(proc_ds)] # and merge them again mds = vstack(dses) # put back attributes mds.fa.update(ds.fa) mds.a.update(ds.a) return mds def _forward_dataset_helper(self, ds): # local binding num = self.__num pos = None if self.__position_attr is not None: # we know something about sample position pos = ds.sa[self.__position_attr].value rsamples, pos = resample(ds.samples, self.__num, t=pos, window=self.__window_args) else: # we know nothing about samples position rsamples = resample(ds.samples, self.__num, t=None, window=self.__window_args) # new dataset that reuses that feature and dataset attributes of the # source mds = Dataset(rsamples, fa=ds.fa, a=ds.a) # the tricky part is what to do with the samples attributes, since their # number has changes if self.__attr_strategy == 'remove': # nothing to be done pass elif self.__attr_strategy == 'sample': step = int(len(ds) / num) sa = dict([(k, ds.sa[k].value[0::step][:num]) for k in ds.sa]) mds.sa.update(sa) elif self.__attr_strategy == 'resample': # resample the attributes themselves sa = {} for k in ds.sa: v = ds.sa[k].value if pos is None: sa[k] = resample(v, self.__num, t=None, window=self.__window_args) else: if k == self.__position_attr: # position attr will be handled separately at the end continue sa[k] = resample(v, self.__num, t=pos, window=self.__window_args)[0] # inject them all mds.sa.update(sa) else: raise ValueError("Unkown attribute handling strategy '%s'." % self.__attr_strategy) if pos is not None: # we got the new sample positions and can store them mds.sa[self.__position_attr] = pos return mds @borrowkwargs(FFTResampleMapper, '__init__') def fft_resample(ds, num, **kwargs): """FFT-based resampling. Parameters ---------- ds : Dataset **kwargs For all other arguments, please see the documentation of FFTResampleMapper. """ dm = FFTResampleMapper(num, **kwargs) return dm.forward(ds) class IIRFilterMapper(Mapper): """Mapper using IIR filters for data transformation. This mapper is able to perform any IIR-based low-pass, high-pass, or band-pass frequency filtering. This is a front-end for SciPy's filtfilt(), hence its usage looks almost exactly identical, and any of SciPy's IIR filters can be used with this mapper: >>> from scipy import signal >>> b, a = signal.butter(8, 0.125) >>> mapper = IIRFilterMapper(b, a, padlen=150) """ axis = Parameter(0, constraints='int', doc="""The axis of `x` to which the filter is applied. By default the filter is applied to all features along the samples axis""") padtype = Parameter('odd', constraints=EnsureChoice('odd', 'even', 'constant') | EnsureNone(), doc="""Must be 'odd', 'even', 'constant', or None. This determines the type of extension to use for the padded signal to which the filter is applied. If `padtype` is None, no padding is used. The default is 'odd'""") padlen = Parameter(None, constraints=EnsureInt() | EnsureNone(), doc="""The number of elements by which to extend `x` at both ends of `axis` before applying the filter. This value must be less than `x.shape[axis]-1`. `padlen=0` implies no padding. The default value is 3*max(len(a),len(b))""") def __init__(self, b, a, **kwargs): """ All constructor parameters are analogs of filtfilt() or are passed on to the Mapper base class. Parameters ---------- b : (N,) array_like The numerator coefficient vector of the filter. a : (N,) array_like The denominator coefficient vector of the filter. If a[0] is not 1, then both a and b are normalized by a[0]. """ Mapper.__init__(self, auto_train=True, **kwargs) self.__iir_num = b self.__iir_denom = a def _forward_data(self, data): params = self.params try: mapped = filtfilt(self.__iir_num, self.__iir_denom, data, axis=params.axis, padtype=params.padtype, padlen=params.padlen) except TypeError: # we have an ancient scipy, do manually # but is will only support 2d arrays if params.axis == 0: data = data.T if params.axis > 1: raise ValueError("this version of scipy does not " "support nd-arrays for filtfilt()") if not (params['padlen'].is_default and params['padtype'].is_default): warning("this version of scipy.signal.filtfilt() does not " "support `padlen` and `padtype` arguments -- ignoring " "them") mapped = [filtfilt(self.__iir_num, self.__iir_denom, x) for x in data] mapped = np.array(mapped) if params.axis == 0: mapped = mapped.T return mapped @borrowkwargs(IIRFilterMapper, '__init__') def iir_filter(ds, *args, **kwargs): """IIR-based frequency filtering. Parameters ---------- ds : Dataset **kwargs For all other arguments, please see the documentation of IIRFilterMapper. """ dm = IIRFilterMapper(*args, **kwargs) return dm.forward(ds) pymvpa2-2.6.4/mvpa2/mappers/flatten.py000066400000000000000000000421161323370031300176230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Flatten multi-dimensional samples""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.mappers.base import Mapper, accepts_dataset_as_samples, \ ChainMapper, _verified_reverse1 from mvpa2.featsel.base import StaticFeatureSelection from mvpa2.misc.support import is_in_volume if __debug__: from mvpa2.base import debug, warning class FlattenMapper(Mapper): """Reshaping mapper that flattens multidimensional arrays into 1D vectors. This mapper performs relatively cheap reshaping of arrays from ND into 1D and back upon reverse-mapping. The mapper has to be trained with a data array or dataset that has the first axis as the samples-separating dimension. Mapper training will set the particular multidimensional shape the mapper is transforming into 1D vector samples. The setting remains in place until the mapper is retrained. Notes ----- At present this mapper is only designed (and tested) to work with C-ordered arrays. """ def __init__(self, shape=None, maxdims=None, **kwargs): """ Parameters ---------- shape : tuple The shape of a single sample. If this argument is given the mapper is going to be fully configured and no training is necessary anymore. maxdims : int or None The maximum number of dimensions to flatten (starting with the first). If None, all axes will be flattened. """ # by default auto train kwargs['auto_train'] = kwargs.get('auto_train', True) Mapper.__init__(self, **kwargs) self.__origshape = None # pylint pacifier self.__maxdims = maxdims if shape is not None: self._train_with_shape(shape) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(FlattenMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['shape', 'maxdims'])) def __str__(self): return _str(self) @accepts_dataset_as_samples def _train(self, samples): """Train the mapper. Parameters ---------- samples : array-like The first axis has to represent the samples-separating dimension. In case of a 1D-array each element is considered to be an individual element and *not* the whole array as a single sample! """ self._train_with_shape(samples.shape[1:]) def _train_with_shape(self, shape): """Configure the mapper with a particular sample shape. """ # infer the sample shape from the data under the assumption that the # first axis is the samples-separating dimension self.__origshape = shape # flag the mapper as trained self._set_trained() def _forward_data(self, data): # this method always gets data where the first axis is the samples axis! # local binding nsamples = data.shape[0] sshape = data.shape[1:] oshape = self.__origshape if oshape is None: raise RuntimeError("FlattenMapper needs to be trained before it " "can be used.") # at least the first feature axis has to match match if oshape[0] != sshape[0]: raise ValueError("FlattenMapper has not been trained for data " "shape '%s' (known only '%s')." % (str(sshape), str(oshape))) ## input matches the shape of a single sample #if sshape == oshape: # return data.reshape(nsamples, -1) ## the first part of the shape matches (e.g. some additional axes present) #elif sshape[:len(oshape)] == oshape: if self.__maxdims is not None: maxdim = min(len(oshape), self.__maxdims) else: maxdim = len(oshape) # flatten the pieces the mapper knows about and preserve the rest return data.reshape((nsamples, -1) + sshape[maxdim:]) def _forward_dataset(self, dataset): # invoke super class _forward_dataset, this calls, _forward_dataset # and this calls _forward_data in this class mds = super(FlattenMapper, self)._forward_dataset(dataset) # attribute collection needs to have a new length check mds.fa.set_length_check(mds.nfeatures) # we need to duplicate all existing feature attribute, as each original # feature is now spread across the new feature axis # take all "additional" axes after the actual feature axis and count # elements a sample -- if not axis exists this will be 1 for k in dataset.fa: if __debug__: debug('MAP_', "Forward-mapping fa '%s'." % k) attr = dataset.fa[k].value # the maximmum number of axis to flatten in the attr if self.__maxdims is not None: maxdim = min(len(self.__origshape), self.__maxdims) else: maxdim = len(self.__origshape) multiplier = mds.nfeatures \ / np.prod(attr.shape[:maxdim]) if __debug__: debug('MAP_', "Broadcasting fa '%s' %s %d times" % (k, attr.shape, multiplier)) # broadcast as many times as necessary to get 'matching dimensions' bced = np.repeat(attr, multiplier, axis=0) # now reshape as many dimensions as the mapper knows about mds.fa[k] = bced.reshape((-1,) + bced.shape[maxdim:]) # if there is no inspace return immediately if self.get_space() is None: return mds # otherwise create the coordinates as feature attributes else: mds.fa[self.get_space()] = \ list(np.ndindex(dataset.samples[0].shape)) return mds def _reverse_data(self, data): # this method always gets data where the first axis is the samples axis! # local binding nsamples = data.shape[0] sshape = data.shape[1:] oshape = self.__origshape return data.reshape((nsamples,) + oshape + sshape[1:]) def _reverse_dataset(self, dataset): # invoke super class _reverse_dataset, this calls, _reverse_dataset # and this calles _reverse_data in this class mds = super(FlattenMapper, self)._reverse_dataset(dataset) # attribute collection needs to have a new length check mds.fa.set_length_check(mds.nfeatures) # now unflatten all feature attributes inspace = self.get_space() for k in mds.fa: # reverse map all attributes, but not the inspace indices, since the # did not come through this mapper and make not sense in inspace if k != inspace: mds.fa[k] = _verified_reverse1(self, mds.fa[k].value) # wipe out the inspace attribute -- needs to be done after the loop to # not change the size of the dict if inspace and inspace in mds.fa: del mds.fa[inspace] return mds shape = property(fget=lambda self:self.__origshape) maxdims = property(fget=lambda self:self.__maxdims) class ProductFlattenMapper(FlattenMapper): """Reshaping mapper that flattens multidimensional arrays and preserves information for each dimension in feature attributes Notes ----- This class' name contains 'product' because it maps feature attributes in a cartesian-product way.""" def __init__(self, factor_names, factor_values=None, **kwargs): ''' Parameters ---------- factor_names: iterable The names for each dimension. If the dataset to be flattened is shaped ns X nf1 x nf2 x ... x nfN, then factor_names should have a length of N. Furthermore when applied to a dataset ds, it should have each of the factor names factor_names[K] as an attribute and the value of this attribute should have nfK values. Applying this mapper to such a dataset yields a new dataset with size ns X (nf1 * nf2 * ... * nfN) with feature attributes nameK and nameKindices for each nameK in the factor names. factor_values: iterable or None Optionally the factor values for each dimension. If not provided or set to None, then it will be inferred upon training on a dataset. Setting this parameter explicitly means this instance does not have to be trained. ''' kwargs['auto_train'] = kwargs.get('auto_train', True) # make sure the factor names and values are properly set factor_names = list(factor_names) # override default value for space argument space = kwargs.get('space', None) if kwargs.get('space', None) is None: kwargs['space'] = '_'.join(factor_names) + '_indices' super(ProductFlattenMapper, self).__init__(**kwargs) self._factor_names = factor_names if factor_values is not None: if len(factor_values) != len(factor_names): raise ValueError('factor_values must have %d elements, ' 'found %d' % (len(factor_names), len(factor_names))) self._factor_values = factor_values def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(ProductFlattenMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['factor_names', 'factor_values'])) @property def factor_names(self): return self._factor_names @property def factor_values(self): return self._factor_values def _train(self, ds): super(ProductFlattenMapper, self)._train(ds) self._factor_values = [] for nm in self._factor_names: if not nm in ds.a.keys(): raise KeyError("Missing attribute: %s" % nm) self._factor_values.append(ds.a[nm].value) def _untrain(self): self._factor_values = None def _check_factor_name_values(self, ds): ### currently unished... self._check_is_trained() for nm, value in zip(*(self._factor_names, self._factor_values)): if any(ds.a[nm].value != value): raise ValueError("Mismatch for attribute %s: %s != %s" % (nm, value, ds.a[nm].value)) def _forward_dataset(self, dataset): self._train(dataset) mds = super(ProductFlattenMapper, self)._forward_dataset(dataset) oshape = self.shape factor_names_values = zip(*(self._factor_names, self._factor_values)) # now map all the factor names and values to feature attributes for i, (name, value) in enumerate(factor_names_values): # keep track of both the value itself and the indices for repr, postfix in ((value, None), (np.arange(len(value)), '_indices')): nshape = [1] + list(oshape) # full shape with one sample nshape[i + 1] = 1 # dimension of current factor # shape for repr with 1 value at all dimensions except the # current one. In other words nshapa and ushape complement # each other. ushape = [1] * len(nshape) ushape[i + 1] = len(value) # reshape and tile repr_rs = np.reshape(np.asarray(repr), ushape) repr_arr = np.tile(repr_rs, nshape) # ensure that values have the proper shape if repr_arr.shape[1:] != oshape: raise ValueError("Shape mismatch: %s != %s - this should" " not happen" % ((repr_arr.shape,), (oshape,))) # flatten the attributes repr_flat = self.forward(repr_arr) # assigne as feature attribute fa_label = name if postfix is None else name + postfix mds.fa[fa_label] = repr_flat.ravel() del mds.a[name] return mds def _check_is_trained(self): if self._factor_values is None or self.shape is None: raise ValueError("Dataset is not trained, and factor_values not " "given in constructor of %s" % self.__class__.__name__) def _reverse_dataset(self, dataset): self._check_is_trained() factor_names_values = zip(*(self._factor_names, self._factor_values)) mds = super(ProductFlattenMapper, self)._reverse_dataset(dataset) postfix = '_indices' for name, _ in factor_names_values: label = name + postfix if label in mds.fa: del mds.fa[label] for nm, values in factor_names_values: #:self._get_reversed_factor_name_values(mds): if nm in mds.a.keys() and any(mds.a[nm].value != values): raise ValueError("name clash for %s" % nm) del mds.fa[nm] mds.a[nm] = values return mds def _get_reversed_factor_name_values(self, reversed_dataset): '''Helper function to trace back the original names and values after the mapper reversed a dataset. Parameters ---------- reversed_dataset: Dataset The instance that was reversed using this instance Returns ------- factor_names_values: iterable The names and values for each dimension. If the reversed_dataset is shaped ns X nf1 x nf2 x ... x nfN, then factor_names_values will have a length of N. Furthermore the K-th element in factor_names_values is a tuple (nameK, valueK) where nameK is a string and valueK has length nfK. Notes ----- It is not guaranteed that the order of valueK matches the corresponding element in self.factor_names_values that was supplied to the __init__ method ''' output_factor_names = [] factor_names_values = zip(*(self._factor_names, self._factor_values)) for dim, (name, values) in enumerate(factor_names_values): vs = reversed_dataset.fa[name].value if dim > 0: vs = vs.swapaxes(0, dim) n = vs.shape[0] assert(n == len(values)) unq_vs = [] for i in xrange(n): v = vs[i, ...] unq_v = np.unique(v) assert(unq_v.size == 1) assert(unq_v in values) unq_vs.append(unq_v) output_factor_names.append((name, np.asarray(unq_vs).ravel())) return output_factor_names def mask_mapper(mask=None, shape=None, space=None): """Factory method to create a chain of Flatten+StaticFeatureSelection Mappers Parameters ---------- mask : None or array an array in the original dataspace and its nonzero elements are used to define the features included in the dataset. Alternatively, the `shape` argument can be used to define the array dimensions. shape : None or tuple The shape of the array to be mapped. If `shape` is provided instead of `mask`, a full mask (all True) of the desired shape is constructed. If `shape` is specified in addition to `mask`, the provided mask is extended to have the same number of dimensions. inspace Provided to `FlattenMapper` """ if mask is None: if shape is None: raise ValueError, \ "Either `shape` or `mask` have to be specified." else: # make full dataspace mask if nothing else is provided mask = np.ones(shape, dtype='bool') else: if shape is not None: # expand mask to span all dimensions but first one # necessary e.g. if only one slice from timeseries of volumes is # requested. mask = np.array(mask, copy=False, subok=True, ndmin=len(shape)) # check for compatibility if not shape == mask.shape: raise ValueError, \ "The mask dataspace shape %s is not " \ "compatible with the provided shape %s." \ % (mask.shape, shape) fm = FlattenMapper(shape=mask.shape, space=space) flatmask = fm.forward1(mask) mapper = ChainMapper([fm, StaticFeatureSelection( flatmask, dshape=flatmask.shape, oshape=(len(flatmask.nonzero()[0]),))]) return mapper pymvpa2-2.6.4/mvpa2/mappers/fx.py000066400000000000000000000576071323370031300166160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Transform data by applying a function along samples or feature axis.""" __docformat__ = 'restructuredtext' import numpy as np import inspect from mvpa2.base import warning from mvpa2.base.node import Node from mvpa2.base.param import Parameter from mvpa2.base.constraints import * from mvpa2.datasets import Dataset from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.mappers.base import Mapper from mvpa2.misc.support import array_whereequal from mvpa2.base.dochelpers import borrowdoc from mvpa2.misc.transformers import sum_of_abs, max_of_abs, subtract_mean if __debug__: from mvpa2.base import debug class FxMapper(Mapper): """Apply a custom transformation to (groups of) samples or features. """ is_trained = True """Indicate that this mapper is always trained.""" def __init__(self, axis, fx, fxargs=None, uattrs=None, attrfx='merge', order='uattrs'): """ Parameters ---------- axis : {'samples', 'features'} fx : callable fxargs : tuple Passed as *args to ``fx`` uattrs : list List of attribute names to consider. All possible combinations of unique elements of these attributes are used to determine the sample groups to operate on. attrfx : callable Functor that is called with each sample attribute elements matching the respective samples group. By default the unique value is determined. If the content of the attribute is not uniform for a samples group a unique string representation is created. If `None`, attributes are not altered. order : {'uattrs', 'occurrence', None} If which order groups should be merged together. If `None` (default before 2.3.1), the order is imposed only by the order of `uattrs` as keys in the dictionary, thus can vary from run to run. If `'occurrence'`, groups will be ordered by the first occurrence of group samples in original dataset. If `'uattrs'`, groups will be sorted by the values of uattrs with follow-up attr having higher importance for ordering (e .g. `uattrs=['targets', 'chunks']` would order groups first by `chunks` and then by `targets` within each chunk). """ Mapper.__init__(self) if not axis in ['samples', 'features']: raise ValueError("%s `axis` arguments can only be 'samples' or " "'features' (got: '%s')." % repr(axis)) self.__axis = axis self.__uattrs = uattrs self.__fx = fx if fxargs is not None: self.__fxargs = fxargs else: self.__fxargs = () if attrfx == 'merge': self.__attrfx = _uniquemerge2literal else: self.__attrfx = attrfx assert(order in (None, 'uattrs', 'occurrence')) self.__order = order @borrowdoc(Mapper) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(FxMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['axis', 'fx', 'uattrs']) + _repr_attrs(self, ['fxargs'], default=()) + _repr_attrs(self, ['attrfx'], default='merge') + _repr_attrs(self, ['order'], default='uattrs') ) def __str__(self): return _str(self, fx=self.__fx.__name__) def _train(self, ds): # right now it needs no training, if anything is added here make sure to # remove is_trained class attribute pass def __smart_apply_along_axis(self, data): # because apply_along_axis could be very much slower than a # direct invocation of native functions capable of operating # along specific axis, let's make it smarter for those we know # could do that. fx = None naxis = {'samples': 0, 'features': 1}[self.__axis] try: # if first argument is 'axis' -- just proceed with a native call if inspect.getargs(self.__fx.__code__).args[1] == 'axis': fx = self.__fx elif __debug__: debug('FX', "Will apply %s via apply_along_axis", (self.__fx)) except Exception, e: if __debug__: debug('FX', "Failed to deduce either %s has 'axis' argument: %s", (self.__fx, repr(e))) pass if fx is not None: if __debug__: debug('FX', "Applying %s directly to data giving axis=%d", (self.__fx, naxis)) mdata = fx(data, naxis, *self.__fxargs) else: # either failed to deduce signature or just didn't # have 'axis' second # apply fx along naxis for each sample/feature mdata = np.apply_along_axis(self.__fx, naxis, data, *self.__fxargs) assert(mdata.ndim in (data.ndim, data.ndim-1)) return mdata @borrowdoc(Mapper) def _forward_data(self, data): if self.__uattrs is not None: raise RuntimeError("%s does not support forward-mapping of plain " "data when data grouping based on attributes " "is requested" % self.__class__.__name__) mdata = self.__smart_apply_along_axis(data) if self.__axis == 'features': if len(mdata.shape) == 1: # in case we only have a scalar per sample we need to transpose # it properly, to keep the length of the samples axis intact mdata = np.atleast_2d(mdata).T return np.atleast_2d(mdata) @borrowdoc(Mapper) def _forward_dataset(self, ds): if self.__uattrs is None: mdata, sattrs = self._forward_dataset_full(ds) else: mdata, sattrs = self._forward_dataset_grouped(ds) samples = np.atleast_2d(mdata) # return early if there is no attribute treatment desired if self.__attrfx is None: out = ds.copy(deep=False) out.samples = samples return out # not copying the samples attributes, since they have to be modified # anyway if self.__axis == 'samples': out = ds.copy(deep=False, sa=[]) col = out.sa incol = ds.sa col.set_length_check(samples.shape[0]) else: out = ds.copy(deep=False, fa=[]) col = out.fa incol = ds.fa col.set_length_check(samples.shape[1]) # assign samples to do COW out.samples = samples for attr in sattrs: a = sattrs[attr] # TODO -- here might puke if e.g it is a list where some items # are empty lists... I guess just wrap in try/except and # do dtype=object if catch a = np.atleast_1d(a) # make sure we do not inflate the number of dimensions for no reason # this could happen if there was only one unique value for an # attribute and the default 'uniquemerge2literal' attrfx was given if len(a.shape) > 1 and a.shape[-1] == 1 and attr in incol \ and len(a.shape) > len(incol[attr].value.shape): a.shape = a.shape[:-1] col[attr] = a return out def _forward_dataset_grouped(self, ds): mdata = [] # list of samples array pieces if self.__axis == 'samples': col = ds.sa axis = 0 elif self.__axis == 'features': col = ds.fa axis = 1 else: raise RuntimeError("This should not have happened!") attrs = dict(zip(col.keys(), [[] for i in col])) # create a dictionary for all unique elements in all attribute this # mapper should operate on self.__attrcombs = dict(zip(self.__uattrs, [col[attr].unique for attr in self.__uattrs])) # let it generate all combinations of unique elements in any attr order = self.order order_keys = [] for comb in _orthogonal_permutations(self.__attrcombs): selector = reduce(np.multiply, [array_whereequal(col[attr].value, value) for attr, value in comb.iteritems()]) # process the samples if axis == 0: samples = ds.samples[selector] else: samples = ds.samples[:, selector] # check if there were any samples for such a combination, # if not -- warning and skip the rest of the loop body if not len(samples): warning('There were no samples for combination %s. It might be ' 'a sign of a disbalanced dataset %s.' % (comb, ds)) continue fxed_samples = self.__smart_apply_along_axis(samples) mdata.append(fxed_samples) if self.__attrfx is not None: # and now all samples attributes for i, attr in enumerate(col): fxed_attr = self.__attrfx(col[attr].value[selector]) attrs[attr].append(fxed_attr) # possibly take care about collecting information to have groups ordered if order == 'uattrs': # reverse order as per docstring -- most of the time we have # used uattrs=['targets', 'chunks'] and did expect chunks being # groupped together. order_keys.append([comb[a] for a in self.__uattrs[::-1]]) elif order == 'occurrence': # First index should be sufficient since we are dealing # with unique non-overlapping groups here (AFAIK ;) ) order_keys.append(np.where(selector)[0][0]) if order: # reorder our groups using collected "order_keys" # data order_idxs = argsort(order_keys) mdata = [mdata[i] for i in order_idxs] # and attributes attrs = dict((k, [v[i] for i in order_idxs]) for k,v in attrs.iteritems()) if axis == 0: mdata = np.vstack(mdata) else: mdata = np.vstack(np.transpose(mdata)) return mdata, attrs def _forward_dataset_full(self, ds): # simply map the all of the data mdata = self._forward_data(ds.samples) # if the attributes should not be handled, don't handle them if self.__attrfx is None: return mdata, None # and now all attributes if self.__axis == 'samples': attrs = dict(zip(ds.sa.keys(), [self.__attrfx(ds.sa[attr].value) for attr in ds.sa])) if self.__axis == 'features': attrs = dict(zip(ds.fa.keys(), [self.__attrfx(ds.fa[attr].value) for attr in ds.fa])) return mdata, attrs axis = property(fget=lambda self:self.__axis) fx = property(fget=lambda self:self.__fx) fxargs = property(fget=lambda self:self.__fxargs) uattrs = property(fget=lambda self:self.__uattrs) attrfx = property(fget=lambda self:self.__attrfx) order = property(fget=lambda self:self.__order) # # Convenience functions to create some useful mapper with less complexity # def mean_sample(attrfx='merge'): """Returns a mapper that computes the mean sample of a dataset. Parameters ---------- attrfx : 'merge' or callable, optional Callable that is used to determine the sample attributes of the computed mean samples. By default this will be a string representation of all unique value of a particular attribute in any sample group. If there is only a single value in a group it will be used as the new attribute value. Returns ------- FxMapper instance. """ return FxMapper('samples', np.mean, attrfx=attrfx) def mean_group_sample(attrs, attrfx='merge', **kwargs): """Returns a mapper that computes the mean samples of unique sample groups. The sample groups are identified by the unique combination of all values of a set of provided sample attributes. Order of output samples might differ from original and correspond to sorted order of corresponding `attrs` by default. Use `order='occurrence'` if you would like to maintain the order. Parameters ---------- attrs : list List of sample attributes whose unique values will be used to identify the samples groups. attrfx : 'merge' or callable, optional Callable that is used to determine the sample attributes of the computed mean samples. By default this will be a string representation of all unique value of a particular attribute in any sample group. If there is only a single value in a group it will be used as the new attribute value. Returns ------- FxMapper instance. """ return FxMapper('samples', np.mean, uattrs=attrs, attrfx=attrfx, **kwargs) def sum_sample(attrfx='merge'): """Returns a mapper that computes the sum sample of a dataset. Parameters ---------- attrfx : 'merge' or callable, optional Callable that is used to determine the sample attributes of the computed sum samples. By default this will be a string representation of all unique value of a particular attribute in any sample group. If there is only a single value in a group it will be used as the new attribute value. Returns ------- FxMapper instance. """ return FxMapper('samples', np.sum, attrfx=attrfx) def mean_feature(attrfx='merge'): """Returns a mapper that computes the mean feature of a dataset. Parameters ---------- attrfx : 'merge' or callable, optional Callable that is used to determine the feature attributes of the computed mean features. By default this will be a string representation of all unique value of a particular attribute in any feature group. If there is only a single value in a group it will be used as the new attribute value. Returns ------- FxMapper instance. """ return FxMapper('features', np.mean, attrfx=attrfx) def subtract_mean_feature(attrfx='merge'): """Subtract mean of features across samples. Functionaly equivalent to MeanRemoval, but much slower. """ return FxMapper('features', subtract_mean, attrfx=attrfx) def mean_group_feature(attrs, attrfx='merge', **kwargs): """Returns a mapper that computes the mean features of unique feature groups. The feature groups are identified by the unique combination of all values of a set of provided feature attributes. Order of output features might differ from original and correspond to sorted order of corresponding `attrs` by default. Use `order='occurrence'` if you would like to maintain the order. Parameters ---------- attrs : list List of feature attributes whos unique values will be used to identify the feature groups. attrfx : 'merge' or callable, optional Callable that is used to determine the feature attributes of the computed mean features. By default this will be a string representation of all unique value of a particular attribute in any feature group. If there is only a single value in a group it will be used as the new attribute value. Returns ------- FxMapper instance. """ return FxMapper('features', np.mean, uattrs=attrs, attrfx=attrfx, **kwargs) def absolute_features(): """Returns a mapper that converts features into absolute values. This mapper does not alter any attributes. Returns ------- FxMapper instance. """ return FxMapper('features', np.absolute, attrfx=None) def sumofabs_sample(): """Returns a mapper that returns the sum of absolute values of all samples. """ return FxMapper('samples', sum_of_abs) def maxofabs_sample(): """Returns a mapper that finds max of absolute values of all samples. """ return FxMapper('samples', max_of_abs) class BinomialProportionCI(Mapper): """Compute binomial proportion confidence intervals This is a convenience frontend for binomial_proportion_ci_from_bool() and supports all methods implemented in this function. The confidence interval is computed independently for each feature column. The returned dataset contains two samples. The first one contains the lower CI boundary and the second sample the upper boundary. Returns ------- dataset """ is_trained = True width = Parameter(.95, constraints=EnsureFloat() & EnsureRange(min=0, max=1), doc="Confidence interval width") meth = Parameter('jeffreys', constraints=EnsureChoice('wald', 'wilson', 'agresti-coull', 'jeffreys', 'clopper-pearson', 'arc-sine', 'logit', 'anscombe'), doc="Interval estimation method") def __init__(self, **kwargs): Mapper.__init__(self, **kwargs) def _train(self, ds): pass def _forward_data(self, data): from mvpa2.misc.stats import binomial_proportion_ci_from_bool return binomial_proportion_ci_from_bool(data, axis=0, alpha=1-self.params.width, meth=self.params.meth) def _forward_dataset(self, ds): msamp = self._forward_data(ds.samples) mds = Dataset(msamp, sa=dict(ci_boundary=['lower', 'upper'])) return mds # # Utility functions # def _uniquemerge2literal(attrs): """Compress a sequence into its unique elements (with string merge). Whenever there is more then one unique element in `attrs`, these are converted to a string and join with a '+' character inbetween. Parameters ---------- attrs : sequence, arbitrary Returns ------- Non-sequence arguments are passed as is, otherwise a sequences of unique items is. None is returned in case of an empty sequence. """ try: if isinstance(attrs[0], basestring): # do not try to disassemble sequences of strings raise TypeError unq = [np.array(u) for u in set([tuple(p) for p in attrs])] except TypeError: # either no 2d-iterable... try: unq = np.unique(attrs) except TypeError: # or no iterable at all -- return the original return attrs lunq = len(unq) if lunq > 1: return ['+'.join([str(l) for l in unq])] elif lunq: return unq else: return None def merge2first(attrs): """Compress a sequence by discard all but the first element This function can be useful as 'attrfx' argument for an FxMapper. Parameters ---------- attrs : sequence, arbitrary Returns ------- First element of the input sequence. """ return attrs[0] def argsort(seq, reverse=False): """Return indices to get sequence sorted """ # Based on construct from # http://stackoverflow.com/questions/3071415/efficient-method-to-calculate-the-rank-vector-of-a-list-in-python # Thanks! # cmp was not passed through since seems to be absent in python3 return sorted(range(len(seq)), key=seq.__getitem__, reverse=reverse) def _orthogonal_permutations(a_dict): """ Takes a dictionary with lists as values and returns all permutations of these list elements in new dicts. This function is useful, when a method with several arguments shall be tested and all of the arguments can take several values. The order is not defined, therefore the elements should be orthogonal to each other. >>> for i in _orthogonal_permutations({'a': [1,2,3], 'b': [4,5]}): ... print i {'a': 1, 'b': 4} {'a': 1, 'b': 5} {'a': 2, 'b': 4} {'a': 2, 'b': 5} {'a': 3, 'b': 4} {'a': 3, 'b': 5} """ # Taken from MDP (LGPL) pool = dict(a_dict) args = [] for func, all_args in pool.items(): # check the size of the list in the second item of the tuple args_with_fun = [(func, arg) for arg in all_args] args.append(args_with_fun) for i in _product(args): yield dict(i) def _product(iterable): # MDP took it and adapted it from itertools 2.6 (Python license) # PyMVPA took it from MDP (LGPL) pools = tuple(iterable) result = [[]] for pool in pools: result = [x+[y] for x in result for y in pool] for prod in result: yield tuple(prod) class BinaryFxNode(Node): """Extract a dataset attribute and call a function with it and the samples. This node takes a dataset's samples and a configurable attribute and passes them to a custom callable. This node can be used to implement comparisons, or error quantifications. When called with a dataset the node returns a new dataset with the return value of the callable as samples. """ # TODO: Allow using feature attributes too def __init__(self, fx, space, **kwargs): """ Parameters ---------- fx : callable Callable that is passed with the dataset samples as first and attribute values as second argument. space : str name of the sample attribute that contains the target values. """ Node.__init__(self, space=space, **kwargs) self.fx = fx def _call(self, ds): # extract samples and targets and pass them to the errorfx targets = ds.sa[self.get_space()].value # squeeze to remove bogus dimensions and prevent problems during # comparision later on values = np.atleast_1d(ds.samples.squeeze()) if not values.shape == targets.shape: # if they have different shape numpy's broadcasting might introduce # pointless stuff (compare individual features or yield a single # boolean raise ValueError("Trying to compute an error between data of " "different shape (%s vs. %s)." % (values.shape, targets.shape)) err = self.fx(values, targets) if np.isscalar(err): err = np.array(err, ndmin=2) return Dataset(err) class MeanRemoval(Mapper): """Subtract sample mean from features.""" is_trained = True in_place = Parameter( False, doc="""If False: a copy of the dataset will be made before demeaning. If True: demeaning will be performed in-place, i.e. input data is modified. This is faster, but can have side-effects when the original dataset is used elsewhere again, and implies that floating point data types are required to prevent rounding errors in this case.""", constraints=EnsureBool()) def __init__(self, in_place=False, **kwargs): Mapper.__init__(self, **kwargs) self.in_place = in_place def _forward_data(self, data): mdata = data mean = np.mean(mdata, axis=1) if self.in_place: if not np.issubdtype(mdata.dtype, float): warning("Integer dtype. Mean removal won't work correctly for " "this implementation. Rounding errors will occur. " "Use in_place=False instead") mdata -= mean[:, np.newaxis] else: mdata = mdata - mean[:, np.newaxis] return mdata pymvpa2-2.6.4/mvpa2/mappers/fxy.py000066400000000000000000000057401323370031300167760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Evaluate functions on pairs of datasets""" __docformat__ = 'restructuredtext' from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.datasets import Dataset from mvpa2.mappers.base import Mapper from mvpa2.base.dochelpers import borrowdoc class FxyMapper(Mapper): """Mapper to execute a callable with two datasets as arguments. The first dataset is passed to the mapper during training, the second dataset is passed to forward/call(). This mapper is useful to, for example, compare two datasets regarding particular aspects, merge them, or perform other operations that require the presence of two datasets. """ def __init__(self, fx, train_as_1st=True, **kwargs): """ Parameters ---------- fx : callable Functor that is called with the two datasets upon forward-mapping. train_as_1st : bool If True, the training dataset is passed to the target callable as the first argument and the other dataset as the second argument. If False, it is vice versa. Examples -------- >>> from mvpa2.mappers.fxy import FxyMapper >>> from mvpa2.datasets import Dataset >>> callable = lambda x,y: len(x) > len(y) >>> ds1 = Dataset(range(5)) >>> ds2 = Dataset(range(3)) >>> fxy = FxyMapper(callable) >>> fxy.train(ds1) >>> fxy(ds2).item() True >>> fxy = FxyMapper(callable, train_as_1st=False) >>> fxy.train(ds1) >>> fxy(ds2).item() False """ Mapper.__init__(self, **kwargs) self._fx = fx self._train_as_1st = train_as_1st self._ds_train = None @borrowdoc(Mapper) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(FxyMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['fx'])) def __str__(self): return _str(self, fx=self._fx.__name__) def _train(self, ds): self._ds_train = ds def _untrain(self): self._ds_train = None @borrowdoc(Mapper) def _forward_dataset(self, ds): # apply function if self._train_as_1st: out = self._fx(self._ds_train, ds) else: out = self._fx(ds, self._ds_train) # wrap output in a dataset if necessary if not isinstance(out, Dataset): try: out = Dataset(out) except ValueError: # not a sequence? out = Dataset([out]) return out fx = property(fget=lambda self:self.__fx) pymvpa2-2.6.4/mvpa2/mappers/glm/000077500000000000000000000000001323370031300163675ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/mappers/glm/__init__.py000066400000000000000000000137441323370031300205110ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Transform datasets into parameter estimates of a general linear model fit. This module provides the base class, as well as multiple implementations of a GLM based on different 3rd-party packages. """ __docformat__ = 'restructuredtext' __all__ = [ ] # GLMMapper is to be used only to derive specific implementations import numpy as np from mvpa2.datasets import Dataset from mvpa2.mappers.base import Mapper from mvpa2.base.param import Parameter class GLMMapper(Mapper): """Transform a dataset into parameter estimates for a general linear model. This is a univariate measure were the model is fitted independently to each input feature. The GLM design matrix is created from two different source: a) sample attributes of the input dataset, and b) common regressors stored in the mapper itself upon instantiation. The order of the design matrix columns is as follows: First regressors from the dataset in the order in which their names were specified, then additional regressors stored in the mapper -- appended in their given order, and, lastly, a potential constant column. The nature of the values returned with the mapped dataset depends on the implementation details and parameter settings of the actual GLMMapper subclass. Most commonly, however, is a mapped dataset that has the same number of features as the input, and each sample contains the parameter estimates corresponding to a design matrix column. This is a base class, thus is not supposed to be used directly by users which should use specific implementations suchas NiPyGLMMapper and StatsmodelsGLMMapper. """ # TODO optimize design matrix generation in case no regressor comes from the # input dataset and everything can be precomputed add_constant = Parameter(False, constraints='bool', doc="""\ If True, a constant will be added as last column in the design matrix.""") return_design = Parameter(False, constraints='bool', doc="""\ If True, the mapped dataset will contain a sample attribute ``regressors`` with the design matrix columns.""") return_model = Parameter(False, constraints='bool', doc="""\ If True, the mapped dataset will contain am attribute ``model`` for an instance of the fitted GLM. The type of this instance dependent on the actual implementation used.""") def __init__(self, regs, add_regs=None, **kwargs): """ Parameters ---------- regs : list or tuple Names of sample attributes to be extracted from an input dataset and used as design matrix columns. add_regs : tuple, optional Additional regressors to be used in the design matrix. Each tuple element is a 2-tuple: the first element is a literal label for the regressor, and the second element is a 1D array with the regressor values. The length of the array needs to match the length of any input dataset. """ if not 'space' in kwargs: kwargs['space'] = 'regressor_names' # so far no separate training Mapper.__init__(self, auto_train=True, **kwargs) self.regs = tuple(regs) if add_regs is None: add_regs = tuple() self.add_regs = tuple(add_regs) def _build_design(self, ds): X = None regsfromds = list(self.regs) reg_names=None if len(regsfromds): X = np.vstack([ds.sa[reg].value for reg in regsfromds]).T reg_names=regsfromds if len(self.add_regs): regs=[] if reg_names is None: reg_names = [] for reg in self.add_regs: regs.append(reg[1]) reg_names.append(reg[0]) if X is None: X = np.vstack(regs).T else: X = np.vstack([X.T] + regs).T if self.params.add_constant: constant = np.ones(len(ds)) if X is None: X = constant[None].T else: X = np.vstack((X.T, constant)).T if reg_names is None: reg_names = ['constant'] else: reg_names.append('constant') if X is None: raise ValueError("no design specified") return reg_names, X def _fit_model(self, ds, X, reg_names): # return the model fit instance and # an output dataset (something x nfeatures of input ds) raise NotImplementedError def _forward_dataset(self, ds): reg_names, X = self._build_design(ds) model, out = self._fit_model(ds, X, reg_names) out.fa.update(ds.fa) out.a.update(ds.a) # this last one might be a bit to opportunistic if self.params.return_design: if not len(out) == len(X.T): raise ValueError("cannot include GLM regressors as sample " "attributes (dataset probably contains " "something other than parameter estimates") out.sa['regressors'] = X.T if self.params.return_model: out.a['model'] = model return out # TODO: this is not unreasonable, forward+reverse cycle throws away residuals... #def _reverse_dataset(self, ds): # reconstruct timeseries from model fit from mvpa2 import externals if externals.exists('nipy'): from .nipy_glm import NiPyGLMMapper __all__.append('NiPyGLMMapper') if externals.exists('statsmodels'): from .statsmodels_glm import StatsmodelsGLMMapper __all__.append('StatsmodelsGLMMapper') pymvpa2-2.6.4/mvpa2/mappers/glm/nipy_glm.py000066400000000000000000000034001323370031300205540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """GLMMapper implementation based on the NiPy package.""" __docformat__ = 'restructuredtext' from mvpa2.base import externals if externals.exists('nipy', raise_=True): from nipy.modalities.fmri.glm import GeneralLinearModel import numpy as np from mvpa2.datasets import Dataset from mvpa2.mappers.glm import GLMMapper class NiPyGLMMapper(GLMMapper): """NiPy-based GLMMapper implementation This is basically a front-end for :class:`~ nipy.modalities.fmri.glm.GeneralLinearModel`. In particular, it supports all keyword arguments of its ``fit()`` method. """ def __init__(self, regs, glmfit_kwargs=None, **kwargs): """ Parameters ---------- regs : list Names of sample attributes to be extracted from an input dataset and used as design matrix columns. glmfit_kwargs : dict, optional Keyword arguments to be passed to GeneralLinearModel.fit(). By default an AR1 model is used. """ GLMMapper.__init__(self, regs, **kwargs) if glmfit_kwargs is None: glmfit_kwargs = {} self.glmfit_kwargs = glmfit_kwargs def _fit_model(self, ds, X, reg_names): glm = GeneralLinearModel(X) glm.fit(ds.samples, **self.glmfit_kwargs) out = Dataset(glm.get_beta(), sa={self.get_space(): reg_names}) return glm, out pymvpa2-2.6.4/mvpa2/mappers/glm/statsmodels_glm.py000066400000000000000000000044751323370031300221540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """GLMMapper implementation based on the statsmodels package.""" __docformat__ = 'restructuredtext' from mvpa2.base import externals if externals.exists('statsmodels', raise_=True): from mvpa2.measures.statsmodels_adaptor import UnivariateStatsModels import statsmodels.api as sm import numpy as np from mvpa2.datasets import Dataset from mvpa2.mappers.glm import GLMMapper class StatsmodelsGLMMapper(GLMMapper): """Statsmodels-based GLMMapper implementation This is basically a front-end for :class:`~mvpa2.measures.statsmodels_adaptor.UnivariateStatsModels`. In particular, it supports all ``model_gen`` and ``results`` arguments as described in the documentation for this class. """ def __init__(self, regs, model_gen=None, results='params', **kwargs): """ Parameters ---------- regs : list Names of sample attributes to be extracted from an input dataset and used as design matrix columns. model_gen : callable, optional See UnivariateStatsModels documentation for details on the specification of the model fitting procedure. By default an OLS model is used. results : str or array, optional See UnivariateStatsModels documentation for details on the specification of model fit results. By default parameter estimates are returned. """ GLMMapper.__init__(self, regs, **kwargs) self.result_expr = results if model_gen is None: model_gen=lambda y, x: sm.OLS(y, x) self.model_gen = model_gen def _fit_model(self, ds, X, reg_names): mod = UnivariateStatsModels( X, res=self.result_expr, add_constant=False, model_gen=self.model_gen) res = mod(ds) if self.result_expr == 'params': res.sa[self.get_space()] = reg_names return mod, res pymvpa2-2.6.4/mvpa2/mappers/lle.py000066400000000000000000000053101323370031300167350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Local Linear Embedding. This is a wrapper class around the corresponding MDP nodes LLE and HLLE (since MDP 2.4). """ __docformat__ = 'restructuredtext' from mvpa2.base import externals import numpy as np from mvpa2.mappers.mdp_adaptor import MDPNodeMapper if externals.exists('mdp ge 2.4', raise_=True): import mdp class LLEMapper(MDPNodeMapper): """Locally linear embbeding Mapper. This mapper performs dimensionality reduction. It wraps two algorithms provided by the Modular Data Processing (MDP) framework. Locally linear embedding (LLE) approximates the input data with a low-dimensional surface and reduces its dimensionality by learning a mapping to the surface. This wrapper class provides access to two different LLE algorithms (i.e. the corresponding MDP processing nodes). 1) An algorithm outlined in *An Introduction to Locally Linear Embedding* by L. Saul and S. Roweis, using improvements suggested in *Locally Linear Embedding for Classification* by D. deRidder and R.pl.W. Duin (aka `LLENode`) and 2) Hessian Locally Linear Embedding analysis based on algorithm outlined in *Hessian Eigenmaps: new locally linear embedding techniques for high-dimensional data* by C. Grimes and D. Donoho, 2003. For more information see the MDP website at http://mdp-toolkit.sourceforge.net Notes ----- This mapper only provides forward-mapping functionality -- no reverse mapping is available. """ def __init__(self, k, alg='LLE', nodeargs=None, **kwargs): """ Parameters ---------- k : int Number of nearest neighbors to be used by the algorithm. algorithm : {'LLE', 'HLLE'} Either use the standard LLE algorithm or Hessian Linear Local Embedding (HLLE). nodeargs : None or dict Arguments passed to the MDP node in various stages of its lifetime. See the baseclass for more details. **kwargs Additional constructor arguments for the MDP node. """ if alg == 'LLE': node = mdp.nodes.LLENode(k, **kwargs) elif alg == 'HLLE': node = mdp.nodes.HLLENode(k, **kwargs) else: raise ValueError("Unkown algorithm '%s' for LLEMapper.") MDPNodeMapper.__init__(self, node, nodeargs=nodeargs) pymvpa2-2.6.4/mvpa2/mappers/mdp_adaptor.py000066400000000000000000000300311323370031300204510ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrapper to use MDP nodes and flows as PyMVPA mappers. This module provides to mapper that allow embedding MDP nodes, or flows into PyMVPA. """ __docformat__ = 'restructuredtext' from mvpa2.base import externals if externals.exists('mdp', raise_=True): import mdp import numpy as np from mvpa2.base.dataset import DatasetAttributeExtractor from mvpa2.mappers.base import Mapper, accepts_dataset_as_samples from mvpa2.misc.support import is_in_volume class MDPNodeMapper(Mapper): """Mapper encapsulating an arbitray MDP node. This mapper wraps an MDP node and uses it for forward and reverse data mapping (reverse is only available if the underlying MDP node supports it). It is possible to specify arbitrary arguments for all processing steps of an MDP node (training, training stop, execution, and inverse). Because MDP does not allow to 'reset' a node and (re)train it from scratch the mapper uses a copy of the initially wrapped node for the actual processing. Upon subsequent training attempts a new copy of the original node is made and replaces the previous one. Notes ----- MDP nodes requiring multiple training phases are not supported. Use a MDPFlowWrapper for that. Moreover, it is not possible to perform incremental training of a node. """ def __init__(self, node, nodeargs=None, **kwargs): """ Parameters ---------- node : mdp.Node instance This node instance is taken as the pristine source of which a copy is made for actual processing upon each training attempt. nodeargs : dict Dictionary for additional arguments for all calls to the MDP node. The dictionary key's meaning is as follows: 'train' Arguments for calls to `Node.train()` 'stoptrain' Arguments for calls to `Node.stop_training()` 'exec' Arguments for calls to `Node.execute()` 'inv' Arguments for calls to `Node.inverse()` The value for each item is always a 2-tuple, consisting of a tuple (for the arguments), and a dictionary (for keyword arguments), i.e. ((), {}). Both, tuple and dictionary have to be provided even if they are empty. space : see base class """ # NOTE: trailing spaces in above docstring must not be pruned # for correct parsing if (externals.versions['mdp'] >= (2, 5) \ and node.has_multiple_training_phases()) \ or not len(node._train_seq) == 1: raise ValueError("MDPNodeMapper does not support MDP nodes with " "multiple training phases.") Mapper.__init__(self, **kwargs) self.__pristine_node = None self.node = node self.nodeargs = nodeargs def __repr__(self): s = super(MDPNodeMapper, self).__repr__() return s.replace("(", "(node=%s, nodeargs=%s, " % (repr(self.node), repr(self.nodeargs)), 1) def _expand_args(self, phase, ds=None): args = [] kwargs = {} if self.nodeargs is not None and phase in self.nodeargs: sargs, skwargs = self.nodeargs[phase] for a in sargs: if isinstance(a, DatasetAttributeExtractor): if ds is None: raise RuntimeError('MDPNodeMapper does not (yet) ' 'support argument extraction from dataset on ' 'forward()') args.append(a(ds)) else: args.append(a) for k in skwargs: if isinstance(skwargs[k], DatasetAttributeExtractor): if ds is None: raise RuntimeError('MDPNodeMapper does not (yet) ' 'support argument extraction from dataset on ' 'forward()') kwargs[k] = skwargs[k](ds) else: kwargs[k] = skwargs[k] return args, kwargs def _train(self, ds): if not self.node.is_trainable(): return # whenever we have no cannonical node source, we assign the current # node -- this can only happen prior training and allows modifying # the node of having the MDPNodeMapper instance if self.__pristine_node is None: self.__pristine_node = self.node # training is done on a copy of the pristine node, because nodes cannot # be reset, but PyMVPA's mapper need to be able to be retrained from # scratch self.node = self.__pristine_node.copy() # train args, kwargs = self._expand_args('train', ds) self.node.train(ds.samples, *args, **kwargs) # stop train args, kwargs = self._expand_args('stoptrain', ds) self.node.stop_training(*args, **kwargs) def _forward_data(self, data): args, kwargs = self._expand_args('exec', data) return self.node.execute(np.atleast_2d(data), *args, **kwargs).squeeze() def _reverse_data(self, data): args, kwargs = self._expand_args('inv', data) return self.node.inverse(np.atleast_2d(data), *args, **kwargs).squeeze() class PCAMapper(MDPNodeMapper): """Convenience wrapper to perform PCA using MDP's Mapper """ def __init__(self, alg='PCA', nodeargs=None, **kwargs): """ Parameters ---------- alg : {'PCA', 'NIPALS'} Which MDP implementation of a PCA to use. nodeargs : None or dict Arguments passed to the MDP node in various stages of its lifetime. See the :class:`MDPNodeMapper` for more details. **kwargs Additional constructor arguments for the MDP node. """ if alg == 'PCA': node = mdp.nodes.PCANode(**kwargs) elif alg == 'NIPALS': node = mdp.nodes.NIPALSNode(**kwargs) else: raise ValueError("Unkown algorithm '%s' for PCAMapper." % alg) MDPNodeMapper.__init__(self, node, nodeargs=nodeargs) proj = property(fget=lambda self: self.node.get_projmatrix(), doc="Projection matrix (as an array)") recon = property(fget=lambda self: self.node.get_projmatrix(), doc="Backprojection matrix (as an array)") var = property(fget=lambda self: self.node.d, doc="Variances per component") centroid = property(fget=lambda self: self.node.avg, doc="Mean of the training data") class ICAMapper(MDPNodeMapper): """Convenience wrapper to perform ICA using MDP nodes. """ def __init__(self, alg='FastICA', nodeargs=None, **kwargs): """ Parameters ---------- alg : {'FastICA', 'CuBICA'} Which MDP implementation of an ICA to use. nodeargs : None or dict Arguments passed to the MDP node in various stages of its lifetime. See the baseclass for more details. **kwargs Additional constructor arguments for the MDP node. """ if alg == 'FastICA': node = mdp.nodes.FastICANode(**kwargs) elif alg == 'CuBICA': node = mdp.nodes.CuBICANode(*kwargs) else: raise ValueError("Unkown algorithm '%s' for ICAMapper." % alg) MDPNodeMapper.__init__(self, node, nodeargs=nodeargs) proj = property(fget=lambda self: self.node.get_projmatrix(), doc="Projection matrix (as an array)") recon = property(fget=lambda self: self.node.get_projmatrix(), doc="Backprojection matrix (as an array)") class MDPFlowMapper(Mapper): """Mapper encapsulating an arbitray MDP flow. This mapper wraps an MDP flow and uses it for forward and reverse data mapping (reverse is only available if the underlying MDP flow supports it). It is possible to specify arbitrary arguments for the training of the MDP flow. Because MDP does not allow to 'reset' a flow and (re)train it from scratch the mapper uses a copy of the initially wrapped flow for the actual processing. Upon subsequent training attempts a new copy of the original flow is made and replaces the previous one. Examples -------- >>> import mdp >>> from mvpa2.mappers.mdp_adaptor import MDPFlowMapper >>> from mvpa2.base.dataset import DAE >>> flow = (mdp.nodes.PCANode() + mdp.nodes.IdentityNode() + ... mdp.nodes.FDANode()) >>> mapper = MDPFlowMapper(flow, ... node_arguments=(None, None, ... [DAE('sa', 'targets')])) Notes ----- It is not possible to perform incremental training of the MDP flow. """ def __init__(self, flow, node_arguments=None, **kwargs): """ Parameters ---------- flow : mdp.Flow instance This flow instance is taken as the pristine source of which a copy is made for actual processing upon each training attempt. node_arguments : tuple, list A tuple or a list the same length as the flow. Each item is a list of arguments for the training of the corresponding node in the flow. If a node does not require additional arguments, None can be provided instead. Keyword arguments are currently not supported by mdp.Flow. """ if node_arguments is not None and len(node_arguments) != len(flow): raise ValueError("Length of node_arguments (%i) does not match the " "number of nodes in the flow (%i)." % (len(node_arguments), len(flow))) Mapper.__init__(self, **kwargs) self.__pristine_flow = None self.flow = flow self.node_arguments = node_arguments def __repr__(self): s = super(MDPFlowMapper, self).__repr__() return s.replace("(", "(flow=%s, node_arguments=%s, " % (repr(self.flow), repr(self.node_arguments)), 1) def _expand_nodeargs(self, ds, args): enal = [] for a in args: if isinstance(a, DatasetAttributeExtractor): enal.append(a(ds)) else: enal.append(a) return enal def _build_node_arguments(self, ds): if self.node_arguments is not None: node_arguments = [] for ndi in self.node_arguments: l = [ds.samples] if ndi is not None: l = [ds.samples] l.extend(self._expand_nodeargs(ds, ndi)) node_arguments.append([l]) else: node_arguments = ds.samples return node_arguments def _train(self, ds): # whenever we have no cannonical flow source, we assign the current # flow -- this can only happen prior training and allow modifying # the flow of having the MDPNodeMapper instance if self.__pristine_flow is None: self.__pristine_flow = self.flow # training is done on a copy of the pristine flow, because flows cannot # be reset, but PyMVPA's mapper need to be able to be retrained from # scratch self.flow = self.__pristine_flow.copy() self.flow.train(self._build_node_arguments(ds)) def _forward_data(self, data): return self.flow.execute(np.atleast_2d(data)).squeeze() def _reverse_data(self, data): return self.flow.inverse(np.atleast_2d(data)).squeeze() pymvpa2-2.6.4/mvpa2/mappers/procrustean.py000066400000000000000000000214401323370031300205300ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Procrustean rotation mapper""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureChoice from mvpa2.base.types import is_datasetlike from mvpa2.mappers.projection import ProjectionMapper from mvpa2.base import warning if __debug__: from mvpa2.base import debug class ProcrusteanMapper(ProjectionMapper): """Mapper to project from one space to another using Procrustean transformation (shift + scaling + rotation). Training this mapper requires data for both source and target space to be present in the training dataset. The source space data is taken from the training dataset's ``samples``, while the target space is taken from a sample attribute corresponding to the ``space`` setting of the ProcrusteanMapper. See: http://en.wikipedia.org/wiki/Procrustes_transformation """ scaling = Parameter(True, constraints='bool', doc="""Estimate a global scaling factor for the transformation (no longer rigid body)""") reflection = Parameter(True, constraints='bool', doc="""Allow for the data to be reflected (so it might not be a rotation. Effective only for non-oblique transformations. """) reduction = Parameter(True, constraints='bool', doc="""If true, it is allowed to map into lower-dimensional space. Forward transformation might be suboptimal then and reverse transformation might not recover all original variance.""") oblique = Parameter(False, constraints='bool', doc="""Either to allow non-orthogonal transformation -- might heavily overfit the data if there is less samples than dimensions. Use `oblique_rcond`.""") oblique_rcond = Parameter(-1, constraints='float', doc="""Cutoff for 'small' singular values to regularize the inverse. See :class:`~numpy.linalg.lstsq` for more information.""") svd = Parameter('numpy', constraints=EnsureChoice('numpy', 'scipy', 'dgesvd'), doc="""Implementation of SVD to use. dgesvd requires ctypes to be available.""") def __init__(self, space='targets', **kwargs): ProjectionMapper.__init__(self, space=space, **kwargs) self._scale = None """Estimated scale""" if self.params.svd == 'dgesvd' and not externals.exists('liblapack.so'): warning("Reverting choice of svd for ProcrusteanMapper to be default " "'numpy' since liblapack.so seems not to be available for " "'dgesvd'") self.params.svd = 'numpy' def _train(self, source): params = self.params # Since it is unsupervised, we don't care about labels datas = () odatas = () means = () shapes = () assess_residuals = __debug__ and 'MAP_' in debug.active target = source.sa[self.get_space()].value for i, ds in enumerate((source, target)): if is_datasetlike(ds): data = np.asarray(ds.samples) else: data = ds if assess_residuals: odatas += (data,) if self._demean: if i == 0: mean = self._offset_in else: mean = data.mean(axis=0) data = data - mean else: # no demeaning === zero means mean = np.zeros(shape=data.shape[1:]) means += (mean,) datas += (data,) shapes += (data.shape,) # shortcuts for sizes sn, sm = shapes[0] tn, tm = shapes[1] # Check the sizes if sn != tn: raise ValueError, "Data for both spaces should have the same " \ "number of samples. Got %d in source and %d in target space" \ % (sn, tn) # Sums of squares ssqs = [np.sum(d**2, axis=0) for d in datas] # XXX check for being invariant? # needs to be tuned up properly and not raise but handle for i in xrange(2): if np.all(ssqs[i] <= np.abs((np.finfo(datas[i].dtype).eps * sn * means[i] )**2)): raise ValueError, "For now do not handle invariant in time datasets" norms = [ np.sqrt(np.sum(ssq)) for ssq in ssqs ] normed = [ data/norm for (data, norm) in zip(datas, norms) ] # add new blank dimensions to source space if needed if sm < tm: normed[0] = np.hstack( (normed[0], np.zeros((sn, tm-sm))) ) if sm > tm: if params.reduction: normed[1] = np.hstack( (normed[1], np.zeros((sn, sm-tm))) ) else: raise ValueError, "reduction=False, so mapping from " \ "higher dimensionality " \ "source space is not supported. Source space had %d " \ "while target %d dimensions (features)" % (sm, tm) source, target = normed if params.oblique: # Just do silly linear system of equations ;) or naive # inverse problem if sn == sm and tm == 1: T = np.linalg.solve(source, target) else: T = np.linalg.lstsq(source, target, rcond=params.oblique_rcond)[0] ss = 1.0 else: # Orthogonal transformation # figure out optimal rotation if params.svd == 'numpy': U, s, Vh = np.linalg.svd(np.dot(target.T, source), full_matrices=False) elif params.svd == 'scipy': # would raise exception if not present externals.exists('scipy', raise_=True) import scipy U, s, Vh = scipy.linalg.svd(np.dot(target.T, source), full_matrices=False) elif params.svd == 'dgesvd': from mvpa2.support.lapack_svd import svd as dgesvd U, s, Vh = dgesvd(np.dot(target.T, source), full_matrices=True, algo='svd') else: raise ValueError('Unknown type of svd %r'%(params.svd)) T = np.dot(Vh.T, U.T) if not params.reflection: # then we need to assure that it is only rotation # "recipe" from # http://en.wikipedia.org/wiki/Orthogonal_Procrustes_problem # for more and info and original references, see # http://dx.doi.org/10.1007%2FBF02289451 s_new = np.ones_like(s) s_new[-1] = np.linalg.det(T) T = np.dot(Vh.T * s_new, U.T) # figure out scale and final translation if not params.reflection: ss = np.sum(s_new * s) else: ss = np.sum(s) # if we were to collect standardized distance # std_d = 1 - sD**2 # select out only relevant dimensions if sm != tm: T = T[:sm, :tm] self._scale = scale = ss * norms[1] / norms[0] # Assign projection if self.params.scaling: proj = scale * T else: proj = T self._proj = proj if self._demean: self._offset_out = means[1] if __debug__ and 'MAP_' in debug.active: # compute the residuals res_f = self.forward(odatas[0]) d_f = np.linalg.norm(odatas[1] - res_f)/np.linalg.norm(odatas[1]) res_r = self.reverse(odatas[1]) d_r = np.linalg.norm(odatas[0] - res_r)/np.linalg.norm(odatas[0]) debug('MAP_', "%s, residuals are forward: %g," " reverse: %g" % (repr(self), d_f, d_r)) def _compute_recon(self): """For Procrustean mapper, inverse is transpose. So, let's skip computing inverse in the super class. """ # XXX Change pinv to superclass compute_recon? if self.params.oblique: #return ProjectionMapper._compute_recon(self) return np.linalg.pinv(self._proj) else: return np.transpose(self._proj/self._scale**2) if self.params.scaling else np.transpose(self._proj) pymvpa2-2.6.4/mvpa2/mappers/projection.py000066400000000000000000000124571323370031300203470ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Base class for mappers doing linear transformations""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import enhanced_doc_string from mvpa2.mappers.base import Mapper, accepts_dataset_as_samples if __debug__: from mvpa2.base import debug class ProjectionMapper(Mapper): """Linear mapping between multidimensional spaces. This class cannot be used directly. Sub-classes have to implement the `_train()` method, which has to compute the projection matrix `_proj` and optionally offset vectors `_offset_in` and `_offset_out` (if initialized with demean=True, which is default) given a dataset (see `_train()` docstring for more information). Once the projection matrix is available, this class provides functionality to perform forward and backwards linear mapping of data, the latter by default using pseudo-inverse (but could be altered in subclasses, like hermitian (conjugate) transpose in case of SVD). Additionally, `ProjectionMapper` supports optional selection of arbitrary component (i.e. columns of the projection matrix) of the projection. Forward and back-projection matrices (a.k.a. *projection* and *reconstruction*) are available via the `proj` and `recon` properties. """ _DEV__doc__ = """Think about renaming `demean`, may be `translation`?""" def __init__(self, demean=True, **kwargs): """Initialize the ProjectionMapper Parameters ---------- demean : bool Either data should be demeaned while computing projections and applied back while doing reverse() """ Mapper.__init__(self, **kwargs) # by default we want to wipe the feature attributes out during mapping self._fa_filter = [] self._proj = None """Forward projection matrix.""" self._recon = None """Reverse projection (reconstruction) matrix.""" self._demean = demean """Flag whether to demean the to be projected data, prior to projection. """ self._offset_in = None """Offset (most often just mean) in the input space""" self._offset_out = None """Offset (most often just mean) in the output space""" __doc__ = enhanced_doc_string('ProjectionMapper', locals(), Mapper) @accepts_dataset_as_samples def _pretrain(self, samples): """Determine the projection matrix. Parameters ---------- dataset : Dataset Dataset to operate on """ if self._demean: self._offset_in = samples.mean(axis=0) ##REF: Name was automagically refactored def _demean_data(self, data): """Helper which optionally demeans """ if self._demean: # demean the training data data = data - self._offset_in if __debug__ and "MAP_" in debug.active: debug("MAP_", "%s: Mean of data in input space %s was subtracted" % (self.__class__.__name__, self._offset_in)) return data def _forward_data(self, data): if self._proj is None: raise RuntimeError, "Mapper needs to be train before used." # local binding demean = self._demean d = np.asmatrix(data) # Remove input offset if present if demean and self._offset_in is not None: d = d - self._offset_in # Do forward projection res = (d * self._proj).A # Add output offset if present if demean and self._offset_out is not None: res += self._offset_out return res def _reverse_data(self, data): if self._proj is None: raise RuntimeError, "Mapper needs to be trained before used." d = np.asmatrix(data) # Remove offset if present in output space if self._demean and self._offset_out is not None: d = d - self._offset_out # Do reverse projection res = (d * self.recon).A # Add offset in input space if self._demean and self._offset_in is not None: res += self._offset_in return res ##REF: Name was automagically refactored def _compute_recon(self): """Given that a projection is present -- compute reconstruction matrix. By default -- pseudoinverse of projection matrix. Might be overridden in derived classes for efficiency. """ return np.linalg.pinv(self._proj) ##REF: Name was automagically refactored def _get_recon(self): """Compute (if necessary) and return reconstruction matrix """ # (re)build reconstruction matrix recon = self._recon if recon is None: self._recon = recon = self._compute_recon() return recon proj = property(fget=lambda self: self._proj, doc="Projection matrix") recon = property(fget=_get_recon, doc="Backprojection matrix") pymvpa2-2.6.4/mvpa2/mappers/prototype.py000066400000000000000000000033701323370031300202320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Project data onto a space defined by prototypes via a similarity function""" import numpy as np from mvpa2.mappers.base import accepts_dataset_as_samples from mvpa2.mappers.projection import ProjectionMapper if __debug__: from mvpa2.base import debug class PrototypeMapper(ProjectionMapper): """Mapper to project data onto a space defined by prototypes from the same space via a similarity function. """ def __init__(self, similarities, prototypes=None, **kwargs): """ Parameters ---------- similarities : list A list of similarity functions. prototypes : Dataset or list A dataset or a list of instances (e.g., streamlines)? **kwargs: All keyword arguments are passed to the ProjectionMapper constructor """ ProjectionMapper.__init__(self, **kwargs) self.similarities = similarities self.prototypes = prototypes @accepts_dataset_as_samples def _train(self, samples): """Train PrototypeMapper """ self._proj = np.hstack([similarity.computed(samples, self.prototypes) for similarity in self.similarities]) if __debug__: debug("MAP", "projected data of shape %s: %s " % (self._proj.shape, self._proj)) pymvpa2-2.6.4/mvpa2/mappers/shape.py000066400000000000000000000107741323370031300172730ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Basic dataset shape modifications.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.mappers.base import Mapper from mvpa2.datasets import Dataset class TransposeMapper(Mapper): """Swap sample and feature axes. This mapper swaps the sample axis (first axis) and feature axis (second axis) of a dataset (additional axes in multi-dimensional datasets are left untouched). Both, sample and feature attribute collections are also swapped accordingly. Neither dataset samples, not attribute collections are copied. Reverse mapping is supported as well. This mapper does not require training and a single instance can be used on different datasets without problems. """ is_trained = True def __init__(self, **kwargs): Mapper.__init__(self, **kwargs) def _swap_samples_and_feature_axes(self, ds): out = Dataset(np.swapaxes(ds.samples, 0, 1), sa=ds.fa, fa=ds.sa, a=ds.a) return out def _forward_dataset(self, ds): return self._swap_samples_and_feature_axes(ds) def _reverse_dataset(self, ds): return self._swap_samples_and_feature_axes(ds) class AddAxisMapper(Mapper): """Add an axis to a dataset at an arbitrary position. This mapper can be useful when there is need for aggregating multiple datasets, where it is often necessary or at least useful to have a dedicated aggregation axis. An axis can be added at any position When adding an axis that causes the current sample (1st) or feature axis (2nd) to shift the corresponding attribute collections are modified to accomodate the change. This typically means also adding an axis at the corresponding position of the attribute arrays. A special case is, however, prepending an axis to the dataset, i.e. shifting both sample and feature axis towards the back. In this case all feature attibutes are duplicated to match the new number of features (formaly the number of samples). Examples -------- >>> from mvpa2.datasets.base import Dataset >>> from mvpa2.mappers.shape import AddAxisMapper >>> ds = Dataset(np.arange(24).reshape(2,3,4)) >>> am = AddAxisMapper(pos=1) >>> print am(ds).shape (2, 1, 3, 4) """ is_trained = True def __init__(self, pos, **kwargs): """ Parameters ---------- pos : int Axis index to which the new axis is prepended. Negative indices are supported as well, but the new axis will be placed behind the given index. For example, a position of ``-1`` will cause an axis to be added behind the last axis. If ``pos`` is larger than the number of existing axes additional new axes will be created match the value of ``pos``. """ Mapper.__init__(self, **kwargs) self._pos = pos def _forward_dataset(self, ds): pos = self._pos if pos < 0: # support negative/reverse indices pos = len(ds.shape) + 1 + pos # select all prior axes, but at most all existing axes slicer = [slice(None)] * min(pos, len(ds.shape)) # and as many new axes as necessary afterwards slicer += [None] * max(1, pos + 1 - len(ds.shape)) # there are two special cases that require modification of feature # attributes if pos == 0: # prepend an axis to all sample attributes out_sa = dict([(attr, ds.sa[attr].value[None]) for attr in ds.sa]) # prepend an axis to all FAs and repeat for each previous sample out_fa = dict([(attr, np.repeat(ds.fa[attr].value[None], len(ds), axis=0)) for attr in ds.fa]) elif pos == 1: # prepend an axis to all feature attributes out_fa = dict([(attr, ds.fa[attr].value[None]) for attr in ds.fa]) out_sa = ds.sa else: out_sa = ds.sa out_fa = ds.fa out = Dataset(ds.samples.__getitem__(tuple(slicer)), sa=out_sa, fa=out_fa, a=ds.a) return out pymvpa2-2.6.4/mvpa2/mappers/skl_adaptor.py000066400000000000000000000067241323370031300204760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Use scikit-learn transformer as mappers. This module provides an adaptor to use sklearn transformers as PyMVPA mappers. """ __docformat__ = 'restructuredtext' from mvpa2.support.copy import deepcopy from mvpa2.base.learner import Learner from mvpa2.mappers.base import Mapper __all__ = ['SKLTransformer'] class SKLTransformer(Mapper): """Adaptor to use arbitrary sklearn transformer as a mapper. This basic adaptor support forward mapping only. It is clever enough to call ``fit_transform()`` instead of a serial ``fit()`` and ``transform()`` combo when an untrained instance is called with a dataset. >>> from sklearn.manifold import MDS >>> from mvpa2.misc.data_generators import normal_feature_dataset >>> ds = normal_feature_dataset(perlabel=10, nlabels=2) >>> print ds.shape (20, 4) >>> mds = SKLTransformer(MDS()) >>> mapped = mds(ds) >>> print mapped.shape (20, 2) """ def __init__(self, transformer, **kwargs): """ Parameters ---------- transformer : sklearn.transformer instance space : str or None, optional If not None, a sample attribute of the given name will be extracted from the training dataset and passed to the sklearn transformer's ``fit()`` method as ``y`` argument. """ # NOTE: trailing spaces in above docstring must not be pruned # for correct parsing Mapper.__init__(self, auto_train=False, **kwargs) self._transformer = None self._pristine_transformer = transformer def __call__(self, ds): # overwrite __call__ to prevent the rigorous check of the learner was # trained before use and auto-train, because sklearn has optimized ways # for doing that, i.e. fit_transform() return super(Learner, self).__call__(ds) def _untrain(self): self._transformer = None def _get_y(self, ds): space = self.get_space() if space: y = ds.sa[space].value else: y = None return y def _get_transformer(self): if self._transformer is None: self._transformer = deepcopy(self._pristine_transformer) return self._transformer def _train(self, ds): tf = self._get_transformer() return tf.fit(ds.samples, self._get_y(ds)) def _forward_dataset(self, ds): tf = self._get_transformer() if not self.is_trained: # sklearn support fit and transform at the same time, which might # be a lot faster, but we only do that, if the mapper is not # trained already out = tf.fit_transform(ds.samples, self._get_y(ds)) self._set_trained() else: # some SKL classes do not swallow a superfluous `y` argument # we could be clever and use 'inspect' to query the function # signature, but we'll use a sledge hammer instead try: out = tf.transform(ds.samples, self._get_y(ds)) except TypeError: out = tf.transform(ds.samples) return out pymvpa2-2.6.4/mvpa2/mappers/slicing.py000066400000000000000000000135141323370031300176160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Collection of dataset slicing procedures.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.node import Node from mvpa2.mappers.base import Mapper, accepts_dataset_as_samples from mvpa2.base.dochelpers import _str, _repr_attrs from mvpa2.generators.splitters import mask2slice class SliceMapper(Mapper): """Baseclass of Mapper that slice a Dataset in various ways. """ def __init__(self, slicearg, **kwargs): """ Parameters ---------- slicearg Argument for slicing """ Mapper.__init__(self, **kwargs) self._safe_assign_slicearg(slicearg) def _safe_assign_slicearg(self, slicearg): # convert int sliceargs into lists to prevent getting scalar values when # slicing if isinstance(slicearg, int): slicearg = [slicearg] self._slicearg = slicearg # if we got some sort of slicearg we assume that we are ready to go if slicearg is not None: self._set_trained() def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(SliceMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['slicearg'])) def __str__(self): # with slicearg it can quickly get very unreadable #return _str(self, str(self._slicearg)) return _str(self) def _untrain(self): self._safe_assign_slicearg(None) super(SliceMapper, self)._untrain() def __iadd__(self, other): # our slicearg this = self._slicearg # if another slice mapper work on its slicearg if isinstance(other, SliceMapper): other = other._slicearg # catch stupid arg if not (isinstance(other, tuple) or isinstance(other, list) \ or isinstance(other, np.ndarray) or isinstance(other, slice)): return NotImplemented if isinstance(this, slice): # we can always merge if the slicing arg can be sliced itself (i.e. # it is not a slice-object... unless it doesn't really slice we do # not want to expand slices into index lists to become mergable, # since that would cause cheap view-based slicing to become # expensive copy-based slicing if this == slice(None): # this one did nothing, just use the other and be done self._safe_assign_slicearg(other) return self else: # see comment above return NotImplemented # list or tuple are alike if isinstance(this, (list, tuple)): # simply convert it into an array and proceed from there this = np.asanyarray(this) if this.dtype.type is np.bool_: # simply convert it into an index array --prevents us from copying a # lot and allows for sliceargs such as [3,3,4,4,5,5] this = this.nonzero()[0] if this.dtype.char in np.typecodes['AllInteger']: self._safe_assign_slicearg(this[other]) return self # if we get here we got something the isn't supported return NotImplemented slicearg = property(fget=lambda self:self._slicearg) class SampleSliceMapper(SliceMapper): """Mapper to select a subset of samples.""" def __init__(self, slicearg, **kwargs): """ Parameters ---------- slicearg : int, list(int), array(int), array(bool) Any slicing argument that is compatible with numpy arrays. Depending on the argument the mapper will perform basic slicing or advanced indexing (with all consequences on speed and memory consumption). """ SliceMapper.__init__(self, slicearg, **kwargs) def _call(self, ds): # it couldn't be simpler return ds[self._slicearg] class StripBoundariesSamples(Node): """Strip samples on boundaries defines by sample attribute values. A sample attribute of a dataset is scanned for consecutive blocks of identical values. Every change in the value is treated as a boundary and custom number of samples is removed prior and after this boundary. """ def __init__(self, space, prestrip, poststrip, **kwargs): """ Parameters ---------- space : str name of the sample attribute that shall be used to determine the boundaries. prestrip : int Number of samples to be stripped prior to each boundary. poststrip : int Number of samples to be stripped after each boundary (this includes the boundary sample itself, i.e. the first samples with a different sample attribute value). """ Node.__init__(self, space=space, **kwargs) self._prestrip = prestrip self._poststrip = poststrip def _call(self, ds): # attribute to detect boundaries battr = ds.sa[self.get_space()].value # filter which samples to keep filter_ = np.ones(battr.shape, dtype='bool') # determine boundary indices -- shift by one to have the new value # as the boundary bindices = (battr[:-1] != battr[1:]).nonzero()[0] + 1 # for all boundaries for b in bindices: lower = b - self._prestrip upper = b + self._poststrip filter_[lower:upper] = False filter_ = mask2slice(filter_) return ds[filter_] pymvpa2-2.6.4/mvpa2/mappers/som.py000066400000000000000000000240401323370031300167600ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Self-organizing map (SOM).""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.mappers.base import Mapper, accepts_dataset_as_samples if __debug__: from mvpa2.base import debug class SimpleSOMMapper(Mapper): """Mapper using a self-organizing map (SOM) for dimensionality reduction. This mapper provides a simple, but pretty fast implementation of a self-organizing map using an unsupervised training algorithm. It performs a ND -> 2D mapping, which can for, example, be used for visualization of high-dimensional data. This SOM implementation uses squared Euclidean distance to determine the best matching Kohonen unit and a Gaussian neighborhood influence kernel. """ def __init__(self, kshape, niter, learning_rate=0.005, iradius=None, distance_metric=None, initialization_func=None): """ Parameters ---------- kshape : (int, int) Shape of the internal Kohonen layer. Currently, only 2D Kohonen layers are supported, although the length of an axis might be set to 1. niter : int Number of iteration during network training. learning_rate : float Initial learning rate, which will continuously decreased during network training. iradius : float or None Initial radius of the Gaussian neighborhood kernel radius, which will continuously decreased during network training. If `None` (default) the radius is set equal to the longest edge of the Kohonen layer. distance_metric: callable or None Kernel distance metric between elements in Kohonen layer. If None then Euclidean distance is used. Otherwise it should be a callable that accepts two input arguments x and y and returns the distance d through d=distance_metric(x,y) initialization_func: callable or None Initialization function to set self._K, that should take one argument with training samples and return an numpy array. If None, then values in the returned array are taken from a standard normal distribution. """ # init base class Mapper.__init__(self) self.kshape = np.array(kshape, dtype='int') if iradius is None: self.radius = self.kshape.max() else: self.radius = iradius if distance_metric is None: self.distance_metric = lambda x, y: (x ** 2 + y ** 2) ** 0.5 else: self.distance_metric = distance_metric # learning rate self.lrate = learning_rate # number of training iterations self.niter = niter # precompute whatever can be done # scalar for decay of learning rate and radius across all iterations self.iter_scale = self.niter / np.log(self.radius) # the internal kohonen layer self._K = None self._dqd = None self._initialization_func = initialization_func # precompute necessary sizes for dqd (and later infl) self._dqdshape = np.array( [self.kshape[0]//2, self.kshape[1]//2, np.ceil(self.kshape[0]/2.).astype('int'), np.ceil(self.kshape[1]/2.).astype('int')]) @accepts_dataset_as_samples def _pretrain(self, samples): """Perform network pre-training. Parameters ---------- samples : array-like Used for unsupervised training of the SOM """ ifunc = self._initialization_func # XXX initialize with clever default, e.g. plain of first two PCA # components if ifunc is None: ifunc = lambda x:np.random.standard_normal(tuple(self.kshape) \ + (x.shape[1],)) self._K = ifunc(samples) # precompute distance kernel between elements in the Kohonen layer # that will remain constant throughout the training # (just compute one quadrant, as the distances are symmetric) # XXX maybe do other than squared Euclidean? self._dqd = np.fromfunction(self.distance_metric, self._dqdshape[2:]+1, dtype='float') @accepts_dataset_as_samples def _train(self, samples): """Perform network training. Parameters ---------- samples : array-like Used for unsupervised training of the SOM. Notes ----- It is assumed that prior to calling this method the _pretrain method was called with the same argument. """ # ensure that dqd was set properly dqd = self._dqd if dqd is None: raise ValueError("This should not happen - was _pretrain called?") # units weight vector deltas for batch training # (height x width x #features) unit_deltas = np.zeros(self._K.shape, dtype='float') # for all iterations for it in xrange(1, self.niter + 1): # compute the neighborhood impact kernel for this iteration # has to be recomputed since kernel shrinks over time k = self._compute_influence_kernel(it, dqd) # form the influence kernel from unfolding the kernel (from the # single quadrant that is precomputed), then cutting to the right shape infl = np.vstack(( np.hstack(( # upper left k[self._dqdshape[0]:0:-1, self._dqdshape[1]:0:-1], # upper right k[self._dqdshape[0]:0:-1, :self._dqdshape[3]])), np.hstack(( # lower left k[:self._dqdshape[2], self._dqdshape[1]:0:-1], # lower right k[:self._dqdshape[2], :self._dqdshape[3]])) )) # for all training vectors for s in samples: # determine closest unit (as element coordinate) b = self._get_bmu(s) # roll the kernel so that peak is at this coordinate sample_infl = np.roll(infl, self._dqdshape[2]+b[0], axis=0) sample_infl = np.roll(sample_infl, self._dqdshape[3]+b[1], axis=1) # get the adjustment to be made to the Kohonen layer by multiplying # by the difference unit_deltas = sample_infl[:, :, np.newaxis] * (s - self._K) # apply sample unit delta self._K += unit_deltas if __debug__: debug("SOM", "Iteration %d/%d done: ||unit_deltas||=%g" % (it, self.niter, np.sqrt(np.sum(unit_deltas ** 2)))) ##REF: Name was automagically refactored def _compute_influence_kernel(self, iter, dqd): """Compute the neighborhood kernel for some iteration. Parameters ---------- iter : int The iteration for which to compute the kernel. dqd : array (nrows x ncolumns) This is one quadrant of Euclidean distances between Kohonen unit locations. """ # compute radius decay for this iteration curr_max_radius = self.radius * np.exp(-1.0 * iter / self.iter_scale) # same for learning rate curr_lrate = self.lrate * np.exp(-1.0 * iter / self.iter_scale) # compute Gaussian influence kernel infl = np.exp((-1.0 * dqd) / (2 * curr_max_radius * iter)) infl *= curr_lrate # hard-limit kernel to max radius # XXX is this really necessary? infl[dqd > curr_max_radius] = 0. return infl ##REF: Name was automagically refactored def _get_bmu(self, sample): """Returns the ID of the best matching unit. 'best' is determined as minimal squared Euclidean distance between any units weight vector and some given target `sample` Parameters ---------- sample : array Target sample. Returns ------- tuple: (row, column) """ # TODO expose distance function as parameter loc = np.argmin(((self.K - sample) ** 2).sum(axis=2)) # assumes 2D Kohonen layer return (np.divide(loc, self.kshape[1]).astype('int'), loc % self.kshape[1]) def _forward_data(self, data): """Map data from the IN dataspace into OUT space. Mapping is performs by simple determining the best matching Kohonen unit for each data sample. """ return np.array([self._get_bmu(d) for d in data]) def _reverse_data(self, data): """Reverse map data from OUT space into the IN space. """ # simple transform into appropriate array slicing and # return the associated Kohonen unit weights return self.K[tuple(np.transpose(data))] def __repr__(self): s = Mapper.__repr__(self).rstrip(' )') # beautify if not s[-1] == '(': s += ' ' s += 'kshape=%s, niter=%i, learning_rate=%f, iradius=%f)' \ % (str(tuple(self.kshape)), self.niter, self.lrate, self.radius) return s ##REF: Name was automagically refactored def _access_kohonen(self): """Provide access to the Kohonen layer. With some care. """ if self._K is None: raise RuntimeError, \ 'The SOM needs to be trained before access to the Kohonen ' \ 'layer is possible.' return self._K K = property(fget=_access_kohonen) pymvpa2-2.6.4/mvpa2/mappers/staticprojection.py000066400000000000000000000033221323370031300215460ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Transform data via static projection matrices""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import borrowdoc from mvpa2.mappers.projection import ProjectionMapper if __debug__: from mvpa2.base import debug class StaticProjectionMapper(ProjectionMapper): """Mapper to project data onto arbitrary space using transformation given as input. Both forward and reverse projections can be provided. """ def __init__(self, proj, recon=None, **kwargs): """Initialize the StaticProjectionMapper Parameters ---------- proj : 2-D array Projection matrix to be used for forward projection. recon: 2-D array Projection matrix to be used for reverse projection. If this is not given, `numpy.linalg.pinv` of proj will be used by default. **kwargs: All keyword arguments are passed to the ProjectionMapper constructor. """ ProjectionMapper.__init__(self, auto_train=kwargs.pop('auto_train', True), **kwargs) self._proj = proj self._recon = recon def _train(self, dummyds): """Do Nothing """ if __debug__: debug("MAP_", "Mixing matrix has %s shape and norm=%f" % (self._proj.shape, np.linalg.norm(self._proj))) pymvpa2-2.6.4/mvpa2/mappers/svd.py000066400000000000000000000053701323370031300167630ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Singular-value decomposition""" __docformat__ = 'restructuredtext' import numpy as np #import scipy.linalg as spl from mvpa2.base.dochelpers import borrowdoc from mvpa2.mappers.base import accepts_dataset_as_samples from mvpa2.mappers.projection import ProjectionMapper from mvpa2.featsel.helpers import ElementSelector if __debug__: from mvpa2.base import debug class SVDMapper(ProjectionMapper): """Mapper to project data onto SVD components estimated from some dataset. """ @borrowdoc(ProjectionMapper) def __init__(self, **kwargs): """Initialize the SVDMapper Parameters ---------- **kwargs: All keyword arguments are passed to the ProjectionMapper constructor. """ ProjectionMapper.__init__(self, **kwargs) self._sv = None """Singular values of the training matrix.""" @accepts_dataset_as_samples def _train(self, samples): """Determine the projection matrix onto the SVD components from a 2D samples x feature data matrix. """ X = np.asmatrix(samples) X = self._demean_data(X) # singular value decomposition U, SV, Vh = np.linalg.svd(X, full_matrices=0) #U, SV, Vh = spl.svd(X, full_matrices=0) # store the final matrix with the new basis vectors to project the # features onto the SVD components. And store its .H right away to # avoid computing it in forward() self._proj = Vh.H # also store singular values of all components self._sv = SV if __debug__: debug("MAP", "SVD was done on %s and obtained %d SVs " % (samples, len(SV)) + " (%d non-0, max=%f)" % (len(SV.nonzero()), SV[0])) # .norm might be somewhat expensive to compute if "MAP_" in debug.active: debug("MAP_", "Mixing matrix has %s shape and norm=%f" % (self._proj.shape, np.linalg.norm(self._proj))) ##REF: Name was automagically refactored def _compute_recon(self): """Since singular vectors are orthonormal, sufficient to take hermitian """ if issubclass(self._proj.dtype.type, np.complexfloating): return self._proj.T.conjugate() else: return self._proj.T sv = property(fget=lambda self: self._sv, doc="Singular values") pymvpa2-2.6.4/mvpa2/mappers/wavelet.py000066400000000000000000000324351323370031300176400ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wavelet transformation""" from mvpa2.base import externals if externals.exists('pywt', raise_=True): # import conditional to be able to import the whole module while building # the docs even if pywt is not installed import pywt DEFAULT_MODE = "periodization" if externals.versions["pywt"] >= "0.4" else "per" else: DEFAULT_MODE = None import numpy as np from mvpa2.base import warning from mvpa2.mappers.base import Mapper if __debug__: from mvpa2.base import debug # WaveletPacket and WaveletTransformation mappers share lots of common # functionality at the moment class _WaveletMapper(Mapper): """Generic class for Wavelet mappers (decomposition and packet) """ def __init__(self, dim=1, wavelet='sym4', mode=DEFAULT_MODE, maxlevel=None): """Initialize _WaveletMapper mapper Parameters ---------- dim : int or tuple of int dimensions to work across (for now just scalar value, ie 1D transformation) is supported wavelet : str one from the families available withing pywt package mode : str periodization mode maxlevel : int or None number of levels to use. If None - automatically selected by pywt """ Mapper.__init__(self) self._dim = dim """Dimension to work along""" self._maxlevel = maxlevel """Maximal level of decomposition. None for automatic""" if not wavelet in pywt.wavelist(): raise ValueError, \ "Unknown family of wavelets '%s'. Please use one " \ "available from the list %s" % (wavelet, pywt.wavelist()) self._wavelet = wavelet """Wavelet family to use""" if not mode in pywt.MODES.modes: raise ValueError, \ "Unknown periodization mode '%s'. Please use one " \ "available from the list %s" % (mode, pywt.MODES.modes) self._mode = mode """Periodization mode""" def _forward_data(self, data): data = np.asanyarray(data) self._inshape = data.shape self._intimepoints = data.shape[self._dim] res = self._wm_forward(data) self._outshape = res.shape return res def _reverse_data(self, data): data = np.asanyarray(data) return self._wm_reverse(data) def _wm_forward(self, *args): raise NotImplementedError def _wm_reverse(self, *args): raise NotImplementedError ##REF: Name was automagically refactored def _get_indexes(shape, dim): """Generator for coordinate tuples providing slice for all in `dim` XXX Somewhat sloppy implementation... but works... """ if len(shape) < dim: raise ValueError, "Dimension %d is incorrect for a shape %s" % \ (dim, shape) n = len(shape) curindexes = [0] * n curindexes[dim] = Ellipsis#slice(None) # all elements for dimension dim while True: yield tuple(curindexes) for i in xrange(n): if i == dim and dim == n-1: return # we reached it -- thus time to go if curindexes[i] == shape[i] - 1: if i == n-1: return curindexes[i] = 0 else: if i != dim: curindexes[i] += 1 break class WaveletPacketMapper(_WaveletMapper): """Convert signal into an overcomplete representaion using Wavelet packet """ def __init__(self, level=None, **kwargs): """Initialize WaveletPacketMapper mapper Parameters ---------- level : int or None What level to decompose at. If 'None' data for all levels is provided, but due to different sizes, they are placed in 1D row. """ _WaveletMapper.__init__(self,**kwargs) self.__level = level # XXX too much of duplications between such methods -- it begs # refactoring ##REF: Name was automagically refactored def __forward_single_level(self, data): if __debug__: debug('MAP', "Converting signal using DWP (single level)") wp = None level = self.__level wavelet = self._wavelet mode = self._mode dim = self._dim level_paths = None for indexes in _get_indexes(data.shape, self._dim): if __debug__: debug('MAP_', " %s" % (indexes,), lf=False, cr=True) WP = pywt.WaveletPacket( data[indexes], wavelet=wavelet, mode=mode, maxlevel=level) level_nodes = WP.get_level(level) if level_paths is None: # Needed for reconstruction self.__level_paths = np.array([node.path for node in level_nodes]) level_datas = np.array([node.data for node in level_nodes]) if wp is None: newdim = data.shape newdim = newdim[:dim] + level_datas.shape + newdim[dim+1:] if __debug__: debug('MAP_', "Initializing storage of size %s for single " "level (%d) mapping of data of size %s" % (newdim, level, data.shape)) wp = np.empty( tuple(newdim) ) wp[indexes] = level_datas return wp ##REF: Name was automagically refactored def __forward_multiple_levels(self, data): wp = None levels_length = None # total length at each level levels_lengths = None # list of lengths per each level for indexes in _get_indexes(data.shape, self._dim): if __debug__: debug('MAP_', " %s" % (indexes,), lf=False, cr=True) WP = pywt.WaveletPacket( data[indexes], wavelet=self._wavelet, mode=self._mode, maxlevel=self._maxlevel) if levels_length is None: levels_length = [None] * WP.maxlevel levels_lengths = [None] * WP.maxlevel levels_datas = [] for level in xrange(WP.maxlevel): level_nodes = WP.get_level(level+1) level_datas = [node.data for node in level_nodes] level_lengths = [len(x) for x in level_datas] level_length = np.sum(level_lengths) if levels_lengths[level] is None: levels_lengths[level] = level_lengths elif levels_lengths[level] != level_lengths: raise RuntimeError, \ "ADs of same level of different samples should have same number of elements." \ " Got %s, was %s" % (level_lengths, levels_lengths[level]) if levels_length[level] is None: levels_length[level] = level_length elif levels_length[level] != level_length: raise RuntimeError, \ "Levels of different samples should have same number of elements." \ " Got %d, was %d" % (level_length, levels_length[level]) level_data = np.hstack(level_datas) levels_datas.append(level_data) # assert(len(data) == levels_length) # assert(len(data) >= Ntimepoints) if wp is None: newdim = list(data.shape) newdim[self._dim] = np.sum(levels_length) wp = np.empty( tuple(newdim) ) wp[indexes] = np.hstack(levels_datas) self.levels_lengths, self.levels_length = levels_lengths, levels_length if __debug__: debug('MAP_', "") debug('MAP', "Done convertion into wp. Total size %s" % str(wp.shape)) return wp def _wm_forward(self, data): if __debug__: debug('MAP', "Converting signal using DWP") if self.__level is None: return self.__forward_multiple_levels(data) else: return self.__forward_single_level(data) # # Reverse mapping # ##REF: Name was automagically refactored def __reverse_single_level(self, wp): # local bindings level_paths = self.__level_paths # define wavelet packet to use WP = pywt.WaveletPacket( data=None, wavelet=self._wavelet, mode=self._mode, maxlevel=self.__level) # prepare storage signal_shape = wp.shape[:1] + self._inshape[1:] signal = np.zeros(signal_shape) Ntime_points = self._intimepoints for indexes in _get_indexes(signal_shape, self._dim): if __debug__: debug('MAP_', " %s" % (indexes,), lf=False, cr=True) for path, level_data in zip(level_paths, wp[indexes]): WP[path] = level_data signal[indexes] = WP.reconstruct(True)[:Ntime_points] return signal def _wm_reverse(self, data): if __debug__: debug('MAP', "Converting signal back using DWP") if self.__level is None: raise NotImplementedError else: if not externals.exists('pywt wp reconstruct'): raise NotImplementedError, \ "Reconstruction for a single level for versions of " \ "pywt < 0.1.7 (revision 103) is not supported" if not externals.exists('pywt wp reconstruct fixed'): warning("%s: Reverse mapping with this version of 'pywt' might " "result in incorrect data in the tails of the signal. " "Please check for an update of 'pywt', or be careful " "when interpreting the edges of the reverse mapped " "data." % self.__class__.__name__) return self.__reverse_single_level(data) class WaveletTransformationMapper(_WaveletMapper): """Convert signal into wavelet representaion """ def _wm_forward(self, data): """Decompose signal into wavelets's coefficients via dwt """ if __debug__: debug('MAP', "Converting signal using DWT") wd = None coeff_lengths = None for indexes in _get_indexes(data.shape, self._dim): if __debug__: debug('MAP_', " %s" % (indexes,), lf=False, cr=True) coeffs = pywt.wavedec( data[indexes], wavelet=self._wavelet, mode=self._mode, level=self._maxlevel) # Silly Yarik embedds extraction of statistics right in place #stats = [] #for coeff in coeffs: # stats_ = [np.std(coeff), # np.sqrt(np.dot(coeff, coeff)), # ]# + list(np.histogram(coeff, normed=True)[0])) # stats__ = list(coeff) + stats_[:] # stats__ += list(np.log(stats_)) # stats__ += list(np.sqrt(stats_)) # stats__ += list(np.array(stats_)**2) # stats__ += [ np.median(coeff), np.mean(coeff), scipy.stats.kurtosis(coeff) ] # stats.append(stats__) #coeffs = stats coeff_lengths_ = np.array([len(x) for x in coeffs]) if coeff_lengths is None: coeff_lengths = coeff_lengths_ assert((coeff_lengths == coeff_lengths_).all()) if wd is None: newdim = list(data.shape) newdim[self._dim] = np.sum(coeff_lengths) wd = np.empty( tuple(newdim) ) coeff = np.hstack(coeffs) wd[indexes] = coeff if __debug__: debug('MAP_', "") debug('MAP', "Done DWT. Total size %s" % str(wd.shape)) self.lengths = coeff_lengths return wd def _wm_reverse(self, wd): if __debug__: debug('MAP', "Performing iDWT") signal = None wd_offsets = [0] + list(np.cumsum(self.lengths)) nlevels = len(self.lengths) Ntime_points = self._intimepoints #len(time_points) # unfortunately sometimes due to padding iDWT would return longer # sequences, thus we just limit to the right ones for indexes in _get_indexes(wd.shape, self._dim): if __debug__: debug('MAP_', " %s" % (indexes,), lf=False, cr=True) wd_sample = wd[indexes] wd_coeffs = [wd_sample[wd_offsets[i]:wd_offsets[i+1]] for i in xrange(nlevels)] # need to compose original list time_points = pywt.waverec( wd_coeffs, wavelet=self._wavelet, mode=self._mode) if signal is None: newdim = list(wd.shape) newdim[self._dim] = Ntime_points signal = np.empty(newdim) signal[indexes] = time_points[:Ntime_points] if __debug__: debug('MAP_', "") debug('MAP', "Done iDWT. Total size %s" % (signal.shape, )) return signal pymvpa2-2.6.4/mvpa2/mappers/zscore.py000066400000000000000000000270131323370031300174720ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Data normalization by Z-Scoring.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning from mvpa2.base.dochelpers import _str, borrowkwargs, _repr_attrs from mvpa2.mappers.base import accepts_dataset_as_samples, Mapper from mvpa2.datasets.base import Dataset from mvpa2.datasets.miscfx import get_nsamples_per_attr, get_samples_by_attr from mvpa2.support import copy class ZScoreMapper(Mapper): """Mapper to normalize features (Z-scoring). Z-scoring can be done chunk-wise (with independent mean and standard deviation per chunk) or on the full data. It is possible to specify a sample attribute, unique value of which would then be used to determine the chunks. By default, Z-scoring parameters (mean and standard deviation) are estimated from the data (either chunk-wise or globally). However, it is also possible to define fixed parameters (again a global setting or per-chunk definitions), or to select a specific subset of samples from which these parameters should be estimated. If necessary, data is upcasted into a configurable datatype to prevent information loss. Notes ----- It should be mentioned that the mapper can be used for forward-mapping of datasets without prior training (it will auto-train itself upon first use). It is, however, not possible to map plain data arrays without prior training. Also, for obvious reasons, it is also not possible to perform chunk-wise Z-scoring of plain data arrays. Reverse-mapping is currently not implemented. """ def __init__(self, params=None, param_est=None, chunks_attr='chunks', dtype='float64', **kwargs): """ Parameters ---------- params : None or tuple(mean, std) or dict Fixed Z-Scoring parameters (mean, standard deviation). If provided, no parameters are estimated from the data. It is possible to specify individual parameters for each chunk by passing a dictionary with the chunk ids as keys and the parameter tuples as values. If None, parameters will be estimated from the training data. param_est : None or tuple(attrname, attrvalues) Limits the choice of samples used for automatic parameter estimation to a specific subset identified by a set of a given sample attribute values. The tuple should have the name of that sample attribute as the first element, and a sequence of attribute values as the second element. If None, all samples will be used for parameter estimation. chunks_attr : str or None If provided, it specifies the name of a samples attribute in the training data, unique values of which will be used to identify chunks of samples, and to perform individual Z-scoring within them. dtype : Numpy dtype, optional Target dtype that is used for upcasting, in case integer data is to be Z-scored. """ Mapper.__init__(self, **kwargs) self.__chunks_attr = chunks_attr self.__params = params self.__param_est = param_est self.__params_dict = None self.__dtype = dtype # secret switch to perform in-place z-scoring self._secret_inplace_zscore = False def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(ZScoreMapper, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['params', 'param_est', 'chunks_attr']) + _repr_attrs(self, ['dtype'], default='float64')) def __str__(self): return _str(self) def _train(self, ds): # local binding chunks_attr = self.__chunks_attr params = self.__params param_est = self.__param_est # populate a dictionary with tuples of (mean,std) for all chunks, or # a global value that is is used for the whole data if params is not None: # we got mean and std already if not isinstance(params, dict): # turn into dict, otherwise assume that we have parameters per # chunk params = {'__all__': params} else: # no parameters given, need to estimate if param_est is not None: est_attr, est_attr_values = param_est # which samples to use for estimation est_ids = set(get_samples_by_attr(ds, est_attr, est_attr_values)) else: est_ids = slice(None) # now we can either do it one for all, or per chunk if chunks_attr is not None: # per chunk estimate params = {} for c in ds.sa[chunks_attr].unique: slicer = np.where(ds.sa[chunks_attr].value == c)[0] if not isinstance(est_ids, slice): slicer = list(est_ids.intersection(set(slicer))) params[c] = self._compute_params(ds.samples[slicer]) else: # global estimate if isinstance(est_ids, set): est_ids = list(est_ids) params = {'__all__': self._compute_params(ds.samples[est_ids])} self.__params_dict = params def _forward_dataset(self, ds): # local binding chunks_attr = self.__chunks_attr dtype = self.__dtype if __debug__ and chunks_attr is not None: nsamples_per_chunk = get_nsamples_per_attr(ds, chunks_attr) min_nsamples_per_chunk = np.min(nsamples_per_chunk.values()) if min_nsamples_per_chunk in range(3, 6): warning("Z-scoring chunk-wise having a chunk with only " "%d samples is 'discouraged'. " "You have chunks with following number of samples: %s" % (min_nsamples_per_chunk, nsamples_per_chunk,)) if min_nsamples_per_chunk <= 2: warning("Z-scoring chunk-wise having a chunk with less " "than three samples will set features in these " "samples to either zero (with 1 sample in a chunk) " "or -1/+1 (with 2 samples in a chunk). " "You have chunks with following number of samples: %s" % (nsamples_per_chunk,)) params = self.__params_dict if params is None: raise RuntimeError, \ "ZScoreMapper needs to be trained before call to forward" if self._secret_inplace_zscore: mds = ds else: # shallow copy to put the new stuff in mds = ds.copy(deep=False) # but deepcopy the samples since _zscore would modify inplace mds.samples = mds.samples.copy() # cast the data to float, since in-place operations below do not upcast! if np.issubdtype(mds.samples.dtype, np.integer): mds.samples = mds.samples.astype(dtype) if '__all__' in params: # we have a global parameter set mds.samples = self._zscore(mds.samples, *params['__all__']) else: # per chunk z-scoring for c in mds.sa[chunks_attr].unique: if not c in params: raise RuntimeError( "%s has no parameters for chunk '%s'. It probably " "wasn't present in the training dataset!?" % (self.__class__.__name__, c)) slicer = np.where(mds.sa[chunks_attr].value == c)[0] mds.samples[slicer] = self._zscore(mds.samples[slicer], *params[c]) return mds def _forward_data(self, data): if self.__chunks_attr is not None: raise RuntimeError( "%s cannot do chunk-wise Z-scoring of plain data " "since it has to be parameterized with chunks_attr." % self) if self.__param_est is not None: raise RuntimeError("%s cannot do Z-scoring with estimating " "parameters on some attributes of plain" "data." % self) params = self.__params_dict if params is None: raise RuntimeError, \ "ZScoreMapper needs to be trained before call to forward" # mappers should not modify the input data # cast the data to float, since in-place operations below to not upcast! if np.issubdtype(data.dtype, np.integer): if self._secret_inplace_zscore: raise TypeError( "Cannot perform inplace z-scoring since data is of integer " "type. Please convert to float before calling zscore") mdata = data.astype(self.__dtype) elif self._secret_inplace_zscore: mdata = data else: # do not call .copy() directly, since it might not be an array mdata = copy.deepcopy(data) self._zscore(mdata, *params['__all__']) return mdata def _compute_params(self, samples): return (np.mean(samples, axis=0), np.std(samples, axis=0)) def _zscore(self, samples, mean, std): # de-mean if np.isscalar(mean) or samples.shape[1] == len(mean): mean = np.asanyarray(mean) # assure array samples -= mean else: raise RuntimeError("mean should be a per-feature vector. Got: %r" % (mean,)) # scale if np.isscalar(std): if std == 0: samples[:] = 0 else: samples /= std else: std = np.asanyarray(std) if samples.shape[1] != len(std): raise RuntimeError("std should be a per-feature vector.") else: # check for invariant features std_nz = std != 0 samples[:, std_nz] /= np.asanyarray(std)[std_nz] return samples params = property(fget=lambda self:self.__params) param_est = property(fget=lambda self:self.__param_est) chunks_attr = property(fget=lambda self:self.__chunks_attr) dtype = property(fget=lambda self:self.__dtype) @borrowkwargs(ZScoreMapper, '__init__') def zscore(ds, **kwargs): """In-place Z-scoring of a `Dataset` or `ndarray`. This function behaves identical to `ZScoreMapper`. The only difference is that the actual Z-scoring is done in-place -- potentially causing a significant reduction of memory demands. Parameters ---------- ds : Dataset or ndarray The data that will be Z-scored in-place. **kwargs For all other arguments, please see the documentation of `ZScoreMapper`. """ zm = ZScoreMapper(**kwargs) zm._secret_inplace_zscore = True # train if isinstance(ds, Dataset): zm.train(ds) else: zm.train(Dataset(ds)) # map mapped = zm.forward(ds) # and append the mapper to the dataset if isinstance(mapped, Dataset): mapped._append_mapper(zm) pymvpa2-2.6.4/mvpa2/measures/000077500000000000000000000000001323370031300157655ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/measures/__init__.py000066400000000000000000000016361323370031300201040ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PyMVPA measures. Module Description ================== Provide some measures given a dataset. Most of the time, derivatives of `FeaturewiseMeasure` are used, such as * `OneWayAnova` * `CorrCoef` * `IterativeRelief` * `NoisePerturbationSensitivity` Also many classifiers natively provide sensitivity estimators via the call to `get_sensitivity_analyzer` method """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.measures') if __debug__: debug('INIT', 'mvpa2.measures end') pymvpa2-2.6.4/mvpa2/measures/adhocsearchlightbase.py000066400000000000000000000534771323370031300225060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support functionality for GNB and M1NN searchlights""" __docformat__ = 'restructuredtext' import numpy as np #from numpy import ones, zeros, sum, abs, isfinite, dot #from mvpa2.base import warning, externals from mvpa2.datasets.base import Dataset from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.measures.searchlight import BaseSearchlight from mvpa2.base import externals, warning from mvpa2.base.dochelpers import borrowkwargs, _repr_attrs from mvpa2.generators.splitters import Splitter #from mvpa2.base.param import Parameter #from mvpa2.base.state import ConditionalAttribute #from mvpa2.measures.base import Sensitivity from mvpa2.misc.neighborhood import IndexQueryEngine, Sphere if __debug__: from mvpa2.base import debug import time as time if externals.exists('scipy'): import scipy.sparse as sps # API of scipy.sparse has changed in 0.7.0 -- lets account for this _coo_shape_argument = { True: 'shape', False: 'dims'} [externals.versions['scipy'] >= '0.7.0'] __all__ = [ "SimpleStatSearchlight" ] def lastdim_columnsums_fancy_indexing(a, inds, out): for i, inds_ in enumerate(inds): out[..., i] = a[..., inds_].sum(axis=-1) # # Machinery for sparse matrix way # # silly Yarik failed to do np.r_[*neighbors] directly, so here is a # trick def r_helper(*args): return np.r_[args] def _inds_list_to_coo(inds, shape=None): inds_r = r_helper(*(inds)) inds_i = r_helper(*[[i]*len(ind) for i,ind in enumerate(inds)]) data = np.ones(len(inds_r)) ij = np.array([inds_r, inds_i]) spmat = sps.coo_matrix((data, ij), dtype=int, **{_coo_shape_argument:shape}) return spmat def _inds_array_to_coo(inds, shape=None): n_sums, n_cols_per_sum = inds.shape cps_inds = inds.ravel() row_inds = np.repeat(np.arange(n_sums)[None, :], n_cols_per_sum, axis=0).T.ravel() ij = np.r_[cps_inds[None, :], row_inds[None, :]] data = np.ones(ij.shape[1]) inds_s = sps.coo_matrix((data, ij), **{_coo_shape_argument:shape}) return inds_s def inds_to_coo(inds, shape=None): """Dispatcher for conversion to coo """ if isinstance(inds, np.ndarray): return _inds_array_to_coo(inds, shape) elif isinstance(inds, list): return _inds_list_to_coo(inds, shape) else: raise NotImplementedError, "add conversion here" def lastdim_columnsums_spmatrix(a, inds, out): # inds is a 2D array or list or already a sparse matrix, with each # row specifying a set of columns (in fact last dimension indices) # to sum. Thus there are the same number of sums as there are # rows in `inds`. n_cols = a.shape[-1] in_shape = a.shape[:-1] # first convert to sparse if necessary if sps.isspmatrix(inds): n_sums = inds.shape[1] inds_s = inds else: # assume regular iterable n_sums = len(inds) inds_s = inds_to_coo(inds, shape=(n_cols, n_sums)) ar = a.reshape((-1, a.shape[-1])) sums = np.asarray((sps.csr_matrix(ar) * inds_s).todense()) out[:] = sums.reshape(in_shape+(n_sums,)) class _STATS: """Just a dummy container to group/access stats """ pass class SimpleStatBaseSearchlight(BaseSearchlight): """Base class for clf searchlights based on basic univar. statistics Used for GNB and M1NN Searchlights TODO ---- some stats are not needed (eg per sample X^2's) for M1NN, so we should make them optional depending on the derived class Notes ----- refactored from the original GNBSearchlight """ # TODO: implement parallelization (see #67) and then uncomment __init__doc__exclude__ = ['nproc'] def __init__(self, generator, queryengine, errorfx=mean_mismatch_error, indexsum=None, reuse_neighbors=False, splitter=None, **kwargs): """Initialize the base class for "naive" searchlight classifiers Parameters ---------- generator : `Generator` Some `Generator` to prepare partitions for cross-validation. It must not change "targets", thus e.g. no AttributePermutator's errorfx : func, optional Functor that computes a scalar error value from the vectors of desired and predicted values (e.g. subclass of `ErrorFunction`). indexsum : ('sparse', 'fancy'), optional What use to compute sums over arbitrary columns. 'fancy' corresponds to regular fancy indexing over columns, whenever in 'sparse', product of sparse matrices is used (usually faster, so is default if `scipy` is available). reuse_neighbors : bool, optional Compute neighbors information only once, thus allowing for efficient reuse on subsequent calls where dataset's feature attributes remain the same (e.g. during permutation testing) splitter : Splitter, optional Which will be used to split partitioned datasets. If None specified then standard one operating on partitions will be used """ # init base class first BaseSearchlight.__init__(self, queryengine, **kwargs) self._errorfx = errorfx self._generator = generator self._splitter = splitter # TODO: move into _call since resetting over default None # obscures __repr__ if indexsum is None: if externals.exists('scipy'): indexsum = 'sparse' else: indexsum = 'fancy' else: if indexsum == 'sparse' and not externals.exists('scipy'): warning("Scipy.sparse isn't available so taking 'fancy' as " "'indexsum' method.") indexsum = 'fancy' self._indexsum = indexsum if not self.nproc in (None, 1): raise NotImplementedError, "For now only nproc=1 (or None for " \ "autodetection) is supported by GNBSearchlight" self.__pb = None # statistics per each block/label self.__reuse_neighbors = reuse_neighbors # Storage to be used for neighborhood information self.__roi_fids = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(SimpleStatBaseSearchlight, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['generator']) + _repr_attrs(self, ['splitter']) + _repr_attrs(self, ['errorfx'], default=mean_mismatch_error) + _repr_attrs(self, ['indexsum']) + _repr_attrs(self, ['reuse_neighbors'], default=False) ) def _get_space(self): raise NotImplementedError("Must be implemented in derived classes") def _untrain(self): super(SimpleStatBaseSearchlight, self)._untrain() self.__pb = None def _compute_pb_stats(self, labels_numeric, X, shape): # # reusable containers which should stay of the same size # nblocks = shape[0] pb = self.__pb = _STATS() # sums and sums of squares per each block pb.sums = np.zeros(shape) # sums of squares pb.sums2 = np.zeros(shape) pb.nsamples = np.zeros((nblocks,)) pb.labels = [None] * nblocks if np.issubdtype(X.dtype, np.int): # might result in overflow e.g. while taking .square which # would result in negative variances etc, thus to be on a # safe side -- convert to float X = X.astype(float) X2 = np.square(X) # silly way for now for l, s, s2, ib in zip(labels_numeric, X, X2, self.__sample2block): pb.sums[ib] += s pb.sums2[ib] += s2 pb.nsamples[ib] += 1 if pb.labels[ib] is None: pb.labels[ib] = l else: assert(pb.labels[ib] == l) pb.labels = np.asanyarray(pb.labels) # additional silly tests for paranoid assert(pb.labels.dtype.kind == 'i') def _compute_pl_stats(self, sis, pl): """ Uses blocked stats to get stats across given samples' indexes (might be training or testing) Parameters ---------- sis : array of int Indexes of samples *args: In-place containers """ # local binding pb = self.__pb # convert to blocks training split bis = np.unique(self.__sample2block[sis]) # Let's collect stats summaries nsamples = 0 for il, l in enumerate(self._ulabels_numeric): bis_il = bis[pb.labels[bis] == l] pl.nsamples[il] = N_float = \ float(np.sum(pb.nsamples[bis_il])) nsamples += N_float if N_float == 0.0: pl.variances[il] = pl.sums[il] \ = pl.means[il] = pl.sums2[il] = 0. else: pl.sums[il] = np.sum(pb.sums[bis_il], axis=0) pl.means[il] = pl.sums[il] / N_float pl.sums2[il] = np.sum(pb.sums2[bis_il], axis=0) ## Actually compute the non-0 pl.variances non0labels = (pl.nsamples.squeeze() != 0) if np.all(non0labels): # For a possible tiny speed up avoiding copying and # using (no) slicing non0labels = slice(None) return nsamples, non0labels def _sl_call(self, dataset, roi_ids, nproc): """Call to SimpleStatBaseSearchlight """ # Local bindings generator = self.generator qe = self.queryengine errorfx = self.errorfx if __debug__: time_start = time.time() targets_sa_name = self._get_space() targets_sa = dataset.sa[targets_sa_name] if __debug__: debug_slc_ = 'SLC_' in debug.active # get the dataset information into easy vars X = dataset.samples if len(X.shape) != 2: raise ValueError( 'Unlike a classifier, %s (for now) operates on already' 'flattened datasets' % (self.__class__.__name__)) labels = targets_sa.value ulabels = targets_sa.unique nlabels = len(ulabels) label2index = dict((l, il) for il, l in enumerate(ulabels)) labels_numeric = np.array([label2index[l] for l in labels]) self._ulabels_numeric = [label2index[l] for l in ulabels] # set the feature dimensions nsamples = len(X) nrois = len(roi_ids) s_shape = X.shape[1:] # shape of a single sample # The shape of results r_shape = (nrois,) + X.shape[2:] def assign_ulabels(a): out = np.empty(shape=a.shape, dtype=ulabels.dtype) it = np.nditer([a, out], flags = ['external_loop', 'buffered'], op_flags = [['readonly'], ['writeonly', 'allocate', 'no_broadcast']]) for x, y in it: y[...] = ulabels[x] return it.operands[1] # # Everything toward optimization ;) # # Silly Yarik thinks that it might be worth to pre-compute # statistics per each feature within a block of the samples # which always come together in splits -- most often it is a # (chunk, label) combination, but since we simply use a # generator -- who knows! Therefore lets figure out what are # those blocks and operate on them instead of original samples. # # After additional thinking about this -- probably it would be # just minor additional improvements (ie not worth it) but # since it is coded already -- let it be so # 1. Query generator for the splits we will have if __debug__: debug('SLC', 'Phase 1. Initializing partitions using %s on %s' % (generator, dataset)) # Lets just create a dummy ds which will store for us actual sample # indicies # XXX we could make it even more lightweight I guess... dataset_indicies = Dataset(np.arange(nsamples), sa=dataset.sa) splitter = Splitter(attr=generator.get_space(), attr_values=[1, 2]) \ if self._splitter is None \ else self._splitter partitions = list(generator.generate(dataset_indicies)) \ if generator \ else [dataset_indicies] if __debug__: for p in partitions: assert(p.shape[1] == 1) if not (np.all(p.sa[targets_sa_name].value == labels[p.samples[:, 0]])): raise NotImplementedError( "%s does not yet support partitioners altering the targets " "(e.g. permutators)" % self.__class__) nsplits = len(partitions) # ATM we need to keep the splits instead since they are used # in two places in the code: step 2 and 5 # We care only about training and testing partitions (i.e. first two) splits = list(tuple(splitter.generate(ds_))[:2] for ds_ in partitions) del partitions # not used any longer # 2. Figure out the new 'chunks x labels' blocks of combinations # of samples if __debug__: debug('SLC', 'Phase 2. Blocking data for %i splits and %i labels' % (nsplits, nlabels)) # array of indicies for label, split1, split2, ... # through which we will pass later on to figure out # unique combinations combinations = np.ones((nsamples, 1+nsplits), dtype=int)*-1 # labels combinations[:, 0] = labels_numeric for ipartition, (split1, split2) in enumerate(splits): combinations[split1.samples[:, 0], 1+ipartition] = 1 combinations[split2.samples[:, 0], 1+ipartition] = 2 # Check for over-sampling, i.e. no same sample used twice here if not (len(np.unique(split1.samples[:, 0])) == len(split1) and len(np.unique(split2.samples[:, 0])) == len(split2)): raise RuntimeError( "%s needs a partitioner which does not reuse " "the same the same samples more than once" % self.__class__) # sample descriptions -- should be unique for # samples within the same block descriptions = [tuple(c) for c in combinations] udescriptions = sorted(list(set(descriptions))) nblocks = len(udescriptions) description2block = dict([(d, i) for i, d in enumerate(udescriptions)]) # Indices for samples to point to their block self.__sample2block = sample2block = \ np.array([description2block[d] for d in descriptions]) # 3. Compute statistics per each block # if __debug__: debug('SLC', 'Phase 3. Computing statistics for %i blocks' % (nblocks,)) self._compute_pb_stats(labels_numeric, X, (nblocks,) + s_shape) # derived classes might decide differently on what they # actually need, so defer reserving the space and computing # stats to them self._reserve_pl_stats_space((nlabels, ) + s_shape) # results if errorfx is mean_mismatch_error: # if we know how it would look like, prepare the storage results = np.zeros((nsplits,) + r_shape) else: # Otherwise delay assembling the results results = [] all_targets, all_cvfolds = [], [] # 4. Lets deduce all neighbors... might need to be RF into the # parallel part later on # TODO: needs OPT since this is the step consuming 50% of time # or more allow to cache them entirely so this would # not be an unnecessary burden during permutation testing if not self.reuse_neighbors or self.__roi_fids is None: if __debug__: debug('SLC', 'Phase 4. Deducing neighbors information for %i ROIs' % (nrois,)) roi_fids = [qe.query_byid(f) for f in roi_ids] else: if __debug__: debug('SLC', 'Phase 4. Reusing neighbors information for %i ROIs' % (nrois,)) roi_fids = self.__roi_fids self.ca.roi_feature_ids = roi_fids roi_sizes = [] if isinstance(roi_fids, list): nroi_fids = len(roi_fids) if self.ca.is_enabled('roi_sizes'): roi_sizes = [len(x) for x in roi_fids] elif externals.exists('scipy') and isinstance(roi_fids, sps.spmatrix): nroi_fids = roi_fids.shape[1] if self.ca.is_enabled('roi_sizes'): # very expensive operation, so better not to ask over again # roi_sizes = [roi_fids.getrow(r).nnz for r in range(nroi_fids)] warning("Since 'sparse' trick is used, extracting sizes of " "roi's are expensive at this point. Get them from the " ".ca value of the original instance before " "calling again and using reuse_neighbors") else: raise RuntimeError("Should not be reachable") # Since this is ad-hoc implementation of the searchlight, we are not passing # those via ds.a but rather assign directly to self.ca self.ca.roi_sizes = roi_sizes indexsum = self._indexsum if indexsum == 'sparse': if not self.reuse_neighbors or self.__roi_fids is None: if __debug__: debug('SLC', 'Phase 4b. Converting neighbors to sparse matrix ' 'representation') # convert to "sparse representation" where column j contains # 1s only at the roi_fids[j] indices roi_fids = inds_to_coo(roi_fids, shape=(dataset.nfeatures, nroi_fids)) indexsum_fx = lastdim_columnsums_spmatrix elif indexsum == 'fancy': indexsum_fx = lastdim_columnsums_fancy_indexing else: raise ValueError( "Do not know how to deal with indexsum=%s" % indexsum ) # Store roi_fids if self.reuse_neighbors and self.__roi_fids is None: self.__roi_fids = roi_fids # 5. Lets do actual "splitting" and "classification" if __debug__: debug('SLC', 'Phase 5. Major loop' ) for isplit, split in enumerate(splits): if __debug__: debug('SLC', ' Split %i out of %i' % (isplit+1, nsplits)) # figure out for a given splits the blocks we want to work # with # sample_indicies training_sis = split[0].samples[:, 0] testing_sis = split[1].samples[:, 0] # That is the GNB specificity targets, predictions = self._sl_call_on_a_split( split, X, # X2 might light to go training_sis, testing_sis, ## training_nsamples, # GO? == np.sum(pl.nsamples) ## training_non0labels, ## pl.sums, pl.means, pl.sums2, pl.variances, # passing nroi_fids as well since in 'sparse' way it has no 'length' nroi_fids, roi_fids, indexsum_fx, labels_numeric, ) # assess the errors if __debug__: debug('SLC', " Assessing accuracies") if errorfx is mean_mismatch_error: results[isplit, :] = \ (predictions != targets[:, None]).sum(axis=0) \ / float(len(targets)) all_cvfolds += [isplit] elif errorfx: # somewhat silly but a way which allows to use pre-crafted # error functions without a chance to screw up result = np.atleast_2d( np.array([errorfx(fpredictions, targets) for fpredictions in predictions.T])) results.append(result) all_cvfolds += [isplit] * result.shape[0] else: # and if no errorfx -- we just need to assign original # labels to the predictions BUT keep in mind that it is a matrix results.append(assign_ulabels(predictions)) all_targets += [ulabels[i] for i in targets] all_cvfolds += [isplit] * len(targets) pass # end of the split loop if isinstance(results, list): # we have just collected them, now they need to be vstacked results = np.vstack(results) assert(results.ndim >= 2) if __debug__: debug('SLC', "%s._call() is done in %.3g sec" % (self.__class__.__name__, time.time() - time_start)) out = Dataset(results) if all_targets: out.sa['targets'] = all_targets out.sa['cvfolds'] = all_cvfolds out.fa['center_ids'] = roi_ids return out generator = property(fget=lambda self: self._generator) splitter = property(fget=lambda self: self._splitter) errorfx = property(fget=lambda self: self._errorfx) indexsum = property(fget=lambda self: self._indexsum) reuse_neighbors = property(fget=lambda self: self.__reuse_neighbors) pymvpa2-2.6.4/mvpa2/measures/anova.py000066400000000000000000000142541323370031300174510ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Univariate ANOVA""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals from mvpa2.measures.base import FeaturewiseMeasure from mvpa2.base.dataset import vstack from mvpa2.datasets.base import Dataset # TODO: Extend with access to functionality from scipy.stats? # For binary: # 2-sample kolmogorov-smirnof might be interesting # (scipy.stats.ks_2samp) to judge if two conditions are derived # from different distributions (take it as 'activity' vs 'rest'), # # For binary+multiclass: # kruskal-wallis H-test (scipy.stats.kruskal) # # and may be some others class OneWayAnova(FeaturewiseMeasure): """`FeaturewiseMeasure` that performs a univariate ANOVA. F-scores are computed for each feature as the standard fraction of between and within group variances. Groups are defined by samples with unique labels. No statistical testing is performed, but raw F-scores are returned as a sensitivity map. As usual F-scores have a range of [0,inf] with greater values indicating higher sensitivity. The sensitivity map is returned as a single-sample dataset. If SciPy is available the associated p-values will also be computed and are available from the 'fprob' feature attribute. """ def __init__(self, space='targets', **kwargs): """ Parameters ---------- space : str What samples attribute to use as targets (labels). """ # set auto-train flag since we have nothing special to be done # so by default auto train kwargs['auto_train'] = kwargs.get('auto_train', True) FeaturewiseMeasure.__init__(self, space=space, **kwargs) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] if self.get_space() != 'targets': prefixes += ['targets_attr=%r' % (self.get_space())] return \ super(FeaturewiseMeasure, self).__repr__(prefixes=prefixes) def _call(self, dataset): # This code is based on SciPy's stats.f_oneway() # Copyright (c) Gary Strangman. All rights reserved # License: BSD # # However, it got tweaked and optimized to better fit into PyMVPA. # number of groups targets_sa = dataset.sa[self.get_space()] labels = targets_sa.value ul = targets_sa.unique na = len(ul) alldata = dataset.samples # total squares of sums # determine data-dtype for derived "sum of" measurements, which we need # to have as float for proper divisions so_dtype = np.float if np.issubdtype(alldata.dtype, np.integer) else alldata.dtype bign = dataset.nsamples sostot = np.sum(alldata, axis=0, dtype=so_dtype) sostot *= sostot sostot /= bign # total sum of squares sstot = np.sum(alldata * alldata, axis=0, dtype=so_dtype) - sostot # between group sum of squares ssbn = np.zeros(dataset.nfeatures, dtype=so_dtype) for l in ul: # all samples for the respective label d = alldata[labels == l] sos = np.sum(d, axis=0, dtype=so_dtype) sos *= sos sos /= len(d) # inplace so we don't demand new temp storage ssbn += sos ssbn -= sostot # within sswn = sstot - ssbn # degrees of freedom dfbn = na - 1 dfwn = bign - na # mean sums of squares msb = ssbn / float(dfbn) msw = sswn / float(dfwn) f = msb / msw # assure no NaNs -- otherwise it leads instead of # sane unittest failure (check of NaNs) to crazy # File "mtrand.pyx", line 1661, in mtrand.shuffle # TypeError: object of type 'numpy.int64' has no len() # without any sane backtrace f[np.isnan(f)] = 0 if externals.exists('scipy'): from scipy.stats.stats import special return Dataset(f[np.newaxis], fa={'fprob': special.fdtrc(dfbn, dfwn, f)}) else: return Dataset(f[np.newaxis]) class CompoundOneWayAnova(OneWayAnova): """Compound comparisons via univariate ANOVA. This measure compute an ANOVA F-score per each feature, for each one-vs-rest comparison for all unique labels in a dataset. Each F-score vector for each comparison is included in the return datasets as a separate samples. Corresponding p-values are available in feature attributes named 'fprob_X', where `X` is the name of the actual comparison label. Note that p-values are only available, if SciPy is installed. The comparison labels for each F-vector are also stored as 'targets' sample attribute in the returned dataset. """ def _call(self, dataset): """Computes feature-wise f-scores using compound comparisons.""" targets_sa = dataset.sa[self.get_space()] orig_labels = targets_sa.value labels = orig_labels.copy() # Lets create a very shallow copy of a dataset with just # samples and targets_attr dataset_mod = Dataset(dataset.samples, sa={self.get_space(): labels}) results = [] for ul in targets_sa.unique: labels[orig_labels == ul] = 1 labels[orig_labels != ul] = 2 f_ds = OneWayAnova._call(self, dataset_mod) if 'fprob' in f_ds.fa: # rename the fprob attribute to something label specific # to survive final aggregation stage f_ds.fa['fprob_' + str(ul)] = f_ds.fa.fprob del f_ds.fa['fprob'] results.append(f_ds) # use 'update' strategy for fa since we need to accumulate all those # fprob_X's results = vstack(results, fa='update') results.sa[self.get_space()] = targets_sa.unique return results pymvpa2-2.6.4/mvpa2/measures/base.py000066400000000000000000001302521323370031300172540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Plumbing for measures: algorithms that quantify properties of datasets. Besides the `Measure` base class this module also provides the (abstract) `FeaturewiseMeasure` class. The difference between a general measure and the output of the `FeaturewiseMeasure` is that the latter returns a 1d map (one value per feature in the dataset). In contrast there are no restrictions on the returned value of `Measure` except for that it has to be in some iterable container. """ __docformat__ = 'restructuredtext' import numpy as np import mvpa2.support.copy as copy from mvpa2.base.node import Node from mvpa2.base.learner import Learner from mvpa2.base.state import ConditionalAttribute from mvpa2.misc.args import group_kwargs from mvpa2.misc.attrmap import AttributeMap from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.base.types import asobjarray from mvpa2.base.dochelpers import enhanced_doc_string, _str, _repr_attrs from mvpa2.base import externals, warning from mvpa2.clfs.stats import auto_null_dist from mvpa2.base.dataset import AttrDataset, vstack, hstack from mvpa2.datasets import Dataset from mvpa2.mappers.fx import BinaryFxNode from mvpa2.generators.splitters import Splitter if __debug__: from mvpa2.base import debug class Measure(Learner): """A measure computed from a `Dataset` All dataset measures support arbitrary transformation of the measure after it has been computed. Transformation are done by processing the measure with a functor that is specified via the `transformer` keyword argument of the constructor. Upon request, the raw measure (before transformations are applied) is stored in the `raw_results` conditional attribute. Additionally all dataset measures support the estimation of the probabilit(y,ies) of a measure under some distribution. Typically this will be the NULL distribution (no signal), that can be estimated with permutation tests. If a distribution estimator instance is passed to the `null_dist` keyword argument of the constructor the respective probabilities are automatically computed and stored in the `null_prob` conditional attribute. Notes ----- For developers: All subclasses shall get all necessary parameters via their constructor, so it is possible to get the same type of measure for multiple datasets by passing them to the __call__() method successively. """ null_prob = ConditionalAttribute(enabled=True) """Stores the probability of a measure under the NULL hypothesis""" null_t = ConditionalAttribute(enabled=False) """Stores the t-score corresponding to null_prob under assumption of Normal distribution""" def __init__(self, null_dist=None, **kwargs): """ Parameters ---------- null_dist : instance of distribution estimator The estimated distribution is used to assign a probability for a certain value of the computed measure. """ Learner.__init__(self, **kwargs) null_dist_ = auto_null_dist(null_dist) if __debug__: debug('SA', 'Assigning null_dist %s whenever original given was %s' % (null_dist_, null_dist)) self.__null_dist = null_dist_ __doc__ = enhanced_doc_string('Measure', locals(), Learner) def __repr__(self, prefixes=None): """String representation of a `Measure` Includes only arguments which differ from default ones """ if prefixes is None: prefixes = [] return super(Measure, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['null_dist'])) def _precall(self, ds): # estimate the NULL distribution when functor is given if self.__null_dist is not None: if __debug__: debug("STAT", "Estimating NULL distribution using %s" % self.__null_dist) # we need a matching measure instance, but we have to disable # the estimation of the null distribution in that child to prevent # infinite looping. measure = copy.copy(self) measure.__null_dist = None self.__null_dist.fit(measure, ds) def _postcall(self, dataset, result): """Some postprocessing on the result """ if self.__null_dist is None: # do base-class postcall and be done result = super(Measure, self)._postcall(dataset, result) else: # don't do a full base-class postcall, only do the # postproc-application here, to gain result compatibility with the # fitted null distribution -- necessary to be able to use # a Node's 'pass_attr' to pick up ca.null_prob result = self._apply_postproc(dataset, result) if self.ca.is_enabled('null_t'): # get probability under NULL hyp, but also request # either it belong to the right tail null_prob, null_right_tail = \ self.__null_dist.p(result, return_tails=True) self.ca.null_prob = null_prob externals.exists('scipy', raise_=True) from scipy.stats import norm # TODO: following logic should appear in NullDist, # not here tail = self.null_dist.tail if tail == 'left': acdf = np.abs(null_prob.samples) elif tail == 'right': acdf = 1.0 - np.abs(null_prob.samples) elif tail in ['any', 'both']: acdf = 1.0 - np.clip(np.abs(null_prob.samples), 0, 0.5) else: raise RuntimeError, 'Unhandled tail %s' % tail # We need to clip to avoid non-informative inf's ;-) # that happens due to lack of precision in mantissa # which is 11 bits in double. We could clip values # around 0 at as low as 1e-100 (correspond to z~=21), # but for consistency lets clip at 1e-16 which leads # to distinguishable value around p=1 and max z=8.2. # Should be sufficient range of z-values ;-) clip = 1e-16 null_t = norm.ppf(np.clip(acdf, clip, 1.0 - clip)) # assure that we deal with arrays: null_t = np.array(null_t, ndmin=1, copy=False) null_t[~null_right_tail] *= -1.0 # revert sign for negatives null_t_ds = null_prob.copy(deep=False) null_t_ds.samples = null_t self.ca.null_t = null_t_ds # store as a Dataset else: # get probability of result under NULL hypothesis if available # and don't request tail information self.ca.null_prob = self.__null_dist.p(result) # now do the second half of postcall and invoke pass_attr result = self._pass_attr(dataset, result) return result @property def null_dist(self): """Return Null Distribution estimator""" return self.__null_dist class ProxyMeasure(Measure): """Wrapper to allow for alternative post-processing of a shared measure. This class is useful whenever a measure (or for example a trained classifier) shall be utilized in multiple nodes, but each node needs to perform its on post-processing of results. One can simply wrap the measure into this class and assign arbitrary post-processing nodes to the wrapper, instead of the measure itself. """ def __init__(self, measure, skip_train=False, **kwargs): """ Parameters ---------- skip_train : bool, optional Flag whether the measure does not need to be really trained, since proxied measure is guaranteed to be trained appropriately prior to this call. Use with caution """ # by default auto train kwargs['auto_train'] = kwargs.get('auto_train', True) Measure.__init__(self, **kwargs) self.__measure = measure self.skip_train = skip_train def __repr__(self, prefixes=None): """String representation of a `ProxyMeasure` """ if prefixes is None: prefixes = [] return super(ProxyMeasure, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['measure']) + _repr_attrs(self, ['skip_train'], default=False) ) def _train(self, ds): if not self.skip_train: self.measure.train(ds) else: # only flag that it was trained self._set_trained() def _call(self, ds): return self.measure(ds) @property def measure(self): """Return proxied measure""" return self.__measure class RepeatedMeasure(Measure): """Repeatedly run a measure on generated dataset. A measure is ran multiple times on datasets yielded by a custom generator. Results of all measure runs are stacked and returned as a dataset upon call. """ repetition_results = ConditionalAttribute(enabled=False, doc= """Store individual result datasets for each repetition""") stats = ConditionalAttribute(enabled=False, doc= """Summary statistics about the node performance across all repetitions """) datasets = ConditionalAttribute(enabled=False, doc= """Store generated datasets for all repetitions. Can be memory expensive """) is_trained = True """Indicate that this measure is always trained.""" def __init__(self, node, generator=None, callback=None, concat_as='samples', **kwargs): """ Parameters ---------- node : Node Node or Measure implementing the procedure that is supposed to be run multiple times. generator : Node, optional Generator to yield a dataset for each measure run. The number of datasets returned by the node determines the number of runs. If no generator provided, a single input dataset is passed into the node. callback : functor, optional Optional callback to extract information from inside the main loop of the measure. The callback is called with the input 'data', the 'node' instance that is evaluated repeatedly and the 'result' of a single evaluation -- passed as named arguments (see labels in quotes) for every iteration, directly after evaluating the node. concat_as : {'samples', 'features'}, optional Along which axis to concatenate result dataset from all iterations. By default, results are 'vstacked' as multiple samples in the output dataset. Setting this argument to 'features' will change this to 'hstacking' along the feature axis. """ Measure.__init__(self, **kwargs) self._node = node self._generator = generator self._callback = callback self._concat_as = concat_as def __repr__(self, prefixes=None, exclude=None): if prefixes is None: prefixes = [] if exclude is None: exclude = [] return super(RepeatedMeasure, self).__repr__( prefixes=prefixes + _repr_attrs(self, [x for x in ['node', 'generator', 'callback'] if not x in exclude]) + _repr_attrs(self, ['concat_as'], default='samples') ) def _call(self, ds): # local binding generator = self._generator node = self._node ca = self.ca space = self.get_space() concat_as = self._concat_as if self.ca.is_enabled("stats") and (not 'stats' in node.ca or not node.ca.is_enabled("stats")): warning("'stats' conditional attribute was enabled, but " "the assigned node '%s' either doesn't support it, " "or it is disabled" % node) # precharge conditional attributes ca.datasets = [] # run the node an all generated datasets results = [] for i, sds in enumerate(generator.generate(ds) if generator else [ds]): if __debug__: debug('REPM', "%d-th iteration of %s on %s", (i, self, sds)) if ca.is_enabled("datasets"): # store dataset in ca ca.datasets.append(sds) # run the beast result = node(sds) # callback if self._callback is not None: self._callback(data=sds, node=node, result=result) # subclass postprocessing result = self._repetition_postcall(sds, node, result) if space: # XXX maybe try to get something more informative from the # processing node (e.g. in 0.5 it used to be 'chunks'->'chunks' # to indicate what was trained and what was tested. Now it is # more tricky, because `node` could be anything result.set_attr(space, (i,)) # store results.append(result) if ca.is_enabled("stats") and 'stats' in node.ca \ and node.ca.is_enabled("stats"): if not ca.is_set('stats'): # create empty stats container of matching type ca.stats = node.ca['stats'].value.__class__() # harvest summary stats ca['stats'].value.__iadd__(node.ca['stats'].value) # charge condition attribute self.ca.repetition_results = results # stack all results into a single Dataset if concat_as == 'samples': results = vstack(results, True) elif concat_as == 'features': results = hstack(results, True) else: raise ValueError("Unknown concatenation mode '%s'" % concat_as) # no need to store the raw results, since the Measure class will # automatically store them in a CA return results def _repetition_postcall(self, ds, node, result): """Post-processing handler for each repetition. Maybe overwritten in subclasses to harvest additional data. Parameters ---------- ds : Dataset Input dataset for the node for this repetition node : Node Node after having processed the input dataset result : Dataset Output dataset of the node for this repetition. Returns ------- dataset The result dataset. """ return result def _untrain(self): """Untrain this measure and the embedded node.""" self._node.untrain() super(RepeatedMeasure, self)._untrain() node = property(fget=lambda self: self._node) generator = property(fget=lambda self: self._generator) callback = property(fget=lambda self: self._callback) concat_as = property(fget=lambda self: self._concat_as) class CrossValidation(RepeatedMeasure): """Cross-validate a learner's transfer on datasets. A generator is used to resample a dataset into multiple instances (e.g. sets of dataset partitions for leave-one-out folding). For each dataset instance a transfer measure is computed by splitting the dataset into two parts (defined by the dataset generators output space) and train a custom learner on the first part and run it on the next. An arbitrary error function can by used to determine the learner's error when prediction the dataset part that has been unseen during training. """ training_stats = ConditionalAttribute(enabled=False, doc= """Summary statistics about the training status of the learner across all cross-validation fold.""") # TODO move conditional attributes from CVTE into this guy def __init__(self, learner, generator=None, errorfx=mean_mismatch_error, splitter=None, **kwargs): """ Parameters ---------- learner : Learner Any trainable node that shall be run on the dataset folds. generator : Node, optional Generator used to resample the input dataset into multiple instances (i.e. partitioning it). The number of datasets yielded by this generator determines the number of cross-validation folds. IMPORTANT: The ``space`` of this generator determines the attribute that will be used to split all generated datasets into training and testing sets. If None provided, a single original dataset will be passed to the ``splitter`` as is errorfx : Node or callable Custom implementation of an error function. The callable needs to accept two arguments (1. predicted values, 2. target values). If not a Node, it gets wrapped into a `BinaryFxNode`. splitter : Splitter or None A Splitter instance to split the dataset into training and testing part. The first split will be used for training and the second for testing -- all other splits will be ignored. If None, a default splitter is auto-generated using the ``space`` setting of the ``generator``. If no ``generator`` provided, splitter uses 'partitions' sample attribute. The default splitter is configured to return the ``1``-labeled partition of the input dataset at first, and the ``2``-labeled partition second. This behavior corresponds to most Partitioners that label the taken-out portion ``2`` and the remainder with ``1``. """ # compile the appropriate repeated measure to do cross-validation from # pieces if errorfx is not None: # error node -- postproc of transfer measure if isinstance(errorfx, Node): enode = errorfx else: # wrap into BinaryFxNode enode = BinaryFxNode(errorfx, learner.get_space()) else: enode = None if splitter is None: # default splitter splits into "1" and "2" partition. # that will effectively ignore 'deselected' samples (e.g. by # Balancer). It is done this way (and not by ignoring '0' samples # because it is guaranteed to yield two splits) and is more likely # to fail in visible ways if the attribute does not have 0,1,2 # values at all (i.e. a literal train/test/spareforlater attribute) splitter = Splitter( generator.get_space() if generator else 'partitions', attr_values=(1, 2)) # transfer measure to wrap the learner # splitter used the output space of the generator to know what to split tm = TransferMeasure(learner, splitter, postproc=enode) space = kwargs.pop('space', 'sa.cvfolds') # and finally the repeated measure to perform the x-val RepeatedMeasure.__init__(self, tm, generator=generator, space=space, **kwargs) for ca in ['stats', 'training_stats']: if self.ca.is_enabled(ca): # enforce ca if requested tm.ca.enable(ca) if self.ca.is_enabled('training_stats'): # also enable training stats in the learner learner.ca.enable('training_stats') def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CrossValidation, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['learner', 'splitter']) + _repr_attrs(self, ['errorfx'], default=mean_mismatch_error) + _repr_attrs(self, ['space'], default='sa.cvfolds'), # Since it is the constructor which generates and passes # node=TransferMeasure, it must not be present in __repr__ of CV # TODO: clear up hierarchy exclude=('node',) ) def _call(self, ds): # always untrain to wipe out previous stats self.untrain() return super(CrossValidation, self)._call(ds) def _repetition_postcall(self, ds, node, result): # local binding ca = self.ca if ca.is_enabled("training_stats"): if not ca.is_set('training_stats'): # create empty stats container of matching type ca.training_stats = node.ca['training_stats'].value.__class__() # harvest summary stats training_stats = node.ca['training_stats'].value if isinstance(training_stats, dict): # if it was a dictionary of results - we should collect them per item for k,v in training_stats.iteritems(): if not len(ca['training_stats'].value) or k not in ca['training_stats'].value: ca['training_stats'].value[k] = v else: ca['training_stats'].value[k].__iadd__(v) else: ca['training_stats'].value.__iadd__(node.ca['training_stats'].value) return result transfermeasure = property(fget=lambda self:self._node) # XXX Well, those properties are defined to match available # attributes to constructor arguments. Unfortunately our # hierarchy/API is not ideal at this point learner = property(fget=lambda self: self.transfermeasure.measure) splitter = property(fget=lambda self: self.transfermeasure.splitter) errorfx = property(fget=lambda self: self.transfermeasure.postproc) class TransferMeasure(Measure): """Train and run a measure on two different parts of a dataset. Upon calling a TransferMeasure instance with a dataset the input dataset is passed to a `Splitter` to will generate dataset subsets. The first generated dataset is used to train an arbitray embedded `Measure. Once trained, the measure is then called with the second generated dataset and the result is returned. """ stats = ConditionalAttribute(enabled=False, doc= """Optional summary statistics about the transfer performance""") training_stats = ConditionalAttribute(enabled=False, doc= """Summary statistics about the training status of the learner""") is_trained = True """Indicate that this measure is always trained.""" def __init__(self, measure, splitter, **kwargs): """ Parameters ---------- measure: Measure This measure instance is trained on the first dataset and called with the second. splitter: Splitter This splitter instance has to generate at least two dataset splits when called with the input dataset. The first split is used to train the measure, the second split is used to run the trained measure. """ Measure.__init__(self, **kwargs) self.__measure = measure self.__splitter = splitter def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(TransferMeasure, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['measure', 'splitter']) ) def _call(self, ds): # local binding measure = self.__measure splitter = self.__splitter ca = self.ca space = self.get_space() # generate the training and testing dataset subsequently to reduce the # memory footprint, i.e. the splitter might generate copies of the data # and no creates one at a time instead of two (for train and test) at # once # activate the dataset splitter dsgen = splitter.generate(ds) dstrain = dsgen.next() if not len(dstrain): raise ValueError( "Got empty training dataset from splitting in TransferMeasure. " "Unique values of input split attribute are: %s)" \ % (ds.sa[splitter.get_space()].unique)) if space: # get unique chunks for training set train_chunks = ','.join([str(i) for i in dstrain.get_attr(splitter.get_space())[0].unique]) # ask splitter for first part measure.train(dstrain) # cleanup to free memory del dstrain # TODO get training confusion/stats # run with second dstest = dsgen.next() if not len(dstest): raise ValueError( "Got empty testing dataset from splitting in TransferMeasure. " "Unique values of input split attribute are: %s)" \ % (ds.sa[splitter.get_space()].unique)) if space: # get unique chunks for testing set test_chunks = ','.join([str(i) for i in dstest.get_attr(splitter.get_space())[0].unique]) res = measure(dstest) if space: # will broadcast to desired length res.set_attr(space, ("%s->%s" % (train_chunks, test_chunks),)) # cleanup to free memory del dstest # compute measure stats if ca.is_enabled('stats'): if not hasattr(measure, '__summary_class__'): warning('%s has no __summary_class__ attribute -- ' 'necessary for computing transfer stats' % measure) else: stats = measure.__summary_class__( # hmm, might be unsupervised, i.e no targets... targets=res.sa[measure.get_space()].value, # XXX this should really accept the full dataset predictions=res.samples[:, 0], estimates=measure.ca.get('estimates', None)) ca.stats = stats if ca.is_enabled('training_stats'): if 'training_stats' in measure.ca \ and measure.ca.is_enabled("training_stats"): ca.training_stats = measure.ca.training_stats else: warning("'training_stats' conditional attribute was enabled, " "but the assigned measure '%s' either doesn't support " "it, or it is disabled" % measure) return res measure = property(fget=lambda self:self.__measure) splitter = property(fget=lambda self:self.__splitter) class FeaturewiseMeasure(Measure): """A per-feature-measure computed from a `Dataset` (base class). Should behave like a Measure. """ def _postcall(self, dataset, result): """Adjusts per-feature-measure for computed `result` """ # This method get the 'result' either as a 1D array, or as a Dataset # everything else is illegal. if not (len(result.shape) == 1 or isinstance(result, AttrDataset)): raise RuntimeError("FeaturewiseMeasures have to return " "their results as 1D array, or as a Dataset " "(error made by: '%s')." % repr(self)) return Measure._postcall(self, dataset, result) class StaticMeasure(Measure): """A static (assigned) sensitivity measure. Since implementation is generic it might be per feature or per whole dataset """ def __init__(self, measure=None, bias=None, *args, **kwargs): """Initialize. Parameters ---------- measure actual sensitivity to be returned bias optionally available bias """ Measure.__init__(self, *args, **kwargs) if measure is None: raise ValueError, "Sensitivity measure has to be provided" self.__measure = measure self.__bias = bias def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(StaticMeasure, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['measure', 'bias']) ) def _call(self, dataset): """Returns assigned sensitivity """ return self.__measure #XXX Might need to move into ConditionalAttribute? measure = property(fget=lambda self:self.__measure) bias = property(fget=lambda self:self.__bias) def _dont_force_slaves(slave_kwargs=None): """Helper to reset force_train in sensitivities with slaves """ if slave_kwargs is None: slave_kwargs = {} # We should not (or even must not in case of SplitCLF) force # training of slave analyzers since they would be trained # anyways by the Boosted analyzer's train # TODO: consider at least a warning whenever it is provided # and is True slave_kwargs = slave_kwargs or {} # make new instance of default empty one slave_kwargs['force_train'] = slave_kwargs.get('force_train', False) return slave_kwargs # # Flavored implementations of FeaturewiseMeasures class Sensitivity(FeaturewiseMeasure): """Sensitivities of features for a given Classifier. """ _LEGAL_CLFS = [] """If Sensitivity is classifier specific, classes of classifiers should be listed in the list """ def __init__(self, clf, force_train=True, **kwargs): """Initialize the analyzer with the classifier it shall use. Parameters ---------- clf : `Classifier` classifier to use. force_train : bool Flag whether the learner will enforce training on the input dataset upon every call. """ """Does nothing special.""" # by default auto train kwargs['auto_train'] = kwargs.get('auto_train', True) FeaturewiseMeasure.__init__(self, force_train=force_train, **kwargs) _LEGAL_CLFS = self._LEGAL_CLFS if len(_LEGAL_CLFS) > 0: found = False for clf_class in _LEGAL_CLFS: if isinstance(clf, clf_class): found = True break if not found: raise ValueError, \ "Classifier %s has to be of allowed class (%s), but is %r" \ % (clf, _LEGAL_CLFS, type(clf)) self.__clf = clf """Classifier used to computed sensitivity""" def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(Sensitivity, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['clf']) + _repr_attrs(self, ['force_train'], default=True) ) @property def is_trained(self): return self.__clf.trained # """Train classifier on `dataset` and then compute actual sensitivity. # If the classifier is already trained it is possible to extract the # sensitivities without passing a dataset. # """ # # local bindings # clf = self.__clf # if clf.trained: # self._set_trained() # elif self._force_training: # if dataset is None: # raise ValueError, \ # "Training classifier to compute sensitivities requires " \ # "a dataset." # self.train(dataset) # return FeaturewiseMeasure.__call__(self, dataset) def _set_classifier(self, clf): self.__clf = clf def _train(self, dataset): clf = self.__clf if __debug__: debug("SA", "Training classifier %s on %s %s", (clf, dataset, {False: "since it wasn't yet trained", True: "although it was trained previously"} [clf.trained])) return clf.train(dataset) def _untrain(self): """Untrain corresponding classifier for Sensitivity """ if self.__clf is not None: self.__clf.untrain() super(Sensitivity, self)._untrain() @property def feature_ids(self): """Return feature_ids used by the underlying classifier """ return self.__clf._get_feature_ids() clf = property(fget=lambda self:self.__clf, fset=_set_classifier) class CombinedFeaturewiseMeasure(FeaturewiseMeasure): """Set sensitivity analyzers to be merged into a single output""" sensitivities = ConditionalAttribute(enabled=False, doc="Sensitivities produced by each analyzer") # XXX think again about combiners... now we have it in here and as # well as in the parent -- FeaturewiseMeasure # YYY because we don't use parent's _call. Needs RF def __init__(self, analyzers=None, # XXX should become actually 'measures' sa_attr='combinations', **kwargs): """Initialize CombinedFeaturewiseMeasure Parameters ---------- analyzers : list or None List of analyzers to be used. There is no logic to populate such a list in __call__, so it must be either provided to the constructor or assigned to .analyzers prior calling sa_attr : str Name of the sa to be populated with the indexes of combinations """ if analyzers is None: analyzers = [] self._sa_attr = sa_attr FeaturewiseMeasure.__init__(self, **kwargs) self.__analyzers = analyzers """List of analyzers to use""" def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CombinedFeaturewiseMeasure, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['analyzers']) + _repr_attrs(self, ['sa_attr'], default='combinations') ) def _call(self, dataset): sensitivities = [] for ind, analyzer in enumerate(self.__analyzers): if __debug__: debug("SA", "Computing sensitivity for SA#%d:%s" % (ind, analyzer)) sensitivity = analyzer(dataset) sensitivities.append(sensitivity) if __debug__: debug("SA", "Returning %d sensitivities from %s" % (len(sensitivities), self.__class__.__name__)) sa_attr = self._sa_attr if isinstance(sensitivities[0], AttrDataset): smerged = [] for i, s in enumerate(sensitivities): s.sa[sa_attr] = np.repeat(i, len(s)) smerged.append(s) sensitivities = vstack(smerged) else: sensitivities = \ Dataset(sensitivities, sa={sa_attr: np.arange(len(sensitivities))}) self.ca.sensitivities = sensitivities return sensitivities def _untrain(self): """Untrain CombinedFDM """ if self.__analyzers is not None: for anal in self.__analyzers: anal.untrain() super(CombinedFeaturewiseMeasure, self)._untrain() ##REF: Name was automagically refactored def _set_analyzers(self, analyzers): """Set the analyzers """ self.__analyzers = analyzers """Analyzers to use""" analyzers = property(fget=lambda x:x.__analyzers, fset=_set_analyzers, doc="Used analyzers") class BoostedClassifierSensitivityAnalyzer(Sensitivity): """Set sensitivity analyzers to be merged into a single output""" # XXX we might like to pass parameters also for combined_analyzer @group_kwargs(prefixes=['slave_'], assign=True) def __init__(self, clf, analyzer=None, combined_analyzer=None, sa_attr='lrn_index', **kwargs): """Initialize Sensitivity Analyzer for `BoostedClassifier` Parameters ---------- clf : `BoostedClassifier` Classifier to be used analyzer : analyzer Is used to populate combined_analyzer sa_attr : str Name of the sa to be populated with the indexes of learners (passed to CombinedFeaturewiseMeasure is None is given in `combined_analyzer`) slave_* Arguments to pass to created analyzer if analyzer is None """ Sensitivity.__init__(self, clf, **kwargs) if analyzer is not None and len(self._slave_kwargs): raise ValueError, \ "Provide either analyzer of slave_* arguments, not both" # Do not force_train slave sensitivity since the dataset might # be inappropriate -- rely on the classifier being trained by # the extraction by the meta classifier itself self._slave_kwargs = _dont_force_slaves(self._slave_kwargs) if combined_analyzer is None: # sanitarize kwargs kwargs.pop('force_train', None) combined_analyzer = CombinedFeaturewiseMeasure(sa_attr=sa_attr, **kwargs) self.__combined_analyzer = combined_analyzer """Combined analyzer to use""" self.__analyzer = analyzer """Analyzer to use for basic classifiers within boosted classifier""" ## def __repr__(self, prefixes=[]): ## return super(BoostedClassifierSensitivityAnalyzer, self).__repr__( ## prefixes=prefixes ## + _repr_attrs(self, ['clf', 'analyzer', 'combined_analyzer']) ## + _repr_attrs(self, ['sa_attr'], default='combinations') ## ) def _untrain(self): """Untrain BoostedClassifierSensitivityAnalyzer """ if self.__analyzer is not None: self.__analyzer.untrain() self.__combined_analyzer.untrain() super(BoostedClassifierSensitivityAnalyzer, self)._untrain() def _call(self, dataset): analyzers = [] # create analyzers for clf in self.clf.clfs: if self.__analyzer is None: analyzer = clf.get_sensitivity_analyzer(**(self._slave_kwargs)) if analyzer is None: raise ValueError, \ "Wasn't able to figure basic analyzer for clf %r" % \ (clf,) if __debug__: debug("SA", "Selected analyzer %r for clf %r" % \ (analyzer, clf)) else: # XXX shallow copy should be enough... analyzer = copy.copy(self.__analyzer) # assign corresponding classifier analyzer.clf = clf # if clf was trained already - don't train again if clf.trained: analyzer._force_train = False analyzers.append(analyzer) self.__combined_analyzer.analyzers = analyzers # XXX not sure if we don't want to call directly ._call(dataset) to avoid # double application of transformers/combiners, after all we are just # 'proxying' here to combined_analyzer... # YOH: decided -- lets call ._call return self.__combined_analyzer._call(dataset) combined_analyzer = property(fget=lambda x:x.__combined_analyzer) class ProxyClassifierSensitivityAnalyzer(Sensitivity): """Set sensitivity analyzer output just to pass through""" clf_sensitivities = ConditionalAttribute(enabled=False, doc="Stores sensitivities of the proxied classifier") @group_kwargs(prefixes=['slave_'], assign=True) def __init__(self, clf, analyzer=None, **kwargs): """Initialize Sensitivity Analyzer for `BoostedClassifier` """ Sensitivity.__init__(self, clf, **kwargs) # _slave_kwargs is assigned due to assign=True in @group_kwargs if analyzer is not None and len(self._slave_kwargs): raise ValueError, \ "Provide either analyzer of slave_* arguments, not both" # Do not force_train slave sensitivity since the dataset might # be inappropriate -- rely on the classifier being trained by # the extraction by the meta classifier itself self._slave_kwargs = _dont_force_slaves(self._slave_kwargs) self.__analyzer = analyzer """Analyzer to use for basic classifiers within boosted classifier""" def _untrain(self): super(ProxyClassifierSensitivityAnalyzer, self)._untrain() if self.__analyzer is not None: self.__analyzer.untrain() def _call(self, dataset): # OPT: local bindings clfclf = self.clf.clf analyzer = self.__analyzer if analyzer is None: analyzer = clfclf.get_sensitivity_analyzer( **(self._slave_kwargs)) if analyzer is None: raise ValueError, \ "Wasn't able to figure basic analyzer for clf %s" % \ `clfclf` if __debug__: debug("SA", "Selected analyzer %s for clf %s" % \ (analyzer, clfclf)) # bind to the instance finally self.__analyzer = analyzer # TODO "remove" unnecessary things below on each call... # assign corresponding classifier analyzer.clf = clfclf # if clf was trained already - don't train again if clfclf.trained: analyzer._force_train = False result = analyzer._call(dataset) self.ca.clf_sensitivities = result return result analyzer = property(fget=lambda x:x.__analyzer) class BinaryClassifierSensitivityAnalyzer(ProxyClassifierSensitivityAnalyzer): """Set sensitivity analyzer output to have proper labels""" def _call(self, dataset): sens = super(self.__class__, self)._call(dataset) clf = self.clf targets_attr = clf.get_space() if targets_attr in sens.sa: # if labels are present -- transform them into meaningful tuples # (or not if just a single beast) am = AttributeMap(dict([(l, -1) for l in clf.neglabels] + [(l, +1) for l in clf.poslabels])) # XXX here we still can get a sensitivity per each label # (e.g. with SMLR as the slave clf), so I guess we should # tune up Multiclass...Analyzer to add an additional sa # And here we might need to check if asobjarray call is necessary # and should be actually done #asobjarray( sens.sa[targets_attr] = \ am.to_literal(sens.sa[targets_attr].value, recurse=True) return sens class RegressionAsClassifierSensitivityAnalyzer(ProxyClassifierSensitivityAnalyzer): """Set sensitivity analyzer output to have proper labels""" def _call(self, dataset): sens = super(RegressionAsClassifierSensitivityAnalyzer, self)._call(dataset) # We can have only a single sensitivity out of regression assert(sens.shape[0] == 1) clf = self.clf targets_attr = clf.get_space() if targets_attr not in sens.sa: # We just assign a tuple of all labels sorted labels = tuple(sorted(clf._trained_attrmap.values())) if len(clf._trained_attrmap): labels = clf._trained_attrmap.to_literal(labels, recurse=True) sens.sa[targets_attr] = asobjarray([labels]) return sens class FeatureSelectionClassifierSensitivityAnalyzer(ProxyClassifierSensitivityAnalyzer): pass class MappedClassifierSensitivityAnalyzer(ProxyClassifierSensitivityAnalyzer): """Set sensitivity analyzer output be reverse mapped using mapper of the slave classifier""" def _call(self, dataset): # incoming dataset need to be forward mapped dataset_mapped = self.clf.mapper(dataset) if __debug__: debug('SA', 'Mapped incoming dataset %s to %s' % (dataset_mapped, dataset)) sens = super(MappedClassifierSensitivityAnalyzer, self)._call(dataset_mapped) return self.clf.mapper.reverse(sens) def __str__(self): return _str(self, str(self.clf)) pymvpa2-2.6.4/mvpa2/measures/corrcoef.py000066400000000000000000000112061323370031300201410ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """FeaturewiseMeasure of correlation with the labels.""" __docformat__ = 'restructuredtext' from mvpa2.base import externals import numpy as np from mvpa2.measures.base import FeaturewiseMeasure from mvpa2.datasets.base import Dataset class CorrCoef(FeaturewiseMeasure): """`FeaturewiseMeasure` that performs correlation with labels XXX: Explain me! """ is_trained = True """Indicate that this measure is always trained.""" def __init__(self, pvalue=False, attr='targets', corr_backend=None, **kwargs): """Initialize Parameters ---------- pvalue : bool Either to report p-value of the Pearson's correlation coefficient instead of pure correlation coefficient attr : str What attribut to correlate with corr_backend: None or 'builtin' or 'scipy' (default: None) Which function to use to compute correlations. None means 'scipy' if pvalue else 'builtin'. """ # init base classes first FeaturewiseMeasure.__init__(self, **kwargs) self.__pvalue = int(pvalue) self.__attr = attr self.__corr_backend = corr_backend def _call(self, dataset): """Computes featurewise scores.""" backend = self.__corr_backend if backend is None: # if p values needed, use scipy # otherwise backend = ['builtin', 'scipy'][self.__pvalue] if backend == 'builtin': if self.__pvalue: raise ValueError("Not supported: 'builtin' and pvalue=True") pearsonr = lambda x, y:(pearson_correlation(x, y),) elif self.__corr_backend == 'scipy': if externals.exists('scipy', raise_=True): # TODO: implement corrcoef optionally without scipy, e.g. np.corrcoef from scipy.stats import pearsonr attrdata = dataset.sa[self.__attr].value if (np.issubdtype(attrdata.dtype, 'c') or np.issubdtype(attrdata.dtype, 'U')): raise ValueError("Correlation coefficent measure is not meaningful " "for datasets with literal labels.") samples = dataset.samples pvalue_index = self.__pvalue result = np.empty((dataset.nfeatures,), dtype=float) for ifeature in xrange(dataset.nfeatures): samples_ = samples[:, ifeature] corr = pearsonr(samples_, attrdata) corrv = corr[pvalue_index] # Should be safe to assume 0 corr_coef (or 1 pvalue) if value # is actually NaN, although it might not be the case (covar of # 2 constants would be NaN although should be 1) if np.isnan(corrv): if np.var(samples_) == 0.0 and np.var(attrdata) == 0.0 \ and len(samples_): # constant terms corrv = 1.0 - pvalue_index else: corrv = pvalue_index result[ifeature] = corrv return Dataset(result[np.newaxis]) def pearson_correlation(x, y=None): '''Computes pearson correlations on matrices Parameters ---------- x: np.ndarray or Dataset PxM array y: np.ndarray or Dataset or None (the default). PxN array. If None, then y=x. Returns ------- c: np.ndarray MxN array with c[i,j]=r(x[:,i],y[:,j]) Notes ----- Unlike numpy. this function behaves like matlab's 'corr' function. Its numerical precision is slightly lower than numpy's correlate function. Unlike scipy's 'pearsonr' function it does not return p values. TODO integrate with CorrCoef ''' if y is None: y = x def _get_data(ds): # support for dataset try: return ds.samples except: return ds x = _get_data(x) y = _get_data(y) xd = x - np.mean(x, axis=0) yd = y - np.mean(y, axis=0) if xd.shape[0] != yd.shape[0]: raise ValueError("Shape mismatch: %s != %s" % (xd.shape, yd.shape)) # normalize n = 1. / (x.shape[0] - 1) # normalize # standard deviation xs = (n * np.sum(xd * xd, axis=0)) ** -.5 ys = (n * np.sum(yd * yd, axis=0)) ** -.5 return n * np.dot(xd.T, yd) * np.tensordot(xs, ys, 0) pymvpa2-2.6.4/mvpa2/measures/corrstability.py000066400000000000000000000064131323370031300212350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Stability of labels across chunks based on correlation.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.measures.base import FeaturewiseMeasure class CorrStability(FeaturewiseMeasure): """Correlation of a feature values per each target across chunks. It will assesses feature stability across runs for each unique label by correlating feature values across all labels for pairwise combinations of the chunks. If there are multiple samples with the same label in a single chunk (as is typically the case) this algorithm will take the featurewise average of the sample activations to get a single value per label, per chunk. """ is_trained = True def __init__(self, space='targets', **kwargs): """Initialize Parameters ---------- space : str What samples attribute to use as targets (labels). """ # init base classes first FeaturewiseMeasure.__init__(self, space=space, **kwargs) def _call(self, dataset): """Computes feature-wise scores.""" # get the attributes (usually the labels) and the samples attrdata = dataset.sa[self.space].value samples = dataset.samples # take mean within chunks dat = [] labels = [] chunks = [] for c in dataset.uniquechunks: for l in np.unique(attrdata): ind = (dataset.chunks==c)&(attrdata==l) if ind.sum() == 0: # no instances, so skip continue # append the mean, and the label/chunk info dat.append(np.mean(samples[ind, :], axis=0)) labels.append(l) chunks.append(c) # convert to arrays dat = np.asarray(dat) labels = np.asarray(labels) chunks = np.asarray(chunks) # get indices for correlation (all pairwise values across # chunks) ind1 = [] ind2 = [] for i,c1 in enumerate(np.unique(chunks)[:-1]): for c2 in np.unique(chunks)[i+1:]: for l in np.unique(labels): v1 = np.where((chunks==c1)&(labels==l))[0] v2 = np.where((chunks==c2)&(labels==l))[0] if labels[v1] == labels[v2]: # the labels match, so add them ind1.extend(v1) ind2.extend(v2) # convert the indices to arrays ind1 = np.asarray(ind1) ind2 = np.asarray(ind2) # remove the mean from the datasets dat1 = dat[ind1] - dat[ind1].mean(0)[np.newaxis] dat2 = dat[ind2] - dat[ind2].mean(0)[np.newaxis] # calculate the correlation from the covariance and std covar = (dat1*dat2).mean(0) / (dat1.std(0) * dat2.std(0)) covar[np.isnan(covar)] = 0.0 # reset nan's to 0s return covar pymvpa2-2.6.4/mvpa2/measures/fx.py000066400000000000000000000113231323370031300167540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Estimate featurewise measures by applying a function along samples.""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug import inspect, re import numpy as np from mvpa2.base import externals from mvpa2.base.dochelpers import _repr_attrs from mvpa2.measures.base import FeaturewiseMeasure from mvpa2.misc.attrmap import AttributeMap from mvpa2.datasets import Dataset class BinaryFxFeaturewiseMeasure(FeaturewiseMeasure): """A feature-wise measure to be computed against a samples attribute """ is_trained = True def __init__(self, fx, space='targets', uni=True, numeric=False, **kwargs): """ Parameters ---------- numeric: bool, optional Either attribute (e.g. 'targets') values should be converted to numeric values before computation """ super(BinaryFxFeaturewiseMeasure, self).__init__(space=space, **kwargs) self.fx = fx self.uni = uni self.numeric = numeric def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(BinaryFxFeaturewiseMeasure, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['fx']) + _repr_attrs(self, ['space'], default='targets') + _repr_attrs(self, ['uni'], default=True) + _repr_attrs(self, ['numeric'], default=False) ) def __str__(self, *args, **kwargs): fx_str = str(self.fx) # TODO: unify within dochelpers functionality? if fx_str.startswith("": try: # where feasible -- extract actual code fx_str = inspect.getsource(self.fx).strip() # tidy it up fx_str = re.sub("^\s*[A-Za-z_]*\s*=\s*", "", fx_str) except: pass return super(BinaryFxFeaturewiseMeasure, self).__str__(fx_str, *args, **kwargs) def _call(self, ds): y = ds.sa[self.space].value if self.numeric or ((self.numeric is None) and y.dtype.char == 'S'): y = AttributeMap().to_numeric(y) # TODO: if not self.uni: out = self.fx(ds.samples, y) else: out = np.array([self.fx(feat, y) for feat in ds.samples.T]) return Dataset(out[None], fa=ds.fa) if externals.exists('statsmodels'): import statsmodels.sandbox.distributions.mv_measures as mv_measures # TODO move under .support somewhere and submit a PR with fix to statsmodels def mutualinfo_kde(x, y): """A lean adapter for statsmodels mutualinfo_kde which retuns 0 for nan results """ res = mv_measures.mutualinfo_kde(x, y) if np.isnan(res): return 0 # could get out of bounds return res def targets_mutualinfo_kde(attr='targets'): """Compute mutual information between each features and a samples attribute (targets) Uses kernel density estimation for MI calculations """ return BinaryFxFeaturewiseMeasure(mutualinfo_kde, space=attr, uni=True, numeric=True) """ TODO: Doesn't work with "toy" test data $> nosetests -s -v --pdb --pdb-failures mvpa2/measures/fx.py:test_BinaryFxFeatureMeasure_mi mvpa2.measures.fx.test_BinaryFxFeatureMeasure_mi ... dcor: [[ 0.99998731]] mi b: > /usr/lib/python2.7/dist-packages/statsmodels/sandbox/distributions/mv_measures.py(106)mutualinfo_binned() -> shift[0] -= 2*1e-6 (Pdb) print y [ 0. 0.99 0. 1. ] (Pdb) print x [ 0. 1. 0. 1.] # implementation seems to be too raw to be useful def targets_mutualinfo_binned(attr='targets', bins='auto'): \"""Compute mutual information between each features and a samples attribute (targets) Bins input for MI calculations \""" return BinaryFxFeaturewiseMeasure( lambda x,y: mv_measures.mutualinfo_binned(x, y, bins), space=attr, uni=True, numeric=True) """ from mvpa2.misc.dcov import dcorcoef def targets_dcorrcoef(attr='targets'): """Return dCorr coefficient between each feature and a samples attribute (targets) """ return BinaryFxFeaturewiseMeasure(dcorcoef, space=attr, uni=True, numeric=True) # TODO: RF CorrCoef to use BinaryFxMeasure pymvpa2-2.6.4/mvpa2/measures/gnbsearchlight.py000066400000000000000000000176061323370031300213350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """An efficient implementation of searchlight for GNB. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import borrowkwargs, _repr_attrs from mvpa2.misc.neighborhood import IndexQueryEngine, Sphere from mvpa2.measures.adhocsearchlightbase import \ SimpleStatBaseSearchlight, _STATS if __debug__: from mvpa2.base import debug import time as time __all__ = [ "GNBSearchlight", 'sphere_gnbsearchlight' ] class GNBSearchlight(SimpleStatBaseSearchlight): """Efficient implementation of Gaussian Naive Bayes `Searchlight`. This implementation takes advantage that :class:`~mvpa2.clfs.gnb.GNB` is "naive" in its reliance on massive univariate conditional probabilities of each feature given a target class. Plain :class:`~mvpa2.measures.searchlight.Searchlight` analysis approach asks for the same information over again and over again for the same feature in multiple "lights". So it becomes possible to drastically cut running time of a Searchlight by pre-computing basic statistics necessary used by GNB beforehand and then doing their subselection for a given split/feature set. Kudos for the idea and showing that it indeed might be beneficial over generic Searchlight with GNB go to Francisco Pereira. """ @borrowkwargs(SimpleStatBaseSearchlight, '__init__') def __init__(self, gnb, generator, qe, **kwargs): """Initialize a GNBSearchlight Parameters ---------- gnb : `GNB` `GNB` classifier as the specification of what GNB parameters to use. Instance itself isn't used. """ # init base class first SimpleStatBaseSearchlight.__init__(self, generator, qe, **kwargs) self._gnb = gnb self.__pl_train = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(GNBSearchlight, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['gnb']) ) def _get_space(self): return self.gnb.get_space() def _untrain(self): super(GNBSearchlight, self)._untrain() self.__pl_train = None def _reserve_pl_stats_space(self, shape): # per each label: to be (re)computed within each loop split # Let's try to reuse the memory though pl = self.__pl_train = _STATS() pl.sums = np.zeros(shape) pl.means = np.zeros(shape) # means of squares for stddev computation pl.sums2 = np.zeros(shape) pl.variances = np.zeros(shape) # degenerate dimension are added for easy broadcasting later on pl.nsamples = np.zeros(shape[:1] + (1,)*(len(shape)-1)) def _sl_call_on_a_split(self, split, X, training_sis, testing_sis, nroi_fids, roi_fids, indexsum_fx, labels_numeric, ): """Call to GNBSearchlight """ # Local bindings gnb = self.gnb params = gnb.params pl = self.__pl_train # we want to reuse the same storage across # splits training_nsamples, non0labels = \ self._compute_pl_stats(training_sis, pl) nlabels = len(pl.nsamples) if params.common_variance: pl.variances[:] = \ np.sum(pl.sums2 - pl.sums * pl.means, axis=0) \ / training_nsamples else: pl.variances[non0labels] = \ (pl.sums2 - pl.sums * pl.means)[non0labels] \ / pl.nsamples[non0labels] # assign priors priors = gnb._get_priors( nlabels, training_nsamples, pl.nsamples) # proceed in a way we have in GNB code with logprob=True, # i.e. operating within the exponents -- should lead to some # performance advantage norm_weight = -0.5 * np.log(2*np.pi*pl.variances) # last added dimension would be for ROIs logpriors = np.log(priors[:, np.newaxis, np.newaxis]) if __debug__: debug('SLC', " 'Training' is done") # Now it is time to "classify" our samples. # and for that we first need to compute corresponding # probabilities (or may be un data = X[split[1].samples[:, 0]] # argument of exponentiation scaled_distances = \ -0.5 * (((data - pl.means[:, np.newaxis, ...])**2) \ / pl.variances[:, np.newaxis, ...]) # incorporate the normalization from normals lprob_csfs = norm_weight[:, np.newaxis, ...] + scaled_distances ## First we need to reshape to get class x samples x features lprob_csf = lprob_csfs.reshape(lprob_csfs.shape[:2] + (-1,)) ## Now we come to naive part which requires looping ## through all spheres if __debug__: debug('SLC', " Doing 'Searchlight'") # resultant logprobs for each class x sample x roi lprob_cs_sl = np.zeros(lprob_csfs.shape[:2] + (nroi_fids,)) indexsum_fx(lprob_csf, roi_fids, out=lprob_cs_sl) lprob_cs_sl += logpriors lprob_cs_cp_sl = lprob_cs_sl # for each of the ROIs take the class with maximal (log)probability predictions = lprob_cs_cp_sl.argmax(axis=0) # no need to map back [self.ulabels[c] for c in winners] #predictions = winners targets = labels_numeric[testing_sis] return targets, predictions gnb = property(fget=lambda self: self._gnb) @borrowkwargs(GNBSearchlight, '__init__', exclude=['roi_ids', 'queryengine']) def sphere_gnbsearchlight(gnb, generator, radius=1, center_ids=None, space='voxel_indices', *args, **kwargs): """Creates a `GNBSearchlight` to assess :term:`cross-validation` classification performance of GNB on all possible spheres of a certain size within a dataset. The idea of taking advantage of naiveness of GNB for the sake of quick searchlight-ing stems from Francisco Pereira (paper under review). Parameters ---------- radius : float All features within this radius around the center will be part of a sphere. center_ids : list of int List of feature ids (not coordinates) the shall serve as sphere centers. By default all features will be used (it is passed roi_ids argument for Searchlight). space : str Name of a feature attribute of the input dataset that defines the spatial coordinates of all features. **kwargs In addition this class supports all keyword arguments of :class:`~mvpa2.measures.gnbsearchlight.GNBSearchlight`. Notes ----- If any `BaseSearchlight` is used as `SensitivityAnalyzer` one has to make sure that the specified scalar `Measure` returns large (absolute) values for high sensitivities and small (absolute) values for low sensitivities. Especially when using error functions usually low values imply high performance and therefore high sensitivity. This would in turn result in sensitivity maps that have low (absolute) values indicating high sensitivities and this conflicts with the intended behavior of a `SensitivityAnalyzer`. """ # build a matching query engine from the arguments kwa = {space: Sphere(radius)} qe = IndexQueryEngine(**kwa) # init the searchlight with the queryengine return GNBSearchlight(gnb, generator, qe, roi_ids=center_ids, *args, **kwargs) pymvpa2-2.6.4/mvpa2/measures/irelief.py000066400000000000000000000416751323370031300177730ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Copyright (c) 2008 Emanuele Olivetti # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Multivariate Iterative RELIEF See : Y. Sun, Iterative RELIEF for Feature Weighting: Algorithms, Theories, and Applications, IEEE Trans. on Pattern Analysis and Machine Intelligence (TPAMI), vol. 29, no. 6, pp. 1035-1051, June 2007.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.datasets import Dataset from mvpa2.measures.base import FeaturewiseMeasure from mvpa2.kernels.np import ExponentialKernel from mvpa2.clfs.distance import pnorm_w if __debug__: from mvpa2.base import debug class IterativeRelief_Devel(FeaturewiseMeasure): """`FeaturewiseMeasure` that performs multivariate I-RELIEF algorithm. Batch version allowing various kernels. UNDER DEVELOPMENT. Batch I-RELIEF-2 feature weighting algorithm. Works for binary or multiclass class-labels. Batch version with complexity O(T*N^2*I), where T is the number of iterations, N the number of instances, I the number of features. See: Y. Sun, Iterative RELIEF for Feature Weighting: Algorithms, Theories, and Applications, IEEE Trans. on Pattern Analysis and Machine Intelligence (TPAMI), vol. 29, no. 6, pp. 1035-1051, June 2007. http://plaza.ufl.edu/sunyijun/Paper/PAMI_1.pdf Note that current implementation allows to use only exponential-like kernels. Support for linear kernel will be added later. """ is_trained = True """Indicate that this measure doesn't have to be trained""" def __init__(self, threshold = 1.0e-2, kernel = None, kernel_width = 1.0, w_guess = None, **kwargs): """Constructor of the IRELIEF class. """ # init base classes first FeaturewiseMeasure.__init__(self, **kwargs) # Threshold in W changes (stopping criterion for irelief) self.threshold = threshold if kernel is None: self.kernel = ExponentialKernel else: self.kernel = kernel self.w_guess = w_guess self.w = None self.kernel_width = kernel_width def compute_M_H(self, label): """Compute hit/miss dictionaries. For each instance compute the set of indices having the same class label and different class label. Note that this computation is independent of the number of features. """ M = {} H = {} for i in range(label.size): M[i] = np.where(label != label[i])[0] tmp = (np.where(label == label[i])[0]).tolist() tmp.remove(i) # There must be at least two exampls for class label[i] assert(tmp != []) H[i] = np.array(tmp) return M, H def _call(self, dataset): """Computes featurewise I-RELIEF weights.""" samples = dataset.samples NS, NF = samples.shape[:2] if self.w_guess is None: self.w = np.ones(NF, 'd') # do normalization in all cases to be safe :) self.w = self.w/(self.w**2).sum() M, H = self.compute_M_H(dataset.targets) while True: self.k = self.kernel(length_scale = self.kernel_width/self.w) d_w_k = self.k.computed(samples).as_raw_np() # set d_w_k to zero where distance=0 (i.e. kernel == # 1.0), otherwise I-RELIEF could not converge. # XXX Note that kernel==1 for distance=0 only for # exponential kernels!! IMPROVE d_w_k[np.abs(d_w_k-1.0) < 1.0e-15] = 0.0 ni = np.zeros(NF, 'd') for n in range(NS): # d_w_k[n,n] could be omitted since == 0.0 gamma_n = 1.0 - np.nan_to_num(d_w_k[n, M[n]].sum() \ / (d_w_k[n, :].sum()-d_w_k[n, n])) alpha_n = np.nan_to_num(d_w_k[n, M[n]]/(d_w_k[n, M[n]].sum())) beta_n = np.nan_to_num(d_w_k[n, H[n]]/(d_w_k[n, H[n]].sum())) m_n = (np.abs(samples[n, :] - samples[M[n], :]) \ * alpha_n[:, None]).sum(0) h_n = (np.abs(samples[n, :] - samples[H[n], :]) \ * beta_n[:, None]).sum(0) ni += gamma_n*(m_n-h_n) ni = ni/NS ni_plus = np.clip(ni, 0.0, np.inf) # set all negative elements to zero w_new = np.nan_to_num(ni_plus/(np.sqrt((ni_plus**2).sum()))) change = np.abs(w_new-self.w).sum() if __debug__ and 'IRELIEF' in debug.active: debug('IRELIEF', "change=%.4f max=%f min=%.4f mean=%.4f std=%.4f #nan=%d" % (change, w_new.max(), w_new.min(), w_new.mean(), w_new.std(), np.isnan(w_new).sum())) # update weights: self.w = w_new if change < self.threshold: break return Dataset(self.w[np.newaxis]) class IterativeReliefOnline_Devel(IterativeRelief_Devel): """`FeaturewiseMeasure` that performs multivariate I-RELIEF algorithm. Online version. UNDER DEVELOPMENT Online version with complexity O(T*N*I), where N is the number of instances and I the number of features. See: Y. Sun, Iterative RELIEF for Feature Weighting: Algorithms, Theories, and Applications, IEEE Trans. on Pattern Analysis and Machine Intelligence (TPAMI), vol. 29, no. 6, pp. 1035-1051, June 2007. http://plaza.ufl.edu/sunyijun/Paper/PAMI_1.pdf Note that this implementation is not fully online, since hit and miss dictionaries (H,M) are computed once at the beginning using full access to all labels. This can be easily corrected to a full online implementation. But this is not mandatory now since the major goal of this current online implementation is reduction of computational complexity. """ is_trained = True """Indicate that this measure doesn't have to be trained""" def __init__(self, a=5.0, permute=True, max_iter=3, **kwargs): """Constructor of the IRELIEF class. """ # init base classes first IterativeRelief_Devel.__init__(self, **kwargs) self.a = a # parameter of the learning rate self.permute = permute # shuffle data when running I-RELIEF self.max_iter = max_iter # maximum number of iterations def _call(self, dataset): """Computes featurewise I-RELIEF-2 weights. Online version.""" NS = dataset.samples.shape[0] NF = dataset.samples.shape[1] if self.w_guess is None: self.w = np.ones(NF, 'd') # do normalization in all cases to be safe :) self.w = self.w/(self.w**2).sum() M, H = self.compute_M_H(dataset.targets) ni = np.zeros(NF, 'd') pi = np.zeros(NF, 'd') if self.permute: # indices to go through samples in random order random_sequence = np.random.permutation(NS) else: random_sequence = np.arange(NS) change = self.threshold + 1.0 iteration = 0 counter = 0.0 while change > self.threshold and iteration < self.max_iter: if __debug__: debug('IRELIEF', "Iteration %d" % iteration) for t in range(NS): counter += 1.0 n = random_sequence[t] self.k = self.kernel(length_scale = self.kernel_width/self.w) d_w_k_xn_Mn = self.k.computed(dataset.samples[None, n, :], dataset.samples[M[n], :]).as_raw_np().squeeze() d_w_k_xn_Mn_sum = d_w_k_xn_Mn.sum() d_w_k_xn_x = self.k.computed(dataset.samples[None, n, :], dataset.samples).as_raw_np().squeeze() gamma_n = 1.0 - d_w_k_xn_Mn_sum / d_w_k_xn_x.sum() alpha_n = d_w_k_xn_Mn / d_w_k_xn_Mn_sum d_w_k_xn_Hn = self.k.computed(dataset.samples[None, n, :], dataset.samples[H[n], :]).as_raw_np().squeeze() beta_n = d_w_k_xn_Hn / d_w_k_xn_Hn.sum() m_n = (np.abs(dataset.samples[n, :] - dataset.samples[M[n], :]) \ * alpha_n[:, np.newaxis]).sum(0) h_n = (np.abs(dataset.samples[n, :] - dataset.samples[H[n], :]) \ * beta_n[:, np.newaxis]).sum(0) pi = gamma_n * (m_n-h_n) learning_rate = 1.0 / (counter * self.a + 1.0) ni_new = ni + learning_rate * (pi - ni) ni = ni_new # set all negative elements to zero ni_plus = np.clip(ni, 0.0, np.inf) w_new = np.nan_to_num(ni_plus / (np.sqrt((ni_plus ** 2).sum()))) change = np.abs(w_new - self.w).sum() if t % 10 == 0 and __debug__ and 'IRELIEF' in debug.active: debug('IRELIEF', "t=%d change=%.4f max=%f min=%.4f mean=%.4f std=%.4f" " #nan=%d" % (t, change, w_new.max(), w_new.min(), w_new.mean(), w_new.std(), np.isnan(w_new).sum())) self.w = w_new if change < self.threshold and iteration > 0: break iteration += 1 return Dataset(self.w[np.newaxis]) class IterativeRelief(FeaturewiseMeasure): """`FeaturewiseMeasure` that performs multivariate I-RELIEF algorithm. Batch version. Batch I-RELIEF-2 feature weighting algorithm. Works for binary or multiclass class-labels. Batch version with complexity O(T*N^2*I), where T is the number of iterations, N the number of instances, I the number of features. References ---------- Y. Sun, Iterative RELIEF for Feature Weighting: Algorithms, Theories, and Applications, IEEE Trans. on Pattern Analysis and Machine Intelligence (TPAMI), vol. 29, no. 6, pp. 1035-1051, June 2007. http://plaza.ufl.edu/sunyijun/Paper/PAMI_1.pdf Note that current implementation allows to use only exponential-like kernels. Support for linear kernel will be added later. """ is_trained = True """Indicate that this measure doesn't have to be trained""" def __init__(self, threshold=1.0e-2, kernel_width=1.0, w_guess=None, **kwargs): """Constructor of the IRELIEF class. """ # init base classes first FeaturewiseMeasure.__init__(self, **kwargs) # Threshold in W changes (stopping criterion for irelief). self.threshold = threshold self.w_guess = w_guess self.w = None self.kernel_width = kernel_width def compute_M_H(self, label): """Compute hit/miss dictionaries. For each instance compute the set of indices having the same class label and different class label. Note that this computation is independent of the number of features. XXX should it be some generic function since it doesn't use self """ M = {} H = {} for i in range(label.size): M[i] = np.where(label != label[i])[0] tmp = (np.where(label == label[i])[0]).tolist() tmp.remove(i) # There must be least two exampls for class label[i] assert(tmp != []) H[i] = np.array(tmp) return M, H def k(self, distances): """Exponential kernel.""" kd = np.exp(-distances/self.kernel_width) # set kd to zero where distance=0 otherwise I-RELIEF could not converge. kd[np.abs(distances) < 1.0e-15] = 0.0 return kd def _call(self, dataset): """Computes featurewise I-RELIEF weights.""" samples = dataset.samples NS, NF = samples.shape[:2] if self.w_guess is None: w = np.ones(NF, 'd') w /= (w ** 2).sum() # do normalization in all cases to be safe :) M, H = self.compute_M_H(dataset.targets) while True: d_w_k = self.k(pnorm_w(data1=samples, weight=w, p=1)) ni = np.zeros(NF, 'd') for n in range(NS): # d_w_k[n, n] could be omitted since == 0.0 gamma_n = 1.0 - np.nan_to_num(d_w_k[n, M[n]].sum() \ / (d_w_k[n, :].sum() - d_w_k[n, n])) alpha_n = np.nan_to_num(d_w_k[n, M[n]] / (d_w_k[n, M[n]].sum())) beta_n = np.nan_to_num(d_w_k[n, H[n]] / (d_w_k[n, H[n]].sum())) m_n = (np.abs(samples[n, :] - samples[M[n], :]) \ * alpha_n[:, None]).sum(0) h_n = (np.abs(samples[n, :] - samples[H[n], :]) \ * beta_n[:, None]).sum(0) ni += gamma_n*(m_n - h_n) ni = ni / NS ni_plus = np.clip(ni, 0.0, np.inf) # set all negative elements to zero w_new = np.nan_to_num(ni_plus / (np.sqrt((ni_plus**2).sum()))) change = np.abs(w_new - w).sum() if __debug__ and 'IRELIEF' in debug.active: debug('IRELIEF', "change=%.4f max=%f min=%.4f mean=%.4f std=%.4f #nan=%d" \ % (change, w_new.max(), w_new.min(), w_new.mean(), w_new.std(), np.isnan(w_new).sum())) # update weights: w = w_new if change < self.threshold: break self.w = w return Dataset(self.w[np.newaxis]) class IterativeReliefOnline(IterativeRelief): """`FeaturewiseMeasure` that performs multivariate I-RELIEF algorithm. Online version. This algorithm is exactly the one in the referenced paper (I-RELIEF-2 online), using weighted 1-norm and Exponential Kernel. """ is_trained = True """Indicate that this measure doesn't have to be trained""" def __init__(self, a=10.0, permute=True, max_iter=3, **kwargs): """Constructor of the IRELIEF class. """ # init base classes first IterativeRelief.__init__(self, **kwargs) self.a = a # parameter of the learning rate self.permute = permute # shuffle data when running I-RELIEF self.max_iter = max_iter # maximum number of iterations def _call(self, dataset): """Computes featurewise I-RELIEF-2 weights. Online version.""" # local bindings samples = dataset.samples NS, NF = samples.shape[:2] threshold = self.threshold a = self.a if self.w_guess is None: w = np.ones(NF, 'd') # do normalization in all cases to be safe :) w /= (w ** 2).sum() M, H = self.compute_M_H(dataset.targets) ni = np.zeros(NF, 'd') pi = np.zeros(NF, 'd') if self.permute: # indices to go through x in random order random_sequence = np.random.permutation(NS) else: random_sequence = np.arange(NS) change = threshold + 1.0 iteration = 0 counter = 0.0 while change > threshold and iteration < self.max_iter: if __debug__: debug('IRELIEF', "Iteration %d" % iteration) for t in range(NS): counter += 1.0 n = random_sequence[t] d_xn_x = np.abs(samples[n, :] - samples) d_w_k_xn_x = self.k((d_xn_x * w).sum(1)) d_w_k_xn_Mn = d_w_k_xn_x[M[n]] d_w_k_xn_Mn_sum = d_w_k_xn_Mn.sum() gamma_n = 1.0 - d_w_k_xn_Mn_sum / d_w_k_xn_x.sum() alpha_n = d_w_k_xn_Mn / d_w_k_xn_Mn_sum d_w_k_xn_Hn = d_w_k_xn_x[H[n]] beta_n = d_w_k_xn_Hn / d_w_k_xn_Hn.sum() m_n = (d_xn_x[M[n], :] * alpha_n[:, None]).sum(0) h_n = (d_xn_x[H[n], :] * beta_n[:, None]).sum(0) pi = gamma_n * (m_n - h_n) learning_rate = 1.0 / (counter * a + 1.0) ni_new = ni + learning_rate * (pi - ni) ni = ni_new # set all negative elements to zero ni_plus = np.clip(ni, 0.0, np.inf) w_new = np.nan_to_num(ni_plus / (np.sqrt((ni_plus ** 2).sum()))) change = np.abs(w_new - w).sum() if t % 10 == 0 and __debug__ and 'IRELIEF' in debug.active: debug('IRELIEF', "t=%d change=%.4f max=%f min=%.4f mean=%.4f std=%.4f" " #nan=%d" % (t, change, w_new.max(), w_new.min(), w_new.mean(), w_new.std(), np.isnan(w_new).sum())) w = w_new if change < threshold and iteration > 0: break iteration += 1 self.w = w return Dataset(self.w[np.newaxis]) pymvpa2-2.6.4/mvpa2/measures/nnsearchlight.py000066400000000000000000000234471323370031300212020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """An efficient implementation of searchlight for M1NN. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import borrowkwargs, _repr_attrs from mvpa2.misc.neighborhood import IndexQueryEngine, Sphere from mvpa2.clfs.distance import squared_euclidean_distance, one_minus_correlation from mvpa2.measures.adhocsearchlightbase import SimpleStatBaseSearchlight, \ _STATS if __debug__: from mvpa2.base import debug import time as time __all__ = [ "M1NNSearchlight", 'sphere_m1nnsearchlight' ] class M1NNSearchlight(SimpleStatBaseSearchlight): """Efficient implementation of Mean-Nearest-Neighbor `Searchlight`. """ @borrowkwargs(SimpleStatBaseSearchlight, '__init__') def __init__(self, knn, generator, qe, **kwargs): """Initialize a M1NNSearchlight TODO -- example? or just kill altogether rethink providing knn sample vs specifying all parameters explicitly Parameters ---------- knn : `kNN` Used to fetch space and dfx settings. TODO """ # verify that desired features are supported if knn.dfx == squared_euclidean_distance: self._distance = 'euclidean' elif knn.dfx == one_minus_correlation: self._distance = 'correlation' # we rely on having simple indexes for ROI members ATM if 'indexsum' in kwargs and kwargs['indexsum'] != 'fancy': raise ValueError("Can only use indexsum='fancy' with correlation distance.") kwargs['indexsum'] = 'fancy' else: raise ValueError( "%s distance function is not yet supported by M1NNSearchlight" % (knn.dfx,)) # init base class first SimpleStatBaseSearchlight.__init__(self, generator, qe, **kwargs) self._knn = knn self.__pl_train = self.__pl_test = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(M1NNSearchlight, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['knn']) ) def _get_space(self): return self.knn.get_space() def _untrain(self): super(M1NNSearchlight, self)._untrain() self.__pl_train = self.__pl_test = None def _reserve_pl_stats_space(self, shape): # per each label: to be (re)computed within each loop split # Let's try to reuse the memory though self.__pl_train = _STATS() self.__pl_test = _STATS() for pl in (self.__pl_train, self.__pl_test): pl.sums = np.zeros(shape) pl.means = np.zeros(shape) # means of squares for stddev computation pl.sums2 = np.zeros(shape) pl.variances = np.zeros(shape) # degenerate dimension are added for easy broadcasting later on pl.nsamples = np.zeros(shape[:1] + (1,)*(len(shape)-1)) def _sl_call_on_a_split(self, split, X, training_sis, testing_sis, nroi_fids, roi_fids, indexsum_fx, labels_numeric, ): """Call to M1NNSearchlight """ # Local bindings knn = self.knn params = knn.params pl_train = self.__pl_train pl_test = self.__pl_test training_nsamples, training_non0labels = \ self._compute_pl_stats(training_sis, pl_train) testing_nsamples, testing_non0labels = \ self._compute_pl_stats(testing_sis, pl_test) nlabels = len(pl_train.nsamples) assert(len(np.unique(labels_numeric)) == nlabels) assert(training_non0labels == slice(None)) # not sure/tested if we can handle this one assert(testing_non0labels == slice(None)) # not sure/tested if we can handle this one # squared distances between the means... # hm, but we need for each combination of labels # so we keep 0th dimension corresponding to test "samples/labels" if self._distance == 'euclidean': diff_pl_pl = pl_test.means[:, None] - pl_train.means[None,:] diff_pl_pl2 = np.square(diff_pl_pl) # XXX OPT: is it worth may be reserving the space beforehand? dist_pl_pl2_sl = np.zeros(diff_pl_pl2.shape[:-1] + (nroi_fids,)) indexsum_fx(diff_pl_pl2, roi_fids, out=dist_pl_pl2_sl) elif self._distance == 'correlation': roi_nfids = np.array(map(len, roi_fids)) # # voxels in each ROI # estimate the means of each of the searchlight within each condition # indexsum, divide by # of elements shape_ = pl_test.means.shape[:-1] + (nroi_fids,) def get_means_per_roi(pl): roi_means = np.empty(shape_) indexsum_fx(pl.means, roi_fids, out=roi_means) roi_means /= roi_nfids return roi_means roi_means_train = get_means_per_roi(pl_train) roi_means_test = get_means_per_roi(pl_test) # de-mean within each searchlight # problema since within each SL will be a different demean, and different # ROIs have different number of features so we can't just go into 3rd dimension # (well we probably could but not sure if it would benefit us) # we can't easily do that without going per each ROI I am afraid! # So let's stop being (way too) smart and just do per each ROI for now dist_pl_pl2_sl = np.ones((nlabels, nlabels, nroi_fids)) for i, (fids, nfids, mean_train, mean_test) in enumerate( zip(roi_fids, roi_nfids, roi_means_train.T, roi_means_test.T)): # Select those means from train and test # OPT: I could have avoided computing demeaned, but oh well -- will leave it for someone # to investigate on how much speed up it would get roi_train_demeaned = pl_train.means[:, fids] - mean_train[:, None] # estimate stddevs of each of the searchlight # take demeaned, square them, sum within each searchlight, divide by # of elements roi_train_std = np.sqrt(np.sum(roi_train_demeaned * roi_train_demeaned, axis=1) / nfids) roi_test_demeaned = pl_test.means[:, fids] - mean_test[:, None] # estimate stddevs of each of the searchlight # take demeaned, square them, sum within each searchlight, divide by # of elements roi_test_std = np.sqrt(np.sum(np.square(roi_test_demeaned), axis=1) / nfids) # estimate dot-products between each label pair of training/testing # product, sum, divide by # of elements in each searchlight dot_pl_pl = (roi_test_demeaned[:, None] * roi_train_demeaned[None, :]).mean(axis=-1) # correlations, and subtract them from 1 so we get a distance # divide by sttdevs of each pair of training/testing dist_pl_pl2_sl[:, :, i] -= dot_pl_pl / (roi_test_std[:, None] * roi_train_std[None, :]) else: raise RuntimeError("Must have not got here") # predictions are just the labels with minimal distance predictions = np.argmin(dist_pl_pl2_sl, axis=1) return np.asanyarray(self._ulabels_numeric), predictions knn = property(fget=lambda self: self._knn) @borrowkwargs(M1NNSearchlight, '__init__', exclude=['roi_ids', 'queryengine']) def sphere_m1nnsearchlight(knn, generator, radius=1, center_ids=None, space='voxel_indices', *args, **kwargs): """Creates a `M1NNSearchlight` to assess :term:`cross-validation` classification performance of M1NN on all possible spheres of a certain size within a dataset. The idea of taking advantage of naiveness of M1NN for the sake of quick searchlight-ing stems from Francisco Pereira (paper under review). Parameters ---------- radius : float All features within this radius around the center will be part of a sphere. center_ids : list of int List of feature ids (not coordinates) the shall serve as sphere centers. By default all features will be used (it is passed roi_ids argument for Searchlight). space : str Name of a feature attribute of the input dataset that defines the spatial coordinates of all features. **kwargs In addition this class supports all keyword arguments of :class:`~mvpa2.measures.nnsearchlight.M1NNSearchlight`. Notes ----- If any `BaseSearchlight` is used as `SensitivityAnalyzer` one has to make sure that the specified scalar `Measure` returns large (absolute) values for high sensitivities and small (absolute) values for low sensitivities. Especially when using error functions usually low values imply high performance and therefore high sensitivity. This would in turn result in sensitivity maps that have low (absolute) values indicating high sensitivities and this conflicts with the intended behavior of a `SensitivityAnalyzer`. """ # build a matching query engine from the arguments kwa = {space: Sphere(radius)} qe = IndexQueryEngine(**kwa) # init the searchlight with the queryengine return M1NNSearchlight(knn, generator, qe, roi_ids=center_ids, *args, **kwargs) pymvpa2-2.6.4/mvpa2/measures/noiseperturbation.py000066400000000000000000000102271323370031300221150ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Derive sensitivity maps for a metric by selective noise perturbation""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug from mvpa2.support.copy import deepcopy import numpy as np from mvpa2.measures.base import FeaturewiseMeasure from mvpa2.datasets.base import Dataset class NoisePerturbationSensitivity(FeaturewiseMeasure): """Sensitivity based on the effect of noise perturbation on a measure. This is a `FeaturewiseMeasure` that uses a scalar `Measure` and selective noise perturbation to compute a sensitivity map. First the scalar `Measure` computed using the original dataset. Next the data measure is computed multiple times each with a single feature in the dataset perturbed by noise. The resulting difference in the scalar `Measure` is used as the sensitivity for the respective perturbed feature. Large differences are treated as an indicator of a feature having great impact on the scalar `Measure`. Notes ----- The computed sensitivity map might have positive and negative values! """ is_trained = True """Indicate that this measure is always trained.""" def __init__(self, datameasure, noise=np.random.normal): """ Parameters ---------- datameasure : `Measure` Used to quantify the effect of noise perturbation. noise: Callable Used to generate noise. The noise generator has to return an 1d array of n values when called the `size=n` keyword argument. This is the default interface of the random number generators in NumPy's `random` module. """ # init base classes first FeaturewiseMeasure.__init__(self) self.__datameasure = datameasure self.__noise = noise def _call(self, dataset): # first cast to floating point dtype, because noise is most likely # floating point as well and '+=' on int would not do the right thing if not np.issubdtype(dataset.samples.dtype, np.float): ds = dataset.copy(deep=False) ds.samples = dataset.samples.astype('float32') dataset = ds if __debug__: nfeatures = dataset.nfeatures # using a list here, to be able to handle output of unknown # dimensionality sens_map = [] # compute the datameasure on the original dataset # this is used as a baseline orig_measure = self.__datameasure(dataset) # do for every _single_ feature in the dataset for feature in xrange(dataset.nfeatures): if __debug__: debug('PSA', "Analyzing %i features: %i [%i%%]" \ % (nfeatures, feature+1, float(feature+1)/nfeatures*100,), cr=True) # store current feature to restore it later on current_feature = dataset.samples[:, feature].copy() # add noise to current feature dataset.samples[:, feature] += self.__noise(size=len(dataset)) # compute the datameasure on the perturbed dataset perturbed_measure = self.__datameasure(dataset) # restore the current feature dataset.samples[:, feature] = current_feature # difference from original datameasure is sensitivity sens_map.append(perturbed_measure.samples - orig_measure.samples) if __debug__: debug('PSA', '') # turn into an array and get rid of unnecessary axes -- ideally yielding # 2D array sens_map = np.array(sens_map).squeeze() # swap first to axis: we have nfeatures on first but want it as second # in a dataset sens_map = np.swapaxes(sens_map, 0, 1) return Dataset(sens_map) pymvpa2-2.6.4/mvpa2/measures/rsa.py000066400000000000000000000411361323370031300171310ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Representational (dis)similarity analysis""" __docformat__ = 'restructuredtext' from itertools import combinations, product import numpy as np from mvpa2.measures.base import Measure from mvpa2.datasets.base import Dataset from mvpa2.base import externals from mvpa2.base.param import Parameter from mvpa2.base.constraints import EnsureChoice from mvpa2.mappers.fx import mean_group_sample if externals.exists('scipy', raise_=True): from scipy.spatial.distance import pdist, squareform, cdist from scipy.stats import rankdata, pearsonr class CDist(Measure): """Compute cross-validated dissimiliarity matrix for samples in a dataset This `Measure` can be trained on part of the dataset (for example, a partition) and called on another partition. It can be used in cross-validation to generate cross-validated RSA. Returns flattened dissimilarity values. """ pairwise_metric = Parameter('correlation', constraints='str', doc="""Distance metric to use for calculating pairwise vector distances for dissimilarity matrix (DSM). See scipy.spatial.distance.cdist for all possible metrics.""") pairwise_metric_kwargs = Parameter({}, doc="""kwargs dictionary passed to cdist. For example, if `pairwise_metric='mahalanobis'`, `pairwise_metric_kwargs` might contain the inverse of the covariance matrix.""") sattr = Parameter(['targets'], doc="""List of sample attributes whose unique values will be used to identify the samples groups. Typically your category labels or targets.""") def __init__(self, **kwargs): Measure.__init__(self, **kwargs) self._train_ds = None def _prepare_ds(self, ds): if self.params.sattr is not None: mgs = mean_group_sample(attrs=self.params.sattr) ds_ = mgs(ds) else: ds_ = ds.copy() return ds_ def _train(self, ds): self._train_ds = self._prepare_ds(ds) self.is_trained = True def _call(self, ds): test_ds = self._prepare_ds(ds) if test_ds.nsamples != self._train_ds.nsamples: raise ValueError('Datasets should have same sample size for dissimilarity, '\ 'nsamples for train: %d, test: %d'%(self._train_ds.nsamples, test_ds.nsamples)) # Call actual distance metric distds = cdist(self._train_ds.samples, test_ds.samples, metric=self.params.pairwise_metric, **self.params.pairwise_metric_kwargs) # Make target pairs sa_dict = dict() for k in self._train_ds.sa: if k in test_ds.sa: sa_dict[k] = list(product(self._train_ds.sa.get(k).value, test_ds.sa.get(k).value)) distds = Dataset(samples=distds.ravel()[:, None], sa=sa_dict) return distds class PDist(Measure): """Compute dissimiliarity matrix for samples in a dataset This `Measure` returns the upper triangle of the n x n disimilarity matrix defined as the pairwise distances between samples in the dataset, and where n is the number of samples. """ is_trained = True # Indicate that this measure is always trained. pairwise_metric = Parameter('correlation', constraints='str', doc="""\ Distance metric to use for calculating pairwise vector distances for dissimilarity matrix (DSM). See scipy.spatial.distance.pdist for all possible metrics.""") center_data = Parameter(False, constraints='bool', doc="""\ If True then center each column of the data matrix by subtracting the column mean from each element. This is recommended especially when using pairwise_metric='correlation'.""") square = Parameter(False, constraints='bool', doc="""\ If True return the square distance matrix, if False, returns the flattened upper triangle.""") def __init__(self, **kwargs): """ Returns ------- Dataset If square is False, contains a column vector of length = n(n-1)/2 of pairwise distances between all samples. A sample attribute ``pairs`` identifies the indices of input samples for each individual pair. If square is True, the dataset contains a square dissimilarty matrix and the entire sample attributes collection of the input dataset. """ super(PDist, self).__init__(**kwargs) def _call(self, ds): data = ds.samples # center data if specified if self.params.center_data: data = data - np.mean(data, 0) # get dsm dsm = pdist(data, metric=self.params.pairwise_metric) # if square return value make dsm square if self.params.square: # re-add the sample attributes -- should still be valid out = Dataset(squareform(dsm), sa=ds.sa) else: # add some attributes out = Dataset(dsm, sa=dict(pairs=list(combinations(range(len(ds)), 2)))) return out class PDistConsistency(Measure): """Calculate the correlations of PDist measures across chunks This measures the consistency in similarity structure across runs within individuals, or across individuals if the target dataset is made from several subjects in some common space and where the sample attribute specified as the chunks_attr codes for subject identity. @author: ACC Aug 2013 """ is_trained = True """Indicate that this measure is always trained.""" chunks_attr = Parameter('chunks', constraints='str', doc="""\ Chunks attribute to use for chunking dataset. Can be any samples attribute.""") pairwise_metric = Parameter('correlation', constraints='str', doc="""\ Distance metric to use for calculating dissimilarity matrices from the set of samples in each chunk specified. See spatial.distance.pdist for all possible metrics.""") consistency_metric = Parameter('pearson', constraints=EnsureChoice('pearson', 'spearman'), doc="""\ Correlation measure to use for the correlation between dissimilarity matrices.""") center_data = Parameter(False, constraints='bool', doc="""\ If True then center each column of the data matrix by subtracting the column mean from each element. This is recommended especially when using pairwise_metric='correlation'.""") square = Parameter(False, constraints='bool', doc="""\ If True return the square distance matrix, if False, returns the flattened upper triangle.""") def __init__(self, **kwargs): """ Returns ------- Dataset Contains the pairwise correlations between the DSMs computed from each chunk of the input dataset. If square is False, this is a column vector of length N(N-1)/2 for N chunks. If square is True, this is a square matrix of size NxN for N chunks. """ # TODO: Another metric for consistency metric could be the "Rv" # coefficient... (ac) # init base classes first super(PDistConsistency, self).__init__(**kwargs) def _call(self, dataset): """Computes the average correlation in similarity structure across chunks.""" chunks_attr = self.params.chunks_attr nchunks = len(dataset.sa[chunks_attr].unique) if nchunks < 2: raise StandardError("This measure calculates similarity consistency across " "chunks and is not meaningful for datasets with only " "one chunk:") dsms = [] chunks = [] for chunk in dataset.sa[chunks_attr].unique: data = np.atleast_2d( dataset.samples[dataset.sa[chunks_attr].value == chunk, :]) if self.params.center_data: data = data - np.mean(data, 0) dsm = pdist(data, self.params.pairwise_metric) dsms.append(dsm) chunks.append(chunk) dsms = np.vstack(dsms) if self.params.consistency_metric == 'spearman': dsms = np.apply_along_axis(rankdata, 1, dsms) corrmat = np.corrcoef(dsms) if self.params.square: ds = Dataset(corrmat, sa={self.params.chunks_attr: chunks}) else: ds = Dataset(squareform(corrmat, checks=False), sa=dict(pairs=list(combinations(chunks, 2)))) return ds class PDistTargetSimilarity(Measure): """Calculate the correlations of PDist measures with a target Target dissimilarity correlation `Measure`. Computes the correlation between the dissimilarity matrix defined over the pairwise distances between the samples of dataset and the target dissimilarity matrix. """ is_trained = True """Indicate that this measure is always trained.""" pairwise_metric = Parameter('correlation', constraints='str', doc="""\ Distance metric to use for calculating pairwise vector distances for dissimilarity matrix (DSM). See scipy.spatial.distance.pdist for all possible metrics.""") comparison_metric = Parameter('pearson', constraints=EnsureChoice('pearson', 'spearman'), doc="""\ Similarity measure to be used for comparing dataset DSM with the target DSM.""") center_data = Parameter(False, constraints='bool', doc="""\ If True then center each column of the data matrix by subtracting the column mean from each element. This is recommended especially when using pairwise_metric='correlation'.""") corrcoef_only = Parameter(False, constraints='bool', doc="""\ If True, return only the correlation coefficient (rho), otherwise return rho and probability, p.""") def __init__(self, target_dsm, **kwargs): """ Parameters ---------- target_dsm : array (length N*(N-1)/2) Target dissimilarity matrix Returns ------- Dataset If ``corrcoef_only`` is True, contains one feature: the correlation coefficient (rho); or otherwise two-features: rho plus p. """ # init base classes first super(PDistTargetSimilarity, self).__init__(**kwargs) self.target_dsm = target_dsm if self.params.comparison_metric == 'spearman': self.target_dsm = rankdata(target_dsm) def _call(self, dataset): data = dataset.samples if self.params.center_data: data = data - np.mean(data, 0) dsm = pdist(data, self.params.pairwise_metric) if self.params.comparison_metric == 'spearman': dsm = rankdata(dsm) rho, p = pearsonr(dsm, self.target_dsm) if self.params.corrcoef_only: return Dataset([rho], fa={'metrics': ['rho']}) else: return Dataset([[rho, p]], fa={'metrics': ['rho', 'p']}) class Regression(Measure): """ Given a dataset, compute regularized regression (Ridge or Lasso) on the computed neural dissimilarity matrix using an arbitrary number of predictors (model dissimilarity matrices). Requires scikit-learn """ is_trained = True """Indicate that this measure is always trained.""" # copied from PDist class XXX: ok or pass it in kwargs? pairwise_metric = Parameter('correlation', constraints='str', doc="""\ Distance metric to use for calculating pairwise vector distances for dissimilarity matrix (DSM). See scipy.spatial.distance.pdist for all possible metrics.""") center_data = Parameter(False, constraints='bool', doc="""\ If True then center each column of the data matrix by subtracting the column mean from each element. This is recommended especially when using pairwise_metric='correlation'.""") method = Parameter('ridge', constraints=EnsureChoice('ridge', 'lasso'), doc='Compute Ridge (l2) or Lasso (l1) regression') alpha = Parameter(1.0, constraints='float', doc='alpha parameter for lasso' 'regression') fit_intercept = Parameter(True, constraints='bool', doc='whether to fit the' 'intercept') rank_data = Parameter(True, constraints='bool', doc='whether to rank the neural dsm and the ' 'predictor dsms before running the regression model') normalize = Parameter(False, constraints='bool', doc='if True the predictors and neural dsm will be' 'normalized (z-scored) prior to the regression (and after ' 'the data ranking, if rank_data=True)') def __init__(self, predictors, keep_pairs=None, **kwargs): """ Parameters ---------- predictors : array (N*(N-1)/2, n_predictors) array containing the upper triangular matrix in vector form of the predictor Dissimilarity Matrices. Each column is a predictor dsm. keep_pairs : None or list or array indices in range(N*(N-1)/2) to keep before running the regression. All other elements will be removed. If None, the regression is run on the entire DSM. Returns ------- Dataset a dataset with n_predictors samples and one feature. If fit_intercept is True, the last sample is the intercept. """ super(Regression, self).__init__(**kwargs) if len(predictors.shape) == 1: raise ValueError('predictors have shape {0}. Make sure the array ' 'is at least 2d and transposed correctly'.format(predictors.shape)) self.predictors = predictors self.keep_pairs = keep_pairs def _call(self, dataset): externals.exists('skl', raise_=True) from sklearn.linear_model import Lasso, Ridge from sklearn.preprocessing import scale # first run PDist compute_dsm = PDist(pairwise_metric=self.params.pairwise_metric, center_data=self.params.center_data) dsm = compute_dsm(dataset) dsm_samples = dsm.samples if self.params.rank_data: dsm_samples = rankdata(dsm_samples) predictors = np.apply_along_axis(rankdata, 0, self.predictors) else: predictors = self.predictors if self.params.normalize: predictors = scale(predictors, axis=0) dsm_samples = scale(dsm_samples, axis=0) # keep only the item we want if self.keep_pairs is not None: dsm_samples = dsm_samples[self.keep_pairs] predictors = predictors[self.keep_pairs, :] # check that predictors and samples have the correct dimensions if dsm_samples.shape[0] != predictors.shape[0]: raise ValueError('computed dsm has {0} rows, while predictors have' '{1} rows. Check that predictors have the right' 'shape'.format(dsm_samples.shape[0], predictors.shape[0])) # now fit the regression if self.params.method == 'lasso': reg = Lasso elif self.params.method == 'ridge': reg = Ridge else: raise ValueError('I do not know method {0}'.format(self.params.method)) reg_ = reg(alpha=self.params.alpha, fit_intercept=self.params.fit_intercept) reg_.fit(predictors, dsm_samples) coefs = reg_.coef_.reshape(-1, 1) sa = ['coef' + str(i) for i in range(len(coefs))] if self.params.fit_intercept: coefs = np.vstack((coefs, reg_.intercept_)) sa += ['intercept'] return Dataset(coefs, sa={'coefs': sa}) pymvpa2-2.6.4/mvpa2/measures/searchlight.py000066400000000000000000000655651323370031300206550ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Searchlight implementation for arbitrary measures and spaces""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug import numpy as np import tempfile, os import time import mvpa2 from mvpa2.base import externals, warning from mvpa2.base.types import is_datasetlike from mvpa2.base.dochelpers import borrowkwargs, _repr_attrs from mvpa2.base.progress import ProgressBar if externals.exists('h5py'): # Is optionally required for passing searchlight # results via storing/reloading hdf5 files from mvpa2.base.hdf5 import h5save, h5load from mvpa2.datasets import hstack, Dataset from mvpa2.support import copy from mvpa2.featsel.base import StaticFeatureSelection from mvpa2.measures.base import Measure from mvpa2.base.state import ConditionalAttribute from mvpa2.misc.neighborhood import IndexQueryEngine, Sphere from mvpa2.mappers.base import ChainMapper from mvpa2.support.due import due, Doi class BaseSearchlight(Measure): """Base class for searchlights. The idea for a searchlight algorithm stems from a paper by :ref:`Kriegeskorte et al. (2006) `. """ roi_sizes = ConditionalAttribute(enabled=False, doc="Number of features in each ROI.") roi_feature_ids = ConditionalAttribute(enabled=False, doc="Feature IDs for all generated ROIs.") roi_center_ids = ConditionalAttribute(enabled=True, doc="Center ID for all generated ROIs.") is_trained = True """Indicate that this measure is always trained.""" def __init__(self, queryengine, roi_ids=None, nproc=None, **kwargs): """ Parameters ---------- queryengine : QueryEngine Engine to use to discover the "neighborhood" of each feature. See :class:`~mvpa2.misc.neighborhood.QueryEngine`. roi_ids : None or list(int) or str List of feature ids (not coordinates) the shall serve as ROI seeds (e.g. sphere centers). Alternatively, this can be the name of a feature attribute of the input dataset, whose non-zero values determine the feature ids. By default all features will be used. nproc : None or int How many processes to use for computation. Requires `pprocess` external module. If None -- all available cores will be used. **kwargs In addition this class supports all keyword arguments of its base-class :class:`~mvpa2.measures.base.Measure`. """ Measure.__init__(self, **kwargs) if nproc is not None and nproc > 1 and not externals.exists('pprocess'): raise RuntimeError("The 'pprocess' module is required for " "multiprocess searchlights. Please either " "install python-pprocess, or reduce `nproc` " "to 1 (got nproc=%i) or set to default None" % nproc) self._queryengine = queryengine if roi_ids is not None and not isinstance(roi_ids, str) \ and not len(roi_ids): raise ValueError, \ "Cannot run searchlight on an empty list of roi_ids" self.__roi_ids = roi_ids self.nproc = nproc def __repr__(self, prefixes=None): """String representation of a `Measure` Includes only arguments which differ from default ones """ if prefixes is None: prefixes = [] return super(BaseSearchlight, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['queryengine', 'roi_ids', 'nproc'])) @due.dcite( Doi('10.1073/pnas.0600244103'), description="Searchlight analysis approach", tags=["implementation"]) @due.dcite( Doi('10.1038/nrn1931'), description="Application of the searchlight approach to decoding using classifiers", tags=["use"]) def _call(self, dataset): """Perform the ROI search. """ # local binding nproc = self.nproc if nproc is None and externals.exists('pprocess'): import pprocess try: nproc = pprocess.get_number_of_cores() or 1 except AttributeError: warning("pprocess version %s has no API to figure out maximal " "number of cores. Using 1" % externals.versions['pprocess']) nproc = 1 # train the queryengine self._queryengine.train(dataset) # decide whether to run on all possible center coords or just a provided # subset if isinstance(self.__roi_ids, str): roi_ids = dataset.fa[self.__roi_ids].value.nonzero()[0] elif self.__roi_ids is not None: roi_ids = self.__roi_ids # safeguard against stupidity if __debug__: qe_ids = self._queryengine.ids # known to qe if not set(qe_ids).issuperset(roi_ids): raise IndexError( "Some roi_ids are not known to the query engine %s: %s" % (self._queryengine, set(roi_ids).difference(qe_ids))) else: roi_ids = self._queryengine.ids # pass to subclass results = self._sl_call(dataset, roi_ids, nproc) if 'mapper' in dataset.a: # since we know the space we can stick the original mapper into the # results as well if self.__roi_ids is None: results.a['mapper'] = copy.copy(dataset.a.mapper) else: # there is an additional selection step that needs to be # expressed by another mapper mapper = copy.copy(dataset.a.mapper) # NNO if the orignal mapper has no append (because it's not a # chainmapper, for example), we make our own chainmapper. # # THe original code was: # mapper.append(StaticFeatureSelection(roi_ids, # dshape=dataset.shape[1:])) feat_sel_mapper = StaticFeatureSelection(roi_ids, dshape=dataset.shape[1:]) if 'append' in dir(mapper): mapper.append(feat_sel_mapper) else: mapper = ChainMapper([dataset.a.mapper, feat_sel_mapper]) results.a['mapper'] = mapper # charge state self.ca.raw_results = results # return raw results, base-class will take care of transformations return results def _sl_call(self, dataset, roi_ids, nproc): """Classical generic searchlight implementation """ raise NotImplementedError("Must be implemented in the derived classes") queryengine = property(fget=lambda self: self._queryengine) roi_ids = property(fget=lambda self: self.__roi_ids) class Searchlight(BaseSearchlight): """The implementation of a generic searchlight measure. The idea for a searchlight algorithm stems from a paper by :ref:`Kriegeskorte et al. (2006) `. As a result it produces a map of measures given a `datameasure` instance of interest, which is ran at each spatial location. """ @staticmethod def _concat_results(sl=None, dataset=None, roi_ids=None, results=None): """The simplest implementation for collecting the results -- just put them into a list This this implementation simply collects them into a list and uses only sl. for assigning conditional attributes. But custom implementation might make use of more/less of them. Implemented as @staticmethod just to emphasize that in principle it is independent of the actual searchlight instance """ # collect results results = sum(results, []) if __debug__ and 'SLC' in debug.active: debug('SLC', '') # just newline resshape = len(results) and np.asanyarray(results[0]).shape or 'N/A' debug('SLC', ' hstacking %d results of shape %s' % (len(results), resshape)) # but be careful: this call also serves as conversion from parallel maps # to regular lists! # this uses the Dataset-hstack result_ds = hstack(results) if __debug__: debug('SLC', " hstacked shape %s" % (result_ds.shape,)) if sl.ca.is_enabled('roi_feature_ids'): sl.ca.roi_feature_ids = [r.a.roi_feature_ids for r in results] if sl.ca.is_enabled('roi_sizes'): sl.ca.roi_sizes = [r.a.roi_sizes for r in results] if sl.ca.is_enabled('roi_center_ids'): sl.ca.roi_center_ids = [r.a.roi_center_ids for r in results] if 'mapper' in dataset.a: # since we know the space we can stick the original mapper into the # results as well if roi_ids is None: result_ds.a['mapper'] = copy.copy(dataset.a.mapper) else: # there is an additional selection step that needs to be # expressed by another mapper mapper = copy.copy(dataset.a.mapper) # NNO if the orignal mapper has no append (because it's not a # chainmapper, for example), we make our own chainmapper. feat_sel_mapper = StaticFeatureSelection( roi_ids, dshape=dataset.shape[1:]) if hasattr(mapper, 'append'): mapper.append(feat_sel_mapper) else: mapper = ChainMapper([dataset.a.mapper, feat_sel_mapper]) result_ds.a['mapper'] = mapper # store the center ids as a feature attribute result_ds.fa['center_ids'] = roi_ids return result_ds def __init__(self, datameasure, queryengine, add_center_fa=False, results_postproc_fx=None, results_backend='native', results_fx=None, tmp_prefix='tmpsl', nblocks=None, **kwargs): """ Parameters ---------- datameasure : callable Any object that takes a :class:`~mvpa2.datasets.base.Dataset` and returns some measure when called. add_center_fa : bool or str If True or a string, each searchlight ROI dataset will have a boolean vector as a feature attribute that indicates the feature that is the seed (e.g. sphere center) for the respective ROI. If True, the attribute is named 'roi_seed', the provided string is used as the name otherwise. results_postproc_fx : callable Called with all the results computed in a block for possible post-processing which needs to be done in parallel instead of serial aggregation in results_fx. results_backend : ('native', 'hdf5'), optional Specifies the way results are provided back from a processing block in case of nproc > 1. 'native' is pickling/unpickling of results by pprocess, while 'hdf5' would use h5save/h5load functionality. 'hdf5' might be more time and memory efficient in some cases. results_fx : callable, optional Function to process/combine results of each searchlight block run. By default it would simply append them all into the list. It receives as keyword arguments sl, dataset, roi_ids, and results (iterable of lists). It is the one to take care of assigning roi_* ca's tmp_prefix : str, optional If specified -- serves as a prefix for temporary files storage if results_backend == 'hdf5'. Thus can specify the directory to use (trailing file path separator is not added automagically). nblocks : None or int Into how many blocks to split the computation (could be larger than nproc). If None -- nproc is used. **kwargs In addition this class supports all keyword arguments of its base-class :class:`~mvpa2.measures.searchlight.BaseSearchlight`. """ BaseSearchlight.__init__(self, queryengine, **kwargs) self.datameasure = datameasure self.results_postproc_fx = results_postproc_fx self.results_backend = results_backend.lower() if self.results_backend == 'hdf5': # Assure having hdf5 externals.exists('h5py', raise_=True) self.results_fx = Searchlight._concat_results \ if results_fx is None else results_fx self.tmp_prefix = tmp_prefix self.nblocks = nblocks if isinstance(add_center_fa, str): self.__add_center_fa = add_center_fa elif add_center_fa: self.__add_center_fa = 'roi_seed' else: self.__add_center_fa = False def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(Searchlight, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['datameasure']) + _repr_attrs(self, ['add_center_fa'], default=False) + _repr_attrs(self, ['results_postproc_fx']) + _repr_attrs(self, ['results_backend'], default='native') + _repr_attrs(self, ['results_fx', 'nblocks']) ) def _sl_call(self, dataset, roi_ids, nproc): """Classical generic searchlight implementation """ assert(self.results_backend in ('native', 'hdf5')) # compute if nproc is not None and nproc > 1: # split all target ROIs centers into `nproc` equally sized blocks nproc_needed = min(len(roi_ids), nproc) nblocks = nproc_needed \ if self.nblocks is None else self.nblocks roi_blocks = np.array_split(roi_ids, nblocks) # the next block sets up the infrastructure for parallel computing # this can easily be changed into a ParallelPython loop, if we # decide to have a PP job server in PyMVPA import pprocess p_results = pprocess.Map(limit=nproc_needed) if __debug__: debug('SLC', "Starting off %s child processes for nblocks=%i" % (nproc_needed, nblocks)) compute = p_results.manage( pprocess.MakeParallel(self._proc_block)) for iblock, block in enumerate(roi_blocks): # should we maybe deepcopy the measure to have a unique and # independent one per process? seed = mvpa2.get_random_seed() compute(block, dataset, copy.copy(self.__datameasure), seed=seed, iblock=iblock) else: # otherwise collect the results in an 1-item list p_results = [ self._proc_block(roi_ids, dataset, self.__datameasure)] # Finally collect and possibly process results # p_results here is either a generator from pprocess.Map or a list. # In case of a generator it allows to process results as they become # available result_ds = self.results_fx(sl=self, dataset=dataset, roi_ids=roi_ids, results=self.__handle_all_results(p_results)) # Assure having a dataset (for paranoid ones) if not is_datasetlike(result_ds): try: result_a = np.atleast_1d(result_ds) except ValueError, e: if 'setting an array element with a sequence' in str(e): # try forcing object array. Happens with # test_custom_results_fx_logic on numpy 1.4.1 on Debian # squeeze result_a = np.array(result_ds, dtype=object) else: raise result_ds = Dataset(result_a) return result_ds def _proc_block(self, block, ds, measure, seed=None, iblock='main'): """Little helper to capture the parts of the computation that can be parallelized Parameters ---------- seed RNG seed. Should be provided e.g. in child process invocations to guarantee that they all seed differently to not keep generating the same sequencies due to reusing the same copy of numpy's RNG block Critical for generating non-colliding temp filenames in case of hdf5 backend. Otherwise RNGs of different processes might collide in their temporary file names leading to problems. """ if seed is not None: mvpa2.seed(seed) if __debug__: debug_slc_ = 'SLC_' in debug.active debug('SLC', "Starting computing block for %i elements" % len(block)) start_time = time.time() results = [] store_roi_feature_ids = self.ca.is_enabled('roi_feature_ids') store_roi_sizes = self.ca.is_enabled('roi_sizes') store_roi_center_ids = self.ca.is_enabled('roi_center_ids') assure_dataset = any([store_roi_feature_ids, store_roi_sizes, store_roi_center_ids]) # put rois around all features in the dataset and compute the # measure within them bar = ProgressBar() for i, f in enumerate(block): # retrieve the feature ids of all features in the ROI from the query # engine roi_specs = self._queryengine[f] if __debug__ and debug_slc_: debug('SLC_', 'For %r query returned roi_specs %r' % (f, roi_specs)) if is_datasetlike(roi_specs): # TODO: unittest assert(len(roi_specs) == 1) roi_fids = roi_specs.samples[0] else: roi_fids = roi_specs # slice the dataset roi = ds[:, roi_fids] if is_datasetlike(roi_specs): for n, v in roi_specs.fa.iteritems(): roi.fa[n] = v if self.__add_center_fa: # add fa to indicate ROI seed if requested roi_seed = np.zeros(roi.nfeatures, dtype='bool') if f in roi_fids: roi_seed[roi_fids.index(f)] = True else: warning("Center feature attribute id %s not found" % f) roi.fa[self.__add_center_fa] = roi_seed # compute the datameasure and store in results res = measure(roi) if assure_dataset and not is_datasetlike(res): res = Dataset(np.atleast_1d(res)) if store_roi_feature_ids: # add roi feature ids to intermediate result dataset for later # aggregation res.a['roi_feature_ids'] = roi_fids if store_roi_sizes: res.a['roi_sizes'] = roi.nfeatures if store_roi_center_ids: res.a['roi_center_ids'] = f results.append(res) if __debug__: msg = 'ROI %i (%i/%i), %i features' % \ (f + 1, i + 1, len(block), roi.nfeatures) debug('SLC', bar(float(i + 1) / len(block), msg), cr=True) if __debug__: # just to get to new line debug('SLC', '') if self.results_postproc_fx: if __debug__: debug('SLC', "Post-processing %d results in proc_block using %s" % (len(results), self.results_postproc_fx)) results = self.results_postproc_fx(results) if self.results_backend == 'native': pass # nothing special elif self.results_backend == 'hdf5': # store results in a temporary file and return a filename results_file = tempfile.mktemp(prefix=self.tmp_prefix, suffix='-%s.hdf5' % iblock) if __debug__: debug('SLC', "Storing results into %s" % results_file) h5save(results_file, results) if __debug__: debug('SLC_', "Results stored") results = results_file else: raise RuntimeError("Must not reach this point") return results def __set_datameasure(self, datameasure): """Set the datameasure""" self.untrain() self.__datameasure = datameasure def __handle_results(self, results): if self.results_backend == 'hdf5': # 'results' must be just a filename assert(isinstance(results, str)) if __debug__: debug('SLC', "Loading results from %s" % results) results_data = h5load(results) os.unlink(results) if __debug__: debug('SLC_', "Loaded results of len=%d from" % len(results_data)) return results_data else: return results def __handle_all_results(self, results): """Helper generator to decorate passing the results out to results_fx """ for r in results: yield self.__handle_results(r) datameasure = property(fget=lambda self: self.__datameasure, fset=__set_datameasure) add_center_fa = property(fget=lambda self: self.__add_center_fa) @borrowkwargs(Searchlight, '__init__', exclude=['roi_ids', 'queryengine']) def sphere_searchlight(datameasure, radius=1, center_ids=None, space='voxel_indices', **kwargs): """Creates a `Searchlight` to run a scalar `Measure` on all possible spheres of a certain size within a dataset. The idea for a searchlight algorithm stems from a paper by :ref:`Kriegeskorte et al. (2006) `. Parameters ---------- datameasure : callable Any object that takes a :class:`~mvpa2.datasets.base.Dataset` and returns some measure when called. radius : int All features within this radius around the center will be part of a sphere. Radius is in grid-indices, i.e. ``1`` corresponds to all immediate neighbors, regardless of the physical distance. center_ids : list of int List of feature ids (not coordinates) the shall serve as sphere centers. Alternatively, this can be the name of a feature attribute of the input dataset, whose non-zero values determine the feature ids. By default all features will be used (it is passed as ``roi_ids`` argument of Searchlight). space : str Name of a feature attribute of the input dataset that defines the spatial coordinates of all features. **kwargs In addition this class supports all keyword arguments of its base-class :class:`~mvpa2.measures.base.Measure`. Notes ----- If `Searchlight` is used as `SensitivityAnalyzer` one has to make sure that the specified scalar `Measure` returns large (absolute) values for high sensitivities and small (absolute) values for low sensitivities. Especially when using error functions usually low values imply high performance and therefore high sensitivity. This would in turn result in sensitivity maps that have low (absolute) values indicating high sensitivities and this conflicts with the intended behavior of a `SensitivityAnalyzer`. """ # build a matching query engine from the arguments kwa = {space: Sphere(radius)} qe = IndexQueryEngine(**kwa) # init the searchlight with the queryengine return Searchlight(datameasure, queryengine=qe, roi_ids=center_ids, **kwargs) #class OptimalSearchlight( object ): # def __init__( self, # searchlight, # test_radii, # verbose=False, # **kwargs ): # """ # """ # # results will end up here # self.__perfmeans = [] # self.__perfvars = [] # self.__chisquares = [] # self.__chanceprobs = [] # self.__spheresizes = [] # # # run searchligh for all radii in the list # for radius in test_radii: # if verbose: # print 'Using searchlight with radius:', radius # # compute the results # searchlight( radius, **(kwargs) ) # # self.__perfmeans.append( searchlight.perfmean ) # self.__perfvars.append( searchlight.perfvar ) # self.__chisquares.append( searchlight.chisquare ) # self.__chanceprobs.append( searchlight.chanceprob ) # self.__spheresizes.append( searchlight.spheresize ) # # # # now determine the best classification accuracy # best = np.array(self.__perfmeans).argmax( axis=0 ) # # # select the corresponding values of the best classification # # in all data tables # self.perfmean = best.choose(*(self.__perfmeans)) # self.perfvar = best.choose(*(self.__perfvars)) # self.chisquare = best.choose(*(self.__chisquares)) # self.chanceprob = best.choose(*(self.__chanceprobs)) # self.spheresize = best.choose(*(self.__spheresizes)) # # # store the best performing radius # self.bestradius = np.zeros( self.perfmean.shape, dtype='uint' ) # self.bestradius[searchlight.mask==True] = \ # best.choose( test_radii )[searchlight.mask==True] # # # #def makeSphericalROIMask( mask, radius, elementsize=None ): # """ # """ # # use default elementsize if none is supplied # if not elementsize: # elementsize = [ 1 for i in range( len(mask.shape) ) ] # else: # if len( elementsize ) != len( mask.shape ): # raise ValueError, 'elementsize does not match mask dimensions.' # # # rois will be drawn into this mask # roi_mask = np.zeros( mask.shape, dtype='int32' ) # # # while increase with every ROI # roi_id_counter = 1 # # # build spheres around every non-zero value in the mask # for center, spheremask in \ # algorithms.SpheresInMask( mask, # radius, # elementsize, # forcesphere = True ): # # # set all elements that match the current spheremask to the # # current ROI index value # roi_mask[spheremask] = roi_id_counter # # # increase ROI counter # roi_id_counter += 1 # # return roi_mask pymvpa2-2.6.4/mvpa2/measures/statsmodels_adaptor.py000066400000000000000000000224341323370031300224200ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrap models of the StatsModels package into a FeaturewiseMeasure.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals # do conditional to be able to build module reference if externals.exists('scipy', raise_=True): from mvpa2.support.scipy.stats import scipy import scipy.stats as stats if externals.exists('statsmodels', raise_=True): import statsmodels.api as sm from mvpa2.measures.base import FeaturewiseMeasure from mvpa2.datasets.base import Dataset __all__ = [ 'UnivariateStatsModels', 'GLM' ] class UnivariateStatsModels(FeaturewiseMeasure): """Adaptor for some models from the StatsModels package This adaptor allows for fitting several statistical models to univariate (in StatsModels terminology "endogeneous") data. A model, based on "exogeneous" data (i.e. a design matrix) and optional parameters, is fitted to each feature vector in a given dataset individually. The adaptor supports a variety of models provided by the StatsModels package, including simple ordinary least squares (OLS), generalized least squares (GLS) and others. This feature-wise measure can extract a variety of properties from the model fit results, and aggregate them into a result dataset. This includes, for example, all attributes of a StatsModels ``RegressionResult`` class, such as model parameters and their error estimates, Aikake's information criteria, and a number of statistical properties. Moreover, it is possible to perform t-contrasts/t-tests of parameter estimates, as well as F-tests for contrast matrices. Examples -------- Some example data: two features, seven samples >>> endog = Dataset(np.transpose([[1, 2, 3, 4, 5, 6, 8], ... [1, 2, 1, 2, 1, 2, 1]])) >>> exog = range(7) Set up a model generator -- it yields an instance of an OLS model for a particular design and feature vector. The generator will be called internally for each feature in the dataset. >>> model_gen = lambda y, x: sm.OLS(y, x) Configure the adaptor with the model generator and a common design for all feature model fits. Tell the adaptor to auto-add a constant to the design. >>> usm = UnivariateStatsModels(exog, model_gen, add_constant=True) Run the measure. By default it extracts the parameter estimates from the models (two per feature/model: regressor + constant). >>> res = usm(endog) >>> print res > >>> print res.sa.descr ['params' 'params'] Alternatively, extract t-values for a test of all parameter estimates against zero. >>> usm = UnivariateStatsModels(exog, model_gen, res='tvalues', ... add_constant=True) >>> res = usm(endog) >>> print res > >>> print res.sa.descr ['tvalues' 'tvalues'] Compute a t-contrast: first parameter is non-zero. This returns additional test statistics, such as p-value and effect size in the result dataset. The contrast vector is pass on to the ``t_test()`` function (``r_matrix`` argument) of the StatsModels result class. >>> usm = UnivariateStatsModels(exog, model_gen, res=[1,0], ... add_constant=True) >>> res = usm(endog) >>> print res > >>> print res.sa.descr ['tvalue' 'pvalue' 'effect' 'sd' 'df' 'zvalue'] F-test for a contrast matrix, again with additional test statistics in the result dataset. The contrast vector is pass on to the ``f_test()`` function (``r_matrix`` argument) of the StatsModels result class. >>> usm = UnivariateStatsModels(exog, model_gen, res=[[1,0],[0,1]], ... add_constant=True) >>> res = usm(endog) >>> print res > >>> print res.sa.descr ['fvalue' 'pvalue' 'df_num' 'df_denom'] For any custom result extraction, a callable can be passed to the ``res`` argument. This object will be called with the result of each model fit. Its return value(s) will be aggregated into a result dataset. >>> def extractor(res): ... return [res.aic, res.bic] >>> >>> usm = UnivariateStatsModels(exog, model_gen, res=extractor, ... add_constant=True) >>> res = usm(endog) >>> print res """ is_trained = True def __init__(self, exog, model_gen, res='params', add_constant=True, **kwargs): """ Parameters ---------- exog : array-like Column ordered (observations in rows) design matrix. model_gen : callable Callable that returns a StatsModels model when called like ``model_gen(endog, exog)``. res : {'params', 'tvalues', ...} or 1d array or 2d array or callable Variable of interest that should be reported as feature-wise measure. If a str, the corresponding attribute of the model fit result class is returned (e.g. 'tvalues'). If a 1d-array, it is passed to the fit result class' ``t_test()`` function as a t-contrast vector. If a 2d-array, it is passed to the ``f_test()`` function as a contrast matrix. In both latter cases a number of common test statistics are returned in the rows of the result dataset. A description is available in the 'descr' sample attribute. Any other datatype passed to this argument will be treated as a callable, the model fit result is passed to it, and its return value(s) is aggregated in the result dataset. add_constant : bool, optional If True, a constant will be added to the design matrix that is passed to ``exog``. """ FeaturewiseMeasure.__init__(self, **kwargs) self._exog = exog if add_constant: self._exog = sm.add_constant(exog) self._res = res if isinstance(res, (np.ndarray, list, tuple)): self._res = np.atleast_1d(res) self._model_gen = model_gen def __fitmodel1d(self, Y): """Helper for apply_along_axis()""" res = self._res results = self._model_gen(Y, self._exog).fit() t_to_z = lambda t, df: stats.norm.ppf(stats.t.cdf(t, df)) if isinstance(res, np.ndarray): if len(res.shape) == 1: tstats = results.t_test(self._res) return [np.asscalar(i) for i in [tstats.tvalue, tstats.pvalue, tstats.effect, tstats.sd, np.array(tstats.df_denom), t_to_z(tstats.tvalue, tstats.df_denom)]] elif len(res.shape) == 2: fstats = results.f_test(self._res) return [np.asscalar(i) for i in [fstats.fvalue, fstats.pvalue]] + [fstats.df_num, fstats.df_denom] else: raise ValueError("Test specification (via `res`) has to be 1d or 2d array") elif isinstance(res, str): return results.__getattribute__(res) else: return res(results) def _call(self, dataset): # compute the regression once per feature results = np.apply_along_axis(self.__fitmodel1d, 0, dataset.samples) # figure out potential description of the results sa = None res = self._res if isinstance(res, np.ndarray): if len(res.shape) == 1: sa = ['tvalue', 'pvalue', 'effect', 'sd', 'df', 'zvalue'] elif len(res.shape) == 2: sa = ['fvalue', 'pvalue', 'df_num', 'df_denom'] elif isinstance(res, str): sa = [res] * len(results) if sa is not None: sa = {'descr': sa} # reassign the input feature attributes to the results return Dataset(results, sa=sa, fa=dataset.fa) class GLM(UnivariateStatsModels): """Adaptor to the statsmodels-based UnivariateStatsModels This class is deprecated and only here to ease the transition of user code to the new classes. For all new code, please use the UnivariateStatsModels class. """ def __init__(self, design, voi='pe', **kwargs): if isinstance(voi, str): # Possibly remap to adjusted interface voi = {'pe': 'params', 'zstat': 'zvalue'}.get(voi, voi) UnivariateStatsModels.__init__( self, design, res=voi, add_constant=False, model_gen=lambda y, x: sm.OLS(y, x), **kwargs) pymvpa2-2.6.4/mvpa2/measures/winner.py000066400000000000000000000132671323370031300176520ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Data aggregation procedures""" __docformat__ = 'restructuredtext' import numpy as np from functools import partial from mvpa2.base import externals from mvpa2.base.learner import ChainLearner from mvpa2.measures.base import Measure from mvpa2.base.dataset import vstack from mvpa2.datasets.base import Dataset from mvpa2.mappers.fx import mean_group_sample from mvpa2.base.node import ChainNode import copy from mvpa2.base.dochelpers import _repr_attrs class WinnerMeasure(Measure): '''Select a "winning" element along samples or features. Given the specification would return a Dataset with a single sample (or feature). ''' is_trained = True def __init__(self, axis, fx, other_axis_prefix=None, **kwargs): ''' Parameters ---------- axis: str or int 'samples' (or 0) or 'features' (or 1). fx: callable function to determine the winner. When called with a dataset ds, it should return a vector with ds.nsamples values (if axis=='features') or ds.nfeatures values (if axis=='samples'). other_axis_prefix: str prefix used for feature or sample attributes set on the other axis. ''' Measure.__init__(self, **kwargs) if type(axis) is str: str2num = dict(samples=0, features=1) if not axis in str2num: raise ValueError("Illegal axis: should be %s" % ' or '.join(str2num)) axis = str2num[axis] elif not axis in (0, 1): raise ValueError("Illegal axis: should be 0 or 1") self.__axis = axis self.__fx = fx self.__other_axis_prefix = other_axis_prefix def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ['axis=%r,fx=%r,other_axis_prefix=%r' % ( self.__axis, self.__fx, self.__other_axis_prefix)] return "%s(%s)" % (self.__class__.__name__, ','.join(prefixes_)) def _call(self, ds): ''' Parameters ---------- ds: Dataset input dataset Returns ------- wds: Dataset Result with one sample (if axis=='feature') or one feature (if axis=='samples') and an equal number of features (or samples, respectively) as the input dataset. ''' axis = self.__axis fx = self.__fx # ensure it's a dataset if not isinstance(ds, Dataset): ds = Dataset(ds) samples = ds.samples # apply the function winners = fx(ds) # set the new shape new_shape = list(ds.shape) new_shape[axis] = 1 # the output dataset wta = Dataset(np.reshape(winners, new_shape)) # copy dataset attributes wta.a = ds.a.copy() # copy feature attribute and set sample attributes, or vice versa fas = [ds.fa, wta.fa] sas = [ds.sa, wta.sa] fas_sas = [fas, sas] to_copy, to_leave = [fas_sas[(i + axis) % 2] for i in xrange(2)] # copy each attribute for k, v in to_copy[0].iteritems(): to_copy[1][k] = copy.copy(v) # set source and target. feature attributes become # sample attributes; or vice versa src, _ = to_leave trg = to_copy[1] prefix = self.__other_axis_prefix for k, v in src.iteritems(): # set the prefix prek = ('' if prefix is None else prefix) + k if prek in trg: raise KeyError("Key clash: %s already in %s" % (prek, to_copy[1])) trg[prek] = v.value[winners] return wta def feature_winner_measure(): '''takes winner over features''' return WinnerMeasure('features', partial(np.argmax, axis=1), 'wta_') def feature_loser_measure(): '''takes loser over features''' return WinnerMeasure('features', partial(np.argmin, axis=1), 'lta_') def sample_winner_measure(): '''takes winner over samples''' return WinnerMeasure('samples', partial(np.argmax, axis=0), 'wta_') def sample_loser_measure(): '''takes loser over samples''' return WinnerMeasure('samples', partial(np.argmin, axis=0), 'lta_') def group_sample_winner_measure(attrs=('targets',)): '''takes winner after meaning over attrs''' return ChainNode((mean_group_sample(attrs), sample_winner_measure())) def group_sample_loser_measure(attrs=('targets',)): '''takes loser after meaning over attrs''' return ChainNode((mean_group_sample(attrs), sample_loser_measure())) if __name__ == '__main__': ns = 4 nf = 3 n = ns * nf ds = Dataset(np.reshape(np.mod(np.arange(0, n * 5, 5) + .5 * n, n), (ns, nf)), sa=dict(targets=[0, 0, 1, 1], x=[3, 2, 1, 0]), fa=dict(v=[3, 2, 1], w=['a', 'b', 'c'])) measures2out = {feature_winner_measure : [1, 0, 2, 1], feature_loser_measure: [2, 1, 0, 2], sample_winner_measure: [1, 0, 2], sample_loser_measure:[2, 1, 3], group_sample_winner_measure:[0, 0, 0], group_sample_loser_measure: [1, 0, 0]} for m, out in measures2out.iteritems(): print np.all(m()(ds).samples.ravel() == np.asarray(out)) pymvpa2-2.6.4/mvpa2/misc/000077500000000000000000000000001323370031300150745ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/misc/__init__.py000066400000000000000000000011071323370031300172040ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for PyMVPA misc modules""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.misc start') debug('INIT', 'mvpa2.misc end') pymvpa2-2.6.4/mvpa2/misc/args.py000066400000000000000000000055351323370031300164120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helpers for arguments handling.""" __docformat__ = 'restructuredtext' def split_kwargs(kwargs, prefixes=None): """Helper to separate kwargs into multiple groups Parameters ---------- prefixes : list of strs Each entry sets a prefix which puts entry with key starting with it into a separate group. Group '' corresponds to 'leftovers' :Output: dictionary with keys == `prefixes` """ if prefixes is None: prefixes = [] if not ('' in prefixes): prefixes = prefixes + [''] result = [ [] for i in prefixes ] for k,v in kwargs.iteritems(): for i,p in enumerate(prefixes): if k.startswith(p): result[i].append((k.replace(p,'',1), v)) break resultd = dict((p,dict(x)) for p,x in zip(prefixes, result)) return resultd def group_kwargs(prefixes, assign=False, passthrough=False): """Decorator function to join parts of kwargs together Parameters ---------- prefixes : list of strs Prefixes to split based on. See `split_kwargs` assign : bool Flag to assign the obtained arguments to self.__kwargs passthrough : bool Flag to pass joined arguments as _kwargs argument. Usually it is sufficient to have either assign or passthrough. If none of those is True, decorator simply filters out mentioned groups from being passed to the method Example: if needed to join all args which start with 'slave' together under slave_kwargs parameter """ def decorated_method(method): def do_group_kwargs(self, *args_, **kwargs_): if '' in prefixes: raise ValueError, \ "Please don't put empty string ('') into prefixes" # group as needed splits = split_kwargs(kwargs_, prefixes) # adjust resultant kwargs__ kwargs__ = splits[''] for prefix in prefixes: skwargs = splits[prefix] k = '%skwargs' % prefix if k in kwargs__: # is unprobable but can happen raise ValueError, '%s is already given in the arguments' % k if passthrough: kwargs__[k] = skwargs if assign: setattr(self, '_%s' % k, skwargs) return method(self, *args_, **kwargs__) do_group_kwargs.func_name = method.func_name return do_group_kwargs return decorated_method pymvpa2-2.6.4/mvpa2/misc/attrmap.py000066400000000000000000000232631323370031300171240ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to map literal attribute to numerical ones (and back)""" import numpy as np from mvpa2.base.types import is_sequence_type class AttributeMap(object): # might be derived from dict, but do not see advantages right now, # since this one has forward and reverse map # however, it might be desirable to implement more of the dict interface """Map to translate literal values to numeric ones (and back). A translation map is derived automatically from the argument of the first call to to_numeric(). The default mapping is to map unique value (in sorted order) to increasing integer values starting from zero. In case the default mapping is undesired a custom map can be specified to the constructor call. Regardless of how the mapping has been specified or derived, it remains constant (i.e. it is not influenced by subsequent calls to meth:`to_numeric` or meth:`to_literal`. However, the translation map can be removed with meth:`clear`. Both conversion methods take sequence-like input and return arrays. Examples -------- Default mapping procedure using an automatically derived translation map: >>> am = AttributeMap() >>> am.to_numeric(['eins', 'zwei', 'drei']) array([1, 2, 0]) >>> print am.to_literal([1, 2, 0]) ['eins', 'zwei', 'drei'] Custom mapping: >>> am = AttributeMap(map={'eins': 11, 'zwei': 22, 'drei': 33}) >>> am.to_numeric(['eins', 'zwei', 'drei']) array([11, 22, 33]) """ def __init__(self, map=None, mapnumeric=False, collisions_resolution=None): """ Parameters ---------- map : dict Custom dict with literal keys mapping to numerical values. mapnumeric : bool In some cases it is necessary to map numeric labels too, for instance when target labels should be from a specific set, e.g. (-1, +1). collisions_resolution : None or {'tuple', 'lucky'} How to resolve collisions on to_literal if multiple entries map to the same value when custom map was provided. If None -- exception would get raise, if 'tuple' -- collided entries are grouped into a tuple, if 'lucky' -- some last encountered literal wins (i.e. arbitrary resolution). This parameter is in effect only when calling :meth:`to_literal`. Please see the class documentation for more information. """ self.clear() self.mapnumeric = mapnumeric self.collisions_resolution = collisions_resolution if map is not None: if not isinstance(map, dict): raise ValueError("Custom map need to be a dict.") self._nmap = map self._lmap = None # pylint happiness def __repr__(self): """String representation of AttributeMap """ args = [] if self._nmap: args.append(repr(self._nmap)), if self.mapnumeric: args.append('mapnumeric=True') if self.collisions_resolution: args.append('collisions_resolution=%r' % (self.collisions_resolution,)) return "%s(%s)" % (self.__class__.__name__, ', '.join(args)) def __len__(self): if self._nmap is None: return 0 else: return len(self._nmap) def __bool__(self): return self._nmap is not None def clear(self): """Remove previously established mappings.""" # map from literal TO numeric self._nmap = None # map from numeric TO literal self._lmap = None def keys(self): """Returns the literal names of the attribute map.""" if self._nmap is None: return None else: return self._nmap.keys() def values(self): """Returns the numerical values of the attribute map.""" if self._nmap is None: return None else: return self._nmap.values() def iteritems(self): """Dict-like generator yielding literal/numerical pairs.""" if self._nmap is None: raise StopIteration else: for k, v in self._nmap: yield k, v # Py3 Compatibility method to keep lib2to3 happy items = iteritems def to_numeric(self, attr): """Map literal attribute values to numerical ones. Arguments with numerical data type will be returned as is. Parameters ---------- attr : sequence Literal values to be mapped. Please see the class documentation for more information. """ attr = np.asanyarray(attr) # no mapping if already numeric if not np.issubdtype(attr.dtype, str) and not self.mapnumeric: return attr if self._nmap is None: # sorted list of unique attr values ua = np.unique(attr) self._nmap = dict(zip(ua, range(len(ua)))) elif __debug__: ua = np.unique(attr) mkeys = sorted(self._nmap.keys()) if (ua != mkeys).any(): # maps to not match raise KeyError("Existing attribute map not suitable for " "to be mapped attribute (i.e. unknown values. " "Attribute has '%s', but map has '%s'." % (str(ua), str(mkeys))) num = np.empty(attr.shape, dtype=np.int) for k, v in self._nmap.iteritems(): num[attr == k] = v return num def _get_lmap(self): """Recomputes lmap from the stored _nmap """ cr = self.collisions_resolution if cr == 'lucky': lmap = dict([(v, k) for k, v in self._nmap.iteritems()]) elif cr in [None, 'tuple']: lmap = {} counts = {} # is used for 'tuple' resolution for k, v in self._nmap.iteritems(): count = counts.get(v, 0) if count: # we saw it already if cr is None: raise ValueError, \ "Numeric value %r was already reverse mapped to " \ "%r. Now trying to remap into %r. Please adjust" \ " your mapping or change collissions_resolution" \ " parameter" % (v, lmap[v], k) else: if count == 1: lmap[v] = (lmap[v], k) else: lmap[v] = lmap[v] + (k, ) # create new tuple else: lmap[v] = k counts[v] = count +1 else: raise ValueError, \ "Provided parameter collisions_resolution=%r is of unknown " \ "value. See documentation for AttributeMapper" % (cr,) return lmap def to_literal(self, attr, recurse=False): """Map numerical value back to literal ones. Parameters ---------- attr : sequence Numerical values to be mapped. recurse : bool Either to recursively change items within the sequence if those are iterable as well Please see the class documentation for more information. """ # we need one or the other map if self._lmap is None and self._nmap is None: raise RuntimeError("AttributeMap has no mapping information. " "Ever called to_numeric()?") if self._lmap is None: self._lmap = self._get_lmap() lmap = self._lmap if is_sequence_type(attr) and not isinstance(attr, str): # Choose lookup function if recurse: lookupfx = lambda x: self.to_literal(x, recurse=True) else: # just dictionary lookup lookupfx = lambda x:lmap[x] # To assure the preserving the container type target_constr = attr.__class__ # ndarrays are special since array is just a factory, and # ndarray takes shape as the first argument isarray = issubclass(target_constr, np.ndarray) if isarray: if attr.dtype is np.dtype('object'): target_constr = lambda x: np.array(x, dtype=object) else: # Otherwise no special handling target_constr = np.array # Perform lookup and store to the list resl = [lookupfx(k) for k in attr] # If necessary assure derived ndarray class type if isarray: if attr.dtype is np.dtype('object'): # we need first to create empty one and then # assign items -- god bless numpy resa = np.empty(len(resl), dtype=attr.dtype) resa[:] = resl else: resa = target_constr(resl) if not (attr.__class__ is np.ndarray): # to accommodate subclasses of ndarray res = resa.view(attr.__class__) else: res = resa else: res = target_constr(resl) return res else: return lmap[attr] pymvpa2-2.6.4/mvpa2/misc/bv/000077500000000000000000000000001323370031300155035ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/misc/bv/__init__.py000066400000000000000000000011151323370031300176120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for Brain Voyager""" if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.misc.bv') from mvpa2.misc.bv.base import * if __debug__: debug('INIT', 'mvpa2.misc.bv end') pymvpa2-2.6.4/mvpa2/misc/bv/base.py000066400000000000000000000033121323370031300167660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Tiny snippets to interface with FSL easily.""" __docformat__ = 'restructuredtext' from mvpa2.misc.io import ColumnData if __debug__: from mvpa2.base import debug class BrainVoyagerRTC(ColumnData): """IO helper to read BrainVoyager RTC files. This is a textfile format that is used to specify stimulation protocols for data analysis in BrainVoyager. It looks like FileVersion: 2 Type: DesignMatrix NrOfPredictors: 4 NrOfDataPoints: 147 "fm_l_60dB" "fm_r_60dB" "fm_l_80dB" "fm_r_80dB" 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Data is always read as `float` and header is actually ignored """ def __init__(self, source): """Read and write BrainVoyager RTC files. Parameters ---------- source : str Filename of an RTC file """ # init data from known format ColumnData.__init__(self, source, header=True, sep=None, headersep='"', dtype=float, skiplines=5) def toarray(self): """Returns the data as an array """ import numpy as np # return as array with time axis first return np.array([self[i] for i in self._header_order], dtype='float').T pymvpa2-2.6.4/mvpa2/misc/cmdline.py000066400000000000000000000337061323370031300170720ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Common functions and options definitions for command line Conventions: Every option (instance of optparse.Option) has prefix "opt". Lists of options has prefix opts (e.g. `opts.common`). Option name should be camelbacked version of .dest for the option. """ __docformat__ = 'restructuredtext' import mvpa2 # TODO? all options (opt*) might migrate to respective module? discuss from optparse import OptionParser, Option, OptionGroup, OptionConflictError # needed for verboseCallback from mvpa2.base import verbose, externals class Options(object): """Just a convenience placeholder for all available options """ pass class OptionGroups(object): """Group creation is delayed until instance is requested. This allows to overcome the problem of poluting handled cmdline options """ def __init__(self, parser): """ Parameters ---------- parser : OptionParser To which parser to add groups """ self._d = {} self._parser = parser def add(self, name, l, doc): self._d[name] = (doc, l) def _get_group(self, name): try: doc, l = self._d[name] except KeyError: raise ValueError, "No group with name %s" % name opts = OptionGroup(self._parser, doc) try: opts.add_options(l) except OptionConflictError: print "Problem addition options to the group '%s'. Most probably" \ " the option was independently added already." % name raise return opts def __getattribute__(self, index): if index[0] == '_': return object.__getattribute__(self, index) if index in self._d: return self._get_group(index) return object.__getattribute__(self, index) def split_comma_semicolon_lists(s, dtype=None): """TODO Parameters ---------- s Input string dtype: optional Data type to impose upon values """ res = [] for x in s.split(";"): if not ':' in x: raise ValueError("Each entry must be in the form key:values," " e.g. 'targets:rest'") key, s_values = x.split(':', 1) values = s_values.split(',') if dtype is not None: values = [dtype(v) for v in values] res.append((key, values)) return res # Some local helpers def _FORMAT(s): """Helper to provide uniform appearance for formats in cmdline options """ return ". Specified as %r" % s def _EXAMPLE(s): """Helper to provide uniform appearance for examples in cmdline options """ return ", e.g. %r" % s _DEF = "\n[Default: %default]" # TODO: try to make groups definition somewhat lazy, since now # whenever a group is created, those parameters are already known by # parser, although might not be listed in the list of used and not by # --help. But their specification on cmdline doesn't lead to # error/help msg. # # Conflict hanlder to resolve situation that we have the same option added # to some group and also available 'freely' # # set default version string, otherwise '--version' option is not enabled # can be overwritten later on by assigning to `parser.version` parser = OptionParser(version=mvpa2.__version__, # "%prog" add_help_option=False, conflict_handler="error") opt = Options() opts = OptionGroups(parser) # # Callbacks to tune up the output or cause specific actions to be # taken # def _verbose_callback(option, optstr, value, parser): """Callback for -v|--verbose cmdline option """ if __debug__: debug("CMDLINE", "Setting verbose.level to %s" % str(value)) verbose.level = value optstr = optstr # pylint shut up setattr(parser.values, option.dest, value) def _split_comma_semicolon_lists_callback(option, optstr, value, parser): """Callback to split provided values """ if value is None: return None if __debug__: debug("CMDLINE", "Splitting %s for %s" % (value, optstr)) value_split = split_comma_semicolon_lists(value) setattr(parser.values, option.dest, value_split) opt.help = \ Option("-h", "--help", "--sos", action="help", help="Show this help message and exit") opt.verbose = \ Option("-v", "--verbose", "--verbosity", action="callback", callback=_verbose_callback, nargs=1, type="int", dest="verbose", default=0, help="Verbosity level of output" + _DEF) """Pre-cooked `optparse`'s option to specify verbose level""" commonopts_list = [opt.verbose, opt.help] if __debug__: from mvpa2.base import debug ##REF: Name was automagically refactored def _debug_callback(option, optstr, value, parser): """Callback for -d|--debug cmdline option """ if value == "list": print "Registered debug IDs:" keys = debug.registered.keys() keys.sort() for k in keys: print "%-7s: %s" % (k, debug.registered[k]) print "Use ALL: to enable all of the debug IDs listed above." print "Use python regular expressions to select group. CLF.* will" \ " enable all debug entries starting with CLF (e.g. CLFBIN, CLFMC)" raise SystemExit, 0 optstr = optstr # pylint shut up debug.set_active_from_string(value) setattr(parser.values, option.dest, value) optDebug = Option("-d", "--debug", action="callback", callback=_debug_callback, nargs=1, type="string", dest="debug", default="", help="Debug entries to report. " "Run with '-d list' to get a list of " "registered entries" + _DEF) commonopts_list.append(optDebug) opts.add("common", commonopts_list, "Common generic options") # # Classifiers options # opt.clf = \ Option("--clf", type="choice", dest="clf", choices=['gnb', 'knn', 'svm', 'ridge', 'gpr', 'smlr'], default='svm', help="Type of classifier to be used" + _DEF) opt.radius = \ Option("-r", "--radius", action="store", type="float", dest="radius", default=2.0, help="Radius to be used (eg for the searchlight)" + _DEF) opt.knearestdegree = \ Option("-k", "--k-nearest", action="store", type="int", dest="knearestdegree", default=3, help="Degree of k-nearest classifier" + _DEF) opts.add('KNN', [opt.radius, opt.knearestdegree], "Specification of kNN") opt.svm_C = \ Option("-C", "--svm-C", action="store", type="float", dest="svm_C", default=-1.0, help="C parameter for soft-margin C-SVM classification" + _DEF) opt.svm_nu = \ Option("--nu", "--svm-nu", action="store", type="float", dest="svm_nu", default=0.1, help="nu parameter for soft-margin nu-SVM classification" + _DEF) opt.svm_gamma = \ Option("--gamma", "--svm-gamma", action="store", type="float", dest="svm_gamma", default=1.0, help="gamma parameter for Gaussian kernel of RBF SVM" + _DEF) opts.add('SVM', [opt.svm_nu, opt.svm_C, opt.svm_gamma], "SVM specification") opt.do_sweep = \ Option("--sweep", action="store_true", dest="do_sweep", default=False, help="Sweep through various classifiers" + _DEF) # Cross-validation options opt.crossfolddegree = \ Option("-c", "--crossfold", action="store", type="float", dest="crossfolddegree", default=1, help="Degree of N-fold crossfold" + _DEF) opts.add('general', [opt.crossfolddegree], "Generalization estimates") # preprocess options opt.zscore = \ Option("--zscore", action="store_true", dest="zscore", default=False, help="zscore dataset samples" + _DEF) opt.mean_group_sample = \ Option("--mean-group-sample", default=False, action="store_true", dest="mean_group_sample", help="Collapse samples in each group (chunks and samples, " "or specify --chunks-sa, and --targets-sa)" + _DEF) opt.baseline_conditions = \ Option('-b', "--baseline-conditions", action="callback", nargs=1, type="string", default="", callback=_split_comma_semicolon_lists_callback, dest="baseline_conditions", help="Baseline conditions (used for zscoring)" + _FORMAT("sa:value1,value2,...") + _EXAMPLE('targets:rest') + _DEF) opt.exclude_conditions = \ Option('-e', "--exclude-conditions", action="callback", nargs=1, type="string", default="", callback=_split_comma_semicolon_lists_callback, dest="exclude_conditions", help="Which conditions to exclude from the analysis " "(but would be present during preprocessing (e.g. zscoring)" + _FORMAT("sa1:value1,value2,...;sa2:value1,value2,...") + _EXAMPLE('targets:rest;trials:bad') + _DEF) opt.include_conditions = \ Option('-i', "--include-conditions", action="callback", nargs=1, type="string", default="", callback=_split_comma_semicolon_lists_callback, dest="include_conditions", help="Which conditions exclusively to analyze " "(but all would be present during preprocessing (e.g. zscoring)" + _FORMAT("sa1:value1,value2,...;sa2:value1,value2,...") + _EXAMPLE('targets:rest;trials:bad') + _DEF) opt.targets_sa = \ Option('-T', "--targets-sa", action="store", dest="targets_sa", default="targets", help="Which sample attribute would be used for (classification)" " analysis" + _DEF) opt.chunks_sa = \ Option("--chunks-sa", action="store", dest="chunks_sa", default="chunks", help="Which sample attribute would be used to describe" "samples grouping information for partitioning" + _DEF) opt.tr = \ Option("--tr", action="store", dest="tr", default=2.0, type='float', help="fMRI volume repetition time" + _DEF) opt.detrend = \ Option("--detrend", action="store_true", dest="detrend", default=0, help="Do linear detrending" + _DEF) opts.add('preproc', [opt.zscore, opt.tr, opt.detrend], "Preprocessing options") # Wavelets options if externals.exists('pywt'): import pywt ##REF: Name was automagically refactored def _wavelet_family_callback(option, optstr, value, parser): """Callback for -w|--wavelet-family cmdline option """ wl_list = pywt.wavelist() wl_list_str = ", ".join( ['-1: None'] + ['%d:%s' % w for w in enumerate(wl_list)]) if value == "list": print "Available wavelet families: " + wl_list_str raise SystemExit, 0 wl_family = value try: # may be int? ;-) wl_family_index = int(value) if wl_family_index >= 0: try: wl_family = wl_list[wl_family_index] except IndexError: print "Index is out of range. " + \ "Following indexes with names are known: " + \ wl_list_str raise SystemExit, -1 else: wl_family = 'None' except ValueError: pass # Check the value wl_family = wl_family.lower() if wl_family == 'none': wl_family = None elif not wl_family in wl_list: print "Uknown family '%s'. Known are %s" % (wl_family, ', '.join(wl_list)) raise SystemExit, -1 # Store it in the parser setattr(parser.values, option.dest, wl_family) opt.wavelet_family = \ Option("-w", "--wavelet-family", callback=_wavelet_family_callback, action="callback", type="string", dest="wavelet_family", default='-1', help="Wavelet family: string or index among the available. " "Run with '-w list' to see available families" + _DEF) opt.wavelet_decomposition = \ Option("-W", "--wavelet-decomposition", action="store", type="choice", dest="wavelet_decomposition", default='dwt', choices=['dwt', 'dwp'], help="Wavelet decomposition: discrete wavelet transform " "(dwt) or packet (dwp)" + _DEF) opts.add('wavelet', [opt.wavelet_family, opt.wavelet_decomposition], "Wavelets mappers") # Box options opt.boxlength = \ Option("--boxlength", action="store", dest="boxlength", default=1, type='int', help="Length of the box in volumes (integer)" + _DEF) opt.boxoffset = \ Option("--boxoffset", action="store", dest="boxoffset", default=0, type='int', help="Offset of the box from the event onset in volumes" + _DEF) opts.add('box', [opt.boxlength, opt.boxoffset], "Box options") # sample attributes opt.chunk = \ Option("--chunk", action="store", dest="chunk", default='0', help="Id of the data chunk" + _DEF) opt.chunkLimits = \ Option("--chunklimits", action="store", dest="chunklimits", default=None, help="Limit processing to a certain chunk of data given by start " \ "and end volume number (including lower, excluding upper " \ "limit). Numbering starts with zero" + _DEF) opts.add('chunk', [opt.chunk, opt.chunkLimits], "Chunk options AKA Sample attributes XXX") pymvpa2-2.6.4/mvpa2/misc/data_generators.py000066400000000000000000000506741323370031300206240ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Miscellaneous data generators for unittests and demos""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.datasets.base import dataset_wizard, Dataset from mvpa2.misc.neighborhood import IndexQueryEngine from mvpa2 import pymvpa_dataroot, pymvpa_datadbroot from mvpa2.misc.fx import get_random_rotation from mvpa2.base.dataset import vstack from mvpa2.misc.fx import double_gamma_hrf, single_gamma_hrf from mvpa2.misc.support import Event if __debug__: from mvpa2.base import debug def multiple_chunks(func, n_chunks, *args, **kwargs): """Replicate datasets multiple times raising different chunks Given some randomized (noisy) generator of a dataset with a single chunk call generator multiple times and place results into a distinct chunks. Returns ------- ds : `mvpa2.datasets.base.Dataset` """ dss = [] for chunk in xrange(n_chunks): ds_ = func(*args, **kwargs) # might not have chunks at all if not 'chunks' in ds_.sa: ds_.sa['chunks'] = np.repeat(chunk + 1, ds_.nsamples) else: ds_.sa.chunks[:] = chunk + 1 dss.append(ds_) return vstack(dss) def dumb_feature_dataset(): """Create a very simple dataset with 2 features and 3 labels """ data = [[1, 0], [1, 1], [2, 0], [2, 1], [3, 0], [3, 1], [4, 0], [4, 1], [5, 0], [5, 1], [6, 0], [6, 1], [7, 0], [7, 1], [8, 0], [8, 1], [9, 0], [9, 1], [10, 0], [10, 1], [11, 0], [11, 1], [12, 0], [12, 1]] regs = ([1] * 8) + ([2] * 8) + ([3] * 8) return dataset_wizard(samples=np.array(data), targets=regs, chunks=range(len(regs))) def dumb_feature_binary_dataset(): """Very simple binary (2 labels) dataset """ data = [[1, 0], [1, 1], [2, 0], [2, 1], [3, 0], [3, 1], [4, 0], [4, 1], [5, 0], [5, 1], [6, 0], [6, 1], [7, 0], [7, 1], [8, 0], [8, 1], [9, 0], [9, 1], [10, 0], [10, 1], [11, 0], [11, 1], [12, 0], [12, 1]] regs = ([0] * 12) + ([1] * 12) return dataset_wizard(samples=np.array(data), targets=regs, chunks=range(len(regs))) def normal_feature_dataset(perlabel=50, nlabels=2, nfeatures=4, nchunks=5, means=None, nonbogus_features=None, snr=3.0, normalize=True): """Generate a univariate dataset with normal noise and specified means. Could be considered to be a generalization of `pure_multivariate_signal` where means=[ [0,1], [1,0] ]. Specify either means or `nonbogus_features` so means get assigned accordingly. If neither `means` nor `nonbogus_features` are provided, data will be pure noise and no per-label information. Parameters ---------- perlabel : int, optional Number of samples per each label nlabels : int, optional Number of labels in the dataset nfeatures : int, optional Total number of features (including bogus features which carry no label-related signal) nchunks : int, optional Number of chunks (perlabel should be multiple of nchunks) means : None or ndarray of (nlabels, nfeatures) shape Specified means for each of features (columns) for all labels (rows). nonbogus_features : None or list of int Indexes of non-bogus features (1 per label). snr : float, optional Signal-to-noise ration assuming that signal has std 1.0 so we just divide random normal noise by snr normalize : bool, optional Divide by max(abs()) value to bring data into [-1, 1] range. """ data = np.random.standard_normal((perlabel * nlabels, nfeatures)) if snr != 0: data /= np.sqrt(snr) if means is None and nonbogus_features is not None: if len(nonbogus_features) != nlabels: raise ValueError( "Provide as many nonbogus features as many labels you have") means = np.zeros((len(nonbogus_features), nfeatures)) # pure multivariate -- single bit per feature for i, nbf in enumerate(nonbogus_features): means[i, nbf] = 1.0 if means is not None and snr != 0: # add mean data += np.repeat(np.array(means, ndmin=2), perlabel, axis=0) if normalize: # bring it 'under 1', since otherwise some classifiers have difficulties # during optimization data = 1.0 / (np.max(np.abs(data))) * data labels = np.concatenate([np.repeat('L%d' % i, perlabel) for i in range(nlabels)]) chunks = np.concatenate([np.repeat(range(nchunks), perlabel // nchunks) for i in range(nlabels)]) ds = dataset_wizard(data, targets=labels, chunks=chunks) # If nonbogus was provided -- assign .a and .fa accordingly if nonbogus_features is not None: ds.fa['nonbogus_targets'] = np.array([None] * nfeatures) ds.fa.nonbogus_targets[nonbogus_features] = ['L%d' % i for i in range(nlabels)] ds.a['nonbogus_features'] = nonbogus_features ds.a['bogus_features'] = [x for x in range(nfeatures) if not x in nonbogus_features] return ds def pure_multivariate_signal(patterns, signal2noise=1.5, chunks=None, targets=None): """ Create a 2d dataset with a clear purely multivariate signal. This is known is the XOR problem. :: %%%%%%%%% % O % X % %%%%%%%%% % X % O % %%%%%%%%% Parameters ---------- patterns: int Number of data points in each of the four dot clouds signal2noise: float, optional Univariate signal pedestal. chunks: array, optional Vector for chunk labels for all generated samples. targets: list, optional Length-2 sequence of target values for both classes. If None, [0, 1] is used. """ if targets is None: targets = [0, 1] # start with noise data = np.random.normal(size=(4 * patterns, 2)) # add signal data[:2 * patterns, 1] += signal2noise data[2 * patterns:4 * patterns, 1] -= signal2noise data[:patterns, 0] -= signal2noise data[2 * patterns:3 * patterns, 0] -= signal2noise data[patterns:2 * patterns, 0] += signal2noise data[3 * patterns:4 * patterns, 0] += signal2noise # two conditions regs = np.array((targets[0:1] * patterns) + (targets[1:2] * 2 * patterns) + (targets[0:1] * patterns)) if chunks is None: chunks = range(len(data)) return dataset_wizard(samples=data, targets=regs, chunks=chunks) def get_mv_pattern(s2n): """Simple multivariate dataset""" return multiple_chunks(pure_multivariate_signal, 6, 5, s2n, 1) def wr1996(size=200): """Generate '6d robot arm' dataset (Williams and Rasmussen 1996) Was originally created in order to test the correctness of the implementation of kernel ARD. For full details see: http://www.gaussianprocess.org/gpml/code/matlab/doc/regression.html#ard x_1 picked randomly in [-1.932, -0.453] x_2 picked randomly in [0.534, 3.142] r_1 = 2.0 r_2 = 1.3 f(x_1,x_2) = r_1 cos (x_1) + r_2 cos(x_1 + x_2) + N(0,0.0025) etc. Expected relevances: ell_1 1.804377 ell_2 1.963956 ell_3 8.884361 ell_4 34.417657 ell_5 1081.610451 ell_6 375.445823 sigma_f 2.379139 sigma_n 0.050835 """ intervals = np.array([[-1.932, -0.453], [0.534, 3.142]]) r = np.array([2.0, 1.3]) x = np.random.rand(size, 2) x *= np.array(intervals[:, 1] - intervals[:, 0]) x += np.array(intervals[:, 0]) if __debug__: for i in xrange(2): debug('DG', '%d columnt Min: %g Max: %g' % (i, x[:, i].min(), x[:, i].max())) y = r[0] * np.cos(x[:, 0] + r[1] * np.cos(x.sum(1))) + \ np.random.randn(size) * np.sqrt(0.0025) y -= y.mean() x34 = x + np.random.randn(size, 2) * 0.02 x56 = np.random.randn(size, 2) x = np.hstack([x, x34, x56]) return dataset_wizard(samples=x, targets=y) def sin_modulated(n_instances, n_features, flat=False, noise=0.4): """ Generate a (quite) complex multidimensional non-linear dataset Used for regression testing. In the data label is a sin of a x^2 + uniform noise """ if flat: data = (np.arange(0.0, 1.0, 1.0 / n_instances) * np.pi) data.resize(n_instances, n_features) else: data = np.random.rand(n_instances, n_features) * np.pi label = np.sin((data ** 2).sum(1)).round() label += np.random.rand(label.size) * noise return dataset_wizard(samples=data, targets=label) def chirp_linear(n_instances, n_features=4, n_nonbogus_features=2, data_noise=0.4, noise=0.1): """ Generates simple dataset for linear regressions Generates chirp signal, populates n_nonbogus_features out of n_features with it with different noise level and then provides signal itself with additional noise as labels """ x = np.linspace(0, 1, n_instances) y = np.sin((10 * np.pi * x ** 2)) data = np.random.normal(size=(n_instances, n_features)) * data_noise for i in xrange(n_nonbogus_features): data[:, i] += y[:] labels = y + np.random.normal(size=(n_instances,)) * noise return dataset_wizard(samples=data, targets=labels) def linear_awgn(size=10, intercept=0.0, slope=0.4, noise_std=0.01, flat=False): """Generate a dataset from a linear function with AWGN (Added White Gaussian Noise). It can be multidimensional if 'slope' is a vector. If flat is True (in 1 dimesion) generate equally spaces samples instead of random ones. This is useful for the test phase. """ dimensions = 1 if isinstance(slope, np.ndarray): dimensions = slope.size if flat and dimensions == 1: x = np.linspace(0, 1, size)[:, np.newaxis] else: x = np.random.rand(size, dimensions) y = np.dot(x, slope)[:, np.newaxis] \ + (np.random.randn(*(x.shape[0], 1)) * noise_std) + intercept return dataset_wizard(samples=x, targets=y) def noisy_2d_fx(size_per_fx, dfx, sfx, center, noise_std=1): """Yet another generator of random dataset """ # used in projection example x = [] y = [] labels = [] for fx in sfx: nx = np.random.normal(size=size_per_fx) ny = fx(nx) + np.random.normal(size=nx.shape, scale=noise_std) x.append(nx) y.append(ny) # whenever larger than first function value labels.append(np.array(ny < dfx(nx), dtype='int')) samples = np.array((np.hstack(x), np.hstack(y))).squeeze().T labels = np.hstack(labels).squeeze().T samples += np.array(center) return dataset_wizard(samples=samples, targets=labels) def linear1d_gaussian_noise(size=100, slope=0.5, intercept=1.0, x_min=-2.0, x_max=3.0, sigma=0.2): """A straight line with some Gaussian noise. """ x = np.linspace(start=x_min, stop=x_max, num=size) noise = np.random.randn(size) * sigma y = x * slope + intercept + noise return dataset_wizard(samples=x[:, None], targets=y) def autocorrelated_noise(ds, sr, cutoff, lfnl=3.0, bord=10, hfnl=None, add_baseline=True): """Generate a dataset with samples being temporally autocorrelated noise. Parameters ---------- ds : Dataset Source dataset whose mean samples serves as the pedestal of the new noise samples. All attributes of this dataset will also go into the generated one. sr : float Sampling rate (in Hz) of the samples in the dataset. cutoff : float Cutoff frequency of the low-pass butterworth filter. bord : int Order of the butterworth filter that is applied for low-pass filtering. lfnl : float Low frequency noise level in percent signal (per feature). hfnl : float or None High frequency noise level in percent signal (per feature). If None, no HF noise is added. """ from scipy.signal import butter, lfilter # something to play with fds = ds.copy(deep=False) # compute the pedestal msample = fds.samples.mean(axis=0) # noise/signal amplitude relative to each feature mean signal noise_amps = msample * (lfnl / 100.) # generate gaussian noise for the full dataset nsamples = np.random.standard_normal(fds.samples.shape) # scale per each feature nsamples *= noise_amps # nyquist frequency nf = sr / 2.0 # along samples low-pass filtering fb, fa = butter(bord, cutoff / nf) nsamples = lfilter(fb, fa, nsamples, axis=0) # add the pedestal if add_baseline: nsamples += msample # HF noise if hfnl is not None: noise_amps = msample * (hfnl / 100.) nsamples += np.random.standard_normal(nsamples.shape) * noise_amps fds.samples = nsamples return fds def random_affine_transformation(ds, scale_fac=100., shift_fac=10.): """Distort a dataset by random scale, shift, and rotation. The original data samples are transformed by applying a random rotation, shifting by a random vector (randomly selected, scaled input sample), and scaled by a random factor (randomly selected input feature values, scaled by an additional factor). The effective transformation values are stored in the output dataset's attribute collection as 'random_rotation', 'random_shift', and 'random_scale' respectively. Parameters ---------- ds : Dataset Input dataset. Its sample and features attributes will be assigned to the output dataset. scale_fac : float Factor by which the randomly selected value for data scaling is scaled itself. shift_fac : float Factor by which the randomly selected shift vector is scaled. """ rndidx = np.random.randint R = get_random_rotation(ds.nfeatures) samples = ds.samples # reusing random data from dataset itself random_scale = samples[rndidx(len(ds)), rndidx(ds.nfeatures)] * scale_fac random_shift = samples[rndidx(len(ds))] * shift_fac samples = np.dot(samples, R) * random_scale + random_shift return Dataset(samples, sa=ds.sa, fa=ds.fa, a={'random_rotation': R, 'random_scale': random_scale, 'random_shift': random_shift}) def simple_hrf_dataset( events=None, hrf_gen=lambda t: double_gamma_hrf(t) - single_gamma_hrf(t, 0.8, 1, 0.05), fir_length=15, nsamples=None, tr=2.0, tres=1, baseline=800.0, signal_level=1, noise='normal', noise_level=1, resampling='scipy'): """ events: list of Events or ndarray of onsets for simple(r) designs """ if events is None: events = [1, 20, 25, 50, 60, 90, 92, 140] if isinstance(events, np.ndarray) or not isinstance(events[0], dict): events = [Event(onset=o) for o in events] else: assert(isinstance(events, list)) for e in events: assert(isinstance(e, dict)) # play fmri # full-blown HRF with initial dip and undershoot ;-) hrf_x = np.arange(0, float(fir_length) * tres, tres) if isinstance(hrf_gen, np.ndarray): # just accept provided HRF and only verify size match assert(len(hrf_x) == len(hrf_gen)) hrf = hrf_gen else: # actually generate it hrf = hrf_gen(hrf_x) if not nsamples: # estimate number of samples needed if not provided max_onset = max([e['onset'] for e in events]) nsamples = int(max_onset / tres + len(hrf_x) * 1.5) # come up with an experimental design fast_er = np.zeros(nsamples) for e in events: on = int(e['onset'] / float(tres)) off = int((e['onset'] + e.get('duration', 1.)) / float(tres)) if off == on: off += 1 # so we have at least 1 point assert(range(on, off)) fast_er[on:off] = e.get('intensity', 1) # high resolution model of the convolved regressor model_hr = np.convolve(fast_er, hrf)[:nsamples] # downsample the regressor to fMRI resolution if resampling == 'scipy': from scipy import signal model_lr = signal.resample(model_hr, int(tres * nsamples / tr), window='ham') elif resampling == 'naive': if tr % tres != 0.0: raise ValueError("You must use resample='scipy' since your TR=%.2g" " is not multiple of tres=%.2g" % (tr, tres)) if tr < tres: raise ValueError("You must use resample='scipy' since your TR=%.2g" " is less than tres=%.2g" % (tr, tres)) step = int(tr // tres) model_lr = model_hr[::step] else: raise ValueError("resampling can only be 'scipy' or 'naive'. Got %r" % resampling) # generate artifical fMRI data: two voxels one is noise, one has # something wsignal = baseline + model_lr * signal_level nsignal = np.ones(wsignal.shape) * baseline # build design matrix: bold-regressor and constant design = np.array([model_lr, np.repeat(1, len(model_lr))]).T # two 'voxel' dataset ds = dataset_wizard(samples=np.array((wsignal, nsignal)).T, targets=1) ds.a['baseline'] = baseline ds.a['tr'] = tr ds.sa['design'] = design ds.fa['signal_level'] = [signal_level, False] if noise == 'autocorrelated': # this one seems to be quite unstable and can provide really # funky noise at times noise = autocorrelated_noise(ds, 1 / tr, 1 / (2 * tr), lfnl=noise_level, hfnl=noise_level, add_baseline=False) elif noise == 'normal': noise = np.random.randn(*ds.shape) * noise_level else: raise ValueError(noise) ds.sa['noise'] = noise ds.samples += noise return ds def local_random_affine_transformations( ds, distort_seeds, distort_neighbor, space, scale_fac=100, shift_fac=10): """Distort a dataset in the local neighborhood of selected features. This function is similar to ``random_affine_transformation()``, but applies multiple random affine transformations to a spatially constraint local neighborhood. Parameters ---------- ds : Dataset The to be transformed/distorted dataset. distort_seeds : list(int) This a sequence of feature ids (corresponding to the input dataset) that serve as anchor to determine the local neighborhood for a distortion. The number of seeds also determines the number of different local distortions that are going to be applied. distort_neighbor : callable And object that when called with a coordinate generates a sequence of coordinates that comprise its neighborhood (see e.g. ``Sphere()``). space : str Name of the feature attribute of the input dataset that contains the relevant feature coordinates (e.g. 'voxel_indices'). scale_fac : float See ``random_affine_transformation()`` shift_fac : float See ``random_affine_transformation()`` Returns ------- Dataset A dataset derived from the input dataset with added local distortions. """ # which dataset attributes to aggregate random_stats = ['random_rotation', 'random_scale', 'random_shift'] kwa = {space: distort_neighbor} qe = IndexQueryEngine(**kwa) qe.train(ds) ds_distorted = ds.copy() for stat in random_stats: ds_distorted.a[stat + 's'] = {} # for each seed region for seed in distort_seeds: # select the neighborhood for this seed # take data from the distorted dataset to avoid # 'loosing' previous distortions distort_ids = qe[seed] ds_d = random_affine_transformation( ds_distorted[:, distort_ids], scale_fac=scale_fac, shift_fac=shift_fac) # recover the distortions stats for this seed for stat in random_stats: ds_distorted.a[stat + 's'].value[seed] = ds_d.a[stat].value # put the freshly distorted data back ds_distorted.samples[:, distort_ids] = ds_d.samples return ds_distorted pymvpa2-2.6.4/mvpa2/misc/dcov.py000066400000000000000000000152071323370031300164060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Compute dcov/dcorr measures for independence testing References ---------- http://en.wikipedia.org/wiki/Distance_covariance """ """ TODO: consider use of numexpr to speed all those up -- there is plenty of temp storage """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning, externals if externals.exists('cran-energy'): import rpy2.robjects import rpy2.robjects.numpy2ri if hasattr(rpy2.robjects.numpy2ri,'activate'): rpy2.robjects.numpy2ri.activate() RRuntimeError = rpy2.robjects.rinterface.RRuntimeError r = rpy2.robjects.r r.library('energy') def _euclidean_distances(x, uv): """Compute euclidean distances for samples in columns Helper function for dcov computations Parameters ---------- uv : bool, optional if True, then for each observable distance computed separately from the others. If not -- then distances computed for multivariate patterns and output as observable == 1 output observable x sample x sample """ # TODO: could possibly be optimized to not compute the same i,j # and i,i distance twice but I wanted to avoid any explicit Python # loop here dx = x[:, None, :] - x[:, :, None] if uv: return np.sqrt(np.square(dx)) else: return np.sqrt(np.sum(np.square(dx), axis=0))[None,:] def _Aij(d): """Given distances matrix observable x sample x sample return normalized one where means get subtracted """ mean_i = np.mean(d, axis=1) mean_j = np.mean(d, axis=2) mean_ij = np.mean(mean_i, axis=1) # ain't broadcasting is cool? return d - mean_i[:, None] - mean_j[:, :, None] + mean_ij[:, None, None] if externals.exists('cran-energy'): def dCOV_R(x, y, uv=False, all_est=True): """Implementation of dCOV interfaced to original R energy library -- used primarily for testing """ # trust no one! if uv: N = len(x) M = len(y) dCovs = np.zeros((N, M)) dCors = np.zeros((N, M)) Varx = np.zeros((N,)) Vary = np.zeros((M,)) for ix, x_ in enumerate(x): for iy, y_ in enumerate(y): out = r.DCOR(x_, y_) #outr = r.dcor(x_, y_) #outv = r.dcov(x_, y_) dCovs[ix, iy] = out[0][0] dCors[ix, iy] = out[1][0] Varx[ix] = out[2][0] Vary[iy] = out[3][0] outputs = dCovs, dCors, Varx, Vary else: out = r.DCOR(x.T, y.T) outputs = tuple([o[0] for o in out]) if not all_est: outputs = outputs[:1] if uv: return outputs else: # return corresponding scalars if it was a multivariate estimate return tuple(np.asscalar(np.asanyarray(x)) for x in outputs) def dCOV(x, y, rowvar=1, uv=False, all_est=True): """Estimate dCov measure(s) between x and y. Allows uni- or multi-variate estimations Name dCOV was chosen to match implementation in R energy toolbox: http://cran.r-project.org/web/packages/energy/index.html Parameters ---------- rowvar : int, optional If `rowvar` is 1 (default), then each row represents a variable, with observations in the columns. If 0, the relationship is transposed: each column represents a variable, while the rows contain observations. uv : bool, optional dCov is a multivariate measure of dependence so it would produce a single estimate for two matrices NxT and MxT. With uv=True (univariate estimation) it will return estimates for every pair of variables from x and y, thus NxM matrix, somewhat similar to what numpy.corrcoef does besides not estimating within x or y all_est : bool, True Since majority of computation of dCor(x,y), dVar(x) and dVar(y) is spend while estimating dVar(x, y) it makes sense to estimate all of them at the same time if any of the later is necessary. So output would then consist of dCov, dCor, dVar(x), dVar(y) tuple, matching the order of energy toolbox dCOV output in R. """ # Assure that we have correct dimensionality x = np.atleast_2d(x) y = np.atleast_2d(y) if rowvar == 0: # operate on transposes x = x.T y = y.T elif rowvar == 1: pass # default mode else: raise ValueError("rowvar must be either 0 (samples are rows) " "or 1 (observables are rows). Got %d" % rowvar) # number of samples nsamples = x.shape[1] assert(nsamples == y.shape[1]) if nsamples < 3: warning("You are trying to estimate dCov on %d sample(s). " "Please verify correctness of input" % nsamples) Dx = _euclidean_distances(x, uv=uv) Dy = _euclidean_distances(y, uv=uv) N, M = len(Dx), len(Dy) # .reshape is here to combine TxT into a single T**2 dimension to ease sums Ax = _Aij(Dx).reshape((N, -1)) Ay = _Aij(Dy).reshape((M, -1)) # and once again use cool broadcasting although at the cost of # memory since per se temporary storage is not necessary Axy = Ax[:, None] * Ay[None, :] dCov = np.sqrt(np.mean(Axy, axis=2)) if not all_est: outputs = (dCov,) else: # if all estimates were requested -- be so dVar_x = np.sqrt(np.mean(np.square(Ax), axis=1)) dVar_y = np.sqrt(np.mean(np.square(Ay), axis=1)) dVar_xy = np.sqrt(dVar_x[:, None] * dVar_y[None, :]) dCor = np.zeros(shape=dCov.shape) # So that we do not / 0. R's dCOV seems to return 0s for # those cases, so we will dVar_xy_nz = dVar_xy.nonzero() dCor[dVar_xy_nz] = dCov[dVar_xy_nz] / dVar_xy[dVar_xy_nz] outputs = dCov, dCor, dVar_x, dVar_y if uv: return outputs else: # return corresponding scalars if it was a multivariate estimate return tuple(np.asscalar(x) for x in outputs) def dcorcoef(x, y, rowvar=1, uv=False): """Return dCor coefficient(s) only (convenience function). See :func:`dCOV` for more information """ _, dCor, _, _ = dCOV(x, y, rowvar=rowvar, uv=uv, all_est=True) return dCor pymvpa2-2.6.4/mvpa2/misc/errorfx.py000066400000000000000000000175121323370031300171430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Error functions helpers. PyMVPA can use arbitrary function which takes 2 arguments: predictions and targets and spits out a scalar value. Functions below are for the convinience, and they confirm the agreement that 'smaller' is 'better'""" __docformat__ = 'restructuredtext' import numpy as np from numpy import trapz from mvpa2.base import externals # Various helper functions ##REF: Name was automagically refactored def mean_power_fx(data): """Returns mean power Similar to var but without demeaning """ return np.mean(np.asanyarray(data)**2) ##REF: Name was automagically refactored def root_mean_power_fx(data): """Returns root mean power to be comparable against RMSE """ return np.sqrt(mean_power_fx(data)) def rms_error(predicted, target): """Computes the root mean squared error of some target and some predicted values. Both 'predicted' and 'target' can be either scalars or sequences, but have to be of the same length. """ return np.sqrt(np.mean(np.subtract(predicted, target)**2)) def mean_mismatch_error(predicted, target): """Computes the percentage of mismatches between some target and some predicted values. Both 'predicted' and 'target' can be either scalars or sequences, but have to be of the same length. """ # XXX should we enforce consistent dimensionality and type? # e.g. now lists would lead to incorrect results, and # comparisons of arrays of different lengths would also # tolerate input and produce some incorrect value as output # error # np.equal , np.not_equal -- prohibited -- those do not work on literal labels! uff # so lets use == and != assuring dealing with arrays return np.mean( np.asanyarray(predicted) != target ) def mismatch_error(predicted, target): """Computes number of mismatches between some target and some predicted values. Both 'predicted' and 'target' can be either scalars or sequences, but have to be of the same length. """ return np.sum( np.asanyarray(predicted) != target ) def mean_tpr(predicted, target): """Mean True Positive Rate (TPR). Mean of estimates per each class """ if len(predicted) != len(target) or not len(target): raise ValueError( "Both predicted and target should be of the same non-0 length") targets = set(predicted) targets.update(target) target = np.asanyarray(target) predicted = np.asanyarray(predicted) TPRs = [] for t in targets: Pmask = target == t TPmask = predicted[Pmask] == t assert len(TPmask) <= len(Pmask), "do not see how this could have been violated unless indexing is screwedup..." P = np.sum(Pmask) TP = np.sum(TPmask) if not P: # better be safe than sorry raise ValueError( "For target %s there were only predicted values, but no " "expected ones. TPR is undefined in this case, so use some " "other errorfx if you really need to deal with such data (or " "verify if your shuffling etc is correct)" % str(t) ) TPRs.append(float(TP)/P) return np.mean(TPRs) def mean_fnr(predicted, target): """Mean False Negative Rate (FNR) = 1 - TPR""" return 1 - mean_tpr(predicted, target) def prediction_target_matches(predicted, target): """Returns a boolean vector of correctness of predictions""" return np.asanyarray(predicted) == target def match_accuracy(predicted, target): """Computes number of matches between some target and some predicted values. Both 'predicted' and 'target' can be either scalars or sequences, but have to be of the same length. """ return np.sum(prediction_target_matches(predicted, target)) def mean_match_accuracy(predicted, target): """Computes mean of number of matches between some target and some predicted values. Both 'predicted' and 'target' can be either scalars or sequences, but have to be of the same length. """ return np.mean(prediction_target_matches(predicted, target)) def auc_error(predicted, target): """Computes the area under the ROC for the given the target and predicted to make the prediction.""" # sort the target in descending order based on the predicted and # set to boolean t = np.asanyarray(target)[np.argsort(predicted)[::-1]] > 0 # calculate the true positives tp = np.concatenate( ([0], np.cumsum(t)/t.sum(dtype=np.float), [1])) # calculate the false positives fp = np.concatenate( ([0], np.cumsum(~t)/(~t).sum(dtype=np.float), [1])) return trapz(tp, fp) if externals.exists('scipy'): from scipy.stats import pearsonr def correlation(predicted, target): """Computes the correlation between the target and the predicted values. In case of NaN correlation (no variance in predictors or targets) result output error is 0. """ r = pearsonr(predicted, target)[0] if np.isnan(r): r = 0.0 return r def corr_error_prob(predicted, target): """Computes p-value of correlation between the target and the predicted values. """ return pearsonr(predicted, target)[1] else: # slower(?) and bogus(p-value) implementations for non-scipy users # TODO: implement them more or less correcly with numpy # functionality def correlation(predicted, target): """Computes the correlation between the target and the predicted values. Return 1-CC In case of NaN correlation (no variance in predictors or targets) result output error is 1.0. """ l = len(predicted) r = np.corrcoef(np.reshape(predicted, l), np.reshape(target, l))[0,1] if np.isnan(r): r = 0.0 return r def corr_error_prob(predicted, target): """Computes p-value of correlation between the target and the predicted values. """ from mvpa2.base import warning warning("p-value for correlation is implemented only when scipy is " "available. Bogus value -1.0 is returned otherwise") return -1.0 def corr_error(predicted, target): """Computes the correlation between the target and the predicted values. Resultant value is the 1 - correlation coefficient, so minimization leads to the best value (at 0). In case of NaN correlation (no variance in predictors or targets) result output error is 1.0. """ return 1 - correlation(predicted, target) def relative_rms_error(predicted, target): """Ratio between RMSE and root mean power of target output. So it can be considered as a scaled RMSE -- perfect reconstruction has values near 0, while no reconstruction has values around 1.0. Word of caution -- it is not commutative, ie exchange of predicted and target might lead to completely different answers """ return rms_error(predicted, target) / root_mean_power_fx(target) def variance_1sv(predicted, target): """Ratio of variance described by the first singular value component. Of limited use -- left for the sake of not wasting it """ data = np.vstack( (predicted, target) ).T # demean data_demeaned = data - np.mean(data, axis=0) u, s, vh = np.linalg.svd(data_demeaned, full_matrices=0) # assure sorting s.sort() s=s[::-1] cvar = s[0]**2 / np.sum(s**2) return cvar pymvpa2-2.6.4/mvpa2/misc/exceptions.py000066400000000000000000000017411323370031300176320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Exception classes which might get thrown""" __docformat__ = 'restructuredtext' class UnknownStateError(Exception): """Thrown if the internal state of the class is not yet defined. Classifiers and Algorithms classes might have properties, which are not defined prior to training or invocation has happened. """ pass class ConvergenceError(Exception): """Thrown if some algorithm does not converge to a solution. """ pass class InvalidHyperparameterError(Exception): """Generic exception to be raised when setting improper values as hyperparameters. """ pass pymvpa2-2.6.4/mvpa2/misc/fsl/000077500000000000000000000000001323370031300156605ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/misc/fsl/__init__.py000066400000000000000000000011511323370031300177670ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for FSL""" if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.misc.fsl') from mvpa2.misc.fsl.base import * from mvpa2.misc.fsl.flobs import * if __debug__: debug('INIT', 'mvpa2.misc.fsl end') pymvpa2-2.6.4/mvpa2/misc/fsl/base.py000066400000000000000000000221221323370031300171430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Tiny snippets to interface with FSL easily.""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.misc.io import ColumnData from mvpa2.misc.support import Event if __debug__: from mvpa2.base import debug class FslEV3(ColumnData): """IO helper to read FSL's EV3 files. This is a three-column textfile format that is used to specify stimulation protocols for fMRI data analysis in FSL's FEAT module. Data is always read as `float`. """ def __init__(self, source): """Read and write FSL EV3 files. Parameters ---------- source : str Filename of an EV3 file """ # init data from known format ColumnData.__init__(self, source, header=['onsets', 'durations', 'intensities'], sep=None, dtype=float) @property def nevs(self): """Returns the number of EVs in the file. """ return self.nrows ##REF: Name was automagically refactored def get_ev(self, evid): """Returns a tuple of (onset time, simulus duration, intensity) for a certain EV. """ return (self['onsets'][evid], self['durations'][evid], self['intensities'][evid]) def tofile(self, filename): """Write data to a FSL EV3 file. """ ColumnData.tofile(self, filename, header=False, header_order=['onsets', 'durations', 'intensities'], sep=' ') ##REF: Name was automagically refactored def to_events(self, **kwargs): """Convert into a list of `Event` instances. Parameters ---------- kwargs Any keyword arugment provided would be replicated, through all the entries. Useful to specify label or even a chunk """ return \ [Event(onset=self['onsets'][i], duration=self['durations'][i], features=[self['intensities'][i]], **kwargs) for i in xrange(self.nevs)] onsets = property(fget=lambda self: self['onsets']) durations = property(fget=lambda self: self['durations']) intensities = property(fget=lambda self: self['intensities']) class McFlirtParams(ColumnData): """Read and write McFlirt's motion estimation parameters from and to text files. """ header_def = ['rot1', 'rot2', 'rot3', 'x', 'y', 'z'] def __init__(self, source): """Initialize McFlirtParams Parameters ---------- source : str Filename of a parameter file. """ ColumnData.__init__(self, source, header=McFlirtParams.header_def, sep=None, dtype=float) def tofile(self, filename): """Write motion parameters to file. """ ColumnData.tofile(self, filename, header=False, header_order=McFlirtParams.header_def, sep=' ') def plot(self): """Produce a simple plot of the estimated translation and rotation parameters using. You still need to can pylab.show() or pylab.savefig() if you want to see/get anything. """ # import internally as it takes some time and might not be needed most # of the time import pylab as pl # translations subplot pl.subplot(211) pl.plot(self.x) pl.plot(self.y) pl.plot(self.z) pl.ylabel('Translations in mm') pl.legend(('x', 'y', 'z'), loc=0) # rotations subplot pl.subplot(212) pl.plot(self.rot1) pl.plot(self.rot2) pl.plot(self.rot3) pl.ylabel('Rotations in rad') pl.legend(('rot1', 'rot2', 'rot3'), loc=0) def toarray(self): """Returns the data as an array with six columns (same order as in file). """ import numpy as np # return as array with time axis first return np.array([self[i] for i in McFlirtParams.header_def], dtype='float').T class FslGLMDesign(object): """Load FSL GLM design matrices from file. Be aware that such a desig matrix has its regressors in columns and the samples in its rows. """ def __init__(self, source): """ Parameters ---------- source : filename Compressed files will be read as well, if their filename ends with '.gz'. """ # XXX maybe load from array as well self._load_file(source) ##REF: Name was automagically refactored def _load_file(self, fname): """Helper function to load GLM definition from a file. """ # header info nwaves = 0 ntimepoints = 0 matrix_offset = 0 # open the file compressed or not if fname.endswith('.gz'): import gzip fh = gzip.open(fname, 'r') else: fh = open(fname, 'r') # read header for i, line in enumerate(fh): if line.startswith('/NumWaves'): nwaves = int(line.split()[1]) if line.startswith('/NumPoints'): ntimepoints = int(line.split()[1]) if line.startswith('/PPheights'): self.ppheights = [float(i) for i in line.split()[1:]] if line.startswith('/Matrix'): matrix_offset = i + 1 # done with the header, now revert to NumPy's loadtxt for convenience fh.close() self.mat = np.loadtxt(fname, skiprows=matrix_offset) # checks if not self.mat.shape == (ntimepoints, nwaves): raise IOError, "Design matrix file '%s' did not contain expected " \ "matrix size (expected %s, got %s)" \ % (fname, str((ntimepoints, nwaves)), self.mat.shape) def plot(self, style='lines', **kwargs): """Visualize the design matrix. Parameters ---------- style: 'lines', 'matrix' **kwargs: Additional arguments will be passed to the corresponding matplotlib plotting functions 'plot()' and 'pcolor()' for 'lines' and 'matrix' plots respectively. """ # import internally as it takes some time and might not be needed most # of the time import pylab as pl if style == 'lines': # common y-axis yax = np.arange(0, self.mat.shape[0]) axcenters = [] col_offset = max(self.ppheights) # for all columns for i in xrange(self.mat.shape[1]): axcenter = i * col_offset pl.plot(self.mat[:, i] + axcenter, yax, **kwargs) axcenters.append(axcenter) pl.xticks(np.array(axcenters), range(self.mat.shape[1])) elif style == 'matrix': pl.pcolor(self.mat, **kwargs) ticks = np.arange(1, self.mat.shape[1] + 1) pl.xticks(ticks - 0.5, ticks) else: raise ValueError, "Unknown plotting style '%s'" % style # labels and turn y-axis upside down pl.ylabel('Samples (top to bottom)') pl.xlabel('Regressors') pl.ylim(self.mat.shape[0], 0) def read_fsl_design(fsf_file): """Reads an FSL FEAT design.fsf file and return the content as a dictionary. Parameters ---------- fsf_file : filename, file-like """ # This function was originally contributed by Russell Poldrack if isinstance(fsf_file, basestring): infile = open(fsf_file, 'r') else: infile = fsf_file # target dict fsl = {} # loop over all lines for line in infile: line = line.strip() # if there is nothing on the line, do nothing if not line or line[0] == '#': continue # strip leading TCL 'set' key, value = line.split(None, 2)[1:] # fixup the 'y-' thing if value == 'y-': value = "y" # special case of variable keyword if line.count('_files('): # e.g. feat_files(1) -> feat_files key = key.split('(')[0] # decide which type we have for the value # int? if value.isdigit(): fsl[key] = int(value) else: # float? try: fsl[key] = float(value) except ValueError: # must be string then, but... # sometimes there are quotes, sometimes not, but if the value # should be a string we remove them, since the value is already # of this type fsl[key] = value.strip('"') return fsl pymvpa2-2.6.4/mvpa2/misc/fsl/flobs.py000066400000000000000000000106401323370031300173400ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrapper around FSLs halfcosbasis to generate HRF kernels""" __docformat__ = 'restructuredtext' import os from os.path import join as pathjoin import tempfile import shutil import numpy as np import math ##REF: Name was automagically refactored def make_flobs(pre=0, rise=5, fall=5, undershoot=5, undershootamp=0.3, nsamples=1, resolution=0.05, nsecs=-1, nbasisfns=2): """Wrapper around the FSL tool halfcosbasis. This function uses halfcosbasis to generate samples of HRF kernels. Kernel parameters can be modified analogous to the Make_flobs GUI which is part of FSL. :: ^ /-\\ | / \\ 1 / \\ | / \\ | / \\ | / \\ -----/ \\ /----- | \\--/ | undershootamp | | | | | | | | | | pre rise fall undershoot Parameters 'pre', 'rise', 'fall', 'undershoot' and 'undershootamp' can be specified as 2-tuples (min-max range for sampling) and single value (setting exact values -- no sampling). If 'nsec' is negative, the length of the samples is determined automatically to include the whole kernel function (until it returns to baseline). 'nsec' has to be an integer value and is set to the next greater integer value if it is not. All parameters except for 'nsamples' and 'nbasisfns' are in seconds. """ # create tempdir and temporary parameter file pfile, pfilename = tempfile.mkstemp('pyflobs') wdir = tempfile.mkdtemp('pyflobs') # halfcosbasis can only handle >1 samples # so we simply compute two and later ignore the other if nsamples < 2: rnsamples = 2 else: rnsamples = nsamples # make range tuples if not supplied if not isinstance(pre, tuple): pre = (pre, pre) if not isinstance(rise, tuple): rise = (rise, rise) if not isinstance(fall, tuple): fall = (fall, fall) if not isinstance(undershoot, tuple): undershoot = (undershoot, undershoot) if not isinstance(undershootamp, tuple): undershootamp = (undershootamp, undershootamp) # calc minimum length of hrf if not specified # looks like it has to be an integer if nsecs < 0: nsecs = int( math.ceil( pre[1] \ + rise[1] \ + fall[1] \ + undershoot[1] \ + resolution ) ) else: nsecs = math.ceil(nsecs) # write parameter file pfile = os.fdopen( pfile, 'w' ) pfile.write(str(pre[0]) + ' ' + str(pre[1]) + '\n') pfile.write(str(rise[0]) + ' ' + str(rise[1]) + '\n') pfile.write(str(fall[0]) + ' ' + str(fall[1]) + '\n') pfile.write(str(undershoot[0]) + ' ' + str(undershoot[1]) + '\n') pfile.write('0 0\n0 0\n') pfile.write(str(undershootamp[0]) + ' ' + str(undershootamp[1]) + '\n') pfile.write('0 0\n') pfile.close() # call halfcosbasis to generate the hrf samples tochild, fromchild, childerror = os.popen3('halfcosbasis' + ' --hf=' + pfilename + ' --nbfs=' + str(nbasisfns) + ' --ns=' + str(nsecs) + ' --logdir=' + pathjoin(wdir, 'out') + ' --nhs=' + str(rnsamples) + ' --res=' + str(resolution) ) err = childerror.readlines() if len(err) > 0: print err raise RuntimeError, "Problem while running halfcosbasis." # read samples from file into an array hrfs = np.fromfile( pathjoin( wdir, 'out', 'hrfsamps.txt' ), sep = ' ' ) # reshape array to get one sample per row and 1d array only # for one sample hrf hrfs = \ hrfs.reshape( len(hrfs)/rnsamples, rnsamples).T[:nsamples].squeeze() # cleanup working dir (ignore errors) shutil.rmtree( wdir, True ) # remove paramter file os.remove( pfilename ) # and return an array return( hrfs ) pymvpa2-2.6.4/mvpa2/misc/fsl/melodic.py000066400000000000000000000064351323370031300176560ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Wrapper around the output of MELODIC (part of FSL)""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals if externals.exists('nibabel', raise_=True): import nibabel as nb class MelodicResults( object ): """Easy access to MELODIC output. Only important information is available (important as judged by the author). """ def __init__( self, path, fext='.nii.gz'): """Reads all information from the given MELODIC output path. """ self._fext = fext rpath = None lookup = ['', 'filtered_func_data.ica'] for lu in lookup: if os.path.exists(pathjoin(path, lu, 'melodic_IC' + fext)): rpath = pathjoin(path, lu) break if rpath is None: raise ValueError("Cannot find Melodic results at '%s'" % path) else: self._rpath = rpath self._ic = nb.load(pathjoin(rpath, 'melodic_IC' + fext)) self._icshape = self._ic.shape self._mask = nb.load(pathjoin(rpath, 'mask' + fext)) self._tmodes = np.loadtxt(pathjoin(rpath, 'melodic_Tmodes' )) self._smodes = np.loadtxt(pathjoin(rpath, 'melodic_Smodes')) self._icstats = np.loadtxt(pathjoin(rpath, 'melodic_ICstats')) def _get_stat(self, type, ic): # melodic's IC number is one-based, we do zero-based img = nb.load(pathjoin(self._rpath, 'stats', '%s%i' % (type, ic + 1) + self._fext)) return img.get_data() def get_probmap(self, ic): return self._get_stat('probmap_', ic) def get_thresh_zstat(self, ic): return self._get_stat('thresh_zstat', ic) def get_tmodes(self): ns = self.smodes.shape[1] if ns > 1: # in multisession ICA melodic creates rank-1 approximation of a # timeseries from all sessions and stores them in the first column return self._tmodes.T[::ns+1] else: return self._tmodes.T def get_raw_tmodes(self): return self._tmodes # properties path = property(fget=lambda self: self._rpath ) ic = property(fget=lambda self: np.rollaxis(self._ic.get_data(), -1)) mask = property(fget=lambda self: self._mask.get_data()) nic = property(fget=lambda self: self._icshape()[3]) extent = property(fget=lambda self: self._icshape()[:3]) tmodes = property(fget=get_tmodes) smodes = property(fget=lambda self: self._smodes.T ) icstats = property(fget=lambda self: self._icstats, doc="""Per component statistics. The first two values (from a set of four per component) correspond to the explained variance of the component in the set of extracted components and two the total variance in the whole dataset.""") relvar_per_ic = property(fget=lambda self: self._icstats[:, 0]) truevar_per_ic = property(fget=lambda self: self._icstats[:, 1]) pymvpa2-2.6.4/mvpa2/misc/fx.py000066400000000000000000000201741323370031300160670ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Misc. functions (in the mathematical sense)""" __docformat__ = 'restructuredtext' import numpy as np ##REF: Name was automagically refactored def single_gamma_hrf(t, A=5.4, W=5.2, K=1.0): """Hemodynamic response function model. The version consists of a single gamma function (also see double_gamma_hrf()). Parameters ---------- t : float Time. A : float Time to peak. W : float Full-width at half-maximum. K : float Scaling factor. """ A = float(A) W = float(W) K = float(K) return \ K * (t / A) ** ((A ** 2) / (W ** 2) * 8.0 * np.log(2.0)) \ * np.e ** ((t - A) / -((W ** 2) / A / 8.0 / np.log(2.0))) ##REF: Name was automagically refactored def double_gamma_hrf(t, A1=5.4, W1=5.2, K1=1.0, A2=10.8, W2=7.35, K2=0.35): """Hemodynamic response function model. The version is using two gamma functions (also see single_gamma_hrf()). Parameters ---------- t : float Time. A : float Time to peak. W : float Full-width at half-maximum. K : float Scaling factor. Parameters A, W and K exists individually for each of both gamma functions. """ A1 = float(A1) W1 = float(W1) K1 = float(K1) A2 = float(A2) W2 = float(W2) K2 = float(K2) return single_gamma_hrf(t, A1, W1, K1) - single_gamma_hrf(t, A2, W2, K2) def dual_gaussian(x, amp1=1.0, mean1=0.0, std1=1.0, amp2=1.0, mean2=0.0, std2=1.0): """Sum of two Gaussians. Parameters ---------- x : array Function argument amp1: float Amplitude parameter of the first Gaussian mean1: float Mean parameter of the first Gaussian std1: float Standard deviation parameter of the first Gaussian amp2: float Amplitude parameter of the second Gaussian mean2: float Mean parameter of the second Gaussian std2: float Standard deviation parameter of the second Gaussian """ from scipy.stats import norm if std1 <= 0 or std2 <= 0: return np.nan return (amp1 * norm.pdf(x, mean1, std1)) + (amp2 * norm.pdf(x, mean2, std2)) def dual_positive_gaussian(x, amp1=1.0, mean1=0.0, std1=1.0, amp2=1.0, mean2=0.0, std2=1.0): """Sum of two non-negative Gaussians Parameters ---------- x : array Function argument amp1: float Amplitude parameter of the first Gaussian mean1: float Mean parameter of the first Gaussian std1: float Standard deviation parameter of the first Gaussian amp2: float Amplitude parameter of the second Gaussian mean2: float Mean parameter of the second Gaussian std2: float Standard deviation parameter of the second Gaussian """ if amp1 < 0 or amp2 < 0: return np.nan return dual_gaussian(x, amp1, mean1, std1, amp2, mean2, std2) def least_sq_fit(fx, params, y, x=None, **kwargs): """Simple convenience wrapper around SciPy's optimize.leastsq. The advantage of using this wrapper instead of optimize.leastsq directly is, that it automatically constructs an appropriate error function and easily deals with 2d data arrays, i.e. each column with multiple values for the same function argument (`x`-value). Parameters ---------- fx : functor Function to be fitted to the data. It has to take a vector with function arguments (`x`-values) as the first argument, followed by an arbitrary number of (to be fitted) parameters. params : sequence Sequence of start values for all to be fitted parameters. During fitting all parameters in this sequences are passed to the function in the order in which they appear in this sequence. y : 1d or 2d array The data the function is fitted to. In the case of a 2d array, each column in the array is considered to be multiple observations or measurements of function values for the same `x`-value. x : Corresponding function arguments (`x`-values) for each datapoint, i.e. element in `y` or columns in `y', in the case of `y` being a 2d array. If `x` is not provided it will be generated by `np.arange(m)`, where `m` is either the length of `y` or the number of columns in `y`, if `y` is a 2d array. **kwargs All additonal keyword arguments are passed to `fx`. Returns ------- tuple : as returned by scipy.optimize.leastsq i.e. 2-tuple with list of final (fitted) parameters of `fx` and an integer value indicating success or failure of the fitting procedure (see leastsq docs for more information). """ # import here to not let the whole module depend on SciPy from scipy.optimize import leastsq y = np.asanyarray(y) if len(y.shape) > 1: nsamp, ylen = y.shape else: nsamp, ylen = (1, len(y)) # contruct matching x-values if necessary if x is None: x = np.arange(ylen) # transform x and y into 1d arrays if nsamp > 1: x = np.array([x] * nsamp).ravel() y = y.ravel() # define error function def efx(p): err = y - fx(x, *p, **kwargs) return err # do fit return leastsq(efx, params) def fit2histogram(X, fx, params, nbins=20, x_range=None): """Fit a function to multiple histograms. First histogram is computed for each data row vector individually. Afterwards a custom function is fitted to the binned data. Parameters ---------- X : array-like Data (nsamples x nfeatures) fx : functor Function to be fitted. Its interface has to comply to the requirements as for `least_sq_fit`. params : tuple Initial parameter values. nbins : int Number of histogram bins. x_range : None or tuple Range spanned by the histogram bins. By default the actual mininum and maximum values of the data are used. Returns ------- tuple (histograms (nsampels x nbins), bin locations (left border), bin width, output of `least_sq_fit`) """ if x_range is None: # use global min max to ensure consistent bins across observations x_range = (X.min(), X.max()) # histograms per observation H = [] bin_centers = None bin_left = None for obsrv in X: hi = np.histogram(obsrv, bins=nbins, range=x_range) if bin_centers is None: bin_left = hi[1][:-1] # round to take care of numerical instabilities bin_width = \ np.abs( np.asscalar( np.unique( np.round(bin_left - hi[1][1:], decimals=6)))) bin_centers = bin_left + bin_width / 2 H.append(hi[0]) if len(H) == 1: H = np.asarray(H[0]) else: H = np.asarray(H) return (H, bin_left, bin_width, least_sq_fit(fx, params, H, bin_centers)) def get_random_rotation(ns, nt=None, data=None): """Return some random rotation (or rotation + dim reduction) matrix Parameters ---------- ns : int Dimensionality of source space nt : int, optional Dimensionality of target space data : array, optional Some data (should have rank high enough) to derive rotation """ if nt is None: nt = ns # figure out some "random" rotation d = max(ns, nt) if data is None: data = np.random.normal(size=(d * 10, d)) _u, _s, _vh = np.linalg.svd(data[:, :d]) R = _vh[:ns, :nt] if ns == nt: # Test if it is indeed a rotation matrix ;) # Lets flip first axis if necessary if np.linalg.det(R) < 0: R[:, 0] *= -1.0 return R pymvpa2-2.6.4/mvpa2/misc/io/000077500000000000000000000000001323370031300155035ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/misc/io/__init__.py000066400000000000000000000011121323370031300176070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for IO helpers""" if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.misc.io') from mvpa2.misc.io.base import * if __debug__: debug('INIT', 'mvpa2.misc.io end') pymvpa2-2.6.4/mvpa2/misc/io/base.py000066400000000000000000000517571323370031300170060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Some little helper for reading (and writing) common formats from and to disk.""" __docformat__ = 'restructuredtext' import os import numpy as np import mvpa2.support.copy as copy from mvpa2.base.dochelpers import enhanced_doc_string from re import sub from mvpa2.base import warning from mvpa2.misc.support import Event if __debug__: from mvpa2.base import debug __all__ = ['DataReader', 'ColumnData', 'SampleAttributes', 'SensorLocations', 'XAVRSensorLocations', 'TuebingenMEGSensorLocations', 'labels2chunks', 'design2labels', 'safe_write'] class DataReader(object): """Base class for data readers. Every subclass has to put all information into to variable: `self._data`: ndarray The data array has to have the samples separating dimension along the first axis. `self._props`: dict All other meaningful information has to be stored in a dictionary. This class provides two methods (and associated properties) to retrieve this information. """ def __init__(self): """Initialize base class `DataReader` -- no parameters. """ self._props = {} self._data = None @property def props(self): """Return the dictionary with the data properties. """ return self._props @property def data(self): """Return the data array. """ return self._data class ColumnData(dict): """Read data that is stored in columns of text files. All read data is available via a dictionary-like interface. If column headers are available, the column names serve as dictionary keys. If no header exists an articfical key is generated: str(number_of_column). Splitting of text file lines is performed by the standard split() function (which gets passed the `sep` argument as separator string) and each element is converted into the desired datatype. Because data is read into a dictionary no two columns can have the same name in the header! Each column is stored as a list in the dictionary. """ def __init__(self, source, header=True, sep=None, headersep=None, dtype=float, skiplines=0): """Read data from file into a dictionary. Parameters ---------- source : str or dict If values is given as a string all data is read from the file and additonal keyword arguments can be used to customize the read procedure. If a dictionary is passed a deepcopy is performed. header : bool or list of str Indicates whether the column names should be read from the first line (`header=True`). If `header=False` unique column names will be generated (see class docs). If `header` is a python list, it's content is used as column header names and its length has to match the number of columns in the file. sep : str or None Separator string. The actual meaning depends on the output format (see class docs). headersep : str or None Separator string used in the header. The actual meaning depends on the output format (see class docs). dtype : type or list(types) Desired datatype(s). Datatype per column get be specified by passing a list of types. skiplines : int Number of lines to skip at the beginning of the file. """ # init base class dict.__init__(self) # intialize with default self._header_order = None if isinstance(source, basestring): self._from_file(source, header=header, sep=sep, headersep=headersep, dtype=dtype, skiplines=skiplines) elif isinstance(source, dict): for k, v in source.iteritems(): self[k] = v # check data integrity self._check() else: raise ValueError, 'Unkown source for ColumnData [%r]' \ % type(source) # generate missing properties for each item in the header classdict = self.__class__.__dict__ for k in self.keys(): if not k in classdict: getter = "lambda self: self._get_attrib('%s')" % (k) # Sanitarize the key, substitute ' []' with '_' k_ = sub('[[\] ]', '_', k) # replace multipe _s k_ = sub('__+', '_', k_) # remove quotes k_ = sub('["\']', '', k_) if __debug__: debug("IOH", "Registering property %s for ColumnData key %s" % (k_, k)) # make sure to import class directly into local namespace # otherwise following does not work for classes defined # elsewhere exec 'from %s import %s' % (self.__module__, self.__class__.__name__) exec "%s.%s = property(fget=%s)" % \ (self.__class__.__name__, k_, getter) # TODO!!! Check if it is safe actually here to rely on value of # k in lambda. May be it is treated as continuation and # some local space would override it???? #setattr(self.__class__, # k, # property(fget=lambda x: x._get_attrib("%s" % k))) # it seems to be error-prone due to continuation... __doc__ = enhanced_doc_string('ColumnData', locals()) ##REF: Name was automagically refactored def _get_attrib(self, key): """Return corresponding value if given key is known to current instance Is used for automatically added properties to the class. Raises ------ ValueError: If `key` is not known to given instance Returns ------- Value if `key` is known """ if key in self: return self[key] else: raise ValueError, "Instance %r has no data about %r" \ % (self, key) def __str__(self): s = self.__class__.__name__ if len(self.keys()) > 0: s += " %d rows, %d columns [" % \ (self.nrows, self.ncolumns) s += reduce(lambda x, y: x + " %s" % y, self.keys()) s += "]" return s def _check(self): """Performs some checks for data integrity. """ length = None for k in self.keys(): if length is None: length = len(self[k]) else: if not len(self[k]) == length: raise ValueError, "Data integrity lost. Columns do not " \ "have equal length." def _from_file(self, filename, header, sep, headersep, dtype, skiplines): """Loads column data from file -- clears object first. """ # make a clean table self.clear() with open(filename, 'r') as file_: self._header_order = None [ file_.readline() for x in range(skiplines) ] """Simply skip some lines""" # make column names, either take header or generate if header == True: # read first line and split by 'sep' hdr = file_.readline().split(headersep) # remove bogus empty header titles hdr = [ x for x in hdr if len(x.strip()) ] self._header_order = hdr elif isinstance(header, list): hdr = header else: hdr = [ str(i) for i in xrange(len(file_.readline().split(sep))) ] # reset file to not miss the first line file_.seek(0) [ file_.readline() for x in range(skiplines) ] # string in lists: one per column tbl = [ [] for i in xrange(len(hdr)) ] # store whether dtype should be determined automagically auto_dtype = dtype is None # do per column dtypes if not isinstance(dtype, list): dtype = [dtype] * len(hdr) # parse line by line and feed into the lists for line in file_: # get rid of leading and trailing whitespace line = line.strip() # ignore empty lines and comment lines if not line or line.startswith('#'): continue l = line.split(sep) if not len(l) == len(hdr): raise RuntimeError, \ "Number of entries in line [%i] does not match number " \ "of columns in header [%i]." % (len(l), len(hdr)) for i, v in enumerate(l): if dtype[i] is not None: try: v = dtype[i](v) except ValueError: warning("Can't convert %r to desired datatype %r." % (v, dtype) + " Leaving original type") tbl[i].append(v) if auto_dtype: attempt_convert_dtypes = (int, float) for i in xrange(len(tbl)): values = tbl[i] for attempt_convert_dtype in attempt_convert_dtypes: try: values = map(attempt_convert_dtype, values) tbl[i] = values break except: continue # check if not len(tbl) == len(hdr): raise RuntimeError, "Number of columns read from file does not " \ "match the number of header entries." # fill dict for i, v in enumerate(hdr): self[v] = tbl[i] def __iadd__(self, other): """Merge column data. """ # for all columns in the other object for k, v in other.iteritems(): if not k in self: raise ValueError, 'Unknown key [%r].' % (k,) if not isinstance(v, list): raise ValueError, 'Can only merge list data, but got [%r].' \ % type(v) # now it seems to be ok # XXX check for datatype? self[k] += v # look for problems, like columns present in self, but not in other self._check() return self ##REF: Name was automagically refactored def select_samples(self, selection): """Return new ColumnData with selected samples""" data = copy.deepcopy(self) for k, v in data.iteritems(): data[k] = [v[x] for x in selection] data._check() return data @property def ncolumns(self): """Returns the number of columns. """ return len(self.keys()) def tofile(self, filename, header=True, header_order=None, sep=' '): """Write column data to a text file. Parameters ---------- filename : str Target filename header : bool, optional If `True` a column header is written, using the column keys. If `False` no header is written. header_order : None or list of str If it is a list of strings, they will be used instead of simply asking for the dictionary keys. However these strings must match the dictionary keys in number and identity. This argument type can be used to determine the order of the columns in the output file. The default value is `None`. In this case the columns will be in an arbitrary order. sep : str, optional String that is written as a separator between to data columns. """ with open(filename, 'w') as file_: # write header if header_order is None: if self._header_order is None: col_hdr = self.keys() else: # use stored order + newly added keys at the last columns col_hdr = self._header_order + \ list(set(self.keys()).difference( set(self._header_order))) else: if not len(header_order) == self.ncolumns: raise ValueError, 'Header list does not match number of ' \ 'columns.' for k in header_order: if not k in self: raise ValueError, 'Unknown key [%r]' % (k,) col_hdr = header_order if header == True: file_.write(sep.join(col_hdr) + '\n') # for all rows for r in xrange(self.nrows): # get attributes for all keys l = [str(self[k][r]) for k in col_hdr] # write to file with proper separator file_.write(sep.join(l) + '\n') @property def nrows(self): """Returns the number of rows. """ # no data no rows (after Bob Marley) if not len(self.keys()): return 0 # otherwise first key is as good as any other else: return len(self[self.keys()[0]]) class SampleAttributes(ColumnData): """Read and write PyMVPA sample attribute definitions from and to text files. """ def __init__(self, source, literallabels=True, header=None): """Read PyMVPA sample attributes from disk. Parameters ---------- source : str Filename of an atrribute file literallabels : bool, optional Either labels are given as literal strings header : None or bool or list of str If None, ['targets', 'chunks'] is assumed. Otherwise the same behavior as of `ColumnData` """ if literallabels: if header is None: dtypes = [str, float] else: dtypes = None else: dtypes = float if header is None: header = ['targets', 'chunks'] ColumnData.__init__(self, source, header=header, sep=None, dtype=dtypes) def tofile(self, filename): """Write sample attributes to a text file. """ ColumnData.tofile(self, filename, header=False, header_order=['targets', 'chunks'], sep=' ') @property def nsamples(self): """Returns the number of samples in the file. """ return self.nrows class SensorLocations(ColumnData): """Base class for sensor location readers. Each subclass should provide x, y, z coordinates via the `pos_x`, `pos_y`, and `pos_z` attrbibutes. Axes should follow the following convention: x-axis: left -> right y-axis: anterior -> posterior z-axis: superior -> inferior """ def __init__(self, *args, **kwargs): """Pass arguments to ColumnData. """ ColumnData.__init__(self, *args, **kwargs) def locations(self): """Get the sensor locations as an array. Returns ------- (nchannels x 3) array with coordinates in (x, y, z) """ return np.array((self.pos_x, self.pos_y, self.pos_z)).T class XAVRSensorLocations(SensorLocations): """Read sensor location definitions from a specific text file format. File layout is assumed to be 5 columns: 1. sensor name 2. some useless integer 3. position on x-axis 4. position on y-axis 5. position on z-axis """ def __init__(self, source): """Read sensor locations from file. Parameters ---------- source : filename of an attribute file """ SensorLocations.__init__( self, source, header=['names', 'some_number', 'pos_x', 'pos_y', 'pos_z'], sep=None, dtype=[str, int, float, float, float]) class TuebingenMEGSensorLocations(SensorLocations): """Read sensor location definitions from a specific text file format. File layout is assumed to be 7 columns:: 1: sensor name 2: position on y-axis 3: position on x-axis 4: position on z-axis 5-7: same as 2-4, but for some outer surface thingie. Note that x and y seem to be swapped, ie. y as defined by SensorLocations conventions seems to be first axis and followed by x. Only inner surface coordinates are reported by `locations()`. """ def __init__(self, source): """Read sensor locations from file. Parameters ---------- source : filename of an attribute file """ SensorLocations.__init__( self, source, header=['names', 'pos_y', 'pos_x', 'pos_z', 'pos_y2', 'pos_x2', 'pos_z2'], sep=None, dtype=[str, float, float, float, float, float, float]) def design2labels(columndata, baseline_label=0, func=lambda x: x > 0.0): """Helper to convert design matrix into a list of labels Given a design, assign a single label to any given sample TODO: fix description/naming Parameters ---------- columndata : ColumnData Attributes where each known will be considered as a separate explanatory variable (EV) in the design. baseline_label What label to assign for samples where none of EVs was given a value func : functor Function which decides either a value should be considered Returns ------- list of labels which are taken from column names in ColumnData and baseline_label """ # doing it simple naive way but it should be of better control if # we decide to process columndata with non-numeric entries etc keys = columndata.keys() labels = [] for row in xrange(columndata.nrows): entries = [ columndata[key][row] for key in keys ] # which entries get selected selected = [ x for x in zip(keys, entries) if func(x[1]) ] nselected = len(selected) if nselected > 1: # if there is more than a single one -- we are in problem raise ValueError, "Row #%i with items %s has multiple entries " \ "meeting the criterion. Cannot decide on the label" % \ (row, entries) elif nselected == 1: label = selected[0][0] else: label = baseline_label labels.append(label) return labels __known_chunking_methods = { 'alllabels': 'Each chunk must contain instances of all labels' } def labels2chunks(labels, method="alllabels", ignore_labels=None): """TOBE ASSIGNED BELOW """ chunks = [] if ignore_labels is None: ignore_labels = [] alllabels = set(labels).difference(set(ignore_labels)) if method == 'alllabels': seenlabels = set() lastlabel = None chunk = 0 for label in labels: if label != lastlabel: if seenlabels == alllabels: chunk += 1 seenlabels = set() lastlabel = label if not label in ignore_labels: seenlabels.update([label]) chunks.append(chunk) chunks = np.array(chunks) # fix up a bit the trailer if seenlabels != alllabels: chunks[chunks == chunk] = chunk - 1 chunks = list(chunks) else: errmsg = "Unknown method to derive chunks is requested. Known are:\n" for method, descr in __known_chunking_methods.iteritems(): errmsg += " %s : %s\n" % (method, descr) raise ValueError, errmsg return chunks labels2chunks.__doc__ = \ """Automagically decide on chunks based on labels Parameters ---------- labels labels to base chunking on method : str codename for method to use. Known are %s ignore_labels : list of str depends on the method. If method `alllabels`, then don't seek for such labels in chunks. E.g. some 'reject' samples :rtype: list """ % __known_chunking_methods.keys() def safe_write(fnout, s, mode='wb'): """Helper to write to a file and check result file size to match""" with open(fnout, mode) as f: f.write(s) n = os.stat(fnout).st_size if n != len(s): raise ValueError( "%d bytes out of %d were not written to %s" % (len(s) - n, len(s), fnout) ) return npymvpa2-2.6.4/mvpa2/misc/io/meg.py000066400000000000000000000110041323370031300166210ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """IO helper for MEG datasets.""" __docformat__ = 'restructuredtext' import sys import numpy as np from mvpa2.base import externals class TuebingenMEG(object): """Reader for MEG data from line-based textfile format. This class reads segmented MEG data from a textfile, which is created by converting the proprietary binary output files of a MEG device in Tuebingen (Germany) with an unkown tool. The file format is line-based, i.e. all timepoints for all samples/trials are written in a single line. Each line is prefixed with an identifier (using a colon as the delimiter between identifier and data). Two lines have a special purpose. The first 'Sample Number' is a list of timepoint ids, similar to `range(ntimepoints)` for each sample/trial (all concatenated into one line. The second 'Time' contains the timing information for each timepoint (relative to stimulus onset), again for all trials concatenated into a single line. All other lines contain various information (channels) recorded during the experiment. The meaning of some channels is unknown. Known ones are: M*: MEG channels EEG*: EEG channels ADC*: Analog to digital converter output Dataset properties are available from various class attributes. The `data` member provides all data from all channels (except for 'Sample Number' and 'Time') in a NumPy array (nsamples x nchannels x ntimepoints). The reader supports uncompressed as well as gzipped input files (or other file-like objects). """ def __init__(self, source): """Reader MEG data from texfiles or file-like objects. Parameters ---------- source : str or file-like Strings are assumed to be filenames (with `.gz` suffix compressed), while all other object types are treated as file-like objects. """ self.ntimepoints = None self.timepoints = None self.nsamples = None self.channelids = [] self.data = [] self.samplingrate = None # open textfiles if isinstance(source, str): if source.endswith('.gz'): externals.exists('gzip', raise_=True) import gzip source = gzip.open(source, 'r') if sys.version >= '3': # module still can not open text files # in py3: Issue #13989 and #10791 source = source.read().decode('ascii').splitlines() else: source = open(source, 'r') # read file for line in source: # split ID colon = line.find(':') # ignore lines without id if colon == -1: continue id = line[:colon] data = line[colon+1:].strip() if id == 'Sample Number': timepoints = np.fromstring(data, dtype=int, sep='\t') # one more as it starts with zero self.ntimepoints = int(timepoints.max()) + 1 self.nsamples = int(len(timepoints) / self.ntimepoints) elif id == 'Time': self.timepoints = np.fromstring(data, dtype=float, count=self.ntimepoints, sep='\t') self.samplingrate = self.ntimepoints \ / (self.timepoints[-1] - self.timepoints[0]) else: # load data self.data.append( np.fromstring(data, dtype=float, sep='\t').reshape( self.nsamples, self.ntimepoints)) # store id self.channelids.append(id) # reshape data from (channels x samples x timepoints) to # (samples x chanels x timepoints) self.data = np.swapaxes(np.array(self.data), 0, 1) def __str__(self): """Give a short summary. """ return '' \ % (self.nsamples, self.ntimepoints, len(self.channelids)) pymvpa2-2.6.4/mvpa2/misc/neighborhood.py000066400000000000000000000707241323370031300201270ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Neighborhood objects """ import numpy as np from numpy import array import sys import itertools from mvpa2.base import warning from mvpa2.base.types import is_sequence_type from mvpa2.base.dochelpers import borrowkwargs, borrowdoc, _repr_attrs, _repr from mvpa2.clfs.distance import cartesian_distance from mvpa2.misc.support import idhash as idhash_ if __debug__: from mvpa2.base import debug class IdentityNeighborhood(object): """Trivial neighborhood. Use this if you want neighbors(i) == [i] """ def __init__(self): """Initialize the neighborhood""" pass def __repr__(self): return self.__class__.__name__ def train(self, dataset): pass def __call__(self, coordinate): """Return coordinate in a list Parameters ---------- coordinate : sequence type of length 3 with integers Returns ------- [tuple(coordinate)] """ # type checking coordinate = np.asanyarray(coordinate) return [tuple(coordinate)] class Sphere(object): """N-Dimensional hypersphere. Use this if you want to obtain all the neighbors within a given radius from a point in a space with arbitrary number of dimensions assuming that the space is discrete. No validation of producing coordinates within any extent is done. Examples -------- Create a Sphere of diameter 1 and obtain all coordinates within range for the coordinate (1,1,1). >>> s = Sphere(1) >>> s((2, 1)) [(1, 1), (2, 0), (2, 1), (2, 2), (3, 1)] >>> s((1, )) [(0,), (1,), (2,)] If elements in discrete space have different sizes across dimensions, it might be preferable to specify element_sizes parameter. >>> s = Sphere(2, element_sizes=(1.5, 2.5)) >>> s((2, 1)) [(1, 1), (2, 1), (3, 1)] >>> s = Sphere(1, element_sizes=(1.5, 0.4)) >>> s((2, 1)) [(2, -1), (2, 0), (2, 1), (2, 2), (2, 3)] """ def __init__(self, radius, element_sizes=None, distance_func=None): """ Initialize the Sphere Parameters ---------- radius : float Radius of the 'sphere'. If no `element_sizes` provided -- radius would be effectively in number of voxels (if operating on MRI data). element_sizes : None or iterable of floats Sizes of elements in each dimension. If None, it is equivalent to 1s in all dimensions. distance_func : None or lambda Distance function to use (choose one from `mvpa2.clfs.distance`). If None, cartesian_distance to be used. """ self._radius = radius # TODO: make ability to lookup in a dataset self._element_sizes = element_sizes if distance_func is None: distance_func = cartesian_distance self._distance_func = distance_func self._increments = None """Stored template of increments""" self._increments_ndim = None """Dimensionality of increments""" def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ['radius=%r' % (self._radius,)] + prefixes if self._element_sizes: prefixes_.append('element_sizes=%r' % (self._element_sizes,)) if self._distance_func != cartesian_distance: prefixes_.append('distance_func=%r' % self._distance_func) return "%s(%s)" % (self.__class__.__name__, ', '.join(prefixes_)) # Properties to assure R/O behavior for now @property def radius(self): return self._radius @property def element_sizes(self): return self._element_sizes @property def distance_func(self): return self._distance_func def _get_increments(self, ndim): """Creates a list of increments for a given dimensionality """ # Set element_sizes element_sizes = self._element_sizes if element_sizes is None: element_sizes = np.ones(ndim) else: if (ndim != len(element_sizes)): raise ValueError, \ "Dimensionality mismatch: element_sizes %s provided " \ "to constructor had %i dimensions, whenever queried " \ "coordinate had %i" \ % (element_sizes, len(element_sizes), ndim) center = np.zeros(ndim) element_sizes = np.asanyarray(element_sizes) # What range for each dimension erange = np.ceil(self._radius / element_sizes).astype(int) tentative_increments = np.array(list(np.ndindex(tuple(erange*2 + 1)))) \ - erange # Filter out the ones beyond the "sphere" return array([x for x in tentative_increments if self._distance_func(x * element_sizes, center) <= self._radius]) def train(self, dataset): # XXX YOH: yeap -- BUT if you care about my note above on extracting # somehow sizes -- some dataset.a might come handy may be? # so actual template get constructed in train and _create_template # could go away and just be returned in some R/O property #self.dataset = dataset # TODO: extract element_sizes pass # XXX YOH: should it have this at all? may be sphere should just generate the # "neighborhood template" -- all those offsets where to jump to get # tentative neighbor... Otherwise there are double checks... some here # some in the query engine... also imho Sphere should not even care about any extent def __call__(self, coordinate): """Get all coordinates within diameter Parameters ---------- coordinate : sequence type of length 3 with integers Returns ------- list of tuples of size 3 """ # type checking coordinate = np.asanyarray(coordinate) # XXX This might go into _train ... scalar = coordinate.ndim == 0 if scalar: # we are dealing with scalars -- lets add a dimension # artificially coordinate = coordinate[None] # XXX This might go into _train ... ndim = len(coordinate) if self._increments is None or self._increments_ndim != ndim: if __debug__: debug('NBH', "Recomputing neighborhood increments for %dD Sphere" % ndim) self._increments = self._get_increments(ndim) self._increments_ndim = ndim if __debug__: if coordinate.dtype.char not in np.typecodes['AllInteger']: raise ValueError("Sphere must be called on a sequence of " "integers of length %i, you gave %s " % (ndim, coordinate)) #if dataset is None: # raise ValueError("Sphere object has not been trained yet, use " # "train(dataset) first. ") if len(self._increments): # function call coord_array = (coordinate + self._increments) else: # if no increments -- no neighbors -- empty list return [] # XXX may be optionally provide extent checking? ## # now filter out illegal coordinates if they really are outside the ## # bounds ## if (coordinate - self.radius < 0).any() \ ## or (coordinate + self.radius >= self.extent).any(): ## coord_array = array([c for c in coord_array \ ## if (c >= 0).all() ## and (c < self.extent).all()]) ## coord_array = coord_array.transpose() if scalar: # Take just 0th dimension since 1st was artificially introduced coord_array = coord_array[:, 0] return coord_array.tolist() else: # Note: converting first full array to list and then # "tuppling" it seems to be faster than tuppling each # sub-array return [tuple(x) for x in coord_array.tolist()] class HollowSphere(Sphere): """N-Dimensional hypersphere with a hollow internal sphere See parent class `Sphere` for more information. Examples -------- Create a Sphere of diameter 1 and obtain all coordinates within range for the coordinate (1,1,1). >>> s = HollowSphere(1, 0) >>> s((2, 1)) [(1, 1), (2, 0), (2, 2), (3, 1)] >>> s((1, )) [(0,), (2,)] """ def __init__(self, radius, inner_radius, include_center=False, **kwargs): """ Initialize the Sphere Parameters ---------- radius : float Radius of the 'sphere'. If no `element_sizes` provided -- radius would be effectively in number of voxels (if operating on MRI data). inner_radius : float Inner radius of the 'sphere', describing where hollow part starts. It is inclusive, so `inner_radius` of 0, would already remove the center element. include_center : bool Flag indicating whether to include the center element. Center element is added as first feature. (Default: False) **kwargs See `Sphere` for additional keyword arguments """ if inner_radius > radius: raise ValueError, "inner_radius (got %g) should be smaller " \ "than the radius (got %g)" % (inner_radius, radius) Sphere.__init__(self, radius, **kwargs) self._inner_radius = inner_radius self.include_center = include_center def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(HollowSphere, self).__repr__( ['inner_radius=%r' % (self._inner_radius,)] + _repr_attrs(self, ['include_center'], default=False)) # Properties to assure R/O behavior for now @property def inner_radius(self): return self._inner_radius def _get_increments(self, ndim): """Creates a list of increments for a given dimensionality RF: lame yoh just cut-pasted and tuned up because everything depends on ndim... """ # Set element_sizes element_sizes = self._element_sizes if element_sizes is None: element_sizes = np.ones(ndim) else: if (ndim != len(element_sizes)): raise ValueError, \ "Dimensionality mismatch: element_sizes %s provided " \ "to constructor had %i dimensions, whenever queried " \ "coordinate had %i" \ % (element_sizes, len(element_sizes), ndim) center = np.zeros(ndim) element_sizes = np.asanyarray(element_sizes) # What range for each dimension erange = np.ceil(self._radius / element_sizes).astype(int) tentative_increments = np.array(list(np.ndindex(tuple(erange*2 + 1)))) \ - erange # Filter out the ones beyond the "sphere" res = array([x for x in tentative_increments if self._inner_radius < self._distance_func(x * element_sizes, center) <= self._radius]) if not len(res): warning("%s defines no neighbors" % self) return np.vstack([np.zeros(ndim,dtype='int'),res]) if self.include_center else res class QueryEngineInterface(object): """Very basic class for `QueryEngine`\s defining the interface It should not be used directly, but is used to check either we are working with QueryEngine instances """ def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return _repr(self, *prefixes) def train(self, dataset): raise NotImplementedError def query_byid(self, fid): """Return feature ids of neighbors for a given feature id """ raise NotImplementedError def query(self, **kwargs): """Return feature ids of neighbors given a specific query """ raise NotImplementedError # # aliases # def __call__(self, **kwargs): return self.query(**kwargs) def __getitem__(self, fid): return self.query_byid(fid) class QueryEngine(QueryEngineInterface): """Basic class defining interface for querying neighborhood in a dataset Derived classes provide specific implementations possibly with trade-offs between generality and performance. TODO: extend """ def __init__(self, **kwargs): """ Parameters ---------- **kwargs a dictionary of query objects. Something like dict(voxel_indices=Sphere(3)) """ super(QueryEngine, self).__init__() self._queryobjs = kwargs self._queryattrs = {} self._ids = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(QueryEngine, self).__repr__( prefixes=prefixes + ['%s=%r' % v for v in self._queryobjs.iteritems()]) def __len__(self): return len(self._ids) if self._ids is not None else 0 @property def ids(self): return self._ids def train(self, dataset): # reset first self._queryattrs.clear() # store all relevant attributes for space in self._queryobjs: self._queryattrs[space] = dataset.fa[space].value # execute subclass training self._train(dataset) # by default all QueryEngines should with all features of the dataset # Situation might be different in case of e.g. Surface-based # searchlights. self._ids = range(dataset.nfeatures) def query_byid(self, fid): """Return feature ids of neighbors for a given feature id """ queryattrs = self._queryattrs kwargs = dict([(space, queryattrs[space][fid]) for space in queryattrs]) return self.query(**kwargs) class IndexQueryEngine(QueryEngine): """Provides efficient query engine for discrete spaces. Uses dictionary lookups for elements indices and presence in general. Each space obtains a lookup dictionary which performs translation from given index/coordinate into the index within an index table (with a dimension per each space to search within). TODO: - extend documentation - repr """ def __init__(self, sorted=True, **kwargs): """ Parameters ---------- sorted : bool Results of query get sorted """ QueryEngine.__init__(self, **kwargs) self._spaceorder = None """Order of the spaces""" self._lookups = {} """Dictionary of lookup dictionaries per each space""" self._sliceall = {} """Precrafted indexes to cover ':' situation within ix_""" self._searcharray = None """Actual searcharray""" self.sorted = sorted """Either to sort the query results""" def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(IndexQueryEngine, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['sorted'], default=True)) def _train(self, dataset): # local binding qattrs = self._queryattrs # in addition to the base class functionality we need to store the # order of the query-spaces self._spaceorder = qattrs.keys() # type check and determine mask dimensions dims = [] # dimensionality of each space lookups = self._lookups = {} sliceall = self._sliceall = {} selector = [] for space in self._spaceorder: # local binding for the attribute qattr = qattrs[space] # If it is >1D ndarray we need to transform to list of tuples, # since ndarray is not hashable # XXX would probably work for ANY discrete attribute if not qattr.dtype.char in np.typecodes['AllInteger']: pass #raise ValueError("IndexQueryEngine can only operate on " # "feature attributes with integer indices " # "(got: %s)." % str(qattr.dtype)) if isinstance(qattr, np.ndarray) and len(qattr.shape) > 1: qattr = [tuple(x) for x in qattr] # determine the dimensions of this space # and charge the nonzero selector uqattr = list(set(qattr)) dim = len(uqattr) dims.append(dim) # Lookup table for elements known to corresponding indices # in searcharray lookups[space] = lookup = \ dict([(u, i) for i, u in enumerate(uqattr)]) # Precraft "slicing" for all elements for dummy numpy way # to select things ;) sliceall[space] = np.arange(dim) # And fill out selector using current values from qattr selector.append([lookup[x] for x in qattr]) # now check whether we have sufficient information to put each feature # id into one unique search array element dims = np.array(dims) # we can deal with less features (e.g. masked dataset, but not more) # XXX (yoh): seems to be too weak of a check... pretty much you are trying # to check either 2 features do not collide in the target # "mask", right? if np.prod(dims) < dataset.nfeatures: raise ValueError("IndexQueryEngine has insufficient information " "about the dataset spaces. It is required to " "specify an ROI generator for each feature space " "in the dataset (got: %s, #describable: %i, " "#actual features: %i)." % (str(self._spaceorder), np.prod(dims), dataset.nfeatures)) # now we can create the search array self._searcharray = np.zeros(dims, dtype='int') # and fill it with feature ids, but start from ONE to be different from # the zeros self._searcharray[tuple(selector)] = np.arange(1, dataset.nfeatures + 1) # Lets do additional check -- now we should have same # of # non-zero elements as features if len(self._searcharray.nonzero()[0]) != dataset.nfeatures: # TODO: Figure out how is the bad cow? sad there is no non-unique # function in numpy raise ValueError("Multiple features carry the same set of " "attributes %s. %s engine cannot handle such " "cases -- use another appropriate query engine" % (self._spaceorder, self)) def query(self, **kwargs): # construct the search array slicer # need to obey axis order slicer = [] for space in self._spaceorder: lookup = self._lookups[space] # only generate ROI, if we have a generator # otherwise consider all of the unspecified space if space in kwargs: space_args = kwargs.pop(space) # so we could check later on # if no ROI generator is available, take provided indexes # without any additional neighbors etc if self._queryobjs[space] is None: roi = np.atleast_1d(space_args) else: roi = self._queryobjs[space](space_args) # lookup and filter the results roi_ind = [lookup[i] for i in roi if (i in lookup)] # if no candidate is left, the whole thing does not match # regardless of the other spaces if not len(roi_ind): return [] slicer.append(roi_ind) else: # Provide ":" if no specialization was provided slicer.append(self._sliceall[space]) # check if query had only legal spaces specified if len(kwargs): raise ValueError, "Do not know how to treat space(s) %s given " \ "in parameters of the query" % (kwargs.keys()) # only ids are of interest -> flatten # and we need to back-transfer them into dataset ids by subtracting 1 res = self._searcharray[np.ix_(*slicer)].flatten() - 1 res = res[res>=0] # return only the known ones if self.sorted: return sorted(res) else: return res class CachedQueryEngine(QueryEngineInterface): """Provides caching facility for query engines. Notes ----- This QueryEngine simply remembers the results of the previous queries. Not much checking is done on either datasets it gets in :meth:`train` is the same as the on in previous sweep of queries, i.e. either none of the relevant for underlying QueryEngine feature attributes was modified. So, CAUTION should be paid to avoid calling the same instance of `CachedQueryEngine` on different datasets (which might have different masking etc) . :func:`query_byid` should be working reliably and without surprises. :func:`query` relies on hashid of the queries, so there might be a collision! Thus consider it EXPERIMENTAL for now. """ def __init__(self, queryengine): """ Parameters ---------- queryengine : QueryEngine Results of which engine to cache """ super(CachedQueryEngine, self).__init__() self._queryengine = queryengine self._trained_ds_fa_hash = None """Will give information about either dataset's FA were changed """ self._lookup_ids = None self._lookup = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(CachedQueryEngine, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['queryengine'])) def train(self, dataset): """'Train' `CachedQueryEngine`. Raises ------ ValueError If `dataset`'s .fa were changed -- it would raise an exception telling to `untrain` explicitly, since the idea is to reuse CachedQueryEngine with the same engine and same dataset (up to variation of .sa, such as labels permutation) """ ds_fa_hash = idhash_(dataset.fa) + ':%d' % dataset.fa._uniform_length if self._trained_ds_fa_hash is None: # First time is called self._trained_ds_fa_hash = ds_fa_hash self._queryengine.train(dataset) # train the queryengine self._lookup_ids = [None] * dataset.nfeatures # lookup for query_byid self._lookup = {} # generic lookup self.ids = self.queryengine.ids # used in GNBSearchlight?? elif self._trained_ds_fa_hash != ds_fa_hash: raise ValueError, \ "Feature attributes of %s (idhash=%r) were changed from " \ "what this %s was trained on (idhash=%r). Untrain it " \ "explicitly if you like to reuse it on some other data." \ % (dataset, ds_fa_hash, self, self._trained_ds_fa_hash) else: pass def untrain(self): """Forgetting that CachedQueryEngine was already trained """ self._trained_ds_fa_hash = None @borrowdoc(QueryEngineInterface) def query_byid(self, fid): v = self._lookup_ids[fid] if v is None: self._lookup_ids[fid] = v = self._queryengine.query_byid(fid) return v @borrowdoc(QueryEngineInterface) def query(self, **kwargs): def to_hashable(x): """Convert x to something which dict wouldn't mind""" try: # silly attempt d = {x: None} return x except TypeError: pass if isinstance(x, dict): # keys are already hashable # and sort for deterministic order return tuple((k, to_hashable(v)) for (k, v) in sorted(x.iteritems())) elif is_sequence_type(x): return tuple(i for i in x) elif np.isscalar(x): return x return x # and then wait for the report for it to be added # idhash_ is somewhat inappropriate since also relies on id # (which we should allow to differ) but ATM failing to hash # ndarrays etc # k = idhash_(kwargs.items()) # So let's use verbose version of the beastie (could have been # also as simple as __repr__ but afraid that order could be # changing etc). This simple function should be sufficient # for our typical use, otherwise we might like to use hashing # facilities provided by joblib but for paranoid we would # still need to store actual values to resolve collisions # which would boil down to the same scenario k = to_hashable(kwargs) v = self._lookup.get(k, None) if v is None: self._lookup[k] = v = self._queryengine.query(**kwargs) return v queryengine = property(fget=lambda self: self._queryengine) def scatter_neighborhoods(neighbor_gen, coords, deterministic=False): """Scatter neighborhoods over a coordinate list. Neighborhood seeds (or centers) are placed on coordinates drawn from a provided list so that no seed is part of any other neighborhood. Depending on the actual shape and size of the neighborhoods, their elements can be overlapping, only the seeds (or centers) are guaranteed to be non-overlapping with any other neighborhood. This can be used to perform sparse sampling of a given space. Parameters ========== neighbor_gen : neighborhood generator Callable that return a list of neighborhood element coordinates, when called with a seed coordinate (cf. Sphere) coords : list List of candidate coordinates that can serve as neighborhood seeds or elements. deterministic : bool If true, performs seed placement using an OrderedDict (available in Python 2.7 or later) to guarantee deterministic placement of neighborhood seeds in consecutive runs with identical input arguments. Returns ======= coordinates, indices Two lists are returned. The first list contains the choosen seed coordinates (a subset of the input coordinates), the second list contains the indices of the respective seeds coordinates in the input coordinate list. If particular coordinates are present multiple times the index list will contain all indices corresponding to these coordinates. """ hasher = dict if deterministic: from collections import OrderedDict hasher = OrderedDict # put coordinates into a dict for fast lookup try: # quick test to check whether the given coords are hashable. If not, # this test avoids a potentially long list zipping _ = {coords[0]: None} lookup = hasher() _ = [lookup.setdefault(c, list()).append(i) for i, c in enumerate(coords)] except TypeError: # maybe coords not hashable? lookup = hasher() _ = [lookup.setdefault(tuple(c), list()).append(i) for i, c in enumerate(coords)] seeds = [] while len(lookup): # get any remaining coordinate # with OrderedDict popitem will return the last inserted item by default seed, idx = lookup.popitem() # remove all coordinates in the neighborhood _ = [lookup.pop(c, None) for c in neighbor_gen(seed)] # store seed seeds.append((seed, idx)) # unzip coords and idx again coords, idx = zip(*seeds) # we need a flat idx list # yoh: sum trick replaced list(itertools.chain.from_iterable(idx)) # which is not python2.5-compatible idx = sum(idx, []) return coords, idx pymvpa2-2.6.4/mvpa2/misc/plot/000077500000000000000000000000001323370031300160525ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/misc/plot/__init__.py000066400000000000000000000013621323370031300201650ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for miscellaneous PyMVPA plotting functions (mvpa2.misc.plot)""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.misc.plot start') from mvpa2.base import externals if externals.exists('matplotlib'): from mvpa2.misc.plot.base import * if __debug__: debug('INIT', 'mvpa2.misc.plot end') pymvpa2-2.6.4/mvpa2/misc/plot/base.py000066400000000000000000000637011323370031300173450ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Misc. plotting helpers.""" __docformat__ = 'restructuredtext' from mvpa2.base import externals externals._set_matplotlib_backend() import numpy as np from mvpa2.base.node import ChainNode if externals.exists('pylab', raise_=True): import pylab as pl from mvpa2.misc.plot.tools import Pion, Pioff from mvpa2.misc.attrmap import AttributeMap from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import NFoldPartitioner from mvpa2.clfs.distance import squared_euclidean_distance from mvpa2.datasets.miscfx import get_samples_by_attr ##REF: Name was automagically refactored def plot_err_line(data, x=None, errtype='ste', curves=None, linestyle='--', fmt='o', perc_sigchg=False, baseline=None, **kwargs): """Make a line plot with errorbars on the data points. Parameters ---------- data : sequence of sequences First axis separates samples and second axis will appear as x-axis in the plot. x : sequence Value to be used as 'x-values' corresponding to the elements of the 2nd axis id `data`. If `None`, a sequence of ascending integers will be generated. errtype : 'ste' or 'std' Type of error value to be computed per datapoint: 'ste' -- standard error of the mean, 'std' -- standard deviation. curves : None or list of tuple(x, y) Each tuple represents an additional curve, with x and y coordinates of each point on the curve. linestyle : str or None matplotlib linestyle argument. Applied to either the additional curve or a the line connecting the datapoints. Set to 'None' to disable the line completely. fmt : str matplotlib plot style argument to be applied to the data points and errorbars. perc_sigchg : bool If `True` the plot will show percent signal changes relative to a baseline. baseline : float or None Baseline used for converting values into percent signal changes. If `None` and `perc_sigchg` is `True`, the absolute of the mean of the first feature (i.e. [:,0]) will be used as a baseline. **kwargs Additional arguments are passed on to errorbar(). Examples -------- Make a dataset with 20 samples from a full sinus wave period, computed 100 times with individual noise pattern. >>> x = np.linspace(0, np.pi * 2, 20) >>> data = np.vstack([np.sin(x)] * 30) >>> data += np.random.normal(size=data.shape) Now, plot mean data points with error bars, plus a high-res version of the original sinus wave. >>> x_hd = np.linspace(0, np.pi * 2, 200) >>> elines = plot_err_line(data, x, curves=[(x_hd, np.sin(x_hd))]) >>> # pl.show() Returns ------- list Of lines which were plotted. """ data = np.asanyarray(data) if len(data.shape) < 2: data = np.atleast_2d(data) return plot_err_line_missing(data.T, x=x, errtype=errtype, curves=curves, linestyle=linestyle, fmt=fmt, perc_sigchg=perc_sigchg, baseline=baseline, **kwargs) def plot_err_line_missing(data, x=None, errtype='ste', curves=None, linestyle='--', fmt='o', perc_sigchg=False, baseline=None, **kwargs): """Make a line plot with errorbars on the data points. This is essentially the same function as plot_err_line(), but it expects the data transposed and tolerates an unequal number of samples, per data point. Parameters ---------- data : sequence of sequences First axis will appear as x-axis in the plot. Along the second axis are the sample. Each data point may have a different number of samples. x : sequence Value to be used as 'x-values' corresponding to the elements of the 2nd axis id `data`. If `None`, a sequence of ascending integers will be generated. errtype : 'ste' or 'std' Type of error value to be computed per datapoint: 'ste' -- standard error of the mean, 'std' -- standard deviation. curves : None or list of tuple(x, y) Each tuple represents an additional curve, with x and y coordinates of each point on the curve. linestyle : str or None matplotlib linestyle argument. Applied to either the additional curve or a the line connecting the datapoints. Set to 'None' to disable the line completely. fmt : str matplotlib plot style argument to be applied to the data points and errorbars. perc_sigchg : bool If `True` the plot will show percent signal changes relative to a baseline. baseline : float or None Baseline used for converting values into percent signal changes. If `None` and `perc_sigchg` is `True`, the absolute of the mean of the first feature (i.e. [:,0]) will be used as a baseline. **kwargs Additional arguments are passed on to errorbar(). Examples -------- Make a dataset with 20 samples from a full sinus wave period, computed 100 times with individual noise pattern. >>> x = np.linspace(0, np.pi * 2, 20) >>> data = np.vstack([np.sin(x)] * 30) >>> data += np.random.normal(size=data.shape) Now, plot mean data points with error bars, plus a high-res version of the original sinus wave. >>> x_hd = np.linspace(0, np.pi * 2, 200) >>> elines = plot_err_line(data, x, curves=[(x_hd, np.sin(x_hd))]) >>> # pl.show() Returns ------- list Of lines which were plotted. """ # compute mean signal course md = np.array([np.mean(i) for i in data]) if baseline is None: baseline = np.abs(md[0]) if perc_sigchg: md /= baseline md -= 1.0 md *= 100.0 data = [np.array(i) / baseline * 100 for i in data] # compute matching datapoint locations on x-axis if x is None: x = np.arange(len(md)) else: if not len(md) == len(x): raise ValueError, "The length of `x` (%i) has to match the 2nd " \ "axis of the data array (%i)" % (len(x), len(md)) # collect pylab things that are plotted for later modification lines = [] # plot highres line if present if curves is not None: for c in curves: xc, yc = c # scales line array to same range as datapoints if linestyle is not None: lines.append(pl.plot(xc, yc, linestyle)) else: lines.append(pl.plot(xc, yc)) # no line between data points linestyle = 'None' # compute error per datapoint if errtype == 'ste': err = [np.std(i) / np.sqrt(len(i)) for i in data] elif errtype == 'std': err = [np.std(i) for i in data] else: raise ValueError, "Unknown error type '%s'" % errtype # plot datapoints with error bars lines.append(pl.errorbar(x, md, err, fmt=fmt, linestyle=linestyle, **kwargs)) return lines ##REF: Name was automagically refactored def plot_feature_hist(dataset, xlim=None, noticks=True, targets_attr='targets', chunks_attr=None, **kwargs): """This function is deprecated and will be removed. Replacement mvpa2.viz.hist() """ import warnings warnings.warn("plot_feature_hist() is deprecated and will be removed", DeprecationWarning) from mvpa2.viz import hist return hist(dataset, xlim=xlim, noticks=noticks, ygroup_attr=targets_attr, xgroup_attr=chunks_attr, **kwargs) ##REF: Name was automagically refactored def plot_samples_distance(dataset, sortbyattr=None): """Plot the euclidean distances between all samples of a dataset. Parameters ---------- dataset : Dataset Providing the samples. sortbyattr : None or str If None, the samples distances will be in the same order as their appearance in the dataset. Alternatively, the name of a samples attribute can be given, which wil then be used to sort/group the samples, e.g. to investigate the similarity samples by label or by chunks. """ if sortbyattr is not None: slicer = [] for attr in dataset.sa[sortbyattr].unique: slicer += \ get_samples_by_attr(dataset, sortbyattr, attr).tolist() samples = dataset.samples[slicer] else: samples = dataset.samples ed = np.sqrt(squared_euclidean_distance(samples)) pl.imshow(ed, interpolation='nearest') pl.colorbar() def plot_decision_boundary_2d(dataset, clf=None, targets=None, regions=None, maps=None, maps_res=50, vals=None, data_callback=None): """Plot a scatter of a classifier's decision boundary and data points Assumes data is 2d (no way to visualize otherwise!!) Parameters ---------- dataset : `Dataset` Data points to visualize (might be the data `clf` was train on, or any novel data). clf : `Classifier`, optional Trained classifier targets : string, optional What samples attributes to use for targets. If None and clf is provided, then `clf.params.targets_attr` is used. regions : string, optional Plot regions (polygons) around groups of samples with the same attribute (and target attribute) values. E.g. chunks. maps : string in {'targets', 'estimates'}, optional Either plot underlying colored maps, such as clf predictions within the spanned regions, or estimates from the classifier (might not work for some). maps_res : int, optional Number of points in each direction to evaluate. Points are between axis limits, which are set automatically by matplotlib. Higher number will yield smoother decision lines but come at the cost of O^2 classifying time/memory. vals : array of floats, optional Where to draw the contour lines if maps='estimates' data_callback : callable, optional Callable object to preprocess the new data points. Classified points of the form samples = data_callback(xysamples). I.e. this can be a function to normalize them, or cache them before they are classified. """ if vals is None: vals = [-1, 0, 1] if False: ## from mvpa2.misc.data_generators import * ## from mvpa2.clfs.svm import * ## from mvpa2.clfs.knn import * ## ds = dumb_feature_binary_dataset() dataset = normal_feature_dataset(nfeatures=2, nchunks=5, snr=10, nlabels=4, means=[ [0,1], [1,0], [1,1], [0,0] ]) dataset.samples += dataset.sa.chunks[:, None]*0.1 # slight shifts for chunks ;) #dataset = normal_feature_dataset(nfeatures=2, nlabels=3, means=[ [0,1], [1,0], [1,1] ]) #dataset = normal_feature_dataset(nfeatures=2, nlabels=2, means=[ [0,1], [1,0] ]) #clf = LinearCSVMC(C=-1) clf = kNN(4)#LinearCSVMC(C=-1) clf.train(dataset) #clf = None #plot_decision_boundary_2d(ds, clf) targets = 'targets' regions = 'chunks' #maps = 'estimates' maps = 'targets' #maps = None #'targets' res = 50 vals = [-1, 0, 1] data_callback=None pl.clf() if dataset.nfeatures != 2: raise ValueError('Can only plot a decision boundary in 2D') Pioff() a = pl.gca() # f.add_subplot(1,1,1) attrmap = None if clf: estimates_were_enabled = clf.ca.is_enabled('estimates') clf.ca.enable('estimates') if targets is None: targets = clf.get_space() # Lets reuse classifiers attrmap if it is good enough attrmap = clf._attrmap predictions = clf.predict(dataset) targets_sa_name = targets # bad Yarik -- will rebind targets to actual values targets_lit = dataset.sa[targets_sa_name].value utargets_lit = dataset.sa[targets_sa_name].unique if not (attrmap is not None and len(attrmap) and set(clf._attrmap.keys()).issuperset(utargets_lit)): # create our own attrmap = AttributeMap(mapnumeric=True) targets = attrmap.to_numeric(targets_lit) utargets = attrmap.to_numeric(utargets_lit) vmin = min(utargets) vmax = max(utargets) cmap = pl.cm.RdYlGn # argument # Scatter points if clf: all_hits = predictions == targets_lit else: all_hits = np.ones((len(targets),), dtype=bool) targets_colors = {} for l in utargets: targets_mask = targets==l s = dataset[targets_mask] targets_colors[l] = c \ = cmap((l-vmin)/float(vmax-vmin)) # We want to plot hits and misses with different symbols hits = all_hits[targets_mask] misses = np.logical_not(hits) scatter_kwargs = dict( c=[c], zorder=10+(l-vmin)) if sum(hits): a.scatter(s.samples[hits, 0], s.samples[hits, 1], marker='o', label='%s [%d]' % (attrmap.to_literal(l), sum(hits)), **scatter_kwargs) if sum(misses): a.scatter(s.samples[misses, 0], s.samples[misses, 1], marker='x', label='%s [%d] (miss)' % (attrmap.to_literal(l), sum(misses)), edgecolor=[c], **scatter_kwargs) (xmin, xmax) = a.get_xlim() (ymin, ymax) = a.get_ylim() extent = (xmin, xmax, ymin, ymax) # Create grid to evaluate, predict it (x,y) = np.mgrid[xmin:xmax:np.complex(0, maps_res), ymin:ymax:np.complex(0, maps_res)] news = np.vstack((x.ravel(), y.ravel())).T try: news = data_callback(news) except TypeError: # Not a callable object pass imshow_kwargs = dict(origin='lower', zorder=1, aspect='auto', interpolation='bilinear', alpha=0.9, cmap=cmap, vmin=vmin, vmax=vmax, extent=extent) if maps is not None: if clf is None: raise ValueError, \ "Please provide classifier for plotting maps of %s" % maps predictions_new = clf.predict(news) if maps == 'estimates': # Contour and show predictions trained_targets = attrmap.to_numeric(clf.ca.trained_targets) if len(trained_targets)==2: linestyles = [] for v in vals: if v == 0: linestyles.append('solid') else: linestyles.append('dashed') vmin, vmax = -3, 3 # Gives a nice tonal range ;) map_ = 'estimates' # should actually depend on estimates else: vals = (trained_targets[:-1] + trained_targets[1:])/2. linestyles = ['solid'] * len(vals) map_ = 'targets' try: clf.ca.estimates.reshape(x.shape) a.imshow(map_values.T, **imshow_kwargs) CS = a.contour(x, y, map_values, vals, zorder=6, linestyles=linestyles, extent=extent, colors='k') except ValueError, e: print "Sorry - plotting of estimates isn't full supported for %s. " \ "Got exception %s" % (clf, e) elif maps == 'targets': map_values = attrmap.to_numeric(predictions_new).reshape(x.shape) a.imshow(map_values.T, **imshow_kwargs) #CS = a.contour(x, y, map_values, vals, zorder=6, # linestyles=linestyles, extent=extent, colors='k') # Plot regions belonging to the same pair of attribute given # (e.g. chunks) and targets attribute if regions: chunks_sa = dataset.sa[regions] chunks_lit = chunks_sa.value uchunks_lit = chunks_sa.value chunks_attrmap = AttributeMap(mapnumeric=True) chunks = chunks_attrmap.to_numeric(chunks_lit) uchunks = chunks_attrmap.to_numeric(uchunks_lit) from matplotlib.delaunay.triangulate import Triangulation from matplotlib.patches import Polygon # Lets figure out convex halls for each chunk/label pair for target in utargets: t_mask = targets == target for chunk in uchunks: tc_mask = np.logical_and(t_mask, chunk == chunks) tc_samples = dataset.samples[tc_mask] tr = Triangulation(tc_samples[:, 0], tc_samples[:, 1]) poly = pl.fill(tc_samples[tr.hull, 0], tc_samples[tr.hull, 1], closed=True, facecolor=targets_colors[target], #fill=False, alpha=0.01, edgecolor='gray', linestyle='dotted', linewidth=0.5, ) pl.legend(scatterpoints=1) if clf and not estimates_were_enabled: clf.ca.disable('estimates') Pion() pl.axis('tight') #pl.show() ##REF: Name was automagically refactored def plot_bars(data, labels=None, title=None, ylim=None, ylabel=None, width=0.2, offset=0.2, color='0.6', distance=1.0, yerr='ste', xloc=None, **kwargs): """Make bar plots with automatically computed error bars. Candlestick plot (multiple interleaved barplots) can be done, by calling this function multiple time with appropriatly modified `offset` argument. Parameters ---------- data : array (nbars x nobservations) or other sequence type Source data for the barplot. Error measure is computed along the second axis. labels : list or None If not None, a label from this list is placed on each bar. title : str An optional title of the barplot. ylim : 2-tuple Y-axis range. ylabel : str An optional label for the y-axis. width : float Width of a bar. The value should be in a reasonable relation to `distance`. offset : float Constant offset of all bar along the x-axis. Can be used to create candlestick plots. color : matplotlib color spec Color of the bars. distance : float Distance of two adjacent bars. yerr : {'ste', 'std', None} Type of error for the errorbars. If `None` no errorbars are plotted. xloc : sequence Locations of the bars on the x axis. **kwargs Any additional arguments are passed to matplotlib's `bar()` function. """ # determine location of bars if xloc is None: xloc = (np.arange(len(data)) * distance) + offset if yerr == 'ste': yerr = [np.std(d) / np.sqrt(len(d)) for d in data] elif yerr == 'std': yerr = [np.std(d) for d in data] else: # if something that we do not know just pass on pass # plot bars plot = pl.bar(xloc, [np.mean(d) for d in data], yerr=yerr, width=width, color=color, ecolor='black', **kwargs) if ylim: pl.ylim(*(ylim)) if title: pl.title(title) if labels: pl.xticks(xloc + width / 2, labels) if ylabel: pl.ylabel(ylabel) # leave some space after last bar pl.xlim(0, xloc[-1] + width + offset) return plot ##REF: Name was automagically refactored def inverse_cmap(cmap_name): """Create a new colormap from the named colormap, where it got reversed """ import matplotlib._cm as _cm import matplotlib as mpl try: cmap_data = eval('_cm._%s_data' % cmap_name) except: raise ValueError, "Cannot obtain data for the colormap %s" % cmap_name new_data = dict( [(k, [(vi[0], v[-(i+1)][1], v[-(i+1)][2]) for i, vi in enumerate(v)]) for k,v in cmap_data.iteritems()] ) return mpl.colors.LinearSegmentedColormap('%s_rev' % cmap_name, new_data, _cm.LUTSIZE) def plot_dataset_chunks(ds, clf_labels=None): """Quick plot to see chunk structure in dataset with 2 features if clf_labels is provided for the predicted labels, then incorrectly labeled samples will have 'x' in them """ if ds.nfeatures != 2: raise ValueError("Can plot only in 2D, ie for datasets with 2 features") if pl.matplotlib.get_backend() == 'TkAgg': pl.ioff() if clf_labels is not None and len(clf_labels) != ds.nsamples: clf_labels = None colors = ('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w') labels = ds.uniquetargets if labels.dtype.kind == 'f' and len(labels) > len(colors): raise NotImplementedError( "Cannot plot with labels being floats and more than 7 " "of the unique values") labels_map = dict(zip(labels, colors[:len(labels)])) for chunk in ds.UC: chunk_text = str(chunk) ids = ds.C == chunk ds_chunk = ds[ids] for i in xrange(ds_chunk.nsamples): s = ds_chunk.samples[i] l = ds_chunk.targets[i] format = '' if clf_labels is not None: if clf_labels[i] != ds_chunk.targets[i]: pl.plot([s[0]], [s[1]], 'x' + labels_map[l]) pl.text(s[0], s[1], chunk_text, color=labels_map[l], horizontalalignment='center', verticalalignment='center', ) dss = ds.samples pl.axis((1.1 * np.min(dss[:, 0]), 1.1 * np.max(dss[:, 1]), 1.1 * np.max(dss[:, 0]), 1.1 * np.min(dss[:, 1]))) pl.draw() if pl.matplotlib.get_backend() == 'TkAgg': pl.ion() def timeseries_boxplot(median, mean=None, std=None, n=None, min=None, max=None, p25=None, p75=None, outlierd=None, segment_sizes=None, **kwargs): """Produce a boxplot-like plot for time series data. Most statistics that are normally found in a boxplot are supported, but at the same time most of them are also optional. This function performs plotting only. Actual statistics need to be computed elsewhere (see ``compute_ts_boxplot_stats``). Parameters ---------- median : array Median time series. Plotted as a black line. mean : array or None Mean time series. If provided in combination with ``std`` and ``n`` a dark gray shaded area representing +-SEM will be plotted. std : array or None Standard deviation time series. If provided in combination with ``mean`` and ``n`` a dark gray shaded area representing +-SEM will be plotted. n : array or None Number of observations per time series sample. If provided in combination with ``mean`` and ``std`` a dark gray shaded area representing +-SEM will be plotted. min : array or None Minimum value time series. If provided in combination with ``max`` a light gray shaded area representing the range will be plotted. max : array or None Maximum value time series. If provided in combination with ``min`` a light gray shaded area representing the range will be plotted. p25 : array or None 25% percentile time series. If provided in combination with ``p75`` a medium gray shaded area representing the +-25% percentiles will be plotted. p75 : array or None 75% percentile time series. If provided in combination with ``p25`` a medium gray shaded area representing the +-25% percentiles will be plotted. outlierd : list(masked array) or None A list with items corresponding to each data segment. Each item is a masked array (observations x series) with all non-outlier values masked. Outliers are plotted in red color. segment_sizes : list or None If provided, each items indicates the size of one element in a consecutive series of data segment. A marker will be be drawn at the border between any two consecutive segments. **kwargs Additional keyword arguments that are uniformly passed on to any utilized plotting function. """ x = range(len(mean)) err = std / np.sqrt(n) for run, ol in enumerate(outlierd): if ol is None: continue pl.plot(range( sum([len(d) for d in outlierd[:run]]), sum([len(d) for d in outlierd[:run+1]])), ol, color='red', zorder=1, **kwargs) if not (min is None or max is None): pl.fill_between(x, max, min, color='0.8', alpha=.5, lw=0, zorder=2, **kwargs) if not (p25 is None or p75 is None): pl.fill_between(x, p75, p25, color='0.3', alpha=.5, lw=0, zorder=3, **kwargs) if not (std is None or n is None): pl.fill_between(x, mean-err, mean+err, color='0.1',alpha=.5, lw=0, zorder=4, **kwargs) pl.plot(x, median, color='0.0', zorder=5, **kwargs) if segment_sizes is not None: for i, run in enumerate(segment_sizes[:-1]): pl.axvline(np.sum(segment_sizes[:i+1]), color='0.2', linestyle='--', **kwargs) def concat_ts_boxplot_stats(run_stats): """Helper to concatenate boxplot stats from ``compute_ts_boxpot_stats`` Parameters ---------- run_stats : list Series of return values from ``compute_ts_boxpot_stats`` Returns ------- tuple First item is a dictionary with the concatenated stats time series. Second item is a list of masked arrays suitable for input to ``timeseries_boxplot`` as ``outlierd``. """ stats = {} for stat in ('mean', 'median', 'std', 'p25', 'p75', 'n', 'min', 'max'): stats[stat] = np.concatenate([r[0][stat] for r in run_stats]) outlierd = [r[1].T if r[1] is not None else None for r in run_stats] return stats, outlierd pymvpa2-2.6.4/mvpa2/misc/plot/erp.py000066400000000000000000000374511323370031300172240ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Basic ERP (here ERP = Event Related Plot ;-)) plotting Can be used for plotting not only ERP but any event-locked data """ import pylab as pl import numpy as np import matplotlib as mpl from mvpa2.base import warning from mvpa2.mappers.boxcar import BoxcarMapper # # Few helper functions # import matplotlib.transforms as mlt def _offset(ax, x, y): """Provide offset in pixels Parameters ---------- x : int Offset in pixels for x y : int Offset in pixels for y Idea borrowed from http://www.scipy.org/Cookbook/Matplotlib/Transformations but then heavily extended to be compatible with many reincarnations of matplotlib """ d = dir(mlt) if 'offset_copy' in d: # tested with python-matplotlib 0.98.3-5 # ??? if pukes, might need to replace 2nd parameter from # ax to ax.get_figure() return mlt.offset_copy(ax.transData, ax, x=x, y=y, units='dots') elif 'BlendedAffine2D' in d: # some newer versions of matplotlib return ax.transData + \ mlt.Affine2D().translate(x, y) elif 'blend_xy_sep_transform' in d: trans = mlt.blend_xy_sep_transform(ax.transData, ax.transData) # Now we set the offset in pixels trans.set_offset((x, y), mlt.identity_transform()) return trans else: raise RuntimeError, \ "Lacking needed functions in matplotlib.transform " \ "for _offset. Please upgrade" def _make_centeredaxis(ax, loc, offset=5, ai=0, mult=1.0, format='%4g', label=None, **props): """Plot an axis which is centered at loc (e.g. 0) Parameters ---------- ax Axes from the figure loc Value to center at offset Relative offset (in pixels) for the labels ai : int Axis index: 0 for x, 1 for y mult Multiplier for the axis labels. ERPs for instance need to be inverted, thus labels too manually here since there is no easy way in matplotlib to invert an axis label : str or None If not -- put a label outside of the axis **props Given to underlying plotting functions Idea borrowed from http://www.mail-archive.com/matplotlib-users@lists.sourceforge.net \ /msg05669.html It sustained heavy refactoring/extension """ xmin, xmax = ax.get_xlim() ymin, ymax = ax.get_ylim() xlocs = [l for l in ax.xaxis.get_ticklocs() if l >= xmin and l <= xmax] ylocs = [l for l in ax.yaxis.get_ticklocs() if l >= ymin and l <= ymax] if ai == 0: hlocs = ylocs locs = xlocs vrange = [xmin, xmax] tdir = mpl.lines.TICKDOWN halignment = 'center' valignment = 'top' lhalignment = 'left' lvalignment = 'center' lx, ly = xmax, 0 ticklength = ax.xaxis.get_ticklines()[0]._markersize elif ai == 1: hlocs = xlocs locs = ylocs vrange = [ymin, ymax] tdir = mpl.lines.TICKLEFT halignment = 'right' valignment = 'center' lhalignment = 'center' lvalignment = 'bottom' lx, ly = 0, ymax ticklength = ax.yaxis.get_ticklines()[0]._markersize else: raise ValueError, "Illegal ai=%s" % ai args = [ (locs, [loc] * len(locs)), (vrange, [loc, loc]), [locs, (loc,) * len(locs)] ] offset_abs = offset + ticklength if ai == 1: # invert args = [ [x[1], x[0]] for x in args ] # shift the tick labels labels trans = _offset(ax, -offset_abs, 0) transl = _offset(ax, 0, offset) else: trans = _offset(ax, 0, -offset_abs) transl = _offset(ax, offset, 0) tickline, = ax.plot(linestyle='', marker=tdir, *args[0], **props) axline, = ax.plot(*args[1], **props) tickline.set_clip_on(False) axline.set_clip_on(False) for i, l in enumerate(locs): if l == 0: # no origin label continue coor = [args[2][0][i], args[2][1][i], format % (mult * l)] ax.text(horizontalalignment=halignment, verticalalignment=valignment, transform=trans, *coor) if label is not None: ax.text( #max(args[2][0]), max(args[2][1]), lx, ly, label, horizontalalignment=lhalignment, verticalalignment=lvalignment, fontsize=14, # fontweight='bold', transform=transl) ##REF: Name was automagically refactored def plot_erp(data, SR=500, onsets=None, pre=0.2, pre_onset=None, post=None, pre_mean=None, color='r', errcolor=None, errtype=None, ax=pl, ymult=1.0, *args, **kwargs): """Plot single ERP on existing canvas Parameters ---------- data : 1D or 2D ndarray The data array can either be 1D (samples over time) or 2D (trials x samples). In the first case a boxcar mapper is used to extract the respective trial timecourses given a list of trial onsets. In the latter case, each row of the data array is taken as the EEG signal timecourse of a particular trial. onsets : list(int) List of onsets (in samples not in seconds). SR : int, optional Sampling rate (1/s) of the signal. pre : float, optional Duration (in seconds) to be plotted prior to onset. pre_onset : float or None If data is already in epochs (2D) then pre_onset provides information on how many seconds pre-stimulus were used to generate them. If None, then pre_onset = pre post : float Duration (in seconds) to be plotted after the onset. pre_mean : float Duration (in seconds) at the beginning of the window which is used for deriving the mean of the signal. If None, pre_mean = pre. If 0, then the mean is not subtracted from the signal. errtype : None or 'ste' or 'std' or 'ci95' or list of previous three Type of error value to be computed per datapoint. 'ste' -- standard error of the mean, 'std' -- standard deviation 'ci95' -- 95% confidence interval (1.96 * ste), None -- no error margin is plotted (default) Optionally, multiple error types can be specified in a list. In that case all of them will be plotted. color : matplotlib color code, optional Color to be used for plotting the mean signal timecourse. errcolor : matplotlib color code Color to be used for plotting the error margin. If None, use main color but with weak alpha level ax : Target where to draw. ymult : float, optional Multiplier for the values. E.g. if negative-up ERP plot is needed: provide ymult=-1.0 *args, **kwargs Additional arguments to `pylab.plot`. Returns ------- array Mean ERP timeseries. """ if pre_mean is None: pre_mean = pre # set default pre_discard = 0 if onsets is not None: # if we need to extract ERPs if post is None: raise ValueError, \ "Duration post onsets must be provided if onsets are given" # trial timecourse duration duration = pre + post # We are working with a full timeline bcm = BoxcarMapper(onsets, boxlength=int(SR * duration), offset= -int(SR * pre)) erp_data = bcm(data) # override values since we are using Boxcar pre_onset = pre else: if pre_onset is None: pre_onset = pre if pre_onset < pre: warning("Pre-stimulus interval to plot %g is smaller than provided " "pre-stimulus captured interval %g, thus plot interval was " "adjusted" % (pre, pre_onset)) pre = pre_onset if post is None: # figure out post duration = float(data.shape[1]) / SR - pre_discard post = duration - pre else: duration = pre + post erp_data = data pre_discard = pre_onset - pre # Scale the data appropriately erp_data *= ymult # validity check -- we should have 2D matrix (trials x samples) if len(erp_data.shape) != 2: raise RuntimeError, \ "plot_erp() supports either 1D data with onsets, or 2D data " \ "(trials x sample_points). Shape of the data at the point " \ "is %s" % erp_data.shape if not (pre_mean == 0 or pre_mean is None): # mean of pre-onset signal accross trials erp_baseline = np.mean( erp_data[:, int((pre_onset - pre_mean) * SR):int(pre_onset * SR)]) # center data on pre-onset mean # NOTE: make sure that we make a copy of the data to don't # alter the original. Better be safe than sorry erp_data = erp_data - erp_baseline # generate timepoints and error ranges to plot filled error area # top -> # bottom <- time_points = np.arange(erp_data.shape[1]) * 1.0 / SR - pre_onset # if pre != pre_onset if pre_discard > 0: npoints = int(pre_discard * SR) time_points = time_points[npoints:] erp_data = erp_data[:, npoints:] # select only time points of interest (if post is provided) if post is not None: npoints = int(duration * SR) time_points = time_points[:npoints] erp_data = erp_data[:, :npoints] # compute mean signal timecourse accross trials erp_mean = np.mean(erp_data, axis=0) # give sane default if errtype is None: errtype = [] if not isinstance(errtype, list): errtype = [errtype] for et in errtype: # compute error per datapoint if et in ['ste', 'ci95']: erp_stderr = erp_data.std(axis=0) / np.sqrt(len(erp_data)) if et == 'ci95': erp_stderr *= 1.96 elif et == 'std': erp_stderr = erp_data.std(axis=0) else: raise ValueError, "Unknown error type '%s'" % errtype time_points2w = np.hstack((time_points, time_points[::-1])) error_top = erp_mean + erp_stderr error_bottom = erp_mean - erp_stderr error2w = np.hstack((error_top, error_bottom[::-1])) if errcolor is None: errcolor = color # plot error margin pfill = ax.fill(time_points2w, error2w, edgecolor=errcolor, facecolor=errcolor, alpha=0.2, zorder=3) # plot mean signal timecourse ax.plot(time_points, erp_mean, lw=2, color=color, zorder=4, *args, **kwargs) # ax.xaxis.set_major_locator(pl.MaxNLocator(4)) return erp_mean ##REF: Name was automagically refactored def plot_erps(erps, data=None, ax=None, pre=0.2, post=None, pre_onset=None, xlabel='time (s)', ylabel='$\mu V$', ylim=None, ymult=1.0, legend=None, xlformat='%4g', ylformat='%4g', loffset=10, alinewidth=2, **kwargs): """Plot multiple ERPs on a new figure. Parameters ---------- erps : list of tuples List of definitions of ERPs. Each tuple should consist of (label, color, onsets) or a dictionary which defines, label, color, onsets, data. Data provided in dictionary overrides 'common' data provided in the next argument `data` data Data for ERPs to be derived from 1D (samples) ax Where to draw (e.g. subplot instance). If None, new figure is created pre : float, optional Duration (seconds) to be plotted prior to onset pre_onset : None or float If data is already in epochs (2D) then pre_onset provides information on how many seconds pre-stimulus were used to generate them. If None, then pre_onset = pre post : None or float Duration (seconds) to be plotted after the onset. If any data is provided with onsets, it can't be None. If None -- plots all time points after onsets ymult : float, optional Multiplier for the values. E.g. if negative-up ERP plot is needed: provide ymult=-1.0 xlformat : str, optional Format of the x ticks ylformat : str, optional Format of the y ticks legend : None or string If not None, legend will be plotted with position argument provided in this argument loffset : int, optional Offset in voxels for axes and tick labels. Different matplotlib frontends might have different opinions, thus offset value might need to be tuned specifically per frontend alinewidth : int, optional Axis and ticks line width **kwargs Additional arguments provided to plot_erp() Examples -------- :: kwargs = {'SR' : eeg.SR, 'pre_mean' : 0.2} fig = plot_erps((('60db', 'b', eeg.erp_onsets['60db']), ('80db', 'r', eeg.erp_onsets['80db'])), data[:, eeg.sensor_mapping['Cz']], ax=fig.add_subplot(1,1,1,frame_on=False), pre=0.2, post=0.6, **kwargs) or :: fig = plot_erps((('60db', 'b', eeg.erp_onsets['60db']), {'color': 'r', 'onsets': eeg.erp_onsets['80db'], 'data' : data[:, eeg.sensor_mapping['Cz']]} ), data[:, eeg.sensor_mapping['Cz']], ax=fig.add_subplot(1,1,1,frame_on=False), pre=0.2, post=0.6, **kwargs) Returns ------- h current fig handler """ if ax is None: fig = pl.figure(facecolor='white') fig.clf() ax = fig.add_subplot(111, frame_on=False) else: fig = pl.gcf() # We don't want original axis being on ax.axison = True labels = [] for erp_def in erps: plot_data = data params = {'ymult' : ymult} # provide custom parameters per ERP if isinstance(erp_def, tuple) and len(erp_def) == 3: params.update( {'label': erp_def[0], 'color': erp_def[1], 'onsets': erp_def[2]}) elif isinstance(erp_def, dict): plot_data = erp_def.pop('data', None) params.update(erp_def) labels.append(params.get('label', '')) # absorb common parameters params.update(kwargs) if plot_data is None: raise ValueError, "Channel %s got no data provided" \ % params.get('label', 'UNKNOWN') plot_erp(plot_data, pre=pre, pre_onset=pre_onset, post=post, ax=ax, **params) # plot_kwargs={'label':label}) if isinstance(erp_def, dict): erp_def['data'] = plot_data # return it back props = dict(color='black', linewidth=alinewidth, markeredgewidth=alinewidth, zorder=1, offset=loffset) def set_limits(): """Helper to set x and y limits""" ax.set_xlim((-pre, post)) if ylim is not None: ax.set_ylim(*ylim) set_limits() _make_centeredaxis(ax, 0, ai=0, label=xlabel, **props) set_limits() _make_centeredaxis(ax, 0, ai=1, mult=np.sign(ymult), label=ylabel, **props) ax.yaxis.set_major_locator(pl.NullLocator()) ax.xaxis.set_major_locator(pl.NullLocator()) # legend obscures plotting a bit... seems to be plotting # everything twice. Thus disabled by default if legend is not None and np.any(np.array(labels) != ''): pl.legend(labels, loc=legend) fig.canvas.draw() return fig pymvpa2-2.6.4/mvpa2/misc/plot/flat_surf.py000066400000000000000000000403011323370031300204070ustar00rootroot00000000000000# emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # # The initial version of the code was contributed by Ingo Fründ and is # Coypright (c) 2008 by Ingo Fründ ingo.fruend@googlemail.com # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Plot flat maps of cortical surfaces. WiP""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.support.nibabel import surf, afni_suma_1d from mvpa2.datasets.base import Dataset import re from mvpa2.base import externals if externals.exists("matplotlib", raise_=True): import matplotlib.pyplot as plt if externals.exists("griddata", raise_=True): from mvpa2.support.griddata import griddata from mvpa2.support.nibabel.surf import vector_alignment_find_rotation # older versions of Numpy do not support nanmin/nanmax, so provide that here def _get_nan_vector_operator(func): def f(xs): if not len(xs.shape) == 1: raise ValueError('Only vector input is supported') msk = np.logical_not(np.isnan(xs)) return func(xs[msk]) return f nanmin_wrapper = _get_nan_vector_operator(np.min) nanmax_wrapper = _get_nan_vector_operator(np.max) def unstructured_xy2grid_xy_vectors(x, y, min_nsteps): '''From unstructured x and y values, return lists of x and y coordinates to form a grid Parameters ---------- x: np.ndarray x coordinates y: np.ndarray y coordinates min_nsteps: int minimal length of output Returns ------- (xi, yi): tuple of np.ndarray xi contains values ranging from (approximately) min(x) to max(x); yi is similar. min(len(xi),len(yi))=min_steps. ''' if len(x) != len(y): raise ValueError('Shape mismatch') xmin, ymin = np.min(x), np.min(y) xmax, ymax = np.max(x), np.max(y) xran, yran = xmax - xmin, ymax - ymin delta = min(xran, yran) / (min_nsteps - 1) xsteps = 1 + np.ceil(xran / delta) ysteps = 1 + np.ceil(yran / delta) # x and y values on the grid xi = (np.arange(xsteps) + .5) * delta + xmin yi = (np.arange(ysteps) + .5) * delta + ymin return xi, yi def flat_surface2xy(surface, max_deformation): '''Returns a tuple with x and y coordinates of a flat surface Parameters ---------- surface: Surface flat surface max_deformation: float maximum deformation to make a non-flat surface flat. The normals of each face must have a dot product with the average face normal that is not less than (1-max_deformation); otherwise an exception is raised. The rationale for this option is that certain surfaces may be almost flat, and those can be made flat without problem; but surfaces that are not flat, such as inflated surfaces, should not be flattable. Returns ------- x: np.ndarray x coordinates y: np.ndarray y coordinates Notes ----- If the surface is not flat (any z coordinate is non-zero), an exception is raised. ''' s = surf.from_any(surface) face_normals = s.face_normals msk = np.all(np.logical_not(np.isnan(face_normals)), 1) avg_face_normal = s.nanmean_face_normal deformations = abs( 1 - abs(np.dot(avg_face_normal[np.newaxis], face_normals[msk].T))) too_deformed = np.nonzero(deformations > max_deformation)[0] if len(too_deformed) > 0: raise ValueError('Surface is not sufficiently flat with ' 'max_deformation=%.3f' % max_deformation) # find rotation so that surface is more or less orthogonal to # the unit vector (0,0,1) v = s.vertices z_axis = np.asarray([0, 0, 1.]) r = vector_alignment_find_rotation(avg_face_normal, z_axis) # apply rotation v_rotated = r.dot(v.T) # discard z-coordinate x = v_rotated[0] y = v_rotated[1] return x, y def flat_surface2grid_mask(surface, min_nsteps, max_deformation): '''Computes a mask and corresponding coordinates from a flat surface Parameters ---------- surface: Surface flat surface min_nsteps: int minimum number of pixels in x and y direction max_deformation: float maximum deformation to make a non-flat surface flat. The normals of each face must have a dot product with the average face normal that is not less than (1-max_deformation); otherwise an exception is raised. The rationale for this option is that certain surfaces may be almost flat, and projecting the vertices on a truly flat surface should be fine. On the other hand, surfaces that are definitly not flat (such as full cortical surface models) should cause an error to be raised when it is attempted to flatten them Returns ------- x: np.ndarray x coordinates of surface y: np.ndarray y coordinates of surface m: np.ndarray mask array of size PxQ, with min(P,Q)==min_nsteps. m[i,j]==True iff the position at (i,j) is 'inside' the flat surface xi: np.ndarray vector of length Q with interpolated x coordinates yi: np.ndarray vector of length P with interpolated y coordinates Notes ----- The output of this function can be used with scipy.interpolate.griddata ''' surface = surf.from_any(surface) x, y = flat_surface2xy(surface, max_deformation) xmin = np.min(x) xi, yi = unstructured_xy2grid_xy_vectors(x, y, min_nsteps) delta = xi[1] - xi[0] vi2xi = (x - xmin) / delta # compute paths of nodes on the border pths = surface.nodes_on_border_paths() # map x index to segments that cross the x coordinate # (a segment is a pair (i,j) where nodes i and j share a triangle # and are on the border) xidx2segments = dict() for pth in pths: # make a tour across pairs (i,j) j = pth[-1] for i in pth: pq = vi2xi[i], vi2xi[j] p, q = min(pq), max(pq) # always go left (p) to right (q) for pqs in np.arange(np.ceil(p), np.ceil(q)): # take each point in between ipqs = int(pqs) # add to xidx2segments if not ipqs in xidx2segments: xidx2segments[ipqs] = list() xidx2segments[ipqs].append((i, j)) # take end point from last iteration as starting point # in next iteration j = i # space for the mask yxshape = len(yi), len(xi) msk = np.zeros(yxshape, dtype=np.bool_) # see which nodes are *inside* a surface # (there can be multiple surfaces) for ii, xpos in enumerate(xi): if not ii in xidx2segments: continue segments = xidx2segments[ii] for jj, ypos in enumerate(yi): # based on PNPOLY (W Randoph Franklin) # http://www.ecse.rpi.edu/~wrf/Research/Short_Notes/pnpoly.html # retrieved Apr 2013 c = False for i, j in segments: if ypos < (y[j] - y[i]) * (xpos - x[i]) / (x[j] - x[i]) + y[i]: c = not c msk[jj, ii] = np.bool(c) return x, y, msk, xi, yi def _scale(xs, target_min=0., target_max=1., source_min=None, source_max=None): '''Scales from [smin,smax] to [tmin,tmax]''' mn = nanmin_wrapper(xs.ravel()) if source_min is None else source_min mx = nanmax_wrapper(xs.ravel()) if source_max is None else source_max scaled = (xs - mn) / (mx - mn) return scaled * (target_max - target_min) + target_min def flat_surface_curvature2rgba(curvature): '''Computes an RGBA colormap in black and white, based on curvature''' curvature = curvature_from_any(curvature) cmap = plt.get_cmap('binary') # invert it so match traditional 'sulcus=dark', then scale to [0,1] c = _scale(-curvature) return cmap(c) def _range2min_max(range_, xs): '''Converts a range description to a minimum and maximum value Parameters ---------- range_: str or float or tuple If a tuple (a,b), then this tuple is returned. If a float a, then (-a,a) is returned. "R(a)", where R(a) denotes the string representation of float a, is equivalent to range_=a. "R(a)_R(b)" is equivalent to range_=(a,b). "R(a)_R(b)%" indicates that the a-th and b-th percentile of xs is taken to define the range. "R(a)%" is equivalent to "R(a)_R(100-a)%" xs: np.ndarray Data array - used to define the range if range_ ends with '%'. Returns ------- mn, mx: tuple of float minimum and maximum value according to the range ''' try: r = float(range_) if r < 0: raise RuntimeError("Single value should be positive") return _range2min_max((-r, r), xs) except (ValueError, TypeError): if isinstance(range_, basestring): pat = '(?P\d*)_?(?P\d+)?(?P%)?' m = re.match(pat, range_) g = m.groups() mn, mx, p = g if mn != 0 and not mn: raise ValueError("Not understood: %s" % range_) mn = float(mn) percentage = p == '%' if percentage: xmn = nanmin_wrapper(xs.ravel()) xmx = nanmax_wrapper(xs.ravel()) mx = 100 - mn if mx != 0 and not mx else float(mx) mn *= .01 mx *= .01 mn, mx = np.asarray([mn, mx]) * (xmx - xmn) + xmn else: mx = float(mx) else: mn, mx = map(float, range_) return mn, mx def flat_surface_data2rgba(data, range_='2_98%', threshold=None, color_map=None): '''Computes an RGBA colormap for surface data''' if isinstance(data, Dataset): data = data.samples cmap = plt.get_cmap(color_map) mn, mx = _range2min_max(range_, data) scaled = _scale(data, 0., 1., mn, mx) rgba = cmap(scaled) if threshold is not None: mn, mx = _range2min_max(threshold, data) to_remove = np.logical_and(data > mn, data < mx) rgba[to_remove, :] = np.nan return rgba def curvature_from_any(c): '''Reads curvature''' if isinstance(c, basestring): from mvpa2.support.nibabel import afni_suma_1d c = afni_suma_1d.from_any(c) # typical SUMA use case: first column has node indices, # second column if len(c.shape) > 1 and c.shape[1] == 2 and \ set(c[:, 0]) == set(range(1 + int(max(c[:, 0])))): cc = c n = cc.shape[0] c = np.zeros((n,)) idxs = np.asarray(cc[:, 0], dtype=np.int_) c[idxs] = cc[:, 1] return np.asarray(c) class FlatSurfacePlotter(object): '''Plots data on a flat surface Example ======= flat_surf_fn = 'flat_anat_surface.surf.gii' ds = h5load('surface_data.h5py') # plot data on surface fsp = FlatSurfacePlotter(flat_surf_fn) img = fsp(ds.samples[0]) # plot data with threshold and curvature conv_fn='ico16_lh.conv.1D.dset' # from AFNI SUMA's SurfaceMetrics -conv fsp_thr=FSP(flat_surf_fn, curvature = conv_fn, threshold=(.5, .8)) img_thr=fsp_thr(sl_dset.samples[0]) ''' def __init__(self, surface, curvature=None, min_nsteps=500, range_='2_98%', threshold=None, color_map=None, max_deformation=.5): ''' Parameters ---------- surface: surf.Surface a flat surface curvature: str or np.ndarray (Filename of) data representing curvature at each node. min_steps: int Minimal side of output plots in pixel range_: str or float or tuple If a tuple (a,b), then this tuple is returned. If a float a, then (-a,a) is returned. "R(a)", where R(a) denotes the string representation of float a, is equivalent to range_=a. "R(a)_R(b)" is equivalent to range_=(a,b). "R(a)_R(b)%" indicates that the a-th and b-th percentile of xs is taken to define the range. "R(a)%" is equivalent to "R(a)_R(100-a)%" threshold: str or float or tuple Indicates which values will be shown. Syntax as in range_ color_map: str colormap to use max_deformation: float maximum deformation to make a non-flat surface flat. The normals of each face must have a dot product with the average face normal that is not less than (1-max_deformation); otherwise an exception is raised. The rationale for this option is that certain surfaces may be almost flat, and projecting the vertices on a truly flat surface should be fine. On the other hand, surfaces that are definitly not flat (such as full cortical surface models) should cause an error to be raised when it is attempted to flatten them ''' self._surface = surf.from_any(surface) if curvature is None: self._curvature = None else: self._curvature = curvature_from_any(curvature) if self._surface.nvertices != len(self._curvature): raise ValueError("Surface has %d vertices, but curvature " "has %d values" % (self._surface.nvertices, self._curvature.size)) self._min_nsteps = min_nsteps self._range_ = range_ self._threshold = threshold self._color_map = color_map self._max_deformation = max_deformation self._grid_def = None self._underlay = None def set_underlay(self, u): '''Sets the underlay''' self._underlay = u.copy() def _set_underlay_from_curvature(self): if self._curvature is None: raise ValueError("Curvature is not set") if self._grid_def is None: self._set_grid_def() x, y, msk, xi, yi = self._grid_def ulay = griddata(x, y, self._curvature, xi, yi, interp='linear') ulay[-msk] = np.nan rgba = flat_surface_curvature2rgba(ulay) self.set_underlay(rgba) def _pre_setup(self): if self._grid_def is None: self._grid_def = flat_surface2grid_mask(self._surface, self._min_nsteps, self._max_deformation) if self._underlay is None and self._curvature is not None: self._set_underlay_from_curvature() def __call__(self, data): ''' Parameters ---------- data: np.ndarray Surface data to be plotted. Should have the same number of data points as the surface Returns ------- rgba: np.ndarray Bitmap with RGBA values that can be plotted. ''' self._pre_setup() expected_shape = (self._surface.nvertices,) if data.shape != expected_shape: raise ValueError('data shape was expected to be %s based on ' 'the number of nodes of the surface, ' 'found %s' % ( expected_shape, data.shape)) x, y, msk, xi, yi = self._grid_def olay = griddata(x, y, data, xi, yi, interp='linear') nan_msk = np.logical_not(msk) olay[nan_msk] = np.nan o_rgba = flat_surface_data2rgba(olay, self._range_, self._threshold, self._color_map) o_rgba[nan_msk] = np.nan # apply the mask again, to be sure if self._underlay is not None: o_msk = -np.isnan(np.sum(o_rgba, 2)) u_rgba = self._underlay u_msk = np.logical_and(np.logical_not(o_msk), msk) o_rgba[u_msk] = u_rgba[u_msk] return o_rgba pymvpa2-2.6.4/mvpa2/misc/plot/lightbox.py000066400000000000000000000502241323370031300202470ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Basic (f)MRI plotting with ability to interactively perform thresholding """ import pylab as pl import numpy as np import matplotlib as mpl from mvpa2.base import warning, externals from mvpa2.misc.plot.tools import Pion, Pioff, mpl_backend_isinteractive if __debug__: from mvpa2.base import debug if externals.exists('nibabel'): import nibabel as nb from nibabel.spatialimages import SpatialImage else: class SpatialImage(object): """Just a helper to allow plot_lightbox be used even if no nibabel module available for plotting regular 2D/3D images (ndarrays)""" def __init__(self, filename): raise ValueError, "plot_lightbox was provided a filename %s. " \ "By now we only support loading data from Nifti/Analyze " \ "files, but nibabel module is not available" % filename def plot_lightbox(background=None, background_mask=None, cmap_bg='gray', overlay=None, overlay_mask=None, cmap_overlay='autumn', vlim=(0.0, None), vlim_type=None, do_stretch_colors=False, add_info=True, add_hist=True, add_colorbar=True, fig=None, interactive=None, nrows=None, ncolumns=None, slices=None, slice_title="k=%(islice)s" ): """Very basic plotting of 3D data with interactive thresholding. `background`/`overlay` and corresponding masks could be nifti files names or `SpatialImage` objects, or 3D `ndarrays`. If no mask is provided, only non-0 elements are plotted. Notes ----- No care is taken to deduce the orientation (e.g. Left-to-Right, Posterior-to-Anterior) of fMRI volumes. Therefore all input volumes should be in the same orientation. Parameters ---------- do_stretch_colors : bool, optional Stratch color range to the data (not just to visible data) vlim : tuple, optional 2 element tuple of low/upper bounds of values to plot vlim_type : None or 'symneg_z' If not None, then vlim would be treated accordingly: symneg_z z-score values of symmetric normal around 0, estimated by symmetrizing negative part of the distribution, which often could be assumed when total distribution is a mixture of by-chance performance normal around 0, and some other in the positive tail ncolumns : int or None Explicit starting number of columns into which position the slice renderings. If None, square arrangement would be used nrows : int or None Explicit starting number of rows into which position the slice renderings. If None, square arrangement would be used add_hist : bool or tuple (int, int) If True, add histogram and position automagically. If a tuple -- use as (row, column) add_info : bool or tuple (int, int) If True, add information and position automagically. If a tuple -- use as (row, column). slices : None or list of int If not to plot whole volume, what slices to plot. slice_title : None or str Desired title of slices. Use string comprehension and assume `islice` variable present with current slice index. Available colormaps are presented nicely on http://www.scipy.org/Cookbook/Matplotlib/Show_colormaps TODO: * Make interface more attractive/usable * allow multiple overlays... or just unify for them all to be just a list of entries * handle cases properly when there is only one - background/overlay """ def handle_arg(arg): """Helper which would read in SpatialImage if necessary """ if arg is None: return arg if isinstance(arg, basestring): arg = nb.load(arg) argshape = arg.shape # Assure that we have 3D (at least) if len(argshape)<3: arg = nb.Nifti1Image( arg.get_data().reshape(argshape + (1,)*(3-len(argshape))), arg.affine, arg.header) else: argshape = arg.shape if len(argshape) == 4: if argshape[-1] > 1: warning("For now plot_lightbox can handle only 3d, 4d data was provided." " Plotting only the first volume") if isinstance(arg, SpatialImage): arg = nb.Nifti1Image(arg.get_data()[..., 0], arg.affine, arg.header) else: arg = arg[..., 0] elif len(argshape) != 3: raise ValueError, "For now just handling 3D volumes" return arg bg = handle_arg(background) if isinstance(bg, SpatialImage): # figure out aspect # fov = (np.array(bg.header['pixdim']) * bg.header['dim'])[3:0:-1] # aspect = fov[1]/fov[2] # just scale by voxel-size ratio (extent is disabled) bg_hdr = bg.header aspect = bg_hdr.get_zooms()[2] / bg_hdr.get_zooms()[1] bg = bg.get_data() else: aspect = 1.0 bg_mask = None if bg is not None: bg_mask = handle_arg(background_mask) if isinstance(bg_mask, SpatialImage): bg_mask = bg_mask.get_data() if bg_mask is not None: bg_mask = bg_mask != 0 else: bg_mask = bg != 0 func = handle_arg(overlay) if func is not None: if isinstance(func, SpatialImage): func = func.get_data() func_mask = handle_arg(overlay_mask) if isinstance(func_mask, SpatialImage): func_mask = func_mask.get_data() #[..., ::-1, :] # XXX if func_mask is not None: func_mask = func_mask != 0 else: func_mask = func != 0 # Lets assure that that we are dealing with <= 3D for v in (bg, bg_mask, func, func_mask): if v is not None: if v.ndim > 3: # we could squeeze out first bogus dimensions if np.all(np.array(v.shape[3:]) == 1): v.shape = v.shape[:3] else: raise ValueError, \ "Original shape of some data is %s whenever we " \ "can accept only 3D images (or ND with degenerate " \ "first dimensions)" % (v.shape,) # process vlim vlim = list(vlim) vlim_orig = vlim[:] add_dist2hist = [] if isinstance(vlim_type, basestring): if vlim_type == 'symneg_z': func_masked = func[func_mask] fnonpos = func_masked[func_masked<=0] fneg = func_masked[func_masked<0] # take together with sign-reverted negative values fsym = np.hstack((-fneg, fnonpos)) nfsym = len(fsym) # Estimate normal std under assumption of mean=0 std = np.sqrt(np.mean(abs(fsym)**2)) # convert vlim assuming it is z-scores for i,v in enumerate(vlim): if v is not None: vlim[i] = std * v # add a plot to histogram add_dist2hist = [(lambda x: nfsym/(np.sqrt(2*np.pi)*std) \ *np.exp(-(x**2)/(2*std**2)), {})] else: raise ValueError, 'Unknown specification of vlim=%s' % vlim + \ ' Known is: symneg' class Plotter(object): """ TODO """ #_store_attribs = ('vlim', 'fig', 'bg', 'bg_mask') def __init__(self, _locals): """TODO""" self._locals = _locals self.fig = _locals['fig'] def do_plot(self): """TODO""" # silly yarik didn't find proper way vlim = self._locals['vlim'] bg = self._locals['bg'] bg_mask = self._locals['bg_mask'] ncolumns = self._locals['ncolumns'] nrows = self._locals['nrows'] add_info = self._locals['add_info'] add_hist = self._locals['add_hist'] slices = self._locals['slices'] slice_title = self._locals['slice_title'] if np.isscalar(vlim): vlim = (vlim, None) if vlim[0] is None: vlim = (np.min(func), vlim[1]) if vlim[1] is None: vlim = (vlim[0], np.max(func)) if __debug__ and 'PLLB' in debug.active: debug('PLLB', "Maximum %g at %s, vlim is %s" % (np.max(func), np.where(func==np.max(func)), str(vlim))) invert = vlim[1] < vlim[0] if invert: vlim = (vlim[1], vlim[0]) print "Not yet fully supported" # adjust lower bound if it is too low # and there are still multiple values ;) func_masked = func[func_mask] if vlim[0] < np.min(func_masked) and \ np.min(func_masked) != np.max(func_masked): vlim = list(vlim) vlim[0] = np.min(func[func_mask]) vlim = tuple(vlim) bound_above = (max(vlim) < np.max(func)) bound_below = (min(vlim) > np.min(func)) # # reverse the map if needed cmap_ = cmap_overlay if not bound_below and bound_above: if cmap_.endswith('_r'): cmap_ = cmap_[:-2] else: cmap_ += '_r' func_cmap = eval("pl.cm.%s" % cmap_) bg_cmap = eval("pl.cm.%s" % cmap_bg) if do_stretch_colors: clim = (np.min(func), np.max(func))#vlim else: clim = vlim # # figure out 'extend' for colorbar and threshold string extend, thresh_str = { (True, True) : ('both', 'x in [%.3g, %.3g]' % tuple(vlim)), (True, False): ('min', 'x in [%.3g, +inf]' % vlim[0]), (False, True): ('max', 'x in (-inf, %.3g]' % vlim[1]), (False, False): ('neither', 'none') }[(bound_below, bound_above)] # # Figure out subplots dshape = func.shape if slices is None: slices = range(func.shape[-1]) nslices = len(slices) # more or less square alignment ;-) if ncolumns is None: ncolumns = int(np.sqrt(nslices)) ndcolumns = ncolumns # or 0 for the case if nrows is None and max needs both numerics nrows = max(nrows or 0, int(np.ceil(nslices * 1.0 / ncolumns))) # Check if additional column/row information was provided # and extend nrows/ncolumns for v in (add_hist, add_info): if v and not isinstance(v, bool): ncolumns = max(ncolumns, v[1]+1) nrows = max(nrows, v[0]+1) # Decide either we need more cells where to add hist and/or info nadd = bool(add_info) + bool(add_hist) while ncolumns*nrows - (nslices + nadd) < 0: ncolumns += 1 locs = ['' for i in xrange(ncolumns*nrows)] # Fill in predefined locations for v,vl in ((add_hist, 'hist'), (add_info, 'info')): if v and not isinstance(v, bool): locs[ncolumns*v[0] + v[1]] = vl # Fill in slices for islice in slices: locs[locs.index('')] = islice # Fill the last available if necessary if add_hist and isinstance(add_hist, bool): locs[locs.index('')] = 'hist' if add_info and isinstance(add_info, bool): locs[locs.index('')] = 'info' Pioff() if self.fig is None: self.fig = pl.figure(facecolor='white', figsize=(4*ncolumns, 4*nrows)) fig = self.fig fig.clf() # # how to threshold images thresholder = lambda x: np.logical_and(x>=vlim[0], x<=vlim[1]) ^ invert # # Draw all slices self.slices_ax = [] im0 = None for islice in slices[::-1]: #range(nslices)[::-1]: ax = fig.add_subplot(nrows, ncolumns, locs.index(islice) + 1, frame_on=False) self.slices_ax.append(ax) ax.axison = False slice_bg_nvoxels = None if bg is not None: slice_bg = bg[:, :, islice] slice_bg_ = np.ma.masked_array(slice_bg, mask=np.logical_not(bg_mask[:, :, islice])) #slice_bg<=0) slice_bg_nvoxels = len(slice_bg_.nonzero()[0]) if __debug__: debug('PLLB', "Plotting %i background elements in slice %i" % (slice_bg_nvoxels, islice)) slice_sl = func[:, :, islice] in_thresh = thresholder(slice_sl) out_thresh = np.logical_not(in_thresh) slice_sl_ = np.ma.masked_array(slice_sl, mask=np.logical_or(out_thresh, np.logical_not(func_mask[:, :, islice]))) slice_func_nvoxels = len(slice_sl_.nonzero()[0]) if __debug__: debug('PLLB', "Plotting %i foreground elements in slice %i" % (slice_func_nvoxels, islice)) kwargs = dict(aspect=aspect, origin='upper') #extent=(0, slice_bg.shape[0], # 0, slice_bg.shape[1])) # paste a blank white background first, since otherwise # recent matplotlib screws up those masked imshows im = ax.imshow(np.ones(slice_sl_.shape).T, cmap=bg_cmap, **kwargs) im.set_clim((0,1)) # ax.clim((0,1)) if slice_bg_nvoxels: ax.imshow(slice_bg_.T, # let's stay close to the ugly truth ;-) #interpolation='bilinear', interpolation='nearest', cmap=bg_cmap, **kwargs) if slice_func_nvoxels: alpha = slice_bg_nvoxels and 0.9 or 1.0 im = ax.imshow(slice_sl_.T, interpolation='nearest', cmap=func_cmap, alpha=alpha, **kwargs) im.set_clim(*clim) im0 = im if slice_title: pl.title(slice_title % locals()) # func_masked = func[func_mask] # # Add summary information func_thr = func[np.logical_and(func_mask, thresholder(func))] if add_info and len(func_thr): self.info_ax = ax = fig.add_subplot(nrows, ncolumns, locs.index('info')+1, frame_on=False) # cb = pl.colorbar(shrink=0.8) # #cb.set_clim(clim[0], clim[1]) ax.axison = False #if add_colorbar: # cb = pl.colorbar(im, shrink=0.8, pad=0.0, drawedges=False, # extend=extend, cmap=func_cmap) stats = {'v':len(func_masked), 'vt': len(func_thr), 'm': np.mean(func_masked), 'mt': np.mean(func_thr), 'min': np.min(func_masked), 'mint': np.min(func_thr), 'max': np.max(func_masked), 'maxt': np.max(func_thr), 'mm': np.median(func_masked), 'mmt': np.median(func_thr), 'std': np.std(func_masked), 'stdt': np.std(func_thr), 'sthr': thresh_str} pl.text(0, 0.5, """ Original: voxels = %(v)d range = [%(min).3g, %(max).3g] mean = %(m).3g median = %(mm).3g std = %(std).3g Thresholded: %(sthr)s: voxels = %(vt)d range = [%(mint).3g, %(maxt).3g] median = %(mt).3g mean = %(mmt).3g std = %(stdt).3g """ % stats, horizontalalignment='left', verticalalignment='center', transform = ax.transAxes, fontsize=14) cb = None if add_colorbar and im0 is not None: kwargs_cb = {} #if add_hist: # kwargs_cb['cax'] = self.hist_ax self.cb_ax = cb = pl.colorbar( im0, #self.hist_ax, shrink=0.8, pad=0.0, drawedges=False, extend=extend, cmap=func_cmap, **kwargs_cb) cb.set_clim(*clim) # Add histogram if add_hist: self.hist_ax = fig.add_subplot(nrows, ncolumns, locs.index('hist') + 1, frame_on=True) minv, maxv = np.min(func_masked), np.max(func_masked) if minv<0 and maxv>0: # then make it centered on 0 maxx = max(-minv, maxv) range_ = (-maxx, maxx) else: range_ = (minv, maxv) H = np.histogram(func_masked, range=range_, bins=31) # API changed since v0.99.0-641-ga7c2231 halign = externals.versions['matplotlib'] >= '1.0.0' \ and 'mid' or 'center' H2 = pl.hist(func_masked, bins=H[1], align=halign, facecolor='#FFFFFF', hold=True) for a, kwparams in add_dist2hist: dbin = (H[1][1] - H[1][0]) pl.plot(H2[1], [a(x) * dbin for x in H2[1]], **kwparams) if add_colorbar and cb: cbrgba = cb.to_rgba(H2[1]) for face, facecolor, value in zip(H2[2], cbrgba, H2[1]): if not thresholder(value): color = '#FFFFFF' else: color = facecolor face.set_facecolor(color) fig.subplots_adjust(left=0.01, right=0.95, hspace=0.25) # , bottom=0.01 if ncolumns - int(bool(add_info) or bool(add_hist)) < 2: fig.subplots_adjust(wspace=0.4) else: fig.subplots_adjust(wspace=0.1) Pion() def on_click(self, event): """Actions to perform on click """ if id(event.inaxes) != id(plotter.hist_ax): return xdata, ydata, button = event.xdata, event.ydata, event.button vlim = self._locals['vlim'] if button == 1: vlim[0] = xdata elif button == 3: vlim[1] = xdata elif button == 2: vlim[0], vlim[1] = vlim[1], vlim[0] self.do_plot() plotter = Plotter(locals()) plotter.do_plot() if interactive is None: interactive = mpl_backend_isinteractive # Global adjustments if interactive: # if pl.matplotlib.is_interactive(): pl.connect('button_press_event', plotter.on_click) pl.show() plotter.fig.plotter = plotter return plotter.fig pymvpa2-2.6.4/mvpa2/misc/plot/scatter.py000077500000000000000000000634301323370031300201020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Routines to scatterplot data""" __docformat__ = 'restructuredtext' import sys, os import pylab as pl import nibabel as nb import numpy as np from mvpa2.base import verbose __all__ = ['plot_scatter'] def fill_nonfinites(a, fill=0, inplace=True): """Replace all non-finites (NaN, inf) etc with a fill value """ nonfinites = ~np.isfinite(a) if np.any(nonfinites): if not inplace: a = a.copy() a[nonfinites] = fill return a def plot_scatter(dataXd, mask=None, masked_opacity=0., labels=None, colors=True, dimcolor=1, title=None, limits='auto', thresholds=None, hint_opacity=0.9, x_jitter=None, y_jitter=None, fig=None, ax_scatter=None, ax_hist_x=None, ax_hist_y=None, bp_location='scatter', xlim=None, ylim=None, rasterized=None, uniq=False, include_stats=False, ): """ Parameters ---------- dataXd: array The volumetric (or not) data to plot where first dimension should only have 2 items mask: array, optional Additional mask to specify which values do not consider to plot. By default values with 0s in both dimensions are not plotted. masked_opacity: float, optional By default masked out values are not plotted at all. Value in (0,1] will make them visible with this specified opacity labels: list of str, optional Labels to place for x and y axes colors: bool or string or colormap, optional Either to use colors to associate with physical location and what colormap to use (jet by default if colors=True) dimcolor: int If `colors`, then which dimension (within given 3D volume) to "track" limits: 'auto', 'same', 'per-axis' or (min, max) Limits for axes: when 'auto' if data ranges overlap is more than 50% of the union range, 'same' is considered. When 'same' -- the same limits on both axes as determined by data. If two-element tuple or list is provided, then that range is applied to both axes. hint_opacity: float, optional If `colors` is True, to then a "slice" of the volumetric data is plotted in the specified opacity to hint about the location of points in the original Xd data in `dimcolor` dimension x_jitter: float, optional Half-width of uniform noise added to x values. Might be useful if data is quantized so it is valuable to jitter points a bit. y_jitter: float, optional Half-width of uniform noise added to y values. Might be useful if data is quantized so it is valuable to jitter points a bit fig : Figure, optional Figure to plot on, otherwise new one created ax_*: axes, optional Axes for the scatter plot and histograms. If none of them is specified (which is the default) then 'classical' plot is rendered with histograms above and to the right bp_location: ('scatter', 'hist', None), optional Where to place boxplots depicting data range xlim: tuple, optional ylim: tuple, optional To fix plotted range rasterized: bool, optional Passed to scatter call, to allow rasterization of heavy scatter plots uniq: bool, optional Plot uniq values (those present in one but not in the other) along each axis with crosses include_stats: bool, optional Whether to report additional statistics on the data. Stats are also reported via verbose at level 2 """ if len(dataXd) != 2: raise ValueError("First axis of dataXd can only have two dimensions, " "got {0}".format(len(dataXd))) dataXd = np.asanyarray(dataXd) # TODO: allow to operate on list of arrays to not waste RAM/cycles data = dataXd.reshape((2, -1)) if dataXd.ndim < 5: ntimepoints = 1 elif dataXd.ndim == 5: ntimepoints = dataXd.shape[-1] else: raise ValueError("Do not know how to handle data with %d dimensions" % (dataXd.ndim - 1)) if x_jitter or y_jitter: data = data.copy() # lazy and wasteful def jitter_me(x, w): x += np.random.uniform(-w, w, size=data.shape[-1]) if x_jitter: jitter_me(data[0, :], x_jitter) if y_jitter: jitter_me(data[1, :], y_jitter) finites = np.isfinite(data) nz = np.logical_and(data != 0, finites) # TODO : avoid doing data !=0 and just use provided utter mask #nz[:, 80000:] = False # for quick testing nzsum = np.sum(nz, axis=0) intersection = nzsum == 2 # for coloring we would need to know all the indices union = nzsum > 0 x, y = datainter = data[:, intersection] if mask is not None: if mask.size * ntimepoints == intersection.size: # we have got a single mask applicable to both x and y pass elif mask.size * ntimepoints == 2 * intersection.size: # we have got a mask per each, let's get an intersection assert mask.shape[0] == 2, "had to get 1 for x, 1 for y" mask = np.logical_and(mask[0], mask[1]) else: raise ValueError( "mask of shape %s. data of shape %s. ntimepoints=%d. " "Teach me how to apply it" % (mask.shape, data.shape, ntimepoints) ) # replicate mask ntimepoints times mask = np.repeat(mask.ravel(), ntimepoints)[intersection] != 0 x_masked = x[mask] y_masked = y[mask] xnoty = (nz[0].astype(int) - nz[1].astype(int))>0 ynotx = (nz[1].astype(int) - nz[0].astype(int))>0 msg = '' if not np.all(finites): msg = " non-finite x: %d, y: %d" % (np.sum(~finites[0]), np.sum(~finites[1])) verbose(1, "total: %d union: %d%s intersection: %d x_only: %d y_only: %d%s" % (len(nzsum), np.sum(union), mask is not None and ' masked: %d' % np.sum(mask) or '', np.sum(intersection), np.sum(xnoty), np.sum(ynotx), msg)) if include_stats: # report some statistics as well import scipy.stats as ss r, p = ss.pearsonr(x, y) d = np.linalg.norm(x-y) statsline = "r=%.2f p=%.4g ||x-y||=%.4g" % (r, p, d) try: from mvpa2.misc.dcov import dcorcoef nmax = min(1000, len(x)) idx = np.random.permutation(np.arange(len(x)))[:nmax] dcor = dcorcoef(x[idx], y[idx]) dcor_s = '' if len(x) == nmax else '[%d random]' % nmax statsline += ' dcorr%s=%.4g' % (dcor_s, dcor) except ImportError: pass verbose(2, statsline) else: statsline = '' #fig=pl.figure() #pl.plot(datainter[0], datainter[1], '.') #fig.show() nullfmt = pl.NullFormatter() # no labels # definitions for the axes left, width = 0.1, 0.65 bottom, height = 0.1, 0.65 bottom_h = left_h = left+width+0.02 if not (bool(ax_scatter) or bool(ax_hist_x) or bool(ax_hist_y)): # no custom axes specified # our default setup rect_scatter = [left, bottom, width, height] rect_histx = [left, bottom_h, width, 0.2] rect_histy = [left_h, bottom, 0.2, height] # start with a rectangular Figure if fig is None: fig = pl.figure(figsize=(10,10)) ax_scatter = pl.axes(rect_scatter) ax_hist_x = pl.axes(rect_histx) ax_hist_y = pl.axes(rect_histy) else: # check if all not None? # assert(len(axes) == 3) ax_bp_x, ax_bp_y = None, None if ax_scatter is None: raise ValueError("Makes no sense to do not have scatter plot") ax_bp_x = ax_bp_y = None if bp_location is not None: ax_bp_x_parent = ax_bp_y_parent = None if bp_location == 'scatter': # place boxplots into histogram plots ax_bp_x_parent = ax_scatter ax_bp_y_parent = ax_scatter elif bp_location == 'hist': ax_bp_x_parent = ax_hist_x ax_bp_y_parent = ax_hist_y else: raise ValueError("bp_location needs to be from (None, 'scatter', 'hist')") if ax_bp_x_parent: hist_x_pos = ax_bp_x_parent.get_position() ax_bp_x = pl.axes( [hist_x_pos.x0, hist_x_pos.y0 + hist_x_pos.height * 0.9, hist_x_pos.width, hist_x_pos.height * 0.1], axisbg='y' ) if ax_bp_y_parent: hist_y_pos = ax_bp_y_parent.get_position() ax_bp_y = pl.axes( [hist_y_pos.x0 + hist_y_pos.width*0.9, hist_y_pos.y0, hist_y_pos.width * 0.1, hist_y_pos.height], axisbg='y' ) # ax_bp_y = pl.axes( [left + width * 0.9, bottom, width/10, height], axisbg='y' ) if ax_hist_y else None sc_kwargs = dict(facecolors='none', s=1, rasterized=rasterized) # common kwargs # let's use colormap to get non-boring colors cm = colors # e.g. if it is None if colors is True: cm = pl.matplotlib.cm.get_cmap('jet') elif isinstance(colors, str): cm = pl.matplotlib.cm.get_cmap(colors) if cm and len(dataXd.shape) > dimcolor+1: cm.set_under((1, 1, 1, 0.1)) # transparent what is not in range # we need to get our indices back for those we are going to plot. probably this is the least efficient way: ndindices_all = np.array(list(np.ndindex(dataXd.shape[1:]))) ndindices_nz = ndindices_all[intersection] # choose color based on dimcolor dimcolor_len = float(dataXd.shape[1+dimcolor]) edgecolors = cm(((cm.N-1) * ndindices_nz[:, dimcolor] / dimcolor_len).astype(int)) if mask is not None: # Plot first those which might be masked out if masked_opacity: mask_inv = np.logical_not(mask) mask_edgecolors = edgecolors[mask_inv].copy() # Adjust alpha value mask_edgecolors[:, -1] *= masked_opacity ax_scatter.scatter(x[mask_inv], y[mask_inv], edgecolors=mask_edgecolors, alpha=masked_opacity, **sc_kwargs) # Plot (on top) those which are not masked-out x_plot, y_plot, edgecolors_plot = x[mask], y[mask], edgecolors[mask] else: # Just plot all of them at once x_plot, y_plot, edgecolors_plot = x, y, edgecolors if len(x_plot): ax_scatter.scatter(x_plot, y_plot, edgecolors=edgecolors_plot, **sc_kwargs) # for orientation we need to plot 1 slice... assume that the last dimension is z -- figure out a slice with max # of non-zeros zdim_entries = ndindices_nz[:, -1] zdim_counts, _ = np.histogram(zdim_entries, bins=np.arange(0, np.max(zdim_entries)+1)) zdim_max = np.argmax(zdim_counts) if hint_opacity: # now we need to plot that zdim_max slice taking into account our colormap # create new axes axslice = pl.axes([left, bottom+height * 0.72, width/4., height/5.], axisbg='y') axslice.axis('off') sslice = np.zeros(dataXd.shape[1:3]) # XXX hardcoded assumption on dimcolor =1 sslice[:, : ] = np.arange(dimcolor_len)[None, :] # if there is time dimension -- choose minimal value across all values dataXd_mint = np.min(dataXd, axis=-1) if dataXd.ndim == 5 else dataXd sslice[dataXd_mint[0, ..., zdim_max] == 0] = -1 # reset those not in the picture to be "under" range axslice.imshow(sslice, alpha=hint_opacity, cmap=cm) else: # the scatter plot without colors to distinguish location ax_scatter.scatter(x, y, **sc_kwargs) if labels: ax_scatter.set_xlabel(labels[0]) ax_scatter.set_ylabel(labels[1]) # "unique" points on each of the axes if uniq: if np.sum(xnoty): ax_scatter.scatter(fill_nonfinites(data[0, np.where(xnoty)[0]]), fill_nonfinites(data[1, np.where(xnoty)[0]]), edgecolor='b', **sc_kwargs) if np.sum(ynotx): ax_scatter.scatter(fill_nonfinites(data[0, np.where(ynotx)[0]]), fill_nonfinites(data[1, np.where(ynotx)[0]]), edgecolor='g', **sc_kwargs) # Axes ax_scatter.plot((np.min(x), np.max(x)), (0, 0), 'r', alpha=0.5) ax_scatter.plot((0,0), (np.min(y), np.max(y)), 'r', alpha=0.5) if (mask is not None and not masked_opacity and np.sum(mask)): # if there is a non-degenerate mask which was not intended to be plotted, # take those values away while estimating min/max range _ = x[mask]; minx, maxx = np.min(_), np.max(_) _ = y[mask]; miny, maxy = np.min(_), np.max(_) del _ # no need to consume RAM # print "Here y range", miny, maxy else: minx, maxx = np.min(x), np.max(x) miny, maxy = np.min(y), np.max(y) # Process 'limits' option if isinstance(limits, str): limits = limits.lower() if limits == 'auto': overlap = min(maxx, maxy) - max(minx, miny) range_ = max(maxx, maxy) - min(minx, miny) limits = {True: 'same', False: 'per-axis'}[not range_ or overlap/float(range_) > 0.5] if limits == 'per-axis': same_range = False if xlim is None: # add some white border dx = (maxx - minx)/20. xlim = (minx-dx, maxx+dx) if ylim is None: dy = (maxy - miny)/20. ylim = (miny-dy, maxy+dy) elif limits == 'same': same_range = True # assign limits the numerical range limits = (np.min( [minx, miny] ), np.max( [maxx, maxy] )) else: raise ValueError("Do not know how to handle same_range=%r" % (limits,)) else: same_range = True # Let's now plot threshold lines if provided if thresholds is not None: stylekwargs = dict(colors='k', linestyles='dotted') if len(thresholds): ax_scatter.vlines(thresholds[0], ax_scatter.get_xlim()[0]*0.9, ax_scatter.get_xlim()[1]*0.9, **stylekwargs) if len(thresholds)>1: ax_scatter.hlines(thresholds[1], ax_scatter.get_ylim()[0]*0.9, ax_scatter.get_ylim()[1]*0.9, **stylekwargs) if same_range: # now determine nice limits by hand: binwidthx = binwidthy = binwidth = np.max(datainter)/51. # 0.25 minxy, maxxy = limits sgn = np.sign(minxy) xyrange = maxxy - minxy xyamax = np.max( [np.max(np.fabs(x)), np.max(np.fabs(y))] ) limn = sgn*( int(sgn*minxy/binwidth) - sgn) * binwidth limp = ( int(maxxy/binwidth) + 1) * binwidth ax_scatter.plot((limn*0.9, limp*0.9), (limn*0.9, limp*0.9), 'y--') if xlim is None: xlim = (limn, limp) if ylim is None: ylim = (limn, limp) binsx = binsy = bins = np.arange(limn, limp + binwidth, binwidth) else: binwidthx = (maxx - minx)/51. binwidthy = (maxy - miny)/51. binsx = np.arange(minx, maxx + binwidthx, binwidthx) binsy = np.arange(miny, maxy + binwidthy, binwidthy) if xlim is not None: ax_scatter.set_xlim( xlim ) if ylim is not None: ax_scatter.set_ylim( ylim ) # get values to plot for histogram and boxplot x_hist, y_hist = (x, y) if (mask is None or not np.sum(mask)) else (x_masked, y_masked) if np.any(binsx) and ax_hist_x is not None: ax_hist_x.xaxis.set_major_formatter(nullfmt) histx = ax_hist_x.hist(x_hist, bins=binsx, facecolor='b') ax_hist_x.set_xlim( ax_scatter.get_xlim() ) ax_hist_x.vlines(0, 0, 0.9*np.max(histx[0]), 'r') if np.any(binsy) and ax_hist_y is not None: ax_hist_y.yaxis.set_major_formatter(nullfmt) histy = ax_hist_y.hist(y_hist, bins=binsy, orientation='horizontal', facecolor='g') ax_hist_y.set_ylim( ax_scatter.get_ylim() ) ax_hist_y.hlines(0, 0, 0.9*np.max(histy[0]), 'r') rect_scatter = [left, bottom, width, height] # Box plots if ax_bp_x is not None: ax_bp_x.axis('off') bpx = ax_bp_x.boxplot(x_hist, vert=0) #'r', 0) ax_bp_x.set_xlim(ax_scatter.get_xlim()) if ax_bp_y is not None: ax_bp_y.axis('off') bpy = ax_bp_y.boxplot(y_hist, sym='g+') ax_bp_y.set_ylim(ax_scatter.get_ylim()) if statsline: # draw the text based on gca y1, y2 = ax_scatter.get_ylim(); x1, x2 = ax_scatter.get_xlim(); ax_scatter.text(0.5*(x1+x2), # center y2 - 0.02*(y2-y1), statsline, verticalalignment = "top", horizontalalignment="center") if title: pl.title(title) return pl.gcf() def plot_scatter_matrix(d, style='full', labels=None, fig=None, width_=6, **kwargs): """ Parameters ---------- width_ : float, optional Width for each subplot if no fig was provided """ n = len(d) if fig is None: fig = pl.figure(figsize=(width_*n, width_*n)) # predefine axes for the plots # 1st row -- histograms # next ones -- scatter plots axes = np.zeros(shape=(n, n), dtype=object) if style == 'upper_triang': # style with upper row -- hists # next -- upper triang only for r in xrange(n): for c in xrange(r, n): sp = pl.subplot(n, n, r*n+c+1) axes[r,c] = pl.gca() for d1 in xrange(0, n-1): for d2 in xrange(d1+1, n): # only upper triangle plot_scatter([d[i] for i in [d2, d1]], ax_scatter=axes[d1+1, d2], ax_hist_x=axes[0, d2] if d1==0 else None, ax_hist_y=None, bp_location='hist') elif style == 'full': nullfmt = pl.NullFormatter() # no labels # diagonal -- histograms for r in xrange(n): for c in xrange(n): sp = pl.subplot(n, n, r*n+c+1) axes[r, c] = pl.gca() for d1 in xrange(0, n): # we should unify the ranges of values displayed ylim = np.min(d[d1]), np.max(d[d1]) for d2 in xrange(0, n): if d1 == d2: continue xlim = np.min(d[d2]), np.max(d[d2]) # only upper triangle hint_opacity = kwargs.pop('hint_opacity', 0.9) if (d1==0 and d2==1) else 0 plot_scatter([d[d2], d[d1]], ax_scatter=axes[d1, d2], ax_hist_x=axes[d2, d2] if (d2==d1+1 or (d1==1 and d2==0)) else None, ax_hist_y=None, bp_location='hist', hint_opacity=hint_opacity, xlim=xlim, ylim=ylim, **kwargs ) # adjust slightly if not (d2==0 or (d1==0 and d2==1)): # not first column or in first row the first one # forget about y axis labels axes[d1, d2].yaxis.set_major_formatter(nullfmt) if not (d1==n-1 or (d2==n-1 and d1==n-2)): # not first row or in first column in the first one # forget about y axis labels axes[d1, d2].xaxis.set_major_formatter(nullfmt) if not (labels in (None, [])): assert len(labels) == n, "We should be provided all needed labels" for d1,l in enumerate(labels): axes[d1, 0].set_ylabel(l) for d1,l in enumerate(labels): axes[n-1,d1].set_xlabel(l) else: raise ValueError("Unknown style %s" % style) return fig, axes def unique_path_parts(*paths): paths_splits = [p.split(os.path.sep) for p in paths] minlen = min([len(x) for x in paths_splits]) paths_split = np.array([p.split(os.path.sep, minlen-1) for p in paths]).T paths_short = [] for p in paths_split: if len(np.unique(p)) > 1: # so do not match paths_short.append(list(p)) else: if not len(paths_short) or paths_short[-1][0] != '...': paths_short.append(['...']*len(p)) ret = [os.path.sep.join(p) for p in np.array(paths_short).T] return ret def _get_data(f): """Adapter to load data from various formats """ if f.endswith('.hdf5'): from mvpa2.base.hdf5 import h5load data = h5load(f).samples else: #if f.endswith('.nii.gz') or f.endswith('.img') or f.endswith('.hdr'): n = nb.load(f) data = n.get_data() # strip rudimentary 4th dimension if len(data.shape) == 4 and data.shape[-1] == 1: data = data[:, :, :, 0] return data def plot_scatter_files(files, mask_file=None, masked_opacity=0., mask_thresholds=None, volume=None, scales=None, return_data=False, thresholds=None, style='auto', **kwargs): """ Plot scatter plots based on data from files. Should work with volumetric file formats supported by nibabel and also .hdf5 files from PyMVPA Parameters ---------- files: iterable of strings Files to load mask_file: string, optional Mask file. 0-ed out elements considered to be masked out masked_opacity: float, optional By default masked out values are not plotted at all. Value in (0,1] will make them visible with this specified opacity mask_thresholds: int or list or tuple, optional A single (min) or two (lower, upper) values to decide which values to mask out (exclude). If lower < upper, excludes range [lower, upper]. if upper < lower, plots only values within [lower, upper] range. volume: int, None If multi-volume files provided, which volume to consider. Otherwise will plot for points from all volumes scales: iterable of floats, optional Scaling factors for the volumes return_data: bool, optional Flag to return loaded data as the output of this function call style: str, ('auto', 'full', 'pair1', 'upper_triang') Style of plotting -- full and upper_triang are the scatter matrix plots. With 'auto' chooses pair1 for 2 files, and full if more than 2 provided """ datas = [] labels_add = [] for ix, f in enumerate(files): data = _get_data(f) #else: # raise ValueError("Do not know how to handle %s" % f) if scales is not None and scales[ix]: data *= scales[ix] label = '' if volume is not None: if len(data.shape) > 4: assert(data.shape[3] == 1) data = data[:, :, :, 0, ...] if len(data.shape) > 3: data = data[:, :, :, volume] label += ' t=%i' % volume datas.append(data) labels_add.append(label) # Load mask if filename was specified if mask_file: mask = _get_data(mask_file) if mask_thresholds: mask_thresholds = np.atleast_1d(mask_thresholds) if len(mask_thresholds) == 1: mask[mask < mask_thresholds[0]] = 0 else: min_, max_ = mask_thresholds if min_ < max_: # e.g. (-3, 3) to exclude mask[(mask > min_) & (mask < max_)] = 0 else: # e.g. (3, -3) to exclude all > 3 mask[(mask > min_) | (mask < max_)] = 0 else: mask = None if style == 'auto': style = 'pair1' if len(datas) <= 2 else 'full' kwargs_orig = kwargs figs = [] if style == 'pair1': for i in xrange(1, len(datas)): data4d = np.asarray([datas[0], datas[i]]) #del datas # free up memory because above made a copy kwargs = kwargs_orig.copy() if not 'labels' in kwargs: kwargs['labels'] = unique_path_parts(files[0] + labels_add[0], files[i] + labels_add[i]) figs.append(plot_scatter(data4d, mask=mask, masked_opacity=masked_opacity, # TODO: **kwargs thresholds=thresholds, **kwargs)) elif style in ('full', 'upper_triang'): if not 'labels' in kwargs: kwargs['labels'] = unique_path_parts(*[f+l for f,l in zip(files, labels_add)]) figs = [plot_scatter_matrix(datas, style=style, mask=mask, masked_opacity=masked_opacity, thresholds=thresholds, **kwargs)] else: raise ValueError("Unknown style %s" % style) figs = figs[0] if len(figs) == 1 else figs if return_data: return figs, datas else: return figs pymvpa2-2.6.4/mvpa2/misc/plot/tools.py000066400000000000000000000021651323370031300175700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Various utilities to help plotting""" __docformat__ = 'restructuredtext' from mvpa2.base import externals externals.exists("pylab", raise_=True) import pylab as pl interactive_backends = ['GTKAgg', 'TkAgg'] # Backends can be modified only prior importing matplotlib, so it is # safe to just assign current backend right here mpl_backend = pl.matplotlib.get_backend() mpl_backend_isinteractive = mpl_backend in interactive_backends if mpl_backend_isinteractive: Pioff = pl.ioff def Pion(): """Little helper to call pl.draw() and pl.ion() if backend is interactive """ pl.draw() pl.ion() else: def _Pnothing(): """Dummy function which does nothing """ pass Pioff = Pion = _Pnothing pymvpa2-2.6.4/mvpa2/misc/plot/topo.py000066400000000000000000000171501323370031300174110ustar00rootroot00000000000000# emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # # The initial version of the code was contributed by Ingo Fründ and is # Coypright (c) 2008 by Ingo Fründ ingo.fruend@googlemail.com # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Plot parameter distributions on a head surface (topography plots).""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals if externals.exists("pylab", raise_=True): import pylab as pl if externals.exists("griddata", raise_=True): from mvpa2.support.griddata import griddata if externals.exists("scipy", raise_=True): from scipy.optimize import leastsq if externals.versions['numpy'] > '1.1.0': from numpy import ma else: from matplotlib.numerix import ma # TODO : add optional plotting labels for the sensors ##REF: Name was automagically refactored def plot_head_topography(topography, sensorlocations, plotsensors=False, resolution=51, masked=True, plothead=True, plothead_kwargs=None, **kwargs): """Plot distribution to a head surface, derived from some sensor locations. The sensor locations are first projected onto the best fitting sphere and finally projected onto a circle (by simply ignoring the z-axis). Parameters ---------- topography : array A vector of some values corresponding to each sensor. sensorlocations : (nsensors x 3) array 3D coordinates of each sensor. The order of the sensors has to match with the `topography` vector. plotsensors : bool If True, sensor will be plotted on their projected coordinates. No sensor are shown otherwise. plothead : bool If True, a head outline is plotted. plothead_kwargs : dict Additional keyword arguments passed to `plot_head_outline()`. resolution : int Number of surface samples along both x and y-axis. masked : bool If True, all surface sample extending to head outline will be masked. **kwargs All additional arguments will be passed to `pylab.imshow()`. Returns ------- (map, head, sensors) The corresponding matplotlib objects are returned if plotted, ie. if plothead is set to `False`, `head` will be `None`. map The colormap that makes the actual plot, a matplotlib.image.AxesImage instance. head What is returned by `plot_head_outline()`. sensors The dots marking the electrodes, a matplotlib.lines.Line2d instance. """ # give sane defaults if plothead_kwargs is None: plothead_kwargs = {} # error function to fit the sensor locations to a sphere def err(params): r, cx, cy, cz = params return (sensorlocations[:, 0] - cx) ** 2 \ + (sensorlocations[:, 1] - cy) ** 2 \ + (sensorlocations[:, 2] - cz) ** 2 \ - r ** 2 # initial guess of sphere parameters (radius and center) params = (1, 0, 0, 0) # do fit (r, cx, cy, cz), stuff = leastsq(err, params) # size of each square ssh = float(r) / resolution # half-size ss = ssh * 2.0 # full-size # Generate a grid and interpolate using the griddata module x = np.arange(cx - r, cx + r, ss) + ssh y = np.arange(cy - r, cy + r, ss) + ssh x, y = pl.meshgrid(x, y) # project the sensor locations onto the sphere sphere_center = np.array((cx, cy, cz)) sproj = sensorlocations - sphere_center sproj = r * sproj / np.c_[np.sqrt(np.sum(sproj ** 2, axis=1))] sproj += sphere_center # fit topology onto xy projection of sphere topo = griddata(sproj[:, 0], sproj[:, 1], np.ravel(np.array(topography)), x, y, interp='nn' if externals.versions['matplotlib'] < '1.4.0' else 'linear') # mask values outside the head if masked: notinhead = np.greater_equal((x - cx) ** 2 + (y - cy) ** 2, (1.0 * r) ** 2) topo = ma.masked_where(notinhead, topo) # show surface map = pl.imshow(topo, origin="lower", extent=(-r, r, -r, r), **kwargs) pl.axis('off') if plothead: # plot scaled head outline head = plot_head_outline(scale=r, shift=(cx/2.0, cy/2.0), **plothead_kwargs) else: head = None if plotsensors: # plot projected sensor locations # reorder sensors so the ones below plotted first # TODO: please fix with more elegant solution zenum = [x[::-1] for x in enumerate(sproj[:, 2].tolist())] zenum.sort() indx = [ x[1] for x in zenum ] sensors = pl.plot(sproj[indx, 0] - cx/2.0, sproj[indx, 1] - cy/2.0, 'wo') else: sensors = None return map, head, sensors ##REF: Name was automagically refactored def plot_head_outline(scale=1, shift=(0, 0), color='k', linewidth='5', **kwargs): """Plots a simple outline of a head viewed from the top. The plot contains schematic representations of the nose and ears. The size of the head is basically a unit circle for nose and ears attached to it. Parameters ---------- scale : float Factor to scale the size of the head. shift : 2-tuple of floats Shift the center of the head circle by these values. color : matplotlib color spec The color the outline should be plotted in. linewidth : int Linewidth of the head outline. **kwargs All additional arguments are passed to `pylab.plot()`. Returns ------- Matplotlib lines2D object can be used to tweak the look of the head outline. """ rmax = 0.5 # factor used all the time fac = 2 * np.pi * 0.01 # Koordinates for the ears EarX1 = -1 * np.array( [.497, .510, .518, .5299, .5419, .54, .547, .532, .510, rmax * np.cos(fac * (54 + 42))]) EarY1 = np.array( [.0655, .0775, .0783, .0746, .0555, -.0055, -.0932, -.1313, -.1384, rmax * np.sin(fac * (54 + 42))]) EarX2 = np.array( [rmax * np.cos(fac * (54 + 42)), .510, .532, .547, .54, .5419, .5299, .518, .510, .497] ) EarY2 = np.array( [rmax * np.sin(fac * (54 + 42)), -.1384, -.1313, -.0932, -.0055, .0555, .0746, .0783, .0775, .0655] ) # Coordinates for the Head HeadX1 = np.fromfunction( lambda x: rmax * np.cos(fac * (x + 2)), (21,)) HeadY1 = np.fromfunction( lambda y: rmax * np.sin(fac * (y + 2)), (21,)) HeadX2 = np.fromfunction( lambda x: rmax * np.cos(fac * (x + 28)), (21,)) HeadY2 = np.fromfunction( lambda y: rmax * np.sin(fac * (y + 28)), (21,)) HeadX3 = np.fromfunction( lambda x: rmax * np.cos(fac * (x + 54)), (43,)) HeadY3 = np.fromfunction( lambda y: rmax * np.sin(fac * (y + 54)), (43,)) # Coordinates for the Nose NoseX = np.array([.18 * rmax, 0, -.18 * rmax]) NoseY = np.array([rmax - 0.004, rmax * 1.15, rmax - 0.004]) # Combine to one X = np.concatenate((EarX2, HeadX1, NoseX, HeadX2, EarX1, HeadX3)) Y = np.concatenate((EarY2, HeadY1, NoseY, HeadY2, EarY1, HeadY3)) X *= 2 * scale Y *= 2 * scale X += shift[0] Y += shift[1] return pl.plot(X, Y, color=color, linewidth=linewidth) pymvpa2-2.6.4/mvpa2/misc/sampleslookup.py000066400000000000000000000060061323370031300203460ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to map and validate samples' origids into indices""" import numpy as np if __debug__: from mvpa2.base import debug class SamplesLookup(object): """Map to translate sample origids into unique indices. """ def __init__(self, ds): """ Parameters ---------- ds : Dataset Dataset for which to create the map """ # TODO: Generate origids and magic_id in Dataset!! # They are simply added here for development convenience, but they # should be removed. We should also consider how exactly to calculate # the magic ids and sample ids as this is not necessarily the fastest/ # most robust method --SG try: sample_ids = ds.sa.origids except AttributeError: # origids not yet generated if __debug__: debug('SAL', "Generating dataset origids in SamplesLookup for %(ds)s", msgargs=dict(ds=ds)) ds.init_origids('samples') # XXX may be both? sample_ids = ds.sa.origids try: self._orig_ds_id = ds.a.magic_id except AttributeError: ds.a.update({'magic_id': hash(ds)}) self._orig_ds_id = ds.a.magic_id if __debug__: debug('SAL', "Generating dataset magic_id in SamplesLookup for %(ds)s", msgargs=dict(ds=ds)) nsample_ids = len(sample_ids) self._map = dict(zip(sample_ids, range(nsample_ids))) if __debug__: # some sanity checks if len(self._map) != nsample_ids: raise ValueError, \ "Apparently samples' origids are not uniquely identifying" \ " samples in %s. You must change them so they are unique" \ ". Use ds.init_origids('samples')" % ds def __call__(self, ds): """ .. note: Will raise KeyError if lookup for sample_ids fails, or ds has not been mapped at all """ if (not 'magic_id' in ds.a) or ds.a.magic_id != self._orig_ds_id: raise KeyError, \ 'Dataset %s is not indexed by %s' % (ds, self) _map = self._map _origids = ds.sa.origids res = np.array([_map[i] for i in _origids]) if __debug__: debug('SAL', "Successful lookup: %(inst)s on %(ds)s having " "origids=%(origids)s resulted in %(res)s", msgargs=dict(inst=self, ds=ds, origids=_origids, res=res)) return res pymvpa2-2.6.4/mvpa2/misc/stats.py000066400000000000000000000347231323370031300166150ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Little statistics helper""" __docformat__ = 'restructuredtext' from mvpa2.base import externals if externals.exists('scipy', raise_=True): import scipy.stats as st # evaluate once the fact of life __scipy_prior0101 = externals.versions['scipy'] < '0.10.1' import numpy as np import copy def chisquare(obs, exp='uniform'): """Compute the chisquare value of a contingency table with arbitrary dimensions. Parameters ---------- obs : array Observations matrix exp : ('uniform', 'indep_rows') or array, optional Matrix of expected values of the same size as `obs`. If no array is given, then for 'uniform' -- evenly distributes all observations. In 'indep_rows' case contingency table takes into account frequencies relative across different columns, so, if the contingency table is predictions vs targets, it would account for dis-balance among different targets. Although 'uniform' is the default, for confusion matrices 'indep_rows' is preferable. Returns ------- tuple chisquare-stats, associated p-value (upper tail) """ obs = np.array(obs) # get total number of observations nobs = np.sum(obs) # if no expected value are supplied assume equal distribution if not isinstance(exp, np.ndarray): ones = np.ones(obs.shape, dtype=float) if exp == 'indep_rows': # multiply each column exp = np.sum(obs, axis=0)[None, :] * ones / obs.shape[0] elif exp == 'indep_cols': # multiply each row exp = np.sum(obs, axis=1)[:, None] * ones / obs.shape[1] elif exp == 'uniform': # just evenly distribute exp = nobs * np.ones(obs.shape, dtype=float) / np.prod(obs.shape) else: raise ValueError, \ "Unknown specification of expected values exp=%r" % (exp,) else: assert(exp.shape == obs.shape) # make sure to have floating point data exp = exp.astype(float) # compute chisquare value exp_zeros = exp == 0 exp_nonzeros = np.logical_not(exp_zeros) if np.sum(exp_zeros) != 0 and (obs[exp_zeros] != 0).any(): raise ValueError, \ "chisquare: Expected values have 0-values, but there are actual" \ " observations -- chi^2 cannot be computed" chisq = np.sum(((obs - exp) ** 2)[exp_nonzeros] / exp[exp_nonzeros]) # return chisq and probability (upper tail) # taking only the elements with something expected return chisq, st.chi2.sf(chisq, np.sum(exp_nonzeros) - 1) def _chk_asanyarray(a, axis): a = np.asanyarray(a) if axis is None: a = a.ravel() outaxis = 0 else: outaxis = axis return a, outaxis def ttest_1samp(a, popmean=0, axis=0, mask=None, alternative='two-sided'): """ Calculates the T-test for the mean of ONE group of scores `a`. This is a refinement for the :func:`scipy.stats.ttest_1samp` for the null hypothesis testing that the expected value (mean) of a sample of independent observations is equal to the given population mean, `popmean`. It adds ability to carry single tailed test as well as operate on samples with varying number of active measurements, as specified by `mask` argument. Since it is only a refinement and otherwise it should perform the same way as the original ttest_1samp -- the name was overloaded. Note ---- Initially it was coded before discovering scipy.mstats which should work with masked arrays. But ATM (scipy 0.10.1) its ttest_1samp does not support axis argument making it of limited use anyways. Parameters ---------- a : array_like sample observations popmean : float or array_like expected value in null hypothesis, if array_like than it must have the same shape as `a` excluding the axis dimension axis : int, optional, (default axis=0) Axis can equal None (ravel array first), or an integer (the axis over which to operate on a). mask : array_like, bool bool array to specify which measurements should participate in the test alternative : ('two-sided', 'greater', 'less') alternative two test Returns ------- t : float or array t-statistic prob : float or array p-value Examples -------- TODO """ # would also flatten if no axis specified a, axis = _chk_asanyarray(a, axis) if isinstance(a, np.ma.core.MaskedArray): if mask is not None: raise ValueError( "Provided array is already masked, so no additional " "mask should be provided") n = a.count(axis=axis) elif mask is not None: # Create masked array a = np.ma.masked_array(a, mask= ~np.asanyarray(mask)) n = a.count(axis=axis) else: # why bother doing anything? n = a.shape[axis] df = n - 1 d = np.mean(a, axis) - popmean # yoh: there is a bug in old (e.g. 1.4.1) numpy's while operating on # masked arrays -- for some reason refuses to compute var # correctly whenever only 2 elements are available and it is # multi-dimensional: # (Pydb) print np.var(a[:, 9:11], axis, ddof=1) # [540.0 --] # (Pydb) print np.var(a[:, 10:11], axis, ddof=1) # [--] # (Pydb) print np.var(a[:, 10], axis, ddof=1) # 648.0 v = np.var(a, axis, ddof=1) denom = np.sqrt(v / n) t = np.divide(d, denom) # t, prob might be full arrays if no masking was actually done def _filled(a): if isinstance(a, np.ma.core.MaskedArray): return a.filled(np.nan) else: return a t, prob = _ttest_finish(_filled(df), _filled(t), alternative=alternative) return t, prob def _ttest_finish(df, t, alternative): """Common code between all 3 t-test functions.""" dist_gen = st.distributions.t if alternative == 'two-sided': prob = dist_gen.sf(np.abs(t), df) * 2 # use np.abs to get upper alternative elif alternative == 'greater': prob = dist_gen.sf(t, df) elif alternative == 'less': prob = dist_gen.cdf(t, df) else: raise ValueError("Unknown alternative %r" % alternative) t_isnan = np.isnan(t) if np.any(t_isnan) and __scipy_prior0101: # older scipy's would return 0 for nan values of the argument # which is incorrect if np.isscalar(prob): prob = np.nan else: prob[t_isnan] = np.nan if t.ndim == 0: t = np.asscalar(t) return t, prob def binomial_proportion_ci(n, X, alpha=.05, meth='jeffreys'): """Compute the confidence interval for a set of Bernoulli trials Most, if not all, implemented methods assume statistical independence of the Bernoulli trial outcomes. Computed confidence intervals may be invalid if this condition is violated. This is a re-implementation of Matlab code originally written by Anderson Winkler and Tom Nichols. Parameters ---------- n : int Number of trials X : int or array Number of successful trials. This can be a 1D array. alpha : float Coverage of the confidence interval. For a 95% CI (default), use alpha = 0.05. meth : {'wald', 'wilson', 'agresti-coull', 'jeffreys', 'clopper-pearson', 'arc-sine', 'logit', 'anscombe'} Interval estimation method. Returns ------- 2-item array or 2D array With the lower and upper bound for the confidence interval. If X was given as a vector with p items a 2xp array is returned. References ---------- .. [1] Brown LD, Cai TT, DasGupta AA. Interval estimation for a binomial proportion. Statistical Science. 2001 16(2):101-133. http://brainder.org/2012/04/21/confidence-intervals-for-bernoulli-trials """ from scipy import stats from numpy import sqrt, sin, arcsin, log, exp n = float(n) X = np.asanyarray(X, dtype=float) k = stats.norm.ppf(1 - alpha / 2.) p = X / n # Proportion of successes q = 1 - p # Proportion of failures Xt = X + (k**2) / 2 # Modified number of sucesses nt = n + k**2 # Modified number of trials pt = Xt / nt # Modified proportion of successes qt = 1 - pt # Modified proportion of failures # be tolerant meth = meth.lower() if meth == 'wald': L = p - k * sqrt(p * q / n) U = p + k * sqrt(p * q / n) elif meth == 'wilson': a = k * sqrt(n * p * q + (k**2) / 4) / nt L = pt - a U = pt + a elif meth == 'agresti-coull': a = k * sqrt(pt * qt / nt) L = pt - a U = pt + a elif meth == 'jeffreys': L = stats.beta.ppf( alpha / 2, X + .5, n - X + .5) U = stats.beta.ppf(1 - alpha / 2, X + .5, n - X + .5) elif meth == 'clopper-pearson': L = stats.beta.ppf( alpha / 2, X, n - X + 1) U = stats.beta.ppf(1 - alpha / 2, X + 1, n - X) elif meth == 'arc-sine': pa = (X + 3 / 8) / (n + 3 / 4) as_ = arcsin(sqrt(pa)) a = k / (2 * sqrt(n)) L = sin(as_ - a)**2 U = sin(as_ + a)**2 elif meth == 'logit': lam = log(X / (n - X)) sqVhat = sqrt(n / (X * (n - X))) exlamL = exp(lam - k * sqVhat) exlamU = exp(lam + k * sqVhat) L = exlamL / (1 + exlamL) U = exlamU / (1 + exlamU) elif meth == 'anscombe': lam = log((X + .5) / (n - X + .5)) sqVhat = sqrt((n + 1) * (n + 2) / (n * (X + 1) * (n - X + 1))) exlamL = exp(lam - k * sqVhat) exlamU = exp(lam + k * sqVhat) L = exlamL / (1 + exlamL) U = exlamU / (1 + exlamU) else: raise ValueError('unknown confidence interval method') return np.array((L, U)) def binomial_proportion_ci_from_bool(arr, axis=0, *args, **kwargs): """Convenience wrapper for ``binomial_proportion_ci()`` with boolean input Parameters ---------- arr : array Boolean array axis : int *args, **kwargs All other arguments are passed on to binomial_proportion_ci(). """ return binomial_proportion_ci(arr.shape[axis], np.sum(arr, axis=axis), *args, **kwargs) def _mask_nan(x): return np.ma.masked_array(x, np.isnan(x)) def compute_ts_boxplot_stats(data, outlier_abs_minthresh=None, outlier_thresh=3.0, greedy_outlier=False, aggfx=None, *args): """Compute boxplot-like statistics across a set of time series. This function can handle missing values and supports data aggregation. Parameters ---------- data : array Typically a 2-dimensional array (series x samples). Multi-feature samples are supported (series x samples x features), but they have to be aggregated into a scalar. See ``aggfx``. outlier_abs_minthresh : float or None Absolute minimum threshold of outlier detection. Only value larger than this this threshold will ever be considered as an outlier outlier_thresh : float or None Outlier classification threshold in units of standard deviation. greedy_outlier : bool If True, an entire time series is marked as an outlier, if any of its observations matches the criterion. If False, only individual observations are marked as outlier. aggfx : functor or None Aggregation function used to collapse multi-feature samples into a scalar value *args : Additional arguments for ``aggfx``. Returns ------- tuple This 2-item tuple contains all computed statistics in the first item and all classified outliers in the second item. Statistics are computed for each time series observation across time series. Available information: mean value, median, standard deviation, minimum, maximum, 25% and 75% percentile, as well as number of non-outlier data points for each sample. The outlier data points are returned a masked array of the same size as the input data. All data points classified as non-outliers are masked. """ if len(data) < 2: raise ValueError("needs at least two time series") # data comes in as (subj x volume x parameter) orig_input = data # reduce data to L2-norm if aggfx is not None: data = np.apply_along_axis(aggfx, 2, data, *args) # need to deal with missing data data = _mask_nan(np.asanyarray(data)) if len(data.shape) < 2: raise ValueError("needs at least two observation per time series") # outlier detection meand = np.ma.mean(data, axis=0) stdd = np.ma.std(data, axis=0) outlierd = None if outlier_thresh > 0.0: # deal properly with NaNs so that they are not considered outliers outlier = np.logical_and(np.logical_not(np.isnan(data)), np.ma.greater( (np.absolute(data - meand)), outlier_thresh * stdd)) if outlier_abs_minthresh is not None: # apply absolute filter in addition outlier = np.logical_and(outlier, np.ma.greater(data, outlier_abs_minthresh)) if greedy_outlier: # expect outlier mask to all elements in that series outlier[np.sum(outlier, axis=1) > 0] = True # apply outlier mask to original data, but merge with existing mask # to keep NaNs out of the game data = np.ma.masked_array(data.data, mask=np.logical_or(data.mask, outlier)) outlierd = np.ma.masked_array(data.data, mask=np.logical_not(outlier)) res = {} res['mean'] = np.ma.mean(data, axis=0) res['median'] = np.ma.median(data, axis=0) res['std'] = np.ma.std(data, axis=0) res['min'] = np.ma.min(data, axis=0) res['max'] = np.ma.max(data, axis=0) res['p75'] = np.percentile(data, 75, axis=0) res['p25'] = np.percentile(data, 25, axis=0) res['n'] = len(data) - data.mask.sum(axis=0) return res, outlierd pymvpa2-2.6.4/mvpa2/misc/support.py000066400000000000000000000702561323370031300171740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support function -- little helpers in everyday life""" __docformat__ = 'restructuredtext' import itertools import math import random import re import os from os.path import join as pathjoin import sys from itertools import product # for SmartVersion from distutils.version import Version import numpy as np #import numpy.random as npr from mvpa2.base import warning from mvpa2.support.copy import copy, deepcopy from mvpa2.base.types import is_sequence_type if __debug__: from mvpa2.base import debug PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 builtins_mod = '__builtin__' if PY2 else 'builtins' ##REF: Name was automagically refactored def reuse_absolute_path(file1, file2, force=False): """Use path to file1 as the path to file2 is no absolute path is given for file2 Parameters ---------- force : bool if True, force it even if the file2 starts with / """ if not file2.startswith(os.path.sep) or force: # lets reuse path to file1 return pathjoin(os.path.dirname(file1), file2.lstrip(os.path.sep)) else: return file2 ##REF: Name was automagically refactored def transform_with_boxcar(data, startpoints, boxlength, offset=0, fx=np.mean): """This function extracts boxcar windows from an array. Such a boxcar is defined by a starting point and the size of the window along the first axis of the array (`boxlength`). Afterwards a customizable function is applied to each boxcar individually (Default: averaging). :param data: An array with an arbitrary number of dimensions. :type data: array :param startpoints: Boxcar startpoints as index along the first array axis :type startpoints: sequence :param boxlength: Length of the boxcar window in #array elements :type boxlength: int :param offset: Optional offset between the configured starting point and the actual begining of the boxcar window. :type offset: int :rtype: array (len(startpoints) x data.shape[1:]) """ if boxlength < 1: raise ValueError, "Boxlength lower than 1 makes no sense." # check for illegal boxes for sp in startpoints: if ( sp + offset + boxlength - 1 > len(data)-1 ) \ or ( sp + offset < 0 ): raise ValueError, \ 'Illegal box: start: %i, offset: %i, length: %i' \ % (sp, offset, boxlength) # build a list of list where each sublist contains the indexes of to be # averaged data elements selector = [ range( i + offset, i + offset + boxlength ) \ for i in startpoints ] # average each box selected = [ fx( data[ np.array(box) ], axis=0 ) for box in selector ] return np.array( selected ) def xunique_combinations(L, n): """Generator of unique combinations form a list L of objects in groups of size n. Parameters ---------- L : list list of unique ids n : int grouping size Adopted from Li Daobing http://code.activestate.com/recipes/190465/ (MIT license, according to activestate.com's policy) Also good discussions on combinations/variations/permutations with various implementations are available at http://mail.python.org/pipermail/python-list/2004-October/286054.html """ if n == 0: yield [] else: for i in xrange(len(L)-n+1): for cc in xunique_combinations(L[i+1:], n-1): yield [L[i]]+cc def __xrandom_unique_combinations(L, n, k=None): """Generator of unique combinations form a list L of objects in groups of size n produced in random order "Elegant" but incorrect since pretty much samples the "tail" Parameters ---------- L : list list of unique ids n : int grouping size k : int or None, optional limit number of combinations. All of combinations are produced if k is None (default) Based on xunique_combinations adopted from Li Daobing http://code.activestate.com/recipes/190465/ (MIT license, according to activestate.com's policy) """ if k is not None: # Just a helper for convenient limiting g = xrandom_unique_combinations(L, n) for i in xrange(k): yield next(g) elif n == 0: yield [] else: for i in npr.permutation(len(L)-n+1): for cc in xrandom_unique_combinations( npr.permutation(L[i+1:]), n-1): yield [L[i]]+cc def ncombinations(n, k): """ A fast way to calculate binomial coefficients by Andrew Dalke Source: http://stackoverflow.com/questions/3025162/statistics-combinations-in-python/3025194 Alternative implementations: scipy.misc.comb() -- approximation """ if 0 <= k <= n: ntok = 1 ktok = 1 for t in xrange(1, min(k, n - k) + 1): ntok *= n ktok *= t n -= 1 return ntok // ktok else: return 0 def xrandom_unique_combinations(L, n, k=None): """Generator of unique combinations form a list L of objects in groups of size n produced in random order Parameters ---------- L : list list of unique ids n : int grouping size k : int or None limit number of combinations. All of combinations are produced if k is None (default) """ ncomb = ncombinations(len(L), n) if k is None: k = ncomb if (ncomb < 1e6 or k > math.sqrt(ncomb)) \ and sys.version_info[:2] >= (2, 6): # so there is no sense really to mess with controlling for # non-repeats -- we can pre-generate all of them and just # choose needed number of random samples # Python2.5 doesn't have itertools.combinations for s in random.sample(list(itertools.combinations(L, n)), k): yield list(s) else: # Let's cycle through permutations while tracking # repeats seen = set() indexes = range(len(L)) # switch to indices so we could # reliably hash them while len(seen) < min(k, ncomb): np.random.shuffle(indexes) sample = tuple(sorted(indexes[:n])) if not (sample in seen): yield [L[x] for x in sample] seen.add(sample) def unique_combinations(L, n, sort=False): """Return unique combinations form a list L of objects in groups of size n. Parameters ---------- L : list list of unique ids n : int length of the subsets to return sort : bool, optional if True -- result is sorted before returning If you are intended to use only a small subset of possible combinations, it is advised to use a generator `xunique_combinations`. """ res = list(xunique_combinations(L, n)) if sort: res = sorted(res) return res def xrandom_iterprod(n, *seq): """Generate n random iterprod's from given sequences""" ls = map(len, seq) seen = set() if n > np.prod(ls): n = np.prod(ls) while len(seen) < n: sel = tuple(random.randint(0, l - 1) for l in ls) if sel in seen: continue seen.add(sel) yield [s[i] for s, i in zip(seq, sel)] ##REF: Name was automagically refactored def indent_doc(v): """Given a `value` returns a string where each line is indented Needed for a cleaner __repr__ output `v` - arbitrary """ return re.sub('\n', '\n ', str(v)) def idhash(val): """Craft unique id+hash for an object """ res = "%s" % id(val) if isinstance(val, list): val = tuple(val) elif isinstance(val, dict): val = tuple(val.items()) try: if sys.version_info[0] >= 3: # TODO: bytes is just a workaround and is slower # Anyway -- research joblib for hashing res += ":%s" % hash(bytes(val)) else: res += ":%s" % hash(buffer(val)) except: try: res += ":%s" % hash(val) except: pass pass return res ##REF: Name was automagically refactored def is_sorted(items): """Check if listed items are in sorted order. Parameters ---------- `items`: iterable container :return: `True` if were sorted. Otherwise `False` + Warning """ items_sorted = deepcopy(items) items_sorted.sort() equality = items_sorted == items # XXX yarik forgotten analog to isiterable if hasattr(equality, '__iter__'): equality = np.all(equality) return equality ##REF: Name was automagically refactored def is_in_volume(coord, shape): """For given coord check if it is within a specified volume size. Returns True/False. Assumes that volume coordinates start at 0. No more generalization (arbitrary minimal coord) is done to save on performance """ for i in xrange(len(coord)): if coord[i] < 0 or coord[i] >= shape[i]: return False return True def array_whereequal(a, x): """Reliable comparison for `numpy.ndarray` `numpy.ndarray` (as of 1.5.0.dev) fails to compare tuples in array of dtype object, e.g. >>> import numpy as np; a=np.array([1, (0,1)], dtype=object); print a == (0,1), a[1] == (0,1) [False False] True This function checks if dtype is object and just does list comprehension in that case """ if a.dtype is np.dtype('object'): return np.array([i==x for i in a], dtype=bool) else: return a == x def version_to_tuple(v): """Convert literal string into a tuple, if possible of ints Tuple of integers constructed by splitting at '.' or interleaves of numerics and alpha numbers """ if isinstance(v, basestring): v = map(str, v.split('.')) elif isinstance(v, (tuple, list)): # assure tuple pass else: raise ValueError, "Do not know how to treat version '%s'" % str(v) # Try to convert items into ints vres = [] regex = re.compile('(?P[0-9]*)' '(?P[~+-]*[A-Za-z]*)(?P.*)') for x in v: try: vres += [int(x)] except ValueError: # try to split into sequences of literals and numerics suffix = x resd_prev = {} while suffix != '': res = regex.search(suffix) if res: resd = res.groupdict() if resd == resd_prev: # we are in a loop, nothing meaningful would come out vres += [suffix] break resd_prev = resd if resd['numeric'] != '': vres += [int(resd['numeric'])] if resd['alpha'] != '': vres += [resd['alpha']] suffix = resd['suffix'] else: # We can't detect anything meaningful -- let it go as is vres += [suffix] break v = tuple(vres) return v class SmartVersion(Version): """A bit evolved comparison of versions The reason for not using python's distutil.version is that it seems to have no clue about somewhat common conventions of using '-dev' or 'dev' or 'rc' suffixes for upcoming releases (so major version does contain upcoming release already). So here is an ad-hoc and not as nice implementation """ def __reduce__(self): """Rudimentary __reduce__ because Version is not derived from object""" # parent class Version might not even assign any vstring when empty return self.__class__, (getattr(self, 'vstring', ''),) def parse(self, vstring): # Unicode gives grief on older releases and anyway arguably comparable if isinstance(vstring, unicode): vstring = str(vstring) self.vstring = vstring self.version = version_to_tuple(vstring) def __str__(self): try: return self.vstring except AttributeError: # Version.__init__ doesn't take care about assigning # .vstring if None is given, so let's just treat as it is # an empty string return "" def __cmp__(self, other): if isinstance(other, (str, unicode, tuple, list)): other = SmartVersion(other) elif isinstance(other, SmartVersion): pass elif isinstance(other, Version): other = SmartVersion(other.vstring) else: raise ValueError("Do not know how to treat version %s" % str(other)) if sys.version >= '3': def cmp(a, b): """Compatibility with Python3 -- regular (deprecated in 3) cmp operation should be sufficient for our needs""" return (a > b) - (a < b) else: # having above cmp overloads builtin cmp for this function so we # need manually rebind it or just resort to above cmp in general # (why not?) from __builtin__ import cmp # Do ad-hoc comparison of strings i = 0 # if any of the versions was not parsed (e.g. if None was provided), # comparison can't be performed really unless both have no version # assigned if (not hasattr(self, 'version')) and (not hasattr(other, 'version')): return 0 for v in (self, other): if not (hasattr(v, 'version')): raise ValueError('%s has no version information' % v) s, o = self.version, other.version regex_prerelease = re.compile('~|-?dev|-?rc|-?svn|-?pre|-?beta|-?alpha', re.I) for i in xrange(max(len(s), len(o))): if i < len(s): si = s[i] else: si = None if i < len(o): oi = o[i] else: oi = None if si == oi: continue for x,y,mult in ((si, oi, 1), (oi, si, -1)): if x is None: if isinstance(y, int): return -mult # we got '.1' suffix if isinstance(y, str): if (regex_prerelease.match(y)): return mult # so we got something to signal # pre-release, so first one won else: # otherwise the other one wins return -mult else: raise RuntimeError, "Should not have got here with %s" \ % y elif isinstance(x, int): if not isinstance(y, int): return mult return mult*cmp(x, y) # both are ints elif isinstance(x, str): if isinstance(y, str): return mult*cmp(x,y) return 0 if sys.version >= '3': # version.py logic in python3 does not rely on deprecated # __cmp__ but renames it into _cmp and wraps in those various # comparators... thus our good old __cmp__ should be ok for our # purposes here _cmp = __cmp__ ##REF: Name was automagically refactored def get_break_points(items, contiguous=True): """Return a list of break points. Parameters ---------- items : iterable list of items, such as chunks contiguous : bool if `True` (default) then raise Value Error if items are not contiguous, i.e. a label occur in multiple contiguous sets :raises: ValueError :return: list of indexes for every new set of items """ prev = None # pylint happiness event! known = [] """List of items which was already seen""" result = [] """Resultant list""" for index in xrange(len(items)): item = items[index] if item in known: if index > 0: if prev != item: # breakpoint if contiguous: raise ValueError, \ "Item %s was already seen before" % str(item) else: result.append(index) else: known.append(item) result.append(index) prev = item return result ##REF: Name was automagically refactored def rfe_history_to_maps(history): """Convert history generated by RFE into the array of binary maps Example: history2maps(np.array( [ 3,2,1,0 ] )) results in array([[ 1., 1., 1., 1.], [ 1., 1., 1., 0.], [ 1., 1., 0., 0.], [ 1., 0., 0., 0.]]) """ # assure that it is an array history = np.array(history) nfeatures, steps = len(history), max(history) - min(history) + 1 history_maps = np.zeros((steps, nfeatures)) for step in xrange(steps): history_maps[step, history >= step] = 1 return history_maps class MapOverlap(object): """Compute some overlap stats from a sequence of binary maps. When called with a sequence of binary maps (e.g. lists or arrays) the fraction of mask elements that are non-zero in a customizable proportion of the maps is returned. By default this threshold is set to 1.0, i.e. such an element has to be non-zero in *all* maps. Three additional maps (same size as original) are computed: * overlap_map: binary map which is non-zero for each overlapping element. * spread_map: binary map which is non-zero for each element that is non-zero in any map, but does not exceed the overlap threshold. * ovstats_map: map of float with the raw elementwise fraction of overlap. All maps are available via class members. """ def __init__(self, overlap_threshold=1.0): """Nothing to be seen here. """ self.__overlap_threshold = overlap_threshold # pylint happiness block self.overlap_map = None self.spread_map = None self.ovstats_map = None def __call__(self, maps): """Returns fraction of overlapping elements. """ ovstats = np.mean(maps, axis=0) self.overlap_map = (ovstats >= self.__overlap_threshold ) self.spread_map = np.logical_and(ovstats > 0.0, ovstats < self.__overlap_threshold) self.ovstats_map = ovstats return np.mean(ovstats >= self.__overlap_threshold) class Event(dict): """Simple class to define properties of an event. The class is basically a dictionary. Any properties can be passed as keyword arguments to the constructor, e.g.: >>> ev = Event(onset=12, duration=2.45) Conventions for keys: `onset` The onset of the event in some unit. `duration` The duration of the event in the same unit as `onset`. `label` E.g. the condition this event is part of. `chunk` Group this event is part of (if any), e.g. experimental run. `features` Any amount of additional features of the event. This might include things like physiological measures, stimulus intensity. Must be a mutable sequence (e.g. list), if present. """ _MUSTHAVE = ['onset'] def __init__(self, **kwargs): """ Parameters ---------- **kwargs : dict All keys to describe the Event to initialize its dict. """ # store everything dict.__init__(self, **kwargs) # basic checks for k in Event._MUSTHAVE: if not k in self: raise ValueError, "Event must have '%s' defined." % k ##REF: Name was automagically refactored def as_descrete_time(self, dt, storeoffset=False, offsetattr='offset'): """Convert `onset` and `duration` information into descrete timepoints. Parameters ---------- dt : float Temporal distance between two timepoints in the same unit as `onset` and `duration`. storeoffset : bool If True, the temporal offset between original `onset` and descretized onset is stored as an additional item. offsetattr : str The name of the attribute that is used to store the computed offset in case the `storeoffset` is enabled. Returns ------- A copy of the original `Event` with `onset` and optionally `duration` replaced by their corresponding descrete timepoint. The new onset will correspond to the timepoint just before or exactly at the original onset. The new duration will be the number of timepoints covering the event from the computed onset timepoint till the timepoint exactly at the end, or just after the event. Note again, that the new values are expressed as #timepoint and not in their original unit! """ dt = float(dt) onset = self['onset'] out = copy(self) # get the timepoint just prior the onset out['onset'] = int(np.floor(onset / dt)) if storeoffset: # compute offset offset = onset - (out['onset'] * dt) out[offsetattr] = offset if 'duration' in out: # how many timepoint cover the event (from computed onset # to the one timepoint just after the end of the event out['duration'] = int(np.ceil((onset + out['duration']) / dt) \ - out['onset']) return out def value2idx(val, x, solv='round'): """Convert a value into an index of the closes matching array element. Parameters ---------- val : scalar Value that is to be converted. x : array or sequence One-dimensional array whose elements are used for comparision. solv : {'round', 'floor', 'ceil'} Resolver strategie: absolute closest element (round), closest smaller element (floor), or closest larger element (ceil). Returns ------- int """ # distance to val x = np.asanyarray(x) - val if solv == 'round': pass elif solv == 'ceil': x[x<0] = np.inf elif solv == 'floor': x[x>0] = np.inf else: ValueError("Unkown resolving method '%s'." % solv) x = np.abs(x) idx = np.argmin(x) return idx def mask2slice(mask): """Convert a boolean mask vector into an equivalent slice (if possible). Parameters ---------- mask: boolean array The mask. Returns ------- slice or boolean array If possible the boolean mask is converted into a `slice`. If this is not possible the unmodified boolean mask is returned. """ # the filter should be a boolean array # TODO Could be easily extended to also accept index arrays if not len(mask): raise ValueError("Got an empty mask.") # get indices of non-zero filter elements idx = mask.nonzero()[0] if not len(idx): return slice(0) idx_start = idx[0] idx_end = idx[-1] + 1 idx_step = None if len(idx) > 1: # we need to figure out if there is a regular step-size # between elements stepsizes = np.unique(idx[1:] - idx[:-1]) if len(stepsizes) > 1: # multiple step-sizes -> slicing is not possible -> return # orginal filter return mask else: idx_step = stepsizes[0] sl = slice(idx_start, idx_end, idx_step) if __debug__: debug("SPL", "Boolean mask conversion to slice is possible (%s)." % sl) return sl def get_limit_filter(limit, collection): """Create a filter array from a limit definition. Parameters ----------- limit : None or str or list or dict If ``None`` all elements will be included in the filter. If a single attribute name is given, its unique values will be used to define chunks of data that are marked in the filter as unique integers. If a list given, then combination of those attributes is used as a pair. Finally, if a dictionary is provided, its keys define attribute names and its values (single value or sequence thereof) attribute value, where all key-value combinations across all given items define a "selection" of elements to be included in the filter (OR combination). collection : Collection Dataset attribute collection instance that contains all attributes referenced in the limit specification, as well as defines the shape of the filter. Returns ------- array This array is either boolean, where a `True` elements represent including in the filter, or the array is numerical, where its unique integer values define individual chunks of a filter. """ attr_length = collection.attr_length if limit is None: # no limits limit_filter = np.ones(attr_length, dtype='bool') elif isinstance(limit, str): # use the unique values of this attribute to permute each chunk # individually lattr = collection[limit] lattr_data = lattr.value limit_filter = np.zeros(attr_length, dtype='int') for i, uv in enumerate(lattr.unique): limit_filter[lattr_data == uv] = i elif isinstance(limit, list): limit = list(set(limit)) # so if someone insane specified the same attr twice limit_filter = np.zeros(attr_length, dtype='int') for i, uvs in enumerate(product(*(collection[x].unique for x in limit))): uv_filter = np.ones(attr_length, dtype=bool) for l, uv in zip(limit, uvs): np.logical_and(uv_filter, collection[l].value==uv, out=uv_filter) limit_filter[uv_filter] = i elif isinstance(limit, dict): limit_filter = np.zeros(attr_length, dtype='bool') for a in limit: if is_sequence_type(limit[a]): for v in limit[a]: # enable the samples matching the value 'v' of the # current limit attribute 'a' limit_filter[collection[a].value == v] = True else: limit_filter[collection[a].value == limit[a]] = True else: raise RuntimeError("Unhandled condition") return limit_filter def get_nelements_per_value(data): """Returns the number of elements per unique value of some sequence. Parameters ---------- data : sequence This can be any sequence. In addition also ArrayCollectables are supported and this function will make use of any available pre-cached list of unique values. Returns ------- dict with the number of elements (value) per unique value (key) in the sequence. """ if hasattr(data, 'unique'): # if this is an ArrayAttribute save some time by using pre-cached unique # values uniquevalues = data.unique values = data.value else: uniquevalues = np.unique(data) values = data # use dictionary to cope with arbitrary values result = dict(zip(uniquevalues, [ 0 ] * len(uniquevalues))) for l in values: result[l] += 1 return result # inspired by get_random_state function/approach in scikit.learn def get_rng(r=None): """Return instantiated numpy.random.RandomState given r. If r is None, return numpy.random singleton, so it will not be reinitialized for each invocation of `get_random_state`. If r is int, it is used to seed a new numpy.random.RandomState, so you would be guaranteed to get reproducible random operations upon each invocation of the function using get_random_state If r is an existing numpy.random.RandomState instance, it simply will be returned and thus reused, possibly across multiple calls to the object using this get_random_state. """ if isinstance(r, np.random.RandomState): return r elif r is None or r is np.random: return np.random else: # try to seed a new state return np.random.RandomState(r)pymvpa2-2.6.4/mvpa2/misc/surfing/000077500000000000000000000000001323370031300165515ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/misc/surfing/COPYRIGHT000066400000000000000000000033671323370031300200550ustar00rootroot00000000000000Copyright (c) 2012, Nikolaas N. Oosterhof All rights reserved. Parts of this software are inspired by the 'surfing' matlab toolbox: Copyright (c) 2009-2012 Nikolaas N. Oosterhof, Tobias Wiestler, Joern Diedrichsen. See http://surfing.sourceforge.net for details. 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. 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 OWNER 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. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. pymvpa2-2.6.4/mvpa2/misc/surfing/__init__.py000066400000000000000000000012331323370031300206610ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for surfing (surface-based information mapping)""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.misc.surfing') from mvpa2.misc.surfing import * if __debug__: debug('INIT', 'mvpa2.misc.surfing end') pymvpa2-2.6.4/mvpa2/misc/surfing/queryengine.py000066400000000000000000000745671323370031300215010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """QueryEngine for querying feature ids based on the surface nodes References ---------- NN Oosterhof, T Wiestler, PE Downing, J Diedrichsen (2011). A comparison of volume-based and surface-based multi-voxel pattern analysis. Neuroimage, 56(2), pp. 593-600 'Surfing' toolbox: http://surfing.sourceforge.net (and the associated documentation) """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base.dochelpers import _repr_attrs, borrowkwargs from mvpa2.base.dataset import AttrDataset from mvpa2.misc.neighborhood import QueryEngineInterface from mvpa2.misc.surfing import volgeom, surf_voxel_selection from mvpa2.base import warning class SurfaceQueryEngine(QueryEngineInterface): ''' Query-engine that maps center nodes to indices of features (nodes) that are near each center node. This class is for mappings from surface to surface features; for mappings from surface to voxel features, use SurfaceVerticesQueryEngine. ''' def __init__(self, surface, radius, distance_metric='dijkstra', fa_node_key='node_indices'): '''Make a new SurfaceQueryEngine Parameters ---------- surface: surf.Surface surface object radius: float size of neighborhood. distance_metric: str 'euclidean' or 'dijkstra' (default). fa_node_key: str Key for feature attribute that contains node indices (default: 'node_indices'). Notes ----- After training this instance on a dataset and calling it with self.query_byid(vertex_id) as argument, ''' self.surface = surface self.radius = radius self.distance_metric = distance_metric self.fa_node_key = fa_node_key self._vertex2feature_map = None allowed_metrics = ('dijkstra', 'euclidean') if not self.distance_metric in allowed_metrics: raise ValueError('distance_metric %s has to be in %s' % (self.distance_metric, allowed_metrics)) if self.distance_metric == 'dijkstra': # Pre-compute neighbor information (and ignore the output). surface.neighbors def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(SurfaceQueryEngine, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['surface']) + _repr_attrs(self, ['radius']) + _repr_attrs(self, ['distance_metric'], default='dijkstra') + _repr_attrs(self, ['fa_node_key'], default='node_indices')) def __reduce__(self): return (self.__class__, (self.surface, self.radius, self.distance_metric, self.fa_node_key), dict(_vertex2feature_map=self._vertex2feature_map)) def __str__(self): return '%s(%s, radius=%s, distance_metric=%s, fa_node_key=%s)' % \ (self.__class__.__name__, self.surface, self.radius, self.distance_metric, self.fa_node_key) def _check_trained(self): if self._vertex2feature_map is None: raise ValueError('Not trained on dataset: %s' % self) @property def ids(self): self._check_trained() return self._vertex2feature_map.keys() def untrain(self): self._vertex2feature_map = None def train(self, ds): ''' Train the queryengine Parameters ---------- ds: Dataset dataset with surface data. It should have a field .fa.node_indices that indicates the node index of each feature. ''' fa_key = self.fa_node_key nvertices = self.surface.nvertices nfeatures = ds.nfeatures if not fa_key in ds.fa.keys(): raise ValueError('Attribute .fa.%s not found.', fa_key) vertex_ids = ds.fa[fa_key].value.ravel() # check that vertex_ids are not outside 0..nfeatures delta = np.setdiff1d(vertex_ids, np.arange(nvertices)) if len(delta): raise ValueError("Vertex id '%s' found that is not in " "np.arange(%d)" % (delta[0], nvertices)) # vertex_ids can have multiple occurences of the same node index # for different features, hence use a list. # initialize each vertex with an empty list self._vertex2feature_map = v2f = dict((vertex_id, list()) for vertex_id in xrange(nvertices)) for feature_id, vertex_id in enumerate(vertex_ids): v2f[vertex_id].append(feature_id) def query(self, **kwargs): raise NotImplementedError def query_byid(self, vertex_id): ''' Return feature ids of features near a vertex Parameters ---------- vertex_id: int Index of vertex (i.e. node) on the surface Returns ------- feature_ids: list of int Indices of features in the neighborhood of the vertex indexed by 'vertex_id' ''' self._check_trained() if vertex_id < 0 or vertex_id >= self.surface.nvertices or \ round(vertex_id) != vertex_id: raise KeyError('vertex_id should be integer in range(%d)' % self.surface.nvertices) nearby_nodes = self.surface.circlearound_n2d(vertex_id, self.radius, self.distance_metric) v2f = self._vertex2feature_map return sum((v2f[node] for node in nearby_nodes), []) class SurfaceRingQueryEngine(SurfaceQueryEngine): ''' Query-engine that maps center nodes to indices of features (nodes) that are inside a ring around each center node. ''' @borrowkwargs(SurfaceQueryEngine) def __init__(self, inner_radius, include_center=False, **kwargs): '''Make a new SurfaceRingQueryEngine Parameters ---------- inner_radius: float size of inner neighborhood to avoid. include_center: bool whether to include center node in the neighborhood. If True, first element of the neighborhood will be the center node, or nearest to center node if center node is not in the dataset. Default: False ''' self.inner_radius = inner_radius self.include_center = include_center SurfaceQueryEngine.__init__(self, **kwargs) if self.inner_radius >= self.radius: raise ValueError("Inner radius has to be smaller than radius.") def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(SurfaceRingQueryEngine, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['inner_radius']) + _repr_attrs(self, ['include_center'])) def _check_trained(self): if self._vertex2feature_map is None: raise ValueError('Not trained on dataset: %s' % self) @property def ids(self): self._check_trained() return self._vertex2feature_map.keys() def untrain(self): self._vertex2feature_map = None def train(self, ds): ''' Train the queryengine Parameters ---------- ds: Dataset dataset with surface data. It should have a field .fa.node_indices that indicates the node index of each feature. ''' super(SurfaceRingQueryEngine, self).train(ds) def query(self, **kwargs): raise NotImplementedError def query_byid(self, vertex_id): ''' Return feature ids of features near a vertex Parameters ---------- vertex_id: int Index of vertex (i.e. node) on the surface Returns ------- feature_ids: list of int Indices of features in the neighborhood of the vertex indexed by 'vertex_id' ''' self._check_trained() if vertex_id < 0 or vertex_id >= self.surface.nvertices or \ round(vertex_id) != vertex_id: raise KeyError('vertex_id should be integer in range(%d)' % self.surface.nvertices) nearby_nodes = self.surface.circlearound_n2d(vertex_id, self.radius, self.distance_metric) v2f = self._vertex2feature_map # Sorting nodes based on distance to center node to work around # the problem with add_center_fa in Searchlight nearby_nodes_keys = sorted(nearby_nodes, key=nearby_nodes.__getitem__) neighborhood = [] if self.include_center and vertex_id in nearby_nodes_keys: neighborhood = v2f[vertex_id] return sum((v2f[node] for node in nearby_nodes_keys if nearby_nodes[node] > self.inner_radius), neighborhood) class SurfaceVerticesQueryEngine(QueryEngineInterface): ''' Query-engine that maps center nodes to indices of features (voxels) that are near each center node. In a typical use case such an instance is generated using the function 'disc_surface_queryengine' This class is for mappings from surface to voxel features; for mappings from surface to surface features, use SurfaceQueryEngine. ''' def __init__(self, voxsel, space='voxel_indices', add_fa=None): '''Makes a new SurfaceVerticesQueryEngine Parameters ---------- voxsel: volume_mask_dict.VolumeMaskDictionary mapping from center node indices to indices of voxels in a searchlight space: str (default: 'voxel_indices') defines by which space voxels are indexed. add_fa: list of str additional feature attributes that should be returned when this instance is called with a center node id. ''' super(SurfaceVerticesQueryEngine, self).__init__() self.voxsel = voxsel self.space = space self._map_voxel_coord = None self._add_fa = add_fa def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] return super(SurfaceVerticesQueryEngine, self).__repr__( prefixes=prefixes + _repr_attrs(self, ['voxsel']) + _repr_attrs(self, ['space'], default='voxel_indices') + _repr_attrs(self, ['add_fa'], [])) def __reduce__(self): return (self.__class__, (self.voxsel, self.space, self._add_fa), dict(_map_voxel_coord=self._map_voxel_coord)) def __str__(self): return '%s(%s, space=%s, add_fa=%s)' % (self.__class__.__name__, self.voxsel, self.space, self.add_fa) @property def ids(self): return self.voxsel.keys() def train(self, dataset): '''Train the query engine on a dataset''' vg = self.voxsel.volgeom # We are creating a map from big unmasked indices of voxels # known to voxsel into the dataset's feature indexes. # We verify that the current dataset has the necessary # features (i.e. are not masked out) and that the volume # geometry matches that of the original voxel selection vg_ds = None try: vg_ds = volgeom.from_any(dataset) except: vg_ds = None if vg_ds: eps = .0001 if np.max(np.abs(vg_ds.affine - vg.affine)) > eps: raise ValueError("Mismatch in affine matrix: %r !+ %r" % (vg_ds.affine, vg.affine)) if not vg_ds.same_shape(vg): raise ValueError("Mismatch in shape: (%s,%s,%s) != " "(%s,%s,%s)" % (vg_ds.shape[:3], vg.shape[:3])) else: warning("Could not find dataset volume geometry for %s" % dataset) self._map_voxel_coord = map_voxel_coord = {} long_is = vg.ijk2lin(dataset.fa[self.space].value) long_is_invol = vg.contains_lin(long_is) for i, long_i in enumerate(long_is): if not long_is_invol[i]: raise ValueError('Feature id %d (with voxel id %d)' ' is not in the (possibly masked) ' 'volume geometry %r)' % (i, long_i, vg)) if long_i in map_voxel_coord: map_voxel_coord[long_i].append(i) else: map_voxel_coord[long_i] = [i] def untrain(self): self._map_voxel_coord = None def query_byid(self, vertexid): """Given a vertex ID give us indices of dataset features (voxels) Parameters ---------- vertexid: int Index of searchlight center vertex on the surface. This value should be an element in self.ids Returns ------- voxel_ids: list of int or AttrDataset The linear indices of voxels near the vertex with index vertexid. If the instance was constructed with add_fa=None, then voxel_ids is a list; otherwise it is a AttrDataset with additional feature attributes stored in voxel_ids.fa. """ if self._map_voxel_coord is None: raise ValueError("No voxel mapping - did you train?") voxel_unmasked_ids = self.voxsel.get(vertexid) # map into dataset voxel_dataset_ids = [self._map_voxel_coord[i] for i in voxel_unmasked_ids] voxel_dataset_ids_flat = sum(voxel_dataset_ids, []) if self._add_fa is not None: # optionally add additional information from voxsel ds = AttrDataset(np.asarray(voxel_dataset_ids_flat)[np.newaxis]) for n in self._add_fa: fa_values = self.voxsel.get_aux(vertexid, n) assert(len(fa_values) == len(voxel_dataset_ids)) ds.fa[n] = sum([[x] * len(ids) for x, ids in zip(fa_values, voxel_dataset_ids)], []) return ds return voxel_dataset_ids_flat def query(self, **kwargs): raise NotImplementedError def get_masked_nifti_image(self, center_ids=None): '''Return a NIfTI image binary mask with voxels covered by searchlights Parameters ---------- center_ids: list or None Indices of center ids for which the associated masks must be used. If None, all center_ids are used. Returns ------- img: nibabel.Nifti1Image Nifti image with value zero for voxels that we not selected, and non-zero values for selected voxels. Notes ----- When using surface-based searchlights, a use case of this function is to get the voxels that were associated with the searchlights in a subset of all nodes on a cortical surface. ''' msk = self.voxsel.get_mask(keys=center_ids) import nibabel as nb img = nb.Nifti1Image(msk, self.voxsel.volgeom.affine) return img def linear_voxel_id2feature_id(self, linear_voxel_id): if type(linear_voxel_id) in (list, tuple): return map(self.linear_voxel_id2feature_id, linear_voxel_id) return self._map_voxel_coord[linear_voxel_id] def feature_id2linear_voxel_ids(self, feature_id): if type(feature_id) in (list, tuple): return map(self.feature_id2linear_voxel_ids, feature_id) return [i for i, j in self._map_voxel_coord.iteritems() if feature_id in j] def feature_id2nearest_vertex_id(self, feature_id, fallback_euclidean_distance=False): '''Compute the index of the vertex nearest to a given voxel. Parameters ---------- feature_id: int Feature index (referring to a voxel). fallback_euclidean_distance: bool (default: False) If the voxel indexed by feature_id was not selected by any searchlight, then None is returned if fallback_euclidean_distance is False, but vertex_id with the nearest Euclidean distance is returned if True. Returns ------- vertex_id: int Vertex index of vertex nearest to the feature with id feature_id. By default this function only considers vertices that are in one or more searchlights ''' if type(feature_id) in (list, tuple): return map(self.feature_id2nearest_vertex_id, feature_id) lin_voxs = self.feature_id2linear_voxel_ids(feature_id) return self.voxsel.target2nearest_source(lin_voxs, fallback_euclidean_distance=fallback_euclidean_distance) def vertex_id2nearest_feature_id(self, vertex_id): '''Compute the index of the voxel nearest to a given vertex. Parameters ---------- vertex_id: int Vertex id (referring to a node on the surface). Returns ------- feature_id: int Index of feature nearest to the vertex with id vertex_id. Notes ----- This function only considers feature ids that are selected by at least one vertex_id.. ''' if type(vertex_id) in (list, tuple): return map(self.vertex_id2nearest_feature_id, vertex_id) lin_vox = self.voxsel.source2nearest_target(vertex_id) return self.linear_voxel_id2feature_id(lin_vox) def _set_add_fa(self, add_fa): if add_fa is not None: if not set(self.voxsel.aux_keys()).issuperset(add_fa): raise ValueError( "add_fa should list only those known to voxsel %s" % self.voxsel) self._add_fa = add_fa add_fa = property(fget=lambda self:self._add_fa, fset=_set_add_fa) class SurfaceVoxelsQueryEngine(SurfaceVerticesQueryEngine): ''' Query-engine that maps center voxels (indexed by feature ids) to indices of features (voxels) that are near each center voxel. In a typical use case such an instance is generated using the function 'disc_surface_queryengine' with the output_space='voxels' argument. For a mapping from center nodes (on a surface) to voxels, consider SurfaceVerticesQueryEngine. ''' def __init__(self, voxsel, space='voxel_indices', add_fa=None, fallback_euclidean_distance=True): '''Makes a new SurfaceVoxelsQueryEngine Parameters ---------- voxsel: volume_mask_dict.VolumeMaskDictionary mapping from center node indices to indices of voxels in a searchlight space: str (default: 'voxel_indices') defines by which space voxels are indexed. add_fa: list of str additional feature attributes that should be returned when this instance is called with a center node id. fallback_euclidean_distance: bool (default: True) If True then every feature id will have voxels associated with it. That means that the number of self.ids is then equal to the number of features as the input dataset. If False, only feature ids that are selected by at least one searchlight are used. The number of self.ids is then equal to the number of voxels that are selected by at least one searchlight. ''' super(SurfaceVoxelsQueryEngine, self).__init__(voxsel=voxsel, space=space, add_fa=add_fa) self._feature_id2vertex_id = None self.fallback_euclidean_distance = fallback_euclidean_distance def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = prefixes + _repr_attrs(self, ['fallback_euclidean_distance'], default=False) return super(SurfaceVoxelsQueryEngine, self).__repr__( prefixes=prefixes_) def __reduce__(self): return (self.__class__, (self.voxsel, self.space, self._add_fa, self.fallback_euclidean_distance), dict(_feature_id2vertex_id=self._feature_id2vertex_id)) @property def ids(self): if self._feature_id2vertex_id is None: raise ValueError("No feature id mapping. Did you train?") return self._feature_id2vertex_id.keys() def query_byid(self, feature_id): '''Query the engine using a feature id''' vertex_id = self._feature_id2vertex_id[feature_id] return super(SurfaceVoxelsQueryEngine, self).query_byid(vertex_id) def train(self, ds): '''Train the query engine on a dataset''' super(SurfaceVoxelsQueryEngine, self).train(ds) # Compute the mapping from voxel (feature) ids to node ids fallback = self.fallback_euclidean_distance if fallback: # can use any feature id in ds feature_ids = range(ds.nfeatures) else: # see which feature ids were mapped to feature_ids = set() for v in self._map_voxel_coord.itervalues(): feature_ids.update(set(v)) f = lambda x:self.feature_id2nearest_vertex_id(x, fallback) fv = [(fid, f(fid)) for fid in feature_ids] # in the case of not fallback, some feature ids do not map to # a voxel id (i.e. they are mapped to None). Remove those from the # output self._feature_id2vertex_id = dict((f, v) for f, v in fv if v is not None) def untrain(self): super(SurfaceVoxelsQueryEngine, self).untrain(ds) self._feature_id2vertex_id = None def get_masked_nifti_image(self, center_ids=None): ''' Returns a nifti image indicating which voxels are included in one or more searchlights. Parameters ---------- center_ids: list or None Indices of center ids for which the associated masks must be used. If None, all center_ids are used. Returns ------- img: nibabel.Nifti1Image Nifti image with value zero for voxels that we not selected, and non-zero values for selected voxels. Notes ----- When using surface-based searchlights, a use case of this function is to get the voxels that were associated with the searchlights in a subset of all nodes on a cortical surface. ''' if center_ids is None: center_ids = self.ids vertex_ids = [self._feature_id2vertex_id[center_id] for center_id in center_ids] parent = super(SurfaceVoxelsQueryEngine, self) return parent.get_masked_nifti_image(center_ids=vertex_ids) def disc_surface_queryengine(radius, volume, white_surf, pial_surf, source_surf=None, source_surf_nodes=None, volume_mask=False, distance_metric='dijkstra', start_mm=0, stop_mm=0, start_fr=0., stop_fr=1., nsteps=10, eta_step=1, add_fa=None, nproc=None, outside_node_margin=None, results_backend=None, tmp_prefix='tmpvoxsel', output_modality='surface', node_voxel_mapping='maximal'): """ Voxel selection wrapper for multiple center nodes on the surface WiP XXX currently the last parameter 'output_modality' determines what kind of query engine is returned - is that bad? XXX: have to decide whether to use minimal_voxel_mapping=True as default Parameters ---------- radius: int or float Size of searchlight. If an integer, then it indicates the number of voxels. If a float, then it indicates the radius of the disc volume: Dataset or NiftiImage or volgeom.Volgeom Volume in which voxels are selected. white_surf: str of surf.Surface Surface of white-matter to grey-matter boundary, or filename of file containing such a surface. pial_surf: str of surf.Surface Surface of grey-matter to pial-matter boundary, or filename of file containing such a surface. source_surf: surf.Surface or None Surface used to compute distance between nodes. If omitted, it is the average of the gray and white surfaces. source_surf_nodes: list of int or numpy array or None Indices of nodes in source_surf that serve as searchlight center. By default every node serves as a searchlight center. volume_mask: None (default) or False or int Mask from volume to apply from voxel selection results. By default no mask is applied. If volume_mask is an integer k, then the k-th volume from volume is used to mask the data. If volume is a Dataset and has a property volume.fa.voxel_indices, then these indices are used to mask the data, unless volume_mask is False or an integer. distance_metric: str Distance metric between nodes. 'euclidean' or 'dijksta' (default) start_fr: float (default: 0) Relative start position of line in gray matter, 0.=white surface, 1.=pial surface stop_fr: float (default: 1) Relative stop position of line (as in start_fr) start_mm: float (default: 0) Absolute start position offset (as in start_fr) stop_mm: float (default: 0) Absolute start position offset (as in start_fr) nsteps: int (default: 10) Number of steps from white to pial surface eta_step: int (default: 1) After how many searchlights an estimate should be printed of the remaining time until completion of all searchlights add_fa: None or list of strings Feature attributes from a dataset that should be returned if the queryengine is called with a dataset. nproc: int or None Number of parallel threads. None means as many threads as the system supports. The pprocess is required for parallel threads; if it cannot be used, then a single thread is used. outside_node_margin: float or None (default) By default nodes outside the volume are skipped; using this parameters allows for a marign. If this value is a float (possibly np.inf), then all nodes within outside_node_margin Dijkstra distance from any node within the volume are still assigned associated voxels. If outside_node_margin is True, then a node is always assigned voxels regardless of its position in the volume. results_backend : 'native' or 'hdf5' or None (default). Specifies the way results are provided back from a processing block in case of nproc > 1. 'native' is pickling/unpickling of results by pprocess, while 'hdf5' would use h5save/h5load functionality. 'hdf5' might be more time and memory efficient in some cases. If None, then 'hdf5' if used if available, else 'native'. tmp_prefix : str, optional If specified -- serves as a prefix for temporary files storage if results_backend == 'hdf5'. Thus can specify the directory to use (trailing file path separator is not added automagically). output_modality: 'surface' or 'volume' (default: 'surface') Indicates whether the output is surface-based node_voxel_mapping: 'minimal' or 'maximal' If 'minimal' then each voxel is associated with at most one node. If 'maximal' it is associated with as many nodes that contain the voxel (default: 'maximal') Returns ------- qe: SurfaceVerticesQueryEngine Query-engine that maps center nodes to indices of features (voxels) that are near each center node. If output_modality=='volume' then qe is of type subclass SurfaceVoxelsQueryEngine. """ modality2class = dict(surface=SurfaceVerticesQueryEngine, volume=SurfaceVoxelsQueryEngine) if not output_modality in modality2class: raise KeyError("Illegal modality %s: should be in %s" % (output_modality, modality2class.keys())) voxsel = surf_voxel_selection.run_voxel_selection( radius=radius, volume=volume, white_surf=white_surf, pial_surf=pial_surf, source_surf=source_surf, source_surf_nodes=source_surf_nodes, volume_mask=volume_mask, distance_metric=distance_metric, start_fr=start_fr, stop_fr=stop_fr, start_mm=start_mm, stop_mm=stop_mm, nsteps=nsteps, eta_step=eta_step, nproc=nproc, outside_node_margin=outside_node_margin, results_backend=results_backend, tmp_prefix=tmp_prefix, node_voxel_mapping=node_voxel_mapping) qe = modality2class[output_modality](voxsel, add_fa=add_fa) return qe pymvpa2-2.6.4/mvpa2/misc/surfing/surf_voxel_selection.py000066400000000000000000001062351323370031300233730ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Functionality for surface-based voxel selection Created on Feb 13, 2012 WiP. References ---------- NN Oosterhof, T Wiestler, PE Downing, J Diedrichsen (2011). A comparison of volume-based and surface-based multi-voxel pattern analysis. Neuroimage, 56(2), pp. 593-600 'Surfing' toolbox: http://surfing.sourceforge.net (and the associated documentation) ''' __docformat__ = 'restructuredtext' import time import collections import operator import datetime import math import os import numpy as np from mvpa2.base import warning, externals from mvpa2.misc.surfing import volgeom, volsurf, volume_mask_dict from mvpa2.support.nibabel import surf from mvpa2.base.progress import ProgressBar, seconds2prettystring if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load # TODO: see if we use these contants, or let it be up to the user # possibly also rename them LINEAR_VOXEL_INDICES = "linear_voxel_indices" CENTER_DISTANCES = "center_distances" GREY_MATTER_POSITION = "grey_matter_position" from mvpa2.base import debug if __debug__: if not "SVS" in debug.registered: debug.register("SVS", "Surface-based voxel selection " " (a.k.a. 'surfing')") class VoxelSelector(object): '''Voxel selection for surface-based searchlights''' def __init__(self, radius, distance_surf, n2v, distance_metric='dijkstra', outside_node_margin=None): ''' Voxel selection using cortical surfaces. Parameters ---------- radius: int or float Searchlight radius. If the type is int, then this set the number of voxels in each searchlight (with variable size of the disc across searchlights). If the type is float, then this sets the disc radius in metric distance (with variable number of voxels across searchlights). In the latter case, the distance unit is usually in milimeters (which is the unit used for FreeSurfer surfaces). If radius is zero then only the center node itself is considered. distance_surf: surf.Surface A surface to be used for distance measurement. Usually this is the intermediate distance constructed by taking the node-wise average of the pial and white surface. n2v: dict Mapping from center nodes to surrounding voxels (and their distances). Usually this is the output from volsurf.node2voxels. distance_metric: str Distance measure used to define distances between nodes on the surface. Currently supports 'dijkstra' and 'euclidean' outside_node_margin: float or True or None (default) By default nodes outside the volume are skipped; using this parameter allows for a marign. If this value is a float (possibly np.inf), then all nodes within outside_node_margin Dijkstra distance from any node within the volume are still assigned associated voxels. If outside_node_margin is True, then a node is always assigned voxels regardless of its position in the volume. ''' tp = type(radius) if tp is int: # fixed number of voxels self._fixedradius = False # use a (very arbitary) way to estimate how big the radius should # be initally to select the required number of voxels initradius_mm = .001 + 1.5 * float(radius) ** .5 elif tp is float: # fixed metric radius self._fixedradius = True initradius_mm = radius else: raise TypeError("Illegal type for radius: expected int or float") self._targetradius = radius # radius to achieve (float or int) self._initradius_mm = initradius_mm # initial radius in mm self._optimizer = _RadiusOptimizer(initradius_mm) self._distance_metric = distance_metric # } self._surf = distance_surf # } save input self._n2v = n2v # } self._outside_node_margin = outside_node_margin def _select_approx(self, voxprops, count=None): ''' Select approximately a certain number of voxels. Parameters ---------- voxprops: dict Various voxel properties, where voxprops[key] is a list with voxprops[key][i] property key for voxel i. Should at least have a key 'distances'. Each of voxprops[key] should be list-like of equal length. count: int (default: None) How many voxels should be selected, approximately Returns ------- v2d_sel: dict Similar mapping as the input, with approximately 'count' voxels with the smallest distance in 'voxprops' If 'count is None' then 'v2d_sel is None' If voxprops has fewer than 'count' elemens then 'v2d_sel' is None Notes ----- Distances are only computed along the surface; the relative position of a voxel within the gray matter is ignored. Therefore, multiple voxels can have the same distance from a center node. See node2voxels. ''' if count is None: return voxprops distkey = CENTER_DISTANCES if not distkey in voxprops: raise KeyError("No distance key %s in it - cannot select voxels" % distkey) allds = voxprops[distkey] #assert sorted(allds)==allds #that's what voxprops should give us n = len(allds) if n < count or n == 0: return None # here, a 'chunk' is a set of voxels at the same distance. voxels are # selected in chunks with increasing distance. either all voxels in a # chunk are selected or none. curchunk = [] prevd = allds[0] chunkcount = 1 for i in xrange(n): d = allds[i] # distance if i > 0 and prevd != d: if i >= count: # we're done, use the chunk we have now break curchunk = [i] # start a new chunk chunkcount += 1 else: curchunk.append(i) prevd = d # see if the last chunk should be added or not to be as close as # possible to count firstpos = curchunk[0] lastpos = curchunk[-1] # difference in distance between desired count and positions delta = (count - firstpos) - (lastpos - count) if delta > 0: # lastpos is closer to count cutpos = lastpos + 1 elif delta < 0: # firstpos is closer to count cutpos = firstpos else: # it's a tie, choose quasi-randomly based on chunkcount cutpos = firstpos if chunkcount % 2 == 0 else (lastpos + 1) for k in voxprops.keys(): voxprops[k] = voxprops[k][:cutpos] return voxprops def disc_voxel_attributes(self, src): ''' Voxel selection for single center node Parameters ---------- src: int Index of center node to be used as searchlight center Returns ------- voxprops: dict Various voxel properties, where voxprops[key] is a list with voxprops[key][i] property key for voxel i. Has at least a key 'distances'. Each of voxprops[key] should be list-like of equal length. ''' optimizer = self._optimizer dist_surf = self._surf n2v = self._n2v outside_node_margin = self._outside_node_margin def node_in_vol(nd): return nd in n2v and n2v[nd] is not None if not node_in_vol(src) and not outside_node_margin is True: skip = True if outside_node_margin is not None: if math.isinf(outside_node_margin): if __debug__: debug("SVS", "") debug("SVS", "node %s is outside - considering all other " "nodes that may be inside" % (src,)) for nd in n2v: if node_in_vol(nd): skip = False break else: node_distances = dist_surf.circlearound_n2d(src, radius=outside_node_margin, metric=self._distance_metric) if __debug__: debug("SVS", "") debug("SVS", "node %s is outside - considering %d distances" " to other nodes that may be inside." % ((src,), len(node_distances))) for nd, d in node_distances.iteritems(): if nd in n2v and n2v[nd] is not None and d <= outside_node_margin: if __debug__: debug("SVS", "node #%s is distance %s <= %s from #%d " " and kept" % ((src,), d, outside_node_margin, nd)) skip = False break if skip: # no voxels associated with this node, skip if __debug__: debug("SVS", "Skipping node %s (no voxels associated)" % (src,), cr=True) return [] radius_mm = optimizer.get_start() radius = self._targetradius maxiter = 100 for counter in xrange(maxiter): if radius_mm == 0: # only the node itself. # this should work except for very strange surfaces where # multiple nodes occupy exactly the same spatial location around_n2d = {src:0.} else: around_n2d = dist_surf.circlearound_n2d(src, radius_mm, self._distance_metric) allvxdist = self.nodes2voxel_attributes(around_n2d, n2v) if not allvxdist: voxel_attributes = [] if self._fixedradius: # select all voxels voxel_attributes = self._select_approx(allvxdist, count=None) else: # select only certain number voxel_attributes = self._select_approx(allvxdist, count=radius) if voxel_attributes is None: # coult not find enough voxels, stay in loop and try again # with bigger radius radius_mm = optimizer.get_next() else: break if counter + 1 >= maxiter: raise ValueError("Failure to increase radius to get %d voxels for " " node #%d" % (radius, src)) if voxel_attributes and len(voxel_attributes[CENTER_DISTANCES]): # found at least one voxel; update our optimizer maxradius = voxel_attributes[CENTER_DISTANCES][-1] optimizer.set_final(maxradius) return voxel_attributes def disc_voxel_indices_and_attributes(self, src): ''' For now this is a wrapper TODO integrate with calling function''' attrs = self.disc_voxel_attributes(src) if not attrs: return None, None idxs = attrs.pop(LINEAR_VOXEL_INDICES) return idxs, attrs def nodes2voxel_attributes(self, n2d, n2v, distancesummary=min): ''' Computes voxel distances Parameters ---------- n2d: dict A mapping from node indices to distances (to a center node) Usually this is the output from surf.circlearound_n2d and thus only contains voldata for voxels surrounding a single center node n2v: dict A mapping from nodes to surrounding voxel indices and distances. n2v[i]=v2d is a dict mapping node i to a dict v2d, which in turn maps voxel indices to distances to the center node (i.e. v2d[j]=d means that the distance from voxel with linear index j to the node with index i is d distancesummary: function This is by default the min function. It is used to summarize cases where a single voxels has multiple distances (and nodes) associated with it. By default we take the minimum distance, and the node that gives rise to this distance, as a representative for the distance. Returns ------- voxelprops: dict Mapping from keys to lists that contain voxel properties. Each list should have the same length It has at least a key sparse_volmasks._VOXIDXSLABEL which maps to the linear voxel indices. It may also have 'distances' (distance from center node along the cortex) and 'gmpositions' (relative position in the gray matter) ''' # mapping from voxel indices to all distances v2dps = collections.defaultdict(set) # get node indices and associated (distance, grey matter positions) for nd, d in n2d.iteritems(): if nd in n2v: vps = n2v[nd] # all voxels associated with this node if vps is not None: for vx, pos in vps.items(): v2dps[vx].add((d, pos)) # associate voxel with tuple of distance and relative position # converts a tuple (vx, set([(d0,p0),(d1,p1),...]) to a triple (vx,pM,dM) # where dM is the minimum across all d* def unpack_dp(vx, dp, distancesummary=distancesummary): d, p = distancesummary(dp) # implicit sort by first elemnts first, i.e. distance return vx, d, p # make triples of (voxel index, distance to center node, relative position in grey matter) vdp = [unpack_dp(vx, dp) for vx, dp in v2dps.iteritems()] # sort triples by distance to center node vdp.sort(key=operator.itemgetter(1)) if not vdp: vdp_tup = ([], [], []) # empty else: vdp_tup = zip(*vdp) # unzip triples into three lists vdp_tps = (np.int32, np.float32, np.float32) vdp_labels = (LINEAR_VOXEL_INDICES, CENTER_DISTANCES, GREY_MATTER_POSITION) voxel_attributes = dict() for i in xrange(3): voxel_attributes[vdp_labels[i]] = np.asarray(vdp_tup[i], dtype=vdp_tps[i]) return voxel_attributes def voxel_selection(vol_surf_mapping, radius, source_surf=None, source_surf_nodes=None, distance_metric='dijkstra', eta_step=10, nproc=None, outside_node_margin=None, results_backend=None, tmp_prefix='tmpvoxsel'): """ Voxel selection for multiple center nodes on the surface Parameters ---------- vol_surf_mapping: volsurf.VolSurfMapping Contains gray and white matter surface, and volume geometry radius: int or float Size of searchlight. If an integer, then it indicates the number of voxels. If a float, then it indicates the radius of the disc source_surf: surf.Surface or None Surface used to compute distance between nodes. If omitted, it is the average of the gray and white surfaces. source_surf_nodes: list of int or numpy array or None Indices of nodes in source_surf that serve as searchlight center. By default every node serves as a searchlight center. distance_metric: str Distance metric between nodes. 'euclidean' or 'dijksta' (default) eta_step: int Report progress every eta_step (default: 10). nproc: int or None Number of parallel threads. None means as many threads as the system supports. The pprocess is required for parallel threads; if it cannot be used, then a single thread is used. outside_node_margin: float or True or None (default) By default nodes outside the volume are skipped; using this parameter allows for a marign. If this value is a float (possibly np.inf), then all nodes within outside_node_margin Dijkstra distance from any node within the volume are still assigned associated voxels. If outside_node_margin is True, then a node is always assigned voxels regardless of its position in the volume. results_backend : 'native' or 'hdf5' or None (default). Specifies the way results are provided back from a processing block in case of nproc > 1. 'native' is pickling/unpickling of results by pprocess, while 'hdf5' would use h5save/h5load functionality. 'hdf5' might be more time and memory efficient in some cases. If None, then 'hdf5' if used if available, else 'native'. tmp_prefix : str, optional If specified -- serves as a prefix for temporary files storage if results_backend == 'hdf5'. Thus can specify the directory to use (trailing file path separator is not added automagically). Returns ------- sel: volume_mask_dict.VolumeMaskDictionary Voxel selection results, that associates, which each node, the indices of the surrounding voxels. """ # construct the intermediate surface, which is used # to measure distances intermediate_surf = (vol_surf_mapping.pial_surface * .5) + \ (vol_surf_mapping.white_surface * .5) if source_surf is None: source_surf = intermediate_surf else: source_surf = surf.from_any(source_surf) if _debug(): debug('SVS', "Generated high-res intermediate surface: " "%d nodes, %d faces" % (intermediate_surf.nvertices, intermediate_surf.nfaces)) debug('SVS', "Mapping source to high-res surface:" " %d nodes, %d faces" % (source_surf.nvertices, source_surf.nfaces)) if distance_metric[0].lower() == 'e' and outside_node_margin: # euclidean distance: identity mapping # this is *slow* n = source_surf.nvertices xyz = source_surf.vertices src2intermediate = dict((i, tuple(xyz[i])) for i in xrange(n)) else: # find a mapping from nodes in source_surf to those in # intermediate surface src2intermediate = source_surf.map_to_high_resolution_surf(\ intermediate_surf) # if no sources are given, then visit all ndoes if source_surf_nodes is None: source_surf_nodes = np.arange(source_surf.nvertices) n = len(source_surf_nodes) if _debug(): debug('SVS', "Performing surface-based voxel selection" " for %d centers" % n) # visit in random order, for for better ETA estimate visitorder = list(np.random.permutation(len(source_surf_nodes))) # construct mapping from nodes to enclosing voxels n2v = vol_surf_mapping.get_node2voxels_mapping() if __debug__: debug('SVS', "Generated mapping from nodes" " to intersecting voxels") # build voxel selector voxel_selector = VoxelSelector(radius, intermediate_surf, n2v, distance_metric, outside_node_margin=outside_node_margin) if _debug(): debug('SVS', "Instantiated voxel selector (radius %r)" % radius) # structure to keep output data. Initialize with None, then # make a sparse_attributes instance when we know what the attributes are node2volume_attributes = None attribute_mapper = voxel_selector.disc_voxel_indices_and_attributes srcs_order = [source_surf_nodes[node] for node in visitorder] src_trg_nodes = [(src, src2intermediate[src]) for src in srcs_order] if nproc is not None and nproc > 1 and not externals.exists('pprocess'): raise RuntimeError("The 'pprocess' module is required for " "multiprocess searchlights. Please either " "install python-pprocess, or reduce `nproc` " "to 1 (got nproc=%i) or set to default None" % nproc) if nproc is None: if externals.exists('pprocess'): try: import pprocess nproc = pprocess.get_number_of_cores() or 1 if _debug() : debug("SVS", 'Using pprocess with %d cores' % nproc) except: if _debug(): debug("SVS", 'pprocess not available') if nproc is None: # importing pprocess failed - so use a single core nproc = 1 debug("SVS", 'Using %d cores - pprocess not available' % nproc) # get the the voxel selection parameters parameter_dict = vol_surf_mapping.get_parameter_dict() parameter_dict.update(dict(radius=radius, outside_node_margin=outside_node_margin, distance_metric=distance_metric), source_nvertices=source_surf.nvertices) init_output = lambda: volume_mask_dict.VolumeMaskDictionary( vol_surf_mapping.volgeom, intermediate_surf, meta=parameter_dict) if nproc > 1: if results_backend == 'hdf5': externals.exists('h5py', raise_=True) elif results_backend is None: if externals.exists('h5py') and externals.versions['hdf5'] >= '1.8.7': results_backend = 'hdf5' else: results_backend = 'native' if _debug(): debug('SVS', "Using '%s' backend" % (results_backend,)) if not results_backend in ('native', 'hdf5'): raise ValueError('Illegal results backend %r' % results_backend) import pprocess n_srcs = len(src_trg_nodes) blocks = np.array_split(np.arange(n_srcs), nproc) results = pprocess.Map(limit=nproc) reducer = results.manage(pprocess.MakeParallel(_reduce_mapper)) if __debug__: debug('SVS', "Starting %d child processes", (len(blocks),)) for i, block in enumerate(blocks): empty_dict = init_output() src_trg = [] for idx in block: src_trg.append(src_trg_nodes[idx]) if _debug(): debug('SVS', " starting block %d/%d: %d centers" % (i + 1, nproc, len(src_trg)), cr=True) reducer(empty_dict, attribute_mapper, src_trg, eta_step=eta_step, proc_id='%d' % (i + 1,), results_backend=results_backend, tmp_prefix=tmp_prefix) if _debug(): debug('SVS', '') debug('SVS', 'Started all %d child processes' % (len(blocks))) tstart = time.time() node2volume_attributes = None for i, result in enumerate(results): if result is None: continue if results_backend == 'hdf5': result_fn = result result = h5load(result_fn) os.remove(result_fn) if node2volume_attributes is None: # first time we have actual results. # Use as a starting point node2volume_attributes = result if _debug(): debug('SVS', '') debug('SVS', "Merging results from %d child " "processes using '%s' backend" % (len(blocks), results_backend)) else: # merge new with current data node2volume_attributes.merge(result) if _debug(): debug('SVS', " merged result block %d/%d" % (i + 1, nproc), cr=True) if _debug(): telapsed = time.time() - tstart debug('SVS', "") debug('SVS', 'Merged results from %d child processed - ' 'took %s' % (len(blocks), seconds2prettystring(telapsed))) else: empty_dict = init_output() node2volume_attributes = _reduce_mapper(empty_dict, attribute_mapper, src_trg_nodes, eta_step=eta_step) debug('SVS', "") if _debug(): if node2volume_attributes is None: msgs = ["Voxel selection completed: none of %d nodes have " "voxels associated" % len(visitorder)] else: nvox_selected = np.sum(node2volume_attributes.get_mask() != 0) vg = vol_surf_mapping.volgeom msgs = ["Voxel selection completed: %d / %d nodes have " "voxels associated" % (len(node2volume_attributes.keys()), len(visitorder)), "Selected %d / %d voxels (%.0f%%) in the mask at least once" % (nvox_selected, vg.nvoxels_mask, 100. * nvox_selected / vg.nvoxels_mask)] for msg in msgs: debug("SVS", msg) if node2volume_attributes is None: warning('No voxels associated with any of %d nodes' % len(visitorder)) return node2volume_attributes def _reduce_mapper(node2volume_attributes, attribute_mapper, src_trg_indices, eta_step=1, proc_id=None, results_backend='native', tmp_prefix='tmpvoxsel'): '''applies voxel selection to a list of src_trg_indices results are added to node2volume_attributes. ''' if not src_trg_indices: return None if not results_backend in ('native', 'hdf5'): raise ValueError('Illegal results backend %r' % results_backend) def _pat(index, xs=src_trg_indices, f=max): try: if not xs: y = 1 else: y = f(x[index] for x in xs) if y < 1: y = 1 p = '%%%dd' % math.ceil(math.log10(y)) except: p = '%s' return p progresspat = '(node %s -> %s)' % (_pat(0), _pat(1)) # start the clock bar = ProgressBar() n = len(src_trg_indices) for i, (src, trg) in enumerate(src_trg_indices): idxs, misc_attrs = attribute_mapper(trg) if idxs is not None: node2volume_attributes.add(int(src), idxs, misc_attrs) if _debug() and eta_step and (i % eta_step == 0 or i == n - 1): msg = bar(float(i + 1) / n, progresspat % (src, trg)) if proc_id is not None: msg += ' (#%s)' % proc_id debug('SVS', msg, cr=True) if results_backend == 'hdf5': tmp_postfix = ('__tmp__%d_%s.h5py' % (hash(time.time()), proc_id)) tmp_fn = tmp_prefix + tmp_postfix h5save(tmp_fn, node2volume_attributes) return tmp_fn else: return node2volume_attributes def _debug(): return __debug__ and 'SVS' in debug.active def run_voxel_selection(radius, volume, white_surf, pial_surf, source_surf=None, source_surf_nodes=None, volume_mask=None, distance_metric='dijkstra', start_mm=0, stop_mm=0, start_fr=0., stop_fr=1., nsteps=10, eta_step=1, nproc=None, outside_node_margin=None, results_backend=None, tmp_prefix='tmpvoxsel', node_voxel_mapping='maximal'): """ Voxel selection wrapper for multiple center nodes on the surface Parameters ---------- radius: int or float Size of searchlight. If an integer, then it indicates the number of voxels. If a float, then it indicates the radius of the disc volume: Dataset or NiftiImage or volgeom.Volgeom Volume in which voxels are selected. white_surf: str of surf.Surface Surface of white-matter to grey-matter boundary, or filename of file containing such a surface. pial_surf: str of surf.Surface Surface of grey-matter to pial-matter boundary, or filename of file containing such a surface. source_surf: surf.Surface or None Surface used to compute distance between nodes. If omitted, it is the average of the gray and white surfaces. source_surf_nodes: list of int or numpy array or None Indices of nodes in source_surf that serve as searchlight center. By default every node serves as a searchlight center. volume_mask: None (default) or False or int Mask from volume to apply from voxel selection results. By default no mask is applied. If volume_mask is an integer k, then the k-th volume from volume is used to mask the data. If volume is a Dataset and has a property volume.fa.voxel_indices, then these indices are used to mask the data, unless volume_mask is False or an integer. distance_metric: str Distance metric between nodes. 'euclidean' or 'dijksta' (default) start_fr: float (default: 0) Relative start position of line in gray matter, 0.=white surface, 1.=pial surface stop_fr: float (default: 1) Relative stop position of line (as in see start) start_mm: float (default: 0) Absolute start position offset (as in start_fr) stop_mm: float (default: 0) Absolute start position offset (as in start_fr) nsteps: int (default: 10) Number of steps from white to pial surface eta_step: int (default: 1) After how many searchlights an estimate should be printed of the remaining time until completion of all searchlights nproc: int or None Number of parallel threads. None means as many threads as the system supports. The pprocess is required for parallel threads; if it cannot be used, then a single thread is used. outside_node_margin: float or None (default) By default nodes outside the volume are skipped; using this parameter allows for a marign. If this value is a float (possibly np.inf), then all nodes within outside_node_margin Dijkstra distance from any node within the volume are still assigned associated voxels. If outside_node_margin is True, then a node is always assigned voxels regardless of its position in the volume. results_backend : 'native' or 'hdf5' or None (default). Specifies the way results are provided back from a processing block in case of nproc > 1. 'native' is pickling/unpickling of results by pprocess, while 'hdf5' would use h5save/h5load functionality. 'hdf5' might be more time and memory efficient in some cases. If None, then 'hdf5' if used if available, else 'native'. tmp_prefix : str, optional If specified -- serves as a prefix for temporary files storage if results_backend == 'hdf5'. Thus can specify the directory to use (trailing file path separator is not added automagically). node_voxel_mapping: 'minimal' or 'maximal' or 'minimal_lowres' If 'minimal' then each voxel is associated with at most one node. If 'maximal' it is associated with as many nodes that contain the voxel (default: 'maximal'). If 'minimal_lowres' then each voxel is associated with at most one node, and each node that is mapped onto has a corresponding node (at the same spatial location) in source_surf. Returns ------- sel: volume_mask_dict.VolumeMaskDictionary Voxel selection results, that associates, which each node, the indices of the surrounding voxels. """ vg = volgeom.from_any(volume, volume_mask) mapper_dict = dict(maximal=volsurf.VolSurfMaximalMapping, minimal=volsurf.VolSurfMinimalMapping, minimal_lowres=volsurf.VolSurfMinimalLowresMapping) mapper = mapper_dict[node_voxel_mapping] vsm = mapper(vg, white=white_surf, pial=pial_surf, intermediate=source_surf, nsteps=nsteps, start_fr=start_fr, stop_fr=stop_fr, start_mm=start_mm, stop_mm=stop_mm) sel = voxel_selection(vol_surf_mapping=vsm, radius=radius, source_surf=source_surf, source_surf_nodes=source_surf_nodes, distance_metric=distance_metric, eta_step=eta_step, nproc=nproc, outside_node_margin=outside_node_margin, results_backend=results_backend, tmp_prefix=tmp_prefix) return sel class _RadiusOptimizer(): ''' Internal class to optimize the initial radius used for voxel selection. In the case of selecting a fixed number of voxels in each searchlight, the required radius will vary across searchlights. The general strategy is to take some initial radius, find the nodes that are within that radius, select the corresponding voxels, and see if enough voxels are selected. If not, the radius is increased and these steps repeated. A larger initial radius means a decrease in the probability that not enough voxels are selected, but an increase in time to compute distances and select voxels. The challenge therefore to find the optimal initial radius so that overall computational time is minimized. The present implementation is very stupid and just increases the radius every time by a factor of 1.5. NNO: as of August 2012 it seems that voxel selection is actually quite fast, so maybe this function is good as is ''' def __init__(self, initradius): '''new instance, with certain initial radius''' self._initradius = initradius self._initmult = 1.5 def get_start(self): '''get an (initial) radius for a new searchlight.''' self._curradius = self._initradius self._count = 0 return self._curradius def get_next(self): '''get a new (better=larger) radius for the current searchlight''' self._count += 1 self._curradius *= self._initmult return self._curradius def set_final(self, finalradius): '''to tell what the final radius was that satisfied the number of required voxels''' pass def __repr__(self): return 'radius is %f, %d steps' % (self._curradius, self._count) def from_any(s): ''' Loads or returns voxel selection results Parameters ---------- s: basestring or volume_mask_dict.VolumeMaskDictionary if a string it is assumed to be a file name and loaded using h5load. If a volume_mask_dict.VolumeMaskDictionary then it is returned. Returns ------- r: volume_mask_dict.VolumeMaskDictionary ''' # this is just a convenience function return volume_mask_dict.from_any(s) pymvpa2-2.6.4/mvpa2/misc/surfing/volgeom.py000066400000000000000000000665361323370031300206130ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Volume geometry to map between world and voxel coordinates. Supports conversion between linear and sub indexing of voxels. The rationale is that volumes use sub indexing that incorporate the spatial locations of voxels, but for voxel selection (and subsequent MVPA) it is often more appropriate to abstract from the temporal locations of voxels. Created on Feb 12, 2012 @author: nick ''' __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import warning, externals if externals.exists('nibabel'): # nibabel is optional dependency here, those how would reach those points # without having nibabel should suffer import nibabel as nb from mvpa2.misc.neighborhood import Sphere from mvpa2.mappers.base import ChainMapper class VolGeom(object): '''Defines a mapping between sub and linear indices and world coordinate in volumatric fmri datasets''' def __init__(self, shape, affine, mask=None): ''' Parameters ---------- shape: tuple Number of values in each dimension. Typically the first three dimensions are spatial and the remaining ones temporal. Only the first three dimensions are stored affine: numpy.ndarray 4x4 affine transformation array that maps voxel to world coordinates. mask: numpy.ndarray (default: None) voxel mask that indicates which voxels are included. Values of zero in mask mean that a voxel is not included. If mask is None, then all voxels are included. ''' if not type(shape) is tuple or len(shape) < 3: raise ValueError("Shape should be a tuple with at least 3 values") self._shape = (shape[0], shape[1], shape[2]) self._affine = np.asarray(affine) if self._affine.shape != (4, 4): raise ValueError('Affine matrix should be 4x4') if mask is not None: if mask.size != self.nvoxels: raise ValueError("%d voxels, but mask has %d" % (self.nvoxels, mask.size)) if len(mask.shape) >= 3 and shape[:3] != mask.shape[:3]: raise ValueError("Shape mismatch for mask") mask = np.reshape(mask != 0, (-1,)) self._mask = mask def same_geometry(self, other): '''Compares this geometry with another instance Parameters ---------- other: VolGeom instance to which the current instance is compared Returns ------- same: boolean True iff it has the same geometry. It does not compare whether the mask is the same''' return (self.same_shape(other) and np.all(self.affine == other.affine)) def same_shape(self, other): '''Compares the shape of the spatial dimensions with another instance Parameters ---------- other: VolGeom instance to which the current instance is compared Returns ------- same: boolean True iff it has the same shape in the first three dimensions''' if not isinstance(other, self.__class__): return False return self.shape == other.shape def same_mask(self, other): '''Compares the mask with another instance Parameters ---------- other: VolGeom instance to which the current instance is compared Returns ------- same: boolean True iff it has effectively the same mask''' if not self.same_shape(other): return False p = self.mask q = other.mask if p is None: return q.nvoxels_mask == self.nvoxels_mask else: if q is None: return q.nvoxels_mask == self.nvoxels_mask else: return np.all(self.mask == other.mask) def __eq__(self, other): return (self.same_geometry(other) and np.all(self.affine == other.affine)) def __ne__(self, other): return not self.__eq__(other) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ['shape=(%s)' % ','.join(['%r' % i for i in self._shape]), 'affine=%r' % self._affine] + prefixes if self._mask is not None: prefixes_ += ['mask=%r' % self._mask] return "%s(%s)" % (self.__class__.__name__, ', '.join(prefixes_)) def __str__(self): sh = self.shape[:3] s = '%s(%s = %d voxels' % (self.__class__.__name__, '%d x %d x %d' % sh, self.nvoxels) if self.mask is not None: s += ', %d voxels survive the mask' % self.nvoxels_mask s += ')' return s def as_pickable(self): ''' Returns a pickable instance. Returns ------- dict A dictionary that contains all information from this instance (and can be saved using pickle). ''' d = dict(shape=self.shape, affine=self.affine, mask=self.mask) return d def __reduce__(self): return (self.__class__, (self._shape, self._affine, self._mask)) @property def mask(self): ''' Returns the mask. Returns ------- mask: np.ndarray boolean vector indicating which voxels are included. If no mask is associated with this instance then mask is None. ''' if self._mask is None: return None m = self._mask.view() m.flags.writeable = False return m @property def linear_mask(self): '''Returns the mask as a vector Returns ------- mask: np.ndarray (vector with P values) boolean vector indicating which voxels are included. If no mask is associated with this instance then mask is None. ''' if self._mask is None: return None return np.reshape(self.mask, (self.nvoxels,)) def _ijkmultfac(self): '''multiplication factors for ijk <--> linear indices conversion''' sh = self.shape return [sh[1] * sh[2], sh[2], 1] def _contains_ijk_unmasked(self, ijk): '''helper function to see if ijk indices are in the volume''' shape = self.shape m = reduce(np.logical_and, [0 <= ijk[:, 0], ijk[:, 0] < shape[0], 0 <= ijk[:, 1], ijk[:, 1] < shape[1], 0 <= ijk[:, 2], ijk[:, 2] < shape[2]]) return m def _outside_vol(self, ijk, lin, apply_mask=True): '''helper function to see if ijk and lin indices are in the volume. It is assumed that these indices are matched (i.e. ijk[i,:] and lin[i] refer to the same voxel, for all i). The rationale for providing both is that ijk is necessary to determine whether a voxel is within the volume, while lin is necessary for considering which voxels are in the mask''' invol = self._contains_ijk_unmasked(ijk) invol[np.logical_or(lin < 0, lin >= self.nvoxels)] = np.False_ invol[np.isnan(lin)] = np.False_ if apply_mask and self.mask is not None and invol.size: invol[invol] = np.logical_and(invol[invol], self.mask[lin[invol]]) return np.logical_not(invol) def _ijk2lin_unmasked(self, ijk): '''helper function to convert sub to linear indices.''' m = np.zeros((3,), dtype=int) fs = self._ijkmultfac() # make a 3x1 vector with multiplication factors for i, f in enumerate(fs): m[i] = f lin = np.dot(ijk, m) return lin def _lin2ijk_unmasked(self, lin): '''Converts sub to linear voxel indices Parameters ---------- Px1 array with linear voxel indices Returns ------- ijk: numpy.ndarray Px3 array with sub voxel indices ''' if not isinstance(lin, np.ndarray): lin = np.asarray(lin, dtype=np.int_) else: lin = lin.astype(np.int_) lin = lin.ravel() n = np.shape(lin)[0] fs = self._ijkmultfac() ijk = np.zeros((n, 3), dtype=int) for i, f in enumerate(fs): v = lin // f ijk[:, i] = v[:] lin -= v * f return ijk def ijk2triples(self, ijk): '''Converts sub indices to a list of triples Parameters ---------- ijk: np.ndarray (Px3) sub indices Returns ------- triples: list with P triples the indices from ijk, so that triples[i][j]==ijk[i,j] ''' return map(tuple, ijk) def triples2ijk(self, tuples): '''Converts triples to sub indices Parameters ---------- triples: list with P triples Returns ------- ijk: np.ndarray(Px3) an array from triples, so that ijk[i,j]==triples[i][j] ''' return np.asarray(tuples) def ijk2lin(self, ijk): '''Converts sub to linear voxel indices. Parameters ---------- ijk: numpy.ndarray Px3 array with sub voxel indices. Returns ------- lin: Px1 array with linear voxel indices. If ijk[i,:] is outside the volume, then lin[i]==self.nvoxels. ''' ijk = to_three_column_array(ijk) lin = self._ijk2lin_unmasked(ijk) lin[self._outside_vol(ijk, lin)] = self.nvoxels return lin def lin2ijk(self, lin): '''Converts sub to linear voxel indices. Parameters ---------- Px1 array with linear voxel indices. Returns ------- ijk: numpy.ndarray Px3 array with sub voxel indices. If lin[i] is outside the volume, then ijk[i,:]==self.shape. ''' lin = to_vector(lin) ijk = self._lin2ijk_unmasked(lin) ijk[self._outside_vol(ijk, lin), :] = self.shape[:3] return ijk @property def affine(self): '''Returns the affine transformation matrix. Returns ------- affine : numpy.ndarray 4x4 array that maps voxel to world coordinates. ''' a = self._affine.view() a.flags.writeable = False return a def xyz2ijk(self, xyz): '''Maps world coordinates to sub voxel indices. Parameters ---------- xyz : numpy.ndarray (float) Px3 array with world coordinates. Returns ------- ijk: numpy.ndarray (int) Px3 array with sub voxel indices. If xyz[i,:] is outside the volume, then ijk[i,:]==self.shape ''' xyz = to_three_column_array(xyz) m = self.affine minv = np.linalg.inv(m) ijkfloat = self.apply_affine3(minv, xyz) # add .5 so that positions are rounded instead of floored CHECKME ijk = np.array(ijkfloat + .5, dtype=int) lin = self._ijk2lin_unmasked(ijk) ijk[self._outside_vol(ijk, lin), :] = self.shape[:3] return ijk def ijk2xyz(self, ijk): '''Maps sub voxel indices to world coordinates. Parameters ---------- ijk: numpy.ndarray (int) Px3 array with sub voxel indices. Returns ------- xyz : numpy.ndarray (float) Px3 array with world coordinates. If ijk[i,:] is outside the volume, then xyz[i,:] is NaN. ''' ijk = to_three_column_array(ijk) m = self.affine ijkfloat = np.array(ijk, dtype=float) xyz = self.apply_affine3(m, ijkfloat) lin = self._ijk2lin_unmasked(ijk) self._outside_vol(ijk, lin) xyz[self._outside_vol(ijk, lin), :] = np.NaN return xyz def xyz2lin(self, xyz): '''Maps world coordinates to linear voxel indices. Parameters ---------- xyz : numpy.ndarray (float) Px3 array with world coordinates Returns ------- ijk: numpy.ndarray (int) Px1 array with linear indices. If xyz[i,:] is outside the volume, then lin[i]==self.nvoxels. ''' return self.ijk2lin(self.xyz2ijk(xyz)) def lin2xyz(self, lin): '''Maps linear voxel indices to world coordinates. Parameters ---------- ijk: numpy.ndarray (int) Px3 array with linear voxel indices. Returns ------- xyz : np.ndarray (float) Px1 array with world coordinates. If lin[i] is outside the volume, then xyz[i,:] is NaN. ''' return self.ijk2xyz(self.lin2ijk(lin)) def apply_affine3(self, mat, v): '''Applies an affine transformation matrix. Parameters ---------- mat : numpy.ndarray (float) Matrix with size at least 3x4 v : numpy.ndarray (float) Px3 values to which transformation is applied Returns ------- w : numpy.ndarray(float) Px3 transformed values ''' r = mat[:3, :3] t = mat[:3, 3].transpose() return np.dot(v, r) + t @property def nvoxels(self): ''' Returns the number of voxels. Returns ------- nv: int Number of spatial points (i.e. number of voxels) ''' return np.prod(self.shape[:3]) @property def shape(self): ''' Returns the shape. Returns ------- sh: tuple of int Number of values in each dimension ''' return self._shape @property def nvoxels_mask(self): ''' Returns ------- nv: int Number of voxels that survive the mask''' return self.nvoxels if self.mask is None else np.sum(self.mask) def contains_ijk(self, ijk, apply_mask=True): ''' Returns whether a set of sub voxel indices are contained within this instance. Parameters ---------- ijk : numpy.ndarray Px3 array with sub voxel indices Returns ------- numpy.ndarray (boolean) P boolean values indicating which voxels are within the volume. ''' ijk = to_three_column_array(ijk) lin = self._ijk2lin_unmasked(ijk) return np.logical_not(self._outside_vol(ijk, lin, \ apply_mask=apply_mask)) def contains_lin(self, lin, apply_mask=True): ''' Returns whether a set of linear voxel indices are contained within this instance. Parameters ---------- lin : numpy.ndarray Px1 array with linear voxel indices. Returns ------- numpy.ndarray (boolean) P boolean values indicating which voxels are within the volume. ''' lin = to_vector(lin) ijk = self._lin2ijk_unmasked(lin) return np.logical_not(self._outside_vol(ijk, lin, \ apply_mask=apply_mask)) def get_empty_array(self, nt=None): ''' Returns an empty array with size according to the volume Parameters ---------- nt: int or None Number of timepoints (or samples). Each feature has the same value (1 if in the mask, 0 otherwise) for each sample. If nt is None, then the output is 3D; otherwise it is 4D with 'nt' values in the last dimension. Returns ------- arr: numpy.ndarray An array with value zero everywhere. ''' sh = self.shape if nt is not None: sh = (sh[0], sh[1], sh[2], nt) data = np.zeros(sh) return data def get_empty_nifti_image(self, nt=None): ''' Returns an empty nifti image with size according to the volume Parameters ---------- nt: int or None Number of timepoints (or samples). Each feature has the same value (1 if in the mask, 0 otherwise) for each sample. If nt is None, then the output is 3D; otherwise it is 4D with 'nt' values in the last dimension. Returns ------- arr: nibabel.Nifti1Image A Nifti image with value zero everywhere. ''' data = self.get_empty_array(nt=nt) img = nb.Nifti1Image(data, self.affine) return img def get_masked_array(self, nt=None, dilate=None): '''Provides a masked numpy array Parameters ---------- nt: int or None Number of timepoints (or samples). Each feature has the same value (1 if in the mask, 0 otherwise) for each sample. If nt is None, then the output is 3D; otherwise it is 4D with 'nt' values in the last dimension. dilate: callable or int or None Speficiation of mask dilation. If a callable, it should be a a neighborhood function (like Sphere(..)) that can map a single voxel coordinate (represented as a triple of indices) to a list of voxel coordinates that define the neighboorhood of that coordinate. For example, Sphere(3) can be used to dilate the original mask by 3 voxels. If an int, then it uses Sphere(dilate) to dilate the mask. If set to None the mask is not dilated. Returns ------- msk: numpy.ndarray an array with values 1. for values inside the mask and values of 0 elsewhere. If the instance has no mask, then all values are 1. ''' data_vec = np.zeros((self.nvoxels,), dtype=np.float32) if self.mask is None: data_vec[:] = 1 else: data_vec[self.mask] = 1 # see if the mask has to be dilated. # if all voxels are already in the mask this can be omitted if dilate is not None and \ self.nvoxels_mask != self.nvoxels: if type(dilate) is int: dilate = Sphere(dilate) # offsets deltas = dilate((0, 0, 0)) # positions of nonzero voxels data_ijks = self.lin2ijk(np.nonzero(data_vec)[0]) # helper function def add_tuple(x, y): return (x[0] + y[0], x[1] + y[1], x[2] + y[2]) # gather all subindices ehre dilate_ijk = set() # all combinations of offsets and positions of voxels in the mask for delta in deltas: if delta != (0, 0, 0): for data_ijk in data_ijks: pos = add_tuple(delta, data_ijk) dilate_ijk.add(pos) if dilate_ijk: dilate_lin = self._ijk2lin_unmasked(list(dilate_ijk)) lin_mask = self.contains_lin(dilate_lin, apply_mask=False) data_vec[dilate_lin[lin_mask]] = 1 sh = self.shape data_t1 = np.reshape(data_vec, sh[:3]) if nt is not None: sh = (sh[0], sh[1], sh[2], nt) data = np.zeros(sh, data_vec.dtype) for t in xrange(nt): data[:, :, :, t] = data_t1 return data else: return data_t1 def get_masked_nifti_image(self, nt=None, dilate=None): '''Provides a masked nifti image Parameters ---------- nt: int or None Number of timepoints (or samples). Each feature has the same value (1 if in the mask, 0 otherwise) for each sample. If nt is None, then the output is 3D; otherwise it is 4D with 'nt' values in the last dimension. dilate: callable or int or None If a callable, it should be a a neighborhood function (like Sphere(..)) that can map a single voxel coordinate (represented as a triple of indices) to a list of voxel coordinates that define the neighboorhood of that coordinate. For example, Sphere(3) can be used to dilate the original mask by 3 voxels. If an int, then it uses Sphere(dilate) to dilate the mask. If set to None the mask is not dilated. Returns ------- msk: Nifti1image a nifti image with values 1. for values inside the mask and values of 0 elsewhere. If the instance has no mask, then all values are 1. ''' data = self.get_masked_array(nt=nt, dilate=dilate) img = nb.Nifti1Image(data, self.affine) return img def from_any(s, mask_volume=None): """Constructs a VolGeom instance from any reasonable type of input. Parameters ---------- s : str or VolGeom or nibabel SpatialImage-like or mvpa2.datasets.base.Dataset-like with nifti-image header. Input to use to construct the VolGeom instance. If s is a string, then it is assumed to refer to the file name of a NIFTI image. mask_volume: boolean or int or None (default: False) If an int is provided, then the mask-volume-th volume in s is used as a voxel mask. True is equivalent to 0. If None or False are provided, no mask is applied. Fmri-dataset-like objects are treated specifally: If s is such an object an mask_volume is None, it will automatically use s.fa['voxel_indices'] to define the mask (if that attribute is present). Alternatively, if mask_volume is a string, then the mask is defined based on the voxel indices that are assumed to be present s.fa[mask_volume]. Returns ------- vg: VolGeom Volume geometry associated with s. """ if s is None or isinstance(s, VolGeom): return s if isinstance(s, basestring): # try to find a function to load the data load_function = None if s.endswith('.nii') or s.endswith('.nii.gz'): load_function = nb.load elif s.endswith('.h5py'): if externals.exists('h5py'): from mvpa2.base.hdf5 import h5load load_function = h5load else: raise ValueError("Cannot load h5py file - no externals") if load_function: # do a recursive call return from_any(load_function(s), mask_volume=mask_volume) raise ValueError("Unrecognized extension for file %s" % s) if mask_volume is True: # assign a specific index -- the very first volume mask_volume = 0 elif mask_volume is False: # do not use a mask mask_volume = None try: # see if s behaves like a spatial image (nifti image) shape = s.shape affine = s.affine if isinstance(mask_volume, int): data = s.get_data() ndim = len(data.shape) if ndim <= 3: mask = data if mask_volume > 0: warning("There is no 4th dimension (t) to select " "the %d-th volume." % (mask_volume,)) else: mask = data[:, :, :, mask_volume] else: mask = None except: try: # see if s behaves like a Dataset with image header # there is always an affine, if it comes from nibabel affine = s.a.imgaffine # if this comes from fmri_dataset() the first mapper is # a FlattenMapper that knows the original data shape if isinstance(s.a.mapper, ChainMapper): shape = s.a.mapper[0].shape else: shape = s.a.mapper.shape mask = None if isinstance(mask_volume, int): mask = np.asarray(s.samples[mask_volume, :]) else: mask_volume_indices = None if mask_volume is None and (hasattr(s, 'fa') and hasattr(s.fa, 'voxel_indices')): mask_volume_indices = s.fa['voxel_indices'] elif isinstance(mask_volume, basestring): if not mask_volume in s.fa: raise ValueError('Key not found in s.fa: %r' % mask_volume) mask_volume_indices = s.fa[mask_volume] if mask_volume_indices: mask = np.zeros(shape) for idx in mask_volume_indices.value: mask[tuple(idx)] = 1 except Exception, e: #no idea what type of beast this is. raise ValueError( 'Unrecognized input %r - not a VolGeom, ' '(filename of) Nifti image, or (mri-)Dataset: %s' % (s, e)) return VolGeom(shape=shape, affine=affine, mask=mask) def _to_X_column_array(v, x): # TODO: some fancy checking of size/shape of input if not isinstance(v, np.ndarray): v = np.asarray(v) if len(v.shape) == 1: if x > 1 and len(v) != x: raise ValueError("Cannot cast to %d columns: %r" % x) v = v.reshape((-1, x)) if v.shape[1] != x: raise ValueError("Not %dx3" % x) return v def to_three_column_array(v): '''Converts input to a Px3 array''' return _to_X_column_array(v, 3) def to_one_column_array(v): '''Converts input to a Px1 array''' return _to_X_column_array(v, 1) def to_vector(v): '''Converts input to a linear vector''' if not isinstance(v, np.ndarray): v = np.asarray(v) if len(v.shape) > 1: if v.shape[0] != 1 and v.shape(1) != 1: raise ValueError("Matrix of shape %d x %d: cannot make linear" % (v.shape[0], v.shape[1])) v = v.ravel() return v def distance(p, q, r=2): '''Returns the distances between vectors in two arrays Parameters ---------- p: np.ndarray (PxM) first array q: np.ndarray (QxM) second array nrm: float (default: 2) Norm used for distance computation. By default Euclidean distances are computed. Returns ------- pq: np.ndarray (PxQ) Distance between p[j] and q[j] is in pq[i,j] Notes ----- If p or q are vectors (one-dimensional) then pq is also a vector ''' ravel = 0 if len(p.shape) == 1: p = np.reshape(p, (1, -1)) ravel += 1 if len(q.shape) == 1: q = np.reshape(q, (1, -1)) ravel += 1 if p.shape[1] != q.shape[1]: raise ValueError("Shape mismatch") m, n = len(p), len(q) ds = np.zeros((m, n), dtype=p.dtype) def dist_func(a, b, r): delta = a - b if np.isinf(r): return np.max(np.abs(delta), 1) else: return np.sum(delta ** r, 1) ** (1. / r) for i, pi in enumerate(p): ds[i, :] = dist_func(pi, q, r) if ravel > 0: # we could also return just a single number if # ravel==2 but for consistency always return an array ds = ds.ravel() return ds pymvpa2-2.6.4/mvpa2/misc/surfing/volsurf.py000066400000000000000000001002261323370031300206240ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##''' """ Associate volume geometry with two surface meshes (typically pial and white matter boundaries of the grey matter). @author: nick """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals from mvpa2.misc.surfing import volgeom from mvpa2.support.nibabel import surf from mvpa2.base.progress import ProgressBar from mvpa2.base import debug if externals.exists('nibabel'): import nibabel as nb class VolSurf(object): ''' Associates a volume geometry with two surfaces (pial and white). ''' def __init__(self, vg, white, pial, intermediate=None): ''' Parameters ---------- volgeom: volgeom.VolGeom Volume geometry white: surf.Surface Surface representing white-grey matter boundary pial: surf.Surface Surface representing pial-grey matter boundary intermediate: surf.Surface (default: None). Surface representing intermediate surface. If omitted it is the node-wise average of white and pial. This parameter is usually ignored, except when used in a VolSurfMinimalLowresMapping. Notes ----- 'pial' and 'white' should have the same topology. ''' self._volgeom = volgeom.from_any(vg) self._pial = surf.from_any(pial) self._white = surf.from_any(white) if not self._pial.same_topology(self._white): raise Exception("Not same topology for white and pial") #if intermediate is None: # intermediate = (self.pial_surface * .5) + (self.white_surface * .5) self._intermediate = surf.from_any(intermediate) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ['vg=%r' % self._volgeom, 'white=%r' % self._white, 'pial=%r' % self._pial] + prefixes return "%s(%s)" % (self.__class__.__name__, ', '.join(prefixes_)) def __str__(self): return '%s(volgeom=%s, pial=%s, white=%s)' % ( self.__class__.__name__, self._volgeom, self._white, self._pial) @property def pial_surface(self): ''' Returns the pial surface Returns ------- pial: surf.Surface ''' return self._pial @property def white_surface(self): ''' Returns the white surface Returns ------- white: surf.Surface ''' return self._white @property def intermediate_surface(self): ''' Returns the node-wise average of the pial and white surface Returns ------- intermediate: surf.Surface ''' return self._intermediate @property def volgeom(self): ''' Returns the volume geometry Returns ------- vg: volgeom.VolGeom ''' return self._volgeom def __reduce__(self): return (self.__class__, (self._volgeom, self._white, self._pial, self._intermediate)) def surf_project_nodewise(self, xyz): ''' Projects coordinates on lines connecting pial and white matter. Parameters ---------- xyz: numpy.ndarray (float) Px3 array with coordinates, assuming 'white' and 'pial' surfaces have P nodes each Returns ------- xyz_proj: numpy.ndarray (float) Px3 array with coordinates the constraints that xyz_proj[i,:] lies on the line connecting node 'i' on the white and pial surface, and that xyz_proj[i,:] is closest to xyz[i,:] of all points on this line. ''' pxyz = self.white_surface.vertices weights = self.surf_project_weights_nodewise(xyz) return pxyz + np.reshape(weights, (-1, 1)) * pxyz def surf_unproject_weights_nodewise(self, weights): '''Maps relative positions in grey matter to coordinates Parameters ---------- weights: numpy.ndarray (float) P values of relative grey matter positions, where 0=white surface and 1=pial surface. Returns ------- xyz: numpy.ndarray (float) Px3 array with coordinates, assuming 'white' and 'pial' surfaces have P nodes each. ''' # compute relative to pial_xyz pxyz = self._pial.vertices qxyz = self._white.vertices dxyz = (pxyz - qxyz) # difference vector if len([s for s in weights.shape if s > 1]) != 1: raise ValueError("Weights should be a vector, but found " "shape %s" % (weights.shape,)) weights_lin = np.reshape(weights.ravel(), (-1, 1)) return qxyz + weights_lin * dxyz def surf_project_weights_nodewise(self, xyz): ''' Computes relative position of xyz on lines from pial to white matter. Parameters ---------- xyz: numpy.ndarray (float) Px3 array with coordinates, assuming 'white' and 'pial' surfaces have P nodes each. Returns ------- weights: numpy.ndarray (float) If nodes is True, P values of relative grey matter positions (0=white surface and 1=pial surface), where the i-th element are the projection weights for xyz[i] relative to the i-th node in the pial and white surface. Otherwise it returns an PxQ array with the projected weights for each node. If nodes is an int, then a P-vector is returned ''' return self.surf_project_weights(True, xyz) def surf_project_weights(self, nodes, xyz): ''' Computes relative position of xyz on lines from pial to white matter. Parameters ---------- nodes: True or np.ndarray or int Q node indices for each the weights are computed. If True, then weights are computed node-wise, otherwise separately for each node. xyz: numpy.ndarray (float) Px3 array with coordinates. IF nodes is True then the 'white' and 'pial' surfaces must have P nodes each. Returns ------- weights: numpy.ndarray (float) If nodes is True, P values of relative grey matter positions (0=white surface and 1=pial surface), where the i-th element are the projection weights for xyz[i] relative to the i-th node in the pial and white surface. Otherwise it returns an PxQ array with the projected weights for each node. If nodes is an int, then a P-vector is returned ''' node_wise = nodes is True if node_wise: one_node = True nodes = [False] # placeholder else: one_node = type(nodes) is int nodes = np.asarray(nodes).ravel() nnodes = len(nodes) nxyz, three = xyz.shape if three != 3: raise ValueError('Coordinates should be Px3') pial = self._pial.vertices white = self._white.vertices weights = np.zeros((nxyz, nnodes)) for i, node in enumerate(nodes): pxyz = pial if node_wise else pial[node, :] qxyz = white if node_wise else white[node, :] dxyz = pxyz - qxyz ndim = len(dxyz.shape) scale = np.sum(dxyz * dxyz, axis=ndim - 1) # weights = np.zeros((self._pial.nvertices,), dtype=pxyz.dtype) if node_wise: nan_mask = scale == 0 weights[nan_mask, i] = np.nan non_nan_mask = np.logical_not(nan_mask) ps = (xyz - qxyz) proj = np.sum(ps * dxyz, axis=1) weights[non_nan_mask, i] = proj[non_nan_mask] / scale[non_nan_mask] else: if scale == 0: weights[:, i] = np.NAN else: ps = (xyz - qxyz) proj = np.sum(ps * dxyz, axis=1) weights[:, i] = proj / scale if one_node: weights = weights.ravel() return weights def coordinates_to_grey_distance_mm(self, nodes, xyz): '''Computes the grey position of coordinates in metric units Parameters ---------- nodes: int or np.ndarray Single index, or Q indices of nodes relative to which the coordinates are computed. If True then grey distances are computed node-wise. xyz: Px3 array with coordinates, assuming 'white' and 'pial' surfaces have P nodes each. Returns ------- grey_position_mm: np.ndarray Vector with P elements (if type(nodes) is int) or PxQ array (with type(nodes) is np.ndarray) containing the signed 'distance' to the grey matter. Values of zero indicate a node is within the grey matter. Negative values indicate that a node is 'below' the white matter (i.e. farther from the pial surface than the white surface), whereas Positive values indicate that a node is 'above' the pial matter. ''' node_wise = nodes is True if node_wise: one_node = True all_nodes = [False] # placeholder else: one_node = type(nodes) is int all_nodes = np.asarray(nodes).ravel() nnodes = len(all_nodes) nxyz, three = xyz.shape if three != 3: raise ValueError('Coordinates should be Px3') white = self.white_surface.vertices pial = self.pial_surface.vertices in_white = lambda x:x < 0 in_pial = lambda x:x > 1 # compute relative position pos = self.surf_project_weights(nodes, xyz) ds = np.zeros((nxyz, nnodes)) # space for output for i, node in enumerate(all_nodes): d = np.zeros(nxyz) + np.nan for sgn, s, f in ((-1, white, in_white), (1, pial, in_pial)): if node_wise: msk = f(pos) delta = s[msk] - xyz[msk] # difference in coordinates else: # mask of voxels outside grey matter msk = f(pos if one_node else pos[:, i]) delta = s[node, :] - xyz[msk, :] dst = np.sum(delta ** 2, 1) ** .5 d[msk] = sgn * dst # compute signed distance d[np.isnan(d)] = 0 ds[:, i] = d if one_node: ds = ds.ravel() return ds class VolSurfMapping(VolSurf): '''General mapping between volume and surface. Subclasses have to implement node2voxels''' def __init__(self, vg, white, pial, intermediate=None, nsteps=10, start_fr=0.0, stop_fr=1.0, start_mm=0, stop_mm=0): ''' Parameters ---------- volgeom: volgeom.VolGeom Volume geometry white: surf.Surface Surface representing white-grey matter boundary pial: surf.Surface Surface representing pial-grey matter boundary intermediate: surf.Surface (default: None). Surface representing intermediate surface. If omitted it is the node-wise average of white and pial. nsteps: int (default: 10) Number of steps from white to pial surface start_fr: float (default: 0) Relative start position of line in gray matter, 0.=white surface, 1.=pial surface. stop_fr: float (default: 1) Relative stop position of line (as in see start). start_mm: float (default: 0) Absolute start position offset (as in start_fr). stop_mm: float (default: 0) Absolute start position offset (as in start_fr). Notes ----- 'pial' and 'white' should have the same topology. ''' super(VolSurfMapping, self).__init__(vg=vg, white=white, pial=pial, intermediate=intermediate) self.nsteps = nsteps self.start_fr = start_fr self.stop_fr = stop_fr self.start_mm = start_mm self.stop_mm = stop_mm def get_node2voxels_mapping(self): ''' Returns ------- n2v: dict A mapping from node indices to voxels. In this mapping, the 'i'-th node is associated with 'n2v[i]=v2p' which contains the mapping from linear voxel indices to grey matter positions. In other words, 'n2v[i][idx]=v2p[idx]=pos' means that the voxel with linear index 'idx' is associated with node 'i' and has has relative position 'pos' in the gray matter. If node 'i' is outside the volume, then 'n2v[i]=None'. Notes ----- The typical use case is selecting voxels in the grey matter. The rationale of this method is that (assuming a sufficient dense cortical surface mesh, combined with a sufficient number of nsteps, the grey matter is sampled dense enough so that 'no voxels are left out'. ''' raise NotImplementedError def voxel_count_nifti_image(self): ''' Returns a NIFTI image indicating how often each voxel is selected. Parameters ========== n2v: dict Node to voxel mapping, typically from node2voxels. If omitted then the output from node2voxels() is used. Returns ======= img: nifti.Nifti1Image Image where the value in each voxel indicates how often each voxel was selected by n2v. ''' n2v = self.get_node2voxels_mapping() v = self._volgeom nv = v.nvoxels voldata = np.zeros((nv,), dtype=float) for vx2d in n2v.itervalues(): if vx2d: for vx in vx2d: voldata[vx] += 1 rs = np.reshape(voldata, v.shape) img = nb.Nifti1Image(rs, v.affine) return img def _get_node_voxels_maximal_mapping(self): '''Internal helper function to return all possible voxels associated with each node. Each voxel can be associated with multiple nodes It returns a node to voxel mapping and a voxel to node mapping''' nsteps = self.nsteps start_fr = self.start_fr stop_fr = self.stop_fr start_mm = self.start_mm stop_mm = self.stop_mm if start_fr > stop_fr or nsteps < 1: raise ValueError("Illegal start/stop combination, " "or not enough steps") # make a list of the different relative gray matter positions if nsteps > 1: step = (stop_fr - start_fr) / float(nsteps - 1) else: step = 0. start_fr = stop_fr = .5 center_ids = range(self._pial.nvertices) nv = len(center_ids) # number of nodes on the surface vg = self._volgeom same_surfaces = self.white_surface == self.pial_surface surf_start = self.white_surface + start_mm surf_stop = self.pial_surface + stop_mm # allocate space for output # if n2v[i]=vs, then node i is associated with the voxels vs # # vs is a mapping from indices to relative position in grey matter # where 0 means white surface and 1 means pial surface # vs[k]=pos means that voxel with linear index k is # associated with relative positions pos0 # # CHECKME that I did not confuse (the order of) pial and white surface # # v2ns is a mapping from voxel indices to sets of nodes. n2vs = dict() # node to voxel indices mapping v2ns = dict() # by default, no voxels associated with each node for j in xrange(nv): n2vs[j] = None # different 'layers' (depths) in the grey matter for i in xrange(nsteps): whiteweight = start_fr + step * float(i) # ensure float pialweight = 1 - whiteweight # compute weighted intermediate surface in between pial and white surf_weighted = surf_stop * pialweight + surf_start * whiteweight # coordinates surf_xyz = surf_weighted.vertices # linear indices of voxels containing nodes lin_vox = vg.xyz2lin(surf_xyz) # which of these voxels are actually in the volume is_vox_in_vol = vg.contains_lin(lin_vox) if same_surfaces: # prevent division by zero - simply assign it whatever weight is here grey_matter_pos = np.zeros(lin_vox.shape) + whiteweight else: # coordinates of voxels vol_xyz = vg.lin2xyz(lin_vox) # compute relative position of each voxel in grey matter grey_matter_pos = self.surf_project_weights_nodewise(vol_xyz) for center_id in center_ids: # for each node on the surface # associate voxels with the present center node. # If a node is not in the volume, then no voxels are # associated with it. if is_vox_in_vol[center_id]: # no voxels (yet) associated with this node - make space if n2vs[center_id] is None: n2vs[center_id] = dict() vox_id = lin_vox[center_id] # node to voxel mapping n2vs[center_id][vox_id] = grey_matter_pos[center_id] # voxel to node mapping if not vox_id in v2ns: v2ns[vox_id] = set() v2ns[vox_id].add(center_id) return n2vs, v2ns def get_parameter_dict(self): ''' Returns a dictionary with the most important parameters of this instance''' parameter_dict = dict(volgeom=self.volgeom, volsurf_nvertices=self.white_surface.nvertices, nsteps=self.nsteps, start_fr=self.start_fr, stop_fr=self.stop_fr, start_mm=self.start_mm, stop_mm=self.stop_mm) parameter_dict['class'] = self.__class__.__name__ return parameter_dict class VolSurfMaximalMapping(VolSurfMapping): def __init__(self, vg, white, pial, intermediate=None, nsteps=10, start_fr=0.0, stop_fr=1.0, start_mm=0, stop_mm=0): ''' Represents the maximal mapping from nodes to voxels. 'maximal', in this context, means that to each node all voxels are associated that are contained in lines connecting white and grey matter. Each voxel can be associated with multiple nodes. Parameters ---------- volgeom: volgeom.VolGeom Volume geometry white: surf.Surface Surface representing white-grey matter boundary pial: surf.Surface Surface representing pial-grey matter boundary intermediate: surf.Surface (default: None). Surface representing intermediate surface. If omitted it is the node-wise average of white and pial. nsteps: int (default: 10) Number of steps from white to pial surface start_fr: float (default: 0) Relative start position of line in gray matter, 0.=white surface, 1.=pial surface. stop_fr: float (default: 1) Relative stop position of line (as in see start). start_mm: float (default: 0) Absolute start position offset (as in start_fr). stop_mm: float (default: 0) Absolute start position offset (as in start_fr). Notes ----- 'pial' and 'white' should have the same topology. ''' super(VolSurfMaximalMapping, self).__init__(vg=vg, white=white, pial=pial, intermediate=intermediate, nsteps=nsteps, start_fr=start_fr, stop_fr=stop_fr, start_mm=start_mm, stop_mm=stop_mm) def get_node2voxels_mapping(self): '''Returns a mapping from nodes to voxels''' node2voxels_mapping, _ = self._get_node_voxels_maximal_mapping() return node2voxels_mapping class VolSurfMinimalMapping(VolSurfMapping): def __init__(self, vg, white, pial, intermediate=None, nsteps=10, start_fr=0.0, stop_fr=1.0, start_mm=0, stop_mm=0): ''' Represents the minimal mapping from nodes to voxels. 'minimal', in this context, means that the mapping from voxels to nodes is many-to-one (i.e. each voxel is associated with at most one node) Each voxel can be associated with just a single node. Parameters ---------- volgeom: volgeom.VolGeom Volume geometry white: surf.Surface Surface representing white-grey matter boundary pial: surf.Surface Surface representing pial-grey matter boundary intermediate: surf.Surface (default: None). Surface representing intermediate surface. If omitted it is the node-wise average of white and pial. nsteps: int (default: 10) Number of steps from white to pial surface start_fr: float (default: 0) Relative start position of line in gray matter, 0.=white surface, 1.=pial surface. stop_fr: float (default: 1) Relative stop position of line (as in see start). start_mm: float (default: 0) Absolute start position offset (as in start_fr). stop_mm: float (default: 0) Absolute start position offset (as in start_fr). Notes ----- 'pial' and 'white' should have the same topology. ''' super(VolSurfMinimalMapping, self).__init__(vg=vg, white=white, pial=pial, intermediate=intermediate, nsteps=nsteps, start_fr=start_fr, stop_fr=stop_fr, start_mm=start_mm, stop_mm=stop_mm) def get_node2voxels_mapping(self): # start out with the maximum mapping, then prune it n2vs_max, v2ns_max = self._get_node_voxels_maximal_mapping() if __debug__ and 'SVS' in debug.active: nnodes = len(n2vs_max) nvoxels_max = sum(map(len, v2ns_max.itervalues())) nvoxels_max_per_node = float(nvoxels_max) / nnodes debug('SVS', 'Maximal node-to-voxel mapping: %d nodes, ' '%d voxels, %.2f voxels/node' % (nnodes, nvoxels_max, nvoxels_max_per_node)) debug('SVS', 'Starting injective pruning') # initialize mapping n2vs_min = dict((n, None if vs is None else dict()) for n, vs in n2vs_max.iteritems()) v2n_min = dict() # helper function to compute distance to intermediate surface dist_func = lambda (_, p): abs(p - .5) for v, ns in v2ns_max.iteritems(): # get pairs os nodes and the voxel positions ns_pos = [(n, n2vs_max[n].get(v)) for n in ns] # get node nearest to intermediate surface min_node, min_pos = min(ns_pos, key=dist_func) if n2vs_min[min_node] is None: n2vs_min[min_node] = dict() assert(not v in n2vs_min[min_node]) # no duplicates n2vs_min[min_node][v] = min_pos assert(not v in v2n_min) v2n_min[v] = min_node if __debug__ and 'SVS' in debug.active: nvoxels_min = len(v2n_min) nvoxels_min_per_node = float(nvoxels_min) / nnodes nvoxels_delta = nvoxels_max - nvoxels_min nvoxels_pruned_ratio = float(nvoxels_delta) / nvoxels_max debug('SVS', 'Pruned %d/%d voxels (%.1f%%), %.2f voxels/node' % (nvoxels_delta, nvoxels_max, nvoxels_pruned_ratio * 100, nvoxels_min_per_node)) return n2vs_min class VolSurfMinimalLowresMapping(VolSurfMinimalMapping): def __init__(self, vg, white, pial, intermediate=None, nsteps=10, start_fr=0.0, stop_fr=1.0, start_mm=0, stop_mm=0): ''' Represents the minimal mapping from nodes to voxels, incorporating the intermediate surface that can be of lower-res. 'minimal', in this context, means that the mapping from voxels to nodes is many-to-one (i.e. each voxel is associated with at most one node). Each node mapped must be present in the intermediate surface Each voxel can be associated with just a single node. Parameters ---------- volgeom: volgeom.VolGeom Volume geometry white: surf.Surface Surface representing white-grey matter boundary pial: surf.Surface Surface representing pial-grey matter boundary intermediate: surf.Surface (default: None). Surface representing intermediate surface. Unlike in its superclass this argument cannot be ommited here. nsteps: int (default: 10) Number of steps from white to pial surface start_fr: float (default: 0) Relative start position of line in gray matter, 0.=white surface, 1.=pial surface. stop_fr: float (default: 1) Relative stop position of line (as in see start). start_mm: float (default: 0) Absolute start position offset (as in start_fr). stop_mm: float (default: 0) Absolute start position offset (as in start_fr). Notes ----- 'pial' and 'white' should have the same topology. ''' if intermediate is None: raise RuntimeError("intermediate surface has to be specified") super(VolSurfMinimalLowresMapping, self).__init__(vg=vg, white=white, pial=pial, intermediate=intermediate, nsteps=nsteps, start_fr=start_fr, stop_fr=stop_fr, start_mm=start_mm, stop_mm=stop_mm) def get_node2voxels_mapping(self): n2v = super(VolSurfMinimalLowresMapping, self).\ get_node2voxels_mapping() # set low and high res intermediate surfaces lowres = surf.from_any(self._intermediate) highres = (self.pial_surface * .5) + \ (self.white_surface * .5) high2high_in_low = lowres.vonoroi_map_to_high_resolution_surf(highres) n_in_low2v = dict() ds = [] for n, v2pos in n2v.iteritems(): (n_in_low, d) = high2high_in_low[n] if v2pos is None: continue ds.append(d) if not n_in_low in n_in_low2v: # not there - just set the dictionary n_in_low2v[n_in_low] = v2pos else: # is there - see if it is none cur = n_in_low2v[n_in_low] if cur is None and v2pos is not None: # also overwrite (v2pos can also be None, that's fine) n_in_low2v[n_in_low] = v2pos elif v2pos is not None: # update for v, pos in v2pos.iteritems(): # minimal mapping, so voxel should not be there already assert(not v in n_in_low2v[n_in_low]) cur[v] = pos if __debug__ and 'SVS' in debug.active: ds = np.asarray(ds) mu = np.mean(ds) n = len(ds) s = np.std(ds) debug('SVS', 'Reassigned %d nodes by moving %.2f +/- %.2f to low-res', (n, mu, s)) return n_in_low2v class VolumeBasedSurface(surf.Surface): '''A surface based on a volume, where every voxel is a node. It has the empty topology, meaning there are no edges between nodes (voxels) Use case: provide volume-based searchlight behaviour. In that case finding neighbouring nodes is supposed to be faster using the circlearound_n2d method. XXX make a separate module?''' def __init__(self, vg): ''' Parameters ---------- vg: Volgeom.volgeom or str or NiftiImage volume to be used as a surface ''' self._vg = volgeom.from_any(vg) n = self._vg.nvoxels vertices = self._vg.lin2xyz(np.arange(n)) faces = np.zeros((0, 3), dtype=np.int) # call the parent's class constructor super(VolumeBasedSurface, self).__init__(vertices, faces, check=False) def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ['vg=%r' % self._vg] + prefixes return "%s(%s)" % (self.__class__.__name__, ', '.join(prefixes_)) def __str__(self): return '%s(volgeom=%s)' % (self.__class__.__name__, self._vg) def __reduce__(self): return (self.__class__, (self._vg,)) def __eq__(self, other): if not isinstance(other, VolumeBasedSurface): return False return self._vg == other._vg def circlearound_n2d(self, src, radius, metric='euclidean'): shortmetric = metric[0].lower() if shortmetric == 'e': v = self.vertices # make sure src is a 1x3 array if type(src) is tuple and len(src) == 3: src = np.asarray(src) if isinstance(src, np.ndarray): if src.shape not in ((1, 3), (3,), (3, 1)): raise ValueError("Illegal shape: should have 3 elements") src_coord = src if src.shape == (1, 3) else np.reshape(src, (1, 3)) else: src_coord = np.reshape(v[src, :], (1, 3)) # ensure it is a float src_coord = np.asanyarray(src_coord, dtype=np.float) # make a mask around center voxel2world = self._vg.affine world2voxel = np.linalg.inv(voxel2world) nrm = np.linalg.norm(voxel2world, 2) max_extent = np.ceil(radius / nrm + 1) src_ijk = self._vg.xyz2ijk(src_coord) # min and max ijk coordinates mn = (src_ijk.ravel() - max_extent).astype(np.int_) mx = (src_ijk.ravel() + max_extent).astype(np.int_) # set boundaries properly mn[mn < 0] = 0 sh = np.asarray(self._vg.shape[:3]) mx[mx > sh] = sh[mx > sh] msk_ijk = np.zeros(self._vg.shape[:3], np.int) msk_ijk[mn[0]:mx[0], mn[1]:mx[1], mn[2]:mx[2]] = 1 msk_lin = msk_ijk.ravel() # indices of voxels around the mask idxs = np.nonzero(msk_lin)[0] d = volgeom.distance(src_coord, v[idxs])[0, :] n = d.size node2dist = dict((idxs[i], d[i]) for i in np.arange(n) if d[i] <= radius) return node2dist elif shortmetric == 'd': return {src:0.} else: raise ValueError("Illegal metric: %s" % metric) def from_volume(v): '''Makes a pseudo-surface from a volume. Each voxels corresponds to a node; there is no topology. A use case is mimicking traditional volume-based searchlights Parameters ---------- v: str of NiftiImage input volume Returns ------- s: surf.Surface Surface with an equal number as nodes as there are voxels in the input volume. The associated topology is empty. ''' vg = volgeom.from_any(v) vs = VolumeBasedSurface(vg) return VolSurfMaximalMapping(vg, vs, vs, vs) pymvpa2-2.6.4/mvpa2/misc/surfing/volume_mask_dict.py000066400000000000000000001063521323370031300224570ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Dictionary (mapping) for storing several volume masks. A typical use case is storing results from (surface-based) voxel selection. @author: nick WiP. TODO: make target to sources dictionary computations 'lazy'-only compute the first time this is asked. XXX How to deal with __setstate__ and __getstate__ - have to flag somehow whether this mapping was present. """ __docformat__ = 'restructuredtext' from collections import Mapping import numpy as np from mvpa2.base import externals from mvpa2.misc.surfing import volgeom from mvpa2.support.utils import deprecated if externals.exists('nibabel'): import nibabel as nb if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load class VolumeMaskDictionary(Mapping): """Collection of 3D volume masks, indexed by integers or strings. Voxels in a mask are represented sparsely, that is by linear indices in the [0, n-1] range, where n is the number of voxels in the volume. A typical use case is storing voxel selection results, which can subsequently be used for running searchlights. An alternative use case is storing a set of regions-of-interest masks. Because this class extends Mapping, it can be indexed as any other mapping (like dicts). Currently masks cannot be removed, however, and adding masks is performed through the add(...) function rather than item assignment. In some functions the terminology 'source' and 'target' is used. A source refers to the label associated with masks (and can be used as a key in the mapping), while a target is an element from the value associated in this mapping (i.e. typically a target is a linear voxel index). Besides storing voxel indices, each mask can also have additional 'auxiliary' information associated, such as distance from the center or its relative position in grey matter. """ # TODO: docs for src2nbr and src2aux def __init__(self, vg, source, meta=None, src2nbr=None, src2aux=None): """Initialize a VolumeMaskDictionary Parameters ---------- vg: volgeom.VolGeom or fmri_dataset-like or str data structure that contains volume geometry information. source: Surface.surf or numpy.ndarray or None structure that contains the geometric information of (the centers of) each mask. In the case of surface-searchlights this should be a surface used as the center for searchlights. meta: dict or None Optional meta data stored with this instance (such as searchlight radius and volumetric information). A use case is storing an instance and loading it later, and then checking whether the meta information is correct when it used to run a searchlight analysis. src2nbr: dict or None In a typical use case it contains a mapping from node center indices to lists of voxel indices. src2aux: dict or None In a typical use case it can contain auxiliary information such as distance of each voxel to each center. """ self._volgeom = volgeom.from_any(vg) self._source = source self._src2nbr = dict() if src2nbr is None else src2nbr self._src2aux = dict() if src2nbr is None else src2aux self._meta = meta # this attribute is initially set to None # upon the first call that requires an inverse mapping # it is generated. self._lazy_nbr2src = None def __repr__(self, prefixes=None): if prefixes is None: prefixes = [] prefixes_ = ['vg=%r' % self._volgeom, 'source=%r' % self._source] + prefixes if self._meta is not None: prefixes_.append('meta=%r' % self._meta) if self._src2nbr is not None: prefixes_.append('src2nbr=%r' % self._src2nbr) if self._src2aux is not None: # using the representation of the full _src2aux may cause # a significant slow-down, therefore only list the keys # and not any values dict_summary=', '.join('%s=<...>' % k for k in self._src2aux) prefixes_.append('src2aux=%s(%s)' % (type(self._src2aux), dict_summary)) return "%s(%s)" % (self.__class__.__name__, ','.join(prefixes_)) def __str__(self): return '%s(%d centers, volgeom=%s)' % (self.__class__.__name__, len(self._src2nbr), self._volgeom) def add(self, src, nbrs, aux=None): """Add a volume mask Parameters ---------- src: int or str index or name of volume mask. src should not be already present in this dictionary nbrs: list of int linear voxel indices of the voxels in the mask aux: dict or None auxiliary properties associated with (the voxels in) the volume mask. If the current dictionary instance alraedy has stored auxiliary properties for other masks, then the set of keys in the current mask should be the same as for other masks. In addition, the length of each value in aux should be either the number of elements in nbrs or one. """ if not type(src) in [int, basestring]: # for now to avoid unhasbable type raise TypeError("src should be int or str") if src in self._src2nbr: raise ValueError('%s already in %s' % (src, self)) self._src2nbr[src] = np.asarray(nbrs, dtype=np.int) if self._lazy_nbr2src is not None: self._add_target2source(src) if aux: n = len(nbrs) expected_keys = set(self.aux_keys()) if expected_keys and (set(aux) != expected_keys): raise ValueError("aux label mismatch: %s != %s" % (set(aux), expected_keys)) for k, v in aux.iteritems(): if not k in self._src2aux: self._src2aux[k] = dict() # ensure that values have the same datatype for different keys if len(self._src2aux[k]) == 0: v_dtype = None else: v_dtype = next(self._src2aux[k].itervalues()).dtype if isinstance(v, (list, tuple, int, float, np.ndarray)): v_arr = np.asanyarray(v, dtype=v_dtype).ravel() else: raise ValueError('illegal type %s for %s' % (type(v), v)) if len(v_arr) not in (n, 1): raise ValueError('size mismatch: size %d != %d or 1' % (len(v_arr), n)) self._src2aux[k][src] = v_arr def get_tuple_list(self, src, *labels): """Return a list of tuples with mask indices and/or aux information. Parameters ---------- src: int or str index of mask *labels: str or None List of labels to return. None refers to the voxel indices of the mask. Returns ------- tuples: list of tuple N tuples each with len(labels) values, where N is the number of voxels in the mask indexed by src """ idxs = self[src] n = len(idxs) tuple_lists = [] for label in labels: if label is None: tuple_list_elem = idxs.tolist() else: vs = self.get_aux(src, label) if len(vs) == 1: tuple_list_elem = [vs[0]] * n else: tuple_list_elem = vs.tolist() tuple_lists.append(tuple_list_elem) return zip(*tuple_lists) @deprecated("use .get_tuple_list instead") def get_tuple_list_dict(self, *labels): """Return a dictionary of mapping that maps each mask index to tuples with mask indices and/or auxiliary information. Parameters ---------- *labels: str or None List of labels to return. None refers to the voxel indices of the mask. tuple_dict: dict a mapping so that get_tuple_list(s, labels)==get_tuple_list_dict(labels)[s] """ d = dict() for src in self.keys(): d[src] = self.get_tuple_list(src, *labels) return d # XXX: should not be logically 'get_indices'? # while 'def get' could just return the mask? # YYY: it's primary purpose is to store a mapping from # node indices to lists of voxel indices. In that use case # it would make sense to keep it as a mapping. # # XXX: It overloads original Mapping.get which also # had default... should it be the same here may be? # YYY: I don't see any solution with a reasonable default. def get(self, src): """Return the linear voxel indices of a mask Parameters ---------- src: int index of mask Returns ------- idxs: list of int linear voxel indices indexed by src """ return self._src2nbr[src].tolist() @deprecated("use .get_aux instead") def aux_get(self, src, label): return self.get_aux(src, label) def get_aux(self, src, label): '''Auxiliary information of a mask Parameters ---------- src: int index of mask label: str label of auxiliary information Returns ------- vals: list auxiliary information labelled label for mask src ''' labels = self.aux_keys() if not label in labels: raise ValueError("%s not in %r" % (label, labels)) if not label in self._src2aux: msg = ("Mismatch for key %r" if src in self._src2nbr else "Unknown key %r") raise ValueError((msg + ', label %r') % (src, label)) return self._src2aux[label][src].tolist() # XXX: get_aux_labels? # YYY: aux is also a dictionary (actually a dictionary with dictionaries) # so it seems more logical to use 'keys' instead of 'labels'. def aux_keys(self): '''Names of auxiliary labels Returns ------- keys: list of str Names of auxiliary labels that are supported by get_aux ''' return self._src2aux.keys() def _ensure_has_target2sources(self): '''Helper function to ensure that inverse mapping is set properly''' if not self._lazy_nbr2src: self._lazy_nbr2src = dict() for src in self.keys(): self._add_target2source(src) def _add_target2source(self, src, targets=None): if targets is None: targets = self[src] contains = self.volgeom.contains_lin(np.asarray(targets)) for i, target in enumerate(targets): if not contains[i]: raise ValueError("Target not in volume: %s" % target) if not target in self._lazy_nbr2src: self._lazy_nbr2src[target] = set() self._lazy_nbr2src[target].add(src) def target2sources(self, nbr): """Find the indices of masks that map to a linear voxel index Parameters ---------- nbr: int Linear voxel index Returns ------- srcs: list of int Indices i for which get(i) contains nbr """ if type(nbr) in (list, tuple): return map(self.target2sources, nbr) self._ensure_has_target2sources() if not nbr in self._lazy_nbr2src: return None return self._lazy_nbr2src[nbr] def get_targets(self): """Return list of voxels that are in one or more masks Returns ------- idxs: list of int Linear indices of voxels in one or more masks """ self._ensure_has_target2sources() return sorted(self._lazy_nbr2src.keys()) def _check_has_keys(self, keys=None, raise_=True): """Check that a list of keys is present; if not raise an error Parameters ---------- keys: list or None List of keys that must be a subset of self.keys() raise_: boolean If True an error is raised if at least one key is not present in self.keys() Returns ------- is_present: boolean If keys is None this function always returns True. Otherwise this function returns True if and only if every key in keys is present in self.keys(). If that is not the case and raise_ is True and exception is raised. """ if keys is None: return True missing_keys = set(keys).difference(set(self.keys())) n_missing = len(missing_keys) has_missing = n_missing > 0 if has_missing and raise_: raise KeyError('%d keys (including "%s") not present' % (n_missing, missing_keys.pop())) return has_missing def get_mask(self, keys=None): """Return a mask for voxels that are included in one or more masks Parameters ---------- keys: list or None Indices of center ids for which the associated masks must be used. If None, all keys are used. Returns ------- msk: np.ndarray Three-dimensional array with True for voxels that are included in one or more masks, and False elsewhere Notes ----- When using surface-based searchlights, a use case of this function is to get the voxels that were associated with the searchlights in a subset of all nodes on a cortical surface. """ self._check_has_keys(keys) self._ensure_has_target2sources() m_lin = np.zeros((self.volgeom.nvoxels, 1), dtype=np.int8) if keys is None: keys = self.keys() for key in keys: m_lin[self[key]] = 1 return np.reshape(m_lin, self.volgeom.shape[:3]) def get_nifti_image_mask(self, keys=None): """Return a NIfTI image with the voxels included in any mask Parameters ---------- keys: list or None Indices of center ids for which the associated masks must be used. If None, all keys are used. Returns ------- msk: nibabel.Nifti1Image Nifti image where voxels have the value 1 for voxels that are included in one or more masks, and 0 elsewhere Notes ----- When using surface-based searchlights, a use case of this function is to get the voxels that were associated with the searchlights in a subset of all nodes on a cortical surface. """ # XXX: my above dtype=np.int8 might kick back here, e.g. # fslview iirc had difficulty with those # YYY: should we change to a different data type, e.g. int32? return nb.Nifti1Image(self.get_mask(keys=keys), self.volgeom.affine) def get_voxel_indices(self, keys=None): """Returns voxel indices at least once selected Parameters ---------- keys: list or None Indices of center ids for which the associated masks must be used. If None, all keys are used. Returns ------- voxel_indices: list of tuple List of triples with sub-voxel indices that were selected at least once since the initalization of this class. That is, a triple (i,j,k) referring to a voxel V is an element of voxel_indices iff there is at least one key k so that self.get(k) contains the linear index of voxel V. Notes ----- When using surface-based searchlights, a use case of this function is to get the voxels that were associated with the searchlights in a subset of all nodes on a cortical surface. """ self._check_has_keys(keys=keys) if keys is None: keys = self.keys() # get linear voxel indices lin_vox_set = set.union(*(set(self[k]) for k in keys)) # convert to array lin_vox_arr = np.asarray(list(lin_vox_set)) return map(tuple, self.volgeom.lin2ijk(lin_vox_arr)) def get_dataset_feature_mask(self, ds, keys=None): """For a dataset return a mask of features that were selected at least once Parameters ---------- ds: Dataset A dataset with field .fa.voxel_indices keys: list or None Indices of center ids for which the associated masks must be used. If None, all keys are used. Returns ------- mask: np.ndarray (boolean) binary mask with ds.nfeatures values, with True for features that were selected at least once once since the initalization of this class. That is, for a voxel (feature) with feature index i it holds that mask[I] is True iff there is at least one key k so that i in self.get(k). Notes ----- When using surface-based searchlights, a use case of this function is to get the voxels that were associated with the searchlights in a subset of all nodes on a cortical surface. """ # convert to tuples ds_voxel_indices = map(tuple, ds.fa.voxel_indices) sel_voxel_indices = map(tuple, self.get_voxel_indices(keys=keys)) set_ds_voxel_indices = set(ds_voxel_indices) set_sel_voxel_indices = set(sel_voxel_indices) not_in_ds = set_sel_voxel_indices - set_ds_voxel_indices if not_in_ds: raise ValueError('Found %d voxel indices selected that were ' 'not in dataset, first one is %s' % (len(not_in_ds), not_in_ds.pop())) return np.asarray([d in sel_voxel_indices for d in ds_voxel_indices]) def get_minimal_dataset(self, ds, keys=None): """For a dataset return only portion with features which were selected Parameters ---------- ds: Dataset A dataset with field .fa.voxel_indices keys: list or None Indices of center ids for which the associated masks must be used. If None, all keys are used. Returns ------- Dataset A dataset containing features that were selected at least once Notes ----- The rationale of this function is that voxel selection can be run first (without using a mask for a dataset), then the dataset can be reduced to contain only voxels that were selected by voxel selection """ ds_mask = self.get_dataset_feature_mask(ds, keys=keys) return ds[:, ds_mask] def __getitem__(self, key): return self.get(key) def __len__(self): return len(self.__keys__()) def __keys__(self): return self._src2nbr.keys() def __iter__(self): return iter(self.__keys__()) def __reduce__(self): return (self.__class__, (self._volgeom, self._source), self.__getstate__()) @deprecated("should be used for testing compatibility only - " "otherwise use .__reduce__ instead") def _reduce_legacy(self): return (self.__class__, (self._volgeom, self._source), self._getstate_legacy()) def _getstate(self): s = (self._volgeom, self._source, self._meta, self._src2nbr, self._src2aux) return s @deprecated("should be used for testing compatibility only - " "otherwise use ._getstate instead") def _getstate_legacy(self): return self._getstate() def __getstate__(self): # Note: due to issues with saving self_nbr2src, it is not returned # as part of the current state. instead it is derived when # __setstate__ is called. # new as of Dec 2013: support more efficient storage method for # h5save/load s = self._getstate() # because of h5py issues when assigning values in the tuple s, # here a new tuple is created s3 = _dict_with_arrays2array_tuple(s[3]) s4 = _dict_with_arrays2array_tuple(s[4]) ss = s[:3] + (s3, s4) return ss def _setstate(self, s): # helper function that actually sets the state # it can be called by either __setstate__ or _setstate_legacy. # the rationale for a separate function is that it allows for # setting the state either with the up-to-date or the legacy method if len(s) == 4: # computatibilty thing: previous version (before Sep 12, 2013) did # not store meta self._volgeom, self._source, self._src2nbr, self._src2aux = s self._meta = False # signal that it is old (no meta information) warning('Using old (pre-12 Sep 2013) mapping - no meta data') else: self._volgeom, self._source, self._meta, self._src2nbr, self._src2aux = s @deprecated("should be used for testing compatibility only - " "otherwise use ._setstate instead") def _setstate_legacy(self, s): # helper function to set the state as it was done prior to Dec 2013. # this function is defined separately so that unit tests can # override the __setstate__ method by this method and check for # compatibility self._setstate(s) def __setstate__(self, s): self._setstate(s) # new as of Dec 2013: use more efficient storage method for h5save/load self._src2nbr = _array_tuple2dict_with_arrays(self._src2nbr) self._src2aux = _array_tuple2dict_with_arrays(self._src2aux) def __eq__(self, other): """Compare this instance with another instance for equality Parameters ---------- other: VolumeMaskDictionary instance with which the current instance is compared. Returns ------- eq: bool True iff the current instance has the same layout as other, the same keys, and matching masks. This function does *not* consider auxiliary properties. """ if not self.is_same_layout(other): return False if set(self.keys()) != set(other.keys()): return False for k in self.keys(): if self[k] != other[k]: return False if set(self.aux_keys()) != set(other.aux_keys()): return False for lab in self.aux_keys(): for k in self.keys(): if self.get_aux(k, lab) != other.get_aux(k, lab): return False if self.meta != False or other.meta != False: # both are 'new' ones with if self.meta != other.meta: return False return True @property def meta(self): '''Return meta information such as number of node indices Returns ------- meta: dict or False dictionary with meta information, or False if no such information is present. The latter case is to be compatible with old-style instances loaded with h5load ''' return dict(self._meta) if type(self._meta) is dict else self._meta def is_same_layout(self, other): '''Check whether another instance has the same spatial layout Parameters ---------- other: VolumeMaskDictionary the instance that is compared to the current instance Returns ------- same: boolean True iff the other instance has the same volume geometry and source as the current instance ''' if not isinstance(other, self.__class__): return False return self.volgeom == other.volgeom and self.source == other.source # XXX: shouldn't it be 'update' mimicing dict.update? # YYY: 'update' does not raise an error if the key to be added is # is already present; this method does. def merge(self, other): """Add masks from another instance Parameters ---------- other: VolumeMaskDictionary The instance from which masks are added to the current one. The keys in the current and other instance should be disjoint, and auxiliary properties (if present) should have the same labels. """ if not self.is_same_layout(other): raise ValueError("Cannot merge %s with %s" % (self, other)) if not other: # nothing to add, so we're done return aks = self.aux_keys() if set(aks) != set(other.aux_keys()): if len(self.keys()) == 0: # current instance is empty, so use the keys from # the other (necessarily non-empty because of the check above) # instance aks = other.aux_keys() else: raise ValueError('Different keys in merge: %s != %s' % (aks, other.aux_keys())) # TODO: optimization in case either one or both already have the # inverse mapping from voxels to nodes # For now simply set everything to empty. # if self._lazy_nbr2src is None and not other._lazy_nbr2src is None: # self._ensure_has_target2sources() # elif other._lazy_nbr2src is None and not self._lazy_nbr2src is None: # other._ensure_has_target2sources() # elif not (other._lazy_nbr2src is None or self._lazy_nbr2src is None): # for k, vs in other._lazy_nbr2src.iteritems(): # self._add_target2source(k, vs) self._lazy_nbr2src = None for k in other.keys(): idxs = other[k] a_dict = dict() for ak in aks: a_dict[ak] = other.get_aux(k, ak) if not a_dict: a_dict = None self.add(k, idxs, a_dict) def xyz_target(self, ts=None): """Compute the x,y,z coordinates of one or more voxels Parameters ---------- ts: list of int or None list of voxels for which coordinates should be computed. If ts is None, then coordinates for all voxels that are mapped are computed Returns ------- xyz: numpy.ndarray Array with size len(ts) x 3 with x,y,z coordinates """ if ts is None: ts = list(self.get_targets()) t_arr = np.reshape(np.asarray(ts), (-1,)) return self.volgeom.lin2xyz(t_arr) def xyz_source(self, ss=None): """Computes the x,y,z coordinates of one or more mask centers Parameters ---------- ss: list of int or None list of mask center indices for which coordinates should be computed. If ss is None, then coordinates for all masks that are mapped are computed. If is required that when the current instance was initialized, the source-argument was either a surf.Surface or a numpy.ndarray. """ # TODO add dataset and volgeom support coordinate_labels = [None, 'vertices', 'coordinates'] coordinates = None for coordinate_label in coordinate_labels: s = self.source if coordinate_label and hasattr(s, coordinate_label): s = getattr(s, coordinate_label) if isinstance(s, np.ndarray): coordinates = s if coordinates is None: raise ValueError("Cannot find coordinates in %r" % self.source) if ss is None: ss = self.keys() if not isinstance(ss, np.ndarray): if type(ss) is int: ss = [ss] ss = np.asarray(list(ss)).ravel() return coordinates[ss] @property def volgeom(self): """Volume geometry information.""" return self._volgeom @property def source(self): """Geometric information of (the centers of) each mask. In the case of surface-searchlights this should be a surface used as the center for searchlights. """ return self._source def target2nearest_source(self, target, fallback_euclidean_distance=False): """Find the voxel nearest to a mask center Parameters ========== target: int linear index of a voxel fallback_euclidean_distance: bool (default: False) Whether to use a euclidean distance metric if target is not in any of the masks in this instance Returns ======= src: int key index for the mask that contains target and is nearest to target. If target is not contained in any mask, then None is returned if fallback_euclidean_distance is False, and the index of the source nearest to target using a Euclidean distance metric is returned if fallback_euclidean_distance is True """ targets = [] if type(target) in (list, tuple): for t in target: targets.append(t) else: targets = [target] xyz_trg = self.xyz_target(np.asarray(targets)) src = self.target2sources(targets) flat_srcs = [] for s in src: if s: for j in s: flat_srcs.append(j) if not flat_srcs: if fallback_euclidean_distance: flat_srcs = self.keys() else: return None xyz_srcs = self.xyz_source(flat_srcs) d = volgeom.distance(xyz_srcs, xyz_trg) i = np.argmin(d) # d is a 2D array, get the row number with the lowest d source = flat_srcs[i // xyz_trg.shape[0]] return source def source2nearest_target(self, source): """Find the voxel nearest to a mask center Parameters ========== src: int mask index Returns ======= target: int linear index of the voxel that is contained in the mask associated with src and nearest (Euclidean distance) to src. """ trgs = self.__getitem__(source) trg_xyz = self.xyz_target(trgs) src_xyz = self.xyz_source(source) d = volgeom.distance(trg_xyz, src_xyz) i = np.argmin(d) return trgs[i / src_xyz.shape[0]] def _dict_with_arrays2array_tuple(d): '''Helper: converts to a more efficient tuple-based representation This function converts a canonical representation of _src2nbr and _src2aux as dicts to a more efficient tuple-based representation. As a result, i/o operations using h5{load,save} are faster. Input: dict d where for each key k, each value v[k] is a numpy array Output: a tuple (keys, lengths, data) with each element a numpy array It holds that: - keys.tolist()==d.keys() - if k is the i-th element in d.keys(), then v[k]==data[offset+lengths[i]] where offset=np.sum(lenghts[:i]) The 'inverse' of this function is _array_tuple2dict_with_arrays ''' if d is None: return None if all(type(v) is dict for v in d.values()): # probably src2aux, so run recursively return dict((k, _dict_with_arrays2array_tuple(v)) for k, v in d.iteritems()) keys = np.asarray(d.keys()) lengths = np.asarray([len(d[key]) for key in keys]) ntotal = np.sum(lengths) data = None # in case there are no keys pos = 0 def _same_dtype(p, q): # helper function that returns whether p and q are of the same subtype. # this function returns True if, for example: # p.dtype==np.float32 and q.dtype==np.float64 pt, qt = pqt = p.dtype, q.dtype return pt == qt or np.issubdtype(pt, qt) for i, (key, length) in enumerate(zip(keys, lengths)): v = d[key] if i == 0: value_dtypes=[d[key].dtype for key in keys] common_dtype=np.find_common_type(value_dtypes,[]) if common_dtype==np.dtype('O'): raise TypeError('Elements for auxilery attribute "%s" ' 'have different types' % key) # allocate space for all data in d data = np.zeros((ntotal,), dtype=common_dtype) idxs = np.arange(length) + pos data[idxs] = v pos += length return keys, lengths, data def _array_tuple2dict_with_arrays(kld): '''Helper: converts from a tuple-based representation to dictionaries This function converts a more efficient tuple-based representation of _src2nbr and _src2aux to canonical dicts Input: a tuple (keys, lengths, data) with each element a numpu array Output: dict d where for each key k, each value v[k] is a numpy array It holds that: - keys.tolist()==d.keys() - if k is the i-th element in d.keys(), then v[k]==data[offset+lengths[i]] where offset=np.sum(lenghts[:i]) The 'inverse' of this function is _dict_with_arrays2array_tuple ''' if kld is None: return None if type(kld) is dict: if all(type(v) in (tuple, dict) for v in kld.values()): # probably src2aux, so run recursively return dict((k, _array_tuple2dict_with_arrays(v)) for k, v in kld.iteritems()) elif all(isinstance(v, np.ndarray) for v in kld.values()): # old-style mapping return kld else: raise ValueError('Unrecognized dict: %s' % kld) keys, lengths, data = kld # keys must be python int or str, not numpy int or str keys = keys.tolist() # space for output d = dict() pos = 0 for key, length in zip(keys, lengths): d[key] = data[pos + np.arange(length)] pos += length if pos != data.size: raise ValueError('data size mismatch: expected %s, found %s' % (data.size, pos)) return d def from_any(s): """Load (if a string) or just return voxel selection Parameters ---------- s: basestring or volume_mask_dict.VolumeMaskDictionary if a string it is assumed to be a file name and loaded using h5load. If a volume_mask_dict.VolumeMaskDictionary then it is returned. Returns ------- r: volume_mask_dict.VolumeMaskDictionary """ if isinstance(s, basestring): vs = h5load(s) return from_any(vs) elif isinstance(s, VolumeMaskDictionary): return s else: raise ValueError("Unknown type %s" % (type(s))) pymvpa2-2.6.4/mvpa2/misc/transformers.py000066400000000000000000000327131323370031300202010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Simply functors that transform something.""" _DEV_DOC = """ Follow the convetion that functions start with lower case, and classes with uppercase letter. """ __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals, warning from mvpa2.base.state import ConditionalAttribute, ClassWithCollections if __debug__: from mvpa2.base import debug def Absolute(x): """ Returns the elementwise absolute of any argument. Parameters ---------- x : scalar or sequence """ return np.absolute(x) ##REF: Name was automagically refactored def one_minus(x): """Returns elementwise '1 - x' of any argument.""" return 1 - x def Identity(x): """Return whatever it was called with.""" return x ##REF: Name was automagically refactored def first_axis_mean(x): """Mean computed along the first axis.""" return np.mean(x, axis=0) ##REF: Name was automagically refactored def first_axis_sum_not_zero(x): """Sum computed over first axis of whether the values are not equal to zero.""" return (np.asarray(x)!=0).sum(axis=0) ##REF: Name was automagically refactored def second_axis_mean(x): """Mean across 2nd axis Use cases: - to combine multiple sensitivities to get sense about mean sensitivity across splits """ return np.mean(x, axis=1) def subtract_mean(x): """Subtract mean across first axis """ return x - np.mean(x, axis=0) def sum_of_abs(x): """Sum of absolute values along the 2nd axis Use cases: - to combine multiple sensitivities to get sense about what features are most influential """ return np.abs(x).sum() def max_of_abs(x): """Max of absolute values along the 2nd axis """ return np.abs(x).max() ##REF: Name was automagically refactored def grand_mean(x): """Just what the name suggests.""" return np.mean(x) ##REF: Name was automagically refactored def l2_normed(x, norm=1.0, reverse=False): """Norm the values so that regular vector norm becomes `norm` More verbose: Norm that the sum of the squared elements of the returned vector becomes `norm`. """ xnorm = np.linalg.norm(x) return x * (norm/xnorm) ##REF: Name was automagically refactored def l1_normed(x, norm=1.0, reverse=False): """Norm the values so that L_1 norm (sum|x|) becomes `norm`""" xnorm = np.sum(np.abs(x)) return x * (norm/xnorm) ##REF: Name was automagically refactored def rank_order(x, reverse=False): """Rank-order by value. Highest gets 0""" # XXX was Yarik on drugs? please simplify this beast nelements = len(x) indexes = np.arange(nelements) t_indexes = indexes if not reverse: t_indexes = indexes[::-1] tosort = zip(x, indexes) tosort.sort() ztosort = zip(tosort, t_indexes) rankorder = np.empty(nelements, dtype=int) rankorder[ [x[0][1] for x in ztosort] ] = \ [x[1] for x in ztosort] return rankorder ##REF: Name was automagically refactored def reverse_rank_order(x): """Convinience functor""" return rank_order(x, reverse=True) class OverAxis(object): """Helper to apply transformer over specific axis """ def __init__(self, transformer, axis=None): """Initialize transformer wrapper with an axis. Parameters ---------- transformer A callable to be used axis : None or int If None -- apply transformer across all the data. If some int -- over that axis """ self.transformer = transformer # sanity check if not (axis is None or isinstance(axis, int)): raise ValueError, "axis must be specified by integer" self.axis = axis def __call__(self, x, *args, **kwargs): transformer = self.transformer axis = self.axis if axis is None: return transformer(x, *args, **kwargs) x = np.asanyarray(x) shape = x.shape if axis >= len(shape): raise ValueError, "Axis given in constructor %d is higher " \ "than dimensionality of the data of shape %s" % (axis, shape) # WRONG! ;-) #for ind in xrange(shape[axis]): # results.append(transformer(x.take([ind], axis=axis), # *args, **kwargs)) # TODO: more elegant/speedy solution? shape_sweep = shape[:axis] + shape[axis+1:] shrinker = None """Either transformer reduces the dimensionality of the data""" #results = np.empty(shape_out, dtype=x.dtype) for index_sweep in np.ndindex(shape_sweep): if axis > 0: index = index_sweep[:axis] else: index = () index = index + (slice(None),) + index_sweep[axis:] x_sel = x[index] x_t = transformer(x_sel, *args, **kwargs) if shrinker is None: if np.isscalar(x_t) or x_t.shape == shape_sweep: results = np.empty(shape_sweep, dtype=x.dtype) shrinker = True elif x_t.shape == x_sel.shape: results = np.empty(x.shape, dtype=x.dtype) shrinker = False else: raise RuntimeError, 'Not handled by OverAxis kind of transformer' if shrinker: results[index_sweep] = x_t else: results[index] = x_t return results class DistPValue(ClassWithCollections): """Converts values into p-values under vague and non-scientific assumptions """ nulldist_number = ConditionalAttribute(enabled=True, doc="Number of features within the estimated null-distribution") positives_recovered = ConditionalAttribute(enabled=True, doc="Number of features considered to be positives and which were recovered") def __init__(self, sd=0, distribution='rdist', fpp=None, nbins=400, **kwargs): """L2-Norm the values, convert them to p-values of a given distribution. Parameters ---------- sd : int Samples dimension (if len(x.shape)>1) on which to operate distribution : string Which distribution to use. Known are: 'rdist' (later normal should be there as well) fpp : float At what p-value (both tails) if not None, to control for false positives. It would iteratively prune the tails (tentative real positives) until empirical p-value becomes less or equal to numerical. nbins : int Number of bins for the iterative pruning of positives WARNING: Highly experimental/slow/etc: no theoretical grounds have been presented in any paper, nor proven """ externals.exists('scipy', raise_=True) ClassWithCollections.__init__(self, **kwargs) self.sd = sd if not (distribution in ['rdist']): raise ValueError, "Actually only rdist supported at the moment" \ " got %s" % distribution self.distribution = distribution self.fpp = fpp self.nbins = nbins def __call__(self, x): from mvpa2.support.scipy.stats import scipy import scipy.stats as stats # some local bindings distribution = self.distribution sd = self.sd fpp = self.fpp nbins = self.nbins x = np.asanyarray(x) shape_orig = x.shape ndims = len(shape_orig) # (very) old numpy had different format of returned bins -- # there were not edges but center points. We care here about # center points, so we will transform edge points into center # points for newer versions of numpy numpy_center_points = externals.versions['numpy'] < (1, 1) # XXX May be just utilize OverAxis transformer? if ndims > 2: raise NotImplementedError, \ "TODO: add support for more than 2 dimensions" elif ndims == 1: x, sd = x[:, np.newaxis], 0 # lets transpose for convenience if sd == 0: x = x.T # Output p-values of x in null-distribution pvalues = np.zeros(x.shape) nulldist_number, positives_recovered = [], [] # finally go through all data nd = x.shape[1] if __debug__: if nd < x.shape[0]: warning("Number of features in DistPValue lower than number of" " items -- may be incorrect sd=%d was provided" % sd) for i, xx in enumerate(x): dist = stats.rdist(nd-1, 0, 1) xx /= np.linalg.norm(xx) if fpp is not None: if __debug__: debug('TRAN_', "starting adaptive adjustment i=%d" % i) # Adaptive adjustment for false negatives: Nxx, xxx, pN_emp_prev = len(xx), xx, 1.0 Nxxx = Nxx indexes = np.arange(Nxx) """What features belong to Null-distribution""" while True: hist, bins = np.histogram(xxx, bins=nbins, normed=False) pdf = hist.astype(float)/Nxxx if not numpy_center_points: # if we obtain edge points for bins -- take centers bins = 0.5 * (bins[0:-1] + bins[1:]) bins_halfstep = (bins[1] - bins[2])/2.0 # theoretical CDF # was really unstable -- now got better ;) dist_cdf = dist.cdf(bins) # otherwise just recompute manually # dist_pdf = dist.pdf(bins) # dist_pdf /= np.sum(dist_pdf) # XXX can't recall the function... silly # probably could use np.integrate cdf = np.zeros(nbins, dtype=float) #dist_cdf = cdf.copy() dist_prevv = cdf_prevv = 0.0 for j in range(nbins): cdf_prevv = cdf[j] = cdf_prevv + pdf[j] #dist_prevv = dist_cdf[j] = dist_prevv + dist_pdf[j] # what bins fall into theoretical 'positives' in both tails p = (0.5 - np.abs(dist_cdf - 0.5) < fpp/2.0) # amount in empirical tails -- if we match theoretical, we # should have total >= p pN_emp = np.sum(pdf[p]) # / (1.0 * nbins) if __debug__: debug('TRAN_', "empirical p=%.3f for theoretical p=%.3f" % (pN_emp, fpp)) if pN_emp <= fpp: # we are done break if pN_emp > pN_emp_prev: if __debug__: debug('TRAN_', "Diverging -- thus keeping last result " "with p=%.3f" % pN_emp_prev) # we better restore previous result indexes, xxx, dist = indexes_prev, xxx_prev, dist_prev break pN_emp_prev = pN_emp # very silly way for now -- just proceed by 1 bin keep = np.logical_and(xxx > bins[0], # + bins_halfstep, xxx < bins[-1]) # - bins_halfstep) if __debug__: debug('TRAN_', "Keeping %d out of %d elements" % (np.sum(keep), Nxxx)) # Preserve them if we need to "roll back" indexes_prev, xxx_prev, dist_prev = indexes, xxx, dist # we should remove those which we assume to be positives and # which should not belong to Null-dist xxx, indexes = xxx[keep], indexes[keep] # L2 renorm it xxx = xxx / np.linalg.norm(xxx) Nxxx = len(xxx) dist = stats.rdist(Nxxx-1, 0, 1) Nindexes = len(indexes) Nrecovered = Nxx - Nindexes nulldist_number += [Nindexes] positives_recovered += [Nrecovered] if __debug__: if distribution == 'rdist': assert(dist.args[0] == Nindexes-1) debug('TRAN', "Positives recovery finished with %d out of %d " "entries in Null-distribution, thus %d positives " "were recovered" % (Nindexes, Nxx, Nrecovered)) # And now we need to perform our duty -- assign p-values #dist = stats.rdist(Nindexes-1, 0, 1) pvalues[i, :] = dist.cdf(xx) # XXX we might add an option to transform it to z-scores? result = pvalues # charge conditional attributes # XXX might want to populate them for non-adaptive handling as well self.ca.nulldist_number = nulldist_number self.ca.positives_recovered = positives_recovered # transpose if needed if sd == 0: result = result.T return result pymvpa2-2.6.4/mvpa2/misc/vproperty.py000066400000000000000000000022041323370031300175160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """C++-like virtual properties""" __docformat__ = 'restructuredtext' class VProperty(object): """Provides "virtual" property: uses derived class's method """ def __init__(self, fget=None, fset=None, fdel=None, doc=''): """ Parameters are the same as of generic `property`. """ for attr in ('fget', 'fset'): func = locals()[attr] if callable(func): setattr(self, attr, func.func_name) setattr(self, '__doc__', doc) def __get__(self, obj=None, type=None): if not obj: return 'property' if self.fget: return getattr(obj, self.fget)() def __set__(self, obj, arg): if self.fset: return getattr(obj, self.fset)(arg) pymvpa2-2.6.4/mvpa2/sandbox/000077500000000000000000000000001323370031300155775ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/sandbox/__init__.py000066400000000000000000000012141323370031300177060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Stuff which is not imported into the suite and should not generally be used since it is not yet formalized. code should not be used directly but if you see a fit for a specific function in your code -- just copy it to guarantee it would work with future releases. """ pymvpa2-2.6.4/mvpa2/sandbox/multiclass.py000066400000000000000000000075321323370031300203400ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Functions to deal with pair-wise multiclass classification Result of the Yarik's brain-block forbidding proper formalization within PyMVPA. For now only used/tested only in a single test within test_usecases.py """ import numpy as np from mvpa2.datasets import Dataset # Multi-class classification def _get_unique_in_axis(a, axis_=-1): """Obtain pairs of present targets from the dataset Parameters ---------- a : array axis_ : int Axis (!=0) to get unique values for each element of """ assert axis_ == -1, "others not implemented yet" return np.apply_along_axis( np.unique, 0, ## reshape slmap so we have only simple pairs in the columns np.reshape(a, (-1, a.shape[axis_]))).T def get_pairwise_hits_misses(a, targets, pairs=None, select=None, axis=-1): """For all-pairs results extract results per each pair as hits and misses This function assumes that the last dimension is the one sweeping through the pairs, thus it could readily be applied to the results from searchlight Parameters --------- select : list, optional Deal only with those targets listed here, omitting the others axis : int, optional Contains predictions over which to gather hits/misses """ results = [] result_pairs = [] a = np.asanyarray(a) assert axis == -1, "others not implemented yet" if pairs is None: pairs = _get_unique_in_axis(a) # This is a somewhat slow implementation for now. optimize later for i, p in enumerate(pairs): if select is not None and len(set(p).difference(select)): # skip those which are not among 'select' continue # select only those samples which have targets in the pair idx = np.in1d(targets, p) p_samples = a[idx, ..., i] p_targets = targets[idx] if p_samples.ndim > 1: p_targets = p_targets[:, None] hits_all = (p_samples == p_targets) hits = np.sum(hits_all, axis=0) misses = len(hits_all) - hits results.append((hits, misses)) result_pairs.append(p) return result_pairs, results # Probably it should become a mapper -- may be later and in a more # generic way def get_pairwise_accuracies(ds, stat='acc', pairs=None, select=None, space='targets'): """Extract pair-wise classification performances as a dataset Converts a dataset of classifications for all pairs of classifiers (e.g. obtained from raw_predictions_ds of a MulticlassClassifier) into a dataset of performances for each pair of stimuli categories. I.e. only the pair-wise results where the target label matches one of the targets in the pair will contribute to the count. Parameters ---------- pairs : Pairs of targets corresponding to the last dimension in the provided dataset select : list, optional Deal only with those targets listed here, omitting the others """ pairs, hits_misses = get_pairwise_hits_misses( ds.samples, ds.sa[space].value, pairs=pairs, select=select) hits_misses = np.array(hits_misses) if stat in ['acc']: stat_values = hits_misses[:, 0].astype(float)/np.sum(hits_misses, axis=1) stat_fa = [stat] elif stat == 'hits_misses': stat_values = hits_misses stat_fa = ['hits', 'misses'] else: raise NotImplementedError("%s statistic not there yet" % stat) return Dataset(stat_values, sa={space: pairs}, fa={'stat': stat_fa}) pymvpa2-2.6.4/mvpa2/suite.py000077500000000000000000000311411323370031300156470ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """MultiVariate Pattern Analysis -- load helper If you don't like to specify exact location of any particular functionality within PyMVPA, please simply:: from mvpa2.suite import * or import mvpa2.suite """ __docformat__ = 'restructuredtext' from mvpa2 import * if __debug__ and 'SUITE' in debug.active: __sdebug = lambda msg: debug('SUITE', "%s" % msg) else: __sdebug = lambda *args: None __sdebug.__doc__ = "Shortcut to output debug messages for suite imports" __sdebug('base') from mvpa2.base import * from mvpa2.base.attributes import * from mvpa2.base.collections import * from mvpa2.base.constraints import * from mvpa2.base.config import * from mvpa2.base.dataset import * from mvpa2.base.externals import * from mvpa2.base.info import * from mvpa2.base.types import * from mvpa2.base.verbosity import * from mvpa2.base.param import * from mvpa2.base.state import * from mvpa2.base.node import * from mvpa2.base.learner import * from mvpa2.base.progress import * __sdebug('h5py') if externals.exists('h5py'): from mvpa2.base.hdf5 import * __sdebug('reportlab') if externals.exists('reportlab'): from mvpa2.base.report import * else: from mvpa2.base.report_dummy import Report __sdebug('algorithms') from mvpa2.algorithms.hyperalignment import * if externals.exists('scipy'): # Some pieces do not demand scipy, but for now let's just do this way from mvpa2.algorithms.searchlight_hyperalignment import * from mvpa2.algorithms.group_clusterthr import * __sdebug('clfs') from mvpa2 import clfs __sdebug('clfs distance') from mvpa2.clfs.distance import * __sdebug('clfs base') from mvpa2.clfs.base import * __sdebug('clfs meta') from mvpa2.clfs.meta import * __sdebug('clfs kNN') from mvpa2.clfs.knn import * __sdebug('clfs lars') if externals.exists('lars'): from mvpa2.clfs.lars import * __sdebug('clfs enet') if externals.exists('elasticnet'): from mvpa2.clfs.enet import * __sdebug('clfs glmnet') if externals.exists('glmnet'): from mvpa2.clfs.glmnet import * __sdebug('clfs skl') if externals.exists('skl'): if externals.versions['skl'] >= '0.9': import sklearn as skl else: import scikits.learn as skl from mvpa2.clfs.skl import * __sdebug('clfs smlr') from mvpa2.clfs.smlr import * from mvpa2.clfs.blr import * from mvpa2.clfs.gnb import * from mvpa2.clfs.stats import * from mvpa2.clfs.similarity import * if externals.exists('libsvm') or externals.exists('shogun'): __sdebug('clfs svm') from mvpa2.clfs.svm import * from mvpa2.clfs.transerror import * __sdebug('clfs warehouse') from mvpa2.clfs.warehouse import * __sdebug('kernels') from mvpa2 import kernels from mvpa2.kernels.base import * from mvpa2.kernels.np import * if externals.exists('libsvm'): from mvpa2.kernels.libsvm import * if externals.exists('shogun'): from mvpa2.kernels.sg import * __sdebug('datasets') from mvpa2 import datasets from mvpa2.datasets import * # just to make testsuite happy from mvpa2.datasets.base import * from mvpa2.datasets.formats import * from mvpa2.datasets.miscfx import * from mvpa2.datasets.eep import * from mvpa2.datasets.eventrelated import * if externals.exists('nibabel') : from mvpa2.datasets.mri import * from mvpa2.datasets.gifti import map2gifti, gifti_dataset from mvpa2.datasets.sources import * from mvpa2.datasets.sources.native import * from mvpa2.datasets.sources.bids import * from mvpa2.datasets.sources.openfmri import * from mvpa2.datasets import niml from mvpa2.datasets.niml import from_niml, to_niml from mvpa2.datasets import eeglab from mvpa2.datasets.eeglab import eeglab_dataset if externals.exists('scipy') : from mvpa2.datasets import cosmo from mvpa2.datasets.cosmo import map2cosmo, cosmo_dataset, \ CosmoQueryEngine, CosmoSearchlight __sdebug('generators') from mvpa2.generators.base import * from mvpa2.generators.partition import * from mvpa2.generators.splitters import * from mvpa2.generators.permutation import * from mvpa2.generators.resampling import * __sdebug('featsel') from mvpa2 import featsel from mvpa2.featsel.base import * from mvpa2.featsel.helpers import * from mvpa2.featsel.ifs import * from mvpa2.featsel.rfe import * __sdebug('mappers') from mvpa2 import mappers #from mvpa2.mappers import * from mvpa2.mappers.base import * from mvpa2.mappers.slicing import * from mvpa2.mappers.flatten import * from mvpa2.mappers.shape import * from mvpa2.mappers.prototype import * from mvpa2.mappers.projection import * from mvpa2.mappers.staticprojection import * from mvpa2.mappers.svd import * from mvpa2.mappers.procrustean import * from mvpa2.mappers.boxcar import * from mvpa2.mappers.fx import * from mvpa2.mappers.fxy import * from mvpa2.mappers.som import * from mvpa2.mappers.zscore import * if externals.exists('scipy'): from mvpa2.mappers.detrend import * from mvpa2.mappers.filters import * if externals.exists('mdp'): from mvpa2.mappers.mdp_adaptor import * if externals.exists('mdp ge 2.4'): from mvpa2.mappers.lle import * from mvpa2.mappers.glm import * from mvpa2.mappers.skl_adaptor import * __sdebug('measures') from mvpa2 import measures from mvpa2.measures.anova import * if externals.exists('statsmodels'): from mvpa2.measures.statsmodels_adaptor import * from mvpa2.measures.irelief import * from mvpa2.measures.base import * from mvpa2.measures.fx import * from mvpa2.measures.noiseperturbation import * from mvpa2.misc.neighborhood import * from mvpa2.measures.searchlight import * from mvpa2.measures.gnbsearchlight import * from mvpa2.measures.nnsearchlight import * from mvpa2.measures.corrstability import * from mvpa2.measures.winner import * __sdebug('misc') from mvpa2.support.copy import * from mvpa2.misc.fx import * from mvpa2.misc.attrmap import * from mvpa2.misc.errorfx import * from mvpa2.misc.cmdline import * from mvpa2.misc.data_generators import * from mvpa2.misc.exceptions import * from mvpa2.misc import * from mvpa2.misc.io import * from mvpa2.misc.io.base import * from mvpa2.misc.io.meg import * from mvpa2.misc.fsl import * from mvpa2.misc.bv import * from mvpa2.misc.bv.base import * from mvpa2.misc.support import * from mvpa2.misc.transformers import * from mvpa2.misc.dcov import dCOV, dcorcoef __sdebug("nibabel") if externals.exists("nibabel"): from mvpa2.misc.fsl.melodic import * if externals.exists("pylab"): from mvpa2.viz import * from mvpa2.misc.plot import * from mvpa2.misc.plot.base import * from mvpa2.misc.plot.erp import * from mvpa2.misc.plot.scatter import * if externals.exists(['griddata', 'scipy']): from mvpa2.misc.plot.topo import * from mvpa2.misc.plot.lightbox import plot_lightbox if externals.exists(['matplotlib', 'griddata']): from mvpa2.misc.plot.flat_surf import \ FlatSurfacePlotter, curvature_from_any __sdebug("scipy dependents") if externals.exists("scipy"): from mvpa2.support.scipy.stats import scipy from mvpa2.measures.corrcoef import * from mvpa2.measures.rsa import * from mvpa2.clfs.ridge import * from mvpa2.clfs.plr import * from mvpa2.misc.stats import * from mvpa2.clfs.gpr import * from mvpa2.support.nipy import * __sdebug("mappers wavelet") if externals.exists("pywt"): from mvpa2.mappers.wavelet import * __sdebug("pylab") if externals.exists("pylab"): import pylab as pl __sdebug("atlases") if externals.exists("lxml") and externals.exists("nibabel"): from mvpa2.atlases import * __sdebug("surface searchlight") from mvpa2.misc.surfing.queryengine import SurfaceVerticesQueryEngine, \ SurfaceVoxelsQueryEngine, \ SurfaceQueryEngine, \ disc_surface_queryengine from mvpa2.misc.surfing import surf_voxel_selection, volgeom, \ volsurf, volume_mask_dict from mvpa2.misc.surfing.volume_mask_dict import VolumeMaskDictionary __sdebug("nibabel afni") from mvpa2.support.nibabel import afni_niml_dset, afni_suma_1d, \ afni_suma_spec, surf_fs_asc, surf, \ surf_caret, \ afni_niml_roi, afni_niml_annot if externals.exists('nibabel'): from mvpa2.support.nibabel import surf_gifti __sdebug("cmdline") if externals.exists("nibabel") and externals.exists("scipy") \ and externals.exists('ctypes') \ and externals.exists('h5py'): from mvpa2.cmdline.cmd_ttest import * __sdebug("ipython goodies") if externals.exists("running ipython env"): try: from mvpa2.support.ipython import * ipy_activate_pymvpa_goodies() except Exception, e: warning("Failed to activate custom IPython completions due to %s" % e) def suite_stats(scope_dict=None): """Return cruel dict of things which evil suite provides """ if scope_dict is None: scope_dict = {} scope_dict = scope_dict or globals() import types # Compatibility layer for Python3 try: from io import FileIO as BuiltinFileType except ImportError: BuiltinFileType = types.FileType try: from types import ClassType as OldStyleClassType except ImportError: OldStyleClassType = type(None) def _get_path(e): """Figure out basic path for the beast... probably there is already smth which could do that for me """ if str(e).endswith('(built-in)>'): return "BUILTIN" if hasattr(e, '__file__'): return e.__file__ elif hasattr(e, '__path__'): return e.__path__[0] elif hasattr(e, '__module__'): if isinstance(e.__module__, str): return e.__module__ else: return _get_path(e.__module__) elif hasattr(e, '__class__'): return _get_path(e.__class__) else: raise RuntimeError, "Could not figure out path for %s" % e class EnvironmentStatistics(dict): def __init__(self, d): dict.__init__(self, foreign={}) # compute cruel stats mvpa_str = '%smvpa' % os.path.sep for k, e in d.iteritems(): found = False for ty, tk, check_path in ( (list, "lists", False), (str, "strings", False), (unicode, "strings", False), (BuiltinFileType, "files", False), (types.BuiltinFunctionType, None, True), (types.BuiltinMethodType, None, True), (types.ModuleType, "modules", True), (OldStyleClassType, "classes", True), (type, "types", True), (types.LambdaType, "functions", True), (object, "objects", True), ): if isinstance(e, ty): found = True if tk is None: break if not tk in self: self[tk] = {} if check_path: mpath = _get_path(e) if mvpa_str in mpath or mpath.startswith('mvpa2.'): self[tk][k] = e else: self['foreign'][k] = e else: self[tk][k] = e break if not found: raise ValueError, \ "Could not figure out placement for %s %s" % (k, e) def __str__(self): s = "" for k in sorted(self.keys()): s += "\n%s [%d entries]:" % (k, len(self[k])) for i in sorted(self[k].keys()): s += "\n %s" % i # Lets extract first line in doc try: doc = self[k][i].__doc__.strip() try: ind = doc.index('\n') except: ind = 1000 s += ": " + doc[:min(ind, 80)] except: pass return s return EnvironmentStatistics(scope_dict) __sdebug("THE END of mvpa2.suite imports") pymvpa2-2.6.4/mvpa2/support/000077500000000000000000000000001323370031300156555ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/__init__.py000066400000000000000000000014561323370031300177740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for PyMVPA support modules mvpa2.support is destined to contain temporary "fixes" to external modules (Python, scipy), which are known to be fixed in the recent releases but are not present in comodity distributions. Example could be copy module.""" __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.support start') debug('INIT', 'mvpa2.support end') pymvpa2-2.6.4/mvpa2/support/_copy.py000066400000000000000000000254361323370031300173520ustar00rootroot00000000000000"""Generic (shallow and deep) copying operations. Interface summary: import copy x = copy.copy(y) # make a shallow copy of y x = copy.deepcopy(y) # make a deep copy of y For module specific errors, copy.Error is raised. The difference between shallow and deep copying is only relevant for compound objects (objects that contain other objects, like lists or class instances). - A shallow copy constructs a new compound object and then (to the extent possible) inserts *the same objects* into it that the original contains. - A deep copy constructs a new compound object and then, recursively, inserts *copies* into it of the objects found in the original. Two problems often exist with deep copy operations that don't exist with shallow copy operations: a) recursive objects (compound objects that, directly or indirectly, contain a reference to themselves) may cause a recursive loop b) because deep copy copies *everything* it may copy too much, e.g. administrative data structures that should be shared even between copies Python's deep copy operation avoids these problems by: a) keeping a table of objects already copied during the current copying pass b) letting user-defined classes override the copying operation or the set of components copied This version does not copy types like module, class, function, method, nor stack trace, stack frame, nor file, socket, window, nor array, nor any similar types. Classes can use the same interfaces to control copying that they use to control pickling: they can define methods called __getinitargs__(), __getstate__() and __setstate__(). See the documentation for module "pickle" for information on these methods. """ import types from copy_reg import dispatch_table class Error(Exception): pass error = Error # backward compatibility try: from org.python.core import PyStringMap except ImportError: PyStringMap = None __all__ = ["Error", "copy", "deepcopy"] def copy(x): """Shallow copy operation on arbitrary Python objects. See the module's __doc__ string for more info. """ cls = type(x) copier = _copy_dispatch.get(cls) if copier: return copier(x) copier = getattr(cls, "__copy__", None) if copier: return copier(x) reductor = dispatch_table.get(cls) if reductor: rv = reductor(x) else: reductor = getattr(x, "__reduce_ex__", None) if reductor: rv = reductor(2) else: reductor = getattr(x, "__reduce__", None) if reductor: rv = reductor() else: raise Error("un(shallow)copyable object of type %s" % cls) return _reconstruct(x, rv, 0) _copy_dispatch = d = {} def _copy_immutable(x): return x for t in (type(None), int, long, float, bool, str, tuple, frozenset, type, xrange, types.ClassType, types.BuiltinFunctionType, type(Ellipsis), types.FunctionType): d[t] = _copy_immutable for name in ("ComplexType", "UnicodeType", "CodeType"): t = getattr(types, name, None) if t is not None: d[t] = _copy_immutable def _copy_with_constructor(x): return type(x)(x) for t in (list, dict, set): d[t] = _copy_with_constructor def _copy_with_copy_method(x): return x.copy() if PyStringMap is not None: d[PyStringMap] = _copy_with_copy_method def _copy_inst(x): if hasattr(x, '__copy__'): return x.__copy__() if hasattr(x, '__getinitargs__'): args = x.__getinitargs__() y = x.__class__(*args) else: y = _EmptyClass() y.__class__ = x.__class__ if hasattr(x, '__getstate__'): state = x.__getstate__() else: state = x.__dict__ if hasattr(y, '__setstate__'): y.__setstate__(state) else: y.__dict__.update(state) return y d[types.InstanceType] = _copy_inst del d def deepcopy(x, memo=None, _nil=None): """Deep copy operation on arbitrary Python objects. See the module's __doc__ string for more info. """ if _nil is None: _nil = [] if memo is None: memo = {} d = id(x) y = memo.get(d, _nil) if y is not _nil: return y cls = type(x) copier = _deepcopy_dispatch.get(cls) if copier: y = copier(x, memo) else: try: issc = issubclass(cls, type) except TypeError: # cls is not a class (old Boost; see SF #502085) issc = 0 if issc: y = _deepcopy_atomic(x, memo) else: copier = getattr(x, "__deepcopy__", None) if copier: y = copier(memo) else: reductor = dispatch_table.get(cls) if reductor: rv = reductor(x) else: reductor = getattr(x, "__reduce_ex__", None) if reductor: rv = reductor(2) else: reductor = getattr(x, "__reduce__", None) if reductor: rv = reductor() else: raise Error( "un(deep)copyable object of type %s" % cls) y = _reconstruct(x, rv, 1, memo) memo[d] = y _keep_alive(x, memo) # Make sure x lives at least as long as d return y _deepcopy_dispatch = d = {} def _deepcopy_atomic(x, memo): return x d[type(None)] = _deepcopy_atomic d[type(Ellipsis)] = _deepcopy_atomic d[int] = _deepcopy_atomic d[long] = _deepcopy_atomic d[float] = _deepcopy_atomic d[bool] = _deepcopy_atomic try: d[complex] = _deepcopy_atomic except NameError: pass d[str] = _deepcopy_atomic try: d[unicode] = _deepcopy_atomic except NameError: pass try: d[types.CodeType] = _deepcopy_atomic except AttributeError: pass d[type] = _deepcopy_atomic d[xrange] = _deepcopy_atomic d[types.ClassType] = _deepcopy_atomic d[types.BuiltinFunctionType] = _deepcopy_atomic d[types.FunctionType] = _deepcopy_atomic def _deepcopy_list(x, memo): y = [] memo[id(x)] = y for a in x: y.append(deepcopy(a, memo)) return y d[list] = _deepcopy_list def _deepcopy_tuple(x, memo): y = [] for a in x: y.append(deepcopy(a, memo)) d = id(x) try: return memo[d] except KeyError: pass for i, xi in enumerate(x): if xi is not y[i]: y = tuple(y) break else: y = x memo[d] = y return y d[tuple] = _deepcopy_tuple def _deepcopy_dict(x, memo): y = {} memo[id(x)] = y for key, value in x.iteritems(): y[deepcopy(key, memo)] = deepcopy(value, memo) return y d[dict] = _deepcopy_dict if PyStringMap is not None: d[PyStringMap] = _deepcopy_dict def _keep_alive(x, memo): """Keeps a reference to the object x in the memo. Because we remember objects by their id, we have to assure that possibly temporary objects are kept alive by referencing them. We store a reference at the id of the memo, which should normally not be used unless someone tries to deepcopy the memo itself... """ try: memo[id(memo)].append(x) except KeyError: # aha, this is the first one :-) memo[id(memo)]=[x] def _deepcopy_inst(x, memo): if hasattr(x, '__deepcopy__'): return x.__deepcopy__(memo) if hasattr(x, '__getinitargs__'): args = x.__getinitargs__() args = deepcopy(args, memo) y = x.__class__(*args) else: y = _EmptyClass() y.__class__ = x.__class__ memo[id(x)] = y if hasattr(x, '__getstate__'): state = x.__getstate__() else: state = x.__dict__ state = deepcopy(state, memo) if hasattr(y, '__setstate__'): y.__setstate__(state) else: y.__dict__.update(state) return y d[types.InstanceType] = _deepcopy_inst def _reconstruct(x, info, deep, memo=None): if isinstance(info, str): return x assert isinstance(info, tuple) if memo is None: memo = {} n = len(info) assert n in (2, 3, 4, 5) callable, args = info[:2] if n > 2: state = info[2] else: state = {} if n > 3: listiter = info[3] else: listiter = None if n > 4: dictiter = info[4] else: dictiter = None if deep: args = deepcopy(args, memo) y = callable(*args) memo[id(x)] = y if listiter is not None: for item in listiter: if deep: item = deepcopy(item, memo) y.append(item) if dictiter is not None: for key, value in dictiter: if deep: key = deepcopy(key, memo) value = deepcopy(value, memo) y[key] = value if state: if deep: state = deepcopy(state, memo) if hasattr(y, '__setstate__'): y.__setstate__(state) else: if isinstance(state, tuple) and len(state) == 2: state, slotstate = state else: slotstate = None if state is not None: y.__dict__.update(state) if slotstate is not None: for key, value in slotstate.iteritems(): setattr(y, key, value) return y del d del types # Helper for instance creation without calling __init__ class _EmptyClass: pass def _test(): l = [None, 1, 2L, 3.14, 'xyzzy', (1, 2L), [3.14, 'abc'], {'abc': 'ABC'}, (), [], {}] l1 = copy(l) print l1==l l1 = map(copy, l) print l1==l l1 = deepcopy(l) print l1==l class C: def __init__(self, arg=None): self.a = 1 self.arg = arg if __name__ == '__main__': import sys file = sys.argv[0] else: file = __file__ self.fp = open(file) self.fp.close() def __getstate__(self): return {'a': self.a, 'arg': self.arg} def __setstate__(self, state): for key, value in state.iteritems(): setattr(self, key, value) def __deepcopy__(self, memo=None): new = self.__class__(deepcopy(self.arg, memo)) new.a = self.a return new c = C('argument sketch') l.append(c) l2 = copy(l) print l == l2 print l print l2 l2 = deepcopy(l) print l == l2 print l print l2 l.append({l[1]: l, 'xyz': l[2]}) l3 = copy(l) import repr print map(repr.repr, l) print map(repr.repr, l1) print map(repr.repr, l2) print map(repr.repr, l3) l3 = deepcopy(l) import repr print map(repr.repr, l) print map(repr.repr, l1) print map(repr.repr, l2) print map(repr.repr, l3) if __name__ == '__main__': _test() pymvpa2-2.6.4/mvpa2/support/_emp_null.py000066400000000000000000000422251323370031300202060ustar00rootroot00000000000000""" this module contains a class that fits a gaussian model to the central part of an histogram, following schwartzman et al, 2009. This is typically necessary to estimate a fdr when one is not certain that the data behaves as a standard normal under H_0. Author : Bertrand Thirion, 2008-2009 """ # For scipy import from __future__ import absolute_import import numpy as np from numpy.linalg import pinv from mvpa2.base import externals if externals.exists('scipy', raise_=True): import scipy.stats as st class FDR(object): """ This is the basic class to handle false discovery rate computation parameter: fdr.x the samples from which the fdr is derived x is assumed to be a normal variate The Benjamini-Horchberg procedure is used """ def __init__(self, x): """ x is assumed to be a 1-d array """ self.x = np.squeeze(x) def all_fdr(self, x=None, verbose=0): """ Returns all the FDR (false discovery rates) values for the sample x Parameters ----------- x : ndarray of shape (n) The normal variates Results ------- fdr : ndarray of shape (n) The set of all FDRs """ if x==None:x=self.x pvals = st.norm.sf(x) return(self.all_fdr_from_pvals(pvals,verbose)) def all_fdr_from_pvals(self, pv, verbose=0): """ Returns the fdr associated with each the values Parameters ----------- pv : ndarray of shape (n) The samples p-value Returns -------- q : array of shape(n) The corresponding fdrs """ pv = self.check_pv(pv) if pv==None: pv = self.pv n = np.size(pv) isx = np.argsort(pv) q = np.zeros(n) for ip in range(n): q[isx[ip]] = np.minimum(1, np.maximum(n*pv[isx[ip]]/(ip+1), q[isx[ip]])) if (ip1: print pv.max() raise ValueError, "P-values greater than 1!" return pv def pth_from_pvals(self, pv, alpha=0.05): """ Given a set pv of p-values, returns the critical p-value associated with an FDR alpha Parameters ----------- alpha : float The desired FDR significance pv : array of shape (n) The samples p-value Returns ------- pth: float The p value corresponding to the FDR alpha """ pv = self.check_pv(pv) npv = np.size(pv) pcorr = alpha/npv spv = np.sort(pv) ip = 0 pth = 0. while (spv[ip]0 hist = hist[whist] medge = medge[whist] hist = hist.astype('f') # fit the histogram DMtx = np.ones((3, np.sum(whist))) DMtx[1] = medge DMtx[2] = medge**2 coef = np.dot(np.log(hist), pinv(DMtx)) sqsigma = -1.0/(2*coef[2]) mu = coef[1]*sqsigma lp0 = (coef[0]- np.log(step*self.n) + 0.5*np.log(2*np.pi*sqsigma) + mu**2/(2*sqsigma)) self.mu = mu self.p0 = min(1, np.exp(lp0)) self.sigma = np.sqrt(sqsigma) self.sqsigma = sqsigma def fdrcurve(self): """ Returns the fdr associated with any point of self.x """ import scipy.stats as st if self.learned==0: self.learn() efp = ( self.p0*st.norm.sf(self.x, self.mu, self.sigma) *self.n/np.arange(self.n,0,-1)) efp = np.minimum(efp, 1) return efp def threshold(self, alpha=0.05, verbose=0): """ Compute the threshold correponding to an alpha-level fdr for x Parameters ----------- alpha : float, optional the chosen false discovery rate threshold. verbose : boolean, optional the verbosity level, if True a plot is generated. Results -------- theta: float the critical value associated with the provided fdr """ efp = self.fdrcurve() if verbose: self.plot(efp, alpha) if efp[-1] > alpha: print "the maximal value is %f , the corresponding fdr is %f " \ % (self.x[-1], efp[-1]) return np.infty j = np.argmin(efp[::-1] < alpha) + 1 return 0.5*(self.x[-j] + self.x[-j+1]) def uncorrected_threshold(self, alpha=0.001, verbose=0): """ Compute the threshold correponding to a specificity alpha for x Parameters ----------- alpha : float, optional the chosen false discovery rate threshold. verbose : boolean, optional the verbosity level, if True a plot is generated. Results -------- theta: float the critical value associated with the provided p-value """ if self.learned==0: self.learn() threshold = st.norm.isf(alpha, self.mu, self.sigma) if not np.isfinite(threshold): threshold = np.inf if verbose: self.plot() return threshold def fdr(self,theta): """ given a threshold theta, find the estimated fdr """ import scipy.stats as st if self.learned==0: self.learn() efp = self.p0*st.norm.sf(theta,self.mu,self.sigma)\ *float(self.n)/np.sum(self.x>theta) efp = np.minimum(efp,1) return efp def plot(self, efp=None, alpha=0.05, bar=1, mpaxes=None): """ plot the histogram of x Parameters ------------ efp : float, optional The empirical fdr (corresponding to x) if efp==None, the false positive rate threshod plot is not drawn. alpha : float, optional The chosen fdr threshold bar=1 : bool, optional mpaxes=None: if not None, handle to an axes where the fig. will be drawn. Avoids creating unnecessarily new figures. """ if not self.learned: self.learn() n = np.size(self.x) bins = max(10, int(2*np.exp(np.log(n)/3.))) hist, ledge = np.histogram(self.x, bins=bins) hist = hist.astype('f')/hist.sum() step = ledge[1]-ledge[0] medge = ledge + 0.5*step import scipy.stats as st g = self.p0*st.norm.pdf(medge, self.mu, self.sigma) hist /= step import matplotlib.pylab as mp if mpaxes==None: mp.figure() ax = mp.subplot(1,1,1) else: ax = mpaxes if bar: # We need to cut ledge to len(hist) to accomodate for pre and # post numpy 1.3 hist semantic change. ax.bar(ledge[:len(hist)], hist, step) else: ax.plot(medge[:len(hist)], hist, linewidth=2) ax.plot(medge, g, 'r', linewidth=2) ax.set_title('Robust fit of the histogram', fontsize=16) l = ax.legend(('empiricall null', 'data'), loc=0) for t in l.get_texts(): t.set_fontsize(16) ax.set_xticklabels(ax.get_xticks(), fontsize=16) ax.set_yticklabels(ax.get_yticks(), fontsize=16) if efp is not None: ax.plot(self.x, np.minimum(alpha, efp), 'k') def three_classes_GMM_fit(x, test=None, alpha=0.01, prior_strength=100, verbose=0, fixed_scale=False, mpaxes=None, bias=0, theta=0, return_estimator=False): """ Fit the data with a 3-classes Gaussian Mixture Model, i.e. computing some probability that the voxels of a certain map are in class disactivated, null or active Parameters ---------- x array of shape (nvox,1): the map to be analysed test=None array of shape(nbitems,1): the test values for which the p-value needs to be computed by default, test=x alpha = 0.01 the prior weights of the positive and negative classes prior_strength = 100 the confidence on the prior (should be compared to size(x)) verbose=0 : verbosity mode fixed_scale = False, boolean, variance parameterization if True, the variance is locked to 1 otherwise, it is estimated from the data mpaxes=None: axes handle used to plot the figure in verbose mode if None, new axes are created bias = 0: allows a recaling of the posterior probability that takes into account the thershold theta. Not rigorous. theta = 0 the threshold used to correct the posterior p-values when bias=1; normally, it is such that test>theta note that if theta = -np.infty, the method has a standard behaviour return_estimator: boolean, optional If return_estimator is true, the estimator object is returned. Results ------- bfp : array of shape (nbitems,3): the posterior probability of each test item belonging to each component in the GMM (sum to 1 across the 3 classes) if np.size(test)==0, i.e. nbitem==0, None is returned estimator : nipy.neurospin.clustering.GMM object The estimator object, returned only if return_estimator is true. Note ---- Our convention is that - class 1 represents the negative class - class 2 represenst the null class - class 3 represents the positsive class """ nvox = np.size(x) x = np.reshape(x,(nvox,1)) if test==None: test = x if np.size(test)==0: return None from nipy.neurospin.clustering.bgmm import VBGMM from nipy.neurospin.clustering.gmm import grid_descriptor sx = np.sort(x,0) nclasses=3 # set the priors from a reasonable model of the data (!) # prior means mb0 = np.mean(sx[:alpha*nvox]) mb2 = np.mean(sx[(1-alpha)*nvox:]) prior_means = np.reshape(np.array([mb0,0,mb2]),(nclasses,1)) if fixed_scale: prior_scale = np.ones((nclasses,1,1)) * 1./(prior_strength) else: prior_scale = np.ones((nclasses,1,1)) * 1./(prior_strength*np.var(x)) prior_dof = np.ones(nclasses) * prior_strength prior_weights = np.array([alpha,1-2*alpha,alpha]) * prior_strength prior_shrinkage = np.ones(nclasses) * prior_strength # instantiate the class and set the priors BayesianGMM = VBGMM(nclasses,1,prior_means,prior_scale, prior_weights, prior_shrinkage,prior_dof) BayesianGMM.set_priors(prior_means, prior_weights, prior_scale, prior_dof, prior_shrinkage) # estimate the model BayesianGMM.estimate(x,delta = 1.e-8,verbose=verbose) # create a sampling grid if (verbose or bias): gd = grid_descriptor(1) gd.getinfo([x.min(),x.max()],100) gdm = gd.make_grid().squeeze() lj = BayesianGMM.likelihood(gd.make_grid()) # estimate the prior weights bfp = BayesianGMM.likelihood(test) if bias: lw = np.sum(lj[gdm>theta],0) weights = BayesianGMM.weights/(BayesianGMM.weights.sum()) bfp = (lw/weights)*BayesianGMM.slikelihood(test) if verbose>1: BayesianGMM.show_components(x,gd,lj,mpaxes) bfp = (bfp.T/bfp.sum(1)).T if not return_estimator: return bfp else: return bfp, BayesianGMM def Gamma_Gaussian_fit(x, test=None, verbose=0, mpaxes=None, bias=1, gaussian_mix=0, return_estimator=False): """ Computing some prior probabilities that the voxels of a certain map are in class disactivated, null or active uning a gamma-Gaussian mixture Parameters ------------ x: array of shape (nvox,) the map to be analysed test: array of shape (nbitems,), optional the test values for which the p-value needs to be computed by default, test = x verbose: 0, 1 or 2, optional verbosity mode, 0 is quiet, and 2 calls matplotlib to display graphs. mpaxes: matplotlib axes, option. axes handle used to plot the figure in verbose mode if None, new axes are created bias: float, optional lower bound on the gaussian variance (to avoid shrinkage) gaussian_mix: float, optional if nonzero, lower bound on the gaussian mixing weight (to avoid shrinkage) return_estimator: boolean, optional If return_estimator is true, the estimator object is returned. Returns ------- bfp: array of shape (nbitems,3) The probability of each component in the mixture model for each test value estimator: nipy.neurospin.clustering.ggmixture.GGGM object The estimator object, returned only if return_estimator is true. """ from nipy.neurospin.clustering import ggmixture Ggg = ggmixture.GGGM() Ggg.init_fdr(x) Ggg.estimate(x, niter=100, delta=1.e-8, bias=bias, verbose=0, gaussian_mix=gaussian_mix) if verbose>1: # hyper-verbose mode Ggg.show(x, mpaxes=mpaxes) Ggg.parameters() if test is None: test = x test = np.reshape(test, np.size(test)) bfp = np.array(Ggg.posterior(test)).T if return_estimator: return bfp, Ggg return bfp pymvpa2-2.6.4/mvpa2/support/afni/000077500000000000000000000000001323370031300165725ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/afni/__init__.py000066400000000000000000000010131323370031300206760ustar00rootroot00000000000000 # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Preprocessing/postprocessing wrappers for use with AFNI/SUMA""" __docformat__ = 'restructuredtext' # TODO: unit tests for these scripts pymvpa2-2.6.4/mvpa2/support/afni/afni_surface_alphasim.py000077500000000000000000000474541323370031300234700ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' attempt for simple alphasim based on simple 2nd level residuals (a la SPM) uses SUMA's SurfClust, SurfFWHM, and a couple of other AFNI programs Note: this method has not been validated properly yet. NNO Oct 2012 ''' import os from os.path import join as pathjoin import fnmatch import datetime import re import argparse import math from mvpa2.support.afni import afni_utils as utils def _fn(config, infix, ext=None): '''Returns a file name with a particular infix''' if ext is None: ext = _ext(config) return './%s%s%s' % (config['prefix'], infix, ext) def _is_surf(config): '''Returns True iff we are on the surface''' return 'surface_file' in config and config['surface_file'] def _ext(config, for1D=False): '''Returns the extension for a file name''' if _is_surf(config): return '.1D.dset' if for1D else '.niml.dset' else: fn = config['data_files'][0] return ''.join(utils.afni_fileparts(fn)[2:]) def _mask_expr(config): '''returns an expression that can be used as an infix in running other commands (depending on whether in volume or on surface)''' m = config['mask'] if not m: return '' else: if _is_surf(config): return '-b_mask %s' % m else: return '-mask %s' % m def compute_fwhm(config): # helper function - called by critical_clustersize # computes FWHM of residuals of input data and stores in config output_dir = c['output_dir'] is_surf = _is_surf(config) ext, ext1D = _ext(config), _ext(config, for1D=True) if not os.path.exists(output_dir): os.mkdir(output_dir) cmds = ['cd "%s"' % output_dir] # if surfaces and needs padding, do that first pad_to_node = config['pad_to_node'] if is_surf and pad_to_node: data_files = [] for i, fn in enumerate(c['data_files']): fn_pad = 'pad_%d%s' % (i, ext) cmds.append("; ConvertDset -overwrite -pad_to_node %d -input %s'[%d]' -prefix ./%s" % (pad_to_node, fn, config['brik_index'], fn_pad)) data_files.append(fn_pad) pad_files = data_files brik_index = 0 else: data_files = c['data_files'] pad_files = [] brik_index = c['brik_index'] # bucket data from all participants into a single file buck_fn = _fn(config, 'buck') cmds.append('; 3dbucket -overwrite -prefix %s' % buck_fn) for fn in data_files: cmds.append(" %s'[%d]'" % (fn, brik_index)) # also store as 1D (won't hurt) if is_surf: buck_fn_1D = _fn(config, 'buck', ext1D) cmds.append('; ConvertDset -overwrite -o_1D -prefix %s -input %s' % (buck_fn_1D, buck_fn)) else: buck_fn_1D = buck_fn # compute group mean mean_fn = _fn(config, 'mean') cmds.append('; 3dTstat -overwrite -prefix %s %s' % (mean_fn, buck_fn)) # compute residuals, and estimate FWHM for each of them # store FWHM output in fwhm_fn fwhm_fn = pathjoin(output_dir, _fn(config, 'fwhm', '.1D')) cmds.append('; echo > "%s"' % fwhm_fn) resid_fns = [] for i in xrange(len(c['data_files'])): fn = _fn(config, 'resid_%d' % i) cmds.append("; 3dcalc -overwrite -prefix %s -a %s -b %s'[%d]' -expr 'a-b'" % (fn, mean_fn, buck_fn, i)) msk = _mask_expr(config) if is_surf: surf_fn = c['surface_file'] cmds.append("; SurfFWHM %s -input %s -i_fs %s" "| grep ^FWHM | cut -f2 -d'=' >> '%s'" % (msk, fn, surf_fn, fwhm_fn)) else: cmds.append('; 3dFWHMx %s %s | cut -c18- >> %s' % (msk, fn, fwhm_fn)) resid_fns.append(fn) cmd = ''.join(cmds) utils.run_cmds(cmd) # read FWHM values and store in config with open(fwhm_fn) as f: fwhms = f.read().split() print fwhms print fwhm_fn config['all_fwhms'] = fwhms # all FWHMs (for each participant) config['fwhm'] = sum(map(float, fwhms)) / len(fwhms) # average FWHM config['buck_fn'] = buck_fn config['buck_fn_1D'] = buck_fn_1D mean_fwhm_fn = pathjoin(output_dir, _fn(config, 'mean_fwhm', '.1D')) with open(mean_fwhm_fn, 'w') as f: f.write('%.3f\n' % config['fwhm']) tmpfns = resid_fns + pad_files + [mean_fn] print "TEMP" print tmpfns _remove_files(config, tmpfns) def null_clustersize(config): # helper function - called by critical_clustersize # computes maxmimum cluster size of a single null permutation output_dir = config['output_dir'] tthr = config['tthr'] fwhm = config['fwhm'] buck_fn_1D = config['buck_fn_1D'] msk = _mask_expr(config) is_surf = _is_surf(config) if is_surf: surf_fn = config['surface_file'] ext, ext1D = _ext(config), _ext(config, for1D=True) ns = len(config['data_files']) cmds = ['cd "%s"' % output_dir] # generate N random data files (N=number of participants) # use the output bucket to get datasets with the right size null_fns = [] for i in xrange(ns): fn = _fn(config, 'rand_%d' % i, ext1D) if is_surf: cmds.append("; 1deval -ok_1D_text -a %s'[0]' -expr 'gran(0,1)' > '%s'" % (buck_fn_1D, fn)) else: cmds.append("; 3dcalc -overwrite -prefix %s -a %s'[0]' -expr 'gran(0,1)'" % (fn, buck_fn_1D)) null_fns.append(fn) # bucket random data buck_fn = _fn(config, 'rand_buck', ext1D) null_fns_list = ' '.join(null_fns) if is_surf: cmds.append('; 1dcat %s > "%s"' % (null_fns_list, buck_fn)) else: cmds.append('; 3dbucket -overwrite -prefix %s %s' % (buck_fn, null_fns_list)) # smooth all data at once, using estimated FWHM smooth_fn = _fn(config, 'rand_buck_smooth', ext1D) if is_surf: if config['sigma'] > 0: sigma_str = '-sigma %s' % config['sigma'] else: sigma_str = '' cmds.append('; SurfSmooth -overwrite %s -met HEAT_07 -i_fs %s -input %s ' ' -fwhm %f -output %s %s' % (msk, surf_fn, buck_fn, fwhm, smooth_fn, sigma_str)) else: cmds.append('; 3dBlurInMask -overwrite %s -FWHM %f -prefix %s -input %s' % (msk, fwhm, smooth_fn, buck_fn)) # run ttest if is_surf: msk = '' # cannot use mask on surface, but that's fine # as it was used in SurfSmooth ttest_fn = _fn(config, 'rand_buck_smooth_t', ext1D) cmds.append('; 3dttest++ %s -overwrite -prefix %s -setA %s' % (msk, ttest_fn, smooth_fn)) # extract maximum cluster size (in mm^2 or number of voxels) from output # and pipe into size_fn size_fn = _fn(config, 'rand_size', '.1D') if is_surf: postfix = "| grep --invert-match '#' | head -1 | cut -c 18-28" cmds.append('; SurfClust -i_fs %s -input %s 1 -rmm -1 ' ' -thresh %f -thresh_col 1 %s > "%s"' % (surf_fn, ttest_fn, tthr, postfix, size_fn)) else: postfix = " | grep --invert-match '#' | head -1 | cut -c1-8" cmds.append("; 3dclust -quiet -1noneg -1clip %f 0 0 %s'[1]' %s > '%s'" % (tthr, ttest_fn, postfix, size_fn)) utils.run_cmds(''.join(cmds)) # read maximum cluster size form size_fn sz_str = None with open(pathjoin(output_dir, size_fn)) as f: sz_str = f.read() try: sz = float(sz_str) except: sz = 0. # CHECKME whether this makes sense print "Null data: maximum size %f" % sz if is_surf: smoothing_fn_rec = pathjoin(output_dir, _fn(config, 'rand_buck_smooth', '.1D.dset.1D.smrec')) if not os.path.exists(smoothing_fn_rec): raise ValueError("Smoothing did not succeed. Please check the error" " messaged. You may have to set sigma manually") with open(smoothing_fn_rec) as f: s = f.read() final_fwhm = float(s.split()[-2]) ratio = fwhm / final_fwhm thr = 0.9 if ratio < thr or 1. / ratio < thr: raise ValueError('FWHM converged to %s but expected %s. Consider ' 'setting sigma manually' % (final_fwhm, fwhm)) # clean up - remove all temporary files tmpfns = null_fns + [buck_fn, smooth_fn, ttest_fn, size_fn] _remove_files(config, tmpfns) return sz def _remove_files(config, list_of_files): # removes a list of files, if config allows for it # in the case of AFNI volume files, it removes HEAD and BRIK files if not config['keep_files']: for fn in list_of_files: fp = utils.afni_fileparts(fn) if fp[2]: # AFNI HEAD/BRIK combination # ensure we delete all of them exts = ['.HEAD', '.BRIK', '.BRIK.gz'] fn = ''.join(fp[1:3]) else: exts = [''] for ext in exts: full_fn = pathjoin(config['output_dir'], fn + ext) if os.path.exists(full_fn): os.remove(full_fn) def critical_clustersize(config): '''computes the critical cluster sizes it does so by calling compute_fwhm and null_clustersize config['max_size'] is a list with he maximum cluster size of each iteration''' compute_fwhm(config) # this takes a long time niter = config['niter'] sz = [] for i in xrange(niter): sz.append(null_clustersize(config)) print "Completed null iteration %d / %d" % (i + 1, niter) config['max_size'] = sz # store the results in a file clsize_fn = _fn(config, 'critical_cluster_size', '.1D') with open(pathjoin(config['output_dir'], clsize_fn), 'w') as f: f.write('# Critical sizes for tthr=%.3f, fwhm=%.3f, %d files\n' % ( config['tthr'], config['fwhm'], len(config['data_files']))) for s in sz: f.write('%.5f\n' % s) return sz def _critical_size_index(config): '''computes the index of the critical cluster size (assuming that these sizes are sorted)''' pthr = config['pthr'] nsize = config['niter'] idx = math.ceil((1. - pthr) * nsize) # index of critical cluster size if idx >= nsize or idx == 0: raise ValueError("Illegal critical index (p=%s): %s; " "consider increasing --niter" % (pthr, idx)) return int(idx) def apply_clustersize(config): # applies the critical cluster size to the original data # # assumes that critical_clustersize(config) has been run output_dir = config['output_dir'] pthr = config['pthr'] tthr = config['tthr'] niter = config['niter'] buck_fn_1D = config['buck_fn_1D'] is_surf = _is_surf(config) if is_surf: surf_fn = config['surface_file'] cmds = ['cd "%s"' % output_dir] # run ttest on original data infix = 'ttest_t%(tthr)s' % config ttest_fn = _fn(config, infix) msk = _mask_expr(config) # NOTE: for surfaces, apply mask below (SurfClust) # but in volumes, apply it here if is_surf: cmds.append('; 3dttest++ -ok_1D_text -overwrite -prefix %s -setA %s' % (ttest_fn, buck_fn_1D)) else: cmds.append('; 3dttest++ %s -overwrite -prefix %s -setA %s' % (msk, ttest_fn, buck_fn_1D)) # sort cluster sizes clsize = list(config['max_size']) clsize.sort() # get critical cluster size idx = _critical_size_index(config) critical_size = clsize[idx] print "critical size %s (p=%s)" % (critical_size, pthr) # apply critical size to t-test of original data infix += '_clustp%s_%dit' % (pthr, niter) if not is_surf: # for surfaces the size is included in the filename automatically infix += '_%svx' % critical_size # set file names dset_out = _fn(config, infix) log_out = _fn(config, infix, '.txt') if is_surf: cmds.append('; SurfClust %s -i_fs %s -input %s 1 -rmm -1 ' ' -thresh %f -thresh_col 1 -amm2 %f -out_clusterdset -prefix %s > %s' % (msk, surf_fn, ttest_fn, tthr, critical_size, dset_out, log_out)) else: dset_out_msk = _fn(config, infix + '_msk') cmds.append("; 3dclust -overwrite -1noneg -1clip %f " " -prefix %s -savemask %s 0 -%f %s'[1]' > %s" % (tthr, dset_out, dset_out_msk, critical_size, ttest_fn, log_out)) cmd = "".join(cmds) utils.run_cmds(cmd) def run_all(config): '''main function to estimate critical cluster size and apply to group t-test result''' critical_clustersize(config) apply_clustersize(config) def get_testing_config(): # for testing only in_vol = True c = dict(mask='') if in_vol: d = '/Users/nick/organized/210_smoothness/afnidata/glm/' sids = ['%02d' % i for i in xrange(1, 13)] fn_pat = 'glm_SUB%s_REML+tlrc.HEAD' fns = ['%s/%s' % (d, fn_pat % sid) for sid in sids] c['output_dir'] = '/Users/nick/organized/210_smoothness/_tst' c['brik_index'] = 2 c['mask'] = d + '../../all/mask+tlrc.HEAD' c['pad_to_node'] = None else: d = '/Users/nick/organized/212_raiders_fmri/ref' sids = ['ab', 'ag', 'aw', 'jt'] fn = 'cross_ico16-128_mh_100vx_8runs_t3.niml.dset' fns = ['%s/%s/%s' % (d, sid, fn) for sid in sids] surffn = '%s/%s/ico16_mh.intermediate_al.asc' % (d, sids[0]) c['output_dir'] = '/Users/nick//tmp/alphasim/' c['surface_file'] = surffn c['brik_index'] = 0 c['ext'] = '.niml.dset' c['pad_to_node'] = 5124 - 1 c['data_files'] = fns c['tthr'] = 4.4 c['niter'] = 1000 c['pthr'] = .05 c['prefix'] = 'alphasim_' c['keep_files'] = False return c def get_options(): description = ''' Experimental implementation of alternative AlphaSim for volumes and surfaces.\n Currently only supports group analysis with t-test against 0. Input paramaters are an uncorrected t-test threshold (tthr) and cluster-size corrected p-value (a.k.a. alpha level) (pthr). This program takes the following steps: (0) Participant's map are t-tested against zero, thresholded by tthr and clustered. (1) residuals are computed by subtracting the group mean from each participants' map (2) the average smoothness of these residual maps is estimated (3) null maps are generated from random gaussian noise that is smoothened with the estimated smoothness from step (2), thresholded by tthr, and clustered. The maximum cluster size is stored for each null map. (4) A cluster from (0) survive pthr if a smaller ratio than pthr of the null maps generated in (3) have a maximum cluster size. Copyright 2012 Nikolaas N. Oosterhof ''' epilog = '''This function is *experimental* and may delete files in output_dir or elsewhere. As of Oct 2012 it has not been validated properly against other approaches to correct for multiple comparisons. Also, it is slow.''' parser = argparse.ArgumentParser(description=description, epilog=epilog) parser.add_argument("-d", "--data_files", required=True, help=("Data input files (that are tested against " "0 with a one-sample t-test)"), nargs='+') parser.add_argument("-o", "--output_dir", required=True, help="Output directory") parser.add_argument("-s", "--surface_file", required=False, help=("Anatomical surface file (.asc); required" " for surface-based analysis"), default=None) parser.add_argument("-t", "--tthr", required=True, help="t-test uncorrected threshold", type=float) parser.add_argument("-p", "--pthr", required=False, help="p-value for corrected threshold", type=float, default=.05) parser.add_argument("-n", "--niter", required=False, help="Number of iterations", type=int, default=1000) parser.add_argument("-i", "--brik_index", required=False, help="Brik index in input files", type=int, default=0) parser.add_argument("-P", "--prefix", required=False, help="Prefix for data output", default='alphasim_') parser.add_argument("-m", "--mask", required=False, help="Mask dataset", default=None) parser.add_argument("-k", "--keep_files", required=False, help="Keep temporary files", default=False, action="store_true") parser.add_argument("-N", "--pad_to_node", required=False, help="pad_to_node (for surfaces)", default=0, type=int) parser.add_argument('-S', "--sigma", required=False, help=('sigma (smoothing bandwidth) for SurfSmooth. ' 'If smoothing of surface ' 'data takes a long time, ' 'set this value to a value between 1 and ' '1.5 and see how many smoothing ' 'iterations are performed. ' 'Ideally, the number of ' 'smoothing iterations should be between ' '10 and 20'), default=0., type=float) args = None namespace = parser.parse_args(args) return vars(namespace) def fix_options(config): # makes everything an absolute path # also verifies a few input parameters def f(x, check=True): y = os.path.abspath(x) if check and not os.path.exists(y): raise ValueError("Not found: %s" % x) return y for i in xrange(len(config['data_files'])): full_path=f(config['data_files'][i]) if _extension_indicates_surface_file(full_path) and \ not _is_surf(config): raise ValueError("Input file %d (%s) indicates surface-based " "input but '--surface_file' was not specified." " To use this function for surface-based " "analysis, supply an anatomical surface " "file (preferably the intermediate surface " "[=the node-wise average of the pial and " "white surface], or alternatively, a pial " "or white surface) using the --surface_file " "option." % (i+1, full_path)) config['data_files'][i] = f(config['data_files'][i]) config['output_dir'] = f(config['output_dir'], check=False) if _is_surf(config): config['surface_file'] = f(config['surface_file']) if config['mask']: config['mask'] = f(config['mask']) p = config['pthr'] if p <= 0 or p >= 1: raise ValueError('Require 0 < pthr < 1') _critical_size_index(config) # raises error if p too small def _extension_indicates_surface_file(fn): surface_extensions=['.gii','.niml.dset','.1D','.1D.dset'] return any(fn.endswith(ext) for ext in surface_extensions) if __name__ == '__main__': #c = get_testing_config() c = get_options() fix_options(c) run_all(c) pymvpa2-2.6.4/mvpa2/support/afni/afni_utils.py000066400000000000000000000226541323370031300213120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Utility functions for AFNI files Created on Feb 19, 2012 @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) ''' import os from os.path import join as pathjoin import subprocess import time import datetime import collections import os.path as op def as_list(v): '''makes this a singleton list if the input is not a list''' if type(v) not in [list, tuple]: v = [v] return v def afni_fileparts(fn): '''File parts for afni filenames. Returns a tuple with these four parts. Also works for .nii files, in which case the third part is the empty Not tested for other file types Parameters ---------- whole filename PATH/TO/FILE/NAME+orig.HEAD Returns ------- fullpath: str PATH/TO/FILE rootname: str NAME orientation: str +orig extensions: str .HEAD ''' tail, head = os.path.split(fn) s = head.split('+') name = s[0] orient = '+' + s[1] if len(s) == 2 else '' afniorients = ['+orig', '+tlrc', '+acpc'] ext = None for a in afniorients: if orient.startswith(a): #ext=orient[len(a):] orient = a ext = ".HEAD" #if ext=='.': # ext='' if ext is None: s = name.split(".") if len(s) > 1: ext = "." + ".".join(s[1:]) name = s[0] else: ext = '' return tail, name, orient, ext def afni_fileexists(fn): ''' Parameters ---------- fn : str AFNI filename (possibly without .HEAD or .BRIK extension) Returns ------- bool True iff fn exists as AFNI file ''' p, n, o, e = afni_fileparts(fn) if o: return os.path.isfile('%s/%s%s.HEAD' % (p, n, o)) else: return (e in ['.nii', '.nii.gz']) and os.path.isfile(fn) def run_cmds(cmds, env=None, dryrun=False): '''exectute a list of commands in the shell''' if env is None: env = os.environ # if cmds is just one command, make a singleton list cmds = as_list(cmds) # run each command for cmd in cmds: print("** Will execute the following commands:") for c in cmd.split(';'): print '** - %s' % c if not dryrun: print("**>> Starting now:") subprocess.check_call(cmd, env=env, shell=True) print("**<< ... completed execution") def cmd_capture_output(cmd, env=None): if env is None: env = os.environ return subprocess.check_output(cmd, env=env, shell=True) def which(f, env=None): '''Finds the full path to a file in the path Parameters ---------- f: str Filename of executable env (optional): Environment in which path is found. By default this is the environment in which python runs Returns str Full path of 'f' if 'f' is executable and in the path, 'f' itself if 'f' is a path, None otherwise ''' if env is None: env = os.environ def is_executable(fullpath): return os.path.exists(fullpath) and os.access(fullpath, os.X_OK) [p, n] = os.path.split(f) if p: return f else: for path in env['PATH'].split(os.pathsep): fullfn = pathjoin(path, n) if is_executable(fullfn): return fullfn return None def _package_afni_nibabel_for_standalone(outputdir, rootname='python'): ''' helper function to put mvpa2.support.{afni,nibabel} into another directory (outputdir) where it can function as a stand-alone package ''' outputdir_files = pathjoin(outputdir, rootname) for d in (outputdir, outputdir_files): if not os.path.exists(d): os.mkdir(d) fullpath = op.realpath(__file__) fullpath_parts = fullpath.split('/') if (len(fullpath_parts) < 4 or fullpath.split('/')[-4:-1] != ['mvpa2', 'support', 'afni']): raise ValueError('This script is not in mvpa2.support.afni. ' 'Packaging for stand-alone is not supported') replacements = {'from mvpa2.base import warning':'def warning(x): print x'} rootdir = pathjoin(op.split(fullpath)[0], '..') parent_pkg = 'mvpa2.support' pkgs = ['afni', 'nibabel'] srcdirs = [pathjoin(rootdir, pkg) for pkg in pkgs] input_path_fns = [pathjoin(d, f) for d in srcdirs for f in os.listdir(d) ] is_python_file = lambda fn: fn.endswith('.py') and not fn.endswith('__.py') input_path_fns = filter(is_python_file, input_path_fns) print input_path_fns outputfns = [] for path_fn in input_path_fns: fn = os.path.split(path_fn)[1] with open(path_fn) as f: lines = f.read().split('\n') newlines = [] for line in lines: newline = None for old, new in replacements.iteritems(): line = line.replace(old, new) if 'import' in line: words = line.split() for pkg in pkgs: full_pkg = parent_pkg + '.' + pkg trgwords = ['from', full_pkg, 'import'] n = len(trgwords) if len(words) >= n and words[:n] == trgwords: # find how many trailing spaces i = 0 while line.find(' ', i) == i: i += 1 # get everything from import to end of line # with enough spaces in front newline = (' ' * i) + ' '.join(words[(n - 1):]) #print line #print ' -> ', newline break else: if pkg in words: print("Not supported in %s: %s" % (path_fn, line)) newline=False break if newline is False: newlines=[] break if newline is None: newline = line newlines.append(newline) if not len(newlines): print "skipping %s" % fn continue if fn.startswith('lib_'): repls = [('lib_', 'pymvpa2-'), ('.py', ''), ('_', '-')] srcbinfn = fn for src, trg in repls: srcbinfn = srcbinfn.replace(src, trg) parentfn = pathjoin(rootdir, '..', '..', 'bin', srcbinfn) print parentfn if os.path.exists(parentfn): with open(parentfn) as pf: plines = pf.read().split('\n') in_main = False for line in plines: if '__main__' in line: in_main = True if in_main: newlines.append(line) newlines = [plines[0]] + newlines else: raise ValueError("not found: %s" % parentfn) trgfn = pathjoin(outputdir_files, fn.replace('lib_', '')) else: trgfn = op.join(outputdir_files, fn) with open(trgfn, 'w') as f: f.write('\n'.join(newlines)) is_executable = newlines[0].startswith('#!') chmod_ = 0777 if is_executable else 0666 os.chmod(trgfn, chmod_) print "Written file %s in %s" % (fn, outputdir_files) outputfns.append(os.path.split(trgfn)[1]) readme = (''' AFNI I/O and wrapper functions in python Copyright 2010-2014 Nikolaas N. Oosterhof The software in the following files is covered under the MIT License (included below): ''' + '\n'.join(map(lambda x:' - ' + x, outputfns)) + ''' Parts of this software is or will be included in PyMVPA. For information see http://www.pymvpa.org. ------------------------------------------------------------------------- The MIT License 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. ''') readmefn = op.join(outputdir_files, 'COPYING') with open(readmefn, 'w') as f: f.write(readme) pymvpa2-2.6.4/mvpa2/support/afni/lib_plot_slices.py000066400000000000000000000362741323370031300223260ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' A simple slice plotter, mostly aimed at AFNI files ''' import numpy as np import nibabel as nb import argparse from mvpa2.base import externals externals.exists('matplotlib', raise_=True) import matplotlib matplotlib.use('Agg') # this seems to work on non-(X windows) systems import matplotlib.pyplot as plt import os import subprocess from os.path import join, split, abspath _VERSION = ".1" _NAME = 'crisp - co-registered image slice plotter' _AUTHOR = "Nov 2013, Nikolaas N. Oosterhof" _NP_FLOAT_DTYPE = np.float16 def reduce_size(a): ''' Reduces storage space for a numpy array Parameters ---------- a: np.ndarray Returns ------- b: np.ndarray stored as _NP_FLOAT_DTYPE ''' return np.asarray(a, dtype=_NP_FLOAT_DTYPE) def load_afni(fn, master_fn=None): ''' Loads an AFNI volume. Parameters ---------- fn: string Filename of AFNI file to load. master_fn: string or None If a string, then 'fn' is resampled to the grid of 'master_fn'. Returns ------- img: np.ndarray Volumetric data in 'fn'. ''' [p, nm] = split(abspath(fn)) # find a unique filename for temporary storage tmp_pat = '__tmp%d.nii' d = 0 while True: tmp_fn = join(p, tmp_pat % d) if not os.path.exists(tmp_fn): break d += 1 # resample if 'master_fn' is supplied, otherwise just copy. # in both cases convert to nifti if master_fn is None: cmd = '3dbucket -overwrite -prefix %s %s[0]' % \ (tmp_fn, fn) else: cmd = '3dresample -overwrite -prefix %s -master %s -inset %s[0]' % \ (tmp_fn, master_fn, fn) # convert file subprocess.check_call(cmd.split()) # load nifti file data = load_nii(tmp_fn) # remove temporary file os.unlink(tmp_fn) return data def load_nii(fn): ''' Loads a NIFTI volume. Parameters ---------- fn: string Filename of NIFTI file to load. Returns ------- img: np.ndarray Volumetric data in 'fn'. ''' img = nb.load(fn) data = reduce_size(img.get_data()) if len(data.shape) != 3: raise ValueError('Expected 3D array, but shape is %s' % (data.shape,)) return data def load_vol(fn, master_fn=None): ''' Loads an AFNI or NIFTI volume. Parameters ---------- fn: string Filename of AFNI file to load. master_fn: string or None If a string, then 'fn' is resampled to the grid of 'master_fn' if 'fn' is an AFNI volume. If 'fn' is a NIFTI volume then 'master_fn' is ignored. Returns ------- img: np.ndarray Volumetric data in 'fn'. ''' is_nifti = any(fn.endswith(e) for e in ['.nii', '.nii.gz']) if is_nifti: if master_fn is not None: print "Warning: Ignoring master %s for %s" % (master_fn, fn) return load_nii(fn) else: return load_afni(fn, master_fn) def slice_data(data, dim, where): ''' Slices data along a dimension Parameters ---------- data: np.ndarray Image data dim: int or list of int Dimension along which to slice where: float or list of float Position where to slice (in range 0..1) Returns ------- sl: (list of (list of)) np.ndarray Depending on whether 'dim' and/or 'where' are lists or not, sl is either a single np.ndarray, a list of such arrays, or a list of a list of such arrays ''' if type(dim) in (list, tuple): # use recursion return [slice_data(data, d, where) for d in dim] # make first dimension of interest if dim > 0 and data is not None: data = data.swapaxes(0, dim) if type(where) in (list, tuple): # use recursion return [slice_data(data, 0, w) for w in where] if data is None: return None if type(where) is float: # convert to integer index n = data.shape[0] where = int(float(n) * where) return np.squeeze(data[where, :, :]).T[::-1, ::-1] def color_slice(data, cmap, min_max=None): ''' Applies a colormap to data Parameters ---------- data: (list of) np.ndarray Data to be colored cmap: colormap instance, bool or string If a string then a colormap with the name 'cmap' is used. True is equivalent to 'hot'. False is equivalent to 'gray'. min_max: pair of float or None Range to which values in 'data' or scaled. If None then the minimum and maximum values in 'data' are used. Returns ------- c: np.ndarray Color value array with size PxQx4. ''' # get colormap if type(cmap) is bool: cmap = 'hot' if cmap else 'gray' if isinstance(cmap, basestring): cmap = plt.get_cmap(cmap) if type(data) is list: return [color_slice(d, cmap, min_max) for d in data] if data is None: return None if min_max is None: max_ = np.max(data) min_ = np.min(data) # make sure it floats & scale to 0..1 scale_inplace(data) clip_inplace(data) sh = data.shape # colormapping requires an array or matrix, so # ravel array here, then reshape after mapping cs_lin = cmap(data.ravel()) cs = np.reshape(cs_lin, sh + cs_lin.shape[-1:]) cs = reduce_size(cs) return cs def blend(datas, weights=None): ''' Blends different color value arrays Parameters ---------- datas: tuple of np.ndarray Arrays to be blended weights: list of float or None Weight for each array. If None then weights is an array of ones. Returns ------- b: np.ndarray Weighted sum of 'datas'. Data is clipped to range 0..1 ''' if type(datas) is list: return [blend(d, weights) for d in datas] n = len(datas) if weights is None: weights = np.ones((n, 1)) # space for output b = None for (data, weight) in zip(datas, weights): if data is None: continue if b is None: b = np.zeros(data.shape, dtype=_NP_FLOAT_DTYPE) # ensure shape is the same for all inputs if data.shape != b.shape: raise ValueError('Shape mismatch: %s %s %s' % slice_.shape, b.sh) b += weight * data # clip range clip_inplace(b) return b def scale_inplace(x, range_=None): ''' Scales array in-place to 0..1 Parameters ---------- x: np.ndarray Data to be scaled. Data is modified in-place. range_: None or [min_, max_] Range to scale the data to. None is equivalent to [np.min(x), np.max(x)] ''' if x is None: return if range_ is None: range_ = [np.min(x), np.max(x)] min_, max_ = range_ x -= min_ x /= (max_ - min_) def clip_inplace(x, range_=(0., 1.)): ''' Clips data in-place Parameters ---------- x: np.ndarray Data to be clipped (in-place) range_: None or [min_, max_] Range to clip to. None is equivalent to [0,1] ''' if x is None: return min_, max_ = range_ x[x < min_] = min_ x[x > max_] = max_ def make_plot(ulay, olay, dims, pos, title=None, ulay_range=None, olay_range=None, output_fn=None): ''' Generates a plot of slices with different overlays and underlays Parameters ---------- ulay: np.ndarray or str or None (filename of) underlay olay: np.ndarray or str or None (filename of) overlay dims: list of int dimensions to plot (0=x, 1=y, 2=z) pos: list of float relative positions to slice (in range 0..1) title: str or None title of plot ulay_range: None or [min_, max_] range to scale underlay to olay_range: None or [min_, max_] range to scale overlay to output_fn: None or str If not None the output is saved to this file Returns ------- plt: plt ''' # set some defaults figsize = (15, 12) imglength = 200 fontsize = 30 fontcolor = 'white' bgcolor = 'black' # load underlay and overlay if isinstance(ulay, basestring): ulay_name = split(ulay)[1] u = load_vol(ulay) else: ulay_name = '' u = ulay if isinstance(olay, basestring): olay_name = split(olay)[1] o = load_vol(olay) else: olay_name = '' o = olay title = '%s / %s' % (ulay_name, olay_name) # scale scale_inplace(u, ulay_range) scale_inplace(o, olay_range) # slice data, so that u and o become lists of lists of 2D-arrays u = slice_data(u, dims, pos) o = slice_data(o, dims, pos) # color slices, so that u and o become lists of lists of 3D-arrays (X*Y*4) u = color_slice(u, False, (0, 1)) o = color_slice(o, True, (0, 1)) # blend underlay and overlay uo = map(zip, *zip(*zip(u, o))) sl = blend(uo) # free up some space del(o) del(u) # generate slices ncol = len(sl[0]) nrow = len(sl) # define subplots: one row per dimension, one column per position [f, axs] = plt.subplots(nrow, ncol, sharex=True, figsize=figsize) f.set_facecolor(bgcolor) counter = 0 for j in xrange(ncol): for i in xrange(nrow): counter += 1 ax = axs[i, j] ax.imshow(sl[i][j], extent=(0, imglength) * 2) ax.axis('off') ax.set_axis_bgcolor(bgcolor) # attempt to set a tight layout (doesn't work greatly) f.tight_layout() if title is not None: # set title axs[0][0].text(0, imglength, title, color=fontcolor, fontsize=fontsize) plt.draw() if output_fn is not None: plt.savefig(output_fn, facecolor='black') def make_scatter(ulay, olay, output_fn=None): ''' Generates a scatter plot between intensity values of underlay and overlay Generates a plot of slices with different overlays and underlays Parameters ---------- ulay: np.ndarray or str or None (filename of) underlay olay: np.ndarray or str or None (filename of) overlay output_fn: None or str If not None the output is saved to this file Returns ------- plt: plt ''' cutoff_rel = .1 # ignore lowest 10% of values figsize = (15, 12) # size of figure histbincount = 25 # number of bins in histogram internal_rel = .25 # only show voxels within 50% of center of mass # load data u = load_vol(ulay) o = load_vol(olay, ulay) # define cutoff function def cutoff(x, cutoff_rel=cutoff_rel): xr = x.ravel() x_sorted = np.sort(xr) cutoff_abs = xr[np.round(cutoff_rel * x.size)] return cutoff_abs # only keep voxels that survive cutoff in both underlay and overlay msk = np.logical_and(o > cutoff(o), u > cutoff(u)) apply_msk = lambda x:np.asarray(x[msk], dtype=np.float_) um, om = map(apply_msk, (u, o)) ## compute distance of each voxel from center of mass sh = np.asarray(u.shape) ndim = len(sh) nf = np.prod(sh) # xyz = np.zeros((nf, ndim), dtype=u.dtype) for dim in xrange(ndim): r = np.arange(sh[dim]) vec_dim = np.ones(ndim) vec_dim[dim] = sh[dim] r_shaped = np.reshape(r, vec_dim) tile_dim = sh.copy() tile_dim[dim] = 1 dim_coord = np.tile(r_shaped, tile_dim) xyz[:, dim] = dim_coord.ravel() xyzm = np.asarray(xyz[msk.ravel(), :], dtype=np.float_) # mask & get to native float dtype com = np.mean(xyzm, 0) # center of mass delta = xyzm - com c = np.sqrt(np.sum(delta ** 2, 1)) # distance from center of mass c[c > np.max(c) * internal_rel] = np.Inf # indices to sort by distance ii = np.argsort(c) ii = ii[np.isfinite(c[ii])] # remove infinite values ii = ii[::-1] # reverse order - small ones on top # apply indices c = c[ii] um = um[ii] om = om[ii] # build the scatter plot # inspired by http://matplotlib.org/examples/pylab_examples/scatter_hist.html # by the matplotlib development team # definitions for the axes left, width = 0.1, 0.65 bottom, height = 0.1, 0.65 bottom_h = left_h = left + width + 0.02 rect_scatter = [left, bottom, width, height] rect_histx = [left, bottom_h, width, 0.2] rect_histy = [left_h, bottom, 0.2, height] # start with a rectangular Figure plt.figure(figsize=figsize) axScatter = plt.axes(rect_scatter) axHistx = plt.axes(rect_histx) axHisty = plt.axes(rect_histy) nullfmt = plt.NullFormatter() axHistx.xaxis.set_major_formatter(nullfmt) axHisty.yaxis.set_major_formatter(nullfmt) axScatter.scatter(um, om, c=c) axScatter.set_xlabel('Underlay intensity') axScatter.set_ylabel('Overlay intensity') umax, omax = map(np.max, (um, om)) axScatter.set_xlim((0, umax)) axScatter.set_ylim((0, omax)) ubins = np.arange(histbincount + 1) * (umax / histbincount) obins = np.arange(histbincount + 1) * (omax / histbincount) axHistx.hist(um, bins=ubins) axHisty.hist(om, bins=obins, orientation='horizontal') axHistx.set_xlim(axScatter.get_xlim()) axHisty.set_ylim(axScatter.get_ylim()) title = '%s / %s (r=%.3f)' % (split(ulay)[1], split(olay)[1], np.corrcoef(um, om)[0, 1]) axHistx.set_title(title) plt.draw() if output_fn is not None: plt.savefig(output_fn) def get_parser(): description = '%s version %s\n%s' % \ (_NAME, _VERSION, _AUTHOR) epilog = ''' Example: %s ulay+tlrc.HEAD olay+tlrc.HEAD combined_image_out.png If NIFTI files are supplied to this function then they have to be in correspondence. If AFNI files are supplied the overlay is resampled to the grid of the underlay. ''' % __file__ formatter_class = argparse.ArgumentDefaultsHelpFormatter p = argparse.ArgumentParser(description=description, epilog=epilog, formatter_class=formatter_class) p.add_argument("ulay", help="Underlay file name") p.add_argument("olay", help="Overlay file name") p.add_argument("output_fn", help="Output file name") p.add_argument('-u', '--ulay_range', nargs=2, default=None, type=float, help='Underlay range (min max)') p.add_argument('-o', '--olay_range', nargs=2, default=None, type=float, help='Overlay range (min max)') p.add_argument('-d', '--dims', nargs='?', default=[0, 1, 2], type=int, help='Dimensions to plot; 0=x, 1=y, 2=z') p.add_argument('-p', '--pos', nargs='?', default=[.35, .45, .55, .65], type=float, help='Relative slice positions in range 0..1') p.add_argument('-t', '--title', default=None, help='Plot title') return p ''' if __name__ == '__main__': p = get_parser() args = p.parse_args() v = vars(args) make_plot(v) ''' pymvpa2-2.6.4/mvpa2/support/afni/lib_prep_afni_surf.py000066400000000000000000001463411323370031300230050ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' This is a library for anatomical preprocessing for surface-based voxel selection. Typically it is used by a wrapper function prep_afni_surf. %s Created on Jan 29, 2012 @author: nick ''' __usage_doc__ = """ It provides functionality to: - convert FreeSurfer surfaces to AFNI/SUMA format (using SUMA_Make_Spec_FS). - resample surfaces to standard topology (using MapIcosahedron) at various resolutions. - generate additional surfaces by averaging existing ones. - coregistration of freesurfer output to AFNI/SUMA anatomical or functional volume (using align_epi_anat.py). - run @AddEdge to visualize coregistration. - merge left (lh) and right (rh) hemispheres into single files (mh). - generate various views of left+right inflated surfaces. - generate SUMA specification files, and see_suma* shell scripts. This script assumes a processing pipeline with FreeSurfer for surface reconstruction, and AFNI/SUMA for coregistration and visualization. Specifically it is assumed that surfaces have been reconstructed using FreeSurfer's recon-all. More details can be found in the documentation available at http://surfing.sourceforge.net If EPIs from multiple sessions are aligned, this script should use different directories for refdir for each session, otherwise naming conflicts may occur. This function does not resample or transform any functional data. Instead, surfaces are transformed to be in alignment with ANATVOL or EPIVOL. For typical usage it requires three arguments: (1) "-e epi_filename" or "-a anat_filename" (2) "-d freesurfer/directory/surf" (3) "-r outputdir"' (*) "-T" [if "epi_filename" / "anat_filename" is in template (MNI/Tal) space" Notes: - Please check alignment visually. - Nifti (.nii or .nii.gz) files are supported, but AFNI may not be able to read the {S,Q}-form information properly. If functional data was preprocessed with a program other than AFNI, please check alignment visually with another program than AFNI, such as MRIcron. """ __doc__ %= __usage_doc__ from mvpa2.support.nibabel import surf, afni_suma_spec from mvpa2.support.afni import afni_utils as utils import os from os.path import join as pathjoin import fnmatch import datetime import re import argparse import sys _VERSION = "0.1" __all__ = ['run_afni_anat_preproc'] def getdefaults(): '''set up default parameters - for testing now''' d = { # options that must be set properly # usually these defaults are fine 'overwrite': False, # delete directories and files before running commands - # BE CAREFUL with this option 'hemi': 'l+r', # hemispheres to process, usually l+r 'mi_icopat': 'ico%d_', # pattern for icosehedron output; placeholder is for ld 'expvol_ss': True, 'verbose': True, 'al2expsuffix': '_al2exp', 'sssuffix': '_ss', 'alsuffix': '_al', 'hemimappingsuffix': 'hemi_correspondence.1D', 'outvol_space': None, # output space, one of 'MNI', 'TLRC', 'MNI_ANAT', None, 'ORIG' 'outvol_ext': None, # '+tlrc','+orig','.nii','.nii.gz' 'outvol_fullext': None } return d def format2extension(fmt): if type(fmt) is dict: fmt = fmt['surfformat'] # config return dict(ascii='.asc', gifti='.surf.gii')[fmt] def format2type(fmt): if type(fmt) is dict: fmt = fmt['surfformat'] # config return dict(ascii='fs', gifti='gii')[fmt] def format2spectype(fmt): if type(fmt) is dict: fmt = fmt['surfformat'] # config return dict(ascii='FreeSurfer', gifti='GIFTI')[fmt] def checkconfig(config): # for now, assume input is valid pass def augmentconfig(c): '''add more configuration values that are *derived* from the current , configuration and also checks whether some options are set properly''' # ensure surfdir is set properly. # normally it should end in 'surf' # try to be smart and deduce subject id from surfdir (if not set explicitly) surfdir = c['surfdir'] if surfdir: surfdir = os.path.abspath(surfdir) parent, nm = os.path.split(surfdir) if nm != 'surf': jn = pathjoin(surfdir, 'surf') if os.path.exists(jn): surfdir = jn elif nm == 'SUMA': surfdir = parent if not ( os.path.exists(surfdir) or os.path.split(surfdir)[ 1] == 'surf'): print('Warning: surface directory %s not does exist ' 'or does not end in "surf"' % surfdir) surfdir = None c['surfdir'] = surfdir # set SUMADIR as well c['sumadir'] = '%(surfdir)s/SUMA/' % c # derive subject id from surfdir sid = os.path.split(os.path.split(surfdir)[0])[1] if surfdir else None if c.get('sid') is None: c['sid'] = sid if c['sid'] is None: print"Warning: no subject id specified" c['prefix_sv2anat'] = 'SurfVol2anat' # update steps if c.get('steps', 'all') == 'all': c['steps'] = ('toafni+mapico+moresurfs+skullstrip+' 'align+makespec+makespecboth+makesurfmasks') hasanatvol = 'anatvol' in c and c['anatvol'] hasepivol = 'epivol' in c and c['epivol'] hasexpvol = 'expvol' in c and c['expvol'] hasisepi = 'isepi' in c if hasexpvol: if hasanatvol or hasepivol: raise Exception( "expvol specified, but also anatvol or epivol - illegal!") if not hasisepi: raise Exception( "not specified whether expvol is EPI (yes) or anat (no)") else: if hasanatvol: if 'epivol' in c and c['epivol']: raise Exception("Cannot have both anatvol and epivol") else: c['expvol'] = c['anatvol'] c['isepi'] = False del (c['anatvol']) else: if hasepivol: c['expvol'] = c['epivol'] c['isepi'] = True del (c['epivol']) else: print("Warning: no anatomical or " "functional experimental voume defined") def yesno2bool(d, k): # dict, key '''Assuming d[k] contains the word 'yes' or 'no', makes d[k] a boolean (True=='yes',False=='no'); otherwise an exception is thrown. The dict is updated''' val = d[k] if val is None: b = False elif type(val) == bool: b = val else: v = val.lower() if v == 'yes': b = True elif v == 'no': b = False else: raise Exception("Not yes or no: %s" % val) d[k] = b yesno2bool(c, 'AddEdge') if c['identity']: c['expvol_ss'] = c['anatval_ss'] = False else: yesno2bool(c, 'expvol_ss') yesno2bool(c, 'isepi') # see if we can get the fs_sid # (only if surfdir is set properly) # XXX not sure if this still makes sense c['fs_sid'] = None surfdir = c.get('surfdir', None) if surfdir is not None and os.path.exists(surfdir): fs_log_fn = pathjoin(surfdir, '..', 'scripts', 'recon-all.done') print "Looking in %s" % fs_log_fn if os.path.exists(fs_log_fn): with open(fs_log_fn) as f: lines = f.read().split('\n') for line in lines: if line.startswith('SUBJECT'): fs_sid = line[8:] c['fs_sid'] = fs_sid print "Found Freesurfer sid %s" % fs_sid break if c['fs_sid'] is None: c['fs_sid'] = sid print "Unable to find proper Freesurfer sid" pathvars = ['anatvol', 'expvol', 'epivol', 'refdir', 'surfdir'] for pathvar in pathvars: if pathvar in c and c[pathvar]: c[pathvar] = os.path.abspath(c[pathvar]) print "Set absolute path for %s: %s" % (pathvar, c[pathvar]) if c['template'] and c['notemplate']: raise ValueError('Cannot have both template and notemplate') if 'expvol' in c: _ensure_expvol_is_plump(c['expvol']) p, n, o, e = utils.afni_fileparts(c['expvol']) if c.get('outvol_space', None) is None: cmd = '3dAttribute TEMPLATE_SPACE %s' % c['expvol'] outvol_space = utils.cmd_capture_output(cmd) outvol_space = outvol_space.split('~')[0].strip() if len(outvol_space) and not c[ 'notemplate'] and outvol_space.lower() != 'orig': print "Detected TEMPLATE_SPACE=%s" % outvol_space c['outvol_space'] = outvol_space if o == '+orig': o = '+tlrc' print ("Template space '%s' detected: '" "output has extension %s" % ( outvol_space, o)) c['template'] = True else: c['outvol_space'] = '+orig' if len(o): # '+orig' or '+tlrc' c['outvol_ext'] = o c['outvol_fullext'] = o + e c['outvol_view'] = o[1:] else: # For NIFTI - output in orig or tlrc c['outvol_view'] = 'tlrc' if c['template'] else 'orig' c['outvol_ext'] = '+' + c['outvol_view'] c['outvol_fullext'] = c['outvol_ext'] + '.HEAD' return c def _ensure_expvol_is_plump(expvol, func=None): '''Helper function that raises an error if the experimental volume is oblique, because such volumes are not supported (yet) If the "func" argument is provided, it can be used to override the default 3dinfo command to get the dataset info output''' if func is None: cmd = '3dinfo "%s" 2>/dev/null' % expvol func = lambda: utils.cmd_capture_output(cmd) info = func() info_lines = info.split('\n') prefix = 'Data Axes Tilt: ' is_plump = None for line in info_lines: sp = line.split(prefix) has_match = len(sp) == 2 and sp[0] == '' if has_match: if is_plump is not None: raise ValueError('Multiple matches for prefix "%s"' % prefix) value = sp[1].lower() if 'oblique' in value: is_plump = False elif 'plumb' in value: is_plump = True else: raise ValueError('Unable to find orientation in: "%s"' % info_lines) if is_plump is None: raise ValueError('Did not find orientation using prefix "%s"' % prefix) if not is_plump: raise ValueError('The volume "%s" is oblique (not plump), for which ' 'alignment is currently not supported by ' 'this AFNI-based pipeline. There are ' 'two possible avenues to deal with this:\n' '(1) copy the volume to another file (e.g. ' 'using 3dcopy), then destroy ' 'the oblique-ity using 3drefit with the ' '"-deoblique" option. Note that using 3drefit ' 'with "-deoblique" ' 'destroys some header information, so make sure ' 'to make a copy of the volume first.\n' '(2) run 3dresample with the "-deoblique" option. ' 'Unless 3drefit (option 1 above), this may ' 'resample the data.\n' 'If there are multiple ' 'files in the same oblique space (such as multiple ' 'fMRI runs) which will be used for subsequent ' 'analyses, then it is recommended to deoblique ' 'them all and in the same way.' % expvol) def getenv(): '''returns the path environment As a side effect we ensure to set for FreeSurfer's HOME''' env = os.environ if 'FREESURFER_HOME' not in env: # FreeSurfer requires this var, # even though we don't use it env['FREESURFER_HOME'] = env['HOME'] return env def run_toafni(config, env): '''convert surfaces to AFNI (or SUMA, rather) format''' cmds = [] sd = config['sumadir'] sid = config['sid'] if sid is None: raise ValueError("Subject id is not set, cannot continue") fs_sid = config['fs_sid'] # files that should exist if Make_Spec_FS was run successfully checkfns = ['brainmask.nii', 'T1.nii', 'aseg.nii'] filesexist = all([os.path.exists('%s/%s' % (sd, fn)) for fn in checkfns]) if config['overwrite'] or not filesexist: if config['overwrite']: if filesexist: cmds.append('rm -rf "%s"' % sd) cmds.append( 'cd %(surfdir)s;@SUMA_Make_Spec_FS -sid %(sid)s -no_ld' % config) utils.run_cmds(cmds, env) else: print ("SUMA conversion appears to have been " "performed already for %s in %s") % ( sid, sd) def run_mapico(config, env): '''run MapIcosehedron to convert surfaces to standard topology''' sumadir = config['sumadir'] firstcmd = 'cd "%s" || exit 1' % sumadir cmds = [] icolds, hemis = _get_hemis_icolds(config) sid = config['sid'] # subject id ext = '.asc' # input is always ascii for icold in icolds: icoprefix = config['mi_icopat'] % icold spherefns = [] for hemi in hemis: if not config['overwrite']: # the last file that is generated by MapIcosahedron lastsurffn = '%s/%s%sh.sphere.reg%s' % ( sumadir, config['mi_icopat'] % icold, hemi, ext) spherefns.append(lastsurffn) if os.path.exists(lastsurffn): print("Seems MapIcosahedron was already run " "for %sh with ld=%d" % ( hemi, icold)) continue cmd = ('MapIcosahedron -overwrite -spec %s_%sh.spec ' '-ld %d -fix_cut_surfaces -prefix %s') % (sid, hemi, icold, icoprefix) cmds.append(cmd) if cmds: cmd = '%s;%s' % (firstcmd, ';'.join(cmds)) utils.run_cmds(cmd, env) cmds = [] if len(spherefns) == 2 and 'l' in hemis and 'r' in hemis: spheres = map(surf.read, spherefns) mapfn = (config['mi_icopat'] % icold) + config['hemimappingsuffix'] mappathfn = pathjoin(sumadir, mapfn) if config['overwrite'] or not os.path.exists(mappathfn): eps = .001 print ("Computing bijection between nodes (ico=%d) - '" "this may take a while") % icold bijection = surf.get_sphere_left_right_mapping(spheres[0], spheres[1], eps) with open(mappathfn, 'w') as f: f.write('\n'.join(map(str, bijection))) print "Written bijection to %s" % mappathfn def run_moresurfs(config, env): '''Generates additional surfaces in the SUMA dir by averaging existing ones. ''' # surface1, surface2, and output (averaged) output moresurfs = [("smoothwm", "pial", "intermediate"), ("intermediate", "inflated", "semiinflated"), ("semiinflated", "inflated", "tqinflated")] icolds, hemis = _get_hemis_icolds(config) d = config['sumadir'] ext = '.asc' # always AFNI in this stage for icold in icolds: icoprefix = config['mi_icopat'] % icold for hemi in hemis: for surftriple in moresurfs: fns = ['%s/%s%sh.%s%s' % (d, icoprefix, hemi, surfname, ext) for surfname in surftriple] if config['overwrite'] or not os.path.exists(fns[2]): average_fs_asc_surfs(fns[0], fns[1], fns[2]) else: print "%s already exists" % fns[2] def _set_vol_space_cmd(fn, config): param = '' del_cmd = '' p, n, o, e = utils.afni_fileparts(fn) space = config.get('outvol_space', None) if space is not None: param += ' -space %s' % space view = config.get('outvol_view') if view is not None: param += ' -view %s' % view if len(o) and o[0] == '+' and o[1:].lower() != view.lower(): trgfn = '%s/%s+%s' % (p, n, view.lower()) del_cmd = 'rm %s*; ' % trgfn if param: p, n, o, e = utils.afni_fileparts(fn) cmd = 'cd %s; %s 3drefit -overwrite %s %s' % ( p, del_cmd, param, n + o + e) else: cmd = 'echo "Not changing view or space for %s"' % fn return cmd def _convert_vol_space_to_orig_cmd(fn): p, n, o, e = utils.afni_fileparts(fn) if o == '+orig': return "echo '%s' is already in orig space - no conversion" % fn t = '__tmp_foo_' while os.path.exists(p + '/' + t + o + e): t += 'x' cmds = ['cd %s' % p, '3drename -overwrite %s%s %s%s' % (n, o, t, o), '3drefit -view orig %s%s' % (t, o), '3drename -overwrite %s+orig %s+orig' % (t, n)] return ';'.join(cmds) def run_skullstrip(config, env): fullext = config['outvol_fullext'] overwrite = config['overwrite'] refdir = config['refdir'] cmds = [] if not os.path.exists(refdir): cmds.append('mkdir %(refdir)s' % config) sumadir = config['sumadir'] sid = config['sid'] fs_sid = config['fs_sid'] if not sid: raise ValueError("Subject id is not set, cannot continue") # process the surfvol anatomical. # because it's already skull stripped by freesurfer # simply copy it over; rename brain.nii to surfvol_ss surfvol_srcs = ['%s/%s' % (sumadir, fn) for fn in ['brain.nii', 'T1.nii']] surfvol_trgs = ['%s/%s' % (refdir, fn) for fn in ['%s_SurfVol_ss%s' % (sid, fullext), '%s_SurfVol%s' % (sid, fullext)]] for src, trg in zip(surfvol_srcs, surfvol_trgs): if os.path.exists(trg) and not overwrite: print '%s already exists' % trg else: t_p, t_n, t_o, t_e = utils.afni_fileparts(trg) trg_short = '%s%s' % (t_n, t_o) cmds.append('cd "%s"; 3dresample -overwrite -orient ' 'LPI -inset %s -prefix ./%s' % (refdir, src, trg_short)) cmds.append(_set_vol_space_cmd('%s/%s+orig' % (refdir, t_n), config)) # process experimental volume. expvol_src = config['expvol'] do_ss = config['expvol_ss'] [e_p, e_n, e_o, e_e] = utils.afni_fileparts(expvol_src) expvol_trg_prefix = '%s%s' % (e_n, config['sssuffix'] if do_ss else '') expvol_trg_tmp_prefix = '__tmp_%s' % expvol_trg_prefix expvol_trg = '%s/%s%s' % (refdir, expvol_trg_prefix, fullext) print "Attempt %s -> %s" % (expvol_src, expvol_trg) ext = config['outvol_ext'] if overwrite or not utils.afni_fileexists(expvol_trg): if do_ss: cmds.append( 'cd "%s";3dSkullStrip -overwrite -prefix ./%s%s -input %s' % (refdir, expvol_trg_tmp_prefix, ext, expvol_src)) else: cmds.append('cd "%s";3dbucket -overwrite -prefix ./%s%s %s' % (refdir, expvol_trg_tmp_prefix, ext, expvol_src)) cmds.append('cd "%s"; 3dresample -overwrite -orient LPI ' '-prefix %s -inset %s%s' % (refdir, expvol_trg_prefix, expvol_trg_tmp_prefix, ext)) cmds.append('rm %s/%s*' % (refdir, expvol_trg_tmp_prefix)) cmds.append(_set_vol_space_cmd(expvol_trg, config)) else: print "No skull strip because already exists: %s%s" % ( expvol_trg_prefix, ext) utils.run_cmds(cmds, env) def run_alignment(config, env): '''Aligns anat (which is assumed to be aligned with EPI data) to FreeSurfer SurfVol This function strips the anatomicals (by default), then uses align_epi_anat.py to estimate the alignment, then applies this transformation to the non-skull-stripped SurfVol and also to the surfaces. Some alignment headers will be nuked''' overwrite = config['overwrite'] alignsuffix = config['al2expsuffix'] refdir = config['refdir'] fullext = config['outvol_fullext'] ext = config['outvol_ext'] if config['sid'] is None: raise ValueError('Need sid') cmds = [] if not os.path.exists(config['refdir']): cmds.append('mkdir %(refdir)s' % config) # two volumes may have to be stripped: the inpput anatomical, and the # surfvol. Put them in a list here and process them similarly surfvol = ('%(refdir)s/%(sid)s_' 'SurfVol%(outvol_fullext)s' % config) surfvol_ss = ('%(refdir)s/%(sid)s_' 'SurfVol%(sssuffix)s%(outvol_fullext)s' % config) e_p, e_n, _, _ = utils.afni_fileparts(config['expvol']) if config['expvol_ss']: e_n = '%s%s' % (e_n, config['sssuffix']) expvol = '%s/%s%s' % (refdir, e_n, fullext) volsin = [surfvol_ss, expvol] for volin in volsin: if not os.path.exists(volin): raise ValueError('File %s does not exist' % volin) a_n = utils.afni_fileparts(volsin[0])[1] # surfvol input root name ssalprefix = '%s%s' % (a_n, alignsuffix) unity = "1 0 0 0 0 1 0 0 0 0 1 0" # we all like unity, don't we? fullmatrixfn = '%s_mat.aff12.1D' % ssalprefix aloutfns = ['%s%s' % (ssalprefix, fullext), fullmatrixfn] # expected output files if alignment worked if config['overwrite'] or not all( [os.path.exists('%s/%s' % (refdir, f)) for f in aloutfns]): alignedfn = '%s/%s%s' % (refdir, ssalprefix, fullext) if config['identity']: fullmatrix_content = '"MATRIX(%s)"' % unity.replace(" ", ",") cmd = ('cd "%s"; cat_matvec -ONELINE %s > %s; ' '3dcopy -overwrite %s%s %s%s%s' % ( refdir, fullmatrix_content, fullmatrixfn, a_n, ext, a_n, alignsuffix, ext)) else: # use different inputs depending on whether expvol is EPI or ANAT twovolpat = ('-anat %s -epi %s -anat2epi -epi_base 0 ' '-anat_has_skull no ' '-epi_strip None') if config['isepi'] else ( '-dset1 %s -dset2 %s -dset1to2 ' '-dset1_strip None -dset2_strip None') # use this pattern to generate a suffix twovolsuffix = twovolpat % (volsin[0], volsin[1]) aea_opts = config['aea_opts'] if config['template']: aea_opts += (" -Allineate_opts '-maxrot 10 " "-maxshf 10 -maxscl 1.5'") # align_epi_anat.py cmd = 'cd "%s"; align_epi_anat.py -overwrite -suffix %s %s %s' % ( refdir, alignsuffix, twovolsuffix, aea_opts) cmds.append(cmd) cmds.append(_set_vol_space_cmd(alignedfn, config)) utils.run_cmds(cmds, env) else: print "Alignment already done - skipping" # run these commands first, then check if everything worked properly cmds = [] # see if the expected transformation file was found if not config['identity'] and not os.path.exists( '%s/%s' % (refdir, fullmatrixfn)): raise Exception("Could not find %s in %s" % (fullmatrixfn, refdir)) # now make a 3x4 matrix matrixfn = '%s%s.A2E.1D' % (a_n, alignsuffix) if overwrite or not os.path.exists('%s/%s' % (refdir, matrixfn)): cmds.append('cd "%s"; cat_matvec %s > %s || exit 1' % ( refdir, fullmatrixfn, matrixfn)) # make an aligned, non-skullstripped version of SurfVol in refdir alprefix = '%s_SurfVol%s' % (config['sid'], alignsuffix) svalignedfn = '%s/%s%s' % (refdir, alprefix, fullext) # size of anatomical grid in mm. We'll have to resample, otherwise 3dWarp does # not respect the corners of the volume (as of April 2012) newgrid = 1 if overwrite or not os.path.exists(svalignedfn): surfvolfn = '%s/T1.nii' % config['sumadir'] cmds.append('cd "%s";3dWarp -overwrite -newgrid %f ' '-matvec_out2in `cat_matvec -MATRIX %s` -prefix ./%s %s' % (refdir, newgrid, matrixfn, alprefix, surfvolfn)) cmds.append(_set_vol_space_cmd('%s/%s+orig' % ( refdir, alprefix), config)) else: print '%s already exists - skipping Warp' % svalignedfn utils.run_cmds(cmds, env) cmds = [] # nuke afni headers headernukefns = ['%s%s' % (f, fullext) for f in [ssalprefix, alprefix]] headernukefields = ['ALLINEATE_MATVEC_B2S_000000', 'ALLINEATE_MATVEC_S2B_000000', 'WARPDRIVE_MATVEC_FOR_000000', 'WARPDRIVE_MATVEC_INV_000000'] for fn in headernukefns: for field in headernukefields: # nuke transformation - otherwise AFNI does this unwanted # transformation for us fullfn = '%s/%s' % (refdir, fn) if not (os.path.exists(fullfn) or config['identity']): raise ValueError("File %r does not exist" % fullfn) refitcmd = "3drefit -atrfloat %s '%s' %s" % (field, unity, fn) # only refit if not already in AFNI history # (which is stored in HEADfile) cmd = ('cd "%s"; m=`grep "%s" %s | wc -w`; if [ $m -eq 0 ]; ' 'then %s; ' 'else echo "File %s seems already 3drefitted"; fi' % ( refdir, refitcmd, fn, refitcmd, fn)) cmds.append(cmd) utils.run_cmds('; '.join(cmds), env) cmds = [] # run AddEdge so that volumes can be inspected visually for alignment if config['AddEdge']: use_ss = config['expvol_ss'] # ae_{e,s}_n are AddEdge names for expvol and surfvol ae_e_n = utils.afni_fileparts(config['expvol'])[1] if use_ss: ae_e_n += config['sssuffix'] ae_s_n = ssalprefix # if use_ss else alprefix # *_ne have the output extension as well ae_e_ne = ae_e_n + ext ae_s_ne = ae_s_n + ext addedge_fns = ['%s/_ae.ExamineList.log' % refdir] exts = ['HEAD', 'BRIK'] orig_ext = '+orig' addedge_rootfns = ['%s_%s%%s' % (ae_e_n, postfix) for postfix in ['e3', 'ec', ae_s_n + '_ec']] addedge_rootfns.extend(['%s_%s%%s' % (ae_s_n, postfix) for postfix in ['e3', 'ec']]) addedge_fns_pat = ['%s.%s' % (fn, e) for fn in addedge_rootfns for e in exts] addegde_pathfns_orig = map(lambda x: pathjoin(refdir, x % '+orig'), addedge_fns_pat) + addedge_fns addegde_pathfns_ext = map(lambda x: pathjoin(refdir, x % ext), addedge_fns_pat) addegde_exists = map(os.path.exists, addegde_pathfns_ext) if overwrite or not all(addegde_exists): ae_ns = (ae_e_n, ae_s_n) cmds.extend( map(lambda fn: 'if [ -e "%s" ]; then rm "%s"; fi' % (fn, fn), addegde_pathfns_orig + addegde_pathfns_ext)) cmds.append(';'.join(['cd %s' % refdir] + [_convert_vol_space_to_orig_cmd( '%s/%s%s' % (refdir, n, ext)) for n in ae_ns] + ['\@AddEdge %s+orig %s+orig' % ae_ns])) set_space_fns = addegde_pathfns_orig + [ '%s/%s%s.%s' % (refdir, fn, orig_ext, exts[0]) for fn in ae_ns] for fn in set_space_fns: if fn.endswith('.log'): continue cmds.append('if [ -e %s ]; then %s; fi' % ( fn, _set_vol_space_cmd(fn, config))) utils.run_cmds(cmds, env) cmds = [] else: print "AddEdge seems to have been run already" sid = config['sid'] plot_slice_fns = [ (ae_e_n + '_e3', ae_s_n + '_e3', '%s_qa_e3.png' % sid), (None, ae_e_n + '_' + ae_s_n + '_ec', '%s_qa_ec.png' % sid)] plot_slice_imgfns = ['%s/%s' % (refdir, fn) for fn in plot_slice_fns] if overwrite or not all(map(os.path.exists, plot_slice_imgfns)): slice_dims = [0, 1, 2] slice_pos = [.35, .45, .55, .65] for fns in plot_slice_fns: input_fns = [] for i, fn in enumerate(fns): if fn is not None: fn = '%s/%s' % (refdir, fn) if i <= 1: fn += ext input_fns.append(fn) fn1, fn2, fnout = input_fns if not os.path.exists(fnout): _make_slice_plot(fn1, fn2, fnout) print "QA Image saved to %s" % fnout else: print "Already exists: %s" % fnout else: print "QA images already exist" # because AFNI uses RAI orientation but FreeSurfer LPI, make a new # affine transformation matrix in which the signs of # x and y coordinates are negated before and after the transformation matrixfn_LPI2RAI = '%s.A2E_LPI.1D' % ssalprefix if overwrite or not os.path.exists('%s/%s' % (refdir, matrixfn_LPI2RAI)): lpirai = '"MATRIX(-1,0,0,0,0,-1,0,0,0,0,1,0)"' cmd = ( 'cd %s; cat_matvec -ONELINE %s `cat_matvec -MATRIX %s` %s > %s' % (refdir, lpirai, matrixfn, lpirai, matrixfn_LPI2RAI)) cmds.append(cmd) # apply transformation to surfaces [icolds, hemis] = _get_hemis_icolds(config) sumadir = config['sumadir'] sumafiles = os.listdir(sumadir) origext = '.asc' ext = format2extension(config) tp = format2type(config) # process all hemispheres and ld values for icold in icolds: for hemi in hemis: pat = '%s%sh.?*%s' % (config['mi_icopat'] % icold, hemi, origext) for sumafile in sumafiles: if fnmatch.fnmatch(sumafile, pat): if not sumafile.endswith(origext): raise ValueError( "%s does not end with %s" % (sumafile, origext)) extsumafile = sumafile[:-len(origext)] alsumafile = extsumafile + config['alsuffix'] + ext if config['overwrite'] or not os.path.exists( '%s/%s' % (refdir, alsumafile)): # now apply transformation cmd = 'cd "%s";ConvertSurface -overwrite -i_fs ' \ '%s/%s -o_%s ./%s -ixmat_1D %s' % \ (refdir, sumadir, sumafile, tp, alsumafile, matrixfn_LPI2RAI) cmds.append(cmd) # as of June 2012 copy the original sphere.reg # (not aligned) as well if sumafile == ('%s.sphere.reg%s' % (pat, ext)): sumaout = '%s/%s' % (refdir, extsumafile + ext) if config['overwrite'] or not os.path.exists(sumaout): s = surf.read('%s/%s' % (sumadir, sumafile)) surf.write(s, sumaout) mapfn = (config['mi_icopat'] % icold) + config['hemimappingsuffix'] srcpathfn = pathjoin(sumadir, mapfn) if os.path.exists(srcpathfn): trgpathfn = pathjoin(refdir, mapfn) if not os.path.exists(trgpathfn) or config['overwrite']: cmds.append('cp %s %s' % (srcpathfn, trgpathfn)) utils.run_cmds(cmds, env) def _make_slice_plot(ulay, olay, fnout, raise_=False): if raise_: from mvpa2.support.afni import lib_plot_slices else: try: from mvpa2.support.afni import lib_plot_slices except: print "No slice plotting supported" return slice_dims = [0, 1, 2] slice_pos = [.35, .45, .55, .65] lib_plot_slices.make_plot(ulay, olay, slice_dims, slice_pos, output_fn=fnout) def run_makespec(config, env): '''Generates the SUMA specifcation files for all hemispheres and ld values''' refdir = config['refdir'] icolds, hemis = _get_hemis_icolds(config) for icold in icolds: for hemi in hemis: # make spec file surfprefix = '%s%sh' % (config['mi_icopat'] % icold, hemi) specfn = afni_suma_spec.canonical_filename(icold, hemi, config['alsuffix']) specpathfn = pathjoin(refdir, specfn) if config['overwrite'] or not os.path.exists(specpathfn): suma_makespec(refdir, surfprefix, config['surfformat'], specpathfn, removepostfix=config['alsuffix']) else: print "Skipping spec for %s" % specpathfn # make simple script to run afni and suma runsumafn = '%s/%sh_ico%d_runsuma.sh' % (refdir, hemi, icold) surfvol = '%(sid)s_SurfVol%(al2expsuffix)s+orig' % config if config['overwrite'] or not os.path.exists(runsumafn): suma_makerunsuma(runsumafn, specfn, surfvol) def run_makespec_bothhemis(config, env): refdir = config['refdir'] overwrite = config['overwrite'] icolds, hemis = _get_hemis_icolds(config) ext = format2extension(config) if hemis != ['l', 'r']: raise ValueError("Cannot run without left and right hemisphere") for icold in icolds: specs = [] for hemi in hemis: # surfprefix = '%s%sh' % (config['mi_icopat'] % icold, hemi) specfn = afni_suma_spec.canonical_filename(icold, hemi, config['alsuffix']) specpathfn = pathjoin(refdir, specfn) s = afni_suma_spec.read(specpathfn) specs.append(afni_suma_spec.read(specpathfn)) add_states = ['inflated', 'full.patch.flat', 'sphere.reg'] add_states_required = [True, False, True] # flat surface is optional for add_state, is_req in zip(add_states, add_states_required): has_state = all([len(spec.find_surface_from_state(add_state)) == 1 for spec in specs]) if not has_state: if is_req: raise ValueError('cannot find state %s' % add_state) else: # skip this state print "Optional state %s not found - skipping" % add_state continue specs = afni_suma_spec.hemi_pairs_add_views(specs, add_state, ext, refdir, overwrite=overwrite) spec_both = afni_suma_spec.combine_left_right(specs) # generate spec files for both hemispheres hemiboth = 'b' specfn = afni_suma_spec.canonical_filename(icold, hemiboth, config['alsuffix']) specpathfn = pathjoin(refdir, specfn) spec_both.write(specpathfn, overwrite=overwrite) # merge left and right into one surface # and generate the spec files as well hemimerged = 'm' specfn = afni_suma_spec.canonical_filename(icold, hemimerged, config['alsuffix']) specpathfn = pathjoin(refdir, specfn) if config['overwrite'] or not os.path.exists(specpathfn): spec_merged, surfs_to_join = afni_suma_spec.merge_left_right( spec_both) spec_merged.write(specpathfn, overwrite=overwrite) full_path = lambda x: pathjoin(refdir, x) for fn_out, fns_in in surfs_to_join.iteritems(): surfs_in = [surf.read(full_path(fn)) for fn in fns_in] if all(['full.patch.flat' in fn for fn in fns_in]): # left hemi of flat; rotate 180 degrees, reposition again surfs_in[0] = surfs_in[0] * [-1, -1, 1] surfs_in = surf.reposition_hemisphere_pairs(surfs_in[0], surfs_in[1], 'm') surf_merged = surf.merge(*surfs_in) if config['overwrite'] or not os.path.exists( full_path(fn_out)): surf.write(full_path(fn_out), surf_merged) print "Merged surfaces written to %s" % fn_out def run_makesurfmasks(config, env): refdir = config['refdir'] overwrite = config['overwrite'] if config['sid'] is None: raise ValueError('Need sid') sumfn = '%s_qa_surf_mask' % config['sid'] # output file fullext = config['outvol_fullext'] volor = config['outvol_ext'] sumfn_path = '%s/%s%s' % (refdir, sumfn, fullext) qafn_path = '%s/%s.png' % (refdir, sumfn) checkfn_paths = (sumfn_path, qafn_path) if all(map(os.path.exists, checkfn_paths)) and not overwrite: print "Already exist: %s" % (", ".join(checkfn_paths)) return icolds, hemis = _get_hemis_icolds(config) volexts = ['%s%s' % (volor, e) for e in '.HEAD', '.BRIK*'] sssuffix = config['sssuffix'] if config['expvol_ss'] else '' expvol_fn = '%s%s%s' % (utils.afni_fileparts(config['expvol'])[1], sssuffix, volor) if hemis != ['l', 'r']: raise ValueError("Cannot run without left and right hemisphere") icold = max(icolds) oneDfn = '__t.1D' oneDtfn = '__tt.1D' # transposed cmds = ['cd %s' % refdir, '1deval -1D: -num %d -expr 1 > %s' % (icold ** 2 * 10 + 1, oneDfn), '1dtranspose %s > %s' % (oneDfn, oneDtfn)] utils.run_cmds(';'.join(cmds), env) tmpfns = [oneDfn, oneDtfn] s2v_cmd = ('3dSurf2Vol -map_func mask2 -data_expr "a*%%d" ' '-spec %%s %%s -sv %s' ' -grid_parent %s. -prefix %%s -sdata %s -overwrite') % ( expvol_fn, expvol_fn, oneDtfn) infix2val = {'-surf_A pial': 1, '-surf_A smoothwm': 2, '-surf_A smoothwm -surf_B pial -f_steps 20': 4} volfns = [] for hemi in hemis: specfn = afni_suma_spec.canonical_filename(icold, hemi, config['alsuffix']) for infix, val in infix2val.iteritems(): fnprefix = '__m%d_%sh' % (val, hemi) cmd = s2v_cmd % (val, specfn, infix, fnprefix) utils.run_cmds('cd %s;%s' % (refdir, cmd)) tmpfns.extend(['%s%s' % (fnprefix, e) for e in volexts]) volfns.append(fnprefix + volor) cmds = ['cd %s' % refdir] catfn = '__cat' cmds.extend(['3dTcat -overwrite -prefix %s %s' % (catfn, ' '.join(volfns)), '3dTstat -overwrite -sum -prefix %s %s%s' % ( sumfn, catfn, volor)]) tmpfns.extend(['%s%s' % (catfn, e) for e in volexts]) cmds.extend('rm %s' % fn for fn in tmpfns) cmds.append('echo "Surface mask in %s"' % sumfn) utils.run_cmds(';'.join(cmds), env) # make plot if overwrite or not os.path.exists(qafn_path): expvol_path = '%s/%s' % (refdir, expvol_fn) _make_slice_plot(expvol_path, sumfn_path, qafn_path) def suma_makerunsuma(fnout, specfn, surfvol): '''Generate a simple script to launch AFNI and SUMA with NIML enabled Scripts can be run with ./lh_ico100_seesuma.sh (for left hemisphere and ld=100)''' shortspecfn = os.path.split(specfn)[1] # remove path lines = ['export SUMA_AllowDsetReplacement=YES', 'killall afni', 'afni -niml &' 'suma -spec %s -sv %s' % (shortspecfn, surfvol)] with open(fnout, 'w') as f: f.write('\n'.join(lines)) f.close() os.chmod(fnout, 0777) print 'Generated run suma file in %s' % fnout def suma_makespec(directory, surfprefix, surf_format, fnout=None, removepostfix=''): '''Generates a SUMA specification file that contains information about the different surfaces''' postfix = format2extension(surf_format) tp = format2type(surf_format) pat = '%s.?*%s' % (surfprefix, postfix) # removepostfix = config['alsuffix'] fns = os.listdir(directory) surfname2filename = dict() for fn in fns: if fnmatch.fnmatch(fn, pat): surfname = fn[len(surfprefix) + 1:(len(fn) - len(postfix))] if surfname.endswith(removepostfix): surfname = surfname[:-len(removepostfix)] surfname2filename[surfname] = fn # only include these surfaces usesurfs = ['smoothwm', 'intermediate', 'pial', 'semiinflated', 'tqinflated', 'inflated', 'full.patch.flat', 'sphere.reg'] isanatomical = dict(zip(usesurfs, [True, True, True] + [False] * 5)) # make the spec file lines = [] lines.append('# Created %s' % str(datetime.datetime.now())) lines.append('Group = all') lines.append('') lines.extend( 'StateDef = %s' % f for f in usesurfs if f in surfname2filename) lines.append('') localdomainparent = surfname2filename.get('smoothwm', None) ndim = lambda x: 2 if 'full.patch' in x else 3 for surfname in usesurfs: if surfname in surfname2filename: ldp = ('SAME' if (not localdomainparent or localdomainparent == surfname2filename[surfname]) else localdomainparent) lines.extend(['NewSurface', 'SurfaceFormat = %s' % surf_format.upper(), 'SurfaceType = %s' % format2spectype(surf_format), 'FreeSurferSurface = %s' % surfname2filename[ surfname], 'LocalDomainParent = %s' % ldp, 'LocalCurvatureParent = %s' % ldp, 'SurfaceState = %s' % surfname, 'EmbedDimension = %d' % ndim(surfname), 'Anatomical = %s' % ( 'Y' if isanatomical[surfname] else 'N'), '']) if localdomainparent is None: localdomainparent = surfname2filename[surfname] if fnout: f = open(fnout, 'w') f.write('\n'.join(lines)) f.close() print 'Generated SUMA spec file in %s' % fnout else: print "No output" def average_fs_asc_surfs(fn1, fn2, fnout): '''averages two surfaces''' surf1 = surf.read(fn1) surf2 = surf.read(fn2) surfavg = surf1 * .5 + surf2 * .5 surf.write(fnout, surfavg) def _get_hemis_icolds(config): '''returns the icolds (as a list of integers) and the hemispheres (as a list of single characters)''' icolds = [int(v) for v in config['ld'].split('+')] # linear divisions for MapIcosehedron hemis = config['hemi'].split('+') # list of hemis (usually ['l','r']) return (icolds, hemis) def run_all(config, env): '''run commands from all steps specified in config''' cmds = [] print config steps = config['steps'].split('+') step2func = {'toafni': run_toafni, 'mapico': run_mapico, 'moresurfs': run_moresurfs, 'skullstrip': run_skullstrip, 'align': run_alignment, 'makespec': run_makespec, 'makespecboth': run_makespec_bothhemis, 'makesurfmasks': run_makesurfmasks} if not all(s in step2func for s in steps): raise Exception("Illegal step in %s" % steps) for step in steps: if step in step2func: print "Running: %s" % step step2func[step](config, env) else: raise ValueError('Step not recognized: %r' % step) return cmds def getparser(): description = ''' Anatomical preprocessing to align FreeSurfer surfaces with AFNI data. %s Copyright 2010-2012 Nikolaas N. Oosterhof ''' % __usage_doc__ epilog = ''' This function is *experimental*; using the --overwrite option may remove and/or overwrite existing files.''' yesno = ["yes", "no"] parser = argparse.ArgumentParser(description=description, epilog=epilog, formatter_class= argparse.RawDescriptionHelpFormatter) parser.add_argument('-v', '--version', action='version', version='prep_afni_surf %s' % _VERSION) parser.add_argument("-s", "--sid", required=False, help="subject id used in @SUMA_Make_Spec_FS ") parser.add_argument("-d", "--surfdir", required=False, help="FreeSurfer surf/ directory") parser.add_argument("-a", "--anatvol", required=False, help="Anatomical that is assumed to be in alignment " "with the EPI data of interest") parser.add_argument("-e", "--epivol", required=False, help="EPI data of interest") parser.add_argument('-x', "--expvol", required=False, help="Experimental volume to which SurfVol is aligned") parser.add_argument('-E', "--isepi", required=False, choices=yesno, help="Is the experimental volume an EPI (yes) " "or anatomical (no)") parser.add_argument('-r', '-o', "--refdir", required=True, help="Output directory in which volumes and " "surfaces are in reference to ANATVOL or EPIVOL") parser.add_argument("-p", "--steps", default='all', help='Processing steps separated by "+"-characters. ' '"all" is the default and equivalent to ' '"toafni+mapico+moresurfs+skullstrip+align+' 'makespec+makespecboth+makesurfmasks"') parser.add_argument("-l", "--ld", default="4+8+16+32+64+128", help="MapIcosahedron linear devisions, e.g. 80, " "or 16+96 (for both 16 or 96). " "The default is 4+8+16+32+64+128") parser.add_argument("--overwrite", action='store_true', default=False, help="Overwrite existing files") parser.add_argument('--hemi', default='l+r', choices=['l', 'r', 'l+r'], help='Hemispheres to process ([l+r])') parser.add_argument('-S', "--expvol_ss", default='yes', choices=yesno, help='Skull strip experimental volume ([yes],no)') parser.add_argument('--aea_opts', default='-cmass cmass+xyz -big_move', help="Options given to align_epi_anat " "([-cmass cmass+xyz -big_move])") parser.add_argument('-I', '--identity', action="store_true", default=False, help="Use identity transformation between SurfVol " "and anat/epivol (no alignment)") parser.add_argument('-A', '--AddEdge', default='yes', choices=yesno, help="Run AddEdge on aligned volumes ([yes])") parser.add_argument('-f', '--surfformat', default='ascii', choices=['gifti', 'ascii'], help="Output format of surfaces: 'ascii' " "(default - for now) or 'gifti'") parser.add_argument('-T', '--template', action="store_true", default=False, help="Indicate that the experimental volume " "(suppplied by '-e', '-a', or '-x') is in " "template space. This will add " "\"-Allineate_opts '-maxrot 10 -maxshf 10 " "-maxscl 1.5'\" to --aea_opts") parser.add_argument('-t', '--notemplate', action="store_true", default=False, help="Indicate that the experimental volume " "(suppplied by '-e', '-a', or '-x') is not " "in template space. ") # expvol_space (template space) MNI, TLRC, MNI_ANAT, None # expvol_ext +tlrc, +orig, .nii, .nii.gz # expvol_fullext +tlrc.HEAD (set based on return parser def getoptions(): parser = getparser() args = None namespace = parser.parse_args(args) return vars(namespace) def _test_me(config): datadir = os.path.abspath('.') + '/' # /Users/nick/Downloads/subj1/' refdir = datadir + '_test_ref' surfdir = datadir + '/subj1/surf' refs = ['-e bold_mean.nii', '-a anat.nii', '-e bold_mean+orig', '-a anat+orig', '-e bold_mean_ss.nii', '-a anat_ss+orig'] for i, ref in enumerate(refs): tp, fn = ref.split(' ') do_ss = not ('_ss' in fn) c = getdefaults() if 'refdir' in config: refdir = os.path.abspath( '%s%s_%d' % (datadir, config['refdir'], i)) c.update(dict(isepi=tp == '-e', refdir=refdir, expvol=datadir + fn, surfdir=surfdir, identity=False, expvol_ss=do_ss, AddEdge=True, steps='all', ld="4+32", aea_opts='-cmass cmass+xyz -big_move', alsuffix='_al', verbose=True)) # c.update(config) c['overwrite'] = False # i == 0 and utils.which('mris_convert') env = getenv() c = augmentconfig(c) print c run_all(c, env) def run_prep_afni_surf(config_dict): config = getdefaults() config.update(config_dict) # overwrite default input arguments checkconfig(config) augmentconfig(config) environment = getenv() run_all(config, environment) # this is a little hack so that python documentation # is added from the parser defined above def _set_run_surf_anat_preproc_doc(): import textwrap p = getparser() aa = p._actions ds = [] for a in aa: if a.nargs != 0: ch = 'str' if a.choices: ch = ' or '.join('%r' % c for c in a.choices) if a.default: ch += ' [%r]' % a.default bd = map(lambda x: ' ' + x, textwrap.wrap(a.help)) ds.append('%s: %s\n%s' % (a.dest, ch, '\n'.join(bd))) # text to include in between the modules' docstring and the # generated parameter documentation intermediate = ''' Parameters ---------- ''' run_prep_afni_surf.__doc__ = __doc__ + intermediate + '\n'.join(ds) # apply setting the documentation _set_run_surf_anat_preproc_doc() pymvpa2-2.6.4/mvpa2/support/afni/suma_setup_instacorr.py000066400000000000000000000165411323370031300234240ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Wrapper for 3dSetupGrpInCorr for surface-based dataets in SUMA (in NIML format) also makes input dataset 'full' (i.e. so that all nodes have a value) Requires by default only the input datasets from individual participants, as long as they are named with something like "ico32_lh" in the name. Otherwise it's required to provide ico_ld as well to make the datasets 'full' This code is *experimental* NNO May 2012 ''' import numpy as np import os from os.path import join as pathjoin import re import argparse from mvpa2.support.nibabel import afni_niml_dset from mvpa2.support.afni import afni_utils as utils def afni_niml_zscore_data(dset, axis=1): data = dset['data'] data[np.isnan(data)] = 0 sh = data.shape # mean and standard deviation m = np.mean(data, axis) sd = np.std(data, axis) mvec = np.reshape(m, (-1, 1)) sdvec = np.reshape(sd, (-1, 1)) dataz = (data - mvec) / sdvec dataz[np.isnan(dataz)] = 0 dset['data'] = dataz return dset def _smart_filename_decode(fn, w): if type(fn) is list: return _list_same_element([_smart_filename_decode(f, w) for f in fn]) [_, fn] = os.path.split(fn) # patterns that might be used as postfix. Try one by one, return if one matches if w == 'postfix': pats = [r'.*(_ico[\d]+_[lr]h_\d+vx).*', r'.*(_ico[\d]+_[lr]h_\d+mm).*', r'.*(_ico[\d]+_[lr]h_).*'] postproc = lambda x:x elif w == 'pad_to_ico_ld': pats = ['_ico(\d+)_'] postproc = int else: raise ValueError("illegal tag %r" % w) for pat in pats: r = re.findall(pat, fn) if len(r) == 1: return postproc(r[0].strip("_")) return None def _list_same_element(xs): # if a list only contains one element, return that element; None otherwise if len(xs) == 0: raise ValueError("No elements?") return xs[0] if [xs[0]] * len(xs) == xs else None def afni_niml_zscore_makefull(fnin, fnout, pad_to_ico_ld=None, pad_to_node=None): dset = afni_niml_dset.read(fnin) dset_z = afni_niml_zscore_data(dset) if pad_to_ico_ld or pad_to_node: dset_z_full = afni_niml_dset.sparse2full(dset_z, pad_to_ico_ld=pad_to_ico_ld, pad_to_node=pad_to_node) else: dset_z_full = dset_z afni_niml_dset.write(fnout, dset_z_full) return fnout def afni_niml_zscore_makefull_wizard(cfg): # ensure we have access to the AFNI binary instacorrbin = '3dSetupGroupInCorr' if utils.which(instacorrbin) is None: raise ValueError("could not locate binary %r" % instacorrbin) # get configuration values fns = cfg['filenames'] prefix = cfg['prefix'] group_prefix = cfg['group_prefix'] group_postfix = cfg.get('grouppostfix', None) if group_postfix is None: group_postfix = _smart_filename_decode(fns, 'postfix') if group_postfix is not None: print "Using automatic postfix %s" % group_postfix overwrite = cfg['overwrite'] # figure out to where to pad to node to pad_to_node = cfg.get('pad_to_node', None) if pad_to_node is None: pad_to_ico_ld = cfg.get('pad_to_ico_ld', None) if pad_to_ico_ld is None: pad_to_ico_ld = _smart_filename_decode(fns, 'pad_to_ico_ld') if pad_to_ico_ld is not None: pad_to_node = pad_to_ico_ld * pad_to_ico_ld * 10 + 2 print "Using automatic pad_to_ico_ld=%r, pad_to_node=%r" % (pad_to_ico_ld, pad_to_node) if pad_to_node: pad_to_node = int(pad_to_node) # process each of the input files fnouts = [] for fn in fns: [pth, nm] = os.path.split(fn) fnout = pathjoin(pth, prefix + nm) if os.path.exists(fnout) and not overwrite: print("Output file %s already exists, skipping (use '--overwrite' to override)" % fnout) else: afni_niml_zscore_makefull(fn, fnout, pad_to_node=pad_to_node) print "Converted %s -> %s (in %s)" % (nm, prefix + nm, pth) fnouts.append(fnout) [pth, nm] = os.path.split(group_prefix) ext = '.niml.dset' if ext.endswith(ext): ext = ext[:(len(nm) - len(ext))] fullprefix = nm if group_postfix is None else '%s%s' % (nm, group_postfix) fullname = pathjoin(pth, fullprefix) cmds = ['cd "%s"; ' % pth] groupfnsout = ['%s.grpincorr.%s' % (fullname, ext) for ext in ['niml', 'data']] if any(map(os.path.exists, groupfnsout)): if overwrite: cmds.extend('rm %s;' % fn for fn in groupfnsout) else: print("Some or all of output files (%s) already exists (use '--overwrite' to override)" % (" ".join(groupfnsout))) cmds.append('%s -prefix ./%s' % (instacorrbin, fullprefix)) cmds.extend(' %s' % fn for fn in fnouts) cmd = "".join(cmds) utils.run_cmds(cmd) msg = ("\n\nTo view the results in SUMA:\n" "- open a terminal window\n" "- run 'cd %s; 3dGroupInCorr -setA %s.grpincorr.niml -suma'\n" "- open a second terminal window\n" "- cd to a directory with surfaces, run 'suma -spec SPECFILE.spec -niml '\n" "- in SUMA, select a node while holding down ctrl+shift" % (pth, fullprefix)) print msg def _full_path(fn): if type(fn) is list: return map(_full_path, fn) return os.path.abspath(fn) def _fns(): d = '/Users/nick/organized/_tmp/andyak12/groupdata/' s = "ab00_ico32_lh_100vx.niml.dset ad01_ico32_lh_100vx.niml.dset as00_ico32_lh_100vx.niml.dset er00_ico32_lh_100vx.niml.dset hb00_ico32_lh_100vx.niml.dset hm00_ico32_lh_100vx.niml.dset ls00_ico32_lh_100vx.niml.dset mg00_ico32_lh_100vx.niml.dset ok00_ico32_lh_100vx.niml.dset pc01_ico32_lh_100vx.niml.dset pk00_ico32_lh_100vx.niml.dset vm00_ico32_lh_100vx.niml.dset" return [d + i for i in s.split(" ")] def _get_options(): yesno = ["yes", "no"] parser = argparse.ArgumentParser('Pre-processing for group-based connectivity/similarity analysis using AFNI and SUMA\nNikolaas N. Oosterhof Jan 2012') parser.add_argument("-i", "--input", required=False, nargs='*') parser.add_argument("more_input", nargs='*') parser.add_argument('-I', "--pad_to_ico_ld", required=False, default=None) parser.add_argument('-N', "--pad_to_node", required=False, default=None) parser.add_argument('-p', '--prefix', default='z_full_') parser.add_argument('-g', '--group_prefix', default='ALL_') parser.add_argument('-G', '--group_postfix', default=None) parser.add_argument("-o", "--overwrite", required=False, action='store_true', help="Overwrite existing files") namespace = parser.parse_args(None) return vars(namespace) def _augment_config(cfg): inputfns = cfg.get('input', []) or [] inputfns.extend(cfg.get('more_input', [])) if len(inputfns) == 0: raise ValueError('no input files?') cfg['filenames'] = _full_path(inputfns) cfg['group_prefix'] = _full_path(cfg['group_prefix']) if __name__ == '__main__': cfg = _get_options() _augment_config(cfg) afni_niml_zscore_makefull_wizard(cfg) pymvpa2-2.6.4/mvpa2/support/bayes/000077500000000000000000000000001323370031300167605ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/bayes/__init__.py000066400000000000000000000006611323370031300210740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Bayes (BayesConfusionHypothesis) support code """ pymvpa2-2.6.4/mvpa2/support/bayes/multivariate_polya.py000066400000000000000000000046461323370031300232560ustar00rootroot00000000000000# emacs: coding: utf-8; -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """PDF of the multivariate Pólya distribution. See: http://en.wikipedia.org/wiki/Multivariate_P%C3%B3lya_distribution """ import numpy as np from scipy.misc import factorial from scipy.special import gamma, gammaln def multivariate_polya(x, alpha): """Multivariate Pólya PDF. Basic implementation. """ x = np.atleast_1d(x).flatten() alpha = np.atleast_1d(alpha).flatten() assert(x.size==alpha.size) N = x.sum() A = alpha.sum() likelihood = factorial(N) * gamma(A) / gamma(N + A) # likelihood = gamma(A) / gamma(N + A) for i, xi in enumerate(x): likelihood /= factorial(xi) likelihood *= gamma(xi + alpha[i]) / gamma(alpha[i]) return likelihood def log_multivariate_polya_vectorized(X, alpha): """Multivariate Pólya log PDF. Vectorized and stable implementation. """ X = np.atleast_1d(X) alpha = np.atleast_1d(alpha) assert(X.size==alpha.size) N = X.sum() A = alpha.sum() log_likelihood = gammaln(N+1) - gammaln(X+1).sum() # log(\frac{N!}{\prod_i (X_i)!}) log_likelihood += gammaln(A) - gammaln(alpha).sum() # log(\frac{\Gamma(\sum_i alpha_i)}{\prod_i(\Gamma(\alpha_i))}) log_likelihood += gammaln(X + alpha).sum() - gammaln(N + A) # log(\frac{\prod_i(\Gamma(X_i +\alpha_i))}{\Gamma(\sum_i X_i+\alpha_i)}) return log_likelihood if __name__ == '__main__': import numpy as np np.random.seed(0) # x = np.array([1,2,2,1]) # x = np.array([6,0,0,0]) # alpha = np.array([1,1,1,1]) x = np.array([100,0,0]) # x = np.array([0,50,50]) alpha = np.array([1,10,10]) print "x:", x print "alpha:", alpha print "Likelihood:" print "log of the basic formula:", np.log(multivariate_polya(x, alpha)) print "log of the basic vectorized formula:", np.log(multivariate_polya_vectorized(x, alpha)) print "Log-scale stable formula:", log_multivariate_polya_vectorized(x, alpha) print "Monte Carlo estimations in log-scale:" for i in range(5): print "\t", i, log_multivariate_polya_mc(x, alpha, iterations=1e5) pymvpa2-2.6.4/mvpa2/support/bayes/partial_independence.py000066400000000000000000000060141323370031300234700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Partial independence model: one margin fixed (rows margin). Analytical solution + Monte-Carlo checks. """ import numpy as np from mvpa2.support.bayes.multivariate_polya \ import log_multivariate_polya_vectorized as log_multivariate_polya from mvpa2.base import externals externals.exists('scipy', raise_=True) from scipy.special import gammaln def compute_logp_independent_block(X, alpha=None): """Compute the analytical log likelihood of a matrix under the assumption of independence. """ if alpha is None: alpha = np.ones(X.shape[1]) logp_ib = gammaln(alpha.sum()) - (gammaln(alpha)).sum() logp_ib += gammaln(X.sum(0) + alpha).sum() - gammaln(X.sum() + alpha.sum()) logp_ib += gammaln(X.sum(1) + 1).sum() - gammaln(X + 1).sum() return logp_ib def compute_logp_H(X, psi, alpha=None): """Compute the analytical log likelihood of the confusion matrix X with hyper-prior alpha (in a multivariate-Dirichlet sense) according to a partitioning scheme psi. """ if alpha is None: alpha = np.ones(X.shape) logp_H = 0.0 for group in psi: if len(group) == 1: logp_H += log_multivariate_polya(X[group[0],:], alpha[group[0],:]) else: nogroup = filter(lambda a: a not in group, range(X.shape[1])) logp_H += np.sum([log_multivariate_polya([X[i,group].sum()] + X[i,nogroup].tolist(), [alpha[i,group].sum()] + alpha[i,nogroup].tolist()) for i in group]) logp_H += compute_logp_independent_block(X[np.ix_(group,group)], alpha[np.ix_(group,group)].sum(0)) # should we use sum(0) or mean(0)? or else? return logp_H if __name__ == '__main__': np.random.seed(0) X = np.array([[10,10, 0], [10,10, 0], [ 0, 0,20]]) # X = np.array([[13, 3, 4], # [ 3,14, 3], # [ 4, 3,13]]) # X = np.array([[10, 10, 10, 0, 0], # [10, 10, 10, 0, 0], # [10, 10, 10, 0, 0], # [ 0, 0, 0, 30, 0], # [ 0, 0, 0, 0, 30]], dtype=np.float32) print "X:" print X psi = [[0,1],[2]] # psi = [[0],[1],[2]] # psi = [[0],[1,2]] # psi = [[0,1,2]] # psi = [[0],[1],[2],[3],[4]] # psi = [[0,1],[2],[3],[4]] # psi = [[0,1,2],[3],[4]] # psi = [[0,1,2,3],[4]] # psi = [[0,1,2],[3,4]] # psi = [[0,1,2,3,4]] print "psi:", psi alpha = np.ones(X.shape) print "alpha:" print alpha logp_H = compute_logp_H(X, psi, alpha) print "Analytical estimate:", logp_H pymvpa2-2.6.4/mvpa2/support/bayes/partitioner.py000066400000000000000000000037201323370031300216740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Generate all partitions of a set. Copyright 2010 Anton Vredegoor License: MIT See http://code.activestate.com/recipes/577211-generate-the-partitions-of-a-set-by-index/ """ from collections import defaultdict class Partition: def __init__(self, S): self.data = list(S) self.m = len(S) self.table = self.rgf_table() def __getitem__(self, i): #generates set partitions by index if i > len(self) - 1: raise IndexError L = self.unrank_rgf(i) result = self.as_set_partition(L) return result def __len__(self): return self.table[self.m,0] def as_set_partition(self, L): # Transform a restricted growth function into a partition n = max(L[1:]+[1]) m = self.m data = self.data P = [[] for _ in range(n)] for i in range(m): P[L[i+1]-1].append(data[i]) return P def rgf_table(self): # Compute the table values m = self.m D = defaultdict(lambda:1) for i in range(1,m+1): for j in range(0,m-i+1): D[i,j] = j * D[i-1,j] + D[i-1,j+1] return D def unrank_rgf(self, r): # Unrank a restricted growth function m = self.m L = [1 for _ in range(m+1)] j = 1 D = self.table for i in range(2,m+1): v = D[m-i,j] cr = j*v if cr <= r: L[i] = j + 1 r -= cr j += 1 else: L[i] = r // v + 1 r %= v return L pymvpa2-2.6.4/mvpa2/support/copy.py000066400000000000000000000015441323370031300172050ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Support for python's copy module. """ __docformat__ = 'restructuredtext' import sys # We have to use deepcopy from python 2.5, since otherwise it fails to # copy sensitivity analyzers with assigned combiners which are just # functions not functors if sys.version_info[:2] >= (2, 6): # enforce absolute import _copy = __import__('copy', globals(), locals(), [], 0) copy = _copy.copy deepcopy = _copy.deepcopy else: from mvpa2.support._copy import copy, deepcopy pymvpa2-2.6.4/mvpa2/support/due.py000066400000000000000000000031671323370031300170130ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; tab-width: 4; indent-tabs-mode: nil -*- # ex: set sts=4 ts=4 sw=4 noet: # ## ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """ Stub file for a guaranteed safe import of duecredit constructs: if duecredit is not available. To use it, just place it into your project codebase to be imported, e.g. copy as cp stub.py /path/tomodule/module/due.py Note that it might be better to avoid naming it duecredit.py to avoid shadowing installed duecredit. Then use in your code as from .due import due, Doi, BibTeX Examples -------- TODO License: Originally a part of the duecredit, which is distributed under BSD-2 license. """ __version__ = '0.0.2' class InactiveDueCreditCollector(object): """Just a stub at the Collector which would not do anything""" def _donothing(self, *args, **kwargs): """Perform no good and no bad""" pass def dcite(self, *args, **kwargs): """If I could cite I would""" def nondecorating_decorator(func): return func return nondecorating_decorator cite = load = add = _donothing def __repr__(self): return self.__class__.__name__ + '()' def _donothing_func(*args, **kwargs): """Perform no good and no bad""" pass try: from duecredit import * except Exception as e: if type(e).__name__ != 'ImportError': import logging logging.getLogger("duecredit").error( "Failed to import duecredit due to %s" % str(e)) # Initiate due stub due = InactiveDueCreditCollector() BibTeX = Doi = Donate = _donothing_func pymvpa2-2.6.4/mvpa2/support/griddata.py000066400000000000000000000031001323370031300200000ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import griddata with preference to the version from matplotlib """ __docformat__ = 'restructuredtext' import sys from mvpa2.base import externals if externals.exists('griddata', raise_=True): if __debug__: from mvpa2.base import debug try: if sys.version_info[:2] >= (2, 5): # enforce absolute import griddata = __import__('griddata', globals(), locals(), [], 0).griddata else: # little trick to be able to import 'griddata' package (which # has same name) oldname = __name__ # crazy name with close to zero possibility to cause whatever __name__ = 'iaugf9zrkjsbdv91' try: from griddata import griddata # restore old settings __name__ = oldname except ImportError: # restore old settings __name__ = oldname raise if __debug__: debug('EXT', 'Using python-griddata') except ImportError: from matplotlib.mlab import griddata if __debug__: debug('EXT', 'Using matplotlib.mlab.griddata') pymvpa2-2.6.4/mvpa2/support/ipython/000077500000000000000000000000001323370031300173475ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/ipython/__init__.py000066400000000000000000000041341323370031300214620ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Various helpers for making PyMVPA use within IPython more enjoyable """ __docformat__ = 'restructuredtext' from mvpa2.base import externals, cfg if externals.exists('running ipython env'): ipython_version = externals.versions['ipython'] if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.support.ipython start') __all__ = ['ipy_activate_pymvpa_goodies'] def _goodies_pre011(): """Goodies activator for ipython < 0.11 """ from IPython.ipapi import get as ipget try: if not cfg.getboolean('ipython', 'complete protected', False): ipget().IP.Completer.omit__names = 2 finally: pass if cfg.getboolean('ipython', 'complete collections attributes', True): from mvpa2.support.ipython.ipy_pymvpa_completer \ import activate as ipy_completer_activate ipy_completer_activate() def _goodies_011(): """Goodies activator for ipython >= 0.11 """ from IPython.utils.generics import complete_object from mvpa2.base.collections import Collection @complete_object.when_type(Collection) def complete_collection(obj, prev_completions): # Place all the keys into completion for the collection, be it # an .a, .sa, .fa, .ca, or .params return obj.keys() + prev_completions def ipy_activate_pymvpa_goodies(): """Activate PyMVPA additions to IPython Currently known goodies (controlled via PyMVPA configuration) are: * completions of collections' attributes * disabling by default protected attributes of instances in completions """ if ipython_version >= '0.11~': _goodies_011() else: _goodies_pre011() if __debug__: debug('INIT', 'mvpa2.support.ipython end') pymvpa2-2.6.4/mvpa2/support/ipython/ipy_pymvpa_completer.py000066400000000000000000000062431323370031300241750ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Attributes-aware tab completion. This module provides a custom tab-completer that intelligently reveals the names of attributes in the :class:`~mvpa2.base.collections.Collection`\s of PyMVPA. Activation ========== To use this, put in your ~/.ipython/ipy_user_conf.py file: import ipy_pymvpa_completer as _ic _ic.activate() Usage ===== The system works as follows. If t is an `Collection` object, then In [7]: t. shows not only `dict` interface but also `Attribute`\s present in the collection. Notes ----- It is a rip-off from IPython's ipy_traits_completer.py """ ############################################################################# # External imports import mvpa2.base.collections as col from mvpa2.base import externals if externals.exists('running ipython env', raise_=True): # IPython imports from IPython.ipapi import TryNext, get as ipget from IPython.genutils import dir2 ############################################################################# # Code begins def pymvpa_completer(self, event): """A custom IPython tab-completer that is collections-aware. """ symbol_parts = event.symbol.split('.') base = '.'.join(symbol_parts[:-1]) oinfo = self._ofind(base) if not oinfo['found']: raise TryNext obj = oinfo['obj'] # OK, we got the object. See if it's traits, else punt if not isinstance(obj, col.Collection): #print "exiting for %s" % obj raise TryNext # it's a Collection object, lets add its keys attrs = dir2(obj) #print "adding ", obj.keys() attrs += obj.keys() # Let's also respect the user's readline_omit__names setting: omit__names = ipget().IP.Completer.omit__names if omit__names == 1: attrs = [a for a in attrs if not a.startswith('__')] elif omit__names == 2: attrs = [a for a in attrs if not a.startswith('_')] # The base of the completion, so we can form the final results list bdot = base+'.' tcomp = [bdot+a for a in attrs] return tcomp def activate(): """Activate the PyMVPA Collections completer. """ ipget().set_hook('complete_command', pymvpa_completer, re_key = '.*') ############################################################################# if __name__ == '__main__': # Testing/debugging, can be done only under interactive IPython session from mvpa2.datasets.base import dataset_wizard t = dataset_wizard([1, 2, 3], targets=1, chunks=2) ip = ipget().IP assert(not 'targets' in ip.complete('t.sa.')) assert(not 'chunks' in ip.complete('t.sa.')) from ipy_pymvpa_completer import activate activate() # A few simplistic tests assert ip.complete('t.ed') == [] assert('targets' in ip.complete('t.sa.')) assert('chunks' in ip.complete('t.sa.')) print 'Tests OK' pymvpa2-2.6.4/mvpa2/support/lapack_svd.py000066400000000000000000000056131323370031300203430ustar00rootroot00000000000000"""ctypes wrapper for LAPACK svd implementation - DGESVD""" import numpy from mvpa2.base import externals from mvpa2.base.types import as_char if externals.exists('ctypes', raise_=True): from ctypes import cdll, c_char, c_int, c_double, c_void_p, byref from numpy.linalg import LinAlgError if externals.exists('liblapack.so'): lapacklib = cdll.LoadLibrary('liblapack.so') __all__ = ['svd'] def svd(a, full_matrices=True, algo='svd', **kwargs): """ ctypes wrapper for LAPACK SVD (DGESVD) Factorizes the matrix a into two unitary matrices U and Vh and an 1d-array s of singular values (real, non-negative) such that a == U S Vh if S is an suitably shaped matrix of zeros whose main diagonal is s. Parameters ---------- a : array, shape (M, N) Matrix to decompose full_matrices : boolean [Default is True] If true, U, Vh are shaped (M,M), (N,N) If false, the shapes are (M,K), (K,N) where K = min(M,N) algo : 'svd' or 'sdd' Returns ------- U: array, shape (M,M) or (M,K) depending on full_matrices s: array, shape (K,) The singular values, sorted so that s[i] >= s[i+1]. K = min(M, N) Vh: array, shape (N,N) or (K,N) depending on full_matrices Raises LinAlgError if SVD computation does not converge """ if full_matrices: flag='A' else: flag='S' jobu=c_char(as_char(flag)) jobv=c_char(as_char(flag)) info=c_int(0) x, y = a.shape m=c_int(x) n=c_int(y) lda=c_int(x) s=(c_double*min(x,y))() ldu=c_int(x) if full_matrices: ldvt = c_int(y) u = numpy.zeros((x,x),dtype=float) vt = numpy.zeros((y,y),dtype=float) else: ldvt = c_int(min(x,y)) u = numpy.zeros((x,min(x,y)),dtype=float) vt = numpy.zeros((min(x,y),y),dtype=float) if algo == 'svd': lwork=c_int(7*max(x,y)) work = (c_double*7*min(x,y))() lapacklib.dgesvd_(byref(jobu), byref(jobv), byref(m), byref(n), a.ctypes.data_as(c_void_p), byref(lda), s, u.ctypes.data_as(c_void_p), byref(ldu), vt.ctypes.data_as(c_void_p), byref(ldvt), work, byref(lwork), byref(info)) else: lwork=c_int(7*min(x,y)+4*min(x,y)*min(x,y)) work = (c_double*(7*min(x,y)+4*min(x,y)*min(x,y)))() iwork = (c_int*8*min(x,y))() lapacklib.dgesdd_(byref(jobu), byref(m), byref(n), a.ctypes.data_as(c_void_p), byref(lda), s, u.ctypes.data_as(c_void_p), byref(ldu), vt.ctypes.data_as(c_void_p), byref(ldvt), work, byref(lwork), iwork, byref(info)) if info.value >= 1: print "DBSQR did not converge for %i superdiagonals"%(info.value) # raise LinAlgError #if info.value <= -1: # print "Interesting!!! \nQuick, go find swaroop" if info.value == 0: return vt, numpy.frombuffer(s), u pymvpa2-2.6.4/mvpa2/support/nibabel/000077500000000000000000000000001323370031300172515ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/nibabel/__init__.py000066400000000000000000000010461323370031300213630ustar00rootroot00000000000000 # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """AFNI/SUMA file format I/O functions""" __docformat__ = 'restructuredtext' # TODO: unit tests for these scripts # TODO: in the future, maybe integrate with nibabel pymvpa2-2.6.4/mvpa2/support/nibabel/afni_niml.py000066400000000000000000000560621323370031300215700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' General AFNI NIML I/O support Created on Feb 16, 2012 @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) This function reads a NIML file and returns a dict that contains all NIML information in a tree-like structure (dicts for which some values are dicts themselves). Branches are stored in a 'nodes' field. For specific types of data, consider afni_niml_dset or afni_niml_annot files which provide easier access to the data. WiP TODO: some nice refactoring of the code. Currently it's a bit of a mess. ''' import re, numpy as np, random, os, time, sys, base64, copy, math from io import BytesIO from mvpa2.support.nibabel import afni_niml_types as types _RE_FLAGS = re.DOTALL # regular expression matching spans across new lines from mvpa2.base import warning from mvpa2.base import debug from mvpa2.misc.io import safe_write if __debug__: if not "NIML" in debug.registered: debug.register("NIML", "NeuroImaging Markup Language") _TEXT_ROWSEP = "\n" _TEXT_COLSEP = " " # define NIML specific escape characters _ESCAPE = {'<': '<', '>': '>', '"': '"', '&': '&', ''': "'"} def support_lists(f): '''Decorater to allow a function to support list input (and output) Used as decorator with a function f, it will apply f element-wise to an argument xs if xs is a list or tuple Otherwise it just applies f to xs. XXX should this be a more universal function for PyMVPA ''' def apply_f(x): if isinstance(x, (list, tuple)): # support nested lists/tuples return map(apply_f, x) else: return f(x) return apply_f @support_lists def decode_escape(s): '''Undoes NIML-specific escape characters''' for k, v in _ESCAPE.iteritems(): s = s.replace(k, v) return s @support_lists def encode_escape(s): '''Applies NIML-specific escape characters''' for k, v in _ESCAPE.iteritems(): s = s.replace(v, k) return s def _parse_keyvalues(s): '''parse K0=V0 K1=V1 ... and return a dict(K0=V0,K1=V1,...)''' e = b'\s*(?P\w+)\s*=\s*"(?P[^"]+)"' m = re.findall(e, s, _RE_FLAGS) return dict([(k.decode(), v.decode()) for k, v in m]) def _mixedtypes_datastring2rawniml(s, niml): '''Converts data with mixed types to raw NIML''' tps = niml['vec_typ'] ncols = len(tps) nrows = niml['vec_len'] s = s.decode() # convert bytearray to string lines = s.strip().split(_TEXT_ROWSEP) if len(lines) != nrows: raise ValueError("Expected %d rows, but found %d" % (nrows, len(lines))) elems = map(lambda x: x.strip().split(_TEXT_COLSEP), lines) fs = map(types.code2python_convertor, tps) data = [] for col in xrange(ncols): f = fs[col] if types.sametype(tps[col], 'String'): d = map(f, [elems[r][col] for r in xrange(nrows)]) else: tp = types.code2numpy_type(tps[col]) niform = niml.get('ni_form', None) if niform is not None: raise ValueError('Not supported: have ni_form with mixed types') d = np.zeros((nrows,), dtype=tp) # allocate one-dimensional array for r in xrange(nrows): d[r] = f(elems[r][col]) data.append(d) return data def _datastring2rawniml(s, niml): '''Converts data with uniform type to raw NIML''' debug('NIML', 'Raw string to NIML: %d characters', len(s)) tps = niml['vec_typ'] onetype = types.findonetype(tps) if onetype is None or ([onetype] == types.str2codes('string') and len(tps) > 1): return _mixedtypes_datastring2rawniml(s, niml) if [onetype] == types.str2codes('string'): # single string return decode_escape(s.decode()) # do not string2rawniml # numeric, either int or float ncols = niml['vec_num'] nrows = niml['vec_len'] tp = types.code2numpy_type(onetype) niform = niml.get('ni_form', None) if not niform or niform == 'text': data = np.zeros((nrows, ncols), dtype=tp) # allocate space for data convertor = types.code2python_convertor(onetype) # string to type convertor vals = s.split(None) # split by whitespace seperator if len(vals) != ncols * nrows: raise ValueError("unexpected number of elements") for i, val in enumerate(vals): data[i // ncols, i % ncols] = convertor(val) else: dtype = np.dtype(tp) dtype = types.byteorder_from_niform(niform, dtype) if 'base64' in niform: debug('NIML', 'base64, %d chars: %s', (len(s), _partial_string(s, 0))) s = base64.b64decode(s) elif not 'binary' in niform: raise ValueError('Illegal niform %s' % niform) data_1d = np.fromstring(s, dtype=tp) debug('NIML', 'data vector has %d elements, reshape to %d x %d = %d', (np.size(data_1d), nrows, ncols, nrows * ncols)) data = np.reshape(data_1d, (nrows, ncols)) return data def getnewidcode(): '''Provides a new (random) id code for a NIML dataset''' return ''.join(map(chr, [random.randint(65, 65 + 25) for _ in xrange(24)])) def setnewidcode(s): '''Sets a new (random) id code in a NIML dataset''' tp = type(s) if tp is list: for v in s: setnewidcode(v) elif tp is dict: key = 'self_idcode' for k, v in s.iteritems(): if k == key: s[key] = getnewidcode() else: setnewidcode(v) def find_attribute_node(niml_dict, key, value, just_one=True): '''Finds a NIML node that matches a particular key and value Parameters ---------- niml_dict: dict NIML dictionary in which the node is to be found key: str Key for a node that is to be found value: str Value associated with key that is to be found just_one: boolean (default: True) Indicates whether exactly one matching node is to be found. Returns ------- nd: dict or list. NIML dictionary matching key and value. If just_one is True then, if a single node is found, it returns a dict containing that node; otherwise an exception is raised. If just_one is False then the output is a list with matching nodes; this list is empty if no matching nodes were found. ''' tp = type(niml_dict) if tp is list: r = sum([find_attribute_node(d, key, value, False) for d in niml_dict], []) elif tp is dict: r = [niml_dict] if niml_dict.get(key, None) == value else [] r.extend(find_attribute_node(niml_dict[k], key, value, False) for k, v in niml_dict.iteritems() if type(v) in (list, dict)) else: return [] r = [ri for ri in r if ri] if just_one: while type(r) is list: if len(r) != 1: raise ValueError('Found %d elements matching %s=%s, ' ' but expected 1' % (len(r), key, value)) r = r[0] return r def rawniml2string(p, form='text'): '''Converts a raw NIML element to string representation Parameters ---------- niml: dict Raw NIML element form: 'text', 'binary', 'base64' Output form of niml Returns ------- s: bytearray String representation of niml in output form 'form'. ''' if type(p) is list: nb = '\n'.encode() return nb.join(rawniml2string(v, form) for v in p) if not form in ['text', 'binary', 'base64']: raise ValueError("Illegal form %s" % form) q = p.copy() # make a shallow copy has_body = True if 'nodes' in q: s_body = rawniml2string(q.pop('nodes'), form) # recursion elif 'data' in q: data = q.pop('data') data = types.nimldataassupporteddtype(data) # ensure the data format is supported by NIML s_body = _data2string(data, form) if form == 'text': q.pop('ni_form', None) # defaults to text, remove if already there else: byteorder = types.data2ni_form(data, form) if byteorder: q['ni_form'] = byteorder # remove some unncessary fields for f in ['vec_typ', 'vec_len', 'vec_num']: q.pop(f, None) else: has_body = False s_name = q.pop('name', None).encode() s_header = _header2string(q) if has_body: delim = ['<', '\n', ' >', ''] values = [s_name, s_header, s_body, s_name] else: delim = ['<', '\n', '/>'] values = [s_name, s_header] delim_enc = map(lambda x: x.encode(), delim) n_delim = len(delim_enc) assert (n_delim == len(values) + 1) # zip with unequal length elems = [] for i in xrange(n_delim): elems.append(delim_enc[i]) if i + 1 < n_delim: # one element less than the number of delimeters elems.append(values[i]) return b''.join(elems) def _data2string(data, form): '''Converts a data element to binary, text or base64 representation''' if isinstance(data, basestring): return ('"%s"' % encode_escape(data)).encode() elif type(data) is np.ndarray: if form == 'text' or types.numpy_data_isstring(data): f = types.numpy_data2printer(data) nrows, ncols = data.shape return _TEXT_ROWSEP.join([_TEXT_COLSEP.join([f(data[row, col]) for col in xrange(ncols)]) for row in xrange(nrows)]).encode() elif form == 'binary': data_reshaped = data.reshape((data.shape[1], data.shape[0])) r = data_reshaped.tostring() debug('NIML', 'Binary encoding (len %d -> %d): [%s]' % (data_reshaped.size, len(r), _partial_string(r, 0))) return r elif form == 'base64': data_reshaped = data.reshape((data.shape[1], data.shape[0])) r = base64.b64encode(data_reshaped.tostring()) debug('NIML', 'Encoding ok: [%s]', _partial_string(r, 0)) return r else: raise ValueError("illegal format %s" % format) elif type(data) is list: # mixed types, each column in its own container # always use text output format, even if requested form is binary of base64 ncols = len(data) if ncols == 0: return "".encode() else: nrows = len(data[0]) # separate formatter functions for each column # if list of strings then take first element of the list to get a string formattr # else use the entire np array to get a numeric formatter fs = [types.numpy_data2printer(d[0] if type(d) is list else d) for d in data] return _TEXT_ROWSEP.join([_TEXT_COLSEP.join([fs[col](data[col][row]) for col in xrange(ncols)]) for row in xrange(nrows)]).encode() else: raise TypeError("Unknown type %r" % type(data)) def _header2string(p, keyfirst=None, keylast=None): '''Converts a header element to a string''' if keyfirst is None: keyfirst = ['dset_type', 'self_idcode', 'filename', 'data_type'] if keylast is None: keylast = ['ni_form'] otherkeys = list(set(p.keys()) - (set(keyfirst) | set(keylast))) added = set() keyorder = [keyfirst, otherkeys, keylast] kvs = [] for keys in keyorder: for k in keys: if k in p and not k in added: kvs.append((k, p[k])) added.add(k) rs = map(lambda x: ' %s="%s"' % x, kvs) return ("\n".join(rs)).encode() def read(fn, itemifsingletonlist=True, postfunction=None): '''Reads a NIML dataset Parameters ---------- fn: str Filename of NIML dataset itemifsingletonlist: boolean If True and the NIML dataset contains of a single NIML element, then that element is returned. Otherwise a list of NIML element is returned. postfunction: None or callable If not None then postfunction is applied to the result from reading the NIML dataset. Returns ------- niml: list or dict (list of) NIML element(s) ''' import io with io.FileIO(fn) as f: s = f.read() r = string2rawniml(s) if postfunction is not None: r = postfunction(r) if itemifsingletonlist and type(r) is list and len(r) == 1: return r[0] else: return r def _partial_string(s, i, maxlen=100): '''Prints a string partially''' # length of the string to print n = len(s) - i if n <= 0 or maxlen == 0: return '' # nothing to print if maxlen < 0 or maxlen > n: maxlen = n # print the whole string elif maxlen > n: maxlen = n # half the size of a segment startsize = maxlen // 2 stopsize = startsize + maxlen % 2 infix = ' ... ' if n > maxlen else '' return '%s%s%s' % (s[i:(i + startsize)], infix, s[-stopsize:]) def string2rawniml(s, i=None): '''Parses a NIML string to a raw NIML tree-like structure Parameters ---------- s: bytearray string to be converted i: int Starting position in the string. By default None is used, which means that the entire string is converted. Returns ------- r: the NIML result. If input parameter i is None then a dictionary with NIML elements, or a list containing such elements, is returned. If i is an integer, then a tuple j, d is returned with d the new starting position and a dictionary or list with the elements parsed so far. ''' # return new starting position? return_pos = i is not None if not return_pos: i = 0 debug('NIML', 'Parsing at %d, total length %d', (i, len(s))) # start parsing from header # # the tricky part is that binary data can contain characters that also # indicate the end of a data segment, so 'typical' parsing with start # and end markers cannot be done. Instead the header of each part is # read first, then the number of elements is computed based on the # header information, and the required number of bytes is converted. # From then on the remainder of the string is parsed as above. headerpat = b'\W*<(?P\w+)\W(?P

    .*?)>' nimls = [] # here all found parts are stored # Keep on reading new parts while True: # ignore any xml tags if s.startswith(b'', i) + 1 # try to read a name and header part m = re.match(headerpat, s[i:], _RE_FLAGS) if m is None: # no header - was it the end of a section? m = re.match(b'\W*\s*', s[i:], _RE_FLAGS) if m is None: if len(s[i:].strip()) == 0: if return_pos: return i, nimls else: return nimls else: raise ValueError("No match towards end of header end: [%s] " % _partial_string(s, i)) else: # for NIFTI extensions there can be some null bytes left # so get rid of them here remaining = s[i + m.end():].replace(chr(0).encode(), b'').strip() if len(remaining) > 0: # there is more stuff to parse i += m.end() continue # entire file was parsed - we are done debug('NIML', 'Completed parsing, length %d (%d elements)', (len(s), len(nimls))) if return_pos: return i, nimls else: return nimls else: # get values from header d = m.groupdict() name, header = d['name'], d['header'] # update current position i += m.end() # parse the keys and values in the header debug('NIML', 'Parsing header %s, header end position %d', (name, i + m.end())) niml = _parse_keyvalues(header) debug('NIML', 'Found keys %s.', (", ".join(niml.keys()))) # set the name of this element niml['name'] = name.decode() if niml.get('ni_form', None) == 'ni_group': # it's a group. Parse the group using recursion debug("NIML", "Starting a group %s >>>", niml['name']) i, niml['nodes'] = string2rawniml(s, i) debug("NIML", "<<< ending a group %s", niml['name']) elif not 'ni_type' in niml.keys(): warning('Empty NIML element %s found, skipping' % name) debug('NIML', 'Empty element, skipping') continue else: # it's a normal element with data debug('NIML', 'Parsing element %s from position %d, total ' 'length %d', (niml['name'], i, len(s))) # set a few data elements datatypes = niml['ni_type'] niml['vec_typ'] = types.str2codes(datatypes) niml['vec_len'] = int(niml['ni_dimen']) niml['vec_num'] = len(niml['vec_typ']) debug('NIML', 'Element of type %s' % niml['vec_typ']) # data can be in string form, binary or base64. is_string = niml['ni_type'] == 'String' or \ not 'ni_form' in niml if is_string: # string form is handled separately. It's easy to parse # because it cannot contain any end markers in the data debug("NIML", "Parsing string body for %s", name) vec_typ = niml['vec_typ'] is_mixed_data = len(set(vec_typ)) > 1 is_multiple_string_data = len(vec_typ) > 1 and types._one_str2code('String') == types.findonetype( vec_typ) if is_mixed_data or is_multiple_string_data: debug("NIML", "Data is mixed type (string=%s)" % is_multiple_string_data) # strpat = ('\s*(?P.*)\s*' % \ # (name.decode())).encode() strpat = ('\s*(?P.*?)\s*' % \ (name.decode())).encode() m = re.match(strpat, s[i:], _RE_FLAGS) is_string_data = is_multiple_string_data else: # If the data type is string, it is surrounded by quotes # Otherwise (numeric data) there are no quotes is_string_data = niml['ni_type'] == 'String' quote = '"' if is_string_data else '' # construct the regular pattern for this string strpat = ('\s*%s(?P[^"]*)[^"]*%s\s*' % \ (quote, quote, name.decode())).encode() m = re.match(strpat, s[i:], _RE_FLAGS) if m is None: # something went wrong raise ValueError("Could not parse string data from " "pos %d: %s" % (i, _partial_string(s, i))) # parse successful - get the parsed data data = m.groupdict()['data'] # convert data to raw NIML data = _datastring2rawniml(data, niml) # if string data, replace escape characters if is_multiple_string_data or is_string_data: data = decode_escape(data) # store data niml['data'] = data # update position i += m.end() debug('NIML', 'Completed %s, now at %d', (name, i)) else: # see how many bytes (characters) to read # convert this part of the string if 'base64' in niml['ni_form']: # base 64 has no '<' character - so we should be fine endpos = s.index(b'<', i + 1) datastring = s[i:endpos] nbytes = len(datastring) else: # hardcode binary data - see how many bytes we need nbytes = _binary_data_bytecount(niml) debug('NIML', 'Raw data with %d bytes - total length ' '%d, starting at %d', (nbytes, len(s), i)) datastring = s[i:(i + nbytes)] niml['data'] = _datastring2rawniml(datastring, niml) # update position i += nbytes # ensure that immediately after this segment there is an # end-part marker endstr = '' % name.decode() if s[i:(i + len(endstr))].decode() != endstr: raise ValueError("Not found expected end string %s" " (found %s...)" % (endstr, _partial_string(s, i))) i += len(endstr) debug('NIML', "Adding element '%s' with keys %r" % (niml['name'], niml.keys())) nimls.append(niml) # we should never end up here. raise ValueError("this should never happen") def _binary_data_bytecount(niml): '''helper function that returns how many bytes a NIML binary data element should have''' niform = niml['ni_form'] if not 'binary' in niform: raise ValueError('Illegal niform %s' % niform) tps = niml['vec_typ'] onetype = types.findonetype(tps) if onetype is None: debug('NIML', 'Not unique type: %r', tps) return None # numeric, either int or float ncols = niml['vec_num'] nrows = niml['vec_len'] tp = types.code2numpy_type(onetype) bytes_per_elem = types.numpy_type2bytecount(tp) if bytes_per_elem is None: raise ValueError("Type not supported: %r" % onetype) nb = ncols * nrows * bytes_per_elem debug('NIML', 'Number of bytes for %s: %d x %d with %d bytes / element', (niform, ncols, nrows, bytes_per_elem)) return nb def write(fnout, niml, form='binary', prefunction=None): if prefunction is not None: niml = prefunction(niml) s = rawniml2string(niml, form=form) safe_write(fnout, s) pymvpa2-2.6.4/mvpa2/support/nibabel/afni_niml_annot.py000066400000000000000000000107731323370031300227660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Experimental support for AFNI NIML annotation files Created on Feb 19, 2012 @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) ''' import numpy as np from mvpa2.support.nibabel import afni_niml as niml from mvpa2.support.nibabel import afni_niml_dset as dset import os def rawniml2annot(p): '''Converts raw NIML to annotation format''' if type(p) is list: return map(rawniml2annot, p) r = dset.rawniml2dset(p) for nd in p['nodes']: if nd.get('dset_type', None) == 'LabelTableObject': r[r'AFNI_labeltable'] = dset.rawniml2dset(nd) return r def annot2rawniml(a): '''Converts annotation to raw NIML format''' a = a.copy() t = a.pop('AFNI_labeltable') t['labels'] = ['R', 'G', 'B', 'A', 'key', 'name'] t['dset_type'] = 'LabelTableObject_data' t['node_indices'] = None r = dset.dset2rawniml(t).copy() _fix_rawniml_table_output(r) t = dset.dset2rawniml(a) _fix_rawniml_main_output(t) # add the table to the nodes t['nodes'].insert(2, r) return t def _fix_rawniml_table_output(r): colms_tp = niml.find_attribute_node(r, 'atr_name', 'COLMS_TYPE') colms_tp['data'] = ('R_col;G_col;B_col;A_col;' 'Node_Index_Label;Node_String_Label') colms_st = niml.find_attribute_node(r, 'atr_name', 'COLMS_STATSYM') colms_st['data'] = "none;none;none;none;none;none" dset = niml.find_attribute_node(r, 'name', 'AFNI_dataset') dset['name'] = 'AFNI_labeltable' dset['dset_type'] = 'LabelTableObject' dset['flipped'] = '0' dset['Sgn'] = '0' table = niml.find_attribute_node(r, 'data_type', 'Node_Bucket_data') table['data_type'] = 'LabelTableObject_data' def _fix_rawniml_main_output(r): main = niml.find_attribute_node(r, 'data_type', 'Node_Bucket_data') main['data_type'] = 'Node_Label_data' idx = niml.find_attribute_node(r, 'data_type', 'Node_Bucket_node_indices') idx['data_type'] = 'Node_Label_node_indices' #header = niml.find_attribute_node(r, 'dset_type', 'LabelTableObject') #header['dset_type'] = 'Node_Label' def _merge_indices_addition_values(idxs, last_index_function=np.max): n = len(idxs) if any(np.sum(idx < 0) for idx in idxs): raise ValueError("Unexpected negative values") nidxs = map(last_index_function, idxs) last_indices = np.cumsum(nidxs) addition_values = [] last_index = 0 for i, idx in enumerate(idxs): addition_values.append(last_index) last_index += last_indices[i] + 1 return addition_values def merge(annots): '''Merges multiple annotations. One use case is merging two hemispheres''' n = len(annots) def annot2idx_table_data(annot): return (annot['node_indices'], annot['AFNI_labeltable']['data'], annot['data']) idxs, tables, datas = map(list, zip(*map(annot2idx_table_data, annots))) to_add_idx = _merge_indices_addition_values(idxs) idx = np.vstack(idxs[i] + to_add_idx[i] for i in xrange(n)) # join the table ncols = len(tables[0]) table = [] for i in xrange(ncols): columns = [d[i] for d in tables] if all(isinstance(d[i], np.ndarray) and \ np.issubdtype(m.dtype, np.int) for m in columns): to_add_table = _merge_indices_addition_values(columns) for j in xrange(n): columns[j] = columns[j] + to_add_table[j] table.append(np.hstack(columns)) data = np.vstack([datas[i] + to_add_table[i] for i in xrange(n)]) output = annots[0].copy() output['node_indices'] = idx output['AFNI_labeltable']['data'] = table output['data'] = data return output def read(fn, itemifsingletonlist=True): return niml.read(fn, itemifsingletonlist, rawniml2annot) def write(fnout, niml_annot): fn = os.path.split(fnout)[1] if not type(fn) is str: if not isinstance(fnout, basestring): raise ValueError("Filename %s should be string" % str) fn = str(fn) # ensure that unicode is converted to string niml_annot['filename'] = fn form = 'text' niml.write(fnout, niml_annot, form, annot2rawniml) pymvpa2-2.6.4/mvpa2/support/nibabel/afni_niml_dset.py000066400000000000000000000436141323370031300226060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' AFNI NIML dataset I/O support. Usually this type of datasets are used for functional data (timeseries, preprocessed data), statistical maps or searchlight results. Created on Feb 19, 2012 @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) Files that are read with the afni_niml_dset.read function contain a dict with the following fields: .data PxN data for P nodes and N columns (values per node). .node_indices P indices of P nodes that data refers to (base 0) .history String with history information .stats list with statistical information for each column. .labels list with labels of the data columns .dset_type String with the data set type Similarly, such a dict can be saved to a .niml.dset file using the afni_niml_dset.write function ''' import random, numpy as np, os, time, sys, socket from mvpa2.support.nibabel import afni_niml_types as types from mvpa2.support.nibabel import afni_niml as niml from mvpa2.base import warning, debug def _string2list(s, SEP=";", warn_if_no_string=True): '''splits a string by SEP; if the last element is empty then it is not returned The rationale is that AFNI/NIML like to close the string with a ';' which would return one (empty) value too many If the input is already a list that has lists or tuples, by default a warning is thrown because SUMA may puke over it. ''' if isinstance(s, (list, tuple)): if warn_if_no_string and \ any(isinstance(s_elem, (list, tuple)) for s_elem in s): # a short representation of the offending structure s_str = '%r' % s if len(s) <= 1 else '[%s ... %s]' % (s[0], s[-1]) warning('Two-dimensional string structure %s found - ' 'it may not be readable by SUMA.' % s_str) return s r = s.split(SEP) if not r[-1]: r = r[:-1] return r def rawniml2dset(p): if type(p) is list: return map(rawniml2dset, p) assert type(p) is dict and all([f in p for f in ['dset_type', 'nodes']]), p #assert type(p) is dict and all([f in p for f in ['nodes']]), p r = dict() r['dset_type'] = p['dset_type'] for node in p['nodes']: assert 'name' in node name = node['name'] data = node.get('data', None) if name == 'INDEX_LIST': r['node_indices'] = data elif name == 'SPARSE_DATA': r['data'] = data elif name == 'AFNI_atr': atr = node['atr_name'] if atr == 'HISTORY_NOTE': r['history'] = data elif atr == 'COLMS_STATSYM': r['stats'] = _string2list(data) elif atr == 'COLMS_LABS': r['labels'] = _string2list(data) else: r[name] = data #raise ValueError("Unexpected node %s" % name) return r def _dset2rawniml_header(s): r = dict() # set dataset type, default is Node_Bucket r['dset_type'] = s.get('dset_type', 'Node_Bucket') # make a new id code of 24 characters, all uppercase letters r['self_idcode'] = niml.getnewidcode() r['filename'] = s.get('filename', 'null') r['label'] = r['filename'] r['name'] = 'AFNI_dataset' r['ni_form'] = 'ni_group' return r def _dset2rawniml_data(s): return dict(data_type='Node_Bucket_data', name='SPARSE_DATA', data=s['data']) def _dset_nrows_ncols(s): if type(s) is dict and 'data' in s: data = s['data'] else: data = s if isinstance(data, np.ndarray): sh = s['data'].shape nrows = sh[0] ncols = 1 if len(sh) == 1 else sh[1] elif isinstance(data, list): lengths = set([len(d) for d in data]) if len(lengths) != 1: raise ValueError('nonmatching lengths', lengths) nrows = lengths.pop() ncols = len(data) else: raise ValueError('not understood: %s' % data) return nrows, ncols def _dset2rawniml_nodeidxs(s): nrows, _ = _dset_nrows_ncols(s) node_idxs = s.get('node_indices') if 'node_indices' in s else np.arange(nrows, dtype=np.int32) if node_idxs is not None: if not type(node_idxs) is np.ndarray: node_idxs = np.asarray(node_idxs, dtype=np.int32) if node_idxs.size != nrows: raise ValueError("Size mismatch for node indices (%r) and data (%r)" % (node_idxs.size, nrows)) if node_idxs.shape != (nrows, 1): node_idxs = np.reshape(node_idxs, ((nrows, 1))) # reshape to column vector if necessary def is_sorted(v): # O(1) in best case and O(n) in worst case (unlike sorted()) if v is None: return None n = len(v) return n == 0 or all(v[i] <= v[i + 1] for i in xrange(n - 1)) return dict(data_type='Node_Bucket_node_indices', name='INDEX_LIST', data=node_idxs, sorted_node_def='Yes' if is_sorted(node_idxs) else 'No') def _dset2rawniml_datarange(s): data = s['data'] try: minpos = np.argmin(data, axis=0) maxpos = np.argmax(data, axis=0) f = types.numpy_data2printer(data) # formatter function r = [] for i in xrange(len(minpos)): mnpos = minpos[i] mxpos = maxpos[i] r.append('%s %s %d %d' % (f(data[mnpos, i]), f(data[mxpos, i]), mnpos, mxpos)) # range of data in each column return dict(atr_name='COLMS_RANGE', data=r) except: return dict(atr_name='COLMS_RANGE', data=None) def _dset2rawniml_labels(s): _, ncols = _dset_nrows_ncols(s) labels = s.get('labels', None) if labels is None: labels = ['col_%d' % i for i in xrange(ncols)] elif type(labels) != list: labels = list(labels) if len(labels) != ncols: raise ValueError("Wrong number of labels (%s): found %d but expected %d" % (labels, len(labels), ncols)) return dict(atr_name='COLMS_LABS', data=labels) def _dset2rawniml_history(s): try: logprefix = ('[%s@%s: %s]' % (os.environ.get('USER', 'UNKNOWN'), socket.gethostname(), time.asctime())) except: logprefix = '' # history history = s.get('history', '') if history and not history.endswith('\n'): history += ('\n') history += '%s Saved by %s:%s' % (logprefix, __file__, sys._getframe().f_code.co_name) return dict(atr_name='HISTORY_NOTE', data=history) def _dset2rawniml_datatypes(s): data = s['data'] _, ncols = _dset_nrows_ncols(s) # XXX does not support mixed types datatype = ['Generic_Int' if types.numpy_data_isint(data) else 'Generic_Float'] * ncols return dict(atr_name='COLMS_TYPE', data=datatype) def _dset2rawniml_stats(s): data = s['data'] _, ncols = _dset_nrows_ncols(s) stats = s.get('stats', None) if stats is None: stats = ['none'] * ncols return dict(atr_name='COLMS_STATSYM', data=stats) def _dset2rawniml_anything_else(s): ignore_keys = ['data', 'stats', 'labels', 'history', 'dset_type', 'node_indices'] ks = s.keys() niml = [] for k in ks: if k in ignore_keys: continue niml_elem = dict(data=s[k], name=k) try: niml.append(_dset2rawniml_complete(niml_elem)) except TypeError: debug('NIML', 'Warning: unable to convert value for key %s' % k) return niml def _dset2rawniml_complete(r): '''adds any missing information and ensures data is formatted properly''' # if data is a list of strings, join it and store it as a string # otherwise leave data untouched if types.numpy_data_isstring(r['data']): r['data'] = list(r['data']) while True: data = r['data'] tp = type(data) if types.numpy_data_isstring(r['data']): r['data'] = list(r['data']) elif tp is list: if all(isinstance(d, basestring) for d in data): r['data'] = ";".join(data) else: tp = 'mixed' break else: break # we're done if tp == 'mixed': #data = [types.nimldataassupporteddtype(d) for d in data] #r['data'] = data nrows, ncols = _dset_nrows_ncols(data) r['ni_dimen'] = str(nrows) tpstrs = [] for d in data: if isinstance(d, basestring) or \ (type(d) is list and all(isinstance(di, basestring) for di in d)): tpstr = 'String' elif isinstance(d, np.ndarray): tpstr = types.numpy_type2name(d.dtype) else: raise ValueError('unrecognized type %s' % type(d)) tpstrs.append(tpstr) r['ni_type'] = ','.join(tpstrs) elif issubclass(tp, basestring): r['ni_dimen'] = '1' r['ni_type'] = 'String' elif tp is np.ndarray: data = types.nimldataassupporteddtype(data) if len(data.shape) == 1: data = np.reshape(data, (data.shape[0], 1)) r['data'] = data # ensure we store a supported type nrows, ncols = data.shape r['ni_dimen'] = str(nrows) tpstr = types.numpy_type2name(data.dtype) r['ni_type'] = '%d*%s' % (ncols, tpstr) if nrows > 1 else tpstr elif data is not None: raise TypeError('Illegal type %r in %r' % (tp, data)) if not 'name' in r: r['name'] = 'AFNI_atr' return r def _remove_empty_nodes(nodes): tp = type(nodes) if tp is list: i = 0 while i < len(nodes): node = nodes[i] if type(node) is dict and 'data' in node and node['data'] is None: nodes.pop(i) else: i += 1 elif tp is dict: for v in nodes.itervalues(): _remove_empty_nodes(v) def dset2rawniml(s): if type(s) is list: return map(dset2rawniml, s) elif type(s) is np.ndarray: s = dict(data=s) if not 'data' in s: raise ValueError('No data?') r = _dset2rawniml_header(s) builders = [_dset2rawniml_data, _dset2rawniml_nodeidxs, _dset2rawniml_labels, _dset2rawniml_datarange, _dset2rawniml_history, _dset2rawniml_datatypes, _dset2rawniml_stats] nodes = [_dset2rawniml_complete(build(s)) for build in builders] _remove_empty_nodes(nodes) more_nodes = filter(lambda x: x is not None, _dset2rawniml_anything_else(s)) r['nodes'] = nodes + more_nodes return r def read(fn, itemifsingletonlist=True): return niml.read(fn, itemifsingletonlist, rawniml2dset) def write(fnout, dset, form='binary'): fn = os.path.split(fnout)[1] if not type(fn) is str: if not isinstance(fnout, basestring): raise ValueError("Filename %s should be string" % str) fn = str(fn) # ensure that unicode is converted to string dset['filename'] = fn niml.write(fnout, dset, form, dset2rawniml) def sparse2full(dset, pad_to_ico_ld=None, pad_to_node=None, ico_ld_surface_count=1, set_missing_values=0): ''' Creates a 'full' dataset which has values associated with all nodes Parameters ---------- dset: dict afni_niml_dset-like dictionary with at least a field 'data' pad_to_node_ico_ld: int number of linear divisions (only applicable if used through AFNI's MapIcosehedron) of the surface this dataset refers to. pad_to_node: int number of nodes of the surface this data ico_ld_surface_count: int (default: 1) if pad_to_ico_ld is set, this sets the number of surfaces that were origingally used. The typical use case is using a 'merged' surface originally based on a left and right hemisphere set_missing_values: int or float (default: 0) value to which nodes not present in dset are set. Returns ------- dset: dict afni_niml_dset-like dictionary with at least fields 'data' and 'node_indices'. ''' if pad_to_ico_ld is not None: if pad_to_node: raise ValueError("Cannot have both ico_ld and pad_to_node") pad_to_node = ico_ld_surface_count * (pad_to_ico_ld ** 2 * 10 + 2) else: if pad_to_node is None: raise ValueError("Need either pad_to_ico_ld or pad_to_node") data = dset['data'] nrows, ncols = data.shape node_indices = dset.get('node_indices', np.reshape(np.arange(nrows), (-1, 1))) # a few sanity checks n = len(node_indices) if nrows != n: raise ValueError('element count mismatch between data (%d) and ' 'node indices (%d)' % (nrows, n)) if n > pad_to_node: raise ValueError('data has more rows (%d) than pad_to_node (%d)', (n, pad_to_node)) full_node_indices_vec = np.arange(pad_to_node) full_node_indices = np.reshape(full_node_indices_vec, (pad_to_node, 1)) full_data = np.zeros((pad_to_node, ncols), dtype=data.dtype) + \ set_missing_values full_data[np.reshape(node_indices, (n,)), :] = data[:, :] fulldset = dict(dset) # make a (superficial) copy fulldset['data'] = full_data fulldset['node_indices'] = full_node_indices return fulldset def from_any(s, itemifsingletonlist=True): if isinstance(s, dict) and 'data' in s: return s elif isinstance(s, basestring): return read(s, itemifsingletonlist) elif isinstance(s, np.ndarray): return dict(data=s) else: raise ValueError('not recognized input: %r' % s) def label2index(dset, label): if type(label) is list: return [label2index(dset, x) for x in label] if type(label) is int: sh = dset['data'].shape if label < 0 or label >= sh[1]: raise ValueError('label index %d out of bounds (0.. %d)' % (label, sh[1])) return label labels = dset.get('labels', None) if labels is None: raise ValueError('No labels found') for i, k in enumerate(labels): if k == label: return i return None def ttest(dsets, sa_labels=None, return_values='mt', set_NaN_to=0., compare_to=0.): '''Runs a one-sample t-test across datasets Parameters ---------- dsets: str or list of dicts (filenames of) NIML dsets, each referring to PxQ data for P nodes (features) and Q values per node (samples) sa_labels: list of (int or str) indices or labels of columns to compare return_values: str (default: 'mt') 'm' or 't' or 'mt' to return sample mean, t-value, or both set_NaN_to: float or None (default: 0.) the value that NaNs in dsets replaced by. If None then NaNs are kept. compare_to: float (default: 0.) t-tests are compared against the null hypothesis of a mean of compare_to. Returns ------- dset: dict NIML dset-compatible dict with fields 'data', 'labels', 'stats' and 'node_indices' set. ''' do_m = 'm' in return_values do_t = 't' in return_values if not (do_m or do_t): raise ValueError("Have to return at least m or t") ns = len(dsets) for i, dset in enumerate(dsets): dset = from_any(dset) dset_data = dset['data'] if i == 0: sh = dset_data.shape if sa_labels is None: if 'labels' in dset: sa_labels = dset['labels'] dset_labels = sa_labels else: sa_labels = range(sh[1]) dset_labels = ['%d' % j for j in sa_labels] else: dset_labels = sa_labels nc = len(dset_labels) if dset_labels else sh[1] nn = sh[0] data = np.zeros((nn, nc, ns), dset_data.dtype) # number of nodes, columns, subjects if 'node_indices' in dset: node_idxs = np.reshape(dset['node_indices'], (-1,)) else: node_idxs = np.arange(nn) if i == 0: node_idxs0 = node_idxs else: if set(node_idxs0) != set(node_idxs): raise ValueError("non-matching node indices for %d and %d" % (0, i)) col_idxs = np.asarray(label2index(dset, sa_labels)) data[node_idxs, :, i] = dset_data[:, col_idxs] # subtract the value it is compared to # so that it now tests against a mean of zero if do_m: m = np.mean(data, axis=2) if do_t: from scipy import stats t = stats.ttest_1samp(data - compare_to, 0., axis=2)[0] if do_m and do_t: r = np.zeros((nn, 2 * nc), dtype=m.dtype) r[:, np.arange(0, 2 * nc, 2)] = m r[:, np.arange(1, 2 * nc, 2)] = t elif do_t: r = t elif do_m: r = m pf = [] stats = [] if do_m: pf.append('m') stats.append('None') if do_t: pf.append('t') stats.append('Ttest(%d)' % (ns - 1)) labs = sum([['%s_%s' % (p, lab) for p in pf] for lab in dset_labels], []) stats = stats * nc if set_NaN_to is not None: r[np.logical_not(np.isfinite(r))] = set_NaN_to return dict(data=r, labels=labs, stats=stats, node_indices=node_idxs0) pymvpa2-2.6.4/mvpa2/support/nibabel/afni_niml_roi.py000066400000000000000000000110641323370031300224320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' AFNI NIML ROI (region of interest) read support @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) ''' import numpy as np from mvpa2.support.nibabel import afni_niml def read(fn): '''Reads a NIML ROI file (typical extension .niml.roi) Parameters ---------- fn: str filename of NIML ROI file Returns ------- rois: list of dict A list of ROIs found in fn. Each element represents a single ROI and is a dictionary d with keys from the header information. In addition it contains d['edges'], a list of numpy arrays with the node indices for each edge, and d['areas'], a list of numpy arrays with the node indices of each node ''' with open(fn) as f: lines = f.read().split('\n') # some headers should be converted color2array = lambda x:np.asarray(map(float, x.split())) header_convertors = dict(iLabel=int, Type=int, FillColor=color2array, EdgeColor=color2array, EdgeThickness=int, ni_dimen=int) rois = [] for line in lines: if not line: continue elif line.startswith('#'): # process header line if line.startswith('# ') or line == '# >': continue elif ' = ' in line: k, v = line.lstrip('#').strip().split(' = ') v = afni_niml.decode_escape(v.strip('"')) if k in header_convertors: f = header_convertors[k] v = f(v) roi[k] = v else: raise ValueError("Illegal line: %s" % line) else: v = np.asarray(map(int, line.split()), dtype=np.int).ravel() tp = v[1] n = v[2] nodes = v[3:] k = {4:'edges', 1:'areas'}[tp] if not k in roi: roi[k] = [] roi[k].append(nodes) return rois def niml_roi2roi_mapping(rois): '''Converts NIML ROI representation in mapping from ROI labels to node indices Parameters ---------- roi: list of dictionaries NIML ROIs representation, e.g. from read() Returns ------- roi_mapping: dict A mapping from ROI labels to numpy arrays with node indices Notes ----- It is assumed that all labels in the rois are unique, otherwise an exception is raised ''' n = len(rois) keys = [roi['Label'] for roi in rois] if len(set(keys)) != n: raise ValueError("Not unique keys in %r" % keys) roi_mapping = dict() for roi in rois: key = roi['Label'] all_nodes = np.zeros((0,), dtype=np.int) for nodes in roi['areas']: all_nodes = np.union1d(all_nodes, nodes) roi_mapping[key] = all_nodes return roi_mapping def read_mapping(roi): '''Converts NIML ROI representation in mapping from ROI labels to node indices Parameters ---------- roi: list of dictionaries or str NIML ROIs representation, e.g. from read(), or a filename with ROIs specifications Returns ------- roi_mapping: dict A mapping from ROI labels to numpy arrays with node indices Notes ----- It is assumed that all labels in the rois are unique, otherwise an exception is raised ''' return from_any(roi, postproc=niml_roi2roi_mapping) def from_any(roi, postproc=None): '''Returns an ROI representation Parameters ---------- roi: str or list Filename or list of ROI representations postproc: callable or None (default: None) Postprocessing that is applied after processing the ROIs ''' if type(roi) is list: if not all(['Label' in r for r in roi]): raise ValueError("Not understood: list %r" % roi) elif isinstance(roi, basestring): roi = read(roi) if postproc is not None: roi = postproc(roi) return roi pymvpa2-2.6.4/mvpa2/support/nibabel/afni_niml_types.py000066400000000000000000000151641323370031300230120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Type definitions for AFNI NIML format Taken from afni_ni_defs() function in AFNI matlab library which is based on niml.h Created on Feb 16, 2012 @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) ''' import numpy as np, sys '''Currently no support for RGB and RGBA''' np_types = [np.byte, np.int16, np.int32, np.float32, np.float64, np.complex64, None, None, str] np_bytecounts = [1, 2, 4, 4, 8, 16, None, None, None] python_types = [int, int, int, float, float, complex, None, None, str] type_names = ['byte', 'short', 'int', 'float', 'double', 'complex', 'rgb', 'rgba', 'String'] type_alias = ['uint8', 'int16', 'int32', 'float32', 'float64', 'complex64', 'rgb8', 'rgba8', 'CString'] type_sep = "," def code2python_convertor(i): if i in [0, 1, 2]: return int if i in [3, 4, 5]: return float if i in [8]: return lambda x: x.strip('"') # remove quotes return None def numpy_type2bytecount(tp): for i, t in enumerate(np_types): if t is tp: return np_bytecounts[i] return None def numpy_type2name(tp): code = numpy_type2code(tp) return _one_code2str(code) def numpy_data_isint(data): return type(data) is np.ndarray and np.issubdtype(data.dtype, int) def numpy_data_isfloat(data): return type(data) is np.ndarray and np.issubdtype(data.dtype, float) def numpy_data_isdouble(data): return type(data) is np.ndarray and np.issubdtype(data.dtype, np.double) def numpy_data_isstring(data): return type(data) is np.ndarray and \ (np.issubdtype(data.dtype, np.str) or data.dtype.kind in 'US') def numpy_data2printer(data): tp = type(data) if tp is list: return map(numpy_data2printer, data) elif tp is str: return lambda x: '"%s"' % x elif tp == np.ndarray: if numpy_data_isint(data): return lambda x: '%d' % x elif numpy_data_isdouble(data): return str elif numpy_data_isfloat(data): return lambda x: '%f' % x elif numpy_data_isstring(data): return lambda x: '"%s"' % x raise ValueError("Not understood type %r in %r" % (tp, data)) def code2python_type(i): if type(i) is list: return map(code2python_type, i) else: return python_types[i] def nimldataassupporteddtype(data): tp = type(data) if tp is list: return map(nimldataassupporteddtype, data) if not type(data) is np.ndarray: return data tp = data.dtype if numpy_data_isfloat(data) and not np.issubdtype(tp, np.float32): return np.asarray(data, np.float32) if numpy_data_isint(data) and not np.issubdtype(tp, np.int32): return np.asarray(data, np.int32) return data def numpy_type2code(tp): if type(tp) is list: return map(numpy_type2code, tp) else: for i, t in enumerate(np_types): if t == tp: return i # hack because niml does not support int64 if tp == np.int64: return 2 # bit of a hack to get string arrays converted properly # XXX should we do this for other types as well? if isinstance(tp, np.dtype) and tp.char in ('S', 'a', 'U'): return 8 raise ValueError("Unknown type %r" % tp) def code2numpy_type(i): if type(i) is list: return map(code2numpy_type, i) else: return np_types[i] def num_codes(): return len(type_names) def _one_str2code(name): lname = name.lower() for lst in [type_names, type_alias]: for i, v in enumerate(lst): if v.lower() == lname: return i return None def _one_code2str(code): return type_alias[code] def sametype(p, q): ascode = lambda x: _one_str2code(x) if type(x) is str else x pc, qc = ascode(p), ascode(q) if pc is None or qc is None: raise ValueError("Illegal type %r or %r " % (p, q)) return pc == qc def codes2str(codes): if not type(codes) is list: codes = [codes] names = [_one_code2str(code) for code in codes] return type_sep.join(names) def byteorder_from_niform(niform, dtype): if not (niform and type(niform) is str): return None if not type(dtype) is np.dtype: raise ValueError("Expected numpy.dtype") split = niform.split(".") ns = len(split) if ns == 1: prefix = niform byteorder = 'msbfirst' # the default elif ns == 2: prefix, byteorder = split else: raise ValueError('Not understood niform') if prefix in ['binary', 'base64']: d = dict(lsbfirst='<', msbfirst='>') order = d.get(byteorder, None) return order and dtype.newbyteorder(order) else: raise ValueError("Prefix %s not understood" % prefix) raise ValueError('Not understood niform') def data2ni_form(data, form): if (type(data) is np.ndarray and (numpy_data_isint(data) or numpy_data_isfloat(data))): byteorder = data.dtype.byteorder if not form in ['binary', 'base64']: raise ValueError('illegal form %s' % form) if byteorder == '=': # native order byteorder = '<' if sys.byteorder == 'little' else '>' if byteorder in '<>': return '%s.%s' % (form, 'lsbfirst' if byteorder == '<' else 'msbfirst') else: raise ValueError("Unrecognized byte order %s" % byteorder) return None def str2codes(names): parts = names.lower().split(type_sep) codes = [] for part in parts: # support either 'float' or '4*float' p = part.split('*') np = len(p) if np == 1: fac = 1 # how many elif np == 2: fac = int(p[0]) else: raise ValueError("Not understood: %s" % part) code = _one_str2code(p[-1]) # last element for type codes.extend([code] * fac) return codes def findonetype(tps): '''tps is a list of vec_typ''' typeorder = str2codes(type_sep.join(['string', 'int', 'float'])) # find correct type, default to float if not string or int for tp in typeorder: if all([i == tp for i in tps]): return tp return None pymvpa2-2.6.4/mvpa2/support/nibabel/afni_suma_1d.py000066400000000000000000000031741323370031300221560ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Very simple AFNI 1D support Created on Feb 12, 2012 @author: Nikolaas. N. Oosterhof (nikolaas.oosterhof@unitn.it) ''' import numpy as np def write(fnout, data, nodeidxs=None): data = np.array(data) nv = data.shape[0] nt = 1 if data.ndim == 1 else data.shape[1] if nodeidxs is not None: # make space alldata = np.zeros((nv, nt + 1)) # ensure all in good shape nodeidxs = np.reshape(np.array(nodeidxs), (-1, 1)) data = np.reshape(data, (nv, -1)) # first column for node indices, remaining columns for data alldata[:, 0] = nodeidxs[:, 0] alldata[:, 1:] = data[:] data = alldata fmt = ['%d'] else: fmt = [] # 5 decimal places should be enough for everyone fmt.extend(['%.5f' for _ in xrange(nt)]) np.savetxt(fnout, data, fmt, ' ') def read(fn): not_empty = lambda x:len(x) > 0 and not x.startswith('#') with open(fn) as f: lines = filter(not_empty, f.read().split('\n')) ys = [map(float, line.split()) for line in lines] return np.asarray(ys) def from_any(s): if isinstance(s, np.ndarray): return s.copy() elif isinstance(s, basestring): return read(s) raise TypeError("Not understood: %s" % s) pymvpa2-2.6.4/mvpa2/support/nibabel/afni_suma_spec.py000066400000000000000000000372641323370031300226130ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Support for ANFI SUMA surface specification (.spec) files Includes I/O support and generating spec files that combine both hemispheres''' import re import datetime import os from os.path import join as pathjoin import copy import glob from mvpa2.support.nibabel import surf_fs_asc, surf _COMPREFIX = 'CoM' # for surfaces that were rotated around center of mass class SurfaceSpec(object): def __init__(self, surfaces, states=None, groups=None, directory=None): self.surfaces = surfaces self.directory = directory if states is None: if surfaces is None: raise ValueError('No surfaces given') states = list(set(surface['SurfaceState'] for surface in surfaces)) self.states = states if groups is None: groups = ['all'] self.groups = groups self._fix() def _fix(self): # performs replacements of aliases to ensure consistent naming repls = [('freesurfersurface', 'SurfaceName')] for s in self.surfaces: for src, trg in repls: keys = s.keys() for i in xrange(len(keys)): key = keys[i] if key.lower() == src: v = s.pop(key) s[trg] = v def __repr__(self): return 'SurfaceSpec(%r)' % self.surfaces def __str__(self): return ('SurfaceSpec instance with %d surfaces, %d states (%s), ' % (len(self.surfaces), len(self.states), ", ".join(self.states))) def as_string(self): lines = [] lines.append('# Created %s' % str(datetime.datetime.now())) lines.append('') lines.append('# Define the group') lines.extend(' Group = %s' % g for g in self.groups) lines.append('') lines.append('# Define the states') lines.extend(' StateDef = %s' % s for s in self.states) lines.append('') for surface in self.surfaces: lines.append('NewSurface') lines.extend(' %s = %s' % kv for kv in surface.iteritems()) lines.append('') return "\n".join(lines) def add_surface(self, state): self.surfaces.append(state) surfstate = state['SurfaceState'] if not surfstate in self.states: self.states.append(surfstate) def find_surface_from_state(self, surfacestate): return [(i, surface) for (i, surface) in enumerate(self.surfaces) if surface['SurfaceState'] == surfacestate] def same_states(self, other): ''' Returns whether another surface has the same surface states Parameters ---------- other: SurfaceSpec Returns ------- True iff other has the same states ''' return set(self.states) == set(other.states) def write(self, fnout, overwrite=True): ''' Writes spec to a file Parameters ---------- fn: str filename where the spec is written to overwrite: boolean (default: True) overwrite the file even if it exists already. ''' if not overwrite and os.path.exists(fnout): print '%s already exists - not overwriting' % fnout with open(fnout, 'w') as f: f.write(self.as_string()) def get_surface(self, *args): ''' Wizard-like function to get a surface Parameters ---------- *args: list of str parts of the surface file name or description, such as 'pial' (for pial surface), 'wm' (for white matter), or 'lh' (for left hemisphere'). Returns ------- surf: surf.Surface ''' return surf.from_any(self.get_surface_file(*args)) def get_surface_file(self, *args): ''' Wizard-like function to get the filename of a surface Parameters ---------- *args: list of str parts of the surface file name or description, such as 'pial' (for pial surface), 'wm' (for white matter), or 'lh' (for left hemisphere'). Returns ------- filename: str filename of the surface specified, or None if no unique match was found. ''' _FIELD_MATCH_ORDER = ['SurfaceState', 'SurfaceName'] # start with all surfaces # then take fist field and see for which args match # if just one left, return it # if not succesful, try second field. etc etc surfs = list(self.surfaces) # list of all candidates for field in _FIELD_MATCH_ORDER: for arg in args: if not arg is str: arg = '%s' % arg funcs = [lambda x: x.startswith(arg), lambda x: arg in x] for func in funcs: surfs_filter = filter(lambda x:func(x[field]), surfs) if not surfs_filter: continue elif len(surfs_filter) == 1: return pathjoin(self.directory, surfs_filter[0]['SurfaceName']) # reduce list of candidates surfs = surfs_filter return None # (redundant code, just for clarity) def hemi_pairs_add_views(spec_both, state, ext, directory=None, overwrite=False): '''adds views for medial, superior, inferior, anterior, posterior viewing of two surfaces together. Also generates these surfaces''' spec_left, spec_right = spec_both[0], spec_both[1] if directory is None: directory = os.path.curdir if not spec_left.same_states(spec_right): raise ValueError('Incompatible states for left and right') #views = collections.OrderedDict(m='medial', s='superior', i='inferior', a='anterior', p='posterior') # for compatibility use a normal dict if state == 'inflated': views = dict(m='medial', s='superior', i='inferior', a='anterior', p='posterior') viewkeys = ['m', 's', 'i', 'a', 'p'] else: views = dict(m='medial') viewkeys = 'm' spec_both = [spec_left, spec_right] spec_both_new = map(copy.deepcopy, spec_both) for view in viewkeys: longname = views[view] oldfns = [] newfns = [] for i, spec in enumerate(spec_both): idxdef = spec.find_surface_from_state(state) if len(idxdef) != 1: raise ValueError('Not unique surface with state %s' % state) surfidx, surfdef = idxdef[0] # take whichever is there (in order of preference) # shame that python has no builtin foldr surfnamelabels = ['SurfaceName', 'FreeSurferSurface'] for surfnamelabel in surfnamelabels: surfname = surfdef.get(surfnamelabel) if surfname is not None: break #surfname = utils.foldr(surfdef.get, None, surfnamelabels) fn = pathjoin(directory, surfname) if not os.path.exists(fn): raise ValueError("File not found: %s" % fn) if not surfname.endswith(ext): raise ValueError('Expected extension %s for %s' % (ext, fn)) oldfns.append(fn) # store old name shortfn = surfname[:-(len(ext))] newsurfname = '%s%s%s%s' % (shortfn, _COMPREFIX, longname, ext) newfn = pathjoin(directory, newsurfname) newsurfdef = copy.deepcopy(surfdef) # ensure no naming cnoflicts for surfnamelabel in surfnamelabels: if surfnamelabel in newsurfdef: newsurfdef.pop(surfnamelabel) newsurfdef['SurfaceName'] = newsurfname newsurfdef['SurfaceState'] = '%s%s%s' % (_COMPREFIX, view, state) spec_both_new[i].add_surface(newsurfdef) newfns.append(newfn) if all(map(os.path.exists, newfns)) and not overwrite: print "Output already exist for %s" % longname else: surf_left, surf_right = map(surf.read, oldfns) surf_both_moved = surf.reposition_hemisphere_pairs(surf_left, surf_right, view) for fn, surf_ in zip(newfns, surf_both_moved): surf.write(fn, surf_, overwrite) return tuple(spec_both_new) def combine_left_right(leftright): left, right = leftright[0], leftright[1] if set(left.states) != set(right.states): raise ValueError('Incompatible states') mergeable = lambda x : ((x['Anatomical'] == 'Y') or x['SurfaceState'].startswith(_COMPREFIX)) to_merge = map(mergeable, left.surfaces) s_left, s_right = left.surfaces, right.surfaces hemis = ['l', 'r'] states = [] # list of states surfaces = [] # surface specs for i, merge in enumerate(to_merge): ll, rr = map(copy.deepcopy, [s_left[i], s_right[i]]) # for now assume they are in the same order for left and right if ll['SurfaceState'] != rr['SurfaceState']: raise ValueError('Different states for left (%r) and right (%r)' % (ll, rr)) if merge: state = ll['SurfaceState'] states.append(state) surfaces.extend([ll, rr]) else: for hemi, surf_ in zip(hemis, [ll, rr]): state = '%s_%sh' % (surf_['SurfaceState'], hemi) states.append(state) surf_['SurfaceState'] = state surfaces.append(surf_) spec = SurfaceSpec(surfaces, states, groups=left.groups) return spec def merge_left_right(both): # merges the result form combine_left_right # output is a tuple with the surface defintion, and a list # of pairs of filenames of surfaces that have to be merged lr_infixes = ['_lh', '_rh'] m_infix = '_mh' m_surfaces = [] m_states = [] m_groups = both.groups # mapping from output filename to tuples with input file names # of surfaces to be merged merge_filenames = dict() _STATE = 'SurfaceState' _NAME = 'SurfaceName' for i, left in enumerate(both.surfaces): for j, right in enumerate(both.surfaces): if j <= i: continue if left[_STATE] == right[_STATE]: # apply transformation in naming to both # surfaces. result should be the same fns = [] mrg = [] # versions ok to be merged for ii, surf_ in enumerate([left, right]): newsurf = dict() fns.append(surf_[_NAME]) for k, v in surf_.iteritems(): newsurf[k] = v.replace(lr_infixes[ii], m_infix) # ensure that right hemi identical to left if ii > 0 and newsurf[k] != mrg[ii - 1][k]: raise ValueError("No match: %r -> %r" % (k, v)) mrg.append(newsurf) m_states.append(left[_STATE]) m_surfaces.append(mrg[0]) merge_filenames[newsurf[_NAME]] = tuple(fns) m = SurfaceSpec(m_surfaces, states=m_states, groups=m_groups, directory=both.directory) return m, merge_filenames def write(fnout, spec, overwrite=True): if type(spec) is str and isinstance(fnout, SurfaceSpec): fnout, spec = spec, fnout spec.write(fnout, overwrite=overwrite) def read(fn): surfaces = [] states = [] groups = [] current_surface = None surface_names = [] with open(fn) as f: lines = f.read().split('\n') for line in lines: m = re.findall(r'\W*([\w\.]*)\W*=\W*([\w\.]*)\W*', line) if len(m) == 1: k, v = m[0] if k == 'StateDef': states.append(v) elif k == 'Group': groups.append(v) elif current_surface is not None: current_surface[k] = v elif 'NewSurface' in line: #current_surface = collections.OrderedDict() # for comppatibility use a normal dict (which loses the order) current_surface = dict() surfaces.append(current_surface) d = os.path.abspath(os.path.split(fn)[0]) return SurfaceSpec(surfaces=surfaces or None, states=states or None, groups=groups or None, directory=d) def canonical_filename(icold=None, hemi=None, suffix=None): if suffix is None: suffix = '' if icold is None or hemi is None: raise ValueError('icold (%s) or hemi (%s) are None' % (icold, hemi)) return '%sh_ico%d%s.spec' % (hemi, icold, suffix) def find_file(directory, icold=None, hemi=None, suffix=None): fn = pathjoin(directory, canonical_filename(icold=icold, hemi=hemi, suffix=suffix)) if not os.path.exists(fn): suffix = '*' pat = pathjoin(directory, canonical_filename(icold=icold, hemi=hemi, suffix=suffix)) fn = glob.glob(pat) if not fn: raise ValueError("not found: %s " % pat) elif len(fn) > 1: raise ValueError("not unique: %s (found %d)" % (pat, len(fn))) fn = fn[0] return fn def from_any(*args): """ Wizard-like function to get a SurfaceSpec instance from any kind of reasonable input. Parameters ========== *args: one or multiple arguments. If one argument and a SurfaceSpec, this is returned immediately. If one argument and the name of a file, it returns the contents of the file. Otherwise each argument may refer to a path, a hemisphere (if one of 'l','r','b','m', optionally followed by the string 'h'), a suffix, or an int (this is interpreted as icold); these elments are used to construct a canonical filename using afni_suma_spec.canonical_filename whose result is returned. Returns ======= spec: SurfaceSpec spec as defined by parameters (if it is found) """ if args is None or not args: return None if len(args) == 1: a = args[0] if isinstance(a, SurfaceSpec): return a if (isinstance(a, basestring)): for ext in ['', '.spec']: fn = a + ext if os.path.isfile(fn): return read(fn) # try to be smart directory = icold = suffix = hemi = None for arg in args: if type(arg) is int: icold = arg elif arg in ['l', 'r', 'b', 'm', 'lh', 'rh', 'bh', 'mh']: hemi = arg[0] elif isinstance(arg, basestring): if os.path.isdir(arg): directory = arg else: suffix = arg if directory is None: directory = '.' fn = find_file(directory, icold=icold, suffix=suffix, hemi=hemi) return read(fn) pymvpa2-2.6.4/mvpa2/support/nibabel/surf.py000066400000000000000000002175501323370031300206140ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##''' ''' General support for cortical surface meshes Created on Feb 11, 2012 @author: nick ''' import os, collections, datetime, time, heapq, math import numpy as np _COORD_EPS = 1e-14 # maximum allowed difference between coordinates # in order to be considered equal class Surface(object): '''Cortical surface mesh A surface consists of a set of vertices (each with an x, y, and z coordinate) and a set of faces (triangles; each has three indices referring to the vertices that make up a triangle). In the present implementation new surfaces should be made using the __init__ constructor; internal fields should not be changed manually Parameters ---------- vertices : numpy.ndarray (float) Px3 array with coordinates for P vertices. faces : numpy.ndarray (int) Qx3 array with vertex indices for Q faces (triangles). check: boolean (default=True) Do some sanity checks to ensure that vertices and faces have proper size and values. Returns ------- s : Surface a surface specified by vertices and faces ''' def __init__(self, v, f=None, check=True): # set vertices v = np.asarray(v) if len(v.shape) != 2 or v.shape[1] != 3: raise ValueError("Expected Px3 array for coordinates") self._v = v # set faces if f is None: f = np.zeros((0, 3), dtype=np.int) else: f = np.asarray(f) if len(f.shape) != 2 or f.shape[1] != 3: raise ValueError("Expected Qx3 array for faces") self._f = f self._nv = v.shape[0] self._nf = f.shape[0] if check: self._check() def _check(self): '''ensures that different fields are sort of consistent''' fields = ['_v', '_f', '_nv', '_nf'] if not all(hasattr(self, field) for field in fields): raise Exception("Incomplete surface!") if self._v.shape != (self._nv, 3): raise Exception("Wrong shape for vertices") if self._f.shape != (self._nf, 3): raise Exception("Wrong shape for faces") @property def node2faces(self): ''' A mapping from node indices to the faces that contain those nodes. Returns ------- n2v : dict A dict "n2v" so that "n2v[i]=faceidxs" contains a list of the faces (indexed by faceidxs) that contain node "i". ''' if not hasattr(self, '_n2f'): # run the first time this function is called n2f = dict() for i in xrange(self._nf): fi = self._f[i] for j in xrange(3): p = fi[j] if not p in n2f: n2f[p] = [] n2f[p].append(i) self._n2f = n2f return self._n2f @property def face_edge_length(self): ''' Length of edges associated with each face Returns ------- f2el: np.ndarray Px3 array where P==self.nfaces. f2el[i,:] contains the length of the (three) edges that make up face i. ''' if not hasattr(self, '_f2el'): n, f, v = self.nfaces, self.faces, self.vertices f2el = np.zeros((n, 3)) p = v[f[:, 0]] # first coordinate for i in xrange(3): q = v[f[:, (i + 1) % 3]] # second coordinate d = p - q # difference vector f2el[:, i] = np.sum(d * d, 1) ** .5 # length p = q v = f2el.view() v.flags.writeable = False self._f2el = v return self._f2el @property def average_node_edge_length(self): ''' Average length of edges associated with each face Returns ------- n2el: np.ndarray P-valued vector where P==self.nvertices, where n2el[i] is the average length of the edges that contain node i. ''' if not hasattr(self, '_n2ael'): n, v, f = self.nvertices, self.vertices, self.faces sum_dist = np.zeros((n,)) count_dist = np.zeros((n,)) a = f[:, 0] for j in xrange(3): b = f[:, (j + 1) % 3] d = np.sum((v[a] - v[b]) ** 2, 1) ** .5 count_dist[a] += 1 count_dist[b] += 1 sum_dist[a] += d sum_dist[b] += d a = b sum_dist[count_dist == 0] = 0 count_dist[count_dist == 0] = 1 v = (sum_dist / count_dist).view() v.flags.writeable = False self._v2ael = v return self._v2ael @property def edge2face(self): '''A mapping from edges to the face that contains that edge Returns ------- e2f: dict a mapping from edges to faces. e2f[(i,j)]==f means that the edge connecting nodes i and j contains node f. It is assumed that faces are consistent with respect to the direction of their normals: if self.faces[j,:]==[p,q,r] then the normal of vectors pq and pr should all either point 'inwards' or 'outwards'. ''' if not hasattr(self, '_e2f'): faces = self.faces e2f = dict() for i in xrange(self.nfaces): for j in xrange(3): e = (faces[i, j], faces[i, (j + 1) % 3]) if e in e2f: raise ValueError( 'duplicate key (%d,%d). Do all normals' ' point in the same "direction"?' % e) e2f[e] = i self._e2f = e2f return dict(self._e2f) # make a copy @property def neighbors(self): '''Finds the neighbours for each node and their (Euclidean) distance. Returns ------- nbrs : dict A dict "nbrs" so that "nbrs[i]=n2d" contains the distances from node i to the neighbours of node "i" in "n2d". "n2d" is, in turn, a dict so that "n2d[k]=d" is the distance "d" from node "i" to node "j". In other words, nbrs[i][j]=d means that the distance from node i to node j is d. It holds that nbrs[i][j]=nbrs[j][i]. Note ---- This function computes nbrs if called for the first time, otherwise it caches the results and returns these immediately on the next call''' if not hasattr(self, '_nbrs'): nbrs = dict() for i in xrange(self._nf): fi = self._f[i] for j in xrange(3): p = fi[j] q = fi[(j + 1) % 3] if p in nbrs and q in nbrs[p]: continue pv = self._v[p] qv = self._v[q] # writing this out seems a bit quicker - but have to test sqdist = ((pv[0] - qv[0]) * (pv[0] - qv[0]) + (pv[1] - qv[1]) * (pv[1] - qv[1]) + (pv[2] - qv[2]) * (pv[2] - qv[2])) dist = math.sqrt(sqdist) if not p in nbrs: nbrs[p] = dict() if not q in nbrs: nbrs[q] = dict() nbrs[q][p] = dist nbrs[p][q] = dist self._nbrs = nbrs return dict(self._nbrs) # make a copy def circlearound_n2d(self, src, radius, metric='euclidean'): '''Finds the distances from a center node to surrounding nodes. Parameters ---------- src : int Index of center node radius : float Maximum distance for other nodes to qualify as a 'surrounding' node. metric : string (default: euclidean) 'euclidean' or 'dijkstra': distance metric Returns ------- n2d : dict A dict "n2d" so that n2d[j]=d" is the distance "d" from node "src" to node "j". ''' shortmetric = metric.lower()[0] # only take first letter - for now if shortmetric == 'e': ds = self.euclidean_distance(src) c = dict((nd, d) for (nd, d) in zip(xrange(self._nv), ds) if d <= radius) elif shortmetric == 'd': c = self.dijkstra_distance(src, maxdistance=radius) else: raise Exception("Unknown metric %s" % metric) return c def dijkstra_distance(self, src, maxdistance=None): '''Computes Dijkstra distance from one node to surrounding nodes Parameters ---------- src : int Index of center (source) node maxdistance: float (default: None) Maximum distance for a node to qualify as a 'surrounding' node. If 'maxdistance is None' then the distances to all nodes is returned/ Returns: -------- n2d : dict A dict "n2d" so that n2d[j]=d" is the distance "d" from node "src" to node "j". Note ---- Preliminary analyses show that the Dijkstra distance gives very similar results to geodesic distances (unpublished results, NNO) ''' tdist = {src: 0} # tentative distances fdist = dict() # final distances candidates = [] # queue of candidates, sorted by tentative distance heapq.heappush(candidates, (0, src)) nbrs = self.neighbors # algorithm from wikipedia # (http://en.wikipedia.org/wiki/Dijkstra's_algorithm) while candidates: # distance and index of current candidate d, i = heapq.heappop(candidates) if i in fdist: continue # we already have a final distance for this node nbr = nbrs[i] # neighbours of current candidate for nbr_i, nbr_d in nbr.items(): dnew = d + nbr_d if maxdistance is not None and dnew > maxdistance: continue # skip if too far away if nbr_i not in tdist or dnew < tdist[nbr_i]: # set distance and append to queue tdist[nbr_i] = dnew heapq.heappush(candidates, (tdist[nbr_i], nbr_i)) fdist[i] = tdist[i] # set final distance return fdist def dijkstra_shortest_path(self, src, maxdistance=None): '''Computes Dijkstra shortest path from one node to surrounding nodes. Parameters ---------- src : int Index of center (source) node maxdistance: float (default: None) Maximum distance for a node to qualify as a 'surrounding' node. If 'maxdistance is None' then the shortest path to all nodes is returned. Returns: -------- n2dp : dict A dict "n2d" so that n2d[j]=(d,p)" contains the distance "d" from node "src" to node "j", and p is a list of the nodes of the path with p[0]==src and p[-1]==j. Note ---- Preliminary analyses show that the Dijkstra distance gives very similar results to geodesic distances (unpublished results, NNO) ''' tdist = {src: (0, [src])} # tentative distances and path fdist = dict() # final distances candidates = [] # queue of candidates, sorted by tentative distance heapq.heappush(candidates, (0, src)) nbrs = self.neighbors # algorithm from wikipedia # (http://en.wikipedia.org/wiki/Dijkstra's_algorithm) while candidates: # distance and index of current candidate d, i = heapq.heappop(candidates) if i in fdist: continue # we already have a final distance for this node nbr = nbrs[i] # neighbours of current candidate for nbr_i, nbr_d in nbr.items(): dnew = d + nbr_d if maxdistance is not None and dnew > maxdistance: continue # skip if too far away if nbr_i not in tdist or dnew < tdist[nbr_i][0]: # set distance and append to queue pnew = tdist[i][1] + [nbr_i] # append current node to path tdist[nbr_i] = (dnew, pnew) heapq.heappush(candidates, (tdist[nbr_i][0], nbr_i)) fdist[i] = tdist[i] # set final distance return fdist def dijkstra_shortest_path_visiting(self, to_visit): '''Computes a list of paths that visit specific nodes Parameters ---------- to_visit: list of int P indices of nodes to visit Returns ------- path_distances: list of tuple (int, list of int) List with (P-1) elements, where the i-th element is a tuple (d_i, q_i) with distance d_i between nodes i and (i+1), and q_i a list of node indices on the path between nodes i and (i+1) so that q_i[0]==i and q_i[-1]==(i+1) ''' if to_visit is None or len(to_visit) == 0: raise ValueError("Cannot operate on empty list") src = to_visit[0] if not src in np.arange(self.nvertices): raise ValueError("%d is not a valid node index" % src) if len(to_visit) == 1: return [] trg = to_visit[1] if not trg in np.arange(self.nvertices): raise ValueError("%d is not a valid node index" % trg) tdist = {src: (0, [src])} # tentative distances and path fdist = dict() # final distances candidates = [] # queue of candidates, sorted by tentative distance heapq.heappush(candidates, (0, src)) nbrs = self.neighbors # algorithm from wikipedia # (http://en.wikipedia.org/wiki/Dijkstra's_algorithm) while candidates: # distance and index of current candidate d, i = heapq.heappop(candidates) if i in fdist: if i == trg: break else: continue # we already have a final distance for this node nbr = nbrs[i] # neighbours of current candidate for nbr_i, nbr_d in nbr.items(): dnew = d + nbr_d if nbr_i not in tdist or dnew < tdist[nbr_i][0]: # set distance and append to queue pnew = tdist[i][1] + [nbr_i] # append current node to path tdist[nbr_i] = (dnew, pnew) heapq.heappush(candidates, (tdist[nbr_i][0], nbr_i)) fdist[i] = tdist[i] # set final distance if i == trg: break if i != trg: raise ValueError('Node %d could not be reached from %d' % (trg, src)) pth = [fdist[i]] # recursion to find remaining paths (if any) pth.extend(self.dijkstra_shortest_path_visiting(to_visit[1:])) return pth def euclidean_distance(self, src, trg=None): '''Computes Euclidean distance from one node to other nodes Parameters ---------- src : int or numpy.ndarray Index of center (source) node, or a 1x3 array with coordinates of the center (source) node. trg : int Target node(s) to which the distance is computed. If 'trg is None' then distances to all nodes are computed Returns: -------- n2d : dict A dict "n2d" so that n2d[j]=d" is the distance "d" from node "src" to node "j". ''' if type(src) is tuple and len(src) == 3: src = np.asarray(src) if isinstance(src, np.ndarray): if src.shape not in ((1, 3), (3,), (3, 1)): raise ValueError("Illegal shape: should have 3 elements") src_coord = src if src.shape == (1, 3) else np.reshape(src, (1, 3)) else: src_coord = self._v[src] if trg is None: delta = self._v - src_coord else: delta = self._v[trg] - src_coord delta2 = delta * delta ss = np.sum(delta2, axis=delta.ndim - 1) d = np.power(ss, .5) return d def nearest_node_index(self, src_coords, node_mask_indices=None): '''Computes index of nearest node to src Parameters ---------- src_coords: numpy.ndarray (Px3 array) Coordinates of center node_mask_idxs numpy.ndarray (default: None): Indices of nodes to consider. By default all nodes are considered Returns ------- idxs: numpy.ndarray (P-valued vector) Indices of nearest nodes ''' if not isinstance(src_coords, np.ndarray): src_coords = np.asarray(src_coords) if len(src_coords.shape) == 1: if src_coords.shape[0] != 3: raise ValueError("no three values for src_coords") else: src_coords = np.reshape(src_coords, (1, -1)) elif len(src_coords.shape) != 2 or src_coords.shape[1] != 3: raise ValueError("Expected Px3 array for src_coords") use_mask = node_mask_indices is not None # vertices to consider v = self.vertices[node_mask_indices] if use_mask else self.vertices # indices of these vertices all_idxs = np.arange(self.nvertices) masked_idxs = all_idxs[node_mask_indices] if use_mask else all_idxs n = src_coords.shape[0] idxs = np.zeros((n,), dtype=np.int) for i in xrange(n): delta = v - src_coords[i] minidx = np.argmin(np.sum(delta ** 2, 1)) idxs[i] = masked_idxs[minidx] return idxs def nodes_on_border(self, node_indices=None): '''Determines which nodes are on the border of the surface Parameters ---------- node_indices: np.ndarray or None Vector with node indices for which their bordership status is to be deteremined. None means all node indices Returns ------- on_border: np.ndarray Boolean array of shape (len(node_indices),). A node i is considered on the border if there is a face that contains node i and another node j so that no other face contains both i and j. In other words a node i is *not* on the border if there is a path of nodes p1,...pN so that N>1, p1==pN, pj!=pk if j!=k [int] # _f2el: array # _v2ael: array # _e2f: (int,int) -> int # _nbrs: int -> (int -> float) # # For now this this functionaltiy is switched off, # because pickling it (also with hdf5) takes a long time # for lazy_key in lazy_keys: # if lazy_key in self.__dict__: # lazy_dict[lazy_key] = self.__dict__[lazy_key] return (self.__class__, (self._v, self._f), lazy_dict) def same_topology(self, other): ''' Returns whether another surface has the same topology Parameters ---------- other: surf.Surface another surface Returns ------- bool True iff the current surface has the same number of coordinates and the same faces as 'other'. ''' return self._v.shape == other._v.shape and np.array_equal(self._f, other._f) def __add__(self, other): '''coordinate-wise addition of two surfaces with the same topology''' if isinstance(other, Surface): if not self.same_topology(other): raise Exception("Different topologies - cannot add") vother = other.vertices else: vother = other return Surface(v=self.vertices + vother, f=self.faces, check=False) def __mul__(self, other): '''coordinate-wise scaling''' return Surface(v=self._v * other, f=self.faces, check=False) def __neg__(self, other): '''coordinate-wise inversion with respect to addition''' return Surface(v=-self.vertices, f=self.faces, check=False) def __sub__(self, other): '''coordiante-wise subtraction''' return self + (-other) def rotate(self, theta, center=None, unit='rad'): '''Rotates the surface Parameters ---------- theta: np.array with 3 values for rotation along x, y, z axes center: np.array with center around which surface is rotated. If None, then rotation is around the origin (0,0,0). unit: 'rad' or 'deg' for angles in theta in either radians or degrees. Returns ------- surf.Surface the result after rotating with angles theta around center. ''' if unit.startswith('rad'): fac = 1. elif unit.startswith('deg'): fac = math.pi / 180. else: raise ValueError('Illegal unit for rotation: %r' % unit) theta = map(lambda x: x * fac, theta) cx, cy, cz = np.cos(theta) sx, sy, sz = np.sin(theta) # rotation matrix *in row-first order* # in other words, we compute vertices*R' m = np.asarray( [[cy * cz, -cy * sz, sy], [cx * sz + sx * sy * cz, cx * cz - sx * sy * sz, -sx * cy], [sx * sz - cx * sy * cz, sx * cz + cx * sy * sz, cx * cy]]) if center is None: center = 0 center = np.reshape(np.asarray(center), (1, -1)) v_rotate = center + np.dot(self._v - center, m) return Surface(v=v_rotate, f=self._f) @property def center_of_mass(self): '''Computes the center of mass Returns ------- np.array 3-value vector with x,y,z coordinates of center of mass ''' return np.mean(self.vertices, axis=0) def merge(self, *others): '''Merges the present surface with other surfaces Parameters ---------- others: list of surf.Surface List of other surfaces to be merged with present one Returns ------- surf.Surface A surface that has all the nodes of the current surface and the surfaces in others, and has the topologies combined from these surfaces as well. If the current surface has v_0 vertices and f_0 faces, and the i-th surface has v_i and f_i faces, then the output has sum_j (v_j) vertices and sum_j (f_j) faces. ''' all = [self] all.extend(list(others)) n = len(all) def border_positions(xs, f, dt): # positions of transitions between surface # faces should return number of relevant values (nodes or vertices) n = len(xs) fxs = map(f, all) positions = [0] for i in xrange(n): positions.append(positions[i] + fxs[i]) zeros_arr = np.zeros((positions[-1], xs[0].vertices.shape[1]), dtype=dt) return positions, zeros_arr pos_v, all_v = border_positions(all, lambda x: x.nvertices, self.vertices.dtype) pos_f, all_f = border_positions(all, lambda x: x.nfaces, self.faces.dtype) for i in xrange(n): all_v[pos_v[i]:pos_v[i + 1], :] = all[i].vertices all_f[pos_f[i]:pos_f[i + 1], :] = all[i].faces + pos_v[i] return Surface(v=all_v, f=all_f) def split_by_connected_components(self): '''Splits a surface by its connected components Returns ------- splits: list of surf.Surface A list of all surfaces that make up the original surface, split when they are not connected to each other. (If all nodes in the original surface are connected then a list is returned with a single surface that is identical to the input). The output is sorted by the number of vertices. ''' components = self.connected_components() n2f = self.node2faces n = len(components) splits = [] face_mask = np.zeros((self.nfaces,), dtype=np.False_) for i, component in enumerate(components): face_mask[:] = False node_idxs = np.asarray(list(component)) for node_idx in node_idxs: face_mask[n2f[node_idx]] = True nodes = self.vertices[node_idxs, :] face_idxs = np.nonzero(face_mask)[0] unq, unq_inv = np.unique(self.faces[face_idxs], False, True) faces = np.reshape(unq_inv, (-1, 3)) s = Surface(nodes, faces) splits.append(s) splits.sort(key=lambda x: x.nvertices) return splits @property def vertices(self): ''' Returns ------- vertices: numpy.ndarray (int) Px3 coordinates for P vertices ''' v = self._v.view() v.flags.writeable = False return v @property def faces(self): ''' Returns ------- faces: numpy.ndarray (float) Qx3 coordinates for Q vertices ''' f = self._f.view() f.flags.writeable = False return f @property def nvertices(self): ''' Returns ------- nvertices: int Number of vertices ''' return self._nv @property def nfaces(self): ''' Returns ------- nfaces: int Number of faces ''' return self._nf def map_to_high_resolution_surf_slow(self, highres, epsilon=.001, accept_only_icosahedron=False): ''' Finds a mapping to a higher resolution (denser) surface. A typical use case is mappings between surfaces generated by MapIcosahedron, where the lower resolution surface defines centers in a searchlight whereas the higher resolution surfaces is used to delineate the grey matter for voxel selection. Unlike the function named "map_to_high_resolution_surf", this function is both slow and exact---and is actually used in case the former function does not find a solution. Parameters ---------- highres: surf.Surface high resolution surface epsilon: float maximum margin (distance) between nodes mapped from low to high resolution surface accept_only_icosahedron: bool if True, then this function raises an error if the number of nodes does not match those which would be expected from MapIcosahedorn. Returns ------- low2high: dict mapping so that low2high[i]==j means that node i in the current (low-resolution) surface is mapped to node j in the highres surface. ''' nx = self.nvertices ny = highres.nvertices if accept_only_icosahedron: def getld(n): # a mapicosahedron surface with LD linear divisions has # N=10*LD^2+2 nodes ld = ((nx - 2) / 10) ** 0.5 if ld != int(ld): raise ValueError( "Not from mapicosahedron with %d nodes" % n) return int(ld) ldx, ldy = map(getld, (nx, ny)) if ldy % ldx != 0: raise ValueError("ico linear divisions for high res surface (%d)" "should be multiple of that for low res surface (%d)", (ldy, ldx)) mapping = dict() x = self.vertices y = highres.vertices # shortcut in case the surfaces are the same # if this fails, then we just continue normally if self.same_topology(highres): d = np.sum((x - y) ** 2, axis=1) ** .5 if all(d[np.logical_not(np.isnan(d))] < epsilon): for i in xrange(nx): mapping[i] = i return mapping if nx > ny: raise ValueError( "Other surface has fewer nodes (%d) than this one (%d)" % (nx, ny)) for i in xrange(nx): ds = np.sum((x[i, :] - y) ** 2, axis=1) minpos = np.argmin(ds) mind = ds[minpos] ** .5 if epsilon is not None and mind > epsilon: raise ValueError( "Not found near node for node %i (min distance %f > %f)" % (i, mind, epsilon)) mapping[i] = minpos return mapping def coordinates_to_box_indices(self, box_size, min_coord=None, master=None): ''''Boxes' coordinates into triples Parameters ---------- box_sizes: min_coord: triple or ndarray Minimum coordinates; maps to (0,0,0). If omitted, it defaults to the mininum coordinates in this surface. max_coord: triple or ndarray Minimum coordinates; maps to (nboxes[0]-1,nboxes[1]-1,nboxes[2]-1)). If omitted, it defaults to the maximum coordinates in this surface. master: Surface.surf (default: None) If provided, then min_coord and max_coord are taken from master. Returns ------- boxes_indices: np.ndarray of float Array of size Px3, where P is the number of vertices ''' box_sizes = np.asarray([box_size, box_size, box_size]).ravel() box_sizes = np.reshape(box_sizes, (1, 3)) if master is not None: if min_coord: raise ValueError('Cannot have both {min,max}_coord and master') c = master.vertices else: c = self.vertices if min_coord is None: min_coord = np.min(c, 0) else: min_coord = np.asarray(min_coord).ravel() return (self.vertices - min_coord) / box_sizes def map_to_high_resolution_surf(self, highres, epsilon=.001, accept_only_icosahedron=False): ''' Finds a mapping to a higher resolution (denser) surface. A typical use case is mappings between surfaces generated by MapIcosahedron, where the lower resolution surface defines centers in a searchlight whereas the higher resolution surfaces is used to delineate the grey matter for voxel selection. This function implements an optimization which in most cases yields solutions much faster than map_to_high_resolution_surf_exact, but may fail to find the correct solution for larger values of epsilon. Parameters ---------- highres: surf.Surface high resolution surface epsilon: float maximum margin (distance) between nodes mapped from low to high resolution surface. Default None, which implies .001. accept_only_icosahedron: bool if True, then this function raises an error if the number of nodes does not match those which would be expected from MapIcosahedorn. Returns ------- low2high: dict mapping so that low2high[i]==j means that node i in the current (low-resolution) surface is mapped to node j in the highres surface. ''' nx = self.nvertices ny = highres.nvertices if accept_only_icosahedron: def getld(n): # a mapicosahedron surface with LD linear divisions has # N=10*LD^2+2 nodes ld = ((nx - 2) / 10) ** 0.5 if ld != int(ld): raise ValueError( "Not from mapicosahedron with %d nodes" % n) return int(ld) ldx, ldy = map(getld, (nx, ny)) if ldy % ldx != 0: raise ValueError("ico linear divisions for high res surface (%d)" "should be multiple of that for low res surface (%d)", (ldy, ldx)) mapping = dict() x = self.vertices y = highres.vertices # shortcut in case the surfaces are the same # if this fails, then we just continue normally if self.same_topology(highres): d = np.sum((x - y) ** 2, axis=1) ** .5 if all(d[np.logical_not(np.isnan(d))] < epsilon): for i in xrange(nx): mapping[i] = i return mapping if nx > ny: raise ValueError("Other surface has fewer nodes (%d) than " "this one (%d)" % (nx, ny)) # use a fast approach # slice up the high and low res in smaller boxes # and index them, so that when finding the nearest coordinates # it only requires to consider a limited number of nodes n_boxes = 20 box_size = max(np.max(x, 0) - np.min(x, 0)) / n_boxes x_boxed = self.coordinates_to_box_indices(box_size, master=highres) + .5 y_boxed = highres.coordinates_to_box_indices(box_size) + .5 # get indices of nodes that are very near a box boundary delta = epsilon / box_size on_borders = np.nonzero(np.logical_or( \ np.floor(y_boxed + delta) - np.floor(y_boxed) > 0, np.floor(y_boxed) - np.floor(y_boxed - delta) > 0))[0] # on_borders may have duplicates - so get rid of those. msk = np.zeros((ny,), dtype=np.int) msk[on_borders] = 1 on_borders = np.nonzero(msk)[0] # convert to tuples with integers for indexing # (tuples are hashable so can be used as keys in dictionary) x_tuples = map(tuple, np.asarray(x_boxed, dtype=np.int)) y_tuples = map(tuple, np.asarray(y_boxed, dtype=np.int)) # maps box indices in low-resolution surface to indices # of potentially nearby nodes in highres surface x_tuple2near_indices = dict() # add border nodes to all low-res surface # this is a bit inefficient # TODO optimize to consider neighboorhood for x_tuple in x_tuples: x_tuple2near_indices[x_tuple] = list(on_borders) # for non-border nodes in high-res surface, add them to # a single box for i, y_tuple in enumerate(y_tuples): if i in on_borders: continue # because it was added above if not y_tuple in x_tuple2near_indices: x_tuple2near_indices[y_tuple] = list() x_tuple2near_indices[y_tuple].append(i) # it now holds that for every node i in low-res surface (which is # identified by t=x_tuples[i]), there is no node j in the high-res surface # within distance epsilon for which j in x_tuple2near_indices[t] for i, x_tuple in enumerate(x_tuples): i_xyz = x[i, :] if np.any(np.isnan(i_xyz)): continue idxs = np.asarray(x_tuple2near_indices[x_tuple]) ds = np.sum((x[i, :] - y[idxs, :]) ** 2, axis=1) not_nan_idxs = np.nonzero(np.logical_not(np.isnan(ds)))[0] if len(not_nan_idxs) == 0: raise ValueError("Empty sequence: is center %d (%r)" " illegal?" % (i, (x[i],))) minpos = not_nan_idxs[np.argmin(ds[not_nan_idxs])] mind = ds[minpos] ** .5 if epsilon is not None and not (mind < epsilon): raise ValueError("Not found for node %i: %s > %s" % (i, mind, epsilon)) mapping[i] = idxs[minpos] return mapping def vonoroi_map_to_high_resolution_surf(self, highres_surf, highres_indices=None, epsilon=.001, accept_only_icosahedron=False): ''' Computes a Vonoroi mapping for the current (low-res) surface Parameters ---------- highres_surf: Surface High-resolution surface. highres_indices: np.ndarray List of indices in high-res surface that have to be mapped. epsilon: float maximum margin (distance) between nodes mapped from low to high resolution surface. Default None, which implies .001. accept_only_icosahedron: bool if True, then this function raises an error if the number of nodes does not match those which would be expected from MapIcosahedorn. Returns ------- high2high_in_low: dict A mapping so that high2high_in_low[high_idx]=(high_in_low_idx,d) means that the node on the high-res surface indexed by high_idx is nearest (in a Dijsktra distance sense) distance d to the node on the high-res surface high_in_low_idx that has a corresponding node on the low-res surface ''' # the set of indidces that will serve as keys in high2high_in_low if highres_indices is None: highres_indices = np.arange(highres_surf.nvertices) highres_indices = set(highres_indices) low2high = self.map_to_high_resolution_surf(highres_surf, epsilon, accept_only_icosahedron) # reverse mapping, only containing nodes that are both in # highres_indices and have a partner in self (lowres) high2low = dict((v, k) for k, v in low2high.iteritems() if v in highres_indices) # node indices in high-res surface that have a mapping # and thus are acceptable highres_center_set = set(high2low) # starting value for radius radius = np.mean(self.average_node_edge_length) max_radius = radius * 10000. # set of node indices of low-res surface lowres_node_set = set(xrange(self.nvertices)) # space for output high2high_in_low = dict() # continue increasing radius until all high-res nodes # have been mapped to a low-res node while set(high2high_in_low) != highres_indices: for highres_index in highres_indices: if highres_index in high2high_in_low: # already has a low-res node mapped to it continue # compute distances in high-res surface ds = highres_surf.dijkstra_distance(highres_index, radius) common = set.intersection(set(ds), highres_center_set) if len(common): # keep only distances to allowed nodes small_ds = dict( (k, v) for k, v in ds.iteritems() if k in common) # find nearest node nearest_node_highres = min(small_ds, key=small_ds.get) d = small_ds[nearest_node_highres] # store the result high2high_in_low[highres_index] = (nearest_node_highres, d) radius *= 2 if radius > max_radius: # safety mechanism to avoid endless loop raise RuntimeError("Radius increased to %d - too big" % radius) return high2high_in_low @property def face_areas(self): if not hasattr(self, '_face_areas'): f = self.faces v = self.vertices # consider three sides of each triangle a = v[f[:, 0]] b = v[f[:, 1]] c = v[f[:, 2]] # vectors of two sides ab = a - b ac = a - c # area (from wikipedia) f2a = .5 * np.sqrt(np.sum(ab * ab, 1) * np.sum(ac * ac, 1) - np.sum(ab * ac, 1) ** 2) vw = f2a.view() vw.flags.writeable = False self._face_areas = vw return self._face_areas @property def node_areas(self): if not hasattr(self, '_node_areas'): f2a = self.face_areas # area is one third of sum of faces that contain the node n2a = np.zeros((self.nvertices,)) for v, fs in self.node2faces.iteritems(): n2a[v] = sum(f2a[fs]) / 3. vw = n2a.view() vw.flags.writeable = False self._node_areas = vw return self._node_areas @property def face_normals(self): if not hasattr(self, '_face_normals'): f = self.faces v = self.vertices # consider three sides of each triangle a = v[f[:, 0]] b = v[f[:, 1]] c = v[f[:, 2]] # vectors of two sides ab = a - b ac = a - c abXac = np.cross(ab, ac) n = normalized(abXac) vw = n.view() vw.flags.writeable = False self._face_normals = vw return self._face_normals @property def node_normals(self): if not hasattr(self, '_node_normals'): f = self.faces v = self.vertices n = self.nfaces f_nrm = self.face_normals v_sum = np.zeros(v.shape, dtype=v.dtype) for i in xrange(3): for j in xrange(n): v_sum[f[j, i]] += f_nrm[j] v_nrm = normalized(v_sum) vw = v_nrm.view() vw.flags.writeable = False self._node_normals = vw return self._node_normals @property def nanmean_face_normal(self): face_normals = self.face_normals nan_msk = np.any(np.isnan(face_normals), axis=1) return np.mean(face_normals[np.logical_not(nan_msk), :], axis=0) def connected_components(self): nv = self.nvertices components = [] visited = set() nbrs = self.neighbors for i in xrange(nv): if i in visited: continue component = set([i]) components.append(component) nbr = nbrs[i] candidates = set(nbr) visited.add(i) while candidates: candidate = candidates.pop() component.add(candidate) visited.add(candidate) nbr = nbrs[candidate] for n in nbr: if not n in visited: candidates.add(n) return components def connected_components_slow(self): f, nv, nf = self.faces, self.nvertices, self.nfaces node2component = dict() def index_component(x): if not x in node2component: return x, None k, v = x, node2component[x] while not type(v) is set: k, v = v, node2component[v] return k, v for i in xrange(nf): p, q, r = f[i] pk, pv = index_component(p) qk, qv = index_component(q) rk, rv = index_component(r) if pv is None: if qv is None: if rv is None: node2component[p] = set([p, q, r]) node2component[q] = node2component[r] = p else: rv.add(p) rv.add(q) node2component[p] = node2component[q] = rk else: if rv is None: qv.add(p) qv.add(r) node2component[p] = node2component[r] = qk else: qv.add(p) node2component[p] = qk if qk != rk: qv.update(rv) node2component[rk] = qk else: if qv is None: if rv is None: pv.add(q) pv.add(r) node2component[q] = node2component[r] = pk else: if pk != rk: pv.update(rv) node2component[rk] = pk pv.add(q) node2component[q] = pk else: if rv is None: if pk != qk: pv.update(qv) node2component[qk] = pk pv.add(r) node2component[r] = pk else: if pk != qk: pv.update(qv) node2component[qk] = pk if pk != rk: if rk != qk: pv.update(rv) node2component[rk] = pk components = list() for node in xrange(nv): v = node2component[node] if type(v) is set: components.append(v) return components def write(self, fn): write(fn, self) def reposition_hemisphere_pairs(surf_left, surf_right, facing_side, min_distance=10.): '''moves and rotates pairs of hemispheres so that they are facing each other on one side, good for visualization. It is assumed that the input surfaces were generated by FreeSurfer's recon-all. Parameters ---------- surf_left: surf.Surface surface of left hemisphere surf_right: surf.Surface surface of right hemisphere facing_side: str determines on which sides the surfaces should be facing each other. 'm'=medial,'i'=inferior, 's'=superior, 'a'=anterior,'p'=posterior ''' facing_side = facing_side[0].lower() mn, mx = np.min, np.max # min=-1, max=1 side2dimsigns = dict(m=(0, -1), i=(1, 1), s=(1, -1), a=(2, 1), p=(2, -1)) dim, rotatesign = side2dimsigns[facing_side] if dim == 0: rotate_axis = None else: rotate_axis = dim # 1+((dim+1) % 2) rotate_angle = 90 surfs = [surf_left, surf_right] nsurfs = len(surfs) hemisigns = [1, -1] if rotate_axis is not None: theta = [0] * 3 for i in xrange(nsurfs): theta[rotate_axis] = rotate_angle * hemisigns[i] * rotatesign surfs[i] = surfs[i].rotate(theta, unit='deg') for i in xrange(nsurfs): hemisign = hemisigns[i] sign = rotatesign * hemisign coords = surfs[i].vertices xtreme = np.min(coords[:, 0] * -hemisign) # sometimes the surfaces are not properly aligned along x and y # so fix it by moving by center of mass values along x and y delta = -np.reshape(surfs[i].center_of_mass, (1, 3)) delta[0, 0] = hemisign * (xtreme - min_distance * .5) surfs[i] = surfs[i] + delta # make an implicit copy return tuple(surfs) def get_sphere_left_right_mapping(surf_left, surf_right, eps=.001): '''finds the mapping from left to right hemisphere and vice versa (the mapping is symmetric) this only works on sphere.reg.asc files made with AFNI/SUMA's mapicosehedron''' if not surf_left.same_topology(surf_right): raise ValueError('topology mismatch') nv = surf_left.nvertices # to swap right surface along x-axis (i.e. mirror along x=0 plane) swapLR = np.array([[-1, 1, 1]]) vL, vR = surf_left.vertices, surf_right.vertices * swapLR nL, nR = surf_left.neighbors, surf_right.neighbors # flip along x-axis # vR = vR * np.asarray([[-1., 1., 1.]]) def find_nearest(src_coords, trgs_coords, eps=eps): # finds the index of the nearest node in trgs_coords to src_coords. # if the distance is more than eps, an exception is thrown d2 = np.sum((src_coords - trgs_coords) ** 2, 1) nearest = np.argmin(d2) if d2[nearest] > eps ** 2: raise ValueError('eps too big: %r > %r' % (d2[nearest] ** .5, eps)) return nearest # get a (random) starting point pivotL = 0 pivotR = find_nearest(vL[pivotL, :], vR) # mapping from left to right l2r = {pivotL: pivotR} to_visit = nL[pivotL].keys() # for each node (in the left hemispehre) still to visit, keep track of its # 'parent' to_visit2source = dict(zip(to_visit, [pivotL] * len(to_visit))) # invariants: # 1) if to_visit2source[v]==s, then s in l2r.keys() # 2) if to_visit2source[v]==s, then v in nL[s].keys() while to_visit2source: # find the corresponding node in right hemi for pivotL, # using sourceL as a neighbor which a corresponding node # on the other hemisphere is already known pivotL, sourceL = to_visit2source.popitem() # get the corresponding node of sourceL on the other hemisphere sourceR = l2r[sourceL] # of all the neighbors of sourceR, one of them should be # corresponding to pivotL nbr_surf_right = nR[sourceR].keys() nearestR = nbr_surf_right[find_nearest(vL[pivotL, :], vR[nbr_surf_right, :])] # store result l2r[pivotL] = nearestR # add new neighbors to to_visit2source; but not those that # have already a corresponding node on the other hemisphere for nbrL in nL[pivotL].keys(): if not nbrL in l2r: to_visit2source[nbrL] = pivotL # store values in an array - this is easier for indexing l2r_arr = np.zeros((nv,), dtype=np.int32) for p, q in l2r.iteritems(): l2r_arr[p] = q v_range = np.arange(nv) # final check: make sure it's a bijection if not np.all(l2r_arr[l2r_arr] == v_range): raise ValueError('Not found a bijection - this should not happen') return l2r_arr def normalized(v): '''Normalizes vectors Parameters ========== v: np.ndarray PxQ matrix for P vectors that are all Q-dimensional, or vector with Q elements Returns ======= n: np.ndarray P-valued vector with the norm for each row in the input (if the input is a matrix), or a scalar value of the norm of the input (if the input is a vector) ''' axis = len(v.shape) - 1 v_norm = np.sqrt(np.sum(v ** 2, axis)) v_norm = v_norm.reshape(v_norm.shape + (1,)) return v / v_norm def merge(*surfs): if not surfs: return None s0 = surfs[0] return s0.merge(*surfs[1:]) def generate_cube(): ''' Generates a cube with sides 2 centered at the origin. Returns ------- cube: surf.Surface A cube with 8 vertices at coordinates (+/-1.,+/-1.,+/-1.), and with 12 faces (two for each square side). ''' # map (0,1) to (-1.,1.) f = lambda x: float(x) * 2 - 1 # compute coordinates cs = [[f(i / (2 ** j) % 2) for j in xrange(3)] for i in xrange(8)] vs = np.asarray(cs) # manually set topology trias = [(0, 1, 3), (0, 3, 2), (1, 0, 5), (5, 0, 4), (3, 1, 5), (3, 5, 7), (3, 7, 6), (3, 6, 2), (2, 6, 0), (0, 6, 4), (5, 4, 6), (5, 6, 7)] fs = np.asarray(trias, dtype=np.int) return Surface(vs, fs) def generate_sphere(density=10): ''' Generates a sphere-like surface with unit radius centered at the origin. Parameters ---------- d: int (default: 10) Level of detail Returns ------- sphere: surf.Surface A sphere with d**2+2 vertices and 2*d**2 faces. Seen as the planet Earth, node 0 and 1 correspond to the north and south poles. The remaining d**2 vertices are in d circles of latitute, each with d vertices in them. ''' hsteps = density # 'horizontal' steps (in each circle of latitude) vsteps = density # 'vertical' steps (number of circles of latitude, # excluding north and south poles) vs = [(0., 0., 1.), (0., 0., -1)] # top and bottom nodes fs = [] # z values for each ring (excluding top and bottom), equally spaced zs = [-1. + 2 * (1. / (vsteps + 1)) * (i + 1) for i in xrange(vsteps)] # angles for x and y alphastep = 2. * math.pi / hsteps alphas = [float(i) * alphastep for i in xrange(hsteps)] # generate coordinates, one ring at a time for vi in xrange(vsteps): z = math.sin(zs[vi] * math.pi * .5) # z coordinate scz = (1 - z * z) ** .5 # scaling for z alphaplus = vi * alphastep * .5 # each next ring is offset by half # of the length of a triangle # x and y coordinates xs = map(lambda x: scz * math.cos(x + alphaplus), alphas) ys = map(lambda x: scz * math.sin(x + alphaplus), alphas) vs.extend((xs[i], ys[i], z) for i in xrange(hsteps)) # set topology, one ring at a time top = [1] * hsteps cur = [2 + i for i in xrange(hsteps)] for vi in xrange(vsteps): bot = ([0] * hsteps if vi == vsteps - 1 else map(lambda x: x + hsteps, cur)) for hi in xrange(hsteps): left = cur[hi] right = cur[(hi + 1) % hsteps] fs.append((left, right, top[hi])) fs.append((right, left, bot[hi])) top, cur = cur, [bot[-1]] + bot[:-1] return Surface(np.array(vs), np.array(fs)) def generate_plane(x00, x01, x10, n01, n10): ''' Generates a plane. Parameters ---------- x00: np.array with 3 values origin x01: np.array with 3 values vector indicating first direction of plane x10: np.array with 3 values vector indicating second direction of plane n01: int number of points in first direction n10: int number of points in second direction Returns ------- surf.Surface surface with n01*n10 nodes and (n01-1)*(n10-1)*2 faces. The (i,j)-th point is at coordinate x01+i*x01+j*x10 and is stored as the (i*n10+j)-th vertex. ''' def as_three_vec(v): a = np.reshape(np.asarray(v, dtype=np.float), (-1,)) if len(a) != 3: raise ValueError('expected three values for %r' % v) return a # ensure they are proper vectors x00, x01, x10 = map(as_three_vec, (x00, x01, x10)) vs = np.zeros((n01 * n10, 3)) fs = np.zeros((2 * (n01 - 1) * (n10 - 1), 3), dtype=np.int) for i in xrange(n01): for j in xrange(n10): vpos = i * n10 + j vs[vpos, :] = x00 + i * x01 + j * x10 if i < n01 - 1 and j < n10 - 1: # not at upper borders # make a square pqrs from two triangles p = vpos q = vpos + 1 r = vpos + n10 s = r + 1 fpos = (i * (n10 - 1) + j) * 2 fs[fpos, :] = [p, q, r] fs[fpos + 1, :] = [s, r, q] return Surface(vs, fs) def generate_bar(start, stop, radius, poly=10): '''Generates a bar-like surface Parameters ---------- start: np.ndarray 3-elemtent vector indicating top part of the bar stop: np.ndarray 3-elemtent vector indicating bottom side of the bar radius: float radius of the bar poly: int the top and bottom part will be a regular polygon. Returns ------- bar: surf.Surface A surface with poly*2+2 vertices and poly*4 faces Example ------- generate_bar((0,0,0),(0,0,177.6),14.1,4) This generates a surface resembling the new One World Trade center, New York ''' start = np.asarray(start) stop = np.asarray(stop) nv = poly * 2 + 2 delta = start - stop delta_n = delta / np.sqrt(np.sum(delta ** 2)) # get a normal vector # make sure that we don't use zero values i = np.argsort(np.abs(delta_n)) vec_x = np.zeros(3) vec_x[i] = delta_n[i[[0, 2, 1]]] * np.asarray((0, -1, 1)) vec_y = np.cross(delta_n, vec_x) coords = np.zeros((nv, 3)) sc = 2 * np.pi / poly # angle scaling alpha = np.arange(poly) * sc # for top art beta = alpha + sc / 2 # first and last node are top and bottom. # nodes in between are the edges at top and bottom coords[0, :] = start dtop = np.cos(alpha)[np.newaxis].T * vec_x[np.newaxis] + \ np.sin(alpha)[np.newaxis].T * vec_y[np.newaxis] dbot = np.cos(beta)[np.newaxis].T * vec_x[np.newaxis] + \ np.sin(beta)[np.newaxis].T * vec_y[np.newaxis] coords[1:-1:2, :] = dtop * radius + start coords[2::2, :] = dbot * radius + stop coords[-1, :] = stop # set up faces nf = poly * 4 faces = np.zeros((nf, 3), dtype=np.int_) for i in xrange(poly): j = i * 2 faces[j + 0, :] = (j + 1, j + 2, j + 3) # top part faces[j + 1, :] = (j + 2, j + 4, j + 3) # side with top faces[j + 2 * poly, :] = (j + 3, 0, j + 1) # side with bottom faces[j + 2 * poly + 1, :] = (j + 2, nv - 1, j + 4) # bottom part nrm = lambda x: (x - 1) % (2 * poly) + 1 faces[:2 * poly, :] = nrm(faces[:2 * poly, :]) faces[2 * poly:, 0] = nrm(faces[2 * poly:, 0]) faces[2 * poly:, 2] = nrm(faces[2 * poly:, 2]) s = Surface(coords, faces) return s def vector_alignment_find_rotation(x, y): '''Find rotation matrix to align one vector with another Parameters ---------- x: np.ndarray vector with 3 elements that is to be aligned y: np.ndarray vector with 3 elements to which y is to be aligned Returns r: np.ndarray array of shape (3,3) so that the vector np.dot(r,x) points in the same direction as y, and has the same L2 norm as x ''' x = normalized(x) y = normalized(y) v = np.cross(x, y) if np.all(v == 0): r = np.eye(3) else: s = np.linalg.norm(v) c = np.dot(x, y.T) v_x = np.asarray([[0, -v[2], v[1]], [v[2], 0, -v[0]], [-v[1], v[0], 0]]) r = np.eye(3) + v_x + (np.dot(v_x, v_x)) * (1 - c) / s ** 2 return r def read(fn): '''General read function for surfaces Parameters ---------- fn: str Surface filename. The extension determines how the file is read as follows. '.asc', FreeSurfer ASCII format; '.coord'; Caret, '.gii', GIFTI; anything else: FreeSurfer geometry. Returns ------- surf_: surf.Surface Surface object ''' if fn.endswith('.asc'): from mvpa2.support.nibabel import surf_fs_asc return surf_fs_asc.read(fn) elif fn.endswith('.coord'): from mvpa2.support.nibabel import surf_caret return surf_caret.read(fn) elif fn.endswith('.gii'): # XXX require .surf.gii? Not for now - but may want to change from mvpa2.support.nibabel import surf_gifti return surf_gifti.read(fn) else: import nibabel.freesurfer.io as fsio coords, faces = fsio.read_geometry(fn) return Surface(coords, faces) def write(fn, s, overwrite=True): '''General write function for surfaces Parameters ---------- fn: str Surface filename. The extension determines how the file is written as follows. '.asc', FreeSurfer ASCII format; '.gii', GIFTI. Other formats are not supported. ''' if fn.endswith('.asc'): from mvpa2.support.nibabel import surf_fs_asc surf_fs_asc.write(fn, s, overwrite=overwrite) elif fn.endswith('.gii'): if not fn.endswith('.surf.gii'): raise ValueError("GIFTI output requires extension .surf.gii") from mvpa2.support.nibabel import surf_gifti surf_gifti.write(fn, s, overwrite=overwrite) else: raise ValueError("Not implemented (based on extension): %r" % fn) def from_any(s): if s is None or isinstance(s, Surface): return s elif isinstance(s, basestring): return read(s) elif type(s) is tuple and len(s) == 2: return Surface(s[0], s[1]) else: raise ValueError("Not understood: %r" % s) pymvpa2-2.6.4/mvpa2/support/nibabel/surf_caret.py000066400000000000000000000052361323370031300217660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Caret binary file support @author: nick ''' import numpy as np import os from os.path import join as pathjoin import datetime from mvpa2.support.nibabel import surf def _end_header_position(s): '''Finds where the caret header ends''' END_HEADER = 'EndHeader\n' end_header_pos = s.find(END_HEADER) return end_header_pos + len(END_HEADER) if end_header_pos > 0 else None def read_topology(fn): '''Reads Caret .topo file Parameters ---------- fn: str filename Returns ------- faces: np.ndarray Px3 array for P faces ''' with open(fn) as f: s = f.read() end_header_pos = _end_header_position(s) body = s[end_header_pos:] if body.startswith('tag-version'): body = body[body.find('\n') + 1:] nfaces = np.fromstring(body[:4], dtype='>i4') faces = np.fromstring(body[4:], dtype='>i4').reshape((-1, 3)) return faces def read(fn, topology_fn=None): '''Reads Caret .coord file and also (if it exists) the topology file Parameters ---------- fn: str filename of .coord file topology_fn: str or None filename of .topo file. If None then it is attempted to deduce this filename from the header in fn. Returns ------- s: surf.Surface Surface with the nodes as in fn, and the topology form topology_fn ''' with open(fn) as f: s = f.read() end_header_pos = _end_header_position(s) header = s[:end_header_pos] body = s[end_header_pos:] # read body vertices = np.fromstring(body[4:], dtype='>f4').reshape((-1, 3)) # see if we can find the topology faces = None if topology_fn is None: lines = header.split('\n') for line in lines: if line.startswith('topo_file'): topo_file = line[10:] topo_fn = pathjoin(os.path.split(fn)[0], topo_file) if os.path.exists(topo_fn): faces = read_topology(topo_fn) break else: faces = read_topology(topology_fn) if faces is None: # XXX print a warning? # For now no warning as the Surface.__init__ should print something faces = np.zeros((0, 3), dtype=np.int32) return surf.Surface(vertices, faces) pymvpa2-2.6.4/mvpa2/support/nibabel/surf_fs_asc.py000066400000000000000000000065001323370031300221210ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' Simple FreeSurfer ASCII surface file I/O functions Reads and writes surface anatomy files as understood by AFNI SUMA (and maybe other programs) The format for a surface with NV vertices and NF faces is: NV NF x_0 y_0 z_0 0 x_1 y_1 z_1 0 ... x_[NV-1] y_[NV-1] z_[NV-1] 0 f_00 f01 f02 0 f_10 f11 f12 0 ... f_[NF-1]0 f_[NF-1]1 f_[NF-1]2 0 where the (x,y,z) triples are coordinates and fi(p,q,r) are faces so that vertices with indices p, q and r form a single triangle Created on Feb 12, 2012 @author: nick ''' import numpy as np, os, datetime from mvpa2.support.nibabel import surf def read(fn): ''' Reads a AFNI SUMA ASCII surface Parameters ---------- fn : str Filename of ASCII surface file Returns ------- s : Surface a surf.Surface as defined in 'fn' ''' if not os.path.exists(fn): raise Exception("File not found: %s" % fn) with open(fn) as f: r = f.read().split("\n") row = 0 nv = nf = None # number of vertices and faces while True: line = r[row] row += 1 if line.startswith("#"): continue try: nvnf = line.split(" ") nv = int(nvnf[0]) nf = int(nvnf[1]) break except: continue if not nf: raise Exception("Not found in %s: number of nodes and faces" % fn) # helper function to get a numpy Cx3 ndarray def getrows(c, s): # c: number of rows, s is string with data vs = np.fromstring(s, count=4 * c, sep=" ") vx = np.reshape(vs, (c, 4)) return vx[:, :3] # coordinates should start at pos... v = getrows(nv, "\n".join(r[row:(row + nv)])) # and the faces just after those ffloat = getrows(nf, "\n".join(r[(row + nv):(row + nv + nf)])) f = ffloat.astype(int) return surf.Surface(v=v, f=f) def write(fn, surface, overwrite=False, comment=None): ''' Writes a AFNI SUMA ASCII surface Parameters ---------- surface: surface.Surface surface to be written fn : str Output filename of ASCII surface file overwrite : bool Whether to overwrite 'fn' if it exists comment : str Comments to add to 'fn' ''' if isinstance(surface, str) and isinstance(fn, surf.Surface): surface, fn = fn, surface if not overwrite and os.path.exists(fn): raise Exception("File already exists: %s" % fn) s = [] if comment is None: comment = '# Created %s' % str(datetime.datetime.now()) s.append(comment) nv, nf = surface.nvertices, surface.nfaces, v, f = surface.vertices, surface.faces # number of vertices and faces s.append('%d %d' % (nv, nf)) # add vertices and faces s.extend('%f %f %f 0' % (v[i, 0], v[i, 1], v[i, 2]) for i in xrange(nv)) s.extend('%d %d %d 0' % (f[i, 0], f[i, 1], f[i, 2]) for i in xrange(nf)) # write to file f = open(fn, 'w') f.write("\n".join(s)) f.close() pymvpa2-2.6.4/mvpa2/support/nibabel/surf_gifti.py000066400000000000000000000174551323370031300220000ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## ''' GIFTI surface functions (wrapper) using nibabel.gifti ''' from mvpa2.base import externals if externals.exists("nibabel", raise_=True): from nibabel.gifti import gifti, giftiio import numpy as np, os, re from mvpa2.support.nibabel import surf from mvpa2.misc.io import safe_write import io def _get_single_array(g, intent): ar = g.getArraysFromIntent(intent) n = len(ar) if n != 1: len_str = 'no' if n == 0 else '%d' % n raise ValueError('Found %s arrays matching %s, expected 1' % (len_str, intent)) return ar[0] def read(fn): '''Reads a GIFTI surface file Parameters ---------- fn: str Filename Returns ------- surf_: surf.Surface Surface Notes ----- Any meta-information stored in the GIFTI file is not present in surf_. ''' g = giftiio.read(fn) vertices = _get_single_array(g, 'NIFTI_INTENT_POINTSET').data faces = _get_single_array(g, 'NIFTI_INTENT_TRIANGLE').data return surf.Surface(vertices, faces) def filename2vertices_faces_metadata(fn): '''Attempts to get meta data based on the filename Parameters ---------- fn: str Filename Returns ------- meta: tuple Tuple with two gifti.GiftiMetaData objects for vertices and faces. If the filename contains exactly one of 'lh', 'rh', or 'mh' then it is assumed to be of left, right or merged hemispheres. If the filename contains exactly one of 'pial,'smoothwm', 'intermediate',''inflated','sphere','flat', then the geometric type is set ''' _, fn = os.path.split(fn) vertex_map = dict(AnatomicalStructurePrimary=dict( lh='CortexLeft', rh='CortexRight', mh='CortexRightLeft'), AnatomicalStructureSecondary=dict( pial='Pial', smoothwm='GrayWhite', intermediate='MidThickness'), GeometricType=dict( pial='Anatomical', smoothwm='Anatomical', intermediate='Anatomical', inflated='Inflated', sphere='Spherical', flat='Flat')) def just_one(dict_, fn=fn): vs = [v for k, v in dict_.iteritems() if k in fn] return vs[0] if len(vs) == 1 else None v_meta = [gifti.GiftiNVPairs('Name', fn)] for key, dict_ in vertex_map.iteritems(): v = just_one(dict_) if v is not None: v_meta.append(gifti.GiftiNVPairs(key, v)) f_meta = [gifti.GiftiNVPairs('Name', fn)] # XXX maybe also closed or open topology? that's a bit tricky though v = gifti.GiftiMetaData() v.data.extend(v_meta) f = gifti.GiftiMetaData() f.data.extend(f_meta) return v, f def to_gifti_image(s, add_indices=False, swap_LPI_RAI=False): ''' Converts a surface to nibabel's gifti format. Parameters ---------- s: surf Input surface add_indices: True or False (default: False) if True then indices of the nodes are added. Note: caret may not be able to read these swap_LPI_RAI: True or False (default: False) If True then the diagonal elements of the xform matrix are set to [-1,-1,1,1], otherwise to [1,1,1,1]. Returns ------- img: gifti.GiftiImage Surface representated as GiftiImage ''' vertices = gifti.GiftiDataArray(np.asarray(s.vertices, np.float32)) vertices.intent = gifti.intent_codes.field1['pointset'] vertices.datatype = 16 # this is what gifti likes if add_indices: nvertices = s.nvertices indices = gifti.GiftiDataArray(np.asarray(np.arange(nvertices), np.int32)) indices.datatype = 8 # this is what gifti likes indices.coordsys = None # otherwise SUMA might complain indices.intent = gifti.intent_codes.field1['node index'] faces = gifti.GiftiDataArray(np.asarray(s.faces, np.int32)) faces.intent = gifti.intent_codes.field1['triangle'] faces.datatype = 8 # this is what gifti likes faces.coordsys = None # otherwise SUMA might complain # set some fields common to faces and vertices for arr in (vertices, faces) + ((indices,) if add_indices else ()): arr.ind_ord = 1 arr.encoding = 3 arr.endian = 'LittleEndian' # XXX this does not work (see below) arr.dims = list(arr.data.shape) if externals.versions['nibabel'] < '2.1': # in later versions it is a computed property arr.num_dim = len(arr.dims) # make the image meta = gifti.GiftiMetaData() labeltable = gifti.GiftiLabelTable() img = gifti.GiftiImage(meta=meta, labeltable=labeltable) if swap_LPI_RAI: xform = np.asarray(vertices.coordsys.xform) xform[0, 0] = -1 xform[1, 1] = -1 vertices.coordsys.xform = xform if add_indices: img.add_gifti_data_array(indices) img.add_gifti_data_array(vertices) img.add_gifti_data_array(faces) return img def to_xml(img, meta_fn_hint=None): '''Converts to XML Parameters ---------- img: gifti.GiftiImage or surf Input surface meta_fn_hint: str or None If not None, it should be a string (possibly a filename that describes what kind of surface this is. See filename2vertices_faces_metadata. Returns ------- xml: bytearray Representation of input surface in XML format ''' if isinstance(img, surf.Surface): img = to_gifti_image(img) if meta_fn_hint is not None: vertices = _get_single_array(img, 'pointset') faces = _get_single_array(img, 'triangle') vertices.meta, faces.meta = \ filename2vertices_faces_metadata(meta_fn_hint) # XXX FIXME from here on it's a bit of a hack # The to_xml() method adds newlines in ... segments # and also writes GIFTI_ENDIAN_LITTLE instead of LittleEndian. # For now we just replace these offending parts # TODO: report issue to nibabel developers xml = img.to_xml().encode('utf-8') # split by data segements. Odd elements are data, even are surroudning sps = re.split(b'([<]Data[>][^<]*?[<][/]Data[>])', xml, re.DOTALL) # fix the LittleEndian issue for even segments and newline for odd ones fix_odd_even = lambda x, i: x.replace(b'\n', b'') \ if i % 2 == 1 \ else x.replace(b'Endian="GIFTI_ENDIAN_LITTLE"', b'Endian="LittleEndian"') xml_fixed = b''.join(fix_odd_even(sp, i) for i, sp in enumerate(sps)) return xml_fixed def write(fn, s, overwrite=True): '''Writes a GIFTI surface file Parameters ---------- fn: str Filename s: surf.Surface Surface overwrite: bool (default: False) If set to False an error is raised if the file exists ''' if not overwrite and os.path.exists(fn): raise ValueError("Already exists: %s" % fn) EXT = '.surf.gii' if not fn.endswith(EXT): raise ValueError("Filename %s does not end with required" " extension %s" % (fn, EXT)) xml = to_xml(s, fn) safe_write(fn, xml) pymvpa2-2.6.4/mvpa2/support/nipy/000077500000000000000000000000001323370031300166345ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/nipy/__init__.py000066400000000000000000000023671323370031300207550ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for some of NiPy functionality. Only a handful of functions was borrowed from NiPy until we could rely on NiPy presence. Every file borrowed from NiPy copied locally prefixed with _. support.nipy.__init__ is supposed to serve as a switch board either to import available NiPy version (if nipy is present and version/revision is good enough) or a local copy from _'ed file. """ __docformat__ = 'restructuredtext' if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.support.nipy start') from mvpa2.base import externals # NiPy code requires scipy externals.exists('scipy', raise_=True) if externals.exists('nipy.neurospin'): # Import those interesting ones from nipy from nipy.neurospin.utils import emp_null else: import mvpa2.support._emp_null as emp_null __all__ = ['emp_null'] if __debug__: debug('INIT', 'mvpa2.support end') pymvpa2-2.6.4/mvpa2/support/pylab.py000066400000000000000000000024301323370031300173350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Import helper for pylab which would enforce setting of a backend """ __docformat__ = 'restructuredtext' import sys from mvpa2.base import externals __all__ = ['pl'] if externals.exists('pylab', raise_=True): # Assure that we have correct backend externals._set_matplotlib_backend() if sys.version_info[:2] >= (2, 5): # enforce absolute import pl = __import__('pylab', globals(), locals(), [], 0) else: # little trick to be able to import 'griddata' package (which # has same name) oldname = __name__ # crazy name with close to zero possibility to cause whatever __name__ = 'iaugf9zrkjsasdf1' try: import pylab as pl # restore old settings __name__ = oldname except ImportError: # restore old settings __name__ = oldname raise pymvpa2-2.6.4/mvpa2/support/rpy2_addons.py000066400000000000000000000022601323370031300204530ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Misc support utility for making us compatible with liquid RPy2 atm """ __docformat__ = 'restructuredtext' from mvpa2.base.externals import exists, versions #if __debug__: # from mvpa2.base import debug __all__ = [] if exists('rpy2', raise_=True): __all__ = [ 'Rrx', 'Rrx2' ] if versions['rpy2'] >= '2.1.0beta': def Rrx(self, x): return self.rx(x) def Rrx2(self, x): return self.rx2(x) elif versions['rpy2'] >= '2.0': def Rrx(self, x): return self.r[x] def Rrx2(self, x): return self.r[x][0] else: raise ValueError, \ "We do not have support for rpy2 version %(rpy2)s" % versions Rrx.__doc__ = "Access delegator for R function [" Rrx2.__doc__ = "Access delegator for R function [[" pymvpa2-2.6.4/mvpa2/support/scipy/000077500000000000000000000000001323370031300170045ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/support/scipy/__init__.py000066400000000000000000000011731323370031300211170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Majority of the code in this submodule is borrowed from SciPy. # SciPy: Copyright 1999- by various SciPy developers # License BSD-3-clause # # For the rest of the code -- see COPYING file distributed along # with the PyMVPA package for the copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Some functionality which was fixed in later versions of SciPy.""" pymvpa2-2.6.4/mvpa2/support/scipy/_arraytools.py000066400000000000000000000126031323370031300217160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See __init__.py for copyright/license information # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Borrowed code from scipy.signal._arraytools (from v0.4.3-9297-gc08dd62) Functions for acting on a axis of an array. """ from __future__ import division, print_function, absolute_import import numpy as np def axis_slice(a, start=None, stop=None, step=None, axis=-1): """Take a slice along axis 'axis' from 'a'. Parameters ---------- a : numpy.ndarray The array to be sliced. start, stop, step : int or None The slice parameters. axis : int The axis of `a` to be sliced. Examples -------- >>> a = array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> axis_slice(a, start=0, stop=1, axis=1) array([[1], [4], [7]]) >>> axis_slice(a, start=1, axis=0) array([[4, 5, 6], [7, 8, 9]]) Notes ----- The keyword arguments start, stop and step are used by calling slice(start, stop, step). This implies axis_slice() does not handle its arguments the exacty the same as indexing. To select a single index k, for example, use axis_slice(a, start=k, stop=k+1) In this case, the length of the axis 'axis' in the result will be 1; the trivial dimension is not removed. (Use numpy.squeeze() to remove trivial axes.) """ a_slice = [slice(None)] * a.ndim a_slice[axis] = slice(start, stop, step) b = a[a_slice] return b def axis_reverse(a, axis=-1): """Reverse the 1-d slices of `a` along axis `axis`. Returns axis_slice(a, step=-1, axis=axis). """ return axis_slice(a, step=-1, axis=axis) def odd_ext(x, n, axis=-1): """Generate a new ndarray by making an odd extension of x along an axis. Parameters ---------- x : ndarray The array to be extended. n : int The number of elements by which to extend x at each end of the axis. axis : int The axis along which to extend x. Default is -1. Examples -------- >>> a = array([[1.0,2.0,3.0,4.0,5.0], [0.0, 1.0, 4.0, 9.0, 16.0]]) >>> _odd_ext(a, 2) array([[-1., 0., 1., 2., 3., 4., 5., 6., 7.], [-4., -1, 0., 1., 4., 9., 16., 23., 28.]]) """ if n < 1: return x if n > x.shape[axis] - 1: raise ValueError(("The extension length n (%d) is too big. " + "It must not exceed x.shape[axis]-1, which is %d.") % (n, x.shape[axis] - 1)) left_end = axis_slice(x, start=0, stop=1, axis=axis) left_ext = axis_slice(x, start=n, stop=0, step=-1, axis=axis) right_end = axis_slice(x, start=-1, axis=axis) right_ext = axis_slice(x, start=-2, stop=-(n + 2), step=-1, axis=axis) ext = np.concatenate((2 * left_end - left_ext, x, 2 * right_end - right_ext), axis=axis) return ext def even_ext(x, n, axis=-1): """Create an ndarray that is an even extension of x along an axis. Parameters ---------- x : ndarray The array to be extended. n : int The number of elements by which to extend x at each end of the axis. axis : int The axis along which to extend x. Default is -1. Examples -------- >>> a = array([[1.0,2.0,3.0,4.0,5.0], [0.0, 1.0, 4.0, 9.0, 16.0]]) >>> _even_ext(a, 2) array([[ 3., 2., 1., 2., 3., 4., 5., 4., 3.], [ 4., 1., 0., 1., 4., 9., 16., 9., 4.]]) """ if n < 1: return x if n > x.shape[axis] - 1: raise ValueError(("The extension length n (%d) is too big. " + "It must not exceed x.shape[axis]-1, which is %d.") % (n, x.shape[axis] - 1)) left_ext = axis_slice(x, start=n, stop=0, step=-1, axis=axis) right_ext = axis_slice(x, start=-2, stop=-(n + 2), step=-1, axis=axis) ext = np.concatenate((left_ext, x, right_ext), axis=axis) return ext def const_ext(x, n, axis=-1): """Create an ndarray that is a constant extension of x along an axis. The extension repeats the values at the first and last element of the axis. Parameters ---------- x : ndarray The array to be extended. n : int The number of elements by which to extend x at each end of the axis. axis : int The axis along which to extend x. Default is -1. Examples -------- >>> a = array([[1.0,2.0,3.0,4.0,5.0], [0.0, 1.0, 4.0, 9.0, 16.0]]) >>> _const_ext(a, 2) array([[ 1., 1., 1., 2., 3., 4., 5., 5., 5.], [ 0., 0., 0., 1., 4., 9., 16., 16., 16.]]) """ if n < 1: return x left_end = axis_slice(x, start=0, stop=1, axis=axis) ones_shape = [1] * x.ndim ones_shape[axis] = n ones = np.ones(ones_shape, dtype=x.dtype) left_ext = ones * left_end right_end = axis_slice(x, start=-1, axis=axis) right_ext = ones * right_end ext = np.concatenate((left_ext, x, right_ext), axis=axis) return ext pymvpa2-2.6.4/mvpa2/support/scipy/signal.py000066400000000000000000000153271323370031300206430ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Some functionality which was fixed in later versions of SciPy -- signal processing""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals if externals.exists('scipy', raise_=True): if externals.versions['scipy'] >= '0.11': from scipy.signal import filtfilt else: if externals.versions['scipy'] >= '0.10': from scipy.signal._arraytools import axis_reverse, axis_slice, odd_ext, const_ext else: from ._arraytools import axis_reverse, axis_slice, odd_ext, const_ext from scipy.signal import lfilter, lfilter_zi # Taken from scipy 0.11, all version before are broken see # https://bugs.debian.org/736185 def filtfilt(b, a, x, axis=-1, padtype='odd', padlen=None): """ A forward-backward filter. This function applies a linear filter twice, once forward and once backwards. The combined filter has linear phase. Before applying the filter, the function can pad the data along the given axis in one of three ways: odd, even or constant. The odd and even extensions have the corresponding symmetry about the end point of the data. The constant extension extends the data with the values at end points. On both the forward and backwards passes, the initial condition of the filter is found by using `lfilter_zi` and scaling it by the end point of the extended data. Parameters ---------- b : (N,) array_like The numerator coefficient vector of the filter. a : (N,) array_like The denominator coefficient vector of the filter. If a[0] is not 1, then both a and b are normalized by a[0]. x : array_like The array of data to be filtered. axis : int, optional The axis of `x` to which the filter is applied. Default is -1. padtype : str or None, optional Must be 'odd', 'even', 'constant', or None. This determines the type of extension to use for the padded signal to which the filter is applied. If `padtype` is None, no padding is used. The default is 'odd'. padlen : int or None, optional The number of elements by which to extend `x` at both ends of `axis` before applying the filter. This value must be less than `x.shape[axis]-1`. `padlen=0` implies no padding. The default value is 3*max(len(a),len(b)). Returns ------- y : ndarray The filtered output, an array of type numpy.float64 with the same shape as `x`. See Also -------- lfilter_zi, lfilter Examples -------- First we create a one second signal that is the sum of two pure sine waves, with frequencies 5 Hz and 250 Hz, sampled at 2000 Hz. >>> t = np.linspace(0, 1.0, 2001) >>> xlow = np.sin(2 * np.pi * 5 * t) >>> xhigh = np.sin(2 * np.pi * 250 * t) >>> x = xlow + xhigh Now create a lowpass Butterworth filter with a cutoff of 0.125 times the Nyquist rate, or 125 Hz, and apply it to x with filtfilt. The result should be approximately xlow, with no phase shift. >>> from scipy import signal >>> b, a = signal.butter(8, 0.125) >>> y = filtfilt(b, a, x, padlen=150) >>> print('%.5g' % np.abs(y - xlow).max()) 9.1086e-06 We get a fairly clean result for this artificial example because the odd extension is exact, and with the moderately long padding, the filter's transients have dissipated by the time the actual data is reached. In general, transient effects at the edges are unavoidable. """ if padtype not in ['even', 'odd', 'constant', None]: raise ValueError(("Unknown value '%s' given to padtype. padtype must " "be 'even', 'odd', 'constant', or None.") % padtype) b = np.asarray(b) a = np.asarray(a) x = np.asarray(x) ntaps = max(len(a), len(b)) if padtype is None: padlen = 0 if padlen is None: # Original padding; preserved for backwards compatibility. edge = ntaps * 3 else: edge = padlen # x's 'axis' dimension must be bigger than edge. if x.shape[axis] <= edge: raise ValueError("The length of the input vector x must be at least " "padlen, which is %d." % edge) if padtype is not None and edge > 0: # Make an extension of length `edge` at each # end of the input array. if padtype == 'even': ext = even_ext(x, edge, axis=axis) elif padtype == 'odd': ext = odd_ext(x, edge, axis=axis) else: ext = const_ext(x, edge, axis=axis) else: ext = x # Get the steady state of the filter's step response. zi = lfilter_zi(b, a) # Reshape zi and create x0 so that zi*x0 broadcasts # to the correct value for the 'zi' keyword argument # to lfilter. zi_shape = [1] * x.ndim zi_shape[axis] = zi.size zi = np.reshape(zi, zi_shape) x0 = axis_slice(ext, stop=1, axis=axis) # Forward filter. (y, zf) = lfilter(b, a, ext, axis=axis, zi=zi * x0) # Backward filter. # Create y0 so zi*y0 broadcasts appropriately. y0 = axis_slice(y, start=-1, axis=axis) (y, zf) = lfilter(b, a, axis_reverse(y, axis=axis), axis=axis, zi=zi * y0) # Reverse y. y = axis_reverse(y, axis=axis) if edge > 0: # Slice the actual signal from the extended signal. y = axis_slice(y, start=edge, stop=-edge, axis=axis) return y pymvpa2-2.6.4/mvpa2/support/scipy/stats.py000066400000000000000000000150361323370031300205210ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Fixer for rdist in scipy """ # For scipy import from __future__ import absolute_import __docformat__ = 'restructuredtext' from mvpa2.base import externals, warning, cfg if __debug__: from mvpa2.base import debug if externals.exists('scipy', raise_=True): import scipy import scipy.stats import scipy.stats as stats if not externals.exists('good scipy.stats.rdist') \ and externals.versions['scipy'] < '1.18.0': if __debug__: debug("EXT", "Fixing up scipy.stats.rdist") # Lets fix it up, future imports of scipy.stats should carry fixed # version, isn't python is \emph{evil} ;-) import numpy as np from scipy.stats.distributions import rv_continuous from scipy import special import scipy.integrate # NB: Following function is copied from scipy SVN rev.5236 # and fixed with pow -> np.power (thanks Josef!) # FIXME: PPF does not work. class rdist_gen(rv_continuous): def _pdf(self, x, c): return np.power((1.0-x*x),c/2.0-1) / special.beta(0.5,c/2.0) def _cdf_skip(self, x, c): #error inspecial.hyp2f1 for some values see tickets 758, 759 return 0.5 + x/special.beta(0.5,c/2.0)* \ special.hyp2f1(0.5,1.0-c/2.0,1.5,x*x) def _munp(self, n, c): return (1-(n % 2))*special.beta((n+1.0)/2,c/2.0) # Lets try to avoid at least some of the numerical problems by removing points # around edges rdist = rdist_gen(a=-1.0, b=1.0, name="rdist", longname="An R-distributed", shapes="c", extradoc=""" R-distribution rdist.pdf(x,c) = (1-x**2)**(c/2-1) / B(1/2, c/2) for -1 <= x <= 1, c > 0. """ ) # Fix up number of arguments for veccdf's vectorize # Sicne scipy 0.18.0 there is veccdf in rdist_gen if hasattr(rdist, 'veccdf') and (rdist.veccdf.nin == 1): if __debug__: debug("EXT", "Fixing up veccdf.nin to make 2 for rdist") rdist.veccdf.nin = 2 scipy.stats.distributions.rdist_gen = scipy.stats.rdist_gen = rdist_gen scipy.stats.distributions.rdist = scipy.stats.rdist = rdist try: # Retest externals.exists('good scipy.stats.rdist', force=True, raise_=True) except RuntimeError: warning("scipy.stats.rdist was not fixed with a monkey-patch. " "It remains broken") # Revert so if configuration stored, we know the true flow of things ;) cfg.set('externals', 'have good scipy.stats.rdist', 'no') if not externals.exists('good scipy.stats.rv_discrete.ppf'): # Local rebindings for ppf7 (7 is for the scipy version from # which code was borrowed) arr = np.asarray from scipy.stats.distributions import valarray, argsreduce from numpy import shape, place, any def ppf7(self,q,*args,**kwds): """ Percent point function (inverse of cdf) at q of the given RV Parameters ---------- q : array-like lower tail probability arg1, arg2, arg3,... : array-like The shape parameter(s) for the distribution (see docstring of the instance object for more information) loc : array-like, optional location parameter (default=0) Returns ------- k : array-like quantile corresponding to the lower tail probability, q. """ loc = kwds.get('loc') args, loc = self._rv_discrete__fix_loc(args, loc) q,loc = map(arr,(q,loc)) args = tuple(map(arr,args)) cond0 = self._argcheck(*args) & (loc == loc) cond1 = (q > 0) & (q < 1) cond2 = (q==1) & cond0 cond = cond0 & cond1 output = valarray(shape(cond),value=self.badvalue,typecode='d') #output type 'd' to handle nin and inf place(output,(q==0)*(cond==cond), self.a-1) place(output,cond2,self.b) if any(cond): goodargs = argsreduce(cond, *((q,)+args+(loc,))) loc, goodargs = goodargs[-1], goodargs[:-1] place(output,cond,self._ppf(*goodargs) + loc) if output.ndim == 0: return output[()] return output scipy.stats.distributions.rv_discrete.ppf = ppf7 try: externals.exists('good scipy.stats.rv_discrete.ppf', force=True, raise_=True) except RuntimeError: warning("rv_discrete.ppf was not fixed with a monkey-patch. " "It remains broken") cfg.set('externals', 'have good scipy.stats.rv_discrete.ppf', 'no') if externals.versions['scipy'] >= '0.8.0' and \ not externals.exists('good scipy.stats.rv_continuous._reduce_func(floc,fscale)'): if __debug__: debug("EXT", "Fixing up scipy.stats.rv_continuous._reduce_func") # Borrowed from scipy v0.4.3-5978-gce90df2 # Copyright: 2001, 2002 Enthought, Inc.; 2003-2012 SciPy developers # License: BSD-3 def _reduce_func_fixed(self, args, kwds): args = list(args) Nargs = len(args) fixedn = [] index = range(Nargs) names = ['f%d' % n for n in range(Nargs - 2)] + ['floc', 'fscale'] x0 = [] for n, key in zip(index, names): if key in kwds: fixedn.append(n) args[n] = kwds[key] else: x0.append(args[n]) if len(fixedn) == 0: func = self.nnlf restore = None else: if len(fixedn) == len(index): raise ValueError("All parameters fixed. There is nothing to optimize.") def restore(args, theta): # Replace with theta for all numbers not in fixedn # This allows the non-fixed values to vary, but # we still call self.nnlf with all parameters. i = 0 for n in range(Nargs): if n not in fixedn: args[n] = theta[i] i += 1 return args def func(theta, x): newtheta = restore(args[:], theta) return self.nnlf(newtheta, x) return x0, func, restore, args stats.rv_continuous._reduce_func = _reduce_func_fixed pymvpa2-2.6.4/mvpa2/support/utils.py000066400000000000000000000057361323370031300174020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Various utils of general utility """ __docformat__ = 'restructuredtext' import warnings from mvpa2.base import externals, warning, cfg if __debug__: from mvpa2.base import debug class deprecated(object): """Decorator to mark a function or class as deprecated. Issue a warning when the function is called/the class is instantiated and adds a warning to the docstring. The optional extra argument will be appended to the deprecation message and the docstring. Note: to use this with the default value for extra, put in an empty of parentheses: >>> from sklearn.utils import deprecated >>> deprecated() # doctest: +ELLIPSIS >>> @deprecated() ... def some_function(): pass """ # Taken from sklearn 0.10-branching-696-g19b5e33 # Copyright: 2007-2012, sklearn developers # License: BSD-3 # Adapted from http://wiki.python.org/moin/PythonDecoratorLibrary, # but with many changes. def __init__(self, extra=''): """ Parameters ---------- extra: string to be added to the deprecation messages """ self.extra = extra def __call__(self, obj): if isinstance(obj, type): return self._decorate_class(obj) else: return self._decorate_fun(obj) def _decorate_class(self, cls): msg = "Class %s is deprecated" % cls.__name__ if self.extra: msg += "; %s" % self.extra # FIXME: we should probably reset __new__ for full generality init = cls.__init__ def wrapped(*args, **kwargs): warnings.warn(msg, category=DeprecationWarning) return init(*args, **kwargs) cls.__init__ = wrapped wrapped.__name__ = '__init__' wrapped.__doc__ = self._update_doc(init.__doc__) wrapped.deprecated_original = init return cls def _decorate_fun(self, fun): """Decorate function fun""" msg = "Function %s is deprecated" % fun.__name__ if self.extra: msg += "; %s" % self.extra def wrapped(*args, **kwargs): warnings.warn(msg, category=DeprecationWarning) return fun(*args, **kwargs) wrapped.__name__ = fun.__name__ wrapped.__dict__ = fun.__dict__ wrapped.__doc__ = self._update_doc(fun.__doc__) return wrapped def _update_doc(self, olddoc): newdoc = "DEPRECATED" if self.extra: newdoc = "%s: %s" % (newdoc, self.extra) if olddoc: newdoc = "%s\n\n%s" % (newdoc, olddoc) return newdoc pymvpa2-2.6.4/mvpa2/testing/000077500000000000000000000000001323370031300156165ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/testing/__init__.py000066400000000000000000000017271323370031300177360ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helpers to unify/facilitate unittesting within PyMVPA """ __docformat__ = 'restructuredtext' import numpy as np # we barely can step somewhere without it from mvpa2.base import externals from mvpa2 import pymvpa_dataroot if __debug__: from mvpa2.base import debug debug('INIT', 'mvpa2.testing') from mvpa2.testing.tools import * if __debug__: from mvpa2.base import debug _ENFORCE_CA_ENABLED = 'ENFORCE_CA_ENABLED' in debug.active else: _ENFORCE_CA_ENABLED = False from mvpa2.testing.sweep import sweepargs if __debug__: debug('INIT', 'mvpa2.testing end') pymvpa2-2.6.4/mvpa2/testing/clfs.py000066400000000000000000000054001323370031300171160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Provides `clfs` dictionary with instances of all available classifiers.""" __docformat__ = 'restructuredtext' # Global modules import numpy as np # Some global imports useful through out unittests from mvpa2.base import cfg # Base classes from mvpa2.clfs.base import Classifier from mvpa2.datasets.base import Dataset from mvpa2.measures.base import FeaturewiseMeasure # # first deal with classifiers which do not have external deps # from mvpa2.clfs.dummies import * from mvpa2.clfs.smlr import SMLR from mvpa2.clfs.knn import * from mvpa2.clfs.warehouse import clfswh, regrswh from mvpa2.base import externals __all__ = ['clfswh', 'regrswh', 'Classifier', 'SameSignClassifier', 'Less1Classifier', 'sample_clf_nl', 'sample_clf_lin', 'sample_clf_reg', 'cfg', 'SillySensitivityAnalyzer'] # if have ANY svm implementation if externals.exists('libsvm') or externals.exists('shogun'): from mvpa2.clfs.svm import * __all__ += ['LinearCSVMC'] if externals.exists('libsvm'): __all__ += ['libsvm', 'LinearNuSVMC'] if externals.exists('shogun'): __all__ += ['sg'] class SillySensitivityAnalyzer(FeaturewiseMeasure): """Simple one which just returns xrange[-N/2, N/2], where N is the number of features """ is_trained = True def __init__(self, mult=1, **kwargs): FeaturewiseMeasure.__init__(self, **kwargs) self.__mult = mult def _call(self, dataset): """Train linear SVM on `dataset` and extract weights from classifier. """ sens = self.__mult *( np.arange(dataset.nfeatures) - int(dataset.nfeatures/2) ) return Dataset(sens[np.newaxis]) # Sample universal classifiers (linear and non-linear) which should be # used whenever it doesn't matter what classifier it is for testing # some higher level creations -- chosen so it is the fastest universal # one. Also it should not punch state.py in the face how it is # happening with kNN... sample_clf_lin = SMLR(lm=0.1)#sg.svm.LinearCSVMC(svm_impl='libsvm') #if externals.exists('shogun'): # sample_clf_nl = sg.SVM(kernel_type='RBF', svm_impl='libsvm') #else: #classical one which was used for a while #and surprisingly it is not bad at all for the unittests sample_clf_nl = kNN(k=5) # and also a regression-based classifier r = clfswh['linear', 'regression_based', 'has_sensitivity'] if len(r) > 0: sample_clf_reg = r[0] else: sample_clf_reg = None pymvpa2-2.6.4/mvpa2/testing/datasets.py000066400000000000000000000130441323370031300200020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Provides convenience datasets for unittesting. Also performs testing of storing/reloading datasets into hdf5 file if cfg.getboolean('tests', 'use hdf datasets' """ __docformat__ = 'restructuredtext' import tempfile import shutil import traceback as tbm import sys import numpy as np from os.path import join as pathjoin from mvpa2 import cfg, externals from mvpa2.datasets.base import Dataset, HollowSamples from mvpa2.generators.partition import OddEvenPartitioner from mvpa2.misc.data_generators import * from mvpa2.testing.tools import reseed_rng __all__ = [ 'datasets', 'get_random_rotation', 'saveload_warehouse', 'pure_multivariate_signal'] # Define datasets to be used all over. Split-half later on is used to # split into training/testing # snr_scale = cfg.get_as_dtype('tests', 'snr scale', float, default=1.0) specs = {'large' : { 'perlabel': 99, 'nchunks': 11, 'nfeatures': 20, 'snr': 8 * snr_scale}, 'medium' :{ 'perlabel': 24, 'nchunks': 6, 'nfeatures': 14, 'snr': 8 * snr_scale}, 'small' : { 'perlabel': 12, 'nchunks': 4, 'nfeatures': 6, 'snr' : 14 * snr_scale} } # to assure reproducibility -- lets reseed the RNG at this point @reseed_rng() def generate_testing_datasets(specs): # Lets permute upon each invocation of test, so we could possibly # trigger some funny cases nonbogus_pool = np.random.permutation([0, 1, 3, 5]) datasets = {} # use a partitioner to flag odd/even samples as training and test ttp = OddEvenPartitioner(space='train', count=1) for kind, spec in specs.iteritems(): # set of univariate datasets for nlabels in [ 2, 3, 4 ]: basename = 'uni%d%s' % (nlabels, kind) nonbogus_features = nonbogus_pool[:nlabels] dataset = normal_feature_dataset( nlabels=nlabels, nonbogus_features=nonbogus_features, **spec) # full dataset datasets[basename] = list(ttp.generate(dataset))[0] # sample 3D total = 2*spec['perlabel'] nchunks = spec['nchunks'] data = np.random.standard_normal(( total, 3, 6, 6 )) labels = np.concatenate( ( np.repeat( 0, spec['perlabel'] ), np.repeat( 1, spec['perlabel'] ) ) ) data[:, 1, 0, 0] += 2*labels # add some signal chunks = np.asarray(range(nchunks)*(total//nchunks)) mask = np.ones((3, 6, 6), dtype='bool') mask[0, 0, 0] = 0 mask[1, 3, 2] = 0 ds = Dataset.from_wizard(samples=data, targets=labels, chunks=chunks, mask=mask, space='myspace') # and to stress tests on manipulating sa/fa possibly containing # attributes of dtype object ds.sa['test_object'] = [['a'], [1, 2]] * (ds.nsamples//2) datasets['3d%s' % kind] = ds # some additional datasets datasets['dumb2'] = dumb_feature_binary_dataset() datasets['dumb'] = dumb_feature_dataset() # dataset with few invariant features _dsinv = dumb_feature_dataset() _dsinv.samples = np.hstack((_dsinv.samples, np.zeros((_dsinv.nsamples, 1)), np.ones((_dsinv.nsamples, 1)))) datasets['dumbinv'] = _dsinv # Datasets for regressions testing datasets['sin_modulated'] = list(ttp.generate(multiple_chunks(sin_modulated, 4, 30, 1)))[0] # use the same full for training datasets['sin_modulated_train'] = datasets['sin_modulated'] datasets['sin_modulated_test'] = sin_modulated(30, 1, flat=True) # simple signal for linear regressors datasets['chirp_linear'] = multiple_chunks(chirp_linear, 6, 50, 10, 2, 0.3, 0.1) datasets['chirp_linear_test'] = chirp_linear(20, 5, 2, 0.4, 0.1) datasets['wr1996'] = multiple_chunks(wr1996, 4, 50) datasets['wr1996_test'] = wr1996(50) datasets['hollow'] = Dataset(HollowSamples((40,20)), sa={'targets': np.tile(['one', 'two'], 20)}) return datasets # avoid treating it as a test by nose generate_testing_datasets.__test__ = False def saveload_warehouse(): """Store all warehouse datasets into HDF5 and reload them. """ import h5py from mvpa2.base.hdf5 import obj2hdf, hdf2obj tempdir = tempfile.mkdtemp() # store the whole datasets warehouse in one hdf5 file hdf = h5py.File(pathjoin(tempdir, 'myhdf5.hdf5'), 'w') for d in datasets: obj2hdf(hdf, datasets[d], d) hdf.close() hdf = h5py.File(pathjoin(tempdir, 'myhdf5.hdf5'), 'r') rc_ds = {} for d in hdf: rc_ds[d] = hdf2obj(hdf[d]) hdf.close() #cleanup temp dir shutil.rmtree(tempdir, ignore_errors=True) # return the reconstructed datasets (for use in datasets warehouse) return rc_ds datasets = generate_testing_datasets(specs) if cfg.getboolean('tests', 'use hdf datasets', False): if not externals.exists('h5py'): raise RuntimeError( "Cannot perform HDF5 dump of all datasets in the warehouse, " "because 'h5py' is not available") datasets = saveload_warehouse() print "Replaced all dataset warehouse for HDF5 loaded alternative." pymvpa2-2.6.4/mvpa2/testing/regress.py000066400000000000000000000055741323370031300176550ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Convinience functions to generate/update datasets for regression testing """ __docformat__ = 'restructuredtext' from os.path import join as pathjoin import hashlib import mvpa2 from mvpa2 import pymvpa_dataroot, externals def get_testing_fmri_dataset_filename(): """Generate path to the testing filename based on mvpa2/nibabel versions """ # explicitly so we do not anyhow depend on dict ordering versions_hash = hashlib.md5( "_".join(["%s:%s" % (k, externals.versions[k]) for k in sorted(externals.versions)]) ).hexdigest()[:6] filename = 'mvpa-%s_nibabel-%s-%s.hdf5' % ( mvpa2.__version__, externals.versions['nibabel'], versions_hash) return pathjoin(pymvpa_dataroot, 'testing', 'fmri_dataset', filename) get_testing_fmri_dataset_filename.__test__ = False def generate_testing_fmri_dataset(filename=None): """Helper to generate a dataset for regression testing of mvpa2/nibabel Parameters ---------- filename : str Filename of a dataset file to store. If not provided, it is composed using :func:`get_testing_fmri_dataset_filename` Returns ------- Dataset, string Generated dataset, filename to the HDF5 where it was stored """ import mvpa2 from mvpa2.base.hdf5 import h5save from mvpa2.datasets.sources import load_example_fmri_dataset # Load our sample dataset ds_full = load_example_fmri_dataset(name='1slice', literal=False) # Subselect a small "ROI" ds = ds_full[20:23, 10:14] # collect all versions/dependencies for possible need to troubleshoot later ds.a['wtf'] = mvpa2.wtf() ds.a['versions'] = mvpa2.externals.versions # save to a file identified by version of PyMVPA and nibabel and hash of # all other versions out_filename = filename or get_testing_fmri_dataset_filename() h5save(out_filename, ds, compression=9) # ATM it produces >700kB .hdf5 which is this large because of # the ds.a.mapper with both Flatten and StaticFeatureSelection occupying # more than 190kB each, with ds.a.mapper as a whole generating 570kB file # Among those .ca seems to occupy notable size, e.g. 130KB for the FlattenMapper # even though no heavy storage is really needed for any available value -- # primarily all is meta-information embedded into hdf5 to describe our things return ds, out_filename generate_testing_fmri_dataset.__test__ = False if __name__ == '__main__': generate_testing_fmri_dataset() pymvpa2-2.6.4/mvpa2/testing/sweep.py000066400000000000000000000154301323370031300173160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Submodule to provide sweepargs decorator for unittests""" __docformat__ = 'restructuredtext' import sys import traceback as tbm from mvpa2 import cfg from mvpa2.base.dochelpers import safe_str from mvpa2.testing.tools import SkipTest if __debug__: from mvpa2.base import debug __all__ = [ 'sweepargs' ] def sweepargs(**kwargs): """Decorator function to sweep over a given set of classifiers Parameters ---------- clfs : list of `Classifier` List of classifiers to run method on Often some unittest method can be ran on multiple classifiers. So this decorator aims to do that """ from mvpa2.clfs.base import Classifier from mvpa2.base.state import ClassWithCollections def unittest_method(method): def do_sweep(*args_, **kwargs_): """Perform sweeping over provided keyword arguments """ def untrain_clf(argvalue): """Little helper""" if isinstance(argvalue, Classifier): # clear classifier after its use -- just to be sure ;-) argvalue.params.retrainable = False argvalue.untrain() failed_tests = {} skipped_tests = [] report_progress = cfg.get('tests', 'verbosity', default=1) > 1 for argname in kwargs.keys(): for argvalue in kwargs[argname]: if isinstance(argvalue, Classifier): # clear classifier before its use argvalue.untrain() if isinstance(argvalue, ClassWithCollections): argvalue.ca.reset() # update kwargs_ kwargs_[argname] = argvalue # do actual call try: if __debug__: debug('TEST', 'Running %s on args=%r and kwargs=%r' % (method.__name__, args_, kwargs_)) method(*args_, **kwargs_) status = '+' except SkipTest, e: skipped_tests += [e] status = 'S' except AssertionError, e: status = 'F' estr = str(e) etype, value, tb = sys.exc_info() # literal representation of exception tb, so # we could group them later on eidstr = ' '.join( [l for l in tbm.format_exception(etype, value, tb) if not ('do_sweep' in l or 'unittest.py' in l or 'AssertionError' in l or 'Traceback (most' in l)]) # Store exception information for later on groupping if not eidstr in failed_tests: failed_tests[eidstr] = [] sargvalue = safe_str(argvalue) if not (__debug__ and 'TEST' in debug.active): # by default lets make it of sane length if len(sargvalue) > 100: sargvalue = sargvalue[:95] + ' ...' failed_tests[eidstr].append( # skip top-most tb in sweep_args (argname, sargvalue, tb.tb_next, estr)) if __debug__: msg = "%s on %s=%s" % (estr, argname, safe_str(argvalue)) debug('TEST', 'Failed unittest: %s\n%s' % (eidstr, msg)) if report_progress: sys.stdout.write(status) sys.stdout.flush() untrain_clf(argvalue) # TODO: handle different levels of unittests properly if cfg.getboolean('tests', 'quick', False): # on TESTQUICK just run test for 1st entry in the list, # the rest are omitted # TODO: proper partitioning of unittests break if report_progress: sys.stdout.write(' ') sys.stdout.flush() if len(failed_tests): # Lets now create a single AssertionError exception # which would nicely incorporate all failed exceptions multiple = len(failed_tests) != 1 # is it unique? # if so, we don't need to reinclude traceback since it # would be spitted out anyways below estr = "" cestr = "lead to failures of unittest %s" % method.__name__ if multiple: estr += "\n Different scenarios %s "\ "(specific tracebacks are below):" % cestr else: estr += "\n Single scenario %s:" % cestr for ek, els in failed_tests.iteritems(): estr += '\n' if multiple: estr += ek estr += " on\n %s" % (" ".join( ["%s=%s%s\n" % (ea, eav, # Why didn't I just do regular for loop? ;) ":\n ".join([xx for xx in [' ', es] if xx != ''])) for ea, eav, etb, es in els])) # take first one... they all should be identical etb = els[0][2] raise AssertionError(estr), None, etb if len(skipped_tests): # so if nothing has failed, lets at least report that some were # skipped -- for now just a simple SkipTest message raise SkipTest("%d tests were skipped in testing %s" % (len(skipped_tests), method.func_name)) do_sweep.func_name = method.func_name do_sweep.__doc__ = method.__doc__ return do_sweep if len(kwargs) > 1: raise NotImplementedError, \ "No sweeping over multiple arguments in sweepargs. Meanwhile " \ "use two @sweepargs decorators for the test." return unittest_method pymvpa2-2.6.4/mvpa2/testing/tools.py000066400000000000000000000377321323370031300173440ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """A Collection of tools found useful in unittests. Primarily the ones from nose.tools """ __docformat__ = 'restructuredtext' import glob, os, sys, shutil from os.path import join as pathjoin import tempfile import unittest from contextlib import contextmanager import numpy as np import mvpa2 from mvpa2.base import externals, warning from mvpa2.base.dochelpers import strip_strid import platform platform_system = platform.system().lower() on_windows = platform_system == 'windows' on_osx = platform_system == 'darwin' on_linux = platform_system == 'linux' if __debug__: from mvpa2.base import debug if externals.exists('nose'): # We use nose now from nose import SkipTest from nose.tools import ( ok_, eq_, # Asserting (pep8-ed from unittest) assert_true, assert_false, assert_raises, assert_equal, assert_equals, assert_not_equal, assert_not_equals, assert_in, assert_not_in, # Decorators timed, with_setup, raises, istest, nottest, make_decorator) try: # compatibility helpers for testing functions introduced in more recent versions # of unittest/nose from nose.tools import assert_is_instance except ImportError: def assert_is_instance(obj, cls, msg=None): assert_true(isinstance(obj, cls), msg=msg) else: # Lets make it possible to import testing.tools even if nose is # NA, and run unittests which do not require nose yet def _need_nose(*args, **kwargs): """Catcher for unittests requiring nose functionality """ raise unittest.TestCase.failureException( "Unittest requires nose testing framework") ok_ = eq_ = assert_true = assert_false = assert_raises = \ assert_equal = assert_equals = assert_not_equal = asserte_not_equals = \ timed = with_setup = raises = istest = nottest = make_decorator = \ assert_is_instance = _need_nose class SkipTest(Exception): """Raise this exception to mark a test as skipped. """ pass # Some pieces are useful from numpy.testing from numpy.testing import ( assert_almost_equal, assert_approx_equal, assert_array_almost_equal, assert_array_equal, assert_array_less, assert_string_equal) from numpy.testing.decorators import skipif def assert_array_lequal(x, y): assert_array_less(-y, -x) def assert_dict_keys_equal(x, y): assert_equal(set(x.keys()), set(y.keys())) def assert_reprstr_equal(x, y): """Whenever comparison fails otherwise, we might revert to compare those""" if __debug__ and ("ID_IN_REPR" in debug.active or "DS_ID" in debug.active): repr_ = lambda x: strip_strid(repr(x)) str_ = lambda x: strip_strid(str(x)) else: repr_, str_ = repr, str assert_equal(repr_(x), repr_(y)) assert_equal(str_(x), str_(y)) def assert_collections_equal(x, y, ignore=None): # Seems to cause a circular import leading to problems if ignore is None: ignore = {} from mvpa2.base.node import Node from mvpa2.base.collections import Collectable assert_dict_keys_equal(x, y) for k in x.keys(): v1, v2 = x[k], y[k] assert_equal(type(v1), type(v2), msg="Values for key %s have different types: %s and %s" % (k, type(v1), type(v2))) if isinstance(v1, Collectable): v1, v2 = v1.value, v2.value if k in ignore: continue if isinstance(v1, np.ndarray): assert_array_equal(v1, v2) elif isinstance(v1, dict): assert_collections_equal(v1, v2) elif isinstance(v1, Node) and not ( hasattr(v1, '__cmp__') or (hasattr(v1, '__eq__') and v1.__class__.__eq__ is not object.__eq__)): # we don't have comparators inplace for all of them yet, so test # based on repr and str assert_reprstr_equal(v1, v2) else: try: assert_equal(v1, v2, msg="Values for key %s have different values: %s and %s" % (k, v1, v2)) except ValueError as e: ## we must be hitting some comparison issue inside (e.g. "Use a.any ..." ## but we do not to dive into providing comparators all around for now assert_reprstr_equal(v1, v2) def assert_datasets_almost_equal(x, y, ignore_a=None, ignore_sa=None, ignore_fa=None, decimal=6): """ Parameters ---------- x, y: Dataset Two datasets that are asserted to be almost equal. ignore_a, ignore_sa, ignore_fa: iterable Differences in values of which attributes to ignore decimal: int or None (default: 6) Number of decimal up to which equality of samples is considered. If None, it is required that x.samples and y.samples have the same dtype """ if ignore_a is None: ignore_a = {} if ignore_sa is None: ignore_sa = {} if ignore_fa is None: ignore_fa = {} assert_equal(type(x), type(y)) assert_collections_equal(x.a, y.a, ignore=ignore_a) assert_collections_equal(x.sa, y.sa, ignore=ignore_sa) assert_collections_equal(x.fa, y.fa, ignore=ignore_fa) if decimal is None: assert_array_equal(x.samples, y.samples) assert_equal(x.samples.dtype, y.samples.dtype) else: assert_array_almost_equal(x.samples, y.samples, decimal=decimal) def assert_datasets_equal(x, y, ignore_a=None, ignore_sa=None, ignore_fa=None): """ Parameters ---------- ignore_a, ignore_sa, ignore_fa: iterable Differences in values of which attributes to ignore """ if ignore_a is None: ignore_a = {} if ignore_sa is None: ignore_sa = {} if ignore_fa is None: ignore_fa = {} assert_datasets_almost_equal(x, y, ignore_a=ignore_a, ignore_sa=ignore_sa, ignore_fa=ignore_fa, decimal=None) if externals.exists('mock'): import mock @contextmanager def assert_warnings(messages): with mock.patch("warnings.warn") as mock_warnings: yield if externals.versions['mock'] >= '0.8.0': mock_calls = mock_warnings.mock_calls else: # lacks leading element mock_calls = [(None,) + mock_warnings.call_args] warning_list = [(call[2]['category'], call[1][0]) for call in mock_calls] assert_equal( messages, warning_list ) else: @contextmanager def assert_warnings(messages): yield raise SkipTest, "install python-mock for testing either warnings were issued" def skip_if_no_external(dep, ver_dep=None, min_version=None, max_version=None): """Raise SkipTest if external is missing Parameters ---------- dep : string Name of the external ver_dep : string, optional If for version checking use some different key, e.g. shogun:rev. If not specified, `dep` will be used. min_version : None or string or tuple Minimal required version max_version : None or string or tuple Maximal required version """ if not externals.exists(dep): raise SkipTest, \ "External %s is not present thus tests battery skipped" % dep if ver_dep is None: ver_dep = dep if min_version is not None and externals.versions[ver_dep] < min_version: raise SkipTest, \ "Minimal version %s of %s is required. Present version is %s" \ ". Test was skipped." \ % (min_version, ver_dep, externals.versions[ver_dep]) if max_version is not None and externals.versions[ver_dep] > max_version: raise SkipTest, \ "Maximal version %s of %s is required. Present version is %s" \ ". Test was skipped." \ % (min_version, ver_dep, externals.versions[ver_dep]) def with_tempfile(*targs, **tkwargs): """Decorator function to provide a temporary file name and remove it at the end. All arguments are passed into the call to tempfile.mktemp(), and resultant temporary filename is passed as the first argument into the test. If no 'prefix' argument is provided, it will be constructed using module and function names ('.' replaced with '_'). Example use:: @with_tempfile() def test_write(tfile): open(tfile, 'w').write('silly test') """ def decorate(func): def newfunc(*arg, **kw): if len(targs) < 2 and not 'prefix' in tkwargs: try: tkwargs['prefix'] = 'tempfile_%s.%s' \ % (func.__module__, func.func_name) except: # well -- if something wrong just proceed with defaults pass filename = tempfile.mktemp(*targs, **tkwargs) if __debug__: debug('TEST', 'Running %s with temporary filename %s' % (func.__name__, filename)) try: func(*(arg + (filename,)), **kw) finally: # glob here for all files with the same name (-suffix) # would be useful whenever we requested .img filename, # and function creates .hdr as well lsuffix = len(tkwargs.get('suffix', '')) filename_ = lsuffix and filename[:-lsuffix] or filename filenames = glob.glob(filename_ + '*') if len(filename_) < 3 or len(filenames) > 5: # For paranoid yoh who stepped into this already ones ;-) warning("It is unlikely that it was intended to remove all" " files matching %r. Skipping" % filename_) return for f in filenames: try: # Can also be a directory if os.path.isdir(f): shutil.rmtree(f) else: os.unlink(f) except OSError: pass newfunc = make_decorator(func)(newfunc) return newfunc return decorate def reseed_rng(): """Decorator to assure the use of MVPA_SEED while running the test It resets random number generators (both python and numpy) to the initial value of the seed value which was set while importing :mod:`mvpa`, which could be controlled through configuration/environment. Examples -------- >>> @reseed_rng() ... def test_random(): ... import numpy.random as rnd ... print rnd.randint(100) """ def decorate(func): def newfunc(*arg, **kwargs): mvpa2.seed(mvpa2._random_seed) return func(*arg, **kwargs) newfunc = make_decorator(func)(newfunc) return newfunc return decorate def nodebug(entries=None): """Decorator to temporarily turn off some debug targets Parameters ---------- entries : None or list of string, optional If None, all debug entries get turned off. Otherwise only provided ones """ def decorate(func): def newfunc(*arg, **kwargs): if __debug__: from mvpa2.base import debug # store a copy old_active = debug.active[:] if entries is None: # turn them all off debug.active = [] else: for e in entries: if e in debug.active: debug.active.remove(e) try: res = func(*arg, **kwargs) return res finally: # we should return the debug states to the original # state regardless either test passes or not! if __debug__: # turn debug targets back on debug.active = old_active newfunc = make_decorator(func)(newfunc) return newfunc return decorate def labile(niter=3, nfailures=1): """Decorator for labile tests -- runs multiple times Let's reduce probability of random failures but re-running the test multiple times allowing to fail few in a row. Makes sense only for tests which run on random data, so usually decorated with reseed_rng. Otherwise it is unlikely that result would change if algorithms are deterministic and operate on the same data Similar in idea to https://pypi.python.org/pypi/flaky . Parameters ---------- niter: int, optional How many iterations to run maximum nfailures: int, optional How many failures to allow """ def decorate(func): def newfunc(*arg, **kwargs): nfailed, i = 0, 0 # define i just in case for i in xrange(niter): try: ret = func(*arg, **kwargs) if i + 1 - nfailed >= niter - nfailures: # so we know already that we wouldn't go over # nfailures break except AssertionError, e: nfailed += 1 if __debug__: debug('TEST', "Upon %i-th run, test %s failed with %s", (i, func.__name__, e)) if nfailed > nfailures: if __debug__: debug('TEST', "Ran %s %i times. Got %d failures, " "while was allowed %d " "-- re-throwing the last failure %s", (func.__name__, i + 1, nfailed, nfailures, e)) exc_info = sys.exc_info() raise exc_info[1], None, exc_info[2] if __debug__: debug('TEST', "Ran %s %i times. Got %d failures.", (func.__name__, i + 1, nfailed)) return ret newfunc = make_decorator(func)(newfunc) return newfunc assert (niter > nfailures) return decorate def assert_objectarray_equal(x, y, xorig=None, yorig=None, strict=True): """Wrapper around assert_array_equal to compare object arrays See http://projects.scipy.org/numpy/ticket/2117 for the original report on oddity of dtype object arrays comparisons Parameters ---------- strict: bool Assure also that dtypes are the same. Otherwise it is pretty much value comparison """ try: assert_array_equal(x, y) except AssertionError, e: if not ((x.dtype == object) and (y.dtype == object)): raise # pass inside original arrays for a meaningful assertion # failure msg if xorig is None: xorig = x if yorig is None: yorig = y try: # we will try harder comparing each element the same way # and also enforcing equal dtype for x_, y_ in zip(x, y): assert (type(x_) == type(y_)) if strict and isinstance(x_, np.ndarray) and not (x_.dtype == y_.dtype): raise AssertionError("dtypes %r and %r do not match" % (x_.dtype, y_.dtype)) assert_objectarray_equal(x_, y_, xorig, yorig) except Exception, e: if not isinstance(e, AssertionError): raise AssertionError("%r != %r, thus %s != %s" % (x, y, xorig, yorig)) raise pymvpa2-2.6.4/mvpa2/tests/000077500000000000000000000000001323370031300153035ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/tests/__init__.py000066400000000000000000000270361323370031300174240ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit test interface for PyMVPA""" import sys import unittest import numpy as np from mvpa2 import _random_seed, cfg, wtf from mvpa2.base import externals, warning # # init to make tests into a package # # Test callable # from numpy.testing import Tester # test = Tester().test # del Tester _sys_settings = {} def _get_verbosity(verbosity): if verbosity is None: return int(cfg.get('tests', 'verbosity', default=1)) return verbosity def setup_module(module, verbosity=None): "set up test fixtures for testing" if __debug__: from mvpa2.base import debug # Lets add some targets which provide additional testing debug.active += ['CHECK_.*'] verbosity = _get_verbosity(verbosity) # provide people with a hint about the warnings that might show up in a # second if verbosity: print("T: MVPA_SEED=%s" % _random_seed) if verbosity > 1: print('T: Testing for availability of external software packages.') # fully test of externals verbosity_dependencies = max(0, verbosity - 1) if verbosity_dependencies: externals.check_all_dependencies(verbosity=verbosity_dependencies) elif __debug__ and verbosity: # pragma: no cover print('T: Skipping testing of all dependencies since verbosity ' '(MVPA_TESTS_VERBOSITY) is too low') # So we could see all warnings about missing dependencies _sys_settings['maxcount'] = warning.maxcount warning.maxcount = 1000 if verbosity < 3: # no MVPA warnings during whole testsuite (but restore handlers later on) _sys_settings['handlers'] = warning.handlers warning.handlers = [] # No python warnings (like ctypes version for slmr) import warnings warnings.simplefilter('ignore') if verbosity < 4: # No NumPy _sys_settings['np_errsettings'] = np.geterr() np.seterr(**dict([(x, 'ignore') for x in _sys_settings['np_errsettings']])) def teardown_module(module, verbosity=None): "tear down test fixtures" verbosity = _get_verbosity(verbosity) # restore warning handlers warning.maxcount = _sys_settings['maxcount'] if verbosity < 3: # restore warning handlers warning.handlers = _sys_settings['handlers'] if verbosity < 4: # restore numpy settings np.seterr(**_sys_settings['np_errsettings']) if cfg.getboolean('tests', 'wtf', default='no'): sys.stderr.write(str(wtf())) def collect_unit_tests(verbosity=1): """Runs over all tests it knows and composes a dictionary with test suite instances as values and IDs as keys. IDs are the filenames of the unittest without '.py' extension and ``test_`` prefix. During collection this function will run a full and verbose test for all known externals. """ # list all test modules (without .py extension) tests = [ # Basic data structures/manipulators 'test_externals', 'test_dochelpers', 'test_som', 'test_state', 'test_params', # Misc supporting utilities 'test_config', 'test_support', 'test_verbosity', 'test_report', 'test_cmdline', 'test_args', 'test_meg', # Classifiers (longer tests) 'test_clf', 'test_regr', 'test_knn', 'test_gnb', 'test_svm', 'test_plr', 'test_smlr', # Various algorithms 'test_svdmapper', 'test_procrust', 'test_hyperalignment', 'test_benchmarks_hyperalignment', 'test_searchlight_hyperalignment', 'test_transformers', 'test_searchlight', 'test_rfe', 'test_ifs', 'test_perturbsensana', 'test_winner', # And the suite (all-in-1) 'test_suite', ] __optional_tests = [ ('scipy', 'ridge'), ('scipy', 'gpr'), ] # and now for the optional tests optional_tests = [] for external, testname in __optional_tests: if externals.exists(external): optional_tests.append('test_%s' % testname) elif verbosity: print('T: Tests from "test_%s" are skipped due to missing externals: %s' % (testname, external)) # finally merge all of them tests += optional_tests return tests def collect_test_suites(verbosity=1, instantiate=True): tests = collect_unit_tests(verbosity=verbosity) # import all test modules for t in tests: # TODO: exclude tests which fail to import: e.g. on Windows # could get WindowsError due to missing msvcr90.dll exec('import mvpa2.tests.%s' % t) if instantiate: # instantiate all tests suites and return dict of them (with ID as key) return dict([(t[5:], eval('mvpa2.tests.' + t + '.suite()')) for t in tests ]) else: return tests def collect_nose_tests(verbosity=1): """Return tests which are purely nose-based (now it is actually a mix) """ tests = [ # Basic data structures/manipulators 'test_base', 'test_collections', 'test_attrmap', 'test_constraints', # Datasets 'test_bids', 'test_giftidataset', 'test_datasetng', 'test_datasetfx', 'test_dataset_formats', 'test_splitter', 'test_generators', 'test_niftidataset', 'test_cosmo', 'test_eepdataset', 'test_erdataset', 'test_datasrcs', # Classifiers 'test_multiclf', 'test_smlr', # Misc supporting 'test_neighborhood', 'test_stats', 'test_stats_sp', # Mappers 'test_mapper', 'test_mapper_sp', 'test_arraymapper', 'test_boxcarmapper', 'test_prototypemapper', 'test_fxmapper', 'test_zscoremapper', 'test_waveletmapper', 'test_mdp', 'test_filters', 'test_staticprojection', # Learners 'test_compound', 'test_enet', 'test_glmmapper', 'test_lars', 'test_glmnet', 'test_kernel', 'test_svmkernels', 'test_senses', # Algorithms 'test_emp_null', 'test_clfcrossval', 'test_group_clusterthr', # IO 'test_iohelpers', 'test_hdf5', 'test_hdf5_clf', 'test_openfmri', # Measures 'test_transerror', 'test_datameasure', 'test_dcov', 'test_corrstability', 'test_fxmeasure', 'test_rsa', # Misc 'test_cmdline_ttest', 'test_lib_afni', 'test_misc_scatter', 'test_misc_plot', 'test_misc', 'test_errorfx', 'test_testing', 'test_usecases', 'test_surfing', 'test_surfing_afni', 'test_surfing_voxelselection', 'test_surfing_surface', 'test_eeglab', 'test_progress', 'test_winner', 'test_viz', ] """Return list of tests which are pure nose-based """ if not cfg.getboolean('tests', 'lowmem', default='no'): tests += ['test_atlases'] return tests def run_tests_using_nose(limit=None, verbosity=1, exit_=False): """Run nose-based tests -- really really silly way, just to get started TODO: just switch to using numpy.testing framework, for that unittests need to be cleaned and unified first """ nosetests = collect_nose_tests(verbosity=verbosity) verbosity = _get_verbosity(verbosity) if not externals.exists('nose'): warning("You do not have python-nose installed. Some unittests were " "skipped: %s" % (', '.join(nosetests))) return from nose import main import nose import nose.config tests = collect_unit_tests(verbosity=verbosity) + nosetests config = nose.config.Config( verbosity=max(0, verbosity - 1), plugins=nose.plugins.DefaultPluginManager()) if limit is None: # Lets see if we aren't missing any: if verbosity: import os, glob testfiles = glob.glob('%s%stest_*.py' % (os.path.dirname(__file__), os.path.sep)) not_tested = set([os.path.basename(f) for f in testfiles]) \ - set(['%s.py' % f for f in tests]) if len(not_tested): print("T: Warning -- following test files were found but will " "not be tested: %s" % ', '.join(not_tested)) config.testNames = ['mvpa2.tests.' + nt for nt in tests] else: config.testNames = ['mvpa2.tests.' + nt for nt in tests if nt[5:] in limit] # run the tests if limit is None or len(limit): _ = main(defaultTest=(), config=config, exit=exit_) else: warning("Limit is degenerate (empty), no tests were ran") def run(limit=None, verbosity=None, exit_=False): """Runs the full or a subset of the PyMVPA unittest suite. Parameters ---------- limit : None or list If None, the full test suite is run. Alternatively, a list with test IDs can be provides. IDs are the base filenames of the test implementation, e.g. the ID for the suite in 'mvpa2/tests/test_niftidataset.py' is 'niftidataset'. verbosity : None or int Verbosity of unittests execution. If None, controlled by PyMVPA configuration tests/verbosity. Values >=3 enable all Python, and PyMVPA warnings, >=4 adds NumPy warnings, >=5 -- nose debug info. exit_ : bool, optional Either to exit with an error code upon the completion. """ setup_module(None, verbosity) try: if externals.exists('nose'): # Lets just use nose run_tests_using_nose(limit=limit, verbosity=verbosity, exit_=exit_) else: print("T: Warning -- major bulk of tests is skipped since nose " "is unavailable") # collect all tests suites = collect_test_suites(verbosity=verbosity) if limit is None: # make global test suite (use them all) ts = unittest.TestSuite(suites.values()) else: ts = unittest.TestSuite([suites[s] for s in limit]) class TextTestRunnerPyMVPA(unittest.TextTestRunner): """Extend TextTestRunner to print out random seed which was used in the case of failure""" def run(self, test): """Run the bloody test and puke the seed value if failed""" result = super(TextTestRunnerPyMVPA, self).run(test) if not result.wasSuccessful(): print "MVPA_SEED=%s" % _random_seed # finally run it TextTestRunnerPyMVPA(verbosity=verbosity).run(ts) finally: teardown_module(None, verbosity) # to avoid nosetests running the beasts defined in this file run_tests_using_nose.__test__ = False collect_test_suites.__test__ = False run.__test__ = False __test__ = False if __name__ == "__main__": # pragma: no cover run(exit_=True, verbosity=3) pymvpa2-2.6.4/mvpa2/tests/badexternals/000077500000000000000000000000001323370031300177575ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/tests/badexternals/cPickle_disabled.py000066400000000000000000000000221323370031300235240ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/griddata.py000066400000000000000000000000221323370031300221020ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/h5py.py000066400000000000000000000000221323370031300212100ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/hcluster.py000066400000000000000000000000221323370031300221540ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/libsvm.py000066400000000000000000000000221323370031300216170ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/lxml.py000066400000000000000000000000221323370031300212770ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/mdp.py000066400000000000000000000000221323370031300211030ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/nibabel.py000066400000000000000000000000221323370031300217170ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/nifti.py000066400000000000000000000000221323370031300214340ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/nipy.py000066400000000000000000000000221323370031300213020ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/openopt.py000066400000000000000000000000221323370031300220070ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/pandas.py000066400000000000000000000000221323370031300215710ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/pprocess.py000066400000000000000000000000221323370031300221610ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/psutil.py000066400000000000000000000000221323370031300216430ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/pylab.py000066400000000000000000000000221323370031300214320ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/pywt.py000066400000000000000000000000221323370031300213260ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/reportlab.py000066400000000000000000000000221323370031300223150ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/rpy.py000066400000000000000000000000221323370031300211350ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/rpy2.py000066400000000000000000000000221323370031300212170ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/scikits/000077500000000000000000000000001323370031300214305ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/tests/badexternals/scikits/__init__.py000066400000000000000000000000001323370031300235270ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/tests/badexternals/scikits/learn/000077500000000000000000000000001323370031300225315ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/tests/badexternals/scikits/learn/__init__.py000066400000000000000000000000221323370031300246340ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/scipy.py000066400000000000000000000000221323370031300214520ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/shogun.py000066400000000000000000000000221323370031300216260ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/skimage.py000066400000000000000000000000221323370031300217430ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/sklearn.py000066400000000000000000000000221323370031300217620ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/statsmodels.py000066400000000000000000000000221323370031300226650ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/badexternals/weave.py000066400000000000000000000000221323370031300214320ustar00rootroot00000000000000raise ImportError pymvpa2-2.6.4/mvpa2/tests/runner.py000066400000000000000000000056611323370031300171760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper module to enable profiling of the testcase If environment variable PROFILELEVEL is set it uses hotshot profiler for unittest.main() call. Value of PROFILELEVEL defines number of top busy functions to report. Environment variable PROFILELINES=1 makes hotshot store information per each line, so it could be easily inspected later on. Output: Profiler stores its Stats into a file named after original script (sys.argv[0]) with suffix".prof" appended Usage: Replace unittest.main() with import runner Visualization: kcachegrind provides nice interactive GUI to inspect profiler results. If PROFILELINES was set to 1, it provides information per each line. To convert .prof file into a file suitable for kcachegrind, use utility hotshot2calltree which comes in package kcachegrind-converters. Example: # profile and output 3 most expensive function calls PROFILELEVEL=3 PROFILELINES=1 PYTHONPATH=../ python test_searchlight.py # convert to kcachegrind format hotshot2calltree -o test_searchlight.py.kcache test_searchlight.py.prof # inspect kcachegrind test_searchlight.py.kcache """ __test__ = False import unittest import sys from os import environ from mvpa2 import _random_seed # Extend TestProgram to print out the seed which was used class TestProgramPyMVPA(unittest.TestProgram): ##REF: Name was automagically refactored def run_tests(self): if self.verbosity: print "MVPA_SEED=%s:" % _random_seed, sys.stdout.flush() super(TestProgramPyMVPA, self).run_tests() def run(): profilelevel = None if 'PROFILELEVEL' in environ: profilelevel = int(environ['PROFILELEVEL']) if profilelevel is None: TestProgramPyMVPA() else: profilelines = 'PROFILELINES' in environ import hotshot, hotshot.stats pname = "%s.prof" % sys.argv[0] prof = hotshot.Profile(pname, lineevents=profilelines) try: # actually return values are never setup # since unittest.main sys.exit's benchtime, stones = prof.runcall( unittest.main ) except SystemExit: pass print "Saving profile data into %s" % pname prof.close() if profilelevel > 0: # we wanted to see the summary right here # instead of just storing it into a file print "Loading profile data from %s" % pname stats = hotshot.stats.load(pname) stats.strip_dirs() stats.sort_stats('time', 'calls') stats.print_stats(profilelevel) pymvpa2-2.6.4/mvpa2/tests/test_args.py000066400000000000000000000055251323370031300176570ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA args helpers""" import unittest from mvpa2.misc.args import * if __debug__: from mvpa2.base import debug class ArgsHelpersTest(unittest.TestCase): def test_basic(self): """Test if we are not missing basic parts""" kwargs = {'a':1, 'slave_a':3, 'slave_z':4, 'slave_slave_z':5, 'c':3} res = split_kwargs(kwargs, ['slave_']) self.assertTrue('slave_' in res and '' in res) self.assertTrue(res['slave_'] == {'a':3, 'z':4, 'slave_z':5}) self.assertTrue(res[''] == {'a':1, 'c':3}) res = split_kwargs(kwargs) self.assertTrue(res.keys() == ['']) self.assertTrue(res[''] == kwargs) def test_decorator(self): """Test the group_kwargs decorator""" selftop = self class C1(object): @group_kwargs(prefixes=['slave_'], assign=True) def __init__(self, **kwargs): selftop.assertTrue(hasattr(self, '_slave_kwargs')) self.method_passedempty() self.method_passed(1, custom_p1=144, bugax=1) self.method_filtered(1, custom_p1=123) @group_kwargs(prefixes=['custom_'], passthrough=True) def method_passedempty(self, **kwargs): # we must have it even though it is empty selftop.assertTrue('custom_kwargs' in kwargs) @group_kwargs(prefixes=['custom_', 'buga'], passthrough=True) def method_passed(self, a, custom_kwargs, bugakwargs, **kwargs): # we must have it even though it is empty selftop.assertTrue(custom_kwargs == {'p1':144}) selftop.assertTrue(bugakwargs == {'x':1}) selftop.assertTrue(not hasattr(self, '_custom_kwargs')) @group_kwargs(prefixes=['custom_']) def method_filtered(self, a, **kwargs): # we must have it even though it is empty selftop.assertEqual(a, 1) selftop.assertTrue(not 'custom_kwargs' in kwargs) def method(self): return 123 @group_kwargs(prefixes=['xxx']) def method_decorated(self): return 124 c1 = C1(slave_p1=1, p1=2) self.assertTrue(c1.method() == 123) self.assertTrue(c1.method_decorated() == 124) def suite(): # pragma: no cover return unittest.makeSuite(ArgsHelpersTest) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_arraymapper.py000066400000000000000000000065551323370031300212520ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA dense array mapper""" from mvpa2.mappers.flatten import mask_mapper from mvpa2.featsel.base import StaticFeatureSelection from mvpa2.testing.tools import assert_raises, assert_equal, assert_array_equal import numpy as np def test_forward_dense_array_mapper(): mask = np.ones((3,2), dtype='bool') map_ = mask_mapper(mask) # test shape reports assert_equal(map_.forward1(mask).shape, (6,)) # test 1sample mapping assert_array_equal(map_.forward1(np.arange(6).reshape(3,2)), [0,1,2,3,4,5]) # test 4sample mapping foursample = map_.forward(np.arange(24).reshape(4,3,2)) assert_array_equal(foursample, [[0,1,2,3,4,5], [6,7,8,9,10,11], [12,13,14,15,16,17], [18,19,20,21,22,23]]) # check incomplete masks mask[1,1] = 0 map_ = mask_mapper(mask) assert_equal(map_.forward1(mask).shape, (5,)) assert_array_equal(map_.forward1(np.arange(6).reshape(3,2)), [0,1,2,4,5]) # check that it doesn't accept wrong dataspace assert_raises(ValueError, map_.forward, np.arange(4).reshape(2,2)) # check fail if neither mask nor shape assert_raises(ValueError, mask_mapper) # check that a full mask is automatically created when providing shape m = mask_mapper(shape=(2, 3, 4)) mp = m.forward1(np.arange(24).reshape(2, 3, 4)) assert_array_equal(mp, np.arange(24)) def test_reverse_dense_array_mapper(): mask = np.ones((3,2), dtype='bool') mask[1,1] = 0 map_ = mask_mapper(mask) rmapped = map_.reverse1(np.arange(1,6)) assert_equal(rmapped.shape, (3,2)) assert_equal(rmapped[1,1], 0) assert_equal(rmapped[2,1], 5) # check that it doesn't accept wrong dataspace assert_raises(ValueError, map_.forward, np.arange(6)) rmapped2 = map_.reverse(np.arange(1,11).reshape(2,5)) assert_equal(rmapped2.shape, (2,3,2)) assert_equal(rmapped2[0,1,1], 0 ) assert_equal(rmapped2[1,1,1], 0 ) assert_equal(rmapped2[0,2,1], 5 ) assert_equal(rmapped2[1,2,1], 10 ) def test_mapper_aliases(): mm=mask_mapper(np.ones((3,4,2), dtype='bool')) assert_array_equal(mm.forward(np.ones((2,3,4,2))), mm.forward(np.ones((2,3,4,2)))) def test_selects(): mask = np.ones((3,2), dtype='bool') mask[1,1] = 0 mask0 = mask.copy() data = np.arange(6).reshape(mask.shape) map_ = mask_mapper(mask) # check if any exception is thrown if we get # out of the outIds #assert_raises(IndexError, map_.select_out, [0,1,2,6]) # remove 1,2 map_.append(StaticFeatureSelection([0,3,4])) assert_array_equal(map_.forward1(data), [0, 4, 5]) # remove 1 more map_.append(StaticFeatureSelection([0,2])) assert_array_equal(map_.forward1(data), [0, 5]) # check if original mask wasn't perturbed assert_array_equal(mask, mask0) # check if original mask wasn't perturbed assert_array_equal(mask, mask0) pymvpa2-2.6.4/mvpa2/tests/test_atlases.py000066400000000000000000000145131323370031300203540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA atlases""" import unittest, re import numpy as np from mvpa2.testing import * skip_if_no_external('nibabel') skip_if_no_external('lxml') from mvpa2.base import externals from mvpa2.atlases import * from mvpa2 import pymvpa_dataroot """Basic tests for support of atlases such as the ones shipped with FSL """ def test_transformations(): """TODO""" raise SkipTest, "Please test application of transformations" @sweepargs(name=KNOWN_ATLASES.keys()) def test_atlases(name): """Basic testing of atlases""" #filename = KNOWN_ATLASES[name] % {'name': name} try: atlas = Atlas(name=name) except IOError, e: # so we just don't have it raise SkipTest('Skipped atlas %s due to %s' % (name, e)) #print isinstance(atlas.atlas, objectify.ObjectifiedElement) #print atlas.header.images.imagefile.get('offset') #print atlas.label_voxel( (0, -7, 20) ) #print atlas[ 0, 0, 0 ] coord = (-63, -12, 22) # Atlas must have at least 1 level and that one must # have some labels ok_(len(atlas.levels[0].labels) > 0) for res in [ atlas(coord), atlas.label_point(coord) ]: ok_(res.get('coord_queried', None) == coord, '%s: Comparison failed. Got %s and %s' % (name, res.get('coord_queried', None), coord)) ok_('labels' in res) # all atlases so far are based on voxels ok_('voxel_queried' in res) # test explicit level specification via slice, although bogus here # XXX levels in queries should be deprecated -- too much of # performance hit res0 = atlas(coord, range(atlas.nlevels)) ok_(res0 == res) #print atlas[ 0, -7, 20, [1,2,3] ] #print atlas[ (0, -7, 20), 1:2 ] #print atlas[ (0, -7, 20) ] #print atlas[ (0, -7, 20), : ] # print atlas.get_labels(0) def test_fsl_hox_queries(): skip_if_no_external('atlas_fsl') tshape = (182, 218, 182) # target shape of fsl atlas chosen by default atl = Atlas(name='HarvardOxford-Cortical') atl.levels[0].find('Frontal Pole') assert_equal(len(atl.find(re.compile('Fusiform'), unique=False)), 4) m = atl.get_map(1) assert_equal(m.shape, tshape) ok_(np.max(m)==100) ok_(np.min(m)==0) ms = atl.get_maps('Fusiform') assert_equal(len(ms), 4) for l, m in ms.iteritems(): assert_equal(m.shape, tshape) ms = atl.get_maps('ZaZaZa') ok_(not len(ms)) assert_raises(ValueError, atl.get_map, 'Fusiform') ok_(len(atl.find('Fusiform', unique=False)) == 4) ff_map = atl.get_map('Fusiform', strategy='max') assert_equal(ff_map.shape, tshape) # atlas has very unfortunate shape -- the same under .T ... heh heh # Lets validate either map is in correct orientation ok_(ff_map[119, 91, 52] > 60) ok_(ff_map[52, 91, 119] == 0) # Lets validate some coordinates queries r_gi = atl(-48, -75, 19) r_point = atl.label_point((-48, -75, 19)) r_voxel = atl.label_voxel((138, 51, 91)) # by default, __getitem__ queries coordinates in voxels ok_(r_voxel == atl[(138, 51, 91)] == atl[138, 51, 91]) # by default -- opens at highest-available resolution, # i.e. 1mm since a while ok_(atl.resolution == 1.) # by default, __call__ queries coordinates in space ok_(r_point == atl(-48, -75, 19) == atl((-48, -75, 19))) ok_(r_point['labels'] == r_voxel['labels'] == [[{'index': 21, 'prob': 64, 'label': 'Lateral Occipital Cortex, superior division'}, {'index': 22, 'prob': 22, 'label': 'Lateral Occipital Cortex, inferior division'}]]) ok_(r_point['voxel_atlas'] == r_point['voxel_queried'] == list(r_voxel['voxel_queried']) == [138, 51, 91]) # TODO: unify list/tuple in above -- r_point has lists # Test loading of custom atlas # for now just on the original file atl2 = Atlas(name='HarvardOxford-Cortical', image_file=atl._image_file) # we should get exactly the same maps from both in this dummy case ok_((atl.get_map('Frontal Pole') == atl2.get_map('Frontal Pole')).all()) # Lets falsify and feed some crammy file as the atlas atl2 = Atlas(name='HarvardOxford-Cortical', image_file=pathjoin(pymvpa_dataroot, 'example4d.nii.gz')) # we should get not even comparable maps now ;) ok_(atl.get_map('Frontal Pole').shape != atl2.get_map('Frontal Pole').shape) # Lets check unique resolution for the atlas maps = atl.get_maps('Fusiform') maps_max = atl.get_maps('Fusiform', overlaps='max') mk = maps.keys() ok_(set(mk) == set(maps_max.keys())) maps_ab = np.array([maps[k]!=0 for k in mk]) maps_max_ab = np.array([maps_max[k]!=0 for k in mk]) # We should have difference ok_(np.any(maps_ab != maps_max_ab)) maps_max_ab_sum = np.sum(maps_max_ab, axis=0) ok_(np.all(0<=maps_max_ab_sum)) ok_(np.all(maps_max_ab_sum<=1)) ok_(np.any(np.sum(maps_ab, axis=0)>1)) # we should still cover the same set of voxels assert_array_equal(np.max(maps_ab, axis=0), np.max(maps_max_ab, axis=0)) # Basic testing of Talairach atlases in its original space def test_pymvpa_talairach(): skip_if_no_external('atlas_pymvpa') atl = Atlas(name='talairach') atld = Atlas(name='talairach-dist', reference_level='Closest Gray', distance=10) p = [-22, -40, 8] pl = atl.label_point(p) pld = atld.label_point(p) ok_(np.any(pl['voxel_queried'] != pld['voxel_queried'])) ok_(pld['distance'] >0) # Common labels for l in pl, pld: assert_equal(l['labels'][0]['label'].text, 'Left Cerebrum') assert_equal(l['labels'][1]['label'].text, 'Sub-lobar') # different ones assert_equal(pl['labels'][3]['label'].text, 'Cerebro-Spinal Fluid') assert_equal(pld['labels'][3]['label'].text, 'Gray Matter') assert_equal(pl['labels'][4]['label'].text, 'None') assert_equal(pld['labels'][4]['label'].text, 'Caudate Tail') pymvpa2-2.6.4/mvpa2/tests/test_attrmap.py000066400000000000000000000104371323370031300203710ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## import numpy as np from mvpa2.testing.tools import assert_raises, ok_, assert_false, assert_equal, \ assert_array_equal from mvpa2.misc.attrmap import AttributeMap def test_attrmap(): map_default = {'eins': 0, 'zwei': 2, 'sieben': 1} map_custom = {'eins': 11, 'zwei': 22, 'sieben': 33} literal = ['eins', 'zwei', 'sieben', 'eins', 'sieben', 'eins'] literal_nonmatching = ['uno', 'dos', 'tres'] num_default = [0, 2, 1, 0, 1, 0] num_custom = [11, 22, 33, 11, 33, 11] # no custom mapping given am = AttributeMap() assert_false(am) ok_(len(am) == 0) assert_array_equal(am.to_numeric(literal), num_default) assert_array_equal(am.to_literal(num_default), literal) ok_(am) ok_(len(am) == 3) # # Tests for recursive mapping + preserving datatype class myarray(np.ndarray): pass assert_raises(KeyError, am.to_literal, [(1, 2), 2, 0]) literal_fancy = [(1, 2), 2, [0], np.array([0, 1]).view(myarray)] literal_fancy_tuple = tuple(literal_fancy) literal_fancy_array = np.array(literal_fancy, dtype=object) for l in (literal_fancy, literal_fancy_tuple, literal_fancy_array): res = am.to_literal(l, recurse=True) assert_equal(res[0], ('sieben', 'zwei')) assert_equal(res[1], 'zwei') assert_equal(res[2], ['eins']) assert_array_equal(res[3], ['eins', 'sieben']) # types of result and subsequences should be preserved ok_(isinstance(res, l.__class__)) ok_(isinstance(res[0], tuple)) ok_(isinstance(res[1], str)) ok_(isinstance(res[2], list)) ok_(isinstance(res[3], myarray)) # yet another example a = np.empty(1, dtype=object) a[0] = (0, 1) res = am.to_literal(a, recurse=True) ok_(isinstance(res[0], tuple)) # # with custom mapping am = AttributeMap(map=map_custom) assert_array_equal(am.to_numeric(literal), num_custom) assert_array_equal(am.to_literal(num_custom), literal) # if not numeric nothing is mapped assert_array_equal(am.to_numeric(num_custom), num_custom) # even if the map doesn't fit assert_array_equal(am.to_numeric(num_default), num_default) # need to_numeric first am = AttributeMap() assert_raises(RuntimeError, am.to_literal, [1,2,3]) # stupid args assert_raises(ValueError, AttributeMap, map=num_custom) # map mismatch am = AttributeMap(map=map_custom) if __debug__: # checked only in __debug__ assert_raises(KeyError, am.to_numeric, literal_nonmatching) # needs reset and should work afterwards am.clear() assert_array_equal(am.to_numeric(literal_nonmatching), [2, 0, 1]) # and now reverse am = AttributeMap(map=map_custom) assert_raises(KeyError, am.to_literal, num_default) # dict-like interface am = AttributeMap() ok_([(k, v) for k, v in am.iteritems()] == []) def test_attrmap_conflicts(): am_n = AttributeMap({'a':1, 'b':2, 'c':1}) am_t = AttributeMap({'a':1, 'b':2, 'c':1}, collisions_resolution='tuple') am_l = AttributeMap({'a':1, 'b':2, 'c':1}, collisions_resolution='lucky') q_f = ['a', 'b', 'a', 'c'] # should have no effect on forward mapping ok_(np.all(am_n.to_numeric(q_f) == am_t.to_numeric(q_f))) ok_(np.all(am_t.to_numeric(q_f) == am_l.to_numeric(q_f))) assert_raises(ValueError, am_n.to_literal, [2]) r_t = am_t.to_literal([2, 1]) r_l = am_l.to_literal([2, 1]) def test_attrmap_repr(): assert_equal(repr(AttributeMap()), "AttributeMap()") d = dict(a=2, b=1) assert_equal(repr(AttributeMap(d)), "AttributeMap(%r)" % (d,)) assert_equal(repr(AttributeMap(dict(a=2, b=1), mapnumeric=True)), "AttributeMap(%r, mapnumeric=True)" % (d,)) assert_equal(repr(AttributeMap(dict(a=2, b=1), mapnumeric=True, collisions_resolution='tuple')), "AttributeMap(%r, mapnumeric=True, collisions_resolution='tuple')" % (d,)) pymvpa2-2.6.4/mvpa2/tests/test_base.py000066400000000000000000000024351323370031300176320ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Test some base functionality which did not make it into a separate unittests""" import os import unittest from mvpa2.base.info import wtf from mvpa2.testing.tools import * @with_tempfile() def test_wtf(filename): """Very basic testing of wtf()""" sinfo = str(wtf()) print(sinfo) # Display it so later we could actually use to troubleshoot sinfo_excludes = str(wtf(exclude=['runtime'])) ok_(len(sinfo) > len(sinfo_excludes), msg="Got not less info when excluded runtime." " Original one was:\n%s and without process:\n%s" % (sinfo, sinfo_excludes)) ok_(not 'RUNTIME' in sinfo_excludes) # check if we could store and load it back wtf(filename) try: sinfo_from_file = '\n'.join(open(filename, 'r').readlines()) except Exception, e: raise AssertionError( 'Testing of loading from a stored a file has failed: %r' % (e,)) pymvpa2-2.6.4/mvpa2/tests/test_benchmarks_hyperalignment.py000066400000000000000000000065461323370031300241520ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for algorithms result benchmarks ...""" from mvpa2.algorithms.hyperalignment import Hyperalignment from mvpa2.misc.data_generators import random_affine_transformation from mvpa2.algorithms.benchmarks.hyperalignment import * from mvpa2.algorithms.benchmarks.hyperalignment import _get_nonoverlapping_startpoints from mvpa2.mappers.base import IdentityMapper from mvpa2.testing import * from mvpa2.testing.datasets import datasets def _wipe_out_offdiag(a, window_size, value=np.inf): for i in xrange(len(a)): for j in xrange(len(a)): if abs(i - j) < window_size and i != j: a[i, j] = value return a def test_zero_out_offdiag(): a = np.random.normal(size=(100, 100)) for ws in (0, 1, 2, 88, 99, 101): assert(np.all(wipe_out_offdiag(a, ws) == _wipe_out_offdiag(a, ws))) def test_timesegments_classification(): # TODO: RF our construction of fake datasets for testing hyperalignment # so we could reuse it here and test classification performance ds_orig = datasets['uni4large'] n = 3 dss = [ds_orig.copy(deep=True) for i in xrange(n)] def nohyper(dss): return [IdentityMapper() for ds in dss] # clean case, assume "nohyper" which would be by default errors = timesegments_classification(dss) for ds in dss: # must not add any attribute, such as subjects assert('subjects' not in ds.sa) assert_array_equal(errors, 0) # very noisy case -- we must not be able to classify anything reasonably dss_noisy = [ds.copy() for ds in dss] for ds in dss_noisy: ds.samples = np.random.normal(size=ds.samples.shape) errors_nonoverlapping = timesegments_classification(dss_noisy, nohyper, overlapping_windows=False) assert(np.all(errors_nonoverlapping <= 1.)) assert(np.all(0.75 <= errors_nonoverlapping)) errors_overlapping = timesegments_classification(dss_noisy, nohyper) # nononverlapping error should be less for random result assert_array_lequal(np.mean(errors_nonoverlapping), np.mean(errors_overlapping)) # now the ultimate test with real hyperalignment on when we don't need much # of it anyways #import pdb; pdb.set_trace() dss_rotated = [random_affine_transformation(ds_orig, scale_fac=100, shift_fac=10) for _ in dss] errors_hyper = timesegments_classification(dss_rotated, Hyperalignment()) # Hyperalignment must not screw up and rotated and classify perfectly # since we didn't add any noise whatsoever assert_array_equal(errors, 0) def test_get_nonoverlapping_startpoints(): assert_equal(_get_nonoverlapping_startpoints(2, 1), [0, 1]) assert_equal(_get_nonoverlapping_startpoints(2, 2), [0]) assert_equal(_get_nonoverlapping_startpoints(4, 2), [0, 2]) assert_equal(_get_nonoverlapping_startpoints(4, 3), [0]) assert_equal(_get_nonoverlapping_startpoints(5, 3), [0]) assert_equal(_get_nonoverlapping_startpoints(6, 3), [0, 3]) pymvpa2-2.6.4/mvpa2/tests/test_bids.py000066400000000000000000000020351323370031300176350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for the BIDS I/O support''' from mvpa2.testing import eq_ from StringIO import StringIO from mvpa2.datasets.sources.bids import load_events def test_load_events(): evtsv = "onset\tduration" eq_(load_events(StringIO(evtsv)), []) ra = load_events(StringIO(evtsv), as_recarr=True) eq_(len(ra), 0) eq_(ra.dtype.names, ('onset', 'duration')) # now with content to do type checks evtsv = "onset\tduration\ttrial_type\n2\t1.3\tboring\n3.5\t4\texciting" ra = load_events(StringIO(evtsv)) eq_(ra, [{'onset': 2.0, 'duration': 1.3, 'trial_type': 'boring'}, {'onset': 3.5, 'duration': 4.0, 'trial_type': 'exciting'}]) pymvpa2-2.6.4/mvpa2/tests/test_boxcarmapper.py000066400000000000000000000153771323370031300214140ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Boxcar mapper""" import numpy as np from mvpa2.testing.tools import ok_, assert_raises, assert_false, assert_equal, \ assert_true, assert_array_equal from mvpa2.mappers.boxcar import BoxcarMapper from mvpa2.datasets import Dataset from mvpa2.mappers.flatten import FlattenMapper from mvpa2.mappers.base import ChainMapper def test_simpleboxcar(): data = np.atleast_2d(np.arange(10)).T sp = np.arange(10) # check if stupid thing don't work assert_raises(ValueError, BoxcarMapper, sp, 0) # now do an identity transformation bcm = BoxcarMapper(sp, 1) trans = bcm.forward(data) # ,0 is a feature below, so we get explicit 2D out of 1D assert_array_equal(trans[:,0], data) # now check for illegal boxes if __debug__: # condition is checked only in __debug__ assert_raises(ValueError, BoxcarMapper(sp, 2).train, data) # now something that should work nbox = 9 boxlength = 2 sp = np.arange(nbox) bcm = BoxcarMapper(sp, boxlength) trans = bcm.forward(data) # check that is properly upcasts the dimensionality assert_equal(trans.shape, (nbox, boxlength) + data.shape[1:]) # check actual values, squeezing the last dim for simplicity assert_array_equal(trans.squeeze(), np.vstack((np.arange(9), np.arange(9)+1)).T) # now test for proper data shape data = np.ones((10,3,4,2)) sp = [ 2, 4, 3, 5 ] trans = BoxcarMapper(sp, 4).forward(data) assert_equal(trans.shape, (4,4,3,4,2)) # test reverse data = np.arange(240).reshape(10, 3, 4, 2) sp = [ 2, 4, 3, 5 ] boxlength = 2 m = BoxcarMapper(sp, boxlength) m.train(data) mp = m.forward(data) assert_equal(mp.shape, (4, 2, 3, 4, 2)) # try full reconstruct mr = m.reverse(mp) # shape has to match assert_equal(mr.shape, (len(sp) * boxlength,) + data.shape[1:]) # only known samples are part of the results assert_true((mr >= 24).all()) assert_true((mr < 168).all()) # check proper reconstruction of non-conflicting sample assert_array_equal(mr[0].ravel(), np.arange(48, 72)) # check proper reconstruction of samples being part of multiple # mapped samples assert_array_equal(mr[1].ravel(), np.arange(72, 96)) # test reverse of a single sample singlesample = np.arange(48).reshape(2, 3, 4, 2) assert_array_equal(singlesample, m.reverse1(singlesample)) # now in a dataset ds = Dataset([singlesample]) assert_equal(ds.shape, (1,) + singlesample.shape) # after reverse mapping the 'sample axis' should vanish and the original 3d # shape of the samples should be restored assert_equal(ds.shape[1:], m.reverse(ds).shape) # multiple samples should just be concatenated along the samples axis ds = Dataset([singlesample, singlesample]) assert_equal((np.prod(ds.shape[:2]),) + singlesample.shape[1:], m.reverse(ds).shape) # should not work for shape mismatch, but it does work and is useful when # reverse mapping sample attributes #assert_raises(ValueError, m.reverse, singlesample[0]) # check broadcasting of 'raw' samples into proper boxcars on forward() bc = m.forward1(np.arange(24).reshape(3, 4, 2)) assert_array_equal(bc, np.array(2 * [np.arange(24).reshape(3, 4, 2)])) def test_datasetmapping(): # 6 samples, 4X2 features data = np.arange(48).reshape(6,4,2) ds = Dataset(data, sa={'timepoints': np.arange(6), 'multidim': data.copy()}, fa={'fid': np.arange(4)}) # with overlapping and non-overlapping boxcars startpoints = [0, 1, 4] boxlength = 2 bm = BoxcarMapper(startpoints, boxlength, space='boxy') # train is critical bm.train(ds) mds = bm.forward(ds) assert_equal(len(mds), len(startpoints)) assert_equal(mds.nfeatures, boxlength) # all samples attributes remain, but the can rotated/compressed into # multidimensional attributes assert_equal(sorted(mds.sa.keys()), ['boxy_onsetidx'] + sorted(ds.sa.keys())) assert_equal(mds.sa.multidim.shape, (len(startpoints), boxlength) + ds.shape[1:]) assert_equal(mds.sa.timepoints.shape, (len(startpoints), boxlength)) assert_array_equal(mds.sa.timepoints.flatten(), np.array([(s, s+1) for s in startpoints]).flatten()) assert_array_equal(mds.sa.boxy_onsetidx, startpoints) # feature attributes also get rotated and broadcasted assert_array_equal(mds.fa.fid, [ds.fa.fid, ds.fa.fid]) # and finally there is a new one assert_array_equal(mds.fa.boxy_offsetidx, range(boxlength)) # now see how it works on reverse() rds = bm.reverse(mds) # we got at least something of all original attributes back assert_equal(sorted(rds.sa.keys()), sorted(ds.sa.keys())) assert_equal(sorted(rds.fa.keys()), sorted(ds.fa.keys())) # it is not possible to reconstruct the full samples array # some samples even might show up multiple times (when there are overlapping # boxcars assert_array_equal(rds.samples, np.array([[[ 0, 1], [ 2, 3], [ 4, 5], [ 6, 7]], [[ 8, 9], [10, 11], [12, 13], [14, 15]], [[ 8, 9], [10, 11], [12, 13], [14, 15]], [[16, 17], [18, 19], [20, 21], [22, 23]], [[32, 33], [34, 35], [36, 37], [38, 39]], [[40, 41], [42, 43], [44, 45], [46, 47]]])) assert_array_equal(rds.sa.timepoints, [0, 1, 1, 2, 4, 5]) assert_array_equal(rds.sa.multidim, ds.sa.multidim[rds.sa.timepoints]) # but feature attributes should be fully recovered assert_array_equal(rds.fa.fid, ds.fa.fid) # popular dataset configuration (double flatten + boxcar) cm= ChainMapper([FlattenMapper(), bm, FlattenMapper()]) cm.train(ds) bflat = ds.get_mapped(cm) assert_equal(bflat.shape, (len(startpoints), boxlength * np.prod(ds.shape[1:]))) # add attributes bflat.fa['testfa'] = np.arange(bflat.nfeatures) bflat.sa['testsa'] = np.arange(bflat.nsamples) # now try to go back bflatrev = bflat.mapper.reverse(bflat) # data should be same again, as far as the boxcars match assert_array_equal(ds.samples[:2], bflatrev.samples[:2]) assert_array_equal(ds.samples[-2:], bflatrev.samples[-2:]) # feature axis should match assert_equal(ds.shape[1:], bflatrev.shape[1:]) pymvpa2-2.6.4/mvpa2/tests/test_clf.py000066400000000000000000001411061323370031300174630ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA basic Classifiers""" import numpy as np from mvpa2.testing import * from mvpa2.testing import _ENFORCE_CA_ENABLED from mvpa2.testing.datasets import * from mvpa2.testing.clfs import * from mvpa2.support.copy import deepcopy from mvpa2.base.node import ChainNode from mvpa2.base import externals from mvpa2.datasets.base import dataset_wizard from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner from mvpa2.generators.permutation import AttributePermutator from mvpa2.generators.resampling import Balancer from mvpa2.generators.splitters import Splitter from mvpa2.misc.exceptions import UnknownStateError from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.base.learner import DegenerateInputError, FailedToTrainError, \ FailedToPredictError from mvpa2.clfs.meta import CombinedClassifier, \ BinaryClassifier, MulticlassClassifier, \ SplitClassifier, MappedClassifier, FeatureSelectionClassifier, \ TreeClassifier, RegressionAsClassifier, MaximalVote from mvpa2.measures.base import TransferMeasure, ProxyMeasure, CrossValidation from mvpa2.mappers.flatten import mask_mapper from mvpa2.misc.attrmap import AttributeMap from mvpa2.mappers.fx import mean_sample, BinaryFxNode # What exceptions to allow while testing degenerate cases. # If it pukes -- it is ok -- user will notice that something # is wrong _degenerate_allowed_exceptions = [ DegenerateInputError, FailedToTrainError, FailedToPredictError] class ClassifiersTests(unittest.TestCase): def setUp(self): self.clf_sign = SameSignClassifier() self.clf_less1 = Less1Classifier() # simple binary dataset self.data_bin_1 = dataset_wizard( samples=[[0,0],[-10,-1],[1,0.1],[1,-1],[-1,1]], targets=[1, 1, 1, -1, -1], # labels chunks=[0, 1, 2, 2, 3]) # chunks def _get_clf_ds(self, clf): """Little helper to provide a dataset for classifier testing For some classifiers (e.g. density modeling ones, such as QDA) it is mandatory to provide enough samples to more or less adequately model the distributions, thus "large" dataset would be provided instead of the default medium. Also choosing large one for the classifiers with feature-selection since some feature selections might rely on a % of features, which would be degenerate in a small dataset """ # unfortunately python 2.5 doesn't have 'isdisjoint' #return {True: 'medium', # False: 'large'}[ # set(['lda', 'qda', 'feature_selection']).isdisjoint(clf.__tags__)] if 'lda' in clf.__tags__ or 'qda' in clf.__tags__ \ or 'feature_selection' in clf.__tags__: return 'large' else: return 'medium' def test_dummy(self): clf = SameSignClassifier(enable_ca=['training_stats']) clf.train(self.data_bin_1) self.assertRaises(UnknownStateError, clf.ca.__getattribute__, "predictions") """Should have no predictions after training. Predictions state should be explicitely disabled""" if not _ENFORCE_CA_ENABLED: self.assertRaises(UnknownStateError, clf.ca.__getattribute__, "trained_dataset") self.assertEqual(clf.ca.training_stats.percent_correct, 100, msg="Dummy clf should train perfectly") self.assertEqual(clf.predict(self.data_bin_1.samples), list(self.data_bin_1.targets)) self.assertEqual(len(clf.ca.predictions), self.data_bin_1.nsamples, msg="Trained classifier stores predictions by default") clf = SameSignClassifier(enable_ca=['trained_dataset']) clf.train(self.data_bin_1) assert_array_equal(clf.ca.trained_dataset.samples, self.data_bin_1.samples) assert_array_equal(clf.ca.trained_dataset.targets, self.data_bin_1.targets) def test_boosted(self): # XXXXXXX # silly test if we get the same result with boosted as with a single one bclf = CombinedClassifier(clfs=[self.clf_sign.clone(), self.clf_sign.clone()]) self.assertEqual(list(bclf.predict(self.data_bin_1.samples)), list(self.data_bin_1.targets), msg="Boosted classifier should work") self.assertEqual(bclf.predict(self.data_bin_1.samples), self.clf_sign.predict(self.data_bin_1.samples), msg="Boosted classifier should have the same as regular") def test_boosted_state_propagation(self): bclf = CombinedClassifier(clfs=[self.clf_sign.clone(), self.clf_sign.clone()], enable_ca=['training_stats']) # check ca enabling propagation self.assertEqual(self.clf_sign.ca.is_enabled('training_stats'), _ENFORCE_CA_ENABLED) self.assertEqual(bclf.clfs[0].ca.is_enabled('training_stats'), True) bclf2 = CombinedClassifier(clfs=[self.clf_sign.clone(), self.clf_sign.clone()], propagate_ca=False, enable_ca=['training_stats']) self.assertEqual(self.clf_sign.ca.is_enabled('training_stats'), _ENFORCE_CA_ENABLED) self.assertEqual(bclf2.clfs[0].ca.is_enabled('training_stats'), _ENFORCE_CA_ENABLED) def test_binary_decorator(self): ds = dataset_wizard(samples=[ [0,0], [0,1], [1,100], [-1,0], [-1,-3], [ 0,-10] ], targets=[ 'sp', 'sp', 'sp', 'dn', 'sn', 'dp']) testdata = [ [0,0], [10,10], [-10, -1], [0.1, -0.1], [-0.2, 0.2] ] # labels [s]ame/[d]ifferent (sign), and [p]ositive/[n]egative first element clf = SameSignClassifier() # lets create classifier to descriminate only between same/different, # which is a primary task of SameSignClassifier bclf1 = BinaryClassifier(clf=clf, poslabels=['sp', 'sn'], neglabels=['dp', 'dn']) orig_labels = ds.targets[:] bclf1.train(ds) self.assertTrue(bclf1.predict(testdata) == [['sp', 'sn'], ['sp', 'sn'], ['sp', 'sn'], ['dp', 'dn'], ['dp', 'dn']]) self.assertTrue((ds.targets == orig_labels).all(), msg="BinaryClassifier should not alter labels") # TODO: XXX finally just make regression/clf separation cleaner @sweepargs(clf=clfswh['!random', 'binary', 'multiclass']) def test_classifier_generalization(self, clf): """Simple test if classifiers can generalize ok on simple data """ te = CrossValidation(clf, NFoldPartitioner(), postproc=mean_sample()) # check the default #self.assertTrue(te.transerror.errorfx is mean_mismatch_error) nclasses = 2 * (1 + int('multiclass' in clf.__tags__)) ds = datasets['uni%d%s' % (nclasses, self._get_clf_ds(clf))] try: cve = te(ds).samples.squeeze() except Exception, e: self.fail("Failed with %s" % e) if cfg.getboolean('tests', 'labile', default='yes'): if nclasses > 2 and \ ((clf.descr is not None and 'on 5%(' in clf.descr) or 'regression_based' in clf.__tags__): # skip those since they are barely applicable/testable here raise SkipTest("Skip testing of cve on %s" % clf) self.assertTrue(cve < 0.25, # TODO: use multinom distribution msg="Got transfer error %g on %s with %d labels" % (cve, ds, len(ds.UT))) # yoh: I guess we have skipped meta constructs because they would # need targets attribute specified in both slave and wrapper @sweepargs(lrn=clfswh['!meta']+regrswh['!meta']) def test_custom_targets(self, lrn): """Simple test if a learner could cope with custom sa not targets """ # Since we are comparing performances of two learners, we need # to assure that if they depend on some random seed -- they # would use the same value. Currently we have such stochastic # behavior in SMLR # yoh: we explicitly seed right before calling a CVs below so # this setting of .seed is of no real effect/testing if 'seed' in lrn.params: from mvpa2 import _random_seed lrn = lrn.clone() # clone the beast lrn.params.seed = _random_seed # reuse the same seed lrn_ = lrn.clone() lrn_.set_space('custom') te = CrossValidation(lrn, NFoldPartitioner()) te_ = CrossValidation(lrn_, NFoldPartitioner()) nclasses = 2 * (1 + int('multiclass' in lrn.__tags__)) dsname = ('uni%dsmall' % nclasses, 'sin_modulated')[int(lrn.__is_regression__)] ds = datasets[dsname] ds_ = ds.copy() ds_.sa['custom'] = ds_.sa['targets'] ds_.sa.pop('targets') self.assertTrue('targets' in ds.sa, msg="'targets' should remain in original ds") try: mvpa2.seed() cve = te(ds) mvpa2.seed() cve_ = te_(ds_) except Exception, e: self.fail("Failed with %r" % e) assert_array_almost_equal(cve, cve_) "We should have got very similar errors while operating on " "'targets' and on 'custom'. Got %r and %r." % (cve, cve_) # TODO: sg/libsvm segfaults # GPR -- non-linear sensitivities if ('has_sensitivity' in lrn.__tags__ and not 'libsvm' in lrn.__tags__ and not ('gpr' in lrn.__tags__ and 'non-linear' in lrn.__tags__) ): mvpa2.seed() s = lrn.get_sensitivity_analyzer()(ds) mvpa2.seed() s_ = lrn_.get_sensitivity_analyzer()(ds_) isreg = lrn.__is_regression__ # ^ is XOR so we shouldn't get get those sa's in # regressions at all self.assertTrue(('custom' in s_.sa) ^ isreg) self.assertTrue(('targets' in s.sa) ^ isreg) self.assertTrue(not 'targets' in s_.sa) self.assertTrue(not 'custom' in s.sa) if not 'smlr' in lrn.__tags__ or \ cfg.getboolean('tests', 'labile', default='yes'): assert_array_almost_equal(s.samples, s_.samples) @sweepargs(clf=clfswh[:] + regrswh[:]) def test_summary(self, clf): """Basic testing of the clf summary """ summary1 = clf.summary() self.assertTrue('not yet trained' in summary1) # Need 2 different datasets for regressions/classifiers dsname = ('uni2small', 'sin_modulated')[int(clf.__is_regression__)] clf.train(datasets[dsname]) summary = clf.summary() # It should get bigger ;) self.assertTrue(len(summary) > len(summary1)) self.assertTrue(not 'not yet trained' in summary) @sweepargs(clf=clfswh[:] + regrswh[:]) def test_degenerate_usage(self, clf): """Test how clf handles degenerate cases """ # Whenever we have only 1 feature with only 0s in it ds1 = datasets['uni2small'][:, [0]] # XXX this very line breaks LARS in many other unittests -- # very interesting effect. but screw it -- for now it will be # this way ds1.samples[:] = 0.0 # all 0s # For regression we need numbers if clf.__is_regression__: ds1.targets = AttributeMap().to_numeric(ds1.targets) #ds2 = datasets['uni2small'][[0], :] #ds2.samples[:] = 0.0 # all 0s clf.ca.change_temporarily( enable_ca=['estimates', 'training_stats']) # Good pukes are good ;-) # TODO XXX add # - ", ds2):" to test degenerate ds with 1 sample # - ds1 but without 0s -- just 1 feature... feature selections # might lead to 'surprises' due to magic in combiners etc for ds in (ds1, ): try: try: clf.train(ds) # should not crash or stall except (ValueError), e: self.fail("Failed to train on degenerate data. Error was %r" % e) except DegenerateInputError: # so it realized that data is degenerate and puked continue # could we still get those? _ = clf.summary() cm = clf.ca.training_stats # If succeeded to train/predict (due to # training_stats) without error -- results better be # at "chance" continue if 'ACC' in cm.stats: self.assertEqual(cm.stats['ACC'], 0.5) else: self.assertTrue(np.isnan(cm.stats['CCe'])) except tuple(_degenerate_allowed_exceptions): pass clf.ca.reset_changed_temporarily() # TODO: sg - remove our limitations, meta, lda, qda and skl -- also @sweepargs(clf=clfswh['oneclass', 'oneclass-binary']) def test_single_class(self, clf): """Test if binary and multiclass can handle single class training/testing """ ds = datasets['uni2small'] ds = ds[ds.sa.targets == 'L0'] # only 1 label assert(ds.sa['targets'].unique == ['L0']) ds_ = list(OddEvenPartitioner().generate(ds))[0] # Here is our "nice" 0.6 substitute for TransferError: trerr = TransferMeasure(clf, Splitter('train'), postproc=BinaryFxNode(mean_mismatch_error, 'targets')) try: err = np.asscalar(trerr(ds_)) except Exception, e: self.fail(str(e)) self.assertTrue(err == 0.) # TODO: validate for regressions as well!!! def test_split_classifier(self): ds = self.data_bin_1 clf = SplitClassifier(clf=SameSignClassifier(), enable_ca=['stats', 'training_stats', 'feature_ids']) clf.train(ds) # train the beast error = clf.ca.stats.error tr_error = clf.ca.training_stats.error clf2 = clf.clone() cv = CrossValidation(clf2, NFoldPartitioner(), postproc=mean_sample(), enable_ca=['stats', 'training_stats']) cverror = cv(ds) cverror = cverror.samples.squeeze() tr_cverror = cv.ca.training_stats.error self.assertEqual(error, cverror, msg="We should get the same error using split classifier as" " using CrossValidation. Got %s and %s" % (error, cverror)) self.assertEqual(tr_error, tr_cverror, msg="We should get the same training error using split classifier as" " using CrossValidation. Got %s and %s" % (tr_error, tr_cverror)) self.assertEqual(clf.ca.stats.percent_correct, 100, msg="Dummy clf should train perfectly") # CV and SplitClassifier should get the same confusion matrices assert_array_equal(clf.ca.stats.matrix, cv.ca.stats.matrix) self.assertEqual(len(clf.ca.stats.sets), len(ds.UC), msg="Should have 1 confusion per each split") self.assertEqual(len(clf.clfs), len(ds.UC), msg="Should have number of classifiers equal # of epochs") self.assertEqual(clf.predict(ds.samples), list(ds.targets), msg="Should classify correctly") # feature_ids must be list of lists, and since it is not # feature-selecting classifier used - we expect all features # to be utilized # NOT ANYMORE -- for BoostedClassifier we have now union of all # used features across slave classifiers. That makes # semantics clear. If you need to get deeper -- use upcoming # harvesting facility ;-) # self.assertEqual(len(clf.feature_ids), len(ds.uniquechunks)) # self.assertTrue(np.array([len(ids)==ds.nfeatures # for ids in clf.feature_ids]).all()) # Just check if we get it at all ;-) summary = clf.summary() @sweepargs(clf_=clfswh['binary', '!meta']) def test_split_classifier_extended(self, clf_): clf2 = clf_.clone() ds = datasets['uni2%s' % self._get_clf_ds(clf2)] clf = SplitClassifier(clf=clf_, #SameSignClassifier(), enable_ca=['stats', 'feature_ids']) clf.train(ds) # train the beast error = clf.ca.stats.error cv = CrossValidation(clf2, NFoldPartitioner(), postproc=mean_sample(), enable_ca=['stats', 'training_stats']) cverror = cv(ds).samples.squeeze() if not 'non-deterministic' in clf.__tags__: self.assertTrue(abs(error-cverror)<0.01, msg="We should get the same error using split classifier as" " using CrossValidation. Got %s and %s" % (error, cverror)) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(error < 0.25, msg="clf should generalize more or less fine. " "Got error %s" % error) self.assertEqual(len(clf.ca.stats.sets), len(ds.UC), msg="Should have 1 confusion per each split") self.assertEqual(len(clf.clfs), len(ds.UC), msg="Should have number of classifiers equal # of epochs") #self.assertEqual(clf.predict(ds.samples), list(ds.targets), # msg="Should classify correctly") def test_split_clf_on_chainpartitioner(self): # pretty much a smoke test for #156 ds = datasets['uni2small'] part = ChainNode([NFoldPartitioner(cvtype=1), Balancer(attr='targets', count=2, limit='partitions', apply_selection=True)]) partitions = list(part.generate(ds)) sclf = SplitClassifier(sample_clf_lin, part, enable_ca=['stats', 'splits']) sclf.train(ds) pred = sclf.predict(ds) assert_equal(len(pred), len(ds)) # rudimentary check assert_equal(len(sclf.ca.splits), len(partitions)) assert_equal(len(sclf.clfs), len(partitions)) # now let's do sensitivity analyzer just in case sclf.untrain() sensana = sclf.get_sensitivity_analyzer() sens = sensana(ds) # basic check that sensitivities varied across splits from mvpa2.mappers.fx import FxMapper sens_stds = FxMapper('samples', np.std, uattrs=['targets'])(sens) assert_true(np.any(sens_stds != 0)) def test_mapped_classifier(self): samples = np.array([ [ 0, 0, -1], [ 1, 0, 1], [-1, -1, 1], [-1, 0, 1], [ 1, -1, 1] ]) for mask, res in (([1, 1, 0], [ 1, 1, 1, -1, -1]), ([1, 0, 1], [-1, 1, -1, -1, 1]), ([0, 1, 1], [-1, 1, -1, 1, -1])): clf = MappedClassifier(clf=self.clf_sign, mapper=mask_mapper(np.array(mask, dtype=bool))) self.assertEqual(clf.predict(samples), res) def test_feature_selection_classifier(self): from mvpa2.featsel.base import \ SensitivityBasedFeatureSelection from mvpa2.featsel.helpers import \ FixedNElementTailSelector # should give lowest weight to the feature with lowest index sens_ana = SillySensitivityAnalyzer() # should give lowest weight to the feature with highest index sens_ana_rev = SillySensitivityAnalyzer(mult=-1) # corresponding feature selections feat_sel = SensitivityBasedFeatureSelection(sens_ana, FixedNElementTailSelector(1, mode='discard')) feat_sel_rev = SensitivityBasedFeatureSelection(sens_ana_rev, FixedNElementTailSelector(1)) samples = np.array([ [0, 0, -1], [1, 0, 1], [-1, -1, 1], [-1, 0, 1], [1, -1, 1] ]) testdata3 = dataset_wizard(samples=samples, targets=1) # dummy train data so proper mapper gets created traindata = dataset_wizard(samples=np.array([ [0, 0, -1], [1, 0, 1] ]), targets=[1, 2]) # targets res110 = [1, 1, 1, -1, -1] res011 = [-1, 1, -1, 1, -1] # first classifier -- 0th feature should be discarded clf011 = FeatureSelectionClassifier(self.clf_sign, feat_sel, enable_ca=['feature_ids']) self.clf_sign.ca.change_temporarily(enable_ca=['estimates']) clf011.train(traindata) self.assertEqual(clf011.predict(testdata3.samples), res011) # just silly test if we get values assigned in the 'ProxyClassifier' self.assertTrue(len(clf011.ca.estimates) == len(res110), msg="We need to pass values into ProxyClassifier") self.clf_sign.ca.reset_changed_temporarily() self.assertEqual(clf011.mapper._oshape, (2,)) "Feature selection classifier had to be trained on 2 features" # first classifier -- last feature should be discarded clf011 = FeatureSelectionClassifier(self.clf_sign, feat_sel_rev) clf011.train(traindata) self.assertEqual(clf011.predict(testdata3.samples), res110) def test_feature_selection_classifier_with_regression(self): from mvpa2.featsel.base import \ SensitivityBasedFeatureSelection from mvpa2.featsel.helpers import \ FixedNElementTailSelector if sample_clf_reg is None: # none regression was found, so nothing to test return # should give lowest weight to the feature with lowest index sens_ana = SillySensitivityAnalyzer() # corresponding feature selections feat_sel = SensitivityBasedFeatureSelection(sens_ana, FixedNElementTailSelector(1, mode='discard')) # now test with regression-based classifier. The problem is # that it is determining predictions twice from values and # then setting the values from the results, which the second # time is set to predictions. The final outcome is that the # values are actually predictions... dat = dataset_wizard(samples=np.random.randn(4, 10), targets=[-1, -1, 1, 1]) clf_reg = FeatureSelectionClassifier(sample_clf_reg, feat_sel) clf_reg.train(dat) _ = clf_reg.predict(dat.samples) self.failIf((np.array(clf_reg.ca.estimates) - clf_reg.ca.predictions).sum()==0, msg="Values were set to the predictions in %s." % sample_clf_reg) @reseed_rng() def test_tree_classifier(self): """Basic tests for TreeClassifier """ ds = datasets['uni4medium'] # make it simple of the beast -- take only informative ones # because classifiers for the tree are selected randomly, so # performance varies a lot and we just need to check on # correct operation ds = ds[:, ds.fa.nonbogus_targets != [None]] clfs = clfswh['binary'] # pool of classifiers # Lets permute so each time we try some different combination # of the classifiers but exclude those operating on %s of # features since we might not have enough for that clfs = [clfs[i] for i in np.random.permutation(len(clfs)) if not '%' in str(clfs[i])] # NB: It is necessary that the same classifier was not used at # different nodes, since it would be re-trained for a new set # of targets, thus leading to incorrect behavior/high error. # # Clone only those few leading ones which we will use # throughout the test clfs = [clf.clone() for clf in clfs[:4]] # Test conflicting definition tclf = TreeClassifier(clfs[0], { 'L0+2': (('L0', 'L2'), clfs[1]), 'L2+3': (('L2', 'L3'), clfs[2])}) self.assertRaises(ValueError, tclf.train, ds) """Should raise exception since label 2 is in both""" # Test insufficient definition tclf = TreeClassifier(clfs[0], { 'L0+5': (('L0', 'L5'), clfs[1]), 'L2+3': (('L2', 'L3'), clfs[2])}) self.assertRaises(ValueError, tclf.train, ds) """Should raise exception since no group for L1""" # proper definition now tclf = TreeClassifier(clfs[0], { 'L0+1': (('L0', 'L1'), clfs[1]), 'L2+3': (('L2', 'L3'), clfs[2])}) # Lets test train/test cycle using CVTE cv = CrossValidation(tclf, OddEvenPartitioner(), postproc=mean_sample(), enable_ca=['stats', 'training_stats']) cverror = cv(ds).samples.squeeze() try: rtclf = repr(tclf) except: self.fail(msg="Could not obtain repr for TreeClassifier") # Test accessibility of .clfs self.assertTrue(tclf.clfs['L0+1'] is clfs[1]) self.assertTrue(tclf.clfs['L2+3'] is clfs[2]) cvtrc = cv.ca.training_stats cvtc = cv.ca.stats if cfg.getboolean('tests', 'labile', default='yes'): # just a dummy check to make sure everything is working self.assertTrue(cvtrc != cvtc) self.assertTrue(cverror < 0.3, msg="Got too high error = %s using %s" % (cverror, tclf)) # Test trailing nodes with no classifier # That is why we use separate pool of classifiers here # (that is probably old/not-needed since switched to use clones) clfs_mc = clfswh['multiclass'] # pool of classifiers clfs_mc = [clfs_mc[i] for i in np.random.permutation(len(clfs_mc)) if not '%' in str(clfs_mc[i])] clfs_mc = [clf.clone() for clf in clfs_mc[:4]] # and clones again tclf = TreeClassifier(clfs_mc[0], { 'L0': (('L0',), None), 'L1+2+3': (('L1', 'L2', 'L3'), clfs_mc[1])}) cv = CrossValidation(tclf, OddEvenPartitioner(), postproc=mean_sample(), enable_ca=['stats', 'training_stats']) cverror = np.asscalar(cv(ds)) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(cverror < 0.3, msg="Got too high error = %s using %s" % (cverror, tclf)) @sweepargs(clf=clfswh[:]) def test_values(self, clf): if isinstance(clf, MulticlassClassifier): # TODO: handle those values correctly return ds = datasets['uni2small'] clf.ca.change_temporarily(enable_ca = ['estimates']) cv = CrossValidation(clf, OddEvenPartitioner(), enable_ca=['stats', 'training_stats']) _ = cv(ds) #print clf.descr, clf.values[0] # basic test either we get 1 set of values per each sample self.assertEqual(len(clf.ca.estimates), ds.nsamples/2) clf.ca.reset_changed_temporarily() # TODO: PLR expects [0,1], not [-1, 1] and apparently we do not # do remapping #@sweepargs(clf=clfswh['!plr', 'binary']) # For now just test on a representative SVM @sweepargs(clf=clfswh['linear', 'svm', 'libsvm', '!meta']) def test_multiclass_classifier(self, clf): # Force non-dataspecific C value. # Otherwise multiclass libsvm builtin and our MultiClass would differ # in results svm = clf.clone() # operate on clone to avoid side-effects if 'C' in svm.params and svm.params.C<0: svm.params.C = 1.0 # reset C to be 1 svm2 = svm.clone() svm2.ca.enable(['training_stats']) mclf = MulticlassClassifier(clf=svm, enable_ca=['training_stats']) # with explicit MaximalVote with the conditional attributes # enabled mclf_mv = MulticlassClassifier(clf=svm, combiner=MaximalVote(enable_ca=['estimates', 'predictions']), enable_ca=['training_stats']) ds_train = datasets['uni2small'] for clf_ in svm2, mclf, mclf_mv: clf_.train(ds_train) s1 = str(mclf.ca.training_stats) s2 = str(svm2.ca.training_stats) s3 = str(mclf_mv.ca.training_stats) self.assertEqual(s1, s2, msg="Multiclass clf should provide same results as built-in " "libsvm's %s. Got %s and %s" % (svm2, s1, s2)) self.assertEqual(s1, s3, msg="%s should have used maxvote resolver by default" "so results should have been identical. Got %s and %s" % (mclf, s1, s3)) assert_equal(len(mclf_mv.combiner.ca.estimates), len(mclf_mv.combiner.ca.predictions)) # They should have came from assessing training_stats ca being # enabled # recompute accuracy on predictions for training_stats training_acc = np.sum(mclf_mv.combiner.ca.predictions == ds_train.targets) / float(len(ds_train)) # should match assert_equal(mclf_mv.ca.training_stats.stats['ACC'], training_acc) svm2.untrain() self.assertTrue(svm2.trained == False, msg="Un-Trained SVM should be untrained") self.assertTrue(np.array([x.trained for x in mclf.clfs]).all(), msg="Trained Boosted classifier should have all primary classifiers trained") self.assertTrue(mclf.trained, msg="Trained Boosted classifier should be marked as trained") mclf.untrain() self.assertTrue(not mclf.trained, msg="UnTrained Boosted classifier should not be trained") self.assertTrue(not np.array([x.trained for x in mclf.clfs]).any(), msg="UnTrained Boosted classifier should have no primary classifiers trained") # TODO: test combiners, e.g. MaximalVote and ca they store # XXX meta should also work but TODO @sweepargs(clf=clfswh['svm', '!meta']) def test_svms(self, clf): knows_probabilities = \ 'probabilities' in clf.ca.keys() and clf.params.probability enable_ca = ['estimates'] if knows_probabilities: enable_ca += ['probabilities'] clf.ca.change_temporarily(enable_ca = enable_ca) spl = Splitter('train', count=2) traindata, testdata = list(spl.generate(datasets['uni2small'])) clf.train(traindata) predicts = clf.predict(testdata.samples) # values should be different from predictions for SVMs we have self.assertTrue(np.any(predicts != clf.ca.estimates)) if knows_probabilities and clf.ca.is_set('probabilities'): # XXX test more thoroughly what we are getting here ;-) self.assertEqual( len(clf.ca.probabilities), len(testdata.samples) ) clf.ca.reset_changed_temporarily() @sweepargs(clf=clfswh['retrainable']) @reseed_rng() def test_retrainables(self, clf): # XXX we agreed to not worry about this for the initial 0.6 release raise SkipTest # we need a copy since will tune its internals later on clf = clf.clone() clf.ca.change_temporarily(enable_ca = ['estimates'], # ensure that it does do predictions # while training disable_ca=['training_stats']) clf_re = clf.clone() # TODO: .retrainable must have a callback to call smth like # _set_retrainable clf_re._set_retrainable(True) # need to have high snr so we don't 'cope' with problematic # datasets since otherwise unittests would fail. dsargs = {'perlabel':50, 'nlabels':2, 'nfeatures':5, 'nchunks':1, 'nonbogus_features':[2,4], 'snr': 5.0} ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # NB datasets will be changed by the end of testing, so if # are to change to use generic datasets - make sure to copy # them here ds = deepcopy(datasets['uni2large']) clf.untrain() clf_re.untrain() trerr = TransferMeasure(clf, Splitter('train'), postproc=BinaryFxNode(mean_mismatch_error, 'targets')) trerr_re = TransferMeasure(clf_re, Splitter('train'), disable_ca=['training_stats'], postproc=BinaryFxNode(mean_mismatch_error, 'targets')) # Just check for correctness of retraining err_1 = np.asscalar(trerr(ds)) self.assertTrue(err_1<0.3, msg="We should test here on easy dataset. Got error of %s" % err_1) values_1 = clf.ca.estimates[:] # some times retraining gets into deeper optimization ;-) eps = 0.05 corrcoef_eps = 0.85 # just to get no failures... usually > 0.95 def batch_test(retrain=True, retest=True, closer=True): err = np.asscalar(trerr(ds)) err_re = np.asscalar(trerr_re(ds)) corr = np.corrcoef( clf.ca.estimates, clf_re.ca.estimates)[0, 1] corr_old = np.corrcoef(values_1, clf_re.ca.estimates)[0, 1] if __debug__: debug('TEST', "Retraining stats: errors %g %g corr %g " "with old error %g corr %g" % (err, err_re, corr, err_1, corr_old)) self.assertTrue(clf_re.ca.retrained == retrain, ("Must fully train", "Must retrain instead of full training")[retrain]) self.assertTrue(clf_re.ca.repredicted == retest, ("Must fully test", "Must retest instead of full testing")[retest]) self.assertTrue(corr > corrcoef_eps, msg="Result must be close to the one without retraining." " Got corrcoef=%s" % (corr)) if closer: self.assertTrue( corr >= corr_old, msg="Result must be closer to current without retraining" " than to old one. Got corrcoef=%s" % (corr_old)) # Check sequential retraining/retesting for i in xrange(3): flag = bool(i!=0) # ok - on 1st call we should train/test, then retrain/retest # and we can't compare for closinest to old result since # we are working on the same data/classifier batch_test(retrain=flag, retest=flag, closer=False) # should retrain nicely if we change a parameter if 'C' in clf.params: clf.params.C *= 0.1 clf_re.params.C *= 0.1 batch_test() elif 'sigma_noise' in clf.params: clf.params.sigma_noise *= 100 clf_re.params.sigma_noise *= 100 batch_test() else: raise RuntimeError, \ 'Please implement testing while changing some of the ' \ 'params for clf %s' % clf # should retrain nicely if we change kernel parameter if hasattr(clf, 'kernel_params') and len(clf.kernel_params): clf.kernel_params.gamma = 0.1 clf_re.kernel_params.gamma = 0.1 # retest is false since kernel got recomputed thus # can't expect to use the same kernel batch_test(retest=not('gamma' in clf.kernel_params)) # should retrain nicely if we change labels permute = AttributePermutator('targets', assure=True) oldlabels = dstrain.targets[:] dstrain = permute(dstrain) self.assertTrue((oldlabels != dstrain.targets).any(), msg="We should succeed at permutting -- now got the same targets") ds = vstack((dstrain, dstest)) batch_test() # Change labels in testing oldlabels = dstest.targets[:] dstest = permute(dstest) self.assertTrue((oldlabels != dstest.targets).any(), msg="We should succeed at permutting -- now got the same targets") ds = vstack((dstrain, dstest)) batch_test() # should re-train if we change data # reuse trained SVM and its 'final' optimization point if not clf.__class__.__name__ in ['GPR']: # on GPR everything depends on the data ;-) oldsamples = dstrain.samples.copy() dstrain.samples[:] += dstrain.samples*0.05 self.assertTrue((oldsamples != dstrain.samples).any()) ds = vstack((dstrain, dstest)) batch_test(retest=False) clf.ca.reset_changed_temporarily() # test retrain() # TODO XXX -- check validity clf_re.retrain(dstrain); self.assertTrue(clf_re.ca.retrained) clf_re.retrain(dstrain, labels=True); self.assertTrue(clf_re.ca.retrained) clf_re.retrain(dstrain, traindataset=True); self.assertTrue(clf_re.ca.retrained) # test repredict() clf_re.repredict(dstest.samples); self.assertTrue(clf_re.ca.repredicted) self.assertRaises(RuntimeError, clf_re.repredict, dstest.samples, labels=True) """for now retesting with anything changed makes no sense""" clf_re._set_retrainable(False) def test_generic_tests(self): """Test all classifiers for conformant behavior """ for clf_, traindata in \ [(clfswh['binary'], datasets['dumb2']), (clfswh['multiclass'], datasets['dumb'])]: traindata_copy = deepcopy(traindata) # full copy of dataset for clf in clf_: clf.train(traindata) self.assertTrue( (traindata.samples == traindata_copy.samples).all(), "Training of a classifier shouldn't change original dataset") # TODO: enforce uniform return from predict?? #predicted = clf.predict(traindata.samples) #self.assertTrue(isinstance(predicted, np.ndarray)) # Just simple test that all of them are syntaxed correctly self.assertTrue(str(clf) != "") self.assertTrue(repr(clf) != "") # TODO: unify str and repr for all classifiers # XXX TODO: should work on smlr, knn, ridgereg, lars as well! but now # they fail to train # svmocas -- segfaults -- reported to mailing list # GNB, LDA, QDA -- cannot train since 1 sample isn't sufficient # to assess variance @sweepargs(clf=clfswh['!random', '!smlr', '!knn', '!gnb', '!lda', '!qda', '!lars', '!meta', '!ridge', '!needs_population']) def test_correct_dimensions_order(self, clf): """To check if known/present Classifiers are working properly with samples being first dimension. Started to worry about possible problems while looking at sg where samples are 2nd dimension """ # specially crafted dataset -- if dimensions are flipped over # the same storage, problem becomes unseparable. Like in this case # incorrect order of dimensions lead to equal samples [0, 1, 0] traindatas = [ dataset_wizard(samples=np.array([ [0, 0, 1.0], [1, 0, 0] ]), targets=[0, 1]), dataset_wizard(samples=np.array([ [0, 0.0], [1, 1] ]), targets=[0, 1])] clf.ca.change_temporarily(enable_ca = ['training_stats']) for traindata in traindatas: clf.train(traindata) self.assertEqual(clf.ca.training_stats.percent_correct, 100.0, "Classifier %s must have 100%% correct learning on %s. Has %f" % (`clf`, traindata.samples, clf.ca.training_stats.percent_correct)) # and we must be able to predict every original sample thus for i in xrange(traindata.nsamples): sample = traindata.samples[i,:] predicted = clf.predict([sample]) self.assertEqual([predicted], traindata.targets[i], "We must be able to predict sample %s using " % sample + "classifier %s" % `clf`) clf.ca.reset_changed_temporarily() @sweepargs(regr=regrswh[:]) def test_regression_as_classifier(self, regr): """Basic tests of metaclass for using regressions as classifiers """ for dsname in 'uni2small', 'uni4small': ds = datasets[dsname] clf = RegressionAsClassifier(regr, enable_ca=['distances']) cv = CrossValidation(clf, OddEvenPartitioner(), postproc=mean_sample(), enable_ca=['stats', 'training_stats']) error = cv(ds).samples.squeeze() nlabels = len(ds.uniquetargets) if nlabels == 2 \ and cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(error < 0.3, msg="Got error %.2f on %s dataset" % (error, dsname)) # Check if does not puke on repr and str self.assertTrue(str(clf) != "") self.assertTrue(repr(clf) != "") self.assertEqual(clf.ca.distances.shape, (ds.nsamples / 2, nlabels)) #print "Using %s " % regr, error # Just validate that everything is ok #self.assertTrue(str(cv.ca.stats) != "") @reseed_rng() def test_gideon_weird_case(self): """Test if MappedClassifier could handle a mapper altering number of samples 'The utter collapse' -- communicated by Peter J. Kohler Desire to collapse all samples per each category in training and testing sets, thus resulting only in a single sample/category per training and per testing. It is a peculiar scenario which pin points the problem that so far mappers assumed not to change number of samples """ from mvpa2.mappers.fx import mean_group_sample from mvpa2.clfs.knn import kNN from mvpa2.mappers.base import ChainMapper ds = datasets['uni2large'].copy() #ds = ds[ds.sa.chunks < 9] accs = [] k = 1 # for kNN nf = 1 # for NFoldPartitioner for i in xrange(1): # # of random runs ds.samples = np.random.randn(*ds.shape) # # There are 3 ways to accomplish needed goal # # 0. Hard way: overcome the problem by manually # pre-splitting/meaning in a loop from mvpa2.clfs.transerror import ConfusionMatrix partitioner = NFoldPartitioner(nf) meaner = mean_group_sample(['targets', 'partitions']) cm = ConfusionMatrix() te = TransferMeasure(kNN(k), Splitter('partitions'), postproc=BinaryFxNode(mean_mismatch_error, 'targets'), enable_ca = ['stats'] ) errors = [] for part in partitioner.generate(ds): ds_meaned = meaner(part) errors.append(np.asscalar(te(ds_meaned))) cm += te.ca.stats #print i, cm.stats['ACC'] accs.append(cm.stats['ACC']) if False: # not yet working -- see _tent/allow_ch_nsamples # branch for attempt to make it work # 1. This is a "native way" IF we allow change of number # of samples via _call to be done by MappedClassifier # while operating solely on the mapped dataset clf2 = MappedClassifier(clf=kNN(k), #clf, mapper=mean_group_sample(['targets', 'partitions'])) cv = CrossValidation(clf2, NFoldPartitioner(nf), postproc=None, enable_ca=['stats']) # meaning all should be ok since we should have ballanced # sets across all chunks here errors_native = cv(ds) self.assertEqual(np.max(np.abs(errors_native.samples[:,0] - errors)), 0) # 2. Work without fixes to MappedClassifier allowing # change of # of samples # # CrossValidation will operate on a chain mapper which # would perform necessary meaning first before dealing with # kNN cons: .stats would not be exposed since ChainMapper # doesn't expose them from ChainMapper (yet) if __debug__ and 'ENFORCE_CA_ENABLED' in debug.active: raise SkipTest("Known to fail while trying to enable " "training_stats for the ChainMapper") cv2 = CrossValidation(ChainMapper([mean_group_sample(['targets', 'partitions']), kNN(k)], space='targets'), NFoldPartitioner(nf), postproc=None) errors_native2 = cv2(ds) self.assertEqual(np.max(np.abs(errors_native2.samples[:,0] - errors)), 0) # All of the ways should provide the same results #print i, np.max(np.abs(errors_native.samples[:,0] - errors)), \ # np.max(np.abs(errors_native2.samples[:,0] - errors)) if False: # just to investigate the distribution if we have enough iterations import pylab as pl uaccs = np.unique(accs) step = np.asscalar(np.unique(np.round(uaccs[1:] - uaccs[:-1], 4))) bins = np.linspace(0., 1., np.round(1./step+1)) xx = pl.hist(accs, bins=bins, align='left') pl.xlim((0. - step/2, 1.+step/2)) @sweepargs(clf=clfswh['multiclass']) def test_diff_len_labels_str(self, clf): # check if the classifier can handle a dataset with labels as string of # variable length # was failing on TreeClassifier due to np.str dtype being assumed from first # returned value ds = datasets['uni4small'].copy() newlabels = dict([(l,l+'_'*li) for li,l in enumerate(ds.uniquetargets)]) ds.targets = [newlabels[l] for l in ds.targets] clf2 = clf.clone() clf2.train(ds) predictions = clf2.predict(ds) # predictions on the same ds as training should give same labels assert(set(ds.uniquetargets).issuperset(predictions)) def test_diff_len_labels_str_treeclassifier(self): # check if the classifier can handle a dataset with labels as string of # variable length # was failing on TreeClassifier due to np.str dtype being assumed from first # returned value ds = datasets['uni4small'].copy() newlabels = dict([(l,l+'_'*li) for li,l in enumerate(ds.uniquetargets)]) ds.targets = [newlabels[l] for l in ds.targets] clf = TreeClassifier(mvpa2.testing.clfs.SVM(), { 'group1':(ds.uniquetargets[:2], mvpa2.testing.clfs.SVM()), 'group2':(ds.uniquetargets[2:], mvpa2.testing.clfs.SVM())}) clf.train(ds) predictions = clf.predict(ds) # predictions on the same ds as training should give same labels assert(np.all(np.unique(predictions) == ds.uniquetargets)) def suite(): # pragma: no cover return unittest.makeSuite(ClassifiersTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_clfcrossval.py000066400000000000000000000132631323370031300212420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA classifier cross-validation""" from mvpa2.testing.tools import assert_equal, ok_, assert_array_equal from mvpa2.base.node import ChainNode from mvpa2.generators.partition import NFoldPartitioner from mvpa2.generators.permutation import AttributePermutator from mvpa2.measures.base import CrossValidation from mvpa2.generators.splitters import Splitter from mvpa2.datasets.base import Dataset from mvpa2.clfs.base import Classifier from mvpa2.base.state import ConditionalAttribute from mvpa2.testing import * from mvpa2.testing.datasets import pure_multivariate_signal, get_mv_pattern from mvpa2.testing.clfs import * class CrossValidationTests(unittest.TestCase): def test_simple_n_minus_one_cv(self): data = get_mv_pattern(3) data.init_origids('samples') self.assertTrue( data.nsamples == 120 ) self.assertTrue( data.nfeatures == 2 ) self.assertTrue( (data.sa.targets == \ [0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0] * 6).all()) self.assertTrue( (data.sa.chunks == \ [k for k in range(1, 7) for i in range(20)]).all()) assert_equal(len(np.unique(data.sa.origids)), data.nsamples) cv = CrossValidation(sample_clf_nl, NFoldPartitioner(), enable_ca=['stats', 'training_stats']) # 'samples_error']) results = cv(data) self.assertTrue((results.samples < 0.2).all() and (results.samples >= 0.0).all()) # TODO: test accessibility of {training_,}stats{,s} of # CrossValidatedTransferError # not yet implemented, and no longer this way #self.assertTrue(isinstance(cv.ca.samples_error, dict)) #self.assertTrue(len(cv.ca.samples_error) == data.nsamples) ## one value for each origid #assert_array_equal(sorted(cv.ca.samples_error.keys()), # sorted(data.sa.origids)) #for k, v in cv.ca.samples_error.iteritems(): # self.assertTrue(len(v) == 1) def test_noise_classification(self): # get a dataset with a very high SNR data = get_mv_pattern(10) # do crossval with default errorfx and 'mean' combiner cv = CrossValidation(sample_clf_nl, NFoldPartitioner()) # must return a scalar value result = cv(data) # must be perfect self.assertTrue((result.samples < 0.05).all()) # do crossval with permuted regressors cv = CrossValidation(sample_clf_nl, ChainNode([NFoldPartitioner(), AttributePermutator('targets', count=10)], space='partitions')) results = cv(data) # results must not be the same self.assertTrue(len(np.unique(results.samples))>1) # must be at chance level pmean = np.array(results).mean() self.assertTrue( pmean < 0.58 and pmean > 0.42 ) def test_unpartitioned_cv(self): data = get_mv_pattern(10) # only one big chunk data.sa.chunks[:] = 1 cv = CrossValidation(sample_clf_nl, NFoldPartitioner()) # need to fail, because it can't be split into training and testing assert_raises(ValueError, cv, data) def test_cv_no_generator(self): ds = Dataset(np.arange(4), sa={'partitions': [1, 1, 2, 2], 'targets': ['a', 'b', 'c', 'd']}) class Measure(Classifier): def _train(self, ds_): assert_array_equal(ds_.samples, ds.samples[:2]) assert_array_equal(ds_.sa.partitions, [1] * len(ds_)) def _predict(self, ds_): # also called for estimating training error assert(ds_ is not ds) # we pass a shallow copy assert(len(ds_) < len(ds)) assert_equal(len(ds_.sa['partitions'].unique), 1) return ['c', 'd'] measure = Measure() cv = CrossValidation(measure) res = cv(ds) assert_array_equal(res, [[0]]) # we did perfect here ;) def test_cv_no_generator_custom_splitter(self): ds = Dataset(np.arange(4), sa={'category': ['to', 'to', 'from', 'from'], 'targets': ['a', 'b', 'c', 'd']}) class Measure(Classifier): def _train(self, ds_): assert_array_equal(ds_.samples, ds.samples[2:]) assert_array_equal(ds_.sa.category, ['from'] * len(ds_)) def _predict(self, ds_): assert(ds_ is not ds) # we pass a shallow copy # could be called to predit training or testing data if np.all(ds_.sa.targets != ['c', 'd']): assert_array_equal(ds_.samples, ds.samples[:2]) assert_array_equal(ds_.sa.category, ['to'] * len(ds_)) else: assert_array_equal(ds_.sa.category, ['from'] * len(ds_)) return ['c', 'd'] measure = Measure() cv = CrossValidation(measure, splitter=Splitter('category', ['from', 'to'])) res = cv(ds) assert_array_equal(res, [[1]]) # failed perfectly ;-) def suite(): # pragma: no cover return unittest.makeSuite(CrossValidationTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_cmdline.py000066400000000000000000000027171323370031300203360ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA cmdline helpers""" import unittest from mvpa2.testing import * from mvpa2.misc.cmdline import * if __debug__: from mvpa2.base import debug class CmdlineHelpersTest(unittest.TestCase): def test_basic(self): """Test if we are not missing basic parts""" globals_ = globals() for member in [#'_verbose_callback', 'parser', 'opt', 'opts']: self.assertTrue(member in globals_, msg="We must have imported %s from mvpa2.misc.cmdline!" % member) @sweepargs(example=[ ('targets:rest', None, [('targets', ['rest'])]), ('targets:rest;trial:bad,crap,shit', None, [('targets', ['rest']), ('trial', ['bad', 'crap', 'shit'])]), ]) def test_split_comma_semicolon_lists(self, example): s, dtype, t = example v = split_comma_semicolon_lists(s, dtype=dtype) assert_equal(v, t) def suite(): # pragma: no cover return unittest.makeSuite(CmdlineHelpersTest) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_cmdline_ttest.py000066400000000000000000000057341323370031300215630ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA cmdline ttest""" from mvpa2.testing import * from mvpa2 import pymvpa_dataroot skip_if_no_external('h5py') from mvpa2.cmdline.cmd_ttest import run, guess_backend from mvpa2.datasets import Dataset from mvpa2.datasets.mri import fmri_dataset from mvpa2.base.hdf5 import h5save import sys from tempfile import mkdtemp from shutil import rmtree import numpy as np from mvpa2.misc.stats import ttest_1samp import scipy.stats as stats from os.path import join as pjoin import unittest if __debug__: from mvpa2.base import debug def test_guess_backend(): assert_equal('nifti', guess_backend('meh.nii.gz')) assert_equal('nifti', guess_backend('meh.nii')) assert_equal('hdf5', guess_backend('meh.hdf5')) assert_equal('hdf5', guess_backend('meh.h5')) assert_equal('nifti', guess_backend('meh.tar')) # test that using a mask works datafn = pjoin(pymvpa_dataroot, 'haxby2001/sub001/BOLD/task001_run001/bold_25mm.nii.gz') maskfn = pjoin(pymvpa_dataroot, 'haxby2001/sub001/masks/25mm/brain.nii.gz') class TestCmdlineTtest(unittest.TestCase): def setUp(self): self.tmpdir = mkdtemp() data_ = fmri_dataset(datafn) datafn_hdf5 = pjoin(self.tmpdir, 'datain.hdf5') h5save(datafn_hdf5, data_) mask_ = fmri_dataset(maskfn) maskfn_hdf5 = pjoin(self.tmpdir, 'maskfn.hdf5') h5save(maskfn_hdf5, mask_) self.datafn = [datafn, datafn_hdf5] self.outfn = [pjoin(self.tmpdir, 'output') + ext for ext in ['.nii.gz', '.nii', '.hdf5', '.h5']] self.maskfn = ['', maskfn, maskfn_hdf5] def tearDown(self): shutil.rmtree(self.tmpdir) @staticmethod def run_ttest(data, outfn, stat, alternative, mask): class FakeArg(object): def __init__(self): self.data = [] self.chance_level = 0. self.alternative = 'two-sided' self.stat = 'z' self.mask = '' self.output = '' self.isample = 0 args = FakeArg() args.chance_level = 0. args.alternative = alternative args.stat = stat args.mask = mask args.data = [data for _ in range(3)] args.output = outfn run(args) @sweepargs(stat=['z', 'p', 't']) @sweepargs(alternative=['two-sided', 'greater']) def test_cmdline_args(self, stat, alternative): for data in self.datafn: for mask in self.maskfn: for outfn in self.outfn: self.run_ttest(data, outfn, stat, alternative, mask) pymvpa2-2.6.4/mvpa2/tests/test_collections.py000066400000000000000000000143011323370031300212310ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for attribute collections and their collectables''' import numpy as np import copy import sys from mvpa2.testing.tools import assert_raises, assert_false, assert_equal, \ assert_true, assert_array_equal, assert_array_almost_equal, reseed_rng from mvpa2.testing import sweepargs from mvpa2.base.collections import Collectable, ArrayCollectable, \ SampleAttributesCollection from mvpa2.base.attributes import ConditionalAttribute from mvpa2.base.node import Node from mvpa2.measures.base import Measure, RepeatedMeasure from mvpa2.clfs.transerror import ConfusionMatrix def test_basic_collectable(): c = Collectable() # empty by default assert_equal(c.name, None) assert_equal(c.value, None) assert_equal(c.__doc__, None) # late assignment c.name = 'somename' c.value = 12345 assert_equal(c.name, 'somename') assert_equal(c.value, 12345) # immediate content c = Collectable('value', 'myname', "This is a test") assert_equal(c.name, 'myname') assert_equal(c.value, 'value') assert_equal(c.__doc__, "This is a test") assert_equal(str(c), 'myname') # repr e = eval(repr(c)) assert_equal(e.name, 'myname') assert_equal(e.value, 'value') assert_equal(e.__doc__, "This is a test") # shallow copy does not create a view of value array c.value = np.arange(5) d = copy.copy(c) assert_false(d.value.base is c.value) # names starting with _ are not allowed assert_raises(ValueError, c._set_name, "_underscore") @reseed_rng() def test_array_collectable(): c = ArrayCollectable() # empty by default assert_equal(c.name, None) assert_equal(c.value, None) # late assignment c.name = 'somename' assert_raises(ValueError, c._set, 12345) assert_equal(c.value, None) c.value = np.arange(5) assert_equal(c.name, 'somename') assert_array_equal(c.value, np.arange(5)) # immediate content data = np.random.random(size=(3,10)) c = ArrayCollectable(data.copy(), 'myname', "This is a test", length=3) assert_equal(c.name, 'myname') assert_array_equal(c.value, data) assert_equal(c.__doc__, "This is a test") assert_equal(str(c), 'myname') # repr from numpy import array e = eval(repr(c)) assert_equal(e.name, 'myname') assert_array_almost_equal(e.value, data) assert_equal(e.__doc__, "This is a test") # cannot assign array of wrong length assert_raises(ValueError, c._set, np.arange(5)) assert_equal(len(c), 3) # shallow copy DOES create a view of value array c.value = np.arange(3) d = copy.copy(c) assert_true(d.value.base is c.value) # names starting with _ are not allowed assert_raises(ValueError, c._set_name, "_underscore") @sweepargs(a=( np.arange(4), # note: numpy casts int(1) it into dtype=float due to presence of # nan since there is no int('nan'), so float right away [1., np.nan], np.array((1, np.nan)), [1, None], [np.nan, None], [1, 2.0, np.nan, None, "string"], np.arange(6).reshape((2, -1)), # 2d's unique np.array([(1, 'mom'), (2,)], dtype=object), # elaborate object ndarray )) def test_array_collectable_unique(a): c = ArrayCollectable(a) a_flat = np.asanyarray(a).ravel() # Since nan != nan, we better compare based on string # representation here # And sort since order of those is not guaranteed (failed test # on squeeze) def repr_(x): x_ = set(x) if sys.version_info[0] < 3: x_ = list(x_) return repr(sorted(x_)) else: return repr(np.sort(x_)) assert_equal(repr_(a_flat), repr_(c.unique)) # even if we request it 2nd time ;) assert_equal(repr_(a_flat), repr_(c.unique)) assert_equal(len(a_flat), len(c.unique)) c2 = ArrayCollectable(list(a_flat) + [float('nan')]) # and since nan != nan, we should get new element assert_equal(len(c2.unique), len(c.unique) + 1) def test_collections(): sa = SampleAttributesCollection() assert_equal(len(sa), 0) assert_raises(ValueError, sa.__setitem__, 'test', 0) l = range(5) sa['test'] = l # auto-wrapped assert_true(isinstance(sa['test'], ArrayCollectable)) assert_equal(len(sa), 1) # names which are already present in dict interface assert_raises(ValueError, sa.__setitem__, 'values', range(5)) sa_c = copy.deepcopy(sa) assert_equal(len(sa), len(sa_c)) assert_array_equal(sa.test, sa_c.test) class TestNodeOffDefault(Node): test = ConditionalAttribute(enabled=False, doc="OffTest") stats = ConditionalAttribute(enabled=False, doc="OffStats") class TestNodeOnDefault(Node): test = ConditionalAttribute(enabled=True, doc="OnTest") stats = ConditionalAttribute(enabled=True, doc="OnStats") def test_conditional_attr(): import copy import cPickle for node in (TestNodeOnDefault(enable_ca=['test', 'stats']), TestNodeOffDefault(enable_ca=['test', 'stats'])): node.ca.test = range(5) node.ca.stats = ConfusionMatrix(labels=['one', 'two']) node.ca.stats.add(('one', 'two', 'one', 'two'), ('one', 'two', 'two', 'one')) node.ca.stats.compute() dc_node = copy.deepcopy(node) assert_equal(set(node.ca.enabled), set(dc_node.ca.enabled)) assert(node.ca['test'].enabled) assert(node.ca['stats'].enabled) assert_array_equal(node.ca['test'].value, dc_node.ca['test'].value) assert_array_equal(node.ca['stats'].value.matrix, dc_node.ca['stats'].value.matrix) # check whether values survive pickling pickled = cPickle.dumps(node) up_node = cPickle.loads(pickled) assert_array_equal(up_node.ca['test'].value, range(5)) assert_array_equal(up_node.ca['stats'].value.matrix, node.ca['stats'].value.matrix) pymvpa2-2.6.4/mvpa2/tests/test_compound.py000066400000000000000000000071031323370031300205410ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for some Fx and Compound learners""" import numpy as np from mvpa2.testing import * from mvpa2.base.learner import Learner, CompoundLearner, \ ChainLearner, CombinedLearner from mvpa2.base.node import Node, CompoundNode, \ ChainNode, CombinedNode from mvpa2.datasets.base import AttrDataset class FxNode(Node): def __init__(self, f, space='targets', pass_attr=None, postproc=None, **kwargs): super(FxNode, self).__init__(space, pass_attr, postproc, **kwargs) self.f = f def _call(self, ds): cp = ds.copy() cp.samples = self.f(ds.samples) return cp class FxyLearner(Learner): def __init__(self, f): super(FxyLearner, self).__init__() self.f = f self.x = None def _train(self, ds): self.x = ds.samples def _call(self, ds): cp = ds.copy() cp.samples = self.f(self.x)(ds.samples) return cp class CompoundTests(unittest.TestCase): def test_compound_node(self): data = np.asarray([[1, 2, 3, 4]], dtype=np.float_).T ds = AttrDataset(data, sa=dict(targets=[0, 0, 1, 1])) add = lambda x: lambda y: x + y mul = lambda x: lambda y: x * y add2 = FxNode(add(2)) mul3 = FxNode(mul(3)) assert_array_equal(add2(ds).samples, data + 2) add2mul3 = ChainNode([add2, mul3]) assert_array_equal(add2mul3(ds), (data + 2) * 3) add2_mul3v = CombinedNode([add2, mul3], 'v') add2_mul3h = CombinedNode([add2, mul3], 'h') assert_array_equal(add2_mul3v(ds).samples, np.vstack((data + 2, data * 3))) assert_array_equal(add2_mul3h(ds).samples, np.hstack((data + 2, data * 3))) def test_compound_learner(self): data = np.asarray([[1, 2, 3, 4]], dtype=np.float_).T ds = AttrDataset(data, sa=dict(targets=[0, 0, 1, 1])) train = ds[ds.sa.targets == 0] test = ds[ds.sa.targets == 1] dtrain = train.samples dtest = test.samples sub = FxyLearner(lambda x: lambda y: x - y) assert_false(sub.is_trained) sub.train(train) assert_array_equal(sub(test).samples, dtrain - dtest) div = FxyLearner(lambda x: lambda y: x / y) div.train(train) assert_array_almost_equal(div(test).samples, dtrain / dtest) div.untrain() subdiv = ChainLearner((sub, div)) assert_false(subdiv.is_trained) subdiv.train(train) assert_true(subdiv.is_trained) subdiv.untrain() assert_raises(RuntimeError, subdiv, test) subdiv.train(train) assert_array_almost_equal(subdiv(test).samples, dtrain / (dtrain - dtest)) sub_div = CombinedLearner((sub, div), 'v') assert_true(sub_div.is_trained) sub_div.untrain() subdiv.train(train) assert_true(sub_div.is_trained) assert_array_almost_equal(sub_div(test).samples, np.vstack((dtrain - dtest, dtrain / dtest))) def suite(): # pragma: no cover return unittest.makeSuite(CompoundTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_config.py000066400000000000000000000020651323370031300201640ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA dense array mapper""" import unittest from mvpa2.base.config import ConfigManager class ConfigTests(unittest.TestCase): def test_config(self): cfg = ConfigManager() # does nothing so far, but will be used to test the default # configuration from doc/examples/pymvpa2.cfg # query for some non-existing option and check if default is returned query = cfg.get('dasgibtsdochnicht', 'neegarnicht', default='required') self.assertTrue(query == 'required') def suite(): # pragma: no cover return unittest.makeSuite(ConfigTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_constraints.py000066400000000000000000000153311323370031300212660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Unit tests for basic constraints functionality.''' from mvpa2.testing import * import unittest from mvpa2.base.constraints import * import sys class SimpleConstraintsTests(unittest.TestCase): def test_int(self): c = EnsureInt() # this should always work assert_equal(c(7), 7) assert_equal(c(7.0), 7) assert_equal(c('7'), 7) assert_equal(c([7, 3]), [7, 3]) # this should always fail assert_raises(ValueError, lambda: c('fail')) assert_raises(ValueError, lambda: c([3, 'fail'])) # this will also fail assert_raises(ValueError, lambda: c('17.0')) def test_float(self): c = EnsureFloat() # this should always work assert_equal(c(7.0), 7.0) assert_equal(c(7), 7.0) assert_equal(c('7'), 7.0) assert_equal(c([7.0, '3.0']), [7.0, 3.0]) # this should always fail assert_raises(ValueError, lambda: c('fail')) assert_raises(ValueError, lambda: c([3.0, 'fail'])) def test_bool(self): c = EnsureBool() # this should always work assert_equal(c(True), True) assert_equal(c(False), False) # all that resuls in True assert_equal(c('True'), True) assert_equal(c('true'), True) assert_equal(c('1'), True) assert_equal(c('yes'), True) assert_equal(c('on'), True) assert_equal(c('enable'), True) # all that resuls in False assert_equal(c('false'), False) assert_equal(c('False'), False) assert_equal(c('0'), False) assert_equal(c('no'), False) assert_equal(c('off'), False) assert_equal(c('disable'), False) # this should always fail assert_raises(ValueError, c, 0) assert_raises(ValueError, c, 1) def test_str(self): c = EnsureStr() # this should always work assert_equal(c('hello'), 'hello') assert_equal(c('7.0'), '7.0') # this should always fail assert_raises(ValueError, lambda: c(['ab'])) assert_raises(ValueError, lambda: c(['a', 'b'])) assert_raises(ValueError, lambda: c(('a', 'b'))) # no automatic conversion attempted assert_raises(ValueError, lambda: c(7.0)) def test_none(self): c = EnsureNone() # this should always work assert_equal(c(None), None) # this should always fail assert_raises(ValueError, lambda: c('None')) assert_raises(ValueError, lambda: c([])) def test_choice(self): c = EnsureChoice('choice1', 'choice2', None) # this should always work assert_equal(c('choice1'), 'choice1') assert_equal(c(None), None) # this should always fail assert_raises(ValueError, lambda: c('fail')) assert_raises(ValueError, lambda: c('None')) def test_range(self): c = EnsureRange(min=3, max=7) # this should always work assert_equal(c(3.0), 3.0) # Python 3 raises an TypeError if incompatible types are compared, # whereas Python 2 raises a ValueError type_error = TypeError if sys.version_info[0] >= 3 else ValueError # this should always fail assert_raises(ValueError, lambda: c(2.9999999)) assert_raises(ValueError, lambda: c(77)) assert_raises(type_error, lambda: c('fail')) assert_raises(type_error, lambda: c((3, 4))) # since no type checks are performed assert_raises(type_error, lambda: c('7')) # Range doesn't have to be numeric c = EnsureRange(min="e", max="qqq") assert_equal(c('e'), 'e') assert_equal(c('fa'), 'fa') assert_equal(c('qq'), 'qq') assert_raises(ValueError, c, 'a') assert_raises(ValueError, c, 'qqqa') def test_listof(self): c = EnsureListOf(str) assert_equal(c(['a', 'b']), ['a', 'b']) assert_equal(c(['a1', 'b2']), ['a1', 'b2']) def test_tupleof(self): c = EnsureTupleOf(str) assert_equal(c(('a', 'b')), ('a', 'b')) assert_equal(c(('a1', 'b2')), ('a1', 'b2')) class ComplexConstraintsTests(unittest.TestCase): def test_constraints(self): # this should always work c = Constraints(EnsureFloat()) assert_equal(c(7.0), 7.0) c = Constraints(EnsureFloat(), EnsureRange(min=4.0)) assert_equal(c(7.0), 7.0) # __and__ form c = EnsureFloat() & EnsureRange(min=4.0) assert_equal(c(7.0), 7.0) assert_raises(ValueError, c, 3.9) c = Constraints(EnsureFloat(), EnsureRange(min=4), EnsureRange(max=9)) assert_equal(c(7.0), 7.0) assert_raises(ValueError, c, 3.9) assert_raises(ValueError, c, 9.01) # __and__ form c = EnsureFloat() & EnsureRange(min=4) & EnsureRange(max=9) assert_equal(c(7.0), 7.0) assert_raises(ValueError, c, 3.99) assert_raises(ValueError, c, 9.01) # and reordering should not have any effect c = Constraints(EnsureRange(max=4), EnsureRange(min=9), EnsureFloat()) assert_raises(ValueError, c, 3.99) assert_raises(ValueError, c, 9.01) def test_altconstraints(self): # this should always work c = AltConstraints(EnsureFloat()) assert_equal(c(7.0), 7.0) c = AltConstraints(EnsureFloat(), EnsureNone()) assert_equal(c(7.0), 7.0) assert_equal(c(None), None) # __or__ form c = EnsureFloat() | EnsureNone() assert_equal(c(7.0), 7.0) assert_equal(c(None), None) # this should always fail c = Constraints(EnsureRange(min=0, max=4), EnsureRange(min=9, max=11)) assert_raises(ValueError, c, 7.0) c = EnsureRange(min=0, max=4) | EnsureRange(min=9, max=11) assert_equal(c(3.0), 3.0) assert_equal(c(9.0), 9.0) assert_raises(ValueError, c, 7.0) assert_raises(ValueError, c, -1.0) def test_both(self): # this should always work c = AltConstraints(Constraints(EnsureFloat(), \ EnsureRange(min=7.0, max=44.0)), \ EnsureNone()) assert_equal(c(7.0), 7.0) assert_equal(c(None), None) # this should always fail assert_raises(ValueError, lambda: c(77.0)) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_corrstability.py000066400000000000000000000032371323370031300216130ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for basic mappers''' import numpy as np from mvpa2.testing.tools import ok_, assert_raises, assert_false, assert_equal, \ assert_true, assert_array_equal, assert_array_less from mvpa2.measures.corrstability import CorrStability from mvpa2.testing.datasets import datasets from mvpa2.testing import sweepargs @sweepargs(ds=datasets.itervalues()) def test_corrstability_smoketest(ds): if not 'chunks' in ds.sa: return if len(ds.sa['targets'].unique) > 30: # was regression dataset return # very basic testing since cs = CorrStability() #ds = datasets['uni2small'] out = cs(ds) assert_equal(out.shape, (ds.nfeatures,)) ok_(np.all(out >= -1.001)) # it should be a correlation after all ok_(np.all(out <= 1.001)) # and theoretically those nonbogus features should have higher values if 'nonbogus_targets' in ds.fa: bogus_features = np.array([x==None for x in ds.fa.nonbogus_targets]) assert_array_less(np.mean(out[bogus_features]), np.mean(out[~bogus_features])) # and if we move targets to alternative location ds = ds.copy(deep=True) ds.sa['alt'] = ds.T ds.sa.pop('targets') assert_raises(KeyError, cs, ds) cs = CorrStability('alt') out_ = cs(ds) assert_array_equal(out, out_) pymvpa2-2.6.4/mvpa2/tests/test_cosmo.py000066400000000000000000000300171323370031300200350ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for CoSMoMVPA dataset (http://cosmomvpa.org)""" from mvpa2.testing.tools import assert_raises, assert_false, assert_true, \ assert_equal, assert_array_equal, assert_array_almost_equal, \ with_tempfile from mvpa2.testing import skip_if_no_external skip_if_no_external('scipy') from scipy.io import loadmat, savemat, matlab from mvpa2.datasets import cosmo from mvpa2 import pymvpa_dataroot from mvpa2.measures.base import Measure from mvpa2.datasets.base import Dataset from mvpa2.mappers.fx import mean_feature import numpy as np from os.path import join as pathjoin arr = np.asarray ######################### # helper functions def _tup2obj(tuples): # tup is a list of (key, value) tuples # returns a numpy object array with the same data dtypes = [] values = [] for k, v in tuples: dtypes.append((k, 'O')) values.append(v) return np.array([[tuple(values)]], dtype=np.dtype(dtypes)) def _obj2tup(obj): # obj is an object array from scipy Matlab data structure names = obj.dtype.names if names is None: # not an object array return None tups = [] if obj.shape != (1, 1): raise ValueError('Unsupported non-singleton shape') for k in names: # get singleton element out tup = (k, obj[0, 0][k]) tups.append(tup) return tups def _create_small_mat_dataset_dict(): ''' Generate small dataset as represented in matlab. Equivalent is to do in matlab: ds=struct(); ds.samples=[1 2 3; 4 5 6]; ds.a.name='input'; ds.a.size=[3 2 1]; ds.fa.i=[3 2 1]; ds.fa.j=[1 2 2]; ds.sa.chunks=[2 2]'; ds.sa.targets=[1 2]'; ds.sa.labels={'yin','yan'}; save('simple_ds.mat','-struct','ds'); and do in python: ds=loadmat('simple_ds.mat') ''' samples = arr([[1, 2, 3], [4, 5, 6]]) sa = _tup2obj([('chunks', arr([[2], [2]])), ('targets', arr([[1], [2]])), ('labels', arr([arr(['yin'], dtype='O'), arr(['yan'], dtype='O')]))]) fa = _tup2obj([('i', arr([[3., 2., 1.]])), ('j', arr([[1., 2., 2.]]))]) a = _tup2obj([('name', arr(arr(['input'], dtype='O'))), ('size', arr([[3.], [2.], [1.]]))]) # dictionary with these value return dict(samples=samples, sa=sa, fa=fa, a=a) def _build_cell(elems): ''' Put elements in a an array compatible with scipy's matlab cell structure. Necessary for recent versions of numpy ''' n = len(elems) c = np.zeros((1, n), dtype=object) for i, elem in enumerate(elems): c[0, i] = elem return c def _create_small_mat_nbrhood_dict(): ''' Generate small neighborhood as represented in matlab. Equivalent is to do in matlab: nbrhood=struct(); nbrhood.neighbors={1, [1 3], [1 2 3], [2 2]}; nbrhood.fa.k=[4 3 2 1]; nbrhood.a.name='output'; save('simple_nbrhood.mat','-struct','nbrhood'); and do in python: nbrhood=loadmat('simple_nbrhood.mat') ''' elems = [arr([[1]]), arr([[1, 3]]), arr([[1, 2, 3]]), arr([[2, 2]])] neighbors = _build_cell(elems) fa = _tup2obj([('k', arr([[4., 3., 2., 1.]]))]) a = _tup2obj([('name', arr(arr(['output'], dtype='O')))]) # XXX in the future we may want to use a real origin with # contents of .a and .fa taken from the dataset origin = ('unused', 0) return dict(neighbors=neighbors, fa=fa, a=a, origin=origin) def _assert_ds_mat_attributes_equal(ds, m, attr_keys=('a', 'sa', 'fa')): # ds is a Dataset object, m a matlab-like dictionary for attr_k in attr_keys: attr_v = getattr(ds, attr_k) for k in attr_v.keys(): v = attr_v[k].value assert_array_equal(m[attr_k][k][0, 0].ravel(), v) def _assert_ds_less_or_equal(x, y): # x and y are a Dataset; x should contain a subset of # elements in .sa, fa, a and have the same samples as y # Note: no support for fancy objects such as mappers assert_array_equal(x.samples, y.samples) for label in ('a', 'fa', 'sa'): vx = getattr(x, label) vy = getattr(y, label) _assert_array_collectable_less_or_equal(vx, vy) def _assert_ds_equal(x, y): # test for two Dataset objects to be equal # Note: no support for fancy objects such as mappers _assert_ds_less_or_equal(x, y) _assert_ds_less_or_equal(y, x) def _assert_array_collectable_less_or_equal(x, y): # test for the keys in x to be a subset of those in y, # and the values corresponding to k in x being equal to those in y assert_true(set(x.keys()).issubset(set(y.keys()))) for k in x.keys(): assert_array_equal(x[k].value, y[k].value) def _assert_array_collectable_equal(x, y): # test for keys and values equal in x and y _assert_array_collectable_less_or_equal(x, y) _assert_array_collectable_less_or_equal(y, x) def _assert_subset(x, y): # test that first argument is a subset of the second assert_true(set(x).issubset(set(y))) def _assert_set_equal(x, y): # test for two sets being equal assert_equal(set(x), set(y)) ######################### # testing functions @with_tempfile('.mat', 'matlab_file') def test_cosmo_dataset(fn): skip_if_no_external('scipy', min_version='0.8') mat = _create_small_mat_dataset_dict() ds_mat = cosmo.from_any(mat) savemat(fn, mat) # test Dataset, filename, dict in matlab form, and input from loadmat for input in (ds_mat, fn, mat, loadmat(fn)): # check dataset creation ds = cosmo.from_any(mat) # ensure dataset has expected vlaues assert_array_equal(ds.samples, mat['samples']) _assert_set_equal(ds.sa.keys(), ['chunks', 'labels', 'targets']) _assert_set_equal(ds.sa.keys(), ['chunks', 'labels', 'targets']) _assert_set_equal(ds.a.keys(), ['name', 'size']) assert_array_equal(ds.a.name, 'input') assert_array_equal(ds.a.size, [3, 2, 1]) assert_array_equal(ds.sa.chunks, [2, 2]) assert_array_equal(ds.sa.targets, [1, 2]) assert_array_equal(ds.sa.labels, ['yin', 'yan']) assert_array_equal(ds.fa.i, [3, 2, 1]) assert_array_equal(ds.fa.j, [1, 2, 2]) for convert_tuples in (True, False): ds_copy = ds.copy(deep=True) if convert_tuples: # use dataset with tuple data ds_copy.a.size = tuple(ds_copy.a.size) # check mapping to matlab format mat_mapped = cosmo.map2cosmo(ds_copy) for m in (mat, mat_mapped): assert_array_equal(ds_mat.samples, m['samples']) _assert_ds_mat_attributes_equal(ds_mat, m) @with_tempfile('.mat', 'matlab_file') def test_cosmo_queryengine(fn): skip_if_no_external('scipy', min_version='0.8') nbrhood_mat = _create_small_mat_nbrhood_dict() neighbors = nbrhood_mat['neighbors'] savemat(fn, nbrhood_mat) # test dict in matlab form, filename, and through QueryEngine loader for input in (nbrhood_mat, fn, cosmo.CosmoQueryEngine.from_mat(neighbors)): qe = cosmo.from_any(input) assert_array_equal(qe.ids, [0, 1, 2, 3]) for i in qe.ids: nbr_fids_base0 = neighbors[0, i][0] - 1 assert_array_equal(qe.query_byid(i), nbr_fids_base0) _assert_ds_mat_attributes_equal(qe, nbrhood_mat, ('fa', 'a')) def test_cosmo_searchlight(): ds = cosmo.from_any(_create_small_mat_dataset_dict()) sl = cosmo.CosmoSearchlight(mean_feature(), _create_small_mat_nbrhood_dict()) ds_count = sl(ds) dict_count = Dataset(samples=ds_count.samples, fa=dict(k=arr([4, 3, 2, 1])), sa=dict((k, ds.sa[k].value) for k in ds.sa.keys()), a=dict(name=['output'])) _assert_ds_less_or_equal(dict_count, ds_count) @with_tempfile('.h5py', 'pymvpa_file') def test_cosmo_io_h5py(fn): skip_if_no_external('h5py') from mvpa2.base.hdf5 import h5save, h5load # Dataset from cosmo ds = cosmo.from_any(_create_small_mat_dataset_dict()) h5save(fn, ds) ds_loaded = h5load(fn) _assert_ds_equal(ds, ds_loaded) # Queryengine qe = cosmo.from_any(_create_small_mat_nbrhood_dict()) h5save(fn, qe) qe_loaded = h5load(fn) assert_array_equal(qe.ids, qe_loaded.ids) _assert_array_collectable_equal(qe.a, qe_loaded.a) _assert_array_collectable_equal(qe.fa, qe_loaded.fa) def test_cosmo_exceptions(): m = _create_small_mat_dataset_dict() m.pop('samples') assert_raises(KeyError, cosmo.cosmo_dataset, m) assert_raises(ValueError, cosmo.from_any, m) assert_raises(ValueError, cosmo.from_any, ['illegal input']) mapping = {1: arr([1, 2]), 2: arr([2, 0, 0])} qe = cosmo.CosmoQueryEngine(mapping) # should be fine assert_raises(TypeError, cosmo.CosmoQueryEngine, []) mapping[1] = 1.5 assert_raises(TypeError, cosmo.CosmoQueryEngine, mapping) mapping[1] = 'foo' assert_raises(TypeError, cosmo.CosmoQueryEngine, mapping) mapping[1] = -1 assert_raises(TypeError, cosmo.CosmoQueryEngine, mapping) mapping[1] = arr([1.5, 2.1]) assert_raises(ValueError, cosmo.CosmoQueryEngine, mapping) neighbors = _create_small_mat_nbrhood_dict()['neighbors'] qe = cosmo.CosmoQueryEngine.from_mat(neighbors) # should be fine neighbors[0, 0][0] = -1 assert_raises(ValueError, cosmo.CosmoQueryEngine.from_mat, neighbors) neighbors[0, 0] = arr(1.5) assert_raises(ValueError, cosmo.CosmoQueryEngine.from_mat, neighbors) for illegal_nbrhood in (['fail'], cosmo.QueryEngineInterface): assert_raises((TypeError, ValueError), lambda x: cosmo.CosmoSearchlight([], x), illegal_nbrhood) def test_cosmo_repr_and_str(): # simple smoke test for __repr__ and __str__ creators = (_create_small_mat_nbrhood_dict, _create_small_mat_dataset_dict) for creator in creators: obj = cosmo.from_any(creator()) for fmt in 'rs': obj_str = (("%%%s" % fmt) % obj) assert_true(obj.__class__.__name__ in obj_str) def test_fmri_to_cosmo(): skip_if_no_external('nibabel') from mvpa2.datasets.mri import fmri_dataset # test exporting an fMRI dataset to CoSMoMVPA pymvpa_ds = fmri_dataset( samples=pathjoin(pymvpa_dataroot, 'example4d.nii.gz'), targets=[1, 2], sprefix='voxel') cosmomvpa_struct = cosmo.map2cosmo(pymvpa_ds) _assert_set_equal(cosmomvpa_struct.keys(), ['a', 'fa', 'sa', 'samples']) a_dict = dict(_obj2tup(cosmomvpa_struct['a'])) mri_keys = ['imgaffine', 'voxel_eldim', 'voxel_dim'] _assert_subset(mri_keys, a_dict.keys()) for k in mri_keys: c_value = a_dict[k] p_value = pymvpa_ds.a[k].value if isinstance(p_value, tuple): c_value = c_value.ravel() p_value = np.asarray(p_value).ravel() assert_array_almost_equal(c_value, p_value) fa_dict = dict(_obj2tup(cosmomvpa_struct['fa'])) fa_keys = ['voxel_indices'] _assert_set_equal(fa_dict.keys(), fa_keys) for k in fa_keys: assert_array_almost_equal(fa_dict[k].T, pymvpa_ds.fa[k].value) def test_cosmo_empty_dataset(): ds = Dataset(np.zeros((0, 0))) c = cosmo.map2cosmo(ds) assert_equal(c['samples'].shape, (0, 0)) def test_cosmo_do_not_store_unsupported_datatype(): ds = Dataset(np.zeros((0, 0))) class ArbitraryClass(object): pass ds.a['unused'] = ArbitraryClass() c = cosmo.map2cosmo(ds) assert_false('a' in c.keys()) ds.a['foo'] = np.zeros((1,)) c = cosmo.map2cosmo(ds) assert_true('a' in c.keys()) pymvpa2-2.6.4/mvpa2/tests/test_datameasure.py000066400000000000000000000700261323370031300212140ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA SplittingSensitivityAnalyzer""" import numpy as np from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.testing.datasets import * from mvpa2.base import externals, warning from mvpa2.base.node import ChainNode, CombinedNode from mvpa2.datasets.base import Dataset, AttrDataset from mvpa2.featsel.base import SensitivityBasedFeatureSelection, \ CombinedFeatureSelection from mvpa2.featsel.helpers import FixedNElementTailSelector, \ FractionTailSelector, RangeElementSelector from mvpa2.featsel.rfe import RFE from mvpa2.clfs.meta import SplitClassifier, MulticlassClassifier, \ FeatureSelectionClassifier from mvpa2.clfs.smlr import SMLR, SMLRWeights from mvpa2.mappers.zscore import zscore from mvpa2.mappers.fx import sumofabs_sample, absolute_features, FxMapper, \ maxofabs_sample, BinaryFxNode, \ mean_sample, mean_feature from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import NFoldPartitioner from mvpa2.generators.resampling import Balancer from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.misc.transformers import Absolute, \ DistPValue from mvpa2.measures.base import Measure, \ TransferMeasure, RepeatedMeasure, CrossValidation from mvpa2.measures.anova import OneWayAnova, CompoundOneWayAnova from mvpa2.measures.irelief import IterativeRelief, IterativeReliefOnline, \ IterativeRelief_Devel, IterativeReliefOnline_Devel _MEASURES_2_SWEEP = [ OneWayAnova(), CompoundOneWayAnova(postproc=sumofabs_sample()), IterativeRelief(), IterativeReliefOnline(), IterativeRelief_Devel(), IterativeReliefOnline_Devel() ] if externals.exists('scipy'): from mvpa2.measures.corrcoef import CorrCoef _MEASURES_2_SWEEP += [ CorrCoef(), # that one is good when small... handle later #CorrCoef(pvalue=True) ] from mvpa2.featsel.base import SplitSamplesProbabilityMapper class SensitivityAnalysersTests(unittest.TestCase): def setUp(self): self.dataset = datasets['uni2large'] @sweepargs(dsm=_MEASURES_2_SWEEP) def test_basic(self, dsm): data = datasets['dumbinv'] datass = data.samples.copy() # compute scores f = dsm(data) # check if nothing evil is done to dataset self.assertTrue(np.all(data.samples == datass)) self.assertTrue(f.shape == (1, data.nfeatures)) self.assertTrue(abs(f.samples[0, 1]) <= 1e-12, # some small value msg="Failed test with value %g instead of != 0.0" % f.samples[0, 1]) self.assertTrue(f.samples[0, 0] > 0.1) # some reasonably large value # we should not have NaNs self.assertTrue(not np.any(np.isnan(f))) # NOTE: lars with stepwise used to segfault if all ca are enabled @sweepargs(clfds= [(c, datasets['uni2large']) for c in clfswh['has_sensitivity', 'binary']] + [(c, datasets['uni4large']) for c in clfswh['has_sensitivity', 'multiclass']] ) def test_analyzer_with_split_classifier(self, clfds): """Test analyzers in split classifier """ clf, ds = clfds # unroll the tuple # We need to skip some LARSes here _sclf = str(clf) if 'LARS(' in _sclf and "type='stepwise'" in _sclf: # ADD KnownToFail thingie from NiPy return # To don't waste too much time testing lets limit to 3 splits nsplits = 3 partitioner = NFoldPartitioner(count=nsplits) mclf = SplitClassifier(clf=clf, partitioner=partitioner, enable_ca=['training_stats', 'stats']) sana = mclf.get_sensitivity_analyzer(# postproc=absolute_features(), pass_attr=['fa.nonbogus_targets'], enable_ca=["sensitivities"]) ulabels = ds.uniquetargets nlabels = len(ulabels) # Can't rely on splitcfg since count-limit is done in __call__ assert(nsplits == len(list(partitioner.generate(ds)))) sens = sana(ds) assert('nonbogus_targets' in sens.fa) # were they passsed? # TODO: those few do not expose biases if not len(set(clf.__tags__).intersection(('lars', 'glmnet', 'gpr'))): assert('biases' in sens.sa) # print sens.sa.biases # It should return either ... # nlabels * nsplits req_nsamples = [ nlabels * nsplits ] if nlabels == 2: # A single sensitivity in case of binary req_nsamples += [ nsplits ] else: # and for pairs in case of multiclass req_nsamples += [ (nlabels * (nlabels - 1) / 2) * nsplits ] # and for 1-vs-1 embedded within Multiclass operating on # pairs (e.g. SMLR) req_nsamples += [req_nsamples[-1] * 2] # Also for regression_based -- they can do multiclass # but only 1 sensitivity is provided if 'regression_based' in clf.__tags__: req_nsamples += [ nsplits ] # # of features should correspond self.assertEqual(sens.shape[1], ds.nfeatures) # # of samples/sensitivities should also be reasonable self.assertTrue(sens.shape[0] in req_nsamples) # Check if labels are present self.assertTrue('splits' in sens.sa) self.assertTrue('targets' in sens.sa) # should be 1D -- otherwise dtype object self.assertTrue(sens.sa.targets.ndim == 1) sens_ulabels = sens.sa['targets'].unique # Some labels might be pairs(tuples) so ndarray would be of # dtype object and we would need to get them all if sens_ulabels.dtype is np.dtype('object'): sens_ulabels = np.unique( reduce(lambda x, y: x + y, [list(x) for x in sens_ulabels])) assert_array_equal(sens_ulabels, ds.sa['targets'].unique) errors = [x.percent_correct for x in sana.clf.ca.stats.matrices] # lets go through all sensitivities and see if we selected the right # features #if 'meta' in clf.__tags__ and len(sens.samples[0].nonzero()[0])<2: if '5%' in clf.descr \ or (nlabels > 2 and 'regression_based' in clf.__tags__): # Some meta classifiers (5% of ANOVA) are too harsh ;-) # if we get less than 2 features with on-zero sensitivities we # cannot really test # Also -- regression based classifiers performance for multiclass # is expected to suck in general return if cfg.getboolean('tests', 'labile', default='yes'): for conf_matrix in [sana.clf.ca.training_stats] \ + sana.clf.ca.stats.matrices: self.assertTrue( conf_matrix.percent_correct >= 70, msg="We must have trained on each one more or " \ "less correctly. Got %f%% correct on %d labels" % (conf_matrix.percent_correct, nlabels)) # Since now we have per split and possibly per label -- lets just find # mean per each feature per label across splits sensm = FxMapper('samples', lambda x: np.sum(x), uattrs=['targets']).forward(sens) sensgm = maxofabs_sample().forward(sensm) # global max of abs of means assert_equal(sensgm.shape[0], 1) assert_equal(sensgm.shape[1], ds.nfeatures) selected = FixedNElementTailSelector( len(ds.a.bogus_features))(sensgm.samples[0]) if cfg.getboolean('tests', 'labile', default='yes'): self.assertEqual( set(selected), set(ds.a.nonbogus_features), msg="At the end we should have selected the right features. " "Chose %s whenever nonbogus are %s" % (selected, ds.a.nonbogus_features)) # Now test each one per label # TODO: collect all failures and spit them out at once -- # that would make it easy to see if the sensitivity # just has incorrect order of labels assigned for sens1 in sensm: labels1 = sens1.targets # labels (1) for this sensitivity lndim = labels1.ndim label = labels1[0] # current label # XXX whole lndim comparison should be gone after # things get fixed and we arrive here with a tuple! if lndim == 1: # just a single label self.assertTrue(label in ulabels) ilabel_all = np.where(ds.fa.nonbogus_targets == label)[0] # should have just 1 feature for the label self.assertEqual(len(ilabel_all), 1) ilabel = ilabel_all[0] maxsensi = np.argmax(sens1) # index of max sensitivity self.assertEqual(maxsensi, ilabel, "Maximal sensitivity for %s was found in %i whenever" " original feature was %i for nonbogus features %s" % (labels1, maxsensi, ilabel, ds.a.nonbogus_features)) elif lndim == 2 and labels1.shape[1] == 2: # pair of labels # we should have highest (in abs) coefficients in # those two labels maxsensi2 = np.argsort(np.abs(sens1))[0][-2:] ilabel2 = [np.where(ds.fa.nonbogus_targets == l)[0][0] for l in label] self.assertEqual( set(maxsensi2), set(ilabel2), "Maximal sensitivity for %s was found in %s whenever" " original features were %s for nonbogus features %s" % (labels1, maxsensi2, ilabel2, ds.a.nonbogus_features)) """ # Now test for the sign of each one in pair ;) in # all binary problems L1 (-1) -> L2(+1), then # weights for L2 should be positive. to test for # L1 -- invert the sign # We already know (if we haven't failed in previous test), # that those 2 were the strongest -- so check only signs """ self.assertTrue( sens1.samples[0, ilabel2[0]] < 0, "With %i classes in pair %s got feature %i for %r >= 0" % (nlabels, label, ilabel2[0], label[0])) self.assertTrue(sens1.samples[0, ilabel2[1]] > 0, "With %i classes in pair %s got feature %i for %r <= 0" % (nlabels, label, ilabel2[1], label[1])) else: # yoh could be wrong at this assumption... time will show self.fail("Got unknown number labels per sensitivity: %s." " Should be either a single label or a pair" % labels1) @sweepargs(clf=clfswh['has_sensitivity']) def test_mapped_classifier_sensitivity_analyzer(self, clf): """Test sensitivity of the mapped classifier """ # Assuming many defaults it is as simple as mclf = FeatureSelectionClassifier( clf, SensitivityBasedFeatureSelection( OneWayAnova(), FractionTailSelector(0.5, mode='select', tail='upper')), enable_ca=['training_stats']) sana = mclf.get_sensitivity_analyzer(postproc=sumofabs_sample(), enable_ca=["sensitivities"]) # and lets look at all sensitivities dataset = datasets['uni2small'] # and we get sensitivity analyzer which works on splits sens = sana(dataset) self.assertEqual(sens.shape, (1, dataset.nfeatures)) @sweepargs(svm=clfswh['linear', 'svm']) def test_linear_svm_weights(self, svm): # assumming many defaults it is as simple as sana = svm.get_sensitivity_analyzer(enable_ca=["sensitivities"]) # and lets look at all sensitivities sens = sana(self.dataset) # for now we can do only linear SVM, so lets check if we raise # a concern svmnl = clfswh['non-linear', 'svm'][0] self.assertRaises(NotImplementedError, svmnl.get_sensitivity_analyzer) # XXX doesn't work easily with meta since it would need # to be explicitely passed to the slave classifier's # getSengetSensitivityAnalyzer # Note: only libsvm interface supports split_weights @sweepargs(svm=clfswh['linear', 'svm', 'libsvm', '!sg', '!meta']) def test_linear_svm_weights_per_class(self, svm): # assumming many defaults it is as simple as kwargs = dict(enable_ca=["sensitivities"]) sana_split = svm.get_sensitivity_analyzer( split_weights=True, **kwargs) sana_full = svm.get_sensitivity_analyzer( force_train=False, **kwargs) # and lets look at all sensitivities ds2 = datasets['uni4large'].copy() zscore(ds2, param_est=('targets', ['L2', 'L3'])) ds2 = ds2[np.logical_or(ds2.sa.targets == 'L0', ds2.sa.targets == 'L1')] senssplit = sana_split(ds2) sensfull = sana_full(ds2) self.assertEqual(senssplit.shape, (2, ds2.nfeatures)) self.assertEqual(sensfull.shape, (1, ds2.nfeatures)) # just to verify that we split properly and if we reconstruct # manually we obtain the same dmap = (-1 * senssplit.samples[1] + senssplit.samples[0]) \ - sensfull.samples self.assertTrue((np.abs(dmap) <= 1e-10).all()) #print "____" #print senssplit #print SMLR().get_sensitivity_analyzer(combiner=None)(ds2) # for now we can do split weights for binary tasks only, so # lets check if we raise a concern # we temporarily shutdown warning, since it is going to complain # otherwise, but we do it on purpose here handlers = warning.handlers warning.handlers = [] self.assertRaises(NotImplementedError, sana_split, datasets['uni3medium']) # reenable the warnings warning.handlers = handlers def test_split_featurewise_dataset_measure(self): ds = datasets['uni3small'] sana = RepeatedMeasure( SMLR(fit_all_weights=True).get_sensitivity_analyzer(), ChainNode([NFoldPartitioner(), Splitter('partitions', attr_values=[1])])) sens = sana(ds) # a sensitivity for each chunk and each label combination assert_equal(sens.shape, (len(ds.sa['chunks'].unique) * len(ds.sa['targets'].unique), ds.nfeatures)) # Lets try more complex example with 'boosting' ds = datasets['uni3medium'] ds.init_origids('samples') sana = RepeatedMeasure( SMLR(fit_all_weights=True).get_sensitivity_analyzer(), Balancer(amount=0.25, count=2, apply_selection=True), enable_ca=['datasets', 'repetition_results']) sens = sana(ds) assert_equal(sens.shape, (2 * len(ds.sa['targets'].unique), ds.nfeatures)) splits = sana.ca.datasets self.assertEqual(len(splits), 2) self.assertTrue(np.all([s.nsamples == ds.nsamples // 4 for s in splits])) # should have used different samples self.assertTrue(np.any([splits[0].sa.origids != splits[1].sa.origids])) # and should have got different sensitivities self.assertTrue(np.any(sens[0] != sens[3])) #skip_if_no_external('scipy') # Let's disable this one for now until we are sure about the destiny of # DistPValue -- read the docstring of it! # Most evil example #ds = datasets['uni2medium'] #plain_sana = SVM().get_sensitivity_analyzer( # transformer=DistPValue()) #boosted_sana = SplitFeaturewiseMeasure( # analyzer=SVM().get_sensitivity_analyzer( # transformer=DistPValue(fpp=0.05)), # splitter=NoneSplitter(npertarget=0.8, mode='first', nrunspersplit=2), # enable_ca=['splits', 'sensitivities']) ## lets create feature selector #fsel = RangeElementSelector(upper=0.1, lower=0.9, inclusive=True) #sanas = dict(plain=plain_sana, boosted=boosted_sana) #for k,sana in sanas.iteritems(): # clf = FeatureSelectionClassifier(SVM(), # SensitivityBasedFeatureSelection(sana, fsel), # descr='SVM on p=0.2(both tails) using %s' % k) # ce = CrossValidatedTransferError(TransferError(clf), # NFoldSplitter()) # error = ce(ds) #sens = boosted_sana(ds) #sens_plain = plain_sana(ds) ## TODO: make a really unittest out of it -- not just runtime ## bugs catcher # TODO -- unittests for sensitivity analyzers which use combiners # (linsvmweights for multi-class SVMs and smlrweights for SMLR) @sweepargs(basic_clf=clfswh['has_sensitivity']) ##REF: Name was automagically refactored def __test_fspipeline_with_split_classifier(self, basic_clf): #basic_clf = LinearNuSVMC() multi_clf = MulticlassClassifier(clf=basic_clf) #svm_weigths = LinearSVMWeights(svm) # Proper RFE: aggregate sensitivities across multiple splits, # but also due to multi class those need to be aggregated # somehow. Transfer error here should be 'leave-1-out' error # of split classifier itself sclf = SplitClassifier(clf=basic_clf) rfe = RFE(sensitivity_analyzer= sclf.get_sensitivity_analyzer( enable_ca=["sensitivities"]), transfer_error=trans_error, feature_selector=FeatureSelectionPipeline( [FractionTailSelector(0.5), FixedNElementTailSelector(1)]), train_pmeasure=True) # and we get sensitivity analyzer which works on splits and uses # sensitivity selected_features = rfe(self.dataset) def test_union_feature_selection(self): # two methods: 5% highes F-scores, non-zero SMLR weights fss = [SensitivityBasedFeatureSelection( OneWayAnova(), FractionTailSelector(0.05, mode='select', tail='upper')), SensitivityBasedFeatureSelection( SMLRWeights(SMLR(lm=1, implementation="C"), postproc=sumofabs_sample()), RangeElementSelector(mode='select'))] fs = CombinedFeatureSelection(fss, method='union') od_union = fs(self.dataset) self.assertTrue(fs.method == 'union') # check output dataset self.assertTrue(od_union.nfeatures <= self.dataset.nfeatures) # again for intersection fs = CombinedFeatureSelection(fss, method='intersection') od_intersect = fs(self.dataset) assert_true(od_intersect.nfeatures < od_union.nfeatures) @sweepargs(do_int=(False, True)) def test_anova(self, do_int): """Additional aspects of OnewayAnova """ oa = OneWayAnova() oa_custom = OneWayAnova(space='custom') ds = datasets['uni4large'].copy() if do_int: ds.samples = (ds.samples * 1000).astype(np.int) ds_samples_orig = ds.samples.copy() # to verify that nothing was modified ds_custom = Dataset(ds.samples, sa={'custom': ds.targets}) r = oa(ds) assert_array_equal(ds.samples, ds_samples_orig) # no inplace changes! self.assertRaises(KeyError, oa_custom, ds) r_custom = oa_custom(ds_custom) self.assertTrue(np.allclose(r.samples, r_custom.samples)) # we should get the same results on subsequent runs r2 = oa(ds) r_custom2 = oa_custom(ds_custom) self.assertTrue(np.allclose(r.samples, r2.samples)) self.assertTrue(np.allclose(r_custom.samples, r_custom2.samples)) skip_if_no_external('scipy') from scipy.stats.stats import f_oneway # compare against scipy implementation # we need to create groups of those target samples groups = [ ds[ds.targets == ut] for ut in ds.sa['targets'].unique ] spf, spp = f_oneway(*groups) assert_array_almost_equal(r.samples[0], spf) def test_transfer_measure(self): # come up with my own measure that only checks if training data # and test data are the same class MyMeasure(Measure): def _train(self, ds): self._tds = ds def _call(self, ds): return Dataset(ds.samples == self._tds.samples) tm = TransferMeasure(MyMeasure(), Splitter('chunks', count=2)) # result should not be all True (== identical) assert_true((tm(self.dataset).samples == False).any()) def test_clf_transfer_measure(self): # and now on a classifier clf = SMLR() enode = BinaryFxNode(mean_mismatch_error, 'targets') tm = TransferMeasure(clf, Splitter('chunks', count=2), enable_ca=['stats']) res = tm(self.dataset) manual_error = np.mean(res.samples.squeeze() != res.sa.targets) postproc_error = enode(res) tm_err = TransferMeasure(clf, Splitter('chunks', count=2), postproc=enode) auto_error = tm_err(self.dataset) ok_(manual_error == postproc_error.samples[0, 0]) def test_pseudo_cv_measure(self): clf = SMLR() enode = BinaryFxNode(mean_mismatch_error, 'targets') tm = TransferMeasure(clf, Splitter('partitions'), postproc=enode) cvgen = NFoldPartitioner() rm = RepeatedMeasure(tm, cvgen) res = rm(self.dataset) # one error per fold assert_equal(res.shape, (len(self.dataset.sa['chunks'].unique), 1)) # we can do the same with Crossvalidation cv = CrossValidation(clf, cvgen, enable_ca=['stats', 'training_stats', 'datasets']) res = cv(self.dataset) assert_equal(res.shape, (len(self.dataset.sa['chunks'].unique), 1)) def test_repeated_features(self): class CountFeatures(Measure): is_trained = True def _call(self, ds): return Dataset([ds.nfeatures], fa={'nonbogus_targets': list(ds.fa['nonbogus_targets'].unique)}) cf = CountFeatures() spl = Splitter('fa.nonbogus_targets') nsplits = len(list(spl.generate(self.dataset))) assert_equal(nsplits, 3) rm = RepeatedMeasure(cf, spl, concat_as='features') res = rm(self.dataset) assert_equal(res.shape, (1, nsplits)) # due to https://github.com/numpy/numpy/issues/641 we are # using list(set(...)) construct and there order of # nonbogus_targets.unique can vary from run to run, thus there # is no guarantee that we would get 18 first, which is a # questionable assumption anyways, thus performing checks # which do not require any specific order. # And yet due to another issue # https://github.com/numpy/numpy/issues/3759 # we can't just is None for the bool mask None_fa = np.array([x is None for x in res.fa.nonbogus_targets]) assert_array_equal(res.samples[0, None_fa], [18]) assert_array_equal(res.samples[0, ~None_fa], [1, 1]) if sys.version_info[0] < 3: # with python2 order seems to be consistent assert_array_equal(res.samples[0], [18, 1, 1]) def test_custom_combined_selectors(self): """Test combination of the selectors in a single function """ def custom_tail_selector(seq): seq1 = FractionTailSelector(0.01, mode='discard', tail='upper')(seq) seq2 = FractionTailSelector(0.05, mode='select', tail='upper')(seq) return list(set(seq1).intersection(seq2)) seq = np.arange(100) seq_ = custom_tail_selector(seq) assert_array_equal(sorted(seq_), [95, 96, 97, 98]) # verify that this function could be used in place of the selector fs = SensitivityBasedFeatureSelection( OneWayAnova(), custom_tail_selector) ds = datasets['3dsmall'] fs.train(ds) # XXX: why needs to be trained here explicitly? ds_ = fs(ds) assert_equal(ds_.nfeatures, int(ds.nfeatures * 0.04)) def test_combined_node(self): ds = datasets['3dsmall'] axis2nodes = dict(h=(mean_feature, mean_feature), v=(mean_sample, mean_sample)) for i, axis in enumerate('vh'): nodes = axis2nodes[axis] combined = CombinedNode([n() for n in nodes], axis, False) assert_true(combined(ds).shape[i] == 2) assert_true(combined(ds).shape[1 - i] == ds.shape[1 - i]) def test_split_samples_probability_mapper(self): skip_if_no_external('scipy') nf = 10 ns = 100 nsubj = 5 nchunks = 5 data = np.random.normal(size=(ns, nf)) ds = AttrDataset(data, sa=dict(sidx=np.arange(ns), targets=np.arange(ns) % nchunks, chunks=np.floor(np.arange(ns) * nchunks / ns), subjects=np.arange(ns) / (ns / nsubj / nchunks) % nsubj), fa=dict(fidx=np.arange(nf))) analyzer = OneWayAnova() element_selector = FractionTailSelector(.4, mode='select', tail='upper') common = True m = SplitSamplesProbabilityMapper(analyzer, 'subjects', probability_label='fprob', select_common_features=common, selector=element_selector) m.train(ds) y = m(ds) z = m(ds.samples) assert_array_equal(z, y.samples) assert_equal(y.shape, (100, 4)) def test_pass_attr(self): from mvpa2.base.node import Node from mvpa2.base.state import ConditionalAttribute ds = datasets['dumbinv'] class MyNode(Node): some_sa = ConditionalAttribute(enabled=True) some_fa = ConditionalAttribute(enabled=True) some_complex = ConditionalAttribute(enabled=True) def _call(self, ds): return Dataset(np.zeros(ds.shape)) node = MyNode(pass_attr=['ca.some_sa', ('ca.some_fa', 'fa'), ('ca.some_complex', 'fa', 1, 'transposed'), 'sa.targets']) node.ca.some_sa = np.arange(len(ds)) node.ca.some_fa = np.arange(ds.nfeatures) node.ca.some_complex = ds.samples res = node(ds) assert_true('some_sa' in res.sa) assert_true('some_fa' in res.fa) assert_true('transposed' in res.fa) assert_true('targets' in res.sa) # view on original array assert_true(res.fa.transposed.base is ds.samples) assert_array_equal(res.fa.transposed.T, ds.samples) def suite(): # pragma: no cover return unittest.makeSuite(SensitivityAnalysersTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_dataset_formats.py000066400000000000000000000025731323370031300221030ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for the dataset implementation''' from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.datasets.formats import * import tempfile import os def test_format_lightsvm_basic(): # Just doing basic testing for the silliest of usages -- just # dumping / loading data back without any customization via # arguments for dsname in ['uni2small', 'uni3small', 'chirp_linear']: ds = datasets[dsname] f = tempfile.NamedTemporaryFile(delete=False) am = to_lightsvm_format(ds, f) f.close() f_ = open(f.name, 'r') ds_ = from_lightsvm_format(f_, am=am) f_.close() os.unlink(f.name) # Lets do checks now ok_(ds.targets.dtype == ds_.targets.dtype) if ds.targets.dtype.char in ['i', 'S', 'U']: assert_array_equal(ds.targets, ds_.targets) else: assert_array_almost_equal(ds.targets, ds_.targets, decimal=3) assert_array_almost_equal(ds.samples, ds_.samples) pymvpa2-2.6.4/mvpa2/tests/test_datasetfx.py000066400000000000000000000123521323370031300207020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA miscelaneouse functions operating on datasets""" import unittest from mvpa2.testing.tools import ok_, assert_equal, assert_array_equal, reseed_rng import numpy as np from mvpa2.base import externals from mvpa2.datasets.base import dataset_wizard from mvpa2.datasets.miscfx import remove_invariant_features, coarsen_chunks, \ aggregate_features, SequenceStats, remove_nonfinite_features from mvpa2.misc.data_generators import normal_feature_dataset class MiscDatasetFxTests(unittest.TestCase): def test_aggregation(self): data = dataset_wizard(np.arange( 20 ).reshape((4, 5)), targets=1, chunks=1) ag_data = aggregate_features(data, np.mean) ok_(ag_data.nsamples == 4) ok_(ag_data.nfeatures == 1) assert_array_equal(ag_data.samples[:, 0], [2, 7, 12, 17]) @reseed_rng() def test_invar_features_removal(self): r = np.random.normal(size=(3,1)) ds = dataset_wizard(samples=np.hstack((np.zeros((3,2)), r)), targets=1) self.assertTrue(ds.nfeatures == 3) dsc = remove_invariant_features(ds) self.assertTrue(dsc.nfeatures == 1) self.assertTrue((dsc.samples == r).all()) @reseed_rng() def test_nonfinite_features_removal(self): r = np.random.normal(size=(4, 5)) ds = dataset_wizard(r, targets=1, chunks=1) ds.samples[2,0]=np.NaN ds.samples[3,3]=np.Inf dsc = remove_nonfinite_features(ds) self.assertTrue(dsc.nfeatures == 3) assert_array_equal(ds[:, [1, 2, 4]].samples, dsc.samples) def test_coarsen_chunks(self): """Just basic testing for now""" chunks = [1,1,2,2,3,3,4,4] ds = dataset_wizard(samples=np.arange(len(chunks)).reshape( (len(chunks),1)), targets=[1]*8, chunks=chunks) coarsen_chunks(ds, nchunks=2) chunks1 = coarsen_chunks(chunks, nchunks=2) self.assertTrue((chunks1 == ds.chunks).all()) self.assertTrue((chunks1 == np.asarray([0,0,0,0,1,1,1,1])).all()) ds2 = dataset_wizard(samples=np.arange(len(chunks)).reshape( (len(chunks),1)), targets=[1]*8, chunks=range(len(chunks))) coarsen_chunks(ds2, nchunks=2) self.assertTrue((chunks1 == ds.chunks).all()) def test_binds(self): ds = normal_feature_dataset() ds_data = ds.samples.copy() ds_chunks = ds.chunks.copy() self.assertTrue(np.all(ds.samples == ds_data)) # sanity check funcs = ['coarsen_chunks'] for f in funcs: eval('ds.%s()' % f) self.assertTrue(np.any(ds.samples != ds_data) or np.any(ds.chunks != ds_chunks), msg="We should have modified original dataset with %s" % f) ds.samples = ds_data.copy() ds.sa['chunks'].value = ds_chunks.copy() # and some which should just return results for f in ['aggregate_features', 'remove_invariant_features', 'get_samples_per_chunk_target']: res = eval('ds.%s()' % f) self.assertTrue(res is not None, msg='We should have got result from function %s' % f) self.assertTrue(np.all(ds.samples == ds_data), msg="Function %s should have not modified original dataset" % f) @reseed_rng() def test_sequence_stat(self): """Test sequence statistics """ order = 3 # Close to perfectly balanced one sp = np.array([-1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1], dtype=int) rp = SequenceStats(sp, order=order) self.failUnlessAlmostEqual(rp['sumabscorr'], 1.0) self.failUnlessAlmostEqual(np.max(rp['corrcoef'] * (len(sp)-1) + 1.0), 0.0) # Now some random but loong one still binary (boolean) sb = (np.random.random_sample((1000,)) >= 0.5) rb = SequenceStats(sb, order=order) # Now lets do multiclass with literal targets s5 = np.random.permutation(['f', 'bu', 'd', 0, 'zz']*200) r5 = SequenceStats(s5, order=order) # Degenerate one but still should be valid s1 = ['aaa']*100 r1 = SequenceStats(s1, order=order) # Generic conformance tests for r in (rp, rb, r5, r1): ulabels = r['utargets'] nlabels = len(r['utargets']) cbcounts = r['cbcounts'] self.assertEqual(len(cbcounts), order) for cb in cbcounts: self.assertEqual(np.asarray(cb).shape, (nlabels, nlabels)) # Check if str works fine sr = str(r) # TODO: check the content def suite(): # pragma: no cover return unittest.makeSuite(MiscDatasetFxTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_datasetng.py000066400000000000000000001271201323370031300206710ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for the dataset implementation''' from mvpa2.testing import * from mvpa2.testing.datasets import datasets import numpy as np import shutil import tempfile import os from mvpa2.base import cfg from mvpa2.base.externals import versions from mvpa2.base.types import is_datasetlike from mvpa2.base.dataset import DatasetError, vstack, hstack, all_equal, \ stack_by_unique_feature_attribute, \ stack_by_unique_sample_attribute from mvpa2.datasets.base import dataset_wizard, Dataset, HollowSamples from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.testing import reseed_rng import mvpa2.support.copy as copy from mvpa2.base.collections import \ SampleAttributesCollection, FeatureAttributesCollection, \ DatasetAttributesCollection, ArrayCollectable, SampleAttribute, \ Collectable class myarray(np.ndarray): pass # TODO Urgently need test to ensure that multidimensional samples and feature # attributes work and adjust docs to mention that we support such def test_from_wizard(): samples = np.arange(12).reshape((4, 3)).view(myarray) labels = range(4) chunks = [1, 1, 2, 2] ds = Dataset(samples, sa={'targets': labels, 'chunks': chunks}) ds.init_origids('both') first = ds.sa.origids # now do again and check that they get regenerated ds.init_origids('both') assert_false(first is ds.sa.origids) assert_array_equal(first, ds.sa.origids) ok_(is_datasetlike(ds)) ok_(not is_datasetlike(labels)) # array subclass survives ok_(isinstance(ds.samples, myarray)) ## XXX stuff that needs thought: # ds.sa (empty) has this in the public namespace: # add, get, getvalue, has_key, is_set, items, listing, name, names # owner, remove, reset, setvalue, which_set # maybe we need some form of leightweightCollection? assert_array_equal(ds.samples, samples) assert_array_equal(ds.sa.targets, labels) assert_array_equal(ds.sa.chunks, chunks) # same should work for shortcuts assert_array_equal(ds.targets, labels) assert_array_equal(ds.chunks, chunks) ok_(sorted(ds.sa.keys()) == ['chunks', 'origids', 'targets']) ok_(sorted(ds.fa.keys()) == ['origids']) # add some more ds.a['random'] = 'blurb' # check stripping attributes from a copy cds = ds.copy() # full copy ok_(sorted(cds.sa.keys()) == ['chunks', 'origids', 'targets']) ok_(sorted(cds.fa.keys()) == ['origids']) ok_(sorted(cds.a.keys()) == ['random']) cds = ds.copy(sa=[], fa=[], a=[]) # plain copy ok_(cds.sa.keys() == []) ok_(cds.fa.keys() == []) ok_(cds.a.keys() == []) cds = ds.copy(sa=['targets'], fa=None, a=['random']) # partial copy ok_(cds.sa.keys() == ['targets']) ok_(cds.fa.keys() == ['origids']) ok_(cds.a.keys() == ['random']) # there is not necessarily a mapper present ok_(not 'mapper' in ds.a) # has to complain about misshaped samples attributes assert_raises(ValueError, Dataset.from_wizard, samples, labels + labels) # check that we actually have attributes of the expected type ok_(isinstance(ds.sa['targets'], ArrayCollectable)) # the dataset will take care of not adding stupid stuff assert_raises(ValueError, ds.sa.__setitem__, 'stupid', np.arange(3)) assert_raises(ValueError, ds.fa.__setitem__, 'stupid', np.arange(4)) # or change proper attributes to stupid shapes try: ds.sa.targets = np.arange(3) except ValueError: pass else: ok_(False, msg="Assigning value with improper shape to attribute " "did not raise exception.") def test_labelschunks_access(): samples = np.arange(12).reshape((4, 3)).view(myarray) labels = range(4) chunks = [1, 1, 2, 2] ds = Dataset.from_wizard(samples, labels, chunks) # array subclass survives ok_(isinstance(ds.samples, myarray)) assert_array_equal(ds.targets, labels) assert_array_equal(ds.chunks, chunks) # moreover they should point to the same thing ok_(ds.targets is ds.sa.targets) ok_(ds.targets is ds.sa['targets'].value) ok_(ds.chunks is ds.sa.chunks) ok_(ds.chunks is ds.sa['chunks'].value) # assignment should work at all levels including 1st ds.targets = chunks assert_array_equal(ds.targets, chunks) ok_(ds.targets is ds.sa.targets) ok_(ds.targets is ds.sa['targets'].value) # test broadcasting # but not for plain scalars assert_raises(ValueError, ds.set_attr, 'sa.bc', 5) # and not for plain plain str assert_raises(TypeError, ds.set_attr, 'sa.bc', "mike") # but for any iterable of len == 1 ds.set_attr('sa.bc', (5,)) ds.set_attr('sa.dc', ["mike"]) assert_array_equal(ds.sa.bc, [5] * len(ds)) assert_array_equal(ds.sa.dc, ["mike"] * len(ds)) @reseed_rng() def test_ex_from_masked(): ds = Dataset.from_wizard(samples=np.atleast_2d(np.arange(5)).view(myarray), targets=1, chunks=1) # simple sequence has to be a single pattern assert_equal(ds.nsamples, 1) # array subclass survives ok_(isinstance(ds.samples, myarray)) # check correct pattern layout (1x5) assert_array_equal(ds.samples, [[0, 1, 2, 3, 4]]) # check for single label and origin assert_array_equal(ds.targets, [1]) assert_array_equal(ds.chunks, [1]) # now try adding pattern with wrong shape assert_raises(ValueError, vstack, (ds, Dataset.from_wizard(np.ones((2, 3)), targets=1, chunks=1))) # now add two real patterns ds = vstack((ds, Dataset.from_wizard(np.random.standard_normal((2, 5)), targets=2, chunks=2))) assert_equal(ds.nsamples, 3) assert_array_equal(ds.targets, [1, 2, 2]) assert_array_equal(ds.chunks, [1, 2, 2]) # test unique class labels ds = vstack((ds, Dataset.from_wizard(np.random.standard_normal((2, 5)), targets=3, chunks=5))) assert_array_equal(ds.sa['targets'].unique, [1, 2, 3]) # test wrong attributes length assert_raises(ValueError, Dataset.from_wizard, np.random.standard_normal((4, 2, 3, 4)), targets=[1, 2, 3], chunks=2) assert_raises(ValueError, Dataset.from_wizard, np.random.standard_normal((4, 2, 3, 4)), targets=[1, 2, 3, 4], chunks=[2, 2, 2]) # no test one that is using from_masked ds = datasets['3dlarge'] for a in ds.sa: assert_equal(len(ds.sa[a].value), len(ds)) for a in ds.fa: assert_equal(len(ds.fa[a].value), ds.nfeatures) def test_shape_conversion(): ds = Dataset.from_wizard(np.arange(24).reshape((2, 3, 4)).view(myarray), targets=1, chunks=1) # array subclass survives ok_(isinstance(ds.samples, myarray)) assert_equal(ds.nsamples, 2) assert_equal(ds.samples.shape, (2, 12)) assert_array_equal(ds.samples, [range(12), range(12, 24)]) @reseed_rng() def test_multidim_attrs(): samples = np.arange(24).reshape(2, 3, 4) # have a dataset with two samples -- mapped from 2d into 1d # but have 2d labels and 3d chunks -- whatever that is ds = Dataset.from_wizard(samples.copy(), targets=samples.copy(), chunks=np.random.normal(size=(2, 10, 4, 2))) assert_equal(ds.nsamples, 2) assert_equal(ds.nfeatures, 12) assert_equal(ds.sa.targets.shape, (2, 3, 4)) assert_equal(ds.sa.chunks.shape, (2, 10, 4, 2)) # try slicing subds = ds[0] assert_equal(subds.nsamples, 1) assert_equal(subds.nfeatures, 12) assert_equal(subds.sa.targets.shape, (1, 3, 4)) assert_equal(subds.sa.chunks.shape, (1, 10, 4, 2)) # add multidim feature attr fattr = ds.mapper.forward(samples) assert_equal(fattr.shape, (2, 12)) # should puke -- first axis is #samples assert_raises(ValueError, ds.fa.__setitem__, 'moresamples', fattr) # but that should be fine ds.fa['moresamples'] = fattr.T assert_equal(ds.fa.moresamples.shape, (12, 2)) def test_samples_shape(): ds = Dataset.from_wizard(np.ones((10, 2, 3, 4)), targets=1, chunks=1) ok_(ds.samples.shape == (10, 24)) # what happens to 1D samples ds = Dataset(np.arange(5)) assert_equal(ds.shape, (5, 1)) assert_equal(ds.nfeatures, 1) def test_basic_datamapping(): samples = np.arange(24).reshape((4, 3, 2)).view(myarray) ds = Dataset.from_wizard(samples) # array subclass survives ok_(isinstance(ds.samples, myarray)) # mapper should end up in the dataset ok_('mapper' in ds.a) # check correct mapping ok_(ds.nsamples == 4) ok_(ds.nfeatures == 6) def test_ds_shallowcopy(): # lets use some instance of somewhat evolved dataset ds = normal_feature_dataset() ds.samples = ds.samples.view(myarray) # SHALLOW copy the beast ds_ = copy.copy(ds) # verify that we have the same data assert_array_equal(ds.samples, ds_.samples) assert_array_equal(ds.targets, ds_.targets) assert_array_equal(ds.chunks, ds_.chunks) # array subclass survives ok_(isinstance(ds_.samples, myarray)) # modify and see that we actually DO change the data in both ds_.samples[0, 0] = 1234 assert_array_equal(ds.samples, ds_.samples) assert_array_equal(ds.targets, ds_.targets) assert_array_equal(ds.chunks, ds_.chunks) ds_.sa.targets[0] = 'ab' ds_.sa.chunks[0] = 234 assert_array_equal(ds.samples, ds_.samples) assert_array_equal(ds.targets, ds_.targets) assert_array_equal(ds.chunks, ds_.chunks) ok_(ds.sa.targets[0] == 'ab') ok_(ds.sa.chunks[0] == 234) # XXX implement me #ok_(np.any(ds.uniquetargets != ds_.uniquetargets)) #ok_(np.any(ds.uniquechunks != ds_.uniquechunks)) def test_ds_deepcopy(): # lets use some instance of somewhat evolved dataset ds = normal_feature_dataset() ds.samples = ds.samples.view(myarray) # Clone the beast ds_ = ds.copy() # array subclass survives ok_(isinstance(ds_.samples, myarray)) # verify that we have the same data assert_array_equal(ds.samples, ds_.samples) assert_array_equal(ds.targets, ds_.targets) assert_array_equal(ds.chunks, ds_.chunks) # modify and see if we don't change data in the original one ds_.samples[0, 0] = 1234 ok_(np.any(ds.samples != ds_.samples)) assert_array_equal(ds.targets, ds_.targets) assert_array_equal(ds.chunks, ds_.chunks) ds_.sa.targets = np.hstack(([123], ds_.targets[1:])) ok_(np.any(ds.samples != ds_.samples)) ok_(np.any(ds.targets != ds_.targets)) assert_array_equal(ds.chunks, ds_.chunks) ds_.sa.chunks = np.hstack(([1234], ds_.chunks[1:])) ok_(np.any(ds.samples != ds_.samples)) ok_(np.any(ds.targets != ds_.targets)) ok_(np.any(ds.chunks != ds_.chunks)) # XXX implement me #ok_(np.any(ds.uniquetargets != ds_.uniquetargets)) #ok_(np.any(ds.uniquechunks != ds_.uniquechunks)) @sweepargs(dsp=datasets.items()) def test_ds_array(dsp): # When dataset dsname, ds = dsp if dsname != 'hollow': ok_(np.asarray(ds) is ds.samples, msg="Must have been the same on %s=%s" % dsp) else: ok_(np.asarray(ds) is not ds.samples, msg="Should have not been the same on %s=%s" % dsp) ok_(np.array(ds) is not ds.samples, msg="Copy should have been created on array(), %s=%s" % dsp) def test_mergeds(): data0 = Dataset.from_wizard(np.ones((5, 5)), targets=1) data0.fa['one'] = np.ones(5) data1 = Dataset.from_wizard(np.ones((5, 5)), targets=1, chunks=1) data1.fa['one'] = np.zeros(5) data2 = Dataset.from_wizard(np.ones((3, 5)), targets=2, chunks=1) data3 = Dataset.from_wizard(np.ones((4, 5)), targets=2) data4 = Dataset.from_wizard(np.ones((2, 5)), targets=3, chunks=2) data4.fa['test'] = np.arange(5) merged = vstack((data1.copy(), data2)) ok_(merged.nfeatures == 5) l12 = [1] * 5 + [2] * 3 l1 = [1] * 8 ok_((merged.targets == l12).all()) ok_((merged.chunks == l1).all()) data_append = vstack((data1.copy(), data2)) ok_(data_append.nfeatures == 5) ok_((data_append.targets == l12).all()) ok_((data_append.chunks == l1).all()) # # vstacking # if __debug__: # we need the same samples attributes in both datasets assert_raises(ValueError, vstack, (data2, data3)) # tested only in __debug__ assert_raises(ValueError, vstack, (data0, data1, data2, data3)) datasets = (data1, data2, data4) merged = vstack(datasets) assert_equal(merged.shape, (np.sum([len(ds) for ds in datasets]), data1.nfeatures)) assert_false('test' in merged.fa) assert_array_equal(merged.sa.targets, [1] * 5 + [2] * 3 + [3] * 2) # # hstacking # assert_raises(ValueError, hstack, datasets) datasets = (data0, data1) merged = hstack(datasets) assert_equal(merged.shape, (len(data1), np.sum([ds.nfeatures for ds in datasets]))) assert_false('chunks' in merged.sa) assert_array_equal(merged.fa.one, [1] * 5 + [0] * 5) def test_hstack(): """Additional tests for hstacking of datasets """ ds3d = datasets['3dsmall'] nf1 = ds3d.nfeatures nf3 = 3 * nf1 ds3dstacked = hstack((ds3d, ds3d, ds3d)) ok_(ds3dstacked.nfeatures == nf3) for fav in ds3dstacked.fa.itervalues(): v = fav.value ok_(len(v) == nf3) assert_array_equal(v[:nf1], v[nf1:2 * nf1]) assert_array_equal(v[2 * nf1:], v[nf1:2 * nf1]) def test_stack_add_dataset_attributes(): data0 = Dataset.from_wizard(np.ones((5, 5)), targets=1) data0.a['one'] = np.ones(2) data0.a['two'] = 2 data0.a['three'] = 'three' data0.a['common'] = range(10) data0.a['array'] = np.arange(10) data1 = Dataset.from_wizard(np.ones((5, 5)), targets=1) data1.a['one'] = np.ones(3) data1.a['two'] = 3 data1.a['four'] = 'four' data1.a['common'] = range(10) data1.a['array'] = np.arange(10) vstacker = lambda x: vstack((data0, data1), a=x) hstacker = lambda x: hstack((data0, data1), a=x) add_params = (1, None, 'unique', 'uniques', 'all', 'drop_nonunique') for stacker in (vstacker, hstacker): for add_param in add_params: if add_param == 'unique': assert_raises(DatasetError, stacker, add_param) continue r = stacker(add_param) if add_param == 1: assert_array_equal(data1.a.one, r.a.one) assert_equal(r.a.two, 3) assert_equal(r.a.four, 'four') assert_true('three' not in r.a.keys()) assert_true('array' in r.a.keys()) elif add_param == 'uniques': assert_equal(set(r.a.keys()), set(['one', 'two', 'three', 'four', 'common', 'array'])) assert_equal(r.a.two, (2, 3)) assert_equal(r.a.four, ('four',)) elif add_param == 'all': assert_equal(set(r.a.keys()), set(['one', 'two', 'three', 'four', 'common', 'array'])) assert_equal(r.a.two, (2, 3)) assert_equal(r.a.three, ('three', None)) elif add_param == 'drop_nonunique': assert_equal(set(r.a.keys()), set(['common', 'three', 'four', 'array'])) assert_equal(r.a.three, 'three') assert_equal(r.a.four, 'four') assert_equal(r.a.common, range(10)) assert_array_equal(r.a.array, np.arange(10)) def test_stack_add_attributes(): data0 = Dataset.from_wizard(np.ones((5, 5)), targets=1) data1 = Dataset.from_wizard(np.ones((5, 5)), targets=1) data0.fa['ok'] = data0.sa['ok'] = np.arange(5) data1.fa['ok'] = data1.sa['ok'] = np.arange(5) data0.fa['nok'] = data0.sa['nok'] = [0] data1.fa['nok'] = data1.sa['nok'] = np.arange(5) # function, collection name, the other collection name for xstack, colname, ocolname in ((vstack, 'fa', 'sa'), (hstack, 'sa', 'fa')): for add_param in None, 'update', 'drop_nonunique': kw = {colname: add_param} if add_param else {} r = xstack((data0, data1), **kw) COL = lambda x: getattr(x, colname) col = COL(r) ocol = getattr(r, ocolname) # in any scenario, the other collection should have got # both names and be just fine assert_array_equal(ocol['nok'].value, [0] * 5 + range(5)) assert_array_equal(ocol['ok'].value, range(5) * 2) if add_param in ('update',): # will be of the last dataset assert_array_equal(col['nok'].value, COL(data1)['nok'].value) assert_array_equal(col['ok'].value, COL(data1)['ok'].value) elif add_param in (None, 'drop_nonunique'): assert('nok' not in col) # must be dropped since not unique # both the same but let's check ;) assert_array_equal(col['ok'].value, COL(data0)['ok'].value) assert_array_equal(col['ok'].value, COL(data1)['ok'].value) def test_unique_stack(): data = Dataset(np.reshape(np.arange(24), (4, 6)), sa=dict(x=[0, 1, 0, 1]), fa=dict(y=[x for x in 'abccba'])) sa_stack = stack_by_unique_sample_attribute(data, 'x') assert_equal(sa_stack.shape, (2, 12)) assert_array_equal(sa_stack.fa.x, [0] * 6 + [1] * 6) assert_array_equal(sa_stack.fa.y, [x for x in 'abccbaabccba']) fa_stack = stack_by_unique_feature_attribute(data, 'y') assert_equal(fa_stack.shape, (12, 2)) assert_array_equal(fa_stack.sa.x, [0, 1] * 6) assert_array_equal(fa_stack.sa.y, [y for y in 'aaaabbbbcccc']) #assert_array_equal(fa_stack.fa.y,['']) # check values match the fa or sa for i in xrange(4): for j in xrange(6): d = data[i, j] for k, other in enumerate((sa_stack, fa_stack)): msk = other.samples == d.samples ii, jj = np.nonzero(msk) # find matching indices in other o = other[ii, jj] coll = [o.fa, o.sa][k] assert_equal(coll.x, d.sa.x) assert_equal(coll.y, d.fa.y) ystacker = lambda y: lambda x: stack_by_unique_feature_attribute(x, y) assert_raises(KeyError, ystacker('z'), data) data.fa['z'] = [z for z in '123451'] assert_raises(ValueError, ystacker('z'), data) def test_mergeds2(): """Test composition of new datasets by addition of existing ones """ data = dataset_wizard([range(5)], targets=1, chunks=1) assert_array_equal(data.UT, [1]) # simple sequence has to be a single pattern assert_equal(data.nsamples, 1) # check correct pattern layout (1x5) assert_array_equal(data.samples, [[0, 1, 2, 3, 4]]) # check for single labels and origin assert_array_equal(data.targets, [1]) assert_array_equal(data.chunks, [1]) # now try adding pattern with wrong shape assert_raises(ValueError, vstack, (data, dataset_wizard(np.ones((2, 3)), targets=1, chunks=1))) # now add two real patterns dss = datasets['uni2large'].samples data = vstack((data, dataset_wizard(dss[:2, :5], targets=2, chunks=2))) assert_equal(data.nfeatures, 5) assert_array_equal(data.targets, [1, 2, 2]) assert_array_equal(data.chunks, [1, 2, 2]) # test automatic origins data = vstack((data, (dataset_wizard(dss[3:5, :5], targets=3, chunks=[0, 1])))) assert_array_equal(data.chunks, [1, 2, 2, 0, 1]) # test unique class labels assert_array_equal(data.UT, [1, 2, 3]) # test wrong label length assert_raises(ValueError, dataset_wizard, dss[:4, :5], targets=[ 1, 2, 3 ], chunks=2) # test wrong origin length assert_raises(ValueError, dataset_wizard, dss[:4, :5], targets=[ 1, 2, 3, 4 ], chunks=[ 2, 2, 2 ]) def test_combined_samplesfeature_selection(): data = dataset_wizard(np.arange(20).reshape((4, 5)).view(myarray), targets=[1, 2, 3, 4], chunks=[5, 6, 7, 8]) # array subclass survives ok_(isinstance(data.samples, myarray)) ok_(data.nsamples == 4) ok_(data.nfeatures == 5) sel = data[[0, 3], [1, 2]] ok_(sel.nsamples == 2) ok_(sel.nfeatures == 2) assert_array_equal(sel.targets, [1, 4]) assert_array_equal(sel.chunks, [5, 8]) assert_array_equal(sel.samples, [[1, 2], [16, 17]]) # array subclass survives ok_(isinstance(sel.samples, myarray)) # should yield the same result if done sequentially sel2 = data[:, [1, 2]] sel2 = sel2[[0, 3]] assert_array_equal(sel.samples, sel2.samples) ok_(sel2.nsamples == 2) ok_(sel2.nfeatures == 2) # array subclass survives ok_(isinstance(sel.samples, myarray)) assert_raises(ValueError, data.__getitem__, (1, 2, 3)) # test correct behavior when selecting just single rows/columns single = data[0] ok_(single.nsamples == 1) ok_(single.nfeatures == 5) assert_array_equal(single.samples, [[0, 1, 2, 3, 4]]) single = data[:, 0] ok_(single.nsamples == 4) ok_(single.nfeatures == 1) assert_array_equal(single.samples, [[0], [5], [10], [15]]) single = data[1, 1] ok_(single.nsamples == 1) ok_(single.nfeatures == 1) assert_array_equal(single.samples, [[6]]) # array subclass survives ok_(isinstance(single.samples, myarray)) @reseed_rng() def test_labelpermutation_randomsampling(): ds = vstack([Dataset.from_wizard(np.ones((5, 10)), targets=range(5), chunks=i) for i in xrange(1, 6)]) # assign some feature attributes ds.fa['roi'] = np.repeat(np.arange(5), 2) ds.fa['lucky'] = np.arange(10) % 2 # use subclass for testing if it would survive ds.samples = ds.samples.view(myarray) ok_(ds.get_nsamples_per_attr('targets') == {0:5, 1:5, 2:5, 3:5, 4:5}) sample = ds.random_samples(2) ok_(sample.get_nsamples_per_attr('targets').values() == [ 2, 2, 2, 2, 2 ]) ok_((ds.sa['chunks'].unique == range(1, 6)).all()) @reseed_rng() def test_masked_featureselection(): origdata = np.random.standard_normal((10, 2, 4, 3, 5)).view(myarray) data = Dataset.from_wizard(origdata, targets=2, chunks=2) unmasked = data.samples.copy() # array subclass survives ok_(isinstance(data.samples, myarray)) # default must be no mask ok_(data.nfeatures == 120) ok_(data.a.mapper.forward1(origdata[0]).shape == (120,)) # check that full mask uses all features # this uses auto-mapping of selection arrays in __getitem__ sel = data[:, np.ones((2, 4, 3, 5), dtype='bool')] ok_(sel.nfeatures == data.samples.shape[1]) ok_(data.nfeatures == 120) # check partial array mask partial_mask = np.zeros((2, 4, 3, 5), dtype='bool') partial_mask[0, 0, 2, 2] = 1 partial_mask[1, 2, 2, 0] = 1 sel = data[:, partial_mask] ok_(sel.nfeatures == 2) # check that feature selection does not change source data ok_(data.nfeatures == 120) ok_(data.a.mapper.forward1(origdata[0]).shape == (120,)) # check selection with feature list sel = data[:, [0, 37, 119]] ok_(sel.nfeatures == 3) # check size of the masked samples ok_(sel.samples.shape == (10, 3)) # check that the right features are selected assert_array_equal(unmasked[:, [0, 37, 119]], sel.samples) @reseed_rng() def test_origmask_extraction(): origdata = np.random.standard_normal((10, 2, 4, 3)) data = Dataset.from_wizard(origdata, targets=2, chunks=2) # check with custom mask sel = data[:, 5] ok_(sel.samples.shape[1] == 1) @reseed_rng() def test_feature_masking(): mask = np.zeros((5, 3), dtype='bool') mask[2, 1] = True mask[4, 0] = True data = Dataset.from_wizard(np.arange(60).reshape((4, 5, 3)), targets=1, chunks=1, mask=mask) # check simple masking ok_(data.nfeatures == 2) # selection should be idempotent ok_(data[:, mask].nfeatures == data.nfeatures) # check that correct feature get selected assert_array_equal(data[:, 1].samples[:, 0], [12, 27, 42, 57]) # XXX put back when coord -> fattr is implemented #ok_(tuple(data[:, 1].a.mapper.getInId(0)) == (4, 0)) ok_(data[:, 1].a.mapper.forward1(mask).shape == (1,)) # check sugarings # XXX put me back #self.assertTrue(np.all(data.I == data.origids)) assert_array_equal(data.C, data.chunks) assert_array_equal(data.UC, np.unique(data.chunks)) assert_array_equal(data.T, data.targets) assert_array_equal(data.UT, np.unique(data.targets)) assert_array_equal(data.S, data.samples) assert_array_equal(data.O, data.mapper.reverse(data.samples)) def test_origid_handling(): ds = dataset_wizard(np.atleast_2d(np.arange(35)).T) ds.init_origids('both') ok_(ds.nsamples == 35) assert_equal(len(np.unique(ds.sa.origids)), 35) assert_equal(len(np.unique(ds.fa.origids)), 1) selector = [3, 7, 10, 15] subds = ds[selector] assert_array_equal(subds.sa.origids, ds.sa.origids[selector]) # Now if we request new origids if they are present we could # expect different behavior assert_raises(ValueError, subds.init_origids, 'both', mode='raises') sa_origids = subds.sa.origids.copy() fa_origids = subds.fa.origids.copy() for s in ('both', 'samples', 'features'): assert_raises(RuntimeError, subds.init_origids, s, mode='raise') subds.init_origids(s, mode='existing') # we should have the same origids as before assert_array_equal(subds.sa.origids, sa_origids) assert_array_equal(subds.fa.origids, fa_origids) # Lets now change, which should be default behavior subds.init_origids('both') assert_equal(len(sa_origids), len(subds.sa.origids)) assert_equal(len(fa_origids), len(subds.fa.origids)) # values should change though ok_((sa_origids != subds.sa.origids).any()) ok_((fa_origids != subds.fa.origids).any()) def test_idhash(): ds = dataset_wizard(np.arange(12).reshape((4, 3)), targets=1, chunks=1) origid = ds.idhash #XXX BUG -- no assurance that labels would become an array... for now -- do manually ds.targets = np.array([3, 1, 2, 3]) # change all labels ok_(origid != ds.idhash, msg="Changing all targets should alter dataset's idhash") origid = ds.idhash z = ds.targets[1] assert_equal(origid, ds.idhash, msg="Accessing shouldn't change idhash") z = ds.chunks assert_equal(origid, ds.idhash, msg="Accessing shouldn't change idhash") z[2] = 333 ok_(origid != ds.idhash, msg="Changing value in attribute should change idhash") origid = ds.idhash ds.samples[1, 1] = 1000 ok_(origid != ds.idhash, msg="Changing value in data should change idhash") origid = ds.idhash orig_labels = ds.targets #.copy() ds.sa.targets = range(len(ds)) ok_(origid != ds.idhash, msg="Chaging attribute also changes idhash") ds.targets = orig_labels ok_(origid == ds.idhash, msg="idhash should be restored after reassigning orig targets") def test_arrayattributes(): samples = np.arange(12).reshape((4, 3)) labels = range(4) chunks = [1, 1, 2, 2] ds = dataset_wizard(samples, labels, chunks) for a in (ds.samples, ds.targets, ds.chunks): ok_(isinstance(a, np.ndarray)) ds.targets = labels ok_(isinstance(ds.targets, np.ndarray)) ds.chunks = chunks ok_(isinstance(ds.chunks, np.ndarray)) # we should allow assigning somewhat more complex # iterables -- use ndarray of dtype object then # and possibly spit out a warning ds.sa['complex_list'] = [[], [1], [1, 2], []] ok_(ds.sa.complex_list.dtype == object) # but incorrect length should still fail assert_raises(ValueError, ds.sa.__setitem__, 'complex_list2', [[], [1], [1, 2]]) def test_repr(): attr_repr = "SampleAttribute(name='TestAttr', doc='my own test', " \ "value=array([0, 1, 2, 3, 4]), length=None)" sattr = SampleAttribute(name='TestAttr', doc='my own test', value=np.arange(5)) # check precise formal representation ok_(repr(sattr) == attr_repr) # check that it actually works as a Python expression from numpy import array eattr = eval(repr(sattr)) ok_(repr(eattr), attr_repr) # should also work for a simple dataset # Does not work due to bug in numpy: # python -c "from numpy import *; print __version__; r=repr(array(['s', None])); print r; eval(r)" # would give "array([s, None], dtype=object)" without '' around s #ds = datasets['uni2small'] ds = Dataset([[0, 1]], a={'dsa1': 'v1'}, sa={'targets': [0]}, fa={'targets': ['b', 'n']}) ds_repr = repr(ds) cfg_repr = cfg.get('datasets', 'repr', 'full') if cfg_repr == 'full': try: ok_(repr(eval(ds_repr)) == ds_repr) except SyntaxError, e: raise AssertionError, "%r cannot be evaluated" % ds_repr elif cfg_repr == 'str': ok_(str(ds) == ds_repr) else: raise AssertionError('Unknown kind of datasets.repr configuration %r' % cfg_repr) def test_str(): args = (np.arange(12, dtype=np.int8).reshape((4, 3)), range(4), [1, 1, 2, 2]) for iargs in range(1, len(args)): ds = dataset_wizard(*(args[:iargs])) ds_s = str(ds) ok_(ds_s.startswith('')) def is_bsr(x): """Helper function to check if instance is bsr_matrix if such is avail at all """ import scipy.sparse as sparse return hasattr(sparse, 'bsr_matrix') and isinstance(x, sparse.bsr_matrix) def test_other_samples_dtypes(): skip_if_no_external('scipy') import scipy.sparse as sparse dshape = (4, 3) # test for ndarray, custom ndarray-subclass, matrix, # and all sparse matrix types we know stypes = [np.arange(np.prod(dshape)).reshape(dshape), np.arange(np.prod(dshape)).reshape(dshape).view(myarray), np.matrix(np.arange(np.prod(dshape)).reshape(dshape)), sparse.csc_matrix(np.arange(np.prod(dshape)).reshape(dshape)), sparse.csr_matrix(np.arange(np.prod(dshape)).reshape(dshape))] if hasattr(sparse, 'bsr_matrix'): stypes += [ # BSR cannot be sliced, but is more efficient for sparse # arithmetic operations than CSC pr CSR sparse.bsr_matrix(np.arange(np.prod(dshape)).reshape(dshape))] # LIL and COO are best for constructing matrices, not for # doing something with them #sparse.lil_matrix(np.arange(np.prod(dshape)).reshape(dshape)), #sparse.coo_matrix(np.arange(np.prod(dshape)).reshape(dshape)), # DOK doesn't allow duplicates and is bad at array-like slicing #sparse.dok_matrix(np.arange(np.prod(dshape)).reshape(dshape)), # DIA only has diagonal storage and cannot be sliced #sparse.dia_matrix(np.arange(np.prod(dshape)).reshape(dshape))] # it needs to have .shape (the only way to get len(sparse)) for s in stypes: ds = Dataset(s) # nothing happended to the original dtype assert_equal(type(s), type(ds.samples)) # no shape change assert_equal(ds.shape, dshape) assert_equal(ds.nsamples, dshape[0]) assert_equal(ds.nfeatures, dshape[1]) # sparse doesn't work like an array if sparse.isspmatrix(ds.samples): assert_raises(RuntimeError, np.mean, ds) else: # need to convert results, since matrices return matrices assert_array_equal(np.mean(ds, axis=0), np.array(np.mean(ds.samples, axis=0)).squeeze()) # select subset and see what happens # bsr type doesn't support first axis slicing if is_bsr(s): assert_raises(NotImplementedError, ds.__getitem__, [0]) elif versions['scipy'] <= '0.6.0' and sparse.isspmatrix(ds.samples): assert_raises(IndexError, ds.__getitem__, [0]) else: sel = ds[1:3] assert_equal(sel.shape, (2, dshape[1])) assert_equal(type(s), type(sel.samples)) if sparse.isspmatrix(sel.samples): assert_array_equal(sel.samples[1].todense(), ds.samples[2].todense()) else: assert_array_equal(sel.samples[1], ds.samples[2]) # feature selection if is_bsr(s): assert_raises(NotImplementedError, ds.__getitem__, (slice(None), 0)) elif versions['scipy'] <= '0.6.0' and sparse.isspmatrix(ds.samples): assert_raises(IndexError, ds.__getitem__, (slice(None), 0)) else: sel = ds[:, 1:3] assert_equal(sel.shape, (dshape[0], 2)) assert_equal(type(s), type(sel.samples)) if sparse.isspmatrix(sel.samples): assert_array_equal(sel.samples[:, 1].todense(), ds.samples[:, 2].todense()) else: assert_array_equal(sel.samples[:, 1], ds.samples[:, 2]) # what we don't do class voodoo: dtype = 'fancy' # voodoo assert_raises(ValueError, Dataset, voodoo()) # crippled assert_raises(ValueError, Dataset, np.array(5)) # things that might behave in surprising ways # lists -- first axis is samples, hence single feature ds = Dataset(range(5)) assert_equal(ds.nfeatures, 1) assert_equal(ds.shape, (5, 1)) # arrays of objects data = np.array([{}, {}]) ds = Dataset(data) assert_equal(ds.shape, (2, 1)) assert_equal(ds.nsamples, 2) # Nothing to index, hence no features assert_equal(ds.nfeatures, 1) @sweepargs(ds=datasets.values() + [ Dataset(np.array([None], dtype=object)), dataset_wizard(np.arange(3), targets=['a', 'bc', 'd'], chunks=np.arange(3)), dataset_wizard(np.arange(4), targets=['a', 'bc', 'a', 'bc'], chunks=[1, 1, 2, 2]), dataset_wizard(np.arange(4), targets=['a', 'bc', 'a', None], chunks=[1, 1, 2, 2]), ]) def test_dataset_summary(ds): s = ds.summary() ok_(s.startswith(str(ds)[1:-1])) # we strip surrounding '<...>' # TODO: actual test of what was returned; to do that properly # RF the summary() so it is a dictionary summaries = [] if 'targets' in ds.sa: summaries += ['Sequence statistics'] if 'chunks' in ds.sa: summaries += ['Summary for targets', 'Summary for chunks'] # By default we should get all kinds of summaries if not 'Number of unique targets >' in s: for summary in summaries: ok_(summary in s) # If we give "wrong" targets_attr we should see none of summaries s2 = ds.summary(targets_attr='bogus') for summary in summaries: ok_(not summary in s2) @nodebug(['ID_IN_REPR', 'MODULE_IN_REPR']) @with_tempfile(suffix='.hdf5') def test_h5py_io(dsfile): skip_if_no_external('h5py') # store random dataset to file ds = datasets['3dlarge'] ds.save(dsfile) # reload and check for identity ds2 = Dataset.from_hdf5(dsfile) assert_datasets_equal(ds, ds2) # Old tests -- better more than less ;) assert_array_equal(ds.samples, ds2.samples) for attr in ds.sa: assert_array_equal(ds.sa[attr].value, ds2.sa[attr].value) for attr in ds.fa: assert_array_equal(ds.fa[attr].value, ds2.fa[attr].value) assert_true(len(ds.a.mapper), 2) # since we have no __equal__ do at least some comparison assert_equal(repr(ds.a.mapper), repr(ds2.a.mapper)) if __debug__: # debug mode needs special test as it enhances the repr output # with module info and id() appendix for objects # # INCORRECT slicing (:-1) since without any hash it results in # empty list -- moreover we seems of not reporting ids with # # any longer # #assert_equal('#'.join(repr(ds.a.mapper).split('#')[:-1]), # '#'.join(repr(ds2.a.mapper).split('#')[:-1])) pass @nodebug(['ID_IN_REPR', 'MODULE_IN_REPR']) @with_tempfile(suffix='.npz') def test_npz_io(dsfile): # store random dataset to file ds = datasets['3dlarge'].copy() ds.a.pop('mapper') # can't be saved ds.to_npz(dsfile) # reload and check for identity ds2 = Dataset.from_npz(dsfile) assert_datasets_equal(ds, ds2) assert_array_equal(ds.samples, ds2.samples) # But if we try to save with mapper -- it just gets ignored (warning is # issued) datasets['3dlarge'].to_npz(dsfile) ds2_ = Dataset.from_npz(dsfile) assert_datasets_equal(ds2, ds2_) def test_all_equal(): # all these values are supposed to be different from each other # but equal to themselves a = np.random.normal(size=(10, 10)) + 1000. b = np.zeros((10, 10)) c = np.zeros(10) d = np.zeros(11) e = 0 f = None g = True h = '' i = 'a' j = dict(bummer=np.arange(5)) values = [a, b, c, d, e, f, g, h, i, j] for ii, v in enumerate(values): for jj, w in enumerate(values): # make deepcopy so == operator cannot cheat by checking id() assert_equal(all_equal(copy.deepcopy(v), copy.deepcopy(w)), ii == jj, msg='cmp(%s, %s)' % (type(v), type(w))) # ensure that this function behaves like the # standard python '==' comparator for singulars singulars = [0, None, True, False, '', 1, 'a'] for v in singulars: for w in singulars: assert_equal(all_equal(v, w), v == w) def test_hollow_samples(): sshape = (10, 5) ds = Dataset(HollowSamples(sshape, dtype=int), sa={'targets': np.tile(['one', 'two'], sshape[0] / 2)}) assert_equal(ds.shape, sshape) assert_equal(ds.samples.dtype, int) # should give us features [1,3] and samples [2,3,5] mds = ds[[2, 3, 5], 1::2] assert_array_equal(mds.samples.sid, [2, 3, 5]) assert_array_equal(mds.samples.fid, [1, 3]) assert_equal(mds.shape, (3, 2)) assert_equal(ds.samples.dtype, mds.samples.dtype) # orig should stay pristine assert_equal(ds.samples.dtype, int) assert_equal(ds.shape, sshape) def test_assign_sa(): # https://github.com/PyMVPA/PyMVPA/issues/149 ds = Dataset(np.arange(6).reshape((2,-1)), sa=dict(targets=range(2))) ds.sa['task'] = ds.sa['targets'] # so it should be a new collectable now assert_equal(ds.sa['task'].name, 'task') assert_equal(ds.sa['targets'].name, 'targets') # this lead to issue reported in 149 assert('task' in ds.sa.keys()) assert('targets' in ds.sa.keys()) ds1 = ds[:, 1] assert('task' in ds1.sa.keys()) assert('targets' in ds1.sa.keys()) # issue reported in 149 assert_equal(ds1.sa['task'].name, 'task') assert_equal(ds1.sa['targets'].name,'targets') def test_dataset_select_getitem(): ds = Dataset(np.arange(15).reshape((5,-1)), sa=dict(targets=range(5), chunks=['a', 'b', 'a', 'b', 'a']), fa=dict(voxel_indices=[[1, 2], [2, 1], [0, 0]], roi=['x', 'x', 'z'])) # either sa or fa selection must be provided! assert_raises(RuntimeError, ds.select) assert_raises(RuntimeError, ds.select, strict=False) sd = {'targets': range(3), 'chunks': 'a'} for ds_ in (ds[sd], ds.select(sd), ds.select(sd, strict=False)): assert(ds_.shape == (2, 3)) assert_array_equal(ds_.chunks, ['a', 'a']) fd = {'roi': ['x']} for ds_ in (ds[sd, fd ], ds.select(sd, fd), ds.select(sd, fd, strict=False)): assert(ds_.shape == (2, 2)) assert_array_equal(ds_.chunks, ['a', 'a']) assert_array_equal(ds_.fa.roi, ['x', 'x']) fd = {'voxel_indices': [[1, 2]]} for ds_ in (ds[:, fd], ds.select(None, fd), ds.select(fadict=fd), ds.select(fadict=fd, strict=False)): assert(ds_.shape == (5, 1)) assert_array_equal(ds_.fa.voxel_indices, [[1, 2]]) # select two voxels, but also swap "selection" values out of order. # result should still be not reordered features ds_ = ds[{'chunks': ['b']}, {'voxel_indices': [[0, 0], [1, 2]]}] assert(ds_.shape == (2, 2)) assert_array_equal(ds_.chunks, ['b', 'b']) assert_array_equal(ds_.fa.voxel_indices, [[1, 2], [0, 0]]) for m in (ds.__getitem__, ds.select): assert_raises(ValueError, m, {'invalid': [1]}) # we are strict for now, to avoid human typos in specifying which items # to pick up -- if none was matching -- error! assert_raises(ValueError, ds.__getitem__, {'targets': ['nonexisting']}) assert_raises(ValueError, ds.__getitem__, {'targets': [0, 999]}) # but allow loose matching with strict=False ds_ = ds.select({'targets': [0, 999]}, strict=False) assert_array_equal(ds[{'targets': [0]}].samples, ds_.samples) assert_true(np.all(ds_.sa.targets == 0)) # Let's just test collection's function directly regarding correct operation # on difficult cases voxel_indices = np.array([[[1, 2, 3], [2, 1, 1]], [[2, 1, 1], [2, 1, 1]], [[1, 2, 3], [1, 2, 3]], [[4, 4, 4], [4, 4, 4]], [[2, 1, 1], [2, 1, 1]], ]) cmp = FeatureAttributesCollection._compare_to_value for strict in [True, False]: assert_raises(ValueError, cmp, voxel_indices, [1, 2, 3], strict=strict) assert_raises(ValueError, cmp, voxel_indices, 4, strict=strict) assert_raises(ValueError, cmp, voxel_indices, [[1, 2, 3]], strict=strict) assert_array_equal(cmp(voxel_indices, [[2, 1, 1], [2, 1, 1]]), [False, True, False, False, True]) # matching compatible elements should puke if not present, unless strict=False assert_raises(ValueError, cmp, voxel_indices, [[2, 1, 1], [2, 1, 999]]) assert_array_equal(cmp(voxel_indices, [[2, 1, 1], [2, 1, 999]], strict=False), [False, False, False, False, False]) def test_attributes_match(): col = FeatureAttributesCollection({'roi': ['a', 'b', 'c', 'a'], 'coord': [[0, 1], [0, 2], [0, 1], [0, 2]]}) assert_array_equal(col.match(dict(roi=['a', 'c'])), [True, False, True, True]) assert_array_equal(col.match(dict(roi=['a', 'c'], coord=[[0, 1]])), [True, False, True, False]) # by default we are strict assert_raises(ValueError, col.match, dict(roi=['a', 'c', 'xxx'])) # but otherwise should just ignore absent items completely # logic: e.g. select all c1 and c2, if no c2 present -- select # at least all c1, if neither present -- nothing really to select assert_array_equal(col.match(dict(roi=['a', 'c', 'xxx']), strict=False), [True, False, True, True]) assert_array_equal(col.match(dict(roi=['xxx']), strict=False), [False]*4) # selection requested per list of items to match, not just an item assert_raises(ValueError, col.match, dict(coord=[0, 1])) pymvpa2-2.6.4/mvpa2/tests/test_datasrcs.py000066400000000000000000000031361323370031300205230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA's data sources""" from mvpa2.testing import * def test_sklearn_data_wrappers(): skip_if_no_external('skl') import mvpa2.datasets.sources as mvpads if externals.versions['skl'] >= '0.9': from sklearn import datasets as skldata else: from scikits.learn import datasets as skldata import inspect found_fx = 0 for fx in skldata.__dict__: if not (fx.startswith('make_') or fx.startswith('load_')) \ or fx in ['load_filenames', 'load_files', 'load_sample_image', 'load_sample_images', 'load_svmlight_files', 'load_svmlight_file']: continue found_fx += 1 # fx() signatures must be the same assert_equal(inspect.getargspec(getattr(skldata, fx)), inspect.getargspec(getattr(mvpads, 'skl_%s' % fx[5:]))) if fx in ('load_iris',): # add this one if sklearn issue #2865 is resolved # 'load_boston'): assert_array_equal(getattr(skldata, fx)()['data'], getattr(mvpads, 'skl_%s' % fx[5:])().samples) # if we do not get a whole bunch, something changed assert_true(found_fx > 15) pymvpa2-2.6.4/mvpa2/tests/test_dcov.py000066400000000000000000000070131323370031300176500ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for dCOV and associated functions""" from mvpa2.testing import * # For testing from nose.tools import ok_ from numpy.testing import assert_array_almost_equal from mvpa2.testing.datasets import get_random_rotation from mvpa2.misc.dcov import _euclidean_distances, dCOV, dcorcoef from mvpa2.base import externals if externals.exists('cran-energy'): from mvpa2.misc.dcov import dCOV_R @reseed_rng() def test_euclidean_distances(): x = np.random.normal(size=(4, 10)) + np.random.normal() * 10 d = _euclidean_distances(x, uv=True) # trust no one! distances = np.zeros((4, 10, 10)) for ix, x_ in enumerate(x.T): for iy, y_ in enumerate(x.T): distances[:, ix, iy] = np.sqrt((x_ - y_) ** 2) assert_array_equal(d, distances) def test_dCOV_against_R_energy(): skip_if_no_external('cran-energy') for N in xrange(1, 10): # sweep through size of the first data # We will compare to R implementation M, T = 4, 30 x = np.random.normal(size=(N, T)) + np.random.normal() * 10 R = np.random.normal(size=(N, M)) y = 10 * np.dot(R.T, x) + np.random.normal(size=(M, T)) \ + np.random.normal(size=(M,))[:, None] # offset # To assure that works for not all_est pdCovs = dCOV(x, y, all_est=False) dCovs = dCOV_R(x, y, all_est=False) assert_array_almost_equal(pdCovs, dCovs) for uv in True, False: for out, outp in zip(dCOV_R(x, y, uv=uv), dCOV(x, y, uv=uv)): assert_array_almost_equal(out, outp) @labile(5, 1) def test_dCOV(): # Few simple tests to verify that the measure seems to be ok for N in xrange(1, 10): # sweep through size of the first data # We will compare to R implementation M, T = 4, 100 x = np.random.normal(size=(N, T)) + np.random.normal() * 10 R = np.random.normal(size=(N, M)) # linearly dependent variable after rotation dCov, dCor, _, _ = dCOV(x, 10 * np.dot(R.T, x)) ok_(dCor > 0.7) # should be really high but might fluctuate # completely independent variable dCov, dCor, _, _ = dCOV(x, np.random.normal(size=x.shape)) # more dimension in x -- more uncertainty that they are # independent below is a heuristic (for T=100) and we should # just implement proper bootstrap significance estimation for # dCor ok_(dCor < 0.2 + N / 2.0) # should be really high but might fluctuate # the same variable -- things should match for dCov and dVar's dCov, dCor, dVarx, dVary = dCOV(x, x) assert_equal(dCov, dVarx) assert_equal(dCov, dVary) assert_equal(dCor, 1.) assert_equal(dcorcoef(x, x), 1) #+ np.random.normal(size=(M, T)) \ # + np.random.normal(size=(M,))[:, None] # offset # Test that would work on vectors dCov, dCor, dVarx, dVary = dCOV(np.arange(N), np.sin(np.arange(N) / 3.)) if N > 1: ok_(dCor > 0.6) # should be really high but might fluctuate assert_equal(dcorcoef(np.arange(N), np.sin(np.arange(N) / 3.)), dCor) pymvpa2-2.6.4/mvpa2/tests/test_dochelpers.py000066400000000000000000000135731323370031300210550ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA dochelpers""" from mvpa2.base.dochelpers import single_or_plural, borrowdoc, borrowkwargs from mvpa2.base.dochelpers import strip_strid import unittest if __debug__: from mvpa2.base import debug from mvpa2.testing.tools import SkipTest class DochelpersTests(unittest.TestCase): def test_basic(self): self.assertEqual(single_or_plural('a', 'b', 1), 'a') self.assertEqual(single_or_plural('a', 'b', 0), 'b') self.assertEqual(single_or_plural('a', 'b', 123), 'b') def test_borrow_doc(self): class A(object): def met1(self): """met1doc""" pass def met2(self): """met2doc""" pass class B(object): @borrowdoc(A) def met1(self): pass @borrowdoc(A, 'met1') def met2(self): pass self.assertEqual(B.met1.__doc__, A.met1.__doc__) self.assertEqual(B.met2.__doc__, A.met1.__doc__) def test_borrow_kwargs(self): class A(object): def met1(self, kp1=None, kp2=1): """met1 doc Parameters ---------- kp1 : None or int keyword parameter 1 kp2 : int, optional something """ pass def met2(self): """met2doc""" pass class B(object): @borrowkwargs(A) def met1(self, bu, **kwargs): """B.met1 doc Parameters ---------- bu description **kwargs Same as in A.met1 Some postamble """ pass @borrowkwargs(A, 'met1') def met_nodoc(self, **kwargs): pass @borrowkwargs(A, 'met1') def met_nodockwargs(self, bogus=None, **kwargs): """B.met_nodockwargs Parameters ---------- bogus something """ pass if True: # Just so we get different indentation level @borrowkwargs(A, 'met1', ['kp1']) def met_excludes(self, boguse=None, **kwargs): """B.met_excludes Parameters ---------- boguse something """ pass self.assertTrue('B.met1 doc' in B.met1.__doc__) for m in (B.met1, B.met_nodoc, B.met_nodockwargs, B.met_excludes): docstring = m.__doc__ self.assertTrue('Parameters' in docstring) self.assertTrue(not '*kwargs' in docstring, msg="We shouldn't carry kwargs in docstring now," "Got %r for %s" % (docstring, m)) self.assertTrue('kp2 ' in docstring) self.assertTrue((('kp1 ' in docstring) ^ (m == B.met_excludes))) # indentation should have been squashed properly self.assertTrue(not ' ' in docstring) # some additional checks to see if we are not loosing anything self.assertTrue('Some postamble' in B.met1.__doc__) self.assertTrue('B.met_nodockwargs' in B.met_nodockwargs.__doc__) self.assertTrue('boguse' in B.met_excludes.__doc__) def test_searchlight_doc(self): # Searchlight __doc__ revealed issue of multiple enable_ca from mvpa2.measures.searchlight import Searchlight sldoc = Searchlight.__init__.__doc__ self.assertEqual(sldoc.count('enable_ca'), 1) self.assertEqual(sldoc.count('disable_ca'), 1) def test_recursive_reprs(self): # https://github.com/PyMVPA/PyMVPA/issues/122 from mvpa2.base.param import Parameter from mvpa2.base.state import ClassWithCollections class C1(ClassWithCollections): f = Parameter(None) class C2(ClassWithCollections): p = Parameter(None) def trouble(self, results): return results # provide non-default value of sl c1 = C1() c2 = C2(p=c1) # bind sl's results_fx to hsl's instance method c2.params.p.params.f = c2.trouble c1id = c2id = mod = '' # kaboom -- this should not crash now if __debug__: if 'ID_IN_REPR' in debug.active: from mvpa2.base.dochelpers import _strid c1id = _strid(c1) c2id = _strid(c2) if 'MODULE_IN_REPR' in debug.active: mod = 'mvpa2.tests.test_dochelpers.' raise SkipTest("TODO: needs similar handling in _saferepr") self.assertEqual( repr(c2), '%(mod)sC2(p=%(mod)sC1(f=)%(c1id)s)%(c2id)s' % locals()) def test_strip_strid(self): self.assertEqual(strip_strid("#1"), "#1") # very short ones left alone -- unlikely to be id self.assertEqual(strip_strid("#140136298269872"), "") # long ones replaced self.assertEqual(strip_strid("a#140136298269872 b#140136298269872"), "a b") # multiple # TODO: more unittests def suite(): # pragma: no cover return unittest.makeSuite(DochelpersTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_eeglab.py000066400000000000000000000036501323370031300201370ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA EEGLAB stuff""" import os.path from mvpa2.testing import * from mvpa2 import pymvpa_dataroot from mvpa2.datasets.eeglab import eeglab_dataset import tempfile class MEGTests(unittest.TestCase): def test_eeglab_dataset(self): data = ''' Fpz Cz Pz 0 30.2 20.3 20.2 2 1.5 1.6 1.72 0 1.1 1.2 1.3 2 2.5 2.6 -0.2 0 -2 -3 1 2 1 2 2.234''' # Use this whenever we fully switch to nose to run tests #skip_if_no_external('gzip') fd, fn = tempfile.mkstemp('eeglab.txt', 'eeglab'); os.close(fd) with open(fn, 'w') as f: f.write(data) eeg = eeglab_dataset(fn) os.remove(fn) assert_array_equal(set(eeg.channelids), set(['Fpz', 'Cz', 'Pz'])) assert_array_equal(eeg.timepoints, np.asarray([0., 2.])) assert_equal(eeg.nchannels, 3) assert_equal(eeg.ntimepoints, 2) assert_equal(eeg.nsamples, 3) assert_equal(eeg.nfeatures, 6) assert_equal(eeg.dt, 2) assert_equal(eeg.t0, 0) assert_array_equal(eeg.samples[0, 3], 1.5) sel_time = eeg[:, eeg.get_features_by_timepoints(lambda x:x > 0)] assert_equal(sel_time.ntimepoints, 1) assert_equal(sel_time.t0, 2) sel_chan = eeg[:, eeg.get_features_by_channelids(['Fpz', 'Pz'])] assert_equal(sel_chan.nchannels, 2) assert_array_equal(sel_chan.channelids, ['Fpz', 'Pz']) def suite(): # pragma: no cover return unittest.makeSuite(MEGTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_eepdataset.py000066400000000000000000000052121323370031300210330ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA EEP dataset""" import numpy as np from os.path import join as pathjoin from mvpa2 import pymvpa_dataroot from mvpa2.base import externals from mvpa2.datasets.eep import eep_dataset, EEPBin from mvpa2.testing.tools import assert_equal, assert_true, \ assert_array_almost_equal def test_eep_load(): eb = EEPBin(pathjoin(pymvpa_dataroot, 'eep.bin')) ds = [ eep_dataset(source, targets=[1, 2]) for source in (eb, pathjoin(pymvpa_dataroot, 'eep.bin')) ] for d in ds: assert_equal(d.nsamples, 2) assert_equal(d.nfeatures, 128) assert_equal(np.unique(d.fa.channels[4*23:4*23+4]), 'Pz') assert_array_almost_equal([np.arange(-0.002, 0.005, 0.002)] * 32, d.a.mapper.reverse1(d.fa.timepoints)) def test_eep_bin(): eb = EEPBin(pathjoin(pymvpa_dataroot, 'eep.bin')) assert_equal(eb.nchannels, 32) assert_equal(eb.nsamples, 2) assert_equal(eb.ntimepoints, 4) assert_true(eb.t0 - eb.dt < 0.00000001) assert_equal(len(eb.channels), 32) assert_equal(eb.data.shape, (2, 32, 4)) # XXX put me back whenever there is a proper resamples() # def test_resampling(self): # ds = eep_dataset(pathjoin(pymvpa_dataroot, 'eep.bin'), # targets=[1, 2]) # channelids = np.array(ds.a.channelids).copy() # self.assertTrue(np.round(ds.samplingrate) == 500.0) # # if not externals.exists('scipy'): # return # # # should puke when called with nothing # self.assertRaises(ValueError, ds.resample) # # # now for real -- should divide nsamples into half # rds = ds.resample(sr=250, inplace=False) # # We should have not changed anything # self.assertTrue(np.round(ds.samplingrate) == 500.0) # # # by default do 'inplace' resampling # ds.resample(sr=250) # for d in [rds, ds]: # self.assertTrue(np.round(d.samplingrate) == 250) # self.assertTrue(d.nsamples == 2) # self.assertTrue(np.abs((d.a.dt - 1.0/250)/d.a.dt)<1e-5) # self.assertTrue(np.all(d.a.channelids == channelids)) # # lets now see if we still have a mapper # self.assertTrue(d.O.shape == (2, len(channelids), 2)) pymvpa2-2.6.4/mvpa2/tests/test_emp_null.py000066400000000000000000000017531323370031300205350ustar00rootroot00000000000000""" Test the empirical null estimator. Borrowed from NiPy -- see COPYING distributed with PyMVPA for the copyright/license information. """ import warnings import numpy as np from mvpa2.base import cfg from mvpa2.testing import * skip_if_no_external('scipy') from mvpa2.support.nipy import emp_null #from emp_null import ENN def setup(): # Suppress warnings during tests to reduce noise warnings.simplefilter("ignore") def teardown(): # Clear list of warning filters warnings.resetwarnings() @reseed_rng() def test_efdr(): # generate the data n = 100000 x = np.random.randn(n) x[:3000] += 3 # # make the tests efdr = emp_null.ENN(x) if cfg.getboolean('tests', 'labile', default='yes'): # 2.9 instead of stricter 3.0 for tolerance np.testing.assert_array_less(efdr.fdr(2.9), 0.15) np.testing.assert_array_less(-efdr.threshold(alpha=0.05), -3) np.testing.assert_array_less(-efdr.uncorrected_threshold(alpha=0.001), -3) pymvpa2-2.6.4/mvpa2/tests/test_enet.py000066400000000000000000000042461323370031300176550ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA least angle regression (ENET) classifier""" import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import * skip_if_no_external('elasticnet') from mvpa2 import cfg from mvpa2.clfs.enet import ENET from scipy.stats import pearsonr from mvpa2.misc.data_generators import normal_feature_dataset class ENETTests(unittest.TestCase): def test_enet(self): # not the perfect dataset with which to test, but # it will do for now. #data = datasets['dumb2'] # for some reason the R code fails with the dumb data data = datasets['chirp_linear'] clf = ENET() clf.train(data) # prediction has to be almost perfect # test with a correlation pre = clf.predict(data.samples) cor = pearsonr(pre, data.targets) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(cor[0] > .8) def test_enet_state(self): #data = datasets['dumb2'] # for some reason the R code fails with the dumb data data = datasets['chirp_linear'] clf = ENET() clf.train(data) clf.ca.enable('predictions') p = clf.predict(data.samples) self.assertTrue((p == clf.ca.predictions).all()) def test_enet_sensitivities(self): data = datasets['chirp_linear'] # use ENET on binary problem clf = ENET() clf.train(data) # now ask for the sensitivities WITHOUT having to pass the dataset # again sens = clf.get_sensitivity_analyzer(force_train=False)(None) self.assertTrue(sens.shape == (data.nfeatures,)) def suite(): # pragma: no cover return unittest.makeSuite(ENETTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_erdataset.py000066400000000000000000000312461323370031300206760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for the event-related dataset''' from mvpa2.testing import * from mvpa2.datasets import dataset_wizard from mvpa2.mappers.flatten import FlattenMapper from mvpa2.mappers.boxcar import BoxcarMapper from mvpa2.mappers.fx import FxMapper from mvpa2.datasets.eventrelated import find_events, eventrelated_dataset, \ extract_boxcar_event_samples from mvpa2.datasets.sources import load_example_fmri_dataset from mvpa2.mappers.zscore import zscore def test_erdataset(): # 3 chunks, 5 targets, blocks of 5 samples each nchunks = 3 ntargets = 5 blocklength = 5 nfeatures = 2 targets = np.tile(np.repeat(range(ntargets), blocklength), nchunks) chunks = np.repeat(np.arange(nchunks), ntargets * blocklength) samples = np.repeat( np.arange(nchunks * ntargets * blocklength), nfeatures).reshape(-1, nfeatures) ds = dataset_wizard(samples, targets=targets, chunks=chunks) # check if events are determined properly evs = find_events(targets=ds.sa.targets, chunks=ds.sa.chunks) for ev in evs: assert_equal(ev['duration'], blocklength) assert_equal(ntargets * nchunks, len(evs)) for t in range(ntargets): assert_equal(len([ev for ev in evs if ev['targets'] == t]), nchunks) # now turn `ds` into an eventreleated dataset erds = eventrelated_dataset(ds, evs) # the only unprefixed sample attributes are assert_equal(sorted([a for a in ds.sa if not a.startswith('event')]), ['chunks', 'targets']) # samples as expected? assert_array_equal(erds.samples[0], np.repeat(np.arange(blocklength), nfeatures)) # that should also be the temporal feature offset assert_array_equal(erds.samples[0], erds.fa.event_offsetidx) assert_array_equal(erds.sa.event_onsetidx, np.arange(0,71,5)) # finally we should see two mappers assert_equal(len(erds.a.mapper), 2) assert_true(isinstance(erds.a.mapper[0], BoxcarMapper)) assert_true(isinstance(erds.a.mapper[1], FlattenMapper)) # check alternative event mapper # this one does temporal compression by averaging erds_compress = eventrelated_dataset( ds, evs, event_mapper=FxMapper('features', np.mean)) assert_equal(len(erds), len(erds_compress)) assert_array_equal(erds_compress.samples[:,0], np.arange(2,73,5)) # # now check the same dataset with event descretization tr = 2.5 ds.sa['time'] = np.arange(nchunks * ntargets * blocklength) * tr evs = [{'onset': 4.9, 'duration': 6.2}] # doesn't work without conversion assert_raises(ValueError, eventrelated_dataset, ds, evs) erds = eventrelated_dataset(ds, evs, time_attr='time') assert_equal(len(erds), 1) assert_array_equal(erds.samples[0], np.repeat(np.arange(1,5), nfeatures)) assert_array_equal(erds.sa.orig_onset, [evs[0]['onset']]) assert_array_equal(erds.sa.orig_duration, [evs[0]['duration']]) assert_array_almost_equal(erds.sa.orig_offset, [2.4]) assert_array_equal(erds.sa.time, [np.arange(2.5, 11, 2.5)]) # now with closest match erds = eventrelated_dataset(ds, evs, time_attr='time', match='closest') expected_nsamples = 3 assert_equal(len(erds), 1) assert_array_equal(erds.samples[0], np.repeat(np.arange(2, 2+expected_nsamples), nfeatures)) assert_array_equal(erds.sa.orig_onset, [evs[0]['onset']]) assert_array_equal(erds.sa.orig_duration, [evs[0]['duration']]) assert_array_almost_equal(erds.sa.orig_offset, [-0.1]) assert_array_equal(erds.sa.time, [np.arange(5.0, 11, 2.5)]) # now test the way back results = np.arange(erds.nfeatures) assert_array_equal(erds.a.mapper.reverse1(results), results.reshape(expected_nsamples, nfeatures)) # what about multiple results? nresults = 5 results = dataset_wizard([results] * nresults) # and let's have an attribute to make it more difficult results.sa['myattr'] = np.arange(5) rds = erds.a.mapper.reverse(results) assert_array_equal(rds, results.samples.reshape(nresults * expected_nsamples, nfeatures)) assert_array_equal(rds.sa.myattr, np.repeat(results.sa.myattr, expected_nsamples)) evs = [dict(onset=12, duration=2), dict(onset=70, duration=3)] evds = extract_boxcar_event_samples(ds, evs) # it goes for the max of all durations assert_equal(evds.shape, (len(evs), 3 * ds.nfeatures)) # overide duration evds = extract_boxcar_event_samples(ds, evs, event_duration=1) assert_equal(evds.shape, (len(evs), 1 * ds.nfeatures)) assert_equal(np.unique(evds.samples[1]), 70) # overide onset evds = extract_boxcar_event_samples(ds, evs, event_offset=2) assert_equal(evds.shape, (len(evs), 3 * ds.nfeatures)) assert_equal(np.unique(evds.samples[1, :nfeatures]), 72) # overide both evds = extract_boxcar_event_samples(ds, evs, event_offset=-2, event_duration=1) assert_equal(evds.shape, (len(evs), 1 * ds.nfeatures)) assert_equal(np.unique(evds.samples[1]), 68) def test_hrf_modeling(): skip_if_no_external('nibabel') skip_if_no_external('nipy') # ATM relies on NiPy's GLM implementation # taking subset of the dataset to speed testing up ds = load_example_fmri_dataset('25mm', literal=True)[{'chunks': [0, 1]}, :3] # TODO: simulate short dataset with known properties and use it # for testing events = find_events(targets=ds.sa.targets, chunks=ds.sa.chunks) tr = ds.a.imghdr['pixdim'][4] for ev in events: for a in ('onset', 'duration'): ev[a] = ev[a] * tr evds = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr='targets', design_kwargs=dict(drift_model='blank'), glmfit_kwargs=dict(model='ols'), model='hrf') # same voxels assert_equal(ds.nfeatures, evds.nfeatures) assert_array_equal(ds.fa.voxel_indices, evds.fa.voxel_indices) # one sample for each condition, plus constant assert_equal(sorted(ds.sa['targets'].unique), sorted(evds.sa.targets)) assert_equal(evds.a.add_regs.sa.regressor_names[0], 'constant') # with centered data zscore(ds) evds_demean = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr='targets', design_kwargs=dict(drift_model='blank'), glmfit_kwargs=dict(model='ols'), model='hrf') # after demeaning the constant should consume a lot less assert(evds.a.add_regs[0].samples.mean() > evds_demean.a.add_regs[0].samples.mean()) # from eyeballing the sensitivity example -- would be better to test this on # the tutorial data assert(evds_demean[evds.sa.targets == 'shoe'].samples.max() \ > evds_demean[evds.sa.targets == 'bottle'].samples.max()) # HRF models assert('regressors' in evds.sa) assert('regressors' in evds.a.add_regs.sa) assert_equal(evds.sa.regressors.shape[1], len(ds)) # custom regressors evds_regrs = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr='targets', regr_attrs=['time_indices'], design_kwargs=dict(drift_model='blank'), glmfit_kwargs=dict(model='ols'), model='hrf') # verify that nothing screwed up time_coords assert_equal(ds.sa.time_coords[0], 0) assert_equal(len(evds_regrs), len(evds)) # one more output sample in .a.add_regs assert_equal(len(evds_regrs.a.add_regs) - 1, len(evds.a.add_regs)) # comes last before constant assert_equal('time_indices', evds_regrs.a.add_regs.sa.regressor_names[-2]) # order of main regressors is unchanged assert_array_equal(evds.sa.targets, evds_regrs.sa.targets) # custom multiple regressors ds.sa['time_indices_squared'] = ds.sa.time_indices ** 2 # custom regressors evds_regrs = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr='targets', regr_attrs=['time_indices', 'time_indices_squared'], design_kwargs=dict(drift_model='blank'), glmfit_kwargs=dict(model='ols'), model='hrf') # verify that nothing screwed up time_coords assert_equal(ds.sa.time_coords[0], 0) assert_equal(len(evds_regrs), len(evds)) # two more output samples in .a.add_regs assert_equal(len(evds_regrs.a.add_regs) - 2, len(evds.a.add_regs)) # come last before constant assert_array_equal( ['time_indices', 'time_indices_squared'], evds_regrs.a.add_regs.sa.regressor_names[-3:-1]) # order of main regressors is unchanged assert_array_equal(evds.sa.targets, evds_regrs.sa.targets) # custom multiple regressors with multidimensional one ds.sa['time_indices_powers'] = np.vstack([ds.sa.time_indices ** 2, ds.sa.time_indices ** 3]).T # custom regressors evds_regrs = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr='targets', regr_attrs=['time_indices', 'time_indices_powers'], design_kwargs=dict(drift_model='blank'), glmfit_kwargs=dict(model='ols'), model='hrf') # verify that nothing screwed up time_coords assert_equal(ds.sa.time_coords[0], 0) assert_equal(len(evds_regrs), len(evds)) # three more output samples in .a.add_regs assert_equal(len(evds_regrs.a.add_regs) - 3, len(evds.a.add_regs)) # come last before constant assert_array_equal( ['time_indices', 'time_indices_powers.0', 'time_indices_powers.1'], evds_regrs.a.add_regs.sa.regressor_names[-4:-1]) # order of main regressors is unchanged assert_array_equal(evds.sa.targets, evds_regrs.sa.targets) # custom regressors from external sources evds_regrs = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr='targets', regr_attrs=['time_coords'], design_kwargs=dict(drift_model='blank', add_regs=np.linspace(1, -1, len(ds))[None].T, add_reg_names=['negative_trend']), glmfit_kwargs=dict(model='ols'), model='hrf') assert_equal(len(evds_regrs), len(evds)) # But we got one more in additional regressors assert_equal(len(evds_regrs.a.add_regs) - 2, len(evds.a.add_regs)) # comes last before constant assert_array_equal(['negative_trend', 'time_coords', 'constant'], evds_regrs.a.add_regs.sa.regressor_names) # order is otherwise unchanged assert_array_equal(evds.sa.targets, evds_regrs.sa.targets) # HRF models with estimating per each chunk assert_equal(ds.sa.time_coords[0], 0) evds_regrs = eventrelated_dataset(ds, events, time_attr='time_coords', condition_attr=['targets', 'chunks'], regr_attrs=['time_indices'], design_kwargs=dict(drift_model='blank'), glmfit_kwargs=dict(model='ols'), model='hrf') assert_true('add_regs' in evds_regrs.a) assert_true('time_indices' in evds_regrs.a.add_regs.sa.regressor_names) assert_equal(len(ds.UC) * len(ds.UT), len(evds_regrs)) assert_equal(len(evds_regrs.UC) * len(evds_regrs.UT), len(evds_regrs)) from mvpa2.mappers.fx import mean_group_sample evds_regrs_meaned = mean_group_sample(['targets'])(evds_regrs) assert_array_equal(evds_regrs_meaned.T, evds.T) # targets should be the same #corr = np.corrcoef(np.vstack((evds.samples, evds_regrs_meaned))) #import pydb; pydb.debugger() #pass #i = 1 pymvpa2-2.6.4/mvpa2/tests/test_errorfx.py000066400000000000000000000056021323370031300204060ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for various use cases users reported mis-behaving""" import unittest import numpy as np from mvpa2.testing.tools import ( assert_false, assert_equal, assert_almost_equal, reseed_rng, assert_raises, ) from mvpa2.misc.errorfx import ( auc_error, mean_tpr, mean_fnr, mean_match_accuracy, ) def test_auc_error(): # two basic cases # perfect assert_equal(auc_error([-1, -1, 1, 1], [0, 0, 1, 1]), 1) # anti-perfect assert_equal(auc_error([-1, -1, 1, 1], [1, 1, 0, 0]), 0) # chance -- we aren't taking care ATM about randomly broken # ties, e.g. if both labels have the same estimate :-/ # TODO: #assert_equal(auc_error([-1, 1, -1, 1], [0, 0, 1, 1]), 0.5) @reseed_rng() def test_mean_tpr_balanced(): # in case of the balanced sets we should expect to match mean_match_accuracy for nclass in range(2, 4): for nsample in range(1, 3): target = np.repeat(np.arange(nclass), nsample) # perfect match assert_equal(mean_match_accuracy(target, target), 1.0) assert_equal(mean_tpr(target, target), 1.0) # perfect mismatch -- shift by nsample, so no target matches estimate = np.roll(target, nsample) assert_equal(mean_match_accuracy(target, estimate), 0) assert_equal(mean_tpr(target, estimate), 0) # do few permutations and see if both match for i in range(5): np.random.shuffle(estimate) assert_equal( mean_tpr(target, estimate), mean_match_accuracy(target, estimate)) assert_almost_equal( mean_tpr(target, estimate), 1-mean_fnr(target, estimate)) def test_mean_tpr(): # Let's test now on some disbalanced sets assert_raises(ValueError, mean_tpr, [1], []) assert_raises(ValueError, mean_tpr, [], [1]) assert_raises(ValueError, mean_tpr, [], []) # now interesting one where there were no target when it was in predicted assert_raises(ValueError, mean_tpr, [1], [0]) assert_raises(ValueError, mean_tpr, [0, 1], [0, 0]) # but it should be ok to have some targets not present in prediction assert_equal(mean_tpr([0, 0], [0, 1]), .5) # the same regardless how many samples in 0-class, if all misclassified # (winner by # of samples takes all) assert_equal(mean_tpr([0, 0, 0], [0, 0, 1]), .5) # whenever mean-accuracy would be different assert_almost_equal(mean_match_accuracy([0, 0, 0], [0, 0, 1]), 2/3.) pymvpa2-2.6.4/mvpa2/tests/test_externals.py000066400000000000000000000063451323370031300207310ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Test externals checking""" import unittest from mvpa2 import cfg from mvpa2.base import externals from mvpa2.support import copy from mvpa2.testing import SkipTest class TestExternals(unittest.TestCase): def setUp(self): self.backup = [] # paranoid check self.cfgstr = str(cfg) # clean up externals cfg for proper testing if cfg.has_section('externals'): self.backup = copy.deepcopy(cfg.items('externals')) cfg.remove_section('externals') def tearDown(self): if len(self.backup): # wipe existing one completely if cfg.has_section('externals'): cfg.remove_section('externals') cfg.add_section('externals') for o,v in self.backup: cfg.set('externals', o,v) # paranoid check # since order can't be guaranteed, lets check # each item after sorting self.assertEqual(sorted(self.cfgstr.split('\n')), sorted(str(cfg).split('\n'))) def test_externals(self): self.assertRaises(ValueError, externals.exists, 'BoGuS') def test_externals_no_double_invocation(self): # no external should be checking twice (unless specified # explicitely) class Checker(object): """Helper class to increment count of actual checks""" def __init__(self): self.checked = 0 def check(self): self.checked += 1 checker = Checker() externals._KNOWN['checker'] = 'checker.check()' externals.__dict__['checker'] = checker externals.exists('checker') self.assertEqual(checker.checked, 1) externals.exists('checker') self.assertEqual(checker.checked, 1) externals.exists('checker', force=True) self.assertEqual(checker.checked, 2) externals.exists('checker') self.assertEqual(checker.checked, 2) # restore original externals externals.__dict__.pop('checker') externals._KNOWN.pop('checker') def test_externals_correct2nd_invocation(self): # always fails externals._KNOWN['checker2'] = 'raise ImportError' self.assertTrue(not externals.exists('checker2'), msg="Should be False on 1st invocation") self.assertTrue(not externals.exists('checker2'), msg="Should be False on 2nd invocation as well") externals._KNOWN.pop('checker2') def test_absent_external_version(self): # should not blow, just return None if externals.exists('shogun'): raise SkipTest("shogun is present, can't test") self.assertEqual(externals.versions['shogun'], None) def suite(): # pragma: no cover return unittest.makeSuite(TestExternals) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_filters.py000066400000000000000000000057741323370031300204010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for filter mappers''' from mvpa2.testing import * skip_if_no_external('scipy') import numpy as np from mvpa2.datasets import Dataset, vstack from mvpa2.mappers.filters import FFTResampleMapper, iir_filter def test_resample(): time = np.linspace(0, 2*np.pi, 100) ds = Dataset(np.vstack((np.sin(time), np.cos(time))).T, sa = {'time': time, 'section': np.repeat(range(10), 10)}) assert_equal(ds.shape, (100, 2)) # downsample num = 10 rm = FFTResampleMapper(num, window=('gauss', 50), position_attr='time', attr_strategy='sample') mds = rm.forward(ds) assert_equal(mds.shape, (num, ds.nfeatures)) # didn't change the orig assert_equal(len(ds), 100) # check position-based resampling ds_partial = ds[0::10] mds_partial = rm.forward(ds_partial) # despite different input sampling should yield the same output timepoints assert_array_almost_equal(mds.sa.time, mds_partial.sa.time) # exclude the first points to prevent edge effects, but the data should be # very similar too assert_array_almost_equal(mds.samples[2:], mds_partial.samples[2:], decimal=2) # simple sample of sa's should give meaningful stuff assert_array_equal(mds.sa.section, range(10)) # and now for a dataset with chunks cds = vstack([ds.copy(), ds.copy()]) cds.sa['chunks'] = np.repeat([0,1], len(ds)) rm = FFTResampleMapper(num, attr_strategy='sample', chunks_attr='chunks', window=('gauss', 50)) mcds = rm.forward(cds) assert_equal(mcds.shape, (20, 2)) assert_array_equal(mcds.sa.section, np.tile(range(10),2)) # each individual chunks should be identical to previous dataset assert_array_almost_equal(mds.samples, mcds.samples[:10]) assert_array_almost_equal(mds.samples, mcds.samples[10:]) def test_iirfilter(): # dataset with one feature from two waves t = np.linspace(0, 1.0, 2001) xlow = np.sin(2 * np.pi * 5 * t) xhigh = np.sin(2 * np.pi * 250 * t) x = xlow + xhigh ds = Dataset(x, sa={'sid': np.arange(len(x))}, fa={'fid':['theone']}) # butterworth filter with a cutoff between the waves from scipy import signal b, a = signal.butter(8, 0.125) mds = iir_filter(ds, b, a, padlen=150) # check we get just the slow wave out (compensate for edge artifacts) assert_false(np.sum(np.abs(mds.samples[100:-100,0] - xlow[100:-100]) > 0.001)) assert_equal(len(ds.sa), len(mds.sa)) assert_equal(len(ds.fa), len(mds.fa)) assert_array_equal(ds.fa.fid, mds.fa.fid) assert_array_equal(ds.sa.sid, mds.sa.sid) pymvpa2-2.6.4/mvpa2/tests/test_fxmapper.py000066400000000000000000000275461323370031300205540ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA SampleGroup mapper""" from mvpa2.testing import sweepargs, skip_if_no_external from mvpa2.testing.datasets import datasets from mvpa2.measures.anova import OneWayAnova import numpy as np from mvpa2.mappers.fx import * from mvpa2.datasets.base import dataset_wizard, Dataset from mvpa2.testing.tools import * def test_samplesgroup_mapper(): data = np.arange(24).reshape(8, 3) labels = [0, 1] * 4 chunks = np.repeat(np.array((0, 1)), 4) # correct results csamples = [[3, 4, 5], [6, 7, 8], [15, 16, 17], [18, 19, 20]] clabels = [0, 1, 0, 1] cchunks = [0, 0, 1, 1] ds = dataset_wizard(samples=data, targets=labels, chunks=chunks) # add some feature attribute -- just to check ds.fa['checker'] = np.arange(3) ds.init_origids('samples') m = mean_group_sample(['targets', 'chunks']) mds = m.forward(ds) assert_array_equal(mds.samples, csamples) # FAs should simply remain the same assert_array_equal(mds.fa.checker, np.arange(3)) # now without grouping m = mean_sample() # forwarding just the samples should yield the same result assert_array_equal(m.forward(ds.samples), m.forward(ds).samples) # directly apply to dataset # using untrained mapper m = mean_group_sample(['targets', 'chunks']) mapped = ds.get_mapped(m) assert_equal(mapped.nsamples, 4) assert_equal(mapped.nfeatures, 3) assert_array_equal(mapped.samples, csamples) assert_array_equal(mapped.targets, clabels) assert_array_equal(mapped.chunks, cchunks) # make sure origids get regenerated assert_array_equal([s.count('+') for s in mapped.sa.origids], [1] * 4) # disbalanced dataset -- lets remove 0th sample so there is no target # 0 in 0th chunk ds_ = ds[[0, 1, 3, 5]] mapped = ds_.get_mapped(m) ok_(len(mapped) == 3) ok_(not None in mapped.sa.origids) # with such a dataset we should get identical results if we order groups # by their occurence mo = mean_group_sample(['targets', 'chunks'], order='occurrence') mappedo = ds.get_mapped(mo) assert_array_equal(mappedo.samples, csamples) assert_array_equal(mappedo.targets, clabels) assert_array_equal(mappedo.chunks, cchunks) # but if we would get different result if we swap order # of specified uattrs: now first targets would be groupped # and only then chunks: mr = mean_group_sample(['chunks', 'targets']) mappedr = ds.get_mapped(mr) # which effectively swaps two comparison targets in this fake dataset assert_array_equal(mappedr.targets, cchunks) assert_array_equal(mappedr.chunks, clabels) def test_samplesgroup_mapper_test_order_occurrence(): data = np.arange(8)[:, None] ds = dataset_wizard(samples=data, targets=[1, 0] * 4, chunks=[0] * 4 + [1] * 4) m = mean_group_sample(['targets', 'chunks'], order='occurrence') assert_true('order=' in repr(m)) mds = ds.get_mapped(m) assert_array_equal(mds.sa.targets, [1, 0] * 2) assert_array_equal(mds.sa.chunks, [0] * 2 + [1] * 2) assert_array_equal(mds.samples[:, 0], [1, 2, 5, 6]) # and if we ordered as 'uattrs' (default) m = mean_group_sample(['targets', 'chunks']) assert_false('order=' in repr(m)) mds = ds.get_mapped(m) assert_array_equal(mds.sa.targets, [0, 1] * 2) assert_array_equal(mds.sa.chunks, [0] * 2 + [1] * 2) assert_array_equal(mds.samples[:, 0], [2, 1, 6, 5]) def test_featuregroup_mapper(): ds = Dataset(np.arange(24).reshape(3, 8)) ds.fa['roi'] = [0, 1] * 4 # just to check ds.sa['chunks'] = np.arange(3) # correct results csamples = [[3, 4], [11, 12], [19, 20]] m = mean_group_feature(['roi']) mds = m.forward(ds) assert_equal(mds.shape, (3, 2)) assert_array_equal(mds.samples, csamples) assert_array_equal(mds.fa.roi, np.unique([0, 1] * 4)) # FAs should simply remain the same assert_array_equal(mds.sa.chunks, np.arange(3)) # now without grouping m = mean_feature() # forwarding just the samples should yield the same result assert_array_equal(m.forward(ds.samples), m.forward(ds).samples) # And when operating on a dataset with >1D samples, then operate # only across "features", i.e. 1st dimension ds = Dataset(np.arange(24).reshape(3, 2, 2, 2)) mapped = ds.get_mapped(m) assert_array_equal(m.forward(ds.samples), mapped.samples) assert_array_equal(mapped.samples.shape, (3, 2, 2)) assert_array_equal(mapped.samples, np.mean(ds.samples, axis=1)) # and still could map back? ;) not ATM, so just to ensure consistency assert_raises(NotImplementedError, mapped.a.mapper.reverse, mapped.samples) # but it should also work with standard 2d sample arrays ds = Dataset(np.arange(24).reshape(3, 8)) mapped = ds.get_mapped(m) assert_array_equal(mapped.samples.shape, (3, 1)) def test_fxmapper(): origdata = np.arange(24).reshape(3, 8) ds = Dataset(origdata.copy()) ds.samples *= -1 # test a mapper that doesn't change the shape # it shouldn't mapper along with axis it is applied m_s = FxMapper('samples', np.absolute) m_f = FxMapper('features', np.absolute) a_m = absolute_features() assert_array_equal(m_s.forward(ds), origdata) assert_array_equal(a_m.forward(ds), origdata) assert_array_equal(m_s.forward(ds), m_f.forward(ds)) def test_features01(): # TODO: might be worth creating appropriate factory # help in mappers/fx aov = OneWayAnova( postproc=FxMapper('features', lambda x: x / x.max(), attrfx=None)) f = aov(datasets['uni2small']) ok_((f.samples != 1.0).any()) ok_(f.samples.max() == 1.0) @sweepargs(f=dir(np)) def test_fx_native_calls(f): import inspect ds = datasets['uni2small'] if f in ['size', 'rollaxis', 'stack', 'expand_dims']: # really not appropriate ones here to test return try: f_ = getattr(np, f) if 'axis' != inspect.getargs(f_.__code__).args[1]: # if 'axis' is not the 2nd arg -- skip return except: return # so we got a function which has 'axis' argument for naxis in (0, 1): # check on both axes for do_group in (False, True): # test with # groupping and without kwargs = dict(attrfx='merge') if do_group: if naxis == 0: kwargs['uattrs'] = ('targets', 'chunks') else: kwargs['uattrs'] = ('nonbogus_targets',) axis = ('samples', 'features')[naxis] def custom(data): """So we could enforce apply_along_axis """ # always 0 since it would be the job for apply_along_axis return f_(data, axis=0) try: m2 = FxMapper(axis, custom, **kwargs) dsm2 = ds.get_mapped(m2) except: # We assume that our previous implementation should work ;-) continue m1 = FxMapper(axis, f_, **kwargs) dsm1 = ds.get_mapped(m1) if dsm2.samples.dtype == object: # assert_array_almost_equal does not always work # for object arrays assert_samples_equal = assert_objectarray_equal else: # deal with potential rounding errors assert_samples_equal = assert_array_almost_equal assert_samples_equal(dsm1.samples, dsm2.samples) # test other attributes assert_array_equal(dsm1.targets, dsm2.targets) assert_array_equal(dsm1.chunks, dsm2.chunks) assert_array_equal(dsm1.fa.nonbogus_targets, dsm2.fa.nonbogus_targets) def test_uniquemerge2literal(): from mvpa2.mappers.fx import _uniquemerge2literal assert_equal(_uniquemerge2literal(range(3)), ['0+1+2']) assert_equal(_uniquemerge2literal( np.arange(6).reshape(2, 3)), ['[0 1 2]+[3 4 5]']) assert_array_equal(_uniquemerge2literal([[2, 3, 4]]), [[2, 3, 4]]) assert_array_equal(_uniquemerge2literal([[2, 3, 4], [2, 3, 4]]), [[2, 3, 4]]) assert_equal(_uniquemerge2literal([2, 2, 2]), [2]) assert_array_equal(_uniquemerge2literal(['L1', 'L1']), ['L1']) def test_bin_prop_ci(): skip_if_no_external('scipy') n = 100 succ_thresh = np.random.randint(n) acc = 1 - (float(succ_thresh) / n) bl = np.random.random(n) < acc ds = Dataset(bl) m95 = BinomialProportionCI() m50 = BinomialProportionCI(width=0.5) cids = m95(ds) assert_equal(cids.shape, (2, 1)) # accuracy is in the CI maxdist = cids.samples[1, 0] - acc mindist = acc - cids.samples[1, 0] # but allow for numerical uncertainty proportional to the sample size assert_true(maxdist > 0 or maxdist <= 1. / n) assert_true(mindist > 0 or mindist <= 1. / n) # more than one feature ds = Dataset(np.transpose([bl, np.logical_not(bl)])) ci95 = m95(ds) assert_equal(ci95.shape, (2, 2)) # CIs should be inverse assert_array_almost_equal(1 - ci95.samples[0, ::-1], ci95.samples[1]) ci50 = m50(ds) assert_array_almost_equal(1 - ci50.samples[0, ::-1], ci50.samples[1]) # 50% interval is smaller than 95% assert_true(np.all(ci95.samples[0] < ci50.samples[0])) assert_true(np.all(ci95.samples[1] > ci50.samples[1])) assert_equal(list(ci50.sa.ci_boundary), ['lower', 'upper']) def test_mean_removal(): test_array = np.array([[0, 0.5, 1, 1.5], [2, 2.5, 3, 3.5], [3, 3.5, 4, 4.5], [5, 5.5, 6, 6.5], [7, 7.5, 8, 8.5]]) test_dataset = Dataset(test_array) desired_result = np.array([[-0.75, -0.25, 0.25, 0.75], [-0.75, -0.25, 0.25, 0.75], [-0.75, -0.25, 0.25, 0.75], [-0.75, -0.25, 0.25, 0.75], [-0.75, -0.25, 0.25, 0.75]]) mr = MeanRemoval(in_place=False) mr_inplace = MeanRemoval(in_place=True) mr_fx = subtract_mean_feature() functions = (mr, mr_inplace, mr_fx) for function in functions: assert_true(np.array_equal(function(test_array.copy()), desired_result), function) for function in functions: assert_true(np.array_equal(function(test_dataset.copy()).samples, desired_result)) random_array = np.random.rand(50, 1000) assert_true(np.array_equal(mr_fx(random_array.copy()), mr(random_array.copy()))) assert_true(np.array_equal(mr_fx(random_array.copy()), mr_inplace(random_array.copy()))) # corner cases int_arr = np.array([1, 2, 3, 4, 5]) desired = int_arr.astype(float) - int_arr.mean() assert_array_equal(mr.forward1(int_arr), desired) # or list assert_array_equal(mr.forward1(list(int_arr)), desired) # missing value -> NaN just like mean() would do nan_arr = np.array([1, 2, np.nan, 4, 5]) assert_array_equal(mr.forward1(nan_arr), [np.nan] * len(int_arr)) # but with a masked array it works as intended, i.e. just like mean() nan_arr = np.ma.array(nan_arr, mask=np.isnan(nan_arr)) nan_arr_dm = desired.copy() nan_arr_dm[2] = np.nan assert_array_equal(mr.forward1(nan_arr), nan_arr_dm) # same handling applies to np.inf pymvpa2-2.6.4/mvpa2/tests/test_fxmeasure.py000066400000000000000000000066721323370031300207260ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Fx Measures""" import numpy as np from mvpa2.base import externals from mvpa2.datasets import dataset_wizard from mvpa2.measures.fx import BinaryFxFeaturewiseMeasure from mvpa2.measures.fx import targets_dcorrcoef if externals.exists('statsmodels'): from mvpa2.measures.fx import targets_mutualinfo_kde from mvpa2.testing import sweepargs from mvpa2.testing.datasets import datasets as tdatasets from mvpa2.testing import assert_array_almost_equal, assert_array_less, assert_equal, ok_ if __debug__: from mvpa2.base import debug @sweepargs(ds=tdatasets.itervalues()) def test_BinaryFxFeatureMeasure(ds): if not isinstance(ds.samples, np.ndarray): return # some simple function f = lambda x, y: np.sum((x.T*y).T, axis=0) fx = BinaryFxFeaturewiseMeasure(f, uni=False, numeric=True) fx_uni = BinaryFxFeaturewiseMeasure(f, uni=True, numeric=True) out = fx(ds) out_uni = fx_uni(ds) assert(len(out) == 1) assert_array_almost_equal(out.samples, out_uni) assert_equal(out.fa, out_uni.fa) ok_(str(fx).startswith("" % fx.fx.__name__) pymvpa2-2.6.4/mvpa2/tests/test_generators.py000066400000000000000000000616041323370031300210740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for generators.""" import itertools import numpy as np from time import time from mvpa2.testing.tools import ok_, assert_array_equal, assert_true, \ assert_false, assert_equal, assert_raises, assert_almost_equal, \ reseed_rng, assert_not_equal, assert_in, assert_not_in from mvpa2.testing.tools import assert_warnings from mvpa2.testing.tools import assert_datasets_equal from mvpa2.datasets import dataset_wizard, Dataset from mvpa2.generators.splitters import Splitter from mvpa2.base.node import ChainNode from mvpa2.generators.partition import OddEvenPartitioner, NFoldPartitioner, \ ExcludeTargetsCombinationsPartitioner, FactorialPartitioner from mvpa2.generators.permutation import AttributePermutator from mvpa2.generators.base import Repeater, Sifter from mvpa2.generators.resampling import Balancer from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.misc.support import get_nelements_per_value def give_data(): # 100x10, 10 chunks, 4 targets return dataset_wizard(np.random.normal(size=(100, 10)), targets=[i % 4 for i in range(100)], chunks=[i//10 for i in range(100)]) @reseed_rng() def test_splitter(): ds = give_data() # split with defaults spl1 = Splitter('chunks') assert_raises(NotImplementedError, spl1, ds) splits = list(spl1.generate(ds)) assert_equal(len(splits), len(ds.sa['chunks'].unique)) for split in splits: # it should have perform basic slicing! assert_true(split.samples.base is ds.samples) assert_equal(len(split.sa['chunks'].unique), 1) assert_true('lastsplit' in split.a) assert_true(splits[-1].a.lastsplit) # now again, more customized spl2 = Splitter('targets', attr_values = [0,1,1,2,3,3,3], count=4, noslicing=True) splits = list(spl2.generate(ds)) assert_equal(len(splits), 4) for split in splits: # it should NOT have perform basic slicing! assert_false(split.samples.base is ds.samples) assert_equal(len(split.sa['targets'].unique), 1) assert_equal(len(split.sa['chunks'].unique), 10) assert_true(splits[-1].a.lastsplit) # two should be identical assert_array_equal(splits[1].samples, splits[2].samples) # now go wild and split by feature attribute ds.fa['roi'] = np.repeat([0,1], 5) # splitter should auto-detect that this is a feature attribute spl3 = Splitter('roi') splits = list(spl3.generate(ds)) assert_equal(len(splits), 2) for split in splits: assert_true(split.samples.base is ds.samples) assert_equal(len(split.fa['roi'].unique), 1) assert_equal(split.shape, (100, 5)) # and finally test chained splitters cspl = ChainNode([spl2, spl3, spl1]) splits = list(cspl.generate(ds)) # 4 target splits and 2 roi splits each and 10 chunks each assert_equal(len(splits), 80) @reseed_rng() def test_partitionmapper(): ds = give_data() oep = OddEvenPartitioner() parts = list(oep.generate(ds)) assert_equal(len(parts), 2) for i, p in enumerate(parts): assert_array_equal(p.sa['partitions'].unique, [1, 2]) assert_equal(p.a.partitions_set, i) assert_equal(len(p), len(ds)) @reseed_rng() def test_attrpermute(): # Was about to use borrowkwargs but didn't work out . Test doesn't hurt doc = AttributePermutator.__init__.__doc__ assert_in('limit : ', doc) assert_not_in('collection : ', doc) ds = give_data() ds.sa['ids'] = range(len(ds)) pristine_data = ds.samples.copy() permutation = AttributePermutator(['targets', 'ids'], assure=True) pds = permutation(ds) # should not touch the data assert_array_equal(pristine_data, pds.samples) # even keep the very same array assert_true(pds.samples.base is ds.samples) # there is no way that it can be the same attribute assert_false(np.all(pds.sa.ids == ds.sa.ids)) # ids should reflect permutation setup assert_array_equal(pds.sa.targets, ds.sa.targets[pds.sa.ids]) # other attribute should remain intact assert_array_equal(pds.sa.chunks, ds.sa.chunks) # now chunk-wise permutation permutation = AttributePermutator('ids', limit='chunks') pds = permutation(ds) # first ten should remain first ten assert_false(np.any(pds.sa.ids[:10] > 9)) # verify that implausible assure=True would not work permutation = AttributePermutator('targets', limit='ids', assure=True) assert_raises(RuntimeError, permutation, ds) # same thing, but only permute single chunk permutation = AttributePermutator('ids', limit={'chunks': 3}) pds = permutation(ds) # one chunk should change assert_false(np.any(pds.sa.ids[30:40] > 39)) assert_false(np.any(pds.sa.ids[30:40] < 30)) # the rest not assert_array_equal(pds.sa.ids[:30], range(30)) # or a list of chunks permutation = AttributePermutator('ids', limit={'chunks': [3,4]}) pds = permutation(ds) # two chunks should change assert_false(np.any(pds.sa.ids[30:50] > 49)) assert_false(np.any(pds.sa.ids[30:50] < 30)) # the rest not assert_array_equal(pds.sa.ids[:30], range(30)) # and now try generating more permutations nruns = 2 def assert_all_different_permutations(pds): assert_equal(len(pds), nruns) for i, p in enumerate(pds): assert_false(np.all(p.sa.ids == ds.sa.ids)) for p_ in pds[i+1:]: assert_false(np.all(p.sa.ids == p_.sa.ids)) permutation = AttributePermutator(['targets', 'ids'], assure=True, count=nruns) pds = list(permutation.generate(ds)) assert_all_different_permutations(pds) # if we provide seeding, and generate, it should also return different datasets permutation = AttributePermutator(['targets', 'ids'], count=nruns, rng=1) pds1 = list(permutation.generate(ds)) assert_all_different_permutations(pds) # but if we regenerate -- should all be the same to before pds2 = list(permutation.generate(ds)) assert_equal(len(pds1), len(pds2)) for p1, p2 in zip(pds1, pds2): assert_datasets_equal(p1, p2) # permute feature attrs ds.fa['ids'] = range(ds.shape[1]) permutation = AttributePermutator('fa.ids', assure=True) pds = permutation(ds) assert_false(np.all(pds.fa.ids == ds.fa.ids)) # now chunk-wise uattrs strategy (reassignment) permutation = AttributePermutator('targets', limit='chunks', strategy='uattrs', assure=True) pds = permutation(ds) # Due to assure above -- we should have changed things assert_not_equal(zip(ds.targets), zip(pds.targets)) # in each chunk we should have unique remappings for c in ds.UC: chunk_idx = ds.C == c otargets, ptargets = ds.targets[chunk_idx], pds.sa.targets[chunk_idx] # we still have the same targets assert_equal(set(ptargets), set(otargets)) # we have only 1-to-1 mappings assert_true(len(set(zip(otargets, ptargets))), len(set(otargets))) ds.sa['odds'] = ds.sa.ids % 2 # test combinations permutation = AttributePermutator(['targets', 'odds'], limit='chunks', strategy='uattrs', assure=True) pds = permutation(ds) # Due to assure above -- we should have changed things assert_not_equal(zip(ds.targets, ds.sa.odds), zip(pds.targets, pds.sa.odds)) # In each chunk we should have unique remappings for c in ds.UC: chunk_idx = ds.C == c otargets, ptargets = ds.targets[chunk_idx], pds.sa.targets[chunk_idx] oodds, podds = ds.sa.odds[chunk_idx], pds.sa.odds[chunk_idx] # we still have the same targets assert_equal(set(ptargets), set(otargets)) assert_equal(set(oodds), set(podds)) # at the end we have the same mapping assert_equal(set(zip(otargets, oodds)), set(zip(ptargets, podds))) @reseed_rng() def test_balancer(): ds = give_data() ds.sa['ids'] = np.arange(len(ds)) # some sa to ease tracking of samples # only mark the selection in an attribute bal = Balancer() res = bal(ds) # we get a new dataset, with shared samples assert_false(ds is res) assert_true(ds.samples is res.samples.base) # should kick out 2 samples in each chunk of 10 assert_almost_equal(np.mean(res.sa.balanced_set), 0.8) # same as above, but actually apply the selection bal = Balancer(apply_selection=True, count=5) # just run it once res = bal(ds) # we get a new dataset, with shared samples assert_false(ds is res) # should kick out 2 samples in each chunk of 10 assert_equal(len(res), int(0.8 * len(ds))) # now use it as a generator dses = list(bal.generate(ds)) assert_equal(len(dses), 5) # if we rerun again, it would be a different selection res2 = bal(ds) assert_true(np.any(res.sa.ids != bal(ds).sa.ids)) # but if we create a balancer providing seed rng int, # should be identical results bal = Balancer(apply_selection=True, count=5, rng=1) assert_false(np.any(bal(ds).sa.ids != bal(ds).sa.ids)) # But results should differ if we use .generate to produce those multiple # balanced datasets b = Balancer(apply_selection=True, count=3, rng=1) balanced = list(b.generate(ds)) assert_false(all(balanced[0].sa.ids == balanced[1].sa.ids)) assert_false(all(balanced[0].sa.ids == balanced[2].sa.ids)) assert_false(all(balanced[1].sa.ids == balanced[2].sa.ids)) # And should be exactly the same for ds_a, ds_b in zip(balanced, b.generate(ds)): assert_datasets_equal(ds_a, ds_b) # Contribution by Chris Markiewicz # And interleaving __call__ and generator fetches gen1 = b.generate(ds) gen2 = b.generate(ds) seq1, seq2, seq3 = [], [], [] for i in xrange(3): seq1.append(gen1.next()) seq2.append(gen2.next()) seq3.append(b(ds)) # Produces expected sequences for i in xrange(3): assert_datasets_equal(balanced[i], seq1[i]) assert_datasets_equal(balanced[i], seq2[i]) # And all __call__s return the same result ds_a = seq3[0] for ds_b in seq3[1:]: assert_array_equal(ds_a.sa.ids, ds_b.sa.ids) # with limit bal = Balancer(limit={'chunks': 3}, apply_selection=True) res = bal(ds) assert_equal(res.sa['chunks'].unique, (3,)) assert_equal(get_nelements_per_value(res.sa.targets).values(), [2] * 4) # same but include all offlimit samples bal = Balancer(limit={'chunks': 3}, include_offlimit=True, apply_selection=True) res = bal(ds) assert_array_equal(res.sa['chunks'].unique, range(10)) # chunk three still balanced, but the rest is not, i.e. all samples included assert_equal(get_nelements_per_value(res[res.sa.chunks == 3].sa.targets).values(), [2] * 4) assert_equal(get_nelements_per_value(res.sa.chunks).values(), [10, 10, 10, 8, 10, 10, 10, 10, 10, 10]) # fixed amount bal = Balancer(amount=1, limit={'chunks': 3}, apply_selection=True) res = bal(ds) assert_equal(get_nelements_per_value(res.sa.targets).values(), [1] * 4) # fraction bal = Balancer(amount=0.499, limit=None, apply_selection=True) res = bal(ds) assert_array_equal( np.round(np.array(get_nelements_per_value(ds.sa.targets).values()) * 0.5), np.array(get_nelements_per_value(res.sa.targets).values())) # check on feature attribute ds.fa['one'] = np.tile([1, 2], 5) ds.fa['chk'] = np.repeat([1, 2], 5) bal = Balancer(attr='one', amount=2, limit='chk', apply_selection=True) res = bal(ds) assert_equal(get_nelements_per_value(res.fa.one).values(), [4] * 2) def test_repeater(): reps = 4 r = Repeater(reps, space='OMG') dsl = [ds for ds in r.generate(Dataset([0,1]))] assert_equal(len(dsl), reps) for i, ds in enumerate(dsl): assert_equal(ds.a.OMG, i) def test_sifter(): # somewhat duplicating the doctest ds = Dataset(samples=np.arange(8).reshape((4,2)), sa={'chunks': [ 0 , 1 , 2 , 3 ], 'targets': ['c', 'c', 'p', 'p']}) for sift_targets_definition in (['c', 'p'], dict(uvalues=['c', 'p'])): par = ChainNode([NFoldPartitioner(cvtype=2, attr='chunks'), Sifter([('partitions', 2), ('targets', sift_targets_definition)]) ]) dss = list(par.generate(ds)) assert_equal(len(dss), 4) for ds_ in dss: testing = ds[ds_.sa.partitions == 2] assert_array_equal(np.unique(testing.sa.targets), ['c', 'p']) # and we still have both targets present in training training = ds[ds_.sa.partitions == 1] assert_array_equal(np.unique(training.sa.targets), ['c', 'p']) def test_sifter_with_balancing(): # extended previous test which was already # "... somewhat duplicating the doctest" ds = Dataset(samples=np.arange(12).reshape((-1, 2)), sa={'chunks': [ 0 , 1 , 2 , 3 , 4, 5 ], 'targets': ['c', 'c', 'c', 'p', 'p', 'p']}) # Without sifter -- just to assure that we do get all of them # i.e. 6*5*4*3/(4!) = 15 par = ChainNode([NFoldPartitioner(cvtype=4, attr='chunks')]) assert_equal(len(list(par.generate(ds))), 15) # so we will take 4 chunks out of available 7, but would care only # about those partitions where we have balanced number of 'c' and 'p' # entries assert_raises(ValueError, lambda x: list(Sifter([('targets', dict(wrong=1))]).generate(x)), ds) par = ChainNode([NFoldPartitioner(cvtype=4, attr='chunks'), Sifter([('partitions', 2), ('targets', dict(uvalues=['c', 'p'], balanced=True))]) ]) dss = list(par.generate(ds)) # print [ x[x.sa.partitions==2].sa.targets for x in dss ] assert_equal(len(dss), 9) for ds_ in dss: testing = ds[ds_.sa.partitions == 2] assert_array_equal(np.unique(testing.sa.targets), ['c', 'p']) # and we still have both targets present in training training = ds[ds_.sa.partitions == 1] assert_array_equal(np.unique(training.sa.targets), ['c', 'p']) def test_exclude_targets_combinations(): partitioner = ChainNode([NFoldPartitioner(), ExcludeTargetsCombinationsPartitioner( k=2, targets_attr='targets', space='partitions')], space='partitions') from mvpa2.misc.data_generators import normal_feature_dataset ds = normal_feature_dataset(snr=0., nlabels=4, perlabel=3, nchunks=3, nonbogus_features=[0,1,2,3], nfeatures=4) partitions = list(partitioner.generate(ds)) assert_equal(len(partitions), 3 * 6) splitter = Splitter('partitions') combs = [] comb_chunks = [] for p in partitions: trds, teds = list(splitter.generate(p))[:2] comb = tuple(np.unique(teds.targets)) combs.append(comb) comb_chunks.append(comb + tuple(np.unique(teds.chunks))) assert_equal(len(set(combs)), 6) # just 6 possible combinations of 2 out of 4 assert_equal(len(set(comb_chunks)), 3*6) # all unique def test_exclude_targets_combinations_subjectchunks(): partitioner = ChainNode([NFoldPartitioner(attr='subjects'), ExcludeTargetsCombinationsPartitioner( k=1, targets_attr='chunks', space='partitions')], space='partitions') # targets do not need even to be defined! ds = Dataset(np.arange(18).reshape(9, 2), sa={'chunks': np.arange(9) // 3, 'subjects': np.arange(9) % 3}) dss = list(partitioner.generate(ds)) assert_equal(len(dss), 9) testing_subjs, testing_chunks = [], [] for ds_ in dss: testing_partition = ds_.sa.partitions == 2 training_partition = ds_.sa.partitions == 1 # must be scalars -- so implicit test here # if not -- would be error testing_subj = np.asscalar(np.unique(ds_.sa.subjects[testing_partition])) testing_subjs.append(testing_subj) testing_chunk = np.asscalar(np.unique(ds_.sa.chunks[testing_partition])) testing_chunks.append(testing_chunk) # and those must not appear for training ok_(not testing_subj in ds_.sa.subjects[training_partition]) ok_(not testing_chunk in ds_.sa.chunks[training_partition]) # and we should have gone through all chunks/subjs pairs testing_pairs = set(zip(testing_subjs, testing_chunks)) assert_equal(len(testing_pairs), 9) # yoh: equivalent to set(itertools.product(range(3), range(3)))) # but .product is N/A for python2.5 assert_equal(testing_pairs, set(zip(*np.where(np.ones((3,3)))))) def test_permute_chunks(): def is_sorted(x): return np.array_equal(np.sort(x), x) ds = give_data() # change targets labels # there is no target labels permuting within chunks, # assure = True would be error ds.sa['targets'] = range(len(ds.sa.targets)) permutation = AttributePermutator(attr='targets', chunk_attr='chunks', strategy='chunks', assure=True) pds = permutation(ds) assert_false(is_sorted(pds.sa.targets)) assert_true(np.array_equal(pds.samples, ds.samples)) for chunk_id in np.unique(pds.sa.chunks): chunk_ds = pds[pds.sa.chunks == chunk_id] assert_true(is_sorted(chunk_ds.sa.targets)) permutation = AttributePermutator(attr='targets', strategy='chunks') assert_raises(ValueError, permutation, ds) def test_factorialpartitioner(): # Test against sifter and chainmap implemented in test_usecases # -- code below copied from test_usecases -- # Let's simulate the beast -- 6 categories total groupped into 3 # super-ordinate, and actually without any 'superordinate' effect # since subordinate categories independent ds = normal_feature_dataset(nlabels=6, snr=100, # pure signal! ;) perlabel=30, nfeatures=6, nonbogus_features=range(6), nchunks=5) ds.sa['subord'] = ds.sa.targets.copy() ds.sa['superord'] = ['super%d' % (int(i[1])%3,) for i in ds.targets] # 3 superord categories # let's override original targets just to be sure that we aren't relying on them ds.targets[:] = 0 # let's make two other datasets to test later # one superordinate category only ds_1super = ds.copy() ds_1super.sa['superord'] = ['super1' for i in ds_1super.targets] # one superordinate category has only one subordinate #ds_unbalanced = ds.copy() #nsuper1 = np.sum(ds_unbalanced.sa.superord == 'super1') #mask_superord = ds_unbalanced.sa.superord == 'super1' #uniq_subord = np.unique(ds_unbalanced.sa.subord[mask_superord]) #ds_unbalanced.sa.subord[mask_superord] = [uniq_subord[0] for i in range(nsuper1)] ds_unbalanced = Dataset(range(4), sa={'subord': [0, 0, 1, 2], 'superord': [1, 1, 2, 2]}) npart = ChainNode([ ## so we split based on superord NFoldPartitioner(len(ds.sa['superord'].unique), attr='subord'), ## so it should select only those splits where we took 1 from ## each of the superord categories leaving things in balance Sifter([('partitions', 2), ('superord', { 'uvalues': ds.sa['superord'].unique, 'balanced': True}) ]), ], space='partitions') def partition(partitioner, ds_=ds): return [p.sa.partitions for p in partitioner.generate(ds_)] # now the new implementation # common kwargs factkw = dict(partitioner=NFoldPartitioner(attr='subord'), attr='superord') fpart = FactorialPartitioner(**factkw) p_npart = partition(npart) p_fpart = partition(fpart) assert_array_equal(np.sort(p_npart), np.sort(p_fpart)) fpart2 = FactorialPartitioner(count=2, selection_strategy='first', **factkw) p_fpart2 = partition(fpart2) assert_equal(len(p_fpart), 8) assert_equal(len(p_fpart2), 2) assert_array_equal(p_fpart[:2], p_fpart2) # 1 equidistant -- should be the first one fpart1 = FactorialPartitioner(count=1, **factkw) p_fpart1 = partition(fpart1) assert_equal(len(p_fpart1), 1) assert_array_equal(p_fpart[:1], p_fpart1) # 2 equidistant fpart2 = FactorialPartitioner(count=2, **factkw) p_fpart2 = partition(fpart2) assert_equal(len(p_fpart2), 2) assert_array_equal(p_fpart[::4], p_fpart2) # without count -- should be all of them in original order fpartr = FactorialPartitioner(selection_strategy='random', **factkw) assert_array_equal(p_fpart, partition(fpartr)) # but if with a count we should get some selection fpartr2 = FactorialPartitioner(selection_strategy='random', count=2, **factkw) # Let's generate a number of random selections: rand2_partitions = [partition(fpartr2) for i in xrange(10)] for p in rand2_partitions: assert_equal(len(p), 2) # majority of them must be different assert len(set([tuple(map(tuple, x)) for x in rand2_partitions])) >= 5 # now let's check it behaves correctly if we have only one superord class nfold = NFoldPartitioner(attr='subord') p_nfold = partition(nfold, ds_1super) p_fpart = partition(fpart, ds_1super) assert_array_equal(np.sort(p_nfold), np.sort(p_fpart)) # smoke test for unbalanced subord classes warning_msg = 'One or more superordinate attributes do not have the same '\ 'number of subordinate attributes. This could yield to '\ 'unbalanced partitions.' with assert_warnings([(RuntimeWarning, warning_msg)]): p_fpart = partition(fpart, ds_unbalanced) p_unbalanced = [np.array([2, 2, 2, 1]), np.array([2, 2, 1, 2])] superord_unbalanced = [([2], [1, 1, 2]), ([2], [1, 1, 2])] subord_unbalanced = [([2], [0, 0, 1]), ([1], [0, 0, 2])] for out_part, true_part, super_out, sub_out in \ zip(p_fpart, p_unbalanced, superord_unbalanced, subord_unbalanced): assert_array_equal(out_part, true_part) assert_array_equal((ds_unbalanced[out_part == 1].sa.superord.tolist(), ds_unbalanced[out_part == 2].sa.superord.tolist()), super_out) assert_array_equal((ds_unbalanced[out_part == 1].sa.subord.tolist(), ds_unbalanced[out_part == 2].sa.subord.tolist()), sub_out) # now let's test on a dummy dataset ds_dummy = Dataset(range(4), sa={'subord': range(4), 'superord': [1,2]*2}) p_fpart = partition(fpart, ds_dummy) assert_array_equal(p_fpart, [[2, 2, 1, 1], [2, 1, 1, 2], [1, 2, 2, 1], [1, 1, 2, 2]]) def test_factorialpartitioner_big(): # just to see that we can cope with relatively large datasets/numbers ds = normal_feature_dataset(nlabels=6, perlabel=66, nfeatures=2, nchunks=11) # and now let's do factorial partitioner def partition(ds_=ds, **kwargs): partitioner = FactorialPartitioner( partitioner=NFoldPartitioner(attr='targets'), attr='chunks', **kwargs) return [p.sa.partitions for p in partitioner.generate(ds_)] # prohibitively large # print len(partition(ds)) t0 = time() assert_equal(len(partition(ds, count=2, selection_strategy='first')), 2) # Those time limits are really a stretch. on a any reasonable box not too busy # should be done in fraction of a second, but allow to catch "naive" # implementation assert(time() - t0 < 3) assert_equal(len(partition(ds, count=2, selection_strategy='random')), 2) assert(time() - t0 < 3) pymvpa2-2.6.4/mvpa2/tests/test_giftidataset.py000066400000000000000000000251401323370031300213660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA's GIFTI dataset""" from mvpa2.base import externals from mvpa2.testing import SkipTest if not externals.exists('nibabel'): raise SkipTest from nibabel.gifti import giftiio as nb_giftiio from nibabel.gifti import gifti as nb_gifti from nibabel.nifti1 import intent_codes, data_type_codes from mvpa2.support.nibabel.surf import Surface from mvpa2.datasets.base import Dataset from mvpa2.datasets.gifti import gifti_dataset, map2gifti import numpy as np from mvpa2.testing.tools import assert_datasets_almost_equal, \ assert_datasets_equal, assert_equal, assert_almost_equal, \ assert_raises, with_tempfile from mvpa2.testing import sweepargs def _get_test_sample_node_data(format_=None): # returns test data in various formats if format_ is None: samples = np.asarray( [[2.032, -0.892, -0.826, 1.163], [0.584, 1.844, 1.166, -0.848], [-1.444, -0.262, -1.921, 3.085], [-0.518, 2.339, 0.441, 1.856], [1.191, -0.204, -0.209, 1.755], [-1.326, 2.724, 0.148, 0.502]]) nodes = np.asarray([8, 7, 2, 3]) elif format_ == 'ASCII': np_samples, np_nodes, _ = _get_test_sample_node_data(format_=None) nfeatures = np_samples.shape[1] samples = [(('%.3f ' * nfeatures) % tuple(sample.tolist())).strip() for sample in np_samples] nodes = ('%d ' * nfeatures) % tuple(np_nodes.tolist()) elif format_ == 'Base64Binary': samples = ["SgwCQB1aZL+8dFO/L92UPw==", "BoEVPzEI7D99P5U/hxZZvw==", "/tS4v90khr5U4/W/pHBFQA==", "ppsEvy2yFUDByuE+aJHtPw==", "sHKYP2DlUL4ZBFa+16PgPw==", "XrqpvwRWLkBQjRc+EoMAPw=="] nodes = "CAAAAAcAAAACAAAAAwAAAA==" elif format_ == 'GZipBase64Binary': samples = ["eJzz4mFykI1K2b+nJHi//t0p9gAsDAZU", "eJxjaxS1N+R4Y19rP9W+XSxyPwAolAWF", "eJz7d2XH/rsqbftCHn/dv6TA1QEAXukKEw==", "eJxbNptlv+4mUYeDpx7aZUx8aw8AQboICA==", "eJzbUDTDPuFpwD5JlrB91xc/sAcAQ0gIFw==", "eJyL27VyP0uYnkNAr7idUDODPQA14AVP"] nodes = "eJzjYGBgYAdiJiBmBmIAAQAAFQ==" nfeatures = 4 return samples, nodes, nfeatures def _get_test_dataset(include_nodes=True): # returns test dataset matching the contents of _get_test_sample_node_data samples, nodes, _ = _get_test_sample_node_data() ds = Dataset(np.asarray(samples)) if include_nodes: ds.fa['node_indices'] = np.asarray(nodes) nsamples = ds.nsamples ds.sa['intents'] = ['NIFTI_INTENT_NONE'] * nsamples return ds def _build_gifti_string(format_, include_nodes=True): # builds the string contents of a GIFTI file samples, nodes, nfeatures = _get_test_sample_node_data(format_) nsamples = len(samples) ndata_arrays = nsamples + (1 if include_nodes else 0) header = """ """ % (ndata_arrays) def _build_data_array(data, intent, encoding=format_, dim=nfeatures): datatype = "INT32" if intent == "NODE_INDEX" else "FLOAT32" return """ %s """ % (datatype, dim, encoding, intent, data) body_elements = [] if include_nodes: body_elements.append(_build_data_array(nodes, 'NODE_INDEX')) body_elements.extend(_build_data_array(sample, 'NONE') for sample in samples) footer = """""" return header + "".join(body_elements) + footer @sweepargs(include_nodes=(False, True)) @sweepargs(format_=("ASCII", "Base64Binary", "GZipBase64Binary")) @with_tempfile(suffix='.func.gii') def test_gifti_dataset(fn, format_, include_nodes): expected_ds = _get_test_dataset(include_nodes) expected_ds_sa = expected_ds.copy(deep=True) expected_ds_sa.sa['chunks'] = [4, 3, 2, 1, 3, 2] expected_ds_sa.sa['targets'] = ['t%d' % i for i in xrange(6)] # build GIFTI file from scratch gifti_string = _build_gifti_string(format_, include_nodes) with open(fn, 'w') as f: f.write(gifti_string) # reading GIFTI file ds = gifti_dataset(fn) assert_datasets_almost_equal(ds, expected_ds) # test GiftiImage input img = nb_giftiio.read(fn) ds2 = gifti_dataset(img) assert_datasets_almost_equal(ds2, expected_ds) # test using Nibabel's output from write nb_giftiio.write(img, fn) ds3 = gifti_dataset(fn) assert_datasets_almost_equal(ds3, expected_ds) # test targets and chunks arguments ds3_sa = gifti_dataset(fn, targets=expected_ds_sa.targets, chunks=expected_ds_sa.chunks) assert_datasets_almost_equal(ds3_sa, expected_ds_sa) # test map2gifti img2 = map2gifti(ds) ds4 = gifti_dataset(img2) assert_datasets_almost_equal(ds4, expected_ds) # test float64 and int64, which must be converted to float32 and int32 fa = dict() if include_nodes: fa['node_indices'] = ds.fa.node_indices.astype(np.int64) ds_float64 = Dataset(samples=ds.samples.astype(np.float64), fa=fa) ds_float64_again = gifti_dataset(map2gifti(ds_float64)) assert_equal(ds_float64_again.samples.dtype, np.float32) if include_nodes: assert_equal(ds_float64_again.fa.node_indices.dtype, np.int32) # test contents of GIFTI image assert (isinstance(img2, nb_gifti.GiftiImage)) nsamples = ds.samples.shape[0] if include_nodes: node_arr = img2.darrays[0] assert_equal(node_arr.intent, intent_codes.code['NIFTI_INTENT_NODE_INDEX']) assert_equal(node_arr.coordsys, None) assert_equal(node_arr.data.dtype, np.int32) assert_equal(node_arr.datatype, data_type_codes['int32']) first_data_array_pos = 1 narrays = nsamples + 1 else: first_data_array_pos = 0 narrays = nsamples assert_equal(len(img.darrays), narrays) for i in xrange(nsamples): arr = img2.darrays[i + first_data_array_pos] # check intent code illegal_intents = ['NIFTI_INTENT_NODE_INDEX', 'NIFTI_INTENT_GENMATRIX', 'NIFTI_INTENT_POINTSET', 'NIFTI_INTENT_TRIANGLE'] assert (arr.intent not in [intent_codes.code[s] for s in illegal_intents]) # although the GIFTI standard is not very clear about whether # arrays with other intent than NODE_INDEX can have a # GiftiCoordSystem, FreeSurfer's mris_convert # does not seem to like its presence. Thus we make sure that # it's not there. assert_equal(arr.coordsys, None) assert_equal(arr.data.dtype, np.float32) assert_equal(arr.datatype, data_type_codes['float32']) # another test for map2gifti, setting the encoding explicitly map2gifti(ds, fn, encoding=format_) ds5 = gifti_dataset(fn) assert_datasets_almost_equal(ds5, expected_ds) # test map2gifti with array input; nodes are not stored map2gifti(ds.samples, fn) ds6 = gifti_dataset(fn) if include_nodes: assert_raises(AssertionError, assert_datasets_almost_equal, ds6, expected_ds) else: assert_datasets_almost_equal(ds6, expected_ds) assert_raises(TypeError, gifti_dataset, ds3_sa) assert_raises(TypeError, map2gifti, img, fn) @sweepargs(include_nodes=(False, True)) @with_tempfile(suffix='.hdf5') def test_gifti_dataset_h5py(fn, include_nodes): if not externals.exists('h5py'): raise SkipTest from mvpa2.base.hdf5 import h5save, h5load ds = _get_test_dataset(include_nodes) h5save(fn, ds) ds2 = h5load(fn) assert_datasets_equal(ds, ds2) @sweepargs(include_nodes=(False, True)) @sweepargs(format_=("ASCII", "Base64Binary", "GZipBase64Binary")) @with_tempfile(suffix='.func.gii') def test_gifti_dataset_with_anatomical_surface(fn, format_, include_nodes): ds = _get_test_dataset(include_nodes) nsamples, nfeatures = ds.shape vertices = np.random.normal(size=(nfeatures, 3)) faces = np.asarray([i + np.arange(3) for i in xrange(2 * nfeatures)]) % nfeatures surf = Surface(vertices, faces) img = map2gifti(ds, surface=surf) arr_index = 0 if include_nodes: # check node indices node_arr = img.darrays[arr_index] assert_equal(node_arr.intent, intent_codes.code['NIFTI_INTENT_NODE_INDEX']) assert_equal(node_arr.coordsys, None) assert_equal(node_arr.data.dtype, np.int32) assert_equal(node_arr.datatype, data_type_codes['int32']) arr_index += 1 for sample in ds.samples: # check sample content arr = img.darrays[arr_index] data = arr.data assert_almost_equal(data, sample) assert_equal(arr.coordsys, None) assert_equal(arr.data.dtype, np.float32) assert_equal(arr.datatype, data_type_codes['float32']) arr_index += 1 # check vertices vertex_arr = img.darrays[arr_index] assert_almost_equal(vertex_arr.data, vertices) assert_equal(vertex_arr.data.dtype, np.float32) assert_equal(vertex_arr.datatype, data_type_codes['float32']) # check faces arr_index += 1 face_arr = img.darrays[arr_index] assert_almost_equal(face_arr.data, faces) assert_equal(face_arr.data.dtype, np.int32) assert_equal(face_arr.datatype, data_type_codes['int32']) # getting the functional data should ignore faces and vertices ds_again = gifti_dataset(img) assert_datasets_almost_equal(ds, ds_again) pymvpa2-2.6.4/mvpa2/tests/test_glmmapper.py000066400000000000000000000073521323370031300207070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for the NiPy GLM mapper (requiring NiPy).""" import numpy as np from mvpa2.testing.tools import * skip_if_no_external('scipy') from scipy import signal from mvpa2.datasets import Dataset from mvpa2.mappers.glm import * from mvpa2.misc.fx import double_gamma_hrf, single_gamma_hrf def get_bold(): # TODO add second model hrf_x = np.linspace(0,25,250) hrf = double_gamma_hrf(hrf_x) - single_gamma_hrf(hrf_x, 0.8, 1, 0.05) samples = 1200 exp_time = np.linspace(0, 120, samples) fast_er_onsets = np.array([50, 240, 340, 590, 640, 940, 960]) fast_er = np.zeros(samples) fast_er[fast_er_onsets] = 1 model_hr = np.convolve(fast_er, hrf)[:samples] tr = 2.0 model_lr = signal.resample(model_hr, int(samples / tr / 10), window='ham') ## moderate noise level baseline = 800 wsignal = baseline + 8.0 \ * model_lr + np.random.randn(int(samples / tr / 10)) * 4.0 nsignal = baseline \ + np.random.randn(int(samples / tr / 10)) * 4.0 ds = Dataset(samples=np.array([wsignal, nsignal]).T, sa={'model': model_lr}) return ds def test_glm_mapper(): bold = get_bold() assert_equal(bold.nfeatures, 2) assert('model' in bold.sa) reg_names = ['model'] implementations = [] if externals.exists('nipy'): implementations.append(NiPyGLMMapper) if externals.exists('statsmodels'): implementations.append(StatsmodelsGLMMapper) results = [] if not len(implementations): raise SkipTest for klass in implementations: pest = klass(reg_names)(bold) assert_equal(pest.shape, (len(reg_names), bold.nfeatures)) assert_array_equal(pest.sa.regressor_names, reg_names) pest = klass(reg_names, add_constant=True)(bold) assert_equal(pest.shape, (len(reg_names) + 1, bold.nfeatures)) # nothing at all noglm = klass([]) assert_raises(ValueError, noglm.__call__, bold) # no reg from ds at all pest = klass([], add_constant=True)(bold) assert_equal(pest.shape, (1, bold.nfeatures)) assert_array_equal(pest.sa.regressor_names, ['constant']) # only reg from mapper pest = klass([], add_regs=(('trend', (np.linspace(-1,1,len(bold)))),))(bold) assert_equal(pest.shape, (1, bold.nfeatures)) assert_array_equal(pest.sa.regressor_names, ['trend']) # full monty pest = klass(['model'], add_regs=(('trend', (np.linspace(-1,1,len(bold)))),), add_constant=True, space='conditions', return_design=True, return_model=True)(bold) results.append(pest) assert_equal(pest.shape, (len(reg_names) + 2, bold.nfeatures)) assert_array_equal(pest.sa.conditions, ['model', 'trend', 'constant']) assert('model' in pest.a) assert('regressors' in pest.sa) assert_array_equal(pest.sa.regressors[0], bold.sa.model) assert_array_equal(pest.sa.regressors[-1], np.ones(len(bold))) if len(results) < 2: return ds1, ds2 = results[0], results[1] # should really have very similar results, independent of actual model fit details assert(np.corrcoef(ds1.samples.ravel(), ds2.samples.ravel())[0,1] > 0.99) pymvpa2-2.6.4/mvpa2/tests/test_glmnet.py000066400000000000000000000053251323370031300202070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA least angle regression (ENET) classifier""" from mvpa2.testing import * skip_if_no_external('glmnet') from mvpa2.testing.datasets import * from mvpa2 import cfg from mvpa2.clfs.glmnet import GLMNET_R,GLMNET_C #from scipy.stats import pearsonr # Lets use our corr_error which would be available even without scipy from mvpa2.misc.errorfx import corr_error from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.testing.tools import assert_true, assert_equal, assert_array_equal def test_glmnet_r(): # not the perfect dataset with which to test, but # it will do for now. #data = datasets['dumb2'] # for some reason the R code fails with the dumb data data = datasets['chirp_linear'] clf = GLMNET_R() clf.train(data) # prediction has to be almost perfect # test with a correlation pre = clf.predict(data.samples) corerr = corr_error(pre, data.targets) if cfg.getboolean('tests', 'labile', default='yes'): assert_true(corerr < .2) def test_glmnet_c(): # define binary prob data = datasets['dumb2'] # use GLMNET on binary problem clf = GLMNET_C() clf.ca.enable('estimates') clf.train(data) # test predictions pre = clf.predict(data.samples) assert_array_equal(pre, data.targets) def test_glmnet_state(): #data = datasets['dumb2'] # for some reason the R code fails with the dumb data data = datasets['chirp_linear'] clf = GLMNET_R() clf.train(data) clf.ca.enable('predictions') p = clf.predict(data.samples) assert_array_equal(p, clf.ca.predictions) def test_glmnet_c_sensitivities(): data = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) # use GLMNET on binary problem clf = GLMNET_C() clf.train(data) # now ask for the sensitivities WITHOUT having to pass the dataset # again sens = clf.get_sensitivity_analyzer(force_train=False)(None) #failUnless(sens.shape == (data.nfeatures,)) assert_equal(sens.shape, (len(data.UT), data.nfeatures)) def test_glmnet_r_sensitivities(): data = datasets['chirp_linear'] clf = GLMNET_R() clf.train(data) # now ask for the sensitivities WITHOUT having to pass the dataset # again sens = clf.get_sensitivity_analyzer(force_train=False)(None) assert_equal(sens.shape, (1, data.nfeatures)) pymvpa2-2.6.4/mvpa2/tests/test_gnb.py000066400000000000000000000047411323370031300174700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA GNB classifier""" import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import * from mvpa2.clfs.gnb import GNB from mvpa2.measures.base import TransferMeasure from mvpa2.generators.splitters import Splitter class GNBTests(unittest.TestCase): def test_gnb(self): gnb = GNB() gnb_nc = GNB(common_variance=False) gnb_n = GNB(normalize=True) gnb_n_nc = GNB(normalize=True, common_variance=False) ds = datasets['uni2medium'] # Generic silly coverage just to assure that it works in all # possible scenarios: bools = (True, False) # There should be better way... heh for cv in bools: # common_variance? for prior in ('uniform', 'laplacian_smoothing', 'ratio'): tp = None # predictions -- all above should # result in the same predictions for n in bools: # normalized? for ls in bools: # logspace? for es in ((), ('estimates')): gnb_ = GNB(common_variance=cv, prior=prior, normalize=n, logprob=ls, enable_ca=es) tm = TransferMeasure(gnb_, Splitter('train')) predictions = tm(ds).samples[:,0] if tp is None: tp = predictions assert_array_equal(predictions, tp) # if normalized -- check if estimates are such if n and 'estimates' in es: v = gnb_.ca.estimates if ls: # in log space -- take exp ;) v = np.exp(v) d1 = np.sum(v, axis=1) - 1.0 self.assertTrue(np.max(np.abs(d1)) < 1e-5) def suite(): # pragma: no cover return unittest.makeSuite(GNBTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_gpr.py000066400000000000000000000046511323370031300175120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA GPR.""" from mvpa2.base import externals from mvpa2.misc import data_generators from mvpa2.misc.attrmap import AttributeMap from mvpa2.kernels.np import GeneralizedLinearKernel from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.testing.tools import assert_array_equal, assert_array_almost_equal skip_if_no_external('scipy') # needed by GPR code from mvpa2.clfs.gpr import GPR if __debug__: from mvpa2.base import debug class GPRTests(unittest.TestCase): def test_basic(self): dataset = data_generators.linear1d_gaussian_noise() k = GeneralizedLinearKernel() clf = GPR(k) clf.train(dataset) y = clf.predict(dataset.samples) assert_array_equal(y.shape, dataset.targets.shape) def test_linear(self): pass def _test_gpr_model_selection(self): # pragma: no cover """Smoke test for running model selection while getting GPRWeights TODO: DISABLED because setting of hyperparameters was not adopted for 0.6 (yet) """ if not externals.exists('openopt'): return amap = AttributeMap() # we would need to pass numbers into the GPR dataset = datasets['uni2small'].copy() #data_generators.linear1d_gaussian_noise() dataset.targets = amap.to_numeric(dataset.targets).astype(float) k = GeneralizedLinearKernel() clf = GPR(k, enable_ca=['log_marginal_likelihood']) sa = clf.get_sensitivity_analyzer() # should be regular weights sa_ms = clf.get_sensitivity_analyzer(flavor='model_select') # with model selection def prints(): print clf.ca.log_marginal_likelihood, clf.kernel.Sigma_p, clf.kernel.sigma_0 sa(dataset) lml = clf.ca.log_marginal_likelihood sa_ms(dataset) lml_ms = clf.ca.log_marginal_likelihood self.assertTrue(lml_ms > lml) def suite(): # pragma: no cover return unittest.makeSuite(GPRTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_group_clusterthr.py000066400000000000000000000310241323370031300223270ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for Stelzer et al. cluster thresholding algorithm""" from mvpa2.base import externals from mvpa2.testing.tools import skip_if_no_external # TODO a tiny bit also needs statsmodels skip_if_no_external('statsmodels') skip_if_no_external('scipy') from collections import Counter import numpy as np import random from mvpa2.testing import assert_array_equal, assert_raises, assert_equal, \ assert_array_almost_equal, assert_almost_equal, assert_true, assert_false import mvpa2.algorithms.group_clusterthr as gct from mvpa2.datasets import Dataset, dataset_wizard from nose.tools import assert_greater_equal, assert_greater from mvpa2.testing.sweep import sweepargs from scipy.ndimage import measurements from scipy.stats import norm def test_pval(): def not_inplace_shuffle(x): x = list(x) random.shuffle(x) return x x = range(100000) * 20 x = np.array(x) x = x.reshape(20, 100000) x = x.T x = np.apply_along_axis(not_inplace_shuffle, axis=0, arr=x) expected_result = [100000 - 100000 * 0.001] * 20 thresholds = gct.get_thresholding_map(x, p=0.001) assert_array_equal(thresholds, expected_result) # works with datasets too dsthresholds = gct.get_thresholding_map(Dataset(x), p=0.001) assert_almost_equal(thresholds, dsthresholds) assert_raises(ValueError, gct.get_thresholding_map, x, p=0.00000001) x = range(0, 100, 5) null_dist = np.repeat(1, 100).astype(float)[None] pvals = gct._transform_to_pvals(x, null_dist) desired_output = np.array([1, 0.95, 0.9, 0.85, 0.8, 0.75, 0.7, 0.65, 0.6, 0.55, 0.5, 0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05]) assert_array_almost_equal(desired_output, pvals) def test_cluster_count(): skip_if_no_external('scipy', min_version='0.10') # we get a ZERO cluster count of one if there are no clusters at all # this is needed to keept track of the number of bootstrap samples that yield # no cluster at all (high treshold) in order to compute p-values when there is no # actual cluster size histogram assert_equal(gct._get_map_cluster_sizes([0, 0, 0, 0]), [0]) # if there is at least one cluster: no ZERO count assert_equal(gct._get_map_cluster_sizes([0, 0, 1, 0]), [1]) for i in range(2): # rerun tests for bool type of test_M test_M = np.array([[1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1], [0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0], [0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0]]) expected_result = [5, 4, 3, 3, 2, 0, 2] # 5 clusters of size 1, # 4 clusters of size 2 ... test_ds = Dataset([test_M]) if i == 1: test_M = test_M.astype(bool) test_M_3d = np.hstack((test_M.flatten(), test_M.flatten())).reshape(2, 9, 16) test_ds_3d = Dataset([test_M_3d]) # expected_result^2 expected_result_3d = np.array([0, 5, 0, 4, 0, 3, 0, 3, 0, 2, 0, 0, 0, 2]) size = 10000 # how many times bigger than test_M_3d test_M_3d_big = np.hstack((test_M_3d.flatten(), np.zeros(144))) test_M_3d_big = np.hstack((test_M_3d_big for i in range(size)) ).reshape(3 * size, 9, 16) test_ds_3d_big = Dataset([test_M_3d_big]) expected_result_3d_big = expected_result_3d * size # check basic cluster size determination for plain arrays and datasets # with a single sample for t, e in ((test_M, expected_result), (test_ds, expected_result), (test_M_3d, expected_result_3d), (test_ds_3d, expected_result_3d), (test_M_3d_big, expected_result_3d_big), (test_ds_3d_big, expected_result_3d_big)): assert_array_equal(np.bincount(gct._get_map_cluster_sizes(t))[1:], e) # old M = np.vstack([test_M_3d.flatten()] * 10) # new ds = dataset_wizard([test_M_3d] * 10) assert_array_equal(M, ds) expected_result = Counter(np.hstack([gct._get_map_cluster_sizes(test_M_3d)] * 10)) assert_array_equal(expected_result, gct.get_cluster_sizes(ds)) # test the same with some arbitrary per-feature threshold thr = 4 labels, num = measurements.label(test_M_3d) area = measurements.sum(test_M_3d, labels, index=np.arange(labels.max() + 1)) cluster_sizes_map = area[labels] # .astype(int) thresholded_cluster_sizes_map = cluster_sizes_map > thr # old M = np.vstack([cluster_sizes_map.flatten()] * 10) # new ds = dataset_wizard([cluster_sizes_map] * 10) assert_array_equal(M, ds) expected_result = Counter(np.hstack( [gct._get_map_cluster_sizes(thresholded_cluster_sizes_map)] * 10)) th_map = np.ones(cluster_sizes_map.flatten().shape) * thr # threshold dataset by hand ds.samples = ds.samples > th_map assert_array_equal(expected_result, gct.get_cluster_sizes(ds)) # run same test with parallel and serial execution @sweepargs(n_proc=[1, 2]) def test_group_clusterthreshold_simple(n_proc): if n_proc > 1: skip_if_no_external('joblib') feature_thresh_prob = 0.005 nsubj = 10 # make a nice 1D blob and a speck blob = np.array([0, 0, .5, 3, 5, 3, 3, 0, 2, 0]) blob = Dataset([blob]) # and some nice random permutations nperms = 100 * nsubj perm_samples = np.random.randn(nperms, blob.nfeatures) perms = Dataset(perm_samples, sa=dict(chunks=np.repeat(range(nsubj), len(perm_samples) / nsubj)), fa=dict(fid=range(perm_samples.shape[1]))) # the algorithm instance # scale number of bootstraps to match desired probability # plus a safety margin to minimize bad luck in sampling clthr = gct.GroupClusterThreshold(n_bootstrap=int(3. / feature_thresh_prob), feature_thresh_prob=feature_thresh_prob, fwe_rate=0.01, n_blocks=3, n_proc=n_proc) clthr.train(perms) # get the FE thresholds thr = clthr._thrmap # perms are normally distributed, hence the CDF should be close, std of the distribution # will scale 1/sqrt(nsubj) assert_true(np.abs( feature_thresh_prob - (1 - norm.cdf(thr.mean(), loc=0, scale=1. / np.sqrt(nsubj)))) < 0.01) clstr_sizes = clthr._null_cluster_sizes # getting anything but a lonely one feature cluster is very unlikely assert_true(max([c[0] for c in clstr_sizes.keys()]) <= 1) # threshold orig map res = clthr(blob) # # check output # # samples unchanged assert_array_equal(blob.samples, res.samples) # need to find the big cluster assert_true(len(res.a.clusterstats) > 0) assert_equal(len(res.a.clusterstats), res.fa.clusters_featurewise_thresh.max()) # probs need to decrease with size, clusters are sorted by size (decreasing) assert_true(res.a.clusterstats['prob_raw'][0] <= res.a.clusterstats['prob_raw'][1]) # corrected probs for every uncorrected cluster assert_true('prob_corrected' in res.a.clusterstats.dtype.names) # fwe correction always increases the p-values (if anything) assert_true(np.all(res.a.clusterstats['prob_raw'] <= res.a.clusterstats['prob_corrected'])) # check expected cluster sizes, ordered large -> small assert_array_equal(res.a.clusterstats['size'], [4, 1]) # check max position assert_array_equal(res.a.clusterlocations['max'], [[4], [8]]) # center of mass: eyeballed assert_array_almost_equal(res.a.clusterlocations['center_of_mass'], [[4.429], [8]], 3) # other simple stats #[0, 0, .5, 3, 5, 3, 3, 0, 2, 0] assert_array_equal(res.a.clusterstats['mean'], [3.5, 2]) assert_array_equal(res.a.clusterstats['min'], [3, 2]) assert_array_equal(res.a.clusterstats['max'], [5, 2]) assert_array_equal(res.a.clusterstats['median'], [3, 2]) assert_array_almost_equal(res.a.clusterstats['std'], [0.866, 0], 3) # fwe thresholding only ever removes clusters assert_true(np.all(np.abs(res.fa.clusters_featurewise_thresh - res.fa.clusters_fwe_thresh) >= 0)) # FWE should kill the small one assert_greater(res.fa.clusters_featurewise_thresh.max(), res.fa.clusters_fwe_thresh.max()) # check that the cluster results aren't depending in the actual location of # the clusters shifted_blob = Dataset([[.5, 3, 5, 3, 3, 0, 0, 0, 2, 0]]) shifted_res = clthr(shifted_blob) assert_array_equal(res.a.clusterstats, shifted_res.a.clusterstats) # check that it averages multi-sample datasets # also checks that scenarios work where all features are part of one big # cluster multisamp = Dataset(np.arange(30).reshape(3, 10) + 100) avgres = clthr(multisamp) assert_equal(len(avgres), 1) assert_array_equal(avgres.samples[0], np.mean(multisamp.samples, axis=0)) # retrain, this time with data from only a single subject perms = Dataset(perm_samples, sa=dict(chunks=np.repeat(1, len(perm_samples))), fa=dict(fid=range(perms.shape[1]))) clthr.train(perms) # same blob -- 1st this should work without issues sglres = clthr(blob) # NULL estimation does no averaging # -> more noise -> fewer clusters -> higher p assert_greater_equal(len(res.a.clusterstats), len(sglres.a.clusterstats)) assert_greater_equal(np.round(sglres.a.clusterstats[0]['prob_raw'], 4), np.round(res.a.clusterstats[0]['prob_raw'], 4)) # no again for real scientists: no FWE correction superclthr = gct.GroupClusterThreshold( n_bootstrap=int(3. / feature_thresh_prob), feature_thresh_prob=feature_thresh_prob, multicomp_correction=None, n_blocks=3, n_proc=n_proc) superclthr.train(perms) superres = superclthr(blob) assert_true('prob_corrected' in res.a.clusterstats.dtype.names) assert_true('clusters_fwe_thresh' in res.fa) assert_false('prob_corrected' in superres.a.clusterstats.dtype.names) assert_false('clusters_fwe_thresh' in superres.fa) # check validity test assert_raises(ValueError, gct.GroupClusterThreshold, n_bootstrap=10, feature_thresh_prob=.09, n_proc=n_proc) # check mapped datasets blob = np.array([[0, 0, .5, 3, 5, 3, 3, 0, 2, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]) blob = dataset_wizard([blob]) # and some nice random permutations nperms = 100 * nsubj perm_samples = np.random.randn(*((nperms,) + blob.shape)) perms = dataset_wizard( perm_samples, chunks=np.repeat(range(nsubj), len(perm_samples) / nsubj)) clthr.train(perms) twodres = clthr(blob) # finds two clusters of the same size assert_array_equal(twodres.a.clusterstats['size'], res.a.clusterstats['size']) # TODO continue with somewhat more real dataset def test_repeat_cluster_vals(): assert_array_equal(gct.repeat_cluster_vals({1: 2, 3: 1}), [1, 1, 3]) assert_array_equal(gct.repeat_cluster_vals({1: 2, 3: 2, 2: 1}), [1, 1, 2, 3, 3]) assert_array_equal(gct.repeat_cluster_vals({1: 2, 3: 1}, {1: 0.2, 3: 0.5}), [0.2, 0.2, 0.5]) assert_array_equal(gct.repeat_cluster_vals({1: 2, 3: 2, 2: 1}, {1: 'a', 2: 'b', 3: 'c'}), ['a', 'a', 'b', 'c', 'c']) pymvpa2-2.6.4/mvpa2/tests/test_hdf5.py000066400000000000000000000426171323370031300175540ustar00rootroot00000000000000# emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for HDF5 converter''' import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import datasets, saveload_warehouse skip_if_no_external('h5py') import h5py from glob import glob import os from os.path import join as pathjoin from os.path import exists, realpath import sys import tempfile from mvpa2.base.dataset import AttrDataset, save from mvpa2.base.hdf5 import h5save, h5load, obj2hdf, HDF5ConversionError from mvpa2.base.dochelpers import safe_str from mvpa2.datasets.sources import load_example_fmri_dataset from mvpa2.mappers.fx import mean_sample from mvpa2.mappers.boxcar import BoxcarMapper from mvpa2.misc.support import SmartVersion from mvpa2 import pymvpa_dataroot from mvpa2.testing import sweepargs from mvpa2.testing.regress import get_testing_fmri_dataset_filename class HDFDemo(object): pass class CustomOldStyle: pass @nodebug(['ID_IN_REPR', 'MODULE_IN_REPR']) def test_h5py_datasets(): # this one stores and reloads all datasets in the warehouse rc_ds = saveload_warehouse() # global checks assert_equal(len(datasets), len(rc_ds)) assert_equal(sorted(datasets.keys()), sorted(rc_ds.keys())) # check each one for d in datasets: ds = datasets[d] ds2 = rc_ds[d] assert_array_equal(ds.samples, ds2.samples) # we can check all sa and fa attrs for attr in ds.sa: assert_array_equal(ds.sa[attr].value, ds2.sa[attr].value) for attr in ds.fa: assert_array_equal(ds.fa[attr].value, ds2.fa[attr].value) # with datasets attributes it is more difficult, but we'll do some assert_equal(len(ds.a), len(ds2.a)) assert_equal(sorted(ds.a.keys()), sorted(ds2.a.keys())) if 'mapper' in ds.a: # since we have no __equal__ do at least some comparison if __debug__: # debug mode needs special test as it enhances the repr output # with module info and id() appendix for objects assert_equal('#'.join(repr(ds.a.mapper).split('#')[:-1]), '#'.join(repr(ds2.a.mapper).split('#')[:-1])) else: assert_equal(repr(ds.a.mapper), repr(ds2.a.mapper)) def test_h5py_dataset_typecheck(): ds = datasets['uni2small'] fd, fpath = tempfile.mkstemp('mvpa', 'test'); os.close(fd) fd, fpath2 = tempfile.mkstemp('mvpa', 'test'); os.close(fd) h5save(fpath2, [[1, 2, 3]]) assert_raises(ValueError, AttrDataset.from_hdf5, fpath2) # this one just catches if there is such a group assert_raises(ValueError, AttrDataset.from_hdf5, fpath2, name='bogus') hdf = h5py.File(fpath, 'w') ds = AttrDataset([1, 2, 3]) obj2hdf(hdf, ds, name='non-bogus') obj2hdf(hdf, [1, 2, 3], name='bogus') hdf.close() assert_raises(ValueError, AttrDataset.from_hdf5, fpath, name='bogus') ds_loaded = AttrDataset.from_hdf5(fpath, name='non-bogus') assert_array_equal(ds, ds_loaded) # just to do smth useful with ds ;) # cleanup and ignore stupidity os.remove(fpath) os.remove(fpath2) def test_matfile_v73_compat(): mat = h5load(pathjoin(pymvpa_dataroot, 'v73.mat')) assert_equal(len(mat), 2) assert_equal(sorted(mat.keys()), ['x', 'y']) assert_array_equal(mat['x'], np.arange(6)[None].T) assert_array_equal(mat['y'], np.array([(1,0,1)], dtype='uint8').T) @with_tempfile() def test_directaccess(fname): h5save(fname, 'test') assert_equal(h5load(fname), 'test') h5save(fname, datasets['uni4medium']) assert_array_equal(h5load(fname).samples, datasets['uni4medium'].samples) @with_tempfile() def test_function_ptrs(fname): skip_if_no_external('nibabel') ds = load_example_fmri_dataset() # add a mapper with a function ptr inside ds = ds.get_mapped(mean_sample()) h5save(fname, ds) ds_loaded = h5load(fname) fresh = load_example_fmri_dataset().O # check that the reconstruction function pointer in the FxMapper points # to the right one assert_array_equal(ds_loaded.a.mapper.forward(fresh), ds.samples) @with_tempfile() def test_various_special_cases(fname): # 0d object ndarray a = np.array(0, dtype=object) h5save(fname, a) a_ = h5load(fname) ok_(a == a_) # slice h5save(fname, slice(2,5,3)) sl = h5load(fname) ok_(sl == slice(2,5,3)) @with_tempfile() def test_class_oldstyle(fname): # AttributeError: CustomOld instance has no attribute '__reduce__' # old style classes do not define reduce -- sure thing we might # not need to support them at all, but then some meaningful # exception should be thrown co = CustomOldStyle() co.v = 1 assert_raises(HDF5ConversionError, save, co, fname, compression='gzip') @with_tempfile() def test_locally_defined_class(fname): # cannot store locally defined classes class Custom(object): pass c = Custom() assert_raises(HDF5ConversionError, h5save, fname, c, compression='gzip') @with_tempfile() def test_dataset_without_chunks(fname): # ValueError: All chunk dimensions must be positive (Invalid arguments to routine: Out of range) # MH: This is not about Dataset chunks, but about an empty samples array ds = AttrDataset([8], a=dict(custom=1)) save(ds, fname, compression='gzip') ds_loaded = h5load(fname) ok_(ds_loaded.a.custom == ds.a.custom) @with_tempfile() def test_recursion(fname): obj = range(2) obj.append(HDFDemo()) obj.append(obj) h5save(fname, obj) lobj = h5load(fname) assert_equal(obj[:2], lobj[:2]) assert_equal(type(obj[2]), type(lobj[2])) ok_(obj[3] is obj) ok_(lobj[3] is lobj) @with_tempfile() def test_h5save_mkdir(dirname): # create deeper directory name filename = pathjoin(dirname, 'a', 'b', 'c', 'test_file.hdf5') assert_raises(IOError, h5save, filename, {}, mkdir=False) # And create by default h5save(filename, {}) ok_(os.path.exists(filename)) d = h5load(filename) assert_equal(d, {}) # And that we can still just save into a file in current directory # Let's be safe and assure going back to the original directory cwd = os.getcwd() try: os.chdir(dirname) h5save("TEST.hdf5", [1,2,3]) finally: os.chdir(cwd) @with_tempfile() def test_state_cycle_with_custom_reduce(fname): # BoxcarMapper has a custom __reduce__ implementation . The 'space' # setting will only survive a svae/load cycle if the state is correctly # handle for custom reduce iplementations. bm = BoxcarMapper([0], 1, space='boxy') h5save(fname, bm) bm_rl = h5load(fname) assert_equal(bm_rl.get_space(), 'boxy') @with_tempfile() def test_store_metaclass_types(fname): from mvpa2.kernels.base import Kernel allowedtype=Kernel h5save(fname, allowedtype) lkrn = h5load(fname) assert_equal(lkrn, Kernel) assert_equal(lkrn.__metaclass__, Kernel.__metaclass__) @with_tempfile() def test_state_setter_getter(fname): # make sure the presence of custom __setstate__, __getstate__ methods # is honored -- numpy's RNGs have it from numpy.random.mtrand import RandomState r = RandomState() h5save(fname, r) rl = h5load(fname) rl_state = rl.get_state() for i, v in enumerate(r.get_state()): assert_array_equal(v, rl_state[i]) @sweepargs(obj=( # simple 1d -- would have worked before as well np.array([{'d': np.empty(shape=(2, 3))}], dtype=object), # 2d -- before fix would be reconstructed incorrectly np.array([[{'d': np.empty(shape=(2, 3))}]], dtype=object), # a bit more elaborate storage np.array([[{'d': np.empty(shape=(2, 3)), 'k': 33}]*2]*3, dtype=object), # Swaroop's use-case AttrDataset(np.array([{'d': np.empty(shape=(2, 3))}], dtype=object)), # as it would be reconstructed before the fix -- obj array of obj arrays np.array([np.array([{'d': np.empty(shape=(2, 3))}], dtype=object)], dtype=object), np.array([], dtype='int64'), )) @with_tempfile() def test_save_load_object_dtype_ds(fname, obj=None): """Test saving of custom object ndarray (GH #84) """ aobjf = np.asanyarray(obj).flatten() if not aobjf.size and externals.versions['hdf5'] < '1.8.7': raise SkipTest("Versions of hdf5 before 1.8.7 have problems with empty arrays") # save/reload obj_ = saveload(obj, fname) # and compare # neh -- not versatile enough #assert_objectarray_equal(np.asanyarray(obj), np.asanyarray(obj_)) assert_array_equal(obj.shape, obj_.shape) assert_equal(type(obj), type(obj_)) # so we could test both ds and arrays aobjf_ = np.asanyarray(obj_).flatten() # checks if having just array above if aobjf.size: assert_equal(type(aobjf[0]), type(aobjf_[0])) assert_array_equal(aobjf[0]['d'], aobjf_[0]['d']) _python_objs = [ # lists [1, 2], [], # tuples (1, 2), tuple(), # pure Python sets set([1, 2]), set(), set([None]), set([tuple()]), # Our SmartVersion which was missing __reduce__ SmartVersion("0.1"), ] import collections _python_objs.append([collections.deque([1, 2])]) if hasattr(collections, 'OrderedDict'): _python_objs.append([collections.OrderedDict(), collections.OrderedDict(a9=1, a0=2)]) if hasattr(collections, 'Counter'): _python_objs.append([collections.Counter({'red': 4, 'blue': 2})]) if hasattr(collections, 'namedtuple') and sys.version_info > (2, 7, 4): # only test this on >2.7.4, because of this: # http://bugs.python.org/issue15535 _NamedTuple = collections.namedtuple('_NamedTuple', ['red', 'blue']) # And the one with non-matching name _NamedTuple_ = collections.namedtuple('NamedTuple', ['red', 'blue']) _python_objs.extend([_NamedTuple(4, 2), _NamedTuple_(4, 3), ]) if hasattr(collections, 'OrderedDict'): _python_objs.extend([collections.OrderedDict(a=1, b=2)]) _unicode_arrays = [np.array([['a', u'мама', 'x'], [u"ы", 'a', 'z']], order=o) for o in 'CF'] # non-record (simple) numpy arrays _numpy_objs = [ np.arange(3), np.arange(6).reshape((2, 3), order='C'), np.arange(6).reshape((2, 3), order='F'), np.array(list('abcdef')), np.array("string"), np.array(u"ы"), ] \ + _unicode_arrays \ + [a[:, ::2] for a in _unicode_arrays] # record arrays _numpy_objs += [ np.array([(1.0, 2), (3.0, 4)], dtype=[('x', float), ('y', int)]), np.array([(1.0, 'a'), (3.0, 'b')], dtype=[('x', float), ('y', 'S1')]), np.array([(1.0, u'ы'), (3.0, 'b')], dtype=[('x', float), ('y', '= ds.a.versions['nibabel']: # test that we can get str of the niftihdr: # to avoid such issues as https://github.com/PyMVPA/PyMVPA/issues/278 hdr_str = str(ds.a.imghdr) assert(hdr_str != "") ds_ni = map2nifti(ds) # verify that we can store generated nifti to a file ds_ni.to_filename(tempfile) assert(os.path.exists(tempfile)) else: raise SkipTest( "Our version of nibabel %s is older than the one file %s was saved " "with: %s" % (externals.versions['nibabel'], testfile, ds.a.versions['nibabel'])) pymvpa2-2.6.4/mvpa2/tests/test_hdf5_clf.py000066400000000000000000000075241323370031300203760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for storage of classifiers in HDF5''' from mvpa2.testing import * skip_if_no_external('h5py') skip_if_no_external('scipy') import numpy as np from mvpa2.base import cfg from mvpa2.testing.datasets import datasets from mvpa2.clfs.base import Classifier from mvpa2.generators.splitters import Splitter from mvpa2.measures.base import TransferMeasure from mvpa2.misc.errorfx import corr_error, mean_mismatch_error from mvpa2.mappers.fx import BinaryFxNode from mvpa2.clfs.warehouse import clfswh, regrswh import tempfile from mvpa2.base.hdf5 import h5save, h5load, obj2hdf @sweepargs(lrn=clfswh[:] + regrswh[:]) @with_tempfile() def test_h5py_clfs(fname, lrn): # lets simply clone it so we could make its all states on lrn = lrn.clone() # Lets enable all the states lrn.ca.enable('all') # Store/reload untrained learner try: h5save(fname, lrn) except Exception, e: raise AssertionError, \ "Failed to store due to %r" % (e,) try: lrn_ = h5load(fname) pass except Exception, e: raise AssertionError, \ "Failed to load due to %r" % (e,) ok_(isinstance(lrn_, Classifier)) # Verify that we have the same ca enabled # XXX FAILS atm! #ok_(set(lrn.ca.enabled) == set(lrn_.ca.enabled)) # lets choose a dataset dsname, errorfx = \ {False: ('uni2large', mean_mismatch_error), True: ('sin_modulated', corr_error)}\ ['regression' in lrn.__tags__] ds = datasets[dsname] splitter = Splitter('train') postproc = BinaryFxNode(errorfx, 'targets') te = TransferMeasure(lrn, splitter, postproc=postproc) te_ = TransferMeasure(lrn_, splitter, postproc=postproc) error = te(ds) error_ = te_(ds) if len(set(['swig', 'rpy2']).intersection(lrn.__tags__)): raise SkipTest("Trained swigged and R-interfaced classifiers can't " "be stored/reloaded yet") # now lets store/reload the trained one try: h5save(fname, lrn_) except Exception, e: raise AssertionError, \ "Failed to store trained lrn due to %r" % (e,) # This lrn__ is doubly stored/loaded ;-) try: lrn__ = h5load(fname) except Exception, e: raise AssertionError, \ "Failed to load trained lrn due to %r" % (e,) # Verify that we have the same ca enabled # TODO #ok_(set(lrn.ca.enabled) == set(lrn__.ca.enabled)) # and having the same values? # TODO # now lets do predict and manually compute error predictions = lrn__.predict(ds[ds.sa.train == 2].samples) error__ = errorfx(predictions, ds[ds.sa.train == 2].sa.targets) if 'non-deterministic' in lrn_.__tags__: # might be different... let's allow to vary quite a bit # and new error should be no more than twice the old one # (better than no check at all) # TODO: smarter check, since 'twice' is quite coarse # especially if original error happens to be 0 ;) if cfg.getboolean('tests', 'labile', default='yes'): ok_(np.asscalar(error_) <= 2*np.asscalar(error)) ok_(np.asscalar(error__) <= 2*np.asscalar(error)) else: # must match precisely # but not on windows 32 bit - had miniscule difference cmp_ = assert_array_almost_equal if on_windows else assert_array_equal cmp_(error, error_) cmp_(error, error__) # TODO: verify ca's #print "I PASSED!!!! %s" % lrn pymvpa2-2.6.4/mvpa2/tests/test_hyperalignment.py000066400000000000000000000461311323370031300217470ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA ...""" import unittest import numpy as np from mvpa2.base import cfg from mvpa2.datasets.base import Dataset from mvpa2.base.dataset import hstack from mvpa2.algorithms.hyperalignment import Hyperalignment, mean_xy from mvpa2.mappers.zscore import zscore from mvpa2.misc.support import idhash from mvpa2.misc.data_generators import random_affine_transformation from mvpa2.mappers.svd import SVDMapper # Somewhat slow but provides all needed ;) from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.generators.partition import NFoldPartitioner # if you need some classifiers #from mvpa2.testing.clfs import * class HyperAlignmentTests(unittest.TestCase): @sweepargs(zscore_all=(False, True)) @sweepargs(zscore_common=(False, True)) @sweepargs(ref_ds=(None, 2)) @sweepargs(level1_equal_weight=(False, True)) @reseed_rng() def test_basic_functioning(self, ref_ds, zscore_common, zscore_all, level1_equal_weight): ha = Hyperalignment(ref_ds=ref_ds, zscore_all=zscore_all, zscore_common=zscore_common, level1_equal_weight=level1_equal_weight) if ref_ds is None: ref_ds = 0 # by default should be this one # get a dataset with some prominent trends in it ds4l = datasets['uni4large'] # lets select for now only meaningful features ds_orig = ds4l[:, ds4l.a.nonbogus_features] nf = ds_orig.nfeatures n = 4 # # of datasets to generate Rs, dss_rotated, dss_rotated_clean, random_shifts, random_scales \ = [], [], [], [], [] # now lets compose derived datasets by using some random # rotation(s) for i in xrange(n): ## if False: # i == ref_ds: # # Do not rotate the target space so we could check later on # # if we transform back nicely # R = np.eye(ds_orig.nfeatures) ## else: ds_ = random_affine_transformation(ds_orig, scale_fac=100, shift_fac=10) Rs.append(ds_.a.random_rotation) # reusing random data from dataset itself random_scales += [ds_.a.random_scale] random_shifts += [ds_.a.random_shift] random_noise = ds4l.samples[:, ds4l.a.bogus_features[:4]] ## if (zscore_common or zscore_all): ## # for later on testing of "precise" reconstruction ## zscore(ds_, chunks_attr=None) dss_rotated_clean.append(ds_) ds_ = ds_.copy() ds_.samples = ds_.samples + 0.1 * random_noise dss_rotated.append(ds_) # Lets test two scenarios -- in one with no noise -- we should get # close to perfect reconstruction. If noise was added -- not so good for noisy, dss in ((False, dss_rotated_clean), (True, dss_rotated)): # to verify that original datasets didn't get changed by # Hyperalignment store their idhashes of samples idhashes = [idhash(ds.samples) for ds in dss] idhashes_targets = [idhash(ds.targets) for ds in dss] mappers = ha(dss) idhashes_ = [idhash(ds.samples) for ds in dss] idhashes_targets_ = [idhash(ds.targets) for ds in dss] self.assertEqual( idhashes, idhashes_, msg="Hyperalignment must not change original data.") self.assertEqual( idhashes_targets, idhashes_targets_, msg="Hyperalignment must not change original data targets.") self.assertEqual(ref_ds, ha.ca.chosen_ref_ds) # Map data back dss_clean_back = [m.forward(ds_) for m, ds_ in zip(mappers, dss_rotated_clean)] ds_norm = np.linalg.norm(dss[ref_ds].samples) nddss = [] ndcss = [] ds_orig_Rref = np.dot(ds_orig.samples, Rs[ref_ds]) \ * random_scales[ref_ds] \ + random_shifts[ref_ds] if zscore_common or zscore_all: zscore(Dataset(ds_orig_Rref), chunks_attr=None) for ds_back in dss_clean_back: # if we used zscoring of common, we cannot rely # that range/offset could be matched, so lets use # corrcoef ndcs = np.diag(np.corrcoef(ds_back.samples.T, ds_orig_Rref.T)[nf:, :nf], k=0) ndcss += [ndcs] dds = ds_back.samples - ds_orig_Rref ndds = np.linalg.norm(dds) / ds_norm nddss += [ndds] snoisy = ('clean', 'noisy')[int(noisy)] do_labile = cfg.getboolean('tests', 'labile', default='yes') if not noisy or do_labile: # First compare correlations self.assertTrue( np.all(np.array(ndcss) >= (0.9, 0.85)[int(noisy)]), msg="Should have reconstructed original dataset more or" " less. Got correlations %s in %s case." % (ndcss, snoisy)) if not (zscore_all or zscore_common): # if we didn't zscore -- all of them should be really close self.assertTrue( np.all(np.array(nddss) <= (1e-10, 1e-1)[int(noisy)]), msg="Should have reconstructed original dataset well " "without zscoring. Got normed differences %s in %s case." % (nddss, snoisy)) elif do_labile: # otherwise they all should be somewhat close self.assertTrue( np.all(np.array(nddss) <= (.2, 3)[int(noisy)]), msg="Should have reconstructed original dataset more or" " less for all. Got normed differences %s in %s case." % (nddss, snoisy)) self.assertTrue( np.all(nddss[ref_ds] <= .09), msg="Should have reconstructed original dataset quite " "well even with zscoring. Got normed differences %s " "in %s case." % (nddss, snoisy)) # yoh: and leave 5% of difference for a chance and numerical # fluctuations ;) self.assertTrue( np.all(np.array(nddss) >= 0.95 * nddss[ref_ds]), msg="Should have reconstructed orig_ds best of all. " "Got normed differences %s in %s case with ref_ds=%d." % (nddss, snoisy, ref_ds)) # Lets see how well we do if asked to compute residuals ha = Hyperalignment(ref_ds=ref_ds, level2_niter=2, enable_ca=['training_residual_errors', 'residual_errors']) mappers = ha(dss_rotated_clean) self.assertTrue( np.all(ha.ca.training_residual_errors.sa.levels == ['1', '2:0', '2:1'])) rterrors = ha.ca.training_residual_errors.samples # just basic tests: self.assertEqual(rterrors[0, ref_ds], 0) self.assertEqual(rterrors.shape, (3, n)) rerrors = ha.ca.residual_errors.samples self.assertEqual(rerrors.shape, (1, n)) def test_hpal_svd_combo(self): # get seed dataset ds4l = datasets['uni4large'] ds_orig = ds4l[:, ds4l.a.nonbogus_features] # XXX Is this SVD mapping required? svm = SVDMapper() svm.train(ds_orig) ds_svs = svm.forward(ds_orig) ds_orig.samples = ds_svs.samples nf_true = ds_orig.nfeatures n = 4 # # of datasets to generate # Adding non-shared dimensions for each subject dss_rotated = [[]]*n for i in range(n): dss_rotated[i] = hstack( (ds_orig, ds4l[:, ds4l.a.bogus_features[i * 4: i * 4 + 4]])) # rotate data nf = dss_rotated[0].nfeatures dss_rotated = [random_affine_transformation(dss_rotated[i]) for i in xrange(n)] # Test if it is close to doing hpal+SVD in sequence outside hpal # First, as we do in sequence outside hpal ha = Hyperalignment() mappers_orig = ha(dss_rotated) dss_back = [m.forward(ds_) for m, ds_ in zip(mappers_orig, dss_rotated)] dss_mean = np.mean([sd.samples for sd in dss_back], axis=0) svm = SVDMapper() svm.train(dss_mean) dss_sv = [svm.forward(sd) for sd in dss_back] # Test for SVD dimensionality reduction even with 2 training subjects for output_dim in [1, 4]: ha = Hyperalignment(output_dim=output_dim) ha.train(dss_rotated[:2]) mappers = ha(dss_rotated) dss_back = [m.forward(ds_) for m, ds_ in zip(mappers, dss_rotated)] for sd in dss_back: assert (sd.nfeatures == output_dim) # Check if combined hpal+SVD works as expected sv_corrs = [] for sd1, sd2 in zip(dss_sv, dss_back): ndcs = np.diag(np.corrcoef(sd1.samples.T, sd2.samples.T)[nf:, :nf], k=0) sv_corrs.append(ndcs) self.assertTrue( np.all(np.abs(np.array(sv_corrs)) >= 0.95), msg="Hyperalignment with dimensionality reduction should have " "reconstructed SVD dataset. Got correlations %s." % sv_corrs) # Check if it recovers original SVs sv_corrs_orig = [] for sd in dss_back: ndcs = np.diag( np.corrcoef(sd.samples.T, ds_orig.samples.T)[nf_true:, :nf_true], k=0) sv_corrs_orig.append(ndcs) self.assertTrue( np.all(np.abs(np.array(sv_corrs_orig)) >= 0.9), msg="Expected original dimensions after " "SVD. Got correlations %s." % sv_corrs_orig) def test_hpal_joblib(self): skip_if_no_external('joblib') # get seed dataset ds4l = datasets['uni4large'] dss_rotated = [random_affine_transformation(ds4l, scale_fac=100, shift_fac=10) for i in range(4)] ha = Hyperalignment(nproc=1, enable_ca=['residual_errors']) ha.train(dss_rotated[:2]) mappers = ha(dss_rotated) ha_proc = Hyperalignment(nproc=2, enable_ca=['residual_errors']) ha_proc.train(dss_rotated[:2]) mappers_nproc = ha_proc(dss_rotated) # not sure yet why on windows only is not precise cmp_ = assert_array_equal if (not on_windows) else assert_array_almost_equal [cmp_(m.proj, mp.proj) for m, mp in zip(mappers, mappers_nproc)] # "Mappers differ when using nproc>1." cmp_(ha.ca.residual_errors.samples, ha_proc.ca.residual_errors.samples) # smoke test ha = Hyperalignment(nproc=0) mappers = ha(dss_rotated) def test_hypal_michael_caused_problem(self): from mvpa2.misc import data_generators from mvpa2.mappers.zscore import zscore # Fake data ds = data_generators.normal_feature_dataset(nfeatures=20) ds_all = [data_generators.random_affine_transformation(ds) for i in range(3)] _ = [zscore(sd, chunks_attr=None) for sd in ds_all] # Making random data per subject for testing with bias added to first subject ds_test = [np.random.rand(1, ds.nfeatures) for i in range(len(ds_all))] ds_test[0] += np.arange(1, ds.nfeatures + 1) * 100 assert(np.corrcoef(ds_test[2], ds_test[1])[0, 1] < 0.99) # that would have been ridiculous if it was # Test with varying alpha so we for sure to not have that issue now for alpha in (0, 0.01, 0.5, 0.99, 1.0): hyper09 = Hyperalignment(alpha=alpha) mappers = hyper09([sd for sd in ds_all]) ds_test_a = [m.forward(sd) for m, sd in zip(mappers, ds_test)] ds_test_a = [mappers[0].reverse(sd) for sd in ds_test_a] corr = np.corrcoef(ds_test_a[2], ds_test_a[1])[0, 1] assert(corr < 0.99) def test_hyper_ref_ds_range_checks(self): # If supplied ref_ds can't be fit into non-negative int # it should thrown an exception with self.assertRaises(ValueError): ha = Hyperalignment(ref_ds=-1.5) # But work if it can fit, int(-0.5)=0 ha = Hyperalignment(ref_ds=0.5) # or int(3.5)=3 ha = Hyperalignment(ref_ds=3.5) # if ref_ds is out of range... ds_all = [datasets['uni4small'] for i in range(3)] # Making sure it raises error if ref_ds is out of range self.assertRaises(ValueError, ha, ds_all) def test_hyper_input_dataset_check(self): # If supplied with only one dataset during training, # make sure it doesn't run multiple levels and crap out ha = Hyperalignment() ds_all = [datasets['uni4small'] for i in range(3)] # Make sure it raises TypeError if a list is not passed self.assertRaises(TypeError, ha, ds_all[0]) self.assertRaises(TypeError, ha.train, ds_all[0]) # And it doesn't crap out with a single dataset for training ha.train([ds_all[0]]) zscore(ds_all[0], chunks_attr=None) assert_array_equal(ha.commonspace, ds_all[0].samples) # make sure it accepts tuple of ndarray ha = Hyperalignment() m = ha(tuple(ds_all)) ha = Hyperalignment() dss_arr = np.empty(len(ds_all), dtype=object) for i in range(len(ds_all)): dss_arr[i] = ds_all[i] m = ha(dss_arr) def test_mean_xy(self): arr = np.random.random((10, )) # Mean with equal weights mean = arr[0] counts = 1 for num in arr[1:]: mean = mean_xy(mean, num, weights=(float(counts), 1.0)) counts += 1 np.testing.assert_allclose(mean, np.mean(arr)) # Mean with unequal weights, weights are like 1, 1, 2, 4, 8, 16, ... weights = 0.5**np.arange(10)[::-1] weights[0] = weights[1] mean2 = arr[0] for num in arr[1:]: mean2 = mean_xy(mean2, num) np.testing.assert_allclose(mean2, sum(arr * weights) / np.sum(weights)) def _test_on_swaroop_data(self): # pragma: no cover # print "Running swaroops test on data we don't have" #from mvpa2.datasets.miscfx import zscore #from mvpa2.featsel.helpers import FixedNElementTailSelector # or just for lazy ones like yarik atm #enable to test from mvpa2.suite import * subj = ['cb', 'dm', 'hj', 'kd', 'kl', 'mh', 'ph', 'rb', 'se', 'sm'] ds = [] for sub in subj: ds.append( fmri_dataset(samples=sub + '_movie.nii.gz', mask=sub + '_mask_vt.nii.gz')) ''' Compute feature ranks in each dataset based on correlation with other datasets ''' feature_scores = [ np.zeros(d.nfeatures) for d in ds ] ''' for i in range(len(subj)): ds_temp = ds[i].samples - np.mean(ds[i].samples, axis=0) ds_temp = ds_temp / np.sqrt( np.sum( np.square(ds_temp), axis=0) ) for j in range(i+1,len(subj)): ds_temp2 = ds[j].samples - np.mean(ds[j].samples, axis=0) ds_temp2 = ds_temp2 / np.sqrt( np.sum( np.square(ds_temp2), axis=0) ) corr_temp= np.asarray(np.mat(np.transpose(ds_temp))*np.mat(ds_temp2)) feature_scores[i] = feature_scores[i] + np.max(corr_temp, axis = 1) feature_scores[j] = feature_scores[j] + np.max(corr_temp, axis = 0) ''' for i, sd in enumerate(ds): ds_temp = sd.copy() zscore(ds_temp, chunks_attr=None) for j, sd2 in enumerate(ds[i+1:]): ds_temp2 = sd2.copy() zscore(ds_temp2, chunks_attr=None) corr_temp = np.dot(ds_temp.samples.T, ds_temp2.samples) feature_scores[i] = feature_scores[i] + \ np.max(corr_temp, axis = 1) feature_scores[j+i+1] = feature_scores[j+i+1] + \ np.max(corr_temp, axis = 0) for i, sd in enumerate(ds): sd.fa['bsc_scores'] = feature_scores[i] fselector = FixedNElementTailSelector(2000, tail='upper', mode='select') ds_fs = [ sd[:, fselector(sd.fa.bsc_scores)] for sd in ds] hyper = Hyperalignment() mapper_results = hyper(ds_fs) md_cd = ColumnData('labels.txt', header=['label']) md_labels = [int(x) for x in md_cd['label']] for run in range(8): md_labels[192*run:192*run+3] = [-1]*3 mkdg_ds = [] for sub in subj: mkdg_ds.append(fmri_dataset( samples=sub+'_mkdg.nii.gz', targets=md_labels, chunks=np.repeat(range(8), 192), mask=sub+'_mask_vt.nii.gz')) m = mean_group_sample(['targets', 'chunks']) mkdg_ds = [ds_.get_mapped(m) for ds_ in mkdg_ds] mkdg_ds = [ds_[ds_.sa.targets != -1] for ds_ in mkdg_ds] [zscore(ds_, param_est=('targets', [0])) for ds_ in mkdg_ds] mkdg_ds = [ds_[ds_.sa.targets != 0] for ds_ in mkdg_ds] for i, sd in enumerate(mkdg_ds): sd.fa['bsc_scores'] = feature_scores[i] mkdg_ds_fs = [ sd[:, fselector(sd.fa.bsc_scores)] for sd in mkdg_ds] mkdg_ds_mapped = [ sd.get_mapped(mapper_results[i]) for i, sd in enumerate(mkdg_ds_fs)] # within-subject classification within_acc = [] clf = clfswh['multiclass', 'linear', 'NU_SVC'][0] cvterr = CrossValidation(clf, NFoldPartitioner(), enable_ca=['confusion']) for sd in mkdg_ds_fs: wsc = cvterr(sd) within_acc.append(1-np.mean(wsc)) within_acc_mapped = [] for sd in mkdg_ds_mapped: wsc = cvterr(sd) within_acc_mapped.append(1-np.mean(wsc)) print np.mean(within_acc) print np.mean(within_acc_mapped) mkdg_ds_all = vstack(mkdg_ds_mapped) mkdg_ds_all.sa['subject'] = np.repeat(range(10), 56) mkdg_ds_all.sa['chunks'] = mkdg_ds_all.sa['subject'] bsc = cvterr(mkdg_ds_all) print 1-np.mean(bsc) mkdg_all = vstack(mkdg_ds_fs) mkdg_all.sa['chunks'] = np.repeat(range(10), 56) bsc_orig = cvterr(mkdg_all) print 1-np.mean(bsc_orig) pass def suite(): # pragma: no cover return unittest.makeSuite(HyperAlignmentTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_ifs.py000066400000000000000000000070711323370031300175020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA incremental feature search.""" from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.testing.datasets import datasets from mvpa2.base.dataset import vstack from mvpa2.datasets.base import Dataset from mvpa2.featsel.ifs import IFS from mvpa2.measures.base import CrossValidation, ProxyMeasure from mvpa2.generators.partition import NFoldPartitioner from mvpa2.generators.splitters import Splitter from mvpa2.featsel.helpers import FixedNElementTailSelector from mvpa2.mappers.fx import mean_sample, BinaryFxNode from mvpa2.misc.errorfx import mean_mismatch_error class IFSTests(unittest.TestCase): ##REF: Name was automagically refactored def get_data(self): data = np.random.standard_normal(( 100, 2, 2, 2 )) labels = np.concatenate( ( np.repeat( 0, 50 ), np.repeat( 1, 50 ) ) ) chunks = np.repeat( range(5), 10 ) chunks = np.concatenate( (chunks, chunks) ) return Dataset.from_wizard(samples=data, targets=labels, chunks=chunks) # XXX just testing based on a single classifier. Not sure if # should test for every known classifier since we are simply # testing IFS algorithm - not sensitivities @sweepargs(svm=clfswh['has_sensitivity', '!meta'][:1]) @reseed_rng() def test_ifs(self, svm): # measure for feature selection criterion and performance assesment # use the SAME clf! errorfx = mean_mismatch_error fmeasure = CrossValidation(svm, NFoldPartitioner(), postproc=mean_sample()) pmeasure = ProxyMeasure(svm, postproc=BinaryFxNode(errorfx, 'targets')) ifs = IFS(fmeasure, pmeasure, Splitter('purpose', attr_values=['train', 'test']), fselector= # go for lower tail selection as data_measure will return # errors -> low is good FixedNElementTailSelector(1, tail='lower', mode='select'), ) wdata = self.get_data() wdata.sa['purpose'] = np.repeat('train', len(wdata)) tdata = self.get_data() tdata.sa['purpose'] = np.repeat('test', len(tdata)) ds = vstack((wdata, tdata)) orig_nfeatures = ds.nfeatures ifs.train(ds) resds = ifs(ds) # fail if orig datasets are changed self.assertTrue(ds.nfeatures == orig_nfeatures) # check that the features set with the least error is selected self.assertTrue(len(ifs.ca.errors)) e = np.array(ifs.ca.errors) self.assertTrue(resds.nfeatures == e.argmin() + 1) # repeat with dataset where selection order is known wsignal = datasets['dumb2'].copy() wsignal.sa['purpose'] = np.repeat('train', len(wsignal)) tsignal = datasets['dumb2'].copy() tsignal.sa['purpose'] = np.repeat('test', len(tsignal)) signal = vstack((wsignal, tsignal)) ifs.train(signal) resds = ifs(signal) self.assertTrue((resds.samples[:,0] == signal.samples[:,0]).all()) def suite(): # pragma: no cover return unittest.makeSuite(IFSTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_iohelpers.py000066400000000000000000000236161323370031300207160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA IO helpers""" import re import os from os.path import join as pathjoin import unittest from tempfile import mkstemp import numpy as np from mvpa2.testing.tools import ok_, assert_equal, with_tempfile from mvpa2 import pymvpa_dataroot from mvpa2.datasets.eventrelated import find_events from mvpa2.misc.io import * from mvpa2.misc.fsl import * from mvpa2.misc.bv import BrainVoyagerRTC class IOHelperTests(unittest.TestCase): def test_column_data_from_file(self): ex1 = """eins zwei drei 0 1 2 3 4 5 """ fd, fpath = mkstemp('mvpa', 'test'); os.close(fd) with open(fpath, 'w') as file: file.write(ex1) # intentionally rely on defaults d = ColumnData(fpath, header=True) # check header (sort because order in dict is unpredictable) self.assertTrue(sorted(d.keys()) == ['drei', 'eins', 'zwei']) self.assertTrue(d['eins'] == [0, 3]) self.assertTrue(d['zwei'] == [1, 4]) self.assertTrue(d['drei'] == [2, 5]) # make a copy d2 = ColumnData(d) # check if identical self.assertTrue(sorted(d2.keys()) == ['drei', 'eins', 'zwei']) self.assertTrue(d2['eins'] == [0, 3]) self.assertTrue(d2['zwei'] == [1, 4]) self.assertTrue(d2['drei'] == [2, 5]) # now merge back d += d2 # same columns? self.assertTrue(sorted(d.keys()) == ['drei', 'eins', 'zwei']) # but more data self.assertEqual(d['eins'], [0, 3, 0, 3]) self.assertEqual(d['zwei'], [1, 4, 1, 4]) self.assertEqual(d['drei'], [2, 5, 2, 5]) # test file write # TODO: check if correct header_order = ['drei', 'zwei', 'eins'] d.tofile(fpath, header_order=header_order) # test sample selection dsel = d.select_samples([0, 2]) self.assertEqual(dsel['eins'], [0, 0]) self.assertEqual(dsel['zwei'], [1, 1]) self.assertEqual(dsel['drei'], [2, 2]) # test if order is read from file when available d3 = ColumnData(fpath) self.assertEqual(d3._header_order, header_order) # add another column -- should be appended as the last column # while storing d3['four'] = [0.1] * len(d3['eins']) d3.tofile(fpath) d4 = ColumnData(fpath) self.assertEqual(d4._header_order, header_order + ['four']) # cleanup and ignore stupidity try: os.remove(fpath) except WindowsError: pass def test_samples_attributes(self): sa = SampleAttributes(pathjoin(pymvpa_dataroot, 'attributes_literal.txt'), literallabels=True) ok_(sa.nrows == 1452, msg='There should be 1452 samples') # convert to event list, with some custom attr ev = find_events(**sa) ok_(len(ev) == 17 * (max(sa.chunks) + 1), msg='Not all events got detected.') ok_(ev[0]['targets'] == ev[-1]['targets'] == 'rest', msg='First and last event are rest condition.') ok_(ev[-1]['onset'] + ev[-1]['duration'] == sa.nrows, msg='Something is wrong with the timiing of the events') @with_tempfile('mvpa', 'sampleattr') def test_samples_attributes_autodtype(self, fn): payload = '''a b c 1 1.1 a 2 2.2 b 3 3.3 c 4 4.4 d''' with open(fn, 'w') as f: f.write(payload) attr = SampleAttributes(fn, header=True) assert_equal(set(attr.keys()), set(['a', 'b', 'c'])) assert_equal(attr['a'], [1, 2, 3, 4]) assert_equal(attr['b'], [1.1, 2.2, 3.3, 4.4]) assert_equal(attr['c'], ['a', 'b', 'c', 'd']) def test_fsl_ev(self): ex1 = """0.0 2.0 1 13.89 2 1 16 2.0 0.5 """ fd, fpath = mkstemp('mvpa', 'test'); os.close(fd) file = open(fpath, 'w') file.write(ex1) file.close() # intentionally rely on defaults d = FslEV3(fpath) # check header (sort because order in dict is unpredictable) self.assertTrue(sorted(d.keys()) == \ ['durations', 'intensities', 'onsets']) self.assertTrue(d['onsets'] == [0.0, 13.89, 16.0]) self.assertTrue(d['durations'] == [2.0, 2.0, 2.0]) self.assertTrue(d['intensities'] == [1.0, 1.0, 0.5]) self.assertTrue(d.nevs == 3) self.assertTrue(d.get_ev(1) == (13.89, 2.0, 1.0)) # cleanup and ignore stupidity try: os.remove(fpath) except WindowsError: pass d = FslEV3(pathjoin(pymvpa_dataroot, 'fslev3.txt')) ev = d.to_events() self.assertTrue(len(ev) == 3) self.assertTrue([e['duration'] for e in ev] == [9] * 3) self.assertTrue([e['onset'] for e in ev] == [6, 21, 35]) self.assertTrue([e['features'] for e in ev] == [[1], [1], [1]]) ev = d.to_events(label='face', chunk=0, crap=True) ev[0]['label'] = 'house' self.assertTrue(len(ev) == 3) self.assertTrue([e['duration'] for e in ev] == [9] * 3) self.assertTrue([e['onset'] for e in ev] == [6, 21, 35]) self.assertTrue([e['features'] for e in ev] == [[1], [1], [1]]) self.assertTrue([e['label'] for e in ev] == ['house', 'face', 'face']) self.assertTrue([e['chunk'] for e in ev] == [0] * 3) self.assertTrue([e['crap'] for e in ev] == [True] * 3) def test_fsl_ev2(self): attr = SampleAttributes(pathjoin(pymvpa_dataroot, 'smpl_attr.txt')) # check header (sort because order in dict is unpredictable) self.assertTrue(sorted(attr.keys()) == \ ['chunks', 'targets']) self.assertTrue(attr.nsamples == 3) def test_bv_rtc(self): """Simple testing of reading RTC files from BrainVoyager""" attr = BrainVoyagerRTC(pathjoin(pymvpa_dataroot, 'bv', 'smpl_model.rtc')) self.assertEqual(attr.ncolumns, 4, "We must have 4 colums") self.assertEqual(attr.nrows, 147, "We must have 147 rows") self.assertEqual(attr._header_order, ['l_60 B', 'r_60 B', 'l_80 B', 'r_80 B'], "We must got column names correctly") self.assertTrue(len(attr.r_60_B) == attr.nrows, "We must have got access to column by property") self.assertTrue(attr.toarray() is not None, "We must have got access to column by property") def testdesign2labels(self): """Simple testing of helper Design2Labels""" attr = BrainVoyagerRTC(pathjoin(pymvpa_dataroot, 'bv', 'smpl_model.rtc')) labels0 = design2labels(attr, baseline_label='silence') labels = design2labels(attr, baseline_label='silence', func=lambda x:x > 0.5) Nsilence = lambda x:len(np.where(np.array(x) == 'silence')[0]) nsilence0 = Nsilence(labels0) nsilence = Nsilence(labels) self.assertTrue(nsilence0 < nsilence, "We must have more silence if thr is higher") self.assertEqual(len(labels), attr.nrows, "We must have the same number of labels as rows") self.assertRaises(ValueError, design2labels, attr, baseline_label='silence', func=lambda x:x > -1.0) def testlabels2chunks(self): attr = BrainVoyagerRTC(pathjoin(pymvpa_dataroot, 'bv', 'smpl_model.rtc')) labels = design2labels(attr, baseline_label='silence') self.assertRaises(ValueError, labels2chunks, labels, 'bugga') chunks = labels2chunks(labels) self.assertEqual(len(labels), len(chunks)) # we must got them in sorted order chunks_sorted = np.sort(chunks) self.assertTrue((chunks == chunks_sorted).all()) # for this specific one we must have just 4 chunks self.assertTrue((np.unique(chunks) == range(4)).all()) def test_sensor_locations(self): sl = XAVRSensorLocations(pathjoin(pymvpa_dataroot, 'xavr1010.dat')) for var in ['names', 'pos_x', 'pos_y', 'pos_z']: self.assertTrue(len(eval('sl.' + var)) == 31) def test_fsl_glm_design(self): glm = FslGLMDesign(pathjoin(pymvpa_dataroot, 'glm.mat')) self.assertTrue(glm.mat.shape == (850, 6)) self.assertTrue(len(glm.ppheights) == 6) def test_read_fsl_design(self): fname = pathjoin(pymvpa_dataroot, 'sample_design.fsf') # use our function design = read_fsl_design(fname) # and just load manually to see either we match fine with open(fname) as f: read_lines = f.readlines() set_lines = [x for x in read_lines if x.startswith('set ')] assert_equal(len(set_lines), len(design)) # figure out which one is missing """TODO: would require the same special treatment for _files fields re_set = re.compile("set ([^)]*\)).*") for line in set_lines: key = re_set.search(line).groups()[0] if not key in design: raise AssertionError( "Key %s was not found in read FSL design" % key) key_list = [' '.join(l.split(None,2)[1:2]) for l in set_lines] for k in set(key_list): if len([key for key in key_list if key == k]) == 2: raise AssertionError( "Got the non-unique beast %s" % k) """ def suite(): # pragma: no cover return unittest.makeSuite(IOHelperTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_kernel.py000066400000000000000000000327451323370031300202070ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA kernels""" import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.base.externals import exists from mvpa2.datasets import Dataset from mvpa2.clfs.distance import squared_euclidean_distance, \ pnorm_w, pnorm_w_python import mvpa2.kernels.np as npK from mvpa2.kernels.base import PrecomputedKernel, CachedKernel try: import mvpa2.kernels.sg as sgK _has_sg = exists('shogun') except RuntimeError: _has_sg = False class KernelTests(unittest.TestCase): """Test bloody kernels """ # mvpa2.kernel stuff def kernel_equiv(self, k1, k2, accuracy=None, relative_precision=0.6): """Test how accurately two kernels agree Parameters ---------- k1 : kernel k2 : kernel accuracy : None or float To what accuracy to operate. If None, length of mantissa (precision) is taken into account together with relative_precision to provide the `accuracy`. relative_precision : float, optional What proportion of leading digits in mantissa should match between k1 and k2 (effective only if `precision` is None). """ k1m = k1.as_np()._k.copy() #; k1.as_np()._k.setflags(write=0) k2m = k2.as_np()._k.copy() #; k2.as_np()._k.setflags(write=0) # We should operate on mantissas (given exponents are the same) since # pure difference makes no sense to compare and we care about # digits in mantissa but there is no convenient way to compare # by mantissa: # unfortunately there is no assert_array_approx_equal so # we could specify number of significant digits to use. # assert_array_almost_equal relies on number of decimals AFTER # comma, so both # assert_array_almost_equal([11111.001], [11111.002], decimal=4) # and # assert_array_almost_equal([0.001], [0.002], decimal=4) # would fail, whenever # assert_approx_equal(11111.001, 11111.002, significant=3) # would be ok # assert_array_almost_equal(k1m, k2m, decimal=6) # assert_approx_equal(k1m, k2m, significant=12) if accuracy is None: # What precision should be operate at given relative_precision # and current dtype # first check if dtypes are the same ok_(k1m.dtype is k2m.dtype) k12mean = 0.5 * (np.abs(k1m) + np.abs(k2m)) scales = np.ones(k12mean.shape) # don't bother dealing with values which would be within # resolution -- ** operation would lead to NaNs or 0s k12mean_nz = k12mean >= np.finfo(k1m.dtype).resolution * 1e+1 scales[k12mean_nz] = 10 ** np.floor(np.log10(k12mean[k12mean_nz])) for a in (k1m, k2m): # lets normalize by exponent first anz = a != 0 # "remove" exponent a[anz] /= scales[anz] accuracy = 10 ** -(np.finfo(k1m.dtype).precision * relative_precision) diff = np.abs(k1m - k2m) dmax = diff.max() # and maximal difference dmax_index = np.unravel_index(np.argmax(diff), diff.shape) self.assertTrue(dmax <= accuracy, '\n%s\nand\n%s\ndiffer by %s at %s:\n %.15e\n %.15e' % (k1, k2, dmax, dmax_index, k1.as_np()._k.__getitem__(dmax_index), k2.as_np()._k.__getitem__(dmax_index))) self.assertTrue(np.all(k1m.astype('float32') == \ k2m.astype('float32')), '\n%s\nand\n%s\nare unequal as float32' % (k1, k2)) def test_linear_kernel(self): """Simplistic testing of linear kernel""" d1 = Dataset(np.asarray([range(5)] * 10, dtype=float)) lk = npK.LinearKernel() lk.compute(d1) self.assertTrue(lk._k.shape == (10, 10), "Failure computing LinearKernel (Size mismatch)") self.assertTrue((lk._k == 30).all(), "Failure computing LinearKernel") @reseed_rng() def test_precomputed_kernel(self): """Statistic Kernels""" d = np.random.randn(50, 50) nk = PrecomputedKernel(matrix=d) nk.compute() self.assertTrue((d == nk._k).all(), 'Failure setting and retrieving PrecomputedKernel data') @reseed_rng() def test_cached_kernel(self): nchunks = 5 n = 50 * nchunks d = Dataset(np.random.randn(n, 132)) d.sa.chunks = np.random.randint(nchunks, size=n) # We'll compare against an Rbf just because it has a parameter to change rk = npK.RbfKernel(sigma=1.5) # Assure two kernels are independent for this test ck = CachedKernel(kernel=npK.RbfKernel(sigma=1.5)) ck.compute(d) # Initial cache of all data self.assertTrue(ck._recomputed, 'CachedKernel was not initially computed') # Try some splitting for chunk in [d[d.sa.chunks == i] for i in range(nchunks)]: rk.compute(chunk) ck.compute(chunk) self.kernel_equiv(rk, ck) #, accuracy=1e-12) self.failIf(ck._recomputed, "CachedKernel incorrectly recomputed it's kernel") # Test what happens when a parameter changes ck.params.sigma = 3.5 ck.compute(d) self.assertTrue(ck._recomputed, "CachedKernel doesn't recompute on kernel change") rk.params.sigma = 3.5 rk.compute(d) self.assertTrue(np.all(rk._k == ck._k), 'Cached and rbf kernels disagree after kernel change') # Now test handling new data d2 = Dataset(np.random.randn(32, 43)) ck.compute(d2) self.assertTrue(ck._recomputed, "CachedKernel did not automatically recompute new data") ck.compute(d) self.assertTrue(ck._recomputed, "CachedKernel did not recompute old data which had\n" + \ "previously been computed, but had the cache overriden") if _has_sg: # Unit tests which require shogun kernels # Note - there is a loss of precision from double to float32 in SG # Not clear if this is just for CustomKernels as there are some # remaining innaccuracies in others, but this might be due to other # sources of noise. In all cases float32 should be identical @reseed_rng() def test_sg_conversions(self): nk = PrecomputedKernel(matrix=np.random.randn(50, 50)) nk.compute() skip_if_no_external('shogun', ver_dep='shogun:rev', min_version=4455) sk = nk.as_sg() sk.compute() # CustomKernels interally store as float32 ?? self.assertTrue((nk._k.astype('float32') == \ sk.as_raw_np().astype('float32')).all(), 'Failure converting arrays between NP as SG') @reseed_rng() def test_linear_sg(self): d1 = np.random.randn(105, 32) d2 = np.random.randn(41, 32) nk = npK.LinearKernel() sk = sgK.LinearSGKernel() nk.compute(d1, d2) sk.compute(d1, d2) self.kernel_equiv(nk, sk) @reseed_rng() @labile(5, 1) def test_poly_sg(self): d1 = np.random.randn(105, 32) d2 = np.random.randn(41, 32) sk = sgK.PolySGKernel() nk = npK.PolyKernel(coef0=1) ordervals = [1, 2, 3, 5, 7] for p in ordervals: sk.params.degree = p nk.params.degree = p sk.compute(d1, d2) nk.compute(d1, d2) self.kernel_equiv(nk, sk) @reseed_rng() def test_rbf_sg(self): d1 = np.random.randn(105, 32) d2 = np.random.randn(41, 32) sk = sgK.RbfSGKernel() nk = npK.RbfKernel() sigmavals = np.logspace(-2, 5, num=10) for s in sigmavals: sk.params.sigma = s nk.params.sigma = s sk.compute(d1, d2) nk.compute(d1, d2) self.kernel_equiv(nk, sk) @reseed_rng() def test_custom_sg(self): skip_if_no_external('shogun') lk = sgK.LinearSGKernel() cl = sgK.CustomSGKernel(sgK.sgk.LinearKernel) poly = sgK.PolySGKernel() poly_params = [('order', 2), ('inhomogenous', True)] if not exists('sg ge 0.6.5'): poly_params += [ ('use_normalization', False) ] custom = sgK.CustomSGKernel(sgK.sgk.PolyKernel, kernel_params=poly_params) d = np.random.randn(253, 52) lk.compute(d) cl.compute(d) poly.compute(d) custom.compute(d) self.assertTrue(np.all(lk.as_np()._k == cl.as_np()._k), 'CustomSGKernel does not agree with Linear') self.assertTrue(np.all(poly.as_np()._k == custom.as_np()._k), 'CustomSGKernel does not agree with Poly') # Older kernel stuff (ie not mvpa2.kernel) - perhaps refactor? def test_euclid_dist(self): """Euclidean distance kernel testing""" # select some block of data from already generated data = datasets['uni4large'].samples[:5, :8] ed = squared_euclidean_distance(data) # XXX not sure if that is right: 'weight' seems to be given by # feature (i.e. column), but distance is between samples (i.e. rows) # current behavior is: true_size = (5, 5) self.assertTrue(ed.shape == true_size) # slow version to compute distance matrix ed_manual = np.zeros(true_size, 'd') for i in range(true_size[0]): for j in range(true_size[1]): #ed_manual[i,j] = np.sqrt(((data[i,:] - data[j,:] )** 2).sum()) ed_manual[i, j] = ((data[i, :] - data[j, :]) ** 2).sum() ed_manual[ed_manual < 0] = 0 self.assertTrue(np.diag(ed_manual).sum() < 0.0000000001) self.assertTrue(np.diag(ed).sum() < 0.0000000001) # let see whether Kernel does the same self.assertTrue((ed - ed_manual).sum() < 0.0000001) def test_pnorm_w(self): data0 = datasets['uni4large'].samples.T weight = np.abs(data0[11, :60]) self.assertRaises(ValueError, pnorm_w_python, data0[:10, :2], p=1.2, heuristic='buga') self.assertRaises(ValueError, pnorm_w_python, data0[:10, :2], weight=weight) self.assertRaises(ValueError, pnorm_w_python, data0[:10, :2], data0[:10, :3], weight=weight) self.assertRaises(ValueError, pnorm_w, data0[:10, :2], data0[:10, :3], weight=weight) self.assertRaises(ValueError, pnorm_w, data0[:10, :2], weight=weight) # some sanity checks for did, (data1, data2, w) in enumerate( [ (data0[:2, :60], None, None), (data0[:2, :60], data0[3:4, 1:61], None), (data0[:2, :60], None, weight), (data0[:2, :60], data0[3:4, 1:61], weight), ]): # test different norms for p in [1, 2, 1.2]: kwargs = {'data1': data1, 'data2': data2, 'weight' : w, 'p' : p} d = pnorm_w(**kwargs) # default one # to assess how far we are kwargs0 = kwargs.copy() kwargs0['data2'] = np.zeros(data1.shape) d0 = pnorm_w(**kwargs0) d0norm = np.linalg.norm(d - d0, 'fro') # test different implementations for iid, d2 in enumerate( [pnorm_w_python(**kwargs), pnorm_w_python(use_sq_euclidean=True, **kwargs), pnorm_w_python(heuristic='auto', **kwargs), pnorm_w_python(use_sq_euclidean=False, **kwargs)] + [pnorm_w_python(heuristic=h, use_sq_euclidean=False, **kwargs) for h in ('auto', 'samples', 'features')]): dnorm = np.linalg.norm(d2 - d, 'fro') self.assertTrue(dnorm / d0norm < 1e-7, msg="Failed comparison of different implementations on " "data #%d, implementation #%d, p=%s. " "Norm of the difference is %g" % (did, iid, p, dnorm)) def suite(): # pragma: no cover return unittest.makeSuite(KernelTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_knn.py000066400000000000000000000044441323370031300175100ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA kNN classifier""" import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import pure_multivariate_signal from mvpa2.clfs.knn import kNN from mvpa2.clfs.distance import one_minus_correlation class KNNTests(unittest.TestCase): def test_multivariate(self): mv_perf = [] uv_perf = [] clf = kNN(k=10) for i in xrange(20): train = pure_multivariate_signal( 20, 3 ) test = pure_multivariate_signal( 20, 3 ) clf.train(train) p_mv = clf.predict( test.samples ) mv_perf.append( np.mean(p_mv==test.targets) ) clf.train(train[:, 0]) p_uv = clf.predict(test[:, 0].samples) uv_perf.append( np.mean(p_uv==test.targets) ) mean_mv_perf = np.mean(mv_perf) mean_uv_perf = np.mean(uv_perf) self.assertTrue( mean_mv_perf > 0.9 ) self.assertTrue( mean_uv_perf < mean_mv_perf ) def test_knn_state(self): train = pure_multivariate_signal( 40, 3 ) test = pure_multivariate_signal( 20, 3 ) clf = kNN(k=10) clf.train(train) clf.ca.enable(['estimates', 'predictions', 'distances']) p = clf.predict(test.samples) self.assertTrue(p == clf.ca.predictions) self.assertTrue(len(clf.ca.estimates) == 80) self.assertTrue(set(clf.ca.estimates[0].keys()) == set(test.targets)) self.assertTrue(clf.ca.distances.shape == (80,160)) self.assertTrue(not clf.ca.distances.fa is train.sa) # Those are deep-copied now by default so they should not be the same self.assertTrue(not (clf.ca.distances.fa['chunks'] is train.sa['chunks'])) self.assertTrue(not (clf.ca.distances.fa.chunks is train.sa.chunks)) def suite(): # pragma: no cover return unittest.makeSuite(KNNTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_lars.py000066400000000000000000000042271323370031300176620ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA least angle regression (LARS) classifier""" from mvpa2.testing import * skip_if_no_external('lars') from mvpa2.testing.datasets import datasets from mvpa2 import cfg from mvpa2.clfs.lars import LARS from scipy.stats import pearsonr from mvpa2.misc.data_generators import normal_feature_dataset class LARSTests(unittest.TestCase): def test_lars(self): # not the perfect dataset with which to test, but # it will do for now. #data = datasets['dumb2'] # for some reason the R code fails with the dumb data data = datasets['chirp_linear'] clf = LARS() clf.train(data) # prediction has to be almost perfect # test with a correlation pre = clf.predict(data.samples) cor = pearsonr(pre, data.targets) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(cor[0] > .8) def test_lars_state(self): #data = datasets['dumb2'] # for some reason the R code fails with the dumb data data = datasets['chirp_linear'] clf = LARS() clf.train(data) clf.ca.enable('predictions') p = clf.predict(data.samples) self.assertTrue((p == clf.ca.predictions).all()) def test_lars_sensitivities(self): data = datasets['chirp_linear'] # use LARS on binary problem clf = LARS() clf.train(data) # now ask for the sensitivities WITHOUT having to pass the dataset # again sens = clf.get_sensitivity_analyzer(force_train=False)(None) self.assertTrue(sens.shape == (1, data.nfeatures)) def suite(): # pragma: no cover return unittest.makeSuite(LARSTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_lib_afni.py000066400000000000000000000032161323370031300204610ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA atlases""" import numpy as np from mvpa2.testing import * skip_if_no_external('nibabel') import nibabel as nb from mvpa2.support.afni import lib_prep_afni_surf @sweepargs(mock_3dinfo=[False, True]) @sweepargs(is_plumb=[False, True]) @with_tempfile('.nii', 'test_plump') def test__ensure_expvol_is_plump(filename, is_plumb, mock_3dinfo): if not mock_3dinfo: # AFNI's 3dinfo is required skip_if_no_external('afni-3dinfo') data = np.random.normal(size=(2, 2, 3, 3)).astype(np.int16) affine = np.eye(4) if not is_plumb: affine[0, 1] = 2. img = nb.Nifti1Image(data, affine) img.to_filename(filename) if mock_3dinfo: # mock AFNIs 3dinfo plump_str = 'Plumb' if is_plumb else "oblique" mocked_info_lines = 'Data Axes Tilt: ' + plump_str mocked_3dinfo = lambda: mocked_info_lines func = lambda: lib_prep_afni_surf._ensure_expvol_is_plump(None, mocked_3dinfo) else: func = lambda: lib_prep_afni_surf._ensure_expvol_is_plump(filename) if is_plumb: # calling func should be ok func() else: # calling func should raise an Exception assert_raises(ValueError, func) pymvpa2-2.6.4/mvpa2/tests/test_mapper.py000066400000000000000000000453441323370031300202120ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for basic mappers''' import numpy as np # for repr from mvpa2.testing.tools import ok_, assert_raises, assert_false, assert_equal, \ assert_true, assert_array_equal, nodebug from mvpa2.testing import sweepargs from mvpa2.testing.datasets import datasets from mvpa2.mappers.flatten import FlattenMapper from mvpa2.mappers.base import ChainMapper, IdentityMapper, _verified_reverse1 from mvpa2.featsel.base import StaticFeatureSelection from mvpa2.mappers.slicing import SampleSliceMapper, StripBoundariesSamples from mvpa2.support.copy import copy from mvpa2.datasets.base import Dataset from mvpa2.base.collections import ArrayCollectable from mvpa2.mappers.flatten import ProductFlattenMapper import itertools import operator from mvpa2.base import externals # arbitrary ndarray subclass for testing class myarray(np.ndarray): pass def test_flatten(): samples_shape = (2, 2, 4) data_shape = (4,) + samples_shape data = np.arange(np.prod(data_shape)).reshape(data_shape).view(myarray) pristinedata = data.copy() target = [[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]] target = np.array(target).view(myarray) index_target = np.array([[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 0, 3], [0, 1, 0], [0, 1, 1], [0, 1, 2], [0, 1, 3], [1, 0, 0], [1, 0, 1], [1, 0, 2], [1, 0, 3], [1, 1, 0], [1, 1, 1], [1, 1, 2], [1, 1, 3]]) # test only flattening the first two dimensions fm_max = FlattenMapper(maxdims=2) fm_max.train(data) assert_equal(fm_max(data).shape, (4, 4, 4)) # array subclass survives ok_(isinstance(data, myarray)) # actually, there should be no difference between a plain FlattenMapper and # a chain that only has a FlattenMapper as the one element for fm in [FlattenMapper(space='voxel'), ChainMapper([FlattenMapper(space='voxel'), StaticFeatureSelection(slice(None))])]: # not working if untrained assert_raises(RuntimeError, fm.forward1, np.arange(np.sum(samples_shape) + 1)) fm.train(data) ok_(isinstance(fm.forward(data), myarray)) ok_(isinstance(fm.forward1(data[2]), myarray)) assert_array_equal(fm.forward(data), target) assert_array_equal(fm.forward1(data[2]), target[2]) assert_raises(ValueError, fm.forward, np.arange(4)) # all of that leaves that data unmodified assert_array_equal(data, pristinedata) # reverse mapping ok_(isinstance(fm.reverse(target), myarray)) ok_(isinstance(fm.reverse1(target[0]), myarray)) ok_(isinstance(fm.reverse(target[1:2]), myarray)) assert_array_equal(fm.reverse(target), data) assert_array_equal(fm.reverse1(target[0]), data[0]) assert_array_equal(fm.reverse1(target[0]), _verified_reverse1(fm, target[0])) assert_array_equal(fm.reverse(target[1:2]), data[1:2]) assert_raises(ValueError, fm.reverse, np.arange(14)) # check one dimensional data, treated as scalar samples oned = np.arange(5) fm.train(Dataset(oned)) # needs 2D assert_raises(ValueError, fm.forward, oned) # doesn't match mapper, since Dataset turns `oned` into (5,1) assert_raises(ValueError, fm.forward, oned) assert_equal(Dataset(oned).nfeatures, 1) # try dataset mode, with some feature attribute fattr = np.arange(np.prod(samples_shape)).reshape(samples_shape) ds = Dataset(data, fa={'awesome': fattr.copy()}) assert_equal(ds.samples.shape, data_shape) fm.train(ds) dsflat = fm.forward(ds) ok_(isinstance(dsflat, Dataset)) ok_(isinstance(dsflat.samples, myarray)) assert_array_equal(dsflat.samples, target) assert_array_equal(dsflat.fa.awesome, np.arange(np.prod(samples_shape))) assert_true(isinstance(dsflat.fa['awesome'], ArrayCollectable)) # test index creation assert_array_equal(index_target, dsflat.fa.voxel) # and back revds = fm.reverse(dsflat) ok_(isinstance(revds, Dataset)) ok_(isinstance(revds.samples, myarray)) assert_array_equal(revds.samples, data) assert_array_equal(revds.fa.awesome, fattr) assert_true(isinstance(revds.fa['awesome'], ArrayCollectable)) assert_false('voxel' in revds.fa) def test_product_flatten(): nsamples = 17 product_name_values = [('chan', ['C1', 'C2']), ('freq', np.arange(4, 20, 6)), ('time', np.arange(-200, 800, 200))] shape = (nsamples,) + tuple(len(v) for _, v in product_name_values) sample_names = ['samp%d' % i for i in xrange(nsamples)] # generate random data in four dimensions data = np.random.normal(size=shape) ds = Dataset(data, sa=dict(sample_names=sample_names)) for n, v in product_name_values: ds.a[n] = v # apply flattening to ds names, values = zip(*(product_name_values)) flattened_ds = None # test both with explicit values for factor_values and without for with_values in (False, True): # the order of False and True is critical. # In the first iteration flattened_ds is set and used in the second # iteration args = {} if with_values: factor_values = [v for n, v in product_name_values] args['factor_values'] = factor_values flattener = ProductFlattenMapper(names, **args) # test I/O (only if h5py is available) if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load import tempfile import os fd, testfn = tempfile.mkstemp('mapper.h5py', 'test_product') os.close(fd) h5save(testfn, flattener) flattener = h5load(testfn) os.unlink(testfn) if flattened_ds is None: assert_raises(ValueError, flattener.reverse, ds) else: ds_ = flattener.reverse(flattened_ds) assert_equal(ds.samples, ds_.samples) mds = flattener(ds) prod = lambda x: reduce(operator.mul, x) # ensure the size is ok assert_equal(mds.shape, (nsamples,) + (prod(shape[1:]),)) idxs = [range(len(v)) for v in values] for si in xrange(nsamples): for fi, p in enumerate(itertools.product(*idxs)): data_tup = (si,) + p x = mds[si, fi] # value should match assert_equal(data[data_tup], x.samples[0, 0]) # indices should match as well all_idxs = tuple(x.fa['chan_freq_time_indices'].value.ravel()) assert_equal(p, all_idxs) # values and indices in each dimension should match for i, (name, value) in enumerate(product_name_values): assert_equal(x.fa[name].value, value[p[i]]) assert_equal(x.fa[name + '_indices'].value, p[i]) dsr = flattener.reverse(mds) assert_equal(dsr.shape, ds.shape) names += ('foo',) flattener = ProductFlattenMapper(names) assert_raises(KeyError, flattener, ds) # for next iterations flattened_ds = mds def test_subset(): data = np.array( [[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]]) # float array doesn't work sm = StaticFeatureSelection(np.ones(16)) assert_raises(IndexError, sm.forward, data) # full mask sm = StaticFeatureSelection(slice(None)) # should not change single samples assert_array_equal(sm.forward(data[0:1].copy()), data[0:1]) # or multi-samples assert_array_equal(sm.forward(data.copy()), data) sm.train(data) # same on reverse assert_array_equal(sm.reverse(data[0:1].copy()), data[0:1]) # or multi-samples assert_array_equal(sm.reverse(data.copy()), data) # identical mappers sm_none = StaticFeatureSelection(slice(None)) sm_int = StaticFeatureSelection(np.arange(16)) sm_bool = StaticFeatureSelection(np.ones(16, dtype='bool')) sms = [sm_none, sm_int, sm_bool] # test subsets sids = [3, 4, 5, 6] bsubset = np.zeros(16, dtype='bool') bsubset[sids] = True subsets = [sids, slice(3, 7), bsubset, [3, 3, 4, 4, 6, 6, 6, 5]] # all test subset result in equivalent masks, hence should do the same to # the mapper and result in identical behavior for st in sms: for i, sub in enumerate(subsets): # shallow copy orig = copy(st) subsm = StaticFeatureSelection(sub) # should do copy-on-write for all important stuff!! orig += subsm # test if selection did its job if i == 3: # special case of multiplying features assert_array_equal(orig.forward1(data[0].copy()), subsets[i]) else: assert_array_equal(orig.forward1(data[0].copy()), sids) ## all of the above shouldn't change the original mapper #assert_array_equal(sm.get_mask(), np.arange(16)) # check for some bug catcher # no 3D input #assert_raises(IndexError, sm.forward, np.ones((3,2,1))) # no input of wrong length if __debug__: # checked only in __debug__ assert_raises(ValueError, sm.forward, np.ones(4)) # same on reverse #assert_raises(ValueError, sm.reverse, np.ones(16)) # invalid ids #assert_false(subsm.is_valid_inid(-1)) #assert_false(subsm.is_valid_inid(16)) # intended merge failures fsm = StaticFeatureSelection(np.arange(16)) assert_equal(fsm.__iadd__(None), NotImplemented) assert_equal(fsm.__iadd__(Dataset([2, 3, 4])), NotImplemented) def test_subset_filler(): sm = StaticFeatureSelection(np.arange(3)) sm_f0 = StaticFeatureSelection(np.arange(3), filler=0) sm_fm1 = StaticFeatureSelection(np.arange(3), filler=-1) sm_fnan = StaticFeatureSelection(np.arange(3), filler=np.nan) data = np.arange(12).astype(float).reshape((2, -1)) sm.train(data) data_forwarded = sm.forward(data) for m in (sm, sm_f0, sm_fm1, sm_fnan): m.train(data) assert_array_equal(data_forwarded, m.forward(data)) data_back_fm1 = sm_fm1.reverse(data_forwarded) ok_(np.all(data_back_fm1[:, 3:] == -1)) data_back_fnan = sm_fnan.reverse(data_forwarded) ok_(np.all(np.isnan(data_back_fnan[:, 3:]))) @nodebug(['ID_IN_REPR', 'MODULE_IN_REPR']) def test_repr(): # this time give mask only by its target length sm = StaticFeatureSelection(slice(None), space='myspace') # check reproduction sm_clone = eval(repr(sm)) assert_equal(repr(sm_clone), repr(sm)) @nodebug(['ID_IN_REPR', 'MODULE_IN_REPR']) def test_chainmapper(): # the chain needs at lest one mapper assert_raises(ValueError, ChainMapper, []) # a typical first mapper is to flatten cm = ChainMapper([FlattenMapper()]) # few container checks assert_equal(len(cm), 1) assert_true(isinstance(cm[0], FlattenMapper)) # now training # come up with data samples_shape = (2, 2, 4) data_shape = (4,) + samples_shape data = np.arange(np.prod(data_shape)).reshape(data_shape) target = [[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]] target = np.array(target) # if it is not trained it knows nothing cm.train(data) # a new mapper should appear when doing feature selection cm.append(StaticFeatureSelection(range(1, 16))) assert_equal(cm.forward1(data[0]).shape, (15,)) assert_equal(len(cm), 2) # multiple slicing cm.append(StaticFeatureSelection([9, 14])) assert_equal(cm.forward1(data[0]).shape, (2,)) assert_equal(len(cm), 3) # check reproduction if __debug__: # debug mode needs special test as it enhances the repr output # with module info and id() appendix for objects import mvpa2 cm_clone = eval(repr(cm)) assert_equal('#'.join(repr(cm_clone).split('#')[:-1]), '#'.join(repr(cm).split('#')[:-1])) else: cm_clone = eval(repr(cm)) assert_equal(repr(cm_clone), repr(cm)) # what happens if we retrain the whole beast an same data as before cm.train(data) assert_equal(cm.forward1(data[0]).shape, (2,)) assert_equal(len(cm), 3) # let's map something mdata = cm.forward(data) assert_array_equal(mdata, target[:, [10, 15]]) # and back rdata = cm.reverse(mdata) # original shape assert_equal(rdata.shape, data.shape) # content as far it could be restored assert_array_equal(rdata[rdata > 0], data[rdata > 0]) assert_equal(np.sum(rdata > 0), 8) # Lets construct a dataset with mapper assigned and see # if sub-selecting a feature adjusts trailing StaticFeatureSelection # appropriately ds_subsel = Dataset.from_wizard(data, mapper=cm)[:, 1] tail_sfs = ds_subsel.a.mapper[-1] assert_equal(repr(tail_sfs), 'StaticFeatureSelection(slicearg=array([14]))') def test_sampleslicemapper(): # this does nothing but Dataset.__getitem__ which is tested elsewhere -- but # at least we run it ds = datasets['uni2small'] ssm = SampleSliceMapper(slice(3, 8, 2)) sds = ssm(ds) assert_equal(len(sds), 3) def test_strip_boundary(): ds = datasets['hollow'] ds.sa['btest'] = np.repeat([0, 1], 20) sn = StripBoundariesSamples('btest', 1, 2) sds = sn(ds) assert_equal(len(sds), len(ds) - 3) for i in [19, 20, 21]: assert_false(i in sds.samples.sid) def test_transpose(): from mvpa2.mappers.shape import TransposeMapper ds = Dataset(np.arange(24).reshape(2, 3, 4), sa={'testsa': np.arange(2)}, fa={'testfa': np.arange(3)}) tp = TransposeMapper() tds = tp(ds) assert_equal(tds.shape, (3, 2, 4)) assert_true('testfa' in tds.sa) assert_true('testsa' in tds.fa) assert_false(tds.fa is tds.sa) # and back ttds = tp(tds) assert_array_equal(ttds.samples, ds.samples) assert_equal(ttds.sa, ds.sa) assert_equal(ttds.fa, ds.fa) # or this way rds = tp.reverse(tds) assert_array_equal(rds.samples, ds.samples) assert_equal(rds.sa, ds.sa) assert_equal(rds.fa, ds.fa) assert_array_equal(rds.samples, ttds.samples) assert_equal(rds.sa, ttds.sa) assert_equal(rds.fa, ttds.fa) def test_addaxis(): from mvpa2.mappers.shape import AddAxisMapper ds = Dataset(np.arange(24).reshape(2, 3, 4), sa={'testsa': np.arange(2)}, fa={'testfa': np.arange(3)}) ds0 = AddAxisMapper(pos=0)(ds) assert_array_equal(ds0.shape, (1,) + ds.shape) # sas have extra dimension assert_array_equal(ds0.sa.testsa[0], ds.sa.testsa) # fas are duplicated assert_array_equal(ds0.fa.testfa[0], ds0.fa.testfa[1]) ds1 = AddAxisMapper(pos=1)(ds) assert_array_equal(ds1.shape, (2, 1, 3, 4)) # same sample attribute assert_equal(ds1.sa, ds.sa) # fas have extra dimension assert_array_equal(ds1.fa.testfa[0], ds.fa.testfa) ds2 = AddAxisMapper(pos=2)(ds) assert_array_equal(ds2.shape, (2, 3, 1, 4)) # no change to attribute collections assert_equal(ds2.sa, ds.sa) assert_equal(ds2.fa, ds.fa) # append an axis ds3 = AddAxisMapper(pos=3)(ds) assert_array_equal(ds3.shape, ds.shape + (1,)) # reverse indexing ds_1 = AddAxisMapper(pos=-1)(ds) assert_array_equal(ds3.samples, ds_1.samples) assert_equal(ds3.sa, ds_1.sa) assert_equal(ds3.fa, ds_1.fa) # add multiple axes ds4 = AddAxisMapper(pos=4)(ds) assert_array_equal(ds4.shape, ds.shape + (1, 1)) @sweepargs( s=('i_am_the_test', range(5), np.arange(12).reshape(4, 3), Dataset(np.arange(12).reshape(4, 3)))) def test_identity_mapper(s): idm = IdentityMapper() # doesn't matter what you throw at it assert_true(idm.forward(s) is s) assert_true(idm.forward1(s) is s) assert_true(idm.reverse(s) is s) assert_true(idm.reverse1(s) is s) # even like this it should work, but type conversion # can happen assert_array_equal(_verified_reverse1(idm, s), s) assert_array_equal(idm.reverse1(s), s) def test_static_reverse_doesnt_work_after_feature_selection_tuneup_1(): ds_orig = datasets['uni2small'].copy() # doesn't matter which m = StaticFeatureSelection(np.arange(4)) m.train(ds_orig) ds = ds_orig.get_mapped(m) ds0_rev = ds.a.mapper.reverse1(ds.samples[0]) # should work assert_equal(ds0_rev.shape, (ds_orig.nfeatures,)) # direct feature selection ds_ = ds[:, [0, 2]] # should work but doesn't due to # RuntimeError: Cannot reverse-map data since the original data shape is unknown. Either set `dshape` in the constructor, or call train(). ds0_rev_ = ds_.a.mapper.reverse1(ds_.samples[0]) #ds0_rev_ = _verified_reverse1(ds_.a.mapper, ds_.samples[0]) assert_equal(ds0_rev_.shape, (ds_orig.nfeatures,)) def test_static_reverse_doesnt_work_after_feature_selection_tuneup_2(): from mvpa2.testing.tools import skip_if_no_external skip_if_no_external('nibabel') from mvpa2.datasets.mri import fmri_dataset from mvpa2 import pymvpa_dataroot from os.path import join as pathjoin ds_orig = fmri_dataset(samples=pathjoin(pymvpa_dataroot, 'bold.nii.gz'), mask=pathjoin(pymvpa_dataroot, 'mask.nii.gz'), sprefix='voxel') ds_orig_rev0 = ds_orig.a.mapper.reverse1(ds_orig.samples[0]) # would have gone all the way to 3d assert_equal(ds_orig_rev0.ndim, 3) bool_mask = np.ones((ds_orig.nfeatures,), dtype=bool) bool_mask[0] = False for idx in (bool_mask, [0, 2]): ds = ds_orig[:, idx] ds_rev0 = ds.a.mapper.reverse1(ds.samples[0]) # blow test fails since chain mapper thrown exception upon _oshape mismatch # but chain mapper silently proceeded forward doing nothing yield assert_equal, ds_rev0.ndim, 3 pymvpa2-2.6.4/mvpa2/tests/test_mapper_sp.py000066400000000000000000000127271323370031300207130ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for detrending mapper (requiring SciPy).""" import numpy as np from mvpa2.testing.tools import * skip_if_no_external('scipy') from mvpa2.datasets import Dataset, dataset_wizard from mvpa2.mappers.detrend import PolyDetrendMapper, poly_detrend def test_polydetrend(): samples_forwhole = np.array( [[1.0, 2, 3, 4, 5, 6], [-2.0, -4, -6, -8, -10, -12]], ndmin=2 ).T samples_forchunks = np.array( [[1.0, 2, 3, 3, 2, 1], [-2.0, -4, -6, -6, -4, -2]], ndmin=2 ).T chunks = [0, 0, 0, 1, 1, 1] chunks_bad = [ 0, 0, 1, 1, 1, 0] target_whole = np.array( [[-3.0, -2, -1, 1, 2, 3], [-6, -4, -2, 2, 4, 6]], ndmin=2 ).T target_chunked = np.array( [[-1.0, 0, 1, 1, 0, -1], [2, 0, -2, -2, 0, 2]], ndmin=2 ).T ds = Dataset(samples_forwhole) # this one will auto-train the mapper on first use dm = PolyDetrendMapper(polyord=1, space='police') mds = dm.forward(ds) # features are linear trends, so detrending should remove all assert_array_almost_equal(mds.samples, np.zeros(mds.shape)) # we get the information where each sample is assumed to be in the # space spanned by the polynomials assert_array_equal(mds.sa.police, np.arange(len(ds))) # hackish way to get the previous regressors into a dataset ds.sa['opt_reg_const'] = dm._regs[:,0] ds.sa['opt_reg_lin'] = dm._regs[:,1] # using these precomputed regressors, we should get the same result as # before even if we do not generate a regressor for linear dm_optreg = PolyDetrendMapper(polyord=0, opt_regs=['opt_reg_const', 'opt_reg_lin']) mds_optreg = dm_optreg.forward(ds) assert_array_almost_equal(mds_optreg, np.zeros(mds.shape)) ds = Dataset(samples_forchunks) # 'constant' detrending removes the mean mds = PolyDetrendMapper(polyord=0).forward(ds) assert_array_almost_equal( mds.samples, samples_forchunks - np.mean(samples_forchunks, axis=0)) # if there is no GLOBAL linear trend it should be identical to mean removal # even if trying to remove linear mds2 = PolyDetrendMapper(polyord=1).forward(ds) assert_array_almost_equal(mds, mds2) # chunk-wise detrending ds = dataset_wizard(samples_forchunks, chunks=chunks) dm = PolyDetrendMapper(chunks_attr='chunks', polyord=1, space='police') mds = dm.forward(ds) # features are chunkswise linear trends, so detrending should remove all assert_array_almost_equal(mds.samples, np.zeros(mds.shape)) # we get the information where each sample is assumed to be in the # space spanned by the polynomials, which is the identical linspace in both # chunks assert_array_equal(mds.sa.police, range(3) * 2) # non-matching number of samples cannot be mapped assert_raises(ValueError, dm.forward, ds[:-1]) # however, if the dataset knows about the space it is possible ds.sa['police'] = mds.sa.police # XXX this should be #mds2 = dm(ds[1:-1]) #assert_array_equal(mds[1:-1], mds2) # XXX but right now is assert_raises(NotImplementedError, dm.forward, ds[1:-1]) # Detrend must preserve the size of dataset assert_equal(mds.shape, ds.shape) # small additional test for break points # although they are no longer there ds = dataset_wizard(np.array([[1.0, 2, 3, 1, 2, 3]], ndmin=2).T, targets=chunks, chunks=chunks) mds = PolyDetrendMapper(chunks_attr='chunks', polyord=1).forward(ds) assert_array_almost_equal(mds.samples, np.zeros(mds.shape)) # test of different polyord on each chunk target_mixed = np.array( [[-1.0, 0, 1, 0, 0, 0], [2.0, 0, -2, 0, 0, 0]], ndmin=2 ).T ds = dataset_wizard(samples_forchunks.copy(), targets=chunks, chunks=chunks) mds = PolyDetrendMapper(chunks_attr='chunks', polyord=[0,1]).forward(ds) assert_array_almost_equal(mds, target_mixed) # test irregluar spacing of samples, but with corrective time info samples_forwhole = np.array( [[1.0, 4, 6, 8, 2, 9], [-2.0, -8, -12, -16, -4, -18]], ndmin=2 ).T ds = Dataset(samples_forwhole, sa={'time': samples_forwhole[:,0]}) # linear detrending that makes use of temporal info from dataset dm = PolyDetrendMapper(polyord=1, space='time') mds = dm.forward(ds) assert_array_almost_equal(mds.samples, np.zeros(mds.shape)) # and now the same stuff, but with chunking and ordered by time samples_forchunks = np.array( [[1.0, 3, 3, 2, 2, 1], [-2.0, -6, -6, -4, -4, -2]], ndmin=2 ).T chunks = [0, 1, 0, 1, 0, 1] time = [4, 4, 12, 8, 8, 12] ds = Dataset(samples_forchunks.copy(), sa={'chunks': chunks, 'time': time}) mds = PolyDetrendMapper(chunks_attr='chunks', polyord=1, space='time').forward(ds) # the whole thing must not affect the source data assert_array_equal(ds, samples_forchunks) # but if done inplace that is no longer true poly_detrend(ds, chunks_attr='chunks', polyord=1, space='time') assert_array_equal(ds, mds) pymvpa2-2.6.4/mvpa2/tests/test_mdp.py000066400000000000000000000155011323370031300174760ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for basic mappers''' import numpy as np from mvpa2.testing import * skip_if_no_external('mdp') from mvpa2.base import externals import mdp from mvpa2.mappers.mdp_adaptor import MDPNodeMapper, MDPFlowMapper, PCAMapper, \ ICAMapper from mvpa2.mappers.lle import LLEMapper from mvpa2.datasets.base import Dataset from mvpa2.base.dataset import DAE from mvpa2.misc.data_generators import normal_feature_dataset @reseed_rng() def test_mdpnodemapper(): ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) node = mdp.nodes.PCANode() mm = MDPNodeMapper(node, nodeargs={'stoptrain': ((), {'debug': True})}) mm.train(ds) fds = mm.forward(ds) if externals.versions['mdp'] >= '2.5': assert_true(hasattr(mm.node, 'cov_mtx')) assert_true(isinstance(fds, Dataset)) assert_equal(fds.samples.shape, ds.samples.shape) # set projection onto first 2 components mm.nodeargs['exec'] = ((), {'n': 2}) #should be different from above lfds = mm.forward(ds.samples) # output shape changes although the node still claim otherwise assert_equal(mm.node.output_dim, 4) assert_equal(lfds.shape[0], fds.samples.shape[0]) assert_equal(lfds.shape[1], 2) assert_array_equal(lfds, fds.samples[:, :2]) # reverse rfds = mm.reverse(fds) # even smaller size works rlfds = mm.reverse(lfds) assert_equal(rfds.samples.shape, ds.samples.shape) # retraining has to work on a new dataset too, since we copy the node # internally dsbig = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=10) mm.train(dsbig) def test_mdpflowmapper(): flow = mdp.nodes.PCANode() + mdp.nodes.SFANode() fm = MDPFlowMapper(flow) ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) fm.train(ds) assert_false(fm.flow[0].is_training()) assert_false(fm.flow[1].is_training()) fds = fm.forward(ds) assert_true(isinstance(fds, Dataset)) assert_equal(fds.samples.shape, ds.samples.shape) def test_mdpflow_additional_arguments(): skip_if_no_external('mdp', min_version='2.5') # we have no IdentityNode yet... is there analog? ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) flow = mdp.nodes.PCANode() + mdp.nodes.IdentityNode() + mdp.nodes.FDANode() # this is what it would look like in MDP itself #flow.train([[ds.samples], # [[ds.samples, ds.sa.targets]]]) assert_raises(ValueError, MDPFlowMapper, flow, node_arguments=[[],[]]) fm = MDPFlowMapper(flow, node_arguments = ([], [], [DAE('sa', 'targets')])) fm.train(ds) fds = fm.forward(ds) assert_equal(ds.samples.shape, fds.samples.shape) rds = fm.reverse(fds) assert_array_almost_equal(ds.samples, rds.samples) def test_mdpflow_additional_arguments_nones(): skip_if_no_external('mdp', min_version='2.5') # we have no IdentityNode yet... is there analog? ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) flow = mdp.nodes.PCANode() + mdp.nodes.IdentityNode() + mdp.nodes.FDANode() # this is what it would look like in MDP itself #flow.train([[ds.samples], # [[ds.samples, ds.sa.targets]]]) assert_raises(ValueError, MDPFlowMapper, flow, node_arguments=[[],[]]) fm = MDPFlowMapper(flow, node_arguments = (None, None, [ds.sa.targets])) fm.train(ds) fds = fm.forward(ds) assert_equal(ds.samples.shape, fds.samples.shape) rds = fm.reverse(fds) assert_array_almost_equal(ds.samples, rds.samples) @reseed_rng() def test_pcamapper(): # data: 40 sample feature line in 20d space (40x20; samples x features) ndlin = Dataset(np.concatenate([np.arange(40) for i in range(20)]).reshape(20,-1).T) pm = PCAMapper() # train PCA assert_raises(mdp.NodeException, pm.train, ndlin) ndlin.samples = ndlin.samples.astype('float') ndlin_noise = ndlin.copy() ndlin_noise.samples += np.random.random(size=ndlin.samples.shape) # we have no variance for more than one PCA component, hence just one # actual non-zero eigenvalue assert_raises(mdp.NodeException, pm.train, ndlin) pm.train(ndlin_noise) assert_equal(pm.proj.shape, (20, 20)) # now project data into PCA space p = pm.forward(ndlin.samples) assert_equal(p.shape, (40, 20)) # check that the mapped data can be fully recovered by 'reverse()' assert_array_almost_equal(pm.reverse(p), ndlin) @reseed_rng() def test_icamapper(): # data: 40 sample feature line in 2d space (40x2; samples x features) samples = np.vstack([np.arange(40.) for i in range(2)]).T samples -= samples.mean() samples += np.random.normal(size=samples.shape, scale=0.1) ndlin = Dataset(samples) pm = ICAMapper() try: pm.train(ndlin.copy()) assert_equal(pm.proj.shape, (2, 2)) p = pm.forward(ndlin.copy()) assert_equal(p.shape, (40, 2)) # check that the mapped data can be fully recovered by 'reverse()' assert_array_almost_equal(pm.reverse(p), ndlin) except mdp.NodeException: # do not puke if the ICA did not converge at all -- that is not our # fault but MDP's pass def test_llemapper(): skip_if_no_external('mdp', min_version='2.4') ds = Dataset(np.array([[0., 0., 0.], [0., 0., 1.], [0., 1., 0.], [1., 0., 0.], [0., 1., 1.], [1., 0., 1.], [1., 1., 0.], [1., 1., 1.]])) pm = LLEMapper(3, output_dim=2) pm.train(ds) fmapped = pm.forward(ds) assert_equal(fmapped.shape, (8, 2)) @reseed_rng() def test_nodeargs(): skip_if_no_external('mdp', min_version='2.4') ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) for svd_val in [True, False]: pcm = PCAMapper(alg='PCA', svd=svd_val) assert_equal(pcm.node.svd, svd_val) pcm.train(ds) assert_equal(pcm.node.svd, svd_val) for output_dim in [0.5, 0.95, 0.99, 10, 50, 100]: pcm = PCAMapper(alg='PCA', output_dim=output_dim) for i in range(2): # so we also test on trained one if isinstance(output_dim, float): assert_equal(pcm.node.desired_variance, output_dim) else: assert_equal(pcm.node.output_dim, output_dim) pcm.train(ds) if isinstance(output_dim, float): assert_not_equal(pcm.node.output_dim, output_dim) # some dimensions are chosen assert_true(pcm.node.output_dim > 0) pymvpa2-2.6.4/mvpa2/tests/test_meg.py000066400000000000000000000027241323370031300174710ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA MEG stuff""" from os.path import join as pathjoin from mvpa2.testing import * from mvpa2 import pymvpa_dataroot from mvpa2.misc.io.meg import TuebingenMEG class MEGTests(unittest.TestCase): def test_tuebingen_meg(self): # Use this whenever we fully switch to nose to run tests #skip_if_no_external('gzip') if not externals.exists('gzip'): return meg = TuebingenMEG(pathjoin(pymvpa_dataroot, 'tueb_meg.dat.gz')) # check basics self.assertTrue(meg.channelids == ['BG1', 'MLC11', 'EEG02']) self.assertTrue(meg.ntimepoints == 814) self.assertTrue(meg.nsamples == 4) # check correct axis order (samples x channels x timepoints) self.assertTrue(meg.data.shape == (4, 3, 814)) # check few values self.assertTrue(meg.data[0, 1, 4] == -2.318207982e-14) self.assertTrue(meg.data[3, 0, 808] == -4.30692876e-12) def suite(): # pragma: no cover return unittest.makeSuite(MEGTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_misc.py000066400000000000000000000142001323370031300176440ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA misc stuff""" from mvpa2.testing import * from mvpa2.datasets import Dataset from mvpa2.misc.fx import dual_gaussian, dual_positive_gaussian, fit2histogram from mvpa2.misc.data_generators import random_affine_transformation @reseed_rng() @sweepargs(f=(dual_gaussian, dual_positive_gaussian)) def test_dual_gaussian(f): skip_if_no_external('scipy') data = np.random.normal(size=(100, 1)) histfit = fit2histogram(np.repeat(data[None, :], 2, axis=0), f, (1000, 0.5, 0.1, 1000, 0.8, 0.05), nbins=20) H, bin_left, bin_width, fit = histfit params = fit[0] # both variances must be positive ok_(params[2] > 0) ok_(params[5] > 0) if f is dual_positive_gaussian: # both amplitudes must be positive ok_(params[0] > 0) ok_(params[3] > 0) def test_random_affine_transformation(): ds = Dataset.from_wizard(np.random.randn(8,3,2)) ds_d = random_affine_transformation(ds) # compare original to the inverse of the distortion using reported # parameters assert_array_almost_equal( np.dot((ds_d.samples - ds_d.a.random_shift) / ds_d.a.random_scale, ds_d.a.random_rotation.T), ds.samples) @reseed_rng() def test_ttest_1samp_masked(): skip_if_no_external('scipy') import numpy as np from mvpa2.misc.stats import ttest_1samp as ttest_1samp_masked # old scipy's ttest_1samp need to be conditioned since they # return 1's and 0's for when should be NaNs if externals.versions['scipy'] < '0.10.1': from scipy.stats import ttest_1samp as scipy_ttest_1samp def ttest_1samp(*args, **kwargs): t, p = scipy_ttest_1samp(*args, **kwargs) p_isnan = np.isnan(p) if np.any(p_isnan): if t.ndim == 0: t = np.nan else: t[p_isnan] = np.nan return t, p else: from scipy.stats import ttest_1samp if externals.versions['numpy'] < '1.6.2': # yoh: there is a bug in old (e.g. 1.4.1) numpy's while operating on # masked arrays -- for some reason refuses to compute var # correctly whenever only 2 elements are available and it is # multi-dimensional: # (Pydb) print np.var(a[:, 9:11], axis, ddof=1) # [540.0 --] # (Pydb) print np.var(a[:, 10:11], axis, ddof=1) # [--] # (Pydb) print np.var(a[:, 10], axis, ddof=1) # 648.0 # To overcome -- assure masks with without 2 elements in any # dimension and allow for NaN t-test results in such anyway # degenerate cases def random_mask(shape): # screw it -- let's generate quite primitive mask with return (np.arange(np.prod(shape))%2).astype(bool).reshape(shape) ndshape = (5, 6, 1, 7) # we need larger structure with this XOR mask else: def random_mask(shape): # otherwise all simple: return np.random.normal(size=shape) > -0.5 ndshape = (4, 3, 2, 1) _assert_array_equal = assert_array_almost_equal # test on some random data to match results of ttest_1samp d = np.random.normal(size=(5, 3)) for null in 0, 0.5: # 1D case _assert_array_equal(ttest_1samp (d[0], null), ttest_1samp_masked(d[0], null)) for axis in 0, 1, None: _assert_array_equal(ttest_1samp (d, null, axis=axis), ttest_1samp_masked(d, null, axis=axis)) # we do not yet support >2D ##assert_raises(AssertionError, ttest_1samp_masked, d[None,...], 0) # basic test different alternatives d = range(10) tl, pl = ttest_1samp_masked(d, 0, alternative='greater') tr, pr = ttest_1samp_masked(d, 0, alternative='less') tb, pb = ttest_1samp_masked(d, 0, alternative='two-sided') assert_equal(tl, tr) assert_equal(tl, tb) assert_equal(pl + pr, 1.0) assert_equal(pb, pl*2) assert(pl < 0.05) # clearly we should be able to reject # finally let's get to masking # 1D d = np.arange(10) _assert_array_equal(ttest_1samp (d[3:], 0), ttest_1samp_masked(d, 0, mask=[False]*3 + [True]*7)) # random mask m = random_mask(d.shape) _assert_array_equal(ttest_1samp (d[m], 0), ttest_1samp_masked(d, 0, mask=m)) # 2D masking d = np.arange(30).reshape((5,-1)) m = random_mask(d.shape) # axis=1 ts, ps = ttest_1samp_masked(d, 0, mask=m, axis=1) for d_, m_, t_, p_ in zip(d, m, ts, ps): _assert_array_equal(ttest_1samp (d_[m_], 0), (t_, p_)) # axis=0 ts, ps = ttest_1samp_masked(d, 0, mask=m, axis=0) for d_, m_, t_, p_ in zip(d.T, m.T, ts, ps): _assert_array_equal(ttest_1samp (d_[m_], 0), (t_, p_)) #5D masking d = np.random.normal(size=ndshape) m = random_mask(d.shape) for axis in range(d.ndim): for t0 in (0, 1.0): # test for different targets ts, ps = ttest_1samp_masked(d, t0, mask=m, axis=axis) target_shape = list(d.shape) n = target_shape.pop(axis) assert_equal(ts.shape, tuple(target_shape)) def iterflat_view(a): return np.rollaxis(a, axis, 0).reshape((n, -1)).T # now compare to t-test with masking if done manually on for d_, m_, t_, p_ in zip(iterflat_view(d), iterflat_view(m), ts.flatten(), ps.flatten()): _assert_array_equal(ttest_1samp (d_[m_], t0), (t_, p_)) pymvpa2-2.6.4/mvpa2/tests/test_misc_plot.py000066400000000000000000000025111323370031300207040ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA misc.plot""" from mvpa2.testing import * skip_if_no_external('pylab') import pylab as pl from matplotlib.figure import Figure from mvpa2.misc.plot.base import plot_dataset_chunks import numpy as np from glob import glob from mock import patch from os.path import join as pjoin data2d = np.random.randn(2, 4, 4) data3d = np.random.randn(3, 4, 4) data2d_3d = np.random.randn(2, 4, 4, 4) data2d_4d = np.random.randn(2, 4, 4, 4, 2) data2d_5d = np.random.randn(2, 4, 4, 4, 2, 3) from mvpa2.testing.datasets import datasets @sweepargs(dsp=datasets.items()) def test_plot_dataset_chunks(dsp): dsname, ds = dsp if ds.targets.dtype.kind == 'f': return # smoke test for now if 'chunks' not in ds.sa: return # nothing to plot in this one print dsname plot_dataset_chunks(ds[:, :2]) # could only plot two pl.close(pl.gcf()) if ds.nfeatures > 2: assert_raises(ValueError, plot_dataset_chunks, ds)pymvpa2-2.6.4/mvpa2/tests/test_misc_scatter.py000066400000000000000000000101131323370031300213700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA misc.plot.scatter""" from mvpa2.testing import * skip_if_no_external('pylab') import pylab as pl from matplotlib.figure import Figure from mvpa2.misc.plot.scatter import plot_scatter, plot_scatter_matrix, \ plot_scatter_files, _get_data, fill_nonfinites import numpy as np from glob import glob from mock import patch from os.path import join as pjoin data2d = np.random.randn(2, 2, 2) data3d = np.random.randn(3, 2, 2) data2d_3d = np.random.randn(2, 2, 2, 2) data2d_4d = np.random.randn(2, 2, 2, 2, 2) data2d_5d = np.random.randn(2, 2, 2, 2, 2, 2) def test_fill_nonfinites(): a = np.array([np.nan, np.inf, 2]) aa = a.copy() fill_nonfinites(a) assert_array_equal(a, [0, 0, 2]) aaa = fill_nonfinites(aa, inplace=False) assert_array_equal(aaa, a) assert_false(np.array_equal(aa, aaa)) def test_plot_scatter(): # smoke test with possible 2 sample datasets fig = plot_scatter(data2d) fig = plot_scatter(data2d_3d) fig = plot_scatter(data2d_4d) # smoke test with jitter fig = plot_scatter(data2d, x_jitter=0.1) fig = plot_scatter(data2d, y_jitter=0.1) fig = plot_scatter(data2d, x_jitter=0.1, y_jitter=0.1) # smoke test with mask mask = np.random.randint(0, 2, size=data2d.shape) fig = plot_scatter(data2d, mask=mask) fig = plot_scatter(data2d, mask=mask, masked_opacity=0.42) # smoke test with threshold fig = plot_scatter(data2d, thresholds=[0.2]) fig = plot_scatter(data2d, thresholds=[0.2, 0.4]) # smoke test for having a degenerate mask fig = plot_scatter(data2d, thresholds=[10000]) # smoke tests with stats fig = plot_scatter(data2d, include_stats=True) pl.close('all') # test when it should fail assert_raises(ValueError, plot_scatter, data3d) assert_raises(ValueError, plot_scatter, data2d_5d) def test_plot_scatter_matrix(): # smoke test fig = plot_scatter_matrix(data3d) # check it calls plot_scatter the right amount of times with patch('mvpa2.misc.plot.scatter.plot_scatter') as pscatter_mock: fig = plot_scatter_matrix(data3d) assert_equal(len(pscatter_mock.call_args_list), 6) @sweepargs(kw=[{}] + [{'style': s} for s in ('full', 'pair1', 'upper_triang')]) def test_plot_scatter_files_with_styles(kw): fns = glob(pjoin(pymvpa_dataroot, *('haxby2001/sub001/anatomy/lowres00*.nii.gz'.split('/')))) figs = plot_scatter_files(fns, **kw) # all of those produce 1 figure since we have only 2 files assert(figs) if kw.get('style', None) in {'full', 'pair2', 'upper_triang'}: # TODO: unify API assert(isinstance(figs[0], Figure)) else: assert(isinstance(figs, Figure)) # now let's give 3 files figs = plot_scatter_files(fns + fns[-1:], **kw) assert_equal(len(figs), 2) pl.close('all') def test_plot_scatter_files_mask(): fns = glob(pjoin(pymvpa_dataroot, *('haxby2001/sub001/anatomy/lowres00*.nii.gz'.split('/')))) # figure out reasonable threshold data = _get_data(fns[0]) min_, max_ = np.min(data), np.max(data) plot_scatter_files(fns, mask_file=fns[0], mask_thresholds=(min_ + max_)/2., masked_opacity=0.5) # now fancier ones thrs = [min_ + (max_ - min_) * 0.2, min_ + (max_ - min_) * 0.8] plot_scatter_files(fns, mask_file=fns[0], mask_thresholds=thrs, masked_opacity=0.5) plot_scatter_files(fns, mask_file=fns[0], mask_thresholds=thrs[::-1], masked_opacity=0.5) pl.close('all') def test_get_data(): fn = pjoin(pymvpa_dataroot, *('haxby2001/sub001/anatomy/lowres001.nii.gz'.split('/'))) data = _get_data(fn) assert_true(data.ndim, 3) pymvpa2-2.6.4/mvpa2/tests/test_multiclf.py000066400000000000000000000215531323370031300205410ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Multiclass Classifiers Pulled into a separate tests file for efficiency """ import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import * from mvpa2.testing.clfs import * from mvpa2.base.dataset import vstack from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner from mvpa2.generators.splitters import Splitter from mvpa2.clfs.meta import CombinedClassifier, \ BinaryClassifier, MulticlassClassifier, \ MaximalVote from mvpa2.measures.base import TransferMeasure, CrossValidation from mvpa2.mappers.fx import mean_sample, BinaryFxNode from mvpa2.misc.errorfx import mean_mismatch_error # Generate test data for testing ties #mvpa2._random_seed = 2#982220910 @reseed_rng() def get_dsties1(): ds = datasets['uni2small'].copy() dtarget = ds.targets[0] # duplicate target tied_samples = ds.targets == dtarget ds2 = ds[tied_samples].copy(deep=True) # add similar noise to both ties noise_level = 0.2 ds2.samples += \ np.random.normal(size=ds2.shape)*noise_level ds[tied_samples].samples += \ np.random.normal(size=ds2.shape)*noise_level ds2.targets[:] = 'TI' # 'E' would have been swallowed since it is S2 here ds = vstack((ds, ds2)) ds.a.ties = [dtarget, 'TI'] ds.a.ties_idx = [ds.targets == t for t in ds.a.ties] return ds _dsties1 = get_dsties1() #from mvpa2.clfs.smlr import SMLR #clf=SMLR(lm=1.0, fit_all_weights=True, enable_ca=['estimates']) #if True: @sweepargs(clf=clfswh['multiclass']) def test_multiclass_ties(clf): if 'lars' in clf.__tags__: raise SkipTest("Known to crash while running this test") ds = _dsties1 # reassign data between ties, so we know that decision is data, not order driven ds_ = ds.copy(deep=True) ds_.samples[ds.a.ties_idx[1]] = ds.samples[ds.a.ties_idx[0]] ds_.samples[ds.a.ties_idx[0]] = ds.samples[ds.a.ties_idx[1]] ok_(np.any(ds_.samples != ds.samples)) clf_ = clf.clone() clf = clf.clone() clf.ca.enable(['estimates', 'predictions']) clf_.ca.enable(['estimates', 'predictions']) te = TransferMeasure(clf, Splitter('train'), postproc=BinaryFxNode(mean_mismatch_error, 'targets'), enable_ca=['stats']) te_ = TransferMeasure(clf_, Splitter('train'), postproc=BinaryFxNode(mean_mismatch_error, 'targets'), enable_ca=['stats']) te = CrossValidation(clf, NFoldPartitioner(), postproc=mean_sample(), enable_ca=['stats']) te_ = CrossValidation(clf_, NFoldPartitioner(), postproc=mean_sample(), enable_ca=['stats']) error = te(ds) matrix = te.ca.stats.matrix # if ties were broken randomly we should have got nearly the same # number of hits for tied targets ties_indices = [te.ca.stats.labels.index(c) for c in ds.a.ties] hits = np.diag(te.ca.stats.matrix)[ties_indices] # First check is to see if we swap data between tied labels we # are getting the same results if we permute labels accordingly, # i.e. that tie resolution is not dependent on the labels order # but rather on the data te_(ds_) matrix_swapped = te_.ca.stats.matrix if False: #0 in hits: print clf, matrix, matrix_swapped print clf.ca.estimates[:, 2] - clf.ca.estimates[:,0] #print clf.ca.estimates # TODO: for now disabled all the non-compliant ones to pass the # tests. For visibility decided to skip them instead of just # exclusion and skipping only here to possibly catch crashes # which might happen before if len(set(('libsvm', 'sg', 'skl', 'gpr', 'blr') ).intersection(clf.__tags__)): raise SkipTest("Skipped %s because it is known to fail") ok_(not (np.array_equal(matrix, matrix_swapped) and 0 in hits)) # this check is valid only if ties are not broken randomly # like it is the case with SMLR if not ('random_tie_breaking' in clf.__tags__ or # since __tags__ would not go that high up e.g. in # 'SMLR' in str(clf)): assert_array_equal(hits, np.diag(matrix_swapped)[ties_indices[::-1]]) # Second check is to just see if we didn't get an obvious bias and # got 0 in one of the hits, although it is labile if cfg.getboolean('tests', 'labile', default='yes'): ok_(not 0 in hits) # this is old test... even more cumbersome/unreliable #hits_ndiff = abs(float(hits[1]-hits[0]))/max(hits) #thr = 0.9 # let's be generous and pretty much just request absent 0s #ok_(hits_ndiff < thr) @sweepargs(clf=clfswh['linear', 'svm', 'libsvm', '!meta', 'multiclass']) @sweepargs(ds=[datasets['uni%dsmall' % i] for i in 2,3,4]) def test_multiclass_classifier_cv(clf, ds): # Extending test_clf.py:ClassifiersTests.test_multiclass_classifier # Compare performance with our MaximalVote to the one done natively # by e.g. LIBSVM clf = clf.clone() clf.params.C = 1 # so it doesn't auto-adjust mclf = MulticlassClassifier(clf=clf.clone()) part = NFoldPartitioner() cv = CrossValidation(clf , part, enable_ca=['stats', 'training_stats']) mcv = CrossValidation(mclf, part, enable_ca=['stats', 'training_stats']) er = cv(ds) mer = mcv(ds) # errors should be the same assert_array_equal(er, mer) assert_equal(str(cv.ca.training_stats), str(mcv.ca.training_stats)) # if it was a binary task, cv.ca.stats would also have AUC column # while mcv would not :-/ TODO if len(ds.UT) == 2: # so just compare the matrix and ACC assert_array_equal(cv.ca.stats.matrix, mcv.ca.stats.matrix) assert_equal(cv.ca.stats.stats['ACC'], mcv.ca.stats.stats['ACC']) else: assert_equal(str(cv.ca.stats), str(mcv.ca.stats)) def test_multiclass_classifier_pass_ds_attributes(): # TODO: replicate/extend basic testing of pass_attr # in some more "basic" test_* clf = LinearCSVMC(C=1) ds = datasets['uni3small'].copy() ds.sa['ids'] = np.arange(len(ds)) mclf = MulticlassClassifier( clf, pass_attr=['ids', 'sa.chunks', 'a.bogus_features', # 'ca.raw_estimates' # this one is binary_clf x samples list ATM # that is why raw_predictions_ds was born 'ca.raw_predictions_ds', 'ca.estimates', # this one is ok 'ca.predictions', ], enable_ca=['all']) mcv = CrossValidation(mclf, NFoldPartitioner(), errorfx=None) res = mcv(ds) assert_array_equal(sorted(res.sa.ids), ds.sa.ids) assert_array_equal(res.chunks, ds.chunks[res.sa.ids]) assert_array_equal(res.sa.predictions, res.samples[:, 0]) assert_array_equal(res.sa.cvfolds, np.repeat(range(len(ds.UC)), len(ds)/len(ds.UC))) def test_multiclass_without_combiner(): # The goal is to obtain all pairwise results as the resultant dataset # avoiding even calling any combiner clf = LinearCSVMC(C=1) ds = datasets['uni3small'].copy() ds.sa['ids'] = np.arange(len(ds)) mclf = MulticlassClassifier(clf, combiner=None) # without combining results at all mcv = CrossValidation(mclf, NFoldPartitioner(), errorfx=None) res = mcv(ds) assert_equal(len(res), len(ds)) assert_equal(res.nfeatures, 3) # 3 pairs for 3 classes assert_array_equal(res.UT, ds.UT) assert_array_equal(np.unique(np.array(res.fa.targets.tolist())), ds.UT) # TODO -- check that we have all the pairs? assert_array_equal(res.sa['cvfolds'].unique, np.arange(len(ds.UC))) if mcv.ca.is_enabled('training_stats'): # we must have received a dictionary per each pair training_stats = mcv.ca.training_stats assert_equal(set(training_stats.keys()), set([('L1', 'L0'), ('L2', 'L1'), ('L2', 'L0')])) for pair, cm in training_stats.iteritems(): assert_array_equal(cm.labels, ds.UT) # we should have no predictions for absent label assert_array_equal(cm.matrix[~np.in1d(ds.UT, pair)], 0) # while altogether all samples were processed once assert_array_equal(cm.stats['P'], len(ds)) # and number of sets should be equal number of chunks here assert_equal(len(cm.sets), len(ds.UC)) pymvpa2-2.6.4/mvpa2/tests/test_neighborhood.py000066400000000000000000000255431323370031300213740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## import os import numpy as np from numpy import array from mvpa2.datasets.base import Dataset import mvpa2.misc.neighborhood as ne from mvpa2.clfs.distance import * from mvpa2.testing.tools import ok_, assert_raises, assert_false, assert_equal, \ assert_array_equal from mvpa2.testing.datasets import datasets def test_distances(): a = np.array([3,8]) b = np.array([6,4]) # test distances or yarik recalls unit testing ;) assert_equal(cartesian_distance(a, b), 5.0) assert_equal(manhattan_distance(a, b), 7) assert_equal(absmin_distance(a, b), 4) # test that fixing typo didn't impact results assert_equal(manhattan_distance(a, b), manhatten_distance(a, b)) def test_identity(): # IdentityNeighborhood() behaves like Sphere(0.5) without all of the # computation. Test on a few different coordinates. neighborhood = ne.IdentityNeighborhood() sphere = ne.Sphere(0.5) for center in ((0, 0, 0), (1, 1, 1), (0, 0), (0, )): assert_array_equal(neighborhood(center), sphere(center)) def test_sphere(): # test sphere initialization s = ne.Sphere(1) center0 = (0, 0, 0) center1 = (1, 1, 1) assert_equal(len(s(center0)), 7) target = array([array([-1, 0, 0]), array([ 0, -1, 0]), array([ 0, 0, -1]), array([0, 0, 0]), array([0, 0, 1]), array([0, 1, 0]), array([1, 0, 0])]) # test of internals -- no recomputation of increments should be done prev_increments = s._increments assert_array_equal(s(center0), target) ok_(prev_increments is s._increments) # query lower dimensionality _ = s((0, 0)) ok_(not prev_increments is s._increments) # test Sphere call target = [array([0, 1, 1]), array([1, 0, 1]), array([1, 1, 0]), array([1, 1, 1]), array([1, 1, 2]), array([1, 2, 1]), array([2, 1, 1])] res = s(center1) assert_array_equal(array(res), target) # They all should be tuples ok_(np.all([isinstance(x, tuple) for x in res])) # test for larger diameter s = ne.Sphere(4) assert_equal(len(s(center1)), 257) # test extent keyword #s = ne.Sphere(4,extent=(1,1,1)) #assert_array_equal(array(s((0,0,0))), array([[0,0,0]])) # test Errors during initialisation and call #assert_raises(ValueError, ne.Sphere, 2) #assert_raises(ValueError, ne.Sphere, 1.0) # no longer extent available assert_raises(TypeError, ne.Sphere, 1, extent=(1)) assert_raises(TypeError, ne.Sphere, 1, extent=(1.0, 1.0, 1.0)) s = ne.Sphere(1) #assert_raises(ValueError, s, (1)) if __debug__: # No float coordinates allowed for now... # XXX might like to change that ;) # assert_raises(ValueError, s, (1.0, 1.0, 1.0)) def test_sphere_distance_func(): # Test some other distance se = ne.Sphere(3) sm = ne.Sphere(3, distance_func=manhattan_distance) rese = se((10, 5)) resm = sm((10, 5)) for res in rese, resm: # basic test for duplicates (I think we forgotten to test for them) ok_(len(res) == len(set(res))) # in manhatten distance we should all be no further than 3 "steps" away ok_(np.all([np.sum(np.abs(np.array(x) - (10, 5))) <= 3 for x in resm])) # in euclidean we are taking shortcuts ;) ok_(np.any([np.sum(np.abs(np.array(x) - (10, 5))) > 3 for x in rese])) def test_sphere_scaled(): s1 = ne.Sphere(3) s = ne.Sphere(3, element_sizes=(1, 1)) # Should give exactly the same results since element_sizes are 1s for p in ((0, 0), (-23, 1)): assert_array_equal(s1(p), s(p)) ok_(len(s(p)) == len(set(s(p)))) # Raise exception if query dimensionality does not match element_sizes assert_raises(ValueError, s, (1,)) s = ne.Sphere(3, element_sizes=(1.5, 2)) assert_array_equal(s((0, 0)), [(-2, 0), (-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 0), (0, 1), (1, -1), (1, 0), (1, 1), (2, 0)]) s = ne.Sphere(1.5, element_sizes=(1.5, 1.5, 1.5)) res = s((0, 0, 0)) ok_(np.all([np.sqrt(np.sum(np.array(x)**2)) <= 1.5 for x in res])) ok_(len(res) == 7) # all neighbors so no more than 1 voxel away -- just a cube, for # some "sphere" effect radius had to be 3.0 ;) td = np.sqrt(3*1.5**2) s = ne.Sphere(td, element_sizes=(1.5, 1.5, 1.5)) res = s((0, 0, 0)) ok_(np.all([np.sqrt(np.sum(np.array(x)**2)) <= td for x in res])) ok_(np.all([np.sum(np.abs(x) > 1) == 0 for x in res])) ok_(len(res) == 27) def test_hollowsphere_basic(): hs = ne.HollowSphere(1, 0) assert_array_equal(hs((2, 1)), [(1, 1), (2, 0), (2, 2), (3, 1)]) assert_array_equal(hs((1, )), [(0,), (2,)]) assert_equal(len(hs((1,1,1))), 6) def test_hollowsphere_degenerate_neighborhood(): """Test either we sustain empty neighborhoods """ hs = ne.HollowSphere(1, inner_radius=0, element_sizes=(3,3,3)) assert_equal(len(hs((1,1,1))), 0) def test_hollowsphere_include_center(): hs = ne.HollowSphere(1, 0, include_center=True) assert_array_equal(hs((2, 1)), [(2,1), (1, 1), (2, 0), (2, 2), (3, 1)]) assert_array_equal(hs((1, )), [(1,), (0,), (2,)]) assert_equal(len(hs((1,1,1))), 7) def test_query_engine(): data = np.arange(54) # indices in 3D ind = np.transpose((np.ones((3, 3, 3)).nonzero())) # sphere generator for 3 elements diameter sphere = ne.Sphere(1) # dataset with just one "space" ds = Dataset([data, data], fa={'s_ind': np.concatenate((ind, ind))}) # and the query engine attaching the generator to the "index-space" qe = ne.IndexQueryEngine(s_ind=sphere) # cannot train since the engine does not know about the second space assert_raises(ValueError, qe.train, ds) # now do it again with a full spec ds = Dataset([data, data], fa={'s_ind': np.concatenate((ind, ind)), 't_ind': np.repeat([0,1], 27)}) qe = ne.IndexQueryEngine(s_ind=sphere, t_ind=None) qe.train(ds) # internal representation check # YOH: invalid for new implementation with lookup tables (dictionaries) #assert_array_equal(qe._searcharray, # np.arange(54).reshape(qe._searcharray.shape) + 1) # should give us one corner, collapsing the 't_ind' assert_array_equal(qe(s_ind=(0, 0, 0)), [0, 1, 3, 9, 27, 28, 30, 36]) # directly specifying an index for 't_ind' without having an ROI # generator, should give the same corner, but just once assert_array_equal(qe(s_ind=(0, 0, 0), t_ind=0), [0, 1, 3, 9]) # just out of the mask -- no match assert_array_equal(qe(s_ind=(3, 3, 3)), []) # also out of the mask -- but single match assert_array_equal(qe(s_ind=(2, 2, 3), t_ind=1), [53]) # query by id assert_array_equal(qe(s_ind=(0, 0, 0), t_ind=0), qe[0]) assert_array_equal(qe(s_ind=(0, 0, 0), t_ind=[0, 1]), qe(s_ind=(0, 0, 0))) # should not fail if t_ind is outside assert_array_equal(qe(s_ind=(0, 0, 0), t_ind=[0, 1, 10]), qe(s_ind=(0, 0, 0))) # should fail if asked about some unknown thing assert_raises(ValueError, qe.__call__, s_ind=(0, 0, 0), buga=0) # Test by using some literal feature atttribute ds.fa['lit'] = ['roi1', 'ro2', 'r3']*18 # should work as well as before assert_array_equal(qe(s_ind=(0, 0, 0)), [0, 1, 3, 9, 27, 28, 30, 36]) # should fail if asked about some unknown (yet) thing assert_raises(ValueError, qe.__call__, s_ind=(0,0,0), lit='roi1') # Create qe which can query literals as well qe_lit = ne.IndexQueryEngine(s_ind=sphere, t_ind=None, lit=None) qe_lit.train(ds) # should work as well as before assert_array_equal(qe_lit(s_ind=(0, 0, 0)), [0, 1, 3, 9, 27, 28, 30, 36]) # and subselect nicely -- only /3 ones assert_array_equal(qe_lit(s_ind=(0, 0, 0), lit='roi1'), [0, 3, 9, 27, 30, 36]) assert_array_equal(qe_lit(s_ind=(0, 0, 0), lit=['roi1', 'ro2']), [0, 1, 3, 9, 27, 28, 30, 36]) def test_cached_query_engine(): """Test cached query engine """ sphere = ne.Sphere(1) # dataset with just one "space" ds = datasets['3dlarge'] qe0 = ne.IndexQueryEngine(myspace=sphere) qec = ne.CachedQueryEngine(qe0) # and ground truth one qe = ne.IndexQueryEngine(myspace=sphere) results_ind = [] results_kw = [] def cmp_res(res1, res2): comp = [x == y for x, y in zip(res1, res2)] ok_(np.all(comp)) for iq, q in enumerate((qe, qec)): q.train(ds) # sequential train on the same should be ok in both cases q.train(ds) res_ind = [q[fid] for fid in xrange(ds.nfeatures)] res_kw = [q(myspace=x) for x in ds.fa.myspace] # test if results match cmp_res(res_ind, res_kw) results_ind.append(res_ind) results_kw.append(res_kw) # now check if results of cached were the same as of regular run cmp_res(results_ind[0], results_ind[1]) # Now do sanity checks assert_raises(ValueError, qec.train, ds[:, :-1]) assert_raises(ValueError, qec.train, ds.copy()) ds2 = ds.copy() qec.untrain() qec.train(ds2) # should be the same results on the copy cmp_res(results_ind[0], [qec[fid] for fid in xrange(ds.nfeatures)]) cmp_res(results_kw[0], [qec(myspace=x) for x in ds.fa.myspace]) ok_(qec.train(ds2) is None) # unfortunately we are not catching those #ds2.fa.myspace = ds2.fa.myspace*3 #assert_raises(ValueError, qec.train, ds2) def test_scattered_neighborhoods(): radius = 1 sphere = ne.Sphere(radius) coords = range(50) scoords, sidx = ne.scatter_neighborhoods(sphere, coords, deterministic=False) # for this specific case of 1d coordinates the coords and idx should be # identical assert_array_equal(scoords, sidx) # minimal difference of successive coordinates must be larger than the # radius of the spheres. Test only works for 1d coords and sorted return # values assert(np.diff(scoords).min() > radius) # now the same for the case where a particular coordinate appears multiple # times coords = range(10) + range(10) scoords, sidx = ne.scatter_neighborhoods(sphere, coords, deterministic=False) sidx = sorted(sidx) assert_array_equal(scoords, sidx[:5]) assert_array_equal(scoords, [i - 10 for i in sidx[5:]]) pymvpa2-2.6.4/mvpa2/tests/test_niftidataset.py000066400000000000000000000432171323370031300214020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA nifti dataset""" import numpy as np from os.path import join as pathjoin from mvpa2.testing import * if not externals.exists('nibabel'): raise SkipTest from mvpa2.base.dataset import vstack from mvpa2 import pymvpa_dataroot from mvpa2.datasets import Dataset from mvpa2.datasets.base import preprocessed_dataset from mvpa2.datasets.mri import fmri_dataset, _load_anyimg, map2nifti, \ strip_nibabel from mvpa2.datasets.eventrelated import eventrelated_dataset from mvpa2.misc.fsl import FslEV3 from mvpa2.misc.support import Event, value2idx def test_nifti_dataset(): """Basic testing of NiftiDataset """ ds = fmri_dataset(samples=pathjoin(pymvpa_dataroot, 'example4d.nii.gz'), targets=[1, 2], sprefix='voxel') assert_equal(ds.nfeatures, 294912) assert_equal(ds.nsamples, 2) assert_array_equal(ds.a.voxel_eldim, ds.a.imghdr['pixdim'][1:4]) assert_true(ds.a['voxel_dim'].value == (128, 96, 24)) # XXX move elsewhere #check that mapper honours elementsize #nb22 = np.array([i for i in data.a.mapper.getNeighborIn((1, 1, 1), 2.2)]) #nb20 = np.array([i for i in data.a.mapper.getNeighborIn((1, 1, 1), 2.0)]) #self.assertTrue(nb22.shape[0] == 7) #self.assertTrue(nb20.shape[0] == 5) merged = vstack((ds.copy(), ds), a=0) assert_equal(merged.nfeatures, 294912) assert_equal(merged.nsamples, 4) # check that the header survives for k in merged.a.imghdr.keys(): assert_array_equal(merged.a.imghdr[k], ds.a.imghdr[k]) # throw away old dataset and see if new one survives del ds assert_array_equal(merged.samples[3], merged.samples[1]) # check whether we can use a plain ndarray as mask mask = np.zeros((128, 96, 24), dtype='bool') mask[40, 20, 12] = True nddata = fmri_dataset( samples=pathjoin(pymvpa_dataroot, 'example4d.nii.gz'), targets=[1, 2], mask=mask) assert_equal(nddata.nfeatures, 1) rmap = nddata.a.mapper.reverse1(np.array([44])) assert_equal(rmap.shape, (128, 96, 24)) assert_equal(np.sum(rmap), 44) assert_equal(rmap[40, 20, 12], 44) def test_fmridataset(): # full-blown fmri dataset testing import nibabel maskimg = nibabel.load(pathjoin(pymvpa_dataroot, 'mask.nii.gz')) data = maskimg.get_data().copy() data[data > 0] = np.arange(1, np.sum(data) + 1) maskimg = nibabel.Nifti1Image(data, None, maskimg.header) ds = fmri_dataset(samples=pathjoin(pymvpa_dataroot, 'bold.nii.gz'), mask=maskimg, sprefix='subj1', add_fa={'myintmask': maskimg}) ds_alt = preprocessed_dataset( pathjoin(pymvpa_dataroot, 'bold.nii.gz'), nibabel.load, fmri_dataset, mask=maskimg, sprefix='subj1', add_fa={'myintmask': maskimg}) assert_datasets_almost_equal(ds, ds_alt) # content assert_equal(len(ds), 1452) assert_true(ds.nfeatures, 530) assert_array_equal(sorted(ds.sa.keys()), ['time_coords', 'time_indices']) assert_array_equal(sorted(ds.fa.keys()), ['myintmask', 'subj1_indices']) assert_array_equal( sorted(ds.a.keys()), ['imgaffine', 'imghdr', 'imgtype', 'mapper', 'subj1_dim', 'subj1_eldim']) # vol extent assert_equal(ds.a.subj1_dim, (40, 20, 1)) # check time assert_equal(ds.sa.time_coords[-1], 3627.5) # non-zero mask values assert_array_equal(ds.fa.myintmask, np.arange(1, ds.nfeatures + 1)) # we know that imgtype must be: ok_(getattr(nibabel, ds.a.imgtype) is nibabel.Nifti1Image) @with_tempfile(suffix='.img') def test_nifti_mapper(filename): """Basic testing of map2Nifti """ skip_if_no_external('scipy') import nibabel data = fmri_dataset( samples=pathjoin(pymvpa_dataroot, 'example4d.nii.gz'), targets=[1, 2]) # test mapping of ndarray vol = map2nifti(data, np.ones((294912,), dtype='int16')) assert_equal(vol.shape, (128, 96, 24)) assert_true((vol.get_data() == 1).all()) # test mapping of the dataset vol = map2nifti(data) assert_equal(vol.shape, (128, 96, 24, 2)) ok_(isinstance(vol, getattr(nibabel, data.a.imgtype))) # test providing custom imgtypes vol = map2nifti(data, imgtype=nibabel.Nifti1Pair) ok_(isinstance(vol, nibabel.Nifti1Pair)) # Lets generate a dataset using an alternative format (MINC) # and see if type persists volminc = nibabel.MincImage(vol.get_data(), vol.affine, vol.header) ok_(isinstance(volminc, nibabel.MincImage)) dsminc = fmri_dataset(volminc, targets=1) ok_(getattr(nibabel, dsminc.a.imgtype) is nibabel.MincImage) assert_equal(dsminc.a.imgtype, nibabel.minc.MincImage.__name__) # Lets test if we could save/load now into Analyze volume/dataset if externals.versions['nibabel'] < '1.1.0': raise SkipTest('nibabel prior 1.1.0 had an issue with types comprehension') # MINC has no 'save' capability volanal = map2nifti(dsminc, imgtype=nibabel.AnalyzeImage) ok_(isinstance(volanal, nibabel.AnalyzeImage)) volanal.to_filename(filename) dsanal = fmri_dataset(filename, targets=1) # this one is tricky since it might become Spm2AnalyzeImage ok_('AnalyzeImage' in str(dsanal.a.imgtype)) volanal_ = map2nifti(dsanal) # type got preserved ok_(isinstance(volanal_, getattr(nibabel, dsanal.a.imgtype))) def test_multiple_calls(): """Test if doing exactly the same operation twice yields the same result """ data = fmri_dataset( samples=pathjoin(pymvpa_dataroot, 'example4d.nii.gz'), targets=1, sprefix='abc') data2 = fmri_dataset( samples=pathjoin(pymvpa_dataroot, 'example4d.nii.gz'), targets=1, sprefix='abc') assert_array_equal(data.a.abc_eldim, data2.a.abc_eldim) assert_datasets_almost_equal(data, data2) def test_er_nifti_dataset(): # setup data sources tssrc = pathjoin(pymvpa_dataroot, u'bold.nii.gz') evsrc = pathjoin(pymvpa_dataroot, 'fslev3.txt') masrc = pathjoin(pymvpa_dataroot, 'mask.nii.gz') evs = FslEV3(evsrc).to_events() # load timeseries ds_orig = fmri_dataset(tssrc) # segment into events ds = eventrelated_dataset(ds_orig, evs, time_attr='time_coords') # or like this def toevents(ds): return eventrelated_dataset(ds, evs, time_attr='time_coords') import nibabel ds_alt = preprocessed_dataset( tssrc, nibabel.load, fmri_dataset, preproc_ds=toevents) assert_datasets_almost_equal(ds, ds_alt) # we ask for boxcars of 9s length, and the tr in the file header says 2.5s # hence we should get round(9.0/2.4) * np.prod((1,20,40) == 3200 features assert_equal(ds.nfeatures, 3200) assert_equal(len(ds), len(evs)) # the voxel indices are reflattened after boxcaring , but still 3D assert_equal(ds.fa.voxel_indices.shape, (ds.nfeatures, 3)) # and they have been broadcasted through all boxcars assert_array_equal(ds.fa.voxel_indices[:800], ds.fa.voxel_indices[800:1600]) # each feature got an event offset value assert_array_equal(ds.fa.event_offsetidx, np.repeat([0, 1, 2, 3], 800)) # check for all event attributes assert_true('onset' in ds.sa) assert_true('duration' in ds.sa) assert_true('features' in ds.sa) # check samples origsamples = _load_anyimg(tssrc)[0] for i, onset in \ enumerate([value2idx(e['onset'], ds_orig.sa.time_coords, 'floor') for e in evs]): assert_array_equal(ds.samples[i], origsamples[onset:onset + 4].ravel()) assert_array_equal(ds.sa.time_indices[i], np.arange(onset, onset + 4)) assert_array_equal(ds.sa.time_coords[i], np.arange(onset, onset + 4) * 2.5) for evattr in [a for a in ds.sa if a.count("event_attrs") and not a.count('event_attrs_event')]: assert_array_equal(evs[i]['_'.join(evattr.split('_')[2:])], ds.sa[evattr].value[i]) # check offset: only the last one exactly matches the tr assert_array_equal(ds.sa.orig_offset, [1, 1, 0]) # map back into voxel space, should ignore addtional features nim = map2nifti(ds) # origsamples has t,x,y,z assert_equal(nim.shape, origsamples.shape[1:] + (len(ds) * 4,)) # check shape of a single sample nim = map2nifti(ds, ds.samples[0]) # pynifti image has [t,]z,y,x assert_equal(nim.shape, (40, 20, 1, 4)) # and now with masking ds = fmri_dataset(tssrc, mask=masrc) ds = eventrelated_dataset(ds, evs, time_attr='time_coords') nnonzero = len(_load_anyimg(masrc)[0].nonzero()[0]) assert_equal(nnonzero, 530) # we ask for boxcars of 9s length, and the tr in the file header says 2.5s # hence we should get round(9.0/2.4) * np.prod((1,20,40) == 3200 features assert_equal(ds.nfeatures, 4 * 530) assert_equal(len(ds), len(evs)) # and they have been broadcasted through all boxcars assert_array_equal(ds.fa.voxel_indices[:nnonzero], ds.fa.voxel_indices[nnonzero:2 * nnonzero]) def test_er_nifti_dataset_mapping(): """Some mapping testing -- more tests is better """ # z,y,x sample_size = (4, 3, 2) # t,z,y,x samples = np.arange(120).reshape((5,) + sample_size) dsmask = np.arange(24).reshape(sample_size) % 2 import nibabel tds = fmri_dataset(nibabel.Nifti1Image(samples.T, None), mask=nibabel.Nifti1Image(dsmask.T, None)) ds = eventrelated_dataset( tds, events=[Event(onset=0, duration=2, label=1, chunk=1, features=[1000, 1001]), Event(onset=1, duration=2, label=2, chunk=1, features=[2000, 2001])]) mask = np.zeros(dsmask.shape, dtype='bool') mask[0, 0, 0] = mask[1, 0, 1] = mask[0, 0, 1] = 1 fmask = ds.a.mapper.forward1(mask.T) # select using mask in volume and all features in the other part ds_sel = ds[:, fmask] # now tests assert_array_equal(mask.reshape(24).nonzero()[0], [0, 1, 7]) # two events, 2 orig features at 2 timepoints assert_equal(ds_sel.samples.shape, (2, 4)) assert_array_equal(ds_sel.sa.features, [[1000, 1001], [2000, 2001]]) assert_array_equal(ds_sel.samples, [[ 1, 7, 25, 31], [ 25, 31, 49, 55]]) # reproducability assert_array_equal(ds_sel.samples, ds_sel.a.mapper.forward(np.rollaxis(samples.T, -1))) # reverse-mapping rmapped = ds_sel.a.mapper.reverse1(np.arange(10, 14)) assert_equal(np.rollaxis(rmapped, 0, 4).T.shape, (2,) + sample_size) expected = np.zeros((2,) + sample_size, dtype='int') expected[0, 0, 0, 1] = 10 expected[0, 1, 0, 1] = 11 expected[1, 0, 0, 1] = 12 expected[1, 1, 0, 1] = 13 assert_array_equal(np.rollaxis(rmapped, 0, 4).T, expected) def test_nifti_dataset_from3_d(): """Test NiftiDataset based on 3D volume(s) """ tssrc = pathjoin(pymvpa_dataroot, 'bold.nii.gz') masrc = pathjoin(pymvpa_dataroot, 'mask.nii.gz') # Test loading of 3D volumes # by default we are enforcing 4D, testing here with the demo 3d mask ds = fmri_dataset(masrc, mask=masrc, targets=1) assert_equal(len(ds), 1) import nibabel plain_data = nibabel.load(masrc).get_data() # Lets check if mapping back works as well assert_array_equal(plain_data, map2nifti(ds).get_data().reshape(plain_data.shape)) # test loading from a list of filenames # for now we should fail if trying to load a mix of 4D and 3D volumes # TODO: nope -- it should work and we should test here if correctly dsfull_plusone = fmri_dataset((masrc, tssrc), mask=masrc, targets=1) # Lets prepare some custom NiftiImage dsfull = fmri_dataset(tssrc, mask=masrc, targets=1) assert_equal(len(dsfull) + 1, len(dsfull_plusone)) assert_equal(dsfull.nfeatures, dsfull_plusone.nfeatures) # skip 3d mask in 0th sample assert_array_equal(dsfull.samples, dsfull_plusone[1:].samples) ds_selected = dsfull[3] nifti_selected = map2nifti(ds_selected) # Load dataset from a mix of 3D volumes # (given by filenames and NiftiImages) labels = [123, 2, 123] ds2 = fmri_dataset((masrc, masrc, nifti_selected), mask=masrc, targets=labels) assert_equal(ds2.nsamples, 3) assert_array_equal(ds2.samples[0], ds2.samples[1]) assert_array_equal(ds2.samples[2], dsfull.samples[3]) assert_array_equal(ds2.targets, labels) #def test_nifti_dataset_roi_mask_neighbors(self): # """Test if we could request neighbors within spherical ROI whenever # center is outside of the mask # """ # # # check whether we can use a plain ndarray as mask # mask_roi = np.zeros((24, 96, 128), dtype='bool') # mask_roi[12, 20, 38:42] = True # mask_roi[23, 20, 38:42] = True # far away # ds_full = nifti_dataset(samples=pathjoin(pymvpa_dataroot,'example4d'), # targets=[1,2]) # ds_roi = nifti_dataset(samples=pathjoin(pymvpa_dataroot,'example4d'), # targets=[1,2], mask=mask_roi) # # Should just work since we are in the mask # ids_roi = ds_roi.a.mapper.getNeighbors( # ds_roi.a.mapper.getOutId((12, 20, 40)), # radius=20) # self.assertTrue(len(ids_roi) == 4) # # # Trying to request feature outside of the mask # self.assertRaises(ValueError, # ds_roi.a.mapper.getOutId, # (12, 20, 37)) # # # Lets work around using full (non-masked) volume # ids_out = [] # for id_in in ds_full.a.mapper.getNeighborIn( (12, 20, 37), radius=20): # try: # ids_out.append(ds_roi.a.mapper.getOutId(id_in)) # except ValueError: # pass # self.assertTrue(ids_out == ids_roi) @with_tempfile(suffix='.nii.gz') def test_assumptions_on_nibabel_behavior(filename): if not externals.exists('nibabel'): raise SkipTest('No nibabel available') import nibabel as nb masrc = pathjoin(pymvpa_dataroot, 'mask.nii.gz') ni = nb.load(masrc) hdr = ni.header data = ni.get_data() # operate in the native endianness so that symbolic type names (e.g. 'int16') # remain the same across platforms if hdr.endianness == nb.volumeutils.swapped_code: hdr = hdr.as_byteswapped() assert_equal(hdr.get_data_dtype(), 'int16') # we deal with int file dataf = data.astype(float) dataf_dtype = dataf.dtype dataf[1, 1, 0] = 123 + 1. / 3 # and if we specify float64 as the datatype we should be in better # position hdr64 = hdr.copy() hdr64.set_data_dtype('float64') for h, t, d in ((hdr, 'int16', 2), (hdr64, 'float64', 166)): # we can only guarantee 2-digits precision while converting # into int16? weird # but infinite precision for float64 since data and file # formats match nif = nb.Nifti1Image(dataf, None, h) # Header takes over and instructs to keep it int despite dtype assert_equal(nif.header.get_data_dtype(), t) # but does not cast the data (yet?) into int16 (in case of t==int16) assert_equal(nif.get_data().dtype, dataf_dtype) # nor changes somehow within dataf assert_equal(dataf.dtype, dataf_dtype) # save it back to the file and load nif.to_filename(filename) nif_ = nb.load(filename) dataf_ = nif_.get_data() assert_equal(nif_.header.get_data_dtype(), t) assert_equal(dataf_.dtype, dataf_dtype) assert_array_almost_equal(dataf_, dataf, decimal=d) # TEST scale/intercept to be changed slope, inter = nif_.header.get_slope_inter() if t == 'int16': # it should have rescaled the data assert_not_equal(slope, 1.0) assert_not_equal(inter, 0) else: assert_true(slope in (1.0, None)) assert_true(inter in (0, None)) def test_strip_nibabel(): # lots of implicit test already, just make sure it doesn't ruin other # datasets ds = Dataset([range(5)]) strip_nibabel(ds) assert_true('imgtype' not in ds.a) # can run multiple times: idempotent ds = fmri_dataset(pathjoin( pymvpa_dataroot, 'haxby2001', 'sub001', 'BOLD', 'task001_run001', 'bold_25mm.nii.gz')) strip_nibabel(ds) # this is real strip_nibabel(ds) # this is not a copy&paste error! assert_true('imgtype' in ds.a) assert_true('imgaffine' in ds.a) assert_equal(type(ds.a.imghdr), dict) def test_4d_mask(): """ Test masking with 4D datasets If the time dimension has length 1, permit, otherwise fail""" import nibabel bold = pathjoin(pymvpa_dataroot, 'bold.nii.gz') mask = pathjoin(pymvpa_dataroot, 'mask.nii.gz') # mask4d.nii.gz is simply mask.nii.gz with an extra dimension added mask4d = pathjoin(pymvpa_dataroot, 'mask4d.nii.gz') # mask4dfail.nii.gz is mask.nii.gz copied twice in the 4th dimension mask4df = pathjoin(pymvpa_dataroot, 'mask4dfail.nii.gz') assert_equal(nibabel.load(mask).shape + (1,), nibabel.load(mask4d).shape) bold1 = fmri_dataset(bold, mask=mask) bold2 = fmri_dataset(bold, mask=mask4d) assert_equal(bold1.shape, bold2.shape) assert_raises(ValueError, fmri_dataset, bold, mask=mask4df) pymvpa2-2.6.4/mvpa2/tests/test_openfmri.py000066400000000000000000000206621323370031300205410ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA's OpenFMRI data source adaptor""" import numpy as np from os.path import join as pathjoin from nose.tools import assert_greater from mvpa2.testing import * from mvpa2.testing.sweep import sweepargs from mvpa2 import pymvpa_dataroot import mvpa2.datasets.sources.openfmri as ofm from mvpa2.datasets.sources.native import load_tutorial_data, \ load_example_fmri_dataset from mvpa2.misc.io.base import SampleAttributes from mvpa2.datasets.eventrelated import events2sample_attr, assign_conditionlabels @sweepargs( fname=('something', 'something.nii', 'something.nii.gz', 'something.hdr', 'something.hdr.gz', 'something.img', 'something.img.gz')) def test_helpers(fname): assert_equal('something', ofm._stripext(fname)) def test_openfmri_dataset(): skip_if_no_external('nibabel') of = ofm.OpenFMRIDataset(pathjoin(pymvpa_dataroot, 'haxby2001')) assert_equal(of.get_model_descriptions(), {1: 'visual object categories'}) sub_ids = of.get_subj_ids() assert_equal(sub_ids, [1, 'phantom']) assert_equal(of.get_scan_properties(), {'TR': '2.5'}) tasks = of.get_task_descriptions() assert_equal(tasks, {1: 'object viewing'}) task = tasks.keys()[0] run_ids = of.get_bold_run_ids(sub_ids[0], task) assert_equal(run_ids, range(1, 13)) task_runs = of.get_task_bold_run_ids(task) assert_equal(task_runs, {1: range(1, 13)}) # test access anatomy image assert_equal(of.get_anatomy_image(1, fname='lowres001.nii.gz').shape, (6, 10, 10)) # try to get an image that isn't there assert_raises(IOError, of.get_bold_run_image, 1, 1, 1) # defined model contrasts contrast_spec = of.get_model_contrasts(1) # one dict per task assert_equal(len(contrast_spec), 1) assert_true(1 in contrast_spec) # six defined contrasts assert_equal(len(contrast_spec[1]), 1) # check one assert_array_equal(contrast_spec[1]['face_v_house'], [-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]) orig_attrs = SampleAttributes(pathjoin(pymvpa_dataroot, 'attributes_literal.txt')) for subj, runs in task_runs.iteritems(): for run in runs: # load single run ds = of.get_bold_run_dataset(subj, task, run, flavor='1slice', mask=pathjoin(pymvpa_dataroot, 'mask.nii.gz'), add_sa='bold_moest.txt') # basic shape assert_equal(len(ds), 121) assert_equal(ds.nfeatures, 530) # functional mapper assert_equal(ds.O.shape, (121, 40, 20, 1)) # additional attributes present moest = of.get_bold_run_motion_estimates(subj, task, run) for i in range(6): moest_attr = 'bold_moest.txt_%i' % (i,) assert_true(moest_attr in ds.sa) assert_array_equal(moest[:, i], ds.sa[moest_attr].value) # check conversion of model into sample attribute events = of.get_bold_run_model(subj, task, run) for i, ev in enumerate(events): # we only have one trial per condition in the demo dataset assert_equal(ev['conset_idx'], 0) # proper enumeration and events sorted by time assert_equal(ev['onset_idx'], i) onsets = [e['onset'] for e in events] sorted_onsets = sorted(onsets) assert_array_equal(sorted_onsets, onsets) targets = events2sample_attr(events, ds.sa.time_coords, noinfolabel='rest') assert_array_equal( orig_attrs['targets'][(run - 1) * 121: run * len(ds)], targets) assert_equal(ds.sa['subj'][0], subj) # check that we can get the same result from the model dataset # (make it exercise the preproc interface too) def preproc_img(img): return img modelds = of.get_model_bold_dataset( 1, subj, flavor='1slice', preproc_img=preproc_img, modelfx=assign_conditionlabels, mask=pathjoin(pymvpa_dataroot, 'mask.nii.gz'), add_sa='bold_moest.txt') modelds = modelds[modelds.sa.run == run] targets = np.array(targets, dtype='object') targets[targets == 'rest'] = None assert_array_equal(targets, modelds.sa.targets) # more basic access motion = of.get_task_bold_attributes(1, 'bold_moest.txt', np.loadtxt) assert_equal(len(motion), 12) # one per run # one per subject, per volume, 6 estimates assert_equal([(len(m),) + m[1].shape for m in motion], [(1, 121, 6)] * 12) def test_tutorialdata_loader_masking(): skip_if_no_external('nibabel') ds_brain = load_tutorial_data(flavor='25mm') ds_nomask = load_tutorial_data(roi=None, flavor='25mm') assert_greater(ds_nomask.nfeatures, ds_brain.nfeatures) @sweepargs(roi=('brain', 'gray', 'hoc', 'vt', 'white')) def test_tutorialdata_rois(roi): skip_if_no_external('nibabel') # just checking that we have the files ds = load_tutorial_data(roi=roi, flavor='25mm') assert_equal(len(ds), 1452) @sweepargs(roi=(1, 4, 6, 12, 17, 22, 28, 32, 33, 36, 42, 43, 44)) def test_hoc_rois(roi): skip_if_no_external('nibabel') # just checking which harvard-oxford rois we can rely on in the downsampled # data ds = load_tutorial_data(roi=roi, flavor='25mm') assert_equal(len(ds), 1452) def test_roi_combo(): skip_if_no_external('nibabel') ds1 = load_tutorial_data(roi=1, flavor='25mm') ds4 = load_tutorial_data(roi=4, flavor='25mm') ds_combo = load_tutorial_data(roi=(1, 4), flavor='25mm') assert_equal(ds1.nfeatures + ds4.nfeatures, ds_combo.nfeatures) def test_corner_cases(): skip_if_no_external('nibabel') assert_raises(ValueError, load_tutorial_data, roi=range, flavor='25mm') def test_example_data(): skip_if_no_external('nibabel') # both expected flavor are present ds1 = load_example_fmri_dataset() ds25 = load_example_fmri_dataset(name='25mm', literal=True) assert_equal(len(ds1), len(ds25)) # no 25mm dataset with numerical labels assert_raises(ValueError, load_example_fmri_dataset, name='25mm') # the 25mm example is the same as the coarse tutorial data ds25tut = load_tutorial_data(flavor='25mm') assert_array_equal(ds25.samples, ds25tut.samples) def _test_datalad_openfmri_dataset(d): of = ofm.OpenFMRIDataset(d) # smoke tests that we can load the dataset's attributes etc #assert(of.get_model_descriptions()) sub_ids = of.get_subj_ids() assert(sub_ids) assert('TR' in of.get_scan_properties()) tasks = of.get_task_descriptions() assert(tasks) task = tasks.keys()[0] run_ids = of.get_bold_run_ids(sub_ids[0], task) assert(run_ids) task_runs = of.get_task_bold_run_ids(task) assert(task_runs) model_ids = of.get_model_ids() assert(model_ids) from datalad.auto import AutomagicIO with AutomagicIO(): # so necessary files get fetched if necessary # try loading first run for some task of the first subject data = of.get_model_bold_dataset(model_ids[0], sub_ids[0], task_runs.values()[0][:1]) assert(data.shape) def test_datalad_openfmri_datasets(): skip_if_no_external('nibabel') skip_if_no_external('datalad') # Test on datalad crawled datasets # TODO: deal with paths to be configurable etc # or eventually rely on datalad's API to deploy those TOPDIR = os.path.expanduser(pathjoin('~', 'datalad', 'crawl', 'openfmri')) dss = glob.glob(pathjoin(TOPDIR, 'ds*105')) if dss: for d in dss: # for now just one yield _test_datalad_openfmri_dataset, d else: raise SkipTest("No datalad openfmri datasets were found under %s" % TOPDIR)pymvpa2-2.6.4/mvpa2/tests/test_params.py000066400000000000000000000226371323370031300202110ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Parameter class.""" import unittest, copy import numpy as np from mvpa2.datasets.base import dataset_wizard from mvpa2.base.state import ClassWithCollections, ConditionalAttribute from mvpa2.base.param import Parameter, KernelParameter from mvpa2.base.constraints import * from mvpa2.testing.clfs import * from mvpa2.testing import assert_warnings class ParametrizedClassifier(SameSignClassifier): p1 = Parameter(1.0, constraints='float') kp1 = KernelParameter(100.0) class ParametrizedClassifierExtended(ParametrizedClassifier): def __init__(self): ParametrizedClassifier.__init__(self) self.kernel_params['kp2'] = \ KernelParameter(200.0, doc="Very useful param") class ChoiceClass(ClassWithCollections): C = Parameter('choice1', constraints=EnsureChoice('choice1', 'choice2'), doc="documentation") # Subclass which overrides C and changes default class ChoiceSubClass(ChoiceClass): C = Parameter('choice3', constraints=EnsureChoice('choice2', 'choice3'), doc="documentation") class BlankClass(ClassWithCollections): pass class SimpleClass(ClassWithCollections): C = Parameter(1.0, constraints=Constraints(EnsureFloat(), EnsureRange(min=0.0, max=10.0)), doc="C parameter") class MixedClass(ClassWithCollections): C = Parameter(1.0, constraints=EnsureRange(min=0), doc="C parameter") D = Parameter(3.0, constraints=EnsureRange(min=0), doc="D parameter") state1 = ConditionalAttribute(doc="bogus") class ParamsTests(unittest.TestCase): def test_blank(self): blank = BlankClass() self.assertRaises(AttributeError, blank.__getattribute__, 'ca') self.assertRaises(AttributeError, blank.__getattribute__, '') def test_deprecated_allowedtype(self): with assert_warnings( [(DeprecationWarning, "allowedtype option was deprecated in favor of constraints. " "Adjust your code, provided value 'str' was ignored")]): p = Parameter(1.0, allowedtype="str") self.assertRaises(AttributeError, lambda p: p.allowedtype, p) self.assertEqual(p.constraints, None) def test_choice(self): c = ChoiceClass() self.assertEqual(c.params.C, 'choice1') self.assertRaises(ValueError, c.params.__setattr__, 'C', 'bu') self.assertRaises(ValueError, c.params.__setattr__, 'C', 'choice3') def test_choice_subclass(self): c = ChoiceSubClass() self.assertEqual(c.params.C, 'choice3') self.assertRaises(ValueError, c.params.__setattr__, 'C', 'bu') def test_simple(self): simple = SimpleClass() self.assertEqual(len(simple.params.items()), 1) self.assertRaises(AttributeError, simple.__getattribute__, 'dummy') self.assertRaises(AttributeError, simple.__getattribute__, '') self.assertEqual(simple.params.C, 1.0) self.assertEqual(simple.params.is_set("C"), False) self.assertEqual(simple.params.is_set(), False) self.assertEqual(simple.params["C"].is_default, True) self.assertEqual(simple.params["C"].equal_default, True) simple.params.C = 1.0 # we are not actually setting the value if == default self.assertEqual(simple.params["C"].is_default, True) self.assertEqual(simple.params["C"].equal_default, True) simple.params.C = 10.0 self.assertEqual(simple.params.is_set("C"), True) self.assertEqual(simple.params.is_set(), True) self.assertEqual(simple.params["C"].is_default, False) self.assertEqual(simple.params["C"].equal_default, False) self.assertEqual(simple.params.C, 10.0) simple.params["C"].reset_value() self.assertEqual(simple.params.is_set("C"), True) # TODO: Test if we 'train' a classifier f we get is_set to false self.assertEqual(simple.params.C, 1.0) self.assertRaises(AttributeError, simple.params.__getattribute__, 'B') # set int but get float simple.params.C = 10 self.assertTrue(isinstance(simple.params.C, float)) # wrong type causes exception self.assertRaises(ValueError, simple.params.__setattr__, 'C', 'somestr') # value < min causes exception self.assertRaises(ValueError, simple.params.__setattr__, 'C', -123.4) # value > max causes exception self.assertRaises(ValueError, simple.params.__setattr__, 'C', 123.4) # check for presence of the constraints description self.assertTrue(simple._paramsdoc[0][1].find('Constraints: ') > 0) def test_mixed(self): mixed = MixedClass() self.assertEqual(len(mixed.params.items()), 2) self.assertEqual(len(mixed.ca.items()), 1) self.assertRaises(AttributeError, mixed.__getattribute__, 'kernel_params') self.assertEqual(mixed.params.C, 1.0) self.assertEqual(mixed.params.is_set("C"), False) self.assertEqual(mixed.params.is_set(), False) mixed.params.C = 10.0 self.assertEqual(mixed.params.is_set("C"), True) self.assertEqual(mixed.params.is_set("D"), False) self.assertEqual(mixed.params.is_set(), True) self.assertEqual(mixed.params.D, 3.0) def test_classifier(self): clf = ParametrizedClassifier() self.assertEqual(len(clf.params.items()), 2) # + retrainable self.assertEqual(len(clf.kernel_params.items()), 1) clfe = ParametrizedClassifierExtended() self.assertEqual(len(clfe.params.items()), 2) self.assertEqual(len(clfe.kernel_params.items()), 2) self.assertEqual(len(clfe.kernel_params.listing), 2) # check assignment once again self.assertEqual(clfe.kernel_params.kp2, 200.0) clfe.kernel_params.kp2 = 201.0 self.assertEqual(clfe.kernel_params.kp2, 201.0) self.assertEqual(clfe.kernel_params.is_set("kp2"), True) clfe.train(dataset_wizard(samples=[[0,0]], targets=[1], chunks=[1])) self.assertEqual(clfe.kernel_params.is_set("kp2"), False) self.assertEqual(clfe.kernel_params.is_set(), False) self.assertEqual(clfe.params.is_set(), False) def test_incorrect_parameter_error(self): # Just a sample class from mvpa2.generators.partition import NFoldPartitioner try: spl = NFoldPartitioner(1, incorrect=None) raise AssertionError("Must have failed with an exception here " "due to incorrect parameter") except Exception, e: estr = str(e) self.assertTrue(not "calling_time" in estr, msg="must give valid parameters for partitioner, " "not .ca's. Got: \n\t%r" % estr) # sample parameters which should be present for p in 'count', 'disable_ca', 'postproc': self.assertTrue(p in estr) def test_choices(self): # Test doc strings for parameters with choices class WithChoices(ClassWithCollections): C = Parameter('choice1', constraints=EnsureChoice('choice1', 'choice2'), doc="documentation") # We need __init__ to get 'custom' docstring def __init__(self, **kwargs): super(type(self), self).__init__(**kwargs) c = WithChoices() self.assertRaises(ValueError, c.params.__setattr__, 'C', 'bu') c__doc__ = c.__init__.__doc__.replace('"', "'") # Will currently fail due to unfixed _paramdoc of Parameter class #self.assertTrue('choice2' in c__doc__) #self.assertTrue("(Default: 'choice1')" in c__doc__) # But we will not (at least for now) list choices if there are # non-strings class WithFuncChoices(ClassWithCollections): C = Parameter('choice1', constraints=EnsureChoice('choice1', np.sum), doc="documentation") # We need __init__ to get 'custom' docstring def __init__(self, **kwargs): super(type(self), self).__init__(**kwargs) cf = WithFuncChoices() self.assertRaises(ValueError, cf.params.__setattr__, 'C', 'bu') cf.params.C = np.sum cf__doc__ = cf.__init__.__doc__.replace('"', "'") # Will currently fail due to unfixed _paramdoc of Parameter class #self.assertTrue('choice2' in c__doc__) #self.assertTrue("(Default: 'choice1')" in c__doc__) #self.assertTrue("(Default: 'choice1')" in cf__doc__) def test_simple_specs(self): p = Parameter(1.0, constraints='int') self.assertTrue(p.value is 1) self.assertTrue(p.constraints is constraint_spec_map['int']) self.assertRaises(ValueError, Parameter, 'a', constraints='int') self.assertRaises(ValueError, Parameter, 1.0, constraints='str') def suite(): # pragma: no cover return unittest.makeSuite(ParamsTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_perturbsensana.py000066400000000000000000000041051323370031300217500ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA perturbation sensitivity analyzer.""" import numpy as np from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.datasets.base import Dataset from mvpa2.measures.noiseperturbation import NoisePerturbationSensitivity from mvpa2.generators.partition import NFoldPartitioner from mvpa2.measures.base import CrossValidation class PerturbationSensitivityAnalyzerTests(unittest.TestCase): @reseed_rng() def setUp(self): data = np.random.standard_normal(( 100, 3, 4, 2 )) labels = np.concatenate( ( np.repeat( 0, 50 ), np.repeat( 1, 50 ) ) ) chunks = np.repeat( range(5), 10 ) chunks = np.concatenate( (chunks, chunks) ) mask = np.ones( (3, 4, 2), dtype='bool') mask[0,0,0] = 0 mask[1,3,1] = 0 self.dataset = Dataset.from_wizard(samples=data, targets=labels, chunks=chunks, mask=mask) def test_perturbation_sensitivity_analyzer(self): # compute N-1 cross-validation as datameasure cv = CrossValidation(sample_clf_lin, NFoldPartitioner()) # do perturbation analysis using gaussian noise pa = NoisePerturbationSensitivity(cv, noise=np.random.normal) # run analysis map = pa(self.dataset) # check for correct size of map self.assertTrue(map.nfeatures == self.dataset.nfeatures) # dataset is noise -> mean sensitivity should be zero self.assertTrue(-0.2 < np.mean(map) < 0.2) def suite(): # pragma: no cover return unittest.makeSuite(PerturbationSensitivityAnalyzerTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_plr.py000066400000000000000000000027651323370031300175230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA logistic regression classifier""" import numpy as np from mvpa2.clfs.plr import PLR from mvpa2.testing import * from mvpa2.testing.datasets import datasets class PLRTests(unittest.TestCase): def test_plr(self): data = datasets['dumb2'] clf = PLR() clf.train(data) # prediction has to be perfect self.assertTrue((clf.predict(data.samples) == data.targets).all()) def test_plr_state(self): data = datasets['dumb2'] clf = PLR() clf.train(data) # Also get "sensitivity". Was introduced to check a bug with # processing dataset with numeric labels sa = clf.get_sensitivity_analyzer() sens = sa(data) clf.ca.enable('estimates') clf.ca.enable('predictions') p = clf.predict(data.samples) self.assertTrue((p == clf.ca.predictions).all()) self.assertTrue(np.array(clf.ca.estimates).shape == np.array(p).shape) def suite(): # pragma: no cover return unittest.makeSuite(PLRTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_procrust.py000066400000000000000000000165321323370031300206040ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Procrustean mapper""" import unittest import numpy as np import itertools from numpy.linalg import norm from mvpa2.base import externals from mvpa2.datasets.base import dataset_wizard from mvpa2.testing import * from mvpa2.testing.datasets import * from mvpa2.mappers.procrustean import ProcrusteanMapper svds = ['numpy'] if externals.exists('liblapack.so'): svds += ['dgesvd'] if externals.exists('scipy'): svds += ['scipy'] class ProcrusteanMapperTests(unittest.TestCase): @sweepargs(oblique=(False,True)) @sweepargs(svd=svds) @reseed_rng() def test_simple(self, svd, oblique): d_orig = datasets['uni2large'].samples d_orig2 = datasets['uni4large'].samples for sdim, nf_s, nf_t, full_test \ in (('Same 2D', 2, 2, True), ('Same 10D', 10, 10, True), ('2D -> 3D', 2, 3, True), ('3D -> 2D', 3, 2, False)): # figure out some "random" rotation d = max(nf_s, nf_t) R = get_random_rotation(nf_s, nf_t, d_orig) if nf_s == nf_t: adR = np.abs(1.0 - np.linalg.det(R)) self.assertTrue(adR < 1e-10, "Determinant of rotation matrix should " "be 1. Got it 1+%g" % adR) self.assertTrue(norm(np.dot(R, R.T) - np.eye(R.shape[0])) < 1e-10) for (s, scaling), demean in itertools.product( ((0.3, True), (1.0, False)), (False, True)): pm = ProcrusteanMapper(scaling=scaling, oblique=oblique, svd=svd, demean=demean) # pm2 = ProcrusteanMapper(scaling=scaling, oblique=oblique) if demean: t1, t2 = d_orig[23, 1], d_orig[22, 1] else: t1, t2 = 0, 0 full_test = False # although runs, not intended to perform properly # Create source/target data d = d_orig[:, :nf_s] d_s = d + t1 d_t = np.dot(s * d, R) + t2 # train bloody mapper(s) ds = dataset_wizard(samples=d_s, targets=d_t) pm.train(ds) ## not possible with new interface #pm2.train(d_s, d_t) ## verify that both created the same transformation #npm2proj = norm(pm.proj - pm2.proj) #self.assertTrue(npm2proj <= 1e-10, # msg="Got transformation different by norm %g." # " Had to be less than 1e-10" % npm2proj) #self.assertTrue(norm(pm._offset_in - pm2._offset_in) <= 1e-10) #self.assertTrue(norm(pm._offset_out - pm2._offset_out) <= 1e-10) # do forward transformation on the same source data d_s_f = pm.forward(d_s) self.assertEqual(d_s_f.shape, d_t.shape, msg="Mapped shape should be identical to the d_t") dsf = d_s_f - d_t ndsf = norm(dsf)/norm(d_t) if full_test: dsR = norm(s*R - pm.proj) if not oblique: self.assertTrue(dsR <= 1e-12, msg="We should have got reconstructed rotation+scaling " "perfectly. Now got d scale*R=%g" % dsR) self.assertTrue(np.abs(s - pm._scale) < 1e-12, msg="We should have got reconstructed scale " "perfectly. Now got %g for %g" % (pm._scale, s)) self.assertTrue(ndsf <= 1e-12, msg="%s: Failed to get to the target space correctly." " normed error=%g" % (sdim, ndsf)) # Test if we get back d_s_f_r = pm.reverse(d_s_f) # Test if recon proj is true inverse except for high->low projection if nf_s <= nf_t: assert_almost_equal(np.dot(pm._proj, pm._recon),np.eye(pm._proj.shape[0]), err_msg="Deviation from identity matrix is too large") dsfr = d_s_f_r - d_s ndsfr = norm(dsfr)/norm(d_s) if full_test: self.assertTrue(ndsfr <= 1e-12, msg="%s: Failed to reconstruct into source space correctly." " normed error=%g" % (sdim, ndsfr)) @reseed_rng() def test_reflection(self, rep=10): for i in range(rep): from mvpa2.testing.datasets import get_random_rotation d = np.random.random((100, 2)) T = get_random_rotation(d.shape[1]) d2 = np.dot(d, T) # scale it up a bit d2 *= 1.2 # add a reflection by flipping the first dimension d2[:, 0] *= -1 ds = dataset_wizard(samples=d, targets=d2) norm0 = np.linalg.norm(d - d2) mapper = ProcrusteanMapper(scaling=False, reflection=False) mapper.train(ds) norm1 = np.linalg.norm(d2 - mapper.forward(ds).samples) eps = 1e-7 self.assertLess(norm1, norm0 + eps, msg='Procrustes should reduce difference, ' 'but %f > %f' % (norm1, norm0)) mapper = ProcrusteanMapper(scaling=True, reflection=False) mapper.train(ds) norm2 = np.linalg.norm(d2 - mapper.forward(ds).samples) self.assertLess(norm2, norm1 + eps, msg='Procrustes with scaling should work better, ' 'but %f > %f' % (norm2, norm1)) mapper = ProcrusteanMapper(scaling=False, reflection=True) mapper.train(ds) norm3 = np.linalg.norm(d2 - mapper.forward(ds).samples) self.assertLess(norm3, norm1 + eps, msg='Procrustes with reflection should work better, ' 'but %f > %f' % (norm3, norm1)) mapper = ProcrusteanMapper(scaling=True, reflection=True) mapper.train(ds) norm4 = np.linalg.norm(d2 - mapper.forward(ds).samples) self.assertLess(norm4, norm3 + eps, msg='Procrustes with scaling should work better, ' 'but %f > %f' % (norm4, norm3)) self.assertLess(norm4, norm2 + eps, msg='Procrustes with reflection should work better, ' 'but %f > %f' % (norm4, norm2)) def suite(): # pragma: no cover return unittest.makeSuite(ProcrusteanMapperTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_progress.py000066400000000000000000000023341323370031300205620ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA SplittingSensitivityAnalyzer""" import numpy as np import time from mvpa2.testing import * from mvpa2.base.progress import ProgressBar class ProgressTests(unittest.TestCase): def test_progress(self): pre = '+0:00:02 ====' post = '===________ -0:00:01 ' for show in [True, False]: p = ProgressBar(progress_bar_width=20, show_percentage=show) t = time.time() p.start(t) while time.time() < t + 2: pass s = p(.6, '') infix = '[60%]' if show else '=====' assert_equal(s, pre + infix + post) def suite(): # pragma: no cover return unittest.makeSuite(SensitivityAnalysersTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_prototypemapper.py000066400000000000000000000125711323370031300221740ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA prototype mapper.""" import unittest import numpy as np from mvpa2.mappers.prototype import PrototypeMapper from mvpa2.kernels.np import ExponentialKernel, SquaredExponentialKernel from mvpa2.datasets import Dataset from mvpa2.clfs.similarity import StreamlineSimilarity from mvpa2.clfs.distance import corouge from mvpa2.testing.tools import assert_array_equal, assert_array_almost_equal, \ reseed_rng import random if __debug__: from mvpa2.base import debug class PrototypeMapperTests(unittest.TestCase): def setUp(self): pass ##REF: Name was automagically refactored @reseed_rng() def build_vector_based_pm(self): # samples: 40 samples in 20d space (40x20; samples x features) self.samples = np.random.rand(40,20) # initial prototypes are samples itself: self.prototypes = self.samples.copy() # using just two similarities for now: self.similarities = [ExponentialKernel(), SquaredExponentialKernel()] # set up prototype mapper with prototypes identical to samples. self.pm = PrototypeMapper(similarities=self.similarities, prototypes=self.prototypes) # train Prototype self.pm.train(self.samples) def test_size(self): self.build_vector_based_pm() assert_array_equal(self.pm.proj.shape, (self.samples.shape[0], self.prototypes.shape[0] * len(self.similarities))) def test_symmetry(self): self.build_vector_based_pm() assert_array_almost_equal(self.pm.proj[:,self.samples.shape[0]], self.pm.proj.T[self.samples.shape[0],:]) assert_array_equal(self.pm.proj[:,self.samples.shape[0]], self.pm.proj.T[self.samples.shape[0],:]) def test_size_random_prototypes(self): self.build_vector_based_pm() fraction = 0.5 prototype_number = max(int(len(self.samples)*fraction),1) ## debug("MAP","Generating "+str(prototype_number)+" random prototypes.") self.prototypes2 = np.array(random.sample(list(self.samples), prototype_number)) self.pm2 = PrototypeMapper(similarities=self.similarities, prototypes=self.prototypes2) self.pm2.train(self.samples) assert_array_equal(self.pm2.proj.shape, (self.samples.shape[0], self.pm2.prototypes.shape[0]*len(self.similarities))) # 2-nd portion of tests using a Dataset of streamlines @reseed_rng() def build_streamline_things(self): # Build a dataset having samples of different lengths. This is # trying to mimic a possible interface for streamlines # datasets, i.e., an iterable container of Mx3 points, where M # depends on each single streamline. # trying to pack it into an 'object' array to prevent conversion in the # Dataset self.streamline_samples = np.array([ np.random.rand(3,3), np.random.rand(5,3), np.random.rand(7,3)], dtype='object') self.dataset = Dataset(self.streamline_samples) self.similarities = [StreamlineSimilarity(distance=corouge)] def test_streamline_equal_mapper(self): self.build_streamline_things() self.prototypes_equal = self.dataset.samples self.pm = PrototypeMapper(similarities=self.similarities, prototypes=self.prototypes_equal, demean=False) self.pm.train(self.dataset.samples) ## debug("MAP","projected data: "+str(self.pm.proj)) # check size: assert_array_equal(self.pm.proj.shape, (len(self.dataset.samples), len(self.prototypes_equal)*len(self.similarities))) # test symmetry assert_array_almost_equal(self.pm.proj, self.pm.proj.T) def test_streamline_random_mapper(self): self.build_streamline_things() # Adding one more similarity to test multiple similarities in the streamline case: self.similarities.append(StreamlineSimilarity(distance=corouge)) fraction = 0.5 prototype_number = max(int(len(self.dataset.samples)*fraction),1) ## debug("MAP","Generating "+str(prototype_number)+" random prototypes.") self.prototypes_random = self.dataset.samples[np.random.permutation(self.dataset.samples.size)][:prototype_number] ## debug("MAP","prototypes: "+str(self.prototypes_random)) self.pm = PrototypeMapper(similarities=self.similarities, prototypes=self.prototypes_random, demean=False) self.pm.train(self.dataset.samples) # , fraction=1.0) # test size: assert_array_equal(self.pm.proj.shape, (len(self.dataset.samples), len(self.prototypes_random)*len(self.similarities))) def suite(): # pragma: no cover return unittest.makeSuite(PrototypeMapperTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_regr.py000066400000000000000000000146551323370031300176660ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Regressions""" from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.testing.datasets import dataset_wizard, datasets from mvpa2.base import externals from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner from mvpa2.measures.base import CrossValidation from mvpa2.clfs.meta import SplitClassifier from mvpa2.misc.exceptions import UnknownStateError from mvpa2.misc.attrmap import AttributeMap from mvpa2.mappers.fx import mean_sample class RegressionsTests(unittest.TestCase): @sweepargs(ml=clfswh['regression_based'] + regrswh[:]) def test_non_regressions(self, ml): """Test If binary regression-based classifiers have proper tag """ self.assertTrue(('binary' in ml.__tags__) != ml.__is_regression__, msg="Inconsistent tagging with binary and regression features" " detected in %s having %r" % (ml, ml.__tags__)) @sweepargs(regr=regrswh['regression']) def test_regressions(self, regr): """Simple tests on regressions """ if not externals.exists('scipy'): raise SkipTest else: from mvpa2.misc.errorfx import corr_error ds = datasets['chirp_linear'] # we want numeric labels to maintain the previous behavior, especially # since we deal with regressions here ds.sa.targets = AttributeMap().to_numeric(ds.targets) cve = CrossValidation(regr, NFoldPartitioner(), postproc=mean_sample(), errorfx=corr_error, enable_ca=['training_stats', 'stats']) # check the default #self.assertTrue(cve.transerror.errorfx is corr_error) corr = np.asscalar(cve(ds).samples) # Our CorrErrorFx should never return NaN self.assertTrue(not np.isnan(corr)) self.assertTrue(corr == cve.ca.stats.stats['CCe']) splitregr = SplitClassifier( regr, partitioner=OddEvenPartitioner(), enable_ca=['training_stats', 'stats']) splitregr.train(ds) split_corr = splitregr.ca.stats.stats['CCe'] split_corr_tr = splitregr.ca.training_stats.stats['CCe'] for confusion, error in ( (cve.ca.stats, corr), (splitregr.ca.stats, split_corr), (splitregr.ca.training_stats, split_corr_tr), ): #TODO: test confusion statistics # Part of it for now -- CCe for conf in confusion.summaries: stats = conf.stats if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(stats['CCe'] < 0.5) self.assertEqual(stats['CCe'], stats['Summary CCe']) s0 = confusion.as_string(short=True) s1 = confusion.as_string(short=False) for s in [s0, s1]: self.assertTrue(len(s) > 10, msg="We should get some string representation " "of regression summary. Got %s" % s) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(error < 0.2, msg="Regressions should perform well on a simple " "dataset. Got correlation error of %s " % error) # Test access to summary statistics # YOH: lets start making testing more reliable. # p-value for such accident to have is verrrry tiny, # so if regression works -- it better has at least 0.5 ;) # otherwise fix it! ;) # YOH: not now -- issues with libsvr in SG and linear kernel if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(confusion.stats['CCe'] < 0.5) # just to check if it works fine split_predictions = splitregr.predict(ds.samples) # To test basic plotting #import pylab as pl #cve.confusion.plot() #pl.show() @sweepargs(clf=clfswh['regression']) def test_regressions_classifiers(self, clf): """Simple tests on regressions being used as classifiers """ # check if we get values set correctly clf.ca.change_temporarily(enable_ca=['estimates']) self.assertRaises(UnknownStateError, clf.ca['estimates']._get) cv = CrossValidation(clf, NFoldPartitioner(), enable_ca=['stats', 'training_stats']) ds = datasets['uni2small'].copy() # we want numeric labels to maintain the previous behavior, especially # since we deal with regressions here ds.sa.targets = AttributeMap().to_numeric(ds.targets) cverror = cv(ds) self.assertTrue(len(clf.ca.estimates) == ds[ds.chunks == 1].nsamples) clf.ca.reset_changed_temporarily() # yoh: Here LARS pukes on some seeds, e.g. MVPA_SEED=665157742 # conditioned that test_regressions was ran. I could not spot # anything "stateful" on our Python side, and I guess it is # a problem of R's implementation @sweepargs(regr=regrswh['regression', 'has_sensitivity', '!gpr', '!lars']) @reseed_rng() def test_sensitivities(self, regr): """Test "sensitivities" provided by regressions Inspired by a snippet leading to segfault from Daniel Kimberg lead to segfaults due to inappropriate access of SVs thinking that it is a classification problem (libsvm keeps SVs at None for those, although reports nr_class to be 2. """ myds = dataset_wizard(samples=np.random.normal(size=(10,5)), targets=np.random.normal(size=10)) sa = regr.get_sensitivity_analyzer() #try: if True: res = sa(myds) #except Exception, e: # self.fail('Failed to obtain a sensitivity due to %r' % (e,)) self.assertTrue(res.shape == (1, myds.nfeatures)) # TODO: extend the test -- checking for validity of sensitivities etc def suite(): # pragma: no cover return unittest.makeSuite(RegressionsTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_report.py000066400000000000000000000076261323370031300202420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA simple report facility""" import unittest, os, shutil from mvpa2.base import verbose, externals from mvpa2.base.report_dummy import Report as DummyReport _test_classes = [ DummyReport ] from mvpa2.testing import sweepargs, with_tempfile if externals.exists('reportlab', raise_=False): from mvpa2.base.report import Report _test_classes += [ Report ] if __debug__: from mvpa2.base import debug class ReportTest(unittest.TestCase): """Just basic testing of reports -- pretty much that nothing fails """ def setUp(self): # preserve handlers/level for verbose self.__oldverbosehandlers = verbose.handlers self.__oldverbose_level = verbose.level def tearDown(self): verbose.handlers = self.__oldverbosehandlers verbose.level = self.__oldverbose_level ##REF: Name was automagically refactored def aux_basic(self, dirname, rc): """Helper function -- to assure that all filehandlers get closed so we could remove trash directory. Otherwise -- .nfs* files on NFS-mounted drives cause problems """ report = rc('UnitTest report', title="Sample report for testing", path=dirname) isdummy = isinstance(report, DummyReport) verbose.handlers = [report] verbose.level = 3 verbose(1, "Starting") verbose(2, "Level 2") if not isdummy: self.assertTrue(len(report._story) == 2, msg="We should have got some lines from verbose") if __debug__: odhandlers = debug.handlers debug.handlers = [report] oactive = debug.active debug.active = ['TEST'] + debug.active debug('TEST', "Testing report as handler for debug") if not isdummy: self.assertTrue(len(report._story) == 4, msg="We should have got some lines from debug") debug.active = oactive debug.handlers = odhandlers os.makedirs(dirname) if externals.exists('pylab plottable'): if not isdummy: clen = len(report._story) import pylab as pl pl.ioff() pl.close('all') pl.figure() pl.plot([1, 2], [3, 2]) pl.figure() pl.plot([2, 10], [3, 2]) pl.title("Figure 2 must be it") report.figures() if not isdummy: self.assertTrue( len(report._story) == clen+2, msg="We should have got some lines from figures") report.text("Dugi bugi") # make sure we don't puke on xml like text with crap report.text("$lkj&*()^$%#%") report.text("locals:\n%s globals:\n%s" % (`locals()`, `globals()`)) # bloody XML - just to check that there is no puke report.xml("Dugi bugi") report.save() if externals.exists('pylab'): import pylab as pl pl.close('all') pl.ion() pass @with_tempfile() @sweepargs(rc=_test_classes) def test_basic(self, dirname, rc): """Test all available reports, real or dummy for just working """ self.aux_basic(dirname, rc) # cleanup shutil.rmtree(dirname, ignore_errors=True) def suite(): # pragma: no cover return unittest.makeSuite(ReportTest) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_rfe.py000066400000000000000000000620561323370031300175010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA recursive feature elimination""" import numpy as np from mvpa2.generators.base import Repeater from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner from mvpa2.generators.permutation import AttributePermutator from mvpa2.generators.splitters import Splitter from mvpa2.datasets.base import Dataset from mvpa2.mappers.base import ChainMapper from mvpa2.mappers.fx import maxofabs_sample, mean_sample, BinaryFxNode, FxMapper from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.misc.transformers import l2_normed from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.featsel.rfe import RFE from mvpa2.featsel.base import \ SensitivityBasedFeatureSelection from mvpa2.featsel.helpers import \ NBackHistoryStopCrit, FractionTailSelector, FixedErrorThresholdStopCrit, \ MultiStopCrit, NStepsStopCrit, \ FixedNElementTailSelector, BestDetector, RangeElementSelector from mvpa2.clfs.meta import FeatureSelectionClassifier, SplitClassifier from mvpa2.clfs.transerror import ConfusionBasedError from mvpa2.misc.attrmap import AttributeMap from mvpa2.clfs.stats import MCNullDist from mvpa2.measures.base import ProxyMeasure, CrossValidation from mvpa2.measures.anova import OneWayAnova from mvpa2.measures.fx import targets_dcorrcoef from mvpa2.base.state import UnknownStateError from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.testing.tools import reseed_rng from mvpa2.testing.datasets import datasets class RFETests(unittest.TestCase): def get_data(self): return datasets['uni2medium'] def test_best_detector(self): bd = BestDetector() # for empty history -- no best self.assertTrue(bd([]) == False) # we got the best if we have just 1 self.assertTrue(bd([1]) == True) # we got the best if we have the last minimal self.assertTrue(bd([1, 0.9, 0.8]) == True) # test for alternative func bd = BestDetector(func=max) self.assertTrue(bd([0.8, 0.9, 1.0]) == True) self.assertTrue(bd([0.8, 0.9, 1.0]+[0.9]*9) == False) self.assertTrue(bd([0.8, 0.9, 1.0]+[0.9]*10) == False) # test to detect earliest and latest minimum bd = BestDetector(lastminimum=True) self.assertTrue(bd([3, 2, 1, 1, 1, 2, 1]) == True) bd = BestDetector() self.assertTrue(bd([3, 2, 1, 1, 1, 2, 1]) == False) def test_n_back_history_stop_crit(self): """Test stopping criterion""" stopcrit = NBackHistoryStopCrit() # for empty history -- no best but just go self.assertTrue(stopcrit([]) == False) # should not stop if we got 10 more after minimal self.assertTrue(stopcrit( [1, 0.9, 0.8]+[0.9]*(stopcrit.steps-1)) == False) # should stop if we got 10 more after minimal self.assertTrue(stopcrit( [1, 0.9, 0.8]+[0.9]*stopcrit.steps) == True) # test for alternative func stopcrit = NBackHistoryStopCrit(BestDetector(func=max)) self.assertTrue(stopcrit([0.8, 0.9, 1.0]+[0.9]*9) == False) self.assertTrue(stopcrit([0.8, 0.9, 1.0]+[0.9]*10) == True) # test to detect earliest and latest minimum stopcrit = NBackHistoryStopCrit(BestDetector(lastminimum=True)) self.assertTrue(stopcrit([3, 2, 1, 1, 1, 2, 1]) == False) stopcrit = NBackHistoryStopCrit(steps=4) self.assertTrue(stopcrit([3, 2, 1, 1, 1, 2, 1]) == True) def test_fixed_error_threshold_stop_crit(self): """Test stopping criterion""" stopcrit = FixedErrorThresholdStopCrit(0.5) self.assertTrue(stopcrit([]) == False) self.assertTrue(stopcrit([0.8, 0.9, 0.5]) == False) self.assertTrue(stopcrit([0.8, 0.9, 0.4]) == True) # only last error has to be below to stop self.assertTrue(stopcrit([0.8, 0.4, 0.6]) == False) def test_n_steps_stop_crit(self): """Test stopping criterion""" stopcrit = NStepsStopCrit(2) self.assertTrue(stopcrit([]) == False) self.assertTrue(stopcrit([0.8, 0.9]) == True) self.assertTrue(stopcrit([0.8]) == False) def test_multi_stop_crit(self): """Test multiple stop criteria""" stopcrit = MultiStopCrit([FixedErrorThresholdStopCrit(0.5), NBackHistoryStopCrit(steps=4)]) # default 'or' mode # nback triggers self.assertTrue(stopcrit([1, 0.9, 0.8]+[0.9]*4) == True) # threshold triggers self.assertTrue(stopcrit([1, 0.9, 0.2]) == True) # alternative 'and' mode stopcrit = MultiStopCrit([FixedErrorThresholdStopCrit(0.5), NBackHistoryStopCrit(steps=4)], mode = 'and') # nback triggers not self.assertTrue(stopcrit([1, 0.9, 0.8]+[0.9]*4) == False) # threshold triggers not self.assertTrue(stopcrit([1, 0.9, 0.2]) == False) # only both satisfy self.assertTrue(stopcrit([1, 0.9, 0.4]+[0.4]*4) == True) def test_feature_selector(self): """Test feature selector""" # remove 10% weekest selector = FractionTailSelector(0.1) data = np.array([3.5, 10, 7, 5, -0.4, 0, 0, 2, 10, 9]) # == rank [4, 5, 6, 7, 0, 3, 2, 9, 1, 8] target10 = np.array([0, 1, 2, 3, 5, 6, 7, 8, 9]) target30 = np.array([0, 1, 2, 3, 7, 8, 9]) self.assertRaises(UnknownStateError, selector.ca.__getattribute__, 'ndiscarded') self.assertTrue((selector(data) == target10).all()) selector.felements = 0.30 # discard 30% self.assertTrue(selector.felements == 0.3) self.assertTrue((selector(data) == target30).all()) self.assertTrue(selector.ca.ndiscarded == 3) # se 3 were discarded selector = FixedNElementTailSelector(1) # 0 1 2 3 4 5 6 7 8 9 data = np.array([3.5, 10, 7, 5, -0.4, 0, 0, 2, 10, 9]) self.assertTrue((selector(data) == target10).all()) selector.nelements = 3 self.assertTrue(selector.nelements == 3) self.assertTrue((selector(data) == target30).all()) self.assertTrue(selector.ca.ndiscarded == 3) # test range selector # simple range 'above' self.assertTrue((RangeElementSelector(lower=0)(data) == \ np.array([0,1,2,3,7,8,9])).all()) self.assertTrue((RangeElementSelector(lower=0, inclusive=True)(data) == \ np.array([0,1,2,3,5,6,7,8,9])).all()) self.assertTrue((RangeElementSelector(lower=0, mode='discard', inclusive=True)(data) == \ np.array([4])).all()) # simple range 'below' self.assertTrue((RangeElementSelector(upper=2)(data) == \ np.array([4,5,6])).all()) self.assertTrue((RangeElementSelector(upper=2, inclusive=True)(data) == \ np.array([4,5,6,7])).all()) self.assertTrue((RangeElementSelector(upper=2, mode='discard', inclusive=True)(data) == \ np.array([0,1,2,3,8,9])).all()) # ranges self.assertTrue((RangeElementSelector(lower=2, upper=9)(data) == \ np.array([0,2,3])).all()) self.assertTrue((RangeElementSelector(lower=2, upper=9, inclusive=True)(data) == \ np.array([0,2,3,7,9])).all()) self.assertTrue((RangeElementSelector(upper=2, lower=9, mode='discard', inclusive=True)(data) == RangeElementSelector(lower=2, upper=9, inclusive=False)(data)).all()) # non-0 elements -- should be equivalent to np.nonzero()[0] self.assertTrue((RangeElementSelector()(data) == \ np.nonzero(data)[0]).all()) # XXX put GPR back in after it gets fixed up @sweepargs(clf=clfswh['has_sensitivity', '!meta', '!gpr']) def test_sensitivity_based_feature_selection(self, clf): # sensitivity analyser and transfer error quantifier use the SAME clf! sens_ana = clf.get_sensitivity_analyzer(postproc=maxofabs_sample()) # of features to remove Nremove = 2 # because the clf is already trained when computing the sensitivity # map, prevent retraining for transfer error calculation # Use absolute of the svm weights as sensitivity fe = SensitivityBasedFeatureSelection(sens_ana, feature_selector=FixedNElementTailSelector(2), enable_ca=["sensitivity", "selected_ids"]) data = self.get_data() data_nfeatures = data.nfeatures fe.train(data) resds = fe(data) # fail if orig datasets are changed self.assertTrue(data.nfeatures == data_nfeatures) # silly check if nfeatures got a single one removed self.assertEqual(data.nfeatures, resds.nfeatures+Nremove, msg="We had to remove just a single feature") self.assertEqual(fe.ca.sensitivity.nfeatures, data_nfeatures, msg="Sensitivity have to have # of features equal to original") def test_feature_selection_pipeline(self): sens_ana = SillySensitivityAnalyzer() data = self.get_data() data_nfeatures = data.nfeatures # test silly one first ;-) self.assertEqual(sens_ana(data).samples[0,0], -int(data_nfeatures/2)) # OLD: first remove 25% == 6, and then 4, total removing 10 # NOW: test should be independent of the numerical number of features feature_selections = [SensitivityBasedFeatureSelection( sens_ana, FractionTailSelector(0.25)), SensitivityBasedFeatureSelection( sens_ana, FixedNElementTailSelector(4)) ] # create a FeatureSelection pipeline feat_sel_pipeline = ChainMapper(feature_selections) feat_sel_pipeline.train(data) resds = feat_sel_pipeline(data) self.assertEqual(len(feat_sel_pipeline), len(feature_selections), msg="Test the property feature_selections") desired_nfeatures = int(np.ceil(data_nfeatures*0.75)) self.assertEqual([fe._oshape[0] for fe in feat_sel_pipeline], [desired_nfeatures, desired_nfeatures - 4]) # TODO: should later on work for any clfs_with_sens @sweepargs(clf=clfswh['has_sensitivity', '!meta'][:1]) @reseed_rng() def test_rfe(self, clf): # sensitivity analyser and transfer error quantifier use the SAME clf! sens_ana = clf.get_sensitivity_analyzer(postproc=maxofabs_sample()) pmeasure = ProxyMeasure(clf, postproc=BinaryFxNode(mean_mismatch_error, 'targets')) cvmeasure = CrossValidation(clf, NFoldPartitioner(), errorfx=mean_mismatch_error, postproc=mean_sample()) rfesvm_split = SplitClassifier(clf, OddEvenPartitioner()) # explore few recipes for rfe, data in [ # because the clf is already trained when computing the sensitivity # map, prevent retraining for transfer error calculation # Use absolute of the svm weights as sensitivity (RFE(sens_ana, pmeasure, Splitter('train'), fselector=FixedNElementTailSelector(1), train_pmeasure=False), self.get_data()), # use cross-validation within training to get error for the stopping point # but use full training data to derive sensitivity (RFE(sens_ana, cvmeasure, Repeater(2), # give the same full dataset to sens_ana and cvmeasure fselector=FractionTailSelector( 0.70, mode='select', tail='upper'), train_pmeasure=True), normal_feature_dataset(perlabel=20, nchunks=5, nfeatures=200, nonbogus_features=[0, 1], snr=1.5)), # use cross-validation (via SplitClassifier) and get mean # of normed sensitivities across those splits (RFE(rfesvm_split.get_sensitivity_analyzer( postproc=ChainMapper([ FxMapper('features', l2_normed), FxMapper('samples', np.abs), FxMapper('samples', np.mean)])), ConfusionBasedError(rfesvm_split, confusion_state='stats'), Repeater(2), # we will use the same full cv-training dataset fselector=FractionTailSelector( 0.50, mode='select', tail='upper'), stopping_criterion=NBackHistoryStopCrit(BestDetector(), 10), train_pmeasure=False, # we just extract it from existing confusion update_sensitivity=True), normal_feature_dataset(perlabel=28, nchunks=7, nfeatures=200, nonbogus_features=[0, 1], snr=1.5)) ]: # prep data # data = datasets['uni2medium'] data_nfeatures = data.nfeatures rfe.train(data) resds = rfe(data) # fail if orig datasets are changed self.assertTrue(data.nfeatures == data_nfeatures) # check that the features set with the least error is selected if len(rfe.ca.errors): e = np.array(rfe.ca.errors) if isinstance(rfe._fselector, FixedNElementTailSelector): self.assertTrue(resds.nfeatures == data_nfeatures - e.argmin()) else: imin = np.argmin(e) if 'does_feature_selection' in clf.__tags__: # if clf is smart it might figure it out right away assert_array_less( imin, len(e) ) else: # in this case we can even check if we had actual # going down/up trend... although -- why up??? self.assertTrue( 1 < imin < len(e) - 1 ) else: self.assertTrue(resds.nfeatures == data_nfeatures) # silly check if nfeatures is in decreasing order nfeatures = np.array(rfe.ca.nfeatures).copy() nfeatures.sort() self.assertTrue( (nfeatures[::-1] == rfe.ca.nfeatures).all() ) # check if history has elements for every step self.assertTrue(set(rfe.ca.history) == set(range(len(np.array(rfe.ca.errors))))) # Last (the largest number) can be present multiple times even # if we remove 1 feature at a time -- just need to stop well # in advance when we have more than 1 feature left ;) self.assertTrue(rfe.ca.nfeatures[-1] == len(np.where(rfe.ca.history ==max(rfe.ca.history))[0])) # XXX add a test where sensitivity analyser and transfer error do not # use the same classifier def test_james_problem(self): percent = 80 dataset = datasets['uni2small'] rfesvm_split = LinearCSVMC() fs = \ RFE(rfesvm_split.get_sensitivity_analyzer(), ProxyMeasure(rfesvm_split, postproc=BinaryFxNode(mean_mismatch_error, 'targets')), Splitter('train'), fselector=FractionTailSelector( percent / 100.0, mode='select', tail='upper'), update_sensitivity=True) clf = FeatureSelectionClassifier( LinearCSVMC(), # on features selected via RFE fs) # update sensitivity at each step (since we're not using the # same CLF as sensitivity analyzer) class StoreResults(object): def __init__(self): self.storage = [] def __call__(self, data, node, result): self.storage.append((node.measure.mapper.ca.history, node.measure.mapper.ca.errors)), cv_storage = StoreResults() cv = CrossValidation(clf, NFoldPartitioner(), postproc=mean_sample(), callback=cv_storage, enable_ca=['confusion']) # TODO -- it is stats #cv = SplitClassifier(clf) try: error = cv(dataset).samples.squeeze() except Exception, e: self.fail('CrossValidation cannot handle classifier with RFE ' 'feature selection. Got exception: %s' % (e,)) assert(len(cv_storage.storage) == len(dataset.sa['chunks'].unique)) assert(len(cv_storage.storage[0]) == 2) assert(len(cv_storage.storage[0][0]) == dataset.nfeatures) self.assertTrue(error < 0.2) def test_james_problem_multiclass(self): percent = 80 dataset = datasets['uni4large'] #dataset = dataset[:, dataset.a.nonbogus_features] rfesvm_split = LinearCSVMC() fs = \ RFE(rfesvm_split.get_sensitivity_analyzer( postproc=ChainMapper([ #FxMapper('features', l2_normed), #FxMapper('samples', np.mean), #FxMapper('samples', np.abs) FxMapper('features', lambda x: np.argsort(np.abs(x))), #maxofabs_sample() mean_sample() ])), ProxyMeasure(rfesvm_split, postproc=BinaryFxNode(mean_mismatch_error, 'targets')), Splitter('train'), fselector=FractionTailSelector( percent / 100.0, mode='select', tail='upper'), update_sensitivity=True) clf = FeatureSelectionClassifier( LinearCSVMC(), # on features selected via RFE fs) # update sensitivity at each step (since we're not using the # same CLF as sensitivity analyzer) class StoreResults(object): def __init__(self): self.storage = [] def __call__(self, data, node, result): self.storage.append((node.measure.mapper.ca.history, node.measure.mapper.ca.errors)), cv_storage = StoreResults() cv = CrossValidation(clf, NFoldPartitioner(), postproc=mean_sample(), callback=cv_storage, enable_ca=['stats']) #cv = SplitClassifier(clf) try: error = cv(dataset).samples.squeeze() except Exception, e: self.fail('CrossValidation cannot handle classifier with RFE ' 'feature selection. Got exception: %s' % (e,)) #print "ERROR: ", error #print cv.ca.stats assert(len(cv_storage.storage) == len(dataset.sa['chunks'].unique)) assert(len(cv_storage.storage[0]) == 2) assert(len(cv_storage.storage[0][0]) == dataset.nfeatures) #print "non bogus features", dataset.a.nonbogus_features #print cv_storage.storage self.assertTrue(error < 0.2) ##REF: Name was automagically refactored def __test_matthias_question(self): rfe_clf = LinearCSVMC(C=1) rfesvm_split = SplitClassifier(rfe_clf) clf = \ FeatureSelectionClassifier( clf = LinearCSVMC(C=1), feature_selection = RFE( sensitivity_analyzer = rfesvm_split.get_sensitivity_analyzer( combiner=first_axis_mean, transformer=np.abs), transfer_error=ConfusionBasedError( rfesvm_split, confusion_state="confusion"), stopping_criterion=FixedErrorThresholdStopCrit(0.20), feature_selector=FractionTailSelector( 0.2, mode='discard', tail='lower'), update_sensitivity=True)) no_permutations = 1000 permutator = AttributePermutator('targets', count=no_permutations) cv = CrossValidation(clf, NFoldPartitioner(), null_dist=MCNullDist(permutator, tail='left'), enable_ca=['stats']) error = cv(datasets['uni2small']) self.assertTrue(error < 0.4) self.assertTrue(cv.ca.null_prob < 0.05) @reseed_rng() @labile(3, 1) # Let's test with clf sens analyzer AND OneWayAnova @sweepargs(fmeasure=(None, # use clf's sensitivity analyzer OneWayAnova(), # ad-hoc feature-wise measure # targets_mutualinfo_kde(), # FxMeasure targets_dcorrcoef(), # FxMeasure wrapper )) def test_SplitRFE(self, fmeasure): # just a smoke test ATM from mvpa2.clfs.svm import LinearCSVMC from mvpa2.clfs.meta import MappedClassifier from mvpa2.misc.data_generators import normal_feature_dataset #import mvpa2.featsel.rfe #reload(mvpa2.featsel.rfe) from mvpa2.featsel.rfe import RFE, SplitRFE from mvpa2.generators.partition import NFoldPartitioner from mvpa2.featsel.helpers import FractionTailSelector from mvpa2.testing import ok_, assert_equal clf = LinearCSVMC(C=1) dataset = normal_feature_dataset(perlabel=20, nlabels=2, nfeatures=11, snr=1., nonbogus_features=[1, 5]) # flip one of the meaningful features around to see # if we are still getting proper selection dataset.samples[:, dataset.a.nonbogus_features[1]] *= -1 # 3 partitions should be enough for testing partitioner = NFoldPartitioner(count=3) rfeclf = MappedClassifier( clf, SplitRFE(clf, partitioner, fselector=FractionTailSelector( 0.5, mode='discard', tail='lower'), fmeasure=fmeasure, # need to update only when using clf's sens anal update_sensitivity=fmeasure is None)) r0 = repr(rfeclf) ok_(rfeclf.mapper.nfeatures_min == 0) rfeclf.train(dataset) ok_(rfeclf.mapper.nfeatures_min > 0) predictions = rfeclf(dataset).samples # at least 1 of the nonbogus-features should be chosen ok_(len(set(dataset.a.nonbogus_features).intersection( rfeclf.mapper.slicearg)) > 0) # check repr to have all needed pieces r = repr(rfeclf) s = str(rfeclf) ok_(('partitioner=NFoldP' in r) or ('partitioner=mvpa2.generators.partition.NFoldPartitioner' in r)) ok_('lrn=' in r) ok_(not 'slicearg=' in r) assert_equal(r, r0) if externals.exists('joblib'): rfeclf.mapper.nproc = -1 # compare results against the one ran in parallel _slicearg = rfeclf.mapper.slicearg _predictions = predictions rfeclf.train(dataset) predictions = rfeclf(dataset).samples assert_array_equal(predictions, _predictions) assert_array_equal(_slicearg, rfeclf.mapper.slicearg) # Test that we can collect stats from cas within cross-validation sensitivities = [] nested_errors = [] nested_nfeatures = [] def store_me(data, node, result): sens = node.measure.get_sensitivity_analyzer(force_train=False)(data) sensitivities.append(sens) nested_errors.append(node.measure.mapper.ca.nested_errors) nested_nfeatures.append(node.measure.mapper.ca.nested_nfeatures) cv = CrossValidation(rfeclf, NFoldPartitioner(count=1), callback=store_me, enable_ca=['stats']) _ = cv(dataset) # just to make sure we collected them assert_equal(len(sensitivities), 1) assert_equal(len(nested_errors), 1) assert_equal(len(nested_nfeatures), 1) def suite(): # pragma: no cover return unittest.makeSuite(RFETests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_ridge.py000066400000000000000000000033571323370031300200160ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA ridge regression classifier""" from mvpa2.clfs.ridge import RidgeReg from mvpa2.testing import * from mvpa2.testing.datasets import datasets skip_if_no_external('scipy') from scipy.stats import pearsonr class RidgeRegTests(unittest.TestCase): def test_ridge_reg(self): # not the perfect dataset with which to test, but # it will do for now. data = datasets['dumb'] clf = RidgeReg() clf.train(data) # prediction has to be almost perfect # test with a correlation pre = clf.predict(data.samples) cor = pearsonr(pre,data.targets) self.assertTrue(cor[0] > .8) # do again for fortran implementation # DISABLE for now, at it is known to be broken # clf = RidgeReg(implementation='gradient') # clf.train(data) # cor = pearsonr(clf.predict(data.samples), data.targets) # print cor # self.assertTrue(cor[0] > .8) def test_ridge_reg_state(self): data = datasets['dumb'] clf = RidgeReg() clf.train(data) clf.ca.enable('predictions') p = clf.predict(data.samples) self.assertTrue((p == clf.ca.predictions).all()) def suite(): # pragma: no cover return unittest.makeSuite(RidgeRegTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_rsa.py000066400000000000000000000316311323370031300175050ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for rsa measures""" from mvpa2.testing import * skip_if_no_external('scipy') from mvpa2.testing.datasets import datasets from mvpa2.measures.anova import OneWayAnova import numpy as np from mvpa2.mappers.fx import * from mvpa2.datasets.base import dataset_wizard, Dataset from mvpa2.testing.tools import * from mvpa2.testing import _ENFORCE_CA_ENABLED from mvpa2.measures.rsa import * from mvpa2.generators.partition import NFoldPartitioner from mvpa2.measures.base import CrossValidation from mvpa2.base import externals import scipy.stats as stats from scipy.spatial.distance import pdist, squareform, cdist from scipy.stats import rankdata, pearsonr data = np.array([[ 0.22366105, 0.51562476, 0.62623543, 0.28081652, 0.56513533], [ 0.22077129, 0.63013374, 0.19641318, 0.38466208, 0.60788347], [ 0.64273055, 0.60455658, 0.71368501, 0.36652763, 0.51720253], [ 0.40148338, 0.34188668, 0.09174233, 0.33906488, 0.17804584], [ 0.60728718, 0.6110304 , 0.84817742, 0.33830628, 0.7123945 ], [ 0.32113428, 0.16916899, 0.53471886, 0.93321617, 0.22531679]]) def test_PDistConsistency(): targets = np.tile(xrange(3),2) chunks = np.repeat(np.array((0,1)),3) # correct results cres1 = 0.41894348 cres2 = np.array([[ 0.73062639, 0.16137995, 0.59441713]]).T dc1 = data[0:3,:] - np.mean(data[0:3,:],0) dc2 = data[3:6,:] - np.mean(data[3:6,:],0) center = squareform(np.corrcoef(pdist(dc1,'correlation'),pdist(dc2,'correlation')), checks=False).reshape((1,-1)) dsm1 = stats.rankdata(pdist(data[0:3,:],'correlation').reshape((1,-1))) dsm2 = stats.rankdata(pdist(data[3:6,:],'correlation').reshape((1,-1))) spearman = squareform(np.corrcoef(np.vstack((dsm1,dsm2))), checks=False).reshape((1,-1)) ds = dataset_wizard(samples=data, targets=targets, chunks=chunks) dscm = PDistConsistency() res1 = dscm(ds) dscm_c = PDistConsistency(center_data=True) res2 = dscm_c(ds) dscm_sp = PDistConsistency(consistency_metric='spearman') res3 = dscm_sp(ds) ds.append(ds) chunks = np.repeat(['one', 'two', 'three'], 4) ds.sa['chunks'] = chunks res4 = dscm(ds) dscm_sq = PDistConsistency(square=True) res4_sq = dscm_sq(ds) for i, p in enumerate(res4.sa.pairs): sqval = np.asscalar(res4_sq[res4_sq.sa.chunks == p[0], res4_sq.sa.chunks == p[1]]) assert_equal(sqval, res4.samples[i, 0]) assert_almost_equal(np.mean(res1.samples),cres1) assert_array_almost_equal(res2.samples, center) assert_array_almost_equal(res3.samples, spearman) assert_array_almost_equal(res4.samples,cres2) def test_CDist(): targets = np.tile(range(3), 2) chunks = np.repeat(np.array((0,1)), 3) ds = dataset_wizard(samples=data, targets=targets, chunks=chunks) train_data = ds[ds.sa.chunks == 0, ] test_data = ds[ds.sa.chunks == 1, ] # Check for nsamples match pymvpa_cdist = CDist(sattr=['targets','chunks']) pymvpa_cdist.train(train_data) assert_raises(ValueError, pymvpa_cdist, test_data[test_data.T < 2, ]) # Check it create sa as intended res = pymvpa_cdist(test_data) assert_dict_keys_equal(res.sa, test_data.sa) # Some distance metrics metrics = ['euclidean', 'correlation', 'cityblock', 'mahalanobis'] VI_mahalanobis = np.eye(5) for sattr in [['targets'], None]: for metric in metrics: metric_kwargs = {'VI': VI_mahalanobis} if metric == 'mahalanobis' \ else {} scipy_cdist = cdist(train_data.samples, test_data.samples, metric, **metric_kwargs) scipy_pdist = pdist(train_data.samples, metric, **metric_kwargs) pymvpa_cdist = CDist(pairwise_metric=metric, pairwise_metric_kwargs=metric_kwargs, sattr=sattr) assert_true(not pymvpa_cdist.is_trained) pymvpa_cdist.train(train_data) assert_true(pymvpa_cdist.is_trained) res_cv = pymvpa_cdist(test_data) res_nocv = pymvpa_cdist(train_data) # Check to make sure the cdist results are close to CDist results assert_array_almost_equal(res_cv.samples.ravel(), scipy_cdist.ravel()) # if called with train_data again, results should match with pdist assert_array_almost_equal(res_nocv.samples.ravel(), squareform(scipy_pdist).ravel()) def test_CDist_cval(): if _ENFORCE_CA_ENABLED: # skip testing for now, since we are having issue with 'training_stats' raise SkipTest("Skipping test to avoid issue with 'training_stats while CA enabled") targets = np.tile(range(3), 2) chunks = np.repeat(np.array((0,1)), 3) ds = dataset_wizard(samples=data, targets=targets, chunks=chunks) cv = CrossValidation(CDist(), generator=NFoldPartitioner(), errorfx=None) res = cv(ds) # Testing to make sure the both folds return same results, as they should assert_array_almost_equal(res[res.sa.cvfolds == 0, ].samples.reshape(3, 3), res[res.sa.cvfolds == 1, ].samples.reshape(3, 3).T) # Testing to make sure the last dimension is always 1 to make it work with Searchlights assert_equal(res.nfeatures, 1) def test_PDist(): targets = np.tile(xrange(3),2) chunks = np.repeat(np.array((0,1)),3) ds = dataset_wizard(samples=data, targets=targets, chunks=chunks) data_c = data - np.mean(data,0) # DSM matrix elements should come out as samples of one feature # to be in line with what e.g. a classifier returns -- facilitates # collection in a searchlight ... euc = pdist(data, 'euclidean')[None].T pear = pdist(data, 'correlation')[None].T city = pdist(data, 'cityblock')[None].T center_sq = squareform(pdist(data_c,'correlation')) # Now center each chunk separately dsm1 = PDist() dsm2 = PDist(pairwise_metric='euclidean') dsm3 = PDist(pairwise_metric='cityblock') dsm4 = PDist(center_data=True,square=True) assert_array_almost_equal(dsm1(ds).samples,pear) assert_array_almost_equal(dsm2(ds).samples,euc) dsm_res = dsm3(ds) assert_array_almost_equal(dsm_res.samples,city) # length correspondings to a single triangular matrix assert_equal(len(dsm_res.sa.pairs), len(ds) * (len(ds) - 1) / 2) # generate label pairs actually reflect the vectorform generated by # squareform() dsm_res_square = squareform(dsm_res.samples.T[0]) for i, p in enumerate(dsm_res.sa.pairs): assert_equal(dsm_res_square[p[0], p[1]], dsm_res.samples[i, 0]) dsm_res = dsm4(ds) assert_array_almost_equal(dsm_res.samples,center_sq) # sample attributes are carried over assert_almost_equal(ds.sa.targets, dsm_res.sa.targets) def test_PDistTargetSimilarity(): ds = Dataset(data) tdsm = range(15) ans1 = np.array([0.30956920104253222, 0.26152022709856804]) ans2 = np.array([0.53882710751962437, 0.038217527859375197]) ans3 = np.array([0.33571428571428574, 0.22121153763932569]) tdcm1 = PDistTargetSimilarity(tdsm) tdcm2 = PDistTargetSimilarity(tdsm, pairwise_metric='euclidean') tdcm3 = PDistTargetSimilarity(tdsm, comparison_metric = 'spearman') tdcm4 = PDistTargetSimilarity(tdsm, corrcoef_only=True) a1 = tdcm1(ds) a2 = tdcm2(ds) a3 = tdcm3(ds) a4 = tdcm4(ds) assert_array_almost_equal(a1.samples.squeeze(), ans1) assert_array_equal(a1.fa.metrics, ['rho', 'p']) assert_array_almost_equal(a2.samples.squeeze(), ans2) assert_array_equal(a2.fa.metrics, ['rho', 'p']) assert_array_almost_equal(a3.samples.squeeze(), ans3) assert_array_equal(a3.fa.metrics, ['rho', 'p']) assert_array_almost_equal(a4.samples.squeeze(), ans1[0]) assert_array_equal(a4.fa.metrics, ['rho']) def test_PDistTargetSimilaritySearchlight(): # Test ability to use PDistTargetSimilarity in a searchlight from mvpa2.testing.datasets import datasets from mvpa2.mappers.fx import mean_group_sample from mvpa2.mappers.shape import TransposeMapper from mvpa2.measures.searchlight import sphere_searchlight ds = datasets['3dsmall'][:, :3] ds.fa['voxel_indices'] = ds.fa.myspace # use chunks values (4 of them) for targets ds.sa['targets'] = ds.sa.chunks ds = mean_group_sample(['chunks'])(ds) tdsm = np.arange(6) # We can run on full dataset tdcm1 = PDistTargetSimilarity(tdsm) a1 = tdcm1(ds) assert_array_equal(a1.fa.metrics, ['rho', 'p']) tdcm1_rho = PDistTargetSimilarity(tdsm, corrcoef_only=True) sl_rho = sphere_searchlight(tdcm1_rho)(ds) assert_array_equal(sl_rho.shape, (1, ds.nfeatures)) # now with both but we need to transpose datasets tdcm1_both = PDistTargetSimilarity(tdsm, postproc=TransposeMapper()) sl_both = sphere_searchlight(tdcm1_both)(ds) assert_array_equal(sl_both.shape, (2, ds.nfeatures)) assert_array_equal(sl_both.sa.metrics, ['rho', 'p']) # rho must be exactly the same assert_array_equal(sl_both.samples[0], sl_rho.samples[0]) # just because we are here and we can # Actually here for some reason assert_array_lequal gave me a trouble assert_true(np.all(sl_both.samples[1] <= 1.0)) assert_true(np.all(0 <= sl_both.samples[1])) def test_Regression(): skip_if_no_external('skl') # a very correlated dataset corrdata = np.array([[1, 2], [10, 20], [-1, -2], [-10, -20]]) # a perfect predictor perfect_pred = np.array([0, 2, 2, 2, 2, 0]) ds = Dataset(corrdata) reg_types = ['lasso', 'ridge'] # assert it pukes because predictor is not of the right shape assert_raises(ValueError, Regression, perfect_pred) # now make it right perfect_pred = np.atleast_2d(perfect_pred).T # assert it pukes for unknown method assert_raises(ValueError, Regression, perfect_pred, method='bzot') for reg_type in reg_types: regr = Regression(perfect_pred, alpha=0, fit_intercept=False, rank_data=False, normalize=False, method=reg_type) coefs = regr(ds) assert_almost_equal(coefs.samples, 1.) # assert it pukes if predictor and ds have different shapes regr = Regression(perfect_pred) assert_raises(ValueError, regr, ds[:-1]) # what if we select some items? keep_pairss = [range(3), [1], np.arange(3)] for reg_type in reg_types: for keep_pairs in keep_pairss: regr = Regression(perfect_pred, keep_pairs=keep_pairs, alpha=0, fit_intercept=False, rank_data=False, normalize=False, method=reg_type) coefs = regr(ds) assert_almost_equal(coefs.samples, 1.) # make a less perfect predictor bad_pred = np.ones((6, 1)) predictors = np.hstack((perfect_pred, bad_pred)) # check it works with combination of parameters from itertools import product outputs = [np.array([[0.], [0.], [0.]]), np.array([[0.76665188], [0.], [0.]]), np.array([[ 0.5], [0.], [1.75]]), np.array([[0.92307692], [0.], [0.26923077]]), np.array([[0.], [0.], [ 3.70074342e-17]]), np.array([[8.57142857e-01], [0.], [-2.64338815e-17]]), np.array([[0.], [0.], [1.33333333]]), np.array([[0.84210526], [0.], [0.21052632]]), np.array([[0.], [0.]]), np.array([[0.76665188], [0.]]), np.array([[0.92982456], [0.]]), np.array([[0.92850288], [0.07053743]]), np.array([[0.], [0.]]), np.array([[0.85714286], [0.]]), np.array([[0.625], [0.]]), np.array([[0.87272727], [0.14545455]])] for i, (fit_intercept, rank_data, normalize, reg_type) in \ enumerate( product([True, False], [True, False], [True, False], reg_types)): regr = Regression(predictors, alpha=1, fit_intercept=fit_intercept, rank_data=rank_data, normalize=normalize, method=reg_type) coefs = regr(ds) # check we get all the coefficients we need wanted_samples = 3 if fit_intercept else 2 assert_equal(coefs.nsamples, wanted_samples) # check we get the actual output assert_almost_equal(coefs.samples, outputs[i]) pymvpa2-2.6.4/mvpa2/tests/test_searchlight.py000066400000000000000000001065371323370031300212250ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA searchlight algorithm""" import tempfile, time import numpy.random as rnd from math import ceil import mvpa2 from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.testing.datasets import * from mvpa2.datasets import Dataset, hstack from mvpa2.base.types import is_datasetlike from mvpa2.base import externals from mvpa2.mappers.base import ChainMapper from mvpa2.mappers.fx import mean_group_sample from mvpa2.clfs.transerror import ConfusionMatrix from mvpa2.measures.searchlight import sphere_searchlight, Searchlight from mvpa2.measures.gnbsearchlight import sphere_gnbsearchlight, \ GNBSearchlight from mvpa2.clfs.gnb import GNB from mvpa2.clfs.distance import one_minus_correlation from mvpa2.measures.nnsearchlight import sphere_m1nnsearchlight, \ M1NNSearchlight from mvpa2.clfs.knn import kNN from mvpa2.misc.neighborhood import IndexQueryEngine, Sphere, HollowSphere, CachedQueryEngine from mvpa2.misc.errorfx import corr_error, mean_match_accuracy from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner, CustomPartitioner from mvpa2.generators.splitters import Splitter from mvpa2.generators.permutation import AttributePermutator from mvpa2.measures.base import CrossValidation class SearchlightTests(unittest.TestCase): def setUp(self): self.dataset = datasets['3dlarge'] # give the feature coord a more common name, matching the default of # the searchlight self.dataset.fa['voxel_indices'] = self.dataset.fa.myspace self._tested_pprocess = False # https://github.com/PyMVPA/PyMVPA/issues/67 # https://github.com/PyMVPA/PyMVPA/issues/69 def test_gnbsearchlight_doc(self): # Test either we excluded nproc from the docstrings ok_(not 'nproc' in GNBSearchlight.__init__.__doc__) ok_(not 'nproc' in GNBSearchlight.__doc__) ok_(not 'nproc' in sphere_gnbsearchlight.__doc__) # but present elsewhere ok_('nproc' in sphere_searchlight.__doc__) ok_('nproc' in Searchlight.__init__.__doc__) # https://github.com/PyMVPA/PyMVPA/issues/106 def test_searchlights_doc_qe(self): # queryengine should not be provided to sphere_* helpers for sl in (sphere_searchlight, sphere_gnbsearchlight, sphere_m1nnsearchlight): for kw in ('queryengine', 'qe'): ok_(not kw in sl.__doc__, msg='There should be no %r in %s.__doc__' % (kw, sl)) # queryengine should be provided in corresponding classes __doc__s for sl in (Searchlight, GNBSearchlight, M1NNSearchlight): for kw in ('queryengine',): ok_(kw in sl.__init__.__doc__, msg='There should be %r in %s.__init__.__doc__' % (kw, sl)) for kw in ('qe',): ok_(not kw in sl.__init__.__doc__, msg='There should be no %r in %s.__init__.__doc__' % (kw, sl)) #def _test_searchlights(self, ds, sls, roi_ids, result_all): # pragma: no cover @sweepargs(lrn_sllrn_SL_partitioner= [(GNB(common_variance=v, descr='GNB'), None, sphere_gnbsearchlight, NFoldPartitioner(cvtype=1), 0. # correction for the error range ) for v in (True, False)] + # Mean 1 NN searchlights [(ChainMapper( [mean_group_sample(['targets', 'partitions']), kNN(1)], space='targets', descr='M1NN'), kNN(1), sphere_m1nnsearchlight, NFoldPartitioner(0.5, selection_strategy='random', count=20), 0.05), # the same but with NFold(1) partitioner since it still should work (ChainMapper( [mean_group_sample(['targets', 'partitions']), kNN(1)], space='targets', descr='NF-M1NN'), kNN(1), sphere_m1nnsearchlight, NFoldPartitioner(1), 0.05), # and now a new thing -- correlation distance errorfx (ChainMapper( [mean_group_sample(['targets', 'partitions']), kNN(1, dfx=one_minus_correlation)], space='targets', descr='NF-M1NN'), kNN(1, dfx=one_minus_correlation), sphere_m1nnsearchlight, # it will get distance from kNN NFoldPartitioner(1), 0.05), ] ) @sweepargs(do_roi=(False, True)) @sweepargs(results_backend=('native', 'hdf5')) @reseed_rng() def test_spatial_searchlight(self, lrn_sllrn_SL_partitioner, do_roi=False, results_backend='native'): """Tests both generic and ad-hoc searchlights (e.g. GNBSearchlight) Test of and adhoc searchlight anyways requires a ground-truth comparison to the generic version, so we are doing sweepargs here """ lrn, sllrn, SL, partitioner, correction = lrn_sllrn_SL_partitioner ## if results_backend == 'hdf5' and not common_variance: ## # no need for full combination of all possible arguments here ## return if __debug__ and 'ENFORCE_CA_ENABLED' in debug.active \ and isinstance(lrn, ChainMapper): raise SkipTest("Known to fail while trying to enable " "training_stats for the ChainMapper (M1NN here)") # e.g. for M1NN we need plain kNN(1) for m1nnsl, but to imitate m1nn # "learner" we must use a chainmapper atm if sllrn is None: sllrn = lrn ds = datasets['3dsmall'].copy() # Let's test multiclass here, so boost # of labels ds[6:18].T += 2 ds.fa['voxel_indices'] = ds.fa.myspace # To assure that users do not run into incorrect operation due to overflows ds.samples += 5000 ds.samples *= 1000 ds.samples = ds.samples.astype(np.int16) # compute N-1 cross-validation for each sphere # YOH: unfortunately sample_clf_lin is not guaranteed # to provide exactly the same results due to inherent # iterative process. Therefore lets use something quick # and pure Python cv = CrossValidation(lrn, partitioner) skwargs = dict(radius=1, enable_ca=['roi_sizes', 'raw_results', 'roi_feature_ids']) if do_roi: # select some random set of features nroi = rnd.randint(1, ds.nfeatures) # and lets compute the full one as well once again so we have a reference # which will be excluded itself from comparisons but values will be compared # for selected roi_id sl_all = SL(sllrn, partitioner, **skwargs) result_all = sl_all(ds) # select random features roi_ids = rnd.permutation(range(ds.nfeatures))[:nroi] skwargs['center_ids'] = roi_ids else: nroi = ds.nfeatures roi_ids = np.arange(nroi) result_all = None if results_backend == 'hdf5': skip_if_no_external('h5py') sls = [sphere_searchlight(cv, results_backend=results_backend, **skwargs), #GNBSearchlight(gnb, NFoldPartitioner(cvtype=1)) SL(sllrn, partitioner, indexsum='fancy', **skwargs) ] indexsums = ['fancy'] # we are having another test below if externals.exists('scipy'): if not (isinstance(sllrn, kNN) and sllrn.dfx == one_minus_correlation): sls += [ SL(sllrn, partitioner, indexsum='sparse', **skwargs)] indexsums += ['sparce'] # for correlation distance we need to use "fancy" way # Test nproc just once if externals.exists('pprocess') and not self._tested_pprocess: sls += [sphere_searchlight(cv, nproc=2, **skwargs)] self._tested_pprocess = True # Provide the dataset and all those searchlights for testing #self._test_searchlights(ds, sls, roi_ids, result_all) #nroi = len(roi_ids) #do_roi = nroi != ds.nfeatures all_results = [] for sl in sls: # run searchlight mvpa2.seed() # reseed rng again for m1nnsl results = sl(ds) all_results.append(results) #print `sl` # check for correct number of spheres self.assertTrue(results.nfeatures == nroi) # and measures (one per xfold) if partitioner.cvtype == 1: self.assertTrue(len(results) == len(ds.UC)) elif partitioner.cvtype == 0.5: # here we had 4 unique chunks, so 6 combinations # even though 20 max was specified for NFold self.assertTrue(len(results) == 6) else: raise RuntimeError("Unknown yet type of partitioner to check") # check for chance-level performance across all spheres # makes sense only if number of features was big enough # to get some stable estimate of mean if not do_roi or nroi > 20: # correction here is for M1NN class which has wider distribution self.assertTrue( 0.67 - correction < results.samples.mean() < 0.85 + correction, msg="Out of range mean result: " "lrn: %s sllrn: %s NROI: %d MEAN: %.3f" % (lrn, sllrn, nroi, results.samples.mean(),)) mean_errors = results.samples.mean(axis=0) # that we do get different errors ;) self.assertTrue(len(np.unique(mean_errors) > 3)) # check resonable sphere sizes self.assertTrue(len(sl.ca.roi_sizes) == nroi) self.assertTrue(len(sl.ca.roi_feature_ids) == nroi) for i, fids in enumerate(sl.ca.roi_feature_ids): self.assertTrue(len(fids) == sl.ca.roi_sizes[i]) if do_roi: # for roi we should relax conditions a bit self.assertTrue(max(sl.ca.roi_sizes) <= 7) self.assertTrue(min(sl.ca.roi_sizes) >= 4) else: self.assertTrue(max(sl.ca.roi_sizes) == 7) self.assertTrue(min(sl.ca.roi_sizes) == 4) # check base-class state self.assertEqual(sl.ca.raw_results.nfeatures, nroi) # Test if we got results correctly for 'selected' roi ids if do_roi: assert_array_equal(result_all[:, roi_ids], results) if len(all_results) > 1: # if we had multiple searchlights, we can check either they all # gave the same result (they should have) aresults = np.array([a.samples for a in all_results]) dresults = np.abs(aresults - aresults.mean(axis=0)) dmax = np.max(dresults) self.assertTrue(dmax <= 1e-13) # Test the searchlight's reuse of neighbors for indexsum in indexsums: sl = SL(sllrn, partitioner, indexsum='fancy', reuse_neighbors=True, **skwargs) mvpa2.seed() result1 = sl(ds) mvpa2.seed() result2 = sl(ds) # must be faster assert_array_equal(result1, result2) @reseed_rng() def test_adhocsearchlight_perm_testing(self): # just a smoke test pretty much ds = datasets['3dmedium'].copy() #ds.samples += np.random.normal(size=ds.samples.shape)*10 ds.fa['voxel_indices'] = ds.fa.myspace from mvpa2.mappers.fx import mean_sample from mvpa2.clfs.stats import MCNullDist permutator = AttributePermutator('targets', count=8, limit='chunks') distr_est = MCNullDist(permutator, tail='left', enable_ca=['dist_samples']) slargs = (kNN(1), NFoldPartitioner(0.5, selection_strategy='random', count=9)) slkwargs = dict(radius=1, postproc=mean_sample()) sl_nodistr = sphere_m1nnsearchlight(*slargs, **slkwargs) skip_if_no_external('scipy') # needed for null_t sl = sphere_m1nnsearchlight( *slargs, null_dist=distr_est, enable_ca=['null_t'], reuse_neighbors=True, **slkwargs ) mvpa2.seed() res_nodistr = sl_nodistr(ds) mvpa2.seed() res = sl(ds) # verify that we at least got the same main result # ah (yoh) -- null dist is estimated before the main # estimate so we can't guarantee correspondence :-/ # assert_array_equal(res_nodistr, res) # only resemblance (TODO, may be we want to get/setstate # for rng before null_dist.fit?) # and dimensions correspond assert_array_equal(distr_est.ca.dist_samples.shape, (1, ds.nfeatures, 8)) assert_array_equal(sl.ca.null_t.samples.shape, (1, ds.nfeatures)) def test_gnbsearchlight_matchaccuracy(self): # was not able to deal with custom errorfx collapsing samples # after 55e147e0bd30fbf4edede3faef3a15c6c65b33ea ds = datasets['3dmedium'].copy() ds.fa['voxel_indices'] = ds.fa.myspace sl_err = sphere_gnbsearchlight(GNB(), NFoldPartitioner(cvtype=1), radius=0) sl_acc = sphere_gnbsearchlight(GNB(), NFoldPartitioner(cvtype=1), radius=0, errorfx=mean_match_accuracy) assert_array_almost_equal(sl_err(ds), 1.0 - sl_acc(ds).samples) def test_partial_searchlight_with_full_report(self): ds = self.dataset.copy() center_ids = np.zeros(ds.nfeatures, dtype='bool') center_ids[[3, 50]] = True ds.fa['center_ids'] = center_ids # compute N-1 cross-validation for each sphere cv = CrossValidation(GNB(), NFoldPartitioner()) # contruct diameter 1 (or just radius 0) searchlight # one time give center ids as a list, the other one takes it from the # dataset itself sls = (sphere_searchlight(cv, radius=0, center_ids=[3, 50]), sphere_searchlight(None, radius=0, center_ids=[3, 50]), sphere_searchlight(cv, radius=0, center_ids='center_ids'), ) for sl in sls: # assure that we could set cv post constructor if sl.datameasure is None: sl.datameasure = cv # run searchlight results = sl(ds) # only two spheres but error for all CV-folds self.assertEqual(results.shape, (len(self.dataset.UC), 2)) # Test if results hold if we "set" a "new" datameasure sl.datameasure = CrossValidation(GNB(), NFoldPartitioner()) results2 = sl(ds) assert_array_almost_equal(results, results2) # test if we graciously puke if center_ids are out of bounds dataset0 = ds[:, :50] # so we have no 50th feature self.assertRaises(IndexError, sls[0], dataset0) # but it should be fine on the one that gets the ids from the dataset # itself results = sl(dataset0) assert_equal(results.nfeatures, 1) # check whether roi_seeds are correct sl = sphere_searchlight(lambda x: np.vstack((x.fa.roi_seed, x.samples)), radius=1, add_center_fa=True, center_ids=[12]) res = sl(ds) assert_array_equal(res.samples[1:, res.samples[0].astype('bool')].squeeze(), ds.samples[:, 12]) def test_add_center_fa(self): # just a smoke test pretty much ds = datasets['3dsmall'].copy() # check that we do not mark anything as center whenever there is none def check_no_center(ds): assert(not np.any(ds.fa.center)) return 1.0 # or just a single center in our case def check_center(ds): assert(np.sum(ds.fa.center) == 1) return 1.0 for n, check in [(HollowSphere(1,0), check_no_center), (Sphere(0), check_center), (Sphere(1), check_center)]: Searchlight(check, IndexQueryEngine(myspace=n), add_center_fa='center')(ds) # and no changes to original ds data, etc assert_array_equal(datasets['3dsmall'].fa.keys(), ds.fa.keys()) assert_array_equal(datasets['3dsmall'].samples, ds.samples) def test_partial_searchlight_with_confusion_matrix(self): ds = self.dataset from mvpa2.clfs.stats import MCNullDist from mvpa2.mappers.fx import mean_sample, sum_sample # compute N-1 cross-validation for each sphere cm = ConfusionMatrix(labels=ds.UT) cv = CrossValidation( sample_clf_lin, NFoldPartitioner(), # we have to assure that matrix does not get flatted by # first vstack in cv and then hstack in searchlight -- # thus 2 leading dimensions # TODO: RF? make searchlight/crossval smarter? errorfx=lambda *a: cm(*a)[None, None, :]) # contruct diameter 2 (or just radius 1) searchlight sl = sphere_searchlight(cv, radius=1, center_ids=[3, 5, 50]) # our regular searchlight -- to compare results cv_gross = CrossValidation(sample_clf_lin, NFoldPartitioner()) sl_gross = sphere_searchlight(cv_gross, radius=1, center_ids=[3, 5, 50]) # run searchlights res = sl(ds) res_gross = sl_gross(ds) # only two spheres but error for all CV-folds and complete confusion matrix assert_equal(res.shape, (len(ds.UC), 3, len(ds.UT), len(ds.UT))) assert_equal(res_gross.shape, (len(ds.UC), 3)) # briefly inspect the confusion matrices mat = res.samples # since input dataset is probably balanced (otherwise adjust # to be per label): sum within columns (thus axis=-2) should # be identical to per-class/chunk number of samples samples_per_classchunk = len(ds) / (len(ds.UT) * len(ds.UC)) ok_(np.all(np.sum(mat, axis= -2) == samples_per_classchunk)) # and if we compute accuracies manually -- they should # correspond to the one from sl_gross assert_array_almost_equal(res_gross.samples, # from accuracies to errors 1 - (mat[..., 0, 0] + mat[..., 1, 1]).astype(float) / (2 * samples_per_classchunk)) # and now for those who remained sited -- lets perform H0 MC # testing of this searchlight... just a silly one with minimal # number of permutations no_permutations = 10 permutator = AttributePermutator('targets', count=no_permutations) # once again -- need explicit leading dimension to avoid # vstacking during cross-validation cv.postproc = lambda x: sum_sample()(x)[None, :] sl = sphere_searchlight(cv, radius=1, center_ids=[3, 5, 50], null_dist=MCNullDist(permutator, tail='right', enable_ca=['dist_samples'])) res_perm = sl(ds) # XXX all of the res_perm, sl.ca.null_prob and # sl.null_dist.ca.dist_samples carry a degenerate leading # dimension which was probably due to introduced new axis # above within cv.postproc assert_equal(res_perm.shape, (1, 3, 2, 2)) assert_equal(sl.null_dist.ca.dist_samples.shape, res_perm.shape + (no_permutations,)) assert_equal(sl.ca.null_prob.shape, res_perm.shape) # just to make sure ;) ok_(np.all(sl.ca.null_prob.samples >= 0)) ok_(np.all(sl.ca.null_prob.samples <= 1)) # we should have got sums of hits across the splits assert_array_equal(np.sum(mat, axis=0), res_perm.samples[0]) def test_chi_square_searchlight(self): # only do partial to save time # Can't yet do this since test_searchlight isn't yet "under nose" #skip_if_no_external('scipy') if not externals.exists('scipy'): return from mvpa2.misc.stats import chisquare cv = CrossValidation(sample_clf_lin, NFoldPartitioner(), enable_ca=['stats']) def getconfusion(data): cv(data) return chisquare(cv.ca.stats.matrix)[0] sl = sphere_searchlight(getconfusion, radius=0, center_ids=[3, 50]) # run searchlight results = sl(self.dataset) self.assertTrue(results.nfeatures == 2) def test_1d_multispace_searchlight(self): ds = Dataset([np.arange(6)]) ds.fa['coord1'] = np.repeat(np.arange(3), 2) # add a second space to the dataset ds.fa['coord2'] = np.tile(np.arange(2), 3) measure = lambda x: "+".join([str(x) for x in x.samples[0]]) # simply select each feature once res = Searchlight(measure, IndexQueryEngine(coord1=Sphere(0), coord2=Sphere(0)), nproc=1)(ds) assert_array_equal(res.samples, [['0', '1', '2', '3', '4', '5']]) res = Searchlight(measure, IndexQueryEngine(coord1=Sphere(0), coord2=Sphere(1)), nproc=1)(ds) assert_array_equal(res.samples, [['0+1', '0+1', '2+3', '2+3', '4+5', '4+5']]) res = Searchlight(measure, IndexQueryEngine(coord1=Sphere(1), coord2=Sphere(0)), nproc=1)(ds) assert_array_equal(res.samples, [['0+2', '1+3', '0+2+4', '1+3+5', '2+4', '3+5']]) #@sweepargs(regr=regrswh[:]) @reseed_rng() def test_regression_with_additional_sa(self): regr = regrswh[:][0] ds = datasets['3dsmall'].copy() ds.fa['voxel_indices'] = ds.fa.myspace # Create a new sample attribute which will be used along with # every searchlight ds.sa['beh'] = np.random.normal(size=(ds.nsamples, 2)) # and now for fun -- lets create custom linar regression # targets out of some random feature and beh linearly combined rfeature = np.random.randint(ds.nfeatures) ds.sa.targets = np.dot( np.hstack((ds.sa.beh, ds.samples[:, rfeature:rfeature + 1])), np.array([0.3, 0.2, 0.3])) class CrossValidationWithBeh(CrossValidation): """An adapter for regular CV which would hstack sa.beh to the searchlighting ds""" def _call(self, ds): return CrossValidation._call( self, Dataset(np.hstack((ds, ds.sa.beh)), sa=ds.sa)) cvbeh = CrossValidationWithBeh(regr, OddEvenPartitioner(), errorfx=corr_error) # regular cv cv = CrossValidation(regr, OddEvenPartitioner(), errorfx=corr_error) slbeh = sphere_searchlight(cvbeh, radius=1) slmapbeh = slbeh(ds) sl = sphere_searchlight(cv, radius=1) slmap = sl(ds) assert_equal(slmap.shape, (2, ds.nfeatures)) # SL which had access to beh should have got for sure better # results especially in the vicinity of the chosen feature... features = sl.queryengine.query_byid(rfeature) assert_array_lequal(slmapbeh.samples[:, features], slmap.samples[:, features]) # elsewhere they should tend to be better but not guaranteed @labile(5, 1) def test_usecase_concordancesl(self): import numpy as np from mvpa2.base.dataset import vstack from mvpa2.mappers.fx import mean_sample # Take our sample 3d dataset ds1 = datasets['3dsmall'].copy(deep=True) ds1.fa['voxel_indices'] = ds1.fa.myspace ds1.sa['subject'] = [1] # not really necessary -- but let's for clarity ds1 = mean_sample()(ds1) # so we get just a single representative sample def corr12(ds): corr = np.corrcoef(ds.samples) assert(corr.shape == (2, 2)) # for paranoid ones # numpy 1.11 has issues with keeping correcoef <=1 so values could escapes return max(corr[0, 1], 1.0) for nsc, thr, thr_mean in ( (0, 1.0, 1.0), (0.1, 0.3, 0.8)): # just a bit of noise ds2 = ds1.copy(deep=True) # make a copy for the 2nd subject ds2.sa['subject'] = [2] ds2.samples += nsc * np.random.normal(size=ds1.shape) # make sure that both have the same voxel indices assert(np.all(ds1.fa.voxel_indices == ds2.fa.voxel_indices)) ds_both = vstack((ds1, ds2))# join 2 images into a single dataset # with .sa.subject distinguishing both sl = sphere_searchlight(corr12, radius=2) slmap = sl(ds_both) ok_(np.all(slmap.samples >= thr)) ok_(np.mean(slmap.samples) >= thr) def test_swaroop_case(self): """Test hdf5 backend to pass results on Swaroop's usecase """ skip_if_no_external('h5py') from mvpa2.measures.base import Measure class sw_measure(Measure): def __init__(self): Measure.__init__(self, auto_train=True) def _call(self, dataset): # For performance measures -- increase to 50-200 # np.sum here is just to get some meaningful value in # them #return np.ones(shape=(2, 2))*np.sum(dataset) return Dataset( np.array([{'d': np.ones(shape=(5, 5)) * np.sum(dataset)}], dtype=object)) results = [] ds = datasets['3dsmall'].copy(deep=True) ds.fa['voxel_indices'] = ds.fa.myspace our_custom_prefix = tempfile.mktemp() for backend in ['native'] + \ (externals.exists('h5py') and ['hdf5'] or []): sl = sphere_searchlight(sw_measure(), radius=1, tmp_prefix=our_custom_prefix, results_backend=backend) t0 = time.time() results.append(np.asanyarray(sl(ds))) # print "Done for backend %s in %d sec" % (backend, time.time() - t0) # because of swaroop's ad-hoc (who only could recommend such # a construct?) use case, and absent fancy working assert_objectarray_equal # let's compare manually #assert_objectarray_equal(*results) if not externals.exists('h5py'): self.assertRaises(RuntimeError, sphere_searchlight, sw_measure(), results_backend='hdf5') raise SkipTest('h5py required for test of backend="hdf5"') assert_equal(results[0].shape, results[1].shape) results = [r.flatten() for r in results] for x, y in zip(*results): assert_equal(x.keys(), y.keys()) assert_array_equal(x['d'], y['d']) # verify that no junk is left behind tempfiles = glob.glob(our_custom_prefix + '*') assert_equal(len(tempfiles), 0) def test_nblocks(self): skip_if_no_external('pprocess') # just a basic test to see that we are getting the same # results with different nblocks ds = datasets['3dsmall'].copy(deep=True)[:, :13] ds.fa['voxel_indices'] = ds.fa.myspace cv = CrossValidation(GNB(), OddEvenPartitioner()) res1 = sphere_searchlight(cv, radius=1, nproc=2)(ds) res2 = sphere_searchlight(cv, radius=1, nproc=2, nblocks=5)(ds) assert_array_equal(res1, res2) def test_custom_results_fx_logic(self): # results_fx was introduced for the blow-up-the-memory-Swaroop # where keeping all intermediate results of the dark-magic SL # hyperalignment is not feasible. So it is desired to split # searchlight computation in more blocks while composing the # target result "on-the-fly" from available so far results. # # Implementation relies on using generators feeding the # results_fx with fresh results whenever those become # available. # # This test/example's "measure" creates files which should be # handled by the results_fx function and removed in this case # to check if we indeed have desired high number of blocks while # only limited nproc. skip_if_no_external('pprocess') tfile = tempfile.mktemp('mvpa', 'test-sl') ds = datasets['3dsmall'].copy()[:, :25] # smaller copy ds.fa['voxel_indices'] = ds.fa.myspace ds.fa['feature_id'] = np.arange(ds.nfeatures) nproc = 3 # it is not about computing -- so we will can # start more processes than possibly having CPUs just to test nblocks = nproc * 7 # figure out max number of features to be given to any proc_block # yoh: not sure why I had to +1 here... but now it became more robust and # still seems to be doing what was demanded so be it max_block = int(ceil(ds.nfeatures / float(nblocks)) + 1) def print_(s, *args): """For local debugging""" #print s, args pass def results_fx(sl=None, dataset=None, roi_ids=None, results=None): """It will "process" the results by removing those files generated inside the measure """ res = [] print_("READY") for x in results: ok_(isinstance(x, list)) res.append(x) print_("R: ", x) for r in x: # Can happen if we requested those .ca's enabled # -- then automagically _proc_block would wrap # results in a dataset... Originally detected by # running with MVPA_DEBUG=.* which triggered # enabling all ca's if is_datasetlike(r): r = np.asscalar(r.samples) os.unlink(r) # remove generated file print_("WAITING") results_ds = hstack(sum(res, [])) # store the center ids as a feature attribute since we use # them for testing results_ds.fa['center_ids'] = roi_ids return results_ds def results_postproc_fx(results): for ds in results: ds.fa['test_postproc'] = np.atleast_1d(ds.a.roi_center_ids**2) return results def measure(ds): """The "measure" will check if a run with the same "index" from previous block has been processed by now """ f = '%s+%03d' % (tfile, ds.fa.feature_id[0] % (max_block * nproc)) print_("FID:%d f:%s" % (ds.fa.feature_id[0], f)) # allow for up to few seconds to wait for the file to # disappear -- i.e. its result from previous "block" was # processed t0 = time.time() while os.path.exists(f) and time.time() - t0 < 4.: time.sleep(0.5) # so it does take time to compute the measure pass if os.path.exists(f): print_("ERROR: ", f) raise AssertionError("File %s must have been processed by now" % f) open(f, 'w').write('XXX') # signal that we have computing this measure print_("RES: %s" % f) return f sl = sphere_searchlight(measure, radius=0, nproc=nproc, nblocks=nblocks, results_postproc_fx=results_postproc_fx, results_fx=results_fx, center_ids=np.arange(ds.nfeatures) ) assert_equal(len(glob.glob(tfile + '*')), 0) # so no junk around try: res = sl(ds) assert_equal(res.nfeatures, ds.nfeatures) # verify that we did have results_postproc_fx called assert_array_equal(res.fa.test_postproc, np.power(res.fa.center_ids, 2)) finally: # remove those generated left-over files for f in glob.glob(tfile + '*'): os.unlink(f) def test_gnbsearghlight_exclude_partition(self): # just a smoke test with a custom partitioner ds1 = datasets['3dsmall'].copy(deep=True) gnb_sl = GNBSearchlight( GNB(), generator=CustomPartitioner([([0], [1])]), qe=IndexQueryEngine(myspace=Sphere(2)), errorfx=None) res = gnb_sl(ds1) def test_splitter_gnbsearghlight(self): ds1 = datasets['3dsmall'].copy(deep=True) gnb_sl = GNBSearchlight( GNB(), generator=CustomPartitioner([([0], [1])]), qe=IndexQueryEngine(myspace=Sphere(2)), splitter=Splitter(attr='partitions', attr_values=[1, 2]), errorfx=None) res = gnb_sl(ds1) assert_equal(res.nsamples, (ds1.chunks == 1).sum()) def test_cached_qe_gnbsearchlight(self): ds1 = datasets['3dsmall'].copy(deep=True) qe = IndexQueryEngine(myspace=Sphere(2)) cached_qe = CachedQueryEngine(qe) gnb_sl = GNBSearchlight(GNB(), NFoldPartitioner(), qe=cached_qe) res = gnb_sl(ds1) assert_false(cached_qe.ids is None) def test_gnbsearchlight_3partitions_and_splitter(self): ds = self.dataset[:, :20] # custom partitioner which provides 3 partitions part = CustomPartitioner([([2], [3], [1])]) gnb_sl = sphere_gnbsearchlight(GNB(), part) res_gnb_sl = gnb_sl(ds) # compare results to full blown searchlight sl = sphere_searchlight(CrossValidation(GNB(), part)) res_sl = sl(ds) assert_datasets_equal(res_gnb_sl, res_sl) # and theoretically for this simple single cross-validation we could # just use Splitter splitter = Splitter('chunks', [2, 3]) # we have to put explicit None since can't become a kwarg in 1 day any # longer here gnb_sl_ = sphere_gnbsearchlight(GNB(), None, splitter=splitter) res_gnb_sl_ = gnb_sl_(ds) assert_datasets_equal(res_gnb_sl, res_gnb_sl_) def suite(): # pragma: no cover return unittest.makeSuite(SearchlightTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_searchlight_hyperalignment.py000066400000000000000000000514161323370031300243260ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for Searchlight Hyperalignment ...""" import unittest import numpy as np from mvpa2.algorithms.searchlight_hyperalignment import SearchlightHyperalignment, \ FeatureSelectionHyperalignment, compute_feature_scores from mvpa2.mappers.zscore import zscore from mvpa2.misc.support import idhash from mvpa2.misc.data_generators import \ random_affine_transformation, local_random_affine_transformations from mvpa2.misc.neighborhood import Sphere, scatter_neighborhoods from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.base.dataset import hstack from mvpa2.datasets.base import Dataset from mvpa2.mappers.staticprojection import StaticProjectionMapper class SearchlightHyperalignmentTests(unittest.TestCase): @reseed_rng() def get_testdata(self): # get a dataset with some prominent trends in it ds4l = datasets['uni4large'] # lets select for now only meaningful features ds_orig = ds4l[:, ds4l.a.nonbogus_features] zscore(ds_orig, chunks_attr=None) n = 4 # # of datasets to generate Rs, dss_rotated, dss_rotated_clean = [], [], [] # now lets compose derived datasets by using some random # rotation(s) while len(dss_rotated_clean) < n: ds_ = random_affine_transformation(ds_orig, scale_fac=1.0, shift_fac=0.) if ds_.a.random_scale <= 0: continue Rs.append(ds_.a.random_rotation) zscore(ds_, chunks_attr=None) dss_rotated_clean.append(ds_) i = len(dss_rotated_clean) - 1 ds_2 = hstack([ds_, ds4l[:, ds4l.a.bogus_features[i * 4: i * 4 + 4]]]) zscore(ds_2, chunks_attr=None) dss_rotated.append(ds_2) return ds_orig, dss_rotated, dss_rotated_clean, Rs def test_compute_feature_scores(self): ds_orig, dss_rotated, dss_rotated_clean, _ = self.get_testdata() fs_clean = compute_feature_scores(dss_rotated_clean) fs_noisy = compute_feature_scores(dss_rotated) # Making sure features with least score are almost all bogus features assert_true(np.all([np.sum(np.argsort(fs)[:4] > 3) > 2 for fs in fs_noisy])) # Making sure the feature scores of true features are in the same order # assert_array_equal(np.argsort(np.asarray(fs_noisy)[:, :4]), # np.argsort(np.asarray(fs_clean))) # exclude dataset tests fs_no4 = compute_feature_scores(dss_rotated, exclude_from_model=[3]) fs_3ds = compute_feature_scores(dss_rotated[:3]) # feature scores of non-excluded datasets shouldn't change assert_array_equal(np.asarray(fs_no4)[:3, ], np.asarray(fs_3ds)) # feature scores of excluded dataset should still make sense and be the same assert_array_equal(fs_noisy[3], fs_no4[3]) # Not true for non-excluded datasets assert(np.alltrue(np.asarray(fs_noisy)[:3, ] != np.asarray(fs_no4)[:3, ])) fs_no34 = compute_feature_scores(dss_rotated, exclude_from_model=[2, 3]) fs_2ds = compute_feature_scores(dss_rotated[:2]) # feature scores of non-exluded datasets shouldn't change assert_array_equal(np.asarray(fs_no34)[:2, ], np.asarray(fs_2ds)) def test_hyperalignment_measure(self): ref_ds = 0 fsha = FeatureSelectionHyperalignment() ds_orig, dss_rotated, dss_rotated_clean, Rs = self.get_testdata() # Lets test two scenarios -- in one with no noise -- we should get # close to perfect reconstruction. If noisy features were added -- not so good for noisy, dss in ((False, dss_rotated_clean), (True, dss_rotated)): # to verify that original datasets didn't get changed by # Hyperalignment store their idhashes of samples idhashes = [idhash(ds.samples) for ds in dss] idhashes_targets = [idhash(ds.targets) for ds in dss] mappers = fsha(dss) mappers = [StaticProjectionMapper(proj=m, recon=m.T) for m in mappers] idhashes_ = [idhash(ds.samples) for ds in dss] idhashes_targets_ = [idhash(ds.targets) for ds in dss] self.assertEqual( idhashes, idhashes_, msg="Hyperalignment must not change original data.") self.assertEqual( idhashes_targets, idhashes_targets_, msg="Hyperalignment must not change original data targets.") # Map data back dss_clean_back = [m.forward(ds_) for m, ds_ in zip(mappers, dss)] _ = [zscore(sd, chunks_attr=None) for sd in dss_clean_back] nddss = [] ndcss = [] nf = ds_orig.nfeatures ds_norm = np.linalg.norm(dss[ref_ds].samples[:, :nf]) ds_orig_Rref = np.dot(ds_orig.samples, Rs[ref_ds]) \ * np.sign(dss_rotated_clean[ref_ds].a.random_scale) zscore(ds_orig_Rref, chunks_attr=None) for ds_back in dss_clean_back: ndcs = np.diag(np.corrcoef(ds_back.samples.T[:nf, ], ds_orig_Rref.T)[nf:, :nf], k=0) ndcss += [ndcs] dds = ds_back.samples[:, :nf] - ds_orig_Rref ndds = np.linalg.norm(dds) / ds_norm nddss += [ndds] # First compare correlations snoisy = ('clean', 'noisy')[int(noisy)] self.assertTrue( np.all(np.array(ndcss) >= (0.9, 0.8)[int(noisy)]), msg="Should have reconstructed original dataset more or" " less. Got correlations %s in %s case." % (ndcss, snoisy)) # normed differences self.assertTrue( np.all(np.array(nddss) <= (.2, 3)[int(noisy)]), msg="Should have reconstructed original dataset more or" " less for all. Got normed differences %s in %s case." % (nddss, snoisy)) self.assertTrue( nddss[ref_ds] <= (.1, 0.4)[int(noisy)], msg="Should have reconstructed original dataset quite " "well even with zscoring. Got normed differences %s " "in %s case." % (nddss, snoisy)) self.assertTrue( np.all(np.array(nddss) / nddss[ref_ds] >= (0.95, 0.8)[int(noisy)]), msg="Should have reconstructed orig_ds best of all. " "Got normed differences %s in %s case with ref_ds=%d." % (nddss, snoisy, ref_ds)) # Testing feature selection within the measure using fraction and count # same features fsha_fsf = FeatureSelectionHyperalignment(featsel=0.5) fsha_fsn = FeatureSelectionHyperalignment(featsel=4) fsha_fsf_same = FeatureSelectionHyperalignment(featsel=0.5, use_same_features=True) fsha = FeatureSelectionHyperalignment(full_matrix=False) # check for valueerror if full_matrix=False and no roi_seed fa self.assertRaises(ValueError, fsha, dss_rotated) fsha = FeatureSelectionHyperalignment() dss_rotated[ref_ds].fa['roi_seed'] = [1, 0, 0, 0, 0, 0, 0, 0] mappers_fsf = fsha_fsf(dss_rotated) mappers_fsf_same = fsha_fsf_same(dss_rotated) mappers_fsn = fsha_fsn(dss_rotated) mappers = fsha(dss_rotated_clean) mappers_diffsizedss = fsha_fsf([sd[:, nfs] for nfs, sd in zip([np.arange(5), np.random.permutation(np.arange(8)), np.arange(8)[::-1], np.arange(8)], dss_rotated)]) # Testing that most of noisy features are eliminated from reference data assert_true(np.alltrue([np.sum(m[:4, :4].std(0) > 0) > 2 for m in mappers_fsf])) # using same features make it most likely to eliminate all noisy features assert_true(np.alltrue([np.sum(m[:4, :4].std(0) > 0) == 4 for m in mappers_fsf_same])) assert_true(np.alltrue([np.sum(m[:4, :4].std(0) > 0) > 2 for m in mappers_fsn])) # And it correctly maps the selected features if they are selected if np.alltrue([np.all(m[4:, :4] == 0) for m in mappers_fsf]): for m, mfs in zip(mappers, mappers_fsf): assert_array_equal(m, mfs[:4, :4]) if np.alltrue([np.all(m[4:, :4] == 0) for m in mappers_fsf_same]): for m, mfs in zip(mappers, mappers_fsf_same): assert_array_equal(m, mfs[:4, :4]) # testing roi_seed forces feature selection dss_rotated[ref_ds].fa['roi_seed'] = [0, 0, 0, 0, 0, 0, 0, 1] fsha_fsf = FeatureSelectionHyperalignment(featsel=0.5) mappers_fsf = fsha_fsf(dss_rotated) assert(np.alltrue([np.sum(m[7, :] == 0) == 4 for m in mappers_fsf])) @reseed_rng() @with_tempfile('.hdf5') def test_searchlight_hyperalignment(self, tempfile): skip_if_no_external('scipy') skip_if_no_external('h5py') ds_orig = datasets['3dsmall'].copy()[:, :15] ds_orig.fa['voxel_indices'] = ds_orig.fa.myspace space = 'voxel_indices' # total number of datasets for the analysis nds = 5 zscore(ds_orig, chunks_attr=None) dss = [ds_orig] # create a few distorted datasets to match the desired number of datasets # not sure if this truly mimics the real data, but at least we can test # implementation while len(dss) < nds - 1: sd = local_random_affine_transformations( ds_orig, scatter_neighborhoods( Sphere(1), ds_orig.fa[space].value, deterministic=True)[1], Sphere(2), space=space, scale_fac=1.0, shift_fac=0.0) # sometimes above function returns dataset with nans, infs, we don't want that. if np.sum(np.isnan(sd.samples)+np.isinf(sd.samples)) == 0 \ and np.all(sd.samples.std(0)): dss.append(sd) ds_orig_noisy = ds_orig.copy() ds_orig_noisy.samples += 0.1 * np.random.random(size=ds_orig_noisy.shape) dss.append(ds_orig_noisy) _ = [zscore(sd, chunks_attr=None) for sd in dss[1:]] # we should have some distortion for ds in dss[1:]: assert_false(np.all(ds_orig.samples == ds.samples)) # testing checks slhyp = SearchlightHyperalignment(ref_ds=1, exclude_from_model=[1]) self.assertRaises(ValueError, slhyp, dss[:3]) slhyp = SearchlightHyperalignment(ref_ds=3) self.assertRaises(ValueError, slhyp, dss[:3]) # explicit test of exclude_from_model slhyp = SearchlightHyperalignment( ref_ds=2, exclude_from_model=[1], featsel=0.7) projs1 = slhyp(dss) aligned1 = [proj.forward(ds) for proj, ds in zip(projs1, dss)] samples = dss[1].samples.copy() dss[1].samples += 0.1 * np.random.random(size=dss[1].shape) projs2 = slhyp(dss) aligned2 = [proj.forward(ds) for proj, ds in zip(projs1, dss)] for i in [0, 2, 3, 4]: assert_array_almost_equal(projs1[i].proj.todense(), projs2[i].proj.todense()) assert_array_almost_equal(aligned1[i].samples, aligned2[i].samples) assert_false(np.all( projs1[1].proj.todense() == projs1[2].proj.todense())) assert_false(np.all(aligned1[1].samples == aligned2[1].samples)) dss[1].samples = samples # store projections for each mapper separately projs = list() # run the algorithm with all combinations of the two major parameters # for projection calculation. for kwargs in [{'combine_neighbormappers': True, 'nproc': 1 + int(externals.exists('pprocess'))}, {'combine_neighbormappers': True, 'dtype': 'float64', 'compute_recon': True}, {'combine_neighbormappers': True, 'exclude_from_model': [2, 4]}, {'combine_neighbormappers': False}, {'combine_neighbormappers': False, 'mask_node_ids': np.arange(dss[0].nfeatures).tolist()}, {'combine_neighbormappers': True, 'sparse_radius': 1}, {'combine_neighbormappers': True, 'nblocks': 2}]: slhyp = SearchlightHyperalignment(radius=2, **kwargs) mappers = slhyp(dss) # one mapper per input ds assert_equal(len(mappers), nds) projs.append(mappers) # some checks for midx in range(nds): # making sure mask_node_ids options works as expected assert_array_almost_equal(projs[3][midx].proj.todense(), projs[4][midx].proj.todense()) # recon check assert_array_almost_equal(projs[0][midx].proj.todense(), projs[1][midx].recon.T.todense(), decimal=5) assert_equal(projs[1][midx].proj.dtype, 'float64') assert_equal(projs[0][midx].proj.dtype, 'float32') # making sure the projections make sense for proj in projs: # no .max on sparse matrices on older scipy (e.g. on precise) so conver to array first max_weight = proj[0].proj.toarray().max(1).squeeze() diag_weight = proj[0].proj.diagonal() # Check to make sure diagonal is the max weight, in almost all rows for reference subject assert(np.sum(max_weight == diag_weight) / float(len(diag_weight)) >= 0.80) # and not true for other subjects for i in range(1, nds - 1): assert(np.sum(proj[i].proj.toarray().max(1).squeeze() == proj[i].proj.diagonal()) / float(proj[i].proj.shape[0]) < 0.80) # Check to make sure projection weights match across duplicate datasets max_weight = proj[-1].proj.toarray().max(1).squeeze() diag_weight = proj[-1].proj.diagonal() # Check to make sure diagonal is the max weight, in almost all rows for reference subject assert(np.sum(max_weight == diag_weight) / float(len(diag_weight)) >= 0.80) # project data dss_hyper = [hm.forward(sd) for hm, sd in zip(projs[0], dss)] _ = [zscore(sd, chunks_attr=None) for sd in dss_hyper] ndcss = [] nf = ds_orig.nfeatures for ds_hyper in dss_hyper: ndcs = np.diag(np.corrcoef(ds_hyper.samples.T, ds_orig.samples.T)[nf:, :nf], k=0) ndcss += [ndcs] assert_true(np.median(ndcss[0]) > 0.9) # noisy copy of original dataset should be similar to original after hyperalignment assert_true(np.median(ndcss[-1]) > 0.9) assert_true(np.all([np.median(ndcs) > 0.2 for ndcs in ndcss[1:-2]])) # just a single test to verify that we can save hyperalignment instances try: from mvpa2.base.hdf5 import h5save except ImportError: raise SkipTest("h5save of hyperalignment") h5save(tempfile, slhyp) @reseed_rng() def test_searchlight_hyperalignment_warnings_and_exceptions(self): skip_if_no_external('scipy') skip_if_no_external('hdf5') # needed for default results backend hdf5 ds_orig = datasets['3dsmall'][:, :1] # tiny dataset just to test exceptions ds_orig.fa['voxel_indices'] = ds_orig.fa.myspace slhyper = SearchlightHyperalignment() self.assertRaises(ValueError, slhyper, [ds_orig]) # need more than 1 ds_orig.samples += 1.0 # not zscored for sure # TODO: we need assert_warnings to also capture our own warnings, # currently they are just suppressed :-/ So this is just a smoke test mappers = slhyper([ds_orig, ds_orig.copy()]) @reseed_rng() def test_custom_qas(self): # Test if we could provide custom QEs per each of the datasets skip_if_no_external('scipy') skip_if_no_external('hdf5') # needed for default results backend hdf5 ns, nf = 10, 4 # # of samples/features -- a very BIG dataset ;) ds0 = Dataset(np.random.normal(size=(ns, nf))) zscore(ds0, chunks_attr=None) ds1 = ds0[:, [3, 0, 1, 2]] # features circular shifted to the right qe0 = FancyQE([[0], [1], [2], [3]]) # does nothing qe1 = FancyQE([[1], [2], [3], [0]]) # knows to look into the right def apply_slhyper(queryengine, dss=[ds0, ds1], return_mappers=False, **kw): """Helper for a common code to create/call slhyper""" slhyper = SearchlightHyperalignment(queryengine=queryengine, **kw) mappers = slhyper(dss) proj = [m.proj.todense() for m in mappers] return (proj, mappers) if return_mappers else proj # since this single qe resulted in trying to match non-matching time series # projections should be non-identity, but no offdiagonal elements assert_no_offdiag(apply_slhyper(qe0)) # both are provided projs, mappers = apply_slhyper([qe0, qe1], return_mappers=True) tprojs_shifted = [np.eye(nf), np.roll(np.eye(nf), 1, axis=0)] assert_array_equal(projs[0], tprojs_shifted[0]) # must be identity since we made them so assert_array_equal(projs[1], tprojs_shifted[1]) # pretty much incorporating that shift # TODO -- not identity assert_array_equal(projs[0], np.eye(len(p))) # must be identity since we made them so # and must restore data properly assert_array_almost_equal(mappers[0].forward(ds0), mappers[1].forward(ds1)) # give more then # of qes assert_raises(ValueError, SearchlightHyperalignment(queryengine=[qe0, qe1]), [ds0, ds1, ds0]) # The one having no voxels for the "1st" id in "subj1" qe1_ = FancyQE([[1], [], [3], [0]]) # knows to look into the right projs = apply_slhyper(qe1_) assert_no_offdiag(projs) for proj in projs: # assess that both have '2nd' one 0 # but not the others! assert_array_equal(np.diagonal(proj) != 0, [True, True, False, True]) # smoke test whenever combine is False # In this case should work ok apply_slhyper(qe0, combine_neighbormappers=False) # this one ok as well since needs only matching ones in ref_ds apply_slhyper([qe0, qe1], combine_neighbormappers=False) # here since features do not match node_ids -- should raise ValueError assert_raises(ValueError, apply_slhyper, qe1, combine_neighbormappers=False) assert_raises(ValueError, apply_slhyper, [qe0, qe1], ref_ds=1, combine_neighbormappers=False) # and now only one qe lacking for that id projs = apply_slhyper([qe0, qe1_]) tproj0 = np.eye(nf) tproj0[1, 1] = 0 tprojs_shifted_1st0 = [tproj0, np.roll(tproj0, 1, axis=0)] for proj, tproj in zip(projs, tprojs_shifted_1st0): # assess that both have '2nd' one 0 # but not the others! assert_array_equal(proj, tproj) # And now a test with varying number of selected fids, no shift qe0 = FancyQE([[0], [1, 2], [1, 2, 3], [0, 1, 2, 3]]) projs = apply_slhyper(qe0) # Test that in general we get larger coefficients for "correct" transformation for p, tproj in zip(projs, tprojs_shifted): assert(np.all(np.asarray(p)[tproj>0] >= 1.0)) assert_array_lequal(np.mean(np.asarray(p)[tproj == 0]), 0.3) qe1 = FancyQE([[0, 1, 2, 3], [1, 2, 3], [2, 3], [3]]) # Just a smoke test, for now TODO projs = apply_slhyper([qe0, qe1]) def assert_no_offdiag(a): if isinstance(a, list): for a_ in a: assert_no_offdiag(a_) else: assert_array_equal(a - np.diag(np.diagonal(a)), 0) class FancyQE(object): """Little helper QE which knows what to return for neighbors""" def __init__(self, results, ids=None): if ids is None: # then for all ids in results which is a list ids = list(range(len(results))) else: assert (len(results) >= max(ids)) assert (min(ids) >= 0) self.ids = ids self.results = results def train(self, ds): # anything else to do ? ;) assert (ds.nfeatures > max(self.ids)) def __getitem__(self, i): return self.results[i] def suite(): # pragma: no cover return unittest.makeSuite(SearchlightHyperalignmentTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_senses.py000066400000000000000000000037371323370031300202260ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Sensitivity Analyzers""" import numpy as np from mvpa2.testing import * from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.generators.partition import NFoldPartitioner from mvpa2.clfs.meta import SplitClassifier from mvpa2.clfs.smlr import SMLR @reseed_rng() @labile(5, 1) def test_splitclf_sensitivities(): datasets = [normal_feature_dataset(perlabel=100, nlabels=2, nfeatures=4, nonbogus_features=[0, i + 1], snr=1, nchunks=2) for i in xrange(2)] sclf = SplitClassifier(SMLR(), NFoldPartitioner()) analyzer = sclf.get_sensitivity_analyzer() senses1 = analyzer(datasets[0]) senses2 = analyzer(datasets[1]) for senses in senses1, senses2: # This should be False when comparing two folds assert_false(np.allclose(senses.samples[0], senses.samples[2])) assert_false(np.allclose(senses.samples[1], senses.samples[3])) # Moreover with new data we should have got different results # (i.e. it must retrained correctly) for s1, s2 in zip(senses1, senses2): assert_false(np.allclose(s1, s2)) # and we should have "selected" "correct" voxels for i, senses in enumerate((senses1, senses2)): assert_equal(set(np.argsort(np.max(np.abs(senses), axis=0))[-2:]), set((0, i + 1))) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_smlr.py000066400000000000000000000040051323370031300176700ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA sparse multinomial logistic regression classifier""" import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.clfs.smlr import SMLR from mvpa2.misc.data_generators import normal_feature_dataset @sweepargs(clf=(SMLR(), SMLR(implementation='Python'))) def test_smlr(clf): data = datasets['dumb'] clf.train(data) # prediction has to be perfect # # XXX yoh: whos said that?? ;-) # # There is always a tradeoff between learning and # generalization errors so... but in this case the problem is # more interesting: absent bias disallows to learn data you # have here -- there is no solution which would pass through # (0,0) predictions = clf.predict(data.samples) assert_array_equal(predictions, data.targets) def test_smlr_state(): data = datasets['dumb'] clf = SMLR() clf.train(data) clf.ca.enable('estimates') clf.ca.enable('predictions') p = np.asarray(clf.predict(data.samples)) assert_array_equal(p, clf.ca.predictions) assert_equal(np.array(clf.ca.estimates).shape[0], np.array(p).shape[0]) @sweepargs(clf=(SMLR(fit_all_weights=False), SMLR(fit_all_weights=False, unsparsify=True))) def test_smlr_sensitivities(clf): data = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4) # use SMLR on binary problem, but not fitting all weights clf.train(data) # now ask for the sensitivities WITHOUT having to pass the dataset # again sens = clf.get_sensitivity_analyzer(force_train=False)(None) assert_equal(sens.shape, (len(data.UT) - 1, data.nfeatures)) pymvpa2-2.6.4/mvpa2/tests/test_som.py000066400000000000000000000052171323370031300175170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA SOM mapper""" import unittest import numpy as np from mvpa2 import cfg from mvpa2.mappers.som import SimpleSOMMapper from mvpa2.datasets.base import dataset_wizard class SOMMapperTests(unittest.TestCase): def test_periodic_boundaries(self): som = SimpleSOMMapper((10, 5), 200, learning_rate=0.05) test_dqdshape = np.array([5,2,5,3]) # som._dqdshape only defined in newer version # this is not explicitly linked to the periodic boundary conditions, # but had trouble coming up with a simple test for them self.assertTrue((som._dqdshape == test_dqdshape).all()) def test_kohonen_update(self): # before update error occurred when learning_rate*number of samples > 1 # here use extreme learning_rate to force bad behavior som = SimpleSOMMapper((10, 5), 200, learning_rate=1.0) trainer = np.ones([8,3]) som.train(trainer) # use 10 instead of 4 to allow for some randomness in the training # fail values tend to be closer to 10^30 self.assertTrue((np.abs(som.K) <= 10).all()) def test_simple_som(self): colors = np.array([[0., 0., 0.], [0., 0., 1.], [0., 1., 0.], [1., 0., 0.], [0., 1., 1.], [1., 0., 1.], [1., 1., 0.], [1., 1., 1.]]) distance_measures = (None, lambda x, y:(x ** 3 + y ** 3) ** (1. / 3)) for distance_measure in distance_measures: # only small SOM for speed reasons som = SimpleSOMMapper((10, 5), 200, learning_rate=0.05) # no access when nothing is there self.assertRaises(RuntimeError, som._access_kohonen) som.train(colors) fmapped = som.forward(colors) self.assertTrue(fmapped.shape == (8, 2)) # reverse mapping rmapped = som.reverse(fmapped) if cfg.getboolean('tests', 'labile', default='yes'): # should approximately restore the input, but could fail # with bad initialization self.assertTrue((np.round(rmapped) == colors).all()) def suite(): # pragma: no cover return unittest.makeSuite(SOMMapperTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_splitter.py000066400000000000000000000427261323370031300205750ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA pattern handling""" import unittest import numpy as np from mvpa2.testing.datasets import datasets from mvpa2.base.node import ChainNode from mvpa2.datasets.base import dataset_wizard, Dataset from mvpa2.generators.partition import NFoldPartitioner from mvpa2.mappers.slicing import StripBoundariesSamples from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import * from mvpa2.testing.tools import ok_, assert_array_equal, assert_true, \ assert_false, assert_equal, assert_not_equal, reseed_rng class SplitterTests(unittest.TestCase): @reseed_rng() def setUp(self): self.data = dataset_wizard(np.random.normal(size=(100,10)), targets=[ i%4 for i in range(100) ], chunks=[ i//10 for i in range(100)]) def test_splitattr_deprecation(self): # Just a smoke test -- remove for 2.1 release nfs = NFoldPartitioner() _ = nfs.splitattr def test_reprs(self): # very very basic test to see that there is no errors in reprs # of partitioners import mvpa2.generators.partition as mgp for sclass in (x for x in dir(mgp) if x.endswith('Partitioner')): args = (1,) if sclass == 'ExcludeTargetsCombinationsPartitioner': args += (1,1) pclass = getattr(mgp, sclass) r = repr(pclass(*args)) assert_false('ERROR' in r) def test_simplest_cv_pat_gen(self): # create the generator nfs = NFoldPartitioner(cvtype=1) spl = Splitter(attr='partitions') # now get the xval pattern sets One-Fold CV) xvpat = [ list(spl.generate(p)) for p in nfs.generate(self.data) ] self.assertTrue( len(xvpat) == 10 ) for i,p in enumerate(xvpat): self.assertTrue( len(p) == 2 ) self.assertTrue( p[0].nsamples == 90 ) self.assertTrue( p[1].nsamples == 10 ) self.assertTrue( p[1].chunks[0] == i ) def test_odd_even_split(self): oes = OddEvenPartitioner() spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in oes.generate(self.data) ] self.assertTrue(len(splits) == 2) for i,p in enumerate(splits): self.assertTrue( len(p) == 2 ) self.assertTrue( p[0].nsamples == 50 ) self.assertTrue( p[1].nsamples == 50 ) assert_array_equal(splits[0][1].sa['chunks'].unique, [1, 3, 5, 7, 9]) assert_array_equal(splits[0][0].sa['chunks'].unique, [0, 2, 4, 6, 8]) assert_array_equal(splits[1][0].sa['chunks'].unique, [1, 3, 5, 7, 9]) assert_array_equal(splits[1][1].sa['chunks'].unique, [0, 2, 4, 6, 8]) # check if it works on pure odd and even chunk ids moresplits = [ list(spl.generate(p)) for p in oes.generate(splits[0][0])] for split in moresplits: self.assertTrue(split[0] is not None) self.assertTrue(split[1] is not None) def test_half_split(self): hs = HalfPartitioner() spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in hs.generate(self.data) ] self.assertTrue(len(splits) == 2) for i,p in enumerate(splits): self.assertTrue( len(p) == 2 ) self.assertTrue( p[0].nsamples == 50 ) self.assertTrue( p[1].nsamples == 50 ) assert_array_equal(splits[0][1].sa['chunks'].unique, [0, 1, 2, 3, 4]) assert_array_equal(splits[0][0].sa['chunks'].unique, [5, 6, 7, 8, 9]) assert_array_equal(splits[1][1].sa['chunks'].unique, [5, 6, 7, 8, 9]) assert_array_equal(splits[1][0].sa['chunks'].unique, [0, 1, 2, 3, 4]) # check if it works on pure odd and even chunk ids moresplits = [ list(spl.generate(p)) for p in hs.generate(splits[0][0])] for split in moresplits: self.assertTrue(split[0] is not None) self.assertTrue(split[1] is not None) def test_n_group_split(self): """Test NGroupSplitter alongside with the reversal of the order of spit out datasets """ # Test 2 groups like HalfSplitter first hs = NGroupPartitioner(2) for isreversed, splitter in enumerate((hs, hs)): if isreversed: spl = Splitter(attr='partitions', reverse=True) else: spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in hs.generate(self.data) ] self.assertTrue(len(splits) == 2) for i, p in enumerate(splits): self.assertTrue( len(p) == 2 ) self.assertTrue( p[0].nsamples == 50 ) self.assertTrue( p[1].nsamples == 50 ) assert_array_equal(splits[0][1-isreversed].sa['chunks'].unique, [0, 1, 2, 3, 4]) assert_array_equal(splits[0][isreversed].sa['chunks'].unique, [5, 6, 7, 8, 9]) assert_array_equal(splits[1][1-isreversed].sa['chunks'].unique, [5, 6, 7, 8, 9]) assert_array_equal(splits[1][isreversed].sa['chunks'].unique, [0, 1, 2, 3, 4]) # check if it works on pure odd and even chunk ids moresplits = [ list(spl.generate(p)) for p in hs.generate(splits[0][0])] for split in moresplits: self.assertTrue(split[0] is not None) self.assertTrue(split[1] is not None) # now test more groups s5 = NGroupPartitioner(5) # get the splits for isreversed, s5splitter in enumerate((s5, s5)): if isreversed: spl = Splitter(attr='partitions', reverse=True) else: spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in s5splitter.generate(self.data) ] # must have 10 splits self.assertTrue(len(splits) == 5) # check split content assert_array_equal(splits[0][1-isreversed].sa['chunks'].unique, [0, 1]) assert_array_equal(splits[0][isreversed].sa['chunks'].unique, [2, 3, 4, 5, 6, 7, 8, 9]) assert_array_equal(splits[1][1-isreversed].sa['chunks'].unique, [2, 3]) assert_array_equal(splits[1][isreversed].sa['chunks'].unique, [0, 1, 4, 5, 6, 7, 8, 9]) # ... assert_array_equal(splits[4][1-isreversed].sa['chunks'].unique, [8, 9]) assert_array_equal(splits[4][isreversed].sa['chunks'].unique, [0, 1, 2, 3, 4, 5, 6, 7]) # Test for too many groups def splitcall(spl, dat): return list(spl.generate(dat)) s20 = NGroupPartitioner(20) self.assertRaises(ValueError,splitcall,s20,self.data) @reseed_rng() def test_nfold_random_counted_selection_partitioner(self): # Lets get somewhat extensive but complete one and see if # everything is legit. 0.5 must correspond to 50%, in our case # 5 out of 10 unique chunks split_partitions = [ tuple(x.sa.partitions) for x in NFoldPartitioner(0.5).generate(self.data)] # 252 is # of combinations of 5 from 10 assert_equal(len(split_partitions), 252) # verify that all of them are unique assert_equal(len(set(split_partitions)), 252) # now let's limit our query kwargs = dict(count=10, selection_strategy='random') split10_partitions = [ tuple(x.sa.partitions) for x in NFoldPartitioner(5, **kwargs).generate(self.data)] split10_partitions_ = [ tuple(x.sa.partitions) for x in NFoldPartitioner(0.5, **kwargs).generate(self.data)] # to make sure that I deal with sets of tuples correctly: assert_equal(len(set(split10_partitions)), 10) assert_equal(len(split10_partitions), 10) assert_equal(len(split10_partitions_), 10) # and they must differ (same ones are possible but very very unlikely) assert_not_equal(split10_partitions, split10_partitions_) # but every one of them must be within known exhaustive set assert_equal(set(split_partitions).intersection(split10_partitions), set(split10_partitions)) assert_equal(set(split_partitions).intersection(split10_partitions_), set(split10_partitions_)) @reseed_rng() def test_nfold_random_counted_selection_partitioner_huge(self): # Just test that it completes in a reasonable time and does # not blow up as if would do if it was not limited by count kwargs = dict(count=10) ds = dataset_wizard(np.arange(1000).reshape((-1, 1)), targets=range(1000), chunks=range(500)*2) split_partitions_random = [ tuple(x.sa.partitions) for x in NFoldPartitioner(100, selection_strategy='random', **kwargs).generate(ds)] assert_equal(len(split_partitions_random), 10) # we get just 10 def test_custom_split(self): #simulate half splitter hs = CustomPartitioner([(None,[0,1,2,3,4]),(None,[5,6,7,8,9])]) spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in hs.generate(self.data) ] self.assertTrue(len(splits) == 2) for i,p in enumerate(splits): self.assertTrue( len(p) == 2 ) self.assertTrue( p[0].nsamples == 50 ) self.assertTrue( p[1].nsamples == 50 ) assert_array_equal(splits[0][1].sa['chunks'].unique, [0, 1, 2, 3, 4]) assert_array_equal(splits[0][0].sa['chunks'].unique, [5, 6, 7, 8, 9]) assert_array_equal(splits[1][1].sa['chunks'].unique, [5, 6, 7, 8, 9]) assert_array_equal(splits[1][0].sa['chunks'].unique, [0, 1, 2, 3, 4]) # check fully customized split with working and validation set specified cs = CustomPartitioner([([0,3,4],[5,9])]) # we want to discared the unselected partition of the data, hence attr_value # these two splitters should do exactly the same thing splitters = (Splitter(attr='partitions', attr_values=[1,2]), Splitter(attr='partitions', ignore_values=(0,))) for spl in splitters: splits = [ list(spl.generate(p)) for p in cs.generate(self.data) ] self.assertTrue(len(splits) == 1) for i,p in enumerate(splits): self.assertTrue( len(p) == 2 ) self.assertTrue( p[0].nsamples == 30 ) self.assertTrue( p[1].nsamples == 20 ) self.assertTrue((splits[0][1].sa['chunks'].unique == [5, 9]).all()) self.assertTrue((splits[0][0].sa['chunks'].unique == [0, 3, 4]).all()) def test_label_splitter(self): oes = OddEvenPartitioner(attr='targets') spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in oes.generate(self.data) ] assert_array_equal(splits[0][0].sa['targets'].unique, [0,2]) assert_array_equal(splits[0][1].sa['targets'].unique, [1,3]) assert_array_equal(splits[1][0].sa['targets'].unique, [1,3]) assert_array_equal(splits[1][1].sa['targets'].unique, [0,2]) def test_counted_splitting(self): spl = Splitter(attr='partitions') # count > #chunks, should result in 10 splits nchunks = len(self.data.sa['chunks'].unique) for strategy in Partitioner._STRATEGIES: for count, target in [ (nchunks*2, nchunks), (nchunks, nchunks), (nchunks-1, nchunks-1), (3, 3), (0, 0), (1, 1) ]: nfs = NFoldPartitioner(cvtype=1, count=count, selection_strategy=strategy) splits = [ list(spl.generate(p)) for p in nfs.generate(self.data) ] self.assertTrue(len(splits) == target) chosenchunks = [int(s[1].uniquechunks) for s in splits] # Test if configuration matches as well nsplits_cfg = len(nfs.get_partition_specs(self.data)) self.assertEqual(nsplits_cfg, target) # Check if "lastsplit" dsattr was assigned appropriately nsplits = len(splits) if nsplits > 0: # dummy-proof testing of last split for ds_ in splits[-1]: self.assertTrue(ds_.a.lastpartitionset) # test all now for isplit,split in enumerate(splits): for ds_ in split: ds_.a.lastpartitionset == isplit==nsplits-1 # Check results of different strategies if strategy == 'first': self.assertEqual(chosenchunks, range(target)) elif strategy == 'equidistant': if target == 3: self.assertEqual(chosenchunks, [0, 3, 7]) elif strategy == 'random': # none is selected twice self.assertTrue(len(set(chosenchunks)) == len(chosenchunks)) self.assertTrue(target == len(chosenchunks)) else: raise RuntimeError, "Add unittest for strategy %s" \ % strategy def test_discarded_boundaries(self): ds = datasets['hollow'] # four runs ds.sa['chunks'] = np.repeat(np.arange(4), 10) # do odd even splitting for lots of boundaries in few splits part = ChainNode([OddEvenPartitioner(), StripBoundariesSamples('chunks', 1, 2)]) parts = [d.samples.sid for d in part.generate(ds)] # both dataset should have the same samples, because the boundaries are # identical and the same sample should be stripped assert_array_equal(parts[0], parts[1]) # we strip 3 samples per boundary assert_equal(len(parts[0]), len(ds) - (3 * 3)) for i in [9, 10, 11, 19, 20, 21, 29, 30, 31]: assert_false(i in parts[0]) def test_slicing(self): hs = HalfPartitioner() spl = Splitter(attr='partitions') splits = list(hs.generate(self.data)) for s in splits: # partitioned dataset shared the data assert_true(s.samples.base is self.data.samples) splits = [ list(spl.generate(p)) for p in hs.generate(self.data) ] # with numpy 1.7.0b1 "chaining" was deprecated so let's create # check function appropriate for the given numpy version _a = np.arange(5) __a = _a[:4][:3] if __a.base is _a: # 1.7.0b1 def is_the_same_base(x, base=self.data.samples): return x.base is base elif __a.base.base is _a: # prior 1.7.0b1 def is_the_same_base(x, base=self.data.samples): return x.base.base is base else: raise RuntimeError("Uknown handling of .base by numpy") for s in splits: # we get slicing all the time assert_true(is_the_same_base(s[0].samples)) assert_true(is_the_same_base(s[1].samples)) spl = Splitter(attr='partitions', noslicing=True) splits = [ list(spl.generate(p)) for p in hs.generate(self.data) ] for s in splits: # we no slicing at all assert_false(s[0].samples.base is self.data.samples) assert_false(s[1].samples.base is self.data.samples) nfs = NFoldPartitioner() spl = Splitter(attr='partitions') splits = [ list(spl.generate(p)) for p in nfs.generate(self.data) ] for i, s in enumerate(splits): # training only first and last split if i == 0 or i == len(splits) - 1: assert_true(is_the_same_base(s[0].samples)) else: assert_true(s[0].samples.base is None) # we get slicing all the time assert_true(is_the_same_base(s[1].samples)) step_ds = Dataset(np.random.randn(20,2), sa={'chunks': np.tile([0,1], 10)}) oes = OddEvenPartitioner() spl = Splitter(attr='partitions') splits = list(oes.generate(step_ds)) for s in splits: # partitioned dataset shared the data assert_true(s.samples.base is step_ds.samples) splits = [ list(spl.generate(p)) for p in oes.generate(step_ds) ] assert_equal(len(splits), 2) for s in splits: # we get slicing all the time assert_true(is_the_same_base(s[0].samples, step_ds.samples)) assert_true(is_the_same_base(s[1].samples, step_ds.samples)) def suite(): # pragma: no cover return unittest.makeSuite(SplitterTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_state.py000066400000000000000000000302221323370031300200330ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA State parent class""" import unittest import mvpa2.support.copy as copy import numpy as np from mvpa2.base import externals from mvpa2.base.state import ConditionalAttribute, ClassWithCollections, \ ParameterCollection, _def_sep from mvpa2.base.param import * from mvpa2.misc.exceptions import UnknownStateError if __debug__: from mvpa2.base import debug class TestClassEmpty(ClassWithCollections): pass class TestClassBlank(ClassWithCollections): # We can force to have 'ca' present even though we don't have # any ConditionalAttribute defined here -- it might be added later on at run time _ATTRIBUTE_COLLECTIONS = ['ca'] pass class TestClassBlankNoExplicitStates(ClassWithCollections): pass class TestClassProper(ClassWithCollections): state1 = ConditionalAttribute(enabled=False, doc="state1 doc") state2 = ConditionalAttribute(enabled=True, doc="state2 doc") class TestClassProperChild(TestClassProper): state4 = ConditionalAttribute(enabled=False, doc="state4 doc") class TestClassReadOnlyParameter(ClassWithCollections): paramro = Parameter(0, doc="state4 doc", ro=True) class TestClassParametrized(TestClassProper, ClassWithCollections): p1 = Parameter(0) state0 = ConditionalAttribute(enabled=False) def __init__(self, **kwargs): # XXX make such example when we actually need to invoke # constructor # TestClassProper.__init__(self, **kwargs) ClassWithCollections.__init__(self, **kwargs) class StateTests(unittest.TestCase): def test_blank_state(self): empty = TestClassEmpty() blank = TestClassBlank() blank2 = TestClassBlank() self.assertRaises(AttributeError, empty.__getattribute__, 'ca') self.assertEqual(list(blank.ca.items()), []) self.assertEqual(len(blank.ca), 0) self.assertTrue(blank.ca.enabled == []) self.assertRaises(AttributeError, blank.__getattribute__, 'dummy') self.assertRaises(AttributeError, blank.__getattribute__, '_') # we shouldn't use _registerState now since metaclass statecollector wouldn't # update the ca... may be will be implemented in the future if necessity comes return ## add some conditional attribute #blank._registerState('state1', False) #self.assertTrue(blank.ca == ['state1']) #self.assertTrue(blank.ca.is_enabled('state1') == False) #self.assertTrue(blank.ca.enabled == []) #self.assertRaises(UnknownStateError, blank.__getattribute__, 'state1') ## assign value now #blank.state1 = 123 ## should have no effect since the conditional attribute wasn't enabled #self.assertRaises(UnknownStateError, blank.__getattribute__, 'state1') ## lets enable and assign #blank.ca.enable('state1') #blank.state1 = 123 #self.assertTrue(blank.state1 == 123) ## we should not share ca across instances at the moment, so an arbitrary ## object could carry some custom ca #self.assertTrue(blank2.ca == []) #self.assertRaises(AttributeError, blank2.__getattribute__, 'state1') def test_proper_state(self): proper = TestClassProper() proper2 = TestClassProper(enable_ca=['state1'], disable_ca=['state2']) # disable_ca should override anything in enable_ca proper3 = TestClassProper(enable_ca=['all'], disable_ca='all') self.assertEqual(len(proper3.ca.enabled), 0, msg="disable_ca should override anything in enable_ca") proper.ca.state2 = 1000 value = proper.ca.state2 self.assertEqual(proper.ca.state2, 1000, msg="Simple assignment/retrieval") proper.ca.disable('state2') proper.ca.state2 = 10000 self.assertEqual(proper.ca.state2, 1000, msg="Simple assignment after being disabled") proper4 = copy.deepcopy(proper) proper.ca.reset('state2') self.assertRaises(UnknownStateError, proper.ca.__getattribute__, 'state2') """Must be blank after being reset""" self.assertEqual(proper4.ca.state2, 1000, msg="Simple assignment after being reset in original instance") proper.ca.enable(['state2']) self.assertEqual(set(proper.ca.keys()), set(['state1', 'state2'])) if __debug__ and 'ENFORCE_CA_ENABLED' in debug.active: # skip testing since all ca are on now return self.assertTrue(proper.ca.enabled == ['state2']) self.assertTrue(set(proper2.ca.enabled) == set(['state1'])) self.assertRaises(AttributeError, proper.__getattribute__, 'state12') # if documentary on the state is appropriate self.assertEqual(proper2.ca.listing, ['%sstate1+%s: state1 doc' % (_def_sep, _def_sep), '%sstate2%s: state2 doc' % (_def_sep, _def_sep)]) # if __str__ lists correct number of ca str_ = str(proper2) self.assertTrue(str_.find('2 ca:') != -1) # check if disable works self.assertTrue(set(proper2.ca.enabled), set(['state1'])) proper2.ca.disable("all") self.assertEqual(set(proper2.ca.enabled), set()) proper2.ca.enable("all") self.assertEqual(len(proper2.ca.enabled), 2) proper2.ca.state1, proper2.ca.state2 = 1,2 self.assertEqual(proper2.ca.state1, 1) self.assertEqual(proper2.ca.state2, 2) # now reset them proper2.ca.reset('all') self.assertRaises(UnknownStateError, proper2.ca.__getattribute__, 'state1') self.assertRaises(UnknownStateError, proper2.ca.__getattribute__, 'state2') def test_get_save_enabled(self): """Check if we can store/restore set of enabled ca""" if __debug__ and 'ENFORCE_CA_ENABLED' in debug.active: # skip testing since all ca are on now return proper = TestClassProper() enabled_ca = proper.ca.enabled proper.ca.enable('state1') self.assertTrue(enabled_ca != proper.ca.enabled, msg="New enabled ca should differ from previous") self.assertTrue(set(proper.ca.enabled) == set(['state1', 'state2']), msg="Making sure that we enabled all ca of interest") proper.ca.enabled = enabled_ca self.assertTrue(enabled_ca == proper.ca.enabled, msg="List of enabled ca should return to original one") # TODO: make test for _copy_ca_ or whatever comes as an alternative def test_stored_temporarily(self): proper = TestClassProper() properch = TestClassProperChild(enable_ca=["state1"]) if __debug__ and 'ENFORCE_CA_ENABLED' in debug.active: # skip testing since all ca are on now return self.assertEqual(proper.ca.enabled, ["state2"]) proper.ca.change_temporarily( enable_ca=["state1"], other=properch) self.assertEqual(set(proper.ca.enabled), set(["state1", "state2"])) proper.ca.reset_changed_temporarily() self.assertEqual(proper.ca.enabled, ["state2"]) # allow to enable disable without other instance proper.ca.change_temporarily( enable_ca=["state1", "state2"]) self.assertEqual(set(proper.ca.enabled), set(["state1", "state2"])) proper.ca.reset_changed_temporarily() self.assertEqual(proper.ca.enabled, ["state2"]) def test_proper_state_child(self): """ Simple test if child gets conditional attributes from the parent as well """ proper = TestClassProperChild() self.assertEqual(set(proper.ca.keys()), set(['state1', 'state2', 'state4'])) def test_state_variables(self): """To test new ca""" class S1(ClassWithCollections): v1 = ConditionalAttribute(enabled=True, doc="values1 is ...") v1XXX = ConditionalAttribute(enabled=False, doc="values1 is ...") class S2(ClassWithCollections): v2 = ConditionalAttribute(enabled=True, doc="values12 is ...") class S1_(S1): pass class S1__(S1_): v1__ = ConditionalAttribute(enabled=False) class S12(S1__, S2): v12 = ConditionalAttribute() s1, s2, s1_, s1__, s12 = S1(), S2(), S1_(), S1__(), S12() self.assertEqual(s1.ca.is_enabled("v1"), True) s1.ca.v1 = 12 s12.ca.v1 = 120 s2.ca.v2 = 100 self.assertEqual(len(s2.ca.listing), 1) self.assertEqual(s1.ca.v1, 12) try: tempvalue = s1__.ca.v1__ self.fail("Should have puked since values were not enabled yet") except: pass def test_parametrized(self): self.assertRaises(TypeError, TestClassParametrized, p2=34, enable_ca=['state1'], msg="Should raise an exception if argument doesn't correspond to" "any parameter") a = TestClassParametrized(p1=123, enable_ca=['state1']) self.assertEqual(a.params.p1, 123, msg="We must have assigned value to instance") self.assertTrue('state1' in a.ca.enabled, msg="state1 must have been enabled") if (__debug__ and 'ID_IN_REPR' in debug.active): # next tests would fail due to ID in the tails return # validate that string representation of the object is valid and consistent a_str = repr(a) try: import mvpa2.tests.test_state as test_state exec("a2=%s" % a_str) except Exception as e: self.fail(msg="Failed to generate an instance out of " "representation %s. Got exception: %s" % (a_str, e)) # For specifics of difference in exec keyword from exec() function in # python3 see # http://stackoverflow.com/questions/6561482/why-did-python-3-changes-to-exec-break-this-code # which mandates us to use exec here around repr so it gets access to # above a2 placed into locals() exec('a2_str_=repr(a2)') a2_str = locals()['a2_str_'] # crazy ha? it must not be a2_str either self.assertTrue(a2_str == a_str, msg="Generated object must have the same repr. Got %s and %s" % (a_str, a2_str)) # Test at least that repr of collection is of correct syntax aparams_str = repr(a.params) try: import mvpa2.tests.test_state as test_state exec("aparams2=%s" % aparams_str) except Exception as e: self.fail(msg="Failed to generate an instance out of " "representation %s of params. Got exception: %s" % (aparams_str, e)) def test_read_only(self): # Should be able to assign in constructor cro = TestClassReadOnlyParameter(paramro=12) # but not run time self.assertRaises(RuntimeError, cro.params['paramro']._set, 13) # Test if value wasn't actually changed self.assertEqual(cro.params.paramro, 12) def test_value_in_constructor(self): param = Parameter(0, value=True) self.assertTrue(param.value) def test_deep_copying_state_variable(self): for v in (True, False): sv = ConditionalAttribute(enabled=v, doc="Testing") sv.enabled = not v sv_dc = copy.deepcopy(sv) if not (__debug__ and 'ENFORCE_CA_ENABLED' in debug.active): self.assertEqual(sv.enabled, sv_dc.enabled) self.assertEqual(sv.name, sv_dc.name) self.assertEqual(sv._instance_index, sv_dc._instance_index) def suite(): # pragma: no cover return unittest.makeSuite(StateTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_staticprojection.py000066400000000000000000000024321323370031300223010ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA StaticProjectionMapper""" import numpy as np from mvpa2.testing import * from mvpa2.testing.datasets import * from mvpa2.mappers.staticprojection import StaticProjectionMapper def test_staticprojection_reverse_fa(): ds = datasets['uni2small'] proj = np.eye(ds.nfeatures) spm = StaticProjectionMapper(proj=proj[:,:3], recon=proj[:,:3].T) ok_(len(ds.fa) > 0) # we have some fa dsf = spm.forward(ds) ok_(len(dsf.fa) == 0) # no fa were left assert_equal(dsf.nfeatures, 3) # correct # of features assert_equal(dsf.fa.attr_length, 3) # and .fa knows about that dsf.fa['new3'] = np.arange(3) dsfr = spm.reverse(dsf) ok_(len(dsfr.fa) == 0) # no fa were left assert_equal(dsfr.nfeatures, 6) assert_equal(dsfr.fa.attr_length, 6) # .fa knows about them again dsfr.fa['new'] = np.arange(6) pymvpa2-2.6.4/mvpa2/tests/test_stats.py000066400000000000000000000171001323370031300200510ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA stats helpers""" from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2 import cfg from mvpa2.base import externals from mvpa2.clfs.stats import MCNullDist, FixedNullDist, NullDist from mvpa2.generators.permutation import AttributePermutator from mvpa2.datasets import Dataset from mvpa2.measures.anova import OneWayAnova, CompoundOneWayAnova from mvpa2.misc.fx import double_gamma_hrf, single_gamma_hrf from mvpa2.measures.corrcoef import pearson_correlation # Prepare few distributions to test #kwargs = {'permutations':10, 'tail':'any'} permutator = AttributePermutator('targets', count=30) nulldist_sweep = [ MCNullDist(permutator, tail='any'), MCNullDist(permutator, tail='right')] if externals.exists('scipy'): from mvpa2.support.scipy.stats import scipy from mvpa2.misc.stats import compute_ts_boxplot_stats from mvpa2.clfs.stats import rv_semifrozen nulldist_sweep += [ MCNullDist(permutator, scipy.stats.norm, tail='any'), MCNullDist(permutator, scipy.stats.norm, tail='right'), MCNullDist(permutator, rv_semifrozen(scipy.stats.norm, loc=0), tail='right'), MCNullDist(permutator, scipy.stats.expon, tail='right'), FixedNullDist(scipy.stats.norm(0, 10.0), tail='any'), FixedNullDist(scipy.stats.norm(0, 10.0), tail='right'), scipy.stats.norm(0, 0.1) ] class StatsTests(unittest.TestCase): """Unittests for various statistics""" @sweepargs(null=nulldist_sweep[1:]) def test_null_dist_prob(self, null): """Testing null dist probability""" if not isinstance(null, NullDist): return ds = datasets['uni2small'] null.fit(OneWayAnova(), ds) # check reasonable output. # p-values for non-bogus features should significantly different, # while bogus (0) not prob = null.p([20, 0, 0, 0, 0, np.nan]) # XXX this is labile! it also needs checking since the F-scores # of the MCNullDists using normal distribution are apparently not # distributed that way, hence the test often (if not always) fails. if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(np.abs(prob[0]) < 0.05, msg="Expected small p, got %g" % prob[0]) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue((np.abs(prob[1:]) > 0.05).all(), msg="Bogus features should have insignificant p." " Got %s" % (np.abs(prob[1:]),)) # has to have matching shape if not isinstance(null, FixedNullDist): # Fixed dist is univariate ATM so it doesn't care # about dimensionality and gives 1 output value self.assertRaises(ValueError, null.p, [5, 3, 4]) def test_anova(self): """Do some extended testing of OneWayAnova in particular -- compound estimation """ m = OneWayAnova() # default must be not compound ? mc = CompoundOneWayAnova() ds = datasets['uni2medium'] # For 2 labels it must be identical for both and equal to # simple OneWayAnova a, ac = m(ds), mc(ds) self.assertTrue(a.shape == (1, ds.nfeatures)) self.assertTrue(ac.shape == (len(ds.UT), ds.nfeatures)) assert_array_equal(ac[0], ac[1]) assert_array_equal(a, ac[1]) # check for p-value attrs if externals.exists('scipy'): assert_true('fprob' in a.fa.keys()) assert_equal(len(ac.fa), len(ac)) ds = datasets['uni4large'] ac = mc(ds) if cfg.getboolean('tests', 'labile', default='yes'): # All non-bogus features must be high for a corresponding feature self.assertTrue((ac.samples[np.arange(4), np.array(ds.a.nonbogus_features)] >= 1 ).all()) # All features should have slightly but different CompoundAnova # values. I really doubt that there will be a case when this # test would fail just to being 'labile' self.assertTrue(np.max(np.std(ac, axis=1)) > 0, msg='In compound anova, we should get different' ' results for different labels. Got %s' % ac) def test_pearson_correlation(self): sh = (3, -1) x = np.reshape(np.asarray([5, 3, 6, 5, 5, 4]), sh) y = np.reshape(np.asarray([3, 4, 5, 6, 3, 2, 6, 5, 4, 6, 6, 3]), sh) # compute in the traditional way nx = x.shape[1] ny = y.shape[1] c_np = np.zeros((nx, ny)) for k in xrange(nx): for j in xrange(ny): c_np[k, j] = np.corrcoef(x[:, k], y[:, j])[0, 1] c = pearson_correlation(x, y) assert_array_almost_equal(c, c_np) def test_tsboxplot(): skip_if_no_external('scipy') skip_if_no_external('numpy', min_version='1.5') # for .percentile. approx version ts = range(5) assert_raises(ValueError, compute_ts_boxplot_stats, ts) assert_raises(ValueError, compute_ts_boxplot_stats, [ts]) stats, outlier = compute_ts_boxplot_stats(([ts, ts])) assert_true(len(stats) > 5) # we have some stats # the are all the same length and match the input timeseries for k in stats: assert_equal(len(stats[k]), len(ts)) # outlier array matches the shape and actually contains no # outliers assert_equal(outlier.shape, (2, len(ts))) assert_true(np.all(outlier.mask)) assert_array_equal(stats['mean'], stats['median']) assert_array_equal(stats['std'], [0] * len(ts)) # now get an outlier stats, outlier = compute_ts_boxplot_stats(([ts, ts, ts, [0,1,2,3,30]]), outlier_thresh=1.0, greedy_outlier=True) # the std should still be all-zero, because the outlier removal kills # all variance across time series assert_array_equal(stats['std'], [0] * len(ts)) # the entire last time series should be marked as an outlier assert_array_equal(np.sum(outlier.mask, axis=1), [len(ts), len(ts), len(ts), 0]) # now for non-greedy outlier marking stats, outlier = compute_ts_boxplot_stats(([ts, ts, ts, [0,1,2,3,30]]), outlier_thresh=1.0, greedy_outlier=False) # only one element is an outlier assert_equal(outlier.mask.sum(), np.prod(outlier.shape) - 1) assert_true(outlier.mask[3,-1] == False) # make sure it can deal with NaN in the orginal data stats, outlier = compute_ts_boxplot_stats(([ts, ts, [0,np.nan,2,3,30], ts]), outlier_thresh=1.0, greedy_outlier=False) # NaN must not show up as an outlier assert_equal(outlier.mask.sum(), np.prod(outlier.shape) - 1) assert_true(outlier.mask[2,-1] == False) def suite(): # pragma: no cover """Create the suite""" return unittest.makeSuite(StatsTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_stats_sp.py000066400000000000000000000417341323370031300205650ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA stats helpers -- those requiring scipy""" from mvpa2.testing import * skip_if_no_external('scipy') from scipy.stats import f_oneway from mvpa2.tests.test_stats import * from mvpa2.clfs.stats import match_distribution, rv_semifrozen from mvpa2.misc.stats import chisquare, binomial_proportion_ci from mvpa2.misc.attrmap import AttributeMap from mvpa2.generators.permutation import AttributePermutator from mvpa2.misc.data_generators import simple_hrf_dataset class StatsTestsScipy(unittest.TestCase): """Unittests for various statistics which use scipy""" @sweepargs(exp=('uniform', 'indep_rows', 'indep_cols')) def test_chi_square(self, exp): """Test chi-square distribution""" # test equal distribution tbl = np.array([[5, 5], [5, 5]]) chi, p = chisquare(tbl, exp=exp) self.assertTrue(chi == 0.0) self.assertTrue(p == 1.0) # test perfect "generalization" tbl = np.array([[4, 0], [0, 4]]) chi, p = chisquare(tbl, exp=exp) self.assertTrue(chi == 8.0) self.assertTrue(p < 0.05) def test_chi_square_disbalanced(self): # test perfect "generalization" tbl = np.array([[1, 100], [1, 100]]) chi, p = chisquare(tbl, exp='indep_rows') self.assertTrue(chi == 0) self.assertTrue(p == 1) chi, p = chisquare(tbl, exp='uniform') self.assertTrue(chi > 194) self.assertTrue(p < 1e-10) # by default lets do uniform chi_, p_ = chisquare(tbl) self.assertTrue(chi == chi_) self.assertTrue(p == p_) def test_null_dist_prob_any(self): """Test 'any' tail statistics estimation""" skip_if_no_external('scipy') # test 'any' mode from mvpa2.measures.corrcoef import CorrCoef # we will reassign targets later on, so let's operate on a # copy ds = datasets['uni2medium'].copy() permutator = AttributePermutator('targets', count=20) null = MCNullDist(permutator, tail='any') assert_raises(ValueError, null.fit, CorrCoef(), ds) # cheat and map to numeric for this test ds.sa.targets = AttributeMap().to_numeric(ds.targets) null.fit(CorrCoef(), ds) # 100 and -100 should both have zero probability on their respective # tails pm100 = null.p([-100] + [0] * (ds.nfeatures - 1)) p100 = null.p([100] + [0] * (ds.nfeatures - 1)) assert_array_almost_equal(pm100, p100) # With 20 samples it isn't that easy to get a reliable sampling for # non-parametric, so we can allow somewhat low significance self.assertTrue(pm100[0] <= 0.1) self.assertTrue(p100[0] <= 0.1) self.assertTrue(np.all(pm100[1:] > 0.05)) self.assertTrue(np.all(p100[1:] > 0.05)) # same test with just scalar measure/feature null.fit(CorrCoef(), ds[:, 0]) p_100 = null.p(100) self.failUnlessAlmostEqual(null.p(-100), p_100) self.failUnlessAlmostEqual(p100[0], p_100) @sweepargs(nd=nulldist_sweep) def test_dataset_measure_prob(self, nd): """Test estimation of measures statistics""" skip_if_no_external('scipy') ds = datasets['uni2medium'] m = OneWayAnova(null_dist=nd, enable_ca=['null_t']) score = m(ds) score_nonbogus = np.mean(score.samples[:, ds.a.nonbogus_features]) score_bogus = np.mean(score.samples[:, ds.a.bogus_features]) # plausability check self.assertTrue(score_bogus < score_nonbogus) # [0] because the first axis is len == 0 null_prob_nonbogus = m.ca.null_prob[0, ds.a.nonbogus_features] null_prob_bogus = m.ca.null_prob[0, ds.a.bogus_features] self.assertTrue((null_prob_nonbogus.samples < 0.05).all(), msg="Nonbogus features should have a very unlikely value. Got %s" % null_prob_nonbogus) # the others should be a lot larger self.assertTrue(np.mean(np.abs(null_prob_bogus)) > np.mean(np.abs(null_prob_nonbogus))) if isinstance(nd, MCNullDist): # MCs are not stable with just 10 samples... so lets skip them return if cfg.getboolean('tests', 'labile', default='yes'): # Failed on c94ec26eb593687f25d8c27e5cfdc5917e352a69 # with MVPA_SEED=833393575 self.assertTrue( (np.abs(m.ca.null_t[0, ds.a.nonbogus_features]) >= 5).all(), msg="Nonbogus features should have high t-score. Got %s" % (m.ca.null_t[0, ds.a.nonbogus_features])) bogus_min = min(np.abs(m.ca.null_t.samples[0][ds.a.bogus_features])) self.assertTrue(bogus_min < 4, msg="Some bogus features should have low t-score of %g." "Got (t,p,sens):%s" % (bogus_min, zip(m.ca.null_t[0, ds.a.bogus_features], m.ca.null_prob[0, ds.a.bogus_features], score.samples[0][ds.a.bogus_features]))) @reseed_rng() def test_negative_t(self): """Basic testing of the sign in p and t scores """ from mvpa2.measures.base import FeaturewiseMeasure class BogusMeasure(FeaturewiseMeasure): """Just put high positive into first 2 features, and high negative into 2nd two """ is_trained = True def _call(self, dataset): """just a little helper... pylint shut up!""" res = np.random.normal(size=(dataset.nfeatures,)) res[0] = res[1] = 100 res[2] = res[3] = -100 return Dataset([res]) nd = FixedNullDist(scipy.stats.norm(0, 0.1), tail='any') m = BogusMeasure(null_dist=nd, enable_ca=['null_t']) ds = datasets['uni2small'] _ = m(ds) t, p = m.ca.null_t, m.ca.null_prob assert_array_less(-1e-30, p.samples) # just that all >= 0 assert_array_less(0, t.samples[0, :2]) assert_array_less(t.samples[0, 2:4], 0) def test_match_distribution(self): """Some really basic testing for match_distribution """ ds = datasets['uni2medium'] # large to get stable stats data = ds.samples[:, ds.a.bogus_features[0]] # choose bogus feature, which # should have close to normal distribution # Lets test ad-hoc rv_semifrozen floc = rv_semifrozen(scipy.stats.norm, loc=0).fit(data) self.assertTrue(floc[0] == 0) fscale = rv_semifrozen(scipy.stats.norm, scale=1.0).fit(data) self.assertTrue(fscale[1] == 1) flocscale = rv_semifrozen(scipy.stats.norm, loc=0, scale=1.0).fit(data) self.assertTrue(flocscale[1] == 1 and flocscale[0] == 0) full = scipy.stats.norm.fit(data) for res in [floc, fscale, flocscale, full]: self.assertTrue(len(res) == 2) data_mean = np.mean(data) for loc in [None, data_mean]: for test in ['p-roc', 'kstest']: # some really basic testing matched = match_distribution( data=data, distributions=['scipy', ('norm', {'name': 'norm_fixed', 'loc': 0.2, 'scale': 0.3})], test=test, loc=loc, p=0.05) # at least norm should be in there names = [m[2] for m in matched] if test == 'p-roc': if cfg.getboolean('tests', 'labile', default='yes'): # we can guarantee that only for norm_fixed self.assertTrue('norm' in names) self.assertTrue('norm_fixed' in names) inorm = names.index('norm_fixed') # and it should be at least in the first # 30 best matching ;-) self.assertTrue(inorm <= 30) # Test plotting only once if loc is None and externals.exists("pylab plottable"): import pylab as pl from mvpa2.clfs.stats import plot_distribution_matches fig = pl.figure() plot_distribution_matches(data, matched, legend=1, nbest=5) #pl.show() pl.close(fig) def test_match_distribution_semifrozen(self): """Handle frozen params in match_distribution """ matches = match_distribution(np.arange(10), distributions=[ 'uniform', ('uniform', {'loc': 0}) ], p= -1 # so we get all matches ) self.assertEqual(len(matches), 2) # we must get some match self.assertTrue(abs(matches[0][-1][0]) < 4e-1) # full fit should get close to true loc self.assertEqual(matches[1][-1][0], 0) # frozen should maintain the loc if externals.versions['scipy'] >= '0.10': # known to work on 0.10 and fail on 0.7.3 self.assertTrue(abs(matches[0][-1][1] - 9) < 1e-1) # full fit should get close to true scale else: raise SkipTest("KnownFailure to fit uniform on older scipy") # actually it fails ATM to fit uniform with frozen loc=0 # nicely -- sets scale = 1 :-/ TODO raise SkipTest("TODO: Known failure to fit uniform with frozen loc") self.assertTrue(abs(matches[1][-1][1] - 9) < 1e-1) # frozen fit of scale def test_r_dist_stability(self): """Test either rdist distribution performs nicely """ try: # actually I haven't managed to cause this error scipy.stats.rdist(1.32, 0, 1).pdf(-1.0 + np.finfo(float).eps) except Exception, e: self.fail('Failed to compute rdist.pdf due to numeric' ' loss of precision. Exception was %s' % e) try: # this one should fail with recent scipy with error # ZeroDivisionError: 0.0 cannot be raised to a negative power # XXX: There is 1 more bug in etch's scipy.stats or numpy # (vectorize), so I have to put 2 elements in the # queried x's, otherwise it # would puke. But for now that fix is not here # # value = scipy.stats.rdist(1.32, 0, 1).cdf( # [-1.0+np.finfo(float).eps, 0]) # # to cause it now just run this unittest only with # nosetests -s test_stats:StatsTests.testRDistStability # NB: very cool way to store the trace of the execution #import pydb #pydb.debugger(dbg_cmds=['bt', 'l', 's']*300 + ['c']) scipy.stats.rdist(1.32, 0, 1).cdf(-1.0 + np.finfo(float).eps) except IndexError, e: self.fail('Failed due to bug which leads to InvalidIndex if only' ' scalar is provided to cdf') except Exception, e: self.fail('Failed to compute rdist.cdf due to numeric' ' loss of precision. Exception was %s' % e) v = scipy.stats.rdist(10000, 0, 1).cdf([-0.1]) self.assertTrue(v >= 0, v <= 1) @reseed_rng() def test_scipy_fit_2fparams(self): # fixing parameters was not before this version skip_if_no_external('scipy', min_version='0.8.1') t = scipy.stats.t d = t(10, 1, 10).rvs(10) params = t.fit(d, floc=1, fscale=10.) # assured result to be a tuple due to failure on # travis-ci (ubuntu precise) # http://travis-ci.org/#!/PyMVPA/PyMVPA/builds/2459017 self.assertEqual(tuple(params[1:]), (1, 10.)) # df's are apparently quite difficult to assess unless plenty # of samples #self.assertTrue(abs(params[0] - 10) < 7) # estimate df at least in the right ball park def test_anova_compliance(self): ds = datasets['uni2large'] fwm = OneWayAnova() f = fwm(ds) f_sp = f_oneway(ds[ds.targets == 'L1'].samples, ds[ds.targets == 'L0'].samples) # SciPy needs to compute the same F-scores assert_array_almost_equal(f, f_sp[0:1]) @reseed_rng() def test_statsmodels(self): """Test GLM """ skip_if_no_external('statsmodels') from mvpa2.measures.statsmodels_adaptor import GLM # high SNR dataset for such a short timeseries data = simple_hrf_dataset(signal_level=2, noise_level=0.5) X = data.sa.design # check GLM betas glm = GLM(X) betas = glm(data) # betas for each feature and each regressor self.assertTrue(betas.shape == (X.shape[1], data.nfeatures)) self.assertTrue(np.absolute(betas.samples[1] - data.a.baseline < 10).all(), msg="baseline betas should be huge and around 800") self.assertTrue(betas.samples[0, 0] > betas[0, 1], msg="feature (with signal) beta should be larger than for noise") if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(np.absolute(betas[0, 1]) < 0.5) self.assertTrue(np.absolute(betas[0, 0]) > 1.0) # check GLM t values glm = GLM(X, voi='tvalues') tstats = glm(data) self.assertTrue(tstats.shape == betas.shape) self.assertTrue((tstats.samples[1] > 1000).all(), msg='constant tvalues should be huge') if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(np.absolute(betas[0, 0]) > betas[0, 1], msg='with signal should have higher tvalues') # check t-contrast -- should do the same as tvalues for the first # parameter glm = GLM(X, voi=[1, 0]) contrast = glm(data) assert_array_almost_equal(contrast.samples[0], tstats.samples[0]) assert_equals(len(contrast), 6) # we should be able to recover the approximate effect size of the signal # which is constructed with a baseline offset of 2 (see above) if cfg.getboolean('tests', 'labile', default='yes'): assert_true(1.5 < contrast.samples[2, 0] < 2.5) # check F-test glm = GLM(X, voi=[[1, 0]]) ftest = glm(data) assert_equals(len(ftest), 4) assert_true(ftest.samples[0, 0] > ftest.samples[0, 1]) def test_binomdist_ppf(self): """Test if binomial distribution works ok after possibly a monkey patch """ bdist = scipy.stats.binom(100, 0.5) self.assertTrue(bdist.ppf(1.0) == 100) self.assertTrue(bdist.ppf(0.9) <= 60) self.assertTrue(bdist.ppf(0.5) == 50) self.assertTrue(bdist.ppf(0) == -1) def test_right_tail(self): # Test if we are getting "correct" p-value for right tail in # "interesting" cases # TODO: some of it is done in # test_transerror.py:ErrorsTests.test_confusionmatrix_nulldist pass def test_binomial_proportion_ci(): # compare to gold-standard values from the matlab implementation from numpy import testing as npt n = 100 X = 50 p = .05 matlab_truth = { 'wald': (.4020, .5980), 'wilson': (.4038, .5962), 'agresti-coull': (.4038, .5962), 'jeffreys': (.4032, .5968), 'clopper-pearson': (.3983, .6017), 'arc-sine': (.4026, .5974), 'logit': (.4032, .5968), 'anscombe': (.4037, .5963) } for m in matlab_truth.keys(): npt.assert_array_almost_equal(matlab_truth[m], binomial_proportion_ci(n, X, p, m), decimal=4, err_msg=m) # can deal with the extremes # those two have numerical limits if not m in ('clopper-pearson', 'logit'): npt.assert_array_almost_equal( binomial_proportion_ci(1000, 1000, .05, m), [1, 1], decimal=2) npt.assert_array_almost_equal( binomial_proportion_ci(1000, 0, .05, m), [0, 0], decimal=2) vec = binomial_proportion_ci(1000, [600,100,900]) assert_equal(vec.shape, (2, 3)) def suite(): # pragma: no cover """Create the suite""" return unittest.makeSuite(StatsTestsScipy) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_suite.py000066400000000000000000000104421323370031300200460ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit test for PyMVPA mvpa2.suite() of being loading ok""" import inspect import re import sys import unittest from mvpa2.base.dochelpers import get_docstring_split class SuiteTest(unittest.TestCase): def test_suite_load(self): """Test if we are loading fine """ try: exec "from mvpa2.suite import *" except Exception, e: # pragma: no cover - should not be hit if ok_ self.fail(msg="Cannot import everything from mvpa2.suite: %s" % e) def test_docstrings(self): #import mvpa2.suite as mv from mvpa2.suite import suite_stats # Lets do compliance checks # Get gross information on what we have in general #mv_scope = dict((x, getattr(mv, x)) for x in dir(mv)) gs = suite_stats()#mv_scope) # all functions/classes/types should have some docstring missing = [] # We should not have both :Parameters: and new style Parameters conflicting = [] con_re1 = re.compile(':Parameters?:') con_re2 = re.compile('(?::Parameters?:.*Parameters?\s*\n\s*-------' '|Parameters?\s*\n\s*-------.*:Parameters?:)', flags=re.DOTALL) for c in ('functions', 'modules', 'objects', 'types') \ + ('classes',) if sys.version_info[0] < 3 else (): missing1 = [] conflicting1 = [] self.assertTrue(gs[c]) for k, i in gs[c].iteritems(): try: s = i.__doc__.strip() except: # pragma: no cover - should not be hit if ok_ s = "" if s == "": missing1.append(k) if hasattr(i, '__init__') and not c in ['objects']: # Smoke test get_docstring_split which would be used # if someone specifies incorrect keyword argument _ = get_docstring_split(i.__init__) #if not None in _: # print [x[0] for x in _[1]] si = i.__init__.__doc__ k += '.__init__' if si is None or si == "": try: i_file = inspect.getfile(i) if i_file == inspect.getfile(i.__init__) \ and 'mvpa' in i_file: # if __init__ wasn't simply taken from some parent # which is not within MVPA missing1.append(k) except TypeError: # for some things like 'debug' inspect can't figure path # just skip for now pass else: si = s if si is not None \ and con_re1.search(si) and con_re2.search(si): conflicting1.append(k) if len(missing1): # pragma: no cover - should not be hit if ok_ missing.append("%s: " % c + ', '.join(missing1)) if len(conflicting1): # pragma: no cover - should not be hit if ok_ conflicting.append("%s: " % c + ', '.join(conflicting1)) sfailures = [] if len(missing): # pragma: no cover - should not be hit if ok_ sfailures += ["Some items have missing docstrings:\n " + '\n '.join(missing)] if len(conflicting): # pragma: no cover - should not be hit if ok_ sfailures += ["Some items have conflicting formats of docstrings:\n " + '\n '.join(conflicting)] if len(sfailures): # pragma: no cover - should not be hit if ok_ self.fail('\n'.join(sfailures)) def suite(): # pragma: no cover return unittest.makeSuite(SuiteTest) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_support.py000066400000000000000000000322761323370031300204420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA serial feature inclusion algorithm""" from itertools import product as iterprod from mvpa2.testing import * from mvpa2.misc.support import * from mvpa2.base.types import asobjarray from mvpa2.testing import * from mvpa2.testing.datasets import get_mv_pattern, datasets from mvpa2.testing.clfs import * from mvpa2.clfs.distance import one_minus_correlation from mvpa2.support.copy import deepcopy class SupportFxTests(unittest.TestCase): def test_transform_with_boxcar(self): data = np.arange(10) sp = np.arange(10) # check if stupid thing don't work self.assertRaises(ValueError, transform_with_boxcar, data, sp, 0) # now do an identity transformation trans = transform_with_boxcar(data, sp, 1) self.assertTrue((trans == data).all()) # now check for illegal boxes self.assertRaises(ValueError, transform_with_boxcar, data, sp, 2) # now something that should work sp = np.arange(9) trans = transform_with_boxcar(data, sp, 2) self.assertTrue((trans == \ [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5]).all()) # now test for proper data shape data = np.ones((10, 3, 4, 2)) sp = [ 2, 4, 3, 5 ] trans = transform_with_boxcar(data, sp, 4) self.assertTrue(trans.shape == (4, 3, 4, 2)) def test_event(self): self.assertRaises(ValueError, Event) ev = Event(onset=2.5) # all there? self.assertTrue(ev.items() == [('onset', 2.5)]) # conversion self.assertTrue(ev.as_descrete_time(dt=2).items() == [('onset', 1)]) evc = ev.as_descrete_time(dt=2, storeoffset=True) self.assertTrue('offset' in evc) self.assertTrue(evc['offset'] == 0.5) # same with duration included evc = Event(onset=2.5, duration=3.55).as_descrete_time(dt=2) self.assertTrue(evc['duration'] == 3) def test_mof_n_combinations(self): self.assertEqual( unique_combinations(range(3), 1), [[0], [1], [2]]) self.assertEqual( unique_combinations( range(4), 2), [[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]] ) self.assertEqual( unique_combinations( range(4), 3), [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3]]) @reseed_rng() def test_xrandom_unique_combinations(self): for n in [4, 5, 10]: limit = 4 limited = list(xrandom_unique_combinations(range(n), 3, limit)) self.assertEqual(len(limited), limit) # See if we would obtain the same for k in [1, 2, 3, int(n / 2), n]: all_random = list(xrandom_unique_combinations(range(n), k)) all_ = list(xunique_combinations(range(n), k)) self.assertEqual(sorted(all_random), sorted(all_)) # test that we are not sampling the same space -- two # consecutive samples within large number very unlikely not # have more than few overlapping samples iter_count = 100 overlapping_count = 0 for k in xrange(iter_count): c1, c2 = xrandom_unique_combinations(range(1000), 10, 2) if len(set(c1).intersection(c2)) == 2: overlapping_count += 1 # assume this happens less than 10 percent of the time self.assertTrue(overlapping_count * 10 < iter_count) def test_break_points(self): items_cont = [0, 0, 0, 1, 1, 1, 3, 3, 2] items_noncont = [0, 0, 1, 1, 0, 3, 2] self.assertRaises(ValueError, get_break_points, items_noncont) self.assertEqual(get_break_points(items_noncont, contiguous=False), [0, 2, 4, 5, 6]) self.assertEqual(get_break_points(items_cont), [0, 3, 6, 8]) self.assertEqual(get_break_points(items_cont, contiguous=False), [0, 3, 6, 8]) def test_map_overlap(self): mo = MapOverlap() maps = [[1, 0, 1, 0], [1, 0, 0, 1], [1, 0, 1, 0]] overlap = mo(maps) self.assertEqual(overlap, 1. / len(maps[0])) self.assertTrue((mo.overlap_map == [1, 0, 0, 0]).all()) self.assertTrue((mo.spread_map == [0, 0, 1, 1]).all()) self.assertTrue((mo.ovstats_map == [1, 0, 2. / 3, 1. / 3]).all()) mo = MapOverlap(overlap_threshold=0.5) overlap = mo(maps) self.assertEqual(overlap, 2. / len(maps[0])) self.assertTrue((mo.overlap_map == [1, 0, 1, 0]).all()) self.assertTrue((mo.spread_map == [0, 0, 0, 1]).all()) self.assertTrue((mo.ovstats_map == [1, 0, 2. / 3, 1. / 3]).all()) @reseed_rng() @sweepargs(pair=[(np.random.normal(size=(10, 20)), np.random.normal(size=(10, 20))), ([1, 2, 3, 0], [1, 3, 2, 0]), ((1, 2, 3, 1), (1, 3, 2, 1))]) def test_id_hash(self, pair): a, b = pair a1 = deepcopy(a) a_1 = idhash(a) self.assertTrue(a_1 == idhash(a), msg="Must be of the same idhash") self.assertTrue(a_1 != idhash(b), msg="Must be of different idhash") if isinstance(a, np.ndarray): self.assertTrue(a_1 != idhash(a.T), msg=".T must be of different idhash") if not isinstance(a, tuple): self.assertTrue(a_1 != idhash(a1), msg="Must be of different idhash") a[2] += 1; a_2 = idhash(a) self.assertTrue(a_1 != a_2, msg="Idhash must change") else: a_2 = a_1 a = a[2:]; a_3 = idhash(a) self.assertTrue(a_2 != a_3, msg="Idhash must change after slicing") def test_asobjarray(self): for i in ([1, 2, 3], ['a', 2, '3'], ('asd')): i_con = asobjarray(i) self.assertTrue(i_con.dtype is np.dtype('object')) self.assertEqual(len(i), len(i_con)) # Note: in Python3 the ['a' , 2, '3'] list is converted to # an array with elements 'a', '2',' and '3' (i.e. string representation # for the second element), and thus np.all(i==i_con) fails. # Instead here each element is tested for equality seperately # XXX is this an issue? self.assertTrue(np.all((i[j] == i_con[j]) for j in xrange(len(i)))) @reseed_rng() def test_correlation(self): # data: 20 samples, 80 features X = np.random.rand(20, 80) C = 1 - one_minus_correlation(X, X) # get nsample x nssample correlation matrix self.assertTrue(C.shape == (20, 20)) # diagonal is 1 self.assertTrue((np.abs(np.diag(C) - 1).mean() < 0.00001).all()) # now two different Y = np.random.rand(5, 80) C2 = 1 - one_minus_correlation(X, Y) # get nsample x nssample correlation matrix self.assertTrue(C2.shape == (20, 5)) # external validity check -- we are dealing with correlations self.assertTrue(C2[10, 2] - np.corrcoef(X[10], Y[2])[0, 1] < 0.000001) def test_version_to_tuple(self): """Test conversion of versions from strings """ self.assertTrue(version_to_tuple('0.0.01') == (0, 0, 1)) self.assertTrue(version_to_tuple('0.7.1rc3') == (0, 7, 1, 'rc', 3)) def test_smart_version(self): """Test our ad-hoc SmartVersion """ SV = SmartVersion self.assertEqual(SmartVersion(None), SmartVersion(None)) self.assertRaises(ValueError, SmartVersion(None).__cmp__, SmartVersion('0')) self.assertRaises(ValueError, SmartVersion('0').__cmp__, SmartVersion(None)) for v1_, v2_ in ( ('0.0.1', '0.0.2'), ('0.0.1', '0.1'), ('0.0.1', '0.1.0'), ('0.0.1', '0.0.1a'), # this might be a bit unconventional? ('0.0.1', '0.0.1+svn234'), ('0.0.1+svn234', '0.0.1+svn235'), ('0.0.1dev1', '0.0.1'), ('0.0.1dev1', '0.0.1rc3'), ('0.7.1rc3', '0.7.1'), ('0.0.1-dev1', '0.0.1'), ('0.0.1-svn1', '0.0.1'), ('0.0.1~p', '0.0.1'), ('0.0.1~prior.1.2', '0.0.1'), ): for v1, v2 in itertools.product( (v1_, unicode(v1_)), (v2_, unicode(v2_))): self.assertTrue(SV(v1) < SV(v2), msg="Failed to compare %s to %s" % (v1, v2)) self.assertTrue(SV(v2) > SV(v1), msg="Failed to reverse compare %s to %s" % (v2, v1)) # comparison to strings self.assertTrue(SV(v1) < v2, msg="Failed to compare %s to string %s" % (v1, v2)) self.assertTrue(v1 < SV(v2), msg="Failed to compare string %s to %s" % (v1, v2)) # to tuples self.assertTrue(SV(v1) < version_to_tuple(v2), msg="Failed to compare %s to tuple of %s" % (v1, v2)) self.assertTrue(version_to_tuple(v1) < SV(v2), msg="Failed to compare tuple of %s to %s" % (v1, v2)) def test_obscure_version(self): # which lead travis to hang while checking reportlab, so just a smoke # test that the beast doesn't halt v = SmartVersion(' $Id: __init__.py 3788 2010-09-29 10:44:00Z xxxx $ ') def test_value2idx(): times = [1.2, 1.3, 2., 4., 0., 2., 1.1] assert_equal(value2idx(0, times), 4) assert_equal(value2idx(100, times), 3) assert_equal(value2idx(1.5, times), 1) assert_equal(value2idx(1.5, times, 'ceil'), 2) assert_equal(value2idx(1.2, times, 'floor'), 0) assert_equal(value2idx(1.14, times, 'round'), 6) assert_equal(value2idx(1.14, times, 'floor'), 6) assert_equal(value2idx(1.14, times, 'ceil'), 0) assert_equal(value2idx(-100, times, 'ceil'), 4) def test_limit_filter(): ds = datasets['uni2small'] assert_array_equal(get_limit_filter(None, ds.sa), np.ones(len(ds), dtype=np.bool)) assert_array_equal(get_limit_filter('chunks', ds.sa), ds.sa.chunks) assert_array_equal(get_limit_filter({'chunks': 3}, ds.sa), ds.sa.chunks == 3) assert_array_equal(get_limit_filter({'chunks': [3, 1]}, ds.sa), np.logical_or(ds.sa.chunks == 3, ds.sa.chunks == 1)) # if a list assert_array_equal(get_limit_filter('chunks', ds.sa), get_limit_filter(['chunks'], ds.sa)) assert_array_equal(get_limit_filter('chunks', ds.sa), get_limit_filter(['chunks']*2, ds.sa)) lf = get_limit_filter(['chunks', 'targets'], ds.sa) assert_array_equal(len(np.unique(lf)), len(ds.UC) * len(ds.UT)) for uv in np.unique(lf): for a in ['chunks', 'targets']: # within each 'block' values will be unique assert_equal(len(np.unique(ds.sa[a].value[lf == uv])), 1) def test_mask2slice(): slc = np.repeat(False, 5) assert_equal(mask2slice(slc), slice(None, 0, None)) def test_xrandom_iterprod(): # just some exhaustive one all_12ab = [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']] assert_equal(sorted(xrandom_iterprod(10, [1, 2], 'ab')), all_12ab) # Let's do a few of some long ones, random ones and verify that come out correctly for i in xrange(10): ns = random.randint(1, 5) seqs = [range(random.randint(1, 5)) for i in range(ns)] all_prods = set(map(tuple, iterprod(*seqs))) for count in [random.randint(0, 8) for i in range(3)]: real_count = min(count, np.prod(map(len, seqs))) r_prods = set(map(tuple, xrandom_iterprod(count, *seqs))) assert_equal(len(r_prods), real_count) # assert that they are all unique assert_equal(len(set(r_prods)), real_count) # assert that they are all a part of all prods assert all_prods.issuperset(r_prods) @reseed_rng() def test_get_rng(): random_int = np.random.randint(1000) assert_true(get_rng(), np.random) # seeded with the same int, we should get rng which would generate # identical sequences of integers assert_array_equal( get_rng(random_int).randint(0, 100+1), get_rng(random_int).randint(0, 100+1) ) some_rng = get_rng(random_int) # The same instance returned if preseeded RNG is passed into assert(some_rng is get_rng(some_rng)) def suite(): # pragma: no cover return unittest.makeSuite(SupportFxTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_surfing.py000066400000000000000000001244261323370031300204020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA surface searchlight and related utilities""" from mvpa2.testing import * skip_if_no_external('nibabel') import numpy as np from numpy.testing.utils import assert_array_almost_equal import nibabel as nb import os import tempfile from mvpa2.testing.datasets import datasets from mvpa2 import cfg from mvpa2.base import externals from mvpa2.datasets import Dataset, hstack from mvpa2.measures.base import Measure from mvpa2.datasets.mri import fmri_dataset from mvpa2.misc.surfing import volgeom, volsurf, \ volume_mask_dict, surf_voxel_selection, \ queryengine from mvpa2.support.nibabel import surf, surf_fs_asc, surf_gifti from mvpa2.measures.searchlight import sphere_searchlight, Searchlight from mvpa2.misc.neighborhood import Sphere if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load class SurfTests(unittest.TestCase): """Test for surfaces NNO Aug 2012 'Ground truth' is whatever output is returned by the implementation as of mid-Aug 2012""" @with_tempfile('.asc', 'test_surf') def test_surf(self, temp_fn): """Some simple testing with surfaces """ s = surf.generate_sphere(10) assert_true(s.nvertices == 102) assert_true(s.nfaces == 200) v = s.vertices f = s.faces assert_true(v.shape == (102, 3)) assert_true(f.shape == (200, 3)) # another surface t = s * 10 + 2 assert_true(t.same_topology(s)) assert_array_equal(f, t.faces) assert_array_equal(v * 10 + 2, t.vertices) # allow updating, but should not affect original array # CHECKME: maybe we want to throw an exception instead assert_true((v * 10 + 2 == t.vertices).all().all()) assert_true((s.vertices * 10 + 2 == t.vertices).all().all()) # a few checks on vertices and nodes v_check = {40: (0.86511144, -0.28109175, -0.41541501), 10: (0.08706015, -0.26794358, -0.95949297)} f_check = {10: (7, 8, 1), 40: (30, 31, 21)} vf_checks = [(v_check, lambda x:x.vertices), (f_check, lambda x:x.faces)] eps = .0001 for cmap, f in vf_checks: for k, v in cmap.iteritems(): surfval = f(s)[k, :] assert_true((abs(surfval - v) < eps).all()) # make sure same topology fails with different topology u = surf.generate_cube() assert_false(u.same_topology(s)) # check that neighbours are computed correctly # even if we nuke the topology afterwards for _ in [0, 1]: nbrs = s.neighbors n_check = [(0, 96, 0.284629), (40, 39, 0.56218349), (100, 99, 0.1741202)] for i, j, k in n_check: assert_true(abs(nbrs[i][j] - k) < eps) def assign_zero(x): x.faces[:, :] = 0 return None assert_raises((ValueError, RuntimeError), assign_zero, s) # see if mapping to high res works h = surf.generate_sphere(40) low2high = s.map_to_high_resolution_surf(h, .1) if on_windows: raise SkipTest("""Known failure: for some reason on windows, 64 bit (not 32) conda we get 145, not 144 for 8. see https://ci.appveyor.com/project/conda-forge/pymvpa2-feedstock/build/job/14bud4pirwo2p3np """) partmap = {7: 141, 8: 144, 9: 148, 10: 153, 11: 157, 12: 281} for k, v in partmap.iteritems(): assert_true(low2high[k] == v) # ensure that slow implementation gives same results as fast one low2high_slow = s.map_to_high_resolution_surf(h, .1) for k, v in low2high.iteritems(): assert_true(low2high_slow[k] == v) # should fail if epsilon is too small assert_raises(ValueError, lambda x:x.map_to_high_resolution_surf(h, .01), s) n2f = s.node2faces for i in xrange(s.nvertices): nf = [10] if i < 2 else [5, 6] # number of faces expected assert_true(len(n2f[i]) in nf) # test dijkstra distances ds2 = s.dijkstra_distance(2) some_ds = {0: 3.613173280799, 1: 0.2846296765, 2: 0., 52: 1.87458018, 53: 2.0487004817, 54: 2.222820777, 99: 3.32854360, 100: 3.328543604, 101: 3.3285436042} eps = np.finfo('f').eps for k, v in some_ds.iteritems(): assert_true(abs(v - ds2[k]) < eps) # test I/O (through ascii files) surf.write(temp_fn, s, overwrite=True) s2 = surf.read(temp_fn) # test i/o and ensure that the loaded instance is trained if externals.exists('h5py'): h5save(temp_fn, s2) s2 = h5load(temp_fn) assert_array_almost_equal(s.vertices, s2.vertices, 4) assert_array_almost_equal(s.faces, s2.faces, 4) # test plane (new feature end of August 2012) s3 = surf.generate_plane((0, 0, 0), (2, 0, 0), (0, 1, 0), 10, 20) assert_equal(s3.nvertices, 200) assert_equal(s3.nfaces, 342) assert_array_almost_equal(s3.vertices[-1, :], np.array([18., 19, 0.])) assert_array_almost_equal(s3.faces[-1, :], np.array([199, 198, 179])) # test bar p, q = (0, 0, 0), (100, 0, 0) s4 = surf.generate_bar(p, q, 10, 12) assert_equal(s4.nvertices, 26) assert_equal(s4.nfaces, 48) def test_surf_border(self): s = surf.generate_sphere(3) assert_array_equal(s.nodes_on_border(), [False] * 11) s = surf.generate_plane((0, 0, 0), (0, 1, 0), (1, 0, 0), 10, 10) b = s.nodes_on_border() v = s.vertices vb = reduce(np.logical_or, [v[:, 0] == 0, v[:, 1] == 0, v[:, 0] == 9, v[:, 1] == 9]) assert_array_equal(b, vb) assert_true(s.nodes_on_border(0)) def test_surf_border_nonconnected_nodes(self): s = surf.generate_cube() # add empty node v = np.vstack((s.vertices, [2, 2, 2])) # remove two faces s2 = surf.Surface(v, s.faces[:-2]) is_on_border = [False, False, False, False, True, True, True, True, False] assert_array_equal(s2.nodes_on_border(), np.asarray(is_on_border)) def test_surf_normalized(self): def assert_is_unit_norm(v): assert_almost_equal(1., np.sum(v*v)) assert_equal(v.shape, (len(v),)) def assert_same_direction(v,w): assert_almost_equal(v.dot(w),(v.dot(v)*w.dot(w))**.5) def helper_test_vec_normalized(v): v_norm=surf.normalized(v) assert_is_unit_norm(v_norm) assert_same_direction(v,v_norm) return v_norm sizes=[(8,),(7,4)] for size in sizes: v=np.random.normal(size=size) if len(size)==1: helper_test_vec_normalized(v) else: # test for vectors and for matrix v_n = surf.normalized(v) n_vecs=v.shape[1] for i in xrange(n_vecs): v_n_i=helper_test_vec_normalized(v[i,:]) assert_array_almost_equal(v_n_i, v_n[i,:]) @with_tempfile('.asc', 'test_surf') def test_surf_fs_asc(self, temp_fn): s = surf.generate_sphere(5) * 100 surf_fs_asc.write(temp_fn, s, overwrite=True) t = surf_fs_asc.read(temp_fn) assert_array_almost_equal(s.vertices, t.vertices) assert_array_almost_equal(s.vertices, t.vertices) theta = np.asarray([0, 0., 180.]) r = s.rotate(theta, unit='deg') l2r = surf.get_sphere_left_right_mapping(s, r) l2r_expected = [0, 1, 2, 6, 5, 4, 3, 11, 10, 9, 8, 7, 15, 14, 13, 12, 16, 19, 18, 17, 21, 20, 23, 22, 26, 25, 24] assert_array_equal(l2r, np.asarray(l2r_expected)) sides_facing = 'apism' for side_facing in sides_facing: l, r = surf.reposition_hemisphere_pairs(s + 10., t + (-10.), side_facing) m = surf.merge(l, r) # not sure at the moment why medial rotation # messes up - but leave for now eps = 666 if side_facing == 'm' else .001 assert_true((abs(m.center_of_mass) < eps).all()) @with_tempfile('.nii', 'test_vol') def test_volgeom(self, temp_fn): sz = (17, 71, 37, 73) # size of 4-D 'brain volume' d = 2. # voxel size xo, yo, zo = -6., -12., -20. # origin mx = np.identity(4, np.float) * d # affine transformation matrix mx[3, 3] = 1 mx[0, 3] = xo mx[1, 3] = yo mx[2, 3] = zo vg = volgeom.VolGeom(sz, mx) # initialize volgeom eq_shape_nvoxels = {(17, 71, 37): (True, True), (71, 17, 37, 1): (False, True), (17, 71, 37, 2): (True, True), (17, 71, 37, 73): (True, True), (2, 2, 2): (False, False)} for other_sz, (eq_shape, eq_nvoxels) in eq_shape_nvoxels.iteritems(): other_vg = volgeom.VolGeom(other_sz, mx) assert_equal(other_vg.same_shape(vg), eq_shape) assert_equal(other_vg.nvoxels_mask == vg.nvoxels_mask, eq_nvoxels) nv = sz[0] * sz[1] * sz[2] # number of voxels nt = sz[3] # number of time points assert_equal(vg.nvoxels, nv) # a couple of hard-coded test cases # last two are outside the volume linidxs = [0, 1, sz[2], sz[1] * sz[2], nv - 1, -1, nv] subidxs = ([(0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 0, 0), (sz[0] - 1, sz[1] - 1, sz[2] - 1)] + [(sz[0], sz[1], sz[2])] * 2) xyzs = ([(xo, yo, zo), (xo, yo, zo + d), (xo, yo + d, zo), (xo + d, yo, zo), (xo + d * (sz[0] - 1), yo + d * (sz[1] - 1), zo + d * (sz[2] - 1))] + [(np.nan, np.nan, np.nan)] * 2) for i, linidx in enumerate(linidxs): lin = np.asarray([linidx]) ijk = vg.lin2ijk(lin) ijk_expected = np.reshape(np.asarray(subidxs[i]), (1, 3)) assert_array_almost_equal(ijk, ijk_expected) xyz = vg.lin2xyz(lin) xyz_expected = np.reshape(np.asarray(xyzs[i]), (1, 3)) assert_array_almost_equal(xyz, xyz_expected) # check that some identities hold ab, bc, ac = vg.lin2ijk, vg.ijk2xyz, vg.lin2xyz ba, cb, ca = vg.ijk2lin, vg.xyz2ijk, vg.xyz2lin identities = [lambda x: ab(ba(x)), lambda x: bc(cb(x)), lambda x: ac(ca(x)), lambda x: ba(ab(x)), lambda x: cb(bc(x)), lambda x: ca(ac(x)), lambda x: bc(ab(ca(x))), lambda x: ba(cb(ac(x)))] # 0=lin, 1=ijk, 2=xyz identities_input = [1, 2, 2, 0, 1, 0, 2, 0] # voxel indices to test linrange = [0, 1, sz[2], sz[1] * sz[2]] + range(0, nv, nv // 100) lin = np.reshape(np.asarray(linrange), (-1,)) ijk = vg.lin2ijk(lin) xyz = vg.ijk2xyz(ijk) for j, identity in enumerate(identities): inp = identities_input[j] x = {0: lin, 1: ijk, 2: xyz}[inp] assert_array_equal(x, identity(x)) # check that masking works assert_true(vg.contains_lin(lin).all()) assert_false(vg.contains_lin(-lin - 1).any()) assert_true(vg.contains_ijk(ijk).all()) assert_false(vg.contains_ijk(-ijk - 1).any()) # ensure that we have no rounding issues deltas = [-.51, -.49, 0., .49, .51] should_raise = [True, False, False, False, True] for delta, r in zip(deltas, should_raise): xyz_d = xyz + delta * d lin_d = vg.xyz2lin(xyz_d) if r: assert_raises(AssertionError, assert_array_almost_equal, lin_d, lin) else: assert_array_almost_equal(lin_d, lin) # some I/O testing img = vg.get_empty_nifti_image() img.to_filename(temp_fn) assert_true(os.path.exists(temp_fn)) vg2 = volgeom.from_any(img) vg3 = volgeom.from_any(temp_fn) assert_array_equal(vg.affine, vg2.affine) assert_array_equal(vg.affine, vg3.affine) assert_equal(vg.shape[:3], vg2.shape[:3], 0) assert_equal(vg.shape[:3], vg3.shape[:3], 0) assert_true(len('%s%r' % (vg, vg)) > 0) def test_volgeom_masking(self): maskstep = 5 vg = volgeom.VolGeom((2 * maskstep, 2 * maskstep, 2 * maskstep), np.identity(4)) mask = vg.get_empty_array() sh = vg.shape # mask a subset of the voxels rng = range(0, sh[0], maskstep) for i in rng: for j in rng: for k in rng: mask[i, j, k] = 1 # make a new volgeom instance vg = volgeom.VolGeom(vg.shape, vg.affine, mask) data = vg.get_masked_nifti_image(nt=1) msk = vg.get_masked_nifti_image() dset = fmri_dataset(data, mask=msk) vg_dset = volgeom.from_any(dset) # ensure that the mask is set properly and assert_equal(vg.nvoxels, vg.nvoxels_mask * maskstep ** 3) assert_equal(vg_dset, vg) dilates = range(0, 8, 2) nvoxels_masks = [] # keep track of number of voxels for each size for dilate in dilates: covers_full_volume = dilate * 2 >= maskstep * 3 ** .5 + 1 # constr gets values: None, Sphere(0), 2, Sphere(2), ... for i, constr in enumerate([Sphere, lambda x:x if x else None]): dilater = constr(dilate) img_dilated = vg.get_masked_nifti_image(dilate=dilater) data = img_dilated.get_data() assert_array_equal(data, vg.get_masked_array(dilate=dilater)) n = np.sum(data) # number of voxels in mask is increasing assert_true(all(n >= p for p in nvoxels_masks)) # results should be identical irrespective of constr if i == 0: # - first call with this value of dilate: has to be more # voxels than very previous dilation value, unless the # full volume is covered - then it can be equal too # - every next call: ensure size matches cmp = lambda x, y:(x >= y if covers_full_volume else x > y) assert_true(all(cmp(n, p) for p in nvoxels_masks)) nvoxels_masks.append(n) else: # same size as previous call assert_equal(n, nvoxels_masks[-1]) # if dilate is not None or zero, then it should # have selected all the voxels if the radius is big enough assert_equal(np.sum(data) == vg.nvoxels, covers_full_volume) def test_volsurf(self): vg = volgeom.VolGeom((50, 50, 50), np.identity(4)) density = 40 outer = surf.generate_sphere(density) * 25. + 25 inner = surf.generate_sphere(density) * 20. + 25 # increasingly select more voxels in 'grey matter' steps_start_stop = [(1, .5, .5), (5, .5, .5), (3, .3, .7), (5, .3, .7), (5, 0., 1.), (10, 0., 1.)] mp = None expected_keys = set(range(density ** 2 + 2)) selection_counter = [] voxel_counter = [] for sp, sa, so in steps_start_stop: vs = volsurf.VolSurfMaximalMapping(vg, outer, inner, (outer + inner) * .5, sp, sa, so) n2v = vs.get_node2voxels_mapping() if mp is None: mp = n2v assert_equal(expected_keys, set(n2v.keys())) counter = 0 for k, v2pos in n2v.iteritems(): for v, pos in v2pos.iteritems(): # should be close to grey matter assert_true(-1. <= pos <= 2.) counter += 1 selection_counter.append(counter) img = vs.voxel_count_nifti_image() voxel_counter.append(np.sum(img.get_data() > 0)) # hard coded number of expected voxels selection_expected = [1602, 1602, 4618, 5298, 7867, 10801] assert_equal(selection_counter, selection_expected) voxel_expected = [1498, 1498, 4322, 4986, 7391, 10141] assert_equal(voxel_counter, voxel_expected) # check that string building works assert_true(len('%s%r' % (vs, vs)) > 0) def test_volsurf_surf_from_volume(self): aff = np.eye(4) aff[0, 0] = aff[1, 1] = aff[2, 2] = 3 sh = (40, 40, 40) vg = volgeom.VolGeom(sh, aff) p = volsurf.from_volume(vg).intermediate_surface q = volsurf.VolumeBasedSurface(vg) centers = [0, 10, 10000, (-1, -1, -1), (5, 5, 5)] radii = [0, 10, 20, 100] for center in centers: for radius in radii: x = p.circlearound_n2d(center, radius) y = q.circlearound_n2d(center, radius) assert_equal(x, y) def test_volume_mask_dict(self): # also tests the outside_node_margin feature sh = (10, 10, 10) msk = np.zeros(sh) for i in xrange(0, sh[0], 2): msk[i, :, :] = 1 vol_affine = np.identity(4) vol_affine[0, 0] = vol_affine[1, 1] = vol_affine[2, 2] = 2 vg = volgeom.VolGeom(sh, vol_affine, mask=msk) density = 10 outer = surf.generate_sphere(density) * 10. + 5 inner = surf.generate_sphere(density) * 5. + 5 intermediate = outer * .5 + inner * .5 xyz = intermediate.vertices radius = 50 outside_node_margins = [None, 0, 100., np.inf, True] expected_center_count = [87] * 2 + [intermediate.nvertices] * 3 for k, outside_node_margin in enumerate(outside_node_margins): sel = surf_voxel_selection.run_voxel_selection(radius, vg, inner, outer, outside_node_margin=outside_node_margin) assert_equal(intermediate, sel.source) assert_equal(len(sel.keys()), expected_center_count[k]) assert_true(set(sel.aux_keys()).issubset(set(['center_distances', 'grey_matter_position']))) msk_lin = msk.ravel() sel_msk_lin = sel.get_mask().ravel() for i in xrange(vg.nvoxels): if msk_lin[i]: src = sel.target2nearest_source(i) assert_false((src is None) ^ (sel_msk_lin[i] == 0)) if src is None: continue # index of node nearest to voxel i src_anywhere = sel.target2nearest_source(i, fallback_euclidean_distance=True) # coordinates of node nearest to voxel i xyz_src = xyz[src_anywhere] # coordinates of voxel i xyz_trg = vg.lin2xyz(np.asarray([i])) # distance between node nearest to voxel i, and voxel i # this should be the smallest distancer d = volgeom.distance(np.reshape(xyz_src, (1, 3)), xyz_trg) # distances between all nodes and voxel i ds = volgeom.distance(xyz, xyz_trg) # order of the distances is_ds = np.argsort(ds.ravel()) # go over all the nodes # require that the node is in the volume # mask # index of node nearest to voxel i ii = np.argmin(ds) xyz_min = xyz[ii] lin_min = vg.xyz2lin([xyz_min]) # linear index of voxel that contains xyz_src lin_src = vg.xyz2lin(np.reshape(xyz_src, (1, 3))) # when using multi-core support, # pickling and unpickling can reduce the precision # a little bit, causing rounding errors eps = 1e-14 delta = np.abs(ds[ii] - d) assert_false(delta > eps and ii in sel and i in sel[ii] and vg.contains_lin(lin_min)) def test_surf_voxel_selection(self): vol_shape = (10, 10, 10) vol_affine = np.identity(4) vol_affine[0, 0] = vol_affine[1, 1] = vol_affine[2, 2] = 5 vg = volgeom.VolGeom(vol_shape, vol_affine) density = 10 outer = surf.generate_sphere(density) * 25. + 15 inner = surf.generate_sphere(density) * 20. + 15 vs = volsurf.VolSurfMaximalMapping(vg, outer, inner) nv = outer.nvertices # select under variety of parameters # parameters are distance metric (dijkstra or euclidean), # radius, and number of searchlight centers params = [('d', 1., 10), ('d', 1., 50), ('d', 1., 100), ('d', 2., 100), ('e', 2., 100), ('d', 2., 100), ('d', 20, 100), ('euclidean', 5, None), ('dijkstra', 10, None)] # function that indicates for which parameters the full test is run test_full = lambda x: len(x[0]) > 1 or x[2] == 100 expected_labs = ['grey_matter_position', 'center_distances'] voxcount = [] tested_double_features = False for param in params: distance_metric, radius, ncenters = param srcs = range(0, nv, nv // (ncenters or nv)) sel = surf_voxel_selection.voxel_selection(vs, radius, source_surf_nodes=srcs, distance_metric=distance_metric) # see how many voxels were selected vg = sel.volgeom datalin = np.zeros((vg.nvoxels, 1)) mp = sel for k, idxs in mp.iteritems(): if idxs is not None: datalin[idxs] = 1 voxcount.append(np.sum(datalin)) if test_full(param): assert_equal(np.sum(datalin), np.sum(sel.get_mask())) assert_true(len('%s%r' % (sel, sel)) > 0) # see if voxels containing inner and outer # nodes were selected for sf in [inner, outer]: for k, idxs in mp.iteritems(): xyz = np.reshape(sf.vertices[k, :], (1, 3)) linidx = vg.xyz2lin(xyz) # only required if xyz is actually within the volume assert_equal(linidx in idxs, vg.contains_lin(linidx)) # check that it has all the attributes labs = sel.aux_keys() assert_true(all([lab in labs for lab in expected_labs])) if externals.exists('h5py'): # some I/O testing fd, fn = tempfile.mkstemp('.h5py', 'test'); os.close(fd) h5save(fn, sel) sel2 = h5load(fn) os.remove(fn) assert_equal(sel, sel2) else: sel2 = sel # check that mask is OK even after I/O assert_array_equal(sel.get_mask(), sel2.get_mask()) # test I/O with surfaces # XXX the @tempfile decorator only supports a single filename # hence this method does not use it fd, outerfn = tempfile.mkstemp('outer.asc', 'test'); os.close(fd) fd, innerfn = tempfile.mkstemp('inner.asc', 'test'); os.close(fd) fd, volfn = tempfile.mkstemp('vol.nii', 'test'); os.close(fd) surf.write(outerfn, outer, overwrite=True) surf.write(innerfn, inner, overwrite=True) img = sel.volgeom.get_empty_nifti_image() img.to_filename(volfn) sel3 = surf_voxel_selection.run_voxel_selection(radius, volfn, innerfn, outerfn, source_surf_nodes=srcs, distance_metric=distance_metric) outer4 = surf.read(outerfn) inner4 = surf.read(innerfn) vsm4 = vs = volsurf.VolSurfMaximalMapping(vg, inner4, outer4) # check that two ways of voxel selection match sel4 = surf_voxel_selection.voxel_selection(vsm4, radius, source_surf_nodes=srcs, distance_metric=distance_metric) assert_equal(sel3, sel4) os.remove(outerfn) os.remove(innerfn) os.remove(volfn) # compare sel3 with other selection results # NOTE: which voxels are precisely selected by sel can be quite # off from those in sel3, as writing the surfaces imposes # rounding errors and the sphere is very symmetric, which # means that different neighboring nodes are selected # to select a certain number of voxels. sel3cmp_difference_ratio = [(sel, .2), (sel4, 0.)] for selcmp, ratio in sel3cmp_difference_ratio: nunion = ndiff = 0 for k in selcmp.keys(): p = set(sel3.get(k)) q = set(selcmp.get(k)) nunion += len(p.union(q)) ndiff += len(p.symmetric_difference(q)) assert_true(float(ndiff) / float(nunion) <= ratio) # check searchlight call # as of late Aug 2012, this is with the fancy query engine # as implemented by Yarik mask = sel.get_mask() keys = None if ncenters is None else sel.keys() dset_data = np.reshape(np.arange(vg.nvoxels), vg.shape) dset_img = nb.Nifti1Image(dset_data, vg.affine) dset = fmri_dataset(samples=dset_img, mask=mask) qe = queryengine.SurfaceVerticesQueryEngine(sel, # you can optionally add additional # information about each near-disk-voxels add_fa=['center_distances', 'grey_matter_position']) # test i/o ensuring that when loading it is still trained if externals.exists('h5py'): fd, qefn = tempfile.mkstemp('qe.hdf5', 'test'); os.close(fd) h5save(qefn, qe) qe = h5load(qefn) os.remove(qefn) assert_false('ERROR' in repr(qe)) # to check if repr works voxelcounter = _Voxel_Count_Measure() searchlight = Searchlight(voxelcounter, queryengine=qe, roi_ids=keys, nproc=1, enable_ca=['roi_feature_ids', 'roi_center_ids']) sl_dset = searchlight(dset) selected_count = sl_dset.samples[0, :] mp = sel for i, k in enumerate(sel.keys()): # check that number of selected voxels matches assert_equal(selected_count[i], len(mp[k])) assert_equal(searchlight.ca.roi_center_ids, sel.keys()) assert_array_equal(sl_dset.fa['center_ids'], qe.ids) # check nearest node is *really* the nearest node allvx = sel.get_targets() intermediate = outer * .5 + inner * .5 for vx in allvx: nearest = sel.target2nearest_source(vx) xyz = intermediate.vertices[nearest, :] sqsum = np.sum((xyz - intermediate.vertices) ** 2, 1) idx = np.argmin(sqsum) assert_equal(idx, nearest) if not tested_double_features: # test only once # see if we have multiple features for the same voxel, we would get them all dset1 = dset.copy() dset1.fa['dset'] = [1] dset2 = dset.copy() dset2.fa['dset'] = [2] dset_ = hstack((dset1, dset2), 'drop_nonunique') dset_.sa = dset1.sa # dset_.a.imghdr = dset1.a.imghdr assert_true('imghdr' in dset_.a.keys()) assert_equal(dset_.a['imghdr'].value, dset1.a['imghdr'].value) roi_feature_ids = searchlight.ca.roi_feature_ids sl_dset_ = searchlight(dset_) # and we should get twice the counts assert_array_equal(sl_dset_.samples, sl_dset.samples * 2) # compare old and new roi_feature_ids assert(len(roi_feature_ids) == len(searchlight.ca.roi_feature_ids)) nfeatures = dset.nfeatures for old, new in zip(roi_feature_ids, searchlight.ca.roi_feature_ids): # each new ids should comprise of old ones + (old + nfeatures) # since we hstack'ed two datasets assert_array_equal(np.hstack([(x, x + nfeatures) for x in old]), new) tested_double_features = True # check whether number of voxels were selected is as expected expected_voxcount = [22, 93, 183, 183, 183, 183, 183, 183, 183] assert_equal(voxcount, expected_voxcount) def test_h5support(self): sh = (20, 20, 20) msk = np.zeros(sh) for i in xrange(0, sh[0], 2): msk[i, :, :] = 1 vg = volgeom.VolGeom(sh, np.identity(4), mask=msk) density = 20 outer = surf.generate_sphere(density) * 10. + 5 inner = surf.generate_sphere(density) * 5. + 5 intermediate = outer * .5 + inner * .5 xyz = intermediate.vertices radius = 50 backends = ['native', 'hdf5'] for i, backend in enumerate(backends): if backend == 'hdf5' and not externals.exists('h5py'): continue sel = surf_voxel_selection.run_voxel_selection(radius, vg, inner, outer, results_backend=backend) if i == 0: sel0 = sel else: assert_equal(sel0, sel) def test_agreement_surface_volume(self): '''test agreement between volume-based and surface-based searchlights when using euclidean measure''' # import runner def sum_ds(ds): return np.sum(ds) radius = 3 # make a small dataset with a mask sh = (10, 10, 10) msk = np.zeros(sh) for i in xrange(0, sh[0], 2): msk[i, :, :] = 1 vg = volgeom.VolGeom(sh, np.identity(4), mask=msk) # make an image nt = 6 img = vg.get_masked_nifti_image(6) ds = fmri_dataset(img, mask=msk) # run the searchlight sl = sphere_searchlight(sum_ds, radius=radius) m = sl(ds) # now use surface-based searchlight v = volsurf.from_volume(ds) source_surf = v.intermediate_surface node_msk = np.logical_not(np.isnan(source_surf.vertices[:, 0])) # check that the mask matches with what we used earlier assert_array_equal(msk.ravel() + 0., node_msk.ravel() + 0.) source_surf_nodes = np.nonzero(node_msk)[0] sel = surf_voxel_selection.voxel_selection(v, float(radius), source_surf=source_surf, source_surf_nodes=source_surf_nodes, distance_metric='euclidean') qe = queryengine.SurfaceVerticesQueryEngine(sel) sl = Searchlight(sum_ds, queryengine=qe) r = sl(ds) # check whether they give the same results assert_array_equal(r.samples, m.samples) @with_tempfile('.h5py', '_qe') def test_surf_queryengine(self, qefn): s = surf.generate_plane((0, 0, 0), (0, 1, 0), (0, 0, 1), 4, 5) # add second layer s2 = surf.merge(s, (s + (.01, 0, 0))) ds = Dataset(samples=np.arange(20)[np.newaxis], fa=dict(node_indices=np.arange(39, 0, -2))) # add more features (with shared node indices) ds3 = hstack((ds, ds, ds)) radius = 2.5 # Note: sweepargs it not used to avoid re-generating the same # surface and dataset multiple times. for distance_metric in ('euclidean', 'dijkstra', '', None): builder = lambda: queryengine.SurfaceQueryEngine(s2, radius, distance_metric) if distance_metric in ('', None): assert_raises(ValueError, builder) continue qe = builder() # test i/o and ensure that the untrained instance is not trained if externals.exists('h5py'): h5save(qefn, qe) qe = h5load(qefn) # untrained qe should give errors assert_raises(ValueError, lambda:qe.ids) assert_raises(ValueError, lambda:qe.query_byid(0)) # node index out of bounds should give error ds_ = ds.copy() ds_.fa.node_indices[0] = 100 assert_raises(ValueError, lambda: qe.train(ds_)) # lack of node indices should give error ds_.fa.pop('node_indices') assert_raises(ValueError, lambda: qe.train(ds_)) # train the qe qe.train(ds3) # test i/o and ensure that the loaded instance is trained if externals.exists('h5py'): h5save(qefn, qe) qe = h5load(qefn) for node in np.arange(-1, s2.nvertices + 1): if node < 0 or node >= s2.nvertices: assert_raises(KeyError, lambda: qe.query_byid(node)) continue feature_ids = np.asarray(qe.query_byid(node)) # node indices relative to ds base_ids = feature_ids[feature_ids < 20] # should have multiples of 20 assert_equal(set(feature_ids), set((base_ids[np.newaxis].T + \ [0, 20, 40]).ravel())) node_indices = list(s2.circlearound_n2d(node, radius, distance_metric or 'dijkstra')) fa_indices = [fa_index for fa_index, node in enumerate(ds3.fa.node_indices) if node in node_indices] assert_equal(set(feature_ids), set(fa_indices)) # smoke tests assert_true('SurfaceQueryEngine' in '%s' % qe) assert_true('SurfaceQueryEngine' in '%r' % qe) def test_surf_ring_queryengine(self): s = surf.generate_plane((0, 0, 0), (0, 1, 0), (0, 0, 1), 4, 5) # add second layer s2 = surf.merge(s, (s + (.01, 0, 0))) ds = Dataset(samples=np.arange(20)[np.newaxis], fa=dict(node_indices=np.arange(39, 0, -2))) # add more features (with shared node indices) ds3 = hstack((ds, ds, ds)) radius = 2.5 inner_radius = 1.0 # Makes sure it raises error if inner_radius is >= radius assert_raises(ValueError, lambda: queryengine.SurfaceRingQueryEngine(surface=s2, inner_radius=2.5, radius=radius)) distance_metrics = ('euclidean', 'dijkstra', 'euclidean', 'dijkstra') for distance_metric, include_center in zip(distance_metrics, [True, False]*2): qe = queryengine.SurfaceRingQueryEngine(surface=s2, radius=radius, inner_radius=inner_radius, distance_metric=distance_metric, include_center=include_center) # untrained qe should give errors assert_raises(ValueError, lambda: qe.ids) assert_raises(ValueError, lambda: qe.query_byid(0)) # node index out of bounds should give error ds_ = ds.copy() ds_.fa.node_indices[0] = 100 assert_raises(ValueError, lambda: qe.train(ds_)) # lack of node indices should give error ds_.fa.pop('node_indices') assert_raises(ValueError, lambda: qe.train(ds_)) # train the qe qe.train(ds3) for node in np.arange(-1, s2.nvertices + 1): if node < 0 or node >= s2.nvertices: assert_raises(KeyError, lambda: qe.query_byid(node)) continue feature_ids = np.asarray(qe.query_byid(node)) # node indices relative to ds base_ids = feature_ids[feature_ids < 20] # should have multiples of 20 assert_equal(set(feature_ids), set((base_ids[np.newaxis].T + \ [0, 20, 40]).ravel())) node_indices = s2.circlearound_n2d(node, radius, distance_metric or 'dijkstra') fa_indices = [fa_index for fa_index, inode in enumerate(ds3.fa.node_indices) if inode in node_indices and node_indices[inode] > inner_radius] if include_center and node in ds3.fa.node_indices: fa_indices += np.where(ds3.fa.node_indices == node)[0].tolist() assert_equal(set(feature_ids), set(fa_indices)) def test_surf_pairs(self): o, x, y = map(np.asarray, [(0, 0, 0), (0, 1, 0), (1, 0, 0)]) d = np.asarray((0, 0, .1)) n = 10 s1 = surf.generate_plane(o, x, y, n, n) s2 = surf.generate_plane(o + d, x, y, n, n) s = surf.merge(s1, s2) # try for small surface eps = .0000001 pw = s.pairwise_near_nodes(.5) for i in xrange(n ** 2): d = pw.pop((i, i + 100)) assert_array_almost_equal(d, .1) assert_true(len(pw) == 0) pw = s.pairwise_near_nodes(.5) for i in xrange(n ** 2): d = pw.pop((i, i + 100)) assert_array_almost_equal(d, .1) assert_true(len(pw) == 0) # bigger one pw = s.pairwise_near_nodes(1.4) for i in xrange(n ** 2): p, q = i // n, i % n offsets = sum(([] if q == 0 else [-1], [] if q == n - 1 else [+1], [] if p == 0 else [-n], [] if p == n - 1 else [n], [0]), []) for offset in offsets: ii = i + offset + n ** 2 d = pw.pop((i, ii)) assert_true((d < .5) ^ (offset > 0)) assert_true(len(pw) == 0) @with_tempfile('surf.surf.gii', 'surftest') def test_surf_gifti(self, fn): # From section 14.4 in GIFTI Surface Data Format Version 1.0 # (with some adoptions) test_data = ''' 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 10.5 0 0 0 20.5 0 0 0 30.5 0 0 0 0 1 2 1 2 3 0 1 3 0 2 3 ''' with open(fn, 'w') as f: f.write(test_data) # test I/O s = surf.read(fn) surf.write(fn, s) s = surf.read(fn) v = np.zeros((4, 3)) v[0, 0] = 10.5 v[1, 1] = 20.5 v[2, 2] = 30.5 f = np.asarray([[0, 1, 2], [1, 2, 3], [0, 1, 3], [0, 2, 3]], dtype=np.int32) assert_array_equal(s.vertices, v) assert_array_equal(s.faces, f) class _Voxel_Count_Measure(Measure): # used to check voxel selection results is_trained = True def __init__(self, **kwargs): Measure.__init__(self, **kwargs) def _call(self, dset): return dset.nfeatures def suite(): # pragma: no cover """Create the suite""" return unittest.makeSuite(SurfTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_surfing_afni.py000066400000000000000000000640041323370031300213720ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA surface searchlight functions specific for handling AFNI datasets""" import numpy as np import os from os.path import join as pathjoin import tempfile import copy from mvpa2.testing import * from mvpa2.support.nibabel import afni_niml, afni_niml_dset, afni_niml_roi, \ surf, afni_suma_spec from mvpa2.datasets import niml from mvpa2.datasets.base import Dataset, dataset_wizard class SurfTests(unittest.TestCase): """Test for AFNI I/O together with surface-based stuff NNO Aug 2012 'Ground truth' is whatever output is returned by the implementation as of mid-Aug 2012""" def _get_rng(self): keys = [(17 * i ** 5 + 78234745 * i + 8934) % (2 ** 32 - 1) for i in xrange(624)] keys = np.asanyarray(keys, dtype=np.uint32) rng = np.random.RandomState() rng.set_state(('MT19937', keys, 0)) return rng def test_afni_niml(self): # just a bunch of tests ps = afni_niml._partial_string assert_equal(ps("", 0, 0), "") assert_equal(ps("ab", 0, 0), "") assert_equal(ps("abcdefghij", 0, 0), "") assert_equal(ps("", 2, 0), "") assert_equal(ps("ab", 2, 0), "") assert_equal(ps("abcdefghij", 2, 0), "") assert_equal(ps("", 0, 1), "") assert_equal(ps("ab", 0, 1), " ... b") assert_equal(ps("abcdefghij", 0, 1), " ... j") assert_equal(ps("", 2, 1), "") assert_equal(ps("ab", 2, 1), "") assert_equal(ps("abcdefghij", 2, 1), " ... j") assert_equal(ps("", 0, 100), "") assert_equal(ps("ab", 0, 100), "ab") assert_equal(ps("abcdefghij", 0, 100), "abcdefghij") assert_equal(ps("", 2, 100), "") assert_equal(ps("ab", 2, 100), "") assert_equal(ps("abcdefghij", 2, 100), "cdefghij") data = np.asarray([[1347506771, 1347506772], [1347506773, 1347506774]], dtype=np.int32) fmt_data_reprs = dict(text='1347506771 1347506772\n1347506773 1347506774', binary='SRQPTRQPURQPVRQP', base64='U1JRUFRSUVBVUlFQVlJRUA==') minimal_niml_struct = [{'dset_type': 'Node_Bucket', 'name': 'AFNI_dataset', 'ni_form': 'ni_group', 'nodes': [{'data': data, 'data_type': 'Node_Bucket_data', 'name': 'SPARSE_DATA', 'ni_dimen': '2', 'ni_type': '2*int32'}, {'atr_name': 'COLMS_LABS', 'data': 'col_0;col_1', 'name': 'AFNI_atr', 'ni_dimen': '1', 'ni_type': 'String'}]}] def _eq(p, q): # helper function: equality for both arrays and other things return np.all(p == q) if type(p) is np.ndarray else p == q for fmt, data_repr in fmt_data_reprs.iteritems(): s = afni_niml.rawniml2string(minimal_niml_struct, fmt) d = afni_niml.string2rawniml(s) # ensure data was converted properly for k, v in minimal_niml_struct[0].iteritems(): if k == 'nodes': # at least in one of the data for node in v: for kk, vv in node.iteritems(): # at least one of the data fields should have a value matching # that from the expected converted value dvals = [d[0]['nodes'][i].get(kk, None) for i in xrange(len(v))] assert_true(any([_eq(vv, dval) for dval in dvals])) elif k != 'name': # check header was properly converted assert_true(('%s="%s"' % (k, v)).encode() in s) # check that if we remove some important information, then parsing fails important_keys = ['ni_form', 'ni_dimen', 'ni_type'] for k in important_keys: s_bad = s.replace(k.encode(), b'foo') # assert_raises((KeyError, ValueError), afni_niml.string2rawniml, s_bad) # adding garbage at the beginning or end should fail the parse garbage = "GARBAGE".encode() assert_raises((KeyError, ValueError), afni_niml.string2rawniml, s + garbage) assert_raises((KeyError, ValueError), afni_niml.string2rawniml, garbage + s) # allow entries with no data, such as lacking node indices # in case AFNI's 3dVol2Surf was run without node index output niml_struct_empty_nodes = copy.deepcopy(minimal_niml_struct) niml_struct_empty_nodes[0]['nodes'].append({'name': 'INDEX_LIST'}) s_empty_nodes = afni_niml.rawniml2string(niml_struct_empty_nodes, fmt) d_empty_nodes = afni_niml.string2rawniml(s_empty_nodes) assert_array_equal(d[0]['nodes'][0]['data'], d_empty_nodes[0]['nodes'][0]['data']) assert_equal(d[0]['nodes'][0].keys(), d_empty_nodes[0]['nodes'][0].keys()) assert_array_equal(d[0]['nodes'][1]['data'], d_empty_nodes[0]['nodes'][1]['data']) assert_equal(d[0]['nodes'][1].keys(), d_empty_nodes[0]['nodes'][1].keys()) @with_tempfile('.niml.dset', 'dset') def test_surface_dset_niml_io_with_unicode(self, fn): ds = dataset_wizard(np.arange(20).reshape((4, 5)), targets=1, chunks=1) ds.sa['unicode'] = [u'u1', u'uu2', u'uuu3', u'uuuu4'] ds.sa['str'] = ['s1', 'ss2', 'sss3', 'ssss4'] ds.fa['node_indices'] = np.arange(5) # ensure sample attributes are of String type (not array) niml_dict = afni_niml_dset.dset2rawniml(niml.to_niml(ds)) expected_dtypes = dict(PYMVPA_SA_unicode='String', PYMVPA_SA_str='String', PYMVPA_SA_targets='1*int32') def assert_has_expected_datatype(name, expected_dtype, niml): """helper function""" nodes = niml_dict['nodes'] for node in nodes: if node['name'] == name: assert_equal(node['ni_type'], expected_dtype) return raise ValueError('not found: %s', name) for name, expected_dtype in expected_dtypes.iteritems(): assert_has_expected_datatype(name, expected_dtype, niml) # test NIML I/O niml.write(fn, ds) # remove extra fields added when reading the file ds2 = niml.from_any(fn) ds2.a.pop('history') ds2.a.pop('filename') ds2.sa.pop('labels') ds2.sa.pop('stats') # NIML does not support int64, only int32; # compare equality of values in samples by setting the # datatype the same as in the input (int32 or int64 depending # on the platform) ds2.samples = np.asarray(ds2.samples, dtype=ds.samples.dtype) assert_datasets_equal(ds, ds2) @with_tempfile('.h5py', 'h5py') def test_surface_dset_h5py_io_with_unicode(self, fn): skip_if_no_external('h5py') from mvpa2.base.hdf5 import h5save, h5load ds = dataset_wizard(np.arange(20).reshape((4, 5)), targets=1, chunks=1) ds.sa['unicode'] = [u'u1', u'uu2', u'uuu3', u'uuuu4'] ds.sa['str'] = ['s1', 'ss2', 'sss3', 'ssss4'] ds.fa['node_indices'] = np.arange(5) # test h5py I/O h5save(fn, ds) ds2 = h5load(fn) assert_datasets_equal(ds, ds2) @with_tempfile('.niml.dset', 'dset') def test_afni_niml_dset_with_2d_strings(self, fn): # test for 2D arrays with strings. These are possibly SUMA-incompatible # but should still be handled properly for i/o. # Addresses https://github.com/PyMVPA/PyMVPA/issues/163 (#163) samples = np.asarray([[1, 2, 3], [4, 5, 6]]) labels = np.asarray(map(list, ['abcd', 'efgh'])) idxs = np.asarray([np.arange(10, 14), np.arange(20, 24)]) ds = Dataset(samples, sa=dict(labels=labels, idxs=idxs)) for fmt in ('binary', 'text', 'base64'): niml.write(fn, ds, fmt) ds_ = niml.read(fn) assert_array_equal(ds.samples, ds_.samples) for sa_key in ds.sa.keys(): v = ds.sa[sa_key].value v_ = ds_.sa[sa_key].value assert_array_equal(v, v_) @with_tempfile('.niml.dset', 'dset') def test_afni_niml_dset(self, fn): sz = (100, 45) # dataset size rng = self._get_rng() # generate random data expected_vals = {(0, 0): -2.13856, (sz[0] - 1, sz[1] - 1): -1.92434, (sz[0], sz[1] - 1): None, (sz[0] - 1, sz[1]): None, sz: None} # test for different formats in which the data is stored fmts = ['text', 'binary', 'base64'] # also test for different datatypes tps = [np.int32, np.int64, np.float32, np.float64] # generated random data data = rng.normal(size=sz) # set labels for samples, and set node indices labels = ['lab_%d' % round(rng.uniform() * 1000) for _ in xrange(sz[1])] node_indices = np.argsort(rng.uniform(size=(sz[0],))) node_indices = np.reshape(node_indices, (sz[0], 1)) eps = .00001 # test I/O # depending on the mode we do different tests (but on the same data) modes = ['normal', 'skipio', 'sparse2full'] for fmt in fmts: for tp in tps: for mode in modes: # make a dataset dset = dict(data=np.asarray(data, tp), labels=labels, node_indices=node_indices) dset_keys = dset.keys() if mode == 'skipio': # try conversion to/from raw NIML # do not write to disk r = afni_niml_dset.dset2rawniml(dset) s = afni_niml.rawniml2string(r) r2 = afni_niml.string2rawniml(s) dset2 = afni_niml_dset.rawniml2dset(r2)[0] else: # write and read from disk afni_niml_dset.write(fn, dset, fmt) dset2 = afni_niml_dset.read(fn) os.remove(fn) # data in dset and dset2 should be identical for k in dset_keys: # general idea is to test whether v is equal to v2 v = dset[k] v2 = dset2[k] if k == 'data': if mode == 'sparse2full': # test the sparse2full feature # this changes the order of the data over columns # so we skip testing whether dset2 is equal to dset nfull = 2 * sz[0] dset3 = afni_niml_dset.sparse2full(dset2, pad_to_node=nfull) assert_equal(dset3['data'].shape[0], nfull) idxs = dset['node_indices'][:, 0] idxs3 = dset3['node_indices'][:, 0] vbig = np.zeros((nfull, sz[1])) vbig[idxs, :] = v[np.arange(sz[0]), :] v = vbig v2 = dset3['data'][idxs3, :] else: # check that data is as expected for pos, val in expected_vals.iteritems(): if val is None: assert_raises(IndexError, lambda x: x[pos], v2) else: val2 = np.asarray(val, tp) assert_true(abs(v2[pos] - val2) < eps) if type(v) is list: assert_equal(v, v2) else: eps_dec = 4 if mode != 'sparse2full' or k == 'data': assert_array_almost_equal(v, v2, eps_dec) @with_tempfile('.niml.dset', 'dset') def test_niml(self, fn): d = dict(data=np.random.normal(size=(10, 2)), node_indices=np.arange(10), stats=['none', 'Tstat(2)'], labels=['foo', 'bar']) a = niml.from_niml(d) b = niml.to_niml(a) afni_niml_dset.write(fn, b) readers = (niml.from_any, lambda x: niml.from_niml(afni_niml_dset.read(x))) for reader in readers: cc = reader(fn) for dset in (a, cc): assert_equal(list(dset.sa['labels']), d['labels']) assert_equal(list(dset.sa['stats']), d['stats']) assert_array_equal(np.asarray(dset.fa['node_indices']).ravel(), d['node_indices']) eps_dec = 4 assert_array_almost_equal(dset.samples, d['data'].transpose(), eps_dec) # some more tests to ensure that the order of elements is ok # (row first or column first) d = np.arange(10).reshape((5, -1)) + .5 ds = Dataset(d) writers = [niml.write, afni_niml_dset.write] for i, writer in enumerate(writers): for form in ('text', 'binary', 'base64'): if i == 0: writer(fn, ds, form=form) else: writer(fn, dict(data=d.transpose()), form=form) x = afni_niml_dset.read(fn) assert_array_equal(x['data'], d.transpose()) @with_tempfile('.niml.dset', 'dset') def test_niml_dset_voxsel(self, fn): if not externals.exists('nibabel'): return # This is actually a bit of an integration test. # It tests storing and retrieving searchlight results. # Imports are inline here so that it does not mess up the header # and makes the other unit tests more modular # XXX put this in a separate file? from mvpa2.misc.surfing import volgeom, surf_voxel_selection, queryengine from mvpa2.measures.searchlight import Searchlight from mvpa2.support.nibabel import surf from mvpa2.measures.base import Measure from mvpa2.datasets.mri import fmri_dataset class _Voxel_Count_Measure(Measure): # used to check voxel selection results is_trained = True def __init__(self, dtype, **kwargs): Measure.__init__(self, **kwargs) self.dtype = dtype def _call(self, dset): return self.dtype(dset.nfeatures) sh = (20, 20, 20) vg = volgeom.VolGeom(sh, np.identity(4)) density = 20 outer = surf.generate_sphere(density) * 10. + 5 inner = surf.generate_sphere(density) * 5. + 5 intermediate = outer * .5 + inner * .5 xyz = intermediate.vertices radius = 50 sel = surf_voxel_selection.run_voxel_selection(radius, vg, inner, outer) qe = queryengine.SurfaceVerticesQueryEngine(sel) for dtype in (int, float): sl = Searchlight(_Voxel_Count_Measure(dtype), queryengine=qe) ds = fmri_dataset(vg.get_empty_nifti_image(1)) r = sl(ds) niml.write(fn, r) rr = niml.read(fn) os.remove(fn) assert_array_equal(r.samples, rr.samples) def test_niml_dset_stack(self): values = map(lambda x: np.random.normal(size=x), [(10, 3), (10, 4), (10, 5)]) indices = [[0, 1, 2], [3, 2, 1, 0], None] dsets = [] for v, i in zip(values, indices): dset = Dataset(v) if i is not None: dset.fa['node_indices'] = i dsets.append(dset) dset = niml.hstack(dsets) assert_equal(dset.nfeatures, 12) assert_equal(dset.nsamples, 10) indices = np.asarray([0, 1, 2, 6, 5, 4, 3, 7, 8, 9, 10, 11]) assert_array_equal(dset.fa['node_indices'], indices) dset = niml.hstack(dsets, 10) dset = niml.hstack(dsets, 10) # twice to ensure not overwriting assert_equal(dset.nfeatures, 30) indices = np.asarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 12, 11, 10, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]) assert_array_equal(dset.fa['node_indices'], indices) assert_true(np.all(dset[:, 4].samples == 0)) assert_array_equal(dset[:, 10:14].samples, dsets[1].samples) # If not enough space it should raise an error stacker = (lambda x: niml.hstack(dsets, x)) assert_raises(ValueError, stacker, 2) # If sparse then with no padding it should fail dsets[0].fa.node_indices[0] = 3 assert_raises(ValueError, stacker, None) # Using an illegal node index should raise an error dsets[1].fa.node_indices[0] = 666 assert_raises(ValueError, stacker, 10) @with_tempfile('.niml.roi', 'dset') def test_afni_niml_roi(self, fn): payload = """# 1 4 1 42946 1 4 10 42946 42947 43062 43176 43289 43401 43512 43513 43623 43732 1 4 8 43732 43623 43514 43404 43293 43181 43068 42954 3 4 9 42954 42953 42952 42951 42950 42949 42948 42947 42946 4 1 14 43063 43064 43065 43066 43067 43177 43178 43179 43180 43290 43291 43292 43402 43403 # """ with open(fn, 'w') as f: f.write(payload) rois = afni_niml_roi.read(fn) assert_equal(len(rois), 1) roi = rois[0] expected_keys = ['ni_type', 'ColPlaneName', 'iLabel', 'Parent_side', 'EdgeColor', 'Label', 'edges', 'ni_dimen', 'self_idcode', 'EdgeThickness', 'Type', 'areas', 'domain_parent_idcode', 'FillColor'] assert_equal(set(roi.keys()), set(expected_keys)) assert_equal(roi['Label'], 'myroi') assert_equal(roi['iLabel'], 12) # check edges arr = np.asarray expected_edges = [arr([42946]), arr([42946, 42947, 43062, 43176, 43289, 43401, 43512, 43513, 43623, 43732]), arr([43732, 43623, 43514, 43404, 43293, 43181, 43068, 42954]), arr([42954, 42953, 42952, 42951, 42950, 42949, 42948, 42947, 42946])] for i in xrange(4): assert_array_equal(roi['edges'][i], expected_edges[i]) # check nodes expected_nodes = [arr([43063, 43064, 43065, 43066, 43067, 43177, 43178, 43179, 43180, 43290, 43291, 43292, 43402, 43403])] assert_equal(len(roi['areas']), 1) assert_array_equal(roi['areas'][0], expected_nodes[0]) # check mapping m = afni_niml_roi.read_mapping(rois) assert_equal(m.keys(), ['myroi']) unique_nodes = np.unique(expected_nodes[0]) assert_array_equal(m['myroi'], unique_nodes) @with_tempfile() def test_afni_suma_spec(self, temp_dir): # XXX this function generates quite a few temporary files, # which are removed at the end. # the decorator @with_tempfile seems unsuitable as it only # supports a single temporary file # make temporary directory os.mkdir(temp_dir) # generate surfaces inflated_surf = surf.generate_plane((0, 0, 0), (0, 1, 0), (0, 0, 1), 10, 10) white_surf = inflated_surf + 1. # helper function _tmp = lambda x: pathjoin(temp_dir, x) # filenames for surfaces and spec file inflated_fn = _tmp('_lh_inflated.asc') white_fn = _tmp('_lh_white.asc') spec_fn = _tmp('lh.spec') spec_dir = os.path.split(spec_fn)[0] # generate SUMA-like spec dictionary white = dict(SurfaceFormat='ASCII', EmbedDimension='3', SurfaceType='FreeSurfer', SurfaceName=white_fn, Anatomical='Y', LocalCurvatureParent='SAME', LocalDomainParent='SAME', SurfaceState='smoothwm') inflated = dict(SurfaceFormat='ASCII', EmbedDimension='3', SurfaceType='FreeSurfer', SurfaceName=inflated_fn, Anatomical='N', LocalCurvatureParent=white_fn, LocalDomainParent=white_fn, SurfaceState='inflated') # make SurfaceSpec object spec = afni_suma_spec.SurfaceSpec([white], directory=spec_dir) spec.add_surface(inflated) # test __str__ and __repr__ assert_true('SurfaceSpec instance with 2 surfaces' ', 2 states ' in '%s' % spec) assert_true(('%r' % spec).startswith('SurfaceSpec')) # test finding surfaces inflated_ = spec.find_surface_from_state('inflated') assert_equal([(1, inflated)], inflated_) empty = spec.find_surface_from_state('unknown') assert_equal(empty, []) # test .same_states minimal = afni_suma_spec.SurfaceSpec([dict(SurfaceState=s) for s in ('smoothwm', 'inflated')]) assert_true(spec.same_states(minimal)) assert_false(spec.same_states(afni_suma_spec.SurfaceSpec(dict()))) # test 'smart' surface file matching assert_equal(spec.get_surface_file('smo'), white_fn) assert_equal(spec.get_surface_file('inflated'), inflated_fn) assert_equal(spec.get_surface_file('this should be None'), None) # test i/o spec.write(spec_fn) spec_ = afni_suma_spec.from_any(spec_fn) # prepare for another (right-hemisphere) spec file lh_spec = spec rh_spec_fn = spec_fn.replace('lh', 'rh') rh_inflated_fn = _tmp(os.path.split(inflated_fn)[1].replace('_lh', '_rh')) rh_white_fn = _tmp(os.path.split(white_fn)[1].replace('_lh', '_rh')) rh_spec_fn = _tmp('rh.spec') rh_white = dict(SurfaceFormat='ASCII', EmbedDimension='3', SurfaceType='FreeSurfer', SurfaceName=rh_white_fn, Anatomical='Y', LocalCurvatureParent='SAME', LocalDomainParent='SAME', SurfaceState='smoothwm') rh_inflated = dict(SurfaceFormat='ASCII', EmbedDimension='3', SurfaceType='FreeSurfer', SurfaceName=rh_inflated_fn, Anatomical='N', LocalCurvatureParent=rh_white_fn, LocalDomainParent=rh_white_fn, SurfaceState='inflated') rh_spec = afni_suma_spec.SurfaceSpec([rh_white], directory=spec_dir) rh_spec.add_surface(rh_inflated) # write files all_temp_fns = [spec_fn, rh_spec_fn] for fn, s in [(rh_inflated_fn, inflated_surf), (rh_white_fn, white_surf), (inflated_fn, inflated_surf), (white_fn, white_surf)]: surf.write(fn, s) all_temp_fns.append(fn) # test adding views added_specs = afni_suma_spec.hemi_pairs_add_views((lh_spec, rh_spec), 'inflated', '.asc') for hemi, added_spec in zip(('l', 'r'), added_specs): states = ['smoothwm', 'inflated'] + ['CoM%sinflated' % i for i in 'msiap'] assert_equal(states, [s['SurfaceState'] for s in added_specs[0].surfaces]) all_temp_fns.extend([s['SurfaceName'] for s in added_spec.surfaces]) # test combining specs (bh=both hemispheres) bh_spec = afni_suma_spec.combine_left_right(added_specs) # test merging specs (mh=merged hemispheres) mh_spec, mh_surfs = afni_suma_spec.merge_left_right(bh_spec) assert_equal([s['SurfaceState'] for s in mh_spec.surfaces], ['smoothwm'] + ['CoM%sinflated' % i for i in 'msiap']) def suite(): # pragma: no cover """Create the suite""" return unittest.makeSuite(SurfTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_surfing_surface.py000066400000000000000000000313311323370031300221020ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for cortical surface functionality""" from mvpa2.testing.tools import skip_if_no_external skip_if_no_external('matplotlib') skip_if_no_external('griddata') import matplotlib.pyplot as plt import numpy as np from numpy.testing.utils import assert_array_almost_equal import random from mvpa2.testing.tools import assert_almost_equal, assert_array_equal, \ assert_equal, assert_raises, assert_is_instance, unittest from mvpa2.testing import sweepargs from mvpa2.support.nibabel import surf from mvpa2.support.nibabel.surf import vector_alignment_find_rotation, \ generate_plane, Surface from mvpa2.misc.plot.flat_surf import flat_surface2xy, FlatSurfacePlotter from mvpa2.base.dataset import AttrDataset def assert_vector_direction_almost_equal(x, y, *args, **kwargs): n_x = np.linalg.norm(x) n_y = np.linalg.norm(y) assert_almost_equal(np.dot(x, y), n_x * n_y, *args, **kwargs) class SurfingSurfaceTests(unittest.TestCase): @staticmethod def _assert_rotation_maps_vector(r, x, y): # rotation must be 3x3 numpy array assert_equal(r.shape, (3, 3)) assert_is_instance(r, np.ndarray) # rotation applied to x must yield direction of y # (modulo rounding errors) def normed(v): n_v = np.linalg.norm(v) return 0 if n_v == 0 else v / n_v rx = r.dot(x) rx_normed = normed(rx) y_normed = normed(y) assert_vector_direction_almost_equal(rx_normed, y_normed) # since it is a rotation, the result must have the same # L2 norm as the input assert_almost_equal(np.linalg.norm(x), np.linalg.norm(rx)) def test_vector_alignment_find_rotation_random_vectors(self): x = np.random.normal(size=(3,)) y = np.random.normal(size=(3,)) r = vector_alignment_find_rotation(x, y) SurfingSurfaceTests._assert_rotation_maps_vector(r, x, y) def test_vector_alignment_find_rotation_canonical_vectors(self): for i in xrange(3): x = np.zeros((3,)) x[i] = 1 for j in xrange(3): y = np.zeros((3,)) y[j] = 1 r = vector_alignment_find_rotation(x, y) SurfingSurfaceTests._assert_rotation_maps_vector(r, x, y) def test_vector_alignment_find_rotation_illegal_inputs(self): arr = np.asarray illegal_args = [ [arr([1, 2]), arr([1, 3])], [arr([1, 2, 3]), arr([1, 3])], [arr([1, 2, 3]), np.random.normal(size=(3, 3))] ] for illegal_arg in illegal_args: assert_raises((ValueError, IndexError), vector_alignment_find_rotation, *illegal_arg) @sweepargs(do_deterioriate_surface=(False, True)) def test_surface_face_normal(self, do_deterioriate_surface): vec1 = np.random.normal(size=(3,)) vec2 = np.random.normal(size=(3,)) vec_normal = -np.cross(vec1, vec2) plane = generate_plane((0, 0, 0), vec1, vec2, 10, 10) if do_deterioriate_surface: plane = SurfingSurfaceTests.deterioriate_surface(plane) plane_face_normals = plane.face_normals has_non_nan = False for f_n in plane_face_normals: if np.any(np.isnan(f_n)): continue assert_vector_direction_almost_equal(f_n, vec_normal, decimal=0) assert_almost_equal(f_n, surf.normalized( plane.nanmean_face_normal), decimal=0) has_non_nan = True if not has_non_nan: assert False, "Test should include faces with non-NaN normals" @staticmethod def add_noise_to_surface(s, noise_level=.05): vertices = s.vertices noise = np.random.uniform(size=vertices.shape, low=-.5 * noise_level, high=-.5 * noise_level, ) vertices_noisy = vertices + np.random.uniform(size=vertices.shape) * \ noise_level return Surface(vertices_noisy, s.faces, check=False) @staticmethod def set_nan_to_surface_vertices(s, nan_ratio=.05): # make some vertices NaN (as might be the case for flat surfaces) nan_count = int(np.ceil(s.nvertices * nan_ratio)) nan_vertices_ids = np.random.random_integers(s.nvertices, size=(nan_count,)) - 1 vertices_noisy = s.vertices + 0. vertices_noisy[nan_vertices_ids, :] = np.nan return Surface(vertices_noisy, s.faces, check=False) @staticmethod def deterioriate_surface(s, noise_level=.05, nan_ratio=.05): s = SurfingSurfaceTests.add_noise_to_surface(s, noise_level=noise_level) s = SurfingSurfaceTests.set_nan_to_surface_vertices(s, nan_ratio=nan_ratio) return s @staticmethod def assert_coordinates_almost_equal_modulo_rotation(p_xyz, q_xyz, max_difference): assert_equal(p_xyz.shape, q_xyz.shape) n, three = p_xyz.shape assert_equal(three, 3) n_pairs_to_test = 50 get_random_int = lambda: int(random.uniform(0, n)) get_distance = lambda x, y: np.linalg.norm(x - y) # ensure that we test for at least some distances, i.e. # that the presence of nans everywhere would not lead to a 'skipped' # test did_distance_test = False # compute some pairwise distances between nodes, and verity these # are more or lress the same in p_xyz and q_xyz for _ in xrange(n_pairs_to_test): a = get_random_int() b = get_random_int() d_p = get_distance(p_xyz[a], p_xyz[b]) d_q = get_distance(q_xyz[a], q_xyz[b]) if not any(np.isnan([d_p, d_q])): assert (abs(d_p - d_q) < max_difference) did_distance_test = True assert (did_distance_test) @sweepargs(dim=(0, 1, 2)) def test_surface_flatten(self, dim): def unit_vec3(dim, scale): v = [0, 0, 0] v[dim] = float(scale) return tuple(v) origin = (0, 0, 0) plane_size = 10 scale = 1. vec1 = unit_vec3(dim, scale=scale) vec2 = unit_vec3((dim + 1) % 3, scale=scale) plane = generate_plane(origin, vec1, vec2, plane_size, plane_size) noise_level = .05 nan_vertices_ratio = .05 # add some noise to spatial coordinates vertices = plane.vertices noise = np.random.uniform(size=vertices.shape, low=-.5, high=.5) * noise_level * scale vertices_noisy = vertices + noise # make some vertices NaN (as might be the case for flat surfaces) nan_count_float = plane.nvertices * nan_vertices_ratio nan_count = np.ceil(nan_count_float).astype(np.int) nan_vertices = np.random.random_integers(plane.nvertices, size=(nan_count,)) - 1 vertices_noisy[nan_vertices, dim] = np.nan plane_noisy = Surface(vertices_noisy, plane.faces) # compute normals f_normal = plane_noisy.face_normals # find average normal non_nan_f_normal = np.logical_not(np.any(np.isnan(f_normal), axis=1)) f_normal_avg = np.mean(f_normal[non_nan_f_normal], axis=0) # test average normal assert_array_almost_equal(plane.nanmean_face_normal, f_normal_avg, decimal=2) # the output has only x and y coordinates; with z-coordinates set # to zero, the coordinates must be at similar pairwise distances max_deformation = .1 x, y = flat_surface2xy(plane_noisy, max_deformation) n_vertices = plane.nvertices z = np.zeros((n_vertices,)) flat_xyz = np.asarray((x, y, z)) # nodes are rotated must have same pairwise distance as # the original surface max_difference = 3 * noise_level SurfingSurfaceTests.assert_coordinates_almost_equal_modulo_rotation( flat_xyz.T, plane.vertices, max_difference) def test_flat_surface_plotting(self): side = 10 step = 1 / float(side) plane = surf.generate_plane((0, 0, 0), (step, 0, 0), (0, step, 0), side, side) # generate data with simple gradient data = plane.vertices[:, 0] - plane.vertices[:, 1] data = (data - np.min(data)) / (np.max(data) - np.min(data)) color_map = None img_side = 50 fsp = FlatSurfacePlotter(plane, min_nsteps=img_side, color_map=color_map) img_arr = fsp(data) # verify shape ##assert_equal(img_arr.shape,(img_side,img_side,4)) # get colors cmap = plt.get_cmap(color_map) expected_img_arr = cmap(data) # map vertex coordinates to indices in img_arr # (using nearest neighbor interpolation) xs = (plane.vertices[:, 0] * img_side).astype(np.int) ys = (plane.vertices[:, 1] * img_side).astype(np.int) # allocate space for rgb values img_rgb = np.zeros((plane.nvertices, 3)) expected_img_rgb = np.zeros((plane.nvertices, 3)) # store expected and found RGB values for i, (x, y) in enumerate(zip(*(xs, ys))): img_rgb[i] = img_arr[y, x, :3] expected_img_rgb[i] = expected_img_arr[i, :3] # RGB values should match c = np.corrcoef(img_rgb.T, expected_img_rgb.T)[:3, 3:6] assert (np.all(np.diag(c) > .9)) def test_flat_surface_plotting_exception_wrong_size(self): s = surf.generate_plane((0, 0, 0), (0, 0, 1), (0, 1, 0), 6, 6) for offset in (-1, 0, 1): nfeatures = s.nvertices + offset ds = AttrDataset(samples=np.random.normal(size=(1, nfeatures))) def test_surfing_nodes_on_border_paths_surface_with_hole(self): s = surf.generate_plane((0, 0, 0), (0, 0, 1), (0, 1, 0), 6, 6) faces_to_remove = [1, 3, 7, 8, 3, 12, 13, 14, 22] faces_to_keep = np.setdiff1d(np.arange(s.nfaces), faces_to_remove) faces_to_add = [(0, 3, 10), (0, 4, 7), (0, 6, 4)] faces_hole = np.vstack((s.faces[faces_to_keep], faces_to_add)) s_hole = surf.Surface(s.vertices, faces_hole) pths = s_hole.nodes_on_border_paths() expected_pths = [[1, 6, 4, 7, 0], [3, 4, 9, 8, 2], [11, 17, 23, 29, 35, 34, 33, 32, 31, 30, 24, 18, 12, 6, 7, 13, 19, 14, 9, 10, 5]] def as_sorted_sets(xs): return sorted(map(set, xs), key=min) assert_equal(as_sorted_sets(pths), as_sorted_sets(expected_pths), ) def test_average_node_edge_length(self): for side in xrange(1, 5): s_flat = surf.generate_plane((0, 0, 0), (0, 0, 1), (0, 1, 0), 6, 6) rnd_xyz = 0 * np.random.normal(size=s_flat.vertices.shape) s = surf.Surface(s_flat.vertices + rnd_xyz, s_flat.faces) nvertices = s.nvertices sd = np.zeros((nvertices,)) c = np.zeros((nvertices,)) def d(src, trg, vertices=s.vertices): s = vertices[src, :] t = vertices[trg, :] delta = s - t # print s, t, delta return np.sum(delta ** 2) ** .5 for i_face in s.faces: for i in xrange(3): src = i_face[i] trg = i_face[(i + 1) % 3] sd[src] += d(src, trg) sd[trg] += d(src, trg) c[src] += 1 c[trg] += 1 # print i, src, trg, d(src, trg) assert_array_almost_equal(sd / c, s.average_node_edge_length) def test_average_node_edge_length_tiny(self): a = np.random.uniform(low=2, high=5) b = np.random.uniform(low=2, high=5) c = (a ** 2 + b ** 2) ** .5 vertices = [(0, 0, 0), (0, 0, a), (0, b, 0)] faces = [(0, 1, 2)] s = Surface(vertices, faces) expected_avg = [(a + b) / 2, (a + c) / 2, (b + c) / 2] assert_almost_equal(s.average_node_edge_length, expected_avg) pymvpa2-2.6.4/mvpa2/tests/test_surfing_voxelselection.py000066400000000000000000001024371323370031300235230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA surface searchlight voxel selection""" from mvpa2.testing import * skip_if_no_external('nibabel') import numpy as np from numpy.testing.utils import assert_array_almost_equal, \ assert_array_equal, assert_raises import nibabel as nb import os from os.path import join as pathjoin import tempfile from mvpa2.testing import reseed_rng from mvpa2.base import externals from mvpa2.datasets.mri import fmri_dataset from mvpa2.support.nibabel import surf from mvpa2.misc.surfing import surf_voxel_selection, volgeom, \ volsurf from mvpa2.misc.surfing.volume_mask_dict import VolumeMaskDictionary, \ _dict_with_arrays2array_tuple from mvpa2.misc.surfing import volume_mask_dict from mvpa2.misc.surfing.volgeom import VolGeom from mvpa2.measures.searchlight import Searchlight from mvpa2.misc.surfing.queryengine import SurfaceVerticesQueryEngine, \ SurfaceVoxelsQueryEngine, \ disc_surface_queryengine from mvpa2.measures.base import Measure, CrossValidation from mvpa2.generators.partition import OddEvenPartitioner from mvpa2.mappers.fx import mean_sample from mvpa2.misc.io.base import SampleAttributes from mvpa2.mappers.detrend import poly_detrend from mvpa2.mappers.zscore import zscore from mvpa2.misc.neighborhood import Sphere, IndexQueryEngine from mvpa2.clfs.gnb import GNB if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load class SurfVoxelSelectionTests(unittest.TestCase): def test_voxel_selection(self): '''Compare surface and volume based searchlight''' ''' Tests to see whether results are identical for surface-based searchlight (just one plane; Euclidean distnace) and volume-based searchlight. Note that the current value is a float; if it were int, it would specify the number of voxels in each searchlight''' radius = 10. '''Define input filenames''' epi_fn = pathjoin(pymvpa_dataroot, 'bold.nii.gz') maskfn = pathjoin(pymvpa_dataroot, 'mask.nii.gz') ''' Use the EPI datafile to define a surface. The surface has as many nodes as there are voxels and is parallel to the volume 'slice' ''' vg = volgeom.from_any(maskfn, mask_volume=True) aff = vg.affine nx, ny, nz = vg.shape[:3] '''Plane goes in x and y direction, so we take these vectors from the affine transformation matrix of the volume''' plane = surf.generate_plane(aff[:3, 3], aff[:3, 0], aff[:3, 1], nx, ny) ''' Simulate pial and white matter as just above and below the central plane ''' normal_vec = aff[:3, 2] outer = plane + normal_vec inner = plane + -normal_vec ''' Combine volume and surface information ''' vsm = volsurf.VolSurfMaximalMapping(vg, outer, inner) ''' Run voxel selection with specified radius (in mm), using Euclidean distance measure ''' surf_voxsel = surf_voxel_selection.voxel_selection(vsm, radius, distance_metric='e') '''Define the measure''' # run_slow=True would give an actual cross-validation with meaningful # accuracies. Because this is a unit-test only the number of voxels # in each searchlight is tested. run_slow = False if run_slow: meas = CrossValidation(GNB(), OddEvenPartitioner(), errorfx=lambda p, t: np.mean(p == t)) postproc = mean_sample else: meas = _Voxel_Count_Measure() postproc = lambda x: x ''' Surface analysis: define the query engine, cross validation, and searchlight ''' surf_qe = SurfaceVerticesQueryEngine(surf_voxsel) surf_sl = Searchlight(meas, queryengine=surf_qe, postproc=postproc) ''' new (Sep 2012): also test 'simple' queryengine wrapper function ''' surf_qe2 = disc_surface_queryengine(radius, maskfn, inner, outer, plane, volume_mask=True, distance_metric='euclidean') surf_sl2 = Searchlight(meas, queryengine=surf_qe2, postproc=postproc) ''' Same for the volume analysis ''' element_sizes = tuple(map(abs, (aff[0, 0], aff[1, 1], aff[2, 2]))) sph = Sphere(radius, element_sizes=element_sizes) kwa = {'voxel_indices': sph} vol_qe = IndexQueryEngine(**kwa) vol_sl = Searchlight(meas, queryengine=vol_qe, postproc=postproc) '''The following steps are similar to start_easy.py''' attr = SampleAttributes(pathjoin(pymvpa_dataroot, 'attributes_literal.txt')) mask = surf_voxsel.get_mask() dataset = fmri_dataset(samples=pathjoin(pymvpa_dataroot, 'bold.nii.gz'), targets=attr.targets, chunks=attr.chunks, mask=mask) if run_slow: # do chunkswise linear detrending on dataset poly_detrend(dataset, polyord=1, chunks_attr='chunks') # zscore dataset relative to baseline ('rest') mean zscore(dataset, chunks_attr='chunks', param_est=('targets', ['rest'])) # select class face and house for this demo analysis # would work with full datasets (just a little slower) dataset = dataset[np.array([l in ['face', 'house'] for l in dataset.sa.targets], dtype='bool')] '''Apply searchlight to datasets''' surf_dset = surf_sl(dataset) surf_dset2 = surf_sl2(dataset) vol_dset = vol_sl(dataset) surf_data = surf_dset.samples surf_data2 = surf_dset2.samples vol_data = vol_dset.samples assert_array_equal(surf_data, surf_data2) assert_array_equal(surf_data, vol_data) def test_voxel_selection_alternative_calls(self): # Tests a multitude of different searchlight calls # that all should yield exactly the same results. # # Calls differ by whether the arguments are filenames # or data objects, whether values are specified explicityly # or set to the default implicitly (using None). # and by different calls to run the voxel selection. # # This method does not test for mask functionality. # define the volume vol_shape = (10, 10, 10, 3) vol_affine = np.identity(4) vol_affine[0, 0] = vol_affine[1, 1] = vol_affine[2, 2] = 5 # four versions: array, nifti image, file name, fmri dataset volarr = np.ones(vol_shape) volimg = nb.Nifti1Image(volarr, vol_affine) # There is a detected problem with elderly NumPy's (e.g. 1.6.1 # on precise on travis) leading to segfaults while operating # on memmapped volumes being forwarded to pprocess. # Thus just making it compressed volume for those cases suf = '.gz' \ if (externals.exists('pprocess') and externals.versions['numpy'] < '1.6.2') \ else '' fd, volfn = tempfile.mkstemp('vol.nii' + suf, 'test'); os.close(fd) volimg.to_filename(volfn) volds = fmri_dataset(volfn) fd, volfngz = tempfile.mkstemp('vol.nii.gz', 'test'); os.close(fd) volimg.to_filename(volfngz) voldsgz = fmri_dataset(volfngz) # make the surfaces sphere_density = 10 # two versions: Surface and file name outer = surf.generate_sphere(sphere_density) * 25. + 15 inner = surf.generate_sphere(sphere_density) * 20. + 15 intermediate = inner * .5 + outer * .5 nv = outer.nvertices fd, outerfn = tempfile.mkstemp('outer.asc', 'test') os.close(fd) fd, innerfn = tempfile.mkstemp('inner.asc', 'test') os.close(fd) fd, intermediatefn = tempfile.mkstemp('intermediate.asc', 'test') os.close(fd) for s, fn in zip([outer, inner, intermediate], [outerfn, innerfn, intermediatefn]): surf.write(fn, s, overwrite=True) # searchlight radius (in mm) radius = 10. # dataset used to run searchlight on ds = fmri_dataset(volfn) # simple voxel counter (run for each searchlight position) m = _Voxel_Count_Measure() # number of voxels expected in each searchlight r_expected = np.array([[18, 9, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 11, 11, 11, 11, 10, 10, 10, 9, 10, 11, 9, 10, 10, 8, 7, 8, 8, 8, 9, 10, 12, 12, 11, 7, 7, 8, 5, 9, 11, 11, 12, 12, 9, 5, 8, 7, 7, 12, 12, 13, 12, 12, 7, 7, 8, 5, 9, 12, 12, 13, 11, 9, 5, 8, 7, 7, 11, 12, 12, 11, 12, 10, 10, 11, 9, 11, 12, 12, 12, 12, 16, 13, 16, 16, 16, 17, 15, 17, 17, 17, 16, 16, 16, 18, 16, 16, 16, 16, 18, 16]]) params = dict(intermediate_=(intermediate, intermediatefn, None), center_nodes_=(None, range(nv)), volume_=(volimg, volfn, volds, volfngz, voldsgz), surf_src_=('filename', 'surf'), volume_mask_=(None, True, 0, 2), call_method_=("qe", "rvs", "gam")) combis = _cartprod(params) # compute all possible combinations combistep = 17 # 173 # some fine prime number to speed things up # if this value becomes too big then not all # cases are covered # the unit test tests itself whether all values # occur at least once tested_params = dict() def val2str(x): return '%r:%r' % (type(x), x) for i in xrange(0, len(combis), combistep): combi = combis[i] intermediate_ = combi['intermediate_'] center_nodes_ = combi['center_nodes_'] volume_ = combi['volume_'] surf_src_ = combi['surf_src_'] volume_mask_ = combi['volume_mask_'] call_method_ = combi['call_method_'] # keep track of which values were used - # so that this unit test tests itself for k in combi.keys(): if not k in tested_params: tested_params[k] = set() tested_params[k].add(val2str(combi[k])) if surf_src_ == 'filename': s_i, s_m, s_o = inner, intermediate, outer elif surf_src_ == 'surf': s_i, s_m, s_o = innerfn, intermediatefn, outerfn else: raise ValueError('this should not happen') if call_method_ == "qe": # use the fancy query engine wrapper qe = disc_surface_queryengine(radius, volume_, s_i, s_o, s_m, source_surf_nodes=center_nodes_, volume_mask=volume_mask_) sl = Searchlight(m, queryengine=qe) r = sl(ds).samples elif call_method_ == 'rvs': # use query-engine but build the # ingredients by hand vg = volgeom.from_any(volume_, volume_mask_) vs = volsurf.VolSurfMaximalMapping(vg, s_i, s_o) sel = surf_voxel_selection.voxel_selection( vs, radius, source_surf=s_m, source_surf_nodes=center_nodes_) qe = SurfaceVerticesQueryEngine(sel) sl = Searchlight(m, queryengine=qe) r = sl(ds).samples elif call_method_ == 'gam': # build everything from the ground up vg = volgeom.from_any(volume_, volume_mask_) vs = volsurf.VolSurfMaximalMapping(vg, s_i, s_o) sel = surf_voxel_selection.voxel_selection( vs, radius, source_surf=s_m, source_surf_nodes=center_nodes_) mp = sel ks = sel.keys() nk = len(ks) r = np.zeros((1, nk)) for i, k in enumerate(ks): r[0, i] = len(mp[k]) # check if result is as expected assert_array_equal(r_expected, r) # clean up all_fns = [volfn, volfngz, outerfn, innerfn, intermediatefn] list(map(os.remove, all_fns)) for k, vs in params.iteritems(): if not k in tested_params: raise ValueError("Missing key: %r" % k) for v in vs: vstr = val2str(v) if not vstr in tested_params[k]: raise ValueError("Missing value %r for %s" % (tested_params[k], k)) def test_volsurf_projections(self): white = surf.generate_plane((0, 0, 0), (0, 1, 0), (0, 0, 1), 10, 10) pial = white + np.asarray([[1, 0, 0]]) above = pial + np.asarray([[3, 0, 0]]) vg = volgeom.VolGeom((10, 10, 10), np.eye(4)) vs = volsurf.VolSurfMaximalMapping(vg, white, pial) dx = pial.vertices - white.vertices for s, w in ((white, 0), (pial, 1), (above, 4)): xyz = s.vertices ws = vs.surf_project_weights(True, xyz) delta = vs.surf_unproject_weights_nodewise(ws) - xyz assert_array_equal(delta, np.zeros((100, 3))) assert_true(np.all(w == ws)) vs = volsurf.VolSurfMaximalMapping(vg, white, pial, nsteps=2) n2vs = vs.get_node2voxels_mapping() assert_equal(n2vs, dict((i, {i: 0., i + 100: 1.}) for i in xrange(100))) nd = 17 ds_mm_expected = np.sum((above.vertices - pial.vertices[nd, :]) ** 2, 1) ** .5 ds_mm = vs.coordinates_to_grey_distance_mm(nd, above.vertices) assert_array_almost_equal(ds_mm_expected, ds_mm) ds_mm_nodewise = vs.coordinates_to_grey_distance_mm(True, above.vertices) assert_array_equal(ds_mm_nodewise, np.ones((100,)) * 3) @with_tempfile('.h5py', 'voxsel') def test_surface_outside_volume_voxel_selection(self, fn): skip_if_no_external('h5py') from mvpa2.base.hdf5 import h5save, h5load vol_shape = (10, 10, 10, 1) vol_affine = np.identity(4) vg = volgeom.VolGeom(vol_shape, vol_affine) # make surfaces that are far away from all voxels # in the volume sphere_density = 4 far = 10000. outer = surf.generate_sphere(sphere_density) * 10 + far inner = surf.generate_sphere(sphere_density) * 5 + far vs = volsurf.VolSurfMaximalMapping(vg, inner, outer) radii = [10., 10] # fixed and variable radii outside_node_margins = [0, far, True] for outside_node_margin in outside_node_margins: for radius in radii: selector = lambda: surf_voxel_selection.voxel_selection(vs, radius, outside_node_margin=outside_node_margin) if type(radius) is int and outside_node_margin is True: assert_raises(ValueError, selector) else: sel = selector() if outside_node_margin is True: # it should have all the keys, but they should # all be empty assert_array_equal(sel.keys(), range(inner.nvertices)) for k, v in sel.iteritems(): assert_equal(v, []) else: assert_array_equal(sel.keys(), []) if outside_node_margin is True and \ externals.versions['hdf5'] < '1.8.7': raise SkipTest("Versions of hdf5 before 1.8.7 have " "problems with empty arrays") h5save(fn, sel) sel_copy = h5load(fn) assert_array_equal(sel.keys(), sel_copy.keys()) for k in sel.keys(): assert_equal(sel[k], sel_copy[k]) assert_equal(sel, sel_copy) def test_surface_voxel_query_engine(self): vol_shape = (10, 10, 10, 1) vol_affine = np.identity(4) vol_affine[0, 0] = vol_affine[1, 1] = vol_affine[2, 2] = 5 vg = volgeom.VolGeom(vol_shape, vol_affine) # make the surfaces sphere_density = 10 outer = surf.generate_sphere(sphere_density) * 25. + 15 inner = surf.generate_sphere(sphere_density) * 20. + 15 vs = volsurf.VolSurfMaximalMapping(vg, inner, outer) radius = 10 for fallback, expected_nfeatures in ((True, 1000), (False, 183)): voxsel = surf_voxel_selection.voxel_selection(vs, radius) qe = SurfaceVoxelsQueryEngine(voxsel, fallback_euclidean_distance=fallback) # test i/o and ensure that the loaded instance is trained if externals.exists('h5py'): fd, qefn = tempfile.mkstemp('qe.hdf5', 'test'); os.close(fd) h5save(qefn, qe) qe = h5load(qefn) os.remove(qefn) m = _Voxel_Count_Measure() sl = Searchlight(m, queryengine=qe) data = np.random.normal(size=vol_shape) img = nb.Nifti1Image(data, vol_affine) ds = fmri_dataset(img) sl_map = sl(ds) counts = sl_map.samples assert_true(np.all(np.logical_and(5 <= counts, counts <= 18))) assert_equal(sl_map.nfeatures, expected_nfeatures) @reseed_rng() def test_surface_minimal_voxel_selection(self): # Tests 'minimal' voxel selection. # It assumes that 'maximal' voxel selection works (which is tested # in other unit tests) vol_shape = (10, 10, 10, 1) vol_affine = np.identity(4) vg = volgeom.VolGeom(vol_shape, vol_affine) # generate some surfaces, # and add some noise to them sphere_density = 10 nvertices = sphere_density ** 2 + 2 noise = np.random.uniform(size=(nvertices, 3)) outer = surf.generate_sphere(sphere_density) * 5 + 8 + noise inner = surf.generate_sphere(sphere_density) * 3 + 8 + noise radii = [5., 20., 10] # note: no fixed radii at the moment # Note: a little outside margin is necessary # as otherwise there are nodes in the minimal case # that have no voxels associated with them for radius in radii: for output_modality in ('surface', 'volume'): for i, nvm in enumerate(('minimal', 'maximal')): qe = disc_surface_queryengine(radius, vg, inner, outer, node_voxel_mapping=nvm, output_modality=output_modality) voxsel = qe.voxsel if i == 0: keys_ = voxsel.keys() voxsel_ = voxsel else: keys = voxsel.keys() # minimal one has a subset assert_equal(keys, keys_) # and the subset is quite overlapping assert_true(len(keys) * .90 < len(keys_)) for k in keys_: x = set(voxsel_[k]) y = set(voxsel[k]) d = set.symmetric_difference(x, y) r = float(len(d)) / 2 / len(x) if type(radius) is float: assert_equal(x - y, set()) # decent agreement in any case # between the two sets assert_true(r < .6) @reseed_rng() @with_tempfile('.h5py', 'voxsel') def test_queryengine_io(self, fn): skip_if_no_external('h5py') from mvpa2.base.hdf5 import h5save, h5load vol_shape = (10, 10, 10, 1) vol_affine = np.identity(4) vg = volgeom.VolGeom(vol_shape, vol_affine) # generate some surfaces, # and add some noise to them sphere_density = 10 outer = surf.generate_sphere(sphere_density) * 5 + 8 inner = surf.generate_sphere(sphere_density) * 3 + 8 radius = 5. add_fa = ['center_distances', 'grey_matter_position'] qe = disc_surface_queryengine(radius, vg, inner, outer, add_fa=add_fa) ds = fmri_dataset(vg.get_masked_nifti_image()) # the following is not really a strong requirement. XXX remove? assert_raises(ValueError, lambda: qe[qe.ids[0]]) # check that after training it behaves well qe.train(ds) i = qe.ids[0] try: m = qe[i] except ValueError, e: raise AssertionError( 'Failed to query %r from %r after training on %r. ' 'Exception was: %r' % (i, qe, ds, e)) assert_equal(qe[qe.ids[0]].samples[0, 0], 883) voxsel = qe.voxsel # store the original methods setstate_current = VolumeMaskDictionary.__dict__['__setstate__'] reduce_current = VolumeMaskDictionary.__dict__['__reduce__'] # try all combinations. # end with both set to False so that VolumeMaskDictionary is back # in its original state # XXX is manipulating class methods this way too dangerous? true_false_combis = [(i % 2 == 1, i // 2 == 0) for i in xrange(3, 7)] # try different ways to load volume mask dictionaries # first argument is filename, second argument is volume mask dictionary vmd_load_methods = [lambda f, vmd: h5load(f), lambda f, vmd: volume_mask_dict.from_any(vmd), lambda f, vmd: volume_mask_dict.from_any(f), lambda f, vmd: vmd] for setstate_use_legacy, reduce_use_legacy in true_false_combis: reducer = VolumeMaskDictionary._reduce_legacy \ if reduce_use_legacy \ else reduce_current VolumeMaskDictionary.__reduce__ = reducer setstater = VolumeMaskDictionary._setstate_legacy \ if setstate_use_legacy \ else setstate_current VolumeMaskDictionary.__setstate__ = setstater indices_stored = voxsel.__reduce__()[2][3] if reduce_use_legacy: assert_equal(type(indices_stored), dict) assert_equal(len(indices_stored), len(qe.ids)) else: assert_equal(type(indices_stored), tuple) assert_equal(len(indices_stored), 3) for ix in indices_stored: assert_equal(type(ix), np.ndarray) h5save(fn, qe) qe_copy = h5load(fn) if setstate_use_legacy and not reduce_use_legacy: assert_raises(AttributeError, lambda: qe_copy.ids) continue # ensure keys are the same assert_equal(qe.ids, qe_copy.ids) # ensure values are the same and that qe_copy is trained for id in qe.ids: assert_array_equal(qe[id].samples, qe_copy[id].samples) sel = qe.voxsel h5save(fn, sel) for vmd_load_method in vmd_load_methods: sel_copy = vmd_load_method(fn, sel) assert_equal(sel.aux_keys(), add_fa) expected_values = [1.13851869106, 1.03270423412] # smoke test for key, v in zip(add_fa, expected_values): for id in qe.ids: assert_array_equal(sel.get_aux(id, key), sel_copy.get_aux(id, key)) assert_array_almost_equal(sel.get_aux(qe.ids[0], key)[3], v) @with_tempfile('.h5py', 'voxsel') def test_surface_minimal_lowres_voxel_selection(self, fn): vol_shape = (4, 10, 10, 1) vol_affine = np.identity(4) vg = volgeom.VolGeom(vol_shape, vol_affine) # make surfaces that are far away from all voxels # in the volume sphere_density = 10 radius = 10 outer = surf.generate_plane((0, 0, 4), (0, .4, 0), (0, 0, .4), 14, 14) inner = outer + 2 source = surf.generate_plane((0, 0, 4), (0, .8, 0), (0, 0, .8), 7, 7) + 1 for i, nvm in enumerate(('minimal', 'minimal_lowres')): qe = disc_surface_queryengine(radius, vg, inner, outer, source, node_voxel_mapping=nvm) voxsel = qe.voxsel if i == 0: voxsel0 = voxsel else: assert_equal(voxsel.keys(), voxsel0.keys()) for k in voxsel.keys(): p = voxsel[k] q = voxsel0[k] # require at least 60% agreement delta = set.symmetric_difference(set(p), set(q)) assert_true(len(delta) < .8 * (len(p) + len(q))) if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load h5save(fn, voxsel) voxsel_copy = h5load(fn) assert_equal(voxsel.keys(), voxsel_copy.keys()) for id in qe.ids: assert_array_equal(voxsel.get(id), voxsel_copy.get(id)) @reseed_rng() def test_minimal_dataset(self): vol_shape = (10, 10, 10, 3) vol_affine = np.identity(4) vg = volgeom.VolGeom(vol_shape, vol_affine) data = np.random.normal(size=vol_shape) msk = np.ones(vol_shape[:3]) msk[:, 1:-1:2, :] = 0 ni_data = nb.Nifti1Image(data, vol_affine) ni_msk = nb.Nifti1Image(msk, vol_affine) ds = fmri_dataset(ni_data, mask=ni_msk) sphere_density = 20 outer = surf.generate_sphere(sphere_density) * 10. + 5 inner = surf.generate_sphere(sphere_density) * 7. + 5 radius = 10 sel = surf_voxel_selection.run_voxel_selection(radius, ds, inner, outer) sel_fids = set.union(*(set(sel[k]) for k in sel.keys())) ds_vox = map(tuple, ds.fa.voxel_indices) vg = sel.volgeom sel_vox = map(tuple, vg.lin2ijk(np.asarray(list(sel_fids)))) fid_mask = np.asarray([v in sel_vox for v in ds_vox]) assert_array_equal(fid_mask, sel.get_dataset_feature_mask(ds)) # check if it raises errors ni_neg_msk = nb.Nifti1Image(1 - msk, vol_affine) neg_ds = fmri_dataset(ni_data, mask=ni_neg_msk) # inverted mask assert_raises(ValueError, sel.get_dataset_feature_mask, neg_ds) min_ds = sel.get_minimal_dataset(ds) assert_array_equal(min_ds.samples, ds[:, fid_mask].samples) def test_mask_with_keys(self): vol_shape = (10, 10, 10, 3) vol_affine = np.identity(4) vg = volgeom.VolGeom(vol_shape, vol_affine) data = np.random.normal(size=vol_shape) msk = np.ones(vol_shape[:3]) msk[:, 1:-1:2, :] = 0 ni_data = nb.Nifti1Image(data, vol_affine) ni_msk = nb.Nifti1Image(msk, vol_affine) ds = fmri_dataset(ni_data, mask=ni_msk) sphere_density = 20 outer = surf.generate_sphere(sphere_density) * 10. + 5 inner = surf.generate_sphere(sphere_density) * 7. + 5 radius = 10 sel = surf_voxel_selection.run_voxel_selection(radius, ds, inner, outer) # in the mapping below: # (tup: None) means that tup as input should raise a KeyError # (tup: i) with i an int means that tup as input should return i # elements qe_ids2nvoxels = {SurfaceVoxelsQueryEngine: {(1, 2, 3): 13, tuple(np.arange(0, 200, 2)): 82, (601,): None, None: 126}, SurfaceVerticesQueryEngine: {(1, 2, 3): None, (205, 209, 210, 214): 36, None: 126}} for constructor, ids2nfeatures in qe_ids2nvoxels.iteritems(): qe = constructor(sel) qe.train(ds) img = qe.get_masked_nifti_image() assert_array_equal(img.get_data(), qe.get_masked_nifti_image(qe.ids).get_data()) img_getter = qe.get_masked_nifti_image for ids, nfeatures in ids2nfeatures.iteritems(): ids_list = ids if ids is None else list(ids) if nfeatures is None and ids is not None: assert_raises(KeyError, img_getter, ids_list) else: img = img_getter(ids_list) nfeatures_found = np.sum(img.get_data()) assert_equal(nfeatures, nfeatures_found) if constructor is SurfaceVerticesQueryEngine: expected_image = qe.get_masked_nifti_image(ids_list) expected_mask = expected_image.get_data() check_mask_func = lambda x: assert_array_equal( expected_mask, x) check_image_func = lambda x: check_mask_func( x.get_data()) and \ assert_array_equal(x.affine, expected_image.affine) check_mask_func(sel.get_mask(ids_list)) check_image_func(sel.get_nifti_image_mask(ids_list)) tups = sel.get_voxel_indices(ids_list) tups_mask = np.zeros(expected_mask.shape) for tup in tups: tups_mask[tup] += 1 assert_array_equal(expected_mask != 0, tups_mask != 0) def test_volume_mask_dictionary_different_value_types(self): # build tiny VolumeMaskDictionary vg = VolGeom((2, 2, 2), np.zeros((4, 4))) d = VolumeMaskDictionary(vg, None) d.add(0, [3, 4], dict(foo=np.asarray([1.1, 2]))) d.add(1, [5, 6], dict(foo=np.asarray([1.3, 2]))) # set the values to different varieties of float d._src2aux['foo'][0] = d._src2aux['foo'][0].astype(np.float32) d._src2aux['foo'][1] = d._src2aux['foo'][1].astype(np.float64) # float elements must be converted properly at = _dict_with_arrays2array_tuple(d._src2aux) at_expected = dict(foo=(np.asarray([0, 1]), np.asarray([2, 2]), np.asarray([1.1, 2., 1.3, 2.]))) for i, (at_elem, at_expected_elem) in enumerate(zip(at['foo'], at_expected['foo'])): assert_array_almost_equal(at_elem, at_expected_elem) # set auxilary attribute so that _src2aux has no common # datatype; this should raise an error d._src2aux['foo'][1] = np.asarray('bar') assert_raises(TypeError, _dict_with_arrays2array_tuple, d._src2aux) def _cartprod(d): '''makes a combinatorial explosion from a dictionary only combinations are made from values in tuples''' if not d: return [dict()] r = [] k, vs = d.popitem() itervals = vs if type(vs) is tuple else [vs] for v in itervals: cps = _cartprod(d) for cp in cps: kv = {k: v} kv.update(cp) r.append(kv) d[k] = vs return r class _Voxel_Count_Measure(Measure): # used to check voxel selection results is_trained = True def __init__(self, **kwargs): Measure.__init__(self, **kwargs) def _call(self, dset): return dset.nfeatures def suite(): # pragma: no cover """Create the suite""" return unittest.makeSuite(SurfVoxelSelectionTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_svdmapper.py000066400000000000000000000063251323370031300207230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA SVD mapper""" import unittest import numpy as np from mvpa2.mappers.svd import SVDMapper from mvpa2.testing import reseed_rng from mvpa2.support.copy import deepcopy class SVDMapperTests(unittest.TestCase): def setUp(self): # data: 40 sample feature line in 20d space (40x20; samples x features) self.ndlin = np.concatenate([np.arange(40) for i in range(20)]).reshape(20,-1).T # data: 10 sample feature line in 40d space # (10x40; samples x features) self.largefeat = np.concatenate([np.arange(10) for i in range(40)]).reshape(40,-1).T def test_simple_svd(self): pm = SVDMapper() # train SVD pm.train(self.ndlin) self.assertEqual(pm.proj.shape, (20, 20)) # now project data into PCA space p = pm.forward(self.ndlin) # only first eigenvalue significant self.assertTrue(pm.sv[:1] > 1.0) self.assertTrue((pm.sv[1:] < 0.0001).all()) # only variance of first component significant var = p.var(axis=0) # test that only one component has variance self.assertTrue(var[:1] > 1.0) self.assertTrue((var[1:] < 0.0001).all()) # check that the mapped data can be fully recovered by 'reverse()' pr = pm.reverse(p) self.assertEqual(pr.shape, (40,20)) self.assertTrue(np.abs(pm.reverse(p) - self.ndlin).sum() < 0.0001) @reseed_rng() def test_more_svd(self): pm = SVDMapper() # train SVD pm.train(self.largefeat) # mixing matrix cannot be square self.assertEqual(pm.proj.shape, (40, 10)) # only first singular value significant self.assertTrue(pm.sv[:1] > 10) self.assertTrue((pm.sv[1:] < 10).all()) # now project data into SVD space p = pm.forward(self.largefeat) # only variance of first component significant var = p.var(axis=0) # test that only one component has variance self.assertTrue(var[:1] > 1.0) self.assertTrue((var[1:] < 0.0001).all()) # check that the mapped data can be fully recovered by 'reverse()' rp = pm.reverse(p) self.assertEqual(rp.shape, self.largefeat.shape) self.assertTrue((np.round(rp) == self.largefeat).all()) # copy mapper pm2 = deepcopy(pm) # now make new random data and do forward->reverse check data = np.random.normal(size=(98,40)) data_f = pm.forward(data) self.assertEqual(data_f.shape, (98,10)) data_r = pm.reverse(data_f) self.assertEqual(data_r.shape, (98,40)) def suite(): # pragma: no cover return unittest.makeSuite(SVDMapperTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_svm.py000066400000000000000000000205061323370031300175240ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for SVM classifier""" import numpy as np import gc from mvpa2.datasets import dataset_wizard from mvpa2.testing import * from mvpa2.testing.clfs import * from mvpa2.testing.datasets import * from mvpa2.generators.partition import NFoldPartitioner from mvpa2.datasets.miscfx import get_nsamples_per_attr from mvpa2.clfs.meta import ProxyClassifier from mvpa2.measures.base import CrossValidation class SVMTests(unittest.TestCase): # @sweepargs(nl_clf=clfswh['non-linear', 'svm'] ) # @sweepargs(nl_clf=clfswh['non-linear', 'svm'] ) def test_multivariate(self): mv_perf = [] mv_lin_perf = [] uv_perf = [] l_clf = clfswh['linear', 'svm'][0] nl_clf = clfswh['non-linear', 'svm'][0] #orig_keys = nl_clf.param._params.keys() #nl_param_orig = nl_clf.param._params.copy() # l_clf = LinearNuSVMC() # XXX ??? not sure what below meant and it is obsolete if # using SG... commenting out for now # for some reason order is not preserved thus dictionaries are not # the same any longer -- lets compare values #self.assertEqual([nl_clf.param._params[k] for k in orig_keys], # [nl_param_orig[k] for k in orig_keys], # msg="New instance mustn't override values in previously created") ## and keys separately #self.assertEqual(set(nl_clf.param._params.keys()), # set(orig_keys), # msg="New instance doesn't change set of parameters in original") # We must be able to deepcopy not yet trained SVMs now import mvpa2.support.copy as copy try: nl_clf.untrain() nl_clf_copy_ = copy.copy(nl_clf) nl_clf_copy = copy.deepcopy(nl_clf) except: self.fail(msg="Failed to deepcopy not-yet trained SVM %s" % nl_clf) for i in xrange(20): train = pure_multivariate_signal( 20, 3 ) test = pure_multivariate_signal( 20, 3 ) # use non-linear CLF on 2d data nl_clf.train(train) p_mv = nl_clf.predict(test.samples) mv_perf.append(np.mean(p_mv==test.targets)) # use linear CLF on 2d data l_clf.train(train) p_lin_mv = l_clf.predict(test.samples) mv_lin_perf.append(np.mean(p_lin_mv==test.targets)) # use non-linear CLF on 1d data nl_clf.train(train[:, 0]) p_uv = nl_clf.predict(test[:, 0].samples) uv_perf.append(np.mean(p_uv==test.targets)) mean_mv_perf = np.mean(mv_perf) mean_mv_lin_perf = np.mean(mv_lin_perf) mean_uv_perf = np.mean(uv_perf) # non-linear CLF has to be close to perfect self.assertTrue( mean_mv_perf > 0.9 ) # linear CLF cannot learn this problem! self.assertTrue( mean_mv_perf > mean_mv_lin_perf ) # univariate has insufficient information self.assertTrue( mean_uv_perf < mean_mv_perf ) # XXX for now works only with linear... think it through -- should # work non-linear, shouldn't it? @sweepargs(clf=clfswh['svm', 'linear', '!regression', '!gnpp', '!meta']) @reseed_rng() def test_cper_class(self, clf): if not ('C' in clf.params): # skip those without C return ds = datasets['uni2medium'].copy() ds__ = datasets['uni2medium'].copy() # # ballanced set # Lets add a bit of noise to drive classifier nuts. same # should be done for disballanced set ds__.samples += 0.5 * np.random.normal(size=(ds__.samples.shape)) # # disballanced set # lets overpopulate label 0 times = 20 ds_ = ds[(range(ds.nsamples) + range(ds.nsamples//2) * times)] ds_.samples += 0.5 * np.random.normal(size=(ds_.samples.shape)) spl = get_nsamples_per_attr(ds_, 'targets') #_.samplesperlabel cve = CrossValidation(clf, NFoldPartitioner(), enable_ca='stats') # on balanced e = cve(ds__) tpr_1 = cve.ca.stats.stats["TPR"][1] # we should be able to print summary for the classifier clf_summary = clf.summary() if externals.exists('libsvm') and isinstance(clf, libsvm.SVM): self.assertIn(" #SVs:", clf_summary) self.assertIn(" #bounded_SVs:", clf_summary) self.assertIn(" used_C:", clf_summary) # on disbalanced e = cve(ds_) tpr_2 = cve.ca.stats.stats["TPR"][1] # Set '1 C per label' # recreate cvte since previous might have operated on copies cve = CrossValidation(clf, NFoldPartitioner(), enable_ca='stats') oldC = clf.params.C # TODO: provide clf.params.C not with a tuple but dictionary # with C per label (now order is deduced in a cruel way) ratio = np.sqrt(float(spl[ds_.UT[0]])/spl[ds_.UT[1]]) clf.params.C = (-1/ratio, -1*ratio) try: # on disbalanced but with balanced C e_ = cve(ds_) # reassign C clf.params.C = oldC except: clf.params.C = oldC raise tpr_3 = cve.ca.stats.stats["TPR"][1] # Actual tests if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(tpr_1 > 0.25, msg="Without disballance we should have some " "hits, but got TPR=%.3f" % tpr_1) self.assertTrue(tpr_2 < 0.25, msg="With disballance we should have almost no " "hits for minor, but got TPR=%.3f" % tpr_2) self.assertTrue(tpr_3 > 0.25, msg="With disballanced data but ratio-based Cs " "we should have some hits for minor, but got " "TPR=%.3f" % tpr_3) def test_sillyness(self): """Test if we raise exceptions on incorrect specifications """ if externals.exists('libsvm'): self.assertRaises(TypeError, libsvm.SVM, C=1.0, nu=2.3) self.assertRaises(TypeError, libsvm.SVM, C=1.0, nu=2.3) self.assertRaises(TypeError, LinearNuSVMC, C=2.3) self.assertRaises(TypeError, LinearCSVMC, nu=2.3) if externals.exists('shogun'): self.assertRaises(TypeError, sg.SVM, C=1.0, nu=2.3) self.assertRaises(TypeError, sg.SVM, C=10, kernel_type='RBF', coef0=3) @sweepargs(clf=clfswh['svm', 'linear', '!meta', 'C_SVC'][:1]) def test_C_on_int_dataset(self, clf): a = np.arange(8, dtype=np.int16).reshape(4,-1) a[0, 0] = 322 # the value which would overflow self.assertTrue(np.isfinite(clf._get_default_c(a))) def test_memleak(self): skip_if_no_external('libsvm') if __debug__: # to minimize patch in this commit, will not RF to move get_vmem # outside of debug from mvpa2.base.verbosity import get_vmem else: raise SkipTest("for now operates only in __debug__ mode") ds = mvpa2.clfs.base.Dataset.from_wizard( samples=np.arange(400000).reshape([4, 100000]), targets=np.arange(4)) for iter in range(6): svm = mvpa2.clfs.svm.SVM(svm_impl="EPSILON_SVR", C=1) svm.train(ds) svm.predict(ds) gc.collect() if iter == 3: # Let all the mess stabilize a bit in first iterations mem0 = get_vmem() mem1 = get_vmem() # allow for 100 additional bytes just in case (mem1 takes space too ;)) self.assertTrue(mem0[1] + 100 >= mem1[1], msg="Memory consumption was %d, became %d" % (mem0[1], mem1[1])) def suite(): # pragma: no cover return unittest.makeSuite(SVMTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_svmkernels.py000066400000000000000000000135351323370031300211140ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for new Kernel-based SVMs""" import numpy as np from time import time from mvpa2.testing import * from mvpa2.testing.datasets import datasets skip_if_no_external('shogun') from mvpa2.kernels.base import CachedKernel from mvpa2.kernels.sg import RbfSGKernel, LinearSGKernel from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.clfs.libsvmc.svm import SVM as lsSVM from mvpa2.clfs.sg.svm import SVM as sgSVM from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import NFoldPartitioner from mvpa2.measures.base import CrossValidation, TransferMeasure, ProxyMeasure from mvpa2.mappers.fx import BinaryFxNode from mvpa2.misc.errorfx import mean_mismatch_error class SVMKernelTests(unittest.TestCase): @sweepargs(clf=[lsSVM(), sgSVM()]) def test_basic_clf_train_predict(self, clf): d = datasets['uni4medium'] clf.train(d) clf.predict(d) pass @reseed_rng() def test_cache_speedup(self): skip_if_no_external('shogun', ver_dep='shogun:rev', min_version=4455) ck = sgSVM(kernel=CachedKernel(kernel=RbfSGKernel(sigma=2)), C=1) sk = sgSVM(kernel=RbfSGKernel(sigma=2), C=1) cv_c = CrossValidation(ck, NFoldPartitioner()) cv_s = CrossValidation(sk, NFoldPartitioner()) #data = datasets['uni4large'] P = 5000 data = normal_feature_dataset(snr=2, perlabel=200, nchunks=10, means=np.random.randn(2, P), nfeatures=P) t0 = time() ck.params.kernel.compute(data) cachetime = time()-t0 t0 = time() cached_err = cv_c(data) ccv_time = time()-t0 t0 = time() norm_err = cv_s(data) ncv_time = time()-t0 assert_almost_equal(np.asanyarray(cached_err), np.asanyarray(norm_err)) ok_(cachetime 10) ok_(len(mvtests.collect_nose_tests()) > 10) ok_(len(mvtests.collect_test_suites(instantiate=False)) > 10) mvtests.run(limit=[]) @sweepargs(suffix=['', 'customsuffix']) @sweepargs(prefix=['', 'customprefix']) # @sweepargs(mkdir=(True, False)) def test_with_tempfile(suffix, prefix): # , mkdir): files = [] @with_tempfile(suffix, prefix) # , mkdir=mkdir) def testf(f): assert_false(os.path.exists(f)) # not yet if suffix: assert_true(f.endswith(suffix)) if prefix: assert_true(os.path.basename(f).startswith(prefix)) # assert_true(os.path.isdir(f) == dir_) # make sure it is writable with open(f, 'w') as f_: f_.write('load') files.append(f) assert_true(os.path.exists(f)) # should be there # and we should be able to create a bunch of those with other suffixes with open(f + '1', 'w') as f_: f_.write('load') files.append(f + '1') testf() # now we need to figure out what file was actually assert_equal(len(files), 2) assert_false(os.path.exists(files[0])) assert_false(os.path.exists(files[1])) @nodebug(['ID_IN_REPR', 'DS_ID']) @with_tempfile('.hdf5') def test_generate_testing_fmri_dataset(tempfile): skip_if_no_external('nibabel') skip_if_no_external('h5py') from mvpa2.base.hdf5 import h5load from mvpa2.testing.regress import generate_testing_fmri_dataset ds, filename = generate_testing_fmri_dataset(tempfile) try: import IPython assert_true(externals.exists('ipython')) except: assert_false(externals.exists('ipython')) assert('ipython' not in ds.a.versions) assert_equal(tempfile, filename) assert_true(exists(tempfile)) ds_reloaded = h5load(tempfile) assert_datasets_equal(ds, ds_reloaded, ignore_a={'wtf'}) @sweepargs(attribute=['samples', 'sa', 'fa', 'a']) @sweepargs(digits=[None, 1, 2, 3]) def test_assert_datasets_almost_equal(digits, attribute): samples = np.random.standard_normal((2, 5)) args = dict(sa=dict(targets=np.asarray([1., 2])), fa=dict(ids=np.asarray([0., 1, 2, 3, 4])), a=dict(a_value=[66])) ds = Dataset(samples=samples, **args) def negate_assert(f): def raiser(*args, **kwargs): assert_raises(AssertionError, f, *args, **kwargs) return raiser assert_datasets_not_almost_equal = negate_assert(assert_datasets_almost_equal) assert_datasets_not_equal = negate_assert(assert_datasets_equal) def change_attribute(name, how_much): # change a single attribute in samples, a, fa, or sa. ds2 = ds.copy(deep=True) attr = ds2.__dict__[name] if name == 'samples': value = attr else: for key in attr: break value = attr[key].value value[0] += how_much return ds2 def remove_attribute(name): ds2 = ds.copy(deep=True) attr = ds2.__dict__[name] for key in attr.keys(): attr.pop(key) return ds2 if digits is None: ds2 = change_attribute(attribute, 0) assert_datasets_equal(ds, ds2) else: ds2 = change_attribute(attribute, .5 * 10 ** -digits) assert_datasets_not_equal(ds, ds2) assert_datasets_not_almost_equal(ds, ds2, decimal=digits + 1) if attribute == 'samples': assert_datasets_almost_equal(ds, ds2, decimal=digits) else: assert_datasets_not_almost_equal(ds, ds2, decimal=digits - 1) # test ignore_ options args = {('ignore_' + attribute): args[attribute].keys()} assert_datasets_equal(ds, ds2, **args) assert_datasets_almost_equal(ds, ds2, **args) ds3 = remove_attribute(attribute) assert_datasets_not_equal(ds, ds3) assert_datasets_not_almost_equal(ds, ds3) pymvpa2-2.6.4/mvpa2/tests/test_transerror.py000066400000000000000000001214401323370031300211170ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA classifier cross-validation""" import unittest import numpy as np from mvpa2.support.copy import copy from mvpa2.base.dataset import vstack from mvpa2.datasets import Dataset from mvpa2.base import externals, warning from mvpa2.generators.partition import OddEvenPartitioner, NFoldPartitioner from mvpa2.generators.base import Repeater from mvpa2.generators.permutation import AttributePermutator from mvpa2.generators.splitters import Splitter from mvpa2.clfs.meta import MulticlassClassifier from mvpa2.clfs.transerror import ConfusionMatrix, ConfusionBasedError from mvpa2.measures.base import CrossValidation, TransferMeasure from mvpa2.clfs.stats import MCNullDist from mvpa2.misc.exceptions import UnknownStateError from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.mappers.fx import mean_sample, BinaryFxNode from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.testing.clfs import * class ErrorsTests(unittest.TestCase): def test_confusion_matrix(self): data = np.array([1,2,1,2,2,2,3,2,1], ndmin=2).T reg = [1,1,1,2,2,2,3,3,3] regl = [1,2,1,2,2,2,3,2,1] correct_cm = [[2,0,1],[1,3,1],[0,0,1]] # Check if we are ok with any input type - either list, or np.array, or tuple for t in [reg, tuple(reg), list(reg), np.array(reg)]: for p in [regl, tuple(regl), list(regl), np.array(regl)]: cm = ConfusionMatrix(targets=t, predictions=p) # check table content self.assertTrue((cm.matrix == correct_cm).all()) # Do a bit more thorough checking cm = ConfusionMatrix() self.assertRaises(ZeroDivisionError, lambda x:x.percent_correct, cm) """No samples -- raise exception""" cm.add(reg, regl) self.assertEqual(len(cm.sets), 1, msg="Should have a single set so far") self.assertEqual(cm.matrix.shape, (3,3), msg="should be square matrix (len(reglabels) x len(reglabels)") self.assertRaises(ValueError, cm.add, reg, np.array([1])) """ConfusionMatrix must complaint if number of samples different""" # check table content self.assertTrue((cm.matrix == correct_cm).all()) # lets add with new labels (not yet known) cm.add(reg, np.array([1,4,1,2,2,2,4,2,1])) self.assertEqual(cm.labels, [1,2,3,4], msg="We should have gotten 4th label") matrices = cm.matrices # separate CM per each given set self.assertEqual(len(matrices), 2, msg="Have gotten two splits") self.assertTrue((matrices[0].matrix + matrices[1].matrix == cm.matrix).all(), msg="Total votes should match the sum across split CMs") # check pretty print # just a silly test to make sure that printing works self.assertTrue(len(cm.as_string( header=True, summary=True, description=True))>100) self.assertTrue(len(str(cm))>100) # and that it knows some parameters for printing self.assertTrue(len(cm.as_string(summary=True, header=False))>100) # lets check iadd -- just itself to itself cm += cm self.assertEqual(len(cm.matrices), 4, msg="Must be 4 sets now") # lets check add -- just itself to itself cm2 = cm + cm self.assertEqual(len(cm2.matrices), 8, msg="Must be 8 sets now") self.assertEqual(cm2.percent_correct, cm.percent_correct, msg="Percent of corrrect should remain the same ;-)") self.assertEqual(cm2.error, 1.0-cm.percent_correct/100.0, msg="Test if we get proper error value") def test_confusion_matrix_addition(self): """Test confusions addition inconsistent results (GH #51) Was fixed by deepcopying instead of copying in __add__ """ cm1 = ConfusionMatrix(sets=[[np.array((1,2)), np.array((1,2))]]) cm2 = ConfusionMatrix(sets=[[np.array((3,2)), np.array((3,2))]]) assert_array_equal(cm1.stats['P'], [1, 1]) assert_array_equal(cm2.stats['P'], [1, 1]) # actual bug scenario -- results would be different r1 = (cm1 + cm2).stats['P'] r2 = (cm1 + cm2).stats['P'] assert_array_equal(r1, r2) assert_array_equal(r1, [1, 2, 1]) def test_degenerate_confusion(self): # We must not just puke -- some testing splits might # have just a single target label for orig in ([1], [1, 1], [0], [0, 0]): cm = ConfusionMatrix(targets=orig, predictions=orig, estimates=orig) scm = str(cm) self.assertTrue(cm.stats['ACC%'] == 100) def test_confusion_matrix_acc(self): reg = [0,0,1,1] regl = [1,0,1,0] cm = ConfusionMatrix(targets=reg, predictions=regl) self.assertTrue('ACC% 50' in str(cm)) skip_if_no_external('scipy') self.assertTrue(cm.stats['CHI^2'] == (0., 1.)) def test_confusion_matrix_with_mappings(self): data = np.array([1,2,1,2,2,2,3,2,1], ndmin=2).T reg = [1,1,1,2,2,2,3,3,3] regl = [1,2,1,2,2,2,3,2,1] correct_cm = [[2,0,1], [1,3,1], [0,0,1]] lm = {'apple':1, 'orange':2, 'shitty apple':1, 'candy':3} cm = ConfusionMatrix(targets=reg, predictions=regl, labels_map=lm) # check table content self.assertTrue((cm.matrix == correct_cm).all()) # assure that all labels are somewhere listed ;-) s = str(cm) for l in lm.keys(): self.assertTrue(l in s) def test_confusion_call(self): # Also tests for the consistency of the labels as # either provided or collected by ConfusionMatrix through its lifetime self.assertRaises(RuntimeError, ConfusionMatrix(), [1], [1]) self.assertRaises(ValueError, ConfusionMatrix(labels=[2]), [1], [1]) # Now lets test proper matrix and either we obtain the same t = ['ho', 'ho', 'ho', 'fa', 'fa', 'ho', 'ho'] p = ['ho','ho', 'ho', 'ho', 'fa', 'fa', 'fa'] cm1 = ConfusionMatrix(labels=['ho', 'fa']) cm2 = ConfusionMatrix(labels=['fa', 'ho']) assert_array_equal(cm1(p, t), [[3, 1], [2, 1]]) assert_array_equal(cm2(p, t), [[1, 2], [1, 3]]) # reverse order of labels cm1_ = ConfusionMatrix(labels=['ho', 'fa'], sets=[(t,p)]) assert_array_equal(cm1(p, t), cm1_.matrix) # both should be identical # Lets provoke "mother" CM to get to know more labels which could get ahead # of the known ones cm1.add(['ho', 'aa'], ['ho', 'aa']) # compare and cause recomputation so .__labels get reassigned assert_equal(cm1.labels, ['ho', 'fa', 'aa']) assert_array_equal(cm1(p, t), [[3, 1, 0], [2, 1, 0], [0, 0, 0]]) assert_equal(len(cm1.sets), 1) # just 1 must be known atm from above add assert_array_equal(cm1(p, t, store=True), [[3, 1, 0], [2, 1, 0], [0, 0, 0]]) assert_equal(len(cm1.sets), 2) # and now 2 assert_array_equal(cm1(p + ['ho', 'aa'], t + ['ho', 'aa']), cm1.matrix) @sweepargs(l_clf=clfswh['linear', 'svm']) def test_confusion_based_error(self, l_clf): train = datasets['uni2medium'] train = train[train.sa.train == 1] # to check if we fail to classify for 3 labels test3 = datasets['uni3medium'] test3 = test3[test3.sa.train == 1] err = ConfusionBasedError(clf=l_clf) terr = TransferMeasure(l_clf, Splitter('train', attr_values=[1,1]), postproc=BinaryFxNode(mean_mismatch_error, 'targets')) self.assertRaises(UnknownStateError, err, None) """Shouldn't be able to access the state yet""" l_clf.train(train) e, te = err(None), terr(train) te = np.asscalar(te) self.assertTrue(abs(e-te) < 1e-10, msg="ConfusionBasedError (%.2g) should be equal to TransferError " "(%.2g) on traindataset" % (e, te)) # this will print nasty WARNING but it is ok -- it is just checking code # NB warnings are not printed while doing whole testing warning("Don't worry about the following warning.") if 'multiclass' in l_clf.__tags__: self.assertFalse(terr(test3) is None) # try copying the beast terr_copy = copy(terr) @sweepargs(l_clf=clfswh['linear', 'svm']) def test_null_dist_prob(self, l_clf): train = datasets['uni2medium'] num_perm = 10 permutator = AttributePermutator('targets', count=num_perm, limit='chunks') # define class to estimate NULL distribution of errors # use left tail of the distribution since we use MeanMatchFx as error # function and lower is better terr = TransferMeasure( l_clf, Repeater(count=2), postproc=BinaryFxNode(mean_mismatch_error, 'targets'), null_dist=MCNullDist(permutator, tail='left')) # check reasonable error range err = terr(train) self.assertTrue(np.mean(err) < 0.4) # Lets do the same for CVTE cvte = CrossValidation(l_clf, OddEvenPartitioner(), null_dist=MCNullDist(permutator, tail='left', enable_ca=['dist_samples']), postproc=mean_sample()) cv_err = cvte(train) # check that the result is highly significant since we know that the # data has signal null_prob = np.asscalar(terr.ca.null_prob) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(null_prob <= 0.1, msg="Failed to check that the result is highly significant " "(got %f) since we know that the data has signal" % null_prob) self.assertTrue(np.asscalar(cvte.ca.null_prob) <= 0.1, msg="Failed to check that the result is highly significant " "(got p(cvte)=%f) since we know that the data has signal" % np.asscalar(cvte.ca.null_prob)) # we should be able to access the actual samples of the distribution # yoh: why it is 3D really? # mih: because these are the distribution samples for the ONE error # collapsed into ONE value across all folds. It will also be # 3d if the return value of the measure isn't a scalar and it is # not collapsed across folds. it simply corresponds to the shape # of the output dataset of the respective measure (+1 axis) # Some permutations could have been skipped since classifier failed # to train due to degenerate situation etc, thus accounting for them self.assertEqual(cvte.null_dist.ca.dist_samples.shape[2], num_perm - cvte.null_dist.ca.skipped) @sweepargs(clf=clfswh['multiclass']) def test_auc(self, clf): """Test AUC computation """ if isinstance(clf, MulticlassClassifier) or ' 1.15 / Nlabels) auc = stats['AUC'] if (Nlabels == 2) or (Nlabels > 2 and auc[0] is not np.nan): mauc = np.min(stats['AUC']) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(mauc > 0.55, msg='All AUCs must be above chance. Got minimal ' 'AUC=%.2g among %s' % (mauc, stats['AUC'])) clf.ca.reset_changed_temporarily() def test_confusion_plot(self): """Basic test of confusion plot Based on existing cell dataset results. Let in for possible future testing, but is not a part of the unittests suite """ #from matplotlib import rc as rcmpl #rcmpl('font',**{'family':'sans-serif','sans-serif':['DejaVu Sans']}) ##rcmpl('text', usetex=True) ##rcmpl('font', family='sans', style='normal', variant='normal', ## weight='bold', stretch='normal', size='large') #import numpy as np #from mvpa2.clfs.transerror import \ # TransferError, ConfusionMatrix, ConfusionBasedError array = np.array uint8 = np.uint8 sets = [ (array([47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44], dtype=uint8), array([40, 39, 47, 43, 45, 41, 44, 41, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 46, 45, 38, 44, 39, 46, 38, 39, 39, 38, 43, 45, 41, 44, 40, 46, 42, 38, 40, 47, 43, 45, 41, 44, 40, 46, 42, 38, 39, 40, 43, 45, 41, 44, 39, 46, 42, 47, 38, 38, 43, 45, 41, 44, 38, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 47, 43, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 40, 46, 42, 39, 39, 38, 43, 45, 41, 44, 47, 46, 42, 47, 38, 39, 43, 45, 40, 44, 40, 46, 42, 47, 39, 40, 43, 45, 41, 44, 38, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 41, 47, 39, 38, 46, 45, 41, 44, 40, 46, 42, 40, 38, 38, 43, 45, 41, 44, 40, 45, 42, 47, 39, 39, 43, 45, 41, 44, 38, 46, 42, 47, 38, 42, 43, 45, 41, 44, 39, 46, 42, 39, 39, 39, 47, 45, 41, 44], dtype=uint8)), (array([40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43], dtype=uint8), array([40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 47, 46, 42, 47, 39, 40, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 39, 46, 42, 47, 47, 47, 43, 45, 41, 44, 40, 46, 42, 43, 39, 38, 43, 45, 41, 44, 38, 38, 42, 38, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 40, 38, 43, 45, 41, 44, 40, 40, 42, 47, 40, 40, 43, 45, 41, 44, 38, 38, 42, 47, 38, 38, 47, 45, 41, 44, 40, 46, 42, 47, 39, 40, 43, 45, 41, 44, 40, 46, 42, 47, 47, 39, 43, 45, 41, 44, 40, 46, 42, 39, 39, 42, 43, 45, 41, 44, 40, 46, 42, 47, 39, 39, 43, 45, 41, 44, 47, 46, 42, 40, 39, 39, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 40, 44, 40, 46, 42, 47, 39, 39, 43, 45, 41, 44, 38, 46, 42, 47, 39, 39, 43, 45, 41, 44, 40, 46, 46, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 39, 39, 38, 47, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43], dtype=uint8)), (array([45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47], dtype=uint8), array([45, 41, 44, 40, 46, 42, 47, 39, 46, 43, 45, 41, 44, 40, 46, 42, 47, 39, 39, 43, 45, 41, 44, 38, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 47, 39, 43, 43, 45, 40, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 47, 40, 43, 45, 41, 44, 40, 47, 42, 38, 47, 38, 43, 45, 41, 44, 40, 40, 42, 47, 39, 39, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 38, 46, 42, 47, 39, 39, 43, 45, 41, 44, 40, 46, 42, 47, 40, 38, 43, 45, 41, 44, 40, 46, 38, 38, 39, 38, 43, 45, 41, 44, 39, 46, 42, 47, 40, 39, 43, 45, 38, 44, 38, 46, 42, 47, 47, 40, 43, 45, 41, 44, 40, 40, 42, 47, 40, 38, 43, 39, 41, 44, 41, 46, 42, 39, 39, 38, 38, 45, 41, 44, 38, 46, 40, 46, 46, 46, 43, 45, 38, 44, 40, 46, 42, 39, 39, 45, 43, 45, 41, 44, 38, 46, 42, 38, 39, 39, 43, 45, 41, 38, 40, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 40], dtype=uint8)), (array([39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40], dtype=uint8), array([39, 38, 43, 45, 41, 44, 40, 46, 38, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 41, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 38, 43, 47, 38, 38, 43, 45, 41, 44, 39, 46, 42, 39, 39, 38, 43, 45, 41, 44, 43, 46, 42, 47, 39, 39, 43, 45, 41, 44, 40, 46, 42, 47, 39, 40, 43, 45, 41, 44, 40, 46, 42, 39, 38, 38, 43, 45, 40, 44, 47, 46, 38, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 38, 39, 38, 43, 45, 41, 44, 40, 46, 42, 38, 39, 38, 43, 45, 47, 44, 45, 46, 42, 38, 39, 41, 43, 45, 41, 44, 38, 38, 42, 39, 40, 40, 43, 45, 41, 39, 40, 46, 42, 47, 39, 40, 43, 45, 41, 44, 40, 47, 42, 47, 38, 38, 43, 45, 41, 44, 47, 46, 42, 47, 40, 47, 43, 45, 41, 44, 40, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 39, 38, 43, 45, 46, 44, 38, 46, 42, 47, 38, 44, 43, 45, 42, 44, 41, 46, 42, 47, 47, 38, 43, 45, 41, 44, 38, 46, 42, 39, 39, 38, 43, 45, 41, 44, 40], dtype=uint8)), (array([46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45], dtype=uint8), array([46, 42, 39, 38, 38, 43, 45, 41, 44, 40, 46, 42, 47, 47, 42, 43, 45, 42, 44, 40, 46, 42, 38, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 47, 40, 43, 45, 41, 44, 41, 46, 42, 38, 39, 38, 43, 45, 41, 44, 38, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 46, 38, 38, 43, 45, 41, 44, 39, 46, 42, 47, 39, 40, 43, 45, 41, 44, 40, 46, 42, 47, 39, 39, 43, 45, 41, 44, 40, 47, 42, 47, 38, 39, 43, 45, 41, 44, 39, 46, 42, 47, 39, 46, 43, 45, 41, 44, 39, 46, 42, 39, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 40, 46, 42, 39, 39, 38, 43, 45, 41, 44, 40, 38, 42, 46, 39, 38, 43, 45, 41, 44, 38, 46, 42, 46, 46, 38, 43, 45, 41, 44, 40, 46, 42, 47, 47, 38, 38, 45, 41, 44, 38, 38, 42, 43, 39, 40, 43, 45, 41, 44, 38, 46, 42, 47, 38, 39, 47, 45, 46, 44, 40, 46, 42, 47, 40, 38, 43, 45, 41, 44, 40, 46, 42, 47, 40, 38, 43, 45, 41, 44, 38, 46, 42, 38, 39, 38, 47, 45], dtype=uint8)), (array([41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39], dtype=uint8), array([41, 44, 38, 46, 42, 47, 39, 47, 40, 45, 41, 44, 40, 46, 42, 38, 40, 38, 43, 45, 41, 44, 40, 46, 42, 38, 38, 38, 43, 45, 41, 44, 46, 38, 42, 40, 38, 39, 43, 45, 41, 44, 41, 46, 42, 47, 47, 38, 43, 45, 41, 44, 40, 46, 42, 38, 39, 39, 43, 45, 41, 44, 38, 46, 42, 47, 43, 39, 43, 45, 41, 44, 40, 46, 42, 38, 39, 38, 43, 45, 41, 44, 40, 46, 42, 40, 39, 38, 43, 45, 41, 44, 38, 46, 42, 39, 39, 39, 43, 45, 41, 44, 40, 46, 42, 39, 38, 47, 43, 45, 38, 44, 40, 38, 42, 47, 38, 38, 43, 45, 41, 44, 40, 38, 46, 47, 38, 38, 43, 45, 41, 44, 41, 46, 42, 40, 38, 38, 40, 45, 41, 44, 40, 40, 42, 43, 38, 40, 43, 39, 41, 44, 40, 40, 42, 47, 38, 46, 43, 45, 41, 44, 47, 41, 42, 43, 40, 47, 43, 45, 41, 44, 41, 38, 42, 40, 39, 40, 43, 45, 41, 44, 39, 43, 42, 47, 39, 40, 43, 45, 41, 44, 42, 46, 42, 47, 40, 46, 43, 45, 41, 44, 38, 46, 42, 47, 47, 38, 43, 45, 41, 44, 40, 38, 39, 47, 38], dtype=uint8)), (array([38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46], dtype=uint8), array([39, 43, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 41, 46, 42, 47, 47, 39, 43, 45, 41, 44, 40, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 47, 39, 40, 43, 45, 41, 44, 40, 46, 42, 47, 45, 38, 43, 45, 41, 44, 38, 46, 42, 47, 38, 39, 43, 45, 41, 44, 40, 46, 42, 39, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 40, 39, 43, 45, 41, 44, 40, 39, 42, 40, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 38, 46, 42, 39, 39, 47, 43, 45, 41, 44, 40, 46, 42, 47, 39, 39, 43, 45, 41, 44, 40, 46, 42, 46, 47, 39, 47, 45, 41, 44, 40, 46, 42, 47, 39, 39, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 38, 46, 42, 47, 39, 38, 43, 45, 42, 44, 39, 47, 42, 39, 39, 47, 43, 47, 40, 44, 40, 46, 42, 39, 39, 38, 39, 45, 41, 44, 40, 46, 42, 47, 38, 38, 43, 45, 41, 44, 46, 38, 42, 47, 39, 43, 43, 45, 41, 44, 40, 46], dtype=uint8)), (array([42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45, 41, 44, 40, 46, 42, 47, 39, 38, 43, 45], dtype=uint8), array([42, 38, 38, 40, 43, 45, 41, 44, 39, 46, 42, 47, 39, 38, 43, 45, 41, 44, 39, 38, 42, 47, 41, 40, 43, 45, 41, 44, 40, 41, 42, 47, 38, 46, 43, 45, 41, 44, 41, 41, 42, 40, 39, 39, 43, 45, 41, 44, 46, 45, 42, 39, 39, 40, 43, 45, 41, 44, 40, 46, 42, 40, 44, 38, 43, 41, 41, 44, 39, 46, 42, 39, 39, 39, 43, 45, 41, 44, 40, 43, 42, 47, 39, 39, 43, 45, 41, 44, 40, 47, 42, 38, 46, 39, 47, 45, 41, 44, 39, 46, 42, 47, 41, 38, 43, 45, 41, 44, 42, 46, 42, 46, 39, 38, 43, 45, 41, 44, 41, 46, 42, 46, 39, 38, 43, 45, 41, 44, 40, 46, 42, 38, 38, 38, 43, 45, 41, 44, 38, 46, 42, 39, 40, 43, 43, 45, 41, 44, 39, 38, 40, 40, 38, 38, 43, 45, 41, 44, 41, 40, 42, 39, 39, 39, 43, 45, 41, 44, 40, 46, 42, 47, 40, 40, 43, 45, 41, 44, 40, 46, 42, 41, 39, 39, 43, 45, 41, 44, 40, 38, 42, 40, 39, 46, 43, 45, 41, 44, 47, 46, 42, 47, 39, 38, 43, 45, 41, 44, 41, 46, 42, 43, 39, 39, 43, 45], dtype=uint8))] labels_map = {'12kHz': 40, '20kHz': 41, '30kHz': 42, '3kHz': 38, '7kHz': 39, 'song1': 43, 'song2': 44, 'song3': 45, 'song4': 46, 'song5': 47} try: cm = ConfusionMatrix(sets=sets, labels_map=labels_map) except: self.fail() cms = str(cm) self.assertTrue('3kHz / 38' in cms) if externals.exists("scipy"): self.assertTrue('ACC(i) = 0.82-0.012*i p=0.12 r=-0.59 r^2=0.35' in cms) if externals.exists("pylab plottable"): import pylab as pl pl.figure() labels_order = ("3kHz", "7kHz", "12kHz", "20kHz","30kHz", None, "song1","song2","song3","song4","song5") #print cm #fig, im, cb = cm.plot(origin='lower', labels=labels_order) fig, im, cb = cm.plot(labels=labels_order[1:2] + labels_order[:1] + labels_order[2:], numbers=True) self.assertTrue(cm._plotted_confusionmatrix[0,0] == cm.matrix[1,1]) self.assertTrue(cm._plotted_confusionmatrix[0,1] == cm.matrix[1,0]) self.assertTrue(cm._plotted_confusionmatrix[1,1] == cm.matrix[0,0]) self.assertTrue(cm._plotted_confusionmatrix[1,0] == cm.matrix[0,1]) pl.close(fig) fig, im, cb = cm.plot(labels=labels_order, numbers=True) pl.close(fig) # pl.show() def test_confusion_plot2(self): array = np.array uint8 = np.uint8 sets = [(array([1, 2]), array([1, 1]), array([[ 0.54343765, 0.45656235], [ 0.92395853, 0.07604147]])), (array([1, 2]), array([1, 1]), array([[ 0.98030832, 0.01969168], [ 0.78998763, 0.21001237]])), (array([1, 2]), array([1, 1]), array([[ 0.86125263, 0.13874737], [ 0.83674113, 0.16325887]])), (array([1, 2]), array([1, 1]), array([[ 0.57870383, 0.42129617], [ 0.59702509, 0.40297491]])), (array([1, 2]), array([1, 1]), array([[ 0.89530255, 0.10469745], [ 0.69373919, 0.30626081]])), (array([1, 2]), array([1, 1]), array([[ 0.75015218, 0.24984782], [ 0.9339767 , 0.0660233 ]])), (array([1, 2]), array([1, 2]), array([[ 0.97826616, 0.02173384], [ 0.38620638, 0.61379362]])), (array([2]), array([2]), array([[ 0.46893776, 0.53106224]]))] try: cm = ConfusionMatrix(sets=sets) except: self.fail() if externals.exists("pylab plottable"): import pylab as pl #pl.figure() #print cm fig, im, cb = cm.plot(origin='lower', numbers=True) #pl.plot() self.assertTrue((cm._plotted_confusionmatrix == cm.matrix).all()) pl.close(fig) #fig, im, cb = cm.plot(labels=labels_order, numbers=True) #pl.close(fig) #pl.show() @reseed_rng() @labile(3, 1) def test_confusionmatrix_nulldist(self): from mvpa2.clfs.gnb import GNB from mvpa2.clfs.transerror import ConfusionMatrixError from mvpa2.misc.data_generators import normal_feature_dataset for snr in [0., 2.,]: ds = normal_feature_dataset(snr=snr, perlabel=42, nchunks=3, nonbogus_features=[0,1], nfeatures=2) clf = GNB() num_perm = 50 permutator = AttributePermutator('targets', limit='chunks', count=num_perm) cv = CrossValidation( clf, NFoldPartitioner(), errorfx=ConfusionMatrixError(labels=ds.sa['targets'].unique), postproc=mean_sample(), null_dist=MCNullDist(permutator, tail='right', # because we now look at accuracy not error enable_ca=['dist_samples']), enable_ca=['stats']) cmatrix = cv(ds) #print "Result:\n", cmatrix.samples cvnp = cv.ca.null_prob.samples #print cvnp self.assertTrue(cvnp.shape, (2, 2)) if cfg.getboolean('tests', 'labile', default='yes'): if snr == 0.: # all p should be high since no signal assert_array_less(0.05, cvnp) else: # diagonal p is low -- we have signal after all assert_array_less(np.diag(cvnp), 0.05) # off diagonals are high p since for them we would # need to look at the other tail assert_array_less(0.9, cvnp[(np.array([0,1]), np.array([1,0]))]) def test_confusion_as_node(): from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.clfs.gnb import GNB from mvpa2.clfs.transerror import Confusion ds = normal_feature_dataset(snr=2.0, perlabel=42, nchunks=3, nonbogus_features=[0,1], nfeatures=2) clf = GNB() cv = CrossValidation( clf, NFoldPartitioner(), errorfx=None, postproc=Confusion(labels=ds.UT), enable_ca=['stats']) res = cv(ds) # needs to be identical to CA assert_array_equal(res.samples, cv.ca.stats.matrix) assert_array_equal(res.sa.predictions, ds.UT) assert_array_equal(res.fa.targets, ds.UT) skip_if_no_external('scipy') from mvpa2.clfs.transerror import BayesConfusionHypothesis from mvpa2.base.node import ChainNode # same again, but this time with Bayesian hypothesis testing at the end cv = CrossValidation( clf, NFoldPartitioner(), errorfx=None, postproc=ChainNode([Confusion(labels=ds.UT), BayesConfusionHypothesis()])) res = cv(ds) # only two possible hypothesis with two classes assert_equals(len(res), 2) # the first hypothesis is the can't discriminate anything assert_equal(len(res.sa.hypothesis[0]), 1) assert_equal(len(res.sa.hypothesis[0][0]), 2) # and the hypothesis is actually less likely than the other one # (both classes can be distinguished) assert(np.e**res.samples[0,0] < np.e**res.samples[1,0]) # Let's see how well it would work within the searchlight when we also # would like to store the hypotheses per each voxel # Somewhat an ad-hoc solution for the answer posted on the ML # # run 1d searchlight of radii 0, for that just provide a .fa with coordinates ds.fa['voxel_indices'] = [[0], [1]] # and a custom Node which would collect .sa.hypothesis to place together along # with the posterior probabilities from mvpa2.base.node import Node from mvpa2.measures.searchlight import sphere_searchlight class KeepBothPosteriorAndHypothesis(Node): def _call(self, ds): out = np.zeros(1, dtype=object) out[0] = (ds.samples, ds.sa.hypothesis) return out cv.postproc.append(KeepBothPosteriorAndHypothesis()) sl = sphere_searchlight(cv, radius=0, nproc=1) res = sl(ds) assert_equal(res.shape, (1, 2)) assert_equal(len(res.samples[0,0]), 2) assert_equal(res.samples[0,0][0].shape, (2, 2)) # posteriors per 1st SL assert_equal(len(res.samples[0,0][1]), 2) # 2 of hypotheses def test_bayes_confusion_hyp(): from mvpa2.clfs.transerror import BayesConfusionHypothesis conf = np.array([ [ 10, 0, 5, 5], [ 0, 10, 5, 5], [ 5, 5, 10, 0], [ 5, 5, 0, 10] ]) conf = Dataset(conf, sa={'labels': ['A', 'B', 'C', 'D']}) bayes = BayesConfusionHypothesis(labels_attr='labels') skip_if_no_external('scipy') # uses factorial from scipy.misc hyptest = bayes(conf) # by default comes with all hypothesis and posterior probs assert_equal(hyptest.shape, (15, 2)) assert_array_equal(hyptest.fa.stat, ['log(p(C|H))', 'log(p(H|C))']) # check order of hypothesis (coarse) assert_array_equal(hyptest.sa.hypothesis[0], [['A', 'B', 'C', 'D']]) assert_array_equal(hyptest.sa.hypothesis[-1], [['A'], ['B'], ['C'], ['D']]) # now with limited hypothesis (given with literal labels), set and in # non-log scale bayes = BayesConfusionHypothesis(labels_attr='labels', log=False, hypotheses=[[['A', 'B', 'C', 'D']], [['A', 'C'], ['B', 'D']], [['A', 'D'], ['B', 'C']], [['A'], ['B'], ['C'], ['D']]]) hyptest = bayes(conf) # also with custom hyp the post-probs must add up to 1 post_prob = hyptest.samples[:, 1] assert_almost_equal(np.sum(post_prob), 1) # in this particular case ... assert(post_prob[3] - np.sum(post_prob[1:3]) < 0.02) def suite(): # pragma: no cover return unittest.makeSuite(ErrorsTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_transformers.py000066400000000000000000000115341323370031300214450ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA transformers.""" import unittest import numpy as np from mvpa2.base import externals from mvpa2.misc.transformers import Absolute, one_minus, rank_order, \ reverse_rank_order, l1_normed, l2_normed, OverAxis, \ DistPValue, first_axis_sum_not_zero from mvpa2.testing import * from mvpa2.testing.datasets import datasets from mvpa2.base import cfg class TransformerTests(unittest.TestCase): def setUp(self): self.d1 = np.array([ 1, 0, -1, -2, -3]) self.d2 = np.array([ 2.3, 0, -1, 2, -30, 1]) @reseed_rng() def test_absolute(self): # generate 100 values (gaussian noise mean -1000 -> all negative) out = Absolute(np.random.normal(-1000, size=100)) self.assertTrue(out.min() >= 0) self.assertTrue(len(out) == 100) def test_absolute2(self): target = self.d1 out = one_minus(np.arange(5)) self.assertTrue((out == target).all()) def test_first_axis_sum_not_zero(self): src = [[ 1, -22.9, 6.8, 0], [ -.8, 7, 0, 0.0], [88, 0, 0.0, 0], [0, 0, 0, 0.0]] target = np.array([ 3, 2, 1, 0]) out = first_axis_sum_not_zero(src) self.assertTrue((out == target).all()) def test_rank_order(self): nelements = len(self.d2) out = rank_order(self.d2) outr = reverse_rank_order(self.d2) uout = np.unique(out) uoutr = np.unique(outr) self.assertTrue((uout == np.arange(nelements)).all(), msg="We should get all indexes. Got just %s" % uout) self.assertTrue((uoutr == np.arange(nelements)).all(), msg="We should get all indexes. Got just %s" % uoutr) self.assertTrue((out+outr+1 == nelements).all()) self.assertTrue((out == [ 0, 3, 4, 1, 5, 2]).all()) def test_l2_norm(self): out = l2_normed(self.d2) self.assertTrue(np.abs(np.sum(out*out)-1.0) < 1e-10) def test_l1_norm(self): out = l1_normed(self.d2) self.assertTrue(np.abs(np.sum(np.abs(out))-1.0) < 1e-10) def test_over_axis(self): data = datasets['uni4large'].samples[:120,0].reshape((2,3,4,5)) # Simple transformer/combiner which collapses across given # dimension, e.g. sum for axis in [None, 0, 1, 2]: oversum = OverAxis(np.sum, axis=axis)(data) sum_ = np.sum(data, axis=axis) assert_array_almost_equal(sum_, oversum) # Transformer which doesn't modify dimensionality of the data data = data.reshape((6, -1)) overnorm = OverAxis(l2_normed, axis=1)(data) self.assertTrue(np.linalg.norm(overnorm)!=1.0) for d in overnorm: self.assertTrue(np.abs(np.linalg.norm(d) - 1.0)<0.00001) overnorm = OverAxis(l2_normed, axis=0)(data) self.assertTrue(np.linalg.norm(overnorm)!=1.0) for d in overnorm.T: self.assertTrue(np.abs(np.linalg.norm(d) - 1.0)<0.00001) @reseed_rng() def test_dist_p_value(self): """Basic testing of DistPValue""" if not externals.exists('scipy'): return ndb = 200 ndu = 20 nperd = 2 pthr = 0.05 Nbins = 400 # Lets generate already normed data (on sphere) and add some nonbogus features datau = (np.random.normal(size=(nperd, ndb))) dist = np.sqrt((datau * datau).sum(axis=1)) datas = (datau.T / dist.T).T tn = datax = datas[0, :] dataxmax = np.max(np.abs(datax)) # now lets add true positive features tp = [-dataxmax * 1.1] * (ndu//2) + [dataxmax * 1.1] * (ndu//2) x = np.hstack((datax, tp)) # lets add just pure normal to it x = np.vstack((x, np.random.normal(size=x.shape))).T for distPValue in (DistPValue(), DistPValue(fpp=0.05)): result = distPValue(x) self.assertTrue((result>=0).all) self.assertTrue((result<=1).all) if cfg.getboolean('tests', 'labile', default='yes'): self.assertTrue(distPValue.ca.positives_recovered[0] > 10) self.assertTrue((np.array(distPValue.ca.positives_recovered) + np.array(distPValue.ca.nulldist_number) == ndb + ndu).all()) self.assertEqual(distPValue.ca.positives_recovered[1], 0) def suite(): # pragma: no cover return unittest.makeSuite(TransformerTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_usecases.py000066400000000000000000000636601323370031300205420ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for various use cases users reported mis-behaving""" import unittest import numpy as np from mvpa2.testing import skip_if_no_external from mvpa2.testing.tools import ok_, assert_array_equal, assert_true, \ assert_false, assert_equal, assert_not_equal, reseed_rng, assert_raises, \ assert_array_almost_equal, SkipTest, assert_datasets_equal, assert_almost_equal from mvpa2.misc.data_generators import normal_feature_dataset @reseed_rng() def _test_mcasey20120222(): # pragma: no cover # http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/2012q1/002034.html # This one is conditioned on allowing # of samples to be changed # by the mapper provided to MappedClassifier. See # https://github.com/yarikoptic/PyMVPA/tree/_tent/allow_ch_nsamples import numpy as np from mvpa2.datasets.base import dataset_wizard from mvpa2.generators.partition import NFoldPartitioner from mvpa2.mappers.base import ChainMapper from mvpa2.mappers.svd import SVDMapper from mvpa2.mappers.fx import mean_group_sample from mvpa2.clfs.svm import LinearCSVMC from mvpa2.clfs.meta import MappedClassifier from mvpa2.measures.base import CrossValidation mapper = ChainMapper([mean_group_sample(['targets','chunks']), SVDMapper()]) clf = MappedClassifier(LinearCSVMC(), mapper) cvte = CrossValidation(clf, NFoldPartitioner(), enable_ca=['repetition_results', 'stats']) ds = dataset_wizard( samples=np.arange(32).reshape((8, -1)), targets=[1, 1, 2, 2, 1, 1, 2, 2], chunks=[1, 1, 1, 1, 2, 2, 2, 2]) errors = cvte(ds) @reseed_rng() def test_sifter_superord_usecase(): from mvpa2.misc.data_generators import normal_feature_dataset from mvpa2.clfs.svm import LinearCSVMC # fast one to use for tests from mvpa2.measures.base import CrossValidation from mvpa2.base.node import ChainNode from mvpa2.generators.partition import NFoldPartitioner from mvpa2.generators.base import Sifter ds = _get_superord_dataset() npart = ChainNode([ ## so we split based on superord NFoldPartitioner(len(ds.sa['superord'].unique), attr='subord'), ## so it should select only those splits where we took 1 from ## each of the superord categories leaving things in balance Sifter([('partitions', 2), ('superord', { 'uvalues': ds.sa['superord'].unique, 'balanced': True}) ]), ], space='partitions') # and then do your normal where clf is space='superord' clf = LinearCSVMC(space='superord') cvte_regular = CrossValidation(clf, NFoldPartitioner(), errorfx=lambda p,t: np.mean(p==t)) cvte_super = CrossValidation(clf, npart, errorfx=lambda p,t: np.mean(p==t)) accs_regular = cvte_regular(ds) accs_super = cvte_super(ds) # With sifting we should get only 2^3 = 8 splits assert(len(accs_super) == 8) # I don't think that this would ever fail, so not marking it labile assert(np.mean(accs_regular) > .8) assert(np.mean(accs_super) < .6) def _get_superord_dataset(): """A little helper to simulate a dataset with super/subord targets structure """ # Let's simulate the beast -- 6 categories total groupped into 3 # super-ordinate, and actually without any 'superordinate' effect # since subordinate categories independent ds = normal_feature_dataset(nlabels=6, snr=100, # pure signal! ;) perlabel=30, nfeatures=6, nonbogus_features=range(6), nchunks=5) ds.sa['subord'] = ds.sa.targets.copy() ds.sa['superord'] = ['super%d' % (int(i[1]) % 3,) for i in ds.targets] # 3 superord categories # let's override original targets just to be sure that we aren't relying on them ds.targets[:] = 0 return ds def _test_edmund_chong_20120907(): # pragma: no cover # commented out to avoid syntax warnings while compiling # from mvpa2.suite import * from mvpa2.testing.datasets import datasets repeater = Repeater(count=20) partitioner = ChainNode([NFoldPartitioner(cvtype=1), Balancer(attr='targets', count=1, # for real data > 1 limit='partitions', apply_selection=True )], space='partitions') clf = LinearCSVMC() #choice of classifier permutator = AttributePermutator('targets', limit={'partitions': 1}, count=1) null_cv = CrossValidation( clf, ChainNode([partitioner, permutator], space=partitioner.get_space()), errorfx=mean_mismatch_error) distr_est = MCNullDist(repeater, tail='left', measure=null_cv, enable_ca=['dist_samples']) cvte = CrossValidation(clf, partitioner, errorfx=mean_mismatch_error, null_dist=distr_est, enable_ca=['stats']) errors = cvte(datasets['uni2small']) def test_chained_crossvalidation_searchlight(): from mvpa2.clfs.gnb import GNB from mvpa2.clfs.meta import MappedClassifier from mvpa2.generators.partition import NFoldPartitioner from mvpa2.mappers.base import ChainMapper from mvpa2.mappers.base import Mapper from mvpa2.measures.base import CrossValidation from mvpa2.measures.searchlight import sphere_searchlight from mvpa2.testing.datasets import datasets dataset = datasets['3dlarge'].copy() dataset.fa['voxel_indices'] = dataset.fa.myspace sample_clf = GNB() # fast and deterministic class ZScoreFeaturesMapper(Mapper): """Very basic mapper which would take care about standardizing all features within each sample separately """ def _forward_data(self, data): return (data - np.mean(data, axis=1)[:, None])/np.std(data, axis=1)[:, None] # only do partial to save time sl_kwargs = dict(radius=2, center_ids=[3, 50]) clf_mapped = MappedClassifier(sample_clf, ZScoreFeaturesMapper()) cv = CrossValidation(clf_mapped, NFoldPartitioner()) sl = sphere_searchlight(cv, **sl_kwargs) results_mapped = sl(dataset) cv_chained = ChainMapper([ZScoreFeaturesMapper(auto_train=True), CrossValidation(sample_clf, NFoldPartitioner())]) sl_chained = sphere_searchlight(cv_chained, **sl_kwargs) results_chained = sl_chained(dataset) assert_array_equal(results_mapped, results_chained) def test_gnbsearchlight_permutations(): import mvpa2 from mvpa2.base.node import ChainNode from mvpa2.clfs.gnb import GNB from mvpa2.generators.base import Repeater from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner #import mvpa2.generators.permutation #reload(mvpa2.generators.permutation) from mvpa2.generators.permutation import AttributePermutator from mvpa2.testing.datasets import datasets from mvpa2.measures.base import CrossValidation from mvpa2.measures.gnbsearchlight import sphere_gnbsearchlight from mvpa2.measures.searchlight import sphere_searchlight from mvpa2.mappers.fx import mean_sample from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.clfs.stats import MCNullDist from mvpa2.testing.tools import assert_raises, ok_, assert_array_less # mvpa2.debug.active = ['APERM', 'SLC'] #, 'REPM'] # mvpa2.debug.metrics += ['pid'] count = 10 nproc = 1 + int(mvpa2.externals.exists('pprocess')) ds = datasets['3dsmall'].copy() ds.fa['voxel_indices'] = ds.fa.myspace slkwargs = dict(radius=3, space='voxel_indices', enable_ca=['roi_sizes'], center_ids=[1, 10, 70, 100]) mvpa2.seed(mvpa2._random_seed) clf = GNB() splt = NFoldPartitioner(cvtype=2, attr='chunks') repeater = Repeater(count=count) permutator = AttributePermutator('targets', limit={'partitions': 1}, count=1) null_sl = sphere_gnbsearchlight(clf, ChainNode([splt, permutator], space=splt.get_space()), postproc=mean_sample(), errorfx=mean_mismatch_error, **slkwargs) distr_est = MCNullDist(repeater, tail='left', measure=null_sl, enable_ca=['dist_samples']) sl = sphere_gnbsearchlight(clf, splt, reuse_neighbors=True, null_dist=distr_est, postproc=mean_sample(), errorfx=mean_mismatch_error, **slkwargs) if __debug__: # assert is done only without -O mode assert_raises(NotImplementedError, sl, ds) # "ad-hoc searchlights can't handle yet varying targets across partitions" if False: # after above limitation is removed -- enable sl_map = sl(ds) sl_null_prob = sl.ca.null_prob.samples.copy() mvpa2.seed(mvpa2._random_seed) ### 'normal' Searchlight clf = GNB() splt = NFoldPartitioner(cvtype=2, attr='chunks') repeater = Repeater(count=count) permutator = AttributePermutator('targets', limit={'partitions': 1}, count=1) # rng=np.random.RandomState(0)) # to trigger failure since the same np.random state # would be reused across all pprocesses null_cv = CrossValidation(clf, ChainNode([splt, permutator], space=splt.get_space()), postproc=mean_sample()) null_sl_normal = sphere_searchlight(null_cv, nproc=nproc, **slkwargs) distr_est_normal = MCNullDist(repeater, tail='left', measure=null_sl_normal, enable_ca=['dist_samples']) cv = CrossValidation(clf, splt, errorfx=mean_mismatch_error, enable_ca=['stats'], postproc=mean_sample() ) sl = sphere_searchlight(cv, nproc=nproc, null_dist=distr_est_normal, **slkwargs) sl_map_normal = sl(ds) sl_null_prob_normal = sl.ca.null_prob.samples.copy() # For every feature -- we should get some variance in estimates In # case of failure they are all really close to each other (up to # numerical precision), so variance will be close to 0 assert_array_less(-np.var(distr_est_normal.ca.dist_samples.samples[0], axis=1), -1e-5) for s in distr_est_normal.ca.dist_samples.samples[0]: ok_(len(np.unique(s)) > 1) # TODO: compare two results, although might become tricky with # nproc=2 and absent way to control RNG across child processes def test_multiclass_pairs_svm_searchlight(): from mvpa2.measures.searchlight import sphere_searchlight import mvpa2.clfs.meta #reload(mvpa2.clfs.meta) from mvpa2.clfs.meta import MulticlassClassifier from mvpa2.datasets import Dataset from mvpa2.clfs.svm import LinearCSVMC #import mvpa2.testing.datasets #reload(mvpa2.testing.datasets) from mvpa2.testing.datasets import datasets from mvpa2.generators.partition import NFoldPartitioner, OddEvenPartitioner from mvpa2.measures.base import CrossValidation from mvpa2.testing import ok_, assert_equal, assert_array_equal from mvpa2.sandbox.multiclass import get_pairwise_accuracies # Some parameters used in the test below nproc = 1 + int(mvpa2.externals.exists('pprocess')) ntargets = 4 # number of targets npairs = ntargets*(ntargets-1)/2 center_ids = [35, 55, 1] ds = datasets['3dsmall'].copy() # redefine C,T so we have a multiclass task nsamples = len(ds) ds.sa.targets = range(ntargets) * (nsamples//ntargets) ds.sa.chunks = np.arange(nsamples) // ntargets # and add some obvious signal where it is due ds.samples[:, 55] += 15*ds.sa.targets # for all 4 targets ds.samples[:, 35] += 15*(ds.sa.targets % 2) # so we have conflicting labels # while 35 would still be just for 2 categories which would conflict mclf = MulticlassClassifier(LinearCSVMC(), pass_attr=['sa.chunks', 'ca.raw_predictions_ds'], enable_ca=['raw_predictions_ds']) label_pairs = mclf._get_binary_pairs(ds) def place_sa_as_samples(ds): # add a degenerate dimension for the hstacking in the searchlight ds.samples = ds.sa.raw_predictions_ds[:, None] ds.sa.pop('raw_predictions_ds') # no need to drag the copy return ds mcv = CrossValidation(mclf, OddEvenPartitioner(), errorfx=None, postproc=place_sa_as_samples) sl = sphere_searchlight(mcv, nproc=nproc, radius=2, space='myspace', center_ids=center_ids) slmap = sl(ds) ok_('chunks' in slmap.sa) ok_('cvfolds' in slmap.sa) ok_('targets' in slmap.sa) # so for each SL we got all pairwise tests assert_equal(slmap.shape, (nsamples, len(center_ids), npairs)) assert_array_equal(np.unique(slmap.sa.cvfolds), [0, 1]) # Verify that we got right labels in each 'pair' # all searchlights should have the same set of labels for a given # pair of targets label_pairs_ = np.apply_along_axis( np.unique, 0, ## reshape slmap so we have only simple pairs in the columns np.reshape(slmap, (-1, npairs))).T # need to prep that list of pairs obtained from MulticlassClassifier # and since it is 1-vs-1, they all should be just pairs of lists of # 1 element so should work assert_equal(len(label_pairs_), npairs) assert_array_equal(np.squeeze(np.array(label_pairs)), label_pairs_) assert_equal(label_pairs_.shape, (npairs, 2)) # for this particular case out = get_pairwise_accuracies(slmap) out123 = get_pairwise_accuracies(slmap, select=[1, 2, 3]) assert_array_equal(np.unique(out123.T), np.arange(1, 4)) # so we got at least correct targets # test that we extracted correct accuracies # First 3 in out.T should have category 0, so skip them and compare otherwise assert_array_equal(out.samples[3:], out123.samples) ok_(np.all(out.samples[:, 1] == 1.), "This was with super-strong result") @reseed_rng() def test_rfe_sensmap(): # http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/2013q3/002538.html # just a smoke test. fails with from mvpa2.clfs.svm import LinearCSVMC from mvpa2.clfs.meta import FeatureSelectionClassifier from mvpa2.measures.base import CrossValidation, RepeatedMeasure from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import NFoldPartitioner from mvpa2.misc.errorfx import mean_mismatch_error from mvpa2.mappers.fx import mean_sample from mvpa2.mappers.fx import maxofabs_sample from mvpa2.generators.base import Repeater from mvpa2.featsel.rfe import RFE from mvpa2.featsel.helpers import FractionTailSelector, BestDetector from mvpa2.featsel.helpers import NBackHistoryStopCrit from mvpa2.datasets import vstack from mvpa2.misc.data_generators import normal_feature_dataset # Let's simulate the beast -- 6 categories total grouped into 3 # super-ordinate, and actually without any 'superordinate' effect # since subordinate categories independent fds = normal_feature_dataset(nlabels=3, snr=1, # 100, # pure signal! ;) perlabel=9, nfeatures=6, nonbogus_features=range(3), nchunks=3) clfsvm = LinearCSVMC() rfesvm = RFE(clfsvm.get_sensitivity_analyzer(postproc=maxofabs_sample()), CrossValidation( clfsvm, NFoldPartitioner(), errorfx=mean_mismatch_error, postproc=mean_sample()), Repeater(2), fselector=FractionTailSelector(0.70, mode='select', tail='upper'), stopping_criterion=NBackHistoryStopCrit(BestDetector(), 10), update_sensitivity=True) fclfsvm = FeatureSelectionClassifier(clfsvm, rfesvm) sensanasvm = fclfsvm.get_sensitivity_analyzer(postproc=maxofabs_sample()) # manually repeating/splitting so we do both RFE sensitivity and classification senses, errors = [], [] for i, pset in enumerate(NFoldPartitioner().generate(fds)): # split partitioned dataset split = [d for d in Splitter('partitions').generate(pset)] senses.append(sensanasvm(split[0])) # and it also should train the classifier so we would ask it about error errors.append(mean_mismatch_error(fclfsvm.predict(split[1]), split[1].targets)) senses = vstack(senses) errors = vstack(errors) # Let's compare against rerunning the beast simply for classification with CV errors_cv = CrossValidation(fclfsvm, NFoldPartitioner(), errorfx=mean_mismatch_error)(fds) # and they should match assert_array_equal(errors, errors_cv) # buggy! cv_sensana_svm = RepeatedMeasure(sensanasvm, NFoldPartitioner()) senses_rm = cv_sensana_svm(fds) #print senses.samples, senses_rm.samples #print errors, errors_cv.samples assert_raises(AssertionError, assert_array_almost_equal, senses.samples, senses_rm.samples) raise SkipTest("Known failure for repeated measures: https://github.com/PyMVPA/PyMVPA/issues/117") def test_remove_invariant_as_a_mapper(): from mvpa2.featsel.helpers import RangeElementSelector from mvpa2.featsel.base import StaticFeatureSelection, SensitivityBasedFeatureSelection from mvpa2.testing.datasets import datasets from mvpa2.datasets.miscfx import remove_invariant_features mapper = SensitivityBasedFeatureSelection( lambda x: np.std(x, axis=0), RangeElementSelector(lower=0, inclusive=False), train_analyzer=False, auto_train=True) ds = datasets['uni2large'].copy() ds.a['mapper'] = StaticFeatureSelection(np.arange(ds.nfeatures)) ds.fa['index'] = np.arange(ds.nfeatures) ds.samples[:, [1, 8]] = 10 ds_out = mapper(ds) # Validate that we are getting the same results as remove_invariant_features ds_rifs = remove_invariant_features(ds) assert_array_equal(ds_out.samples, ds_rifs.samples) assert_array_equal(ds_out.fa.index, ds_rifs.fa.index) assert_equal(ds_out.fa.index[1], 2) assert_equal(ds_out.fa.index[8], 10) def test_searchlight_errors_per_trial(): # To make sure that searchlight can return error/accuracy per trial from mvpa2.clfs.gnb import GNB from mvpa2.generators.partition import OddEvenPartitioner from mvpa2.measures.base import CrossValidation from mvpa2.measures.searchlight import sphere_searchlight from mvpa2.measures.gnbsearchlight import sphere_gnbsearchlight from mvpa2.testing.datasets import datasets from mvpa2.misc.errorfx import prediction_target_matches dataset = datasets['3dsmall'].copy() # randomly permute samples so we break any random correspondence # to strengthen tests below sample_idx = np.arange(len(dataset)) dataset = dataset[np.random.permutation(sample_idx)] dataset.sa.targets = ['L%d' % l for l in dataset.sa.targets] dataset.fa['voxel_indices'] = dataset.fa.myspace sample_clf = GNB() # fast and deterministic part = OddEvenPartitioner() # only do partial to save time cv = CrossValidation(sample_clf, part, errorfx=None) #prediction_target_matches) # Just to compare error cv_error = CrossValidation(sample_clf, part) # Large searchlight radius so we get entire ROI, 2 centers just to make sure # that all stacking works correctly sl = sphere_searchlight(cv, radius=10, center_ids=[0, 1]) results = sl(dataset) sl_gnb = sphere_gnbsearchlight(sample_clf, part, radius=10, errorfx=None, center_ids=[0, 1]) results_gnbsl = sl_gnb(dataset) # inspect both results # verify that partitioning was done correctly partitions = list(part.generate(dataset)) for res in (results, results_gnbsl): assert('targets' in res.sa.keys()) # should carry targets assert('cvfolds' in res.sa.keys()) # should carry cvfolds for ipart in xrange(len(partitions)): assert_array_equal(dataset[partitions[ipart].sa.partitions == 2].targets, res.sa.targets[res.sa.cvfolds == ipart]) assert_datasets_equal(results, results_gnbsl) # one "accuracy" per each trial assert_equal(results.shape, (len(dataset), 2)) # with accuracies the same in both searchlights since the same # features were to be selected in both cases due too large radii errors_dataset = cv(dataset) assert_array_equal(errors_dataset.samples[:, 0], results.samples[:, 0]) assert_array_equal(errors_dataset.samples[:, 0], results.samples[:, 1]) # and error matching (up to precision) the one if we run with default error function assert_array_almost_equal(np.mean(results.targets[:, None] != results.samples, axis=0)[0], np.mean(cv_error(dataset))) @reseed_rng() def test_simple_cluster_level_thresholding(): nf = 13 nperms = 100 pthr_feature = 0.5 # just for testing pthr_cluster = 0.5 rand_acc = np.random.normal(size=(nperms, nf)) acc = np.random.normal(size=(1, nf)) # Step 1 is to "fit" "Nonparametrics" per each of the features from mvpa2.clfs.stats import Nonparametric dists = [Nonparametric(samples) for samples in rand_acc.T] # we should be able to assert "p" value for each random sample for each feature rand_acc_p = np.array( [dist.rcdf(v) for dist, v in zip(dists, rand_acc.T)] ).T rand_acc_p_slow = np.array([ [dist.rcdf(v) for dist, v in zip(dists, sample)] for sample in rand_acc]) assert_array_equal(rand_acc_p_slow, rand_acc_p) assert_equal(rand_acc_p.shape, rand_acc.shape) assert(np.all(rand_acc_p <= 1)) assert(np.all(rand_acc_p > 0)) # 2: apply the same to our acc acc_p = np.array([dist.rcdf(v) for dist, v in zip(dists, acc[0])])[None, :] assert(np.all(acc_p <= 1)) assert(np.all(acc_p > 0)) skip_if_no_external('scipy') # Now we need to do our fancy cluster level madness from mvpa2.algorithms.group_clusterthr import \ get_cluster_sizes, _transform_to_pvals, get_cluster_pvals, \ get_thresholding_map, repeat_cluster_vals rand_acc_p_thr = rand_acc_p < pthr_feature acc_p_thr = acc_p < pthr_feature rand_cluster_sizes = get_cluster_sizes(rand_acc_p_thr) acc_cluster_sizes = get_cluster_sizes(acc_p_thr) # This is how we can compute it within present implementation. # It will be a bit different (since it doesn't account for target value if # I got it right), and would work only for accuracies thr_map = get_thresholding_map(rand_acc, pthr_feature) rand_cluster_sizes_ = get_cluster_sizes(rand_acc > thr_map) acc_cluster_sizes_ = get_cluster_sizes(acc > thr_map) assert_equal(rand_cluster_sizes, rand_cluster_sizes_) assert_equal(acc_cluster_sizes, acc_cluster_sizes_) #print rand_cluster_sizes #print acc_cluster_sizes # That is how it is done in group_clusterthr atm # store cluster size histogram for later p-value evaluation # use a sparse matrix for easy consumption (max dim is the number of # features, i.e. biggest possible cluster) from scipy.sparse import dok_matrix scl = dok_matrix((1, nf + 1), dtype=int) for s in rand_cluster_sizes: scl[0, s] = rand_cluster_sizes[s] test_count_sizes = repeat_cluster_vals(acc_cluster_sizes) test_pvals = _transform_to_pvals(test_count_sizes, scl.astype('float')) # needs conversion to array for comparisons test_pvals = np.asanyarray(test_pvals) # critical cluster_level threshold (without FW correction between clusters) # would be clusters_passed_threshold = test_count_sizes[test_pvals <= pthr_cluster] if len(clusters_passed_threshold): thr_cluster_size = min(clusters_passed_threshold) #print("Min cluster size which passed threshold: %d" % thr_cluster_size) else: #print("No clusters passed threshold") pass #print test_count_sizes, test_pvals acc_cluster_ps = get_cluster_pvals(acc_cluster_sizes, rand_cluster_sizes) for test_pval, test_count_size in zip(test_pvals, test_count_sizes): assert_almost_equal(acc_cluster_ps[test_count_size], test_pval) @reseed_rng() def test_permute_superord(): from mvpa2.base.node import ChainNode from mvpa2.generators.partition import NFoldPartitioner from mvpa2.generators.base import Sifter from mvpa2.generators.permutation import AttributePermutator ds = _get_superord_dataset() # mvpa2.seed(1) part = ChainNode([ ## so we split based on superord NFoldPartitioner(len(ds.sa['superord'].unique), attr='subord'), ## so it should select only those splits where we took 1 from ## each of the superord categories leaving things in balance Sifter([('partitions', 2), ('superord', { 'uvalues': ds.sa['superord'].unique, 'balanced': True})]), AttributePermutator(['superord'], limit=['partitions', 'chunks']), ], space='partitions') for ds_perm in part.generate(ds): # it does permutation assert(np.sum(ds_perm.sa.superord != ds.sa.superord) != 0) pymvpa2-2.6.4/mvpa2/tests/test_verbosity.py000066400000000000000000000146211323370031300207460ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA verbose and debug output""" import unittest, re from StringIO import StringIO from mvpa2.base.verbosity import OnceLogger from mvpa2.base import verbose, error if __debug__: from mvpa2.base import debug debug.register('1', 'id 1') # needed for testing debug.register('2', 'id 2') ## XXX There must be smth analogous in python... don't know it yet # And it is StringIO #class StringStream(object): # def __init__(self): # self.__str = "" # # def __repr__(self): # return self.__str # # def write(self, s): # self.__str += s # # def clean(self): # self.__str = "" # class VerboseOutputTest(unittest.TestCase): def setUp(self): self.msg = "Test level 2" # output stream self.sout = StringIO() self.once = OnceLogger(handlers=[self.sout]) # set verbose to 4th level self.__oldverbosehandlers = verbose.handlers self.__oldverbose_level = verbose.level verbose.handlers = [] # so debug doesn't spoil it verbose.level = 4 if __debug__: self.__olddebughandlers = debug.handlers self.__olddebugactive = debug.active self.__olddebugmetrics = debug.metrics debug.active = ['1', '2', 'SLC'] debug.handlers = [self.sout] debug.offsetbydepth = False verbose.handlers = [self.sout] def tearDown(self): if __debug__: debug.active = self.__olddebugactive debug.handlers = self.__olddebughandlers debug.metrics = self.__olddebugmetrics debug.offsetbydepth = True verbose.handlers = self.__oldverbosehandlers verbose.level = self.__oldverbose_level self.sout.close() def test_verbose_above(self): """Test if it doesn't output at higher levels""" verbose(5, self.msg) self.assertEqual(self.sout.getvalue(), "") def test_verbose_below(self): """Test if outputs at lower levels and indents by default with spaces """ verbose(2, self.msg) self.assertEqual(self.sout.getvalue(), " %s\n" % self.msg) def test_verbose_indent(self): """Test indent symbol """ verbose.indent = "." verbose(2, self.msg) self.assertEqual(self.sout.getvalue(), "..%s\n" % self.msg) verbose.indent = " " # restore def test_verbose_negative(self): """Test if chokes on negative level""" self.assertRaises( ValueError, verbose._set_level, -10 ) def test_no_lf(self): """Test if it works fine with no newline (LF) symbol""" verbose(2, self.msg, lf=False) verbose(2, " continue ", lf=False) verbose(2, "end") verbose(0, "new %s" % self.msg) self.assertEqual(self.sout.getvalue(), " %s continue end\nnew %s\n" % \ (self.msg, self.msg)) def test_cr(self): """Test if works fine with carriage return (cr) symbol""" verbose(2, self.msg, cr=True) verbose(2, "rewrite", cr=True) verbose(1, "rewrite 2", cr=True) verbose(1, " add", cr=False, lf=False) verbose(1, " finish") target = '\r %s\r \rrewrite' % self.msg + \ '\r \rrewrite 2 add finish\n' self.assertEqual(self.sout.getvalue(), target) def test_once_logger(self): """Test once logger""" self.once("X", self.msg) self.once("X", self.msg) self.assertEqual(self.sout.getvalue(), self.msg+"\n") self.once("Y", "XXX", 2) self.once("Y", "XXX", 2) self.once("Y", "XXX", 2) self.assertEqual(self.sout.getvalue(), self.msg+"\nXXX\nXXX\n") def test_error(self): """Test error message""" error(self.msg, critical=False) # should not exit self.assertTrue(self.sout.getvalue().startswith("ERROR")) if __debug__: def test_debug(self): verbose.handlers = [] # so debug doesn't spoil it debug.active = ['1', '2', 'SLC'] debug.metrics = debug._known_metrics.keys() # do not offset for this test debug('SLC', self.msg, lf=False) self.assertRaises(ValueError, debug, 3, 'bugga') #Should complain about unknown debug id svalue = self.sout.getvalue() regexp = "\[SLC\] DBG(?:{.*})?: %s" % self.msg rematch = re.match(regexp, svalue) self.assertTrue(rematch, msg="Cannot match %s with regexp %s" % (svalue, regexp)) # find metrics self.assertTrue('RSS/VMS:' in svalue, msg="Cannot find vmem metric in " + svalue) self.assertTrue('>test_verbosity:' in svalue, msg="Cannot find tbc metric in " + svalue) self.assertTrue(' sec' in svalue, msg="Cannot find tbc metric in " + svalue) def test_debug_rgexp(self): verbose.handlers = [] # so debug doesn't spoil it debug.active = ['.*'] # we should have enabled all of them self.assertEqual(set(debug.active), set(debug.registered.keys())) debug.active = ['S.*', 'CLF'] self.assertEqual(set(debug.active), set(filter(lambda x:x.startswith('S'), debug.registered.keys())+['CLF'])) debug.active = ['SG', 'CLF'] self.assertEqual(set(debug.active), set(['SG', 'CLF']), msg="debug should do full line matching") debug.offsetbydepth = True # TODO: More tests needed for debug output testing def suite(): # pragma: no cover return unittest.makeSuite(VerboseOutputTest) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_viz.py000066400000000000000000000061741323370031300175340ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## '''Tests for visualizations''' from os.path import join as pathjoin from mvpa2 import pymvpa_dataroot from mvpa2.testing import * from nose.tools import * skip_if_no_external('pylab') import numpy as np def test_get_lim(): from mvpa2.viz import _get_lim d = np.arange(10) assert_equal(_get_lim(d, 'same'), (0, 9)) assert_raises(ValueError, _get_lim, d, 'wrong') assert_equal(_get_lim(d, None), None) assert_equal(_get_lim(d, (1, 3)), (1, 3)) def test_hist(): from mvpa2.viz import hist from mvpa2.misc.data_generators import normal_feature_dataset from matplotlib.axes import Subplot ds = normal_feature_dataset(10, 3, 10, 5) plots = hist(ds, ygroup_attr='targets', xgroup_attr='chunks', noticks=None, xlim=(-.5, .5), normed=True) assert_equal(len(plots), 15) for sp in plots: assert_is_instance(sp, Subplot) # simple case plots = hist(ds) assert_equal(len(plots), 1) assert_is_instance(plots[0], Subplot) # make sure it works with plan arrays too plots = hist(ds.samples) assert_equal(len(plots), 1) assert_is_instance(plots[0], Subplot) def test_imshow(): from mvpa2.viz import matshow from mvpa2.misc.data_generators import normal_feature_dataset from matplotlib.colorbar import Colorbar ds = normal_feature_dataset(10, 2, 18, 5) im = matshow(ds) # old mpl returns a tuple of Colorbar which is anyways available as its .ax if isinstance(im.colorbar, tuple): assert_is_instance(im.colorbar[0], Colorbar) assert_true(im.colorbar[1] is im.colorbar[0].ax) else: # new mpls do it withough unnecessary duplication assert_is_instance(im.colorbar, Colorbar) @sweepargs(slices=([0], None)) def test_lightbox(slices): skip_if_no_external('nibabel') # used for loading the niftis here # smoketest for lightbox - moved from its .py __main__ from mvpa2.misc.plot.lightbox import plot_lightbox fig = plot_lightbox( #background = NiftiImage('%s/anat.nii.gz' % impath), background = pathjoin(pymvpa_dataroot, 'bold.nii.gz'), background_mask = None, overlay = pathjoin(pymvpa_dataroot, 'bold.nii.gz'), overlay_mask = pathjoin(pymvpa_dataroot, 'mask.nii.gz'), # do_stretch_colors = False, add_colorbar = True, cmap_bg = 'gray', cmap_overlay = 'hot', # YlOrRd_r # pl.cm.autumn # fig = None, # vlim describes value limits # clim color limits (same by default) vlim = [1500, None], #vlim_type = 'symneg_z', interactive = True, # #nrows = 2, #ncolumns = 3, add_info = (1, 2), add_hist = (0, 2), # slices = slices ) assert_true(fig) pymvpa2-2.6.4/mvpa2/tests/test_waveletmapper.py000066400000000000000000000132751323370031300216000ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA Wavelet mappers""" from mvpa2.testing import * from mvpa2.testing.datasets import datasets skip_if_no_external('pywt') from mvpa2.base import externals import unittest from mvpa2.support.copy import deepcopy import numpy as np from mvpa2.mappers.boxcar import BoxcarMapper from mvpa2.mappers.wavelet import * from mvpa2.datasets import Dataset class WaveletMappersTests(unittest.TestCase): def test_simple_wdm(self): """ """ ds = datasets['uni2medium'] d2d = ds.samples ws = 15 # size of timeline for wavelet sp = np.arange(ds.nsamples-ws*2) + ws # create 3D instance (samples x timepoints x channels) bcm = BoxcarMapper(sp, ws) d3d = bcm.forward(d2d) # use wavelet mapper wdm = WaveletTransformationMapper() d3d_wd = wdm.forward(d3d) d3d_swap = d3d.swapaxes(1,2) self.assertRaises(ValueError, WaveletTransformationMapper, wavelet='bogus') self.assertRaises(ValueError, WaveletTransformationMapper, mode='bogus') # use wavelet mapper for wdm, wdm_swap in ((WaveletTransformationMapper(), WaveletTransformationMapper(dim=2)), (WaveletPacketMapper(), WaveletPacketMapper(dim=2))): for dd, dd_swap in ((d3d, d3d_swap), (d2d, None)): dd_wd = wdm.forward(dd) if dd_swap is not None: dd_wd_swap = wdm_swap.forward(dd_swap) self.assertTrue((dd_wd == dd_wd_swap.swapaxes(1,2)).all(), msg="We should have got same result with swapped " "dimensions and explicit mentioining of it. " "Got %s and %s" % (dd_wd, dd_wd_swap)) # some sanity checks self.assertTrue(dd_wd.shape[0] == dd.shape[0]) if not isinstance(wdm, WaveletPacketMapper): # we can do reverse only for DWT dd_rev = wdm.reverse(dd_wd) # inverse transform might be not exactly as the # input... but should be very close ;-) self.assertEqual(dd_rev.shape, dd.shape, msg="Shape should be the same after iDWT") diff = np.linalg.norm(dd - dd_rev) ornorm = np.linalg.norm(dd) self.assertTrue(diff/ornorm < 1e-10) def test_simple_wp1_level(self): """ """ ds = datasets['uni2large'] d2d = ds.samples ws = 50 # size of timeline for wavelet sp = (np.arange(ds.nsamples - ws*2) + ws)[:4] # create 3D instance (samples x timepoints x channels) bcm = BoxcarMapper(sp, ws) d3d = bcm.forward(d2d) # use wavelet mapper wdm = WaveletPacketMapper(level=2, wavelet='sym2') d3d_wd = wdm.forward(d3d) # Check dimensionality d3d_wds, d3ds = d3d_wd.shape, d3d.shape self.assertTrue(len(d3d_wds) == len(d3ds)+1) self.assertTrue(d3d_wds[1] * d3d_wds[2] >= d3ds[1]) self.assertTrue(d3d_wds[0] == d3ds[0]) self.assertTrue(d3d_wds[-1] == d3ds[-1]) #print d2d.shape, d3d.shape, d3d_wd.shape if externals.exists('pywt wp reconstruct'): # Test reverse -- should be identical # we can do reverse only for DWT d3d_rev = wdm.reverse(d3d_wd) # inverse transform might be not exactly as the # input... but should be very close ;-) self.assertEqual(d3d_rev.shape, d3d.shape, msg="Shape should be the same after iDWT") diff = np.linalg.norm(d3d - d3d_rev) ornorm = np.linalg.norm(d3d) skip_if_no_external('pywt wp reconstruct fixed') self.assertTrue(diff/ornorm < 1e-10) else: self.assertRaises(NotImplementedError, wdm.reverse, d3d_wd) ##REF: Name was automagically refactored def _test_compare_to_old(self): # pragma: no cover """Good just to compare if I didn't screw up anything... treat it as a regression test """ import mvpa2.mappers.wavelet_ as wavelet_ ds = datasets['uni2medium'] d2d = ds.samples ws = 16 # size of timeline for wavelet sp = np.arange(ds.nsamples-ws*2) + ws # create 3D instance (samples x timepoints x channels) bcm = BoxcarMapper(sp, ws) d3d = bcm.forward(d2d) # use wavelet mapper for wdm, wdm_ in ((WaveletTransformationMapper(), wavelet_.WaveletTransformationMapper()), (WaveletPacketMapper(), wavelet_.WaveletPacketMapper()),): d3d_wd = wdm(d3d) d3d_wd_ = wdm_(d3d) self.assertTrue((d3d_wd == d3d_wd_).all(), msg="We should have got same result with old and new code. " "Got %s and %s" % (d3d_wd, d3d_wd_)) def suite(): # pragma: no cover return unittest.makeSuite(WaveletMappersTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_winner.py000066400000000000000000000037231323370031300202230ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA searchlight algorithm""" import unittest import numpy as np from mvpa2.base import cfg from mvpa2.datasets.base import Dataset from mvpa2.measures.winner import feature_winner_measure, \ feature_loser_measure, \ sample_winner_measure, \ sample_loser_measure, \ group_sample_winner_measure, \ group_sample_loser_measure from mvpa2.testing import assert_array_equal, assert_true # if you need some classifiers #from mvpa2.testing.clfs import * class WinnerTests(unittest.TestCase): def test_winner(self): ns = 4 nf = 3 n = ns * nf ds = Dataset(np.reshape(np.mod(np.arange(0, n * 5, 5) + .5 * n, n), (ns, nf)), sa=dict(targets=[0, 0, 1, 1], x=[3, 2, 1, 0]), fa=dict(v=[3, 2, 1], w=['a', 'b', 'c'])) measures2out = {feature_winner_measure : [1, 0, 2, 1], feature_loser_measure: [2, 1, 0, 2], sample_winner_measure: [1, 0, 2], sample_loser_measure:[2, 1, 3], group_sample_winner_measure:[0, 0, 0], group_sample_loser_measure: [1, 0, 0]} for m, out in measures2out.iteritems(): assert_array_equal(m()(ds).samples.ravel(), np.asarray(out)) def suite(): # pragma: no cover return unittest.makeSuite(WinnerTests) if __name__ == '__main__': # pragma: no cover import runner runner.run() pymvpa2-2.6.4/mvpa2/tests/test_zscoremapper.py000066400000000000000000000176521323370031300214410ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA ZScore mapper""" from mvpa2.base import externals from mvpa2.support.copy import deepcopy import numpy as np from mvpa2.datasets.base import dataset_wizard from mvpa2.mappers.zscore import ZScoreMapper, zscore from mvpa2.testing.tools import assert_array_almost_equal, assert_array_equal, \ assert_equal, assert_raises, ok_, nodebug from mvpa2.misc.support import idhash from mvpa2.testing.datasets import datasets def test_mapper_vs_zscore(): """Test by comparing to results of elderly z-score function """ # data: 40 sample feature line in 20d space (40x20; samples x features) dss = [ dataset_wizard(np.concatenate( [np.arange(40) for i in range(20)]).reshape(20,-1).T, targets=1, chunks=1), ] + datasets.values() for ds in dss: ds1 = deepcopy(ds) ds2 = deepcopy(ds) zsm = ZScoreMapper(chunks_attr=None) assert_raises(RuntimeError, zsm.forward, ds1.samples) idhashes = (idhash(ds1), idhash(ds1.samples)) zsm.train(ds1) idhashes_train = (idhash(ds1), idhash(ds1.samples)) assert_equal(idhashes, idhashes_train) # forward dataset ds1z_ds = zsm.forward(ds1) idhashes_forwardds = (idhash(ds1), idhash(ds1.samples)) # must not modify samples in place! assert_equal(idhashes, idhashes_forwardds) # forward samples explicitly ds1z = zsm.forward(ds1.samples) idhashes_forward = (idhash(ds1), idhash(ds1.samples)) assert_equal(idhashes, idhashes_forward) zscore(ds2, chunks_attr=None) assert_array_almost_equal(ds1z, ds2.samples) assert_array_equal(ds1.samples, ds.samples) @nodebug(['ID_IN_REPR', 'MODULE_IN_REPR']) def test_zcore_repr(): # Just basic test if everything is sane... no proper comparison for m in (ZScoreMapper(chunks_attr=None), ZScoreMapper(params=(3, 1)), ZScoreMapper()): mr = eval(repr(m)) ok_(isinstance(mr, ZScoreMapper)) def test_zscore(): """Test z-scoring transformation """ # dataset: mean=2, std=1 samples = np.array((0, 1, 3, 4, 2, 2, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2)).\ reshape((16, 1)) data = dataset_wizard(samples.copy(), targets=range(16), chunks=[0] * 16) assert_equal(data.samples.mean(), 2.0) assert_equal(data.samples.std(), 1.0) data_samples = data.samples.copy() zscore(data, chunks_attr='chunks') # copy should stay intact assert_equal(data_samples.mean(), 2.0) assert_equal(data_samples.std(), 1.0) # we should be able to operate on ndarrays # But we can't change type inplace for an array, can't we? assert_raises(TypeError, zscore, data_samples, chunks_attr=None) # so lets do manually data_samples = data_samples.astype(float) zscore(data_samples, chunks_attr=None) assert_array_equal(data.samples, data_samples) # check z-scoring check = np.array([-2, -1, 1, 2, 0, 0, 1, -1, -1, 1, 1, -1, 0, 0, 0, 0], dtype='float64').reshape(16, 1) assert_array_equal(data.samples, check) data = dataset_wizard(samples.copy(), targets=range(16), chunks=[0] * 16) zscore(data, chunks_attr=None) assert_array_equal(data.samples, check) # check z-scoring taking set of labels as a baseline data = dataset_wizard(samples.copy(), targets=[0, 2, 2, 2, 1] + [2] * 11, chunks=[0] * 16) zscore(data, param_est=('targets', [0, 1])) assert_array_equal(samples, data.samples + 1.0) # check that zscore modifies in-place; only guaranteed if no upcasting is # necessary samples = samples.astype('float') data = dataset_wizard(samples, targets=[0, 2, 2, 2, 1] + [2] * 11, chunks=[0] * 16) zscore(data, param_est=('targets', [0, 1])) assert_array_equal(samples, data.samples) # verify that if param_est is set but chunks_attr is None # performs zscoring across entire dataset correctly data = data.copy() data_01 = data.select({'targets': [0, 1]}) zscore(data_01, chunks_attr=None) zscore(data, chunks_attr=None, param_est=('targets', [0, 1])) assert_array_equal(data_01.samples, data.select({'targets': [0, 1]})) # these might be duplicating code above -- but twice is better than nothing # dataset: mean=2, std=1 raw = np.array((0, 1, 3, 4, 2, 2, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2)) # dataset: mean=12, std=1 raw2 = np.array((0, 1, 3, 4, 2, 2, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2)) + 10 # zscore target check = [-2, -1, 1, 2, 0, 0, 1, -1, -1, 1, 1, -1, 0, 0, 0, 0] ds = dataset_wizard(raw.copy(), targets=range(16), chunks=[0] * 16) pristine = dataset_wizard(raw.copy(), targets=range(16), chunks=[0] * 16) zm = ZScoreMapper() # should do global zscore by default zm.train(ds) # train assert_array_almost_equal(zm.forward(ds), np.transpose([check])) # should not modify the source assert_array_equal(pristine, ds) # if we tell it a different mean it should obey the order zm = ZScoreMapper(params=(3,1)) zm.train(ds) assert_array_almost_equal(zm.forward(ds), np.transpose([check]) - 1 ) assert_array_equal(pristine, ds) # let's look at chunk-wise z-scoring ds = dataset_wizard(np.hstack((raw.copy(), raw2.copy())), targets=range(32), chunks=[0] * 16 + [1] * 16) # by default chunk-wise zm = ZScoreMapper() zm.train(ds) # train assert_array_almost_equal(zm.forward(ds), np.transpose([check + check])) # we should be able to do that same manually zm = ZScoreMapper(params={0: (2,1), 1: (12,1)}) zm.train(ds) # train assert_array_almost_equal(zm.forward(ds), np.transpose([check + check])) # And just a smoke test for warnings reporting whenever # of # samples per chunk is low. # on 1 sample per chunk zds1 = ZScoreMapper(chunks_attr='chunks', auto_train=True)( ds[[0, -1]]) ok_(np.all(zds1.samples == 0)) # they all should be 0 # on 2 samples per chunk zds2 = ZScoreMapper(chunks_attr='chunks', auto_train=True)( ds[[0, 1, -10, -1]]) assert_array_equal(np.unique(zds2.samples), [-1., 1]) # they all should be -1 or 1 # on 3 samples per chunk -- different warning ZScoreMapper(chunks_attr='chunks', auto_train=True)( ds[[0, 1, 2, -3, -2, -1]]) # test if std provided as a list not as an array is handled # properly -- should zscore all features (not just first/none # as it was before) ds = dataset_wizard(np.arange(32).reshape((8,-1)), targets=range(8), chunks=[0] * 8) means = [0, 1, -10, 10] std0 = np.std(ds[:, 0]) # std deviation of first one stds = [std0, 10, .1, 1] zm = ZScoreMapper(params=(means, stds), auto_train=True) dsz = zm(ds) assert_array_almost_equal((np.mean(ds, axis=0) - np.asanyarray(means))/np.array(stds), np.mean(dsz, axis=0)) assert_array_almost_equal(np.std(ds, axis=0)/np.array(stds), np.std(dsz, axis=0)) def test_zscore_withoutchunks(): # just a smoke test to see if all issues of # https://github.com/PyMVPA/PyMVPA/issues/26 # are fixed from mvpa2.datasets import Dataset ds = Dataset(np.arange(32).reshape((8,-1)), sa=dict(targets=range(8))) zscore(ds, chunks_attr=None) assert(np.any(ds.samples != np.arange(32).reshape((8,-1)))) ds_summary = ds.summary() assert(ds_summary is not None)pymvpa2-2.6.4/mvpa2/tutorial_suite.py000077500000000000000000000063251323370031300176000ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## import os from os.path import join as pathjoin import numpy as np # later replace with from mvpa2.suite import * tutorial_data_path = mvpa2.cfg.get('location', 'tutorial data', default=os.path.curdir) def get_raw_haxby2001_data(path=tutorial_data_path, roi='vt'): if roi is 0: # this means something special in the searchlight tutorial maskpath = pathjoin(path, 'haxby2001', 'sub001', 'masks', 'orig') nimg = nb.load(pathjoin(maskpath, 'hoc.nii.gz')) nimg_brain = nb.load(pathjoin(maskpath, 'brain.nii.gz')) tmpmask = nimg.get_data() == roi # trim it down to the lower anterior quadrant tmpmask[:, :, tmpmask.shape[-1]/2:] = False tmpmask[:, :tmpmask.shape[1]/2] = False tmpmask[nimg_brain.get_data() > 0] = False mask = nb.Nifti1Image(tmpmask.astype(int), None, nimg.header) return load_tutorial_data(path=path, roi=mask) else: return load_tutorial_data(path=path, roi=roi) def get_haxby2001_data(path=None, roi='vt'): if path is None: ds = get_raw_haxby2001_data(roi=roi) else: ds = get_raw_haxby2001_data(path, roi=roi) # do chunkswise linear detrending on dataset poly_detrend(ds, polyord=1, chunks_attr='chunks', space='time_coords') # mark the odd and even runs rnames = {0: 'even', 1: 'odd'} ds.sa['runtype'] = [rnames[c % 2] for c in ds.sa.chunks] # compute the mean sample per condition and odd vs. even runs # aka "constructive interference" ds = ds.get_mapped(mean_group_sample(['targets', 'runtype'])) # XXX suboptimal order: should be zscore->avg # but then: where is the difference between this and _alternative()? # zscore dataset relative to baseline ('rest') mean zscore(ds, param_est=('targets', ['rest'])) # exclude the rest condition from the dataset ds = ds[ds.sa.targets != 'rest'] return ds def get_haxby2001_data_alternative(path=None, roi='vt', grp_avg=True): if path is None: ds = get_raw_haxby2001_data(roi=roi) else: ds = get_raw_haxby2001_data(path, roi=roi) # do chunkswise linear detrending on dataset poly_detrend(ds, polyord=1, chunks_attr='chunks', space='time_coords') # zscore dataset relative to baseline ('rest') mean zscore(ds, param_est=('targets', ['rest'])) # exclude the rest condition from the dataset ds = ds[ds.sa.targets != 'rest'] # mark the odd and even runs rnames = {0: 'even', 1: 'odd'} ds.sa['runtype'] = [rnames[c % 2] for c in ds.sa.chunks] if grp_avg: # compute the mean sample per condition and odd vs. even runs # aka "constructive interference" ds = ds.get_mapped(mean_group_sample(['targets', 'runtype'])) return ds def get_haxby2001_clf(): clf = kNN(k=1, dfx=one_minus_correlation, voting='majority') return clf pymvpa2-2.6.4/mvpa2/viz/000077500000000000000000000000001323370031300147515ustar00rootroot00000000000000pymvpa2-2.6.4/mvpa2/viz/__init__.py000066400000000000000000000233431323370031300170670ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Visualization of datasets""" __docformat__ = 'restructuredtext' import numpy as np from mvpa2.base import externals from mvpa2.base.node import ChainNode from mvpa2.base.dataset import is_datasetlike from mvpa2.generators.splitters import Splitter from mvpa2.generators.partition import NFoldPartitioner def _get_lim(data, lim): """Helper function to unify setting the limits """ if lim is None: return None if isinstance(lim, basestring): lim = lim.lower() if lim == 'same': return (data.min(), data.max()) else: raise ValueError("Know only 'same'. Got %s" % (lim,)) return lim def hist(dataset, xgroup_attr=None, ygroup_attr=None, xlim='same', ylim='same', noticks=False, **kwargs): """Compute and draw feature histograms (for groups of samples) This is a convenience wrapper around matplotlib's hist() function. It supports it entire API, but data is taken from an input dataset. In addition, feature histograms for groups of dataset samples can be drawn as an array of subplots. Using ``xgroup_attr`` and ``ygroup_attr`` up to two sample attributes can be selected and samples groups are defined by their unique values. For example, plotting histograms for all combinations of ``targets`` and ``chunks`` attribute values in a dataset is done by this code: >>> from mvpa2.viz import hist >>> from mvpa2.misc.data_generators import normal_feature_dataset >>> ds = normal_feature_dataset(10, 3, 10, 5) >>> plots = hist(ds, ygroup_attr='targets', xgroup_attr='chunks', ... noticks=None, xlim=(-.5,.5), normed=True) >>> len(plots) 15 This function can also be used with plain arrays, in which case it will fall back on the behavior of matplotlib's hist() and additional functionality is not available. Parameters ---------- dataset : Dataset or array xgroup_attr : string, optional Name of a samples attribute to be used as targets ygroup_attr : None or string, optional If a string, a histogram will be plotted per each target and each chunk (as defined in sa named `chunks_attr`), resulting is a histogram grid (targets x chunks). xlim : None or 2-tuple or 'same', optional Common x-axis limits for all histograms. By default all plots will have the same range of values. Set to None if you would like to let them vary. ylim : None or 2-tuple or 'same', optional Common y-axis limits for all histograms. If same, heights for all histograms will be made equal depending on the data. noticks : bool or None, optional If True, no axis ticks will be plotted. If False, each histogram subplot will have its own ticks. If None, only the outer subplots will have ticks. This is useful to save space in large plots, but should be combined with ``xlim`` and ``ylim`` arguments in order to ensure equal axes across subplots. **kwargs Any additional arguments are passed to matplotlib's hist(). Returns ------- list List of figure handlers for all generated subplots. """ externals.exists("pylab", raise_=True) import pylab as pl xgroup = {'attr': xgroup_attr} ygroup = {'attr': ygroup_attr} for grp in (xgroup, ygroup): if grp['attr'] is not None and is_datasetlike(dataset): grp['split'] = ChainNode([NFoldPartitioner(1, attr=grp['attr']), Splitter('partitions', attr_values=[2])]) grp['gen'] = lambda s, x: s.generate(x) grp['npanels'] = len(dataset.sa[grp['attr']].unique) else: grp['split'] = None grp['gen'] = lambda s, x: [x] grp['npanels'] = 1 fig = 1 nrows = ygroup['npanels'] ncols = xgroup['npanels'] subplots = [] ylim_ = (0, 0) # for all labels for row, ds in enumerate(ygroup['gen'](ygroup['split'], dataset)): for col, d in enumerate(xgroup['gen'](xgroup['split'], ds)): ax = pl.subplot(nrows, ncols, fig) if is_datasetlike(d): data = d.samples else: data = d (n, bins, patches) = ax.hist(data.ravel(), **kwargs) if xlim is not None: pl.xlim(_get_lim(data, xlim)) if ylim is not None: if isinstance(ylim, basestring) and ylim.lower() == 'same': ylim_ = (min(ylim_[0], min(n)), max(ylim_[1], max(n))) else: pl.ylim(ylim) # for 'same' we would have needed to estimate histograms first # and then adjust their ylim if noticks is True or (noticks is None and row < nrows - 1): pl.xticks([]) if noticks is True or (noticks is None and col > 0): pl.yticks([]) if ncols > 1 and row == 0: pl.title(str(d.sa[xgroup['attr']].unique[0])) if nrows > 1 and col == 0: pl.ylabel(str(d.sa[ygroup['attr']].unique[0])) fig += 1 subplots.append(ax) # if we have changed ylim_ if ylim_ != (0, 0): for ax in subplots: ax.set_ylim(ylim_) return subplots def matshow(matrix, xlabel_attr=None, ylabel_attr=None, numbers=None, **kwargs): """Enhanced version of matplotlib's matshow(). This version is able to handle datasets, and label axis according to dataset attribute values. >>> from mvpa2.viz import matshow >>> from mvpa2.misc.data_generators import normal_feature_dataset >>> ds = normal_feature_dataset(10, 2, 18, 5) >>> im = matshow(ds, ylabel_attr='targets', xlabel_attr='chunks', ... numbers='%.0f') Parameters ---------- matrix : 2D array The matrix that is to be plotted as an image. If 'matrix' is of type Dataset the function tries to plot the corresponding samples. xlabel_attr : str or None If not 'None' matrix is treated as a Dataset and labels are extracted from the sample attribute named 'xlabel_attr'. The labels are used as the 'x_tick_lables' of the image. ylabel_attr : str or None If not 'None' matrix is treated as a Dataset and labels are extracted from the feature attribute named 'ylabel_attr'. The labels are used as the 'y_tick_lables' of the image. numbers : dict, str or None If not 'None' plots matrix values as text inside the image. If a string is provided, then this string is used as format string. In case that a dictionary is provided, the dictionary gets passed on to the text command, and, '%d' is used to format the values. **kwargs Additional parameters passed on to matshow(). Returns ------- matplotlib.AxesImage Handler for the created image. """ externals.exists("pylab", raise_=True) import pylab as pl if numbers is not None: if isinstance(numbers, str): numbers_format = numbers numbers_alpha = None numbers_kwargs_ = {} elif isinstance(numbers, dict): numbers_format = '%d' numbers_alpha = numbers.pop('numbers_alpha', None) numbers_kwargs_ = numbers else: raise TypeError("The argument to keyword 'numbers' must be " "either of type string or type dict") _xlabel = None _ylabel = None # check if dataset 'is' a confusion matrix if is_datasetlike(matrix): if xlabel_attr is not None and ylabel_attr is not None: _xlabel = matrix.get_attr(xlabel_attr)[0].value # LookupError _ylabel = matrix.get_attr(ylabel_attr)[0].value # if it's not there matrix = np.asanyarray(matrix) fig = pl.gcf() ax = pl.gca() im = ax.matshow(matrix, **kwargs) # customize labels if _xlabel and _ylabel are set if _xlabel is not None and _ylabel is not None: xlabels = [item.get_text() for item in ax.get_xticklabels()] xlabels[1:-1] = _xlabel ax.set_xticklabels(xlabels) pl.xlabel(xlabel_attr) ylabels = [item.get_text() for item in ax.get_yticklabels()] ylabels[1:-1] = _ylabel ax.set_yticklabels(ylabels) pl.ylabel(ylabel_attr) # colorbar customization for discrete matrix # code taken from old ConfusionMatrix.plot() # TODO: colorbar should be discrete as well cb_kwargs_ = {} maxv = np.max(matrix) if ('int' in matrix.dtype.name) and (maxv > 0): boundaries = np.linspace(0, maxv, np.min((maxv, 10)), True) cb_kwargs_['format'] = '%d' cb_kwargs_['ticks'] = boundaries cb = pl.colorbar(im, **cb_kwargs_) # plot matrix values inside the image if number is set if numbers is not None: colors = [im.to_rgba(0), im.to_rgba(maxv)] for i, cas in enumerate(matrix): for j, v in enumerate(cas): numbers_kwargs_['color'] = colors[int(v= os.stat(src_fn).st_mtime: continue except OSError: pass # copy file if not os.path.islink(src_fn): shutil.copyfile(src_fn, dst_fn) elif not os.path.islink(dst_fn): # replicate ths symlink at the destination if doesn't exist yet os.symlink(os.readlink(src_fn), dst_fn) # add .py files to 2to3 list if dst_fn.endswith('.py'): to_convert.append((src_fn, dst_fn)) # run 2to3 flag_sets = {} for fn, dst_fn in to_convert: flag = '' for pat, opt in EXTRA_2TO3_FLAGS.items(): if fnmatch.fnmatch(fn, pat): flag = opt break flag_sets.setdefault(flag, []).append(dst_fn) for flags, filenames in flag_sets.items(): if flags == 'skip': continue _old_stdout = sys.stdout try: sys.stdout = StringIO() lib2to3.main.main("lib2to3.fixes", ['-w'] + flags.split()+filenames) finally: sys.stdout = _old_stdout for fn, dst_fn in to_convert: # perform custom mangling custom_mangling(dst_fn) pymvpa2-2.6.4/requirements.txt000066400000000000000000000002741323370031300164030ustar00rootroot00000000000000# should be present but installing via pip might be too lengthy # numpy # scipy # sklearn duecredit nibabel # not compatible ATM with python3 # pprocess # Some parts use it already joblib pymvpa2-2.6.4/setup.cfg.win000066400000000000000000000002441323370031300155310ustar00rootroot00000000000000[build_ext] # configure paths for libsvm include-dirs = 3rd/libsvm library-dirs = 3rd/libsvm [build] # configure python to use a free compiler compiler = mingw32 pymvpa2-2.6.4/setup.py000077500000000000000000000221041323370031300146300ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Python distutils setup for PyMVPA""" from numpy.distutils.core import setup, Extension import fnmatch import glob import os import sys if sys.version_info[:2] < (2, 6): raise RuntimeError("PyMVPA requires Python 2.6 or higher") # some config settings bind_libsvm = 'local' # choices: 'local', 'system', None libsvmc_extra_sources = [] libsvmc_include_dirs = [] libsvmc_libraries = [] extra_link_args = [] libsvmc_library_dirs = [] requires = { 'core': [ 'scipy', 'nibabel' ] } # platform-specific settings if sys.platform == "darwin": extra_link_args.append("-bundle") if sys.platform.startswith('linux'): # need to look for numpy (header location changes with v1.3) from numpy.distutils.misc_util import get_numpy_include_dirs libsvmc_include_dirs += get_numpy_include_dirs() # when libsvm is forced -- before it was used only in cases # when libsvm was available at system level, hence we switch # from local to system at this point # TODO: Deprecate --with-libsvm for 0.5 for arg in ('--with-libsvm', '--with-system-libsvm'): if not sys.argv.count(arg): continue # clean argv if necessary (or distutils will complain) sys.argv.remove(arg) # assure since default is 'auto' wouldn't fail if it is N/A bind_libsvm = 'system' # when no libsvm bindings are requested explicitly if sys.argv.count('--no-libsvm'): # clean argv if necessary (or distutils will complain) sys.argv.remove('--no-libsvm') bind_libsvm = None # if requested: if bind_libsvm == 'local': # we will provide libsvm sources later on # if libsvm.a is available locally -- use it #if os.path.exists(os.path.join('build', 'libsvm', 'libsvm.a')): libsvm_3rd_path = os.path.join('3rd', 'libsvm') libsvmc_include_dirs += [libsvm_3rd_path] libsvmc_extra_sources = [os.path.join(libsvm_3rd_path, 'svm.cpp')] elif bind_libsvm == 'system': # look for libsvm in some places, when local one is not used libsvmc_libraries += ['svm'] if not sys.platform.startswith('win'): libsvmc_include_dirs += [ '/usr/include/libsvm-3.0/libsvm', '/usr/include/libsvm-2.0/libsvm', '/usr/include/libsvm', '/usr/local/include/libsvm', '/usr/local/include/libsvm-2.0/libsvm', '/usr/local/include'] else: # no clue on windows pass elif bind_libsvm is None: pass else: raise ValueError("Shouldn't happen that we get bind_libsvm=%r" % (bind_libsvm,)) # define the extension modules libsvmc_ext = Extension( 'mvpa2.clfs.libsvmc._svmc', sources=libsvmc_extra_sources + [os.path.join('mvpa2', 'clfs', 'libsvmc', 'svmc.i')], include_dirs=libsvmc_include_dirs, library_dirs=libsvmc_library_dirs, libraries=libsvmc_libraries, language='c++', extra_link_args=extra_link_args, swig_opts=['-I' + d for d in libsvmc_include_dirs]) smlrc_ext = Extension( 'mvpa2.clfs.libsmlrc.smlrc', sources=[ os.path.join('mvpa2', 'clfs', 'libsmlrc', 'smlr.c') ], #library_dirs = library_dirs, libraries=['m'] if not sys.platform.startswith('win') else [], # extra_compile_args = ['-O0'], extra_link_args=extra_link_args, language='c') ext_modules = [smlrc_ext] if bind_libsvm: ext_modules.append(libsvmc_ext) # Notes on the setup # Version scheme is: major.minor.patch def get_full_dir(path): path_split = path.split(os.path.sep) # so we could run setup.py on any platform path_proper = os.path.join(*path_split) return (path_proper, [f for f in glob.glob(os.path.join(path_proper, '*')) if os.path.isfile(f)]) # borrowed from https://wiki.python.org/moin/Distutils/Tutorial ## Code borrowed from wxPython's setup and config files ## Thanks to Robin Dunn for the suggestion. ## I am not 100% sure what's going on, but it works! def opj(*args): path = os.path.join(*args) return os.path.normpath(path) def find_data_files(srcdir, *wildcards, **kw): # get a list of all files under the srcdir matching wildcards, # returned in a format to be used for install_data file_list = [] recursive = kw.get('recursive', True) for d, dirs, files in os.walk(srcdir, topdown=True): for wc in wildcards: files_ = [opj(d, x) for x in fnmatch.filter(files, wc)] if files_: file_list.append((d, files_)) if not recursive: break # one would be enough ;) return file_list # define the setup def setup_package(): # Perform 2to3 if needed local_path = os.path.dirname(os.path.abspath(sys.argv[0])) src_path = local_path if sys.version_info[0] == 3: src_path = os.path.join(local_path, 'build', 'py3k') import py3tool print("Converting to Python3 via 2to3...") py3tool.sync_2to3('mvpa2', os.path.join(src_path, 'mvpa2')) py3tool.sync_2to3('3rd', os.path.join(src_path, '3rd')) # Borrowed from NumPy before this code was deprecated (everyone # else moved on from 2to3) # Ugly hack to make pip work with Python 3, see NumPy #1857. # Explanation: pip messes with __file__ which interacts badly with the # change in directory due to the 2to3 conversion. Therefore we restore # __file__ to what it would have been otherwise. global __file__ __file__ = os.path.join(os.curdir, os.path.basename(__file__)) if '--egg-base' in sys.argv: # Change pip-egg-info entry to absolute path, so pip can find it # after changing directory. idx = sys.argv.index('--egg-base') if sys.argv[idx + 1] == 'pip-egg-info': sys.argv[idx + 1] = os.path.join(local_path, 'pip-egg-info') # Run build os.chdir(src_path) sys.path.insert(0, src_path) setup(name='pymvpa2', version='2.6.4', author='Michael Hanke, Yaroslav Halchenko, Nikolaas N. Oosterhof', author_email='pkg-exppsy-pymvpa@lists.alioth.debian.org', license='MIT License', url='http://www.pymvpa.org', description='Multivariate pattern analysis', long_description= "PyMVPA is a Python module intended to ease pattern classification " "analyses of large datasets. It provides high-level abstraction of " "typical processing steps and a number of implementations of some " "popular algorithms. While it is not limited to neuroimaging data " "it is eminently suited for such datasets.\n" "PyMVPA is truly free software (in every respect) and " "additionally requires nothing but free-software to run.", setup_requires=['numpy'], # please maintain alphanumeric order packages=[ 'mvpa2', 'mvpa2.algorithms', 'mvpa2.algorithms.benchmarks', 'mvpa2.atlases', 'mvpa2.base', 'mvpa2.clfs', 'mvpa2.clfs.libsmlrc', 'mvpa2.clfs.libsvmc', 'mvpa2.clfs.skl', 'mvpa2.clfs.sg', 'mvpa2.cmdline', 'mvpa2.datasets', 'mvpa2.datasets.sources', 'mvpa2.featsel', 'mvpa2.kernels', 'mvpa2.mappers', 'mvpa2.mappers.glm', 'mvpa2.generators', 'mvpa2.measures', 'mvpa2.misc', 'mvpa2.misc.bv', 'mvpa2.misc.fsl', 'mvpa2.misc.io', 'mvpa2.misc.plot', 'mvpa2.misc.surfing', 'mvpa2.sandbox', 'mvpa2.support', 'mvpa2.support.afni', 'mvpa2.support.bayes', 'mvpa2.support.nipy', 'mvpa2.support.ipython', 'mvpa2.support.nibabel', 'mvpa2.support.scipy', 'mvpa2.testing', 'mvpa2.tests', 'mvpa2.tests.badexternals', 'mvpa2.viz', ], install_requires=requires['core'], data_files=[('mvpa2', [os.path.join('mvpa2', 'COMMIT_HASH')])] + find_data_files(os.path.join('mvpa2', 'data'), '*.txt', '*.nii.gz', '*.rtc', 'README', '*.bin', '*.dat', '*.dat.gz', '*.mat', '*.fsf', '*.par'), scripts=glob.glob(os.path.join('bin', '*')), ext_modules=ext_modules ) if __name__ == '__main__': setup_package() pymvpa2-2.6.4/tools/000077500000000000000000000000001323370031300142545ustar00rootroot00000000000000pymvpa2-2.6.4/tools/Makefile000066400000000000000000000002231323370031300157110ustar00rootroot00000000000000TARGETS=pdfbook TDIR=../build/tools all: $(TARGETS) pdfbook: mkdir -p $(TDIR) gcc pdfbook.c -o $(TDIR)/pdfbook clean:: rm -f $(TDIR)/pdfbook pymvpa2-2.6.4/tools/apigen.py000066400000000000000000000362411323370031300160770ustar00rootroot00000000000000"""Attempt to generate templates for module reference with Sphinx XXX - we exclude extension modules To include extension modules, first identify them as valid in the ``_uri2path`` method, then handle them in the ``_parse_module`` script. We get functions and classes by parsing the text of .py files. Alternatively we could import the modules for discovery, and we'd have to do that for extension modules. This would involve changing the ``_parse_module`` method to work via import and introspection, and might involve changing ``discover_modules`` (which determines which files are modules, and therefore which module URIs will be passed to ``_parse_module``). NOTE: this is a modified version of a script originally shipped with the PyMVPA project, which we've adapted for NIPY use. PyMVPA and NIPY are both BSD-licensed projects. """ # Stdlib imports import os import re # Functions and classes class ApiDocWriter(object): ''' Class for automatic detection and parsing of API docs to Sphinx-parsable reST format''' # only separating first two levels rst_section_levels = ['*', '=', '-', '~', '^'] def __init__(self, package_name, rst_extension='.rst', package_skip_patterns=None, module_skip_patterns=None, ): ''' Initialize package for parsing Parameters ---------- package_name : string Name of the top-level package. *package_name* must be the name of an importable package rst_extension : string, optional Extension for reST files, default '.rst' package_skip_patterns : None or sequence of {strings, regexps} Sequence of strings giving URIs of packages to be excluded Operates on the package path, starting at (including) the first dot in the package path, after *package_name* - so, if *package_name* is ``sphinx``, then ``sphinx.util`` will result in ``.util`` being passed for earching by these regexps. If is None, gives default. Default is: ['\.tests$'] module_skip_patterns : None or sequence Sequence of strings giving URIs of modules to be excluded Operates on the module name including preceding URI path, back to the first dot after *package_name*. For example ``sphinx.util.console`` results in the string to search of ``.util.console`` If is None, gives default. Default is: ['\.setup$', '\._'] ''' if package_skip_patterns is None: package_skip_patterns = ['\\.tests$'] if module_skip_patterns is None: module_skip_patterns = ['\\.setup$', '\\._'] self.package_name = package_name self.rst_extension = rst_extension self.package_skip_patterns = package_skip_patterns self.module_skip_patterns = module_skip_patterns def get_package_name(self): return self._package_name def set_package_name(self, package_name): ''' Set package_name >>> docwriter = ApiDocWriter('sphinx') >>> import sphinx >>> docwriter.root_path == sphinx.__path__[0] True >>> docwriter.package_name = 'docutils' >>> import docutils >>> docwriter.root_path == docutils.__path__[0] True ''' # It's also possible to imagine caching the module parsing here self._package_name = package_name self.root_module = __import__(package_name) self.root_path = self.root_module.__path__[0] self.written_modules = None package_name = property(get_package_name, set_package_name, None, 'get/set package_name') def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') >>> docwriter._get_object_name(" def func(): ") 'func' >>> docwriter._get_object_name(" class Klass(object): ") 'Klass' >>> docwriter._get_object_name(" class Klass: ") 'Klass' ''' name = line.split()[1].split('(')[0].strip() # in case we have classes which are not derived from object # ie. old style classes return name.rstrip(':') def _uri2path(self, uri): ''' Convert uri to absolute filepath Parameters ---------- uri : string URI of python module to return path for Returns ------- path : None or string Returns None if there is no valid path for this URI Otherwise returns absolute file system path for URI Examples -------- >>> docwriter = ApiDocWriter('sphinx') >>> import sphinx >>> modpath = sphinx.__path__[0] >>> res = docwriter._uri2path('sphinx.builder') >>> res == os.path.join(modpath, 'builder.py') True >>> res = docwriter._uri2path('sphinx') >>> res == os.path.join(modpath, '__init__.py') True >>> docwriter._uri2path('sphinx.does_not_exist') ''' if uri == self.package_name: return os.path.join(self.root_path, '__init__.py') path = uri.replace('.', os.path.sep) path = path.replace(self.package_name + os.path.sep, '') path = os.path.join(self.root_path, path) # XXX maybe check for extensions as well? if os.path.exists(path + '.py'): # file path += '.py' elif os.path.exists(os.path.join(path, '__init__.py')): path = os.path.join(path, '__init__.py') else: return None return path def _path2uri(self, dirpath): ''' Convert directory path to uri ''' relpath = dirpath.replace(self.root_path, self.package_name) if relpath.startswith(os.path.sep): relpath = relpath[1:] return relpath.replace(os.path.sep, '.') def _parse_module(self, uri): ''' Parse module defined in *uri* ''' filename = self._uri2path(uri) if filename is None: # nothing that we could handle here. return ([],[]) f = open(filename, 'rt') functions, classes = self._parse_lines(f) f.close() return functions, classes def _parse_lines(self, linesource): ''' Parse lines of text for functions and classes ''' functions = [] classes = [] for line in linesource: if line.startswith('def ') and line.count('('): # exclude private stuff name = self._get_object_name(line) if not name.startswith('_'): functions.append(name) elif line.startswith('class '): # exclude private stuff name = self._get_object_name(line) if not name.startswith('_'): classes.append(name) else: pass functions.sort() classes.sort() return functions, classes def generate_api_doc(self, uri): '''Make autodoc documentation template string for a module Parameters ---------- uri : string python location of module - e.g 'sphinx.builder' Returns ------- S : string Contents of API doc ''' # get the names of all classes and functions functions, classes = self._parse_module(uri) if not len(functions) and not len(classes): print 'WARNING: Empty -',uri # dbg return '' # Make a shorter version of the uri that omits the package name for # titles uri_short = re.sub(r'^%s\.' % self.package_name,'',uri) ad = '.. AUTO-GENERATED FILE -- DO NOT EDIT!\n\n' chap_title = uri_short ad += (chap_title+'\n'+ self.rst_section_levels[1] * len(chap_title) + '\n\n') # Set the chapter title to read 'module' for all modules except for the # main packages if '.' in uri: title = 'Module: :mod:`' + uri_short + '`' else: title = ':mod:`' + uri_short + '`' ad += title + '\n' + self.rst_section_levels[2] * len(title) #if len(classes): # ad += '\nInheritance diagram for ``%s``:\n\n' % uri # ad += '.. inheritance-diagram:: %s \n' % uri # ad += ' :parts: 3\n' ad += '\n.. automodule:: ' + uri + '\n' ad += '\n.. currentmodule:: ' + uri + '\n' multi_class = len(classes) > 1 multi_fx = len(functions) > 1 if multi_class: ad += '\n' + 'Classes' + '\n' + \ self.rst_section_levels[2] * 7 + '\n' elif len(classes) and multi_fx: ad += '\n' + 'Class' + '\n' + \ self.rst_section_levels[2] * 5 + '\n' for c in classes: ad += '\n:class:`' + c + '`\n' \ + self.rst_section_levels[multi_class + 2 ] * \ (len(c)+9) + '\n\n' ad += '\n.. autoclass:: ' + c + '\n' # must NOT exclude from index to keep cross-refs working ad += ' :members:\n' \ ' :undoc-members:\n'# \ #' :show-inheritance:\n' if multi_fx: ad += '\n' + 'Functions' + '\n' + \ self.rst_section_levels[2] * 9 + '\n\n' elif len(functions) and multi_class: ad += '\n' + 'Function' + '\n' + \ self.rst_section_levels[2] * 8 + '\n\n' for f in functions: # must NOT exclude from index to keep cross-refs working ad += '\n.. autofunction:: ' + uri + '.' + f + '\n\n' return ad def _survives_exclude(self, matchstr, match_type): ''' Returns True if *matchstr* does not match patterns ``self.package_name`` removed from front of string if present Examples -------- >>> dw = ApiDocWriter('sphinx') >>> dw._survives_exclude('sphinx.okpkg', 'package') True >>> dw.package_skip_patterns.append('^\\.badpkg$') >>> dw._survives_exclude('sphinx.badpkg', 'package') False >>> dw._survives_exclude('sphinx.badpkg', 'module') True >>> dw._survives_exclude('sphinx.badmod', 'module') True >>> dw.module_skip_patterns.append('^\\.badmod$') >>> dw._survives_exclude('sphinx.badmod', 'module') False ''' if match_type == 'module': patterns = self.module_skip_patterns elif match_type == 'package': patterns = self.package_skip_patterns else: raise ValueError('Cannot interpret match type "%s"' % match_type) # Match to URI without package name L = len(self.package_name) if matchstr[:L] == self.package_name: matchstr = matchstr[L:] for pat in patterns: try: pat.search except AttributeError: pat = re.compile(pat) if pat.search(matchstr): return False return True def discover_modules(self): ''' Return module sequence discovered from ``self.package_name`` Parameters ---------- None Returns ------- mods : sequence Sequence of module names within ``self.package_name`` Examples -------- >>> dw = ApiDocWriter('sphinx') >>> mods = dw.discover_modules() >>> 'sphinx.util' in mods True >>> dw.package_skip_patterns.append('\.util$') >>> 'sphinx.util' in dw.discover_modules() False >>> ''' modules = [self.package_name] # raw directory parsing for dirpath, dirnames, filenames in os.walk(self.root_path): # Check directory names for packages root_uri = self._path2uri(os.path.join(self.root_path, dirpath)) for dirname in dirnames[:]: # copy list - we modify inplace package_uri = '.'.join((root_uri, dirname)) if (self._uri2path(package_uri) and self._survives_exclude(package_uri, 'package')): modules.append(package_uri) else: dirnames.remove(dirname) # Check filenames for modules for filename in filenames: module_name = filename[:-3] module_uri = '.'.join((root_uri, module_name)) if (self._uri2path(module_uri) and self._survives_exclude(module_uri, 'module')): modules.append(module_uri) return sorted(modules) def write_modules_api(self, modules,outdir): # write the list written_modules = [] for m in modules: api_str = self.generate_api_doc(m) if not api_str: continue # write out to file outfile = os.path.join(outdir, m + self.rst_extension) fileobj = open(outfile, 'wt') fileobj.write(api_str) fileobj.close() written_modules.append(m) self.written_modules = written_modules def write_api_docs(self, outdir): """Generate API reST files. Parameters ---------- outdir : string Directory name in which to store files We create automatic filenames for each module Returns ------- None Notes ----- Sets self.written_modules to list of written modules """ if not os.path.exists(outdir): os.mkdir(outdir) # compose list of modules modules = self.discover_modules() self.write_modules_api(modules,outdir) def write_index(self, outdir, froot='gen', relative_to=None): """Make a reST API index file from written files Parameters ---------- path : string Filename to write index to outdir : string Directory to which to write generated index file froot : string, optional root (filename without extension) of filename to write to Defaults to 'gen'. We add ``self.rst_extension``. relative_to : string path to which written filenames are relative. This component of the written file path will be removed from outdir, in the generated index. Default is None, meaning, leave path as it is. """ if self.written_modules is None: raise ValueError('No modules written') # Get full filename path path = os.path.join(outdir, froot+self.rst_extension) # Path written into index is relative to rootpath if relative_to is not None: relpath = outdir.replace(relative_to + os.path.sep, '') else: relpath = outdir idx = open(path,'wt') w = idx.write w('.. AUTO-GENERATED FILE -- DO NOT EDIT!\n\n') w('.. toctree::\n\n') for f in self.written_modules: w(' %s\n' % os.path.join(relpath,f)) idx.close() pymvpa2-2.6.4/tools/bib2rst_ref.py000077500000000000000000000264571323370031300170520ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## import _bibtex import re ##REF: Name was automagically refactored def compare_bib_by_date(a, b): """Sorting helper.""" x = a[1][1] y = b[1][1] if 'year' in x: if 'year' in y: if x['year'].isdigit(): if y['year'].isdigit(): # x and y have dates xyear = int( x['year'] ) yyear = int( y['year'] ) comp = cmp(xyear, yyear) if comp == 0: return compare_bib_by_author(a,b) else: return (-1)*comp else: # x has date, y not -> y is first return 1 else: if y['year'][0].isdigit(): return -1 else: return compare_bib_by_author(a,b) else: # only x has date return 1 else: if 'year' in y: return -1 else: # neither nor y have dates return compare_bib_by_author(a, b) ##REF: Name was automagically refactored def compare_bib_by_author(a,b): """Sorting helper.""" x = a[1][1] y = b[1][1] if 'author' in x: if 'author' in y: return cmp(join_author_list(x['author']), join_author_list(y['author'])) else: # only x has author return 1 else: if 'author' in y: return -1 else: # neither nor y have authors return 0 ##REF: Name was automagically refactored def format_surname(s, keep_full = False): """Recieves a string with surname(s) and returns a string with nicely concatenated surnames or initals (with dots). """ # clean spaces s = s.strip() # go home if empty if not len(s): return '' if not keep_full: # only keep initial s = s[0] if len(s) == 1: # add final dot s += '.' return s ##REF: Name was automagically refactored def format_author(s, full_surname = False): """ Takes a string as argument an tries to determine the lastname and surname(s) of a single author. Returns a string with 'lastname, surname(s)'. The function takes care of 'von's and other funny prefixes. """ s = s.strip() # nothing? take ball, go home if not len(s): return s if s.count(','): # assume we have 'lastname, surname(s)' slist = s.split(',') # take lastname verbatim lastname = slist[0].strip() # remerge possible surnames with spaces if any surnames = u' '.join(slist[1:]) # get nicely formated surnames concat with spaces surname = u' '.join( [ format_surname(i, full_surname) for i in surnames.split() ] ) else: # assume last entity is lastname the rest is surnames # check for lastname prefixes slist = s.split() if len(slist) < 2: # only lastname -> finished return slist[0] # check for order if len(slist[-1]) == 1 or slist[-1].endswith('.'): # seems like we have lastname->surname order if slist[0] in ('von', 'van'): lastname = slist[0] + ' ' + slist[1] surnames = u' '.join(slist[2:]) else: lastname = slist[0] surnames = u' '.join(slist[1:]) else: # the lastname is last lastname = slist[-1] if slist[-2] in ('von', 'van'): lastname = slist[-2] + u' ' + lastname surnames = u' '.join(slist[:-2]) else: surnames = u' '.join(slist[:-1]) surname = u' '.join( [ format_surname(i, full_surname) for i in surnames.split() ] ) return lastname + u', ' + surname ##REF: Name was automagically refactored def join_author_list(alist): """ Nicely concatenate a list of author with ', ' and a final ' & '. Each author is passed to format_author() internally. """ if not len(alist) > 1: return format_author(alist[0]) ret = u', '.join( [ format_author(a) for a in alist[:-1] ] ) ret += u' & ' + format_author( alist[-1] ) return ret ##REF: Name was automagically refactored def format_property(string, indent, max_length = 80): """ Helper function to place linebreaks and indentation for pretty printing. """ length = len(string) lines = [] pos = 0 while pos < length: if not pos == 0: justify = ''.ljust(indent) line_length = max_length - indent else: justify = '' line_length = max_length if length - pos > line_length: lastspace = string.rfind(' ', pos + 1, pos + line_length) else: lastspace = length if lastspace == -1 or lastspace < indent + 1: lastspace = string.find(' ', pos + line_length) # if no space in the whole string if lastspace == -1: lastspace = length lines.append(justify + string[pos:lastspace]) pos = lastspace + 1 return '\n'.join(lines) class BibTeX(dict): """Read bibtex file as dictionary. Each entry is accessible by its bibtex ID. An entry is a two-tuple `(item_type, dict)`, where `item_type` is eg. article, book, ... and `dict` is a dictionary with all bibtex properties for the respective item. In this dictionary all properties are store as plain strings, except for the list of authors (which is a list of strings) and the pages which is a two-tuple with first and last page. """ def __init__(self, filename = None): if not filename is None: self.open(filename) # spaces to be used for indentation self.indent = 17 # maximum line length self.line_length = 80 def open(self, filename): """Read and parse bibtex file using python-bibtex.""" # figure out what the second argument means file = _bibtex.open_file(filename, 1) while 1: entry = _bibtex.next(file) if entry is None: break eprops = {} for k,v in entry[4].iteritems(): # figure out what the last argument really does # leaving in -1 seems to be save value = _bibtex.expand(file, v, 0)[2] try: value = unicode(value, 'utf-8') except UnicodeDecodeError, e: print "ERROR: Failed to decode string '%s'" % value raise if k.lower() == 'author': value = value.split(' and ') if k.lower() == 'pages': value = tuple(value.replace('-', ' ').split()) eprops[k] = value # bibtex key is dict key self[entry[0]] = (entry[1],eprops) def __str__(self): """Pretty print in bibtex format.""" bibstring = '' for k, v in self.iteritems(): bibstring += '@' + v[0] + ' { ' + k for ek, ev in v[1].iteritems(): if ek.lower() == 'author': ev = ' and '.join(ev) if ek.lower() == 'pages': ev = '--'.join(ev) keyname = ' ' + ek bibstring += ',\n' bibstring += format_property( keyname.ljust(15) + '= {' + ev + '}', self.indent, self.line_length ) bibstring += "\n}\n\n" return bibstring.encode(self.enc) def bib2rst_references(bib): """Compose the reference page.""" # do it in unicode rst = u'' intro = open('doc/misc/references.in').readlines() rst += intro[0] rst += " #\n # THIS IS A GENERATED FILE -- DO NOT EDIT!\n #\n" rst += ''.join(intro[1:]) rst += '\n\n' biblist = bib.items() biblist.sort(compare_bib_by_author) for id, (cat, prop) in biblist: # put reference target for citations rst += '.. _' + id + ':\n\n' # compose the citation as the list item label cit = u'' # initial details equal for all item types if 'author' in prop: cit += u'**' + join_author_list(prop['author']) + u'**' if 'year' in prop: cit += ' (' + prop['year'] + ').' if 'title' in prop: cit += ' ' + smooth_rst(prop['title']) if not prop['title'].endswith('.'): cit += '.' # appendix for journal articles if cat.lower() == 'article': # needs to have journal, volume, pages cit += ' *' + prop['journal'] + '*' if 'volume' in prop: cit += ', *' + prop['volume'] + '*' if 'pages' in prop: cit += ', ' + '-'.join(prop['pages']) elif cat.lower() == 'book': # needs to have publisher, address cit += ' ' + prop['publisher'] cit += ': ' + prop['address'] elif cat.lower() == 'manual': cit += ' ' + prop['address'] elif cat.lower() == 'inproceedings': cit += ' ' + prop['booktitle'] if 'pages' in prop: cit += ', ' + '-'.join(prop['pages']) else: print "WARNING: Cannot handle bibtex item type:", cat cit += '.' # beautify citation with linebreaks and proper indentation # damn, no. list label has to be a single line... :( #rst += format_property(cit, 0) rst += cit # place optional paper summary if 'pymvpa-summary' in prop: rst += '\n *' + format_property(prop['pymvpa-summary'], 2) + '*\n' # make keywords visible if 'pymvpa-keywords' in prop: rst += '\n Keywords: ' \ + ', '.join([':keyword:`' + kw.strip() + '`' for kw in prop['pymvpa-keywords'].split(',')]) \ + '\n' # place DOI link if 'doi' in prop: rst += '\n DOI: ' if not prop['doi'].startswith('http://dx.doi.org/'): rst += 'http://dx.doi.org/' rst += prop['doi'] rst += '\n' # use URL (even if DOI is available -- might lead to a copy outside of the paywall) if 'url' in prop: rst += '\n URL: ' + prop['url'] + '\n' rst += '\n\n' # end list with blank line rst += '\n\n' return rst.encode('utf-8') ##REF: Name was automagically refactored def smooth_rst(s): """Replace problematic stuff with less problematic stuff.""" s = re.sub("``", '"', s) # assuming that empty strings to not occur in a bib file s = re.sub("''", '"', s) return s # do it bib = BibTeX('doc/misc/references.bib') refpage = open('doc/source/references.rst', 'w') refpage.write(bib2rst_references(bib)) refpage.close() pymvpa2-2.6.4/tools/bisect_mtrand.sh000077500000000000000000000010061323370031300174260ustar00rootroot00000000000000#!/bin/bash # This is the script to be used with git bisect to figure out first # commit when testBasic starts to fail # to use it just do # git bisect start yoh/master maint/0.4 -- # git bisect run tools/bisect_mtrand.sh # where yoh/master is known place where that test fails # and maint/0.4 where it doesn't # # it would stop at the first bad commit make clean make || exit 125 # skip commits where build is broken PYTHONPATH=$PWD nosetests mvpa2/tests/test_datameasure.py:SensitivityAnalysersTests.testBasic pymvpa2-2.6.4/tools/build_modref_templates.py000077500000000000000000000010371323370031300213430ustar00rootroot00000000000000#!/usr/bin/env python """Script to auto-generate our API docs.""" import os from apigen import ApiDocWriter if __name__ == '__main__': package = 'mvpa' outdir = os.path.join('build', 'doc', 'modref') docwriter = ApiDocWriter(package, rst_extension='.rst') #docwriter.package_skip_patterns += ['\\.fixes$', # '\\.externals$'] docwriter.write_api_docs(outdir) #docwriter.write_index(outdir, 'gen', relative_to='api') print '%d files written' % len(docwriter.written_modules) pymvpa2-2.6.4/tools/cmdex2rst000077500000000000000000000126421323370031300161220ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to automagically generate ReST versions of cmdline examples""" __docformat__ = 'restructuredtext' import os import sys import re import glob from optparse import OptionParser def exfile2rst(filename): """Open a Python script and convert it into an ReST string. """ # output string s = '' # open source file xfile = open(filename) # parser status vars inexample = False incodeblock = False for line in xfile: if line.startswith('#% EXAMPLE START'): inexample = True continue if line.startswith('#% EXAMPLE END'): break if not inexample: continue if line.startswith('#% '): incodeblock = False s += line[3:] continue if incodeblock: s += ' %s' % line continue # normal line else: if len(line.strip()): incodeblock = True s += '\n.. code-block:: sh\n\n %s' % line xfile.close() return s def exfile2rstfile(filename, opts): """ """ # doc filename dfilename = os.path.basename(filename[:-3]) + '.rst' # open dest file dfile = open(os.path.join(opts.outdir, os.path.basename(dfilename)), 'w') # place header dfile.write('.. AUTO-GENERATED FILE -- DO NOT EDIT!\n\n') # place cross-ref target dfile.write('.. _example_cmdline_' + dfilename[:-4] + ':\n\n') # write converted ReST dfile.write(exfile2rst(filename)) if opts.sourceref: # write post example see also box dfile.write("\n.. seealso::\n The full source code of this example is " "included in the %s source distribution (`%s`).\n" % (opts.project, filename)) dfile.close() def main(): parser = OptionParser( \ usage="%prog [options] [...]", \ version="%prog 0.1", description="""\ %prog converts Python scripts into restructered text (ReST) format suitable for integration into the Sphinx documentation framework. Its key feature is that it extracts stand-alone (unassigned) single, or multiline triple-quote docstrings and moves them out of the code listing so that they are rendered as regular ReST, while at the same time maintaining their position relative to the listing. The detection of such docstrings is exclusively done by parsing the raw code so it is never actually imported into a running Python session. Docstrings have to be written using triple quotes (both forms " and ' are possible). It is recommend that such docstrings are preceded and followed by an empty line. Intended docstring can make use of the full linewidth from the second docstring line on. If the indentation of multiline docstring is maintained for all lines, the respective indentation is removed in the ReST output. The parser algorithm automatically excludes file headers and starts with the first (module-level) docstring instead. """ ) # define options parser.add_option('--verbose', action='store_true', dest='verbose', default=False, help='print status messages') parser.add_option('-x', '--exclude', action='append', dest='excluded', help="""\ Use this option to exclude single files from the to be parsed files. This is especially useful to exclude files when parsing complete directories. This option can be specified multiple times. """) parser.add_option('-o', '--outdir', action='store', dest='outdir', type='string', default=None, help="""\ Target directory to write the ReST output to. This is a required option. """) parser.add_option('--no-sourceref', action='store_false', default=True, dest='sourceref', help="""\ If specified, the source reference section will be suppressed. """) parser.add_option('--project', type='string', action='store', default='', dest='project', help="""\ Name of the project that contains the examples. This name is used in the 'seealso' source references. Default: '' """) # parse options (opts, args) = parser.parse_args() # read sys.argv[1:] by default # check for required options if opts.outdir is None: print('Required option -o, --outdir not specified.') sys.exit(1) # build up list of things to parse toparse = [] for t in args: # expand dirs if os.path.isdir(t): # add all python files in that dir toparse += glob.glob(os.path.join(t, '*.sh')) else: toparse.append(t) # filter parse list if opts.excluded is not None: toparse = [t for t in toparse if not t in opts.excluded] toparse_list = toparse toparse = set(toparse) if len(toparse) != len(toparse_list): print('Ignoring duplicate parse targets.') if not os.path.exists(opts.outdir): os.mkdir(opts.outdir) # finally process all examples for t in toparse: exfile2rstfile(t, opts) if __name__ == '__main__': main() pymvpa2-2.6.4/tools/conv_model2bids.py000066400000000000000000000016031323370031300176770ustar00rootroot00000000000000# convert our old OpenFMRI model info into BIDS events.tsv files import numpy as np conds = {int(d['cond'][-1]): d['name'] for d in np.recfromcsv( 'mvpa2/data/haxby2001/models/model001/condition_key.txt', delimiter=' ', names=('task', 'cond', 'name'))} for run in range(1, 13): evs = [] for c in conds.keys(): onsets = [l.split()[:2] for l in open('mvpa2/data/haxby2001/sub001/model/model001/onsets/task001_run%.3i/cond%.3i.txt' % (run, c))] for o in onsets: evs.append((float(o[0]), float(o[1]), conds[c])) evs = sorted(evs, cmp=lambda x, y: cmp(x[0], y[0])) with open('mvpa2/data/haxby2001/sub001/BOLD/task001_run%.3i/bold_events.tsv' % run, 'w') as evfile: evfile.write('onset\tduration\ttrial_type\n') for ev in evs: evfile.write('%.1f\t%.1f\t%s\n' % ev) pymvpa2-2.6.4/tools/coverage-bin/000077500000000000000000000000001323370031300166155ustar00rootroot00000000000000pymvpa2-2.6.4/tools/coverage-bin/pymvpa2000077500000000000000000000006141323370031300201420ustar00rootroot00000000000000#!/bin/bash # # A little helper to overload default pymvpa2 executable with the one ran # through coverage set -eu curbin=$(which pymvpa2) curdir=$(dirname $curbin) COVERAGE_RUN=${COVERAGE:-python-coverage run} export PATH=${PATH//$curdir:/} newbin=$(which pymvpa2) if [ $newbin = $curbin ]; then echo "E: binary remained the same: $newbin" >&2 exit 1 fi $COVERAGE_RUN -a $newbin "$@" pymvpa2-2.6.4/tools/daily_tests.sh000077500000000000000000000156241323370031300171470ustar00rootroot00000000000000#!/bin/bash # emacs: -*- mode: shell-script; indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=sh sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # Helper to run all the tests daily at night # # Depends: # apt-get install git mime-construct # apt-get build-dep python-mvpa set -e # Not yet can do fine scale unittest separation since maint/0.4, nor # master have it that way... leaving it for future. #MAKE_TESTS="unittest unittest-optimization unittest-debug unittest-badexternals #MAKE_TESTS="unittests testmanual testsuite testapiref testdatadb testsphinx testexamples testcfg" # Unittests to run in all branches TESTS_COMMON="unittests testmanual testsuite testsphinx testexamples testcfg" # Specify the main repository (serves the 'origin') # and additional named clones # Branches will be specified prepended with names of the remotes repo="git://github.com/PyMVPA/PyMVPA.git" remotes="git://github.com/yarikoptic/PyMVPA.git yarikoptic git://github.com/hanke/PyMVPA.git hanke git://github.com/nno/PyMVPA.git nick git://github.com/otizonaizit/PyMVPA.git tiziano" # Associative array with tests lists per branch declare -A TESTS_BRANCHES # stable branches for b in origin/maint/0.4; do #have no datadb and still use epydoc TESTS_BRANCHES["$b"]="$TESTS_COMMON testapiref" done # development branches for b in origin/master yarikoptic/master hanke/master; do TESTS_BRANCHES["$b"]="$TESTS_COMMON testdatadb testourcfg testdocstrings test-prep-fmri" done # Python3 testing -- origin and tiziano TESTS_BRANCHES["origin/master"]+=" unittest-py3" TESTS_BRANCHES["hanke/master"]+=" cmdline_modular" # TESTS_BRANCHES["tiziano/master"]=" unittest-py3" # all known tests TESTS_ALL=`echo "${TESTS_BRANCHES[*]}" | tr ' ' '\n' | sort | uniq` # what branches to test BRANCHES="${!TESTS_BRANCHES[*]}" # where to send reports # hardcode in the bottom #EMAILS='yoh@onerussian.com,michael.hanke@gmail.com' precmd= #precmd="echo C: " ds=`date +"20%y%m%d_%H%M%S"` topdir=$HOME/proj/pymvpa datadbdir=$topdir/datadb logdir="$topdir/logs/daily/pymvpa_tests-$ds" tmpfile="$logdir/tmp.log" logfile="$logdir/all.log" # Remove trap "rm -fr $logdir/PyMVPA $logdir/tmp.log;" EXIT mkdir -p "$logdir" indent() { sed -e 's/^/ /g' } do_checkout() { $precmd git clean -dfx | indent $precmd git reset --hard #if [ ! $branch = 'master' ]; then $precmd git checkout -b $branch origin/$branch || : #fi $precmd git checkout $branch # Clean up again since we might have some directories $precmd git clean -df | indent #provide datadb [ -e "datadb" ] || $precmd ln -s "$datadbdir" . } do_build() { $precmd make clean $precmd make } do_clean() { # verify that cleaning works as desired $precmd make clean $precmd git clean -n | grep -q . \ && { git clean -n; return 1; } \ || return 0 } for c in $TESTS_ALL; do eval "do_$c() { $precmd make $c; }" done # need to override some so they are ran with -k # so we see all that fail for c in testexamples unittests; do eval "do_$c() { $precmd make -k $c; }" done # Counters failed=0 succeeded=0 # skip the tests we can't fully trust to sleep well export MVPA_TESTS_LABILE=no # Lets use backend allowing to draw without DISPLAY export MVPA_MATPLOTLIB_BACKEND=agg blogfiles="" # need to be a function to share global failed/succeded sweep() { echo "I: working in $logdir" cd $logdir echo "I:" $(date) # checkout the repository echo "I: Cloning main repository" $precmd git clone -q $repo 2>&1 | indent $precmd cd PyMVPA # no need to check here since checkout would fail below otherwise echo -n "I: Adding remotes: " echo -en "$remotes\n" | while read rurl rname; do echo -e "$rname" | tr '\n' ' ' git remote add $rname $rurl git fetch -q $rname done echo # just a new line # # Sweep through the branches and actionsto test # branches_with_problems= shashums_visited= for branch in $BRANCHES; do branch_has_problems= blogdir="$logdir/${branch//\//_}" blogfile="$blogdir.txt" # if given branch supports logging of export MVPA_TESTS_LOGDIR=$blogdir mkdir -p $MVPA_TESTS_LOGDIR { echo echo "I: ---------------{ Branch $branch }--------------" for action in checkout build ${TESTS_BRANCHES["$branch"]} clean; do echo -n "I: $action " cmd="do_$action" if $cmd >| $tmpfile 2>&1 ; then echo " ok" succeeded=$(($succeeded+1)) else branch_has_problems+=" $action" failed=$(($failed+1)) echo " ! FAILED ! Output was:" cat $tmpfile | indent fi # provide information in the log about what was current position # in the branch if [ "$action" = "checkout" ]; then echo "I: current position $(git describe)" ref=$(git rev-parse --short HEAD) if echo "$shashums_visited" | grep -q "$ref|" ; then echo "I: skipping since $ref was already tested" break fi shashums_visited+="$ref|" fi done if [ "x$branch_has_problems" != x ]; then branches_with_problems+="\n $branch: $branch_has_problems" echo " D: Reporting WTF due to errors:" # allow for both existing API versions $precmd python -c 'import mvpa2; print mvpa2.wtf()' || \ $precmd python -c 'import mvpa; print mvpa.wtf()' || echo "WTF failed!!!" fi } &> "$blogfile" blogfiles+=" --file-attach $blogfile" done echo "I: Succeeded $succeeded actions, failed $failed actions." if [ "x$branches_with_problems" != x ]; then echo -e "I: Branches which experienced problems: $branches_with_problems" fi echo echo "I:" $(date) echo "I: Exiting. Logfile $logfile" } # Prepare the environment a bit more: # bet is needed for one of the tests [ -e /etc/fsl/fsl.sh ] && source /etc/fsl/fsl.sh sweep >| $logfile 2>&1 # Email only if any test has failed #[ ! $failed = 0 ] && \ # Email always since it is better to see that indeed everything is smooth # and to confirm that it is tested daily #cat $logfile | mail -s "PyMVPA: daily testing: +$succeeded/-$failed" $EMAILS # Email using mime-construct with results per branch in attachements mime-construct --to yoh@onerussian.com --to michael.hanke@gmail.com --to opossumnano@gmail.com \ --to nikolaas.oosterhof@unitn.it \ --subject "PyMVPA: daily testing: +$succeeded/-$failed" \ --file "$logfile" $blogfiles pymvpa2-2.6.4/tools/epydoc000077500000000000000000000022541323370031300154700ustar00rootroot00000000000000#!/usr/bin/python # # Call the command line interface for Epydoc. # # Make sure that we don't get confused between an epydoc.py script and # the real epydoc package. import sys, os.path from docutils.nodes import NodeVisitor NodeVisitor.optional = ('note') if os.path.exists(os.path.join(sys.path[0], 'epydoc.py')): del sys.path[0] from epydoc.cli import cli # suppress multitude of warnings about profile data missing # import warnings # defaul is supposed to print it only once # warnings.simplefilter('default', Warning) # epydoc uses its own # lets override it completely import epydoc.log import os epydoc_warnings = os.environ.get('MVPA_EPYDOC_WARNINGS', 'all').lower() _logged_warnings = set() if epydoc_warnings == 'all': pass elif epydoc_warnings == 'once': warning_orig = epydoc.log.warning def once_warning(*messages): smsg = str(messages) if not (smsg in _logged_warnings): warning_orig(*messages) _logged_warnings.add(smsg) epydoc.log.warning = once_warning elif epydoc_warnings == 'none': epydoc.log.warning = lambda *x:None else: print "ERROR: Unknown control for epydoc warnings %s. " \ "Known are all, once, none" % epydoc_warnings cli() pymvpa2-2.6.4/tools/ex2rst000077500000000000000000000225101323370031300154310ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to automagically generate ReST versions of examples""" __docformat__ = 'restructuredtext' import os import sys import re import glob from optparse import OptionParser def exfile2rst(filename): """Open a Python script and convert it into an ReST string. """ # output string s = '' # open source file xfile = open(filename) # parser status vars inheader = True indocs = False doc2code = False code2doc = False interactiveblock = False preserved_indent = False # an empty line found in the example enables the check for a potentially # indented docstring starting on the next line (as an attempt to exclude # function or class docstrings) last_line_empty = False # indentation of indented docstring, which is removed from the RsT output # since we typically do not want an indentation there. indent_level = 0 for line in xfile: # skip header if inheader and \ not (line.startswith('"""') or line.startswith("'''")): continue # determine end of header if inheader and (line.startswith('"""') or line.startswith("'''")): inheader = False # strip comments and remove trailing whitespace if not indocs and last_line_empty: # first remove leading whitespace and store indent level cleanline = line[:line.find('#')].lstrip() indent_level = len(line) - len(cleanline) - 1 cleanline = cleanline.rstrip() interactiveblock = False else: cleanline = line[:line.find('#')].rstrip() if not indocs and line == '\n': last_line_empty = True else: last_line_empty = False # if we have something that should go into the text if indocs \ or (cleanline.startswith('"""') or cleanline.startswith("'''")): proc_line = None # handle doc start if not indocs: # guarenteed to start with """ if len(cleanline) > 3 \ and (cleanline.endswith('"""') \ or cleanline.endswith("'''")): # single line doc code2doc = True doc2code = True proc_line = cleanline[3:-3] else: # must be start of multiline block interactiveblock = False indocs = True code2doc = True # rescue what is left on the line proc_line = cleanline[3:] # strip """ first_codeline_in_block = False else: # we are already in the docs # handle doc end if cleanline.endswith('"""') or cleanline.endswith("'''"): indocs = False doc2code = True preserved_indent = False # rescue what is left on the line proc_line = cleanline[:-3] # reset the indentation indent_level = 0 else: # has to be documentation # if the indentation is whitespace remove it, other wise # keep it (accounts for some variation in docstring # styles real_indent = \ indent_level - len(line[:indent_level].lstrip()) proc_line = line[real_indent:] if code2doc: code2doc = False s += '\n' if proc_line: s += proc_line.rstrip() + '\n' else: # we are in a code block if line.startswith("if cfg.getboolean('examples', 'interactive'"): interactiveblock = True elif not interactiveblock: # we exclude the code that is used to disable the interactive # plots. if doc2code: doc2code = False first_codeline_in_block = True # the spaces at the end are crucial to get intentation of # indented code block -- otherwise sphinx removes common # whitespace s += '\n::\n' # has to be code leading_whitespace = len(line) > 2 \ and len(line) > len(line.lstrip()) line = line.rstrip() # anything left? if line: if first_codeline_in_block and leading_whitespace \ and not preserved_indent: s += ' »%s\n' % line preserved_indent = True else: s += ' %s\n' % line first_codeline_in_block = False else: s += '\n' xfile.close() return s def exfile2rstfile(filename, opts): """ """ # doc filename dfilename = os.path.basename(filename[:-3]) + '.rst' # open dest file dfile = open(os.path.join(opts.outdir, os.path.basename(dfilename)), 'w') # place header dfile.write('.. AUTO-GENERATED FILE -- DO NOT EDIT!\n\n') # place cross-ref target dfile.write('.. _example_' + dfilename[:-4] + ':\n\n') # write converted ReST dfile.write(exfile2rst(filename)) if opts.sourceref: # write post example see also box dfile.write("\n.. seealso::\n The full source code of this example is " "included in the %s source distribution (`%s`).\n" % (opts.project, filename)) dfile.close() def main(): parser = OptionParser( \ usage="%prog [options] [...]", \ version="%prog 0.1", description="""\ %prog converts Python scripts into restructered text (ReST) format suitable for integration into the Sphinx documentation framework. Its key feature is that it extracts stand-alone (unassigned) single, or multiline triple-quote docstrings and moves them out of the code listing so that they are rendered as regular ReST, while at the same time maintaining their position relative to the listing. The detection of such docstrings is exclusively done by parsing the raw code so it is never actually imported into a running Python session. Docstrings have to be written using triple quotes (both forms " and ' are possible). It is recommend that such docstrings are preceded and followed by an empty line. Intended docstring can make use of the full linewidth from the second docstring line on. If the indentation of multiline docstring is maintained for all lines, the respective indentation is removed in the ReST output. The parser algorithm automatically excludes file headers and starts with the first (module-level) docstring instead. """ ) # define options parser.add_option('--verbose', action='store_true', dest='verbose', default=False, help='print status messages') parser.add_option('-x', '--exclude', action='append', dest='excluded', help="""\ Use this option to exclude single files from the to be parsed files. This is especially useful to exclude files when parsing complete directories. This option can be specified multiple times. """) parser.add_option('-o', '--outdir', action='store', dest='outdir', type='string', default=None, help="""\ Target directory to write the ReST output to. This is a required option. """) parser.add_option('--no-sourceref', action='store_false', default=True, dest='sourceref', help="""\ If specified, the source reference section will be suppressed. """) parser.add_option('--project', type='string', action='store', default='', dest='project', help="""\ Name of the project that contains the examples. This name is used in the 'seealso' source references. Default: '' """) # parse options (opts, args) = parser.parse_args() # read sys.argv[1:] by default # check for required options if opts.outdir is None: print('Required option -o, --outdir not specified.') sys.exit(1) # build up list of things to parse toparse = [] for t in args: # expand dirs if os.path.isdir(t): # add all python files in that dir toparse += glob.glob(os.path.join(t, '*.py')) else: toparse.append(t) # filter parse list if opts.excluded is not None: toparse = [t for t in toparse if not t in opts.excluded] toparse_list = toparse toparse = set(toparse) if len(toparse) != len(toparse_list): print('Ignoring duplicate parse targets.') if not os.path.exists(opts.outdir): os.mkdir(opts.outdir) # finally process all examples for t in toparse: exfile2rstfile(t, opts) if __name__ == '__main__': main() pymvpa2-2.6.4/tools/fillin_states000077500000000000000000000055331323370031300170500ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """""" __docformat__ = 'restructuredtext' if not __name__ == "__main__": raise ValueError, "Go away -- nothing to look here for as a module" import sys, os, re from optparse import OptionParser from os import environ, path from textwrap import wrap from mvpa2.base import verbose from mvpa2.misc.cmdline import parser, opts parser.usage = """Usage: %s [options] infile outfile...""" % sys.argv[0] parser.option_groups = [opts.common] (options, files) = parser.parse_args() if len(files)!=2: print "Need input and output files" sys.exit(1) if files[0] == files[1]: print "For now provide two different names" sys.exit(1) infile = open(files[0], 'r') inlines = infile.readlines() infile.close() outlines = [] reg = re.compile('^.. autoconditional: +(?P\S*) +(?P\S*)') i = 0 while i < len(inlines): line = inlines[i] i += 1 outlines.append(line) reg_res = reg.search(line) if not reg_res: continue else: verbose(2, "Line: %s" % line) d = reg_res.groupdict() # import asked module exec "from mvpa2.%s import %s as Victim" % (d['path'], d['cls']) ca = Victim._collections_template['ca'].items keys = ca.keys() keys.sort() isthere = inlines[i+1].startswith("Supported st") suffix = ['', 's'][len(keys)>1] outlines.append(""" Supported conditional attribute%s: ================== ============================================== ========= Name Description Default ------------------ ---------------------------------------------- --------- """%suffix) for k in keys: verbose(3, " " + k) v = ca[k] doc = v.__doc__ if not doc.endswith('.'): doc += '.' doc = wrap(doc, 46) k, e = k[:], ['Disabled', 'Enabled'][v.enabled] for d in doc: new_line = "%-19s %-46s %s" % \ (k, d, e) k, e = "", "" outlines.append(new_line.rstrip()+"\n") outlines.append("""================== ============================================== =========\n""") if isthere: count = 0 # aborb "older" lines until we hit good one while count < 2: count += inlines[i].startswith('======') i += 1 outfile = open(files[1], 'w') [outfile.write(x) for x in outlines] outfile.close() pymvpa2-2.6.4/tools/gen_testing_tutorial_data000077500000000000000000000044011323370031300214230ustar00rootroot00000000000000#!/bin/bash # emacs: -*- mode: shell-script; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- # vi: set ft=sh sts=4 ts=4 sw=4 noet: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## set -e _error() { echo "E: $@" exit 1 } _info() { echo "I: $@" } _resample() { infile="$1" res=$2 out="$3" if echo $infile | grep -q 'mask_'; then interp=NN else interp=Linear fi _info "Resampling $infile using $interp interpolation for resolution $res" # for _hoc we need to run up *forms first if echo $infile | grep -q '_hoc.nii.gz'; then _info "Tuning up $infile q/s-forms" python -c "if True: import nibabel as nib; vt=nib.load('${infile/_hoc/_vt}'); hoc=nib.load('${infile}'); hoc.set_qform(vt.get_qform()); hoc.set_sform(vt.get_sform()); hoc.to_filename('$tempd/temp-hoc.nii.gz');" infile=$tempd/temp-hoc.nii.gz fi 3dresample -dxyz $res $res $res -prefix $tempd/temp -rmode $interp \ -inset $infile outfile=$(/bin/ls $tempd/temp+*.BRIK) outprefix=${outfile//.BRIK/} 3dAFNItoNIFTI -prefix $out $outprefix nib-ls -v -s $out rm -f $tempd/temp* } # resolution in mm res=25 tempd=$(mktemp -d) mkdir -p $tempd _info "Temporary dir: $tempd" dataroot=${MVPA_DATA_ROOT:-"datadb/tutorial_data/tutorial_data/data"} # dataroot_test=mvpa2/data/tutorial_data_masked/data dataroot_test=mvpa2/data/tutorial_data_${res}mm/data #mask_file=$1 #_info "Using maskfile $mask_file to mask all tutorial_data NIfTIs" #[ ! -z "$FSLDIR" ] || source /etc/fsl/fsl.sh source /etc/afni/afni.sh set -u # [ -e "$mask_file" ] || _error "Mask file $mask_file not found" [ -e mvpa2/__init__.py ] || _error "Must be run in top directory of PyMVPA project" mkdir -p $dataroot_test _info "Copying regular files under $dataroot_test" cp $dataroot/*.{txt,par} $dataroot_test/ for f in $dataroot/*.nii.gz; do # if echo $f | grep -q 'anat.*\.nii\.gz'; then # _info "Copying $f as is" # cp $f $dataroot_test # else # _info "Masking $f" # fslmaths $f -mas $mask_file $dataroot_test/$(basename $f) # fi _resample $f $res $dataroot_test/$(basename $f) done rm -rf $tempdpymvpa2-2.6.4/tools/make_release.sh000077500000000000000000000003371323370031300172330ustar00rootroot00000000000000#!/usr/bin/env bash set -eu newver=$1 oldver=`PYTHONPATH=. python -c 'import mvpa2; print(mvpa2.__version__)'` sed -i -e "s,$oldver,$newver,g" mvpa2/__init__.py sed -i -e "s, version='.*, version='$newver'\,,g" setup.pypymvpa2-2.6.4/tools/mpkg_wrapper.py000066400000000000000000000015531323370031300173300ustar00rootroot00000000000000# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Simple wrapper to use setuptools extension bdist_mpkg with PyMVPA distutils setup.py. This script is a minimal version of a wrapper script shipped with the bdist_mpkg packge. """ __docformat__ = 'restructuredtext' import sys import setuptools import bdist_mpkg def main(): del sys.argv[0] sys.argv.insert(1, 'bdist_mpkg') g = dict(globals()) g['__file__'] = sys.argv[0] g['__name__'] = '__main__' execfile(sys.argv[0], g, g) if __name__ == '__main__': main() pymvpa2-2.6.4/tools/pdfbook.c000066400000000000000000000223721323370031300160520ustar00rootroot00000000000000/* * pdfbook.c Rearrange pages in a PDF file into signatures. * * Authors: Tigran Aivazian * Jaap Eldering * Roman Buchert * Pierre Francois * * Based on the algorithm from psutils/psbook.c, which was * written by Angus J. C. Duggan 1991-1995. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * 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, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * */ #include #include #include #include #include #include #define TMP_INFILE_BASE "input" #define TMP_OUTFILE_BASE "output" #define DEF_PAPERSIZE "a4" char *program; static void usage(void) { fprintf(stderr, "Usage: %s [OPTION]... infile outfile\n" " or: %s [-q] [-p ] -o infile outfile\n" "Rearrange pages for printing as booklet.\n\n" "Options:\n" " -q suppress verbose output\n" " -d debug mode: do not cleanup temporary files\n" " -2 place 2 pages on 1 page of output\n" " -s group pages together in groups of size \n" " must be positive and divisible by 4\n" " -r reduce the last book to minimum required number of pages\n" " -p set the paper size to: a3, a4, a5, b3, b4, b5, letter, legal\n" " or executive (default is determined from infile, %s if unknown)\n" " -o pass directly to LaTeX pdfpages `includepdf' command\n" " see the pdfpages package documentation for possible options\n", program, program, DEF_PAPERSIZE); fflush(stderr); exit(1); } char *alloc_and_copy (char *str) { char *new_str; if ( (new_str = strdup(str)) == NULL ) { fprintf(stderr, "%s: error allocating memory\n", program); exit(1); } return (new_str); } int check_papersize (char *p) { if ((strlen(p) == 2) && ((*p == 'a') || (*p == 'b')) && ((p[1] >= '3') && (p[1] <= '5'))) { return (1); /* a3, a4, a5, b3, b4 or b5 */ } if ((strcmp(p, "letter") == 0) || (strcmp(p, "legal") == 0) || (strcmp(p, "executive") == 0)) { return (1); /* letter, legal or executive */ } return (0); /* invalid paper size */ } char *make_tempdir() { static char dirtemplate[L_tmpnam+10]; char *dirname; if ( (dirname = tempnam(NULL, "pdfbk")) == NULL ) { fprintf(stderr, "%s: error generating temporary directory\n", program); exit(1); } strcpy(dirtemplate, dirname); strcat(dirtemplate, "XXXXXX"); if ( (dirname = mkdtemp(dirtemplate)) == NULL ) { fprintf(stderr, "%s: error generating temporary directory\n", program); exit(1); } return dirname; } char *allocstr(char *format, ...) { va_list ap; char *str; char tmp[2]; int len, n; va_start(ap,format); len = vsnprintf(tmp,1,format,ap); va_end(ap); if ( (str = (char *) malloc(len+1))==NULL ) return NULL; va_start(ap,format); n = vsnprintf(str,len+1,format,ap); va_end(ap); if ( n==-1 || n>len ) { fprintf(stderr, "%s: error allocating memory\n", program); exit(1); } return str; } int main(int argc, char *argv[]) { char *infile = NULL; char *outfile = NULL; char *tmpdir; char *tmptexfile; char *tmpinfile; char *tmpoutfile; FILE *fp, *fout; int *actualpg; static char cmdline[1024]; int quiet = 0; int debug = 0; int nup = 0; int pdfcustom = 0; int signature = 0; int reducelastbook = 0; int npages = 0; int maxpage; int completebooks = 0; int restpages = 0; int restsignature = 0; char *pdfcustom_str = NULL; char *papersize_str = NULL; char origpapersize[32]; int i, c; program = argv[0]; tmpdir = make_tempdir(); while ( (c = getopt(argc, argv, "2qds:o:p:r")) != -1 ) { switch (c) { case 's': signature = atoi(optarg); if (signature < 1 || signature % 4) usage(); break; case 'r': reducelastbook = 1; break; case '2': nup = 1; break; case 'o': pdfcustom = 1; pdfcustom_str = alloc_and_copy(optarg); break; case 'p': papersize_str = alloc_and_copy(optarg); if (check_papersize(papersize_str) == 0) { fprintf(stderr, "%s: bad paper size `%s'\n", program, papersize_str); usage (); } break; case 'q': quiet = 1; break; case 'd': debug = 1; break; default: usage(); } } if ( optind /dev/null 2>&1 < /dev/null", tmpdir, tmptexfile); if (system(cmdline)) { fprintf(stderr, "%s: Failed to generate output, see \"%s/%s.log\" for details\n", program, tmpdir, TMP_OUTFILE_BASE); exit(1); } sprintf(cmdline, "cp %s %s", tmpoutfile, outfile); if (system(cmdline)) { fprintf(stderr, "%s: Failed to write \"%s\" file\n", program, outfile); exit(1); } if (!debug) { sprintf(cmdline, "rm -rf %s", tmpdir); system(cmdline); } return 0; } pymvpa2-2.6.4/tools/profile000077500000000000000000000133141323370031300156440ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """A little helper to profile python code: does profiling and visualization. Relies on hotshot profile profiling, hotshot2calltree to convert to kcachegrind format, and finally runs kcachegrind on it. TODO: redo -- script got aged too much. """ __docformat__ = 'restructuredtext' import sys, os from optparse import OptionParser from os import environ, path from mvpa2.base.verbosity import LevelLogger from mvpa2.misc.cmdline import opt if __name__ == "__main__": usage = """Usage: %s [options] ... """ % sys.argv[0] # default options convert2kcache = True displaykcachegrinder = True printstats = False pfilename = None pstatsfilename = None profilelines = True profilelevel = 10 # how many most hungry to list in stats run = True # either to run profiling at all run_main = False verbose = LevelLogger(handlers=[sys.stderr]) verbose.level = 1 # do we need to know lots by default? :-) verbose.indent = '> ' # to discriminate easily with program output verbose(2, "Initial cmdline params: %s" % `sys.argv`) removed = sys.argv.pop(0) verbose(3, "Removed %s" % removed) verbose(3, "Remained ", sys.argv) if not len(sys.argv): verbose(0, "No python module to profile specified.") print usage sys.exit(1) while sys.argv[0].startswith('-'): if sys.argv[0] in ["-v", "--verbose"]: verbose.level = int(sys.argv[1]) sys.argv.pop(0) elif sys.argv[0] in ["-m", "--run-main"]: run_main = True elif sys.argv[0] in ["-l", "--level"]: profilelevel = int(sys.argv[1]) sys.argv.pop(0) elif sys.argv[0] in ["-o", "--output-file"]: pfilename = sys.argv[1] sys.argv.pop(0) elif sys.argv[0] in ["-O", "--output-statsfile"]: pstatsfilename = sys.argv[1] sys.argv.pop(0) elif sys.argv[0] in ["-s", "--stats"]: printstats = True verbose(2, "Enabling printing stats") convert2kcache = False displaykcachegrinder = False verbose(2, "Disabling conversion to kcache") elif sys.argv[0] in ["-n", "--no-run"]: run = False verbose(2, "Disabling running main. Just do conversions and stats") elif sys.argv[0] in ["-P", "--no-profilelines"]: profilelines = False verbose(2, "Disabling profiling lines") elif sys.argv[0] in ["-K", "--no-kcache"]: convert2kcache = False displaykcachegrinder = False verbose(2, "Disabling conversion to kcache") else: verbose(0, "UNKNOWN parameter %s. Exiting" % sys.argv[0]) print usage sys.exit(1) sys.argv.pop(0) cmdname = sys.argv[0] dirname = path.dirname(cmdname) (cmdname_root, ext) = path.splitext(path.basename(cmdname)) verbose(2, "Adding '%s' to sys.path " % dirname) sys.path.append(dirname) verbose(3, "sys.path is %s " % `sys.path`) # now do profiling import hotshot if pfilename is None: pfilename = cmdname + ".prof" if run: verbose(2, "Creating profiler instance") prof = hotshot.Profile(pfilename, lineevents=profilelines) if run_main: verbose(1, "Importing %s " % cmdname_root) try: exec "import %s as runnable" % cmdname_root except SystemExit: pass if not 'main' in runnable.__dict__: verbose(0, "OOPS: file/module %s has no function main defined" \ % cmdname) sys.exit(1) try: # actually return values are never setup # since unittest.main sys.exit's verbose(1, "Calling main() with a profiler") results = prof.runcall( runnable.main ) verbose(4, "Results of profiler call are %s" % `results`) except SystemExit: pass else: prof.run(''.join(open(cmdname, 'r').readlines())) verbose(1, "Running whole module/script with a profiler") verbose(1, "Saving profile data into %s" % pfilename) prof.close() verbose(2, "Closed profiler") if printstats or pstatsfilename: import hotshot.stats verbose(1, "Loading profile file to print statistics") stats = hotshot.stats.load(pfilename) if printstats: stats.strip_dirs() stats.sort_stats('time', 'calls') stats.print_stats(profilelevel) if pstatsfilename: stats.dump_stats(pstatsfilename) kfilename = pfilename + ".kcache" if convert2kcache: cmd = "hotshot2calltree -o %s %s" % (kfilename, pfilename) verbose(1, "Converting to kcache") verbose(3, "Calling '%s'" % cmd) if os.system(cmd): verbose(0, "!!! Make sure to install kcachegrind-converters ;-)") sys.exit(1) if displaykcachegrinder: verbose(1, "Running kcachegrind") if os.system('kcachegrind %s' % kfilename): verbose(0, "!!! Make sure to install kcachegrind ;-)") sys.exit(1) else: print "Go away -- nothing to look here for as a module" pymvpa2-2.6.4/tools/refactor.sh000077500000000000000000000025161323370031300164240ustar00rootroot00000000000000#!/bin/bash # emacs: -*- mode: shell-script; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- # vi: set ft=sh sts=4 ts=4 sw=4 noet: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## git grep -l mvpa | grep -v refactor | \ xargs sed -i \ -e 's,optHelp,opt.help,g' \ -e "s,optVerbose,opt.verbose,g" \ -e "s,optClf,opt.clf,g" \ -e "s,optRadius,opt.radius,g" \ -e "s,optKNearestDegree,opt.knearestdegree,g" \ -e "s,optSVMC,opt.svm_C,g" \ -e "s,optSVMNu,opt.svm_nu,g" \ -e "s,optSVMGamma,opt.svm_gamma,g" \ -e "s,optCrossfoldDegree,opt.crossfolddegree,g" \ -e "s,optZScore,opt.zscore,g" \ -e "s,optTr,opt.tr,g" \ -e "s,optDetrend,opt.detrend,g" \ -e "s,optBoxLength,opt.boxlength,g" \ -e "s,optBoxOffset,opt.boxoffset,g" \ -e "s,optChunk,opt.chunk,g" \ -e "s,optChunkLimits,opt.chunklimits,g" \ -e "s,optsCommon,opts.common,g" \ -e "s,optsKNN,opts.KNN,g" \ -e "s,optsSVM,opts.SVM,g" \ -e "s,optsGener,opts.general,g" \ -e "s,optsPreproc,opts.preproc,g" \ -e "s,optsBox,opts.box,g" \ -e "s,optsChunk,opts.chunk,g" ## Uncomment and move up any additional refactorings which needed # -e 's,training_stats,stats,g' pymvpa2-2.6.4/tools/refactor_0.5.sh000077500000000000000000000173241323370031300170110ustar00rootroot00000000000000#!/bin/bash set -eu files=$* if [ -z "$files" ]; then echo "No file names were provided, trying all non-binary files under git control" files=$(git grep -l . | grep -v -e Binary -e refactor_ -e Changelog) if [ -z "$files" ]; then echo "No files were found under git, exiting" exit 1 fi fi echo "Replacing known patters" echo \ "absminDistance absmin_distance _accessKohonen _access_kohonen aggregateFeatures aggregate_features asDescreteTime as_descrete_time asstring as_string autoNullDist auto_null_dist auxBasic aux_basic buildStreamlineThings build_streamline_things buildVectorBasedPM build_vector_based_pm cartesianDistance cartesian_distance _checkRange _check_range checkRange check_range _checkValues _check_values _checkVersion _check_version chirpLinear chirp_linear _closeOpenedHandlers _close_opened_handlers coarsenChunks coarsen_chunks collectNoseTests collect_nose_tests collectTestSuites collect_test_suites compareBibByAuthor compare_bib_by_author compareBibByDate compare_bib_by_date _computeInfluenceKernel _compute_influence_kernel _computeRecon _compute_recon convert2SVMNode seq_to_svm_node _customizeDoc _customize_doc _debugCallback _debug_callback _demeanData _demean_data doubleArray2List double_array_to_list doubleArray double_array doubleGammaHRF double_gamma_hrf dumbFeatureBinaryDataset dumb_feature_binary_dataset dumbFeatureDataset dumb_feature_dataset enhancedDocString enhanced_doc_string FirstAxisMean first_axis_mean FirstAxisSumNotZero first_axis_sum_not_zero formatAuthor format_author formatProperty format_property formatSurname format_surname __forwardMultipleLevels __forward_multiple_levels __forwardSingleLevel __forward_single_level freeDoubleArray free_double_array freeIntArray free_int_array generateFromXML from_xml generateSummary get_summary getAsDType get_as_dtype _getAttrib _get_attrib _getBMU _get_bmu getBreakPoints get_break_points _getCvec _get_cvec getData get_data getDataT get_data_t _getDefaultC _get_default_c getEV get_ev _getFeatureIds _get_feature_ids getFullMatrix get_full_matrix _getGroup _get_group _getHandlers _get_handlers _getIndexes _get_indexes getLabels get_labels getLabels_map get_labels_map _getLevelsDict _get_levels _getLevelsDict_virtual _get_levels_virtual _getLevels _get_selected_levels getMajorityVote get_majority_vote getMap get_map getMaps get_maps getMetric get_metric getMVPattern get_mv_pattern getNeighbor get_neighbor _getNElements _get_n_elements _getNLevels _get_n_levels _getNLevelsVirtual _get_n_levels_virtual getNRClass get_nr_class getNSV get_n_sv _getRecon _get_recon getRho get_rho getSamplesPerChunkLabel get_samples_per_chunk_target getSensitivityAnalyzer get_sensitivity_analyzer _getSplitConfig _get_split_config getSVCoef get_sv_coef getSV get_sv getSVRPdf get_svr_pdf getSVRProbability get_svr_probability getTotalNSV get_total_n_sv getTriangle get_triangle _getUniqueLengthNCombinations_binary unique_combinations getUniqueLengthNCombinations unique_combinations _getUniqueLengthNCombinations_lt3 unique_combinations getVectorForm get_vector_form getWeightedVote get_weighted_vote GrandMean grand_mean indentDoc indent_doc intArray2List int_array_to_list intArray int_array inverseCmap inverse_cmap isInVolume is_in_volume isSorted is_sorted isTrained is_trained joinAuthorList join_author_list L1Normed l1_normed L2Normed l2_normed labelPoint label_point labelVoxel label_voxel leastSqFit least_sq_fit levelsListing levels_listing levelType level_type loadAtlas load_atlas _loadData _load_metadata _loadFile _load_file _loadImages _load_images mahalanobisDistance mahalanobis_distance makeFlobs make_flobs manhattenDistance manhatten_distance matchDistribution match_distribution meanPowerFx mean_power_fx MNI2Tal_Lancaster07FSL mni_to_tal_lancaster07_fsl MNI2Tal_Lancaster07pooled mni_to_tal_lancaster07pooled MNI2Tal_MeyerLindenberg98 mni_to_tal_meyer_lindenberg98 MNI2Tal_YOHflirt mni_to_tal_yohflirt multipleChunks multiple_chunks myFirstPage my_first_page myLaterPages my_later_pages Nlevels nlevels normalFeatureDataset normal_feature_dataset oneMinusCorrelation one_minus_correlation OneMinus one_minus parsedCoordinatesIterator parsed_coordinates_iterator parseStatus parse_status percentCorrect percent_correct plotBars plot_bars plotDatasetChunks plot_dataset_chunks plotDecisionBoundary2D plot_decision_boundary_2d plotDistributionMatches plot_distribution_matches plotERP plot_erp plotERPs plot_erps plotErrLine plot_err_line plotFeatureHist plot_feature_hist plotHeadOutline plot_head_outline plotHeadTopography plot_head_topography plotMRI plot_lightbox plotProjDir plot_proj_dir plotSamplesDistance plot_samples_distance predictProbability predict_probability predictValues predict_values predictValuesRaw predict_values_raw prepParser prep_parser presentLabels present_labels pureMultivariateSignal pure_multivariate_signal _pythonStepwiseRegression _python_stepwise_regression RankOrder rank_order registerMetric register_metric removeInvariantFeatures remove_invariant_features __resetChangedData __reset_changed_data reuseAbsolutePath reuse_absolute_path ReverseRankOrder reverse_rank_order __reverseSingleLevel __reverse_single_level RFEHistory2maps rfe_history_to_maps ROCs rocs rootMeanPowerFx root_mean_power_fx runNoseTests run_nose_tests runTests run_tests SecondAxisMaxOfAbs REFACTOR_USE_FXMAPPERS SecondAxisMean REFACTOR_USE_FXMAPPERS SecondAxisSumOfAbs REFACTOR_USE_FXMAPPERS selectOut select_out selectSamples select_samples selectVoxelsFromVolumeIteratorNumPY select_from_volume_iterator setActiveFromString set_active_from_string _setActive _set_active _setAnalyzers _set_analyzers _setClassifier _set_classifier _setClassifiers _set_classifiers setCoordT set_coordT setDistance set_distance _setFElements _set_f_elements _setHandlers _set_handlers _setIndent _set_indent setLabels_map set_labels_map _setLevel _set_level _setMaxCount _set_max_count _setMode _set_mode _setNElements _set_n_elements setNPerLabel set_n_per_label _setOffsetByDepth _set_offset_by_depth _setParameter _set_parameter _setPrintsetid _set_printsetid setReferenceLevel set_reference_level _setRetrainable _set_retrainable _setStrategy _set_strategy _setTail _set_tail setTestDataset set_test_dataset singleGammaHRF single_gamma_hrf sinModulated sin_modulated smoothRsT smooth_rst spaceFlavor space_flavor splitDataset split_dataset substractBaseline substract_baseline Tal2MNI_Lancaster07FSL tal_to_mni_lancaster07_fsl Tal2MNI_Lancaster07pooled tal_to_mni_lancaster07pooled Tal2MNI_YOHflirt tal_to_mni_yohflirt testAllDependencies check_all_dependencies _testCompareToOld _test_compare_to_old __testFSPipelineWithAnalyzerWithSplitClassifier __test_fspipeline_with_split_classifier __testMatthiasQuestion __test_matthias_question _testOnSwaroopData _test_on_swaroop_data toEvents to_events toRealSpace to_real_space toVoxelSpace to_voxel_space transformWithBoxcar transform_with_boxcar _verboseCallback _verbose_callback __wasDataChanged __was_data_changed _waveletFamilyCallback _wavelet_family_callback nperlabel npertarget roisizes roi_sizes xuniqueCombinations xunique_combinations |model='linear' polyord=1 |baselinetargets= param_est=('targets'\\\,) targetdtype dtype detrend poly_detrend nifti_dataset fmri_dataset" | \ while read old new; do echo -en "\r$old " # def definition grep -l "def *$old" $files | xargs -r sed -i -e "s,^\( *\)\(def *$old*\)(,\1##REF: Name was automagically refactored\n\1def $new(,g" # occurances if [ "${old:0:1}" = '|' ]; then old="${old:1}" # we got a complete regexp -- no need to guard grep -l "$old" $files | xargs -r sed -i -e "s,$old,$new,g" && echo -n "" || : else # we got a word expression -- need to guard on the boundaries grep -l "\<$old\>" $files | xargs -r sed -i -e "s,\<$old\>,$new,g" && echo -n "" || : fi done echo -e "\rDONE " pymvpa2-2.6.4/tools/refactor_parameters.py000077500000000000000000000041341323370031300206630ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """A little helper to convert docstrings from epydoc/rest to match numpy convention """ import sys, re fname = sys.argv[1] mappings = {':Parameters?:': 'Parameters', ':Examples?:': 'Examples', ':Raises:': 'Raises', '.. note::': 'Notes', '.. seealso::': 'See Also', ':Returns:': 'Returns'} alltext = ''.join(open(fname).readlines()) counts = {} for mn, mt in mappings.iteritems(): reparam = re.compile('(?P\n *)(?P
    ' + mn + ')(?P\n.*?(?:\n\s*\n|"""))', flags=re.DOTALL) count = 0 #for i in [1,2]:# while True: res = reparam.search(alltext) if not res: break #print ">", res.group(), "<" resd = res.groupdict() s, e = res.start(), res.end() # Lets adjust alltext body = resd['body'] for i in xrange(2): body = body.replace(resd['spaces'] + ' ', resd['spaces']) # if any 4-spaces survived # body = body.replace(resd['spaces'] + ' ', resd['spaces'] + ' ') body = body.replace('``', '`') body = re.sub(' *\| *', ' or ', body) body = body.replace('basestring', 'str') body = body.replace('basestr', 'str') adjusted = resd['spaces'] + mt + resd['spaces'] \ + '-'*len(mt) + body #remove Cheap initialization. #print "Converted >%s< to >%s<" % (res.group(), adjusted) alltext = alltext[:s] + adjusted + alltext[e:] count += 1 counts[mn] = count print "File %s: %s" % ( fname, ', '.join(['%s: %i' % i for i in counts.items() if i[1]])) file(fname, 'w').write(alltext) pymvpa2-2.6.4/tools/refactor_unittestdefs.sh000077500000000000000000000017601323370031300212250ustar00rootroot00000000000000#!/bin/bash # silly script to refactor unittest method names from camelcase for i in {1..10}; do sed -i -e 's/\(def *test[^(]*\)\([A-Z]\)/\1\L_\2\E/g' test*py; done sed -i \ -e 's/_p_norm/_pnorm/g' \ -e 's/_a_a_c/_aac/g' \ -e 's/_a_c_c/_acc/g' \ -e 's/_k_n_n/_knn/g' \ -e 's/_a_u_c/_auc/g' \ -e 's/_s_v_m/_svm/g' \ -e 's/_s_v_d/_svd/g' \ -e 's/_w_d_m/_wdm/g' \ -e 's/_r_o_i/_roi/g' \ -e 's/_p_l_r/_plr/g' \ -e 's/_e_n_e_t/_enet/g' \ -e 's/_s_m_l_r/_smlr/g' \ -e 's/_l_a_r_s/_lars/g' \ -e 's/_e_e_p/_eep/g' \ -e 's/_i_f_s/_ifs/g' \ -e 's/_r_f_e/_rfe/g' \ -e 's/_g_l_m_n_e_t/_glmnet/g' \ -e 's/_g_l_m/_glm/g' \ -e 's/_g_n_b/_gnb/g' \ -e 's/_b_v_r_t_c/_bv_rtc/g' \ -e 's/__nones/_nones/g' \ -e 's/_e_v/_ev/g' \ -e 's/_l_f/_lf/g' \ -e 's/_c_r/_cr/g' \ -e 's/_w_p/_wp/g' \ -e 's/_s_g/_sg/g' \ -e 's/_c_v/_cv/g' \ -e 's/_e_r/_er/g' \ -e 's/_m_e_g/_meg/g' \ -e 's/_s_o_m/_som/g' \ -e 's/_s_o_m/_som/g' \ -e 's/pnorm_wpython/pnorm_w_python/g' \ -e 's/_p_p_f/_ppf/g' test*py sed -i -e 's/glmnet__/glmnet_/g' test*py pymvpa2-2.6.4/tools/rst2ipnbpy000077500000000000000000000452641323370031300163310ustar00rootroot00000000000000#!/usr/bin/env python # emacs: -*- coding: utf-8; mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Helper to convert ReST Sphinx documents into IPython notebooks""" __docformat__ = 'restructuredtext' import sys import os import re from docutils.core import publish_doctree from doctest import script_from_examples, DocTestParser import json from copy import deepcopy from optparse import OptionParser # regexp to skip nodes content of which matches _re_skip = re.compile('This tutorial part is also available.*IPython notebook') def prep_rest(rest): # implementing above in python 2.6 compatible fashion # which lacks flags keyword argument for re.subn # We will first replace all newlines with a unique %%% # which we will use as a new line symbol in our expressions # Replace \n with some unique line which is unlikely to appear at the endof the line NL = "" assert(not NL in rest) # at least some checking doc = rest.replace('\n', NL) doc, _ = re.subn(r'%s.. index.*?%s' % (NL, NL), '', doc) # fold text roles inside to turn them into a ref subns = 1 while not subns == 0: doc, subns = re.subn(r':([a-z]+):`(.*)`', '`:\\1:\\2`', doc) doc = doc.replace(NL, '\n') # NL back return doc class ReST2IPyNB(object): ipynb_template = { "metadata": {"name": ""}, "nbformat": 3, "nbformat_minor": 0, "worksheets": [{"cells": [], "metadata": {}}] } codecell_template = { "cell_type": "code", "collapsed": False, "input": [], "language": "python", "metadata": {}, "outputs": [] } markdowncell_template = { "cell_type": "markdown", "metadata": {}, "source": [] } headingcell_template = { "cell_type": "heading", "level": None, "metadata": {}, "source": [] } def __init__(self, baseurl='', apiref_baseurl='', glossary_baseurl='', doctree_parser_settings=None): self._doctree_parser_settings = None if doctree_parser_settings is None: # shut up self._doctree_parser_settings = {'report_level': 5} self._baseurl = baseurl self._apiref_baseurl = apiref_baseurl self._glossary_baseurl = glossary_baseurl self._doctest_parser = DocTestParser() self._reset_state() def _reset_state(self): self._state = {'sec_depth': 1, 'indent': 0, 'in_markdowncell': False, 'need_new_codecell': False, 'need_hanging_indent': False} self._currcell = None self._buffer = '' self._notebook = None self._filename = None def __call__(self, filename): self._filename = filename rest = open(filename).read() doc = prep_rest(rest) self._notebook = deepcopy(ReST2IPyNB.ipynb_template) doctree = publish_doctree( doc, settings_overrides=self._doctree_parser_settings) self._currcells = self._notebook['worksheets'][0]['cells'] self._parse(doctree) self._store_currcell() notebook = self._notebook self._reset_state() return notebook def _ref2apiref(self, reftext): apiref_baseurl = self._apiref_baseurl # try to determine what kind of ref we got if reftext.startswith(':'): rtype, ref = re.match(':([a-z]+):(.*)', reftext).groups() else: rtype = None ref = reftext if rtype is None: # function? if ref.endswith('()'): rtype = 'func' ref = ref[:-2] refid = ref.lstrip('~').rstrip('()') if rtype == 'meth': ref_url = '%s/%s.html#%s' % (apiref_baseurl, '.'.join(refid.split('.')[:-1]), refid) else: ref_url = '%s/%s.html#%s' % (apiref_baseurl, refid, refid.replace('.', '-').replace('_', '-').lower()) ref_label = None if ref.startswith('~'): if rtype == 'meth': ref_label = '%s()' % '.'.join(refid.split('.')[-2:]) elif rtype == 'func': ref_label = '%s()' % refid.split('.')[-1] else: ref_label = '%s' % refid.split('.')[-1] return '[%s](%s)' % (ref_label, ref_url) def _parse(self, doctree): for child in doctree.children: tag = child.tagname if _re_skip.search(str(child)): continue if tag == 'title': self._add_headingcell(self._state['sec_depth']) self._parse(child) if not len(self._notebook['metadata']['name']): self._notebook['metadata']['name'] = self._buffer elif tag == '#text': self._add2buffer(child.astext()) elif tag == 'paragraph': self._add_markdowncell() if self._state['need_hanging_indent']: self._state['need_hanging_indent'] = False else: self._add2buffer('', newline=True, paragraph=True) self._flush_buffer() self._parse(child) elif tag == 'doctest_block': self._add_codecell() needs_new_codecell = False for ex in self._doctest_parser.get_examples(child.rawsource): if needs_new_codecell: self._add_codecell() # Filter out possible doctest directives source = re.sub('# *doctest:[^\n]*', '', ex.source) self._add2buffer('%s%s' % (' ' * ex.indent, source), newline=False) self._flush_buffer(startnew=True) needs_new_codecell = len(ex.want) > 0 elif tag == 'literal_block': self._add_codecell() self._add2buffer(child.rawsource) self._flush_buffer(startnew=True) elif tag == 'section': self._state['sec_depth'] += 1 self._parse(child) self._state['sec_depth'] -= 1 elif tag == 'note': self._add_markdowncell(force=True) self._parse(child) self._flush_buffer() self._currcell['source'].insert(0, '- - -\n*Note*') self._currcell['source'].append('- - -\n') self._store_currcell() elif tag == 'title_reference': self._flush_buffer() self._parse(child) if self._buffer.startswith(':term:'): # link to glossary term = re.match('.*<(.*)>', self._buffer) if term is None: term = re.match(':term:(.*)', self._buffer).groups()[0] term_text = term else: term = term.groups()[0] term_text = re.match(':term:(.*) <', self._buffer).groups()[0] self._buffer = '[%s](%s#term-%s)' % (term_text, self._glossary_baseurl, term.lower().replace(' ', '-')) elif self._buffer.startswith('~mvpa') \ or self._buffer.startswith('mvpa') \ or self._buffer.startswith(':meth:') \ or self._buffer.startswith(':mod:') \ or self._buffer.startswith(':class:') \ or self._buffer.startswith(':func:'): # various API reference link variants self._buffer = self._ref2apiref(self._buffer) # XXX for the rest I have no idea how to link them without huge # effort elif self._buffer.startswith(':ref:'): self._buffer = '*%s*' \ % [m for m in re.match(':ref:(.*) <|:ref:(.*)', self._buffer).groups() if m is not None][0] elif self._buffer.startswith(':math:'): self._buffer = '$%s$' \ % [m for m in re.match(':math:(.*) <|:math:(.*)', self._buffer).groups() if m is not None][0] elif re.match(':([a-z]+):', self._buffer): # catch other ref type we should handle, but do not yet raise RuntimeError("unhandled reference type '%s'" % self._buffer) else: # plain refs seems to be mostly used for external API self._buffer = '`%s`' % self._buffer elif tag == 'emphasis': self._flush_buffer() self._parse(child) self._buffer = '*%s*' % self._buffer elif tag == 'strong': self._flush_buffer() self._parse(child) self._buffer = '**%s**' % self._buffer elif tag == 'literal': # strip one layer of backticks self._add2buffer(child.rawsource[1:-1]) elif tag == 'math_block': # wrap in $$ $$ for ch in child.children: self._add2buffer('\n$$%s$$\n' % ch) elif tag == 'problematic': print 'PROBLEMATIC: %s' % child self._parse(child) elif tag == 'reference': self._flush_buffer() self._parse(child) if 'name' in child.attributes: self._buffer = '[%(name)s](%(refuri)s)' % child.attributes else: self._buffer = '%(refuri)s' % child.attributes elif tag in ['comment', 'target']: pass elif tag == 'definition_list': self._add_markdowncell() for item in child.children: self._flush_buffer() self._parse(item.children[0]) term = self._buffer self._buffer = '' self._parse(item.children[1]) self._buffer = '\n%s: %s' % (term, self._buffer) elif tag in ['enumerated_list', 'bullet_list']: # TODO: has problems with nested lists formatting self._add_markdowncell() for i, item in enumerate(child.children): if tag == 'enumerated_list': prefix = '%i.' % (i + 1,) else: prefix = '*' self._flush_buffer() self._add2buffer('%s ' % prefix, newline=True, paragraph=True) self._state['indent'] += 4 self._state['need_hanging_indent'] = True self._parse(item) self._state['indent'] -= 4 self._flush_buffer() elif tag == 'list_item': for c in child.children: self._parse(c) elif tag == 'term': self._parse(child.children[0]) elif tag in ['figure', 'image'] : # this can't be expressed in markdown self._add_markdowncell() file_url = '%s/%s.html' % (self._baseurl, os.path.splitext(os.path.basename(self._filename))[0]) self._add2buffer('\[Visit [%s](%s) to view this figure\]' % (file_url, file_url), newline=True, paragraph=True) elif tag == 'block_quote': self._flush_buffer() first_line = len(self._currcell['source']) - 1 # skip the wrapping paragraph self._parse(child.children[0]) self._flush_buffer() self._currcell['source'][first_line] = \ '\n\n> %s' % self._currcell['source'][first_line] elif tag == 'system_message': if child.attributes['type'] == 'INFO': pass elif child.children[0].astext() == 'Unknown directive type "exercise".': exercise_text = \ '\n'.join([l.strip() for l in child.children[1][0].astext().split('\n')][2:]) self._add_markdowncell(force=True) self._parse(publish_doctree( exercise_text, settings_overrides=self._doctree_parser_settings)) self._flush_buffer() self._currcell['source'].insert(0, '- - -\n**Exercise**') self._add_codecell() self._add2buffer('# you can use this cell for this exercise\n') self._add_markdowncell() self._currcell['source'].append('- - -\n') elif re.match('Unknown directive type "(seealso|style|todo|layout)".', child.children[0].astext()): pass else: raise RuntimeError("cannot handle system message '%s'" % child.astext()) else: if hasattr(child, 'line') and child.line: line = ' on line %i' % child.line else: line = '' raise RuntimeError("Unknown tag '%s'%s" % (tag, line)) def _store_currcell(self): if self._currcell is not None: self._flush_buffer() if self._currcell['cell_type'] == 'code': # remove last newline to save on vertical space self._currcell['input'][-1] = self._currcell['input'][-1].rstrip('\n') self._currcells.append(self._currcell) self._currcell = None def _add_headingcell(self, level): self._store_currcell() self._currcell = deepcopy(ReST2IPyNB.headingcell_template) self._currcell['level'] = level def _add_codecell(self): self._store_currcell() self._currcell = deepcopy(ReST2IPyNB.codecell_template) def _add_markdowncell(self, force=False): if self._currcell is None \ or not self._currcell['cell_type'] == 'markdown' \ or force: # we need a new cell self._store_currcell() self._currcell = deepcopy(ReST2IPyNB.markdowncell_template) def _add2buffer(self, value, newline=False, paragraph=False): if paragraph: nl = '\n\n' else: nl = '\n' if newline: self._buffer += '%s%s%s' % (nl, ' ' * self._state['indent'], value) else: self._buffer += value def _flush_buffer(self, startnew=True): if not len(self._buffer): return if self._currcell['cell_type'] == 'code': target_field = 'input' else: target_field = 'source' if startnew or not len(self._currcell[target_field]): self._currcell[target_field].append(self._buffer) else: self._currcell[target_field][-1] += self._buffer self._buffer = '' def main(): parser = OptionParser( \ usage="%prog [options] [...]", \ version="%prog 0.1", description=""" %prog converts Sphinx documentation pages in restructered text (ReST) format into IPython notebooks. """ ) # define options parser.add_option('--verbose', action='store_true', dest='verbose', default=False, help='print status messages') parser.add_option('-x', '--exclude', action='append', dest='excluded', help="""\ Use this option to exclude single files from the to be parsed files. This is especially useful to exclude files when parsing complete directories. This option can be specified multiple times. """) parser.add_option('-o', '--outdir', action='store', dest='outdir', type='string', default=None, help="""\ Target directory to write the ReST output to. This is a required option. """) parser.add_option('--baseurl', action='store', dest='baseurl', type='string', default=None, help="""\ Base URL for references to the online HTML version of a file. Default='' """) parser.add_option('--apiref_baseurl', action='store', dest='apiref_baseurl', type='string', default=None, help="""\ Base URL for links to the online API reference. Default='' """) parser.add_option('--glossary_baseurl', action='store', dest='glossary_baseurl', type='string', default=None, help="""\ Base URL for links to the online glossary. Default='' """) # parse options (opts, args) = parser.parse_args() # read sys.argv[1:] by default # check for required options if opts.outdir is None: print('Required option -o, --outdir not specified.') sys.exit(1) # build up list of things to parse toparse = [] for t in args: # expand dirs if os.path.isdir(t): # add all python files in that dir toparse += glob.glob(os.path.join(t, '*.rst')) else: toparse.append(t) # filter parse list if opts.excluded is not None: toparse = [t for t in toparse if not t in opts.excluded] toparse_list = toparse toparse = set(toparse) if len(toparse) != len(toparse_list): print('Ignoring duplicate parse targets.') if not os.path.exists(opts.outdir): os.mkdir(opts.outdir) conv = ReST2IPyNB(baseurl=opts.baseurl, apiref_baseurl=opts.apiref_baseurl, glossary_baseurl=opts.glossary_baseurl) # finally process provided files for t in toparse: if opts.verbose: print "Processing '%s'" % t notebook = conv(t) json_notebook = json.dumps(notebook, sort_keys=True, indent=2) open(os.path.join( opts.outdir, '%s.ipynb' % os.path.splitext(os.path.basename(t))[0]), 'w').write(json_notebook) if __name__ == '__main__': main() pymvpa2-2.6.4/tools/sitemap.sh000077500000000000000000000011761323370031300162620ustar00rootroot00000000000000#!/bin/bash # # Generate a XML sitemap to make the search engines love the website. # : ${baseurl:="http://www.pymvpa.org"} siteroot="build/website" cat << EOT $baseurl/ $(stat -c '%y' $siteroot/index.html | cut -d ' ' -f 1,1) 1.0 EOT for file in $(find $siteroot/ -maxdepth 1 -name '*.html' -o -name 'PyMVPA*.pdf'); do cat << EOT $baseurl/$(basename $file) $(stat -c '%y' $file | cut -d ' ' -f 1,1) EOT done echo "" pymvpa2-2.6.4/tools/state_refactor.sh000077500000000000000000000033621323370031300176240ustar00rootroot00000000000000#!/bin/bash known_ca="\(all_label_counts\|confusion\|confusions\|emp_error\|errors\|history\|ndiscarded\|nfeatures\|null_errors\|predictions\|raw_predictions\|raw_values\|results\|selected_ids\|sensitivities\|sensitivity\|splits\|state[123]\|trained_confusion\|trained_confusions\|transerrors\|values\)" sed -i \ -e 's/\(\W\)State\.)/\1Stateful\./g' \ -e 's/State\.__init/Stateful\.__init/g' \ -e 's/State\.__str/Stateful\.__str/g' \ -e 's/\.enableState/\.ca\.enable/g' \ -e 's/\.enableStates/\.ca\.enable/g' \ -e 's/\.enabledStates/\.ca\.enabled/g' \ -e 's/\.disableState/\.ca\.disable/g' \ -e 's/\.disableStates/\.ca\.disable/g' \ -e 's/\.listStates/\.ca\.listing/g' \ -e 's/\.hasState/\.ca\.isKnown/g' \ -e 's/\.isStateEnabled/\.ca\.isEnabled/g' \ -e 's/\._enableStatesTemporarily/\.ca\._enableTemporarily/g' \ -e 's/\.isStateActive/\.ca\.isActive/g' \ -e "s/\(\w\)[[]\([\"']\)$known_ca\2[]]/\1\.\3/g" \ -e "s/self\._registerState(\([\"']\)$known_ca\1\,* */\2 = ConditionalAttribute(/g" \ $@ exit 0 sed -i \ -e 's/(State)/(Stateful)/g' \ -e 's/import State/import ConditionalAttribute, Stateful/g' \ -e "s/self\._registerState(\([\"']\)$known_ca\1\,* */\2 = ConditionalAttribute(/g" \ $@ exit 0 obtained list of all conditional attributes ever known by grep '_registerState(' *py `find ../mvpa -iname \*.py` 2>/dev/null| \ grep -v 'def _reg' | sed -e "s/.*(\([\"']\)\([^ ,]*\)\1.*/\2/g" | \ grep -v mvpa | sort | uniq | tr '\n' '\|'; echo (State) Stateful enableState enable enabledStates enabled listStates listing ca items _enableStatesTemporarily _enableTemporarily _getRegisteredStates _getNames hasState isKnown isStateEnabled isEnabled isStateActive isActive listStates _getListing GONE: enableStates disableStates __enabledisableall pymvpa2-2.6.4/tools/strip_nibabel000077500000000000000000000042541323370031300170240ustar00rootroot00000000000000#!/usr/bin/python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## # # See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Convert NiBabel objects in PyMVPA datasets attributes into a portable form PyMVPA datasets that contain NiBabel objects, such as image header instances, as it was default prior PyMVPA 2.4, can suffer from NiBabel API changes that result in the inability to re-load serialized datasets (e.g. from HDF5) with newer versions of NiBabel. This script converts these NiBabel internals into a simpler form that helps process such datasets with a much wider range of NiBabel Versions, and removes the need to have NiBabel installed for simply loading such a dataset. If you run into this problem, you need access to NiBabel source code that can still process your dataset. A reasonable guess is to try NiBabel version 1.1. Here is a recipe: Get the NiBabel repository from github and checkout the version you need:: % git clone https://github.com/nipy/nibabel /tmp/nibabel % cd /tmp/nibabel % git checkout 1.1.0 Now call this script with the path to your old NiBabel, the HDF5 file with the to-be-converted datasets, and the output filename. % tools/strip_nibabel /tmp/nibabel olddata.hdf5 newdata.hdf5 This tools support HDF5 files containing a single dataset, as well as files with sequences of datasets. If you have a more complicated conversion task, please inspect the function ``strip_nibabel()`` used in this script to aid a custom conversion. """ __docformat__ = 'restructuredtext' import sys # need to happen before any other import sys.path = [sys.argv[1]] + sys.path from mvpa2.base.hdf5 import h5load, h5save from mvpa2.datasets.mri import _hdr2dict, strip_nibabel oldfname, newfname = sys.argv[2:4] src = h5load(oldfname) if isinstance(src, list) or isinstance(src, tuple): out = [strip_nibabel(s) for s in src] else: out = strip_nibabel(src) h5save(newfname, out, compression=9) pymvpa2-2.6.4/tools/valgrind-python000077500000000000000000000002541323370031300173300ustar00rootroot00000000000000#!/bin/bash path=$(dirname $0) valgrind --tool=memcheck --leak-check=full --show-reachable=yes --leak-resolution=med --suppressions=$path/valgrind-python.supp python $* pymvpa2-2.6.4/tools/valgrind-python.supp000066400000000000000000000171121323370031300203140ustar00rootroot00000000000000# # This is a valgrind suppression file that should be used when using valgrind. # # Here's an example of running valgrind: # # cd python/dist/src # valgrind --tool=memcheck --suppressions=Misc/valgrind-python.supp \ # ./python -E -tt ./Lib/test/regrtest.py -u bsddb,network # # You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER # to use the preferred suppressions with Py_ADDRESS_IN_RANGE. # # If you do not want to recompile Python, you can uncomment # suppressions for PyObject_Free and PyObject_Realloc. # # See Misc/README.valgrind for more information. # all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif { ADDRESS_IN_RANGE/Invalid read of size 4 Memcheck:Addr4 fun:Py_ADDRESS_IN_RANGE } { ADDRESS_IN_RANGE/Invalid read of size 4 Memcheck:Value4 fun:Py_ADDRESS_IN_RANGE } { ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64) Memcheck:Value8 fun:Py_ADDRESS_IN_RANGE } { ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value Memcheck:Cond fun:Py_ADDRESS_IN_RANGE } # # Leaks (including possible leaks) # Hmmm, I wonder if this masks some real leaks. I think it does. # Will need to fix that. # { Handle PyMalloc confusing valgrind (possibly leaked) Memcheck:Leak fun:realloc fun:_PyObject_GC_Resize fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING } { Handle PyMalloc confusing valgrind (possibly leaked) Memcheck:Leak fun:malloc fun:_PyObject_GC_New fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING } { Handle PyMalloc confusing valgrind (possibly leaked) Memcheck:Leak fun:malloc fun:_PyObject_GC_NewVar fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING } # # Non-python specific leaks # { Handle pthread issue (possibly leaked) Memcheck:Leak fun:calloc fun:allocate_dtv fun:_dl_allocate_tls_storage fun:_dl_allocate_tls } { Handle pthread issue (possibly leaked) Memcheck:Leak fun:memalign fun:_dl_allocate_tls_storage fun:_dl_allocate_tls } { ADDRESS_IN_RANGE/Invalid read of size 4 Memcheck:Addr4 fun:PyObject_Free } { ADDRESS_IN_RANGE/Invalid read of size 4 Memcheck:Value4 fun:PyObject_Free } { ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value Memcheck:Cond fun:PyObject_Free } { ADDRESS_IN_RANGE/Invalid read of size 4 Memcheck:Addr4 fun:PyObject_Realloc } { ADDRESS_IN_RANGE/Invalid read of size 4 Memcheck:Value4 fun:PyObject_Realloc } { ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value Memcheck:Cond fun:PyObject_Realloc } ### ### All the suppressions below are for errors that occur within libraries ### that Python uses. The problems to not appear to be related to Python's ### use of the libraries. ### { Generic ubuntu ld problems Memcheck:Addr8 obj:/lib/ld-2.4.so obj:/lib/ld-2.4.so obj:/lib/ld-2.4.so obj:/lib/ld-2.4.so } { Generic gentoo ld problems Memcheck:Cond obj:/lib/ld-2.3.4.so obj:/lib/ld-2.3.4.so obj:/lib/ld-2.3.4.so obj:/lib/ld-2.3.4.so } { DBM problems, see test_dbm Memcheck:Param write(buf) fun:write obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 fun:dbm_close } { DBM problems, see test_dbm Memcheck:Value8 fun:memmove obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 fun:dbm_store fun:dbm_ass_sub } { DBM problems, see test_dbm Memcheck:Cond obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 fun:dbm_store fun:dbm_ass_sub } { DBM problems, see test_dbm Memcheck:Cond fun:memmove obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 obj:/usr/lib/libdb1.so.2 fun:dbm_store fun:dbm_ass_sub } { GDBM problems, see test_gdbm Memcheck:Param write(buf) fun:write fun:gdbm_open } { ZLIB problems, see test_gzip Memcheck:Cond obj:/lib/libz.so.1.2.3 obj:/lib/libz.so.1.2.3 fun:deflate } { Avoid problems w/readline doing a putenv and leaking on exit Memcheck:Leak fun:malloc fun:xmalloc fun:sh_set_lines_and_columns fun:_rl_get_screen_size fun:_rl_init_terminal_io obj:/lib/libreadline.so.4.3 fun:rl_initialize } ### ### These occur from somewhere within the SSL, when running ### test_socket_sll. They are too general to leave on by default. ### ###{ ### somewhere in SSL stuff ### Memcheck:Cond ### fun:memset ###} ###{ ### somewhere in SSL stuff ### Memcheck:Value4 ### fun:memset ###} ### ###{ ### somewhere in SSL stuff ### Memcheck:Cond ### fun:MD5_Update ###} ### ###{ ### somewhere in SSL stuff ### Memcheck:Value4 ### fun:MD5_Update ###} # # All of these problems come from using test_socket_ssl # { from test_socket_ssl Memcheck:Cond fun:BN_bin2bn } { from test_socket_ssl Memcheck:Cond fun:BN_num_bits_word } { from test_socket_ssl Memcheck:Value4 fun:BN_num_bits_word } { from test_socket_ssl Memcheck:Cond fun:BN_mod_exp_mont_word } { from test_socket_ssl Memcheck:Cond fun:BN_mod_exp_mont } { from test_socket_ssl Memcheck:Param write(buf) fun:write obj:/usr/lib/libcrypto.so.0.9.7 } { from test_socket_ssl Memcheck:Cond fun:RSA_verify } { from test_socket_ssl Memcheck:Value4 fun:RSA_verify } { from test_socket_ssl Memcheck:Value4 fun:DES_set_key_unchecked } { from test_socket_ssl Memcheck:Value4 fun:DES_encrypt2 } { from test_socket_ssl Memcheck:Cond obj:/usr/lib/libssl.so.0.9.7 } { from test_socket_ssl Memcheck:Value4 obj:/usr/lib/libssl.so.0.9.7 } { from test_socket_ssl Memcheck:Cond fun:BUF_MEM_grow_clean } { from test_socket_ssl Memcheck:Cond fun:memcpy fun:ssl3_read_bytes } { from test_socket_ssl Memcheck:Cond fun:SHA1_Update } { from test_socket_ssl Memcheck:Value4 fun:SHA1_Update } # custom suppressions for yoh { Memcheck:Cond obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so } { Memcheck:Addr4 obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so fun:dlopen fun:_PyImport_GetDynLoadFunc fun:_PyImport_LoadDynamicModule } { Memcheck:Cond obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so fun:dlopen fun:_PyImport_GetDynLoadFunc fun:_PyImport_LoadDynamicModule obj:/usr/bin/python2.4 obj:/usr/bin/python2.4 } { Memcheck:Cond obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so fun:dlopen fun:_PyImport_GetDynLoadFunc fun:_PyImport_LoadDynamicModule obj:/usr/bin/python2.4 obj:/usr/bin/python2.4 obj:/usr/bin/python2.4 } { Memcheck:Addr4 obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so obj:/lib/ld-2.7.so obj:/lib/i686/cmov/libdl-2.7.so }